From 49b4a239273ce1739c54beedb0eb78c5fb1c5bda Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?D=C3=B3nal=20Murray?= Date: Thu, 28 Sep 2023 09:39:19 +0100 Subject: [PATCH 01/78] Remove SP native runtimes (WIP) --- Cargo.lock | 408 ----- Cargo.toml | 8 +- .../assets/asset-hub-kusama/Cargo.toml | 227 --- .../assets/asset-hub-kusama/src/lib.rs | 1466 ----------------- .../src/weights/cumulus_pallet_xcmp_queue.rs | 77 - .../src/weights/frame_system.rs | 155 -- .../asset-hub-kusama/src/weights/mod.rs | 43 - .../src/weights/pallet_asset_conversion.rs | 155 -- .../src/weights/pallet_assets_foreign.rs | 534 ------ .../src/weights/pallet_assets_local.rs | 531 ------ .../src/weights/pallet_assets_pool.rs | 531 ------ .../src/weights/pallet_balances.rs | 153 -- .../src/weights/pallet_collator_selection.rs | 225 --- .../src/weights/pallet_multisig.rs | 165 -- .../weights/pallet_nft_fractionalization.rs | 115 -- .../src/weights/pallet_nfts.rs | 773 --------- .../src/weights/pallet_proxy.rs | 226 --- .../src/weights/pallet_session.rs | 81 - .../src/weights/pallet_timestamp.rs | 75 - .../src/weights/pallet_uniques.rs | 467 ------ .../src/weights/pallet_utility.rs | 102 -- .../src/weights/pallet_xcm.rs | 290 ---- .../asset-hub-kusama/src/weights/xcm/mod.rs | 256 --- .../xcm/pallet_xcm_benchmarks_fungible.rs | 190 --- .../xcm/pallet_xcm_benchmarks_generic.rs | 329 ---- .../assets/asset-hub-kusama/src/xcm_config.rs | 626 ------- .../assets/asset-hub-kusama/tests/tests.rs | 634 ------- .../assets/asset-hub-polkadot/Cargo.toml | 208 --- .../assets/asset-hub-polkadot/build.rs | 26 - .../assets/asset-hub-polkadot/src/lib.rs | 1298 --------------- .../src/weights/block_weights.rs | 53 - .../src/weights/cumulus_pallet_xcmp_queue.rs | 77 - .../src/weights/extrinsic_weights.rs | 53 - .../src/weights/frame_system.rs | 155 -- .../asset-hub-polkadot/src/weights/mod.rs | 40 - .../src/weights/pallet_assets_foreign.rs | 533 ------ .../src/weights/pallet_assets_local.rs | 529 ------ .../src/weights/pallet_balances.rs | 153 -- .../src/weights/pallet_collator_selection.rs | 223 --- .../src/weights/pallet_multisig.rs | 165 -- .../src/weights/pallet_nfts.rs | 773 --------- .../src/weights/pallet_proxy.rs | 226 --- .../src/weights/pallet_session.rs | 81 - .../src/weights/pallet_timestamp.rs | 75 - .../src/weights/pallet_uniques.rs | 467 ------ .../src/weights/pallet_utility.rs | 102 -- .../src/weights/pallet_xcm.rs | 290 ---- .../src/weights/paritydb_weights.rs | 63 - .../src/weights/rocksdb_weights.rs | 63 - .../asset-hub-polkadot/src/weights/xcm/mod.rs | 256 --- .../xcm/pallet_xcm_benchmarks_fungible.rs | 190 --- .../xcm/pallet_xcm_benchmarks_generic.rs | 329 ---- .../asset-hub-polkadot/src/xcm_config.rs | 538 ------ .../assets/asset-hub-polkadot/tests/tests.rs | 659 -------- .../bridge-hubs/bridge-hub-kusama/Cargo.toml | 185 --- .../bridge-hubs/bridge-hub-kusama/build.rs | 26 - .../bridge-hubs/bridge-hub-kusama/src/lib.rs | 798 --------- .../src/weights/block_weights.rs | 53 - .../src/weights/cumulus_pallet_xcmp_queue.rs | 77 - .../src/weights/extrinsic_weights.rs | 53 - .../src/weights/frame_system.rs | 155 -- .../bridge-hub-kusama/src/weights/mod.rs | 38 - .../src/weights/pallet_balances.rs | 153 -- .../src/weights/pallet_collator_selection.rs | 225 --- .../src/weights/pallet_multisig.rs | 165 -- .../src/weights/pallet_session.rs | 81 - .../src/weights/pallet_timestamp.rs | 75 - .../src/weights/pallet_utility.rs | 102 -- .../src/weights/pallet_xcm.rs | 289 ---- .../src/weights/paritydb_weights.rs | 63 - .../src/weights/rocksdb_weights.rs | 63 - .../bridge-hub-kusama/src/weights/xcm/mod.rs | 256 --- .../xcm/pallet_xcm_benchmarks_fungible.rs | 190 --- .../xcm/pallet_xcm_benchmarks_generic.rs | 329 ---- .../bridge-hub-kusama/src/xcm_config.rs | 272 --- .../bridge-hub-kusama/tests/tests.rs | 57 - .../bridge-hub-polkadot/Cargo.toml | 185 --- .../bridge-hubs/bridge-hub-polkadot/build.rs | 26 - .../bridge-hub-polkadot/src/lib.rs | 798 --------- .../src/weights/block_weights.rs | 53 - .../src/weights/cumulus_pallet_xcmp_queue.rs | 77 - .../src/weights/extrinsic_weights.rs | 53 - .../src/weights/frame_system.rs | 155 -- .../bridge-hub-polkadot/src/weights/mod.rs | 38 - .../src/weights/pallet_balances.rs | 153 -- .../src/weights/pallet_collator_selection.rs | 225 --- .../src/weights/pallet_multisig.rs | 165 -- .../src/weights/pallet_session.rs | 81 - .../src/weights/pallet_timestamp.rs | 75 - .../src/weights/pallet_utility.rs | 102 -- .../src/weights/pallet_xcm.rs | 289 ---- .../src/weights/paritydb_weights.rs | 63 - .../src/weights/rocksdb_weights.rs | 63 - .../src/weights/xcm/mod.rs | 259 --- .../xcm/pallet_xcm_benchmarks_fungible.rs | 190 --- .../xcm/pallet_xcm_benchmarks_generic.rs | 329 ---- .../bridge-hub-polkadot/src/xcm_config.rs | 276 ---- .../bridge-hub-polkadot/tests/tests.rs | 57 - .../collectives/collectives-polkadot/build.rs | 26 - .../src/weights/block_weights.rs | 53 - .../src/weights/extrinsic_weights.rs | 53 - .../src/weights/paritydb_weights.rs | 63 - .../src/weights/rocksdb_weights.rs | 63 - .../Cargo.toml | 4 +- .../collectives-westend}/build.rs | 0 .../src/ambassador/mod.rs | 0 .../src/ambassador/origins.rs | 0 .../src/ambassador/tracks.rs | 0 .../src/fellowship/migration.rs | 0 .../src/fellowship/mod.rs | 0 .../src/fellowship/origins.rs | 0 .../src/fellowship/tracks.rs | 0 .../src/impls.rs | 0 .../src/lib.rs | 0 .../src/weights/block_weights.rs | 0 .../src/weights/cumulus_pallet_xcmp_queue.rs | 0 .../src/weights/extrinsic_weights.rs | 0 .../src/weights/frame_system.rs | 0 .../src/weights/mod.rs | 0 .../src/weights/pallet_alliance.rs | 0 .../src/weights/pallet_balances.rs | 0 .../src/weights/pallet_collator_selection.rs | 0 .../src/weights/pallet_collective.rs | 0 .../src/weights/pallet_collective_content.rs | 0 .../pallet_core_fellowship_ambassador_core.rs | 0 .../pallet_core_fellowship_fellowship_core.rs | 0 .../src/weights/pallet_multisig.rs | 0 .../src/weights/pallet_preimage.rs | 0 .../src/weights/pallet_proxy.rs | 0 ...ranked_collective_ambassador_collective.rs | 0 ...ranked_collective_fellowship_collective.rs | 0 .../pallet_referenda_ambassador_referenda.rs | 0 .../pallet_referenda_fellowship_referenda.rs | 0 .../pallet_salary_ambassador_salary.rs | 0 .../pallet_salary_fellowship_salary.rs | 0 .../src/weights/pallet_scheduler.rs | 0 .../src/weights/pallet_session.rs | 0 .../src/weights/pallet_timestamp.rs | 0 .../src/weights/pallet_utility.rs | 0 .../src/weights/pallet_xcm.rs | 0 .../src/weights/paritydb_weights.rs | 0 .../src/weights/rocksdb_weights.rs | 0 .../src/xcm_config.rs | 0 .../Cargo.toml | 2 +- .../build.rs | 0 .../src/lib.rs | 0 .../src/weights/frame_system.rs | 0 .../src/weights/mod.rs | 0 .../src/weights/pallet_glutton.rs | 0 .../src/weights/pallet_timestamp.rs | 0 .../src/xcm_config.rs | 0 cumulus/polkadot-parachain/Cargo.toml | 24 +- 152 files changed, 11 insertions(+), 24161 deletions(-) delete mode 100644 cumulus/parachains/runtimes/assets/asset-hub-kusama/Cargo.toml delete mode 100644 cumulus/parachains/runtimes/assets/asset-hub-kusama/src/lib.rs delete mode 100644 cumulus/parachains/runtimes/assets/asset-hub-kusama/src/weights/cumulus_pallet_xcmp_queue.rs delete mode 100644 cumulus/parachains/runtimes/assets/asset-hub-kusama/src/weights/frame_system.rs delete mode 100644 cumulus/parachains/runtimes/assets/asset-hub-kusama/src/weights/mod.rs delete mode 100644 cumulus/parachains/runtimes/assets/asset-hub-kusama/src/weights/pallet_asset_conversion.rs delete mode 100644 cumulus/parachains/runtimes/assets/asset-hub-kusama/src/weights/pallet_assets_foreign.rs delete mode 100644 cumulus/parachains/runtimes/assets/asset-hub-kusama/src/weights/pallet_assets_local.rs delete mode 100644 cumulus/parachains/runtimes/assets/asset-hub-kusama/src/weights/pallet_assets_pool.rs delete mode 100644 cumulus/parachains/runtimes/assets/asset-hub-kusama/src/weights/pallet_balances.rs delete mode 100644 cumulus/parachains/runtimes/assets/asset-hub-kusama/src/weights/pallet_collator_selection.rs delete mode 100644 cumulus/parachains/runtimes/assets/asset-hub-kusama/src/weights/pallet_multisig.rs delete mode 100644 cumulus/parachains/runtimes/assets/asset-hub-kusama/src/weights/pallet_nft_fractionalization.rs delete mode 100644 cumulus/parachains/runtimes/assets/asset-hub-kusama/src/weights/pallet_nfts.rs delete mode 100644 cumulus/parachains/runtimes/assets/asset-hub-kusama/src/weights/pallet_proxy.rs delete mode 100644 cumulus/parachains/runtimes/assets/asset-hub-kusama/src/weights/pallet_session.rs delete mode 100644 cumulus/parachains/runtimes/assets/asset-hub-kusama/src/weights/pallet_timestamp.rs delete mode 100644 cumulus/parachains/runtimes/assets/asset-hub-kusama/src/weights/pallet_uniques.rs delete mode 100644 cumulus/parachains/runtimes/assets/asset-hub-kusama/src/weights/pallet_utility.rs delete mode 100644 cumulus/parachains/runtimes/assets/asset-hub-kusama/src/weights/pallet_xcm.rs delete mode 100644 cumulus/parachains/runtimes/assets/asset-hub-kusama/src/weights/xcm/mod.rs delete mode 100644 cumulus/parachains/runtimes/assets/asset-hub-kusama/src/weights/xcm/pallet_xcm_benchmarks_fungible.rs delete mode 100644 cumulus/parachains/runtimes/assets/asset-hub-kusama/src/weights/xcm/pallet_xcm_benchmarks_generic.rs delete mode 100644 cumulus/parachains/runtimes/assets/asset-hub-kusama/src/xcm_config.rs delete mode 100644 cumulus/parachains/runtimes/assets/asset-hub-kusama/tests/tests.rs delete mode 100644 cumulus/parachains/runtimes/assets/asset-hub-polkadot/Cargo.toml delete mode 100644 cumulus/parachains/runtimes/assets/asset-hub-polkadot/build.rs delete mode 100644 cumulus/parachains/runtimes/assets/asset-hub-polkadot/src/lib.rs delete mode 100644 cumulus/parachains/runtimes/assets/asset-hub-polkadot/src/weights/block_weights.rs delete mode 100644 cumulus/parachains/runtimes/assets/asset-hub-polkadot/src/weights/cumulus_pallet_xcmp_queue.rs delete mode 100644 cumulus/parachains/runtimes/assets/asset-hub-polkadot/src/weights/extrinsic_weights.rs delete mode 100644 cumulus/parachains/runtimes/assets/asset-hub-polkadot/src/weights/frame_system.rs delete mode 100644 cumulus/parachains/runtimes/assets/asset-hub-polkadot/src/weights/mod.rs delete mode 100644 cumulus/parachains/runtimes/assets/asset-hub-polkadot/src/weights/pallet_assets_foreign.rs delete mode 100644 cumulus/parachains/runtimes/assets/asset-hub-polkadot/src/weights/pallet_assets_local.rs delete mode 100644 cumulus/parachains/runtimes/assets/asset-hub-polkadot/src/weights/pallet_balances.rs delete mode 100644 cumulus/parachains/runtimes/assets/asset-hub-polkadot/src/weights/pallet_collator_selection.rs delete mode 100644 cumulus/parachains/runtimes/assets/asset-hub-polkadot/src/weights/pallet_multisig.rs delete mode 100644 cumulus/parachains/runtimes/assets/asset-hub-polkadot/src/weights/pallet_nfts.rs delete mode 100644 cumulus/parachains/runtimes/assets/asset-hub-polkadot/src/weights/pallet_proxy.rs delete mode 100644 cumulus/parachains/runtimes/assets/asset-hub-polkadot/src/weights/pallet_session.rs delete mode 100644 cumulus/parachains/runtimes/assets/asset-hub-polkadot/src/weights/pallet_timestamp.rs delete mode 100644 cumulus/parachains/runtimes/assets/asset-hub-polkadot/src/weights/pallet_uniques.rs delete mode 100644 cumulus/parachains/runtimes/assets/asset-hub-polkadot/src/weights/pallet_utility.rs delete mode 100644 cumulus/parachains/runtimes/assets/asset-hub-polkadot/src/weights/pallet_xcm.rs delete mode 100644 cumulus/parachains/runtimes/assets/asset-hub-polkadot/src/weights/paritydb_weights.rs delete mode 100644 cumulus/parachains/runtimes/assets/asset-hub-polkadot/src/weights/rocksdb_weights.rs delete mode 100644 cumulus/parachains/runtimes/assets/asset-hub-polkadot/src/weights/xcm/mod.rs delete mode 100644 cumulus/parachains/runtimes/assets/asset-hub-polkadot/src/weights/xcm/pallet_xcm_benchmarks_fungible.rs delete mode 100644 cumulus/parachains/runtimes/assets/asset-hub-polkadot/src/weights/xcm/pallet_xcm_benchmarks_generic.rs delete mode 100644 cumulus/parachains/runtimes/assets/asset-hub-polkadot/src/xcm_config.rs delete mode 100644 cumulus/parachains/runtimes/assets/asset-hub-polkadot/tests/tests.rs delete mode 100644 cumulus/parachains/runtimes/bridge-hubs/bridge-hub-kusama/Cargo.toml delete mode 100644 cumulus/parachains/runtimes/bridge-hubs/bridge-hub-kusama/build.rs delete mode 100644 cumulus/parachains/runtimes/bridge-hubs/bridge-hub-kusama/src/lib.rs delete mode 100644 cumulus/parachains/runtimes/bridge-hubs/bridge-hub-kusama/src/weights/block_weights.rs delete mode 100644 cumulus/parachains/runtimes/bridge-hubs/bridge-hub-kusama/src/weights/cumulus_pallet_xcmp_queue.rs delete mode 100644 cumulus/parachains/runtimes/bridge-hubs/bridge-hub-kusama/src/weights/extrinsic_weights.rs delete mode 100644 cumulus/parachains/runtimes/bridge-hubs/bridge-hub-kusama/src/weights/frame_system.rs delete mode 100644 cumulus/parachains/runtimes/bridge-hubs/bridge-hub-kusama/src/weights/mod.rs delete mode 100644 cumulus/parachains/runtimes/bridge-hubs/bridge-hub-kusama/src/weights/pallet_balances.rs delete mode 100644 cumulus/parachains/runtimes/bridge-hubs/bridge-hub-kusama/src/weights/pallet_collator_selection.rs delete mode 100644 cumulus/parachains/runtimes/bridge-hubs/bridge-hub-kusama/src/weights/pallet_multisig.rs delete mode 100644 cumulus/parachains/runtimes/bridge-hubs/bridge-hub-kusama/src/weights/pallet_session.rs delete mode 100644 cumulus/parachains/runtimes/bridge-hubs/bridge-hub-kusama/src/weights/pallet_timestamp.rs delete mode 100644 cumulus/parachains/runtimes/bridge-hubs/bridge-hub-kusama/src/weights/pallet_utility.rs delete mode 100644 cumulus/parachains/runtimes/bridge-hubs/bridge-hub-kusama/src/weights/pallet_xcm.rs delete mode 100644 cumulus/parachains/runtimes/bridge-hubs/bridge-hub-kusama/src/weights/paritydb_weights.rs delete mode 100644 cumulus/parachains/runtimes/bridge-hubs/bridge-hub-kusama/src/weights/rocksdb_weights.rs delete mode 100644 cumulus/parachains/runtimes/bridge-hubs/bridge-hub-kusama/src/weights/xcm/mod.rs delete mode 100644 cumulus/parachains/runtimes/bridge-hubs/bridge-hub-kusama/src/weights/xcm/pallet_xcm_benchmarks_fungible.rs delete mode 100644 cumulus/parachains/runtimes/bridge-hubs/bridge-hub-kusama/src/weights/xcm/pallet_xcm_benchmarks_generic.rs delete mode 100644 cumulus/parachains/runtimes/bridge-hubs/bridge-hub-kusama/src/xcm_config.rs delete mode 100644 cumulus/parachains/runtimes/bridge-hubs/bridge-hub-kusama/tests/tests.rs delete mode 100644 cumulus/parachains/runtimes/bridge-hubs/bridge-hub-polkadot/Cargo.toml delete mode 100644 cumulus/parachains/runtimes/bridge-hubs/bridge-hub-polkadot/build.rs delete mode 100644 cumulus/parachains/runtimes/bridge-hubs/bridge-hub-polkadot/src/lib.rs delete mode 100644 cumulus/parachains/runtimes/bridge-hubs/bridge-hub-polkadot/src/weights/block_weights.rs delete mode 100644 cumulus/parachains/runtimes/bridge-hubs/bridge-hub-polkadot/src/weights/cumulus_pallet_xcmp_queue.rs delete mode 100644 cumulus/parachains/runtimes/bridge-hubs/bridge-hub-polkadot/src/weights/extrinsic_weights.rs delete mode 100644 cumulus/parachains/runtimes/bridge-hubs/bridge-hub-polkadot/src/weights/frame_system.rs delete mode 100644 cumulus/parachains/runtimes/bridge-hubs/bridge-hub-polkadot/src/weights/mod.rs delete mode 100644 cumulus/parachains/runtimes/bridge-hubs/bridge-hub-polkadot/src/weights/pallet_balances.rs delete mode 100644 cumulus/parachains/runtimes/bridge-hubs/bridge-hub-polkadot/src/weights/pallet_collator_selection.rs delete mode 100644 cumulus/parachains/runtimes/bridge-hubs/bridge-hub-polkadot/src/weights/pallet_multisig.rs delete mode 100644 cumulus/parachains/runtimes/bridge-hubs/bridge-hub-polkadot/src/weights/pallet_session.rs delete mode 100644 cumulus/parachains/runtimes/bridge-hubs/bridge-hub-polkadot/src/weights/pallet_timestamp.rs delete mode 100644 cumulus/parachains/runtimes/bridge-hubs/bridge-hub-polkadot/src/weights/pallet_utility.rs delete mode 100644 cumulus/parachains/runtimes/bridge-hubs/bridge-hub-polkadot/src/weights/pallet_xcm.rs delete mode 100644 cumulus/parachains/runtimes/bridge-hubs/bridge-hub-polkadot/src/weights/paritydb_weights.rs delete mode 100644 cumulus/parachains/runtimes/bridge-hubs/bridge-hub-polkadot/src/weights/rocksdb_weights.rs delete mode 100644 cumulus/parachains/runtimes/bridge-hubs/bridge-hub-polkadot/src/weights/xcm/mod.rs delete mode 100644 cumulus/parachains/runtimes/bridge-hubs/bridge-hub-polkadot/src/weights/xcm/pallet_xcm_benchmarks_fungible.rs delete mode 100644 cumulus/parachains/runtimes/bridge-hubs/bridge-hub-polkadot/src/weights/xcm/pallet_xcm_benchmarks_generic.rs delete mode 100644 cumulus/parachains/runtimes/bridge-hubs/bridge-hub-polkadot/src/xcm_config.rs delete mode 100644 cumulus/parachains/runtimes/bridge-hubs/bridge-hub-polkadot/tests/tests.rs delete mode 100644 cumulus/parachains/runtimes/collectives/collectives-polkadot/build.rs delete mode 100644 cumulus/parachains/runtimes/collectives/collectives-polkadot/src/weights/block_weights.rs delete mode 100644 cumulus/parachains/runtimes/collectives/collectives-polkadot/src/weights/extrinsic_weights.rs delete mode 100644 cumulus/parachains/runtimes/collectives/collectives-polkadot/src/weights/paritydb_weights.rs delete mode 100644 cumulus/parachains/runtimes/collectives/collectives-polkadot/src/weights/rocksdb_weights.rs rename cumulus/parachains/runtimes/collectives/{collectives-polkadot => collectives-westend}/Cargo.toml (99%) rename cumulus/parachains/runtimes/{assets/asset-hub-kusama => collectives/collectives-westend}/build.rs (100%) rename cumulus/parachains/runtimes/collectives/{collectives-polkadot => collectives-westend}/src/ambassador/mod.rs (100%) rename cumulus/parachains/runtimes/collectives/{collectives-polkadot => collectives-westend}/src/ambassador/origins.rs (100%) rename cumulus/parachains/runtimes/collectives/{collectives-polkadot => collectives-westend}/src/ambassador/tracks.rs (100%) rename cumulus/parachains/runtimes/collectives/{collectives-polkadot => collectives-westend}/src/fellowship/migration.rs (100%) rename cumulus/parachains/runtimes/collectives/{collectives-polkadot => collectives-westend}/src/fellowship/mod.rs (100%) rename cumulus/parachains/runtimes/collectives/{collectives-polkadot => collectives-westend}/src/fellowship/origins.rs (100%) rename cumulus/parachains/runtimes/collectives/{collectives-polkadot => collectives-westend}/src/fellowship/tracks.rs (100%) rename cumulus/parachains/runtimes/collectives/{collectives-polkadot => collectives-westend}/src/impls.rs (100%) rename cumulus/parachains/runtimes/collectives/{collectives-polkadot => collectives-westend}/src/lib.rs (100%) rename cumulus/parachains/runtimes/{assets/asset-hub-kusama => collectives/collectives-westend}/src/weights/block_weights.rs (100%) rename cumulus/parachains/runtimes/collectives/{collectives-polkadot => collectives-westend}/src/weights/cumulus_pallet_xcmp_queue.rs (100%) rename cumulus/parachains/runtimes/{assets/asset-hub-kusama => collectives/collectives-westend}/src/weights/extrinsic_weights.rs (100%) rename cumulus/parachains/runtimes/collectives/{collectives-polkadot => collectives-westend}/src/weights/frame_system.rs (100%) rename cumulus/parachains/runtimes/collectives/{collectives-polkadot => collectives-westend}/src/weights/mod.rs (100%) rename cumulus/parachains/runtimes/collectives/{collectives-polkadot => collectives-westend}/src/weights/pallet_alliance.rs (100%) rename cumulus/parachains/runtimes/collectives/{collectives-polkadot => collectives-westend}/src/weights/pallet_balances.rs (100%) rename cumulus/parachains/runtimes/collectives/{collectives-polkadot => collectives-westend}/src/weights/pallet_collator_selection.rs (100%) rename cumulus/parachains/runtimes/collectives/{collectives-polkadot => collectives-westend}/src/weights/pallet_collective.rs (100%) rename cumulus/parachains/runtimes/collectives/{collectives-polkadot => collectives-westend}/src/weights/pallet_collective_content.rs (100%) rename cumulus/parachains/runtimes/collectives/{collectives-polkadot => collectives-westend}/src/weights/pallet_core_fellowship_ambassador_core.rs (100%) rename cumulus/parachains/runtimes/collectives/{collectives-polkadot => collectives-westend}/src/weights/pallet_core_fellowship_fellowship_core.rs (100%) rename cumulus/parachains/runtimes/collectives/{collectives-polkadot => collectives-westend}/src/weights/pallet_multisig.rs (100%) rename cumulus/parachains/runtimes/collectives/{collectives-polkadot => collectives-westend}/src/weights/pallet_preimage.rs (100%) rename cumulus/parachains/runtimes/collectives/{collectives-polkadot => collectives-westend}/src/weights/pallet_proxy.rs (100%) rename cumulus/parachains/runtimes/collectives/{collectives-polkadot => collectives-westend}/src/weights/pallet_ranked_collective_ambassador_collective.rs (100%) rename cumulus/parachains/runtimes/collectives/{collectives-polkadot => collectives-westend}/src/weights/pallet_ranked_collective_fellowship_collective.rs (100%) rename cumulus/parachains/runtimes/collectives/{collectives-polkadot => collectives-westend}/src/weights/pallet_referenda_ambassador_referenda.rs (100%) rename cumulus/parachains/runtimes/collectives/{collectives-polkadot => collectives-westend}/src/weights/pallet_referenda_fellowship_referenda.rs (100%) rename cumulus/parachains/runtimes/collectives/{collectives-polkadot => collectives-westend}/src/weights/pallet_salary_ambassador_salary.rs (100%) rename cumulus/parachains/runtimes/collectives/{collectives-polkadot => collectives-westend}/src/weights/pallet_salary_fellowship_salary.rs (100%) rename cumulus/parachains/runtimes/collectives/{collectives-polkadot => collectives-westend}/src/weights/pallet_scheduler.rs (100%) rename cumulus/parachains/runtimes/collectives/{collectives-polkadot => collectives-westend}/src/weights/pallet_session.rs (100%) rename cumulus/parachains/runtimes/collectives/{collectives-polkadot => collectives-westend}/src/weights/pallet_timestamp.rs (100%) rename cumulus/parachains/runtimes/collectives/{collectives-polkadot => collectives-westend}/src/weights/pallet_utility.rs (100%) rename cumulus/parachains/runtimes/collectives/{collectives-polkadot => collectives-westend}/src/weights/pallet_xcm.rs (100%) rename cumulus/parachains/runtimes/{assets/asset-hub-kusama => collectives/collectives-westend}/src/weights/paritydb_weights.rs (100%) rename cumulus/parachains/runtimes/{assets/asset-hub-kusama => collectives/collectives-westend}/src/weights/rocksdb_weights.rs (100%) rename cumulus/parachains/runtimes/collectives/{collectives-polkadot => collectives-westend}/src/xcm_config.rs (100%) rename cumulus/parachains/runtimes/glutton/{glutton-kusama => glutton-westend}/Cargo.toml (99%) rename cumulus/parachains/runtimes/glutton/{glutton-kusama => glutton-westend}/build.rs (100%) rename cumulus/parachains/runtimes/glutton/{glutton-kusama => glutton-westend}/src/lib.rs (100%) rename cumulus/parachains/runtimes/glutton/{glutton-kusama => glutton-westend}/src/weights/frame_system.rs (100%) rename cumulus/parachains/runtimes/glutton/{glutton-kusama => glutton-westend}/src/weights/mod.rs (100%) rename cumulus/parachains/runtimes/glutton/{glutton-kusama => glutton-westend}/src/weights/pallet_glutton.rs (100%) rename cumulus/parachains/runtimes/glutton/{glutton-kusama => glutton-westend}/src/weights/pallet_timestamp.rs (100%) rename cumulus/parachains/runtimes/glutton/{glutton-kusama => glutton-westend}/src/xcm_config.rs (100%) diff --git a/Cargo.lock b/Cargo.lock index e0ca0b012c64..a25d0286031b 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -692,148 +692,6 @@ version = "1.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9b34d609dfbaf33d6889b2b7106d3ca345eacad44200913df5ba02bfd31d2ba9" -[[package]] -name = "asset-hub-kusama-runtime" -version = "0.9.420" -dependencies = [ - "asset-test-utils", - "assets-common", - "cumulus-pallet-aura-ext", - "cumulus-pallet-dmp-queue", - "cumulus-pallet-parachain-system", - "cumulus-pallet-session-benchmarking", - "cumulus-pallet-xcm", - "cumulus-pallet-xcmp-queue", - "cumulus-primitives-core", - "cumulus-primitives-utility", - "frame-benchmarking", - "frame-executive", - "frame-support", - "frame-system", - "frame-system-benchmarking", - "frame-system-rpc-runtime-api", - "frame-try-runtime", - "hex-literal", - "log", - "pallet-asset-conversion", - "pallet-asset-conversion-tx-payment", - "pallet-assets", - "pallet-aura", - "pallet-authorship", - "pallet-balances", - "pallet-collator-selection", - "pallet-multisig", - "pallet-nft-fractionalization", - "pallet-nfts", - "pallet-nfts-runtime-api", - "pallet-proxy", - "pallet-session", - "pallet-state-trie-migration", - "pallet-timestamp", - "pallet-transaction-payment", - "pallet-transaction-payment-rpc-runtime-api", - "pallet-uniques", - "pallet-utility", - "pallet-xcm", - "pallet-xcm-benchmarks", - "parachain-info", - "parachains-common", - "parity-scale-codec", - "polkadot-core-primitives", - "polkadot-parachain-primitives", - "polkadot-runtime-common", - "primitive-types", - "scale-info", - "smallvec", - "sp-api", - "sp-block-builder", - "sp-consensus-aura", - "sp-core", - "sp-genesis-builder", - "sp-inherents", - "sp-offchain", - "sp-runtime", - "sp-session", - "sp-std", - "sp-storage", - "sp-transaction-pool", - "sp-version", - "sp-weights", - "staging-xcm", - "staging-xcm-builder", - "staging-xcm-executor", - "substrate-wasm-builder", -] - -[[package]] -name = "asset-hub-polkadot-runtime" -version = "0.9.420" -dependencies = [ - "asset-test-utils", - "assets-common", - "cumulus-pallet-aura-ext", - "cumulus-pallet-dmp-queue", - "cumulus-pallet-parachain-system", - "cumulus-pallet-session-benchmarking", - "cumulus-pallet-xcm", - "cumulus-pallet-xcmp-queue", - "cumulus-primitives-core", - "cumulus-primitives-utility", - "frame-benchmarking", - "frame-executive", - "frame-support", - "frame-system", - "frame-system-benchmarking", - "frame-system-rpc-runtime-api", - "frame-try-runtime", - "hex-literal", - "log", - "pallet-asset-tx-payment", - "pallet-assets", - "pallet-aura", - "pallet-authorship", - "pallet-balances", - "pallet-collator-selection", - "pallet-multisig", - "pallet-nfts", - "pallet-nfts-runtime-api", - "pallet-proxy", - "pallet-session", - "pallet-timestamp", - "pallet-transaction-payment", - "pallet-transaction-payment-rpc-runtime-api", - "pallet-uniques", - "pallet-utility", - "pallet-xcm", - "pallet-xcm-benchmarks", - "parachain-info", - "parachains-common", - "parity-scale-codec", - "polkadot-core-primitives", - "polkadot-parachain-primitives", - "polkadot-runtime-common", - "scale-info", - "smallvec", - "sp-api", - "sp-block-builder", - "sp-consensus-aura", - "sp-core", - "sp-genesis-builder", - "sp-inherents", - "sp-offchain", - "sp-runtime", - "sp-session", - "sp-std", - "sp-storage", - "sp-transaction-pool", - "sp-version", - "sp-weights", - "staging-xcm", - "staging-xcm-builder", - "staging-xcm-executor", - "substrate-wasm-builder", -] - [[package]] name = "asset-hub-westend-integration-tests" version = "1.0.0" @@ -1764,132 +1622,6 @@ dependencies = [ "sp-runtime", ] -[[package]] -name = "bridge-hub-kusama-runtime" -version = "0.1.0" -dependencies = [ - "bridge-hub-test-utils", - "cumulus-pallet-aura-ext", - "cumulus-pallet-dmp-queue", - "cumulus-pallet-parachain-system", - "cumulus-pallet-session-benchmarking", - "cumulus-pallet-xcm", - "cumulus-pallet-xcmp-queue", - "cumulus-primitives-core", - "cumulus-primitives-utility", - "frame-benchmarking", - "frame-executive", - "frame-support", - "frame-system", - "frame-system-benchmarking", - "frame-system-rpc-runtime-api", - "frame-try-runtime", - "hex-literal", - "log", - "pallet-aura", - "pallet-authorship", - "pallet-balances", - "pallet-collator-selection", - "pallet-multisig", - "pallet-session", - "pallet-timestamp", - "pallet-transaction-payment", - "pallet-transaction-payment-rpc-runtime-api", - "pallet-utility", - "pallet-xcm", - "pallet-xcm-benchmarks", - "parachain-info", - "parachains-common", - "parity-scale-codec", - "polkadot-core-primitives", - "polkadot-parachain-primitives", - "polkadot-runtime-common", - "scale-info", - "serde", - "smallvec", - "sp-api", - "sp-block-builder", - "sp-consensus-aura", - "sp-core", - "sp-genesis-builder", - "sp-inherents", - "sp-io", - "sp-offchain", - "sp-runtime", - "sp-session", - "sp-std", - "sp-storage", - "sp-transaction-pool", - "sp-version", - "staging-xcm", - "staging-xcm-builder", - "staging-xcm-executor", - "substrate-wasm-builder", -] - -[[package]] -name = "bridge-hub-polkadot-runtime" -version = "0.1.0" -dependencies = [ - "bridge-hub-test-utils", - "cumulus-pallet-aura-ext", - "cumulus-pallet-dmp-queue", - "cumulus-pallet-parachain-system", - "cumulus-pallet-session-benchmarking", - "cumulus-pallet-xcm", - "cumulus-pallet-xcmp-queue", - "cumulus-primitives-core", - "cumulus-primitives-utility", - "frame-benchmarking", - "frame-executive", - "frame-support", - "frame-system", - "frame-system-benchmarking", - "frame-system-rpc-runtime-api", - "frame-try-runtime", - "hex-literal", - "log", - "pallet-aura", - "pallet-authorship", - "pallet-balances", - "pallet-collator-selection", - "pallet-multisig", - "pallet-session", - "pallet-timestamp", - "pallet-transaction-payment", - "pallet-transaction-payment-rpc-runtime-api", - "pallet-utility", - "pallet-xcm", - "pallet-xcm-benchmarks", - "parachain-info", - "parachains-common", - "parity-scale-codec", - "polkadot-core-primitives", - "polkadot-parachain-primitives", - "polkadot-runtime-common", - "scale-info", - "serde", - "smallvec", - "sp-api", - "sp-block-builder", - "sp-consensus-aura", - "sp-core", - "sp-genesis-builder", - "sp-inherents", - "sp-io", - "sp-offchain", - "sp-runtime", - "sp-session", - "sp-std", - "sp-storage", - "sp-transaction-pool", - "sp-version", - "staging-xcm", - "staging-xcm-builder", - "staging-xcm-executor", - "substrate-wasm-builder", -] - [[package]] name = "bridge-hub-rococo-integration-tests" version = "1.0.0" @@ -2507,77 +2239,6 @@ dependencies = [ "unicode-width", ] -[[package]] -name = "collectives-polkadot-runtime" -version = "1.0.0" -dependencies = [ - "cumulus-pallet-aura-ext", - "cumulus-pallet-dmp-queue", - "cumulus-pallet-parachain-system", - "cumulus-pallet-session-benchmarking", - "cumulus-pallet-xcm", - "cumulus-pallet-xcmp-queue", - "cumulus-primitives-core", - "cumulus-primitives-utility", - "frame-benchmarking", - "frame-executive", - "frame-support", - "frame-system", - "frame-system-benchmarking", - "frame-system-rpc-runtime-api", - "frame-try-runtime", - "hex-literal", - "log", - "pallet-alliance", - "pallet-aura", - "pallet-authorship", - "pallet-balances", - "pallet-collator-selection", - "pallet-collective", - "pallet-collective-content", - "pallet-core-fellowship", - "pallet-multisig", - "pallet-preimage", - "pallet-proxy", - "pallet-ranked-collective", - "pallet-referenda", - "pallet-salary", - "pallet-scheduler", - "pallet-session", - "pallet-timestamp", - "pallet-transaction-payment", - "pallet-transaction-payment-rpc-runtime-api", - "pallet-utility", - "pallet-xcm", - "parachain-info", - "parachains-common", - "parity-scale-codec", - "polkadot-core-primitives", - "polkadot-parachain-primitives", - "polkadot-runtime-common", - "scale-info", - "smallvec", - "sp-api", - "sp-arithmetic", - "sp-block-builder", - "sp-consensus-aura", - "sp-core", - "sp-genesis-builder", - "sp-inherents", - "sp-io", - "sp-offchain", - "sp-runtime", - "sp-session", - "sp-std", - "sp-storage", - "sp-transaction-pool", - "sp-version", - "staging-xcm", - "staging-xcm-builder", - "staging-xcm-executor", - "substrate-wasm-builder", -] - [[package]] name = "color-eyre" version = "0.6.2" @@ -5714,49 +5375,6 @@ dependencies = [ "regex", ] -[[package]] -name = "glutton-runtime" -version = "1.0.0" -dependencies = [ - "cumulus-pallet-aura-ext", - "cumulus-pallet-parachain-system", - "cumulus-pallet-xcm", - "cumulus-primitives-core", - "cumulus-primitives-timestamp", - "frame-benchmarking", - "frame-executive", - "frame-support", - "frame-system", - "frame-system-benchmarking", - "frame-system-rpc-runtime-api", - "frame-try-runtime", - "pallet-aura", - "pallet-glutton", - "pallet-sudo", - "pallet-timestamp", - "parachain-info", - "parachains-common", - "parity-scale-codec", - "scale-info", - "sp-api", - "sp-block-builder", - "sp-consensus-aura", - "sp-core", - "sp-genesis-builder", - "sp-inherents", - "sp-offchain", - "sp-runtime", - "sp-session", - "sp-std", - "sp-storage", - "sp-transaction-pool", - "sp-version", - "staging-xcm", - "staging-xcm-builder", - "staging-xcm-executor", - "substrate-wasm-builder", -] - [[package]] name = "group" version = "0.12.1" @@ -6284,15 +5902,10 @@ dependencies = [ name = "integration-tests-common" version = "1.0.0" dependencies = [ - "asset-hub-kusama-runtime", - "asset-hub-polkadot-runtime", "asset-hub-westend-runtime", "bp-messages", - "bridge-hub-kusama-runtime", - "bridge-hub-polkadot-runtime", "bridge-hub-rococo-runtime", "bridge-runtime-common", - "collectives-polkadot-runtime", "cumulus-pallet-dmp-queue", "cumulus-pallet-parachain-system", "cumulus-pallet-xcmp-queue", @@ -9204,21 +8817,6 @@ dependencies = [ "sp-std", ] -[[package]] -name = "pallet-collective-content" -version = "0.1.0" -dependencies = [ - "frame-benchmarking", - "frame-support", - "frame-system", - "parity-scale-codec", - "scale-info", - "sp-core", - "sp-io", - "sp-runtime", - "sp-std", -] - [[package]] name = "pallet-contracts" version = "4.0.0-dev" @@ -12289,15 +11887,10 @@ name = "polkadot-parachain-bin" version = "1.1.0" dependencies = [ "assert_cmd", - "asset-hub-kusama-runtime", - "asset-hub-polkadot-runtime", "asset-hub-westend-runtime", "async-trait", - "bridge-hub-kusama-runtime", - "bridge-hub-polkadot-runtime", "bridge-hub-rococo-runtime", "clap 4.4.4", - "collectives-polkadot-runtime", "color-print", "contracts-rococo-runtime", "cumulus-client-cli", @@ -12313,7 +11906,6 @@ dependencies = [ "frame-benchmarking", "frame-benchmarking-cli", "futures", - "glutton-runtime", "hex-literal", "jsonrpsee", "log", diff --git a/Cargo.toml b/Cargo.toml index 7edc28daf76d..8a65b5578331 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -64,18 +64,14 @@ members = [ "cumulus/parachains/integration-tests/emulated/common", "cumulus/parachains/pallets/parachain-info", "cumulus/parachains/pallets/ping", - "cumulus/parachains/runtimes/assets/asset-hub-kusama", - "cumulus/parachains/runtimes/assets/asset-hub-polkadot", "cumulus/parachains/runtimes/assets/asset-hub-westend", "cumulus/parachains/runtimes/assets/common", "cumulus/parachains/runtimes/assets/test-utils", - "cumulus/parachains/runtimes/bridge-hubs/bridge-hub-kusama", - "cumulus/parachains/runtimes/bridge-hubs/bridge-hub-polkadot", "cumulus/parachains/runtimes/bridge-hubs/bridge-hub-rococo", "cumulus/parachains/runtimes/bridge-hubs/test-utils", - "cumulus/parachains/runtimes/collectives/collectives-polkadot", + "cumulus/parachains/runtimes/collectives/collectives-westend", "cumulus/parachains/runtimes/contracts/contracts-rococo", - "cumulus/parachains/runtimes/glutton/glutton-kusama", + "cumulus/parachains/runtimes/glutton/glutton-westend", "cumulus/parachains/runtimes/starters/seedling", "cumulus/parachains/runtimes/starters/shell", "cumulus/parachains/runtimes/test-utils", diff --git a/cumulus/parachains/runtimes/assets/asset-hub-kusama/Cargo.toml b/cumulus/parachains/runtimes/assets/asset-hub-kusama/Cargo.toml deleted file mode 100644 index eb0f249aaae7..000000000000 --- a/cumulus/parachains/runtimes/assets/asset-hub-kusama/Cargo.toml +++ /dev/null @@ -1,227 +0,0 @@ -[package] -name = "asset-hub-kusama-runtime" -version = "0.9.420" -authors.workspace = true -edition.workspace = true -description = "Kusama variant of Asset Hub parachain runtime" - -[dependencies] -codec = { package = "parity-scale-codec", version = "3.0.0", default-features = false, features = ["derive", "max-encoded-len"] } -hex-literal = { version = "0.4.1" } -log = { version = "0.4.20", default-features = false } -scale-info = { version = "2.9.0", default-features = false, features = ["derive"] } -smallvec = "1.11.0" - -# Substrate -frame-benchmarking = { path = "../../../../../substrate/frame/benchmarking", default-features = false, optional = true} -frame-executive = { path = "../../../../../substrate/frame/executive", default-features = false} -frame-support = { path = "../../../../../substrate/frame/support", default-features = false} -frame-system = { path = "../../../../../substrate/frame/system", default-features = false} -frame-system-benchmarking = { path = "../../../../../substrate/frame/system/benchmarking", default-features = false, optional = true} -frame-system-rpc-runtime-api = { path = "../../../../../substrate/frame/system/rpc/runtime-api", default-features = false} -frame-try-runtime = { path = "../../../../../substrate/frame/try-runtime", default-features = false, optional = true} -pallet-asset-conversion-tx-payment = { path = "../../../../../substrate/frame/transaction-payment/asset-conversion-tx-payment", default-features = false} -pallet-assets = { path = "../../../../../substrate/frame/assets", default-features = false} -pallet-asset-conversion = { path = "../../../../../substrate/frame/asset-conversion", default-features = false} -pallet-aura = { path = "../../../../../substrate/frame/aura", default-features = false} -pallet-authorship = { path = "../../../../../substrate/frame/authorship", default-features = false} -pallet-balances = { path = "../../../../../substrate/frame/balances", default-features = false} -pallet-multisig = { path = "../../../../../substrate/frame/multisig", default-features = false} -pallet-nft-fractionalization = { path = "../../../../../substrate/frame/nft-fractionalization", default-features = false} -pallet-nfts = { path = "../../../../../substrate/frame/nfts", default-features = false} -pallet-nfts-runtime-api = { path = "../../../../../substrate/frame/nfts/runtime-api", default-features = false} -pallet-proxy = { path = "../../../../../substrate/frame/proxy", default-features = false} -pallet-session = { path = "../../../../../substrate/frame/session", default-features = false} -pallet-state-trie-migration = { path = "../../../../../substrate/frame/state-trie-migration", default-features = false, optional = true } -pallet-timestamp = { path = "../../../../../substrate/frame/timestamp", default-features = false} -pallet-transaction-payment = { path = "../../../../../substrate/frame/transaction-payment", default-features = false} -pallet-transaction-payment-rpc-runtime-api = { path = "../../../../../substrate/frame/transaction-payment/rpc/runtime-api", default-features = false} -pallet-uniques = { path = "../../../../../substrate/frame/uniques", default-features = false} -pallet-utility = { path = "../../../../../substrate/frame/utility", default-features = false} -sp-api = { path = "../../../../../substrate/primitives/api", default-features = false} -sp-block-builder = { path = "../../../../../substrate/primitives/block-builder", default-features = false} -sp-consensus-aura = { path = "../../../../../substrate/primitives/consensus/aura", default-features = false} -sp-core = { path = "../../../../../substrate/primitives/core", default-features = false} -sp-genesis-builder = { path = "../../../../../substrate/primitives/genesis-builder", default-features = false } -sp-inherents = { path = "../../../../../substrate/primitives/inherents", default-features = false} -sp-offchain = { path = "../../../../../substrate/primitives/offchain", default-features = false} -sp-runtime = { path = "../../../../../substrate/primitives/runtime", default-features = false} -sp-session = { path = "../../../../../substrate/primitives/session", default-features = false} -sp-std = { path = "../../../../../substrate/primitives/std", default-features = false} -sp-storage = { path = "../../../../../substrate/primitives/storage", default-features = false} -sp-transaction-pool = { path = "../../../../../substrate/primitives/transaction-pool", default-features = false} -sp-version = { path = "../../../../../substrate/primitives/version", default-features = false} -sp-weights = { path = "../../../../../substrate/primitives/weights", default-features = false} -# num-traits feature needed for dex integer sq root: -primitive-types = { version = "0.12.1", default-features = false, features = ["codec", "scale-info", "num-traits"] } - -# Polkadot -pallet-xcm = { path = "../../../../../polkadot/xcm/pallet-xcm", default-features = false} -pallet-xcm-benchmarks = { path = "../../../../../polkadot/xcm/pallet-xcm-benchmarks", default-features = false, optional = true } -polkadot-core-primitives = { path = "../../../../../polkadot/core-primitives", default-features = false} -polkadot-parachain-primitives = { path = "../../../../../polkadot/parachain", default-features = false} -polkadot-runtime-common = { path = "../../../../../polkadot/runtime/common", default-features = false} -xcm = { package = "staging-xcm", path = "../../../../../polkadot/xcm", default-features = false} -xcm-builder = { package = "staging-xcm-builder", path = "../../../../../polkadot/xcm/xcm-builder", default-features = false} -xcm-executor = { package = "staging-xcm-executor", path = "../../../../../polkadot/xcm/xcm-executor", default-features = false} - -# Cumulus -cumulus-pallet-aura-ext = { path = "../../../../pallets/aura-ext", default-features = false } -cumulus-pallet-dmp-queue = { path = "../../../../pallets/dmp-queue", default-features = false } -cumulus-pallet-parachain-system = { path = "../../../../pallets/parachain-system", default-features = false, features = ["parameterized-consensus-hook",] } -cumulus-pallet-session-benchmarking = { path = "../../../../pallets/session-benchmarking", default-features = false} -cumulus-pallet-xcm = { path = "../../../../pallets/xcm", default-features = false } -cumulus-pallet-xcmp-queue = { path = "../../../../pallets/xcmp-queue", default-features = false } -cumulus-primitives-core = { path = "../../../../primitives/core", default-features = false } -cumulus-primitives-utility = { path = "../../../../primitives/utility", default-features = false } -pallet-collator-selection = { path = "../../../../pallets/collator-selection", default-features = false } -parachain-info = { path = "../../../pallets/parachain-info", default-features = false } -parachains-common = { path = "../../../common", default-features = false } -assets-common = { path = "../common", default-features = false } - -[dev-dependencies] -asset-test-utils = { path = "../test-utils" } - -[build-dependencies] -substrate-wasm-builder = { path = "../../../../../substrate/utils/wasm-builder", optional = true } - -[features] -default = [ "std" ] -# When enabled the `state_version` is set to `1`. -# This means that the chain will start using the new state format. The migration is lazy, so -# it requires to write a storage value to use the new state format. To migrate all the other -# storage values that aren't touched the state migration pallet is added as well. -# This pallet will migrate the entire state, controlled through some account. -# -# This feature should be removed when the main-net will be migrated. -state-trie-version-1 = [ "pallet-state-trie-migration" ] -runtime-benchmarks = [ - "assets-common/runtime-benchmarks", - "cumulus-pallet-parachain-system/runtime-benchmarks", - "cumulus-pallet-session-benchmarking/runtime-benchmarks", - "cumulus-pallet-xcmp-queue/runtime-benchmarks", - "cumulus-primitives-utility/runtime-benchmarks", - "frame-benchmarking/runtime-benchmarks", - "frame-support/runtime-benchmarks", - "frame-system-benchmarking/runtime-benchmarks", - "frame-system/runtime-benchmarks", - "pallet-asset-conversion/runtime-benchmarks", - "pallet-assets/runtime-benchmarks", - "pallet-balances/runtime-benchmarks", - "pallet-collator-selection/runtime-benchmarks", - "pallet-multisig/runtime-benchmarks", - "pallet-nft-fractionalization/runtime-benchmarks", - "pallet-nfts/runtime-benchmarks", - "pallet-proxy/runtime-benchmarks", - "pallet-state-trie-migration/runtime-benchmarks", - "pallet-timestamp/runtime-benchmarks", - "pallet-uniques/runtime-benchmarks", - "pallet-utility/runtime-benchmarks", - "pallet-xcm-benchmarks/runtime-benchmarks", - "pallet-xcm/runtime-benchmarks", - "parachains-common/runtime-benchmarks", - "polkadot-parachain-primitives/runtime-benchmarks", - "polkadot-runtime-common/runtime-benchmarks", - "sp-runtime/runtime-benchmarks", - "xcm-builder/runtime-benchmarks", - "xcm-executor/runtime-benchmarks", -] -try-runtime = [ - "cumulus-pallet-aura-ext/try-runtime", - "cumulus-pallet-dmp-queue/try-runtime", - "cumulus-pallet-parachain-system/try-runtime", - "cumulus-pallet-xcm/try-runtime", - "cumulus-pallet-xcmp-queue/try-runtime", - "frame-executive/try-runtime", - "frame-support/try-runtime", - "frame-system/try-runtime", - "frame-try-runtime/try-runtime", - "pallet-asset-conversion-tx-payment/try-runtime", - "pallet-asset-conversion/try-runtime", - "pallet-assets/try-runtime", - "pallet-aura/try-runtime", - "pallet-authorship/try-runtime", - "pallet-balances/try-runtime", - "pallet-collator-selection/try-runtime", - "pallet-multisig/try-runtime", - "pallet-nft-fractionalization/try-runtime", - "pallet-nfts/try-runtime", - "pallet-proxy/try-runtime", - "pallet-session/try-runtime", - "pallet-state-trie-migration/try-runtime", - "pallet-timestamp/try-runtime", - "pallet-transaction-payment/try-runtime", - "pallet-uniques/try-runtime", - "pallet-utility/try-runtime", - "pallet-xcm/try-runtime", - "parachain-info/try-runtime", - "polkadot-runtime-common/try-runtime", - "sp-runtime/try-runtime", -] -std = [ - "assets-common/std", - "codec/std", - "cumulus-pallet-aura-ext/std", - "cumulus-pallet-dmp-queue/std", - "cumulus-pallet-parachain-system/std", - "cumulus-pallet-session-benchmarking/std", - "cumulus-pallet-xcm/std", - "cumulus-pallet-xcmp-queue/std", - "cumulus-primitives-core/std", - "cumulus-primitives-utility/std", - "frame-benchmarking?/std", - "frame-executive/std", - "frame-support/std", - "frame-system-benchmarking?/std", - "frame-system-rpc-runtime-api/std", - "frame-system/std", - "frame-try-runtime?/std", - "log/std", - "pallet-asset-conversion-tx-payment/std", - "pallet-asset-conversion/std", - "pallet-assets/std", - "pallet-aura/std", - "pallet-authorship/std", - "pallet-balances/std", - "pallet-collator-selection/std", - "pallet-multisig/std", - "pallet-nft-fractionalization/std", - "pallet-nfts-runtime-api/std", - "pallet-nfts/std", - "pallet-proxy/std", - "pallet-session/std", - "pallet-state-trie-migration/std", - "pallet-timestamp/std", - "pallet-transaction-payment-rpc-runtime-api/std", - "pallet-transaction-payment/std", - "pallet-uniques/std", - "pallet-utility/std", - "pallet-xcm-benchmarks?/std", - "pallet-xcm/std", - "parachain-info/std", - "parachains-common/std", - "polkadot-core-primitives/std", - "polkadot-parachain-primitives/std", - "polkadot-runtime-common/std", - "scale-info/std", - "sp-api/std", - "sp-block-builder/std", - "sp-consensus-aura/std", - "sp-core/std", - "sp-genesis-builder/std", - "sp-inherents/std", - "sp-offchain/std", - "sp-runtime/std", - "sp-session/std", - "sp-std/std", - "sp-storage/std", - "sp-transaction-pool/std", - "sp-version/std", - "sp-weights/std", - "substrate-wasm-builder", - "xcm-builder/std", - "xcm-executor/std", - "xcm/std", -] - -experimental = [ "pallet-aura/experimental" ] diff --git a/cumulus/parachains/runtimes/assets/asset-hub-kusama/src/lib.rs b/cumulus/parachains/runtimes/assets/asset-hub-kusama/src/lib.rs deleted file mode 100644 index 40ce122112d2..000000000000 --- a/cumulus/parachains/runtimes/assets/asset-hub-kusama/src/lib.rs +++ /dev/null @@ -1,1466 +0,0 @@ -// 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. - -//! # Asset Hub Kusama Runtime -//! -//! Asset Hub Kusama, formerly known as "Statemine", is the canary network for its Polkadot cousin. - -#![cfg_attr(not(feature = "std"), no_std)] -#![recursion_limit = "256"] - -// Make the WASM binary available. -#[cfg(feature = "std")] -include!(concat!(env!("OUT_DIR"), "/wasm_binary.rs")); - -mod weights; -pub mod xcm_config; - -use assets_common::{ - foreign_creators::ForeignCreators, - local_and_foreign_assets::{LocalAndForeignAssets, MultiLocationConverter}, - matching::FromSiblingParachain, - AssetIdForTrustBackedAssetsConvert, MultiLocationForAssetId, -}; -use cumulus_pallet_parachain_system::RelayNumberStrictlyIncreases; -use sp_api::impl_runtime_apis; -use sp_core::{crypto::KeyTypeId, OpaqueMetadata}; -use sp_runtime::{ - create_runtime_str, generic, impl_opaque_keys, - traits::{AccountIdConversion, AccountIdLookup, BlakeTwo256, Block as BlockT, Verify}, - transaction_validity::{TransactionSource, TransactionValidity}, - ApplyExtrinsicResult, Permill, -}; - -use sp_std::prelude::*; -#[cfg(feature = "std")] -use sp_version::NativeVersion; -use sp_version::RuntimeVersion; - -use codec::{Decode, Encode, MaxEncodedLen}; -use frame_support::{ - construct_runtime, - dispatch::DispatchClass, - genesis_builder_helper::{build_config, create_default_config}, - ord_parameter_types, parameter_types, - traits::{ - AsEnsureOriginWithArg, ConstBool, ConstU128, ConstU32, ConstU64, ConstU8, EitherOfDiverse, - InstanceFilter, - }, - weights::{ConstantMultiplier, Weight}, - BoundedVec, PalletId, -}; -use frame_system::{ - limits::{BlockLength, BlockWeights}, - EnsureRoot, EnsureSigned, EnsureSignedBy, -}; -use pallet_asset_conversion_tx_payment::AssetConversionAdapter; -use pallet_nfts::PalletFeatures; -pub use parachains_common as common; -use parachains_common::{ - impls::DealWithFees, - kusama::{consensus::*, currency::*, fee::WeightToFee}, - AccountId, AssetIdForTrustBackedAssets, AuraId, Balance, BlockNumber, Hash, Header, Nonce, - Signature, AVERAGE_ON_INITIALIZE_RATIO, DAYS, HOURS, MAXIMUM_BLOCK_WEIGHT, - NORMAL_DISPATCH_RATIO, SLOT_DURATION, -}; -use sp_runtime::RuntimeDebug; -use xcm::opaque::v3::MultiLocation; -use xcm_config::{ - FellowshipLocation, ForeignAssetsConvertedConcreteId, GovernanceLocation, KsmLocation, - PoolAssetsConvertedConcreteId, TrustBackedAssetsConvertedConcreteId, XcmConfig, -}; - -#[cfg(any(feature = "std", test))] -pub use sp_runtime::BuildStorage; - -// Polkadot imports -use pallet_xcm::{EnsureXcm, IsVoiceOfBody}; -use polkadot_runtime_common::{BlockHashCount, SlowAdjustingFeeUpdate}; -use xcm::latest::BodyId; -use xcm_executor::XcmExecutor; - -use crate::xcm_config::{ - ForeignCreatorsSovereignAccountOf, LocalAndForeignAssetsMultiLocationMatcher, - TrustBackedAssetsPalletLocation, -}; -use weights::{BlockExecutionWeight, ExtrinsicBaseWeight, RocksDbWeight}; - -impl_opaque_keys! { - pub struct SessionKeys { - pub aura: Aura, - } -} - -#[cfg(feature = "state-trie-version-1")] -#[sp_version::runtime_version] -pub const VERSION: RuntimeVersion = RuntimeVersion { - // Note: "statemine" is the legacy name for this chain. It has been renamed to - // "asset-hub-kusama". Many wallets/tools depend on the `spec_name`, so it remains "statemine" - // for the time being. Wallets/tools should update to treat "asset-hub-kusama" equally. - spec_name: create_runtime_str!("statemine"), - impl_name: create_runtime_str!("statemine"), - authoring_version: 1, - spec_version: 10000, - impl_version: 0, - apis: RUNTIME_API_VERSIONS, - transaction_version: 13, - state_version: 1, -}; - -#[cfg(not(feature = "state-trie-version-1"))] -#[sp_version::runtime_version] -pub const VERSION: RuntimeVersion = RuntimeVersion { - // Note: "statemine" is the legacy name for this change. It has been renamed to - // "asset-hub-kusama". Many wallets/tools depend on the `spec_name`, so it remains "statemine" - // for the time being. Wallets/tools should update to treat "asset-hub-kusama" equally. - spec_name: create_runtime_str!("statemine"), - impl_name: create_runtime_str!("statemine"), - authoring_version: 1, - spec_version: 10000, - impl_version: 0, - apis: RUNTIME_API_VERSIONS, - transaction_version: 13, - state_version: 0, -}; - -/// The version information used to identify this runtime when compiled natively. -#[cfg(feature = "std")] -pub fn native_version() -> NativeVersion { - NativeVersion { runtime_version: VERSION, can_author_with: Default::default() } -} - -parameter_types! { - pub const Version: RuntimeVersion = VERSION; - pub RuntimeBlockLength: BlockLength = - BlockLength::max_with_normal_ratio(5 * 1024 * 1024, NORMAL_DISPATCH_RATIO); - pub RuntimeBlockWeights: BlockWeights = BlockWeights::builder() - .base_block(BlockExecutionWeight::get()) - .for_class(DispatchClass::all(), |weights| { - weights.base_extrinsic = ExtrinsicBaseWeight::get(); - }) - .for_class(DispatchClass::Normal, |weights| { - weights.max_total = Some(NORMAL_DISPATCH_RATIO * MAXIMUM_BLOCK_WEIGHT); - }) - .for_class(DispatchClass::Operational, |weights| { - weights.max_total = Some(MAXIMUM_BLOCK_WEIGHT); - // Operational transactions have some extra reserved space, so that they - // are included even if block reached `MAXIMUM_BLOCK_WEIGHT`. - weights.reserved = Some( - MAXIMUM_BLOCK_WEIGHT - NORMAL_DISPATCH_RATIO * MAXIMUM_BLOCK_WEIGHT - ); - }) - .avg_block_initialization(AVERAGE_ON_INITIALIZE_RATIO) - .build_or_panic(); - pub const SS58Prefix: u8 = 2; -} - -// Configure FRAME pallets to include in runtime. -impl frame_system::Config for Runtime { - type BaseCallFilter = frame_support::traits::Everything; - type BlockWeights = RuntimeBlockWeights; - type BlockLength = RuntimeBlockLength; - type AccountId = AccountId; - type RuntimeCall = RuntimeCall; - type Lookup = AccountIdLookup; - type Nonce = Nonce; - type Hash = Hash; - type Hashing = BlakeTwo256; - type Block = Block; - type RuntimeEvent = RuntimeEvent; - type RuntimeOrigin = RuntimeOrigin; - type BlockHashCount = BlockHashCount; - type DbWeight = RocksDbWeight; - type Version = Version; - type PalletInfo = PalletInfo; - type OnNewAccount = (); - type OnKilledAccount = (); - type AccountData = pallet_balances::AccountData; - type SystemWeightInfo = weights::frame_system::WeightInfo; - type SS58Prefix = SS58Prefix; - type OnSetCode = cumulus_pallet_parachain_system::ParachainSetCode; - type MaxConsumers = frame_support::traits::ConstU32<16>; -} - -impl pallet_timestamp::Config for Runtime { - /// A timestamp: milliseconds since the unix epoch. - type Moment = u64; - type OnTimestampSet = Aura; - type MinimumPeriod = ConstU64<{ SLOT_DURATION / 2 }>; - type WeightInfo = weights::pallet_timestamp::WeightInfo; -} - -impl pallet_authorship::Config for Runtime { - type FindAuthor = pallet_session::FindAccountFromAuthorIndex; - type EventHandler = (CollatorSelection,); -} - -parameter_types! { - pub const ExistentialDeposit: Balance = EXISTENTIAL_DEPOSIT; -} - -impl pallet_balances::Config for Runtime { - type MaxLocks = ConstU32<50>; - /// The type for recording an account's balance. - type Balance = Balance; - /// The ubiquitous event type. - type RuntimeEvent = RuntimeEvent; - type DustRemoval = (); - type ExistentialDeposit = ExistentialDeposit; - type AccountStore = System; - type WeightInfo = weights::pallet_balances::WeightInfo; - type MaxReserves = ConstU32<50>; - type ReserveIdentifier = [u8; 8]; - type RuntimeHoldReason = RuntimeHoldReason; - type FreezeIdentifier = (); - // We allow each account to have holds on it from: - // - `NftFractionalization`: 1 - type MaxHolds = ConstU32<1>; - type MaxFreezes = ConstU32<0>; -} - -parameter_types! { - /// Relay Chain `TransactionByteFee` / 10 - pub const TransactionByteFee: Balance = MILLICENTS; -} - -impl pallet_transaction_payment::Config for Runtime { - type RuntimeEvent = RuntimeEvent; - type OnChargeTransaction = - pallet_transaction_payment::CurrencyAdapter>; - type WeightToFee = WeightToFee; - type LengthToFee = ConstantMultiplier; - type FeeMultiplierUpdate = SlowAdjustingFeeUpdate; - type OperationalFeeMultiplier = ConstU8<5>; -} - -parameter_types! { - pub const AssetDeposit: Balance = UNITS / 10; // 1 / 10 UNITS deposit to create asset - pub const AssetAccountDeposit: Balance = deposit(1, 16); - pub const ApprovalDeposit: Balance = EXISTENTIAL_DEPOSIT; - pub const AssetsStringLimit: u32 = 50; - /// Key = 32 bytes, Value = 36 bytes (32+1+1+1+1) - // https://github.com/paritytech/substrate/blob/069917b/frame/assets/src/lib.rs#L257L271 - pub const MetadataDepositBase: Balance = deposit(1, 68); - pub const MetadataDepositPerByte: Balance = deposit(0, 1); -} - -/// We allow root to execute privileged asset operations. -pub type AssetsForceOrigin = EnsureRoot; - -// Called "Trust Backed" assets because these are generally registered by some account, and users of -// the asset assume it has some claimed backing. The pallet is called `Assets` in -// `construct_runtime` to avoid breaking changes on storage reads. -pub type TrustBackedAssetsInstance = pallet_assets::Instance1; -type TrustBackedAssetsCall = pallet_assets::Call; -impl pallet_assets::Config for Runtime { - type RuntimeEvent = RuntimeEvent; - type Balance = Balance; - type AssetId = AssetIdForTrustBackedAssets; - type AssetIdParameter = codec::Compact; - type Currency = Balances; - type CreateOrigin = AsEnsureOriginWithArg>; - type ForceOrigin = AssetsForceOrigin; - type AssetDeposit = AssetDeposit; - type MetadataDepositBase = MetadataDepositBase; - type MetadataDepositPerByte = MetadataDepositPerByte; - type ApprovalDeposit = ApprovalDeposit; - type StringLimit = AssetsStringLimit; - type Freezer = (); - type Extra = (); - type WeightInfo = weights::pallet_assets_local::WeightInfo; - type CallbackHandle = (); - type AssetAccountDeposit = AssetAccountDeposit; - type RemoveItemsLimit = frame_support::traits::ConstU32<1000>; - #[cfg(feature = "runtime-benchmarks")] - type BenchmarkHelper = (); -} - -parameter_types! { - pub const AssetConversionPalletId: PalletId = PalletId(*b"py/ascon"); - pub const AllowMultiAssetPools: bool = false; - // should be non-zero if AllowMultiAssetPools is true, otherwise can be zero - pub const LiquidityWithdrawalFee: Permill = Permill::from_percent(0); -} - -ord_parameter_types! { - pub const AssetConversionOrigin: sp_runtime::AccountId32 = - AccountIdConversion::::into_account_truncating(&AssetConversionPalletId::get()); -} - -pub type PoolAssetsInstance = pallet_assets::Instance3; -impl pallet_assets::Config for Runtime { - type RuntimeEvent = RuntimeEvent; - type Balance = Balance; - type RemoveItemsLimit = ConstU32<1000>; - type AssetId = u32; - type AssetIdParameter = u32; - type Currency = Balances; - type CreateOrigin = - AsEnsureOriginWithArg>; - type ForceOrigin = AssetsForceOrigin; - // Deposits are zero because creation/admin is limited to Asset Conversion pallet. - type AssetDeposit = ConstU128<0>; - type AssetAccountDeposit = ConstU128<0>; - type MetadataDepositBase = ConstU128<0>; - type MetadataDepositPerByte = ConstU128<0>; - type ApprovalDeposit = ApprovalDeposit; - type StringLimit = ConstU32<50>; - type Freezer = (); - type Extra = (); - type WeightInfo = weights::pallet_assets_pool::WeightInfo; - type CallbackHandle = (); - #[cfg(feature = "runtime-benchmarks")] - type BenchmarkHelper = (); -} - -impl pallet_asset_conversion::Config for Runtime { - type RuntimeEvent = RuntimeEvent; - type Balance = Balance; - type HigherPrecisionBalance = sp_core::U256; - type Currency = Balances; - type AssetBalance = Balance; - type AssetId = MultiLocation; - type Assets = LocalAndForeignAssets< - Assets, - AssetIdForTrustBackedAssetsConvert, - ForeignAssets, - >; - type PoolAssets = PoolAssets; - type PoolAssetId = u32; - type PoolSetupFee = ConstU128<0>; // Asset class deposit fees are sufficient to prevent spam - type PoolSetupFeeReceiver = AssetConversionOrigin; - // should be non-zero if `AllowMultiAssetPools` is true, otherwise can be zero. - type LiquidityWithdrawalFee = LiquidityWithdrawalFee; - type LPFee = ConstU32<3>; - type PalletId = AssetConversionPalletId; - type AllowMultiAssetPools = AllowMultiAssetPools; - type MaxSwapPathLength = ConstU32<4>; - type MultiAssetId = Box; - type MultiAssetIdConverter = - MultiLocationConverter; - type MintMinLiquidity = ConstU128<100>; - type WeightInfo = weights::pallet_asset_conversion::WeightInfo; - #[cfg(feature = "runtime-benchmarks")] - type BenchmarkHelper = - crate::xcm_config::BenchmarkMultiLocationConverter>; -} - -parameter_types! { - // we just reuse the same deposits - pub const ForeignAssetsAssetDeposit: Balance = AssetDeposit::get(); - pub const ForeignAssetsAssetAccountDeposit: Balance = AssetAccountDeposit::get(); - pub const ForeignAssetsApprovalDeposit: Balance = ApprovalDeposit::get(); - pub const ForeignAssetsAssetsStringLimit: u32 = AssetsStringLimit::get(); - pub const ForeignAssetsMetadataDepositBase: Balance = MetadataDepositBase::get(); - pub const ForeignAssetsMetadataDepositPerByte: Balance = MetadataDepositPerByte::get(); -} - -/// Assets managed by some foreign location. Note: we do not declare a `ForeignAssetsCall` type, as -/// this type is used in proxy definitions. We assume that a foreign location would not want to set -/// an individual, local account as a proxy for the issuance of their assets. This issuance should -/// be managed by the foreign location's governance. -pub type ForeignAssetsInstance = pallet_assets::Instance2; -impl pallet_assets::Config for Runtime { - type RuntimeEvent = RuntimeEvent; - type Balance = Balance; - type AssetId = MultiLocationForAssetId; - type AssetIdParameter = MultiLocationForAssetId; - type Currency = Balances; - type CreateOrigin = ForeignCreators< - (FromSiblingParachain>,), - ForeignCreatorsSovereignAccountOf, - AccountId, - >; - type ForceOrigin = AssetsForceOrigin; - type AssetDeposit = ForeignAssetsAssetDeposit; - type MetadataDepositBase = ForeignAssetsMetadataDepositBase; - type MetadataDepositPerByte = ForeignAssetsMetadataDepositPerByte; - type ApprovalDeposit = ForeignAssetsApprovalDeposit; - type StringLimit = ForeignAssetsAssetsStringLimit; - type Freezer = (); - type Extra = (); - type WeightInfo = weights::pallet_assets_foreign::WeightInfo; - type CallbackHandle = (); - type AssetAccountDeposit = ForeignAssetsAssetAccountDeposit; - type RemoveItemsLimit = frame_support::traits::ConstU32<1000>; - #[cfg(feature = "runtime-benchmarks")] - type BenchmarkHelper = xcm_config::XcmBenchmarkHelper; -} - -parameter_types! { - // One storage item; key size is 32; value is size 4+4+16+32 bytes = 56 bytes. - pub const DepositBase: Balance = deposit(1, 88); - // Additional storage item size of 32 bytes. - pub const DepositFactor: Balance = deposit(0, 32); - pub const MaxSignatories: u32 = 100; -} - -impl pallet_multisig::Config for Runtime { - type RuntimeEvent = RuntimeEvent; - type RuntimeCall = RuntimeCall; - type Currency = Balances; - type DepositBase = DepositBase; - type DepositFactor = DepositFactor; - type MaxSignatories = MaxSignatories; - type WeightInfo = weights::pallet_multisig::WeightInfo; -} - -impl pallet_utility::Config for Runtime { - type RuntimeEvent = RuntimeEvent; - type RuntimeCall = RuntimeCall; - type PalletsOrigin = OriginCaller; - type WeightInfo = weights::pallet_utility::WeightInfo; -} - -parameter_types! { - // One storage item; key size 32, value size 8; . - pub const ProxyDepositBase: Balance = deposit(1, 40); - // Additional storage item size of 33 bytes. - pub const ProxyDepositFactor: Balance = deposit(0, 33); - pub const MaxProxies: u16 = 32; - // One storage item; key size 32, value size 16 - pub const AnnouncementDepositBase: Balance = deposit(1, 48); - pub const AnnouncementDepositFactor: Balance = deposit(0, 66); - pub const MaxPending: u16 = 32; -} - -/// The type used to represent the kinds of proxying allowed. -#[derive( - Copy, - Clone, - Eq, - PartialEq, - Ord, - PartialOrd, - Encode, - Decode, - RuntimeDebug, - MaxEncodedLen, - scale_info::TypeInfo, -)] -pub enum ProxyType { - /// Fully permissioned proxy. Can execute any call on behalf of _proxied_. - Any, - /// Can execute any call that does not transfer funds or assets. - NonTransfer, - /// Proxy with the ability to reject time-delay proxy announcements. - CancelProxy, - /// Assets proxy. Can execute any call from `assets`, **including asset transfers**. - Assets, - /// Owner proxy. Can execute calls related to asset ownership. - AssetOwner, - /// Asset manager. Can execute calls related to asset management. - AssetManager, - /// Collator selection proxy. Can execute calls related to collator selection mechanism. - Collator, -} -impl Default for ProxyType { - fn default() -> Self { - Self::Any - } -} - -impl InstanceFilter for ProxyType { - fn filter(&self, c: &RuntimeCall) -> bool { - match self { - ProxyType::Any => true, - ProxyType::NonTransfer => !matches!( - c, - RuntimeCall::Balances { .. } | - RuntimeCall::Assets { .. } | - RuntimeCall::NftFractionalization { .. } | - RuntimeCall::Nfts { .. } | - RuntimeCall::Uniques { .. } - ), - ProxyType::CancelProxy => matches!( - c, - RuntimeCall::Proxy(pallet_proxy::Call::reject_announcement { .. }) | - RuntimeCall::Utility { .. } | - RuntimeCall::Multisig { .. } - ), - ProxyType::Assets => { - matches!( - c, - RuntimeCall::Assets { .. } | - RuntimeCall::Utility { .. } | - RuntimeCall::Multisig { .. } | - RuntimeCall::NftFractionalization { .. } | - RuntimeCall::Nfts { .. } | RuntimeCall::Uniques { .. } - ) - }, - ProxyType::AssetOwner => matches!( - c, - RuntimeCall::Assets(TrustBackedAssetsCall::create { .. }) | - RuntimeCall::Assets(TrustBackedAssetsCall::start_destroy { .. }) | - RuntimeCall::Assets(TrustBackedAssetsCall::destroy_accounts { .. }) | - RuntimeCall::Assets(TrustBackedAssetsCall::destroy_approvals { .. }) | - RuntimeCall::Assets(TrustBackedAssetsCall::finish_destroy { .. }) | - RuntimeCall::Assets(TrustBackedAssetsCall::transfer_ownership { .. }) | - RuntimeCall::Assets(TrustBackedAssetsCall::set_team { .. }) | - RuntimeCall::Assets(TrustBackedAssetsCall::set_metadata { .. }) | - RuntimeCall::Assets(TrustBackedAssetsCall::clear_metadata { .. }) | - RuntimeCall::Assets(TrustBackedAssetsCall::set_min_balance { .. }) | - RuntimeCall::Nfts(pallet_nfts::Call::create { .. }) | - RuntimeCall::Nfts(pallet_nfts::Call::destroy { .. }) | - RuntimeCall::Nfts(pallet_nfts::Call::redeposit { .. }) | - RuntimeCall::Nfts(pallet_nfts::Call::transfer_ownership { .. }) | - RuntimeCall::Nfts(pallet_nfts::Call::set_team { .. }) | - RuntimeCall::Nfts(pallet_nfts::Call::set_collection_max_supply { .. }) | - RuntimeCall::Nfts(pallet_nfts::Call::lock_collection { .. }) | - RuntimeCall::Uniques(pallet_uniques::Call::create { .. }) | - RuntimeCall::Uniques(pallet_uniques::Call::destroy { .. }) | - RuntimeCall::Uniques(pallet_uniques::Call::transfer_ownership { .. }) | - RuntimeCall::Uniques(pallet_uniques::Call::set_team { .. }) | - RuntimeCall::Uniques(pallet_uniques::Call::set_metadata { .. }) | - RuntimeCall::Uniques(pallet_uniques::Call::set_attribute { .. }) | - RuntimeCall::Uniques(pallet_uniques::Call::set_collection_metadata { .. }) | - RuntimeCall::Uniques(pallet_uniques::Call::clear_metadata { .. }) | - RuntimeCall::Uniques(pallet_uniques::Call::clear_attribute { .. }) | - RuntimeCall::Uniques(pallet_uniques::Call::clear_collection_metadata { .. }) | - RuntimeCall::Uniques(pallet_uniques::Call::set_collection_max_supply { .. }) | - RuntimeCall::Utility { .. } | - RuntimeCall::Multisig { .. } - ), - ProxyType::AssetManager => matches!( - c, - RuntimeCall::Assets(TrustBackedAssetsCall::mint { .. }) | - RuntimeCall::Assets(TrustBackedAssetsCall::burn { .. }) | - RuntimeCall::Assets(TrustBackedAssetsCall::freeze { .. }) | - RuntimeCall::Assets(TrustBackedAssetsCall::block { .. }) | - RuntimeCall::Assets(TrustBackedAssetsCall::thaw { .. }) | - RuntimeCall::Assets(TrustBackedAssetsCall::freeze_asset { .. }) | - RuntimeCall::Assets(TrustBackedAssetsCall::thaw_asset { .. }) | - RuntimeCall::Assets(TrustBackedAssetsCall::touch_other { .. }) | - RuntimeCall::Assets(TrustBackedAssetsCall::refund_other { .. }) | - RuntimeCall::Nfts(pallet_nfts::Call::force_mint { .. }) | - RuntimeCall::Nfts(pallet_nfts::Call::update_mint_settings { .. }) | - RuntimeCall::Nfts(pallet_nfts::Call::mint_pre_signed { .. }) | - RuntimeCall::Nfts(pallet_nfts::Call::set_attributes_pre_signed { .. }) | - RuntimeCall::Nfts(pallet_nfts::Call::lock_item_transfer { .. }) | - RuntimeCall::Nfts(pallet_nfts::Call::unlock_item_transfer { .. }) | - RuntimeCall::Nfts(pallet_nfts::Call::lock_item_properties { .. }) | - RuntimeCall::Nfts(pallet_nfts::Call::set_metadata { .. }) | - RuntimeCall::Nfts(pallet_nfts::Call::clear_metadata { .. }) | - RuntimeCall::Nfts(pallet_nfts::Call::set_collection_metadata { .. }) | - RuntimeCall::Nfts(pallet_nfts::Call::clear_collection_metadata { .. }) | - RuntimeCall::Uniques(pallet_uniques::Call::mint { .. }) | - RuntimeCall::Uniques(pallet_uniques::Call::burn { .. }) | - RuntimeCall::Uniques(pallet_uniques::Call::freeze { .. }) | - RuntimeCall::Uniques(pallet_uniques::Call::thaw { .. }) | - RuntimeCall::Uniques(pallet_uniques::Call::freeze_collection { .. }) | - RuntimeCall::Uniques(pallet_uniques::Call::thaw_collection { .. }) | - RuntimeCall::Utility { .. } | - RuntimeCall::Multisig { .. } - ), - ProxyType::Collator => matches!( - c, - RuntimeCall::CollatorSelection { .. } | - RuntimeCall::Utility { .. } | - RuntimeCall::Multisig { .. } - ), - } - } - - fn is_superset(&self, o: &Self) -> bool { - match (self, o) { - (x, y) if x == y => true, - (ProxyType::Any, _) => true, - (_, ProxyType::Any) => false, - (ProxyType::Assets, ProxyType::AssetOwner) => true, - (ProxyType::Assets, ProxyType::AssetManager) => true, - (ProxyType::NonTransfer, ProxyType::Collator) => true, - _ => false, - } - } -} - -impl pallet_proxy::Config for Runtime { - type RuntimeEvent = RuntimeEvent; - type RuntimeCall = RuntimeCall; - type Currency = Balances; - type ProxyType = ProxyType; - type ProxyDepositBase = ProxyDepositBase; - type ProxyDepositFactor = ProxyDepositFactor; - type MaxProxies = MaxProxies; - type WeightInfo = weights::pallet_proxy::WeightInfo; - type MaxPending = MaxPending; - type CallHasher = BlakeTwo256; - type AnnouncementDepositBase = AnnouncementDepositBase; - type AnnouncementDepositFactor = AnnouncementDepositFactor; -} - -parameter_types! { - pub const ReservedXcmpWeight: Weight = MAXIMUM_BLOCK_WEIGHT.saturating_div(4); - pub const ReservedDmpWeight: Weight = MAXIMUM_BLOCK_WEIGHT.saturating_div(4); -} - -impl cumulus_pallet_parachain_system::Config for Runtime { - type RuntimeEvent = RuntimeEvent; - type OnSystemEvent = (); - type SelfParaId = parachain_info::Pallet; - type DmpMessageHandler = DmpQueue; - type ReservedDmpWeight = ReservedDmpWeight; - type OutboundXcmpMessageSource = XcmpQueue; - type XcmpMessageHandler = XcmpQueue; - type ReservedXcmpWeight = ReservedXcmpWeight; - type CheckAssociatedRelayNumber = RelayNumberStrictlyIncreases; - type ConsensusHook = cumulus_pallet_aura_ext::FixedVelocityConsensusHook< - Runtime, - RELAY_CHAIN_SLOT_DURATION_MILLIS, - BLOCK_PROCESSING_VELOCITY, - UNINCLUDED_SEGMENT_CAPACITY, - >; -} - -impl parachain_info::Config for Runtime {} - -impl cumulus_pallet_aura_ext::Config for Runtime {} - -parameter_types! { - // Fellows pluralistic body. - pub const FellowsBodyId: BodyId = BodyId::Technical; -} - -impl cumulus_pallet_xcmp_queue::Config for Runtime { - type RuntimeEvent = RuntimeEvent; - type XcmExecutor = XcmExecutor; - type ChannelInfo = ParachainSystem; - type VersionWrapper = PolkadotXcm; - type ExecuteOverweightOrigin = EnsureRoot; - type ControllerOrigin = EitherOfDiverse< - EnsureRoot, - EnsureXcm>, - >; - type ControllerOriginConverter = xcm_config::XcmOriginToTransactDispatchOrigin; - type WeightInfo = weights::cumulus_pallet_xcmp_queue::WeightInfo; - type PriceForSiblingDelivery = (); -} - -impl cumulus_pallet_dmp_queue::Config for Runtime { - type RuntimeEvent = RuntimeEvent; - type XcmExecutor = XcmExecutor; - type ExecuteOverweightOrigin = EnsureRoot; -} - -parameter_types! { - pub const Period: u32 = 6 * HOURS; - pub const Offset: u32 = 0; -} - -impl pallet_session::Config for Runtime { - type RuntimeEvent = RuntimeEvent; - type ValidatorId = ::AccountId; - // we don't have stash and controller, thus we don't need the convert as well. - type ValidatorIdOf = pallet_collator_selection::IdentityCollator; - type ShouldEndSession = pallet_session::PeriodicSessions; - type NextSessionRotation = pallet_session::PeriodicSessions; - type SessionManager = CollatorSelection; - // Essentially just Aura, but let's be pedantic. - type SessionHandler = ::KeyTypeIdProviders; - type Keys = SessionKeys; - type WeightInfo = weights::pallet_session::WeightInfo; -} - -impl pallet_aura::Config for Runtime { - type AuthorityId = AuraId; - type DisabledValidators = (); - type MaxAuthorities = ConstU32<100_000>; - type AllowMultipleBlocksPerSlot = ConstBool; - #[cfg(feature = "experimental")] - type SlotDuration = pallet_aura::MinimumPeriodTimesTwo; -} - -parameter_types! { - pub const PotId: PalletId = PalletId(*b"PotStake"); - pub const SessionLength: BlockNumber = 6 * HOURS; - // StakingAdmin pluralistic body. - pub const StakingAdminBodyId: BodyId = BodyId::Defense; -} - -/// We allow root and the `StakingAdmin` to execute privileged collator selection operations. -pub type CollatorSelectionUpdateOrigin = EitherOfDiverse< - EnsureRoot, - EnsureXcm>, ->; - -impl pallet_collator_selection::Config for Runtime { - type RuntimeEvent = RuntimeEvent; - type Currency = Balances; - type UpdateOrigin = CollatorSelectionUpdateOrigin; - type PotId = PotId; - type MaxCandidates = ConstU32<100>; - type MinEligibleCollators = ConstU32<4>; - type MaxInvulnerables = ConstU32<20>; - // should be a multiple of session or things will get inconsistent - type KickThreshold = Period; - type ValidatorId = ::AccountId; - type ValidatorIdOf = pallet_collator_selection::IdentityCollator; - type ValidatorRegistration = Session; - type WeightInfo = weights::pallet_collator_selection::WeightInfo; -} - -impl pallet_asset_conversion_tx_payment::Config for Runtime { - type RuntimeEvent = RuntimeEvent; - type Fungibles = LocalAndForeignAssets< - Assets, - AssetIdForTrustBackedAssetsConvert, - ForeignAssets, - >; - type OnChargeAssetTransaction = AssetConversionAdapter; -} - -parameter_types! { - pub const UniquesCollectionDeposit: Balance = UNITS / 10; // 1 / 10 UNIT deposit to create a collection - pub const UniquesItemDeposit: Balance = UNITS / 1_000; // 1 / 1000 UNIT deposit to mint an item - pub const UniquesMetadataDepositBase: Balance = deposit(1, 129); - pub const UniquesAttributeDepositBase: Balance = deposit(1, 0); - pub const UniquesDepositPerByte: Balance = deposit(0, 1); -} - -impl pallet_uniques::Config for Runtime { - type RuntimeEvent = RuntimeEvent; - type CollectionId = u32; - type ItemId = u32; - type Currency = Balances; - type ForceOrigin = AssetsForceOrigin; - type CollectionDeposit = UniquesCollectionDeposit; - type ItemDeposit = UniquesItemDeposit; - type MetadataDepositBase = UniquesMetadataDepositBase; - type AttributeDepositBase = UniquesAttributeDepositBase; - type DepositPerByte = UniquesDepositPerByte; - type StringLimit = ConstU32<128>; - type KeyLimit = ConstU32<32>; - type ValueLimit = ConstU32<64>; - type WeightInfo = weights::pallet_uniques::WeightInfo; - #[cfg(feature = "runtime-benchmarks")] - type Helper = (); - type CreateOrigin = AsEnsureOriginWithArg>; - type Locker = (); -} - -parameter_types! { - pub const NftFractionalizationPalletId: PalletId = PalletId(*b"fraction"); - pub NewAssetSymbol: BoundedVec = (*b"FRAC").to_vec().try_into().unwrap(); - pub NewAssetName: BoundedVec = (*b"Frac").to_vec().try_into().unwrap(); -} - -impl pallet_nft_fractionalization::Config for Runtime { - type RuntimeEvent = RuntimeEvent; - type Deposit = AssetDeposit; - type Currency = Balances; - type NewAssetSymbol = NewAssetSymbol; - type NewAssetName = NewAssetName; - type StringLimit = AssetsStringLimit; - type NftCollectionId = ::CollectionId; - type NftId = ::ItemId; - type AssetBalance = ::Balance; - type AssetId = >::AssetId; - type Assets = Assets; - type Nfts = Nfts; - type PalletId = NftFractionalizationPalletId; - type WeightInfo = pallet_nft_fractionalization::weights::SubstrateWeight; - type RuntimeHoldReason = RuntimeHoldReason; - #[cfg(feature = "runtime-benchmarks")] - type BenchmarkHelper = (); -} - -parameter_types! { - pub NftsPalletFeatures: PalletFeatures = PalletFeatures::all_enabled(); - pub const NftsMaxDeadlineDuration: BlockNumber = 12 * 30 * DAYS; - // re-use the Uniques deposits - pub const NftsCollectionDeposit: Balance = UniquesCollectionDeposit::get(); - pub const NftsItemDeposit: Balance = UniquesItemDeposit::get(); - pub const NftsMetadataDepositBase: Balance = UniquesMetadataDepositBase::get(); - pub const NftsAttributeDepositBase: Balance = UniquesAttributeDepositBase::get(); - pub const NftsDepositPerByte: Balance = UniquesDepositPerByte::get(); -} - -impl pallet_nfts::Config for Runtime { - type RuntimeEvent = RuntimeEvent; - type CollectionId = u32; - type ItemId = u32; - type Currency = Balances; - type CreateOrigin = AsEnsureOriginWithArg>; - type ForceOrigin = AssetsForceOrigin; - type Locker = (); - type CollectionDeposit = NftsCollectionDeposit; - type ItemDeposit = NftsItemDeposit; - type MetadataDepositBase = NftsMetadataDepositBase; - type AttributeDepositBase = NftsAttributeDepositBase; - type DepositPerByte = NftsDepositPerByte; - type StringLimit = ConstU32<256>; - type KeyLimit = ConstU32<64>; - type ValueLimit = ConstU32<256>; - type ApprovalsLimit = ConstU32<20>; - type ItemAttributesApprovalsLimit = ConstU32<30>; - type MaxTips = ConstU32<10>; - type MaxDeadlineDuration = NftsMaxDeadlineDuration; - type MaxAttributesPerCall = ConstU32<10>; - type Features = NftsPalletFeatures; - type OffchainSignature = Signature; - type OffchainPublic = ::Signer; - type WeightInfo = weights::pallet_nfts::WeightInfo; - #[cfg(feature = "runtime-benchmarks")] - type Helper = (); -} - -// Create the runtime by composing the FRAME pallets that were previously configured. -construct_runtime!( - pub enum Runtime - { - // System support stuff. - System: frame_system::{Pallet, Call, Config, Storage, Event} = 0, - ParachainSystem: cumulus_pallet_parachain_system::{ - Pallet, Call, Config, Storage, Inherent, Event, ValidateUnsigned, - } = 1, - // RandomnessCollectiveFlip = 2 removed - Timestamp: pallet_timestamp::{Pallet, Call, Storage, Inherent} = 3, - ParachainInfo: parachain_info::{Pallet, Storage, Config} = 4, - - // Monetary stuff. - Balances: pallet_balances::{Pallet, Call, Storage, Config, Event} = 10, - TransactionPayment: pallet_transaction_payment::{Pallet, Storage, Event} = 11, - AssetTxPayment: pallet_asset_conversion_tx_payment::{Pallet, Event} = 13, - - // Collator support. the order of these 5 are important and shall not change. - Authorship: pallet_authorship::{Pallet, Storage} = 20, - CollatorSelection: pallet_collator_selection::{Pallet, Call, Storage, Event, Config} = 21, - Session: pallet_session::{Pallet, Call, Storage, Event, Config} = 22, - Aura: pallet_aura::{Pallet, Storage, Config} = 23, - AuraExt: cumulus_pallet_aura_ext::{Pallet, Storage, Config} = 24, - - // XCM helpers. - XcmpQueue: cumulus_pallet_xcmp_queue::{Pallet, Call, Storage, Event} = 30, - PolkadotXcm: pallet_xcm::{Pallet, Call, Storage, Event, Origin, Config} = 31, - CumulusXcm: cumulus_pallet_xcm::{Pallet, Event, Origin} = 32, - DmpQueue: cumulus_pallet_dmp_queue::{Pallet, Call, Storage, Event} = 33, - - // Handy utilities. - Utility: pallet_utility::{Pallet, Call, Event} = 40, - Multisig: pallet_multisig::{Pallet, Call, Storage, Event} = 41, - Proxy: pallet_proxy::{Pallet, Call, Storage, Event} = 42, - - // The main stage. - Assets: pallet_assets::::{Pallet, Call, Storage, Event} = 50, - Uniques: pallet_uniques::{Pallet, Call, Storage, Event} = 51, - Nfts: pallet_nfts::{Pallet, Call, Storage, Event} = 52, - ForeignAssets: pallet_assets::::{Pallet, Call, Storage, Event} = 53, - NftFractionalization: pallet_nft_fractionalization::{Pallet, Call, Storage, Event, HoldReason} = 54, - - PoolAssets: pallet_assets::::{Pallet, Call, Storage, Event} = 55, - AssetConversion: pallet_asset_conversion::{Pallet, Call, Storage, Event} = 56, - - #[cfg(feature = "state-trie-version-1")] - StateTrieMigration: pallet_state_trie_migration = 70, - } -); - -/// The address format for describing accounts. -pub type Address = sp_runtime::MultiAddress; -/// Block type as expected by this runtime. -pub type Block = generic::Block; -/// A Block signed with a Justification -pub type SignedBlock = generic::SignedBlock; -/// BlockId type as expected by this runtime. -pub type BlockId = generic::BlockId; -/// The SignedExtension to the basic transaction logic. -pub type SignedExtra = ( - frame_system::CheckNonZeroSender, - frame_system::CheckSpecVersion, - frame_system::CheckTxVersion, - frame_system::CheckGenesis, - frame_system::CheckEra, - frame_system::CheckNonce, - frame_system::CheckWeight, - pallet_asset_conversion_tx_payment::ChargeAssetTxPayment, -); -/// Unchecked extrinsic type as expected by this runtime. -pub type UncheckedExtrinsic = - generic::UncheckedExtrinsic; -/// Migrations to apply on runtime upgrade. -pub type Migrations = (pallet_collator_selection::migration::v1::MigrateToV1,); - -/// Executive: handles dispatch to the various modules. -pub type Executive = frame_executive::Executive< - Runtime, - Block, - frame_system::ChainContext, - Runtime, - AllPalletsWithSystem, - Migrations, ->; - -#[cfg(feature = "runtime-benchmarks")] -#[macro_use] -extern crate frame_benchmarking; - -#[cfg(feature = "runtime-benchmarks")] -mod benches { - define_benchmarks!( - [frame_system, SystemBench::] - [pallet_assets, Local] - [pallet_assets, Foreign] - [pallet_assets, Pool] - [pallet_asset_conversion, AssetConversion] - [pallet_balances, Balances] - [pallet_multisig, Multisig] - [pallet_nft_fractionalization, NftFractionalization] - [pallet_nfts, Nfts] - [pallet_proxy, Proxy] - [pallet_session, SessionBench::] - [pallet_uniques, Uniques] - [pallet_utility, Utility] - [pallet_timestamp, Timestamp] - [pallet_collator_selection, CollatorSelection] - [cumulus_pallet_xcmp_queue, XcmpQueue] - // XCM - [pallet_xcm, PolkadotXcm] - // NOTE: Make sure you point to the individual modules below. - [pallet_xcm_benchmarks::fungible, XcmBalances] - [pallet_xcm_benchmarks::generic, XcmGeneric] - ); -} - -impl_runtime_apis! { - impl sp_consensus_aura::AuraApi for Runtime { - fn slot_duration() -> sp_consensus_aura::SlotDuration { - sp_consensus_aura::SlotDuration::from_millis(Aura::slot_duration()) - } - - fn authorities() -> Vec { - Aura::authorities().into_inner() - } - } - - impl sp_api::Core for Runtime { - fn version() -> RuntimeVersion { - VERSION - } - - fn execute_block(block: Block) { - Executive::execute_block(block) - } - - fn initialize_block(header: &::Header) { - Executive::initialize_block(header) - } - } - - impl sp_api::Metadata for Runtime { - fn metadata() -> OpaqueMetadata { - OpaqueMetadata::new(Runtime::metadata().into()) - } - - fn metadata_at_version(version: u32) -> Option { - Runtime::metadata_at_version(version) - } - - fn metadata_versions() -> sp_std::vec::Vec { - Runtime::metadata_versions() - } - } - - impl sp_block_builder::BlockBuilder for Runtime { - fn apply_extrinsic(extrinsic: ::Extrinsic) -> ApplyExtrinsicResult { - Executive::apply_extrinsic(extrinsic) - } - - fn finalize_block() -> ::Header { - Executive::finalize_block() - } - - fn inherent_extrinsics(data: sp_inherents::InherentData) -> Vec<::Extrinsic> { - data.create_extrinsics() - } - - fn check_inherents( - block: Block, - data: sp_inherents::InherentData, - ) -> sp_inherents::CheckInherentsResult { - data.check_extrinsics(&block) - } - } - - impl sp_transaction_pool::runtime_api::TaggedTransactionQueue for Runtime { - fn validate_transaction( - source: TransactionSource, - tx: ::Extrinsic, - block_hash: ::Hash, - ) -> TransactionValidity { - Executive::validate_transaction(source, tx, block_hash) - } - } - - impl sp_offchain::OffchainWorkerApi for Runtime { - fn offchain_worker(header: &::Header) { - Executive::offchain_worker(header) - } - } - - impl sp_session::SessionKeys for Runtime { - fn generate_session_keys(seed: Option>) -> Vec { - SessionKeys::generate(seed) - } - - fn decode_session_keys( - encoded: Vec, - ) -> Option, KeyTypeId)>> { - SessionKeys::decode_into_raw_public_keys(&encoded) - } - } - - impl frame_system_rpc_runtime_api::AccountNonceApi for Runtime { - fn account_nonce(account: AccountId) -> Nonce { - System::account_nonce(account) - } - } - - impl pallet_asset_conversion::AssetConversionApi< - Block, - Balance, - u128, - Box, - > for Runtime - { - fn quote_price_exact_tokens_for_tokens(asset1: Box, asset2: Box, amount: u128, include_fee: bool) -> Option { - AssetConversion::quote_price_exact_tokens_for_tokens(asset1, asset2, amount, include_fee) - } - fn quote_price_tokens_for_exact_tokens(asset1: Box, asset2: Box, amount: u128, include_fee: bool) -> Option { - AssetConversion::quote_price_tokens_for_exact_tokens(asset1, asset2, amount, include_fee) - } - fn get_reserves(asset1: Box, asset2: Box) -> Option<(Balance, Balance)> { - AssetConversion::get_reserves(&asset1, &asset2).ok() - } - } - - impl pallet_transaction_payment_rpc_runtime_api::TransactionPaymentApi for Runtime { - fn query_info( - uxt: ::Extrinsic, - len: u32, - ) -> pallet_transaction_payment_rpc_runtime_api::RuntimeDispatchInfo { - TransactionPayment::query_info(uxt, len) - } - fn query_fee_details( - uxt: ::Extrinsic, - len: u32, - ) -> pallet_transaction_payment::FeeDetails { - TransactionPayment::query_fee_details(uxt, len) - } - fn query_weight_to_fee(weight: Weight) -> Balance { - TransactionPayment::weight_to_fee(weight) - } - fn query_length_to_fee(length: u32) -> Balance { - TransactionPayment::length_to_fee(length) - } - } - - impl pallet_transaction_payment_rpc_runtime_api::TransactionPaymentCallApi - for Runtime - { - fn query_call_info( - call: RuntimeCall, - len: u32, - ) -> pallet_transaction_payment::RuntimeDispatchInfo { - TransactionPayment::query_call_info(call, len) - } - fn query_call_fee_details( - call: RuntimeCall, - len: u32, - ) -> pallet_transaction_payment::FeeDetails { - TransactionPayment::query_call_fee_details(call, len) - } - fn query_weight_to_fee(weight: Weight) -> Balance { - TransactionPayment::weight_to_fee(weight) - } - fn query_length_to_fee(length: u32) -> Balance { - TransactionPayment::length_to_fee(length) - } - } - - impl assets_common::runtime_api::FungiblesApi< - Block, - AccountId, - > for Runtime - { - fn query_account_balances(account: AccountId) -> Result { - use assets_common::fungible_conversion::{convert, convert_balance}; - Ok([ - // collect pallet_balance - { - let balance = Balances::free_balance(account.clone()); - if balance > 0 { - vec![convert_balance::(balance)?] - } else { - vec![] - } - }, - // collect pallet_assets (TrustBackedAssets) - convert::<_, _, _, _, TrustBackedAssetsConvertedConcreteId>( - Assets::account_balances(account.clone()) - .iter() - .filter(|(_, balance)| balance > &0) - )?, - // collect pallet_assets (ForeignAssets) - convert::<_, _, _, _, ForeignAssetsConvertedConcreteId>( - ForeignAssets::account_balances(account.clone()) - .iter() - .filter(|(_, balance)| balance > &0) - )?, - // collect pallet_assets (PoolAssets) - convert::<_, _, _, _, PoolAssetsConvertedConcreteId>( - PoolAssets::account_balances(account) - .iter() - .filter(|(_, balance)| balance > &0) - )?, - // collect ... e.g. other tokens - ].concat().into()) - } - } - - impl cumulus_primitives_core::CollectCollationInfo for Runtime { - fn collect_collation_info(header: &::Header) -> cumulus_primitives_core::CollationInfo { - ParachainSystem::collect_collation_info(header) - } - } - - #[cfg(feature = "try-runtime")] - impl frame_try_runtime::TryRuntime for Runtime { - fn on_runtime_upgrade(checks: frame_try_runtime::UpgradeCheckSelect) -> (Weight, Weight) { - let weight = Executive::try_runtime_upgrade(checks).unwrap(); - (weight, RuntimeBlockWeights::get().max_block) - } - - fn execute_block( - block: Block, - state_root_check: bool, - signature_check: bool, - select: frame_try_runtime::TryStateSelect, - ) -> Weight { - // NOTE: intentional unwrap: we don't want to propagate the error backwards, and want to - // have a backtrace here. - Executive::try_execute_block(block, state_root_check, signature_check, select).unwrap() - } - } - - #[cfg(feature = "runtime-benchmarks")] - impl frame_benchmarking::Benchmark for Runtime { - fn benchmark_metadata(extra: bool) -> ( - Vec, - Vec, - ) { - use frame_benchmarking::{Benchmarking, BenchmarkList}; - use frame_support::traits::StorageInfoTrait; - use frame_system_benchmarking::Pallet as SystemBench; - use cumulus_pallet_session_benchmarking::Pallet as SessionBench; - - // This is defined once again in dispatch_benchmark, because list_benchmarks! - // and add_benchmarks! are macros exported by define_benchmarks! macros and those types - // are referenced in that call. - type XcmBalances = pallet_xcm_benchmarks::fungible::Pallet::; - type XcmGeneric = pallet_xcm_benchmarks::generic::Pallet::; - - // Benchmark files generated for `Assets/ForeignAssets` instances are by default - // `pallet_assets_assets.rs / pallet_assets_foreign_assets`, which is not really nice, - // so with this redefinition we can change names to nicer: - // `pallet_assets_local.rs / pallet_assets_foreign.rs`. - type Local = pallet_assets::Pallet::; - type Foreign = pallet_assets::Pallet::; - type Pool = pallet_assets::Pallet::; - - let mut list = Vec::::new(); - list_benchmarks!(list, extra); - - let storage_info = AllPalletsWithSystem::storage_info(); - (list, storage_info) - } - - fn dispatch_benchmark( - config: frame_benchmarking::BenchmarkConfig - ) -> Result, sp_runtime::RuntimeString> { - use frame_benchmarking::{Benchmarking, BenchmarkBatch, BenchmarkError}; - use sp_storage::TrackedStorageKey; - - use frame_system_benchmarking::Pallet as SystemBench; - impl frame_system_benchmarking::Config for Runtime { - fn setup_set_code_requirements(code: &sp_std::vec::Vec) -> Result<(), BenchmarkError> { - ParachainSystem::initialize_for_set_code_benchmark(code.len() as u32); - Ok(()) - } - - fn verify_set_code() { - System::assert_last_event(cumulus_pallet_parachain_system::Event::::ValidationFunctionStored.into()); - } - } - - use cumulus_pallet_session_benchmarking::Pallet as SessionBench; - impl cumulus_pallet_session_benchmarking::Config for Runtime {} - - use xcm::latest::prelude::*; - use xcm_config::{KsmLocation, MaxAssetsIntoHolding}; - use pallet_xcm_benchmarks::asset_instance_from; - - impl pallet_xcm_benchmarks::Config for Runtime { - type XcmConfig = xcm_config::XcmConfig; - type AccountIdConverter = xcm_config::LocationToAccountId; - fn valid_destination() -> Result { - Ok(KsmLocation::get()) - } - fn worst_case_holding(depositable_count: u32) -> MultiAssets { - // A mix of fungible, non-fungible, and concrete assets. - let holding_non_fungibles = MaxAssetsIntoHolding::get() / 2 - depositable_count; - let holding_fungibles = holding_non_fungibles.saturating_sub(1); - let fungibles_amount: u128 = 100; - let mut assets = (0..holding_fungibles) - .map(|i| { - MultiAsset { - id: Concrete(GeneralIndex(i as u128).into()), - fun: Fungible(fungibles_amount * i as u128), - } - }) - .chain(core::iter::once(MultiAsset { id: Concrete(Here.into()), fun: Fungible(u128::MAX) })) - .chain((0..holding_non_fungibles).map(|i| MultiAsset { - id: Concrete(GeneralIndex(i as u128).into()), - fun: NonFungible(asset_instance_from(i)), - })) - .collect::>(); - - assets.push(MultiAsset { - id: Concrete(KsmLocation::get()), - fun: Fungible(1_000_000 * UNITS), - }); - assets.into() - } - } - - parameter_types! { - pub const TrustedTeleporter: Option<(MultiLocation, MultiAsset)> = Some(( - KsmLocation::get(), - MultiAsset { fun: Fungible(UNITS), id: Concrete(KsmLocation::get()) }, - )); - pub const CheckedAccount: Option<(AccountId, xcm_builder::MintLocation)> = None; - pub const TrustedReserve: Option<(MultiLocation, MultiAsset)> = None; - } - - impl pallet_xcm_benchmarks::fungible::Config for Runtime { - type TransactAsset = Balances; - - type CheckedAccount = CheckedAccount; - type TrustedTeleporter = TrustedTeleporter; - type TrustedReserve = TrustedReserve; - - fn get_multi_asset() -> MultiAsset { - MultiAsset { - id: Concrete(KsmLocation::get()), - fun: Fungible(UNITS), - } - } - } - - impl pallet_xcm_benchmarks::generic::Config for Runtime { - type RuntimeCall = RuntimeCall; - - fn worst_case_response() -> (u64, Response) { - (0u64, Response::Version(Default::default())) - } - - fn worst_case_asset_exchange() -> Result<(MultiAssets, MultiAssets), BenchmarkError> { - Err(BenchmarkError::Skip) - } - - fn universal_alias() -> Result<(MultiLocation, Junction), BenchmarkError> { - Err(BenchmarkError::Skip) - } - - fn transact_origin_and_runtime_call() -> Result<(MultiLocation, RuntimeCall), BenchmarkError> { - Ok((KsmLocation::get(), frame_system::Call::remark_with_event { remark: vec![] }.into())) - } - - fn subscribe_origin() -> Result { - Ok(KsmLocation::get()) - } - - fn claimable_asset() -> Result<(MultiLocation, MultiLocation, MultiAssets), BenchmarkError> { - let origin = KsmLocation::get(); - let assets: MultiAssets = (Concrete(KsmLocation::get()), 1_000 * UNITS).into(); - let ticket = MultiLocation { parents: 0, interior: Here }; - Ok((origin, ticket, assets)) - } - - fn unlockable_asset() -> Result<(MultiLocation, MultiLocation, MultiAsset), BenchmarkError> { - Err(BenchmarkError::Skip) - } - - fn export_message_origin_and_destination( - ) -> Result<(MultiLocation, NetworkId, InteriorMultiLocation), BenchmarkError> { - Err(BenchmarkError::Skip) - } - - fn alias_origin() -> Result<(MultiLocation, MultiLocation), BenchmarkError> { - Err(BenchmarkError::Skip) - } - } - - type XcmBalances = pallet_xcm_benchmarks::fungible::Pallet::; - type XcmGeneric = pallet_xcm_benchmarks::generic::Pallet::; - - type Local = pallet_assets::Pallet::; - type Foreign = pallet_assets::Pallet::; - type Pool = pallet_assets::Pallet::; - - let whitelist: Vec = vec![ - // Block Number - hex_literal::hex!("26aa394eea5630e07c48ae0c9558cef702a5c1b19ab7a04f536c519aca4983ac").to_vec().into(), - // Total Issuance - hex_literal::hex!("c2261276cc9d1f8598ea4b6a74b15c2f57c875e4cff74148e4628f264b974c80").to_vec().into(), - // Execution Phase - hex_literal::hex!("26aa394eea5630e07c48ae0c9558cef7ff553b5a9862a516939d82b3d3d8661a").to_vec().into(), - // Event Count - hex_literal::hex!("26aa394eea5630e07c48ae0c9558cef70a98fdbe9ce6c55837576c60c7af3850").to_vec().into(), - // System Events - hex_literal::hex!("26aa394eea5630e07c48ae0c9558cef780d41e5e16056765bc8461851072c9d7").to_vec().into(), - //TODO: use from relay_well_known_keys::ACTIVE_CONFIG - hex_literal::hex!("06de3d8a54d27e44a9d5ce189618f22db4b49d95320d9021994c850f25b8e385").to_vec().into(), - ]; - - let mut batches = Vec::::new(); - let params = (&config, &whitelist); - add_benchmarks!(params, batches); - - Ok(batches) - } - } - - impl sp_genesis_builder::GenesisBuilder for Runtime { - fn create_default_config() -> Vec { - create_default_config::() - } - - fn build_config(config: Vec) -> sp_genesis_builder::Result { - build_config::(config) - } - } -} - -cumulus_pallet_parachain_system::register_validate_block! { - Runtime = Runtime, - BlockExecutor = cumulus_pallet_aura_ext::BlockExecutor::, -} - -#[cfg(feature = "state-trie-version-1")] -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 = CENTS; - pub const MigrationSignedDepositBase: Balance = 2_000 * CENTS; - pub const MigrationMaxKeyLen: u32 = 512; -} - -#[cfg(feature = "state-trie-version-1")] -impl pallet_state_trie_migration::Config for Runtime { - type RuntimeEvent = RuntimeEvent; - type Currency = Balances; - type SignedDepositPerItem = MigrationSignedDepositPerItem; - type SignedDepositBase = MigrationSignedDepositBase; - // An origin that can control the whole pallet: should be Root, or a part of your council. - type ControlOrigin = frame_system::EnsureSignedBy; - // specific account for the migration, can trigger the signed migrations. - type SignedFilter = frame_system::EnsureSignedBy; - - // Replace this with weight based on your runtime. - type WeightInfo = pallet_state_trie_migration::weights::SubstrateWeight; - - type MaxKeyLen = MigrationMaxKeyLen; -} - -#[cfg(feature = "state-trie-version-1")] -frame_support::ord_parameter_types! { - pub const MigController: AccountId = AccountId::from(hex_literal::hex!("8458ed39dc4b6f6c7255f7bc42be50c2967db126357c999d44e12ca7ac80dc52")); - pub const RootMigController: AccountId = AccountId::from(hex_literal::hex!("8458ed39dc4b6f6c7255f7bc42be50c2967db126357c999d44e12ca7ac80dc52")); -} - -#[cfg(feature = "state-trie-version-1")] -#[test] -fn ensure_key_ss58() { - use frame_support::traits::SortedMembers; - use sp_core::crypto::Ss58Codec; - let acc = - AccountId::from_ss58check("5F4EbSkZz18X36xhbsjvDNs6NuZ82HyYtq5UiJ1h9SBHJXZD").unwrap(); - //panic!("{:x?}", acc); - assert_eq!(acc, MigController::sorted_members()[0]); - let acc = - AccountId::from_ss58check("5F4EbSkZz18X36xhbsjvDNs6NuZ82HyYtq5UiJ1h9SBHJXZD").unwrap(); - assert_eq!(acc, RootMigController::sorted_members()[0]); - //panic!("{:x?}", acc); -} - -#[cfg(test)] -mod tests { - use super::*; - use crate::{CENTS, MILLICENTS}; - use parachains_common::kusama::fee; - use sp_runtime::traits::Zero; - use sp_weights::WeightToFee; - - /// We can fit at least 1000 transfers in a block. - #[test] - fn sane_block_weight() { - use pallet_balances::WeightInfo; - let block = RuntimeBlockWeights::get().max_block; - let base = RuntimeBlockWeights::get().get(DispatchClass::Normal).base_extrinsic; - let transfer = - base + weights::pallet_balances::WeightInfo::::transfer_allow_death(); - - let fit = block.checked_div_per_component(&transfer).unwrap_or_default(); - assert!(fit >= 1000, "{} should be at least 1000", fit); - } - - /// The fee for one transfer is at most 1 CENT. - #[test] - fn sane_transfer_fee() { - use pallet_balances::WeightInfo; - let base = RuntimeBlockWeights::get().get(DispatchClass::Normal).base_extrinsic; - let transfer = - base + weights::pallet_balances::WeightInfo::::transfer_allow_death(); - - let fee: Balance = fee::WeightToFee::weight_to_fee(&transfer); - assert!(fee <= CENTS, "{} MILLICENTS should be at most 1000", fee / MILLICENTS); - } - - /// Weight is being charged for both dimensions. - #[test] - fn weight_charged_for_both_components() { - let fee: Balance = fee::WeightToFee::weight_to_fee(&Weight::from_parts(10_000, 0)); - assert!(!fee.is_zero(), "Charges for ref time"); - - let fee: Balance = fee::WeightToFee::weight_to_fee(&Weight::from_parts(0, 10_000)); - assert_eq!(fee, CENTS, "10kb maps to CENT"); - } - - /// Filling up a block by proof size is at most 30 times more expensive than ref time. - /// - /// This is just a sanity check. - #[test] - fn full_block_fee_ratio() { - let block = RuntimeBlockWeights::get().max_block; - let time_fee: Balance = - fee::WeightToFee::weight_to_fee(&Weight::from_parts(block.ref_time(), 0)); - let proof_fee: Balance = - fee::WeightToFee::weight_to_fee(&Weight::from_parts(0, block.proof_size())); - - let proof_o_time = proof_fee.checked_div(time_fee).unwrap_or_default(); - assert!(proof_o_time <= 30, "{} should be at most 30", proof_o_time); - let time_o_proof = time_fee.checked_div(proof_fee).unwrap_or_default(); - assert!(time_o_proof <= 30, "{} should be at most 30", time_o_proof); - } -} diff --git a/cumulus/parachains/runtimes/assets/asset-hub-kusama/src/weights/cumulus_pallet_xcmp_queue.rs b/cumulus/parachains/runtimes/assets/asset-hub-kusama/src/weights/cumulus_pallet_xcmp_queue.rs deleted file mode 100644 index 9c7a56687b31..000000000000 --- a/cumulus/parachains/runtimes/assets/asset-hub-kusama/src/weights/cumulus_pallet_xcmp_queue.rs +++ /dev/null @@ -1,77 +0,0 @@ -// Copyright (C) Parity Technologies (UK) Ltd. -// This file is part of Cumulus. - -// Cumulus 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. - -// Cumulus 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 Cumulus. If not, see . - -//! Autogenerated weights for `cumulus_pallet_xcmp_queue` -//! -//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev -//! DATE: 2023-07-31, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` -//! WORST CASE MAP SIZE: `1000000` -//! HOSTNAME: `runner-ynta1nyy-project-238-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz` -//! EXECUTION: ``, WASM-EXECUTION: `Compiled`, CHAIN: `Some("asset-hub-kusama-dev")`, DB CACHE: 1024 - -// Executed Command: -// ./target/production/polkadot-parachain -// benchmark -// pallet -// --chain=asset-hub-kusama-dev -// --wasm-execution=compiled -// --pallet=cumulus_pallet_xcmp_queue -// --no-storage-info -// --no-median-slopes -// --no-min-squares -// --extrinsic=* -// --steps=50 -// --repeat=20 -// --json -// --header=./file_header.txt -// --output=./parachains/runtimes/assets/asset-hub-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 `cumulus_pallet_xcmp_queue`. -pub struct WeightInfo(PhantomData); -impl cumulus_pallet_xcmp_queue::WeightInfo for WeightInfo { - /// Storage: `XcmpQueue::QueueConfig` (r:1 w:1) - /// Proof: `XcmpQueue::QueueConfig` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) - fn set_config_with_u32() -> Weight { - // Proof Size summary in bytes: - // Measured: `76` - // Estimated: `1561` - // Minimum execution time: 5_467_000 picoseconds. - Weight::from_parts(5_634_000, 0) - .saturating_add(Weight::from_parts(0, 1561)) - .saturating_add(T::DbWeight::get().reads(1)) - .saturating_add(T::DbWeight::get().writes(1)) - } - /// Storage: `XcmpQueue::QueueConfig` (r:1 w:1) - /// Proof: `XcmpQueue::QueueConfig` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) - fn set_config_with_weight() -> Weight { - // Proof Size summary in bytes: - // Measured: `76` - // Estimated: `1561` - // Minimum execution time: 5_409_000 picoseconds. - Weight::from_parts(5_570_000, 0) - .saturating_add(Weight::from_parts(0, 1561)) - .saturating_add(T::DbWeight::get().reads(1)) - .saturating_add(T::DbWeight::get().writes(1)) - } -} diff --git a/cumulus/parachains/runtimes/assets/asset-hub-kusama/src/weights/frame_system.rs b/cumulus/parachains/runtimes/assets/asset-hub-kusama/src/weights/frame_system.rs deleted file mode 100644 index 96477ddf4bd3..000000000000 --- a/cumulus/parachains/runtimes/assets/asset-hub-kusama/src/weights/frame_system.rs +++ /dev/null @@ -1,155 +0,0 @@ -// Copyright (C) Parity Technologies (UK) Ltd. -// This file is part of Cumulus. - -// Cumulus 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. - -// Cumulus 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 Cumulus. If not, see . - -//! Autogenerated weights for `frame_system` -//! -//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev -//! DATE: 2023-07-31, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` -//! WORST CASE MAP SIZE: `1000000` -//! HOSTNAME: `runner-ynta1nyy-project-238-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz` -//! EXECUTION: ``, WASM-EXECUTION: `Compiled`, CHAIN: `Some("asset-hub-kusama-dev")`, DB CACHE: 1024 - -// Executed Command: -// ./target/production/polkadot-parachain -// benchmark -// pallet -// --chain=asset-hub-kusama-dev -// --wasm-execution=compiled -// --pallet=frame_system -// --no-storage-info -// --no-median-slopes -// --no-min-squares -// --extrinsic=* -// --steps=50 -// --repeat=20 -// --json -// --header=./file_header.txt -// --output=./parachains/runtimes/assets/asset-hub-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 `frame_system`. -pub struct WeightInfo(PhantomData); -impl frame_system::WeightInfo for WeightInfo { - /// The range of component `b` is `[0, 3932160]`. - fn remark(b: u32, ) -> Weight { - // Proof Size summary in bytes: - // Measured: `0` - // Estimated: `0` - // Minimum execution time: 2_106_000 picoseconds. - Weight::from_parts(1_884_213, 0) - .saturating_add(Weight::from_parts(0, 0)) - // Standard Error: 0 - .saturating_add(Weight::from_parts(388, 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_528_000 picoseconds. - Weight::from_parts(27_081_927, 0) - .saturating_add(Weight::from_parts(0, 0)) - // Standard Error: 7 - .saturating_add(Weight::from_parts(1_730, 0).saturating_mul(b.into())) - } - /// Storage: `System::Digest` (r:1 w:1) - /// Proof: `System::Digest` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) - /// Storage: UNKNOWN KEY `0x3a686561707061676573` (r:0 w:1) - /// Proof: UNKNOWN KEY `0x3a686561707061676573` (r:0 w:1) - fn set_heap_pages() -> Weight { - // Proof Size summary in bytes: - // Measured: `0` - // Estimated: `1485` - // Minimum execution time: 3_882_000 picoseconds. - Weight::from_parts(4_149_000, 0) - .saturating_add(Weight::from_parts(0, 1485)) - .saturating_add(T::DbWeight::get().reads(1)) - .saturating_add(T::DbWeight::get().writes(2)) - } - /// Storage: `ParachainSystem::ValidationData` (r:1 w:0) - /// Proof: `ParachainSystem::ValidationData` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) - /// Storage: `ParachainSystem::UpgradeRestrictionSignal` (r:1 w:0) - /// Proof: `ParachainSystem::UpgradeRestrictionSignal` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) - /// Storage: `ParachainSystem::PendingValidationCode` (r:1 w:1) - /// Proof: `ParachainSystem::PendingValidationCode` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) - /// Storage: `ParachainSystem::HostConfiguration` (r:1 w:0) - /// Proof: `ParachainSystem::HostConfiguration` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) - /// Storage: `ParachainSystem::NewValidationCode` (r:0 w:1) - /// Proof: `ParachainSystem::NewValidationCode` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) - /// Storage: `ParachainSystem::DidSetValidationCode` (r:0 w:1) - /// Proof: `ParachainSystem::DidSetValidationCode` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) - fn set_code() -> Weight { - // Proof Size summary in bytes: - // Measured: `119` - // Estimated: `1604` - // Minimum execution time: 103_389_161_000 picoseconds. - Weight::from_parts(106_870_091_000, 0) - .saturating_add(Weight::from_parts(0, 1604)) - .saturating_add(T::DbWeight::get().reads(4)) - .saturating_add(T::DbWeight::get().writes(3)) - } - /// Storage: `Skipped::Metadata` (r:0 w:0) - /// Proof: `Skipped::Metadata` (`max_values`: None, `max_size`: None, mode: `Measured`) - /// The range of component `i` is `[0, 1000]`. - fn set_storage(i: u32, ) -> Weight { - // Proof Size summary in bytes: - // Measured: `0` - // Estimated: `0` - // Minimum execution time: 2_236_000 picoseconds. - Weight::from_parts(2_302_000, 0) - .saturating_add(Weight::from_parts(0, 0)) - // Standard Error: 2_045 - .saturating_add(Weight::from_parts(763_456, 0).saturating_mul(i.into())) - .saturating_add(T::DbWeight::get().writes((1_u64).saturating_mul(i.into()))) - } - /// Storage: `Skipped::Metadata` (r:0 w:0) - /// Proof: `Skipped::Metadata` (`max_values`: None, `max_size`: None, mode: `Measured`) - /// The range of component `i` is `[0, 1000]`. - fn kill_storage(i: u32, ) -> Weight { - // Proof Size summary in bytes: - // Measured: `0` - // Estimated: `0` - // Minimum execution time: 2_175_000 picoseconds. - Weight::from_parts(2_238_000, 0) - .saturating_add(Weight::from_parts(0, 0)) - // Standard Error: 1_040 - .saturating_add(Weight::from_parts(571_397, 0).saturating_mul(i.into())) - .saturating_add(T::DbWeight::get().writes((1_u64).saturating_mul(i.into()))) - } - /// Storage: `Skipped::Metadata` (r:0 w:0) - /// Proof: `Skipped::Metadata` (`max_values`: None, `max_size`: None, mode: `Measured`) - /// The range of component `p` is `[0, 1000]`. - fn kill_prefix(p: u32, ) -> Weight { - // Proof Size summary in bytes: - // Measured: `84 + p * (69 ±0)` - // Estimated: `80 + p * (70 ±0)` - // Minimum execution time: 3_843_000 picoseconds. - Weight::from_parts(3_947_000, 0) - .saturating_add(Weight::from_parts(0, 80)) - // Standard Error: 2_188 - .saturating_add(Weight::from_parts(1_212_360, 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/cumulus/parachains/runtimes/assets/asset-hub-kusama/src/weights/mod.rs b/cumulus/parachains/runtimes/assets/asset-hub-kusama/src/weights/mod.rs deleted file mode 100644 index 281c013b3372..000000000000 --- a/cumulus/parachains/runtimes/assets/asset-hub-kusama/src/weights/mod.rs +++ /dev/null @@ -1,43 +0,0 @@ -// Copyright (C) Parity Technologies (UK) Ltd. -// This file is part of Cumulus. - -// Cumulus 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. - -// Cumulus 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 Cumulus. If not, see . - -pub mod block_weights; -pub mod cumulus_pallet_xcmp_queue; -pub mod extrinsic_weights; -pub mod frame_system; -pub mod pallet_asset_conversion; -pub mod pallet_assets_foreign; -pub mod pallet_assets_local; -pub mod pallet_assets_pool; -pub mod pallet_balances; -pub mod pallet_collator_selection; -pub mod pallet_multisig; -pub mod pallet_nft_fractionalization; -pub mod pallet_nfts; -pub mod pallet_proxy; -pub mod pallet_session; -pub mod pallet_timestamp; -pub mod pallet_uniques; -pub mod pallet_utility; -pub mod pallet_xcm; -pub mod paritydb_weights; -pub mod rocksdb_weights; -pub mod xcm; - -pub use block_weights::constants::BlockExecutionWeight; -pub use extrinsic_weights::constants::ExtrinsicBaseWeight; -pub use paritydb_weights::constants::ParityDbWeight; -pub use rocksdb_weights::constants::RocksDbWeight; diff --git a/cumulus/parachains/runtimes/assets/asset-hub-kusama/src/weights/pallet_asset_conversion.rs b/cumulus/parachains/runtimes/assets/asset-hub-kusama/src/weights/pallet_asset_conversion.rs deleted file mode 100644 index 702f3743a720..000000000000 --- a/cumulus/parachains/runtimes/assets/asset-hub-kusama/src/weights/pallet_asset_conversion.rs +++ /dev/null @@ -1,155 +0,0 @@ -// Copyright (C) Parity Technologies (UK) Ltd. -// This file is part of Cumulus. - -// Cumulus 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. - -// Cumulus 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 Cumulus. If not, see . - -//! Autogenerated weights for `pallet_asset_conversion` -//! -//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev -//! DATE: 2023-07-26, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` -//! WORST CASE MAP SIZE: `1000000` -//! HOSTNAME: `runner-ynta1nyy-project-238-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz` -//! EXECUTION: ``, WASM-EXECUTION: `Compiled`, CHAIN: `Some("asset-hub-kusama-dev")`, DB CACHE: 1024 - -// Executed Command: -// target/production/polkadot-parachain -// benchmark -// pallet -// --steps=50 -// --repeat=20 -// --extrinsic=* -// --wasm-execution=compiled -// --heap-pages=4096 -// --json-file=/builds/parity/mirrors/cumulus/.git/.artifacts/bench.json -// --pallet=pallet_asset_conversion -// --chain=asset-hub-kusama-dev -// --header=./file_header.txt -// --output=./parachains/runtimes/assets/asset-hub-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_asset_conversion`. -pub struct WeightInfo(PhantomData); -impl pallet_asset_conversion::WeightInfo for WeightInfo { - /// Storage: `AssetConversion::Pools` (r:1 w:1) - /// Proof: `AssetConversion::Pools` (`max_values`: None, `max_size`: Some(1224), added: 3699, mode: `MaxEncodedLen`) - /// Storage: UNKNOWN KEY `0x76a2c49709deec21d9c05f96c1f47351` (r:1 w:0) - /// Proof: UNKNOWN KEY `0x76a2c49709deec21d9c05f96c1f47351` (r:1 w:0) - /// Storage: `System::Account` (r:2 w:1) - /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`) - /// Storage: `ForeignAssets::Account` (r:1 w:1) - /// Proof: `ForeignAssets::Account` (`max_values`: None, `max_size`: Some(732), added: 3207, mode: `MaxEncodedLen`) - /// Storage: `ForeignAssets::Asset` (r:1 w:1) - /// Proof: `ForeignAssets::Asset` (`max_values`: None, `max_size`: Some(808), added: 3283, mode: `MaxEncodedLen`) - /// Storage: `AssetConversion::NextPoolAssetId` (r:1 w:1) - /// Proof: `AssetConversion::NextPoolAssetId` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`) - /// Storage: `PoolAssets::Asset` (r:1 w:1) - /// Proof: `PoolAssets::Asset` (`max_values`: None, `max_size`: Some(210), added: 2685, mode: `MaxEncodedLen`) - /// Storage: `PoolAssets::Account` (r:1 w:1) - /// Proof: `PoolAssets::Account` (`max_values`: None, `max_size`: Some(134), added: 2609, mode: `MaxEncodedLen`) - fn create_pool() -> Weight { - // Proof Size summary in bytes: - // Measured: `480` - // Estimated: `6196` - // Minimum execution time: 88_484_000 picoseconds. - Weight::from_parts(92_964_000, 0) - .saturating_add(Weight::from_parts(0, 6196)) - .saturating_add(T::DbWeight::get().reads(9)) - .saturating_add(T::DbWeight::get().writes(7)) - } - /// Storage: `AssetConversion::Pools` (r:1 w:0) - /// Proof: `AssetConversion::Pools` (`max_values`: None, `max_size`: Some(1224), added: 3699, mode: `MaxEncodedLen`) - /// Storage: `System::Account` (r:1 w:1) - /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`) - /// Storage: `ForeignAssets::Asset` (r:1 w:1) - /// Proof: `ForeignAssets::Asset` (`max_values`: None, `max_size`: Some(808), added: 3283, mode: `MaxEncodedLen`) - /// Storage: `ForeignAssets::Account` (r:2 w:2) - /// Proof: `ForeignAssets::Account` (`max_values`: None, `max_size`: Some(732), added: 3207, mode: `MaxEncodedLen`) - /// Storage: `PoolAssets::Asset` (r:1 w:1) - /// Proof: `PoolAssets::Asset` (`max_values`: None, `max_size`: Some(210), added: 2685, mode: `MaxEncodedLen`) - /// Storage: `PoolAssets::Account` (r:2 w:2) - /// Proof: `PoolAssets::Account` (`max_values`: None, `max_size`: Some(134), added: 2609, mode: `MaxEncodedLen`) - fn add_liquidity() -> Weight { - // Proof Size summary in bytes: - // Measured: `1117` - // Estimated: `7404` - // Minimum execution time: 153_015_000 picoseconds. - Weight::from_parts(157_018_000, 0) - .saturating_add(Weight::from_parts(0, 7404)) - .saturating_add(T::DbWeight::get().reads(8)) - .saturating_add(T::DbWeight::get().writes(7)) - } - /// Storage: `AssetConversion::Pools` (r:1 w:0) - /// Proof: `AssetConversion::Pools` (`max_values`: None, `max_size`: Some(1224), added: 3699, mode: `MaxEncodedLen`) - /// Storage: `System::Account` (r:1 w:1) - /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`) - /// Storage: `ForeignAssets::Asset` (r:1 w:1) - /// Proof: `ForeignAssets::Asset` (`max_values`: None, `max_size`: Some(808), added: 3283, mode: `MaxEncodedLen`) - /// Storage: `ForeignAssets::Account` (r:2 w:2) - /// Proof: `ForeignAssets::Account` (`max_values`: None, `max_size`: Some(732), added: 3207, mode: `MaxEncodedLen`) - /// Storage: `PoolAssets::Asset` (r:1 w:1) - /// Proof: `PoolAssets::Asset` (`max_values`: None, `max_size`: Some(210), added: 2685, mode: `MaxEncodedLen`) - /// Storage: UNKNOWN KEY `0x2433d831722b1f4aeb1666953f1c0e77` (r:1 w:0) - /// Proof: UNKNOWN KEY `0x2433d831722b1f4aeb1666953f1c0e77` (r:1 w:0) - /// Storage: `PoolAssets::Account` (r:1 w:1) - /// Proof: `PoolAssets::Account` (`max_values`: None, `max_size`: Some(134), added: 2609, mode: `MaxEncodedLen`) - fn remove_liquidity() -> Weight { - // Proof Size summary in bytes: - // Measured: `1106` - // Estimated: `7404` - // Minimum execution time: 141_726_000 picoseconds. - Weight::from_parts(147_865_000, 0) - .saturating_add(Weight::from_parts(0, 7404)) - .saturating_add(T::DbWeight::get().reads(8)) - .saturating_add(T::DbWeight::get().writes(6)) - } - /// Storage: `ForeignAssets::Asset` (r:2 w:2) - /// Proof: `ForeignAssets::Asset` (`max_values`: None, `max_size`: Some(808), added: 3283, mode: `MaxEncodedLen`) - /// Storage: `ForeignAssets::Account` (r:4 w:4) - /// Proof: `ForeignAssets::Account` (`max_values`: None, `max_size`: Some(732), added: 3207, mode: `MaxEncodedLen`) - /// Storage: `System::Account` (r:2 w:2) - /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`) - fn swap_exact_tokens_for_tokens() -> Weight { - // Proof Size summary in bytes: - // Measured: `1148` - // Estimated: `13818` - // Minimum execution time: 168_619_000 picoseconds. - Weight::from_parts(174_283_000, 0) - .saturating_add(Weight::from_parts(0, 13818)) - .saturating_add(T::DbWeight::get().reads(8)) - .saturating_add(T::DbWeight::get().writes(8)) - } - /// Storage: `System::Account` (r:2 w:2) - /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`) - /// Storage: `ForeignAssets::Asset` (r:2 w:2) - /// Proof: `ForeignAssets::Asset` (`max_values`: None, `max_size`: Some(808), added: 3283, mode: `MaxEncodedLen`) - /// Storage: `ForeignAssets::Account` (r:4 w:4) - /// Proof: `ForeignAssets::Account` (`max_values`: None, `max_size`: Some(732), added: 3207, mode: `MaxEncodedLen`) - fn swap_tokens_for_exact_tokens() -> Weight { - // Proof Size summary in bytes: - // Measured: `1148` - // Estimated: `13818` - // Minimum execution time: 171_565_000 picoseconds. - Weight::from_parts(173_702_000, 0) - .saturating_add(Weight::from_parts(0, 13818)) - .saturating_add(T::DbWeight::get().reads(8)) - .saturating_add(T::DbWeight::get().writes(8)) - } -} diff --git a/cumulus/parachains/runtimes/assets/asset-hub-kusama/src/weights/pallet_assets_foreign.rs b/cumulus/parachains/runtimes/assets/asset-hub-kusama/src/weights/pallet_assets_foreign.rs deleted file mode 100644 index 7c237b20389d..000000000000 --- a/cumulus/parachains/runtimes/assets/asset-hub-kusama/src/weights/pallet_assets_foreign.rs +++ /dev/null @@ -1,534 +0,0 @@ -// Copyright (C) Parity Technologies (UK) Ltd. -// This file is part of Cumulus. - -// Cumulus 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. - -// Cumulus 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 Cumulus. If not, see . - -//! Autogenerated weights for `pallet_assets` -//! -//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev -//! DATE: 2023-06-20, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` -//! WORST CASE MAP SIZE: `1000000` -//! HOSTNAME: `runner-ynta1nyy-project-238-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz` -//! EXECUTION: ``, WASM-EXECUTION: `Compiled`, CHAIN: `Some("asset-hub-kusama-dev")`, DB CACHE: 1024 - -// Executed Command: -// ./target/production/polkadot-parachain -// benchmark -// pallet -// --steps=50 -// --repeat=20 -// --extrinsic=* -// --execution=wasm -// --wasm-execution=compiled -// --heap-pages=4096 -// --json-file=/var/lib/gitlab-runner/builds/zyw4fam_/0/parity/mirrors/cumulus/.git/.artifacts/bench.json -// --pallet=pallet_assets -// --no-storage-info -// --no-median-slopes -// --no-min-squares -// --extrinsic=* -// --steps=50 -// --repeat=20 -// --json -// --header=./file_header.txt -// --output=./parachains/runtimes/assets/asset-hub-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_assets`. -pub struct WeightInfo(PhantomData); -impl pallet_assets::WeightInfo for WeightInfo { - /// Storage: `ParachainInfo::ParachainId` (r:1 w:0) - /// Proof: `ParachainInfo::ParachainId` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`) - /// Storage: `ForeignAssets::Asset` (r:1 w:1) - /// Proof: `ForeignAssets::Asset` (`max_values`: None, `max_size`: Some(808), added: 3283, mode: `MaxEncodedLen`) - /// Storage: `System::Account` (r:1 w:1) - /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`) - fn create() -> Weight { - // Proof Size summary in bytes: - // Measured: `107` - // Estimated: `4273` - // Minimum execution time: 30_485_000 picoseconds. - Weight::from_parts(31_007_000, 0) - .saturating_add(Weight::from_parts(0, 4273)) - .saturating_add(T::DbWeight::get().reads(3)) - .saturating_add(T::DbWeight::get().writes(2)) - } - /// Storage: `ForeignAssets::Asset` (r:1 w:1) - /// Proof: `ForeignAssets::Asset` (`max_values`: None, `max_size`: Some(808), added: 3283, mode: `MaxEncodedLen`) - fn force_create() -> Weight { - // Proof Size summary in bytes: - // Measured: `4` - // Estimated: `4273` - // Minimum execution time: 12_991_000 picoseconds. - Weight::from_parts(13_304_000, 0) - .saturating_add(Weight::from_parts(0, 4273)) - .saturating_add(T::DbWeight::get().reads(1)) - .saturating_add(T::DbWeight::get().writes(1)) - } - /// Storage: `ForeignAssets::Asset` (r:1 w:1) - /// Proof: `ForeignAssets::Asset` (`max_values`: None, `max_size`: Some(808), added: 3283, mode: `MaxEncodedLen`) - fn start_destroy() -> Weight { - // Proof Size summary in bytes: - // Measured: `276` - // Estimated: `4273` - // Minimum execution time: 15_689_000 picoseconds. - Weight::from_parts(16_063_000, 0) - .saturating_add(Weight::from_parts(0, 4273)) - .saturating_add(T::DbWeight::get().reads(1)) - .saturating_add(T::DbWeight::get().writes(1)) - } - /// Storage: ForeignAssets Asset (r:1 w:1) - /// Proof: ForeignAssets Asset (max_values: None, max_size: Some(808), added: 3283, mode: MaxEncodedLen) - /// Storage: ForeignAssets Account (r:1001 w:1000) - /// Proof: ForeignAssets Account (max_values: None, max_size: Some(732), added: 3207, mode: MaxEncodedLen) - /// Storage: System Account (r:1000 w:1000) - /// Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen) - /// The range of component `c` is `[0, 1000]`. - /// The range of component `c` is `[0, 1000]`. - fn destroy_accounts(c: u32, ) -> Weight { - // Proof Size summary in bytes: - // Measured: `0 + c * (208 ±0)` - // Estimated: `4273 + c * (3207 ±0)` - // Minimum execution time: 18_533_000 picoseconds. - Weight::from_parts(18_791_000, 0) - .saturating_add(Weight::from_parts(0, 4273)) - // Standard Error: 5_059 - .saturating_add(Weight::from_parts(12_049_659, 0).saturating_mul(c.into())) - .saturating_add(T::DbWeight::get().reads(2)) - .saturating_add(T::DbWeight::get().reads((2_u64).saturating_mul(c.into()))) - .saturating_add(T::DbWeight::get().writes(1)) - .saturating_add(T::DbWeight::get().writes((2_u64).saturating_mul(c.into()))) - .saturating_add(Weight::from_parts(0, 3207).saturating_mul(c.into())) - } - /// Storage: ForeignAssets Asset (r:1 w:1) - /// Proof: ForeignAssets Asset (max_values: None, max_size: Some(808), added: 3283, mode: MaxEncodedLen) - /// Storage: ForeignAssets Approvals (r:1001 w:1000) - /// Proof: ForeignAssets Approvals (max_values: None, max_size: Some(746), added: 3221, mode: MaxEncodedLen) - /// The range of component `a` is `[0, 1000]`. - /// The range of component `a` is `[0, 1000]`. - fn destroy_approvals(a: u32, ) -> Weight { - // Proof Size summary in bytes: - // Measured: `413 + a * (86 ±0)` - // Estimated: `4273 + a * (3221 ±0)` - // Minimum execution time: 20_028_000 picoseconds. - Weight::from_parts(20_148_000, 0) - .saturating_add(Weight::from_parts(0, 4273)) - // Standard Error: 3_401 - .saturating_add(Weight::from_parts(13_897_319, 0).saturating_mul(a.into())) - .saturating_add(T::DbWeight::get().reads(2)) - .saturating_add(T::DbWeight::get().reads((1_u64).saturating_mul(a.into()))) - .saturating_add(T::DbWeight::get().writes(1)) - .saturating_add(T::DbWeight::get().writes((1_u64).saturating_mul(a.into()))) - .saturating_add(Weight::from_parts(0, 3221).saturating_mul(a.into())) - } - /// Storage: `ForeignAssets::Asset` (r:1 w:1) - /// Proof: `ForeignAssets::Asset` (`max_values`: None, `max_size`: Some(808), added: 3283, mode: `MaxEncodedLen`) - /// Storage: `ForeignAssets::Metadata` (r:1 w:0) - /// Proof: `ForeignAssets::Metadata` (`max_values`: None, `max_size`: Some(738), added: 3213, mode: `MaxEncodedLen`) - fn finish_destroy() -> Weight { - // Proof Size summary in bytes: - // Measured: `242` - // Estimated: `4273` - // Minimum execution time: 15_949_000 picoseconds. - Weight::from_parts(16_241_000, 0) - .saturating_add(Weight::from_parts(0, 4273)) - .saturating_add(T::DbWeight::get().reads(2)) - .saturating_add(T::DbWeight::get().writes(1)) - } - /// Storage: `ForeignAssets::Asset` (r:1 w:1) - /// Proof: `ForeignAssets::Asset` (`max_values`: None, `max_size`: Some(808), added: 3283, mode: `MaxEncodedLen`) - /// Storage: `ForeignAssets::Account` (r:1 w:1) - /// Proof: `ForeignAssets::Account` (`max_values`: None, `max_size`: Some(732), added: 3207, mode: `MaxEncodedLen`) - fn mint() -> Weight { - // Proof Size summary in bytes: - // Measured: `242` - // Estimated: `4273` - // Minimum execution time: 27_156_000 picoseconds. - Weight::from_parts(28_182_000, 0) - .saturating_add(Weight::from_parts(0, 4273)) - .saturating_add(T::DbWeight::get().reads(2)) - .saturating_add(T::DbWeight::get().writes(2)) - } - /// Storage: `ForeignAssets::Asset` (r:1 w:1) - /// Proof: `ForeignAssets::Asset` (`max_values`: None, `max_size`: Some(808), added: 3283, mode: `MaxEncodedLen`) - /// Storage: `ForeignAssets::Account` (r:1 w:1) - /// Proof: `ForeignAssets::Account` (`max_values`: None, `max_size`: Some(732), added: 3207, mode: `MaxEncodedLen`) - fn burn() -> Weight { - // Proof Size summary in bytes: - // Measured: `350` - // Estimated: `4273` - // Minimum execution time: 33_503_000 picoseconds. - Weight::from_parts(33_860_000, 0) - .saturating_add(Weight::from_parts(0, 4273)) - .saturating_add(T::DbWeight::get().reads(2)) - .saturating_add(T::DbWeight::get().writes(2)) - } - /// Storage: `ForeignAssets::Asset` (r:1 w:1) - /// Proof: `ForeignAssets::Asset` (`max_values`: None, `max_size`: Some(808), added: 3283, mode: `MaxEncodedLen`) - /// Storage: `ForeignAssets::Account` (r:2 w:2) - /// Proof: `ForeignAssets::Account` (`max_values`: None, `max_size`: Some(732), added: 3207, mode: `MaxEncodedLen`) - /// Storage: `System::Account` (r:1 w:1) - /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`) - fn transfer() -> Weight { - // Proof Size summary in bytes: - // Measured: `350` - // Estimated: `7404` - // Minimum execution time: 45_065_000 picoseconds. - Weight::from_parts(45_856_000, 0) - .saturating_add(Weight::from_parts(0, 7404)) - .saturating_add(T::DbWeight::get().reads(4)) - .saturating_add(T::DbWeight::get().writes(4)) - } - /// Storage: `ForeignAssets::Asset` (r:1 w:1) - /// Proof: `ForeignAssets::Asset` (`max_values`: None, `max_size`: Some(808), added: 3283, mode: `MaxEncodedLen`) - /// Storage: `ForeignAssets::Account` (r:2 w:2) - /// Proof: `ForeignAssets::Account` (`max_values`: None, `max_size`: Some(732), added: 3207, mode: `MaxEncodedLen`) - /// 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: `350` - // Estimated: `7404` - // Minimum execution time: 39_913_000 picoseconds. - Weight::from_parts(40_791_000, 0) - .saturating_add(Weight::from_parts(0, 7404)) - .saturating_add(T::DbWeight::get().reads(4)) - .saturating_add(T::DbWeight::get().writes(4)) - } - /// Storage: `ForeignAssets::Asset` (r:1 w:1) - /// Proof: `ForeignAssets::Asset` (`max_values`: None, `max_size`: Some(808), added: 3283, mode: `MaxEncodedLen`) - /// Storage: `ForeignAssets::Account` (r:2 w:2) - /// Proof: `ForeignAssets::Account` (`max_values`: None, `max_size`: Some(732), added: 3207, mode: `MaxEncodedLen`) - /// Storage: `System::Account` (r:1 w:1) - /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`) - fn force_transfer() -> Weight { - // Proof Size summary in bytes: - // Measured: `350` - // Estimated: `7404` - // Minimum execution time: 45_337_000 picoseconds. - Weight::from_parts(45_980_000, 0) - .saturating_add(Weight::from_parts(0, 7404)) - .saturating_add(T::DbWeight::get().reads(4)) - .saturating_add(T::DbWeight::get().writes(4)) - } - /// Storage: `ForeignAssets::Asset` (r:1 w:0) - /// Proof: `ForeignAssets::Asset` (`max_values`: None, `max_size`: Some(808), added: 3283, mode: `MaxEncodedLen`) - /// Storage: `ForeignAssets::Account` (r:1 w:1) - /// Proof: `ForeignAssets::Account` (`max_values`: None, `max_size`: Some(732), added: 3207, mode: `MaxEncodedLen`) - fn freeze() -> Weight { - // Proof Size summary in bytes: - // Measured: `350` - // Estimated: `4273` - // Minimum execution time: 19_012_000 picoseconds. - Weight::from_parts(19_326_000, 0) - .saturating_add(Weight::from_parts(0, 4273)) - .saturating_add(T::DbWeight::get().reads(2)) - .saturating_add(T::DbWeight::get().writes(1)) - } - /// Storage: `ForeignAssets::Asset` (r:1 w:0) - /// Proof: `ForeignAssets::Asset` (`max_values`: None, `max_size`: Some(808), added: 3283, mode: `MaxEncodedLen`) - /// Storage: `ForeignAssets::Account` (r:1 w:1) - /// Proof: `ForeignAssets::Account` (`max_values`: None, `max_size`: Some(732), added: 3207, mode: `MaxEncodedLen`) - fn thaw() -> Weight { - // Proof Size summary in bytes: - // Measured: `350` - // Estimated: `4273` - // Minimum execution time: 18_656_000 picoseconds. - Weight::from_parts(19_205_000, 0) - .saturating_add(Weight::from_parts(0, 4273)) - .saturating_add(T::DbWeight::get().reads(2)) - .saturating_add(T::DbWeight::get().writes(1)) - } - /// Storage: `ForeignAssets::Asset` (r:1 w:1) - /// Proof: `ForeignAssets::Asset` (`max_values`: None, `max_size`: Some(808), added: 3283, mode: `MaxEncodedLen`) - fn freeze_asset() -> Weight { - // Proof Size summary in bytes: - // Measured: `276` - // Estimated: `4273` - // Minimum execution time: 15_440_000 picoseconds. - Weight::from_parts(15_825_000, 0) - .saturating_add(Weight::from_parts(0, 4273)) - .saturating_add(T::DbWeight::get().reads(1)) - .saturating_add(T::DbWeight::get().writes(1)) - } - /// Storage: `ForeignAssets::Asset` (r:1 w:1) - /// Proof: `ForeignAssets::Asset` (`max_values`: None, `max_size`: Some(808), added: 3283, mode: `MaxEncodedLen`) - fn thaw_asset() -> Weight { - // Proof Size summary in bytes: - // Measured: `276` - // Estimated: `4273` - // Minimum execution time: 15_465_000 picoseconds. - Weight::from_parts(15_769_000, 0) - .saturating_add(Weight::from_parts(0, 4273)) - .saturating_add(T::DbWeight::get().reads(1)) - .saturating_add(T::DbWeight::get().writes(1)) - } - /// Storage: `ForeignAssets::Asset` (r:1 w:1) - /// Proof: `ForeignAssets::Asset` (`max_values`: None, `max_size`: Some(808), added: 3283, mode: `MaxEncodedLen`) - /// Storage: `ForeignAssets::Metadata` (r:1 w:0) - /// Proof: `ForeignAssets::Metadata` (`max_values`: None, `max_size`: Some(738), added: 3213, mode: `MaxEncodedLen`) - fn transfer_ownership() -> Weight { - // Proof Size summary in bytes: - // Measured: `242` - // Estimated: `4273` - // Minimum execution time: 16_579_000 picoseconds. - Weight::from_parts(16_931_000, 0) - .saturating_add(Weight::from_parts(0, 4273)) - .saturating_add(T::DbWeight::get().reads(2)) - .saturating_add(T::DbWeight::get().writes(1)) - } - /// Storage: `ForeignAssets::Asset` (r:1 w:1) - /// Proof: `ForeignAssets::Asset` (`max_values`: None, `max_size`: Some(808), added: 3283, mode: `MaxEncodedLen`) - fn set_team() -> Weight { - // Proof Size summary in bytes: - // Measured: `242` - // Estimated: `4273` - // Minimum execution time: 15_138_000 picoseconds. - Weight::from_parts(15_435_000, 0) - .saturating_add(Weight::from_parts(0, 4273)) - .saturating_add(T::DbWeight::get().reads(1)) - .saturating_add(T::DbWeight::get().writes(1)) - } - /// Storage: ForeignAssets Asset (r:1 w:0) - /// Proof: ForeignAssets Asset (max_values: None, max_size: Some(808), added: 3283, mode: MaxEncodedLen) - /// Storage: ForeignAssets Metadata (r:1 w:1) - /// Proof: ForeignAssets Metadata (max_values: None, max_size: Some(738), added: 3213, mode: MaxEncodedLen) - /// The range of component `n` is `[0, 50]`. - /// The range of component `s` is `[0, 50]`. - /// The range of component `n` is `[0, 50]`. - /// The range of component `s` is `[0, 50]`. - fn set_metadata(_n: u32, _s: u32, ) -> Weight { - // Proof Size summary in bytes: - // Measured: `242` - // Estimated: `4273` - // Minimum execution time: 29_846_000 picoseconds. - Weight::from_parts(31_607_649, 0) - .saturating_add(Weight::from_parts(0, 4273)) - .saturating_add(T::DbWeight::get().reads(2)) - .saturating_add(T::DbWeight::get().writes(1)) - } - /// Storage: `ForeignAssets::Asset` (r:1 w:0) - /// Proof: `ForeignAssets::Asset` (`max_values`: None, `max_size`: Some(808), added: 3283, mode: `MaxEncodedLen`) - /// Storage: `ForeignAssets::Metadata` (r:1 w:1) - /// Proof: `ForeignAssets::Metadata` (`max_values`: None, `max_size`: Some(738), added: 3213, mode: `MaxEncodedLen`) - fn clear_metadata() -> Weight { - // Proof Size summary in bytes: - // Measured: `406` - // Estimated: `4273` - // Minimum execution time: 30_582_000 picoseconds. - Weight::from_parts(31_008_000, 0) - .saturating_add(Weight::from_parts(0, 4273)) - .saturating_add(T::DbWeight::get().reads(2)) - .saturating_add(T::DbWeight::get().writes(1)) - } - /// Storage: ForeignAssets Asset (r:1 w:0) - /// Proof: ForeignAssets Asset (max_values: None, max_size: Some(808), added: 3283, mode: MaxEncodedLen) - /// Storage: ForeignAssets Metadata (r:1 w:1) - /// Proof: ForeignAssets Metadata (max_values: None, max_size: Some(738), added: 3213, mode: MaxEncodedLen) - /// The range of component `n` is `[0, 50]`. - /// The range of component `s` is `[0, 50]`. - /// The range of component `n` is `[0, 50]`. - /// The range of component `s` is `[0, 50]`. - fn force_set_metadata(_n: u32, s: u32, ) -> Weight { - // Proof Size summary in bytes: - // Measured: `81` - // Estimated: `4273` - // Minimum execution time: 14_186_000 picoseconds. - Weight::from_parts(14_717_332, 0) - .saturating_add(Weight::from_parts(0, 4273)) - // Standard Error: 517 - .saturating_add(Weight::from_parts(2_595, 0).saturating_mul(s.into())) - .saturating_add(T::DbWeight::get().reads(2)) - .saturating_add(T::DbWeight::get().writes(1)) - } - /// Storage: `ForeignAssets::Asset` (r:1 w:0) - /// Proof: `ForeignAssets::Asset` (`max_values`: None, `max_size`: Some(808), added: 3283, mode: `MaxEncodedLen`) - /// Storage: `ForeignAssets::Metadata` (r:1 w:1) - /// Proof: `ForeignAssets::Metadata` (`max_values`: None, `max_size`: Some(738), added: 3213, mode: `MaxEncodedLen`) - fn force_clear_metadata() -> Weight { - // Proof Size summary in bytes: - // Measured: `406` - // Estimated: `4273` - // Minimum execution time: 29_499_000 picoseconds. - Weight::from_parts(29_918_000, 0) - .saturating_add(Weight::from_parts(0, 4273)) - .saturating_add(T::DbWeight::get().reads(2)) - .saturating_add(T::DbWeight::get().writes(1)) - } - /// Storage: `ForeignAssets::Asset` (r:1 w:1) - /// Proof: `ForeignAssets::Asset` (`max_values`: None, `max_size`: Some(808), added: 3283, mode: `MaxEncodedLen`) - fn force_asset_status() -> Weight { - // Proof Size summary in bytes: - // Measured: `242` - // Estimated: `4273` - // Minimum execution time: 13_815_000 picoseconds. - Weight::from_parts(14_138_000, 0) - .saturating_add(Weight::from_parts(0, 4273)) - .saturating_add(T::DbWeight::get().reads(1)) - .saturating_add(T::DbWeight::get().writes(1)) - } - /// Storage: `ForeignAssets::Asset` (r:1 w:1) - /// Proof: `ForeignAssets::Asset` (`max_values`: None, `max_size`: Some(808), added: 3283, mode: `MaxEncodedLen`) - /// Storage: `ForeignAssets::Approvals` (r:1 w:1) - /// Proof: `ForeignAssets::Approvals` (`max_values`: None, `max_size`: Some(746), added: 3221, mode: `MaxEncodedLen`) - fn approve_transfer() -> Weight { - // Proof Size summary in bytes: - // Measured: `276` - // Estimated: `4273` - // Minimum execution time: 33_029_000 picoseconds. - Weight::from_parts(33_524_000, 0) - .saturating_add(Weight::from_parts(0, 4273)) - .saturating_add(T::DbWeight::get().reads(2)) - .saturating_add(T::DbWeight::get().writes(2)) - } - /// Storage: `ForeignAssets::Asset` (r:1 w:1) - /// Proof: `ForeignAssets::Asset` (`max_values`: None, `max_size`: Some(808), added: 3283, mode: `MaxEncodedLen`) - /// Storage: `ForeignAssets::Approvals` (r:1 w:1) - /// Proof: `ForeignAssets::Approvals` (`max_values`: None, `max_size`: Some(746), added: 3221, mode: `MaxEncodedLen`) - /// Storage: `ForeignAssets::Account` (r:2 w:2) - /// Proof: `ForeignAssets::Account` (`max_values`: None, `max_size`: Some(732), added: 3207, mode: `MaxEncodedLen`) - /// Storage: `System::Account` (r:1 w:1) - /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`) - fn transfer_approved() -> Weight { - // Proof Size summary in bytes: - // Measured: `520` - // Estimated: `7404` - // Minimum execution time: 63_205_000 picoseconds. - Weight::from_parts(64_078_000, 0) - .saturating_add(Weight::from_parts(0, 7404)) - .saturating_add(T::DbWeight::get().reads(5)) - .saturating_add(T::DbWeight::get().writes(5)) - } - /// Storage: `ForeignAssets::Asset` (r:1 w:1) - /// Proof: `ForeignAssets::Asset` (`max_values`: None, `max_size`: Some(808), added: 3283, mode: `MaxEncodedLen`) - /// Storage: `ForeignAssets::Approvals` (r:1 w:1) - /// Proof: `ForeignAssets::Approvals` (`max_values`: None, `max_size`: Some(746), added: 3221, mode: `MaxEncodedLen`) - fn cancel_approval() -> Weight { - // Proof Size summary in bytes: - // Measured: `446` - // Estimated: `4273` - // Minimum execution time: 34_948_000 picoseconds. - Weight::from_parts(35_484_000, 0) - .saturating_add(Weight::from_parts(0, 4273)) - .saturating_add(T::DbWeight::get().reads(2)) - .saturating_add(T::DbWeight::get().writes(2)) - } - /// Storage: `ForeignAssets::Asset` (r:1 w:1) - /// Proof: `ForeignAssets::Asset` (`max_values`: None, `max_size`: Some(808), added: 3283, mode: `MaxEncodedLen`) - /// Storage: `ForeignAssets::Approvals` (r:1 w:1) - /// Proof: `ForeignAssets::Approvals` (`max_values`: None, `max_size`: Some(746), added: 3221, mode: `MaxEncodedLen`) - fn force_cancel_approval() -> Weight { - // Proof Size summary in bytes: - // Measured: `446` - // Estimated: `4273` - // Minimum execution time: 35_722_000 picoseconds. - Weight::from_parts(36_266_000, 0) - .saturating_add(Weight::from_parts(0, 4273)) - .saturating_add(T::DbWeight::get().reads(2)) - .saturating_add(T::DbWeight::get().writes(2)) - } - /// Storage: `ForeignAssets::Asset` (r:1 w:1) - /// Proof: `ForeignAssets::Asset` (`max_values`: None, `max_size`: Some(808), added: 3283, mode: `MaxEncodedLen`) - fn set_min_balance() -> Weight { - // Proof Size summary in bytes: - // Measured: `242` - // Estimated: `4273` - // Minimum execution time: 15_855_000 picoseconds. - Weight::from_parts(16_182_000, 0) - .saturating_add(Weight::from_parts(0, 4273)) - .saturating_add(T::DbWeight::get().reads(1)) - .saturating_add(T::DbWeight::get().writes(1)) - } - /// Storage: `ForeignAssets::Account` (r:1 w:1) - /// Proof: `ForeignAssets::Account` (`max_values`: None, `max_size`: Some(732), added: 3207, mode: `MaxEncodedLen`) - /// Storage: `ForeignAssets::Asset` (r:1 w:1) - /// Proof: `ForeignAssets::Asset` (`max_values`: None, `max_size`: Some(808), added: 3283, mode: `MaxEncodedLen`) - /// Storage: `System::Account` (r:1 w:1) - /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`) - fn touch() -> Weight { - // Proof Size summary in bytes: - // Measured: `345` - // Estimated: `4273` - // Minimum execution time: 34_984_000 picoseconds. - Weight::from_parts(35_512_000, 0) - .saturating_add(Weight::from_parts(0, 4273)) - .saturating_add(T::DbWeight::get().reads(3)) - .saturating_add(T::DbWeight::get().writes(3)) - } - /// Storage: `ForeignAssets::Account` (r:1 w:1) - /// Proof: `ForeignAssets::Account` (`max_values`: None, `max_size`: Some(732), added: 3207, mode: `MaxEncodedLen`) - /// Storage: `ForeignAssets::Asset` (r:1 w:1) - /// Proof: `ForeignAssets::Asset` (`max_values`: None, `max_size`: Some(808), added: 3283, mode: `MaxEncodedLen`) - fn touch_other() -> Weight { - // Proof Size summary in bytes: - // Measured: `242` - // Estimated: `4273` - // Minimum execution time: 33_041_000 picoseconds. - Weight::from_parts(34_124_000, 0) - .saturating_add(Weight::from_parts(0, 4273)) - .saturating_add(T::DbWeight::get().reads(2)) - .saturating_add(T::DbWeight::get().writes(2)) - } - /// Storage: `ForeignAssets::Account` (r:1 w:1) - /// Proof: `ForeignAssets::Account` (`max_values`: None, `max_size`: Some(732), added: 3207, mode: `MaxEncodedLen`) - /// Storage: `ForeignAssets::Asset` (r:1 w:1) - /// Proof: `ForeignAssets::Asset` (`max_values`: None, `max_size`: Some(808), added: 3283, mode: `MaxEncodedLen`) - /// Storage: `System::Account` (r:1 w:1) - /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`) - fn refund() -> Weight { - // Proof Size summary in bytes: - // Measured: `471` - // Estimated: `4273` - // Minimum execution time: 31_728_000 picoseconds. - Weight::from_parts(32_012_000, 0) - .saturating_add(Weight::from_parts(0, 4273)) - .saturating_add(T::DbWeight::get().reads(3)) - .saturating_add(T::DbWeight::get().writes(3)) - } - /// Storage: `ForeignAssets::Account` (r:1 w:1) - /// Proof: `ForeignAssets::Account` (`max_values`: None, `max_size`: Some(732), added: 3207, mode: `MaxEncodedLen`) - /// Storage: `ForeignAssets::Asset` (r:1 w:1) - /// Proof: `ForeignAssets::Asset` (`max_values`: None, `max_size`: Some(808), added: 3283, mode: `MaxEncodedLen`) - fn refund_other() -> Weight { - // Proof Size summary in bytes: - // Measured: `401` - // Estimated: `4273` - // Minimum execution time: 29_432_000 picoseconds. - Weight::from_parts(29_968_000, 0) - .saturating_add(Weight::from_parts(0, 4273)) - .saturating_add(T::DbWeight::get().reads(2)) - .saturating_add(T::DbWeight::get().writes(2)) - } - /// Storage: `ForeignAssets::Asset` (r:1 w:0) - /// Proof: `ForeignAssets::Asset` (`max_values`: None, `max_size`: Some(808), added: 3283, mode: `MaxEncodedLen`) - /// Storage: `ForeignAssets::Account` (r:1 w:1) - /// Proof: `ForeignAssets::Account` (`max_values`: None, `max_size`: Some(732), added: 3207, mode: `MaxEncodedLen`) - fn block() -> Weight { - // Proof Size summary in bytes: - // Measured: `350` - // Estimated: `4273` - // Minimum execution time: 18_827_000 picoseconds. - Weight::from_parts(19_172_000, 0) - .saturating_add(Weight::from_parts(0, 4273)) - .saturating_add(T::DbWeight::get().reads(2)) - .saturating_add(T::DbWeight::get().writes(1)) - } -} diff --git a/cumulus/parachains/runtimes/assets/asset-hub-kusama/src/weights/pallet_assets_local.rs b/cumulus/parachains/runtimes/assets/asset-hub-kusama/src/weights/pallet_assets_local.rs deleted file mode 100644 index 10bd4b1f8b09..000000000000 --- a/cumulus/parachains/runtimes/assets/asset-hub-kusama/src/weights/pallet_assets_local.rs +++ /dev/null @@ -1,531 +0,0 @@ -// Copyright (C) Parity Technologies (UK) Ltd. -// This file is part of Cumulus. - -// Cumulus 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. - -// Cumulus 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 Cumulus. If not, see . - -//! Autogenerated weights for `pallet_assets` -//! -//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev -//! DATE: 2023-07-31, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` -//! WORST CASE MAP SIZE: `1000000` -//! HOSTNAME: `runner-ynta1nyy-project-238-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz` -//! EXECUTION: ``, WASM-EXECUTION: `Compiled`, CHAIN: `Some("asset-hub-kusama-dev")`, DB CACHE: 1024 - -// Executed Command: -// ./target/production/polkadot-parachain -// benchmark -// pallet -// --chain=asset-hub-kusama-dev -// --wasm-execution=compiled -// --pallet=pallet_assets -// --no-storage-info -// --no-median-slopes -// --no-min-squares -// --extrinsic=* -// --steps=50 -// --repeat=20 -// --json -// --header=./file_header.txt -// --output=./parachains/runtimes/assets/asset-hub-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_assets`. -pub struct WeightInfo(PhantomData); -impl pallet_assets::WeightInfo for WeightInfo { - /// Storage: `Assets::Asset` (r:1 w:1) - /// Proof: `Assets::Asset` (`max_values`: None, `max_size`: Some(210), added: 2685, mode: `MaxEncodedLen`) - /// Storage: `System::Account` (r:1 w:1) - /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`) - fn create() -> Weight { - // Proof Size summary in bytes: - // Measured: `109` - // Estimated: `3675` - // Minimum execution time: 26_510_000 picoseconds. - Weight::from_parts(27_332_000, 0) - .saturating_add(Weight::from_parts(0, 3675)) - .saturating_add(T::DbWeight::get().reads(2)) - .saturating_add(T::DbWeight::get().writes(2)) - } - /// Storage: `Assets::Asset` (r:1 w:1) - /// Proof: `Assets::Asset` (`max_values`: None, `max_size`: Some(210), added: 2685, mode: `MaxEncodedLen`) - fn force_create() -> Weight { - // Proof Size summary in bytes: - // Measured: `6` - // Estimated: `3675` - // Minimum execution time: 10_899_000 picoseconds. - Weight::from_parts(11_395_000, 0) - .saturating_add(Weight::from_parts(0, 3675)) - .saturating_add(T::DbWeight::get().reads(1)) - .saturating_add(T::DbWeight::get().writes(1)) - } - /// Storage: `Assets::Asset` (r:1 w:1) - /// Proof: `Assets::Asset` (`max_values`: None, `max_size`: Some(210), added: 2685, mode: `MaxEncodedLen`) - fn start_destroy() -> Weight { - // Proof Size summary in bytes: - // Measured: `277` - // Estimated: `3675` - // Minimum execution time: 13_593_000 picoseconds. - Weight::from_parts(14_108_000, 0) - .saturating_add(Weight::from_parts(0, 3675)) - .saturating_add(T::DbWeight::get().reads(1)) - .saturating_add(T::DbWeight::get().writes(1)) - } - /// Storage: `Assets::Asset` (r:1 w:1) - /// Proof: `Assets::Asset` (`max_values`: None, `max_size`: Some(210), added: 2685, mode: `MaxEncodedLen`) - /// Storage: `Assets::Account` (r:1001 w:1000) - /// Proof: `Assets::Account` (`max_values`: None, `max_size`: Some(134), added: 2609, mode: `MaxEncodedLen`) - /// Storage: `System::Account` (r:1000 w:1000) - /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`) - /// The range of component `c` is `[0, 1000]`. - /// The range of component `c` is `[0, 1000]`. - fn destroy_accounts(c: u32, ) -> Weight { - // Proof Size summary in bytes: - // Measured: `0 + c * (208 ±0)` - // Estimated: `3675 + c * (2609 ±0)` - // Minimum execution time: 16_216_000 picoseconds. - Weight::from_parts(16_636_000, 0) - .saturating_add(Weight::from_parts(0, 3675)) - // Standard Error: 9_346 - .saturating_add(Weight::from_parts(15_306_152, 0).saturating_mul(c.into())) - .saturating_add(T::DbWeight::get().reads(2)) - .saturating_add(T::DbWeight::get().reads((2_u64).saturating_mul(c.into()))) - .saturating_add(T::DbWeight::get().writes(1)) - .saturating_add(T::DbWeight::get().writes((2_u64).saturating_mul(c.into()))) - .saturating_add(Weight::from_parts(0, 2609).saturating_mul(c.into())) - } - /// Storage: `Assets::Asset` (r:1 w:1) - /// Proof: `Assets::Asset` (`max_values`: None, `max_size`: Some(210), added: 2685, mode: `MaxEncodedLen`) - /// Storage: `Assets::Approvals` (r:1001 w:1000) - /// Proof: `Assets::Approvals` (`max_values`: None, `max_size`: Some(148), added: 2623, mode: `MaxEncodedLen`) - /// The range of component `a` is `[0, 1000]`. - /// The range of component `a` is `[0, 1000]`. - fn destroy_approvals(a: u32, ) -> Weight { - // Proof Size summary in bytes: - // Measured: `414 + a * (86 ±0)` - // Estimated: `3675 + a * (2623 ±0)` - // Minimum execution time: 16_745_000 picoseconds. - Weight::from_parts(17_247_000, 0) - .saturating_add(Weight::from_parts(0, 3675)) - .saturating_add(Weight::from_parts(15_634_963, 0).saturating_mul(a.into())) - .saturating_add(T::DbWeight::get().reads(2)) - .saturating_add(T::DbWeight::get().reads((1_u64).saturating_mul(a.into()))) - .saturating_add(T::DbWeight::get().writes(1)) - .saturating_add(Weight::from_parts(0, 2623).saturating_mul(a.into())) - } - /// Storage: `Assets::Asset` (r:1 w:1) - /// Proof: `Assets::Asset` (`max_values`: None, `max_size`: Some(210), added: 2685, mode: `MaxEncodedLen`) - /// Storage: `Assets::Metadata` (r:1 w:0) - /// Proof: `Assets::Metadata` (`max_values`: None, `max_size`: Some(140), added: 2615, mode: `MaxEncodedLen`) - fn finish_destroy() -> Weight { - // Proof Size summary in bytes: - // Measured: `243` - // Estimated: `3675` - // Minimum execution time: 13_650_000 picoseconds. - Weight::from_parts(14_721_000, 0) - .saturating_add(Weight::from_parts(0, 3675)) - .saturating_add(T::DbWeight::get().reads(2)) - .saturating_add(T::DbWeight::get().writes(1)) - } - /// Storage: `Assets::Asset` (r:1 w:1) - /// Proof: `Assets::Asset` (`max_values`: None, `max_size`: Some(210), added: 2685, mode: `MaxEncodedLen`) - /// Storage: `Assets::Account` (r:1 w:1) - /// Proof: `Assets::Account` (`max_values`: None, `max_size`: Some(134), added: 2609, mode: `MaxEncodedLen`) - fn mint() -> Weight { - // Proof Size summary in bytes: - // Measured: `243` - // Estimated: `3675` - // Minimum execution time: 24_121_000 picoseconds. - Weight::from_parts(25_023_000, 0) - .saturating_add(Weight::from_parts(0, 3675)) - .saturating_add(T::DbWeight::get().reads(2)) - .saturating_add(T::DbWeight::get().writes(2)) - } - /// Storage: `Assets::Asset` (r:1 w:1) - /// Proof: `Assets::Asset` (`max_values`: None, `max_size`: Some(210), added: 2685, mode: `MaxEncodedLen`) - /// Storage: `Assets::Account` (r:1 w:1) - /// Proof: `Assets::Account` (`max_values`: None, `max_size`: Some(134), added: 2609, mode: `MaxEncodedLen`) - fn burn() -> Weight { - // Proof Size summary in bytes: - // Measured: `351` - // Estimated: `3675` - // Minimum execution time: 31_414_000 picoseconds. - Weight::from_parts(32_235_000, 0) - .saturating_add(Weight::from_parts(0, 3675)) - .saturating_add(T::DbWeight::get().reads(2)) - .saturating_add(T::DbWeight::get().writes(2)) - } - /// Storage: `Assets::Asset` (r:1 w:1) - /// Proof: `Assets::Asset` (`max_values`: None, `max_size`: Some(210), added: 2685, mode: `MaxEncodedLen`) - /// Storage: `Assets::Account` (r:2 w:2) - /// Proof: `Assets::Account` (`max_values`: None, `max_size`: Some(134), added: 2609, mode: `MaxEncodedLen`) - /// Storage: `System::Account` (r:1 w:1) - /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`) - fn transfer() -> Weight { - // Proof Size summary in bytes: - // Measured: `351` - // Estimated: `6208` - // Minimum execution time: 43_114_000 picoseconds. - Weight::from_parts(44_106_000, 0) - .saturating_add(Weight::from_parts(0, 6208)) - .saturating_add(T::DbWeight::get().reads(4)) - .saturating_add(T::DbWeight::get().writes(4)) - } - /// Storage: `Assets::Asset` (r:1 w:1) - /// Proof: `Assets::Asset` (`max_values`: None, `max_size`: Some(210), added: 2685, mode: `MaxEncodedLen`) - /// Storage: `Assets::Account` (r:2 w:2) - /// Proof: `Assets::Account` (`max_values`: None, `max_size`: Some(134), added: 2609, mode: `MaxEncodedLen`) - /// 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: `351` - // Estimated: `6208` - // Minimum execution time: 37_954_000 picoseconds. - Weight::from_parts(38_772_000, 0) - .saturating_add(Weight::from_parts(0, 6208)) - .saturating_add(T::DbWeight::get().reads(4)) - .saturating_add(T::DbWeight::get().writes(4)) - } - /// Storage: `Assets::Asset` (r:1 w:1) - /// Proof: `Assets::Asset` (`max_values`: None, `max_size`: Some(210), added: 2685, mode: `MaxEncodedLen`) - /// Storage: `Assets::Account` (r:2 w:2) - /// Proof: `Assets::Account` (`max_values`: None, `max_size`: Some(134), added: 2609, mode: `MaxEncodedLen`) - /// Storage: `System::Account` (r:1 w:1) - /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`) - fn force_transfer() -> Weight { - // Proof Size summary in bytes: - // Measured: `351` - // Estimated: `6208` - // Minimum execution time: 43_051_000 picoseconds. - Weight::from_parts(44_003_000, 0) - .saturating_add(Weight::from_parts(0, 6208)) - .saturating_add(T::DbWeight::get().reads(4)) - .saturating_add(T::DbWeight::get().writes(4)) - } - /// Storage: `Assets::Asset` (r:1 w:0) - /// Proof: `Assets::Asset` (`max_values`: None, `max_size`: Some(210), added: 2685, mode: `MaxEncodedLen`) - /// Storage: `Assets::Account` (r:1 w:1) - /// Proof: `Assets::Account` (`max_values`: None, `max_size`: Some(134), added: 2609, mode: `MaxEncodedLen`) - fn freeze() -> Weight { - // Proof Size summary in bytes: - // Measured: `351` - // Estimated: `3675` - // Minimum execution time: 17_048_000 picoseconds. - Weight::from_parts(17_614_000, 0) - .saturating_add(Weight::from_parts(0, 3675)) - .saturating_add(T::DbWeight::get().reads(2)) - .saturating_add(T::DbWeight::get().writes(1)) - } - /// Storage: `Assets::Asset` (r:1 w:0) - /// Proof: `Assets::Asset` (`max_values`: None, `max_size`: Some(210), added: 2685, mode: `MaxEncodedLen`) - /// Storage: `Assets::Account` (r:1 w:1) - /// Proof: `Assets::Account` (`max_values`: None, `max_size`: Some(134), added: 2609, mode: `MaxEncodedLen`) - fn thaw() -> Weight { - // Proof Size summary in bytes: - // Measured: `351` - // Estimated: `3675` - // Minimum execution time: 16_705_000 picoseconds. - Weight::from_parts(17_581_000, 0) - .saturating_add(Weight::from_parts(0, 3675)) - .saturating_add(T::DbWeight::get().reads(2)) - .saturating_add(T::DbWeight::get().writes(1)) - } - /// Storage: `Assets::Asset` (r:1 w:1) - /// Proof: `Assets::Asset` (`max_values`: None, `max_size`: Some(210), added: 2685, mode: `MaxEncodedLen`) - fn freeze_asset() -> Weight { - // Proof Size summary in bytes: - // Measured: `277` - // Estimated: `3675` - // Minimum execution time: 13_284_000 picoseconds. - Weight::from_parts(13_735_000, 0) - .saturating_add(Weight::from_parts(0, 3675)) - .saturating_add(T::DbWeight::get().reads(1)) - .saturating_add(T::DbWeight::get().writes(1)) - } - /// Storage: `Assets::Asset` (r:1 w:1) - /// Proof: `Assets::Asset` (`max_values`: None, `max_size`: Some(210), added: 2685, mode: `MaxEncodedLen`) - fn thaw_asset() -> Weight { - // Proof Size summary in bytes: - // Measured: `277` - // Estimated: `3675` - // Minimum execution time: 13_030_000 picoseconds. - Weight::from_parts(13_417_000, 0) - .saturating_add(Weight::from_parts(0, 3675)) - .saturating_add(T::DbWeight::get().reads(1)) - .saturating_add(T::DbWeight::get().writes(1)) - } - /// Storage: `Assets::Asset` (r:1 w:1) - /// Proof: `Assets::Asset` (`max_values`: None, `max_size`: Some(210), added: 2685, mode: `MaxEncodedLen`) - /// Storage: `Assets::Metadata` (r:1 w:0) - /// Proof: `Assets::Metadata` (`max_values`: None, `max_size`: Some(140), added: 2615, mode: `MaxEncodedLen`) - fn transfer_ownership() -> Weight { - // Proof Size summary in bytes: - // Measured: `243` - // Estimated: `3675` - // Minimum execution time: 14_174_000 picoseconds. - Weight::from_parts(14_660_000, 0) - .saturating_add(Weight::from_parts(0, 3675)) - .saturating_add(T::DbWeight::get().reads(2)) - .saturating_add(T::DbWeight::get().writes(1)) - } - /// Storage: `Assets::Asset` (r:1 w:1) - /// Proof: `Assets::Asset` (`max_values`: None, `max_size`: Some(210), added: 2685, mode: `MaxEncodedLen`) - fn set_team() -> Weight { - // Proof Size summary in bytes: - // Measured: `243` - // Estimated: `3675` - // Minimum execution time: 12_737_000 picoseconds. - Weight::from_parts(13_172_000, 0) - .saturating_add(Weight::from_parts(0, 3675)) - .saturating_add(T::DbWeight::get().reads(1)) - .saturating_add(T::DbWeight::get().writes(1)) - } - /// Storage: `Assets::Asset` (r:1 w:0) - /// Proof: `Assets::Asset` (`max_values`: None, `max_size`: Some(210), added: 2685, mode: `MaxEncodedLen`) - /// Storage: `Assets::Metadata` (r:1 w:1) - /// Proof: `Assets::Metadata` (`max_values`: None, `max_size`: Some(140), added: 2615, mode: `MaxEncodedLen`) - /// The range of component `n` is `[0, 50]`. - /// The range of component `s` is `[0, 50]`. - /// The range of component `n` is `[0, 50]`. - /// The range of component `s` is `[0, 50]`. - fn set_metadata(n: u32, s: u32, ) -> Weight { - // Proof Size summary in bytes: - // Measured: `243` - // Estimated: `3675` - // Minimum execution time: 27_707_000 picoseconds. - Weight::from_parts(29_036_880, 0) - .saturating_add(Weight::from_parts(0, 3675)) - // Standard Error: 688 - .saturating_add(Weight::from_parts(2_426, 0).saturating_mul(n.into())) - // Standard Error: 688 - .saturating_add(Weight::from_parts(776, 0).saturating_mul(s.into())) - .saturating_add(T::DbWeight::get().reads(2)) - .saturating_add(T::DbWeight::get().writes(1)) - } - /// Storage: `Assets::Asset` (r:1 w:0) - /// Proof: `Assets::Asset` (`max_values`: None, `max_size`: Some(210), added: 2685, mode: `MaxEncodedLen`) - /// Storage: `Assets::Metadata` (r:1 w:1) - /// Proof: `Assets::Metadata` (`max_values`: None, `max_size`: Some(140), added: 2615, mode: `MaxEncodedLen`) - fn clear_metadata() -> Weight { - // Proof Size summary in bytes: - // Measured: `407` - // Estimated: `3675` - // Minimum execution time: 28_514_000 picoseconds. - Weight::from_parts(29_216_000, 0) - .saturating_add(Weight::from_parts(0, 3675)) - .saturating_add(T::DbWeight::get().reads(2)) - .saturating_add(T::DbWeight::get().writes(1)) - } - /// Storage: `Assets::Asset` (r:1 w:0) - /// Proof: `Assets::Asset` (`max_values`: None, `max_size`: Some(210), added: 2685, mode: `MaxEncodedLen`) - /// Storage: `Assets::Metadata` (r:1 w:1) - /// Proof: `Assets::Metadata` (`max_values`: None, `max_size`: Some(140), added: 2615, mode: `MaxEncodedLen`) - /// The range of component `n` is `[0, 50]`. - /// The range of component `s` is `[0, 50]`. - /// The range of component `n` is `[0, 50]`. - /// The range of component `s` is `[0, 50]`. - fn force_set_metadata(n: u32, s: u32, ) -> Weight { - // Proof Size summary in bytes: - // Measured: `82` - // Estimated: `3675` - // Minimum execution time: 12_452_000 picoseconds. - Weight::from_parts(13_095_356, 0) - .saturating_add(Weight::from_parts(0, 3675)) - // Standard Error: 275 - .saturating_add(Weight::from_parts(826, 0).saturating_mul(n.into())) - // Standard Error: 275 - .saturating_add(Weight::from_parts(808, 0).saturating_mul(s.into())) - .saturating_add(T::DbWeight::get().reads(2)) - .saturating_add(T::DbWeight::get().writes(1)) - } - /// Storage: `Assets::Asset` (r:1 w:0) - /// Proof: `Assets::Asset` (`max_values`: None, `max_size`: Some(210), added: 2685, mode: `MaxEncodedLen`) - /// Storage: `Assets::Metadata` (r:1 w:1) - /// Proof: `Assets::Metadata` (`max_values`: None, `max_size`: Some(140), added: 2615, mode: `MaxEncodedLen`) - fn force_clear_metadata() -> Weight { - // Proof Size summary in bytes: - // Measured: `407` - // Estimated: `3675` - // Minimum execution time: 28_181_000 picoseconds. - Weight::from_parts(29_050_000, 0) - .saturating_add(Weight::from_parts(0, 3675)) - .saturating_add(T::DbWeight::get().reads(2)) - .saturating_add(T::DbWeight::get().writes(1)) - } - /// Storage: `Assets::Asset` (r:1 w:1) - /// Proof: `Assets::Asset` (`max_values`: None, `max_size`: Some(210), added: 2685, mode: `MaxEncodedLen`) - fn force_asset_status() -> Weight { - // Proof Size summary in bytes: - // Measured: `243` - // Estimated: `3675` - // Minimum execution time: 12_253_000 picoseconds. - Weight::from_parts(12_545_000, 0) - .saturating_add(Weight::from_parts(0, 3675)) - .saturating_add(T::DbWeight::get().reads(1)) - .saturating_add(T::DbWeight::get().writes(1)) - } - /// Storage: `Assets::Asset` (r:1 w:1) - /// Proof: `Assets::Asset` (`max_values`: None, `max_size`: Some(210), added: 2685, mode: `MaxEncodedLen`) - /// Storage: `Assets::Approvals` (r:1 w:1) - /// Proof: `Assets::Approvals` (`max_values`: None, `max_size`: Some(148), added: 2623, mode: `MaxEncodedLen`) - fn approve_transfer() -> Weight { - // Proof Size summary in bytes: - // Measured: `277` - // Estimated: `3675` - // Minimum execution time: 31_084_000 picoseconds. - Weight::from_parts(32_052_000, 0) - .saturating_add(Weight::from_parts(0, 3675)) - .saturating_add(T::DbWeight::get().reads(2)) - .saturating_add(T::DbWeight::get().writes(2)) - } - /// Storage: `Assets::Asset` (r:1 w:1) - /// Proof: `Assets::Asset` (`max_values`: None, `max_size`: Some(210), added: 2685, mode: `MaxEncodedLen`) - /// Storage: `Assets::Approvals` (r:1 w:1) - /// Proof: `Assets::Approvals` (`max_values`: None, `max_size`: Some(148), added: 2623, mode: `MaxEncodedLen`) - /// Storage: `Assets::Account` (r:2 w:2) - /// Proof: `Assets::Account` (`max_values`: None, `max_size`: Some(134), added: 2609, mode: `MaxEncodedLen`) - /// Storage: `System::Account` (r:1 w:1) - /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`) - fn transfer_approved() -> Weight { - // Proof Size summary in bytes: - // Measured: `521` - // Estimated: `6208` - // Minimum execution time: 61_756_000 picoseconds. - Weight::from_parts(62_740_000, 0) - .saturating_add(Weight::from_parts(0, 6208)) - .saturating_add(T::DbWeight::get().reads(5)) - .saturating_add(T::DbWeight::get().writes(5)) - } - /// Storage: `Assets::Asset` (r:1 w:1) - /// Proof: `Assets::Asset` (`max_values`: None, `max_size`: Some(210), added: 2685, mode: `MaxEncodedLen`) - /// Storage: `Assets::Approvals` (r:1 w:1) - /// Proof: `Assets::Approvals` (`max_values`: None, `max_size`: Some(148), added: 2623, mode: `MaxEncodedLen`) - fn cancel_approval() -> Weight { - // Proof Size summary in bytes: - // Measured: `447` - // Estimated: `3675` - // Minimum execution time: 33_370_000 picoseconds. - Weight::from_parts(34_127_000, 0) - .saturating_add(Weight::from_parts(0, 3675)) - .saturating_add(T::DbWeight::get().reads(2)) - .saturating_add(T::DbWeight::get().writes(2)) - } - /// Storage: `Assets::Asset` (r:1 w:1) - /// Proof: `Assets::Asset` (`max_values`: None, `max_size`: Some(210), added: 2685, mode: `MaxEncodedLen`) - /// Storage: `Assets::Approvals` (r:1 w:1) - /// Proof: `Assets::Approvals` (`max_values`: None, `max_size`: Some(148), added: 2623, mode: `MaxEncodedLen`) - fn force_cancel_approval() -> Weight { - // Proof Size summary in bytes: - // Measured: `447` - // Estimated: `3675` - // Minimum execution time: 33_753_000 picoseconds. - Weight::from_parts(34_613_000, 0) - .saturating_add(Weight::from_parts(0, 3675)) - .saturating_add(T::DbWeight::get().reads(2)) - .saturating_add(T::DbWeight::get().writes(2)) - } - /// Storage: `Assets::Asset` (r:1 w:1) - /// Proof: `Assets::Asset` (`max_values`: None, `max_size`: Some(210), added: 2685, mode: `MaxEncodedLen`) - fn set_min_balance() -> Weight { - // Proof Size summary in bytes: - // Measured: `243` - // Estimated: `3675` - // Minimum execution time: 13_508_000 picoseconds. - Weight::from_parts(13_997_000, 0) - .saturating_add(Weight::from_parts(0, 3675)) - .saturating_add(T::DbWeight::get().reads(1)) - .saturating_add(T::DbWeight::get().writes(1)) - } - /// Storage: `Assets::Account` (r:1 w:1) - /// Proof: `Assets::Account` (`max_values`: None, `max_size`: Some(134), added: 2609, mode: `MaxEncodedLen`) - /// Storage: `Assets::Asset` (r:1 w:1) - /// Proof: `Assets::Asset` (`max_values`: None, `max_size`: Some(210), added: 2685, mode: `MaxEncodedLen`) - /// Storage: `System::Account` (r:1 w:1) - /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`) - fn touch() -> Weight { - // Proof Size summary in bytes: - // Measured: `346` - // Estimated: `3675` - // Minimum execution time: 32_578_000 picoseconds. - Weight::from_parts(33_675_000, 0) - .saturating_add(Weight::from_parts(0, 3675)) - .saturating_add(T::DbWeight::get().reads(3)) - .saturating_add(T::DbWeight::get().writes(3)) - } - /// Storage: `Assets::Account` (r:1 w:1) - /// Proof: `Assets::Account` (`max_values`: None, `max_size`: Some(134), added: 2609, mode: `MaxEncodedLen`) - /// Storage: `Assets::Asset` (r:1 w:1) - /// Proof: `Assets::Asset` (`max_values`: None, `max_size`: Some(210), added: 2685, mode: `MaxEncodedLen`) - fn touch_other() -> Weight { - // Proof Size summary in bytes: - // Measured: `243` - // Estimated: `3675` - // Minimum execution time: 30_768_000 picoseconds. - Weight::from_parts(31_710_000, 0) - .saturating_add(Weight::from_parts(0, 3675)) - .saturating_add(T::DbWeight::get().reads(2)) - .saturating_add(T::DbWeight::get().writes(2)) - } - /// Storage: `Assets::Account` (r:1 w:1) - /// Proof: `Assets::Account` (`max_values`: None, `max_size`: Some(134), added: 2609, mode: `MaxEncodedLen`) - /// Storage: `Assets::Asset` (r:1 w:1) - /// Proof: `Assets::Asset` (`max_values`: None, `max_size`: Some(210), added: 2685, mode: `MaxEncodedLen`) - /// Storage: `System::Account` (r:1 w:1) - /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`) - fn refund() -> Weight { - // Proof Size summary in bytes: - // Measured: `472` - // Estimated: `3675` - // Minimum execution time: 30_028_000 picoseconds. - Weight::from_parts(30_793_000, 0) - .saturating_add(Weight::from_parts(0, 3675)) - .saturating_add(T::DbWeight::get().reads(3)) - .saturating_add(T::DbWeight::get().writes(3)) - } - /// Storage: `Assets::Account` (r:1 w:1) - /// Proof: `Assets::Account` (`max_values`: None, `max_size`: Some(134), added: 2609, mode: `MaxEncodedLen`) - /// Storage: `Assets::Asset` (r:1 w:1) - /// Proof: `Assets::Asset` (`max_values`: None, `max_size`: Some(210), added: 2685, mode: `MaxEncodedLen`) - fn refund_other() -> Weight { - // Proof Size summary in bytes: - // Measured: `402` - // Estimated: `3675` - // Minimum execution time: 28_354_000 picoseconds. - Weight::from_parts(29_097_000, 0) - .saturating_add(Weight::from_parts(0, 3675)) - .saturating_add(T::DbWeight::get().reads(2)) - .saturating_add(T::DbWeight::get().writes(2)) - } - /// Storage: `Assets::Asset` (r:1 w:0) - /// Proof: `Assets::Asset` (`max_values`: None, `max_size`: Some(210), added: 2685, mode: `MaxEncodedLen`) - /// Storage: `Assets::Account` (r:1 w:1) - /// Proof: `Assets::Account` (`max_values`: None, `max_size`: Some(134), added: 2609, mode: `MaxEncodedLen`) - fn block() -> Weight { - // Proof Size summary in bytes: - // Measured: `351` - // Estimated: `3675` - // Minimum execution time: 16_607_000 picoseconds. - Weight::from_parts(17_433_000, 0) - .saturating_add(Weight::from_parts(0, 3675)) - .saturating_add(T::DbWeight::get().reads(2)) - .saturating_add(T::DbWeight::get().writes(1)) - } -} diff --git a/cumulus/parachains/runtimes/assets/asset-hub-kusama/src/weights/pallet_assets_pool.rs b/cumulus/parachains/runtimes/assets/asset-hub-kusama/src/weights/pallet_assets_pool.rs deleted file mode 100644 index 444699e33ef7..000000000000 --- a/cumulus/parachains/runtimes/assets/asset-hub-kusama/src/weights/pallet_assets_pool.rs +++ /dev/null @@ -1,531 +0,0 @@ -// Copyright (C) Parity Technologies (UK) Ltd. -// This file is part of Cumulus. - -// Cumulus 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. - -// Cumulus 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 Cumulus. If not, see . - -//! Autogenerated weights for `pallet_assets` -//! -//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev -//! DATE: 2023-07-27, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` -//! WORST CASE MAP SIZE: `1000000` -//! HOSTNAME: `runner-ynta1nyy-project-238-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz` -//! EXECUTION: ``, WASM-EXECUTION: `Compiled`, CHAIN: `Some("asset-hub-kusama-dev")`, DB CACHE: 1024 - -// Executed Command: -// target/production/polkadot-parachain -// benchmark -// pallet -// --steps=50 -// --repeat=20 -// --extrinsic=* -// --wasm-execution=compiled -// --heap-pages=4096 -// --json-file=/builds/parity/mirrors/cumulus/.git/.artifacts/bench.json -// --pallet=pallet_assets -// --chain=asset-hub-kusama-dev -// --header=./file_header.txt -// --output=./parachains/runtimes/assets/asset-hub-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_assets`. -pub struct WeightInfo(PhantomData); -impl pallet_assets::WeightInfo for WeightInfo { - /// Storage: `PoolAssets::Asset` (r:1 w:1) - /// Proof: `PoolAssets::Asset` (`max_values`: None, `max_size`: Some(210), added: 2685, mode: `MaxEncodedLen`) - fn create() -> Weight { - // Proof Size summary in bytes: - // Measured: `42` - // Estimated: `3675` - // Minimum execution time: 11_591_000 picoseconds. - Weight::from_parts(11_901_000, 0) - .saturating_add(Weight::from_parts(0, 3675)) - .saturating_add(T::DbWeight::get().reads(1)) - .saturating_add(T::DbWeight::get().writes(1)) - } - /// Storage: `PoolAssets::Asset` (r:1 w:1) - /// Proof: `PoolAssets::Asset` (`max_values`: None, `max_size`: Some(210), added: 2685, mode: `MaxEncodedLen`) - fn force_create() -> Weight { - // Proof Size summary in bytes: - // Measured: `42` - // Estimated: `3675` - // Minimum execution time: 11_184_000 picoseconds. - Weight::from_parts(11_640_000, 0) - .saturating_add(Weight::from_parts(0, 3675)) - .saturating_add(T::DbWeight::get().reads(1)) - .saturating_add(T::DbWeight::get().writes(1)) - } - /// Storage: `PoolAssets::Asset` (r:1 w:1) - /// Proof: `PoolAssets::Asset` (`max_values`: None, `max_size`: Some(210), added: 2685, mode: `MaxEncodedLen`) - fn start_destroy() -> Weight { - // Proof Size summary in bytes: - // Measured: `314` - // Estimated: `3675` - // Minimum execution time: 13_809_000 picoseconds. - Weight::from_parts(14_226_000, 0) - .saturating_add(Weight::from_parts(0, 3675)) - .saturating_add(T::DbWeight::get().reads(1)) - .saturating_add(T::DbWeight::get().writes(1)) - } - /// Storage: `PoolAssets::Asset` (r:1 w:1) - /// Proof: `PoolAssets::Asset` (`max_values`: None, `max_size`: Some(210), added: 2685, mode: `MaxEncodedLen`) - /// Storage: `PoolAssets::Account` (r:1001 w:1000) - /// Proof: `PoolAssets::Account` (`max_values`: None, `max_size`: Some(134), added: 2609, mode: `MaxEncodedLen`) - /// Storage: `System::Account` (r:1000 w:1000) - /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`) - /// The range of component `c` is `[0, 1000]`. - /// The range of component `c` is `[0, 1000]`. - /// The range of component `c` is `[0, 1000]`. - fn destroy_accounts(c: u32, ) -> Weight { - // Proof Size summary in bytes: - // Measured: `0 + c * (208 ±0)` - // Estimated: `3675 + c * (2609 ±0)` - // Minimum execution time: 16_439_000 picoseconds. - Weight::from_parts(16_743_000, 0) - .saturating_add(Weight::from_parts(0, 3675)) - // Standard Error: 4_792 - .saturating_add(Weight::from_parts(14_463_991, 0).saturating_mul(c.into())) - .saturating_add(T::DbWeight::get().reads(2)) - .saturating_add(T::DbWeight::get().reads((2_u64).saturating_mul(c.into()))) - .saturating_add(T::DbWeight::get().writes(1)) - .saturating_add(T::DbWeight::get().writes((2_u64).saturating_mul(c.into()))) - .saturating_add(Weight::from_parts(0, 2609).saturating_mul(c.into())) - } - /// Storage: `PoolAssets::Asset` (r:1 w:1) - /// Proof: `PoolAssets::Asset` (`max_values`: None, `max_size`: Some(210), added: 2685, mode: `MaxEncodedLen`) - /// Storage: `PoolAssets::Approvals` (r:1001 w:1000) - /// Proof: `PoolAssets::Approvals` (`max_values`: None, `max_size`: Some(148), added: 2623, mode: `MaxEncodedLen`) - /// The range of component `a` is `[0, 1000]`. - /// The range of component `a` is `[0, 1000]`. - /// The range of component `a` is `[0, 1000]`. - fn destroy_approvals(a: u32, ) -> Weight { - // Proof Size summary in bytes: - // Measured: `451 + a * (86 ±0)` - // Estimated: `3675 + a * (2623 ±0)` - // Minimum execution time: 17_218_000 picoseconds. - Weight::from_parts(17_585_000, 0) - .saturating_add(Weight::from_parts(0, 3675)) - // Standard Error: 2_056 - .saturating_add(Weight::from_parts(5_323_866, 0).saturating_mul(a.into())) - .saturating_add(T::DbWeight::get().reads(2)) - .saturating_add(T::DbWeight::get().reads((1_u64).saturating_mul(a.into()))) - .saturating_add(T::DbWeight::get().writes(1)) - .saturating_add(T::DbWeight::get().writes((1_u64).saturating_mul(a.into()))) - .saturating_add(Weight::from_parts(0, 2623).saturating_mul(a.into())) - } - /// Storage: `PoolAssets::Asset` (r:1 w:1) - /// Proof: `PoolAssets::Asset` (`max_values`: None, `max_size`: Some(210), added: 2685, mode: `MaxEncodedLen`) - /// Storage: `PoolAssets::Metadata` (r:1 w:0) - /// Proof: `PoolAssets::Metadata` (`max_values`: None, `max_size`: Some(140), added: 2615, mode: `MaxEncodedLen`) - fn finish_destroy() -> Weight { - // Proof Size summary in bytes: - // Measured: `280` - // Estimated: `3675` - // Minimum execution time: 13_848_000 picoseconds. - Weight::from_parts(14_325_000, 0) - .saturating_add(Weight::from_parts(0, 3675)) - .saturating_add(T::DbWeight::get().reads(2)) - .saturating_add(T::DbWeight::get().writes(1)) - } - /// Storage: `PoolAssets::Asset` (r:1 w:1) - /// Proof: `PoolAssets::Asset` (`max_values`: None, `max_size`: Some(210), added: 2685, mode: `MaxEncodedLen`) - /// Storage: `PoolAssets::Account` (r:1 w:1) - /// Proof: `PoolAssets::Account` (`max_values`: None, `max_size`: Some(134), added: 2609, mode: `MaxEncodedLen`) - fn mint() -> Weight { - // Proof Size summary in bytes: - // Measured: `280` - // Estimated: `3675` - // Minimum execution time: 24_904_000 picoseconds. - Weight::from_parts(25_607_000, 0) - .saturating_add(Weight::from_parts(0, 3675)) - .saturating_add(T::DbWeight::get().reads(2)) - .saturating_add(T::DbWeight::get().writes(2)) - } - /// Storage: `PoolAssets::Asset` (r:1 w:1) - /// Proof: `PoolAssets::Asset` (`max_values`: None, `max_size`: Some(210), added: 2685, mode: `MaxEncodedLen`) - /// Storage: `PoolAssets::Account` (r:1 w:1) - /// Proof: `PoolAssets::Account` (`max_values`: None, `max_size`: Some(134), added: 2609, mode: `MaxEncodedLen`) - fn burn() -> Weight { - // Proof Size summary in bytes: - // Measured: `388` - // Estimated: `3675` - // Minimum execution time: 31_477_000 picoseconds. - Weight::from_parts(32_338_000, 0) - .saturating_add(Weight::from_parts(0, 3675)) - .saturating_add(T::DbWeight::get().reads(2)) - .saturating_add(T::DbWeight::get().writes(2)) - } - /// Storage: `PoolAssets::Asset` (r:1 w:1) - /// Proof: `PoolAssets::Asset` (`max_values`: None, `max_size`: Some(210), added: 2685, mode: `MaxEncodedLen`) - /// Storage: `PoolAssets::Account` (r:2 w:2) - /// Proof: `PoolAssets::Account` (`max_values`: None, `max_size`: Some(134), added: 2609, mode: `MaxEncodedLen`) - /// Storage: `System::Account` (r:1 w:1) - /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`) - fn transfer() -> Weight { - // Proof Size summary in bytes: - // Measured: `388` - // Estimated: `6208` - // Minimum execution time: 42_994_000 picoseconds. - Weight::from_parts(44_041_000, 0) - .saturating_add(Weight::from_parts(0, 6208)) - .saturating_add(T::DbWeight::get().reads(4)) - .saturating_add(T::DbWeight::get().writes(4)) - } - /// Storage: `PoolAssets::Asset` (r:1 w:1) - /// Proof: `PoolAssets::Asset` (`max_values`: None, `max_size`: Some(210), added: 2685, mode: `MaxEncodedLen`) - /// Storage: `PoolAssets::Account` (r:2 w:2) - /// Proof: `PoolAssets::Account` (`max_values`: None, `max_size`: Some(134), added: 2609, mode: `MaxEncodedLen`) - /// 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: `388` - // Estimated: `6208` - // Minimum execution time: 37_551_000 picoseconds. - Weight::from_parts(38_648_000, 0) - .saturating_add(Weight::from_parts(0, 6208)) - .saturating_add(T::DbWeight::get().reads(4)) - .saturating_add(T::DbWeight::get().writes(4)) - } - /// Storage: `PoolAssets::Asset` (r:1 w:1) - /// Proof: `PoolAssets::Asset` (`max_values`: None, `max_size`: Some(210), added: 2685, mode: `MaxEncodedLen`) - /// Storage: `PoolAssets::Account` (r:2 w:2) - /// Proof: `PoolAssets::Account` (`max_values`: None, `max_size`: Some(134), added: 2609, mode: `MaxEncodedLen`) - /// Storage: `System::Account` (r:1 w:1) - /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`) - fn force_transfer() -> Weight { - // Proof Size summary in bytes: - // Measured: `388` - // Estimated: `6208` - // Minimum execution time: 42_829_000 picoseconds. - Weight::from_parts(44_029_000, 0) - .saturating_add(Weight::from_parts(0, 6208)) - .saturating_add(T::DbWeight::get().reads(4)) - .saturating_add(T::DbWeight::get().writes(4)) - } - /// Storage: `PoolAssets::Asset` (r:1 w:0) - /// Proof: `PoolAssets::Asset` (`max_values`: None, `max_size`: Some(210), added: 2685, mode: `MaxEncodedLen`) - /// Storage: `PoolAssets::Account` (r:1 w:1) - /// Proof: `PoolAssets::Account` (`max_values`: None, `max_size`: Some(134), added: 2609, mode: `MaxEncodedLen`) - fn freeze() -> Weight { - // Proof Size summary in bytes: - // Measured: `388` - // Estimated: `3675` - // Minimum execution time: 17_304_000 picoseconds. - Weight::from_parts(17_782_000, 0) - .saturating_add(Weight::from_parts(0, 3675)) - .saturating_add(T::DbWeight::get().reads(2)) - .saturating_add(T::DbWeight::get().writes(1)) - } - /// Storage: `PoolAssets::Asset` (r:1 w:0) - /// Proof: `PoolAssets::Asset` (`max_values`: None, `max_size`: Some(210), added: 2685, mode: `MaxEncodedLen`) - /// Storage: `PoolAssets::Account` (r:1 w:1) - /// Proof: `PoolAssets::Account` (`max_values`: None, `max_size`: Some(134), added: 2609, mode: `MaxEncodedLen`) - fn thaw() -> Weight { - // Proof Size summary in bytes: - // Measured: `388` - // Estimated: `3675` - // Minimum execution time: 17_040_000 picoseconds. - Weight::from_parts(17_698_000, 0) - .saturating_add(Weight::from_parts(0, 3675)) - .saturating_add(T::DbWeight::get().reads(2)) - .saturating_add(T::DbWeight::get().writes(1)) - } - /// Storage: `PoolAssets::Asset` (r:1 w:1) - /// Proof: `PoolAssets::Asset` (`max_values`: None, `max_size`: Some(210), added: 2685, mode: `MaxEncodedLen`) - fn freeze_asset() -> Weight { - // Proof Size summary in bytes: - // Measured: `314` - // Estimated: `3675` - // Minimum execution time: 13_238_000 picoseconds. - Weight::from_parts(13_810_000, 0) - .saturating_add(Weight::from_parts(0, 3675)) - .saturating_add(T::DbWeight::get().reads(1)) - .saturating_add(T::DbWeight::get().writes(1)) - } - /// Storage: `PoolAssets::Asset` (r:1 w:1) - /// Proof: `PoolAssets::Asset` (`max_values`: None, `max_size`: Some(210), added: 2685, mode: `MaxEncodedLen`) - fn thaw_asset() -> Weight { - // Proof Size summary in bytes: - // Measured: `314` - // Estimated: `3675` - // Minimum execution time: 13_034_000 picoseconds. - Weight::from_parts(13_603_000, 0) - .saturating_add(Weight::from_parts(0, 3675)) - .saturating_add(T::DbWeight::get().reads(1)) - .saturating_add(T::DbWeight::get().writes(1)) - } - /// Storage: `PoolAssets::Asset` (r:1 w:1) - /// Proof: `PoolAssets::Asset` (`max_values`: None, `max_size`: Some(210), added: 2685, mode: `MaxEncodedLen`) - /// Storage: `PoolAssets::Metadata` (r:1 w:0) - /// Proof: `PoolAssets::Metadata` (`max_values`: None, `max_size`: Some(140), added: 2615, mode: `MaxEncodedLen`) - fn transfer_ownership() -> Weight { - // Proof Size summary in bytes: - // Measured: `280` - // Estimated: `3675` - // Minimum execution time: 14_357_000 picoseconds. - Weight::from_parts(14_774_000, 0) - .saturating_add(Weight::from_parts(0, 3675)) - .saturating_add(T::DbWeight::get().reads(2)) - .saturating_add(T::DbWeight::get().writes(1)) - } - /// Storage: `PoolAssets::Asset` (r:1 w:1) - /// Proof: `PoolAssets::Asset` (`max_values`: None, `max_size`: Some(210), added: 2685, mode: `MaxEncodedLen`) - fn set_team() -> Weight { - // Proof Size summary in bytes: - // Measured: `280` - // Estimated: `3675` - // Minimum execution time: 13_040_000 picoseconds. - Weight::from_parts(13_616_000, 0) - .saturating_add(Weight::from_parts(0, 3675)) - .saturating_add(T::DbWeight::get().reads(1)) - .saturating_add(T::DbWeight::get().writes(1)) - } - /// Storage: `PoolAssets::Asset` (r:1 w:0) - /// Proof: `PoolAssets::Asset` (`max_values`: None, `max_size`: Some(210), added: 2685, mode: `MaxEncodedLen`) - /// Storage: `PoolAssets::Metadata` (r:1 w:1) - /// Proof: `PoolAssets::Metadata` (`max_values`: None, `max_size`: Some(140), added: 2615, mode: `MaxEncodedLen`) - /// The range of component `n` is `[0, 50]`. - /// The range of component `s` is `[0, 50]`. - /// The range of component `n` is `[0, 50]`. - /// The range of component `s` is `[0, 50]`. - /// The range of component `n` is `[0, 50]`. - /// The range of component `s` is `[0, 50]`. - fn set_metadata(n: u32, s: u32, ) -> Weight { - // Proof Size summary in bytes: - // Measured: `280` - // Estimated: `3675` - // Minimum execution time: 15_274_000 picoseconds. - Weight::from_parts(16_096_881, 0) - .saturating_add(Weight::from_parts(0, 3675)) - // Standard Error: 239 - .saturating_add(Weight::from_parts(1_631, 0).saturating_mul(n.into())) - // Standard Error: 239 - .saturating_add(Weight::from_parts(2_334, 0).saturating_mul(s.into())) - .saturating_add(T::DbWeight::get().reads(2)) - .saturating_add(T::DbWeight::get().writes(1)) - } - /// Storage: `PoolAssets::Asset` (r:1 w:0) - /// Proof: `PoolAssets::Asset` (`max_values`: None, `max_size`: Some(210), added: 2685, mode: `MaxEncodedLen`) - /// Storage: `PoolAssets::Metadata` (r:1 w:1) - /// Proof: `PoolAssets::Metadata` (`max_values`: None, `max_size`: Some(140), added: 2615, mode: `MaxEncodedLen`) - fn clear_metadata() -> Weight { - // Proof Size summary in bytes: - // Measured: `444` - // Estimated: `3675` - // Minimum execution time: 15_900_000 picoseconds. - Weight::from_parts(16_526_000, 0) - .saturating_add(Weight::from_parts(0, 3675)) - .saturating_add(T::DbWeight::get().reads(2)) - .saturating_add(T::DbWeight::get().writes(1)) - } - /// Storage: `PoolAssets::Asset` (r:1 w:0) - /// Proof: `PoolAssets::Asset` (`max_values`: None, `max_size`: Some(210), added: 2685, mode: `MaxEncodedLen`) - /// Storage: `PoolAssets::Metadata` (r:1 w:1) - /// Proof: `PoolAssets::Metadata` (`max_values`: None, `max_size`: Some(140), added: 2615, mode: `MaxEncodedLen`) - /// The range of component `n` is `[0, 50]`. - /// The range of component `s` is `[0, 50]`. - /// The range of component `n` is `[0, 50]`. - /// The range of component `s` is `[0, 50]`. - /// The range of component `n` is `[0, 50]`. - /// The range of component `s` is `[0, 50]`. - fn force_set_metadata(n: u32, s: u32, ) -> Weight { - // Proof Size summary in bytes: - // Measured: `119` - // Estimated: `3675` - // Minimum execution time: 13_391_000 picoseconds. - Weight::from_parts(14_047_176, 0) - .saturating_add(Weight::from_parts(0, 3675)) - // Standard Error: 172 - .saturating_add(Weight::from_parts(2_617, 0).saturating_mul(n.into())) - // Standard Error: 172 - .saturating_add(Weight::from_parts(2_081, 0).saturating_mul(s.into())) - .saturating_add(T::DbWeight::get().reads(2)) - .saturating_add(T::DbWeight::get().writes(1)) - } - /// Storage: `PoolAssets::Asset` (r:1 w:0) - /// Proof: `PoolAssets::Asset` (`max_values`: None, `max_size`: Some(210), added: 2685, mode: `MaxEncodedLen`) - /// Storage: `PoolAssets::Metadata` (r:1 w:1) - /// Proof: `PoolAssets::Metadata` (`max_values`: None, `max_size`: Some(140), added: 2615, mode: `MaxEncodedLen`) - fn force_clear_metadata() -> Weight { - // Proof Size summary in bytes: - // Measured: `444` - // Estimated: `3675` - // Minimum execution time: 15_794_000 picoseconds. - Weight::from_parts(16_279_000, 0) - .saturating_add(Weight::from_parts(0, 3675)) - .saturating_add(T::DbWeight::get().reads(2)) - .saturating_add(T::DbWeight::get().writes(1)) - } - /// Storage: `PoolAssets::Asset` (r:1 w:1) - /// Proof: `PoolAssets::Asset` (`max_values`: None, `max_size`: Some(210), added: 2685, mode: `MaxEncodedLen`) - fn force_asset_status() -> Weight { - // Proof Size summary in bytes: - // Measured: `280` - // Estimated: `3675` - // Minimum execution time: 12_538_000 picoseconds. - Weight::from_parts(13_080_000, 0) - .saturating_add(Weight::from_parts(0, 3675)) - .saturating_add(T::DbWeight::get().reads(1)) - .saturating_add(T::DbWeight::get().writes(1)) - } - /// Storage: `PoolAssets::Asset` (r:1 w:1) - /// Proof: `PoolAssets::Asset` (`max_values`: None, `max_size`: Some(210), added: 2685, mode: `MaxEncodedLen`) - /// Storage: `PoolAssets::Approvals` (r:1 w:1) - /// Proof: `PoolAssets::Approvals` (`max_values`: None, `max_size`: Some(148), added: 2623, mode: `MaxEncodedLen`) - fn approve_transfer() -> Weight { - // Proof Size summary in bytes: - // Measured: `314` - // Estimated: `3675` - // Minimum execution time: 18_991_000 picoseconds. - Weight::from_parts(19_812_000, 0) - .saturating_add(Weight::from_parts(0, 3675)) - .saturating_add(T::DbWeight::get().reads(2)) - .saturating_add(T::DbWeight::get().writes(2)) - } - /// Storage: `PoolAssets::Asset` (r:1 w:1) - /// Proof: `PoolAssets::Asset` (`max_values`: None, `max_size`: Some(210), added: 2685, mode: `MaxEncodedLen`) - /// Storage: `PoolAssets::Approvals` (r:1 w:1) - /// Proof: `PoolAssets::Approvals` (`max_values`: None, `max_size`: Some(148), added: 2623, mode: `MaxEncodedLen`) - /// Storage: `PoolAssets::Account` (r:2 w:2) - /// Proof: `PoolAssets::Account` (`max_values`: None, `max_size`: Some(134), added: 2609, mode: `MaxEncodedLen`) - /// Storage: `System::Account` (r:1 w:1) - /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`) - fn transfer_approved() -> Weight { - // Proof Size summary in bytes: - // Measured: `558` - // Estimated: `6208` - // Minimum execution time: 50_336_000 picoseconds. - Weight::from_parts(51_441_000, 0) - .saturating_add(Weight::from_parts(0, 6208)) - .saturating_add(T::DbWeight::get().reads(5)) - .saturating_add(T::DbWeight::get().writes(5)) - } - /// Storage: `PoolAssets::Asset` (r:1 w:1) - /// Proof: `PoolAssets::Asset` (`max_values`: None, `max_size`: Some(210), added: 2685, mode: `MaxEncodedLen`) - /// Storage: `PoolAssets::Approvals` (r:1 w:1) - /// Proof: `PoolAssets::Approvals` (`max_values`: None, `max_size`: Some(148), added: 2623, mode: `MaxEncodedLen`) - fn cancel_approval() -> Weight { - // Proof Size summary in bytes: - // Measured: `484` - // Estimated: `3675` - // Minimum execution time: 21_195_000 picoseconds. - Weight::from_parts(21_946_000, 0) - .saturating_add(Weight::from_parts(0, 3675)) - .saturating_add(T::DbWeight::get().reads(2)) - .saturating_add(T::DbWeight::get().writes(2)) - } - /// Storage: `PoolAssets::Asset` (r:1 w:1) - /// Proof: `PoolAssets::Asset` (`max_values`: None, `max_size`: Some(210), added: 2685, mode: `MaxEncodedLen`) - /// Storage: `PoolAssets::Approvals` (r:1 w:1) - /// Proof: `PoolAssets::Approvals` (`max_values`: None, `max_size`: Some(148), added: 2623, mode: `MaxEncodedLen`) - fn force_cancel_approval() -> Weight { - // Proof Size summary in bytes: - // Measured: `484` - // Estimated: `3675` - // Minimum execution time: 21_568_000 picoseconds. - Weight::from_parts(22_366_000, 0) - .saturating_add(Weight::from_parts(0, 3675)) - .saturating_add(T::DbWeight::get().reads(2)) - .saturating_add(T::DbWeight::get().writes(2)) - } - /// Storage: `PoolAssets::Asset` (r:1 w:1) - /// Proof: `PoolAssets::Asset` (`max_values`: None, `max_size`: Some(210), added: 2685, mode: `MaxEncodedLen`) - fn set_min_balance() -> Weight { - // Proof Size summary in bytes: - // Measured: `280` - // Estimated: `3675` - // Minimum execution time: 13_690_000 picoseconds. - Weight::from_parts(14_086_000, 0) - .saturating_add(Weight::from_parts(0, 3675)) - .saturating_add(T::DbWeight::get().reads(1)) - .saturating_add(T::DbWeight::get().writes(1)) - } - /// Storage: `PoolAssets::Account` (r:1 w:1) - /// Proof: `PoolAssets::Account` (`max_values`: None, `max_size`: Some(134), added: 2609, mode: `MaxEncodedLen`) - /// Storage: `PoolAssets::Asset` (r:1 w:1) - /// Proof: `PoolAssets::Asset` (`max_values`: None, `max_size`: Some(210), added: 2685, mode: `MaxEncodedLen`) - fn touch() -> Weight { - // Proof Size summary in bytes: - // Measured: `280` - // Estimated: `3675` - // Minimum execution time: 18_240_000 picoseconds. - Weight::from_parts(19_000_000, 0) - .saturating_add(Weight::from_parts(0, 3675)) - .saturating_add(T::DbWeight::get().reads(2)) - .saturating_add(T::DbWeight::get().writes(2)) - } - /// Storage: `PoolAssets::Account` (r:1 w:1) - /// Proof: `PoolAssets::Account` (`max_values`: None, `max_size`: Some(134), added: 2609, mode: `MaxEncodedLen`) - /// Storage: `PoolAssets::Asset` (r:1 w:1) - /// Proof: `PoolAssets::Asset` (`max_values`: None, `max_size`: Some(210), added: 2685, mode: `MaxEncodedLen`) - fn touch_other() -> Weight { - // Proof Size summary in bytes: - // Measured: `280` - // Estimated: `3675` - // Minimum execution time: 18_469_000 picoseconds. - Weight::from_parts(19_040_000, 0) - .saturating_add(Weight::from_parts(0, 3675)) - .saturating_add(T::DbWeight::get().reads(2)) - .saturating_add(T::DbWeight::get().writes(2)) - } - /// Storage: `PoolAssets::Account` (r:1 w:1) - /// Proof: `PoolAssets::Account` (`max_values`: None, `max_size`: Some(134), added: 2609, mode: `MaxEncodedLen`) - /// Storage: `PoolAssets::Asset` (r:1 w:1) - /// Proof: `PoolAssets::Asset` (`max_values`: None, `max_size`: Some(210), added: 2685, mode: `MaxEncodedLen`) - fn refund() -> Weight { - // Proof Size summary in bytes: - // Measured: `406` - // Estimated: `3675` - // Minimum execution time: 14_633_000 picoseconds. - Weight::from_parts(15_296_000, 0) - .saturating_add(Weight::from_parts(0, 3675)) - .saturating_add(T::DbWeight::get().reads(2)) - .saturating_add(T::DbWeight::get().writes(2)) - } - /// Storage: `PoolAssets::Account` (r:1 w:1) - /// Proof: `PoolAssets::Account` (`max_values`: None, `max_size`: Some(134), added: 2609, mode: `MaxEncodedLen`) - /// Storage: `PoolAssets::Asset` (r:1 w:1) - /// Proof: `PoolAssets::Asset` (`max_values`: None, `max_size`: Some(210), added: 2685, mode: `MaxEncodedLen`) - fn refund_other() -> Weight { - // Proof Size summary in bytes: - // Measured: `439` - // Estimated: `3675` - // Minimum execution time: 14_751_000 picoseconds. - Weight::from_parts(15_312_000, 0) - .saturating_add(Weight::from_parts(0, 3675)) - .saturating_add(T::DbWeight::get().reads(2)) - .saturating_add(T::DbWeight::get().writes(2)) - } - /// Storage: `PoolAssets::Asset` (r:1 w:0) - /// Proof: `PoolAssets::Asset` (`max_values`: None, `max_size`: Some(210), added: 2685, mode: `MaxEncodedLen`) - /// Storage: `PoolAssets::Account` (r:1 w:1) - /// Proof: `PoolAssets::Account` (`max_values`: None, `max_size`: Some(134), added: 2609, mode: `MaxEncodedLen`) - fn block() -> Weight { - // Proof Size summary in bytes: - // Measured: `388` - // Estimated: `3675` - // Minimum execution time: 16_930_000 picoseconds. - Weight::from_parts(17_653_000, 0) - .saturating_add(Weight::from_parts(0, 3675)) - .saturating_add(T::DbWeight::get().reads(2)) - .saturating_add(T::DbWeight::get().writes(1)) - } -} diff --git a/cumulus/parachains/runtimes/assets/asset-hub-kusama/src/weights/pallet_balances.rs b/cumulus/parachains/runtimes/assets/asset-hub-kusama/src/weights/pallet_balances.rs deleted file mode 100644 index be1ac3011f79..000000000000 --- a/cumulus/parachains/runtimes/assets/asset-hub-kusama/src/weights/pallet_balances.rs +++ /dev/null @@ -1,153 +0,0 @@ -// Copyright (C) Parity Technologies (UK) Ltd. -// This file is part of Cumulus. - -// Cumulus 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. - -// Cumulus 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 Cumulus. 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-07-31, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` -//! WORST CASE MAP SIZE: `1000000` -//! HOSTNAME: `runner-ynta1nyy-project-238-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz` -//! EXECUTION: ``, WASM-EXECUTION: `Compiled`, CHAIN: `Some("asset-hub-kusama-dev")`, DB CACHE: 1024 - -// Executed Command: -// ./target/production/polkadot-parachain -// benchmark -// pallet -// --chain=asset-hub-kusama-dev -// --wasm-execution=compiled -// --pallet=pallet_balances -// --no-storage-info -// --no-median-slopes -// --no-min-squares -// --extrinsic=* -// --steps=50 -// --repeat=20 -// --json -// --header=./file_header.txt -// --output=./parachains/runtimes/assets/asset-hub-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_040_000 picoseconds. - Weight::from_parts(56_106_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: 41_342_000 picoseconds. - Weight::from_parts(41_890_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: `103` - // Estimated: `3593` - // Minimum execution time: 14_723_000 picoseconds. - Weight::from_parts(15_182_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: `103` - // Estimated: `3593` - // Minimum execution time: 22_073_000 picoseconds. - Weight::from_parts(22_638_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_265_000 picoseconds. - Weight::from_parts(58_222_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_485_000 picoseconds. - Weight::from_parts(52_003_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: `103` - // Estimated: `3593` - // Minimum execution time: 17_460_000 picoseconds. - Weight::from_parts(17_849_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]`. - fn upgrade_accounts(u: u32, ) -> Weight { - // Proof Size summary in bytes: - // Measured: `0 + u * (136 ±0)` - // Estimated: `990 + u * (2603 ±0)` - // Minimum execution time: 17_259_000 picoseconds. - Weight::from_parts(17_478_000, 0) - .saturating_add(Weight::from_parts(0, 990)) - // Standard Error: 16_756 - .saturating_add(Weight::from_parts(15_291_954, 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/cumulus/parachains/runtimes/assets/asset-hub-kusama/src/weights/pallet_collator_selection.rs b/cumulus/parachains/runtimes/assets/asset-hub-kusama/src/weights/pallet_collator_selection.rs deleted file mode 100644 index 7fe56ac31f7a..000000000000 --- a/cumulus/parachains/runtimes/assets/asset-hub-kusama/src/weights/pallet_collator_selection.rs +++ /dev/null @@ -1,225 +0,0 @@ -// Copyright (C) Parity Technologies (UK) Ltd. -// This file is part of Cumulus. - -// Cumulus 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. - -// Cumulus 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 Cumulus. If not, see . - -//! Autogenerated weights for `pallet_collator_selection` -//! -//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev -//! DATE: 2023-07-31, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` -//! WORST CASE MAP SIZE: `1000000` -//! HOSTNAME: `runner-ynta1nyy-project-238-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz` -//! EXECUTION: ``, WASM-EXECUTION: `Compiled`, CHAIN: `Some("asset-hub-kusama-dev")`, DB CACHE: 1024 - -// Executed Command: -// ./target/production/polkadot-parachain -// benchmark -// pallet -// --chain=asset-hub-kusama-dev -// --wasm-execution=compiled -// --pallet=pallet_collator_selection -// --no-storage-info -// --no-median-slopes -// --no-min-squares -// --extrinsic=* -// --steps=50 -// --repeat=20 -// --json -// --header=./file_header.txt -// --output=./parachains/runtimes/assets/asset-hub-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_collator_selection`. -pub struct WeightInfo(PhantomData); -impl pallet_collator_selection::WeightInfo for WeightInfo { - /// Storage: `Session::NextKeys` (r:20 w:0) - /// Proof: `Session::NextKeys` (`max_values`: None, `max_size`: None, mode: `Measured`) - /// Storage: `CollatorSelection::Invulnerables` (r:0 w:1) - /// Proof: `CollatorSelection::Invulnerables` (`max_values`: Some(1), `max_size`: Some(641), added: 1136, mode: `MaxEncodedLen`) - /// The range of component `b` is `[1, 20]`. - fn set_invulnerables(b: u32, ) -> Weight { - // Proof Size summary in bytes: - // Measured: `163 + b * (79 ±0)` - // Estimated: `1154 + b * (2555 ±0)` - // Minimum execution time: 15_408_000 picoseconds. - Weight::from_parts(13_068_592, 0) - .saturating_add(Weight::from_parts(0, 1154)) - // Standard Error: 7_395 - .saturating_add(Weight::from_parts(3_219_916, 0).saturating_mul(b.into())) - .saturating_add(T::DbWeight::get().reads((1_u64).saturating_mul(b.into()))) - .saturating_add(T::DbWeight::get().writes(1)) - .saturating_add(Weight::from_parts(0, 2555).saturating_mul(b.into())) - } - /// Storage: `Session::NextKeys` (r:1 w:0) - /// Proof: `Session::NextKeys` (`max_values`: None, `max_size`: None, mode: `Measured`) - /// Storage: `CollatorSelection::Invulnerables` (r:1 w:1) - /// Proof: `CollatorSelection::Invulnerables` (`max_values`: Some(1), `max_size`: Some(641), added: 1136, mode: `MaxEncodedLen`) - /// Storage: `CollatorSelection::Candidates` (r:1 w:1) - /// Proof: `CollatorSelection::Candidates` (`max_values`: Some(1), `max_size`: Some(4802), added: 5297, 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 `b` is `[1, 19]`. - /// The range of component `c` is `[1, 99]`. - fn add_invulnerable(b: u32, c: u32, ) -> Weight { - // Proof Size summary in bytes: - // Measured: `756 + b * (32 ±0) + c * (53 ±0)` - // Estimated: `6287 + b * (37 ±0) + c * (53 ±0)` - // Minimum execution time: 49_692_000 picoseconds. - Weight::from_parts(51_768_986, 0) - .saturating_add(Weight::from_parts(0, 6287)) - // Standard Error: 18_404 - .saturating_add(Weight::from_parts(55_676, 0).saturating_mul(b.into())) - // Standard Error: 3_488 - .saturating_add(Weight::from_parts(184_343, 0).saturating_mul(c.into())) - .saturating_add(T::DbWeight::get().reads(4)) - .saturating_add(T::DbWeight::get().writes(3)) - .saturating_add(Weight::from_parts(0, 37).saturating_mul(b.into())) - .saturating_add(Weight::from_parts(0, 53).saturating_mul(c.into())) - } - /// Storage: `CollatorSelection::Candidates` (r:1 w:0) - /// Proof: `CollatorSelection::Candidates` (`max_values`: Some(1), `max_size`: Some(4802), added: 5297, mode: `MaxEncodedLen`) - /// Storage: `CollatorSelection::Invulnerables` (r:1 w:1) - /// Proof: `CollatorSelection::Invulnerables` (`max_values`: Some(1), `max_size`: Some(641), added: 1136, mode: `MaxEncodedLen`) - /// The range of component `b` is `[5, 20]`. - fn remove_invulnerable(b: u32, ) -> Weight { - // Proof Size summary in bytes: - // Measured: `119 + b * (32 ±0)` - // Estimated: `6287` - // Minimum execution time: 16_486_000 picoseconds. - Weight::from_parts(16_646_017, 0) - .saturating_add(Weight::from_parts(0, 6287)) - // Standard Error: 3_230 - .saturating_add(Weight::from_parts(148_941, 0).saturating_mul(b.into())) - .saturating_add(T::DbWeight::get().reads(2)) - .saturating_add(T::DbWeight::get().writes(1)) - } - /// Storage: `CollatorSelection::DesiredCandidates` (r:0 w:1) - /// Proof: `CollatorSelection::DesiredCandidates` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`) - fn set_desired_candidates() -> Weight { - // Proof Size summary in bytes: - // Measured: `0` - // Estimated: `0` - // Minimum execution time: 7_806_000 picoseconds. - Weight::from_parts(8_002_000, 0) - .saturating_add(Weight::from_parts(0, 0)) - .saturating_add(T::DbWeight::get().writes(1)) - } - /// Storage: `CollatorSelection::CandidacyBond` (r:0 w:1) - /// Proof: `CollatorSelection::CandidacyBond` (`max_values`: Some(1), `max_size`: Some(16), added: 511, mode: `MaxEncodedLen`) - fn set_candidacy_bond() -> Weight { - // Proof Size summary in bytes: - // Measured: `0` - // Estimated: `0` - // Minimum execution time: 7_937_000 picoseconds. - Weight::from_parts(8_161_000, 0) - .saturating_add(Weight::from_parts(0, 0)) - .saturating_add(T::DbWeight::get().writes(1)) - } - /// Storage: `CollatorSelection::Candidates` (r:1 w:1) - /// Proof: `CollatorSelection::Candidates` (`max_values`: Some(1), `max_size`: Some(4802), added: 5297, mode: `MaxEncodedLen`) - /// Storage: `CollatorSelection::DesiredCandidates` (r:1 w:0) - /// Proof: `CollatorSelection::DesiredCandidates` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`) - /// Storage: `CollatorSelection::Invulnerables` (r:1 w:0) - /// Proof: `CollatorSelection::Invulnerables` (`max_values`: Some(1), `max_size`: Some(641), added: 1136, mode: `MaxEncodedLen`) - /// Storage: `Session::NextKeys` (r:1 w:0) - /// Proof: `Session::NextKeys` (`max_values`: None, `max_size`: None, mode: `Measured`) - /// Storage: `CollatorSelection::CandidacyBond` (r:1 w:0) - /// Proof: `CollatorSelection::CandidacyBond` (`max_values`: Some(1), `max_size`: Some(16), added: 511, mode: `MaxEncodedLen`) - /// Storage: `CollatorSelection::LastAuthoredBlock` (r:0 w:1) - /// Proof: `CollatorSelection::LastAuthoredBlock` (`max_values`: None, `max_size`: Some(44), added: 2519, mode: `MaxEncodedLen`) - /// The range of component `c` is `[1, 99]`. - fn register_as_candidate(c: u32, ) -> Weight { - // Proof Size summary in bytes: - // Measured: `736 + c * (52 ±0)` - // Estimated: `6287 + c * (54 ±0)` - // Minimum execution time: 42_805_000 picoseconds. - Weight::from_parts(45_979_502, 0) - .saturating_add(Weight::from_parts(0, 6287)) - // Standard Error: 2_336 - .saturating_add(Weight::from_parts(221_049, 0).saturating_mul(c.into())) - .saturating_add(T::DbWeight::get().reads(5)) - .saturating_add(T::DbWeight::get().writes(2)) - .saturating_add(Weight::from_parts(0, 54).saturating_mul(c.into())) - } - /// Storage: `CollatorSelection::Candidates` (r:1 w:1) - /// Proof: `CollatorSelection::Candidates` (`max_values`: Some(1), `max_size`: Some(4802), added: 5297, mode: `MaxEncodedLen`) - /// Storage: `CollatorSelection::Invulnerables` (r:1 w:0) - /// Proof: `CollatorSelection::Invulnerables` (`max_values`: Some(1), `max_size`: Some(641), added: 1136, mode: `MaxEncodedLen`) - /// Storage: `CollatorSelection::LastAuthoredBlock` (r:0 w:1) - /// Proof: `CollatorSelection::LastAuthoredBlock` (`max_values`: None, `max_size`: Some(44), added: 2519, mode: `MaxEncodedLen`) - /// The range of component `c` is `[4, 100]`. - fn leave_intent(c: u32, ) -> Weight { - // Proof Size summary in bytes: - // Measured: `306 + c * (50 ±0)` - // Estimated: `6287` - // Minimum execution time: 34_814_000 picoseconds. - Weight::from_parts(36_371_520, 0) - .saturating_add(Weight::from_parts(0, 6287)) - // Standard Error: 2_391 - .saturating_add(Weight::from_parts(201_700, 0).saturating_mul(c.into())) - .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: `System::BlockWeight` (r:1 w:1) - /// Proof: `System::BlockWeight` (`max_values`: Some(1), `max_size`: Some(48), added: 543, mode: `MaxEncodedLen`) - /// Storage: `CollatorSelection::LastAuthoredBlock` (r:0 w:1) - /// Proof: `CollatorSelection::LastAuthoredBlock` (`max_values`: None, `max_size`: Some(44), added: 2519, mode: `MaxEncodedLen`) - fn note_author() -> Weight { - // Proof Size summary in bytes: - // Measured: `103` - // Estimated: `6196` - // Minimum execution time: 46_989_000 picoseconds. - Weight::from_parts(48_151_000, 0) - .saturating_add(Weight::from_parts(0, 6196)) - .saturating_add(T::DbWeight::get().reads(3)) - .saturating_add(T::DbWeight::get().writes(4)) - } - /// Storage: `CollatorSelection::Candidates` (r:1 w:0) - /// Proof: `CollatorSelection::Candidates` (`max_values`: Some(1), `max_size`: Some(4802), added: 5297, mode: `MaxEncodedLen`) - /// Storage: `CollatorSelection::LastAuthoredBlock` (r:100 w:0) - /// Proof: `CollatorSelection::LastAuthoredBlock` (`max_values`: None, `max_size`: Some(44), added: 2519, mode: `MaxEncodedLen`) - /// Storage: `CollatorSelection::Invulnerables` (r:1 w:0) - /// Proof: `CollatorSelection::Invulnerables` (`max_values`: Some(1), `max_size`: Some(641), added: 1136, mode: `MaxEncodedLen`) - /// Storage: `System::BlockWeight` (r:1 w:1) - /// Proof: `System::BlockWeight` (`max_values`: Some(1), `max_size`: Some(48), added: 543, mode: `MaxEncodedLen`) - /// Storage: `System::Account` (r:97 w:97) - /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`) - /// The range of component `r` is `[1, 100]`. - /// The range of component `c` is `[1, 100]`. - fn new_session(r: u32, c: u32, ) -> Weight { - // Proof Size summary in bytes: - // Measured: `2243 + c * (97 ±0) + r * (112 ±0)` - // Estimated: `6287 + c * (2519 ±0) + r * (2603 ±0)` - // Minimum execution time: 17_547_000 picoseconds. - Weight::from_parts(17_854_000, 0) - .saturating_add(Weight::from_parts(0, 6287)) - // Standard Error: 370_637 - .saturating_add(Weight::from_parts(15_798_857, 0).saturating_mul(c.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().writes(1)) - .saturating_add(T::DbWeight::get().writes((1_u64).saturating_mul(c.into()))) - .saturating_add(Weight::from_parts(0, 2519).saturating_mul(c.into())) - .saturating_add(Weight::from_parts(0, 2603).saturating_mul(r.into())) - } -} diff --git a/cumulus/parachains/runtimes/assets/asset-hub-kusama/src/weights/pallet_multisig.rs b/cumulus/parachains/runtimes/assets/asset-hub-kusama/src/weights/pallet_multisig.rs deleted file mode 100644 index ee7b70736414..000000000000 --- a/cumulus/parachains/runtimes/assets/asset-hub-kusama/src/weights/pallet_multisig.rs +++ /dev/null @@ -1,165 +0,0 @@ -// Copyright (C) Parity Technologies (UK) Ltd. -// This file is part of Cumulus. - -// Cumulus 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. - -// Cumulus 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 Cumulus. If not, see . - -//! Autogenerated weights for `pallet_multisig` -//! -//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev -//! DATE: 2023-07-31, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` -//! WORST CASE MAP SIZE: `1000000` -//! HOSTNAME: `runner-ynta1nyy-project-238-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz` -//! EXECUTION: ``, WASM-EXECUTION: `Compiled`, CHAIN: `Some("asset-hub-kusama-dev")`, DB CACHE: 1024 - -// Executed Command: -// ./target/production/polkadot-parachain -// benchmark -// pallet -// --chain=asset-hub-kusama-dev -// --wasm-execution=compiled -// --pallet=pallet_multisig -// --no-storage-info -// --no-median-slopes -// --no-min-squares -// --extrinsic=* -// --steps=50 -// --repeat=20 -// --json -// --header=./file_header.txt -// --output=./parachains/runtimes/assets/asset-hub-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_multisig`. -pub struct WeightInfo(PhantomData); -impl pallet_multisig::WeightInfo for WeightInfo { - /// The range of component `z` is `[0, 10000]`. - fn as_multi_threshold_1(z: u32, ) -> Weight { - // Proof Size summary in bytes: - // Measured: `0` - // Estimated: `0` - // Minimum execution time: 13_714_000 picoseconds. - Weight::from_parts(14_440_231, 0) - .saturating_add(Weight::from_parts(0, 0)) - // Standard Error: 5 - .saturating_add(Weight::from_parts(598, 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`) - /// The range of component `s` is `[2, 100]`. - /// The range of component `z` is `[0, 10000]`. - fn as_multi_create(s: u32, z: u32, ) -> Weight { - // Proof Size summary in bytes: - // Measured: `262 + s * (2 ±0)` - // Estimated: `6811` - // Minimum execution time: 44_768_000 picoseconds. - Weight::from_parts(33_662_218, 0) - .saturating_add(Weight::from_parts(0, 6811)) - // Standard Error: 1_633 - .saturating_add(Weight::from_parts(128_927, 0).saturating_mul(s.into())) - // Standard Error: 16 - .saturating_add(Weight::from_parts(1_543, 0).saturating_mul(z.into())) - .saturating_add(T::DbWeight::get().reads(1)) - .saturating_add(T::DbWeight::get().writes(1)) - } - /// Storage: `Multisig::Multisigs` (r:1 w:1) - /// Proof: `Multisig::Multisigs` (`max_values`: None, `max_size`: Some(3346), added: 5821, mode: `MaxEncodedLen`) - /// The range of component `s` is `[3, 100]`. - /// The range of component `z` is `[0, 10000]`. - fn as_multi_approve(s: u32, z: u32, ) -> Weight { - // Proof Size summary in bytes: - // Measured: `282` - // Estimated: `6811` - // Minimum execution time: 29_745_000 picoseconds. - Weight::from_parts(20_559_891, 0) - .saturating_add(Weight::from_parts(0, 6811)) - // Standard Error: 914 - .saturating_add(Weight::from_parts(103_601, 0).saturating_mul(s.into())) - // Standard Error: 8 - .saturating_add(Weight::from_parts(1_504, 0).saturating_mul(z.into())) - .saturating_add(T::DbWeight::get().reads(1)) - .saturating_add(T::DbWeight::get().writes(1)) - } - /// Storage: `Multisig::Multisigs` (r:1 w:1) - /// Proof: `Multisig::Multisigs` (`max_values`: None, `max_size`: Some(3346), added: 5821, 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 `[2, 100]`. - /// The range of component `z` is `[0, 10000]`. - fn as_multi_complete(s: u32, z: u32, ) -> Weight { - // Proof Size summary in bytes: - // Measured: `385 + s * (33 ±0)` - // Estimated: `6811` - // Minimum execution time: 51_506_000 picoseconds. - Weight::from_parts(36_510_777, 0) - .saturating_add(Weight::from_parts(0, 6811)) - // Standard Error: 2_183 - .saturating_add(Weight::from_parts(183_764, 0).saturating_mul(s.into())) - // Standard Error: 21 - .saturating_add(Weight::from_parts(1_653, 0).saturating_mul(z.into())) - .saturating_add(T::DbWeight::get().reads(2)) - .saturating_add(T::DbWeight::get().writes(2)) - } - /// Storage: `Multisig::Multisigs` (r:1 w:1) - /// Proof: `Multisig::Multisigs` (`max_values`: None, `max_size`: Some(3346), added: 5821, mode: `MaxEncodedLen`) - /// The range of component `s` is `[2, 100]`. - fn approve_as_multi_create(s: u32, ) -> Weight { - // Proof Size summary in bytes: - // Measured: `263 + s * (2 ±0)` - // Estimated: `6811` - // Minimum execution time: 31_072_000 picoseconds. - Weight::from_parts(32_408_621, 0) - .saturating_add(Weight::from_parts(0, 6811)) - // Standard Error: 913 - .saturating_add(Weight::from_parts(121_410, 0).saturating_mul(s.into())) - .saturating_add(T::DbWeight::get().reads(1)) - .saturating_add(T::DbWeight::get().writes(1)) - } - /// Storage: `Multisig::Multisigs` (r:1 w:1) - /// Proof: `Multisig::Multisigs` (`max_values`: None, `max_size`: Some(3346), added: 5821, mode: `MaxEncodedLen`) - /// The range of component `s` is `[2, 100]`. - fn approve_as_multi_approve(s: u32, ) -> Weight { - // Proof Size summary in bytes: - // Measured: `282` - // Estimated: `6811` - // Minimum execution time: 18_301_000 picoseconds. - Weight::from_parts(18_223_547, 0) - .saturating_add(Weight::from_parts(0, 6811)) - // Standard Error: 747 - .saturating_add(Weight::from_parts(114_584, 0).saturating_mul(s.into())) - .saturating_add(T::DbWeight::get().reads(1)) - .saturating_add(T::DbWeight::get().writes(1)) - } - /// Storage: `Multisig::Multisigs` (r:1 w:1) - /// Proof: `Multisig::Multisigs` (`max_values`: None, `max_size`: Some(3346), added: 5821, mode: `MaxEncodedLen`) - /// The range of component `s` is `[2, 100]`. - fn cancel_as_multi(s: u32, ) -> Weight { - // Proof Size summary in bytes: - // Measured: `454 + s * (1 ±0)` - // Estimated: `6811` - // Minimum execution time: 32_107_000 picoseconds. - Weight::from_parts(33_674_827, 0) - .saturating_add(Weight::from_parts(0, 6811)) - // Standard Error: 1_220 - .saturating_add(Weight::from_parts(122_011, 0).saturating_mul(s.into())) - .saturating_add(T::DbWeight::get().reads(1)) - .saturating_add(T::DbWeight::get().writes(1)) - } -} diff --git a/cumulus/parachains/runtimes/assets/asset-hub-kusama/src/weights/pallet_nft_fractionalization.rs b/cumulus/parachains/runtimes/assets/asset-hub-kusama/src/weights/pallet_nft_fractionalization.rs deleted file mode 100644 index c55a18adc523..000000000000 --- a/cumulus/parachains/runtimes/assets/asset-hub-kusama/src/weights/pallet_nft_fractionalization.rs +++ /dev/null @@ -1,115 +0,0 @@ -// Copyright (C) Parity Technologies (UK) Ltd. -// This file is part of Cumulus. - -// Cumulus 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. - -// Cumulus 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 Cumulus. If not, see . - -//! Autogenerated weights for `pallet_nft_fractionalization` -//! -//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev -//! DATE: 2023-07-31, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` -//! WORST CASE MAP SIZE: `1000000` -//! HOSTNAME: `runner-ynta1nyy-project-238-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz` -//! EXECUTION: ``, WASM-EXECUTION: `Compiled`, CHAIN: `Some("asset-hub-kusama-dev")`, DB CACHE: 1024 - -// Executed Command: -// ./target/production/polkadot-parachain -// benchmark -// pallet -// --chain=asset-hub-kusama-dev -// --wasm-execution=compiled -// --pallet=pallet_nft_fractionalization -// --no-storage-info -// --no-median-slopes -// --no-min-squares -// --extrinsic=* -// --steps=50 -// --repeat=20 -// --json -// --header=./file_header.txt -// --output=./parachains/runtimes/assets/asset-hub-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_nft_fractionalization`. -pub struct WeightInfo(PhantomData); -impl pallet_nft_fractionalization::WeightInfo for WeightInfo { - /// Storage: `Nfts::Item` (r:1 w:0) - /// Proof: `Nfts::Item` (`max_values`: None, `max_size`: Some(861), added: 3336, mode: `MaxEncodedLen`) - /// Storage: `Balances::Holds` (r:1 w:1) - /// Proof: `Balances::Holds` (`max_values`: None, `max_size`: Some(67), added: 2542, mode: `MaxEncodedLen`) - /// Storage: `Nfts::Attribute` (r:1 w:1) - /// Proof: `Nfts::Attribute` (`max_values`: None, `max_size`: Some(479), added: 2954, mode: `MaxEncodedLen`) - /// Storage: `Nfts::Collection` (r:1 w:1) - /// Proof: `Nfts::Collection` (`max_values`: None, `max_size`: Some(84), added: 2559, mode: `MaxEncodedLen`) - /// Storage: `Assets::Asset` (r:1 w:1) - /// Proof: `Assets::Asset` (`max_values`: None, `max_size`: Some(210), added: 2685, mode: `MaxEncodedLen`) - /// Storage: `Assets::Account` (r:1 w:1) - /// Proof: `Assets::Account` (`max_values`: None, `max_size`: Some(134), added: 2609, mode: `MaxEncodedLen`) - /// Storage: `System::Account` (r:1 w:1) - /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`) - /// Storage: `Assets::Metadata` (r:1 w:1) - /// Proof: `Assets::Metadata` (`max_values`: None, `max_size`: Some(140), added: 2615, mode: `MaxEncodedLen`) - /// Storage: `NftFractionalization::NftToAsset` (r:0 w:1) - /// Proof: `NftFractionalization::NftToAsset` (`max_values`: None, `max_size`: Some(92), added: 2567, mode: `MaxEncodedLen`) - fn fractionalize() -> Weight { - // Proof Size summary in bytes: - // Measured: `462` - // Estimated: `4326` - // Minimum execution time: 178_501_000 picoseconds. - Weight::from_parts(180_912_000, 0) - .saturating_add(Weight::from_parts(0, 4326)) - .saturating_add(T::DbWeight::get().reads(8)) - .saturating_add(T::DbWeight::get().writes(8)) - } - /// Storage: `NftFractionalization::NftToAsset` (r:1 w:1) - /// Proof: `NftFractionalization::NftToAsset` (`max_values`: None, `max_size`: Some(92), added: 2567, mode: `MaxEncodedLen`) - /// Storage: `Assets::Asset` (r:1 w:1) - /// Proof: `Assets::Asset` (`max_values`: None, `max_size`: Some(210), added: 2685, mode: `MaxEncodedLen`) - /// Storage: `Assets::Account` (r:1 w:1) - /// Proof: `Assets::Account` (`max_values`: None, `max_size`: Some(134), added: 2609, mode: `MaxEncodedLen`) - /// Storage: `Nfts::Attribute` (r:1 w:1) - /// Proof: `Nfts::Attribute` (`max_values`: None, `max_size`: Some(479), added: 2954, mode: `MaxEncodedLen`) - /// Storage: `Nfts::Collection` (r:1 w:1) - /// Proof: `Nfts::Collection` (`max_values`: None, `max_size`: Some(84), added: 2559, mode: `MaxEncodedLen`) - /// Storage: `Nfts::CollectionConfigOf` (r:1 w:0) - /// Proof: `Nfts::CollectionConfigOf` (`max_values`: None, `max_size`: Some(73), added: 2548, mode: `MaxEncodedLen`) - /// Storage: `Nfts::ItemConfigOf` (r:1 w:0) - /// Proof: `Nfts::ItemConfigOf` (`max_values`: None, `max_size`: Some(48), added: 2523, mode: `MaxEncodedLen`) - /// Storage: `Nfts::Item` (r:1 w:1) - /// Proof: `Nfts::Item` (`max_values`: None, `max_size`: Some(861), added: 3336, mode: `MaxEncodedLen`) - /// Storage: `Balances::Holds` (r:1 w:1) - /// Proof: `Balances::Holds` (`max_values`: None, `max_size`: Some(67), added: 2542, mode: `MaxEncodedLen`) - /// Storage: `Nfts::Account` (r:0 w:1) - /// Proof: `Nfts::Account` (`max_values`: None, `max_size`: Some(88), added: 2563, mode: `MaxEncodedLen`) - /// Storage: `Nfts::ItemPriceOf` (r:0 w:1) - /// Proof: `Nfts::ItemPriceOf` (`max_values`: None, `max_size`: Some(89), added: 2564, mode: `MaxEncodedLen`) - /// Storage: `Nfts::PendingSwapOf` (r:0 w:1) - /// Proof: `Nfts::PendingSwapOf` (`max_values`: None, `max_size`: Some(71), added: 2546, mode: `MaxEncodedLen`) - fn unify() -> Weight { - // Proof Size summary in bytes: - // Measured: `1275` - // Estimated: `4326` - // Minimum execution time: 125_253_000 picoseconds. - Weight::from_parts(128_238_000, 0) - .saturating_add(Weight::from_parts(0, 4326)) - .saturating_add(T::DbWeight::get().reads(9)) - .saturating_add(T::DbWeight::get().writes(10)) - } -} diff --git a/cumulus/parachains/runtimes/assets/asset-hub-kusama/src/weights/pallet_nfts.rs b/cumulus/parachains/runtimes/assets/asset-hub-kusama/src/weights/pallet_nfts.rs deleted file mode 100644 index 2de706bbdc70..000000000000 --- a/cumulus/parachains/runtimes/assets/asset-hub-kusama/src/weights/pallet_nfts.rs +++ /dev/null @@ -1,773 +0,0 @@ -// Copyright (C) Parity Technologies (UK) Ltd. -// This file is part of Cumulus. - -// Cumulus 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. - -// Cumulus 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 Cumulus. If not, see . - -//! Autogenerated weights for `pallet_nfts` -//! -//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev -//! DATE: 2023-07-31, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` -//! WORST CASE MAP SIZE: `1000000` -//! HOSTNAME: `runner-ynta1nyy-project-238-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz` -//! EXECUTION: ``, WASM-EXECUTION: `Compiled`, CHAIN: `Some("asset-hub-kusama-dev")`, DB CACHE: 1024 - -// Executed Command: -// ./target/production/polkadot-parachain -// benchmark -// pallet -// --chain=asset-hub-kusama-dev -// --wasm-execution=compiled -// --pallet=pallet_nfts -// --no-storage-info -// --no-median-slopes -// --no-min-squares -// --extrinsic=* -// --steps=50 -// --repeat=20 -// --json -// --header=./file_header.txt -// --output=./parachains/runtimes/assets/asset-hub-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_nfts`. -pub struct WeightInfo(PhantomData); -impl pallet_nfts::WeightInfo for WeightInfo { - /// Storage: `Nfts::NextCollectionId` (r:1 w:1) - /// Proof: `Nfts::NextCollectionId` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`) - /// Storage: `Nfts::Collection` (r:1 w:1) - /// Proof: `Nfts::Collection` (`max_values`: None, `max_size`: Some(84), added: 2559, mode: `MaxEncodedLen`) - /// Storage: `Nfts::CollectionRoleOf` (r:0 w:1) - /// Proof: `Nfts::CollectionRoleOf` (`max_values`: None, `max_size`: Some(69), added: 2544, mode: `MaxEncodedLen`) - /// Storage: `Nfts::CollectionConfigOf` (r:0 w:1) - /// Proof: `Nfts::CollectionConfigOf` (`max_values`: None, `max_size`: Some(73), added: 2548, mode: `MaxEncodedLen`) - /// Storage: `Nfts::CollectionAccount` (r:0 w:1) - /// Proof: `Nfts::CollectionAccount` (`max_values`: None, `max_size`: Some(68), added: 2543, mode: `MaxEncodedLen`) - fn create() -> Weight { - // Proof Size summary in bytes: - // Measured: `179` - // Estimated: `3549` - // Minimum execution time: 39_124_000 picoseconds. - Weight::from_parts(39_975_000, 0) - .saturating_add(Weight::from_parts(0, 3549)) - .saturating_add(T::DbWeight::get().reads(2)) - .saturating_add(T::DbWeight::get().writes(5)) - } - /// Storage: `Nfts::NextCollectionId` (r:1 w:1) - /// Proof: `Nfts::NextCollectionId` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`) - /// Storage: `Nfts::Collection` (r:1 w:1) - /// Proof: `Nfts::Collection` (`max_values`: None, `max_size`: Some(84), added: 2559, mode: `MaxEncodedLen`) - /// Storage: `Nfts::CollectionRoleOf` (r:0 w:1) - /// Proof: `Nfts::CollectionRoleOf` (`max_values`: None, `max_size`: Some(69), added: 2544, mode: `MaxEncodedLen`) - /// Storage: `Nfts::CollectionConfigOf` (r:0 w:1) - /// Proof: `Nfts::CollectionConfigOf` (`max_values`: None, `max_size`: Some(73), added: 2548, mode: `MaxEncodedLen`) - /// Storage: `Nfts::CollectionAccount` (r:0 w:1) - /// Proof: `Nfts::CollectionAccount` (`max_values`: None, `max_size`: Some(68), added: 2543, mode: `MaxEncodedLen`) - fn force_create() -> Weight { - // Proof Size summary in bytes: - // Measured: `76` - // Estimated: `3549` - // Minimum execution time: 23_444_000 picoseconds. - Weight::from_parts(23_857_000, 0) - .saturating_add(Weight::from_parts(0, 3549)) - .saturating_add(T::DbWeight::get().reads(2)) - .saturating_add(T::DbWeight::get().writes(5)) - } - /// Storage: `Nfts::Collection` (r:1 w:1) - /// Proof: `Nfts::Collection` (`max_values`: None, `max_size`: Some(84), added: 2559, mode: `MaxEncodedLen`) - /// Storage: `Nfts::ItemMetadataOf` (r:1 w:0) - /// Proof: `Nfts::ItemMetadataOf` (`max_values`: None, `max_size`: Some(347), added: 2822, mode: `MaxEncodedLen`) - /// Storage: `Nfts::CollectionRoleOf` (r:1 w:1) - /// Proof: `Nfts::CollectionRoleOf` (`max_values`: None, `max_size`: Some(69), added: 2544, mode: `MaxEncodedLen`) - /// Storage: `Nfts::Attribute` (r:1001 w:1000) - /// Proof: `Nfts::Attribute` (`max_values`: None, `max_size`: Some(479), added: 2954, mode: `MaxEncodedLen`) - /// Storage: `Nfts::ItemConfigOf` (r:1000 w:1000) - /// Proof: `Nfts::ItemConfigOf` (`max_values`: None, `max_size`: Some(48), added: 2523, mode: `MaxEncodedLen`) - /// Storage: `Nfts::CollectionMetadataOf` (r:0 w:1) - /// Proof: `Nfts::CollectionMetadataOf` (`max_values`: None, `max_size`: Some(294), added: 2769, mode: `MaxEncodedLen`) - /// Storage: `Nfts::CollectionConfigOf` (r:0 w:1) - /// Proof: `Nfts::CollectionConfigOf` (`max_values`: None, `max_size`: Some(73), added: 2548, mode: `MaxEncodedLen`) - /// Storage: `Nfts::CollectionAccount` (r:0 w:1) - /// Proof: `Nfts::CollectionAccount` (`max_values`: None, `max_size`: Some(68), added: 2543, mode: `MaxEncodedLen`) - /// The range of component `m` is `[0, 1000]`. - /// The range of component `c` is `[0, 1000]`. - /// The range of component `a` is `[0, 1000]`. - fn destroy(_m: u32, _c: u32, a: u32, ) -> Weight { - // Proof Size summary in bytes: - // Measured: `32204 + a * (366 ±0)` - // Estimated: `2523990 + a * (2954 ±0)` - // Minimum execution time: 1_224_365_000 picoseconds. - Weight::from_parts(1_281_136_346, 0) - .saturating_add(Weight::from_parts(0, 2523990)) - // Standard Error: 10_484 - .saturating_add(Weight::from_parts(6_910_740, 0).saturating_mul(a.into())) - .saturating_add(T::DbWeight::get().reads(1004)) - .saturating_add(T::DbWeight::get().reads((1_u64).saturating_mul(a.into()))) - .saturating_add(T::DbWeight::get().writes(1005)) - .saturating_add(T::DbWeight::get().writes((1_u64).saturating_mul(a.into()))) - .saturating_add(Weight::from_parts(0, 2954).saturating_mul(a.into())) - } - /// Storage: `Nfts::CollectionConfigOf` (r:1 w:0) - /// Proof: `Nfts::CollectionConfigOf` (`max_values`: None, `max_size`: Some(73), added: 2548, mode: `MaxEncodedLen`) - /// Storage: `Nfts::Item` (r:1 w:1) - /// Proof: `Nfts::Item` (`max_values`: None, `max_size`: Some(861), added: 3336, mode: `MaxEncodedLen`) - /// Storage: `Nfts::Collection` (r:1 w:1) - /// Proof: `Nfts::Collection` (`max_values`: None, `max_size`: Some(84), added: 2559, mode: `MaxEncodedLen`) - /// Storage: `Nfts::CollectionRoleOf` (r:1 w:0) - /// Proof: `Nfts::CollectionRoleOf` (`max_values`: None, `max_size`: Some(69), added: 2544, mode: `MaxEncodedLen`) - /// Storage: `Nfts::ItemConfigOf` (r:1 w:1) - /// Proof: `Nfts::ItemConfigOf` (`max_values`: None, `max_size`: Some(48), added: 2523, mode: `MaxEncodedLen`) - /// Storage: `Nfts::Account` (r:0 w:1) - /// Proof: `Nfts::Account` (`max_values`: None, `max_size`: Some(88), added: 2563, mode: `MaxEncodedLen`) - fn mint() -> Weight { - // Proof Size summary in bytes: - // Measured: `455` - // Estimated: `4326` - // Minimum execution time: 50_489_000 picoseconds. - Weight::from_parts(51_045_000, 0) - .saturating_add(Weight::from_parts(0, 4326)) - .saturating_add(T::DbWeight::get().reads(5)) - .saturating_add(T::DbWeight::get().writes(4)) - } - /// Storage: `Nfts::CollectionRoleOf` (r:1 w:0) - /// Proof: `Nfts::CollectionRoleOf` (`max_values`: None, `max_size`: Some(69), added: 2544, mode: `MaxEncodedLen`) - /// Storage: `Nfts::Item` (r:1 w:1) - /// Proof: `Nfts::Item` (`max_values`: None, `max_size`: Some(861), added: 3336, mode: `MaxEncodedLen`) - /// Storage: `Nfts::Collection` (r:1 w:1) - /// Proof: `Nfts::Collection` (`max_values`: None, `max_size`: Some(84), added: 2559, mode: `MaxEncodedLen`) - /// Storage: `Nfts::CollectionConfigOf` (r:1 w:0) - /// Proof: `Nfts::CollectionConfigOf` (`max_values`: None, `max_size`: Some(73), added: 2548, mode: `MaxEncodedLen`) - /// Storage: `Nfts::ItemConfigOf` (r:1 w:1) - /// Proof: `Nfts::ItemConfigOf` (`max_values`: None, `max_size`: Some(48), added: 2523, mode: `MaxEncodedLen`) - /// Storage: `Nfts::Account` (r:0 w:1) - /// Proof: `Nfts::Account` (`max_values`: None, `max_size`: Some(88), added: 2563, mode: `MaxEncodedLen`) - fn force_mint() -> Weight { - // Proof Size summary in bytes: - // Measured: `455` - // Estimated: `4326` - // Minimum execution time: 49_146_000 picoseconds. - Weight::from_parts(49_756_000, 0) - .saturating_add(Weight::from_parts(0, 4326)) - .saturating_add(T::DbWeight::get().reads(5)) - .saturating_add(T::DbWeight::get().writes(4)) - } - /// Storage: `Nfts::Attribute` (r:1 w:0) - /// Proof: `Nfts::Attribute` (`max_values`: None, `max_size`: Some(479), added: 2954, mode: `MaxEncodedLen`) - /// Storage: `Nfts::ItemConfigOf` (r:1 w:1) - /// Proof: `Nfts::ItemConfigOf` (`max_values`: None, `max_size`: Some(48), added: 2523, mode: `MaxEncodedLen`) - /// Storage: `Nfts::Collection` (r:1 w:1) - /// Proof: `Nfts::Collection` (`max_values`: None, `max_size`: Some(84), added: 2559, mode: `MaxEncodedLen`) - /// Storage: `Nfts::Item` (r:1 w:1) - /// Proof: `Nfts::Item` (`max_values`: None, `max_size`: Some(861), added: 3336, mode: `MaxEncodedLen`) - /// Storage: `Nfts::ItemMetadataOf` (r:1 w:0) - /// Proof: `Nfts::ItemMetadataOf` (`max_values`: None, `max_size`: Some(347), added: 2822, mode: `MaxEncodedLen`) - /// Storage: `Nfts::Account` (r:0 w:1) - /// Proof: `Nfts::Account` (`max_values`: None, `max_size`: Some(88), added: 2563, mode: `MaxEncodedLen`) - /// Storage: `Nfts::ItemPriceOf` (r:0 w:1) - /// Proof: `Nfts::ItemPriceOf` (`max_values`: None, `max_size`: Some(89), added: 2564, mode: `MaxEncodedLen`) - /// Storage: `Nfts::ItemAttributesApprovalsOf` (r:0 w:1) - /// Proof: `Nfts::ItemAttributesApprovalsOf` (`max_values`: None, `max_size`: Some(1001), added: 3476, mode: `MaxEncodedLen`) - /// Storage: `Nfts::PendingSwapOf` (r:0 w:1) - /// Proof: `Nfts::PendingSwapOf` (`max_values`: None, `max_size`: Some(71), added: 2546, mode: `MaxEncodedLen`) - fn burn() -> Weight { - // Proof Size summary in bytes: - // Measured: `564` - // Estimated: `4326` - // Minimum execution time: 56_059_000 picoseconds. - Weight::from_parts(57_162_000, 0) - .saturating_add(Weight::from_parts(0, 4326)) - .saturating_add(T::DbWeight::get().reads(5)) - .saturating_add(T::DbWeight::get().writes(7)) - } - /// Storage: `Nfts::Collection` (r:1 w:0) - /// Proof: `Nfts::Collection` (`max_values`: None, `max_size`: Some(84), added: 2559, mode: `MaxEncodedLen`) - /// Storage: `Nfts::Attribute` (r:1 w:0) - /// Proof: `Nfts::Attribute` (`max_values`: None, `max_size`: Some(479), added: 2954, mode: `MaxEncodedLen`) - /// Storage: `Nfts::CollectionConfigOf` (r:1 w:0) - /// Proof: `Nfts::CollectionConfigOf` (`max_values`: None, `max_size`: Some(73), added: 2548, mode: `MaxEncodedLen`) - /// Storage: `Nfts::ItemConfigOf` (r:1 w:0) - /// Proof: `Nfts::ItemConfigOf` (`max_values`: None, `max_size`: Some(48), added: 2523, mode: `MaxEncodedLen`) - /// Storage: `Nfts::Item` (r:1 w:1) - /// Proof: `Nfts::Item` (`max_values`: None, `max_size`: Some(861), added: 3336, mode: `MaxEncodedLen`) - /// Storage: `Nfts::Account` (r:0 w:2) - /// Proof: `Nfts::Account` (`max_values`: None, `max_size`: Some(88), added: 2563, mode: `MaxEncodedLen`) - /// Storage: `Nfts::ItemPriceOf` (r:0 w:1) - /// Proof: `Nfts::ItemPriceOf` (`max_values`: None, `max_size`: Some(89), added: 2564, mode: `MaxEncodedLen`) - /// Storage: `Nfts::PendingSwapOf` (r:0 w:1) - /// Proof: `Nfts::PendingSwapOf` (`max_values`: None, `max_size`: Some(71), added: 2546, mode: `MaxEncodedLen`) - fn transfer() -> Weight { - // Proof Size summary in bytes: - // Measured: `593` - // Estimated: `4326` - // Minimum execution time: 42_406_000 picoseconds. - Weight::from_parts(43_187_000, 0) - .saturating_add(Weight::from_parts(0, 4326)) - .saturating_add(T::DbWeight::get().reads(5)) - .saturating_add(T::DbWeight::get().writes(5)) - } - /// Storage: `Nfts::Collection` (r:1 w:0) - /// Proof: `Nfts::Collection` (`max_values`: None, `max_size`: Some(84), added: 2559, mode: `MaxEncodedLen`) - /// Storage: `Nfts::CollectionConfigOf` (r:1 w:0) - /// Proof: `Nfts::CollectionConfigOf` (`max_values`: None, `max_size`: Some(73), added: 2548, mode: `MaxEncodedLen`) - /// Storage: `Nfts::Item` (r:5000 w:5000) - /// Proof: `Nfts::Item` (`max_values`: None, `max_size`: Some(861), added: 3336, mode: `MaxEncodedLen`) - /// The range of component `i` is `[0, 5000]`. - fn redeposit(i: u32, ) -> Weight { - // Proof Size summary in bytes: - // Measured: `763 + i * (108 ±0)` - // Estimated: `3549 + i * (3336 ±0)` - // Minimum execution time: 16_960_000 picoseconds. - Weight::from_parts(17_167_000, 0) - .saturating_add(Weight::from_parts(0, 3549)) - // Standard Error: 24_110 - .saturating_add(Weight::from_parts(18_046_970, 0).saturating_mul(i.into())) - .saturating_add(T::DbWeight::get().reads(2)) - .saturating_add(T::DbWeight::get().reads((1_u64).saturating_mul(i.into()))) - .saturating_add(T::DbWeight::get().writes((1_u64).saturating_mul(i.into()))) - .saturating_add(Weight::from_parts(0, 3336).saturating_mul(i.into())) - } - /// Storage: `Nfts::CollectionRoleOf` (r:1 w:0) - /// Proof: `Nfts::CollectionRoleOf` (`max_values`: None, `max_size`: Some(69), added: 2544, mode: `MaxEncodedLen`) - /// Storage: `Nfts::ItemConfigOf` (r:1 w:1) - /// Proof: `Nfts::ItemConfigOf` (`max_values`: None, `max_size`: Some(48), added: 2523, mode: `MaxEncodedLen`) - fn lock_item_transfer() -> Weight { - // Proof Size summary in bytes: - // Measured: `435` - // Estimated: `3534` - // Minimum execution time: 21_023_000 picoseconds. - Weight::from_parts(21_409_000, 0) - .saturating_add(Weight::from_parts(0, 3534)) - .saturating_add(T::DbWeight::get().reads(2)) - .saturating_add(T::DbWeight::get().writes(1)) - } - /// Storage: `Nfts::CollectionRoleOf` (r:1 w:0) - /// Proof: `Nfts::CollectionRoleOf` (`max_values`: None, `max_size`: Some(69), added: 2544, mode: `MaxEncodedLen`) - /// Storage: `Nfts::ItemConfigOf` (r:1 w:1) - /// Proof: `Nfts::ItemConfigOf` (`max_values`: None, `max_size`: Some(48), added: 2523, mode: `MaxEncodedLen`) - fn unlock_item_transfer() -> Weight { - // Proof Size summary in bytes: - // Measured: `435` - // Estimated: `3534` - // Minimum execution time: 20_706_000 picoseconds. - Weight::from_parts(21_030_000, 0) - .saturating_add(Weight::from_parts(0, 3534)) - .saturating_add(T::DbWeight::get().reads(2)) - .saturating_add(T::DbWeight::get().writes(1)) - } - /// Storage: `Nfts::Collection` (r:1 w:0) - /// Proof: `Nfts::Collection` (`max_values`: None, `max_size`: Some(84), added: 2559, mode: `MaxEncodedLen`) - /// Storage: `Nfts::CollectionConfigOf` (r:1 w:1) - /// Proof: `Nfts::CollectionConfigOf` (`max_values`: None, `max_size`: Some(73), added: 2548, mode: `MaxEncodedLen`) - fn lock_collection() -> Weight { - // Proof Size summary in bytes: - // Measured: `340` - // Estimated: `3549` - // Minimum execution time: 17_449_000 picoseconds. - Weight::from_parts(17_804_000, 0) - .saturating_add(Weight::from_parts(0, 3549)) - .saturating_add(T::DbWeight::get().reads(2)) - .saturating_add(T::DbWeight::get().writes(1)) - } - /// Storage: `Nfts::OwnershipAcceptance` (r:1 w:1) - /// Proof: `Nfts::OwnershipAcceptance` (`max_values`: None, `max_size`: Some(52), added: 2527, mode: `MaxEncodedLen`) - /// Storage: `Nfts::Collection` (r:1 w:1) - /// Proof: `Nfts::Collection` (`max_values`: None, `max_size`: Some(84), added: 2559, mode: `MaxEncodedLen`) - /// Storage: `Nfts::CollectionAccount` (r:0 w:2) - /// Proof: `Nfts::CollectionAccount` (`max_values`: None, `max_size`: Some(68), added: 2543, mode: `MaxEncodedLen`) - fn transfer_ownership() -> Weight { - // Proof Size summary in bytes: - // Measured: `388` - // Estimated: `3549` - // Minimum execution time: 22_958_000 picoseconds. - Weight::from_parts(23_499_000, 0) - .saturating_add(Weight::from_parts(0, 3549)) - .saturating_add(T::DbWeight::get().reads(2)) - .saturating_add(T::DbWeight::get().writes(4)) - } - /// Storage: `Nfts::Collection` (r:1 w:1) - /// Proof: `Nfts::Collection` (`max_values`: None, `max_size`: Some(84), added: 2559, mode: `MaxEncodedLen`) - /// Storage: `Nfts::CollectionRoleOf` (r:2 w:4) - /// Proof: `Nfts::CollectionRoleOf` (`max_values`: None, `max_size`: Some(69), added: 2544, mode: `MaxEncodedLen`) - fn set_team() -> Weight { - // Proof Size summary in bytes: - // Measured: `369` - // Estimated: `6078` - // Minimum execution time: 40_105_000 picoseconds. - Weight::from_parts(40_800_000, 0) - .saturating_add(Weight::from_parts(0, 6078)) - .saturating_add(T::DbWeight::get().reads(3)) - .saturating_add(T::DbWeight::get().writes(5)) - } - /// Storage: `Nfts::Collection` (r:1 w:1) - /// Proof: `Nfts::Collection` (`max_values`: None, `max_size`: Some(84), added: 2559, mode: `MaxEncodedLen`) - /// Storage: `Nfts::CollectionAccount` (r:0 w:2) - /// Proof: `Nfts::CollectionAccount` (`max_values`: None, `max_size`: Some(68), added: 2543, mode: `MaxEncodedLen`) - fn force_collection_owner() -> Weight { - // Proof Size summary in bytes: - // Measured: `311` - // Estimated: `3549` - // Minimum execution time: 17_832_000 picoseconds. - Weight::from_parts(18_297_000, 0) - .saturating_add(Weight::from_parts(0, 3549)) - .saturating_add(T::DbWeight::get().reads(1)) - .saturating_add(T::DbWeight::get().writes(3)) - } - /// Storage: `Nfts::Collection` (r:1 w:0) - /// Proof: `Nfts::Collection` (`max_values`: None, `max_size`: Some(84), added: 2559, mode: `MaxEncodedLen`) - /// Storage: `Nfts::CollectionConfigOf` (r:0 w:1) - /// Proof: `Nfts::CollectionConfigOf` (`max_values`: None, `max_size`: Some(73), added: 2548, mode: `MaxEncodedLen`) - fn force_collection_config() -> Weight { - // Proof Size summary in bytes: - // Measured: `276` - // Estimated: `3549` - // Minimum execution time: 15_027_000 picoseconds. - Weight::from_parts(15_370_000, 0) - .saturating_add(Weight::from_parts(0, 3549)) - .saturating_add(T::DbWeight::get().reads(1)) - .saturating_add(T::DbWeight::get().writes(1)) - } - /// Storage: `Nfts::CollectionRoleOf` (r:1 w:0) - /// Proof: `Nfts::CollectionRoleOf` (`max_values`: None, `max_size`: Some(69), added: 2544, mode: `MaxEncodedLen`) - /// Storage: `Nfts::ItemConfigOf` (r:1 w:1) - /// Proof: `Nfts::ItemConfigOf` (`max_values`: None, `max_size`: Some(48), added: 2523, mode: `MaxEncodedLen`) - fn lock_item_properties() -> Weight { - // Proof Size summary in bytes: - // Measured: `435` - // Estimated: `3534` - // Minimum execution time: 19_912_000 picoseconds. - Weight::from_parts(20_258_000, 0) - .saturating_add(Weight::from_parts(0, 3534)) - .saturating_add(T::DbWeight::get().reads(2)) - .saturating_add(T::DbWeight::get().writes(1)) - } - /// Storage: `Nfts::Collection` (r:1 w:1) - /// Proof: `Nfts::Collection` (`max_values`: None, `max_size`: Some(84), added: 2559, mode: `MaxEncodedLen`) - /// Storage: `Nfts::CollectionRoleOf` (r:1 w:0) - /// Proof: `Nfts::CollectionRoleOf` (`max_values`: None, `max_size`: Some(69), added: 2544, mode: `MaxEncodedLen`) - /// Storage: `Nfts::CollectionConfigOf` (r:1 w:0) - /// Proof: `Nfts::CollectionConfigOf` (`max_values`: None, `max_size`: Some(73), added: 2548, mode: `MaxEncodedLen`) - /// Storage: `Nfts::ItemConfigOf` (r:1 w:0) - /// Proof: `Nfts::ItemConfigOf` (`max_values`: None, `max_size`: Some(48), added: 2523, mode: `MaxEncodedLen`) - /// Storage: `Nfts::Attribute` (r:1 w:1) - /// Proof: `Nfts::Attribute` (`max_values`: None, `max_size`: Some(479), added: 2954, mode: `MaxEncodedLen`) - fn set_attribute() -> Weight { - // Proof Size summary in bytes: - // Measured: `539` - // Estimated: `3944` - // Minimum execution time: 50_138_000 picoseconds. - Weight::from_parts(50_971_000, 0) - .saturating_add(Weight::from_parts(0, 3944)) - .saturating_add(T::DbWeight::get().reads(5)) - .saturating_add(T::DbWeight::get().writes(2)) - } - /// Storage: `Nfts::Collection` (r:1 w:1) - /// Proof: `Nfts::Collection` (`max_values`: None, `max_size`: Some(84), added: 2559, mode: `MaxEncodedLen`) - /// Storage: `Nfts::Attribute` (r:1 w:1) - /// Proof: `Nfts::Attribute` (`max_values`: None, `max_size`: Some(479), added: 2954, mode: `MaxEncodedLen`) - fn force_set_attribute() -> Weight { - // Proof Size summary in bytes: - // Measured: `344` - // Estimated: `3944` - // Minimum execution time: 26_385_000 picoseconds. - Weight::from_parts(27_086_000, 0) - .saturating_add(Weight::from_parts(0, 3944)) - .saturating_add(T::DbWeight::get().reads(2)) - .saturating_add(T::DbWeight::get().writes(2)) - } - /// Storage: `Nfts::Attribute` (r:1 w:1) - /// Proof: `Nfts::Attribute` (`max_values`: None, `max_size`: Some(479), added: 2954, mode: `MaxEncodedLen`) - /// Storage: `Nfts::CollectionRoleOf` (r:1 w:0) - /// Proof: `Nfts::CollectionRoleOf` (`max_values`: None, `max_size`: Some(69), added: 2544, mode: `MaxEncodedLen`) - /// Storage: `Nfts::ItemConfigOf` (r:1 w:0) - /// Proof: `Nfts::ItemConfigOf` (`max_values`: None, `max_size`: Some(48), added: 2523, mode: `MaxEncodedLen`) - /// Storage: `Nfts::Collection` (r:1 w:1) - /// Proof: `Nfts::Collection` (`max_values`: None, `max_size`: Some(84), added: 2559, mode: `MaxEncodedLen`) - fn clear_attribute() -> Weight { - // Proof Size summary in bytes: - // Measured: `983` - // Estimated: `3944` - // Minimum execution time: 45_687_000 picoseconds. - Weight::from_parts(47_107_000, 0) - .saturating_add(Weight::from_parts(0, 3944)) - .saturating_add(T::DbWeight::get().reads(4)) - .saturating_add(T::DbWeight::get().writes(2)) - } - /// Storage: `Nfts::Item` (r:1 w:0) - /// Proof: `Nfts::Item` (`max_values`: None, `max_size`: Some(861), added: 3336, mode: `MaxEncodedLen`) - /// Storage: `Nfts::ItemAttributesApprovalsOf` (r:1 w:1) - /// Proof: `Nfts::ItemAttributesApprovalsOf` (`max_values`: None, `max_size`: Some(1001), added: 3476, mode: `MaxEncodedLen`) - fn approve_item_attributes() -> Weight { - // Proof Size summary in bytes: - // Measured: `381` - // Estimated: `4466` - // Minimum execution time: 18_065_000 picoseconds. - Weight::from_parts(18_371_000, 0) - .saturating_add(Weight::from_parts(0, 4466)) - .saturating_add(T::DbWeight::get().reads(2)) - .saturating_add(T::DbWeight::get().writes(1)) - } - /// Storage: `Nfts::Item` (r:1 w:0) - /// Proof: `Nfts::Item` (`max_values`: None, `max_size`: Some(861), added: 3336, mode: `MaxEncodedLen`) - /// Storage: `Nfts::ItemAttributesApprovalsOf` (r:1 w:1) - /// Proof: `Nfts::ItemAttributesApprovalsOf` (`max_values`: None, `max_size`: Some(1001), added: 3476, mode: `MaxEncodedLen`) - /// Storage: `Nfts::Attribute` (r:1001 w:1000) - /// Proof: `Nfts::Attribute` (`max_values`: None, `max_size`: Some(479), added: 2954, 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 `[0, 1000]`. - fn cancel_item_attributes_approval(n: u32, ) -> Weight { - // Proof Size summary in bytes: - // Measured: `760 + n * (398 ±0)` - // Estimated: `4466 + n * (2954 ±0)` - // Minimum execution time: 26_680_000 picoseconds. - Weight::from_parts(27_010_000, 0) - .saturating_add(Weight::from_parts(0, 4466)) - // Standard Error: 6_351 - .saturating_add(Weight::from_parts(6_584_290, 0).saturating_mul(n.into())) - .saturating_add(T::DbWeight::get().reads(4)) - .saturating_add(T::DbWeight::get().reads((1_u64).saturating_mul(n.into()))) - .saturating_add(T::DbWeight::get().writes(2)) - .saturating_add(T::DbWeight::get().writes((1_u64).saturating_mul(n.into()))) - .saturating_add(Weight::from_parts(0, 2954).saturating_mul(n.into())) - } - /// Storage: `Nfts::CollectionRoleOf` (r:1 w:0) - /// Proof: `Nfts::CollectionRoleOf` (`max_values`: None, `max_size`: Some(69), added: 2544, mode: `MaxEncodedLen`) - /// Storage: `Nfts::Collection` (r:1 w:1) - /// Proof: `Nfts::Collection` (`max_values`: None, `max_size`: Some(84), added: 2559, mode: `MaxEncodedLen`) - /// Storage: `Nfts::ItemConfigOf` (r:1 w:0) - /// Proof: `Nfts::ItemConfigOf` (`max_values`: None, `max_size`: Some(48), added: 2523, mode: `MaxEncodedLen`) - /// Storage: `Nfts::CollectionConfigOf` (r:1 w:0) - /// Proof: `Nfts::CollectionConfigOf` (`max_values`: None, `max_size`: Some(73), added: 2548, mode: `MaxEncodedLen`) - /// Storage: `Nfts::ItemMetadataOf` (r:1 w:1) - /// Proof: `Nfts::ItemMetadataOf` (`max_values`: None, `max_size`: Some(347), added: 2822, mode: `MaxEncodedLen`) - fn set_metadata() -> Weight { - // Proof Size summary in bytes: - // Measured: `539` - // Estimated: `3812` - // Minimum execution time: 42_038_000 picoseconds. - Weight::from_parts(42_758_000, 0) - .saturating_add(Weight::from_parts(0, 3812)) - .saturating_add(T::DbWeight::get().reads(5)) - .saturating_add(T::DbWeight::get().writes(2)) - } - /// Storage: `Nfts::CollectionRoleOf` (r:1 w:0) - /// Proof: `Nfts::CollectionRoleOf` (`max_values`: None, `max_size`: Some(69), added: 2544, mode: `MaxEncodedLen`) - /// Storage: `Nfts::ItemMetadataOf` (r:1 w:1) - /// Proof: `Nfts::ItemMetadataOf` (`max_values`: None, `max_size`: Some(347), added: 2822, mode: `MaxEncodedLen`) - /// Storage: `Nfts::Collection` (r:1 w:1) - /// Proof: `Nfts::Collection` (`max_values`: None, `max_size`: Some(84), added: 2559, mode: `MaxEncodedLen`) - /// Storage: `Nfts::ItemConfigOf` (r:1 w:0) - /// Proof: `Nfts::ItemConfigOf` (`max_values`: None, `max_size`: Some(48), added: 2523, mode: `MaxEncodedLen`) - fn clear_metadata() -> Weight { - // Proof Size summary in bytes: - // Measured: `849` - // Estimated: `3812` - // Minimum execution time: 40_220_000 picoseconds. - Weight::from_parts(41_026_000, 0) - .saturating_add(Weight::from_parts(0, 3812)) - .saturating_add(T::DbWeight::get().reads(4)) - .saturating_add(T::DbWeight::get().writes(2)) - } - /// Storage: `Nfts::CollectionRoleOf` (r:1 w:0) - /// Proof: `Nfts::CollectionRoleOf` (`max_values`: None, `max_size`: Some(69), added: 2544, mode: `MaxEncodedLen`) - /// Storage: `Nfts::CollectionConfigOf` (r:1 w:0) - /// Proof: `Nfts::CollectionConfigOf` (`max_values`: None, `max_size`: Some(73), added: 2548, mode: `MaxEncodedLen`) - /// Storage: `Nfts::Collection` (r:1 w:1) - /// Proof: `Nfts::Collection` (`max_values`: None, `max_size`: Some(84), added: 2559, mode: `MaxEncodedLen`) - /// Storage: `Nfts::CollectionMetadataOf` (r:1 w:1) - /// Proof: `Nfts::CollectionMetadataOf` (`max_values`: None, `max_size`: Some(294), added: 2769, mode: `MaxEncodedLen`) - fn set_collection_metadata() -> Weight { - // Proof Size summary in bytes: - // Measured: `398` - // Estimated: `3759` - // Minimum execution time: 38_135_000 picoseconds. - Weight::from_parts(38_561_000, 0) - .saturating_add(Weight::from_parts(0, 3759)) - .saturating_add(T::DbWeight::get().reads(4)) - .saturating_add(T::DbWeight::get().writes(2)) - } - /// Storage: `Nfts::CollectionRoleOf` (r:1 w:0) - /// Proof: `Nfts::CollectionRoleOf` (`max_values`: None, `max_size`: Some(69), added: 2544, mode: `MaxEncodedLen`) - /// Storage: `Nfts::Collection` (r:1 w:0) - /// Proof: `Nfts::Collection` (`max_values`: None, `max_size`: Some(84), added: 2559, mode: `MaxEncodedLen`) - /// Storage: `Nfts::CollectionConfigOf` (r:1 w:0) - /// Proof: `Nfts::CollectionConfigOf` (`max_values`: None, `max_size`: Some(73), added: 2548, mode: `MaxEncodedLen`) - /// Storage: `Nfts::CollectionMetadataOf` (r:1 w:1) - /// Proof: `Nfts::CollectionMetadataOf` (`max_values`: None, `max_size`: Some(294), added: 2769, mode: `MaxEncodedLen`) - fn clear_collection_metadata() -> Weight { - // Proof Size summary in bytes: - // Measured: `716` - // Estimated: `3759` - // Minimum execution time: 37_583_000 picoseconds. - Weight::from_parts(38_215_000, 0) - .saturating_add(Weight::from_parts(0, 3759)) - .saturating_add(T::DbWeight::get().reads(4)) - .saturating_add(T::DbWeight::get().writes(1)) - } - /// Storage: `Nfts::Item` (r:1 w:1) - /// Proof: `Nfts::Item` (`max_values`: None, `max_size`: Some(861), added: 3336, mode: `MaxEncodedLen`) - /// Storage: `Nfts::CollectionConfigOf` (r:1 w:0) - /// Proof: `Nfts::CollectionConfigOf` (`max_values`: None, `max_size`: Some(73), added: 2548, mode: `MaxEncodedLen`) - fn approve_transfer() -> Weight { - // Proof Size summary in bytes: - // Measured: `410` - // Estimated: `4326` - // Minimum execution time: 21_405_000 picoseconds. - Weight::from_parts(21_803_000, 0) - .saturating_add(Weight::from_parts(0, 4326)) - .saturating_add(T::DbWeight::get().reads(2)) - .saturating_add(T::DbWeight::get().writes(1)) - } - /// Storage: `Nfts::Item` (r:1 w:1) - /// Proof: `Nfts::Item` (`max_values`: None, `max_size`: Some(861), added: 3336, mode: `MaxEncodedLen`) - fn cancel_approval() -> Weight { - // Proof Size summary in bytes: - // Measured: `418` - // Estimated: `4326` - // Minimum execution time: 18_713_000 picoseconds. - Weight::from_parts(19_185_000, 0) - .saturating_add(Weight::from_parts(0, 4326)) - .saturating_add(T::DbWeight::get().reads(1)) - .saturating_add(T::DbWeight::get().writes(1)) - } - /// Storage: `Nfts::Item` (r:1 w:1) - /// Proof: `Nfts::Item` (`max_values`: None, `max_size`: Some(861), added: 3336, mode: `MaxEncodedLen`) - fn clear_all_transfer_approvals() -> Weight { - // Proof Size summary in bytes: - // Measured: `418` - // Estimated: `4326` - // Minimum execution time: 17_803_000 picoseconds. - Weight::from_parts(18_270_000, 0) - .saturating_add(Weight::from_parts(0, 4326)) - .saturating_add(T::DbWeight::get().reads(1)) - .saturating_add(T::DbWeight::get().writes(1)) - } - /// Storage: `Nfts::OwnershipAcceptance` (r:1 w:1) - /// Proof: `Nfts::OwnershipAcceptance` (`max_values`: None, `max_size`: Some(52), added: 2527, mode: `MaxEncodedLen`) - fn set_accept_ownership() -> Weight { - // Proof Size summary in bytes: - // Measured: `76` - // Estimated: `3517` - // Minimum execution time: 15_982_000 picoseconds. - Weight::from_parts(16_700_000, 0) - .saturating_add(Weight::from_parts(0, 3517)) - .saturating_add(T::DbWeight::get().reads(1)) - .saturating_add(T::DbWeight::get().writes(1)) - } - /// Storage: `Nfts::CollectionConfigOf` (r:1 w:1) - /// Proof: `Nfts::CollectionConfigOf` (`max_values`: None, `max_size`: Some(73), added: 2548, mode: `MaxEncodedLen`) - /// Storage: `Nfts::Collection` (r:1 w:0) - /// Proof: `Nfts::Collection` (`max_values`: None, `max_size`: Some(84), added: 2559, mode: `MaxEncodedLen`) - fn set_collection_max_supply() -> Weight { - // Proof Size summary in bytes: - // Measured: `340` - // Estimated: `3549` - // Minimum execution time: 19_501_000 picoseconds. - Weight::from_parts(19_785_000, 0) - .saturating_add(Weight::from_parts(0, 3549)) - .saturating_add(T::DbWeight::get().reads(2)) - .saturating_add(T::DbWeight::get().writes(1)) - } - /// Storage: `Nfts::CollectionRoleOf` (r:1 w:0) - /// Proof: `Nfts::CollectionRoleOf` (`max_values`: None, `max_size`: Some(69), added: 2544, mode: `MaxEncodedLen`) - /// Storage: `Nfts::CollectionConfigOf` (r:1 w:1) - /// Proof: `Nfts::CollectionConfigOf` (`max_values`: None, `max_size`: Some(73), added: 2548, mode: `MaxEncodedLen`) - fn update_mint_settings() -> Weight { - // Proof Size summary in bytes: - // Measured: `323` - // Estimated: `3538` - // Minimum execution time: 18_914_000 picoseconds. - Weight::from_parts(19_292_000, 0) - .saturating_add(Weight::from_parts(0, 3538)) - .saturating_add(T::DbWeight::get().reads(2)) - .saturating_add(T::DbWeight::get().writes(1)) - } - /// Storage: `Nfts::Item` (r:1 w:0) - /// Proof: `Nfts::Item` (`max_values`: None, `max_size`: Some(861), added: 3336, mode: `MaxEncodedLen`) - /// Storage: `Nfts::CollectionConfigOf` (r:1 w:0) - /// Proof: `Nfts::CollectionConfigOf` (`max_values`: None, `max_size`: Some(73), added: 2548, mode: `MaxEncodedLen`) - /// Storage: `Nfts::ItemConfigOf` (r:1 w:0) - /// Proof: `Nfts::ItemConfigOf` (`max_values`: None, `max_size`: Some(48), added: 2523, mode: `MaxEncodedLen`) - /// Storage: `Nfts::ItemPriceOf` (r:0 w:1) - /// Proof: `Nfts::ItemPriceOf` (`max_values`: None, `max_size`: Some(89), added: 2564, mode: `MaxEncodedLen`) - fn set_price() -> Weight { - // Proof Size summary in bytes: - // Measured: `518` - // Estimated: `4326` - // Minimum execution time: 24_625_000 picoseconds. - Weight::from_parts(25_257_000, 0) - .saturating_add(Weight::from_parts(0, 4326)) - .saturating_add(T::DbWeight::get().reads(3)) - .saturating_add(T::DbWeight::get().writes(1)) - } - /// Storage: `Nfts::Item` (r:1 w:1) - /// Proof: `Nfts::Item` (`max_values`: None, `max_size`: Some(861), added: 3336, mode: `MaxEncodedLen`) - /// Storage: `Nfts::ItemPriceOf` (r:1 w:1) - /// Proof: `Nfts::ItemPriceOf` (`max_values`: None, `max_size`: Some(89), added: 2564, mode: `MaxEncodedLen`) - /// Storage: `Nfts::Collection` (r:1 w:0) - /// Proof: `Nfts::Collection` (`max_values`: None, `max_size`: Some(84), added: 2559, mode: `MaxEncodedLen`) - /// Storage: `Nfts::Attribute` (r:1 w:0) - /// Proof: `Nfts::Attribute` (`max_values`: None, `max_size`: Some(479), added: 2954, mode: `MaxEncodedLen`) - /// Storage: `Nfts::CollectionConfigOf` (r:1 w:0) - /// Proof: `Nfts::CollectionConfigOf` (`max_values`: None, `max_size`: Some(73), added: 2548, mode: `MaxEncodedLen`) - /// Storage: `Nfts::ItemConfigOf` (r:1 w:0) - /// Proof: `Nfts::ItemConfigOf` (`max_values`: None, `max_size`: Some(48), added: 2523, mode: `MaxEncodedLen`) - /// Storage: `Nfts::Account` (r:0 w:2) - /// Proof: `Nfts::Account` (`max_values`: None, `max_size`: Some(88), added: 2563, mode: `MaxEncodedLen`) - /// Storage: `Nfts::PendingSwapOf` (r:0 w:1) - /// Proof: `Nfts::PendingSwapOf` (`max_values`: None, `max_size`: Some(71), added: 2546, mode: `MaxEncodedLen`) - fn buy_item() -> Weight { - // Proof Size summary in bytes: - // Measured: `705` - // Estimated: `4326` - // Minimum execution time: 50_833_000 picoseconds. - Weight::from_parts(52_161_000, 0) - .saturating_add(Weight::from_parts(0, 4326)) - .saturating_add(T::DbWeight::get().reads(6)) - .saturating_add(T::DbWeight::get().writes(5)) - } - /// The range of component `n` is `[0, 10]`. - fn pay_tips(n: u32, ) -> Weight { - // Proof Size summary in bytes: - // Measured: `0` - // Estimated: `0` - // Minimum execution time: 2_220_000 picoseconds. - Weight::from_parts(3_476_001, 0) - .saturating_add(Weight::from_parts(0, 0)) - // Standard Error: 7_084 - .saturating_add(Weight::from_parts(3_844_820, 0).saturating_mul(n.into())) - } - /// Storage: `Nfts::Item` (r:2 w:0) - /// Proof: `Nfts::Item` (`max_values`: None, `max_size`: Some(861), added: 3336, mode: `MaxEncodedLen`) - /// Storage: `Nfts::PendingSwapOf` (r:0 w:1) - /// Proof: `Nfts::PendingSwapOf` (`max_values`: None, `max_size`: Some(71), added: 2546, mode: `MaxEncodedLen`) - fn create_swap() -> Weight { - // Proof Size summary in bytes: - // Measured: `494` - // Estimated: `7662` - // Minimum execution time: 21_983_000 picoseconds. - Weight::from_parts(22_746_000, 0) - .saturating_add(Weight::from_parts(0, 7662)) - .saturating_add(T::DbWeight::get().reads(2)) - .saturating_add(T::DbWeight::get().writes(1)) - } - /// Storage: `Nfts::PendingSwapOf` (r:1 w:1) - /// Proof: `Nfts::PendingSwapOf` (`max_values`: None, `max_size`: Some(71), added: 2546, mode: `MaxEncodedLen`) - /// Storage: `Nfts::Item` (r:1 w:0) - /// Proof: `Nfts::Item` (`max_values`: None, `max_size`: Some(861), added: 3336, mode: `MaxEncodedLen`) - fn cancel_swap() -> Weight { - // Proof Size summary in bytes: - // Measured: `513` - // Estimated: `4326` - // Minimum execution time: 20_875_000 picoseconds. - Weight::from_parts(21_465_000, 0) - .saturating_add(Weight::from_parts(0, 4326)) - .saturating_add(T::DbWeight::get().reads(2)) - .saturating_add(T::DbWeight::get().writes(1)) - } - /// Storage: `Nfts::Item` (r:2 w:2) - /// Proof: `Nfts::Item` (`max_values`: None, `max_size`: Some(861), added: 3336, mode: `MaxEncodedLen`) - /// Storage: `Nfts::PendingSwapOf` (r:1 w:2) - /// Proof: `Nfts::PendingSwapOf` (`max_values`: None, `max_size`: Some(71), added: 2546, mode: `MaxEncodedLen`) - /// Storage: `Nfts::Collection` (r:1 w:0) - /// Proof: `Nfts::Collection` (`max_values`: None, `max_size`: Some(84), added: 2559, mode: `MaxEncodedLen`) - /// Storage: `Nfts::Attribute` (r:2 w:0) - /// Proof: `Nfts::Attribute` (`max_values`: None, `max_size`: Some(479), added: 2954, mode: `MaxEncodedLen`) - /// Storage: `Nfts::CollectionConfigOf` (r:1 w:0) - /// Proof: `Nfts::CollectionConfigOf` (`max_values`: None, `max_size`: Some(73), added: 2548, mode: `MaxEncodedLen`) - /// Storage: `Nfts::ItemConfigOf` (r:2 w:0) - /// Proof: `Nfts::ItemConfigOf` (`max_values`: None, `max_size`: Some(48), added: 2523, mode: `MaxEncodedLen`) - /// Storage: `Nfts::Account` (r:0 w:4) - /// Proof: `Nfts::Account` (`max_values`: None, `max_size`: Some(88), added: 2563, mode: `MaxEncodedLen`) - /// Storage: `Nfts::ItemPriceOf` (r:0 w:2) - /// Proof: `Nfts::ItemPriceOf` (`max_values`: None, `max_size`: Some(89), added: 2564, mode: `MaxEncodedLen`) - fn claim_swap() -> Weight { - // Proof Size summary in bytes: - // Measured: `834` - // Estimated: `7662` - // Minimum execution time: 84_771_000 picoseconds. - Weight::from_parts(86_078_000, 0) - .saturating_add(Weight::from_parts(0, 7662)) - .saturating_add(T::DbWeight::get().reads(9)) - .saturating_add(T::DbWeight::get().writes(10)) - } - /// Storage: `Nfts::CollectionRoleOf` (r:2 w:0) - /// Proof: `Nfts::CollectionRoleOf` (`max_values`: None, `max_size`: Some(69), added: 2544, mode: `MaxEncodedLen`) - /// Storage: `Nfts::CollectionConfigOf` (r:1 w:0) - /// Proof: `Nfts::CollectionConfigOf` (`max_values`: None, `max_size`: Some(73), added: 2548, mode: `MaxEncodedLen`) - /// Storage: `Nfts::Item` (r:1 w:1) - /// Proof: `Nfts::Item` (`max_values`: None, `max_size`: Some(861), added: 3336, mode: `MaxEncodedLen`) - /// Storage: `Nfts::Collection` (r:1 w:1) - /// Proof: `Nfts::Collection` (`max_values`: None, `max_size`: Some(84), added: 2559, mode: `MaxEncodedLen`) - /// Storage: `Nfts::ItemConfigOf` (r:1 w:1) - /// Proof: `Nfts::ItemConfigOf` (`max_values`: None, `max_size`: Some(48), added: 2523, mode: `MaxEncodedLen`) - /// Storage: `System::Account` (r:1 w:1) - /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`) - /// Storage: `Nfts::Attribute` (r:10 w:10) - /// Proof: `Nfts::Attribute` (`max_values`: None, `max_size`: Some(479), added: 2954, mode: `MaxEncodedLen`) - /// Storage: `Nfts::ItemMetadataOf` (r:1 w:1) - /// Proof: `Nfts::ItemMetadataOf` (`max_values`: None, `max_size`: Some(347), added: 2822, mode: `MaxEncodedLen`) - /// Storage: `Nfts::Account` (r:0 w:1) - /// Proof: `Nfts::Account` (`max_values`: None, `max_size`: Some(88), added: 2563, mode: `MaxEncodedLen`) - /// The range of component `n` is `[0, 10]`. - fn mint_pre_signed(n: u32, ) -> Weight { - // Proof Size summary in bytes: - // Measured: `558` - // Estimated: `6078 + n * (2954 ±0)` - // Minimum execution time: 143_265_000 picoseconds. - Weight::from_parts(150_978_773, 0) - .saturating_add(Weight::from_parts(0, 6078)) - // Standard Error: 49_443 - .saturating_add(Weight::from_parts(31_888_255, 0).saturating_mul(n.into())) - .saturating_add(T::DbWeight::get().reads(8)) - .saturating_add(T::DbWeight::get().reads((1_u64).saturating_mul(n.into()))) - .saturating_add(T::DbWeight::get().writes(6)) - .saturating_add(T::DbWeight::get().writes((1_u64).saturating_mul(n.into()))) - .saturating_add(Weight::from_parts(0, 2954).saturating_mul(n.into())) - } - /// Storage: `Nfts::Item` (r:1 w:0) - /// Proof: `Nfts::Item` (`max_values`: None, `max_size`: Some(861), added: 3336, mode: `MaxEncodedLen`) - /// Storage: `Nfts::ItemAttributesApprovalsOf` (r:1 w:1) - /// Proof: `Nfts::ItemAttributesApprovalsOf` (`max_values`: None, `max_size`: Some(1001), added: 3476, mode: `MaxEncodedLen`) - /// Storage: `Nfts::CollectionConfigOf` (r:1 w:0) - /// Proof: `Nfts::CollectionConfigOf` (`max_values`: None, `max_size`: Some(73), added: 2548, mode: `MaxEncodedLen`) - /// Storage: `Nfts::Collection` (r:1 w:1) - /// Proof: `Nfts::Collection` (`max_values`: None, `max_size`: Some(84), added: 2559, mode: `MaxEncodedLen`) - /// Storage: `Nfts::Attribute` (r:10 w:10) - /// Proof: `Nfts::Attribute` (`max_values`: None, `max_size`: Some(479), added: 2954, 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 `[0, 10]`. - fn set_attributes_pre_signed(n: u32, ) -> Weight { - // Proof Size summary in bytes: - // Measured: `588` - // Estimated: `4466 + n * (2954 ±0)` - // Minimum execution time: 83_754_000 picoseconds. - Weight::from_parts(96_685_026, 0) - .saturating_add(Weight::from_parts(0, 4466)) - // Standard Error: 72_592 - .saturating_add(Weight::from_parts(30_914_858, 0).saturating_mul(n.into())) - .saturating_add(T::DbWeight::get().reads(4)) - .saturating_add(T::DbWeight::get().reads((1_u64).saturating_mul(n.into()))) - .saturating_add(T::DbWeight::get().writes(2)) - .saturating_add(T::DbWeight::get().writes((1_u64).saturating_mul(n.into()))) - .saturating_add(Weight::from_parts(0, 2954).saturating_mul(n.into())) - } -} diff --git a/cumulus/parachains/runtimes/assets/asset-hub-kusama/src/weights/pallet_proxy.rs b/cumulus/parachains/runtimes/assets/asset-hub-kusama/src/weights/pallet_proxy.rs deleted file mode 100644 index 9bc4ba448e5a..000000000000 --- a/cumulus/parachains/runtimes/assets/asset-hub-kusama/src/weights/pallet_proxy.rs +++ /dev/null @@ -1,226 +0,0 @@ -// Copyright (C) Parity Technologies (UK) Ltd. -// This file is part of Cumulus. - -// Cumulus 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. - -// Cumulus 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 Cumulus. If not, see . - -//! Autogenerated weights for `pallet_proxy` -//! -//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev -//! DATE: 2023-07-31, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` -//! WORST CASE MAP SIZE: `1000000` -//! HOSTNAME: `runner-ynta1nyy-project-238-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz` -//! EXECUTION: ``, WASM-EXECUTION: `Compiled`, CHAIN: `Some("asset-hub-kusama-dev")`, DB CACHE: 1024 - -// Executed Command: -// ./target/production/polkadot-parachain -// benchmark -// pallet -// --chain=asset-hub-kusama-dev -// --wasm-execution=compiled -// --pallet=pallet_proxy -// --no-storage-info -// --no-median-slopes -// --no-min-squares -// --extrinsic=* -// --steps=50 -// --repeat=20 -// --json -// --header=./file_header.txt -// --output=./parachains/runtimes/assets/asset-hub-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_proxy`. -pub struct WeightInfo(PhantomData); -impl pallet_proxy::WeightInfo for WeightInfo { - /// Storage: `Proxy::Proxies` (r:1 w:0) - /// Proof: `Proxy::Proxies` (`max_values`: None, `max_size`: Some(1241), added: 3716, mode: `MaxEncodedLen`) - /// The range of component `p` is `[1, 31]`. - fn proxy(p: u32, ) -> Weight { - // Proof Size summary in bytes: - // Measured: `127 + p * (37 ±0)` - // Estimated: `4706` - // Minimum execution time: 16_417_000 picoseconds. - Weight::from_parts(17_283_443, 0) - .saturating_add(Weight::from_parts(0, 4706)) - // Standard Error: 2_409 - .saturating_add(Weight::from_parts(32_123, 0).saturating_mul(p.into())) - .saturating_add(T::DbWeight::get().reads(1)) - } - /// Storage: `Proxy::Proxies` (r:1 w:0) - /// Proof: `Proxy::Proxies` (`max_values`: None, `max_size`: Some(1241), added: 3716, mode: `MaxEncodedLen`) - /// Storage: `Proxy::Announcements` (r:1 w:1) - /// Proof: `Proxy::Announcements` (`max_values`: None, `max_size`: Some(2233), added: 4708, 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 `a` is `[0, 31]`. - /// The range of component `p` is `[1, 31]`. - fn proxy_announced(a: u32, p: u32, ) -> Weight { - // Proof Size summary in bytes: - // Measured: `454 + a * (68 ±0) + p * (37 ±0)` - // Estimated: `5698` - // Minimum execution time: 37_572_000 picoseconds. - Weight::from_parts(37_045_756, 0) - .saturating_add(Weight::from_parts(0, 5698)) - // Standard Error: 2_896 - .saturating_add(Weight::from_parts(139_561, 0).saturating_mul(a.into())) - // Standard Error: 2_993 - .saturating_add(Weight::from_parts(73_270, 0).saturating_mul(p.into())) - .saturating_add(T::DbWeight::get().reads(3)) - .saturating_add(T::DbWeight::get().writes(2)) - } - /// Storage: `Proxy::Announcements` (r:1 w:1) - /// Proof: `Proxy::Announcements` (`max_values`: None, `max_size`: Some(2233), added: 4708, 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 `a` is `[0, 31]`. - /// The range of component `p` is `[1, 31]`. - fn remove_announcement(a: u32, p: u32, ) -> Weight { - // Proof Size summary in bytes: - // Measured: `369 + a * (68 ±0)` - // Estimated: `5698` - // Minimum execution time: 24_066_000 picoseconds. - Weight::from_parts(24_711_403, 0) - .saturating_add(Weight::from_parts(0, 5698)) - // Standard Error: 1_626 - .saturating_add(Weight::from_parts(128_391, 0).saturating_mul(a.into())) - // Standard Error: 1_680 - .saturating_add(Weight::from_parts(23_124, 0).saturating_mul(p.into())) - .saturating_add(T::DbWeight::get().reads(2)) - .saturating_add(T::DbWeight::get().writes(2)) - } - /// Storage: `Proxy::Announcements` (r:1 w:1) - /// Proof: `Proxy::Announcements` (`max_values`: None, `max_size`: Some(2233), added: 4708, 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 `a` is `[0, 31]`. - /// The range of component `p` is `[1, 31]`. - fn reject_announcement(a: u32, p: u32, ) -> Weight { - // Proof Size summary in bytes: - // Measured: `369 + a * (68 ±0)` - // Estimated: `5698` - // Minimum execution time: 24_162_000 picoseconds. - Weight::from_parts(23_928_058, 0) - .saturating_add(Weight::from_parts(0, 5698)) - // Standard Error: 2_072 - .saturating_add(Weight::from_parts(152_299, 0).saturating_mul(a.into())) - // Standard Error: 2_141 - .saturating_add(Weight::from_parts(39_775, 0).saturating_mul(p.into())) - .saturating_add(T::DbWeight::get().reads(2)) - .saturating_add(T::DbWeight::get().writes(2)) - } - /// Storage: `Proxy::Proxies` (r:1 w:0) - /// Proof: `Proxy::Proxies` (`max_values`: None, `max_size`: Some(1241), added: 3716, mode: `MaxEncodedLen`) - /// Storage: `Proxy::Announcements` (r:1 w:1) - /// Proof: `Proxy::Announcements` (`max_values`: None, `max_size`: Some(2233), added: 4708, 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 `a` is `[0, 31]`. - /// The range of component `p` is `[1, 31]`. - fn announce(a: u32, p: u32, ) -> Weight { - // Proof Size summary in bytes: - // Measured: `386 + a * (68 ±0) + p * (37 ±0)` - // Estimated: `5698` - // Minimum execution time: 33_858_000 picoseconds. - Weight::from_parts(33_568_059, 0) - .saturating_add(Weight::from_parts(0, 5698)) - // Standard Error: 1_816 - .saturating_add(Weight::from_parts(134_400, 0).saturating_mul(a.into())) - // Standard Error: 1_876 - .saturating_add(Weight::from_parts(57_028, 0).saturating_mul(p.into())) - .saturating_add(T::DbWeight::get().reads(3)) - .saturating_add(T::DbWeight::get().writes(2)) - } - /// Storage: `Proxy::Proxies` (r:1 w:1) - /// Proof: `Proxy::Proxies` (`max_values`: None, `max_size`: Some(1241), added: 3716, mode: `MaxEncodedLen`) - /// The range of component `p` is `[1, 31]`. - fn add_proxy(p: u32, ) -> Weight { - // Proof Size summary in bytes: - // Measured: `127 + p * (37 ±0)` - // Estimated: `4706` - // Minimum execution time: 24_947_000 picoseconds. - Weight::from_parts(26_235_199, 0) - .saturating_add(Weight::from_parts(0, 4706)) - // Standard Error: 1_363 - .saturating_add(Weight::from_parts(41_435, 0).saturating_mul(p.into())) - .saturating_add(T::DbWeight::get().reads(1)) - .saturating_add(T::DbWeight::get().writes(1)) - } - /// Storage: `Proxy::Proxies` (r:1 w:1) - /// Proof: `Proxy::Proxies` (`max_values`: None, `max_size`: Some(1241), added: 3716, mode: `MaxEncodedLen`) - /// The range of component `p` is `[1, 31]`. - fn remove_proxy(p: u32, ) -> Weight { - // Proof Size summary in bytes: - // Measured: `127 + p * (37 ±0)` - // Estimated: `4706` - // Minimum execution time: 25_186_000 picoseconds. - Weight::from_parts(26_823_133, 0) - .saturating_add(Weight::from_parts(0, 4706)) - // Standard Error: 2_259 - .saturating_add(Weight::from_parts(34_224, 0).saturating_mul(p.into())) - .saturating_add(T::DbWeight::get().reads(1)) - .saturating_add(T::DbWeight::get().writes(1)) - } - /// Storage: `Proxy::Proxies` (r:1 w:1) - /// Proof: `Proxy::Proxies` (`max_values`: None, `max_size`: Some(1241), added: 3716, mode: `MaxEncodedLen`) - /// The range of component `p` is `[1, 31]`. - fn remove_proxies(p: u32, ) -> Weight { - // Proof Size summary in bytes: - // Measured: `127 + p * (37 ±0)` - // Estimated: `4706` - // Minimum execution time: 22_156_000 picoseconds. - Weight::from_parts(23_304_060, 0) - .saturating_add(Weight::from_parts(0, 4706)) - // Standard Error: 1_738 - .saturating_add(Weight::from_parts(39_612, 0).saturating_mul(p.into())) - .saturating_add(T::DbWeight::get().reads(1)) - .saturating_add(T::DbWeight::get().writes(1)) - } - /// Storage: `Proxy::Proxies` (r:1 w:1) - /// Proof: `Proxy::Proxies` (`max_values`: None, `max_size`: Some(1241), added: 3716, mode: `MaxEncodedLen`) - /// The range of component `p` is `[1, 31]`. - fn create_pure(p: u32, ) -> Weight { - // Proof Size summary in bytes: - // Measured: `139` - // Estimated: `4706` - // Minimum execution time: 26_914_000 picoseconds. - Weight::from_parts(28_009_062, 0) - .saturating_add(Weight::from_parts(0, 4706)) - // Standard Error: 1_978 - .saturating_add(Weight::from_parts(12_255, 0).saturating_mul(p.into())) - .saturating_add(T::DbWeight::get().reads(1)) - .saturating_add(T::DbWeight::get().writes(1)) - } - /// Storage: `Proxy::Proxies` (r:1 w:1) - /// Proof: `Proxy::Proxies` (`max_values`: None, `max_size`: Some(1241), added: 3716, mode: `MaxEncodedLen`) - /// The range of component `p` is `[0, 30]`. - fn kill_pure(p: u32, ) -> Weight { - // Proof Size summary in bytes: - // Measured: `164 + p * (37 ±0)` - // Estimated: `4706` - // Minimum execution time: 23_281_000 picoseconds. - Weight::from_parts(24_392_989, 0) - .saturating_add(Weight::from_parts(0, 4706)) - // Standard Error: 2_943 - .saturating_add(Weight::from_parts(30_287, 0).saturating_mul(p.into())) - .saturating_add(T::DbWeight::get().reads(1)) - .saturating_add(T::DbWeight::get().writes(1)) - } -} diff --git a/cumulus/parachains/runtimes/assets/asset-hub-kusama/src/weights/pallet_session.rs b/cumulus/parachains/runtimes/assets/asset-hub-kusama/src/weights/pallet_session.rs deleted file mode 100644 index 56982f565ac4..000000000000 --- a/cumulus/parachains/runtimes/assets/asset-hub-kusama/src/weights/pallet_session.rs +++ /dev/null @@ -1,81 +0,0 @@ -// Copyright (C) Parity Technologies (UK) Ltd. -// This file is part of Cumulus. - -// Cumulus 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. - -// Cumulus 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 Cumulus. If not, see . - -//! Autogenerated weights for `pallet_session` -//! -//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev -//! DATE: 2023-07-31, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` -//! WORST CASE MAP SIZE: `1000000` -//! HOSTNAME: `runner-ynta1nyy-project-238-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz` -//! EXECUTION: ``, WASM-EXECUTION: `Compiled`, CHAIN: `Some("asset-hub-kusama-dev")`, DB CACHE: 1024 - -// Executed Command: -// ./target/production/polkadot-parachain -// benchmark -// pallet -// --chain=asset-hub-kusama-dev -// --wasm-execution=compiled -// --pallet=pallet_session -// --no-storage-info -// --no-median-slopes -// --no-min-squares -// --extrinsic=* -// --steps=50 -// --repeat=20 -// --json -// --header=./file_header.txt -// --output=./parachains/runtimes/assets/asset-hub-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_session`. -pub struct WeightInfo(PhantomData); -impl pallet_session::WeightInfo for WeightInfo { - /// Storage: `Session::NextKeys` (r:1 w:1) - /// Proof: `Session::NextKeys` (`max_values`: None, `max_size`: None, mode: `Measured`) - /// Storage: `Session::KeyOwner` (r:1 w:1) - /// Proof: `Session::KeyOwner` (`max_values`: None, `max_size`: None, mode: `Measured`) - fn set_keys() -> Weight { - // Proof Size summary in bytes: - // Measured: `270` - // Estimated: `3735` - // Minimum execution time: 16_932_000 picoseconds. - Weight::from_parts(17_357_000, 0) - .saturating_add(Weight::from_parts(0, 3735)) - .saturating_add(T::DbWeight::get().reads(2)) - .saturating_add(T::DbWeight::get().writes(2)) - } - /// Storage: `Session::NextKeys` (r:1 w:1) - /// Proof: `Session::NextKeys` (`max_values`: None, `max_size`: None, mode: `Measured`) - /// Storage: `Session::KeyOwner` (r:0 w:1) - /// Proof: `Session::KeyOwner` (`max_values`: None, `max_size`: None, mode: `Measured`) - fn purge_keys() -> Weight { - // Proof Size summary in bytes: - // Measured: `242` - // Estimated: `3707` - // Minimum execution time: 12_157_000 picoseconds. - Weight::from_parts(12_770_000, 0) - .saturating_add(Weight::from_parts(0, 3707)) - .saturating_add(T::DbWeight::get().reads(1)) - .saturating_add(T::DbWeight::get().writes(2)) - } -} diff --git a/cumulus/parachains/runtimes/assets/asset-hub-kusama/src/weights/pallet_timestamp.rs b/cumulus/parachains/runtimes/assets/asset-hub-kusama/src/weights/pallet_timestamp.rs deleted file mode 100644 index 94914eefba04..000000000000 --- a/cumulus/parachains/runtimes/assets/asset-hub-kusama/src/weights/pallet_timestamp.rs +++ /dev/null @@ -1,75 +0,0 @@ -// Copyright (C) Parity Technologies (UK) Ltd. -// This file is part of Cumulus. - -// Cumulus 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. - -// Cumulus 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 Cumulus. If not, see . - -//! Autogenerated weights for `pallet_timestamp` -//! -//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev -//! DATE: 2023-07-31, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` -//! WORST CASE MAP SIZE: `1000000` -//! HOSTNAME: `runner-ynta1nyy-project-238-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz` -//! EXECUTION: ``, WASM-EXECUTION: `Compiled`, CHAIN: `Some("asset-hub-kusama-dev")`, DB CACHE: 1024 - -// Executed Command: -// ./target/production/polkadot-parachain -// benchmark -// pallet -// --chain=asset-hub-kusama-dev -// --wasm-execution=compiled -// --pallet=pallet_timestamp -// --no-storage-info -// --no-median-slopes -// --no-min-squares -// --extrinsic=* -// --steps=50 -// --repeat=20 -// --json -// --header=./file_header.txt -// --output=./parachains/runtimes/assets/asset-hub-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_timestamp`. -pub struct WeightInfo(PhantomData); -impl pallet_timestamp::WeightInfo for WeightInfo { - /// Storage: `Timestamp::Now` (r:1 w:1) - /// Proof: `Timestamp::Now` (`max_values`: Some(1), `max_size`: Some(8), added: 503, mode: `MaxEncodedLen`) - /// Storage: `Aura::CurrentSlot` (r:1 w:0) - /// Proof: `Aura::CurrentSlot` (`max_values`: Some(1), `max_size`: Some(8), added: 503, mode: `MaxEncodedLen`) - fn set() -> Weight { - // Proof Size summary in bytes: - // Measured: `86` - // Estimated: `1493` - // Minimum execution time: 9_313_000 picoseconds. - Weight::from_parts(9_775_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: `57` - // Estimated: `0` - // Minimum execution time: 3_322_000 picoseconds. - Weight::from_parts(3_577_000, 0) - .saturating_add(Weight::from_parts(0, 0)) - } -} diff --git a/cumulus/parachains/runtimes/assets/asset-hub-kusama/src/weights/pallet_uniques.rs b/cumulus/parachains/runtimes/assets/asset-hub-kusama/src/weights/pallet_uniques.rs deleted file mode 100644 index 43bc74931cb0..000000000000 --- a/cumulus/parachains/runtimes/assets/asset-hub-kusama/src/weights/pallet_uniques.rs +++ /dev/null @@ -1,467 +0,0 @@ -// Copyright (C) Parity Technologies (UK) Ltd. -// This file is part of Cumulus. - -// Cumulus 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. - -// Cumulus 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 Cumulus. If not, see . - -//! Autogenerated weights for `pallet_uniques` -//! -//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev -//! DATE: 2023-07-31, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` -//! WORST CASE MAP SIZE: `1000000` -//! HOSTNAME: `runner-ynta1nyy-project-238-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz` -//! EXECUTION: ``, WASM-EXECUTION: `Compiled`, CHAIN: `Some("asset-hub-kusama-dev")`, DB CACHE: 1024 - -// Executed Command: -// ./target/production/polkadot-parachain -// benchmark -// pallet -// --chain=asset-hub-kusama-dev -// --wasm-execution=compiled -// --pallet=pallet_uniques -// --no-storage-info -// --no-median-slopes -// --no-min-squares -// --extrinsic=* -// --steps=50 -// --repeat=20 -// --json -// --header=./file_header.txt -// --output=./parachains/runtimes/assets/asset-hub-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_uniques`. -pub struct WeightInfo(PhantomData); -impl pallet_uniques::WeightInfo for WeightInfo { - /// Storage: `Uniques::Class` (r:1 w:1) - /// Proof: `Uniques::Class` (`max_values`: None, `max_size`: Some(178), added: 2653, mode: `MaxEncodedLen`) - /// Storage: `Uniques::ClassAccount` (r:0 w:1) - /// Proof: `Uniques::ClassAccount` (`max_values`: None, `max_size`: Some(68), added: 2543, mode: `MaxEncodedLen`) - fn create() -> Weight { - // Proof Size summary in bytes: - // Measured: `145` - // Estimated: `3643` - // Minimum execution time: 28_845_000 picoseconds. - Weight::from_parts(29_675_000, 0) - .saturating_add(Weight::from_parts(0, 3643)) - .saturating_add(T::DbWeight::get().reads(1)) - .saturating_add(T::DbWeight::get().writes(2)) - } - /// Storage: `Uniques::Class` (r:1 w:1) - /// Proof: `Uniques::Class` (`max_values`: None, `max_size`: Some(178), added: 2653, mode: `MaxEncodedLen`) - /// Storage: `Uniques::ClassAccount` (r:0 w:1) - /// Proof: `Uniques::ClassAccount` (`max_values`: None, `max_size`: Some(68), added: 2543, mode: `MaxEncodedLen`) - fn force_create() -> Weight { - // Proof Size summary in bytes: - // Measured: `42` - // Estimated: `3643` - // Minimum execution time: 13_492_000 picoseconds. - Weight::from_parts(14_049_000, 0) - .saturating_add(Weight::from_parts(0, 3643)) - .saturating_add(T::DbWeight::get().reads(1)) - .saturating_add(T::DbWeight::get().writes(2)) - } - /// Storage: `Uniques::Class` (r:1 w:1) - /// Proof: `Uniques::Class` (`max_values`: None, `max_size`: Some(178), added: 2653, mode: `MaxEncodedLen`) - /// Storage: `Uniques::Asset` (r:1001 w:1000) - /// Proof: `Uniques::Asset` (`max_values`: None, `max_size`: Some(122), added: 2597, mode: `MaxEncodedLen`) - /// Storage: `Uniques::InstanceMetadataOf` (r:1000 w:1000) - /// Proof: `Uniques::InstanceMetadataOf` (`max_values`: None, `max_size`: Some(187), added: 2662, mode: `MaxEncodedLen`) - /// Storage: `Uniques::Attribute` (r:1000 w:1000) - /// Proof: `Uniques::Attribute` (`max_values`: None, `max_size`: Some(172), added: 2647, mode: `MaxEncodedLen`) - /// Storage: `Uniques::ClassAccount` (r:0 w:1) - /// Proof: `Uniques::ClassAccount` (`max_values`: None, `max_size`: Some(68), added: 2543, mode: `MaxEncodedLen`) - /// Storage: `Uniques::ClassMetadataOf` (r:0 w:1) - /// Proof: `Uniques::ClassMetadataOf` (`max_values`: None, `max_size`: Some(167), added: 2642, mode: `MaxEncodedLen`) - /// Storage: `Uniques::Account` (r:0 w:1000) - /// Proof: `Uniques::Account` (`max_values`: None, `max_size`: Some(88), added: 2563, mode: `MaxEncodedLen`) - /// Storage: `Uniques::CollectionMaxSupply` (r:0 w:1) - /// Proof: `Uniques::CollectionMaxSupply` (`max_values`: None, `max_size`: Some(24), added: 2499, mode: `MaxEncodedLen`) - /// The range of component `n` is `[0, 1000]`. - /// The range of component `m` is `[0, 1000]`. - /// The range of component `a` is `[0, 1000]`. - fn destroy(n: u32, m: u32, a: u32, ) -> Weight { - // Proof Size summary in bytes: - // Measured: `257 + a * (107 ±0) + m * (56 ±0) + n * (76 ±0)` - // Estimated: `3643 + a * (2647 ±0) + m * (2662 ±0) + n * (2597 ±0)` - // Minimum execution time: 2_920_070_000 picoseconds. - Weight::from_parts(2_983_862_000, 0) - .saturating_add(Weight::from_parts(0, 3643)) - // Standard Error: 36_415 - .saturating_add(Weight::from_parts(7_589_778, 0).saturating_mul(n.into())) - // Standard Error: 36_415 - .saturating_add(Weight::from_parts(479_496, 0).saturating_mul(m.into())) - // Standard Error: 36_415 - .saturating_add(Weight::from_parts(562_056, 0).saturating_mul(a.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().reads((1_u64).saturating_mul(m.into()))) - .saturating_add(T::DbWeight::get().reads((1_u64).saturating_mul(a.into()))) - .saturating_add(T::DbWeight::get().writes(4)) - .saturating_add(T::DbWeight::get().writes((2_u64).saturating_mul(n.into()))) - .saturating_add(T::DbWeight::get().writes((1_u64).saturating_mul(m.into()))) - .saturating_add(T::DbWeight::get().writes((1_u64).saturating_mul(a.into()))) - .saturating_add(Weight::from_parts(0, 2647).saturating_mul(a.into())) - .saturating_add(Weight::from_parts(0, 2662).saturating_mul(m.into())) - .saturating_add(Weight::from_parts(0, 2597).saturating_mul(n.into())) - } - /// Storage: `Uniques::Asset` (r:1 w:1) - /// Proof: `Uniques::Asset` (`max_values`: None, `max_size`: Some(122), added: 2597, mode: `MaxEncodedLen`) - /// Storage: `Uniques::Class` (r:1 w:1) - /// Proof: `Uniques::Class` (`max_values`: None, `max_size`: Some(178), added: 2653, mode: `MaxEncodedLen`) - /// Storage: `Uniques::CollectionMaxSupply` (r:1 w:0) - /// Proof: `Uniques::CollectionMaxSupply` (`max_values`: None, `max_size`: Some(24), added: 2499, mode: `MaxEncodedLen`) - /// Storage: `Uniques::Account` (r:0 w:1) - /// Proof: `Uniques::Account` (`max_values`: None, `max_size`: Some(88), added: 2563, mode: `MaxEncodedLen`) - fn mint() -> Weight { - // Proof Size summary in bytes: - // Measured: `282` - // Estimated: `3643` - // Minimum execution time: 35_329_000 picoseconds. - Weight::from_parts(36_019_000, 0) - .saturating_add(Weight::from_parts(0, 3643)) - .saturating_add(T::DbWeight::get().reads(3)) - .saturating_add(T::DbWeight::get().writes(3)) - } - /// Storage: `Uniques::Class` (r:1 w:1) - /// Proof: `Uniques::Class` (`max_values`: None, `max_size`: Some(178), added: 2653, mode: `MaxEncodedLen`) - /// Storage: `Uniques::Asset` (r:1 w:1) - /// Proof: `Uniques::Asset` (`max_values`: None, `max_size`: Some(122), added: 2597, mode: `MaxEncodedLen`) - /// Storage: `Uniques::Account` (r:0 w:1) - /// Proof: `Uniques::Account` (`max_values`: None, `max_size`: Some(88), added: 2563, mode: `MaxEncodedLen`) - /// Storage: `Uniques::ItemPriceOf` (r:0 w:1) - /// Proof: `Uniques::ItemPriceOf` (`max_values`: None, `max_size`: Some(89), added: 2564, mode: `MaxEncodedLen`) - fn burn() -> Weight { - // Proof Size summary in bytes: - // Measured: `428` - // Estimated: `3643` - // Minimum execution time: 36_474_000 picoseconds. - Weight::from_parts(37_190_000, 0) - .saturating_add(Weight::from_parts(0, 3643)) - .saturating_add(T::DbWeight::get().reads(2)) - .saturating_add(T::DbWeight::get().writes(4)) - } - /// Storage: `Uniques::Class` (r:1 w:0) - /// Proof: `Uniques::Class` (`max_values`: None, `max_size`: Some(178), added: 2653, mode: `MaxEncodedLen`) - /// Storage: `Uniques::Asset` (r:1 w:1) - /// Proof: `Uniques::Asset` (`max_values`: None, `max_size`: Some(122), added: 2597, mode: `MaxEncodedLen`) - /// Storage: `Uniques::Account` (r:0 w:2) - /// Proof: `Uniques::Account` (`max_values`: None, `max_size`: Some(88), added: 2563, mode: `MaxEncodedLen`) - /// Storage: `Uniques::ItemPriceOf` (r:0 w:1) - /// Proof: `Uniques::ItemPriceOf` (`max_values`: None, `max_size`: Some(89), added: 2564, mode: `MaxEncodedLen`) - fn transfer() -> Weight { - // Proof Size summary in bytes: - // Measured: `428` - // Estimated: `3643` - // Minimum execution time: 26_786_000 picoseconds. - Weight::from_parts(27_400_000, 0) - .saturating_add(Weight::from_parts(0, 3643)) - .saturating_add(T::DbWeight::get().reads(2)) - .saturating_add(T::DbWeight::get().writes(4)) - } - /// Storage: `Uniques::Class` (r:1 w:1) - /// Proof: `Uniques::Class` (`max_values`: None, `max_size`: Some(178), added: 2653, mode: `MaxEncodedLen`) - /// Storage: `Uniques::Asset` (r:5000 w:5000) - /// Proof: `Uniques::Asset` (`max_values`: None, `max_size`: Some(122), added: 2597, mode: `MaxEncodedLen`) - /// The range of component `i` is `[0, 5000]`. - fn redeposit(i: u32, ) -> Weight { - // Proof Size summary in bytes: - // Measured: `738 + i * (76 ±0)` - // Estimated: `3643 + i * (2597 ±0)` - // Minimum execution time: 14_546_000 picoseconds. - Weight::from_parts(14_831_000, 0) - .saturating_add(Weight::from_parts(0, 3643)) - // Standard Error: 24_362 - .saturating_add(Weight::from_parts(17_972_938, 0).saturating_mul(i.into())) - .saturating_add(T::DbWeight::get().reads(1)) - .saturating_add(T::DbWeight::get().reads((1_u64).saturating_mul(i.into()))) - .saturating_add(T::DbWeight::get().writes(1)) - .saturating_add(T::DbWeight::get().writes((1_u64).saturating_mul(i.into()))) - .saturating_add(Weight::from_parts(0, 2597).saturating_mul(i.into())) - } - /// Storage: `Uniques::Asset` (r:1 w:1) - /// Proof: `Uniques::Asset` (`max_values`: None, `max_size`: Some(122), added: 2597, mode: `MaxEncodedLen`) - /// Storage: `Uniques::Class` (r:1 w:0) - /// Proof: `Uniques::Class` (`max_values`: None, `max_size`: Some(178), added: 2653, mode: `MaxEncodedLen`) - fn freeze() -> Weight { - // Proof Size summary in bytes: - // Measured: `428` - // Estimated: `3643` - // Minimum execution time: 18_919_000 picoseconds. - Weight::from_parts(19_547_000, 0) - .saturating_add(Weight::from_parts(0, 3643)) - .saturating_add(T::DbWeight::get().reads(2)) - .saturating_add(T::DbWeight::get().writes(1)) - } - /// Storage: `Uniques::Asset` (r:1 w:1) - /// Proof: `Uniques::Asset` (`max_values`: None, `max_size`: Some(122), added: 2597, mode: `MaxEncodedLen`) - /// Storage: `Uniques::Class` (r:1 w:0) - /// Proof: `Uniques::Class` (`max_values`: None, `max_size`: Some(178), added: 2653, mode: `MaxEncodedLen`) - fn thaw() -> Weight { - // Proof Size summary in bytes: - // Measured: `428` - // Estimated: `3643` - // Minimum execution time: 18_643_000 picoseconds. - Weight::from_parts(19_000_000, 0) - .saturating_add(Weight::from_parts(0, 3643)) - .saturating_add(T::DbWeight::get().reads(2)) - .saturating_add(T::DbWeight::get().writes(1)) - } - /// Storage: `Uniques::Class` (r:1 w:1) - /// Proof: `Uniques::Class` (`max_values`: None, `max_size`: Some(178), added: 2653, mode: `MaxEncodedLen`) - fn freeze_collection() -> Weight { - // Proof Size summary in bytes: - // Measured: `282` - // Estimated: `3643` - // Minimum execution time: 13_530_000 picoseconds. - Weight::from_parts(14_165_000, 0) - .saturating_add(Weight::from_parts(0, 3643)) - .saturating_add(T::DbWeight::get().reads(1)) - .saturating_add(T::DbWeight::get().writes(1)) - } - /// Storage: `Uniques::Class` (r:1 w:1) - /// Proof: `Uniques::Class` (`max_values`: None, `max_size`: Some(178), added: 2653, mode: `MaxEncodedLen`) - fn thaw_collection() -> Weight { - // Proof Size summary in bytes: - // Measured: `282` - // Estimated: `3643` - // Minimum execution time: 13_523_000 picoseconds. - Weight::from_parts(14_055_000, 0) - .saturating_add(Weight::from_parts(0, 3643)) - .saturating_add(T::DbWeight::get().reads(1)) - .saturating_add(T::DbWeight::get().writes(1)) - } - /// Storage: `Uniques::OwnershipAcceptance` (r:1 w:1) - /// Proof: `Uniques::OwnershipAcceptance` (`max_values`: None, `max_size`: Some(52), added: 2527, mode: `MaxEncodedLen`) - /// Storage: `Uniques::Class` (r:1 w:1) - /// Proof: `Uniques::Class` (`max_values`: None, `max_size`: Some(178), added: 2653, mode: `MaxEncodedLen`) - /// Storage: `Uniques::ClassAccount` (r:0 w:2) - /// Proof: `Uniques::ClassAccount` (`max_values`: None, `max_size`: Some(68), added: 2543, mode: `MaxEncodedLen`) - fn transfer_ownership() -> Weight { - // Proof Size summary in bytes: - // Measured: `356` - // Estimated: `3643` - // Minimum execution time: 22_131_000 picoseconds. - Weight::from_parts(22_628_000, 0) - .saturating_add(Weight::from_parts(0, 3643)) - .saturating_add(T::DbWeight::get().reads(2)) - .saturating_add(T::DbWeight::get().writes(4)) - } - /// Storage: `Uniques::Class` (r:1 w:1) - /// Proof: `Uniques::Class` (`max_values`: None, `max_size`: Some(178), added: 2653, mode: `MaxEncodedLen`) - fn set_team() -> Weight { - // Proof Size summary in bytes: - // Measured: `282` - // Estimated: `3643` - // Minimum execution time: 13_841_000 picoseconds. - Weight::from_parts(14_408_000, 0) - .saturating_add(Weight::from_parts(0, 3643)) - .saturating_add(T::DbWeight::get().reads(1)) - .saturating_add(T::DbWeight::get().writes(1)) - } - /// Storage: `Uniques::Class` (r:1 w:1) - /// Proof: `Uniques::Class` (`max_values`: None, `max_size`: Some(178), added: 2653, mode: `MaxEncodedLen`) - /// Storage: `Uniques::ClassAccount` (r:0 w:1) - /// Proof: `Uniques::ClassAccount` (`max_values`: None, `max_size`: Some(68), added: 2543, mode: `MaxEncodedLen`) - fn force_item_status() -> Weight { - // Proof Size summary in bytes: - // Measured: `282` - // Estimated: `3643` - // Minimum execution time: 16_954_000 picoseconds. - Weight::from_parts(17_482_000, 0) - .saturating_add(Weight::from_parts(0, 3643)) - .saturating_add(T::DbWeight::get().reads(1)) - .saturating_add(T::DbWeight::get().writes(2)) - } - /// Storage: `Uniques::Class` (r:1 w:1) - /// Proof: `Uniques::Class` (`max_values`: None, `max_size`: Some(178), added: 2653, mode: `MaxEncodedLen`) - /// Storage: `Uniques::InstanceMetadataOf` (r:1 w:0) - /// Proof: `Uniques::InstanceMetadataOf` (`max_values`: None, `max_size`: Some(187), added: 2662, mode: `MaxEncodedLen`) - /// Storage: `Uniques::Attribute` (r:1 w:1) - /// Proof: `Uniques::Attribute` (`max_values`: None, `max_size`: Some(172), added: 2647, mode: `MaxEncodedLen`) - fn set_attribute() -> Weight { - // Proof Size summary in bytes: - // Measured: `559` - // Estimated: `3652` - // Minimum execution time: 38_493_000 picoseconds. - Weight::from_parts(39_513_000, 0) - .saturating_add(Weight::from_parts(0, 3652)) - .saturating_add(T::DbWeight::get().reads(3)) - .saturating_add(T::DbWeight::get().writes(2)) - } - /// Storage: `Uniques::Class` (r:1 w:1) - /// Proof: `Uniques::Class` (`max_values`: None, `max_size`: Some(178), added: 2653, mode: `MaxEncodedLen`) - /// Storage: `Uniques::InstanceMetadataOf` (r:1 w:0) - /// Proof: `Uniques::InstanceMetadataOf` (`max_values`: None, `max_size`: Some(187), added: 2662, mode: `MaxEncodedLen`) - /// Storage: `Uniques::Attribute` (r:1 w:1) - /// Proof: `Uniques::Attribute` (`max_values`: None, `max_size`: Some(172), added: 2647, mode: `MaxEncodedLen`) - fn clear_attribute() -> Weight { - // Proof Size summary in bytes: - // Measured: `756` - // Estimated: `3652` - // Minimum execution time: 37_918_000 picoseconds. - Weight::from_parts(38_666_000, 0) - .saturating_add(Weight::from_parts(0, 3652)) - .saturating_add(T::DbWeight::get().reads(3)) - .saturating_add(T::DbWeight::get().writes(2)) - } - /// Storage: `Uniques::Class` (r:1 w:1) - /// Proof: `Uniques::Class` (`max_values`: None, `max_size`: Some(178), added: 2653, mode: `MaxEncodedLen`) - /// Storage: `Uniques::InstanceMetadataOf` (r:1 w:1) - /// Proof: `Uniques::InstanceMetadataOf` (`max_values`: None, `max_size`: Some(187), added: 2662, mode: `MaxEncodedLen`) - fn set_metadata() -> Weight { - // Proof Size summary in bytes: - // Measured: `348` - // Estimated: `3652` - // Minimum execution time: 29_810_000 picoseconds. - Weight::from_parts(30_363_000, 0) - .saturating_add(Weight::from_parts(0, 3652)) - .saturating_add(T::DbWeight::get().reads(2)) - .saturating_add(T::DbWeight::get().writes(2)) - } - /// Storage: `Uniques::Class` (r:1 w:1) - /// Proof: `Uniques::Class` (`max_values`: None, `max_size`: Some(178), added: 2653, mode: `MaxEncodedLen`) - /// Storage: `Uniques::InstanceMetadataOf` (r:1 w:1) - /// Proof: `Uniques::InstanceMetadataOf` (`max_values`: None, `max_size`: Some(187), added: 2662, mode: `MaxEncodedLen`) - fn clear_metadata() -> Weight { - // Proof Size summary in bytes: - // Measured: `559` - // Estimated: `3652` - // Minimum execution time: 30_877_000 picoseconds. - Weight::from_parts(31_430_000, 0) - .saturating_add(Weight::from_parts(0, 3652)) - .saturating_add(T::DbWeight::get().reads(2)) - .saturating_add(T::DbWeight::get().writes(2)) - } - /// Storage: `Uniques::Class` (r:1 w:1) - /// Proof: `Uniques::Class` (`max_values`: None, `max_size`: Some(178), added: 2653, mode: `MaxEncodedLen`) - /// Storage: `Uniques::ClassMetadataOf` (r:1 w:1) - /// Proof: `Uniques::ClassMetadataOf` (`max_values`: None, `max_size`: Some(167), added: 2642, mode: `MaxEncodedLen`) - fn set_collection_metadata() -> Weight { - // Proof Size summary in bytes: - // Measured: `282` - // Estimated: `3643` - // Minimum execution time: 30_478_000 picoseconds. - Weight::from_parts(31_065_000, 0) - .saturating_add(Weight::from_parts(0, 3643)) - .saturating_add(T::DbWeight::get().reads(2)) - .saturating_add(T::DbWeight::get().writes(2)) - } - /// Storage: `Uniques::Class` (r:1 w:0) - /// Proof: `Uniques::Class` (`max_values`: None, `max_size`: Some(178), added: 2653, mode: `MaxEncodedLen`) - /// Storage: `Uniques::ClassMetadataOf` (r:1 w:1) - /// Proof: `Uniques::ClassMetadataOf` (`max_values`: None, `max_size`: Some(167), added: 2642, mode: `MaxEncodedLen`) - fn clear_collection_metadata() -> Weight { - // Proof Size summary in bytes: - // Measured: `473` - // Estimated: `3643` - // Minimum execution time: 29_582_000 picoseconds. - Weight::from_parts(30_160_000, 0) - .saturating_add(Weight::from_parts(0, 3643)) - .saturating_add(T::DbWeight::get().reads(2)) - .saturating_add(T::DbWeight::get().writes(1)) - } - /// Storage: `Uniques::Class` (r:1 w:0) - /// Proof: `Uniques::Class` (`max_values`: None, `max_size`: Some(178), added: 2653, mode: `MaxEncodedLen`) - /// Storage: `Uniques::Asset` (r:1 w:1) - /// Proof: `Uniques::Asset` (`max_values`: None, `max_size`: Some(122), added: 2597, mode: `MaxEncodedLen`) - fn approve_transfer() -> Weight { - // Proof Size summary in bytes: - // Measured: `428` - // Estimated: `3643` - // Minimum execution time: 19_328_000 picoseconds. - Weight::from_parts(19_866_000, 0) - .saturating_add(Weight::from_parts(0, 3643)) - .saturating_add(T::DbWeight::get().reads(2)) - .saturating_add(T::DbWeight::get().writes(1)) - } - /// Storage: `Uniques::Class` (r:1 w:0) - /// Proof: `Uniques::Class` (`max_values`: None, `max_size`: Some(178), added: 2653, mode: `MaxEncodedLen`) - /// Storage: `Uniques::Asset` (r:1 w:1) - /// Proof: `Uniques::Asset` (`max_values`: None, `max_size`: Some(122), added: 2597, mode: `MaxEncodedLen`) - fn cancel_approval() -> Weight { - // Proof Size summary in bytes: - // Measured: `461` - // Estimated: `3643` - // Minimum execution time: 19_131_000 picoseconds. - Weight::from_parts(19_569_000, 0) - .saturating_add(Weight::from_parts(0, 3643)) - .saturating_add(T::DbWeight::get().reads(2)) - .saturating_add(T::DbWeight::get().writes(1)) - } - /// Storage: `Uniques::OwnershipAcceptance` (r:1 w:1) - /// Proof: `Uniques::OwnershipAcceptance` (`max_values`: None, `max_size`: Some(52), added: 2527, mode: `MaxEncodedLen`) - fn set_accept_ownership() -> Weight { - // Proof Size summary in bytes: - // Measured: `42` - // Estimated: `3517` - // Minimum execution time: 15_212_000 picoseconds. - Weight::from_parts(15_691_000, 0) - .saturating_add(Weight::from_parts(0, 3517)) - .saturating_add(T::DbWeight::get().reads(1)) - .saturating_add(T::DbWeight::get().writes(1)) - } - /// Storage: `Uniques::CollectionMaxSupply` (r:1 w:1) - /// Proof: `Uniques::CollectionMaxSupply` (`max_values`: None, `max_size`: Some(24), added: 2499, mode: `MaxEncodedLen`) - /// Storage: `Uniques::Class` (r:1 w:0) - /// Proof: `Uniques::Class` (`max_values`: None, `max_size`: Some(178), added: 2653, mode: `MaxEncodedLen`) - fn set_collection_max_supply() -> Weight { - // Proof Size summary in bytes: - // Measured: `282` - // Estimated: `3643` - // Minimum execution time: 16_290_000 picoseconds. - Weight::from_parts(16_654_000, 0) - .saturating_add(Weight::from_parts(0, 3643)) - .saturating_add(T::DbWeight::get().reads(2)) - .saturating_add(T::DbWeight::get().writes(1)) - } - /// Storage: `Uniques::Asset` (r:1 w:0) - /// Proof: `Uniques::Asset` (`max_values`: None, `max_size`: Some(122), added: 2597, mode: `MaxEncodedLen`) - /// Storage: `Uniques::ItemPriceOf` (r:0 w:1) - /// Proof: `Uniques::ItemPriceOf` (`max_values`: None, `max_size`: Some(89), added: 2564, mode: `MaxEncodedLen`) - fn set_price() -> Weight { - // Proof Size summary in bytes: - // Measured: `259` - // Estimated: `3587` - // Minimum execution time: 16_095_000 picoseconds. - Weight::from_parts(16_555_000, 0) - .saturating_add(Weight::from_parts(0, 3587)) - .saturating_add(T::DbWeight::get().reads(1)) - .saturating_add(T::DbWeight::get().writes(1)) - } - /// Storage: `Uniques::Asset` (r:1 w:1) - /// Proof: `Uniques::Asset` (`max_values`: None, `max_size`: Some(122), added: 2597, mode: `MaxEncodedLen`) - /// Storage: `Uniques::ItemPriceOf` (r:1 w:1) - /// Proof: `Uniques::ItemPriceOf` (`max_values`: None, `max_size`: Some(89), added: 2564, mode: `MaxEncodedLen`) - /// Storage: `Uniques::Class` (r:1 w:0) - /// Proof: `Uniques::Class` (`max_values`: None, `max_size`: Some(178), added: 2653, mode: `MaxEncodedLen`) - /// Storage: `Uniques::Account` (r:0 w:2) - /// Proof: `Uniques::Account` (`max_values`: None, `max_size`: Some(88), added: 2563, mode: `MaxEncodedLen`) - fn buy_item() -> Weight { - // Proof Size summary in bytes: - // Measured: `540` - // Estimated: `3643` - // Minimum execution time: 35_506_000 picoseconds. - Weight::from_parts(36_305_000, 0) - .saturating_add(Weight::from_parts(0, 3643)) - .saturating_add(T::DbWeight::get().reads(3)) - .saturating_add(T::DbWeight::get().writes(4)) - } -} diff --git a/cumulus/parachains/runtimes/assets/asset-hub-kusama/src/weights/pallet_utility.rs b/cumulus/parachains/runtimes/assets/asset-hub-kusama/src/weights/pallet_utility.rs deleted file mode 100644 index 680e65a2dcf9..000000000000 --- a/cumulus/parachains/runtimes/assets/asset-hub-kusama/src/weights/pallet_utility.rs +++ /dev/null @@ -1,102 +0,0 @@ -// Copyright (C) Parity Technologies (UK) Ltd. -// This file is part of Cumulus. - -// Cumulus 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. - -// Cumulus 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 Cumulus. If not, see . - -//! Autogenerated weights for `pallet_utility` -//! -//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev -//! DATE: 2023-07-31, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` -//! WORST CASE MAP SIZE: `1000000` -//! HOSTNAME: `runner-ynta1nyy-project-238-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz` -//! EXECUTION: ``, WASM-EXECUTION: `Compiled`, CHAIN: `Some("asset-hub-kusama-dev")`, DB CACHE: 1024 - -// Executed Command: -// ./target/production/polkadot-parachain -// benchmark -// pallet -// --chain=asset-hub-kusama-dev -// --wasm-execution=compiled -// --pallet=pallet_utility -// --no-storage-info -// --no-median-slopes -// --no-min-squares -// --extrinsic=* -// --steps=50 -// --repeat=20 -// --json -// --header=./file_header.txt -// --output=./parachains/runtimes/assets/asset-hub-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_utility`. -pub struct WeightInfo(PhantomData); -impl pallet_utility::WeightInfo for WeightInfo { - /// The range of component `c` is `[0, 1000]`. - fn batch(c: u32, ) -> Weight { - // Proof Size summary in bytes: - // Measured: `0` - // Estimated: `0` - // Minimum execution time: 7_103_000 picoseconds. - Weight::from_parts(7_226_000, 0) - .saturating_add(Weight::from_parts(0, 0)) - // Standard Error: 2_732 - .saturating_add(Weight::from_parts(6_560_347, 0).saturating_mul(c.into())) - } - fn as_derivative() -> Weight { - // Proof Size summary in bytes: - // Measured: `0` - // Estimated: `0` - // Minimum execution time: 5_208_000 picoseconds. - Weight::from_parts(5_480_000, 0) - .saturating_add(Weight::from_parts(0, 0)) - } - /// The range of component `c` is `[0, 1000]`. - fn batch_all(c: u32, ) -> Weight { - // Proof Size summary in bytes: - // Measured: `0` - // Estimated: `0` - // Minimum execution time: 7_070_000 picoseconds. - Weight::from_parts(1_321_270, 0) - .saturating_add(Weight::from_parts(0, 0)) - // Standard Error: 3_454 - .saturating_add(Weight::from_parts(6_864_640, 0).saturating_mul(c.into())) - } - fn dispatch_as() -> Weight { - // Proof Size summary in bytes: - // Measured: `0` - // Estimated: `0` - // Minimum execution time: 9_255_000 picoseconds. - Weight::from_parts(9_683_000, 0) - .saturating_add(Weight::from_parts(0, 0)) - } - /// The range of component `c` is `[0, 1000]`. - fn force_batch(c: u32, ) -> Weight { - // Proof Size summary in bytes: - // Measured: `0` - // Estimated: `0` - // Minimum execution time: 6_852_000 picoseconds. - Weight::from_parts(7_007_000, 0) - .saturating_add(Weight::from_parts(0, 0)) - // Standard Error: 1_745 - .saturating_add(Weight::from_parts(6_562_902, 0).saturating_mul(c.into())) - } -} diff --git a/cumulus/parachains/runtimes/assets/asset-hub-kusama/src/weights/pallet_xcm.rs b/cumulus/parachains/runtimes/assets/asset-hub-kusama/src/weights/pallet_xcm.rs deleted file mode 100644 index c2ed67d2f5d4..000000000000 --- a/cumulus/parachains/runtimes/assets/asset-hub-kusama/src/weights/pallet_xcm.rs +++ /dev/null @@ -1,290 +0,0 @@ -// Copyright (C) Parity Technologies (UK) Ltd. -// This file is part of Cumulus. - -// Cumulus 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. - -// Cumulus 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 Cumulus. If not, see . - -//! Autogenerated weights for `pallet_xcm` -//! -//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev -//! DATE: 2023-07-31, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` -//! WORST CASE MAP SIZE: `1000000` -//! HOSTNAME: `runner-ynta1nyy-project-238-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz` -//! EXECUTION: ``, WASM-EXECUTION: `Compiled`, CHAIN: `Some("asset-hub-kusama-dev")`, DB CACHE: 1024 - -// Executed Command: -// ./target/production/polkadot-parachain -// benchmark -// pallet -// --chain=asset-hub-kusama-dev -// --wasm-execution=compiled -// --pallet=pallet_xcm -// --no-storage-info -// --no-median-slopes -// --no-min-squares -// --extrinsic=* -// --steps=50 -// --repeat=20 -// --json -// --header=./file_header.txt -// --output=./parachains/runtimes/assets/asset-hub-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_xcm`. -pub struct WeightInfo(PhantomData); -impl pallet_xcm::WeightInfo for WeightInfo { - /// Storage: `PolkadotXcm::SupportedVersion` (r:1 w:0) - /// Proof: `PolkadotXcm::SupportedVersion` (`max_values`: None, `max_size`: None, mode: `Measured`) - /// Storage: `PolkadotXcm::VersionDiscoveryQueue` (r:1 w:1) - /// Proof: `PolkadotXcm::VersionDiscoveryQueue` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) - /// Storage: `PolkadotXcm::SafeXcmVersion` (r:1 w:0) - /// Proof: `PolkadotXcm::SafeXcmVersion` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) - /// Storage: `ParachainSystem::HostConfiguration` (r:1 w:0) - /// Proof: `ParachainSystem::HostConfiguration` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) - /// Storage: `ParachainSystem::PendingUpwardMessages` (r:1 w:1) - /// Proof: `ParachainSystem::PendingUpwardMessages` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) - fn send() -> Weight { - // Proof Size summary in bytes: - // Measured: `109` - // Estimated: `3574` - // Minimum execution time: 30_015_000 picoseconds. - Weight::from_parts(30_576_000, 0) - .saturating_add(Weight::from_parts(0, 3574)) - .saturating_add(T::DbWeight::get().reads(5)) - .saturating_add(T::DbWeight::get().writes(2)) - } - /// Storage: `ParachainInfo::ParachainId` (r:1 w:0) - /// Proof: `ParachainInfo::ParachainId` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`) - fn teleport_assets() -> Weight { - // Proof Size summary in bytes: - // Measured: `0` - // Estimated: `1489` - // Minimum execution time: 24_785_000 picoseconds. - Weight::from_parts(25_097_000, 0) - .saturating_add(Weight::from_parts(0, 1489)) - .saturating_add(T::DbWeight::get().reads(1)) - } - /// Storage: `ParachainInfo::ParachainId` (r:1 w:0) - /// Proof: `ParachainInfo::ParachainId` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`) - fn reserve_transfer_assets() -> Weight { - // Proof Size summary in bytes: - // Measured: `0` - // Estimated: `1489` - // Minimum execution time: 18_561_000 picoseconds. - Weight::from_parts(19_121_000, 0) - .saturating_add(Weight::from_parts(0, 1489)) - .saturating_add(T::DbWeight::get().reads(1)) - } - /// Storage: `Benchmark::Override` (r:0 w:0) - /// Proof: `Benchmark::Override` (`max_values`: None, `max_size`: None, mode: `Measured`) - fn execute() -> Weight { - // Proof Size summary in bytes: - // Measured: `0` - // Estimated: `0` - // Minimum execution time: 18_446_744_073_709_551_000 picoseconds. - Weight::from_parts(18_446_744_073_709_551_000, 0) - .saturating_add(Weight::from_parts(0, 0)) - } - /// Storage: `PolkadotXcm::SupportedVersion` (r:0 w:1) - /// Proof: `PolkadotXcm::SupportedVersion` (`max_values`: None, `max_size`: None, mode: `Measured`) - fn force_xcm_version() -> Weight { - // Proof Size summary in bytes: - // Measured: `0` - // Estimated: `0` - // Minimum execution time: 9_298_000 picoseconds. - Weight::from_parts(9_721_000, 0) - .saturating_add(Weight::from_parts(0, 0)) - .saturating_add(T::DbWeight::get().writes(1)) - } - /// Storage: `PolkadotXcm::SafeXcmVersion` (r:0 w:1) - /// Proof: `PolkadotXcm::SafeXcmVersion` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) - fn force_default_xcm_version() -> Weight { - // Proof Size summary in bytes: - // Measured: `0` - // Estimated: `0` - // Minimum execution time: 2_912_000 picoseconds. - Weight::from_parts(3_262_000, 0) - .saturating_add(Weight::from_parts(0, 0)) - .saturating_add(T::DbWeight::get().writes(1)) - } - /// Storage: `PolkadotXcm::VersionNotifiers` (r:1 w:1) - /// Proof: `PolkadotXcm::VersionNotifiers` (`max_values`: None, `max_size`: None, mode: `Measured`) - /// Storage: `PolkadotXcm::QueryCounter` (r:1 w:1) - /// Proof: `PolkadotXcm::QueryCounter` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) - /// Storage: `PolkadotXcm::SupportedVersion` (r:1 w:0) - /// Proof: `PolkadotXcm::SupportedVersion` (`max_values`: None, `max_size`: None, mode: `Measured`) - /// Storage: `PolkadotXcm::VersionDiscoveryQueue` (r:1 w:1) - /// Proof: `PolkadotXcm::VersionDiscoveryQueue` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) - /// Storage: `PolkadotXcm::SafeXcmVersion` (r:1 w:0) - /// Proof: `PolkadotXcm::SafeXcmVersion` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) - /// Storage: `ParachainSystem::HostConfiguration` (r:1 w:0) - /// Proof: `ParachainSystem::HostConfiguration` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) - /// Storage: `ParachainSystem::PendingUpwardMessages` (r:1 w:1) - /// Proof: `ParachainSystem::PendingUpwardMessages` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) - /// Storage: `PolkadotXcm::Queries` (r:0 w:1) - /// Proof: `PolkadotXcm::Queries` (`max_values`: None, `max_size`: None, mode: `Measured`) - fn force_subscribe_version_notify() -> Weight { - // Proof Size summary in bytes: - // Measured: `109` - // Estimated: `3574` - // Minimum execution time: 35_127_000 picoseconds. - Weight::from_parts(36_317_000, 0) - .saturating_add(Weight::from_parts(0, 3574)) - .saturating_add(T::DbWeight::get().reads(7)) - .saturating_add(T::DbWeight::get().writes(5)) - } - /// Storage: `PolkadotXcm::VersionNotifiers` (r:1 w:1) - /// Proof: `PolkadotXcm::VersionNotifiers` (`max_values`: None, `max_size`: None, mode: `Measured`) - /// Storage: `PolkadotXcm::SupportedVersion` (r:1 w:0) - /// Proof: `PolkadotXcm::SupportedVersion` (`max_values`: None, `max_size`: None, mode: `Measured`) - /// Storage: `PolkadotXcm::VersionDiscoveryQueue` (r:1 w:1) - /// Proof: `PolkadotXcm::VersionDiscoveryQueue` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) - /// Storage: `PolkadotXcm::SafeXcmVersion` (r:1 w:0) - /// Proof: `PolkadotXcm::SafeXcmVersion` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) - /// Storage: `ParachainSystem::HostConfiguration` (r:1 w:0) - /// Proof: `ParachainSystem::HostConfiguration` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) - /// Storage: `ParachainSystem::PendingUpwardMessages` (r:1 w:1) - /// Proof: `ParachainSystem::PendingUpwardMessages` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) - /// Storage: `PolkadotXcm::Queries` (r:0 w:1) - /// Proof: `PolkadotXcm::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: 36_634_000 picoseconds. - Weight::from_parts(37_983_000, 0) - .saturating_add(Weight::from_parts(0, 3791)) - .saturating_add(T::DbWeight::get().reads(6)) - .saturating_add(T::DbWeight::get().writes(4)) - } - /// Storage: `PolkadotXcm::XcmExecutionSuspended` (r:0 w:1) - /// Proof: `PolkadotXcm::XcmExecutionSuspended` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) - fn force_suspension() -> Weight { - // Proof Size summary in bytes: - // Measured: `0` - // Estimated: `0` - // Minimum execution time: 2_940_000 picoseconds. - Weight::from_parts(3_085_000, 0) - .saturating_add(Weight::from_parts(0, 0)) - .saturating_add(T::DbWeight::get().writes(1)) - } - /// Storage: `PolkadotXcm::SupportedVersion` (r:4 w:2) - /// Proof: `PolkadotXcm::SupportedVersion` (`max_values`: None, `max_size`: None, mode: `Measured`) - fn migrate_supported_version() -> Weight { - // Proof Size summary in bytes: - // Measured: `162` - // Estimated: `11052` - // Minimum execution time: 17_400_000 picoseconds. - Weight::from_parts(17_759_000, 0) - .saturating_add(Weight::from_parts(0, 11052)) - .saturating_add(T::DbWeight::get().reads(4)) - .saturating_add(T::DbWeight::get().writes(2)) - } - /// Storage: `PolkadotXcm::VersionNotifiers` (r:4 w:2) - /// Proof: `PolkadotXcm::VersionNotifiers` (`max_values`: None, `max_size`: None, mode: `Measured`) - fn migrate_version_notifiers() -> Weight { - // Proof Size summary in bytes: - // Measured: `166` - // Estimated: `11056` - // Minimum execution time: 17_287_000 picoseconds. - Weight::from_parts(17_678_000, 0) - .saturating_add(Weight::from_parts(0, 11056)) - .saturating_add(T::DbWeight::get().reads(4)) - .saturating_add(T::DbWeight::get().writes(2)) - } - /// Storage: `PolkadotXcm::VersionNotifyTargets` (r:5 w:0) - /// Proof: `PolkadotXcm::VersionNotifyTargets` (`max_values`: None, `max_size`: None, mode: `Measured`) - fn already_notified_target() -> Weight { - // Proof Size summary in bytes: - // Measured: `173` - // Estimated: `13538` - // Minimum execution time: 18_941_000 picoseconds. - Weight::from_parts(19_285_000, 0) - .saturating_add(Weight::from_parts(0, 13538)) - .saturating_add(T::DbWeight::get().reads(5)) - } - /// Storage: `PolkadotXcm::VersionNotifyTargets` (r:2 w:1) - /// Proof: `PolkadotXcm::VersionNotifyTargets` (`max_values`: None, `max_size`: None, mode: `Measured`) - /// Storage: `PolkadotXcm::SupportedVersion` (r:1 w:0) - /// Proof: `PolkadotXcm::SupportedVersion` (`max_values`: None, `max_size`: None, mode: `Measured`) - /// Storage: `PolkadotXcm::VersionDiscoveryQueue` (r:1 w:1) - /// Proof: `PolkadotXcm::VersionDiscoveryQueue` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) - /// Storage: `PolkadotXcm::SafeXcmVersion` (r:1 w:0) - /// Proof: `PolkadotXcm::SafeXcmVersion` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) - /// Storage: `ParachainSystem::HostConfiguration` (r:1 w:0) - /// Proof: `ParachainSystem::HostConfiguration` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) - /// Storage: `ParachainSystem::PendingUpwardMessages` (r:1 w:1) - /// Proof: `ParachainSystem::PendingUpwardMessages` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) - fn notify_current_targets() -> Weight { - // Proof Size summary in bytes: - // Measured: `176` - // Estimated: `6116` - // Minimum execution time: 32_668_000 picoseconds. - Weight::from_parts(33_533_000, 0) - .saturating_add(Weight::from_parts(0, 6116)) - .saturating_add(T::DbWeight::get().reads(7)) - .saturating_add(T::DbWeight::get().writes(3)) - } - /// Storage: `PolkadotXcm::VersionNotifyTargets` (r:3 w:0) - /// Proof: `PolkadotXcm::VersionNotifyTargets` (`max_values`: None, `max_size`: None, mode: `Measured`) - fn notify_target_migration_fail() -> Weight { - // Proof Size summary in bytes: - // Measured: `206` - // Estimated: `8621` - // Minimum execution time: 9_182_000 picoseconds. - Weight::from_parts(9_498_000, 0) - .saturating_add(Weight::from_parts(0, 8621)) - .saturating_add(T::DbWeight::get().reads(3)) - } - /// Storage: `PolkadotXcm::VersionNotifyTargets` (r:4 w:2) - /// Proof: `PolkadotXcm::VersionNotifyTargets` (`max_values`: None, `max_size`: None, mode: `Measured`) - fn migrate_version_notify_targets() -> Weight { - // Proof Size summary in bytes: - // Measured: `173` - // Estimated: `11063` - // Minimum execution time: 17_519_000 picoseconds. - Weight::from_parts(17_943_000, 0) - .saturating_add(Weight::from_parts(0, 11063)) - .saturating_add(T::DbWeight::get().reads(4)) - .saturating_add(T::DbWeight::get().writes(2)) - } - /// Storage: `PolkadotXcm::VersionNotifyTargets` (r:4 w:2) - /// Proof: `PolkadotXcm::VersionNotifyTargets` (`max_values`: None, `max_size`: None, mode: `Measured`) - /// Storage: `PolkadotXcm::SupportedVersion` (r:1 w:0) - /// Proof: `PolkadotXcm::SupportedVersion` (`max_values`: None, `max_size`: None, mode: `Measured`) - /// Storage: `PolkadotXcm::VersionDiscoveryQueue` (r:1 w:1) - /// Proof: `PolkadotXcm::VersionDiscoveryQueue` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) - /// Storage: `PolkadotXcm::SafeXcmVersion` (r:1 w:0) - /// Proof: `PolkadotXcm::SafeXcmVersion` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) - /// Storage: `ParachainSystem::HostConfiguration` (r:1 w:0) - /// Proof: `ParachainSystem::HostConfiguration` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) - /// Storage: `ParachainSystem::PendingUpwardMessages` (r:1 w:1) - /// Proof: `ParachainSystem::PendingUpwardMessages` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) - fn migrate_and_notify_old_targets() -> Weight { - // Proof Size summary in bytes: - // Measured: `179` - // Estimated: `11069` - // Minimum execution time: 38_680_000 picoseconds. - Weight::from_parts(39_984_000, 0) - .saturating_add(Weight::from_parts(0, 11069)) - .saturating_add(T::DbWeight::get().reads(9)) - .saturating_add(T::DbWeight::get().writes(4)) - } -} diff --git a/cumulus/parachains/runtimes/assets/asset-hub-kusama/src/weights/xcm/mod.rs b/cumulus/parachains/runtimes/assets/asset-hub-kusama/src/weights/xcm/mod.rs deleted file mode 100644 index 9aff4902d15b..000000000000 --- a/cumulus/parachains/runtimes/assets/asset-hub-kusama/src/weights/xcm/mod.rs +++ /dev/null @@ -1,256 +0,0 @@ -// Copyright (C) Parity Technologies (UK) Ltd. -// This file is part of Cumulus. - -// Cumulus 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. - -// Cumulus 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 Cumulus. If not, see . - -mod pallet_xcm_benchmarks_fungible; -mod pallet_xcm_benchmarks_generic; - -use crate::{xcm_config::MaxAssetsIntoHolding, Runtime}; -use frame_support::weights::Weight; -use pallet_xcm_benchmarks_fungible::WeightInfo as XcmFungibleWeight; -use pallet_xcm_benchmarks_generic::WeightInfo as XcmGeneric; -use sp_std::prelude::*; -use xcm::{latest::prelude::*, DoubleEncoded}; - -trait WeighMultiAssets { - fn weigh_multi_assets(&self, weight: Weight) -> Weight; -} - -const MAX_ASSETS: u64 = 100; - -impl WeighMultiAssets for MultiAssetFilter { - fn weigh_multi_assets(&self, weight: Weight) -> Weight { - match self { - Self::Definite(assets) => weight.saturating_mul(assets.inner().iter().count() as u64), - Self::Wild(asset) => match asset { - All => weight.saturating_mul(MAX_ASSETS), - AllOf { fun, .. } => match fun { - WildFungibility::Fungible => weight, - // Magic number 2 has to do with the fact that we could have up to 2 times - // MaxAssetsIntoHolding in the worst-case scenario. - WildFungibility::NonFungible => - weight.saturating_mul((MaxAssetsIntoHolding::get() * 2) as u64), - }, - AllCounted(count) => weight.saturating_mul(MAX_ASSETS.min(*count as u64)), - AllOfCounted { count, .. } => weight.saturating_mul(MAX_ASSETS.min(*count as u64)), - }, - } - } -} - -impl WeighMultiAssets for MultiAssets { - fn weigh_multi_assets(&self, weight: Weight) -> Weight { - weight.saturating_mul(self.inner().iter().count() as u64) - } -} - -pub struct AssetHubKusamaXcmWeight(core::marker::PhantomData); -impl XcmWeightInfo for AssetHubKusamaXcmWeight { - fn withdraw_asset(assets: &MultiAssets) -> Weight { - assets.weigh_multi_assets(XcmFungibleWeight::::withdraw_asset()) - } - // Currently there is no trusted reserve (`IsReserve = ()`), - // but we need this hack for `pallet_xcm::reserve_transfer_assets` - // (TODO) fix https://github.com/paritytech/polkadot/pull/7424 - // (TODO) fix https://github.com/paritytech/polkadot/pull/7546 - fn reserve_asset_deposited(_assets: &MultiAssets) -> Weight { - // TODO: if we change `IsReserve = ...` then use this line... - // TODO: or if remote weight estimation is fixed, then remove - // TODO: hardcoded - fix https://github.com/paritytech/cumulus/issues/1974 - let hardcoded_weight = Weight::from_parts(1_000_000_000_u64, 0); - hardcoded_weight.min(XcmFungibleWeight::::reserve_asset_deposited()) - } - fn receive_teleported_asset(assets: &MultiAssets) -> Weight { - assets.weigh_multi_assets(XcmFungibleWeight::::receive_teleported_asset()) - } - fn query_response( - _query_id: &u64, - _response: &Response, - _max_weight: &Weight, - _querier: &Option, - ) -> Weight { - XcmGeneric::::query_response() - } - fn transfer_asset(assets: &MultiAssets, _dest: &MultiLocation) -> Weight { - assets.weigh_multi_assets(XcmFungibleWeight::::transfer_asset()) - } - fn transfer_reserve_asset( - assets: &MultiAssets, - _dest: &MultiLocation, - _xcm: &Xcm<()>, - ) -> Weight { - assets.weigh_multi_assets(XcmFungibleWeight::::transfer_reserve_asset()) - } - fn transact( - _origin_type: &OriginKind, - _require_weight_at_most: &Weight, - _call: &DoubleEncoded, - ) -> Weight { - XcmGeneric::::transact() - } - fn hrmp_new_channel_open_request( - _sender: &u32, - _max_message_size: &u32, - _max_capacity: &u32, - ) -> Weight { - // XCM Executor does not currently support HRMP channel operations - Weight::MAX - } - fn hrmp_channel_accepted(_recipient: &u32) -> Weight { - // XCM Executor does not currently support HRMP channel operations - Weight::MAX - } - fn hrmp_channel_closing(_initiator: &u32, _sender: &u32, _recipient: &u32) -> Weight { - // XCM Executor does not currently support HRMP channel operations - Weight::MAX - } - fn clear_origin() -> Weight { - XcmGeneric::::clear_origin() - } - fn descend_origin(_who: &InteriorMultiLocation) -> Weight { - XcmGeneric::::descend_origin() - } - fn report_error(_query_response_info: &QueryResponseInfo) -> Weight { - XcmGeneric::::report_error() - } - - fn deposit_asset(assets: &MultiAssetFilter, _dest: &MultiLocation) -> Weight { - // Hardcoded till the XCM pallet is fixed - let hardcoded_weight = Weight::from_parts(1_000_000_000_u64, 0); - let weight = assets.weigh_multi_assets(XcmFungibleWeight::::deposit_asset()); - hardcoded_weight.min(weight) - } - fn deposit_reserve_asset( - assets: &MultiAssetFilter, - _dest: &MultiLocation, - _xcm: &Xcm<()>, - ) -> Weight { - assets.weigh_multi_assets(XcmFungibleWeight::::deposit_reserve_asset()) - } - fn exchange_asset(_give: &MultiAssetFilter, _receive: &MultiAssets, _maximal: &bool) -> Weight { - Weight::MAX - } - fn initiate_reserve_withdraw( - assets: &MultiAssetFilter, - _reserve: &MultiLocation, - _xcm: &Xcm<()>, - ) -> Weight { - assets.weigh_multi_assets(XcmFungibleWeight::::initiate_reserve_withdraw()) - } - fn initiate_teleport( - assets: &MultiAssetFilter, - _dest: &MultiLocation, - _xcm: &Xcm<()>, - ) -> Weight { - assets.weigh_multi_assets(XcmFungibleWeight::::initiate_teleport()) - } - fn report_holding(_response_info: &QueryResponseInfo, _assets: &MultiAssetFilter) -> Weight { - XcmGeneric::::report_holding() - } - fn buy_execution(_fees: &MultiAsset, _weight_limit: &WeightLimit) -> Weight { - XcmGeneric::::buy_execution() - } - fn refund_surplus() -> Weight { - XcmGeneric::::refund_surplus() - } - fn set_error_handler(_xcm: &Xcm) -> Weight { - XcmGeneric::::set_error_handler() - } - fn set_appendix(_xcm: &Xcm) -> Weight { - XcmGeneric::::set_appendix() - } - fn clear_error() -> Weight { - XcmGeneric::::clear_error() - } - fn claim_asset(_assets: &MultiAssets, _ticket: &MultiLocation) -> Weight { - XcmGeneric::::claim_asset() - } - fn trap(_code: &u64) -> Weight { - XcmGeneric::::trap() - } - fn subscribe_version(_query_id: &QueryId, _max_response_weight: &Weight) -> Weight { - XcmGeneric::::subscribe_version() - } - fn unsubscribe_version() -> Weight { - XcmGeneric::::unsubscribe_version() - } - fn burn_asset(assets: &MultiAssets) -> Weight { - assets.weigh_multi_assets(XcmGeneric::::burn_asset()) - } - fn expect_asset(assets: &MultiAssets) -> Weight { - assets.weigh_multi_assets(XcmGeneric::::expect_asset()) - } - fn expect_origin(_origin: &Option) -> Weight { - XcmGeneric::::expect_origin() - } - fn expect_error(_error: &Option<(u32, XcmError)>) -> Weight { - XcmGeneric::::expect_error() - } - fn expect_transact_status(_transact_status: &MaybeErrorCode) -> Weight { - XcmGeneric::::expect_transact_status() - } - fn query_pallet(_module_name: &Vec, _response_info: &QueryResponseInfo) -> Weight { - XcmGeneric::::query_pallet() - } - fn expect_pallet( - _index: &u32, - _name: &Vec, - _module_name: &Vec, - _crate_major: &u32, - _min_crate_minor: &u32, - ) -> Weight { - XcmGeneric::::expect_pallet() - } - fn report_transact_status(_response_info: &QueryResponseInfo) -> Weight { - XcmGeneric::::report_transact_status() - } - fn clear_transact_status() -> Weight { - XcmGeneric::::clear_transact_status() - } - fn universal_origin(_: &Junction) -> Weight { - Weight::MAX - } - fn export_message(_: &NetworkId, _: &Junctions, _: &Xcm<()>) -> Weight { - Weight::MAX - } - fn lock_asset(_: &MultiAsset, _: &MultiLocation) -> Weight { - Weight::MAX - } - fn unlock_asset(_: &MultiAsset, _: &MultiLocation) -> Weight { - Weight::MAX - } - fn note_unlockable(_: &MultiAsset, _: &MultiLocation) -> Weight { - Weight::MAX - } - fn request_unlock(_: &MultiAsset, _: &MultiLocation) -> Weight { - Weight::MAX - } - fn set_fees_mode(_: &bool) -> Weight { - XcmGeneric::::set_fees_mode() - } - fn set_topic(_topic: &[u8; 32]) -> Weight { - XcmGeneric::::set_topic() - } - fn clear_topic() -> Weight { - XcmGeneric::::clear_topic() - } - fn alias_origin(_: &MultiLocation) -> Weight { - // XCM Executor does not currently support alias origin operations - Weight::MAX - } - fn unpaid_execution(_: &WeightLimit, _: &Option) -> Weight { - XcmGeneric::::unpaid_execution() - } -} diff --git a/cumulus/parachains/runtimes/assets/asset-hub-kusama/src/weights/xcm/pallet_xcm_benchmarks_fungible.rs b/cumulus/parachains/runtimes/assets/asset-hub-kusama/src/weights/xcm/pallet_xcm_benchmarks_fungible.rs deleted file mode 100644 index 6e663039b0c2..000000000000 --- a/cumulus/parachains/runtimes/assets/asset-hub-kusama/src/weights/xcm/pallet_xcm_benchmarks_fungible.rs +++ /dev/null @@ -1,190 +0,0 @@ -// Copyright (C) Parity Technologies (UK) Ltd. -// This file is part of Cumulus. - -// Cumulus 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. - -// Cumulus 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 Cumulus. 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-07-31, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` -//! WORST CASE MAP SIZE: `1000000` -//! HOSTNAME: `runner-ynta1nyy-project-238-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz` -//! EXECUTION: , WASM-EXECUTION: Compiled, CHAIN: Some("asset-hub-kusama-dev"), DB CACHE: 1024 - -// Executed Command: -// ./target/production/polkadot-parachain -// benchmark -// pallet -// --template=./templates/xcm-bench-template.hbs -// --chain=asset-hub-kusama-dev -// --wasm-execution=compiled -// --pallet=pallet_xcm_benchmarks::fungible -// --no-storage-info -// --no-median-slopes -// --no-min-squares -// --extrinsic=* -// --steps=50 -// --repeat=20 -// --json -// --header=./file_header.txt -// --output=./parachains/runtimes/assets/asset-hub-kusama/src/weights/xcm/pallet_xcm_benchmarks_fungible.rs - -#![cfg_attr(rustfmt, rustfmt_skip)] -#![allow(unused_parens)] -#![allow(unused_imports)] - -use frame_support::{traits::Get, weights::Weight}; -use sp_std::marker::PhantomData; - -/// Weights for `pallet_xcm_benchmarks::fungible`. -pub struct WeightInfo(PhantomData); -impl WeightInfo { - // Storage: `System::Account` (r:1 w:1) - // Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`) - pub fn withdraw_asset() -> Weight { - // Proof Size summary in bytes: - // Measured: `101` - // Estimated: `3593` - // Minimum execution time: 26_104_000 picoseconds. - Weight::from_parts(26_722_000, 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`) - pub fn transfer_asset() -> Weight { - // Proof Size summary in bytes: - // Measured: `101` - // Estimated: `6196` - // Minimum execution time: 52_259_000 picoseconds. - Weight::from_parts(53_854_000, 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: `ParachainInfo::ParachainId` (r:1 w:0) - // Proof: `ParachainInfo::ParachainId` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`) - // Storage: `PolkadotXcm::SupportedVersion` (r:1 w:0) - // Proof: `PolkadotXcm::SupportedVersion` (`max_values`: None, `max_size`: None, mode: `Measured`) - // Storage: `PolkadotXcm::VersionDiscoveryQueue` (r:1 w:1) - // Proof: `PolkadotXcm::VersionDiscoveryQueue` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) - // Storage: `PolkadotXcm::SafeXcmVersion` (r:1 w:0) - // Proof: `PolkadotXcm::SafeXcmVersion` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) - // Storage: `ParachainSystem::HostConfiguration` (r:1 w:0) - // Proof: `ParachainSystem::HostConfiguration` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) - // Storage: `ParachainSystem::PendingUpwardMessages` (r:1 w:1) - // Proof: `ParachainSystem::PendingUpwardMessages` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) - pub fn transfer_reserve_asset() -> Weight { - // Proof Size summary in bytes: - // Measured: `210` - // Estimated: `6196` - // Minimum execution time: 77_248_000 picoseconds. - Weight::from_parts(80_354_000, 6196) - .saturating_add(T::DbWeight::get().reads(8)) - .saturating_add(T::DbWeight::get().writes(4)) - } - // Storage: `Benchmark::Override` (r:0 w:0) - // Proof: `Benchmark::Override` (`max_values`: None, `max_size`: None, mode: `Measured`) - pub fn reserve_asset_deposited() -> Weight { - // Proof Size summary in bytes: - // Measured: `0` - // Estimated: `0` - // Minimum execution time: 500_000_000_000 picoseconds. - Weight::from_parts(500_000_000_000, 0) - } - // Storage: `ParachainInfo::ParachainId` (r:1 w:0) - // Proof: `ParachainInfo::ParachainId` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`) - // Storage: `PolkadotXcm::SupportedVersion` (r:1 w:0) - // Proof: `PolkadotXcm::SupportedVersion` (`max_values`: None, `max_size`: None, mode: `Measured`) - // Storage: `PolkadotXcm::VersionDiscoveryQueue` (r:1 w:1) - // Proof: `PolkadotXcm::VersionDiscoveryQueue` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) - // Storage: `PolkadotXcm::SafeXcmVersion` (r:1 w:0) - // Proof: `PolkadotXcm::SafeXcmVersion` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) - // Storage: `ParachainSystem::HostConfiguration` (r:1 w:0) - // Proof: `ParachainSystem::HostConfiguration` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) - // Storage: `ParachainSystem::PendingUpwardMessages` (r:1 w:1) - // Proof: `ParachainSystem::PendingUpwardMessages` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) - pub fn initiate_reserve_withdraw() -> Weight { - // Proof Size summary in bytes: - // Measured: `109` - // Estimated: `3574` - // Minimum execution time: 482_070_000 picoseconds. - Weight::from_parts(490_269_000, 3574) - .saturating_add(T::DbWeight::get().reads(6)) - .saturating_add(T::DbWeight::get().writes(2)) - } - pub fn receive_teleported_asset() -> Weight { - // Proof Size summary in bytes: - // Measured: `0` - // Estimated: `0` - // Minimum execution time: 3_970_000 picoseconds. - Weight::from_parts(4_056_000, 0) - } - // Storage: `System::Account` (r:1 w:1) - // Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`) - pub fn deposit_asset() -> Weight { - // Proof Size summary in bytes: - // Measured: `0` - // Estimated: `3593` - // Minimum execution time: 26_324_000 picoseconds. - Weight::from_parts(26_985_000, 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: `ParachainInfo::ParachainId` (r:1 w:0) - // Proof: `ParachainInfo::ParachainId` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`) - // Storage: `PolkadotXcm::SupportedVersion` (r:1 w:0) - // Proof: `PolkadotXcm::SupportedVersion` (`max_values`: None, `max_size`: None, mode: `Measured`) - // Storage: `PolkadotXcm::VersionDiscoveryQueue` (r:1 w:1) - // Proof: `PolkadotXcm::VersionDiscoveryQueue` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) - // Storage: `PolkadotXcm::SafeXcmVersion` (r:1 w:0) - // Proof: `PolkadotXcm::SafeXcmVersion` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) - // Storage: `ParachainSystem::HostConfiguration` (r:1 w:0) - // Proof: `ParachainSystem::HostConfiguration` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) - // Storage: `ParachainSystem::PendingUpwardMessages` (r:1 w:1) - // Proof: `ParachainSystem::PendingUpwardMessages` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) - pub fn deposit_reserve_asset() -> Weight { - // Proof Size summary in bytes: - // Measured: `109` - // Estimated: `3593` - // Minimum execution time: 52_814_000 picoseconds. - Weight::from_parts(54_666_000, 3593) - .saturating_add(T::DbWeight::get().reads(7)) - .saturating_add(T::DbWeight::get().writes(3)) - } - // Storage: `ParachainInfo::ParachainId` (r:1 w:0) - // Proof: `ParachainInfo::ParachainId` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`) - // Storage: `PolkadotXcm::SupportedVersion` (r:1 w:0) - // Proof: `PolkadotXcm::SupportedVersion` (`max_values`: None, `max_size`: None, mode: `Measured`) - // Storage: `PolkadotXcm::VersionDiscoveryQueue` (r:1 w:1) - // Proof: `PolkadotXcm::VersionDiscoveryQueue` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) - // Storage: `PolkadotXcm::SafeXcmVersion` (r:1 w:0) - // Proof: `PolkadotXcm::SafeXcmVersion` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) - // Storage: `ParachainSystem::HostConfiguration` (r:1 w:0) - // Proof: `ParachainSystem::HostConfiguration` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) - // Storage: `ParachainSystem::PendingUpwardMessages` (r:1 w:1) - // Proof: `ParachainSystem::PendingUpwardMessages` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) - pub fn initiate_teleport() -> Weight { - // Proof Size summary in bytes: - // Measured: `109` - // Estimated: `3574` - // Minimum execution time: 33_044_000 picoseconds. - Weight::from_parts(33_849_000, 3574) - .saturating_add(T::DbWeight::get().reads(6)) - .saturating_add(T::DbWeight::get().writes(2)) - } -} diff --git a/cumulus/parachains/runtimes/assets/asset-hub-kusama/src/weights/xcm/pallet_xcm_benchmarks_generic.rs b/cumulus/parachains/runtimes/assets/asset-hub-kusama/src/weights/xcm/pallet_xcm_benchmarks_generic.rs deleted file mode 100644 index 625549ecfccf..000000000000 --- a/cumulus/parachains/runtimes/assets/asset-hub-kusama/src/weights/xcm/pallet_xcm_benchmarks_generic.rs +++ /dev/null @@ -1,329 +0,0 @@ -// Copyright (C) Parity Technologies (UK) Ltd. -// This file is part of Cumulus. - -// Cumulus 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. - -// Cumulus 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 Cumulus. 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-07-31, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` -//! WORST CASE MAP SIZE: `1000000` -//! HOSTNAME: `runner-ynta1nyy-project-238-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz` -//! EXECUTION: , WASM-EXECUTION: Compiled, CHAIN: Some("asset-hub-kusama-dev"), DB CACHE: 1024 - -// Executed Command: -// ./target/production/polkadot-parachain -// benchmark -// pallet -// --template=./templates/xcm-bench-template.hbs -// --chain=asset-hub-kusama-dev -// --wasm-execution=compiled -// --pallet=pallet_xcm_benchmarks::generic -// --no-storage-info -// --no-median-slopes -// --no-min-squares -// --extrinsic=* -// --steps=50 -// --repeat=20 -// --json -// --header=./file_header.txt -// --output=./parachains/runtimes/assets/asset-hub-kusama/src/weights/xcm/pallet_xcm_benchmarks_generic.rs - -#![cfg_attr(rustfmt, rustfmt_skip)] -#![allow(unused_parens)] -#![allow(unused_imports)] - -use frame_support::{traits::Get, weights::Weight}; -use sp_std::marker::PhantomData; - -/// Weights for `pallet_xcm_benchmarks::generic`. -pub struct WeightInfo(PhantomData); -impl WeightInfo { - // Storage: `ParachainInfo::ParachainId` (r:1 w:0) - // Proof: `ParachainInfo::ParachainId` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`) - // Storage: `PolkadotXcm::SupportedVersion` (r:1 w:0) - // Proof: `PolkadotXcm::SupportedVersion` (`max_values`: None, `max_size`: None, mode: `Measured`) - // Storage: `PolkadotXcm::VersionDiscoveryQueue` (r:1 w:1) - // Proof: `PolkadotXcm::VersionDiscoveryQueue` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) - // Storage: `PolkadotXcm::SafeXcmVersion` (r:1 w:0) - // Proof: `PolkadotXcm::SafeXcmVersion` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) - // Storage: `ParachainSystem::HostConfiguration` (r:1 w:0) - // Proof: `ParachainSystem::HostConfiguration` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) - // Storage: `ParachainSystem::PendingUpwardMessages` (r:1 w:1) - // Proof: `ParachainSystem::PendingUpwardMessages` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) - pub fn report_holding() -> Weight { - // Proof Size summary in bytes: - // Measured: `109` - // Estimated: `3574` - // Minimum execution time: 432_196_000 picoseconds. - Weight::from_parts(438_017_000, 3574) - .saturating_add(T::DbWeight::get().reads(6)) - .saturating_add(T::DbWeight::get().writes(2)) - } - pub fn buy_execution() -> Weight { - // Proof Size summary in bytes: - // Measured: `0` - // Estimated: `0` - // Minimum execution time: 4_223_000 picoseconds. - Weight::from_parts(4_412_000, 0) - } - // Storage: `PolkadotXcm::Queries` (r:1 w:0) - // Proof: `PolkadotXcm::Queries` (`max_values`: None, `max_size`: None, mode: `Measured`) - pub fn query_response() -> Weight { - // Proof Size summary in bytes: - // Measured: `103` - // Estimated: `3568` - // Minimum execution time: 11_582_000 picoseconds. - Weight::from_parts(11_830_000, 3568) - .saturating_add(T::DbWeight::get().reads(1)) - } - pub fn transact() -> Weight { - // Proof Size summary in bytes: - // Measured: `0` - // Estimated: `0` - // Minimum execution time: 13_955_000 picoseconds. - Weight::from_parts(14_320_000, 0) - } - pub fn refund_surplus() -> Weight { - // Proof Size summary in bytes: - // Measured: `0` - // Estimated: `0` - // Minimum execution time: 4_423_000 picoseconds. - Weight::from_parts(4_709_000, 0) - } - pub fn set_error_handler() -> Weight { - // Proof Size summary in bytes: - // Measured: `0` - // Estimated: `0` - // Minimum execution time: 3_028_000 picoseconds. - Weight::from_parts(3_151_000, 0) - } - pub fn set_appendix() -> Weight { - // Proof Size summary in bytes: - // Measured: `0` - // Estimated: `0` - // Minimum execution time: 2_966_000 picoseconds. - Weight::from_parts(3_076_000, 0) - } - pub fn clear_error() -> Weight { - // Proof Size summary in bytes: - // Measured: `0` - // Estimated: `0` - // Minimum execution time: 2_971_000 picoseconds. - Weight::from_parts(3_119_000, 0) - } - pub fn descend_origin() -> Weight { - // Proof Size summary in bytes: - // Measured: `0` - // Estimated: `0` - // Minimum execution time: 3_772_000 picoseconds. - Weight::from_parts(3_853_000, 0) - } - pub fn clear_origin() -> Weight { - // Proof Size summary in bytes: - // Measured: `0` - // Estimated: `0` - // Minimum execution time: 2_940_000 picoseconds. - Weight::from_parts(3_050_000, 0) - } - // Storage: `ParachainInfo::ParachainId` (r:1 w:0) - // Proof: `ParachainInfo::ParachainId` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`) - // Storage: `PolkadotXcm::SupportedVersion` (r:1 w:0) - // Proof: `PolkadotXcm::SupportedVersion` (`max_values`: None, `max_size`: None, mode: `Measured`) - // Storage: `PolkadotXcm::VersionDiscoveryQueue` (r:1 w:1) - // Proof: `PolkadotXcm::VersionDiscoveryQueue` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) - // Storage: `PolkadotXcm::SafeXcmVersion` (r:1 w:0) - // Proof: `PolkadotXcm::SafeXcmVersion` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) - // Storage: `ParachainSystem::HostConfiguration` (r:1 w:0) - // Proof: `ParachainSystem::HostConfiguration` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) - // Storage: `ParachainSystem::PendingUpwardMessages` (r:1 w:1) - // Proof: `ParachainSystem::PendingUpwardMessages` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) - pub fn report_error() -> Weight { - // Proof Size summary in bytes: - // Measured: `109` - // Estimated: `3574` - // Minimum execution time: 27_734_000 picoseconds. - Weight::from_parts(28_351_000, 3574) - .saturating_add(T::DbWeight::get().reads(6)) - .saturating_add(T::DbWeight::get().writes(2)) - } - // Storage: `PolkadotXcm::AssetTraps` (r:1 w:1) - // Proof: `PolkadotXcm::AssetTraps` (`max_values`: None, `max_size`: None, mode: `Measured`) - pub fn claim_asset() -> Weight { - // Proof Size summary in bytes: - // Measured: `160` - // Estimated: `3625` - // Minimum execution time: 16_456_000 picoseconds. - Weight::from_parts(16_846_000, 3625) - .saturating_add(T::DbWeight::get().reads(1)) - .saturating_add(T::DbWeight::get().writes(1)) - } - pub fn trap() -> Weight { - // Proof Size summary in bytes: - // Measured: `0` - // Estimated: `0` - // Minimum execution time: 2_974_000 picoseconds. - Weight::from_parts(3_108_000, 0) - } - // Storage: `PolkadotXcm::VersionNotifyTargets` (r:1 w:1) - // Proof: `PolkadotXcm::VersionNotifyTargets` (`max_values`: None, `max_size`: None, mode: `Measured`) - // Storage: `PolkadotXcm::SupportedVersion` (r:1 w:0) - // Proof: `PolkadotXcm::SupportedVersion` (`max_values`: None, `max_size`: None, mode: `Measured`) - // Storage: `PolkadotXcm::VersionDiscoveryQueue` (r:1 w:1) - // Proof: `PolkadotXcm::VersionDiscoveryQueue` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) - // Storage: `PolkadotXcm::SafeXcmVersion` (r:1 w:0) - // Proof: `PolkadotXcm::SafeXcmVersion` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) - // Storage: `ParachainSystem::HostConfiguration` (r:1 w:0) - // Proof: `ParachainSystem::HostConfiguration` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) - // Storage: `ParachainSystem::PendingUpwardMessages` (r:1 w:1) - // Proof: `ParachainSystem::PendingUpwardMessages` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) - pub fn subscribe_version() -> Weight { - // Proof Size summary in bytes: - // Measured: `109` - // Estimated: `3574` - // Minimum execution time: 29_823_000 picoseconds. - Weight::from_parts(30_776_000, 3574) - .saturating_add(T::DbWeight::get().reads(6)) - .saturating_add(T::DbWeight::get().writes(3)) - } - // Storage: `PolkadotXcm::VersionNotifyTargets` (r:0 w:1) - // Proof: `PolkadotXcm::VersionNotifyTargets` (`max_values`: None, `max_size`: None, mode: `Measured`) - pub fn unsubscribe_version() -> Weight { - // Proof Size summary in bytes: - // Measured: `0` - // Estimated: `0` - // Minimum execution time: 4_966_000 picoseconds. - Weight::from_parts(5_157_000, 0) - .saturating_add(T::DbWeight::get().writes(1)) - } - pub fn burn_asset() -> Weight { - // Proof Size summary in bytes: - // Measured: `0` - // Estimated: `0` - // Minimum execution time: 141_875_000 picoseconds. - Weight::from_parts(144_925_000, 0) - } - pub fn expect_asset() -> Weight { - // Proof Size summary in bytes: - // Measured: `0` - // Estimated: `0` - // Minimum execution time: 13_147_000 picoseconds. - Weight::from_parts(13_420_000, 0) - } - pub fn expect_origin() -> Weight { - // Proof Size summary in bytes: - // Measured: `0` - // Estimated: `0` - // Minimum execution time: 3_050_000 picoseconds. - Weight::from_parts(3_161_000, 0) - } - pub fn expect_error() -> Weight { - // Proof Size summary in bytes: - // Measured: `0` - // Estimated: `0` - // Minimum execution time: 2_930_000 picoseconds. - Weight::from_parts(3_077_000, 0) - } - pub fn expect_transact_status() -> Weight { - // Proof Size summary in bytes: - // Measured: `0` - // Estimated: `0` - // Minimum execution time: 3_188_000 picoseconds. - Weight::from_parts(3_299_000, 0) - } - // Storage: `ParachainInfo::ParachainId` (r:1 w:0) - // Proof: `ParachainInfo::ParachainId` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`) - // Storage: `PolkadotXcm::SupportedVersion` (r:1 w:0) - // Proof: `PolkadotXcm::SupportedVersion` (`max_values`: None, `max_size`: None, mode: `Measured`) - // Storage: `PolkadotXcm::VersionDiscoveryQueue` (r:1 w:1) - // Proof: `PolkadotXcm::VersionDiscoveryQueue` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) - // Storage: `PolkadotXcm::SafeXcmVersion` (r:1 w:0) - // Proof: `PolkadotXcm::SafeXcmVersion` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) - // Storage: `ParachainSystem::HostConfiguration` (r:1 w:0) - // Proof: `ParachainSystem::HostConfiguration` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) - // Storage: `ParachainSystem::PendingUpwardMessages` (r:1 w:1) - // Proof: `ParachainSystem::PendingUpwardMessages` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) - pub fn query_pallet() -> Weight { - // Proof Size summary in bytes: - // Measured: `109` - // Estimated: `3574` - // Minimum execution time: 31_678_000 picoseconds. - Weight::from_parts(32_462_000, 3574) - .saturating_add(T::DbWeight::get().reads(6)) - .saturating_add(T::DbWeight::get().writes(2)) - } - pub fn expect_pallet() -> Weight { - // Proof Size summary in bytes: - // Measured: `0` - // Estimated: `0` - // Minimum execution time: 5_638_000 picoseconds. - Weight::from_parts(5_756_000, 0) - } - // Storage: `ParachainInfo::ParachainId` (r:1 w:0) - // Proof: `ParachainInfo::ParachainId` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`) - // Storage: `PolkadotXcm::SupportedVersion` (r:1 w:0) - // Proof: `PolkadotXcm::SupportedVersion` (`max_values`: None, `max_size`: None, mode: `Measured`) - // Storage: `PolkadotXcm::VersionDiscoveryQueue` (r:1 w:1) - // Proof: `PolkadotXcm::VersionDiscoveryQueue` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) - // Storage: `PolkadotXcm::SafeXcmVersion` (r:1 w:0) - // Proof: `PolkadotXcm::SafeXcmVersion` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) - // Storage: `ParachainSystem::HostConfiguration` (r:1 w:0) - // Proof: `ParachainSystem::HostConfiguration` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) - // Storage: `ParachainSystem::PendingUpwardMessages` (r:1 w:1) - // Proof: `ParachainSystem::PendingUpwardMessages` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) - pub fn report_transact_status() -> Weight { - // Proof Size summary in bytes: - // Measured: `109` - // Estimated: `3574` - // Minimum execution time: 27_556_000 picoseconds. - Weight::from_parts(28_240_000, 3574) - .saturating_add(T::DbWeight::get().reads(6)) - .saturating_add(T::DbWeight::get().writes(2)) - } - pub fn clear_transact_status() -> Weight { - // Proof Size summary in bytes: - // Measured: `0` - // Estimated: `0` - // Minimum execution time: 2_932_000 picoseconds. - Weight::from_parts(3_097_000, 0) - } - pub fn set_topic() -> Weight { - // Proof Size summary in bytes: - // Measured: `0` - // Estimated: `0` - // Minimum execution time: 2_860_000 picoseconds. - Weight::from_parts(2_957_000, 0) - } - pub fn clear_topic() -> Weight { - // Proof Size summary in bytes: - // Measured: `0` - // Estimated: `0` - // Minimum execution time: 2_886_000 picoseconds. - Weight::from_parts(3_015_000, 0) - } - pub fn set_fees_mode() -> Weight { - // Proof Size summary in bytes: - // Measured: `0` - // Estimated: `0` - // Minimum execution time: 2_874_000 picoseconds. - Weight::from_parts(3_060_000, 0) - } - pub fn unpaid_execution() -> Weight { - // Proof Size summary in bytes: - // Measured: `0` - // Estimated: `0` - // Minimum execution time: 3_029_000 picoseconds. - Weight::from_parts(3_158_000, 0) - } -} diff --git a/cumulus/parachains/runtimes/assets/asset-hub-kusama/src/xcm_config.rs b/cumulus/parachains/runtimes/assets/asset-hub-kusama/src/xcm_config.rs deleted file mode 100644 index 0c197598f889..000000000000 --- a/cumulus/parachains/runtimes/assets/asset-hub-kusama/src/xcm_config.rs +++ /dev/null @@ -1,626 +0,0 @@ -// 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::{ - AccountId, AllPalletsWithSystem, Assets, Authorship, Balance, Balances, ParachainInfo, - ParachainSystem, PolkadotXcm, PoolAssets, Runtime, RuntimeCall, RuntimeEvent, RuntimeOrigin, - TrustBackedAssetsInstance, WeightToFee, XcmpQueue, -}; -use crate::ForeignAssets; -use assets_common::{ - local_and_foreign_assets::MatchesLocalAndForeignAssetsMultiLocation, - matching::{ - FromSiblingParachain, IsForeignConcreteAsset, StartsWith, StartsWithExplicitGlobalConsensus, - }, -}; -use frame_support::{ - match_types, parameter_types, - traits::{ConstU32, Contains, Everything, Nothing, PalletInfoAccess}, -}; -use frame_system::EnsureRoot; -use pallet_xcm::XcmPassthrough; -use parachains_common::{impls::ToStakingPot, xcm_config::AssetFeeAsExistentialDepositMultiplier}; -use polkadot_parachain_primitives::primitives::Sibling; -use sp_runtime::traits::ConvertInto; -use xcm::latest::prelude::*; -use xcm_builder::{ - AccountId32Aliases, AllowExplicitUnpaidExecutionFrom, AllowKnownQueryResponses, - AllowSubscriptionsFrom, AllowTopLevelPaidExecutionFrom, CurrencyAdapter, - DenyReserveTransferToRelayChain, DenyThenTry, DescribeAllTerminal, DescribeFamily, - EnsureXcmOrigin, FungiblesAdapter, HashedDescription, IsConcrete, LocalMint, NativeAsset, - NoChecking, ParentAsSuperuser, ParentIsPreset, RelayChainAsNative, SiblingParachainAsNative, - SiblingParachainConvertsVia, SignedAccountId32AsNative, SignedToAccountId32, - SovereignSignedViaLocation, TakeWeightCredit, TrailingSetTopicAsId, UsingComponents, - WeightInfoBounds, WithComputedOrigin, WithUniqueTopic, -}; -use xcm_executor::{traits::WithOriginFilter, XcmExecutor}; - -#[cfg(feature = "runtime-benchmarks")] -use {cumulus_primitives_core::ParaId, sp_core::Get}; - -parameter_types! { - pub const KsmLocation: MultiLocation = MultiLocation::parent(); - pub const RelayNetwork: Option = Some(NetworkId::Kusama); - pub RelayChainOrigin: RuntimeOrigin = cumulus_pallet_xcm::Origin::Relay.into(); - pub UniversalLocation: InteriorMultiLocation = - X2(GlobalConsensus(RelayNetwork::get().unwrap()), Parachain(ParachainInfo::parachain_id().into())); - pub UniversalLocationNetworkId: NetworkId = UniversalLocation::get().global_consensus().unwrap(); - pub TrustBackedAssetsPalletLocation: MultiLocation = - PalletInstance(::index() as u8).into(); - pub ForeignAssetsPalletLocation: MultiLocation = - PalletInstance(::index() as u8).into(); - pub PoolAssetsPalletLocation: MultiLocation = - PalletInstance(::index() as u8).into(); - pub CheckingAccount: AccountId = PolkadotXcm::check_account(); - pub const GovernanceLocation: MultiLocation = MultiLocation::parent(); - pub const FellowshipLocation: MultiLocation = MultiLocation::parent(); -} - -/// Type for specifying how a `MultiLocation` can be converted into an `AccountId`. This is used -/// when determining ownership of accounts for asset transacting and when attempting to use XCM -/// `Transact` in order to determine the dispatch Origin. -pub type LocationToAccountId = ( - // The parent (Relay-chain) origin converts to the parent `AccountId`. - ParentIsPreset, - // Sibling parachain origins convert to AccountId via the `ParaId::into`. - SiblingParachainConvertsVia, - // Straight up local `AccountId32` origins just alias directly to `AccountId`. - AccountId32Aliases, - // Foreign locations alias into accounts according to a hash of their standard description. - HashedDescription>, -); - -/// Means for transacting the native currency on this chain. -pub type CurrencyTransactor = CurrencyAdapter< - // Use this currency: - Balances, - // Use this currency when it is a fungible asset matching the given location or name: - IsConcrete, - // Convert an XCM MultiLocation into a local account id: - LocationToAccountId, - // Our chain's account ID type (we can't get away without mentioning it explicitly): - AccountId, - // We don't track any teleports of `Balances`. - (), ->; - -/// `AssetId`/`Balance` converter for `PoolAssets`. -pub type TrustBackedAssetsConvertedConcreteId = - assets_common::TrustBackedAssetsConvertedConcreteId; - -/// Means for transacting assets besides the native currency on this chain. -pub type FungiblesTransactor = FungiblesAdapter< - // Use this fungibles implementation: - Assets, - // Use this currency when it is a fungible asset matching the given location or name: - TrustBackedAssetsConvertedConcreteId, - // Convert an XCM MultiLocation into a local account id: - LocationToAccountId, - // Our chain's account ID type (we can't get away without mentioning it explicitly): - AccountId, - // We only want to allow teleports of known assets. We use non-zero issuance as an indication - // that this asset is known. - LocalMint>, - // The account to use for tracking teleports. - CheckingAccount, ->; - -/// `AssetId/Balance` converter for `TrustBackedAssets` -pub type ForeignAssetsConvertedConcreteId = assets_common::ForeignAssetsConvertedConcreteId< - ( - // Ignore `TrustBackedAssets` explicitly - StartsWith, - // Ignore assets that start explicitly with our `GlobalConsensus(NetworkId)`, means: - // - foreign assets from our consensus should be: `MultiLocation {parents: 1, - // X*(Parachain(xyz), ..)}` - // - foreign assets outside our consensus with the same `GlobalConsensus(NetworkId)` won't - // be accepted here - StartsWithExplicitGlobalConsensus, - ), - Balance, ->; - -/// Means for transacting foreign assets from different global consensus. -pub type ForeignFungiblesTransactor = FungiblesAdapter< - // Use this fungibles implementation: - ForeignAssets, - // Use this currency when it is a fungible asset matching the given location or name: - ForeignAssetsConvertedConcreteId, - // Convert an XCM MultiLocation into a local account id: - LocationToAccountId, - // Our chain's account ID type (we can't get away without mentioning it explicitly): - AccountId, - // We dont need to check teleports here. - NoChecking, - // The account to use for tracking teleports. - CheckingAccount, ->; - -/// `AssetId`/`Balance` converter for `PoolAssets`. -pub type PoolAssetsConvertedConcreteId = - assets_common::PoolAssetsConvertedConcreteId; - -/// Means for transacting asset conversion pool assets on this chain. -pub type PoolFungiblesTransactor = FungiblesAdapter< - // Use this fungibles implementation: - PoolAssets, - // Use this currency when it is a fungible asset matching the given location or name: - PoolAssetsConvertedConcreteId, - // Convert an XCM MultiLocation into a local account id: - LocationToAccountId, - // Our chain's account ID type (we can't get away without mentioning it explicitly): - AccountId, - // We only want to allow teleports of known assets. We use non-zero issuance as an indication - // that this asset is known. - LocalMint>, - // The account to use for tracking teleports. - CheckingAccount, ->; - -/// Means for transacting assets on this chain. -pub type AssetTransactors = - (CurrencyTransactor, FungiblesTransactor, ForeignFungiblesTransactor, PoolFungiblesTransactor); - -/// Simple `MultiLocation` matcher for Local and Foreign asset `MultiLocation`. -pub struct LocalAndForeignAssetsMultiLocationMatcher; -impl MatchesLocalAndForeignAssetsMultiLocation for LocalAndForeignAssetsMultiLocationMatcher { - fn is_local(location: &MultiLocation) -> bool { - use assets_common::fungible_conversion::MatchesMultiLocation; - TrustBackedAssetsConvertedConcreteId::contains(location) - } - fn is_foreign(location: &MultiLocation) -> bool { - use assets_common::fungible_conversion::MatchesMultiLocation; - ForeignAssetsConvertedConcreteId::contains(location) - } -} -impl Contains for LocalAndForeignAssetsMultiLocationMatcher { - fn contains(location: &MultiLocation) -> bool { - Self::is_local(location) || Self::is_foreign(location) - } -} - -/// This is the type we use to convert an (incoming) XCM origin into a local `Origin` instance, -/// ready for dispatching a transaction with Xcm's `Transact`. There is an `OriginKind` which can -/// biases the kind of local `Origin` it will become. -pub type XcmOriginToTransactDispatchOrigin = ( - // Sovereign account converter; this attempts to derive an `AccountId` from the origin location - // using `LocationToAccountId` and then turn that into the usual `Signed` origin. Useful for - // foreign chains who want to have a local sovereign account on this chain which they control. - SovereignSignedViaLocation, - // Native converter for Relay-chain (Parent) location; will convert to a `Relay` origin when - // recognised. - RelayChainAsNative, - // Native converter for sibling Parachains; will convert to a `SiblingPara` origin when - // recognised. - SiblingParachainAsNative, - // Superuser converter for the Relay-chain (Parent) location. This will allow it to issue a - // transaction from the Root origin. - ParentAsSuperuser, - // Native signed account converter; this just converts an `AccountId32` origin into a normal - // `RuntimeOrigin::Signed` origin of the same 32-byte value. - SignedAccountId32AsNative, - // Xcm origins can be represented natively under the Xcm pallet's Xcm origin. - XcmPassthrough, -); - -parameter_types! { - pub const MaxInstructions: u32 = 100; - pub const MaxAssetsIntoHolding: u32 = 64; - pub XcmAssetFeesReceiver: Option = Authorship::author(); -} - -match_types! { - pub type ParentOrParentsPlurality: impl Contains = { - MultiLocation { parents: 1, interior: Here } | - MultiLocation { parents: 1, interior: X1(Plurality { .. }) } - }; - pub type ParentOrSiblings: impl Contains = { - MultiLocation { parents: 1, interior: Here } | - MultiLocation { parents: 1, interior: X1(_) } - }; -} - -/// A call filter for the XCM Transact instruction. This is a temporary measure until we properly -/// account for proof size weights. -/// -/// Calls that are allowed through this filter must: -/// 1. Have a fixed weight; -/// 2. Cannot lead to another call being made; -/// 3. Have a defined proof size weight, e.g. no unbounded vecs in call parameters. -pub struct SafeCallFilter; -impl Contains for SafeCallFilter { - fn contains(call: &RuntimeCall) -> bool { - #[cfg(feature = "runtime-benchmarks")] - { - if matches!(call, RuntimeCall::System(frame_system::Call::remark_with_event { .. })) { - return true - } - } - - matches!( - call, - RuntimeCall::PolkadotXcm(pallet_xcm::Call::force_xcm_version { .. }) | - RuntimeCall::System( - frame_system::Call::set_heap_pages { .. } | - frame_system::Call::set_code { .. } | - frame_system::Call::set_code_without_checks { .. } | - frame_system::Call::kill_prefix { .. }, - ) | RuntimeCall::ParachainSystem(..) | - RuntimeCall::Timestamp(..) | - RuntimeCall::Balances(..) | - RuntimeCall::CollatorSelection( - pallet_collator_selection::Call::set_desired_candidates { .. } | - pallet_collator_selection::Call::set_candidacy_bond { .. } | - pallet_collator_selection::Call::register_as_candidate { .. } | - pallet_collator_selection::Call::leave_intent { .. } | - pallet_collator_selection::Call::set_invulnerables { .. } | - pallet_collator_selection::Call::add_invulnerable { .. } | - pallet_collator_selection::Call::remove_invulnerable { .. }, - ) | RuntimeCall::Session(pallet_session::Call::purge_keys { .. }) | - RuntimeCall::XcmpQueue(..) | - RuntimeCall::DmpQueue(..) | - RuntimeCall::Assets( - pallet_assets::Call::create { .. } | - pallet_assets::Call::force_create { .. } | - pallet_assets::Call::start_destroy { .. } | - pallet_assets::Call::destroy_accounts { .. } | - pallet_assets::Call::destroy_approvals { .. } | - pallet_assets::Call::finish_destroy { .. } | - pallet_assets::Call::block { .. } | - pallet_assets::Call::mint { .. } | - pallet_assets::Call::burn { .. } | - pallet_assets::Call::transfer { .. } | - pallet_assets::Call::transfer_keep_alive { .. } | - pallet_assets::Call::force_transfer { .. } | - pallet_assets::Call::freeze { .. } | - pallet_assets::Call::thaw { .. } | - pallet_assets::Call::freeze_asset { .. } | - pallet_assets::Call::thaw_asset { .. } | - pallet_assets::Call::transfer_ownership { .. } | - pallet_assets::Call::set_team { .. } | - pallet_assets::Call::set_metadata { .. } | - pallet_assets::Call::clear_metadata { .. } | - pallet_assets::Call::force_set_metadata { .. } | - pallet_assets::Call::force_clear_metadata { .. } | - pallet_assets::Call::force_asset_status { .. } | - pallet_assets::Call::approve_transfer { .. } | - pallet_assets::Call::cancel_approval { .. } | - pallet_assets::Call::force_cancel_approval { .. } | - pallet_assets::Call::transfer_approved { .. } | - pallet_assets::Call::touch { .. } | - pallet_assets::Call::touch_other { .. } | - pallet_assets::Call::refund { .. } | - pallet_assets::Call::refund_other { .. }, - ) | RuntimeCall::ForeignAssets( - pallet_assets::Call::create { .. } | - pallet_assets::Call::force_create { .. } | - pallet_assets::Call::start_destroy { .. } | - pallet_assets::Call::destroy_accounts { .. } | - pallet_assets::Call::destroy_approvals { .. } | - pallet_assets::Call::finish_destroy { .. } | - pallet_assets::Call::block { .. } | - pallet_assets::Call::mint { .. } | - pallet_assets::Call::burn { .. } | - pallet_assets::Call::transfer { .. } | - pallet_assets::Call::transfer_keep_alive { .. } | - pallet_assets::Call::force_transfer { .. } | - pallet_assets::Call::freeze { .. } | - pallet_assets::Call::thaw { .. } | - pallet_assets::Call::freeze_asset { .. } | - pallet_assets::Call::thaw_asset { .. } | - pallet_assets::Call::transfer_ownership { .. } | - pallet_assets::Call::set_team { .. } | - pallet_assets::Call::set_metadata { .. } | - pallet_assets::Call::clear_metadata { .. } | - pallet_assets::Call::force_set_metadata { .. } | - pallet_assets::Call::force_clear_metadata { .. } | - pallet_assets::Call::force_asset_status { .. } | - pallet_assets::Call::approve_transfer { .. } | - pallet_assets::Call::cancel_approval { .. } | - pallet_assets::Call::force_cancel_approval { .. } | - pallet_assets::Call::transfer_approved { .. } | - pallet_assets::Call::touch { .. } | - pallet_assets::Call::touch_other { .. } | - pallet_assets::Call::refund { .. } | - pallet_assets::Call::refund_other { .. }, - ) | RuntimeCall::PoolAssets( - pallet_assets::Call::force_create { .. } | - pallet_assets::Call::block { .. } | - pallet_assets::Call::burn { .. } | - pallet_assets::Call::transfer { .. } | - pallet_assets::Call::transfer_keep_alive { .. } | - pallet_assets::Call::force_transfer { .. } | - pallet_assets::Call::freeze { .. } | - pallet_assets::Call::thaw { .. } | - pallet_assets::Call::freeze_asset { .. } | - pallet_assets::Call::thaw_asset { .. } | - pallet_assets::Call::transfer_ownership { .. } | - pallet_assets::Call::set_team { .. } | - pallet_assets::Call::set_metadata { .. } | - pallet_assets::Call::clear_metadata { .. } | - pallet_assets::Call::force_set_metadata { .. } | - pallet_assets::Call::force_clear_metadata { .. } | - pallet_assets::Call::force_asset_status { .. } | - pallet_assets::Call::approve_transfer { .. } | - pallet_assets::Call::cancel_approval { .. } | - pallet_assets::Call::force_cancel_approval { .. } | - pallet_assets::Call::transfer_approved { .. } | - pallet_assets::Call::touch { .. } | - pallet_assets::Call::touch_other { .. } | - pallet_assets::Call::refund { .. } | - pallet_assets::Call::refund_other { .. }, - ) | RuntimeCall::AssetConversion( - pallet_asset_conversion::Call::create_pool { .. } | - pallet_asset_conversion::Call::add_liquidity { .. } | - pallet_asset_conversion::Call::remove_liquidity { .. } | - pallet_asset_conversion::Call::swap_tokens_for_exact_tokens { .. } | - pallet_asset_conversion::Call::swap_exact_tokens_for_tokens { .. }, - ) | RuntimeCall::NftFractionalization( - pallet_nft_fractionalization::Call::fractionalize { .. } | - pallet_nft_fractionalization::Call::unify { .. }, - ) | RuntimeCall::Nfts( - pallet_nfts::Call::create { .. } | - pallet_nfts::Call::force_create { .. } | - pallet_nfts::Call::destroy { .. } | - pallet_nfts::Call::mint { .. } | - pallet_nfts::Call::force_mint { .. } | - pallet_nfts::Call::burn { .. } | - pallet_nfts::Call::transfer { .. } | - pallet_nfts::Call::lock_item_transfer { .. } | - pallet_nfts::Call::unlock_item_transfer { .. } | - pallet_nfts::Call::lock_collection { .. } | - pallet_nfts::Call::transfer_ownership { .. } | - pallet_nfts::Call::set_team { .. } | - pallet_nfts::Call::force_collection_owner { .. } | - pallet_nfts::Call::force_collection_config { .. } | - pallet_nfts::Call::approve_transfer { .. } | - pallet_nfts::Call::cancel_approval { .. } | - pallet_nfts::Call::clear_all_transfer_approvals { .. } | - pallet_nfts::Call::lock_item_properties { .. } | - pallet_nfts::Call::set_attribute { .. } | - pallet_nfts::Call::force_set_attribute { .. } | - pallet_nfts::Call::clear_attribute { .. } | - pallet_nfts::Call::approve_item_attributes { .. } | - pallet_nfts::Call::cancel_item_attributes_approval { .. } | - pallet_nfts::Call::set_metadata { .. } | - pallet_nfts::Call::clear_metadata { .. } | - pallet_nfts::Call::set_collection_metadata { .. } | - pallet_nfts::Call::clear_collection_metadata { .. } | - pallet_nfts::Call::set_accept_ownership { .. } | - pallet_nfts::Call::set_collection_max_supply { .. } | - pallet_nfts::Call::update_mint_settings { .. } | - pallet_nfts::Call::set_price { .. } | - pallet_nfts::Call::buy_item { .. } | - pallet_nfts::Call::pay_tips { .. } | - pallet_nfts::Call::create_swap { .. } | - pallet_nfts::Call::cancel_swap { .. } | - pallet_nfts::Call::claim_swap { .. }, - ) | RuntimeCall::Uniques( - pallet_uniques::Call::create { .. } | - pallet_uniques::Call::force_create { .. } | - pallet_uniques::Call::destroy { .. } | - pallet_uniques::Call::mint { .. } | - pallet_uniques::Call::burn { .. } | - pallet_uniques::Call::transfer { .. } | - pallet_uniques::Call::freeze { .. } | - pallet_uniques::Call::thaw { .. } | - pallet_uniques::Call::freeze_collection { .. } | - pallet_uniques::Call::thaw_collection { .. } | - pallet_uniques::Call::transfer_ownership { .. } | - pallet_uniques::Call::set_team { .. } | - pallet_uniques::Call::approve_transfer { .. } | - pallet_uniques::Call::cancel_approval { .. } | - pallet_uniques::Call::force_item_status { .. } | - pallet_uniques::Call::set_attribute { .. } | - pallet_uniques::Call::clear_attribute { .. } | - pallet_uniques::Call::set_metadata { .. } | - pallet_uniques::Call::clear_metadata { .. } | - pallet_uniques::Call::set_collection_metadata { .. } | - pallet_uniques::Call::clear_collection_metadata { .. } | - pallet_uniques::Call::set_accept_ownership { .. } | - pallet_uniques::Call::set_collection_max_supply { .. } | - pallet_uniques::Call::set_price { .. } | - pallet_uniques::Call::buy_item { .. } - ) - ) - } -} - -pub type Barrier = TrailingSetTopicAsId< - DenyThenTry< - DenyReserveTransferToRelayChain, - ( - TakeWeightCredit, - // Expected responses are OK. - AllowKnownQueryResponses, - // Allow XCMs with some computed origins to pass through. - WithComputedOrigin< - ( - // If the message is one that immediately attemps to pay for execution, then - // allow it. - AllowTopLevelPaidExecutionFrom, - // Parent and its pluralities (i.e. governance bodies) get free execution. - AllowExplicitUnpaidExecutionFrom, - // Subscriptions for version tracking are OK. - AllowSubscriptionsFrom, - ), - UniversalLocation, - ConstU32<8>, - >, - ), - >, ->; - -pub type AssetFeeAsExistentialDepositMultiplierFeeCharger = AssetFeeAsExistentialDepositMultiplier< - Runtime, - WeightToFee, - pallet_assets::BalanceToAssetBalance, - TrustBackedAssetsInstance, ->; - -pub struct XcmConfig; -impl xcm_executor::Config for XcmConfig { - type RuntimeCall = RuntimeCall; - type XcmSender = XcmRouter; - type AssetTransactor = AssetTransactors; - type OriginConverter = XcmOriginToTransactDispatchOrigin; - // Asset Hub Kusama does not recognize a reserve location for any asset. This does not prevent - // Asset Hub acting _as_ a reserve location for KSM and assets created under `pallet-assets`. - // For KSM, users must use teleport where allowed (e.g. with the Relay Chain). - type IsReserve = (); - // We allow: - // - teleportation of KSM - // - teleportation of sibling parachain's assets (as ForeignCreators) - type IsTeleporter = ( - NativeAsset, - IsForeignConcreteAsset>>, - ); - type UniversalLocation = UniversalLocation; - type Barrier = Barrier; - type Weigher = WeightInfoBounds< - crate::weights::xcm::AssetHubKusamaXcmWeight, - RuntimeCall, - MaxInstructions, - >; - type Trader = ( - UsingComponents>, - cumulus_primitives_utility::TakeFirstAssetTrader< - AccountId, - AssetFeeAsExistentialDepositMultiplierFeeCharger, - TrustBackedAssetsConvertedConcreteId, - Assets, - cumulus_primitives_utility::XcmFeesTo32ByteAccount< - FungiblesTransactor, - AccountId, - XcmAssetFeesReceiver, - >, - >, - ); - type ResponseHandler = PolkadotXcm; - type AssetTrap = PolkadotXcm; - type AssetClaims = PolkadotXcm; - type SubscriptionService = PolkadotXcm; - type PalletInstancesInfo = AllPalletsWithSystem; - type MaxAssetsIntoHolding = MaxAssetsIntoHolding; - type AssetLocker = (); - type AssetExchanger = (); - type FeeManager = (); - type MessageExporter = (); - type UniversalAliases = Nothing; - type CallDispatcher = WithOriginFilter; - type SafeCallFilter = SafeCallFilter; - type Aliasers = Nothing; -} - -/// Converts a local signed origin into an XCM multilocation. -/// Forms the basis for local origins sending/executing XCMs. -pub type LocalOriginToLocation = SignedToAccountId32; - -/// The means for routing XCM messages which are not for local execution into the right message -/// queues. -pub type XcmRouter = WithUniqueTopic<( - // Two routers - use UMP to communicate with the relay chain: - cumulus_primitives_utility::ParentAsUmp, - // ..and XCMP to communicate with the sibling chains. - XcmpQueue, -)>; - -#[cfg(feature = "runtime-benchmarks")] -parameter_types! { - pub ReachableDest: Option = Some(Parent.into()); -} - -impl pallet_xcm::Config for Runtime { - type RuntimeEvent = RuntimeEvent; - // We want to disallow users sending (arbitrary) XCMs from this chain. - type SendXcmOrigin = EnsureXcmOrigin; - type XcmRouter = XcmRouter; - // We support local origins dispatching XCM executions in principle... - type ExecuteXcmOrigin = EnsureXcmOrigin; - // ... but disallow generic XCM execution. As a result only teleports and reserve transfers are - // allowed. - type XcmExecuteFilter = Nothing; - type XcmExecutor = XcmExecutor; - type XcmTeleportFilter = Everything; - type XcmReserveTransferFilter = Everything; - type Weigher = WeightInfoBounds< - crate::weights::xcm::AssetHubKusamaXcmWeight, - RuntimeCall, - MaxInstructions, - >; - type UniversalLocation = UniversalLocation; - type RuntimeOrigin = RuntimeOrigin; - type RuntimeCall = RuntimeCall; - const VERSION_DISCOVERY_QUEUE_SIZE: u32 = 100; - type AdvertisedXcmVersion = pallet_xcm::CurrentXcmVersion; - type Currency = Balances; - type CurrencyMatcher = (); - type TrustedLockers = (); - type SovereignAccountOf = LocationToAccountId; - type MaxLockers = ConstU32<8>; - type WeightInfo = crate::weights::pallet_xcm::WeightInfo; - #[cfg(feature = "runtime-benchmarks")] - type ReachableDest = ReachableDest; - type AdminOrigin = EnsureRoot; - type MaxRemoteLockConsumers = ConstU32<0>; - type RemoteLockConsumerIdentifier = (); -} - -impl cumulus_pallet_xcm::Config for Runtime { - type RuntimeEvent = RuntimeEvent; - type XcmExecutor = XcmExecutor; -} - -pub type ForeignCreatorsSovereignAccountOf = ( - SiblingParachainConvertsVia, - AccountId32Aliases, - ParentIsPreset, -); - -/// Simple conversion of `u32` into an `AssetId` for use in benchmarking. -pub struct XcmBenchmarkHelper; -#[cfg(feature = "runtime-benchmarks")] -impl pallet_assets::BenchmarkHelper for XcmBenchmarkHelper { - fn create_asset_id_parameter(id: u32) -> MultiLocation { - MultiLocation { parents: 1, interior: X1(Parachain(id)) } - } -} - -#[cfg(feature = "runtime-benchmarks")] -pub struct BenchmarkMultiLocationConverter { - _phantom: sp_std::marker::PhantomData, -} - -#[cfg(feature = "runtime-benchmarks")] -impl - pallet_asset_conversion::BenchmarkHelper> - for BenchmarkMultiLocationConverter -where - SelfParaId: Get, -{ - fn asset_id(asset_id: u32) -> MultiLocation { - MultiLocation { - parents: 1, - interior: X3( - Parachain(SelfParaId::get().into()), - PalletInstance(::index() as u8), - GeneralIndex(asset_id.into()), - ), - } - } - fn multiasset_id(asset_id: u32) -> sp_std::boxed::Box { - sp_std::boxed::Box::new(Self::asset_id(asset_id)) - } -} diff --git a/cumulus/parachains/runtimes/assets/asset-hub-kusama/tests/tests.rs b/cumulus/parachains/runtimes/assets/asset-hub-kusama/tests/tests.rs deleted file mode 100644 index 7d49b56e461a..000000000000 --- a/cumulus/parachains/runtimes/assets/asset-hub-kusama/tests/tests.rs +++ /dev/null @@ -1,634 +0,0 @@ -// This file is part of Cumulus. - -// 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. - -//! Tests for the Statemine (Kusama Assets Hub) chain. - -use asset_hub_kusama_runtime::xcm_config::{ - AssetFeeAsExistentialDepositMultiplierFeeCharger, KsmLocation, TrustBackedAssetsPalletLocation, -}; -pub use asset_hub_kusama_runtime::{ - xcm_config::{CheckingAccount, ForeignCreatorsSovereignAccountOf, XcmConfig}, - AllPalletsWithoutSystem, AssetDeposit, Assets, Balances, ExistentialDeposit, ForeignAssets, - ForeignAssetsInstance, MetadataDepositBase, MetadataDepositPerByte, ParachainSystem, Runtime, - RuntimeCall, RuntimeEvent, SessionKeys, System, TrustBackedAssetsInstance, -}; -use asset_test_utils::{CollatorSessionKeys, ExtBuilder}; -use codec::{Decode, Encode}; -use cumulus_primitives_utility::ChargeWeightInFungibles; -use frame_support::{ - assert_noop, assert_ok, - traits::fungibles::InspectEnumerable, - weights::{Weight, WeightToFee as WeightToFeeT}, -}; -use parachains_common::{ - kusama::fee::WeightToFee, AccountId, AssetIdForTrustBackedAssets, AuraId, Balance, -}; -use sp_runtime::traits::MaybeEquivalence; -use xcm::latest::prelude::*; -use xcm_executor::traits::{Identity, JustTry, WeightTrader}; - -const ALICE: [u8; 32] = [1u8; 32]; -const SOME_ASSET_ADMIN: [u8; 32] = [5u8; 32]; - -type AssetIdForTrustBackedAssetsConvert = - assets_common::AssetIdForTrustBackedAssetsConvert; - -type RuntimeHelper = asset_test_utils::RuntimeHelper; - -fn collator_session_keys() -> CollatorSessionKeys { - CollatorSessionKeys::new( - AccountId::from(ALICE), - AccountId::from(ALICE), - SessionKeys { aura: AuraId::from(sp_core::sr25519::Public::from_raw(ALICE)) }, - ) -} - -#[test] -fn test_asset_xcm_trader() { - ExtBuilder::::default() - .with_collators(vec![AccountId::from(ALICE)]) - .with_session_keys(vec![( - AccountId::from(ALICE), - AccountId::from(ALICE), - SessionKeys { aura: AuraId::from(sp_core::sr25519::Public::from_raw(ALICE)) }, - )]) - .build() - .execute_with(|| { - // We need root origin to create a sufficient asset - let minimum_asset_balance = 3333333_u128; - let local_asset_id = 1; - assert_ok!(Assets::force_create( - RuntimeHelper::root_origin(), - local_asset_id.into(), - AccountId::from(ALICE).into(), - true, - minimum_asset_balance - )); - - // We first mint enough asset for the account to exist for assets - assert_ok!(Assets::mint( - RuntimeHelper::origin_of(AccountId::from(ALICE)), - local_asset_id.into(), - AccountId::from(ALICE).into(), - minimum_asset_balance - )); - - // get asset id as multilocation - let asset_multilocation = - AssetIdForTrustBackedAssetsConvert::convert_back(&local_asset_id).unwrap(); - - // Set Alice as block author, who will receive fees - RuntimeHelper::run_to_block(2, AccountId::from(ALICE)); - - // We are going to buy 4e9 weight - let bought = Weight::from_parts(4_000_000_000u64, 0); - - // Lets calculate amount needed - let asset_amount_needed = - AssetFeeAsExistentialDepositMultiplierFeeCharger::charge_weight_in_fungibles( - local_asset_id, - bought, - ) - .expect("failed to compute"); - - // Lets pay with: asset_amount_needed + asset_amount_extra - let asset_amount_extra = 100_u128; - let asset: MultiAsset = - (asset_multilocation, asset_amount_needed + asset_amount_extra).into(); - - let mut trader = ::Trader::new(); - let ctx = XcmContext { origin: None, message_id: XcmHash::default(), topic: None }; - - // Lets buy_weight and make sure buy_weight does not return an error - let unused_assets = trader.buy_weight(bought, asset.into(), &ctx).expect("Expected Ok"); - // Check whether a correct amount of unused assets is returned - assert_ok!( - unused_assets.ensure_contains(&(asset_multilocation, asset_amount_extra).into()) - ); - - // Drop trader - drop(trader); - - // Make sure author(Alice) has received the amount - assert_eq!( - Assets::balance(local_asset_id, AccountId::from(ALICE)), - minimum_asset_balance + asset_amount_needed - ); - - // We also need to ensure the total supply increased - assert_eq!( - Assets::total_supply(local_asset_id), - minimum_asset_balance + asset_amount_needed - ); - }); -} - -#[test] -fn test_asset_xcm_trader_with_refund() { - ExtBuilder::::default() - .with_collators(vec![AccountId::from(ALICE)]) - .with_session_keys(vec![( - AccountId::from(ALICE), - AccountId::from(ALICE), - SessionKeys { aura: AuraId::from(sp_core::sr25519::Public::from_raw(ALICE)) }, - )]) - .build() - .execute_with(|| { - // We need root origin to create a sufficient asset - // We set existential deposit to be identical to the one for Balances first - assert_ok!(Assets::force_create( - RuntimeHelper::root_origin(), - 1.into(), - AccountId::from(ALICE).into(), - true, - ExistentialDeposit::get() - )); - - // We first mint enough asset for the account to exist for assets - assert_ok!(Assets::mint( - RuntimeHelper::origin_of(AccountId::from(ALICE)), - 1.into(), - AccountId::from(ALICE).into(), - ExistentialDeposit::get() - )); - - let mut trader = ::Trader::new(); - let ctx = XcmContext { origin: None, message_id: XcmHash::default(), topic: None }; - - // Set Alice as block author, who will receive fees - RuntimeHelper::run_to_block(2, AccountId::from(ALICE)); - - // We are going to buy 4e9 weight - let bought = Weight::from_parts(4_000_000_000u64, 0); - - let asset_multilocation = AssetIdForTrustBackedAssetsConvert::convert_back(&1).unwrap(); - - // lets calculate amount needed - let amount_bought = WeightToFee::weight_to_fee(&bought); - - let asset: MultiAsset = (asset_multilocation, amount_bought).into(); - - // Make sure buy_weight does not return an error - assert_ok!(trader.buy_weight(bought, asset.clone().into(), &ctx)); - - // Make sure again buy_weight does return an error - // This assert relies on the fact, that we use `TakeFirstAssetTrader` in `WeightTrader` - // tuple chain, which cannot be called twice - assert_noop!(trader.buy_weight(bought, asset.into(), &ctx), XcmError::TooExpensive); - - // We actually use half of the weight - let weight_used = bought / 2; - - // Make sure refurnd works. - let amount_refunded = WeightToFee::weight_to_fee(&(bought - weight_used)); - - assert_eq!( - trader.refund_weight(bought - weight_used, &ctx), - Some((asset_multilocation, amount_refunded).into()) - ); - - // Drop trader - drop(trader); - - // We only should have paid for half of the bought weight - let fees_paid = WeightToFee::weight_to_fee(&weight_used); - - assert_eq!( - Assets::balance(1, AccountId::from(ALICE)), - ExistentialDeposit::get() + fees_paid - ); - - // We also need to ensure the total supply increased - assert_eq!(Assets::total_supply(1), ExistentialDeposit::get() + fees_paid); - }); -} - -#[test] -fn test_asset_xcm_trader_refund_not_possible_since_amount_less_than_ed() { - ExtBuilder::::default() - .with_collators(vec![AccountId::from(ALICE)]) - .with_session_keys(vec![( - AccountId::from(ALICE), - AccountId::from(ALICE), - SessionKeys { aura: AuraId::from(sp_core::sr25519::Public::from_raw(ALICE)) }, - )]) - .build() - .execute_with(|| { - // We need root origin to create a sufficient asset - // We set existential deposit to be identical to the one for Balances first - assert_ok!(Assets::force_create( - RuntimeHelper::root_origin(), - 1.into(), - AccountId::from(ALICE).into(), - true, - ExistentialDeposit::get() - )); - - let mut trader = ::Trader::new(); - let ctx = XcmContext { origin: None, message_id: XcmHash::default(), topic: None }; - - // Set Alice as block author, who will receive fees - RuntimeHelper::run_to_block(2, AccountId::from(ALICE)); - - // We are going to buy small amount - let bought = Weight::from_parts(500_000_000u64, 0); - - let asset_multilocation = AssetIdForTrustBackedAssetsConvert::convert_back(&1).unwrap(); - - let amount_bought = WeightToFee::weight_to_fee(&bought); - - assert!( - amount_bought < ExistentialDeposit::get(), - "we are testing what happens when the amount does not exceed ED" - ); - - let asset: MultiAsset = (asset_multilocation, amount_bought).into(); - - // Buy weight should return an error - assert_noop!(trader.buy_weight(bought, asset.into(), &ctx), XcmError::TooExpensive); - - // not credited since the ED is higher than this value - assert_eq!(Assets::balance(1, AccountId::from(ALICE)), 0); - - // We also need to ensure the total supply did not increase - assert_eq!(Assets::total_supply(1), 0); - }); -} - -#[test] -fn test_that_buying_ed_refund_does_not_refund() { - ExtBuilder::::default() - .with_collators(vec![AccountId::from(ALICE)]) - .with_session_keys(vec![( - AccountId::from(ALICE), - AccountId::from(ALICE), - SessionKeys { aura: AuraId::from(sp_core::sr25519::Public::from_raw(ALICE)) }, - )]) - .build() - .execute_with(|| { - // We need root origin to create a sufficient asset - // We set existential deposit to be identical to the one for Balances first - assert_ok!(Assets::force_create( - RuntimeHelper::root_origin(), - 1.into(), - AccountId::from(ALICE).into(), - true, - ExistentialDeposit::get() - )); - - let mut trader = ::Trader::new(); - let ctx = XcmContext { origin: None, message_id: XcmHash::default(), topic: None }; - - // Set Alice as block author, who will receive fees - RuntimeHelper::run_to_block(2, AccountId::from(ALICE)); - - // We are gonna buy ED - let bought = Weight::from_parts(ExistentialDeposit::get().try_into().unwrap(), 0); - - let asset_multilocation = AssetIdForTrustBackedAssetsConvert::convert_back(&1).unwrap(); - - let amount_bought = WeightToFee::weight_to_fee(&bought); - - assert!( - amount_bought < ExistentialDeposit::get(), - "we are testing what happens when the amount does not exceed ED" - ); - - // We know we will have to buy at least ED, so lets make sure first it will - // fail with a payment of less than ED - let asset: MultiAsset = (asset_multilocation, amount_bought).into(); - assert_noop!(trader.buy_weight(bought, asset.into(), &ctx), XcmError::TooExpensive); - - // Now lets buy ED at least - let asset: MultiAsset = (asset_multilocation, ExistentialDeposit::get()).into(); - - // Buy weight should work - assert_ok!(trader.buy_weight(bought, asset.into(), &ctx)); - - // Should return None. We have a specific check making sure we dont go below ED for - // drop payment - assert_eq!(trader.refund_weight(bought, &ctx), None); - - // Drop trader - drop(trader); - - // Make sure author(Alice) has received the amount - assert_eq!(Assets::balance(1, AccountId::from(ALICE)), ExistentialDeposit::get()); - - // We also need to ensure the total supply increased - assert_eq!(Assets::total_supply(1), ExistentialDeposit::get()); - }); -} - -#[test] -fn test_asset_xcm_trader_not_possible_for_non_sufficient_assets() { - ExtBuilder::::default() - .with_collators(vec![AccountId::from(ALICE)]) - .with_session_keys(vec![( - AccountId::from(ALICE), - AccountId::from(ALICE), - SessionKeys { aura: AuraId::from(sp_core::sr25519::Public::from_raw(ALICE)) }, - )]) - .build() - .execute_with(|| { - // Create a non-sufficient asset with specific existential deposit - let minimum_asset_balance = 1_000_000_u128; - assert_ok!(Assets::force_create( - RuntimeHelper::root_origin(), - 1.into(), - AccountId::from(ALICE).into(), - false, - minimum_asset_balance - )); - - // We first mint enough asset for the account to exist for assets - assert_ok!(Assets::mint( - RuntimeHelper::origin_of(AccountId::from(ALICE)), - 1.into(), - AccountId::from(ALICE).into(), - minimum_asset_balance - )); - - let mut trader = ::Trader::new(); - let ctx = XcmContext { origin: None, message_id: XcmHash::default(), topic: None }; - - // Set Alice as block author, who will receive fees - RuntimeHelper::run_to_block(2, AccountId::from(ALICE)); - - // We are going to buy 4e9 weight - let bought = Weight::from_parts(4_000_000_000u64, 0); - - // lets calculate amount needed - let asset_amount_needed = WeightToFee::weight_to_fee(&bought); - - let asset_multilocation = AssetIdForTrustBackedAssetsConvert::convert_back(&1).unwrap(); - - let asset: MultiAsset = (asset_multilocation, asset_amount_needed).into(); - - // Make sure again buy_weight does return an error - assert_noop!(trader.buy_weight(bought, asset.into(), &ctx), XcmError::TooExpensive); - - // Drop trader - drop(trader); - - // Make sure author(Alice) has NOT received the amount - assert_eq!(Assets::balance(1, AccountId::from(ALICE)), minimum_asset_balance); - - // We also need to ensure the total supply NOT increased - assert_eq!(Assets::total_supply(1), minimum_asset_balance); - }); -} - -#[test] -fn test_assets_balances_api_works() { - use assets_common::runtime_api::runtime_decl_for_fungibles_api::FungiblesApi; - - ExtBuilder::::default() - .with_collators(vec![AccountId::from(ALICE)]) - .with_session_keys(vec![( - AccountId::from(ALICE), - AccountId::from(ALICE), - SessionKeys { aura: AuraId::from(sp_core::sr25519::Public::from_raw(ALICE)) }, - )]) - .build() - .execute_with(|| { - let local_asset_id = 1; - let foreign_asset_id_multilocation = - MultiLocation { parents: 1, interior: X2(Parachain(1234), GeneralIndex(12345)) }; - - // check before - assert_eq!(Assets::balance(local_asset_id, AccountId::from(ALICE)), 0); - assert_eq!( - ForeignAssets::balance(foreign_asset_id_multilocation, AccountId::from(ALICE)), - 0 - ); - assert_eq!(Balances::free_balance(AccountId::from(ALICE)), 0); - assert!(Runtime::query_account_balances(AccountId::from(ALICE)) - .unwrap() - .try_as::() - .unwrap() - .is_none()); - - // Drip some balance - use frame_support::traits::fungible::Mutate; - let some_currency = ExistentialDeposit::get(); - Balances::mint_into(&AccountId::from(ALICE), some_currency).unwrap(); - - // We need root origin to create a sufficient asset - let minimum_asset_balance = 3333333_u128; - assert_ok!(Assets::force_create( - RuntimeHelper::root_origin(), - local_asset_id.into(), - AccountId::from(ALICE).into(), - true, - minimum_asset_balance - )); - - // We first mint enough asset for the account to exist for assets - assert_ok!(Assets::mint( - RuntimeHelper::origin_of(AccountId::from(ALICE)), - local_asset_id.into(), - AccountId::from(ALICE).into(), - minimum_asset_balance - )); - - // create foreign asset - let foreign_asset_minimum_asset_balance = 3333333_u128; - assert_ok!(ForeignAssets::force_create( - RuntimeHelper::root_origin(), - foreign_asset_id_multilocation, - AccountId::from(SOME_ASSET_ADMIN).into(), - false, - foreign_asset_minimum_asset_balance - )); - - // We first mint enough asset for the account to exist for assets - assert_ok!(ForeignAssets::mint( - RuntimeHelper::origin_of(AccountId::from(SOME_ASSET_ADMIN)), - foreign_asset_id_multilocation, - AccountId::from(ALICE).into(), - 6 * foreign_asset_minimum_asset_balance - )); - - // check after - assert_eq!( - Assets::balance(local_asset_id, AccountId::from(ALICE)), - minimum_asset_balance - ); - assert_eq!( - ForeignAssets::balance(foreign_asset_id_multilocation, AccountId::from(ALICE)), - 6 * minimum_asset_balance - ); - assert_eq!(Balances::free_balance(AccountId::from(ALICE)), some_currency); - - let result: MultiAssets = Runtime::query_account_balances(AccountId::from(ALICE)) - .unwrap() - .try_into() - .unwrap(); - assert_eq!(result.len(), 3); - - // check currency - assert!(result.inner().iter().any(|asset| asset.eq( - &assets_common::fungible_conversion::convert_balance::( - some_currency - ) - .unwrap() - ))); - // check trusted asset - assert!(result.inner().iter().any(|asset| asset.eq(&( - AssetIdForTrustBackedAssetsConvert::convert_back(&local_asset_id).unwrap(), - minimum_asset_balance - ) - .into()))); - // check foreign asset - assert!(result.inner().iter().any(|asset| asset.eq(&( - Identity::convert_back(&foreign_asset_id_multilocation).unwrap(), - 6 * foreign_asset_minimum_asset_balance - ) - .into()))); - }); -} - -asset_test_utils::include_teleports_for_native_asset_works!( - Runtime, - AllPalletsWithoutSystem, - XcmConfig, - CheckingAccount, - WeightToFee, - ParachainSystem, - collator_session_keys(), - ExistentialDeposit::get(), - Box::new(|runtime_event_encoded: Vec| { - match RuntimeEvent::decode(&mut &runtime_event_encoded[..]) { - Ok(RuntimeEvent::PolkadotXcm(event)) => Some(event), - _ => None, - } - }), - Box::new(|runtime_event_encoded: Vec| { - match RuntimeEvent::decode(&mut &runtime_event_encoded[..]) { - Ok(RuntimeEvent::XcmpQueue(event)) => Some(event), - _ => None, - } - }), - 1000 -); - -asset_test_utils::include_teleports_for_foreign_assets_works!( - Runtime, - AllPalletsWithoutSystem, - XcmConfig, - CheckingAccount, - WeightToFee, - ParachainSystem, - ForeignCreatorsSovereignAccountOf, - ForeignAssetsInstance, - collator_session_keys(), - ExistentialDeposit::get(), - Box::new(|runtime_event_encoded: Vec| { - match RuntimeEvent::decode(&mut &runtime_event_encoded[..]) { - Ok(RuntimeEvent::PolkadotXcm(event)) => Some(event), - _ => None, - } - }), - Box::new(|runtime_event_encoded: Vec| { - match RuntimeEvent::decode(&mut &runtime_event_encoded[..]) { - Ok(RuntimeEvent::XcmpQueue(event)) => Some(event), - _ => None, - } - }) -); - -asset_test_utils::include_asset_transactor_transfer_with_local_consensus_currency_works!( - Runtime, - XcmConfig, - collator_session_keys(), - ExistentialDeposit::get(), - Box::new(|| { - assert!(Assets::asset_ids().collect::>().is_empty()); - assert!(ForeignAssets::asset_ids().collect::>().is_empty()); - }), - Box::new(|| { - assert!(Assets::asset_ids().collect::>().is_empty()); - assert!(ForeignAssets::asset_ids().collect::>().is_empty()); - }) -); - -asset_test_utils::include_asset_transactor_transfer_with_pallet_assets_instance_works!( - asset_transactor_transfer_with_trust_backed_assets_works, - Runtime, - XcmConfig, - TrustBackedAssetsInstance, - AssetIdForTrustBackedAssets, - AssetIdForTrustBackedAssetsConvert, - collator_session_keys(), - ExistentialDeposit::get(), - 12345, - Box::new(|| { - assert!(ForeignAssets::asset_ids().collect::>().is_empty()); - }), - Box::new(|| { - assert!(ForeignAssets::asset_ids().collect::>().is_empty()); - }) -); - -asset_test_utils::include_asset_transactor_transfer_with_pallet_assets_instance_works!( - asset_transactor_transfer_with_foreign_assets_works, - Runtime, - XcmConfig, - ForeignAssetsInstance, - MultiLocation, - JustTry, - collator_session_keys(), - ExistentialDeposit::get(), - MultiLocation { parents: 1, interior: X2(Parachain(1313), GeneralIndex(12345)) }, - Box::new(|| { - assert!(Assets::asset_ids().collect::>().is_empty()); - }), - Box::new(|| { - assert!(Assets::asset_ids().collect::>().is_empty()); - }) -); - -asset_test_utils::include_create_and_manage_foreign_assets_for_local_consensus_parachain_assets_works!( - Runtime, - XcmConfig, - WeightToFee, - ForeignCreatorsSovereignAccountOf, - ForeignAssetsInstance, - MultiLocation, - JustTry, - collator_session_keys(), - ExistentialDeposit::get(), - AssetDeposit::get(), - MetadataDepositBase::get(), - MetadataDepositPerByte::get(), - Box::new(|pallet_asset_call| RuntimeCall::ForeignAssets(pallet_asset_call).encode()), - Box::new(|runtime_event_encoded: Vec| { - match RuntimeEvent::decode(&mut &runtime_event_encoded[..]) { - Ok(RuntimeEvent::ForeignAssets(pallet_asset_event)) => Some(pallet_asset_event), - _ => None, - } - }), - Box::new(|| { - assert!(Assets::asset_ids().collect::>().is_empty()); - assert!(ForeignAssets::asset_ids().collect::>().is_empty()); - }), - Box::new(|| { - assert!(Assets::asset_ids().collect::>().is_empty()); - assert_eq!(ForeignAssets::asset_ids().collect::>().len(), 1); - }) -); diff --git a/cumulus/parachains/runtimes/assets/asset-hub-polkadot/Cargo.toml b/cumulus/parachains/runtimes/assets/asset-hub-polkadot/Cargo.toml deleted file mode 100644 index df38e4d9d64a..000000000000 --- a/cumulus/parachains/runtimes/assets/asset-hub-polkadot/Cargo.toml +++ /dev/null @@ -1,208 +0,0 @@ -[package] -name = "asset-hub-polkadot-runtime" -version = "0.9.420" -authors.workspace = true -edition.workspace = true -description = "Asset Hub Polkadot parachain runtime" - -[dependencies] -codec = { package = "parity-scale-codec", version = "3.0.0", default-features = false, features = ["derive", "max-encoded-len"] } -hex-literal = { version = "0.4.1", optional = true } -log = { version = "0.4.20", default-features = false } -scale-info = { version = "2.9.0", default-features = false, features = ["derive"] } -smallvec = "1.11.0" - -# Substrate -frame-benchmarking = { path = "../../../../../substrate/frame/benchmarking", default-features = false, optional = true} -frame-executive = { path = "../../../../../substrate/frame/executive", default-features = false} -frame-support = { path = "../../../../../substrate/frame/support", default-features = false} -frame-system = { path = "../../../../../substrate/frame/system", default-features = false} -frame-system-benchmarking = { path = "../../../../../substrate/frame/system/benchmarking", default-features = false, optional = true} -frame-system-rpc-runtime-api = { path = "../../../../../substrate/frame/system/rpc/runtime-api", default-features = false} -frame-try-runtime = { path = "../../../../../substrate/frame/try-runtime", default-features = false, optional = true} -pallet-asset-tx-payment = { path = "../../../../../substrate/frame/transaction-payment/asset-tx-payment", default-features = false } -pallet-assets = { path = "../../../../../substrate/frame/assets", default-features = false} -pallet-aura = { path = "../../../../../substrate/frame/aura", default-features = false} -pallet-authorship = { path = "../../../../../substrate/frame/authorship", default-features = false} -pallet-balances = { path = "../../../../../substrate/frame/balances", default-features = false} -pallet-multisig = { path = "../../../../../substrate/frame/multisig", default-features = false} -pallet-nfts = { path = "../../../../../substrate/frame/nfts", default-features = false} -pallet-nfts-runtime-api = { path = "../../../../../substrate/frame/nfts/runtime-api", default-features = false} -pallet-proxy = { path = "../../../../../substrate/frame/proxy", default-features = false} -pallet-session = { path = "../../../../../substrate/frame/session", default-features = false} -pallet-timestamp = { path = "../../../../../substrate/frame/timestamp", default-features = false} -pallet-transaction-payment = { path = "../../../../../substrate/frame/transaction-payment", default-features = false} -pallet-transaction-payment-rpc-runtime-api = { path = "../../../../../substrate/frame/transaction-payment/rpc/runtime-api", default-features = false} -pallet-uniques = { path = "../../../../../substrate/frame/uniques", default-features = false} -pallet-utility = { path = "../../../../../substrate/frame/utility", default-features = false} -sp-api = { path = "../../../../../substrate/primitives/api", default-features = false} -sp-block-builder = { path = "../../../../../substrate/primitives/block-builder", default-features = false} -sp-consensus-aura = { path = "../../../../../substrate/primitives/consensus/aura", default-features = false} -sp-core = { path = "../../../../../substrate/primitives/core", default-features = false} -sp-genesis-builder = { path = "../../../../../substrate/primitives/genesis-builder", default-features = false } -sp-inherents = { path = "../../../../../substrate/primitives/inherents", default-features = false} -sp-offchain = { path = "../../../../../substrate/primitives/offchain", default-features = false} -sp-runtime = { path = "../../../../../substrate/primitives/runtime", default-features = false} -sp-session = { path = "../../../../../substrate/primitives/session", default-features = false} -sp-std = { path = "../../../../../substrate/primitives/std", default-features = false} -sp-storage = { path = "../../../../../substrate/primitives/storage", default-features = false} -sp-transaction-pool = { path = "../../../../../substrate/primitives/transaction-pool", default-features = false} -sp-version = { path = "../../../../../substrate/primitives/version", default-features = false} -sp-weights = { path = "../../../../../substrate/primitives/weights", default-features = false} - -# Polkadot -pallet-xcm = { path = "../../../../../polkadot/xcm/pallet-xcm", default-features = false} -pallet-xcm-benchmarks = { path = "../../../../../polkadot/xcm/pallet-xcm-benchmarks", default-features = false, optional = true } -polkadot-core-primitives = { path = "../../../../../polkadot/core-primitives", default-features = false} -polkadot-parachain-primitives = { path = "../../../../../polkadot/parachain", default-features = false} -polkadot-runtime-common = { path = "../../../../../polkadot/runtime/common", default-features = false} -xcm = { package = "staging-xcm", path = "../../../../../polkadot/xcm", default-features = false} -xcm-builder = { package = "staging-xcm-builder", path = "../../../../../polkadot/xcm/xcm-builder", default-features = false} -xcm-executor = { package = "staging-xcm-executor", path = "../../../../../polkadot/xcm/xcm-executor", default-features = false} - -# Cumulus -cumulus-pallet-aura-ext = { path = "../../../../pallets/aura-ext", default-features = false } -cumulus-pallet-dmp-queue = { path = "../../../../pallets/dmp-queue", default-features = false } -cumulus-pallet-parachain-system = { path = "../../../../pallets/parachain-system", default-features = false, features = ["parameterized-consensus-hook",] } -cumulus-pallet-session-benchmarking = { path = "../../../../pallets/session-benchmarking", default-features = false} -cumulus-pallet-xcm = { path = "../../../../pallets/xcm", default-features = false } -cumulus-pallet-xcmp-queue = { path = "../../../../pallets/xcmp-queue", default-features = false } -cumulus-primitives-core = { path = "../../../../primitives/core", default-features = false } -cumulus-primitives-utility = { path = "../../../../primitives/utility", default-features = false } -pallet-collator-selection = { path = "../../../../pallets/collator-selection", default-features = false } -parachain-info = { path = "../../../pallets/parachain-info", default-features = false } -parachains-common = { path = "../../../common", default-features = false } -assets-common = { path = "../common", default-features = false } - -[dev-dependencies] -hex-literal = "0.4.1" -asset-test-utils = { path = "../test-utils" } - -[build-dependencies] -substrate-wasm-builder = { path = "../../../../../substrate/utils/wasm-builder", optional = true } - -[features] -default = [ "std" ] -runtime-benchmarks = [ - "assets-common/runtime-benchmarks", - "cumulus-pallet-parachain-system/runtime-benchmarks", - "cumulus-pallet-session-benchmarking/runtime-benchmarks", - "cumulus-pallet-xcmp-queue/runtime-benchmarks", - "cumulus-primitives-utility/runtime-benchmarks", - "frame-benchmarking/runtime-benchmarks", - "frame-support/runtime-benchmarks", - "frame-system-benchmarking/runtime-benchmarks", - "frame-system/runtime-benchmarks", - "hex-literal", - "pallet-asset-tx-payment/runtime-benchmarks", - "pallet-assets/runtime-benchmarks", - "pallet-balances/runtime-benchmarks", - "pallet-collator-selection/runtime-benchmarks", - "pallet-multisig/runtime-benchmarks", - "pallet-nfts/runtime-benchmarks", - "pallet-proxy/runtime-benchmarks", - "pallet-timestamp/runtime-benchmarks", - "pallet-uniques/runtime-benchmarks", - "pallet-utility/runtime-benchmarks", - "pallet-xcm-benchmarks/runtime-benchmarks", - "pallet-xcm/runtime-benchmarks", - "parachains-common/runtime-benchmarks", - "polkadot-parachain-primitives/runtime-benchmarks", - "polkadot-runtime-common/runtime-benchmarks", - "sp-runtime/runtime-benchmarks", - "xcm-builder/runtime-benchmarks", - "xcm-executor/runtime-benchmarks", -] -try-runtime = [ - "cumulus-pallet-aura-ext/try-runtime", - "cumulus-pallet-dmp-queue/try-runtime", - "cumulus-pallet-parachain-system/try-runtime", - "cumulus-pallet-xcm/try-runtime", - "cumulus-pallet-xcmp-queue/try-runtime", - "frame-executive/try-runtime", - "frame-support/try-runtime", - "frame-system/try-runtime", - "frame-try-runtime/try-runtime", - "pallet-asset-tx-payment/try-runtime", - "pallet-assets/try-runtime", - "pallet-aura/try-runtime", - "pallet-authorship/try-runtime", - "pallet-balances/try-runtime", - "pallet-collator-selection/try-runtime", - "pallet-multisig/try-runtime", - "pallet-nfts/try-runtime", - "pallet-proxy/try-runtime", - "pallet-session/try-runtime", - "pallet-timestamp/try-runtime", - "pallet-transaction-payment/try-runtime", - "pallet-uniques/try-runtime", - "pallet-utility/try-runtime", - "pallet-xcm/try-runtime", - "parachain-info/try-runtime", - "polkadot-runtime-common/try-runtime", - "sp-runtime/try-runtime", -] -std = [ - "assets-common/std", - "codec/std", - "cumulus-pallet-aura-ext/std", - "cumulus-pallet-dmp-queue/std", - "cumulus-pallet-parachain-system/std", - "cumulus-pallet-session-benchmarking/std", - "cumulus-pallet-xcm/std", - "cumulus-pallet-xcmp-queue/std", - "cumulus-primitives-core/std", - "cumulus-primitives-utility/std", - "frame-benchmarking?/std", - "frame-executive/std", - "frame-support/std", - "frame-system-benchmarking?/std", - "frame-system-rpc-runtime-api/std", - "frame-system/std", - "frame-try-runtime?/std", - "log/std", - "pallet-asset-tx-payment/std", - "pallet-assets/std", - "pallet-aura/std", - "pallet-authorship/std", - "pallet-balances/std", - "pallet-collator-selection/std", - "pallet-multisig/std", - "pallet-nfts-runtime-api/std", - "pallet-nfts/std", - "pallet-proxy/std", - "pallet-session/std", - "pallet-timestamp/std", - "pallet-transaction-payment-rpc-runtime-api/std", - "pallet-transaction-payment/std", - "pallet-uniques/std", - "pallet-utility/std", - "pallet-xcm-benchmarks?/std", - "pallet-xcm/std", - "parachain-info/std", - "parachains-common/std", - "polkadot-core-primitives/std", - "polkadot-parachain-primitives/std", - "polkadot-runtime-common/std", - "scale-info/std", - "sp-api/std", - "sp-block-builder/std", - "sp-consensus-aura/std", - "sp-core/std", - "sp-genesis-builder/std", - "sp-inherents/std", - "sp-offchain/std", - "sp-runtime/std", - "sp-session/std", - "sp-std/std", - "sp-storage/std", - "sp-transaction-pool/std", - "sp-version/std", - "sp-weights/std", - "substrate-wasm-builder", - "xcm-builder/std", - "xcm-executor/std", - "xcm/std", -] - -experimental = [ "pallet-aura/experimental" ] diff --git a/cumulus/parachains/runtimes/assets/asset-hub-polkadot/build.rs b/cumulus/parachains/runtimes/assets/asset-hub-polkadot/build.rs deleted file mode 100644 index 60f8a125129f..000000000000 --- a/cumulus/parachains/runtimes/assets/asset-hub-polkadot/build.rs +++ /dev/null @@ -1,26 +0,0 @@ -// 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. - -#[cfg(feature = "std")] -fn main() { - substrate_wasm_builder::WasmBuilder::new() - .with_current_project() - .export_heap_base() - .import_memory() - .build() -} - -#[cfg(not(feature = "std"))] -fn main() {} diff --git a/cumulus/parachains/runtimes/assets/asset-hub-polkadot/src/lib.rs b/cumulus/parachains/runtimes/assets/asset-hub-polkadot/src/lib.rs deleted file mode 100644 index d4f7d6ef3616..000000000000 --- a/cumulus/parachains/runtimes/assets/asset-hub-polkadot/src/lib.rs +++ /dev/null @@ -1,1298 +0,0 @@ -// 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. - -//! # Asset Hub Polkadot Runtime -//! -//! Asset Hub Polkadot is a parachain that provides an interface to create, manage, and use assets. -//! Assets may be fungible or non-fungible. -//! -//! ## Renaming -//! -//! This chain was originally known as "Statemint". You may see references to Statemint, Statemine, -//! and Westmint throughout the codebase. These are synonymous with "Asset Hub Polkadot, Kusama, and -//! Westend", respectively. -//! -//! ## Assets -//! -//! - Fungibles: Configuration of `pallet-assets`. -//! - Non-Fungibles (NFTs): Configuration of `pallet-uniques`. -//! -//! ## Other Functionality -//! -//! ### Native Balances -//! -//! Asset Hub Polkadot uses its parent DOT token as its native asset. -//! -//! ### Governance -//! -//! As a system parachain, Asset Hub defers its governance (namely, its `Root` origin), to its -//! Relay Chain parent, Polkadot. -//! -//! ### Collator Selection -//! -//! Asset Hub uses `pallet-collator-selection`, a simple first-come-first-served registration -//! system where collators can reserve a small bond to join the block producer set. There is no -//! slashing. -//! -//! ### XCM -//! -//! Because Asset Hub is fully under the control of the Relay Chain, it is meant to be a -//! `TrustedTeleporter`. It can also serve as a reserve location to other parachains for DOT as well -//! as other local assets. - -#![cfg_attr(not(feature = "std"), no_std)] -#![recursion_limit = "256"] - -// Make the WASM binary available. -#[cfg(feature = "std")] -include!(concat!(env!("OUT_DIR"), "/wasm_binary.rs")); - -mod weights; -pub mod xcm_config; - -use assets_common::{ - foreign_creators::ForeignCreators, matching::FromSiblingParachain, MultiLocationForAssetId, -}; -use cumulus_pallet_parachain_system::RelayNumberStrictlyIncreases; -use sp_api::impl_runtime_apis; -use sp_core::{crypto::KeyTypeId, OpaqueMetadata}; -use sp_runtime::{ - create_runtime_str, generic, impl_opaque_keys, - traits::{AccountIdLookup, BlakeTwo256, Block as BlockT, ConvertInto, Verify}, - transaction_validity::{TransactionSource, TransactionValidity}, - ApplyExtrinsicResult, -}; - -use sp_std::prelude::*; -#[cfg(feature = "std")] -use sp_version::NativeVersion; -use sp_version::RuntimeVersion; - -use codec::{Decode, Encode, MaxEncodedLen}; -use frame_support::{ - construct_runtime, - dispatch::DispatchClass, - genesis_builder_helper::{build_config, create_default_config}, - parameter_types, - traits::{ - AsEnsureOriginWithArg, ConstBool, ConstU32, ConstU64, ConstU8, EitherOfDiverse, - InstanceFilter, - }, - weights::{ConstantMultiplier, Weight}, - PalletId, -}; -use frame_system::{ - limits::{BlockLength, BlockWeights}, - EnsureRoot, EnsureSigned, -}; -use pallet_nfts::PalletFeatures; -pub use parachains_common as common; -use parachains_common::{ - impls::{AssetsToBlockAuthor, DealWithFees}, - polkadot::{consensus::*, currency::*, fee::WeightToFee}, - AccountId, AssetHubPolkadotAuraId as AuraId, AssetIdForTrustBackedAssets, Balance, BlockNumber, - Hash, Header, Nonce, Signature, AVERAGE_ON_INITIALIZE_RATIO, DAYS, HOURS, MAXIMUM_BLOCK_WEIGHT, - NORMAL_DISPATCH_RATIO, SLOT_DURATION, -}; -use sp_runtime::RuntimeDebug; -use xcm_config::{ - DotLocation, FellowshipLocation, ForeignAssetsConvertedConcreteId, GovernanceLocation, - TrustBackedAssetsConvertedConcreteId, XcmConfig, XcmOriginToTransactDispatchOrigin, -}; - -#[cfg(any(feature = "std", test))] -pub use sp_runtime::BuildStorage; - -// Polkadot imports -use pallet_xcm::{EnsureXcm, IsVoiceOfBody}; -use polkadot_runtime_common::{BlockHashCount, SlowAdjustingFeeUpdate}; -use xcm::latest::BodyId; -use xcm_executor::XcmExecutor; - -use crate::xcm_config::ForeignCreatorsSovereignAccountOf; -use weights::{BlockExecutionWeight, ExtrinsicBaseWeight, RocksDbWeight}; - -impl_opaque_keys! { - pub struct SessionKeys { - pub aura: Aura, - } -} - -#[sp_version::runtime_version] -pub const VERSION: RuntimeVersion = RuntimeVersion { - // Note: "statemint" is the legacy name for this chain. It has been renamed to - // "asset-hub-polkadot". Many wallets/tools depend on the `spec_name`, so it remains "statemint" - // for the time being. Wallets/tools should update to treat "asset-hub-polkadot" equally. - spec_name: create_runtime_str!("statemint"), - impl_name: create_runtime_str!("statemint"), - authoring_version: 1, - spec_version: 10000, - impl_version: 0, - apis: RUNTIME_API_VERSIONS, - transaction_version: 13, - state_version: 0, -}; - -/// The version information used to identify this runtime when compiled natively. -#[cfg(feature = "std")] -pub fn native_version() -> NativeVersion { - NativeVersion { runtime_version: VERSION, can_author_with: Default::default() } -} - -parameter_types! { - pub const Version: RuntimeVersion = VERSION; - pub RuntimeBlockLength: BlockLength = - BlockLength::max_with_normal_ratio(5 * 1024 * 1024, NORMAL_DISPATCH_RATIO); - pub RuntimeBlockWeights: BlockWeights = BlockWeights::builder() - .base_block(BlockExecutionWeight::get()) - .for_class(DispatchClass::all(), |weights| { - weights.base_extrinsic = ExtrinsicBaseWeight::get(); - }) - .for_class(DispatchClass::Normal, |weights| { - weights.max_total = Some(NORMAL_DISPATCH_RATIO * MAXIMUM_BLOCK_WEIGHT); - }) - .for_class(DispatchClass::Operational, |weights| { - weights.max_total = Some(MAXIMUM_BLOCK_WEIGHT); - // Operational transactions have some extra reserved space, so that they - // are included even if block reached `MAXIMUM_BLOCK_WEIGHT`. - weights.reserved = Some( - MAXIMUM_BLOCK_WEIGHT - NORMAL_DISPATCH_RATIO * MAXIMUM_BLOCK_WEIGHT - ); - }) - .avg_block_initialization(AVERAGE_ON_INITIALIZE_RATIO) - .build_or_panic(); - pub const SS58Prefix: u8 = 0; -} - -// Configure FRAME pallets to include in runtime. -impl frame_system::Config for Runtime { - type BaseCallFilter = frame_support::traits::Everything; - type BlockWeights = RuntimeBlockWeights; - type BlockLength = RuntimeBlockLength; - type AccountId = AccountId; - type RuntimeCall = RuntimeCall; - type Lookup = AccountIdLookup; - type Nonce = Nonce; - type Hash = Hash; - type Hashing = BlakeTwo256; - type Block = Block; - type RuntimeEvent = RuntimeEvent; - type RuntimeOrigin = RuntimeOrigin; - type BlockHashCount = BlockHashCount; - type DbWeight = RocksDbWeight; - type Version = Version; - type PalletInfo = PalletInfo; - type OnNewAccount = (); - type OnKilledAccount = (); - type AccountData = pallet_balances::AccountData; - type SystemWeightInfo = weights::frame_system::WeightInfo; - type SS58Prefix = SS58Prefix; - type OnSetCode = cumulus_pallet_parachain_system::ParachainSetCode; - type MaxConsumers = frame_support::traits::ConstU32<16>; -} - -impl pallet_timestamp::Config for Runtime { - /// A timestamp: milliseconds since the unix epoch. - type Moment = u64; - type OnTimestampSet = Aura; - type MinimumPeriod = ConstU64<{ SLOT_DURATION / 2 }>; - type WeightInfo = weights::pallet_timestamp::WeightInfo; -} - -impl pallet_authorship::Config for Runtime { - type FindAuthor = pallet_session::FindAccountFromAuthorIndex; - type EventHandler = (CollatorSelection,); -} - -parameter_types! { - pub const ExistentialDeposit: Balance = EXISTENTIAL_DEPOSIT; -} - -impl pallet_balances::Config for Runtime { - type MaxLocks = ConstU32<50>; - /// The type for recording an account's balance. - type Balance = Balance; - /// The ubiquitous event type. - type RuntimeEvent = RuntimeEvent; - type DustRemoval = (); - type ExistentialDeposit = ExistentialDeposit; - type AccountStore = System; - type WeightInfo = weights::pallet_balances::WeightInfo; - type MaxReserves = ConstU32<50>; - type ReserveIdentifier = [u8; 8]; - type RuntimeHoldReason = RuntimeHoldReason; - type FreezeIdentifier = (); - type MaxHolds = ConstU32<0>; - type MaxFreezes = ConstU32<0>; -} - -parameter_types! { - /// Relay Chain `TransactionByteFee` / 10 - pub const TransactionByteFee: Balance = MILLICENTS; -} - -impl pallet_transaction_payment::Config for Runtime { - type RuntimeEvent = RuntimeEvent; - type OnChargeTransaction = - pallet_transaction_payment::CurrencyAdapter>; - type WeightToFee = WeightToFee; - type LengthToFee = ConstantMultiplier; - type FeeMultiplierUpdate = SlowAdjustingFeeUpdate; - type OperationalFeeMultiplier = ConstU8<5>; -} - -parameter_types! { - pub const AssetDeposit: Balance = 10 * UNITS; // 10 UNITS deposit to create fungible asset class - pub const AssetAccountDeposit: Balance = deposit(1, 16); - pub const ApprovalDeposit: Balance = EXISTENTIAL_DEPOSIT; - pub const AssetsStringLimit: u32 = 50; - /// Key = 32 bytes, Value = 36 bytes (32+1+1+1+1) - // https://github.com/paritytech/substrate/blob/069917b/frame/assets/src/lib.rs#L257L271 - pub const MetadataDepositBase: Balance = deposit(1, 68); - pub const MetadataDepositPerByte: Balance = deposit(0, 1); -} - -/// We allow root to execute privileged asset operations. -pub type AssetsForceOrigin = EnsureRoot; - -// Called "Trust Backed" assets because these are generally registered by some account, and users of -// the asset assume it has some claimed backing. The pallet is called `Assets` in -// `construct_runtime` to avoid breaking changes on storage reads. -pub type TrustBackedAssetsInstance = pallet_assets::Instance1; -type TrustBackedAssetsCall = pallet_assets::Call; -impl pallet_assets::Config for Runtime { - type RuntimeEvent = RuntimeEvent; - type Balance = Balance; - type AssetId = AssetIdForTrustBackedAssets; - type AssetIdParameter = codec::Compact; - type Currency = Balances; - type CreateOrigin = AsEnsureOriginWithArg>; - type ForceOrigin = AssetsForceOrigin; - type AssetDeposit = AssetDeposit; - type MetadataDepositBase = MetadataDepositBase; - type MetadataDepositPerByte = MetadataDepositPerByte; - type ApprovalDeposit = ApprovalDeposit; - type StringLimit = AssetsStringLimit; - type Freezer = (); - type Extra = (); - type WeightInfo = weights::pallet_assets_local::WeightInfo; - type CallbackHandle = (); - type AssetAccountDeposit = AssetAccountDeposit; - type RemoveItemsLimit = frame_support::traits::ConstU32<1000>; - #[cfg(feature = "runtime-benchmarks")] - type BenchmarkHelper = (); -} - -parameter_types! { - // we just reuse the same deposits - pub const ForeignAssetsAssetDeposit: Balance = AssetDeposit::get(); - pub const ForeignAssetsAssetAccountDeposit: Balance = AssetAccountDeposit::get(); - pub const ForeignAssetsApprovalDeposit: Balance = ApprovalDeposit::get(); - pub const ForeignAssetsAssetsStringLimit: u32 = AssetsStringLimit::get(); - pub const ForeignAssetsMetadataDepositBase: Balance = MetadataDepositBase::get(); - pub const ForeignAssetsMetadataDepositPerByte: Balance = MetadataDepositPerByte::get(); -} - -/// Assets managed by some foreign location. Note: we do not declare a `ForeignAssetsCall` type, as -/// this type is used in proxy definitions. We assume that a foreign location would not want to set -/// an individual, local account as a proxy for the issuance of their assets. This issuance should -/// be managed by the foreign location's governance. -pub type ForeignAssetsInstance = pallet_assets::Instance2; -impl pallet_assets::Config for Runtime { - type RuntimeEvent = RuntimeEvent; - type Balance = Balance; - type AssetId = MultiLocationForAssetId; - type AssetIdParameter = MultiLocationForAssetId; - type Currency = Balances; - type CreateOrigin = ForeignCreators< - (FromSiblingParachain>,), - ForeignCreatorsSovereignAccountOf, - AccountId, - >; - type ForceOrigin = AssetsForceOrigin; - type AssetDeposit = ForeignAssetsAssetDeposit; - type MetadataDepositBase = ForeignAssetsMetadataDepositBase; - type MetadataDepositPerByte = ForeignAssetsMetadataDepositPerByte; - type ApprovalDeposit = ForeignAssetsApprovalDeposit; - type StringLimit = ForeignAssetsAssetsStringLimit; - type Freezer = (); - type Extra = (); - type WeightInfo = weights::pallet_assets_foreign::WeightInfo; - type CallbackHandle = (); - type AssetAccountDeposit = ForeignAssetsAssetAccountDeposit; - type RemoveItemsLimit = frame_support::traits::ConstU32<1000>; - #[cfg(feature = "runtime-benchmarks")] - type BenchmarkHelper = xcm_config::XcmBenchmarkHelper; -} - -parameter_types! { - // One storage item; key size is 32; value is size 4+4+16+32 bytes = 56 bytes. - pub const DepositBase: Balance = deposit(1, 88); - // Additional storage item size of 32 bytes. - pub const DepositFactor: Balance = deposit(0, 32); - pub const MaxSignatories: u32 = 100; -} - -impl pallet_multisig::Config for Runtime { - type RuntimeEvent = RuntimeEvent; - type RuntimeCall = RuntimeCall; - type Currency = Balances; - type DepositBase = DepositBase; - type DepositFactor = DepositFactor; - type MaxSignatories = MaxSignatories; - type WeightInfo = weights::pallet_multisig::WeightInfo; -} - -impl pallet_utility::Config for Runtime { - type RuntimeEvent = RuntimeEvent; - type RuntimeCall = RuntimeCall; - type PalletsOrigin = OriginCaller; - type WeightInfo = weights::pallet_utility::WeightInfo; -} - -parameter_types! { - // One storage item; key size 32, value size 8; . - pub const ProxyDepositBase: Balance = deposit(1, 40); - // Additional storage item size of 33 bytes. - pub const ProxyDepositFactor: Balance = deposit(0, 33); - pub const MaxProxies: u16 = 32; - // One storage item; key size 32, value size 16 - pub const AnnouncementDepositBase: Balance = deposit(1, 48); - pub const AnnouncementDepositFactor: Balance = deposit(0, 66); - pub const MaxPending: u16 = 32; -} - -/// The type used to represent the kinds of proxying allowed. -#[derive( - Copy, - Clone, - Eq, - PartialEq, - Ord, - PartialOrd, - Encode, - Decode, - RuntimeDebug, - MaxEncodedLen, - scale_info::TypeInfo, -)] -pub enum ProxyType { - /// Fully permissioned proxy. Can execute any call on behalf of _proxied_. - Any, - /// Can execute any call that does not transfer funds or assets. - NonTransfer, - /// Proxy with the ability to reject time-delay proxy announcements. - CancelProxy, - /// Assets proxy. Can execute any call from `assets`, **including asset transfers**. - Assets, - /// Owner proxy. Can execute calls related to asset ownership. - AssetOwner, - /// Asset manager. Can execute calls related to asset management. - AssetManager, - /// Collator selection proxy. Can execute calls related to collator selection mechanism. - Collator, -} -impl Default for ProxyType { - fn default() -> Self { - Self::Any - } -} - -impl InstanceFilter for ProxyType { - fn filter(&self, c: &RuntimeCall) -> bool { - match self { - ProxyType::Any => true, - ProxyType::NonTransfer => !matches!( - c, - RuntimeCall::Balances { .. } | - RuntimeCall::Assets { .. } | - RuntimeCall::Nfts { .. } | - RuntimeCall::Uniques { .. } - ), - ProxyType::CancelProxy => matches!( - c, - RuntimeCall::Proxy(pallet_proxy::Call::reject_announcement { .. }) | - RuntimeCall::Utility { .. } | - RuntimeCall::Multisig { .. } - ), - ProxyType::Assets => { - matches!( - c, - RuntimeCall::Assets { .. } | - RuntimeCall::Utility { .. } | - RuntimeCall::Multisig { .. } | - RuntimeCall::Nfts { .. } | RuntimeCall::Uniques { .. } - ) - }, - ProxyType::AssetOwner => matches!( - c, - RuntimeCall::Assets(TrustBackedAssetsCall::create { .. }) | - RuntimeCall::Assets(TrustBackedAssetsCall::start_destroy { .. }) | - RuntimeCall::Assets(TrustBackedAssetsCall::destroy_accounts { .. }) | - RuntimeCall::Assets(TrustBackedAssetsCall::destroy_approvals { .. }) | - RuntimeCall::Assets(TrustBackedAssetsCall::finish_destroy { .. }) | - RuntimeCall::Assets(TrustBackedAssetsCall::transfer_ownership { .. }) | - RuntimeCall::Assets(TrustBackedAssetsCall::set_team { .. }) | - RuntimeCall::Assets(TrustBackedAssetsCall::set_metadata { .. }) | - RuntimeCall::Assets(TrustBackedAssetsCall::clear_metadata { .. }) | - RuntimeCall::Assets(TrustBackedAssetsCall::set_min_balance { .. }) | - RuntimeCall::Nfts(pallet_nfts::Call::create { .. }) | - RuntimeCall::Nfts(pallet_nfts::Call::destroy { .. }) | - RuntimeCall::Nfts(pallet_nfts::Call::redeposit { .. }) | - RuntimeCall::Nfts(pallet_nfts::Call::transfer_ownership { .. }) | - RuntimeCall::Nfts(pallet_nfts::Call::set_team { .. }) | - RuntimeCall::Nfts(pallet_nfts::Call::set_collection_max_supply { .. }) | - RuntimeCall::Nfts(pallet_nfts::Call::lock_collection { .. }) | - RuntimeCall::Uniques(pallet_uniques::Call::create { .. }) | - RuntimeCall::Uniques(pallet_uniques::Call::destroy { .. }) | - RuntimeCall::Uniques(pallet_uniques::Call::transfer_ownership { .. }) | - RuntimeCall::Uniques(pallet_uniques::Call::set_team { .. }) | - RuntimeCall::Uniques(pallet_uniques::Call::set_metadata { .. }) | - RuntimeCall::Uniques(pallet_uniques::Call::set_attribute { .. }) | - RuntimeCall::Uniques(pallet_uniques::Call::set_collection_metadata { .. }) | - RuntimeCall::Uniques(pallet_uniques::Call::clear_metadata { .. }) | - RuntimeCall::Uniques(pallet_uniques::Call::clear_attribute { .. }) | - RuntimeCall::Uniques(pallet_uniques::Call::clear_collection_metadata { .. }) | - RuntimeCall::Uniques(pallet_uniques::Call::set_collection_max_supply { .. }) | - RuntimeCall::Utility { .. } | - RuntimeCall::Multisig { .. } - ), - ProxyType::AssetManager => matches!( - c, - RuntimeCall::Assets(TrustBackedAssetsCall::mint { .. }) | - RuntimeCall::Assets(TrustBackedAssetsCall::burn { .. }) | - RuntimeCall::Assets(TrustBackedAssetsCall::freeze { .. }) | - RuntimeCall::Assets(TrustBackedAssetsCall::block { .. }) | - RuntimeCall::Assets(TrustBackedAssetsCall::thaw { .. }) | - RuntimeCall::Assets(TrustBackedAssetsCall::freeze_asset { .. }) | - RuntimeCall::Assets(TrustBackedAssetsCall::thaw_asset { .. }) | - RuntimeCall::Assets(TrustBackedAssetsCall::touch_other { .. }) | - RuntimeCall::Assets(TrustBackedAssetsCall::refund_other { .. }) | - RuntimeCall::Nfts(pallet_nfts::Call::force_mint { .. }) | - RuntimeCall::Nfts(pallet_nfts::Call::update_mint_settings { .. }) | - RuntimeCall::Nfts(pallet_nfts::Call::mint_pre_signed { .. }) | - RuntimeCall::Nfts(pallet_nfts::Call::set_attributes_pre_signed { .. }) | - RuntimeCall::Nfts(pallet_nfts::Call::lock_item_transfer { .. }) | - RuntimeCall::Nfts(pallet_nfts::Call::unlock_item_transfer { .. }) | - RuntimeCall::Nfts(pallet_nfts::Call::lock_item_properties { .. }) | - RuntimeCall::Nfts(pallet_nfts::Call::set_metadata { .. }) | - RuntimeCall::Nfts(pallet_nfts::Call::clear_metadata { .. }) | - RuntimeCall::Nfts(pallet_nfts::Call::set_collection_metadata { .. }) | - RuntimeCall::Nfts(pallet_nfts::Call::clear_collection_metadata { .. }) | - RuntimeCall::Uniques(pallet_uniques::Call::mint { .. }) | - RuntimeCall::Uniques(pallet_uniques::Call::burn { .. }) | - RuntimeCall::Uniques(pallet_uniques::Call::freeze { .. }) | - RuntimeCall::Uniques(pallet_uniques::Call::thaw { .. }) | - RuntimeCall::Uniques(pallet_uniques::Call::freeze_collection { .. }) | - RuntimeCall::Uniques(pallet_uniques::Call::thaw_collection { .. }) | - RuntimeCall::Utility { .. } | - RuntimeCall::Multisig { .. } - ), - ProxyType::Collator => matches!( - c, - RuntimeCall::CollatorSelection { .. } | - RuntimeCall::Utility { .. } | - RuntimeCall::Multisig { .. } - ), - } - } - - fn is_superset(&self, o: &Self) -> bool { - match (self, o) { - (x, y) if x == y => true, - (ProxyType::Any, _) => true, - (_, ProxyType::Any) => false, - (ProxyType::Assets, ProxyType::AssetOwner) => true, - (ProxyType::Assets, ProxyType::AssetManager) => true, - (ProxyType::NonTransfer, ProxyType::Collator) => true, - _ => false, - } - } -} - -impl pallet_proxy::Config for Runtime { - type RuntimeEvent = RuntimeEvent; - type RuntimeCall = RuntimeCall; - type Currency = Balances; - type ProxyType = ProxyType; - type ProxyDepositBase = ProxyDepositBase; - type ProxyDepositFactor = ProxyDepositFactor; - type MaxProxies = MaxProxies; - type WeightInfo = weights::pallet_proxy::WeightInfo; - type MaxPending = MaxPending; - type CallHasher = BlakeTwo256; - type AnnouncementDepositBase = AnnouncementDepositBase; - type AnnouncementDepositFactor = AnnouncementDepositFactor; -} - -parameter_types! { - pub const ReservedXcmpWeight: Weight = MAXIMUM_BLOCK_WEIGHT.saturating_div(4); - pub const ReservedDmpWeight: Weight = MAXIMUM_BLOCK_WEIGHT.saturating_div(4); -} - -impl cumulus_pallet_parachain_system::Config for Runtime { - type RuntimeEvent = RuntimeEvent; - type OnSystemEvent = (); - type SelfParaId = parachain_info::Pallet; - type DmpMessageHandler = DmpQueue; - type ReservedDmpWeight = ReservedDmpWeight; - type OutboundXcmpMessageSource = XcmpQueue; - type XcmpMessageHandler = XcmpQueue; - type ReservedXcmpWeight = ReservedXcmpWeight; - type CheckAssociatedRelayNumber = RelayNumberStrictlyIncreases; - type ConsensusHook = cumulus_pallet_aura_ext::FixedVelocityConsensusHook< - Runtime, - RELAY_CHAIN_SLOT_DURATION_MILLIS, - BLOCK_PROCESSING_VELOCITY, - UNINCLUDED_SEGMENT_CAPACITY, - >; -} - -impl parachain_info::Config for Runtime {} - -impl cumulus_pallet_aura_ext::Config for Runtime {} - -parameter_types! { - // Fellows pluralistic body. - pub const FellowsBodyId: BodyId = BodyId::Technical; -} - -impl cumulus_pallet_xcmp_queue::Config for Runtime { - type WeightInfo = weights::cumulus_pallet_xcmp_queue::WeightInfo; - type RuntimeEvent = RuntimeEvent; - type XcmExecutor = XcmExecutor; - type ChannelInfo = ParachainSystem; - type VersionWrapper = PolkadotXcm; - type ExecuteOverweightOrigin = EnsureRoot; - type ControllerOrigin = EitherOfDiverse< - EnsureRoot, - EnsureXcm>, - >; - type ControllerOriginConverter = XcmOriginToTransactDispatchOrigin; - type PriceForSiblingDelivery = (); -} - -impl cumulus_pallet_dmp_queue::Config for Runtime { - type RuntimeEvent = RuntimeEvent; - type XcmExecutor = XcmExecutor; - type ExecuteOverweightOrigin = EnsureRoot; -} - -parameter_types! { - pub const Period: u32 = 6 * HOURS; - pub const Offset: u32 = 0; -} - -impl pallet_session::Config for Runtime { - type RuntimeEvent = RuntimeEvent; - type ValidatorId = ::AccountId; - // we don't have stash and controller, thus we don't need the convert as well. - type ValidatorIdOf = pallet_collator_selection::IdentityCollator; - type ShouldEndSession = pallet_session::PeriodicSessions; - type NextSessionRotation = pallet_session::PeriodicSessions; - type SessionManager = CollatorSelection; - // Essentially just Aura, but let's be pedantic. - type SessionHandler = ::KeyTypeIdProviders; - type Keys = SessionKeys; - type WeightInfo = weights::pallet_session::WeightInfo; -} - -impl pallet_aura::Config for Runtime { - type AuthorityId = AuraId; - type DisabledValidators = (); - type MaxAuthorities = ConstU32<100_000>; - type AllowMultipleBlocksPerSlot = ConstBool; - #[cfg(feature = "experimental")] - type SlotDuration = pallet_aura::MinimumPeriodTimesTwo; -} - -parameter_types! { - pub const PotId: PalletId = PalletId(*b"PotStake"); - pub const SessionLength: BlockNumber = 6 * HOURS; - // `StakingAdmin` pluralistic body. - pub const StakingAdminBodyId: BodyId = BodyId::Defense; -} - -/// We allow root and the `StakingAdmin` to execute privileged collator selection operations. -pub type CollatorSelectionUpdateOrigin = EitherOfDiverse< - EnsureRoot, - EnsureXcm>, ->; - -impl pallet_collator_selection::Config for Runtime { - type RuntimeEvent = RuntimeEvent; - type Currency = Balances; - type UpdateOrigin = CollatorSelectionUpdateOrigin; - type PotId = PotId; - type MaxCandidates = ConstU32<100>; - type MinEligibleCollators = ConstU32<4>; - type MaxInvulnerables = ConstU32<20>; - // should be a multiple of session or things will get inconsistent - type KickThreshold = Period; - type ValidatorId = ::AccountId; - type ValidatorIdOf = pallet_collator_selection::IdentityCollator; - type ValidatorRegistration = Session; - type WeightInfo = weights::pallet_collator_selection::WeightInfo; -} - -impl pallet_asset_tx_payment::Config for Runtime { - type RuntimeEvent = RuntimeEvent; - type Fungibles = Assets; - type OnChargeAssetTransaction = pallet_asset_tx_payment::FungiblesAdapter< - pallet_assets::BalanceToAssetBalance< - Balances, - Runtime, - ConvertInto, - TrustBackedAssetsInstance, - >, - AssetsToBlockAuthor, - >; -} - -parameter_types! { - pub const UniquesCollectionDeposit: Balance = 10 * UNITS; // 10 UNIT deposit to create uniques class - pub const UniquesItemDeposit: Balance = UNITS / 100; // 1 / 100 UNIT deposit to create uniques instance - pub const UniquesMetadataDepositBase: Balance = deposit(1, 129); - pub const UniquesAttributeDepositBase: Balance = deposit(1, 0); - pub const UniquesDepositPerByte: Balance = deposit(0, 1); -} - -impl pallet_uniques::Config for Runtime { - type RuntimeEvent = RuntimeEvent; - type CollectionId = u32; - type ItemId = u32; - type Currency = Balances; - type ForceOrigin = AssetsForceOrigin; - type CollectionDeposit = UniquesCollectionDeposit; - type ItemDeposit = UniquesItemDeposit; - type MetadataDepositBase = UniquesMetadataDepositBase; - type AttributeDepositBase = UniquesAttributeDepositBase; - type DepositPerByte = UniquesDepositPerByte; - type StringLimit = ConstU32<128>; - type KeyLimit = ConstU32<32>; // Max 32 bytes per key - type ValueLimit = ConstU32<64>; // Max 64 bytes per value - type WeightInfo = weights::pallet_uniques::WeightInfo; - #[cfg(feature = "runtime-benchmarks")] - type Helper = (); - type CreateOrigin = AsEnsureOriginWithArg>; - type Locker = (); -} - -parameter_types! { - pub NftsPalletFeatures: PalletFeatures = PalletFeatures::all_enabled(); - pub const NftsMaxDeadlineDuration: BlockNumber = 12 * 30 * DAYS; - // re-use the Uniques deposits - pub const NftsCollectionDeposit: Balance = UniquesCollectionDeposit::get(); - pub const NftsItemDeposit: Balance = UniquesItemDeposit::get(); - pub const NftsMetadataDepositBase: Balance = UniquesMetadataDepositBase::get(); - pub const NftsAttributeDepositBase: Balance = UniquesAttributeDepositBase::get(); - pub const NftsDepositPerByte: Balance = UniquesDepositPerByte::get(); -} - -impl pallet_nfts::Config for Runtime { - type RuntimeEvent = RuntimeEvent; - type CollectionId = u32; - type ItemId = u32; - type Currency = Balances; - type CreateOrigin = AsEnsureOriginWithArg>; - type ForceOrigin = AssetsForceOrigin; - type Locker = (); - type CollectionDeposit = NftsCollectionDeposit; - type ItemDeposit = NftsItemDeposit; - type MetadataDepositBase = NftsMetadataDepositBase; - type AttributeDepositBase = NftsAttributeDepositBase; - type DepositPerByte = NftsDepositPerByte; - type StringLimit = ConstU32<256>; - type KeyLimit = ConstU32<64>; - type ValueLimit = ConstU32<256>; - type ApprovalsLimit = ConstU32<20>; - type ItemAttributesApprovalsLimit = ConstU32<30>; - type MaxTips = ConstU32<10>; - type MaxDeadlineDuration = NftsMaxDeadlineDuration; - type MaxAttributesPerCall = ConstU32<10>; - type Features = NftsPalletFeatures; - type OffchainSignature = Signature; - type OffchainPublic = ::Signer; - type WeightInfo = weights::pallet_nfts::WeightInfo; - #[cfg(feature = "runtime-benchmarks")] - type Helper = (); -} - -// Create the runtime by composing the FRAME pallets that were previously configured. -construct_runtime!( - pub enum Runtime - { - // System support stuff. - System: frame_system::{Pallet, Call, Config, Storage, Event} = 0, - ParachainSystem: cumulus_pallet_parachain_system::{ - Pallet, Call, Config, Storage, Inherent, Event, ValidateUnsigned, - } = 1, - // RandomnessCollectiveFlip = 2 removed - Timestamp: pallet_timestamp::{Pallet, Call, Storage, Inherent} = 3, - ParachainInfo: parachain_info::{Pallet, Storage, Config} = 4, - - // Monetary stuff. - Balances: pallet_balances::{Pallet, Call, Storage, Config, Event} = 10, - TransactionPayment: pallet_transaction_payment::{Pallet, Storage, Event} = 11, - AssetTxPayment: pallet_asset_tx_payment::{Pallet, Event} = 12, - - // Collator support. the order of these 5 are important and shall not change. - Authorship: pallet_authorship::{Pallet, Storage} = 20, - CollatorSelection: pallet_collator_selection::{Pallet, Call, Storage, Event, Config} = 21, - Session: pallet_session::{Pallet, Call, Storage, Event, Config} = 22, - Aura: pallet_aura::{Pallet, Storage, Config} = 23, - AuraExt: cumulus_pallet_aura_ext::{Pallet, Storage, Config} = 24, - - // XCM helpers. - XcmpQueue: cumulus_pallet_xcmp_queue::{Pallet, Call, Storage, Event} = 30, - PolkadotXcm: pallet_xcm::{Pallet, Call, Storage, Event, Origin, Config} = 31, - CumulusXcm: cumulus_pallet_xcm::{Pallet, Event, Origin} = 32, - DmpQueue: cumulus_pallet_dmp_queue::{Pallet, Call, Storage, Event} = 33, - - // Handy utilities. - Utility: pallet_utility::{Pallet, Call, Event} = 40, - Multisig: pallet_multisig::{Pallet, Call, Storage, Event} = 41, - Proxy: pallet_proxy::{Pallet, Call, Storage, Event} = 42, - - // The main stage. - Assets: pallet_assets::::{Pallet, Call, Storage, Event} = 50, - Uniques: pallet_uniques::{Pallet, Call, Storage, Event} = 51, - Nfts: pallet_nfts::{Pallet, Call, Storage, Event} = 52, - ForeignAssets: pallet_assets::::{Pallet, Call, Storage, Event} = 53, - } -); - -/// The address format for describing accounts. -pub type Address = sp_runtime::MultiAddress; -/// Block type as expected by this runtime. -pub type Block = generic::Block; -/// A Block signed with a Justification -pub type SignedBlock = generic::SignedBlock; -/// BlockId type as expected by this runtime. -pub type BlockId = generic::BlockId; -/// The SignedExtension to the basic transaction logic. -pub type SignedExtra = ( - frame_system::CheckNonZeroSender, - frame_system::CheckSpecVersion, - frame_system::CheckTxVersion, - frame_system::CheckGenesis, - frame_system::CheckEra, - frame_system::CheckNonce, - frame_system::CheckWeight, - pallet_asset_tx_payment::ChargeAssetTxPayment, -); -/// Unchecked extrinsic type as expected by this runtime. -pub type UncheckedExtrinsic = - generic::UncheckedExtrinsic; -/// Migrations to apply on runtime upgrade. -pub type Migrations = (pallet_collator_selection::migration::v1::MigrateToV1,); - -/// Executive: handles dispatch to the various modules. -pub type Executive = frame_executive::Executive< - Runtime, - Block, - frame_system::ChainContext, - Runtime, - AllPalletsWithSystem, - Migrations, ->; - -#[cfg(feature = "runtime-benchmarks")] -#[macro_use] -extern crate frame_benchmarking; - -#[cfg(feature = "runtime-benchmarks")] -mod benches { - define_benchmarks!( - [frame_system, SystemBench::] - [pallet_assets, Local] - [pallet_assets, Foreign] - [pallet_balances, Balances] - [pallet_multisig, Multisig] - [pallet_nfts, Nfts] - [pallet_proxy, Proxy] - [pallet_session, SessionBench::] - [pallet_uniques, Uniques] - [pallet_utility, Utility] - [pallet_timestamp, Timestamp] - [pallet_collator_selection, CollatorSelection] - [cumulus_pallet_xcmp_queue, XcmpQueue] - // XCM - [pallet_xcm, PolkadotXcm] - // NOTE: Make sure you point to the individual modules below. - [pallet_xcm_benchmarks::fungible, XcmBalances] - [pallet_xcm_benchmarks::generic, XcmGeneric] - ); -} - -impl_runtime_apis! { - impl sp_consensus_aura::AuraApi for Runtime { - fn slot_duration() -> sp_consensus_aura::SlotDuration { - sp_consensus_aura::SlotDuration::from_millis(Aura::slot_duration()) - } - - fn authorities() -> Vec { - Aura::authorities().into_inner() - } - } - - impl sp_api::Core for Runtime { - fn version() -> RuntimeVersion { - VERSION - } - - fn execute_block(block: Block) { - Executive::execute_block(block) - } - - fn initialize_block(header: &::Header) { - Executive::initialize_block(header) - } - } - - impl sp_api::Metadata for Runtime { - fn metadata() -> OpaqueMetadata { - OpaqueMetadata::new(Runtime::metadata().into()) - } - - fn metadata_at_version(version: u32) -> Option { - Runtime::metadata_at_version(version) - } - - fn metadata_versions() -> sp_std::vec::Vec { - Runtime::metadata_versions() - } - } - - impl sp_block_builder::BlockBuilder for Runtime { - fn apply_extrinsic(extrinsic: ::Extrinsic) -> ApplyExtrinsicResult { - Executive::apply_extrinsic(extrinsic) - } - - fn finalize_block() -> ::Header { - Executive::finalize_block() - } - - fn inherent_extrinsics(data: sp_inherents::InherentData) -> Vec<::Extrinsic> { - data.create_extrinsics() - } - - fn check_inherents( - block: Block, - data: sp_inherents::InherentData, - ) -> sp_inherents::CheckInherentsResult { - data.check_extrinsics(&block) - } - } - - impl sp_transaction_pool::runtime_api::TaggedTransactionQueue for Runtime { - fn validate_transaction( - source: TransactionSource, - tx: ::Extrinsic, - block_hash: ::Hash, - ) -> TransactionValidity { - Executive::validate_transaction(source, tx, block_hash) - } - } - - impl sp_offchain::OffchainWorkerApi for Runtime { - fn offchain_worker(header: &::Header) { - Executive::offchain_worker(header) - } - } - - impl sp_session::SessionKeys for Runtime { - fn generate_session_keys(seed: Option>) -> Vec { - SessionKeys::generate(seed) - } - - fn decode_session_keys( - encoded: Vec, - ) -> Option, KeyTypeId)>> { - SessionKeys::decode_into_raw_public_keys(&encoded) - } - } - - impl frame_system_rpc_runtime_api::AccountNonceApi for Runtime { - fn account_nonce(account: AccountId) -> Nonce { - System::account_nonce(account) - } - } - - impl pallet_transaction_payment_rpc_runtime_api::TransactionPaymentApi for Runtime { - fn query_info( - uxt: ::Extrinsic, - len: u32, - ) -> pallet_transaction_payment_rpc_runtime_api::RuntimeDispatchInfo { - TransactionPayment::query_info(uxt, len) - } - fn query_fee_details( - uxt: ::Extrinsic, - len: u32, - ) -> pallet_transaction_payment::FeeDetails { - TransactionPayment::query_fee_details(uxt, len) - } - fn query_weight_to_fee(weight: Weight) -> Balance { - TransactionPayment::weight_to_fee(weight) - } - fn query_length_to_fee(length: u32) -> Balance { - TransactionPayment::length_to_fee(length) - } - } - - impl pallet_transaction_payment_rpc_runtime_api::TransactionPaymentCallApi - for Runtime - { - fn query_call_info( - call: RuntimeCall, - len: u32, - ) -> pallet_transaction_payment::RuntimeDispatchInfo { - TransactionPayment::query_call_info(call, len) - } - fn query_call_fee_details( - call: RuntimeCall, - len: u32, - ) -> pallet_transaction_payment::FeeDetails { - TransactionPayment::query_call_fee_details(call, len) - } - fn query_weight_to_fee(weight: Weight) -> Balance { - TransactionPayment::weight_to_fee(weight) - } - fn query_length_to_fee(length: u32) -> Balance { - TransactionPayment::length_to_fee(length) - } - } - - impl assets_common::runtime_api::FungiblesApi< - Block, - AccountId, - > for Runtime - { - fn query_account_balances(account: AccountId) -> Result { - use assets_common::fungible_conversion::{convert, convert_balance}; - Ok([ - // collect pallet_balance - { - let balance = Balances::free_balance(account.clone()); - if balance > 0 { - vec![convert_balance::(balance)?] - } else { - vec![] - } - }, - // collect pallet_assets (TrustBackedAssets) - convert::<_, _, _, _, TrustBackedAssetsConvertedConcreteId>( - Assets::account_balances(account.clone()) - .iter() - .filter(|(_, balance)| balance > &0) - )?, - // collect pallet_assets (ForeignAssets) - convert::<_, _, _, _, ForeignAssetsConvertedConcreteId>( - ForeignAssets::account_balances(account) - .iter() - .filter(|(_, balance)| balance > &0) - )?, - // collect ... e.g. other tokens - ].concat().into()) - } - } - - impl cumulus_primitives_core::CollectCollationInfo for Runtime { - fn collect_collation_info(header: &::Header) -> cumulus_primitives_core::CollationInfo { - ParachainSystem::collect_collation_info(header) - } - } - - #[cfg(feature = "try-runtime")] - impl frame_try_runtime::TryRuntime for Runtime { - fn on_runtime_upgrade(checks: frame_try_runtime::UpgradeCheckSelect) -> (Weight, Weight) { - let weight = Executive::try_runtime_upgrade(checks).unwrap(); - (weight, RuntimeBlockWeights::get().max_block) - } - - fn execute_block( - block: Block, - state_root_check: bool, - signature_check: bool, - select: frame_try_runtime::TryStateSelect, - ) -> Weight { - // NOTE: intentional unwrap: we don't want to propagate the error backwards, and want to - // have a backtrace here. - Executive::try_execute_block(block, state_root_check, signature_check, select).unwrap() - } - } - - #[cfg(feature = "runtime-benchmarks")] - impl frame_benchmarking::Benchmark for Runtime { - fn benchmark_metadata(extra: bool) -> ( - Vec, - Vec, - ) { - use frame_benchmarking::{Benchmarking, BenchmarkList}; - use frame_support::traits::StorageInfoTrait; - use frame_system_benchmarking::Pallet as SystemBench; - use cumulus_pallet_session_benchmarking::Pallet as SessionBench; - - // This is defined once again in dispatch_benchmark, because list_benchmarks! - // and add_benchmarks! are macros exported by define_benchmarks! macros and those types - // are referenced in that call. - type XcmBalances = pallet_xcm_benchmarks::fungible::Pallet::; - type XcmGeneric = pallet_xcm_benchmarks::generic::Pallet::; - - // Benchmark files generated for `Assets/ForeignAssets` instances are by default - // `pallet_assets_assets.rs / pallet_assets_foreign_assets`, which is not really nice, - // so with this redefinition we can change names to nicer: - // `pallet_assets_local.rs / pallet_assets_foreign.rs`. - type Local = pallet_assets::Pallet::; - type Foreign = pallet_assets::Pallet::; - - let mut list = Vec::::new(); - list_benchmarks!(list, extra); - - let storage_info = AllPalletsWithSystem::storage_info(); - (list, storage_info) - } - - fn dispatch_benchmark( - config: frame_benchmarking::BenchmarkConfig - ) -> Result, sp_runtime::RuntimeString> { - use frame_benchmarking::{Benchmarking, BenchmarkBatch, BenchmarkError}; - use sp_storage::TrackedStorageKey; - - use frame_system_benchmarking::Pallet as SystemBench; - impl frame_system_benchmarking::Config for Runtime { - fn setup_set_code_requirements(code: &sp_std::vec::Vec) -> Result<(), BenchmarkError> { - ParachainSystem::initialize_for_set_code_benchmark(code.len() as u32); - Ok(()) - } - - fn verify_set_code() { - System::assert_last_event(cumulus_pallet_parachain_system::Event::::ValidationFunctionStored.into()); - } - } - - use cumulus_pallet_session_benchmarking::Pallet as SessionBench; - impl cumulus_pallet_session_benchmarking::Config for Runtime {} - - use xcm::latest::prelude::*; - use xcm_config::{DotLocation, MaxAssetsIntoHolding}; - use pallet_xcm_benchmarks::asset_instance_from; - - impl pallet_xcm_benchmarks::Config for Runtime { - type XcmConfig = xcm_config::XcmConfig; - type AccountIdConverter = xcm_config::LocationToAccountId; - fn valid_destination() -> Result { - Ok(DotLocation::get()) - } - fn worst_case_holding(depositable_count: u32) -> MultiAssets { - // A mix of fungible, non-fungible, and concrete assets. - let holding_non_fungibles = MaxAssetsIntoHolding::get() / 2 - depositable_count; - let holding_fungibles = holding_non_fungibles - 1; - let fungibles_amount: u128 = 100; - let mut assets = (0..holding_fungibles) - .map(|i| { - MultiAsset { - id: Concrete(GeneralIndex(i as u128).into()), - fun: Fungible(fungibles_amount * i as u128), - } - }) - .chain(core::iter::once(MultiAsset { id: Concrete(Here.into()), fun: Fungible(u128::MAX) })) - .chain((0..holding_non_fungibles).map(|i| MultiAsset { - id: Concrete(GeneralIndex(i as u128).into()), - fun: NonFungible(asset_instance_from(i)), - })) - .collect::>(); - - assets.push(MultiAsset { - id: Concrete(DotLocation::get()), - fun: Fungible(1_000_000 * UNITS), - }); - assets.into() - } - } - - parameter_types! { - pub const TrustedTeleporter: Option<(MultiLocation, MultiAsset)> = Some(( - DotLocation::get(), - MultiAsset { fun: Fungible(UNITS), id: Concrete(DotLocation::get()) }, - )); - pub const CheckedAccount: Option<(AccountId, xcm_builder::MintLocation)> = None; - pub const TrustedReserve: Option<(MultiLocation, MultiAsset)> = None; - } - - impl pallet_xcm_benchmarks::fungible::Config for Runtime { - type TransactAsset = Balances; - - type CheckedAccount = CheckedAccount; - type TrustedTeleporter = TrustedTeleporter; - type TrustedReserve = TrustedReserve; - - fn get_multi_asset() -> MultiAsset { - MultiAsset { - id: Concrete(DotLocation::get()), - fun: Fungible(UNITS), - } - } - } - - impl pallet_xcm_benchmarks::generic::Config for Runtime { - type RuntimeCall = RuntimeCall; - - fn worst_case_response() -> (u64, Response) { - (0u64, Response::Version(Default::default())) - } - - fn worst_case_asset_exchange() -> Result<(MultiAssets, MultiAssets), BenchmarkError> { - Err(BenchmarkError::Skip) - } - - fn universal_alias() -> Result<(MultiLocation, Junction), BenchmarkError> { - Err(BenchmarkError::Skip) - } - - fn transact_origin_and_runtime_call() -> Result<(MultiLocation, RuntimeCall), BenchmarkError> { - Ok((DotLocation::get(), frame_system::Call::remark_with_event { remark: vec![] }.into())) - } - - fn subscribe_origin() -> Result { - Ok(DotLocation::get()) - } - - fn claimable_asset() -> Result<(MultiLocation, MultiLocation, MultiAssets), BenchmarkError> { - let origin = DotLocation::get(); - let assets: MultiAssets = (Concrete(DotLocation::get()), 1_000 * UNITS).into(); - let ticket = MultiLocation { parents: 0, interior: Here }; - Ok((origin, ticket, assets)) - } - - fn unlockable_asset() -> Result<(MultiLocation, MultiLocation, MultiAsset), BenchmarkError> { - Err(BenchmarkError::Skip) - } - - fn export_message_origin_and_destination( - ) -> Result<(MultiLocation, NetworkId, InteriorMultiLocation), BenchmarkError> { - Err(BenchmarkError::Skip) - } - - fn alias_origin() -> Result<(MultiLocation, MultiLocation), BenchmarkError> { - Err(BenchmarkError::Skip) - } - } - - type XcmBalances = pallet_xcm_benchmarks::fungible::Pallet::; - type XcmGeneric = pallet_xcm_benchmarks::generic::Pallet::; - - type Local = pallet_assets::Pallet::; - type Foreign = pallet_assets::Pallet::; - - let whitelist: Vec = vec![ - // Block Number - hex_literal::hex!("26aa394eea5630e07c48ae0c9558cef702a5c1b19ab7a04f536c519aca4983ac").to_vec().into(), - // Total Issuance - hex_literal::hex!("c2261276cc9d1f8598ea4b6a74b15c2f57c875e4cff74148e4628f264b974c80").to_vec().into(), - // Execution Phase - hex_literal::hex!("26aa394eea5630e07c48ae0c9558cef7ff553b5a9862a516939d82b3d3d8661a").to_vec().into(), - // Event Count - hex_literal::hex!("26aa394eea5630e07c48ae0c9558cef70a98fdbe9ce6c55837576c60c7af3850").to_vec().into(), - // System Events - hex_literal::hex!("26aa394eea5630e07c48ae0c9558cef780d41e5e16056765bc8461851072c9d7").to_vec().into(), - //TODO: use from relay_well_known_keys::ACTIVE_CONFIG - hex_literal::hex!("06de3d8a54d27e44a9d5ce189618f22db4b49d95320d9021994c850f25b8e385").to_vec().into(), - ]; - - let mut batches = Vec::::new(); - let params = (&config, &whitelist); - add_benchmarks!(params, batches); - - Ok(batches) - } - } - - impl sp_genesis_builder::GenesisBuilder for Runtime { - fn create_default_config() -> Vec { - create_default_config::() - } - - fn build_config(config: Vec) -> sp_genesis_builder::Result { - build_config::(config) - } - } -} - -cumulus_pallet_parachain_system::register_validate_block! { - Runtime = Runtime, - BlockExecutor = cumulus_pallet_aura_ext::BlockExecutor::, -} - -#[cfg(test)] -mod tests { - use super::*; - use crate::{CENTS, MILLICENTS}; - use parachains_common::polkadot::fee; - use sp_runtime::traits::Zero; - use sp_weights::WeightToFee; - - /// We can fit at least 1000 transfers in a block. - #[test] - fn sane_block_weight() { - use pallet_balances::WeightInfo; - let block = RuntimeBlockWeights::get().max_block; - let base = RuntimeBlockWeights::get().get(DispatchClass::Normal).base_extrinsic; - let transfer = - base + weights::pallet_balances::WeightInfo::::transfer_allow_death(); - - let fit = block.checked_div_per_component(&transfer).unwrap_or_default(); - assert!(fit >= 1000, "{} should be at least 1000", fit); - } - - /// The fee for one transfer is at most 1 CENT. - #[test] - fn sane_transfer_fee() { - use pallet_balances::WeightInfo; - let base = RuntimeBlockWeights::get().get(DispatchClass::Normal).base_extrinsic; - let transfer = - base + weights::pallet_balances::WeightInfo::::transfer_allow_death(); - - let fee: Balance = fee::WeightToFee::weight_to_fee(&transfer); - assert!(fee <= CENTS, "{} MILLICENTS should be at most 1000", fee / MILLICENTS); - } - - /// Weight is being charged for both dimensions. - #[test] - fn weight_charged_for_both_components() { - let fee: Balance = fee::WeightToFee::weight_to_fee(&Weight::from_parts(10_000, 0)); - assert!(!fee.is_zero(), "Charges for ref time"); - - let fee: Balance = fee::WeightToFee::weight_to_fee(&Weight::from_parts(0, 10_000)); - assert_eq!(fee, CENTS, "10kb maps to CENT"); - } - - /// Filling up a block by proof size is at most 30 times more expensive than ref time. - /// - /// This is just a sanity check. - #[test] - fn full_block_fee_ratio() { - let block = RuntimeBlockWeights::get().max_block; - let time_fee: Balance = - fee::WeightToFee::weight_to_fee(&Weight::from_parts(block.ref_time(), 0)); - let proof_fee: Balance = - fee::WeightToFee::weight_to_fee(&Weight::from_parts(0, block.proof_size())); - - let proof_o_time = proof_fee.checked_div(time_fee).unwrap_or_default(); - assert!(proof_o_time <= 30, "{} should be at most 30", proof_o_time); - let time_o_proof = time_fee.checked_div(proof_fee).unwrap_or_default(); - assert!(time_o_proof <= 30, "{} should be at most 30", time_o_proof); - } -} diff --git a/cumulus/parachains/runtimes/assets/asset-hub-polkadot/src/weights/block_weights.rs b/cumulus/parachains/runtimes/assets/asset-hub-polkadot/src/weights/block_weights.rs deleted file mode 100644 index e7fdb2aae2a0..000000000000 --- a/cumulus/parachains/runtimes/assets/asset-hub-polkadot/src/weights/block_weights.rs +++ /dev/null @@ -1,53 +0,0 @@ -// This file is part of Substrate. - -// 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. - -pub mod constants { - use frame_support::{ - parameter_types, - weights::{constants, Weight}, - }; - - parameter_types! { - /// Importing a block with 0 Extrinsics. - pub const BlockExecutionWeight: Weight = - Weight::from_parts(constants::WEIGHT_REF_TIME_PER_NANOS.saturating_mul(5_000_000), 0); - } - - #[cfg(test)] - mod test_weights { - use frame_support::weights::constants; - - /// Checks that the weight exists and is sane. - // NOTE: If this test fails but you are sure that the generated values are fine, - // you can delete it. - #[test] - fn sane() { - let w = super::constants::BlockExecutionWeight::get(); - - // At least 100 µs. - assert!( - w.ref_time() >= 100u64 * constants::WEIGHT_REF_TIME_PER_MICROS, - "Weight should be at least 100 µs." - ); - // At most 50 ms. - assert!( - w.ref_time() <= 50u64 * constants::WEIGHT_REF_TIME_PER_MILLIS, - "Weight should be at most 50 ms." - ); - } - } -} diff --git a/cumulus/parachains/runtimes/assets/asset-hub-polkadot/src/weights/cumulus_pallet_xcmp_queue.rs b/cumulus/parachains/runtimes/assets/asset-hub-polkadot/src/weights/cumulus_pallet_xcmp_queue.rs deleted file mode 100644 index 65844ce194a0..000000000000 --- a/cumulus/parachains/runtimes/assets/asset-hub-polkadot/src/weights/cumulus_pallet_xcmp_queue.rs +++ /dev/null @@ -1,77 +0,0 @@ -// Copyright (C) Parity Technologies (UK) Ltd. -// This file is part of Cumulus. - -// Cumulus 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. - -// Cumulus 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 Cumulus. If not, see . - -//! Autogenerated weights for `cumulus_pallet_xcmp_queue` -//! -//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev -//! DATE: 2023-07-31, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` -//! WORST CASE MAP SIZE: `1000000` -//! HOSTNAME: `runner-ynta1nyy-project-238-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz` -//! EXECUTION: ``, WASM-EXECUTION: `Compiled`, CHAIN: `Some("asset-hub-polkadot-dev")`, DB CACHE: 1024 - -// Executed Command: -// ./target/production/polkadot-parachain -// benchmark -// pallet -// --chain=asset-hub-polkadot-dev -// --wasm-execution=compiled -// --pallet=cumulus_pallet_xcmp_queue -// --no-storage-info -// --no-median-slopes -// --no-min-squares -// --extrinsic=* -// --steps=50 -// --repeat=20 -// --json -// --header=./file_header.txt -// --output=./parachains/runtimes/assets/asset-hub-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 `cumulus_pallet_xcmp_queue`. -pub struct WeightInfo(PhantomData); -impl cumulus_pallet_xcmp_queue::WeightInfo for WeightInfo { - /// Storage: `XcmpQueue::QueueConfig` (r:1 w:1) - /// Proof: `XcmpQueue::QueueConfig` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) - fn set_config_with_u32() -> Weight { - // Proof Size summary in bytes: - // Measured: `76` - // Estimated: `1561` - // Minimum execution time: 5_240_000 picoseconds. - Weight::from_parts(5_487_000, 0) - .saturating_add(Weight::from_parts(0, 1561)) - .saturating_add(T::DbWeight::get().reads(1)) - .saturating_add(T::DbWeight::get().writes(1)) - } - /// Storage: `XcmpQueue::QueueConfig` (r:1 w:1) - /// Proof: `XcmpQueue::QueueConfig` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) - fn set_config_with_weight() -> Weight { - // Proof Size summary in bytes: - // Measured: `76` - // Estimated: `1561` - // Minimum execution time: 5_243_000 picoseconds. - Weight::from_parts(5_549_000, 0) - .saturating_add(Weight::from_parts(0, 1561)) - .saturating_add(T::DbWeight::get().reads(1)) - .saturating_add(T::DbWeight::get().writes(1)) - } -} diff --git a/cumulus/parachains/runtimes/assets/asset-hub-polkadot/src/weights/extrinsic_weights.rs b/cumulus/parachains/runtimes/assets/asset-hub-polkadot/src/weights/extrinsic_weights.rs deleted file mode 100644 index 1a4adb968bb7..000000000000 --- a/cumulus/parachains/runtimes/assets/asset-hub-polkadot/src/weights/extrinsic_weights.rs +++ /dev/null @@ -1,53 +0,0 @@ -// This file is part of Substrate. - -// 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. - -pub mod constants { - use frame_support::{ - parameter_types, - weights::{constants, Weight}, - }; - - parameter_types! { - /// Executing a NO-OP `System::remarks` Extrinsic. - pub const ExtrinsicBaseWeight: Weight = - Weight::from_parts(constants::WEIGHT_REF_TIME_PER_NANOS.saturating_mul(125_000), 0); - } - - #[cfg(test)] - mod test_weights { - use frame_support::weights::constants; - - /// Checks that the weight exists and is sane. - // NOTE: If this test fails but you are sure that the generated values are fine, - // you can delete it. - #[test] - fn sane() { - let w = super::constants::ExtrinsicBaseWeight::get(); - - // At least 10 µs. - assert!( - w.ref_time() >= 10u64 * constants::WEIGHT_REF_TIME_PER_MICROS, - "Weight should be at least 10 µs." - ); - // At most 1 ms. - assert!( - w.ref_time() <= constants::WEIGHT_REF_TIME_PER_MILLIS, - "Weight should be at most 1 ms." - ); - } - } -} diff --git a/cumulus/parachains/runtimes/assets/asset-hub-polkadot/src/weights/frame_system.rs b/cumulus/parachains/runtimes/assets/asset-hub-polkadot/src/weights/frame_system.rs deleted file mode 100644 index 713c33d34f77..000000000000 --- a/cumulus/parachains/runtimes/assets/asset-hub-polkadot/src/weights/frame_system.rs +++ /dev/null @@ -1,155 +0,0 @@ -// Copyright (C) Parity Technologies (UK) Ltd. -// This file is part of Cumulus. - -// Cumulus 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. - -// Cumulus 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 Cumulus. If not, see . - -//! Autogenerated weights for `frame_system` -//! -//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev -//! DATE: 2023-07-31, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` -//! WORST CASE MAP SIZE: `1000000` -//! HOSTNAME: `runner-ynta1nyy-project-238-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz` -//! EXECUTION: ``, WASM-EXECUTION: `Compiled`, CHAIN: `Some("asset-hub-polkadot-dev")`, DB CACHE: 1024 - -// Executed Command: -// ./target/production/polkadot-parachain -// benchmark -// pallet -// --chain=asset-hub-polkadot-dev -// --wasm-execution=compiled -// --pallet=frame_system -// --no-storage-info -// --no-median-slopes -// --no-min-squares -// --extrinsic=* -// --steps=50 -// --repeat=20 -// --json -// --header=./file_header.txt -// --output=./parachains/runtimes/assets/asset-hub-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 `frame_system`. -pub struct WeightInfo(PhantomData); -impl frame_system::WeightInfo for WeightInfo { - /// The range of component `b` is `[0, 3932160]`. - fn remark(b: u32, ) -> Weight { - // Proof Size summary in bytes: - // Measured: `0` - // Estimated: `0` - // Minimum execution time: 1_956_000 picoseconds. - Weight::from_parts(3_441_280, 0) - .saturating_add(Weight::from_parts(0, 0)) - // Standard Error: 0 - .saturating_add(Weight::from_parts(388, 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_267_000 picoseconds. - Weight::from_parts(7_462_000, 0) - .saturating_add(Weight::from_parts(0, 0)) - // Standard Error: 3 - .saturating_add(Weight::from_parts(1_816, 0).saturating_mul(b.into())) - } - /// Storage: `System::Digest` (r:1 w:1) - /// Proof: `System::Digest` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) - /// Storage: UNKNOWN KEY `0x3a686561707061676573` (r:0 w:1) - /// Proof: UNKNOWN KEY `0x3a686561707061676573` (r:0 w:1) - fn set_heap_pages() -> Weight { - // Proof Size summary in bytes: - // Measured: `0` - // Estimated: `1485` - // Minimum execution time: 3_757_000 picoseconds. - Weight::from_parts(4_021_000, 0) - .saturating_add(Weight::from_parts(0, 1485)) - .saturating_add(T::DbWeight::get().reads(1)) - .saturating_add(T::DbWeight::get().writes(2)) - } - /// Storage: `ParachainSystem::ValidationData` (r:1 w:0) - /// Proof: `ParachainSystem::ValidationData` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) - /// Storage: `ParachainSystem::UpgradeRestrictionSignal` (r:1 w:0) - /// Proof: `ParachainSystem::UpgradeRestrictionSignal` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) - /// Storage: `ParachainSystem::PendingValidationCode` (r:1 w:1) - /// Proof: `ParachainSystem::PendingValidationCode` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) - /// Storage: `ParachainSystem::HostConfiguration` (r:1 w:0) - /// Proof: `ParachainSystem::HostConfiguration` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) - /// Storage: `ParachainSystem::NewValidationCode` (r:0 w:1) - /// Proof: `ParachainSystem::NewValidationCode` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) - /// Storage: `ParachainSystem::DidSetValidationCode` (r:0 w:1) - /// Proof: `ParachainSystem::DidSetValidationCode` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) - fn set_code() -> Weight { - // Proof Size summary in bytes: - // Measured: `119` - // Estimated: `1604` - // Minimum execution time: 97_958_650_000 picoseconds. - Weight::from_parts(102_129_539_000, 0) - .saturating_add(Weight::from_parts(0, 1604)) - .saturating_add(T::DbWeight::get().reads(4)) - .saturating_add(T::DbWeight::get().writes(3)) - } - /// Storage: `Skipped::Metadata` (r:0 w:0) - /// Proof: `Skipped::Metadata` (`max_values`: None, `max_size`: None, mode: `Measured`) - /// The range of component `i` is `[0, 1000]`. - fn set_storage(i: u32, ) -> Weight { - // Proof Size summary in bytes: - // Measured: `0` - // Estimated: `0` - // Minimum execution time: 2_327_000 picoseconds. - Weight::from_parts(2_511_000, 0) - .saturating_add(Weight::from_parts(0, 0)) - // Standard Error: 2_186 - .saturating_add(Weight::from_parts(755_085, 0).saturating_mul(i.into())) - .saturating_add(T::DbWeight::get().writes((1_u64).saturating_mul(i.into()))) - } - /// Storage: `Skipped::Metadata` (r:0 w:0) - /// Proof: `Skipped::Metadata` (`max_values`: None, `max_size`: None, mode: `Measured`) - /// The range of component `i` is `[0, 1000]`. - fn kill_storage(i: u32, ) -> Weight { - // Proof Size summary in bytes: - // Measured: `0` - // Estimated: `0` - // Minimum execution time: 2_114_000 picoseconds. - Weight::from_parts(2_177_000, 0) - .saturating_add(Weight::from_parts(0, 0)) - // Standard Error: 1_174 - .saturating_add(Weight::from_parts(584_644, 0).saturating_mul(i.into())) - .saturating_add(T::DbWeight::get().writes((1_u64).saturating_mul(i.into()))) - } - /// Storage: `Skipped::Metadata` (r:0 w:0) - /// Proof: `Skipped::Metadata` (`max_values`: None, `max_size`: None, mode: `Measured`) - /// The range of component `p` is `[0, 1000]`. - fn kill_prefix(p: u32, ) -> Weight { - // Proof Size summary in bytes: - // Measured: `84 + p * (69 ±0)` - // Estimated: `77 + p * (70 ±0)` - // Minimum execution time: 3_799_000 picoseconds. - Weight::from_parts(3_910_000, 0) - .saturating_add(Weight::from_parts(0, 77)) - // Standard Error: 1_968 - .saturating_add(Weight::from_parts(1_220_745, 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/cumulus/parachains/runtimes/assets/asset-hub-polkadot/src/weights/mod.rs b/cumulus/parachains/runtimes/assets/asset-hub-polkadot/src/weights/mod.rs deleted file mode 100644 index 3eb3b925e651..000000000000 --- a/cumulus/parachains/runtimes/assets/asset-hub-polkadot/src/weights/mod.rs +++ /dev/null @@ -1,40 +0,0 @@ -// Copyright (C) Parity Technologies (UK) Ltd. -// This file is part of Cumulus. - -// Cumulus 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. - -// Cumulus 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 Cumulus. If not, see . - -pub mod block_weights; -pub mod cumulus_pallet_xcmp_queue; -pub mod extrinsic_weights; -pub mod frame_system; -pub mod pallet_assets_foreign; -pub mod pallet_assets_local; -pub mod pallet_balances; -pub mod pallet_collator_selection; -pub mod pallet_multisig; -pub mod pallet_nfts; -pub mod pallet_proxy; -pub mod pallet_session; -pub mod pallet_timestamp; -pub mod pallet_uniques; -pub mod pallet_utility; -pub mod pallet_xcm; -pub mod paritydb_weights; -pub mod rocksdb_weights; -pub mod xcm; - -pub use block_weights::constants::BlockExecutionWeight; -pub use extrinsic_weights::constants::ExtrinsicBaseWeight; -pub use paritydb_weights::constants::ParityDbWeight; -pub use rocksdb_weights::constants::RocksDbWeight; diff --git a/cumulus/parachains/runtimes/assets/asset-hub-polkadot/src/weights/pallet_assets_foreign.rs b/cumulus/parachains/runtimes/assets/asset-hub-polkadot/src/weights/pallet_assets_foreign.rs deleted file mode 100644 index 51413bb471b9..000000000000 --- a/cumulus/parachains/runtimes/assets/asset-hub-polkadot/src/weights/pallet_assets_foreign.rs +++ /dev/null @@ -1,533 +0,0 @@ -// Copyright (C) Parity Technologies (UK) Ltd. -// This file is part of Cumulus. - -// Cumulus 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. - -// Cumulus 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 Cumulus. If not, see . - -//! Autogenerated weights for `pallet_assets` -//! -//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev -//! DATE: 2023-07-31, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` -//! WORST CASE MAP SIZE: `1000000` -//! HOSTNAME: `runner-ynta1nyy-project-238-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz` -//! EXECUTION: ``, WASM-EXECUTION: `Compiled`, CHAIN: `Some("asset-hub-polkadot-dev")`, DB CACHE: 1024 - -// Executed Command: -// ./target/production/polkadot-parachain -// benchmark -// pallet -// --chain=asset-hub-polkadot-dev -// --wasm-execution=compiled -// --pallet=pallet_assets -// --no-storage-info -// --no-median-slopes -// --no-min-squares -// --extrinsic=* -// --steps=50 -// --repeat=20 -// --json -// --header=./file_header.txt -// --output=./parachains/runtimes/assets/asset-hub-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_assets`. -pub struct WeightInfo(PhantomData); -impl pallet_assets::WeightInfo for WeightInfo { - /// Storage: `ParachainInfo::ParachainId` (r:1 w:0) - /// Proof: `ParachainInfo::ParachainId` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`) - /// Storage: `ForeignAssets::Asset` (r:1 w:1) - /// Proof: `ForeignAssets::Asset` (`max_values`: None, `max_size`: Some(808), added: 3283, mode: `MaxEncodedLen`) - /// Storage: `System::Account` (r:1 w:1) - /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`) - fn create() -> Weight { - // Proof Size summary in bytes: - // Measured: `107` - // Estimated: `4273` - // Minimum execution time: 29_979_000 picoseconds. - Weight::from_parts(30_763_000, 0) - .saturating_add(Weight::from_parts(0, 4273)) - .saturating_add(T::DbWeight::get().reads(3)) - .saturating_add(T::DbWeight::get().writes(2)) - } - /// Storage: `ForeignAssets::Asset` (r:1 w:1) - /// Proof: `ForeignAssets::Asset` (`max_values`: None, `max_size`: Some(808), added: 3283, mode: `MaxEncodedLen`) - fn force_create() -> Weight { - // Proof Size summary in bytes: - // Measured: `4` - // Estimated: `4273` - // Minimum execution time: 12_255_000 picoseconds. - Weight::from_parts(12_614_000, 0) - .saturating_add(Weight::from_parts(0, 4273)) - .saturating_add(T::DbWeight::get().reads(1)) - .saturating_add(T::DbWeight::get().writes(1)) - } - /// Storage: `ForeignAssets::Asset` (r:1 w:1) - /// Proof: `ForeignAssets::Asset` (`max_values`: None, `max_size`: Some(808), added: 3283, mode: `MaxEncodedLen`) - fn start_destroy() -> Weight { - // Proof Size summary in bytes: - // Measured: `276` - // Estimated: `4273` - // Minimum execution time: 15_240_000 picoseconds. - Weight::from_parts(15_627_000, 0) - .saturating_add(Weight::from_parts(0, 4273)) - .saturating_add(T::DbWeight::get().reads(1)) - .saturating_add(T::DbWeight::get().writes(1)) - } - /// Storage: `ForeignAssets::Asset` (r:1 w:1) - /// Proof: `ForeignAssets::Asset` (`max_values`: None, `max_size`: Some(808), added: 3283, mode: `MaxEncodedLen`) - /// Storage: `ForeignAssets::Account` (r:1001 w:1000) - /// Proof: `ForeignAssets::Account` (`max_values`: None, `max_size`: Some(732), added: 3207, mode: `MaxEncodedLen`) - /// Storage: `System::Account` (r:1000 w:1000) - /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`) - /// The range of component `c` is `[0, 1000]`. - /// The range of component `c` is `[0, 1000]`. - fn destroy_accounts(c: u32, ) -> Weight { - // Proof Size summary in bytes: - // Measured: `0 + c * (208 ±0)` - // Estimated: `4273 + c * (3207 ±0)` - // Minimum execution time: 17_814_000 picoseconds. - Weight::from_parts(18_006_000, 0) - .saturating_add(Weight::from_parts(0, 4273)) - // Standard Error: 10_358 - .saturating_add(Weight::from_parts(15_409_972, 0).saturating_mul(c.into())) - .saturating_add(T::DbWeight::get().reads(2)) - .saturating_add(T::DbWeight::get().reads((2_u64).saturating_mul(c.into()))) - .saturating_add(T::DbWeight::get().writes(1)) - .saturating_add(T::DbWeight::get().writes((2_u64).saturating_mul(c.into()))) - .saturating_add(Weight::from_parts(0, 3207).saturating_mul(c.into())) - } - /// Storage: `ForeignAssets::Asset` (r:1 w:1) - /// Proof: `ForeignAssets::Asset` (`max_values`: None, `max_size`: Some(808), added: 3283, mode: `MaxEncodedLen`) - /// Storage: `ForeignAssets::Approvals` (r:1001 w:1000) - /// Proof: `ForeignAssets::Approvals` (`max_values`: None, `max_size`: Some(746), added: 3221, mode: `MaxEncodedLen`) - /// The range of component `a` is `[0, 1000]`. - /// The range of component `a` is `[0, 1000]`. - fn destroy_approvals(a: u32, ) -> Weight { - // Proof Size summary in bytes: - // Measured: `413 + a * (86 ±0)` - // Estimated: `4273 + a * (3221 ±0)` - // Minimum execution time: 18_957_000 picoseconds. - Weight::from_parts(19_347_000, 0) - .saturating_add(Weight::from_parts(0, 4273)) - // Standard Error: 5_051 - .saturating_add(Weight::from_parts(15_416_931, 0).saturating_mul(a.into())) - .saturating_add(T::DbWeight::get().reads(2)) - .saturating_add(T::DbWeight::get().reads((1_u64).saturating_mul(a.into()))) - .saturating_add(T::DbWeight::get().writes(1)) - .saturating_add(T::DbWeight::get().writes((1_u64).saturating_mul(a.into()))) - .saturating_add(Weight::from_parts(0, 3221).saturating_mul(a.into())) - } - /// Storage: `ForeignAssets::Asset` (r:1 w:1) - /// Proof: `ForeignAssets::Asset` (`max_values`: None, `max_size`: Some(808), added: 3283, mode: `MaxEncodedLen`) - /// Storage: `ForeignAssets::Metadata` (r:1 w:0) - /// Proof: `ForeignAssets::Metadata` (`max_values`: None, `max_size`: Some(738), added: 3213, mode: `MaxEncodedLen`) - fn finish_destroy() -> Weight { - // Proof Size summary in bytes: - // Measured: `242` - // Estimated: `4273` - // Minimum execution time: 15_409_000 picoseconds. - Weight::from_parts(15_835_000, 0) - .saturating_add(Weight::from_parts(0, 4273)) - .saturating_add(T::DbWeight::get().reads(2)) - .saturating_add(T::DbWeight::get().writes(1)) - } - /// Storage: `ForeignAssets::Asset` (r:1 w:1) - /// Proof: `ForeignAssets::Asset` (`max_values`: None, `max_size`: Some(808), added: 3283, mode: `MaxEncodedLen`) - /// Storage: `ForeignAssets::Account` (r:1 w:1) - /// Proof: `ForeignAssets::Account` (`max_values`: None, `max_size`: Some(732), added: 3207, mode: `MaxEncodedLen`) - fn mint() -> Weight { - // Proof Size summary in bytes: - // Measured: `242` - // Estimated: `4273` - // Minimum execution time: 26_753_000 picoseconds. - Weight::from_parts(27_349_000, 0) - .saturating_add(Weight::from_parts(0, 4273)) - .saturating_add(T::DbWeight::get().reads(2)) - .saturating_add(T::DbWeight::get().writes(2)) - } - /// Storage: `ForeignAssets::Asset` (r:1 w:1) - /// Proof: `ForeignAssets::Asset` (`max_values`: None, `max_size`: Some(808), added: 3283, mode: `MaxEncodedLen`) - /// Storage: `ForeignAssets::Account` (r:1 w:1) - /// Proof: `ForeignAssets::Account` (`max_values`: None, `max_size`: Some(732), added: 3207, mode: `MaxEncodedLen`) - fn burn() -> Weight { - // Proof Size summary in bytes: - // Measured: `350` - // Estimated: `4273` - // Minimum execution time: 33_918_000 picoseconds. - Weight::from_parts(34_624_000, 0) - .saturating_add(Weight::from_parts(0, 4273)) - .saturating_add(T::DbWeight::get().reads(2)) - .saturating_add(T::DbWeight::get().writes(2)) - } - /// Storage: `ForeignAssets::Asset` (r:1 w:1) - /// Proof: `ForeignAssets::Asset` (`max_values`: None, `max_size`: Some(808), added: 3283, mode: `MaxEncodedLen`) - /// Storage: `ForeignAssets::Account` (r:2 w:2) - /// Proof: `ForeignAssets::Account` (`max_values`: None, `max_size`: Some(732), added: 3207, mode: `MaxEncodedLen`) - /// Storage: `System::Account` (r:1 w:1) - /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`) - fn transfer() -> Weight { - // Proof Size summary in bytes: - // Measured: `350` - // Estimated: `7404` - // Minimum execution time: 45_863_000 picoseconds. - Weight::from_parts(46_674_000, 0) - .saturating_add(Weight::from_parts(0, 7404)) - .saturating_add(T::DbWeight::get().reads(4)) - .saturating_add(T::DbWeight::get().writes(4)) - } - /// Storage: `ForeignAssets::Asset` (r:1 w:1) - /// Proof: `ForeignAssets::Asset` (`max_values`: None, `max_size`: Some(808), added: 3283, mode: `MaxEncodedLen`) - /// Storage: `ForeignAssets::Account` (r:2 w:2) - /// Proof: `ForeignAssets::Account` (`max_values`: None, `max_size`: Some(732), added: 3207, mode: `MaxEncodedLen`) - /// 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: `350` - // Estimated: `7404` - // Minimum execution time: 40_592_000 picoseconds. - Weight::from_parts(41_582_000, 0) - .saturating_add(Weight::from_parts(0, 7404)) - .saturating_add(T::DbWeight::get().reads(4)) - .saturating_add(T::DbWeight::get().writes(4)) - } - /// Storage: `ForeignAssets::Asset` (r:1 w:1) - /// Proof: `ForeignAssets::Asset` (`max_values`: None, `max_size`: Some(808), added: 3283, mode: `MaxEncodedLen`) - /// Storage: `ForeignAssets::Account` (r:2 w:2) - /// Proof: `ForeignAssets::Account` (`max_values`: None, `max_size`: Some(732), added: 3207, mode: `MaxEncodedLen`) - /// Storage: `System::Account` (r:1 w:1) - /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`) - fn force_transfer() -> Weight { - // Proof Size summary in bytes: - // Measured: `350` - // Estimated: `7404` - // Minimum execution time: 46_170_000 picoseconds. - Weight::from_parts(46_880_000, 0) - .saturating_add(Weight::from_parts(0, 7404)) - .saturating_add(T::DbWeight::get().reads(4)) - .saturating_add(T::DbWeight::get().writes(4)) - } - /// Storage: `ForeignAssets::Asset` (r:1 w:0) - /// Proof: `ForeignAssets::Asset` (`max_values`: None, `max_size`: Some(808), added: 3283, mode: `MaxEncodedLen`) - /// Storage: `ForeignAssets::Account` (r:1 w:1) - /// Proof: `ForeignAssets::Account` (`max_values`: None, `max_size`: Some(732), added: 3207, mode: `MaxEncodedLen`) - fn freeze() -> Weight { - // Proof Size summary in bytes: - // Measured: `350` - // Estimated: `4273` - // Minimum execution time: 18_421_000 picoseconds. - Weight::from_parts(19_003_000, 0) - .saturating_add(Weight::from_parts(0, 4273)) - .saturating_add(T::DbWeight::get().reads(2)) - .saturating_add(T::DbWeight::get().writes(1)) - } - /// Storage: `ForeignAssets::Asset` (r:1 w:0) - /// Proof: `ForeignAssets::Asset` (`max_values`: None, `max_size`: Some(808), added: 3283, mode: `MaxEncodedLen`) - /// Storage: `ForeignAssets::Account` (r:1 w:1) - /// Proof: `ForeignAssets::Account` (`max_values`: None, `max_size`: Some(732), added: 3207, mode: `MaxEncodedLen`) - fn thaw() -> Weight { - // Proof Size summary in bytes: - // Measured: `350` - // Estimated: `4273` - // Minimum execution time: 18_009_000 picoseconds. - Weight::from_parts(18_683_000, 0) - .saturating_add(Weight::from_parts(0, 4273)) - .saturating_add(T::DbWeight::get().reads(2)) - .saturating_add(T::DbWeight::get().writes(1)) - } - /// Storage: `ForeignAssets::Asset` (r:1 w:1) - /// Proof: `ForeignAssets::Asset` (`max_values`: None, `max_size`: Some(808), added: 3283, mode: `MaxEncodedLen`) - fn freeze_asset() -> Weight { - // Proof Size summary in bytes: - // Measured: `276` - // Estimated: `4273` - // Minimum execution time: 14_702_000 picoseconds. - Weight::from_parts(15_118_000, 0) - .saturating_add(Weight::from_parts(0, 4273)) - .saturating_add(T::DbWeight::get().reads(1)) - .saturating_add(T::DbWeight::get().writes(1)) - } - /// Storage: `ForeignAssets::Asset` (r:1 w:1) - /// Proof: `ForeignAssets::Asset` (`max_values`: None, `max_size`: Some(808), added: 3283, mode: `MaxEncodedLen`) - fn thaw_asset() -> Weight { - // Proof Size summary in bytes: - // Measured: `276` - // Estimated: `4273` - // Minimum execution time: 14_329_000 picoseconds. - Weight::from_parts(14_857_000, 0) - .saturating_add(Weight::from_parts(0, 4273)) - .saturating_add(T::DbWeight::get().reads(1)) - .saturating_add(T::DbWeight::get().writes(1)) - } - /// Storage: `ForeignAssets::Asset` (r:1 w:1) - /// Proof: `ForeignAssets::Asset` (`max_values`: None, `max_size`: Some(808), added: 3283, mode: `MaxEncodedLen`) - /// Storage: `ForeignAssets::Metadata` (r:1 w:0) - /// Proof: `ForeignAssets::Metadata` (`max_values`: None, `max_size`: Some(738), added: 3213, mode: `MaxEncodedLen`) - fn transfer_ownership() -> Weight { - // Proof Size summary in bytes: - // Measured: `242` - // Estimated: `4273` - // Minimum execution time: 15_776_000 picoseconds. - Weight::from_parts(16_337_000, 0) - .saturating_add(Weight::from_parts(0, 4273)) - .saturating_add(T::DbWeight::get().reads(2)) - .saturating_add(T::DbWeight::get().writes(1)) - } - /// Storage: `ForeignAssets::Asset` (r:1 w:1) - /// Proof: `ForeignAssets::Asset` (`max_values`: None, `max_size`: Some(808), added: 3283, mode: `MaxEncodedLen`) - fn set_team() -> Weight { - // Proof Size summary in bytes: - // Measured: `242` - // Estimated: `4273` - // Minimum execution time: 14_290_000 picoseconds. - Weight::from_parts(14_655_000, 0) - .saturating_add(Weight::from_parts(0, 4273)) - .saturating_add(T::DbWeight::get().reads(1)) - .saturating_add(T::DbWeight::get().writes(1)) - } - /// Storage: `ForeignAssets::Asset` (r:1 w:0) - /// Proof: `ForeignAssets::Asset` (`max_values`: None, `max_size`: Some(808), added: 3283, mode: `MaxEncodedLen`) - /// Storage: `ForeignAssets::Metadata` (r:1 w:1) - /// Proof: `ForeignAssets::Metadata` (`max_values`: None, `max_size`: Some(738), added: 3213, mode: `MaxEncodedLen`) - /// The range of component `n` is `[0, 50]`. - /// The range of component `s` is `[0, 50]`. - /// The range of component `n` is `[0, 50]`. - /// The range of component `s` is `[0, 50]`. - fn set_metadata(_n: u32, s: u32, ) -> Weight { - // Proof Size summary in bytes: - // Measured: `242` - // Estimated: `4273` - // Minimum execution time: 29_296_000 picoseconds. - Weight::from_parts(30_512_261, 0) - .saturating_add(Weight::from_parts(0, 4273)) - // Standard Error: 474 - .saturating_add(Weight::from_parts(530, 0).saturating_mul(s.into())) - .saturating_add(T::DbWeight::get().reads(2)) - .saturating_add(T::DbWeight::get().writes(1)) - } - /// Storage: `ForeignAssets::Asset` (r:1 w:0) - /// Proof: `ForeignAssets::Asset` (`max_values`: None, `max_size`: Some(808), added: 3283, mode: `MaxEncodedLen`) - /// Storage: `ForeignAssets::Metadata` (r:1 w:1) - /// Proof: `ForeignAssets::Metadata` (`max_values`: None, `max_size`: Some(738), added: 3213, mode: `MaxEncodedLen`) - fn clear_metadata() -> Weight { - // Proof Size summary in bytes: - // Measured: `406` - // Estimated: `4273` - // Minimum execution time: 30_342_000 picoseconds. - Weight::from_parts(31_030_000, 0) - .saturating_add(Weight::from_parts(0, 4273)) - .saturating_add(T::DbWeight::get().reads(2)) - .saturating_add(T::DbWeight::get().writes(1)) - } - /// Storage: `ForeignAssets::Asset` (r:1 w:0) - /// Proof: `ForeignAssets::Asset` (`max_values`: None, `max_size`: Some(808), added: 3283, mode: `MaxEncodedLen`) - /// Storage: `ForeignAssets::Metadata` (r:1 w:1) - /// Proof: `ForeignAssets::Metadata` (`max_values`: None, `max_size`: Some(738), added: 3213, mode: `MaxEncodedLen`) - /// The range of component `n` is `[0, 50]`. - /// The range of component `s` is `[0, 50]`. - /// The range of component `n` is `[0, 50]`. - /// The range of component `s` is `[0, 50]`. - fn force_set_metadata(n: u32, s: u32, ) -> Weight { - // Proof Size summary in bytes: - // Measured: `81` - // Estimated: `4273` - // Minimum execution time: 13_574_000 picoseconds. - Weight::from_parts(14_181_016, 0) - .saturating_add(Weight::from_parts(0, 4273)) - // Standard Error: 262 - .saturating_add(Weight::from_parts(420, 0).saturating_mul(n.into())) - // Standard Error: 262 - .saturating_add(Weight::from_parts(1_118, 0).saturating_mul(s.into())) - .saturating_add(T::DbWeight::get().reads(2)) - .saturating_add(T::DbWeight::get().writes(1)) - } - /// Storage: `ForeignAssets::Asset` (r:1 w:0) - /// Proof: `ForeignAssets::Asset` (`max_values`: None, `max_size`: Some(808), added: 3283, mode: `MaxEncodedLen`) - /// Storage: `ForeignAssets::Metadata` (r:1 w:1) - /// Proof: `ForeignAssets::Metadata` (`max_values`: None, `max_size`: Some(738), added: 3213, mode: `MaxEncodedLen`) - fn force_clear_metadata() -> Weight { - // Proof Size summary in bytes: - // Measured: `406` - // Estimated: `4273` - // Minimum execution time: 29_679_000 picoseconds. - Weight::from_parts(30_346_000, 0) - .saturating_add(Weight::from_parts(0, 4273)) - .saturating_add(T::DbWeight::get().reads(2)) - .saturating_add(T::DbWeight::get().writes(1)) - } - /// Storage: `ForeignAssets::Asset` (r:1 w:1) - /// Proof: `ForeignAssets::Asset` (`max_values`: None, `max_size`: Some(808), added: 3283, mode: `MaxEncodedLen`) - fn force_asset_status() -> Weight { - // Proof Size summary in bytes: - // Measured: `242` - // Estimated: `4273` - // Minimum execution time: 13_334_000 picoseconds. - Weight::from_parts(13_827_000, 0) - .saturating_add(Weight::from_parts(0, 4273)) - .saturating_add(T::DbWeight::get().reads(1)) - .saturating_add(T::DbWeight::get().writes(1)) - } - /// Storage: `ForeignAssets::Asset` (r:1 w:1) - /// Proof: `ForeignAssets::Asset` (`max_values`: None, `max_size`: Some(808), added: 3283, mode: `MaxEncodedLen`) - /// Storage: `ForeignAssets::Approvals` (r:1 w:1) - /// Proof: `ForeignAssets::Approvals` (`max_values`: None, `max_size`: Some(746), added: 3221, mode: `MaxEncodedLen`) - fn approve_transfer() -> Weight { - // Proof Size summary in bytes: - // Measured: `276` - // Estimated: `4273` - // Minimum execution time: 32_648_000 picoseconds. - Weight::from_parts(33_555_000, 0) - .saturating_add(Weight::from_parts(0, 4273)) - .saturating_add(T::DbWeight::get().reads(2)) - .saturating_add(T::DbWeight::get().writes(2)) - } - /// Storage: `ForeignAssets::Asset` (r:1 w:1) - /// Proof: `ForeignAssets::Asset` (`max_values`: None, `max_size`: Some(808), added: 3283, mode: `MaxEncodedLen`) - /// Storage: `ForeignAssets::Approvals` (r:1 w:1) - /// Proof: `ForeignAssets::Approvals` (`max_values`: None, `max_size`: Some(746), added: 3221, mode: `MaxEncodedLen`) - /// Storage: `ForeignAssets::Account` (r:2 w:2) - /// Proof: `ForeignAssets::Account` (`max_values`: None, `max_size`: Some(732), added: 3207, mode: `MaxEncodedLen`) - /// Storage: `System::Account` (r:1 w:1) - /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`) - fn transfer_approved() -> Weight { - // Proof Size summary in bytes: - // Measured: `520` - // Estimated: `7404` - // Minimum execution time: 65_431_000 picoseconds. - Weight::from_parts(66_502_000, 0) - .saturating_add(Weight::from_parts(0, 7404)) - .saturating_add(T::DbWeight::get().reads(5)) - .saturating_add(T::DbWeight::get().writes(5)) - } - /// Storage: `ForeignAssets::Asset` (r:1 w:1) - /// Proof: `ForeignAssets::Asset` (`max_values`: None, `max_size`: Some(808), added: 3283, mode: `MaxEncodedLen`) - /// Storage: `ForeignAssets::Approvals` (r:1 w:1) - /// Proof: `ForeignAssets::Approvals` (`max_values`: None, `max_size`: Some(746), added: 3221, mode: `MaxEncodedLen`) - fn cancel_approval() -> Weight { - // Proof Size summary in bytes: - // Measured: `446` - // Estimated: `4273` - // Minimum execution time: 35_207_000 picoseconds. - Weight::from_parts(35_915_000, 0) - .saturating_add(Weight::from_parts(0, 4273)) - .saturating_add(T::DbWeight::get().reads(2)) - .saturating_add(T::DbWeight::get().writes(2)) - } - /// Storage: `ForeignAssets::Asset` (r:1 w:1) - /// Proof: `ForeignAssets::Asset` (`max_values`: None, `max_size`: Some(808), added: 3283, mode: `MaxEncodedLen`) - /// Storage: `ForeignAssets::Approvals` (r:1 w:1) - /// Proof: `ForeignAssets::Approvals` (`max_values`: None, `max_size`: Some(746), added: 3221, mode: `MaxEncodedLen`) - fn force_cancel_approval() -> Weight { - // Proof Size summary in bytes: - // Measured: `446` - // Estimated: `4273` - // Minimum execution time: 35_768_000 picoseconds. - Weight::from_parts(36_553_000, 0) - .saturating_add(Weight::from_parts(0, 4273)) - .saturating_add(T::DbWeight::get().reads(2)) - .saturating_add(T::DbWeight::get().writes(2)) - } - /// Storage: `ForeignAssets::Asset` (r:1 w:1) - /// Proof: `ForeignAssets::Asset` (`max_values`: None, `max_size`: Some(808), added: 3283, mode: `MaxEncodedLen`) - fn set_min_balance() -> Weight { - // Proof Size summary in bytes: - // Measured: `242` - // Estimated: `4273` - // Minimum execution time: 15_108_000 picoseconds. - Weight::from_parts(15_556_000, 0) - .saturating_add(Weight::from_parts(0, 4273)) - .saturating_add(T::DbWeight::get().reads(1)) - .saturating_add(T::DbWeight::get().writes(1)) - } - /// Storage: `ForeignAssets::Account` (r:1 w:1) - /// Proof: `ForeignAssets::Account` (`max_values`: None, `max_size`: Some(732), added: 3207, mode: `MaxEncodedLen`) - /// Storage: `ForeignAssets::Asset` (r:1 w:1) - /// Proof: `ForeignAssets::Asset` (`max_values`: None, `max_size`: Some(808), added: 3283, mode: `MaxEncodedLen`) - /// Storage: `System::Account` (r:1 w:1) - /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`) - fn touch() -> Weight { - // Proof Size summary in bytes: - // Measured: `345` - // Estimated: `4273` - // Minimum execution time: 34_373_000 picoseconds. - Weight::from_parts(35_200_000, 0) - .saturating_add(Weight::from_parts(0, 4273)) - .saturating_add(T::DbWeight::get().reads(3)) - .saturating_add(T::DbWeight::get().writes(3)) - } - /// Storage: `ForeignAssets::Account` (r:1 w:1) - /// Proof: `ForeignAssets::Account` (`max_values`: None, `max_size`: Some(732), added: 3207, mode: `MaxEncodedLen`) - /// Storage: `ForeignAssets::Asset` (r:1 w:1) - /// Proof: `ForeignAssets::Asset` (`max_values`: None, `max_size`: Some(808), added: 3283, mode: `MaxEncodedLen`) - fn touch_other() -> Weight { - // Proof Size summary in bytes: - // Measured: `242` - // Estimated: `4273` - // Minimum execution time: 32_201_000 picoseconds. - Weight::from_parts(33_591_000, 0) - .saturating_add(Weight::from_parts(0, 4273)) - .saturating_add(T::DbWeight::get().reads(2)) - .saturating_add(T::DbWeight::get().writes(2)) - } - /// Storage: `ForeignAssets::Account` (r:1 w:1) - /// Proof: `ForeignAssets::Account` (`max_values`: None, `max_size`: Some(732), added: 3207, mode: `MaxEncodedLen`) - /// Storage: `ForeignAssets::Asset` (r:1 w:1) - /// Proof: `ForeignAssets::Asset` (`max_values`: None, `max_size`: Some(808), added: 3283, mode: `MaxEncodedLen`) - /// Storage: `System::Account` (r:1 w:1) - /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`) - fn refund() -> Weight { - // Proof Size summary in bytes: - // Measured: `471` - // Estimated: `4273` - // Minimum execution time: 31_148_000 picoseconds. - Weight::from_parts(31_751_000, 0) - .saturating_add(Weight::from_parts(0, 4273)) - .saturating_add(T::DbWeight::get().reads(3)) - .saturating_add(T::DbWeight::get().writes(3)) - } - /// Storage: `ForeignAssets::Account` (r:1 w:1) - /// Proof: `ForeignAssets::Account` (`max_values`: None, `max_size`: Some(732), added: 3207, mode: `MaxEncodedLen`) - /// Storage: `ForeignAssets::Asset` (r:1 w:1) - /// Proof: `ForeignAssets::Asset` (`max_values`: None, `max_size`: Some(808), added: 3283, mode: `MaxEncodedLen`) - fn refund_other() -> Weight { - // Proof Size summary in bytes: - // Measured: `401` - // Estimated: `4273` - // Minimum execution time: 29_127_000 picoseconds. - Weight::from_parts(29_922_000, 0) - .saturating_add(Weight::from_parts(0, 4273)) - .saturating_add(T::DbWeight::get().reads(2)) - .saturating_add(T::DbWeight::get().writes(2)) - } - /// Storage: `ForeignAssets::Asset` (r:1 w:0) - /// Proof: `ForeignAssets::Asset` (`max_values`: None, `max_size`: Some(808), added: 3283, mode: `MaxEncodedLen`) - /// Storage: `ForeignAssets::Account` (r:1 w:1) - /// Proof: `ForeignAssets::Account` (`max_values`: None, `max_size`: Some(732), added: 3207, mode: `MaxEncodedLen`) - fn block() -> Weight { - // Proof Size summary in bytes: - // Measured: `350` - // Estimated: `4273` - // Minimum execution time: 18_386_000 picoseconds. - Weight::from_parts(18_762_000, 0) - .saturating_add(Weight::from_parts(0, 4273)) - .saturating_add(T::DbWeight::get().reads(2)) - .saturating_add(T::DbWeight::get().writes(1)) - } -} diff --git a/cumulus/parachains/runtimes/assets/asset-hub-polkadot/src/weights/pallet_assets_local.rs b/cumulus/parachains/runtimes/assets/asset-hub-polkadot/src/weights/pallet_assets_local.rs deleted file mode 100644 index c8420e72ba21..000000000000 --- a/cumulus/parachains/runtimes/assets/asset-hub-polkadot/src/weights/pallet_assets_local.rs +++ /dev/null @@ -1,529 +0,0 @@ -// Copyright (C) Parity Technologies (UK) Ltd. -// This file is part of Cumulus. - -// Cumulus 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. - -// Cumulus 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 Cumulus. If not, see . - -//! Autogenerated weights for `pallet_assets` -//! -//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev -//! DATE: 2023-07-31, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` -//! WORST CASE MAP SIZE: `1000000` -//! HOSTNAME: `runner-ynta1nyy-project-238-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz` -//! EXECUTION: ``, WASM-EXECUTION: `Compiled`, CHAIN: `Some("asset-hub-polkadot-dev")`, DB CACHE: 1024 - -// Executed Command: -// ./target/production/polkadot-parachain -// benchmark -// pallet -// --chain=asset-hub-polkadot-dev -// --wasm-execution=compiled -// --pallet=pallet_assets -// --no-storage-info -// --no-median-slopes -// --no-min-squares -// --extrinsic=* -// --steps=50 -// --repeat=20 -// --json -// --header=./file_header.txt -// --output=./parachains/runtimes/assets/asset-hub-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_assets`. -pub struct WeightInfo(PhantomData); -impl pallet_assets::WeightInfo for WeightInfo { - /// Storage: `Assets::Asset` (r:1 w:1) - /// Proof: `Assets::Asset` (`max_values`: None, `max_size`: Some(210), added: 2685, mode: `MaxEncodedLen`) - /// Storage: `System::Account` (r:1 w:1) - /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`) - fn create() -> Weight { - // Proof Size summary in bytes: - // Measured: `109` - // Estimated: `3675` - // Minimum execution time: 26_698_000 picoseconds. - Weight::from_parts(27_507_000, 0) - .saturating_add(Weight::from_parts(0, 3675)) - .saturating_add(T::DbWeight::get().reads(2)) - .saturating_add(T::DbWeight::get().writes(2)) - } - /// Storage: `Assets::Asset` (r:1 w:1) - /// Proof: `Assets::Asset` (`max_values`: None, `max_size`: Some(210), added: 2685, mode: `MaxEncodedLen`) - fn force_create() -> Weight { - // Proof Size summary in bytes: - // Measured: `6` - // Estimated: `3675` - // Minimum execution time: 10_833_000 picoseconds. - Weight::from_parts(11_314_000, 0) - .saturating_add(Weight::from_parts(0, 3675)) - .saturating_add(T::DbWeight::get().reads(1)) - .saturating_add(T::DbWeight::get().writes(1)) - } - /// Storage: `Assets::Asset` (r:1 w:1) - /// Proof: `Assets::Asset` (`max_values`: None, `max_size`: Some(210), added: 2685, mode: `MaxEncodedLen`) - fn start_destroy() -> Weight { - // Proof Size summary in bytes: - // Measured: `277` - // Estimated: `3675` - // Minimum execution time: 13_389_000 picoseconds. - Weight::from_parts(14_231_000, 0) - .saturating_add(Weight::from_parts(0, 3675)) - .saturating_add(T::DbWeight::get().reads(1)) - .saturating_add(T::DbWeight::get().writes(1)) - } - /// Storage: `Assets::Asset` (r:1 w:1) - /// Proof: `Assets::Asset` (`max_values`: None, `max_size`: Some(210), added: 2685, mode: `MaxEncodedLen`) - /// Storage: `Assets::Account` (r:1001 w:1000) - /// Proof: `Assets::Account` (`max_values`: None, `max_size`: Some(134), added: 2609, mode: `MaxEncodedLen`) - /// Storage: `System::Account` (r:1000 w:1000) - /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`) - /// The range of component `c` is `[0, 1000]`. - /// The range of component `c` is `[0, 1000]`. - fn destroy_accounts(c: u32, ) -> Weight { - // Proof Size summary in bytes: - // Measured: `0 + c * (208 ±0)` - // Estimated: `3675 + c * (2609 ±0)` - // Minimum execution time: 16_027_000 picoseconds. - Weight::from_parts(16_455_000, 0) - .saturating_add(Weight::from_parts(0, 3675)) - // Standard Error: 10_266 - .saturating_add(Weight::from_parts(15_263_742, 0).saturating_mul(c.into())) - .saturating_add(T::DbWeight::get().reads(2)) - .saturating_add(T::DbWeight::get().reads((2_u64).saturating_mul(c.into()))) - .saturating_add(T::DbWeight::get().writes(1)) - .saturating_add(T::DbWeight::get().writes((2_u64).saturating_mul(c.into()))) - .saturating_add(Weight::from_parts(0, 2609).saturating_mul(c.into())) - } - /// Storage: `Assets::Asset` (r:1 w:1) - /// Proof: `Assets::Asset` (`max_values`: None, `max_size`: Some(210), added: 2685, mode: `MaxEncodedLen`) - /// Storage: `Assets::Approvals` (r:1001 w:1000) - /// Proof: `Assets::Approvals` (`max_values`: None, `max_size`: Some(148), added: 2623, mode: `MaxEncodedLen`) - /// The range of component `a` is `[0, 1000]`. - /// The range of component `a` is `[0, 1000]`. - fn destroy_approvals(a: u32, ) -> Weight { - // Proof Size summary in bytes: - // Measured: `414 + a * (86 ±0)` - // Estimated: `3675 + a * (2623 ±0)` - // Minimum execution time: 17_167_000 picoseconds. - Weight::from_parts(17_397_000, 0) - .saturating_add(Weight::from_parts(0, 3675)) - // Standard Error: 5_072 - .saturating_add(Weight::from_parts(15_429_203, 0).saturating_mul(a.into())) - .saturating_add(T::DbWeight::get().reads(2)) - .saturating_add(T::DbWeight::get().reads((1_u64).saturating_mul(a.into()))) - .saturating_add(T::DbWeight::get().writes(1)) - .saturating_add(T::DbWeight::get().writes((1_u64).saturating_mul(a.into()))) - .saturating_add(Weight::from_parts(0, 2623).saturating_mul(a.into())) - } - /// Storage: `Assets::Asset` (r:1 w:1) - /// Proof: `Assets::Asset` (`max_values`: None, `max_size`: Some(210), added: 2685, mode: `MaxEncodedLen`) - /// Storage: `Assets::Metadata` (r:1 w:0) - /// Proof: `Assets::Metadata` (`max_values`: None, `max_size`: Some(140), added: 2615, mode: `MaxEncodedLen`) - fn finish_destroy() -> Weight { - // Proof Size summary in bytes: - // Measured: `243` - // Estimated: `3675` - // Minimum execution time: 13_694_000 picoseconds. - Weight::from_parts(14_239_000, 0) - .saturating_add(Weight::from_parts(0, 3675)) - .saturating_add(T::DbWeight::get().reads(2)) - .saturating_add(T::DbWeight::get().writes(1)) - } - /// Storage: `Assets::Asset` (r:1 w:1) - /// Proof: `Assets::Asset` (`max_values`: None, `max_size`: Some(210), added: 2685, mode: `MaxEncodedLen`) - /// Storage: `Assets::Account` (r:1 w:1) - /// Proof: `Assets::Account` (`max_values`: None, `max_size`: Some(134), added: 2609, mode: `MaxEncodedLen`) - fn mint() -> Weight { - // Proof Size summary in bytes: - // Measured: `243` - // Estimated: `3675` - // Minimum execution time: 24_406_000 picoseconds. - Weight::from_parts(24_981_000, 0) - .saturating_add(Weight::from_parts(0, 3675)) - .saturating_add(T::DbWeight::get().reads(2)) - .saturating_add(T::DbWeight::get().writes(2)) - } - /// Storage: `Assets::Asset` (r:1 w:1) - /// Proof: `Assets::Asset` (`max_values`: None, `max_size`: Some(210), added: 2685, mode: `MaxEncodedLen`) - /// Storage: `Assets::Account` (r:1 w:1) - /// Proof: `Assets::Account` (`max_values`: None, `max_size`: Some(134), added: 2609, mode: `MaxEncodedLen`) - fn burn() -> Weight { - // Proof Size summary in bytes: - // Measured: `351` - // Estimated: `3675` - // Minimum execution time: 31_372_000 picoseconds. - Weight::from_parts(32_021_000, 0) - .saturating_add(Weight::from_parts(0, 3675)) - .saturating_add(T::DbWeight::get().reads(2)) - .saturating_add(T::DbWeight::get().writes(2)) - } - /// Storage: `Assets::Asset` (r:1 w:1) - /// Proof: `Assets::Asset` (`max_values`: None, `max_size`: Some(210), added: 2685, mode: `MaxEncodedLen`) - /// Storage: `Assets::Account` (r:2 w:2) - /// Proof: `Assets::Account` (`max_values`: None, `max_size`: Some(134), added: 2609, mode: `MaxEncodedLen`) - /// Storage: `System::Account` (r:1 w:1) - /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`) - fn transfer() -> Weight { - // Proof Size summary in bytes: - // Measured: `351` - // Estimated: `6208` - // Minimum execution time: 42_982_000 picoseconds. - Weight::from_parts(43_918_000, 0) - .saturating_add(Weight::from_parts(0, 6208)) - .saturating_add(T::DbWeight::get().reads(4)) - .saturating_add(T::DbWeight::get().writes(4)) - } - /// Storage: `Assets::Asset` (r:1 w:1) - /// Proof: `Assets::Asset` (`max_values`: None, `max_size`: Some(210), added: 2685, mode: `MaxEncodedLen`) - /// Storage: `Assets::Account` (r:2 w:2) - /// Proof: `Assets::Account` (`max_values`: None, `max_size`: Some(134), added: 2609, mode: `MaxEncodedLen`) - /// 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: `351` - // Estimated: `6208` - // Minimum execution time: 37_161_000 picoseconds. - Weight::from_parts(38_756_000, 0) - .saturating_add(Weight::from_parts(0, 6208)) - .saturating_add(T::DbWeight::get().reads(4)) - .saturating_add(T::DbWeight::get().writes(4)) - } - /// Storage: `Assets::Asset` (r:1 w:1) - /// Proof: `Assets::Asset` (`max_values`: None, `max_size`: Some(210), added: 2685, mode: `MaxEncodedLen`) - /// Storage: `Assets::Account` (r:2 w:2) - /// Proof: `Assets::Account` (`max_values`: None, `max_size`: Some(134), added: 2609, mode: `MaxEncodedLen`) - /// Storage: `System::Account` (r:1 w:1) - /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`) - fn force_transfer() -> Weight { - // Proof Size summary in bytes: - // Measured: `351` - // Estimated: `6208` - // Minimum execution time: 43_141_000 picoseconds. - Weight::from_parts(44_187_000, 0) - .saturating_add(Weight::from_parts(0, 6208)) - .saturating_add(T::DbWeight::get().reads(4)) - .saturating_add(T::DbWeight::get().writes(4)) - } - /// Storage: `Assets::Asset` (r:1 w:0) - /// Proof: `Assets::Asset` (`max_values`: None, `max_size`: Some(210), added: 2685, mode: `MaxEncodedLen`) - /// Storage: `Assets::Account` (r:1 w:1) - /// Proof: `Assets::Account` (`max_values`: None, `max_size`: Some(134), added: 2609, mode: `MaxEncodedLen`) - fn freeze() -> Weight { - // Proof Size summary in bytes: - // Measured: `351` - // Estimated: `3675` - // Minimum execution time: 16_721_000 picoseconds. - Weight::from_parts(17_433_000, 0) - .saturating_add(Weight::from_parts(0, 3675)) - .saturating_add(T::DbWeight::get().reads(2)) - .saturating_add(T::DbWeight::get().writes(1)) - } - /// Storage: `Assets::Asset` (r:1 w:0) - /// Proof: `Assets::Asset` (`max_values`: None, `max_size`: Some(210), added: 2685, mode: `MaxEncodedLen`) - /// Storage: `Assets::Account` (r:1 w:1) - /// Proof: `Assets::Account` (`max_values`: None, `max_size`: Some(134), added: 2609, mode: `MaxEncodedLen`) - fn thaw() -> Weight { - // Proof Size summary in bytes: - // Measured: `351` - // Estimated: `3675` - // Minimum execution time: 16_623_000 picoseconds. - Weight::from_parts(17_110_000, 0) - .saturating_add(Weight::from_parts(0, 3675)) - .saturating_add(T::DbWeight::get().reads(2)) - .saturating_add(T::DbWeight::get().writes(1)) - } - /// Storage: `Assets::Asset` (r:1 w:1) - /// Proof: `Assets::Asset` (`max_values`: None, `max_size`: Some(210), added: 2685, mode: `MaxEncodedLen`) - fn freeze_asset() -> Weight { - // Proof Size summary in bytes: - // Measured: `277` - // Estimated: `3675` - // Minimum execution time: 13_079_000 picoseconds. - Weight::from_parts(13_700_000, 0) - .saturating_add(Weight::from_parts(0, 3675)) - .saturating_add(T::DbWeight::get().reads(1)) - .saturating_add(T::DbWeight::get().writes(1)) - } - /// Storage: `Assets::Asset` (r:1 w:1) - /// Proof: `Assets::Asset` (`max_values`: None, `max_size`: Some(210), added: 2685, mode: `MaxEncodedLen`) - fn thaw_asset() -> Weight { - // Proof Size summary in bytes: - // Measured: `277` - // Estimated: `3675` - // Minimum execution time: 13_026_000 picoseconds. - Weight::from_parts(13_444_000, 0) - .saturating_add(Weight::from_parts(0, 3675)) - .saturating_add(T::DbWeight::get().reads(1)) - .saturating_add(T::DbWeight::get().writes(1)) - } - /// Storage: `Assets::Asset` (r:1 w:1) - /// Proof: `Assets::Asset` (`max_values`: None, `max_size`: Some(210), added: 2685, mode: `MaxEncodedLen`) - /// Storage: `Assets::Metadata` (r:1 w:0) - /// Proof: `Assets::Metadata` (`max_values`: None, `max_size`: Some(140), added: 2615, mode: `MaxEncodedLen`) - fn transfer_ownership() -> Weight { - // Proof Size summary in bytes: - // Measured: `243` - // Estimated: `3675` - // Minimum execution time: 13_945_000 picoseconds. - Weight::from_parts(14_792_000, 0) - .saturating_add(Weight::from_parts(0, 3675)) - .saturating_add(T::DbWeight::get().reads(2)) - .saturating_add(T::DbWeight::get().writes(1)) - } - /// Storage: `Assets::Asset` (r:1 w:1) - /// Proof: `Assets::Asset` (`max_values`: None, `max_size`: Some(210), added: 2685, mode: `MaxEncodedLen`) - fn set_team() -> Weight { - // Proof Size summary in bytes: - // Measured: `243` - // Estimated: `3675` - // Minimum execution time: 12_800_000 picoseconds. - Weight::from_parts(13_183_000, 0) - .saturating_add(Weight::from_parts(0, 3675)) - .saturating_add(T::DbWeight::get().reads(1)) - .saturating_add(T::DbWeight::get().writes(1)) - } - /// Storage: `Assets::Asset` (r:1 w:0) - /// Proof: `Assets::Asset` (`max_values`: None, `max_size`: Some(210), added: 2685, mode: `MaxEncodedLen`) - /// Storage: `Assets::Metadata` (r:1 w:1) - /// Proof: `Assets::Metadata` (`max_values`: None, `max_size`: Some(140), added: 2615, mode: `MaxEncodedLen`) - /// The range of component `n` is `[0, 50]`. - /// The range of component `s` is `[0, 50]`. - /// The range of component `n` is `[0, 50]`. - /// The range of component `s` is `[0, 50]`. - fn set_metadata(_n: u32, s: u32, ) -> Weight { - // Proof Size summary in bytes: - // Measured: `243` - // Estimated: `3675` - // Minimum execution time: 27_637_000 picoseconds. - Weight::from_parts(28_967_060, 0) - .saturating_add(Weight::from_parts(0, 3675)) - // Standard Error: 464 - .saturating_add(Weight::from_parts(572, 0).saturating_mul(s.into())) - .saturating_add(T::DbWeight::get().reads(2)) - .saturating_add(T::DbWeight::get().writes(1)) - } - /// Storage: `Assets::Asset` (r:1 w:0) - /// Proof: `Assets::Asset` (`max_values`: None, `max_size`: Some(210), added: 2685, mode: `MaxEncodedLen`) - /// Storage: `Assets::Metadata` (r:1 w:1) - /// Proof: `Assets::Metadata` (`max_values`: None, `max_size`: Some(140), added: 2615, mode: `MaxEncodedLen`) - fn clear_metadata() -> Weight { - // Proof Size summary in bytes: - // Measured: `407` - // Estimated: `3675` - // Minimum execution time: 28_427_000 picoseconds. - Weight::from_parts(28_961_000, 0) - .saturating_add(Weight::from_parts(0, 3675)) - .saturating_add(T::DbWeight::get().reads(2)) - .saturating_add(T::DbWeight::get().writes(1)) - } - /// Storage: `Assets::Asset` (r:1 w:0) - /// Proof: `Assets::Asset` (`max_values`: None, `max_size`: Some(210), added: 2685, mode: `MaxEncodedLen`) - /// Storage: `Assets::Metadata` (r:1 w:1) - /// Proof: `Assets::Metadata` (`max_values`: None, `max_size`: Some(140), added: 2615, mode: `MaxEncodedLen`) - /// The range of component `n` is `[0, 50]`. - /// The range of component `s` is `[0, 50]`. - /// The range of component `n` is `[0, 50]`. - /// The range of component `s` is `[0, 50]`. - fn force_set_metadata(_n: u32, s: u32, ) -> Weight { - // Proof Size summary in bytes: - // Measured: `82` - // Estimated: `3675` - // Minimum execution time: 12_251_000 picoseconds. - Weight::from_parts(12_928_907, 0) - .saturating_add(Weight::from_parts(0, 3675)) - // Standard Error: 244 - .saturating_add(Weight::from_parts(1_800, 0).saturating_mul(s.into())) - .saturating_add(T::DbWeight::get().reads(2)) - .saturating_add(T::DbWeight::get().writes(1)) - } - /// Storage: `Assets::Asset` (r:1 w:0) - /// Proof: `Assets::Asset` (`max_values`: None, `max_size`: Some(210), added: 2685, mode: `MaxEncodedLen`) - /// Storage: `Assets::Metadata` (r:1 w:1) - /// Proof: `Assets::Metadata` (`max_values`: None, `max_size`: Some(140), added: 2615, mode: `MaxEncodedLen`) - fn force_clear_metadata() -> Weight { - // Proof Size summary in bytes: - // Measured: `407` - // Estimated: `3675` - // Minimum execution time: 28_263_000 picoseconds. - Weight::from_parts(29_165_000, 0) - .saturating_add(Weight::from_parts(0, 3675)) - .saturating_add(T::DbWeight::get().reads(2)) - .saturating_add(T::DbWeight::get().writes(1)) - } - /// Storage: `Assets::Asset` (r:1 w:1) - /// Proof: `Assets::Asset` (`max_values`: None, `max_size`: Some(210), added: 2685, mode: `MaxEncodedLen`) - fn force_asset_status() -> Weight { - // Proof Size summary in bytes: - // Measured: `243` - // Estimated: `3675` - // Minimum execution time: 12_343_000 picoseconds. - Weight::from_parts(12_659_000, 0) - .saturating_add(Weight::from_parts(0, 3675)) - .saturating_add(T::DbWeight::get().reads(1)) - .saturating_add(T::DbWeight::get().writes(1)) - } - /// Storage: `Assets::Asset` (r:1 w:1) - /// Proof: `Assets::Asset` (`max_values`: None, `max_size`: Some(210), added: 2685, mode: `MaxEncodedLen`) - /// Storage: `Assets::Approvals` (r:1 w:1) - /// Proof: `Assets::Approvals` (`max_values`: None, `max_size`: Some(148), added: 2623, mode: `MaxEncodedLen`) - fn approve_transfer() -> Weight { - // Proof Size summary in bytes: - // Measured: `277` - // Estimated: `3675` - // Minimum execution time: 31_113_000 picoseconds. - Weight::from_parts(31_798_000, 0) - .saturating_add(Weight::from_parts(0, 3675)) - .saturating_add(T::DbWeight::get().reads(2)) - .saturating_add(T::DbWeight::get().writes(2)) - } - /// Storage: `Assets::Asset` (r:1 w:1) - /// Proof: `Assets::Asset` (`max_values`: None, `max_size`: Some(210), added: 2685, mode: `MaxEncodedLen`) - /// Storage: `Assets::Approvals` (r:1 w:1) - /// Proof: `Assets::Approvals` (`max_values`: None, `max_size`: Some(148), added: 2623, mode: `MaxEncodedLen`) - /// Storage: `Assets::Account` (r:2 w:2) - /// Proof: `Assets::Account` (`max_values`: None, `max_size`: Some(134), added: 2609, mode: `MaxEncodedLen`) - /// Storage: `System::Account` (r:1 w:1) - /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`) - fn transfer_approved() -> Weight { - // Proof Size summary in bytes: - // Measured: `521` - // Estimated: `6208` - // Minimum execution time: 61_428_000 picoseconds. - Weight::from_parts(62_707_000, 0) - .saturating_add(Weight::from_parts(0, 6208)) - .saturating_add(T::DbWeight::get().reads(5)) - .saturating_add(T::DbWeight::get().writes(5)) - } - /// Storage: `Assets::Asset` (r:1 w:1) - /// Proof: `Assets::Asset` (`max_values`: None, `max_size`: Some(210), added: 2685, mode: `MaxEncodedLen`) - /// Storage: `Assets::Approvals` (r:1 w:1) - /// Proof: `Assets::Approvals` (`max_values`: None, `max_size`: Some(148), added: 2623, mode: `MaxEncodedLen`) - fn cancel_approval() -> Weight { - // Proof Size summary in bytes: - // Measured: `447` - // Estimated: `3675` - // Minimum execution time: 33_538_000 picoseconds. - Weight::from_parts(34_216_000, 0) - .saturating_add(Weight::from_parts(0, 3675)) - .saturating_add(T::DbWeight::get().reads(2)) - .saturating_add(T::DbWeight::get().writes(2)) - } - /// Storage: `Assets::Asset` (r:1 w:1) - /// Proof: `Assets::Asset` (`max_values`: None, `max_size`: Some(210), added: 2685, mode: `MaxEncodedLen`) - /// Storage: `Assets::Approvals` (r:1 w:1) - /// Proof: `Assets::Approvals` (`max_values`: None, `max_size`: Some(148), added: 2623, mode: `MaxEncodedLen`) - fn force_cancel_approval() -> Weight { - // Proof Size summary in bytes: - // Measured: `447` - // Estimated: `3675` - // Minimum execution time: 33_870_000 picoseconds. - Weight::from_parts(34_709_000, 0) - .saturating_add(Weight::from_parts(0, 3675)) - .saturating_add(T::DbWeight::get().reads(2)) - .saturating_add(T::DbWeight::get().writes(2)) - } - /// Storage: `Assets::Asset` (r:1 w:1) - /// Proof: `Assets::Asset` (`max_values`: None, `max_size`: Some(210), added: 2685, mode: `MaxEncodedLen`) - fn set_min_balance() -> Weight { - // Proof Size summary in bytes: - // Measured: `243` - // Estimated: `3675` - // Minimum execution time: 13_358_000 picoseconds. - Weight::from_parts(13_735_000, 0) - .saturating_add(Weight::from_parts(0, 3675)) - .saturating_add(T::DbWeight::get().reads(1)) - .saturating_add(T::DbWeight::get().writes(1)) - } - /// Storage: `Assets::Account` (r:1 w:1) - /// Proof: `Assets::Account` (`max_values`: None, `max_size`: Some(134), added: 2609, mode: `MaxEncodedLen`) - /// Storage: `Assets::Asset` (r:1 w:1) - /// Proof: `Assets::Asset` (`max_values`: None, `max_size`: Some(210), added: 2685, mode: `MaxEncodedLen`) - /// Storage: `System::Account` (r:1 w:1) - /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`) - fn touch() -> Weight { - // Proof Size summary in bytes: - // Measured: `346` - // Estimated: `3675` - // Minimum execution time: 32_159_000 picoseconds. - Weight::from_parts(32_998_000, 0) - .saturating_add(Weight::from_parts(0, 3675)) - .saturating_add(T::DbWeight::get().reads(3)) - .saturating_add(T::DbWeight::get().writes(3)) - } - /// Storage: `Assets::Account` (r:1 w:1) - /// Proof: `Assets::Account` (`max_values`: None, `max_size`: Some(134), added: 2609, mode: `MaxEncodedLen`) - /// Storage: `Assets::Asset` (r:1 w:1) - /// Proof: `Assets::Asset` (`max_values`: None, `max_size`: Some(210), added: 2685, mode: `MaxEncodedLen`) - fn touch_other() -> Weight { - // Proof Size summary in bytes: - // Measured: `243` - // Estimated: `3675` - // Minimum execution time: 30_709_000 picoseconds. - Weight::from_parts(31_486_000, 0) - .saturating_add(Weight::from_parts(0, 3675)) - .saturating_add(T::DbWeight::get().reads(2)) - .saturating_add(T::DbWeight::get().writes(2)) - } - /// Storage: `Assets::Account` (r:1 w:1) - /// Proof: `Assets::Account` (`max_values`: None, `max_size`: Some(134), added: 2609, mode: `MaxEncodedLen`) - /// Storage: `Assets::Asset` (r:1 w:1) - /// Proof: `Assets::Asset` (`max_values`: None, `max_size`: Some(210), added: 2685, mode: `MaxEncodedLen`) - /// Storage: `System::Account` (r:1 w:1) - /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`) - fn refund() -> Weight { - // Proof Size summary in bytes: - // Measured: `472` - // Estimated: `3675` - // Minimum execution time: 29_557_000 picoseconds. - Weight::from_parts(30_510_000, 0) - .saturating_add(Weight::from_parts(0, 3675)) - .saturating_add(T::DbWeight::get().reads(3)) - .saturating_add(T::DbWeight::get().writes(3)) - } - /// Storage: `Assets::Account` (r:1 w:1) - /// Proof: `Assets::Account` (`max_values`: None, `max_size`: Some(134), added: 2609, mode: `MaxEncodedLen`) - /// Storage: `Assets::Asset` (r:1 w:1) - /// Proof: `Assets::Asset` (`max_values`: None, `max_size`: Some(210), added: 2685, mode: `MaxEncodedLen`) - fn refund_other() -> Weight { - // Proof Size summary in bytes: - // Measured: `402` - // Estimated: `3675` - // Minimum execution time: 28_027_000 picoseconds. - Weight::from_parts(28_865_000, 0) - .saturating_add(Weight::from_parts(0, 3675)) - .saturating_add(T::DbWeight::get().reads(2)) - .saturating_add(T::DbWeight::get().writes(2)) - } - /// Storage: `Assets::Asset` (r:1 w:0) - /// Proof: `Assets::Asset` (`max_values`: None, `max_size`: Some(210), added: 2685, mode: `MaxEncodedLen`) - /// Storage: `Assets::Account` (r:1 w:1) - /// Proof: `Assets::Account` (`max_values`: None, `max_size`: Some(134), added: 2609, mode: `MaxEncodedLen`) - fn block() -> Weight { - // Proof Size summary in bytes: - // Measured: `351` - // Estimated: `3675` - // Minimum execution time: 16_758_000 picoseconds. - Weight::from_parts(17_280_000, 0) - .saturating_add(Weight::from_parts(0, 3675)) - .saturating_add(T::DbWeight::get().reads(2)) - .saturating_add(T::DbWeight::get().writes(1)) - } -} diff --git a/cumulus/parachains/runtimes/assets/asset-hub-polkadot/src/weights/pallet_balances.rs b/cumulus/parachains/runtimes/assets/asset-hub-polkadot/src/weights/pallet_balances.rs deleted file mode 100644 index a7f02ba24fd1..000000000000 --- a/cumulus/parachains/runtimes/assets/asset-hub-polkadot/src/weights/pallet_balances.rs +++ /dev/null @@ -1,153 +0,0 @@ -// Copyright (C) Parity Technologies (UK) Ltd. -// This file is part of Cumulus. - -// Cumulus 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. - -// Cumulus 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 Cumulus. 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-07-31, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` -//! WORST CASE MAP SIZE: `1000000` -//! HOSTNAME: `runner-ynta1nyy-project-238-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz` -//! EXECUTION: ``, WASM-EXECUTION: `Compiled`, CHAIN: `Some("asset-hub-polkadot-dev")`, DB CACHE: 1024 - -// Executed Command: -// ./target/production/polkadot-parachain -// benchmark -// pallet -// --chain=asset-hub-polkadot-dev -// --wasm-execution=compiled -// --pallet=pallet_balances -// --no-storage-info -// --no-median-slopes -// --no-min-squares -// --extrinsic=* -// --steps=50 -// --repeat=20 -// --json -// --header=./file_header.txt -// --output=./parachains/runtimes/assets/asset-hub-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_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: 56_173_000 picoseconds. - Weight::from_parts(57_097_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: 41_470_000 picoseconds. - Weight::from_parts(42_051_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: `103` - // Estimated: `3593` - // Minimum execution time: 14_771_000 picoseconds. - Weight::from_parts(15_125_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: `103` - // Estimated: `3593` - // Minimum execution time: 22_210_000 picoseconds. - Weight::from_parts(22_712_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_475_000 picoseconds. - Weight::from_parts(58_343_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: 52_139_000 picoseconds. - Weight::from_parts(52_601_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: `103` - // Estimated: `3593` - // Minimum execution time: 17_372_000 picoseconds. - Weight::from_parts(17_978_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]`. - fn upgrade_accounts(u: u32, ) -> Weight { - // Proof Size summary in bytes: - // Measured: `0 + u * (136 ±0)` - // Estimated: `990 + u * (2603 ±0)` - // Minimum execution time: 17_143_000 picoseconds. - Weight::from_parts(17_475_000, 0) - .saturating_add(Weight::from_parts(0, 990)) - // Standard Error: 16_909 - .saturating_add(Weight::from_parts(15_474_628, 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/cumulus/parachains/runtimes/assets/asset-hub-polkadot/src/weights/pallet_collator_selection.rs b/cumulus/parachains/runtimes/assets/asset-hub-polkadot/src/weights/pallet_collator_selection.rs deleted file mode 100644 index 53efb218440a..000000000000 --- a/cumulus/parachains/runtimes/assets/asset-hub-polkadot/src/weights/pallet_collator_selection.rs +++ /dev/null @@ -1,223 +0,0 @@ -// Copyright (C) Parity Technologies (UK) Ltd. -// This file is part of Cumulus. - -// Cumulus 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. - -// Cumulus 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 Cumulus. If not, see . - -//! Autogenerated weights for `pallet_collator_selection` -//! -//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev -//! DATE: 2023-07-31, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` -//! WORST CASE MAP SIZE: `1000000` -//! HOSTNAME: `runner-ynta1nyy-project-238-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz` -//! EXECUTION: ``, WASM-EXECUTION: `Compiled`, CHAIN: `Some("asset-hub-polkadot-dev")`, DB CACHE: 1024 - -// Executed Command: -// ./target/production/polkadot-parachain -// benchmark -// pallet -// --chain=asset-hub-polkadot-dev -// --wasm-execution=compiled -// --pallet=pallet_collator_selection -// --no-storage-info -// --no-median-slopes -// --no-min-squares -// --extrinsic=* -// --steps=50 -// --repeat=20 -// --json -// --header=./file_header.txt -// --output=./parachains/runtimes/assets/asset-hub-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_collator_selection`. -pub struct WeightInfo(PhantomData); -impl pallet_collator_selection::WeightInfo for WeightInfo { - /// Storage: `Session::NextKeys` (r:20 w:0) - /// Proof: `Session::NextKeys` (`max_values`: None, `max_size`: None, mode: `Measured`) - /// Storage: `CollatorSelection::Invulnerables` (r:0 w:1) - /// Proof: `CollatorSelection::Invulnerables` (`max_values`: Some(1), `max_size`: Some(641), added: 1136, mode: `MaxEncodedLen`) - /// The range of component `b` is `[1, 20]`. - fn set_invulnerables(b: u32, ) -> Weight { - // Proof Size summary in bytes: - // Measured: `163 + b * (79 ±0)` - // Estimated: `1154 + b * (2555 ±0)` - // Minimum execution time: 14_882_000 picoseconds. - Weight::from_parts(12_290_529, 0) - .saturating_add(Weight::from_parts(0, 1154)) - // Standard Error: 6_842 - .saturating_add(Weight::from_parts(3_189_571, 0).saturating_mul(b.into())) - .saturating_add(T::DbWeight::get().reads((1_u64).saturating_mul(b.into()))) - .saturating_add(T::DbWeight::get().writes(1)) - .saturating_add(Weight::from_parts(0, 2555).saturating_mul(b.into())) - } - /// Storage: `Session::NextKeys` (r:1 w:0) - /// Proof: `Session::NextKeys` (`max_values`: None, `max_size`: None, mode: `Measured`) - /// Storage: `CollatorSelection::Invulnerables` (r:1 w:1) - /// Proof: `CollatorSelection::Invulnerables` (`max_values`: Some(1), `max_size`: Some(641), added: 1136, mode: `MaxEncodedLen`) - /// Storage: `CollatorSelection::Candidates` (r:1 w:1) - /// Proof: `CollatorSelection::Candidates` (`max_values`: Some(1), `max_size`: Some(4802), added: 5297, 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 `b` is `[1, 19]`. - /// The range of component `c` is `[1, 99]`. - fn add_invulnerable(b: u32, c: u32, ) -> Weight { - // Proof Size summary in bytes: - // Measured: `756 + b * (32 ±0) + c * (53 ±0)` - // Estimated: `6287 + b * (37 ±0) + c * (53 ±0)` - // Minimum execution time: 48_113_000 picoseconds. - Weight::from_parts(49_767_909, 0) - .saturating_add(Weight::from_parts(0, 6287)) - // Standard Error: 2_725 - .saturating_add(Weight::from_parts(232_655, 0).saturating_mul(c.into())) - .saturating_add(T::DbWeight::get().reads(4)) - .saturating_add(T::DbWeight::get().writes(3)) - .saturating_add(Weight::from_parts(0, 37).saturating_mul(b.into())) - .saturating_add(Weight::from_parts(0, 53).saturating_mul(c.into())) - } - /// Storage: `CollatorSelection::Candidates` (r:1 w:0) - /// Proof: `CollatorSelection::Candidates` (`max_values`: Some(1), `max_size`: Some(4802), added: 5297, mode: `MaxEncodedLen`) - /// Storage: `CollatorSelection::Invulnerables` (r:1 w:1) - /// Proof: `CollatorSelection::Invulnerables` (`max_values`: Some(1), `max_size`: Some(641), added: 1136, mode: `MaxEncodedLen`) - /// The range of component `b` is `[5, 20]`. - fn remove_invulnerable(b: u32, ) -> Weight { - // Proof Size summary in bytes: - // Measured: `119 + b * (32 ±0)` - // Estimated: `6287` - // Minimum execution time: 16_228_000 picoseconds. - Weight::from_parts(16_351_387, 0) - .saturating_add(Weight::from_parts(0, 6287)) - // Standard Error: 2_953 - .saturating_add(Weight::from_parts(140_754, 0).saturating_mul(b.into())) - .saturating_add(T::DbWeight::get().reads(2)) - .saturating_add(T::DbWeight::get().writes(1)) - } - /// Storage: `CollatorSelection::DesiredCandidates` (r:0 w:1) - /// Proof: `CollatorSelection::DesiredCandidates` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`) - fn set_desired_candidates() -> Weight { - // Proof Size summary in bytes: - // Measured: `0` - // Estimated: `0` - // Minimum execution time: 7_541_000 picoseconds. - Weight::from_parts(7_720_000, 0) - .saturating_add(Weight::from_parts(0, 0)) - .saturating_add(T::DbWeight::get().writes(1)) - } - /// Storage: `CollatorSelection::CandidacyBond` (r:0 w:1) - /// Proof: `CollatorSelection::CandidacyBond` (`max_values`: Some(1), `max_size`: Some(16), added: 511, mode: `MaxEncodedLen`) - fn set_candidacy_bond() -> Weight { - // Proof Size summary in bytes: - // Measured: `0` - // Estimated: `0` - // Minimum execution time: 7_402_000 picoseconds. - Weight::from_parts(7_729_000, 0) - .saturating_add(Weight::from_parts(0, 0)) - .saturating_add(T::DbWeight::get().writes(1)) - } - /// Storage: `CollatorSelection::Candidates` (r:1 w:1) - /// Proof: `CollatorSelection::Candidates` (`max_values`: Some(1), `max_size`: Some(4802), added: 5297, mode: `MaxEncodedLen`) - /// Storage: `CollatorSelection::DesiredCandidates` (r:1 w:0) - /// Proof: `CollatorSelection::DesiredCandidates` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`) - /// Storage: `CollatorSelection::Invulnerables` (r:1 w:0) - /// Proof: `CollatorSelection::Invulnerables` (`max_values`: Some(1), `max_size`: Some(641), added: 1136, mode: `MaxEncodedLen`) - /// Storage: `Session::NextKeys` (r:1 w:0) - /// Proof: `Session::NextKeys` (`max_values`: None, `max_size`: None, mode: `Measured`) - /// Storage: `CollatorSelection::CandidacyBond` (r:1 w:0) - /// Proof: `CollatorSelection::CandidacyBond` (`max_values`: Some(1), `max_size`: Some(16), added: 511, mode: `MaxEncodedLen`) - /// Storage: `CollatorSelection::LastAuthoredBlock` (r:0 w:1) - /// Proof: `CollatorSelection::LastAuthoredBlock` (`max_values`: None, `max_size`: Some(44), added: 2519, mode: `MaxEncodedLen`) - /// The range of component `c` is `[1, 99]`. - fn register_as_candidate(c: u32, ) -> Weight { - // Proof Size summary in bytes: - // Measured: `736 + c * (52 ±0)` - // Estimated: `6287 + c * (54 ±0)` - // Minimum execution time: 41_874_000 picoseconds. - Weight::from_parts(45_654_015, 0) - .saturating_add(Weight::from_parts(0, 6287)) - // Standard Error: 2_317 - .saturating_add(Weight::from_parts(221_237, 0).saturating_mul(c.into())) - .saturating_add(T::DbWeight::get().reads(5)) - .saturating_add(T::DbWeight::get().writes(2)) - .saturating_add(Weight::from_parts(0, 54).saturating_mul(c.into())) - } - /// Storage: `CollatorSelection::Candidates` (r:1 w:1) - /// Proof: `CollatorSelection::Candidates` (`max_values`: Some(1), `max_size`: Some(4802), added: 5297, mode: `MaxEncodedLen`) - /// Storage: `CollatorSelection::Invulnerables` (r:1 w:0) - /// Proof: `CollatorSelection::Invulnerables` (`max_values`: Some(1), `max_size`: Some(641), added: 1136, mode: `MaxEncodedLen`) - /// Storage: `CollatorSelection::LastAuthoredBlock` (r:0 w:1) - /// Proof: `CollatorSelection::LastAuthoredBlock` (`max_values`: None, `max_size`: Some(44), added: 2519, mode: `MaxEncodedLen`) - /// The range of component `c` is `[4, 100]`. - fn leave_intent(c: u32, ) -> Weight { - // Proof Size summary in bytes: - // Measured: `306 + c * (50 ±0)` - // Estimated: `6287` - // Minimum execution time: 33_693_000 picoseconds. - Weight::from_parts(37_321_527, 0) - .saturating_add(Weight::from_parts(0, 6287)) - // Standard Error: 3_499 - .saturating_add(Weight::from_parts(182_068, 0).saturating_mul(c.into())) - .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: `System::BlockWeight` (r:1 w:1) - /// Proof: `System::BlockWeight` (`max_values`: Some(1), `max_size`: Some(48), added: 543, mode: `MaxEncodedLen`) - /// Storage: `CollatorSelection::LastAuthoredBlock` (r:0 w:1) - /// Proof: `CollatorSelection::LastAuthoredBlock` (`max_values`: None, `max_size`: Some(44), added: 2519, mode: `MaxEncodedLen`) - fn note_author() -> Weight { - // Proof Size summary in bytes: - // Measured: `103` - // Estimated: `6196` - // Minimum execution time: 44_412_000 picoseconds. - Weight::from_parts(45_196_000, 0) - .saturating_add(Weight::from_parts(0, 6196)) - .saturating_add(T::DbWeight::get().reads(3)) - .saturating_add(T::DbWeight::get().writes(4)) - } - /// Storage: `CollatorSelection::Candidates` (r:1 w:0) - /// Proof: `CollatorSelection::Candidates` (`max_values`: Some(1), `max_size`: Some(4802), added: 5297, mode: `MaxEncodedLen`) - /// Storage: `CollatorSelection::LastAuthoredBlock` (r:100 w:0) - /// Proof: `CollatorSelection::LastAuthoredBlock` (`max_values`: None, `max_size`: Some(44), added: 2519, mode: `MaxEncodedLen`) - /// Storage: `CollatorSelection::Invulnerables` (r:1 w:0) - /// Proof: `CollatorSelection::Invulnerables` (`max_values`: Some(1), `max_size`: Some(641), added: 1136, mode: `MaxEncodedLen`) - /// Storage: `System::BlockWeight` (r:1 w:1) - /// Proof: `System::BlockWeight` (`max_values`: Some(1), `max_size`: Some(48), added: 543, mode: `MaxEncodedLen`) - /// Storage: `System::Account` (r:97 w:97) - /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`) - /// The range of component `r` is `[1, 100]`. - /// The range of component `c` is `[1, 100]`. - fn new_session(r: u32, c: u32, ) -> Weight { - // Proof Size summary in bytes: - // Measured: `2243 + c * (97 ±0) + r * (112 ±0)` - // Estimated: `6287 + c * (2519 ±0) + r * (2603 ±0)` - // Minimum execution time: 17_360_000 picoseconds. - Weight::from_parts(17_599_000, 0) - .saturating_add(Weight::from_parts(0, 6287)) - // Standard Error: 350_829 - .saturating_add(Weight::from_parts(15_375_949, 0).saturating_mul(c.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().writes(1)) - .saturating_add(T::DbWeight::get().writes((1_u64).saturating_mul(c.into()))) - .saturating_add(Weight::from_parts(0, 2519).saturating_mul(c.into())) - .saturating_add(Weight::from_parts(0, 2603).saturating_mul(r.into())) - } -} diff --git a/cumulus/parachains/runtimes/assets/asset-hub-polkadot/src/weights/pallet_multisig.rs b/cumulus/parachains/runtimes/assets/asset-hub-polkadot/src/weights/pallet_multisig.rs deleted file mode 100644 index 705aca9e1a4e..000000000000 --- a/cumulus/parachains/runtimes/assets/asset-hub-polkadot/src/weights/pallet_multisig.rs +++ /dev/null @@ -1,165 +0,0 @@ -// Copyright (C) Parity Technologies (UK) Ltd. -// This file is part of Cumulus. - -// Cumulus 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. - -// Cumulus 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 Cumulus. If not, see . - -//! Autogenerated weights for `pallet_multisig` -//! -//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev -//! DATE: 2023-07-31, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` -//! WORST CASE MAP SIZE: `1000000` -//! HOSTNAME: `runner-ynta1nyy-project-238-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz` -//! EXECUTION: ``, WASM-EXECUTION: `Compiled`, CHAIN: `Some("asset-hub-polkadot-dev")`, DB CACHE: 1024 - -// Executed Command: -// ./target/production/polkadot-parachain -// benchmark -// pallet -// --chain=asset-hub-polkadot-dev -// --wasm-execution=compiled -// --pallet=pallet_multisig -// --no-storage-info -// --no-median-slopes -// --no-min-squares -// --extrinsic=* -// --steps=50 -// --repeat=20 -// --json -// --header=./file_header.txt -// --output=./parachains/runtimes/assets/asset-hub-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_multisig`. -pub struct WeightInfo(PhantomData); -impl pallet_multisig::WeightInfo for WeightInfo { - /// The range of component `z` is `[0, 10000]`. - fn as_multi_threshold_1(z: u32, ) -> Weight { - // Proof Size summary in bytes: - // Measured: `0` - // Estimated: `0` - // Minimum execution time: 13_710_000 picoseconds. - Weight::from_parts(14_702_959, 0) - .saturating_add(Weight::from_parts(0, 0)) - // Standard Error: 7 - .saturating_add(Weight::from_parts(568, 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`) - /// The range of component `s` is `[2, 100]`. - /// The range of component `z` is `[0, 10000]`. - fn as_multi_create(s: u32, z: u32, ) -> Weight { - // Proof Size summary in bytes: - // Measured: `262 + s * (2 ±0)` - // Estimated: `6811` - // Minimum execution time: 45_518_000 picoseconds. - Weight::from_parts(35_243_068, 0) - .saturating_add(Weight::from_parts(0, 6811)) - // Standard Error: 1_634 - .saturating_add(Weight::from_parts(116_658, 0).saturating_mul(s.into())) - // Standard Error: 16 - .saturating_add(Weight::from_parts(1_444, 0).saturating_mul(z.into())) - .saturating_add(T::DbWeight::get().reads(1)) - .saturating_add(T::DbWeight::get().writes(1)) - } - /// Storage: `Multisig::Multisigs` (r:1 w:1) - /// Proof: `Multisig::Multisigs` (`max_values`: None, `max_size`: Some(3346), added: 5821, mode: `MaxEncodedLen`) - /// The range of component `s` is `[3, 100]`. - /// The range of component `z` is `[0, 10000]`. - fn as_multi_approve(s: u32, z: u32, ) -> Weight { - // Proof Size summary in bytes: - // Measured: `282` - // Estimated: `6811` - // Minimum execution time: 29_590_000 picoseconds. - Weight::from_parts(21_574_604, 0) - .saturating_add(Weight::from_parts(0, 6811)) - // Standard Error: 1_622 - .saturating_add(Weight::from_parts(95_669, 0).saturating_mul(s.into())) - // Standard Error: 15 - .saturating_add(Weight::from_parts(1_459, 0).saturating_mul(z.into())) - .saturating_add(T::DbWeight::get().reads(1)) - .saturating_add(T::DbWeight::get().writes(1)) - } - /// Storage: `Multisig::Multisigs` (r:1 w:1) - /// Proof: `Multisig::Multisigs` (`max_values`: None, `max_size`: Some(3346), added: 5821, 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 `[2, 100]`. - /// The range of component `z` is `[0, 10000]`. - fn as_multi_complete(s: u32, z: u32, ) -> Weight { - // Proof Size summary in bytes: - // Measured: `385 + s * (33 ±0)` - // Estimated: `6811` - // Minimum execution time: 51_056_000 picoseconds. - Weight::from_parts(35_799_301, 0) - .saturating_add(Weight::from_parts(0, 6811)) - // Standard Error: 1_629 - .saturating_add(Weight::from_parts(183_343, 0).saturating_mul(s.into())) - // Standard Error: 15 - .saturating_add(Weight::from_parts(1_686, 0).saturating_mul(z.into())) - .saturating_add(T::DbWeight::get().reads(2)) - .saturating_add(T::DbWeight::get().writes(2)) - } - /// Storage: `Multisig::Multisigs` (r:1 w:1) - /// Proof: `Multisig::Multisigs` (`max_values`: None, `max_size`: Some(3346), added: 5821, mode: `MaxEncodedLen`) - /// The range of component `s` is `[2, 100]`. - fn approve_as_multi_create(s: u32, ) -> Weight { - // Proof Size summary in bytes: - // Measured: `263 + s * (2 ±0)` - // Estimated: `6811` - // Minimum execution time: 30_910_000 picoseconds. - Weight::from_parts(32_413_023, 0) - .saturating_add(Weight::from_parts(0, 6811)) - // Standard Error: 1_346 - .saturating_add(Weight::from_parts(128_779, 0).saturating_mul(s.into())) - .saturating_add(T::DbWeight::get().reads(1)) - .saturating_add(T::DbWeight::get().writes(1)) - } - /// Storage: `Multisig::Multisigs` (r:1 w:1) - /// Proof: `Multisig::Multisigs` (`max_values`: None, `max_size`: Some(3346), added: 5821, mode: `MaxEncodedLen`) - /// The range of component `s` is `[2, 100]`. - fn approve_as_multi_approve(s: u32, ) -> Weight { - // Proof Size summary in bytes: - // Measured: `282` - // Estimated: `6811` - // Minimum execution time: 17_926_000 picoseconds. - Weight::from_parts(18_477_305, 0) - .saturating_add(Weight::from_parts(0, 6811)) - // Standard Error: 1_367 - .saturating_add(Weight::from_parts(113_018, 0).saturating_mul(s.into())) - .saturating_add(T::DbWeight::get().reads(1)) - .saturating_add(T::DbWeight::get().writes(1)) - } - /// Storage: `Multisig::Multisigs` (r:1 w:1) - /// Proof: `Multisig::Multisigs` (`max_values`: None, `max_size`: Some(3346), added: 5821, mode: `MaxEncodedLen`) - /// The range of component `s` is `[2, 100]`. - fn cancel_as_multi(s: u32, ) -> Weight { - // Proof Size summary in bytes: - // Measured: `454 + s * (1 ±0)` - // Estimated: `6811` - // Minimum execution time: 32_232_000 picoseconds. - Weight::from_parts(33_724_753, 0) - .saturating_add(Weight::from_parts(0, 6811)) - // Standard Error: 1_192 - .saturating_add(Weight::from_parts(121_574, 0).saturating_mul(s.into())) - .saturating_add(T::DbWeight::get().reads(1)) - .saturating_add(T::DbWeight::get().writes(1)) - } -} diff --git a/cumulus/parachains/runtimes/assets/asset-hub-polkadot/src/weights/pallet_nfts.rs b/cumulus/parachains/runtimes/assets/asset-hub-polkadot/src/weights/pallet_nfts.rs deleted file mode 100644 index 6d6f7cbbafb4..000000000000 --- a/cumulus/parachains/runtimes/assets/asset-hub-polkadot/src/weights/pallet_nfts.rs +++ /dev/null @@ -1,773 +0,0 @@ -// Copyright (C) Parity Technologies (UK) Ltd. -// This file is part of Cumulus. - -// Cumulus 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. - -// Cumulus 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 Cumulus. If not, see . - -//! Autogenerated weights for `pallet_nfts` -//! -//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev -//! DATE: 2023-07-31, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` -//! WORST CASE MAP SIZE: `1000000` -//! HOSTNAME: `runner-ynta1nyy-project-238-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz` -//! EXECUTION: ``, WASM-EXECUTION: `Compiled`, CHAIN: `Some("asset-hub-polkadot-dev")`, DB CACHE: 1024 - -// Executed Command: -// ./target/production/polkadot-parachain -// benchmark -// pallet -// --chain=asset-hub-polkadot-dev -// --wasm-execution=compiled -// --pallet=pallet_nfts -// --no-storage-info -// --no-median-slopes -// --no-min-squares -// --extrinsic=* -// --steps=50 -// --repeat=20 -// --json -// --header=./file_header.txt -// --output=./parachains/runtimes/assets/asset-hub-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_nfts`. -pub struct WeightInfo(PhantomData); -impl pallet_nfts::WeightInfo for WeightInfo { - /// Storage: `Nfts::NextCollectionId` (r:1 w:1) - /// Proof: `Nfts::NextCollectionId` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`) - /// Storage: `Nfts::Collection` (r:1 w:1) - /// Proof: `Nfts::Collection` (`max_values`: None, `max_size`: Some(84), added: 2559, mode: `MaxEncodedLen`) - /// Storage: `Nfts::CollectionRoleOf` (r:0 w:1) - /// Proof: `Nfts::CollectionRoleOf` (`max_values`: None, `max_size`: Some(69), added: 2544, mode: `MaxEncodedLen`) - /// Storage: `Nfts::CollectionConfigOf` (r:0 w:1) - /// Proof: `Nfts::CollectionConfigOf` (`max_values`: None, `max_size`: Some(73), added: 2548, mode: `MaxEncodedLen`) - /// Storage: `Nfts::CollectionAccount` (r:0 w:1) - /// Proof: `Nfts::CollectionAccount` (`max_values`: None, `max_size`: Some(68), added: 2543, mode: `MaxEncodedLen`) - fn create() -> Weight { - // Proof Size summary in bytes: - // Measured: `145` - // Estimated: `3549` - // Minimum execution time: 37_915_000 picoseconds. - Weight::from_parts(39_275_000, 0) - .saturating_add(Weight::from_parts(0, 3549)) - .saturating_add(T::DbWeight::get().reads(2)) - .saturating_add(T::DbWeight::get().writes(5)) - } - /// Storage: `Nfts::NextCollectionId` (r:1 w:1) - /// Proof: `Nfts::NextCollectionId` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`) - /// Storage: `Nfts::Collection` (r:1 w:1) - /// Proof: `Nfts::Collection` (`max_values`: None, `max_size`: Some(84), added: 2559, mode: `MaxEncodedLen`) - /// Storage: `Nfts::CollectionRoleOf` (r:0 w:1) - /// Proof: `Nfts::CollectionRoleOf` (`max_values`: None, `max_size`: Some(69), added: 2544, mode: `MaxEncodedLen`) - /// Storage: `Nfts::CollectionConfigOf` (r:0 w:1) - /// Proof: `Nfts::CollectionConfigOf` (`max_values`: None, `max_size`: Some(73), added: 2548, mode: `MaxEncodedLen`) - /// Storage: `Nfts::CollectionAccount` (r:0 w:1) - /// Proof: `Nfts::CollectionAccount` (`max_values`: None, `max_size`: Some(68), added: 2543, mode: `MaxEncodedLen`) - fn force_create() -> Weight { - // Proof Size summary in bytes: - // Measured: `42` - // Estimated: `3549` - // Minimum execution time: 22_722_000 picoseconds. - Weight::from_parts(23_500_000, 0) - .saturating_add(Weight::from_parts(0, 3549)) - .saturating_add(T::DbWeight::get().reads(2)) - .saturating_add(T::DbWeight::get().writes(5)) - } - /// Storage: `Nfts::Collection` (r:1 w:1) - /// Proof: `Nfts::Collection` (`max_values`: None, `max_size`: Some(84), added: 2559, mode: `MaxEncodedLen`) - /// Storage: `Nfts::ItemMetadataOf` (r:1 w:0) - /// Proof: `Nfts::ItemMetadataOf` (`max_values`: None, `max_size`: Some(347), added: 2822, mode: `MaxEncodedLen`) - /// Storage: `Nfts::CollectionRoleOf` (r:1 w:1) - /// Proof: `Nfts::CollectionRoleOf` (`max_values`: None, `max_size`: Some(69), added: 2544, mode: `MaxEncodedLen`) - /// Storage: `Nfts::Attribute` (r:1001 w:1000) - /// Proof: `Nfts::Attribute` (`max_values`: None, `max_size`: Some(479), added: 2954, mode: `MaxEncodedLen`) - /// Storage: `Nfts::ItemConfigOf` (r:1000 w:1000) - /// Proof: `Nfts::ItemConfigOf` (`max_values`: None, `max_size`: Some(48), added: 2523, mode: `MaxEncodedLen`) - /// Storage: `Nfts::CollectionMetadataOf` (r:0 w:1) - /// Proof: `Nfts::CollectionMetadataOf` (`max_values`: None, `max_size`: Some(294), added: 2769, mode: `MaxEncodedLen`) - /// Storage: `Nfts::CollectionConfigOf` (r:0 w:1) - /// Proof: `Nfts::CollectionConfigOf` (`max_values`: None, `max_size`: Some(73), added: 2548, mode: `MaxEncodedLen`) - /// Storage: `Nfts::CollectionAccount` (r:0 w:1) - /// Proof: `Nfts::CollectionAccount` (`max_values`: None, `max_size`: Some(68), added: 2543, mode: `MaxEncodedLen`) - /// The range of component `m` is `[0, 1000]`. - /// The range of component `c` is `[0, 1000]`. - /// The range of component `a` is `[0, 1000]`. - fn destroy(_m: u32, _c: u32, a: u32, ) -> Weight { - // Proof Size summary in bytes: - // Measured: `32170 + a * (366 ±0)` - // Estimated: `2523990 + a * (2954 ±0)` - // Minimum execution time: 1_231_520_000 picoseconds. - Weight::from_parts(1_228_960_098, 0) - .saturating_add(Weight::from_parts(0, 2523990)) - // Standard Error: 8_836 - .saturating_add(Weight::from_parts(6_818_975, 0).saturating_mul(a.into())) - .saturating_add(T::DbWeight::get().reads(1004)) - .saturating_add(T::DbWeight::get().reads((1_u64).saturating_mul(a.into()))) - .saturating_add(T::DbWeight::get().writes(1005)) - .saturating_add(T::DbWeight::get().writes((1_u64).saturating_mul(a.into()))) - .saturating_add(Weight::from_parts(0, 2954).saturating_mul(a.into())) - } - /// Storage: `Nfts::CollectionConfigOf` (r:1 w:0) - /// Proof: `Nfts::CollectionConfigOf` (`max_values`: None, `max_size`: Some(73), added: 2548, mode: `MaxEncodedLen`) - /// Storage: `Nfts::Item` (r:1 w:1) - /// Proof: `Nfts::Item` (`max_values`: None, `max_size`: Some(861), added: 3336, mode: `MaxEncodedLen`) - /// Storage: `Nfts::Collection` (r:1 w:1) - /// Proof: `Nfts::Collection` (`max_values`: None, `max_size`: Some(84), added: 2559, mode: `MaxEncodedLen`) - /// Storage: `Nfts::CollectionRoleOf` (r:1 w:0) - /// Proof: `Nfts::CollectionRoleOf` (`max_values`: None, `max_size`: Some(69), added: 2544, mode: `MaxEncodedLen`) - /// Storage: `Nfts::ItemConfigOf` (r:1 w:1) - /// Proof: `Nfts::ItemConfigOf` (`max_values`: None, `max_size`: Some(48), added: 2523, mode: `MaxEncodedLen`) - /// Storage: `Nfts::Account` (r:0 w:1) - /// Proof: `Nfts::Account` (`max_values`: None, `max_size`: Some(88), added: 2563, mode: `MaxEncodedLen`) - fn mint() -> Weight { - // Proof Size summary in bytes: - // Measured: `421` - // Estimated: `4326` - // Minimum execution time: 48_581_000 picoseconds. - Weight::from_parts(50_020_000, 0) - .saturating_add(Weight::from_parts(0, 4326)) - .saturating_add(T::DbWeight::get().reads(5)) - .saturating_add(T::DbWeight::get().writes(4)) - } - /// Storage: `Nfts::CollectionRoleOf` (r:1 w:0) - /// Proof: `Nfts::CollectionRoleOf` (`max_values`: None, `max_size`: Some(69), added: 2544, mode: `MaxEncodedLen`) - /// Storage: `Nfts::Item` (r:1 w:1) - /// Proof: `Nfts::Item` (`max_values`: None, `max_size`: Some(861), added: 3336, mode: `MaxEncodedLen`) - /// Storage: `Nfts::Collection` (r:1 w:1) - /// Proof: `Nfts::Collection` (`max_values`: None, `max_size`: Some(84), added: 2559, mode: `MaxEncodedLen`) - /// Storage: `Nfts::CollectionConfigOf` (r:1 w:0) - /// Proof: `Nfts::CollectionConfigOf` (`max_values`: None, `max_size`: Some(73), added: 2548, mode: `MaxEncodedLen`) - /// Storage: `Nfts::ItemConfigOf` (r:1 w:1) - /// Proof: `Nfts::ItemConfigOf` (`max_values`: None, `max_size`: Some(48), added: 2523, mode: `MaxEncodedLen`) - /// Storage: `Nfts::Account` (r:0 w:1) - /// Proof: `Nfts::Account` (`max_values`: None, `max_size`: Some(88), added: 2563, mode: `MaxEncodedLen`) - fn force_mint() -> Weight { - // Proof Size summary in bytes: - // Measured: `421` - // Estimated: `4326` - // Minimum execution time: 47_171_000 picoseconds. - Weight::from_parts(48_084_000, 0) - .saturating_add(Weight::from_parts(0, 4326)) - .saturating_add(T::DbWeight::get().reads(5)) - .saturating_add(T::DbWeight::get().writes(4)) - } - /// Storage: `Nfts::Attribute` (r:1 w:0) - /// Proof: `Nfts::Attribute` (`max_values`: None, `max_size`: Some(479), added: 2954, mode: `MaxEncodedLen`) - /// Storage: `Nfts::ItemConfigOf` (r:1 w:1) - /// Proof: `Nfts::ItemConfigOf` (`max_values`: None, `max_size`: Some(48), added: 2523, mode: `MaxEncodedLen`) - /// Storage: `Nfts::Collection` (r:1 w:1) - /// Proof: `Nfts::Collection` (`max_values`: None, `max_size`: Some(84), added: 2559, mode: `MaxEncodedLen`) - /// Storage: `Nfts::Item` (r:1 w:1) - /// Proof: `Nfts::Item` (`max_values`: None, `max_size`: Some(861), added: 3336, mode: `MaxEncodedLen`) - /// Storage: `Nfts::ItemMetadataOf` (r:1 w:0) - /// Proof: `Nfts::ItemMetadataOf` (`max_values`: None, `max_size`: Some(347), added: 2822, mode: `MaxEncodedLen`) - /// Storage: `Nfts::Account` (r:0 w:1) - /// Proof: `Nfts::Account` (`max_values`: None, `max_size`: Some(88), added: 2563, mode: `MaxEncodedLen`) - /// Storage: `Nfts::ItemPriceOf` (r:0 w:1) - /// Proof: `Nfts::ItemPriceOf` (`max_values`: None, `max_size`: Some(89), added: 2564, mode: `MaxEncodedLen`) - /// Storage: `Nfts::ItemAttributesApprovalsOf` (r:0 w:1) - /// Proof: `Nfts::ItemAttributesApprovalsOf` (`max_values`: None, `max_size`: Some(1001), added: 3476, mode: `MaxEncodedLen`) - /// Storage: `Nfts::PendingSwapOf` (r:0 w:1) - /// Proof: `Nfts::PendingSwapOf` (`max_values`: None, `max_size`: Some(71), added: 2546, mode: `MaxEncodedLen`) - fn burn() -> Weight { - // Proof Size summary in bytes: - // Measured: `530` - // Estimated: `4326` - // Minimum execution time: 53_591_000 picoseconds. - Weight::from_parts(55_074_000, 0) - .saturating_add(Weight::from_parts(0, 4326)) - .saturating_add(T::DbWeight::get().reads(5)) - .saturating_add(T::DbWeight::get().writes(7)) - } - /// Storage: `Nfts::Collection` (r:1 w:0) - /// Proof: `Nfts::Collection` (`max_values`: None, `max_size`: Some(84), added: 2559, mode: `MaxEncodedLen`) - /// Storage: `Nfts::Attribute` (r:1 w:0) - /// Proof: `Nfts::Attribute` (`max_values`: None, `max_size`: Some(479), added: 2954, mode: `MaxEncodedLen`) - /// Storage: `Nfts::CollectionConfigOf` (r:1 w:0) - /// Proof: `Nfts::CollectionConfigOf` (`max_values`: None, `max_size`: Some(73), added: 2548, mode: `MaxEncodedLen`) - /// Storage: `Nfts::ItemConfigOf` (r:1 w:0) - /// Proof: `Nfts::ItemConfigOf` (`max_values`: None, `max_size`: Some(48), added: 2523, mode: `MaxEncodedLen`) - /// Storage: `Nfts::Item` (r:1 w:1) - /// Proof: `Nfts::Item` (`max_values`: None, `max_size`: Some(861), added: 3336, mode: `MaxEncodedLen`) - /// Storage: `Nfts::Account` (r:0 w:2) - /// Proof: `Nfts::Account` (`max_values`: None, `max_size`: Some(88), added: 2563, mode: `MaxEncodedLen`) - /// Storage: `Nfts::ItemPriceOf` (r:0 w:1) - /// Proof: `Nfts::ItemPriceOf` (`max_values`: None, `max_size`: Some(89), added: 2564, mode: `MaxEncodedLen`) - /// Storage: `Nfts::PendingSwapOf` (r:0 w:1) - /// Proof: `Nfts::PendingSwapOf` (`max_values`: None, `max_size`: Some(71), added: 2546, mode: `MaxEncodedLen`) - fn transfer() -> Weight { - // Proof Size summary in bytes: - // Measured: `559` - // Estimated: `4326` - // Minimum execution time: 40_935_000 picoseconds. - Weight::from_parts(41_835_000, 0) - .saturating_add(Weight::from_parts(0, 4326)) - .saturating_add(T::DbWeight::get().reads(5)) - .saturating_add(T::DbWeight::get().writes(5)) - } - /// Storage: `Nfts::Collection` (r:1 w:0) - /// Proof: `Nfts::Collection` (`max_values`: None, `max_size`: Some(84), added: 2559, mode: `MaxEncodedLen`) - /// Storage: `Nfts::CollectionConfigOf` (r:1 w:0) - /// Proof: `Nfts::CollectionConfigOf` (`max_values`: None, `max_size`: Some(73), added: 2548, mode: `MaxEncodedLen`) - /// Storage: `Nfts::Item` (r:5000 w:5000) - /// Proof: `Nfts::Item` (`max_values`: None, `max_size`: Some(861), added: 3336, mode: `MaxEncodedLen`) - /// The range of component `i` is `[0, 5000]`. - fn redeposit(i: u32, ) -> Weight { - // Proof Size summary in bytes: - // Measured: `729 + i * (108 ±0)` - // Estimated: `3549 + i * (3336 ±0)` - // Minimum execution time: 16_543_000 picoseconds. - Weight::from_parts(16_769_000, 0) - .saturating_add(Weight::from_parts(0, 3549)) - // Standard Error: 23_638 - .saturating_add(Weight::from_parts(17_762_895, 0).saturating_mul(i.into())) - .saturating_add(T::DbWeight::get().reads(2)) - .saturating_add(T::DbWeight::get().reads((1_u64).saturating_mul(i.into()))) - .saturating_add(T::DbWeight::get().writes((1_u64).saturating_mul(i.into()))) - .saturating_add(Weight::from_parts(0, 3336).saturating_mul(i.into())) - } - /// Storage: `Nfts::CollectionRoleOf` (r:1 w:0) - /// Proof: `Nfts::CollectionRoleOf` (`max_values`: None, `max_size`: Some(69), added: 2544, mode: `MaxEncodedLen`) - /// Storage: `Nfts::ItemConfigOf` (r:1 w:1) - /// Proof: `Nfts::ItemConfigOf` (`max_values`: None, `max_size`: Some(48), added: 2523, mode: `MaxEncodedLen`) - fn lock_item_transfer() -> Weight { - // Proof Size summary in bytes: - // Measured: `401` - // Estimated: `3534` - // Minimum execution time: 20_446_000 picoseconds. - Weight::from_parts(20_740_000, 0) - .saturating_add(Weight::from_parts(0, 3534)) - .saturating_add(T::DbWeight::get().reads(2)) - .saturating_add(T::DbWeight::get().writes(1)) - } - /// Storage: `Nfts::CollectionRoleOf` (r:1 w:0) - /// Proof: `Nfts::CollectionRoleOf` (`max_values`: None, `max_size`: Some(69), added: 2544, mode: `MaxEncodedLen`) - /// Storage: `Nfts::ItemConfigOf` (r:1 w:1) - /// Proof: `Nfts::ItemConfigOf` (`max_values`: None, `max_size`: Some(48), added: 2523, mode: `MaxEncodedLen`) - fn unlock_item_transfer() -> Weight { - // Proof Size summary in bytes: - // Measured: `401` - // Estimated: `3534` - // Minimum execution time: 20_088_000 picoseconds. - Weight::from_parts(20_627_000, 0) - .saturating_add(Weight::from_parts(0, 3534)) - .saturating_add(T::DbWeight::get().reads(2)) - .saturating_add(T::DbWeight::get().writes(1)) - } - /// Storage: `Nfts::Collection` (r:1 w:0) - /// Proof: `Nfts::Collection` (`max_values`: None, `max_size`: Some(84), added: 2559, mode: `MaxEncodedLen`) - /// Storage: `Nfts::CollectionConfigOf` (r:1 w:1) - /// Proof: `Nfts::CollectionConfigOf` (`max_values`: None, `max_size`: Some(73), added: 2548, mode: `MaxEncodedLen`) - fn lock_collection() -> Weight { - // Proof Size summary in bytes: - // Measured: `306` - // Estimated: `3549` - // Minimum execution time: 17_036_000 picoseconds. - Weight::from_parts(17_435_000, 0) - .saturating_add(Weight::from_parts(0, 3549)) - .saturating_add(T::DbWeight::get().reads(2)) - .saturating_add(T::DbWeight::get().writes(1)) - } - /// Storage: `Nfts::OwnershipAcceptance` (r:1 w:1) - /// Proof: `Nfts::OwnershipAcceptance` (`max_values`: None, `max_size`: Some(52), added: 2527, mode: `MaxEncodedLen`) - /// Storage: `Nfts::Collection` (r:1 w:1) - /// Proof: `Nfts::Collection` (`max_values`: None, `max_size`: Some(84), added: 2559, mode: `MaxEncodedLen`) - /// Storage: `Nfts::CollectionAccount` (r:0 w:2) - /// Proof: `Nfts::CollectionAccount` (`max_values`: None, `max_size`: Some(68), added: 2543, mode: `MaxEncodedLen`) - fn transfer_ownership() -> Weight { - // Proof Size summary in bytes: - // Measured: `354` - // Estimated: `3549` - // Minimum execution time: 22_528_000 picoseconds. - Weight::from_parts(23_047_000, 0) - .saturating_add(Weight::from_parts(0, 3549)) - .saturating_add(T::DbWeight::get().reads(2)) - .saturating_add(T::DbWeight::get().writes(4)) - } - /// Storage: `Nfts::Collection` (r:1 w:1) - /// Proof: `Nfts::Collection` (`max_values`: None, `max_size`: Some(84), added: 2559, mode: `MaxEncodedLen`) - /// Storage: `Nfts::CollectionRoleOf` (r:2 w:4) - /// Proof: `Nfts::CollectionRoleOf` (`max_values`: None, `max_size`: Some(69), added: 2544, mode: `MaxEncodedLen`) - fn set_team() -> Weight { - // Proof Size summary in bytes: - // Measured: `335` - // Estimated: `6078` - // Minimum execution time: 38_473_000 picoseconds. - Weight::from_parts(39_353_000, 0) - .saturating_add(Weight::from_parts(0, 6078)) - .saturating_add(T::DbWeight::get().reads(3)) - .saturating_add(T::DbWeight::get().writes(5)) - } - /// Storage: `Nfts::Collection` (r:1 w:1) - /// Proof: `Nfts::Collection` (`max_values`: None, `max_size`: Some(84), added: 2559, mode: `MaxEncodedLen`) - /// Storage: `Nfts::CollectionAccount` (r:0 w:2) - /// Proof: `Nfts::CollectionAccount` (`max_values`: None, `max_size`: Some(68), added: 2543, mode: `MaxEncodedLen`) - fn force_collection_owner() -> Weight { - // Proof Size summary in bytes: - // Measured: `277` - // Estimated: `3549` - // Minimum execution time: 17_708_000 picoseconds. - Weight::from_parts(18_022_000, 0) - .saturating_add(Weight::from_parts(0, 3549)) - .saturating_add(T::DbWeight::get().reads(1)) - .saturating_add(T::DbWeight::get().writes(3)) - } - /// Storage: `Nfts::Collection` (r:1 w:0) - /// Proof: `Nfts::Collection` (`max_values`: None, `max_size`: Some(84), added: 2559, mode: `MaxEncodedLen`) - /// Storage: `Nfts::CollectionConfigOf` (r:0 w:1) - /// Proof: `Nfts::CollectionConfigOf` (`max_values`: None, `max_size`: Some(73), added: 2548, mode: `MaxEncodedLen`) - fn force_collection_config() -> Weight { - // Proof Size summary in bytes: - // Measured: `242` - // Estimated: `3549` - // Minimum execution time: 14_606_000 picoseconds. - Weight::from_parts(14_891_000, 0) - .saturating_add(Weight::from_parts(0, 3549)) - .saturating_add(T::DbWeight::get().reads(1)) - .saturating_add(T::DbWeight::get().writes(1)) - } - /// Storage: `Nfts::CollectionRoleOf` (r:1 w:0) - /// Proof: `Nfts::CollectionRoleOf` (`max_values`: None, `max_size`: Some(69), added: 2544, mode: `MaxEncodedLen`) - /// Storage: `Nfts::ItemConfigOf` (r:1 w:1) - /// Proof: `Nfts::ItemConfigOf` (`max_values`: None, `max_size`: Some(48), added: 2523, mode: `MaxEncodedLen`) - fn lock_item_properties() -> Weight { - // Proof Size summary in bytes: - // Measured: `401` - // Estimated: `3534` - // Minimum execution time: 19_492_000 picoseconds. - Weight::from_parts(19_919_000, 0) - .saturating_add(Weight::from_parts(0, 3534)) - .saturating_add(T::DbWeight::get().reads(2)) - .saturating_add(T::DbWeight::get().writes(1)) - } - /// Storage: `Nfts::Collection` (r:1 w:1) - /// Proof: `Nfts::Collection` (`max_values`: None, `max_size`: Some(84), added: 2559, mode: `MaxEncodedLen`) - /// Storage: `Nfts::CollectionRoleOf` (r:1 w:0) - /// Proof: `Nfts::CollectionRoleOf` (`max_values`: None, `max_size`: Some(69), added: 2544, mode: `MaxEncodedLen`) - /// Storage: `Nfts::CollectionConfigOf` (r:1 w:0) - /// Proof: `Nfts::CollectionConfigOf` (`max_values`: None, `max_size`: Some(73), added: 2548, mode: `MaxEncodedLen`) - /// Storage: `Nfts::ItemConfigOf` (r:1 w:0) - /// Proof: `Nfts::ItemConfigOf` (`max_values`: None, `max_size`: Some(48), added: 2523, mode: `MaxEncodedLen`) - /// Storage: `Nfts::Attribute` (r:1 w:1) - /// Proof: `Nfts::Attribute` (`max_values`: None, `max_size`: Some(479), added: 2954, mode: `MaxEncodedLen`) - fn set_attribute() -> Weight { - // Proof Size summary in bytes: - // Measured: `505` - // Estimated: `3944` - // Minimum execution time: 50_583_000 picoseconds. - Weight::from_parts(53_846_000, 0) - .saturating_add(Weight::from_parts(0, 3944)) - .saturating_add(T::DbWeight::get().reads(5)) - .saturating_add(T::DbWeight::get().writes(2)) - } - /// Storage: `Nfts::Collection` (r:1 w:1) - /// Proof: `Nfts::Collection` (`max_values`: None, `max_size`: Some(84), added: 2559, mode: `MaxEncodedLen`) - /// Storage: `Nfts::Attribute` (r:1 w:1) - /// Proof: `Nfts::Attribute` (`max_values`: None, `max_size`: Some(479), added: 2954, mode: `MaxEncodedLen`) - fn force_set_attribute() -> Weight { - // Proof Size summary in bytes: - // Measured: `310` - // Estimated: `3944` - // Minimum execution time: 25_937_000 picoseconds. - Weight::from_parts(26_540_000, 0) - .saturating_add(Weight::from_parts(0, 3944)) - .saturating_add(T::DbWeight::get().reads(2)) - .saturating_add(T::DbWeight::get().writes(2)) - } - /// Storage: `Nfts::Attribute` (r:1 w:1) - /// Proof: `Nfts::Attribute` (`max_values`: None, `max_size`: Some(479), added: 2954, mode: `MaxEncodedLen`) - /// Storage: `Nfts::CollectionRoleOf` (r:1 w:0) - /// Proof: `Nfts::CollectionRoleOf` (`max_values`: None, `max_size`: Some(69), added: 2544, mode: `MaxEncodedLen`) - /// Storage: `Nfts::ItemConfigOf` (r:1 w:0) - /// Proof: `Nfts::ItemConfigOf` (`max_values`: None, `max_size`: Some(48), added: 2523, mode: `MaxEncodedLen`) - /// Storage: `Nfts::Collection` (r:1 w:1) - /// Proof: `Nfts::Collection` (`max_values`: None, `max_size`: Some(84), added: 2559, mode: `MaxEncodedLen`) - fn clear_attribute() -> Weight { - // Proof Size summary in bytes: - // Measured: `949` - // Estimated: `3944` - // Minimum execution time: 45_738_000 picoseconds. - Weight::from_parts(46_468_000, 0) - .saturating_add(Weight::from_parts(0, 3944)) - .saturating_add(T::DbWeight::get().reads(4)) - .saturating_add(T::DbWeight::get().writes(2)) - } - /// Storage: `Nfts::Item` (r:1 w:0) - /// Proof: `Nfts::Item` (`max_values`: None, `max_size`: Some(861), added: 3336, mode: `MaxEncodedLen`) - /// Storage: `Nfts::ItemAttributesApprovalsOf` (r:1 w:1) - /// Proof: `Nfts::ItemAttributesApprovalsOf` (`max_values`: None, `max_size`: Some(1001), added: 3476, mode: `MaxEncodedLen`) - fn approve_item_attributes() -> Weight { - // Proof Size summary in bytes: - // Measured: `347` - // Estimated: `4466` - // Minimum execution time: 17_361_000 picoseconds. - Weight::from_parts(18_191_000, 0) - .saturating_add(Weight::from_parts(0, 4466)) - .saturating_add(T::DbWeight::get().reads(2)) - .saturating_add(T::DbWeight::get().writes(1)) - } - /// Storage: `Nfts::Item` (r:1 w:0) - /// Proof: `Nfts::Item` (`max_values`: None, `max_size`: Some(861), added: 3336, mode: `MaxEncodedLen`) - /// Storage: `Nfts::ItemAttributesApprovalsOf` (r:1 w:1) - /// Proof: `Nfts::ItemAttributesApprovalsOf` (`max_values`: None, `max_size`: Some(1001), added: 3476, mode: `MaxEncodedLen`) - /// Storage: `Nfts::Attribute` (r:1001 w:1000) - /// Proof: `Nfts::Attribute` (`max_values`: None, `max_size`: Some(479), added: 2954, 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 `[0, 1000]`. - fn cancel_item_attributes_approval(n: u32, ) -> Weight { - // Proof Size summary in bytes: - // Measured: `726 + n * (398 ±0)` - // Estimated: `4466 + n * (2954 ±0)` - // Minimum execution time: 25_884_000 picoseconds. - Weight::from_parts(26_265_000, 0) - .saturating_add(Weight::from_parts(0, 4466)) - // Standard Error: 6_423 - .saturating_add(Weight::from_parts(6_507_369, 0).saturating_mul(n.into())) - .saturating_add(T::DbWeight::get().reads(4)) - .saturating_add(T::DbWeight::get().reads((1_u64).saturating_mul(n.into()))) - .saturating_add(T::DbWeight::get().writes(2)) - .saturating_add(T::DbWeight::get().writes((1_u64).saturating_mul(n.into()))) - .saturating_add(Weight::from_parts(0, 2954).saturating_mul(n.into())) - } - /// Storage: `Nfts::CollectionRoleOf` (r:1 w:0) - /// Proof: `Nfts::CollectionRoleOf` (`max_values`: None, `max_size`: Some(69), added: 2544, mode: `MaxEncodedLen`) - /// Storage: `Nfts::Collection` (r:1 w:1) - /// Proof: `Nfts::Collection` (`max_values`: None, `max_size`: Some(84), added: 2559, mode: `MaxEncodedLen`) - /// Storage: `Nfts::ItemConfigOf` (r:1 w:0) - /// Proof: `Nfts::ItemConfigOf` (`max_values`: None, `max_size`: Some(48), added: 2523, mode: `MaxEncodedLen`) - /// Storage: `Nfts::CollectionConfigOf` (r:1 w:0) - /// Proof: `Nfts::CollectionConfigOf` (`max_values`: None, `max_size`: Some(73), added: 2548, mode: `MaxEncodedLen`) - /// Storage: `Nfts::ItemMetadataOf` (r:1 w:1) - /// Proof: `Nfts::ItemMetadataOf` (`max_values`: None, `max_size`: Some(347), added: 2822, mode: `MaxEncodedLen`) - fn set_metadata() -> Weight { - // Proof Size summary in bytes: - // Measured: `505` - // Estimated: `3812` - // Minimum execution time: 40_802_000 picoseconds. - Weight::from_parts(41_742_000, 0) - .saturating_add(Weight::from_parts(0, 3812)) - .saturating_add(T::DbWeight::get().reads(5)) - .saturating_add(T::DbWeight::get().writes(2)) - } - /// Storage: `Nfts::CollectionRoleOf` (r:1 w:0) - /// Proof: `Nfts::CollectionRoleOf` (`max_values`: None, `max_size`: Some(69), added: 2544, mode: `MaxEncodedLen`) - /// Storage: `Nfts::ItemMetadataOf` (r:1 w:1) - /// Proof: `Nfts::ItemMetadataOf` (`max_values`: None, `max_size`: Some(347), added: 2822, mode: `MaxEncodedLen`) - /// Storage: `Nfts::Collection` (r:1 w:1) - /// Proof: `Nfts::Collection` (`max_values`: None, `max_size`: Some(84), added: 2559, mode: `MaxEncodedLen`) - /// Storage: `Nfts::ItemConfigOf` (r:1 w:0) - /// Proof: `Nfts::ItemConfigOf` (`max_values`: None, `max_size`: Some(48), added: 2523, mode: `MaxEncodedLen`) - fn clear_metadata() -> Weight { - // Proof Size summary in bytes: - // Measured: `815` - // Estimated: `3812` - // Minimum execution time: 38_904_000 picoseconds. - Weight::from_parts(39_919_000, 0) - .saturating_add(Weight::from_parts(0, 3812)) - .saturating_add(T::DbWeight::get().reads(4)) - .saturating_add(T::DbWeight::get().writes(2)) - } - /// Storage: `Nfts::CollectionRoleOf` (r:1 w:0) - /// Proof: `Nfts::CollectionRoleOf` (`max_values`: None, `max_size`: Some(69), added: 2544, mode: `MaxEncodedLen`) - /// Storage: `Nfts::CollectionConfigOf` (r:1 w:0) - /// Proof: `Nfts::CollectionConfigOf` (`max_values`: None, `max_size`: Some(73), added: 2548, mode: `MaxEncodedLen`) - /// Storage: `Nfts::Collection` (r:1 w:1) - /// Proof: `Nfts::Collection` (`max_values`: None, `max_size`: Some(84), added: 2559, mode: `MaxEncodedLen`) - /// Storage: `Nfts::CollectionMetadataOf` (r:1 w:1) - /// Proof: `Nfts::CollectionMetadataOf` (`max_values`: None, `max_size`: Some(294), added: 2769, mode: `MaxEncodedLen`) - fn set_collection_metadata() -> Weight { - // Proof Size summary in bytes: - // Measured: `364` - // Estimated: `3759` - // Minimum execution time: 37_012_000 picoseconds. - Weight::from_parts(37_632_000, 0) - .saturating_add(Weight::from_parts(0, 3759)) - .saturating_add(T::DbWeight::get().reads(4)) - .saturating_add(T::DbWeight::get().writes(2)) - } - /// Storage: `Nfts::CollectionRoleOf` (r:1 w:0) - /// Proof: `Nfts::CollectionRoleOf` (`max_values`: None, `max_size`: Some(69), added: 2544, mode: `MaxEncodedLen`) - /// Storage: `Nfts::Collection` (r:1 w:0) - /// Proof: `Nfts::Collection` (`max_values`: None, `max_size`: Some(84), added: 2559, mode: `MaxEncodedLen`) - /// Storage: `Nfts::CollectionConfigOf` (r:1 w:0) - /// Proof: `Nfts::CollectionConfigOf` (`max_values`: None, `max_size`: Some(73), added: 2548, mode: `MaxEncodedLen`) - /// Storage: `Nfts::CollectionMetadataOf` (r:1 w:1) - /// Proof: `Nfts::CollectionMetadataOf` (`max_values`: None, `max_size`: Some(294), added: 2769, mode: `MaxEncodedLen`) - fn clear_collection_metadata() -> Weight { - // Proof Size summary in bytes: - // Measured: `682` - // Estimated: `3759` - // Minimum execution time: 36_243_000 picoseconds. - Weight::from_parts(37_313_000, 0) - .saturating_add(Weight::from_parts(0, 3759)) - .saturating_add(T::DbWeight::get().reads(4)) - .saturating_add(T::DbWeight::get().writes(1)) - } - /// Storage: `Nfts::Item` (r:1 w:1) - /// Proof: `Nfts::Item` (`max_values`: None, `max_size`: Some(861), added: 3336, mode: `MaxEncodedLen`) - /// Storage: `Nfts::CollectionConfigOf` (r:1 w:0) - /// Proof: `Nfts::CollectionConfigOf` (`max_values`: None, `max_size`: Some(73), added: 2548, mode: `MaxEncodedLen`) - fn approve_transfer() -> Weight { - // Proof Size summary in bytes: - // Measured: `376` - // Estimated: `4326` - // Minimum execution time: 20_919_000 picoseconds. - Weight::from_parts(21_505_000, 0) - .saturating_add(Weight::from_parts(0, 4326)) - .saturating_add(T::DbWeight::get().reads(2)) - .saturating_add(T::DbWeight::get().writes(1)) - } - /// Storage: `Nfts::Item` (r:1 w:1) - /// Proof: `Nfts::Item` (`max_values`: None, `max_size`: Some(861), added: 3336, mode: `MaxEncodedLen`) - fn cancel_approval() -> Weight { - // Proof Size summary in bytes: - // Measured: `384` - // Estimated: `4326` - // Minimum execution time: 18_943_000 picoseconds. - Weight::from_parts(19_969_000, 0) - .saturating_add(Weight::from_parts(0, 4326)) - .saturating_add(T::DbWeight::get().reads(1)) - .saturating_add(T::DbWeight::get().writes(1)) - } - /// Storage: `Nfts::Item` (r:1 w:1) - /// Proof: `Nfts::Item` (`max_values`: None, `max_size`: Some(861), added: 3336, mode: `MaxEncodedLen`) - fn clear_all_transfer_approvals() -> Weight { - // Proof Size summary in bytes: - // Measured: `384` - // Estimated: `4326` - // Minimum execution time: 17_320_000 picoseconds. - Weight::from_parts(18_071_000, 0) - .saturating_add(Weight::from_parts(0, 4326)) - .saturating_add(T::DbWeight::get().reads(1)) - .saturating_add(T::DbWeight::get().writes(1)) - } - /// Storage: `Nfts::OwnershipAcceptance` (r:1 w:1) - /// Proof: `Nfts::OwnershipAcceptance` (`max_values`: None, `max_size`: Some(52), added: 2527, mode: `MaxEncodedLen`) - fn set_accept_ownership() -> Weight { - // Proof Size summary in bytes: - // Measured: `42` - // Estimated: `3517` - // Minimum execution time: 14_934_000 picoseconds. - Weight::from_parts(15_422_000, 0) - .saturating_add(Weight::from_parts(0, 3517)) - .saturating_add(T::DbWeight::get().reads(1)) - .saturating_add(T::DbWeight::get().writes(1)) - } - /// Storage: `Nfts::CollectionConfigOf` (r:1 w:1) - /// Proof: `Nfts::CollectionConfigOf` (`max_values`: None, `max_size`: Some(73), added: 2548, mode: `MaxEncodedLen`) - /// Storage: `Nfts::Collection` (r:1 w:0) - /// Proof: `Nfts::Collection` (`max_values`: None, `max_size`: Some(84), added: 2559, mode: `MaxEncodedLen`) - fn set_collection_max_supply() -> Weight { - // Proof Size summary in bytes: - // Measured: `306` - // Estimated: `3549` - // Minimum execution time: 18_715_000 picoseconds. - Weight::from_parts(19_025_000, 0) - .saturating_add(Weight::from_parts(0, 3549)) - .saturating_add(T::DbWeight::get().reads(2)) - .saturating_add(T::DbWeight::get().writes(1)) - } - /// Storage: `Nfts::CollectionRoleOf` (r:1 w:0) - /// Proof: `Nfts::CollectionRoleOf` (`max_values`: None, `max_size`: Some(69), added: 2544, mode: `MaxEncodedLen`) - /// Storage: `Nfts::CollectionConfigOf` (r:1 w:1) - /// Proof: `Nfts::CollectionConfigOf` (`max_values`: None, `max_size`: Some(73), added: 2548, mode: `MaxEncodedLen`) - fn update_mint_settings() -> Weight { - // Proof Size summary in bytes: - // Measured: `289` - // Estimated: `3538` - // Minimum execution time: 18_249_000 picoseconds. - Weight::from_parts(18_826_000, 0) - .saturating_add(Weight::from_parts(0, 3538)) - .saturating_add(T::DbWeight::get().reads(2)) - .saturating_add(T::DbWeight::get().writes(1)) - } - /// Storage: `Nfts::Item` (r:1 w:0) - /// Proof: `Nfts::Item` (`max_values`: None, `max_size`: Some(861), added: 3336, mode: `MaxEncodedLen`) - /// Storage: `Nfts::CollectionConfigOf` (r:1 w:0) - /// Proof: `Nfts::CollectionConfigOf` (`max_values`: None, `max_size`: Some(73), added: 2548, mode: `MaxEncodedLen`) - /// Storage: `Nfts::ItemConfigOf` (r:1 w:0) - /// Proof: `Nfts::ItemConfigOf` (`max_values`: None, `max_size`: Some(48), added: 2523, mode: `MaxEncodedLen`) - /// Storage: `Nfts::ItemPriceOf` (r:0 w:1) - /// Proof: `Nfts::ItemPriceOf` (`max_values`: None, `max_size`: Some(89), added: 2564, mode: `MaxEncodedLen`) - fn set_price() -> Weight { - // Proof Size summary in bytes: - // Measured: `484` - // Estimated: `4326` - // Minimum execution time: 23_529_000 picoseconds. - Weight::from_parts(23_958_000, 0) - .saturating_add(Weight::from_parts(0, 4326)) - .saturating_add(T::DbWeight::get().reads(3)) - .saturating_add(T::DbWeight::get().writes(1)) - } - /// Storage: `Nfts::Item` (r:1 w:1) - /// Proof: `Nfts::Item` (`max_values`: None, `max_size`: Some(861), added: 3336, mode: `MaxEncodedLen`) - /// Storage: `Nfts::ItemPriceOf` (r:1 w:1) - /// Proof: `Nfts::ItemPriceOf` (`max_values`: None, `max_size`: Some(89), added: 2564, mode: `MaxEncodedLen`) - /// Storage: `Nfts::Collection` (r:1 w:0) - /// Proof: `Nfts::Collection` (`max_values`: None, `max_size`: Some(84), added: 2559, mode: `MaxEncodedLen`) - /// Storage: `Nfts::Attribute` (r:1 w:0) - /// Proof: `Nfts::Attribute` (`max_values`: None, `max_size`: Some(479), added: 2954, mode: `MaxEncodedLen`) - /// Storage: `Nfts::CollectionConfigOf` (r:1 w:0) - /// Proof: `Nfts::CollectionConfigOf` (`max_values`: None, `max_size`: Some(73), added: 2548, mode: `MaxEncodedLen`) - /// Storage: `Nfts::ItemConfigOf` (r:1 w:0) - /// Proof: `Nfts::ItemConfigOf` (`max_values`: None, `max_size`: Some(48), added: 2523, mode: `MaxEncodedLen`) - /// Storage: `Nfts::Account` (r:0 w:2) - /// Proof: `Nfts::Account` (`max_values`: None, `max_size`: Some(88), added: 2563, mode: `MaxEncodedLen`) - /// Storage: `Nfts::PendingSwapOf` (r:0 w:1) - /// Proof: `Nfts::PendingSwapOf` (`max_values`: None, `max_size`: Some(71), added: 2546, mode: `MaxEncodedLen`) - fn buy_item() -> Weight { - // Proof Size summary in bytes: - // Measured: `671` - // Estimated: `4326` - // Minimum execution time: 50_885_000 picoseconds. - Weight::from_parts(52_157_000, 0) - .saturating_add(Weight::from_parts(0, 4326)) - .saturating_add(T::DbWeight::get().reads(6)) - .saturating_add(T::DbWeight::get().writes(5)) - } - /// The range of component `n` is `[0, 10]`. - fn pay_tips(n: u32, ) -> Weight { - // Proof Size summary in bytes: - // Measured: `0` - // Estimated: `0` - // Minimum execution time: 2_258_000 picoseconds. - Weight::from_parts(3_342_691, 0) - .saturating_add(Weight::from_parts(0, 0)) - // Standard Error: 6_268 - .saturating_add(Weight::from_parts(3_761_373, 0).saturating_mul(n.into())) - } - /// Storage: `Nfts::Item` (r:2 w:0) - /// Proof: `Nfts::Item` (`max_values`: None, `max_size`: Some(861), added: 3336, mode: `MaxEncodedLen`) - /// Storage: `Nfts::PendingSwapOf` (r:0 w:1) - /// Proof: `Nfts::PendingSwapOf` (`max_values`: None, `max_size`: Some(71), added: 2546, mode: `MaxEncodedLen`) - fn create_swap() -> Weight { - // Proof Size summary in bytes: - // Measured: `460` - // Estimated: `7662` - // Minimum execution time: 21_220_000 picoseconds. - Weight::from_parts(21_654_000, 0) - .saturating_add(Weight::from_parts(0, 7662)) - .saturating_add(T::DbWeight::get().reads(2)) - .saturating_add(T::DbWeight::get().writes(1)) - } - /// Storage: `Nfts::PendingSwapOf` (r:1 w:1) - /// Proof: `Nfts::PendingSwapOf` (`max_values`: None, `max_size`: Some(71), added: 2546, mode: `MaxEncodedLen`) - /// Storage: `Nfts::Item` (r:1 w:0) - /// Proof: `Nfts::Item` (`max_values`: None, `max_size`: Some(861), added: 3336, mode: `MaxEncodedLen`) - fn cancel_swap() -> Weight { - // Proof Size summary in bytes: - // Measured: `479` - // Estimated: `4326` - // Minimum execution time: 20_430_000 picoseconds. - Weight::from_parts(21_038_000, 0) - .saturating_add(Weight::from_parts(0, 4326)) - .saturating_add(T::DbWeight::get().reads(2)) - .saturating_add(T::DbWeight::get().writes(1)) - } - /// Storage: `Nfts::Item` (r:2 w:2) - /// Proof: `Nfts::Item` (`max_values`: None, `max_size`: Some(861), added: 3336, mode: `MaxEncodedLen`) - /// Storage: `Nfts::PendingSwapOf` (r:1 w:2) - /// Proof: `Nfts::PendingSwapOf` (`max_values`: None, `max_size`: Some(71), added: 2546, mode: `MaxEncodedLen`) - /// Storage: `Nfts::Collection` (r:1 w:0) - /// Proof: `Nfts::Collection` (`max_values`: None, `max_size`: Some(84), added: 2559, mode: `MaxEncodedLen`) - /// Storage: `Nfts::Attribute` (r:2 w:0) - /// Proof: `Nfts::Attribute` (`max_values`: None, `max_size`: Some(479), added: 2954, mode: `MaxEncodedLen`) - /// Storage: `Nfts::CollectionConfigOf` (r:1 w:0) - /// Proof: `Nfts::CollectionConfigOf` (`max_values`: None, `max_size`: Some(73), added: 2548, mode: `MaxEncodedLen`) - /// Storage: `Nfts::ItemConfigOf` (r:2 w:0) - /// Proof: `Nfts::ItemConfigOf` (`max_values`: None, `max_size`: Some(48), added: 2523, mode: `MaxEncodedLen`) - /// Storage: `Nfts::Account` (r:0 w:4) - /// Proof: `Nfts::Account` (`max_values`: None, `max_size`: Some(88), added: 2563, mode: `MaxEncodedLen`) - /// Storage: `Nfts::ItemPriceOf` (r:0 w:2) - /// Proof: `Nfts::ItemPriceOf` (`max_values`: None, `max_size`: Some(89), added: 2564, mode: `MaxEncodedLen`) - fn claim_swap() -> Weight { - // Proof Size summary in bytes: - // Measured: `800` - // Estimated: `7662` - // Minimum execution time: 83_344_000 picoseconds. - Weight::from_parts(84_898_000, 0) - .saturating_add(Weight::from_parts(0, 7662)) - .saturating_add(T::DbWeight::get().reads(9)) - .saturating_add(T::DbWeight::get().writes(10)) - } - /// Storage: `Nfts::CollectionRoleOf` (r:2 w:0) - /// Proof: `Nfts::CollectionRoleOf` (`max_values`: None, `max_size`: Some(69), added: 2544, mode: `MaxEncodedLen`) - /// Storage: `Nfts::CollectionConfigOf` (r:1 w:0) - /// Proof: `Nfts::CollectionConfigOf` (`max_values`: None, `max_size`: Some(73), added: 2548, mode: `MaxEncodedLen`) - /// Storage: `Nfts::Item` (r:1 w:1) - /// Proof: `Nfts::Item` (`max_values`: None, `max_size`: Some(861), added: 3336, mode: `MaxEncodedLen`) - /// Storage: `Nfts::Collection` (r:1 w:1) - /// Proof: `Nfts::Collection` (`max_values`: None, `max_size`: Some(84), added: 2559, mode: `MaxEncodedLen`) - /// Storage: `Nfts::ItemConfigOf` (r:1 w:1) - /// Proof: `Nfts::ItemConfigOf` (`max_values`: None, `max_size`: Some(48), added: 2523, mode: `MaxEncodedLen`) - /// Storage: `System::Account` (r:1 w:1) - /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`) - /// Storage: `Nfts::Attribute` (r:10 w:10) - /// Proof: `Nfts::Attribute` (`max_values`: None, `max_size`: Some(479), added: 2954, mode: `MaxEncodedLen`) - /// Storage: `Nfts::ItemMetadataOf` (r:1 w:1) - /// Proof: `Nfts::ItemMetadataOf` (`max_values`: None, `max_size`: Some(347), added: 2822, mode: `MaxEncodedLen`) - /// Storage: `Nfts::Account` (r:0 w:1) - /// Proof: `Nfts::Account` (`max_values`: None, `max_size`: Some(88), added: 2563, mode: `MaxEncodedLen`) - /// The range of component `n` is `[0, 10]`. - fn mint_pre_signed(n: u32, ) -> Weight { - // Proof Size summary in bytes: - // Measured: `524` - // Estimated: `6078 + n * (2954 ±0)` - // Minimum execution time: 143_435_000 picoseconds. - Weight::from_parts(151_744_537, 0) - .saturating_add(Weight::from_parts(0, 6078)) - // Standard Error: 44_459 - .saturating_add(Weight::from_parts(31_293_503, 0).saturating_mul(n.into())) - .saturating_add(T::DbWeight::get().reads(8)) - .saturating_add(T::DbWeight::get().reads((1_u64).saturating_mul(n.into()))) - .saturating_add(T::DbWeight::get().writes(6)) - .saturating_add(T::DbWeight::get().writes((1_u64).saturating_mul(n.into()))) - .saturating_add(Weight::from_parts(0, 2954).saturating_mul(n.into())) - } - /// Storage: `Nfts::Item` (r:1 w:0) - /// Proof: `Nfts::Item` (`max_values`: None, `max_size`: Some(861), added: 3336, mode: `MaxEncodedLen`) - /// Storage: `Nfts::ItemAttributesApprovalsOf` (r:1 w:1) - /// Proof: `Nfts::ItemAttributesApprovalsOf` (`max_values`: None, `max_size`: Some(1001), added: 3476, mode: `MaxEncodedLen`) - /// Storage: `Nfts::CollectionConfigOf` (r:1 w:0) - /// Proof: `Nfts::CollectionConfigOf` (`max_values`: None, `max_size`: Some(73), added: 2548, mode: `MaxEncodedLen`) - /// Storage: `Nfts::Collection` (r:1 w:1) - /// Proof: `Nfts::Collection` (`max_values`: None, `max_size`: Some(84), added: 2559, mode: `MaxEncodedLen`) - /// Storage: `Nfts::Attribute` (r:10 w:10) - /// Proof: `Nfts::Attribute` (`max_values`: None, `max_size`: Some(479), added: 2954, 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 `[0, 10]`. - fn set_attributes_pre_signed(n: u32, ) -> Weight { - // Proof Size summary in bytes: - // Measured: `554` - // Estimated: `4466 + n * (2954 ±0)` - // Minimum execution time: 84_627_000 picoseconds. - Weight::from_parts(96_076_065, 0) - .saturating_add(Weight::from_parts(0, 4466)) - // Standard Error: 62_058 - .saturating_add(Weight::from_parts(30_461_383, 0).saturating_mul(n.into())) - .saturating_add(T::DbWeight::get().reads(4)) - .saturating_add(T::DbWeight::get().reads((1_u64).saturating_mul(n.into()))) - .saturating_add(T::DbWeight::get().writes(2)) - .saturating_add(T::DbWeight::get().writes((1_u64).saturating_mul(n.into()))) - .saturating_add(Weight::from_parts(0, 2954).saturating_mul(n.into())) - } -} diff --git a/cumulus/parachains/runtimes/assets/asset-hub-polkadot/src/weights/pallet_proxy.rs b/cumulus/parachains/runtimes/assets/asset-hub-polkadot/src/weights/pallet_proxy.rs deleted file mode 100644 index 99db2865692f..000000000000 --- a/cumulus/parachains/runtimes/assets/asset-hub-polkadot/src/weights/pallet_proxy.rs +++ /dev/null @@ -1,226 +0,0 @@ -// Copyright (C) Parity Technologies (UK) Ltd. -// This file is part of Cumulus. - -// Cumulus 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. - -// Cumulus 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 Cumulus. If not, see . - -//! Autogenerated weights for `pallet_proxy` -//! -//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev -//! DATE: 2023-07-31, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` -//! WORST CASE MAP SIZE: `1000000` -//! HOSTNAME: `runner-ynta1nyy-project-238-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz` -//! EXECUTION: ``, WASM-EXECUTION: `Compiled`, CHAIN: `Some("asset-hub-polkadot-dev")`, DB CACHE: 1024 - -// Executed Command: -// ./target/production/polkadot-parachain -// benchmark -// pallet -// --chain=asset-hub-polkadot-dev -// --wasm-execution=compiled -// --pallet=pallet_proxy -// --no-storage-info -// --no-median-slopes -// --no-min-squares -// --extrinsic=* -// --steps=50 -// --repeat=20 -// --json -// --header=./file_header.txt -// --output=./parachains/runtimes/assets/asset-hub-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_proxy`. -pub struct WeightInfo(PhantomData); -impl pallet_proxy::WeightInfo for WeightInfo { - /// Storage: `Proxy::Proxies` (r:1 w:0) - /// Proof: `Proxy::Proxies` (`max_values`: None, `max_size`: Some(1241), added: 3716, mode: `MaxEncodedLen`) - /// The range of component `p` is `[1, 31]`. - fn proxy(p: u32, ) -> Weight { - // Proof Size summary in bytes: - // Measured: `127 + p * (37 ±0)` - // Estimated: `4706` - // Minimum execution time: 16_130_000 picoseconds. - Weight::from_parts(16_649_312, 0) - .saturating_add(Weight::from_parts(0, 4706)) - // Standard Error: 761 - .saturating_add(Weight::from_parts(42_507, 0).saturating_mul(p.into())) - .saturating_add(T::DbWeight::get().reads(1)) - } - /// Storage: `Proxy::Proxies` (r:1 w:0) - /// Proof: `Proxy::Proxies` (`max_values`: None, `max_size`: Some(1241), added: 3716, mode: `MaxEncodedLen`) - /// Storage: `Proxy::Announcements` (r:1 w:1) - /// Proof: `Proxy::Announcements` (`max_values`: None, `max_size`: Some(2233), added: 4708, 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 `a` is `[0, 31]`. - /// The range of component `p` is `[1, 31]`. - fn proxy_announced(a: u32, p: u32, ) -> Weight { - // Proof Size summary in bytes: - // Measured: `454 + a * (68 ±0) + p * (37 ±0)` - // Estimated: `5698` - // Minimum execution time: 37_732_000 picoseconds. - Weight::from_parts(36_993_926, 0) - .saturating_add(Weight::from_parts(0, 5698)) - // Standard Error: 3_278 - .saturating_add(Weight::from_parts(144_955, 0).saturating_mul(a.into())) - // Standard Error: 3_387 - .saturating_add(Weight::from_parts(64_624, 0).saturating_mul(p.into())) - .saturating_add(T::DbWeight::get().reads(3)) - .saturating_add(T::DbWeight::get().writes(2)) - } - /// Storage: `Proxy::Announcements` (r:1 w:1) - /// Proof: `Proxy::Announcements` (`max_values`: None, `max_size`: Some(2233), added: 4708, 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 `a` is `[0, 31]`. - /// The range of component `p` is `[1, 31]`. - fn remove_announcement(a: u32, p: u32, ) -> Weight { - // Proof Size summary in bytes: - // Measured: `369 + a * (68 ±0)` - // Estimated: `5698` - // Minimum execution time: 24_229_000 picoseconds. - Weight::from_parts(24_199_507, 0) - .saturating_add(Weight::from_parts(0, 5698)) - // Standard Error: 1_672 - .saturating_add(Weight::from_parts(124_324, 0).saturating_mul(a.into())) - // Standard Error: 1_727 - .saturating_add(Weight::from_parts(28_481, 0).saturating_mul(p.into())) - .saturating_add(T::DbWeight::get().reads(2)) - .saturating_add(T::DbWeight::get().writes(2)) - } - /// Storage: `Proxy::Announcements` (r:1 w:1) - /// Proof: `Proxy::Announcements` (`max_values`: None, `max_size`: Some(2233), added: 4708, 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 `a` is `[0, 31]`. - /// The range of component `p` is `[1, 31]`. - fn reject_announcement(a: u32, p: u32, ) -> Weight { - // Proof Size summary in bytes: - // Measured: `369 + a * (68 ±0)` - // Estimated: `5698` - // Minimum execution time: 23_868_000 picoseconds. - Weight::from_parts(25_293_069, 0) - .saturating_add(Weight::from_parts(0, 5698)) - // Standard Error: 1_728 - .saturating_add(Weight::from_parts(114_080, 0).saturating_mul(a.into())) - // Standard Error: 1_786 - .saturating_add(Weight::from_parts(3_690, 0).saturating_mul(p.into())) - .saturating_add(T::DbWeight::get().reads(2)) - .saturating_add(T::DbWeight::get().writes(2)) - } - /// Storage: `Proxy::Proxies` (r:1 w:0) - /// Proof: `Proxy::Proxies` (`max_values`: None, `max_size`: Some(1241), added: 3716, mode: `MaxEncodedLen`) - /// Storage: `Proxy::Announcements` (r:1 w:1) - /// Proof: `Proxy::Announcements` (`max_values`: None, `max_size`: Some(2233), added: 4708, 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 `a` is `[0, 31]`. - /// The range of component `p` is `[1, 31]`. - fn announce(a: u32, p: u32, ) -> Weight { - // Proof Size summary in bytes: - // Measured: `386 + a * (68 ±0) + p * (37 ±0)` - // Estimated: `5698` - // Minimum execution time: 34_343_000 picoseconds. - Weight::from_parts(34_539_112, 0) - .saturating_add(Weight::from_parts(0, 5698)) - // Standard Error: 1_917 - .saturating_add(Weight::from_parts(117_360, 0).saturating_mul(a.into())) - // Standard Error: 1_981 - .saturating_add(Weight::from_parts(40_908, 0).saturating_mul(p.into())) - .saturating_add(T::DbWeight::get().reads(3)) - .saturating_add(T::DbWeight::get().writes(2)) - } - /// Storage: `Proxy::Proxies` (r:1 w:1) - /// Proof: `Proxy::Proxies` (`max_values`: None, `max_size`: Some(1241), added: 3716, mode: `MaxEncodedLen`) - /// The range of component `p` is `[1, 31]`. - fn add_proxy(p: u32, ) -> Weight { - // Proof Size summary in bytes: - // Measured: `127 + p * (37 ±0)` - // Estimated: `4706` - // Minimum execution time: 25_506_000 picoseconds. - Weight::from_parts(26_350_920, 0) - .saturating_add(Weight::from_parts(0, 4706)) - // Standard Error: 2_950 - .saturating_add(Weight::from_parts(48_972, 0).saturating_mul(p.into())) - .saturating_add(T::DbWeight::get().reads(1)) - .saturating_add(T::DbWeight::get().writes(1)) - } - /// Storage: `Proxy::Proxies` (r:1 w:1) - /// Proof: `Proxy::Proxies` (`max_values`: None, `max_size`: Some(1241), added: 3716, mode: `MaxEncodedLen`) - /// The range of component `p` is `[1, 31]`. - fn remove_proxy(p: u32, ) -> Weight { - // Proof Size summary in bytes: - // Measured: `127 + p * (37 ±0)` - // Estimated: `4706` - // Minimum execution time: 25_234_000 picoseconds. - Weight::from_parts(26_232_489, 0) - .saturating_add(Weight::from_parts(0, 4706)) - // Standard Error: 2_468 - .saturating_add(Weight::from_parts(48_955, 0).saturating_mul(p.into())) - .saturating_add(T::DbWeight::get().reads(1)) - .saturating_add(T::DbWeight::get().writes(1)) - } - /// Storage: `Proxy::Proxies` (r:1 w:1) - /// Proof: `Proxy::Proxies` (`max_values`: None, `max_size`: Some(1241), added: 3716, mode: `MaxEncodedLen`) - /// The range of component `p` is `[1, 31]`. - fn remove_proxies(p: u32, ) -> Weight { - // Proof Size summary in bytes: - // Measured: `127 + p * (37 ±0)` - // Estimated: `4706` - // Minimum execution time: 22_184_000 picoseconds. - Weight::from_parts(22_974_929, 0) - .saturating_add(Weight::from_parts(0, 4706)) - // Standard Error: 2_200 - .saturating_add(Weight::from_parts(45_741, 0).saturating_mul(p.into())) - .saturating_add(T::DbWeight::get().reads(1)) - .saturating_add(T::DbWeight::get().writes(1)) - } - /// Storage: `Proxy::Proxies` (r:1 w:1) - /// Proof: `Proxy::Proxies` (`max_values`: None, `max_size`: Some(1241), added: 3716, mode: `MaxEncodedLen`) - /// The range of component `p` is `[1, 31]`. - fn create_pure(p: u32, ) -> Weight { - // Proof Size summary in bytes: - // Measured: `139` - // Estimated: `4706` - // Minimum execution time: 27_044_000 picoseconds. - Weight::from_parts(27_978_605, 0) - .saturating_add(Weight::from_parts(0, 4706)) - // Standard Error: 2_206 - .saturating_add(Weight::from_parts(13_736, 0).saturating_mul(p.into())) - .saturating_add(T::DbWeight::get().reads(1)) - .saturating_add(T::DbWeight::get().writes(1)) - } - /// Storage: `Proxy::Proxies` (r:1 w:1) - /// Proof: `Proxy::Proxies` (`max_values`: None, `max_size`: Some(1241), added: 3716, mode: `MaxEncodedLen`) - /// The range of component `p` is `[0, 30]`. - fn kill_pure(p: u32, ) -> Weight { - // Proof Size summary in bytes: - // Measured: `164 + p * (37 ±0)` - // Estimated: `4706` - // Minimum execution time: 22_770_000 picoseconds. - Weight::from_parts(23_441_470, 0) - .saturating_add(Weight::from_parts(0, 4706)) - // Standard Error: 1_959 - .saturating_add(Weight::from_parts(47_317, 0).saturating_mul(p.into())) - .saturating_add(T::DbWeight::get().reads(1)) - .saturating_add(T::DbWeight::get().writes(1)) - } -} diff --git a/cumulus/parachains/runtimes/assets/asset-hub-polkadot/src/weights/pallet_session.rs b/cumulus/parachains/runtimes/assets/asset-hub-polkadot/src/weights/pallet_session.rs deleted file mode 100644 index 8a6943d53048..000000000000 --- a/cumulus/parachains/runtimes/assets/asset-hub-polkadot/src/weights/pallet_session.rs +++ /dev/null @@ -1,81 +0,0 @@ -// Copyright (C) Parity Technologies (UK) Ltd. -// This file is part of Cumulus. - -// Cumulus 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. - -// Cumulus 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 Cumulus. If not, see . - -//! Autogenerated weights for `pallet_session` -//! -//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev -//! DATE: 2023-07-31, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` -//! WORST CASE MAP SIZE: `1000000` -//! HOSTNAME: `runner-ynta1nyy-project-238-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz` -//! EXECUTION: ``, WASM-EXECUTION: `Compiled`, CHAIN: `Some("asset-hub-polkadot-dev")`, DB CACHE: 1024 - -// Executed Command: -// ./target/production/polkadot-parachain -// benchmark -// pallet -// --chain=asset-hub-polkadot-dev -// --wasm-execution=compiled -// --pallet=pallet_session -// --no-storage-info -// --no-median-slopes -// --no-min-squares -// --extrinsic=* -// --steps=50 -// --repeat=20 -// --json -// --header=./file_header.txt -// --output=./parachains/runtimes/assets/asset-hub-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_session`. -pub struct WeightInfo(PhantomData); -impl pallet_session::WeightInfo for WeightInfo { - /// Storage: `Session::NextKeys` (r:1 w:1) - /// Proof: `Session::NextKeys` (`max_values`: None, `max_size`: None, mode: `Measured`) - /// Storage: `Session::KeyOwner` (r:1 w:1) - /// Proof: `Session::KeyOwner` (`max_values`: None, `max_size`: None, mode: `Measured`) - fn set_keys() -> Weight { - // Proof Size summary in bytes: - // Measured: `270` - // Estimated: `3735` - // Minimum execution time: 16_684_000 picoseconds. - Weight::from_parts(17_167_000, 0) - .saturating_add(Weight::from_parts(0, 3735)) - .saturating_add(T::DbWeight::get().reads(2)) - .saturating_add(T::DbWeight::get().writes(2)) - } - /// Storage: `Session::NextKeys` (r:1 w:1) - /// Proof: `Session::NextKeys` (`max_values`: None, `max_size`: None, mode: `Measured`) - /// Storage: `Session::KeyOwner` (r:0 w:1) - /// Proof: `Session::KeyOwner` (`max_values`: None, `max_size`: None, mode: `Measured`) - fn purge_keys() -> Weight { - // Proof Size summary in bytes: - // Measured: `242` - // Estimated: `3707` - // Minimum execution time: 11_692_000 picoseconds. - Weight::from_parts(12_248_000, 0) - .saturating_add(Weight::from_parts(0, 3707)) - .saturating_add(T::DbWeight::get().reads(1)) - .saturating_add(T::DbWeight::get().writes(2)) - } -} diff --git a/cumulus/parachains/runtimes/assets/asset-hub-polkadot/src/weights/pallet_timestamp.rs b/cumulus/parachains/runtimes/assets/asset-hub-polkadot/src/weights/pallet_timestamp.rs deleted file mode 100644 index 8c6a2b5505e5..000000000000 --- a/cumulus/parachains/runtimes/assets/asset-hub-polkadot/src/weights/pallet_timestamp.rs +++ /dev/null @@ -1,75 +0,0 @@ -// Copyright (C) Parity Technologies (UK) Ltd. -// This file is part of Cumulus. - -// Cumulus 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. - -// Cumulus 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 Cumulus. If not, see . - -//! Autogenerated weights for `pallet_timestamp` -//! -//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev -//! DATE: 2023-07-31, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` -//! WORST CASE MAP SIZE: `1000000` -//! HOSTNAME: `runner-ynta1nyy-project-238-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz` -//! EXECUTION: ``, WASM-EXECUTION: `Compiled`, CHAIN: `Some("asset-hub-polkadot-dev")`, DB CACHE: 1024 - -// Executed Command: -// ./target/production/polkadot-parachain -// benchmark -// pallet -// --chain=asset-hub-polkadot-dev -// --wasm-execution=compiled -// --pallet=pallet_timestamp -// --no-storage-info -// --no-median-slopes -// --no-min-squares -// --extrinsic=* -// --steps=50 -// --repeat=20 -// --json -// --header=./file_header.txt -// --output=./parachains/runtimes/assets/asset-hub-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_timestamp`. -pub struct WeightInfo(PhantomData); -impl pallet_timestamp::WeightInfo for WeightInfo { - /// Storage: `Timestamp::Now` (r:1 w:1) - /// Proof: `Timestamp::Now` (`max_values`: Some(1), `max_size`: Some(8), added: 503, mode: `MaxEncodedLen`) - /// Storage: `Aura::CurrentSlot` (r:1 w:0) - /// Proof: `Aura::CurrentSlot` (`max_values`: Some(1), `max_size`: Some(8), added: 503, mode: `MaxEncodedLen`) - fn set() -> Weight { - // Proof Size summary in bytes: - // Measured: `86` - // Estimated: `1493` - // Minimum execution time: 9_214_000 picoseconds. - Weight::from_parts(9_535_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: `57` - // Estimated: `0` - // Minimum execution time: 3_269_000 picoseconds. - Weight::from_parts(3_458_000, 0) - .saturating_add(Weight::from_parts(0, 0)) - } -} diff --git a/cumulus/parachains/runtimes/assets/asset-hub-polkadot/src/weights/pallet_uniques.rs b/cumulus/parachains/runtimes/assets/asset-hub-polkadot/src/weights/pallet_uniques.rs deleted file mode 100644 index a88928be6534..000000000000 --- a/cumulus/parachains/runtimes/assets/asset-hub-polkadot/src/weights/pallet_uniques.rs +++ /dev/null @@ -1,467 +0,0 @@ -// Copyright (C) Parity Technologies (UK) Ltd. -// This file is part of Cumulus. - -// Cumulus 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. - -// Cumulus 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 Cumulus. If not, see . - -//! Autogenerated weights for `pallet_uniques` -//! -//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev -//! DATE: 2023-07-31, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` -//! WORST CASE MAP SIZE: `1000000` -//! HOSTNAME: `runner-ynta1nyy-project-238-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz` -//! EXECUTION: ``, WASM-EXECUTION: `Compiled`, CHAIN: `Some("asset-hub-polkadot-dev")`, DB CACHE: 1024 - -// Executed Command: -// ./target/production/polkadot-parachain -// benchmark -// pallet -// --chain=asset-hub-polkadot-dev -// --wasm-execution=compiled -// --pallet=pallet_uniques -// --no-storage-info -// --no-median-slopes -// --no-min-squares -// --extrinsic=* -// --steps=50 -// --repeat=20 -// --json -// --header=./file_header.txt -// --output=./parachains/runtimes/assets/asset-hub-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_uniques`. -pub struct WeightInfo(PhantomData); -impl pallet_uniques::WeightInfo for WeightInfo { - /// Storage: `Uniques::Class` (r:1 w:1) - /// Proof: `Uniques::Class` (`max_values`: None, `max_size`: Some(178), added: 2653, mode: `MaxEncodedLen`) - /// Storage: `Uniques::ClassAccount` (r:0 w:1) - /// Proof: `Uniques::ClassAccount` (`max_values`: None, `max_size`: Some(68), added: 2543, mode: `MaxEncodedLen`) - fn create() -> Weight { - // Proof Size summary in bytes: - // Measured: `145` - // Estimated: `3643` - // Minimum execution time: 29_513_000 picoseconds. - Weight::from_parts(30_346_000, 0) - .saturating_add(Weight::from_parts(0, 3643)) - .saturating_add(T::DbWeight::get().reads(1)) - .saturating_add(T::DbWeight::get().writes(2)) - } - /// Storage: `Uniques::Class` (r:1 w:1) - /// Proof: `Uniques::Class` (`max_values`: None, `max_size`: Some(178), added: 2653, mode: `MaxEncodedLen`) - /// Storage: `Uniques::ClassAccount` (r:0 w:1) - /// Proof: `Uniques::ClassAccount` (`max_values`: None, `max_size`: Some(68), added: 2543, mode: `MaxEncodedLen`) - fn force_create() -> Weight { - // Proof Size summary in bytes: - // Measured: `42` - // Estimated: `3643` - // Minimum execution time: 13_600_000 picoseconds. - Weight::from_parts(14_110_000, 0) - .saturating_add(Weight::from_parts(0, 3643)) - .saturating_add(T::DbWeight::get().reads(1)) - .saturating_add(T::DbWeight::get().writes(2)) - } - /// Storage: `Uniques::Class` (r:1 w:1) - /// Proof: `Uniques::Class` (`max_values`: None, `max_size`: Some(178), added: 2653, mode: `MaxEncodedLen`) - /// Storage: `Uniques::Asset` (r:1001 w:1000) - /// Proof: `Uniques::Asset` (`max_values`: None, `max_size`: Some(122), added: 2597, mode: `MaxEncodedLen`) - /// Storage: `Uniques::InstanceMetadataOf` (r:1000 w:1000) - /// Proof: `Uniques::InstanceMetadataOf` (`max_values`: None, `max_size`: Some(187), added: 2662, mode: `MaxEncodedLen`) - /// Storage: `Uniques::Attribute` (r:1000 w:1000) - /// Proof: `Uniques::Attribute` (`max_values`: None, `max_size`: Some(172), added: 2647, mode: `MaxEncodedLen`) - /// Storage: `Uniques::ClassAccount` (r:0 w:1) - /// Proof: `Uniques::ClassAccount` (`max_values`: None, `max_size`: Some(68), added: 2543, mode: `MaxEncodedLen`) - /// Storage: `Uniques::ClassMetadataOf` (r:0 w:1) - /// Proof: `Uniques::ClassMetadataOf` (`max_values`: None, `max_size`: Some(167), added: 2642, mode: `MaxEncodedLen`) - /// Storage: `Uniques::Account` (r:0 w:1000) - /// Proof: `Uniques::Account` (`max_values`: None, `max_size`: Some(88), added: 2563, mode: `MaxEncodedLen`) - /// Storage: `Uniques::CollectionMaxSupply` (r:0 w:1) - /// Proof: `Uniques::CollectionMaxSupply` (`max_values`: None, `max_size`: Some(24), added: 2499, mode: `MaxEncodedLen`) - /// The range of component `n` is `[0, 1000]`. - /// The range of component `m` is `[0, 1000]`. - /// The range of component `a` is `[0, 1000]`. - fn destroy(n: u32, m: u32, a: u32, ) -> Weight { - // Proof Size summary in bytes: - // Measured: `257 + a * (107 ±0) + m * (56 ±0) + n * (76 ±0)` - // Estimated: `3643 + a * (2647 ±0) + m * (2662 ±0) + n * (2597 ±0)` - // Minimum execution time: 2_945_869_000 picoseconds. - Weight::from_parts(3_037_917_000, 0) - .saturating_add(Weight::from_parts(0, 3643)) - // Standard Error: 35_850 - .saturating_add(Weight::from_parts(7_558_563, 0).saturating_mul(n.into())) - // Standard Error: 35_850 - .saturating_add(Weight::from_parts(501_089, 0).saturating_mul(m.into())) - // Standard Error: 35_850 - .saturating_add(Weight::from_parts(538_921, 0).saturating_mul(a.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().reads((1_u64).saturating_mul(m.into()))) - .saturating_add(T::DbWeight::get().reads((1_u64).saturating_mul(a.into()))) - .saturating_add(T::DbWeight::get().writes(4)) - .saturating_add(T::DbWeight::get().writes((2_u64).saturating_mul(n.into()))) - .saturating_add(T::DbWeight::get().writes((1_u64).saturating_mul(m.into()))) - .saturating_add(T::DbWeight::get().writes((1_u64).saturating_mul(a.into()))) - .saturating_add(Weight::from_parts(0, 2647).saturating_mul(a.into())) - .saturating_add(Weight::from_parts(0, 2662).saturating_mul(m.into())) - .saturating_add(Weight::from_parts(0, 2597).saturating_mul(n.into())) - } - /// Storage: `Uniques::Asset` (r:1 w:1) - /// Proof: `Uniques::Asset` (`max_values`: None, `max_size`: Some(122), added: 2597, mode: `MaxEncodedLen`) - /// Storage: `Uniques::Class` (r:1 w:1) - /// Proof: `Uniques::Class` (`max_values`: None, `max_size`: Some(178), added: 2653, mode: `MaxEncodedLen`) - /// Storage: `Uniques::CollectionMaxSupply` (r:1 w:0) - /// Proof: `Uniques::CollectionMaxSupply` (`max_values`: None, `max_size`: Some(24), added: 2499, mode: `MaxEncodedLen`) - /// Storage: `Uniques::Account` (r:0 w:1) - /// Proof: `Uniques::Account` (`max_values`: None, `max_size`: Some(88), added: 2563, mode: `MaxEncodedLen`) - fn mint() -> Weight { - // Proof Size summary in bytes: - // Measured: `282` - // Estimated: `3643` - // Minimum execution time: 36_225_000 picoseconds. - Weight::from_parts(36_858_000, 0) - .saturating_add(Weight::from_parts(0, 3643)) - .saturating_add(T::DbWeight::get().reads(3)) - .saturating_add(T::DbWeight::get().writes(3)) - } - /// Storage: `Uniques::Class` (r:1 w:1) - /// Proof: `Uniques::Class` (`max_values`: None, `max_size`: Some(178), added: 2653, mode: `MaxEncodedLen`) - /// Storage: `Uniques::Asset` (r:1 w:1) - /// Proof: `Uniques::Asset` (`max_values`: None, `max_size`: Some(122), added: 2597, mode: `MaxEncodedLen`) - /// Storage: `Uniques::Account` (r:0 w:1) - /// Proof: `Uniques::Account` (`max_values`: None, `max_size`: Some(88), added: 2563, mode: `MaxEncodedLen`) - /// Storage: `Uniques::ItemPriceOf` (r:0 w:1) - /// Proof: `Uniques::ItemPriceOf` (`max_values`: None, `max_size`: Some(89), added: 2564, mode: `MaxEncodedLen`) - fn burn() -> Weight { - // Proof Size summary in bytes: - // Measured: `428` - // Estimated: `3643` - // Minimum execution time: 37_021_000 picoseconds. - Weight::from_parts(37_749_000, 0) - .saturating_add(Weight::from_parts(0, 3643)) - .saturating_add(T::DbWeight::get().reads(2)) - .saturating_add(T::DbWeight::get().writes(4)) - } - /// Storage: `Uniques::Class` (r:1 w:0) - /// Proof: `Uniques::Class` (`max_values`: None, `max_size`: Some(178), added: 2653, mode: `MaxEncodedLen`) - /// Storage: `Uniques::Asset` (r:1 w:1) - /// Proof: `Uniques::Asset` (`max_values`: None, `max_size`: Some(122), added: 2597, mode: `MaxEncodedLen`) - /// Storage: `Uniques::Account` (r:0 w:2) - /// Proof: `Uniques::Account` (`max_values`: None, `max_size`: Some(88), added: 2563, mode: `MaxEncodedLen`) - /// Storage: `Uniques::ItemPriceOf` (r:0 w:1) - /// Proof: `Uniques::ItemPriceOf` (`max_values`: None, `max_size`: Some(89), added: 2564, mode: `MaxEncodedLen`) - fn transfer() -> Weight { - // Proof Size summary in bytes: - // Measured: `428` - // Estimated: `3643` - // Minimum execution time: 26_884_000 picoseconds. - Weight::from_parts(27_414_000, 0) - .saturating_add(Weight::from_parts(0, 3643)) - .saturating_add(T::DbWeight::get().reads(2)) - .saturating_add(T::DbWeight::get().writes(4)) - } - /// Storage: `Uniques::Class` (r:1 w:1) - /// Proof: `Uniques::Class` (`max_values`: None, `max_size`: Some(178), added: 2653, mode: `MaxEncodedLen`) - /// Storage: `Uniques::Asset` (r:5000 w:5000) - /// Proof: `Uniques::Asset` (`max_values`: None, `max_size`: Some(122), added: 2597, mode: `MaxEncodedLen`) - /// The range of component `i` is `[0, 5000]`. - fn redeposit(i: u32, ) -> Weight { - // Proof Size summary in bytes: - // Measured: `738 + i * (76 ±0)` - // Estimated: `3643 + i * (2597 ±0)` - // Minimum execution time: 14_797_000 picoseconds. - Weight::from_parts(14_943_000, 0) - .saturating_add(Weight::from_parts(0, 3643)) - // Standard Error: 25_250 - .saturating_add(Weight::from_parts(18_014_600, 0).saturating_mul(i.into())) - .saturating_add(T::DbWeight::get().reads(1)) - .saturating_add(T::DbWeight::get().reads((1_u64).saturating_mul(i.into()))) - .saturating_add(T::DbWeight::get().writes(1)) - .saturating_add(T::DbWeight::get().writes((1_u64).saturating_mul(i.into()))) - .saturating_add(Weight::from_parts(0, 2597).saturating_mul(i.into())) - } - /// Storage: `Uniques::Asset` (r:1 w:1) - /// Proof: `Uniques::Asset` (`max_values`: None, `max_size`: Some(122), added: 2597, mode: `MaxEncodedLen`) - /// Storage: `Uniques::Class` (r:1 w:0) - /// Proof: `Uniques::Class` (`max_values`: None, `max_size`: Some(178), added: 2653, mode: `MaxEncodedLen`) - fn freeze() -> Weight { - // Proof Size summary in bytes: - // Measured: `428` - // Estimated: `3643` - // Minimum execution time: 18_864_000 picoseconds. - Weight::from_parts(19_299_000, 0) - .saturating_add(Weight::from_parts(0, 3643)) - .saturating_add(T::DbWeight::get().reads(2)) - .saturating_add(T::DbWeight::get().writes(1)) - } - /// Storage: `Uniques::Asset` (r:1 w:1) - /// Proof: `Uniques::Asset` (`max_values`: None, `max_size`: Some(122), added: 2597, mode: `MaxEncodedLen`) - /// Storage: `Uniques::Class` (r:1 w:0) - /// Proof: `Uniques::Class` (`max_values`: None, `max_size`: Some(178), added: 2653, mode: `MaxEncodedLen`) - fn thaw() -> Weight { - // Proof Size summary in bytes: - // Measured: `428` - // Estimated: `3643` - // Minimum execution time: 18_530_000 picoseconds. - Weight::from_parts(19_230_000, 0) - .saturating_add(Weight::from_parts(0, 3643)) - .saturating_add(T::DbWeight::get().reads(2)) - .saturating_add(T::DbWeight::get().writes(1)) - } - /// Storage: `Uniques::Class` (r:1 w:1) - /// Proof: `Uniques::Class` (`max_values`: None, `max_size`: Some(178), added: 2653, mode: `MaxEncodedLen`) - fn freeze_collection() -> Weight { - // Proof Size summary in bytes: - // Measured: `282` - // Estimated: `3643` - // Minimum execution time: 13_807_000 picoseconds. - Weight::from_parts(14_270_000, 0) - .saturating_add(Weight::from_parts(0, 3643)) - .saturating_add(T::DbWeight::get().reads(1)) - .saturating_add(T::DbWeight::get().writes(1)) - } - /// Storage: `Uniques::Class` (r:1 w:1) - /// Proof: `Uniques::Class` (`max_values`: None, `max_size`: Some(178), added: 2653, mode: `MaxEncodedLen`) - fn thaw_collection() -> Weight { - // Proof Size summary in bytes: - // Measured: `282` - // Estimated: `3643` - // Minimum execution time: 13_657_000 picoseconds. - Weight::from_parts(14_059_000, 0) - .saturating_add(Weight::from_parts(0, 3643)) - .saturating_add(T::DbWeight::get().reads(1)) - .saturating_add(T::DbWeight::get().writes(1)) - } - /// Storage: `Uniques::OwnershipAcceptance` (r:1 w:1) - /// Proof: `Uniques::OwnershipAcceptance` (`max_values`: None, `max_size`: Some(52), added: 2527, mode: `MaxEncodedLen`) - /// Storage: `Uniques::Class` (r:1 w:1) - /// Proof: `Uniques::Class` (`max_values`: None, `max_size`: Some(178), added: 2653, mode: `MaxEncodedLen`) - /// Storage: `Uniques::ClassAccount` (r:0 w:2) - /// Proof: `Uniques::ClassAccount` (`max_values`: None, `max_size`: Some(68), added: 2543, mode: `MaxEncodedLen`) - fn transfer_ownership() -> Weight { - // Proof Size summary in bytes: - // Measured: `356` - // Estimated: `3643` - // Minimum execution time: 22_108_000 picoseconds. - Weight::from_parts(22_520_000, 0) - .saturating_add(Weight::from_parts(0, 3643)) - .saturating_add(T::DbWeight::get().reads(2)) - .saturating_add(T::DbWeight::get().writes(4)) - } - /// Storage: `Uniques::Class` (r:1 w:1) - /// Proof: `Uniques::Class` (`max_values`: None, `max_size`: Some(178), added: 2653, mode: `MaxEncodedLen`) - fn set_team() -> Weight { - // Proof Size summary in bytes: - // Measured: `282` - // Estimated: `3643` - // Minimum execution time: 14_128_000 picoseconds. - Weight::from_parts(14_481_000, 0) - .saturating_add(Weight::from_parts(0, 3643)) - .saturating_add(T::DbWeight::get().reads(1)) - .saturating_add(T::DbWeight::get().writes(1)) - } - /// Storage: `Uniques::Class` (r:1 w:1) - /// Proof: `Uniques::Class` (`max_values`: None, `max_size`: Some(178), added: 2653, mode: `MaxEncodedLen`) - /// Storage: `Uniques::ClassAccount` (r:0 w:1) - /// Proof: `Uniques::ClassAccount` (`max_values`: None, `max_size`: Some(68), added: 2543, mode: `MaxEncodedLen`) - fn force_item_status() -> Weight { - // Proof Size summary in bytes: - // Measured: `282` - // Estimated: `3643` - // Minimum execution time: 17_114_000 picoseconds. - Weight::from_parts(17_570_000, 0) - .saturating_add(Weight::from_parts(0, 3643)) - .saturating_add(T::DbWeight::get().reads(1)) - .saturating_add(T::DbWeight::get().writes(2)) - } - /// Storage: `Uniques::Class` (r:1 w:1) - /// Proof: `Uniques::Class` (`max_values`: None, `max_size`: Some(178), added: 2653, mode: `MaxEncodedLen`) - /// Storage: `Uniques::InstanceMetadataOf` (r:1 w:0) - /// Proof: `Uniques::InstanceMetadataOf` (`max_values`: None, `max_size`: Some(187), added: 2662, mode: `MaxEncodedLen`) - /// Storage: `Uniques::Attribute` (r:1 w:1) - /// Proof: `Uniques::Attribute` (`max_values`: None, `max_size`: Some(172), added: 2647, mode: `MaxEncodedLen`) - fn set_attribute() -> Weight { - // Proof Size summary in bytes: - // Measured: `559` - // Estimated: `3652` - // Minimum execution time: 40_412_000 picoseconds. - Weight::from_parts(43_009_000, 0) - .saturating_add(Weight::from_parts(0, 3652)) - .saturating_add(T::DbWeight::get().reads(3)) - .saturating_add(T::DbWeight::get().writes(2)) - } - /// Storage: `Uniques::Class` (r:1 w:1) - /// Proof: `Uniques::Class` (`max_values`: None, `max_size`: Some(178), added: 2653, mode: `MaxEncodedLen`) - /// Storage: `Uniques::InstanceMetadataOf` (r:1 w:0) - /// Proof: `Uniques::InstanceMetadataOf` (`max_values`: None, `max_size`: Some(187), added: 2662, mode: `MaxEncodedLen`) - /// Storage: `Uniques::Attribute` (r:1 w:1) - /// Proof: `Uniques::Attribute` (`max_values`: None, `max_size`: Some(172), added: 2647, mode: `MaxEncodedLen`) - fn clear_attribute() -> Weight { - // Proof Size summary in bytes: - // Measured: `756` - // Estimated: `3652` - // Minimum execution time: 38_044_000 picoseconds. - Weight::from_parts(38_871_000, 0) - .saturating_add(Weight::from_parts(0, 3652)) - .saturating_add(T::DbWeight::get().reads(3)) - .saturating_add(T::DbWeight::get().writes(2)) - } - /// Storage: `Uniques::Class` (r:1 w:1) - /// Proof: `Uniques::Class` (`max_values`: None, `max_size`: Some(178), added: 2653, mode: `MaxEncodedLen`) - /// Storage: `Uniques::InstanceMetadataOf` (r:1 w:1) - /// Proof: `Uniques::InstanceMetadataOf` (`max_values`: None, `max_size`: Some(187), added: 2662, mode: `MaxEncodedLen`) - fn set_metadata() -> Weight { - // Proof Size summary in bytes: - // Measured: `348` - // Estimated: `3652` - // Minimum execution time: 30_016_000 picoseconds. - Weight::from_parts(30_723_000, 0) - .saturating_add(Weight::from_parts(0, 3652)) - .saturating_add(T::DbWeight::get().reads(2)) - .saturating_add(T::DbWeight::get().writes(2)) - } - /// Storage: `Uniques::Class` (r:1 w:1) - /// Proof: `Uniques::Class` (`max_values`: None, `max_size`: Some(178), added: 2653, mode: `MaxEncodedLen`) - /// Storage: `Uniques::InstanceMetadataOf` (r:1 w:1) - /// Proof: `Uniques::InstanceMetadataOf` (`max_values`: None, `max_size`: Some(187), added: 2662, mode: `MaxEncodedLen`) - fn clear_metadata() -> Weight { - // Proof Size summary in bytes: - // Measured: `559` - // Estimated: `3652` - // Minimum execution time: 30_942_000 picoseconds. - Weight::from_parts(31_527_000, 0) - .saturating_add(Weight::from_parts(0, 3652)) - .saturating_add(T::DbWeight::get().reads(2)) - .saturating_add(T::DbWeight::get().writes(2)) - } - /// Storage: `Uniques::Class` (r:1 w:1) - /// Proof: `Uniques::Class` (`max_values`: None, `max_size`: Some(178), added: 2653, mode: `MaxEncodedLen`) - /// Storage: `Uniques::ClassMetadataOf` (r:1 w:1) - /// Proof: `Uniques::ClassMetadataOf` (`max_values`: None, `max_size`: Some(167), added: 2642, mode: `MaxEncodedLen`) - fn set_collection_metadata() -> Weight { - // Proof Size summary in bytes: - // Measured: `282` - // Estimated: `3643` - // Minimum execution time: 30_727_000 picoseconds. - Weight::from_parts(31_688_000, 0) - .saturating_add(Weight::from_parts(0, 3643)) - .saturating_add(T::DbWeight::get().reads(2)) - .saturating_add(T::DbWeight::get().writes(2)) - } - /// Storage: `Uniques::Class` (r:1 w:0) - /// Proof: `Uniques::Class` (`max_values`: None, `max_size`: Some(178), added: 2653, mode: `MaxEncodedLen`) - /// Storage: `Uniques::ClassMetadataOf` (r:1 w:1) - /// Proof: `Uniques::ClassMetadataOf` (`max_values`: None, `max_size`: Some(167), added: 2642, mode: `MaxEncodedLen`) - fn clear_collection_metadata() -> Weight { - // Proof Size summary in bytes: - // Measured: `473` - // Estimated: `3643` - // Minimum execution time: 29_844_000 picoseconds. - Weight::from_parts(30_403_000, 0) - .saturating_add(Weight::from_parts(0, 3643)) - .saturating_add(T::DbWeight::get().reads(2)) - .saturating_add(T::DbWeight::get().writes(1)) - } - /// Storage: `Uniques::Class` (r:1 w:0) - /// Proof: `Uniques::Class` (`max_values`: None, `max_size`: Some(178), added: 2653, mode: `MaxEncodedLen`) - /// Storage: `Uniques::Asset` (r:1 w:1) - /// Proof: `Uniques::Asset` (`max_values`: None, `max_size`: Some(122), added: 2597, mode: `MaxEncodedLen`) - fn approve_transfer() -> Weight { - // Proof Size summary in bytes: - // Measured: `428` - // Estimated: `3643` - // Minimum execution time: 19_155_000 picoseconds. - Weight::from_parts(19_909_000, 0) - .saturating_add(Weight::from_parts(0, 3643)) - .saturating_add(T::DbWeight::get().reads(2)) - .saturating_add(T::DbWeight::get().writes(1)) - } - /// Storage: `Uniques::Class` (r:1 w:0) - /// Proof: `Uniques::Class` (`max_values`: None, `max_size`: Some(178), added: 2653, mode: `MaxEncodedLen`) - /// Storage: `Uniques::Asset` (r:1 w:1) - /// Proof: `Uniques::Asset` (`max_values`: None, `max_size`: Some(122), added: 2597, mode: `MaxEncodedLen`) - fn cancel_approval() -> Weight { - // Proof Size summary in bytes: - // Measured: `461` - // Estimated: `3643` - // Minimum execution time: 19_163_000 picoseconds. - Weight::from_parts(19_804_000, 0) - .saturating_add(Weight::from_parts(0, 3643)) - .saturating_add(T::DbWeight::get().reads(2)) - .saturating_add(T::DbWeight::get().writes(1)) - } - /// Storage: `Uniques::OwnershipAcceptance` (r:1 w:1) - /// Proof: `Uniques::OwnershipAcceptance` (`max_values`: None, `max_size`: Some(52), added: 2527, mode: `MaxEncodedLen`) - fn set_accept_ownership() -> Weight { - // Proof Size summary in bytes: - // Measured: `42` - // Estimated: `3517` - // Minimum execution time: 15_413_000 picoseconds. - Weight::from_parts(15_762_000, 0) - .saturating_add(Weight::from_parts(0, 3517)) - .saturating_add(T::DbWeight::get().reads(1)) - .saturating_add(T::DbWeight::get().writes(1)) - } - /// Storage: `Uniques::CollectionMaxSupply` (r:1 w:1) - /// Proof: `Uniques::CollectionMaxSupply` (`max_values`: None, `max_size`: Some(24), added: 2499, mode: `MaxEncodedLen`) - /// Storage: `Uniques::Class` (r:1 w:0) - /// Proof: `Uniques::Class` (`max_values`: None, `max_size`: Some(178), added: 2653, mode: `MaxEncodedLen`) - fn set_collection_max_supply() -> Weight { - // Proof Size summary in bytes: - // Measured: `282` - // Estimated: `3643` - // Minimum execution time: 16_477_000 picoseconds. - Weight::from_parts(16_811_000, 0) - .saturating_add(Weight::from_parts(0, 3643)) - .saturating_add(T::DbWeight::get().reads(2)) - .saturating_add(T::DbWeight::get().writes(1)) - } - /// Storage: `Uniques::Asset` (r:1 w:0) - /// Proof: `Uniques::Asset` (`max_values`: None, `max_size`: Some(122), added: 2597, mode: `MaxEncodedLen`) - /// Storage: `Uniques::ItemPriceOf` (r:0 w:1) - /// Proof: `Uniques::ItemPriceOf` (`max_values`: None, `max_size`: Some(89), added: 2564, mode: `MaxEncodedLen`) - fn set_price() -> Weight { - // Proof Size summary in bytes: - // Measured: `259` - // Estimated: `3587` - // Minimum execution time: 16_415_000 picoseconds. - Weight::from_parts(16_906_000, 0) - .saturating_add(Weight::from_parts(0, 3587)) - .saturating_add(T::DbWeight::get().reads(1)) - .saturating_add(T::DbWeight::get().writes(1)) - } - /// Storage: `Uniques::Asset` (r:1 w:1) - /// Proof: `Uniques::Asset` (`max_values`: None, `max_size`: Some(122), added: 2597, mode: `MaxEncodedLen`) - /// Storage: `Uniques::ItemPriceOf` (r:1 w:1) - /// Proof: `Uniques::ItemPriceOf` (`max_values`: None, `max_size`: Some(89), added: 2564, mode: `MaxEncodedLen`) - /// Storage: `Uniques::Class` (r:1 w:0) - /// Proof: `Uniques::Class` (`max_values`: None, `max_size`: Some(178), added: 2653, mode: `MaxEncodedLen`) - /// Storage: `Uniques::Account` (r:0 w:2) - /// Proof: `Uniques::Account` (`max_values`: None, `max_size`: Some(88), added: 2563, mode: `MaxEncodedLen`) - fn buy_item() -> Weight { - // Proof Size summary in bytes: - // Measured: `540` - // Estimated: `3643` - // Minimum execution time: 35_814_000 picoseconds. - Weight::from_parts(36_569_000, 0) - .saturating_add(Weight::from_parts(0, 3643)) - .saturating_add(T::DbWeight::get().reads(3)) - .saturating_add(T::DbWeight::get().writes(4)) - } -} diff --git a/cumulus/parachains/runtimes/assets/asset-hub-polkadot/src/weights/pallet_utility.rs b/cumulus/parachains/runtimes/assets/asset-hub-polkadot/src/weights/pallet_utility.rs deleted file mode 100644 index c6fc093cc4b4..000000000000 --- a/cumulus/parachains/runtimes/assets/asset-hub-polkadot/src/weights/pallet_utility.rs +++ /dev/null @@ -1,102 +0,0 @@ -// Copyright (C) Parity Technologies (UK) Ltd. -// This file is part of Cumulus. - -// Cumulus 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. - -// Cumulus 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 Cumulus. If not, see . - -//! Autogenerated weights for `pallet_utility` -//! -//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev -//! DATE: 2023-07-31, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` -//! WORST CASE MAP SIZE: `1000000` -//! HOSTNAME: `runner-ynta1nyy-project-238-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz` -//! EXECUTION: ``, WASM-EXECUTION: `Compiled`, CHAIN: `Some("asset-hub-polkadot-dev")`, DB CACHE: 1024 - -// Executed Command: -// ./target/production/polkadot-parachain -// benchmark -// pallet -// --chain=asset-hub-polkadot-dev -// --wasm-execution=compiled -// --pallet=pallet_utility -// --no-storage-info -// --no-median-slopes -// --no-min-squares -// --extrinsic=* -// --steps=50 -// --repeat=20 -// --json -// --header=./file_header.txt -// --output=./parachains/runtimes/assets/asset-hub-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_utility`. -pub struct WeightInfo(PhantomData); -impl pallet_utility::WeightInfo for WeightInfo { - /// The range of component `c` is `[0, 1000]`. - fn batch(c: u32, ) -> Weight { - // Proof Size summary in bytes: - // Measured: `0` - // Estimated: `0` - // Minimum execution time: 6_918_000 picoseconds. - Weight::from_parts(2_421_521, 0) - .saturating_add(Weight::from_parts(0, 0)) - // Standard Error: 3_252 - .saturating_add(Weight::from_parts(6_625_635, 0).saturating_mul(c.into())) - } - fn as_derivative() -> Weight { - // Proof Size summary in bytes: - // Measured: `0` - // Estimated: `0` - // Minimum execution time: 5_304_000 picoseconds. - Weight::from_parts(5_546_000, 0) - .saturating_add(Weight::from_parts(0, 0)) - } - /// The range of component `c` is `[0, 1000]`. - fn batch_all(c: u32, ) -> Weight { - // Proof Size summary in bytes: - // Measured: `0` - // Estimated: `0` - // Minimum execution time: 6_847_000 picoseconds. - Weight::from_parts(1_224_975, 0) - .saturating_add(Weight::from_parts(0, 0)) - // Standard Error: 3_818 - .saturating_add(Weight::from_parts(6_891_149, 0).saturating_mul(c.into())) - } - fn dispatch_as() -> Weight { - // Proof Size summary in bytes: - // Measured: `0` - // Estimated: `0` - // Minimum execution time: 9_269_000 picoseconds. - Weight::from_parts(9_604_000, 0) - .saturating_add(Weight::from_parts(0, 0)) - } - /// The range of component `c` is `[0, 1000]`. - fn force_batch(c: u32, ) -> Weight { - // Proof Size summary in bytes: - // Measured: `0` - // Estimated: `0` - // Minimum execution time: 6_855_000 picoseconds. - Weight::from_parts(6_965_000, 0) - .saturating_add(Weight::from_parts(0, 0)) - // Standard Error: 1_631 - .saturating_add(Weight::from_parts(6_545_496, 0).saturating_mul(c.into())) - } -} diff --git a/cumulus/parachains/runtimes/assets/asset-hub-polkadot/src/weights/pallet_xcm.rs b/cumulus/parachains/runtimes/assets/asset-hub-polkadot/src/weights/pallet_xcm.rs deleted file mode 100644 index bd7615895e2e..000000000000 --- a/cumulus/parachains/runtimes/assets/asset-hub-polkadot/src/weights/pallet_xcm.rs +++ /dev/null @@ -1,290 +0,0 @@ -// Copyright (C) Parity Technologies (UK) Ltd. -// This file is part of Cumulus. - -// Cumulus 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. - -// Cumulus 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 Cumulus. If not, see . - -//! Autogenerated weights for `pallet_xcm` -//! -//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev -//! DATE: 2023-07-31, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` -//! WORST CASE MAP SIZE: `1000000` -//! HOSTNAME: `runner-ynta1nyy-project-238-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz` -//! EXECUTION: ``, WASM-EXECUTION: `Compiled`, CHAIN: `Some("asset-hub-polkadot-dev")`, DB CACHE: 1024 - -// Executed Command: -// ./target/production/polkadot-parachain -// benchmark -// pallet -// --chain=asset-hub-polkadot-dev -// --wasm-execution=compiled -// --pallet=pallet_xcm -// --no-storage-info -// --no-median-slopes -// --no-min-squares -// --extrinsic=* -// --steps=50 -// --repeat=20 -// --json -// --header=./file_header.txt -// --output=./parachains/runtimes/assets/asset-hub-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_xcm`. -pub struct WeightInfo(PhantomData); -impl pallet_xcm::WeightInfo for WeightInfo { - /// Storage: `PolkadotXcm::SupportedVersion` (r:1 w:0) - /// Proof: `PolkadotXcm::SupportedVersion` (`max_values`: None, `max_size`: None, mode: `Measured`) - /// Storage: `PolkadotXcm::VersionDiscoveryQueue` (r:1 w:1) - /// Proof: `PolkadotXcm::VersionDiscoveryQueue` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) - /// Storage: `PolkadotXcm::SafeXcmVersion` (r:1 w:0) - /// Proof: `PolkadotXcm::SafeXcmVersion` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) - /// Storage: `ParachainSystem::HostConfiguration` (r:1 w:0) - /// Proof: `ParachainSystem::HostConfiguration` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) - /// Storage: `ParachainSystem::PendingUpwardMessages` (r:1 w:1) - /// Proof: `ParachainSystem::PendingUpwardMessages` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) - fn send() -> Weight { - // Proof Size summary in bytes: - // Measured: `75` - // Estimated: `3540` - // Minimum execution time: 28_284_000 picoseconds. - Weight::from_parts(29_186_000, 0) - .saturating_add(Weight::from_parts(0, 3540)) - .saturating_add(T::DbWeight::get().reads(5)) - .saturating_add(T::DbWeight::get().writes(2)) - } - /// Storage: `ParachainInfo::ParachainId` (r:1 w:0) - /// Proof: `ParachainInfo::ParachainId` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`) - fn teleport_assets() -> Weight { - // Proof Size summary in bytes: - // Measured: `0` - // Estimated: `1489` - // Minimum execution time: 24_830_000 picoseconds. - Weight::from_parts(26_312_000, 0) - .saturating_add(Weight::from_parts(0, 1489)) - .saturating_add(T::DbWeight::get().reads(1)) - } - /// Storage: `ParachainInfo::ParachainId` (r:1 w:0) - /// Proof: `ParachainInfo::ParachainId` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`) - fn reserve_transfer_assets() -> Weight { - // Proof Size summary in bytes: - // Measured: `0` - // Estimated: `1489` - // Minimum execution time: 18_584_000 picoseconds. - Weight::from_parts(19_083_000, 0) - .saturating_add(Weight::from_parts(0, 1489)) - .saturating_add(T::DbWeight::get().reads(1)) - } - /// Storage: `Benchmark::Override` (r:0 w:0) - /// Proof: `Benchmark::Override` (`max_values`: None, `max_size`: None, mode: `Measured`) - fn execute() -> Weight { - // Proof Size summary in bytes: - // Measured: `0` - // Estimated: `0` - // Minimum execution time: 18_446_744_073_709_551_000 picoseconds. - Weight::from_parts(18_446_744_073_709_551_000, 0) - .saturating_add(Weight::from_parts(0, 0)) - } - /// Storage: `PolkadotXcm::SupportedVersion` (r:0 w:1) - /// Proof: `PolkadotXcm::SupportedVersion` (`max_values`: None, `max_size`: None, mode: `Measured`) - fn force_xcm_version() -> Weight { - // Proof Size summary in bytes: - // Measured: `0` - // Estimated: `0` - // Minimum execution time: 9_415_000 picoseconds. - Weight::from_parts(9_821_000, 0) - .saturating_add(Weight::from_parts(0, 0)) - .saturating_add(T::DbWeight::get().writes(1)) - } - /// Storage: `PolkadotXcm::SafeXcmVersion` (r:0 w:1) - /// Proof: `PolkadotXcm::SafeXcmVersion` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) - fn force_default_xcm_version() -> Weight { - // Proof Size summary in bytes: - // Measured: `0` - // Estimated: `0` - // Minimum execution time: 2_902_000 picoseconds. - Weight::from_parts(3_377_000, 0) - .saturating_add(Weight::from_parts(0, 0)) - .saturating_add(T::DbWeight::get().writes(1)) - } - /// Storage: `PolkadotXcm::VersionNotifiers` (r:1 w:1) - /// Proof: `PolkadotXcm::VersionNotifiers` (`max_values`: None, `max_size`: None, mode: `Measured`) - /// Storage: `PolkadotXcm::QueryCounter` (r:1 w:1) - /// Proof: `PolkadotXcm::QueryCounter` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) - /// Storage: `PolkadotXcm::SupportedVersion` (r:1 w:0) - /// Proof: `PolkadotXcm::SupportedVersion` (`max_values`: None, `max_size`: None, mode: `Measured`) - /// Storage: `PolkadotXcm::VersionDiscoveryQueue` (r:1 w:1) - /// Proof: `PolkadotXcm::VersionDiscoveryQueue` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) - /// Storage: `PolkadotXcm::SafeXcmVersion` (r:1 w:0) - /// Proof: `PolkadotXcm::SafeXcmVersion` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) - /// Storage: `ParachainSystem::HostConfiguration` (r:1 w:0) - /// Proof: `ParachainSystem::HostConfiguration` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) - /// Storage: `ParachainSystem::PendingUpwardMessages` (r:1 w:1) - /// Proof: `ParachainSystem::PendingUpwardMessages` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) - /// Storage: `PolkadotXcm::Queries` (r:0 w:1) - /// Proof: `PolkadotXcm::Queries` (`max_values`: None, `max_size`: None, mode: `Measured`) - fn force_subscribe_version_notify() -> Weight { - // Proof Size summary in bytes: - // Measured: `75` - // Estimated: `3540` - // Minimum execution time: 32_730_000 picoseconds. - Weight::from_parts(33_879_000, 0) - .saturating_add(Weight::from_parts(0, 3540)) - .saturating_add(T::DbWeight::get().reads(7)) - .saturating_add(T::DbWeight::get().writes(5)) - } - /// Storage: `PolkadotXcm::VersionNotifiers` (r:1 w:1) - /// Proof: `PolkadotXcm::VersionNotifiers` (`max_values`: None, `max_size`: None, mode: `Measured`) - /// Storage: `PolkadotXcm::SupportedVersion` (r:1 w:0) - /// Proof: `PolkadotXcm::SupportedVersion` (`max_values`: None, `max_size`: None, mode: `Measured`) - /// Storage: `PolkadotXcm::VersionDiscoveryQueue` (r:1 w:1) - /// Proof: `PolkadotXcm::VersionDiscoveryQueue` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) - /// Storage: `PolkadotXcm::SafeXcmVersion` (r:1 w:0) - /// Proof: `PolkadotXcm::SafeXcmVersion` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) - /// Storage: `ParachainSystem::HostConfiguration` (r:1 w:0) - /// Proof: `ParachainSystem::HostConfiguration` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) - /// Storage: `ParachainSystem::PendingUpwardMessages` (r:1 w:1) - /// Proof: `ParachainSystem::PendingUpwardMessages` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) - /// Storage: `PolkadotXcm::Queries` (r:0 w:1) - /// Proof: `PolkadotXcm::Queries` (`max_values`: None, `max_size`: None, mode: `Measured`) - fn force_unsubscribe_version_notify() -> Weight { - // Proof Size summary in bytes: - // Measured: `257` - // Estimated: `3722` - // Minimum execution time: 34_053_000 picoseconds. - Weight::from_parts(34_506_000, 0) - .saturating_add(Weight::from_parts(0, 3722)) - .saturating_add(T::DbWeight::get().reads(6)) - .saturating_add(T::DbWeight::get().writes(4)) - } - /// Storage: `PolkadotXcm::XcmExecutionSuspended` (r:0 w:1) - /// Proof: `PolkadotXcm::XcmExecutionSuspended` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) - fn force_suspension() -> Weight { - // Proof Size summary in bytes: - // Measured: `0` - // Estimated: `0` - // Minimum execution time: 2_824_000 picoseconds. - Weight::from_parts(2_986_000, 0) - .saturating_add(Weight::from_parts(0, 0)) - .saturating_add(T::DbWeight::get().writes(1)) - } - /// Storage: `PolkadotXcm::SupportedVersion` (r:4 w:2) - /// Proof: `PolkadotXcm::SupportedVersion` (`max_values`: None, `max_size`: None, mode: `Measured`) - fn migrate_supported_version() -> Weight { - // Proof Size summary in bytes: - // Measured: `129` - // Estimated: `11019` - // Minimum execution time: 17_011_000 picoseconds. - Weight::from_parts(17_488_000, 0) - .saturating_add(Weight::from_parts(0, 11019)) - .saturating_add(T::DbWeight::get().reads(4)) - .saturating_add(T::DbWeight::get().writes(2)) - } - /// Storage: `PolkadotXcm::VersionNotifiers` (r:4 w:2) - /// Proof: `PolkadotXcm::VersionNotifiers` (`max_values`: None, `max_size`: None, mode: `Measured`) - fn migrate_version_notifiers() -> Weight { - // Proof Size summary in bytes: - // Measured: `133` - // Estimated: `11023` - // Minimum execution time: 17_191_000 picoseconds. - Weight::from_parts(17_784_000, 0) - .saturating_add(Weight::from_parts(0, 11023)) - .saturating_add(T::DbWeight::get().reads(4)) - .saturating_add(T::DbWeight::get().writes(2)) - } - /// Storage: `PolkadotXcm::VersionNotifyTargets` (r:5 w:0) - /// Proof: `PolkadotXcm::VersionNotifyTargets` (`max_values`: None, `max_size`: None, mode: `Measured`) - fn already_notified_target() -> Weight { - // Proof Size summary in bytes: - // Measured: `140` - // Estimated: `13505` - // Minimum execution time: 18_625_000 picoseconds. - Weight::from_parts(19_177_000, 0) - .saturating_add(Weight::from_parts(0, 13505)) - .saturating_add(T::DbWeight::get().reads(5)) - } - /// Storage: `PolkadotXcm::VersionNotifyTargets` (r:2 w:1) - /// Proof: `PolkadotXcm::VersionNotifyTargets` (`max_values`: None, `max_size`: None, mode: `Measured`) - /// Storage: `PolkadotXcm::SupportedVersion` (r:1 w:0) - /// Proof: `PolkadotXcm::SupportedVersion` (`max_values`: None, `max_size`: None, mode: `Measured`) - /// Storage: `PolkadotXcm::VersionDiscoveryQueue` (r:1 w:1) - /// Proof: `PolkadotXcm::VersionDiscoveryQueue` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) - /// Storage: `PolkadotXcm::SafeXcmVersion` (r:1 w:0) - /// Proof: `PolkadotXcm::SafeXcmVersion` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) - /// Storage: `ParachainSystem::HostConfiguration` (r:1 w:0) - /// Proof: `ParachainSystem::HostConfiguration` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) - /// Storage: `ParachainSystem::PendingUpwardMessages` (r:1 w:1) - /// Proof: `ParachainSystem::PendingUpwardMessages` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) - fn notify_current_targets() -> Weight { - // Proof Size summary in bytes: - // Measured: `142` - // Estimated: `6082` - // Minimum execution time: 30_762_000 picoseconds. - Weight::from_parts(31_481_000, 0) - .saturating_add(Weight::from_parts(0, 6082)) - .saturating_add(T::DbWeight::get().reads(7)) - .saturating_add(T::DbWeight::get().writes(3)) - } - /// Storage: `PolkadotXcm::VersionNotifyTargets` (r:3 w:0) - /// Proof: `PolkadotXcm::VersionNotifyTargets` (`max_values`: None, `max_size`: None, mode: `Measured`) - fn notify_target_migration_fail() -> Weight { - // Proof Size summary in bytes: - // Measured: `172` - // Estimated: `8587` - // Minimum execution time: 9_025_000 picoseconds. - Weight::from_parts(9_423_000, 0) - .saturating_add(Weight::from_parts(0, 8587)) - .saturating_add(T::DbWeight::get().reads(3)) - } - /// Storage: `PolkadotXcm::VersionNotifyTargets` (r:4 w:2) - /// Proof: `PolkadotXcm::VersionNotifyTargets` (`max_values`: None, `max_size`: None, mode: `Measured`) - fn migrate_version_notify_targets() -> Weight { - // Proof Size summary in bytes: - // Measured: `140` - // Estimated: `11030` - // Minimum execution time: 17_550_000 picoseconds. - Weight::from_parts(17_939_000, 0) - .saturating_add(Weight::from_parts(0, 11030)) - .saturating_add(T::DbWeight::get().reads(4)) - .saturating_add(T::DbWeight::get().writes(2)) - } - /// Storage: `PolkadotXcm::VersionNotifyTargets` (r:4 w:2) - /// Proof: `PolkadotXcm::VersionNotifyTargets` (`max_values`: None, `max_size`: None, mode: `Measured`) - /// Storage: `PolkadotXcm::SupportedVersion` (r:1 w:0) - /// Proof: `PolkadotXcm::SupportedVersion` (`max_values`: None, `max_size`: None, mode: `Measured`) - /// Storage: `PolkadotXcm::VersionDiscoveryQueue` (r:1 w:1) - /// Proof: `PolkadotXcm::VersionDiscoveryQueue` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) - /// Storage: `PolkadotXcm::SafeXcmVersion` (r:1 w:0) - /// Proof: `PolkadotXcm::SafeXcmVersion` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) - /// Storage: `ParachainSystem::HostConfiguration` (r:1 w:0) - /// Proof: `ParachainSystem::HostConfiguration` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) - /// Storage: `ParachainSystem::PendingUpwardMessages` (r:1 w:1) - /// Proof: `ParachainSystem::PendingUpwardMessages` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) - fn migrate_and_notify_old_targets() -> Weight { - // Proof Size summary in bytes: - // Measured: `146` - // Estimated: `11036` - // Minimum execution time: 36_922_000 picoseconds. - Weight::from_parts(37_709_000, 0) - .saturating_add(Weight::from_parts(0, 11036)) - .saturating_add(T::DbWeight::get().reads(9)) - .saturating_add(T::DbWeight::get().writes(4)) - } -} diff --git a/cumulus/parachains/runtimes/assets/asset-hub-polkadot/src/weights/paritydb_weights.rs b/cumulus/parachains/runtimes/assets/asset-hub-polkadot/src/weights/paritydb_weights.rs deleted file mode 100644 index 25679703831a..000000000000 --- a/cumulus/parachains/runtimes/assets/asset-hub-polkadot/src/weights/paritydb_weights.rs +++ /dev/null @@ -1,63 +0,0 @@ -// This file is part of Substrate. - -// 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. - -pub mod constants { - use frame_support::{ - parameter_types, - weights::{constants, RuntimeDbWeight}, - }; - - parameter_types! { - /// `ParityDB` can be enabled with a feature flag, but is still experimental. These weights - /// are available for brave runtime engineers who may want to try this out as default. - pub const ParityDbWeight: RuntimeDbWeight = RuntimeDbWeight { - read: 8_000 * constants::WEIGHT_REF_TIME_PER_NANOS, - write: 50_000 * constants::WEIGHT_REF_TIME_PER_NANOS, - }; - } - - #[cfg(test)] - mod test_db_weights { - use super::constants::ParityDbWeight as W; - use frame_support::weights::constants; - - /// Checks that all weights exist and have sane values. - // NOTE: If this test fails but you are sure that the generated values are fine, - // you can delete it. - #[test] - fn sane() { - // At least 1 µs. - assert!( - W::get().reads(1).ref_time() >= constants::WEIGHT_REF_TIME_PER_MICROS, - "Read weight should be at least 1 µs." - ); - assert!( - W::get().writes(1).ref_time() >= constants::WEIGHT_REF_TIME_PER_MICROS, - "Write weight should be at least 1 µs." - ); - // At most 1 ms. - assert!( - W::get().reads(1).ref_time() <= constants::WEIGHT_REF_TIME_PER_MILLIS, - "Read weight should be at most 1 ms." - ); - assert!( - W::get().writes(1).ref_time() <= constants::WEIGHT_REF_TIME_PER_MILLIS, - "Write weight should be at most 1 ms." - ); - } - } -} diff --git a/cumulus/parachains/runtimes/assets/asset-hub-polkadot/src/weights/rocksdb_weights.rs b/cumulus/parachains/runtimes/assets/asset-hub-polkadot/src/weights/rocksdb_weights.rs deleted file mode 100644 index 3dd817aa6f13..000000000000 --- a/cumulus/parachains/runtimes/assets/asset-hub-polkadot/src/weights/rocksdb_weights.rs +++ /dev/null @@ -1,63 +0,0 @@ -// This file is part of Substrate. - -// 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. - -pub mod constants { - use frame_support::{ - parameter_types, - weights::{constants, RuntimeDbWeight}, - }; - - parameter_types! { - /// By default, Substrate uses `RocksDB`, so this will be the weight used throughout - /// the runtime. - pub const RocksDbWeight: RuntimeDbWeight = RuntimeDbWeight { - read: 25_000 * constants::WEIGHT_REF_TIME_PER_NANOS, - write: 100_000 * constants::WEIGHT_REF_TIME_PER_NANOS, - }; - } - - #[cfg(test)] - mod test_db_weights { - use super::constants::RocksDbWeight as W; - use frame_support::weights::constants; - - /// Checks that all weights exist and have sane values. - // NOTE: If this test fails but you are sure that the generated values are fine, - // you can delete it. - #[test] - fn sane() { - // At least 1 µs. - assert!( - W::get().reads(1).ref_time() >= constants::WEIGHT_REF_TIME_PER_MICROS, - "Read weight should be at least 1 µs." - ); - assert!( - W::get().writes(1).ref_time() >= constants::WEIGHT_REF_TIME_PER_MICROS, - "Write weight should be at least 1 µs." - ); - // At most 1 ms. - assert!( - W::get().reads(1).ref_time() <= constants::WEIGHT_REF_TIME_PER_MILLIS, - "Read weight should be at most 1 ms." - ); - assert!( - W::get().writes(1).ref_time() <= constants::WEIGHT_REF_TIME_PER_MILLIS, - "Write weight should be at most 1 ms." - ); - } - } -} diff --git a/cumulus/parachains/runtimes/assets/asset-hub-polkadot/src/weights/xcm/mod.rs b/cumulus/parachains/runtimes/assets/asset-hub-polkadot/src/weights/xcm/mod.rs deleted file mode 100644 index 55fed809e2b7..000000000000 --- a/cumulus/parachains/runtimes/assets/asset-hub-polkadot/src/weights/xcm/mod.rs +++ /dev/null @@ -1,256 +0,0 @@ -// Copyright (C) Parity Technologies (UK) Ltd. -// This file is part of Cumulus. - -// Cumulus 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. - -// Cumulus 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 Cumulus. If not, see . - -mod pallet_xcm_benchmarks_fungible; -mod pallet_xcm_benchmarks_generic; - -use crate::{xcm_config::MaxAssetsIntoHolding, Runtime}; -use frame_support::weights::Weight; -use pallet_xcm_benchmarks_fungible::WeightInfo as XcmFungibleWeight; -use pallet_xcm_benchmarks_generic::WeightInfo as XcmGeneric; -use sp_std::prelude::*; -use xcm::{latest::prelude::*, DoubleEncoded}; - -trait WeighMultiAssets { - fn weigh_multi_assets(&self, weight: Weight) -> Weight; -} - -const MAX_ASSETS: u64 = 100; - -impl WeighMultiAssets for MultiAssetFilter { - fn weigh_multi_assets(&self, weight: Weight) -> Weight { - match self { - Self::Definite(assets) => weight.saturating_mul(assets.inner().iter().count() as u64), - Self::Wild(asset) => match asset { - All => weight.saturating_mul(MAX_ASSETS), - AllOf { fun, .. } => match fun { - WildFungibility::Fungible => weight, - // Magic number 2 has to do with the fact that we could have up to 2 times - // MaxAssetsIntoHolding in the worst-case scenario. - WildFungibility::NonFungible => - weight.saturating_mul((MaxAssetsIntoHolding::get() * 2) as u64), - }, - AllCounted(count) => weight.saturating_mul(MAX_ASSETS.min(*count as u64)), - AllOfCounted { count, .. } => weight.saturating_mul(MAX_ASSETS.min(*count as u64)), - }, - } - } -} - -impl WeighMultiAssets for MultiAssets { - fn weigh_multi_assets(&self, weight: Weight) -> Weight { - weight.saturating_mul(self.inner().iter().count() as u64) - } -} - -pub struct AssetHubPolkadotXcmWeight(core::marker::PhantomData); -impl XcmWeightInfo for AssetHubPolkadotXcmWeight { - fn withdraw_asset(assets: &MultiAssets) -> Weight { - assets.weigh_multi_assets(XcmFungibleWeight::::withdraw_asset()) - } - // Currently there is no trusted reserve (`IsReserve = ()`), - // but we need this hack for `pallet_xcm::reserve_transfer_assets` - // (TODO) fix https://github.com/paritytech/polkadot/pull/7424 - // (TODO) fix https://github.com/paritytech/polkadot/pull/7546 - fn reserve_asset_deposited(_assets: &MultiAssets) -> Weight { - // TODO: if we change `IsReserve = ...` then use this line... - // TODO: or if remote weight estimation is fixed, then remove - // TODO: hardcoded - fix https://github.com/paritytech/cumulus/issues/1974 - let hardcoded_weight = Weight::from_parts(1_000_000_000_u64, 0); - hardcoded_weight.min(XcmFungibleWeight::::reserve_asset_deposited()) - } - fn receive_teleported_asset(assets: &MultiAssets) -> Weight { - assets.weigh_multi_assets(XcmFungibleWeight::::receive_teleported_asset()) - } - fn query_response( - _query_id: &u64, - _response: &Response, - _max_weight: &Weight, - _querier: &Option, - ) -> Weight { - XcmGeneric::::query_response() - } - fn transfer_asset(assets: &MultiAssets, _dest: &MultiLocation) -> Weight { - assets.weigh_multi_assets(XcmFungibleWeight::::transfer_asset()) - } - fn transfer_reserve_asset( - assets: &MultiAssets, - _dest: &MultiLocation, - _xcm: &Xcm<()>, - ) -> Weight { - assets.weigh_multi_assets(XcmFungibleWeight::::transfer_reserve_asset()) - } - fn transact( - _origin_type: &OriginKind, - _require_weight_at_most: &Weight, - _call: &DoubleEncoded, - ) -> Weight { - XcmGeneric::::transact() - } - fn hrmp_new_channel_open_request( - _sender: &u32, - _max_message_size: &u32, - _max_capacity: &u32, - ) -> Weight { - // XCM Executor does not currently support HRMP channel operations - Weight::MAX - } - fn hrmp_channel_accepted(_recipient: &u32) -> Weight { - // XCM Executor does not currently support HRMP channel operations - Weight::MAX - } - fn hrmp_channel_closing(_initiator: &u32, _sender: &u32, _recipient: &u32) -> Weight { - // XCM Executor does not currently support HRMP channel operations - Weight::MAX - } - fn clear_origin() -> Weight { - XcmGeneric::::clear_origin() - } - fn descend_origin(_who: &InteriorMultiLocation) -> Weight { - XcmGeneric::::descend_origin() - } - fn report_error(_query_response_info: &QueryResponseInfo) -> Weight { - XcmGeneric::::report_error() - } - - fn deposit_asset(assets: &MultiAssetFilter, _dest: &MultiLocation) -> Weight { - // Hardcoded till the XCM pallet is fixed - let hardcoded_weight = Weight::from_parts(1_000_000_000_u64, 0); - let weight = assets.weigh_multi_assets(XcmFungibleWeight::::deposit_asset()); - hardcoded_weight.min(weight) - } - fn deposit_reserve_asset( - assets: &MultiAssetFilter, - _dest: &MultiLocation, - _xcm: &Xcm<()>, - ) -> Weight { - assets.weigh_multi_assets(XcmFungibleWeight::::deposit_reserve_asset()) - } - fn exchange_asset(_give: &MultiAssetFilter, _receive: &MultiAssets, _maximal: &bool) -> Weight { - Weight::MAX - } - fn initiate_reserve_withdraw( - assets: &MultiAssetFilter, - _reserve: &MultiLocation, - _xcm: &Xcm<()>, - ) -> Weight { - assets.weigh_multi_assets(XcmFungibleWeight::::initiate_reserve_withdraw()) - } - fn initiate_teleport( - assets: &MultiAssetFilter, - _dest: &MultiLocation, - _xcm: &Xcm<()>, - ) -> Weight { - assets.weigh_multi_assets(XcmFungibleWeight::::initiate_teleport()) - } - fn report_holding(_response_info: &QueryResponseInfo, _assets: &MultiAssetFilter) -> Weight { - XcmGeneric::::report_holding() - } - fn buy_execution(_fees: &MultiAsset, _weight_limit: &WeightLimit) -> Weight { - XcmGeneric::::buy_execution() - } - fn refund_surplus() -> Weight { - XcmGeneric::::refund_surplus() - } - fn set_error_handler(_xcm: &Xcm) -> Weight { - XcmGeneric::::set_error_handler() - } - fn set_appendix(_xcm: &Xcm) -> Weight { - XcmGeneric::::set_appendix() - } - fn clear_error() -> Weight { - XcmGeneric::::clear_error() - } - fn claim_asset(_assets: &MultiAssets, _ticket: &MultiLocation) -> Weight { - XcmGeneric::::claim_asset() - } - fn trap(_code: &u64) -> Weight { - XcmGeneric::::trap() - } - fn subscribe_version(_query_id: &QueryId, _max_response_weight: &Weight) -> Weight { - XcmGeneric::::subscribe_version() - } - fn unsubscribe_version() -> Weight { - XcmGeneric::::unsubscribe_version() - } - fn burn_asset(assets: &MultiAssets) -> Weight { - assets.weigh_multi_assets(XcmGeneric::::burn_asset()) - } - fn expect_asset(assets: &MultiAssets) -> Weight { - assets.weigh_multi_assets(XcmGeneric::::expect_asset()) - } - fn expect_origin(_origin: &Option) -> Weight { - XcmGeneric::::expect_origin() - } - fn expect_error(_error: &Option<(u32, XcmError)>) -> Weight { - XcmGeneric::::expect_error() - } - fn expect_transact_status(_transact_status: &MaybeErrorCode) -> Weight { - XcmGeneric::::expect_transact_status() - } - fn query_pallet(_module_name: &Vec, _response_info: &QueryResponseInfo) -> Weight { - XcmGeneric::::query_pallet() - } - fn expect_pallet( - _index: &u32, - _name: &Vec, - _module_name: &Vec, - _crate_major: &u32, - _min_crate_minor: &u32, - ) -> Weight { - XcmGeneric::::expect_pallet() - } - fn report_transact_status(_response_info: &QueryResponseInfo) -> Weight { - XcmGeneric::::report_transact_status() - } - fn clear_transact_status() -> Weight { - XcmGeneric::::clear_transact_status() - } - fn universal_origin(_: &Junction) -> Weight { - Weight::MAX - } - fn export_message(_: &NetworkId, _: &Junctions, _: &Xcm<()>) -> Weight { - Weight::MAX - } - fn lock_asset(_: &MultiAsset, _: &MultiLocation) -> Weight { - Weight::MAX - } - fn unlock_asset(_: &MultiAsset, _: &MultiLocation) -> Weight { - Weight::MAX - } - fn note_unlockable(_: &MultiAsset, _: &MultiLocation) -> Weight { - Weight::MAX - } - fn request_unlock(_: &MultiAsset, _: &MultiLocation) -> Weight { - Weight::MAX - } - fn set_fees_mode(_: &bool) -> Weight { - XcmGeneric::::set_fees_mode() - } - fn set_topic(_topic: &[u8; 32]) -> Weight { - XcmGeneric::::set_topic() - } - fn clear_topic() -> Weight { - XcmGeneric::::clear_topic() - } - fn alias_origin(_: &MultiLocation) -> Weight { - // XCM Executor does not currently support alias origin operations - Weight::MAX - } - fn unpaid_execution(_: &WeightLimit, _: &Option) -> Weight { - XcmGeneric::::unpaid_execution() - } -} diff --git a/cumulus/parachains/runtimes/assets/asset-hub-polkadot/src/weights/xcm/pallet_xcm_benchmarks_fungible.rs b/cumulus/parachains/runtimes/assets/asset-hub-polkadot/src/weights/xcm/pallet_xcm_benchmarks_fungible.rs deleted file mode 100644 index 4f64ea3fa1bb..000000000000 --- a/cumulus/parachains/runtimes/assets/asset-hub-polkadot/src/weights/xcm/pallet_xcm_benchmarks_fungible.rs +++ /dev/null @@ -1,190 +0,0 @@ -// Copyright (C) Parity Technologies (UK) Ltd. -// This file is part of Cumulus. - -// Cumulus 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. - -// Cumulus 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 Cumulus. 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-07-31, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` -//! WORST CASE MAP SIZE: `1000000` -//! HOSTNAME: `runner-ynta1nyy-project-238-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz` -//! EXECUTION: , WASM-EXECUTION: Compiled, CHAIN: Some("asset-hub-polkadot-dev"), DB CACHE: 1024 - -// Executed Command: -// ./target/production/polkadot-parachain -// benchmark -// pallet -// --template=./templates/xcm-bench-template.hbs -// --chain=asset-hub-polkadot-dev -// --wasm-execution=compiled -// --pallet=pallet_xcm_benchmarks::fungible -// --no-storage-info -// --no-median-slopes -// --no-min-squares -// --extrinsic=* -// --steps=50 -// --repeat=20 -// --json -// --header=./file_header.txt -// --output=./parachains/runtimes/assets/asset-hub-polkadot/src/weights/xcm/pallet_xcm_benchmarks_fungible.rs - -#![cfg_attr(rustfmt, rustfmt_skip)] -#![allow(unused_parens)] -#![allow(unused_imports)] - -use frame_support::{traits::Get, weights::Weight}; -use sp_std::marker::PhantomData; - -/// Weights for `pallet_xcm_benchmarks::fungible`. -pub struct WeightInfo(PhantomData); -impl WeightInfo { - // Storage: `System::Account` (r:1 w:1) - // Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`) - pub fn withdraw_asset() -> Weight { - // Proof Size summary in bytes: - // Measured: `101` - // Estimated: `3593` - // Minimum execution time: 26_090_000 picoseconds. - Weight::from_parts(27_006_000, 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`) - pub fn transfer_asset() -> Weight { - // Proof Size summary in bytes: - // Measured: `101` - // Estimated: `6196` - // Minimum execution time: 50_699_000 picoseconds. - Weight::from_parts(51_888_000, 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: `ParachainInfo::ParachainId` (r:1 w:0) - // Proof: `ParachainInfo::ParachainId` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`) - // Storage: `PolkadotXcm::SupportedVersion` (r:1 w:0) - // Proof: `PolkadotXcm::SupportedVersion` (`max_values`: None, `max_size`: None, mode: `Measured`) - // Storage: `PolkadotXcm::VersionDiscoveryQueue` (r:1 w:1) - // Proof: `PolkadotXcm::VersionDiscoveryQueue` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) - // Storage: `PolkadotXcm::SafeXcmVersion` (r:1 w:0) - // Proof: `PolkadotXcm::SafeXcmVersion` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) - // Storage: `ParachainSystem::HostConfiguration` (r:1 w:0) - // Proof: `ParachainSystem::HostConfiguration` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) - // Storage: `ParachainSystem::PendingUpwardMessages` (r:1 w:1) - // Proof: `ParachainSystem::PendingUpwardMessages` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) - pub fn transfer_reserve_asset() -> Weight { - // Proof Size summary in bytes: - // Measured: `176` - // Estimated: `6196` - // Minimum execution time: 72_130_000 picoseconds. - Weight::from_parts(73_994_000, 6196) - .saturating_add(T::DbWeight::get().reads(8)) - .saturating_add(T::DbWeight::get().writes(4)) - } - // Storage: `Benchmark::Override` (r:0 w:0) - // Proof: `Benchmark::Override` (`max_values`: None, `max_size`: None, mode: `Measured`) - pub fn reserve_asset_deposited() -> Weight { - // Proof Size summary in bytes: - // Measured: `0` - // Estimated: `0` - // Minimum execution time: 500_000_000_000 picoseconds. - Weight::from_parts(500_000_000_000, 0) - } - // Storage: `ParachainInfo::ParachainId` (r:1 w:0) - // Proof: `ParachainInfo::ParachainId` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`) - // Storage: `PolkadotXcm::SupportedVersion` (r:1 w:0) - // Proof: `PolkadotXcm::SupportedVersion` (`max_values`: None, `max_size`: None, mode: `Measured`) - // Storage: `PolkadotXcm::VersionDiscoveryQueue` (r:1 w:1) - // Proof: `PolkadotXcm::VersionDiscoveryQueue` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) - // Storage: `PolkadotXcm::SafeXcmVersion` (r:1 w:0) - // Proof: `PolkadotXcm::SafeXcmVersion` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) - // Storage: `ParachainSystem::HostConfiguration` (r:1 w:0) - // Proof: `ParachainSystem::HostConfiguration` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) - // Storage: `ParachainSystem::PendingUpwardMessages` (r:1 w:1) - // Proof: `ParachainSystem::PendingUpwardMessages` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) - pub fn initiate_reserve_withdraw() -> Weight { - // Proof Size summary in bytes: - // Measured: `75` - // Estimated: `3540` - // Minimum execution time: 477_183_000 picoseconds. - Weight::from_parts(488_156_000, 3540) - .saturating_add(T::DbWeight::get().reads(6)) - .saturating_add(T::DbWeight::get().writes(2)) - } - pub fn receive_teleported_asset() -> Weight { - // Proof Size summary in bytes: - // Measured: `0` - // Estimated: `0` - // Minimum execution time: 3_966_000 picoseconds. - Weight::from_parts(4_129_000, 0) - } - // Storage: `System::Account` (r:1 w:1) - // Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`) - pub fn deposit_asset() -> Weight { - // Proof Size summary in bytes: - // Measured: `0` - // Estimated: `3593` - // Minimum execution time: 26_047_000 picoseconds. - Weight::from_parts(26_982_000, 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: `ParachainInfo::ParachainId` (r:1 w:0) - // Proof: `ParachainInfo::ParachainId` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`) - // Storage: `PolkadotXcm::SupportedVersion` (r:1 w:0) - // Proof: `PolkadotXcm::SupportedVersion` (`max_values`: None, `max_size`: None, mode: `Measured`) - // Storage: `PolkadotXcm::VersionDiscoveryQueue` (r:1 w:1) - // Proof: `PolkadotXcm::VersionDiscoveryQueue` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) - // Storage: `PolkadotXcm::SafeXcmVersion` (r:1 w:0) - // Proof: `PolkadotXcm::SafeXcmVersion` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) - // Storage: `ParachainSystem::HostConfiguration` (r:1 w:0) - // Proof: `ParachainSystem::HostConfiguration` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) - // Storage: `ParachainSystem::PendingUpwardMessages` (r:1 w:1) - // Proof: `ParachainSystem::PendingUpwardMessages` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) - pub fn deposit_reserve_asset() -> Weight { - // Proof Size summary in bytes: - // Measured: `75` - // Estimated: `3593` - // Minimum execution time: 51_076_000 picoseconds. - Weight::from_parts(51_826_000, 3593) - .saturating_add(T::DbWeight::get().reads(7)) - .saturating_add(T::DbWeight::get().writes(3)) - } - // Storage: `ParachainInfo::ParachainId` (r:1 w:0) - // Proof: `ParachainInfo::ParachainId` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`) - // Storage: `PolkadotXcm::SupportedVersion` (r:1 w:0) - // Proof: `PolkadotXcm::SupportedVersion` (`max_values`: None, `max_size`: None, mode: `Measured`) - // Storage: `PolkadotXcm::VersionDiscoveryQueue` (r:1 w:1) - // Proof: `PolkadotXcm::VersionDiscoveryQueue` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) - // Storage: `PolkadotXcm::SafeXcmVersion` (r:1 w:0) - // Proof: `PolkadotXcm::SafeXcmVersion` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) - // Storage: `ParachainSystem::HostConfiguration` (r:1 w:0) - // Proof: `ParachainSystem::HostConfiguration` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) - // Storage: `ParachainSystem::PendingUpwardMessages` (r:1 w:1) - // Proof: `ParachainSystem::PendingUpwardMessages` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) - pub fn initiate_teleport() -> Weight { - // Proof Size summary in bytes: - // Measured: `75` - // Estimated: `3540` - // Minimum execution time: 30_606_000 picoseconds. - Weight::from_parts(31_168_000, 3540) - .saturating_add(T::DbWeight::get().reads(6)) - .saturating_add(T::DbWeight::get().writes(2)) - } -} diff --git a/cumulus/parachains/runtimes/assets/asset-hub-polkadot/src/weights/xcm/pallet_xcm_benchmarks_generic.rs b/cumulus/parachains/runtimes/assets/asset-hub-polkadot/src/weights/xcm/pallet_xcm_benchmarks_generic.rs deleted file mode 100644 index 061992691a60..000000000000 --- a/cumulus/parachains/runtimes/assets/asset-hub-polkadot/src/weights/xcm/pallet_xcm_benchmarks_generic.rs +++ /dev/null @@ -1,329 +0,0 @@ -// Copyright (C) Parity Technologies (UK) Ltd. -// This file is part of Cumulus. - -// Cumulus 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. - -// Cumulus 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 Cumulus. 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-07-31, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` -//! WORST CASE MAP SIZE: `1000000` -//! HOSTNAME: `runner-ynta1nyy-project-238-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz` -//! EXECUTION: , WASM-EXECUTION: Compiled, CHAIN: Some("asset-hub-polkadot-dev"), DB CACHE: 1024 - -// Executed Command: -// ./target/production/polkadot-parachain -// benchmark -// pallet -// --template=./templates/xcm-bench-template.hbs -// --chain=asset-hub-polkadot-dev -// --wasm-execution=compiled -// --pallet=pallet_xcm_benchmarks::generic -// --no-storage-info -// --no-median-slopes -// --no-min-squares -// --extrinsic=* -// --steps=50 -// --repeat=20 -// --json -// --header=./file_header.txt -// --output=./parachains/runtimes/assets/asset-hub-polkadot/src/weights/xcm/pallet_xcm_benchmarks_generic.rs - -#![cfg_attr(rustfmt, rustfmt_skip)] -#![allow(unused_parens)] -#![allow(unused_imports)] - -use frame_support::{traits::Get, weights::Weight}; -use sp_std::marker::PhantomData; - -/// Weights for `pallet_xcm_benchmarks::generic`. -pub struct WeightInfo(PhantomData); -impl WeightInfo { - // Storage: `ParachainInfo::ParachainId` (r:1 w:0) - // Proof: `ParachainInfo::ParachainId` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`) - // Storage: `PolkadotXcm::SupportedVersion` (r:1 w:0) - // Proof: `PolkadotXcm::SupportedVersion` (`max_values`: None, `max_size`: None, mode: `Measured`) - // Storage: `PolkadotXcm::VersionDiscoveryQueue` (r:1 w:1) - // Proof: `PolkadotXcm::VersionDiscoveryQueue` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) - // Storage: `PolkadotXcm::SafeXcmVersion` (r:1 w:0) - // Proof: `PolkadotXcm::SafeXcmVersion` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) - // Storage: `ParachainSystem::HostConfiguration` (r:1 w:0) - // Proof: `ParachainSystem::HostConfiguration` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) - // Storage: `ParachainSystem::PendingUpwardMessages` (r:1 w:1) - // Proof: `ParachainSystem::PendingUpwardMessages` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) - pub fn report_holding() -> Weight { - // Proof Size summary in bytes: - // Measured: `75` - // Estimated: `3540` - // Minimum execution time: 425_235_000 picoseconds. - Weight::from_parts(432_935_000, 3540) - .saturating_add(T::DbWeight::get().reads(6)) - .saturating_add(T::DbWeight::get().writes(2)) - } - pub fn buy_execution() -> Weight { - // Proof Size summary in bytes: - // Measured: `0` - // Estimated: `0` - // Minimum execution time: 4_070_000 picoseconds. - Weight::from_parts(4_329_000, 0) - } - // Storage: `PolkadotXcm::Queries` (r:1 w:0) - // Proof: `PolkadotXcm::Queries` (`max_values`: None, `max_size`: None, mode: `Measured`) - pub fn query_response() -> Weight { - // Proof Size summary in bytes: - // Measured: `69` - // Estimated: `3534` - // Minimum execution time: 11_464_000 picoseconds. - Weight::from_parts(11_829_000, 3534) - .saturating_add(T::DbWeight::get().reads(1)) - } - pub fn transact() -> Weight { - // Proof Size summary in bytes: - // Measured: `0` - // Estimated: `0` - // Minimum execution time: 13_574_000 picoseconds. - Weight::from_parts(14_021_000, 0) - } - pub fn refund_surplus() -> Weight { - // Proof Size summary in bytes: - // Measured: `0` - // Estimated: `0` - // Minimum execution time: 4_276_000 picoseconds. - Weight::from_parts(4_479_000, 0) - } - pub fn set_error_handler() -> Weight { - // Proof Size summary in bytes: - // Measured: `0` - // Estimated: `0` - // Minimum execution time: 2_833_000 picoseconds. - Weight::from_parts(2_939_000, 0) - } - pub fn set_appendix() -> Weight { - // Proof Size summary in bytes: - // Measured: `0` - // Estimated: `0` - // Minimum execution time: 2_797_000 picoseconds. - Weight::from_parts(2_901_000, 0) - } - pub fn clear_error() -> Weight { - // Proof Size summary in bytes: - // Measured: `0` - // Estimated: `0` - // Minimum execution time: 2_855_000 picoseconds. - Weight::from_parts(2_961_000, 0) - } - pub fn descend_origin() -> Weight { - // Proof Size summary in bytes: - // Measured: `0` - // Estimated: `0` - // Minimum execution time: 3_589_000 picoseconds. - Weight::from_parts(3_720_000, 0) - } - pub fn clear_origin() -> Weight { - // Proof Size summary in bytes: - // Measured: `0` - // Estimated: `0` - // Minimum execution time: 2_786_000 picoseconds. - Weight::from_parts(2_889_000, 0) - } - // Storage: `ParachainInfo::ParachainId` (r:1 w:0) - // Proof: `ParachainInfo::ParachainId` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`) - // Storage: `PolkadotXcm::SupportedVersion` (r:1 w:0) - // Proof: `PolkadotXcm::SupportedVersion` (`max_values`: None, `max_size`: None, mode: `Measured`) - // Storage: `PolkadotXcm::VersionDiscoveryQueue` (r:1 w:1) - // Proof: `PolkadotXcm::VersionDiscoveryQueue` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) - // Storage: `PolkadotXcm::SafeXcmVersion` (r:1 w:0) - // Proof: `PolkadotXcm::SafeXcmVersion` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) - // Storage: `ParachainSystem::HostConfiguration` (r:1 w:0) - // Proof: `ParachainSystem::HostConfiguration` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) - // Storage: `ParachainSystem::PendingUpwardMessages` (r:1 w:1) - // Proof: `ParachainSystem::PendingUpwardMessages` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) - pub fn report_error() -> Weight { - // Proof Size summary in bytes: - // Measured: `75` - // Estimated: `3540` - // Minimum execution time: 25_740_000 picoseconds. - Weight::from_parts(26_355_000, 3540) - .saturating_add(T::DbWeight::get().reads(6)) - .saturating_add(T::DbWeight::get().writes(2)) - } - // Storage: `PolkadotXcm::AssetTraps` (r:1 w:1) - // Proof: `PolkadotXcm::AssetTraps` (`max_values`: None, `max_size`: None, mode: `Measured`) - pub fn claim_asset() -> Weight { - // Proof Size summary in bytes: - // Measured: `126` - // Estimated: `3591` - // Minimum execution time: 16_206_000 picoseconds. - Weight::from_parts(16_651_000, 3591) - .saturating_add(T::DbWeight::get().reads(1)) - .saturating_add(T::DbWeight::get().writes(1)) - } - pub fn trap() -> Weight { - // Proof Size summary in bytes: - // Measured: `0` - // Estimated: `0` - // Minimum execution time: 2_819_000 picoseconds. - Weight::from_parts(2_944_000, 0) - } - // Storage: `PolkadotXcm::VersionNotifyTargets` (r:1 w:1) - // Proof: `PolkadotXcm::VersionNotifyTargets` (`max_values`: None, `max_size`: None, mode: `Measured`) - // Storage: `PolkadotXcm::SupportedVersion` (r:1 w:0) - // Proof: `PolkadotXcm::SupportedVersion` (`max_values`: None, `max_size`: None, mode: `Measured`) - // Storage: `PolkadotXcm::VersionDiscoveryQueue` (r:1 w:1) - // Proof: `PolkadotXcm::VersionDiscoveryQueue` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) - // Storage: `PolkadotXcm::SafeXcmVersion` (r:1 w:0) - // Proof: `PolkadotXcm::SafeXcmVersion` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) - // Storage: `ParachainSystem::HostConfiguration` (r:1 w:0) - // Proof: `ParachainSystem::HostConfiguration` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) - // Storage: `ParachainSystem::PendingUpwardMessages` (r:1 w:1) - // Proof: `ParachainSystem::PendingUpwardMessages` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) - pub fn subscribe_version() -> Weight { - // Proof Size summary in bytes: - // Measured: `75` - // Estimated: `3540` - // Minimum execution time: 28_216_000 picoseconds. - Weight::from_parts(28_878_000, 3540) - .saturating_add(T::DbWeight::get().reads(6)) - .saturating_add(T::DbWeight::get().writes(3)) - } - // Storage: `PolkadotXcm::VersionNotifyTargets` (r:0 w:1) - // Proof: `PolkadotXcm::VersionNotifyTargets` (`max_values`: None, `max_size`: None, mode: `Measured`) - pub fn unsubscribe_version() -> Weight { - // Proof Size summary in bytes: - // Measured: `0` - // Estimated: `0` - // Minimum execution time: 4_795_000 picoseconds. - Weight::from_parts(5_008_000, 0) - .saturating_add(T::DbWeight::get().writes(1)) - } - pub fn burn_asset() -> Weight { - // Proof Size summary in bytes: - // Measured: `0` - // Estimated: `0` - // Minimum execution time: 135_205_000 picoseconds. - Weight::from_parts(140_623_000, 0) - } - pub fn expect_asset() -> Weight { - // Proof Size summary in bytes: - // Measured: `0` - // Estimated: `0` - // Minimum execution time: 12_791_000 picoseconds. - Weight::from_parts(13_114_000, 0) - } - pub fn expect_origin() -> Weight { - // Proof Size summary in bytes: - // Measured: `0` - // Estimated: `0` - // Minimum execution time: 3_000_000 picoseconds. - Weight::from_parts(3_091_000, 0) - } - pub fn expect_error() -> Weight { - // Proof Size summary in bytes: - // Measured: `0` - // Estimated: `0` - // Minimum execution time: 2_828_000 picoseconds. - Weight::from_parts(2_947_000, 0) - } - pub fn expect_transact_status() -> Weight { - // Proof Size summary in bytes: - // Measured: `0` - // Estimated: `0` - // Minimum execution time: 2_980_000 picoseconds. - Weight::from_parts(3_123_000, 0) - } - // Storage: `ParachainInfo::ParachainId` (r:1 w:0) - // Proof: `ParachainInfo::ParachainId` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`) - // Storage: `PolkadotXcm::SupportedVersion` (r:1 w:0) - // Proof: `PolkadotXcm::SupportedVersion` (`max_values`: None, `max_size`: None, mode: `Measured`) - // Storage: `PolkadotXcm::VersionDiscoveryQueue` (r:1 w:1) - // Proof: `PolkadotXcm::VersionDiscoveryQueue` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) - // Storage: `PolkadotXcm::SafeXcmVersion` (r:1 w:0) - // Proof: `PolkadotXcm::SafeXcmVersion` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) - // Storage: `ParachainSystem::HostConfiguration` (r:1 w:0) - // Proof: `ParachainSystem::HostConfiguration` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) - // Storage: `ParachainSystem::PendingUpwardMessages` (r:1 w:1) - // Proof: `ParachainSystem::PendingUpwardMessages` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) - pub fn query_pallet() -> Weight { - // Proof Size summary in bytes: - // Measured: `75` - // Estimated: `3540` - // Minimum execution time: 29_672_000 picoseconds. - Weight::from_parts(30_318_000, 3540) - .saturating_add(T::DbWeight::get().reads(6)) - .saturating_add(T::DbWeight::get().writes(2)) - } - pub fn expect_pallet() -> Weight { - // Proof Size summary in bytes: - // Measured: `0` - // Estimated: `0` - // Minimum execution time: 5_421_000 picoseconds. - Weight::from_parts(5_614_000, 0) - } - // Storage: `ParachainInfo::ParachainId` (r:1 w:0) - // Proof: `ParachainInfo::ParachainId` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`) - // Storage: `PolkadotXcm::SupportedVersion` (r:1 w:0) - // Proof: `PolkadotXcm::SupportedVersion` (`max_values`: None, `max_size`: None, mode: `Measured`) - // Storage: `PolkadotXcm::VersionDiscoveryQueue` (r:1 w:1) - // Proof: `PolkadotXcm::VersionDiscoveryQueue` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) - // Storage: `PolkadotXcm::SafeXcmVersion` (r:1 w:0) - // Proof: `PolkadotXcm::SafeXcmVersion` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) - // Storage: `ParachainSystem::HostConfiguration` (r:1 w:0) - // Proof: `ParachainSystem::HostConfiguration` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) - // Storage: `ParachainSystem::PendingUpwardMessages` (r:1 w:1) - // Proof: `ParachainSystem::PendingUpwardMessages` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) - pub fn report_transact_status() -> Weight { - // Proof Size summary in bytes: - // Measured: `75` - // Estimated: `3540` - // Minimum execution time: 25_621_000 picoseconds. - Weight::from_parts(26_486_000, 3540) - .saturating_add(T::DbWeight::get().reads(6)) - .saturating_add(T::DbWeight::get().writes(2)) - } - pub fn clear_transact_status() -> Weight { - // Proof Size summary in bytes: - // Measured: `0` - // Estimated: `0` - // Minimum execution time: 2_873_000 picoseconds. - Weight::from_parts(2_973_000, 0) - } - pub fn set_topic() -> Weight { - // Proof Size summary in bytes: - // Measured: `0` - // Estimated: `0` - // Minimum execution time: 2_861_000 picoseconds. - Weight::from_parts(2_923_000, 0) - } - pub fn clear_topic() -> Weight { - // Proof Size summary in bytes: - // Measured: `0` - // Estimated: `0` - // Minimum execution time: 2_845_000 picoseconds. - Weight::from_parts(2_970_000, 0) - } - pub fn set_fees_mode() -> Weight { - // Proof Size summary in bytes: - // Measured: `0` - // Estimated: `0` - // Minimum execution time: 2_773_000 picoseconds. - Weight::from_parts(2_922_000, 0) - } - pub fn unpaid_execution() -> Weight { - // Proof Size summary in bytes: - // Measured: `0` - // Estimated: `0` - // Minimum execution time: 2_980_000 picoseconds. - Weight::from_parts(3_095_000, 0) - } -} diff --git a/cumulus/parachains/runtimes/assets/asset-hub-polkadot/src/xcm_config.rs b/cumulus/parachains/runtimes/assets/asset-hub-polkadot/src/xcm_config.rs deleted file mode 100644 index 65cf62a610f4..000000000000 --- a/cumulus/parachains/runtimes/assets/asset-hub-polkadot/src/xcm_config.rs +++ /dev/null @@ -1,538 +0,0 @@ -// 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::{ - AccountId, AllPalletsWithSystem, Assets, Authorship, Balance, Balances, ForeignAssets, - ParachainInfo, ParachainSystem, PolkadotXcm, Runtime, RuntimeCall, RuntimeEvent, RuntimeOrigin, - TrustBackedAssetsInstance, WeightToFee, XcmpQueue, -}; -use assets_common::matching::{ - FromSiblingParachain, IsForeignConcreteAsset, StartsWith, StartsWithExplicitGlobalConsensus, -}; -use frame_support::{ - match_types, parameter_types, - traits::{ConstU32, Contains, Everything, Nothing, PalletInfoAccess}, -}; -use frame_system::EnsureRoot; -use pallet_xcm::XcmPassthrough; -use parachains_common::{impls::ToStakingPot, xcm_config::AssetFeeAsExistentialDepositMultiplier}; -use polkadot_parachain_primitives::primitives::Sibling; -use sp_runtime::traits::ConvertInto; -use xcm::latest::prelude::*; -use xcm_builder::{ - AccountId32Aliases, AllowExplicitUnpaidExecutionFrom, AllowKnownQueryResponses, - AllowSubscriptionsFrom, AllowTopLevelPaidExecutionFrom, CurrencyAdapter, - DenyReserveTransferToRelayChain, DenyThenTry, DescribeFamily, DescribePalletTerminal, - EnsureXcmOrigin, FungiblesAdapter, HashedDescription, IsConcrete, LocalMint, NativeAsset, - NoChecking, ParentAsSuperuser, ParentIsPreset, RelayChainAsNative, SiblingParachainAsNative, - SiblingParachainConvertsVia, SignedAccountId32AsNative, SignedToAccountId32, - SovereignSignedViaLocation, TakeWeightCredit, TrailingSetTopicAsId, UsingComponents, - WeightInfoBounds, WithComputedOrigin, WithUniqueTopic, -}; -use xcm_executor::{traits::WithOriginFilter, XcmExecutor}; - -parameter_types! { - pub const DotLocation: MultiLocation = MultiLocation::parent(); - pub const RelayNetwork: Option = Some(NetworkId::Polkadot); - pub RelayChainOrigin: RuntimeOrigin = cumulus_pallet_xcm::Origin::Relay.into(); - pub UniversalLocation: InteriorMultiLocation = - X2(GlobalConsensus(RelayNetwork::get().unwrap()), Parachain(ParachainInfo::parachain_id().into())); - pub UniversalLocationNetworkId: NetworkId = UniversalLocation::get().global_consensus().unwrap(); - pub TrustBackedAssetsPalletLocation: MultiLocation = - PalletInstance(::index() as u8).into(); - pub CheckingAccount: AccountId = PolkadotXcm::check_account(); - pub FellowshipLocation: MultiLocation = MultiLocation::new(1, Parachain(1001)); - pub const GovernanceLocation: MultiLocation = MultiLocation::parent(); -} - -/// Type for specifying how a `MultiLocation` can be converted into an `AccountId`. This is used -/// when determining ownership of accounts for asset transacting and when attempting to use XCM -/// `Transact` in order to determine the dispatch Origin. -pub type LocationToAccountId = ( - // The parent (Relay-chain) origin converts to the parent `AccountId`. - ParentIsPreset, - // Sibling parachain origins convert to AccountId via the `ParaId::into`. - SiblingParachainConvertsVia, - // Straight up local `AccountId32` origins just alias directly to `AccountId`. - AccountId32Aliases, - // Foreign chain account alias into local accounts according to a hash of their standard - // description. - HashedDescription>, -); - -/// Means for transacting the native currency on this chain. -pub type CurrencyTransactor = CurrencyAdapter< - // Use this currency: - Balances, - // Use this currency when it is a fungible asset matching the given location or name: - IsConcrete, - // Convert an XCM MultiLocation into a local account id: - LocationToAccountId, - // Our chain's account ID type (we can't get away without mentioning it explicitly): - AccountId, - // We don't track any teleports of `Balances`. - (), ->; - -/// `AssetId`/`Balance` converter for `TrustBackedAssets`. -pub type TrustBackedAssetsConvertedConcreteId = - assets_common::TrustBackedAssetsConvertedConcreteId; - -/// Means for transacting assets besides the native currency on this chain. -pub type FungiblesTransactor = FungiblesAdapter< - // Use this fungibles implementation: - Assets, - // Use this currency when it is a fungible asset matching the given location or name: - TrustBackedAssetsConvertedConcreteId, - // Convert an XCM MultiLocation into a local account id: - LocationToAccountId, - // Our chain's account ID type (we can't get away without mentioning it explicitly): - AccountId, - // We only want to allow teleports of known assets. We use non-zero issuance as an indication - // that this asset is known. - LocalMint>, - // The account to use for tracking teleports. - CheckingAccount, ->; - -/// `AssetId/Balance` converter for `TrustBackedAssets` -pub type ForeignAssetsConvertedConcreteId = assets_common::ForeignAssetsConvertedConcreteId< - ( - // Ignore `TrustBackedAssets` explicitly - StartsWith, - // Ignore assets that start explicitly with our `GlobalConsensus(NetworkId)`, means: - // - foreign assets from our consensus should be: `MultiLocation {parents: 1, - // X*(Parachain(xyz), ..)}` - // - foreign assets outside our consensus with the same `GlobalConsensus(NetworkId)` won't - // be accepted here - StartsWithExplicitGlobalConsensus, - ), - Balance, ->; - -/// Means for transacting foreign assets from different global consensus. -pub type ForeignFungiblesTransactor = FungiblesAdapter< - // Use this fungibles implementation: - ForeignAssets, - // Use this currency when it is a fungible asset matching the given location or name: - ForeignAssetsConvertedConcreteId, - // Convert an XCM MultiLocation into a local account id: - LocationToAccountId, - // Our chain's account ID type (we can't get away without mentioning it explicitly): - AccountId, - // We dont need to check teleports here. - NoChecking, - // The account to use for tracking teleports. - CheckingAccount, ->; - -/// Means for transacting assets on this chain. -pub type AssetTransactors = (CurrencyTransactor, FungiblesTransactor, ForeignFungiblesTransactor); - -/// This is the type we use to convert an (incoming) XCM origin into a local `Origin` instance, -/// ready for dispatching a transaction with Xcm's `Transact`. There is an `OriginKind` which can -/// biases the kind of local `Origin` it will become. -pub type XcmOriginToTransactDispatchOrigin = ( - // Sovereign account converter; this attempts to derive an `AccountId` from the origin location - // using `LocationToAccountId` and then turn that into the usual `Signed` origin. Useful for - // foreign chains who want to have a local sovereign account on this chain which they control. - SovereignSignedViaLocation, - // Native converter for Relay-chain (Parent) location; will convert to a `Relay` origin when - // recognised. - RelayChainAsNative, - // Native converter for sibling Parachains; will convert to a `SiblingPara` origin when - // recognised. - SiblingParachainAsNative, - // Superuser converter for the Relay-chain (Parent) location. This will allow it to issue a - // transaction from the Root origin. - ParentAsSuperuser, - // Native signed account converter; this just converts an `AccountId32` origin into a normal - // `RuntimeOrigin::Signed` origin of the same 32-byte value. - SignedAccountId32AsNative, - // Xcm origins can be represented natively under the Xcm pallet's Xcm origin. - XcmPassthrough, -); - -parameter_types! { - pub const MaxInstructions: u32 = 100; - pub const MaxAssetsIntoHolding: u32 = 64; - pub XcmAssetFeesReceiver: Option = Authorship::author(); -} - -match_types! { - pub type ParentOrParentsPlurality: impl Contains = { - MultiLocation { parents: 1, interior: Here } | - MultiLocation { parents: 1, interior: X1(Plurality { .. }) } - }; - pub type ParentOrSiblings: impl Contains = { - MultiLocation { parents: 1, interior: Here } | - MultiLocation { parents: 1, interior: X1(_) } - }; - pub type FellowsPlurality: impl Contains = { - MultiLocation { parents: 1, interior: X2(Parachain(1001), Plurality { id: BodyId::Technical, ..}) } - }; - pub type FellowshipSalaryPallet: impl Contains = { - MultiLocation { parents: 1, interior: X2(Parachain(1001), PalletInstance(64)) } - }; - pub type AmbassadorSalaryPallet: impl Contains = { - MultiLocation { parents: 1, interior: X2(Parachain(1001), PalletInstance(74)) } - }; -} - -/// A call filter for the XCM Transact instruction. This is a temporary measure until we properly -/// account for proof size weights. -/// -/// Calls that are allowed through this filter must: -/// 1. Have a fixed weight; -/// 2. Cannot lead to another call being made; -/// 3. Have a defined proof size weight, e.g. no unbounded vecs in call parameters. -pub struct SafeCallFilter; -impl Contains for SafeCallFilter { - fn contains(call: &RuntimeCall) -> bool { - #[cfg(feature = "runtime-benchmarks")] - { - if matches!(call, RuntimeCall::System(frame_system::Call::remark_with_event { .. })) { - return true - } - } - - matches!( - call, - RuntimeCall::PolkadotXcm(pallet_xcm::Call::force_xcm_version { .. }) | - RuntimeCall::System( - frame_system::Call::set_heap_pages { .. } | - frame_system::Call::set_code { .. } | - frame_system::Call::set_code_without_checks { .. } | - frame_system::Call::kill_prefix { .. }, - ) | RuntimeCall::ParachainSystem(..) | - RuntimeCall::Timestamp(..) | - RuntimeCall::Balances(..) | - RuntimeCall::CollatorSelection( - pallet_collator_selection::Call::set_desired_candidates { .. } | - pallet_collator_selection::Call::set_candidacy_bond { .. } | - pallet_collator_selection::Call::register_as_candidate { .. } | - pallet_collator_selection::Call::leave_intent { .. } | - pallet_collator_selection::Call::set_invulnerables { .. } | - pallet_collator_selection::Call::add_invulnerable { .. } | - pallet_collator_selection::Call::remove_invulnerable { .. }, - ) | RuntimeCall::Session(pallet_session::Call::purge_keys { .. }) | - RuntimeCall::XcmpQueue(..) | - RuntimeCall::DmpQueue(..) | - RuntimeCall::Assets( - pallet_assets::Call::create { .. } | - pallet_assets::Call::force_create { .. } | - pallet_assets::Call::start_destroy { .. } | - pallet_assets::Call::destroy_accounts { .. } | - pallet_assets::Call::destroy_approvals { .. } | - pallet_assets::Call::finish_destroy { .. } | - pallet_assets::Call::mint { .. } | - pallet_assets::Call::burn { .. } | - pallet_assets::Call::transfer { .. } | - pallet_assets::Call::transfer_keep_alive { .. } | - pallet_assets::Call::force_transfer { .. } | - pallet_assets::Call::freeze { .. } | - pallet_assets::Call::thaw { .. } | - pallet_assets::Call::freeze_asset { .. } | - pallet_assets::Call::thaw_asset { .. } | - pallet_assets::Call::transfer_ownership { .. } | - pallet_assets::Call::set_team { .. } | - pallet_assets::Call::set_metadata { .. } | - pallet_assets::Call::clear_metadata { .. } | - pallet_assets::Call::force_set_metadata { .. } | - pallet_assets::Call::force_clear_metadata { .. } | - pallet_assets::Call::force_asset_status { .. } | - pallet_assets::Call::approve_transfer { .. } | - pallet_assets::Call::cancel_approval { .. } | - pallet_assets::Call::force_cancel_approval { .. } | - pallet_assets::Call::transfer_approved { .. } | - pallet_assets::Call::touch { .. } | - pallet_assets::Call::refund { .. }, - ) | RuntimeCall::ForeignAssets( - pallet_assets::Call::create { .. } | - pallet_assets::Call::force_create { .. } | - pallet_assets::Call::start_destroy { .. } | - pallet_assets::Call::destroy_accounts { .. } | - pallet_assets::Call::destroy_approvals { .. } | - pallet_assets::Call::finish_destroy { .. } | - pallet_assets::Call::mint { .. } | - pallet_assets::Call::burn { .. } | - pallet_assets::Call::transfer { .. } | - pallet_assets::Call::transfer_keep_alive { .. } | - pallet_assets::Call::force_transfer { .. } | - pallet_assets::Call::freeze { .. } | - pallet_assets::Call::thaw { .. } | - pallet_assets::Call::freeze_asset { .. } | - pallet_assets::Call::thaw_asset { .. } | - pallet_assets::Call::transfer_ownership { .. } | - pallet_assets::Call::set_team { .. } | - pallet_assets::Call::set_metadata { .. } | - pallet_assets::Call::clear_metadata { .. } | - pallet_assets::Call::force_set_metadata { .. } | - pallet_assets::Call::force_clear_metadata { .. } | - pallet_assets::Call::force_asset_status { .. } | - pallet_assets::Call::approve_transfer { .. } | - pallet_assets::Call::cancel_approval { .. } | - pallet_assets::Call::force_cancel_approval { .. } | - pallet_assets::Call::transfer_approved { .. } | - pallet_assets::Call::touch { .. } | - pallet_assets::Call::refund { .. }, - ) | RuntimeCall::Nfts( - pallet_nfts::Call::create { .. } | - pallet_nfts::Call::force_create { .. } | - pallet_nfts::Call::destroy { .. } | - pallet_nfts::Call::mint { .. } | - pallet_nfts::Call::force_mint { .. } | - pallet_nfts::Call::burn { .. } | - pallet_nfts::Call::transfer { .. } | - pallet_nfts::Call::lock_item_transfer { .. } | - pallet_nfts::Call::unlock_item_transfer { .. } | - pallet_nfts::Call::lock_collection { .. } | - pallet_nfts::Call::transfer_ownership { .. } | - pallet_nfts::Call::set_team { .. } | - pallet_nfts::Call::force_collection_owner { .. } | - pallet_nfts::Call::force_collection_config { .. } | - pallet_nfts::Call::approve_transfer { .. } | - pallet_nfts::Call::cancel_approval { .. } | - pallet_nfts::Call::clear_all_transfer_approvals { .. } | - pallet_nfts::Call::lock_item_properties { .. } | - pallet_nfts::Call::set_attribute { .. } | - pallet_nfts::Call::force_set_attribute { .. } | - pallet_nfts::Call::clear_attribute { .. } | - pallet_nfts::Call::approve_item_attributes { .. } | - pallet_nfts::Call::cancel_item_attributes_approval { .. } | - pallet_nfts::Call::set_metadata { .. } | - pallet_nfts::Call::clear_metadata { .. } | - pallet_nfts::Call::set_collection_metadata { .. } | - pallet_nfts::Call::clear_collection_metadata { .. } | - pallet_nfts::Call::set_accept_ownership { .. } | - pallet_nfts::Call::set_collection_max_supply { .. } | - pallet_nfts::Call::update_mint_settings { .. } | - pallet_nfts::Call::set_price { .. } | - pallet_nfts::Call::buy_item { .. } | - pallet_nfts::Call::pay_tips { .. } | - pallet_nfts::Call::create_swap { .. } | - pallet_nfts::Call::cancel_swap { .. } | - pallet_nfts::Call::claim_swap { .. }, - ) | RuntimeCall::Uniques( - pallet_uniques::Call::create { .. } | - pallet_uniques::Call::force_create { .. } | - pallet_uniques::Call::destroy { .. } | - pallet_uniques::Call::mint { .. } | - pallet_uniques::Call::burn { .. } | - pallet_uniques::Call::transfer { .. } | - pallet_uniques::Call::freeze { .. } | - pallet_uniques::Call::thaw { .. } | - pallet_uniques::Call::freeze_collection { .. } | - pallet_uniques::Call::thaw_collection { .. } | - pallet_uniques::Call::transfer_ownership { .. } | - pallet_uniques::Call::set_team { .. } | - pallet_uniques::Call::approve_transfer { .. } | - pallet_uniques::Call::cancel_approval { .. } | - pallet_uniques::Call::force_item_status { .. } | - pallet_uniques::Call::set_attribute { .. } | - pallet_uniques::Call::clear_attribute { .. } | - pallet_uniques::Call::set_metadata { .. } | - pallet_uniques::Call::clear_metadata { .. } | - pallet_uniques::Call::set_collection_metadata { .. } | - pallet_uniques::Call::clear_collection_metadata { .. } | - pallet_uniques::Call::set_accept_ownership { .. } | - pallet_uniques::Call::set_collection_max_supply { .. } | - pallet_uniques::Call::set_price { .. } | - pallet_uniques::Call::buy_item { .. } - ) - ) - } -} - -pub type Barrier = TrailingSetTopicAsId< - DenyThenTry< - DenyReserveTransferToRelayChain, - ( - TakeWeightCredit, - // Expected responses are OK. - AllowKnownQueryResponses, - // Allow XCMs with some computed origins to pass through. - WithComputedOrigin< - ( - // If the message is one that immediately attemps to pay for execution, then - // allow it. - AllowTopLevelPaidExecutionFrom, - // Parent, its pluralities (i.e. governance bodies), and the Fellows plurality - // get free execution. - AllowExplicitUnpaidExecutionFrom<( - ParentOrParentsPlurality, - FellowsPlurality, - FellowshipSalaryPallet, - AmbassadorSalaryPallet, - )>, - // Subscriptions for version tracking are OK. - AllowSubscriptionsFrom, - ), - UniversalLocation, - ConstU32<8>, - >, - ), - >, ->; - -pub type AssetFeeAsExistentialDepositMultiplierFeeCharger = AssetFeeAsExistentialDepositMultiplier< - Runtime, - WeightToFee, - pallet_assets::BalanceToAssetBalance, - TrustBackedAssetsInstance, ->; - -pub struct XcmConfig; -impl xcm_executor::Config for XcmConfig { - type RuntimeCall = RuntimeCall; - type XcmSender = XcmRouter; - type AssetTransactor = AssetTransactors; - type OriginConverter = XcmOriginToTransactDispatchOrigin; - // Asset Hub Polkadot does not recognize a reserve location for any asset. This does not prevent - // Asset Hub acting _as_ a reserve location for DOT and assets created under `pallet-assets`. - // For DOT, users must use teleport where allowed (e.g. with the Relay Chain). - type IsReserve = (); - // We allow: - // - teleportation of DOT - // - teleportation of sibling parachain's assets (as ForeignCreators) - type IsTeleporter = ( - NativeAsset, - IsForeignConcreteAsset>>, - ); - type UniversalLocation = UniversalLocation; - type Barrier = Barrier; - type Weigher = WeightInfoBounds< - crate::weights::xcm::AssetHubPolkadotXcmWeight, - RuntimeCall, - MaxInstructions, - >; - type Trader = ( - UsingComponents>, - cumulus_primitives_utility::TakeFirstAssetTrader< - AccountId, - AssetFeeAsExistentialDepositMultiplierFeeCharger, - TrustBackedAssetsConvertedConcreteId, - Assets, - cumulus_primitives_utility::XcmFeesTo32ByteAccount< - FungiblesTransactor, - AccountId, - XcmAssetFeesReceiver, - >, - >, - ); - type ResponseHandler = PolkadotXcm; - type AssetTrap = PolkadotXcm; - type AssetClaims = PolkadotXcm; - type SubscriptionService = PolkadotXcm; - type PalletInstancesInfo = AllPalletsWithSystem; - type MaxAssetsIntoHolding = MaxAssetsIntoHolding; - type AssetLocker = (); - type AssetExchanger = (); - type FeeManager = (); - type MessageExporter = (); - type UniversalAliases = Nothing; - type CallDispatcher = WithOriginFilter; - type SafeCallFilter = SafeCallFilter; - type Aliasers = Nothing; -} - -/// Converts a local signed origin into an XCM multilocation. -/// Forms the basis for local origins sending/executing XCMs. -pub type LocalOriginToLocation = SignedToAccountId32; - -/// The means for routing XCM messages which are not for local execution into the right message -/// queues. -pub type XcmRouter = WithUniqueTopic<( - // Two routers - use UMP to communicate with the relay chain: - cumulus_primitives_utility::ParentAsUmp, - // ..and XCMP to communicate with the sibling chains. - XcmpQueue, -)>; - -#[cfg(feature = "runtime-benchmarks")] -parameter_types! { - pub ReachableDest: Option = Some(Parent.into()); -} - -impl pallet_xcm::Config for Runtime { - type RuntimeEvent = RuntimeEvent; - // We want to disallow users sending (arbitrary) XCMs from this chain. - type SendXcmOrigin = EnsureXcmOrigin; - type XcmRouter = XcmRouter; - // We support local origins dispatching XCM executions in principle... - type ExecuteXcmOrigin = EnsureXcmOrigin; - // ... but disallow generic XCM execution. As a result only teleports and reserve transfers are - // allowed. - type XcmExecuteFilter = Nothing; - type XcmExecutor = XcmExecutor; - type XcmTeleportFilter = Everything; - type XcmReserveTransferFilter = Everything; - type Weigher = WeightInfoBounds< - crate::weights::xcm::AssetHubPolkadotXcmWeight, - RuntimeCall, - MaxInstructions, - >; - type UniversalLocation = UniversalLocation; - type RuntimeOrigin = RuntimeOrigin; - type RuntimeCall = RuntimeCall; - const VERSION_DISCOVERY_QUEUE_SIZE: u32 = 100; - type AdvertisedXcmVersion = pallet_xcm::CurrentXcmVersion; - type Currency = Balances; - type CurrencyMatcher = (); - type TrustedLockers = (); - type SovereignAccountOf = LocationToAccountId; - type MaxLockers = ConstU32<8>; - type WeightInfo = crate::weights::pallet_xcm::WeightInfo; - #[cfg(feature = "runtime-benchmarks")] - type ReachableDest = ReachableDest; - type AdminOrigin = EnsureRoot; - type MaxRemoteLockConsumers = ConstU32<0>; - type RemoteLockConsumerIdentifier = (); -} - -impl cumulus_pallet_xcm::Config for Runtime { - type RuntimeEvent = RuntimeEvent; - type XcmExecutor = XcmExecutor; -} - -pub type ForeignCreatorsSovereignAccountOf = ( - SiblingParachainConvertsVia, - AccountId32Aliases, - ParentIsPreset, -); - -/// Simple conversion of `u32` into an `AssetId` for use in benchmarking. -pub struct XcmBenchmarkHelper; -#[cfg(feature = "runtime-benchmarks")] -impl pallet_assets::BenchmarkHelper for XcmBenchmarkHelper { - fn create_asset_id_parameter(id: u32) -> MultiLocation { - MultiLocation { parents: 1, interior: X1(Parachain(id)) } - } -} - -#[test] -fn foreign_pallet_has_correct_local_account() { - use sp_core::crypto::{Ss58AddressFormat, Ss58Codec}; - use xcm_executor::traits::ConvertLocation; - - const COLLECTIVES_PARAID: u32 = 1001; - const FELLOWSHIP_SALARY_PALLET_ID: u8 = 64; - let fellowship_salary = - (Parent, Parachain(COLLECTIVES_PARAID), PalletInstance(FELLOWSHIP_SALARY_PALLET_ID)); - let account = LocationToAccountId::convert_location(&fellowship_salary.into()).unwrap(); - let polkadot = Ss58AddressFormat::try_from("polkadot").unwrap(); - let address = Ss58Codec::to_ss58check_with_version(&account, polkadot); - assert_eq!(address, "13w7NdvSR1Af8xsQTArDtZmVvjE8XhWNdL4yed3iFHrUNCnS"); -} diff --git a/cumulus/parachains/runtimes/assets/asset-hub-polkadot/tests/tests.rs b/cumulus/parachains/runtimes/assets/asset-hub-polkadot/tests/tests.rs deleted file mode 100644 index 7200ebc16a28..000000000000 --- a/cumulus/parachains/runtimes/assets/asset-hub-polkadot/tests/tests.rs +++ /dev/null @@ -1,659 +0,0 @@ -// This file is part of Cumulus. - -// 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. - -//! Tests for the Statemint (Polkadot Assets Hub) chain. - -use asset_hub_polkadot_runtime::xcm_config::{ - AssetFeeAsExistentialDepositMultiplierFeeCharger, CheckingAccount, DotLocation, - ForeignCreatorsSovereignAccountOf, TrustBackedAssetsPalletLocation, XcmConfig, -}; -pub use asset_hub_polkadot_runtime::{ - AllPalletsWithoutSystem, AssetDeposit, Assets, Balances, ExistentialDeposit, ForeignAssets, - ForeignAssetsInstance, MetadataDepositBase, MetadataDepositPerByte, ParachainSystem, Runtime, - RuntimeCall, RuntimeEvent, SessionKeys, System, TrustBackedAssetsInstance, -}; -use asset_test_utils::{CollatorSessionKeys, ExtBuilder}; -use codec::{Decode, Encode}; -use cumulus_primitives_utility::ChargeWeightInFungibles; -use frame_support::{ - assert_noop, assert_ok, - traits::fungibles::InspectEnumerable, - weights::{Weight, WeightToFee as WeightToFeeT}, -}; -use parachains_common::{ - polkadot::fee::WeightToFee, AccountId, AssetHubPolkadotAuraId as AuraId, - AssetIdForTrustBackedAssets, Balance, -}; -use sp_runtime::traits::MaybeEquivalence; -use xcm::latest::prelude::*; -use xcm_executor::traits::{Identity, JustTry, WeightTrader}; - -const ALICE: [u8; 32] = [1u8; 32]; -const SOME_ASSET_ADMIN: [u8; 32] = [5u8; 32]; - -type AssetIdForTrustBackedAssetsConvert = - assets_common::AssetIdForTrustBackedAssetsConvert; - -type RuntimeHelper = asset_test_utils::RuntimeHelper; - -fn collator_session_keys() -> CollatorSessionKeys { - CollatorSessionKeys::new( - AccountId::from(ALICE), - AccountId::from(ALICE), - SessionKeys { aura: AuraId::from(sp_core::ed25519::Public::from_raw(ALICE)) }, - ) -} - -#[test] -fn test_asset_xcm_trader() { - ExtBuilder::::default() - .with_collators(vec![AccountId::from(ALICE)]) - .with_session_keys(vec![( - AccountId::from(ALICE), - AccountId::from(ALICE), - SessionKeys { aura: AuraId::from(sp_core::ed25519::Public::from_raw(ALICE)) }, - )]) - .build() - .execute_with(|| { - // We need root origin to create a sufficient asset - let minimum_asset_balance = 333333333_u128; - let local_asset_id = 1; - assert_ok!(Assets::force_create( - RuntimeHelper::root_origin(), - local_asset_id.into(), - AccountId::from(ALICE).into(), - true, - minimum_asset_balance - )); - - // We first mint enough asset for the account to exist for assets - assert_ok!(Assets::mint( - RuntimeHelper::origin_of(AccountId::from(ALICE)), - local_asset_id.into(), - AccountId::from(ALICE).into(), - minimum_asset_balance - )); - - // get asset id as multilocation - let asset_multilocation = - AssetIdForTrustBackedAssetsConvert::convert_back(&local_asset_id).unwrap(); - - // Set Alice as block author, who will receive fees - RuntimeHelper::run_to_block(2, AccountId::from(ALICE)); - - // We are going to buy 400e9 weight - // Because of the ED being higher in kusama's asset hub - // and not to complicate things, we use a little - // bit more of weight - let bought = Weight::from_parts(400_000_000_000u64, 0); - - // Lets calculate amount needed - let asset_amount_needed = - AssetFeeAsExistentialDepositMultiplierFeeCharger::charge_weight_in_fungibles( - local_asset_id, - bought, - ) - .expect("failed to compute"); - - // Lets pay with: asset_amount_needed + asset_amount_extra - let asset_amount_extra = 100_u128; - let asset: MultiAsset = - (asset_multilocation, asset_amount_needed + asset_amount_extra).into(); - - let mut trader = ::Trader::new(); - let ctx = XcmContext { origin: None, message_id: XcmHash::default(), topic: None }; - - // Lets buy_weight and make sure buy_weight does not return an error - let unused_assets = trader.buy_weight(bought, asset.into(), &ctx).expect("Expected Ok"); - // Check whether a correct amount of unused assets is returned - assert_ok!( - unused_assets.ensure_contains(&(asset_multilocation, asset_amount_extra).into()) - ); - - // Drop trader - drop(trader); - - // Make sure author(Alice) has received the amount - assert_eq!( - Assets::balance(local_asset_id, AccountId::from(ALICE)), - minimum_asset_balance + asset_amount_needed - ); - - // We also need to ensure the total supply increased - assert_eq!( - Assets::total_supply(local_asset_id), - minimum_asset_balance + asset_amount_needed - ); - }); -} - -#[test] -fn test_asset_xcm_trader_with_refund() { - ExtBuilder::::default() - .with_collators(vec![AccountId::from(ALICE)]) - .with_session_keys(vec![( - AccountId::from(ALICE), - AccountId::from(ALICE), - SessionKeys { aura: AuraId::from(sp_core::ed25519::Public::from_raw(ALICE)) }, - )]) - .build() - .execute_with(|| { - // We need root origin to create a sufficient asset - // We set existential deposit to be identical to the one for Balances first - assert_ok!(Assets::force_create( - RuntimeHelper::root_origin(), - 1.into(), - AccountId::from(ALICE).into(), - true, - ExistentialDeposit::get() - )); - - // We first mint enough asset for the account to exist for assets - assert_ok!(Assets::mint( - RuntimeHelper::origin_of(AccountId::from(ALICE)), - 1.into(), - AccountId::from(ALICE).into(), - ExistentialDeposit::get() - )); - - let mut trader = ::Trader::new(); - let ctx = XcmContext { origin: None, message_id: XcmHash::default(), topic: None }; - - // Set Alice as block author, who will receive fees - RuntimeHelper::run_to_block(2, AccountId::from(ALICE)); - - // We are going to buy 400e9 weight - // Because of the ED being higher in kusama's asset hub - // and not to complicate things, we use a little - // bit more of weight - let bought = Weight::from_parts(400_000_000_000u64, 0); - - let asset_multilocation = AssetIdForTrustBackedAssetsConvert::convert_back(&1).unwrap(); - - // lets calculate amount needed - let amount_bought = WeightToFee::weight_to_fee(&bought); - - let asset: MultiAsset = (asset_multilocation, amount_bought).into(); - - // Make sure buy_weight does not return an error - assert_ok!(trader.buy_weight(bought, asset.clone().into(), &ctx)); - - // Make sure again buy_weight does return an error - // This assert relies on the fact, that we use `TakeFirstAssetTrader` in `WeightTrader` - // tuple chain, which cannot be called twice - assert_noop!(trader.buy_weight(bought, asset.into(), &ctx), XcmError::TooExpensive); - - // We actually use half of the weight - let weight_used = bought / 2; - - // Make sure refurnd works. - let amount_refunded = WeightToFee::weight_to_fee(&(bought - weight_used)); - - assert_eq!( - trader.refund_weight(bought - weight_used, &ctx), - Some((asset_multilocation, amount_refunded).into()) - ); - - // Drop trader - drop(trader); - - // We only should have paid for half of the bought weight - let fees_paid = WeightToFee::weight_to_fee(&weight_used); - - assert_eq!( - Assets::balance(1, AccountId::from(ALICE)), - ExistentialDeposit::get() + fees_paid - ); - - // We also need to ensure the total supply increased - assert_eq!(Assets::total_supply(1), ExistentialDeposit::get() + fees_paid); - }); -} - -#[test] -fn test_asset_xcm_trader_refund_not_possible_since_amount_less_than_ed() { - ExtBuilder::::default() - .with_collators(vec![AccountId::from(ALICE)]) - .with_session_keys(vec![( - AccountId::from(ALICE), - AccountId::from(ALICE), - SessionKeys { aura: AuraId::from(sp_core::ed25519::Public::from_raw(ALICE)) }, - )]) - .build() - .execute_with(|| { - // We need root origin to create a sufficient asset - // We set existential deposit to be identical to the one for Balances first - assert_ok!(Assets::force_create( - RuntimeHelper::root_origin(), - 1.into(), - AccountId::from(ALICE).into(), - true, - ExistentialDeposit::get() - )); - - let mut trader = ::Trader::new(); - let ctx = XcmContext { origin: None, message_id: XcmHash::default(), topic: None }; - - // Set Alice as block author, who will receive fees - RuntimeHelper::run_to_block(2, AccountId::from(ALICE)); - - // We are going to buy 50e9 weight - // Because of the ED being higher in kusama's asset hub - // and not to complicate things, we use a little - // bit more of weight - let bought = Weight::from_parts(50_000_000_000u64, 0); - - let asset_multilocation = AssetIdForTrustBackedAssetsConvert::convert_back(&1).unwrap(); - - let amount_bought = WeightToFee::weight_to_fee(&bought); - - assert!( - amount_bought < ExistentialDeposit::get(), - "we are testing what happens when the amount does not exceed ED" - ); - - let asset: MultiAsset = (asset_multilocation, amount_bought).into(); - - // Buy weight should return an error - assert_noop!(trader.buy_weight(bought, asset.into(), &ctx), XcmError::TooExpensive); - - // not credited since the ED is higher than this value - assert_eq!(Assets::balance(1, AccountId::from(ALICE)), 0); - - // We also need to ensure the total supply did not increase - assert_eq!(Assets::total_supply(1), 0); - }); -} - -#[test] -fn test_that_buying_ed_refund_does_not_refund() { - ExtBuilder::::default() - .with_collators(vec![AccountId::from(ALICE)]) - .with_session_keys(vec![( - AccountId::from(ALICE), - AccountId::from(ALICE), - SessionKeys { aura: AuraId::from(sp_core::ed25519::Public::from_raw(ALICE)) }, - )]) - .build() - .execute_with(|| { - // We need root origin to create a sufficient asset - // We set existential deposit to be identical to the one for Balances first - assert_ok!(Assets::force_create( - RuntimeHelper::root_origin(), - 1.into(), - AccountId::from(ALICE).into(), - true, - ExistentialDeposit::get() - )); - - let mut trader = ::Trader::new(); - let ctx = XcmContext { origin: None, message_id: XcmHash::default(), topic: None }; - - // Set Alice as block author, who will receive fees - RuntimeHelper::run_to_block(2, AccountId::from(ALICE)); - - // We are gonna buy ED - let bought = Weight::from_parts(ExistentialDeposit::get().try_into().unwrap(), 0); - - let asset_multilocation = AssetIdForTrustBackedAssetsConvert::convert_back(&1).unwrap(); - - let amount_bought = WeightToFee::weight_to_fee(&bought); - - assert!( - amount_bought < ExistentialDeposit::get(), - "we are testing what happens when the amount does not exceed ED" - ); - - // We know we will have to buy at least ED, so lets make sure first it will - // fail with a payment of less than ED - let asset: MultiAsset = (asset_multilocation, amount_bought).into(); - assert_noop!(trader.buy_weight(bought, asset.into(), &ctx), XcmError::TooExpensive); - - // Now lets buy ED at least - let asset: MultiAsset = (asset_multilocation, ExistentialDeposit::get()).into(); - - // Buy weight should work - assert_ok!(trader.buy_weight(bought, asset.into(), &ctx)); - - // Should return None. We have a specific check making sure we dont go below ED for - // drop payment - assert_eq!(trader.refund_weight(bought, &ctx), None); - - // Drop trader - drop(trader); - - // Make sure author(Alice) has received the amount - assert_eq!(Assets::balance(1, AccountId::from(ALICE)), ExistentialDeposit::get()); - - // We also need to ensure the total supply increased - assert_eq!(Assets::total_supply(1), ExistentialDeposit::get()); - }); -} - -#[test] -fn test_asset_xcm_trader_not_possible_for_non_sufficient_assets() { - ExtBuilder::::default() - .with_collators(vec![AccountId::from(ALICE)]) - .with_session_keys(vec![( - AccountId::from(ALICE), - AccountId::from(ALICE), - SessionKeys { aura: AuraId::from(sp_core::ed25519::Public::from_raw(ALICE)) }, - )]) - .build() - .execute_with(|| { - // Create a non-sufficient asset - let minimum_asset_balance = 1_000_000_u128; - assert_ok!(Assets::force_create( - RuntimeHelper::root_origin(), - 1.into(), - AccountId::from(ALICE).into(), - false, - minimum_asset_balance - )); - - // We first mint enough asset for the account to exist for assets - assert_ok!(Assets::mint( - RuntimeHelper::origin_of(AccountId::from(ALICE)), - 1.into(), - AccountId::from(ALICE).into(), - minimum_asset_balance - )); - - let mut trader = ::Trader::new(); - let ctx = XcmContext { origin: None, message_id: XcmHash::default(), topic: None }; - - // Set Alice as block author, who will receive fees - RuntimeHelper::run_to_block(2, AccountId::from(ALICE)); - - // We are going to buy 400e9 weight - // Because of the ED being higher in kusama's asset hub - // and not to complicate things, we use a little - // bit more of weight - let bought = Weight::from_parts(400_000_000_000u64, 0); - - // lets calculate amount needed - let asset_amount_needed = WeightToFee::weight_to_fee(&bought); - - let asset_multilocation = AssetIdForTrustBackedAssetsConvert::convert_back(&1).unwrap(); - - let asset: MultiAsset = (asset_multilocation, asset_amount_needed).into(); - - // Make sure again buy_weight does return an error - assert_noop!(trader.buy_weight(bought, asset.into(), &ctx), XcmError::TooExpensive); - - // Drop trader - drop(trader); - - // Make sure author(Alice) has NOT received the amount - assert_eq!(Assets::balance(1, AccountId::from(ALICE)), minimum_asset_balance); - - // We also need to ensure the total supply NOT increased - assert_eq!(Assets::total_supply(1), minimum_asset_balance); - }); -} - -#[test] -fn test_assets_balances_api_works() { - use assets_common::runtime_api::runtime_decl_for_fungibles_api::FungiblesApi; - - ExtBuilder::::default() - .with_collators(vec![AccountId::from(ALICE)]) - .with_session_keys(vec![( - AccountId::from(ALICE), - AccountId::from(ALICE), - SessionKeys { aura: AuraId::from(sp_core::ed25519::Public::from_raw(ALICE)) }, - )]) - .build() - .execute_with(|| { - let local_asset_id = 1; - let foreign_asset_id_multilocation = - MultiLocation { parents: 1, interior: X2(Parachain(1234), GeneralIndex(12345)) }; - - // check before - assert_eq!(Assets::balance(local_asset_id, AccountId::from(ALICE)), 0); - assert_eq!( - ForeignAssets::balance(foreign_asset_id_multilocation, AccountId::from(ALICE)), - 0 - ); - assert_eq!(Balances::free_balance(AccountId::from(ALICE)), 0); - assert!(Runtime::query_account_balances(AccountId::from(ALICE)) - .unwrap() - .try_as::() - .unwrap() - .is_none()); - - // Drip some balance - use frame_support::traits::fungible::Mutate; - let some_currency = ExistentialDeposit::get(); - Balances::mint_into(&AccountId::from(ALICE), some_currency).unwrap(); - - // We need root origin to create a sufficient asset - let minimum_asset_balance = 3333333_u128; - assert_ok!(Assets::force_create( - RuntimeHelper::root_origin(), - local_asset_id.into(), - AccountId::from(ALICE).into(), - true, - minimum_asset_balance - )); - - // We first mint enough asset for the account to exist for assets - assert_ok!(Assets::mint( - RuntimeHelper::origin_of(AccountId::from(ALICE)), - local_asset_id.into(), - AccountId::from(ALICE).into(), - minimum_asset_balance - )); - - // create foreign asset - let foreign_asset_minimum_asset_balance = 3333333_u128; - assert_ok!(ForeignAssets::force_create( - RuntimeHelper::root_origin(), - foreign_asset_id_multilocation, - AccountId::from(SOME_ASSET_ADMIN).into(), - false, - foreign_asset_minimum_asset_balance - )); - - // We first mint enough asset for the account to exist for assets - assert_ok!(ForeignAssets::mint( - RuntimeHelper::origin_of(AccountId::from(SOME_ASSET_ADMIN)), - foreign_asset_id_multilocation, - AccountId::from(ALICE).into(), - 6 * foreign_asset_minimum_asset_balance - )); - - // check after - assert_eq!( - Assets::balance(local_asset_id, AccountId::from(ALICE)), - minimum_asset_balance - ); - assert_eq!( - ForeignAssets::balance(foreign_asset_id_multilocation, AccountId::from(ALICE)), - 6 * minimum_asset_balance - ); - assert_eq!(Balances::free_balance(AccountId::from(ALICE)), some_currency); - - let result: MultiAssets = Runtime::query_account_balances(AccountId::from(ALICE)) - .unwrap() - .try_into() - .unwrap(); - assert_eq!(result.len(), 3); - - // check currency - assert!(result.inner().iter().any(|asset| asset.eq( - &assets_common::fungible_conversion::convert_balance::( - some_currency - ) - .unwrap() - ))); - // check trusted asset - assert!(result.inner().iter().any(|asset| asset.eq(&( - AssetIdForTrustBackedAssetsConvert::convert_back(&local_asset_id).unwrap(), - minimum_asset_balance - ) - .into()))); - // check foreign asset - assert!(result.inner().iter().any(|asset| asset.eq(&( - Identity::convert_back(&foreign_asset_id_multilocation).unwrap(), - 6 * foreign_asset_minimum_asset_balance - ) - .into()))); - }); -} - -asset_test_utils::include_teleports_for_native_asset_works!( - Runtime, - AllPalletsWithoutSystem, - XcmConfig, - CheckingAccount, - WeightToFee, - ParachainSystem, - collator_session_keys(), - ExistentialDeposit::get(), - Box::new(|runtime_event_encoded: Vec| { - match RuntimeEvent::decode(&mut &runtime_event_encoded[..]) { - Ok(RuntimeEvent::PolkadotXcm(event)) => Some(event), - _ => None, - } - }), - Box::new(|runtime_event_encoded: Vec| { - match RuntimeEvent::decode(&mut &runtime_event_encoded[..]) { - Ok(RuntimeEvent::XcmpQueue(event)) => Some(event), - _ => None, - } - }), - 1000 -); - -asset_test_utils::include_teleports_for_foreign_assets_works!( - Runtime, - AllPalletsWithoutSystem, - XcmConfig, - CheckingAccount, - WeightToFee, - ParachainSystem, - ForeignCreatorsSovereignAccountOf, - ForeignAssetsInstance, - asset_test_utils::CollatorSessionKeys::new( - AccountId::from(ALICE), - AccountId::from(ALICE), - SessionKeys { aura: AuraId::from(sp_core::ed25519::Public::from_raw(ALICE)) } - ), - ExistentialDeposit::get(), - Box::new(|runtime_event_encoded: Vec| { - match RuntimeEvent::decode(&mut &runtime_event_encoded[..]) { - Ok(RuntimeEvent::PolkadotXcm(event)) => Some(event), - _ => None, - } - }), - Box::new(|runtime_event_encoded: Vec| { - match RuntimeEvent::decode(&mut &runtime_event_encoded[..]) { - Ok(RuntimeEvent::XcmpQueue(event)) => Some(event), - _ => None, - } - }) -); - -asset_test_utils::include_asset_transactor_transfer_with_local_consensus_currency_works!( - Runtime, - XcmConfig, - collator_session_keys(), - ExistentialDeposit::get(), - Box::new(|| { - assert!(Assets::asset_ids().collect::>().is_empty()); - assert!(ForeignAssets::asset_ids().collect::>().is_empty()); - }), - Box::new(|| { - assert!(Assets::asset_ids().collect::>().is_empty()); - assert!(ForeignAssets::asset_ids().collect::>().is_empty()); - }) -); - -asset_test_utils::include_asset_transactor_transfer_with_pallet_assets_instance_works!( - asset_transactor_transfer_with_trust_backed_assets_works, - Runtime, - XcmConfig, - TrustBackedAssetsInstance, - AssetIdForTrustBackedAssets, - AssetIdForTrustBackedAssetsConvert, - collator_session_keys(), - ExistentialDeposit::get(), - 12345, - Box::new(|| { - assert!(ForeignAssets::asset_ids().collect::>().is_empty()); - }), - Box::new(|| { - assert!(ForeignAssets::asset_ids().collect::>().is_empty()); - }) -); - -asset_test_utils::include_asset_transactor_transfer_with_pallet_assets_instance_works!( - asset_transactor_transfer_with_foreign_assets_works, - Runtime, - XcmConfig, - ForeignAssetsInstance, - MultiLocation, - JustTry, - asset_test_utils::CollatorSessionKeys::new( - AccountId::from(ALICE), - AccountId::from(ALICE), - SessionKeys { aura: AuraId::from(sp_core::ed25519::Public::from_raw(ALICE)) } - ), - ExistentialDeposit::get(), - MultiLocation { parents: 1, interior: X2(Parachain(1313), GeneralIndex(12345)) }, - Box::new(|| { - assert!(Assets::asset_ids().collect::>().is_empty()); - }), - Box::new(|| { - assert!(Assets::asset_ids().collect::>().is_empty()); - }) -); - -asset_test_utils::include_create_and_manage_foreign_assets_for_local_consensus_parachain_assets_works!( - Runtime, - XcmConfig, - WeightToFee, - ForeignCreatorsSovereignAccountOf, - ForeignAssetsInstance, - MultiLocation, - JustTry, - asset_test_utils::CollatorSessionKeys::new( - AccountId::from(ALICE), - AccountId::from(ALICE), - SessionKeys { aura: AuraId::from(sp_core::ed25519::Public::from_raw(ALICE)) } - ), - ExistentialDeposit::get(), - AssetDeposit::get(), - MetadataDepositBase::get(), - MetadataDepositPerByte::get(), - Box::new(|pallet_asset_call| RuntimeCall::ForeignAssets(pallet_asset_call).encode()), - Box::new(|runtime_event_encoded: Vec| { - match RuntimeEvent::decode(&mut &runtime_event_encoded[..]) { - Ok(RuntimeEvent::ForeignAssets(pallet_asset_event)) => Some(pallet_asset_event), - _ => None, - } - }), - Box::new(|| { - assert!(Assets::asset_ids().collect::>().is_empty()); - assert!(ForeignAssets::asset_ids().collect::>().is_empty()); - }), - Box::new(|| { - assert!(Assets::asset_ids().collect::>().is_empty()); - assert_eq!(ForeignAssets::asset_ids().collect::>().len(), 1); - }) -); diff --git a/cumulus/parachains/runtimes/bridge-hubs/bridge-hub-kusama/Cargo.toml b/cumulus/parachains/runtimes/bridge-hubs/bridge-hub-kusama/Cargo.toml deleted file mode 100644 index bfb0b9e71270..000000000000 --- a/cumulus/parachains/runtimes/bridge-hubs/bridge-hub-kusama/Cargo.toml +++ /dev/null @@ -1,185 +0,0 @@ -[package] -name = "bridge-hub-kusama-runtime" -version = "0.1.0" -authors.workspace = true -edition.workspace = true -description = "Kusama's BridgeHub parachain runtime" - -[build-dependencies] -substrate-wasm-builder = { path = "../../../../../substrate/utils/wasm-builder", optional = true } - -[dependencies] -codec = { package = "parity-scale-codec", version = "3.0.0", default-features = false, features = ["derive"] } -hex-literal = { version = "0.4.1" } -log = { version = "0.4.20", default-features = false } -scale-info = { version = "2.9.0", default-features = false, features = ["derive"] } -serde = { version = "1.0.188", optional = true, features = ["derive"] } -smallvec = "1.11.0" - -# Substrate -frame-benchmarking = { path = "../../../../../substrate/frame/benchmarking", default-features = false, optional = true} -frame-executive = { path = "../../../../../substrate/frame/executive", default-features = false} -frame-support = { path = "../../../../../substrate/frame/support", default-features = false} -frame-system = { path = "../../../../../substrate/frame/system", default-features = false} -frame-system-benchmarking = { path = "../../../../../substrate/frame/system/benchmarking", default-features = false, optional = true} -frame-system-rpc-runtime-api = { path = "../../../../../substrate/frame/system/rpc/runtime-api", default-features = false} -frame-try-runtime = { path = "../../../../../substrate/frame/try-runtime", default-features = false, optional = true} -pallet-aura = { path = "../../../../../substrate/frame/aura", default-features = false} -pallet-authorship = { path = "../../../../../substrate/frame/authorship", default-features = false} -pallet-balances = { path = "../../../../../substrate/frame/balances", default-features = false} -pallet-multisig = { path = "../../../../../substrate/frame/multisig", default-features = false} -pallet-session = { path = "../../../../../substrate/frame/session", default-features = false} -pallet-timestamp = { path = "../../../../../substrate/frame/timestamp", default-features = false} -pallet-transaction-payment = { path = "../../../../../substrate/frame/transaction-payment", default-features = false} -pallet-transaction-payment-rpc-runtime-api = { path = "../../../../../substrate/frame/transaction-payment/rpc/runtime-api", default-features = false} -pallet-utility = { path = "../../../../../substrate/frame/utility", default-features = false} -sp-api = { path = "../../../../../substrate/primitives/api", default-features = false} -sp-block-builder = { path = "../../../../../substrate/primitives/block-builder", default-features = false} -sp-consensus-aura = { path = "../../../../../substrate/primitives/consensus/aura", default-features = false} -sp-core = { path = "../../../../../substrate/primitives/core", default-features = false} -sp-genesis-builder = { path = "../../../../../substrate/primitives/genesis-builder", default-features = false } -sp-inherents = { path = "../../../../../substrate/primitives/inherents", default-features = false} -sp-io = { path = "../../../../../substrate/primitives/io", default-features = false} -sp-offchain = { path = "../../../../../substrate/primitives/offchain", default-features = false} -sp-runtime = { path = "../../../../../substrate/primitives/runtime", default-features = false} -sp-session = { path = "../../../../../substrate/primitives/session", default-features = false} -sp-std = { path = "../../../../../substrate/primitives/std", default-features = false} -sp-storage = { path = "../../../../../substrate/primitives/storage", default-features = false} -sp-transaction-pool = { path = "../../../../../substrate/primitives/transaction-pool", default-features = false} -sp-version = { path = "../../../../../substrate/primitives/version", default-features = false} - -# Polkadot -pallet-xcm = { path = "../../../../../polkadot/xcm/pallet-xcm", default-features = false} -pallet-xcm-benchmarks = { path = "../../../../../polkadot/xcm/pallet-xcm-benchmarks", default-features = false, optional = true } -polkadot-core-primitives = { path = "../../../../../polkadot/core-primitives", default-features = false} -polkadot-parachain-primitives = { path = "../../../../../polkadot/parachain", default-features = false} -polkadot-runtime-common = { path = "../../../../../polkadot/runtime/common", default-features = false} -xcm = { package = "staging-xcm", path = "../../../../../polkadot/xcm", default-features = false} -xcm-builder = { package = "staging-xcm-builder", path = "../../../../../polkadot/xcm/xcm-builder", default-features = false} -xcm-executor = { package = "staging-xcm-executor", path = "../../../../../polkadot/xcm/xcm-executor", default-features = false} - -# Cumulus -cumulus-pallet-aura-ext = { path = "../../../../pallets/aura-ext", default-features = false } -cumulus-pallet-dmp-queue = { path = "../../../../pallets/dmp-queue", default-features = false } -cumulus-pallet-parachain-system = { path = "../../../../pallets/parachain-system", default-features = false, features = ["parameterized-consensus-hook",] } -cumulus-pallet-session-benchmarking = { path = "../../../../pallets/session-benchmarking", default-features = false} -cumulus-pallet-xcm = { path = "../../../../pallets/xcm", default-features = false } -cumulus-pallet-xcmp-queue = { path = "../../../../pallets/xcmp-queue", default-features = false } -cumulus-primitives-core = { path = "../../../../primitives/core", default-features = false } -cumulus-primitives-utility = { path = "../../../../primitives/utility", default-features = false } -pallet-collator-selection = { path = "../../../../pallets/collator-selection", default-features = false } -parachain-info = { path = "../../../pallets/parachain-info", default-features = false } -parachains-common = { path = "../../../common", default-features = false } - -[dev-dependencies] -bridge-hub-test-utils = { path = "../test-utils" } - -[features] -default = [ "std" ] -std = [ - "codec/std", - "cumulus-pallet-aura-ext/std", - "cumulus-pallet-dmp-queue/std", - "cumulus-pallet-parachain-system/std", - "cumulus-pallet-session-benchmarking/std", - "cumulus-pallet-xcm/std", - "cumulus-pallet-xcmp-queue/std", - "cumulus-primitives-core/std", - "cumulus-primitives-utility/std", - "frame-benchmarking?/std", - "frame-executive/std", - "frame-support/std", - "frame-system-benchmarking?/std", - "frame-system-rpc-runtime-api/std", - "frame-system/std", - "frame-try-runtime?/std", - "log/std", - "pallet-aura/std", - "pallet-authorship/std", - "pallet-balances/std", - "pallet-collator-selection/std", - "pallet-multisig/std", - "pallet-session/std", - "pallet-timestamp/std", - "pallet-transaction-payment-rpc-runtime-api/std", - "pallet-transaction-payment/std", - "pallet-utility/std", - "pallet-xcm-benchmarks?/std", - "pallet-xcm/std", - "parachain-info/std", - "parachains-common/std", - "polkadot-core-primitives/std", - "polkadot-parachain-primitives/std", - "polkadot-runtime-common/std", - "scale-info/std", - "serde", - "sp-api/std", - "sp-block-builder/std", - "sp-consensus-aura/std", - "sp-core/std", - "sp-genesis-builder/std", - "sp-inherents/std", - "sp-io/std", - "sp-offchain/std", - "sp-runtime/std", - "sp-session/std", - "sp-std/std", - "sp-storage/std", - "sp-transaction-pool/std", - "sp-version/std", - "substrate-wasm-builder", - "xcm-builder/std", - "xcm-executor/std", - "xcm/std", -] - -runtime-benchmarks = [ - "cumulus-pallet-parachain-system/runtime-benchmarks", - "cumulus-pallet-session-benchmarking/runtime-benchmarks", - "cumulus-pallet-xcmp-queue/runtime-benchmarks", - "cumulus-primitives-utility/runtime-benchmarks", - "frame-benchmarking/runtime-benchmarks", - "frame-support/runtime-benchmarks", - "frame-system-benchmarking/runtime-benchmarks", - "frame-system/runtime-benchmarks", - "pallet-balances/runtime-benchmarks", - "pallet-collator-selection/runtime-benchmarks", - "pallet-multisig/runtime-benchmarks", - "pallet-timestamp/runtime-benchmarks", - "pallet-utility/runtime-benchmarks", - "pallet-xcm-benchmarks/runtime-benchmarks", - "pallet-xcm/runtime-benchmarks", - "parachains-common/runtime-benchmarks", - "polkadot-parachain-primitives/runtime-benchmarks", - "polkadot-runtime-common/runtime-benchmarks", - "sp-runtime/runtime-benchmarks", - "xcm-builder/runtime-benchmarks", - "xcm-executor/runtime-benchmarks", -] - -try-runtime = [ - "cumulus-pallet-aura-ext/try-runtime", - "cumulus-pallet-dmp-queue/try-runtime", - "cumulus-pallet-parachain-system/try-runtime", - "cumulus-pallet-xcm/try-runtime", - "cumulus-pallet-xcmp-queue/try-runtime", - "frame-executive/try-runtime", - "frame-support/try-runtime", - "frame-system/try-runtime", - "frame-try-runtime/try-runtime", - "pallet-aura/try-runtime", - "pallet-authorship/try-runtime", - "pallet-balances/try-runtime", - "pallet-collator-selection/try-runtime", - "pallet-multisig/try-runtime", - "pallet-session/try-runtime", - "pallet-timestamp/try-runtime", - "pallet-transaction-payment/try-runtime", - "pallet-utility/try-runtime", - "pallet-xcm/try-runtime", - "parachain-info/try-runtime", - "polkadot-runtime-common/try-runtime", - "sp-runtime/try-runtime", -] - -experimental = [ "pallet-aura/experimental" ] diff --git a/cumulus/parachains/runtimes/bridge-hubs/bridge-hub-kusama/build.rs b/cumulus/parachains/runtimes/bridge-hubs/bridge-hub-kusama/build.rs deleted file mode 100644 index 60f8a125129f..000000000000 --- a/cumulus/parachains/runtimes/bridge-hubs/bridge-hub-kusama/build.rs +++ /dev/null @@ -1,26 +0,0 @@ -// 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. - -#[cfg(feature = "std")] -fn main() { - substrate_wasm_builder::WasmBuilder::new() - .with_current_project() - .export_heap_base() - .import_memory() - .build() -} - -#[cfg(not(feature = "std"))] -fn main() {} diff --git a/cumulus/parachains/runtimes/bridge-hubs/bridge-hub-kusama/src/lib.rs b/cumulus/parachains/runtimes/bridge-hubs/bridge-hub-kusama/src/lib.rs deleted file mode 100644 index 791751e77368..000000000000 --- a/cumulus/parachains/runtimes/bridge-hubs/bridge-hub-kusama/src/lib.rs +++ /dev/null @@ -1,798 +0,0 @@ -// Copyright (C) Parity Technologies (UK) Ltd. -// This file is part of Cumulus. - -// Cumulus 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. - -// Cumulus 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 Cumulus. If not, see . - -#![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"] - -// Make the WASM binary available. -#[cfg(feature = "std")] -include!(concat!(env!("OUT_DIR"), "/wasm_binary.rs")); - -mod weights; -pub mod xcm_config; - -use cumulus_pallet_parachain_system::RelayNumberStrictlyIncreases; -use sp_api::impl_runtime_apis; -use sp_core::{crypto::KeyTypeId, OpaqueMetadata}; -use sp_runtime::{ - create_runtime_str, generic, impl_opaque_keys, - traits::{AccountIdLookup, BlakeTwo256, Block as BlockT}, - transaction_validity::{TransactionSource, TransactionValidity}, - ApplyExtrinsicResult, -}; - -use sp_std::prelude::*; -#[cfg(feature = "std")] -use sp_version::NativeVersion; -use sp_version::RuntimeVersion; - -use frame_support::{ - construct_runtime, - dispatch::DispatchClass, - genesis_builder_helper::{build_config, create_default_config}, - parameter_types, - traits::{ConstBool, ConstU32, ConstU64, ConstU8, EitherOfDiverse, Everything}, - weights::{ConstantMultiplier, Weight}, - PalletId, -}; -use frame_system::{ - limits::{BlockLength, BlockWeights}, - EnsureRoot, -}; -use pallet_xcm::{EnsureXcm, IsVoiceOfBody}; -pub use sp_consensus_aura::sr25519::AuthorityId as AuraId; -pub use sp_runtime::{MultiAddress, Perbill, Permill}; -use xcm_config::{ - FellowshipLocation, GovernanceLocation, XcmConfig, XcmOriginToTransactDispatchOrigin, -}; - -#[cfg(any(feature = "std", test))] -pub use sp_runtime::BuildStorage; - -use polkadot_runtime_common::{BlockHashCount, SlowAdjustingFeeUpdate}; - -use weights::{BlockExecutionWeight, ExtrinsicBaseWeight, RocksDbWeight}; - -use parachains_common::{ - impls::DealWithFees, - kusama::{consensus::*, currency::*, fee::WeightToFee}, - AccountId, Balance, BlockNumber, Hash, Header, Nonce, Signature, AVERAGE_ON_INITIALIZE_RATIO, - HOURS, MAXIMUM_BLOCK_WEIGHT, NORMAL_DISPATCH_RATIO, SLOT_DURATION, -}; - -// XCM Imports -use xcm::latest::prelude::BodyId; -use xcm_executor::XcmExecutor; - -/// The address format for describing accounts. -pub type Address = MultiAddress; - -/// Block type as expected by this runtime. -pub type Block = generic::Block; - -/// A Block signed with a Justification -pub type SignedBlock = generic::SignedBlock; - -/// BlockId type as expected by this runtime. -pub type BlockId = generic::BlockId; - -/// The SignedExtension to the basic transaction logic. -pub type SignedExtra = ( - frame_system::CheckNonZeroSender, - frame_system::CheckSpecVersion, - frame_system::CheckTxVersion, - frame_system::CheckGenesis, - frame_system::CheckEra, - frame_system::CheckNonce, - frame_system::CheckWeight, - pallet_transaction_payment::ChargeTransactionPayment, -); - -/// Unchecked extrinsic type as expected by this runtime. -pub type UncheckedExtrinsic = - generic::UncheckedExtrinsic; - -/// Migrations to apply on runtime upgrade. -pub type Migrations = (pallet_collator_selection::migration::v1::MigrateToV1,); - -/// Executive: handles dispatch to the various modules. -pub type Executive = frame_executive::Executive< - Runtime, - Block, - frame_system::ChainContext, - Runtime, - AllPalletsWithSystem, - Migrations, ->; - -impl_opaque_keys! { - pub struct SessionKeys { - pub aura: Aura, - } -} - -#[sp_version::runtime_version] -pub const VERSION: RuntimeVersion = RuntimeVersion { - spec_name: create_runtime_str!("bridge-hub-kusama"), - impl_name: create_runtime_str!("bridge-hub-kusama"), - authoring_version: 1, - spec_version: 10000, - impl_version: 0, - apis: RUNTIME_API_VERSIONS, - transaction_version: 3, - state_version: 1, -}; - -/// The version information used to identify this runtime when compiled natively. -#[cfg(feature = "std")] -pub fn native_version() -> NativeVersion { - NativeVersion { runtime_version: VERSION, can_author_with: Default::default() } -} - -parameter_types! { - pub const Version: RuntimeVersion = VERSION; - pub RuntimeBlockLength: BlockLength = - BlockLength::max_with_normal_ratio(5 * 1024 * 1024, NORMAL_DISPATCH_RATIO); - pub RuntimeBlockWeights: BlockWeights = BlockWeights::builder() - .base_block(BlockExecutionWeight::get()) - .for_class(DispatchClass::all(), |weights| { - weights.base_extrinsic = ExtrinsicBaseWeight::get(); - }) - .for_class(DispatchClass::Normal, |weights| { - weights.max_total = Some(NORMAL_DISPATCH_RATIO * MAXIMUM_BLOCK_WEIGHT); - }) - .for_class(DispatchClass::Operational, |weights| { - weights.max_total = Some(MAXIMUM_BLOCK_WEIGHT); - // Operational transactions have some extra reserved space, so that they - // are included even if block reached `MAXIMUM_BLOCK_WEIGHT`. - weights.reserved = Some( - MAXIMUM_BLOCK_WEIGHT - NORMAL_DISPATCH_RATIO * MAXIMUM_BLOCK_WEIGHT - ); - }) - .avg_block_initialization(AVERAGE_ON_INITIALIZE_RATIO) - .build_or_panic(); - pub const SS58Prefix: u8 = 2; -} - -// Configure FRAME pallets to include in runtime. - -impl frame_system::Config for Runtime { - /// The identifier used to distinguish between accounts. - type AccountId = AccountId; - /// The aggregated dispatch type that is available for extrinsics. - type RuntimeCall = RuntimeCall; - /// The lookup mechanism to get account ID from whatever is passed in dispatchers. - type Lookup = AccountIdLookup; - /// The index type for storing how many extrinsics an account has signed. - type Nonce = Nonce; - /// The type for hashing blocks and tries. - type Hash = Hash; - /// The hashing algorithm used. - type Hashing = BlakeTwo256; - /// The block type. - type Block = Block; - /// The ubiquitous event type. - type RuntimeEvent = RuntimeEvent; - /// The ubiquitous origin type. - type RuntimeOrigin = RuntimeOrigin; - /// Maximum number of block number to block hash mappings to keep (oldest pruned first). - type BlockHashCount = BlockHashCount; - /// Runtime version. - type Version = Version; - /// Converts a module to an index of this module in the runtime. - type PalletInfo = PalletInfo; - /// The data to be stored in an account. - type AccountData = pallet_balances::AccountData; - /// What to do if a new account is created. - type OnNewAccount = (); - /// What to do if an account is fully reaped from the system. - type OnKilledAccount = (); - /// The weight of database operations that the runtime can invoke. - type DbWeight = RocksDbWeight; - /// The basic call filter to use in dispatchable. - type BaseCallFilter = Everything; - /// Weight information for the extrinsics of this pallet. - type SystemWeightInfo = weights::frame_system::WeightInfo; - /// Block & extrinsics weights: base values and limits. - type BlockWeights = RuntimeBlockWeights; - /// The maximum length of a block (in bytes). - type BlockLength = RuntimeBlockLength; - type SS58Prefix = SS58Prefix; - /// The action to take on a Runtime Upgrade - type OnSetCode = cumulus_pallet_parachain_system::ParachainSetCode; - type MaxConsumers = ConstU32<16>; -} - -impl pallet_timestamp::Config for Runtime { - /// A timestamp: milliseconds since the unix epoch. - type Moment = u64; - type OnTimestampSet = Aura; - type MinimumPeriod = ConstU64<{ SLOT_DURATION / 2 }>; - type WeightInfo = weights::pallet_timestamp::WeightInfo; -} - -impl pallet_authorship::Config for Runtime { - type FindAuthor = pallet_session::FindAccountFromAuthorIndex; - type EventHandler = (CollatorSelection,); -} - -parameter_types! { - pub const ExistentialDeposit: Balance = EXISTENTIAL_DEPOSIT; -} - -impl pallet_balances::Config for Runtime { - /// The type for recording an account's balance. - type Balance = Balance; - type DustRemoval = (); - /// The ubiquitous event type. - type RuntimeEvent = RuntimeEvent; - type ExistentialDeposit = ExistentialDeposit; - type AccountStore = System; - type WeightInfo = weights::pallet_balances::WeightInfo; - type MaxLocks = ConstU32<50>; - type MaxReserves = ConstU32<50>; - type ReserveIdentifier = [u8; 8]; - type RuntimeHoldReason = RuntimeHoldReason; - type FreezeIdentifier = (); - type MaxHolds = ConstU32<0>; - type MaxFreezes = ConstU32<0>; -} - -parameter_types! { - /// Relay Chain `TransactionByteFee` / 10 - pub const TransactionByteFee: Balance = MILLICENTS; -} - -impl pallet_transaction_payment::Config for Runtime { - type RuntimeEvent = RuntimeEvent; - type OnChargeTransaction = - pallet_transaction_payment::CurrencyAdapter>; - type OperationalFeeMultiplier = ConstU8<5>; - type WeightToFee = WeightToFee; - type LengthToFee = ConstantMultiplier; - type FeeMultiplierUpdate = SlowAdjustingFeeUpdate; -} - -parameter_types! { - pub const ReservedXcmpWeight: Weight = MAXIMUM_BLOCK_WEIGHT.saturating_div(4); - pub const ReservedDmpWeight: Weight = MAXIMUM_BLOCK_WEIGHT.saturating_div(4); -} - -impl cumulus_pallet_parachain_system::Config for Runtime { - type RuntimeEvent = RuntimeEvent; - type OnSystemEvent = (); - type SelfParaId = parachain_info::Pallet; - type OutboundXcmpMessageSource = XcmpQueue; - type DmpMessageHandler = DmpQueue; - type ReservedDmpWeight = ReservedDmpWeight; - type XcmpMessageHandler = XcmpQueue; - type ReservedXcmpWeight = ReservedXcmpWeight; - type CheckAssociatedRelayNumber = RelayNumberStrictlyIncreases; - type ConsensusHook = cumulus_pallet_aura_ext::FixedVelocityConsensusHook< - Runtime, - RELAY_CHAIN_SLOT_DURATION_MILLIS, - BLOCK_PROCESSING_VELOCITY, - UNINCLUDED_SEGMENT_CAPACITY, - >; -} - -impl parachain_info::Config for Runtime {} - -impl cumulus_pallet_aura_ext::Config for Runtime {} - -parameter_types! { - // Fellows pluralistic body. - pub const FellowsBodyId: BodyId = BodyId::Technical; -} - -/// Privileged origin that represents Root or Fellows pluralistic body. -pub type RootOrFellows = EitherOfDiverse< - EnsureRoot, - EnsureXcm>, ->; - -impl cumulus_pallet_xcmp_queue::Config for Runtime { - type RuntimeEvent = RuntimeEvent; - type XcmExecutor = XcmExecutor; - type ChannelInfo = ParachainSystem; - type VersionWrapper = PolkadotXcm; - type ExecuteOverweightOrigin = EnsureRoot; - type ControllerOrigin = RootOrFellows; - type ControllerOriginConverter = XcmOriginToTransactDispatchOrigin; - type WeightInfo = weights::cumulus_pallet_xcmp_queue::WeightInfo; - type PriceForSiblingDelivery = (); -} - -impl cumulus_pallet_dmp_queue::Config for Runtime { - type RuntimeEvent = RuntimeEvent; - type XcmExecutor = XcmExecutor; - type ExecuteOverweightOrigin = EnsureRoot; -} - -pub const PERIOD: u32 = 6 * HOURS; -pub const OFFSET: u32 = 0; - -impl pallet_session::Config for Runtime { - type RuntimeEvent = RuntimeEvent; - type ValidatorId = ::AccountId; - // we don't have stash and controller, thus we don't need the convert as well. - type ValidatorIdOf = pallet_collator_selection::IdentityCollator; - type ShouldEndSession = pallet_session::PeriodicSessions, ConstU32>; - type NextSessionRotation = pallet_session::PeriodicSessions, ConstU32>; - type SessionManager = CollatorSelection; - // Essentially just Aura, but let's be pedantic. - type SessionHandler = ::KeyTypeIdProviders; - type Keys = SessionKeys; - type WeightInfo = weights::pallet_session::WeightInfo; -} - -impl pallet_aura::Config for Runtime { - type AuthorityId = AuraId; - type DisabledValidators = (); - type MaxAuthorities = ConstU32<100_000>; - type AllowMultipleBlocksPerSlot = ConstBool; - #[cfg(feature = "experimental")] - type SlotDuration = pallet_aura::MinimumPeriodTimesTwo; -} - -parameter_types! { - pub const PotId: PalletId = PalletId(*b"PotStake"); - pub const SessionLength: BlockNumber = 6 * HOURS; - // StakingAdmin pluralistic body. - pub const StakingAdminBodyId: BodyId = BodyId::Defense; -} - -/// We allow Root and the `StakingAdmin` to execute privileged collator selection operations. -pub type CollatorSelectionUpdateOrigin = EitherOfDiverse< - EnsureRoot, - EnsureXcm>, ->; - -impl pallet_collator_selection::Config for Runtime { - type RuntimeEvent = RuntimeEvent; - type Currency = Balances; - type UpdateOrigin = CollatorSelectionUpdateOrigin; - type PotId = PotId; - type MaxCandidates = ConstU32<100>; - type MinEligibleCollators = ConstU32<4>; - type MaxInvulnerables = ConstU32<20>; - // should be a multiple of session or things will get inconsistent - type KickThreshold = ConstU32; - type ValidatorId = ::AccountId; - type ValidatorIdOf = pallet_collator_selection::IdentityCollator; - type ValidatorRegistration = Session; - type WeightInfo = weights::pallet_collator_selection::WeightInfo; -} - -parameter_types! { - // One storage item; key size is 32; value is size 4+4+16+32 bytes = 56 bytes. - pub const DepositBase: Balance = deposit(1, 88); - // Additional storage item size of 32 bytes. - pub const DepositFactor: Balance = deposit(0, 32); -} - -impl pallet_multisig::Config for Runtime { - type RuntimeEvent = RuntimeEvent; - type RuntimeCall = RuntimeCall; - type Currency = Balances; - type DepositBase = DepositBase; - type DepositFactor = DepositFactor; - type MaxSignatories = ConstU32<100>; - type WeightInfo = weights::pallet_multisig::WeightInfo; -} - -impl pallet_utility::Config for Runtime { - type RuntimeEvent = RuntimeEvent; - type RuntimeCall = RuntimeCall; - type PalletsOrigin = OriginCaller; - type WeightInfo = weights::pallet_utility::WeightInfo; -} - -// Create the runtime by composing the FRAME pallets that were previously configured. -construct_runtime!( - pub enum Runtime - { - // System support stuff. - System: frame_system::{Pallet, Call, Config, Storage, Event} = 0, - ParachainSystem: cumulus_pallet_parachain_system::{ - Pallet, Call, Config, Storage, Inherent, Event, ValidateUnsigned, - } = 1, - Timestamp: pallet_timestamp::{Pallet, Call, Storage, Inherent} = 2, - ParachainInfo: parachain_info::{Pallet, Storage, Config} = 3, - - // Monetary stuff. - Balances: pallet_balances::{Pallet, Call, Storage, Config, Event} = 10, - TransactionPayment: pallet_transaction_payment::{Pallet, Storage, Event} = 11, - - // Collator support. The order of these 4 are important and shall not change. - Authorship: pallet_authorship::{Pallet, Storage} = 20, - CollatorSelection: pallet_collator_selection::{Pallet, Call, Storage, Event, Config} = 21, - Session: pallet_session::{Pallet, Call, Storage, Event, Config} = 22, - Aura: pallet_aura::{Pallet, Storage, Config} = 23, - AuraExt: cumulus_pallet_aura_ext::{Pallet, Storage, Config} = 24, - - // XCM helpers. - XcmpQueue: cumulus_pallet_xcmp_queue::{Pallet, Call, Storage, Event} = 30, - PolkadotXcm: pallet_xcm::{Pallet, Call, Event, Origin, Config} = 31, - CumulusXcm: cumulus_pallet_xcm::{Pallet, Event, Origin} = 32, - DmpQueue: cumulus_pallet_dmp_queue::{Pallet, Call, Storage, Event} = 33, - - // Handy utilities. - Utility: pallet_utility::{Pallet, Call, Event} = 40, - Multisig: pallet_multisig::{Pallet, Call, Storage, Event} = 41, - } -); - -#[cfg(feature = "runtime-benchmarks")] -#[macro_use] -extern crate frame_benchmarking; - -#[cfg(feature = "runtime-benchmarks")] -mod benches { - define_benchmarks!( - [frame_system, SystemBench::] - [pallet_balances, Balances] - [pallet_multisig, Multisig] - [pallet_session, SessionBench::] - [pallet_utility, Utility] - [pallet_timestamp, Timestamp] - [pallet_collator_selection, CollatorSelection] - [cumulus_pallet_xcmp_queue, XcmpQueue] - // XCM - [pallet_xcm, PolkadotXcm] - // NOTE: Make sure you point to the individual modules below. - [pallet_xcm_benchmarks::fungible, XcmBalances] - [pallet_xcm_benchmarks::generic, XcmGeneric] - ); -} - -impl_runtime_apis! { - impl sp_consensus_aura::AuraApi for Runtime { - fn slot_duration() -> sp_consensus_aura::SlotDuration { - sp_consensus_aura::SlotDuration::from_millis(Aura::slot_duration()) - } - - fn authorities() -> Vec { - Aura::authorities().into_inner() - } - } - - impl sp_api::Core for Runtime { - fn version() -> RuntimeVersion { - VERSION - } - - fn execute_block(block: Block) { - Executive::execute_block(block) - } - - fn initialize_block(header: &::Header) { - Executive::initialize_block(header) - } - } - - impl sp_api::Metadata for Runtime { - fn metadata() -> OpaqueMetadata { - OpaqueMetadata::new(Runtime::metadata().into()) - } - - fn metadata_at_version(version: u32) -> Option { - Runtime::metadata_at_version(version) - } - - fn metadata_versions() -> sp_std::vec::Vec { - Runtime::metadata_versions() - } - } - - impl sp_block_builder::BlockBuilder for Runtime { - fn apply_extrinsic(extrinsic: ::Extrinsic) -> ApplyExtrinsicResult { - Executive::apply_extrinsic(extrinsic) - } - - fn finalize_block() -> ::Header { - Executive::finalize_block() - } - - fn inherent_extrinsics(data: sp_inherents::InherentData) -> Vec<::Extrinsic> { - data.create_extrinsics() - } - - fn check_inherents( - block: Block, - data: sp_inherents::InherentData, - ) -> sp_inherents::CheckInherentsResult { - data.check_extrinsics(&block) - } - } - - impl sp_transaction_pool::runtime_api::TaggedTransactionQueue for Runtime { - fn validate_transaction( - source: TransactionSource, - tx: ::Extrinsic, - block_hash: ::Hash, - ) -> TransactionValidity { - Executive::validate_transaction(source, tx, block_hash) - } - } - - impl sp_offchain::OffchainWorkerApi for Runtime { - fn offchain_worker(header: &::Header) { - Executive::offchain_worker(header) - } - } - - impl sp_session::SessionKeys for Runtime { - fn generate_session_keys(seed: Option>) -> Vec { - SessionKeys::generate(seed) - } - - fn decode_session_keys( - encoded: Vec, - ) -> Option, KeyTypeId)>> { - SessionKeys::decode_into_raw_public_keys(&encoded) - } - } - - impl frame_system_rpc_runtime_api::AccountNonceApi for Runtime { - fn account_nonce(account: AccountId) -> Nonce { - System::account_nonce(account) - } - } - - impl pallet_transaction_payment_rpc_runtime_api::TransactionPaymentApi for Runtime { - fn query_info( - uxt: ::Extrinsic, - len: u32, - ) -> pallet_transaction_payment_rpc_runtime_api::RuntimeDispatchInfo { - TransactionPayment::query_info(uxt, len) - } - fn query_fee_details( - uxt: ::Extrinsic, - len: u32, - ) -> pallet_transaction_payment::FeeDetails { - TransactionPayment::query_fee_details(uxt, len) - } - fn query_weight_to_fee(weight: Weight) -> Balance { - TransactionPayment::weight_to_fee(weight) - } - fn query_length_to_fee(length: u32) -> Balance { - TransactionPayment::length_to_fee(length) - } - } - - impl pallet_transaction_payment_rpc_runtime_api::TransactionPaymentCallApi - for Runtime - { - fn query_call_info( - call: RuntimeCall, - len: u32, - ) -> pallet_transaction_payment::RuntimeDispatchInfo { - TransactionPayment::query_call_info(call, len) - } - fn query_call_fee_details( - call: RuntimeCall, - len: u32, - ) -> pallet_transaction_payment::FeeDetails { - TransactionPayment::query_call_fee_details(call, len) - } - fn query_weight_to_fee(weight: Weight) -> Balance { - TransactionPayment::weight_to_fee(weight) - } - fn query_length_to_fee(length: u32) -> Balance { - TransactionPayment::length_to_fee(length) - } - } - - impl cumulus_primitives_core::CollectCollationInfo for Runtime { - fn collect_collation_info(header: &::Header) -> cumulus_primitives_core::CollationInfo { - ParachainSystem::collect_collation_info(header) - } - } - - #[cfg(feature = "try-runtime")] - impl frame_try_runtime::TryRuntime for Runtime { - fn on_runtime_upgrade(checks: frame_try_runtime::UpgradeCheckSelect) -> (Weight, Weight) { - let weight = Executive::try_runtime_upgrade(checks).unwrap(); - (weight, RuntimeBlockWeights::get().max_block) - } - - fn execute_block( - block: Block, - state_root_check: bool, - signature_check: bool, - select: frame_try_runtime::TryStateSelect, - ) -> Weight { - // NOTE: intentional unwrap: we don't want to propagate the error backwards, and want to - // have a backtrace here. - Executive::try_execute_block(block, state_root_check, signature_check, select).unwrap() - } - } - - #[cfg(feature = "runtime-benchmarks")] - impl frame_benchmarking::Benchmark for Runtime { - fn benchmark_metadata(extra: bool) -> ( - Vec, - Vec, - ) { - use frame_benchmarking::{Benchmarking, BenchmarkList}; - use frame_support::traits::StorageInfoTrait; - use frame_system_benchmarking::Pallet as SystemBench; - use cumulus_pallet_session_benchmarking::Pallet as SessionBench; - - // This is defined once again in dispatch_benchmark, because list_benchmarks! - // and add_benchmarks! are macros exported by define_benchmarks! macros and those types - // are referenced in that call. - type XcmBalances = pallet_xcm_benchmarks::fungible::Pallet::; - type XcmGeneric = pallet_xcm_benchmarks::generic::Pallet::; - - let mut list = Vec::::new(); - list_benchmarks!(list, extra); - - let storage_info = AllPalletsWithSystem::storage_info(); - (list, storage_info) - } - - fn dispatch_benchmark( - config: frame_benchmarking::BenchmarkConfig - ) -> Result, sp_runtime::RuntimeString> { - use frame_benchmarking::{Benchmarking, BenchmarkBatch, BenchmarkError}; - use sp_storage::TrackedStorageKey; - - use frame_system_benchmarking::Pallet as SystemBench; - impl frame_system_benchmarking::Config for Runtime { - fn setup_set_code_requirements(code: &sp_std::vec::Vec) -> Result<(), BenchmarkError> { - ParachainSystem::initialize_for_set_code_benchmark(code.len() as u32); - Ok(()) - } - - fn verify_set_code() { - System::assert_last_event(cumulus_pallet_parachain_system::Event::::ValidationFunctionStored.into()); - } - } - - use cumulus_pallet_session_benchmarking::Pallet as SessionBench; - impl cumulus_pallet_session_benchmarking::Config for Runtime {} - - use xcm::latest::prelude::*; - use xcm_config::KsmRelayLocation; - - impl pallet_xcm_benchmarks::Config for Runtime { - type XcmConfig = xcm_config::XcmConfig; - type AccountIdConverter = xcm_config::LocationToAccountId; - fn valid_destination() -> Result { - Ok(KsmRelayLocation::get()) - } - fn worst_case_holding(_depositable_count: u32) -> MultiAssets { - // just concrete assets according to relay chain. - let assets: Vec = vec![ - MultiAsset { - id: Concrete(KsmRelayLocation::get()), - fun: Fungible(1_000_000 * UNITS), - } - ]; - assets.into() - } - } - - parameter_types! { - pub const TrustedTeleporter: Option<(MultiLocation, MultiAsset)> = Some(( - KsmRelayLocation::get(), - MultiAsset { fun: Fungible(UNITS), id: Concrete(KsmRelayLocation::get()) }, - )); - pub const CheckedAccount: Option<(AccountId, xcm_builder::MintLocation)> = None; - pub const TrustedReserve: Option<(MultiLocation, MultiAsset)> = None; - } - - impl pallet_xcm_benchmarks::fungible::Config for Runtime { - type TransactAsset = Balances; - - type CheckedAccount = CheckedAccount; - type TrustedTeleporter = TrustedTeleporter; - type TrustedReserve = TrustedReserve; - - fn get_multi_asset() -> MultiAsset { - MultiAsset { - id: Concrete(KsmRelayLocation::get()), - fun: Fungible(UNITS), - } - } - } - - impl pallet_xcm_benchmarks::generic::Config for Runtime { - type RuntimeCall = RuntimeCall; - - fn worst_case_response() -> (u64, Response) { - (0u64, Response::Version(Default::default())) - } - - fn worst_case_asset_exchange() -> Result<(MultiAssets, MultiAssets), BenchmarkError> { - Err(BenchmarkError::Skip) - } - - fn universal_alias() -> Result<(MultiLocation, Junction), BenchmarkError> { - Err(BenchmarkError::Skip) - } - - fn transact_origin_and_runtime_call() -> Result<(MultiLocation, RuntimeCall), BenchmarkError> { - Ok((KsmRelayLocation::get(), frame_system::Call::remark_with_event { remark: vec![] }.into())) - } - - fn subscribe_origin() -> Result { - Ok(KsmRelayLocation::get()) - } - - fn claimable_asset() -> Result<(MultiLocation, MultiLocation, MultiAssets), BenchmarkError> { - let origin = KsmRelayLocation::get(); - let assets: MultiAssets = (Concrete(KsmRelayLocation::get()), 1_000 * UNITS).into(); - let ticket = MultiLocation { parents: 0, interior: Here }; - Ok((origin, ticket, assets)) - } - - fn unlockable_asset() -> Result<(MultiLocation, MultiLocation, MultiAsset), BenchmarkError> { - Err(BenchmarkError::Skip) - } - - fn export_message_origin_and_destination( - ) -> Result<(MultiLocation, NetworkId, InteriorMultiLocation), BenchmarkError> { - Err(BenchmarkError::Skip) - } - - fn alias_origin() -> Result<(MultiLocation, MultiLocation), BenchmarkError> { - Err(BenchmarkError::Skip) - } - } - - type XcmBalances = pallet_xcm_benchmarks::fungible::Pallet::; - type XcmGeneric = pallet_xcm_benchmarks::generic::Pallet::; - - let whitelist: Vec = vec![ - // Block Number - hex_literal::hex!("26aa394eea5630e07c48ae0c9558cef702a5c1b19ab7a04f536c519aca4983ac").to_vec().into(), - // Total Issuance - hex_literal::hex!("c2261276cc9d1f8598ea4b6a74b15c2f57c875e4cff74148e4628f264b974c80").to_vec().into(), - // Execution Phase - hex_literal::hex!("26aa394eea5630e07c48ae0c9558cef7ff553b5a9862a516939d82b3d3d8661a").to_vec().into(), - // Event Count - hex_literal::hex!("26aa394eea5630e07c48ae0c9558cef70a98fdbe9ce6c55837576c60c7af3850").to_vec().into(), - // System Events - hex_literal::hex!("26aa394eea5630e07c48ae0c9558cef780d41e5e16056765bc8461851072c9d7").to_vec().into(), - ]; - - let mut batches = Vec::::new(); - let params = (&config, &whitelist); - add_benchmarks!(params, batches); - - Ok(batches) - } - } - - impl sp_genesis_builder::GenesisBuilder for Runtime { - fn create_default_config() -> Vec { - create_default_config::() - } - - fn build_config(config: Vec) -> sp_genesis_builder::Result { - build_config::(config) - } - } -} - -cumulus_pallet_parachain_system::register_validate_block! { - Runtime = Runtime, - BlockExecutor = cumulus_pallet_aura_ext::BlockExecutor::, -} diff --git a/cumulus/parachains/runtimes/bridge-hubs/bridge-hub-kusama/src/weights/block_weights.rs b/cumulus/parachains/runtimes/bridge-hubs/bridge-hub-kusama/src/weights/block_weights.rs deleted file mode 100644 index e7fdb2aae2a0..000000000000 --- a/cumulus/parachains/runtimes/bridge-hubs/bridge-hub-kusama/src/weights/block_weights.rs +++ /dev/null @@ -1,53 +0,0 @@ -// This file is part of Substrate. - -// 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. - -pub mod constants { - use frame_support::{ - parameter_types, - weights::{constants, Weight}, - }; - - parameter_types! { - /// Importing a block with 0 Extrinsics. - pub const BlockExecutionWeight: Weight = - Weight::from_parts(constants::WEIGHT_REF_TIME_PER_NANOS.saturating_mul(5_000_000), 0); - } - - #[cfg(test)] - mod test_weights { - use frame_support::weights::constants; - - /// Checks that the weight exists and is sane. - // NOTE: If this test fails but you are sure that the generated values are fine, - // you can delete it. - #[test] - fn sane() { - let w = super::constants::BlockExecutionWeight::get(); - - // At least 100 µs. - assert!( - w.ref_time() >= 100u64 * constants::WEIGHT_REF_TIME_PER_MICROS, - "Weight should be at least 100 µs." - ); - // At most 50 ms. - assert!( - w.ref_time() <= 50u64 * constants::WEIGHT_REF_TIME_PER_MILLIS, - "Weight should be at most 50 ms." - ); - } - } -} diff --git a/cumulus/parachains/runtimes/bridge-hubs/bridge-hub-kusama/src/weights/cumulus_pallet_xcmp_queue.rs b/cumulus/parachains/runtimes/bridge-hubs/bridge-hub-kusama/src/weights/cumulus_pallet_xcmp_queue.rs deleted file mode 100644 index 991cba573bf2..000000000000 --- a/cumulus/parachains/runtimes/bridge-hubs/bridge-hub-kusama/src/weights/cumulus_pallet_xcmp_queue.rs +++ /dev/null @@ -1,77 +0,0 @@ -// Copyright (C) Parity Technologies (UK) Ltd. -// This file is part of Cumulus. - -// Cumulus 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. - -// Cumulus 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 Cumulus. If not, see . - -//! Autogenerated weights for `cumulus_pallet_xcmp_queue` -//! -//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev -//! DATE: 2023-07-31, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` -//! WORST CASE MAP SIZE: `1000000` -//! HOSTNAME: `runner-ynta1nyy-project-238-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz` -//! EXECUTION: ``, WASM-EXECUTION: `Compiled`, CHAIN: `Some("bridge-hub-kusama-dev")`, DB CACHE: 1024 - -// Executed Command: -// ./target/production/polkadot-parachain -// benchmark -// pallet -// --chain=bridge-hub-kusama-dev -// --wasm-execution=compiled -// --pallet=cumulus_pallet_xcmp_queue -// --no-storage-info -// --no-median-slopes -// --no-min-squares -// --extrinsic=* -// --steps=50 -// --repeat=20 -// --json -// --header=./file_header.txt -// --output=./parachains/runtimes/bridge-hubs/bridge-hub-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 `cumulus_pallet_xcmp_queue`. -pub struct WeightInfo(PhantomData); -impl cumulus_pallet_xcmp_queue::WeightInfo for WeightInfo { - /// Storage: `XcmpQueue::QueueConfig` (r:1 w:1) - /// Proof: `XcmpQueue::QueueConfig` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) - fn set_config_with_u32() -> Weight { - // Proof Size summary in bytes: - // Measured: `76` - // Estimated: `1561` - // Minimum execution time: 5_129_000 picoseconds. - Weight::from_parts(5_367_000, 0) - .saturating_add(Weight::from_parts(0, 1561)) - .saturating_add(T::DbWeight::get().reads(1)) - .saturating_add(T::DbWeight::get().writes(1)) - } - /// Storage: `XcmpQueue::QueueConfig` (r:1 w:1) - /// Proof: `XcmpQueue::QueueConfig` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) - fn set_config_with_weight() -> Weight { - // Proof Size summary in bytes: - // Measured: `76` - // Estimated: `1561` - // Minimum execution time: 5_050_000 picoseconds. - Weight::from_parts(5_565_000, 0) - .saturating_add(Weight::from_parts(0, 1561)) - .saturating_add(T::DbWeight::get().reads(1)) - .saturating_add(T::DbWeight::get().writes(1)) - } -} diff --git a/cumulus/parachains/runtimes/bridge-hubs/bridge-hub-kusama/src/weights/extrinsic_weights.rs b/cumulus/parachains/runtimes/bridge-hubs/bridge-hub-kusama/src/weights/extrinsic_weights.rs deleted file mode 100644 index 1a4adb968bb7..000000000000 --- a/cumulus/parachains/runtimes/bridge-hubs/bridge-hub-kusama/src/weights/extrinsic_weights.rs +++ /dev/null @@ -1,53 +0,0 @@ -// This file is part of Substrate. - -// 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. - -pub mod constants { - use frame_support::{ - parameter_types, - weights::{constants, Weight}, - }; - - parameter_types! { - /// Executing a NO-OP `System::remarks` Extrinsic. - pub const ExtrinsicBaseWeight: Weight = - Weight::from_parts(constants::WEIGHT_REF_TIME_PER_NANOS.saturating_mul(125_000), 0); - } - - #[cfg(test)] - mod test_weights { - use frame_support::weights::constants; - - /// Checks that the weight exists and is sane. - // NOTE: If this test fails but you are sure that the generated values are fine, - // you can delete it. - #[test] - fn sane() { - let w = super::constants::ExtrinsicBaseWeight::get(); - - // At least 10 µs. - assert!( - w.ref_time() >= 10u64 * constants::WEIGHT_REF_TIME_PER_MICROS, - "Weight should be at least 10 µs." - ); - // At most 1 ms. - assert!( - w.ref_time() <= constants::WEIGHT_REF_TIME_PER_MILLIS, - "Weight should be at most 1 ms." - ); - } - } -} diff --git a/cumulus/parachains/runtimes/bridge-hubs/bridge-hub-kusama/src/weights/frame_system.rs b/cumulus/parachains/runtimes/bridge-hubs/bridge-hub-kusama/src/weights/frame_system.rs deleted file mode 100644 index 5a0a60cc9952..000000000000 --- a/cumulus/parachains/runtimes/bridge-hubs/bridge-hub-kusama/src/weights/frame_system.rs +++ /dev/null @@ -1,155 +0,0 @@ -// Copyright (C) Parity Technologies (UK) Ltd. -// This file is part of Cumulus. - -// Cumulus 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. - -// Cumulus 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 Cumulus. If not, see . - -//! Autogenerated weights for `frame_system` -//! -//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev -//! DATE: 2023-07-31, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` -//! WORST CASE MAP SIZE: `1000000` -//! HOSTNAME: `runner-ynta1nyy-project-238-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz` -//! EXECUTION: ``, WASM-EXECUTION: `Compiled`, CHAIN: `Some("bridge-hub-kusama-dev")`, DB CACHE: 1024 - -// Executed Command: -// ./target/production/polkadot-parachain -// benchmark -// pallet -// --chain=bridge-hub-kusama-dev -// --wasm-execution=compiled -// --pallet=frame_system -// --no-storage-info -// --no-median-slopes -// --no-min-squares -// --extrinsic=* -// --steps=50 -// --repeat=20 -// --json -// --header=./file_header.txt -// --output=./parachains/runtimes/bridge-hubs/bridge-hub-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 `frame_system`. -pub struct WeightInfo(PhantomData); -impl frame_system::WeightInfo for WeightInfo { - /// The range of component `b` is `[0, 3932160]`. - fn remark(b: u32, ) -> Weight { - // Proof Size summary in bytes: - // Measured: `0` - // Estimated: `0` - // Minimum execution time: 1_985_000 picoseconds. - Weight::from_parts(2_177_341, 0) - .saturating_add(Weight::from_parts(0, 0)) - // Standard Error: 0 - .saturating_add(Weight::from_parts(386, 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_288_000 picoseconds. - Weight::from_parts(23_888_468, 0) - .saturating_add(Weight::from_parts(0, 0)) - // Standard Error: 8 - .saturating_add(Weight::from_parts(1_718, 0).saturating_mul(b.into())) - } - /// Storage: `System::Digest` (r:1 w:1) - /// Proof: `System::Digest` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) - /// Storage: UNKNOWN KEY `0x3a686561707061676573` (r:0 w:1) - /// Proof: UNKNOWN KEY `0x3a686561707061676573` (r:0 w:1) - fn set_heap_pages() -> Weight { - // Proof Size summary in bytes: - // Measured: `0` - // Estimated: `1485` - // Minimum execution time: 3_700_000 picoseconds. - Weight::from_parts(3_867_000, 0) - .saturating_add(Weight::from_parts(0, 1485)) - .saturating_add(T::DbWeight::get().reads(1)) - .saturating_add(T::DbWeight::get().writes(2)) - } - /// Storage: `ParachainSystem::ValidationData` (r:1 w:0) - /// Proof: `ParachainSystem::ValidationData` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) - /// Storage: `ParachainSystem::UpgradeRestrictionSignal` (r:1 w:0) - /// Proof: `ParachainSystem::UpgradeRestrictionSignal` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) - /// Storage: `ParachainSystem::PendingValidationCode` (r:1 w:1) - /// Proof: `ParachainSystem::PendingValidationCode` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) - /// Storage: `ParachainSystem::HostConfiguration` (r:1 w:0) - /// Proof: `ParachainSystem::HostConfiguration` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) - /// Storage: `ParachainSystem::NewValidationCode` (r:0 w:1) - /// Proof: `ParachainSystem::NewValidationCode` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) - /// Storage: `ParachainSystem::DidSetValidationCode` (r:0 w:1) - /// Proof: `ParachainSystem::DidSetValidationCode` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) - fn set_code() -> Weight { - // Proof Size summary in bytes: - // Measured: `119` - // Estimated: `1604` - // Minimum execution time: 100_298_586_000 picoseconds. - Weight::from_parts(101_869_369_000, 0) - .saturating_add(Weight::from_parts(0, 1604)) - .saturating_add(T::DbWeight::get().reads(4)) - .saturating_add(T::DbWeight::get().writes(3)) - } - /// Storage: `Skipped::Metadata` (r:0 w:0) - /// Proof: `Skipped::Metadata` (`max_values`: None, `max_size`: None, mode: `Measured`) - /// The range of component `i` is `[0, 1000]`. - fn set_storage(i: u32, ) -> Weight { - // Proof Size summary in bytes: - // Measured: `0` - // Estimated: `0` - // Minimum execution time: 2_052_000 picoseconds. - Weight::from_parts(2_115_000, 0) - .saturating_add(Weight::from_parts(0, 0)) - // Standard Error: 2_048 - .saturating_add(Weight::from_parts(755_436, 0).saturating_mul(i.into())) - .saturating_add(T::DbWeight::get().writes((1_u64).saturating_mul(i.into()))) - } - /// Storage: `Skipped::Metadata` (r:0 w:0) - /// Proof: `Skipped::Metadata` (`max_values`: None, `max_size`: None, mode: `Measured`) - /// The range of component `i` is `[0, 1000]`. - fn kill_storage(i: u32, ) -> Weight { - // Proof Size summary in bytes: - // Measured: `0` - // Estimated: `0` - // Minimum execution time: 2_044_000 picoseconds. - Weight::from_parts(2_110_000, 0) - .saturating_add(Weight::from_parts(0, 0)) - // Standard Error: 1_011 - .saturating_add(Weight::from_parts(569_993, 0).saturating_mul(i.into())) - .saturating_add(T::DbWeight::get().writes((1_u64).saturating_mul(i.into()))) - } - /// Storage: `Skipped::Metadata` (r:0 w:0) - /// Proof: `Skipped::Metadata` (`max_values`: None, `max_size`: None, mode: `Measured`) - /// The range of component `p` is `[0, 1000]`. - fn kill_prefix(p: u32, ) -> Weight { - // Proof Size summary in bytes: - // Measured: `68 + p * (69 ±0)` - // Estimated: `66 + p * (70 ±0)` - // Minimum execution time: 3_741_000 picoseconds. - Weight::from_parts(3_838_000, 0) - .saturating_add(Weight::from_parts(0, 66)) - // Standard Error: 2_455 - .saturating_add(Weight::from_parts(1_216_154, 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/cumulus/parachains/runtimes/bridge-hubs/bridge-hub-kusama/src/weights/mod.rs b/cumulus/parachains/runtimes/bridge-hubs/bridge-hub-kusama/src/weights/mod.rs deleted file mode 100644 index e226021e77ab..000000000000 --- a/cumulus/parachains/runtimes/bridge-hubs/bridge-hub-kusama/src/weights/mod.rs +++ /dev/null @@ -1,38 +0,0 @@ -// This file is part of Substrate. - -// 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. - -//! Expose the auto generated weight files. - -pub mod block_weights; -pub mod cumulus_pallet_xcmp_queue; -pub mod extrinsic_weights; -pub mod frame_system; -pub mod pallet_balances; -pub mod pallet_collator_selection; -pub mod pallet_multisig; -pub mod pallet_session; -pub mod pallet_timestamp; -pub mod pallet_utility; -pub mod pallet_xcm; -pub mod paritydb_weights; -pub mod rocksdb_weights; -pub mod xcm; - -pub use block_weights::constants::BlockExecutionWeight; -pub use extrinsic_weights::constants::ExtrinsicBaseWeight; -pub use paritydb_weights::constants::ParityDbWeight; -pub use rocksdb_weights::constants::RocksDbWeight; diff --git a/cumulus/parachains/runtimes/bridge-hubs/bridge-hub-kusama/src/weights/pallet_balances.rs b/cumulus/parachains/runtimes/bridge-hubs/bridge-hub-kusama/src/weights/pallet_balances.rs deleted file mode 100644 index 51ca2e660b3b..000000000000 --- a/cumulus/parachains/runtimes/bridge-hubs/bridge-hub-kusama/src/weights/pallet_balances.rs +++ /dev/null @@ -1,153 +0,0 @@ -// Copyright (C) Parity Technologies (UK) Ltd. -// This file is part of Cumulus. - -// Cumulus 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. - -// Cumulus 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 Cumulus. 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-07-31, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` -//! WORST CASE MAP SIZE: `1000000` -//! HOSTNAME: `runner-ynta1nyy-project-238-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz` -//! EXECUTION: ``, WASM-EXECUTION: `Compiled`, CHAIN: `Some("bridge-hub-kusama-dev")`, DB CACHE: 1024 - -// Executed Command: -// ./target/production/polkadot-parachain -// benchmark -// pallet -// --chain=bridge-hub-kusama-dev -// --wasm-execution=compiled -// --pallet=pallet_balances -// --no-storage-info -// --no-median-slopes -// --no-min-squares -// --extrinsic=* -// --steps=50 -// --repeat=20 -// --json -// --header=./file_header.txt -// --output=./parachains/runtimes/bridge-hubs/bridge-hub-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_163_000 picoseconds. - Weight::from_parts(56_056_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: 40_829_000 picoseconds. - Weight::from_parts(42_182_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_212_000 picoseconds. - Weight::from_parts(15_782_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: 22_866_000 picoseconds. - Weight::from_parts(23_452_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_047_000 picoseconds. - Weight::from_parts(58_536_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_622_000 picoseconds. - Weight::from_parts(52_912_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: 17_723_000 picoseconds. - Weight::from_parts(18_383_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]`. - fn upgrade_accounts(u: u32, ) -> Weight { - // Proof Size summary in bytes: - // Measured: `0 + u * (136 ±0)` - // Estimated: `990 + u * (2603 ±0)` - // Minimum execution time: 17_089_000 picoseconds. - Weight::from_parts(17_379_000, 0) - .saturating_add(Weight::from_parts(0, 990)) - // Standard Error: 17_071 - .saturating_add(Weight::from_parts(15_647_341, 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/cumulus/parachains/runtimes/bridge-hubs/bridge-hub-kusama/src/weights/pallet_collator_selection.rs b/cumulus/parachains/runtimes/bridge-hubs/bridge-hub-kusama/src/weights/pallet_collator_selection.rs deleted file mode 100644 index fa0ac199ca2c..000000000000 --- a/cumulus/parachains/runtimes/bridge-hubs/bridge-hub-kusama/src/weights/pallet_collator_selection.rs +++ /dev/null @@ -1,225 +0,0 @@ -// Copyright (C) Parity Technologies (UK) Ltd. -// This file is part of Cumulus. - -// Cumulus 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. - -// Cumulus 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 Cumulus. If not, see . - -//! Autogenerated weights for `pallet_collator_selection` -//! -//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev -//! DATE: 2023-07-31, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` -//! WORST CASE MAP SIZE: `1000000` -//! HOSTNAME: `runner-ynta1nyy-project-238-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz` -//! EXECUTION: ``, WASM-EXECUTION: `Compiled`, CHAIN: `Some("bridge-hub-kusama-dev")`, DB CACHE: 1024 - -// Executed Command: -// ./target/production/polkadot-parachain -// benchmark -// pallet -// --chain=bridge-hub-kusama-dev -// --wasm-execution=compiled -// --pallet=pallet_collator_selection -// --no-storage-info -// --no-median-slopes -// --no-min-squares -// --extrinsic=* -// --steps=50 -// --repeat=20 -// --json -// --header=./file_header.txt -// --output=./parachains/runtimes/bridge-hubs/bridge-hub-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_collator_selection`. -pub struct WeightInfo(PhantomData); -impl pallet_collator_selection::WeightInfo for WeightInfo { - /// Storage: `Session::NextKeys` (r:20 w:0) - /// Proof: `Session::NextKeys` (`max_values`: None, `max_size`: None, mode: `Measured`) - /// Storage: `CollatorSelection::Invulnerables` (r:0 w:1) - /// Proof: `CollatorSelection::Invulnerables` (`max_values`: Some(1), `max_size`: Some(641), added: 1136, mode: `MaxEncodedLen`) - /// The range of component `b` is `[1, 20]`. - fn set_invulnerables(b: u32, ) -> Weight { - // Proof Size summary in bytes: - // Measured: `196 + b * (79 ±0)` - // Estimated: `1187 + b * (2555 ±0)` - // Minimum execution time: 14_329_000 picoseconds. - Weight::from_parts(11_605_842, 0) - .saturating_add(Weight::from_parts(0, 1187)) - // Standard Error: 4_784 - .saturating_add(Weight::from_parts(3_297_183, 0).saturating_mul(b.into())) - .saturating_add(T::DbWeight::get().reads((1_u64).saturating_mul(b.into()))) - .saturating_add(T::DbWeight::get().writes(1)) - .saturating_add(Weight::from_parts(0, 2555).saturating_mul(b.into())) - } - /// Storage: `Session::NextKeys` (r:1 w:0) - /// Proof: `Session::NextKeys` (`max_values`: None, `max_size`: None, mode: `Measured`) - /// Storage: `CollatorSelection::Invulnerables` (r:1 w:1) - /// Proof: `CollatorSelection::Invulnerables` (`max_values`: Some(1), `max_size`: Some(641), added: 1136, mode: `MaxEncodedLen`) - /// Storage: `CollatorSelection::Candidates` (r:1 w:1) - /// Proof: `CollatorSelection::Candidates` (`max_values`: Some(1), `max_size`: Some(4802), added: 5297, 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 `b` is `[1, 19]`. - /// The range of component `c` is `[1, 99]`. - fn add_invulnerable(b: u32, c: u32, ) -> Weight { - // Proof Size summary in bytes: - // Measured: `757 + b * (32 ±0) + c * (53 ±0)` - // Estimated: `6287 + b * (37 ±0) + c * (53 ±0)` - // Minimum execution time: 47_110_000 picoseconds. - Weight::from_parts(45_234_418, 0) - .saturating_add(Weight::from_parts(0, 6287)) - // Standard Error: 14_452 - .saturating_add(Weight::from_parts(156_031, 0).saturating_mul(b.into())) - // Standard Error: 2_739 - .saturating_add(Weight::from_parts(216_162, 0).saturating_mul(c.into())) - .saturating_add(T::DbWeight::get().reads(4)) - .saturating_add(T::DbWeight::get().writes(3)) - .saturating_add(Weight::from_parts(0, 37).saturating_mul(b.into())) - .saturating_add(Weight::from_parts(0, 53).saturating_mul(c.into())) - } - /// Storage: `CollatorSelection::Candidates` (r:1 w:0) - /// Proof: `CollatorSelection::Candidates` (`max_values`: Some(1), `max_size`: Some(4802), added: 5297, mode: `MaxEncodedLen`) - /// Storage: `CollatorSelection::Invulnerables` (r:1 w:1) - /// Proof: `CollatorSelection::Invulnerables` (`max_values`: Some(1), `max_size`: Some(641), added: 1136, mode: `MaxEncodedLen`) - /// The range of component `b` is `[5, 20]`. - fn remove_invulnerable(b: u32, ) -> Weight { - // Proof Size summary in bytes: - // Measured: `82 + b * (32 ±0)` - // Estimated: `6287` - // Minimum execution time: 15_326_000 picoseconds. - Weight::from_parts(14_914_611, 0) - .saturating_add(Weight::from_parts(0, 6287)) - // Standard Error: 2_274 - .saturating_add(Weight::from_parts(201_234, 0).saturating_mul(b.into())) - .saturating_add(T::DbWeight::get().reads(2)) - .saturating_add(T::DbWeight::get().writes(1)) - } - /// Storage: `CollatorSelection::DesiredCandidates` (r:0 w:1) - /// Proof: `CollatorSelection::DesiredCandidates` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`) - fn set_desired_candidates() -> Weight { - // Proof Size summary in bytes: - // Measured: `0` - // Estimated: `0` - // Minimum execution time: 7_288_000 picoseconds. - Weight::from_parts(7_472_000, 0) - .saturating_add(Weight::from_parts(0, 0)) - .saturating_add(T::DbWeight::get().writes(1)) - } - /// Storage: `CollatorSelection::CandidacyBond` (r:0 w:1) - /// Proof: `CollatorSelection::CandidacyBond` (`max_values`: Some(1), `max_size`: Some(16), added: 511, mode: `MaxEncodedLen`) - fn set_candidacy_bond() -> Weight { - // Proof Size summary in bytes: - // Measured: `0` - // Estimated: `0` - // Minimum execution time: 7_137_000 picoseconds. - Weight::from_parts(7_374_000, 0) - .saturating_add(Weight::from_parts(0, 0)) - .saturating_add(T::DbWeight::get().writes(1)) - } - /// Storage: `CollatorSelection::Candidates` (r:1 w:1) - /// Proof: `CollatorSelection::Candidates` (`max_values`: Some(1), `max_size`: Some(4802), added: 5297, mode: `MaxEncodedLen`) - /// Storage: `CollatorSelection::DesiredCandidates` (r:1 w:0) - /// Proof: `CollatorSelection::DesiredCandidates` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`) - /// Storage: `CollatorSelection::Invulnerables` (r:1 w:0) - /// Proof: `CollatorSelection::Invulnerables` (`max_values`: Some(1), `max_size`: Some(641), added: 1136, mode: `MaxEncodedLen`) - /// Storage: `Session::NextKeys` (r:1 w:0) - /// Proof: `Session::NextKeys` (`max_values`: None, `max_size`: None, mode: `Measured`) - /// Storage: `CollatorSelection::CandidacyBond` (r:1 w:0) - /// Proof: `CollatorSelection::CandidacyBond` (`max_values`: Some(1), `max_size`: Some(16), added: 511, mode: `MaxEncodedLen`) - /// Storage: `CollatorSelection::LastAuthoredBlock` (r:0 w:1) - /// Proof: `CollatorSelection::LastAuthoredBlock` (`max_values`: None, `max_size`: Some(44), added: 2519, mode: `MaxEncodedLen`) - /// The range of component `c` is `[1, 99]`. - fn register_as_candidate(c: u32, ) -> Weight { - // Proof Size summary in bytes: - // Measured: `740 + c * (52 ±0)` - // Estimated: `6287 + c * (54 ±0)` - // Minimum execution time: 40_718_000 picoseconds. - Weight::from_parts(43_911_837, 0) - .saturating_add(Weight::from_parts(0, 6287)) - // Standard Error: 3_053 - .saturating_add(Weight::from_parts(229_337, 0).saturating_mul(c.into())) - .saturating_add(T::DbWeight::get().reads(5)) - .saturating_add(T::DbWeight::get().writes(2)) - .saturating_add(Weight::from_parts(0, 54).saturating_mul(c.into())) - } - /// Storage: `CollatorSelection::Candidates` (r:1 w:1) - /// Proof: `CollatorSelection::Candidates` (`max_values`: Some(1), `max_size`: Some(4802), added: 5297, mode: `MaxEncodedLen`) - /// Storage: `CollatorSelection::Invulnerables` (r:1 w:0) - /// Proof: `CollatorSelection::Invulnerables` (`max_values`: Some(1), `max_size`: Some(641), added: 1136, mode: `MaxEncodedLen`) - /// Storage: `CollatorSelection::LastAuthoredBlock` (r:0 w:1) - /// Proof: `CollatorSelection::LastAuthoredBlock` (`max_values`: None, `max_size`: Some(44), added: 2519, mode: `MaxEncodedLen`) - /// The range of component `c` is `[3, 100]`. - fn leave_intent(c: u32, ) -> Weight { - // Proof Size summary in bytes: - // Measured: `334 + c * (49 ±0)` - // Estimated: `6287` - // Minimum execution time: 32_953_000 picoseconds. - Weight::from_parts(34_817_275, 0) - .saturating_add(Weight::from_parts(0, 6287)) - // Standard Error: 2_476 - .saturating_add(Weight::from_parts(198_023, 0).saturating_mul(c.into())) - .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: `System::BlockWeight` (r:1 w:1) - /// Proof: `System::BlockWeight` (`max_values`: Some(1), `max_size`: Some(48), added: 543, mode: `MaxEncodedLen`) - /// Storage: `CollatorSelection::LastAuthoredBlock` (r:0 w:1) - /// Proof: `CollatorSelection::LastAuthoredBlock` (`max_values`: None, `max_size`: Some(44), added: 2519, mode: `MaxEncodedLen`) - fn note_author() -> Weight { - // Proof Size summary in bytes: - // Measured: `155` - // Estimated: `6196` - // Minimum execution time: 45_130_000 picoseconds. - Weight::from_parts(46_733_000, 0) - .saturating_add(Weight::from_parts(0, 6196)) - .saturating_add(T::DbWeight::get().reads(3)) - .saturating_add(T::DbWeight::get().writes(4)) - } - /// Storage: `CollatorSelection::Candidates` (r:1 w:0) - /// Proof: `CollatorSelection::Candidates` (`max_values`: Some(1), `max_size`: Some(4802), added: 5297, mode: `MaxEncodedLen`) - /// Storage: `CollatorSelection::LastAuthoredBlock` (r:100 w:0) - /// Proof: `CollatorSelection::LastAuthoredBlock` (`max_values`: None, `max_size`: Some(44), added: 2519, mode: `MaxEncodedLen`) - /// Storage: `CollatorSelection::Invulnerables` (r:1 w:0) - /// Proof: `CollatorSelection::Invulnerables` (`max_values`: Some(1), `max_size`: Some(641), added: 1136, mode: `MaxEncodedLen`) - /// Storage: `System::BlockWeight` (r:1 w:1) - /// Proof: `System::BlockWeight` (`max_values`: Some(1), `max_size`: Some(48), added: 543, mode: `MaxEncodedLen`) - /// Storage: `System::Account` (r:97 w:97) - /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`) - /// The range of component `r` is `[1, 100]`. - /// The range of component `c` is `[1, 100]`. - fn new_session(r: u32, c: u32, ) -> Weight { - // Proof Size summary in bytes: - // Measured: `2263 + c * (97 ±0) + r * (115 ±0)` - // Estimated: `6287 + c * (2519 ±0) + r * (2603 ±0)` - // Minimum execution time: 16_690_000 picoseconds. - Weight::from_parts(17_188_000, 0) - .saturating_add(Weight::from_parts(0, 6287)) - // Standard Error: 345_320 - .saturating_add(Weight::from_parts(15_166_422, 0).saturating_mul(c.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().writes(1)) - .saturating_add(T::DbWeight::get().writes((1_u64).saturating_mul(c.into()))) - .saturating_add(Weight::from_parts(0, 2519).saturating_mul(c.into())) - .saturating_add(Weight::from_parts(0, 2603).saturating_mul(r.into())) - } -} diff --git a/cumulus/parachains/runtimes/bridge-hubs/bridge-hub-kusama/src/weights/pallet_multisig.rs b/cumulus/parachains/runtimes/bridge-hubs/bridge-hub-kusama/src/weights/pallet_multisig.rs deleted file mode 100644 index 96b2d859ed86..000000000000 --- a/cumulus/parachains/runtimes/bridge-hubs/bridge-hub-kusama/src/weights/pallet_multisig.rs +++ /dev/null @@ -1,165 +0,0 @@ -// Copyright (C) Parity Technologies (UK) Ltd. -// This file is part of Cumulus. - -// Cumulus 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. - -// Cumulus 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 Cumulus. If not, see . - -//! Autogenerated weights for `pallet_multisig` -//! -//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev -//! DATE: 2023-07-31, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` -//! WORST CASE MAP SIZE: `1000000` -//! HOSTNAME: `runner-ynta1nyy-project-238-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz` -//! EXECUTION: ``, WASM-EXECUTION: `Compiled`, CHAIN: `Some("bridge-hub-kusama-dev")`, DB CACHE: 1024 - -// Executed Command: -// ./target/production/polkadot-parachain -// benchmark -// pallet -// --chain=bridge-hub-kusama-dev -// --wasm-execution=compiled -// --pallet=pallet_multisig -// --no-storage-info -// --no-median-slopes -// --no-min-squares -// --extrinsic=* -// --steps=50 -// --repeat=20 -// --json -// --header=./file_header.txt -// --output=./parachains/runtimes/bridge-hubs/bridge-hub-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_multisig`. -pub struct WeightInfo(PhantomData); -impl pallet_multisig::WeightInfo for WeightInfo { - /// The range of component `z` is `[0, 10000]`. - fn as_multi_threshold_1(z: u32, ) -> Weight { - // Proof Size summary in bytes: - // Measured: `0` - // Estimated: `0` - // Minimum execution time: 13_602_000 picoseconds. - Weight::from_parts(14_565_036, 0) - .saturating_add(Weight::from_parts(0, 0)) - // Standard Error: 8 - .saturating_add(Weight::from_parts(518, 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`) - /// The range of component `s` is `[2, 100]`. - /// The range of component `z` is `[0, 10000]`. - fn as_multi_create(s: u32, z: u32, ) -> Weight { - // Proof Size summary in bytes: - // Measured: `263 + s * (2 ±0)` - // Estimated: `6811` - // Minimum execution time: 46_075_000 picoseconds. - Weight::from_parts(33_730_493, 0) - .saturating_add(Weight::from_parts(0, 6811)) - // Standard Error: 1_049 - .saturating_add(Weight::from_parts(134_211, 0).saturating_mul(s.into())) - // Standard Error: 10 - .saturating_add(Weight::from_parts(1_448, 0).saturating_mul(z.into())) - .saturating_add(T::DbWeight::get().reads(1)) - .saturating_add(T::DbWeight::get().writes(1)) - } - /// Storage: `Multisig::Multisigs` (r:1 w:1) - /// Proof: `Multisig::Multisigs` (`max_values`: None, `max_size`: Some(3346), added: 5821, mode: `MaxEncodedLen`) - /// The range of component `s` is `[3, 100]`. - /// The range of component `z` is `[0, 10000]`. - fn as_multi_approve(s: u32, z: u32, ) -> Weight { - // Proof Size summary in bytes: - // Measured: `282` - // Estimated: `6811` - // Minimum execution time: 29_389_000 picoseconds. - Weight::from_parts(19_639_583, 0) - .saturating_add(Weight::from_parts(0, 6811)) - // Standard Error: 976 - .saturating_add(Weight::from_parts(106_598, 0).saturating_mul(s.into())) - // Standard Error: 9 - .saturating_add(Weight::from_parts(1_457, 0).saturating_mul(z.into())) - .saturating_add(T::DbWeight::get().reads(1)) - .saturating_add(T::DbWeight::get().writes(1)) - } - /// Storage: `Multisig::Multisigs` (r:1 w:1) - /// Proof: `Multisig::Multisigs` (`max_values`: None, `max_size`: Some(3346), added: 5821, 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 `[2, 100]`. - /// The range of component `z` is `[0, 10000]`. - fn as_multi_complete(s: u32, z: u32, ) -> Weight { - // Proof Size summary in bytes: - // Measured: `388 + s * (33 ±0)` - // Estimated: `6811` - // Minimum execution time: 50_438_000 picoseconds. - Weight::from_parts(36_195_308, 0) - .saturating_add(Weight::from_parts(0, 6811)) - // Standard Error: 1_689 - .saturating_add(Weight::from_parts(176_067, 0).saturating_mul(s.into())) - // Standard Error: 16 - .saturating_add(Weight::from_parts(1_545, 0).saturating_mul(z.into())) - .saturating_add(T::DbWeight::get().reads(2)) - .saturating_add(T::DbWeight::get().writes(2)) - } - /// Storage: `Multisig::Multisigs` (r:1 w:1) - /// Proof: `Multisig::Multisigs` (`max_values`: None, `max_size`: Some(3346), added: 5821, mode: `MaxEncodedLen`) - /// The range of component `s` is `[2, 100]`. - fn approve_as_multi_create(s: u32, ) -> Weight { - // Proof Size summary in bytes: - // Measured: `263 + s * (2 ±0)` - // Estimated: `6811` - // Minimum execution time: 32_134_000 picoseconds. - Weight::from_parts(32_149_785, 0) - .saturating_add(Weight::from_parts(0, 6811)) - // Standard Error: 1_082 - .saturating_add(Weight::from_parts(145_390, 0).saturating_mul(s.into())) - .saturating_add(T::DbWeight::get().reads(1)) - .saturating_add(T::DbWeight::get().writes(1)) - } - /// Storage: `Multisig::Multisigs` (r:1 w:1) - /// Proof: `Multisig::Multisigs` (`max_values`: None, `max_size`: Some(3346), added: 5821, mode: `MaxEncodedLen`) - /// The range of component `s` is `[2, 100]`. - fn approve_as_multi_approve(s: u32, ) -> Weight { - // Proof Size summary in bytes: - // Measured: `282` - // Estimated: `6811` - // Minimum execution time: 17_560_000 picoseconds. - Weight::from_parts(18_144_079, 0) - .saturating_add(Weight::from_parts(0, 6811)) - // Standard Error: 763 - .saturating_add(Weight::from_parts(114_298, 0).saturating_mul(s.into())) - .saturating_add(T::DbWeight::get().reads(1)) - .saturating_add(T::DbWeight::get().writes(1)) - } - /// Storage: `Multisig::Multisigs` (r:1 w:1) - /// Proof: `Multisig::Multisigs` (`max_values`: None, `max_size`: Some(3346), added: 5821, mode: `MaxEncodedLen`) - /// The range of component `s` is `[2, 100]`. - fn cancel_as_multi(s: u32, ) -> Weight { - // Proof Size summary in bytes: - // Measured: `454 + s * (1 ±0)` - // Estimated: `6811` - // Minimum execution time: 32_360_000 picoseconds. - Weight::from_parts(33_566_579, 0) - .saturating_add(Weight::from_parts(0, 6811)) - // Standard Error: 1_314 - .saturating_add(Weight::from_parts(126_583, 0).saturating_mul(s.into())) - .saturating_add(T::DbWeight::get().reads(1)) - .saturating_add(T::DbWeight::get().writes(1)) - } -} diff --git a/cumulus/parachains/runtimes/bridge-hubs/bridge-hub-kusama/src/weights/pallet_session.rs b/cumulus/parachains/runtimes/bridge-hubs/bridge-hub-kusama/src/weights/pallet_session.rs deleted file mode 100644 index cc1b4aeb0ddb..000000000000 --- a/cumulus/parachains/runtimes/bridge-hubs/bridge-hub-kusama/src/weights/pallet_session.rs +++ /dev/null @@ -1,81 +0,0 @@ -// Copyright (C) Parity Technologies (UK) Ltd. -// This file is part of Cumulus. - -// Cumulus 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. - -// Cumulus 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 Cumulus. If not, see . - -//! Autogenerated weights for `pallet_session` -//! -//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev -//! DATE: 2023-07-31, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` -//! WORST CASE MAP SIZE: `1000000` -//! HOSTNAME: `runner-ynta1nyy-project-238-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz` -//! EXECUTION: ``, WASM-EXECUTION: `Compiled`, CHAIN: `Some("bridge-hub-kusama-dev")`, DB CACHE: 1024 - -// Executed Command: -// ./target/production/polkadot-parachain -// benchmark -// pallet -// --chain=bridge-hub-kusama-dev -// --wasm-execution=compiled -// --pallet=pallet_session -// --no-storage-info -// --no-median-slopes -// --no-min-squares -// --extrinsic=* -// --steps=50 -// --repeat=20 -// --json -// --header=./file_header.txt -// --output=./parachains/runtimes/bridge-hubs/bridge-hub-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_session`. -pub struct WeightInfo(PhantomData); -impl pallet_session::WeightInfo for WeightInfo { - /// Storage: `Session::NextKeys` (r:1 w:1) - /// Proof: `Session::NextKeys` (`max_values`: None, `max_size`: None, mode: `Measured`) - /// Storage: `Session::KeyOwner` (r:1 w:1) - /// Proof: `Session::KeyOwner` (`max_values`: None, `max_size`: None, mode: `Measured`) - fn set_keys() -> Weight { - // Proof Size summary in bytes: - // Measured: `297` - // Estimated: `3762` - // Minimum execution time: 17_170_000 picoseconds. - Weight::from_parts(17_523_000, 0) - .saturating_add(Weight::from_parts(0, 3762)) - .saturating_add(T::DbWeight::get().reads(2)) - .saturating_add(T::DbWeight::get().writes(2)) - } - /// Storage: `Session::NextKeys` (r:1 w:1) - /// Proof: `Session::NextKeys` (`max_values`: None, `max_size`: None, mode: `Measured`) - /// Storage: `Session::KeyOwner` (r:0 w:1) - /// Proof: `Session::KeyOwner` (`max_values`: None, `max_size`: None, mode: `Measured`) - fn purge_keys() -> Weight { - // Proof Size summary in bytes: - // Measured: `279` - // Estimated: `3744` - // Minimum execution time: 13_273_000 picoseconds. - Weight::from_parts(14_200_000, 0) - .saturating_add(Weight::from_parts(0, 3744)) - .saturating_add(T::DbWeight::get().reads(1)) - .saturating_add(T::DbWeight::get().writes(2)) - } -} diff --git a/cumulus/parachains/runtimes/bridge-hubs/bridge-hub-kusama/src/weights/pallet_timestamp.rs b/cumulus/parachains/runtimes/bridge-hubs/bridge-hub-kusama/src/weights/pallet_timestamp.rs deleted file mode 100644 index 32f6e4a6b435..000000000000 --- a/cumulus/parachains/runtimes/bridge-hubs/bridge-hub-kusama/src/weights/pallet_timestamp.rs +++ /dev/null @@ -1,75 +0,0 @@ -// Copyright (C) Parity Technologies (UK) Ltd. -// This file is part of Cumulus. - -// Cumulus 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. - -// Cumulus 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 Cumulus. If not, see . - -//! Autogenerated weights for `pallet_timestamp` -//! -//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev -//! DATE: 2023-07-31, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` -//! WORST CASE MAP SIZE: `1000000` -//! HOSTNAME: `runner-ynta1nyy-project-238-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz` -//! EXECUTION: ``, WASM-EXECUTION: `Compiled`, CHAIN: `Some("bridge-hub-kusama-dev")`, DB CACHE: 1024 - -// Executed Command: -// ./target/production/polkadot-parachain -// benchmark -// pallet -// --chain=bridge-hub-kusama-dev -// --wasm-execution=compiled -// --pallet=pallet_timestamp -// --no-storage-info -// --no-median-slopes -// --no-min-squares -// --extrinsic=* -// --steps=50 -// --repeat=20 -// --json -// --header=./file_header.txt -// --output=./parachains/runtimes/bridge-hubs/bridge-hub-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_timestamp`. -pub struct WeightInfo(PhantomData); -impl pallet_timestamp::WeightInfo for WeightInfo { - /// Storage: `Timestamp::Now` (r:1 w:1) - /// Proof: `Timestamp::Now` (`max_values`: Some(1), `max_size`: Some(8), added: 503, mode: `MaxEncodedLen`) - /// Storage: `Aura::CurrentSlot` (r:1 w:0) - /// Proof: `Aura::CurrentSlot` (`max_values`: Some(1), `max_size`: Some(8), added: 503, mode: `MaxEncodedLen`) - fn set() -> Weight { - // Proof Size summary in bytes: - // Measured: `49` - // Estimated: `1493` - // Minimum execution time: 7_794_000 picoseconds. - Weight::from_parts(8_075_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: `57` - // Estimated: `0` - // Minimum execution time: 3_338_000 picoseconds. - Weight::from_parts(3_471_000, 0) - .saturating_add(Weight::from_parts(0, 0)) - } -} diff --git a/cumulus/parachains/runtimes/bridge-hubs/bridge-hub-kusama/src/weights/pallet_utility.rs b/cumulus/parachains/runtimes/bridge-hubs/bridge-hub-kusama/src/weights/pallet_utility.rs deleted file mode 100644 index 15b06676cd36..000000000000 --- a/cumulus/parachains/runtimes/bridge-hubs/bridge-hub-kusama/src/weights/pallet_utility.rs +++ /dev/null @@ -1,102 +0,0 @@ -// Copyright (C) Parity Technologies (UK) Ltd. -// This file is part of Cumulus. - -// Cumulus 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. - -// Cumulus 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 Cumulus. If not, see . - -//! Autogenerated weights for `pallet_utility` -//! -//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev -//! DATE: 2023-07-31, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` -//! WORST CASE MAP SIZE: `1000000` -//! HOSTNAME: `runner-ynta1nyy-project-238-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz` -//! EXECUTION: ``, WASM-EXECUTION: `Compiled`, CHAIN: `Some("bridge-hub-kusama-dev")`, DB CACHE: 1024 - -// Executed Command: -// ./target/production/polkadot-parachain -// benchmark -// pallet -// --chain=bridge-hub-kusama-dev -// --wasm-execution=compiled -// --pallet=pallet_utility -// --no-storage-info -// --no-median-slopes -// --no-min-squares -// --extrinsic=* -// --steps=50 -// --repeat=20 -// --json -// --header=./file_header.txt -// --output=./parachains/runtimes/bridge-hubs/bridge-hub-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_utility`. -pub struct WeightInfo(PhantomData); -impl pallet_utility::WeightInfo for WeightInfo { - /// The range of component `c` is `[0, 1000]`. - fn batch(c: u32, ) -> Weight { - // Proof Size summary in bytes: - // Measured: `0` - // Estimated: `0` - // Minimum execution time: 6_641_000 picoseconds. - Weight::from_parts(7_103_558, 0) - .saturating_add(Weight::from_parts(0, 0)) - // Standard Error: 1_172 - .saturating_add(Weight::from_parts(4_907_384, 0).saturating_mul(c.into())) - } - fn as_derivative() -> Weight { - // Proof Size summary in bytes: - // Measured: `0` - // Estimated: `0` - // Minimum execution time: 4_741_000 picoseconds. - Weight::from_parts(4_870_000, 0) - .saturating_add(Weight::from_parts(0, 0)) - } - /// The range of component `c` is `[0, 1000]`. - fn batch_all(c: u32, ) -> Weight { - // Proof Size summary in bytes: - // Measured: `0` - // Estimated: `0` - // Minimum execution time: 6_561_000 picoseconds. - Weight::from_parts(12_252_064, 0) - .saturating_add(Weight::from_parts(0, 0)) - // Standard Error: 1_750 - .saturating_add(Weight::from_parts(5_193_404, 0).saturating_mul(c.into())) - } - fn dispatch_as() -> Weight { - // Proof Size summary in bytes: - // Measured: `0` - // Estimated: `0` - // Minimum execution time: 8_646_000 picoseconds. - Weight::from_parts(8_927_000, 0) - .saturating_add(Weight::from_parts(0, 0)) - } - /// The range of component `c` is `[0, 1000]`. - fn force_batch(c: u32, ) -> Weight { - // Proof Size summary in bytes: - // Measured: `0` - // Estimated: `0` - // Minimum execution time: 6_726_000 picoseconds. - Weight::from_parts(8_025_954, 0) - .saturating_add(Weight::from_parts(0, 0)) - // Standard Error: 1_746 - .saturating_add(Weight::from_parts(4_936_537, 0).saturating_mul(c.into())) - } -} diff --git a/cumulus/parachains/runtimes/bridge-hubs/bridge-hub-kusama/src/weights/pallet_xcm.rs b/cumulus/parachains/runtimes/bridge-hubs/bridge-hub-kusama/src/weights/pallet_xcm.rs deleted file mode 100644 index 71bc58307710..000000000000 --- a/cumulus/parachains/runtimes/bridge-hubs/bridge-hub-kusama/src/weights/pallet_xcm.rs +++ /dev/null @@ -1,289 +0,0 @@ -// Copyright (C) Parity Technologies (UK) Ltd. -// This file is part of Cumulus. - -// Cumulus 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. - -// Cumulus 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 Cumulus. If not, see . - -//! Autogenerated weights for `pallet_xcm` -//! -//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev -//! DATE: 2023-07-31, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` -//! WORST CASE MAP SIZE: `1000000` -//! HOSTNAME: `runner-ynta1nyy-project-238-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz` -//! EXECUTION: ``, WASM-EXECUTION: `Compiled`, CHAIN: `Some("bridge-hub-kusama-dev")`, DB CACHE: 1024 - -// Executed Command: -// ./target/production/polkadot-parachain -// benchmark -// pallet -// --chain=bridge-hub-kusama-dev -// --wasm-execution=compiled -// --pallet=pallet_xcm -// --no-storage-info -// --no-median-slopes -// --no-min-squares -// --extrinsic=* -// --steps=50 -// --repeat=20 -// --json -// --header=./file_header.txt -// --output=./parachains/runtimes/bridge-hubs/bridge-hub-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_xcm`. -pub struct WeightInfo(PhantomData); -impl pallet_xcm::WeightInfo for WeightInfo { - /// Storage: `PolkadotXcm::SupportedVersion` (r:1 w:0) - /// Proof: `PolkadotXcm::SupportedVersion` (`max_values`: None, `max_size`: None, mode: `Measured`) - /// Storage: `PolkadotXcm::VersionDiscoveryQueue` (r:1 w:1) - /// Proof: `PolkadotXcm::VersionDiscoveryQueue` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) - /// Storage: `PolkadotXcm::SafeXcmVersion` (r:1 w:0) - /// Proof: `PolkadotXcm::SafeXcmVersion` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) - /// Storage: `ParachainSystem::HostConfiguration` (r:1 w:0) - /// Proof: `ParachainSystem::HostConfiguration` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) - /// Storage: `ParachainSystem::PendingUpwardMessages` (r:1 w:1) - /// Proof: `ParachainSystem::PendingUpwardMessages` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) - fn send() -> Weight { - // Proof Size summary in bytes: - // Measured: `38` - // Estimated: `3503` - // Minimum execution time: 27_523_000 picoseconds. - Weight::from_parts(28_238_000, 0) - .saturating_add(Weight::from_parts(0, 3503)) - .saturating_add(T::DbWeight::get().reads(5)) - .saturating_add(T::DbWeight::get().writes(2)) - } - /// Storage: `ParachainInfo::ParachainId` (r:1 w:0) - /// Proof: `ParachainInfo::ParachainId` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`) - fn teleport_assets() -> Weight { - // Proof Size summary in bytes: - // Measured: `32` - // Estimated: `1489` - // Minimum execution time: 24_139_000 picoseconds. - Weight::from_parts(24_806_000, 0) - .saturating_add(Weight::from_parts(0, 1489)) - .saturating_add(T::DbWeight::get().reads(1)) - } - /// Storage: `Benchmark::Override` (r:0 w:0) - /// Proof: `Benchmark::Override` (`max_values`: None, `max_size`: None, mode: `Measured`) - fn reserve_transfer_assets() -> Weight { - // Proof Size summary in bytes: - // Measured: `0` - // Estimated: `0` - // Minimum execution time: 18_446_744_073_709_551_000 picoseconds. - Weight::from_parts(18_446_744_073_709_551_000, 0) - .saturating_add(Weight::from_parts(0, 0)) - } - /// Storage: `Benchmark::Override` (r:0 w:0) - /// Proof: `Benchmark::Override` (`max_values`: None, `max_size`: None, mode: `Measured`) - fn execute() -> Weight { - // Proof Size summary in bytes: - // Measured: `0` - // Estimated: `0` - // Minimum execution time: 18_446_744_073_709_551_000 picoseconds. - Weight::from_parts(18_446_744_073_709_551_000, 0) - .saturating_add(Weight::from_parts(0, 0)) - } - /// Storage: `PolkadotXcm::SupportedVersion` (r:0 w:1) - /// Proof: `PolkadotXcm::SupportedVersion` (`max_values`: None, `max_size`: None, mode: `Measured`) - fn force_xcm_version() -> Weight { - // Proof Size summary in bytes: - // Measured: `0` - // Estimated: `0` - // Minimum execution time: 8_988_000 picoseconds. - Weight::from_parts(9_227_000, 0) - .saturating_add(Weight::from_parts(0, 0)) - .saturating_add(T::DbWeight::get().writes(1)) - } - /// Storage: `PolkadotXcm::SafeXcmVersion` (r:0 w:1) - /// Proof: `PolkadotXcm::SafeXcmVersion` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) - fn force_default_xcm_version() -> Weight { - // Proof Size summary in bytes: - // Measured: `0` - // Estimated: `0` - // Minimum execution time: 2_571_000 picoseconds. - Weight::from_parts(2_667_000, 0) - .saturating_add(Weight::from_parts(0, 0)) - .saturating_add(T::DbWeight::get().writes(1)) - } - /// Storage: `PolkadotXcm::VersionNotifiers` (r:1 w:1) - /// Proof: `PolkadotXcm::VersionNotifiers` (`max_values`: None, `max_size`: None, mode: `Measured`) - /// Storage: `PolkadotXcm::QueryCounter` (r:1 w:1) - /// Proof: `PolkadotXcm::QueryCounter` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) - /// Storage: `PolkadotXcm::SupportedVersion` (r:1 w:0) - /// Proof: `PolkadotXcm::SupportedVersion` (`max_values`: None, `max_size`: None, mode: `Measured`) - /// Storage: `PolkadotXcm::VersionDiscoveryQueue` (r:1 w:1) - /// Proof: `PolkadotXcm::VersionDiscoveryQueue` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) - /// Storage: `PolkadotXcm::SafeXcmVersion` (r:1 w:0) - /// Proof: `PolkadotXcm::SafeXcmVersion` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) - /// Storage: `ParachainSystem::HostConfiguration` (r:1 w:0) - /// Proof: `ParachainSystem::HostConfiguration` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) - /// Storage: `ParachainSystem::PendingUpwardMessages` (r:1 w:1) - /// Proof: `ParachainSystem::PendingUpwardMessages` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) - /// Storage: `PolkadotXcm::Queries` (r:0 w:1) - /// Proof: `PolkadotXcm::Queries` (`max_values`: None, `max_size`: None, mode: `Measured`) - fn force_subscribe_version_notify() -> Weight { - // Proof Size summary in bytes: - // Measured: `38` - // Estimated: `3503` - // Minimum execution time: 33_194_000 picoseconds. - Weight::from_parts(34_089_000, 0) - .saturating_add(Weight::from_parts(0, 3503)) - .saturating_add(T::DbWeight::get().reads(7)) - .saturating_add(T::DbWeight::get().writes(5)) - } - /// Storage: `PolkadotXcm::VersionNotifiers` (r:1 w:1) - /// Proof: `PolkadotXcm::VersionNotifiers` (`max_values`: None, `max_size`: None, mode: `Measured`) - /// Storage: `PolkadotXcm::SupportedVersion` (r:1 w:0) - /// Proof: `PolkadotXcm::SupportedVersion` (`max_values`: None, `max_size`: None, mode: `Measured`) - /// Storage: `PolkadotXcm::VersionDiscoveryQueue` (r:1 w:1) - /// Proof: `PolkadotXcm::VersionDiscoveryQueue` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) - /// Storage: `PolkadotXcm::SafeXcmVersion` (r:1 w:0) - /// Proof: `PolkadotXcm::SafeXcmVersion` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) - /// Storage: `ParachainSystem::HostConfiguration` (r:1 w:0) - /// Proof: `ParachainSystem::HostConfiguration` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) - /// Storage: `ParachainSystem::PendingUpwardMessages` (r:1 w:1) - /// Proof: `ParachainSystem::PendingUpwardMessages` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) - /// Storage: `PolkadotXcm::Queries` (r:0 w:1) - /// Proof: `PolkadotXcm::Queries` (`max_values`: None, `max_size`: None, mode: `Measured`) - fn force_unsubscribe_version_notify() -> Weight { - // Proof Size summary in bytes: - // Measured: `255` - // Estimated: `3720` - // Minimum execution time: 35_413_000 picoseconds. - Weight::from_parts(36_359_000, 0) - .saturating_add(Weight::from_parts(0, 3720)) - .saturating_add(T::DbWeight::get().reads(6)) - .saturating_add(T::DbWeight::get().writes(4)) - } - /// Storage: `PolkadotXcm::XcmExecutionSuspended` (r:0 w:1) - /// Proof: `PolkadotXcm::XcmExecutionSuspended` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) - fn force_suspension() -> Weight { - // Proof Size summary in bytes: - // Measured: `0` - // Estimated: `0` - // Minimum execution time: 2_679_000 picoseconds. - Weight::from_parts(2_823_000, 0) - .saturating_add(Weight::from_parts(0, 0)) - .saturating_add(T::DbWeight::get().writes(1)) - } - /// Storage: `PolkadotXcm::SupportedVersion` (r:4 w:2) - /// Proof: `PolkadotXcm::SupportedVersion` (`max_values`: None, `max_size`: None, mode: `Measured`) - fn migrate_supported_version() -> Weight { - // Proof Size summary in bytes: - // Measured: `95` - // Estimated: `10985` - // Minimum execution time: 15_117_000 picoseconds. - Weight::from_parts(15_603_000, 0) - .saturating_add(Weight::from_parts(0, 10985)) - .saturating_add(T::DbWeight::get().reads(4)) - .saturating_add(T::DbWeight::get().writes(2)) - } - /// Storage: `PolkadotXcm::VersionNotifiers` (r:4 w:2) - /// Proof: `PolkadotXcm::VersionNotifiers` (`max_values`: None, `max_size`: None, mode: `Measured`) - fn migrate_version_notifiers() -> Weight { - // Proof Size summary in bytes: - // Measured: `99` - // Estimated: `10989` - // Minimum execution time: 14_978_000 picoseconds. - Weight::from_parts(15_370_000, 0) - .saturating_add(Weight::from_parts(0, 10989)) - .saturating_add(T::DbWeight::get().reads(4)) - .saturating_add(T::DbWeight::get().writes(2)) - } - /// Storage: `PolkadotXcm::VersionNotifyTargets` (r:5 w:0) - /// Proof: `PolkadotXcm::VersionNotifyTargets` (`max_values`: None, `max_size`: None, mode: `Measured`) - fn already_notified_target() -> Weight { - // Proof Size summary in bytes: - // Measured: `106` - // Estimated: `13471` - // Minimum execution time: 16_549_000 picoseconds. - Weight::from_parts(16_944_000, 0) - .saturating_add(Weight::from_parts(0, 13471)) - .saturating_add(T::DbWeight::get().reads(5)) - } - /// Storage: `PolkadotXcm::VersionNotifyTargets` (r:2 w:1) - /// Proof: `PolkadotXcm::VersionNotifyTargets` (`max_values`: None, `max_size`: None, mode: `Measured`) - /// Storage: `PolkadotXcm::SupportedVersion` (r:1 w:0) - /// Proof: `PolkadotXcm::SupportedVersion` (`max_values`: None, `max_size`: None, mode: `Measured`) - /// Storage: `PolkadotXcm::VersionDiscoveryQueue` (r:1 w:1) - /// Proof: `PolkadotXcm::VersionDiscoveryQueue` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) - /// Storage: `PolkadotXcm::SafeXcmVersion` (r:1 w:0) - /// Proof: `PolkadotXcm::SafeXcmVersion` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) - /// Storage: `ParachainSystem::HostConfiguration` (r:1 w:0) - /// Proof: `ParachainSystem::HostConfiguration` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) - /// Storage: `ParachainSystem::PendingUpwardMessages` (r:1 w:1) - /// Proof: `ParachainSystem::PendingUpwardMessages` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) - fn notify_current_targets() -> Weight { - // Proof Size summary in bytes: - // Measured: `106` - // Estimated: `6046` - // Minimum execution time: 30_111_000 picoseconds. - Weight::from_parts(30_795_000, 0) - .saturating_add(Weight::from_parts(0, 6046)) - .saturating_add(T::DbWeight::get().reads(7)) - .saturating_add(T::DbWeight::get().writes(3)) - } - /// Storage: `PolkadotXcm::VersionNotifyTargets` (r:3 w:0) - /// Proof: `PolkadotXcm::VersionNotifyTargets` (`max_values`: None, `max_size`: None, mode: `Measured`) - fn notify_target_migration_fail() -> Weight { - // Proof Size summary in bytes: - // Measured: `136` - // Estimated: `8551` - // Minimum execution time: 8_622_000 picoseconds. - Weight::from_parts(8_865_000, 0) - .saturating_add(Weight::from_parts(0, 8551)) - .saturating_add(T::DbWeight::get().reads(3)) - } - /// Storage: `PolkadotXcm::VersionNotifyTargets` (r:4 w:2) - /// Proof: `PolkadotXcm::VersionNotifyTargets` (`max_values`: None, `max_size`: None, mode: `Measured`) - fn migrate_version_notify_targets() -> Weight { - // Proof Size summary in bytes: - // Measured: `106` - // Estimated: `10996` - // Minimum execution time: 15_194_000 picoseconds. - Weight::from_parts(15_646_000, 0) - .saturating_add(Weight::from_parts(0, 10996)) - .saturating_add(T::DbWeight::get().reads(4)) - .saturating_add(T::DbWeight::get().writes(2)) - } - /// Storage: `PolkadotXcm::VersionNotifyTargets` (r:4 w:2) - /// Proof: `PolkadotXcm::VersionNotifyTargets` (`max_values`: None, `max_size`: None, mode: `Measured`) - /// Storage: `PolkadotXcm::SupportedVersion` (r:1 w:0) - /// Proof: `PolkadotXcm::SupportedVersion` (`max_values`: None, `max_size`: None, mode: `Measured`) - /// Storage: `PolkadotXcm::VersionDiscoveryQueue` (r:1 w:1) - /// Proof: `PolkadotXcm::VersionDiscoveryQueue` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) - /// Storage: `PolkadotXcm::SafeXcmVersion` (r:1 w:0) - /// Proof: `PolkadotXcm::SafeXcmVersion` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) - /// Storage: `ParachainSystem::HostConfiguration` (r:1 w:0) - /// Proof: `ParachainSystem::HostConfiguration` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) - /// Storage: `ParachainSystem::PendingUpwardMessages` (r:1 w:1) - /// Proof: `ParachainSystem::PendingUpwardMessages` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) - fn migrate_and_notify_old_targets() -> Weight { - // Proof Size summary in bytes: - // Measured: `112` - // Estimated: `11002` - // Minimum execution time: 36_625_000 picoseconds. - Weight::from_parts(37_571_000, 0) - .saturating_add(Weight::from_parts(0, 11002)) - .saturating_add(T::DbWeight::get().reads(9)) - .saturating_add(T::DbWeight::get().writes(4)) - } -} diff --git a/cumulus/parachains/runtimes/bridge-hubs/bridge-hub-kusama/src/weights/paritydb_weights.rs b/cumulus/parachains/runtimes/bridge-hubs/bridge-hub-kusama/src/weights/paritydb_weights.rs deleted file mode 100644 index 25679703831a..000000000000 --- a/cumulus/parachains/runtimes/bridge-hubs/bridge-hub-kusama/src/weights/paritydb_weights.rs +++ /dev/null @@ -1,63 +0,0 @@ -// This file is part of Substrate. - -// 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. - -pub mod constants { - use frame_support::{ - parameter_types, - weights::{constants, RuntimeDbWeight}, - }; - - parameter_types! { - /// `ParityDB` can be enabled with a feature flag, but is still experimental. These weights - /// are available for brave runtime engineers who may want to try this out as default. - pub const ParityDbWeight: RuntimeDbWeight = RuntimeDbWeight { - read: 8_000 * constants::WEIGHT_REF_TIME_PER_NANOS, - write: 50_000 * constants::WEIGHT_REF_TIME_PER_NANOS, - }; - } - - #[cfg(test)] - mod test_db_weights { - use super::constants::ParityDbWeight as W; - use frame_support::weights::constants; - - /// Checks that all weights exist and have sane values. - // NOTE: If this test fails but you are sure that the generated values are fine, - // you can delete it. - #[test] - fn sane() { - // At least 1 µs. - assert!( - W::get().reads(1).ref_time() >= constants::WEIGHT_REF_TIME_PER_MICROS, - "Read weight should be at least 1 µs." - ); - assert!( - W::get().writes(1).ref_time() >= constants::WEIGHT_REF_TIME_PER_MICROS, - "Write weight should be at least 1 µs." - ); - // At most 1 ms. - assert!( - W::get().reads(1).ref_time() <= constants::WEIGHT_REF_TIME_PER_MILLIS, - "Read weight should be at most 1 ms." - ); - assert!( - W::get().writes(1).ref_time() <= constants::WEIGHT_REF_TIME_PER_MILLIS, - "Write weight should be at most 1 ms." - ); - } - } -} diff --git a/cumulus/parachains/runtimes/bridge-hubs/bridge-hub-kusama/src/weights/rocksdb_weights.rs b/cumulus/parachains/runtimes/bridge-hubs/bridge-hub-kusama/src/weights/rocksdb_weights.rs deleted file mode 100644 index 3dd817aa6f13..000000000000 --- a/cumulus/parachains/runtimes/bridge-hubs/bridge-hub-kusama/src/weights/rocksdb_weights.rs +++ /dev/null @@ -1,63 +0,0 @@ -// This file is part of Substrate. - -// 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. - -pub mod constants { - use frame_support::{ - parameter_types, - weights::{constants, RuntimeDbWeight}, - }; - - parameter_types! { - /// By default, Substrate uses `RocksDB`, so this will be the weight used throughout - /// the runtime. - pub const RocksDbWeight: RuntimeDbWeight = RuntimeDbWeight { - read: 25_000 * constants::WEIGHT_REF_TIME_PER_NANOS, - write: 100_000 * constants::WEIGHT_REF_TIME_PER_NANOS, - }; - } - - #[cfg(test)] - mod test_db_weights { - use super::constants::RocksDbWeight as W; - use frame_support::weights::constants; - - /// Checks that all weights exist and have sane values. - // NOTE: If this test fails but you are sure that the generated values are fine, - // you can delete it. - #[test] - fn sane() { - // At least 1 µs. - assert!( - W::get().reads(1).ref_time() >= constants::WEIGHT_REF_TIME_PER_MICROS, - "Read weight should be at least 1 µs." - ); - assert!( - W::get().writes(1).ref_time() >= constants::WEIGHT_REF_TIME_PER_MICROS, - "Write weight should be at least 1 µs." - ); - // At most 1 ms. - assert!( - W::get().reads(1).ref_time() <= constants::WEIGHT_REF_TIME_PER_MILLIS, - "Read weight should be at most 1 ms." - ); - assert!( - W::get().writes(1).ref_time() <= constants::WEIGHT_REF_TIME_PER_MILLIS, - "Write weight should be at most 1 ms." - ); - } - } -} diff --git a/cumulus/parachains/runtimes/bridge-hubs/bridge-hub-kusama/src/weights/xcm/mod.rs b/cumulus/parachains/runtimes/bridge-hubs/bridge-hub-kusama/src/weights/xcm/mod.rs deleted file mode 100644 index 0e740922f339..000000000000 --- a/cumulus/parachains/runtimes/bridge-hubs/bridge-hub-kusama/src/weights/xcm/mod.rs +++ /dev/null @@ -1,256 +0,0 @@ -// Copyright (C) Parity Technologies (UK) Ltd. -// This file is part of Cumulus. - -// Cumulus 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. - -// Cumulus 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 Cumulus. If not, see . - -mod pallet_xcm_benchmarks_fungible; -mod pallet_xcm_benchmarks_generic; - -use crate::{xcm_config::MaxAssetsIntoHolding, Runtime}; -use frame_support::weights::Weight; -use pallet_xcm_benchmarks_fungible::WeightInfo as XcmFungibleWeight; -use pallet_xcm_benchmarks_generic::WeightInfo as XcmGeneric; -use sp_std::prelude::*; -use xcm::{latest::prelude::*, DoubleEncoded}; - -trait WeighMultiAssets { - fn weigh_multi_assets(&self, weight: Weight) -> Weight; -} - -const MAX_ASSETS: u64 = 100; - -impl WeighMultiAssets for MultiAssetFilter { - fn weigh_multi_assets(&self, weight: Weight) -> Weight { - match self { - Self::Definite(assets) => weight.saturating_mul(assets.inner().iter().count() as u64), - Self::Wild(asset) => match asset { - All => weight.saturating_mul(MAX_ASSETS), - AllOf { fun, .. } => match fun { - WildFungibility::Fungible => weight, - // Magic number 2 has to do with the fact that we could have up to 2 times - // MaxAssetsIntoHolding in the worst-case scenario. - WildFungibility::NonFungible => - weight.saturating_mul((MaxAssetsIntoHolding::get() * 2) as u64), - }, - AllCounted(count) => weight.saturating_mul(MAX_ASSETS.min(*count as u64)), - AllOfCounted { count, .. } => weight.saturating_mul(MAX_ASSETS.min(*count as u64)), - }, - } - } -} - -impl WeighMultiAssets for MultiAssets { - fn weigh_multi_assets(&self, weight: Weight) -> Weight { - weight.saturating_mul(self.inner().iter().count() as u64) - } -} - -pub struct BridgeHubKusamaXcmWeight(core::marker::PhantomData); -impl XcmWeightInfo for BridgeHubKusamaXcmWeight { - fn withdraw_asset(assets: &MultiAssets) -> Weight { - assets.weigh_multi_assets(XcmFungibleWeight::::withdraw_asset()) - } - // Currently there is no trusted reserve (`IsReserve = ()`), - // but we need this hack for `pallet_xcm::reserve_transfer_assets` - // (TODO) fix https://github.com/paritytech/polkadot/pull/7424 - // (TODO) fix https://github.com/paritytech/polkadot/pull/7546 - fn reserve_asset_deposited(_assets: &MultiAssets) -> Weight { - // TODO: if we change `IsReserve = ...` then use this line... - // TODO: or if remote weight estimation is fixed, then remove - // TODO: hardcoded - fix https://github.com/paritytech/cumulus/issues/1974 - let hardcoded_weight = Weight::from_parts(1_000_000_000_u64, 0); - hardcoded_weight.min(XcmFungibleWeight::::reserve_asset_deposited()) - } - fn receive_teleported_asset(assets: &MultiAssets) -> Weight { - assets.weigh_multi_assets(XcmFungibleWeight::::receive_teleported_asset()) - } - fn query_response( - _query_id: &u64, - _response: &Response, - _max_weight: &Weight, - _querier: &Option, - ) -> Weight { - XcmGeneric::::query_response() - } - fn transfer_asset(assets: &MultiAssets, _dest: &MultiLocation) -> Weight { - assets.weigh_multi_assets(XcmFungibleWeight::::transfer_asset()) - } - fn transfer_reserve_asset( - assets: &MultiAssets, - _dest: &MultiLocation, - _xcm: &Xcm<()>, - ) -> Weight { - assets.weigh_multi_assets(XcmFungibleWeight::::transfer_reserve_asset()) - } - fn transact( - _origin_type: &OriginKind, - _require_weight_at_most: &Weight, - _call: &DoubleEncoded, - ) -> Weight { - XcmGeneric::::transact() - } - fn hrmp_new_channel_open_request( - _sender: &u32, - _max_message_size: &u32, - _max_capacity: &u32, - ) -> Weight { - // XCM Executor does not currently support HRMP channel operations - Weight::MAX - } - fn hrmp_channel_accepted(_recipient: &u32) -> Weight { - // XCM Executor does not currently support HRMP channel operations - Weight::MAX - } - fn hrmp_channel_closing(_initiator: &u32, _sender: &u32, _recipient: &u32) -> Weight { - // XCM Executor does not currently support HRMP channel operations - Weight::MAX - } - fn clear_origin() -> Weight { - XcmGeneric::::clear_origin() - } - fn descend_origin(_who: &InteriorMultiLocation) -> Weight { - XcmGeneric::::descend_origin() - } - fn report_error(_query_response_info: &QueryResponseInfo) -> Weight { - XcmGeneric::::report_error() - } - - fn deposit_asset(assets: &MultiAssetFilter, _dest: &MultiLocation) -> Weight { - // Hardcoded till the XCM pallet is fixed - let hardcoded_weight = Weight::from_parts(1_000_000_000_u64, 0); - let weight = assets.weigh_multi_assets(XcmFungibleWeight::::deposit_asset()); - hardcoded_weight.min(weight) - } - fn deposit_reserve_asset( - assets: &MultiAssetFilter, - _dest: &MultiLocation, - _xcm: &Xcm<()>, - ) -> Weight { - assets.weigh_multi_assets(XcmFungibleWeight::::deposit_reserve_asset()) - } - fn exchange_asset(_give: &MultiAssetFilter, _receive: &MultiAssets, _maximal: &bool) -> Weight { - Weight::MAX - } - fn initiate_reserve_withdraw( - assets: &MultiAssetFilter, - _reserve: &MultiLocation, - _xcm: &Xcm<()>, - ) -> Weight { - assets.weigh_multi_assets(XcmFungibleWeight::::initiate_reserve_withdraw()) - } - fn initiate_teleport( - assets: &MultiAssetFilter, - _dest: &MultiLocation, - _xcm: &Xcm<()>, - ) -> Weight { - assets.weigh_multi_assets(XcmFungibleWeight::::initiate_teleport()) - } - fn report_holding(_response_info: &QueryResponseInfo, _assets: &MultiAssetFilter) -> Weight { - XcmGeneric::::report_holding() - } - fn buy_execution(_fees: &MultiAsset, _weight_limit: &WeightLimit) -> Weight { - XcmGeneric::::buy_execution() - } - fn refund_surplus() -> Weight { - XcmGeneric::::refund_surplus() - } - fn set_error_handler(_xcm: &Xcm) -> Weight { - XcmGeneric::::set_error_handler() - } - fn set_appendix(_xcm: &Xcm) -> Weight { - XcmGeneric::::set_appendix() - } - fn clear_error() -> Weight { - XcmGeneric::::clear_error() - } - fn claim_asset(_assets: &MultiAssets, _ticket: &MultiLocation) -> Weight { - XcmGeneric::::claim_asset() - } - fn trap(_code: &u64) -> Weight { - XcmGeneric::::trap() - } - fn subscribe_version(_query_id: &QueryId, _max_response_weight: &Weight) -> Weight { - XcmGeneric::::subscribe_version() - } - fn unsubscribe_version() -> Weight { - XcmGeneric::::unsubscribe_version() - } - fn burn_asset(assets: &MultiAssets) -> Weight { - assets.weigh_multi_assets(XcmGeneric::::burn_asset()) - } - fn expect_asset(assets: &MultiAssets) -> Weight { - assets.weigh_multi_assets(XcmGeneric::::expect_asset()) - } - fn expect_origin(_origin: &Option) -> Weight { - XcmGeneric::::expect_origin() - } - fn expect_error(_error: &Option<(u32, XcmError)>) -> Weight { - XcmGeneric::::expect_error() - } - fn expect_transact_status(_transact_status: &MaybeErrorCode) -> Weight { - XcmGeneric::::expect_transact_status() - } - fn query_pallet(_module_name: &Vec, _response_info: &QueryResponseInfo) -> Weight { - XcmGeneric::::query_pallet() - } - fn expect_pallet( - _index: &u32, - _name: &Vec, - _module_name: &Vec, - _crate_major: &u32, - _min_crate_minor: &u32, - ) -> Weight { - XcmGeneric::::expect_pallet() - } - fn report_transact_status(_response_info: &QueryResponseInfo) -> Weight { - XcmGeneric::::report_transact_status() - } - fn clear_transact_status() -> Weight { - XcmGeneric::::clear_transact_status() - } - fn universal_origin(_: &Junction) -> Weight { - Weight::MAX - } - fn export_message(_: &NetworkId, _: &Junctions, _: &Xcm<()>) -> Weight { - Weight::MAX - } - fn lock_asset(_: &MultiAsset, _: &MultiLocation) -> Weight { - Weight::MAX - } - fn unlock_asset(_: &MultiAsset, _: &MultiLocation) -> Weight { - Weight::MAX - } - fn note_unlockable(_: &MultiAsset, _: &MultiLocation) -> Weight { - Weight::MAX - } - fn request_unlock(_: &MultiAsset, _: &MultiLocation) -> Weight { - Weight::MAX - } - fn set_fees_mode(_: &bool) -> Weight { - XcmGeneric::::set_fees_mode() - } - fn set_topic(_topic: &[u8; 32]) -> Weight { - XcmGeneric::::set_topic() - } - fn clear_topic() -> Weight { - XcmGeneric::::clear_topic() - } - fn alias_origin(_: &MultiLocation) -> Weight { - // XCM Executor does not currently support alias origin operations - Weight::MAX - } - fn unpaid_execution(_: &WeightLimit, _: &Option) -> Weight { - XcmGeneric::::unpaid_execution() - } -} diff --git a/cumulus/parachains/runtimes/bridge-hubs/bridge-hub-kusama/src/weights/xcm/pallet_xcm_benchmarks_fungible.rs b/cumulus/parachains/runtimes/bridge-hubs/bridge-hub-kusama/src/weights/xcm/pallet_xcm_benchmarks_fungible.rs deleted file mode 100644 index 6c8c7ab66bbd..000000000000 --- a/cumulus/parachains/runtimes/bridge-hubs/bridge-hub-kusama/src/weights/xcm/pallet_xcm_benchmarks_fungible.rs +++ /dev/null @@ -1,190 +0,0 @@ -// Copyright (C) Parity Technologies (UK) Ltd. -// This file is part of Cumulus. - -// Cumulus 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. - -// Cumulus 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 Cumulus. 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-07-31, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` -//! WORST CASE MAP SIZE: `1000000` -//! HOSTNAME: `runner-ynta1nyy-project-238-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz` -//! EXECUTION: , WASM-EXECUTION: Compiled, CHAIN: Some("bridge-hub-kusama-dev"), DB CACHE: 1024 - -// Executed Command: -// ./target/production/polkadot-parachain -// benchmark -// pallet -// --template=./templates/xcm-bench-template.hbs -// --chain=bridge-hub-kusama-dev -// --wasm-execution=compiled -// --pallet=pallet_xcm_benchmarks::fungible -// --no-storage-info -// --no-median-slopes -// --no-min-squares -// --extrinsic=* -// --steps=50 -// --repeat=20 -// --json -// --header=./file_header.txt -// --output=./parachains/runtimes/bridge-hubs/bridge-hub-kusama/src/weights/xcm/pallet_xcm_benchmarks_fungible.rs - -#![cfg_attr(rustfmt, rustfmt_skip)] -#![allow(unused_parens)] -#![allow(unused_imports)] - -use frame_support::{traits::Get, weights::Weight}; -use sp_std::marker::PhantomData; - -/// Weights for `pallet_xcm_benchmarks::fungible`. -pub struct WeightInfo(PhantomData); -impl WeightInfo { - // Storage: `System::Account` (r:1 w:1) - // Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`) - pub fn withdraw_asset() -> Weight { - // Proof Size summary in bytes: - // Measured: `101` - // Estimated: `3593` - // Minimum execution time: 24_064_000 picoseconds. - Weight::from_parts(24_751_000, 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`) - pub fn transfer_asset() -> Weight { - // Proof Size summary in bytes: - // Measured: `153` - // Estimated: `6196` - // Minimum execution time: 51_097_000 picoseconds. - Weight::from_parts(51_960_000, 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: `ParachainInfo::ParachainId` (r:1 w:0) - // Proof: `ParachainInfo::ParachainId` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`) - // Storage: `PolkadotXcm::SupportedVersion` (r:1 w:0) - // Proof: `PolkadotXcm::SupportedVersion` (`max_values`: None, `max_size`: None, mode: `Measured`) - // Storage: `PolkadotXcm::VersionDiscoveryQueue` (r:1 w:1) - // Proof: `PolkadotXcm::VersionDiscoveryQueue` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) - // Storage: `PolkadotXcm::SafeXcmVersion` (r:1 w:0) - // Proof: `PolkadotXcm::SafeXcmVersion` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) - // Storage: `ParachainSystem::HostConfiguration` (r:1 w:0) - // Proof: `ParachainSystem::HostConfiguration` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) - // Storage: `ParachainSystem::PendingUpwardMessages` (r:1 w:1) - // Proof: `ParachainSystem::PendingUpwardMessages` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) - pub fn transfer_reserve_asset() -> Weight { - // Proof Size summary in bytes: - // Measured: `223` - // Estimated: `6196` - // Minimum execution time: 75_319_000 picoseconds. - Weight::from_parts(77_356_000, 6196) - .saturating_add(T::DbWeight::get().reads(8)) - .saturating_add(T::DbWeight::get().writes(4)) - } - // Storage: `Benchmark::Override` (r:0 w:0) - // Proof: `Benchmark::Override` (`max_values`: None, `max_size`: None, mode: `Measured`) - pub fn reserve_asset_deposited() -> Weight { - // Proof Size summary in bytes: - // Measured: `0` - // Estimated: `0` - // Minimum execution time: 500_000_000_000 picoseconds. - Weight::from_parts(500_000_000_000, 0) - } - // Storage: `ParachainInfo::ParachainId` (r:1 w:0) - // Proof: `ParachainInfo::ParachainId` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`) - // Storage: `PolkadotXcm::SupportedVersion` (r:1 w:0) - // Proof: `PolkadotXcm::SupportedVersion` (`max_values`: None, `max_size`: None, mode: `Measured`) - // Storage: `PolkadotXcm::VersionDiscoveryQueue` (r:1 w:1) - // Proof: `PolkadotXcm::VersionDiscoveryQueue` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) - // Storage: `PolkadotXcm::SafeXcmVersion` (r:1 w:0) - // Proof: `PolkadotXcm::SafeXcmVersion` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) - // Storage: `ParachainSystem::HostConfiguration` (r:1 w:0) - // Proof: `ParachainSystem::HostConfiguration` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) - // Storage: `ParachainSystem::PendingUpwardMessages` (r:1 w:1) - // Proof: `ParachainSystem::PendingUpwardMessages` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) - pub fn initiate_reserve_withdraw() -> Weight { - // Proof Size summary in bytes: - // Measured: `70` - // Estimated: `3535` - // Minimum execution time: 29_392_000 picoseconds. - Weight::from_parts(29_943_000, 3535) - .saturating_add(T::DbWeight::get().reads(6)) - .saturating_add(T::DbWeight::get().writes(2)) - } - pub fn receive_teleported_asset() -> Weight { - // Proof Size summary in bytes: - // Measured: `0` - // Estimated: `0` - // Minimum execution time: 3_637_000 picoseconds. - Weight::from_parts(3_720_000, 0) - } - // Storage: `System::Account` (r:1 w:1) - // Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`) - pub fn deposit_asset() -> Weight { - // Proof Size summary in bytes: - // Measured: `52` - // Estimated: `3593` - // Minimum execution time: 25_045_000 picoseconds. - Weight::from_parts(25_546_000, 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: `ParachainInfo::ParachainId` (r:1 w:0) - // Proof: `ParachainInfo::ParachainId` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`) - // Storage: `PolkadotXcm::SupportedVersion` (r:1 w:0) - // Proof: `PolkadotXcm::SupportedVersion` (`max_values`: None, `max_size`: None, mode: `Measured`) - // Storage: `PolkadotXcm::VersionDiscoveryQueue` (r:1 w:1) - // Proof: `PolkadotXcm::VersionDiscoveryQueue` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) - // Storage: `PolkadotXcm::SafeXcmVersion` (r:1 w:0) - // Proof: `PolkadotXcm::SafeXcmVersion` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) - // Storage: `ParachainSystem::HostConfiguration` (r:1 w:0) - // Proof: `ParachainSystem::HostConfiguration` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) - // Storage: `ParachainSystem::PendingUpwardMessages` (r:1 w:1) - // Proof: `ParachainSystem::PendingUpwardMessages` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) - pub fn deposit_reserve_asset() -> Weight { - // Proof Size summary in bytes: - // Measured: `122` - // Estimated: `3593` - // Minimum execution time: 51_450_000 picoseconds. - Weight::from_parts(52_354_000, 3593) - .saturating_add(T::DbWeight::get().reads(7)) - .saturating_add(T::DbWeight::get().writes(3)) - } - // Storage: `ParachainInfo::ParachainId` (r:1 w:0) - // Proof: `ParachainInfo::ParachainId` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`) - // Storage: `PolkadotXcm::SupportedVersion` (r:1 w:0) - // Proof: `PolkadotXcm::SupportedVersion` (`max_values`: None, `max_size`: None, mode: `Measured`) - // Storage: `PolkadotXcm::VersionDiscoveryQueue` (r:1 w:1) - // Proof: `PolkadotXcm::VersionDiscoveryQueue` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) - // Storage: `PolkadotXcm::SafeXcmVersion` (r:1 w:0) - // Proof: `PolkadotXcm::SafeXcmVersion` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) - // Storage: `ParachainSystem::HostConfiguration` (r:1 w:0) - // Proof: `ParachainSystem::HostConfiguration` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) - // Storage: `ParachainSystem::PendingUpwardMessages` (r:1 w:1) - // Proof: `ParachainSystem::PendingUpwardMessages` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) - pub fn initiate_teleport() -> Weight { - // Proof Size summary in bytes: - // Measured: `70` - // Estimated: `3535` - // Minimum execution time: 29_711_000 picoseconds. - Weight::from_parts(30_759_000, 3535) - .saturating_add(T::DbWeight::get().reads(6)) - .saturating_add(T::DbWeight::get().writes(2)) - } -} diff --git a/cumulus/parachains/runtimes/bridge-hubs/bridge-hub-kusama/src/weights/xcm/pallet_xcm_benchmarks_generic.rs b/cumulus/parachains/runtimes/bridge-hubs/bridge-hub-kusama/src/weights/xcm/pallet_xcm_benchmarks_generic.rs deleted file mode 100644 index b1e8107b30bb..000000000000 --- a/cumulus/parachains/runtimes/bridge-hubs/bridge-hub-kusama/src/weights/xcm/pallet_xcm_benchmarks_generic.rs +++ /dev/null @@ -1,329 +0,0 @@ -// Copyright (C) Parity Technologies (UK) Ltd. -// This file is part of Cumulus. - -// Cumulus 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. - -// Cumulus 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 Cumulus. 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-07-31, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` -//! WORST CASE MAP SIZE: `1000000` -//! HOSTNAME: `runner-ynta1nyy-project-238-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz` -//! EXECUTION: , WASM-EXECUTION: Compiled, CHAIN: Some("bridge-hub-kusama-dev"), DB CACHE: 1024 - -// Executed Command: -// ./target/production/polkadot-parachain -// benchmark -// pallet -// --template=./templates/xcm-bench-template.hbs -// --chain=bridge-hub-kusama-dev -// --wasm-execution=compiled -// --pallet=pallet_xcm_benchmarks::generic -// --no-storage-info -// --no-median-slopes -// --no-min-squares -// --extrinsic=* -// --steps=50 -// --repeat=20 -// --json -// --header=./file_header.txt -// --output=./parachains/runtimes/bridge-hubs/bridge-hub-kusama/src/weights/xcm/pallet_xcm_benchmarks_generic.rs - -#![cfg_attr(rustfmt, rustfmt_skip)] -#![allow(unused_parens)] -#![allow(unused_imports)] - -use frame_support::{traits::Get, weights::Weight}; -use sp_std::marker::PhantomData; - -/// Weights for `pallet_xcm_benchmarks::generic`. -pub struct WeightInfo(PhantomData); -impl WeightInfo { - // Storage: `ParachainInfo::ParachainId` (r:1 w:0) - // Proof: `ParachainInfo::ParachainId` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`) - // Storage: `PolkadotXcm::SupportedVersion` (r:1 w:0) - // Proof: `PolkadotXcm::SupportedVersion` (`max_values`: None, `max_size`: None, mode: `Measured`) - // Storage: `PolkadotXcm::VersionDiscoveryQueue` (r:1 w:1) - // Proof: `PolkadotXcm::VersionDiscoveryQueue` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) - // Storage: `PolkadotXcm::SafeXcmVersion` (r:1 w:0) - // Proof: `PolkadotXcm::SafeXcmVersion` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) - // Storage: `ParachainSystem::HostConfiguration` (r:1 w:0) - // Proof: `ParachainSystem::HostConfiguration` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) - // Storage: `ParachainSystem::PendingUpwardMessages` (r:1 w:1) - // Proof: `ParachainSystem::PendingUpwardMessages` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) - pub fn report_holding() -> Weight { - // Proof Size summary in bytes: - // Measured: `70` - // Estimated: `3535` - // Minimum execution time: 33_141_000 picoseconds. - Weight::from_parts(34_380_000, 3535) - .saturating_add(T::DbWeight::get().reads(6)) - .saturating_add(T::DbWeight::get().writes(2)) - } - pub fn buy_execution() -> Weight { - // Proof Size summary in bytes: - // Measured: `0` - // Estimated: `0` - // Minimum execution time: 2_803_000 picoseconds. - Weight::from_parts(2_904_000, 0) - } - // Storage: `PolkadotXcm::Queries` (r:1 w:0) - // Proof: `PolkadotXcm::Queries` (`max_values`: None, `max_size`: None, mode: `Measured`) - pub fn query_response() -> Weight { - // Proof Size summary in bytes: - // Measured: `32` - // Estimated: `3497` - // Minimum execution time: 10_308_000 picoseconds. - Weight::from_parts(10_753_000, 3497) - .saturating_add(T::DbWeight::get().reads(1)) - } - pub fn transact() -> Weight { - // Proof Size summary in bytes: - // Measured: `0` - // Estimated: `0` - // Minimum execution time: 11_499_000 picoseconds. - Weight::from_parts(11_786_000, 0) - } - pub fn refund_surplus() -> Weight { - // Proof Size summary in bytes: - // Measured: `0` - // Estimated: `0` - // Minimum execution time: 3_102_000 picoseconds. - Weight::from_parts(3_161_000, 0) - } - pub fn set_error_handler() -> Weight { - // Proof Size summary in bytes: - // Measured: `0` - // Estimated: `0` - // Minimum execution time: 2_678_000 picoseconds. - Weight::from_parts(2_795_000, 0) - } - pub fn set_appendix() -> Weight { - // Proof Size summary in bytes: - // Measured: `0` - // Estimated: `0` - // Minimum execution time: 2_685_000 picoseconds. - Weight::from_parts(2_758_000, 0) - } - pub fn clear_error() -> Weight { - // Proof Size summary in bytes: - // Measured: `0` - // Estimated: `0` - // Minimum execution time: 2_590_000 picoseconds. - Weight::from_parts(2_754_000, 0) - } - pub fn descend_origin() -> Weight { - // Proof Size summary in bytes: - // Measured: `0` - // Estimated: `0` - // Minimum execution time: 3_297_000 picoseconds. - Weight::from_parts(3_419_000, 0) - } - pub fn clear_origin() -> Weight { - // Proof Size summary in bytes: - // Measured: `0` - // Estimated: `0` - // Minimum execution time: 2_606_000 picoseconds. - Weight::from_parts(2_717_000, 0) - } - // Storage: `ParachainInfo::ParachainId` (r:1 w:0) - // Proof: `ParachainInfo::ParachainId` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`) - // Storage: `PolkadotXcm::SupportedVersion` (r:1 w:0) - // Proof: `PolkadotXcm::SupportedVersion` (`max_values`: None, `max_size`: None, mode: `Measured`) - // Storage: `PolkadotXcm::VersionDiscoveryQueue` (r:1 w:1) - // Proof: `PolkadotXcm::VersionDiscoveryQueue` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) - // Storage: `PolkadotXcm::SafeXcmVersion` (r:1 w:0) - // Proof: `PolkadotXcm::SafeXcmVersion` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) - // Storage: `ParachainSystem::HostConfiguration` (r:1 w:0) - // Proof: `ParachainSystem::HostConfiguration` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) - // Storage: `ParachainSystem::PendingUpwardMessages` (r:1 w:1) - // Proof: `ParachainSystem::PendingUpwardMessages` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) - pub fn report_error() -> Weight { - // Proof Size summary in bytes: - // Measured: `70` - // Estimated: `3535` - // Minimum execution time: 26_242_000 picoseconds. - Weight::from_parts(29_220_000, 3535) - .saturating_add(T::DbWeight::get().reads(6)) - .saturating_add(T::DbWeight::get().writes(2)) - } - // Storage: `PolkadotXcm::AssetTraps` (r:1 w:1) - // Proof: `PolkadotXcm::AssetTraps` (`max_values`: None, `max_size`: None, mode: `Measured`) - pub fn claim_asset() -> Weight { - // Proof Size summary in bytes: - // Measured: `90` - // Estimated: `3555` - // Minimum execution time: 14_106_000 picoseconds. - Weight::from_parts(14_535_000, 3555) - .saturating_add(T::DbWeight::get().reads(1)) - .saturating_add(T::DbWeight::get().writes(1)) - } - pub fn trap() -> Weight { - // Proof Size summary in bytes: - // Measured: `0` - // Estimated: `0` - // Minimum execution time: 2_634_000 picoseconds. - Weight::from_parts(2_763_000, 0) - } - // Storage: `PolkadotXcm::VersionNotifyTargets` (r:1 w:1) - // Proof: `PolkadotXcm::VersionNotifyTargets` (`max_values`: None, `max_size`: None, mode: `Measured`) - // Storage: `PolkadotXcm::SupportedVersion` (r:1 w:0) - // Proof: `PolkadotXcm::SupportedVersion` (`max_values`: None, `max_size`: None, mode: `Measured`) - // Storage: `PolkadotXcm::VersionDiscoveryQueue` (r:1 w:1) - // Proof: `PolkadotXcm::VersionDiscoveryQueue` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) - // Storage: `PolkadotXcm::SafeXcmVersion` (r:1 w:0) - // Proof: `PolkadotXcm::SafeXcmVersion` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) - // Storage: `ParachainSystem::HostConfiguration` (r:1 w:0) - // Proof: `ParachainSystem::HostConfiguration` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) - // Storage: `ParachainSystem::PendingUpwardMessages` (r:1 w:1) - // Proof: `ParachainSystem::PendingUpwardMessages` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) - pub fn subscribe_version() -> Weight { - // Proof Size summary in bytes: - // Measured: `38` - // Estimated: `3503` - // Minimum execution time: 27_802_000 picoseconds. - Weight::from_parts(28_495_000, 3503) - .saturating_add(T::DbWeight::get().reads(6)) - .saturating_add(T::DbWeight::get().writes(3)) - } - // Storage: `PolkadotXcm::VersionNotifyTargets` (r:0 w:1) - // Proof: `PolkadotXcm::VersionNotifyTargets` (`max_values`: None, `max_size`: None, mode: `Measured`) - pub fn unsubscribe_version() -> Weight { - // Proof Size summary in bytes: - // Measured: `0` - // Estimated: `0` - // Minimum execution time: 4_683_000 picoseconds. - Weight::from_parts(4_907_000, 0) - .saturating_add(T::DbWeight::get().writes(1)) - } - pub fn burn_asset() -> Weight { - // Proof Size summary in bytes: - // Measured: `0` - // Estimated: `0` - // Minimum execution time: 3_941_000 picoseconds. - Weight::from_parts(4_080_000, 0) - } - pub fn expect_asset() -> Weight { - // Proof Size summary in bytes: - // Measured: `0` - // Estimated: `0` - // Minimum execution time: 2_775_000 picoseconds. - Weight::from_parts(2_908_000, 0) - } - pub fn expect_origin() -> Weight { - // Proof Size summary in bytes: - // Measured: `0` - // Estimated: `0` - // Minimum execution time: 2_743_000 picoseconds. - Weight::from_parts(2_863_000, 0) - } - pub fn expect_error() -> Weight { - // Proof Size summary in bytes: - // Measured: `0` - // Estimated: `0` - // Minimum execution time: 2_641_000 picoseconds. - Weight::from_parts(2_771_000, 0) - } - pub fn expect_transact_status() -> Weight { - // Proof Size summary in bytes: - // Measured: `0` - // Estimated: `0` - // Minimum execution time: 2_838_000 picoseconds. - Weight::from_parts(2_950_000, 0) - } - // Storage: `ParachainInfo::ParachainId` (r:1 w:0) - // Proof: `ParachainInfo::ParachainId` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`) - // Storage: `PolkadotXcm::SupportedVersion` (r:1 w:0) - // Proof: `PolkadotXcm::SupportedVersion` (`max_values`: None, `max_size`: None, mode: `Measured`) - // Storage: `PolkadotXcm::VersionDiscoveryQueue` (r:1 w:1) - // Proof: `PolkadotXcm::VersionDiscoveryQueue` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) - // Storage: `PolkadotXcm::SafeXcmVersion` (r:1 w:0) - // Proof: `PolkadotXcm::SafeXcmVersion` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) - // Storage: `ParachainSystem::HostConfiguration` (r:1 w:0) - // Proof: `ParachainSystem::HostConfiguration` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) - // Storage: `ParachainSystem::PendingUpwardMessages` (r:1 w:1) - // Proof: `ParachainSystem::PendingUpwardMessages` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) - pub fn query_pallet() -> Weight { - // Proof Size summary in bytes: - // Measured: `70` - // Estimated: `3535` - // Minimum execution time: 29_284_000 picoseconds. - Weight::from_parts(29_867_000, 3535) - .saturating_add(T::DbWeight::get().reads(6)) - .saturating_add(T::DbWeight::get().writes(2)) - } - pub fn expect_pallet() -> Weight { - // Proof Size summary in bytes: - // Measured: `0` - // Estimated: `0` - // Minimum execution time: 4_734_000 picoseconds. - Weight::from_parts(4_876_000, 0) - } - // Storage: `ParachainInfo::ParachainId` (r:1 w:0) - // Proof: `ParachainInfo::ParachainId` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`) - // Storage: `PolkadotXcm::SupportedVersion` (r:1 w:0) - // Proof: `PolkadotXcm::SupportedVersion` (`max_values`: None, `max_size`: None, mode: `Measured`) - // Storage: `PolkadotXcm::VersionDiscoveryQueue` (r:1 w:1) - // Proof: `PolkadotXcm::VersionDiscoveryQueue` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) - // Storage: `PolkadotXcm::SafeXcmVersion` (r:1 w:0) - // Proof: `PolkadotXcm::SafeXcmVersion` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) - // Storage: `ParachainSystem::HostConfiguration` (r:1 w:0) - // Proof: `ParachainSystem::HostConfiguration` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) - // Storage: `ParachainSystem::PendingUpwardMessages` (r:1 w:1) - // Proof: `ParachainSystem::PendingUpwardMessages` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) - pub fn report_transact_status() -> Weight { - // Proof Size summary in bytes: - // Measured: `70` - // Estimated: `3535` - // Minimum execution time: 26_154_000 picoseconds. - Weight::from_parts(26_851_000, 3535) - .saturating_add(T::DbWeight::get().reads(6)) - .saturating_add(T::DbWeight::get().writes(2)) - } - pub fn clear_transact_status() -> Weight { - // Proof Size summary in bytes: - // Measured: `0` - // Estimated: `0` - // Minimum execution time: 2_678_000 picoseconds. - Weight::from_parts(2_748_000, 0) - } - pub fn set_topic() -> Weight { - // Proof Size summary in bytes: - // Measured: `0` - // Estimated: `0` - // Minimum execution time: 2_585_000 picoseconds. - Weight::from_parts(2_697_000, 0) - } - pub fn clear_topic() -> Weight { - // Proof Size summary in bytes: - // Measured: `0` - // Estimated: `0` - // Minimum execution time: 2_576_000 picoseconds. - Weight::from_parts(2_701_000, 0) - } - pub fn set_fees_mode() -> Weight { - // Proof Size summary in bytes: - // Measured: `0` - // Estimated: `0` - // Minimum execution time: 2_597_000 picoseconds. - Weight::from_parts(2_735_000, 0) - } - pub fn unpaid_execution() -> Weight { - // Proof Size summary in bytes: - // Measured: `0` - // Estimated: `0` - // Minimum execution time: 2_744_000 picoseconds. - Weight::from_parts(2_809_000, 0) - } -} diff --git a/cumulus/parachains/runtimes/bridge-hubs/bridge-hub-kusama/src/xcm_config.rs b/cumulus/parachains/runtimes/bridge-hubs/bridge-hub-kusama/src/xcm_config.rs deleted file mode 100644 index 696462be9c45..000000000000 --- a/cumulus/parachains/runtimes/bridge-hubs/bridge-hub-kusama/src/xcm_config.rs +++ /dev/null @@ -1,272 +0,0 @@ -// Copyright (C) Parity Technologies (UK) Ltd. -// This file is part of Cumulus. - -// Cumulus 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. - -// Cumulus 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 Cumulus. If not, see . - -use super::{ - AccountId, AllPalletsWithSystem, Balances, ParachainInfo, ParachainSystem, PolkadotXcm, - Runtime, RuntimeCall, RuntimeEvent, RuntimeOrigin, WeightToFee, XcmpQueue, -}; -use frame_support::{ - match_types, parameter_types, - traits::{ConstU32, Contains, Everything, Nothing}, -}; -use frame_system::EnsureRoot; -use pallet_xcm::XcmPassthrough; -use parachains_common::{impls::ToStakingPot, xcm_config::ConcreteNativeAssetFrom}; -use polkadot_parachain_primitives::primitives::Sibling; -use xcm::latest::prelude::*; -use xcm_builder::{ - AccountId32Aliases, AllowExplicitUnpaidExecutionFrom, AllowKnownQueryResponses, - AllowSubscriptionsFrom, AllowTopLevelPaidExecutionFrom, CurrencyAdapter, - DenyReserveTransferToRelayChain, DenyThenTry, EnsureXcmOrigin, IsConcrete, ParentAsSuperuser, - ParentIsPreset, RelayChainAsNative, SiblingParachainAsNative, SiblingParachainConvertsVia, - SignedAccountId32AsNative, SignedToAccountId32, SovereignSignedViaLocation, TakeWeightCredit, - TrailingSetTopicAsId, UsingComponents, WeightInfoBounds, WithComputedOrigin, WithUniqueTopic, -}; -use xcm_executor::{traits::WithOriginFilter, XcmExecutor}; - -parameter_types! { - pub const KsmRelayLocation: MultiLocation = MultiLocation::parent(); - pub const RelayNetwork: Option = Some(NetworkId::Kusama); - pub RelayChainOrigin: RuntimeOrigin = cumulus_pallet_xcm::Origin::Relay.into(); - pub UniversalLocation: InteriorMultiLocation = - X2(GlobalConsensus(RelayNetwork::get().unwrap()), Parachain(ParachainInfo::parachain_id().into())); - pub const MaxInstructions: u32 = 100; - pub const MaxAssetsIntoHolding: u32 = 64; - pub const GovernanceLocation: MultiLocation = MultiLocation::parent(); - pub const FellowshipLocation: MultiLocation = MultiLocation::parent(); -} - -/// Type for specifying how a `MultiLocation` can be converted into an `AccountId`. This is used -/// when determining ownership of accounts for asset transacting and when attempting to use XCM -/// `Transact` in order to determine the dispatch Origin. -pub type LocationToAccountId = ( - // The parent (Relay-chain) origin converts to the parent `AccountId`. - ParentIsPreset, - // Sibling parachain origins convert to AccountId via the `ParaId::into`. - SiblingParachainConvertsVia, - // Straight up local `AccountId32` origins just alias directly to `AccountId`. - AccountId32Aliases, -); - -/// Means for transacting the native currency on this chain. -pub type CurrencyTransactor = CurrencyAdapter< - // Use this currency: - Balances, - // Use this currency when it is a fungible asset matching the given location or name: - IsConcrete, - // Do a simple punn to convert an AccountId32 MultiLocation into a native chain account ID: - LocationToAccountId, - // Our chain's account ID type (we can't get away without mentioning it explicitly): - AccountId, - // We don't track any teleports of `Balances`. - (), ->; - -/// This is the type we use to convert an (incoming) XCM origin into a local `Origin` instance, -/// ready for dispatching a transaction with Xcm's `Transact`. There is an `OriginKind` which can -/// biases the kind of local `Origin` it will become. -pub type XcmOriginToTransactDispatchOrigin = ( - // Sovereign account converter; this attempts to derive an `AccountId` from the origin location - // using `LocationToAccountId` and then turn that into the usual `Signed` origin. Useful for - // foreign chains who want to have a local sovereign account on this chain which they control. - SovereignSignedViaLocation, - // Native converter for Relay-chain (Parent) location; will converts to a `Relay` origin when - // recognized. - RelayChainAsNative, - // Native converter for sibling Parachains; will convert to a `SiblingPara` origin when - // recognized. - SiblingParachainAsNative, - // Superuser converter for the Relay-chain (Parent) location. This will allow it to issue a - // transaction from the Root origin. - ParentAsSuperuser, - // Native signed account converter; this just converts an `AccountId32` origin into a normal - // `RuntimeOrigin::Signed` origin of the same 32-byte value. - SignedAccountId32AsNative, - // Xcm origins can be represented natively under the Xcm pallet's Xcm origin. - XcmPassthrough, -); - -match_types! { - pub type ParentOrParentsPlurality: impl Contains = { - MultiLocation { parents: 1, interior: Here } | - MultiLocation { parents: 1, interior: X1(Plurality { .. }) } - }; - pub type ParentOrSiblings: impl Contains = { - MultiLocation { parents: 1, interior: Here } | - MultiLocation { parents: 1, interior: X1(_) } - }; -} -/// A call filter for the XCM Transact instruction. This is a temporary measure until we properly -/// account for proof size weights. -/// -/// Calls that are allowed through this filter must: -/// 1. Have a fixed weight; -/// 2. Cannot lead to another call being made; -/// 3. Have a defined proof size weight, e.g. no unbounded vecs in call parameters. -pub struct SafeCallFilter; -impl Contains for SafeCallFilter { - fn contains(call: &RuntimeCall) -> bool { - #[cfg(feature = "runtime-benchmarks")] - { - if matches!(call, RuntimeCall::System(frame_system::Call::remark_with_event { .. })) { - return true - } - } - - matches!( - call, - RuntimeCall::PolkadotXcm(pallet_xcm::Call::force_xcm_version { .. }) | - RuntimeCall::System( - frame_system::Call::set_heap_pages { .. } | - frame_system::Call::set_code { .. } | - frame_system::Call::set_code_without_checks { .. } | - frame_system::Call::kill_prefix { .. }, - ) | RuntimeCall::ParachainSystem(..) | - RuntimeCall::Timestamp(..) | - RuntimeCall::Balances(..) | - RuntimeCall::CollatorSelection( - pallet_collator_selection::Call::set_desired_candidates { .. } | - pallet_collator_selection::Call::set_candidacy_bond { .. } | - pallet_collator_selection::Call::register_as_candidate { .. } | - pallet_collator_selection::Call::leave_intent { .. } | - pallet_collator_selection::Call::set_invulnerables { .. } | - pallet_collator_selection::Call::add_invulnerable { .. } | - pallet_collator_selection::Call::remove_invulnerable { .. }, - ) | RuntimeCall::Session(pallet_session::Call::purge_keys { .. }) | - RuntimeCall::XcmpQueue(..) | - RuntimeCall::DmpQueue(..) - ) - } -} - -pub type Barrier = TrailingSetTopicAsId< - DenyThenTry< - DenyReserveTransferToRelayChain, - ( - // Allow local users to buy weight credit. - TakeWeightCredit, - // Expected responses are OK. - AllowKnownQueryResponses, - WithComputedOrigin< - ( - // If the message is one that immediately attemps to pay for execution, then - // allow it. - AllowTopLevelPaidExecutionFrom, - // Parent and its pluralities (i.e. governance bodies) get free execution. - AllowExplicitUnpaidExecutionFrom, - // Subscriptions for version tracking are OK. - AllowSubscriptionsFrom, - ), - UniversalLocation, - ConstU32<8>, - >, - ), - >, ->; - -pub struct XcmConfig; -impl xcm_executor::Config for XcmConfig { - type RuntimeCall = RuntimeCall; - type XcmSender = XcmRouter; - type AssetTransactor = CurrencyTransactor; - type OriginConverter = XcmOriginToTransactDispatchOrigin; - // BridgeHub does not recognize a reserve location for any asset. Users must teleport KSM - // where allowed (e.g. with the Relay Chain). - type IsReserve = (); - /// Only allow teleportation of KSM. - type IsTeleporter = ConcreteNativeAssetFrom; - type UniversalLocation = UniversalLocation; - type Barrier = Barrier; - type Weigher = WeightInfoBounds< - crate::weights::xcm::BridgeHubKusamaXcmWeight, - RuntimeCall, - MaxInstructions, - >; - type Trader = - UsingComponents>; - type ResponseHandler = PolkadotXcm; - type AssetTrap = PolkadotXcm; - type AssetClaims = PolkadotXcm; - type SubscriptionService = PolkadotXcm; - type PalletInstancesInfo = AllPalletsWithSystem; - type MaxAssetsIntoHolding = MaxAssetsIntoHolding; - type AssetLocker = (); - type AssetExchanger = (); - type FeeManager = (); - type MessageExporter = (); - type UniversalAliases = Nothing; - type CallDispatcher = WithOriginFilter; - type SafeCallFilter = SafeCallFilter; - type Aliasers = Nothing; -} - -/// Converts a local signed origin into an XCM multilocation. -/// Forms the basis for local origins sending/executing XCMs. -pub type LocalOriginToLocation = SignedToAccountId32; - -/// The means for routing XCM messages which are not for local execution into the right message -/// queues. -pub type XcmRouter = WithUniqueTopic<( - // Two routers - use UMP to communicate with the relay chain: - cumulus_primitives_utility::ParentAsUmp, - // ..and XCMP to communicate with the sibling chains. - XcmpQueue, -)>; - -#[cfg(feature = "runtime-benchmarks")] -parameter_types! { - pub ReachableDest: Option = Some(Parent.into()); -} - -impl pallet_xcm::Config for Runtime { - type RuntimeEvent = RuntimeEvent; - // We want to disallow users sending (arbitrary) XCMs from this chain. - type SendXcmOrigin = EnsureXcmOrigin; - type XcmRouter = XcmRouter; - // We support local origins dispatching XCM executions in principle... - type ExecuteXcmOrigin = EnsureXcmOrigin; - // ... but disallow generic XCM execution. As a result only teleports are allowed. - type XcmExecuteFilter = Nothing; - type XcmExecutor = XcmExecutor; - type XcmTeleportFilter = Everything; - type XcmReserveTransferFilter = Nothing; // This parachain is not meant as a reserve location. - type Weigher = WeightInfoBounds< - crate::weights::xcm::BridgeHubKusamaXcmWeight, - RuntimeCall, - MaxInstructions, - >; - type UniversalLocation = UniversalLocation; - type RuntimeOrigin = RuntimeOrigin; - type RuntimeCall = RuntimeCall; - const VERSION_DISCOVERY_QUEUE_SIZE: u32 = 100; - type AdvertisedXcmVersion = pallet_xcm::CurrentXcmVersion; - type Currency = Balances; - type CurrencyMatcher = (); - type TrustedLockers = (); - type SovereignAccountOf = LocationToAccountId; - type MaxLockers = ConstU32<8>; - type WeightInfo = crate::weights::pallet_xcm::WeightInfo; - #[cfg(feature = "runtime-benchmarks")] - type ReachableDest = ReachableDest; - type AdminOrigin = EnsureRoot; - type MaxRemoteLockConsumers = ConstU32<0>; - type RemoteLockConsumerIdentifier = (); -} - -impl cumulus_pallet_xcm::Config for Runtime { - type RuntimeEvent = RuntimeEvent; - type XcmExecutor = XcmExecutor; -} diff --git a/cumulus/parachains/runtimes/bridge-hubs/bridge-hub-kusama/tests/tests.rs b/cumulus/parachains/runtimes/bridge-hubs/bridge-hub-kusama/tests/tests.rs deleted file mode 100644 index 893524e12f66..000000000000 --- a/cumulus/parachains/runtimes/bridge-hubs/bridge-hub-kusama/tests/tests.rs +++ /dev/null @@ -1,57 +0,0 @@ -// Copyright (C) Parity Technologies (UK) Ltd. -// This file is part of Cumulus. - -// Cumulus 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. - -// Cumulus 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 Cumulus. If not, see . - -pub use bridge_hub_kusama_runtime::{ - xcm_config::XcmConfig, AllPalletsWithoutSystem, Balances, ExistentialDeposit, ParachainSystem, - PolkadotXcm, Runtime, RuntimeEvent, SessionKeys, -}; -use codec::Decode; -use frame_support::parameter_types; -use parachains_common::{kusama::fee::WeightToFee, AccountId, AuraId}; - -const ALICE: [u8; 32] = [1u8; 32]; - -parameter_types! { - pub CheckingAccount: AccountId = PolkadotXcm::check_account(); -} - -bridge_hub_test_utils::test_cases::include_teleports_for_native_asset_works!( - Runtime, - AllPalletsWithoutSystem, - XcmConfig, - CheckingAccount, - WeightToFee, - ParachainSystem, - bridge_hub_test_utils::CollatorSessionKeys::new( - AccountId::from(ALICE), - AccountId::from(ALICE), - SessionKeys { aura: AuraId::from(sp_core::sr25519::Public::from_raw(ALICE)) } - ), - ExistentialDeposit::get(), - Box::new(|runtime_event_encoded: Vec| { - match RuntimeEvent::decode(&mut &runtime_event_encoded[..]) { - Ok(RuntimeEvent::PolkadotXcm(event)) => Some(event), - _ => None, - } - }), - Box::new(|runtime_event_encoded: Vec| { - match RuntimeEvent::decode(&mut &runtime_event_encoded[..]) { - Ok(RuntimeEvent::XcmpQueue(event)) => Some(event), - _ => None, - } - }), - 1002 -); diff --git a/cumulus/parachains/runtimes/bridge-hubs/bridge-hub-polkadot/Cargo.toml b/cumulus/parachains/runtimes/bridge-hubs/bridge-hub-polkadot/Cargo.toml deleted file mode 100644 index eb0c18f5b460..000000000000 --- a/cumulus/parachains/runtimes/bridge-hubs/bridge-hub-polkadot/Cargo.toml +++ /dev/null @@ -1,185 +0,0 @@ -[package] -name = "bridge-hub-polkadot-runtime" -version = "0.1.0" -authors.workspace = true -edition.workspace = true -description = "Polkadot's BridgeHub parachain runtime" - -[build-dependencies] -substrate-wasm-builder = { path = "../../../../../substrate/utils/wasm-builder", optional = true } - -[dependencies] -codec = { package = "parity-scale-codec", version = "3.0.0", default-features = false, features = ["derive"] } -hex-literal = { version = "0.4.1" } -log = { version = "0.4.20", default-features = false } -scale-info = { version = "2.9.0", default-features = false, features = ["derive"] } -serde = { version = "1.0.188", optional = true, features = ["derive"] } -smallvec = "1.11.0" - -# Substrate -frame-benchmarking = { path = "../../../../../substrate/frame/benchmarking", default-features = false, optional = true} -frame-executive = { path = "../../../../../substrate/frame/executive", default-features = false} -frame-support = { path = "../../../../../substrate/frame/support", default-features = false} -frame-system = { path = "../../../../../substrate/frame/system", default-features = false} -frame-system-benchmarking = { path = "../../../../../substrate/frame/system/benchmarking", default-features = false, optional = true} -frame-system-rpc-runtime-api = { path = "../../../../../substrate/frame/system/rpc/runtime-api", default-features = false} -frame-try-runtime = { path = "../../../../../substrate/frame/try-runtime", default-features = false, optional = true} -pallet-aura = { path = "../../../../../substrate/frame/aura", default-features = false} -pallet-authorship = { path = "../../../../../substrate/frame/authorship", default-features = false} -pallet-balances = { path = "../../../../../substrate/frame/balances", default-features = false} -pallet-multisig = { path = "../../../../../substrate/frame/multisig", default-features = false} -pallet-session = { path = "../../../../../substrate/frame/session", default-features = false} -pallet-timestamp = { path = "../../../../../substrate/frame/timestamp", default-features = false} -pallet-transaction-payment = { path = "../../../../../substrate/frame/transaction-payment", default-features = false} -pallet-transaction-payment-rpc-runtime-api = { path = "../../../../../substrate/frame/transaction-payment/rpc/runtime-api", default-features = false} -pallet-utility = { path = "../../../../../substrate/frame/utility", default-features = false} -sp-api = { path = "../../../../../substrate/primitives/api", default-features = false} -sp-block-builder = { path = "../../../../../substrate/primitives/block-builder", default-features = false} -sp-consensus-aura = { path = "../../../../../substrate/primitives/consensus/aura", default-features = false} -sp-core = { path = "../../../../../substrate/primitives/core", default-features = false} -sp-genesis-builder = { path = "../../../../../substrate/primitives/genesis-builder", default-features = false } -sp-inherents = { path = "../../../../../substrate/primitives/inherents", default-features = false} -sp-io = { path = "../../../../../substrate/primitives/io", default-features = false} -sp-offchain = { path = "../../../../../substrate/primitives/offchain", default-features = false} -sp-runtime = { path = "../../../../../substrate/primitives/runtime", default-features = false} -sp-session = { path = "../../../../../substrate/primitives/session", default-features = false} -sp-std = { path = "../../../../../substrate/primitives/std", default-features = false} -sp-storage = { path = "../../../../../substrate/primitives/storage", default-features = false} -sp-transaction-pool = { path = "../../../../../substrate/primitives/transaction-pool", default-features = false} -sp-version = { path = "../../../../../substrate/primitives/version", default-features = false} - -# Polkadot -pallet-xcm = { path = "../../../../../polkadot/xcm/pallet-xcm", default-features = false} -pallet-xcm-benchmarks = { path = "../../../../../polkadot/xcm/pallet-xcm-benchmarks", default-features = false, optional = true } -polkadot-core-primitives = { path = "../../../../../polkadot/core-primitives", default-features = false} -polkadot-parachain-primitives = { path = "../../../../../polkadot/parachain", default-features = false} -polkadot-runtime-common = { path = "../../../../../polkadot/runtime/common", default-features = false} -xcm = { package = "staging-xcm", path = "../../../../../polkadot/xcm", default-features = false} -xcm-builder = { package = "staging-xcm-builder", path = "../../../../../polkadot/xcm/xcm-builder", default-features = false} -xcm-executor = { package = "staging-xcm-executor", path = "../../../../../polkadot/xcm/xcm-executor", default-features = false} - -# Cumulus -cumulus-pallet-aura-ext = { path = "../../../../pallets/aura-ext", default-features = false } -cumulus-pallet-dmp-queue = { path = "../../../../pallets/dmp-queue", default-features = false } -cumulus-pallet-parachain-system = { path = "../../../../pallets/parachain-system", default-features = false, features = ["parameterized-consensus-hook",] } -cumulus-pallet-session-benchmarking = { path = "../../../../pallets/session-benchmarking", default-features = false} -cumulus-pallet-xcm = { path = "../../../../pallets/xcm", default-features = false } -cumulus-pallet-xcmp-queue = { path = "../../../../pallets/xcmp-queue", default-features = false } -cumulus-primitives-core = { path = "../../../../primitives/core", default-features = false } -cumulus-primitives-utility = { path = "../../../../primitives/utility", default-features = false } -pallet-collator-selection = { path = "../../../../pallets/collator-selection", default-features = false } -parachain-info = { path = "../../../pallets/parachain-info", default-features = false } -parachains-common = { path = "../../../common", default-features = false } - -[dev-dependencies] -bridge-hub-test-utils = { path = "../test-utils" } - -[features] -default = [ "std" ] -std = [ - "codec/std", - "cumulus-pallet-aura-ext/std", - "cumulus-pallet-dmp-queue/std", - "cumulus-pallet-parachain-system/std", - "cumulus-pallet-session-benchmarking/std", - "cumulus-pallet-xcm/std", - "cumulus-pallet-xcmp-queue/std", - "cumulus-primitives-core/std", - "cumulus-primitives-utility/std", - "frame-benchmarking?/std", - "frame-executive/std", - "frame-support/std", - "frame-system-benchmarking?/std", - "frame-system-rpc-runtime-api/std", - "frame-system/std", - "frame-try-runtime?/std", - "log/std", - "pallet-aura/std", - "pallet-authorship/std", - "pallet-balances/std", - "pallet-collator-selection/std", - "pallet-multisig/std", - "pallet-session/std", - "pallet-timestamp/std", - "pallet-transaction-payment-rpc-runtime-api/std", - "pallet-transaction-payment/std", - "pallet-utility/std", - "pallet-xcm-benchmarks?/std", - "pallet-xcm/std", - "parachain-info/std", - "parachains-common/std", - "polkadot-core-primitives/std", - "polkadot-parachain-primitives/std", - "polkadot-runtime-common/std", - "scale-info/std", - "serde", - "sp-api/std", - "sp-block-builder/std", - "sp-consensus-aura/std", - "sp-core/std", - "sp-genesis-builder/std", - "sp-inherents/std", - "sp-io/std", - "sp-offchain/std", - "sp-runtime/std", - "sp-session/std", - "sp-std/std", - "sp-storage/std", - "sp-transaction-pool/std", - "sp-version/std", - "substrate-wasm-builder", - "xcm-builder/std", - "xcm-executor/std", - "xcm/std", -] - -runtime-benchmarks = [ - "cumulus-pallet-parachain-system/runtime-benchmarks", - "cumulus-pallet-session-benchmarking/runtime-benchmarks", - "cumulus-pallet-xcmp-queue/runtime-benchmarks", - "cumulus-primitives-utility/runtime-benchmarks", - "frame-benchmarking/runtime-benchmarks", - "frame-support/runtime-benchmarks", - "frame-system-benchmarking/runtime-benchmarks", - "frame-system/runtime-benchmarks", - "pallet-balances/runtime-benchmarks", - "pallet-collator-selection/runtime-benchmarks", - "pallet-multisig/runtime-benchmarks", - "pallet-timestamp/runtime-benchmarks", - "pallet-utility/runtime-benchmarks", - "pallet-xcm-benchmarks/runtime-benchmarks", - "pallet-xcm/runtime-benchmarks", - "parachains-common/runtime-benchmarks", - "polkadot-parachain-primitives/runtime-benchmarks", - "polkadot-runtime-common/runtime-benchmarks", - "sp-runtime/runtime-benchmarks", - "xcm-builder/runtime-benchmarks", - "xcm-executor/runtime-benchmarks", -] - -try-runtime = [ - "cumulus-pallet-aura-ext/try-runtime", - "cumulus-pallet-dmp-queue/try-runtime", - "cumulus-pallet-parachain-system/try-runtime", - "cumulus-pallet-xcm/try-runtime", - "cumulus-pallet-xcmp-queue/try-runtime", - "frame-executive/try-runtime", - "frame-support/try-runtime", - "frame-system/try-runtime", - "frame-try-runtime/try-runtime", - "pallet-aura/try-runtime", - "pallet-authorship/try-runtime", - "pallet-balances/try-runtime", - "pallet-collator-selection/try-runtime", - "pallet-multisig/try-runtime", - "pallet-session/try-runtime", - "pallet-timestamp/try-runtime", - "pallet-transaction-payment/try-runtime", - "pallet-utility/try-runtime", - "pallet-xcm/try-runtime", - "parachain-info/try-runtime", - "polkadot-runtime-common/try-runtime", - "sp-runtime/try-runtime", -] - -experimental = [ "pallet-aura/experimental" ] diff --git a/cumulus/parachains/runtimes/bridge-hubs/bridge-hub-polkadot/build.rs b/cumulus/parachains/runtimes/bridge-hubs/bridge-hub-polkadot/build.rs deleted file mode 100644 index 60f8a125129f..000000000000 --- a/cumulus/parachains/runtimes/bridge-hubs/bridge-hub-polkadot/build.rs +++ /dev/null @@ -1,26 +0,0 @@ -// 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. - -#[cfg(feature = "std")] -fn main() { - substrate_wasm_builder::WasmBuilder::new() - .with_current_project() - .export_heap_base() - .import_memory() - .build() -} - -#[cfg(not(feature = "std"))] -fn main() {} diff --git a/cumulus/parachains/runtimes/bridge-hubs/bridge-hub-polkadot/src/lib.rs b/cumulus/parachains/runtimes/bridge-hubs/bridge-hub-polkadot/src/lib.rs deleted file mode 100644 index 928b9d091ec5..000000000000 --- a/cumulus/parachains/runtimes/bridge-hubs/bridge-hub-polkadot/src/lib.rs +++ /dev/null @@ -1,798 +0,0 @@ -// Copyright (C) Parity Technologies (UK) Ltd. -// This file is part of Cumulus. - -// Cumulus 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. - -// Cumulus 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 Cumulus. If not, see . - -#![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"] - -// Make the WASM binary available. -#[cfg(feature = "std")] -include!(concat!(env!("OUT_DIR"), "/wasm_binary.rs")); - -mod weights; -pub mod xcm_config; - -use cumulus_pallet_parachain_system::RelayNumberStrictlyIncreases; -use sp_api::impl_runtime_apis; -use sp_core::{crypto::KeyTypeId, OpaqueMetadata}; -use sp_runtime::{ - create_runtime_str, generic, impl_opaque_keys, - traits::{AccountIdLookup, BlakeTwo256, Block as BlockT}, - transaction_validity::{TransactionSource, TransactionValidity}, - ApplyExtrinsicResult, -}; - -use sp_std::prelude::*; -#[cfg(feature = "std")] -use sp_version::NativeVersion; -use sp_version::RuntimeVersion; - -use frame_support::{ - construct_runtime, - dispatch::DispatchClass, - genesis_builder_helper::{build_config, create_default_config}, - parameter_types, - traits::{ConstBool, ConstU32, ConstU64, ConstU8, EitherOfDiverse, Everything}, - weights::{ConstantMultiplier, Weight}, - PalletId, -}; -use frame_system::{ - limits::{BlockLength, BlockWeights}, - EnsureRoot, -}; -use pallet_xcm::{EnsureXcm, IsVoiceOfBody}; -pub use sp_consensus_aura::sr25519::AuthorityId as AuraId; -pub use sp_runtime::{MultiAddress, Perbill, Permill}; -use xcm_config::{ - FellowshipLocation, GovernanceLocation, XcmConfig, XcmOriginToTransactDispatchOrigin, -}; - -#[cfg(any(feature = "std", test))] -pub use sp_runtime::BuildStorage; - -// Polkadot imports -use polkadot_runtime_common::{BlockHashCount, SlowAdjustingFeeUpdate}; - -use weights::{BlockExecutionWeight, ExtrinsicBaseWeight, RocksDbWeight}; - -use parachains_common::{ - impls::DealWithFees, - polkadot::{consensus::*, currency::*, fee::WeightToFee}, - AccountId, Balance, BlockNumber, Hash, Header, Nonce, Signature, AVERAGE_ON_INITIALIZE_RATIO, - HOURS, MAXIMUM_BLOCK_WEIGHT, NORMAL_DISPATCH_RATIO, SLOT_DURATION, -}; -// XCM Imports -use xcm::latest::prelude::BodyId; -use xcm_executor::XcmExecutor; - -/// The address format for describing accounts. -pub type Address = MultiAddress; - -/// Block type as expected by this runtime. -pub type Block = generic::Block; - -/// A Block signed with a Justification -pub type SignedBlock = generic::SignedBlock; - -/// BlockId type as expected by this runtime. -pub type BlockId = generic::BlockId; - -/// The SignedExtension to the basic transaction logic. -pub type SignedExtra = ( - frame_system::CheckNonZeroSender, - frame_system::CheckSpecVersion, - frame_system::CheckTxVersion, - frame_system::CheckGenesis, - frame_system::CheckEra, - frame_system::CheckNonce, - frame_system::CheckWeight, - pallet_transaction_payment::ChargeTransactionPayment, -); - -/// Unchecked extrinsic type as expected by this runtime. -pub type UncheckedExtrinsic = - generic::UncheckedExtrinsic; - -/// Migrations to apply on runtime upgrade. -pub type Migrations = (pallet_collator_selection::migration::v1::MigrateToV1,); - -/// Executive: handles dispatch to the various modules. -pub type Executive = frame_executive::Executive< - Runtime, - Block, - frame_system::ChainContext, - Runtime, - AllPalletsWithSystem, - Migrations, ->; - -impl_opaque_keys! { - pub struct SessionKeys { - pub aura: Aura, - } -} - -#[sp_version::runtime_version] -pub const VERSION: RuntimeVersion = RuntimeVersion { - spec_name: create_runtime_str!("bridge-hub-polkadot"), - impl_name: create_runtime_str!("bridge-hub-polkadot"), - authoring_version: 1, - spec_version: 10000, - impl_version: 0, - apis: RUNTIME_API_VERSIONS, - transaction_version: 2, - state_version: 1, -}; - -/// The version information used to identify this runtime when compiled natively. -#[cfg(feature = "std")] -pub fn native_version() -> NativeVersion { - NativeVersion { runtime_version: VERSION, can_author_with: Default::default() } -} - -parameter_types! { - pub const Version: RuntimeVersion = VERSION; - pub RuntimeBlockLength: BlockLength = - BlockLength::max_with_normal_ratio(5 * 1024 * 1024, NORMAL_DISPATCH_RATIO); - pub RuntimeBlockWeights: BlockWeights = BlockWeights::builder() - .base_block(BlockExecutionWeight::get()) - .for_class(DispatchClass::all(), |weights| { - weights.base_extrinsic = ExtrinsicBaseWeight::get(); - }) - .for_class(DispatchClass::Normal, |weights| { - weights.max_total = Some(NORMAL_DISPATCH_RATIO * MAXIMUM_BLOCK_WEIGHT); - }) - .for_class(DispatchClass::Operational, |weights| { - weights.max_total = Some(MAXIMUM_BLOCK_WEIGHT); - // Operational transactions have some extra reserved space, so that they - // are included even if block reached `MAXIMUM_BLOCK_WEIGHT`. - weights.reserved = Some( - MAXIMUM_BLOCK_WEIGHT - NORMAL_DISPATCH_RATIO * MAXIMUM_BLOCK_WEIGHT - ); - }) - .avg_block_initialization(AVERAGE_ON_INITIALIZE_RATIO) - .build_or_panic(); - pub const SS58Prefix: u8 = 0; -} - -// Configure FRAME pallets to include in runtime. - -impl frame_system::Config for Runtime { - /// The identifier used to distinguish between accounts. - type AccountId = AccountId; - /// The aggregated dispatch type that is available for extrinsics. - type RuntimeCall = RuntimeCall; - /// The lookup mechanism to get account ID from whatever is passed in dispatchers. - type Lookup = AccountIdLookup; - /// The index type for storing how many extrinsics an account has signed. - type Nonce = Nonce; - /// The type for hashing blocks and tries. - type Hash = Hash; - /// The hashing algorithm used. - type Hashing = BlakeTwo256; - /// The block type. - type Block = Block; - /// The ubiquitous event type. - type RuntimeEvent = RuntimeEvent; - /// The ubiquitous origin type. - type RuntimeOrigin = RuntimeOrigin; - /// Maximum number of block number to block hash mappings to keep (oldest pruned first). - type BlockHashCount = BlockHashCount; - /// Runtime version. - type Version = Version; - /// Converts a module to an index of this module in the runtime. - type PalletInfo = PalletInfo; - /// The data to be stored in an account. - type AccountData = pallet_balances::AccountData; - /// What to do if a new account is created. - type OnNewAccount = (); - /// What to do if an account is fully reaped from the system. - type OnKilledAccount = (); - /// The weight of database operations that the runtime can invoke. - type DbWeight = RocksDbWeight; - /// The basic call filter to use in dispatchable. - type BaseCallFilter = Everything; - /// Weight information for the extrinsics of this pallet. - type SystemWeightInfo = weights::frame_system::WeightInfo; - /// Block & extrinsics weights: base values and limits. - type BlockWeights = RuntimeBlockWeights; - /// The maximum length of a block (in bytes). - type BlockLength = RuntimeBlockLength; - type SS58Prefix = SS58Prefix; - /// The action to take on a Runtime Upgrade - type OnSetCode = cumulus_pallet_parachain_system::ParachainSetCode; - type MaxConsumers = ConstU32<16>; -} - -impl pallet_timestamp::Config for Runtime { - /// A timestamp: milliseconds since the unix epoch. - type Moment = u64; - type OnTimestampSet = Aura; - type MinimumPeriod = ConstU64<{ SLOT_DURATION / 2 }>; - type WeightInfo = weights::pallet_timestamp::WeightInfo; -} - -impl pallet_authorship::Config for Runtime { - type FindAuthor = pallet_session::FindAccountFromAuthorIndex; - type EventHandler = (CollatorSelection,); -} - -parameter_types! { - pub const ExistentialDeposit: Balance = EXISTENTIAL_DEPOSIT; -} - -impl pallet_balances::Config for Runtime { - /// The type for recording an account's balance. - type Balance = Balance; - type DustRemoval = (); - /// The ubiquitous event type. - type RuntimeEvent = RuntimeEvent; - type ExistentialDeposit = ExistentialDeposit; - type AccountStore = System; - type WeightInfo = weights::pallet_balances::WeightInfo; - type MaxLocks = ConstU32<50>; - type MaxReserves = ConstU32<50>; - type ReserveIdentifier = [u8; 8]; - type RuntimeHoldReason = RuntimeHoldReason; - type FreezeIdentifier = (); - type MaxHolds = ConstU32<0>; - type MaxFreezes = ConstU32<0>; -} - -parameter_types! { - /// Relay Chain `TransactionByteFee` / 10 - pub const TransactionByteFee: Balance = MILLICENTS; -} - -impl pallet_transaction_payment::Config for Runtime { - type RuntimeEvent = RuntimeEvent; - type OnChargeTransaction = - pallet_transaction_payment::CurrencyAdapter>; - type OperationalFeeMultiplier = ConstU8<5>; - type WeightToFee = WeightToFee; - type LengthToFee = ConstantMultiplier; - type FeeMultiplierUpdate = SlowAdjustingFeeUpdate; -} - -parameter_types! { - pub const ReservedXcmpWeight: Weight = MAXIMUM_BLOCK_WEIGHT.saturating_div(4); - pub const ReservedDmpWeight: Weight = MAXIMUM_BLOCK_WEIGHT.saturating_div(4); -} - -impl cumulus_pallet_parachain_system::Config for Runtime { - type RuntimeEvent = RuntimeEvent; - type OnSystemEvent = (); - type SelfParaId = parachain_info::Pallet; - type OutboundXcmpMessageSource = XcmpQueue; - type DmpMessageHandler = DmpQueue; - type ReservedDmpWeight = ReservedDmpWeight; - type XcmpMessageHandler = XcmpQueue; - type ReservedXcmpWeight = ReservedXcmpWeight; - type CheckAssociatedRelayNumber = RelayNumberStrictlyIncreases; - type ConsensusHook = cumulus_pallet_aura_ext::FixedVelocityConsensusHook< - Runtime, - RELAY_CHAIN_SLOT_DURATION_MILLIS, - BLOCK_PROCESSING_VELOCITY, - UNINCLUDED_SEGMENT_CAPACITY, - >; -} - -impl parachain_info::Config for Runtime {} - -impl cumulus_pallet_aura_ext::Config for Runtime {} - -parameter_types! { - // Fellows pluralistic body. - pub const FellowsBodyId: BodyId = BodyId::Technical; -} - -/// Privileged origin that represents Root or Fellows. -pub type RootOrFellows = EitherOfDiverse< - EnsureRoot, - EnsureXcm>, ->; - -impl cumulus_pallet_xcmp_queue::Config for Runtime { - type RuntimeEvent = RuntimeEvent; - type XcmExecutor = XcmExecutor; - type ChannelInfo = ParachainSystem; - type VersionWrapper = PolkadotXcm; - type ExecuteOverweightOrigin = EnsureRoot; - type ControllerOrigin = RootOrFellows; - type ControllerOriginConverter = XcmOriginToTransactDispatchOrigin; - type WeightInfo = weights::cumulus_pallet_xcmp_queue::WeightInfo; - type PriceForSiblingDelivery = (); -} - -impl cumulus_pallet_dmp_queue::Config for Runtime { - type RuntimeEvent = RuntimeEvent; - type XcmExecutor = XcmExecutor; - type ExecuteOverweightOrigin = EnsureRoot; -} - -pub const PERIOD: u32 = 6 * HOURS; -pub const OFFSET: u32 = 0; - -impl pallet_session::Config for Runtime { - type RuntimeEvent = RuntimeEvent; - type ValidatorId = ::AccountId; - // we don't have stash and controller, thus we don't need the convert as well. - type ValidatorIdOf = pallet_collator_selection::IdentityCollator; - type ShouldEndSession = pallet_session::PeriodicSessions, ConstU32>; - type NextSessionRotation = pallet_session::PeriodicSessions, ConstU32>; - type SessionManager = CollatorSelection; - // Essentially just Aura, but let's be pedantic. - type SessionHandler = ::KeyTypeIdProviders; - type Keys = SessionKeys; - type WeightInfo = weights::pallet_session::WeightInfo; -} - -impl pallet_aura::Config for Runtime { - type AuthorityId = AuraId; - type DisabledValidators = (); - type MaxAuthorities = ConstU32<100_000>; - type AllowMultipleBlocksPerSlot = ConstBool; - #[cfg(feature = "experimental")] - type SlotDuration = pallet_aura::MinimumPeriodTimesTwo; -} - -parameter_types! { - pub const PotId: PalletId = PalletId(*b"PotStake"); - pub const SessionLength: BlockNumber = 6 * HOURS; - // StakingAdmin pluralistic body. - pub const StakingAdminBodyId: BodyId = BodyId::Defense; -} - -/// We allow root, the StakingAdmin to execute privileged collator selection operations. -pub type CollatorSelectionUpdateOrigin = EitherOfDiverse< - EnsureRoot, - EnsureXcm>, ->; - -impl pallet_collator_selection::Config for Runtime { - type RuntimeEvent = RuntimeEvent; - type Currency = Balances; - type UpdateOrigin = CollatorSelectionUpdateOrigin; - type PotId = PotId; - type MaxCandidates = ConstU32<100>; - type MinEligibleCollators = ConstU32<4>; - type MaxInvulnerables = ConstU32<20>; - // should be a multiple of session or things will get inconsistent - type KickThreshold = ConstU32; - type ValidatorId = ::AccountId; - type ValidatorIdOf = pallet_collator_selection::IdentityCollator; - type ValidatorRegistration = Session; - type WeightInfo = weights::pallet_collator_selection::WeightInfo; -} - -parameter_types! { - // One storage item; key size is 32; value is size 4+4+16+32 bytes = 56 bytes. - pub const DepositBase: Balance = deposit(1, 88); - // Additional storage item size of 32 bytes. - pub const DepositFactor: Balance = deposit(0, 32); -} - -impl pallet_multisig::Config for Runtime { - type RuntimeEvent = RuntimeEvent; - type RuntimeCall = RuntimeCall; - type Currency = Balances; - type DepositBase = DepositBase; - type DepositFactor = DepositFactor; - type MaxSignatories = ConstU32<100>; - type WeightInfo = weights::pallet_multisig::WeightInfo; -} - -impl pallet_utility::Config for Runtime { - type RuntimeEvent = RuntimeEvent; - type RuntimeCall = RuntimeCall; - type PalletsOrigin = OriginCaller; - type WeightInfo = weights::pallet_utility::WeightInfo; -} - -// Create the runtime by composing the FRAME pallets that were previously configured. -construct_runtime!( - pub enum Runtime - { - // System support stuff. - System: frame_system::{Pallet, Call, Config, Storage, Event} = 0, - ParachainSystem: cumulus_pallet_parachain_system::{ - Pallet, Call, Config, Storage, Inherent, Event, ValidateUnsigned, - } = 1, - Timestamp: pallet_timestamp::{Pallet, Call, Storage, Inherent} = 2, - ParachainInfo: parachain_info::{Pallet, Storage, Config} = 3, - - // Monetary stuff. - Balances: pallet_balances::{Pallet, Call, Storage, Config, Event} = 10, - TransactionPayment: pallet_transaction_payment::{Pallet, Storage, Event} = 11, - - // Collator support. The order of these 4 are important and shall not change. - Authorship: pallet_authorship::{Pallet, Storage} = 20, - CollatorSelection: pallet_collator_selection::{Pallet, Call, Storage, Event, Config} = 21, - Session: pallet_session::{Pallet, Call, Storage, Event, Config} = 22, - Aura: pallet_aura::{Pallet, Storage, Config} = 23, - AuraExt: cumulus_pallet_aura_ext::{Pallet, Storage, Config} = 24, - - // XCM helpers. - XcmpQueue: cumulus_pallet_xcmp_queue::{Pallet, Call, Storage, Event} = 30, - PolkadotXcm: pallet_xcm::{Pallet, Call, Event, Origin, Config} = 31, - CumulusXcm: cumulus_pallet_xcm::{Pallet, Event, Origin} = 32, - DmpQueue: cumulus_pallet_dmp_queue::{Pallet, Call, Storage, Event} = 33, - - // Handy utilities. - Utility: pallet_utility::{Pallet, Call, Event} = 40, - Multisig: pallet_multisig::{Pallet, Call, Storage, Event} = 41, - } -); - -#[cfg(feature = "runtime-benchmarks")] -#[macro_use] -extern crate frame_benchmarking; - -#[cfg(feature = "runtime-benchmarks")] -mod benches { - define_benchmarks!( - [frame_system, SystemBench::] - [pallet_balances, Balances] - [pallet_multisig, Multisig] - [pallet_session, SessionBench::] - [pallet_utility, Utility] - [pallet_timestamp, Timestamp] - [pallet_collator_selection, CollatorSelection] - [cumulus_pallet_xcmp_queue, XcmpQueue] - // XCM - [pallet_xcm, PolkadotXcm] - // NOTE: Make sure you point to the individual modules below. - [pallet_xcm_benchmarks::fungible, XcmBalances] - [pallet_xcm_benchmarks::generic, XcmGeneric] - ); -} - -impl_runtime_apis! { - impl sp_consensus_aura::AuraApi for Runtime { - fn slot_duration() -> sp_consensus_aura::SlotDuration { - sp_consensus_aura::SlotDuration::from_millis(Aura::slot_duration()) - } - - fn authorities() -> Vec { - Aura::authorities().into_inner() - } - } - - impl sp_api::Core for Runtime { - fn version() -> RuntimeVersion { - VERSION - } - - fn execute_block(block: Block) { - Executive::execute_block(block) - } - - fn initialize_block(header: &::Header) { - Executive::initialize_block(header) - } - } - - impl sp_api::Metadata for Runtime { - fn metadata() -> OpaqueMetadata { - OpaqueMetadata::new(Runtime::metadata().into()) - } - - fn metadata_at_version(version: u32) -> Option { - Runtime::metadata_at_version(version) - } - - fn metadata_versions() -> sp_std::vec::Vec { - Runtime::metadata_versions() - } - } - - impl sp_block_builder::BlockBuilder for Runtime { - fn apply_extrinsic(extrinsic: ::Extrinsic) -> ApplyExtrinsicResult { - Executive::apply_extrinsic(extrinsic) - } - - fn finalize_block() -> ::Header { - Executive::finalize_block() - } - - fn inherent_extrinsics(data: sp_inherents::InherentData) -> Vec<::Extrinsic> { - data.create_extrinsics() - } - - fn check_inherents( - block: Block, - data: sp_inherents::InherentData, - ) -> sp_inherents::CheckInherentsResult { - data.check_extrinsics(&block) - } - } - - impl sp_transaction_pool::runtime_api::TaggedTransactionQueue for Runtime { - fn validate_transaction( - source: TransactionSource, - tx: ::Extrinsic, - block_hash: ::Hash, - ) -> TransactionValidity { - Executive::validate_transaction(source, tx, block_hash) - } - } - - impl sp_offchain::OffchainWorkerApi for Runtime { - fn offchain_worker(header: &::Header) { - Executive::offchain_worker(header) - } - } - - impl sp_session::SessionKeys for Runtime { - fn generate_session_keys(seed: Option>) -> Vec { - SessionKeys::generate(seed) - } - - fn decode_session_keys( - encoded: Vec, - ) -> Option, KeyTypeId)>> { - SessionKeys::decode_into_raw_public_keys(&encoded) - } - } - - impl frame_system_rpc_runtime_api::AccountNonceApi for Runtime { - fn account_nonce(account: AccountId) -> Nonce { - System::account_nonce(account) - } - } - - impl pallet_transaction_payment_rpc_runtime_api::TransactionPaymentApi for Runtime { - fn query_info( - uxt: ::Extrinsic, - len: u32, - ) -> pallet_transaction_payment_rpc_runtime_api::RuntimeDispatchInfo { - TransactionPayment::query_info(uxt, len) - } - fn query_fee_details( - uxt: ::Extrinsic, - len: u32, - ) -> pallet_transaction_payment::FeeDetails { - TransactionPayment::query_fee_details(uxt, len) - } - fn query_weight_to_fee(weight: Weight) -> Balance { - TransactionPayment::weight_to_fee(weight) - } - fn query_length_to_fee(length: u32) -> Balance { - TransactionPayment::length_to_fee(length) - } - } - - impl pallet_transaction_payment_rpc_runtime_api::TransactionPaymentCallApi - for Runtime - { - fn query_call_info( - call: RuntimeCall, - len: u32, - ) -> pallet_transaction_payment::RuntimeDispatchInfo { - TransactionPayment::query_call_info(call, len) - } - fn query_call_fee_details( - call: RuntimeCall, - len: u32, - ) -> pallet_transaction_payment::FeeDetails { - TransactionPayment::query_call_fee_details(call, len) - } - fn query_weight_to_fee(weight: Weight) -> Balance { - TransactionPayment::weight_to_fee(weight) - } - fn query_length_to_fee(length: u32) -> Balance { - TransactionPayment::length_to_fee(length) - } - } - - impl cumulus_primitives_core::CollectCollationInfo for Runtime { - fn collect_collation_info(header: &::Header) -> cumulus_primitives_core::CollationInfo { - ParachainSystem::collect_collation_info(header) - } - } - - #[cfg(feature = "try-runtime")] - impl frame_try_runtime::TryRuntime for Runtime { - fn on_runtime_upgrade(checks: frame_try_runtime::UpgradeCheckSelect) -> (Weight, Weight) { - let weight = Executive::try_runtime_upgrade(checks).unwrap(); - (weight, RuntimeBlockWeights::get().max_block) - } - - fn execute_block( - block: Block, - state_root_check: bool, - signature_check: bool, - select: frame_try_runtime::TryStateSelect, - ) -> Weight { - // NOTE: intentional unwrap: we don't want to propagate the error backwards, and want to - // have a backtrace here. - Executive::try_execute_block(block, state_root_check, signature_check, select).unwrap() - } - } - - #[cfg(feature = "runtime-benchmarks")] - impl frame_benchmarking::Benchmark for Runtime { - fn benchmark_metadata(extra: bool) -> ( - Vec, - Vec, - ) { - use frame_benchmarking::{Benchmarking, BenchmarkList}; - use frame_support::traits::StorageInfoTrait; - use frame_system_benchmarking::Pallet as SystemBench; - use cumulus_pallet_session_benchmarking::Pallet as SessionBench; - - // This is defined once again in dispatch_benchmark, because list_benchmarks! - // and add_benchmarks! are macros exported by define_benchmarks! macros and those types - // are referenced in that call. - type XcmBalances = pallet_xcm_benchmarks::fungible::Pallet::; - type XcmGeneric = pallet_xcm_benchmarks::generic::Pallet::; - - let mut list = Vec::::new(); - list_benchmarks!(list, extra); - - let storage_info = AllPalletsWithSystem::storage_info(); - (list, storage_info) - } - - fn dispatch_benchmark( - config: frame_benchmarking::BenchmarkConfig - ) -> Result, sp_runtime::RuntimeString> { - use frame_benchmarking::{Benchmarking, BenchmarkBatch, BenchmarkError}; - use sp_storage::TrackedStorageKey; - - use frame_system_benchmarking::Pallet as SystemBench; - impl frame_system_benchmarking::Config for Runtime { - fn setup_set_code_requirements(code: &sp_std::vec::Vec) -> Result<(), BenchmarkError> { - ParachainSystem::initialize_for_set_code_benchmark(code.len() as u32); - Ok(()) - } - - fn verify_set_code() { - System::assert_last_event(cumulus_pallet_parachain_system::Event::::ValidationFunctionStored.into()); - } - } - - use cumulus_pallet_session_benchmarking::Pallet as SessionBench; - impl cumulus_pallet_session_benchmarking::Config for Runtime {} - - use xcm::latest::prelude::*; - use xcm_config::DotRelayLocation; - - impl pallet_xcm_benchmarks::Config for Runtime { - type XcmConfig = xcm_config::XcmConfig; - type AccountIdConverter = xcm_config::LocationToAccountId; - fn valid_destination() -> Result { - Ok(DotRelayLocation::get()) - } - fn worst_case_holding(_depositable_count: u32) -> MultiAssets { - // just concrete assets according to relay chain. - let assets: Vec = vec![ - MultiAsset { - id: Concrete(DotRelayLocation::get()), - fun: Fungible(1_000_000 * UNITS), - } - ]; - assets.into() - } - } - - parameter_types! { - pub const TrustedTeleporter: Option<(MultiLocation, MultiAsset)> = Some(( - DotRelayLocation::get(), - MultiAsset { fun: Fungible(UNITS), id: Concrete(DotRelayLocation::get()) }, - )); - pub const CheckedAccount: Option<(AccountId, xcm_builder::MintLocation)> = None; - pub const TrustedReserve: Option<(MultiLocation, MultiAsset)> = None; - } - - impl pallet_xcm_benchmarks::fungible::Config for Runtime { - type TransactAsset = Balances; - - type CheckedAccount = CheckedAccount; - type TrustedTeleporter = TrustedTeleporter; - type TrustedReserve = TrustedReserve; - - fn get_multi_asset() -> MultiAsset { - MultiAsset { - id: Concrete(DotRelayLocation::get()), - fun: Fungible(UNITS), - } - } - } - - impl pallet_xcm_benchmarks::generic::Config for Runtime { - type RuntimeCall = RuntimeCall; - - fn worst_case_response() -> (u64, Response) { - (0u64, Response::Version(Default::default())) - } - - fn worst_case_asset_exchange() -> Result<(MultiAssets, MultiAssets), BenchmarkError> { - Err(BenchmarkError::Skip) - } - - fn universal_alias() -> Result<(MultiLocation, Junction), BenchmarkError> { - Err(BenchmarkError::Skip) - } - - fn transact_origin_and_runtime_call() -> Result<(MultiLocation, RuntimeCall), BenchmarkError> { - Ok((DotRelayLocation::get(), frame_system::Call::remark_with_event { remark: vec![] }.into())) - } - - fn subscribe_origin() -> Result { - Ok(DotRelayLocation::get()) - } - - fn claimable_asset() -> Result<(MultiLocation, MultiLocation, MultiAssets), BenchmarkError> { - let origin = DotRelayLocation::get(); - let assets: MultiAssets = (Concrete(DotRelayLocation::get()), 1_000 * UNITS).into(); - let ticket = MultiLocation { parents: 0, interior: Here }; - Ok((origin, ticket, assets)) - } - - fn unlockable_asset() -> Result<(MultiLocation, MultiLocation, MultiAsset), BenchmarkError> { - Err(BenchmarkError::Skip) - } - - fn export_message_origin_and_destination( - ) -> Result<(MultiLocation, NetworkId, InteriorMultiLocation), BenchmarkError> { - Err(BenchmarkError::Skip) - } - - fn alias_origin() -> Result<(MultiLocation, MultiLocation), BenchmarkError> { - Err(BenchmarkError::Skip) - } - } - - type XcmBalances = pallet_xcm_benchmarks::fungible::Pallet::; - type XcmGeneric = pallet_xcm_benchmarks::generic::Pallet::; - - let whitelist: Vec = vec![ - // Block Number - hex_literal::hex!("26aa394eea5630e07c48ae0c9558cef702a5c1b19ab7a04f536c519aca4983ac").to_vec().into(), - // Total Issuance - hex_literal::hex!("c2261276cc9d1f8598ea4b6a74b15c2f57c875e4cff74148e4628f264b974c80").to_vec().into(), - // Execution Phase - hex_literal::hex!("26aa394eea5630e07c48ae0c9558cef7ff553b5a9862a516939d82b3d3d8661a").to_vec().into(), - // Event Count - hex_literal::hex!("26aa394eea5630e07c48ae0c9558cef70a98fdbe9ce6c55837576c60c7af3850").to_vec().into(), - // System Events - hex_literal::hex!("26aa394eea5630e07c48ae0c9558cef780d41e5e16056765bc8461851072c9d7").to_vec().into(), - ]; - - let mut batches = Vec::::new(); - let params = (&config, &whitelist); - add_benchmarks!(params, batches); - - Ok(batches) - } - } - - impl sp_genesis_builder::GenesisBuilder for Runtime { - fn create_default_config() -> Vec { - create_default_config::() - } - - fn build_config(config: Vec) -> sp_genesis_builder::Result { - build_config::(config) - } - } -} - -cumulus_pallet_parachain_system::register_validate_block! { - Runtime = Runtime, - BlockExecutor = cumulus_pallet_aura_ext::BlockExecutor::, -} diff --git a/cumulus/parachains/runtimes/bridge-hubs/bridge-hub-polkadot/src/weights/block_weights.rs b/cumulus/parachains/runtimes/bridge-hubs/bridge-hub-polkadot/src/weights/block_weights.rs deleted file mode 100644 index e7fdb2aae2a0..000000000000 --- a/cumulus/parachains/runtimes/bridge-hubs/bridge-hub-polkadot/src/weights/block_weights.rs +++ /dev/null @@ -1,53 +0,0 @@ -// This file is part of Substrate. - -// 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. - -pub mod constants { - use frame_support::{ - parameter_types, - weights::{constants, Weight}, - }; - - parameter_types! { - /// Importing a block with 0 Extrinsics. - pub const BlockExecutionWeight: Weight = - Weight::from_parts(constants::WEIGHT_REF_TIME_PER_NANOS.saturating_mul(5_000_000), 0); - } - - #[cfg(test)] - mod test_weights { - use frame_support::weights::constants; - - /// Checks that the weight exists and is sane. - // NOTE: If this test fails but you are sure that the generated values are fine, - // you can delete it. - #[test] - fn sane() { - let w = super::constants::BlockExecutionWeight::get(); - - // At least 100 µs. - assert!( - w.ref_time() >= 100u64 * constants::WEIGHT_REF_TIME_PER_MICROS, - "Weight should be at least 100 µs." - ); - // At most 50 ms. - assert!( - w.ref_time() <= 50u64 * constants::WEIGHT_REF_TIME_PER_MILLIS, - "Weight should be at most 50 ms." - ); - } - } -} diff --git a/cumulus/parachains/runtimes/bridge-hubs/bridge-hub-polkadot/src/weights/cumulus_pallet_xcmp_queue.rs b/cumulus/parachains/runtimes/bridge-hubs/bridge-hub-polkadot/src/weights/cumulus_pallet_xcmp_queue.rs deleted file mode 100644 index 98834cc44e88..000000000000 --- a/cumulus/parachains/runtimes/bridge-hubs/bridge-hub-polkadot/src/weights/cumulus_pallet_xcmp_queue.rs +++ /dev/null @@ -1,77 +0,0 @@ -// Copyright (C) Parity Technologies (UK) Ltd. -// This file is part of Cumulus. - -// Cumulus 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. - -// Cumulus 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 Cumulus. If not, see . - -//! Autogenerated weights for `cumulus_pallet_xcmp_queue` -//! -//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev -//! DATE: 2023-07-31, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` -//! WORST CASE MAP SIZE: `1000000` -//! HOSTNAME: `runner-ynta1nyy-project-238-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz` -//! EXECUTION: ``, WASM-EXECUTION: `Compiled`, CHAIN: `Some("bridge-hub-polkadot-dev")`, DB CACHE: 1024 - -// Executed Command: -// ./target/production/polkadot-parachain -// benchmark -// pallet -// --chain=bridge-hub-polkadot-dev -// --wasm-execution=compiled -// --pallet=cumulus_pallet_xcmp_queue -// --no-storage-info -// --no-median-slopes -// --no-min-squares -// --extrinsic=* -// --steps=50 -// --repeat=20 -// --json -// --header=./file_header.txt -// --output=./parachains/runtimes/bridge-hubs/bridge-hub-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 `cumulus_pallet_xcmp_queue`. -pub struct WeightInfo(PhantomData); -impl cumulus_pallet_xcmp_queue::WeightInfo for WeightInfo { - /// Storage: `XcmpQueue::QueueConfig` (r:1 w:1) - /// Proof: `XcmpQueue::QueueConfig` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) - fn set_config_with_u32() -> Weight { - // Proof Size summary in bytes: - // Measured: `76` - // Estimated: `1561` - // Minimum execution time: 5_043_000 picoseconds. - Weight::from_parts(5_211_000, 0) - .saturating_add(Weight::from_parts(0, 1561)) - .saturating_add(T::DbWeight::get().reads(1)) - .saturating_add(T::DbWeight::get().writes(1)) - } - /// Storage: `XcmpQueue::QueueConfig` (r:1 w:1) - /// Proof: `XcmpQueue::QueueConfig` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) - fn set_config_with_weight() -> Weight { - // Proof Size summary in bytes: - // Measured: `76` - // Estimated: `1561` - // Minimum execution time: 5_011_000 picoseconds. - Weight::from_parts(5_171_000, 0) - .saturating_add(Weight::from_parts(0, 1561)) - .saturating_add(T::DbWeight::get().reads(1)) - .saturating_add(T::DbWeight::get().writes(1)) - } -} diff --git a/cumulus/parachains/runtimes/bridge-hubs/bridge-hub-polkadot/src/weights/extrinsic_weights.rs b/cumulus/parachains/runtimes/bridge-hubs/bridge-hub-polkadot/src/weights/extrinsic_weights.rs deleted file mode 100644 index 1a4adb968bb7..000000000000 --- a/cumulus/parachains/runtimes/bridge-hubs/bridge-hub-polkadot/src/weights/extrinsic_weights.rs +++ /dev/null @@ -1,53 +0,0 @@ -// This file is part of Substrate. - -// 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. - -pub mod constants { - use frame_support::{ - parameter_types, - weights::{constants, Weight}, - }; - - parameter_types! { - /// Executing a NO-OP `System::remarks` Extrinsic. - pub const ExtrinsicBaseWeight: Weight = - Weight::from_parts(constants::WEIGHT_REF_TIME_PER_NANOS.saturating_mul(125_000), 0); - } - - #[cfg(test)] - mod test_weights { - use frame_support::weights::constants; - - /// Checks that the weight exists and is sane. - // NOTE: If this test fails but you are sure that the generated values are fine, - // you can delete it. - #[test] - fn sane() { - let w = super::constants::ExtrinsicBaseWeight::get(); - - // At least 10 µs. - assert!( - w.ref_time() >= 10u64 * constants::WEIGHT_REF_TIME_PER_MICROS, - "Weight should be at least 10 µs." - ); - // At most 1 ms. - assert!( - w.ref_time() <= constants::WEIGHT_REF_TIME_PER_MILLIS, - "Weight should be at most 1 ms." - ); - } - } -} diff --git a/cumulus/parachains/runtimes/bridge-hubs/bridge-hub-polkadot/src/weights/frame_system.rs b/cumulus/parachains/runtimes/bridge-hubs/bridge-hub-polkadot/src/weights/frame_system.rs deleted file mode 100644 index 4aeb4660d878..000000000000 --- a/cumulus/parachains/runtimes/bridge-hubs/bridge-hub-polkadot/src/weights/frame_system.rs +++ /dev/null @@ -1,155 +0,0 @@ -// Copyright (C) Parity Technologies (UK) Ltd. -// This file is part of Cumulus. - -// Cumulus 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. - -// Cumulus 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 Cumulus. If not, see . - -//! Autogenerated weights for `frame_system` -//! -//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev -//! DATE: 2023-07-31, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` -//! WORST CASE MAP SIZE: `1000000` -//! HOSTNAME: `runner-ynta1nyy-project-238-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz` -//! EXECUTION: ``, WASM-EXECUTION: `Compiled`, CHAIN: `Some("bridge-hub-polkadot-dev")`, DB CACHE: 1024 - -// Executed Command: -// ./target/production/polkadot-parachain -// benchmark -// pallet -// --chain=bridge-hub-polkadot-dev -// --wasm-execution=compiled -// --pallet=frame_system -// --no-storage-info -// --no-median-slopes -// --no-min-squares -// --extrinsic=* -// --steps=50 -// --repeat=20 -// --json -// --header=./file_header.txt -// --output=./parachains/runtimes/bridge-hubs/bridge-hub-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 `frame_system`. -pub struct WeightInfo(PhantomData); -impl frame_system::WeightInfo for WeightInfo { - /// The range of component `b` is `[0, 3932160]`. - fn remark(b: u32, ) -> Weight { - // Proof Size summary in bytes: - // Measured: `0` - // Estimated: `0` - // Minimum execution time: 2_047_000 picoseconds. - Weight::from_parts(2_087_000, 0) - .saturating_add(Weight::from_parts(0, 0)) - // Standard Error: 0 - .saturating_add(Weight::from_parts(390, 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_335_000 picoseconds. - Weight::from_parts(7_507_000, 0) - .saturating_add(Weight::from_parts(0, 0)) - // Standard Error: 2 - .saturating_add(Weight::from_parts(1_751, 0).saturating_mul(b.into())) - } - /// Storage: `System::Digest` (r:1 w:1) - /// Proof: `System::Digest` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) - /// Storage: UNKNOWN KEY `0x3a686561707061676573` (r:0 w:1) - /// Proof: UNKNOWN KEY `0x3a686561707061676573` (r:0 w:1) - fn set_heap_pages() -> Weight { - // Proof Size summary in bytes: - // Measured: `0` - // Estimated: `1485` - // Minimum execution time: 3_673_000 picoseconds. - Weight::from_parts(3_953_000, 0) - .saturating_add(Weight::from_parts(0, 1485)) - .saturating_add(T::DbWeight::get().reads(1)) - .saturating_add(T::DbWeight::get().writes(2)) - } - /// Storage: `ParachainSystem::ValidationData` (r:1 w:0) - /// Proof: `ParachainSystem::ValidationData` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) - /// Storage: `ParachainSystem::UpgradeRestrictionSignal` (r:1 w:0) - /// Proof: `ParachainSystem::UpgradeRestrictionSignal` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) - /// Storage: `ParachainSystem::PendingValidationCode` (r:1 w:1) - /// Proof: `ParachainSystem::PendingValidationCode` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) - /// Storage: `ParachainSystem::HostConfiguration` (r:1 w:0) - /// Proof: `ParachainSystem::HostConfiguration` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) - /// Storage: `ParachainSystem::NewValidationCode` (r:0 w:1) - /// Proof: `ParachainSystem::NewValidationCode` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) - /// Storage: `ParachainSystem::DidSetValidationCode` (r:0 w:1) - /// Proof: `ParachainSystem::DidSetValidationCode` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) - fn set_code() -> Weight { - // Proof Size summary in bytes: - // Measured: `119` - // Estimated: `1604` - // Minimum execution time: 98_791_992_000 picoseconds. - Weight::from_parts(101_799_041_000, 0) - .saturating_add(Weight::from_parts(0, 1604)) - .saturating_add(T::DbWeight::get().reads(4)) - .saturating_add(T::DbWeight::get().writes(3)) - } - /// Storage: `Skipped::Metadata` (r:0 w:0) - /// Proof: `Skipped::Metadata` (`max_values`: None, `max_size`: None, mode: `Measured`) - /// The range of component `i` is `[0, 1000]`. - fn set_storage(i: u32, ) -> Weight { - // Proof Size summary in bytes: - // Measured: `0` - // Estimated: `0` - // Minimum execution time: 2_144_000 picoseconds. - Weight::from_parts(2_206_000, 0) - .saturating_add(Weight::from_parts(0, 0)) - // Standard Error: 2_254 - .saturating_add(Weight::from_parts(740_881, 0).saturating_mul(i.into())) - .saturating_add(T::DbWeight::get().writes((1_u64).saturating_mul(i.into()))) - } - /// Storage: `Skipped::Metadata` (r:0 w:0) - /// Proof: `Skipped::Metadata` (`max_values`: None, `max_size`: None, mode: `Measured`) - /// The range of component `i` is `[0, 1000]`. - fn kill_storage(i: u32, ) -> Weight { - // Proof Size summary in bytes: - // Measured: `0` - // Estimated: `0` - // Minimum execution time: 2_117_000 picoseconds. - Weight::from_parts(2_192_000, 0) - .saturating_add(Weight::from_parts(0, 0)) - // Standard Error: 1_024 - .saturating_add(Weight::from_parts(558_397, 0).saturating_mul(i.into())) - .saturating_add(T::DbWeight::get().writes((1_u64).saturating_mul(i.into()))) - } - /// Storage: `Skipped::Metadata` (r:0 w:0) - /// Proof: `Skipped::Metadata` (`max_values`: None, `max_size`: None, mode: `Measured`) - /// The range of component `p` is `[0, 1000]`. - fn kill_prefix(p: u32, ) -> Weight { - // Proof Size summary in bytes: - // Measured: `68 + p * (69 ±0)` - // Estimated: `66 + p * (70 ±0)` - // Minimum execution time: 3_907_000 picoseconds. - Weight::from_parts(4_050_000, 0) - .saturating_add(Weight::from_parts(0, 66)) - // Standard Error: 2_228 - .saturating_add(Weight::from_parts(1_212_760, 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/cumulus/parachains/runtimes/bridge-hubs/bridge-hub-polkadot/src/weights/mod.rs b/cumulus/parachains/runtimes/bridge-hubs/bridge-hub-polkadot/src/weights/mod.rs deleted file mode 100644 index e226021e77ab..000000000000 --- a/cumulus/parachains/runtimes/bridge-hubs/bridge-hub-polkadot/src/weights/mod.rs +++ /dev/null @@ -1,38 +0,0 @@ -// This file is part of Substrate. - -// 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. - -//! Expose the auto generated weight files. - -pub mod block_weights; -pub mod cumulus_pallet_xcmp_queue; -pub mod extrinsic_weights; -pub mod frame_system; -pub mod pallet_balances; -pub mod pallet_collator_selection; -pub mod pallet_multisig; -pub mod pallet_session; -pub mod pallet_timestamp; -pub mod pallet_utility; -pub mod pallet_xcm; -pub mod paritydb_weights; -pub mod rocksdb_weights; -pub mod xcm; - -pub use block_weights::constants::BlockExecutionWeight; -pub use extrinsic_weights::constants::ExtrinsicBaseWeight; -pub use paritydb_weights::constants::ParityDbWeight; -pub use rocksdb_weights::constants::RocksDbWeight; diff --git a/cumulus/parachains/runtimes/bridge-hubs/bridge-hub-polkadot/src/weights/pallet_balances.rs b/cumulus/parachains/runtimes/bridge-hubs/bridge-hub-polkadot/src/weights/pallet_balances.rs deleted file mode 100644 index 5abe64bb4117..000000000000 --- a/cumulus/parachains/runtimes/bridge-hubs/bridge-hub-polkadot/src/weights/pallet_balances.rs +++ /dev/null @@ -1,153 +0,0 @@ -// Copyright (C) Parity Technologies (UK) Ltd. -// This file is part of Cumulus. - -// Cumulus 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. - -// Cumulus 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 Cumulus. 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-07-31, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` -//! WORST CASE MAP SIZE: `1000000` -//! HOSTNAME: `runner-ynta1nyy-project-238-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz` -//! EXECUTION: ``, WASM-EXECUTION: `Compiled`, CHAIN: `Some("bridge-hub-polkadot-dev")`, DB CACHE: 1024 - -// Executed Command: -// ./target/production/polkadot-parachain -// benchmark -// pallet -// --chain=bridge-hub-polkadot-dev -// --wasm-execution=compiled -// --pallet=pallet_balances -// --no-storage-info -// --no-median-slopes -// --no-min-squares -// --extrinsic=* -// --steps=50 -// --repeat=20 -// --json -// --header=./file_header.txt -// --output=./parachains/runtimes/bridge-hubs/bridge-hub-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_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: 54_518_000 picoseconds. - Weight::from_parts(55_244_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: 40_152_000 picoseconds. - Weight::from_parts(41_084_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_234_000 picoseconds. - Weight::from_parts(15_576_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: 22_173_000 picoseconds. - Weight::from_parts(22_964_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: 56_636_000 picoseconds. - Weight::from_parts(57_316_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: 50_829_000 picoseconds. - Weight::from_parts(51_264_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: 17_887_000 picoseconds. - Weight::from_parts(18_365_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]`. - fn upgrade_accounts(u: u32, ) -> Weight { - // Proof Size summary in bytes: - // Measured: `0 + u * (136 ±0)` - // Estimated: `990 + u * (2603 ±0)` - // Minimum execution time: 16_754_000 picoseconds. - Weight::from_parts(17_237_000, 0) - .saturating_add(Weight::from_parts(0, 990)) - // Standard Error: 15_088 - .saturating_add(Weight::from_parts(15_392_959, 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/cumulus/parachains/runtimes/bridge-hubs/bridge-hub-polkadot/src/weights/pallet_collator_selection.rs b/cumulus/parachains/runtimes/bridge-hubs/bridge-hub-polkadot/src/weights/pallet_collator_selection.rs deleted file mode 100644 index e0f4156fe4d4..000000000000 --- a/cumulus/parachains/runtimes/bridge-hubs/bridge-hub-polkadot/src/weights/pallet_collator_selection.rs +++ /dev/null @@ -1,225 +0,0 @@ -// Copyright (C) Parity Technologies (UK) Ltd. -// This file is part of Cumulus. - -// Cumulus 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. - -// Cumulus 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 Cumulus. If not, see . - -//! Autogenerated weights for `pallet_collator_selection` -//! -//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev -//! DATE: 2023-07-31, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` -//! WORST CASE MAP SIZE: `1000000` -//! HOSTNAME: `runner-ynta1nyy-project-238-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz` -//! EXECUTION: ``, WASM-EXECUTION: `Compiled`, CHAIN: `Some("bridge-hub-polkadot-dev")`, DB CACHE: 1024 - -// Executed Command: -// ./target/production/polkadot-parachain -// benchmark -// pallet -// --chain=bridge-hub-polkadot-dev -// --wasm-execution=compiled -// --pallet=pallet_collator_selection -// --no-storage-info -// --no-median-slopes -// --no-min-squares -// --extrinsic=* -// --steps=50 -// --repeat=20 -// --json -// --header=./file_header.txt -// --output=./parachains/runtimes/bridge-hubs/bridge-hub-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_collator_selection`. -pub struct WeightInfo(PhantomData); -impl pallet_collator_selection::WeightInfo for WeightInfo { - /// Storage: `Session::NextKeys` (r:20 w:0) - /// Proof: `Session::NextKeys` (`max_values`: None, `max_size`: None, mode: `Measured`) - /// Storage: `CollatorSelection::Invulnerables` (r:0 w:1) - /// Proof: `CollatorSelection::Invulnerables` (`max_values`: Some(1), `max_size`: Some(641), added: 1136, mode: `MaxEncodedLen`) - /// The range of component `b` is `[1, 20]`. - fn set_invulnerables(b: u32, ) -> Weight { - // Proof Size summary in bytes: - // Measured: `196 + b * (79 ±0)` - // Estimated: `1187 + b * (2555 ±0)` - // Minimum execution time: 14_735_000 picoseconds. - Weight::from_parts(11_846_916, 0) - .saturating_add(Weight::from_parts(0, 1187)) - // Standard Error: 8_592 - .saturating_add(Weight::from_parts(3_270_517, 0).saturating_mul(b.into())) - .saturating_add(T::DbWeight::get().reads((1_u64).saturating_mul(b.into()))) - .saturating_add(T::DbWeight::get().writes(1)) - .saturating_add(Weight::from_parts(0, 2555).saturating_mul(b.into())) - } - /// Storage: `Session::NextKeys` (r:1 w:0) - /// Proof: `Session::NextKeys` (`max_values`: None, `max_size`: None, mode: `Measured`) - /// Storage: `CollatorSelection::Invulnerables` (r:1 w:1) - /// Proof: `CollatorSelection::Invulnerables` (`max_values`: Some(1), `max_size`: Some(641), added: 1136, mode: `MaxEncodedLen`) - /// Storage: `CollatorSelection::Candidates` (r:1 w:1) - /// Proof: `CollatorSelection::Candidates` (`max_values`: Some(1), `max_size`: Some(4802), added: 5297, 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 `b` is `[1, 19]`. - /// The range of component `c` is `[1, 99]`. - fn add_invulnerable(b: u32, c: u32, ) -> Weight { - // Proof Size summary in bytes: - // Measured: `757 + b * (32 ±0) + c * (53 ±0)` - // Estimated: `6287 + b * (37 ±0) + c * (53 ±0)` - // Minimum execution time: 48_332_000 picoseconds. - Weight::from_parts(46_158_586, 0) - .saturating_add(Weight::from_parts(0, 6287)) - // Standard Error: 13_938 - .saturating_add(Weight::from_parts(174_493, 0).saturating_mul(b.into())) - // Standard Error: 2_642 - .saturating_add(Weight::from_parts(196_691, 0).saturating_mul(c.into())) - .saturating_add(T::DbWeight::get().reads(4)) - .saturating_add(T::DbWeight::get().writes(3)) - .saturating_add(Weight::from_parts(0, 37).saturating_mul(b.into())) - .saturating_add(Weight::from_parts(0, 53).saturating_mul(c.into())) - } - /// Storage: `CollatorSelection::Candidates` (r:1 w:0) - /// Proof: `CollatorSelection::Candidates` (`max_values`: Some(1), `max_size`: Some(4802), added: 5297, mode: `MaxEncodedLen`) - /// Storage: `CollatorSelection::Invulnerables` (r:1 w:1) - /// Proof: `CollatorSelection::Invulnerables` (`max_values`: Some(1), `max_size`: Some(641), added: 1136, mode: `MaxEncodedLen`) - /// The range of component `b` is `[5, 20]`. - fn remove_invulnerable(b: u32, ) -> Weight { - // Proof Size summary in bytes: - // Measured: `82 + b * (32 ±0)` - // Estimated: `6287` - // Minimum execution time: 15_323_000 picoseconds. - Weight::from_parts(15_016_873, 0) - .saturating_add(Weight::from_parts(0, 6287)) - // Standard Error: 2_970 - .saturating_add(Weight::from_parts(199_160, 0).saturating_mul(b.into())) - .saturating_add(T::DbWeight::get().reads(2)) - .saturating_add(T::DbWeight::get().writes(1)) - } - /// Storage: `CollatorSelection::DesiredCandidates` (r:0 w:1) - /// Proof: `CollatorSelection::DesiredCandidates` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`) - fn set_desired_candidates() -> Weight { - // Proof Size summary in bytes: - // Measured: `0` - // Estimated: `0` - // Minimum execution time: 7_393_000 picoseconds. - Weight::from_parts(7_723_000, 0) - .saturating_add(Weight::from_parts(0, 0)) - .saturating_add(T::DbWeight::get().writes(1)) - } - /// Storage: `CollatorSelection::CandidacyBond` (r:0 w:1) - /// Proof: `CollatorSelection::CandidacyBond` (`max_values`: Some(1), `max_size`: Some(16), added: 511, mode: `MaxEncodedLen`) - fn set_candidacy_bond() -> Weight { - // Proof Size summary in bytes: - // Measured: `0` - // Estimated: `0` - // Minimum execution time: 7_426_000 picoseconds. - Weight::from_parts(7_783_000, 0) - .saturating_add(Weight::from_parts(0, 0)) - .saturating_add(T::DbWeight::get().writes(1)) - } - /// Storage: `CollatorSelection::Candidates` (r:1 w:1) - /// Proof: `CollatorSelection::Candidates` (`max_values`: Some(1), `max_size`: Some(4802), added: 5297, mode: `MaxEncodedLen`) - /// Storage: `CollatorSelection::DesiredCandidates` (r:1 w:0) - /// Proof: `CollatorSelection::DesiredCandidates` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`) - /// Storage: `CollatorSelection::Invulnerables` (r:1 w:0) - /// Proof: `CollatorSelection::Invulnerables` (`max_values`: Some(1), `max_size`: Some(641), added: 1136, mode: `MaxEncodedLen`) - /// Storage: `Session::NextKeys` (r:1 w:0) - /// Proof: `Session::NextKeys` (`max_values`: None, `max_size`: None, mode: `Measured`) - /// Storage: `CollatorSelection::CandidacyBond` (r:1 w:0) - /// Proof: `CollatorSelection::CandidacyBond` (`max_values`: Some(1), `max_size`: Some(16), added: 511, mode: `MaxEncodedLen`) - /// Storage: `CollatorSelection::LastAuthoredBlock` (r:0 w:1) - /// Proof: `CollatorSelection::LastAuthoredBlock` (`max_values`: None, `max_size`: Some(44), added: 2519, mode: `MaxEncodedLen`) - /// The range of component `c` is `[1, 99]`. - fn register_as_candidate(c: u32, ) -> Weight { - // Proof Size summary in bytes: - // Measured: `740 + c * (52 ±0)` - // Estimated: `6287 + c * (54 ±0)` - // Minimum execution time: 41_040_000 picoseconds. - Weight::from_parts(43_902_200, 0) - .saturating_add(Weight::from_parts(0, 6287)) - // Standard Error: 2_360 - .saturating_add(Weight::from_parts(211_897, 0).saturating_mul(c.into())) - .saturating_add(T::DbWeight::get().reads(5)) - .saturating_add(T::DbWeight::get().writes(2)) - .saturating_add(Weight::from_parts(0, 54).saturating_mul(c.into())) - } - /// Storage: `CollatorSelection::Candidates` (r:1 w:1) - /// Proof: `CollatorSelection::Candidates` (`max_values`: Some(1), `max_size`: Some(4802), added: 5297, mode: `MaxEncodedLen`) - /// Storage: `CollatorSelection::Invulnerables` (r:1 w:0) - /// Proof: `CollatorSelection::Invulnerables` (`max_values`: Some(1), `max_size`: Some(641), added: 1136, mode: `MaxEncodedLen`) - /// Storage: `CollatorSelection::LastAuthoredBlock` (r:0 w:1) - /// Proof: `CollatorSelection::LastAuthoredBlock` (`max_values`: None, `max_size`: Some(44), added: 2519, mode: `MaxEncodedLen`) - /// The range of component `c` is `[3, 100]`. - fn leave_intent(c: u32, ) -> Weight { - // Proof Size summary in bytes: - // Measured: `334 + c * (49 ±0)` - // Estimated: `6287` - // Minimum execution time: 33_429_000 picoseconds. - Weight::from_parts(36_413_045, 0) - .saturating_add(Weight::from_parts(0, 6287)) - // Standard Error: 2_947 - .saturating_add(Weight::from_parts(177_461, 0).saturating_mul(c.into())) - .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: `System::BlockWeight` (r:1 w:1) - /// Proof: `System::BlockWeight` (`max_values`: Some(1), `max_size`: Some(48), added: 543, mode: `MaxEncodedLen`) - /// Storage: `CollatorSelection::LastAuthoredBlock` (r:0 w:1) - /// Proof: `CollatorSelection::LastAuthoredBlock` (`max_values`: None, `max_size`: Some(44), added: 2519, mode: `MaxEncodedLen`) - fn note_author() -> Weight { - // Proof Size summary in bytes: - // Measured: `155` - // Estimated: `6196` - // Minimum execution time: 45_300_000 picoseconds. - Weight::from_parts(46_280_000, 0) - .saturating_add(Weight::from_parts(0, 6196)) - .saturating_add(T::DbWeight::get().reads(3)) - .saturating_add(T::DbWeight::get().writes(4)) - } - /// Storage: `CollatorSelection::Candidates` (r:1 w:0) - /// Proof: `CollatorSelection::Candidates` (`max_values`: Some(1), `max_size`: Some(4802), added: 5297, mode: `MaxEncodedLen`) - /// Storage: `CollatorSelection::LastAuthoredBlock` (r:100 w:0) - /// Proof: `CollatorSelection::LastAuthoredBlock` (`max_values`: None, `max_size`: Some(44), added: 2519, mode: `MaxEncodedLen`) - /// Storage: `CollatorSelection::Invulnerables` (r:1 w:0) - /// Proof: `CollatorSelection::Invulnerables` (`max_values`: Some(1), `max_size`: Some(641), added: 1136, mode: `MaxEncodedLen`) - /// Storage: `System::BlockWeight` (r:1 w:1) - /// Proof: `System::BlockWeight` (`max_values`: Some(1), `max_size`: Some(48), added: 543, mode: `MaxEncodedLen`) - /// Storage: `System::Account` (r:97 w:97) - /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`) - /// The range of component `r` is `[1, 100]`. - /// The range of component `c` is `[1, 100]`. - fn new_session(r: u32, c: u32, ) -> Weight { - // Proof Size summary in bytes: - // Measured: `2263 + c * (97 ±0) + r * (115 ±0)` - // Estimated: `6287 + c * (2519 ±0) + r * (2603 ±0)` - // Minimum execution time: 17_524_000 picoseconds. - Weight::from_parts(17_590_000, 0) - .saturating_add(Weight::from_parts(0, 6287)) - // Standard Error: 354_091 - .saturating_add(Weight::from_parts(15_829_767, 0).saturating_mul(c.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().writes(1)) - .saturating_add(T::DbWeight::get().writes((1_u64).saturating_mul(c.into()))) - .saturating_add(Weight::from_parts(0, 2519).saturating_mul(c.into())) - .saturating_add(Weight::from_parts(0, 2603).saturating_mul(r.into())) - } -} diff --git a/cumulus/parachains/runtimes/bridge-hubs/bridge-hub-polkadot/src/weights/pallet_multisig.rs b/cumulus/parachains/runtimes/bridge-hubs/bridge-hub-polkadot/src/weights/pallet_multisig.rs deleted file mode 100644 index 4625c4f474ea..000000000000 --- a/cumulus/parachains/runtimes/bridge-hubs/bridge-hub-polkadot/src/weights/pallet_multisig.rs +++ /dev/null @@ -1,165 +0,0 @@ -// Copyright (C) Parity Technologies (UK) Ltd. -// This file is part of Cumulus. - -// Cumulus 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. - -// Cumulus 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 Cumulus. If not, see . - -//! Autogenerated weights for `pallet_multisig` -//! -//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev -//! DATE: 2023-07-31, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` -//! WORST CASE MAP SIZE: `1000000` -//! HOSTNAME: `runner-ynta1nyy-project-238-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz` -//! EXECUTION: ``, WASM-EXECUTION: `Compiled`, CHAIN: `Some("bridge-hub-polkadot-dev")`, DB CACHE: 1024 - -// Executed Command: -// ./target/production/polkadot-parachain -// benchmark -// pallet -// --chain=bridge-hub-polkadot-dev -// --wasm-execution=compiled -// --pallet=pallet_multisig -// --no-storage-info -// --no-median-slopes -// --no-min-squares -// --extrinsic=* -// --steps=50 -// --repeat=20 -// --json -// --header=./file_header.txt -// --output=./parachains/runtimes/bridge-hubs/bridge-hub-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_multisig`. -pub struct WeightInfo(PhantomData); -impl pallet_multisig::WeightInfo for WeightInfo { - /// The range of component `z` is `[0, 10000]`. - fn as_multi_threshold_1(z: u32, ) -> Weight { - // Proof Size summary in bytes: - // Measured: `0` - // Estimated: `0` - // Minimum execution time: 13_284_000 picoseconds. - Weight::from_parts(14_761_699, 0) - .saturating_add(Weight::from_parts(0, 0)) - // Standard Error: 7 - .saturating_add(Weight::from_parts(491, 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`) - /// The range of component `s` is `[2, 100]`. - /// The range of component `z` is `[0, 10000]`. - fn as_multi_create(s: u32, z: u32, ) -> Weight { - // Proof Size summary in bytes: - // Measured: `263 + s * (2 ±0)` - // Estimated: `6811` - // Minimum execution time: 44_043_000 picoseconds. - Weight::from_parts(32_303_705, 0) - .saturating_add(Weight::from_parts(0, 6811)) - // Standard Error: 1_280 - .saturating_add(Weight::from_parts(133_233, 0).saturating_mul(s.into())) - // Standard Error: 12 - .saturating_add(Weight::from_parts(1_467, 0).saturating_mul(z.into())) - .saturating_add(T::DbWeight::get().reads(1)) - .saturating_add(T::DbWeight::get().writes(1)) - } - /// Storage: `Multisig::Multisigs` (r:1 w:1) - /// Proof: `Multisig::Multisigs` (`max_values`: None, `max_size`: Some(3346), added: 5821, mode: `MaxEncodedLen`) - /// The range of component `s` is `[3, 100]`. - /// The range of component `z` is `[0, 10000]`. - fn as_multi_approve(s: u32, z: u32, ) -> Weight { - // Proof Size summary in bytes: - // Measured: `282` - // Estimated: `6811` - // Minimum execution time: 28_494_000 picoseconds. - Weight::from_parts(19_053_318, 0) - .saturating_add(Weight::from_parts(0, 6811)) - // Standard Error: 791 - .saturating_add(Weight::from_parts(112_935, 0).saturating_mul(s.into())) - // Standard Error: 7 - .saturating_add(Weight::from_parts(1_427, 0).saturating_mul(z.into())) - .saturating_add(T::DbWeight::get().reads(1)) - .saturating_add(T::DbWeight::get().writes(1)) - } - /// Storage: `Multisig::Multisigs` (r:1 w:1) - /// Proof: `Multisig::Multisigs` (`max_values`: None, `max_size`: Some(3346), added: 5821, 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 `[2, 100]`. - /// The range of component `z` is `[0, 10000]`. - fn as_multi_complete(s: u32, z: u32, ) -> Weight { - // Proof Size summary in bytes: - // Measured: `388 + s * (33 ±0)` - // Estimated: `6811` - // Minimum execution time: 49_505_000 picoseconds. - Weight::from_parts(36_407_515, 0) - .saturating_add(Weight::from_parts(0, 6811)) - // Standard Error: 1_595 - .saturating_add(Weight::from_parts(166_201, 0).saturating_mul(s.into())) - // Standard Error: 15 - .saturating_add(Weight::from_parts(1_481, 0).saturating_mul(z.into())) - .saturating_add(T::DbWeight::get().reads(2)) - .saturating_add(T::DbWeight::get().writes(2)) - } - /// Storage: `Multisig::Multisigs` (r:1 w:1) - /// Proof: `Multisig::Multisigs` (`max_values`: None, `max_size`: Some(3346), added: 5821, mode: `MaxEncodedLen`) - /// The range of component `s` is `[2, 100]`. - fn approve_as_multi_create(s: u32, ) -> Weight { - // Proof Size summary in bytes: - // Measured: `263 + s * (2 ±0)` - // Estimated: `6811` - // Minimum execution time: 30_977_000 picoseconds. - Weight::from_parts(32_222_158, 0) - .saturating_add(Weight::from_parts(0, 6811)) - // Standard Error: 1_872 - .saturating_add(Weight::from_parts(125_197, 0).saturating_mul(s.into())) - .saturating_add(T::DbWeight::get().reads(1)) - .saturating_add(T::DbWeight::get().writes(1)) - } - /// Storage: `Multisig::Multisigs` (r:1 w:1) - /// Proof: `Multisig::Multisigs` (`max_values`: None, `max_size`: Some(3346), added: 5821, mode: `MaxEncodedLen`) - /// The range of component `s` is `[2, 100]`. - fn approve_as_multi_approve(s: u32, ) -> Weight { - // Proof Size summary in bytes: - // Measured: `282` - // Estimated: `6811` - // Minimum execution time: 17_351_000 picoseconds. - Weight::from_parts(18_130_793, 0) - .saturating_add(Weight::from_parts(0, 6811)) - // Standard Error: 902 - .saturating_add(Weight::from_parts(109_485, 0).saturating_mul(s.into())) - .saturating_add(T::DbWeight::get().reads(1)) - .saturating_add(T::DbWeight::get().writes(1)) - } - /// Storage: `Multisig::Multisigs` (r:1 w:1) - /// Proof: `Multisig::Multisigs` (`max_values`: None, `max_size`: Some(3346), added: 5821, mode: `MaxEncodedLen`) - /// The range of component `s` is `[2, 100]`. - fn cancel_as_multi(s: u32, ) -> Weight { - // Proof Size summary in bytes: - // Measured: `454 + s * (1 ±0)` - // Estimated: `6811` - // Minimum execution time: 31_554_000 picoseconds. - Weight::from_parts(33_116_785, 0) - .saturating_add(Weight::from_parts(0, 6811)) - // Standard Error: 882 - .saturating_add(Weight::from_parts(119_357, 0).saturating_mul(s.into())) - .saturating_add(T::DbWeight::get().reads(1)) - .saturating_add(T::DbWeight::get().writes(1)) - } -} diff --git a/cumulus/parachains/runtimes/bridge-hubs/bridge-hub-polkadot/src/weights/pallet_session.rs b/cumulus/parachains/runtimes/bridge-hubs/bridge-hub-polkadot/src/weights/pallet_session.rs deleted file mode 100644 index 29bc576ebc80..000000000000 --- a/cumulus/parachains/runtimes/bridge-hubs/bridge-hub-polkadot/src/weights/pallet_session.rs +++ /dev/null @@ -1,81 +0,0 @@ -// Copyright (C) Parity Technologies (UK) Ltd. -// This file is part of Cumulus. - -// Cumulus 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. - -// Cumulus 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 Cumulus. If not, see . - -//! Autogenerated weights for `pallet_session` -//! -//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev -//! DATE: 2023-07-31, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` -//! WORST CASE MAP SIZE: `1000000` -//! HOSTNAME: `runner-ynta1nyy-project-238-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz` -//! EXECUTION: ``, WASM-EXECUTION: `Compiled`, CHAIN: `Some("bridge-hub-polkadot-dev")`, DB CACHE: 1024 - -// Executed Command: -// ./target/production/polkadot-parachain -// benchmark -// pallet -// --chain=bridge-hub-polkadot-dev -// --wasm-execution=compiled -// --pallet=pallet_session -// --no-storage-info -// --no-median-slopes -// --no-min-squares -// --extrinsic=* -// --steps=50 -// --repeat=20 -// --json -// --header=./file_header.txt -// --output=./parachains/runtimes/bridge-hubs/bridge-hub-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_session`. -pub struct WeightInfo(PhantomData); -impl pallet_session::WeightInfo for WeightInfo { - /// Storage: `Session::NextKeys` (r:1 w:1) - /// Proof: `Session::NextKeys` (`max_values`: None, `max_size`: None, mode: `Measured`) - /// Storage: `Session::KeyOwner` (r:1 w:1) - /// Proof: `Session::KeyOwner` (`max_values`: None, `max_size`: None, mode: `Measured`) - fn set_keys() -> Weight { - // Proof Size summary in bytes: - // Measured: `297` - // Estimated: `3762` - // Minimum execution time: 16_905_000 picoseconds. - Weight::from_parts(17_310_000, 0) - .saturating_add(Weight::from_parts(0, 3762)) - .saturating_add(T::DbWeight::get().reads(2)) - .saturating_add(T::DbWeight::get().writes(2)) - } - /// Storage: `Session::NextKeys` (r:1 w:1) - /// Proof: `Session::NextKeys` (`max_values`: None, `max_size`: None, mode: `Measured`) - /// Storage: `Session::KeyOwner` (r:0 w:1) - /// Proof: `Session::KeyOwner` (`max_values`: None, `max_size`: None, mode: `Measured`) - fn purge_keys() -> Weight { - // Proof Size summary in bytes: - // Measured: `279` - // Estimated: `3744` - // Minimum execution time: 12_511_000 picoseconds. - Weight::from_parts(13_055_000, 0) - .saturating_add(Weight::from_parts(0, 3744)) - .saturating_add(T::DbWeight::get().reads(1)) - .saturating_add(T::DbWeight::get().writes(2)) - } -} diff --git a/cumulus/parachains/runtimes/bridge-hubs/bridge-hub-polkadot/src/weights/pallet_timestamp.rs b/cumulus/parachains/runtimes/bridge-hubs/bridge-hub-polkadot/src/weights/pallet_timestamp.rs deleted file mode 100644 index 8252834cc11e..000000000000 --- a/cumulus/parachains/runtimes/bridge-hubs/bridge-hub-polkadot/src/weights/pallet_timestamp.rs +++ /dev/null @@ -1,75 +0,0 @@ -// Copyright (C) Parity Technologies (UK) Ltd. -// This file is part of Cumulus. - -// Cumulus 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. - -// Cumulus 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 Cumulus. If not, see . - -//! Autogenerated weights for `pallet_timestamp` -//! -//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev -//! DATE: 2023-07-31, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` -//! WORST CASE MAP SIZE: `1000000` -//! HOSTNAME: `runner-ynta1nyy-project-238-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz` -//! EXECUTION: ``, WASM-EXECUTION: `Compiled`, CHAIN: `Some("bridge-hub-polkadot-dev")`, DB CACHE: 1024 - -// Executed Command: -// ./target/production/polkadot-parachain -// benchmark -// pallet -// --chain=bridge-hub-polkadot-dev -// --wasm-execution=compiled -// --pallet=pallet_timestamp -// --no-storage-info -// --no-median-slopes -// --no-min-squares -// --extrinsic=* -// --steps=50 -// --repeat=20 -// --json -// --header=./file_header.txt -// --output=./parachains/runtimes/bridge-hubs/bridge-hub-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_timestamp`. -pub struct WeightInfo(PhantomData); -impl pallet_timestamp::WeightInfo for WeightInfo { - /// Storage: `Timestamp::Now` (r:1 w:1) - /// Proof: `Timestamp::Now` (`max_values`: Some(1), `max_size`: Some(8), added: 503, mode: `MaxEncodedLen`) - /// Storage: `Aura::CurrentSlot` (r:1 w:0) - /// Proof: `Aura::CurrentSlot` (`max_values`: Some(1), `max_size`: Some(8), added: 503, mode: `MaxEncodedLen`) - fn set() -> Weight { - // Proof Size summary in bytes: - // Measured: `49` - // Estimated: `1493` - // Minimum execution time: 7_675_000 picoseconds. - Weight::from_parts(7_947_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: `57` - // Estimated: `0` - // Minimum execution time: 3_342_000 picoseconds. - Weight::from_parts(3_443_000, 0) - .saturating_add(Weight::from_parts(0, 0)) - } -} diff --git a/cumulus/parachains/runtimes/bridge-hubs/bridge-hub-polkadot/src/weights/pallet_utility.rs b/cumulus/parachains/runtimes/bridge-hubs/bridge-hub-polkadot/src/weights/pallet_utility.rs deleted file mode 100644 index 5205e9fff859..000000000000 --- a/cumulus/parachains/runtimes/bridge-hubs/bridge-hub-polkadot/src/weights/pallet_utility.rs +++ /dev/null @@ -1,102 +0,0 @@ -// Copyright (C) Parity Technologies (UK) Ltd. -// This file is part of Cumulus. - -// Cumulus 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. - -// Cumulus 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 Cumulus. If not, see . - -//! Autogenerated weights for `pallet_utility` -//! -//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev -//! DATE: 2023-07-31, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` -//! WORST CASE MAP SIZE: `1000000` -//! HOSTNAME: `runner-ynta1nyy-project-238-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz` -//! EXECUTION: ``, WASM-EXECUTION: `Compiled`, CHAIN: `Some("bridge-hub-polkadot-dev")`, DB CACHE: 1024 - -// Executed Command: -// ./target/production/polkadot-parachain -// benchmark -// pallet -// --chain=bridge-hub-polkadot-dev -// --wasm-execution=compiled -// --pallet=pallet_utility -// --no-storage-info -// --no-median-slopes -// --no-min-squares -// --extrinsic=* -// --steps=50 -// --repeat=20 -// --json -// --header=./file_header.txt -// --output=./parachains/runtimes/bridge-hubs/bridge-hub-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_utility`. -pub struct WeightInfo(PhantomData); -impl pallet_utility::WeightInfo for WeightInfo { - /// The range of component `c` is `[0, 1000]`. - fn batch(c: u32, ) -> Weight { - // Proof Size summary in bytes: - // Measured: `0` - // Estimated: `0` - // Minimum execution time: 6_810_000 picoseconds. - Weight::from_parts(6_290_871, 0) - .saturating_add(Weight::from_parts(0, 0)) - // Standard Error: 1_678 - .saturating_add(Weight::from_parts(5_193_419, 0).saturating_mul(c.into())) - } - fn as_derivative() -> Weight { - // Proof Size summary in bytes: - // Measured: `0` - // Estimated: `0` - // Minimum execution time: 4_753_000 picoseconds. - Weight::from_parts(4_890_000, 0) - .saturating_add(Weight::from_parts(0, 0)) - } - /// The range of component `c` is `[0, 1000]`. - fn batch_all(c: u32, ) -> Weight { - // Proof Size summary in bytes: - // Measured: `0` - // Estimated: `0` - // Minimum execution time: 6_873_000 picoseconds. - Weight::from_parts(9_780_422, 0) - .saturating_add(Weight::from_parts(0, 0)) - // Standard Error: 2_035 - .saturating_add(Weight::from_parts(5_473_943, 0).saturating_mul(c.into())) - } - fn dispatch_as() -> Weight { - // Proof Size summary in bytes: - // Measured: `0` - // Estimated: `0` - // Minimum execution time: 8_443_000 picoseconds. - Weight::from_parts(8_904_000, 0) - .saturating_add(Weight::from_parts(0, 0)) - } - /// The range of component `c` is `[0, 1000]`. - fn force_batch(c: u32, ) -> Weight { - // Proof Size summary in bytes: - // Measured: `0` - // Estimated: `0` - // Minimum execution time: 6_820_000 picoseconds. - Weight::from_parts(8_206_355, 0) - .saturating_add(Weight::from_parts(0, 0)) - // Standard Error: 1_327 - .saturating_add(Weight::from_parts(5_187_839, 0).saturating_mul(c.into())) - } -} diff --git a/cumulus/parachains/runtimes/bridge-hubs/bridge-hub-polkadot/src/weights/pallet_xcm.rs b/cumulus/parachains/runtimes/bridge-hubs/bridge-hub-polkadot/src/weights/pallet_xcm.rs deleted file mode 100644 index ffc5fa2fc23e..000000000000 --- a/cumulus/parachains/runtimes/bridge-hubs/bridge-hub-polkadot/src/weights/pallet_xcm.rs +++ /dev/null @@ -1,289 +0,0 @@ -// Copyright (C) Parity Technologies (UK) Ltd. -// This file is part of Cumulus. - -// Cumulus 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. - -// Cumulus 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 Cumulus. If not, see . - -//! Autogenerated weights for `pallet_xcm` -//! -//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev -//! DATE: 2023-07-31, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` -//! WORST CASE MAP SIZE: `1000000` -//! HOSTNAME: `runner-ynta1nyy-project-238-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz` -//! EXECUTION: ``, WASM-EXECUTION: `Compiled`, CHAIN: `Some("bridge-hub-polkadot-dev")`, DB CACHE: 1024 - -// Executed Command: -// ./target/production/polkadot-parachain -// benchmark -// pallet -// --chain=bridge-hub-polkadot-dev -// --wasm-execution=compiled -// --pallet=pallet_xcm -// --no-storage-info -// --no-median-slopes -// --no-min-squares -// --extrinsic=* -// --steps=50 -// --repeat=20 -// --json -// --header=./file_header.txt -// --output=./parachains/runtimes/bridge-hubs/bridge-hub-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_xcm`. -pub struct WeightInfo(PhantomData); -impl pallet_xcm::WeightInfo for WeightInfo { - /// Storage: `PolkadotXcm::SupportedVersion` (r:1 w:0) - /// Proof: `PolkadotXcm::SupportedVersion` (`max_values`: None, `max_size`: None, mode: `Measured`) - /// Storage: `PolkadotXcm::VersionDiscoveryQueue` (r:1 w:1) - /// Proof: `PolkadotXcm::VersionDiscoveryQueue` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) - /// Storage: `PolkadotXcm::SafeXcmVersion` (r:1 w:0) - /// Proof: `PolkadotXcm::SafeXcmVersion` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) - /// Storage: `ParachainSystem::HostConfiguration` (r:1 w:0) - /// Proof: `ParachainSystem::HostConfiguration` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) - /// Storage: `ParachainSystem::PendingUpwardMessages` (r:1 w:1) - /// Proof: `ParachainSystem::PendingUpwardMessages` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) - fn send() -> Weight { - // Proof Size summary in bytes: - // Measured: `38` - // Estimated: `3503` - // Minimum execution time: 25_510_000 picoseconds. - Weight::from_parts(25_755_000, 0) - .saturating_add(Weight::from_parts(0, 3503)) - .saturating_add(T::DbWeight::get().reads(5)) - .saturating_add(T::DbWeight::get().writes(2)) - } - /// Storage: `ParachainInfo::ParachainId` (r:1 w:0) - /// Proof: `ParachainInfo::ParachainId` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`) - fn teleport_assets() -> Weight { - // Proof Size summary in bytes: - // Measured: `32` - // Estimated: `1489` - // Minimum execution time: 24_125_000 picoseconds. - Weight::from_parts(25_559_000, 0) - .saturating_add(Weight::from_parts(0, 1489)) - .saturating_add(T::DbWeight::get().reads(1)) - } - /// Storage: `Benchmark::Override` (r:0 w:0) - /// Proof: `Benchmark::Override` (`max_values`: None, `max_size`: None, mode: `Measured`) - fn reserve_transfer_assets() -> Weight { - // Proof Size summary in bytes: - // Measured: `0` - // Estimated: `0` - // Minimum execution time: 18_446_744_073_709_551_000 picoseconds. - Weight::from_parts(18_446_744_073_709_551_000, 0) - .saturating_add(Weight::from_parts(0, 0)) - } - /// Storage: `Benchmark::Override` (r:0 w:0) - /// Proof: `Benchmark::Override` (`max_values`: None, `max_size`: None, mode: `Measured`) - fn execute() -> Weight { - // Proof Size summary in bytes: - // Measured: `0` - // Estimated: `0` - // Minimum execution time: 18_446_744_073_709_551_000 picoseconds. - Weight::from_parts(18_446_744_073_709_551_000, 0) - .saturating_add(Weight::from_parts(0, 0)) - } - /// Storage: `PolkadotXcm::SupportedVersion` (r:0 w:1) - /// Proof: `PolkadotXcm::SupportedVersion` (`max_values`: None, `max_size`: None, mode: `Measured`) - fn force_xcm_version() -> Weight { - // Proof Size summary in bytes: - // Measured: `0` - // Estimated: `0` - // Minimum execution time: 8_625_000 picoseconds. - Weight::from_parts(9_232_000, 0) - .saturating_add(Weight::from_parts(0, 0)) - .saturating_add(T::DbWeight::get().writes(1)) - } - /// Storage: `PolkadotXcm::SafeXcmVersion` (r:0 w:1) - /// Proof: `PolkadotXcm::SafeXcmVersion` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) - fn force_default_xcm_version() -> Weight { - // Proof Size summary in bytes: - // Measured: `0` - // Estimated: `0` - // Minimum execution time: 2_690_000 picoseconds. - Weight::from_parts(2_906_000, 0) - .saturating_add(Weight::from_parts(0, 0)) - .saturating_add(T::DbWeight::get().writes(1)) - } - /// Storage: `PolkadotXcm::VersionNotifiers` (r:1 w:1) - /// Proof: `PolkadotXcm::VersionNotifiers` (`max_values`: None, `max_size`: None, mode: `Measured`) - /// Storage: `PolkadotXcm::QueryCounter` (r:1 w:1) - /// Proof: `PolkadotXcm::QueryCounter` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) - /// Storage: `PolkadotXcm::SupportedVersion` (r:1 w:0) - /// Proof: `PolkadotXcm::SupportedVersion` (`max_values`: None, `max_size`: None, mode: `Measured`) - /// Storage: `PolkadotXcm::VersionDiscoveryQueue` (r:1 w:1) - /// Proof: `PolkadotXcm::VersionDiscoveryQueue` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) - /// Storage: `PolkadotXcm::SafeXcmVersion` (r:1 w:0) - /// Proof: `PolkadotXcm::SafeXcmVersion` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) - /// Storage: `ParachainSystem::HostConfiguration` (r:1 w:0) - /// Proof: `ParachainSystem::HostConfiguration` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) - /// Storage: `ParachainSystem::PendingUpwardMessages` (r:1 w:1) - /// Proof: `ParachainSystem::PendingUpwardMessages` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) - /// Storage: `PolkadotXcm::Queries` (r:0 w:1) - /// Proof: `PolkadotXcm::Queries` (`max_values`: None, `max_size`: None, mode: `Measured`) - fn force_subscribe_version_notify() -> Weight { - // Proof Size summary in bytes: - // Measured: `38` - // Estimated: `3503` - // Minimum execution time: 30_131_000 picoseconds. - Weight::from_parts(31_138_000, 0) - .saturating_add(Weight::from_parts(0, 3503)) - .saturating_add(T::DbWeight::get().reads(7)) - .saturating_add(T::DbWeight::get().writes(5)) - } - /// Storage: `PolkadotXcm::VersionNotifiers` (r:1 w:1) - /// Proof: `PolkadotXcm::VersionNotifiers` (`max_values`: None, `max_size`: None, mode: `Measured`) - /// Storage: `PolkadotXcm::SupportedVersion` (r:1 w:0) - /// Proof: `PolkadotXcm::SupportedVersion` (`max_values`: None, `max_size`: None, mode: `Measured`) - /// Storage: `PolkadotXcm::VersionDiscoveryQueue` (r:1 w:1) - /// Proof: `PolkadotXcm::VersionDiscoveryQueue` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) - /// Storage: `PolkadotXcm::SafeXcmVersion` (r:1 w:0) - /// Proof: `PolkadotXcm::SafeXcmVersion` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) - /// Storage: `ParachainSystem::HostConfiguration` (r:1 w:0) - /// Proof: `ParachainSystem::HostConfiguration` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) - /// Storage: `ParachainSystem::PendingUpwardMessages` (r:1 w:1) - /// Proof: `ParachainSystem::PendingUpwardMessages` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) - /// Storage: `PolkadotXcm::Queries` (r:0 w:1) - /// Proof: `PolkadotXcm::Queries` (`max_values`: None, `max_size`: None, mode: `Measured`) - fn force_unsubscribe_version_notify() -> Weight { - // Proof Size summary in bytes: - // Measured: `220` - // Estimated: `3685` - // Minimum execution time: 32_411_000 picoseconds. - Weight::from_parts(33_009_000, 0) - .saturating_add(Weight::from_parts(0, 3685)) - .saturating_add(T::DbWeight::get().reads(6)) - .saturating_add(T::DbWeight::get().writes(4)) - } - /// Storage: `PolkadotXcm::XcmExecutionSuspended` (r:0 w:1) - /// Proof: `PolkadotXcm::XcmExecutionSuspended` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) - fn force_suspension() -> Weight { - // Proof Size summary in bytes: - // Measured: `0` - // Estimated: `0` - // Minimum execution time: 2_548_000 picoseconds. - Weight::from_parts(2_727_000, 0) - .saturating_add(Weight::from_parts(0, 0)) - .saturating_add(T::DbWeight::get().writes(1)) - } - /// Storage: `PolkadotXcm::SupportedVersion` (r:4 w:2) - /// Proof: `PolkadotXcm::SupportedVersion` (`max_values`: None, `max_size`: None, mode: `Measured`) - fn migrate_supported_version() -> Weight { - // Proof Size summary in bytes: - // Measured: `95` - // Estimated: `10985` - // Minimum execution time: 15_298_000 picoseconds. - Weight::from_parts(15_964_000, 0) - .saturating_add(Weight::from_parts(0, 10985)) - .saturating_add(T::DbWeight::get().reads(4)) - .saturating_add(T::DbWeight::get().writes(2)) - } - /// Storage: `PolkadotXcm::VersionNotifiers` (r:4 w:2) - /// Proof: `PolkadotXcm::VersionNotifiers` (`max_values`: None, `max_size`: None, mode: `Measured`) - fn migrate_version_notifiers() -> Weight { - // Proof Size summary in bytes: - // Measured: `99` - // Estimated: `10989` - // Minimum execution time: 14_927_000 picoseconds. - Weight::from_parts(15_528_000, 0) - .saturating_add(Weight::from_parts(0, 10989)) - .saturating_add(T::DbWeight::get().reads(4)) - .saturating_add(T::DbWeight::get().writes(2)) - } - /// Storage: `PolkadotXcm::VersionNotifyTargets` (r:5 w:0) - /// Proof: `PolkadotXcm::VersionNotifyTargets` (`max_values`: None, `max_size`: None, mode: `Measured`) - fn already_notified_target() -> Weight { - // Proof Size summary in bytes: - // Measured: `106` - // Estimated: `13471` - // Minimum execution time: 16_409_000 picoseconds. - Weight::from_parts(16_960_000, 0) - .saturating_add(Weight::from_parts(0, 13471)) - .saturating_add(T::DbWeight::get().reads(5)) - } - /// Storage: `PolkadotXcm::VersionNotifyTargets` (r:2 w:1) - /// Proof: `PolkadotXcm::VersionNotifyTargets` (`max_values`: None, `max_size`: None, mode: `Measured`) - /// Storage: `PolkadotXcm::SupportedVersion` (r:1 w:0) - /// Proof: `PolkadotXcm::SupportedVersion` (`max_values`: None, `max_size`: None, mode: `Measured`) - /// Storage: `PolkadotXcm::VersionDiscoveryQueue` (r:1 w:1) - /// Proof: `PolkadotXcm::VersionDiscoveryQueue` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) - /// Storage: `PolkadotXcm::SafeXcmVersion` (r:1 w:0) - /// Proof: `PolkadotXcm::SafeXcmVersion` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) - /// Storage: `ParachainSystem::HostConfiguration` (r:1 w:0) - /// Proof: `ParachainSystem::HostConfiguration` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) - /// Storage: `ParachainSystem::PendingUpwardMessages` (r:1 w:1) - /// Proof: `ParachainSystem::PendingUpwardMessages` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) - fn notify_current_targets() -> Weight { - // Proof Size summary in bytes: - // Measured: `106` - // Estimated: `6046` - // Minimum execution time: 28_204_000 picoseconds. - Weight::from_parts(28_641_000, 0) - .saturating_add(Weight::from_parts(0, 6046)) - .saturating_add(T::DbWeight::get().reads(7)) - .saturating_add(T::DbWeight::get().writes(3)) - } - /// Storage: `PolkadotXcm::VersionNotifyTargets` (r:3 w:0) - /// Proof: `PolkadotXcm::VersionNotifyTargets` (`max_values`: None, `max_size`: None, mode: `Measured`) - fn notify_target_migration_fail() -> Weight { - // Proof Size summary in bytes: - // Measured: `136` - // Estimated: `8551` - // Minimum execution time: 8_576_000 picoseconds. - Weight::from_parts(8_895_000, 0) - .saturating_add(Weight::from_parts(0, 8551)) - .saturating_add(T::DbWeight::get().reads(3)) - } - /// Storage: `PolkadotXcm::VersionNotifyTargets` (r:4 w:2) - /// Proof: `PolkadotXcm::VersionNotifyTargets` (`max_values`: None, `max_size`: None, mode: `Measured`) - fn migrate_version_notify_targets() -> Weight { - // Proof Size summary in bytes: - // Measured: `106` - // Estimated: `10996` - // Minimum execution time: 15_263_000 picoseconds. - Weight::from_parts(15_726_000, 0) - .saturating_add(Weight::from_parts(0, 10996)) - .saturating_add(T::DbWeight::get().reads(4)) - .saturating_add(T::DbWeight::get().writes(2)) - } - /// Storage: `PolkadotXcm::VersionNotifyTargets` (r:4 w:2) - /// Proof: `PolkadotXcm::VersionNotifyTargets` (`max_values`: None, `max_size`: None, mode: `Measured`) - /// Storage: `PolkadotXcm::SupportedVersion` (r:1 w:0) - /// Proof: `PolkadotXcm::SupportedVersion` (`max_values`: None, `max_size`: None, mode: `Measured`) - /// Storage: `PolkadotXcm::VersionDiscoveryQueue` (r:1 w:1) - /// Proof: `PolkadotXcm::VersionDiscoveryQueue` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) - /// Storage: `PolkadotXcm::SafeXcmVersion` (r:1 w:0) - /// Proof: `PolkadotXcm::SafeXcmVersion` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) - /// Storage: `ParachainSystem::HostConfiguration` (r:1 w:0) - /// Proof: `ParachainSystem::HostConfiguration` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) - /// Storage: `ParachainSystem::PendingUpwardMessages` (r:1 w:1) - /// Proof: `ParachainSystem::PendingUpwardMessages` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) - fn migrate_and_notify_old_targets() -> Weight { - // Proof Size summary in bytes: - // Measured: `112` - // Estimated: `11002` - // Minimum execution time: 34_186_000 picoseconds. - Weight::from_parts(35_204_000, 0) - .saturating_add(Weight::from_parts(0, 11002)) - .saturating_add(T::DbWeight::get().reads(9)) - .saturating_add(T::DbWeight::get().writes(4)) - } -} diff --git a/cumulus/parachains/runtimes/bridge-hubs/bridge-hub-polkadot/src/weights/paritydb_weights.rs b/cumulus/parachains/runtimes/bridge-hubs/bridge-hub-polkadot/src/weights/paritydb_weights.rs deleted file mode 100644 index 25679703831a..000000000000 --- a/cumulus/parachains/runtimes/bridge-hubs/bridge-hub-polkadot/src/weights/paritydb_weights.rs +++ /dev/null @@ -1,63 +0,0 @@ -// This file is part of Substrate. - -// 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. - -pub mod constants { - use frame_support::{ - parameter_types, - weights::{constants, RuntimeDbWeight}, - }; - - parameter_types! { - /// `ParityDB` can be enabled with a feature flag, but is still experimental. These weights - /// are available for brave runtime engineers who may want to try this out as default. - pub const ParityDbWeight: RuntimeDbWeight = RuntimeDbWeight { - read: 8_000 * constants::WEIGHT_REF_TIME_PER_NANOS, - write: 50_000 * constants::WEIGHT_REF_TIME_PER_NANOS, - }; - } - - #[cfg(test)] - mod test_db_weights { - use super::constants::ParityDbWeight as W; - use frame_support::weights::constants; - - /// Checks that all weights exist and have sane values. - // NOTE: If this test fails but you are sure that the generated values are fine, - // you can delete it. - #[test] - fn sane() { - // At least 1 µs. - assert!( - W::get().reads(1).ref_time() >= constants::WEIGHT_REF_TIME_PER_MICROS, - "Read weight should be at least 1 µs." - ); - assert!( - W::get().writes(1).ref_time() >= constants::WEIGHT_REF_TIME_PER_MICROS, - "Write weight should be at least 1 µs." - ); - // At most 1 ms. - assert!( - W::get().reads(1).ref_time() <= constants::WEIGHT_REF_TIME_PER_MILLIS, - "Read weight should be at most 1 ms." - ); - assert!( - W::get().writes(1).ref_time() <= constants::WEIGHT_REF_TIME_PER_MILLIS, - "Write weight should be at most 1 ms." - ); - } - } -} diff --git a/cumulus/parachains/runtimes/bridge-hubs/bridge-hub-polkadot/src/weights/rocksdb_weights.rs b/cumulus/parachains/runtimes/bridge-hubs/bridge-hub-polkadot/src/weights/rocksdb_weights.rs deleted file mode 100644 index 3dd817aa6f13..000000000000 --- a/cumulus/parachains/runtimes/bridge-hubs/bridge-hub-polkadot/src/weights/rocksdb_weights.rs +++ /dev/null @@ -1,63 +0,0 @@ -// This file is part of Substrate. - -// 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. - -pub mod constants { - use frame_support::{ - parameter_types, - weights::{constants, RuntimeDbWeight}, - }; - - parameter_types! { - /// By default, Substrate uses `RocksDB`, so this will be the weight used throughout - /// the runtime. - pub const RocksDbWeight: RuntimeDbWeight = RuntimeDbWeight { - read: 25_000 * constants::WEIGHT_REF_TIME_PER_NANOS, - write: 100_000 * constants::WEIGHT_REF_TIME_PER_NANOS, - }; - } - - #[cfg(test)] - mod test_db_weights { - use super::constants::RocksDbWeight as W; - use frame_support::weights::constants; - - /// Checks that all weights exist and have sane values. - // NOTE: If this test fails but you are sure that the generated values are fine, - // you can delete it. - #[test] - fn sane() { - // At least 1 µs. - assert!( - W::get().reads(1).ref_time() >= constants::WEIGHT_REF_TIME_PER_MICROS, - "Read weight should be at least 1 µs." - ); - assert!( - W::get().writes(1).ref_time() >= constants::WEIGHT_REF_TIME_PER_MICROS, - "Write weight should be at least 1 µs." - ); - // At most 1 ms. - assert!( - W::get().reads(1).ref_time() <= constants::WEIGHT_REF_TIME_PER_MILLIS, - "Read weight should be at most 1 ms." - ); - assert!( - W::get().writes(1).ref_time() <= constants::WEIGHT_REF_TIME_PER_MILLIS, - "Write weight should be at most 1 ms." - ); - } - } -} diff --git a/cumulus/parachains/runtimes/bridge-hubs/bridge-hub-polkadot/src/weights/xcm/mod.rs b/cumulus/parachains/runtimes/bridge-hubs/bridge-hub-polkadot/src/weights/xcm/mod.rs deleted file mode 100644 index 4f8c2dec7a8c..000000000000 --- a/cumulus/parachains/runtimes/bridge-hubs/bridge-hub-polkadot/src/weights/xcm/mod.rs +++ /dev/null @@ -1,259 +0,0 @@ -// Copyright (C) Parity Technologies (UK) Ltd. -// This file is part of Cumulus. - -// Cumulus 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. - -// Cumulus 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 Cumulus. If not, see . - -mod pallet_xcm_benchmarks_fungible; -mod pallet_xcm_benchmarks_generic; - -use crate::{xcm_config::MaxAssetsIntoHolding, Runtime}; -use frame_support::weights::Weight; -use pallet_xcm_benchmarks_fungible::WeightInfo as XcmFungibleWeight; -use pallet_xcm_benchmarks_generic::WeightInfo as XcmGeneric; -use sp_std::prelude::*; -use xcm::{latest::prelude::*, DoubleEncoded}; - -trait WeighMultiAssets { - fn weigh_multi_assets(&self, weight: Weight) -> Weight; -} - -const MAX_ASSETS: u64 = 100; - -impl WeighMultiAssets for MultiAssetFilter { - fn weigh_multi_assets(&self, weight: Weight) -> Weight { - match self { - Self::Definite(assets) => weight.saturating_mul(assets.inner().iter().count() as u64), - Self::Wild(asset) => match asset { - All => weight.saturating_mul(MAX_ASSETS), - AllOf { fun, .. } => match fun { - WildFungibility::Fungible => weight, - // Magic number 2 has to do with the fact that we could have up to 2 times - // MaxAssetsIntoHolding in the worst-case scenario. - WildFungibility::NonFungible => - weight.saturating_mul((MaxAssetsIntoHolding::get() * 2) as u64), - }, - AllCounted(count) => weight.saturating_mul(MAX_ASSETS.min(*count as u64)), - AllOfCounted { count, .. } => weight.saturating_mul(MAX_ASSETS.min(*count as u64)), - }, - } - } -} - -impl WeighMultiAssets for MultiAssets { - fn weigh_multi_assets(&self, weight: Weight) -> Weight { - weight.saturating_mul(self.inner().iter().count() as u64) - } -} - -pub struct BridgeHubPolkadotXcmWeight(core::marker::PhantomData); -impl XcmWeightInfo for BridgeHubPolkadotXcmWeight { - fn withdraw_asset(assets: &MultiAssets) -> Weight { - assets.weigh_multi_assets(XcmFungibleWeight::::withdraw_asset()) - } - // Currently there is no trusted reserve (`IsReserve = ()`), - // but we need this hack for `pallet_xcm::reserve_transfer_assets` - // (TODO) fix https://github.com/paritytech/polkadot/pull/7424 - // (TODO) fix https://github.com/paritytech/polkadot/pull/7546 - fn reserve_asset_deposited(_assets: &MultiAssets) -> Weight { - // TODO: if we change `IsReserve = ...` then use this line... - // TODO: or if remote weight estimation is fixed, then remove - // TODO: hardcoded - fix https://github.com/paritytech/cumulus/issues/1974 - let hardcoded_weight = Weight::from_parts(1_000_000_000_u64, 0); - hardcoded_weight.min(XcmFungibleWeight::::reserve_asset_deposited()) - } - fn receive_teleported_asset(assets: &MultiAssets) -> Weight { - assets.weigh_multi_assets(XcmFungibleWeight::::receive_teleported_asset()) - } - fn query_response( - _query_id: &u64, - _response: &Response, - _max_weight: &Weight, - _querier: &Option, - ) -> Weight { - XcmGeneric::::query_response() - } - fn transfer_asset(assets: &MultiAssets, _dest: &MultiLocation) -> Weight { - assets.weigh_multi_assets(XcmFungibleWeight::::transfer_asset()) - } - fn transfer_reserve_asset( - assets: &MultiAssets, - _dest: &MultiLocation, - _xcm: &Xcm<()>, - ) -> Weight { - assets.weigh_multi_assets(XcmFungibleWeight::::transfer_reserve_asset()) - } - fn transact( - _origin_type: &OriginKind, - _require_weight_at_most: &Weight, - _call: &DoubleEncoded, - ) -> Weight { - XcmGeneric::::transact() - } - fn hrmp_new_channel_open_request( - _sender: &u32, - _max_message_size: &u32, - _max_capacity: &u32, - ) -> Weight { - // XCM Executor does not currently support HRMP channel operations - Weight::MAX - } - fn hrmp_channel_accepted(_recipient: &u32) -> Weight { - // XCM Executor does not currently support HRMP channel operations - Weight::MAX - } - fn hrmp_channel_closing(_initiator: &u32, _sender: &u32, _recipient: &u32) -> Weight { - // XCM Executor does not currently support HRMP channel operations - Weight::MAX - } - fn clear_origin() -> Weight { - XcmGeneric::::clear_origin() - } - fn descend_origin(_who: &InteriorMultiLocation) -> Weight { - XcmGeneric::::descend_origin() - } - fn report_error(_query_response_info: &QueryResponseInfo) -> Weight { - XcmGeneric::::report_error() - } - - fn deposit_asset(assets: &MultiAssetFilter, _dest: &MultiLocation) -> Weight { - // Hardcoded till the XCM pallet is fixed - let hardcoded_weight = Weight::from_parts(1_000_000_000_u64, 0); - let weight = assets.weigh_multi_assets(XcmFungibleWeight::::deposit_asset()); - hardcoded_weight.min(weight) - } - fn deposit_reserve_asset( - assets: &MultiAssetFilter, - _dest: &MultiLocation, - _xcm: &Xcm<()>, - ) -> Weight { - assets.weigh_multi_assets(XcmFungibleWeight::::deposit_reserve_asset()) - } - fn exchange_asset(_give: &MultiAssetFilter, _receive: &MultiAssets, _maximal: &bool) -> Weight { - Weight::MAX - } - fn initiate_reserve_withdraw( - assets: &MultiAssetFilter, - _reserve: &MultiLocation, - _xcm: &Xcm<()>, - ) -> Weight { - assets.weigh_multi_assets(XcmFungibleWeight::::initiate_reserve_withdraw()) - } - fn initiate_teleport( - assets: &MultiAssetFilter, - _dest: &MultiLocation, - _xcm: &Xcm<()>, - ) -> Weight { - // Hardcoded till the XCM pallet is fixed - let hardcoded_weight = Weight::from_parts(200_000_000_u64, 0); - let weight = assets.weigh_multi_assets(XcmFungibleWeight::::initiate_teleport()); - hardcoded_weight.min(weight) - } - fn report_holding(_response_info: &QueryResponseInfo, _assets: &MultiAssetFilter) -> Weight { - XcmGeneric::::report_holding() - } - fn buy_execution(_fees: &MultiAsset, _weight_limit: &WeightLimit) -> Weight { - XcmGeneric::::buy_execution() - } - fn refund_surplus() -> Weight { - XcmGeneric::::refund_surplus() - } - fn set_error_handler(_xcm: &Xcm) -> Weight { - XcmGeneric::::set_error_handler() - } - fn set_appendix(_xcm: &Xcm) -> Weight { - XcmGeneric::::set_appendix() - } - fn clear_error() -> Weight { - XcmGeneric::::clear_error() - } - fn claim_asset(_assets: &MultiAssets, _ticket: &MultiLocation) -> Weight { - XcmGeneric::::claim_asset() - } - fn trap(_code: &u64) -> Weight { - XcmGeneric::::trap() - } - fn subscribe_version(_query_id: &QueryId, _max_response_weight: &Weight) -> Weight { - XcmGeneric::::subscribe_version() - } - fn unsubscribe_version() -> Weight { - XcmGeneric::::unsubscribe_version() - } - fn burn_asset(assets: &MultiAssets) -> Weight { - assets.weigh_multi_assets(XcmGeneric::::burn_asset()) - } - fn expect_asset(assets: &MultiAssets) -> Weight { - assets.weigh_multi_assets(XcmGeneric::::expect_asset()) - } - fn expect_origin(_origin: &Option) -> Weight { - XcmGeneric::::expect_origin() - } - fn expect_error(_error: &Option<(u32, XcmError)>) -> Weight { - XcmGeneric::::expect_error() - } - fn expect_transact_status(_transact_status: &MaybeErrorCode) -> Weight { - XcmGeneric::::expect_transact_status() - } - fn query_pallet(_module_name: &Vec, _response_info: &QueryResponseInfo) -> Weight { - XcmGeneric::::query_pallet() - } - fn expect_pallet( - _index: &u32, - _name: &Vec, - _module_name: &Vec, - _crate_major: &u32, - _min_crate_minor: &u32, - ) -> Weight { - XcmGeneric::::expect_pallet() - } - fn report_transact_status(_response_info: &QueryResponseInfo) -> Weight { - XcmGeneric::::report_transact_status() - } - fn clear_transact_status() -> Weight { - XcmGeneric::::clear_transact_status() - } - fn universal_origin(_: &Junction) -> Weight { - Weight::MAX - } - fn export_message(_: &NetworkId, _: &Junctions, _: &Xcm<()>) -> Weight { - Weight::MAX - } - fn lock_asset(_: &MultiAsset, _: &MultiLocation) -> Weight { - Weight::MAX - } - fn unlock_asset(_: &MultiAsset, _: &MultiLocation) -> Weight { - Weight::MAX - } - fn note_unlockable(_: &MultiAsset, _: &MultiLocation) -> Weight { - Weight::MAX - } - fn request_unlock(_: &MultiAsset, _: &MultiLocation) -> Weight { - Weight::MAX - } - fn set_fees_mode(_: &bool) -> Weight { - XcmGeneric::::set_fees_mode() - } - fn set_topic(_topic: &[u8; 32]) -> Weight { - XcmGeneric::::set_topic() - } - fn clear_topic() -> Weight { - XcmGeneric::::clear_topic() - } - fn alias_origin(_: &MultiLocation) -> Weight { - // XCM Executor does not currently support alias origin operations - Weight::MAX - } - fn unpaid_execution(_: &WeightLimit, _: &Option) -> Weight { - XcmGeneric::::unpaid_execution() - } -} diff --git a/cumulus/parachains/runtimes/bridge-hubs/bridge-hub-polkadot/src/weights/xcm/pallet_xcm_benchmarks_fungible.rs b/cumulus/parachains/runtimes/bridge-hubs/bridge-hub-polkadot/src/weights/xcm/pallet_xcm_benchmarks_fungible.rs deleted file mode 100644 index 7c525dca051d..000000000000 --- a/cumulus/parachains/runtimes/bridge-hubs/bridge-hub-polkadot/src/weights/xcm/pallet_xcm_benchmarks_fungible.rs +++ /dev/null @@ -1,190 +0,0 @@ -// Copyright (C) Parity Technologies (UK) Ltd. -// This file is part of Cumulus. - -// Cumulus 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. - -// Cumulus 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 Cumulus. 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-07-31, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` -//! WORST CASE MAP SIZE: `1000000` -//! HOSTNAME: `runner-ynta1nyy-project-238-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz` -//! EXECUTION: , WASM-EXECUTION: Compiled, CHAIN: Some("bridge-hub-polkadot-dev"), DB CACHE: 1024 - -// Executed Command: -// ./target/production/polkadot-parachain -// benchmark -// pallet -// --template=./templates/xcm-bench-template.hbs -// --chain=bridge-hub-polkadot-dev -// --wasm-execution=compiled -// --pallet=pallet_xcm_benchmarks::fungible -// --no-storage-info -// --no-median-slopes -// --no-min-squares -// --extrinsic=* -// --steps=50 -// --repeat=20 -// --json -// --header=./file_header.txt -// --output=./parachains/runtimes/bridge-hubs/bridge-hub-polkadot/src/weights/xcm/pallet_xcm_benchmarks_fungible.rs - -#![cfg_attr(rustfmt, rustfmt_skip)] -#![allow(unused_parens)] -#![allow(unused_imports)] - -use frame_support::{traits::Get, weights::Weight}; -use sp_std::marker::PhantomData; - -/// Weights for `pallet_xcm_benchmarks::fungible`. -pub struct WeightInfo(PhantomData); -impl WeightInfo { - // Storage: `System::Account` (r:1 w:1) - // Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`) - pub fn withdraw_asset() -> Weight { - // Proof Size summary in bytes: - // Measured: `101` - // Estimated: `3593` - // Minimum execution time: 23_862_000 picoseconds. - Weight::from_parts(24_603_000, 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`) - pub fn transfer_asset() -> Weight { - // Proof Size summary in bytes: - // Measured: `153` - // Estimated: `6196` - // Minimum execution time: 51_101_000 picoseconds. - Weight::from_parts(51_976_000, 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: `ParachainInfo::ParachainId` (r:1 w:0) - // Proof: `ParachainInfo::ParachainId` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`) - // Storage: `PolkadotXcm::SupportedVersion` (r:1 w:0) - // Proof: `PolkadotXcm::SupportedVersion` (`max_values`: None, `max_size`: None, mode: `Measured`) - // Storage: `PolkadotXcm::VersionDiscoveryQueue` (r:1 w:1) - // Proof: `PolkadotXcm::VersionDiscoveryQueue` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) - // Storage: `PolkadotXcm::SafeXcmVersion` (r:1 w:0) - // Proof: `PolkadotXcm::SafeXcmVersion` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) - // Storage: `ParachainSystem::HostConfiguration` (r:1 w:0) - // Proof: `ParachainSystem::HostConfiguration` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) - // Storage: `ParachainSystem::PendingUpwardMessages` (r:1 w:1) - // Proof: `ParachainSystem::PendingUpwardMessages` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) - pub fn transfer_reserve_asset() -> Weight { - // Proof Size summary in bytes: - // Measured: `223` - // Estimated: `6196` - // Minimum execution time: 72_983_000 picoseconds. - Weight::from_parts(74_099_000, 6196) - .saturating_add(T::DbWeight::get().reads(8)) - .saturating_add(T::DbWeight::get().writes(4)) - } - // Storage: `Benchmark::Override` (r:0 w:0) - // Proof: `Benchmark::Override` (`max_values`: None, `max_size`: None, mode: `Measured`) - pub fn reserve_asset_deposited() -> Weight { - // Proof Size summary in bytes: - // Measured: `0` - // Estimated: `0` - // Minimum execution time: 500_000_000_000 picoseconds. - Weight::from_parts(500_000_000_000, 0) - } - // Storage: `ParachainInfo::ParachainId` (r:1 w:0) - // Proof: `ParachainInfo::ParachainId` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`) - // Storage: `PolkadotXcm::SupportedVersion` (r:1 w:0) - // Proof: `PolkadotXcm::SupportedVersion` (`max_values`: None, `max_size`: None, mode: `Measured`) - // Storage: `PolkadotXcm::VersionDiscoveryQueue` (r:1 w:1) - // Proof: `PolkadotXcm::VersionDiscoveryQueue` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) - // Storage: `PolkadotXcm::SafeXcmVersion` (r:1 w:0) - // Proof: `PolkadotXcm::SafeXcmVersion` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) - // Storage: `ParachainSystem::HostConfiguration` (r:1 w:0) - // Proof: `ParachainSystem::HostConfiguration` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) - // Storage: `ParachainSystem::PendingUpwardMessages` (r:1 w:1) - // Proof: `ParachainSystem::PendingUpwardMessages` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) - pub fn initiate_reserve_withdraw() -> Weight { - // Proof Size summary in bytes: - // Measured: `70` - // Estimated: `3535` - // Minimum execution time: 27_131_000 picoseconds. - Weight::from_parts(28_062_000, 3535) - .saturating_add(T::DbWeight::get().reads(6)) - .saturating_add(T::DbWeight::get().writes(2)) - } - pub fn receive_teleported_asset() -> Weight { - // Proof Size summary in bytes: - // Measured: `0` - // Estimated: `0` - // Minimum execution time: 3_564_000 picoseconds. - Weight::from_parts(3_738_000, 0) - } - // Storage: `System::Account` (r:1 w:1) - // Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`) - pub fn deposit_asset() -> Weight { - // Proof Size summary in bytes: - // Measured: `52` - // Estimated: `3593` - // Minimum execution time: 24_453_000 picoseconds. - Weight::from_parts(25_216_000, 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: `ParachainInfo::ParachainId` (r:1 w:0) - // Proof: `ParachainInfo::ParachainId` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`) - // Storage: `PolkadotXcm::SupportedVersion` (r:1 w:0) - // Proof: `PolkadotXcm::SupportedVersion` (`max_values`: None, `max_size`: None, mode: `Measured`) - // Storage: `PolkadotXcm::VersionDiscoveryQueue` (r:1 w:1) - // Proof: `PolkadotXcm::VersionDiscoveryQueue` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) - // Storage: `PolkadotXcm::SafeXcmVersion` (r:1 w:0) - // Proof: `PolkadotXcm::SafeXcmVersion` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) - // Storage: `ParachainSystem::HostConfiguration` (r:1 w:0) - // Proof: `ParachainSystem::HostConfiguration` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) - // Storage: `ParachainSystem::PendingUpwardMessages` (r:1 w:1) - // Proof: `ParachainSystem::PendingUpwardMessages` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) - pub fn deposit_reserve_asset() -> Weight { - // Proof Size summary in bytes: - // Measured: `122` - // Estimated: `3593` - // Minimum execution time: 48_913_000 picoseconds. - Weight::from_parts(50_202_000, 3593) - .saturating_add(T::DbWeight::get().reads(7)) - .saturating_add(T::DbWeight::get().writes(3)) - } - // Storage: `ParachainInfo::ParachainId` (r:1 w:0) - // Proof: `ParachainInfo::ParachainId` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`) - // Storage: `PolkadotXcm::SupportedVersion` (r:1 w:0) - // Proof: `PolkadotXcm::SupportedVersion` (`max_values`: None, `max_size`: None, mode: `Measured`) - // Storage: `PolkadotXcm::VersionDiscoveryQueue` (r:1 w:1) - // Proof: `PolkadotXcm::VersionDiscoveryQueue` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) - // Storage: `PolkadotXcm::SafeXcmVersion` (r:1 w:0) - // Proof: `PolkadotXcm::SafeXcmVersion` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) - // Storage: `ParachainSystem::HostConfiguration` (r:1 w:0) - // Proof: `ParachainSystem::HostConfiguration` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) - // Storage: `ParachainSystem::PendingUpwardMessages` (r:1 w:1) - // Proof: `ParachainSystem::PendingUpwardMessages` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) - pub fn initiate_teleport() -> Weight { - // Proof Size summary in bytes: - // Measured: `70` - // Estimated: `3535` - // Minimum execution time: 27_592_000 picoseconds. - Weight::from_parts(28_099_000, 3535) - .saturating_add(T::DbWeight::get().reads(6)) - .saturating_add(T::DbWeight::get().writes(2)) - } -} diff --git a/cumulus/parachains/runtimes/bridge-hubs/bridge-hub-polkadot/src/weights/xcm/pallet_xcm_benchmarks_generic.rs b/cumulus/parachains/runtimes/bridge-hubs/bridge-hub-polkadot/src/weights/xcm/pallet_xcm_benchmarks_generic.rs deleted file mode 100644 index 7968649d143c..000000000000 --- a/cumulus/parachains/runtimes/bridge-hubs/bridge-hub-polkadot/src/weights/xcm/pallet_xcm_benchmarks_generic.rs +++ /dev/null @@ -1,329 +0,0 @@ -// Copyright (C) Parity Technologies (UK) Ltd. -// This file is part of Cumulus. - -// Cumulus 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. - -// Cumulus 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 Cumulus. 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-07-31, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` -//! WORST CASE MAP SIZE: `1000000` -//! HOSTNAME: `runner-ynta1nyy-project-238-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz` -//! EXECUTION: , WASM-EXECUTION: Compiled, CHAIN: Some("bridge-hub-polkadot-dev"), DB CACHE: 1024 - -// Executed Command: -// ./target/production/polkadot-parachain -// benchmark -// pallet -// --template=./templates/xcm-bench-template.hbs -// --chain=bridge-hub-polkadot-dev -// --wasm-execution=compiled -// --pallet=pallet_xcm_benchmarks::generic -// --no-storage-info -// --no-median-slopes -// --no-min-squares -// --extrinsic=* -// --steps=50 -// --repeat=20 -// --json -// --header=./file_header.txt -// --output=./parachains/runtimes/bridge-hubs/bridge-hub-polkadot/src/weights/xcm/pallet_xcm_benchmarks_generic.rs - -#![cfg_attr(rustfmt, rustfmt_skip)] -#![allow(unused_parens)] -#![allow(unused_imports)] - -use frame_support::{traits::Get, weights::Weight}; -use sp_std::marker::PhantomData; - -/// Weights for `pallet_xcm_benchmarks::generic`. -pub struct WeightInfo(PhantomData); -impl WeightInfo { - // Storage: `ParachainInfo::ParachainId` (r:1 w:0) - // Proof: `ParachainInfo::ParachainId` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`) - // Storage: `PolkadotXcm::SupportedVersion` (r:1 w:0) - // Proof: `PolkadotXcm::SupportedVersion` (`max_values`: None, `max_size`: None, mode: `Measured`) - // Storage: `PolkadotXcm::VersionDiscoveryQueue` (r:1 w:1) - // Proof: `PolkadotXcm::VersionDiscoveryQueue` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) - // Storage: `PolkadotXcm::SafeXcmVersion` (r:1 w:0) - // Proof: `PolkadotXcm::SafeXcmVersion` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) - // Storage: `ParachainSystem::HostConfiguration` (r:1 w:0) - // Proof: `ParachainSystem::HostConfiguration` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) - // Storage: `ParachainSystem::PendingUpwardMessages` (r:1 w:1) - // Proof: `ParachainSystem::PendingUpwardMessages` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) - pub fn report_holding() -> Weight { - // Proof Size summary in bytes: - // Measured: `70` - // Estimated: `3535` - // Minimum execution time: 30_923_000 picoseconds. - Weight::from_parts(31_653_000, 3535) - .saturating_add(T::DbWeight::get().reads(6)) - .saturating_add(T::DbWeight::get().writes(2)) - } - pub fn buy_execution() -> Weight { - // Proof Size summary in bytes: - // Measured: `0` - // Estimated: `0` - // Minimum execution time: 2_837_000 picoseconds. - Weight::from_parts(2_932_000, 0) - } - // Storage: `PolkadotXcm::Queries` (r:1 w:0) - // Proof: `PolkadotXcm::Queries` (`max_values`: None, `max_size`: None, mode: `Measured`) - pub fn query_response() -> Weight { - // Proof Size summary in bytes: - // Measured: `32` - // Estimated: `3497` - // Minimum execution time: 10_319_000 picoseconds. - Weight::from_parts(10_614_000, 3497) - .saturating_add(T::DbWeight::get().reads(1)) - } - pub fn transact() -> Weight { - // Proof Size summary in bytes: - // Measured: `0` - // Estimated: `0` - // Minimum execution time: 11_466_000 picoseconds. - Weight::from_parts(12_005_000, 0) - } - pub fn refund_surplus() -> Weight { - // Proof Size summary in bytes: - // Measured: `0` - // Estimated: `0` - // Minimum execution time: 3_039_000 picoseconds. - Weight::from_parts(3_125_000, 0) - } - pub fn set_error_handler() -> Weight { - // Proof Size summary in bytes: - // Measured: `0` - // Estimated: `0` - // Minimum execution time: 2_655_000 picoseconds. - Weight::from_parts(2_717_000, 0) - } - pub fn set_appendix() -> Weight { - // Proof Size summary in bytes: - // Measured: `0` - // Estimated: `0` - // Minimum execution time: 2_655_000 picoseconds. - Weight::from_parts(2_695_000, 0) - } - pub fn clear_error() -> Weight { - // Proof Size summary in bytes: - // Measured: `0` - // Estimated: `0` - // Minimum execution time: 2_612_000 picoseconds. - Weight::from_parts(2_685_000, 0) - } - pub fn descend_origin() -> Weight { - // Proof Size summary in bytes: - // Measured: `0` - // Estimated: `0` - // Minimum execution time: 3_286_000 picoseconds. - Weight::from_parts(3_425_000, 0) - } - pub fn clear_origin() -> Weight { - // Proof Size summary in bytes: - // Measured: `0` - // Estimated: `0` - // Minimum execution time: 2_613_000 picoseconds. - Weight::from_parts(2_699_000, 0) - } - // Storage: `ParachainInfo::ParachainId` (r:1 w:0) - // Proof: `ParachainInfo::ParachainId` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`) - // Storage: `PolkadotXcm::SupportedVersion` (r:1 w:0) - // Proof: `PolkadotXcm::SupportedVersion` (`max_values`: None, `max_size`: None, mode: `Measured`) - // Storage: `PolkadotXcm::VersionDiscoveryQueue` (r:1 w:1) - // Proof: `PolkadotXcm::VersionDiscoveryQueue` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) - // Storage: `PolkadotXcm::SafeXcmVersion` (r:1 w:0) - // Proof: `PolkadotXcm::SafeXcmVersion` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) - // Storage: `ParachainSystem::HostConfiguration` (r:1 w:0) - // Proof: `ParachainSystem::HostConfiguration` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) - // Storage: `ParachainSystem::PendingUpwardMessages` (r:1 w:1) - // Proof: `ParachainSystem::PendingUpwardMessages` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) - pub fn report_error() -> Weight { - // Proof Size summary in bytes: - // Measured: `70` - // Estimated: `3535` - // Minimum execution time: 24_616_000 picoseconds. - Weight::from_parts(25_147_000, 3535) - .saturating_add(T::DbWeight::get().reads(6)) - .saturating_add(T::DbWeight::get().writes(2)) - } - // Storage: `PolkadotXcm::AssetTraps` (r:1 w:1) - // Proof: `PolkadotXcm::AssetTraps` (`max_values`: None, `max_size`: None, mode: `Measured`) - pub fn claim_asset() -> Weight { - // Proof Size summary in bytes: - // Measured: `90` - // Estimated: `3555` - // Minimum execution time: 14_511_000 picoseconds. - Weight::from_parts(14_831_000, 3555) - .saturating_add(T::DbWeight::get().reads(1)) - .saturating_add(T::DbWeight::get().writes(1)) - } - pub fn trap() -> Weight { - // Proof Size summary in bytes: - // Measured: `0` - // Estimated: `0` - // Minimum execution time: 2_640_000 picoseconds. - Weight::from_parts(2_702_000, 0) - } - // Storage: `PolkadotXcm::VersionNotifyTargets` (r:1 w:1) - // Proof: `PolkadotXcm::VersionNotifyTargets` (`max_values`: None, `max_size`: None, mode: `Measured`) - // Storage: `PolkadotXcm::SupportedVersion` (r:1 w:0) - // Proof: `PolkadotXcm::SupportedVersion` (`max_values`: None, `max_size`: None, mode: `Measured`) - // Storage: `PolkadotXcm::VersionDiscoveryQueue` (r:1 w:1) - // Proof: `PolkadotXcm::VersionDiscoveryQueue` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) - // Storage: `PolkadotXcm::SafeXcmVersion` (r:1 w:0) - // Proof: `PolkadotXcm::SafeXcmVersion` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) - // Storage: `ParachainSystem::HostConfiguration` (r:1 w:0) - // Proof: `ParachainSystem::HostConfiguration` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) - // Storage: `ParachainSystem::PendingUpwardMessages` (r:1 w:1) - // Proof: `ParachainSystem::PendingUpwardMessages` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) - pub fn subscribe_version() -> Weight { - // Proof Size summary in bytes: - // Measured: `38` - // Estimated: `3503` - // Minimum execution time: 26_044_000 picoseconds. - Weight::from_parts(26_561_000, 3503) - .saturating_add(T::DbWeight::get().reads(6)) - .saturating_add(T::DbWeight::get().writes(3)) - } - // Storage: `PolkadotXcm::VersionNotifyTargets` (r:0 w:1) - // Proof: `PolkadotXcm::VersionNotifyTargets` (`max_values`: None, `max_size`: None, mode: `Measured`) - pub fn unsubscribe_version() -> Weight { - // Proof Size summary in bytes: - // Measured: `0` - // Estimated: `0` - // Minimum execution time: 4_568_000 picoseconds. - Weight::from_parts(4_764_000, 0) - .saturating_add(T::DbWeight::get().writes(1)) - } - pub fn burn_asset() -> Weight { - // Proof Size summary in bytes: - // Measured: `0` - // Estimated: `0` - // Minimum execution time: 3_953_000 picoseconds. - Weight::from_parts(4_079_000, 0) - } - pub fn expect_asset() -> Weight { - // Proof Size summary in bytes: - // Measured: `0` - // Estimated: `0` - // Minimum execution time: 2_793_000 picoseconds. - Weight::from_parts(2_914_000, 0) - } - pub fn expect_origin() -> Weight { - // Proof Size summary in bytes: - // Measured: `0` - // Estimated: `0` - // Minimum execution time: 2_719_000 picoseconds. - Weight::from_parts(2_829_000, 0) - } - pub fn expect_error() -> Weight { - // Proof Size summary in bytes: - // Measured: `0` - // Estimated: `0` - // Minimum execution time: 2_710_000 picoseconds. - Weight::from_parts(2_824_000, 0) - } - pub fn expect_transact_status() -> Weight { - // Proof Size summary in bytes: - // Measured: `0` - // Estimated: `0` - // Minimum execution time: 2_941_000 picoseconds. - Weight::from_parts(3_201_000, 0) - } - // Storage: `ParachainInfo::ParachainId` (r:1 w:0) - // Proof: `ParachainInfo::ParachainId` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`) - // Storage: `PolkadotXcm::SupportedVersion` (r:1 w:0) - // Proof: `PolkadotXcm::SupportedVersion` (`max_values`: None, `max_size`: None, mode: `Measured`) - // Storage: `PolkadotXcm::VersionDiscoveryQueue` (r:1 w:1) - // Proof: `PolkadotXcm::VersionDiscoveryQueue` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) - // Storage: `PolkadotXcm::SafeXcmVersion` (r:1 w:0) - // Proof: `PolkadotXcm::SafeXcmVersion` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) - // Storage: `ParachainSystem::HostConfiguration` (r:1 w:0) - // Proof: `ParachainSystem::HostConfiguration` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) - // Storage: `ParachainSystem::PendingUpwardMessages` (r:1 w:1) - // Proof: `ParachainSystem::PendingUpwardMessages` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) - pub fn query_pallet() -> Weight { - // Proof Size summary in bytes: - // Measured: `70` - // Estimated: `3535` - // Minimum execution time: 28_080_000 picoseconds. - Weight::from_parts(28_920_000, 3535) - .saturating_add(T::DbWeight::get().reads(6)) - .saturating_add(T::DbWeight::get().writes(2)) - } - pub fn expect_pallet() -> Weight { - // Proof Size summary in bytes: - // Measured: `0` - // Estimated: `0` - // Minimum execution time: 4_752_000 picoseconds. - Weight::from_parts(4_982_000, 0) - } - // Storage: `ParachainInfo::ParachainId` (r:1 w:0) - // Proof: `ParachainInfo::ParachainId` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`) - // Storage: `PolkadotXcm::SupportedVersion` (r:1 w:0) - // Proof: `PolkadotXcm::SupportedVersion` (`max_values`: None, `max_size`: None, mode: `Measured`) - // Storage: `PolkadotXcm::VersionDiscoveryQueue` (r:1 w:1) - // Proof: `PolkadotXcm::VersionDiscoveryQueue` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) - // Storage: `PolkadotXcm::SafeXcmVersion` (r:1 w:0) - // Proof: `PolkadotXcm::SafeXcmVersion` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) - // Storage: `ParachainSystem::HostConfiguration` (r:1 w:0) - // Proof: `ParachainSystem::HostConfiguration` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) - // Storage: `ParachainSystem::PendingUpwardMessages` (r:1 w:1) - // Proof: `ParachainSystem::PendingUpwardMessages` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) - pub fn report_transact_status() -> Weight { - // Proof Size summary in bytes: - // Measured: `70` - // Estimated: `3535` - // Minimum execution time: 24_810_000 picoseconds. - Weight::from_parts(25_270_000, 3535) - .saturating_add(T::DbWeight::get().reads(6)) - .saturating_add(T::DbWeight::get().writes(2)) - } - pub fn clear_transact_status() -> Weight { - // Proof Size summary in bytes: - // Measured: `0` - // Estimated: `0` - // Minimum execution time: 2_676_000 picoseconds. - Weight::from_parts(2_780_000, 0) - } - pub fn set_topic() -> Weight { - // Proof Size summary in bytes: - // Measured: `0` - // Estimated: `0` - // Minimum execution time: 2_624_000 picoseconds. - Weight::from_parts(2_710_000, 0) - } - pub fn clear_topic() -> Weight { - // Proof Size summary in bytes: - // Measured: `0` - // Estimated: `0` - // Minimum execution time: 2_611_000 picoseconds. - Weight::from_parts(2_707_000, 0) - } - pub fn set_fees_mode() -> Weight { - // Proof Size summary in bytes: - // Measured: `0` - // Estimated: `0` - // Minimum execution time: 2_653_000 picoseconds. - Weight::from_parts(2_740_000, 0) - } - pub fn unpaid_execution() -> Weight { - // Proof Size summary in bytes: - // Measured: `0` - // Estimated: `0` - // Minimum execution time: 2_821_000 picoseconds. - Weight::from_parts(2_874_000, 0) - } -} diff --git a/cumulus/parachains/runtimes/bridge-hubs/bridge-hub-polkadot/src/xcm_config.rs b/cumulus/parachains/runtimes/bridge-hubs/bridge-hub-polkadot/src/xcm_config.rs deleted file mode 100644 index 0965600c2468..000000000000 --- a/cumulus/parachains/runtimes/bridge-hubs/bridge-hub-polkadot/src/xcm_config.rs +++ /dev/null @@ -1,276 +0,0 @@ -// Copyright (C) Parity Technologies (UK) Ltd. -// This file is part of Cumulus. - -// Cumulus 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. - -// Cumulus 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 Cumulus. If not, see . - -use super::{ - AccountId, AllPalletsWithSystem, Balances, ParachainInfo, ParachainSystem, PolkadotXcm, - Runtime, RuntimeCall, RuntimeEvent, RuntimeOrigin, WeightToFee, XcmpQueue, -}; -use frame_support::{ - match_types, parameter_types, - traits::{ConstU32, Contains, Everything, Nothing}, -}; -use frame_system::EnsureRoot; -use pallet_xcm::XcmPassthrough; -use parachains_common::{impls::ToStakingPot, xcm_config::ConcreteNativeAssetFrom}; -use polkadot_parachain_primitives::primitives::Sibling; -use xcm::latest::prelude::*; -use xcm_builder::{ - AccountId32Aliases, AllowExplicitUnpaidExecutionFrom, AllowKnownQueryResponses, - AllowSubscriptionsFrom, AllowTopLevelPaidExecutionFrom, CurrencyAdapter, - DenyReserveTransferToRelayChain, DenyThenTry, EnsureXcmOrigin, IsConcrete, ParentAsSuperuser, - ParentIsPreset, RelayChainAsNative, SiblingParachainAsNative, SiblingParachainConvertsVia, - SignedAccountId32AsNative, SignedToAccountId32, SovereignSignedViaLocation, TakeWeightCredit, - TrailingSetTopicAsId, UsingComponents, WeightInfoBounds, WithComputedOrigin, WithUniqueTopic, -}; -use xcm_executor::{traits::WithOriginFilter, XcmExecutor}; - -parameter_types! { - pub const DotRelayLocation: MultiLocation = MultiLocation::parent(); - pub const RelayNetwork: Option = Some(NetworkId::Polkadot); - pub RelayChainOrigin: RuntimeOrigin = cumulus_pallet_xcm::Origin::Relay.into(); - pub UniversalLocation: InteriorMultiLocation = - X2(GlobalConsensus(RelayNetwork::get().unwrap()), Parachain(ParachainInfo::parachain_id().into())); - pub const MaxInstructions: u32 = 100; - pub const MaxAssetsIntoHolding: u32 = 64; - pub FellowshipLocation: MultiLocation = MultiLocation::new(1, Parachain(1001)); - pub const GovernanceLocation: MultiLocation = MultiLocation::parent(); -} - -/// Type for specifying how a `MultiLocation` can be converted into an `AccountId`. This is used -/// when determining ownership of accounts for asset transacting and when attempting to use XCM -/// `Transact` in order to determine the dispatch Origin. -pub type LocationToAccountId = ( - // The parent (Relay-chain) origin converts to the parent `AccountId`. - ParentIsPreset, - // Sibling parachain origins convert to AccountId via the `ParaId::into`. - SiblingParachainConvertsVia, - // Straight up local `AccountId32` origins just alias directly to `AccountId`. - AccountId32Aliases, -); - -/// Means for transacting the native currency on this chain. -pub type CurrencyTransactor = CurrencyAdapter< - // Use this currency: - Balances, - // Use this currency when it is a fungible asset matching the given location or name: - IsConcrete, - // Do a simple punn to convert an AccountId32 MultiLocation into a native chain account ID: - LocationToAccountId, - // Our chain's account ID type (we can't get away without mentioning it explicitly): - AccountId, - // We don't track any teleports of `Balances`. - (), ->; - -/// This is the type we use to convert an (incoming) XCM origin into a local `Origin` instance, -/// ready for dispatching a transaction with Xcm's `Transact`. There is an `OriginKind` which can -/// biases the kind of local `Origin` it will become. -pub type XcmOriginToTransactDispatchOrigin = ( - // Sovereign account converter; this attempts to derive an `AccountId` from the origin location - // using `LocationToAccountId` and then turn that into the usual `Signed` origin. Useful for - // foreign chains who want to have a local sovereign account on this chain which they control. - SovereignSignedViaLocation, - // Native converter for Relay-chain (Parent) location; will converts to a `Relay` origin when - // recognized. - RelayChainAsNative, - // Native converter for sibling Parachains; will convert to a `SiblingPara` origin when - // recognized. - SiblingParachainAsNative, - // Superuser converter for the Relay-chain (Parent) location. This will allow it to issue a - // transaction from the Root origin. - ParentAsSuperuser, - // Native signed account converter; this just converts an `AccountId32` origin into a normal - // `RuntimeOrigin::Signed` origin of the same 32-byte value. - SignedAccountId32AsNative, - // Xcm origins can be represented natively under the Xcm pallet's Xcm origin. - XcmPassthrough, -); - -match_types! { - pub type ParentOrParentsPlurality: impl Contains = { - MultiLocation { parents: 1, interior: Here } | - MultiLocation { parents: 1, interior: X1(Plurality { .. }) } - }; - pub type ParentOrSiblings: impl Contains = { - MultiLocation { parents: 1, interior: Here } | - MultiLocation { parents: 1, interior: X1(_) } - }; - pub type FellowsPlurality: impl Contains = { - MultiLocation { parents: 1, interior: X2(Parachain(1001), Plurality { id: BodyId::Technical, ..}) } - }; -} -/// A call filter for the XCM Transact instruction. This is a temporary measure until we properly -/// account for proof size weights. -/// -/// Calls that are allowed through this filter must: -/// 1. Have a fixed weight; -/// 2. Cannot lead to another call being made; -/// 3. Have a defined proof size weight, e.g. no unbounded vecs in call parameters. -pub struct SafeCallFilter; -impl Contains for SafeCallFilter { - fn contains(call: &RuntimeCall) -> bool { - #[cfg(feature = "runtime-benchmarks")] - { - if matches!(call, RuntimeCall::System(frame_system::Call::remark_with_event { .. })) { - return true - } - } - - matches!( - call, - RuntimeCall::PolkadotXcm(pallet_xcm::Call::force_xcm_version { .. }) | - RuntimeCall::System( - frame_system::Call::set_heap_pages { .. } | - frame_system::Call::set_code { .. } | - frame_system::Call::set_code_without_checks { .. } | - frame_system::Call::kill_prefix { .. }, - ) | RuntimeCall::ParachainSystem(..) | - RuntimeCall::Timestamp(..) | - RuntimeCall::Balances(..) | - RuntimeCall::CollatorSelection( - pallet_collator_selection::Call::set_desired_candidates { .. } | - pallet_collator_selection::Call::set_candidacy_bond { .. } | - pallet_collator_selection::Call::register_as_candidate { .. } | - pallet_collator_selection::Call::leave_intent { .. } | - pallet_collator_selection::Call::set_invulnerables { .. } | - pallet_collator_selection::Call::add_invulnerable { .. } | - pallet_collator_selection::Call::remove_invulnerable { .. }, - ) | RuntimeCall::Session(pallet_session::Call::purge_keys { .. }) | - RuntimeCall::XcmpQueue(..) | - RuntimeCall::DmpQueue(..) - ) - } -} - -pub type Barrier = TrailingSetTopicAsId< - DenyThenTry< - DenyReserveTransferToRelayChain, - ( - // Allow local users to buy weight credit. - TakeWeightCredit, - // Expected responses are OK. - AllowKnownQueryResponses, - WithComputedOrigin< - ( - // If the message is one that immediately attemps to pay for execution, then - // allow it. - AllowTopLevelPaidExecutionFrom, - // Parent, its pluralities (i.e. governance bodies), and the Fellows plurality - // get free execution. - AllowExplicitUnpaidExecutionFrom<(ParentOrParentsPlurality, FellowsPlurality)>, - // Subscriptions for version tracking are OK. - AllowSubscriptionsFrom, - ), - UniversalLocation, - ConstU32<8>, - >, - ), - >, ->; - -pub struct XcmConfig; -impl xcm_executor::Config for XcmConfig { - type RuntimeCall = RuntimeCall; - type XcmSender = XcmRouter; - type AssetTransactor = CurrencyTransactor; - type OriginConverter = XcmOriginToTransactDispatchOrigin; - // BridgeHub does not recognize a reserve location for any asset. Users must teleport DOT - // where allowed (e.g. with the Relay Chain). - type IsReserve = (); - /// Only allow teleportation of DOT. - type IsTeleporter = ConcreteNativeAssetFrom; - type UniversalLocation = UniversalLocation; - type Barrier = Barrier; - type Weigher = WeightInfoBounds< - crate::weights::xcm::BridgeHubPolkadotXcmWeight, - RuntimeCall, - MaxInstructions, - >; - type Trader = - UsingComponents>; - type ResponseHandler = PolkadotXcm; - type AssetTrap = PolkadotXcm; - type AssetClaims = PolkadotXcm; - type SubscriptionService = PolkadotXcm; - type PalletInstancesInfo = AllPalletsWithSystem; - type MaxAssetsIntoHolding = MaxAssetsIntoHolding; - type AssetLocker = (); - type AssetExchanger = (); - type FeeManager = (); - type MessageExporter = (); - type UniversalAliases = Nothing; - type CallDispatcher = WithOriginFilter; - type SafeCallFilter = SafeCallFilter; - type Aliasers = Nothing; -} - -/// Converts a local signed origin into an XCM multilocation. -/// Forms the basis for local origins sending/executing XCMs. -pub type LocalOriginToLocation = SignedToAccountId32; - -/// The means for routing XCM messages which are not for local execution into the right message -/// queues. -pub type XcmRouter = WithUniqueTopic<( - // Two routers - use UMP to communicate with the relay chain: - cumulus_primitives_utility::ParentAsUmp, - // ..and XCMP to communicate with the sibling chains. - XcmpQueue, -)>; - -#[cfg(feature = "runtime-benchmarks")] -parameter_types! { - pub ReachableDest: Option = Some(Parent.into()); -} - -impl pallet_xcm::Config for Runtime { - type RuntimeEvent = RuntimeEvent; - // We want to disallow users sending (arbitrary) XCMs from this chain. - type SendXcmOrigin = EnsureXcmOrigin; - type XcmRouter = XcmRouter; - // We support local origins dispatching XCM executions in principle... - type ExecuteXcmOrigin = EnsureXcmOrigin; - // ... but disallow generic XCM execution. As a result only teleports are allowed. - type XcmExecuteFilter = Nothing; - type XcmExecutor = XcmExecutor; - type XcmTeleportFilter = Everything; - type XcmReserveTransferFilter = Nothing; // This parachain is not meant as a reserve location. - type Weigher = WeightInfoBounds< - crate::weights::xcm::BridgeHubPolkadotXcmWeight, - RuntimeCall, - MaxInstructions, - >; - type UniversalLocation = UniversalLocation; - type RuntimeOrigin = RuntimeOrigin; - type RuntimeCall = RuntimeCall; - const VERSION_DISCOVERY_QUEUE_SIZE: u32 = 100; - type AdvertisedXcmVersion = pallet_xcm::CurrentXcmVersion; - type Currency = Balances; - type CurrencyMatcher = (); - type TrustedLockers = (); - type SovereignAccountOf = LocationToAccountId; - type MaxLockers = ConstU32<8>; - type WeightInfo = crate::weights::pallet_xcm::WeightInfo; - #[cfg(feature = "runtime-benchmarks")] - type ReachableDest = ReachableDest; - type AdminOrigin = EnsureRoot; - type MaxRemoteLockConsumers = ConstU32<0>; - type RemoteLockConsumerIdentifier = (); -} - -impl cumulus_pallet_xcm::Config for Runtime { - type RuntimeEvent = RuntimeEvent; - type XcmExecutor = XcmExecutor; -} diff --git a/cumulus/parachains/runtimes/bridge-hubs/bridge-hub-polkadot/tests/tests.rs b/cumulus/parachains/runtimes/bridge-hubs/bridge-hub-polkadot/tests/tests.rs deleted file mode 100644 index 0be87bd46fac..000000000000 --- a/cumulus/parachains/runtimes/bridge-hubs/bridge-hub-polkadot/tests/tests.rs +++ /dev/null @@ -1,57 +0,0 @@ -// Copyright (C) Parity Technologies (UK) Ltd. -// This file is part of Cumulus. - -// Cumulus 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. - -// Cumulus 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 Cumulus. If not, see . - -pub use bridge_hub_polkadot_runtime::{ - xcm_config::XcmConfig, AllPalletsWithoutSystem, Balances, ExistentialDeposit, ParachainSystem, - PolkadotXcm, Runtime, RuntimeEvent, SessionKeys, -}; -use codec::Decode; -use frame_support::parameter_types; -use parachains_common::{polkadot::fee::WeightToFee, AccountId, AuraId}; - -const ALICE: [u8; 32] = [1u8; 32]; - -parameter_types! { - pub CheckingAccount: AccountId = PolkadotXcm::check_account(); -} - -bridge_hub_test_utils::test_cases::include_teleports_for_native_asset_works!( - Runtime, - AllPalletsWithoutSystem, - XcmConfig, - CheckingAccount, - WeightToFee, - ParachainSystem, - bridge_hub_test_utils::CollatorSessionKeys::new( - AccountId::from(ALICE), - AccountId::from(ALICE), - SessionKeys { aura: AuraId::from(sp_core::sr25519::Public::from_raw(ALICE)) } - ), - ExistentialDeposit::get(), - Box::new(|runtime_event_encoded: Vec| { - match RuntimeEvent::decode(&mut &runtime_event_encoded[..]) { - Ok(RuntimeEvent::PolkadotXcm(event)) => Some(event), - _ => None, - } - }), - Box::new(|runtime_event_encoded: Vec| { - match RuntimeEvent::decode(&mut &runtime_event_encoded[..]) { - Ok(RuntimeEvent::XcmpQueue(event)) => Some(event), - _ => None, - } - }), - 1002 -); diff --git a/cumulus/parachains/runtimes/collectives/collectives-polkadot/build.rs b/cumulus/parachains/runtimes/collectives/collectives-polkadot/build.rs deleted file mode 100644 index 60f8a125129f..000000000000 --- a/cumulus/parachains/runtimes/collectives/collectives-polkadot/build.rs +++ /dev/null @@ -1,26 +0,0 @@ -// 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. - -#[cfg(feature = "std")] -fn main() { - substrate_wasm_builder::WasmBuilder::new() - .with_current_project() - .export_heap_base() - .import_memory() - .build() -} - -#[cfg(not(feature = "std"))] -fn main() {} diff --git a/cumulus/parachains/runtimes/collectives/collectives-polkadot/src/weights/block_weights.rs b/cumulus/parachains/runtimes/collectives/collectives-polkadot/src/weights/block_weights.rs deleted file mode 100644 index e7fdb2aae2a0..000000000000 --- a/cumulus/parachains/runtimes/collectives/collectives-polkadot/src/weights/block_weights.rs +++ /dev/null @@ -1,53 +0,0 @@ -// This file is part of Substrate. - -// 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. - -pub mod constants { - use frame_support::{ - parameter_types, - weights::{constants, Weight}, - }; - - parameter_types! { - /// Importing a block with 0 Extrinsics. - pub const BlockExecutionWeight: Weight = - Weight::from_parts(constants::WEIGHT_REF_TIME_PER_NANOS.saturating_mul(5_000_000), 0); - } - - #[cfg(test)] - mod test_weights { - use frame_support::weights::constants; - - /// Checks that the weight exists and is sane. - // NOTE: If this test fails but you are sure that the generated values are fine, - // you can delete it. - #[test] - fn sane() { - let w = super::constants::BlockExecutionWeight::get(); - - // At least 100 µs. - assert!( - w.ref_time() >= 100u64 * constants::WEIGHT_REF_TIME_PER_MICROS, - "Weight should be at least 100 µs." - ); - // At most 50 ms. - assert!( - w.ref_time() <= 50u64 * constants::WEIGHT_REF_TIME_PER_MILLIS, - "Weight should be at most 50 ms." - ); - } - } -} diff --git a/cumulus/parachains/runtimes/collectives/collectives-polkadot/src/weights/extrinsic_weights.rs b/cumulus/parachains/runtimes/collectives/collectives-polkadot/src/weights/extrinsic_weights.rs deleted file mode 100644 index 1a4adb968bb7..000000000000 --- a/cumulus/parachains/runtimes/collectives/collectives-polkadot/src/weights/extrinsic_weights.rs +++ /dev/null @@ -1,53 +0,0 @@ -// This file is part of Substrate. - -// 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. - -pub mod constants { - use frame_support::{ - parameter_types, - weights::{constants, Weight}, - }; - - parameter_types! { - /// Executing a NO-OP `System::remarks` Extrinsic. - pub const ExtrinsicBaseWeight: Weight = - Weight::from_parts(constants::WEIGHT_REF_TIME_PER_NANOS.saturating_mul(125_000), 0); - } - - #[cfg(test)] - mod test_weights { - use frame_support::weights::constants; - - /// Checks that the weight exists and is sane. - // NOTE: If this test fails but you are sure that the generated values are fine, - // you can delete it. - #[test] - fn sane() { - let w = super::constants::ExtrinsicBaseWeight::get(); - - // At least 10 µs. - assert!( - w.ref_time() >= 10u64 * constants::WEIGHT_REF_TIME_PER_MICROS, - "Weight should be at least 10 µs." - ); - // At most 1 ms. - assert!( - w.ref_time() <= constants::WEIGHT_REF_TIME_PER_MILLIS, - "Weight should be at most 1 ms." - ); - } - } -} diff --git a/cumulus/parachains/runtimes/collectives/collectives-polkadot/src/weights/paritydb_weights.rs b/cumulus/parachains/runtimes/collectives/collectives-polkadot/src/weights/paritydb_weights.rs deleted file mode 100644 index 25679703831a..000000000000 --- a/cumulus/parachains/runtimes/collectives/collectives-polkadot/src/weights/paritydb_weights.rs +++ /dev/null @@ -1,63 +0,0 @@ -// This file is part of Substrate. - -// 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. - -pub mod constants { - use frame_support::{ - parameter_types, - weights::{constants, RuntimeDbWeight}, - }; - - parameter_types! { - /// `ParityDB` can be enabled with a feature flag, but is still experimental. These weights - /// are available for brave runtime engineers who may want to try this out as default. - pub const ParityDbWeight: RuntimeDbWeight = RuntimeDbWeight { - read: 8_000 * constants::WEIGHT_REF_TIME_PER_NANOS, - write: 50_000 * constants::WEIGHT_REF_TIME_PER_NANOS, - }; - } - - #[cfg(test)] - mod test_db_weights { - use super::constants::ParityDbWeight as W; - use frame_support::weights::constants; - - /// Checks that all weights exist and have sane values. - // NOTE: If this test fails but you are sure that the generated values are fine, - // you can delete it. - #[test] - fn sane() { - // At least 1 µs. - assert!( - W::get().reads(1).ref_time() >= constants::WEIGHT_REF_TIME_PER_MICROS, - "Read weight should be at least 1 µs." - ); - assert!( - W::get().writes(1).ref_time() >= constants::WEIGHT_REF_TIME_PER_MICROS, - "Write weight should be at least 1 µs." - ); - // At most 1 ms. - assert!( - W::get().reads(1).ref_time() <= constants::WEIGHT_REF_TIME_PER_MILLIS, - "Read weight should be at most 1 ms." - ); - assert!( - W::get().writes(1).ref_time() <= constants::WEIGHT_REF_TIME_PER_MILLIS, - "Write weight should be at most 1 ms." - ); - } - } -} diff --git a/cumulus/parachains/runtimes/collectives/collectives-polkadot/src/weights/rocksdb_weights.rs b/cumulus/parachains/runtimes/collectives/collectives-polkadot/src/weights/rocksdb_weights.rs deleted file mode 100644 index 3dd817aa6f13..000000000000 --- a/cumulus/parachains/runtimes/collectives/collectives-polkadot/src/weights/rocksdb_weights.rs +++ /dev/null @@ -1,63 +0,0 @@ -// This file is part of Substrate. - -// 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. - -pub mod constants { - use frame_support::{ - parameter_types, - weights::{constants, RuntimeDbWeight}, - }; - - parameter_types! { - /// By default, Substrate uses `RocksDB`, so this will be the weight used throughout - /// the runtime. - pub const RocksDbWeight: RuntimeDbWeight = RuntimeDbWeight { - read: 25_000 * constants::WEIGHT_REF_TIME_PER_NANOS, - write: 100_000 * constants::WEIGHT_REF_TIME_PER_NANOS, - }; - } - - #[cfg(test)] - mod test_db_weights { - use super::constants::RocksDbWeight as W; - use frame_support::weights::constants; - - /// Checks that all weights exist and have sane values. - // NOTE: If this test fails but you are sure that the generated values are fine, - // you can delete it. - #[test] - fn sane() { - // At least 1 µs. - assert!( - W::get().reads(1).ref_time() >= constants::WEIGHT_REF_TIME_PER_MICROS, - "Read weight should be at least 1 µs." - ); - assert!( - W::get().writes(1).ref_time() >= constants::WEIGHT_REF_TIME_PER_MICROS, - "Write weight should be at least 1 µs." - ); - // At most 1 ms. - assert!( - W::get().reads(1).ref_time() <= constants::WEIGHT_REF_TIME_PER_MILLIS, - "Read weight should be at most 1 ms." - ); - assert!( - W::get().writes(1).ref_time() <= constants::WEIGHT_REF_TIME_PER_MILLIS, - "Write weight should be at most 1 ms." - ); - } - } -} diff --git a/cumulus/parachains/runtimes/collectives/collectives-polkadot/Cargo.toml b/cumulus/parachains/runtimes/collectives/collectives-westend/Cargo.toml similarity index 99% rename from cumulus/parachains/runtimes/collectives/collectives-polkadot/Cargo.toml rename to cumulus/parachains/runtimes/collectives/collectives-westend/Cargo.toml index e66cef31e56f..08100d2522e9 100644 --- a/cumulus/parachains/runtimes/collectives/collectives-polkadot/Cargo.toml +++ b/cumulus/parachains/runtimes/collectives/collectives-westend/Cargo.toml @@ -1,9 +1,9 @@ [package] -name = "collectives-polkadot-runtime" +name = "collectives-westend-runtime" version = "1.0.0" authors.workspace = true edition.workspace = true -description = "Polkadot Collectives Parachain Runtime" +description = "Westend Collectives Parachain Runtime" [dependencies] codec = { package = "parity-scale-codec", version = "3.0.0", default-features = false, features = ["derive", "max-encoded-len"] } diff --git a/cumulus/parachains/runtimes/assets/asset-hub-kusama/build.rs b/cumulus/parachains/runtimes/collectives/collectives-westend/build.rs similarity index 100% rename from cumulus/parachains/runtimes/assets/asset-hub-kusama/build.rs rename to cumulus/parachains/runtimes/collectives/collectives-westend/build.rs diff --git a/cumulus/parachains/runtimes/collectives/collectives-polkadot/src/ambassador/mod.rs b/cumulus/parachains/runtimes/collectives/collectives-westend/src/ambassador/mod.rs similarity index 100% rename from cumulus/parachains/runtimes/collectives/collectives-polkadot/src/ambassador/mod.rs rename to cumulus/parachains/runtimes/collectives/collectives-westend/src/ambassador/mod.rs diff --git a/cumulus/parachains/runtimes/collectives/collectives-polkadot/src/ambassador/origins.rs b/cumulus/parachains/runtimes/collectives/collectives-westend/src/ambassador/origins.rs similarity index 100% rename from cumulus/parachains/runtimes/collectives/collectives-polkadot/src/ambassador/origins.rs rename to cumulus/parachains/runtimes/collectives/collectives-westend/src/ambassador/origins.rs diff --git a/cumulus/parachains/runtimes/collectives/collectives-polkadot/src/ambassador/tracks.rs b/cumulus/parachains/runtimes/collectives/collectives-westend/src/ambassador/tracks.rs similarity index 100% rename from cumulus/parachains/runtimes/collectives/collectives-polkadot/src/ambassador/tracks.rs rename to cumulus/parachains/runtimes/collectives/collectives-westend/src/ambassador/tracks.rs diff --git a/cumulus/parachains/runtimes/collectives/collectives-polkadot/src/fellowship/migration.rs b/cumulus/parachains/runtimes/collectives/collectives-westend/src/fellowship/migration.rs similarity index 100% rename from cumulus/parachains/runtimes/collectives/collectives-polkadot/src/fellowship/migration.rs rename to cumulus/parachains/runtimes/collectives/collectives-westend/src/fellowship/migration.rs diff --git a/cumulus/parachains/runtimes/collectives/collectives-polkadot/src/fellowship/mod.rs b/cumulus/parachains/runtimes/collectives/collectives-westend/src/fellowship/mod.rs similarity index 100% rename from cumulus/parachains/runtimes/collectives/collectives-polkadot/src/fellowship/mod.rs rename to cumulus/parachains/runtimes/collectives/collectives-westend/src/fellowship/mod.rs diff --git a/cumulus/parachains/runtimes/collectives/collectives-polkadot/src/fellowship/origins.rs b/cumulus/parachains/runtimes/collectives/collectives-westend/src/fellowship/origins.rs similarity index 100% rename from cumulus/parachains/runtimes/collectives/collectives-polkadot/src/fellowship/origins.rs rename to cumulus/parachains/runtimes/collectives/collectives-westend/src/fellowship/origins.rs diff --git a/cumulus/parachains/runtimes/collectives/collectives-polkadot/src/fellowship/tracks.rs b/cumulus/parachains/runtimes/collectives/collectives-westend/src/fellowship/tracks.rs similarity index 100% rename from cumulus/parachains/runtimes/collectives/collectives-polkadot/src/fellowship/tracks.rs rename to cumulus/parachains/runtimes/collectives/collectives-westend/src/fellowship/tracks.rs diff --git a/cumulus/parachains/runtimes/collectives/collectives-polkadot/src/impls.rs b/cumulus/parachains/runtimes/collectives/collectives-westend/src/impls.rs similarity index 100% rename from cumulus/parachains/runtimes/collectives/collectives-polkadot/src/impls.rs rename to cumulus/parachains/runtimes/collectives/collectives-westend/src/impls.rs diff --git a/cumulus/parachains/runtimes/collectives/collectives-polkadot/src/lib.rs b/cumulus/parachains/runtimes/collectives/collectives-westend/src/lib.rs similarity index 100% rename from cumulus/parachains/runtimes/collectives/collectives-polkadot/src/lib.rs rename to cumulus/parachains/runtimes/collectives/collectives-westend/src/lib.rs diff --git a/cumulus/parachains/runtimes/assets/asset-hub-kusama/src/weights/block_weights.rs b/cumulus/parachains/runtimes/collectives/collectives-westend/src/weights/block_weights.rs similarity index 100% rename from cumulus/parachains/runtimes/assets/asset-hub-kusama/src/weights/block_weights.rs rename to cumulus/parachains/runtimes/collectives/collectives-westend/src/weights/block_weights.rs diff --git a/cumulus/parachains/runtimes/collectives/collectives-polkadot/src/weights/cumulus_pallet_xcmp_queue.rs b/cumulus/parachains/runtimes/collectives/collectives-westend/src/weights/cumulus_pallet_xcmp_queue.rs similarity index 100% rename from cumulus/parachains/runtimes/collectives/collectives-polkadot/src/weights/cumulus_pallet_xcmp_queue.rs rename to cumulus/parachains/runtimes/collectives/collectives-westend/src/weights/cumulus_pallet_xcmp_queue.rs diff --git a/cumulus/parachains/runtimes/assets/asset-hub-kusama/src/weights/extrinsic_weights.rs b/cumulus/parachains/runtimes/collectives/collectives-westend/src/weights/extrinsic_weights.rs similarity index 100% rename from cumulus/parachains/runtimes/assets/asset-hub-kusama/src/weights/extrinsic_weights.rs rename to cumulus/parachains/runtimes/collectives/collectives-westend/src/weights/extrinsic_weights.rs diff --git a/cumulus/parachains/runtimes/collectives/collectives-polkadot/src/weights/frame_system.rs b/cumulus/parachains/runtimes/collectives/collectives-westend/src/weights/frame_system.rs similarity index 100% rename from cumulus/parachains/runtimes/collectives/collectives-polkadot/src/weights/frame_system.rs rename to cumulus/parachains/runtimes/collectives/collectives-westend/src/weights/frame_system.rs diff --git a/cumulus/parachains/runtimes/collectives/collectives-polkadot/src/weights/mod.rs b/cumulus/parachains/runtimes/collectives/collectives-westend/src/weights/mod.rs similarity index 100% rename from cumulus/parachains/runtimes/collectives/collectives-polkadot/src/weights/mod.rs rename to cumulus/parachains/runtimes/collectives/collectives-westend/src/weights/mod.rs diff --git a/cumulus/parachains/runtimes/collectives/collectives-polkadot/src/weights/pallet_alliance.rs b/cumulus/parachains/runtimes/collectives/collectives-westend/src/weights/pallet_alliance.rs similarity index 100% rename from cumulus/parachains/runtimes/collectives/collectives-polkadot/src/weights/pallet_alliance.rs rename to cumulus/parachains/runtimes/collectives/collectives-westend/src/weights/pallet_alliance.rs diff --git a/cumulus/parachains/runtimes/collectives/collectives-polkadot/src/weights/pallet_balances.rs b/cumulus/parachains/runtimes/collectives/collectives-westend/src/weights/pallet_balances.rs similarity index 100% rename from cumulus/parachains/runtimes/collectives/collectives-polkadot/src/weights/pallet_balances.rs rename to cumulus/parachains/runtimes/collectives/collectives-westend/src/weights/pallet_balances.rs diff --git a/cumulus/parachains/runtimes/collectives/collectives-polkadot/src/weights/pallet_collator_selection.rs b/cumulus/parachains/runtimes/collectives/collectives-westend/src/weights/pallet_collator_selection.rs similarity index 100% rename from cumulus/parachains/runtimes/collectives/collectives-polkadot/src/weights/pallet_collator_selection.rs rename to cumulus/parachains/runtimes/collectives/collectives-westend/src/weights/pallet_collator_selection.rs diff --git a/cumulus/parachains/runtimes/collectives/collectives-polkadot/src/weights/pallet_collective.rs b/cumulus/parachains/runtimes/collectives/collectives-westend/src/weights/pallet_collective.rs similarity index 100% rename from cumulus/parachains/runtimes/collectives/collectives-polkadot/src/weights/pallet_collective.rs rename to cumulus/parachains/runtimes/collectives/collectives-westend/src/weights/pallet_collective.rs diff --git a/cumulus/parachains/runtimes/collectives/collectives-polkadot/src/weights/pallet_collective_content.rs b/cumulus/parachains/runtimes/collectives/collectives-westend/src/weights/pallet_collective_content.rs similarity index 100% rename from cumulus/parachains/runtimes/collectives/collectives-polkadot/src/weights/pallet_collective_content.rs rename to cumulus/parachains/runtimes/collectives/collectives-westend/src/weights/pallet_collective_content.rs diff --git a/cumulus/parachains/runtimes/collectives/collectives-polkadot/src/weights/pallet_core_fellowship_ambassador_core.rs b/cumulus/parachains/runtimes/collectives/collectives-westend/src/weights/pallet_core_fellowship_ambassador_core.rs similarity index 100% rename from cumulus/parachains/runtimes/collectives/collectives-polkadot/src/weights/pallet_core_fellowship_ambassador_core.rs rename to cumulus/parachains/runtimes/collectives/collectives-westend/src/weights/pallet_core_fellowship_ambassador_core.rs diff --git a/cumulus/parachains/runtimes/collectives/collectives-polkadot/src/weights/pallet_core_fellowship_fellowship_core.rs b/cumulus/parachains/runtimes/collectives/collectives-westend/src/weights/pallet_core_fellowship_fellowship_core.rs similarity index 100% rename from cumulus/parachains/runtimes/collectives/collectives-polkadot/src/weights/pallet_core_fellowship_fellowship_core.rs rename to cumulus/parachains/runtimes/collectives/collectives-westend/src/weights/pallet_core_fellowship_fellowship_core.rs diff --git a/cumulus/parachains/runtimes/collectives/collectives-polkadot/src/weights/pallet_multisig.rs b/cumulus/parachains/runtimes/collectives/collectives-westend/src/weights/pallet_multisig.rs similarity index 100% rename from cumulus/parachains/runtimes/collectives/collectives-polkadot/src/weights/pallet_multisig.rs rename to cumulus/parachains/runtimes/collectives/collectives-westend/src/weights/pallet_multisig.rs diff --git a/cumulus/parachains/runtimes/collectives/collectives-polkadot/src/weights/pallet_preimage.rs b/cumulus/parachains/runtimes/collectives/collectives-westend/src/weights/pallet_preimage.rs similarity index 100% rename from cumulus/parachains/runtimes/collectives/collectives-polkadot/src/weights/pallet_preimage.rs rename to cumulus/parachains/runtimes/collectives/collectives-westend/src/weights/pallet_preimage.rs diff --git a/cumulus/parachains/runtimes/collectives/collectives-polkadot/src/weights/pallet_proxy.rs b/cumulus/parachains/runtimes/collectives/collectives-westend/src/weights/pallet_proxy.rs similarity index 100% rename from cumulus/parachains/runtimes/collectives/collectives-polkadot/src/weights/pallet_proxy.rs rename to cumulus/parachains/runtimes/collectives/collectives-westend/src/weights/pallet_proxy.rs diff --git a/cumulus/parachains/runtimes/collectives/collectives-polkadot/src/weights/pallet_ranked_collective_ambassador_collective.rs b/cumulus/parachains/runtimes/collectives/collectives-westend/src/weights/pallet_ranked_collective_ambassador_collective.rs similarity index 100% rename from cumulus/parachains/runtimes/collectives/collectives-polkadot/src/weights/pallet_ranked_collective_ambassador_collective.rs rename to cumulus/parachains/runtimes/collectives/collectives-westend/src/weights/pallet_ranked_collective_ambassador_collective.rs diff --git a/cumulus/parachains/runtimes/collectives/collectives-polkadot/src/weights/pallet_ranked_collective_fellowship_collective.rs b/cumulus/parachains/runtimes/collectives/collectives-westend/src/weights/pallet_ranked_collective_fellowship_collective.rs similarity index 100% rename from cumulus/parachains/runtimes/collectives/collectives-polkadot/src/weights/pallet_ranked_collective_fellowship_collective.rs rename to cumulus/parachains/runtimes/collectives/collectives-westend/src/weights/pallet_ranked_collective_fellowship_collective.rs diff --git a/cumulus/parachains/runtimes/collectives/collectives-polkadot/src/weights/pallet_referenda_ambassador_referenda.rs b/cumulus/parachains/runtimes/collectives/collectives-westend/src/weights/pallet_referenda_ambassador_referenda.rs similarity index 100% rename from cumulus/parachains/runtimes/collectives/collectives-polkadot/src/weights/pallet_referenda_ambassador_referenda.rs rename to cumulus/parachains/runtimes/collectives/collectives-westend/src/weights/pallet_referenda_ambassador_referenda.rs diff --git a/cumulus/parachains/runtimes/collectives/collectives-polkadot/src/weights/pallet_referenda_fellowship_referenda.rs b/cumulus/parachains/runtimes/collectives/collectives-westend/src/weights/pallet_referenda_fellowship_referenda.rs similarity index 100% rename from cumulus/parachains/runtimes/collectives/collectives-polkadot/src/weights/pallet_referenda_fellowship_referenda.rs rename to cumulus/parachains/runtimes/collectives/collectives-westend/src/weights/pallet_referenda_fellowship_referenda.rs diff --git a/cumulus/parachains/runtimes/collectives/collectives-polkadot/src/weights/pallet_salary_ambassador_salary.rs b/cumulus/parachains/runtimes/collectives/collectives-westend/src/weights/pallet_salary_ambassador_salary.rs similarity index 100% rename from cumulus/parachains/runtimes/collectives/collectives-polkadot/src/weights/pallet_salary_ambassador_salary.rs rename to cumulus/parachains/runtimes/collectives/collectives-westend/src/weights/pallet_salary_ambassador_salary.rs diff --git a/cumulus/parachains/runtimes/collectives/collectives-polkadot/src/weights/pallet_salary_fellowship_salary.rs b/cumulus/parachains/runtimes/collectives/collectives-westend/src/weights/pallet_salary_fellowship_salary.rs similarity index 100% rename from cumulus/parachains/runtimes/collectives/collectives-polkadot/src/weights/pallet_salary_fellowship_salary.rs rename to cumulus/parachains/runtimes/collectives/collectives-westend/src/weights/pallet_salary_fellowship_salary.rs diff --git a/cumulus/parachains/runtimes/collectives/collectives-polkadot/src/weights/pallet_scheduler.rs b/cumulus/parachains/runtimes/collectives/collectives-westend/src/weights/pallet_scheduler.rs similarity index 100% rename from cumulus/parachains/runtimes/collectives/collectives-polkadot/src/weights/pallet_scheduler.rs rename to cumulus/parachains/runtimes/collectives/collectives-westend/src/weights/pallet_scheduler.rs diff --git a/cumulus/parachains/runtimes/collectives/collectives-polkadot/src/weights/pallet_session.rs b/cumulus/parachains/runtimes/collectives/collectives-westend/src/weights/pallet_session.rs similarity index 100% rename from cumulus/parachains/runtimes/collectives/collectives-polkadot/src/weights/pallet_session.rs rename to cumulus/parachains/runtimes/collectives/collectives-westend/src/weights/pallet_session.rs diff --git a/cumulus/parachains/runtimes/collectives/collectives-polkadot/src/weights/pallet_timestamp.rs b/cumulus/parachains/runtimes/collectives/collectives-westend/src/weights/pallet_timestamp.rs similarity index 100% rename from cumulus/parachains/runtimes/collectives/collectives-polkadot/src/weights/pallet_timestamp.rs rename to cumulus/parachains/runtimes/collectives/collectives-westend/src/weights/pallet_timestamp.rs diff --git a/cumulus/parachains/runtimes/collectives/collectives-polkadot/src/weights/pallet_utility.rs b/cumulus/parachains/runtimes/collectives/collectives-westend/src/weights/pallet_utility.rs similarity index 100% rename from cumulus/parachains/runtimes/collectives/collectives-polkadot/src/weights/pallet_utility.rs rename to cumulus/parachains/runtimes/collectives/collectives-westend/src/weights/pallet_utility.rs diff --git a/cumulus/parachains/runtimes/collectives/collectives-polkadot/src/weights/pallet_xcm.rs b/cumulus/parachains/runtimes/collectives/collectives-westend/src/weights/pallet_xcm.rs similarity index 100% rename from cumulus/parachains/runtimes/collectives/collectives-polkadot/src/weights/pallet_xcm.rs rename to cumulus/parachains/runtimes/collectives/collectives-westend/src/weights/pallet_xcm.rs diff --git a/cumulus/parachains/runtimes/assets/asset-hub-kusama/src/weights/paritydb_weights.rs b/cumulus/parachains/runtimes/collectives/collectives-westend/src/weights/paritydb_weights.rs similarity index 100% rename from cumulus/parachains/runtimes/assets/asset-hub-kusama/src/weights/paritydb_weights.rs rename to cumulus/parachains/runtimes/collectives/collectives-westend/src/weights/paritydb_weights.rs diff --git a/cumulus/parachains/runtimes/assets/asset-hub-kusama/src/weights/rocksdb_weights.rs b/cumulus/parachains/runtimes/collectives/collectives-westend/src/weights/rocksdb_weights.rs similarity index 100% rename from cumulus/parachains/runtimes/assets/asset-hub-kusama/src/weights/rocksdb_weights.rs rename to cumulus/parachains/runtimes/collectives/collectives-westend/src/weights/rocksdb_weights.rs diff --git a/cumulus/parachains/runtimes/collectives/collectives-polkadot/src/xcm_config.rs b/cumulus/parachains/runtimes/collectives/collectives-westend/src/xcm_config.rs similarity index 100% rename from cumulus/parachains/runtimes/collectives/collectives-polkadot/src/xcm_config.rs rename to cumulus/parachains/runtimes/collectives/collectives-westend/src/xcm_config.rs diff --git a/cumulus/parachains/runtimes/glutton/glutton-kusama/Cargo.toml b/cumulus/parachains/runtimes/glutton/glutton-westend/Cargo.toml similarity index 99% rename from cumulus/parachains/runtimes/glutton/glutton-kusama/Cargo.toml rename to cumulus/parachains/runtimes/glutton/glutton-westend/Cargo.toml index 63b658ca977a..a55a40c7e737 100644 --- a/cumulus/parachains/runtimes/glutton/glutton-kusama/Cargo.toml +++ b/cumulus/parachains/runtimes/glutton/glutton-westend/Cargo.toml @@ -1,5 +1,5 @@ [package] -name = "glutton-runtime" +name = "glutton-westend-runtime" version = "1.0.0" authors.workspace = true edition.workspace = true diff --git a/cumulus/parachains/runtimes/glutton/glutton-kusama/build.rs b/cumulus/parachains/runtimes/glutton/glutton-westend/build.rs similarity index 100% rename from cumulus/parachains/runtimes/glutton/glutton-kusama/build.rs rename to cumulus/parachains/runtimes/glutton/glutton-westend/build.rs diff --git a/cumulus/parachains/runtimes/glutton/glutton-kusama/src/lib.rs b/cumulus/parachains/runtimes/glutton/glutton-westend/src/lib.rs similarity index 100% rename from cumulus/parachains/runtimes/glutton/glutton-kusama/src/lib.rs rename to cumulus/parachains/runtimes/glutton/glutton-westend/src/lib.rs diff --git a/cumulus/parachains/runtimes/glutton/glutton-kusama/src/weights/frame_system.rs b/cumulus/parachains/runtimes/glutton/glutton-westend/src/weights/frame_system.rs similarity index 100% rename from cumulus/parachains/runtimes/glutton/glutton-kusama/src/weights/frame_system.rs rename to cumulus/parachains/runtimes/glutton/glutton-westend/src/weights/frame_system.rs diff --git a/cumulus/parachains/runtimes/glutton/glutton-kusama/src/weights/mod.rs b/cumulus/parachains/runtimes/glutton/glutton-westend/src/weights/mod.rs similarity index 100% rename from cumulus/parachains/runtimes/glutton/glutton-kusama/src/weights/mod.rs rename to cumulus/parachains/runtimes/glutton/glutton-westend/src/weights/mod.rs diff --git a/cumulus/parachains/runtimes/glutton/glutton-kusama/src/weights/pallet_glutton.rs b/cumulus/parachains/runtimes/glutton/glutton-westend/src/weights/pallet_glutton.rs similarity index 100% rename from cumulus/parachains/runtimes/glutton/glutton-kusama/src/weights/pallet_glutton.rs rename to cumulus/parachains/runtimes/glutton/glutton-westend/src/weights/pallet_glutton.rs diff --git a/cumulus/parachains/runtimes/glutton/glutton-kusama/src/weights/pallet_timestamp.rs b/cumulus/parachains/runtimes/glutton/glutton-westend/src/weights/pallet_timestamp.rs similarity index 100% rename from cumulus/parachains/runtimes/glutton/glutton-kusama/src/weights/pallet_timestamp.rs rename to cumulus/parachains/runtimes/glutton/glutton-westend/src/weights/pallet_timestamp.rs diff --git a/cumulus/parachains/runtimes/glutton/glutton-kusama/src/xcm_config.rs b/cumulus/parachains/runtimes/glutton/glutton-westend/src/xcm_config.rs similarity index 100% rename from cumulus/parachains/runtimes/glutton/glutton-kusama/src/xcm_config.rs rename to cumulus/parachains/runtimes/glutton/glutton-westend/src/xcm_config.rs diff --git a/cumulus/polkadot-parachain/Cargo.toml b/cumulus/polkadot-parachain/Cargo.toml index ac8ad53b5243..5179e62e9ed4 100644 --- a/cumulus/polkadot-parachain/Cargo.toml +++ b/cumulus/polkadot-parachain/Cargo.toml @@ -23,16 +23,12 @@ serde_json = "1.0.107" # Local rococo-parachain-runtime = { path = "../parachains/runtimes/testing/rococo-parachain" } shell-runtime = { path = "../parachains/runtimes/starters/shell" } -glutton-runtime = { path = "../parachains/runtimes/glutton/glutton-kusama" } +glutton-westend-runtime = { path = "../parachains/runtimes/glutton/glutton-westend" } seedling-runtime = { path = "../parachains/runtimes/starters/seedling" } -asset-hub-polkadot-runtime = { path = "../parachains/runtimes/assets/asset-hub-polkadot" } -asset-hub-kusama-runtime = { path = "../parachains/runtimes/assets/asset-hub-kusama" } asset-hub-westend-runtime = { path = "../parachains/runtimes/assets/asset-hub-westend" } -collectives-polkadot-runtime = { path = "../parachains/runtimes/collectives/collectives-polkadot" } +collectives-westend-runtime = { path = "../parachains/runtimes/collectives/collectives-westend" } contracts-rococo-runtime = { path = "../parachains/runtimes/contracts/contracts-rococo" } bridge-hub-rococo-runtime = { path = "../parachains/runtimes/bridge-hubs/bridge-hub-rococo" } -bridge-hub-kusama-runtime = { path = "../parachains/runtimes/bridge-hubs/bridge-hub-kusama" } -bridge-hub-polkadot-runtime = { path = "../parachains/runtimes/bridge-hubs/bridge-hub-polkadot" } penpal-runtime = { path = "../parachains/runtimes/testing/penpal" } jsonrpsee = { version = "0.16.2", features = ["server"] } parachains-common = { path = "../parachains/common" } @@ -105,17 +101,13 @@ wait-timeout = "0.2" [features] default = [] runtime-benchmarks = [ - "asset-hub-kusama-runtime/runtime-benchmarks", - "asset-hub-polkadot-runtime/runtime-benchmarks", "asset-hub-westend-runtime/runtime-benchmarks", - "bridge-hub-kusama-runtime/runtime-benchmarks", - "bridge-hub-polkadot-runtime/runtime-benchmarks", "bridge-hub-rococo-runtime/runtime-benchmarks", - "collectives-polkadot-runtime/runtime-benchmarks", + "collectives-westend-runtime/runtime-benchmarks", "contracts-rococo-runtime/runtime-benchmarks", "frame-benchmarking-cli/runtime-benchmarks", "frame-benchmarking/runtime-benchmarks", - "glutton-runtime/runtime-benchmarks", + "glutton-westend-runtime/runtime-benchmarks", "parachains-common/runtime-benchmarks", "penpal-runtime/runtime-benchmarks", "polkadot-cli/runtime-benchmarks", @@ -126,15 +118,11 @@ runtime-benchmarks = [ "sp-runtime/runtime-benchmarks", ] try-runtime = [ - "asset-hub-kusama-runtime/try-runtime", - "asset-hub-polkadot-runtime/try-runtime", "asset-hub-westend-runtime/try-runtime", - "bridge-hub-kusama-runtime/try-runtime", - "bridge-hub-polkadot-runtime/try-runtime", "bridge-hub-rococo-runtime/try-runtime", - "collectives-polkadot-runtime/try-runtime", + "collectives-westend-runtime/try-runtime", "contracts-rococo-runtime/try-runtime", - "glutton-runtime/try-runtime", + "glutton-westend-runtime/try-runtime", "penpal-runtime/try-runtime", "polkadot-cli/try-runtime", "polkadot-service/try-runtime", From 2d46fc67a7688d08d059fab78a18c0f1383c73c5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?D=C3=B3nal=20Murray?= Date: Fri, 29 Sep 2023 11:55:49 +0100 Subject: [PATCH 02/78] Remove integration tests for native runtimes Westend equivalents to be added later --- Cargo.lock | 132 ++++++ .../assets/asset-hub-kusama/0_xcm/0_init.yml | 145 ------- .../assets/asset-hub-kusama/0_xcm/1_dmp.yml | 263 ------------ .../assets/asset-hub-kusama/0_xcm/2_ump.yml | 191 --------- .../0_xcm/3_force_hrmp-open-channels.yml | 122 ------ .../assets/asset-hub-kusama/0_xcm/4_hrmp.yml | 388 ------------------ .../e2e/assets/asset-hub-kusama/config.toml | 71 ---- .../asset-hub-polkadot/0_xcm/0_init.yml | 145 ------- .../assets/asset-hub-polkadot/0_xcm/1_dmp.yml | 263 ------------ .../assets/asset-hub-polkadot/0_xcm/2_ump.yml | 194 --------- .../0_xcm/3_force_hrmp-open-channels.yml | 120 ------ .../asset-hub-polkadot/0_xcm/4_hrmp.yml | 388 ------------------ .../e2e/assets/asset-hub-polkadot/config.toml | 72 ---- .../emulated/common/Cargo.toml | 12 +- 14 files changed, 134 insertions(+), 2372 deletions(-) delete mode 100644 cumulus/parachains/integration-tests/e2e/assets/asset-hub-kusama/0_xcm/0_init.yml delete mode 100644 cumulus/parachains/integration-tests/e2e/assets/asset-hub-kusama/0_xcm/1_dmp.yml delete mode 100644 cumulus/parachains/integration-tests/e2e/assets/asset-hub-kusama/0_xcm/2_ump.yml delete mode 100644 cumulus/parachains/integration-tests/e2e/assets/asset-hub-kusama/0_xcm/3_force_hrmp-open-channels.yml delete mode 100644 cumulus/parachains/integration-tests/e2e/assets/asset-hub-kusama/0_xcm/4_hrmp.yml delete mode 100644 cumulus/parachains/integration-tests/e2e/assets/asset-hub-kusama/config.toml delete mode 100644 cumulus/parachains/integration-tests/e2e/assets/asset-hub-polkadot/0_xcm/0_init.yml delete mode 100644 cumulus/parachains/integration-tests/e2e/assets/asset-hub-polkadot/0_xcm/1_dmp.yml delete mode 100644 cumulus/parachains/integration-tests/e2e/assets/asset-hub-polkadot/0_xcm/2_ump.yml delete mode 100644 cumulus/parachains/integration-tests/e2e/assets/asset-hub-polkadot/0_xcm/3_force_hrmp-open-channels.yml delete mode 100644 cumulus/parachains/integration-tests/e2e/assets/asset-hub-polkadot/0_xcm/4_hrmp.yml delete mode 100644 cumulus/parachains/integration-tests/e2e/assets/asset-hub-polkadot/config.toml diff --git a/Cargo.lock b/Cargo.lock index a25d0286031b..93a43899bb57 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -2239,6 +2239,77 @@ dependencies = [ "unicode-width", ] +[[package]] +name = "collectives-westend-runtime" +version = "1.0.0" +dependencies = [ + "cumulus-pallet-aura-ext", + "cumulus-pallet-dmp-queue", + "cumulus-pallet-parachain-system", + "cumulus-pallet-session-benchmarking", + "cumulus-pallet-xcm", + "cumulus-pallet-xcmp-queue", + "cumulus-primitives-core", + "cumulus-primitives-utility", + "frame-benchmarking", + "frame-executive", + "frame-support", + "frame-system", + "frame-system-benchmarking", + "frame-system-rpc-runtime-api", + "frame-try-runtime", + "hex-literal", + "log", + "pallet-alliance", + "pallet-aura", + "pallet-authorship", + "pallet-balances", + "pallet-collator-selection", + "pallet-collective", + "pallet-collective-content", + "pallet-core-fellowship", + "pallet-multisig", + "pallet-preimage", + "pallet-proxy", + "pallet-ranked-collective", + "pallet-referenda", + "pallet-salary", + "pallet-scheduler", + "pallet-session", + "pallet-timestamp", + "pallet-transaction-payment", + "pallet-transaction-payment-rpc-runtime-api", + "pallet-utility", + "pallet-xcm", + "parachain-info", + "parachains-common", + "parity-scale-codec", + "polkadot-core-primitives", + "polkadot-parachain-primitives", + "polkadot-runtime-common", + "scale-info", + "smallvec", + "sp-api", + "sp-arithmetic", + "sp-block-builder", + "sp-consensus-aura", + "sp-core", + "sp-genesis-builder", + "sp-inherents", + "sp-io", + "sp-offchain", + "sp-runtime", + "sp-session", + "sp-std", + "sp-storage", + "sp-transaction-pool", + "sp-version", + "staging-xcm", + "staging-xcm-builder", + "staging-xcm-executor", + "substrate-wasm-builder", +] + [[package]] name = "color-eyre" version = "0.6.2" @@ -5375,6 +5446,49 @@ dependencies = [ "regex", ] +[[package]] +name = "glutton-westend-runtime" +version = "1.0.0" +dependencies = [ + "cumulus-pallet-aura-ext", + "cumulus-pallet-parachain-system", + "cumulus-pallet-xcm", + "cumulus-primitives-core", + "cumulus-primitives-timestamp", + "frame-benchmarking", + "frame-executive", + "frame-support", + "frame-system", + "frame-system-benchmarking", + "frame-system-rpc-runtime-api", + "frame-try-runtime", + "pallet-aura", + "pallet-glutton", + "pallet-sudo", + "pallet-timestamp", + "parachain-info", + "parachains-common", + "parity-scale-codec", + "scale-info", + "sp-api", + "sp-block-builder", + "sp-consensus-aura", + "sp-core", + "sp-genesis-builder", + "sp-inherents", + "sp-offchain", + "sp-runtime", + "sp-session", + "sp-std", + "sp-storage", + "sp-transaction-pool", + "sp-version", + "staging-xcm", + "staging-xcm-builder", + "staging-xcm-executor", + "substrate-wasm-builder", +] + [[package]] name = "group" version = "0.12.1" @@ -5906,6 +6020,7 @@ dependencies = [ "bp-messages", "bridge-hub-rococo-runtime", "bridge-runtime-common", + "collectives-westend-runtime", "cumulus-pallet-dmp-queue", "cumulus-pallet-parachain-system", "cumulus-pallet-xcmp-queue", @@ -8817,6 +8932,21 @@ dependencies = [ "sp-std", ] +[[package]] +name = "pallet-collective-content" +version = "0.1.0" +dependencies = [ + "frame-benchmarking", + "frame-support", + "frame-system", + "parity-scale-codec", + "scale-info", + "sp-core", + "sp-io", + "sp-runtime", + "sp-std", +] + [[package]] name = "pallet-contracts" version = "4.0.0-dev" @@ -11891,6 +12021,7 @@ dependencies = [ "async-trait", "bridge-hub-rococo-runtime", "clap 4.4.4", + "collectives-westend-runtime", "color-print", "contracts-rococo-runtime", "cumulus-client-cli", @@ -11906,6 +12037,7 @@ dependencies = [ "frame-benchmarking", "frame-benchmarking-cli", "futures", + "glutton-westend-runtime", "hex-literal", "jsonrpsee", "log", diff --git a/cumulus/parachains/integration-tests/e2e/assets/asset-hub-kusama/0_xcm/0_init.yml b/cumulus/parachains/integration-tests/e2e/assets/asset-hub-kusama/0_xcm/0_init.yml deleted file mode 100644 index fdc1aa258d42..000000000000 --- a/cumulus/parachains/integration-tests/e2e/assets/asset-hub-kusama/0_xcm/0_init.yml +++ /dev/null @@ -1,145 +0,0 @@ ---- -settings: - chains: - relay_chain: &relay_chain - wsPort: 9900 - assets_parachain: &assets_parachain - wsPort: 9910 - paraId: &ap_id 1000 - penpal_parachain: &penpal_parachain - wsPort: 9920 - paraId: &pp_id 2000 - variables: - common: - xcm_version: &xcm_version 3 - require_weight_at_most: &weight_at_most {refTime: 1000000000, proofSize: 200000} - weight_threshold: &weight_threshold { refTime: [10, 10], proofSize: [10, 10] } - chains: - relay_chain: - signer: &rc_signer //Alice - assets_parachain_destination: &ap_dest { v3: { 0, interior: { x1: { parachain: *ap_id }}}} - penpal_parachain: - signer: &pp_signer //Alice - decodedCalls: - ap_force_xcm_version: - chain: *assets_parachain - pallet: polkadotXcm - call: forceXcmVersion - args: [ - { # location - parents: 1, - interior: Here - }, - *xcm_version # xcmVersion - ] - -tests: - - name: Initialize Chains - its: - - name: XCM supported versions between chains - actions: - - extrinsics: # Relay Chain sets supported version for Asset Parachain - - chain: *relay_chain - sudo: true - signer: *rc_signer - pallet: xcmPallet - call: forceXcmVersion - args: [ - { # location - parents: 0, - interior: { - X1: { - Parachain: *ap_id - } - } - }, - *xcm_version # xcmVersion - ] - events: - - name: sudo.Sudid - result: { sudoResult: Ok } - - name: xcmPallet.SupportedVersionChanged - result: { location: { parents: 0, interior: { X1: { Parachain: *ap_id }}}, version: *xcm_version } - - extrinsics: # Relay Chain sets supported version for Penpal Parachain - - chain: *relay_chain - sudo: true - signer: *rc_signer - pallet: xcmPallet - call: forceXcmVersion - args: [ - { # location - parents: 0, - interior: { - X1: { - Parachain: *pp_id - } - } - }, - *xcm_version # xcmVersion - ] - events: - - name: sudo.Sudid - result: { sudoResult: Ok } - - name: xcmPallet.SupportedVersionChanged - result: { location: { parents: 0, interior: { X1: { Parachain: *pp_id }}}, version: *xcm_version } - - extrinsics: # Asset Parachain sets supported version for Relay Chain through it - - chain: *relay_chain - signer: *rc_signer - sudo: true - pallet: xcmPallet - call: send - args: [ - *ap_dest, # destination - { - v3: [ #message - { - UnpaidExecution: { - weightLimit: { - limited: { - refTime: 2200000000, - proofSize: 200000 - } - } - } - }, - { - Transact: { - originKind: Superuser, - requireWeightAtMost: *weight_at_most, - call: $ap_force_xcm_version - } - } - ] - } - ] - events: - - name: sudo.Sudid - result: { sudoResult: Ok } - - name: xcmPallet.Sent - - name: dmpQueue.ExecutedDownward - chain: *assets_parachain - threshold: *weight_threshold - result: { - outcome: { Complete: { refTime: '1,019,210,000', proofSize: '200,000' }} - } - - name: polkadotXcm.SupportedVersionChanged - chain: *assets_parachain - result: { location: { parents: 1, interior: Here }, version: *xcm_version } - - extrinsics: # Penpal Parachain sets supported version for Relay Chain - - chain: *penpal_parachain - signer: *pp_signer - sudo: true - pallet: polkadotXcm - call: forceXcmVersion - args: [ - { # location - parents: 1, - interior: Here - }, - *xcm_version # xcmVersion - ] - events: - - name: sudo.Sudid - result: { sudoResult: Ok } - - name: polkadotXcm.SupportedVersionChanged - result: { location: { parents: 1, interior: Here }, version: *xcm_version } diff --git a/cumulus/parachains/integration-tests/e2e/assets/asset-hub-kusama/0_xcm/1_dmp.yml b/cumulus/parachains/integration-tests/e2e/assets/asset-hub-kusama/0_xcm/1_dmp.yml deleted file mode 100644 index 0e207e632a02..000000000000 --- a/cumulus/parachains/integration-tests/e2e/assets/asset-hub-kusama/0_xcm/1_dmp.yml +++ /dev/null @@ -1,263 +0,0 @@ ---- -settings: - chains: - relay_chain: &relay_chain - wsPort: 9900 - assets_parachain: &assets_parachain - wsPort: 9910 - paraId: &ap_id 1000 - variables: - common: - weight_threshold: &weight_threshold { refTime: [10, 10], proofSize: [10, 10] } - chains: - relay_chain: - signer: &rc_signer //Alice - wallet: &rc_wallet HNZata7iMYWmk5RvZRTiAsSDhV8366zq2YGb3tLH5Upf74F - assets_parachain_destination: &ap_dest { v3: { parents: 0, interior: { x1: { parachain: *ap_id }}}} - assets_parachain_account: &ap_acc '0xd43593c715fdd31c61141abd04a99fd6822c8558854ccde39a5684e7a56da27d' - assets_parachain_beneficiary: &ap_benf { v3: { parents: 0, interior: { x1: { accountId32: { id: *ap_acc }}}}} - ksm: &rc_ksm { concrete: { parents: 0, interior: { here: true }}} - amount: &amount 1000000000000 - ksm_fungible: &rc_ksm_fungible { id: *rc_ksm, fun: { fungible: *amount }} - require_weight_at_most: &rc_weight_at_most { refTime: 1000000000, proofSize: 200000 } - assets_parachain_account: - wallet: &ap_wallet HNZata7iMYWmk5RvZRTiAsSDhV8366zq2YGb3tLH5Upf74F - asset_id: &asset_id 1 - asset_min_balance: &asset_ed 1000 - decodedCalls: - force_create_asset: - chain: *assets_parachain - pallet: assets - call: forceCreate - args: [ - *asset_id, - { Id: *ap_wallet }, # owner - true, # isSufficient - *asset_ed # minBalance - ] - -tests: - - name: DMP - its: [] - describes: - - name: xcmPallet.limitedTeleportAssets - before: &before_get_balances - - name: Get the balances of the Relay Chain's sender & Assets Parachain's receiver - actions: - - queries: - balance_rc_sender_before: - chain: *relay_chain - pallet: system - call: account - args: [ *rc_wallet ] - balance_ap_receiver_before: - chain: *assets_parachain - pallet: system - call: account - args: [ *ap_wallet ] - its: - - name: Should teleport native assets from the Relay Chain to the Assets Parachain - actions: - - extrinsics: - - chain: *relay_chain - signer: *rc_signer - pallet: xcmPallet - call: limitedTeleportAssets - args: [ - *ap_dest, # destination - *ap_benf, # beneficiary - { v3: [ *rc_ksm_fungible ] }, - 0, # feeAssetItem - { unlimited: true } # weightLimit - ] - events: - - name: xcmPallet.Attempted - threshold: *weight_threshold - result: { outcome: { Complete: { refTime: '764,772,000', proofSize: 0 }}} - - name: dmpQueue.ExecutedDownward - chain: *assets_parachain - threshold: *weight_threshold - result: { outcome: { Complete: { refTime: '166,944,000', proofSize: 0 }}} - - queries: - balance_rc_sender_after: - chain: *relay_chain - pallet: system - call: account - args: [ *rc_wallet ] - balance_ap_receiver_after: - chain: *assets_parachain - pallet: system - call: account - args: [ *ap_wallet ] - - - name: Should reduce the balance of the sender - actions: - - asserts: - balanceDecreased: - args: [ - { - balances: { - before: $balance_rc_sender_before, - after: $balance_rc_sender_after, - }, - amount: *amount - } - ] - - - name: Should increase the balance of the receiver - actions: - - asserts: - balanceIncreased: - args: [ - { - balances: { - before: $balance_ap_receiver_before, - after: $balance_ap_receiver_after, - } - } - ] - - - name: xcmPallet.send | Superuser - Transact(assets.forceCreate) - its: - - name: Relay Chain Superuser account SHOULD be able to execute a XCM Transact instruction in the Assets Parachain - actions: - - extrinsics: - - chain: *relay_chain - signer: *rc_signer - sudo: true - pallet: xcmPallet - call: send - args: [ - *ap_dest, # destination - { - v3: [ #message - { - UnpaidExecution: { - weightLimit: Unlimited - } - }, - { - Transact: { - originKind: Superuser, - requireWeightAtMost: *rc_weight_at_most, - call: $force_create_asset - } - } - ] - } - ] - events: - - name: xcmPallet.Sent - - name: dmpQueue.ExecutedDownward - chain: *assets_parachain - threshold: *weight_threshold - result: { outcome: { Complete: { refTime: '1,014,103,000', proofSize: '200,000' }}} - - queries: - forced_created_asset: - chain: *assets_parachain - pallet: assets - call: asset - args: [ *asset_id ] - - asserts: - isSome: - args: [ $forced_created_asset ] - - - name: xcmPallet.send | Native - Transact(assets.forceCreate) - its: - - name: Relay Chain Native account SHOULD NOT be able to execute a XCM Transact instruction in the Assets Parachain - actions: - - extrinsics: - - chain: *relay_chain - signer: *rc_signer - pallet: xcmPallet - call: send - args: [ - *ap_dest, # destination - { - v3: [ #message - { - UnpaidExecution: { - weightLimit: Unlimited - } - }, - { - Transact: { - originKind: Native, - requireWeightAtMost: *rc_weight_at_most, - call: $force_create_asset - } - } - ] - } - ] - events: - - name: system.ExtrinsicFailed - result: { dispatchError: BadOrigin } - - - name: xcmPallet.limitedReserveTransferAssets - before: *before_get_balances - its: - - name: SHOULD NOT reserved transfer native assets from the Relay Chain to the Assets Parachain - actions: - - extrinsics: - - chain: *relay_chain - signer: *rc_signer - pallet: xcmPallet - call: limitedReserveTransferAssets - args: [ - *ap_dest, # destination - *ap_benf, # beneficiary - { v3: [ *rc_ksm_fungible ] }, # assets - 0, # feeAssetItem - { unlimited: true } # weightLimit - ] - events: - - name: xcmPallet.Attempted - threshold: *weight_threshold - result: { outcome: { Complete: { refTime: '750,645,000', proofSize: 0 }}} - - name: dmpQueue.ExecutedDownward - chain: *assets_parachain - threshold: *weight_threshold - result: { - outcome: { - Incomplete: [ - { refTime: '1,000,000,000', proofSize: 0 }, - UntrustedReserveLocation - ] - } - } - - queries: - balance_rc_sender_after: - chain: *relay_chain - pallet: system - call: account - args: [ *rc_wallet ] - balance_ap_receiver_after: - chain: *assets_parachain - pallet: system - call: account - args: [ *ap_wallet ] - - - name: Should reduce the balance of the sender - actions: - - asserts: - balanceDecreased: - args: [ - { - balances: { - before: $balance_rc_sender_before, - after: $balance_rc_sender_after, - }, - amount: *amount - } - ] - - - name: Should keep the balance of the receiver - actions: - - asserts: - equal: - args: - [ - $balance_ap_receiver_before, - $balance_ap_receiver_after - ] diff --git a/cumulus/parachains/integration-tests/e2e/assets/asset-hub-kusama/0_xcm/2_ump.yml b/cumulus/parachains/integration-tests/e2e/assets/asset-hub-kusama/0_xcm/2_ump.yml deleted file mode 100644 index 2a0bb88090e9..000000000000 --- a/cumulus/parachains/integration-tests/e2e/assets/asset-hub-kusama/0_xcm/2_ump.yml +++ /dev/null @@ -1,191 +0,0 @@ ---- -settings: - chains: - relay_chain: &relay_chain - wsPort: 9900 - assets_parachain: &assets_parachain - wsPort: 9910 - paraId: &ap_id 1000 - variables: - common: - amount: &amount 1000000000000 - require_weight_at_most: &weight_at_most {refTime: 1000000000, proofSize: 0} - weight_threshold: &weight_threshold { refTime: [10, 10], proofSize: [10, 10] } - chains: - relay_chain: - signer: &rc_signer //Alice - wallet: &rc_wallet HNZata7iMYWmk5RvZRTiAsSDhV8366zq2YGb3tLH5Upf74F #Alice - assets_parachain_destination: &ap_dest { v3: { 0, interior: { x1: { parachain: *ap_id }}}} - assets_parachain_account: &ap_acc '0xd43593c715fdd31c61141abd04a99fd6822c8558854ccde39a5684e7a56da27d' - assets_parachain_beneficiary: &ap_benf {v3: { parents: 0, interior: { x1: { accountId32: { id: *ap_acc }}}}} - ksm: &rc_ksm { concrete: { 0, interior: { here: true }}} - ksm_fungible: &rc_ksm_fungible { id: *rc_ksm, fun: { fungible: *amount }} - assets_parachain_account: - signer: &ap_signer //Alice - wallet: &ap_wallet HNZata7iMYWmk5RvZRTiAsSDhV8366zq2YGb3tLH5Upf74F - relay_chain_destination: &rc_dest { v3: { parents: 1, interior: { here: true }}} - assets_parachain_account: &rc_acc '0xd43593c715fdd31c61141abd04a99fd6822c8558854ccde39a5684e7a56da27d' #Alice - relay_chain_beneficiary: &rc_benf {v3: { parents: 0, interior: { x1: { accountId32: { id: *rc_acc }}}}} - ksm: &ap_ksm { concrete: { parents: 1, interior: { here: true }}} - ksm_fungible: &ap_ksm_fungible { id: *ap_ksm, fun: { fungible: *amount }} - decodedCalls: - system_remark: - chain: *relay_chain - pallet: system - call: remark - args: [ 0x0011 ] - -tests: - - name: UMP - describes: - - name: polkadotXcm.limitedTeleportAssets - before: - - name: DEPENDENCY | Do a 'limitedTeleportAssets' from the Relay Chain to the Assets Parachain to have funds to send them back - actions: - - extrinsics: - - chain: *relay_chain - signer: *rc_signer - pallet: xcmPallet - call: limitedTeleportAssets - args: [ - *ap_dest, # destination - *ap_benf, # beneficiary - { v3: [ *rc_ksm_fungible ] }, # assets - 0, # feeAssetItem - { unlimited: true } # weightLimit - ] - events: - - name: xcmPallet.Attempted - threshold: *weight_threshold - result: { outcome: { Complete: { refTime: '761,173,000', proofSize: 0 }}} - - name: dmpQueue.ExecutedDownward - chain: *assets_parachain - threshold: *weight_threshold - result: { outcome: { Complete: { refTime: '166,944,000', proofSize: 0 }}} - - - name: Get the balances of the Assets Parachain's sender & Relay Chain's receiver - actions: - - queries: - balance_ap_sender_before: - chain: *assets_parachain - pallet: system - call: account - args: [ *ap_wallet ] - balance_rc_receiver_before: - chain: *relay_chain - pallet: system - call: account - args: [ *rc_wallet ] - its: - - name: Should teleport native assets back from Assets Parachain to the Relay Chain - actions: - - extrinsics: - - chain: *assets_parachain - signer: *ap_signer - pallet: polkadotXcm - call: limitedTeleportAssets - args: [ - *rc_dest, # destination - *rc_benf, # beneficiary - { v3: [ *ap_ksm_fungible ] }, # assets - 0, # feeAssetItem - { unlimited: true } # weightLimit - ] - events: - - name: polkadotXcm.Attempted - threshold: *weight_threshold - result: { outcome: { Complete: { refTime: '539,494,000', proofSize: '7,133' }}} - - name: messageQueue.Processed - chain: *relay_chain - threshold: *weight_threshold - result: { origin: { Ump: { Para: '1,000' } }, weightUsed: { refTime: '298,716,000', proofSize: '0' }, success: true } - - queries: - balance_ap_sender_after: - chain: *assets_parachain - pallet: system - call: account - args: [ *ap_wallet ] - balance_rc_receiver_after: - chain: *relay_chain - pallet: system - call: account - args: [ *rc_wallet ] - - - name: Should reduce the balance of the sender - actions: - - asserts: - balanceDecreased: - args: [ - { - balances: { - before: $balance_ap_sender_before, - after: $balance_ap_sender_after, - }, - amount: *amount - } - ] - - - name: Should increase the balance of the receiver - actions: - - asserts: - balanceIncreased: - args: [ - { - balances: { - before: $balance_rc_receiver_before, - after: $balance_rc_receiver_after, - } - } - ] - - - name: polkadotXcm.send | Native - Transact(system.remark) - its: - - name: Assets Parachain SHOULD NOT be able to dispatch 'send' call - actions: - - extrinsics: - - chain: *assets_parachain - signer: *ap_signer - pallet: polkadotXcm - call: send - args: [ - *rc_dest, # destination - { - v3: [ #message - { - UnpaidExecution: { - weightLimit: Unlimited - } - }, - { - Transact: { - originKind: Native, - requireWeightAtMost: *weight_at_most, - call: $system_remark - } - } - ] - } - ] - events: - - name: system.ExtrinsicFailed - result: { dispatchError: BadOrigin } - - - name: polkadotXcm.limitedReserveTransferAssets - its: - - name: Should NOT be able to reserve transfer native assets from the Assets Parachain to the Relay Chain - actions: - - extrinsics: - - chain: *assets_parachain - signer: *ap_signer - pallet: polkadotXcm - call: limitedReserveTransferAssets - args: [ - *rc_dest, # destination - *rc_benf, # beneficiary - { v3: [ *ap_ksm_fungible ] }, # assets - 0, # feeAssetItem - { unlimited: true } # weightLimit - ] - events: - - name: polkadotXcm.Attempted - result: { outcome: { Error: Barrier }} diff --git a/cumulus/parachains/integration-tests/e2e/assets/asset-hub-kusama/0_xcm/3_force_hrmp-open-channels.yml b/cumulus/parachains/integration-tests/e2e/assets/asset-hub-kusama/0_xcm/3_force_hrmp-open-channels.yml deleted file mode 100644 index dfdae028f00d..000000000000 --- a/cumulus/parachains/integration-tests/e2e/assets/asset-hub-kusama/0_xcm/3_force_hrmp-open-channels.yml +++ /dev/null @@ -1,122 +0,0 @@ ---- -settings: - chains: - relay_chain: &relay_chain - wsPort: 9900 - assets_parachain: - wsPort: 9910 - paraId: &ap_id 1000 - penpal_parachain: - wsPort: 9920 - paraId: &pp_id 2000 - variables: - common: - amount: &amount 2000000000000 - hrmp_channels: - proposed_max_capacity: &max_capacity 8 - proposed_max_message_size: &max_message_size 8192 - channel: &channel { - maxCapacity: *max_capacity, - maxTotalSize: *max_message_size, - maxMessageSize: *max_message_size, - msgCount: 0, - totalSize: 0, - mqcHead: null, - senderDeposit: 0, - recipientDeposit: 0 - } - chains: - relay_chain: - signer: &rc_signer //Alice - assets_parachain_account: - sovereign_account: &ap_sovereign F7fq1jSNVTPfJmaHaXCMtatT1EZefCUsa7rRiQVNR5efcah - penpal_parachain: - sovereign_account: &pp_sovereign F7fq1jMZkfuCuoMTyiEVAP2DMpMt18WopgBqTJznLihLNbZ - -tests: - - name: HRMP - beforeEach: - - name: DEPENDENCY | Penpal Parachain Sovereign account in the Relay Chain needs to be funded - actions: - - extrinsics: - - chain: *relay_chain - signer: *rc_signer - pallet: balances - call: transfer - args: [ - *pp_sovereign, # destination - *amount, # value - ] - events: - - name: balances.Transfer - - - name: DEPENDENCY | Assets Parachain Sovereign account in the Relay Chain needs to be funded - actions: - - extrinsics: - - chain: *relay_chain - signer: *rc_signer - pallet: balances - call: transfer - args: [ - *ap_sovereign, # destination - *amount, # value - ] - events: - - name: balances.Transfer - describes: - - name: hrmp.forceOpenHrmpChannel (Penpal Parachain → Assets Parachain) - its: - - name: Open Penpal Parachain to Assets Parachain - actions: - - extrinsics: - - chain: *relay_chain - signer: *rc_signer - sudo: true - pallet: hrmp - call: forceOpenHrmpChannel - args: [ - *pp_id, - *ap_id, - *max_capacity, - *max_message_size - ] - events: - - name: sudo.Sudid - result: { sudoResult: Ok } - - name: hrmp.HrmpChannelForceOpened - - - name: hrmp.forceOpenHrmpChannel (Assets Parachain → PenPal Parachain) - its: - - name: Open Assets Parachain to PenPal Parachain - actions: - - extrinsics: - - chain: *relay_chain - signer: *rc_signer - sudo: true - pallet: hrmp - call: forceOpenHrmpChannel - args: [ - *ap_id, - *pp_id, - *max_capacity, - *max_message_size - ] - events: - - name: sudo.Sudid - result: { sudoResult: Ok } - - name: hrmp.HrmpChannelForceOpened - - - name: hrmp.forceProcessHrmpOpen (make sure all the channels are open) - its: - - name: Make sure all the pending channels are open - actions: - - extrinsics: - - chain: *relay_chain - signer: *rc_signer - sudo: true - pallet: hrmp - call: forceProcessHrmpOpen - args: [ 2 ] - events: - - name: sudo.Sudid - result: { sudoResult: Ok } diff --git a/cumulus/parachains/integration-tests/e2e/assets/asset-hub-kusama/0_xcm/4_hrmp.yml b/cumulus/parachains/integration-tests/e2e/assets/asset-hub-kusama/0_xcm/4_hrmp.yml deleted file mode 100644 index 02e53da75580..000000000000 --- a/cumulus/parachains/integration-tests/e2e/assets/asset-hub-kusama/0_xcm/4_hrmp.yml +++ /dev/null @@ -1,388 +0,0 @@ ---- -# Note: This tests depends on the 3_hrmp-open-channels.yml for opening channels, otherwise teleports aren't going to -# work. -settings: - chains: - relay_chain: &relay_chain - wsPort: 9900 - assets_parachain: &assets_parachain - wsPort: 9910 - paraId: &ap_id 1000 - penpal_parachain: &penpal_parachain - wsPort: 9920 - paraId: &pp_id 2000 - variables: - common: - mint_amount: &mint_amount 1000000000000 - amount: &amount 100000000000 - require_weight_at_most: &weight_at_most {refTime: 1200000000, proofSize: 20000} - amount_to_send: &amount_to_send 500000000000 - weight_threshold: &weight_threshold { refTime: [10, 10], proofSize: [10, 10] } - chains: - relay_chain: - signer: &rc_signer //Alice - assets_parachain_destination: &ap_dest { v3: { 0, interior: { x1: { parachain: *ap_id }}}} - assets_parachain_dest_routed: &ap_dest_routed { v3: { parents: 1, interior: { x1: { parachain: *ap_id } }}} - assets_parachain_account: - signer: &ap_signer //Alice - wallet: &ap_wallet HNZata7iMYWmk5RvZRTiAsSDhV8366zq2YGb3tLH5Upf74F - asset_id: &asset_id 2 - assets_pallet_id: &assets_pallet_id 50 - asset_min_balance: &asset_ed 1000 - penpal_parachain_destination: &pp_dest { v3: { parents: 1, interior: { x1: { parachain: *pp_id } }}} - ksm: &ap_ksm { concrete: { parents: 1, interior: { here: true }}} - ksm_fungible: &ap_ksm_fungible { id: *ap_ksm, fun: { fungible: *amount }} - suff_asset: &suff_asset { concrete: { parents: 0, interior: { x2: [ { PalletInstance: *assets_pallet_id }, { GeneralIndex: *asset_id } ] }}} - suff_asset_fail: &suff_asset_fail { concrete: { parents: 0, interior: { x2: [ { PalletInstance: *assets_pallet_id }, { GeneralIndex: 3 } ] }}} - suff_asset_fungible_fail: &ap_suff_asset_fungible_fail { id: *suff_asset_fail, fun: { fungible: 200000000000 }} - penpal_parachain: - sovereign_account: &pp_sovereign_sibl FBeL7EAeUroLWXW1yfKboiqTqVfbRBcsUKd6QqVf4kGBySS - signer: &pp_signer //Alice - penpal_parachain_account: &pp_acc '0xd43593c715fdd31c61141abd04a99fd6822c8558854ccde39a5684e7a56da27d' - decodedCalls: - force_create_asset: - chain: *assets_parachain - pallet: assets - call: forceCreate - args: [ - *asset_id, - { Id: *ap_wallet }, # owner - true, # isSufficient - *asset_ed # minBalance - ] - force_create_asset2: - chain: *assets_parachain - pallet: assets - call: forceCreate - args: [ - *asset_id, - { Id: *ap_wallet }, # owner - true, # isSufficient - *asset_ed # minBalance - ] - -tests: - - name: HRMP - describes: - - name: polkadotXcm.limitedReserveTransferAssets (Asset) | Assets Parachain -> Penpal Parachain - before: - - name: DEPENDENCY | A sufficient Asset should exist in the Assets Parachain - actions: - - extrinsics: - - chain: *relay_chain - signer: *rc_signer - sudo: true - pallet: xcmPallet - call: send - args: [ - *ap_dest, # destination - { - v3: [ #message - { - UnpaidExecution: { - weightLimit: Unlimited - } - }, - { - SetTopic: '0x0123456789012345678901234567891201234567890123456789012345678912' - }, - { - Transact: { - originKind: Superuser, - requireWeightAtMost: *weight_at_most, - call: $force_create_asset - } - } - ] - } - ] - events: - - name: xcmPallet.Sent - - name: dmpQueue.ExecutedDownward - chain: *assets_parachain - threshold: *weight_threshold - result: { outcome: { Complete: { refTime: '1,216,703,000', proofSize: '20,000' }}} - - queries: - forced_created_asset: - chain: *assets_parachain - pallet: assets - call: asset - args: [ *asset_id ] - - asserts: - isSome: - args: [ $forced_created_asset ] - - - name: DEPENDENCY | Some Assets should be minted for the sender - actions: - - extrinsics: - - chain: *assets_parachain - signer: *ap_signer - pallet: assets - call: mint - args: [ - *asset_id, - *ap_wallet, - *mint_amount - ] - events: - - name: assets.Issued - result: { assetId: *asset_id, owner: *ap_wallet, amount: *mint_amount } - - its: - - name: Assets Parachain should be able to reserve transfer an Asset to Penpal Parachain - actions: - - extrinsics: - - chain: *assets_parachain - signer: *ap_signer - pallet: polkadotXcm - call: limitedReserveTransferAssets - args: [ - *pp_dest, # destination - { # beneficiary - V3: { - parents: 0, - interior: { - X1: { - AccountId32: { - id: *pp_acc - } - } - } - } - }, - { # assets - V3: [ - { - id: { - Concrete: { - parents: 0, - interior: { - X2: [ - { - PalletInstance: *assets_pallet_id - }, - { - GeneralIndex: *asset_id - } - ] - } - } - }, - fun: { - Fungible: *amount_to_send - } - } - ] - }, - 0, # feeAssetItem - Unlimited # weightLimit - ] - events: - - name: polkadotXcm.Attempted - threshold: *weight_threshold - result: { outcome: { Complete: { refTime: '679,150,000', proofSize: '6,196' }}} - - name: assets.Transferred - result: { - assetId: *asset_id, - from: *ap_wallet, - to: *pp_sovereign_sibl, - amount: *amount_to_send - } - - - name: polkadotXcm.limitedReserveTransferAssets (KSM) | Assets Parachain -> Penpal Parachain - its: - - name: Assets Parachain should be able to reserve transfer KSM to Penpal Parachain - actions: - - extrinsics: - - chain: *assets_parachain - signer: *ap_signer - pallet: polkadotXcm - call: limitedReserveTransferAssets - args: [ - *pp_dest, # destination - { # beneficiary - V3: { - parents: 0, - interior: { - X1: { - AccountId32: { - id: *pp_acc - } - } - } - } - }, - { # assets - V3: [ - *ap_ksm_fungible - ] - }, - 0, # feeAssetItem - Unlimited # weightLimit - ] - events: - - name: polkadotXcm.Attempted - threshold: *weight_threshold - result: { outcome: { Complete: { refTime: '679,150,000', proofSize: '6,196' }}} - - name: balances.Endowed - result: { - account: *pp_sovereign_sibl, - freeBalance: *amount - } - - - name: polkadotXcm.send( assets.forceCreateAsset ) | Penpal Parachain -> Assets Parachain - before: - - name: Get the asset balance of the Penpal Parachain Sovereign account in Assets Parachain - actions: - - queries: - assets_balance_pp_sovereign_before: - chain: *assets_parachain - pallet: assets - call: account - args: [ - *asset_id, - *pp_sovereign_sibl - ] - its: - - name: Penpal Parachain should be able to send XCM message paying its fee with sufficient asset in Assets Parachain - actions: - - extrinsics: - - chain: *penpal_parachain - signer: *pp_signer - sudo: true - pallet: polkadotXcm - call: send - args: [ - *ap_dest_routed, # destination - { - v3: [ #message - { - WithdrawAsset: [ - { - id: { - concrete: { - parents: 0, - interior: { - X2: [ - { PalletInstance: *assets_pallet_id }, - { GeneralIndex: *asset_id } - ] - } - } - }, - fun: { fungible: *amount }} - ] - }, - { - BuyExecution: { - fees: { id: *suff_asset, fun: { fungible: *amount }}, - weightLimit: Unlimited - } - }, - { - Transact: { - originKind: SovereignAccount, - requireWeightAtMost: *weight_at_most, - call: $force_create_asset2 - } - }, - { - RefundSurplus - }, - { - DepositAsset: { - assets: { Wild: All }, - beneficiary: { - parents: 0, - interior: { - X1: { - AccountId32: { - network: , # None - id: *pp_acc - } - } - }} - } - } - ] - } - ] - events: - - name: sudo.Sudid - result: { sudoResult: Ok } - - name: polkadotXcm.Sent - - name: assets.Burned - chain: *assets_parachain - result: { assetId: *asset_id, owner: *pp_sovereign_sibl } - - name: assets.Issued - chain: *assets_parachain - result: { assetId: *asset_id } - - queries: - assets_balance_pp_sovereign_after: - chain: *assets_parachain - pallet: assets - call: account - args: [ - *asset_id, - *pp_sovereign_sibl - ] - forced_created_asset2: - chain: *assets_parachain - pallet: assets - call: asset - args: [ 3 ] - - asserts: - isSome: - args: [ $forced_created_asset2 ] - - name: Should reduce the assets balance of the Penpal Parachain's SovereignAccount in the Assets Parachain - actions: - - asserts: - assetsDecreased: - args: [ - { - balances: { - before: $assets_balance_pp_sovereign_before, - after: $assets_balance_pp_sovereign_after, - }, - } - ] - - - name: Penpal Parachain SHOULD NOT be able to send XCM message paying its fee with sufficient assets if not enough balance - actions: - - extrinsics: - - chain: *penpal_parachain - signer: *pp_signer - sudo: true - pallet: polkadotXcm - call: send - args: [ - *ap_dest_routed, # destination - { - v3: [ #message - { - WithdrawAsset: [*ap_suff_asset_fungible_fail] - }, - { - BuyExecution: { - fees: *ap_suff_asset_fungible_fail, - weightLimit: Unlimited - } - }, - { - Transact: { - originKind: SovereignAccount, - requireWeightAtMost: *weight_at_most, - call: $force_create_asset2 - } - } - ] - } - ] - events: - - name: xcmpQueue.Fail - chain: *assets_parachain - threshold: *weight_threshold - result: { - error: FailedToTransactAsset, - weight: { refTime: '152,426,000', proofSize: '3,593' } - } diff --git a/cumulus/parachains/integration-tests/e2e/assets/asset-hub-kusama/config.toml b/cumulus/parachains/integration-tests/e2e/assets/asset-hub-kusama/config.toml deleted file mode 100644 index 1ec06b3fa104..000000000000 --- a/cumulus/parachains/integration-tests/e2e/assets/asset-hub-kusama/config.toml +++ /dev/null @@ -1,71 +0,0 @@ -[relaychain] -default_command = "./bin/polkadot" -default_args = [ "-lparachain=debug", "-lxcm=trace" ] -chain = "kusama-local" - - [[relaychain.nodes]] - name = "alice" - ws_port = 9900 - validator = true - args = ["--state-cache-size=0"] - - [[relaychain.nodes]] - name = "bob" - ws_port = 9901 - validator = true - - [[relaychain.nodes]] - name = "charlie" - ws_port = 9902 - validator = true - - [[relaychain.nodes]] - name = "dave" - ws_port = 9903 - validator = true - -[[parachains]] -id = 1000 -chain = "asset-hub-kusama-local" -cumulus_based = true - - [[parachains.collators]] - name = "collator1" - ws_port = 9910 - command = "./bin/polkadot-parachain" - args = [ "-lxcm=trace", "--state-cache-size=0" ] - - [[parachains.collators]] - name = "collator2" - ws_port = 9911 - command = "./bin/polkadot-parachain" - args = [ "-lxcm=trace" ] - -[[parachains]] -id = 2000 -chain = "penpal-kusama-2000" -cumulus_based = true - - [[parachains.collators]] - name = "collator3" - ws_port = 9920 - command = "./bin/polkadot-parachain" - args = [ "-lxcm=trace", "--state-cache-size=0" ] - - [[parachains.collators]] - name = "collator4" - ws_port = 9921 - command = "./bin/polkadot-parachain" - args = [ "-lxcm=trace" ] - -# [[hrmpChannels]] -# sender = 1000 -# recipient = 2000 -# maxCapacity = 8 -# maxMessageSize = 8192 - -# [[hrmpChannels]] -# sender = 2000 -# recipient = 1000 -# maxCapacity = 8 -# maxMessageSize = 8192 diff --git a/cumulus/parachains/integration-tests/e2e/assets/asset-hub-polkadot/0_xcm/0_init.yml b/cumulus/parachains/integration-tests/e2e/assets/asset-hub-polkadot/0_xcm/0_init.yml deleted file mode 100644 index a6d3fb3ec834..000000000000 --- a/cumulus/parachains/integration-tests/e2e/assets/asset-hub-polkadot/0_xcm/0_init.yml +++ /dev/null @@ -1,145 +0,0 @@ ---- -settings: - chains: - relay_chain: &relay_chain - wsPort: 9800 - assets_parachain: &assets_parachain - wsPort: 9810 - paraId: &ap_id 1000 - penpal_parachain: &penpal_parachain - wsPort: 9820 - paraId: &pp_id 2000 - variables: - common: - xcm_version: &xcm_version '3' - require_weight_at_most: &weight_at_most {refTime: 1000000000, proofSize: 200000} - weight_threshold: &weight_threshold { refTime: [10, 10], proofSize: [10, 10] } - chains: - relay_chain: - signer: &rc_signer //Alice - assets_parachain_destination: &ap_dest { v3: { 0, interior: { x1: { parachain: *ap_id }}}} - penpal_parachain: - signer: &pp_signer //Alice - decodedCalls: - ap_force_xcm_version: - chain: *assets_parachain - pallet: polkadotXcm - call: forceXcmVersion - args: [ - { # location - parents: 1, - interior: Here - }, - *xcm_version # xcmVersion - ] - -tests: - - name: Initialize Chains - its: - - name: XCM supported versions between chains - actions: - - extrinsics: # Relay Chain sets supported version for Asset Parachain - - chain: *relay_chain - sudo: true - signer: *rc_signer - pallet: xcmPallet - call: forceXcmVersion - args: [ - { # location - parents: 0, - interior: { - X1: { - Parachain: *ap_id - } - } - }, - *xcm_version # xcmVersion - ] - events: - - name: sudo.Sudid - result: { sudoResult: Ok } - - name: xcmPallet.SupportedVersionChanged - result: { location: { parents: 0, interior: { X1: { Parachain: *ap_id }}}, version: *xcm_version } - - extrinsics: # Relay Chain sets supported version for Penpal Parachain - - chain: *relay_chain - sudo: true - signer: *rc_signer - pallet: xcmPallet - call: forceXcmVersion - args: [ - { # location - parents: 0, - interior: { - X1: { - Parachain: *pp_id - } - } - }, - *xcm_version # xcmVersion - ] - events: - - name: sudo.Sudid - result: { sudoResult: Ok } - - name: xcmPallet.SupportedVersionChanged - result: { location: { parents: 0, interior: { X1: { Parachain: *pp_id }}}, version: *xcm_version } - - extrinsics: # Asset Parachain sets supported version for Relay Chain through it - - chain: *relay_chain - signer: *rc_signer - sudo: true - pallet: xcmPallet - call: send - args: [ - *ap_dest, # destination - { - v3: [ #message - { - UnpaidExecution: { - weightLimit: { - limited: { - refTime: 3200000000, - proofSize: 200000 - } - } - } - }, - { - Transact: { - originKind: Superuser, - requireWeightAtMost: *weight_at_most, - call: $ap_force_xcm_version - } - } - ] - } - ] - events: - - name: sudo.Sudid - result: { sudoResult: Ok } - - name: xcmPallet.Sent - - name: dmpQueue.ExecutedDownward - chain: *assets_parachain - threshold: *weight_threshold - result: { - outcome: { Complete: { refTime: '1,019,210,000', proofSize: '200,000' }} - } - - name: polkadotXcm.SupportedVersionChanged - chain: *assets_parachain - result: { location: { parents: 1, interior: Here }, version: *xcm_version } - - extrinsics: # Penpal Parachain sets supported version for Relay Chain - - chain: *penpal_parachain - signer: *pp_signer - sudo: true - pallet: polkadotXcm - call: forceXcmVersion - args: [ - { # location - parents: 1, - interior: Here - }, - *xcm_version # xcmVersion - ] - events: - - name: sudo.Sudid - result: { sudoResult: Ok } - - name: polkadotXcm.SupportedVersionChanged - result: { location: { parents: 1, interior: Here}, version: *xcm_version } diff --git a/cumulus/parachains/integration-tests/e2e/assets/asset-hub-polkadot/0_xcm/1_dmp.yml b/cumulus/parachains/integration-tests/e2e/assets/asset-hub-polkadot/0_xcm/1_dmp.yml deleted file mode 100644 index 36b296f3eb1f..000000000000 --- a/cumulus/parachains/integration-tests/e2e/assets/asset-hub-polkadot/0_xcm/1_dmp.yml +++ /dev/null @@ -1,263 +0,0 @@ ---- -settings: - chains: - relay_chain: &relay_chain - wsPort: 9800 - assets_parachain: &assets_parachain - wsPort: 9810 - paraId: &ap_id 1000 - variables: - common: - weight_threshold: &weight_threshold { refTime: [10, 10], proofSize: [10, 10] } - chains: - relay_chain: - signer: &rc_signer //Alice - wallet: &rc_wallet HNZata7iMYWmk5RvZRTiAsSDhV8366zq2YGb3tLH5Upf74F - assets_parachain_destination: &ap_dest { v3: { parents: 0, interior: { x1: { parachain: *ap_id }}}} - assets_parachain_account: &ap_acc '0xd43593c715fdd31c61141abd04a99fd6822c8558854ccde39a5684e7a56da27d' - assets_parachain_beneficiary: &ap_benf {v3: { parents: 0, interior: { x1: { accountId32: { id: *ap_acc }}}}} - ksm: &rc_ksm { concrete: { parents: 0, interior: { here: true }}} - amount: &amount 1000000000000 - ksm_fungible: &rc_ksm_fungible { id: *rc_ksm, fun: { fungible: *amount }} - require_weight_at_most: &rc_weight_at_most {refTime: 1000000000, proofSize: 200000} - assets_parachain_account: - wallet: &ap_wallet HNZata7iMYWmk5RvZRTiAsSDhV8366zq2YGb3tLH5Upf74F - asset_id: &asset_id 1 - asset_min_balance: &asset_ed 1000 - decodedCalls: - force_create_asset: - chain: *assets_parachain - pallet: assets - call: forceCreate - args: [ - *asset_id, - { Id: *ap_wallet }, # owner - true, # isSufficient - *asset_ed # minBalance - ] - -tests: - - name: DMP - its: [] - describes: - - name: xcmPallet.limitedTeleportAssets - before: &before_get_balances - - name: Get the balances of the Relay Chain's sender & Assets Parachain's receiver - actions: - - queries: - balance_rc_sender_before: - chain: *relay_chain - pallet: system - call: account - args: [ *rc_wallet ] - balance_ap_receiver_before: - chain: *assets_parachain - pallet: system - call: account - args: [ *ap_wallet ] - its: - - name: Should teleport native assets from the Relay Chain to the Assets Parachain - actions: - - extrinsics: - - chain: *relay_chain - signer: *rc_signer - pallet: xcmPallet - call: limitedTeleportAssets - args: [ - *ap_dest, # destination - *ap_benf, # beneficiary - { v3: [ *rc_ksm_fungible ] }, # assets - 0, # feeAssetItem - { unlimited: true } # weightLimit - ] - events: - - name: xcmPallet.Attempted - threshold: *weight_threshold - result: { outcome: { Complete: { refTime: '3,000,000,000', proofSize: 0 }}} - - name: dmpQueue.ExecutedDownward - chain: *assets_parachain - threshold: *weight_threshold - result: { outcome: { Complete: { refTime: '166,944,000', proofSize: 0 }}} - - queries: - balance_rc_sender_after: - chain: *relay_chain - pallet: system - call: account - args: [ *rc_wallet ] - balance_ap_receiver_after: - chain: *assets_parachain - pallet: system - call: account - args: [ *ap_wallet ] - - - name: Should reduce the balance of the sender - actions: - - asserts: - balanceDecreased: - args: [ - { - balances: { - before: $balance_rc_sender_before, - after: $balance_rc_sender_after, - }, - amount: *amount - } - ] - - - name: Should increase the balance of the receiver - actions: - - asserts: - balanceIncreased: - args: [ - { - balances: { - before: $balance_ap_receiver_before, - after: $balance_ap_receiver_after, - } - } - ] - - - name: xcmPallet.send | Superuser - Transact(assets.forceCreate) - its: - - name: Relay Chain Superuser account SHOULD be able to execute a XCM Transact instruction in the Assets Parachain - actions: - - extrinsics: - - chain: *relay_chain - signer: *rc_signer - sudo: true - pallet: xcmPallet - call: send - args: [ - *ap_dest, # destination - { - v3: [ #message - { - UnpaidExecution: { - weightLimit: Unlimited - } - }, - { - Transact: { - originType: Superuser, - requireWeightAtMost: *rc_weight_at_most, - call: $force_create_asset - } - } - ] - } - ] - events: - - name: xcmPallet.Sent - - name: dmpQueue.ExecutedDownward - chain: *assets_parachain - threshold: *weight_threshold - result: { outcome: { Complete: { refTime: '1,014,103,000', proofSize: '200,000' }}} - - queries: - forced_created_asset: - chain: *assets_parachain - pallet: assets - call: asset - args: [ *asset_id ] - - asserts: - isSome: - args: [ $forced_created_asset ] - - - name: xcmPallet.send | Native - Transact(assets.forceCreate) - its: - - name: Relay Chain Native account SHOULD NOT be able to execute a XCM Transact instruction in the Assets Parachain - actions: - - extrinsics: - - chain: *relay_chain - signer: *rc_signer - pallet: xcmPallet - call: send - args: [ - *ap_dest, # destination - { - v3: [ #message - { - UnpaidExecution: { - weightLimit: Unlimited - } - }, - { - Transact: { - originType: Native, - requireWeightAtMost: *rc_weight_at_most, - call: $force_create_asset - } - } - ] - } - ] - events: - - name: system.ExtrinsicFailed - result: { dispatchError: BadOrigin } - - - name: xcmPallet.limitedReserveTransferAssets - before: *before_get_balances - its: - - name: SHOULD NOT reserved transfer native assets from the Relay Chain to the Assets Parachain - actions: - - extrinsics: - - chain: *relay_chain - signer: *rc_signer - pallet: xcmPallet - call: limitedReserveTransferAssets - args: [ - *ap_dest, # destination - *ap_benf, # beneficiary - { v3: [ *rc_ksm_fungible ] }, # assets - 0, # feeAssetItem - { unlimited: true } # weightLimit - ] - events: - - name: xcmPallet.Attempted - threshold: *weight_threshold - result: { outcome: { Complete: { refTime: '2,000,000,000', proofSize: 0 }}} - - name: dmpQueue.ExecutedDownward - chain: *assets_parachain - threshold: *weight_threshold - result: { - outcome: { - Incomplete: [ - { refTime: '1,000,000,000', proofSize: 0 }, - UntrustedReserveLocation - ] - } - } - - queries: - balance_rc_sender_after: - chain: *relay_chain - pallet: system - call: account - args: [ *rc_wallet ] - balance_ap_receiver_after: - chain: *assets_parachain - pallet: system - call: account - args: [ *ap_wallet ] - - - name: Should reduce the balance of the sender - actions: - - asserts: - balanceDecreased: - args: [ - { - balances: { - before: $balance_rc_sender_before, - after: $balance_rc_sender_after, - }, - amount: *amount - } - ] - - - name: Should keep the balance of the receiver - actions: - - asserts: - equal: - args: - [ - $balance_ap_receiver_before, - $balance_ap_receiver_after - ] diff --git a/cumulus/parachains/integration-tests/e2e/assets/asset-hub-polkadot/0_xcm/2_ump.yml b/cumulus/parachains/integration-tests/e2e/assets/asset-hub-polkadot/0_xcm/2_ump.yml deleted file mode 100644 index fa84d4b006a7..000000000000 --- a/cumulus/parachains/integration-tests/e2e/assets/asset-hub-polkadot/0_xcm/2_ump.yml +++ /dev/null @@ -1,194 +0,0 @@ ---- -settings: - chains: - relay_chain: &relay_chain - wsPort: 9800 - assets_parachain: &assets_parachain - wsPort: 9810 - paraId: &ap_id 1000 - variables: - common: - amount: &amount 1000000000000 - require_weight_at_most: &weight_at_most {refTime: 1000000000, proofSize: 0} - weight_threshold: &weight_threshold { refTime: [10, 10], proofSize: [10, 10] } - chains: - relay_chain: - signer: &rc_signer //Alice - wallet: &rc_wallet HNZata7iMYWmk5RvZRTiAsSDhV8366zq2YGb3tLH5Upf74F - assets_parachain_destination: &ap_dest { v3: { 0, interior: { x1: { parachain: *ap_id }}}} - assets_parachain_account: &ap_acc '0xd43593c715fdd31c61141abd04a99fd6822c8558854ccde39a5684e7a56da27d' - assets_parachain_beneficiary: &ap_benf {v3: { parents: 0, interior: { x1: { accountId32: { id: *ap_acc }}}}} - ksm: &rc_ksm { concrete: { 0, interior: { here: true }}} - ksm_fungible: &rc_ksm_fungible { id: *rc_ksm, fun: { fungible: *amount }} - assets_parachain_account: - signer: &ap_signer //Alice - wallet: &ap_wallet HNZata7iMYWmk5RvZRTiAsSDhV8366zq2YGb3tLH5Upf74F - relay_chain_destination: &rc_dest { v3: { parents: 1, interior: { here: true }}} - assets_parachain_account: &rc_acc '0xd43593c715fdd31c61141abd04a99fd6822c8558854ccde39a5684e7a56da27d' - relay_chain_beneficiary: &rc_benf {v3: { parents: 0, interior: { x1: { accountId32: { id: *rc_acc }}}}} - ksm: &ap_ksm { concrete: { parents: 1, interior: { here: true }}} - ksm_fungible: &ap_ksm_fungible { id: *ap_ksm, fun: { fungible: *amount }} - decodedCalls: - system_remark: - chain: *relay_chain - pallet: system - call: remark - args: [ 0x0011 ] - -tests: - - name: UMP - describes: - - name: polkadotXcm.limitedTeleportAssets - before: - - name: DEPENDENCY | Do a 'limitedTeleportAssets' from the Relay Chain to the Assets Parachain to have funds to send them back - actions: - - extrinsics: - - chain: *relay_chain - signer: *rc_signer - pallet: xcmPallet - call: limitedTeleportAssets - args: [ - *ap_dest, # destination - *ap_benf, # beneficiary - { v3: [ *rc_ksm_fungible ] }, # assets - 0, # feeAssetItem - { unlimited: true } # weightLimit - ] - events: - - name: xcmPallet.Attempted - threshold: *weight_threshold - result: { outcome: { Complete: { refTime: '3,000,000,000', proofSize: 0 }}} - - name: dmpQueue.ExecutedDownward - chain: *assets_parachain - threshold: *weight_threshold - result: { outcome: { Complete: { refTime: '166,944,000', proofSize: 0 }}} - - - name: Get the balances of the Assets Parachain's sender & Relay Chain's receiver - actions: - - queries: - balance_ap_sender_before: - chain: *assets_parachain - pallet: system - call: account - args: [ *ap_wallet ] - balance_rc_receiver_before: - chain: *relay_chain - pallet: system - call: account - args: [ *rc_wallet ] - - its: - - name: Should be able to teleport native assets back from Assets Parachain to the Relay Chain - actions: - - extrinsics: - - chain: *assets_parachain - signer: *ap_signer - pallet: polkadotXcm - call: limitedTeleportAssets - args: [ - *rc_dest, # destination - *rc_benf, # beneficiary - { v3: [ *ap_ksm_fungible ] }, # assets - 0, # feeAssetItem - { unlimited: true } # weightLimit - ] - events: - - name: polkadotXcm.Attempted - threshold: *weight_threshold - result: { outcome: { Complete: { refTime: '533,283,000', proofSize: '7,096' }}} - - name: messageQueue.Processed - chain: *relay_chain - threshold: *weight_threshold - result: { origin: { Ump: { Para: '1,000' } }, weightUsed: { refTime: '4,000,000,000', proofSize: '0' }, success: true } - - queries: - balance_ap_sender_after: - chain: *assets_parachain - pallet: system - call: account - args: [ *ap_wallet ] - balance_rc_receiver_after: - chain: *relay_chain - pallet: system - call: account - args: [ *rc_wallet ] - - - name: Should reduce the balance of the sender - actions: - - asserts: - balanceDecreased: - args: [ - { - balances: { - before: $balance_ap_sender_before, - after: $balance_ap_sender_after, - }, - amount: *amount - } - ] - - - name: Should increase the balance of the receiver - actions: - - asserts: - balanceIncreased: - args: [ - { - balances: { - before: $balance_rc_receiver_before, - after: $balance_rc_receiver_after, - } - } - ] - - - name: polkadotXcm.send | Native - Transact(system.remark) - its: - - name: Assets Parachain SHOULD NOT be able to dispatch 'send' call - actions: - - extrinsics: - - chain: *assets_parachain - signer: *ap_signer - pallet: polkadotXcm - call: send - args: [ - *rc_dest, # destination - { - v3: [ #message - { - UnpaidExecution: { - weightLimit: Unlimited - } - }, - { - Transact: { - originType: Native, - requireWeightAtMost: *weight_at_most, - call: $system_remark - } - } - ] - } - ] - events: - - name: system.ExtrinsicFailed - attributes: - - type: SpRuntimeDispatchError - value: BadOrigin - - - name: polkadotXcm.limitedReserveTransferAssets - its: - - name: Should NOT be able to reserve transfer native assets from the Assets Parachain to the Relay Chain - actions: - - extrinsics: - - chain: *assets_parachain - signer: *ap_signer - pallet: polkadotXcm - call: limitedReserveTransferAssets - args: [ - *rc_dest, # destination - *rc_benf, # beneficiary - { v3: [ *ap_ksm_fungible ] }, # assets - 0, # feeAssetItem - { unlimited: true } # weightLimit - ] - events: - - name: polkadotXcm.Attempted - result: { outcome: { Error: Barrier }} diff --git a/cumulus/parachains/integration-tests/e2e/assets/asset-hub-polkadot/0_xcm/3_force_hrmp-open-channels.yml b/cumulus/parachains/integration-tests/e2e/assets/asset-hub-polkadot/0_xcm/3_force_hrmp-open-channels.yml deleted file mode 100644 index ecf344a073b4..000000000000 --- a/cumulus/parachains/integration-tests/e2e/assets/asset-hub-polkadot/0_xcm/3_force_hrmp-open-channels.yml +++ /dev/null @@ -1,120 +0,0 @@ ---- -settings: - chains: - relay_chain: &relay_chain - wsPort: 9800 - assets_parachain: - wsPort: 9810 - paraId: &ap_id 1000 - penpal_parachain: - wsPort: 9820 - paraId: &pp_id 2000 - variables: - common: - amount: &amount 2000000000000 - hrmp_channels: - proposed_max_capacity: &max_capacity 8 - proposed_max_message_size: &max_message_size 8192 - channel: &channel { - maxCapacity: *max_capacity, - maxTotalSize: *max_message_size, - maxMessageSize: *max_message_size, - msgCount: 0, - totalSize: 0, - mqcHead: null, - senderDeposit: 0, - recipientDeposit: 0 - } - chains: - relay_chain: - signer: &rc_signer //Alice - assets_parachain_account: - sovereign_account: &ap_sovereign 5Ec4AhPZk8STuex8Wsi9TwDtJQxKqzPJRCH7348Xtcs9vZLJ - penpal_parachain: - sovereign_account: &pp_sovereign F7fq1jMZkfuCuoMTyiEVAP2DMpMt18WopgBqTJznLihLNbZ - -tests: - - name: HRMP - beforeEach: - - name: DEPENDENCY | Penpal Parachain Sovereign account in the Relay Chain needs to be funded - actions: - - extrinsics: - - chain: *relay_chain - signer: *rc_signer - pallet: balances - call: transfer - args: [ - *pp_sovereign, # destination - *amount, # value - ] - events: - - name: balances.Transfer - - - name: DEPENDENCY | Assets Parachain Sovereign account in the Relay Chain needs to be funded - actions: - - extrinsics: - - chain: *relay_chain - signer: *rc_signer - pallet: balances - call: transfer - args: [ - *ap_sovereign, # destination - *amount, # value - ] - events: - - name: balances.Transfer - describes: - - name: hrmp.hrmpInitOpenChannel (Penpal Parachain → Assets Parachain) - its: - - name: Open Penpal Parachain to Assets Parachain - actions: - - extrinsics: - - chain: *relay_chain - signer: *rc_signer - sudo: true - pallet: hrmp - call: forceOpenHrmpChannel - args: [ - *pp_id, - *ap_id, - *max_capacity, - *max_message_size - ] - events: - - name: sudo.Sudid - result: { sudoResult: Ok } - - name: hrmp.HrmpChannelForceOpened - - name: hrmp.hrmpInitOpenChannel (Assets Parachain → PenPal Parachain) - its: - - name: Open Assets Parachain to PenPal Parachain - actions: - - extrinsics: - - chain: *relay_chain - signer: *rc_signer - sudo: true - pallet: hrmp - call: forceOpenHrmpChannel - args: [ - *ap_id, - *pp_id, - *max_capacity, - *max_message_size - ] - events: - - name: sudo.Sudid - result: { sudoResult: Ok } - - name: hrmp.HrmpChannelForceOpened - - name: hrmp.forceProcessHrmpOpen (make sure all the channels are open) - its: - - name: Make sure all the pending channels are open - actions: - - extrinsics: - - chain: *relay_chain - signer: *rc_signer - sudo: true - pallet: hrmp - call: forceProcessHrmpOpen - args: [ 2 ] - events: - - name: sudo.Sudid - result: { sudoResult: Ok } diff --git a/cumulus/parachains/integration-tests/e2e/assets/asset-hub-polkadot/0_xcm/4_hrmp.yml b/cumulus/parachains/integration-tests/e2e/assets/asset-hub-polkadot/0_xcm/4_hrmp.yml deleted file mode 100644 index 681af698c16d..000000000000 --- a/cumulus/parachains/integration-tests/e2e/assets/asset-hub-polkadot/0_xcm/4_hrmp.yml +++ /dev/null @@ -1,388 +0,0 @@ ---- -# Note: This tests depends on the 3_hrmp-open-channels.yml for opening channels, otherwise teleports aren't going to -# work. -settings: - chains: - relay_chain: &relay_chain - wsPort: 9800 - assets_parachain: &assets_parachain - wsPort: 9810 - paraId: &ap_id 1000 - penpal_parachain: &penpal_parachain - wsPort: 9820 - paraId: &pp_id 2000 - variables: - common: - mint_amount: &mint_amount 1000000000000 - amount: &amount 1000000000000 - require_weight_at_most: &weight_at_most {refTime: 1200000000, proofSize: 20000} - amount_to_send: &amount_to_send 500000000000 - weight_threshold: &weight_threshold { refTime: [10, 10], proofSize: [10, 10] } - chains: - relay_chain: - signer: &rc_signer //Alice - assets_parachain_destination: &ap_dest { v3: { 0, interior: { x1: { parachain: *ap_id }}}} - assets_parachain_dest_routed: &ap_dest_routed { v3: { parents: 1, interior: { x1: { parachain: *ap_id } }}} - assets_parachain_account: - signer: &ap_signer //Alice - wallet: &ap_wallet 15oF4uVJwmo4TdGW7VfQxNLavjCXviqxT9S1MgbjMNHr6Sp5 - asset_id: &asset_id 2 - assets_pallet_id: &assets_pallet_id 50 - asset_min_balance: &asset_ed 1000 - penpal_parachain_destination: &pp_dest { v3: { parents: 1, interior: { x1: { parachain: *pp_id } }}} - ksm: &ap_ksm { concrete: { parents: 1, interior: { here: true }}} - ksm_fungible: &ap_ksm_fungible { id: *ap_ksm, fun: { fungible: *amount }} - suff_asset: &suff_asset { concrete: { parents: 0, interior: { x2: [ { PalletInstance: *assets_pallet_id }, { GeneralIndex: *asset_id } ] }}} - suff_asset_fail: &suff_asset_fail { concrete: { parents: 0, interior: { x2: [ { PalletInstance: *assets_pallet_id }, { GeneralIndex: 3 } ] }}} - suff_asset_fungible_fail: &ap_suff_asset_fungible_fail { id: *suff_asset_fail, fun: { fungible: 200000000000 }} - penpal_parachain: - sovereign_account: &pp_sovereign_sibl 13cKp89Msu7M2PiaCuuGr1BzAsD5V3vaVbDMs3YtjMZHdGwR - signer: &pp_signer //Alice - penpal_parachain_account: &pp_acc '0xd43593c715fdd31c61141abd04a99fd6822c8558854ccde39a5684e7a56da27d' - decodedCalls: - force_create_asset: - chain: *assets_parachain - pallet: assets - call: forceCreate - args: [ - *asset_id, - { Id: *ap_wallet }, # owner - true, # isSufficient - *asset_ed # minBalance - ] - force_create_asset2: - chain: *assets_parachain - pallet: assets - call: forceCreate - args: [ - *asset_id, - { Id: *ap_wallet }, # owner - true, # isSufficient - *asset_ed # minBalance - ] - -tests: - - name: HRMP - describes: - - name: polkadotXcm.limitedReserveTransferAssets (Asset) | Assets Parachain -> Penpal Parachain - before: - - name: DEPENDENCY | A sufficient Asset should exist in the Assets Parachain - actions: - - extrinsics: - - chain: *relay_chain - signer: *rc_signer - sudo: true - pallet: xcmPallet - call: send - args: [ - *ap_dest, # destination - { - v3: [ #message - { - UnpaidExecution: { - weightLimit: Unlimited - } - }, - { - SetTopic: '0x0123456789012345678901234567891201234567890123456789012345678912' - }, - { - Transact: { - originKind: Superuser, - requireWeightAtMost: *weight_at_most, - call: $force_create_asset - } - } - ] - } - ] - events: - - name: xcmPallet.Sent - - name: dmpQueue.ExecutedDownward - chain: *assets_parachain - threshold: *weight_threshold - result: { outcome: { Complete: { refTime: '1,216,703,000', proofSize: '20,000' }}} - - queries: - forced_created_asset: - chain: *assets_parachain - pallet: assets - call: asset - args: [ *asset_id ] - - asserts: - isSome: - args: [ $forced_created_asset ] - - - name: DEPENDENCY | Some Assets should be minted for the sender - actions: - - extrinsics: - - chain: *assets_parachain - signer: *ap_signer - pallet: assets - call: mint - args: [ - *asset_id, - *ap_wallet, - *mint_amount - ] - events: - - name: assets.Issued - result: { assetId: *asset_id, owner: *ap_wallet, amount: *mint_amount } - - its: - - name: Assets Parachain should be able to reserve transfer an Asset to Penpal Parachain - actions: - - extrinsics: - - chain: *assets_parachain - signer: *ap_signer - pallet: polkadotXcm - call: limitedReserveTransferAssets - args: [ - *pp_dest, # destination - { # beneficiary - V3: { - parents: 0, - interior: { - X1: { - AccountId32: { - id: *pp_acc - } - } - } - } - }, - { # assets - V3: [ - { - id: { - Concrete: { - parents: 0, - interior: { - X2: [ - { - PalletInstance: *assets_pallet_id - }, - { - GeneralIndex: *asset_id - } - ] - } - } - }, - fun: { - Fungible: *amount_to_send - } - } - ] - }, - 0, # feeAssetItem - Unlimited # weightLimit - ] - events: - - name: polkadotXcm.Attempted - threshold: *weight_threshold - result: { outcome: { Complete: { refTime: '673,627,000', proofSize: '6,196' }}} - - name: assets.Transferred - result: { - assetId: *asset_id, - from: *ap_wallet, - to: *pp_sovereign_sibl, - amount: *amount_to_send - } - - - name: polkadotXcm.limitedReserveTransferAssets (KSM) | Assets Parachain -> Penpal Parachain - its: - - name: Assets Parachain should be able to reserve transfer KSM to Penpal Parachain - actions: - - extrinsics: - - chain: *assets_parachain - signer: *ap_signer - pallet: polkadotXcm - call: limitedReserveTransferAssets - args: [ - *pp_dest, # destination - { # beneficiary - V3: { - parents: 0, - interior: { - X1: { - AccountId32: { - id: *pp_acc - } - } - } - } - }, - { # assets - V3: [ - *ap_ksm_fungible - ] - }, - 0, # feeAssetItem - Unlimited # weightLimit - ] - events: - - name: polkadotXcm.Attempted - threshold: *weight_threshold - result: { outcome: { Complete: { refTime: '679,150,000', proofSize: '6,196' }}} - - name: balances.Endowed - result: { - account: *pp_sovereign_sibl, - freeBalance: *amount - } - - - name: polkadotXcm.send( assets.forceCreateAsset ) | Penpal Parachain -> Assets Parachain - before: - - name: Get the asset balance of the Penpal Parachain Sovereign account in Assets Parachain - actions: - - queries: - assets_balance_pp_sovereign_before: - chain: *assets_parachain - pallet: assets - call: account - args: [ - *asset_id, - *pp_sovereign_sibl - ] - its: - - name: Penpal Parachain should be able to send XCM message paying its fee with sufficient asset in Assets Parachain - actions: - - extrinsics: - - chain: *penpal_parachain - signer: *pp_signer - sudo: true - pallet: polkadotXcm - call: send - args: [ - *ap_dest_routed, # destination - { - v3: [ #message - { - WithdrawAsset: [ - { - id: { - concrete: { - parents: 0, - interior: { - X2: [ - { PalletInstance: *assets_pallet_id }, - { GeneralIndex: *asset_id } - ] - } - } - }, - fun: { fungible: *amount_to_send }} - ] - }, - { - BuyExecution: { - fees: { id: *suff_asset, fun: { fungible: *amount_to_send }}, - weightLimit: Unlimited - } - }, - { - Transact: { - originKind: SovereignAccount, - requireWeightAtMost: *weight_at_most, - call: $force_create_asset2 - } - }, - { - RefundSurplus - }, - { - DepositAsset: { - assets: { Wild: All }, - beneficiary: { - parents: 0, - interior: { - X1: { - AccountId32: { - network: , # None - id: *pp_acc - } - } - }} - } - } - ] - } - ] - events: - - name: sudo.Sudid - result: { sudoResult: Ok } - - name: polkadotXcm.Sent - - name: assets.Burned - chain: *assets_parachain - result: { assetId: *asset_id, owner: *pp_sovereign_sibl } - - name: assets.Issued - chain: *assets_parachain - result: { assetId: *asset_id } - - queries: - assets_balance_pp_sovereign_after: - chain: *assets_parachain - pallet: assets - call: account - args: [ - *asset_id, - *pp_sovereign_sibl - ] - forced_created_asset2: - chain: *assets_parachain - pallet: assets - call: asset - args: [ 3 ] - - asserts: - isSome: - args: [ $forced_created_asset2 ] - - name: Should reduce the assets balance of the Penpal Parachain's SovereignAccount in the Assets Parachain - actions: - - asserts: - assetsDecreased: - args: [ - { - balances: { - before: $assets_balance_pp_sovereign_before, - after: $assets_balance_pp_sovereign_after, - }, - } - ] - - - name: Penpal Parachain SHOULD NOT be able to send XCM message paying its fee with sufficient assets if not enough balance - actions: - - extrinsics: - - chain: *penpal_parachain - signer: *pp_signer - sudo: true - pallet: polkadotXcm - call: send - args: [ - *ap_dest_routed, # destination - { - v3: [ #message - { - WithdrawAsset: [*ap_suff_asset_fungible_fail] - }, - { - BuyExecution: { - fees: *ap_suff_asset_fungible_fail, - weightLimit: Unlimited - } - }, - { - Transact: { - originKind: SovereignAccount, - requireWeightAtMost: *weight_at_most, - call: $force_create_asset2 - } - } - ] - } - ] - events: - - name: xcmpQueue.Fail - chain: *assets_parachain - threshold: *weight_threshold - result: { - error: FailedToTransactAsset, - weight: { refTime: '152,426,000', proofSize: '3,593' } - } diff --git a/cumulus/parachains/integration-tests/e2e/assets/asset-hub-polkadot/config.toml b/cumulus/parachains/integration-tests/e2e/assets/asset-hub-polkadot/config.toml deleted file mode 100644 index da53cd0ad4f2..000000000000 --- a/cumulus/parachains/integration-tests/e2e/assets/asset-hub-polkadot/config.toml +++ /dev/null @@ -1,72 +0,0 @@ -[relaychain] -default_command = "./bin/polkadot" -default_args = [ "-lparachain=debug", "-lxcm=trace" ] -chain = "polkadot-local" - - [[relaychain.nodes]] - name = "alice" - ws_port = 9800 - validator = true - args = ["--state-cache-size=0"] - - [[relaychain.nodes]] - name = "bob" - ws_port = 9801 - validator = true - - [[relaychain.nodes]] - name = "charlie" - ws_port = 9802 - validator = true - - [[relaychain.nodes]] - name = "dave" - ws_port = 9803 - validator = true - -[[parachains]] -id = 1000 -chain = "asset-hub-polkadot-local" -cumulus_based = true - - [[parachains.collators]] - name = "collator1" - ws_port = 9810 - command = "./bin/polkadot-parachain" - args = [ "-lxcm=trace", "--state-cache-size=0" ] - - [[parachains.collators]] - name = "collator2" - ws_port = 9811 - command = "./bin/polkadot-parachain" - args = [ "-lxcm=trace" ] - - -[[parachains]] -id = 2000 -chain = "penpal-polkadot-2000" -cumulus_based = true - - [[parachains.collators]] - name = "collator3" - ws_port = 9820 - command = "./bin/polkadot-parachain" - args = [ "-lxcm=trace", "--state-cache-size=0" ] - - [[parachains.collators]] - name = "collator4" - ws_port = 9821 - command = "./bin/polkadot-parachain" - args = [ "-lxcm=trace" ] - -# [[hrmpChannels]] -# sender = 1000 -# recipient = 2000 -# maxCapacity = 8 -# maxMessageSize = 8192 - -# [[hrmpChannels]] -# sender = 2000 -# recipient = 1000 -# maxCapacity = 8 -# maxMessageSize = 8192 diff --git a/cumulus/parachains/integration-tests/emulated/common/Cargo.toml b/cumulus/parachains/integration-tests/emulated/common/Cargo.toml index e47fdfcdfd6c..30d6c7e16f35 100644 --- a/cumulus/parachains/integration-tests/emulated/common/Cargo.toml +++ b/cumulus/parachains/integration-tests/emulated/common/Cargo.toml @@ -41,12 +41,8 @@ pallet-xcm = { path = "../../../../../polkadot/xcm/pallet-xcm", default-features parachains-common = { path = "../../../common" } cumulus-primitives-core = { path = "../../../../primitives/core" } penpal-runtime = { path = "../../../runtimes/testing/penpal" } -asset-hub-polkadot-runtime = { path = "../../../runtimes/assets/asset-hub-polkadot" } -asset-hub-kusama-runtime = { path = "../../../runtimes/assets/asset-hub-kusama" } asset-hub-westend-runtime = { path = "../../../runtimes/assets/asset-hub-westend" } -collectives-polkadot-runtime = { path = "../../../runtimes/collectives/collectives-polkadot" } -bridge-hub-kusama-runtime = { path = "../../../runtimes/bridge-hubs/bridge-hub-kusama" } -bridge-hub-polkadot-runtime = { path = "../../../runtimes/bridge-hubs/bridge-hub-polkadot" } +collectives-westend-runtime = { path = "../../../runtimes/collectives/collectives-westend" } bridge-hub-rococo-runtime = { path = "../../../runtimes/bridge-hubs/bridge-hub-rococo" } xcm-emulator = { path = "../../../../xcm/xcm-emulator", default-features = false} cumulus-pallet-dmp-queue = { path = "../../../../pallets/dmp-queue" } @@ -58,14 +54,10 @@ bridge-runtime-common = { path = "../../../../../bridges/bin/runtime-common" } [features] runtime-benchmarks = [ - "asset-hub-kusama-runtime/runtime-benchmarks", - "asset-hub-polkadot-runtime/runtime-benchmarks", "asset-hub-westend-runtime/runtime-benchmarks", - "bridge-hub-kusama-runtime/runtime-benchmarks", - "bridge-hub-polkadot-runtime/runtime-benchmarks", "bridge-hub-rococo-runtime/runtime-benchmarks", "bridge-runtime-common/runtime-benchmarks", - "collectives-polkadot-runtime/runtime-benchmarks", + "collectives-westend-runtime/runtime-benchmarks", "cumulus-pallet-parachain-system/runtime-benchmarks", "cumulus-pallet-xcmp-queue/runtime-benchmarks", "frame-support/runtime-benchmarks", From cf275cda4d1bef681781d82472651adcc2e71207 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?D=C3=B3nal=20Murray?= Date: Fri, 29 Sep 2023 16:30:04 +0100 Subject: [PATCH 03/78] Parachute in westend to replace SP native runtimes Replace for collectives and glutton parachains for development --- .../emulated/common/src/lib.rs | 32 +-- .../glutton/glutton-westend/src/lib.rs | 25 +- cumulus/polkadot-parachain/src/command.rs | 220 +++--------------- cumulus/polkadot-parachain/src/service.rs | 76 +----- 4 files changed, 70 insertions(+), 283 deletions(-) diff --git a/cumulus/parachains/integration-tests/emulated/common/src/lib.rs b/cumulus/parachains/integration-tests/emulated/common/src/lib.rs index dd971befa7cf..a7430146f0c2 100644 --- a/cumulus/parachains/integration-tests/emulated/common/src/lib.rs +++ b/cumulus/parachains/integration-tests/emulated/common/src/lib.rs @@ -142,18 +142,18 @@ decl_test_parachains! { pub struct AssetHubRococo { genesis = asset_hub_rococo::genesis(), on_init = { - asset_hub_polkadot_runtime::AuraExt::on_initialize(1); + asset_hub_westend_runtime::AuraExt::on_initialize(1); }, - runtime = asset_hub_kusama_runtime, + runtime = asset_hub_westend_runtime, core = { - XcmpMessageHandler: asset_hub_kusama_runtime::XcmpQueue, - DmpMessageHandler: asset_hub_kusama_runtime::DmpQueue, - LocationToAccountId: asset_hub_kusama_runtime::xcm_config::LocationToAccountId, - ParachainInfo: asset_hub_kusama_runtime::ParachainInfo, + XcmpMessageHandler: asset_hub_westend_runtime::XcmpQueue, + DmpMessageHandler: asset_hub_westend_runtime::DmpQueue, + LocationToAccountId: asset_hub_westend_runtime::xcm_config::LocationToAccountId, + ParachainInfo: asset_hub_westend_runtime::ParachainInfo, }, pallets = { - PolkadotXcm: asset_hub_kusama_runtime::PolkadotXcm, - Assets: asset_hub_kusama_runtime::Assets, + PolkadotXcm: asset_hub_westend_runtime::PolkadotXcm, + Assets: asset_hub_westend_runtime::Assets, } }, // Wococo Parachains @@ -176,18 +176,18 @@ decl_test_parachains! { pub struct AssetHubWococo { genesis = asset_hub_westend::genesis(), on_init = { - asset_hub_polkadot_runtime::AuraExt::on_initialize(1); + asset_hub_westend_runtime::AuraExt::on_initialize(1); }, - runtime = asset_hub_polkadot_runtime, + runtime = asset_hub_westend_runtime, core = { - XcmpMessageHandler: asset_hub_polkadot_runtime::XcmpQueue, - DmpMessageHandler: asset_hub_polkadot_runtime::DmpQueue, - LocationToAccountId: asset_hub_polkadot_runtime::xcm_config::LocationToAccountId, - ParachainInfo: asset_hub_polkadot_runtime::ParachainInfo, + XcmpMessageHandler: asset_hub_westend_runtime::XcmpQueue, + DmpMessageHandler: asset_hub_westend_runtime::DmpQueue, + LocationToAccountId: asset_hub_westend_runtime::xcm_config::LocationToAccountId, + ParachainInfo: asset_hub_westend_runtime::ParachainInfo, }, pallets = { - PolkadotXcm: asset_hub_polkadot_runtime::PolkadotXcm, - Assets: asset_hub_polkadot_runtime::Assets, + PolkadotXcm: asset_hub_westend_runtime::PolkadotXcm, + Assets: asset_hub_westend_runtime::Assets, } }, pub struct PenpalRococoA { diff --git a/cumulus/parachains/runtimes/glutton/glutton-westend/src/lib.rs b/cumulus/parachains/runtimes/glutton/glutton-westend/src/lib.rs index d3369202aac4..88f3ea5e7d0f 100644 --- a/cumulus/parachains/runtimes/glutton/glutton-westend/src/lib.rs +++ b/cumulus/parachains/runtimes/glutton/glutton-westend/src/lib.rs @@ -13,13 +13,14 @@ // See the License for the specific language governing permissions and // limitations under the License. -//! # Glutton Runtime +//! # Glutton Westend Runtime //! //! The purpose of the Glutton parachain is to do stress testing on the Kusama -//! network. +//! network. This runtime targets the Westend runtime to allow development +//! separate to the Kusama runtime. //! //! There may be multiple instances of the Glutton parachain deployed and -//! connected to Kusama. +//! connected to its parent relay chain. //! //! These parachains are not holding any real value. Their purpose is to stress //! test the network. @@ -27,14 +28,14 @@ //! ### Governance //! //! Glutton defers its governance (namely, its `Root` origin), to its Relay -//! Chain parent, Kusama. +//! Chain parent, Kusama (or Westend for development purposes). //! //! ### XCM //! //! Since the main goal of Glutton is solely stress testing, the parachain will -//! only be able receive XCM messages from Kusama via DMP. This way the Glutton -//! parachains will be able to listen for upgrades that are coming from the -//! Relay chain. +//! only be able receive XCM messages from the relay chain via DMP. This way the +//! Glutton parachains will be able to listen for upgrades that are coming from +//! the Relay chain. #![cfg_attr(not(feature = "std"), no_std)] #![recursion_limit = "256"] @@ -82,7 +83,7 @@ use frame_system::{ EnsureRoot, }; use parachains_common::{ - kusama::consensus::{ + westend::consensus::{ BLOCK_PROCESSING_VELOCITY, RELAY_CHAIN_SLOT_DURATION_MILLIS, UNINCLUDED_SEGMENT_CAPACITY, }, AccountId, Signature, SLOT_DURATION, @@ -99,8 +100,8 @@ impl_opaque_keys! { #[sp_version::runtime_version] pub const VERSION: RuntimeVersion = RuntimeVersion { - spec_name: create_runtime_str!("glutton"), - impl_name: create_runtime_str!("glutton"), + spec_name: create_runtime_str!("glutton-westend"), + impl_name: create_runtime_str!("glutton-westend"), authoring_version: 1, spec_version: 10000, impl_version: 0, @@ -248,7 +249,7 @@ construct_runtime! { CumulusXcm: cumulus_pallet_xcm::{Pallet, Call, Storage, Event, Origin} = 10, // The main stage. - Glutton: pallet_glutton::{Pallet, Call, Storage, Event, Config} = 20, + GluttonWestend: pallet_glutton::{Pallet, Call, Storage, Event, Config} = 20, // Collator support Aura: pallet_aura::{Pallet, Storage, Config} = 30, @@ -305,7 +306,7 @@ extern crate frame_benchmarking; mod benches { define_benchmarks!( [frame_system, SystemBench::] - [pallet_glutton, Glutton] + [pallet_glutton, GluttonWestend] ); } diff --git a/cumulus/polkadot-parachain/src/command.rs b/cumulus/polkadot-parachain/src/command.rs index 32e363aff74b..625abb5cbb59 100644 --- a/cumulus/polkadot-parachain/src/command.rs +++ b/cumulus/polkadot-parachain/src/command.rs @@ -40,14 +40,11 @@ enum Runtime { Default, Shell, Seedling, - AssetHubPolkadot, - AssetHubKusama, AssetHubWestend, Penpal(ParaId), ContractsRococo, - CollectivesPolkadot, CollectivesWestend, - Glutton, + GluttonWestend, BridgeHub(chain_spec::bridge_hubs::BridgeHubRuntimeType), } @@ -86,18 +83,12 @@ fn runtime(id: &str) -> Runtime { Runtime::Shell } else if id.starts_with("seedling") { Runtime::Seedling - } else if id.starts_with("asset-hub-polkadot") | id.starts_with("statemint") { - Runtime::AssetHubPolkadot - } else if id.starts_with("asset-hub-kusama") | id.starts_with("statemine") { - Runtime::AssetHubKusama } else if id.starts_with("asset-hub-westend") | id.starts_with("westmint") { Runtime::AssetHubWestend } else if id.starts_with("penpal") { Runtime::Penpal(para_id.unwrap_or(ParaId::new(0))) } else if id.starts_with("contracts-rococo") { Runtime::ContractsRococo - } else if id.starts_with("collectives-polkadot") { - Runtime::CollectivesPolkadot } else if id.starts_with("collectives-westend") { Runtime::CollectivesWestend } else if id.starts_with(chain_spec::bridge_hubs::BridgeHubRuntimeType::ID_PREFIX) { @@ -105,8 +96,8 @@ fn runtime(id: &str) -> Runtime { id.parse::() .expect("Invalid value"), ) - } else if id.starts_with("glutton") { - Runtime::Glutton + } else if id.starts_with("glutton-westend") { + Runtime::GluttonWestend } else { log::warn!("No specific runtime was recognized for ChainSpec's id: '{}', so Runtime::default() will be used", id); Runtime::default() @@ -136,34 +127,6 @@ fn load_spec(id: &str) -> std::result::Result, String> { "shell" => Box::new(chain_spec::shell::get_shell_chain_spec()), "seedling" => Box::new(chain_spec::seedling::get_seedling_chain_spec()), - // -- Asset Hub Polkadot - "asset-hub-polkadot-dev" | "statemint-dev" => - Box::new(chain_spec::asset_hubs::asset_hub_polkadot_development_config()), - "asset-hub-polkadot-local" | "statemint-local" => - Box::new(chain_spec::asset_hubs::asset_hub_polkadot_local_config()), - // the chain spec as used for generating the upgrade genesis values - "asset-hub-polkadot-genesis" | "statemint-genesis" => - Box::new(chain_spec::asset_hubs::asset_hub_polkadot_config()), - // the shell-based chain spec as used for syncing - "asset-hub-polkadot" | "statemint" => - Box::new(chain_spec::asset_hubs::AssetHubPolkadotChainSpec::from_json_bytes( - &include_bytes!("../chain-specs/asset-hub-polkadot.json")[..], - )?), - - // -- Asset Hub Kusama - "asset-hub-kusama-dev" | "statemine-dev" => - Box::new(chain_spec::asset_hubs::asset_hub_kusama_development_config()), - "asset-hub-kusama-local" | "statemine-local" => - Box::new(chain_spec::asset_hubs::asset_hub_kusama_local_config()), - // the chain spec as used for generating the upgrade genesis values - "asset-hub-kusama-genesis" | "statemine-genesis" => - Box::new(chain_spec::asset_hubs::asset_hub_kusama_config()), - // the shell-based chain spec as used for syncing - "asset-hub-kusama" | "statemine" => - Box::new(chain_spec::asset_hubs::AssetHubKusamaChainSpec::from_json_bytes( - &include_bytes!("../chain-specs/asset-hub-kusama.json")[..], - )?), - // -- Asset Hub Westend "asset-hub-westend-dev" | "westmint-dev" => Box::new(chain_spec::asset_hubs::asset_hub_westend_development_config()), @@ -178,18 +141,14 @@ fn load_spec(id: &str) -> std::result::Result, String> { &include_bytes!("../chain-specs/asset-hub-westend.json")[..], )?), - // -- Polkadot Collectives - "collectives-polkadot-dev" => + // -- Westend Collectives + "collectives-westend-dev" => Box::new(chain_spec::collectives::collectives_polkadot_development_config()), - "collectives-polkadot-local" => + "collectives-westend-local" => Box::new(chain_spec::collectives::collectives_polkadot_local_config()), - "collectives-polkadot" => - Box::new(chain_spec::collectives::CollectivesPolkadotChainSpec::from_json_bytes( - &include_bytes!("../chain-specs/collectives-polkadot.json")[..], - )?), "collectives-westend" => Box::new(chain_spec::collectives::CollectivesPolkadotChainSpec::from_json_bytes( - &include_bytes!("../chain-specs/collectives-westend.json")[..], + &include_bytes!("../chain-specs/collectives-polkadot.json")[..], )?), // -- Contracts on Rococo @@ -213,24 +172,20 @@ fn load_spec(id: &str) -> std::result::Result, String> { .load_config()?, // -- Penpall - "penpal-kusama" => Box::new(chain_spec::penpal::get_penpal_chain_spec( - para_id.expect("Must specify parachain id"), - "kusama-local", - )), - "penpal-polkadot" => Box::new(chain_spec::penpal::get_penpal_chain_spec( + "penpal-westend" => Box::new(chain_spec::penpal::get_penpal_chain_spec( para_id.expect("Must specify parachain id"), - "polkadot-local", + "westend-local", )), - // -- Glutton - "glutton-kusama-dev" => Box::new(chain_spec::glutton::glutton_development_config( + // -- Glutton Westend + "glutton-westend-dev" => Box::new(chain_spec::glutton::glutton_development_config( para_id.expect("Must specify parachain id"), )), - "glutton-kusama-local" => Box::new(chain_spec::glutton::glutton_local_config( + "glutton-westend-local" => Box::new(chain_spec::glutton::glutton_local_config( para_id.expect("Must specify parachain id"), )), // the chain spec as used for generating the upgrade genesis values - "glutton-kusama-genesis" => Box::new(chain_spec::glutton::glutton_config( + "glutton-westend-genesis" => Box::new(chain_spec::glutton::glutton_config( para_id.expect("Must specify parachain id"), )), @@ -244,16 +199,11 @@ fn load_spec(id: &str) -> std::result::Result, String> { path => { let path: PathBuf = path.into(); match path.runtime() { - Runtime::AssetHubPolkadot => Box::new( - chain_spec::asset_hubs::AssetHubPolkadotChainSpec::from_json_file(path)?, - ), - Runtime::AssetHubKusama => - Box::new(chain_spec::asset_hubs::AssetHubKusamaChainSpec::from_json_file(path)?), Runtime::AssetHubWestend => Box::new( chain_spec::asset_hubs::AssetHubWestendChainSpec::from_json_file(path)?, ), - Runtime::CollectivesPolkadot | Runtime::CollectivesWestend => Box::new( - chain_spec::collectives::CollectivesPolkadotChainSpec::from_json_file(path)?, + Runtime::CollectivesWestend => Box::new( + chain_spec::collectives::CollectivesWestendChainSpec::from_json_file(path)?, ), Runtime::Shell => Box::new(chain_spec::shell::ShellChainSpec::from_json_file(path)?), @@ -265,7 +215,7 @@ fn load_spec(id: &str) -> std::result::Result, String> { bridge_hub_runtime_type.chain_spec_from_json_file(path)?, Runtime::Penpal(_para_id) => Box::new(chain_spec::penpal::PenpalChainSpec::from_json_file(path)?), - Runtime::Glutton => + Runtime::GluttonWestend => Box::new(chain_spec::glutton::GluttonChainSpec::from_json_file(path)?), Runtime::Default => Box::new( chain_spec::rococo_parachain::RococoParachainChainSpec::from_json_file(path)?, @@ -277,21 +227,17 @@ fn load_spec(id: &str) -> std::result::Result, String> { /// Extracts the normalized chain id and parachain id from the input chain id. /// (H/T to Phala for the idea) -/// E.g. "penpal-kusama-2004" yields ("penpal-kusama", Some(2004)) +/// E.g. "penpal-westend-2004" yields ("penpal-westend", Some(2004)) fn extract_parachain_id(id: &str) -> (&str, &str, Option) { - const KUSAMA_TEST_PARA_PREFIX: &str = "penpal-kusama-"; - const POLKADOT_TEST_PARA_PREFIX: &str = "penpal-polkadot-"; + const WESTEND_TEST_PARA_PREFIX: &str = "penpal-westend-"; - const GLUTTON_PARA_DEV_PREFIX: &str = "glutton-kusama-dev-"; - const GLUTTON_PARA_LOCAL_PREFIX: &str = "glutton-kusama-local-"; - const GLUTTON_PARA_GENESIS_PREFIX: &str = "glutton-kusama-genesis-"; + const GLUTTON_PARA_DEV_PREFIX: &str = "glutton-westend-dev-"; + const GLUTTON_PARA_LOCAL_PREFIX: &str = "glutton-westend-local-"; + const GLUTTON_PARA_GENESIS_PREFIX: &str = "glutton-westend-genesis-"; - let (norm_id, orig_id, para) = if let Some(suffix) = id.strip_prefix(KUSAMA_TEST_PARA_PREFIX) { - let para_id: u32 = suffix.parse().expect("Invalid parachain-id suffix"); - (&id[..KUSAMA_TEST_PARA_PREFIX.len() - 1], id, Some(para_id)) - } else if let Some(suffix) = id.strip_prefix(POLKADOT_TEST_PARA_PREFIX) { + let (norm_id, orig_id, para) = if let Some(suffix) = id.strip_prefix(WESTEND_TEST_PARA_PREFIX) { let para_id: u32 = suffix.parse().expect("Invalid parachain-id suffix"); - (&id[..POLKADOT_TEST_PARA_PREFIX.len() - 1], id, Some(para_id)) + (&id[..WESTEND_TEST_PARA_PREFIX.len() - 1], id, Some(para_id)) } else if let Some(suffix) = id.strip_prefix(GLUTTON_PARA_DEV_PREFIX) { let para_id: u32 = suffix.parse().expect("Invalid parachain-id suffix"); (&id[..GLUTTON_PARA_DEV_PREFIX.len() - 1], id, Some(para_id)) @@ -384,13 +330,6 @@ impl SubstrateCli for RelayChainCli { macro_rules! construct_partials { ($config:expr, |$partials:ident| $code:expr) => { match $config.chain_spec.runtime() { - Runtime::AssetHubKusama => { - let $partials = new_partial::( - &$config, - crate::service::aura_build_import_queue::<_, AuraId>, - )?; - $code - }, Runtime::AssetHubWestend => { let $partials = new_partial::( &$config, @@ -398,32 +337,7 @@ macro_rules! construct_partials { )?; $code }, - Runtime::AssetHubPolkadot => { - let $partials = new_partial::( - &$config, - crate::service::aura_build_import_queue::<_, AssetHubPolkadotAuraId>, - )?; - $code - }, Runtime::BridgeHub(bridge_hub_runtime_type) => match bridge_hub_runtime_type { - chain_spec::bridge_hubs::BridgeHubRuntimeType::Polkadot | - chain_spec::bridge_hubs::BridgeHubRuntimeType::PolkadotLocal | - chain_spec::bridge_hubs::BridgeHubRuntimeType::PolkadotDevelopment => { - let $partials = new_partial::( - &$config, - crate::service::aura_build_import_queue::<_, AuraId>, - )?; - $code - }, - chain_spec::bridge_hubs::BridgeHubRuntimeType::Kusama | - chain_spec::bridge_hubs::BridgeHubRuntimeType::KusamaLocal | - chain_spec::bridge_hubs::BridgeHubRuntimeType::KusamaDevelopment => { - let $partials = new_partial::( - &$config, - crate::service::aura_build_import_queue::<_, AuraId>, - )?; - $code - }, chain_spec::bridge_hubs::BridgeHubRuntimeType::Westend => { let $partials = new_partial::( &$config, @@ -484,8 +398,8 @@ macro_rules! construct_partials { )?; $code }, - Runtime::Glutton => { - let $partials = new_partial::( + Runtime::GluttonWestend => { + let $partials = new_partial::( &$config, crate::service::shell_build_import_queue, )?; @@ -509,29 +423,9 @@ macro_rules! construct_async_run { { $( $code )* }.map(|v| (v, task_manager)) }) }, - Runtime::AssetHubKusama => { - runner.async_run(|$config| { - let $components = new_partial::( - &$config, - crate::service::aura_build_import_queue::<_, AuraId>, - )?; - let task_manager = $components.task_manager; - { $( $code )* }.map(|v| (v, task_manager)) - }) - }, - Runtime::AssetHubPolkadot => { + Runtime::CollectivesWestend => { runner.async_run(|$config| { - let $components = new_partial::( - &$config, - crate::service::aura_build_import_queue::<_, AssetHubPolkadotAuraId>, - )?; - let task_manager = $components.task_manager; - { $( $code )* }.map(|v| (v, task_manager)) - }) - }, - Runtime::CollectivesPolkadot | Runtime::CollectivesWestend => { - runner.async_run(|$config| { - let $components = new_partial::( + let $components = new_partial::( &$config, crate::service::aura_build_import_queue::<_, AuraId>, )?; @@ -571,32 +465,6 @@ macro_rules! construct_async_run { }, Runtime::BridgeHub(bridge_hub_runtime_type) => { match bridge_hub_runtime_type { - chain_spec::bridge_hubs::BridgeHubRuntimeType::Polkadot | - chain_spec::bridge_hubs::BridgeHubRuntimeType::PolkadotLocal | - chain_spec::bridge_hubs::BridgeHubRuntimeType::PolkadotDevelopment => { - runner.async_run(|$config| { - let $components = new_partial::( - &$config, - crate::service::aura_build_import_queue::<_, AuraId>, - )?; - - let task_manager = $components.task_manager; - { $( $code )* }.map(|v| (v, task_manager)) - }) - }, - chain_spec::bridge_hubs::BridgeHubRuntimeType::Kusama | - chain_spec::bridge_hubs::BridgeHubRuntimeType::KusamaLocal | - chain_spec::bridge_hubs::BridgeHubRuntimeType::KusamaDevelopment => { - runner.async_run(|$config| { - let $components = new_partial::( - &$config, - crate::service::aura_build_import_queue::<_, AuraId>, - )?; - - let task_manager = $components.task_manager; - { $( $code )* }.map(|v| (v, task_manager)) - }) - }, chain_spec::bridge_hubs::BridgeHubRuntimeType::Westend => { runner.async_run(|$config| { let $components = new_partial::( @@ -648,9 +516,9 @@ macro_rules! construct_async_run { { $( $code )* }.map(|v| (v, task_manager)) }) }, - Runtime::Glutton => { + Runtime::GluttonWestend => { runner.async_run(|$config| { - let $components = new_partial::( + let $components = new_partial::( &$config, crate::service::shell_build_import_queue, )?; @@ -779,8 +647,6 @@ pub fn run() -> Result<()> { // that both file paths exist, the node will exit, as the user must decide (by // deleting one path) the information that they want to use as their DB. let old_name = match config.chain_spec.id() { - "asset-hub-polkadot" => Some("statemint"), - "asset-hub-kusama" => Some("statemine"), "asset-hub-westend" => Some("westmint"), "asset-hub-rococo" => Some("rockmine"), _ => None, @@ -836,20 +702,6 @@ pub fn run() -> Result<()> { info!("Is collating: {}", if config.role.is_authority() { "yes" } else { "no" }); match config.chain_spec.runtime() { - Runtime::AssetHubPolkadot => crate::service::start_generic_aura_node::< - asset_hub_polkadot_runtime::RuntimeApi, - AssetHubPolkadotAuraId, - >(config, polkadot_config, collator_options, id, hwbench) - .await - .map(|r| r.0) - .map_err(Into::into), - Runtime::AssetHubKusama => crate::service::start_generic_aura_node::< - asset_hub_kusama_runtime::RuntimeApi, - AuraId, - >(config, polkadot_config, collator_options, id, hwbench) - .await - .map(|r| r.0) - .map_err(Into::into), Runtime::AssetHubWestend => crate::service::start_generic_aura_node::< asset_hub_westend_runtime::RuntimeApi, AuraId, @@ -857,9 +709,9 @@ pub fn run() -> Result<()> { .await .map(|r| r.0) .map_err(Into::into), - Runtime::CollectivesPolkadot | Runtime::CollectivesWestend => + Runtime::CollectivesWestend => crate::service::start_generic_aura_node::< - collectives_polkadot_runtime::RuntimeApi, + collectives_westend_runtime::RuntimeApi, AuraId, >(config, polkadot_config, collator_options, id, hwbench) .await @@ -948,8 +800,8 @@ pub fn run() -> Result<()> { .await .map(|r| r.0) .map_err(Into::into), - Runtime::Glutton => - crate::service::start_shell_node::( + Runtime::GluttonWestend => + crate::service::start_shell_node::( config, polkadot_config, collator_options, @@ -1191,12 +1043,6 @@ mod tests { ); assert_eq!(Runtime::Default, path.runtime()); - let path = store_configuration( - &temp_dir, - Box::new(crate::chain_spec::asset_hubs::asset_hub_kusama_local_config()), - ); - assert_eq!(Runtime::AssetHubKusama, path.runtime()); - let path = store_configuration( &temp_dir, Box::new(crate::chain_spec::contracts::contracts_rococo_local_config()), diff --git a/cumulus/polkadot-parachain/src/service.rs b/cumulus/polkadot-parachain/src/service.rs index f7b053b4b6a9..232c62a9c242 100644 --- a/cumulus/polkadot-parachain/src/service.rs +++ b/cumulus/polkadot-parachain/src/service.rs @@ -91,36 +91,6 @@ impl sc_executor::NativeExecutionDispatch for ShellRuntimeExecutor { } } -/// Native Asset Hub Polkadot (Statemint) executor instance. -pub struct AssetHubPolkadotRuntimeExecutor; - -impl sc_executor::NativeExecutionDispatch for AssetHubPolkadotRuntimeExecutor { - type ExtendHostFunctions = frame_benchmarking::benchmarking::HostFunctions; - - fn dispatch(method: &str, data: &[u8]) -> Option> { - asset_hub_polkadot_runtime::api::dispatch(method, data) - } - - fn native_version() -> sc_executor::NativeVersion { - asset_hub_polkadot_runtime::native_version() - } -} - -/// Native Asset Hub Kusama (Statemine) executor instance. -pub struct AssetHubKusamaExecutor; - -impl sc_executor::NativeExecutionDispatch for AssetHubKusamaExecutor { - type ExtendHostFunctions = frame_benchmarking::benchmarking::HostFunctions; - - fn dispatch(method: &str, data: &[u8]) -> Option> { - asset_hub_kusama_runtime::api::dispatch(method, data) - } - - fn native_version() -> sc_executor::NativeVersion { - asset_hub_kusama_runtime::native_version() - } -} - /// Native Asset Hub Westend (Westmint) executor instance. pub struct AssetHubWestendExecutor; @@ -136,48 +106,18 @@ impl sc_executor::NativeExecutionDispatch for AssetHubWestendExecutor { } } -/// Native Polkadot Collectives executor instance. -pub struct CollectivesPolkadotRuntimeExecutor; - -impl sc_executor::NativeExecutionDispatch for CollectivesPolkadotRuntimeExecutor { - type ExtendHostFunctions = frame_benchmarking::benchmarking::HostFunctions; - - fn dispatch(method: &str, data: &[u8]) -> Option> { - collectives_polkadot_runtime::api::dispatch(method, data) - } - - fn native_version() -> sc_executor::NativeVersion { - collectives_polkadot_runtime::native_version() - } -} - -/// Native BridgeHubPolkadot executor instance. -pub struct BridgeHubPolkadotRuntimeExecutor; - -impl sc_executor::NativeExecutionDispatch for BridgeHubPolkadotRuntimeExecutor { - type ExtendHostFunctions = frame_benchmarking::benchmarking::HostFunctions; - - fn dispatch(method: &str, data: &[u8]) -> Option> { - bridge_hub_polkadot_runtime::api::dispatch(method, data) - } - - fn native_version() -> sc_executor::NativeVersion { - bridge_hub_polkadot_runtime::native_version() - } -} - -/// Native BridgeHubKusama executor instance. -pub struct BridgeHubKusamaRuntimeExecutor; +/// Native Westend Collectives executor instance. +pub struct CollectivesWestendRuntimeExecutor; -impl sc_executor::NativeExecutionDispatch for BridgeHubKusamaRuntimeExecutor { +impl sc_executor::NativeExecutionDispatch for CollectivesWestendRuntimeExecutor { type ExtendHostFunctions = frame_benchmarking::benchmarking::HostFunctions; fn dispatch(method: &str, data: &[u8]) -> Option> { - bridge_hub_kusama_runtime::api::dispatch(method, data) + collectives_westend_runtime::api::dispatch(method, data) } fn native_version() -> sc_executor::NativeVersion { - bridge_hub_kusama_runtime::native_version() + collectives_westend_runtime::native_version() } } @@ -211,10 +151,10 @@ impl sc_executor::NativeExecutionDispatch for ContractsRococoRuntimeExecutor { } } -/// Native Glutton executor instance. -pub struct GluttonRuntimeExecutor; +/// Native Westend Glutton executor instance. +pub struct GluttonWestendRuntimeExecutor; -impl sc_executor::NativeExecutionDispatch for GluttonRuntimeExecutor { +impl sc_executor::NativeExecutionDispatch for GluttonWestendRuntimeExecutor { type ExtendHostFunctions = frame_benchmarking::benchmarking::HostFunctions; fn dispatch(method: &str, data: &[u8]) -> Option> { From 4d9d68bb28ad15b6bf4cae18cc3501562ac17e69 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?D=C3=B3nal=20Murray?= Date: Fri, 29 Sep 2023 17:09:56 +0100 Subject: [PATCH 04/78] Remove asset-hub-polkadot-specific constants and refs --- .../emulated/common/src/constants.rs | 15 +-------------- cumulus/polkadot-parachain/src/cli.rs | 4 ++-- .../tests/benchmark_storage_works.rs | 2 +- 3 files changed, 4 insertions(+), 17 deletions(-) diff --git a/cumulus/parachains/integration-tests/emulated/common/src/constants.rs b/cumulus/parachains/integration-tests/emulated/common/src/constants.rs index 33a9ac38c8c6..5d0e9be72d04 100644 --- a/cumulus/parachains/integration-tests/emulated/common/src/constants.rs +++ b/cumulus/parachains/integration-tests/emulated/common/src/constants.rs @@ -26,7 +26,7 @@ use sp_runtime::{ }; // Cumulus -use parachains_common::{AccountId, AssetHubPolkadotAuraId, AuraId, Balance, BlockNumber}; +use parachains_common::{AccountId, AuraId, Balance, BlockNumber}; use polkadot_primitives::{AssignmentId, ValidatorId}; use polkadot_runtime_parachains::configuration::HostConfiguration; use polkadot_service::chain_spec::get_authority_keys_from_seed_no_beefy; @@ -91,19 +91,6 @@ pub mod accounts { pub mod collators { use super::*; - pub fn invulnerables_asset_hub_polkadot() -> Vec<(AccountId, AssetHubPolkadotAuraId)> { - vec![ - ( - get_account_id_from_seed::("Alice"), - get_from_seed::("Alice"), - ), - ( - get_account_id_from_seed::("Bob"), - get_from_seed::("Bob"), - ), - ] - } - pub fn invulnerables() -> Vec<(AccountId, AuraId)> { vec![ ( diff --git a/cumulus/polkadot-parachain/src/cli.rs b/cumulus/polkadot-parachain/src/cli.rs index 63e4baf27aeb..85dc25631cc1 100644 --- a/cumulus/polkadot-parachain/src/cli.rs +++ b/cumulus/polkadot-parachain/src/cli.rs @@ -63,9 +63,9 @@ pub enum Subcommand { const AFTER_HELP_EXAMPLE: &str = color_print::cstr!( r#"Examples: - polkadot-parachain --chain asset-hub-polkadot --sync warp -- --chain polkadot --sync warp + polkadot-parachain --chain asset-hub-westend --sync warp -- --chain polkadot --sync warp Launch a warp-syncing full node of the Asset Hub parachain on the Polkadot Relay Chain. - polkadot-parachain --chain asset-hub-polkadot --sync warp --relay-chain-rpc-url ws://rpc.example.com -- --chain polkadot + polkadot-parachain --chain asset-hub-westend --sync warp --relay-chain-rpc-url ws://rpc.example.com -- --chain polkadot Launch a warp-syncing full node of the Asset Hub parachain on the Polkadot Relay Chain. Uses ws://rpc.example.com as remote relay chain node. "# diff --git a/cumulus/polkadot-parachain/tests/benchmark_storage_works.rs b/cumulus/polkadot-parachain/tests/benchmark_storage_works.rs index c2850b64e458..227168c88b7b 100644 --- a/cumulus/polkadot-parachain/tests/benchmark_storage_works.rs +++ b/cumulus/polkadot-parachain/tests/benchmark_storage_works.rs @@ -24,7 +24,7 @@ use std::{ use tempfile::tempdir; /// The runtimes that this command supports. -static RUNTIMES: [&str; 3] = ["asset-hub-westend", "asset-hub-kusama", "asset-hub-polkadot"]; +static RUNTIMES: [&str] = ["asset-hub-westend"]; /// The `benchmark storage` command works for the dev runtimes. #[test] From b7e7aca7de085ef86696cfbae687e191d1b1b7f1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?D=C3=B3nal=20Murray?= Date: Fri, 29 Sep 2023 17:27:56 +0100 Subject: [PATCH 05/78] Fix glutton-westend runtime --- .../src/weights/frame_system.rs | 6 +++--- .../src/weights/pallet_glutton.rs | 6 +++--- .../src/weights/pallet_timestamp.rs | 6 +++--- .../glutton/glutton-westend/src/xcm_config.rs | 4 ++-- .../src/chain_spec/glutton.rs | 10 +++++----- cumulus/polkadot-parachain/src/command.rs | 18 ------------------ 6 files changed, 16 insertions(+), 34 deletions(-) diff --git a/cumulus/parachains/runtimes/glutton/glutton-westend/src/weights/frame_system.rs b/cumulus/parachains/runtimes/glutton/glutton-westend/src/weights/frame_system.rs index 36c4abc40063..3bc3e0db8500 100644 --- a/cumulus/parachains/runtimes/glutton/glutton-westend/src/weights/frame_system.rs +++ b/cumulus/parachains/runtimes/glutton/glutton-westend/src/weights/frame_system.rs @@ -20,13 +20,13 @@ //! DATE: 2023-07-31, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` //! WORST CASE MAP SIZE: `1000000` //! HOSTNAME: `runner-ynta1nyy-project-238-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz` -//! EXECUTION: ``, WASM-EXECUTION: `Compiled`, CHAIN: `Some("glutton-kusama-dev-1300")`, DB CACHE: 1024 +//! EXECUTION: ``, WASM-EXECUTION: `Compiled`, CHAIN: `Some("glutton-westend-dev-1300")`, DB CACHE: 1024 // Executed Command: // ./target/production/polkadot-parachain // benchmark // pallet -// --chain=glutton-kusama-dev-1300 +// --chain=glutton-westend-dev-1300 // --wasm-execution=compiled // --pallet=frame_system // --no-storage-info @@ -37,7 +37,7 @@ // --repeat=20 // --json // --header=./file_header.txt -// --output=./parachains/runtimes/glutton/glutton-kusama/src/weights/ +// --output=./parachains/runtimes/glutton/glutton-westend/src/weights/ #![cfg_attr(rustfmt, rustfmt_skip)] #![allow(unused_parens)] diff --git a/cumulus/parachains/runtimes/glutton/glutton-westend/src/weights/pallet_glutton.rs b/cumulus/parachains/runtimes/glutton/glutton-westend/src/weights/pallet_glutton.rs index f278d246b33b..a94962e418a4 100644 --- a/cumulus/parachains/runtimes/glutton/glutton-westend/src/weights/pallet_glutton.rs +++ b/cumulus/parachains/runtimes/glutton/glutton-westend/src/weights/pallet_glutton.rs @@ -20,13 +20,13 @@ //! DATE: 2023-07-31, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` //! WORST CASE MAP SIZE: `1000000` //! HOSTNAME: `runner-ynta1nyy-project-238-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz` -//! EXECUTION: ``, WASM-EXECUTION: `Compiled`, CHAIN: `Some("glutton-kusama-dev-1300")`, DB CACHE: 1024 +//! EXECUTION: ``, WASM-EXECUTION: `Compiled`, CHAIN: `Some("glutton-westend-dev-1300")`, DB CACHE: 1024 // Executed Command: // ./target/production/polkadot-parachain // benchmark // pallet -// --chain=glutton-kusama-dev-1300 +// --chain=glutton-westend-dev-1300 // --wasm-execution=compiled // --pallet=pallet_glutton // --no-storage-info @@ -37,7 +37,7 @@ // --repeat=20 // --json // --header=./file_header.txt -// --output=./parachains/runtimes/glutton/glutton-kusama/src/weights/ +// --output=./parachains/runtimes/glutton/glutton-westend/src/weights/ #![cfg_attr(rustfmt, rustfmt_skip)] #![allow(unused_parens)] diff --git a/cumulus/parachains/runtimes/glutton/glutton-westend/src/weights/pallet_timestamp.rs b/cumulus/parachains/runtimes/glutton/glutton-westend/src/weights/pallet_timestamp.rs index 8edae065f1b9..25b16aadcc9b 100644 --- a/cumulus/parachains/runtimes/glutton/glutton-westend/src/weights/pallet_timestamp.rs +++ b/cumulus/parachains/runtimes/glutton/glutton-westend/src/weights/pallet_timestamp.rs @@ -20,13 +20,13 @@ //! DATE: 2023-07-31, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` //! WORST CASE MAP SIZE: `1000000` //! HOSTNAME: `runner-ynta1nyy-project-238-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz` -//! EXECUTION: ``, WASM-EXECUTION: `Compiled`, CHAIN: `Some("asset-hub-kusama-dev")`, DB CACHE: 1024 +//! EXECUTION: ``, WASM-EXECUTION: `Compiled`, CHAIN: `Some("asset-hub-westend-dev")`, DB CACHE: 1024 // Executed Command: // ./target/production/polkadot-parachain // benchmark // pallet -// --chain=asset-hub-kusama-dev +// --chain=asset-hub-westend-dev // --wasm-execution=compiled // --pallet=pallet_timestamp // --no-storage-info @@ -37,7 +37,7 @@ // --repeat=20 // --json // --header=./file_header.txt -// --output=./parachains/runtimes/assets/asset-hub-kusama/src/weights/ +// --output=./parachains/runtimes/assets/asset-hub-westend/src/weights/ #![cfg_attr(rustfmt, rustfmt_skip)] #![allow(unused_parens)] diff --git a/cumulus/parachains/runtimes/glutton/glutton-westend/src/xcm_config.rs b/cumulus/parachains/runtimes/glutton/glutton-westend/src/xcm_config.rs index fb7b78b79d2a..5ebb0ade1231 100644 --- a/cumulus/parachains/runtimes/glutton/glutton-westend/src/xcm_config.rs +++ b/cumulus/parachains/runtimes/glutton/glutton-westend/src/xcm_config.rs @@ -29,8 +29,8 @@ use xcm_builder::{ }; parameter_types! { - pub const KusamaLocation: MultiLocation = MultiLocation::parent(); - pub const KusamaNetwork: Option = Some(NetworkId::Kusama); + pub const WestendLocation: MultiLocation = MultiLocation::parent(); + pub const WestendNetwork: Option = Some(NetworkId::Westend); pub UniversalLocation: InteriorMultiLocation = X1(Parachain(ParachainInfo::parachain_id().into())); } diff --git a/cumulus/polkadot-parachain/src/chain_spec/glutton.rs b/cumulus/polkadot-parachain/src/chain_spec/glutton.rs index 881fae398827..5e1b1d67df27 100644 --- a/cumulus/polkadot-parachain/src/chain_spec/glutton.rs +++ b/cumulus/polkadot-parachain/src/chain_spec/glutton.rs @@ -39,7 +39,7 @@ pub fn glutton_development_config(para_id: ParaId) -> GluttonChainSpec { None, None, None, - Extensions { relay_chain: "kusama-dev".into(), para_id: para_id.into() }, + Extensions { relay_chain: "westend-dev".into(), para_id: para_id.into() }, ) } @@ -64,7 +64,7 @@ pub fn glutton_local_config(para_id: ParaId) -> GluttonChainSpec { None, None, None, - Extensions { relay_chain: "kusama-local".into(), para_id: para_id.into() }, + Extensions { relay_chain: "westend-local".into(), para_id: para_id.into() }, ) } @@ -76,7 +76,7 @@ pub fn glutton_config(para_id: ParaId) -> GluttonChainSpec { // Name format!("Glutton {}", para_id).as_str(), // ID - format!("glutton-kusama-{}", para_id).as_str(), + format!("glutton-westend-{}", para_id).as_str(), ChainType::Live, move || { glutton_genesis( @@ -90,10 +90,10 @@ pub fn glutton_config(para_id: ParaId) -> GluttonChainSpec { Vec::new(), None, // Protocol ID - Some(format!("glutton-kusama-{}", para_id).as_str()), + Some(format!("glutton-westend-{}", para_id).as_str()), None, Some(properties), - Extensions { relay_chain: "kusama".into(), para_id: para_id.into() }, + Extensions { relay_chain: "westend".into(), para_id: para_id.into() }, ) } diff --git a/cumulus/polkadot-parachain/src/command.rs b/cumulus/polkadot-parachain/src/command.rs index 625abb5cbb59..2b47937d60f1 100644 --- a/cumulus/polkadot-parachain/src/command.rs +++ b/cumulus/polkadot-parachain/src/command.rs @@ -745,24 +745,6 @@ pub fn run() -> Result<()> { .map(|r| r.0) .map_err(Into::into), Runtime::BridgeHub(bridge_hub_runtime_type) => match bridge_hub_runtime_type { - chain_spec::bridge_hubs::BridgeHubRuntimeType::Polkadot | - chain_spec::bridge_hubs::BridgeHubRuntimeType::PolkadotLocal | - chain_spec::bridge_hubs::BridgeHubRuntimeType::PolkadotDevelopment => - crate::service::start_generic_aura_node::< - chain_spec::bridge_hubs::polkadot::RuntimeApi, - AuraId, - >(config, polkadot_config, collator_options, id, hwbench) - .await - .map(|r| r.0), - chain_spec::bridge_hubs::BridgeHubRuntimeType::Kusama | - chain_spec::bridge_hubs::BridgeHubRuntimeType::KusamaLocal | - chain_spec::bridge_hubs::BridgeHubRuntimeType::KusamaDevelopment => - crate::service::start_generic_aura_node::< - chain_spec::bridge_hubs::kusama::RuntimeApi, - AuraId, - >(config, polkadot_config, collator_options, id, hwbench) - .await - .map(|r| r.0), chain_spec::bridge_hubs::BridgeHubRuntimeType::Westend => crate::service::start_generic_aura_node::< chain_spec::bridge_hubs::westend::RuntimeApi, From d4377dbb2a50368b6b18bc4303d89a92af55abed Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?D=C3=B3nal=20Murray?= Date: Tue, 3 Oct 2023 09:55:05 +0200 Subject: [PATCH 06/78] Make changes in collectives-westend --- .../src/weights/cumulus_pallet_xcmp_queue.rs | 6 +++--- .../collectives-westend/src/weights/frame_system.rs | 6 +++--- .../collectives-westend/src/weights/pallet_alliance.rs | 6 +++--- .../collectives-westend/src/weights/pallet_balances.rs | 6 +++--- .../src/weights/pallet_collator_selection.rs | 6 +++--- .../collectives-westend/src/weights/pallet_collective.rs | 6 +++--- .../src/weights/pallet_collective_content.rs | 6 +++--- .../src/weights/pallet_core_fellowship_ambassador_core.rs | 6 +++--- .../src/weights/pallet_core_fellowship_fellowship_core.rs | 6 +++--- .../collectives-westend/src/weights/pallet_multisig.rs | 6 +++--- .../collectives-westend/src/weights/pallet_preimage.rs | 6 +++--- .../collectives-westend/src/weights/pallet_proxy.rs | 6 +++--- .../pallet_ranked_collective_ambassador_collective.rs | 6 +++--- .../pallet_ranked_collective_fellowship_collective.rs | 6 +++--- .../src/weights/pallet_referenda_ambassador_referenda.rs | 6 +++--- .../src/weights/pallet_referenda_fellowship_referenda.rs | 6 +++--- .../src/weights/pallet_salary_ambassador_salary.rs | 6 +++--- .../src/weights/pallet_salary_fellowship_salary.rs | 6 +++--- .../collectives-westend/src/weights/pallet_scheduler.rs | 6 +++--- .../collectives-westend/src/weights/pallet_session.rs | 6 +++--- .../collectives-westend/src/weights/pallet_timestamp.rs | 6 +++--- .../collectives-westend/src/weights/pallet_utility.rs | 6 +++--- .../collectives-westend/src/weights/pallet_xcm.rs | 6 +++--- 23 files changed, 69 insertions(+), 69 deletions(-) diff --git a/cumulus/parachains/runtimes/collectives/collectives-westend/src/weights/cumulus_pallet_xcmp_queue.rs b/cumulus/parachains/runtimes/collectives/collectives-westend/src/weights/cumulus_pallet_xcmp_queue.rs index ccd9478bf10e..d07ba5cbd9f6 100644 --- a/cumulus/parachains/runtimes/collectives/collectives-westend/src/weights/cumulus_pallet_xcmp_queue.rs +++ b/cumulus/parachains/runtimes/collectives/collectives-westend/src/weights/cumulus_pallet_xcmp_queue.rs @@ -20,13 +20,13 @@ //! DATE: 2023-07-31, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` //! WORST CASE MAP SIZE: `1000000` //! HOSTNAME: `runner-ynta1nyy-project-238-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz` -//! EXECUTION: ``, WASM-EXECUTION: `Compiled`, CHAIN: `Some("collectives-polkadot-dev")`, DB CACHE: 1024 +//! EXECUTION: ``, WASM-EXECUTION: `Compiled`, CHAIN: `Some("collectives-westend-dev")`, DB CACHE: 1024 // Executed Command: // ./target/production/polkadot-parachain // benchmark // pallet -// --chain=collectives-polkadot-dev +// --chain=collectives-westend-dev // --wasm-execution=compiled // --pallet=cumulus_pallet_xcmp_queue // --no-storage-info @@ -37,7 +37,7 @@ // --repeat=20 // --json // --header=./file_header.txt -// --output=./parachains/runtimes/collectives/collectives-polkadot/src/weights/ +// --output=./parachains/runtimes/collectives/collectives-westend/src/weights/ #![cfg_attr(rustfmt, rustfmt_skip)] #![allow(unused_parens)] diff --git a/cumulus/parachains/runtimes/collectives/collectives-westend/src/weights/frame_system.rs b/cumulus/parachains/runtimes/collectives/collectives-westend/src/weights/frame_system.rs index 31cd502d1927..2a226345dce2 100644 --- a/cumulus/parachains/runtimes/collectives/collectives-westend/src/weights/frame_system.rs +++ b/cumulus/parachains/runtimes/collectives/collectives-westend/src/weights/frame_system.rs @@ -20,13 +20,13 @@ //! DATE: 2023-07-31, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` //! WORST CASE MAP SIZE: `1000000` //! HOSTNAME: `runner-ynta1nyy-project-238-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz` -//! EXECUTION: ``, WASM-EXECUTION: `Compiled`, CHAIN: `Some("collectives-polkadot-dev")`, DB CACHE: 1024 +//! EXECUTION: ``, WASM-EXECUTION: `Compiled`, CHAIN: `Some("collectives-westend-dev")`, DB CACHE: 1024 // Executed Command: // ./target/production/polkadot-parachain // benchmark // pallet -// --chain=collectives-polkadot-dev +// --chain=collectives-westend-dev // --wasm-execution=compiled // --pallet=frame_system // --no-storage-info @@ -37,7 +37,7 @@ // --repeat=20 // --json // --header=./file_header.txt -// --output=./parachains/runtimes/collectives/collectives-polkadot/src/weights/ +// --output=./parachains/runtimes/collectives/collectives-westend/src/weights/ #![cfg_attr(rustfmt, rustfmt_skip)] #![allow(unused_parens)] diff --git a/cumulus/parachains/runtimes/collectives/collectives-westend/src/weights/pallet_alliance.rs b/cumulus/parachains/runtimes/collectives/collectives-westend/src/weights/pallet_alliance.rs index 9e3acac46a4c..2f4eae554c0e 100644 --- a/cumulus/parachains/runtimes/collectives/collectives-westend/src/weights/pallet_alliance.rs +++ b/cumulus/parachains/runtimes/collectives/collectives-westend/src/weights/pallet_alliance.rs @@ -20,13 +20,13 @@ //! DATE: 2023-07-31, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` //! WORST CASE MAP SIZE: `1000000` //! HOSTNAME: `runner-ynta1nyy-project-238-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz` -//! EXECUTION: ``, WASM-EXECUTION: `Compiled`, CHAIN: `Some("collectives-polkadot-dev")`, DB CACHE: 1024 +//! EXECUTION: ``, WASM-EXECUTION: `Compiled`, CHAIN: `Some("collectives-westend-dev")`, DB CACHE: 1024 // Executed Command: // ./target/production/polkadot-parachain // benchmark // pallet -// --chain=collectives-polkadot-dev +// --chain=collectives-westend-dev // --wasm-execution=compiled // --pallet=pallet_alliance // --no-storage-info @@ -37,7 +37,7 @@ // --repeat=20 // --json // --header=./file_header.txt -// --output=./parachains/runtimes/collectives/collectives-polkadot/src/weights/ +// --output=./parachains/runtimes/collectives/collectives-westend/src/weights/ #![cfg_attr(rustfmt, rustfmt_skip)] #![allow(unused_parens)] diff --git a/cumulus/parachains/runtimes/collectives/collectives-westend/src/weights/pallet_balances.rs b/cumulus/parachains/runtimes/collectives/collectives-westend/src/weights/pallet_balances.rs index dd0c02ab8730..46b8676bce9c 100644 --- a/cumulus/parachains/runtimes/collectives/collectives-westend/src/weights/pallet_balances.rs +++ b/cumulus/parachains/runtimes/collectives/collectives-westend/src/weights/pallet_balances.rs @@ -20,13 +20,13 @@ //! DATE: 2023-07-31, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` //! WORST CASE MAP SIZE: `1000000` //! HOSTNAME: `runner-ynta1nyy-project-238-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz` -//! EXECUTION: ``, WASM-EXECUTION: `Compiled`, CHAIN: `Some("collectives-polkadot-dev")`, DB CACHE: 1024 +//! EXECUTION: ``, WASM-EXECUTION: `Compiled`, CHAIN: `Some("collectives-westend-dev")`, DB CACHE: 1024 // Executed Command: // ./target/production/polkadot-parachain // benchmark // pallet -// --chain=collectives-polkadot-dev +// --chain=collectives-westend-dev // --wasm-execution=compiled // --pallet=pallet_balances // --no-storage-info @@ -37,7 +37,7 @@ // --repeat=20 // --json // --header=./file_header.txt -// --output=./parachains/runtimes/collectives/collectives-polkadot/src/weights/ +// --output=./parachains/runtimes/collectives/collectives-westend/src/weights/ #![cfg_attr(rustfmt, rustfmt_skip)] #![allow(unused_parens)] diff --git a/cumulus/parachains/runtimes/collectives/collectives-westend/src/weights/pallet_collator_selection.rs b/cumulus/parachains/runtimes/collectives/collectives-westend/src/weights/pallet_collator_selection.rs index ea237d602a9b..f68302d58555 100644 --- a/cumulus/parachains/runtimes/collectives/collectives-westend/src/weights/pallet_collator_selection.rs +++ b/cumulus/parachains/runtimes/collectives/collectives-westend/src/weights/pallet_collator_selection.rs @@ -20,13 +20,13 @@ //! DATE: 2023-07-31, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` //! WORST CASE MAP SIZE: `1000000` //! HOSTNAME: `runner-ynta1nyy-project-238-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz` -//! EXECUTION: ``, WASM-EXECUTION: `Compiled`, CHAIN: `Some("collectives-polkadot-dev")`, DB CACHE: 1024 +//! EXECUTION: ``, WASM-EXECUTION: `Compiled`, CHAIN: `Some("collectives-westend-dev")`, DB CACHE: 1024 // Executed Command: // ./target/production/polkadot-parachain // benchmark // pallet -// --chain=collectives-polkadot-dev +// --chain=collectives-westend-dev // --wasm-execution=compiled // --pallet=pallet_collator_selection // --no-storage-info @@ -37,7 +37,7 @@ // --repeat=20 // --json // --header=./file_header.txt -// --output=./parachains/runtimes/collectives/collectives-polkadot/src/weights/ +// --output=./parachains/runtimes/collectives/collectives-westend/src/weights/ #![cfg_attr(rustfmt, rustfmt_skip)] #![allow(unused_parens)] diff --git a/cumulus/parachains/runtimes/collectives/collectives-westend/src/weights/pallet_collective.rs b/cumulus/parachains/runtimes/collectives/collectives-westend/src/weights/pallet_collective.rs index 2d344ad0db7b..8a2169ae5fc0 100644 --- a/cumulus/parachains/runtimes/collectives/collectives-westend/src/weights/pallet_collective.rs +++ b/cumulus/parachains/runtimes/collectives/collectives-westend/src/weights/pallet_collective.rs @@ -20,13 +20,13 @@ //! DATE: 2023-07-31, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` //! WORST CASE MAP SIZE: `1000000` //! HOSTNAME: `runner-ynta1nyy-project-238-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz` -//! EXECUTION: ``, WASM-EXECUTION: `Compiled`, CHAIN: `Some("collectives-polkadot-dev")`, DB CACHE: 1024 +//! EXECUTION: ``, WASM-EXECUTION: `Compiled`, CHAIN: `Some("collectives-westend-dev")`, DB CACHE: 1024 // Executed Command: // ./target/production/polkadot-parachain // benchmark // pallet -// --chain=collectives-polkadot-dev +// --chain=collectives-westend-dev // --wasm-execution=compiled // --pallet=pallet_collective // --no-storage-info @@ -37,7 +37,7 @@ // --repeat=20 // --json // --header=./file_header.txt -// --output=./parachains/runtimes/collectives/collectives-polkadot/src/weights/ +// --output=./parachains/runtimes/collectives/collectives-westend/src/weights/ #![cfg_attr(rustfmt, rustfmt_skip)] #![allow(unused_parens)] diff --git a/cumulus/parachains/runtimes/collectives/collectives-westend/src/weights/pallet_collective_content.rs b/cumulus/parachains/runtimes/collectives/collectives-westend/src/weights/pallet_collective_content.rs index e66907b94530..6c213786e4ca 100644 --- a/cumulus/parachains/runtimes/collectives/collectives-westend/src/weights/pallet_collective_content.rs +++ b/cumulus/parachains/runtimes/collectives/collectives-westend/src/weights/pallet_collective_content.rs @@ -20,20 +20,20 @@ //! DATE: 2023-08-18, STEPS: `10`, REPEAT: `3`, LOW RANGE: `[]`, HIGH RANGE: `[]` //! WORST CASE MAP SIZE: `1000000` //! HOSTNAME: `cob`, CPU: `` -//! WASM-EXECUTION: `Compiled`, CHAIN: `Some("collectives-polkadot-dev")`, DB CACHE: 1024 +//! WASM-EXECUTION: `Compiled`, CHAIN: `Some("collectives-westend-dev")`, DB CACHE: 1024 // Executed Command: // ./target/debug/polkadot-parachain // benchmark // pallet -// --chain=collectives-polkadot-dev +// --chain=collectives-westend-dev // --steps=10 // --repeat=3 // --pallet=pallet_collective_content // --extrinsic=* // --wasm-execution=compiled // --heap-pages=4096 -// --output=./parachains/runtimes/collectives/collectives-polkadot/src/weights/ +// --output=./parachains/runtimes/collectives/collectives-westend/src/weights/ #![cfg_attr(rustfmt, rustfmt_skip)] #![allow(unused_parens)] diff --git a/cumulus/parachains/runtimes/collectives/collectives-westend/src/weights/pallet_core_fellowship_ambassador_core.rs b/cumulus/parachains/runtimes/collectives/collectives-westend/src/weights/pallet_core_fellowship_ambassador_core.rs index f40940a8b25f..33db2cf293ff 100644 --- a/cumulus/parachains/runtimes/collectives/collectives-westend/src/weights/pallet_core_fellowship_ambassador_core.rs +++ b/cumulus/parachains/runtimes/collectives/collectives-westend/src/weights/pallet_core_fellowship_ambassador_core.rs @@ -20,13 +20,13 @@ //! DATE: 2023-08-11, STEPS: `2`, REPEAT: `2`, LOW RANGE: `[]`, HIGH RANGE: `[]` //! WORST CASE MAP SIZE: `1000000` //! HOSTNAME: `cob`, CPU: `` -//! WASM-EXECUTION: `Compiled`, CHAIN: `Some("collectives-polkadot-dev")`, DB CACHE: 1024 +//! WASM-EXECUTION: `Compiled`, CHAIN: `Some("collectives-westend-dev")`, DB CACHE: 1024 // Executed Command: // target/release/polkadot-parachain // benchmark // pallet -// --chain=collectives-polkadot-dev +// --chain=collectives-westend-dev // --wasm-execution=compiled // --pallet=pallet_core_fellowship // --extrinsic=* @@ -34,7 +34,7 @@ // --repeat=2 // --json // --header=./file_header.txt -// --output=./parachains/runtimes/collectives/collectives-polkadot/src/weights/ +// --output=./parachains/runtimes/collectives/collectives-westend/src/weights/ #![cfg_attr(rustfmt, rustfmt_skip)] #![allow(unused_parens)] diff --git a/cumulus/parachains/runtimes/collectives/collectives-westend/src/weights/pallet_core_fellowship_fellowship_core.rs b/cumulus/parachains/runtimes/collectives/collectives-westend/src/weights/pallet_core_fellowship_fellowship_core.rs index 434986b03bba..2b1bf5ada3ce 100644 --- a/cumulus/parachains/runtimes/collectives/collectives-westend/src/weights/pallet_core_fellowship_fellowship_core.rs +++ b/cumulus/parachains/runtimes/collectives/collectives-westend/src/weights/pallet_core_fellowship_fellowship_core.rs @@ -20,13 +20,13 @@ //! DATE: 2023-08-11, STEPS: `2`, REPEAT: `2`, LOW RANGE: `[]`, HIGH RANGE: `[]` //! WORST CASE MAP SIZE: `1000000` //! HOSTNAME: `cob`, CPU: `` -//! WASM-EXECUTION: `Compiled`, CHAIN: `Some("collectives-polkadot-dev")`, DB CACHE: 1024 +//! WASM-EXECUTION: `Compiled`, CHAIN: `Some("collectives-westend-dev")`, DB CACHE: 1024 // Executed Command: // target/release/polkadot-parachain // benchmark // pallet -// --chain=collectives-polkadot-dev +// --chain=collectives-westend-dev // --wasm-execution=compiled // --pallet=pallet_core_fellowship // --extrinsic=* @@ -34,7 +34,7 @@ // --repeat=2 // --json // --header=./file_header.txt -// --output=./parachains/runtimes/collectives/collectives-polkadot/src/weights/ +// --output=./parachains/runtimes/collectives/collectives-westend/src/weights/ #![cfg_attr(rustfmt, rustfmt_skip)] #![allow(unused_parens)] diff --git a/cumulus/parachains/runtimes/collectives/collectives-westend/src/weights/pallet_multisig.rs b/cumulus/parachains/runtimes/collectives/collectives-westend/src/weights/pallet_multisig.rs index a8dd58320cc2..d2b041977519 100644 --- a/cumulus/parachains/runtimes/collectives/collectives-westend/src/weights/pallet_multisig.rs +++ b/cumulus/parachains/runtimes/collectives/collectives-westend/src/weights/pallet_multisig.rs @@ -20,13 +20,13 @@ //! DATE: 2023-07-31, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` //! WORST CASE MAP SIZE: `1000000` //! HOSTNAME: `runner-ynta1nyy-project-238-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz` -//! EXECUTION: ``, WASM-EXECUTION: `Compiled`, CHAIN: `Some("collectives-polkadot-dev")`, DB CACHE: 1024 +//! EXECUTION: ``, WASM-EXECUTION: `Compiled`, CHAIN: `Some("collectives-westend-dev")`, DB CACHE: 1024 // Executed Command: // ./target/production/polkadot-parachain // benchmark // pallet -// --chain=collectives-polkadot-dev +// --chain=collectives-westend-dev // --wasm-execution=compiled // --pallet=pallet_multisig // --no-storage-info @@ -37,7 +37,7 @@ // --repeat=20 // --json // --header=./file_header.txt -// --output=./parachains/runtimes/collectives/collectives-polkadot/src/weights/ +// --output=./parachains/runtimes/collectives/collectives-westend/src/weights/ #![cfg_attr(rustfmt, rustfmt_skip)] #![allow(unused_parens)] diff --git a/cumulus/parachains/runtimes/collectives/collectives-westend/src/weights/pallet_preimage.rs b/cumulus/parachains/runtimes/collectives/collectives-westend/src/weights/pallet_preimage.rs index e9f565d9387d..ef9534a2ea90 100644 --- a/cumulus/parachains/runtimes/collectives/collectives-westend/src/weights/pallet_preimage.rs +++ b/cumulus/parachains/runtimes/collectives/collectives-westend/src/weights/pallet_preimage.rs @@ -20,13 +20,13 @@ //! DATE: 2023-07-31, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` //! WORST CASE MAP SIZE: `1000000` //! HOSTNAME: `runner-ynta1nyy-project-238-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz` -//! EXECUTION: ``, WASM-EXECUTION: `Compiled`, CHAIN: `Some("collectives-polkadot-dev")`, DB CACHE: 1024 +//! EXECUTION: ``, WASM-EXECUTION: `Compiled`, CHAIN: `Some("collectives-westend-dev")`, DB CACHE: 1024 // Executed Command: // ./target/production/polkadot-parachain // benchmark // pallet -// --chain=collectives-polkadot-dev +// --chain=collectives-westend-dev // --wasm-execution=compiled // --pallet=pallet_preimage // --no-storage-info @@ -37,7 +37,7 @@ // --repeat=20 // --json // --header=./file_header.txt -// --output=./parachains/runtimes/collectives/collectives-polkadot/src/weights/ +// --output=./parachains/runtimes/collectives/collectives-westend/src/weights/ #![cfg_attr(rustfmt, rustfmt_skip)] #![allow(unused_parens)] diff --git a/cumulus/parachains/runtimes/collectives/collectives-westend/src/weights/pallet_proxy.rs b/cumulus/parachains/runtimes/collectives/collectives-westend/src/weights/pallet_proxy.rs index faf100d23bb0..c431514bc51e 100644 --- a/cumulus/parachains/runtimes/collectives/collectives-westend/src/weights/pallet_proxy.rs +++ b/cumulus/parachains/runtimes/collectives/collectives-westend/src/weights/pallet_proxy.rs @@ -20,13 +20,13 @@ //! DATE: 2023-07-31, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` //! WORST CASE MAP SIZE: `1000000` //! HOSTNAME: `runner-ynta1nyy-project-238-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz` -//! EXECUTION: ``, WASM-EXECUTION: `Compiled`, CHAIN: `Some("collectives-polkadot-dev")`, DB CACHE: 1024 +//! EXECUTION: ``, WASM-EXECUTION: `Compiled`, CHAIN: `Some("collectives-westend-dev")`, DB CACHE: 1024 // Executed Command: // ./target/production/polkadot-parachain // benchmark // pallet -// --chain=collectives-polkadot-dev +// --chain=collectives-westend-dev // --wasm-execution=compiled // --pallet=pallet_proxy // --no-storage-info @@ -37,7 +37,7 @@ // --repeat=20 // --json // --header=./file_header.txt -// --output=./parachains/runtimes/collectives/collectives-polkadot/src/weights/ +// --output=./parachains/runtimes/collectives/collectives-westend/src/weights/ #![cfg_attr(rustfmt, rustfmt_skip)] #![allow(unused_parens)] diff --git a/cumulus/parachains/runtimes/collectives/collectives-westend/src/weights/pallet_ranked_collective_ambassador_collective.rs b/cumulus/parachains/runtimes/collectives/collectives-westend/src/weights/pallet_ranked_collective_ambassador_collective.rs index a6372c4b89dc..3c73baf8388f 100644 --- a/cumulus/parachains/runtimes/collectives/collectives-westend/src/weights/pallet_ranked_collective_ambassador_collective.rs +++ b/cumulus/parachains/runtimes/collectives/collectives-westend/src/weights/pallet_ranked_collective_ambassador_collective.rs @@ -20,13 +20,13 @@ //! DATE: 2023-08-11, STEPS: `2`, REPEAT: `2`, LOW RANGE: `[]`, HIGH RANGE: `[]` //! WORST CASE MAP SIZE: `1000000` //! HOSTNAME: `cob`, CPU: `` -//! WASM-EXECUTION: `Compiled`, CHAIN: `Some("collectives-polkadot-dev")`, DB CACHE: 1024 +//! WASM-EXECUTION: `Compiled`, CHAIN: `Some("collectives-westend-dev")`, DB CACHE: 1024 // Executed Command: // target/release/polkadot-parachain // benchmark // pallet -// --chain=collectives-polkadot-dev +// --chain=collectives-westend-dev // --wasm-execution=compiled // --pallet=pallet_ranked_collective // --extrinsic=* @@ -34,7 +34,7 @@ // --repeat=2 // --json // --header=./file_header.txt -// --output=./parachains/runtimes/collectives/collectives-polkadot/src/weights/ +// --output=./parachains/runtimes/collectives/collectives-westend/src/weights/ #![cfg_attr(rustfmt, rustfmt_skip)] #![allow(unused_parens)] diff --git a/cumulus/parachains/runtimes/collectives/collectives-westend/src/weights/pallet_ranked_collective_fellowship_collective.rs b/cumulus/parachains/runtimes/collectives/collectives-westend/src/weights/pallet_ranked_collective_fellowship_collective.rs index 7515aecbb525..596c0e118f7c 100644 --- a/cumulus/parachains/runtimes/collectives/collectives-westend/src/weights/pallet_ranked_collective_fellowship_collective.rs +++ b/cumulus/parachains/runtimes/collectives/collectives-westend/src/weights/pallet_ranked_collective_fellowship_collective.rs @@ -20,13 +20,13 @@ //! DATE: 2023-08-11, STEPS: `2`, REPEAT: `2`, LOW RANGE: `[]`, HIGH RANGE: `[]` //! WORST CASE MAP SIZE: `1000000` //! HOSTNAME: `cob`, CPU: `` -//! WASM-EXECUTION: `Compiled`, CHAIN: `Some("collectives-polkadot-dev")`, DB CACHE: 1024 +//! WASM-EXECUTION: `Compiled`, CHAIN: `Some("collectives-westend-dev")`, DB CACHE: 1024 // Executed Command: // target/release/polkadot-parachain // benchmark // pallet -// --chain=collectives-polkadot-dev +// --chain=collectives-westend-dev // --wasm-execution=compiled // --pallet=pallet_ranked_collective // --extrinsic=* @@ -34,7 +34,7 @@ // --repeat=2 // --json // --header=./file_header.txt -// --output=./parachains/runtimes/collectives/collectives-polkadot/src/weights/ +// --output=./parachains/runtimes/collectives/collectives-westend/src/weights/ #![cfg_attr(rustfmt, rustfmt_skip)] #![allow(unused_parens)] diff --git a/cumulus/parachains/runtimes/collectives/collectives-westend/src/weights/pallet_referenda_ambassador_referenda.rs b/cumulus/parachains/runtimes/collectives/collectives-westend/src/weights/pallet_referenda_ambassador_referenda.rs index fdc451c5d31c..d644683819a2 100644 --- a/cumulus/parachains/runtimes/collectives/collectives-westend/src/weights/pallet_referenda_ambassador_referenda.rs +++ b/cumulus/parachains/runtimes/collectives/collectives-westend/src/weights/pallet_referenda_ambassador_referenda.rs @@ -20,13 +20,13 @@ //! DATE: 2023-08-11, STEPS: `2`, REPEAT: `2`, LOW RANGE: `[]`, HIGH RANGE: `[]` //! WORST CASE MAP SIZE: `1000000` //! HOSTNAME: `cob`, CPU: `` -//! WASM-EXECUTION: `Compiled`, CHAIN: `Some("collectives-polkadot-dev")`, DB CACHE: 1024 +//! WASM-EXECUTION: `Compiled`, CHAIN: `Some("collectives-westend-dev")`, DB CACHE: 1024 // Executed Command: // target/release/polkadot-parachain // benchmark // pallet -// --chain=collectives-polkadot-dev +// --chain=collectives-westend-dev // --wasm-execution=compiled // --pallet=pallet_referenda // --extrinsic=* @@ -34,7 +34,7 @@ // --repeat=2 // --json // --header=./file_header.txt -// --output=./parachains/runtimes/collectives/collectives-polkadot/src/weights/ +// --output=./parachains/runtimes/collectives/collectives-westend/src/weights/ #![cfg_attr(rustfmt, rustfmt_skip)] #![allow(unused_parens)] diff --git a/cumulus/parachains/runtimes/collectives/collectives-westend/src/weights/pallet_referenda_fellowship_referenda.rs b/cumulus/parachains/runtimes/collectives/collectives-westend/src/weights/pallet_referenda_fellowship_referenda.rs index 5b4aed06899f..24cc86681437 100644 --- a/cumulus/parachains/runtimes/collectives/collectives-westend/src/weights/pallet_referenda_fellowship_referenda.rs +++ b/cumulus/parachains/runtimes/collectives/collectives-westend/src/weights/pallet_referenda_fellowship_referenda.rs @@ -20,13 +20,13 @@ //! DATE: 2023-08-11, STEPS: `2`, REPEAT: `2`, LOW RANGE: `[]`, HIGH RANGE: `[]` //! WORST CASE MAP SIZE: `1000000` //! HOSTNAME: `cob`, CPU: `` -//! WASM-EXECUTION: `Compiled`, CHAIN: `Some("collectives-polkadot-dev")`, DB CACHE: 1024 +//! WASM-EXECUTION: `Compiled`, CHAIN: `Some("collectives-westend-dev")`, DB CACHE: 1024 // Executed Command: // target/release/polkadot-parachain // benchmark // pallet -// --chain=collectives-polkadot-dev +// --chain=collectives-westend-dev // --wasm-execution=compiled // --pallet=pallet_referenda // --extrinsic=* @@ -34,7 +34,7 @@ // --repeat=2 // --json // --header=./file_header.txt -// --output=./parachains/runtimes/collectives/collectives-polkadot/src/weights/ +// --output=./parachains/runtimes/collectives/collectives-westend/src/weights/ #![cfg_attr(rustfmt, rustfmt_skip)] #![allow(unused_parens)] diff --git a/cumulus/parachains/runtimes/collectives/collectives-westend/src/weights/pallet_salary_ambassador_salary.rs b/cumulus/parachains/runtimes/collectives/collectives-westend/src/weights/pallet_salary_ambassador_salary.rs index 0522420f2f51..3dd473501f3d 100644 --- a/cumulus/parachains/runtimes/collectives/collectives-westend/src/weights/pallet_salary_ambassador_salary.rs +++ b/cumulus/parachains/runtimes/collectives/collectives-westend/src/weights/pallet_salary_ambassador_salary.rs @@ -20,13 +20,13 @@ //! DATE: 2023-08-11, STEPS: `2`, REPEAT: `2`, LOW RANGE: `[]`, HIGH RANGE: `[]` //! WORST CASE MAP SIZE: `1000000` //! HOSTNAME: `cob`, CPU: `` -//! WASM-EXECUTION: `Compiled`, CHAIN: `Some("collectives-polkadot-dev")`, DB CACHE: 1024 +//! WASM-EXECUTION: `Compiled`, CHAIN: `Some("collectives-westend-dev")`, DB CACHE: 1024 // Executed Command: // target/release/polkadot-parachain // benchmark // pallet -// --chain=collectives-polkadot-dev +// --chain=collectives-westend-dev // --wasm-execution=compiled // --pallet=pallet_salary // --extrinsic=* @@ -34,7 +34,7 @@ // --repeat=2 // --json // --header=./file_header.txt -// --output=./parachains/runtimes/collectives/collectives-polkadot/src/weights/ +// --output=./parachains/runtimes/collectives/collectives-westend/src/weights/ #![cfg_attr(rustfmt, rustfmt_skip)] #![allow(unused_parens)] diff --git a/cumulus/parachains/runtimes/collectives/collectives-westend/src/weights/pallet_salary_fellowship_salary.rs b/cumulus/parachains/runtimes/collectives/collectives-westend/src/weights/pallet_salary_fellowship_salary.rs index 9bb7e68d3145..a187066e8043 100644 --- a/cumulus/parachains/runtimes/collectives/collectives-westend/src/weights/pallet_salary_fellowship_salary.rs +++ b/cumulus/parachains/runtimes/collectives/collectives-westend/src/weights/pallet_salary_fellowship_salary.rs @@ -20,13 +20,13 @@ //! DATE: 2023-08-11, STEPS: `2`, REPEAT: `2`, LOW RANGE: `[]`, HIGH RANGE: `[]` //! WORST CASE MAP SIZE: `1000000` //! HOSTNAME: `cob`, CPU: `` -//! WASM-EXECUTION: `Compiled`, CHAIN: `Some("collectives-polkadot-dev")`, DB CACHE: 1024 +//! WASM-EXECUTION: `Compiled`, CHAIN: `Some("collectives-westend-dev")`, DB CACHE: 1024 // Executed Command: // target/release/polkadot-parachain // benchmark // pallet -// --chain=collectives-polkadot-dev +// --chain=collectives-westend-dev // --wasm-execution=compiled // --pallet=pallet_salary // --extrinsic=* @@ -34,7 +34,7 @@ // --repeat=2 // --json // --header=./file_header.txt -// --output=./parachains/runtimes/collectives/collectives-polkadot/src/weights/ +// --output=./parachains/runtimes/collectives/collectives-westend/src/weights/ #![cfg_attr(rustfmt, rustfmt_skip)] #![allow(unused_parens)] diff --git a/cumulus/parachains/runtimes/collectives/collectives-westend/src/weights/pallet_scheduler.rs b/cumulus/parachains/runtimes/collectives/collectives-westend/src/weights/pallet_scheduler.rs index d30ac82bf059..02fab7883644 100644 --- a/cumulus/parachains/runtimes/collectives/collectives-westend/src/weights/pallet_scheduler.rs +++ b/cumulus/parachains/runtimes/collectives/collectives-westend/src/weights/pallet_scheduler.rs @@ -20,13 +20,13 @@ //! DATE: 2023-07-31, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` //! WORST CASE MAP SIZE: `1000000` //! HOSTNAME: `runner-ynta1nyy-project-238-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz` -//! EXECUTION: ``, WASM-EXECUTION: `Compiled`, CHAIN: `Some("collectives-polkadot-dev")`, DB CACHE: 1024 +//! EXECUTION: ``, WASM-EXECUTION: `Compiled`, CHAIN: `Some("collectives-westend-dev")`, DB CACHE: 1024 // Executed Command: // ./target/production/polkadot-parachain // benchmark // pallet -// --chain=collectives-polkadot-dev +// --chain=collectives-westend-dev // --wasm-execution=compiled // --pallet=pallet_scheduler // --no-storage-info @@ -37,7 +37,7 @@ // --repeat=20 // --json // --header=./file_header.txt -// --output=./parachains/runtimes/collectives/collectives-polkadot/src/weights/ +// --output=./parachains/runtimes/collectives/collectives-westend/src/weights/ #![cfg_attr(rustfmt, rustfmt_skip)] #![allow(unused_parens)] diff --git a/cumulus/parachains/runtimes/collectives/collectives-westend/src/weights/pallet_session.rs b/cumulus/parachains/runtimes/collectives/collectives-westend/src/weights/pallet_session.rs index 2af8ce29a196..f8248cfbb1ed 100644 --- a/cumulus/parachains/runtimes/collectives/collectives-westend/src/weights/pallet_session.rs +++ b/cumulus/parachains/runtimes/collectives/collectives-westend/src/weights/pallet_session.rs @@ -20,13 +20,13 @@ //! DATE: 2023-07-31, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` //! WORST CASE MAP SIZE: `1000000` //! HOSTNAME: `runner-ynta1nyy-project-238-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz` -//! EXECUTION: ``, WASM-EXECUTION: `Compiled`, CHAIN: `Some("collectives-polkadot-dev")`, DB CACHE: 1024 +//! EXECUTION: ``, WASM-EXECUTION: `Compiled`, CHAIN: `Some("collectives-westend-dev")`, DB CACHE: 1024 // Executed Command: // ./target/production/polkadot-parachain // benchmark // pallet -// --chain=collectives-polkadot-dev +// --chain=collectives-westend-dev // --wasm-execution=compiled // --pallet=pallet_session // --no-storage-info @@ -37,7 +37,7 @@ // --repeat=20 // --json // --header=./file_header.txt -// --output=./parachains/runtimes/collectives/collectives-polkadot/src/weights/ +// --output=./parachains/runtimes/collectives/collectives-westend/src/weights/ #![cfg_attr(rustfmt, rustfmt_skip)] #![allow(unused_parens)] diff --git a/cumulus/parachains/runtimes/collectives/collectives-westend/src/weights/pallet_timestamp.rs b/cumulus/parachains/runtimes/collectives/collectives-westend/src/weights/pallet_timestamp.rs index bc149ec63a17..91f3636d8f7f 100644 --- a/cumulus/parachains/runtimes/collectives/collectives-westend/src/weights/pallet_timestamp.rs +++ b/cumulus/parachains/runtimes/collectives/collectives-westend/src/weights/pallet_timestamp.rs @@ -20,13 +20,13 @@ //! DATE: 2023-07-31, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` //! WORST CASE MAP SIZE: `1000000` //! HOSTNAME: `runner-ynta1nyy-project-238-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz` -//! EXECUTION: ``, WASM-EXECUTION: `Compiled`, CHAIN: `Some("collectives-polkadot-dev")`, DB CACHE: 1024 +//! EXECUTION: ``, WASM-EXECUTION: `Compiled`, CHAIN: `Some("collectives-westend-dev")`, DB CACHE: 1024 // Executed Command: // ./target/production/polkadot-parachain // benchmark // pallet -// --chain=collectives-polkadot-dev +// --chain=collectives-westend-dev // --wasm-execution=compiled // --pallet=pallet_timestamp // --no-storage-info @@ -37,7 +37,7 @@ // --repeat=20 // --json // --header=./file_header.txt -// --output=./parachains/runtimes/collectives/collectives-polkadot/src/weights/ +// --output=./parachains/runtimes/collectives/collectives-westend/src/weights/ #![cfg_attr(rustfmt, rustfmt_skip)] #![allow(unused_parens)] diff --git a/cumulus/parachains/runtimes/collectives/collectives-westend/src/weights/pallet_utility.rs b/cumulus/parachains/runtimes/collectives/collectives-westend/src/weights/pallet_utility.rs index 5d6b0cb8285c..73e51a2739e1 100644 --- a/cumulus/parachains/runtimes/collectives/collectives-westend/src/weights/pallet_utility.rs +++ b/cumulus/parachains/runtimes/collectives/collectives-westend/src/weights/pallet_utility.rs @@ -20,13 +20,13 @@ //! DATE: 2023-07-31, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` //! WORST CASE MAP SIZE: `1000000` //! HOSTNAME: `runner-ynta1nyy-project-238-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz` -//! EXECUTION: ``, WASM-EXECUTION: `Compiled`, CHAIN: `Some("collectives-polkadot-dev")`, DB CACHE: 1024 +//! EXECUTION: ``, WASM-EXECUTION: `Compiled`, CHAIN: `Some("collectives-westend-dev")`, DB CACHE: 1024 // Executed Command: // ./target/production/polkadot-parachain // benchmark // pallet -// --chain=collectives-polkadot-dev +// --chain=collectives-westend-dev // --wasm-execution=compiled // --pallet=pallet_utility // --no-storage-info @@ -37,7 +37,7 @@ // --repeat=20 // --json // --header=./file_header.txt -// --output=./parachains/runtimes/collectives/collectives-polkadot/src/weights/ +// --output=./parachains/runtimes/collectives/collectives-westend/src/weights/ #![cfg_attr(rustfmt, rustfmt_skip)] #![allow(unused_parens)] diff --git a/cumulus/parachains/runtimes/collectives/collectives-westend/src/weights/pallet_xcm.rs b/cumulus/parachains/runtimes/collectives/collectives-westend/src/weights/pallet_xcm.rs index 738742b6108b..0b800c3274d1 100644 --- a/cumulus/parachains/runtimes/collectives/collectives-westend/src/weights/pallet_xcm.rs +++ b/cumulus/parachains/runtimes/collectives/collectives-westend/src/weights/pallet_xcm.rs @@ -20,13 +20,13 @@ //! DATE: 2023-07-31, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` //! WORST CASE MAP SIZE: `1000000` //! HOSTNAME: `runner-ynta1nyy-project-238-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz` -//! EXECUTION: ``, WASM-EXECUTION: `Compiled`, CHAIN: `Some("collectives-polkadot-dev")`, DB CACHE: 1024 +//! EXECUTION: ``, WASM-EXECUTION: `Compiled`, CHAIN: `Some("collectives-westend-dev")`, DB CACHE: 1024 // Executed Command: // ./target/production/polkadot-parachain // benchmark // pallet -// --chain=collectives-polkadot-dev +// --chain=collectives-westend-dev // --wasm-execution=compiled // --pallet=pallet_xcm // --no-storage-info @@ -37,7 +37,7 @@ // --repeat=20 // --json // --header=./file_header.txt -// --output=./parachains/runtimes/collectives/collectives-polkadot/src/weights/ +// --output=./parachains/runtimes/collectives/collectives-westend/src/weights/ #![cfg_attr(rustfmt, rustfmt_skip)] #![allow(unused_parens)] From f208bb361ba1eda65c38f9bdc8a79d5ea861957b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?D=C3=B3nal=20Murray?= Date: Tue, 3 Oct 2023 10:10:51 +0200 Subject: [PATCH 07/78] Add native runtimes back into polkadot-parachain --- cumulus/polkadot-parachain/Cargo.toml | 18 ++ .../src/chain_spec/glutton.rs | 81 ++++- cumulus/polkadot-parachain/src/cli.rs | 4 +- cumulus/polkadot-parachain/src/command.rs | 285 +++++++++++++++++- cumulus/polkadot-parachain/src/service.rs | 90 ++++++ .../tests/benchmark_storage_works.rs | 2 +- 6 files changed, 465 insertions(+), 15 deletions(-) diff --git a/cumulus/polkadot-parachain/Cargo.toml b/cumulus/polkadot-parachain/Cargo.toml index 5179e62e9ed4..c8ac38b3c827 100644 --- a/cumulus/polkadot-parachain/Cargo.toml +++ b/cumulus/polkadot-parachain/Cargo.toml @@ -23,12 +23,18 @@ serde_json = "1.0.107" # Local rococo-parachain-runtime = { path = "../parachains/runtimes/testing/rococo-parachain" } shell-runtime = { path = "../parachains/runtimes/starters/shell" } +glutton-runtime = { path = "../parachains/runtimes/glutton/glutton-kusama" } glutton-westend-runtime = { path = "../parachains/runtimes/glutton/glutton-westend" } seedling-runtime = { path = "../parachains/runtimes/starters/seedling" } +asset-hub-polkadot-runtime = { path = "../parachains/runtimes/assets/asset-hub-polkadot" } +asset-hub-kusama-runtime = { path = "../parachains/runtimes/assets/asset-hub-kusama" } asset-hub-westend-runtime = { path = "../parachains/runtimes/assets/asset-hub-westend" } +collectives-polkadot-runtime = { path = "../parachains/runtimes/collectives/collectives-polkadot" } collectives-westend-runtime = { path = "../parachains/runtimes/collectives/collectives-westend" } contracts-rococo-runtime = { path = "../parachains/runtimes/contracts/contracts-rococo" } bridge-hub-rococo-runtime = { path = "../parachains/runtimes/bridge-hubs/bridge-hub-rococo" } +bridge-hub-kusama-runtime = { path = "../parachains/runtimes/bridge-hubs/bridge-hub-kusama" } +bridge-hub-polkadot-runtime = { path = "../parachains/runtimes/bridge-hubs/bridge-hub-polkadot" } penpal-runtime = { path = "../parachains/runtimes/testing/penpal" } jsonrpsee = { version = "0.16.2", features = ["server"] } parachains-common = { path = "../parachains/common" } @@ -101,12 +107,18 @@ wait-timeout = "0.2" [features] default = [] runtime-benchmarks = [ + "asset-hub-kusama-runtime/runtime-benchmarks", + "asset-hub-polkadot-runtime/runtime-benchmarks", "asset-hub-westend-runtime/runtime-benchmarks", + "bridge-hub-kusama-runtime/runtime-benchmarks", + "bridge-hub-polkadot-runtime/runtime-benchmarks", "bridge-hub-rococo-runtime/runtime-benchmarks", + "collectives-polkadot-runtime/runtime-benchmarks", "collectives-westend-runtime/runtime-benchmarks", "contracts-rococo-runtime/runtime-benchmarks", "frame-benchmarking-cli/runtime-benchmarks", "frame-benchmarking/runtime-benchmarks", + "glutton-runtime/runtime-benchmarks", "glutton-westend-runtime/runtime-benchmarks", "parachains-common/runtime-benchmarks", "penpal-runtime/runtime-benchmarks", @@ -118,10 +130,16 @@ runtime-benchmarks = [ "sp-runtime/runtime-benchmarks", ] try-runtime = [ + "asset-hub-kusama-runtime/try-runtime", + "asset-hub-polkadot-runtime/try-runtime", "asset-hub-westend-runtime/try-runtime", + "bridge-hub-kusama-runtime/try-runtime", + "bridge-hub-polkadot-runtime/try-runtime", "bridge-hub-rococo-runtime/try-runtime", + "collectives-polkadot-runtime/try-runtime", "collectives-westend-runtime/try-runtime", "contracts-rococo-runtime/try-runtime", + "glutton-runtime/try-runtime", "glutton-westend-runtime/try-runtime", "penpal-runtime/try-runtime", "polkadot-cli/try-runtime", diff --git a/cumulus/polkadot-parachain/src/chain_spec/glutton.rs b/cumulus/polkadot-parachain/src/chain_spec/glutton.rs index 5e1b1d67df27..7bd2df4f3ba9 100644 --- a/cumulus/polkadot-parachain/src/chain_spec/glutton.rs +++ b/cumulus/polkadot-parachain/src/chain_spec/glutton.rs @@ -39,7 +39,7 @@ pub fn glutton_development_config(para_id: ParaId) -> GluttonChainSpec { None, None, None, - Extensions { relay_chain: "westend-dev".into(), para_id: para_id.into() }, + Extensions { relay_chain: "kusama-dev".into(), para_id: para_id.into() }, ) } @@ -64,7 +64,7 @@ pub fn glutton_local_config(para_id: ParaId) -> GluttonChainSpec { None, None, None, - Extensions { relay_chain: "westend-local".into(), para_id: para_id.into() }, + Extensions { relay_chain: "kusama-local".into(), para_id: para_id.into() }, ) } @@ -76,7 +76,7 @@ pub fn glutton_config(para_id: ParaId) -> GluttonChainSpec { // Name format!("Glutton {}", para_id).as_str(), // ID - format!("glutton-westend-{}", para_id).as_str(), + format!("glutton-kusama-{}", para_id).as_str(), ChainType::Live, move || { glutton_genesis( @@ -90,10 +90,10 @@ pub fn glutton_config(para_id: ParaId) -> GluttonChainSpec { Vec::new(), None, // Protocol ID - Some(format!("glutton-westend-{}", para_id).as_str()), + Some(format!("glutton-kusama-{}", para_id).as_str()), None, Some(properties), - Extensions { relay_chain: "westend".into(), para_id: para_id.into() }, + Extensions { relay_chain: "kusama".into(), para_id: para_id.into() }, ) } @@ -123,3 +123,74 @@ fn glutton_genesis( }, } } + +pub fn glutton_westend_development_config(para_id: ParaId) -> GluttonChainSpec { + GluttonChainSpec::from_genesis( + // Name + "Glutton Development", + // ID + "glutton_dev", + ChainType::Local, + move || glutton_genesis(para_id, vec![get_collator_keys_from_seed::("Alice")]), + Vec::new(), + None, + None, + None, + None, + Extensions { relay_chain: "westend-dev".into(), para_id: para_id.into() }, + ) +} + +pub fn glutton_westend_local_config(para_id: ParaId) -> GluttonChainSpec { + GluttonChainSpec::from_genesis( + // Name + "Glutton Local", + // ID + "glutton_local", + ChainType::Local, + move || { + glutton_genesis( + para_id, + vec![ + get_collator_keys_from_seed::("Alice"), + get_collator_keys_from_seed::("Bob"), + ], + ) + }, + Vec::new(), + None, + None, + None, + None, + Extensions { relay_chain: "westend-local".into(), para_id: para_id.into() }, + ) +} + +pub fn glutton_westend_config(para_id: ParaId) -> GluttonChainSpec { + let mut properties = sc_chain_spec::Properties::new(); + properties.insert("ss58Format".into(), 2.into()); + + GluttonChainSpec::from_genesis( + // Name + format!("Glutton {}", para_id).as_str(), + // ID + format!("glutton-westend-{}", para_id).as_str(), + ChainType::Live, + move || { + glutton_genesis( + para_id, + vec![ + get_collator_keys_from_seed::("Alice"), + get_collator_keys_from_seed::("Bob"), + ], + ) + }, + Vec::new(), + None, + // Protocol ID + Some(format!("glutton-westend-{}", para_id).as_str()), + None, + Some(properties), + Extensions { relay_chain: "westend".into(), para_id: para_id.into() }, + ) +} diff --git a/cumulus/polkadot-parachain/src/cli.rs b/cumulus/polkadot-parachain/src/cli.rs index 85dc25631cc1..ff410d14394b 100644 --- a/cumulus/polkadot-parachain/src/cli.rs +++ b/cumulus/polkadot-parachain/src/cli.rs @@ -64,9 +64,9 @@ pub enum Subcommand { const AFTER_HELP_EXAMPLE: &str = color_print::cstr!( r#"Examples: polkadot-parachain --chain asset-hub-westend --sync warp -- --chain polkadot --sync warp - Launch a warp-syncing full node of the Asset Hub parachain on the Polkadot Relay Chain. + Launch a warp-syncing full node of the Asset Hub parachain on the Westend Relay Chain. polkadot-parachain --chain asset-hub-westend --sync warp --relay-chain-rpc-url ws://rpc.example.com -- --chain polkadot - Launch a warp-syncing full node of the Asset Hub parachain on the Polkadot Relay Chain. + Launch a warp-syncing full node of the Asset Hub parachain on the Westend Relay Chain. Uses ws://rpc.example.com as remote relay chain node. "# ); diff --git a/cumulus/polkadot-parachain/src/command.rs b/cumulus/polkadot-parachain/src/command.rs index 2b47937d60f1..99a9f381daa2 100644 --- a/cumulus/polkadot-parachain/src/command.rs +++ b/cumulus/polkadot-parachain/src/command.rs @@ -40,10 +40,14 @@ enum Runtime { Default, Shell, Seedling, + AssetHubPolkadot, + AssetHubKusama, AssetHubWestend, Penpal(ParaId), ContractsRococo, + CollectivesPolkadot, CollectivesWestend, + Glutton, GluttonWestend, BridgeHub(chain_spec::bridge_hubs::BridgeHubRuntimeType), } @@ -83,12 +87,18 @@ fn runtime(id: &str) -> Runtime { Runtime::Shell } else if id.starts_with("seedling") { Runtime::Seedling + } else if id.starts_with("asset-hub-polkadot") | id.starts_with("statemint") { + Runtime::AssetHubPolkadot + } else if id.starts_with("asset-hub-kusama") | id.starts_with("statemine") { + Runtime::AssetHubKusama } else if id.starts_with("asset-hub-westend") | id.starts_with("westmint") { Runtime::AssetHubWestend } else if id.starts_with("penpal") { Runtime::Penpal(para_id.unwrap_or(ParaId::new(0))) } else if id.starts_with("contracts-rococo") { Runtime::ContractsRococo + } else if id.starts_with("collectives-polkadot") { + Runtime::CollectivesPolkadot } else if id.starts_with("collectives-westend") { Runtime::CollectivesWestend } else if id.starts_with(chain_spec::bridge_hubs::BridgeHubRuntimeType::ID_PREFIX) { @@ -98,6 +108,8 @@ fn runtime(id: &str) -> Runtime { ) } else if id.starts_with("glutton-westend") { Runtime::GluttonWestend + } else if id.starts_with("glutton") { + Runtime::Glutton } else { log::warn!("No specific runtime was recognized for ChainSpec's id: '{}', so Runtime::default() will be used", id); Runtime::default() @@ -127,6 +139,34 @@ fn load_spec(id: &str) -> std::result::Result, String> { "shell" => Box::new(chain_spec::shell::get_shell_chain_spec()), "seedling" => Box::new(chain_spec::seedling::get_seedling_chain_spec()), + // -- Asset Hub Polkadot + "asset-hub-polkadot-dev" | "statemint-dev" => + Box::new(chain_spec::asset_hubs::asset_hub_polkadot_development_config()), + "asset-hub-polkadot-local" | "statemint-local" => + Box::new(chain_spec::asset_hubs::asset_hub_polkadot_local_config()), + // the chain spec as used for generating the upgrade genesis values + "asset-hub-polkadot-genesis" | "statemint-genesis" => + Box::new(chain_spec::asset_hubs::asset_hub_polkadot_config()), + // the shell-based chain spec as used for syncing + "asset-hub-polkadot" | "statemint" => + Box::new(chain_spec::asset_hubs::AssetHubPolkadotChainSpec::from_json_bytes( + &include_bytes!("../chain-specs/asset-hub-polkadot.json")[..], + )?), + + // -- Asset Hub Kusama + "asset-hub-kusama-dev" | "statemine-dev" => + Box::new(chain_spec::asset_hubs::asset_hub_kusama_development_config()), + "asset-hub-kusama-local" | "statemine-local" => + Box::new(chain_spec::asset_hubs::asset_hub_kusama_local_config()), + // the chain spec as used for generating the upgrade genesis values + "asset-hub-kusama-genesis" | "statemine-genesis" => + Box::new(chain_spec::asset_hubs::asset_hub_kusama_config()), + // the shell-based chain spec as used for syncing + "asset-hub-kusama" | "statemine" => + Box::new(chain_spec::asset_hubs::AssetHubKusamaChainSpec::from_json_bytes( + &include_bytes!("../chain-specs/asset-hub-kusama.json")[..], + )?), + // -- Asset Hub Westend "asset-hub-westend-dev" | "westmint-dev" => Box::new(chain_spec::asset_hubs::asset_hub_westend_development_config()), @@ -141,6 +181,20 @@ fn load_spec(id: &str) -> std::result::Result, String> { &include_bytes!("../chain-specs/asset-hub-westend.json")[..], )?), + // -- Polkadot Collectives + "collectives-polkadot-dev" => + Box::new(chain_spec::collectives::collectives_polkadot_development_config()), + "collectives-polkadot-local" => + Box::new(chain_spec::collectives::collectives_polkadot_local_config()), + "collectives-polkadot" => + Box::new(chain_spec::collectives::CollectivesPolkadotChainSpec::from_json_bytes( + &include_bytes!("../chain-specs/collectives-polkadot.json")[..], + )?), + "collectives-westend" => + Box::new(chain_spec::collectives::CollectivesPolkadotChainSpec::from_json_bytes( + &include_bytes!("../chain-specs/collectives-westend.json")[..], + )?), + // -- Westend Collectives "collectives-westend-dev" => Box::new(chain_spec::collectives::collectives_polkadot_development_config()), @@ -172,20 +226,42 @@ fn load_spec(id: &str) -> std::result::Result, String> { .load_config()?, // -- Penpall + "penpal-kusama" => Box::new(chain_spec::penpal::get_penpal_chain_spec( + para_id.expect("Must specify parachain id"), + "kusama-local", + )), + "penpal-polkadot" => Box::new(chain_spec::penpal::get_penpal_chain_spec( + para_id.expect("Must specify parachain id"), + "polkadot-local", + )), + + // -- Penpal Westend "penpal-westend" => Box::new(chain_spec::penpal::get_penpal_chain_spec( para_id.expect("Must specify parachain id"), "westend-local", )), + // -- Glutton + "glutton-kusama-dev" => Box::new(chain_spec::glutton::glutton_development_config( + para_id.expect("Must specify parachain id"), + )), + "glutton-kusama-local" => Box::new(chain_spec::glutton::glutton_local_config( + para_id.expect("Must specify parachain id"), + )), + // the chain spec as used for generating the upgrade genesis values + "glutton-kusama-genesis" => Box::new(chain_spec::glutton::glutton_config( + para_id.expect("Must specify parachain id"), + )), + // -- Glutton Westend - "glutton-westend-dev" => Box::new(chain_spec::glutton::glutton_development_config( + "glutton-westend-dev" => Box::new(chain_spec::glutton::glutton_westend_development_config( para_id.expect("Must specify parachain id"), )), - "glutton-westend-local" => Box::new(chain_spec::glutton::glutton_local_config( + "glutton-westend-local" => Box::new(chain_spec::glutton::glutton_westend_local_config( para_id.expect("Must specify parachain id"), )), // the chain spec as used for generating the upgrade genesis values - "glutton-westend-genesis" => Box::new(chain_spec::glutton::glutton_config( + "glutton-westend-genesis" => Box::new(chain_spec::glutton::glutton_westend_config( para_id.expect("Must specify parachain id"), )), @@ -199,9 +275,17 @@ fn load_spec(id: &str) -> std::result::Result, String> { path => { let path: PathBuf = path.into(); match path.runtime() { + Runtime::AssetHubPolkadot => Box::new( + chain_spec::asset_hubs::AssetHubPolkadotChainSpec::from_json_file(path)?, + ), + Runtime::AssetHubKusama => + Box::new(chain_spec::asset_hubs::AssetHubKusamaChainSpec::from_json_file(path)?), Runtime::AssetHubWestend => Box::new( chain_spec::asset_hubs::AssetHubWestendChainSpec::from_json_file(path)?, ), + Runtime::CollectivesPolkadot | Runtime::CollectivesWestend => Box::new( + chain_spec::collectives::CollectivesPolkadotChainSpec::from_json_file(path)?, + ), Runtime::CollectivesWestend => Box::new( chain_spec::collectives::CollectivesWestendChainSpec::from_json_file(path)?, ), @@ -215,6 +299,8 @@ fn load_spec(id: &str) -> std::result::Result, String> { bridge_hub_runtime_type.chain_spec_from_json_file(path)?, Runtime::Penpal(_para_id) => Box::new(chain_spec::penpal::PenpalChainSpec::from_json_file(path)?), + Runtime::Glutton => + Box::new(chain_spec::glutton::GluttonChainSpec::from_json_file(path)?), Runtime::GluttonWestend => Box::new(chain_spec::glutton::GluttonChainSpec::from_json_file(path)?), Runtime::Default => Box::new( @@ -227,17 +313,29 @@ fn load_spec(id: &str) -> std::result::Result, String> { /// Extracts the normalized chain id and parachain id from the input chain id. /// (H/T to Phala for the idea) -/// E.g. "penpal-westend-2004" yields ("penpal-westend", Some(2004)) +/// E.g. "penpal-kusama-2004" yields ("penpal-kusama", Some(2004)) fn extract_parachain_id(id: &str) -> (&str, &str, Option) { + const KUSAMA_TEST_PARA_PREFIX: &str = "penpal-kusama-"; + const POLKADOT_TEST_PARA_PREFIX: &str = "penpal-polkadot-"; const WESTEND_TEST_PARA_PREFIX: &str = "penpal-westend-"; - const GLUTTON_PARA_DEV_PREFIX: &str = "glutton-westend-dev-"; - const GLUTTON_PARA_LOCAL_PREFIX: &str = "glutton-westend-local-"; - const GLUTTON_PARA_GENESIS_PREFIX: &str = "glutton-westend-genesis-"; + const GLUTTON_PARA_DEV_PREFIX: &str = "glutton-kusama-dev-"; + const GLUTTON_PARA_LOCAL_PREFIX: &str = "glutton-kusama-local-"; + const GLUTTON_PARA_GENESIS_PREFIX: &str = "glutton-kusama-genesis-"; + + const GLUTTON_WESTEND_PARA_DEV_PREFIX: &str = "glutton-westend-dev-"; + const GLUTTON_WESTEND_PARA_LOCAL_PREFIX: &str = "glutton-westend-local-"; + const GLUTTON_WESTEND_PARA_GENESIS_PREFIX: &str = "glutton-westend-genesis-"; let (norm_id, orig_id, para) = if let Some(suffix) = id.strip_prefix(WESTEND_TEST_PARA_PREFIX) { let para_id: u32 = suffix.parse().expect("Invalid parachain-id suffix"); (&id[..WESTEND_TEST_PARA_PREFIX.len() - 1], id, Some(para_id)) + let (norm_id, orig_id, para) = if let Some(suffix) = id.strip_prefix(KUSAMA_TEST_PARA_PREFIX) { + let para_id: u32 = suffix.parse().expect("Invalid parachain-id suffix"); + (&id[..KUSAMA_TEST_PARA_PREFIX.len() - 1], id, Some(para_id)) + } else if let Some(suffix) = id.strip_prefix(POLKADOT_TEST_PARA_PREFIX) { + let para_id: u32 = suffix.parse().expect("Invalid parachain-id suffix"); + (&id[..POLKADOT_TEST_PARA_PREFIX.len() - 1], id, Some(para_id)) } else if let Some(suffix) = id.strip_prefix(GLUTTON_PARA_DEV_PREFIX) { let para_id: u32 = suffix.parse().expect("Invalid parachain-id suffix"); (&id[..GLUTTON_PARA_DEV_PREFIX.len() - 1], id, Some(para_id)) @@ -247,6 +345,15 @@ fn extract_parachain_id(id: &str) -> (&str, &str, Option) { } else if let Some(suffix) = id.strip_prefix(GLUTTON_PARA_GENESIS_PREFIX) { let para_id: u32 = suffix.parse().expect("Invalid parachain-id suffix"); (&id[..GLUTTON_PARA_GENESIS_PREFIX.len() - 1], id, Some(para_id)) + } else if let Some(suffix) = id.strip_prefix(GLUTTON_WESTEND_PARA_DEV_PREFIX) { + let para_id: u32 = suffix.parse().expect("Invalid parachain-id suffix"); + (&id[..GLUTTON_WESTEND_PARA_DEV_PREFIX.len() - 1], id, Some(para_id)) + } else if let Some(suffix) = id.strip_prefix(GLUTTON_WESTEND_PARA_LOCAL_PREFIX) { + let para_id: u32 = suffix.parse().expect("Invalid parachain-id suffix"); + (&id[..GLUTTON_WESTEND_PARA_LOCAL_PREFIX.len() - 1], id, Some(para_id)) + } else if let Some(suffix) = id.strip_prefix(GLUTTON_WESTEND_PARA_GENESIS_PREFIX) { + let para_id: u32 = suffix.parse().expect("Invalid parachain-id suffix"); + (&id[..GLUTTON_WESTEND_PARA_GENESIS_PREFIX.len() - 1], id, Some(para_id)) } else { (id, id, None) }; @@ -330,6 +437,13 @@ impl SubstrateCli for RelayChainCli { macro_rules! construct_partials { ($config:expr, |$partials:ident| $code:expr) => { match $config.chain_spec.runtime() { + Runtime::AssetHubKusama => { + let $partials = new_partial::( + &$config, + crate::service::aura_build_import_queue::<_, AuraId>, + )?; + $code + }, Runtime::AssetHubWestend => { let $partials = new_partial::( &$config, @@ -337,7 +451,32 @@ macro_rules! construct_partials { )?; $code }, + Runtime::AssetHubPolkadot => { + let $partials = new_partial::( + &$config, + crate::service::aura_build_import_queue::<_, AssetHubPolkadotAuraId>, + )?; + $code + }, Runtime::BridgeHub(bridge_hub_runtime_type) => match bridge_hub_runtime_type { + chain_spec::bridge_hubs::BridgeHubRuntimeType::Polkadot | + chain_spec::bridge_hubs::BridgeHubRuntimeType::PolkadotLocal | + chain_spec::bridge_hubs::BridgeHubRuntimeType::PolkadotDevelopment => { + let $partials = new_partial::( + &$config, + crate::service::aura_build_import_queue::<_, AuraId>, + )?; + $code + }, + chain_spec::bridge_hubs::BridgeHubRuntimeType::Kusama | + chain_spec::bridge_hubs::BridgeHubRuntimeType::KusamaLocal | + chain_spec::bridge_hubs::BridgeHubRuntimeType::KusamaDevelopment => { + let $partials = new_partial::( + &$config, + crate::service::aura_build_import_queue::<_, AuraId>, + )?; + $code + }, chain_spec::bridge_hubs::BridgeHubRuntimeType::Westend => { let $partials = new_partial::( &$config, @@ -405,6 +544,13 @@ macro_rules! construct_partials { )?; $code }, + Runtime::Glutton => { + let $partials = new_partial::( + &$config, + crate::service::shell_build_import_queue, + )?; + $code + }, } }; } @@ -423,6 +569,36 @@ macro_rules! construct_async_run { { $( $code )* }.map(|v| (v, task_manager)) }) }, + Runtime::AssetHubKusama => { + runner.async_run(|$config| { + let $components = new_partial::( + &$config, + crate::service::aura_build_import_queue::<_, AuraId>, + )?; + let task_manager = $components.task_manager; + { $( $code )* }.map(|v| (v, task_manager)) + }) + }, + Runtime::AssetHubPolkadot => { + runner.async_run(|$config| { + let $components = new_partial::( + &$config, + crate::service::aura_build_import_queue::<_, AssetHubPolkadotAuraId>, + )?; + let task_manager = $components.task_manager; + { $( $code )* }.map(|v| (v, task_manager)) + }) + }, + Runtime::CollectivesPolkadot | Runtime::CollectivesWestend => { + runner.async_run(|$config| { + let $components = new_partial::( + &$config, + crate::service::aura_build_import_queue::<_, AuraId>, + )?; + let task_manager = $components.task_manager; + { $( $code )* }.map(|v| (v, task_manager)) + }) + }, Runtime::CollectivesWestend => { runner.async_run(|$config| { let $components = new_partial::( @@ -465,6 +641,32 @@ macro_rules! construct_async_run { }, Runtime::BridgeHub(bridge_hub_runtime_type) => { match bridge_hub_runtime_type { + chain_spec::bridge_hubs::BridgeHubRuntimeType::Polkadot | + chain_spec::bridge_hubs::BridgeHubRuntimeType::PolkadotLocal | + chain_spec::bridge_hubs::BridgeHubRuntimeType::PolkadotDevelopment => { + runner.async_run(|$config| { + let $components = new_partial::( + &$config, + crate::service::aura_build_import_queue::<_, AuraId>, + )?; + + let task_manager = $components.task_manager; + { $( $code )* }.map(|v| (v, task_manager)) + }) + }, + chain_spec::bridge_hubs::BridgeHubRuntimeType::Kusama | + chain_spec::bridge_hubs::BridgeHubRuntimeType::KusamaLocal | + chain_spec::bridge_hubs::BridgeHubRuntimeType::KusamaDevelopment => { + runner.async_run(|$config| { + let $components = new_partial::( + &$config, + crate::service::aura_build_import_queue::<_, AuraId>, + )?; + + let task_manager = $components.task_manager; + { $( $code )* }.map(|v| (v, task_manager)) + }) + }, chain_spec::bridge_hubs::BridgeHubRuntimeType::Westend => { runner.async_run(|$config| { let $components = new_partial::( @@ -516,6 +718,16 @@ macro_rules! construct_async_run { { $( $code )* }.map(|v| (v, task_manager)) }) }, + Runtime::Glutton => { + runner.async_run(|$config| { + let $components = new_partial::( + &$config, + crate::service::shell_build_import_queue, + )?; + let task_manager = $components.task_manager; + { $( $code )* }.map(|v| (v, task_manager)) + }) + }, Runtime::GluttonWestend => { runner.async_run(|$config| { let $components = new_partial::( @@ -647,6 +859,8 @@ pub fn run() -> Result<()> { // that both file paths exist, the node will exit, as the user must decide (by // deleting one path) the information that they want to use as their DB. let old_name = match config.chain_spec.id() { + "asset-hub-polkadot" => Some("statemint"), + "asset-hub-kusama" => Some("statemine"), "asset-hub-westend" => Some("westmint"), "asset-hub-rococo" => Some("rockmine"), _ => None, @@ -702,6 +916,20 @@ pub fn run() -> Result<()> { info!("Is collating: {}", if config.role.is_authority() { "yes" } else { "no" }); match config.chain_spec.runtime() { + Runtime::AssetHubPolkadot => crate::service::start_generic_aura_node::< + asset_hub_polkadot_runtime::RuntimeApi, + AssetHubPolkadotAuraId, + >(config, polkadot_config, collator_options, id, hwbench) + .await + .map(|r| r.0) + .map_err(Into::into), + Runtime::AssetHubKusama => crate::service::start_generic_aura_node::< + asset_hub_kusama_runtime::RuntimeApi, + AuraId, + >(config, polkadot_config, collator_options, id, hwbench) + .await + .map(|r| r.0) + .map_err(Into::into), Runtime::AssetHubWestend => crate::service::start_generic_aura_node::< asset_hub_westend_runtime::RuntimeApi, AuraId, @@ -709,6 +937,14 @@ pub fn run() -> Result<()> { .await .map(|r| r.0) .map_err(Into::into), + Runtime::CollectivesPolkadot | Runtime::CollectivesWestend => + crate::service::start_generic_aura_node::< + collectives_polkadot_runtime::RuntimeApi, + AuraId, + >(config, polkadot_config, collator_options, id, hwbench) + .await + .map(|r| r.0) + .map_err(Into::into), Runtime::CollectivesWestend => crate::service::start_generic_aura_node::< collectives_westend_runtime::RuntimeApi, @@ -745,6 +981,24 @@ pub fn run() -> Result<()> { .map(|r| r.0) .map_err(Into::into), Runtime::BridgeHub(bridge_hub_runtime_type) => match bridge_hub_runtime_type { + chain_spec::bridge_hubs::BridgeHubRuntimeType::Polkadot | + chain_spec::bridge_hubs::BridgeHubRuntimeType::PolkadotLocal | + chain_spec::bridge_hubs::BridgeHubRuntimeType::PolkadotDevelopment => + crate::service::start_generic_aura_node::< + chain_spec::bridge_hubs::polkadot::RuntimeApi, + AuraId, + >(config, polkadot_config, collator_options, id, hwbench) + .await + .map(|r| r.0), + chain_spec::bridge_hubs::BridgeHubRuntimeType::Kusama | + chain_spec::bridge_hubs::BridgeHubRuntimeType::KusamaLocal | + chain_spec::bridge_hubs::BridgeHubRuntimeType::KusamaDevelopment => + crate::service::start_generic_aura_node::< + chain_spec::bridge_hubs::kusama::RuntimeApi, + AuraId, + >(config, polkadot_config, collator_options, id, hwbench) + .await + .map(|r| r.0), chain_spec::bridge_hubs::BridgeHubRuntimeType::Westend => crate::service::start_generic_aura_node::< chain_spec::bridge_hubs::westend::RuntimeApi, @@ -782,6 +1036,17 @@ pub fn run() -> Result<()> { .await .map(|r| r.0) .map_err(Into::into), + Runtime::Glutton => + crate::service::start_shell_node::( + config, + polkadot_config, + collator_options, + id, + hwbench, + ) + .await + .map(|r| r.0) + .map_err(Into::into), Runtime::GluttonWestend => crate::service::start_shell_node::( config, @@ -1025,6 +1290,12 @@ mod tests { ); assert_eq!(Runtime::Default, path.runtime()); + let path = store_configuration( + &temp_dir, + Box::new(crate::chain_spec::asset_hubs::asset_hub_kusama_local_config()), + ); + assert_eq!(Runtime::AssetHubKusama, path.runtime()); + let path = store_configuration( &temp_dir, Box::new(crate::chain_spec::contracts::contracts_rococo_local_config()), diff --git a/cumulus/polkadot-parachain/src/service.rs b/cumulus/polkadot-parachain/src/service.rs index 232c62a9c242..9e06376c6eec 100644 --- a/cumulus/polkadot-parachain/src/service.rs +++ b/cumulus/polkadot-parachain/src/service.rs @@ -91,6 +91,36 @@ impl sc_executor::NativeExecutionDispatch for ShellRuntimeExecutor { } } +/// Native Asset Hub Polkadot (Statemint) executor instance. +pub struct AssetHubPolkadotRuntimeExecutor; + +impl sc_executor::NativeExecutionDispatch for AssetHubPolkadotRuntimeExecutor { + type ExtendHostFunctions = frame_benchmarking::benchmarking::HostFunctions; + + fn dispatch(method: &str, data: &[u8]) -> Option> { + asset_hub_polkadot_runtime::api::dispatch(method, data) + } + + fn native_version() -> sc_executor::NativeVersion { + asset_hub_polkadot_runtime::native_version() + } +} + +/// Native Asset Hub Kusama (Statemine) executor instance. +pub struct AssetHubKusamaExecutor; + +impl sc_executor::NativeExecutionDispatch for AssetHubKusamaExecutor { + type ExtendHostFunctions = frame_benchmarking::benchmarking::HostFunctions; + + fn dispatch(method: &str, data: &[u8]) -> Option> { + asset_hub_kusama_runtime::api::dispatch(method, data) + } + + fn native_version() -> sc_executor::NativeVersion { + asset_hub_kusama_runtime::native_version() + } +} + /// Native Asset Hub Westend (Westmint) executor instance. pub struct AssetHubWestendExecutor; @@ -106,9 +136,39 @@ impl sc_executor::NativeExecutionDispatch for AssetHubWestendExecutor { } } +/// Native Polkadot Collectives executor instance. +pub struct CollectivesPolkadotRuntimeExecutor; + /// Native Westend Collectives executor instance. pub struct CollectivesWestendRuntimeExecutor; +impl sc_executor::NativeExecutionDispatch for CollectivesPolkadotRuntimeExecutor { + type ExtendHostFunctions = frame_benchmarking::benchmarking::HostFunctions; + + fn dispatch(method: &str, data: &[u8]) -> Option> { + collectives_polkadot_runtime::api::dispatch(method, data) + } + + fn native_version() -> sc_executor::NativeVersion { + collectives_polkadot_runtime::native_version() + } +} + +/// Native BridgeHubPolkadot executor instance. +pub struct BridgeHubPolkadotRuntimeExecutor; + +impl sc_executor::NativeExecutionDispatch for BridgeHubPolkadotRuntimeExecutor { + type ExtendHostFunctions = frame_benchmarking::benchmarking::HostFunctions; + + fn dispatch(method: &str, data: &[u8]) -> Option> { + bridge_hub_polkadot_runtime::api::dispatch(method, data) + } + + fn native_version() -> sc_executor::NativeVersion { + bridge_hub_polkadot_runtime::native_version() + } +} + impl sc_executor::NativeExecutionDispatch for CollectivesWestendRuntimeExecutor { type ExtendHostFunctions = frame_benchmarking::benchmarking::HostFunctions; @@ -121,6 +181,21 @@ impl sc_executor::NativeExecutionDispatch for CollectivesWestendRuntimeExecutor } } +/// Native BridgeHubKusama executor instance. +pub struct BridgeHubKusamaRuntimeExecutor; + +impl sc_executor::NativeExecutionDispatch for BridgeHubKusamaRuntimeExecutor { + type ExtendHostFunctions = frame_benchmarking::benchmarking::HostFunctions; + + fn dispatch(method: &str, data: &[u8]) -> Option> { + bridge_hub_kusama_runtime::api::dispatch(method, data) + } + + fn native_version() -> sc_executor::NativeVersion { + bridge_hub_kusama_runtime::native_version() + } +} + /// Native BridgeHubRococo executor instance. pub struct BridgeHubRococoRuntimeExecutor; @@ -151,9 +226,24 @@ impl sc_executor::NativeExecutionDispatch for ContractsRococoRuntimeExecutor { } } +/// Native Glutton executor instance. +pub struct GluttonRuntimeExecutor; + /// Native Westend Glutton executor instance. pub struct GluttonWestendRuntimeExecutor; +impl sc_executor::NativeExecutionDispatch for GluttonRuntimeExecutor { + type ExtendHostFunctions = frame_benchmarking::benchmarking::HostFunctions; + + fn dispatch(method: &str, data: &[u8]) -> Option> { + shell_runtime::api::dispatch(method, data) + } + + fn native_version() -> sc_executor::NativeVersion { + shell_runtime::native_version() + } +} + impl sc_executor::NativeExecutionDispatch for GluttonWestendRuntimeExecutor { type ExtendHostFunctions = frame_benchmarking::benchmarking::HostFunctions; diff --git a/cumulus/polkadot-parachain/tests/benchmark_storage_works.rs b/cumulus/polkadot-parachain/tests/benchmark_storage_works.rs index 227168c88b7b..c2850b64e458 100644 --- a/cumulus/polkadot-parachain/tests/benchmark_storage_works.rs +++ b/cumulus/polkadot-parachain/tests/benchmark_storage_works.rs @@ -24,7 +24,7 @@ use std::{ use tempfile::tempdir; /// The runtimes that this command supports. -static RUNTIMES: [&str] = ["asset-hub-westend"]; +static RUNTIMES: [&str; 3] = ["asset-hub-westend", "asset-hub-kusama", "asset-hub-polkadot"]; /// The `benchmark storage` command works for the dev runtimes. #[test] From b1de92dce723524061a5166ab8839dc980a7a0d2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?D=C3=B3nal=20Murray?= Date: Tue, 3 Oct 2023 11:05:17 +0200 Subject: [PATCH 08/78] Fix copy pasta --- cumulus/polkadot-parachain/src/command.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cumulus/polkadot-parachain/src/command.rs b/cumulus/polkadot-parachain/src/command.rs index 99a9f381daa2..5e33bbabc52c 100644 --- a/cumulus/polkadot-parachain/src/command.rs +++ b/cumulus/polkadot-parachain/src/command.rs @@ -330,7 +330,7 @@ fn extract_parachain_id(id: &str) -> (&str, &str, Option) { let (norm_id, orig_id, para) = if let Some(suffix) = id.strip_prefix(WESTEND_TEST_PARA_PREFIX) { let para_id: u32 = suffix.parse().expect("Invalid parachain-id suffix"); (&id[..WESTEND_TEST_PARA_PREFIX.len() - 1], id, Some(para_id)) - let (norm_id, orig_id, para) = if let Some(suffix) = id.strip_prefix(KUSAMA_TEST_PARA_PREFIX) { + } else if let Some(suffix) = id.strip_prefix(KUSAMA_TEST_PARA_PREFIX) { let para_id: u32 = suffix.parse().expect("Invalid parachain-id suffix"); (&id[..KUSAMA_TEST_PARA_PREFIX.len() - 1], id, Some(para_id)) } else if let Some(suffix) = id.strip_prefix(POLKADOT_TEST_PARA_PREFIX) { From 3be6bb13bf8f3f9bc3f5945819ef5c1f830ce783 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?D=C3=B3nal=20Murray?= Date: Tue, 3 Oct 2023 11:30:51 +0200 Subject: [PATCH 09/78] Revert "Fix copy pasta" This reverts commit b1de92dce723524061a5166ab8839dc980a7a0d2. --- cumulus/polkadot-parachain/src/command.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cumulus/polkadot-parachain/src/command.rs b/cumulus/polkadot-parachain/src/command.rs index 5e33bbabc52c..99a9f381daa2 100644 --- a/cumulus/polkadot-parachain/src/command.rs +++ b/cumulus/polkadot-parachain/src/command.rs @@ -330,7 +330,7 @@ fn extract_parachain_id(id: &str) -> (&str, &str, Option) { let (norm_id, orig_id, para) = if let Some(suffix) = id.strip_prefix(WESTEND_TEST_PARA_PREFIX) { let para_id: u32 = suffix.parse().expect("Invalid parachain-id suffix"); (&id[..WESTEND_TEST_PARA_PREFIX.len() - 1], id, Some(para_id)) - } else if let Some(suffix) = id.strip_prefix(KUSAMA_TEST_PARA_PREFIX) { + let (norm_id, orig_id, para) = if let Some(suffix) = id.strip_prefix(KUSAMA_TEST_PARA_PREFIX) { let para_id: u32 = suffix.parse().expect("Invalid parachain-id suffix"); (&id[..KUSAMA_TEST_PARA_PREFIX.len() - 1], id, Some(para_id)) } else if let Some(suffix) = id.strip_prefix(POLKADOT_TEST_PARA_PREFIX) { From c81c53ce53485aac244226afc4a22e58869ff970 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?D=C3=B3nal=20Murray?= Date: Tue, 3 Oct 2023 11:31:26 +0200 Subject: [PATCH 10/78] Revert "Add native runtimes back into polkadot-parachain" This reverts commit f208bb361ba1eda65c38f9bdc8a79d5ea861957b. --- cumulus/polkadot-parachain/Cargo.toml | 18 -- .../src/chain_spec/glutton.rs | 81 +---- cumulus/polkadot-parachain/src/cli.rs | 4 +- cumulus/polkadot-parachain/src/command.rs | 285 +----------------- cumulus/polkadot-parachain/src/service.rs | 90 ------ .../tests/benchmark_storage_works.rs | 2 +- 6 files changed, 15 insertions(+), 465 deletions(-) diff --git a/cumulus/polkadot-parachain/Cargo.toml b/cumulus/polkadot-parachain/Cargo.toml index c8ac38b3c827..5179e62e9ed4 100644 --- a/cumulus/polkadot-parachain/Cargo.toml +++ b/cumulus/polkadot-parachain/Cargo.toml @@ -23,18 +23,12 @@ serde_json = "1.0.107" # Local rococo-parachain-runtime = { path = "../parachains/runtimes/testing/rococo-parachain" } shell-runtime = { path = "../parachains/runtimes/starters/shell" } -glutton-runtime = { path = "../parachains/runtimes/glutton/glutton-kusama" } glutton-westend-runtime = { path = "../parachains/runtimes/glutton/glutton-westend" } seedling-runtime = { path = "../parachains/runtimes/starters/seedling" } -asset-hub-polkadot-runtime = { path = "../parachains/runtimes/assets/asset-hub-polkadot" } -asset-hub-kusama-runtime = { path = "../parachains/runtimes/assets/asset-hub-kusama" } asset-hub-westend-runtime = { path = "../parachains/runtimes/assets/asset-hub-westend" } -collectives-polkadot-runtime = { path = "../parachains/runtimes/collectives/collectives-polkadot" } collectives-westend-runtime = { path = "../parachains/runtimes/collectives/collectives-westend" } contracts-rococo-runtime = { path = "../parachains/runtimes/contracts/contracts-rococo" } bridge-hub-rococo-runtime = { path = "../parachains/runtimes/bridge-hubs/bridge-hub-rococo" } -bridge-hub-kusama-runtime = { path = "../parachains/runtimes/bridge-hubs/bridge-hub-kusama" } -bridge-hub-polkadot-runtime = { path = "../parachains/runtimes/bridge-hubs/bridge-hub-polkadot" } penpal-runtime = { path = "../parachains/runtimes/testing/penpal" } jsonrpsee = { version = "0.16.2", features = ["server"] } parachains-common = { path = "../parachains/common" } @@ -107,18 +101,12 @@ wait-timeout = "0.2" [features] default = [] runtime-benchmarks = [ - "asset-hub-kusama-runtime/runtime-benchmarks", - "asset-hub-polkadot-runtime/runtime-benchmarks", "asset-hub-westend-runtime/runtime-benchmarks", - "bridge-hub-kusama-runtime/runtime-benchmarks", - "bridge-hub-polkadot-runtime/runtime-benchmarks", "bridge-hub-rococo-runtime/runtime-benchmarks", - "collectives-polkadot-runtime/runtime-benchmarks", "collectives-westend-runtime/runtime-benchmarks", "contracts-rococo-runtime/runtime-benchmarks", "frame-benchmarking-cli/runtime-benchmarks", "frame-benchmarking/runtime-benchmarks", - "glutton-runtime/runtime-benchmarks", "glutton-westend-runtime/runtime-benchmarks", "parachains-common/runtime-benchmarks", "penpal-runtime/runtime-benchmarks", @@ -130,16 +118,10 @@ runtime-benchmarks = [ "sp-runtime/runtime-benchmarks", ] try-runtime = [ - "asset-hub-kusama-runtime/try-runtime", - "asset-hub-polkadot-runtime/try-runtime", "asset-hub-westend-runtime/try-runtime", - "bridge-hub-kusama-runtime/try-runtime", - "bridge-hub-polkadot-runtime/try-runtime", "bridge-hub-rococo-runtime/try-runtime", - "collectives-polkadot-runtime/try-runtime", "collectives-westend-runtime/try-runtime", "contracts-rococo-runtime/try-runtime", - "glutton-runtime/try-runtime", "glutton-westend-runtime/try-runtime", "penpal-runtime/try-runtime", "polkadot-cli/try-runtime", diff --git a/cumulus/polkadot-parachain/src/chain_spec/glutton.rs b/cumulus/polkadot-parachain/src/chain_spec/glutton.rs index 7bd2df4f3ba9..5e1b1d67df27 100644 --- a/cumulus/polkadot-parachain/src/chain_spec/glutton.rs +++ b/cumulus/polkadot-parachain/src/chain_spec/glutton.rs @@ -39,7 +39,7 @@ pub fn glutton_development_config(para_id: ParaId) -> GluttonChainSpec { None, None, None, - Extensions { relay_chain: "kusama-dev".into(), para_id: para_id.into() }, + Extensions { relay_chain: "westend-dev".into(), para_id: para_id.into() }, ) } @@ -64,7 +64,7 @@ pub fn glutton_local_config(para_id: ParaId) -> GluttonChainSpec { None, None, None, - Extensions { relay_chain: "kusama-local".into(), para_id: para_id.into() }, + Extensions { relay_chain: "westend-local".into(), para_id: para_id.into() }, ) } @@ -76,7 +76,7 @@ pub fn glutton_config(para_id: ParaId) -> GluttonChainSpec { // Name format!("Glutton {}", para_id).as_str(), // ID - format!("glutton-kusama-{}", para_id).as_str(), + format!("glutton-westend-{}", para_id).as_str(), ChainType::Live, move || { glutton_genesis( @@ -90,10 +90,10 @@ pub fn glutton_config(para_id: ParaId) -> GluttonChainSpec { Vec::new(), None, // Protocol ID - Some(format!("glutton-kusama-{}", para_id).as_str()), + Some(format!("glutton-westend-{}", para_id).as_str()), None, Some(properties), - Extensions { relay_chain: "kusama".into(), para_id: para_id.into() }, + Extensions { relay_chain: "westend".into(), para_id: para_id.into() }, ) } @@ -123,74 +123,3 @@ fn glutton_genesis( }, } } - -pub fn glutton_westend_development_config(para_id: ParaId) -> GluttonChainSpec { - GluttonChainSpec::from_genesis( - // Name - "Glutton Development", - // ID - "glutton_dev", - ChainType::Local, - move || glutton_genesis(para_id, vec![get_collator_keys_from_seed::("Alice")]), - Vec::new(), - None, - None, - None, - None, - Extensions { relay_chain: "westend-dev".into(), para_id: para_id.into() }, - ) -} - -pub fn glutton_westend_local_config(para_id: ParaId) -> GluttonChainSpec { - GluttonChainSpec::from_genesis( - // Name - "Glutton Local", - // ID - "glutton_local", - ChainType::Local, - move || { - glutton_genesis( - para_id, - vec![ - get_collator_keys_from_seed::("Alice"), - get_collator_keys_from_seed::("Bob"), - ], - ) - }, - Vec::new(), - None, - None, - None, - None, - Extensions { relay_chain: "westend-local".into(), para_id: para_id.into() }, - ) -} - -pub fn glutton_westend_config(para_id: ParaId) -> GluttonChainSpec { - let mut properties = sc_chain_spec::Properties::new(); - properties.insert("ss58Format".into(), 2.into()); - - GluttonChainSpec::from_genesis( - // Name - format!("Glutton {}", para_id).as_str(), - // ID - format!("glutton-westend-{}", para_id).as_str(), - ChainType::Live, - move || { - glutton_genesis( - para_id, - vec![ - get_collator_keys_from_seed::("Alice"), - get_collator_keys_from_seed::("Bob"), - ], - ) - }, - Vec::new(), - None, - // Protocol ID - Some(format!("glutton-westend-{}", para_id).as_str()), - None, - Some(properties), - Extensions { relay_chain: "westend".into(), para_id: para_id.into() }, - ) -} diff --git a/cumulus/polkadot-parachain/src/cli.rs b/cumulus/polkadot-parachain/src/cli.rs index ff410d14394b..85dc25631cc1 100644 --- a/cumulus/polkadot-parachain/src/cli.rs +++ b/cumulus/polkadot-parachain/src/cli.rs @@ -64,9 +64,9 @@ pub enum Subcommand { const AFTER_HELP_EXAMPLE: &str = color_print::cstr!( r#"Examples: polkadot-parachain --chain asset-hub-westend --sync warp -- --chain polkadot --sync warp - Launch a warp-syncing full node of the Asset Hub parachain on the Westend Relay Chain. + Launch a warp-syncing full node of the Asset Hub parachain on the Polkadot Relay Chain. polkadot-parachain --chain asset-hub-westend --sync warp --relay-chain-rpc-url ws://rpc.example.com -- --chain polkadot - Launch a warp-syncing full node of the Asset Hub parachain on the Westend Relay Chain. + Launch a warp-syncing full node of the Asset Hub parachain on the Polkadot Relay Chain. Uses ws://rpc.example.com as remote relay chain node. "# ); diff --git a/cumulus/polkadot-parachain/src/command.rs b/cumulus/polkadot-parachain/src/command.rs index 99a9f381daa2..2b47937d60f1 100644 --- a/cumulus/polkadot-parachain/src/command.rs +++ b/cumulus/polkadot-parachain/src/command.rs @@ -40,14 +40,10 @@ enum Runtime { Default, Shell, Seedling, - AssetHubPolkadot, - AssetHubKusama, AssetHubWestend, Penpal(ParaId), ContractsRococo, - CollectivesPolkadot, CollectivesWestend, - Glutton, GluttonWestend, BridgeHub(chain_spec::bridge_hubs::BridgeHubRuntimeType), } @@ -87,18 +83,12 @@ fn runtime(id: &str) -> Runtime { Runtime::Shell } else if id.starts_with("seedling") { Runtime::Seedling - } else if id.starts_with("asset-hub-polkadot") | id.starts_with("statemint") { - Runtime::AssetHubPolkadot - } else if id.starts_with("asset-hub-kusama") | id.starts_with("statemine") { - Runtime::AssetHubKusama } else if id.starts_with("asset-hub-westend") | id.starts_with("westmint") { Runtime::AssetHubWestend } else if id.starts_with("penpal") { Runtime::Penpal(para_id.unwrap_or(ParaId::new(0))) } else if id.starts_with("contracts-rococo") { Runtime::ContractsRococo - } else if id.starts_with("collectives-polkadot") { - Runtime::CollectivesPolkadot } else if id.starts_with("collectives-westend") { Runtime::CollectivesWestend } else if id.starts_with(chain_spec::bridge_hubs::BridgeHubRuntimeType::ID_PREFIX) { @@ -108,8 +98,6 @@ fn runtime(id: &str) -> Runtime { ) } else if id.starts_with("glutton-westend") { Runtime::GluttonWestend - } else if id.starts_with("glutton") { - Runtime::Glutton } else { log::warn!("No specific runtime was recognized for ChainSpec's id: '{}', so Runtime::default() will be used", id); Runtime::default() @@ -139,34 +127,6 @@ fn load_spec(id: &str) -> std::result::Result, String> { "shell" => Box::new(chain_spec::shell::get_shell_chain_spec()), "seedling" => Box::new(chain_spec::seedling::get_seedling_chain_spec()), - // -- Asset Hub Polkadot - "asset-hub-polkadot-dev" | "statemint-dev" => - Box::new(chain_spec::asset_hubs::asset_hub_polkadot_development_config()), - "asset-hub-polkadot-local" | "statemint-local" => - Box::new(chain_spec::asset_hubs::asset_hub_polkadot_local_config()), - // the chain spec as used for generating the upgrade genesis values - "asset-hub-polkadot-genesis" | "statemint-genesis" => - Box::new(chain_spec::asset_hubs::asset_hub_polkadot_config()), - // the shell-based chain spec as used for syncing - "asset-hub-polkadot" | "statemint" => - Box::new(chain_spec::asset_hubs::AssetHubPolkadotChainSpec::from_json_bytes( - &include_bytes!("../chain-specs/asset-hub-polkadot.json")[..], - )?), - - // -- Asset Hub Kusama - "asset-hub-kusama-dev" | "statemine-dev" => - Box::new(chain_spec::asset_hubs::asset_hub_kusama_development_config()), - "asset-hub-kusama-local" | "statemine-local" => - Box::new(chain_spec::asset_hubs::asset_hub_kusama_local_config()), - // the chain spec as used for generating the upgrade genesis values - "asset-hub-kusama-genesis" | "statemine-genesis" => - Box::new(chain_spec::asset_hubs::asset_hub_kusama_config()), - // the shell-based chain spec as used for syncing - "asset-hub-kusama" | "statemine" => - Box::new(chain_spec::asset_hubs::AssetHubKusamaChainSpec::from_json_bytes( - &include_bytes!("../chain-specs/asset-hub-kusama.json")[..], - )?), - // -- Asset Hub Westend "asset-hub-westend-dev" | "westmint-dev" => Box::new(chain_spec::asset_hubs::asset_hub_westend_development_config()), @@ -181,20 +141,6 @@ fn load_spec(id: &str) -> std::result::Result, String> { &include_bytes!("../chain-specs/asset-hub-westend.json")[..], )?), - // -- Polkadot Collectives - "collectives-polkadot-dev" => - Box::new(chain_spec::collectives::collectives_polkadot_development_config()), - "collectives-polkadot-local" => - Box::new(chain_spec::collectives::collectives_polkadot_local_config()), - "collectives-polkadot" => - Box::new(chain_spec::collectives::CollectivesPolkadotChainSpec::from_json_bytes( - &include_bytes!("../chain-specs/collectives-polkadot.json")[..], - )?), - "collectives-westend" => - Box::new(chain_spec::collectives::CollectivesPolkadotChainSpec::from_json_bytes( - &include_bytes!("../chain-specs/collectives-westend.json")[..], - )?), - // -- Westend Collectives "collectives-westend-dev" => Box::new(chain_spec::collectives::collectives_polkadot_development_config()), @@ -226,42 +172,20 @@ fn load_spec(id: &str) -> std::result::Result, String> { .load_config()?, // -- Penpall - "penpal-kusama" => Box::new(chain_spec::penpal::get_penpal_chain_spec( - para_id.expect("Must specify parachain id"), - "kusama-local", - )), - "penpal-polkadot" => Box::new(chain_spec::penpal::get_penpal_chain_spec( - para_id.expect("Must specify parachain id"), - "polkadot-local", - )), - - // -- Penpal Westend "penpal-westend" => Box::new(chain_spec::penpal::get_penpal_chain_spec( para_id.expect("Must specify parachain id"), "westend-local", )), - // -- Glutton - "glutton-kusama-dev" => Box::new(chain_spec::glutton::glutton_development_config( - para_id.expect("Must specify parachain id"), - )), - "glutton-kusama-local" => Box::new(chain_spec::glutton::glutton_local_config( - para_id.expect("Must specify parachain id"), - )), - // the chain spec as used for generating the upgrade genesis values - "glutton-kusama-genesis" => Box::new(chain_spec::glutton::glutton_config( - para_id.expect("Must specify parachain id"), - )), - // -- Glutton Westend - "glutton-westend-dev" => Box::new(chain_spec::glutton::glutton_westend_development_config( + "glutton-westend-dev" => Box::new(chain_spec::glutton::glutton_development_config( para_id.expect("Must specify parachain id"), )), - "glutton-westend-local" => Box::new(chain_spec::glutton::glutton_westend_local_config( + "glutton-westend-local" => Box::new(chain_spec::glutton::glutton_local_config( para_id.expect("Must specify parachain id"), )), // the chain spec as used for generating the upgrade genesis values - "glutton-westend-genesis" => Box::new(chain_spec::glutton::glutton_westend_config( + "glutton-westend-genesis" => Box::new(chain_spec::glutton::glutton_config( para_id.expect("Must specify parachain id"), )), @@ -275,17 +199,9 @@ fn load_spec(id: &str) -> std::result::Result, String> { path => { let path: PathBuf = path.into(); match path.runtime() { - Runtime::AssetHubPolkadot => Box::new( - chain_spec::asset_hubs::AssetHubPolkadotChainSpec::from_json_file(path)?, - ), - Runtime::AssetHubKusama => - Box::new(chain_spec::asset_hubs::AssetHubKusamaChainSpec::from_json_file(path)?), Runtime::AssetHubWestend => Box::new( chain_spec::asset_hubs::AssetHubWestendChainSpec::from_json_file(path)?, ), - Runtime::CollectivesPolkadot | Runtime::CollectivesWestend => Box::new( - chain_spec::collectives::CollectivesPolkadotChainSpec::from_json_file(path)?, - ), Runtime::CollectivesWestend => Box::new( chain_spec::collectives::CollectivesWestendChainSpec::from_json_file(path)?, ), @@ -299,8 +215,6 @@ fn load_spec(id: &str) -> std::result::Result, String> { bridge_hub_runtime_type.chain_spec_from_json_file(path)?, Runtime::Penpal(_para_id) => Box::new(chain_spec::penpal::PenpalChainSpec::from_json_file(path)?), - Runtime::Glutton => - Box::new(chain_spec::glutton::GluttonChainSpec::from_json_file(path)?), Runtime::GluttonWestend => Box::new(chain_spec::glutton::GluttonChainSpec::from_json_file(path)?), Runtime::Default => Box::new( @@ -313,29 +227,17 @@ fn load_spec(id: &str) -> std::result::Result, String> { /// Extracts the normalized chain id and parachain id from the input chain id. /// (H/T to Phala for the idea) -/// E.g. "penpal-kusama-2004" yields ("penpal-kusama", Some(2004)) +/// E.g. "penpal-westend-2004" yields ("penpal-westend", Some(2004)) fn extract_parachain_id(id: &str) -> (&str, &str, Option) { - const KUSAMA_TEST_PARA_PREFIX: &str = "penpal-kusama-"; - const POLKADOT_TEST_PARA_PREFIX: &str = "penpal-polkadot-"; const WESTEND_TEST_PARA_PREFIX: &str = "penpal-westend-"; - const GLUTTON_PARA_DEV_PREFIX: &str = "glutton-kusama-dev-"; - const GLUTTON_PARA_LOCAL_PREFIX: &str = "glutton-kusama-local-"; - const GLUTTON_PARA_GENESIS_PREFIX: &str = "glutton-kusama-genesis-"; - - const GLUTTON_WESTEND_PARA_DEV_PREFIX: &str = "glutton-westend-dev-"; - const GLUTTON_WESTEND_PARA_LOCAL_PREFIX: &str = "glutton-westend-local-"; - const GLUTTON_WESTEND_PARA_GENESIS_PREFIX: &str = "glutton-westend-genesis-"; + const GLUTTON_PARA_DEV_PREFIX: &str = "glutton-westend-dev-"; + const GLUTTON_PARA_LOCAL_PREFIX: &str = "glutton-westend-local-"; + const GLUTTON_PARA_GENESIS_PREFIX: &str = "glutton-westend-genesis-"; let (norm_id, orig_id, para) = if let Some(suffix) = id.strip_prefix(WESTEND_TEST_PARA_PREFIX) { let para_id: u32 = suffix.parse().expect("Invalid parachain-id suffix"); (&id[..WESTEND_TEST_PARA_PREFIX.len() - 1], id, Some(para_id)) - let (norm_id, orig_id, para) = if let Some(suffix) = id.strip_prefix(KUSAMA_TEST_PARA_PREFIX) { - let para_id: u32 = suffix.parse().expect("Invalid parachain-id suffix"); - (&id[..KUSAMA_TEST_PARA_PREFIX.len() - 1], id, Some(para_id)) - } else if let Some(suffix) = id.strip_prefix(POLKADOT_TEST_PARA_PREFIX) { - let para_id: u32 = suffix.parse().expect("Invalid parachain-id suffix"); - (&id[..POLKADOT_TEST_PARA_PREFIX.len() - 1], id, Some(para_id)) } else if let Some(suffix) = id.strip_prefix(GLUTTON_PARA_DEV_PREFIX) { let para_id: u32 = suffix.parse().expect("Invalid parachain-id suffix"); (&id[..GLUTTON_PARA_DEV_PREFIX.len() - 1], id, Some(para_id)) @@ -345,15 +247,6 @@ fn extract_parachain_id(id: &str) -> (&str, &str, Option) { } else if let Some(suffix) = id.strip_prefix(GLUTTON_PARA_GENESIS_PREFIX) { let para_id: u32 = suffix.parse().expect("Invalid parachain-id suffix"); (&id[..GLUTTON_PARA_GENESIS_PREFIX.len() - 1], id, Some(para_id)) - } else if let Some(suffix) = id.strip_prefix(GLUTTON_WESTEND_PARA_DEV_PREFIX) { - let para_id: u32 = suffix.parse().expect("Invalid parachain-id suffix"); - (&id[..GLUTTON_WESTEND_PARA_DEV_PREFIX.len() - 1], id, Some(para_id)) - } else if let Some(suffix) = id.strip_prefix(GLUTTON_WESTEND_PARA_LOCAL_PREFIX) { - let para_id: u32 = suffix.parse().expect("Invalid parachain-id suffix"); - (&id[..GLUTTON_WESTEND_PARA_LOCAL_PREFIX.len() - 1], id, Some(para_id)) - } else if let Some(suffix) = id.strip_prefix(GLUTTON_WESTEND_PARA_GENESIS_PREFIX) { - let para_id: u32 = suffix.parse().expect("Invalid parachain-id suffix"); - (&id[..GLUTTON_WESTEND_PARA_GENESIS_PREFIX.len() - 1], id, Some(para_id)) } else { (id, id, None) }; @@ -437,13 +330,6 @@ impl SubstrateCli for RelayChainCli { macro_rules! construct_partials { ($config:expr, |$partials:ident| $code:expr) => { match $config.chain_spec.runtime() { - Runtime::AssetHubKusama => { - let $partials = new_partial::( - &$config, - crate::service::aura_build_import_queue::<_, AuraId>, - )?; - $code - }, Runtime::AssetHubWestend => { let $partials = new_partial::( &$config, @@ -451,32 +337,7 @@ macro_rules! construct_partials { )?; $code }, - Runtime::AssetHubPolkadot => { - let $partials = new_partial::( - &$config, - crate::service::aura_build_import_queue::<_, AssetHubPolkadotAuraId>, - )?; - $code - }, Runtime::BridgeHub(bridge_hub_runtime_type) => match bridge_hub_runtime_type { - chain_spec::bridge_hubs::BridgeHubRuntimeType::Polkadot | - chain_spec::bridge_hubs::BridgeHubRuntimeType::PolkadotLocal | - chain_spec::bridge_hubs::BridgeHubRuntimeType::PolkadotDevelopment => { - let $partials = new_partial::( - &$config, - crate::service::aura_build_import_queue::<_, AuraId>, - )?; - $code - }, - chain_spec::bridge_hubs::BridgeHubRuntimeType::Kusama | - chain_spec::bridge_hubs::BridgeHubRuntimeType::KusamaLocal | - chain_spec::bridge_hubs::BridgeHubRuntimeType::KusamaDevelopment => { - let $partials = new_partial::( - &$config, - crate::service::aura_build_import_queue::<_, AuraId>, - )?; - $code - }, chain_spec::bridge_hubs::BridgeHubRuntimeType::Westend => { let $partials = new_partial::( &$config, @@ -544,13 +405,6 @@ macro_rules! construct_partials { )?; $code }, - Runtime::Glutton => { - let $partials = new_partial::( - &$config, - crate::service::shell_build_import_queue, - )?; - $code - }, } }; } @@ -569,36 +423,6 @@ macro_rules! construct_async_run { { $( $code )* }.map(|v| (v, task_manager)) }) }, - Runtime::AssetHubKusama => { - runner.async_run(|$config| { - let $components = new_partial::( - &$config, - crate::service::aura_build_import_queue::<_, AuraId>, - )?; - let task_manager = $components.task_manager; - { $( $code )* }.map(|v| (v, task_manager)) - }) - }, - Runtime::AssetHubPolkadot => { - runner.async_run(|$config| { - let $components = new_partial::( - &$config, - crate::service::aura_build_import_queue::<_, AssetHubPolkadotAuraId>, - )?; - let task_manager = $components.task_manager; - { $( $code )* }.map(|v| (v, task_manager)) - }) - }, - Runtime::CollectivesPolkadot | Runtime::CollectivesWestend => { - runner.async_run(|$config| { - let $components = new_partial::( - &$config, - crate::service::aura_build_import_queue::<_, AuraId>, - )?; - let task_manager = $components.task_manager; - { $( $code )* }.map(|v| (v, task_manager)) - }) - }, Runtime::CollectivesWestend => { runner.async_run(|$config| { let $components = new_partial::( @@ -641,32 +465,6 @@ macro_rules! construct_async_run { }, Runtime::BridgeHub(bridge_hub_runtime_type) => { match bridge_hub_runtime_type { - chain_spec::bridge_hubs::BridgeHubRuntimeType::Polkadot | - chain_spec::bridge_hubs::BridgeHubRuntimeType::PolkadotLocal | - chain_spec::bridge_hubs::BridgeHubRuntimeType::PolkadotDevelopment => { - runner.async_run(|$config| { - let $components = new_partial::( - &$config, - crate::service::aura_build_import_queue::<_, AuraId>, - )?; - - let task_manager = $components.task_manager; - { $( $code )* }.map(|v| (v, task_manager)) - }) - }, - chain_spec::bridge_hubs::BridgeHubRuntimeType::Kusama | - chain_spec::bridge_hubs::BridgeHubRuntimeType::KusamaLocal | - chain_spec::bridge_hubs::BridgeHubRuntimeType::KusamaDevelopment => { - runner.async_run(|$config| { - let $components = new_partial::( - &$config, - crate::service::aura_build_import_queue::<_, AuraId>, - )?; - - let task_manager = $components.task_manager; - { $( $code )* }.map(|v| (v, task_manager)) - }) - }, chain_spec::bridge_hubs::BridgeHubRuntimeType::Westend => { runner.async_run(|$config| { let $components = new_partial::( @@ -718,16 +516,6 @@ macro_rules! construct_async_run { { $( $code )* }.map(|v| (v, task_manager)) }) }, - Runtime::Glutton => { - runner.async_run(|$config| { - let $components = new_partial::( - &$config, - crate::service::shell_build_import_queue, - )?; - let task_manager = $components.task_manager; - { $( $code )* }.map(|v| (v, task_manager)) - }) - }, Runtime::GluttonWestend => { runner.async_run(|$config| { let $components = new_partial::( @@ -859,8 +647,6 @@ pub fn run() -> Result<()> { // that both file paths exist, the node will exit, as the user must decide (by // deleting one path) the information that they want to use as their DB. let old_name = match config.chain_spec.id() { - "asset-hub-polkadot" => Some("statemint"), - "asset-hub-kusama" => Some("statemine"), "asset-hub-westend" => Some("westmint"), "asset-hub-rococo" => Some("rockmine"), _ => None, @@ -916,20 +702,6 @@ pub fn run() -> Result<()> { info!("Is collating: {}", if config.role.is_authority() { "yes" } else { "no" }); match config.chain_spec.runtime() { - Runtime::AssetHubPolkadot => crate::service::start_generic_aura_node::< - asset_hub_polkadot_runtime::RuntimeApi, - AssetHubPolkadotAuraId, - >(config, polkadot_config, collator_options, id, hwbench) - .await - .map(|r| r.0) - .map_err(Into::into), - Runtime::AssetHubKusama => crate::service::start_generic_aura_node::< - asset_hub_kusama_runtime::RuntimeApi, - AuraId, - >(config, polkadot_config, collator_options, id, hwbench) - .await - .map(|r| r.0) - .map_err(Into::into), Runtime::AssetHubWestend => crate::service::start_generic_aura_node::< asset_hub_westend_runtime::RuntimeApi, AuraId, @@ -937,14 +709,6 @@ pub fn run() -> Result<()> { .await .map(|r| r.0) .map_err(Into::into), - Runtime::CollectivesPolkadot | Runtime::CollectivesWestend => - crate::service::start_generic_aura_node::< - collectives_polkadot_runtime::RuntimeApi, - AuraId, - >(config, polkadot_config, collator_options, id, hwbench) - .await - .map(|r| r.0) - .map_err(Into::into), Runtime::CollectivesWestend => crate::service::start_generic_aura_node::< collectives_westend_runtime::RuntimeApi, @@ -981,24 +745,6 @@ pub fn run() -> Result<()> { .map(|r| r.0) .map_err(Into::into), Runtime::BridgeHub(bridge_hub_runtime_type) => match bridge_hub_runtime_type { - chain_spec::bridge_hubs::BridgeHubRuntimeType::Polkadot | - chain_spec::bridge_hubs::BridgeHubRuntimeType::PolkadotLocal | - chain_spec::bridge_hubs::BridgeHubRuntimeType::PolkadotDevelopment => - crate::service::start_generic_aura_node::< - chain_spec::bridge_hubs::polkadot::RuntimeApi, - AuraId, - >(config, polkadot_config, collator_options, id, hwbench) - .await - .map(|r| r.0), - chain_spec::bridge_hubs::BridgeHubRuntimeType::Kusama | - chain_spec::bridge_hubs::BridgeHubRuntimeType::KusamaLocal | - chain_spec::bridge_hubs::BridgeHubRuntimeType::KusamaDevelopment => - crate::service::start_generic_aura_node::< - chain_spec::bridge_hubs::kusama::RuntimeApi, - AuraId, - >(config, polkadot_config, collator_options, id, hwbench) - .await - .map(|r| r.0), chain_spec::bridge_hubs::BridgeHubRuntimeType::Westend => crate::service::start_generic_aura_node::< chain_spec::bridge_hubs::westend::RuntimeApi, @@ -1036,17 +782,6 @@ pub fn run() -> Result<()> { .await .map(|r| r.0) .map_err(Into::into), - Runtime::Glutton => - crate::service::start_shell_node::( - config, - polkadot_config, - collator_options, - id, - hwbench, - ) - .await - .map(|r| r.0) - .map_err(Into::into), Runtime::GluttonWestend => crate::service::start_shell_node::( config, @@ -1290,12 +1025,6 @@ mod tests { ); assert_eq!(Runtime::Default, path.runtime()); - let path = store_configuration( - &temp_dir, - Box::new(crate::chain_spec::asset_hubs::asset_hub_kusama_local_config()), - ); - assert_eq!(Runtime::AssetHubKusama, path.runtime()); - let path = store_configuration( &temp_dir, Box::new(crate::chain_spec::contracts::contracts_rococo_local_config()), diff --git a/cumulus/polkadot-parachain/src/service.rs b/cumulus/polkadot-parachain/src/service.rs index 9e06376c6eec..232c62a9c242 100644 --- a/cumulus/polkadot-parachain/src/service.rs +++ b/cumulus/polkadot-parachain/src/service.rs @@ -91,36 +91,6 @@ impl sc_executor::NativeExecutionDispatch for ShellRuntimeExecutor { } } -/// Native Asset Hub Polkadot (Statemint) executor instance. -pub struct AssetHubPolkadotRuntimeExecutor; - -impl sc_executor::NativeExecutionDispatch for AssetHubPolkadotRuntimeExecutor { - type ExtendHostFunctions = frame_benchmarking::benchmarking::HostFunctions; - - fn dispatch(method: &str, data: &[u8]) -> Option> { - asset_hub_polkadot_runtime::api::dispatch(method, data) - } - - fn native_version() -> sc_executor::NativeVersion { - asset_hub_polkadot_runtime::native_version() - } -} - -/// Native Asset Hub Kusama (Statemine) executor instance. -pub struct AssetHubKusamaExecutor; - -impl sc_executor::NativeExecutionDispatch for AssetHubKusamaExecutor { - type ExtendHostFunctions = frame_benchmarking::benchmarking::HostFunctions; - - fn dispatch(method: &str, data: &[u8]) -> Option> { - asset_hub_kusama_runtime::api::dispatch(method, data) - } - - fn native_version() -> sc_executor::NativeVersion { - asset_hub_kusama_runtime::native_version() - } -} - /// Native Asset Hub Westend (Westmint) executor instance. pub struct AssetHubWestendExecutor; @@ -136,39 +106,9 @@ impl sc_executor::NativeExecutionDispatch for AssetHubWestendExecutor { } } -/// Native Polkadot Collectives executor instance. -pub struct CollectivesPolkadotRuntimeExecutor; - /// Native Westend Collectives executor instance. pub struct CollectivesWestendRuntimeExecutor; -impl sc_executor::NativeExecutionDispatch for CollectivesPolkadotRuntimeExecutor { - type ExtendHostFunctions = frame_benchmarking::benchmarking::HostFunctions; - - fn dispatch(method: &str, data: &[u8]) -> Option> { - collectives_polkadot_runtime::api::dispatch(method, data) - } - - fn native_version() -> sc_executor::NativeVersion { - collectives_polkadot_runtime::native_version() - } -} - -/// Native BridgeHubPolkadot executor instance. -pub struct BridgeHubPolkadotRuntimeExecutor; - -impl sc_executor::NativeExecutionDispatch for BridgeHubPolkadotRuntimeExecutor { - type ExtendHostFunctions = frame_benchmarking::benchmarking::HostFunctions; - - fn dispatch(method: &str, data: &[u8]) -> Option> { - bridge_hub_polkadot_runtime::api::dispatch(method, data) - } - - fn native_version() -> sc_executor::NativeVersion { - bridge_hub_polkadot_runtime::native_version() - } -} - impl sc_executor::NativeExecutionDispatch for CollectivesWestendRuntimeExecutor { type ExtendHostFunctions = frame_benchmarking::benchmarking::HostFunctions; @@ -181,21 +121,6 @@ impl sc_executor::NativeExecutionDispatch for CollectivesWestendRuntimeExecutor } } -/// Native BridgeHubKusama executor instance. -pub struct BridgeHubKusamaRuntimeExecutor; - -impl sc_executor::NativeExecutionDispatch for BridgeHubKusamaRuntimeExecutor { - type ExtendHostFunctions = frame_benchmarking::benchmarking::HostFunctions; - - fn dispatch(method: &str, data: &[u8]) -> Option> { - bridge_hub_kusama_runtime::api::dispatch(method, data) - } - - fn native_version() -> sc_executor::NativeVersion { - bridge_hub_kusama_runtime::native_version() - } -} - /// Native BridgeHubRococo executor instance. pub struct BridgeHubRococoRuntimeExecutor; @@ -226,24 +151,9 @@ impl sc_executor::NativeExecutionDispatch for ContractsRococoRuntimeExecutor { } } -/// Native Glutton executor instance. -pub struct GluttonRuntimeExecutor; - /// Native Westend Glutton executor instance. pub struct GluttonWestendRuntimeExecutor; -impl sc_executor::NativeExecutionDispatch for GluttonRuntimeExecutor { - type ExtendHostFunctions = frame_benchmarking::benchmarking::HostFunctions; - - fn dispatch(method: &str, data: &[u8]) -> Option> { - shell_runtime::api::dispatch(method, data) - } - - fn native_version() -> sc_executor::NativeVersion { - shell_runtime::native_version() - } -} - impl sc_executor::NativeExecutionDispatch for GluttonWestendRuntimeExecutor { type ExtendHostFunctions = frame_benchmarking::benchmarking::HostFunctions; diff --git a/cumulus/polkadot-parachain/tests/benchmark_storage_works.rs b/cumulus/polkadot-parachain/tests/benchmark_storage_works.rs index c2850b64e458..227168c88b7b 100644 --- a/cumulus/polkadot-parachain/tests/benchmark_storage_works.rs +++ b/cumulus/polkadot-parachain/tests/benchmark_storage_works.rs @@ -24,7 +24,7 @@ use std::{ use tempfile::tempdir; /// The runtimes that this command supports. -static RUNTIMES: [&str; 3] = ["asset-hub-westend", "asset-hub-kusama", "asset-hub-polkadot"]; +static RUNTIMES: [&str] = ["asset-hub-westend"]; /// The `benchmark storage` command works for the dev runtimes. #[test] From 41b5838c6023d08ee02d4aa51982bbd0cdb7871a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?D=C3=B3nal=20Murray?= Date: Tue, 3 Oct 2023 11:51:28 +0200 Subject: [PATCH 11/78] Use westend chainspec for collectives-westend --- .../src/chain_spec/collectives.rs | 70 +++++++++---------- cumulus/polkadot-parachain/src/command.rs | 8 +-- 2 files changed, 38 insertions(+), 40 deletions(-) diff --git a/cumulus/polkadot-parachain/src/chain_spec/collectives.rs b/cumulus/polkadot-parachain/src/chain_spec/collectives.rs index fbf49b9535a4..48ee0bf4e968 100644 --- a/cumulus/polkadot-parachain/src/chain_spec/collectives.rs +++ b/cumulus/polkadot-parachain/src/chain_spec/collectives.rs @@ -22,35 +22,33 @@ use parachains_common::{AccountId, AuraId, Balance as CollectivesBalance}; use sc_service::ChainType; use sp_core::sr25519; -pub type CollectivesPolkadotChainSpec = - sc_service::GenericChainSpec; +pub type CollectivesWestendChainSpec = + sc_service::GenericChainSpec; -const COLLECTIVES_POLKADOT_ED: CollectivesBalance = - parachains_common::polkadot::currency::EXISTENTIAL_DEPOSIT; +const COLLECTIVES_WESTEND_ED: CollectivesBalance = + parachains_common::westend::currency::EXISTENTIAL_DEPOSIT; /// Generate the session keys from individual elements. /// /// The input must be a tuple of individual keys (a single arg for now since we have just one key). -pub fn collectives_polkadot_session_keys( - keys: AuraId, -) -> collectives_polkadot_runtime::SessionKeys { - collectives_polkadot_runtime::SessionKeys { aura: keys } +pub fn collectives_westend_session_keys(keys: AuraId) -> collectives_westend_runtime::SessionKeys { + collectives_westend_runtime::SessionKeys { aura: keys } } -pub fn collectives_polkadot_development_config() -> CollectivesPolkadotChainSpec { +pub fn collectives_westend_development_config() -> CollectivesWestendChainSpec { let mut properties = sc_chain_spec::Properties::new(); properties.insert("ss58Format".into(), 0.into()); properties.insert("tokenSymbol".into(), "DOT".into()); properties.insert("tokenDecimals".into(), 10.into()); - CollectivesPolkadotChainSpec::from_genesis( + CollectivesWestendChainSpec::from_genesis( // Name - "Polkadot Collectives Development", + "Westend Collectives Development", // ID - "collectives_polkadot_dev", + "collectives_westend_dev", ChainType::Local, move || { - collectives_polkadot_genesis( + collectives_westend_genesis( // initial collators. vec![( get_account_id_from_seed::("Alice"), @@ -72,25 +70,25 @@ pub fn collectives_polkadot_development_config() -> CollectivesPolkadotChainSpec None, None, Some(properties), - Extensions { relay_chain: "polkadot-dev".into(), para_id: 1002 }, + Extensions { relay_chain: "westend-dev".into(), para_id: 1002 }, ) } -/// Collectives Polkadot Local Config. -pub fn collectives_polkadot_local_config() -> CollectivesPolkadotChainSpec { +/// Collectives Westend Local Config. +pub fn collectives_westend_local_config() -> CollectivesWestendChainSpec { let mut properties = sc_chain_spec::Properties::new(); properties.insert("ss58Format".into(), 0.into()); properties.insert("tokenSymbol".into(), "DOT".into()); properties.insert("tokenDecimals".into(), 10.into()); - CollectivesPolkadotChainSpec::from_genesis( + CollectivesWestendChainSpec::from_genesis( // Name - "Polkadot Collectives Local", + "Westend Collectives Local", // ID - "collectives_polkadot_local", + "collectives_westend_local", ChainType::Local, move || { - collectives_polkadot_genesis( + collectives_westend_genesis( // initial collators. vec![ ( @@ -124,46 +122,46 @@ pub fn collectives_polkadot_local_config() -> CollectivesPolkadotChainSpec { None, None, Some(properties), - Extensions { relay_chain: "polkadot-local".into(), para_id: 1002 }, + Extensions { relay_chain: "westend-local".into(), para_id: 1002 }, ) } -fn collectives_polkadot_genesis( +fn collectives_westend_genesis( invulnerables: Vec<(AccountId, AuraId)>, endowed_accounts: Vec, id: ParaId, -) -> collectives_polkadot_runtime::RuntimeGenesisConfig { - collectives_polkadot_runtime::RuntimeGenesisConfig { - system: collectives_polkadot_runtime::SystemConfig { - code: collectives_polkadot_runtime::WASM_BINARY +) -> collectives_westend_runtime::RuntimeGenesisConfig { + collectives_westend_runtime::RuntimeGenesisConfig { + system: collectives_westend_runtime::SystemConfig { + code: collectives_westend_runtime::WASM_BINARY .expect("WASM binary was not build, please build it!") .to_vec(), ..Default::default() }, - balances: collectives_polkadot_runtime::BalancesConfig { + balances: collectives_westend_runtime::BalancesConfig { balances: endowed_accounts .iter() .cloned() - .map(|k| (k, COLLECTIVES_POLKADOT_ED * 4096)) + .map(|k| (k, COLLECTIVES_WESTEND_ED * 4096)) .collect(), }, - parachain_info: collectives_polkadot_runtime::ParachainInfoConfig { + parachain_info: collectives_westend_runtime::ParachainInfoConfig { parachain_id: id, ..Default::default() }, - collator_selection: collectives_polkadot_runtime::CollatorSelectionConfig { + collator_selection: collectives_westend_runtime::CollatorSelectionConfig { invulnerables: invulnerables.iter().cloned().map(|(acc, _)| acc).collect(), - candidacy_bond: COLLECTIVES_POLKADOT_ED * 16, + candidacy_bond: COLLECTIVES_WESTEND_ED * 16, ..Default::default() }, - session: collectives_polkadot_runtime::SessionConfig { + session: collectives_westend_runtime::SessionConfig { keys: invulnerables .into_iter() .map(|(acc, aura)| { ( - acc.clone(), // account id - acc, // validator id - collectives_polkadot_session_keys(aura), // session keys + acc.clone(), // account id + acc, // validator id + collectives_westend_session_keys(aura), // session keys ) }) .collect(), @@ -173,7 +171,7 @@ fn collectives_polkadot_genesis( aura: Default::default(), aura_ext: Default::default(), parachain_system: Default::default(), - polkadot_xcm: collectives_polkadot_runtime::PolkadotXcmConfig { + polkadot_xcm: collectives_westend_runtime::PolkadotXcmConfig { safe_xcm_version: Some(SAFE_XCM_VERSION), ..Default::default() }, diff --git a/cumulus/polkadot-parachain/src/command.rs b/cumulus/polkadot-parachain/src/command.rs index 2b47937d60f1..25212c96600e 100644 --- a/cumulus/polkadot-parachain/src/command.rs +++ b/cumulus/polkadot-parachain/src/command.rs @@ -143,12 +143,12 @@ fn load_spec(id: &str) -> std::result::Result, String> { // -- Westend Collectives "collectives-westend-dev" => - Box::new(chain_spec::collectives::collectives_polkadot_development_config()), + Box::new(chain_spec::collectives::collectives_westend_development_config()), "collectives-westend-local" => - Box::new(chain_spec::collectives::collectives_polkadot_local_config()), + Box::new(chain_spec::collectives::collectives_westend_local_config()), "collectives-westend" => - Box::new(chain_spec::collectives::CollectivesPolkadotChainSpec::from_json_bytes( - &include_bytes!("../chain-specs/collectives-polkadot.json")[..], + Box::new(chain_spec::collectives::CollectivesWestendChainSpec::from_json_bytes( + &include_bytes!("../chain-specs/collectives-westend.json")[..], )?), // -- Contracts on Rococo From 5c012b8cae3da64c16d483267bf530cc65ad43ec Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?D=C3=B3nal=20Murray?= Date: Tue, 3 Oct 2023 12:23:42 +0200 Subject: [PATCH 12/78] Update tooling --- .github/pr-custom-review.yml | 4 +- .github/review-bot.yml | 6 - .gitlab/pipeline/short-benchmarks.yml | 28 +- cumulus/.github/pr-custom-review.yml | 4 +- ...e-20_extrinsic-ordering-check-from-bin.yml | 6 +- ...e-21_extrinsic-ordering-check-from-two.yml | 10 +- .../workflows/release-30_create-draft.yml | 32 +- cumulus/.github/workflows/srtool.yml | 11 +- cumulus/README.md | 2 +- cumulus/docs/release.md | 7 +- .../asset-hub-kusama-genesis-values.json | 1 - .../chain-specs/asset-hub-kusama-genesis.json | 77 ---- .../chain-specs/asset-hub-kusama.json | 60 --- .../asset-hub-polkadot-genesis-values.json | 1 - .../asset-hub-polkadot-genesis-values.scale | 1 - .../asset-hub-polkadot-genesis.json | 82 ---- .../chain-specs/asset-hub-polkadot.json | 62 --- .../chain-specs/bridge-hub-polkadot.json | 90 ---- .../chain-specs/collectives-polkadot.json | 98 ---- cumulus/parachains/common/src/lib.rs | 7 - .../0_xcm/0_init.yml | 0 .../0_xcm/1_teleport.yml | 0 .../0_xcm/2_reserve.yml | 0 .../0_xcm/3_hrmp-open-channels.yml | 0 .../1_alliance/0_join_alliance_fails.yml | 0 .../1_alliance/1_init_alliance.yml | 0 .../1_alliance/2_join_alliance_fails.yml | 0 .../1_alliance/3_kick_member.yml | 0 .../2_opengov/0_assethub.yml | 0 .../3_fellowship/0_init.yml | 0 .../3_fellowship/1_whitelist_call.yml | 0 .../3_fellowship/2_assethub.yml | 0 .../config.toml | 4 +- .../chain-specs/asset-hub-kusama.json | 1 - .../chain-specs/asset-hub-polkadot.json | 1 - .../chain-specs/bridge-hub-polkadot.json | 1 - .../chain-specs/collectives-polkadot.json | 1 - .../src/chain_spec/asset_hubs.rs | 418 +----------------- cumulus/polkadot-parachain/src/command.rs | 2 +- cumulus/scripts/benchmarks.sh | 8 +- .../bridge_hub_rococo_local_network.toml | 2 +- .../bridge_hub_kusama_local_network.toml | 67 --- .../bridge_hub_polkadot_local_network.toml | 67 --- cumulus/zombienet/examples/small_network.toml | 2 +- .../statemine_kusama_local_network.toml | 67 --- 45 files changed, 29 insertions(+), 1201 deletions(-) delete mode 100644 cumulus/parachains/chain-specs/asset-hub-kusama-genesis-values.json delete mode 100644 cumulus/parachains/chain-specs/asset-hub-kusama-genesis.json delete mode 100644 cumulus/parachains/chain-specs/asset-hub-kusama.json delete mode 100644 cumulus/parachains/chain-specs/asset-hub-polkadot-genesis-values.json delete mode 100644 cumulus/parachains/chain-specs/asset-hub-polkadot-genesis-values.scale delete mode 100644 cumulus/parachains/chain-specs/asset-hub-polkadot-genesis.json delete mode 100644 cumulus/parachains/chain-specs/asset-hub-polkadot.json delete mode 100644 cumulus/parachains/chain-specs/bridge-hub-polkadot.json delete mode 100644 cumulus/parachains/chain-specs/collectives-polkadot.json rename cumulus/parachains/integration-tests/e2e/collectives/{collectives-polkadot => collectives-westend}/0_xcm/0_init.yml (100%) rename cumulus/parachains/integration-tests/e2e/collectives/{collectives-polkadot => collectives-westend}/0_xcm/1_teleport.yml (100%) rename cumulus/parachains/integration-tests/e2e/collectives/{collectives-polkadot => collectives-westend}/0_xcm/2_reserve.yml (100%) rename cumulus/parachains/integration-tests/e2e/collectives/{collectives-polkadot => collectives-westend}/0_xcm/3_hrmp-open-channels.yml (100%) rename cumulus/parachains/integration-tests/e2e/collectives/{collectives-polkadot => collectives-westend}/1_alliance/0_join_alliance_fails.yml (100%) rename cumulus/parachains/integration-tests/e2e/collectives/{collectives-polkadot => collectives-westend}/1_alliance/1_init_alliance.yml (100%) rename cumulus/parachains/integration-tests/e2e/collectives/{collectives-polkadot => collectives-westend}/1_alliance/2_join_alliance_fails.yml (100%) rename cumulus/parachains/integration-tests/e2e/collectives/{collectives-polkadot => collectives-westend}/1_alliance/3_kick_member.yml (100%) rename cumulus/parachains/integration-tests/e2e/collectives/{collectives-polkadot => collectives-westend}/2_opengov/0_assethub.yml (100%) rename cumulus/parachains/integration-tests/e2e/collectives/{collectives-polkadot => collectives-westend}/3_fellowship/0_init.yml (100%) rename cumulus/parachains/integration-tests/e2e/collectives/{collectives-polkadot => collectives-westend}/3_fellowship/1_whitelist_call.yml (100%) rename cumulus/parachains/integration-tests/e2e/collectives/{collectives-polkadot => collectives-westend}/3_fellowship/2_assethub.yml (100%) rename cumulus/parachains/integration-tests/e2e/collectives/{collectives-polkadot => collectives-westend}/config.toml (93%) delete mode 120000 cumulus/polkadot-parachain/chain-specs/asset-hub-kusama.json delete mode 120000 cumulus/polkadot-parachain/chain-specs/asset-hub-polkadot.json delete mode 120000 cumulus/polkadot-parachain/chain-specs/bridge-hub-polkadot.json delete mode 120000 cumulus/polkadot-parachain/chain-specs/collectives-polkadot.json delete mode 100644 cumulus/zombienet/examples/bridge_hub_kusama_local_network.toml delete mode 100644 cumulus/zombienet/examples/bridge_hub_polkadot_local_network.toml delete mode 100644 cumulus/zombienet/examples/statemine_kusama_local_network.toml diff --git a/.github/pr-custom-review.yml b/.github/pr-custom-review.yml index ac13d862a4ac..a01e2b284519 100644 --- a/.github/pr-custom-review.yml +++ b/.github/pr-custom-review.yml @@ -19,7 +19,7 @@ rules: condition: include: .* # excluding files from 'Runtime files' and 'CI files' rules - exclude: ^polkadot/runtime/(kusama|polkadot)/src/[^/]+\.rs$|^cumulus/parachains/runtimes/assets/(asset-hub-kusama|asset-hub-polkadot)/src/[^/]+\.rs$|^cumulus/parachains/runtimes/bridge-hubs/(bridge-hub-kusama|bridge-hub-polkadot)/src/[^/]+\.rs$|^cumulus/parachains/runtimes/collectives/collectives-polkadot/src/[^/]+\.rs$|^cumulus/parachains/common/src/[^/]+\.rs$|^substrate/frame/(?!.*(nfts/.*|uniques/.*|babe/.*|grandpa/.*|beefy|merkle-mountain-range/.*|contracts/.*|election|nomination-pools/.*|staking/.*|aura/.*))|^polkadot/runtime/(kusama|polkadot)/src/[^/]+\.rs$|^\.gitlab-ci\.yml|^docker/.*|^\.github/.*|^\.gitlab/.*|^\.config/nextest.toml|^\.cargo/.* + exclude: ^polkadot/runtime/(kusama|polkadot)/src/[^/]+\.rs$|^cumulus/parachains/common/src/[^/]+\.rs$|^substrate/frame/(?!.*(nfts/.*|uniques/.*|babe/.*|grandpa/.*|beefy|merkle-mountain-range/.*|contracts/.*|election|nomination-pools/.*|staking/.*|aura/.*))|^polkadot/runtime/(kusama|polkadot)/src/[^/]+\.rs$|^\.gitlab-ci\.yml|^docker/.*|^\.github/.*|^\.gitlab/.*|^\.config/nextest.toml|^\.cargo/.* min_approvals: 2 teams: - core-devs @@ -27,7 +27,7 @@ rules: # cumulus - name: Runtime files cumulus check_type: changed_files - condition: ^cumulus/parachains/runtimes/assets/(asset-hub-kusama|asset-hub-polkadot)/src/[^/]+\.rs$|^cumulus/parachains/runtimes/bridge-hubs/(bridge-hub-kusama|bridge-hub-polkadot)/src/[^/]+\.rs$|^cumulus/parachains/runtimes/collectives/collectives-polkadot/src/[^/]+\.rs$|^cumulus/parachains/common/src/[^/]+\.rs$ + condition: ^cumulus/parachains/common/src/[^/]+\.rs$ all_distinct: - min_approvals: 1 teams: diff --git a/.github/review-bot.yml b/.github/review-bot.yml index c9eadd6e58ba..987e95ebcfd5 100644 --- a/.github/review-bot.yml +++ b/.github/review-bot.yml @@ -42,9 +42,6 @@ rules: # excluding files from 'Runtime files' and 'CI files' rules exclude: - ^polkadot/runtime/(kusama|polkadot)/src/[^/]+\.rs$ - - ^cumulus/parachains/runtimes/assets/(asset-hub-kusama|asset-hub-polkadot)/src/[^/]+\.rs$ - - ^cumulus/parachains/runtimes/bridge-hubs/(bridge-hub-kusama|bridge-hub-polkadot)/src/[^/]+\.rs$ - - ^cumulus/parachains/runtimes/collectives/collectives-polkadot/src/[^/]+\.rs$ - ^cumulus/parachains/common/src/[^/]+\.rs$ - ^substrate/frame/(?!.*(nfts/.*|uniques/.*|babe/.*|grandpa/.*|beefy|merkle-mountain-range/.*|contracts/.*|election|nomination-pools/.*|staking/.*|aura/.*)) - ^polkadot/runtime/(kusama|polkadot)/src/[^/]+\.rs$ @@ -64,9 +61,6 @@ rules: countAuthor: true condition: include: - - ^cumulus/parachains/runtimes/assets/(asset-hub-kusama|asset-hub-polkadot)/src/[^/]+\.rs$ - - ^cumulus/parachains/runtimes/bridge-hubs/(bridge-hub-kusama|bridge-hub-polkadot)/src/[^/]+\.rs$ - - ^cumulus/parachains/runtimes/collectives/collectives-polkadot/src/[^/]+\.rs$ - ^cumulus/parachains/common/src/[^/]+\.rs$ type: and-distinct reviewers: diff --git a/.gitlab/pipeline/short-benchmarks.yml b/.gitlab/pipeline/short-benchmarks.yml index 5bfe4b729e62..bfc6ec865e4b 100644 --- a/.gitlab/pipeline/short-benchmarks.yml +++ b/.gitlab/pipeline/short-benchmarks.yml @@ -49,42 +49,22 @@ short-benchmark-westend: &short-bench script: - ./artifacts/polkadot-parachain benchmark pallet --chain $RUNTIME_CHAIN --pallet "*" --extrinsic "*" --steps 2 --repeat 1 -short-benchmark-asset-hub-polkadot: - <<: *short-bench-cumulus - variables: - RUNTIME_CHAIN: asset-hub-polkadot-dev - -short-benchmark-asset-hub-kusama: - <<: *short-bench-cumulus - variables: - RUNTIME_CHAIN: asset-hub-kusama-dev - short-benchmark-asset-hub-westend: <<: *short-bench-cumulus variables: RUNTIME_CHAIN: asset-hub-westend-dev -short-benchmark-bridge-hub-polkadot: - <<: *short-bench-cumulus - variables: - RUNTIME_CHAIN: bridge-hub-polkadot-dev - -short-benchmark-bridge-hub-kusama: - <<: *short-bench-cumulus - variables: - RUNTIME_CHAIN: bridge-hub-kusama-dev - short-benchmark-bridge-hub-rococo: <<: *short-bench-cumulus variables: RUNTIME_CHAIN: bridge-hub-rococo-dev -short-benchmark-collectives-polkadot: +short-benchmark-collectives-westend: <<: *short-bench-cumulus variables: - RUNTIME_CHAIN: collectives-polkadot-dev + RUNTIME_CHAIN: collectives-westend-dev -short-benchmark-glutton-kusama: +short-benchmark-glutton-westend: <<: *short-bench-cumulus variables: - RUNTIME_CHAIN: glutton-kusama-dev-1300 + RUNTIME_CHAIN: glutton-westend-dev-1300 diff --git a/cumulus/.github/pr-custom-review.yml b/cumulus/.github/pr-custom-review.yml index fc26ee677f06..7a9ad1f4d8c1 100644 --- a/cumulus/.github/pr-custom-review.yml +++ b/cumulus/.github/pr-custom-review.yml @@ -6,7 +6,7 @@ action-review-team: ci rules: - name: Runtime files check_type: changed_files - condition: ^parachains/runtimes/assets/(asset-hub-kusama|asset-hub-polkadot)/src/[^/]+\.rs$|^parachains/runtimes/bridge-hubs/(bridge-hub-kusama|bridge-hub-polkadot)/src/[^/]+\.rs$|^parachains/runtimes/collectives/collectives-polkadot/src/[^/]+\.rs$|^parachains/common/src/[^/]+\.rs$ + condition: ^parachains/common/src/[^/]+\.rs$ all_distinct: - min_approvals: 1 teams: @@ -20,7 +20,7 @@ rules: condition: include: .* # excluding files from 'Runtime files' and 'CI files' rules and `Bridges subtree files` - exclude: ^parachains/runtimes/assets/(asset-hub-kusama|asset-hub-polkadot)/src/[^/]+\.rs$|^parachains/runtimes/bridge-hubs/(bridge-hub-kusama|bridge-hub-polkadot)/src/[^/]+\.rs$|^parachains/runtimes/collectives/collectives-polkadot/src/[^/]+\.rs$|^parachains/common/src/[^/]+\.rs$|^\.gitlab-ci\.yml|^scripts/ci/.*|^\.github/.* + exclude: ^parachains/common/src/[^/]+\.rs$|^\.gitlab-ci\.yml|^scripts/ci/.*|^\.github/.* min_approvals: 2 teams: - core-devs diff --git a/cumulus/.github/workflows/release-20_extrinsic-ordering-check-from-bin.yml b/cumulus/.github/workflows/release-20_extrinsic-ordering-check-from-bin.yml index d902e57ac9e7..32c3ab0eb136 100644 --- a/cumulus/.github/workflows/release-20_extrinsic-ordering-check-from-bin.yml +++ b/cumulus/.github/workflows/release-20_extrinsic-ordering-check-from-bin.yml @@ -6,7 +6,7 @@ on: inputs: reference_url: description: The WebSocket url of the reference node - default: wss://kusama-asset-hub-rpc.polkadot.io + default: wss://westend-asset-hub-rpc.polkadot.io required: true binary_url: description: A url to a Linux binary for the node containing the runtime to test @@ -14,7 +14,7 @@ on: required: true chain: description: The name of the chain under test. Usually, you would pass a local chain - default: asset-hub-kusama-local + default: asset-hub-westend-local required: true jobs: @@ -43,7 +43,7 @@ jobs: - name: Start local node run: | echo Running on $CHAIN - $BIN_PATH --chain=$CHAIN -- --chain polkadot-local & + $BIN_PATH --chain=$CHAIN -- --chain westend-local & - name: Prepare output run: | diff --git a/cumulus/.github/workflows/release-21_extrinsic-ordering-check-from-two.yml b/cumulus/.github/workflows/release-21_extrinsic-ordering-check-from-two.yml index 93c0050ff6f2..69d3196ca3a6 100644 --- a/cumulus/.github/workflows/release-21_extrinsic-ordering-check-from-two.yml +++ b/cumulus/.github/workflows/release-21_extrinsic-ordering-check-from-two.yml @@ -28,18 +28,12 @@ jobs: fail-fast: false matrix: include: - - runtime: asset-hub-kusama - local: asset-hub-kusama-local - relay: kusama-local - - runtime: asset-hub-polkadot - local: asset-hub-polkadot-local - relay: polkadot-local - runtime: asset-hub-westend local: asset-hub-westend-local - relay: polkadot-local + relay: westend-local - runtime: contracts-rococo local: contracts-rococo-local - relay: polkadot-local + relay: westend-local steps: - uses: actions/checkout@c85c95e3d7251135ab7dc9ce3241c5835cc595a9 # v3.5.3 diff --git a/cumulus/.github/workflows/release-30_create-draft.yml b/cumulus/.github/workflows/release-30_create-draft.yml index 2d11dfe18cec..89943715cd22 100644 --- a/cumulus/.github/workflows/release-30_create-draft.yml +++ b/cumulus/.github/workflows/release-30_create-draft.yml @@ -44,20 +44,12 @@ jobs: strategy: matrix: include: - - category: assets - runtime: asset-hub-kusama - - category: assets - runtime: asset-hub-polkadot - category: assets runtime: asset-hub-westend - - category: bridge-hubs - runtime: bridge-hub-polkadot - - category: bridge-hubs - runtime: bridge-hub-kusama - category: bridge-hubs runtime: bridge-hub-rococo - category: collectives - runtime: collectives-polkadot + runtime: collectives-westend - category: contracts runtime: contracts-rococo - category: starters @@ -154,12 +146,8 @@ jobs: DEBUG: 1 SHELL_DIGEST: ${{ github.workspace}}/shell-srtool-json/shell-srtool-digest.json ASSET_HUB_WESTEND_DIGEST: ${{ github.workspace}}/asset-hub-westend-srtool-json/asset-hub-westend-srtool-digest.json - ASSET_HUB_KUSAMA_DIGEST: ${{ github.workspace}}/asset-hub-kusama-srtool-json/asset-hub-kusama-srtool-digest.json - ASSET_HUB_POLKADOT_DIGEST: ${{ github.workspace}}/asset-hub-polkadot-srtool-json/asset-hub-polkadot-srtool-digest.json BRIDGE_HUB_ROCOCO_DIGEST: ${{ github.workspace}}/bridge-hub-rococo-srtool-json/bridge-hub-rococo-srtool-digest.json - BRIDGE_HUB_KUSAMA_DIGEST: ${{ github.workspace}}/bridge-hub-kusama-srtool-json/bridge-hub-kusama-srtool-digest.json - BRIDGE_HUB_POLKADOT_DIGEST: ${{ github.workspace}}/bridge-hub-polkadot-srtool-json/bridge-hub-polkadot-srtool-digest.json - COLLECTIVES_POLKADOT_DIGEST: ${{ github.workspace}}/collectives-polkadot-srtool-json/collectives-polkadot-srtool-digest.json + COLLECTIVES_WESTEND_DIGEST: ${{ github.workspace}}/collectives-westend-srtool-json/collectives-westend-srtool-digest.json ROCOCO_PARA_DIGEST: ${{ github.workspace}}/rococo-parachain-srtool-json/rococo-parachain-srtool-digest.json CANVAS_KUSAMA_DIGEST: ${{ github.workspace}}/contracts-rococo-srtool-json/contracts-rococo-srtool-digest.json REF1: ${{ github.event.inputs.ref1 }} @@ -172,12 +160,8 @@ jobs: if [ "$RELEASE_TYPE" != "client" ]; then ls -al $SHELL_DIGEST || true ls -al $ASSET_HUB_WESTEND_DIGEST || true - ls -al $ASSET_HUB_KUSAMA_DIGEST || true - ls -al $ASSET_HUB_POLKADOT_DIGEST || true ls -al $BRIDGE_HUB_ROCOCO_DIGEST || true - ls -al $BRIDGE_HUB_KUSAMA_DIGEST || true - ls -al $BRIDGE_HUB_POLKADOT_DIGEST || true - ls -al $COLLECTIVES_POLKADOT_DIGEST || true + ls -al $COLLECTIVES_WESTEND_DIGEST || true ls -al $ROCOCO_PARA_DIGEST || true ls -al $CANVAS_KUSAMA_DIGEST || true fi @@ -222,20 +206,12 @@ jobs: strategy: matrix: include: - - category: assets - runtime: asset-hub-kusama - - category: assets - runtime: asset-hub-polkadot - category: assets runtime: asset-hub-westend - - category: bridge-hubs - runtime: bridge-hub-polkadot - - category: bridge-hubs - runtime: bridge-hub-kusama - category: bridge-hubs runtime: bridge-hub-rococo - category: collectives - runtime: collectives-polkadot + runtime: collectives-westend - category: contracts runtime: contracts-rococo - category: starters diff --git a/cumulus/.github/workflows/srtool.yml b/cumulus/.github/workflows/srtool.yml index ae473b481370..6e4366c63cbb 100644 --- a/cumulus/.github/workflows/srtool.yml +++ b/cumulus/.github/workflows/srtool.yml @@ -31,20 +31,11 @@ jobs: strategy: matrix: include: - - category: assets - runtime: asset-hub-kusama - - category: assets - runtime: asset-hub-polkadot - - category: assets runtime: asset-hub-westend - - category: bridge-hubs - runtime: bridge-hub-polkadot - - category: bridge-hubs - runtime: bridge-hub-kusama - category: bridge-hubs runtime: bridge-hub-rococo - category: collectives - runtime: collectives-polkadot + runtime: collectives-westend - category: contracts runtime: contracts-rococo - category: starters diff --git a/cumulus/README.md b/cumulus/README.md index 19f9f3f113dd..71afe36f6dea 100644 --- a/cumulus/README.md +++ b/cumulus/README.md @@ -204,7 +204,7 @@ cargo build --release --locked --bin polkadot-parachain Once the executable is built, launch the parachain node via: ```bash -CHAIN=asset-hub-westend # or asset-hub-kusama +CHAIN=asset-hub-westend ./target/release/polkadot-parachain --chain $CHAIN ``` diff --git a/cumulus/docs/release.md b/cumulus/docs/release.md index 38d1915013b0..391b7f3fa714 100644 --- a/cumulus/docs/release.md +++ b/cumulus/docs/release.md @@ -85,16 +85,13 @@ a minute to run and will produce the report as artifact you need to manually che To run it, in the _Run Workflow_ dropdown: 1. **Use workflow from**: to ignore, leave `master` as default -2. **The WebSocket url of the reference node**: - Asset Hub Polkadot: `wss://statemint-rpc.polkadot.io` - - Asset Hub Kusama: `wss://statemine-rpc.polkadot.io` +2. **The WebSocket url of the reference node**: - Asset Hub Westend: `wss://westmint-rpc.polkadot.io` 3. **A url to a Linux binary for the node containing the runtime to test**: Paste the URL of the latest release-candidate binary from the draft-release on Github. The binary has to previously be uploaded to S3 (Github url link to the binary is constantly changing) - E.g: https://releases.parity.io/cumulus/v0.9.270-rc3/polkadot-parachain -4. **The name of the chain under test. Usually, you would pass a local chain**: - Asset Hub Polkadot: - `asset-hub-polkadot-local` - - Asset Hub Kusama: `asset-hub-kusama-local` +4. **The name of the chain under test. Usually, you would pass a local chain**: - Asset Hub Westend: `asset-hub-westend-local` 5. Click **Run workflow** diff --git a/cumulus/parachains/chain-specs/asset-hub-kusama-genesis-values.json b/cumulus/parachains/chain-specs/asset-hub-kusama-genesis-values.json deleted file mode 100644 index ab89dbb93253..000000000000 --- a/cumulus/parachains/chain-specs/asset-hub-kusama-genesis-values.json +++ /dev/null @@ -1 +0,0 @@ -{"0xcec5070d609dd3497f72bde07fc96ba0726380404683fc89e8233450c8aa195014113a7040518ced617572618050673d59020488a4ffc9d8c6de3062a65977046e6990915617f85fef6d349730":"0x50673d59020488a4ffc9d8c6de3062a65977046e6990915617f85fef6d349730","0xcec5070d609dd3497f72bde07fc96ba0878d434d6125b40443fe11fd292d13a4":"0x03000000","0xcec5070d609dd3497f72bde07fc96ba04c014e6bf8b8c2c011e7290b85696bb3095cb580595ffbb4fe8102dbc244e7ea2babd9f53236d67403b046154370da5c3ea99def0bd0747a":"0xfe8102dbc244e7ea2babd9f53236d67403b046154370da5c3ea99def0bd0747a","0xc2261276cc9d1f8598ea4b6a74b15c2f878d434d6125b40443fe11fd292d13a4":"0x03000000","0xcec5070d609dd3497f72bde07fc96ba04c014e6bf8b8c2c011e7290b85696bb3bcf23f8ad989027738144b5398e5d0da5ec936a3af23f5a96e782f676ab19d45f29075ee92eca76a":"0x38144b5398e5d0da5ec936a3af23f5a96e782f676ab19d45f29075ee92eca76a","0xcec5070d609dd3497f72bde07fc96ba0e0cdd062e6eaf24295ad4ccfc41d4609":"0x1050673d59020488a4ffc9d8c6de3062a65977046e6990915617f85fef6d34973050673d59020488a4ffc9d8c6de3062a65977046e6990915617f85fef6d349730fe8102dbc244e7ea2babd9f53236d67403b046154370da5c3ea99def0bd0747afe8102dbc244e7ea2babd9f53236d67403b046154370da5c3ea99def0bd0747a38144b5398e5d0da5ec936a3af23f5a96e782f676ab19d45f29075ee92eca76a38144b5398e5d0da5ec936a3af23f5a96e782f676ab19d45f29075ee92eca76a3253947640e309120ae70fa458dcacb915e2ddd78f930f52bd3679ec63fc44153253947640e309120ae70fa458dcacb915e2ddd78f930f52bd3679ec63fc4415","0x15464cac3378d46f113cd5b7a4d71c84579f5a43435b04a98d64da0cefe18505":"0x50cd2d03000000000000000000000000","0xd5e1a2fa16732ce6906189438c0a82c6878d434d6125b40443fe11fd292d13a4":"0x03000000","0x1809d78346727a0ef58c0fa03bafa323878d434d6125b40443fe11fd292d13a4":"0x03000000","0x3c311d57d4daf52904616cf69648081e5e0621c4869aa60c02be9adcc98a0d1d":"0x1050673d59020488a4ffc9d8c6de3062a65977046e6990915617f85fef6d349730fe8102dbc244e7ea2babd9f53236d67403b046154370da5c3ea99def0bd0747a38144b5398e5d0da5ec936a3af23f5a96e782f676ab19d45f29075ee92eca76a3253947640e309120ae70fa458dcacb915e2ddd78f930f52bd3679ec63fc4415","0x5e8a19e3cd1b7c148b33880c479c0281878d434d6125b40443fe11fd292d13a4":"0x03000000","0xcec5070d609dd3497f72bde07fc96ba0726380404683fc89e8233450c8aa1950fb63b830f923ed3561757261803253947640e309120ae70fa458dcacb915e2ddd78f930f52bd3679ec63fc4415":"0x3253947640e309120ae70fa458dcacb915e2ddd78f930f52bd3679ec63fc4415","0xc2261276cc9d1f8598ea4b6a74b15c2f308ce9615de0775a82f8a94dc3d285a1":"0x01","0xcec5070d609dd3497f72bde07fc96ba0726380404683fc89e8233450c8aa1950b062f0665fab654f617572618038144b5398e5d0da5ec936a3af23f5a96e782f676ab19d45f29075ee92eca76a":"0x38144b5398e5d0da5ec936a3af23f5a96e782f676ab19d45f29075ee92eca76a","0xcd5c1f6df63bc97f4a8ce37f14a50ca7878d434d6125b40443fe11fd292d13a4":"0x00000100","0xd57bce545fb382c34570e5dfbf338f5e878d434d6125b40443fe11fd292d13a4":"0x03000000","0x15464cac3378d46f113cd5b7a4d71c84878d434d6125b40443fe11fd292d13a4":"0x03000000","0x3c311d57d4daf52904616cf69648081e878d434d6125b40443fe11fd292d13a4":"0x00000100","0x57f8dc2f5ab09467896f47300f042438878d434d6125b40443fe11fd292d13a4":"0x03000000","0x7b3237373ffdfeb1cab4222e3b520d6b878d434d6125b40443fe11fd292d13a4":"0x00000100","0x57f8dc2f5ab09467896f47300f0424385e0621c4869aa60c02be9adcc98a0d1d":"0x1050673d59020488a4ffc9d8c6de3062a65977046e6990915617f85fef6d349730fe8102dbc244e7ea2babd9f53236d67403b046154370da5c3ea99def0bd0747a38144b5398e5d0da5ec936a3af23f5a96e782f676ab19d45f29075ee92eca76a3253947640e309120ae70fa458dcacb915e2ddd78f930f52bd3679ec63fc4415","0xbd2a529379475088d3e29a918cd47872878d434d6125b40443fe11fd292d13a4":"0x03000000","0xcec5070d609dd3497f72bde07fc96ba04c014e6bf8b8c2c011e7290b85696bb3b2f278bf7750703750673d59020488a4ffc9d8c6de3062a65977046e6990915617f85fef6d349730":"0x50673d59020488a4ffc9d8c6de3062a65977046e6990915617f85fef6d349730","0xcec5070d609dd3497f72bde07fc96ba0726380404683fc89e8233450c8aa19506f114d556b001da96175726180fe8102dbc244e7ea2babd9f53236d67403b046154370da5c3ea99def0bd0747a":"0xfe8102dbc244e7ea2babd9f53236d67403b046154370da5c3ea99def0bd0747a","0xcec5070d609dd3497f72bde07fc96ba088dcde934c658227ee1dfafcd6e16903":"0x1050673d59020488a4ffc9d8c6de3062a65977046e6990915617f85fef6d349730fe8102dbc244e7ea2babd9f53236d67403b046154370da5c3ea99def0bd0747a38144b5398e5d0da5ec936a3af23f5a96e782f676ab19d45f29075ee92eca76a3253947640e309120ae70fa458dcacb915e2ddd78f930f52bd3679ec63fc4415","0x682a59d51ab9e48a8c8cc418ff9708d2878d434d6125b40443fe11fd292d13a4":"0x03000000","0xc2261276cc9d1f8598ea4b6a74b15c2f57c875e4cff74148e4628f264b974c80":"0x00000000000000000000000000000000","0x15464cac3378d46f113cd5b7a4d71c84476f594316a7dfe49c1f352d95abdaf1":"0x00000000","0xe38f185207498abb5c213d0fb059b3d8878d434d6125b40443fe11fd292d13a4":"0x00000100","0x15464cac3378d46f113cd5b7a4d71c845579297f4dfb9609e7e4c2ebab9ce40a":"0x1050673d59020488a4ffc9d8c6de3062a65977046e6990915617f85fef6d349730fe8102dbc244e7ea2babd9f53236d67403b046154370da5c3ea99def0bd0747a38144b5398e5d0da5ec936a3af23f5a96e782f676ab19d45f29075ee92eca76a3253947640e309120ae70fa458dcacb915e2ddd78f930f52bd3679ec63fc4415","0xf0c365c3cf59d671eb72da0e7a4113c4878d434d6125b40443fe11fd292d13a4":"0x03000000","0x7474449cca95dc5d0c00e71735a6d17d878d434d6125b40443fe11fd292d13a4":"0x03000000","0xcec5070d609dd3497f72bde07fc96ba04c014e6bf8b8c2c011e7290b85696bb36d5c455f52f81fe03253947640e309120ae70fa458dcacb915e2ddd78f930f52bd3679ec63fc4415":"0x3253947640e309120ae70fa458dcacb915e2ddd78f930f52bd3679ec63fc4415","0x3f1467a096bcd71a5b6a0c8155e20810878d434d6125b40443fe11fd292d13a4":"0x03000000"} \ No newline at end of file diff --git a/cumulus/parachains/chain-specs/asset-hub-kusama-genesis.json b/cumulus/parachains/chain-specs/asset-hub-kusama-genesis.json deleted file mode 100644 index d6eeb567c25d..000000000000 --- a/cumulus/parachains/chain-specs/asset-hub-kusama-genesis.json +++ /dev/null @@ -1,77 +0,0 @@ -{ - "name": "Kusama Asset Hub", - "id": "asset-hub-kusama", - "chainType": "Live", - "bootNodes": [ - "/ip4/127.0.0.1/tcp/30333/p2p/12D3KooWHGksh2JFMaW8AkZvyhVpmiXUJnCQbngExTLMdq753ZQR" - ], - "telemetryEndpoints": null, - "protocolId": null, - "properties": { - "ss58Format": 2, - "tokenDecimals": 12, - "tokenSymbol": "KSM" - }, - "relay_chain": "kusama", - "para_id": 1000, - "consensusEngine": null, - "codeSubstitutes": {}, - "genesis": { - "raw": { - "top": { - "0x26aa394eea5630e07c48ae0c9558cef75684a022a34dd8bfa2baaf44f172b710": "0x01", - "0x26aa394eea5630e07c48ae0c9558cef7f9cce9c888469bb1a0dceaa129672ef8": "0x042473746174656d696e65", - "0xcec5070d609dd3497f72bde07fc96ba0726380404683fc89e8233450c8aa195014113a7040518ced617572618050673d59020488a4ffc9d8c6de3062a65977046e6990915617f85fef6d349730": "0x50673d59020488a4ffc9d8c6de3062a65977046e6990915617f85fef6d349730", - "0xcec5070d609dd3497f72bde07fc96ba0878d434d6125b40443fe11fd292d13a4": "0x03000000", - "0x3a65787472696e7369635f696e646578": "0x00000000", - "0xcec5070d609dd3497f72bde07fc96ba04c014e6bf8b8c2c011e7290b85696bb3095cb580595ffbb4fe8102dbc244e7ea2babd9f53236d67403b046154370da5c3ea99def0bd0747a": "0xfe8102dbc244e7ea2babd9f53236d67403b046154370da5c3ea99def0bd0747a", - "0xc2261276cc9d1f8598ea4b6a74b15c2f878d434d6125b40443fe11fd292d13a4": "0x03000000", - "0xcec5070d609dd3497f72bde07fc96ba04c014e6bf8b8c2c011e7290b85696bb3bcf23f8ad989027738144b5398e5d0da5ec936a3af23f5a96e782f676ab19d45f29075ee92eca76a": "0x38144b5398e5d0da5ec936a3af23f5a96e782f676ab19d45f29075ee92eca76a", - "0xcec5070d609dd3497f72bde07fc96ba0e0cdd062e6eaf24295ad4ccfc41d4609": "0x1050673d59020488a4ffc9d8c6de3062a65977046e6990915617f85fef6d34973050673d59020488a4ffc9d8c6de3062a65977046e6990915617f85fef6d349730fe8102dbc244e7ea2babd9f53236d67403b046154370da5c3ea99def0bd0747afe8102dbc244e7ea2babd9f53236d67403b046154370da5c3ea99def0bd0747a38144b5398e5d0da5ec936a3af23f5a96e782f676ab19d45f29075ee92eca76a38144b5398e5d0da5ec936a3af23f5a96e782f676ab19d45f29075ee92eca76a3253947640e309120ae70fa458dcacb915e2ddd78f930f52bd3679ec63fc44153253947640e309120ae70fa458dcacb915e2ddd78f930f52bd3679ec63fc4415", - "0x15464cac3378d46f113cd5b7a4d71c84579f5a43435b04a98d64da0cefe18505": "0x50cd2d03000000000000000000000000", - "0xd5e1a2fa16732ce6906189438c0a82c6878d434d6125b40443fe11fd292d13a4": "0x03000000", - "0x26aa394eea5630e07c48ae0c9558cef7b99d880ec681799c0cf30e8886371da9ceabb9d5dd4f04028168fb9ed26993fd50673d59020488a4ffc9d8c6de3062a65977046e6990915617f85fef6d349730": "0x0000000000000000010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "0x26aa394eea5630e07c48ae0c9558cef7b99d880ec681799c0cf30e8886371da9ffd52a3f716e9278daa12da68261ff683253947640e309120ae70fa458dcacb915e2ddd78f930f52bd3679ec63fc4415": "0x0000000000000000010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "0x1809d78346727a0ef58c0fa03bafa323878d434d6125b40443fe11fd292d13a4": "0x03000000", - "0x26aa394eea5630e07c48ae0c9558cef7a44704b568d21667356a5a050c118746b4def25cfda6ef3a00000000": "0x4545454545454545454545454545454545454545454545454545454545454545", - "0x3c311d57d4daf52904616cf69648081e5e0621c4869aa60c02be9adcc98a0d1d": "0x1050673d59020488a4ffc9d8c6de3062a65977046e6990915617f85fef6d349730fe8102dbc244e7ea2babd9f53236d67403b046154370da5c3ea99def0bd0747a38144b5398e5d0da5ec936a3af23f5a96e782f676ab19d45f29075ee92eca76a3253947640e309120ae70fa458dcacb915e2ddd78f930f52bd3679ec63fc4415", - "0x45323df7cc47150b3930e2666b0aa313878d434d6125b40443fe11fd292d13a4": "0x00000100", - "0x5e8a19e3cd1b7c148b33880c479c0281878d434d6125b40443fe11fd292d13a4": "0x03000000", - "0xcec5070d609dd3497f72bde07fc96ba0726380404683fc89e8233450c8aa1950fb63b830f923ed3561757261803253947640e309120ae70fa458dcacb915e2ddd78f930f52bd3679ec63fc4415": "0x3253947640e309120ae70fa458dcacb915e2ddd78f930f52bd3679ec63fc4415", - "0x0d715f2646c8f85767b5d2764bb2782604a74d81251e398fd8a0a4d55023bb3f": "0xe8030000", - "0x26aa394eea5630e07c48ae0c9558cef7878d434d6125b40443fe11fd292d13a4": "0x03000000", - "0xc2261276cc9d1f8598ea4b6a74b15c2f308ce9615de0775a82f8a94dc3d285a1": "0x01", - "0xcec5070d609dd3497f72bde07fc96ba0726380404683fc89e8233450c8aa1950b062f0665fab654f617572618038144b5398e5d0da5ec936a3af23f5a96e782f676ab19d45f29075ee92eca76a": "0x38144b5398e5d0da5ec936a3af23f5a96e782f676ab19d45f29075ee92eca76a", - "0xcd5c1f6df63bc97f4a8ce37f14a50ca7878d434d6125b40443fe11fd292d13a4": "0x00000100", - "0xd57bce545fb382c34570e5dfbf338f5e878d434d6125b40443fe11fd292d13a4": "0x03000000", - "0x15464cac3378d46f113cd5b7a4d71c84878d434d6125b40443fe11fd292d13a4": "0x03000000", - "0x26aa394eea5630e07c48ae0c9558cef734abf5cb34d6244378cddbf18e849d96": "0x000000000000000000000000000000000000000000000000", - "0x3c311d57d4daf52904616cf69648081e878d434d6125b40443fe11fd292d13a4": "0x00000100", - "0x57f8dc2f5ab09467896f47300f042438878d434d6125b40443fe11fd292d13a4": "0x03000000", - "0x26aa394eea5630e07c48ae0c9558cef78a42f33323cb5ced3b44dd825fda9fcc": "0x4545454545454545454545454545454545454545454545454545454545454545", - "0x7b3237373ffdfeb1cab4222e3b520d6b878d434d6125b40443fe11fd292d13a4": "0x00000100", - "0x3a636f6465": "0x52bc537646db8e0528b52ffd00580479057e7fc669134c108066937498f56deffcabdbfed5cdd23de7df45177859443667fdf148c27ddacef7c874fea7bfacf0ff7601c76607669e4cfd22b21385f3413725de81cf61ff37d2da2684904df6de5bca1d2214bf1291137797f01384d18a596312fcee19f07b8b273cc3bf26fba5df7138c2f798c5e0fe5a11f0ed1674fb20f28eba8b77f1ee54bc8cee2ede4d77ce1d66dbd6943526b197771ce6c76f3ccdfb3637cde3433c9ce2db7eb2fd704c0725fc606900e3c903319258fbc6a3621a689f7cb522f6fccd430b6af8d78a886f87ad883d0093200fb8741026c1b7e9aa06e4dd4d757892bbb10e9f836d1e93e4e1896845bcfd9087b7328c6be4ab4c728d3cc636d5867437335c230f3fc336d461100f82ba1ea0e16db422b6a145650e0afbe5f2eeddbe70c2169d8349529e66ba6b6e9a8936d92f3dbd05f1808b6e413c7842cf30493e664bd1c6243965b0fd686ff3b51fdb51b804d91d814bf3e31b11ac05ed404bc7b7e62f0f805ac47433f8f87d13028dee3b9c3bf1f1fcd68a68fc76249e3f653cf1bcb391d698d5f6b665ad65566b3cf5fd94f1509fce73c8348b4ca78c54a768954d7d679327a444a1829f76d2fea4d4a496e00f80f8d24fda162c544c69eb4f4a6dd14ae1b04565adabccb2e235fdc1a933cd2215ad4ff474ea943a9c43aabea4329a228df2c83781a2ab933dd5f83d8ee3c7ac8dae6e413b9842bfb7a9d3da0f0833d91cb5ef0fd611180dac493ed8e6b53be62ee378b4bbbc3810ea83d52dc88a3af44c0eabb56c5b6bbb84d5767431e9c9dc0a2ae4fb7b7ceff8ae000c9e088931c136f109609bd7f11930a3e33bc0372f273a2e1d9b171d89e8f8367178866d5a900ecae8f81c6cc31d638cbfd88647a43cad0c9e030dce00cab23fcd0d09ac050159e9fd69778b6f321d8ca7bd75dd1fee1694c59423ab8276b4ee4fb75b6d3a0ae5d552b7b756040d91aadf6b1b43bf3b09d28f3611b57b6d5fbab6f3715ccb5ab76c679337c17a7f96b0466840b01604032cbd633509602da805411deff696450331aca48118aa24c1b94fb3c81aa1e3630ca4c0808bde694130b8f2648f68dd288fcb2a3bf191dda47d69f83887b420185c69ce2225c14cfbccb4db6c5d80876e59bb6535eb596dee34d92fddea6e564b3acb596d412dd8d2ee7016e11f74fc9b44dce3775a500ba4d0f01ccfb3c81bf2ceb4b51f5c976efbc1778759e5e60745767b0b02a2435b2222444851465712c8400bb42b0990f0832155193ce826edcb974084bafaac010d333de8ea83a507d61abafab8600dddce93480f3328a1eb133228a1db9788fcf9793f3fdd5e8a1bc3d0c14fc323b4eba277f4be0658f48ee65ba226db7c8b3378abcd1da6759b0fff686ded476d413500a3f9ef6f0ee1bbe3b897b586592df5bbcb688ac023f0c0d76da65068380b664dda972f5f8eec685a4b2f8342638b21006886476897f97003a02dbeda74190fffdd62773787ec21a43e563726d516444596f6e176b4f2a16c3b1c7ed98e76d98ee6acf5663e56b797e0f21c2cd6c1b6dbbb386b3b7a0f226652a470225e0a1114a59c789e3aed3444aa6eb489a8a134c9d13edc4bafc4c3b7317490b69e181d33292d08ea2148fc43c74ccaa796354074cca44812832f5fbe7cc989b7a0e37d0dc65093fdd257809e131bbf7da1097ef738ce726d49695bb2783235146e1138d90ea2ad67c1acd5a1ad78e1a1ade98259fb66db70ea44006b7fd308d66eb939a489d1c468abc175d48e502d41b7cdb861d6cce846312605d18ee23067dba58db2a5e79e128e607b4bb4ad3304e6fe80a8d81cfe4c7b993b82eddb53601d813d2661560382bdf7e8f605195fe8f3202561020b9833c53934f4c13635a321f27e5e3b8c3b9eb36d1e6c13e9749fd8ed56a48ec3f1eae9adc97e697c794b66adb5e33095ed250fb669b25f9aaf9839f1893d7dd3d04df64b931d1d6f7136bd65957b7add9e8ec32d5b5af7ed9cb58eb4351f13adee8ddb8c008e7b9b439cb376eac82b03495840e5e53c1ea3e18f609b4a4222036c53671adad4a605026cc30d1fc48c863f00dfb89c16c66b5a5aa66b90a689907fcbbd6be70e17e12f4f1dfece22eefc368b6ca445f63966d8061e93e9993ab478782b66ad1f509242bc62b6dfb913bf6f93c8c68c7f54d0cb36eccae81680125c79044b44243eba4797b56ed3f96eba3c740e4e50b65d06655b5e3e6ee3e9136d8dc392f2c8436ba765b9eb08a4d7ad36a7e9ceb9cbbeb5198dfbde9d331a77fe744bdeda79044eb7e6a34edfcb6cb2f8da39843f5d667c47843f5d4ec76178271152d4cb88994fec782a52197c8c4df64bcb5b2ef3b9da3d6695e15ddd7692b6e6c30d817791d652c74f5975e7919f6e3927d79df8c4b6eea4492be3e7a77d609abacfd5d5adebfa755d57194d1d872d2b6bc2806eedc7b6bb3278ab4d22dba5a95b55d68401bded87bccb2ab73c7cb503efde64bf34f5361f506a8ab6e6431e875d56b7e5790e8197d41dc74d116695bfb7dc2d77b98cbfdbee8f62d5ca23ac008b19d1bbf5f8d6ceb6236cb3ed56daad8055dd1241ebed4d52f2419aa2b219d9de8ad86ed9639b20dd0eb3c7a44604beba55657c55197c9b3bd5a1c3e12a6bbd939aa468db6a53a7ed08631275f9e93b752a5a4b5d1dc7e1f094cd645466c10cca765d28dbd4adbdaa8c3acc5a3fcbf13a176ae29a66886b7949df7eb46fc38ca23cd3e5abacf59b4d64c3b76964123526d51cddfe48ed3b87c4b757d9769b43b625935acc68e29b173f3fdda3ad29abd3e52dab4d8ad65253afb2ba5d5d6675677fbac906756b3faacbe3b82adb5319bf4d1d3e0ecbac3579f53dd226db9096a67d6658cd0a4f3823105690811c02e1869c36adc6566bcb059b61d21e63d2fe0058fd5ebd5f227abf4f00dbc0de9f6d5a901aa8f49e07df6cce763dc0f78dc7529e16e4f82ed3c178dc83e8da7babb5226a9086257844d5f0f0bd3a5aa3b47ba520d0d8d0905e797fcbde617601206398c2979c76975528dad5f89e92153dbd4669f8d68c680d486d4152d6d03edb1365d2c6e826eecb978ef40a14ed514a472823e7d19f0a45435add2bd57c1ce7b220dadaeb65ed6d6ea071a14a4e0ba25d942db1e32f5856bb4a0e479b529021c51629b090828a9683f11bff5969bebcb003588ded1b0fd1de2cab29006b41517039dbf0f924b661e628829a5d0e337313d63ee3371eac84d5baf1a858f3adbddbd7abd9727bf7b6e7719bbd9e653414181177504389d372576b45ec6bdd7641b06df7f636771c9596bb36733da1c4ab4b43b942ad0827fbd34d18d07b3ecf23efe7a7f73b89603fbdbfd8a635bf4d22fbd3db1ad62d0025b70c07ab75639bca6f7ffc7d6d6f4c6a4c7a0f82f1dbdddb3cc2e769b431e9514771b8c42b01ab29007baf330d1f846daa24826d2a46629b1aa4e1e10fc036afe1174eb8a2e173f00de7c037b6715d13d0101e631b3ebc0cdbb8c3c35f6cb3876f3c20e5694151aca6008ccf36f591d8c69d07db70bb202955dafde21bcef1c15d73b47bdbedb1da1b8f1aa4ddadd61e935afb33d20e8fc356cbaa5b6d5ab496da7acbeabb7d339e6d478f493eaea7cfb04dbc7b0e2b5214add4a753501c631b4adefdcaaa13dd6e51d9b6d598747de7cef663d245ebf5e954d6faca7c5ccb5bcb6d5d88ca5a479935264977d382e734aea93edddeda8f7a75bbbbe5e4ca7db7b2ea2d6b53a7929797b557cbe2ad3697d652ef5be666dbd1ab244db7de6c6d7431890793dca93726c99f491495b4b6bfe3308edb2cbe614ce2efd48994a608fc7e291fbeaccda592497c6ca665ad2fddcdfbf9f9f9f9c97127b522dcbef208d22d00a56aa115abf9c0ac7683b5201554d12d48054042ba05fd84d156b3c15ad00f16ddba357fe71058d04f175d5ff3e55ecae66e1ad754acf715eb2abb9dffd8667a7b639bf776c936addba34260f05306cfd7cbb677c2c3296b6ded24120f698d8fb7b8cd22a28ec7e1976d4f596b9e3aefd65e308b6fb331a9ca58569b90d6271a7ecaaaece931abf18d49d3715ccc5a4f597ded6eed15b3d66d42eae3fad1c72426ed1b0f8ecb5dac3861ed2d5a8d6ddcabecf6b6d9b6b5d766ad1fdbf0db2d97b5e66cbb1fdbecdb2dbe5cb6b7d64d9dbdc59710cc1d878c027b77e7bba9c354086c6fc18be7becd475f9b3a8e3626f1711887db3ca2f51e8771d865ad4bbc7bc56a05c02c51e351dfee8d6f1ed7b8b75bcd07b653a731a9ca766f7367bb31c91d870d8055acddf9ee16c636adddadbd30b6694c6a7797619bbd7b639bed2abb62eddea6ce1e877198339a22b2f9b299d214e1bff31ff5d95eda98545fb7b74964cfb4f2f738dc7838caf36e0128f12e16565300c6776f6c5367dadd7d866ddadd73b0cddefdf1cde6b8636cd3bec8620eedded8a6759569f7c6c3519e770b406977c76a40b016f4f3d3a36e5f84618c6e23abb5e582d16e414af8d253b7202578e9ed66c36a04c01ab4da0fac41abf5c01a9cc430c2862554f00e100e300e500ef00a6805fa00fe2006228a11c910cb10cd308d61da326d61e2c2d48515c2c3c323034a8153c0154419c42a4421c42b100ff106b18a8908d00c11101b84f88648c62484a90813165316d315310fd18ce825eae1f1e059e151e155e179316199ce3099611223120116610a02b402bc02fc22ee000602fe019e010131c56182c344c6f486c90d531ba6312636b8311c1bdc1a2634f01e262f4c5f98c0c07ee032980edc83d887e887b887c807fe438c43a4433c4344434c43ec12d5c07ce02f510a310a110ab18bf884e884d884c8452c02cb81cf603dc02ff127aa204611a58852221cd80cee03e3c1b560ea02ebe0a8b8299c140c0886439c4394839bc281e0396c175c07b6838b82f3f0aee0801c0b380e4e05910bb10b710bf1cbb482698aa98a69cae483c9cad4832907d30e261e4c564c544c40d30b26292619443b4c3198543055996a30b5609ac1c48288875846bc43acc32465a23245310161a28183827b82d3829b42a482c3e2ae381fb82b5c0f9c10dc0ef8064cc566d932f60e8b8795c3d601d201ce61e9b073d837ac1bd60bcb85ddc282b15ad82c2c1656cb7eb157d836ec18cb865dc3aa61bb6c1a160d7b861563cdb0655832ec13160a1b87e5628db0572c10f607eb83f887272e60817582089420f980073ac0010d3820044520808806ac1d360b488612c4232c166805f4f292f090f0b2ec0ef64a44c2ca60ab6c0c1606fb82a5b22ed829db82055a16ec0a768a95b2526c14ab82fd29454901142838816b4306160cab4505205064bff0000a24008795606db77d5ea0d829799204089038918412269020b1d62dc144091224555b253d2048c28709094280c44709254e962cc16409122437263584de0e9440d244089810e9e969a2013e4a28e9e969a2013d9e15ed49cf92247c942c814489921004f170d09a08019325484ce04409099a2059e244fb30513202132481c45f154d89124c9a60822409244b9c68254a306922023e4c48d084124ab48e5783259a5042c9123b1e15ed890994f02079f2c4044a8a306962c993274a2890bd19b4122c71a29d28e171d204068e640fa829f1496289253d494041a284044a4820810a2ca144042248a2023d9e94f6844709254c280188f6c4878912274a9860b2e4ae0f4c968480c699d19458f284c912273e4f284162821e279c48028913254bf42c21410e8f124df4e4e4707768234092844f124b24e1a3c4c8c8d9e1044b7a9258e2b384c9121a8e0e8d4789267a408044890f099450f28412182787e6a489065c2e0eed8992253e4b9c34c1840f0992887170684c9a58e2938413122c81c4a7899e27489638d149382141d3a801a94c5fcc814ab792d5827e7e7a4bee46e425f012d6899d5e6bad09117280030811e26a1e647ebbbca175f4b110cfc1371900c22040dce38a798a91e1ab184e939ba49bdc7b5305dd6b104ed0bd0a323bf7de73efccf0b957801f3f2084ccce4d0d42c730c6c7cc103eb81042ae9821dc6dcc0c193284f03d38bdf72074fbe074efc1f720f383707a3e1e7c3d1e012264764e420879e16358c303428670a19b26e71e7c6f82cf0a8005d7317455052574ec203333c551c30c1f64863224c82f88678382ee45f820bf017028c42f148230147221661600f380904310c21084701986b88221071986e00b7108866028149a1edcdd65c80c21ac98210c00c3062dd7d84ded3908213c7cfc16b6e7e07b6e5a079942c8195c667ecf41866e1752103e081f64f81e43f8981fc307df7bbbfbdc830b23c77570dd2e2f9ca6d718beb70b213f085f730e4207d7c1ca7165bdb71584ef4d0fc237590f00d3249dabe47b53febbcbd5c217dfe31dbbbba107e12e33c35d08dd3ef8a083d04dcfc9c9590098aaaa7aef4186fb9cf576e104a785efc1e79a7370775fd3d1da6edbcdd1f6edee5aef6d8cbb3bb5277350cc340b215cb8dba6d720c7f75e555555358931a1c1cd6600255094f42079228911ecf8134a9660b2040993254930a1440842d004c52182267a908880c9121188a0899e1b4160376ee0e051220910f4f4344180191c320090b951a3f2512289274c9270e283c467c90846d004c906b54123f34489089824c184121463a2c4092792c83182253e4c48e084da08810f0974d850c204121f264b9c38814489274b4690a3c6124a9c2859c24913486c861042c912273e0438808d8e279a28810f006c8610a24633001142180089104a7892e8010112113059c2c4932498b8909e9e253c41683c0942c6a78926483149287102a3840789cf134a98f880f151228220464f7c9e2c794209019e581202254e9c0882394942498f124894882009274df83c41b244cf12269440e2d343822442a064899a380200b012272140e2a4099f249468a2a727891c958f93247c9e04214400444a7c9270a28489121138792280d0124a9e3c51e2c4891134a10412274aa034a1841227489278b284124a901880c76608219c5042c9939bc984123e49800009134f96305912021214264adcd50c808449134b9e38510205890942b0c489122848106080218610620925489af071c2044e9440e2f38492004061a2c4c1343681932646a06404110a1325aec794033f58a24a30498b529a92b42851a26ca995a24429954a712abd24514a2f4a9428254ed2a294a624ad5492495aa914c525296dc92589b2cd2569513649a9458912c52589b2513649942d458912e52589b25138498b12859394364a89934469494a5b8a1293b49624ca966092d29636492b9538496ba552a9f492b4d27292d2964a25976408dec3b6d676044f926801ed476c5d6a0cc16a3c5e3b407549ab6c19638c355edec7757ca44164e683c4a468f1c8c1a4f8a8ef943538ba9874372383c918bfb7288a92a7e4792828a98c11d61e22dc0404cbbdba3b77767fb4b98cb326f6d93cc7ad9b117cf7e569ce39ce7cb8db5b5785e5da0cf58956d913bcfc42082bfc744865b0ab65d65ed3e3abbccc9ac0a6cbe93c92b6b501c69f68ccfe64ed294dfba8585684cff18a5a7b73782003d006ed960da35ecfc9cccd228e48a474870c5534fcc436aeae1775b5747bd3f931e3990e27796d8c97f1e7a7e1237c24c37df2d2d38e3bfc820b190d1fb1118661570ca4f56af83ad22a331ef9782ab3b0596463144d22f2719a1eb389d2548f6fdd66458730378e83d70c8f200938a202497a9e9052c50a2cbb05db70bf5b325725d3ed33dddadf358bec18ca6867c4ddc26226a749444e34aec6363cf190aaf2fc8a55997a2a2be23e3d4e2292620bff2691c86f9b83a10dbabe60bda02c5469f75267c10a1112146f1681eda03091f7f3d31a90a547525004ee976ee29c4cf791eff16e0e29f574472b5bd3c550b8a75bf27252d226ae27f76804d2579ad6b18013e09c73ce394772d3d421312903a476d323bd071f430e42da85d039e7de7bae0d101e11d4e07bef3df8f75e6badc9d1012e26ed14217cac03e13e2f6093ed27a5de4f53fb0121ce14a3840b2385710cf8de7befbd07617cefb57e3f0e6be37b1be3bef7e08310be2a6d8a31c61879b7b911124c923fc9479069fa4e2edbc7ddc369e5d4d92d1ef73ec6462b146d777231c6dd297ecaa6088694524ab95208466de4d9f3e3eb521a22135387a7a80f26498a9292a2284a4aa6288a9297524aea52ca53144549cad382a63310d1d007d682249370f8000d7d700de46f8cd3280793b043278f394666869121076948723570779a383e92bb9921359c69c8926d229f799a81194d002d3d40e0a27d740b02029569e2701c3111e16b300fae5b6badb5e5d112cccb3abcb435e776dd9eb7b5c6dbcce072bc2f846e448493d7efbd078fe09c734e08168fc3efbd51079844bdcec829c2bb5f16b54f7264388d6c3ff99e739256285a9e338aa22899f173ce652f73d3463c4409a7294792182384d139f75c150e48c3eeeeeedbe1d49961d2b27392dfe0a8024c5ae6bd73ccccec989977df3b3384eeb1dbefeef24a616666e75c7c9d9961271dcca264e6e7f809d0bd353333bbf37ba3204cc2987431e9bde75e9c3aef3df8de739419425a5f3fd25a72d03966664719b2c139e79c7b71ea4c74dfc2af8c6e2e9d79eebd9841f8de83efbde71c141dff324b08364df1b93be7dc3a2edd7c605c5e7befbdf736e1e11b418049f27566fa4c0eb6717f87998c02cbb6a7636cb30dfebd5bd362d9c5a4f8291ec6f8378d6cc3182fa74e8c718adcf190d6edf81e143d3d5a4230f8066973137c84efbd1824f2818b961670d1022cdd827c008475ab420b80da6a3758ab0290976e4156bc742575fc4cb72a006d694b14db9fb44e65db386414184d9177ea147daf14a521023f1d7eb2a8bca3399814bf42b0e93b657d52cae9cd8d3026611793a63b29f5f4372593a6efc4618b8601ac05fde08ce6d12de80761a8251bf9d6566b3b8b6c4b5a275a7db827ba1387a09d386ce124dd89c3164c6a3dbdb5e5b8a7efc4018b9d3860b105dfccb89af866b3bd13872e98d41a8aa63e65f575f58aceaaa275f2e1969fb29d3870c1a4d63b7108d2d98903166c53ead63c67e2e39b8b33a39d38606152eb2ab3b40981b613072c98d41a8783408e67588d47b5da05618c94183633f3a641e395d43215a42abc5531c3eaf0148e835973cec64c0d1a9fa153d8a07344a3615e63f41957339289c9e04359ccad5bd32504e3b91225484e16d3e5a7a9132f519398d752c7d0276e0e811765a2c3ac31497498ac46096a988bb671081e872dab5d5416cad6c9f4074004e24b536ff2a4d450a6a628dbf0bccb6fbccca1d55a11500656acbe923ae695d4325f1abb65ed35fa47879fc9ce35b247a41a8f79e39bf9d01bdfcc9cc61bdfd8380ccca9db90344e7d060bd13ad331a73eb3c63514ad33378d6b620e5f236b5c03e15b4f5f3af4eaf575b5de24be42514445a1dce82bf3d443596b3f285ae1ad26f14f78a8cb9c87a24d448f87e29a0926596fcd4785b4497c0d1d8a6b26aab7a953b546aaa11aa24de2a94311bd32690b6a7c8a2041dad5c041c2d5b8dff8fc7ccb99af416a1cc75bce14363ef3d66a681c079de2067f328dcff0675c0dbfb62ded8ee370d846d65a0d0cadb2635e236bad26e6a3acbe634e23ab58c75099b79e7ebab51f18ad3214deaa48b4351d8794029b6ebdbeb66eed65bd4eb77a12994e1d66d43c3211a10e69754d851c95b50ef10563e89352c364f2a30c1365f5f59555f0f038a414acfa7e698b56eaa1bfa913a24260a1c349847a88d68ad6d7f014bd320fe715a0e74c1a25484e16f016cc6888bc8697fd7a0a5c60d139ba4d818b2a6df105b3ba0d4504b5d44ca6f6710d5f6ab2f0b25b5b590bba624557f0143502655b521a22b2e37ba686e27aa291c83ba41793f62e0a2cc9285baa9ea80f56177e8005d10fbc682ed4da8fc6a425d64eeb26fba5f7bbeba4cb7eb0c5fbc11096977f400376ec6c9ce19e7b35dcf0e08395189bfd21363ff44c6b3fda0f38dfa6cb64fbc1c791046b413e00a3ebd5cc8f92ad88e8056757b7201f70d1568bf039de3685ac2c96e8467cd5d1edd5a8232244d32b4cd7aa8d900b845fe57bb58cb81608bf8850fbc1afaed9c8b73d9a5fd1ca4dc41ad1164885e1d17c8a56ee4a44f36566a391f82e33a22da902a01ba90aa0f9728da8d17ef0f9d71a21b340f87c237c10c136ad9196d61b5547f321adfc9e0eb3e931c3d8668275a21bff0eff5eeac74e5e57ac995ab706abf1a8bba5e1ad2088983140ade956b36ef2867cbda857ac9b0cdfda1da6d16ade754801f4fb8f7e9707e8f7baa3ab94693fdedd23bd53599561520691ee2603ae06beee98b15eb1eb557695fd3e83d8b446aa3b96d61d1970370be46ae0e545abc42c5ab1056a086f2d90bbd921b41af823546942150d770a0d5fd74ac373fb01a160757f1a5aae2d8764da8fd6fbc33695464b619bcad3eff0558635d29ecaae46dacb4c36d27eca5e6ba4fdce2132d835440e79cdb4c924f2fa51da5c4ddd2c0d170b26c16361127c5d2cbd5bba05a03445d9d2baa90b50787db89f0ff70ed9bfdebf5e4a5364df9ac16a3c2c21d836266d2b82db1ac12aa8efc6fa3b4f9d698dd86e7b7ed44d9d29cac735f096641b38f1c24f990fe6eede487ccb09c19a4e93c72478a44d1d6a3aac0e273765af77568efa705794a608757747a170efa926eecb191c8508ff74136b39abafe397a711e784ba8f6c273eaee3b701e1acc28edfaca2a0dddd3442d16da478c4b59b5406859bba355d6e1e79bdb7e4d5a611d794e375a1ea9cd51de2baa24d5c53d44d47af003d47529d481f936063127cc5dcf91847d9927bd08b45137aebfa0e856845a26b4f90e66952a1b86622f476f9d6d3f754d624f45aea508886fea4d421fa84cae69535a9af2bf577857cb6ab57c7e1965dc77154366fed15caa899bdbeb22692caa83f2935459f58b4474a8942050de54653af686ba4da68138a5e6981fb148d27da1c9d026b818d9c29a0a87ae00325e0a00652d082951c28a6b8abe147695cb000628a30c6084320b2c8817f7f6f39eff13953b8b756235580b59c29b056b38f740a489bab697f147335ed2d670a47a790aea67dc6d5b4cb28afb4ce9941f498c46fead3db85606e779756caa232f91d3e0e90001eafa9b345358aba10cc5db20d45eb5b9edfeb0cacb229778a5649697bb7e648ab84b462ed72f44cbf77631b77f372f8edb55c3786c6edd12a1dad58b71ca67506069392c57e05cfc9825fe275e2dcf66a6109c1a6e3b01358757fdf3777f8fabe74ca9efb3be2cef33ed1d767e35edf5f265f3fd73cef8fd60260af5bb371c2edc33c8bb82f5f5ed6da72d7dbae6c44bc3565326b02e36ecd4eb66791f6e54bbb5bf16a45f8703b0634b6d977be746feb6b87b927588d4785555a11f2eded0a67d0d2f2d6db9706d8dbfd7a0dd2f3f500a15722dabd26a0a75bafa4ead547bf0eeaca3fedb0a6a8cceaa5856de0ddce7b74ecf5b5ac12d23aa218755a644369226aea2251d6c47dc9aadbb2450c329c193f54aab8224b175ac2e83287e7054ab1ae6cdb69619bd0dddd2c12a255665aef9218868414fc93138fc357d69a6a0d48b58e44694b3a492bb7c545f3df912b9c014bf3a7bf69c479c124f7496b0e26b95fd469897326dbde1960d505b5735ad8c6ba33c2b7689de611ac5bfb71843f35d9a6a6b6f085a4c4bf6f539925857f72d8bd6bca2c78bd8ca7eb659b13b3153c270b796ba226760b2f99f1c853b7e235651c45cbcc7df9d252f4446556a3a8a0e597a64a3d8ff06ba92799754f19f79b3b0c68499b30a0e5adb9d3829afa696a839aa24d36a8e59fa4adfdd8b536f271f8652ec705392fd8860fab740b40c98ab20b2b33acc683e1dbf906fbf9f951414ee3dd5dde85900a8131e45ddea54eb0f73de43f7efcf8bd33583b3c2c21d8de5abe96af7ddbb6f8fb7adf5bd69a84579b11d8be98d4aea6b35408eccdf72047b47e44ec6cd409e6eeb6b94d40b7cb29b0377bc16a3e30b7a5df2d21d8744b083631c9da4b08d6985479f474524fb71a2ff30bb5f663fad5f846ca8eff2dbeddda9149e1c48e5b42b0e96dea5cd9711cc621a3c0e6a737e7a4574e819eb3e3d67bd67276642da7cd09c72d1cd9b695b522a2ebe9d47aa1fd78b79c8ccc69583232f388d632b71ebc705cd7cc0dac63a5bab59af869daa2db0ed6be088317ed1ec31046bb7609c1b0b7a90373ab35eaf058536fad883ad3d4778bbb7159660e6f60385edd657137ff7bd58a887f976b848d8f8e83d699ae2ecb8edfa01513b5cc675c967eb791b50644e6cfa65623f31a996b2499efc85aaba9365ae6a31d2df398b5f6a372cbdc81b146b4225a57eeeac0e8df788f47b3899f4ef2d16c625ec74c46116fd1983a910a81c5c498d03ca275ccdb1cf28eb1ae9d3b3197b90e8de3f0ccaa8ecf8bb22a7abc35af296b1d6770ccb8e3f8220c337af4995bd415b36d1dd976bc4cf666ae9999df9899993935756edcaaae9d3b7152f3b2b231aaf1f715a3cb18d6cc85236bbd2393b2e32b78ce0e9a850e1d07c0a75bd7716baf49c78d79446b1d1f4d1d00dcb2ae986c7499ec3169f4a823abdb328f9943b869d0c6a411ad3d57d334d91e1dcaebf826a28e545228db235a653edfe61099d3380e8fe68e8c9c644ee334649c14b6b9f17707c436337f7754d826de3a0d19b689f97bcc9c1526bd0320735730e95d47e6b05857cc745c66eee878bc15339a5b36f8d33c32aa31294d111d9ff98c0e4ae3aa3187d03cdeb266ae367722a5f9ce1d9a26db390ee5e1389fa6c9f68d4379dd64cbe8993711f50c6ded479db98dc779c41d0785b29d83d6f879388f8c3e43a16cdfa035bec6715ca4a131776828cfbc3c4f8dfb6c8f4ec36e1b0d0cc5e3c85adfc85c154c7a9fc99c154cc2d257cc360c26bddbc8960b93de47d98ac1a4f71ad97661d23b8d6cc760d2bb4cb66430e93d26db39b85056b743a7e690edddd27ebc8f000bc2a477ec30990f26bd5b30577cbd315f4737cdd58c5ea99ede5a113bad439fbeed66b7b89af7e9325367b7b81be96adee5885689f5a415ebba5b5c4d9de92a672646493d58959544865644932d237efb9de711f778378bb8ef16b6e1bf6f186c13ffbe5c5a11addfe12ce29a6c8b44c771a2ac75286b3debabacce3495399964e6b39da4d5ecc9906560afd5d4e6a5f775a62decda395121b020dd260f16696d5d7abfdfe26e70ae54e19ad6ef8d6d70ae54c1a4d69056d975b7f47be3f1288fdb42c334c4b09ce30bc1e04e9de9ded4d9ef84f489763eda98e476bfb05a01302609e8cd1e9378677b0956316619b6e94940ef79a6f90abcce15a0e7401a25013959d01479edfeda519a22eeef8ed68db225c75b8623ad00b05b5011cc3882593d9883cbd22b72b74494dfb62dcee47942a02405ce561e877b10d4d6e5f76da9acba95d5eb3cd4ad78f9770b0344bf4b66d53acf398fc37cc94c74be30ec32ab5232bd825d04af1614f51064ba64d6fed0d82dc8db5cc48ec30d2ebf5048664d8c76d97628e3e338781e79ebaf5a6f73676f59d671d862f926a53c0eef24226fddb244196d6b2f115f227789e025cae639738dcd5bd38c0036dfa6116c1e87e7ad06271ca15a829ee71665cd8cb6aaec9a3b933a6177abca2eca5cf17565d5a77b2814bae896a89a2e720fbd316db25f1cdf0a55dcd5f4d034b326fba5d44c5bf351fd72dff66d4791624ca2fde80c93f8db51b63459c6a10756748e6e413c08445ba2d68aa8414aa2f7ea6caa6ee2be3c38463fdac47df9221f4599485ae57b4a4728a321650245bfefe55df6dee691c6852a2de9956845e9ba15524c142025a82193c6852a0d5f4fd0928214092c510032062ac827da9ddb5fe6dee606acc8997e6aa0e10852c0e1e77daffce8784110a8b0e24400568ca0e5c7c78936465ff90132062afc40518094a0274ed0f057a26863e44cf4a78d91d32814ed5198f0c0076450c1193f3f3991fe48f9f9d93b5a9d689781911ad020844048f1e54b4e3b0e1f21c351b8e45cac827b6f92100698ccca8be252292e5d1fbce652625820ecc5b2dac519cb8ce27ab559dd6547b40794dadaa9fedef7fdbd7aa22bba53dda2720a8ca648f5f8f88a566f4caa68ed69f7690ea1e44c739325b9aca58a288a7e018944228ba70843557688d61585427c5d53ae29d7946b4a95d03e3758b9802e2a566cae53d37b1390bb195df4e445a2494e734e5a17e8a23d573febd3025dd735c5ca96440ca5500506e602baaad0ba17956bca3505e61710cc5505e6a2b24018cc0261d76824bf30a3b7d1bbae29d7946bca35a54a0fac5c4017950be8aa7251b9a85c177f5a59207e9f55265bb9ba6e15e657b6526556b189f97c286b4c9a33e69a175f53ae29d7946bca7351064154aa50d14be5f5872c5b70d14590175ada3b03cb9205cb8265c1fa9025cb165c7411e405dbc4eb02baa65c61058b952bb06c05b1fc416626078f93ae2917153f60f2adae953e602b339383c749d794abcab364d90293e1714db980b02c54ba72967a711677b3565c8d7b95eed7148bd6ad2a8ad605ca72616bc5dd5c97956b4a90d586ca8ab72c0831786c2535459e3b3cf0f25365ddba4e65f5358561388eb24e5dd83c454d6b3afcacd361f3a1109d164f115ec4a1297218f54b24e2105b9f77bf2c49eb14a163d14217b0c1ca1ab2b4906e5fa8e18c27636b0d2d9e5729d7404607d1ed8b350449197af52ee7297eef4f7e7aefbd338bce6ff417f3e9c17c7acc2469954f5e464ef2d863e461e4f5113689f8f94cfc2a93516021ea33f5b33ec928b0497b66fa59bfa8bfb9f3288f355515456133af24e248450d73680274fb420d413d8617bd32e8f6051bb2b4957eada9376b8aa1b5d43157e87a68a9af7c1543a19b3b3cd42b233b61b046d4523f24fa95d5d757cc3e86e2b82bf4eb6d1e1171c7fc17f5e1be5eb1d0d4f1d43139c550eca311bd8e855edf6fa6e3eb6b481de68d77b4d8ca29e6bae89730ef7ae8187dd5a78b4274665726b36b16b1baa235bad3f0e564a55b004ad8422fdab0650d5eba4b972a1aa885e8f6c5186174969e6eb56fab3bab945adeaaef7d525923f8cfdd878dbc4329b0faba526f6fd487d659a5e35987bad58060ed8b360435a9db176da862ca30a9b54a9d927bec98758a7f61af3d33cd87f99b3b3c4ceb1ec7bbe3b7d0abc4de617e601e6aee26ab33d3afabfa4c3d7fbd72167723fa2473a6158b395f266b5cc3b4ca348dc35099c39c46d6b80686d6ab3974990ce631190cad23da33d3d5312aca5e33ad3d333d2f3a6516f599baa2543c4bcab39f1ee1dd4469b31ad2ba7f8e622e4bb7004471f3c52e56e3515d9776df2aace85d6a846386c960bb87eaaaaaeca2b524970fd88cbb592d333db366603cd461d7d572ed82b15bd8260c31b60bdb5cd5dda76a299d89a213060b64b7d82c5c64815cb08ddc0a72c136d7dd770f15acaa4c34ea01936f75b398812d35fd9d1484c8d575bb4e182c904945d7f8851ab290560bdbb42fd480a5dd178c3750d1ee397c4c182c9038d1496581c0ba45de8c962aea0c6b71379bc5d5b8535a584bbb4f18ac114babcfd4fbea33f545ab5b3f6dd1ea33b5a4d2d01d879402eb99e9958fff66a9e8d52bd34b6bcf4c4b2aa72ced1eb3098305e2ba5c31d8d6a66025073dc3a429d8a0f1c0aa42153c4c614a2082f03085276899ba0505c92186f60a56d01982c21004c6b60dea2228cbf2729095a02a825ee046dd82a47046cf30093a2785394cddacf0031cb493c218edd849210c2b90418514b600292fa4c045cf4c72d271f449018b147e2043f20acc11bee6d7b422acd7cec9d6700c815552175b74e5d13cb355e6609baaf9f2e29b96c32dc8e5c0da6e6fc61259dc0c40058b659abba1a900fcfc7c29a75dba1b9a0bcc871efa7ce3d1cde5c064b6d39aa4436a3f7666d77958392e1e3c6e6539e28cac4e5df65cb5e76aea6460d5a923156d4ce2c12ad6ae66ff326c8ac2a57d0e0c4c2ee7aede3bc717ff39e62d83450a4200587b160f6c8679990600631c8b62edc518330c1ef11d43b601808d2c1d587b560e1a1c9610ec0626258bc643f00d600d0083aeb92d673d18aaa5d2ee05ac95023683d9a88185ace643a7e7f2b9fabde76a373155398ed53b45d19c8a56ac990626258b4966cf8ab45e1dff5e9d4fbd569f68f5ea9da7a29249fc28d573b57b7bceedebb9da51f95a405b954bae70392cf3fa92b126d002d1072200a10e6ee0411fccc869d4e86212a98908da0115379cc309d8aea85cba03166cbb17584760dced8b33a8214608b62c47d802661abee12404db73b68d44e4351771cd9fda328649c9c2c9c7ecca60636cb30dbfcde6b9e913a58974c8c2c661c838b044f0d492ed4382c65847437b8425ffd88649f2ed1b056c62d3a56401e379c8095c2b05ccc2a464e19e0e6bc87645635112939205bbb7190b62ed3de67683610d9b3077d37220ad72a215eb9c88394c4a166f866d96baf847b128c32447dd94cd74c5e61e6392fb4c7cbc9b74a293d798bbd99c23603f233821d8c6bc324c95d82b257ab542afa2f98a5dd66b0d23aa571bd4eb0d1daf0080af6f45c4abfd708fc96603e20e93891ac91d66ad01811fc5b43b26d3eea21aed1ec2d1ee93a6dd2f1ded6e650ba4d21f32eb2a331f598fefd841801d0000400d0074e820e9c89123881c343403a0c1814300386edce0716366260033366c501b356a643568d0380d19991d32313100888181d101331ae51861180d2612e1108542374273ceccebb27159560dabaa6854142543491923a709668a71149bdbb51ffb8ac1e68b5a11affdd8d7ee21e7da0fd7fcc9dc7e5853c66ded15b72db8edb9d0461d78b52260fbb17753075e5a6f1b875afbb1a57e94317e105155056bc8f6626db2866c37cc9d86d57c6042307843bddda232294bb388f13105ed1a9e1f14f8e724720302ef5ecc6aac2730c28d040fdfa1cc2a37dcf603be4669c713bb2b944046b7202570e902740b52c2101ade7adb4890db72a8b51f905ed9ef4f60399701628af039de24b0168484337a8085e3296ce1e52404359a842cecd825c10a4cb7a02450e999bf1d3cb6d91102164c6a6d471012e6d03bba0521018c6e234b096cdf304b088631896598c4eee61d7e3397d5b7831914595400fe5128de2114f0ed0bd6a47569f796d37888ba8f5356a1886ca3c30868e896f3b296b3737fda07f6522460183b1642bc258af0d99539646640cf99d61b2f605228b2081d8a2ce2e7adebbdcd2214f5362b91e82e7411e5e1871edd43b4967a662d87e57db8c83b45e324e39b8ea4426051c6c7699ae2b7234d9177f7e7a26ca972ae0c5df02116dd82906005f5062f8f042a67b81b28aabbb72a6b3cc434db3402290fbb1b284a39d2d5c0d998449d5c404a7335aeb65754ba1a3e02df68a528c653a73726c934cf23f092d66d9e8942ba14bb2b38e79c73ce317f9f19ac8d87336b4cbae4abac42d1d5df1cf26ed1ba6dddaaf1b0ba5bd9152cbe85de43536744b10ce8395885a242b1008c42d178087828b047693c84e88d876023edf13c8d843ee561569d33eaa3cc1dcb5a8e05af26a2d6e7df7f6559eb6a3a251f7cfb04efc33b31529a220b697d34ca96a67b4048602dc80867b4083e97c928b0eaf3661fde8190f2b83bab4d86d9cec624e8c370371056e351b98c9eb060c1a4e9375a901661b4bbd95e2660dc65a48517dd82b4d8a281740bd2424aaf1777c354d85ddc0588ca129839a7bae49bea4b0619341278e767e051a0cda1ce14cb8094153020873ad0e6c83757c3404c983b6ecc816d00c036353ef399c15c08362f040340b65d23dbde916ddf98b37ab38460a363c7e199acb515af364d80c028225ccdf42a7be2a9de8e5085a8961a4674631e06e6d58c113df44b08b65a44532707173160321a9acb69a4a23cd334024379aacfcf2aabe8080a2750b0fbe8b888ce1bbff16b1a09d15ba2524f9aebc89aec689e1c6f8d654d76748e8f329eeaad690e93edc86e64bb25c771f8cfb20593a620dea60e8fe37090174ce2302c398fc0bca2b5fa348f883e69ad157d526aec15f650631b1d9fa7a691185a2b398d8442175d845d9431972d59858207e623ec1556ed123026638c2e31cc41ee86bbe808eae9960e1dafc6ab1aaf463ab2aa4347171d1993d145878e31ba90b1231472352ea70ef6c63657dc67cef3488d57b4d6b8358338cf23303b7a452b0c7d526a1d9fb776c2843e7f04a01e1de6307466a5203edf3c527dd21a3222a2b57a9d1f7d34ffe6111d4460ae83d6093300011c872d6c1ecbb6ad2ce6613251751a0ba099d4c905f6fc0bbcef99a680bf3405fbf7142ccd22f414f01fcd625ef4378dc07c742b849d74fa368be8384679aaeb78280b7d006fd348e859111b0f519eea363e71b4c671a48cb3642da7ca5a8bb20a45571e0fe238b222d96dd05aeaec3159117a1db4969a1e26aba51e9d46564b1d80b7a913001e6f1dc4e9d409820a81f10882c7000490f1153c461fcd9dd12800df0e00a529429f9d52e6a2cb969e5e394b8fc137fff9f989e266ca73dcab67b2990bdbcc57171de61c06db6cb1e8d481811955a3edc2a4ecd3ad2c83d979a43a4ce8d5e8221dec479843b7a02388d195bbf4740430fa46b7a02364e9792b5e5956b363b7da2402436ba9611eaae6e33c327a526a98bf69247498cfacfa70679fb766c656b28cb188debab2959e6e5157f6ae2c6bed2611d1ab3751e830e72bd8a6a250b8adb00d16ab00b3d251e9b8b59308d6d8db24821d86d610dd31aa2dc3d54cb7ac9d1710f18fab998ec3757bbde05825609581c8a0e2a50a172abca8420b5bc13675c7e8897fdc4d14bc65b89b153ce791c136d55fd678885a51998c67a7f5fff39440cb61da7888ba5ca611988a6e172393f2cc57af9ec54b9b44aa8b687d52ea49eb0f43d78bdd3206db9cca7c3a8ee3d2d3776450b8711c0019146e1bb7568bbb6120182d130c2f3014e6d5e8f330af0e739eeaa1d5c2a4e9fc33caac2aabf355eb2a9afce32594ed195b60d3cb91f93d836d42140a7748d47a82993a222a0416128542f33b77e6a43c30afdea61118ba5b9834bda275bd60d2741ac7612efc13f3f93dc30bdbcc4fb74653675221b0ea15f5e11d18980bc1aa33d07ad1c254a6d7eb856d469fbe67b00df6e9fcc336a24fb72a1d9f1994edf92aeba95e5d4756c4f57c28eb097dbbda9e598e5719b7d5963994838aa03129e655c61dcab669322905c3f1d6d5311c386edcb801f36d181b6f3df3d1d499a1426036666c341b35dee64e8d1a34be4d83d66d19ca0373d1d78bd03402f3d1ada9237a28862e16264d0f4d1d989745c17f9f597d3d0f93d5d73097993a8d17f0c37f544ae32160be82e7bccf87269110add545171dc7c164a32c688a6c87be1dfacc2a8f0fb7e8308f993aa2f318f3d3b90bdbc07c3a933161a60e0c150283c95eb739e777ee54df167d5b7418ba5998347d942d174c9a8e65db0593a68bb20d62d2f44502e68549676c12b0ba5cf4740672370b04c45edccd56e16aa64fdf2a7a5a2f3d1d0b162c284ada84e8155945155630bfb748c0ea02f5f405629bead3970adfb4a09f9f1f2939d3dbf5ea8f1770bdbae405003dc77af58b1760bdba9b3a151502c3ba4d1d2715d83b0a05142457337dc6d54c5fda5c4d105733ddc9045ace5dcdf426136839fc09b49ccb7a25c27acb99de5bcef53ad3d32d2b3bc2d54cbf322dd7add7a6a5a70c649b43652d87b3e66a6aebd2d327407091dd729ccce0774aa0e530e16aa6cb1f26a3a7f34442ca13ae66facb68aa6734d57fb04869e65b4e3ca43493d220113f8196137f81cd81df1cf88bd254a73415a59100fffd02eb5e9b97ce91d9e6b48984947729fcfd44793847142e6d142e2d2c4016b230238b39b4a02cc6c0ba0565319f19ad879e61527bfbd15efbd1281969e87d1bc05a90152fba5ecd56cad02c258b3d8d953072b09f9f9f9f9c3f106922eabd81b55f4a621bbe1abe45f379f8c098ea3a33930595e6e720b51917640a8b2f046b358dca6052b268fb28bb3aacc6a3b62e44c06a0b7280b3d926028c76af00dbbc3f7722dccd6281eddb67a4ccc7ee21f511846d765f217d94d4241744b69b52172d70c3166168c34f0ee290e38eb59b76c611baf8c24f1160b0858b1cf79976c30026fc608b11fc7084292c21c7fded46013f7900031659e4808b31e4b877f9c2ba25ba6e5159e589a7cee718cff1bdbbf74efddd3db83cd3a94f87927a75aba2d6ba7b732eaf833b4d9d37756e5db4caeaadcab65abe9656ea4b65d5373b42bda295c77a91dae677518fe7dd9d3a9cef9445c5cde2699b6226c3a43dcc1e56ba3666c16a3e30be9122bf82e7489a05431e3e0e2905e3b77e77ec78db0f8ed2fcbdb5ec24be6f03f2ded88689b87650b81dd36da4f706fba1a099c82ce2d8ad0b4d136de27e3cb72fca9622bb2114010e43b082af6ce9f6d762ba3de6b7e501b6bd67667766b77bb97f5f478160351f5812ac5801095d58a2cae3d81dfe7db3babd5b799ed5f8e9d694c56cad60d4db3215799cdbd692f24ef14b6be471f13bdd63c603ffe8e6b4efa44d6625b92e0c6b797b97a70ef372b6bd5a44ddae80850b7bf9da5a4ffbd1caa80113496af05a1226b577e0061940e206974482490d023a3802470732180e968004e080882038c831330a32e3c387cc1ae9dbda8c0cd6d3ba4879ea5b7abf6180d1dbbc48000fd277665d2fadf293ec695d88d82aa613315581f1664198e47c907830c9b911c6a4f6b581df85bbc36de5f42aa594306e8bb08c1614aa81aca4945256524a69c94a4a29e3b77a8d314659490a219c2084cf87dc8805c5e2df7b11625fabeee371bcd7d804b68fe7c84b5f567b66ac403a8410fa68784be600631f64c8001215400202adcb11380ec04900110720e200412cabc5acb51ff2386ea70e758a7426451e560e99467da25ebd4e13f5893acf445595a2a88f6bea9474417c04f1410ab51ff13ccee3396664b0a502e3cff6237edd8c8ce36d2f74b51fdf5d79f9ee40cc418290483c784c80a2ce6198943b8e65dad11779ec79a69dbfd3e8b61f7ba6db7ebcb9036924405dbe02d425459bab9962a2a58673272ef332c7b93335df49ea1d7ec7b2b237a96a3a2aa7c01eefbcf3ab4944ee97b65c5be63687507388a8f534873057eec19d1a4585bafdd8c7141e1ea94d607902ecdc04dc7b6f4ee04108e104608c31c6382710a7699aa6690253cebb257255b82aba74612c8ca58c32b8e0627ff6a75d6281c9390199f36e516dd93d182719aaa576571e5d77769479ea83c53412981e5f01f8f709b41c29534cfbd8a5dba7788e4bb72deddb77f6eda56e93db978ab12e8c6e3b91efb09df7e48e6b774b447344eb06a7c05e57e785de57e7856e877387dbdd8a316489688874a9db1cc2d46da16e0b532e02b6515e89d90561d7cdd803cb7c0f2ce63543a7a89015e11dbb297b68d1438b1e5acc7564f0630f2c5cac3db23ce79c63ea538ff3e21ccfab3dee3db4c066a2f07e30ac07961e584c588f2c3db2f4d0a287163db060ef8105d6630b6c340a392fd4a74f580f2d7a68d1438b1e5abc1f1f94d1560f2c3db0e891a507961e58f4d8a247961e59bc78a9bc5096f3f25ed11ee7659a2493f83db4e8a1450f2d7a6851c69359dadd797167f42ec5e4d558aaaba27808587d400fc8ddc82aaec65d4a0c888580f1c8c3aeb2ca25abb08d75aa0ab6a9acb0c23657482c6c7351540f2c6426df038ba43db4e881454a913f4c02fa611b299604b2782b2881184b65a587163db250145fc1a6b7ae0fe84708d8023d2ad4dd1f156c63c5abe259e9a1458f2da80754651559455201f4ace8a105457b60217b60a90fa887165eba3e2955e7a5f7eba597d61ee7a5a7fa807a6821b3c060b2d2a1acc64acd15b1c64a7ccd15b1068b186bb0f4f45a8325c6f8de944929b01eb7a5e56b8fdb122bcc8de699561fc7af3dd72d5a83f032ca9aab09d11a4419af43b7dc96ae18ed715b446e8bdbd221abba2dcdd558bfb2e668ada8cfeb2988323abe46083542a811c24c8d101688b312854bd58345b0ac76b556c4f4cabbad2d91c553b65ffabdf7674db6dd763ccd90767706b4fbcb781aa521b280765f000d11e7be7c59340461c14ac3f3b546c805e21e71547ea43b89f061fcfed1e77669b046b09a0facbabbc7781b1dcf5abe482caca0d5b4aea21b1c2d7c6835f1cf07988d6ebd64d70666034b8b1cdc04df4d7cfb0cc56582c24d9d3629311cd2ad8249fbb88a2d6d4bfba2cbba699a2607e144719ccb6c208410c6e9d09a1eefb2e97172f4d1f8c021b91b29e50c47816d6b5b6011980618c77855b9a65c54faeae2a2b2822f82f60ba0b6441cd45b036cbbee15ddfeeeb2f7e461971ea3a2ac68aab2a2aa28154dc948ad8ee4a65e55218aa2264951547c3b8f5062b88bd4f529a3c2a01e955d52fe0a5eba055d818c26a25bd015b2f4fc4e9d8b0b26555d3ce1f37ad80a93aa2b985459d674986d97a98290a960d861d67335b56130a9b202e339847bb930e9b92b9854dd59615255dd72170ece01e6b8b894d84cf5560593aa3b2ed555d1d55d752706db5cafeebab08df5aaaa7806d83ac136d4ab27713748b89aea559515dd23e16e384b95e991aba2f7585665b60aee2d5dd78a7e2f74656fa2b854ef458a12c302a91e3cc5a52ba0a6c2a8e07b54465d198e8b13c37509c456e1b8f4bec36cade876678529cf00db7e308b7941e4dcb117ef2e488971eddf053f1d5f7172efbd6744dee2cb4179f8deebd0aba4c4302931cc1deaf2ce515cd8265e668dfacbae0dc3516234258635621feb6489282e1ddf344dd6cde87b5dfbe2ddeeaf43e7dca930d688f748e1f54a7169f8288fe8fd8a81a922ad4bbdc75c13e6125db002dae5e9ba9c3bf1542b830a6381bc5f59363fca42af32f8189f8c91bac3d748d122f0490e5a2e6d0cf9adbe6fd35aa0fde5aeeb8aafaecc61692d529ae9efd00535c736461ba3f65cce1d779e8b566e8c0884a5f9a1ec71cdf5492d5a5f3f175f1d421d4865d7147b72ce3dba53625820ef55d90bc6ec400c30b2f43bc7a0362d4738f964d698f43807a47ec7d1be56d8a6fdbd5b71ea342a0426b7d905ed24777371cdfb7baf41fae5e8f74a44bf77fec16ad3d2affd080820c136929297f044747b10b669419aab21756b996cd7aac0dadfb3bc77852eb0e88283a88045b7a02964e92a9b83bca8e2b5466a4c7a59a99bbb8122be513804a455626cd33026ede6b8d91e7c257e018675f3420ba0ae2dc801b51ffbc72e09d615acb4eb17a492dbbdad22b043dd3d4e2214454d4a7dbef56cfb1cf7dbbfac96e22f7a49d7d65ed47ecaead5d3663b958c406b8b72eeee156dd7141c673576db5e683a8e9bb2edd84ad5c23044d39666e79ae8d01282b9b7d69c7b7badad6c97d8997441000926e13860bae2a421c22679d134490cbe67a61d840e3a37412cae86a57c5347fe4988e539e9a4c85d1291b44939397ac93f7799a4ba9c73f0b9ea53567b66a8a933412c19609be957b05b4230111799910c9d55980447ef0ded079f2fca980c26cd81cdf082657c063b2964cc2a930a91286e612a714b33367a555e156c9299911306938a48346110bd88a22c0631890fb1bc2a8f8a57c5abc23613062e0f58e5375426a3f9100b1659f80dad080e830b93c490bc852f9d73226c34c244f462d27b2bb188ab68787711ac201699432cee8634125d7e270dea4447e63aef96cc93c9a807e9165998c40db10002ab2dc8b99b98a057ac49ee26864298895639a2186dae46d28ab588147a5566ba422c0ea86a5c9a4f61590106b1345f5ed8d946dec92ab90ac360da1282368a607981e56afcdefe5a26047350d49ee51f0bbef1a8b14b33cc9a65b529032799ac965ae6560cbccb60cc24a77749f7298b89794c26c316bcdec40e67939dd6f23bad6364448fd92d30993b194a026e11f5e1e671148af66947ab7bcf4c43764e8babe1439d67bd07454f0bbc0cad32865e4c8a8131f0dc31b76262b22b54e90d43b7202f9a60062bd2e0a5b36e5fa4610c0d8732e2c534c0ea9b2d21d804695cd143b8d92686b61eb41fa5eb75af602b7c0593f83432c6e26af82ee32c2ebba830a9ca3c84147669fed3e26e689c2517ee3a72bdbb6b9a26110ab950280693f8613089ffb4382e5c172e886d68e05bd792e362740747325eb0ca3de8d63072f41ec864f5b54c4c0c0ccc54a346167391a85403e62eab1750c3e8c0d0f76ec5381ac7614b08261fa59135aeb9265a27997658bb2adbc5c940987c8f960706db60e7bf2d6c03cf6799c9cc30a97da26dae6c476bcc452fab3efd1e93d5fde9985fed46a3d12d984cca4c9f64a64319d373358ce82eab6f943d30de16117d21c745f36756afbeb22ac3b73299d6c25360fcfab4b43c1fab32d3f492ce141c3749481f3cccaa8cfb3482c49bbb2a10bbc4b81a34b882141fd80cdb5ca10e9f035a5bc874bc2503a74e3b6c2d5a3152ce2eab9a3ed12bd4ab4b1daeae50714e6fdb1aeb50f13c87c44fd6ca8d514e22fbb8f19cc54f2d425aaf6ef1326edcb8dff3d489b2cad81a4718654bcf4929d498d8e14fc37395263bdcf2f21f5d66cc40587d3f5de7df8f14b6191dfe01fd4d39e50f94a3cf49494ac9d1a92ac6fbf08c1935c2e4c4a4ac1ea93482bd1ac58fa46c7c23a3fcbce68e485e532e2a5347466beacc2aa3606e3d84cdab4abc0c3d7255e3080d5ab9e76bd0ca8d8566d5668de370151bdbd078e88f6f641e0acdd06bd0221ba234a1531fc1c048792947f2918ee4e89a3b352e294f8dac6e4f1898996aa39a3bf33cb1c6a93943c13ce6576663d6a062176dc90c62d83b545154c2c01ccb2e201ad975992ce65336bae8aaa494957b9714fbf52a1a4d7ae4ba84c9a0e3d0a565d10803d472df0ff6778cce870e73ac48481e06cb68605e7d54dd4f43f90a9b4658e8a2d7d7a35373073b4f8856ec38aad7f7d3f031d9e39ad0afac3129446b0f668d46bf469fa6ce0826360c866197184cd65a5ec7e1ea5636752c9ed02b6af499559f5afae9d03129613e1a653b23222398d1885258764c943dd133bba62c90ea9a525d54aae9524af8c3a590abc102d6c25ad8e6cabc3b8371052b98d1ed8c6e57f0c24bdf8807ea21ba7dd1654b5bf2bd5f4f32e9baaecbcb82f4cabc75a943c95c9930f392576cea96ccb5536726278b779e43de21465d467951577c0f6612d99df877eaba4e553904b6e5ae788ab64924b6fb7bb5d46feac4cfa9f3aebfec62d225fb7aefe2dcaf67ed6416603e5dadf75c4d413941eb316929ac255f90a2e8a3d5aba8fb704bec5405318aca1ef5e07bef617f46e431d70552b4627c51a79e196dbd99c65c17aeb160e87b0fcd22d5dc11c5cff837abb04d3cbca64e143d66d5d4647c7042e623215ab95fcb5965f436b1e3f00856d7a543af323d5d3dfdf18debe26aac4f6f544e45de23ad0b398babb16e8d6c3cf497cde955fca39548fc3b12e13bc4717556d445d9dcb9f14779deb15f372899e7c5d558381ea2156b6e44adf78ae6863577e279201dbd8a34957598ac7971376f6c8383560cdea0f575f5d0f3d2567c1f5531a8ad97c19e624f524af97ac2a8888675ce62dd7ab33e43abb46e8356ccbacc269505125f65ef38ae4606f3988ca2915599b62e935519eb96bb224559a228a594925297225a044a2ba3c27d5a5ebaba2ed7f542d771f8650d5637f390ca8f0e4387454634242d4a137a3c454557d7c5757137ad8beb12add1635e994a5316c533a297154361b236ba1b8da845eb93123589320623d4218aa20e217465b81a4b08566d09a3dd9b960504565d977e652d14f549cd2afdcca0eee6c036547565b4a328993932d826838f775ddc186cf31ebc1f7ca66bca15b6ca4e59a0a5c27cf8a208603412156845b8b7e6455f15c89060d2e6b45b4c05eb6112ace26a588649716e3feab13acc64065b5259c5dd584eb81b8b36ae712fa3f9164b81c1276112df7d092631d1c3365556af9e24ee0689e95607d8863aff8b3078b9980a56db96e6e91d7073887c875f2027afabbc3bcca2bca432cd3a40fbc324fe14ccbd02dc01693947adc4ab2d37052e7eba057901d43dba7de10634b4649b2b63f811431ada9ade655956bbac5bd525049b0e279c88c4e65bd7251b6657e0771a81d4adec8a7c4545b972b278b7e6906704f62bf21e6fc18c3f3153d88fd210e1e6431141a95bb749249e69e5c7e3304fa4ef2f838fb06143076360b525b0760531b20455814aef1987931d26c25f2a5f2bc235840d1bdb38e122eecb9735c2c966dc6d1669fb5a11ce6d1a44b2ba45ebca27dfab8a5ad4a23cd5e12595523e298b54bb16dffabe657acd22554b6bee4ce7b62bbf5cc1ecddb22aba5578a7ac11d7d9871d15d1ca7c133aa45711492b9aebef9694f2cb7ba6d6d6a5d2d6a7cc9a3b22f84af4a468479e87a5940f4e1dabaaaaaaaa2e48f7158c0f65f35466ed569fbea7aa09ca4b492d1ef9ebd77e92d7e1adef944ac5993dae89b4529773a73acf3c727555d1fac4b2acc7a963495955b0ab6afa5e10b6ccaa4fcbdeebd665653b1611ebe2f32d9a51b4be9eab27ba53160884f01146d85e69a370c9722219ec1b0fab66a2ac6e8bde79ea5c71d8e1f0a3862afa82ef02d4568f6e5d976561d7e2b8b9d7b19d7ebd3647e77e9f179cd89c934eefbdf6cc4c23a2996df60416bab063134248ab88ce6a16a91ace5373c76adb7abecd79ae824d9d09b326b3eb33eee6881aa28fa6683215701e870fadf94974aed2b0ca7455fd7155d1d1be7a55654fb89b2034e437639aead7b11fe16e92b81abe8dcfd0993f3abfb41299dff985674871ec47551abb95517307becb79e4ea39676c5cd506954d73079e6744eb46383f2fe9b441270aa90b66ea6054088c83dada0c56d9b608b6a8ca5abf8bee83b89b991ab44a1a415a86c6d08ab548520f65d82d29baf5b52eb266dc0dcc8f70373034891647b58c2e8a17c637ee7b6af1cc8ffefd48f48be6ba3cf624eee60957c3c7acd6a54bf35e8e5e7b66ea6bec71ee8cce23a275e13c72f5e84fb89bc735a2f34f8bf854161ad15a6118f698a9835dd9c6beaa095af48a8216cd0c8abe47608b0ebb4d22565b97f254564bdda343a0d4a357c7ceb348758c4875ecd5318a1da37562d90e861d1e1b618787c7a864d25a6f7367fe12c92beb99698b320c1688bc257f86c11ad15a2e57696b2f2a6bedc96b63942d856838c19281ef5d3a1761ed99c9de8330fe65ce7ad783567c9fa0730fde65ef3dc237e39260f125dbbc478549eed5a5d2357b66c0bb8cffb2e8de974a6f178dc316cc166881b8c777cedc14ee826559ed9c31678ea70edf6ab3b55a5aa6a22bd76db65ab3acbd781261182c10e6b72cd2b47395e6a0c6e19771cc5ad3297115669b16d7c5a015000bca42101ae6d0eff6051ac04043171da4db176868415b8fbae41f56b7e511abe594525e87d8454456d1dd17688dc07e5dd3e5e72b8cd6edf9f7378b543de94e5920ef6eeeccc75bd7454d9d0bbba88c88a5c0e02b767ddea276e5e3eb57a579a9f49bb240f838dc16e8bd2f15b6d977d13b658d68bd9f3abbf4b114d852615269ba7652e936f7f10a666666e6f7debba8c43775de9f73671758cd0706abb53e65d5a7a7cbab619599791c23f579cbca76ac5fdf49c49ad6af5f54567472a59eb29eab23858f12c31ad1ba97e2d2d65e6bad0b82d5da12f5b431ba963ade4d6f59840e663102ade5a729dbe14fdf59844f8427e8de321c1777bf788315fda8f47b0eb6797f4fa6df9f0bab14a8f4cab415baa206a15368466446180414731400303020148bc52312a9ae0b3f14800dadbc565c1da9590ec328858c31c61844400000000400826900006a96d4a356aab466cacec1cb426b475eb5eaa6dc58e937597b340aea279ed2777329c41239940260d08077d6ca4246f4d2b3649b3cf07d03237a7f62a5735e873c626a79661b098935da8a18f062a7c13a651a7d3d1df5a854970452cd750c826481e8d1ca46f407e7f213b71904abc51bcab47864b40ca3e909b3e535e819fec3940f5c55c8bc930f669fb843097545bc3d9da8501417a2603d1aa05c42d99926dc0460ab5b6a3d8de5c1abe52fe44c465aa89687ab38c9d7d6e962254ec3ed3b539e482475285296c1a49a3a7a7af9329d8e860d0c917f519b6c1a09bf1e5ad8bb3816db6e635d35cd286f49a6bfaf936710f4cbff0f98e6322f4dc2bf8195099ca8f634b181e4c19b49b22bf39f61bc8e05b0ce29a30d01f648ac0e68148c02bfa7180ed9084d40fd50406b2259ee4636ae8149ebb98cc4e2e0463756231b397644739468dc466874e3dd483734e758af724d1b62b15182c5db8dbbbe7bf9575a91f3f4d4a84a4165d89163bac8e101a5f471899c29147b39ab1a0721e3e475b92be2109a5497370bb4bb76a6fb093595eb9222a3b70b470a9b35affe7db0a36beec020363f71d14a467dae684d76c586add5b16d3642d4463d5389f15b1aaa6d31c2f724d20e6bb398575c16f4cc3499568d9f21b8d9b27fe173d4b0770568404fbba83ae79ef476e0575f495d9cef3c534f4aa6c37c8dd9c02f1c1da906920cffe88e053da93e4e69526ff9d2e749984774ba6e06764abb5b200f9c47f45b9ad18d8eeb49f11887776f7b86fd41eb95ac5f708b15119d0966a96acc4b481dbb1986732ac170e1abd403842d7159e2892dd4eee1b2b44661e5c038d7de484073e810c38171eae14d00f491d5018becba07b09f4ae2b3f48a6c7a3c02b7a207d1474c8a6138d551f8e4a0ceb864e43be8f93a6f6e1a8493ce25eee5a6e15de9742b4138ee6f6d6628a54c5cca4dfdfed4de72e85a7213402ca78d61956cc4ac10b39588bd41b45f2844a1e6fd353b2cd2bd7e288bc51f9d387c6c2370174bc3cc10c977d1a7245eff5fb52393bb0a5142729b4e4f86e11b9ffb4b405cf22c18e48c96abfc570ed0df252521a0090ab0e1314fc782317588b02593b55387ed57079393e5bf785d2e5fd343ee5212b2a7be5bee325a79b9b48eb1afaa453c18c882e79638a64803e41285142950b9c0a1234d651f99746990a2c0faf0f19f0e893312a5507239844de9b758e4b0217cfb6c0cc393ecb33544b3c95f7231197e8e5d7ade8c9aa690fbbad7a6584866148bdb795c8a98cfad7815146de5834c42762a232d967879d7e63f2aac90803e21277a7163d8564fc44541f96e618c3e8f697b20df8c7757da181c3839c3b9423f59bf85a565a8c371e1dac3f72dd01de6780f8429aab12b33641fa87b71c44d5214ec78cb928ca206441475c01b1b5c9ff5e6186ef8a86d4c6a839174c9bd4054a9a187315578d92215baf907ea2dddfbb4f3ac7a207a79f86d635ffe414737cd973f6e99c65611f351117222ff8c31f9ea11fee1ff47b9fc3d617c17b218fc43b640bf152dbf5690635972f25c77be8fef387c924a924d23b4bc01a9ff3efcad0fb8e9a810137c3de9dc629f8023d65151419434c3749d584565e31d5dfba751d324046e1dc0821273dce9359d66263d6167feaed7062055dfc119dcde54a6ed9ccb045e3598bbb7bc7e36eae223907e255706132cab50341ca491d68655ecc163e0ba5d28301153f1de7e79310c159db1c555ab8f9c93e192a8c0dde506a6c508be18c6a281f684fdd382b90a862f9d71ac8f52e711555accadb0c55d7ee893e336a36fb4ad43c5b1e62c367b900bd9e5cda23e8ebc68855a9ec8aba94bc856e813460d86bd204c2f232170bf7021c859fd4bc6519b8b6a2181f90a88ae822a05931cf121204ce44c4868567c3e70dadcf7e4a06733c59824cf6beb2be3ebfb7298e9eb9a0303adf4bfe819e19cc96bc307ad21346aec1d80b406672a2c77edbbaaadbfc8103d579d519c43d582cd88ea50eb4ea329a2737a2d8e1961c451937420e1b0e7c2c2c7c1a0b85b66f0de19707c4464c93c04848700f8d41ad0c7716926f861e0d3fbac439fe17d75f4b9e462c1970d3bdc2f4233f19d618acfdd53f8ed340f8ef990f81019d7d027275ce1c0b465cfcfb89079e5becf0ad505c3db3e8d88228e723a0618204f8b491f83aea88d1ef1e6960d52da7210ae790cbe4b1727ebcef05013a4e929ddcea12e6da310c60e70c12bf333144e24ea7183798700eedd406c3e2f7ee9534d4e9879944ed19e96610b8ba55891e02f2eb2eec505b79ccbc82ddcc42e4e1f71e2bd65ac81c0ba898ea894c600f1b2efc758304adf39792163dfff2d0f619049d74fa906eda592c80beedf6f0661ffe1a33da6ef3ad2ca71351915e89a06c86c2a9317e769011fedd6e39c514bd4a8a79618ed08085fb007764d73819bef6ed0267b28b1b92d416a9652561a30d55c9798328b555298a198ce9a87db9a0af1190470193bd096b9afdec73f7f30c705e3927893641599012dd3e0e26bd7d6c8875d63c011d9fccc5a69f155ba67a44f90b22ed3b9055249add0191027744e90abd9f8e9c64cc0b2bdcf0b413f75f5854c900886a45e092f5c94faa038e9b6e846dccfb3128a99137194716f3169694f0805cc6188ec9dff3ac6fe082ba65cc13f4da2ca0e2496a528c724d40c639ab754ad661ec93c10bc2569eae122f9fc4ced75c488bba34fcef8155e62b36d255c928e9c1a87f14fce1d4d022a6b85fec1e760494e481de6626c481418b2e3de957373863731ff271b0cfb16632222f45db9cbfe246f25b9a0d122f4e73660324fab39eedc7e620079f50125624514250ab7780c418f4111258a1f10124101a91681cd1a15fd636f1e6cb21e156a20c6e76080427d5f9582381887bb257330d34feefa5e321d44c0a785cb9ed3680a55df47dc93c4a4d3cfe2347c7add0609cc403ea57aed5a1c53290ec974018609b46d911f2205b2cbf013097926af9a7b70c412aec29dc235f5dec4caa7ed932a5694ed57906219e3da136f7b500eaab7463bc9487b94cd1bcec9c9c8f480425c3c6136b41641477ef32ca48cb98eaffdcd05e2c567a1dd60e200b363460a0bd358c8f226180715e75dd22a8d616897c0630b94a113cbdf3c20e3d92efefad6775d88db819d730b46f5f40662e62a866480abdfc4aa2a3e5086659fe4c8bed818fdde8cc383e67833dd6250988e69b6aa2a8fc1044389fc469b62760aacc98a5b1934d93fac8e56d901377cb12100f9fd440cf7581dc36caf948f9c1cc4a175eb5b3ff55167bc4214ccedfa662be19e2530845bb4a207ca945c91d45bcfb054df0ccf9d58fb1de25e4deac231cc7a85964252ef1fa7c6605f0ed922f6eab610045b8d3ca63b6360e2ca15f960891bc949734a515d013b00c92ec6babfd51bf917196868cbe8ea5b70e5d2ce6e0d36b5b0178cea1b1186de775f6187448ed9431416ab04831c1112ae956cbc400654c1d7d4e01e653bf6330daa4f37e35380076d33a85cfb80ace410f09ebf7450d3404f27c0e203f08e2609590c45457223433529e2cd4840dd0e85e4980c68bc3fb840b7db10c087e25dcd8d4f871a5f9af585b2c01b54c73073c3e166a84c3ad0ea9ead2d49687642ba67432f565278e8aebdd03ae51eb8f97420499e58bdc41119035c548eb2450908451b7cf1949282f4b5b258c0edc6b88fef8ae6cdaa037ee0d82c7508d05a5ed4707105d46650bc7921cdc2e0c53387ef1017d1bfc60218c0f4a0a2eb4633eb75c77f1564cde2067ee2e81547c8710ac886fc0a9f795f9c5bc56c190d4ee744cdf8657bca4a06718238e024f283ee79530cb59c2eefcd133adbc7c328cee5b7f73f7a94579b514a49118b23afc389412ed5573c0734d2bc48052ad921c97890610f92eedc3370f9d380a9131c94ff8502dd2b3d330a2b9d1210665840fa798289706cb70757accb65a0174f3f23d4567501da3a36e6eaec947106c5643ba0cf0e366ef4dd8e36aca8aaaa829dd7e16a72f5854a1851cc96fae84d99f38e8d837112265d08b586ba26db6f77b946a43aa10bdacc356307da248d1b665f7a402fe1d9cd6cd491938a694903b50f072ae47e5aabca5cef1afe76412e8755bed6cbc6dd653ca0bfbfbbe0ba6f1acaa58f815d0cc6fc62c912ce947a2b30fcb4afa9e9bedf71bd528b3af994261a9a48e1f30a42fe6ef960059cda9f0f7a293cf74cd1f48d58c940ecd7cb6dc20079e89baa09eaf49757323dc53cadc3d83dfa4b32ae4530deb6a357680f103cad0e141762c598c199bdbc299ca4eb0fcccab7aadab24e0a5d140d8d2c999b588680c775c3725a78c92cb4526b049ca81c563170b4a6e550ff6d106d66218127a8d65020b92368dce149171228fa751ccd79cb7065003c946a43a855d86fa14630dc6e86fa8151b2a935b605ff13655677c67cd8296ad6bf9d1e2c3790de741661c20d1139eff03a12af221cce7fcb2f1b9abe32b0a4b2a7693ab17c14808e87cf01e172999e4ef748cfa978cd493822ff5630aca26ba86ca0ed3b142b550b14b13f6e0c409af535b7fac12f9cf1057c599d0e635d9e045c0938b0ad97dc02a97d5d9bdb729cb6620edb4b1807bee8ca1a5bb7fc7c99322a1ac3ca337a27bbbbc441ebe9a394992038045023e8c8d58fdbaf24f6124f593aa5fbb6e418a87b61210a83dddf6cfbcb97da2a43823a67112c9e03c55795081e9bbaaa57feb485565be5bc94faf8f17818564b8f1325bd59b12756d66e24670506c84d77ade6165287794dfc9b429641c48df296c6bf2e5c16fb2dd96be62fee4ff3b299f12917a3eff888d01a7000b6be6e9eb5f1c2f593a091270ed0dcfea3f77752322f367acfd53ed12620447cb3eb504f6c4db86de008053f582b1901e7e2fcc27ec42291b67988e1eaccd2fc60bd389e84d9097741c1f67f73d64fdf1ac48a34e944a94203eaaf25686eddc95cfdfb1d5962b0ae4554178d3d68674579a4e9cd24c8e9edfdba3ef092b194b198b26978be3f09418b630d2f188f7c31b4e1b1bae3716f9097f85d24d0a1204613e879f659390358139f5bcaa0d9f2b71b96329a80a88cbeb853795368a98f1b9aee7369aa05442c2adab2388cbe7439d16e109fc208ecd89e7346275fd2711e1142821c601f30ee7dcf739015a7965bfe3a323d9de5b20add848fa8a441a614df50e7a7606e6b8375f0cdb4419a54e1584d929fa47531991d26ed31827ad4a23f5125af445d47fd202ef3d46060dbe22e4f4514562831ef58057f4819d9ab19639d4e727a0acac1432a60bc579aad293cc744080fcc15ad2e1883d453932ad1482f17968095fa4107e39b82b4b0393fc226fc2eeaffcb993a01097e9889949020a8e4588f029c2e660ccd521089dbb496b27e4b398aed838809a6b26351ce1928acf6b084b3a1613cdb8bb715b64a6e89f326fa856203bacc24641291092c12465cf41b243b3a0f7146278cb01f882f002f88f2003ff4c81e921c3ba498ee987043f35b6b1fefaeb14a2a7160bae6522aa9559197dd07e4d780ddda85101abc1f2303ab6c6425f1a0173bef388bfd851971bb43da7db51e16c1e008d1dfcc46fed97e42e1b39380d81b742a16f3e02d296839203cb53030675235eabb6a1a8e0ffd9f6eb3e181218ca842fe4852cd9817eb0e31415c0152bc8c5d2417ee50987c7fa1ec98a294a851e728d9b14728bb421cb35e83a55f6684ca381f249b15a21288061e3be4d1684546dcaa8216117f456fee71d5f013e2bdd1a29c004300c5108b45476eca70566e0f50d44ae4c3e92388cd1b81b5cbfb6fa99b0451704eddbcb98266ae20b8f0af16b8fb7a480fa6f51667aa5932b94c50dac511985c02b8c05fa0719835c9811e56427f3c82aac14d868c4f1edfb681738a10ee9aa205e3dc8999827639b991c7941ff9542d2321192febfd94482a4a98f318f8cb3f3ecfab542c8db791b87809a42d0ad4e17a899e7920ccfd378874d3a6d2595d972a9a6653df383a223f7939c49d297313a3a3554c9de8771af7bd86781b4307a3cf9d5810b84fcf048513c3279c11b0e8efde5f23d5773df1a0ed8b6a6ef8426de9e034a528aeb366a984a8e19e6408c3e84324aaf97a50559bee056511ef597bd3d2966c31e6ea5e3f367909675fc68221fa7ecebf41ece1641c8ab93c6526884218333869231b04bfdf6eb670eacd596c4f889448cd0cbbe9a37b8e88810b92c1fbaf14b4311f2d6e7ef622646800d077a41090263504f6029952198aaaf074c6815258830e15ebd783340c4b36bd0b64092ff0dc6ac592a5e59a8e98bdc87d0a07c709ca17906a208e246192b403da7f44bb2b2f366225baa9d86f62fbd7167785add5ea88fc53e27895725e5b97e52204abc2eb060c0f329d3c96a93aa870d04b3576078cfa06ca35b2c82da3459aa16ecb90d2017743e21780774ff3d3c20ba8cbd2f97cad7378b9902b07c1765114bbe7dd2bdcc9b9614624ee9052d02454fb0c1a3aea581967a1ecb3600cc819ebecfe6225e4ef3e3387ce9ad703450ee8b8fac04c9cf285e9c63a01b53b66c7e869151ac725921d304f3ea3b8a363b4f07859e9d526f58b7171f961f83ca5e4aa704ba99e425a345a1e0cbca0201cc48b1168c5f528c6db3ab2b67f87d3636b0653dd8e81d37cb926f415809d015b1b848901bfac452e3d906cee89083a5f24215e24d2f035e26f7b8b2ca19a9b45b31cce44ab0a653d7e4064d27b2c757f9480af32ee57c163620cf7de052a786649d518a6aa25f614014649c8529b68e8332acf40d69c907c660f5ca7e92fdf6ee24387f3c0a55f28e7fc09c060e7cc3e7ef74f71c64b9c6bcd1337f3f447c4cdf9e69bca2ef8bc317580e1cf2397231d6e3defda3dd0e529303a5c5c9171681d605d5f240f905861057e78ad8e14afa803c8b1a04259a08aab9503b391f8b355147573e72387905222368f9787c3eaed217802ae4a781c58c94344be762ac7ac395b78f0880344538c9a48c3a0445e22749b8b6e45be4ee4535559764b65ec9e53eb4958b544fd476b42bf6ecd8335f775699c56e4fcaf19dc3da01af06731748e8bca53454e763c3a2226fe692a328d6c90698e8b4a27223ddc39453617636fbb2407529c2e90b891ade3b7ded7a3fd018fe9eb71eb6b5ae33f2e9473a14f66e001f4eba217e67b12e5ded58f05c02d968598a4e941100fac923dcf7b53f35ae18804a33ad5904cd8bb048d012df8f85f34572b23f84774bdc0a167a615e1c23a52604ef6e194ced065ab9f4585c4e9ec1f37401c00101089a94222ab56739304e8bd6062a9e73f9959072b021d5c5ae37f385b0525e7e4c47d805a69289113381b17132ee1ad3df684af2d913ec97a60bfd1edf341061ac54bf72367cfcb5e79554cea307fff7ef806dae9ffc6c2cd822083ba900b1284751875234dd5417468e3cd382e61785f82a5546083ab14db83d93a2ac8c5b916eb18498712cfd679b36723661a55aa83dee7cd0f75921e7841018ea0dcbceb70339098d7fe6116c7f5d3176f8bb3f075e55031d1803cd2a23ece609d7df1a82517247d4f2eaf981114a22ddc0f2e75af036447a46513465de8253cc8adc2a5dacb55f956830f7684d5c72a396e0ed30497a7c5e2c092b44731c2464a4f2bb1b24fff1d4031738896c635236024f5dca41f5aa1728c1298c1eb5572d3f2021fa2116d6450cc8787515311fa6638b78bd81c73312d82102e8a45ab915c0f0b03ea8f44dc7fc5f582b32430b21263171d39e62dd79b678d8b18223b26b462b45dc697d60617940b4fb7109cdd4ca16467a76dcec7e3fba9b2511e0fed65a80a14f43f51dd3529a078d12d0ecfd6b8011b740f9f594a36dca324567c624f69e1894d459917ee919cc2065511935dc86e7af9778ee23addbf17be6ec91e51d653786502264ba9b2dd171e529bdbea9e4313947575deb9b8479fa115790bf47e3e5d5b5621efbdf1714f90fd4196d2496545c985ee8dcc73dd6058a2a78f14bb17f32fcf0318cb7c4f8185707fd611d176b279b67900c0e823501ee22e22fd148090e6c5b4a85c69d1df9f16883e17eafc686adef52b4d034ef05ba64075f121a85ba65bccd0e486a961830a2ac1ec482d0467fa46494c3efc84ca825836fbd9d650ab4c0dd981fd04c8ee96275f40f40a07a919e754041ad77701e8894c900cbd58a3289356f4b9002694b7ded3df3f7266869a76a75d3102c438813ff48a447110b5140c7836a3e999196d30334c25b3d9b7e683dd50f566461e03fc8775c34f48c34efabc49643cb570e9745e684878429b4142e5d527ea2d9f07c8bca02c2e23d0ad48b24ff4f568274fa72a0ec74b7ed951a0391f5c7b09f5bdf48a08551ffc84d454361a9a318a36774d9b8a5eba5fa53aec052140552a571452fa872713ea45634ad2585b959c1009a54fa361b14048f2d4c9eab754776a233f061aa99ce7078bca63b6a847279f5b0502aae02d86957d59cd1b72040119a2676e1136d5dde981aff904082b99806e174c7af50e365b94ca52c6601e088e1d5223a91e58ff93835482c04b961c440d7ea1cd57891487852164c60781b106a4f85488bf03636a29a9f50db895d0b5056fa54d2251c533621274ff155bb0114cc4788caa8facc5d5df1be3d294a9a24ba18899219d1a2caea30dfb7ce666ce1506f37ec287bd78933afd72a137527e393af9a4202745500486b31510677805540b0d5429ccacf964ca303ea784cae802cec243a3b0cca4981fd4420a1746ab5954d4cfb42f85c2627cb9218b2738ab5455155c7814e8b77539d7cef5cc5f2f8430437502316cf0d1622acef66faeed50c441f7464456756437a224f4a41b30d9fbd210e8aef8d89a00e2844ffc90b7bf0b53dbf56f9fcd35ca8453a61b574f96c11c728ff4ed868fbeba451395aafe44db9b6d821c97e1ccc4e3c94b81fa2e270817155859c44669f11e9845f820c2bd3ca11d0288e65b30318114a5ebaa2376c3669b67831468cc4738db4bae79380cc8ddb492e38cc4c112d7eb8bb22ca4e7cbbda074df55e10939f50eee9414c27bd4c1edc2c06dd86e23e440b8d2859e20c5a97b4fec4e8201a3b5ac826e3e6be86f54281a24028593c60bfaa5c237b74e9a2d2357f142aa12880aa5a732b77330921133a30af2664444c10d80e19d58e8780ce6ecc7609f7e24f02716c699651887c2b63d6e3af23d5b8a85b40bdb522e3084e56797044f78620ab744bb000304c3743d84376dce45b84dd9542cae5856ad206695b1a3354a9c2541b20afd985f85fca7afd3d6a12a76afd2c447a594b17fccbb0c4cf729b3c5d8b1c86823e54e2bffd932a0599274254ec8c33efeabaaba1db0a183e0cd3bee2ca8f7208c8361b9ec27466f660f27325296075eb43ec92a9f9dfb982b5da70b57ac8d44ea834b48447d389bf19f27b4177c956052cecd8f345be61f9c3e928bef6a66cc56a8f83dcd022206ffcb84dc7fcfa91afcc04590e5c1659cb7ee43c176b0cf237377ea5d9ebbc653fa2950e7a0a8cd6148e76008a1a2377f3e81d9e6b987e8781c4f8462855d4a5fb99a1ebc0c8d292b651664afa647c95f889c02fe91e5834b9e4feb6609db901c558b27ced20876d1eef3c9ec8fa87c424599c6b112329986025734d50ca45f2e82cb386f89cef1c10622b53465016a563b10f0a0de7d2d27e97b5a9628a1f0206b7536003a44cda11c0cf297295507482eb6cdae321b63de3e77313f95c565deb24ab979f8684d7aafa007d7b33e4e5a3c723e2e47f1509ad0959fb50a8c861d472ca12c54cdea9c82db71d9c24662bad7f2c5c75c2216abe87a91d275b1e38e6679797761d652fdfe8f3320f601a93c926303878c5712cf6cf57c918d2b45088c2a872d3e4cdb3b1999257f8de84fec269d798b3f72171eb71c25a170484174533ffb360a3149a8bf1a19c30a094a410e542bd3d415aa974641d2d3afc17a48a56f1538f30822d72e818cf44bbae67440660bc7df73466e75d4753b8cbc9182269185989730556d0021c7e1701e90791ad46bbec5f7af1c70654d4a5d405c1d4f8186cd2932fac3d3b4cdc098059dfe79a0ca054122b60a26bdae38a254185bfceac535553433d03bf66e23b84964a9634da6f7bfd445de5d086f72698b1778e3a0fa1c75c91188236592237ac487690bd9ae41e9908af0f1f9e54c82c2437be65e2ec7273c875a5e43bae25e7c493243cc8d28854ca59c268c653e2168cc5f0b8757a532e85949c879dd8ef4983e58562a2d725ac19780b57c37789cad3e547d9cbb8e1e87d69878f25dc204a42631f82dabc31bb17a6866220060603ea3f5f6a0dd3ec6a23f2e581cc8d41178f6bc55b9a99d29c64da0e3331723853ebd554222c047b316849f3aae63d2084ceb2c27483731c8ddbb07a0b2be199e22cd666a8d47c5040ab907b3848cd0ec46330f03b33d85f481c228e2594f0232fd38a1e27f04053746e4cf52effffbe0d0c55edc4bbfa9691b61ebd8b97bdcad4ddd9089445c701fffd138f85d0bf4fe00019a6b008f5125109942de194aabc65b8fecd0b7000773ff9080dd6b87af6e72499760e6c888e3de4d172bd4b576df66bd48213332c40927b5e132609008357c97bfb54cc2ac904fab0ea3cd78bb1f942b14c30f7a83440fc4377ab87d69fb3ee5d6fa0dd10500bbf58db307bdf68857c4016a3833e7fa9cd8ad8bbab3ef065880d8860ce1f1f2021ce28d74e1a1e65df17a386f41e9eb8edef17be9512225e5ea4e140162b044b58b0e585c2d40df5e1c5646b07693cde2911e35166bbe74ac6d59c61b8d3ef3c904cc57ca130a88c75a55f6b80eaa511dded0aaf3827896556707d43deb1f0845816b8b459ec48a1b531f75a1c40e2a1e764f32e1257a5edf8ad5bdcfe092445a32b120cc09f8b65ef0177a577c46ed641e00e933a4cbfd93f1c0f89ae4355749add9d36bcc9b0beca92af59fd31bc86bea0d42153c463c132fddd79c64903d0b9a6566d407b03d8841a2fb385b3ce944e3440bb4615868dabbd78b7abf0b467be7a1d3f6ba035503d5853388bb2479fbe4cbc2cafca06e8092d1c4de4692ad85dbe1f9ddf33c210374fbdcbf856fbf1816dd1a271ac3279f28e2dc7735c7a0c61989dd543b2d4429fea250c6700fec3f31a4696ed34be126b134b3453904df766f0e733f917286d7d245c90b46a24f9e64d07867087bb42c4fbe419ca6ba30c08a51d2d8112751f311adfd0f2610720efc10fa58981396213a3e7712172fcd4a6e56ec0f5858ce5f12082df46895a74333c56c76a16177bceeafb5271946671adac175ae46c8c3d0cc3bff20d806031b021815a97c577865158bde4c5f6d82d1c1f45397d50b3743139cccfe9e262816229f2a10fa255a1c175a79b4b8cd72070f9c2c1a30a503d95f39e2ab874f1c8c466af1151f69f29ea7a6e0bf7c68b5b678a2044f484c620a7c476c6d95775428b8b5ad9a30c4d490ddf2a678eed9f35d59ce7490416d33d14fef20f04b141ea5ce195c82001431346b33106445774a3668bf643f6a5a1b9a1ebf441e405b840803c9ccc49f32b1e7ecd974815882b024d16fd8a7c81a99515b3faf5827b33ebb3d4545831dfde7999013c47c522dd0e240fd8c0987b8d9c4a079f7ebf20253b92aefe7a398b733db4e1302b31973761a0c2c0f47ea81eebc94f81a91454ba2739c6e57dae16832c18d33236c63c44d6d7ddbc4a3db32534860ff3c1c854d4803688635a279d6db9e480e891d6b5426cc42ef40b25c9915416dc408ef0cd69f5f08af3c9e07d8999d19afc6eddb8572c328657b5226042ffe0c5f5edf195fbdc67d5bcd327e69fbb9d3a3d08adf4f3fae4fbd712e9d064602c667192ad757fa92de3185b81b12141a1f05ca42b97269e6a2b861029c57c8bb836f986a1b623c95ed3d55006260c43e52e6a25cd54b2015a0346c8fa1965109e6b03598cbb4da2a064156017d81efaee2cacaaffcad6fb58356b4b00bbcc1356b46b782d7847e8b721babd700b26be6081999495f9fee3422a6c24a15915af84690d6ecb7a04190db1cac783ed803f35fb251aeac0b5a42c6efdead070e568e3fcc437d6dade8cefeddeb6bce1c02b14d9a15863e819b7a55ad374bc2170954ed44356bac0595cd23b56fbf0d328f33ed942bdb0c9aed0dfd1c68d9b321db5ddd602766ad6e19650dc9781c2d4aa98359eaa20414b90daf572a789d72184e174cd2c80dfc393dcc6d00a023dc7088e76e4f1ab9a794f86158fb618205fa05014c4731f152211cf03ec17baf121f818667285e4197797086fed27d1177917a9bc4817c5bb14c812957299781e778608f197fa8374c182af1ccf2b708d2226049d76bc0794c8745b352ca251016d8b31faad732d83ee26b7a212058bf1750d4e5bff84c654e0638eaa87c1e4e74b33542a0c13b82ea0265c43de487c9a60ef372d5b274b47234d942795fe299b63109e9bb9902a660ad5e0480168c81e500dd022e94de154961a257956386f0328e9a6f564fd356d07bc503a260ea2739f61adf30ba50cd878ebd9dff025bb32a497c22082e9e56f6a2260cfb005253ee416aa8bfeab2a5d04ad6842b2af8dab77c345b91664ab41544bc2333de90f8235dd78f5172ec45811341d6c833e053e875217ccac14675eca413a2a4e4cc09fc865e4df6c425459bfd718ed51767c6a82f3d0dbb0862994c703669169e6e74644ececdacd2255624fd04291bcca85d0caf18b0cff7e73c09c2269b5ba1a3d1a45dbdf204f44003cdaa4c934ad21b0be8c1e6c21a071a28b25ffd1b98c5133a060c1a2fc15ecd578c50f705e10ff1c868137757c09ec9ff3dd3923d47c3b624e9a5aacb37ed0b0ce2bb88ce1716250218188413ede3e7972ae5031da0be9c3ecf47b0ba444d272e328ad377314d87e508f73ee7d167fd4097d27d61ea04bb2855c5014d6e53a96755439852c652a5939e028a43b0d039cf8067dcaf01825c5effd40d40f40a6daa274c6cb886c4c36555fe8b19d8ebff65593d9442181618532c4508e838332e76ae16991c355fa0ace371fb63d16b169f1df67dd4cbc1f01ae1400a9da4dd0b75b812e91935f36463cf0587fd97b41fe8a34927f863bd48d794cc44e13aeb280c4a0c49b7e7ad5e16ec3fcdd1dd2019cc61259a1fc3cb198826f106ba874050746f5c2990821eabe3ca064280e905bd23e6e2d065e726550581e444c73ab63c3ff17c2f97e2fda7fe1be5e7d144639cbafae06dc43e9f27a9c303a54319fb1c6aa5a39c94e606d940871c580c617e0b51b5485e6cbae4afe9c0a9cec402ceb79070466d61eca72e79f7ec800839a2c373369e0af2aab7273496c9e7b51667612260fe4c7fa7e3bbebec43930d097a1b793ecc6f1b9e58a7571688dc9fbb9196a097bd6783ac6aa0de647deea0493a08099de019f6f08cca84f7825ff43e4c8a83db5c68405e4aa6d5881e00113999c16ded7c7059f6068798065baaf38b90774470ee9ce1b638e513a18e07c07246390c11b974713d1a21e226664eba24a700bdd0034da30289a277397fb0cd36ebdc7ba01d72a120a3a4fd14726cb614dee1914f3e7b97dbb93e0d1d03314343fc659d4bdc52b60d71741e5328b7fbca4ae880b2a54b6b5b46ec9822c1977137d3323414f7180d31a0898a7bfbd68c12a88919730450de0f6175e5adfa41386838b1cbba0c5230926f58e0e4d28dee52e812e19b13e2491aefbd2c77d9cd8d7089df974f77328a7c453c02003f722216a4a3c1811d9afa0c2c9b78e205d27b70c070691fc0a6aacf14009917a4216c646578d00dd810a64376be6255f15601e2a83bb850c54c68963c75a4f23275f9e20b744667117ad65236729f6963ea2a281f2fa9dbd18d83bf03188bcfce9247758aa289cf7f0ec24d108edf500552d72cb5324c327e63bd36ef50435062b2cdfda610ca53d528720c7fcc2538a6a1eac232a4acfeb4ae371d2a4dd4a035a139a01a8dd2e13f0120ab9fe0b6ba00587a9bffc61ff6ae86a8747aec80bad82cc8e663ace54344fa2b31c5860bfc3a5ccf107ac3f1703be6c1827320e8b2d9f89748f9ee8e76a187d578899c0e4f606f35278461e549711f493f3eb97302502eea4ed43d7befd3bc7fe46b01ae36273a5f60667afdee0c69c4fae6c4830034e46e2dc5b02488eb6cce0f242507fac9688796ea511499afd89c683d9a24955884445e90884beba2c2ce213ebe51a88614f0dd498ae67f2b1444adc2c738047a85a58a8b96a557f89bff137b7d1d1429d23c530016d2045c22b5e41576a5f55cf32dcf2a12629fc05a707360b17edfca103807c02f127d14c2c66e1fbe7bf48b97b44e0b807c35346a52004ec0ae46cd2d82f2efb2db854893fee14afb5b8dcc93c11c9fb6f590d648f7ccdb0babc2b8ad51a2734e3f500dbe300a477ea6d9c190ecaa8eacc6a874b7c64118148959f99b8e1f774b2df7c15a071bef904f55e89bcc50396cbc4d48414252e90e4ca28e970cb1dcf8277e9a848d1a39bc3a0447a627a8d26f1b02e668eb73bc5b190036aa9b4b073c24981d98a95a85455fd46498277c002507dfe75cb1cbf851e75330d9da878de35ef8903eb0b0bf9c49730fa87218083b43f4643329c101529db2e2986c868363e3f628dab40c9016a19d0832e4c952bf85eb08bc7be6ecb51697ff18ea7d40abb43adb216ead6f6ffd147cbc160379dc05bb2e0a077c8ba044444720d8bc06db03641edfdd44e80b0772ba706f67555e70fe4ad392703291e7e60c99e75f1d273f5949dffb81363fcec227514325f75b2b1aa1f8168e2f3739aae0cdfeec4739bb6afda644b9a7d533375f51dac5bd707343635577dd0bf41e5510ebf7b6f5165303ac98bd8d3ac12446089716304c4d5c8e5e872396b438de298227036fd087ceb1394db5c26cc96f2e375dc4de5d0a56fe41d7c77fc761f02331fc7606f607b3276f31d85cb35e5f55618ff2d2c0da9c9beac86d29780815bf711c2a597816b85d41958b1cc54f5f210723b869678f3635bd64f4f6745e47cb9d9e34f6cd87c1a14ec9af4e84c053b6a2c0d2bb530059fa9e1150a4c618c3aa1bdf44e51fe573bb4691e5536d302518163effbe091a9456465cfdf115e4e71988e9eeba01fa41020dfb803516a1cd447eefc89e1dc2cd302034a3292be632b699490603d71cb604d96ba9b8ae719d5f141826efc2716e9732e8e27da24d49d675222fd72c016ee235fe59bcdb0e9391f0e1b85533e34c237138fb7e2e801a529cd379251d6f8dc3c128a972aa323788c78bb1f1ec56e56b0841cd792bd74767f112c9a052dad20e8e90610893bc133a5fb65ad01bd641e24c88a754925491417c3b4aae84e801980985730dc8a08cc1469617b3f563b56b0218034f894dc0840b5c117fa077fd7f659d5f254b1bbc7a7a05d1b3137107141bafb24278c59bc3720faaf2e8de43ac647df67db58ce6872022bf4f92d821b4ba137a7dd9d30e449f26d7dc982fe1b5a58a1621d8ca0d2fab016880acbc5d62513781bd9a8c0eef7dc2682e3d2bed92884f1716b93c21458340523b41b866084ab3ba3b7c653cff2e44a7b14c2e5976e6f2f68e0f2ea19ebd153d27135d29690c912113898f5c006fd3fa920658b1279c379aa2a15d7bcc1d2cc2981045e3e02645af0cec4060a73feb48375d0b983915e2795eeb720139f250424a252c6a3c90c100eac4ac58c5fe55a29fdfae5bd0f636cb0dc8cb0584fe22569b4054db5a87505cd002589ce53526887f18e0b4b837d877e933ace7164e3cff1e65def311895b776c4e137fe38dd9601777103fdf02bacfbbb7bc424e1b90ab5295aa248b216a86fba3a0763e03bda0c5d578dfeb0c8121790e81f25aece819c4ade8f2a27fdf890d55a6d4cde94fdcb80ce72d6f1544eb08077328cccf582aaa088e15113d0a104b8e88b2b6a624d3c30934f40973ad924656d18bf2195517b49cf2c6d8c3e214c59816be16e818b8706d729293c12c7e9fca2b728036bac57a1d5ae8c01d0046bbe19f12780117578737c1173ae1972240d5cb6b2383a6c866fc270fde2c257cb91e502b91f604d3d55a75dccae33950e13fd91bd66d32e6111346917aca48215e858c726b6fd4a57287bad766b97bfcd634f6cd1e2b9731a6625fa1bb38de7daee91acf2b874ee56cab629de503f40e65580fa7e8e282b8838d37b103fd90c37793342e4f1402d5a27b68052aae8d9ac3fc21d33e74137ea9e0fd78c280bff0b991302b62af57cee014d8f041747030d5baea572629d2418292b273641ea8143c472fe4fc01c53704fdf65b245d01d6f52ec49941e52c5980b4bbd82aab8364dc2592814910b2003ab4a1b93ebb32c77fda7fdc23a63296e918285efe09d5051b62d2deff3d6fb974fe332301c80c435164a0caf147c9a997556c86d0db62b60db4b22f686d7774622bc1f27274965e72d5d9c78b6aa9162948498ad3b306ad10374ecac44575b52e4417ec7e92e8a11e3ad60176b5985df128b6c6fec42017be2e71883ba8ee21cbbfca6a0c06c9583061a1f15c924854925304e577a64077a5b8c0547721299699a6942be082b841ca28cb0eb32466b13971135d169ba05e27e19b31809e3c771cbac1e194235573aada4ec836d36abcf18791dbe0439d35a5996f801574302c509d901c3b1c044e97c658ef8620424f26e31661cfbeab1423505b7f8bf16f28cc4a833c9fe8690822ee991c0ba785a015a8699ea7038f916fb01e4d4ff48f863fabdf5c0f36a57279d5b4458069b830bac0ded08882959ded38efcf2218472b9e8e2e4799b53c6f9203cdd0eb51d01160c4e30e98e9cde25ebe6dca8fbb2ccdaa4335cc8a4a8c2a92a82d625d7073bba56b5ead5e6a8f743d0ad348fb10aac04827ea832b3e507bfa3fb63865ccc0c1d3fa0c40976107961435c6d1084c2a2104f34e51a56a88c21f6aabe24ad513a931844535f34bc4388b18e30fa85220c3478ee36cfbd10d451f77197ad28f3873bf28d97fc7ed612298b00fca45299a2c1ac43f04868a7087b0dee53ad9c0f4ee6e56fad3df3e1504c419e350065598d5e44a68ced7b27fa8deeb654d3e6dcaeee949850a894eb1c24f6d774b51cfc5ec6ccdf5da1adfc1c7f013d4ef9c8e32bac304f0a9c10d645e90235c8648c3c4b5bb4df7bccf92dfcfd7865ca29b0d7ee9dad6558d7c4d2e68e3f8ddced8add9442863db62d6b56c16d6a816de6789d7bd45f99433e48d3ea1923858f0b5800e9eae0f7f762a214b43820135382e2e7020a6d061f38bee7b3daba044fadf3d3e9a5ca9c1489dc00eec504cd608a83f48502ccff50cdfd382cb3f47403c32de9b3fc65aeaee32804bd4ceee23637a3c5e34cceb73398465e42de173890d56912183403d2b960639d8059079ec0dadefb8da4fc49e6888777751cc32f04e831d4acf38bcfb15ea13d1f1fec6314e40ee29caa174adf61211b1e8aa077f34fc53f74edb3a1320e583fa89c8b2e3f10811daba080a7d833853347d66b778c4bb50e7697967fd77576d82cb54e0ea67131553ee966933d4db6c267ae3a14ca0d268e88abb2dbf9af547817b136daa543609524c61024125744a72d22de84172782555b0fc7ddaca4e1efc96e432cc1ff43a5fdc783762e12144236ff3e08ded0328ec4d90e7e509f56ce31a2ccf5b4a8f1996952bbc1285280f7268e339d7444b0977285951351e428b040cf749ba1c0008c8a8f4995cb408548acb29f0f2672523ea2ae9895c43e8e6da33e428886445e8cbfbbc55e703a52b8af3d3f9d6aa9d24deb52fd4912fdda2b199bc4e2c25131780ae74a46c6c80dafcffa9097868eb42ee7ccc2a3c5c6714420d347c20f8c3cbaf58fb22bef8aa992f9cd8c433b176ce5f726c608480cdbd3574e0a8a0f3ff30d53df857b50d27bae11f916332a58cf5fb684668f8b364d524b31714cc1e50f29b4638e43ce0a2ea180d2c66cf94582f63d2209c95c8c033262526cc34795bec1091d550a242ae726862197edc2248edd53af17e2ecda67ac9aef10109662e33a88b78ea44c7e28f7779341da120bafb111d6722076e0636e1d92ddf86fe8c6eea4625f4173dd4410997a26e37d4caea77e1b53606828b36b914cff9b4ba407bad5f3d761e84f1b8e96af0a7595b8a97a28e2eff57bcd5e41ef6d1505f7d57ceacdcfd01f777f3edc810a6a722ce5e568dadddbe0138aa67e9c3bf292f01cfd61f057bfd7172da48d751d02dd04f892f15541e6956443d844538d523dab4cbde8e63c99f3de15b67a9ed1d074629cc7b5b870d8fa591c44f657dc343bb92b6c335b130d2853cb915c84fb9be82930103606db2659bdd0fd8f8cdc5c18e2a5d78e3718db37da5ba0aa145810ad90285836c81436cfbffc5e18380e650125c810ec75aa5a370d543a77df1db86824bce93820708e9113d499c18a237b5c36425574b6df5cfbd8b1c64e99be44344b7432e7f48a49555e0c961b148ae4e2f165137ff07c481d3a419321d4427a0e96dc27d6e560941f82a8d769fba2116ab734a0109c7f303e74a0f14b7cfda0989193b87ff36c8848b870219703c792a9d73babb6ce5a9c304b7c5f621d724aeafb51d89bf574440b3fe79f8db1fc9e40fa6cfb8550458a2c0d040fc469f622540176fded1f7bf4ae02481b002cd577e074d1d19ac002adf30a2337c55c99f9566e4a000a76ba529a8f688b1af0f7c69a99bf0f0e78589e50220a805ed7df24f409093984b93668a7eeedcc768fe244fbb7dc1c9b327ff337d049b99ff514485c4ae2245f18ee173833d0cfcded5248ccd9e940534e2e194bb06df04b410e255945f4c0269d01ded1d3aa9f380dc0cbef4c46c5bfe557a94d9312816aa5a1306a1098e45d467a4904ac489dca48ceec4f4a8f0eca538faa01ea7370d0037564b039c2a9eb5ea408a3893d789fcd448dd191fa8899479baa52770514f25d1450d3164494c72a7601609fc6ec50170da54665b00d3c1e6fbb11860b652b989b28479c7ae92e684a170859aa21034ba90282b835e754764c64b027030d7aef4dc9b6ee3b8e38c659dc1e4558d64d9adc14913cccd75f582a384143e5644034b7729bdf8f0ddd74d762d3ba06c83b3ab1165dd9822a8cb2242d8c8779c0098ab072905203f51147810af499d5d9657cee82cf2aed98b3c424823a9f21f2ba556be1d53a41d3bcad3b2ab7f212e1a68e98aa203bb4467e7041a8ce0d62f3d5c770ffbda6aa20e0c4e2e7850257f036e660513390fc5dc86c74f0a09994e68ef8285e4d316f4b71c889839aa24e3c4868973a0dad2343d515ab095dd3cb51e21c73291c7f05709816836ffbfca6ec4393f6372054df1b126923ba6377f763a16baa712aa07102a93079a423b84ac0406b17ed44d48a4b2a6c602028c890b048338a1257b28a41c83c375a61c27bb759a86af0357b61053c05fa8520412ba1a5c1d227dd90bdf2517e4cf9f5049ce97ef87939e96045f70a932ce3919e128e9d3034700d2cd23720ca695720be02899f2bd4e2f8ff7caeae2d1e4d6e7806d8e2f60da37996707f5c7768fb1810f4edd39914ae3ec636dcb13a06794e51b20da0a92632985633690e2d0602be05b412204aa7c147a60f21e03d35f20e1f5e300303424243fc02b127eec7ed5a66d921657b90eab54686acc519d61d3017fb5701256677142930644af441f6a0cebb384360db9db03487626f99296be5a52b2849b7cac394bfe14832236620abc953177b3443d8bf7a10d75402443a2f4306e8c7c2543e673d3c648907d059a333c613d04d0d94aa06613006dc6661134b3b39cb16488fb6d3b0bf1316178b79cc7e6bd281a8ce331137f6c9310143a2a000faead174225ad865d880fbd1dc3eb682fe1d1dedc2caa67a9a21a7e91b09d9a4cc76c61765eca04c92bf1d13f26098a00f5e29c03440c00ab8faeddc66d51ca9216093e67ee49f44b352cac68bc3ced8ea49994c370a14898cbc40b3da926785d2016905da472442a400b2a27deceb5a414960e772a4a52f738526edb7c4a56911dc666f351e9380c77064e0ec2ac13410062885fcb2d22def92c3c00e25498181168cbbe68fd90ce83aa19c0bef16c0f1e7ed4c6267ff232df8822bada17c9578a3b170c798062c10517a52285752fda92a4096e2a46244d0535fede2b624e1454884a7371b2258098c76907c95aeb943e9e57efde59f4151b764498bea0e8a65b6699e00a102c7df8d2acc849fa1a0cb3f4a3c2e88cd7dad010535fe9fd24406dc1c641614f1d98d053673bf97cc620a1808cde30f7867150a3438566a5f349efca77798eea679b5d3aff8fb8cbbf9d510530cc882b4a43fe7913dcae6162a38830673b4b040567f1b131d7df432fcbc6b6b21c5665cbc890a7d4009cfd1b906fa67ab334cb072572a3c72f6acce05a398f1fbf446e60150e27f1b296d2602bc94c14993412881a1971e765e43932406d23427c1b6b715c7e3090cadfe5de374c168d16bc7f958fae89fb40ca785a4e9a410e59c5ee84ce08f0340146592b213896b2d330c18a811813485c5e13f0c38c8c6a3489850bdc9a288dead10bca0fa9550f4177545004bf7da99f6132f30304823d784299ed89ed1f25fcc55370448c65592e3c7b12259fedb5a1bc80b03da3c642719d4626af135086d34fa3703ab6ed1e03a6ba58ff3904234e9f04d037f744c51d7b4f9cc491a454005122e6902e272dc0f45ff3eba4b4287f58b196148305fd43fbe906fce2add3a1acc7867e8391817984ea7800f95a39ca07fb69bceebb28a79926d191528b9bbae7908e084740348cc7af973177d14a8599358d37f50174811d89e41ac86cb313188cf97b05363ffbc8ab35811413736b8f9fd09c3254997d2f84552da94a67c75ef417bd1656c17d3036f344d59ef5aabdc876e1dc436a378da250ac90c74b1590b7ea73a13b1beb03d0f11db3162026501e04af9506ea3c2185a901bafd69cadfab6320ca5ea638b3c806ef90740497ac62ebbee600bb1bed9a3ed6a424b3df20adb5dbf37f6c3c2d4135b61859f9de5f172a6a9307db63338bc2e1eabf003a10753958d8bd217c8cc7d6f14db0dee24d9de1f3ffe490dc28edb0ee83f86d216734e6c755fbd6f13308167a8468b60211472abcce5541f1e247956fabd1095e55326527c36b4edad374316961694adc90cd303b4fc94fe153f03df6a376dda7e589c2392b2887bb3c9a6ae88b5da6b2991d792436019cc9840a9033cd52b2f046bc5293f29b7ae5a9fd3800cf318ae8baf66848435cea816d93bc26040dab0b6dc3b23e95d5a193ff417c952564b73822240b14309eca341a0cc3316cae30ece58ad6eea0ad7790a809fba8203eca9a9c902dbf3d4a539f4a404829391d84ef1ccced2049290e9fa5312477dc259a9859a8b627ce70f0edec53ce72f6bbc3f0338503a25c49d96ee8e2a84caeb08edfbddd03cafdc10f41496f917f1d3e42a8c7475fd73bc57187b78e5d644b88fd5ac81f5dd0fa8afb4788ddeff88bf7aa217e136a649e327495a253c47fa7c077538f9a07a3c84fadb107da723adf04e07d24a683950005d2e1dd0a2d1035dd0e66f14efd813a4ce3980407a4ed3c1532f7999b13278486c3d707e6bc99f0d63127c91973c207a90c87c775fa1fc3fae26cd075558989d1011af480abab9ef8999b6ce4695ce524cad0d3e2c072831692888b3b1e88f600b335462c82a2947fd007716d9abfaa599eda3c11d780b8c90da8855fcf602c2a4968a42128786aa557ea8407246601abefd0bef508d1a1e19ab594aaa58425d6422010f55e1c2e7724a1e11abe7f8f428f6550102b12e2c0847197541b60ef987783cf86c9d1a8bb1b2d79052f219295b4a52600c02cd8041f7decc0a2712d911a5999171abc32103068035922d860555a65ec4e246e4483f027253d86c4e217d3f4aec82931758a5181e2204c998bfa8aa06bfb9fd4cb1d56e1c36ccdebbd45b738f3d5ac9463c4dde31bfde4525c72f8dd6b6247beedb1de3085f7e4541d1378893858af75546cae7e8ed33f0c534965fa0fc81c185c390a3ef8f2429010e1cdf292caabbba72e1a1d1ca4520c85f00b0ba450e92607ed2e450f2de347a9e34356aa3da49b5619014c4e82cf84e3ed11d7a55647047a9c6428abafc7cb72b742898bc74669e9d1657fd2100486816160f7b417f852c598e8a8eb972b29b85771b0dbe1dbace2fbe31609d82621c7f7c1755a0eabe55a66d00bfc13b1321941a0230855f7d6430b1ebd4d71be49e74f0e22806d46bca7bb88beea91f440a3af73a2817ea8bcfbc92d099dcc5793af65e79656e0024a9dcc681a2093d610806d57065ee1e5006bce1654b1ab353bb4eff75c0fb5602e63335368891e006c38ed190f9826e03ff9b80e21a51370881bc249ce9668a5031ba702c5ef57d06e95e05ef97adc2ab8758b7f6727841daf74d47ee15902d715f26897d2aa763edfc42b49280340578a7b5efcfa720e4d00babb409978e69fb034ef6f7b3be8df0dda23f05cea2f34dd0ffc64260ce8df3b09ebd0f85309ba48acabbd3f4e95800ba48b6274a2cf5739fd659948bf0d7b4f57f3ce589771dded4b598016895c8dc35a4cc7087f2aeb5e182a572010dc477bbbb3f6005f12ceebf1a88395ab54d133f3d1bcc548978d8d7d42dddbc1f4dc2946e0171633349074835a393917dc1d7a0ffbf52b7b8a4266b4877b4a2dd723078bb38e94bdf0d5eab5ede034792a24d7a975829cd2800902733caa0014112bec6125f5573f20226d7e5a9156614949676b958ad1025e9990149542bd27a9ee2811de5efef0c7772cc75eaad6e54cec04c8b0baa950caf903fab0260ffa644f8f46acb244a6dbe02b6f0f42687752649d3f12d6a8810259075315d29552448f48387fe2f891980266a95249580d6f2aefee3900da939502795349c7fd0c501bf88095a9f12d848ea7135c6d2ced284ee2322c1d51e5a96a65024b7bac5ae5f4a0834e07620ce2b5012aaaeee8012826ab3b2267845d1ad0504676e2471aecd67df62acbba1dc154ae755853984ddbb5f872aa1800152acbea00971d3562d5715e0de70960e28973bdc1ac721f61dd85c1a3cc99c819fb78b1420ed8a17b75943998cb379a17c6440368f8f3a12745491cb133402d561859da8c65d0453e66999585021b83648960a124820ff94c10adc44527fa4f18797bd2758a74b1fc6f615c73591acdc6f6f33c6ed9f450136327c1b9a5081ea811860790ed082a1d241d6965e6c522d4db1d035746eda8548258d96518cb8ba3be6f0887293ddbb0de43f387bbd0949b5b99f382172e5100288c444ebad57c1a1b4a81154250e7a43f27d8660ad282a85fb9b8f362a263b68865574005ee06d3d32131c5901263ff286c9b82046cafc656c14e6688ec76d5e3c7b15954273ebe448acaa515e99d6851bb60814306f65309a88505e4528c1024c025cbef1b0dd450809186e7a56489829d80fbe51affda5f1d19fdd0a0907c4ffc77c6316ceb834ccde53bea85ec0620df32ccc3adc176ee74a41fa10bebe6bc22431e30c1c62505b71a311018d890521209bbcadf47c9438eaa287f7f1360f63358d2527e3c39a1ca9f32e1883c516fb3bca96ee5bdd1b61df7110abad638da6879d6948f2ea96ad7d09c5cd8d4e28dd8d29a58f5b329218a112a0e1b94745a8cb68701c98b472243f2376ef7c9c60313332fc9917865d881d79611e84c5e9abc1c92dff1387d2227f84fb7f6d44ac6222934cb8979d56c4d589643685fc9f17cc20de59c1311bc6e3e46e1b89d00529ce3ca8daf067ccc654f95cb0a7dbdac94658263dce99f7c93a7fcdb647e577a8a782dc37c7cd580cc3f9fd06b80b0a94fd668596197bb54cbe3eed5a524ca63da9abf7e878db443b59ad6de640023bc5b1fded551dbb4a1d1bbd73b308157fc6fd71b2820f3355c014cf813fcd641b3cd50d9990a49a38a120cea4ac0c3f291b4d99ce8d5e96f606f7037f21b3c6f06055172dea242fa6948a6adc5a526567c96ca2d60dc3cc6d78c6638f549cfca2f1362f56b7995445aa1a80bb41c8e904d4678f7cf81a30af225158c6452986b10185da59e5aeb4543f880a2575503adf5da848bc99cde20695f10c58a79c513554b21e482afec3b045a42fd98997e780bd0ee5b72fb39574e04d58fbd9056e2c2939d34bd5b2915374389ad161c79b555a5f68bef8972b3562ce333c3b87c80ec6eb3a3041a804897d00f225c13e87e59f4327d70137ecd024011a281d9b4eb5c3d95417c82369f13f070080e27e310311c0cc110bb64058084190a54031526600fa639ccd0e371681acb251799848086b9b08f2c4d414e550a1c006dd5c8e5bacebea3a8ebbdad0ee8a8d9076a64e7eacdda14ffc03b1f691da9bb48721159d35e9668a78c6442321524f52c2c10dce1edbc187ddd71db9149a348337add577c287de396fc620b9a2506215afa915a8e756d59743459ea7526214b40188b214eec57bee2874b2c031a5c2a80e37202e9c74247172e1a160b1f8ad12b7e7914220ff8c0b876096c1bc58fc15d33304d202e76af99e625c8a123a65bd8e7bc0c31eefd284e7c97c01d3eec7f82d856e80e8c827bf4677daf660623f61cb601ca250292c0bec2b5deed8c50a86ae73e63ccd203c5cb5f608a39d06da2dbca23e4db314bb79967f18bb2c2095f65be5e5a1fe4a2583ed826d31fe2be035630474cce423410d3c3818eaa22d80311540982862ef61b4bb1981a44c898031489f4a6c5925ffb73db2753fd6f13ad36f8ed134a0b898807f905b4a75332677ca2e559725cf2a6bc6776a826d0aba22eafc407c506d206fb7f1f860f56fc81091d9fe6d6624d6a64d473dfc7b58617d3bb73fb51c2dae1505bd5bf284372559000f4376313bd5ae495d5ebbede20111bc84e562857e390f6744e68fa7fb437b1b8eef47f630d36e89cef8b468f0ec74a7857bfb9fdf9200cb41a687b8bda77034268e8a993ea51abed7ec6d115660164f2be04ed03b731d659141db48ddcd32d46d9a2ff330bbd1fe64a0c827b23585996b1b054ec22430cfb8f5adca9ec62e9a58581140919515318eee84f21ccdb26f17b61de45f4b190e32ca7190541c35487ac62393c520662017bb1e6a5953b266fc311e44b4b33fa347a6fbf349e4c94e4478ccb69fd29f7163f7c36eb40483752cc0bd043b70f9e604a52f960cad1d8a15948e4607bc0eaaec4996ebbad05fc68b616a4702343f183e46a6ec4f2c265085cffa2b5a4131c770349e890dc1a2715312e322eda54b4043c69b132c361d2768759e1c26deb5ab148ec0768d4354e0f4c78f5a06640f144cb7ee2990865cb185026f90ed71f88ab3b8de70bfc484147defe3b799feccb47d6b1db07184ae27f754224d472e1bb736f270a64bd66adb75341b8ea0805e0a0a6be16822aeaa5dea75e9b13b2b0e2d3ee693285db62fb80dc8ad76a613831ae51172f501835fa65304352113935947f593df1085b1e0c73f7c506668ec74a2071061a9980d90c9957922da2f21ba44bc447e6a82460cc942e437a6210301fdc7f771a6e721e63ab84b6ea4d2db3aaae4f89fc235e889c0cc3b1d1cf52db0f3197f34d4b50d26909e868bfa6c4d0e17061017288bded04ccd00c07d3c1d4d75de386300695937912350b4595a5e3815c42d737c4119229e4436a8e403ec2704667f42cbad32ebf8c8698a2cbf4a8403d3bdfc798f9ab3dbaa47f3414379284936b0920bd7eea2a222e487f4a5562a68fac7fe1ec4b8699fb1f31700372b5bcf9b07d8d06afe2666f1dedd811d06a88838e1f363e85f0202c960ab7ff65995f1c3a9c47e6c4b18d134d7742dd899bfe5bfdbdc46d2443426c90da8f80fb4d940ac98094e2c7426c3f1857dbc121c94773460bc6d23c23c5fe773d2f0e7956c7d38e4ffa39d9f42709955dd7b9381cfbce359256316b601fcdd75fee41f01171d881543a5d187495319d8f2c81b44085c0b0d6e63a878bf0128d84a1b87cc6b8f682bda433df86ef1a6b5429e687a947d37fc1c4df7e09c63ad5a00cd69e8f1a0807635aee458fda8515af011116be90015109ae3b1f3769d217829afc76568d5e9f7041f17ca3cda8f26faae65089d79444c94e844f8d08b56d0cc563517e8e5e7435154b0768ed00b0a838b1c3ac9bff29e9a09681c1c9d12eb867c20c336ce2c71c0279009c04a00b0f22f851304b0d043afeec9c6b4a32339011969fffe0d0971d41e967d6d5a16066f10b130cc19ade910e1e3b27f81c50efc8f1957ffe57d2a4ce3484100c999e0f10d0d795ef2bca9c3de48ff7a58f9bfcb32e1d548e34abcb3f3438cf34260eadd333407311daaaf8232e9cb5b43dee26155ceca4a9b245598127ab7fdfeccb858354200b606fb27a75d985a41ee5d72b1ff2654fdc95bcaef925a2dd64ee89411f99c43c45c33128320997e6b3b8233ee0dcd286fd9049c19b1c8ad1d1b7af877a745069edd8b5dde6f2ef2a983c4232e1813d93ae916fd197cd40e21abadbe08508aa647956a891f0b44dba5a85489f2e5fd794ae73aa405f18402138047aa95ecb6771e687b47dcac5c4197c8a29be1a80f72a79d5b0a2ce9cf617d640b959b920cdf4106e83749dce01111ce1e19c02434f01862857633c39af0961ac97073be2cd8748004208bb412fcc65cb8226a4622eada4eb30895b31ec651998723b4093482e4d78b804ef8d072340ec3dba8b7fa9dfb431007455824601b6fba4d5243eba42dfdaaf73ed2e9da3a0439acd9fa9c5111b7048670cc395921f141903d10a7c5d30201ad130b4770df4e4b98a2b0d1f732f7176279085fea0ce0fbed7ac655059c597e68c7445c7e4898c0b9b6bdc05e16d3e0a485969362a0947020c7cc94be8373d3888aec1cf59104a73c3f530a0b88e3d75e3acc408a66f3548fd07fc2da3cc482e11c0895f48491cd7dbc59bfedce2509e5f7a1eb40734488763a1d1fecaffd1bf2ac6e276dd73cab32a2f4f80affa4169e1bb368a4da18aa77b06509b025a8bd2f061ee12dbd349795cf22482c5ab27ec41d724365b2a8063ef0b4019b556ab399f2a0221a28fded92bc47eb45032080cb4a977009ae9ca9a34f4749de0b30dc79c0aaa37e253097c6e514335d4baef2362b9ab8c7498563857e72ede9793522bc41f87d4c5c4fe89b345345fb3baf0402013c2ee26d4cddc953e08b59e664f4f8bbae8c412d3e0164704d2731ed1bff958be1545d3864ee89557a6611cacc3c8c02cec06aa59acd878d47163681842a056afa8166a584f6b11ec08c59071818c2abb6054742c72cd25b42ef59ac6bcca2fdc805536274f8b235f812015a60f13a84bc9e15740d6b25a34a8b82e72aa912a0c3a640fb7dc778b8e1efc74c008fc3e915058c15a79c901d683b9d9de5389aa54cacb17cbbd8d2c6fd52bb7bc82ae33dd3a80d7ffb2635d3f7773cde86c3a57aaf1ad5df256e6e97d83a4d8448b4d7e374701cb4aa82fbd21621d67ba36f208beba5db7d6635a440f6e894099cc4049e4b0acd42d23b9ea9fbd06dfd754d1b127e5bca1573677f46feeedf5161e863301afdddb7391d48f92dfa8b0affa851358b97afeccfb7ad629fdc6beed5a66547f783f508407e5cd4c3b73bcc2afa111c2f18acb17a2e86b50de294443c44e24cc2c8c5187029964e9ad282dd24d5f32f61517bacb32d8f36016481e8462fb0c3e3a66714716c99b4557e7696789b87d96e02de749b861eb6b487e740fea057a685d8e7c19cd5d592c8ab4e680fd3297a4b273c87d61d01a93d1a65487c595ebf656193558559212b44b9874514c1666a0f58fb68434a8835b377acd4f88e28bec58ced97f1f8476f90fee1df9b9cc30950e6aa8051175e6b1c774ccf542900d1a288f98a656a2e739b55e6657a181ceb17c60b117f705e7c86a55f2e83a04484277b1a91bef2ca1a371e860de516bd1f66198e1b64de43b6015977b1c0ad508e8cd802ec44e6c9a5d258e581cd1bfc581916f0b18ee3b0e291e6c806c4df156b8e1d1b0027c8033352c954d6aef4face0d7095a53a065958899c11de00adc2f6bab1982ce0a06fd9d84fd041ec4af182e5cf3c9022a95c04e0e7289dc9e32cd4c45ddb4bc711536cc8c5eae26332e6f6b845b92bf76f6a19c1f6adb7e613b5892b176e32f436795b7c8088fbdf5415ca9ceb502acf59b6c6e7485f44a90facd9bda012c5e0152be79533bc0c22b43ea1b6e5a99f7fb49685e45b9b4b84e6bf65fbbc013f52f775e6af4d796e11edde585269f387d0477d2d3d1964394a1c611927ce6364a291cca1fb3c7ec620820497b24d0af1138917da12358387b1242a98728013aa139b7067c9eeface1c70a8828a69e3ea85df30fce0762c722165cb35b9ec8042e5f18b33074604f6667ea68fac0e26457877339ad9ea61aaece2e4a041d4b40ac87293d6ac633bdb3d06030b472dfe6d6857d3dbf5b648636afe5c209a11db9a141536bd49fe5e05f3dbbc2c6a86313af069400a6d52f9791e08b20a68fe184d33421346e5f94f80b7a0e8d105e9282cdf73454f8237c80820ac6783e5679081984a0b9214df9f89cc1fdeebe245e754b08b565f415dda24881e3ca0a30beb019892825df68b2af4ca8dfdbf299ce46e81fa812dbc7027685003898e76ef707d40a1f55717851c1a63eb43a698ecf8cb8b991cf0ca3461976334015a52cac3785b4d225090fed251b9daf08bc97421713b375d76e1b656ee9d38c9d8fcf01a6bb6185bfdf3bd47ebac311cecb3ca0963e8c5a3229c12b3937ac94a2b16bc107baabacc98e913cd1c406f9fbf18d5228fd0116f73846b662514956619400f1f81ee291a718f62b6013800f50be7f9241a2a10b6221544293d55b4a0768f9351e1c5ed0e80e6a5ed0065e4025d79d328be6cc22926a8a1997640d96347826c6414cf51402a02747ecd51ffbc7c32fa5b7debde244963dbe42c937024d68f180fe8e3dabbc775a4b6cb13e792400693b6d7a1d50c4cf2f030ec8c799994752385a1fa4ef6fa51609daaa298fd9676d50a898c35bc3af7a5ebab65f4da5417da8eb1928a1b10435ad405ce9bf61614c7fdd65b8595d74f6acaa5879744458e9de9e542bee5a420b487bc05bd83618eca9359d0db5f99f26748aa0e31c85a7c8f2506ff3b0de2e096847839661b0e8484849b7e812fdb8402e0eea0d0b0bcb71782386f33f7d9258a46cd07b26b533737aa1586d2695ba386feefe101eaa78b3ed1446db05e9237caede96df736740a859cfbffbfe1e3401c4eac74d333333cfcfa07c1a69874d9c309925a744f21b3989cccc28e007abc72b6a72cd7d49c0f3f1e6c383111a5e6d23c050681822241f720eb32694d5915a7a8a1966304ebc0b4db7c25f94f4549fa0e91931538c1b46a396aff38d54179e21de564c0dd5a595e522e29a29a8989c277a28232256433924100b5c487e1429e046377fb7b715e21f7e1fb4201acd8ac6c5d8af54a713669b0b6b9e9629da7a1cb1770d24664bf8018e210f694fa2674e0a382895f73627ec8fbb8125a336318d3e28704690bba1503fffb5c496340e39113a381a5d3a2ec214bce0eb236ef88601736d914d26d9e6a1ae4bdaa66c570a705b385bd1e54e231b98f41110aef540db151c51a4f940225ca27ee070a347fc2b73afc6ee9a21035cd66809b1ec0a8dbb86cc6571abc2e3a1da58c67b7d435d954f8cd6596179eaad22b040176a28bbaa004f3ab52d297eac58a2321402c26a85f144acc78164ca37984d25437c74bbf78c64606bc7f912048f4cc957b3296fbb17c931d402ca7346ab81340c13253f419cf7a846bf83330d74a041bc5e440d9e4ec628e0df0a7db3f061e7906e1ab2984593aa4fad32deebb7d09a98b716ad7695a13c78d5e2d05b8248b391ae529b11eb929af6d3a9995d402fe482590af3d1266a580f05f0e467ad72a840ddfb8cad40085dc43f4617995de2378266a9b8ad132ec198b07c85562ae726b016abc879d82f33b28e11c4939f0443b50b8a0255b15401e9bafd8e30ac13abb8629499dea734f18d4137c52df8209aef254b79b10a5ae8111580585a01cf6a6b78eb80af2a3a90bb1500627cece78a9577de6eaa88aafe9d56225026e40beaf187b504026b843b8ad32ece47d9f8f4948b364b913919c0e0c001607b81dde30afeedc4412af6c34d4e12e2be1e619b8253b71d7c27d92fd098ae01f85442f273e1f38fb713332a6a2b5f5e0f2b01c78f9fc3afc4d126c0df8af1a1cee02ae3d4473f83c7f271a5b5ac18c09ee49d5d0538bfac135782fac18bcdd882c3744ba2efb825abf5470d54dbcfcc5d8c2b5fbb430fa60b45e28ed954b0658c874f23e5ce5dc77ddb682dff3a33d456ab8d2614021a036e1da455baa9e59217e3dba0a74b855335e948029f8fab8012bd5abb75dfeb06ecf24c0c0d4f12ed30becbe0b3632609ca10a9210818f2770ce337844d286b87aa8ac7ba5cb21d228195913ac03e8d1ba2f15687c47de0cd2a8a9ef1031c563066a27444738e292b5c387c6b28701d389383c4b6a4c5d2ba4e461df38f6564a7818052f5a3585d599fd24baee91cf1ad1c9c0fc8ac278d732fb837f9dffeab7570774a8d27d078fc9bf1df41fc00ff8b0611b58df0447996981a3d709144e830b7fef4fb0fc523c32258850ba26262f82daf3e27dde0bfbbc840181269fc19c45a3faa6156f3da0342cfd780848a9037e3ab494160ef2865bf92b2e7b78d8c548ed2e9bc2e8e21a1ad64ea0a4bd173b8cde795a0aa1676170a44f6cd419ff4f7b999a5ee5b965c1d5975b614fc5f3f9848b6ad01fdc1a64a115f479fa3007a4f74bb65c4de3b8856c9f73f7378e2209b9a8d807e9d659b57f93c5637ce7201c963e809cb2584d79fc7b2ad6c7a20fc085b859a0214cc1293acbd061dfc42a109a8994e8e02cd1da319e301fbd5b792e640ae313af01860d5041ff7c2a8771260816f5271b68dee95b5ac60a423486d28fb9848f3e7a1e5e58d92a580a124db32f341d73adc498a157109df77e62abeec70747d6541bb1c318e90971c0c5b696a2285e634a01b01180dfddc94b4aa3dfdb4cb70f86fba1fb582d3d2730602463c2aa60d1808d4e9a46b48f61cf7461a1d7c971ed0fef865c72f301d500f194d5d952a1324cef2bc085a4b920a44032d94388829a3e063b3541e75bd57317005d473a28c856cd63447853ca8fda607eb15d963a647a46e3c0b7c9e6807fd30299073b6d58b9df8566f4ef0982c5166a9d3dd260aa20a3eae0bbec73b89c3d509dbad54b6656bdf5d856a93077a7ffcafe7b6fd36f37e89da3e5a7ba2c0dbff85e0a0c14c70d827b64150c68819434b0f10c69e883ba350777f77c53e27e941e468c70cd07bea78679831eb0686f95abbcdbf619969a1c977b26d31b6bc3a59f02a18572436df5fbf884309c86e856f70df171ff2598bccb90fdd9d9361cb737f6f323d6c049992831c89bb8b6b6065a6d3fdb894a1920412648aeac3bea4004b8d2a22cb421f7a46d2c109f568a5634c9aca6883147b28cbbc851548e4e14216c31c1e153a365694b0b8f9199ab2914ccab5f78cd0096763083439bb826c1da3dc194760e85e883fbbdff36acfc54ef7dbfc5902e8faf0415632a38b63d1075868a0f460fad3ebd5a4f0b7e494d006e232b18b73e24271067a5d6398772d7d6d0502d5a7f8618478d2939ae166efce018a395f7702a082f5e181679b0529a7eab721b2de5c750f1c098c7e2d70c80be2df61b374054e43632ca51e642c8ea0931cf14d74a1ebb6c252e03296a87816e9ab747ac4781914fd7006281172cb06d43358087069d041e77cac54c34e88520a4936f4e395f00febbb31267482a850fc8b8b108295536cbd28cf76b32874d5ee070f3e165048f8290a418ff67c8d45d6110dea7a5f11f1bfece3aff80222ac1f90552f1b98bc0810677f88a4a60bcc5bf532e53b0df02ae9d84e19a0b588f8ad6b26551e2d80003f55841bb61165e64f8e44ab280403fbab3723bd8a8c1f89ae1553be30a38d54fd6c709bc767a4b15ef7166d971df91eb92482445056efc1204bfcd835310231fb36b4293998e38630493a11717e1890fee85d48e01affb4a96fc50bc7b12febd1fc43d46db73138c64a9fdcb5f7e67240eda8b1f0ac9eac27350c6c63e5310688b57cb8cbff2f3ce7b83a78e5e7266477abd2305015371b303d37bf62c45252b22386026e090864d31d3cc3bbf1c50b626c92621a010f60e782d14421f5912a3e24b664b0852d1d788947138efa60fdd98748c46c53874600eebe57ecf8dd57bc11f55db216856db9d3aed723c161509e147b8736d9036d02c6d52263596a9d0e8f5ee6846586b5822fe5a805fa30632bf75293e40a6f8a2274252eedf5ad0ac6d0b03508ee9e8f5d44ae699ef5c3f633cb1c965a39ecf81383c5f94d714313737c4c07f6d77562330ae1e79527f7ef782b920bc4028a0690e662ce370d51e48753c1665ccd58d264c2931817d1a52443c831ba1d5908aae128c3d380086a2c4f9a91a2237ec36f9c55f0422a8a7ff63ad0ea903b657d97afb1b3a1ab03213fcaed745a1da8ac0438a0c130733fe1fe837008e883cef60eaf89ec6794240838a60b76b3dec7e33f78916ad4a6133d0ea9ab7592f525ffc5f0033388b464a1adf8cea82e06d91e57c68a4957cc5c93d2a09a9ba28b62a06a18f09d5ed03d240e02f5c5d84e6f6e088cb4f0c28b0c4b55354dfa2e4c4d119a4092a9eb05ae5f2c01042a84ed446e7791ca283955120de31f5065c288e9323089f0740012adaafe927132f50b2b4a8561dc9871f75543d87dbd254e20c7cc857e0c3cc9f18c320c3038b45e16e9c7220ed8594da8962817ef626bcdf3e55ad4bbe642fcf2c98339f8b8e2a0db460f4f41889a2c982a88d8a3e682eda056822c85e61fb22a057e32c715f6a48bc0c571814b13bf64857e4dc825bab89623d58ea7b6f881dd96079974f178ac118b0e9cc746113a0abf9bc2a25872657c937e755996bab8e59bce120fab050645c70ca7ac22635a0a31cc27d1f1c51887b5e3a8f25369299e8f0b8c1680e433b33e20332ed42cd02fa3d6ae8916a2c771a5739e6dde808e621fb1abccb8364603eed07daeca328a4676448c914fda53c65da16d80478235bbb4df28153f087fd98212458e74269e3b7da6c5db70e8807fc589f91591fad8af905417dc6165b0132013b6d4921c59fca3583dc6a2c8f8557a6bdbccaf131cd89d4dfb1386bc1402d1c6206e91dc56e3947d45f34954c0c30593f6955f2b84ecdec304043bbce10144c873f88b332bca2a6b9be098e889d1e2243aa26e8be7a46f80db4dedcb78f2343d09c38a8ac04c7bfc7771b6e62caa379c8bdd2392c13e8668d99253e9a3bf593332f203a37c22c9a9b818d2c6e1fd162d84961b0c5e729efb1189596c2ca7e1c7045986aba60aeb3aed32957869f86fd3b92e189fe785dfeba7a83d1de5b8afd3b8accfbe61f3c5dabc4195da29444fa9b252a29090e394f6a7347d448e6c39b575d5157681ff04790c0ca8664ebf8c14894fe2a1203553707565e92d5e60888c25c06c00636b10b9a059dd0980ef5a863503ab3f06d8fb81e33be405710e1576f5a9d8af221338606b5869cd6eb873427e198797243aee566be548ef97e5049ac7d133a278b5100b0a25731fc401a7dff70cf79065a9bb94848da59d15cb7356d41539d20e88e5707862b023e8e7b6a678c9e538564a814b1cf93f3377d6ff1f9909225a94cc17b64efc656c4b0b9ee94fb7ae2f75d165374d12d10270b9b9d3926c297dc6ad360244f98bf4152f987c46b792136c44462d5d717e5310956439b81b2eddc0d485cf60b5d9ee28f9c964f6b1f6e7d9a0de3dc123f5fc66166118847a9a237d043c0e84353f722f207a7bf095d174bded1a11af1dd18f2f4d69046d442bcbfcbb284307ed44accb1904fe3d3114c5fa69de2aa1a723aeff75b934e35ee14733a211e179aeb914f5d2e22eb025b8702b47d85ee87e42ea5c07b853ae15eca349281f40f3f47e5053363acf48777c1a2f24d7b4859357fc8aae3b87d74a2fcc64003a76b056bd5ca1d211cba948853120e5b9caa403307c68423323c528623db76325cc3ef31f5125d60274af8428bb1393fb45e18fd43954ff97101a0eff1a4d39f17a035498d607ecaa59b48a1330d082a32359df822af736b18e8b2b801a21323f3a086403782f2ddfd8e7d04252a72ab75ba39be177e586adfe6b3af0ed7fbd0061e01fd4a013f893d33bc7f4c8aa1d71024658aff43a86ea75b24acda650a39618c18c6b14864e20a3f964a6dcb0e9100f4add6236aac94da5dee45e285cd3c4247315ef080e157b29c1c7e4fde959133c45dbe3dcc8fbe8ff2b0d440ee7a8f2c5434bc15599f3fc215cdf1e0e88e9881d51779601810bc554da20a173ddcb2fe6cd4123176f482855e35480c0493b999ea5b7f497f9e76fe7e18c8a99a844abc4a42824cfddc65d493145507d7f1382f706e926683f7f8b2e0d07f021d8433d7a0dd4fe13f824f3a16da3e623af90f7b1e775cadfe6973d706166f765103238996bde4ad09c12407f6256700290c5df4b00eaa27eec3cd352263c61853812f23d809284bddaf298394a1b2adb2cf332cab6c54867d41e320d916699587692bd64a2a84d72f2a717f9eaaaa8f917a64fb89efd2f9571010c7fc857c7c59913b46526b451e4fe4c2c6696f593991d7172de87c07778bb8069002f7b8fc11911d28d15fcc9f3715f73c8a4945b5e2380d48d86746b35e725bc85cb7c5534e441a179760f8df12b97946a4c7885f316a191d5e3058d86a704341a737ba7f7197010ff2310bb9aa67db306085fc94460ac227648e58d4615c7d1fe0ca351367c5220c18dfc3980495a3973d01aa77f40ccdf67d2ade7d08b04c03ff4f6a2c241cabcb56a51a42218b30905965388b41b030c08364450f55f88b63affa5bd0a3fb7e26aaa53a236829eeb140899dadfc5ee0e8513c48a3758e99c97a417947e035a2977a25d409815a903f009fcd758dce7ef64ee5f71c4974bb65d186675cd32950319a90855bd33a489c9879bb43307bd4241d09dde0ec067ddffee712cea40d23a51bf0fe35e2548be1096d955247b837f32826c1849db4de4de7b4b29a59449ca1c0ae909e60921b8bdda3a730740da5dec75b51efc43abf179d5b0cf0cfb54cf69006e3fd2597eee0665b90e32a34661b7cd5b5bf6f2e9572e6800f1a641ba1cb1f5ade52c7d496368173117f73feda20fd2ae202065f9d728c0491f4780be05a79ec1569076dd4b5b6c5df9cac1100ec90ac33edb1dfb5096631f1168bd3c02e9192a7db9ed87ae5849def20d86be2d7ba0fbdef27617db52a59dd0491a63c4fd5c4395415fd6306b6a6a6af27681ed53b228ad36bc8ca0c08c1d811e74e35f6d1f33d97e0e6df2ff60040566ec1e744bf962f4b1690e1fdb7fa68ebe7d18eb8ed1ae33d04bb5fd7b8dd8815e4a29b6202ceee0f7ba8feb55488784565b22334264ba534a84cc08116b9dd25aefc51563ea13e31e24476a9d3a74a7566bbf7b31aed6defb619cf356b78dfadc367b2fc65f86c0b67195e3a84f8ebb1fc6397fdbf6711c05e22b9c5d44a6b12d3fd39cbd6d4076b8215b3ea7e32b8ad35121b6fc8e02f1aae7519f9e8784a6e4a7466ba8cd125a12243d4e84e70ce1d9911921e2395e8413e130286a6ee32fafa92981c26ffc474d0914d367eaec1899c9dc7b901cd919327566ac87593381e0780f1336899842cc9a69d3c30f0cbe92b205489aec71186e90504040070c52ba78be9292c55752be7b8c2d7d25c1ea2b996340c143faa8019f3d2b8e106638b50bd3a0525a398ef33c0fe4f90d6e9e43269d7382190443216bad4894731e8d482452472285422626a55209542a99be0cfa1e57ec443741ff6c0d683f18b0ca1e9a3bdbf26d0d28f1b535e70e249fe8248b9c73ba3ba5b4d6ba752553a8036da7135207daa84551012f4aca8e3e0f256533a5b5566bedbd17639c6bced467ced4a2a880172565479f8792b23954adf0c252a9085dbc6851a908ebbd18e39cf3b66d1cc775b5eba8cfaea3164505bc28293bfa3c9494cda16a8517964a45e8e2458b4a455845305a2b0c2386a8c50a16183144cf715dd7799ea7b5769dbcd6394020ed023d48e7905ffd3eeaf3fba84551012f4aca8e3e0f256573a85ae185a55211ba78d1a2521156118cd60ac388216ab18205460cd1d390c19163cbb44043070d0c322dd0d8ba9229d481b6d309a9036dd4a2a880172565479f8792b23954adf0c252a9085dbc6851a908ab08466b8561c410b558c1022386e869c8e0c8b1655aa0a183060699166868162fb50b0001f8a95d377eae7ce7ae5d31bcbff094d6aa5d317cf569ed8c37f1249d53bb660af0ae5d0778afe13b4a69f560c0047cd52e057cb5e13b6bb52be62d0bdfc95befa53eeff57a33e7a5a8cc20a1c5fce84906f0a3fbd4f0a3d70af0a32b39c08ffe63c38fbe24013fd21a05fc486d18e04698e1473fc28e612500376cbce042cf8c1f1df684d389440241cfa3e1478a23801f298c003fd21c03fc486308f891ee2ce047ca436fb67ccc020316a0800420c0860318a00035106000028899a1816506f1c6bc0b2fd8b8118095df110300fe67c4ccb0f0820b376cacb048914a9d4e2412087a9ec9db36ed02400ccf715dd7799ea73d181000af358bef24a88240d427089482f33c1028c2334e04007ef41c2f62c78f1edb89e1471fc24344664406f9be021f62d3906961e3c801830e9a143f3aec09a9d49f4e2412083acda7f6436be8cb7bb6fccb4286f08567e16fbc0b1fc3dbf81d367e05002c6c0a1aae1934313a66606021c70b385cd8376ad868614586c57f2a753a914820f87ddac5e23bd08301597850bb5c78d0c677a15048e4c180332fd2ae175e74e3bbd148bb567e94e23b49aa2412f54922819e8854ba3350d4567e9c4a6afc387f6cfce8352cfce8362efce8af1b3ffa8f991ffde6851f1d88eb47c77942cc8ff3891d03b7562c2d56f8fc7fea74229166fce839347ef498cc8fbed3c28fceb37f74190c3ffa4cbe4de182e185997dc3851658b0215383c60a8b192c31625df9152d58562dfc301f03c6ffafb048d162c58a058b742a753a914830be33f160c0186f62522a954c26138c3f9d44dfc9937a72427d9e9c6813cf7462677460fc387786c0fc387964317e9c4666477a90c8f871d2b6fc79c414b243950ad60a2f2d2e5e7c2a954fa7da8fd7f8cb6f1c477e15c9085b7c8a5ffd8a8ff12c0f03434475e8f22f565cb06849f1d2628515ac95c8a202ab44ffa9d4e9743a9d7830608a3fd1ae157fc2f21d0a8ace31b766f128ed6af1a8d577a99476e14fe91c33a5a6a4509f2929271eaace2c993536e28ff3c592e2c70964c5eac729048b1f27acc58f9308971f67ceca8f920a5b3e06fe535705f446df4fea7f9c3be18f9347f5e394a9f871ce583fce9e961f274d3ed52e2d2d58b0562b54a46051892116fd8ae8f8bf9107aadc1015a650c2ff8c457af481deb5359542a1b40be5bb940703a63e954a49d1aefb293ac7dc2310e5eb3ff5f95f531e9d614962cbdf9208ca8f52268da07e9433d993fa512291349944fa482852b60e142a9948a7931f25cfd780afd3cde3ac6033e767db9470144afd5f980abd4785374461a9e276128ef2c8f63f85d2572291248d6c7f53580a4171943c9e38ced8fea018dbbfb33ffa1e3f25454545bbbe57f1be5b59d1aefb2b3ac7f46040d1bf768dfe758ee9c180f643edba1fea1c53aca2487d8ae206a2c0b7e9fb4cb5dc8fa7df725ced962d636cb94919962c65cf96a3a46d49fa51d6b67c39ed122d92b248e2a8450486dfef71e5dd4a52d66659a60c4bbe780be9e28fc551c5762aae54ba154fd298390382a7d3ff6ae5624b177b9cb15794e52ff74aba2c01ceef70de36d07d7a69cc3623ab0fd3fa307d703e4c1f39c5e3885cb3297517e2e50a8eb58a5d0d41e701e7aeaf64e71f4938bc8dc5faaa2f1daaf4bc8503fdc9a0d31ffa936be8914e7aeb5e196615acfbb0fd27c55603dba7a4a91bdf4a7fca17fbf7eee01ed53250eaf5af952e547451dee9463ac932926e6ef015ad38bb3a12e0287d6ea02c2ca55c01d42e1773f0163dfd486b2728f5a98f8c417dfdfa9231a4af5f6f648cc9d747853c50167d94f0243c8592b24c636ad7af3f658dd2d7afb2057efd2c5ba2afefc956e8eb8332c67efd936c8dbe8a238f8ab373b8010720fe51fae4e0e12bca038da93e94453f9bc431832051fe8c53884dbfeb7448b70d411ccac218ebb06edba65da23982d5d3a1ed3cbf81e7390dc00e7b3af46dc4fec0bbfad0989c41b0f3d9f48d6c2f0746593b20041c50fabee4329101671e48a1942c902869f2fe01691cde06716c00eaf012d99c07f395c7e05a87ecd302d866409c198036b481b2e87f3a080d3598dd6b63c68c0bc200ea1b9267db5a56ab2d1423a45db81089449e4e8138a79388457f27f29c06e0987bb40ee8c1647bf4603d9bbe480b609bf1609445df8379447839230f461a6990e4c180e093b48b07fdd9a2276997e85f23fd1132431ef4678786ecfca3fdb1e98f421026806dc68a200e65cd009c3f8238a010bea21f0a4198768122887304589fa4650c340133e87bd08f3ebe504a1790287da5c5eaab2ab7e7c1c6ef67d3e73cd8a6238883b3fdafde919f87b76ec8c15b5bea1ac4bed41567c6081c2aceaebe92a41bf7c1fd928e983b7367d680d24fc96a2b2bc7579595639db25a305ffc85d0d13906a5bba4a4ef4f91fb633d95d0db38ec56a26fad0682a2db277d7dae0f0d6f9290db27fad22e4d25dcb60def91d90c098abe3db74725ccdb869708cfe531726557a612e2edb2a2ce1d7277764c9e4a78538ac8c9d1b9b11bc3a10ef8bdefb81e7963f13dbbf10daf10afa22f0ece855d984a58f70571f9fe78dd17907b513c9590ee1b5a287c7cac92da12fb637faecdeb5b736bb663fb5d8a57a58a83505e25f4dda174354c62693495706efbc38956d4b6c7f69c4aa0fba05528141a79a6d0b46596c7eed81dbb1342d923286d6776964aa54aac927496c6a2924e599d94b6311b2379a6d024a588146d736c8e8a8a76dd57d139dcded8977dd91729246d15aba22dac888599c2d12e1999322622f3c5148351963f919291eda00c967ad377f3a774f93769977812be288e3ec2504a970f6bcd64d241aa4ff5d9fe2b2926222622dbffa471d8ad229ea042e9ab1471cc28e212d989c661b748bf29668a6d7f949448c360db7fc5daac685b636b4c4944fb75a5d142ddca8a766da29fa1dc9873113dae1873604e3192a2ab0ccce19150d7599d210975ede93921026e51571e95f7faa63c2ebcef85db9bc2cf7b8edb36bd7dedb6d1d66d349b588ba835673b87397a45975eee5eb1eae01aabb13a44a5eb4edd114511b4516190ef4f6110d0a38892b24e4091854557182ce599429d2285ae38382940bcad42d79b1b1b5653d8ed15babe5e2b9e29e456d566a56b4dadf14ce1b64b34d61296a63f3f2ced123d4b7f277aa83008e84f6190ef514ebe2fcd4cb2d9cefb0b29889ede446929146956b5fb641297782a1b252c34add55ab468a1f24c21e6d9d9d96971a485a6b3594b4b0b8b670a2f8ce2509c161d1a8bb9b8b8a4f04ca1a5353f3f3fd58502d1f486aeb0c20ad569dea31f7b8fbf0e5750b282f69a9b42ba71b843f6213b3b4e84c779dc88cc652fda67457c85670add6194e539a22fb982388eeb9f2ea2d0858eaffc5d688f79ecfe0b96670a027a9198c3128dc6a06ebce6b0c525a358b3d1a107b8c15db9ab5f00f195ff0bed37372513d24814023f90f63ace04ba8f62d1c293ded25bbeac5e26b4e0c0538a65cbe01f5732db8f2cb67431c30618dab8107b9cf75bb803b8f177a127e6babb30086843e053f0bfd00f2e664051ba8c1f563321f100dbded1878f8dc5d17e77817db74d6957e58abe9ca2d885414cde929e9afc35f98fe4bdcd0fab99ef7f7031337a5068f39a3163f2363fe41923ecffb09a21cd9009a9060812489817deab63f15cbb66c89b8a11b88fefd3f0beb557f4eb7dc523fdeeb18fed89351dcebd5d000cad94a1015138e5eacae9a0fa54ce486f75f6669576719b4aa5d2ae1d788bbeebc2b93bef3c1127b5cb1347fc5b04f073df0110ff563f84bf9b9bd621377e95a6c1a2fff0953fa7d2fef2974de6bed05a0d6ccc3d8ba64921a783b6b75ce7c2a9b40bb3b0689a1429340d1e70a10a55a8c20ce8bb7b8300e7df70500aeda22a565a5c3c3965ee8f377b75ca501a52771baf710731cfd6a182bb0760edc17900ce25f3c75d56f0a4b7380ae2b82be215a89b2d3d66c43ba51a8ee19c2d4fb454a331a61765cd526dfbdfec0cd234795bd48d7dfa206deb307174db8a4450a142850a252af4acd556b0607930207d9676b1b46b8a41f25b3bff8653d91e3f9849364193a55d54146b4a80130a5ff9b3f4f4993e2c5a589efdc1503794657ac9b6bf8a591e3f1cdd166b41106b02d866c49acc85fa942b5e5cbcf0a4c77c6068e5e58f648b7bf92619935fbe4ac6805e7e0bd9da5efe8bacd18536dffff0339f68c4fc5a7f7ade8fb4cb9be24c32694568221442310af3258b3fa3aaa69e0074ef0b18f8e2d0eecd12e1b0350d8843df9c9c49c2a5b6fee6c40ac3b339fc8870967f0bfd72aa48c32fe783c900a43f7e309fcdfd88bae95e5eb48b87acedf92fda35c58f085f390f964d6ff8023a393dedaa9607cba63ff15ffaf883f9ca4525493e22bc8583ac7db02fc75b72546f773b59b3b2b6a5385bf4ec69d1f75b603ce92dd2b7e56b29d33d17b3fd286531604cc8f49a329d689281ab294ae9f2da1f8cb240af86b260782fb47d185e58a78c8767f2c078f142bbeabfd039bc906e108c857272b8505412ca007daad7f67fa171d88dc56c82ed0f03a3edc7d039dc1584872626cebc993731627832b4cbbe0c9dc3bd20f9711804f45bc8815037543665f2cd7cf137c96e70006535a1c4a26ec425fb66ca8850902f3fc02a8a51b80c8dc36e2a8ab521b4eebb8821c306caa2e1072ec3d29f2d3006459235ae949936b428228fc1b50e59dd340c02fa190679e519d0df30c8eb34037ad40d8d31c928cbeda36e4c321af3d1b7a249064e938c0492e5ffbd608e60fbab6eb6fff819b1fd3f188df9c48c0269baf196e9456340ef2fe7b7c77c33e63d7eb0eddf1e451310db1f946f4457d964d58fed7ff338146bdeba1dc5551c2f8efbdb06f6d5a16e9a2255186e18d9a3b864fb8fa89bed6fb5ab72a05e4d5341f7b71879e50c3914edba5734c3c68c221d0d0f06e49e46b8ed8a5f62fb3502f6e94f7b51da75ef8886a6b1620c9146915c43bbe8112ca35da2f8e36d6bb950fc116b380890fb51ace51095f8caed6bfba17eeb3d0bda35f50cb6fb50bb3a1106683b6bc5d4c98b745e27ca8e050f636c83c5867eb94525dec2e1b4e9fb8b35f1c75bb29a8841f29be8d38c11389cb61465f4eaee1c8a4a9ce56f43e3f07d45b1f60270fe28d6b6db15130b24163418d63fb5e0b5a073f6664837b7ed0e9bba64d97741d3e4f928df89da752fca0d2d8b80f3c3b9b79e812279020807f6fd3b6660cf70a0fbee8374b1dffa40d0a7bdeee3be2d7ff8daafca18a0fb13dcf259cc7ca03ea60ff5e2f90225f2908b898078080feaf1f024c103ee2be299f760866798e7e27b797876fd6e52407f28a54e1d069cf329add682ae290ac15f4e77b903b0e69c31f7b903d447b28c1ecff6efa4745aedc599eb3c296b705e9de0b9a6220c90fa6c1de6ae62eec9c10efa81216f0372336fa6101367e21001f3953f2c34f37cbd44a3da23075ff9d77af0953f48f3f0336d7ce5aff5acd9b3757fc6d8e0ffe167b068c47cf037fa7713e5772693ce6dde39a7c8e3065fb953fb94754549b7efcebb904f49abee469ead0149465276e6d49a4b075c800d5edbee3f6bad2aa93fdb5fd61a046acd01be32313129d5dc4359eeaa3580340d5dc93379f4c7fc23989138cb6dccd041594e83d4c064329dbc65b58ae1c2c5e9743a99a9d389e5ffe444bb4eb4cbfe6b7421e07c4abbdae342e22ba7b9aa987b8e0049fe9f771de8ca1a9dc7b3a5ca529322308dfaf480437d76407d9c407d74409d407f72407fe80ff5a13ed407d35cca5cbdd39cee4e29d52e1e95a4019f8a2304f9b6a68717fd11427faaacf5a57c6f02943ca410700437c6209fa2f3a838d3479d790a5e712ace9eef74bb685df7390d9c064e836f8669950718a6358169538ea18d69590e01ac5f711242ddc622ae4917fa3ec3b5b9475cc301d364c6344cfb665d8cc66c790b73dcd7ba427dfa76054de3fbe5e514ce7d55f0e2a2cebc50299e4f87ececec3da3337b84dea7f6e50bb5d509d0753c167b01064ceb265917d855ea795fcc5ca6d8ac62538cc69864b259b5f5d3347916d22e18556c47a62e5cb8a02e8ac8c9791103060606d75a719dd14e2f9aadb6c268d711a03bcc61314eafed2fa37e34d44cb6e2b5e246a68ad1543155aca58ac5bc70d189c3cb32de8fa115fa638a9697cda442b6381652a6be7c1729635f7e7742fd69fbced3b6765f9f7a4f1f047e0ffa4ec786fa0e7532d1ae6df35c08d4c971c00fe4d1ae5ecbe52468ad5cb69b8fbdd93aa9cca1e3dadd4dfa204a73a05eabadc1ad5b87273d06e3f04b12a35d39871fcdc767766df6f195d392cc6a7852e7b0b5d65af35b1ada453f871fcd57aed2f155135a7ac797c45b38c8da47f3960f49bb72c6b856312616a3efc7d0d88a6f969d5e34da4b46c33b33c6826743d767c16b7e7e7e58b06143bbf2dbb833dacc2744a3d154315fa974423c53c564dbee2be626b67f0b2de8fa2ecc588d62c6663299cc0517bc1b17d3680c6a767a4d993ca365da3dbd601867e3a874aa2a36530d994d19d51146886cff2cceb64a88dfd038ec13b60c0076601cce1bca9aaf1ac818e411ef949211b5523faec47c3faa4e3fb6d8273fc2b04144caa41139fbf1a5fef8c2fed8b234f6fd51668e48dd0c2d0050a21d9a668ad3a6d63dfa94205ffc4121aa0892e5cf85a824c8953f897eb42993dfff5b026a4663f0fba37a50349412a48c0fb63f253281b0fd3313dbff533521e76a3569759141e3f0c1f9d85ca88ad10d9a73c6a06964d03453eca1cae0db24a33138cf680c163f1a65f9d3b607c12fc29fc27f4b6f7a4b7a93af23fcfd0fab199b1fc019f043e18b286bbf561bf6a8a81e5fcd7c950450f5e3479b6dff18958e8be138b7f834dac5c212aa6256452595e253cff25d8a259552f12a1e001e0cf8ffa276fd9fd0c440a375c852d0a45468bc6b592a8b0803b42c61b55544ed5051116bf0953f8da661a6a211c3bfe15f121d7a47ae0bf095bf8e1dda854285aa984aa7a652312b295fb747a12a0a3e25fc94afdfc5e0c1802929ffda9522c2006b4a358910b83bb4035476689ad40ecfaa62de42e9782ba5aa68174a840156b147dd29226a476a879a1279d4bd43dfe0a3d23bdb3f06edf2504e543fd8fea724b6bf6908dbbfe4c4f637510561fb9366db7fa45262fb8b544b6cff093382600fb6ff37647b0074aedb3660bf9df56ee2585ffbd83abc5f6fce39cba0697256c9d9247f00344d167b0440e72067a041870c95e25943ae9bc18301690a890618688809c09bba6ebbe6bf2899aa6817a52602d03455b461059007a05d97069800da453b3a737ed58eb736d54ec55ea8da51c5b61f553195ce76b9bf8f431b8c6ba841bbea6541b1f8caff7ef7b613bfabc18301ab7842004d53c5964b80988b005e0d553adec2e1a48aa976dcbe09bf09e74c00958eb3fc6b1055312780f347556cfb5b2b9e142055007d3ad5b05e158a014806a0bbd603705ebd6feb6b9a69294dd9a069a6e8d910f310406d4580a6a9bb4b400cdad5e246fb507d5c1fa60f8b271335c8f85e2ce2d9917a71bdb5ca26bace9300279e6d7c644bb0566b91005d6c027f808669a49837f366b311c4b39cf1116fe6cdbc9937f38e78b3969437f36632003def88d7e3cdbc19291683aefbe6747f905212382ba9e208614e9753e61e70a8cf0ee6bb9c52fa404a6be79c93064156a4489122458a14995be6714395acba6df6dd07ad5d9756bb441159b55489222626d6d26a65d552258a2851c47e9d3f30994e276b69b54b14a9962a51849e685795525a4bab5da248b5548922f64932fa13047cefc53824bb7d455c932e449019df0b84bd44905d9c33ce5896f3668960738cecc2f3b48bbece380c026e13b76810f6f9aefc40abad9733c6a02221d18804fab47dcf93828c5aa93825ab564a6dad9bb52fe8d75aa90de5ae75b3b6d64aa9b5f7da7a696d8177fef3065f01c1fd7baf659c71c637e39bf1bd19cb6432d9bdb22bbb3963d9cdb29bb14c26bb57766537672cbb59763396c9ee955dd9cd19cb6e96dd7b3396dd2bbbb29b3396dd2cbbf7662cbbb29b3396dd2ccb39cbf0cd59866f96e59c2f96657c6532fbb6ce222ec6debe627df98a097c6f10b5d669ab38e5ca5a5aafb596d2aff55e3b7720257843359d4e50462827e1c954ba265f0814e15a4b207d4158ceb98a38ce15fa3ef08aaee88a42e0676416310927e84d42fb4e606b50badc9fda05e6400ab364dd9f5a06bc412071e4613499f83cd8158931e8f01595fdc0da258a585908fc942892f31245b22c047e4a14f942a10f043b258a84c04f89224b149185c04f8922df93b48ba45da10f04af4816023f2548454c40afa574d137288f1b72b8f85e3d5202f348d99cee9476525a52ea9348e40c1b3172de368eeb3acfd31a04fa3e100c8544a218a45308fc40233df23a6e34da463e4b2b1f7dd82ed2d509a4800b2ef29649589b318fc7030fe64902f34c9f3e5facf5ae10d0df9ba41d8023ed6902a4800bb9cee975ce7777777777f767a9a2ff0d97b5eaab6de3b8aef33c0a1a7d6cef06d4e12b692407707b0f9b7a38e65d6736a48dec7972eada793dbc3ddfbd49f27ca5b5cbe77c7777771e27d0e78544d44553b481461fdbd32ead5d9f76c9255b3e087652864222d168248f6cf93166b890249249a96432915c27f0e444e770d085a273f8ee5020140a8542d94a1d35a50968f4b13b6ecb1aeb6b2bd5dae70752914127594616a71b36f5789c36671d66de1a703475524b3967476bd5aefb55e7f05dd227a8d34a8aca77256fc23c669c37aa950d489992ce7cf1177f9455d8f247b944d6c24ffd28673bb2d3c98fb2078502da72e3648df996a69ea524ca2129837f1c6df9f9864554659d29533242634a33caf217459d501cc11753e20e6db56d2729e79c529a5e6a57e945dfa578d25b9f4dfeb1819ca07e9c3526d87cf1df29c2965f002953daf951fe984a3fca23a01149c424b3b1a5c5a76fd9b29333546a8de9a984a19d37fade04d8d130ff286d4ee7577e79d9c3e17d95d0646f7506987d6fb55682968034fec13fd926d7e41a9590b46d88a1f0f1f934aed540cf5309471b141a713bae83d9578cc0fdca614ebb3076101f99cd90f4e01e0c6a4ca3792aa168836ab76d9d765d1a2212d29887473432120a692cc33291766ddf691ac9835dbfbeee345775e5aaad55c41d2e024e0fbbf95e77efad224db3895847a4710cc7b8cbfd8864b9ee867888765d51a4f1ce4ea9466350373554a936654cb1d26cbef86753cc042bcd7636b8bbe9c180271fd22ed487740edfa7944799d205e5a576ada43cca8a38fad82a3f3f2594d2054594be5211a5af4e502a27ef6f8a4d19d47f271571ccb01371861247950df8d9cb5d0e696f848918690cc33095f0db26258c8190481adfdc9034c6c1382a2108dbd4e01afcc344e3177e996897f726dd77214f25d4db5442dd9476c0120eb68bc450ac79dd97c46aa271d8dd8901b25501b9f2771e86902d0dc81c6fcd1a87816c4d0fc898b7e6cb85c8d61481dcf1d6bc7124646b022179bc35713c09d99a414899b726cc9990ad39849c796be6b813b23561207bbc35637e04d99a4224cd5b73c799205b1309e9e3adc9e34fc8d64c42d6bc35651e856c4d26e48fb7e6cc3315646b3a216bbc357bdc03b2358f205fde9a3417816c4d26c81b6f4d1f0742b6e61312c75bb3e641c8d68c42c2bc357f7c08d99a549039def21a87816cb90764cc5bfe7221b2e522903bdef21b4742b61c08c9e32dc7f12464cb8390326f39cc99902d1f42cebce539ee846c390ca4c7fc08b2e54224cd5bbee34c902d4742fa78cb79fc09d9f22464cd5b2ef32864cb99903fdef2996f54902d7742d678cb7bdc03b2e547902f6f39cd45205bce0479e32df7712064cb9f9038def29a07215b1e858479cb7f7c08d9722ac040b6a807648eb7688d0b912d2a0219f3167d3912b24581903bdea2373cdea2389e846cd120a4cc5b14e64cc8161dc209d9a23090336fd11c3f826c5121b2c75b34e64c902d8a84a4798beef8788bf238f7846cd124249df96a3e0b213db204356243b6e7671e74446478f67cf006a3213576f6fcd311281d1ab13dff5da02a6246ce9ebf5a410b2262607bbe8b14c008d1c229818ca4406484f36f80e0851f315e7bbe0eca811dd40686d6ecf9344881004b60fcecf9364041014a5ed4f67c073ce10150b8f0d9f36f50420492bcd0f6fc1cdc081590485608e7f330040d1c7199d52ce101232db2170f4440a405cfcd0d8018c26207e78820745831980b8628629593b3021810b102164b81102154e0ec94000920296e781c0449f80f167fc99c034cb88dca6b6652706289f8d303852328096bb42730018af7f151c2134956687bfeac1961468144e56708930a475266354b78c0484af6e2810888a0786e6e00c410941d9c2382d03989c15c304411a79c9c15c08008132c960221429470764a800410931b9e098224e60fd27cc92607989836a359339382134b443f3d50388292508df604264001faf828e189249fd78ce051200185f3fd67084e85237a56b38407644b4aa72fe78108644bcaf086061036b819382f8288b1b980b18668c9ab9c10062cf863274252f7b413da48c896944e797cdb4978359c535226644b4a510d0b3e71a8d0d91821ff873c63848772bb7d26661bb5250f1342b6d433d41dc48a377cfe276b4c09a21bd0d2fb2ce74b96e92ee86c1e73cbfd67ca76932c5793c7a63fc795ed1f1aa9480014a5e0f08552130081a81cf48742010f74a243a74f15e03c538fad2b592073263be08d74819b473c582cc240bd19f011dc1ac89f3f686ea0befefcb77748e84e5250dbc71269bb684bbdfd47cebb2a532fc5b2855cf95f90498b945c59713cd9fef96f9857177f8d00fe95ac21c51c52d690b7d21074d6b6dc5f6eaf5eed7b15294522a794524a29e79472ce29e59c73be9453ca39f3367dce2a6595a2fc2ba59c37dc8f004a11f495cc73d63967952e523eaeb3925ad0d1b029f7f3b38cd97e86a38b2dc18dbf1d01fc770b579f79b8d8d341e063c896443e671b8ee2963e6d0803de9fdc8fe026c5d17eb6d3da6dcbefc43187b6bc275bfe268ea77dedccf7d679efbd3fefe3b05e2af29044f6fc6dda21ab2d5de0195be2cf2f7fe3af184f39254b7e16e7fc3b6b8feb2ce866ae7f455bdfebe35cf1aef5eefa58b472143d2a9b940831f4373c6b49f9c03be2cd7ed0e2a6aa744e95763d76fde97d0d79785b5beb9e3229ea6bd8a3eeadab373195ceb5a0fc928866a7d7ccd4a15c7b2dcc4c450ad248c9a74c2aa59f931414d1096552afe572a73d3ce74c8598422c299932a61f34c674f3a3a444451c419358127f4cb050674275f6dea4f3ba7bbbbf9ee7795d0aca096994fa0e04c196580a0a8d2693c97e7e4e4e287d7ad56b33e636af13a54421de77ce1729e79c5eb79d5ac00e7ba230b431f79daae38c94f6a6b34cb6fd41a2d0647399cb778301abb5d7ea215ae79dbc9389649e58e61185a45dc35c444e2ce7e8c472ec1b7922bb71397776fb9c3751fee5f2f54fd3583103c937f9260b91716219271391334c148aba10c78526e76997a5a0a69962b6e16a6a42a2fcc395419d5fa19076719dd6df6dbf7520edcad96228c4eaabe913f31171dd6f5e67ede74d5b8e8613f1366bb15ab5d55abb24fffc9862b12963aacd978f4659a63cabd16e7eb68b4050bb501e3c21fd9cf34923518a944a3d699412a552505229b5079de8a4c48f9622a250c45145e4cb3983a224988645e1b74926171ff1958bb319125cf24421081389c54824edea9ea473f8ee4e9e28d4fb8442cd4a3f5306f553d0e2e69d44d4f6248dc36eab1ab289437676bccdcdb00e8ee15811dd36699c13c33998086e9f3486c144e1b66b8881c44e62a230ef1a629b9a58cd0f148d5fb1172aa567e0c41e62b5016f49bbea48bbee83b48e1df9a2ae92dafdf91185379584766950f8f8dc50873cbbe24a7745a1b5dd3de22b4f89a5c45eb5c3636446c457ce13e3312293892e1130d82d22274727168b0dd9d9f9d72efbdfb178a9140e1afd0d4f85728be68f36fb42e0e08854313b0bf5bdb911750ba3d128c53b85a6fd636bb5dae8feb8af142952944413ec0695a1b03e3ea7d044854da2425b9aa5ad58a15df657bc676596c7f2581e558cb4572059a16d4f8f770a47fba3997e4c9993cd7c39bd4c3513cde6c7ae9968f3f49d89c99c1385a282323dcae451af124ae96212a5af500f0a6dce077399a04e3a8885a9745033ff938d4d4a3c09452871540d39bd4c3553e964a2d921766727f46a6885106d96b638318ba3a23b5588c5dab0685b53b3229459d81faf9705626fec8d6a09b85be8faf3b342e7ef526c61fe53f86ddfa1baeb7dd77922f72b344dee46dac571dc4ad364b12659c5388ea569ac8b52ae45d358b1b6e8eae3a3a445d75aad458b16a08d72224a51c528cb5b20a93db5e714ea2375365b61c4db2fbaca565e0d2b91b0db2e74e5e13985dc0b557d1163e19dc26d9b60307460e81a8bc180d1e2a19c88524c37a71765ddec53c5a9a8aa8aa97442d4ac33323ba1ac27be608a80d1352727468c182ede29c43fb55a2d46fd1143d7970c193256f04ee1ed99cd6632a090a1a98f4fabd57af14ea1dd89c5622d6aa4a5a98cca6262b4cb7e8ccee19bd68ee2608fde684fa5d3c5d022680ecd99e10e79d35acd97f84f0dada13f6668faa2af53e8b01ea7cd5027943e8552ba10511d215ffc4f421a34b4fbf8d4a8a15df66b684f9b60baeb9e530dc95325447584eeaef56a846ea48676594c26c3a25d37f612f6c982dd866d489e94cafc51357f4c81f2a38a2d57decb67c91a272f4fa16f947007709f7e863a506056616fdf23efd36b943e0977c89bfb2edca185d7a2837c9fedf7a1884e0ce113553a72c2cc4aab5cd9971ab768d7663bdb424f21dd5e1824f4d4869e0b77003705f0929a9a8d22ead003dc278ff2a050caffb09a3142871e600e75a000ae4215aab075e801eefca7ef71da29914c5d9493395fea7ce17ab002b69ec7c3175629c3fea43da04229575ace584ab18b766db6b32e2e5e8be6509e9f78a8effe2494d2a5ebb847bdc77df7de9f4294a8bf45d37061f59527b77e11a739ee5d340d273a11cf453b0fcf0ea10e3b9cf6ddc22a57dcc6fdbddcad3b5f391d14a398a814ca1c6b8a1c239a0100004010008317000020100a07c5c2304cc268ef0114001869a65260521c0ba420056110c520848c31c40002080063006666684801f5136e41a15706d3345bcb8c5bb26a9ba971362d336cceae45a696d9db64aa2034891fe3e08ccb636e4e733fc2f9592e0f7038c9f508b76738acde155c99eb118ecf707594d361e25954624b494b05ed5062d148a75c1e7175566d40cdb3e37bf20f2e4fb94cefb0ded3cb2bcbec51501699bca1ab16110e4a64405baefddc168fdc28bd6fd03d0f5b77add8380f653f4e451475f773117c5e19ecfc1ba98ad900c573f3a22d2aa7defc8aee5f296807c02712d0b25739b238dc979772c1e38c7f114ca29d15a1784bcae6eb48b35741a67354fb2d897e54d80d2743c678dafc9a83f17582b8bb2a055200b0c3e84091611f8b80ff054993fa6c3b423ffe28d64e7d803097c5bc27039b2ccae446ee5f09fd9743df075be90d591feae6747d041e9c09f269d1f0ce9c38eb88f1da723fad2979c7a5df8f537706dd1fe87372fd59cb3b14cf7b5ed5ad6202bc95d2726e3f22198d2085fa9e193a3ff09f43964f5a762d417b5d88bbaf716e17e233593789abbb84f6a4d2589db2937e6ccc935c1473538b9771e05eb9555804fc0ec878a40840782ef3140ffd7e4a8066685c3a4bbda3d97977b697cd74daee279e0d4a77db757d9153a67838449b70130a6c1a80dc023b100888932c4cb1ffcc475eefa0342ac7f66e3419f9a78e773a42d13ea52c2f1dbc283f818ddcff44de7731a8916788a027f354e822e2dad8050de23c264d8ef04dbbe40d1d65bd281b764d51f8362e7d3d2af39d8a4254465ce82d3630cce82f12479f384a1b87c2bd44dd9467328d575a489c11760114e11c56d0ae36c7e27508a17e4c356a77cbc48c62993aab364dccaa661333bb6d6296da3635a3dba6cceca68919bdd1d48c6a9a9adddaa666f4a609b37a76db756244854b1eee39b57a30cadcba43684e0d359a412cb0ccb150bf83bedd2e058c510d40030162f6275b6243f0235fd2dc34bd2cb25e9861df5c36a1ad363a6dc1a7cfb7cb44d6cb171a9db6c5bf37b66976e0eb17e2640ec43a285c03ea6d755aaac069a514575916c2d4740f48d172f27c0591b449743e8a7be50734acfcd5c34f31ba66a318e5af0ea37fe9bf3579e7b78093b5288101972bff2d3e5e113fe53bb724150007758020af70468f614b51b9401be6e872ea394881e4b7af242a7b517b2f32758d12216ebfc016b0b07567aa53fb04119c557ab6fb4fd38426cf41a122470fe6c9113047a3fe1d9d7230a171a50b946d25703b4bfb5458a55bb7ca5c80222a03d6c5568025b502ddf07bf0b9d7c3ac7ea3c1cd4924393d501de59882078cb7c880490d5aa94aa6cda473cebf3d1144d05d6af00fa53cd80808b7615da714c5453eb374e1bbe26eef776919754b39379475dd72629ffd622050210823a3a47d2dbc871370bf6e880af5d95262cb0b36edd91500403f2d1ac556d643ddf1a263f52b32cca2497518ba891c2f9631298948ab960772fa6dca96f2a4dbfde2d3e1ab89d01063c78607aa6a443b55f2eb7d000ab2c00a080da1c90e9c8563c19847926642c0ca3e6c2dcb3bbdb96ed7124467c8b3d5be11a643e7347e53008a8b0a725625c85130a48351832b5a190d7ecbb7fa25b9cab37f7e8bb38cb4da1803e84abf4eed5c8faef18a8029faea070c11e2be65ad513f25c64f30922770e587932c5518d9a27dfe7293f81909c6b4b02e355e0b460965ce0f28e0bc55db8fc31d6ae4578bcd1103bb965bff2df0efb784eccf4a8d6106fe9a1bd89e85ac35d7524e422ed0f457fe415778867ad0a244e421b502a43a65009d0920557fb096c0aaf6161bb1315fb915d26b4d8ee7f6fe79c3b8e769d2a58072b5581eca7543c28fbd440153deb1481b2d704117ff843592ab85bd77684e46094b3fa824c1aa73a601aec00cf073da579645ad35228523de488d3dedf548b580189e76f8af1baabafaf2387731b9f6771cff5d1b3684444d3ead82d48945d34f59dc6e0aafe9246cea973ec01b49a0520ed73dd028398b9fb7b151493750c0e5f8fbc3ad412a73fc6c9d4b052e9fbee1e0f0c1d8dc655ac8a236b3f187a40db71c637aeba66cbb12d9c839223b239ca33bf3ed57ade3f237eae19f98f8256c26fc914b781a2a32364044c7ae08705fd00210744513e6628c113d30ae0510f8f58bcaebf8dc687b8848b0158d1f2280345094129e2074e7870378b9e50f88fd86debc064858700ed27d5d65c1c422da2c69962a93031f21aa17f61532052540dd750913d431019c069bb658a8a6455d280671dc0e32910ad201d6bde59ff82211b5b44c74adaa71e1b71a1dd1d7359329be8eecef532a24f7293c9d0cd1a96c8930877a9b3d75d40544c4e5539092ce365f2e005ce505f9ad4f76e4f8968373bd147af60b3a94ec65d46687a7b0027514f8edef515b7efd2d6951826f8cda9b020dbab9e8e157caeaf8d14e8b2bf92375d525f0ae69e9564e214f0d37f06203d51676e0f457ede83c05d30737a45cc7dba3d33d94c781fae2a686427c02fcb82fb3daa023be47fb5951fbcb422578af4351d9dc242680071d082a864d1611fa3756c8680921350daae283279a1f7858645f0ad5416087300e185c98aa03b6537fc55416450d9481e9282c41efa363ea3daf2bdcd6ad50f71df663a3a13c60534924ac6628f991cbfe7c55ef255966972b90d543fd845aeab2ba46e2c6f51db3e8b735b1cdc23685a5e146e2d52f3c612314666fd71a0baf41eae1d264e643e67ac9882c370d8f10c28527b906104f346b8f2cd87b75140e8fb10935d2c67b59409283599d42ad6e1f549fb13acb1ad6e6ae7eae6120f14bb6fdf1a477fcbad2fbb32062430a40e7ad7d987555010640908fb1bb4a68ff16c23be0fb1024cecb626c550f9c76f73b34ad7d7dc0189a034c476d7bb08d893aaa44445b7e90c21dd11eead8d8a13441ba8920768aa0eaa41c58d97dc18f0ae2e013fa9395ed59ccac6bddb46ef39937d154bbcf7e9d435cf6b0714943563d17b919ecde5063691098f8da0c6c5fb182a6be79d6cc986abe6e67bb3203dcc76b6b067fa95713771bcc474a58eb36766755eaff682e11e215068131852c7fb6e2267d24feba052b707d99115d186f1a1de47b61b624e2500e5557ccfb9d60f90f2224a4515b587e4c433562faa3ada9ce8d24927257930162324305d987f0ed4ac25d5953aedfeaa85b89059f34d2eeb7bcafebc9b19608f8a42a926833470e90359ed2efdac9c1e65dc8b3acd72e90e2d1b6c5be856bf96de1ce21796a40f4fac79cf8e9e6187769b8dcdeff9a042ec1ba4191a95364eb31714c20a47149f6c8dd61521e6d545e7c40550eb0377543a12cbe9591b1ea4e4f04d67b3b9b6714fcae8df363018ab83a4479f9c7c1ec86ba8395bbd9033b1d54b98bf4b6b45a37b2310643d05462acfb72586775351b6f79c5c2b1d6c928a2bc906e9096a485a364ca56adb6042f6c5facf4adda4a12da3b05fcb952a597d908c22da621ffbaae01c644ba197a249d34a914f2487349deef52d101771c3ff8a91f0e67f78663045dd234391fd4a4508a7725758e83b7b1e5dae84079545c2ff257e4e15acbbd272a53c3c35635195f672179dae68c08b0f8cafd416955bf312b0abf8156b5dd1a3c7260d9559a5ad5c0533d6b3d993c00137cc7893b33a5ee0641a55db674ea982c5860dd57493b8c04272491c6cb05567c2128c49a542c31e0cf0ecdc43a8c8634f3cd92b0a21db7279c997741fc09807a5833159c4913c8b8a52371d4af5a95b7c0b1a3359d9f9e0f8663fe4439b7f3d92c74c2fde7a12beed96477286ed3c97f72d0599bd8179fa1698448d78ddbc007dc8ee4ed1aeb385e402ebe4e93a356f04076f66ec45b045a2b6d2739519b8903544eb3bb3cec4835ecac58b0f9226f980bdd3a825918ff33d55f7028c052eda05e2abe4429a270c99596c1af8334a6fc2b0cdc2460dbbdacfd9e82a15e6bb2e0df520d33717404043c0553c5e8350b898fb5522e2ad52dd5b3d9d14d56ca34ac68feac07fdf9a450135173782c0578c465a90e801e00407f607f716f73acf0a1f36f73744f9d13f10c178725c0f7e6a97887bb5d7273bebd061a71f925379c8979f1b2d222914a977c5d07e331467b584faf2948f46e2bab167359bf1e4cdfe0dbf46797ea688bef6121e22c005f4d5addf7b9b93d718a524763a6c030b3dc2c19003ab428750513be64d123479c46e78b94476a5f625e48bd4e6ad0a0be76d1a57f46a4debea2529f7585fa0e457ff0703d1b2b8e1e6406d2e2722c9b2ef3125f2a144f79e7b3bdb4db0f995fa669bafad913b2d303e456927b975d8c9ff62e271307253c1228939a72cd85c89edb1ed8e2db8e024095c2b9b46e05ef64e50500074fdee897a180c399e5ee4a30942204837ff0eee1434e3fd2148866fbc11909e239523739c2b524bf925986c51294f6b0e74eba70ed04d26d72b3d484a37e2b9ec930d853ccac91bbfb95efdd98abd5333d5ccd5c1feb6ccc84b500ef7b647aa5a874975f8162b9f0bbe410b933bcc2eddbd546def9b90a172cc50e72ed75f7ecd3225c841ab32bd6ca474e5c3e7515dde330011418089afbaf56614568d1d1d4cdb6a2b8badf65ed354ea040cfc4b682343320603b522e0e4fcf9fdb3b0452cc07556b0e2d6b2856630591a30ae0a8f74d4e2652f8febd0b2c8d8ad0336f9c11ffee5ca7dfa901f40e4009ecb44956bd0b2ad822c5a4aae1695580beb1b09de7c3dbdba3921913b6edf383ca0b887afc2b6a24ad3f48e7d34e441c57779707f49b8b1e43c8c27a23796e550d63161fe3309014891eb4befc2a6aefddd47981f258d1384fed12ffdc5d863e194ed5fd65344dc269ad1a2f479603a09e221ba7454271574d8846a7dd8cf5d45255edd9cd81b23f247882626352c42568e0e63ae7fd78f85e389f2ac547b3c3bc06e2f87762462a94fd3448a64973ba2809b0b0cf35ad1fa399efbe61a62fbf714f9e246e80c72e98321f17dfaabbd172b29b00bd979386cb05a6402178184eb6f40c4f9e3e608324297f7445ffcf922db5bd40edcefa1afa675383360fd853fe658bc0d70cd362284c8f19f6531919238a14d06bd1dc4549f647bd4c205136f0e33a0dc335be0ef9c44bea9c67e95128c117bd067d5ad24fe19b6eb008d8f6ea43101521b832e4614df8a5cb41f86733716c20b394df6e3db08f5401b6a654c66daf4dc8cab92c91fc1b8f85203f172896555cf664d211f4cd4679a09b5cd5fd733d80bad65b5d878f530a17219b27075c6de1c34681548ffd8d6f25ad90919bf918d1c0e40fe65e1d7e1ce92aee6f494d71017b33271e567e9c1e3bad6813874380a6915e67ae96d42df1cf8c3ed0683891a069f43419bd00a06647b2a4e67681b0590860ddbc475715800ecf438d0fd0c912a232fae7c2030c29c2d249cb5e64daa079f707fd11dedd3605af20d800aa8cd4c649b12a3f5ef3f80277d3954167e739bd13deb5d55307c4ee507b97acca4001a16f08661caa7ac769f2af6c85617e60490df3c9fb6545a745fe277bbfc66e928000490a61b6e62f31ca83104242f9f383b60eb7d0515752445db7795fc3e45e657de808ad4d77dc2da9e7e4ee4c3bd2d0488402cdf555e157b520462a8b6f18902c679dc3b459c8579a398c938a2c4b6a1ed7d9a7391d1406e1db86fd2f1485916c675008f8e35c0e5acb57280917c527bcd335e50985d86be42f2c0a3cf0a5007d8dd4d686adb315ab565e0cff9159056c3f23f5246bf86478496178575a842efce2b7cf18a91dd2ea363b2fe5b2a82900620fe9304664aecc206eb6491d22b182da3182d48969efd7fd71d08e9daceee05d4fda26bd4b463df833bc8c55915173e28e797a3b7d3caede09eb46ea543b9d990cddc61d35682b4505b8ee647b5e38942b6971ea094c5208d4b07acb49f5baa1ecf3d4427a1a06cfb1f17cff77e5817b54f721c20b656c7c2c63f7fa07aa81351ec4960ca1219207488ad3ce9abbc895f1fd7037423b51e056065b88ebecbcd262830e80ec01a5e039014a7b616df8c51bc9762c65935c7f36766ad0ae2233994e6f447426d42e58807082338d99bce6584973a07076d7e9d0c24b74ca01a3ada1f507a912224668291e5ca1cb85432b81220cf1729a1aaa0cca4aa707a002ead50c79cc261acbe93947e944f7b9010262ce53a7a5f44e949794d593083ae9e695ea7ea2b8c049eac94565be80d20cbd73987e2215f6d9c4ff1bb6d066e74a2c4bf5da6ac3cf9063e7a4c79ecefecdbe278932cffad58ccc15ac33750d411faac13c74a64e35ac0f22bcb1482da1a149ba897791bfd011239d185b91b520a4ff7fcbcec0e23acf8024046563c5693d059444d8708c468c7e22c4e842af1e5f8d906681da6866b75df82e4736325aea7b085dfa4a6ef0dd62eaaeed95c784ddbdcdc456e653d9e0d42066061d1d4e88ab003a5a04e6c1cc09b2c826eef59c93dab740d9348dac3db6d18c90bf939592ec367ad487bf99674aed02a1d0aa39a37ffccccece2793572783b7415b39a3273ea3da9eaf16b59e603b0c79b11286510017322c5adcc13b4f5b210db2209fecf18341a829fa8161293ac30076ad242c132dbe054065484c1f48aa3c594b7339513279d2369d1f9a35c4cefa8190b21888c4242f30168b9693246494996c856e1b2bb9dc534483345d1f4eeec0302d35b60dbbdbfd95f1d0c305650b80808c33795abd19c848d1548272ed7bcc146ac2ed24f93d884560ecdbb130cb04fbf1605ce7b012cb19e3cada3e0262aa167ac8e01e80abcc2eb8c71c0322869e6d988f9ac7a9f2d08e25238f085a6c0422a954a18dc05b15a2022f6d46773276c0dca77e159ae318c2de142efe3ce91a2fa07f5118209872428252edf2581e1c749df3b09d7a56b0b9f0a2711050d1dc8f8d4404e7dc6a337f0867b8260ef444df02528ea0f51568803eb030dda444fefa8a64c49096f290164cdf7deb34df1a9e0e09970d2e02eda49468c88d4b7eb0527c110e2a71c12ee50dffb7f5f67af6e861eb239835df2b0be772356ec1205a3c33165ebb9a0dac5efda95dda92db62feab48acab2b17112a75b73f3738e75c6a948cabc0e27242b5478db8e4ccddc9d9291efc1d51ff1e9865f60c77fdd1cde2ec1308602b3d8571d6c323eeac9a8608f28eb54ec499743f081939c0a6b64a5c48c7c48ec43783e8a9de32e3e8e39b6f44d38bd31bf0f6be37583d52bcc46263817b7c00a543fa212b0b2c9d8941226d33ed4a92cdb3b6396a66b92565b9a698c49142836ef3e6a55d07c0424559e0a535d1c74246909e3a8d501a07a269ab7745f07890a0e25732b1fae6c18cda393c364180d91f57e74d34dc661ee43064df7340b5d7d7cf94bd5a207bf2269b17854d0535e5499459b1774056638932434194b095f15dc662c68138252b16bc40a2dd95cf52ce64786573b8e9b0060e6ed429b98fa351a67376319691a8a20b42f4e884a7355f0795e815f58ed067a86c1e7819472e48d35da0b8ac5f0f386031fdaa1adc163b1b6533dbbc55b2d941b43d1cf585588b6981331244c71aff4d7472249b11ada37635b9f17927477f672cb0d659fefea07012119c854fefd9704913235ef5e76373dfea1880358b8fb7dac7d12d8df6eb6b698ed9cab58810adeab119e7ea81138f4376c3359bb549eba9c08eb7ff6a6bbec2d5874f91305a489c03ece617a80804656582f364833364d4a4b30cc18ef0742f17da171b009bd7849e21c8655d2c56b636a54f0cec9993b5d0df22006ffd7cbe6f291379a64d3cd0601e4a0566aca4000112d2211581075638a4586c688d9232d7a7a881efdb32478ecc8027e272de720cf34f12adc4b52c46afce308c767439ff07491480360066947127ee152cfaf7861942868f14b84c17c759661166ab05e73120e7e618390d62534892bb30726dfff5edb239bfa3af9fa06555429c0306f9cf7665c735b847427e11782864b67b37817d3c386d5054b85bb4823cadff2351637dac4af24758679a9c837f1f01a76a84c8b2534937d4e30d6bd66c3f7428ef0c5f2c6ab82f53afb1a17e3e0854563c1bac8f896cc4790914bb54f25e360b2cc920d48784e85c84c06910934816c97b373cd4c4110c3c620ab2e097783b57085a8dad514a14544b81a4ff60a582dbab79e70fa31dc4b43020e8edcb90be868a0075c93ddab63153422b392f1cffff0024473cd54529a966ae013900cbb831a12569691de319737e97e975f0e53f44ce246a89c594cf5a2cd39b94da6baf5d8eb21333b87949d254b21727468b80c14c7c029b9d2411623234a1ff47629f4663b937937759a53b0a8ee9c6f5877f888098372e067dea02b6a75e9f957497e78b42857a894f3b4efbfab95a594bdff9852eb4149da69356b74a19d6fe4123eff4e492ab7bee9f991f601b48bbbe09a7d91675af05f87a1bb2152652bec0d908df3f3a2c57327c94683fb7153f4a18f014394506a24556854930038ddffe93fdba3a16d6c87f33e725c22398a0cc0ce66c17a834698380bb292836484b4c42f1d197084752aae9c94d703ff1ff70236414204ce1535e127503631c67282c113930072e6b884c3eddd4201a6ed12d83d3a812784abd9c53484bb2fad75013e35a7a55d635425cd4a99f4c247aa371e86ad63522c3cb45037b34ea362d54b0d14dac71cf94490539d3b84b8461ae59e1780829a582c8ac41f159370bcc2b69c8dfd115f75546ad6888bf1301f9df1a559286d49169829a46bab6f1916b6c2ae0624452b2cf12a3a29330a3cf993dd8d761f36a3c7454a3c68876786b88bc260a62726e15d92a69daadc92a2945fb5985bc5d69fab8bc97131079192392c3dba1bda23cc2e18f375f6b8db88c46abe34504639e04519bae83af0f8b40803670fa6bde1a98adc453c364a1d570a96f98038c6ea8c1b2888a89d6fca3e257da360bc5c0d93f27d02737529865d21f0457937a3d55e1cc17dcc4e19c6f7dd9afe0a5fc4246826ec11c1c4ea57a02cf47c1c912e8bbc96e07c5ab31e2e24669dcbac0a04c1288facd859e8db9510db4674cd1242ec69ff09d5375f53952d66b330912981192cb3757b1938b1a0cb12335e1e55e3ad00790734d68d702583f576af170501350cb00c35ca98b5a0bb0c6f08627baf618908eb7eb43deb8b1ea0bd88fc3170108deda55779af37e9ed4af8e405ec0d99dc894fb6ed87bd75929fdbebceefefe358ca7eb76721038a8d3e8bad497bf9802de469c36af5a60efd5549b772844959b52411784547f9405d9b1dee3f7cbea8688372f2191b78e11495d6b568b4c6e22bbb04ccf3e5dabc3d8e90a41eb4f8ff1d5dd53006c240580c3c2ec547704bcb041ee53c9be63ee83402c92a437ed8064e66d866f69c4e66975dcedc0f4a6155df92e9ea58efdcc0b92f80c9b38edd4bb1e6400a677ecdcc158c8214d4a225689e4537512ba800cd3fb1a5cb5617fcc5f724812e11791c02933e8f5b6b4f4c258998dfe31965eb3a671175f44c2f55a118b808c766858056225f1c72c1d13b49a8527755abc923fd285ba025f4e069dd8408f580d6d881b7f49728403e1a5a72dbdd9e9b1e59f2476bee0a608e72e56e81564791e71619e92ed777f6bbaf1c49f144e237b7d53004be6237bc342e8e34800ce58046e33e14b30d061a68ceb89bffcc698288d033e40667e009eed799ecb2dd74a77863596e1dc38b02ab03613b438bdbf3ac510b6b1cb63b68c03277b9d2dedd7d98ee8dc6147de84afbd22f40918659e777dfe6ed2774666baebd3322151a36e2dc5249337217f4cc30cc7cfbd1245c1b99e09fdfbd766d527296a8dc5f53e15ad372a9cfeef1d513b7efba8a09dc1d138fedc8d6e0a853b11d3eb360aad517889ee0eff8ce19d979f30d698ba54a2a90a92902f9b54b116f9c2e8e6d3b17c1fb0768a04892d5d692340ff2db7cc940c61ff3365dab42c71fb9f46f095f3aaf8bf281b5458dc15f6b6b8f4e289c2c502c7c0436022aee4c5ccdb6c962501a8c45681904ef16c26e1798a0c90d7a8e65ba6ef2a8600548e127d7eea2bc427daaf0300548a6a9ac67415400faa7ffab50187eb74d0fec770edec7b2696cc631e423cea5f10e82701064a55c3ac552334ed4025db075a76cc0b9a68dde9919612e3294f03c355a6ca4d896fe53fdcdead0cb026e3bffdc614116b8bb225b59abf68ad43bf863165292c19fcb52a434f616bf2c9a3a4e03adeb0a34e95b8e12d969570ca6f6cc39b372a59abc8474600d57ef19a05d5ea1d98f7834193a7b69fa8576d1174560723db1b8c05c6186782b2dba208bef23b8d91b29eb6b53db123be15dbc603aa312d3169943da707b6e3d3a35967631a45ac08a8bc4fca920c5411e7d4f2a25f6a29c3e7353914de8b443168fd8b534700cf5f58276a179294d8132976d4911689deec6f302057099e0bc70d025672b53bf04288b537c8664434e02e2c05e16b82b9c23c1534c784d8a7e964ae0e502d57d79be61a2fd682141a0e52c109b671ae31699c6cf7d6d45c9d9873671881a8d28ebd5f69b8537b8273cd46e68fd5caa0429107d7286020bd6038a4737d5472b99896dc6a9c02596d1c69f4564c5a3ddd7e4a02af71e8fc5f357ad9abbf8b2d30b4565feb31f2a924e0b062afe150becfe00e48f8297d50d742bec416f47ab0e78abdbc75b84dd873c454be11a73b622a6e4cb5e78aadb87182f87ded15d65b71cb873e1f5bf686cdb4ec04acbbe03ee758e47b376defa217e8e990dfd71e61bd3637f295b2377ca26526b2dd2577728647f677a33d173d44bf4faf5f7a84ebadbcf5a1cfa65a7702e326b9cd3906f2dd37da3be8dd4737a6efb4b2da1e61bdb63784d0ce4a71b73681fdf1c8edde6cefa2631fd4d83ed29541374274957a78b766754ee391efdcdcde45477d54637dfb950ef59e03e3b18d4667cd18f49489951a68a0cbe8fd3fba73ab6c5e63870fe8bd2f8ffb5d5fd984ad94bdc88f1d61cad2bedc691859acbc18c0dc01e540c6df740dd3bfcdef7b97fd134e0e0e540be4c822053f0ef6cfc6dca1e7ca3c632c90afad151a3673327ebc558773e60c7ba50dce303673b9827ae6750c70e694745f05f81b6193fde79f39404eda80f675e685bcf099188221176803454173e2cd1acdc354d5d52d687ea57c8e38f47ddf706e24b1d0c4be5c46ea8f1262932bf847f083cd9b86365f949875099b430cc58637432edbe3361db807f11fe8a0dd439b83b4eb0a42ec756d92e8f8069573decbc107baaef35640218c118847208fbc91cd4f344d09bdf5ef0a12729a48376770eeef825f24435b473775b71f8a62917795af081910e9058128749c9be87b726e5c398425133e9cdbb959b6a53c0136187eac3f62f41827f3edf9be01a15f231fa7c3e05b7344645e8bfb2019e267c53122e49c2915f38f70d46ac7888a20e3c0dc98babd07852b9c0f00e15674b2e642bcb8e074e1fc9d67957a726ded1e06692fc48b85b13e73e5930adfdb026e3285f0d6e7a841059142cea136d0654bf91fa77b70a69b451285e54767790169c5f5eb0a3b97ae5e38935467a9b7753145f0c3579f09329884cd599089cdc86679f6f0f34463b0de13922b7c6c723d551e7659e7e4183bed1008546351949df4f908d57aefbde4b8e6d045ce0eadfcfcab5c14e1d37e6197a9a52dcf83ec09bb39f0151713b961e1846a625256bd26adc16a9250f925aa5ff592849e170b560a0d15aedc2656011fe635d18fc8e98f313941dd1c290bf0d9c74d6c462049453fffc0ec5e41ccf3e822813af98084b1466882e2640b552096bad17c5f61ee0da358ac46da92604d9f0c5ce755382a8d200eecef91af538971a4e0dc125c251382e5114111673b3d40bd638ee98ac32592b2d2c6614588405d7fd55e98facd31c50a84311370646a616b0df9ec57b76cfab933d84cad2006b2bd0d7e8cca4cf7fe0d6a5a9c40d997b4d05adb1d067241eddb7ae01a9f90b2a893de34d8c750be272e79a5e0963c8d88123addf74b2264104d8078bf394c403a161a83e8d142cd627cfbc7551f48e64bb08c3eb7ca8c68d63e8f34b88ae7b1a88c3e64a30932024cd909357ea4e8bb87df11429cd139e8a71be4f9cd77856b223643d5db12280b2ac326e093280cb0c8d699c11173d6ab86f2547e1bf9507478411f878e440b4bd6982386f48f3e658a72991834112e07a663126500e5455cba11a6195cb22a09531c45d1b73e530603c381f21f1735aef6754398aee5a0ea4551543560830908a1b1dbe9487a9c19025077a6dac56150e7d6a3c110aac0d01c3257b8e244c46c30f03f44572ce564be7a2caf3f703790c4a7e7916d8fc2cba8b4b3be318478e65e5e227f071e8c52a37442a394c84393eb72233d295ddae1d70a707c48295103d0886e2091b2f5a5da008c8f47d4cb48f9d5fc4fb60e2a2057937b3d90cc2e36869090a688d724aa19fd123f63e9716752163791aa065485ac1334e1f1ab616f0fb27ce2c4e41319cdaf7e088810c23ed6dcf6d2e8402b6d0122dec53fe562774f0a4a4e591ab94139ef2f406ddf39700699b817d5b6dcb1d5fdd2312b07cc48d5aa22039cddeafd23cbf66dd771df0a9ff5f79688e226d00949909e47545dd3488178e6facd1b81b23424d8e4361c173699e740a6852e77bcb3d167d48a71cb5af3b10d174e8d4655951f4ca545889e1c55ffb62b19228365679d47b010fc99ea875c3854c81cbe228771fdd98b9e43ea401aa9d735b2ca8f50b981fb891ddf7af0a0894005634a7e378d410bdd60f06edd0b6d77d2ded4deebbdc095c124a7f07c4992dd2da7f9096b72ec87c7b356a03eacfd5cb192e74febaf6c6dde110b019e8db7673378ba40a28dba74aa692b5e785df7b093c83908fad453dd829c4408795df05cd9245c9d2687bbacdea50a44e86e8e06e46f64af4c6c51569a12a47c6df0ffad300bf4f2bc2be381243df05f37cdf851fdd8e3eb11d862cfa802f4310378f8d5479bd821fa0e48eae240166940338a473d07c75828a33a20e2f67d5848b4fcacbf7d2a4c8debbea960dd0348daed737d9459b89f54ee1e621050397a16bc45e3c785957d74edb88b5f05a361a014aa90c0acc9d2e4f24e285e179debec2829c9e277cb410499c59aeb77895bd23e4f91b83ead217ef358967a38042d1f8267e131be36f8b25cc087149bf2ea7f60d100462da31b3e215e685bd4cf0647bec05885071c0af3c117684bc815c58427fa131527c12106c0b0e9f28b91db09c2b192e430ae87d5088dd267c75bdcd23b469d0c414af4104717c3a21f83c2bac889b101f29aea182731f5b62a8ac95c51d2d658127f02c90df8a1cb845b63747de9e703e2fb19d92cc950261d86a697be84fb7b84252020d9881457c11b1b196a0dbb0b6c24b7a710500dd6e72177df0ae60c953cfba663614595e87d0db78ea5e92b8c5d207381d53816f7fcec4626b4760ecacf97683ba8f4a1a1a87d0cb1f57d695132c0969000b19f1cf19fc886d2fa42f674caf143f8199d5ff7c2f801a14152bb2bfbe9596d9a4a5f16e3e839a52be8723d115dd08e894d823f9e2d72c8cd22394c7fa4430158a26cb9c28d36366de7316526363fe4091fea0272464fb5af2c4c65ae08b2338a101027b8ed7e6385ba07d42fc02b93d0bbb6052f8a853e1062c04e40d9a91d3c7ea0380875bce4b22694bb39cffbb47a8dd32091608428d9b42825247de622148977847530ec356c18b308e70e14f6b182644a6a25aa37bed41c14c8a0cd591faa22d6884e95b52029dacd68dfd1ee1feb1d0be9e6c0587defe0ee502a946ff9954a496b50c3906a627c9cb68e9beb0890c59ab8e67bd022daea62e0f671df45d6a692c9add0368f32d4046603c1ab784833710fb3f57c8cb5becac626e2c29dee9e1f3ec49d388746ce82103210975c1b7d8ee18f23770fe28f950d160e0b513d1991b18620e7de7b7044cc1b46376e10518ecce4af308cf09d771ba97e5890c4bf1c546bac5390f7a60a747858869a19669d989df843725a03371d8afb55440b7a7efab023c3416a8e131c22841209918d62349704cec6af10bb0608ca439b01ca962a706cf696e7107c833a88444e9fbd9454626a79b28d43d8d41d1df7907c5855fdb4fc51613192fb751817de48cb4651b880e1ebf9d2f61c1fa6ebb6b79b3a2632ba49c9e3e159c07ede64bb3ec1f51a8a92835a5764fd0a7e0404d265ad3dd670709608758419f27356bb4b62822c3a2f513c20a5a53f7798bacee38b75ffb3d956fa277ef14709e86f79c15e1416dd2399ff1dad5f024f860ce4eba724cadba79a623a1c08277c0af573c7fb14e1b09a7243642a2dbf8cd5158ae6595d5ac1bcb5c59eba518275c99d1106ca334e30c90f48121e3c093e65f4b767d4158147d29ade5f37ad8b56ec4b8a4f9f02316c2401f2537f2468b94fd742de19be1d0e22a4b69534397c0db1ec0ccbf5b5228abf4297ba91e3d5abf5d6aa40994eed2a01e713f3ae75475ab8184644ea9adf8a5c72b000c4aa00955b44dcc74a54ce00dd0a2159f1008b192c92cf723960a5956ce653ab55eb170cbc7d55d85fd764055e2f71249fe947a0b974b0587558068eb38457c423af5ddcc72f53414f531edc6708580c98456854d8443364556191580967fd0a20a6bb6193c6efd6d16e56064eb5b4f9a6ba868c0edd819988afcc4c84da45e117308e15a85e372f3d0944275470cc85142ece657eb8d420e1bcc06020f99211cec9e87c4efed37e0364a0dff8e8f6ad02cb634198f6071368f9a483ad623616915308fdd10501b4b41e3f31a68b82dac3ba05cfd51ca3494fdab29b806f8c99b8633d9a6438195b04313c0d737f89a58a46dbf611e04c6d8fed00eaceab7834686ab3443e8dd324b753ec171988f8545ce626192f8abbf710321796965bf46b9c55ed1375398060f7f84a9802c3c4516ec8da900c30825684efb019179e58e47b5b2845ccb35b1b2e5cce4e8b080f4e1231771c188f94f2c350e90fd4711d2e1d15db71b6730c0ba6e3f460d8bf980d282f827ebd6b95e268fc6bd86c0ae174f7322c5cbc075830d0195ed33a0dd11e2f1428e8cf4f97410de8fe4397bb1bf7c908dc3d6b86882e04ec01a37f78e635a70afff6564610c64d5a15b1be1dd606fb30bd162be838d9ec6327c4121fb36cec84664e5d68f9b9836e97a4f20646fab739b102e522b64cc17d5d98c00d097b0bb31f35b18977292ba7dd190b0125263764c92532db765e0dd25aed4fd2e84fac4ac97bed347c960f8379e9a485cadcbe4183993ec3ee576e2a50f4dada3916f2a8770900355e8e505ed6bcc2f61ec36bee669c919587a5014c9ac52de337b7db23f5665c0c54a6641c6690c8b149b17f22bd11dcbd390dadb438fce14dab2a3b600973d395702f3c2b4176a080e13de58c03d404f76df1d481e4460994b181e15f37dab587bfd6e94cbdabdcb07d87cd59089b2fe868c74b1a848d4efbe2c41a9895f6eb426a5d16e0fb918a144bb990c85a9b3f7f3025716f52bf0dd24144571c6b0df7351e1bde8ee26b7a827c6b0c7fe179e914bc95addec580e407faa75d164f4d1dee3ed01ba017ff84852191bdaa1e3e10f8db9c984b5afef17a063c97e57155272bb2bb9e123f58a18d12b3650d50e7c14919490f65e11757523ad8403b809c6cf72c52ddb1211f086d0312d2e2d39ed2fc9f7cb365c865e119e29af9ab204f55762ef39f794dfebd1244cd238bb73d740e6fe541caf98546a3609287d3d1f2dc06432f5a5dc985e6cda6947eb5ea5e9df2adf6accbd171c7bfe81fd18e2265ee6243ffd9fd3a7c2bada7f2c33524843970d739b60c1adfe0f57dbdfe9e6187c2cba8062a807a53e1370c35638a6d99b3b0c6f71067bc192cdd5d5e5cf28ce863b8af3df2c40e7dc52064ab3da55ab4614eb6e234886d1535894ae7122ac4fe6115edc88d57a3e892370032e5a39db9d918082bb9d6066b8251ed68e486781ec979b4040b3323bbae72ebe22a7038c393c89510db8f717dc203001a4a5be63c450f3e10cf521e1cd77a30b79d18554268dd134fc4f1f32cd4290a9c144317857983f039a5ec61cf64689a92563a911fbbd66266c0b08d18d067e1244344650ab67b6270ff88614f7e964bacb42029abd901bd6305b486be62099d22dc92ab35103143325e6ab027abd54dc5e58a755cc31c394eea5b37f2216810b09c7b99472681e3476d4431810a589e789464697bbcf969ddf8b4e8bcae731dda3dc3f6283ad178147cc10e65cdc747c698f8c8a10c640835215eb83f18e89ec046317447ade7aef0f8c99ee152f55e78f36a54d48f61ca0153841112b015f994f271f24ae48aea4bc72a0941cbedc1b62387eadca0ff7469c390d704a80cbc26321dc113e7aa34e57ac497a14b820023a33d9957387a3b07a70e918d810d2a41101bfdba18abdc3985237311daceef640c0cfcea01738eae455314e71833dd49fb4c03d3595cff377a904b51edf4fb841bfb4b9a0801b9d55ab9db80f06ac7b008d2b0664110aa32422b581ad29cb22677276124b2ec9b1beba280a7498126ae19c7e681083804456167ce43a4b5c264d8c9a1b202e4a9138caec7b8b14bd7f94086b59cfe67beb2b4b04c7063ae407b430d8872faa4bce9d1f036681e7cd4b486aa217b8380be7521bf2289b75a178dd8e9f70c2fc77e31efb04a1524c4113ee100d3132cec15e33f13da38582f59f0e2b40880ca07567bb871d27b2881b743b338f8ec1b9bfbf2e8324484f8b98f76d374932672f803ef272adfd1ec6f96bd8f8b43e449b78a5e065d4a952bbc19ef606b7178341a169ef42503af143058b1d7ff22d42a4f2d8332b59214a18e63afaa92f30992feb224a22ac76c7a287336d41537160a387dce745518094e70387d1307799b7a21025cc268880ad005f54d80963f5b64975173908a23521c940550039ba2b43c8a9e02b674d4b0a4807879eba09e742d95f7cb87d527021d355bf3e8cd520d0fee81caafc0b6f04d568d89fe65c6899c3f6d9e0cb995ef937ee61811ae2fcb560ad798b3ff994719f16b8f300e79fa4bcf30f1137f08405b1877680b73f9e41df293cf17a82007cdec3eb88b2b816888accf8f247fd8e88c6d75e25f088380f5e27a5dc0fd8791836a52d9ab6a3662eac6365c56811093fe2cc07808a232a6c56300391139ad7b8c58a5eb23575926bbfc4c8b550a8f4adfc7b61b591aac45e22133f49415ad375fdd77e5bcbd220c8695db3ded480778b70eb7325df8fdf5c3d98f574a8509708b5a65b2efefb1d70f0bc735babb42f70a1911c8a6e20f5bf5e0471709cea5649f1dd0aef685c3753bd8b5c720da7baa25acc0e870d1e75a7a1ab6fb44a25f656ec20717471a718dd9d799e3215523674ce0dd4ed28c9205c73e344cac8601f32244ea6a06bd54dcaa1a92f8c32aca5cce91247628f07fd4bbd9c774f7ce97fe8f15431c12bec929c296ff68c33fe950e0de50160506cc49369080e8a9b0113929d529df077b086bcc22e3475b9e1c22458632c45de9143d8b9810423c0d9212dc61c8ca3e607b621871a528c5d4c0051991eb95f682ee2a82391b73437283b8a50e7cb3ef35b3cc81fca8ef6272ca9fa54620487e3ec9a12dacc9a197c86218976950ad89fc71092e48ec7125b6547483ae132583c75934825bd42ca2eeb16dcc5fee50254d8dcb8d27ccdbc234b513893aba51b7f512b51a7281572c7615ea683898728e02c8180355a382b464908031d4e18d0c80c03c8acab8ad57e91ab3e3b958a3d43bb42906b2c8c365d37c67e8f7b6b4f58b173006b3686f33e10747499c2530f77418cc651adcde5cc6e7640f8a7fa052f2d4b67c5a7c16a7003905c3a4c430cf624243e0c02208ee674bbeb432c7b9e62666a216c7a83389e21c59e48137fafebda554a4c880717ce99b6711a660a1d5f2e783b3cd62de4f3b60ac54c93a6b1fe8fa1f851476c901b11e9e6e2192b96849dffe38cd8c908c090cd838306af090e5d3dcfdf386bbcdf053533da30c6fc96a47c116bd552faa558233b8ec4046809c0c4699c8dcb628d15f81e413a798acf638ee47dd64dde3fe22397b07784b64ba2c65f4fbaf6571d1b1a2a09ca00e1e91a8bee6963c3a4b9fae0910507945bbe8e642e6f289569cf96dc090f3e7891b0c1722f93fb0e8b8a56fa167f4a74e1a1a486baceffc616c3e0bb0e3280fcc7f987f289e382d3873a54385d0766d218c9f0d1099f006bf36950256a71f9969249eeeeb0c4f3d0054c6f5f338e542775fea938885262b685c6c1952344b29d125042d1716307699944c2acbe5d6e3d9480d1610430f2b4806614e794f1a2941631f1dd9188254aeab20964c565ece323962dfce0ed288524a08607c1181c7b45c1065ed545d7c2cea790a793643e0a3b73194e1398372d53e2adf9dac72a00002c1c45d300d92d3f5f21304ca0d868d13008d5cba813a7225f788238cf10a6c190389d64786b9288a7b63227d19a4ae7ee2681856096d8c99237c20ce16b60c770cb0e5d4ba393ddb5684bd07474f11e5c35b9c2151437d77a90850cc4f94a2a69c537033014d8106c0ed1d0d2a920e5cc2d379f8503b1c242cc411a4831305d11b81bb08c9677becef293a20274414855235faa03ee2bde8c153e1e96db3be2db637dd2d792317263fc89ec7e6039139d962c7669081535c6abd3936ac726571b0af61ac7df8b45a48d6524c559d718835f5f4f5a94902251e5db7e97dd21dba364c748d7e10e49c99ea30bcd707ad00307c993bbaf2800caa4a05d1489c5c0067a8345ab837ecd3a6fa1366e7134b858b9a1d32844c3fe8309afb86b9064c94380045c20820bd87b2412636489aba680c8e27990ee125a44d1ee403b4d7a2d32e0852399951b4b263b744c88bf44c6def874020d7024cc9a46966aad284680be4a92ce784ebb6611f7a82307c9f6935b2c66567ce8d40444c7205ba8fc2a15e507a190142a6042000f4b63d5e93dfc01252c189f9f97165e9afdda5539cfa9158cd251d1715c3ad9e8501d7f774145c3a16cf006ad7c02d77fc3f6c6f276df5d1d40f1815cf4bd539edb96ee02908d75be6587f6c134636ff7d57392157d225b59a4c28e8066a0cf28b99a9457a71b13e550a625117b5e068821d31f415ba58ff25c68e10934f2c99dad7b2e7d7794cf6216d10c958ffc160b376c8402c324b2248d8864bd60b45dc7f7f2808082f90f90127fa3a8ee4172fbc3b1ab23ae622dee20580334f4e9c9ff565774c5f165ac1520b7bc3180260e3ed78c2bfc40e6838c170466cfde0b7aa81e93c3fa8c724998648db171154e68871a0b100fd9f061c2544a7a3400348f4f57aa847ae8e047921c152efc3715b1181216848a81564642002abedff706d80decbc92fc4e65fb5897c4dde1231d4f4230810f2aac83924cbb988e5ce22227b686285f6211820c17a11ee67e583483b3094f8d7df6075781306fc34ac5f5967953cfc5e6f0ab2fb0767b0eae71d2fe8dab47d7deb87030493e1385719b8d4588786e1ace0a3c325f87496252954587d96c11a43014648be948e72cb3283fd2e8466d0699452a1c05f76b23c7e1ed9f81af95402747e089d642550c055f5fff5c5b2dbeb2301798eaf3af35b3eac2cf847582ea0b0d169a24f47da78c64ca4bb92d8c4dfec8dfa9acca8ce857bd279124698d245fabb878511e8af7a31a724cb4733c844c33da1f62fae0ffdd0118416b5424f41249f26be16f5205efd3596985a1c6247f6bce5c9475f486bb82e96984081a06798fada31a3830a06cf3b7921cd7105e34a21f51b5a910217069e8e2b983824795f3a63fa6b3a043b02c178be046f1c25ef048118bd318273dc3b8d337178beee26119cfbd6e9c5155846ba3d4c2597fd23cf829f0d723b9f2b365a1a20efd350cca5faf1fe9d25283b58db21a358dd6f427377b19f7e845efe12182f84c2fbe077c0400b3b1bc255b6606a3bd5c993e805691b20efaeb57a50a8d547e6b98a4cbe6c30f34737dca4a9a7bf6eebb2c400aece0658c7adf50f47a7d5c0b3b081c780ece87b1c5547f82bdd5d162227be1440bcb3395d51a7c5930a438603659d3155a08d348a893987d7f27fdab87cda0e33ef61b11a5f0f69eff9a8baf58190969a6dd8eade49d673f83a141157c7af828075e0c134159f01d218f942d3be88c30e13c151aa0a0d36fb6ac8d42bc35f6977429d5d5c712b803df1f93c6f939f36ec0aab1c0181b455461f93f5cbbda6462358e887c6cfb259a0b0a7878aa233136128a0e37201ed5d5e42fa18698e409e3e8022cd55e79e75c0b9fc6f056a961f13b51135682fae6d452c23528c88ec05ca16f5736c3af6a2d54231f56360a3d1e513562c57a4dad51e5f6933ad50b30e0c7e7c0556a1770fbb1fd24547b5c956e28492fd0b98358b04a1013c674dcd3b62aded43579b000893e0d5032c1550fc24e41338d6b6d0d0a66dfa8d826611c667e13caf94839a4b46fd6949593aac4cb85313656b62bd5e434bbadfe40639bca45d2eb32464e084579905705773ba0a88843972d45a876b3f024007ea915c47c4f902d405d3b028abb5a3fc640b0cf5c1e7f07e69540ae33ea625a2e836e912eb09646c7f1b392a3a16c2dc2aa6b7ef023bc8e61881df71a1c8636af1dd63533f3ce0b4440ed750bb9aac1e9931e61ee44f35000eed1d5c667d5c3bc05ffb7537731c6f5cf1a71cb6fb943af363b0a96687fd21c3a63ee9ed8737626729ccc1899f31cc8984c07eb866693b3c21b52eae6a1852aea623f05204e8180f142e79d1eb9a151f3a7fc787bc4c0eb1e1beefbc7fc99bfafc26d8451637ff4179cf120242cd39108be5adf2c5b40f0a3ccd3033e042451d9295ce08ba9eeb9a4dc492173058b4baa4264c12e14ab086eb1dc6bee9791a3d77ae5eac5c2f0de3d333ebb81afcc515a46b4341dce56f0c129dfe90ab8267d259221021a3d043b57b08c244341ba76890355a1ca4b8c399095b2b88d168df891999e0f0791ab29a462d6c693bef70ac38aa245dad0cff45cc8bb92efd0cf8840d802ae0c2597beb2fa95f269c4d234092b60878c0a8c42d7ea9f219bf50839af27f918a984d2073510693ddd3255b444539b0527f065f3758494776b82b141bace982c0e310d4aedf36b5c01ea8a77c7d09f23d5a5006b027cd4be1f1d5c501f516f412ff15139c794c38cbb1f37710fdaf27dce103304308df4384e1133c37cba32a061e79628f7b1c3ba31e05c15ab210435ba37cfe6aa3d45e0ef56371d49af03d0a02aa33dfa24787115ed2c66ff8caf61cd915046a0351a7fa0a4abb2e704184b6c1692867c29ea39fc40bee250b392c400b887beeb79dbfdb60baad790a7aabcd8c0c4a802757b272d0dfc3bef63a4257cda663fd84d6a8b8039de87f28148779862e156d6a53e73a4fdaa817d03ace161ae9ccbc043a5478a0105918ab55cc9a88115536f6739cbf42661648d4781b4cf4165d456e63381e4ce114e6f45cfceb9f58319aec1f12034bc24700fedf4f4063dd5e280280cca312c0b9aa75f31c9a07d6a523cecc5b163105dfc80d2c8a34752a29aa4eb161934dc15fab53a62546cd43f6c8dec8ed81d27afe5c3bd17b7aa16fe7433262f82e62403832414020c5df0334a0257d8a027415bd76e25e3888abbeb10d4ea13ad317086935407526513a7bf021d32b7ee3220d92a2263b956fe7b1c3f3c29cb3863f0e3e9acb51b48ae964821bcac56cee003914e190049830510ed8ef220a791d0e1f5e84b76f38f918030f5f86e1f3d11e8da39469e15c23a5827c5a1b15acdb79b7df30a36b8e8f1a014f540c3d8ec9d03e06e3a5f83ba3baf1dc83d882d59c48136e0633915ffd8cfbeb78e382e70f932c0af50db4b56da88c1efbedf8dccf701827a4922c053af9587dc6c32d5f7ae3d6b87d54a1da93c0e9d5ff7c492ad17702879125974a68752b1a3e543b6189939078fb24020303624f66882726cfd0acc78ff95d20f6c1850fc645aa33a29ed31103a68b00387833b3afd1333ea6434ec646e4848ffc10e05c26e20e29b429fdc00eb4b1fb110b7126bf2fabc902cc5d9f4c07c331777c621a136630a17e6c022b4567a0630ac70ba18f8f62c223eafae6c54df828b8b4f48843e0f98854da90618aeb11e48ed6e93357673781d70922ed215d74dc039b80e6998e34bf4bd8b6622b5f5711ddfac4f581777020d66c8cc0e35238cc1577c224f4604a1d6ba22fe0762f2fb8f93243378730b6e56500e46f6325b9e099ab32470efddebecda7a3c50b7ae46534f51fd9043591c3b40dda1ddc1fd62666cf5bced5141bd235d97262e3982de2b925bd3aa1fd560cdc549586c171f64490b369bc0d0ba6a18bfe40acd9d9d4369fa465de06ad4db4776e329a29d9b4f1b83eaa186fc42e76b76d5266ea1597e8f8cf72d0fb87e44d32f62fc3d26d7be745899739523693cde0fea8729f88ddd89dbe499f5456ad1db287da6b93b681faca31307fb0df2ec87d91160b21bb66657fb4a1fd509d62d11f78b158b0cbf2754ce78679d56963d626f8590bde17aa6d8417de4c0449db5477a07f58616d4c3e76a7cbb42c2afb43f108a0d6faace4e293aaefac79585a9b44b537a9906a98a1355e220725718acf0c711ee988221a8f03408186c979d2052c40cca80abd5139abf5c8c55690eb0b55dacb2a218fc90fc3fcf77d8782f3cd22f105bca0ff8d4b3ce5af304e9aac9b2e0360302f0522c4383673e26e691a86c10845cc782b21e5ddced4d10af7175871ea370b69dead073b89fa7f54ef54e8d9a8bc8ec80bccb6660145da4ad9836d33e687e98a1a2f23c9214574e77765880f31813f0dbd3a2be5eaa2f30d2bf173a6f7d7e04e00e7cd096c46d8d432dae283ac415edf69e90d05e32fc427fa4d241c3a0fbba417084679e12f0ac82d5cf9d31adeac12c54d65ba85029628730bbc24e09cc7b4942112f0d9afaa19872a0337f801d083641b8b5dace080f4b68482f7d87e33e454d0bf401b16f25eb665ab4366824fc5c1dbdb719bd3900e86e149068049cd63b449adc65a2d2669823cfd85189200166f6c81eab9fcbdf6f6cf7cba17c658f939e8fd1ebb15c8714304f88e9b7a775e637db3bf28089394275c94bdc48a42ebad269705006ea0906716bcdddf1b03a937fbc780ecddace066e2888dd734311e5d84c7b0b70dedbec498b94031edf8142f73b2f4510abb177d2bdd1a1cfe30ad9026e54c84cbbc52b983c25931c5a6ce265ab5b038bb63f62a480064143e53508e344b7a0715600b7fa43ccbd7c4a3dd76bbd95d5b1abe61c5fc9c74f853460dbdfc18f8d7d46d767477e0008c3ba94a0a29f8c5b9ba1eed64d7ee014675d35731d1558c1d2f12d42dbb524c1ca9403b26c6f664d7e18c89197e8a29d020ae472d0234e098de8e42f31cc96dd6943cc54712fa721bafdae63776f6a79f1c21859a0e1683bc21f4460e9c2e1b12c43064c91030c9790c3e6948957bcab0b3558224fe8a1ea300c96f60e0fa58ed9fee8dcbbf791743ecfc39e8e6cf3a4c2a1d3f4990bc803df6b62707793885b16ed1b1703a879fbee4ba4f9e4e28fbfc1bd2555dff2d3abd800af9d08573a5c24d75c6984eb85972bec40ecbf8b85da6d918786e167f389f2a03d7c00907bc8cedda1026932b9b54cfae85ada6d5fda174096937ce8cdc2f38f8c46397dae75e59e847a249b593b947976d07a7d22e04d0e307be5989167e225452a384c0c00b625650ea310784f549081bf83277eb59a87b158dfca2913768e1c7df2d72a0f9de25bd21e0eb85b5afaedd710dba5a6df9d313b8077864d0ff47040b305e8e85b2fb19ba55bad37edf8ae5fef9b8a22575c2dfd6a2fcfc1d3a8bdd5ed9a031adfe599d28925d7ac868c66ce86e853b485f92d8da7481791b011b0659b3213b73672500605814e883839330a639eeab792486e9db61a425a48d72a1ce0cbf9904e5d28cee2f59e12f6e41b1709abdeb3b13914d5eb25931c0711e3c5237d2f1bece78cae799caf4ab7eaaeead0cc632c450d251b4a04d5944c5950d0d73d51769d7d2ac8d0a650adf582a16fc3b3a3dfe9e90574dc66dcffac47d92db477f9478fd0af6bf74fc961af29f70705704250ded60335d66fae7de8ba1b673923057ea6e8f393d88cd614a3648b41127eefeb74906a94a66d2354fea1192b0f56ab55e79eca956f07f0d4338ef97332594778d8794efdbdbe172c44bc655b6ebab43fae77f47c1cbfaba9a0f155653b4938c3d7306160df23e5724c1450275f3258d1936e31354fde8074cebbf4a983d5ca199580a131ef415d58c5a6a9e865f5899234f9d1175586ec71c7430438a8d1c5558be019c274faf0f541fdb5e3621532ea76e445b0c7dce4e46ce41d0bfdd0259c9ae43618cd0536dd636b1b8a0fd331a7101d559a0d47b9cbe2594862e33b17a91cd67950a4f78c6f71023051dfe2371f27b72dbcf55c73aedcb0cb0137268d456978e366d0e0e634aec1dc90f66299ce0dfa765350ac5329f38054af45b303b2a196a1322bc41ff7868d66ee112ca8812d46270d332e235939bfffca6fca834bedefc47921883f4932412c406a08698fe3f12594a964a4604b11eeeb121b322b10bf3e9c48a75b5dea95e5e04fb5991ea3a441a94db0b6c03b87a298f83a451018aac10fce1e5d22f6ffc846a8dac483a9ac61cd4efaad180183b9adca19c9c8f28479db7e4892a7a8178f5892c39f1266026340404feffb1d077bcfe78aaab11f20bd9153cededc1097571bccc302980c704b317c05e23aeb2554344a495b3becaeb98ed324046f6a9886e1bd6d081e3eb5f3951181f8048e81c616a9653a8ce3fa8c52b7f1402fe7422767099b466d2b05c2ba41194b246bb738795fbb8fdd681372fb73df535a97e473ad0109cfe5749d07a2f4c709c765da53120cd9ffa30a4f7509750ee39fe1ca94e9081f64ac4e40dae6b54dfe46b15295e7517f1fc4ac8ecad0f26f6dfab2675774de80964ea6ca9a46c8f3fcc5d4db23fec1f6d441d159f362f67c613c7f18876c249901ef7616cb90b2a4ba02972f1f8dc87de15a99db179f7cbf9e204078ef5bf255e6924451c180b12b4e8a47bc4dd45f5360fa0bd82c3cc5dd3b5cbf1686e325833770367277b6c1127bf0ae2c92a2b6f00ebecc895c820ced66723ab85f73a2b5e945f7136bc880518895ec2edae908c33717eb9c04cf85a4c08e0a9996e0c18885fe1cfe8581f6bfd517dcbc40324fbac00924613765f66fef88ca4339b51d13feba45b6d11595ddcae62386275ba7a5a0d8b2aab1c5aa10f5afdccf85a4c9ca1f8d7c88c7dca2580b6e6b55c099a8f380470ee5c74b03064ee9a3a77d74f156ac1eb420beb218c08f8e18332aef16b470f63aa598d73de136e89a9ed0a95bea9efd25856ed148bd2dd35dbdd3233ca6cf0b4c542db603ca66dfcfdc6e13181507f1bafea69895d67583466b68b46500fd8e7ce1bc78499a6bb2bc39a7ad2751a15bd196d88daa0d2c47e5fa71cd0cbb186842ce919fb7ba05c1ddeee538a4ecc2d96026c45057ef084ad0f5920d41d710ec5caa7b215cb6ad567451f9fcbc2e73f3758f8feb6c2f106f7dfb98a3c7f9785cfffccf6cfd11a04f821e02a0278923e7dcb664e8deee68bd115c6205073251323d14e3668d152f700f4179b489684369132c9142910160f5d0f94521f18d5081a5a4e867a04d7293a37c8606d3dd2831a34fa572b006babc5d6fa8eb75aadd66bd5e38d1d70ed9c048f8cf4bbae3391a8adfa5ebda4154b2deddf6a29bdc28b4064851230cebba32df309d75a7f9c262129f83f7ec3fbf984c3ee6d58e6ee3daeeb1e4c91faebc7eede65eef7def6d3fe4afee829b8415aa7a8dfa3adb5fd68ec1f57b5cc76c43fde27ec4b1a07f4238cfd8d67b0be435bad56cbb5ba3a60f7ed667f7dfb6ebfbd7ba3f0f0989e4efed8ebd76f31871bec430dc26177ff92026171100e7b79ad0076cab318fdcad8b8edca05db5a6c0e986f731c8502f4eb793782d8ea7a5e4b9c3bb073e770eedadb3ace5dd9b6db9debfeb6fd0c8cf6b96efcdbb6ec6edc4e03b05bf4528691621852a9d4b701aecd9a3d6056db2f5eb25f9d4ee1d67ed7755dd7755dd775efbd257fa470d7030f6e3af8bd7828182f7a9c7cd0ec10c30110e81c378db31f1b7080899101493a384a9f63684f0d9da313e240911570953ff889401ef93d949f6b70f7bd4ceffcd0bdedd385effef679bffbb07750df3d6d9fef3beebd92871eb86755a0071419d4a46be15d20810872f18cffa1eed0560b9c41364e91165f921e714af24afa2289f749225057521a922e5873e2401004bd8ae017ca8c5e188661d802d97d8a74fc91ef914a5c3c2b54d96029d4a17b8f0c45a07b45f186ae0c4b2bf4893758ac0455d25755a5a07beea3a07ee0048e87e09e1ee99efbfef4753db157292534be051a7f513f830ce20ed5227a87ea60a8ee502c3aa051a041d22a60a15cfcfc765035373532b0fcdb7ca3480aab2aff8fa44780f0ff332fa28eeeb9ffa95cd891f75324876790415c5c7e495e108cd7fb6b4b2290e7852f9d1d395b7da463dfd2ad649323212c01fbcf883cee57c04f0ca478e8e1765d572a41a1baef4a0ca4702d5355a887d39c98f8d801020e486205af80e8fbea8c6b2077cf7943f0cc8f4c0c8c69b4610701704832a5eb2ed785d623bfd23616d269022fd149419bfe2265010c4894be00d3256ae81e8a821cd4871ea136fce90ab0bf77cbeeeb7fb61b82bdf50d4187d0705f04ec54a6321cf794524a29a5945299e7c816814affe332d6dbc1e1f5e57f9c87621e99def999f95c31c73d6d9f99e7def609f3dcdf0e7ba77baecc3f52b8c4e33a4563e9b30ec621f330301fe4e298ffa93b3dca18b2b189b4d89215e84187639892071b47c7e76827632229b65dea3baf1ee7d59c3c9937918e6788dc64210b59c0426bd53d0c919b5bcfc83cf754e6ca581999bfe20d32a5cc158150aca42b5d09a149c98b9779f1b67b98ef8180dea1236826ae1a01e5419bfe2f482a45abfc29131ac5cf999df0bff073c59fc524ca0483dfb9f65055fe33640556c06171e63972e679f073a69cc9323078a624893ab837fd4f952187c09c89e4700c19c4c5a61f9fbe69842965183918ee068ee40390b3d5410af62d713f9a46fb3fb5af406999b680d600088bc34f0ca430e7b592ee5b1c22b56a82e2513190aa26ad0d4187582b76015a6b6d899e8a642cd03e3a9ddb0910681f1ccd805640fbf0501bfe303eb715339fbb4a0e6ac3bb87d034534b81fb81dae76bd8691f93daf0cf3464197074c6efefe9f3e56f9c22f81927bb803bd3601aed339236ed2313a3cfcfe7446df8c7d4501bfe27d287abbc64820ef5f9c1c10323478eaebd9891a99706e7ae5d0d0cf17470dffddcb7c1c4c1f1ae8d81318d2f9ef57470a19b3fd486dbd1066ac3ff447d76e04009f0d31939b6a197a005f7140fb4e91f920a68d31fcc5d6302f6ff3a09d87f475f2140f724e071a03e3ea88ddc58607f6f2434adc7bd2fbc8405e8b42bfdee8b7fe9759cad4ebbdab6e410a7d708b4efe22d62741d1d5a595ec79155459b4a892c4b3b87ebaaea588d3b9105048bb2e87b6d4b8a2cff1e75b49bde7dbf928e4e08a03fe8e49df591102d8a39d10cd1007705a69c7a29738046c7d95aca1d6801247dd796b2075c308d2f25912b6521e609c68b199998ae943fa0fa1b1b1935a8185e290ff182ca74a1051aa919255883be5b11809dca30ad007c3f180092aedacf8aa58a3efb8263cc09f533cc1a3a37787c7e04b083478f03ecd0001e28d0830f3f6840080f94c410247dd7fcb1e6a6d72aeda3c71439aacf6ad4ef336ae8f869ad75b9e91689fe7101ec701e3dfc003b78037870eba47b701f7e700d08e1a7a579a0e5b68acb5f6eb3c03ce6560b990b394764c867ce19e1606e7acd392688dce69c932e720ecacd8f9ca3a2e52ee7aebc1ce62757e4a673461d734e0b990bf9d9b5dcf48e480ff9d9b9dcf40e8999d3fcec606e7ab744cdcf2ee6a61379b7c4e6457e76436e7a07e5e6477e763437bda3a2e5675773d3bb2a2e7f39cccfaec89788f9d9dddc74999fdd912ff18808b987449beeb9dc74efe534a7b8d6aa94843ac773e490f9f8c47a7a6034d0f0e2e171edecb4ce533c9a61861b0e1c45376ed86490812886186a3a3a341b366630c030949323848323ab5123f6c20b3095ea659a2e175c68b5d042784483c62d952a9a31c35696442459fba7dddccc6c6c8664c810aaa991a150b11831603434afd3c9050346ebc50bf06866e626235314136383812132996ae348eb9c1729b3ce295121561192754eec7585288bcda8488b9bab73c016e9d675410409232dd7eb9adacdd04dfab77e00c85ef5903a459f95e80a15dc50f4596d5db3747da2cf5a69e8af4ef4596f5db5a84df4598fba76d13bfdd5057dda565b225d95e8d3da9a449ff6d5d648e3e8af47f469616d97e84a449f36d6968996a1dfb9e8d3cada2ee918fa3d8b3ead505b27add3ef58f46987da42e922dcef57f469676da5b4edb4b4b654b457d1a7adb5add253f46989da5e6928fab4b6b659fa893e6d515ba37627fab4b7b65ab4d9ef4df4698fda76d1b2936b3547a45d893e3957734874127d72afe68cf4eb883e39d8126dba13d127176b8e89762efae464cd2d69b29f66d127d7dcede4869a83d2f48a3eb9597352da8a3e395a7354b48c7e5a459f5cadb92a5dd34fa7e893236aee4a43d127676b2e4bc7e8a74ff4c9714327776b4e8b136da24feea8b92ea80bfaec3aaa449f9dab4ba2cfeed59d917e1dd167075ba2cd987e4a449f5dac63e2ec64dd2d01d26727d49d93be409fdd10142e2f12e8b39b7527a517d06747a3a2cd02f4d9d5aab4e97f439f1d5177579a7676b6eeb2340d7d7645dd19c5d06777d3a24d57f5d91d75d70591369dec13099a3e3d57f58c9cdecb7a4b9c5e25aae14a0d25215b8e2c394ab2221f239f52ecd6a3454f09568f68a0a1f46af110e129b95c3b48ec945aafd3c8291ec166586206f116c3c1040eb1487663c90dd1262483131944a2a118a0c420d6663a5274441acd061536c4590d862a3088434439577244211b4e161c515654a386685f787ffbc2fb9ba46855aaf77781145f2d938829ba5c2e20e182d87ab560a485f0084663091ae12d9662221516c9662c9911da844a27654834444221c3daeca5fcd3683754dc84b39a4d159b708848c61519a190ad264b4d282b4219a1c2d82d8616311e764443f3afd689c82974b9602001236cbd5e1879011ec1669698016f31192664c02259cc9218d02604e30406241a324131bdff0b09964850a873c021700692204dca381b5f682f554ab5d2159148045f1f09c22e09c6485096e5daaed157f46941ba91409074231d91608b045d442c129c910e7b2debe25e9d27e6c0e386fa41283ed91e02cbb02ab66e7eb83ba7ba0dc65c1ac2fe1ee9f6e14cba997026dd68c84c92598533e91603cea41b0d646e28c8dc53e4ae22b7152632f715b9b1c89d456e2e322522d323324d2253255c90691328325327327d225328329d22d32a9eccd48a4cafc022d32c32e58206999d88ec47644f22bb122a32bb0bb23791dd091c32fb1339647628b24f91bd8aec5664bf4206323b1637c8ec59e020b3733103992b112799eb11b926c143e6aa44ae2ee821736dc287ccd5891c64ae4fe04cbae50a05f62bc6fad8c31d066b58490e8316e4c20a7ae0fd4aa59a9f5eac4a9f1e139eec4a9fde124f284b9f9e136fc8a84f0fcacd4f6fa6459f9e947ae4a747ab5df4e951d1f2d3ab11e9d3abe2f2d32342a24fefcacb4fcf66a44f2f8b57b4449f9e51cc4fefc6449f9e16323fbda3257d7a5d08f9795b4efabc4486fcbc2e287d5e24667ede97149a9f17e654c4aaf4799920f2f3caaef47997d8fcbc4259fabc4e8afcbc43467d5e28373fef4c8b3eaf147be4e7a5d92efabc54b4fcbc35227dde2a2e3f2f11127dde2b2f3fafcd489f370bcccf5bb444cccf7b7326ee912ff95a4efafc880cf9f9b9a0f4f92131f3f37b49e9f33342f3f38351d1e7b744cdcf2f56a5cf8f09223f3fd9953ebf25363f3fa12c7d7e4e8afcfc868cfafca0dcfcfc665af4f949e18efcfc685c177d7e54b4fcfc6a44fafcaab8fcfc8890e8f3bbf2f2f3b319e9f3cb02f3f32b5aa2cfcf28e6e77763a2cf4f0b999fdfd1923ebf2e84fc24b59cf4492232e427c905a54f1212333f492f297d928cd0fc24c1a8e893b444cd4f52ac4a9f242688fc24c9aef4495a62f3932494a54f9293223f4943467d92a0dcfc24cdb438f29344f3ae8b969fa49a1371b987c4cb4f92cd8df449cae2c1dc5bc28b31d1676dd3ff8263cc09f533cc1a3a37787c7e04b083478f03ecd0001e28d0830f3f6840080fd01625e242e26504b6448c09d9122127435066526854d4aa105db1652932ba6971d485b79c880b899711d8123126644b849c0c419949a15151ab4274c596a5c8e8a6c5511731265c4b5e4e86a0c498902d7122046548ca8c46852f61e4de8a1a6035e6588d6de9578c8d7369c831e9365477e8cabf34eb9e92137d7ab22553727caeb326faf4849c44f1f95c875cd0a73704e549cfe72aa4449fde4c0a131a3e5759127d7a342a92d458e9883ebd5a15243b9f2bac44449f1ed19523e7e7fae2a24fcf96a51699e1737565d1a757645483707cae2d2cfaf46e9e165d6e7cf6a32bfaf48ebc2eb690e1b3dface8f3b6887089e1b31755d1e77521a145e7b3dba6e8f3be8c60b1f1d989a0e8f3c296b002c367af3dd1e78d314125e7b3d39ce8f3ca964cc1f9ecb326fabc424ea2d4f8ec432ee8f30e4179f2c2671752a2cf3b93c244f5d96549f479695424313f7b4c3ca2cf5bab82c485cf0e1389e8f3125d39d2c2677f71d1e7b565f122ae2cfabc45461e94faec2d2cfabcb7ab4597199fe9d1157ddea3dbc516e5677ab3a2cfaf45840bf9991655d1e7e742428b6d8a3ebf97112c379f2911147d7eb025acd0da137d7e3126a8c8f84c694ef4f9c9964ca9f94c674df4f909398982fa4c875cd0e73704e5498ccf5448893ebf9914265496449f1f8d8a2434161ed1e757ab8284c24222fafc88ae1c79f199beb8e8f3b365a145663e5357167d7e45466dca7ca62d2cfafc6e5a7489f9dc4757f4f91d7d5d6c71b3a24f528b08972eaaa24f920b092de3e7b64dd127e96504cbcbe72682a24f126c092b5d7ba24f528c092a4d73a24f926c494fc93d6ba24f9290931c3c2ee893340405878e127d92665270cc24fa24d1a848e53fa24f52ad4a9b9944449fa42b325cf449b2916e27294b48daa24f925167d127a9e88874eb1efb4eba617f4fe6672fe9b30af9799df4090ef93942e93366e6e7494a9f289a9f4f459f336a7e9a55faac41e4a7ce953e6fd8fce4c9d2a74f919f3f467d0ae0e6e70e2dfae4e11df9d9c3eba2cf03b4fcdc81489f0d70f9c903127d52e0e5670f46faf401e6e70f4b0423d914c78ae0fbe0fdee3ec1d46fe34b61186fb85dc7851cd995d4e526a52d1a04f3b3542a11ff74fa0fe22706647e10c24f8a29add596593541dde07fff96281efee0831f7ee32164e30e8a31f3b062c0848ab4a6c448691075d1227ec2283d82e9db1dfc0c49efeced6e0e3fefd991ef3df7f476f53daeabf7c72fe93d28cee167ede127f7f47df8f93dfd0a5ceaedf8eaf3d7f5c87bcb10a414a6a3035a52c77c32521cef3ec5ef7f72f36b3832088bbdd2dfe97513c777c6538d9ffefd7eefbddef9f54ae6fad7cdfc23bc9c93fe72d3bb235787fb9e975e7a1d8a0695f4ef1d334f37a3b7b0dabc28a59452d2ba6929ed4abbf73c863fa5d42bbbf6aab43dc8e3287304dbc6560763feb7a64e9d12fee31be638777777d20637b9d28b9f2f49e48756abd55a959494de13815c89587aaf4ab5b4e1a707a3fdaab3830f3f3b0a1ad43067d2983eec4f1dc84b19461ddc628562cc6dc3dc671dcc0347fdb98b47d277fd44d6e3f0c7fb9579bce50dc5b7be233e2796f931f81c290ccb0c9697e3ee784beebdb72290371bf3d89532a30f377930eee026f75dd9e33d36fae7aef5edba37ab2ca84308ab93b13a19fd7b005eebbda0dbb74ea38c4e29096c95eef0dd4e4609f4c562cc02fb3717d85137f453cc811c2dc60d1a9b86bb0074b54355b92d2f68abc2c1701ea760291245114752e8600a36cbbdc7791cf7f67ab6bb9eb565e7d9fff1eb759ce5acadf58cc7470dcb9dbd4371031bce2723b6221f18c18a09b7143a188275d7e179b31b4fdfdfdef1fe2b73f7f6415bbbaf2f6587832d2fc7ed70d32b57ab0d6e76e5257faead1c0b5e983ec86d31f683945a53fdba13b648d69629541873d8e2a6303aa52e3f69d872330c0293b8be0c5d6ed207636ed2560d5d7e36ee8e34edd0fe69df6b771a9841192803996c31e613eeb725ea5e12ee294820f2be411918f313a5a33aa660124c412698822edc207863c4428b308236374d7ac214ec822978c3f4e99f28a50f7621ba156de127117d108beff48a72b4cd0f746a3f20b00c835afccab0e5260d5b983e58e467068730173f1f246a15fd5bc23dc506b3ee5e27e326ad4a181f249a82e50948048243e01048036b6148c12e60a7bcddacb408638c19c6294a1cede0f1b3a7cc0086ebe7682ab83e0e3ff329c4f54f3bbdaa74d54f695cd7da0aee6f157d9d56d16f928ea76e2ae51ed87e649bdda6694b203f601b5e6c31d7a135b1b66ce166e35ab32700fb3b95c327a37dee2967626db1f2f444ab933153287a08df29c62ab05b81fd54811e7ef8d9bdf7bb0804447ff7e0bdd773d984d0e57acd99463751ddf74cc910e6fc515da9c371f794e29eb28409f6a745740bdfa1455aad568b88953f9d72849dce664005ac35e92930a0e14cb960cf948633b5c2e2e272b33125595b62246b4b124e04627109221b83d5a99738fbb9c90afc38d55a83b1ca60eca7b5abf2827bca09b8dc18294f7fabd56acd56d98ebdd3337c632cf3a5dd494cd9c10b7c083da8019529468ea26889a20a5670ccd3e9ea983c5150610ace272cc50e6480f36d414d7594d25a69adb5d65acb5a29b5a57963ac5fbf5b04a2b5d1c32d051312e03c5a25523f8e6dbe0e0e0e15c26871c6c18ec3e1961224049cc71dd0c0360b42ab416a3d8eea34ede61e04b9cedacedaee8a405c29c3d8bdedac2d2b0bc6fab6d66aab0b5c0867bb9faaea76930b82fd076cdf4502506c4b6a5fc7cd7e8e65cb8a05d8a90a83f1ad257552f5ef1dc7d3e823eeee9e7c1f48f7594819040df6de34398e03630e73cf4a20f423cbdbdffdb205d27deeff4afa3fb58178a512fb5df96e3e1efbfde6cf66e867ed2c12409c548dcc4863c0ed9e69464ab9eff7cf3df0588e0d641cc7f13530048fa50648550c3f7c902cbd3c48c3912401f9c0279148a50644d28765b799c11208a954c29547d82fe2da71fcef7ec58dfe5e5944c795bd2aa28853557d43d821b472452a1363fea17e1017e267dde9aa35df14825f50ffa7ab5c99475bcee83b0da65c2a985ac13b395a45dbeb0a8331f76cc78f0d5f6f99eff5cad30fb602dd22c6fa9d77ed05d6d868cdb182d5fdbbbe36ecbaa7d8eb9ebad875ef7565bb07d2b069f75e8c0b8211779e57725c5959c03db551acd77dd65a1937e9771d67ab638eecbeeebb5ea971bd20186b256b7da15df7d0cea16f329d6a3e6549a993773d555505c1d1d2cf1f6e4a3fd3e0aeb555f49d865e431da76d6de966f1fd10ef7d74429a78e9c3fbaf14427a21df0f6901d8a92cc6b0fddb310f5a1bbe08ab3be2876fbf3af197cfde44c96bbd1a8f62ca4c5b3a177cb1a49285d91e9d0bec3bcc7a13d83a81ed13d87ede0fe40e95ba84a82afb1fc94355d9afa17354dcb432fff2dc8ac8637587c4432bbde963c6aff45bde3b8e60d9551553be589a2089fcde617587de3b8ea7d3ffca6175a757b11989a8eed8b745d83e91b52f25ad519a7d0aabf78ee3e9943f9b18ac4b38acc518577bada5977fb10ec330204c25d154a24aa1f82fae1f76a83bdedbe7a1ee7c6f4799323f1eeb0e173b8d8fff36d8914d62c81e5d191404be7f10e93f8a1d666b353daa54f6084b54492cfdc3f7e11f96429ac4bc10f0bd44951ee6c58f297d944248ff853f64d5e4e52f895a5512552a5105101fe67d880f535ffc52e923fcaf14e21f7efd5e892fa81ef5b10d43133936a64575e7de922d7d3e596bedefa83bdd5b6b1f347b0479df95c8cc832df8df8b1f1444fafbe13bc04d6b5fb44f22eddf19b6ffd1b0fdae862d11b6b0aab2ffe3bdea78d8c14d6bad1893492286dd52dad960ac367862a46f4b3f4e861d1191cd5654546f18082ba3de90cc7b42a5d6177f1755cb524893fa42ee7fded7d207e9bfff4a21df93ca21abea79610cef07b59e5670f6a260f7646eba2784fdbd29c65c6bd9ab59a9b54b1e61cc9e8c74c444a603335fefca600b7bf664ded496b210148c75fe11d55785d5589555a1a1994c2693c964b21f746e66d1db4e443c5d5fb21b8f47642bba1dd5964c2693c964b21f7878787878789ca806b3c96e3cdeb94c686846abc16030180c0693c96432994cf643dffad6b7bef5ad6f1e9355aee876d472bd6030180c0683519b4c2693c964b222988c0a0dcd6835226a83c16030180c466dd4466dd4466dd446856047b735ba4eaf879931afc16030180c063b82e9dccca2b79d88c67679cd6b5ef39ad7bce635af3bf58ea737ababf2d48a64cc17dfbe5ea9ce6a74014d2c23246e361e71fe1d943fe97b457f47dd4179892a40f7df27c07b52f901d27bff951f68e283f49ef71ff8be2b51b757f4bb762dfb76a4c5c158df45dc525e537e5a453f5ffbb4365edc52e86006f8eb4eaf6e571e5cb33516de700784f7406eb0d0c2f44b5e50e95f5e7c0ac6df91823153dacb974afff2dd5727de3de5c266baa3f6a83be277a7bee984375fdc955d55f416d57bbdb2c77592855fcac54804eefc08dc5dd06397e4a1aaba77724755755f227b207b5455f72f785e4c8f497d328ecfbdf7b4037fc885b2cb78ea9ba6efbae36f29adee84651dcb7cafa9a46557952d8b68e1bb5cae2292783bc2de1a12c2ddfb10ee7ea8eef46aa806235752212aeb9eba5c2e21aaaa7bd062b0a6603cc1e43eea4a6bc55ce944cdc148e9bf680121024159205c89b26f805ebd94def43fbea3eef877cf83107ec67cf74268abeed4efbec7d89dcadc2f45454d0cd0abfb30648f5b0605894ffaa0f0415a547728adaababfb70865cb1e2f25cafefd212bd2dff741fafb30fffd905513d3c7904afc39ff9a8d42fad22700fc1712659f44d9125580d2bff804bc3c8c2ffd8b076958225ffc0b09e3513a284601c18e5f66be24f3305efec5aa546446e6a554805a8391bedcec3ea6a4aeeee96bbc7204b7c80969e223fcd20b7979f11bfba0543c418455a9145242f5b86f805edd52481398d207f8df0b119ff409a0543c6165f59542c2075d8892f7480b97c8263d3b029602bc3ce913f0f2a4f2034d7cf897fe03f55f3e01a507cb0ff8974c14539af7dd1d3d4ac3ddebd41df0bb37eb0ee9bbe7a93bf7bbae568f3491745523c21db5e1eea968805e057d7fdf23b3e991d90c0a121ffc970f0a0a9f84839b5df72ff408771fb670f7a20b774f7ae1ee4118ee62b8fbafa34555d5fdaa44f64a247b1592bd0257bdaa35187b943bdcecbaaf32e81154dfc31bee1976883bc4b91731003b953dee8260cc95a8c246fabdf3b5cafffb4c26dcf9f673448c36b8491f088adb57777cdc2d1a80ae6ad95545a97b1640b3999010502cf662b318737d619bc5e8315c544485f0d191cd62cc17d3ee86dc06d588dba086ccbfbdd63aa7c60ca80d7ffbed3584700d5b0d2635643566504348c89b54c5eabb0d544c543150c9b08a4895441553c54025ab25003b252e31e6daa54bc77d25ab0a46eebbcfe3d83d31987a47869ec2ec1e903db87ea6c156a7e374ea915187c7b6dc5d0a90661171dd091a5746fcaa096de23faa00860c30e8b45dfc1314384694237c942d688eec34c1a40eb460b0ebba12100f8b3f5304063d74327c0286d9011718c57dcf7660058a7b196c491212987b276ddf52e5d239f5eb13481153b2673c3801e6c8a22d701d732dc2d923faaaaad5a3bdd4eccd70d589611247abaafad9be70dda2fb92f837db16089248f0850482f4412e167f24c73795fee5eb4e2522c2f52bcc11ae25927b12d9e1d1a32489e42a51dd29aa379bad36afe212d1f8e2225905d3af55b40dd27b64a954d281249257aab5cea1ff8249240997482530ff02f3234cadaaa8e97eb84402017e902bfecb876450132048e3575adda9b50804c70ed3171f2c59cbd9afd89e5e44ebb844dfd436e8835d48f14822810cd1c2b654e295a0e795c6cea10f360efd0b4112974825dd8be45855f443d28ab692488fa4c47b9184e16c75eaadaaea83642d222b9716ae1f929556ed8b86eb57d8681f0cb9b1134390f42791169bac97a59044560cbe8424d23138862692292ca560ccb528ebe8b889829162c7dd7b5f1f8bcea95f9ff64edd4255f5ab25e264055c3f9b70a5aa5ca580ebe70fb71448b8611a5c8b3ae704a3bf57556e8331d7225cbfa8debaa771c5edd97c48ed6038013b955fd8b07db0e90d653c5a55d96a64ccd586edbb0dc67c6281781cc2f97a366c4d30e613101653f19a60cc21ae498cd9a361fb4f301016e7108569f9127b8dd5a3d59d9724f925963d226cf34b2c7bb497989bf64b30bec4b0b52f6c35490dc74def6ad79ce9a69f5ae563be1ca5cf75b4cc1c47ffc7bdaec4b4962d186df0d3e28c03879ff43fdc53ae68c1b43676b8a5886284f3ed5a13fcfdede75abf7e7d4a2967b153b00bfd725cbbffb70c63b5b75aa948f8d9edee9c37e9fed5bbbb7eb5360ae81f2fa4889fd9112e9d558e1752c3d79d23729442644090842844010a0b4020845511a390227a5495fffb73ad1787c4776c6c8d04672e0867ee888d2dc98d890df704fbff3052dc3e80c20738dbd86af8eff3f82da50755e03205169c70896255c3e79e7d9f757a55c40c2128b12ab0a0049424ab1aca262dc59616ce5dabe12b8f2057429ab0b6b47c86c68def5711e8e65a89c64c6fa46cad602732c5f235c2984db11be3fd2b336293c9548225d224234db1526908fbcbccb07f0c4d088604c23e36bd5f9818d383a52966224d32d39b603786fd61ca3ce25b65f755555e8b306653ecbe491663fa7cc2a511a654e698d2648ac1944c653ee15b7a53cc24f3b3e94b8b73c1b71bf6245f7f5afcac9513c5bff7de7befbdb7be48fe48616bba5ecb4d228c5c786100204d495ce53f2e110edf8a40e10664587c973296c87c89f0bdb7c502f8ea96a5d28f4b844571a65af182482578efbd3559065fd3e79ae3bbee00e07eaa7b7afe3e8dee79f1f75be81e187fdf85ee39fd7db34f9abf8fd33de1dfcfe99e187f1f86ee41fd7d1b7dd6fcfd1bdd23e3efe3e81e9bbf3f43f7dcfcfdb3cffffb3ddd43fe7d9fee29ff7e8eee99f1f701d067eaefe3eea1f1f757ddd3c2df1740f7b8f0f76de8d3fcfb3bba47f5f76fe89e17fefe00baa7c6dfe7d127cedfd7a17b72fe7e8fee81e1ef17a07b6cfc7d03f4a9f3f713d03d31fc7d05748f0c7f7f87eeb9f1f717d0278ebfff80ee99e1ef43a07bcebf1f81eed9f9fb3cf4c9f3f72bd03d34fc7d0b748fcfdfefa1ee7c7fff87ba53c3df0f7d8726f6d64f9998bf4fdba7daa80d7f98bf65fee1b53c57ad325e2fa8f45c34b1ba13435655d447068ddaf027d1d0c4b00d7be9f367c30e729c0814f31ccc7362017cf589a529e6a6cbea4ecba08d3f8e2f3164d8471934ec9f0300a4adeb64de138162de731148090fd9c6f6430a118201357c00ca215009a0ab1c4f57394a57b8aae15d761594e38db82b00fce7c3ae6a288d20f2b2caf1bebae2fb0380a41dc37d2a0299807ae4f86bca4176c770c11ed2b10f69d2d239fe50780f496b0fd99806d294a573fc79489312daf4df214d49e81cff933421a173fc67204d583ac71f076922224d46e81c7f194853113ac73f06d24484cef1d7214d55b46982813409a173fc734853103ac71f8734fd809afe3548d3149de3ff0269a2758ebf8a3449d139fe266992d2a6bf0ba4a9079de3df026982a273fc6990a61469224d503ac7bf244d39e81c7f92343dd139fe4f9a6cd0a6ff0d697ad239fe36a4490669aa41e7f8d790a619505313d2c4c4b4a473fc69489392364d3130c1a073fc5f90a6249de38f431219a38e43f14d9fef97de8a3aeecf0c814d313f1be33b53b60cc969718ee36cd7575664d9fb363693682a6d6c229058da6811cb3c048bff914146fcaac9fd1ebca4924e64c077310dca36b69f3a72b6cc71c14e7a2fc8cff05e1279712bf9bec54bb46a82e2e161e012611b2dd4455d369c4d423053cc24333131b99631dbd862d8dfc6a6c5cf1b9b0c43d0211e3744153594388e5e0b42474787ceecc9daee5a6bffb8b5b32be2e0a68c8c9bf6edbde3783ad11d5565dfac4118e903615976c73dbd29d375b907fea183abcccb82f67b99d9c4efb47b2f433f3b5bdaaeebba2ec4f96222de5a71ffe34ab8b2d22e0ea1a5ae29398e70dc708a52366c5b66079dd14a5a02046f8c3a6efa57ef7fc0f79641547c690ff44120f4f3104c4b0de828b9eeada8837dfa2dd2af4fc94c662f33ada94c7fc8a5be02b05219fbdb031b67a482ebd7284c307d0ec98873efbd0f72a4f75d97c297ccdfdb07c1af06073961f183585cfaecfdf5b0e0faa1e8e2971ee448d25ff2f677640a77658b5407a5790846f1a0f54112f9011184c5dd399603f203eecec9620e5c0ef7d2e772885b08dbe096c2082f0c3a1579a47013197da04f6978030dcc7d62fdee0f4231f73f1e52100707c80be69ed2ef72d84f9bfbec7921270235bd99c3dd38222559818be500096e23dc513ce1048e52a40b97ee28a060c17405b8a3c841140c825f48c50a9a42d3f74852ecb8524a2f1eefa5a117867e86d606ce34de5fe1cb55fe39ed63696dc3bf8e60256b10464ac711686c279148a41f6bada55a2ad552e9651cc750d461eb87a14cd844186c2a2f396238babfd15f35e6f55fca3cd632864977cc81627b5477c256d197c1f461ca7c4b653ee1e870657e2cfacb34bfccffea4ab758c6ec2f3f0272657f9ee3d1451e25fc72c30b7e79d0d21e513738ce1fa8d83158dd9df4a0b51593c8aea512a896a88ac71fbf7ea61f4b3f8e7f4b3f8eff8dff4591032678c4f7a51842145ce2966208300cc6c4c4d878b754fa308c9843fd71fcfaf54bf57e3f92e38b78c3379216e700471168fcbe1c6e52ef46f4be6f1c6be98d2f2f667dcf5f7ec4cf7c1fc6d43d31efef49748f0c09e405c3fc2563488a453187f14da61fc797211b9b1adf0f82e25b3e99af0ff7c707451ea51b6e798a7141307a1138fc7cfd087914bb9ffd35766f93bc8c0f8a3c682987d28f5f3f1d965677c4567d3f83bffffefb9b2d2dec1c8fdef1c711c854b69ba6bf26d2fe3876dd8581216160a8088ee408f339e6653e86ce104d3ffe8fcb50ee47b27b1399c226203487693cc712e63f18d27eccc83dcc98c3cd1762b5981379bce0ac832b48135a2a63a638464f2e956684a4d247a6f00784e2fa39befb9e47dabfdc7b64f7b5ec1822d057e6082d95d18777d3879a9afa1583e507b00c7967781d07d638ed1a5bb23f7446d2f14b891cddac38fbeba585e4af1f3af8965e9ec935988ba12ee4208808cdc2aac607e13c918a85d6ca88bb7ae13b95bd1a2f907405d2f005b257a00d6b90bd7a81ec150ed9ab22fb7dd79d7f213b249dc3757f7aee6978de9ffcadbff5b732dedaefec775da4a82209eec12d45ad08ffdb8e2bff69687832de362184bb0adc3e90210183366408672867cca071f331883abc8ea8c389e67f2a0d928633ec8e21061a621075a0a18383c2909303e3539e07d61079d017c41bbc949bdd9b6ee278de8986c63b91149b35f0bca052b9d0420b3c29fb9ef7a74fa54420cff3ac2700cff3eca91475f0fee423eab0a517094058830ca22b9cd2885fd5f81748234eab1aa57de233700fd2103a4ce64f2799cfa3cc93404e4777c31cf727b0e3e26886a883bfbd755bf879d43d8db92f451e4e714e3d8cefb47445f6b91779507c6365e420e3ed8d78c389ec6e168aa519178aa57f79bd68107538f64acf7b6bfff43244a0938c1309f3963cb919f3a77cf3343437369cfec6c23c0d0d19f336854fa79fe1c3e9ff699e7beb44f7dc3cf7e00d4971cdff89b47f4336ee1fa7211b5f3fbdd2925e19448e30470e37bb7b80e072cc73254a048a79f0de70f63ee6c17e2071280a23c5b784f918f2e4a697c2393aa77f30662b649d7832e3bb32531ce3ed9319cfbd15e29efb185df137d1d1c2e9e47d1096a6398efb191fa3f368b8fea934a712c5a3854f7dea5be800842f90744545967dd5fb2bf53458a9b72f66441d4a1a344a551984e212c6649fc6feff0908c5e49335a92f693cf79cc84ab9e0c2d31bcfa3f91927ef81bc60af7cf363441dfe69ca2028be29b37df261441d68bc570641f1a9ccf6cbffa9a60b2d7c0ba50f258dd28b943e906f637ece28b397c4cf2f7df0647e922f25f106efbba20f345f963e90e5975e44d441b3d085fb9b32f7db3cf7f6899fa7d287b6437ed294ff2591878cb72f8a37747972b37b5b8201084391e541381b520639bad9c588f1f66394a19bfde2b30d6c693ed3c056c60cb64222b639edd3cdda06f7f6870e0e8330da9ff9165965d8717f3b11a8b342dc8f4f53e6d3a914c21c885f90d9b99f2165c8dcad20cfe07e1832d7e0a6feea6655c5fd672af33896f9c495515e4824b87e37ab3bdd0a5a55df064d70ed6080eb87dd0cd7fa1e699fb829e4b022aebec32ac9b9147d65adb5e600b99a3bbad93d74b0e538ee2de7b55c701b5240f0c638fa0f1d4ca90ea694d2fea18303b053b976912e98f496f41da94a17ccf5185b8a2a5cf00dafb5b6fd6c6b398fbb9ef7430e29dcc38f83b587444f4ae96981382739203fd8273d49cc8144bac13e894422b91f0217cc913ff803c1a53057f6e0a69740b8921e71d37d0bd087ee49ffbdbf67d13de13bfd72e89ed49824ded03de90349dd87c56d6ed61f8cd96fd83d8bee01f282bb73b6f05bf7d01cec735b74d4a771f6a31b90b819f382a0989634899bb4a3b69487600a33328e6ed61e4cf3ff741a47e7a18615088beb1415a4242680f5c16ae9ca9695369a96ab630e654e9cef98aef2bf6314d83fd3c0f59be3de6f18c777c277339bdf7b11f008f6b72424edaaec49b0bfc7448bbbf075a1a2d1dfd6dcceec143fb9b733ecb5b6b0b5796eaf00765fa5181d47c471b3ebeea3be711cc77194963db8d97df5c1c8d528ba5a72381d690ec1434c1c1dafd64a710ed2671c3985bd06fb7768963fdca4a287e40f37bb372f0f0fa9cc3a3aa679cbfc7f2aea7aa853c67cc2dda9fbce9dd26ed3e866ed7ae86655bc30d9b35a171cfad97fa9d0776fd8d23cd8336cad49760ff7948a5e129d6329a5f91a7d9eea68f3f9e271c463add51d4ea8aaecdfbc4d992f8c3a83137aa17be8db37a98fcddb19653e3d57f3379c4dcd7b357faaf9aee661d43cad79ef456fdd6364447d4d0c2f7b2f194d0c5b0f866daacd3e514f1fa74f14ea6b48288a42fdbda86f51c6ff78eab99f21f3cccd8c9b1930fec6c90feaca2635352fe3c907634420b29461ac216b6a504f1f0c434aa61e14434a529c222946d590f6747373f37fbab931dd3c0de54c36303c24b1246029449130be86b46ec2788a51672a45534fe3e98334299a4a7d8b403462c88001e383b0983e90174ccb521904c530ca8c7ad4932c544d4d08d694281ea8279f44dd297efedb9bb77fa9f8491fe665d4f8897afb94ac331a649de2a6fd14596934618a7c907c6ae30f8a3ac020893a548e2c513c527ff337a9f2c76917a29e2b6f6e66fccd0379c13765774ebe799bff441deacf2883a0b82c33d501c6df944150fc65a67ffa9f4a81504fc9c624d9b8e33e7c1f4e309e0cdbaba5ffe3641dba216b942de851176f911e44bacb4dfb28d28bb8498d8cf45f7ce68462c4282f08468a058bff625fc6be3ac77e75c248cb4ae4a6fd174f43562b5fc85118f44465de7b55957def65ff8e30ca3c56f345596b6e5a53e826e9b3f7023fd79aa7047d18f55e7efadbf78e78303a1304c533ff5365c88e21f3c390393491f984b3f702c2c3d9cc8e73e9f632ef05c9b675e72befe9e495dde5bd7688d7174c805dab0ec63c9ea84f486d90fd82318fa98a821ba61c101c19dcdd32ffc05726fc21834924ea2a69100becd316d89141a0184d6e9d0a41877cc887ea0f194cfa61682c7da9bee97da87f499ffb16840ebd50b7e2a74784c5cfd146b5f8093e0d9f22094b8a84c6fc34951ce9eef73f5dbca6255564adb5d65a6bada536534a6f0ff4d6a2365a44b9502d5d742484901fd4e6de12a619f6eedcbad75a64bf879a7f5c227bed876efabdad02d415577e750a237def1661afd7ddba5fa27a896c9b664ecb3ec399b65a5ab03f0df2d346b5d02d68111d332da95cb18c55a83ec16eabcda6f859df69d8a9ccbc8fd2772963b5d65a5b7a4fffc668f914a7fd48b5b5d65a6badb5d667150a5e9b914ef329f95efa2d45132e353bdff2d93d02dbcff6eecee1b5b3b5bbf77ab97e68ad3d6d75ec3edd96b315a583621c1c9c731cbdb8bd3a99729372cfb5ade4bbc964eca7ef25f163435b99a6d2fd8fcfb083cb4854556dbb45e3ed9483a36f992e1dcc82f2aaaac6d52b0f7e1c8930c3fe329fc251d384be7dd367f0af468cfef949ce9f94a1d696a37dd7f19f02d83823115c385f7cc316cfac1cb580334e106dd97724d856f60651af36ac24c54f64b8674f601807ee99932560b0bbaea41a595c5c7e7a4c0549fcec591424b8318b8b8b625bb2b80801ec54e666982b825e01379d02eea74f68ca058b0d04987bef4c64f7785f6d75c75b55c5fdf5b2b4b56ae52a57396fd57bc7f1ab57740e67eb1c278cf5b9bf23a7e2feebe9348e9c9f5d0d8f686edd1771afd339f65bacd96d5cbbb730d7d5e7be2ea17bbae7c0e7be3aa177c2ff3ebfc0f0aacd6b95f720599be4fd477a46fcea2b9b741fa38a40b57ab59a3ad5264e9fddd7afa0a7e3b1e566b8670c412d090b607d905acee28ef4819f65c41948cb4c433fbd17e791ca2f65589a977ea9e4bdebe4d8e183871f4204bd90c89ecca81039ae0f8224c5a69f622acb94a638b68d4cf29ef454bc61084c7ad34fef49a44a7d28eeff4a20de0d4d3ffd6dd75e66af34ddacd4049487a8838b3af8774028f6ecd75e29c7715dd7759cf760f779f53c8ff4c1fbdb799e773b8c3bcfbbf77adeaf3e454943f8105ac1295ce04ade4081612856e04a361418a438900257b28780411f520257d2078375c88a1dd20257f2050c722bc0956c01839d145cc91b0c7a4bc0958481c11b52b2674f70812be90206bf30862b49030649a452cf726005aee4077131102f0b586861fa439cfa08406b6de7d0075b242530f61415bc9accb49f3e57f638453b7501e72eb9fce81e2074b092ee87f413defeb5df955c196444ce8a7b57cccaca60cf3f30e5c2a547103781b1fb53550d59f51490e0a0053810b2b55a2beeedb7ec121230018217e860156444cecabe2b66d50519e12bef5d35b86a580969e2c3be901d9e4848131fde73a5901d55e5ef955c496b2a84600a254f38820cae188239e4045474c00216404154032d56bdea3ef3f8f8566bc5c54f17b07f576910570619916365df65571cc75912c8d39bbb17ebdea1b51fb4a5cbaeac11707d2074b012fb7908ceddffe3b485dddd8a53778f2245135c70be98be144d60c1fea1eff8ca69e08c837520005a699a8f7cc2c101f706b1d8db7180ab3872071efce481d2b7650e62f1e56187fbb9891c1024964de8ebf899290efa24b0d40169a51ea56588e3eae8943a42ec4fbd7e72efef001e6e101e9dc55e894306b70e0e33f53537d0bb236a8d8b6e6bfe02bdbabbbbefc0c1df063fb3c993c3a4b41d403bac7c6aac7446dd74b3eab859df74b3d2709d82eb0e1c2a165cdf861c26ce8eb596b32937ebd7f74acbf186b64ac4a605d7e09ed968186ccbc49804d3ffb87c47f9eb82e9935a989e64a8bbbbbbbbbb3b498b2c01093671cfaed8022fa18653b8674b60822975d5701e291128116811c612ee59142ad896594707e7314b0bdbe09e2dc186af38f2d9ec15453e5b6dc2084490117f469d43ffc3a26d508ecc297c8516ec02eed9155128adeeb6d6ca89b676a20eae3e5739daa5fa2cb79fbfa24a8950ed0b46ff2210b1836e4ac791d56d7e5f43168ba3d8abe5ba2b75e7f4d732737f39199216a922cbbfeb6a97118ab17631562b8cf4297e8cb2dfd8ff2baadc116e5f51abe8779faba32eae04c9aa8471c43d65062e4c9fe50277f7d2eae87c896ad8a2b55f5115c64c5d9816e1dcded3a202d495577655d5b764df70a6ae6ff2c725ea2785f8814631d6fa4ef6ccd60567ea72dc33db16983e2d4291701db62c07d2bd0ec7b6eccef1b2ab2ae3806d639b2912fcc38f4bf471a93bf48856d14fe2a404a6d405a777d9d8f8ddbe2237e9d7118c794851bd8d4deaeacccc2d4f0e379d6786b1bb64d3df01424c7ff7e7c98143fd82e077eff05455100ea4a48e6984ff8ff354ef782c8e450110d4c4d101f2bc2e088783e070aabd8e6eba3f770476e4088cb5250a666d19f2d352da4f473f595b8664fcc455473f10dc258a8777d99fa25650238cd7dafadc83f712d98a7adc186b79ed73f6ed9dd1746e8cf5efedeee96d39f6b55c40cfbbdf4f7de8178cf57fa4f0ad1ea53800dfb3bfcd97bab77b57f7fad9bdbd6bfb7be965d72460c33036f7c9506abff7be3e7ddcdbb168a43241dc1bf12bae6c629f44faec676fb03fd5c34088ed77df9da5968635c4d6cdafd51271892e11579f2201f4be3d6f057a0896dd2aae8e56c5711bb818f4614bda33701eb0d8235105081ffc1dc2b2dfc3820f418af090d590953f58661af43d480681df55453ac2412aeebe579c8e21b8579fe7213891c70ddc351173a859c882177e6413eebd8f6c12847795abb55ab1743b6f08cf725078b5617ff964a239754e124e96e32ad7ed0491de885f91ca26ed7df5befa799fe7796548695bd07b714322db5519470ef6a72d60ff17dd63d339fe35342f70df389968f4f71ef995d9fbeefb2bb3f7a20eefed1096ab4edb723dbb7e9d3cc133704b217bc98a64536e6cd88f4a37d32ddcf4d791904422916c180661ffae08ee5a3f4e31b11e4ef89e6290c4240982c102431404430453eb0edf8d8ca6bfa5d289e3c417166762119104547c4d71d381c487a1d1dcf4d25f317c2d2125954af44ba6ff715a2a95aec9549abe5432cd908d41db62a9f4a2589a2145f2c1fba617c9fb2572e63d11e88a25d29bc8cf4a89543291332ffecccf908d61666efa908fc84df17f2acc104c143f1b268a9ba6d283a048fe084d472613e861102f32de1fa1690beca55269e2e2a6bf3cc1fef4495fa50b8e01f7ac0aad56837b56459259155be09e5531abc2361b020cc7e09e0d2128091a9e01371449242193e22a3ae196e2aa4919010cb794236051cc000b7edc51cc208a9422b0601a704b29229604197edcb324d88670cf6c329c65d09a28223bc260d72bc65c2384fd2f590ac3f0bbf421d9c37db04402b9b74402b9b7542a8198ca6c45320f31c3e2b34cdfe21549d25f5299a989cc16931eb421a4d96362430c886574e4f38d512290cfb3b8b4bc6f1c4304f29e6554a3826944a0fa2c23dbcf373e89403fcf321aeaf9c63044a09e6719cd68bef10b1188e65946b717df7846047af12c232118df58460482f12ca3222d7e9ebe718c08747a9611110ddf184604a2e15946349e6f6c1281789eb5a5688b163f77bef12802ed3ccbe8757ee31711e87c96916c866f5c1281667896510bc7371645201ccfda42bbf18d4311e8c6b3b6d464f8c6a00824c3b3b6d862f8c6241128866719c1745ee7595b886c7ce32b02d978d6961b173f6178189eb5e528e71b772250ceb38c6248fcc4799c6719b9708d6f6c45a01acfdac284c9932743b37ae2e2a6dfb09f585b5ce2f7903b84b5058987230afcc6f4fb71f88912514cb0a392f8c94fd4cc977e66e67b5543ca4f14e94b252b064c1e45fa5ee510c9bea415b7c841b2c9d8c05009e3d34851c34c1246292378c2bd74ff234352060d09e363f1ef4b1981cc5492224a16bd2a95f9d608d53c7113cb986d6c3268b69a1a9b194a68ca988370f87e8d10ae4109c948e2e72d957c358020478f1ca5eb5735943298b8ca65c8fa629578ed966b63b3396a95f82af1868bc507c11a211559f7b303b0e94b644ee9e8367f1c0471c21659b7cc292aea104b1f4a3f93ef974ad413376ff92385efcb38e2278df79701ab3b3524d13e35331922a03e355388b44f0d8ddae8427d6aa8c818419fa9f79761043d67bc7f4d16fa2cdfbfe6c84ff26746a614c134194550c102f6af59c214daa7a696459f0f05ea5363650b3d6f9cd03e354459fab4799f1a2cd4867fad0a566e5860ff1744166de15151fcbca50f300fbe3f98c23e981efcfc23754bd4131ea607bf0592621832530c73efbdf7de7b9ffe256b66d4c7863685fad850a1511f9b1a6d46654a8d86fd6ba8501f1b2b35ea63436485fad86021a23e3292d460a13e3264d486bf152a44352b35443264508305c3bc9843e9ef2d7d7e7ccbfc23f534beb7a1519f1a5b8c0c21b4cabfc64601f0bdffa0b4e1baf3b9f0fd9137276855480a4b4f2a954aa00d61c8c6a00ded857f8186fd6da8c4d464acc42042bdbf0d16ea134345a616c30a8aa8c6068b8d136ca0404dff276da6d0a63f49da94e40d91be1101bd49e206e6a67f0de40d1257f9cb90c14c1219ef2f4336f3329260512cef933edf9f792aeab85f7a1279919862cb1598b679bf3be79a9e3e8ca93125514fc87cb302ecef820c9a8d918d146cb8c88fb38ded2604f986043727b031c55051fcec16c8c6e045d508f9795f061557f9d708d53c9141bb32b6eabb82b87df0032e32689dafa80328e02c832696aa32dbdcb0d7c4ea8ecdd0ad89a184b0bfcd50ddb9b1b1f511ce3268339f65d03edbb870a689c590bd5e48901c4172041892936dc688595b5e2f97cb058b21f4f29d18b222476047901471c590d51a64632be28a81c47740301623c94c9949486c75e7de3b8ea7d3bf699e6c27db149c2fccf6e4c939cbac2d4322c9da32b38225e6ebc2fef7ded91064f8fe8dcc10d6962797de7bbf22ec9fadaabc546621b8f497046f8ca6325b937845ff6c3830f96a75a7d66a1f51179cab0d76ef389e4effa6a9a3c3c332dac2cf146eec43b28cb6303a323aeae2e70cdcd82359465db8b4b8b4a8f859e2c695641951a9d5b0f849e2c63f24cb088bcdf6c4cfc78d7b4896d193a1a1287edee0c63424cb28ca6cc6c54f1bdcf805c932e272bb31f153066e0c836419311112d2e2670d6e7c2259465a8a8aacf889c28d692059465688888ca6f8190337e6215946538c6846b42d5afca4c18d7748d6162d5b8ab61415f1f3841b9f24cba8c8eb6594c44f18b8f10c24cb28894cd6c5cf17b8310e92b5a58b51cba835c5cf19dcf806c9da328546a3e2a70c6e2c03c9da42a556db82c5cf18dc380692b505cb16db169bd1113f6170631d926574c4086604b3e2a70937b641b2b6582122e2826120595bb8dc6e5bb6f0f30537ce21595bb6d872b4e50809c621594648622ca358e734fe719651909f226e5c8364190519b9aecbcf6c8ae1227e66ce865946aece697c8f509f249ead7b3a2626c3fe2699496866aac52031c54c341e9c4db15a85a1713169c9a618cc13ec3051628e608f8161ffce566fd12bdbd8baa359bdb44b84fdad0d3b27e2203e2702896565c1688ad57bf358c5f759dd719e3bc321c12e7ee92f29de7b673e833ff320d862e945f29625d3fb8d51c9f73f5e63a312d7af3e21b2ad263207c13f421c96ca767326c43333df2258fe08710880ff7100bc2d1a757470dd39c2f5ab1c01ada7a8348bd64b4359aa98424302080000100023150030301c0c87c422b1703ccf24690f14000f90ac5a70489d68590c44c8186508010300000000000020090000c041aadee8409cd89ed9fee00474e6ab19a2a611aaf307abb09a5ec692b81c6b35102bd60e6a0c17f40c24dc9921ea0378ee870cca0304423320118f6b50faa29ab90002288cb69d97b0e938a06fa6803cd044271b2169742eb212942c8fc0bd068e9d566a121dd795dc8478b969201d978419fbc24e813fc74a28da2ee25743eb67b337b7b67ee52b984e519b6eec94547130968cbb2828cf8fd9c88d5773bacdfdca030ac481ff676bf81b4807d19f9e9899de4a4bf5f9e4489e0b6268ed4e8e4e29f36d4cc028163e0eb84fa1621d508e94ab326f191343a5c44b90cd5b76af2080759bcf6968d50863a54dc5c816e0a13b83e700c21b3020e9019092e0b1619b7d21ed251b7c9ba3233d59dd4fe758347c45b544a2d8d5bdd8e30bd4368bc49636d41a910191d999736f58686dd3f96e6cf900bd2fc46edd2a840dafcc9c31007368cf72efccecda0176c714c47c318b03ec4562af6b271a7ae8c7e20dbf1b699c8cf294f372ab0358348823eefc8b18ffda16ecfb882abb16daa7b0fe459ba9ab7db20c736d9be9454f8bcf8d70af45f3d89e14363931b0c298359b18028aa5e2601f9dbfdb36cbb825fa8040d0d94448a38216e46e7f60c9bd98906539d1606622e2bbe97b03afeabc9d261c331552b9d1b55f94a917f4ad339cbe619d70a515f70a350e601b712d556f610eb9cb2d622f6db41014cc49f91f982e87001021f3ca457f42a4322f9136376907ee13d0f2054343b0134ce8391b8ce72880fabd2cced32486c911072becde396729aee02d44eafed9d303af65d2498a627aac17e27159c8adcdad1c9a37021919e8adb20142eb46db78934ad69e8e6420196c773b8822a38b8a48103b04d05290bb40af42555c811ec10882983e103bb8fda54a801db83c0c8d58168fb681c5bc20e2bfeb28f71db2ce02620c0c61f3bfb3ffce9f3684a786b5b8673ee9f2c16306ed40bc10327997c9deb6ec3e1ae54a2d0e708b88fcb6ddac383f69512db7448416d9e0ddabf8bcd4ddf0f5dba5c2243ffc5d841a343a0f37a216472e5625fcaf5d5217e1a6a37860d471c0cca41fd83eb8c0fd1ccc3cd2919e950cd4a23fbe63d4ec945e61654b96b14b76e296281d35b6a24c99011038bdea721b867a4ede1c24031b90e976c05940d09b5f9d879a75b87dedd73af9cac6319e93d69afe6492cdd4bda0249d380960cd7922bcac41ef13ed0039b38ccfa8e83f577c497bdae3fa57470221280f4b86e4cef61652b6865ab794ee91510afea796af11317674aa7334fba621ad20829ee61971b84d8fc27db900f4bc27fdd79284c8f2c32c31a82447a82d180a9395523cdb7873442152756e39948ebe507e19d32b0a779a689a910abb62ab4b34b130b81100c019893c4405c8706364dc046a049f1a45552d0498d061cb161cc136e26544c171e98b29aa387cc218a19346f2c6fa350140a35b1812ea875fdddd2acb1fbe3f754177470123bbf45ba967eb33fddeb2911ee88ff0a174f2d222adfc51d78e394389267c371eada144dbae2469895d9295ee6783e4235a27e9e22a3ddf4b74087085b7b77dcc42290993539489de57aadf231690aba473c4faaf0bcb304614e6fbd06a554d406005acde28d25eacf8d0165db350b24304f3b314b0445e05c0c76572f08245085a8511f643c42db9b1609184e1493571fb4b47e0313e15cbdecb5a48be4f2f2bd4f7d776d34a10c1f5c24934e798d75dc6f3d6e5466ad466ed6cb6dc4f29325cc7f714ccc69f500508e75694b76ed78a3309bc5e209d5b0e12b67223a74cfaaec5770f4d8cd044ea25d4ceaae65636aa1ffe1019ae814a5a8d121062af5e43cc5dcb9f87e04d2825ee9f4631e81db42792253625ece8e8a5bd00144f3e2d79a56b6357d31a98f20c3f4ef189432cf56ee9b085f6195223f501c6451ee07d23e555442abe19e67964f1592c0a3b72af4193f1ab81d5a7686e48133104683ac3e995b5a9a6c50c7ee709918fe2a53d36df096e838b7455eb9a4913cd7a56075a51d646cdbb162b4d1e404429585bf1972dd6e9bb5ecbc3833783a4152becb0037c650e52624bdde8a20d266d691285bd87cd867e8d8d6ab1a36250fc79cb5cc7f338569054690b4344cb5e1c65e3b0bfcc1f2cc62a868168a8b061168a71b162c7c8d6b54c8dbe344140e4adeb91aee0f05c22a22627133c81b90eb6bd04c93e875195ee281d9fbf3fef986db3e2ac38189a616a0d3b2c6bfc3105c74e5f445b1f25528e843644afe23826f700437b08322f89355e1f397a856396af594046546169b62f4c7c65567689280bc40ddd3f5d2e27c3568cf223f22c2b7270363456290b34b66268901f24fd7421f5b9e9742e3d0b9eb09c6412d3ec01dcdd074f2725512a21280f6021519ad846686931ae920db9c6e67e5b096c3484f7f472ba23a27bf4611dacf46f978842d1850b8c7a1cbdf54a30e7320146b93747aa7b0e86b294dfd836a5a06ee6e1d63228bbd40c2b42a37d808fd92964893518512633c597072e206caac9fe3f843e4d121a19486620dd4fb07f7f01c83c60295fd8a80d56215e14a3c741384a09b96e0142b65906931a36c6a334bdb226ae7edb05c5a7c467e81943f70925c9cd6acb74e3f054735fa64e1b965b68ec976439cff08b8629f713c18c4d02c5d8754d944765d9ca24387c74b6099303e9f4ca174f54f2d470ce5a55701ca94b815d84d9e839e17c85943f69265b7fc77ebd73055eded40be83273ad554e3a5c9da95c335354c7dbc569a9f87ec2acd5be265d69bfe1950270c17b315536044725422981b93359441798f77aad43dedc548451ada5440f476032aa993eedfa7a6b54a39693e368fe5c295e8953437e71a628bd417bf19ff14397db4ffa525cba3f1e96e3b63f32287125659139c519d31fbd17f8bfd84b396adc7e4d9c06ddb55b063f7078d0dff044791409c1c6c77621c2c598efdbd10910954984cb9f14b98a190173b71a475868931a6a1ed43877f35f7e0c3594e2f044f61950e86e682306b40894437a11112f763c57366d88d9f79a504c24cc5c3f7fed0a9c5f225c183726928834aa65883708ab08b64144fd06de8551a30b9e7a386e6c7d17c14aa29e62a3d889ca5a7f6cb16e004dea33f69c1cc87d63315b65d34f3961561e348c406ba8e09ae44c862d4a15dd72d3f35d0196fb085f386425fc6c929a3d6a49cd6e51f01235b0ade4a5602c0df2b9d05cd02aff2cc47727aa847afc7382a7c36128fa55b37437ebc520d7a9a29b38b3891b85852ff65797c52eb8a754ed0af7355325ac4a2664566c81c0bf2a7351ae442940bbf139bfc55b9169de0b2fc104a37aafaaea4dcc9ea37d0bb81d8bf5fe9722d0cb20b3563fd8e854f4beb2318ad20957e9291ddb1663a57868d335a7f9663aeca1d5dc6914da09447c53871fdbe58d2d6f4128677c78ba7e8c46829be697d0ac9471c25ca7a4856d0a25522d222972ba06cfc86d1179eda77b8f697b429e222263b27d2a223e1eeb276db90006adad9eec18dbf390210cd69a1cee1e22e802f91a9e1b8982eab2f4b175bc07c946ae3df8ab52dfa7f2f42c941b0ac8576bf26f8b95b5151756e8db5ec9bc4077fabbc374a0ff7e9c944dc04631a149e0550a3dde2a3e6d1b239df71559cf4b714ca5ac20df077a5c65de32bfa21131622ec3c59b95dfa6956818c1e4790a4743f3641de6baa2f34eaac2b7611595a3730cd95417ec120f507816abc16e687f6749993d050a24867c752fe21407180fba1f091a3c84388bdff5da8a63ca8be04a6714ac41c9c2bca8169354f8e0ba2ee7a7d81ecea534f1dc2ab6434de47282832ba93ce0c794d2cd98611887188edfb57609167732dae3467c0164ecb6fa3f269f8a276e9e8cf50ae897c7f5213ccc5710c39a2713688e5a81606fbdb57996ab62eeae654ae5120bcb9faed588f5d2645216da1d607c80031c41f07b284e69c530fca223a1294572c432668d0e54038931f8e4035ca001ff675ed1cf4fde50df0ead2f6eed281f01b1b8066f35d0191ff8d451e39f15fd053739f5ead175efe698ef5d6bc2125a4377ebae1e5c5d1f21950db57cab2f392b7f5987733b53ed1f9fb899dfeeb9d32a3bdd99ec34fd350a84e56bad5ca66440a7b243a30b38e551c0298b0c1071bedde7cd125af29b74490a7e431195ec16916a362fa98b13570a984c4a2598fb1a6640f6dd9298874b1deeedd85889a1b7e4eef63af95de28135b8f2d2e25a0d9216640c6b18972d3386d9f134d6a644dde9276f414cc6b7b05f269020fbb23d502c8edc003b097112649b65891f2dd607281e3d9a127aca465166e106ec3e0e7c17a76da689101e21332d72b6f9dbc386aeecdbc31a978b768c69ad99862f5267eabec473264c9b553f3f51c8f827300d30a536cb66cc1358d9b00a4909a84a0d8ac2765bfd48c7855c42e3da6e1aef0739d24faccf639df4a4d19b3eab4b69d8e35af7a4c7a1a3d58b942ebcfe93a94850f430b07e9b3ab835d013da5858e15d75defcf2a15be010610551a5426bed30ef71288dbcab4214501647df34beccda9a131c8255dbadce1a7091e064257bd21c999f2429d05d08b4ba85f591198df8632eca46be2199b57e84c440b32f4565a6b7c6074f9f65a16216a66ee3c475fb07f71e9f48ae2994b1252e7102e4ea0ab73e83b099d0dffb226cefbd137987a3d2bf216bf7271a026a999ef393f990acad36d668b70694b5615986a9375b8b37253fc12daeb02dfd2a8ee59c981417b3ec7b5409ac53e2c70dd3dfd2c9752166b6d448cf1c45ecab3c3b68a4817ff119b28a85ad4bd99a3bac124018d46df0a5c3599120fafb486ee33cb0c204c76a3a2a0b01e4e62c4d78cdccad888c4fe15d840ffdcd75a195f90056ef99eff716c29f4946106d1db542d106a2f85d0b7b47656595ba3581a86d6ccbbfaad2ad2ad9cc6f16f252e086489b7695f088b3cac01e3d583850114d2d96ba3bfa9a512959fe7051df701930b1eddac1abd11f3b6f5f4a2c4f2baef0076030db28b8f48c80cabbae4b5997d9947d95a9273515c5e05fc752390b50993eefe7c922883d1a2d81f3642680c267eab26dce111742d13e6a3f6ba2cf80a7ca68cd245e38be12b8663adc1bff630e3a1493785b0c572927b190638834188aa0b86e056af666f9d464163c0d4cedb4233e7474c0816562e0436debe58892a587d2eeae0d48d87c46862b7528a2f724dbc565faaba17669c77aa3cc43144efd51cdcae19eae0aa14993c53a4ddff7624620863812c463fc6fa911d624f8e01049b814e74e11affb58d3f47e22c186b0055288d2b59d1dbbef5a70ecfb65c76a43c6e25e268a4b730882fef63ad351544ff8c2df08b5b95ac7b869263c5c91c4ed747359a10ebd18e13f9b9baa02d448515224975a7a137cce0cd29a04e5efd27db2ebea584839091361ffe13bc5a71af7d557d0a7fc03e5421f8277a7e1256ee8213286acfc0dd2c9d1d149c64eeb61d57c2c4168766ad48de55e5ea5fddb14a48a59689b6f30bf61fe54ef6108b26d51f393abe9b45be1d898bb172cecf236c2d0d00ded5e69427b8bb527fa71289b72e8caa0abd77e36f3f14a6a560a388018e2bb4066f0be57f2e882f025c009c46a824f6c06e728638423cb29158245999386354b6e0f7eb5921c2a8a95336014cf5cb3953ed0b95940c80bc52a83c256cbc5c1fb969a347ed8d558b834377b7232ccb74e9a4e9017329d957c66fe3fc3f77ea122b5b0e3e21516f1a662514b22746c9183199020692a3a18c6c551cf32781479da171d21733cc60a89e340ae03ff65e0d1750de37c76600a3c752360cadc65b18b90f422a56ff761d52092c1882f6e65f1b06cda337beeefae57570999e6d9a6030f3a473ff283df3c9454d73605503c88f80934a6f8443bc3e9b2f8a4c9109dbfbd1ea401af9f8dd3111666ebf5670e1ad321c9f3e5bf04e800618c5985155d5fe7127d3425162a52242c327121ce5e79d7962497dc524974c912c44edca65bce8908e6981b29daf147754cdccf17a2bcc8307150cd1a4e95a2b03e3baeb40372a51514d1bd8d33ef34d7ba700b4f67e6a04947c7727ec0813b58079ffc79b8fd0a4a11f61370ed07d295480c32adb29387bdcbae5eccab4796e47ac6e3ae1dbca8920347c6c3171453777d7814e035f40bafb145205c6a9d56c69b6819ec0d96b7e0d1a5073688b62bc5eddec56dd911293ee4974a9951865d73adb5d9b553b361365e918f0268ce70cdc2752716ed60ed4e6cd247a4d84352d89b8c8c65c656e48b0e39a749e5fffd2c2df05eee7440d8d05cf03d04ac94210b02575d2e30d98588332016f81764cf55ad4c2d519898230ee93c33fd8990fda1ff789e15dcc5e7e57bd5778e00885d728c40afeba56324ad4fec8a6d26b4922337db054635a1b753704512c6dba807c0f83288933b381634debf5efbdfbbc6d8739a51a093a015590274f82e11d360e9291c1d22ae9888cb6f5aacf035ff7ec1013c30cfabef314858a52bfd13a69a51815124535dad4194c5c7d8bbeedfd88414bd7168cc98859cdec0946a35d805a3ac21fff3de2bd8867930eef2a96605e3a8e5cf2afd51001a3959f3011ccc1369e0f251bd0252d894159b30c628ae9963949cbe59c639d5ef072a78a0e84d96a6cf925bb4748124105a524d52ad9484b76d6ebddf74105c9cadb82b2d4d5fdc3af8de40159ee74e22ca37a5c2193828e564705ce7519e827ccba46579ce6825135d60d694b9918d3a1fd20cc62a7bda8ebe92680a0a28d3d14d4974407d2b31daee3a4945cf6723ea39e68249a8afc292704534d6ea81a31e0c66a26bb4019ede65ee2f491754497f45e881e3ba60bb608df2b350509f39522c0d4d9d1285f2280874b20a9357795df403bce82b9d699b7ef882ac63304f41d740f28405815befc88cfe032111241c6df3dc54c0899be65e8f5f1ea8253ec58c67c97276e383fdd99aa57cf8fdb827b2fd4ac9a712d8e6dc94042ffff497ccb5bbabc980370368f4fa9fef0660adb8f3dee66eb70b1aafbd319cfb36374573c59e0d7a151aed4ce6080a104f21445fb5b719988e4752aa3a018e3f4764b12dc6bc16d3b0656a6c6e5e66192e3d17bf1d3ea1bfe29a8bc46c0003c1c040f1a8a0e5f3f0e0937a9cd0927bc050d3bb1b2c2156e590255e6c291eae8bb93a6146f19d78e39a9cc0a3cd4e04d2cf4f2852b57e67924ab0f010f5609ccc42b52a7a1e020d9e2bb351ad8be1292214f03960eec88a0a1c8b610cbf3e9742c1c5082a648fd8b3de1405ba81b47497e6e90063f0da2429f9e7da53a3b527075b99d89ca7474a6769bedb686cfb4c3fe53ee90b935794319555d687db31560dbfbc77ffb9f42b2ad6bdad98b543cf2916e176ac2d68db418201cebc605a54a1edb4b4ee291c4a0f964fbad540e6f860f8d6b61f40af181cc4fbe7ef675f200cee30a10b83a356ab42fe2103d1c1385249bee0e6a0b6023913035ed964134c22553170459658cf749aef0f31101199387cbeb2f4bcdcb737af48ec5d6e437c4ca2ce83a349377926ad8ba756102f582731562c5c717f9427dd3e8e6bbea32ef3227a6f840dceceb1dfc0aaa9ba130295580d8edaebdff5e46e9dd47783ef09ec2ebb2392d61c566f55eeedd2bee13fd81684c2ca455ad5c1ff3f7eb5a4b2de059334c72ce5ef7aecf58e0facf7616ef25c0e5b76ed7f2dd2bf3325fb9e6dcc1f83f8c524ed8d9effb422be9ecc89d063bc26ff2dacf0277e3c0a0356f9bfbd1fd81ad2045245bd073d452e2b8c10ac90339bb22a1ec052978f67bfcf2710868ee5d3dea96a4e51ff188d85640d7fc1f4e7bb02aaa375f27e7fe5864af5625c27b7482e0233c5323fd798ac88f5b3f08758bca7457fea9245d1bbaf4ca137c7a2dc7eb6a4156843a852d031eccdd582e70fa73b101774aff60d9ac7ac9f01aa562d3f92a08abb66b5e667f988c0b91637e2f9406993330fc2eb9c7031c0111c5b20b4fd941121b2ec787081e7c5e411839fc79ec70124bfc2098bf960600661dbe9a00a6fd0b22d418b017147e0087dab5311015b591b8c656d6a486b335695da54cca2e27b4aada9b0a5fa250f80463d709347a96a3f7cd52f215136dcbe89806b06af8aa1d0feb162d112eb1e2bab6907b2a6941037ef8aab6a546ca478ec00b5fcdaf3a539b77aa6bd0d00c64a74fc61549ef3e1f3af685323190d7a38bb2f75aaa0e28bb0f5cb5bdf59342dfd149c5077ac54e3a077753e18f1f621a06d06a6c5dbc54355765f568abf0d201c6cfe7c7ee7ebd54fb14d3f550efd54377f4721889fca4596b4c3f8d3af6147ab02e8f655223ddb394887b34c1276c2b963b8c6a239dcd5f5e78ccc01ffa0945158c674273230a5f86d2d2b47a141a66b5c11a41792a4954d663dc7e056cd7e2481b80043cee33af1bcb5837c6e055a41d0927c0b948016b40ef4c82db2cfa27c46a1489059ddb7e60f3b5d5a5d16e7b133cfb3d4bce5d98aa1a1a15c090c25e4441fe3e3f95a52d51f27ac9a6890497cbcd7060edfedabe3d63e53bd75a3e34349bc395c353c1834eb52e11a2bbeb4547d1b6d3b6dbae67d19c9abd420192c2b0fedc3c70470d7d956b0911f26a818da01caac9417517bba22fdbb74469dc6d66f8b75114a5a440d9c1d5573407899a03c150544d15ae04ee8fcee7073adf6466cfa7db1573f6862bb2272d4ae48b72af2538ef54a78734bd15f3ddb0b117441406beb1efd9fc03d5eac03d7a128ce191997b9b8ecacabc8af042525af561228565d51fb6c81419d72cc25aa3e2094eee6e9d266f54dad391c187d42dd94b7ade2de46aecfcb14ff768b020804181030c843cb12864f1428c089b17ba75fa7fd04619b77f4ca24dc3c3ff189b6bca0c91142974fb520dbd247ce39dd8c1fa384b65d11785caf64745c1aa6cc017aee3d7eb72153f0aa7ceb02b15dd5a1e06a0a42704d2e6bb3c8fce6ef91ae9c6b14d860a7fc472544a13023dbf40dc6b72641d278b68c341f82aa707a17b1f99339d960f2db6497d1911b7e1a11d107321960c49a7f56fb2f32143e9cf3473090a782d171bc6ba68d574774d7d0752b4262ebe3a3414992bfa16dd73d2ad21b29986776278dad0fb067aca481089ec324dc513966e11f43399ba8c1f3e0ad4062892daa684ee40a87c8ed6abf64797bb412b3dc5ef2582452585780a72e83c54b30fa6f888f0199ff99448ae82a8cc3d98bc0fd6b2fa46c14b8bc47e371ca3bb16aa47fce3e97a1a6a91a947166ada4c454de369cee51b4bd93ed54332337aaa782523000f648b4f101769570dcf4c509677c341a32987093e217739c6a9b539071c107f01ee0a7720c13a6d59630dfafe512c37b3873c1cec57fdb75b5d812c9964926a4fd6c9e9f391215138b25baed14cc89569c48b53c22c55bf7e823545358127187f3c764f31ce8f09072101f381099fa3856ffc27154248a33c89e002b233014431f8db6b29f433f255163141a4f0f87c3e24a1ed1bc564d6265e6ac1daa674e27c06c2648fa92c8acea90514721cd9c1d519b58f6759f5f3c7885c11fff3a338370144328eb033f40903b0507dbd747cf82157292e034d85efb6ab280fa6ff9219d6ec671d4792656f69440477df7fec5608559923d367b75a3378d1edff6153b65e08b20b39ddf2426c47131fed6929590812047352b0946c52be2964e5a1da3db0ad58c2f6096804c3b085a82a42ea08662044ffe2330aed3f3da0be26b1224e54826384ee33e2cfd577a514e1bdb10a0544cf1dc77ca9c864aa4861dfff31b57ae96c429a102ca58d314e2884215de95539244214036c8c48151400f4678d92844fddde0032b2d16bca3754dbf0701d80e3cc36ef32c81b314ab1c16d3ddcf7b23149dd88c4310fd6c2d8dd315ac6a661b7094892ba8fd9ee677535d32be9055a3d09b09ffc77e32407263112cc4432e322ca2e4280de312033e7289fa9c88d034629b388f2594360eb867439e5072960d3b12453dada7f80c79caa16bc9bb59158bf07d87c633399545701e947cab287023af0516572d90f4b2b0b2a066a8a783d143cc0920f4f773044c9ef3b2bd0f30f609d82978c567131a03db0a26392343ed15920237d2576f01c9328747395e02152537d88fe3b0fdc3707664d50d3934c4bbac3fd92a66657585cfa5fa88024589193363c9cbcd7f65beaf0e7a70ff105892ba04f7e40b26ee5d777e8d213108579d312ee0d24f89884bf23dcecc4fe265b85e30ca4f8a84189015e21bcdc9c3f41e11d89fa04f10d93b9c3c6eeb37669d8aadb0161d452317c4f217191a53f8413221a1391361ab73ed0ba0f0c9fa1fad6f369940086eaa647fec4decbb1e169633ec2e612321302ad17e5c076606b4e52d4bae61594a8e926c45f7136c3dadc54591408700c45e7572d17066d7fbf72075831400768a34840e288e51530c5e0c3ccbaa65f20f5d90c220fdfffada9a95427313c3b04a074e27f49fe47a4837b8037151e83b5d54db1a52e4efe04d32573f65838614077b6552bb41aaf32a91b30075095cc73a88d12cf0f7dd4708e9f29563404b31dec443bc35899d92b8378666c8b5b95a98d1f33784700d623d63eebdd4741994bae3656b148ec76cf10e955680fb25a2c8694446991529a65f49595947e45dac291027e8ce33ce9a5952350f89530c436d5162ae010feb0cf62a1ff07c67e0922a77638eb0cc8b315ef9331c5e85a49f12e3d265b5be0649099658bb3cb6c401897ebb86ee31b7534fb170b69e84ca202098e1ace5df0865a012fa2887f76d22e4f83b9a3becd05c2c20d37e046a2cfd7fbe57e46fed05f4218289ce6c0c702731600987134dab3762b9da8a3e37b0ca9e59c900f77eed0cdf77c3ddaa630ccc2b98034818821225ac0d7ac8e30d682efd47c8ef79dcb5ef212c3ef0d150f6033d9291bff5c0790e8526cf29add35c545e06c2a33493e505dc4cfc6eb8173cbe11cc0373ba12b806556df710ce08bc4fa4148d4db0cd4f6789c8a5e08092bfce8246c11c0b24e47010a41520d013d00f80f52a39a9f68899fefa098472cf0e5dafb291264686b0913f77246847e5f9b7fc36c4d366c084c177931bb6850cdce42bf63a09e3a30f8fb6102a05f7aff9f0709597f75824378da1911cf3fdef9ad957138a10f85d42d25c1a5195352ad3441c9c28cb5696a915859513d1703dd399e5274bdf519ee17da8170cd5226acdebaf9078dd72cabbc8b8c9fb49c8c11fdd83bdd3133e9167d578094e38bed3d5156751fb001f7a1f10eb920c892c275eec1c32c9df771bb397a520b91e6cffb891313d3d6190dc72bdb19e87f214294985d9635fd1140cc75fe5738223ddf7c7ec41d218a68b183cc15ba470848f89d24fd1461222db4f83ff3e0e88e6bb21267b72b6916859fc0ed482a44fdfc65d167cc2b45b780f8567a15f810b289f22a5841fe419fb7e69fdd3133e22102b44d0276b51e02a05e681f0319b2e8e7c266226e88c5709a71e9774795b1e2a6174e5c81b8649ba04fb7c6222c9ca855d8805c55382a8efc0b09dc17912cec41281777bfc888e3eebad5ddb035c646c082b099252f216994e3a3b04d398899ba611c5b56ab4fe4b4cf1ca241cdc40f0a6f746ecd7774ea3732c22c3fddc97cea909f0054a289c48ca2a2aceca6e2dc949194ef754492f9ea37e03107055985e98cb327da62c88999f8f3d3c1a170fd709c73d701b6300d40f4c48cb061a0377573a3bdff418ea392daf46220f29be1a14ecc58d6a77a5252684ad6e5379aa4b2c0238be2109d3f9c5362fcd9fb02b9235b0abefe97af7cb0f38154fc20e7f425375d754cf864219953e1200cca76c2c20ac36742d2c8c86563c3302d144983f89f1bb616010f10d96d4e1c0db361ebcbf46ba07cf63f986446a909744cc6603be19204c20d1496dbf7b7ee98ed553d744804dfe7ddc6c8cd406ab2c48cc2233047898ef4bd2184dc0ae619533a2d17e4038f43dadc7028a77ba579adb29fc70e57b58c3144b0cfa062bb4ca8bd85386f8fe2169413951cf995589ee6505a89f65a087e4cc43fcdca02fd5d66f20b533c96227dfd9bd191add8dc04261acdaf379fde880008476918ffd5053abff36743f7006338cf8f6c803a0f0d37204020ac126271d324f3030567a51d1644f0308c19a20387903ca240876042c2a3e0f7b7376bf0e8fc0dc3c1f227b4a66631401b0a72fd60cbcb4953b6cbfaed90ac8165fb41a8df294c45cad60c85c35314e4e66aeeb3bb9cc57707c119e93eca8ee84fe9b216ff478c3c1045b7ed4a04330d0e93709e8d67554007c86f88eeb0b28cfd94c0a88ae5b13b9172656594b45469fc0140f1f3b554a3e757be215815baf5fba25db37360eb7898d9901ab2efb28b8bf1b531464c0395ed96e1db653d95eaa0387eb3985dd065e0bc6011504230a56325fe67ebcf9cb56e8d0bbea27fbb8a6625b415aadcfa2ac5210f5c90f111b003f4032d670e140fb89bbe344f8adc4a3439cdfe94ffaf3d148777a01c338cd874704904d2dafdc8c08e31bd9942d69bb05864e35116f51f4553f3890bd828b7163acdceb4d3acd65c869bfa6e97e5c8cff5fdcfe39e27eb17a1768c425fbdb68f4379eb1d30c16f0d1f1438c44f9455f345fb384d58ff2e5cb7bca39a475ca0abea704a15f60f602047262efd47819f9466491d2c482b682958a2d178d5fda4223637ccf86689e0c38f59fce2ff0cdf34f0c96158ce028c96adc6a5d3b2b17a5bbca9b8c096602040d6caf150802543b402192132915f1d505265e991b54a6bbc83f8d339528d4f40a4d952e8239bcca8e256eafcde4ff6078f2458d623e20ae064ecc3930415bc9628b56c1fdf2ca1dc2f6586afb0230aded6f97a9e254e606f4423e19f40826cba7e58fcf2f9f8c0ed75114a52df5c56de571e9b4a97ccaef9719c9c2f52b215091d0298bc005b49314c81d5325bfc7347b65ab9919f5633120570285cc7d8fe3e0285ff056d1739a5c167d65202322dd28501c7140517202689b164aa79ca5569cb69291d60509ffdaf8afc99660a6a027b7657e47b2ef245d383ba742fcde5926001712a17ccede2958451bc2e970fd46436c68deffc329b7616dfd2002f5b097d9ce4b15ff2091db0bb032f589815dc07916d7af9c5ea26659b4b4d6c8ef87304d247ddf4f2840c7bf11247651c4082a3875262759127a6672e244fbf010beefa933209a329fa19670cfadf51046967f27771ef1e2df290caf435225ca73de1c5f3957cfed35d1311772113366f7e2e88f0cbffe5a72a1e0cab14b503f7aa2a36bbd41ef8bf85cd942b178d1d3fdc99504b6c9d88687170b2b548e7374f54538b22a47a24914b13a7504777626e0b319ca0a73fe6aaad850d33e8164e32a00e53138cad4ed09960c8dcad735221e3da274eb6d5ef51419218124f085705b88df55114933a942e576797e4ec6f6efa51d60819c16d5b72e5bd4e484f5963256e413d8b98bfb011050f72f9f83fe062a2703fbbffcba7e267133951a3b15c161259733187c504914dab1fc546671ca3319388182ffa3244d333db0c66d04c0ab59eba3e1058f205147f53132f5d15469eaa3c391ac50dec0676cf8067189eff4098a8962269b38a9fa219bfbcaa9fad014909becab8112e4d393f47d032d7be081e096f5f7974e0ff02110b79e40d3a90b01cdb8fbe060cd830bfa9766f72fdd8502788ae88d767c22197616c9e99faea68564432e78b7225883382d1e12f983884ba5b4d05e3c7c6a4c10eb13925557b899a049d4268ad05c3bca81b3c5ec820f591580040851b703c877b9004a5258b9cd490435d74a55953e53c45743e67a8612d9744875d5095bac6ebef1dee9bbc45a743d702922c2fb17a7ad951e27814e637ac58d4cfcbb5bac7d6622862f094ee559eac38018eefe3167dcca2bdff4f7d3aa4b96c28587b397b20fcd18b1561924f73144e07de8b3c039e2f9a1e0453a8fca5af959ac87f6bfd2923ff30e947b495a80240d913d33fa53d52bb7efcfb5feb91c41fd48b6b1ff7a5fd5574fa67d18c3270926f756ad5a235fef9f48984ce46be9c17e681108d7077971cca777de210034ce2da506714a79359651c8e9bec12377ecf46dac1f6bb09e6159d02a7fe3f346d1923936662511fb0cefe4f4c79a4fc588de462853202e5350c1cfde1fe671a6f6ddea83be785f65976a3d7c417a63097d76e486872aa7705381406056100a066c9b4b67ec875850ed43f864f3cc1e5d1490836d7dbb9015d40def0d244573109e0caf6acd14c8231b572aae6ea0544f74503dbe02af7edb6bc63b85a8c91a44b2e374fe6a2483f8c8459ad02847f6a234a488f00ddbf006b076281fbd0d2b81ae395131c28af085715c894c742b5b25675df561560f131b75a10eac6548868bd625806e16c2178b0374911eeb370cb9f15235db9adb05a905d55a7185bd780af4d13d2ee0f12c830090cf8db31fc6eb7ed6d6cb15c633646f575613eebc5b674c39937cd0fb01db6e9ce9725ce9d1a9e31f8260f39d1a4a322c4454d034dc9a2659ec57a9f5be28eee17a466243e03de33f5f71ae0c6116fc95e9117f648035fdbe6ca94fce4430444530385b436562b34e102d7a257c85f6b3a187cdfae2679770f7ebb6f63d05fbd7c74dd2e2254fded371fb5dc3e0c1ee0b7eff990c229711abf346032ca6d10ffe4af011c1345aa30786fbe36534c5097f3535480aa3c8bad37a51e83abb698303c6bca250979b7b0f5cbbe4bd8fc15ae68dd2f7b1c0932d6c9218a94ac4c03a766eda3f6c1e5c1e542136c859e092301bc45ec8bcc338d0b829f5f83f8cc4c0e7d0a73d32aa7e4fb07d35048a9d357abb3a97f1d0870f4fefc2827aa1de8e98522ff82204d1d404dbcf7f9b333733b696291d013c80ce03cbb9be23dad96659bea4311399aefabf65b822700dedf8a21d76def42c01a9cee4b299159c263a9a5c151d7aa39e370186861efca55957487600e465b7ab84a0f0bf5d70ba70cd83300ccab1883dbc334fba09b94bf2837266f691d996822e5e42dbb5b41b63afab4a652ced7d5ea7e6b33aa161790bcd9fe21c4a392a9f34d308b5326bd69ca8206bb8da9b4eb494265f7e4b822c94240882f1ba3283d13c9da68402ff8995614d1ab3b5ca0a83f0904b69d38cbd0bdca08ea2a668cdf2e2ff8cac437785f4b532840e30cb329b2d211584fe1d4fd5247f0ebab84aedd0b358c4003f04411abe79898868f78e04855254833cda8e6143aebe298cc01acda9c6f0be861ad835e7775154b983160987256dd34c7a27626d5dec523d4d90bc8d722752a67edd40699598f9277e4cf1022a38b0acef3a7b19fd9cc67b45b0ac03072d140f83efacce937c4d0b8a66a064f6a54ffa6af5bba8ae520b1cf3d793b75040d7eb5257692ead49f37b643afa236069472112ed40d0b25246c7216dcefcb84327bd54cd9a2513aa96649ecd9faaab70f8d645212e6cde7514df1a83e7ac8cf6e694a65db10819223099f7bab7e6f3563c13f5b414f13b1121040b34d3cdc09869705aba32a8e484b61c97885a558be2adf9ed8dd787ac66b93ba69728dd2a03076427b6e9a0fa2270649071425204640789f9cdd81b0bbc6e66fa2221b0beed8d62adb4ee6051214decd92342f373b684e6c34a55e16c15e188667dc62e389399d285abd6633f85ac412e47cadc0f099f92335203d93a049153e00516cd107cf784de505029730ca3f75928f4c14030e80ed2448e57f400fe4b5a7f943135f45e988236c0baa75b0cbdb88ca01ba3056a9b399dba913e530ddf64bbeccf6e0bca397174287b0e847163ae61fa070bd9cdcc616b3a20b72d2798d01968dc8512478bd20e362973aeee254f8215c61f41e15fbf82c516cc818aaa6a6a5556fd70bb0cda8cfa4f990146e4733c4bd2a0f2a75899e9818d286b9860756b05cea4897dc30cc8406b320cae389e1808851b9538d767fc271419c5b7555645c5a919486d6aae7194e944046f7a45c00586a1c66cfb5084b61d08eca8892cc6a0da135fb1bb10de9a8f59db6e2b2f179ece396d55ba070640eda5ecd6657e70b39f7fc6d4d82e2729684912d9986bf850f145f55a7f0cc83f8f185b5adcdb886afab9a594a0ea9d285bedd024b4b05e09c7f2a0bb6f428b3b911e1caaa12ffda407f844dd3c43df15cbb0d632f7fe5257d80e41249d333a8043717cc21cee7fb6fd9e770c1188928d9783e43bdf894373ddb134bfb4de08aea4eec2ce06b74b48a3aff7a48dd5085276df3a1b8415abf4eec5d122ca6166abc8eb5d8286344c348894ab251891ba1809e3679492698cf3fd70dc3741c231d9b1196f9b5b740f0a032f707a85e55983d336475d4a0522b14d5d985b386850aad72f16abac04f667904050fb8a58090e1c58982ded80c34be516ba519c333b184303a5e7a513b75a3507c5ea7e26559a847f38a6c1da92a87d3d01ae0eaf21572be01d5b962ec6bd7be698d868ffe0234f1540c94839880e56742065aa7edd5ddd901317280b7fa1b14f1ab6b111c7651b44f81604e4e0af57ea5556ca0f90e43a8751f83a47082f1f65ab2e4a7d0b24e8ed6eb08c422d9b26b370a5f8c0a8e2e805d430b38e5a65d393502d5011e2ab066ef4a10a9a7fea8f1a2b9739c09f237a0c07efc2ed0481490b9ec5cbfb5fad8075c653e975f603731a8c85857213da5c2f7bc8555eaca70e514610214c15968a3ac022f74f6688fcad769d6a7512b9e901768fb252bcaf24050ee40f0ad736b9fcb2ba1f9b52ecf3702cdf3e1a2430827247816149f6f8b8e154b4e776acba261d4c82c78dde4aec03f27194f0f399de0ba5659d3e7054d478be7143d4495c6e1db83c3ba74f7b27044c2be5a114ce476ff7f40a0205df123e31e3e68e8366f0b2642471ac9255635ced366947adb5930c106db4c039ac37e4882461bbf611ba2ee2ad8a0d6f086156ef975ecf16a553ea8463b9163b760589177bca76ae271f2c19a91cf34ae32f82fdbc1ed013a74e5343252b8b84cc782e6c1502ceb9ae50cf2aaa816fa3b150acdb1ca857cfe83b7cb18ca0dfc0e0f910a0c076bd9faece57db1d85106f54ecc0045bcf683b8a2336b09335a3d0d08d83ea84f6a908158ab7747074c0dc0419b99bea234b0a58cdc29140f0a7cedb06f67e3ffde13d5276b0372c1e3d9e2a9c1c02449074397aa6bfb2cd65261809c9ed9fd0b549e9c31b50243d32caadf63bda8ffbfa20526770e477dfefaee34abf7eb86de21238403cb59c9b7953160003ff8ba4fffc868985300152fcdcc4e633387ea9fab13319b46896131e4f0b86f4b30d2a3f9de2ea8f4828ae7ca2f46c8374befea11eb1244eff44a2f2c210b3cd51e7753437066f19b3e98eb28d6804b6318828261ded5268d373ed569122b0487766c16fd16cbc12ebe6dc84ef9e1fe647a8aa6c6886d1cbfe47e06e84796d2a074a122f7ad171d4670a01ab9cd6553eb28a935894ba01152eaa59e5c1b27bbe82f8d3bf6d554342d6b5c9471401e285756d1649b688937c675d1b199fb9ae0d8f45366d06f51386b9e28d4c6b888c70c636c4003bb5fbb14e3eb9d49ab3bbd553d922acf767ad5d2e1de6372d461a25f04f0bac3a1206fc1b5807502406a350fab1a98fb21cb85c01b5e926617277c1aeaf15ca07ae5d488fc15088ddeacced62237cc700912fd8d59d86381725f3bd429336c4b4c0c4425b22c8c78d2bf0c45c8b882a4b58820981e14cd559bed70df3432e3f2239e281cfeec293ccaa549daaaffe4b3f292cdf58a16ea392dc733df534ed5d10e0bb1301000ebdc57c03550a8aa137feedb368478392b88f12ad3a649c883249fe61712002c86143876c34dd4ef6bb51325be9177d3d2012ffed28a0442b9491d0cd11d230dcccc4c4d27bc1360c2d48fb6b6b3d56a784871078e3e48c6c5f897bc741335b7348ea5dcaa50e76621eb626fbb4e8f91f79c7d9e24c7c534cd8f762cbe720432ea78089dd327f9c6ec0c2203e03dc72797d28761cc18bc355d8a40fe0228a63b6ff7271b84f2ff5d7e20d41a2b09ad511bc229988353621411178027abd12b274c1f3e7de35f1865dfe497af9397a850f7b29a1dd2a6504b7d8cff921661ae8a67b199cb48ab2d806cca427ba1383e74d14740dbdf1682d5be2c699cb6e96c59e194ac70a88d9d44a55bd94f0f5feedd955ed07ea7039edf4f6ea73ac63728e29bc2382ab04cd4122282069fa632b8c5e83c930ef1d7c5731a75630a3ebaf4e9f804d5c9444c749ae9e703898fc2eb8044b7a5b03136fd586de96d050a512d3c0b37034b3332f905b5edbca42956da49fa8ad4a8c30048f33cdb2dad5103f370b6840e446cdf15266cb1c105af4ecb54386b1acac1d624e606a09fbf5088fc4ce6bcc36644d4aee10b5ca0f77b0681bd2019b987375c0e59ef264407b21c19cc6321040d75590ff2d715d8dc606a34154d2be7c78aae28e53440c7b3826bf2a8a3147c77d728b3981334649176940a2d59897f653a3874f555f0b0e3d2dd5de858ed4e8772c04d3a23c052a7ea370a524cde6be8bced56a90db4e2bd5844b7832ec21e0e929e5552968a2eb83852858480b1cae2a2736a2f2da8a3cb0c2f915399a64e2410f0681ff857d17765d0b81c4aa20d82f3c57d182435b62c0eeb2dbc6b6e19dda7d5f0bf08ba651133de2d8748bf6fdc7cf47d6235c18d360c78e80678358028d2ddc82b018797324c46949e00d94f7b60c8e5a464feed26457f49134a2ff0d291fbe23a13368a8bce3bd120966228d73b38dc54898db01a688a09e8b87a8886368c77e8976dbc7459c0c8fd3d031dde65a993248e5a1194348967e1958f32b7e6fa8e91c177477b6c02251dfb7f87fb28856de7c04e2c48c340d93c0777e30d36382a521ef851ab069da781b512fa835ef1fa5e7f56538dc2014d86c87f3ab46fdd93803d91698a8440f239de32da7f64caca26da6a69eac011eef7fbc793a029b4e2f3b7825b8a502069c837f17779625a1dd7f939afe01758e493bca366a500acd6914934b79a7a517155b8db751ef935a6a55f05567981f6ace5136777708e897b64faf38c3a7d7cac9a9dea0a7439ff3d57f0b66d519462ca38dd7312d791fc62e5fd6ad7b7c4a302275e1a589523fcba5e1e59ff5153e7627d619a175549c3bd99425380352e8057a9fd03d8011ab4a7824c52be9571a5528e1a494f7e7e4cdae4ea59ae8200c4c5a400453849ac4c2f1538d02f9f1cb5c634842b6c187173170b9d4efd8e161353962ec7c5f422fbccdab95e406fef513fdb165246e9ac758305a8fadc26f501ba94416c110dd1ec320c46c1508115e1f44e42fb6c4768e53774d9a2f72a48ab356d08c8f722a49705856adfc42c85c60dcaf5e1a974a5ea73e84892358b081764b6f4599e364c1cb9cd133e921309131d2e85191bf69b8f6796de4428bb5fe840f0c9d864971c847a74e708f88fd1210bb6aca5a4993d3236e96d734d7f5b77b600e5c8881bd1d53614c1cd8181f3b76e34368f89d0bf3354e1b71a3d5164fb4166c6b2dd83fbcef454d52c8cf075511be72130155285d8e808bd9af37a946d0ecd287035f826e1760e7d60530b70ce9cdcad3833c9e479df112b937308f951bb0889af8cde30f0a36cfc5f874efaf98f845b21bf4cc8345fade2cccec715524cdb8f56064cc5641301335775eac15b9b5beea3a923534a890d4059d88be89978bb53fee7261dfbeae7f91e0d21d180e077e13c7676116739224002e3b780255e439395f75ade6338cd1e6522a2a6554e85ccf14539721a2fd59c1ce4426d837a0d6221482bfbdb93eb7f41a93dd43aca76f7bc0ad760e596027c3255438cf822d5bc50f228a5c01e4edbc345d298d54515d1730bfb22d91dd967a67b5280a493a06b48ac66c9048dd87ca66b9fa1fdb68d145d1874d46b5a06f1fc227ad9ffde5778c26269369efdf4081b2300131918e2bf01b3b92629dfe14511f575a0632502e47b9f2860b7e2db4c45133d360958b818455fabfbaa9a58b3775061ed020dc301b56b9c1434df0c2c6d9d07f0a62d87bf6d2e03ee8eb48c766183719b42919cd6fa476993f8053d80684f5a5050ed6359928c3e07bf4672838071822b0a7b5e088449183d3991f22b0b40af3323f44a8b056ef12102f5b8ce05409bde8860898385f137f7f1db91ad2b17d02802102d0bc0c7a1ee00c1100052215c82c7bd760db3d59f20d115eaf3e53da62d5669def1122d03aa59dfae43602ab20ab9ad18703dafc2d88406b2963dbe30d16599a8795942d06319ff47971db1b6d7a05adb5bc29f61ef688abc320eaca7b9c3da3057675468c47e200fa0e9ff6515be4d97fa9e17af6df757b7a904dc51a30a07aca05c009c2c2d9c0ab283b1796b7f4b209309b20d0e73190b151b7b691770670f5715c721032fd5b76a94ef17c965d280a404ff7778948ac4e30217442ab6e94a64517b02fcdb8477b010c6c1b8383aed4de15f5887d81a7b04884dc22f7cbcce63b1fe8a41b1db722fe9242bf9368246dffd3ebd1c4c1844039eaa92ee3b6b6f8ff547fab02e841106573251604ad6629bcf57717fe57270e21305a16d50fb2b12e35d57a98f38ea2f714746cd8af49eeb1b54109c754f8b5d66ef04559f1819e073f6f982f7c85f15d997b6b56d482b32e2b1ac878bf139637dbf870b51340c5b2fe273dbe5e802fa1c3a78038206656417285fcd25050519ec661f8ed8efd2b45a8eec4bff2e544269595ccab7602648eb9b86cb95a3d9c0978edb73a56d997e224f55e1b6b163045f0cca612f147652987de0c3228702ef2902d867bd89f0278a39b771fd0ee9474ebf0fc8eaa5961ace88eae1350519f1dcdea9df2de3a5f304c3db3a0311011ca101b0877da1bcb78c2a5c3c1299702da7eb24cb0728670c4356f452aed910abb60b72a3de5b621749a7ecdc9addaabd83494be59fbd9b9e9ce504669208195eba8d38d2f2f617554580e083db5391ce0fbd253474d7c3a62a9ea2848eae89e245bcedc06d1ccedcc33c72f684b24b9d2b1f3d2f7ab7aa93bb36924bb5c22240c43e16ebae74e75582eca2d0c6b7645d606f7a203fe3edab476791ab27b344fdf854103dd07df8a737ea7e7643b9cd62092c9fc4339823279a96f6edd6b3985666220e88f8faaa5154914be31b27091d9f19bd73da25e497124b401b098ced3f8ee6c38405d3a356a16d10abd9ca31756037e244cb75a5b972e072534c0e4784eb5693d9c3a579e030be63b2eba47b3ab14051aff6fd647120501a36f23b53bba1b9357f5234f9457854e193046df2ea9893294ed18c2d74534088f4915601f00a305f74a462649baa2266c3e4f1e3d683177e5289c1a1f923c1151b8f5b97dff9ddab922db7001049c8d0c2ceb6e02779fffc36cbc132cbfbcac22d4ffbfb085b04afe2b604043ae159b52ed3bb044d3c64a51891af042c2443f71d297fadbbe1c4908b3b2282eee7e16463677aa3c67886faa7049e2199bfd3712560b02af91560a32c67effa8e8a95a5066200358d73dfb7a91e079e9197135059114bb37d011689d7b8ce14f074576316f575cca66a36e22e737681e704e8939fdb97b9b6122db12da6919b67d9579f0c14249f243ec8a6fe117add2dc9109f98ca95336b4eb0c88d2cc7341b06a7bfc48646d7de42cbdff4d8f7a87fd9cd6e58b5daa1bdf20eec699204f5d285095129ce7479abf61465cb2e2d3320795434d499464281f3aec62bb1aa5e9500835129fe47e61b9ee8d577faa8bfa48a0b7b91151c3dde32987f7ad9a1b62ed8ad4cfc3c459d310b604fddce0e1c3d3aee5cdc79a2274ec2564aa3740f3fdac10be4e7abd9716b7cb22753d251b959ffa878738888777d17a7326c592b9277dd73ebd5b6fde55c7d5e69adf0f89c6f1058b08769643da7eb313d7476e3ac33f99d933e1f91808ae1b210c86b7aa595739908ff99fff533c831aaff99bfc9a05deca478f9489d2ae49ff9b405f5143dce7d6a9e2784f9b6c8b7278c77b6b93e75437691dbc9faa8f8cd73938936fcc55217d7947a40a3c64b2608a886761f9106ff67e444a14301b8afd48df5dc57c96f058e85072d02b1ca260fd5491d51657959cadb731d2e8cce33814f0628682ffae681d7976d817aba263c948da0164ca5fd746977f99c98a4bde7681a0662983fb68cd9b7202b8c0939caed6e8e7e21d0406f82556ea55c2cebd0425ed554c9fb00d52cd5d1c890de6f98ffc3a637fd2224ffa54fb8e0037b02c41e1e4c62f20d16b704074c936714883787281bdc44010644c860c78bbfa01cb159c6376bdf390b6163cf24be5e075b33bf6159072fa080795eaf38a241ea72dc20715f55ebb3a10fecdc69cb5bbc55c45c16b321770438ad869f27a8c97253774da228dc151d1d17402bba11be05322b6748c7975bc8bdb190568c9312ca321f45630a31fc3b6d7def11b3ad94554089a2680b8d500d631469f91d2695a4808d94454fa58fdf91b5201d210b73a8f00ded49dc5d9f2d1b093d419a0d19db6c67ee1cd733f2d0aa0a1bb7037d3addc668bde42463a92e798dbe0cf502f3b13df3bd5264237bf0120476796091641d228f8308faf399ba0818d99523ebc14f039f58f6c469abb41d64490ddb0b359f2c614d7dbe096b1bfef40b03f43ae213a31f1d61a72c40dc381ec9083892f43a43b5c3b72146c8258339b6f5717afab288f4a0de5b11cf21262fc6b39402fcaa390047b1e6e15919fa1a23cf4c75bf1eed694074ad4c6b1f35a08f0bbc518f3ab1c3b0fa99a8179949af220915844ca17f4f774581423c0519a4f48041fa40387817c033910ebc5a0c679bb080187d17d13b05cc44cc85d5d5d87b024d025d59f18436a36695bfe62d706751853c055a857b728c73cc835050827e217aa15cc3988b17624ed1211ba1f3e519d0dd0a1e57b504d870d8fa219bd36e240aaf321d65044885bec956f5bc3e3f931ecadc6bc6e49b7b4bd98ace189d67a9fdb0d288513e225eabafa47337a37b8888f4f6c74a9ed45ced0bf9fec7e74d254b540046a997730973aceb40bcfbd777afc515f4a5ce42aa0429e60e1de9b3fe46af1d1e719744c65e91311498f2572adb4a238e6bddd4f13600797f267a51812121f1f388388200e298d079885bc75206ab1fcad7d9d6e670fbef913f4fa6038a96e42531b8966a18f763bc031516df8583279d1a4431e84dcfe095886893fb5b9bce40ef9c3c11d0c405052f9e49e23e8036512d9d6efc62acf20b4b955c54896369238905574f66c9e037e64479d5eaa6e2a8908e47002bab065014a0f5933ee2cad9b8b5c347aa5e72873cb7309a1e7e4489d3fd4a1b78dee6cab3af9b2e9045b9fe96000f364c9caa0267eac2e68ea832b150a995180345cadf03eb40904169aafd97e21905b54855470d403bc9f4af965ce804336ae27c0e7755234358b6654022cd10a60b810e110b1f6c59ba370ab306a50acfb4611281002a400d5705b1805f2dd3bc0df41be6f6f266e44c2ba689bc025398b6cdd8221b4307d0c7f934d63866953c4af539b7ee482f3d5743bef735d875bd1c6e0bd8fc2689a2c00b890bebe8010cf63432ef0f4f7603486ecb5c044803659407558f09119c026bc4feca81e147770d297711f63482b62858d113b6e897adc25bfba74c6351ae3fce48bef9f2df07bfa23c411a0f2197f3056f1f7fcc98526218b603d88b5e4e59e5578da8f8614a35c0d74882b0786baa3b245499e63c60a5b6e4759296f473339421a0a4f6038b29bd50b65f438e6f3682a3a49b5146a89a461de1738904676f1e5a466f380f1a1c649b2227a585469465d4a07b2689cf43faad9b0c65669f343f96e9386b35cd2e00b770ac17544f0f14e6e365a2a53744f1294b69807fad4249869141b53772eb9a667cf4627bfeb3e73afc8ce85b33d0e3e5a7ef0b861c454f5f883a03f0705c42ef7d924c76f7ae5c4f6edbb33c837807b1a7fa29dab2929fdd94409707de631cb364fd644e975418f3e6e0ace7fc9066d88b15fedb172442f80bb90b331ce22b046980878f2498ab5c056afc50ec44887335ede6c0725fb2575fdfee30104351c81a6e46a2df314f480193f0fd75398d76b9e0c3f36da54073e645ae188ef910eb78ce584712c6de4036ae8698201a694aea345abf5b49558e283257daa3d21a92017e26b67f6d7f918a363c6ab976360f6e809c052b6c5bc09425fee5f2e49d76596d05c7648663e66286f9588522578ae09555bf4169d701509e88157318f0c2f4924d2dce25ee941f17670cd2820700955df444a9f08a38878cb181e3af94797ae30a163235186712a659a54bec18fbcd64fca6fa7fcd065a2f677260fc601c8b547f3962dc41e05e2865a8a0d5bffc6fbd32bd200303dda81e9f60412b875bcdfc79f2e38d4832263a207a411e122d188af00a13c7b258976a0d14ade26260df4e68ed71dbebd13a177a463d4c0856096938c72989691569e4274e4702362117568b0887a195b5d40e3068baf34720f3ccc9ad21ad62bed2b5c8cd5b3b605bfa28bc82ed6662a027abfed232de8f6abfcae5061333e6292753f7136504490258fc094fcc8a2416487c5aea3f87dd3f09b34ff670efd5d8ad088787998640294ac56cff9026e067608e1eafbe212984176148be4ee70eb9b879b8307be8a11b207672382cbe6fccf53ebf144d618971e126c4260ddb82f918570e91947883292356d67fa6ad7d23306bd93be027a1cfd7006282f24b26fc89d2b8f681cdc7fe2f469240985d5e9b58f5d245b16e107efaefdad03ba257e986b44b58dcf2cb2f03edcc1887025578b65616124504bd774f23e9bed47a911786cde065f996de261f1ad9dcdcc6cef1edf5f8275e3c4baf8a6c55cc4bc8705700fce3b25ccabf0b736547ea5818ecfb612b6b71f83c8c1fceec547c50d929e63d8006d16d4d5c9a2501cc5b6b19ae55ac711d7ffe45e7fd609b3306538dd320f2af90566a32c617d81418ed06db6b89b4c14cdb285fc8be03aef6be5ae374401632287c9e04cfbdcac72b9dbcdaa8c81e1efef4f35ca80728ef156b824809263c5c15f89090c8f826938ef20a0b871b0faf652a3fb0901eac4aac03a8cb6f741f446e1ea3e6e62c76a396433123700f6747873d276399815bc0c76558a58e8baf40cfbbfc3c7ede333e8635ae50ceb94a7e87af5415e03b7f840da8b79181db09537a8f66cad8692265c3e56ab15588dd63f735df89046ca4f8e60e1396b2644299d85e7a48910e18056784c7a53ae036ae121692a453e1895972a7f8556263365347366be403dad36ebb6070dd3f89a31416f180c5d042d18f0a120a9ca0578fcfe3b9171d4a085622871d2cb6d00dd39dc7d3cdc403f5c9f42dcfd220e98248564ad6484c4e7e0bdef876a0e26d6a103fcc1648106c48b412cb131edf8c02840d3297bcecc88486ca89267c5387230a1491e1573331213aae47864d5df5082926795c93c913d18a388a572c7456e5ca449be8a300f82606692c5499160300cfd008afdf19e14d8b312db324584361f942b9a26ee52160deb13928bd6af0af618ddcd8559117569647c7eaddf91e8842f19bba4dfee15fa8ce701d4e37b72014950479ff3ec1be4b9e61e170e5d06252cf3d0994d11ac8a4eadcaafd1cb34f30c3216dc9db021f023d1d600bd9e65f574f0ad6ca2c5ac8e8f3ffdfc83cf7d9ccf31bed9e78db191368246ae81960904ebc0b6e31f87936ae7d769c11ac420d6372e7d1c3b7084de3f142689d6905a3329841daae1598f99c353cfba342e72e322578e497d0ff7a49a01f34a192005be1d95ad06fe60a184caa03ba0d5ad626556d8c222d340ca0aa30072b71cbcaf833b7812d071f6f1e79f7de0ef35d7dcc38b1f6d5bb583c1f13c46713d18898374eb37d0bb918e7ffec9279ffae4157f6e1dc24ebee51aa7d1344acdf5dce37218600dbb86ebdc84538c4bf1b728795d9d5fce8ff39b0ef33f82af961eded04ab8bc0890f11c5a80327fb007652666a165358fc7d5a1a0ac14139bc88426766a4812273598f75b1d8ff91976bf14068301c3413ff78f1d99086a336335350a88fd274c0c883caacd400c5d4007340d8d064cec5b193bdca9467824b6a02d857abb1e56e60db7e0eba5c5706afe5b8b2c8a527310620a12bcc0ad0bb4ead3db2037966c022c963a30d49e571fb0a72efbd7f6533b86a520acd50a1fca682dfb83adfb9b445eadbca0741a25908872d7b3aaca780d35a37fc36b8456a03724a161e15e742223e8054a8e7aa43ede298c4187b6418285574915503d92c1f04aa7226e0312577840e3d4bca46922d20c0278ac690fb841d86701c4a394b52ef125f7956917e5e2504030823dd6161f37f314bd19aef6bae5994658b3dccfbe149af5b4305a7521b4925c2b47464c73d14e8bf7a28a9ef1220e5322fb1df1a901ec7afa12e1a693d0fcb4c82bd07c99b5041b0e8b3788c8e4391b3b03e7d365c55c312231b1948ce51063703c5fd861009269240122499b97f4c67c58aec58a245ec06d8ecbe8c1b7e94474de25ee9d406ead9ba33427adf1eb473a4aaea5ae92362d15a96794d8812091871bebce1d4cb4c6dc1c41436e8501eb5b9411f74525f24df3543d89baed0f78ba258d7e952936196c463e77a5626357024322c5074bf59ee1494ba4cc6fceea7267625752ebb3cf5de2f23a72f1526b9a69977bff1562dac1686b84882598226ae933f6384d75a0f0f8dcd49bb67862372802cf59251af69f3230f6ebfa662e4bdeeb45a6802550aee040cb008e4bd02f8069bac1914633c762db6eacbd6c4fe58527e1b25fa3b1c68437807d665aa489701c0cda0d0a172c4f7ec94f783e8b45584937fdac5942058aa742954352287bfbb1337e179349662c8966cdb6362eb60e1d8f9fe4e3ce6bbe064987407265b3556d175ce8d83ce982060627987f237890033e1ff4f3775e2c3d2f70754d1ee5da1d2a517f8fda086e985c97573b5247e255bc3867aceb0cca13743a8ab40bb5c1fb0b58c7a73d35dc55e630b19c909755b9a01f54db5f1765eacd795e9bd6412dc076566931cc960986b53dd8c1c7b0049189b906dffccae3712657185fa4235f1d44415cab0546468bc6249fb92e4fc91fab4670abae04a29ca8512622d03f08f51ed3593264ad3032bd2343118a19a2833fedb21824bc61d6734f8029c9946402f55170e92faa4b101bb9a265706ec770732953ef69ce5199fc969a2f9b69c9ce7a078b882fd065e2aae1f523b53da2822bd3e56a9208d1efa09ef473726c6ef2d3e8d807dd58e8a993d929fe7366961607e797670124303f0a4b6a0c5f7bcf5a601b3bade5a8b2558875635ca8043c318c1aec942df6097cbc5606ae1acbca7305ec15e154d8c8fd197c9e68ae704206f6a62466c299c81de0300b5ee7145822a60e276bba7e06b8e5747bafd5cb4c55ce3a49610b6fc030d30bc9e86ea00e9196d7d4ea8484021f93a04fe81029c058068a7a46a6f718e981f69d262de046f5abb89a6e706bf5b6bf0501399e67cffdf8df1a2a08416e0bb6f039e0c9d41642123937ef6df1dbade942da372c95da93c5b8de6c6352ad43f2d4c6e06cc7d419d7746b83d8ed93a14a504c480017834a7335e305fd2b81d836a517d5cf6f8585ea53dc7e80447f8a1747fd0e0a5c35bb173af4db8f12c6400b3dbb10740f74ae6e79a92410fe9bf19f42b3960a7adf4c7a4e892fa6f159135faa68bdedf3c0801fe3e873146c9c5c26cbde44dc654a24b2754b3aed05d1e7cd61063e66fcb7c5074ac45148620c7a1b5321af90ea9505dd64e0777a034b9bd61b37eee7e4da16ad0873a4aa696f3418c5c12c8ce07f9a3e1c5b23a790749fc47f2ffec868b0d5525e92142d499668498f980aaed6c3d57c72013143e3fd1c045f7dd3957c05e78bf47c2fa7a125ff212e17e672223557d82d2e1cf6ec2d28b994a6a3dee93c99a2caa02e041eb7c71ce7c19b7529ad2337d7b9591fec88179da4ae019269d255b4b8e5aba6e905222348b9c2c38f3cadf5485ade18d5b5d7fbf446bed6f4eff00940a249939f56827dfb087d8cd229881c6ab1c225829c40bb7fbc4f3ecb450a286eee12e7772b435426f06021c077b2778e0610a99ec8019c5fa0fbd696194294bec1b5e3c211063b079f0e0b4a1ba336c1ddb32000b35f0a280827a4fe60dce48c50b454044d46a5ee93d91fd273ea3810890144f31b839d1811097ab6763b62fe35cd6c8d614d7e6410feac092bf5b6af376f794cc86f2b802b75262b445d2c117aca57855e2779eaa1a2a1c6d0bb9990ac144723e9e2be348a9d99026795b24694e8e7923b3ca2132c2ba0b4c54b301d3e29f0f32d52675ad0b0b8290d24c6c6308ed42a48b0beda5ccb744cdaea14f105b7bed9ef3ec8a9f143366ec5507492e4684b9a41fb8c40084c50e4eb7ef94e04a41c4923baceb27824ed952e45808a0af563639e7d98f8eed889a8bf4062638ed8b4452e713eeed69f55e7877c7f291af11c150e543d6d82987ca4fbacac5339985ccd61520e8a2d274f3964f5393c5fa94765e310441c5ae73ca45c2496b8ea283588025d3c8825b0b0fbc044c2615060101104ca278062fb9249662893411fca604acf7ee45ad934dcb7b543faa8804d1d73a3c9e039ac4307e8d89a2053a51a665ab01002ea8d7746f482a9c4a37e2070f533a0dbfbe086077792f9c3138ae87b84fb88ce41e3ae06b008c9844ba1ca126f77067e7e2b10b6a8205ec4677e3239ffd7f3e6068a4f2828035e8618a98d30b0b32cb60df0fe613fb77338276a35536a6ff9e6a24864caf59d83f1335d72c1746ad7e3c2486a41c57c6d2b984f355ad40b7bbf8dfb25df3d0a37a6653a8936aa0421c684f7bcc60f8184ac27a7d8e18bfc197ab259aa2bbb26c95c543a881454427a4a89f22e2c9cbf190eb3b50601fa104aa4eb6e3ca487e58f23e340628a232d5904d868889303d328571f2fde236f0cf1499303de26223fac6acea9d4cdf61d8c00374501f153727dc255548d53e8c8d264524f558181c4fb8f1653a8453957f510a09e6cfa11fdb144533e83811ee1ac3a23348b19085a3d87ea8536a958874cac6eb05318d0653a4fa026f25651708466f6d9ca55f8df915bcb256891b7e80efffd574ea9df1e53a1c4a7c6bd615963593f301d16bf9f5851f56a1761edbfb3aa1f7772cda88486b54c2f829bc3afd76f91c90739c3788298e475d15328d04ea25831b20799847e0d1a98b0cd07eade10e8187eef115bb4b5e8c6fd927009d6c00006f5761ef436670fda1285b8f92699e76503fb431c710c1b9f35ac9c807d621ba93b94070204d5e9a821ba3d1ce76b82f7dc6dd7524f12d69b74670a51980f677230c8b4a4f091f331c13da70b11e2fdb7179138a0077efa80221afa8940edcdd897cab32073efb44b19878980963c6862182ac1802622e01a0719acfed6f0dfadb8de4c4eb8b9a7d1cb345b83e0beb029e4c5b0ec5f240f2359909beba5aa22ce7fe7b4b74fff3cdb43b442424d084b64dc74458360f2b1207a1a475519046f3795d183d68395fbc9bbcf5cca2d5124677859f9f11bfed86fe76e4f6312ff5fd168912b7de54957835398f432ec8731aaeba39e0fc80f287b193e0f04176039ad103a82959805e5dc81c15804f2ac044e800731c6e714210b4b80266a287042c521e1d5c36aa5da03ae85db77e11bc3a273ee26af911959f5e0e420083051c8d1d31e2876b3efa3d23825e540321b5c0ea0d5c70d72b613602f060603863d25847e9534f5cac1900ad02888e8ec2470e31cb8792d3f844cb121988962b81eeac97ab0180ec365b8dc38e79ab4c02d86de0a6488e57f90897f690c556d241db2aa6650ad5dabae700f03bfa4a0d97cea49b71c879425ec4d33367c8abe27a5fcb4a8023d7ddd65f263f43c259210df5818eb24740e99a3f73243263029faf5f51e9e4468fc55c0c94e0ceb1867501b6179a76e316469b66c6fa949c553aac313457602df29ef0f53e3dca9e981df0e807212b80034b29703ed4ae2dc5e1ae17990466df1d3e2f527bd42f5061be5a9227bc2b352c61c34b451b56650def33800ba62aa67223b195cb2ee568ae2f823b6a4a5d37ee578a3743b92cf119e71d623703617b43826121207a2be5092a22239cb471e855d509e7f0203bdccbf6f919bd11faf889f522ba14c2ac0d93bbe23c9900e222576109e1866bef556b9d04046edfaa384529ec94f245c9311856a5eae928fd881c8d8032e06160a83519368441cfdb268c30ed75f6bc8a4c4aa4c1371e3fb99a1920028f82fb95b121902239dd215cd179ce054d8911158583effde22a04b7d666c8ac0af43d0a87eadc1e9b9a47060675220b2e9aeb7812314c294dc212f9726e90b8b58c262406251c30bfc41d03926c144a328c40712ae703081b9b5a246f470dec32bf50cd0f9818637c1358a94a2dee05389ae6b9c8bad5987b9f65a606f9e5a1cd8474b522db818d5c6e5e87b155935eb02e0052bd5fb02620a7ff447334e2fb79f3d4a9cceef10c50464062b0553155afbd044911079f709f085c2c53f801de6e66bdf9549dba031a21ebe0b3bc7a720748b590866000502f00c6360b02116848ac09d7fa3d6402cb6425708a4b2da2467b5478620dab10e3be8622c3e90f0d2d4609c3c1c10e57f7e2b5e237e04b2ead9a2f542e3d9e4e30c576d2e399133025c59826fc4b2a08b07821552cda0dd6de3793e9232be151f8e1ea7ce30d6020b31b24af52ada286bddd0e26e223071601081721a633ad0031edcded86864cdb62f4191d5135d5865a17ee1203c428615339e2f5dc4f68101b183128824880e1302f9f014096118880685b88ac83629e806cc6ee4f2651b7b9efee8964ca042ca87cc8e52c5006c7be370380905ca21806882fa5c2696fc4a267d740d8d2acc3401c3936809a606227946a4f4180dda56e3743acfa55b2d610f87aaa1a6e48fc445d728ac2be833e10152c98aaf348bb72317ba816a789abecda5e09470a45756323d28573fbb4d3404db9340163e797a89bdd9d0ffc6fb63f9ce08c2d5efa9f4e01e0fcf5a01d2073a19849cf6d887c09cfed632883045b568b5949d963b6a7a73326a3ebaec671783b6b456b40554fa4677c62fb4033b4a38dcb4c20bf115715fb7331b3b7c77f336707a3d67ad4bd1838b5e1146fdfa04998ae342df65369f0060834ce17b7dc677cc25c7fcc6ca3cd103b2293b8cf1b544a76e19e629c661be76640b2976f7ace2e20f2a62d3883dcb1e62194fa01620ae2066e959390f2a8ebf05932c34dd3933fb1fffd27c5375b9c4107365f54854468e2684be0c3427fc7883853a59a86a535bbda4b0bf71553abeacd4acb6113eda879784c433fb0c8c8517bdbb4ff4565c3cb941589abc48bdc7b277a5eaeb1b08dee56f1d471941f6d56b2dedd6e0d25540430dffd8230b94e4b92da925c7d5771d7e2dc970a1d0c6b98c0cb7a55b161b1c8c55a72937841f8530ce2d99fac72c71a5b77dc3dc78ded88097ba31fc7289585ac9c27beb89917aed8df78d93373d333ae16c53f70de06f128d05cd395f1ddf008d374155308785d54c27204057c768e86a892ee791fbbe62206d391ddb206ecbd37e0e7bcda1cfa4b233d556f6a691223b66124377489a72afe42fca9de633d988fdb56cf47507109a7b26e65147136cce55040583c48817f65174cbc5d81bb94f15eeb85cb26914582f38f5f81e28fcb557fdab5c0fe67fd085050ec3e392d84663073542b8961f426adcad52217ce116657f4f45e4f22e83b2e54120b11e7c927c47145edec79fa1c6dfac44c5e2bb80f0ea1514d6b51916a3e13e9f5bc878c69340a276cfc29067778e3660f4a6ca1311d8b3f2bd263a28ea3800d61b9ece6c68279eb0c1726869f3c69183d4b2a8ade3441f15afaf1c44fe18fdadb00a4195a23162f370f6c6133ce0e2ea23bd3e42a6bbce6247f00a9b451f1d09049c06c4f92333e68b6368f98603a0264f495a5f7644a0c2a8b1f348c36d4085493bde2885695c69d4965aac44798e14c7d90ca7dc1b25fe31289c92c82838a1201d783ac01ec70737b405e3fdeeaaa68281d326c1cb64c62545140219302c3f4a65e5dda6941978400e52aa1abc4d551bc680c758aa22696ab77a8f8a5e4c37162c5e2d1a6c0e3bda3de38af77344852b8b9a50b1dd39b33c1961a5f85be4d1e192b046e43daa75b803a18216f780ed256c5706c200b3f87d15d9ce958a7222d09ebf64a5e5560e3812072e3233d7cfae3bab365e3d970c5071c5e8129a566b02ebbf1dd4707f655521bf4fe0354dbadadcd9d5f9dc50db13a93033021136d36934d34464841f6baa3aa10ef89d66bb3ef40db3966fd92234cb5cefb90d0386d81c8a69a8fb1cd0ac804bd60f3708f9fecea585d5be52b4c06bbd0a95cec8cd17bf2b29c70a6ef8ac0d950e4855b30987300ad3fab8d9fad2ebdce5c18aeadea077591d2195d5c4c137a05300b239a9314d28b83be620b37d2bcf3fc1c4c9da380efb1d6703ef454f096b69ccd31a5db154c507b7555d9f35dce31b9934a0e0361a52bf03c501e89c27161ed8a1456d21d657b74df9ee587c18091f8e04ed947f7c2edf14e80043ba902d1885c25699408d1bd50abd4d0b096a41d687103752168c3c3d062ac7dd9190cd936f60c7fc99e2c4d2782aa2dce0e617c4992ea784000f6fff5683c469213de9fed75aecace12d627b6a4c6d93aa1dd58191be6f7a7d188ac45040360e0e0edcf57f614f40207cc17b0dabe693486f9422ab3690c91a306d798e8a706204a51e1f56ba0ca0ecc3a6e71d83ad2ce7ada94902e9cfdd0002c3b48030974c0bfbbe03e639de9732cf073069f90079f795acc3b015f4c0f64b94f1a4fd339e191e9ade5a3b5b33583decf6e6bdc3b7323aeffea1780fe519ff3cb13e1a4d960599582212225e5c436788b278dac38cdc0f6ac74de5191dfa8d47646b06b4f25a11b046cf3c293df4d8ef5fabfaccf49a88ad4fae42555caa77cafc61aa2fe639cc7cf0055ad97fab0fb882837e4eecff2487f341d983b5e589be1f7f604bb47a6efa9e0f4ac62b40c93c90004d43ad4086004520697c3c07cdd04c23d3f1734f56140d15a6f919094b65fef70324ba2ed84fd3ea49dafb7584736a135e42f2ce392e8bac32bcfdab62a2e3a39d030d9a3e0421cfecee46fc2621bb5558aa5e248a151a624e2391fe9a506b1bf82a7a219aa1e9dcda3bb04d857b2907c9d02ef66b7ca39e540d15ea0b92e338ce8decda41708fa2203740b3e19cc5d8f59cacb4fedc22c808acd75b2ff657c0a371f31343a5f996a59fd00305f3aa17e90082bb4d2a1fa6e42666e4c382a34252f70fa709f27113c2496bcb55781b900b180c5c1f20c805dae3a587d6d351460bbfc6dc0a259ef7a48c800d02996cc856b7f33ed862f0a2e2ead35d8789b4ca07bac21ee374d7efc55d064bfaf51a8cda6461a46038c51789ec019e74c1e118d2e5bc57d856c57917e8bcbb619fe7fd4c1d1ead36ef53f739d89de6ddffe8de111a802a120c1abab2cba9adf4da57914718e34321bd5a1255b8afc2c8ff09d1c485a01938815eb1f0c04c56464a5c41043eee16602eeaa3b91d94b9b364bff1561f8feacbd8a4de546fa517a9b78c5e063361ea3223926a0081bec71489e72ae20b61aa58ed842c2e64094aa621f138b2a8dc8e0c0a22edeea7f04d68ef5786c60d6e10e886c11e239200e067ec1e3bb842e67be74ae46767c1c869297228ce67d926564d9a461c7fbc2791ada234a7847a8086abae47764617d743c0ecb2478eeaaa829b55c844000c842632d25ae2f512b5e94a3149bd1623bdc033e44ea44e168b4f84f9e97308d0a17e070022c8b19789c9db8f5044a94211c76528422c028e3904cc32490402e34b69a9efe1d89ea3503ea73dc41d754866df52c41c34208a15396c7493ca8f551a36b722230f4096d536c1507c454a9b6e9ae41681f1d3f6ce56bda9e4ec6f55206ba340bfa480c6dbc907e2fdc26a299235eefa26e31db5c853ea39602f93c4c6fd275ab908b68d0b38425d24009a6ec1174e366ad0a51b78f16b3ed5bfe7d2e63c4f089b3daec8dfda42e5c3640472894ff4fa5c31016f47361f3921e1758bc2c1b91d6e37c3feead07ba8d62f3c03a5feb5d0b9d80fd50b97dac837993c6f47e45244c5d5a1738dca26e76e452a811ebc4da92639eb36a66af4f86d4e95d183b741d5a467dd26558d1ebf8daa327af036ab9af4acdbb0aad1e3b76955460fdec655939e759b57357afc36b04a3a37de0a14d4af7ea97ff5ab7ed5cfed172bc8e15333e16a54ae0a4479bdccacb85553891342549b55517b696b2a4b58c5b56625ada67a383844bf29a0e0fdd6edac369a5ca6c17b7ab3df66b1c5410bdcafa5293a7eff676adb9356215c4e697ade4d778335ca8af6e34046effc431fab7d6f3e9bcd86b3d6a72f67b7dd5debda5bb3dbe4b075f28399b6b96cbd7a8ed3eeb7baab82157579fab63bc9a81a3c3fee0e651b92fe7577ea46cc5bf3f7fdb25680be49005c7bbebbfa4d02aed811fc312b208473225cebc1bbf1663d5cf719fed25798c589445c73c5bbe6263aaed655fc352b26923333aeefc83bf1a656aef23bfe76a5cffdc641e4146366186f9173edc8e46f5881009d54e5bafebc0337eee87adee50ffcad9cae0cccfc2d2b9eaa33dd5c4faa77e6e6705d4577feae56dcd839ff5cbbd8bbe02dd4aebf10fd512b90b873215d23dcbb49378332bd9a6ed5df351fea0f7c05199e4ad53517bed3f4962eeb55bd6eaa5daf92f76bf3e7c30e5af3c02a1f0d664f565d6e6a8f8bbad47bcbd76bb76e7fcb0ac8f6c472d7b5f61ddc8d80bb57c47e36fcbbbd03173e00db27eedf933e97f50f3eeeb7e4d6d3403c3deb1975dcd73d03e38d736f14fb6e6cfcdab27366f2b5d1475a329fc2fddda2f355bf2fd4ff53410fe1d3004d427a36fd15c3b2f3be28ee8406801efdade61f8fa2fe1b6d004428565839ab3e4d726bc83a4d424bddac74b4d29ba1fac743431b65743b549c4aa24addacba34a9db50f624292d716be9a24d6e879a534954a99b559726751bca9e24a56b3002c074aad3a4a094db4a9726bd1d629d92a2256e571d5ae9d650739a9494725be9d2a4b743ac5352b4c4ed7d632039961095ba1d74d152b743ec6912d3d95f5d6c59031a9d3eae91a60430adfb30922005d09f197acb4405804559a9ecb017abf5ad01ba871e4f25b90054a4708e4bdeaa7a7590336d03e82889f74a5fce948144f230bbc2869e7d0df22d01ba5ad26d0eaaec9f9a7849a421ddcc6517148cdf70fc2ba657b1f86f98d0599a54f111f977326424b7d4f75e3258d22098bb43b9326551b9f7f516b1bc1fd73fd9c21ce67a258d04ecef163abaa3eb399a3fce1d9bbf9ec306e716a19d0dd7c6db2eda784e10ea7c3e80f06240ffcd4442bffe868be85a46c1e8575b99205dc710deff80de61fa187c877130fbb14670a03e0478a0c1a6bf511c20541f213c30f6d94fec0186f599201ede098b3fa18471fd0ce38bf845308e0715b09f08f2b5fd0fac079000d9bf4196d957389e87f619988790dffa832d40d83e87f3701953808d5772703f14e84b47584531a115dd0f20fd3381917459dc1f14ea33f85827dbba14df6b60fdb878d129db9c03fcd45026f8b703a98c141a62ab685f49fb3a9dc002102f0ff73fcc0bdc63fb38c6cff11e0e15099c842000f91f3849f27bdee7517e3ec059fe3f1b26ccdb0cf94caee6f40753c079ae90caf32b505a042cc42a417f0dc3f59c0181915ee51d79fdc7963785fa9a8520356602a4ff82d81a919625abe2feb8609ec00ee6d02b3c99067e24a19fca681146fb19909fd7053fad925a3ced46f7831066f15e118509222060669d486b89c0c7aee3c72a881d2318048a7f54fd4b1b1761b0f0d8585edb4f315108ceb72f04ffadd4880cd1c1a190c40c6882b64b888836433bfee06f354bc064183ddebe46e31fcb495d028a1cf08f5b065372063e114f25ff9e19015e63837ca739b61f08fd92faf3b5675444dafeb40e84e7f5475121549c2a394a174d8d788679003d701ebcff456294143537f34b7514060030f7e86229332ec2a1da80a6aee7f1d119c4eb692114cb3bd9bbb58043e82f41315bb4dd38407cc92d04f444abe0c24e82e7b7881e3a4bbc2a2e98427d27ab970b7311fd1194a28b98db03899feb4291d047b25b77e105e837c1345e889a3e4ddc4d2f4c43fc27ebdf0b71d93d12fcea8baae389899ffd4218d82fd96ec0e00ded3b41b3608c9d3e4fdc9b3054573114531a98f0866105fadfe19cf0154a2888af2d3d8272c648bb7590f8b16328107d40f60d19be01fd12ec970c2bd35388bb29c32b847fb2fe96a107db03826fcc683d3891f8bf669800fd906c0f94148d789aa0bf67dc989e43dc0d1a5a313c92fd170d1d621f107c93c6f5c059e2fda6c104ea8b641d2be3acd9956a6d004ed2493c3657137f3f13ec59e3edc369e2fdaee104eb0fd9366ce86be991a0bf6c50bc1f409c4d1bac2c7e92fddb861f665f08b671639ed019fc1304cdb37bf1b2273dc538e710f70e391059d105b9c86789359dc0e58e5fe5d0b40c1a3d58fc16222bfa61ec044cf619b1e84cd2860133e225dfd9e7c44c86ee25df15a63315f16d180f7f8b7b11ef30790edfd71a52aec962fb7ad4353e0d012b828febd985e7ac6a1cff236f2646c5ae668b70394e80428688f21f6516d0599a76138798e3bd973474a456c9e644b1dab399bdbd4d642321d3bf5a50d158dcb6366222b368d9b21222fd3e58788a66f436483697d26974ac15d409f51fda21e70fe4d5b7c0e8c54986d6e540bc9971409693a116b17f45b143e18787513a545280de40f53fcacda614bcc0fecc8fd87f26313a90d65fa134f7af6e9fd63f43f0beb9d5017b69fcbf8655327326fd4f2333fa7f8035e8afbfa4cf4718ab823939cf286e251c48d505a5eab57aebc0d6cd1f570fecc62f8b8fd3b18b1ca78ff42d2d5ab024e0797d12536957e3b4ab397cf459b59c79cf6bcc40da6e803bd6b1f03e2e6b36741f9bcb1f2d8ad4b7dde691d09427456c11e1f43c623262f1be6c8cc8bc1e6a6d0edde4bda6fb2fe122d51f58d9a1d80919da7290844f59b4c3acd41d5f8cd5d53f5b599b9cc93cc657d8457b94d9cdb7b4267a57887a2343ad8ddc150ccdd94b36ce09e909976d971dfd0357d79833528717c14e113f2ed0319b84475cd95c8ec44e5a7a5bd6e81cbccae69c903d70d97e99517f7075edb17d957d0fcae456dee3cec09f357ee7bed9285f71f2a95ec3c72a75dd0786e8b77299df013dea2d7bc2d8d1dec037c4016f9df4855c70676c63ce037047bf936d2f976b4f6e8050bf468f969e965e8d5ead1e2d3d2dbd1abd5a3d5a7a5a7a357ab57a540131ba7bb97bbf72757377f372f77ee7eeeeeeeeedeefdcedddddddddbdd7beeb4ef32c6fef02caedaf405beeb87c47c5d29fafa7a3afa74fa74f5a6d31e3bd656489c20e0420001f6fecb1ade7148b082f46090c90a06e17097a9e14e0467f6c849dac99b50529d02524f14ed2b6961433332ea03ce53f30239f67b8a1249479984d5e88f0d3dccc45a5f46afd8c005c575840abfd2f9874eb140f3b306d4c32140c6a94f1c8a13773881bda67818175ee102162d3a92cd34b264f528720193335a66be248e8e794f37332fd769ad040dda7929158fd5b950a26fce9a339376ee2105051011fafa012a14275dd9e4efbc3449c769c40bbad339961ef191a4ed6b828a647974fc96b35748fc9e8279e9cb1d328ac644fe9a73119cc802b04895f41d7519c246b232e6ff834b6ecea919ce02a46a42b9579bf4062bdc84233c3d44e059a689989117ae1084495fa1ee5036b7c0db6459bf34019596efa9553d7f29e382037ccf3fce028ce962b8a8d4173bd32499d980d235faae3725dcf5f9e00baaa8ab4211cba539f7a64d01b45ffaae6385683650c2cb646db1b74aba6a9957a5b8b6b8dba45fb1bc8b525b551832c2955c2be1b2f52e36f32f9f80d47d048ae8f7c6572098556d3a65eb7e74dbcddc5f6199b2effae39d690545d670fe8a31ac8ce968398ad8ea8ae7d6aa5908dc9bf9c170f84dfbcd50f9049a4cb75d8785f138adde2463b3afc87703443bf2280afd7eeb26222242f69672077e0c160cc10cf3da547fe2e08a268dfe875030910948dc86898947aaa8ebf2a45759cd349a71108a76804444ca445a45a4ae295d9edc14d7ab7e006edf527c72639986caaecb93ae2939eeddb8b9fc5056bbf850d676971fda7249c289252ac5e5e7f65d9274cb25664b50453593624b19b77419ba7d9758b75e56323e83a4baa5cb934652b9a5cb139727f7db4697ace8053c9996a6d83e431e2a180c0c0ccc56c6083d7121ba731762bb97049346527c1eddb9f3d8ee6df7beddbb90ee9c2a76cb1897f78d2f847b772138db5d08cf8a312861886a0f7a4a5bd75d877b777eb7e3f55545a11552faf626392bc4884ee9db85780f5faa885446b7b987e7d17d7b78eea5eae80a015f7a380a1162ba479f104b154c8891ec42bc9bde424a079fe2f3f06e3a8fd2c12dc51608efa6eb78373db33aa583391f0c51d76c0f1f8b7121d10d7595d1674bd5910aa9853ba59060906294e3a828e6d01fc49060b652273052c1edd4110cca182115cca482154979768621ba3030caa22df00d1313544f3f948569a1b6fcb682213a1d26c671a28842fd938489d1d6245d30180c46082668524acbd51daa82c975b973a80aa1fb755d98233b0e16bd207261d25041e2f66192306fb4dbe782e896304d7c7e805ee2a882a98a46d51065f5c351058e2a24ca52115dca32a9929ef8de9f2111a9ba999e03962aa4db5b96222a534437cc915d55445b463c10c42441dbd3233e7c0ff8d3339baa3667bbe9aa21da3abdaf42a22d97db54f6d9f23795d9141061f8ed5966754e37d91df0a7ef88e52abc493c8aa92d5797f9226db57c05868809e36813dcfeb6d5ef986c2a7b58ad8ee927bbe36253190fefa1156244e7f4d28594ee72172be4f4524e0fcb57ce2c1ef5ade5a66f42a4699ca4881a27d9324e92659ce4ca38494ea58008ef5d88d0a6f8db7948ef429cb6eb98be99ce56e7b4733a0f599a241706c164f8ef349a465034990e5ec774f07c10bc68774053cce4e2c30367e78153403069faf6148f6d23a2ad39678a68a688668ae8f6bb912bea7c288b33baddcfedad8c71c1c41ac68bfafacfc6b8baa6561be38289cd4b635c5d3353faeb0fe5dd0843a48a8d2a1fca6a1edc76ce4eca52f954c65215838985614e781e45d7fdc2b1aba95a6162305ec404c51ce9968c504c4fd7cc243a20725b057322c60524845bc6bc6eebc00ab78c29523356c1baa68421ba48ba66950386a86bca14900f6da5543ec9948a05629231aeca03b154c1a67694245c00a57c9f2d39188ae5010a110f7e923514423cf81a06c1a4e9a771923c7229a039a33f5340b4e573bb0093b2cad40f5877209627d84df9e0ba9aeb7e144c01cd1b2e88264d9d8bb642da7a21a21d6d7134465f88928850b6fb79417a49125f8c88255704beba267b961db95906be186472c5cb15cd9b25cc1b26704b05a3ac3e2705f10a5c176eab60a538f61dbae509f642445b2a8e1345a2db7f09a22d15a78aa9ec4b904af5a3026ad7fd1a54c568cbf4beca87b64c168608153b719c288a3e6469f4461788f3a6727ab8773f5dbe294e71781defa1dd31c2df11ef9dad4ec9f4d279c81c393d3da2f5de63b23142def84af14de72183526c75bc97ce2fd91d236c754a3759bb03e4737b8641d41488f53ae67539c19cd1a7b61611e9eb41ebe2a2acbed5baf8a0b8ae14e2900ad6ab1824dd7a414ad23525c7384e1451a87fb5e2675721e955c70cddfe0b126dc52469563fc615c3e4f6450e251eb53a4c0c2646136383c415bd20dd3e424ae262aedbf9dc3e4c4c35a482c1c44a1822d8056292de569fc1c43eab82b50a76faa1ac7e177412ba1c278a7368b3271fcaea97395495104bfe71dd86f1a2573a10635c1626061353daa788d4355f1093ba86ae5eb82344eee7966292883467f45120963031a4db30311b34364888254c0c26c6ca78e8108d8787549e4c43801a3e7a86a682b2a08621e9267982e8ce244fc06e6912c36d9318e60dada006d610390d8826b5f7a02d4acab833f346c6e701306f589fbf61de04e0f338cc9baf26c6e765ccc861de749fa751c3c6bc093f7f63de943e5f336b4c37e2e771cc9bd3e7779837289f27c0ac49f9fc9d372a9f27e7cdcae70f306f583e8f8059d3f2f91ee60deaf33b12306f5e3eefc3ac497dfe8779a3fa7ccebc81f93c10f326e6f341cc1a99cff39837bf193f2fc4bcb19f7fc0ac81f1f909cc9b991b007c9e02f3e686cf0f316b70f83c06e6cdeaf3199837333edf83b6b4cf03a12d1bd7e1e58cb9ba3593b8b38769f47d68eb065bcea789cf8644e37dae8786c68644c396a626b791682c117c4b13d773fb35c61be339d4d15b98638a99c3a8b2711d7438933ad8d0a1c6351b3abcc9ae4123004d87d33c87d7ae11802d792e8de7701dc63975a0b1b35739d0c841c6d81c93cb2d19c2a2e7908c914d149431ce1b63e49a985c0a3826b8258e70fb3818e0dea0e4f601b0c5edcf24b97d189608b73f0ee1f67fc5edcb5871fb31b0db8701c2edabaab8fd940f6effa507b7efc283db6fd1c1e57270391cdcbe4a1047e472515cce06b72fd6e0f64d9c0c6ebf04c5ed874fdc3e1883dbf73817dc7ed782dba74edc7e36b2e0f64fe10e035cfaef6330fbe84bcee7873974a9e57c7ad55f0e6a80cbf978c7e9cc7add3431e995a9a85a139189a847931c2a20cb5e332d43c2a49d6a9936674a53120dc010e6a91aea886fca103d18c711b97d5025e5e7c2fac650dfe87f8d850fcc197d22e68cbe07e68c7e4c2c62cee88360cee8f3d5c1dd20de50d770bd07f390784336c59607be402e5f8a0671fb5eb4957de3fe652325e919c4b26317898fe68cce3c18116d65471eec7b99412c3976e2c1527e342720873928bd399e044a2997f4ec31d7f96ab932f3bc5c99cbbe1cc771b6815c9939e31a7c8213e2463971dbac0896dc0ff0fcca50cc2543805d7681b872c5aeb9653d078a4b3002186e592d07f6ea8b2f32efb472e50ff09641e8ade72a570671fb6639007262ddb67abb11e4466eab2069a4d610eb164862a8244168f896484103efa8140670e8086a28d510eb453108bdf4dc289241e44ba90597c0c0e772244d3d11f9e68c0a4a548338efbc35076268533ae0c3877627b4299df02a57b13b2a0fc1f3903ca4ca587120d26fdb8f999e8b72a7163d63b81f05c3712ed1220a17997208a43c553fc9f0f36888271cce5e5d8b1e2df4bf1a623633858aa67d29b5f378a8efaa8e6a4b095ccd962a1601fd992169889c6166716ad044bae5672c4340b3b467e77a702c10f9ce944eb871c148175c64781e92fb497a0197a4050a84908cc174f943a05cdd90134e4a3f4eb0c185ea80c221d7921b30c1b5844811a02eac412709c10a9f10d05083b0e52545d25015aeb86207dc922baab8d0ab0a2d842fd7a9bbafa802a59c43a2eb670b207401fcd90286845689bc4ef238cfeb3a9751f7a3240869e838269c2eb51b160c70c44754a000e868bc020b3899c7795eb7fd082109adc1ebb82bba503b0a1bcc19fc7e7512b59d9415d1242542c8624b5a820328b48ad3357c0474cd9625d59f28bcc0fd2c718519ba2557b48126bdb6684118b670814bab57b4e1f34e505d1409db2b09912d9cfa041ec702aeba90e05c516875082ce0aacbb53dd1bdb070848513697862e36c003621890a5db001e71d0d6d41c51986b6a8020543c84176010b0c9172548445108494f89840ab43e08176010b0c714fcbb62e501a05e5a4bd8ad4232d48c0042532b0c22d190aed28a7eed751bfbaa666bbfc21ea146204e60c3e04e60cbe104ca3074aa499922024b92310cae2d726c417912c0c47f0da489f8ddaebd841e1087e86d48b6f25e927ab1cc765f58809931b4a2e2643687131f1c92a4b21d26b07425b29e7735091ae399d8f72a62d95bfdce58c7acb4553a9769de5a16f77aea7858080744dcae543d1ad9e2f6988880e4e4543447e2edf08da715956437caff83b5dc31ff2ce9f7919559395dd65943159d951e30e9395b1586c645719c1c9ca9e32664719b9b9ca7e1aeb9cab0c013a18b85d19e476df673db073bb4fdbb17ea221608ab08639a60035d0fef81547d3581a4b7e7923df8bec59cdb226d2ad17c96f6ac559b9c7bce1cb7ff74f0beb0dc4f2d376a83b935421e9969d4473f2cb6a2ab33cf4cdb4f7e81a5a3397dc00c9e5331013e956ca90cbe522013993dc80c8e51e965bcea41e3a7233ad7ee2704b1997af8e2ff40cd135daa5973b663ba95795086d31c9734e9c7a9acbfc1eb3e793cb07b50f68dda59f4b84007467a8a3bbd9bb4eea271debd58a91bac8e51bd1e307bf8b744dd9495da3d349fde4a5690e5a69253241251c910c018d3304d7fc72d264f1b78a7267922ab86ed949349752d4b75da55b3d288bbf71dfce1307f7cdfbb61dbcd835cd3d68eb4dcf75ffce8d440411bf2cccf17de378ebada722ff98b93aa428d29a24d3d79d3086703cd990e6f9ea0656c0471cdfbc9989f2dcf9ef5a3d3ffb5ce2760cba40eae2b61373721768f8ea583a7867c9769ff7da3a7d0f4d607a1f01dd3abd6fe8bd6ff37d0c866319a4aff7f0e258f280aff5a3610ed0722510b91ba2a4f0a48c41e845b18c02a6111e87f69c9ec4c99335e27d28985b1717a55ad1560dc17f947e21ae680b059ec31f2af82ecc015a01881e38f271da82329ae5715b083411cc6c04347672103263888c0eabd7953504a0c3e55453a59bc1371d20ce2c9600dda9e4ce2c9428e1f618f19ec44f3fb73ba6943f99996df79d8e5d1741afaff76cd08b6d8754cf447ad548749c11bf7a15c49d080775a3d803e7e40bb19c43dcd60171b1582cc6406c7f7046771bc794964312b9934312c951d61122bd73c90f906ebdc192289edc253758e2ce255134b933ee5c12c514b73b9a377cfb9d15668b0606b483254f50c18427e476b95e2d898206a8aed96c771494f483746b05525d2e17096a4f1227b5274143662ff9d5646c5a94386f290acda2aecfbdba2eb8463f1b3b2d708dee8e6a7d559738b350b2a495e9800190ca692bb3fca293eb8ecaeea87bbd9ed08448d77545be107bc5c55eb4d575d17de1f6ebab3b6a835872b172e6e8705e7447a7acf404111e1cb933090e90c8b833c90ecc703fd39ca92da2260e2198c616e55c62ba99587c2527e5006e2900ce0885248102e0188269f0cbd69da799383090335bec4359fc59c2b8fd71e2e0a24963c2cc9ad3575ea254bc9497f4f65918073741e19aad867b9feb0e621a5c6f33e2d497369777c0e99511285fd951b1546817d360c6c13d4c839fc49cc14fb1651bc138504ee2c6edb892e8995eb860d45a6badb5d65a6badb5d65a6badb5d65a6bad2b66d2ab79c716375b391185a2412cf44308c6d157028c839b0cc138d808038c839d308d22c6d1764e1a3c9d5ca6c29cc12f9b598bcb2f621ecc15bff4a02a2e1fe42b2e7393205cfec1a5c2bce11dcc197c3e3b611c5c8469f0915c7e6d72998a7b4b369239c2d5212313638498189822c0c0a88854aad49254ea45c9cb8bcb162e2ea82428548b162d2d2c59b0b0ac60b1b2a232a4a292428494149421a0a09cae389d4424a2681282c9540a42a9145a1186200c043f207c9f5785e77554741d7784e3b61f6c9be6034dcb7a70b3592b0fe60da57407f3a6838c843cf02d426d0f20bd622f38d1ab4999852c073161cb0dd0e07a412857b84dc420daea81b2782cb97f3fc74b6cefaae5a029889ae51f0a137b1b4bfa9c1e9044ee93db7200bc7d7e0f39a9edb3bb3bcea6e8e71df9829c4dd734df862d074d5abb1908455b8c83c9e2f780633e87ba8c0a72d2641b4591b67867122e983057daf4250771505639a8f2d19d3078c021ccc3d11b94a0848ba20be34e255c14b9dfcc417c7141a5c2bac305a9f74711f5a61250cfa91ef8a612c073f93c9f08c4f36e7f04b120a8b789a89739f17e5ff5de57400f395788305adda7ea1ce680f9f755afc234fff5de0ed561ce63f933cbb057b65cf5a9faa8777eb52fdc1162ada71ecc555e9519533b645e2fc38133d421f3b73ce6f56f21daca622c6db1dfd15726a4a10fd54b981f5417a242efb107f56c7886b9cc08f3169a9fa155fdfb3250657dc05c4565ee591ff4bf674b7afe17f0d77b23b5e5e7d0f53e672bbbf6f06b6b4bd49541899355af8ddc3827ab5a1ecb96cbb48c3f825c98d370c7efed0ff0c2bcc31d30579dc31ddf4df90073d55587f90c77a06e0973d5597518d687aaab47c2f4050d77a8ac8f7fe6d5faf8ad7df9032c7f80d7c74fffe3f4f7cb8c1ffdbaeef00cb9aa1df62087f7f84ca3acafe7eec128654edf9f573596dc85f18fc17fe15802b9e1bf965aca248919dd99b3ea3125d791feff2ae88d25ef08afba2723232313fe70c36f78873bfaaaac0ffe4cb51c634b9e3bf31b0e33fa30ce3bc33a873956936718739931e6df2c80583f12e998b9f76f0201bbde5b826ebd2a0d40b77efcf76d20cf12c80d42af0fd5ab674b19a7d7c2058c6fb9077300dcb3250e996d98078078a70f5f6dea13bf7badd4677778afa7df6f780260de0cf02c7704cb1b652e03e4876a53e1ebbf54f83eff25776f53a1dd614b20def700f085e1cbd82095f519fe0073cffa80795b1f2df7c620956d6df90dafa10f333b5aec946183d03b9600b015071b845ed502541f6dc957a51acb21770733e8616001e577be676bafca20f4aa6c29e4863b28db6a6fdb923e08f568ad30ef48c4facf90873e0284cc63d2e033bf0984ccbd2789c5ee0c98853f78f7f7c698abc612c855bdc7926fcc38eff15b3e93c490ee71388f30f7c6ef25c7c38ef0e2f55417e6efd1e2d566b5bce563cc6fb8f5117399e3740d77c4c81c87e2a0eab16316d0dd6badad95bd592a8b4303701e7d789739871deef02ef36f07cfbc5e2973c3f308e47e0fc71ffae3c08f3231308ff18fe5901d3cc42d6f388c0d52afccebf57e43c97365f8c6c88c338f319639f78607602c81dc1ba8d521459179a46b9883650520ae9e850ae0b92b1ba4eaa8f7c0acb68870c7caed61b21562906b8a26370b2441770edd998510b670b5f839726f00f1671d2d577d66cc9917a72f2323f3fd24c9c193243978e23205a124693092f972663eaf85af8ca33e3cf7effbbe99f73033e6bc409c5140afe667fe143fe6f3d631c59687fb037b9eedd12b1cfa315839cc3145f6498120da2ff57ddc837f7e30b9f340ce3e1488a19893c9ccc20849eebc1194bd1d7d431c6ef0c103412f9c22fb16fae001e09df26c0b917da459f3740a620b61222da0de986ba107f88b3b9e471fde7fc36798e306196f94390d7da8bd9279c957e638e818bfcbd8f2c70e2f82eff7ffc3c1dba1917cbc616ca2666285388edb9c11be8e9569848f1939a6116a7346588237fcb7813323cc6754303e33ce0b80b1c51ec6bf0dfc38ef8c3d4e2ba06b8aa83930c694f7afabf55da803e636b5c3bededa9447dff296d3d7206cd1e3a487fa7df35caf6815c4b71defd4a289364c2319cf9641aef7fabfebeed50a4ee195e0fd4e4799913b42f4fe8d32ef910360cfe755af7ab73ef837c201708aef1b6bfdfec3f6a8b69dc8dc1b4b19f66a98c3f3d828f4e19f2d8384af23873e780fad8fd92bea437de3509c1ec7926f117dff6ffc01de5f99d731e5c317fe7bca07eff238ef2d4ecb8ca97a1d5214b1549848308f59b9538b1f1ac0a8543d5263905e4d97310b73a02c102bc4d9ab9e1e30b19c48934f3abaf0855252fd6c133eb5d66aeb0dc47212d5233d74403d1011358cb6b2f7a83d3c24a44f3ccf761dabd35db43ba777dfd99e9d87fc4e1b8f8ef8ad74f1d5eaa0b01ce53ce469e4d99e8ddab3f3e0bed954fd965d3c8faebb688518d1d9de5d88f86de2d63d55bf7d92a96a534088dfce43fc668518d16139ca85942e9e070a0b044edf6e7a36a6eab5a7fc6329f1902c2b5739cb4b2f5b28554feffd43194594125b3aeaa40091624bd7ee8d3a261e8eb828f2e40c2f978b64794a0a0bcbc843a688ef2ebe53995f591979481594674779268432f290598a0793d98518d14939ca272924c5a68e62539ee571faf693ddd93192ca393d88499e2c0f2de6022fc84006442e172952d6bc4f93a70f716d2fdb254ef294355f8a4894a0220949e8e2648f28df893c64970282c92ebbc6c48b92650bb51065b5500fded19da99c495925ffdcf9799487e4461eb207f7409c24017a86c8498649469e100421fcb85ce424992c279269b4a1ac5981202ab9c1123d3c3a3ff04e2536309a1e1f0495d800d683e711794cbf5ecddf21bac6b3d5fb677b782310cffb8f5ecd87f74620bdca6e05f28d3dc25adfe3470309c714dff32c11f506c96eb529fe24b3093e1b7f346b9ec71e5c88a0d7430fa02dc54b940331a5a3edd42ac4148f4c7bc643527b6ef34eff79631ff1bcb3ed23bd82758df7926dc37a354f6d0b09358c79d239737a18757a35af8d958a1e686bf650510f47523c3a21d9bb4f724e2d528085db63d2190ac13db3299d6c27e579160826b34f72eb2c10ca6a422c279250c3286b5e1b855a8807e26c169aacf939279dcd936548c75387643c5936040fbecff4aabfe6b2d2b25eba3a9d59f5cafe5fd16e307c5386e8f32720115566b8cf19a6944f55d8a76fb0ab64a6df7c7ae5a214296908ce341fb6ecc33d45935deca3b166d9c735b30d75ca6a17fb502fc43588b40a6233558358cfafdba98b9bbb366dcd969ca8f5e7e4fbe69c73ce39e7ecad3babb479cbaad65a77c695f9ccf6b46634a3cdfc3927739e12df9c2959aedbff78d6c07c3157b3c5a3d0edc37c3161b7df2e3d98acbe0b1065a941cc1e7703ca466d16a1e8d7190fd9dc03b19f62bbead5f60a04316b1f1ccadaaef60431a5d3b7fd4359dbd63edd43053951d9c939b3591f74a8d627986082092686a0f190a538b3a2b9b344a9b431a5c33c44f8e28b2ff83ce45741d075a716eaf0eb37b95b9fbd875caefbf19c9c8da91dd9294fcd32aa846fe62082aedb9a5328c31190b809356071e4022790f8270b2b00e21a24e10a2f266264f4a32941418fcff604363c29e2a0908228f87453e002b605178484b6d0020e8e9c30052b887a7a101b027ae12788a4220ba1074c5ea72c92f004124a162fe0e2956277261a62900517f9992169e886892115ee081a0891d40e2980128a54b6285a83d08a12a67004104b4f218991a2be82139028a24c882dc1a89a610922329b411741a456051717625b13c8b0041139a4c6880a57a820899c5d15b278c5c82105182267dff094402185263ca107464f3441a464054a043da10a2514cd2710410db1d92f204190d1ec1f203c5134db05495e0822a70ac0a00521951424c10649e4ca10efd4529d6fc8ac020f7a5c64fd67533a1f3791841217f959fa9d212d5eb0828bacdf19c25d140189f4ecec1b3b433c1b201144566b24e583f64c9b7748d805144124b54632cbc3a2a448148866915112865a9a91bec842901358a40156d909254700ca380746a4f8d18ab0a0e2683b2aea428c530210a4f061410d7ee612dab08518149c2425ad2a07191df921876c6828226bf582064d82c82127160491f4b5deb33bd3085c483a2287743ff821a915a0d0e4881cc2b920c94696e241ef9dda1d8ec20fb048227786e0e043d60f11bff0ddfb6777e6117cac9044ee7c1fd2f5bc487acfa6787807efd91d7e91c10940e4ce90161859ef1db43bd30a4f981022773e3b644322ab8c215c133e7da354c181041f0c91d452bbb31de1c788d61c1d21fa06937346e584e0434591a619a0c80f5c243d0f1934d6176569ddbc993abdea1cdabf4fe4805ccdf2c6c50e90c81dfa21fd822649a491ed3ce4a43c240ee531e3c620f56a9a1143971bba597d5525c4ec65909a93d3ab164248dcaed3356c8ba897b979bb710b7370f672a18e6db39c11a06748d3e1d956b7a1a1c9c96e8347523af5f43b7687e3216738c58451161d79c80d0862595ff5558bdcee1f51dd2c7b9d35dab37333cbb41a88b1db015d2d0ab16665103f0e9cb495aaaf162841886c2aac610c5d12a0004b22bd26866002a46f0b2ea316119018dab121c2101239a42a01ab597f130a449e20810c451396201432114313a29215825005d1ace0119a686234b597f89508d03344329f7a667c5355021890c8211b1239c54c892924d948821049ad9154c6a7d9851640e4ce10fa21aa131c91d4a28093b686d060c30d62e4ec1b294929e831525901296dd138010c49e464821248246ded18e1c161a0c2082e923ec583a4a776c8113890e003227c31c4459d78c10917594f3f6b507dddbe518225cf3595c412e8a23cd90d51f05c77d23388e58fa8ebceb3846e8b462f4211150d15d970228dcd22cada6294d543454497b638a4a42394515151116a8b1dc56e037d40c4ecfc33882577d4ae9bb99c8084825e7c974c13af9665a3cb2bd35c5ea30b14bd6a940f9f5cd4e5d5354f5eb5c605c8e505645d5ca01093cc206e43b7ec9e88a50b900b50d740d12d8ee4ae98445ba238445bf5484727a32b12dd2ee29762ecb6a886db9f0c74fb1483db7ff9910bd02d4f4d6eff04a3add5e97582c17e604ac09080896bb842a20e66142ba3d3135ac6aa0114aba3798f6e2369ddcb55ec66ac25583f2c9f5e75768aef25cb8787e98b2fbe6803c9592147d073dfd9ce59f0a09114f98d35046292b4b27cb8554ccb56deaa5bb17c3a960feb75c9158cb656462b2b3023d8ed9517bd6a9612279834fa2b23da622dc1f20103cb0923da9a24b732bafd15186eb37ce68c66b97a15633121ce5bae62b7572f9fd7ebf6af40af1726e3e04983b92dcc9aec5d86dba79f06d233f0e4daab99c52d67667019a8da1ea4d09d3078b887340f6f2b67f8ea0954e0d3356507bb250c170c17147c6e1f460f0c091318b4e6e7ea34715273d0cc19fd0ed60d61a1c69cc1dc0d75b00e76c4b6838d1d1218db6ec8491327dc0d75b092e7764375d2cc19489aef47394debc0ee758c01bbfd187d0ec9edd3a118496e932006d0bc991e47434313d288622f510a63c060d2e8c77862cea03406500c184c1c9d1533c613f3a613c23b588d1a4294f5151515151515157d5ec725c170711e0c5707c3c559d7ac307c60fcc0800246d0bc61954b99bbd2cc9b994ae5a438081e323b8f2542273b6877c2673ce1c815b93160e24bd4e501ba523c980c9f1db4463890f2e16ae72497eb4ed2f4926b42ec6037906e24dd38a22d71e846ac83a51cc574f1f4ec3d2a079faad5749deca6d79bec8e91aa62bba4ef9c6c8c87fcc03155b331556b056d6ad6095e273bf879d0ee18995607bcc9eed86e2823c1791df3d6b062cee8a7d8142c2574ed6507bb217443e886d00da11b4237846e1c09ddce32bb2a1f03e8e4d9525ce25a9413b72d14b73b1891dbb6432a523bccd1afdb270245affa4ec00082f1d32bcd75e76d26c48d8639a8ebf66b7a6edff0a25713bcf164ce1b49f3a608518789a3be4f336fb8b362d2b8dd12a2f6f9d0d610a2ac696bc0e60c14d7bd71445b37384ebc71446fb850bfebf66f1cdd7071f3318adc16bfaea19c476bad1fe538ee9e7d3776618eda8539b8aee3ce7df6aaf48ee34431e92589b23aaf55c9cf96759e0b73701c78a94d05d9a823cc735d1b9a5ebd24c170d1960d8e134514ea2f2aba291ed9c183560838851c913dfc4e68533cc0870fad90f0e027b9933db42f202699d9540a1c8da4565746af288caeeb3a1b2f1b2f1b2f1b2f1b2f1b2f1bafa41a4949318068ab06574511e5c500aa11830b43b7dfc1baa18ea849d71c711dec37c68bb678c87e36f2903182621ce91ab63aa4281263e8a9aa84b8d932554308464f528c0e1603a84481f5aa91f4aabba118405d3391527c6e3fc55584d411812b3b583d81587a46497ad51dd1ed0ff15fe8cb1840305c1dac13c32d6300ddee508084508062d0e0f6678aab84810244e79cf192645f9e744dc903c3d535e54bd2ed81d5fcdc09a3a936002ca4d47a0b7e55b325978cf46d2cf96ecf4c5f5635d3a669daa75dcb461c9a650be8fe1da7c1aa5d2bb98bcd8659673730d4e1bdfbecb6ad6ecfba7103b96fa3f76c345d3cf8efe3671d239d82a4fc9075df67f97b4ad91251ce71c629d6876c7be54dfb698b465c4036d9877164dfecd6c5d5c05047ca33eb23a594ddb4a2e26d29efb6155bd66b3aa762ca9e62cada89cbdc75ddf9b3cc853ab67b28d6b469a763f8acd65a3b53e6d56ab23e68ef6ae6650d5a1acaea977c4d2f59d1722d9c1fe00f10c7d47de3be992cdb14f7ec38db33d34ba7d774f0252f71b573a18e7a1f265bd6e3984cb62c8541e8e5256e566df9019ebbfdb3ac69dea8dd5a9fddfaad7ed3324e6cd6e4384b79c137bb86cb998d1c6571ad767267f14d1962c615cc3acc51392e47b76dd7b43108bd99c569460147db09f5a1d46687c9842ee11de52863bffa4650dfd8a1576d739c88dd41fdfa5129a5f541ba9e8e3eb472b5d572bdfa8ed3744cd5cf1c9b723e8a2e6c6c0650cfdc23758d6ca94faf3ae8259f06f5ea75bf976d9b323167b0b51dd4af255e1df4fda37c66326fe6dd01e5fd6a02b1a449350991bae86729626105933bb1b002c9b577626105d0b519800ebe3625f8e817a210a67b8d8439e3455b28ef77106d9d7eba7714d1f230d91dee821069bac7e4694c71e211d435594da98d089ac639590bd82e97839e87faefd48824970887746504d1ad460cddda46fcdcfad218da8ce5ea721266c238f8b6679bfbbe1067333333333373bfe65fabbecd0e47ba459328ab6fd37d8826d116ed69968b26dd3e67c41975d136bc688f8ba98bfe5c9736529f7ecf4a860da7bd046d61e4e866efdb74beccaed98b19e54ec7b2bb36faa0ef3eb34a5fce77409caff33eaa2da91533fb696d6c2411b9ae9bddcb21973e7bf70e79e85bce6c9b15b597dd01f13eb277bc7da66b92a054b2f77667de355cbd94f2a53888e0beb55e3a3e11e74b063283d835e5c4e24e2ceef692b96271790e5d1fccb533e639e7ac3434b7d66a7d64e798d9d2993983be0be23c3df75c7b3b88267b5016e5ee9c38e6a552b8d5969593c22c75e1ab21aababbdf83cd0e36ba49263366cbf110e6e1da30d0388eb97e5ff7d7fdf440fad1ab06c10e9c4d5694456dd8ec70e7e7d9505677af56b4c5426c3f94122709c390894a968752defad12863c9397af4aa81744d686a09aff22f54094396b3f551bf727e0b4b96692bd3a485394a5779ff0710152b003154a16109b4d5824a183c3f852f781c8a527bc57ca44795ef1b7fe4e86c0f205de38921d875630fef3abce3b438f6884fe2a4688d54d3b97436555ac14a6b2d952bd0ce1d3547d735ddfb3f80801f6883f8e0fdfb678ba8d7cef4aaeb55f2a3579aedf10368b5fa5128314786c49ce912351121d9a5cf82fae59dde8220bb9d9da24ffb9dd92e2bc1149fe024a39447d4f7a11cd9324876bf6bedb344af988f288a2d39933dd2111e877e44f0458d65ce0d75b44f2f315e1bc71ccae27f9c39b4c535982c3e0e2e1f44d510bdffa0b95d779cd6726ef6d79cc1d78cc4b283384e1451a81f3497b353c4589f933153c4d0744dc92725aaf48a6fca4b51fcc60ec28298f2b283442550e8c9321175bf94915ed33aa88b6ed510ea235d33956881f44ad2455349108c2edf76a2d157fb744d0a55d33700b704f9686614c81173ecfa50ae582e66c3e96f2601a1e162c62ed22cee20ed88b86d968f7ac5a7b9122018a59dca715a6ba27da677454669a76929eec3b9dfb391529a05c9ae1644bba5d24f1262e9f387d2e9125d436d11d9a5ffd152df3dd0d1ac8364b7f40e75945e92b1a9ef938c019983f8d54125bb3aa88b3492cbe7239089f4e701992fbef8e2dae81587df63461bcd626d3cca3207f312f5d5a52f3697be288bb5dbf2ef5fcb68430305916fcb4b1a1bbde2b71ca7f9455b1d44597c185ba254b6fc2a65cb15cd8b2d695c6c6973739ac5471551d164327d8a371dcd19fcea02b10113025c811edd622f9ac56c86b90a03f316e68a1f44e9fc9c928fd367d91785e565df14959f3e51589ef22f3b1db3cc96ce3eec035e1d945d1735967c51c7a1a871de96715e96b1642f5cfeca5832192e5f85a170990a97b370f97c144444651a7afeb220daa536e543588476351bda99b7120ff42c909a6f318425dd586f2096eda3e40544cc59e5c66d94514f5f00d459fb3037d0e57e0129f98442a91024e92cd4927f27d5aac6f5d55eab3885735f66666666661928559f9b27cff3125f56a4d64aa796552dab55cb9ad6a65f7c516badb51af96610e21cb242915b7265b522c9a5e72e6be09b32449069257120ced7b965d58938cfd5d0b9e2d99a9d5a3659756e3af86a0d84e8675677422381ae294f63e374a63fae1fca9d2e671ad4ce1994a509976ea301e68a5e1b67b3cad9e4d26748b8f4ade4d25bc6b103d3f8a5362626738b4b6d2e95e1424626460a3131305180815119a9542928a4522f4f78797171828b0baa090ad5d28496161626b0b0ac2c616545a548452545092929284940413921e174129988a2e9082653c908a552588430048940f05bf27d9e12cfebb6e83a2e09c76d5a6c9b9685a6d1ecd2cf5a2fbd01e60db529800d3d01f8b7d961de4c3a6fd893c237674ab1e812713a9f88951efa3a86a99d4023419606666eaab1e078df77cffbb66ddbc4979aab076579230e65693f9dfb3cefdf9765d90a377a230e8b0d45da5ad1c4ca15ea45a83989bceea6a8977777cfcf7b19db058eed3372381ab15aa1501b4572facab7d3e9b462e9108551d8a7d24035d6356546c4bd4494156559967189339dbb817a88b2b473da5158266d5a5a394ef74a376d2334ed352422750ac1958be2576cea74a476d1d6cb4d8c14dab27d9a4845b3b925237de33671436d2e2f5177db2ed216eae52c63ce8bede971b9f71ed43fbe2fe3243322daa23fda595e936aa993cd0943300c5d509e3d599defde3dbb83b2d4653b89b2b4f390464eef224eb4da3fd3c824cde9fe01fa832564445914322b645cc8629aeb3b4e7fb1d8a97e61e5d94fcf8856c695155b72355663355663359611d1560da22ced1c278a28d4bf5ad1d0644444b435c922a323a4a49b692e16186d4d321baa4948411c278a28d4bf5aa1d4a05bda5c1aa32ceddd587faaab025156f5b9dab9f175b57f1c485f901175cdcab5d3f0f26ca6a5d33c7146941111717aca39f400cb533ec097e52a31dafaa1adeedaab0be86a1c8d5d8dda5c149a8bf27275517e14141494a3fcebba67634e0766e48966a77fa77327ef742abdc4e0692c33a2abc58ca8b85c97e660b1a91ccea6b27f25cfcb32ab63da01719a251b595cae4bbff330d522bdd2522c638a8568923e10ab508bad41da5f602c27c5f2d279c8148b4d01f1bd749def25967f6fb13adc4b2fd91d91b258beb39ce593a4e3244fe37657c6765d1e67e9df754affec8e9196efd4972ccb5bacce77ceee50168ba5477aa55597ebd2efa3f72ea4feb342e8bdd3bb32aab8eea732b2eb6adacfd5e6ad316d88c2281135a2489a76204a0a2ba991e95fe9a7ea85f7954ca497b94eb6c6583b3dd2354994e3441185fa572b1a9aeda54d27d1d6243be6f2f9017a5d2d486421da325d2b5d3bc3680bbc762662234d9b379c98238783be90156546595216d35c9a4f46c4494819516b62113784e3e96ae38aefe86e363443b76f435499d9a1ac974d9f384d29f5348dd21fe015798aef1f8f285144d58dce0b3a291dd535cc26b157a84c6cb157288be2bc9722773e47c5d3e928a6b84fb2fb694c7967db5c88e267455369a4390585e304c7eab2e4f3a850b2a21b6d340d4d6f233782bd1269682e0dcd4a6cdec224dd6b1a11b9fdda83029c803694d5a7744573b1957ddaa01791ee456d4784a3ac7e10776cbbee35bb5717d411e982ba97e7930211c507e50428ae7b28ae49d4bdba97e7d3bd6ef742d9bcf0d5273427684d5e842efd77744b7a06faef3eb415eb97997432a2599fafd949cf20961ed0a53d3ebda2ae39837e2271f843bd6db95e515a2dca90d1a52894ea458869a3a1e48cee89e84464f473fb2726b3aa9c9a94e245f9b9a979ed3c646a66d9b5ec3bdc37913b6ae6e68e7a6564448fd3dc51592d77c4197146474f88cc39e18e38a339a3515c283e3755c7d8f6ec3a5976ce1e9d8a4e48b7bf9d8c6e9f88a8d531af664f30caea13d1ed2b21b22dbba4dbe78e10dbe8969c513744593110f99c11ca4f7352c46e9f8fac64ecc0486ecf1ce237104c7ebc1af945a457cdb6df7d9e9e7f7e605d43d93559fdce324ca857477ad55cc3d37210d3402c573436a66ad670e7cbbc327180a759a39d5f9a38446f6e13870a9d351d0e14977d4bf033de8af9c534fafcc33418070b318d3e55d1575bb637739b57c7e24e2d6e7fbe68cc559f5bdddffea611e0f6b39a9b9f1ad707f3268739438871c8601afd1dfac6ed1f9923c8c8c418212606a60830302a22952ab524957a51f2f2e2b2858b0b2a090ad5a2454b0b4b162c2c2b58ac5cfeaa5554520c9092825200149413014e2771075134e130994a37a552388030046d40f06b7d9f57e379dd8daee36c70dc5663db3401685aa6037fd5f525cdad34e60de5af7298373d67d4f357332a7f25c3aeba464141117576379ddc5c7c54e3ea349566ad385a6862aa6063d38393db57a11f1d6d986bb53638363b3811b9e3d08d3ebb41eae52a378ef460d7d0cce26cd666ded26643892dd2d60026ab8fc5ed6ffd6c09a20d4d1533dab5822abd1277b039e2bc000524d9b571f5be518aad72a63f6b21524a6be5cae790f2a9f5c1a7563c17eec8516ba7527a93bb3f430427df9367d5abd90e44eed90ec4bff39a6c59d6d5fb6fedba199bedd9eb5ffa6576cfd2643eb2dbb80d44ee38d4e6c7ccddb6d3d8b0e99a9965e7c699cddc5ab7ec5c7dddb65a6bdf3953bbd8376bc4a9a40a4eca997489dc7e90a2265d4c2f9a1839e9bcd75a6badb5d6aad57fd65981341b892517551688f3963db4fa805010bc15c7f7ef25bd752c5d1cb3cb1d21965e0f82b56402c7d92bca69541cfb8add1537fad34dffbe97fe79610e931580484d7cc1d99c38ce6b5a956211dc05ed9cab8f0608ea9c33c21cf39c779eb9dc71ba93748d67393073b98f721dc71ccf9046b47351d7cc265d93d518f1cc510f7151af8c7a88cb89d4838b322a1ee1fbea0968ec0734563f13a5b56699a655156c26681b370372a73806a93619ac22c96a56abc82aec3292f66ce423331b2b57512bc388a670dd397403a1a33b87a4785dea9a37acb96812973fb7e76cdd7978ef9ed37d863988f0008fefda73b4ef1a185ecbd1ecc7311773d267b988b23a21debb0efc07fe7c409e10ac0bf22ccf90478ac7f6ee9d15422799caf1420f043149cfe674b648877b2a6752d60e0f39296b0839439d14b539fcede87228c40e67f999d52c136546239319d1e56bda3524eda8ac441950f6fab959500674f988b6b27345ba4c6e6335aab14b7e0c6649978f2eef6877a9909a3d427b2da22ded7ca4ec48d39e6542475976cdd254a2cb45944504bb250f1d959430c1083f2e1e5a4213262471f11336a08189eb870888517ceaa22d94a21774e122f994fed05625aab65cb9288c161d21cda4180f5156bd6de79c4184894bcb4a44e7e521daa2ae3ac4313391e6ba13c6908ea77609896fce9474e86e9fb4354f72b4157ea2be7eb9a2e1442ee4b828a6c4a8544c15c6a11e65cc90c8000000006314002030141088c462c150341eadab1f14000b92c44a76501aa8418e52c818430c0104c000000000000844c3040020ae3fd620dd612fb66963cf813bebb508f13e51c45bd44917af9683ee8a9347c0708dad824965686c12b2c51e98f889b402b358a0f2ed8ea84000fd970c8b17067433cf5c20d7090a4b3a0da716307110b65439017a91e70ecb5538fe9ad48480f6ca9c63ea18332e4cee3a26e125313aa9c35aa666280208b42bf2ed6eee5475e7c9248b4b9e4a4e677a3c49c9096c031593b5924c49ae60fc72817758ceac6b1597428a5f00437a295b5b6a8c37666e783daa0a5581acf339ddd9c00e43b263bf70a19ed8d2fefd7aa37ee902dea1f22ad121605378ad24d37a36571ded84340596c19d01cb257a87b5138644fa966aacaa1d00be1282a3866b40ddf054466428d49cd25c1c604e8afe7ea3d4dc7a55b5ca23665de655f90c4bb35989d847f95dcf77ee90867cfec4013b43b2228a078647dd71e9e160bd244992d001b7ee0c9166f6951106c3ff2216784129cfef6790515b888213bca58fdd5a724287841a562060400f375445e86b9315e2ba1f3c54828cc35fe4f7ad652f540b9ae0e1389f63aa0db382e9c41d203eb4c68b86faf5719c6274fb9ce911593064067882efb8d4d61eeccf7e38213b0bed0b4741e22540d66afd89566742e3c3305a6e4787184847e5c4950baf4fc357104e742997a561fd815350092bbdb03eb647df03972bc3f454124912754e0005c8874b508221b8947f64be4e2062b8f9d8013d84f20b8674d84d9fced69877fd9ecff8a461f8d96613ec3e5685e72873eee93b6d762aa0b735663730f11e1412dfa1aa65790de1d65d46879beff667568fa635d08db636e5f1f34e318b65f4e612689ef1d434745ec169cfe5d6abecfc10efb14adea1f68696a523ee447f20f1d22a600621512e02f170a390efa5a2c5421f67f24cd8f1c0cf651903ffcc161677f74d05fb8023772fb2b12c24da54fada613af954b0ad4243f04561784bdd1ea7151d086708634c76e1d9b08219058131fb863bc1b3b8eb8fa0cbec7e0fd3843956b9fd7864abb8e5df36da8d91f2edc20c2c269dc7a1ccde1464f66849c3209dcf0b420b4930c622cc07e1020cc1118064db27bb62e1e3cdc4e496c544e1fdd187a41104151eb9c65187c83fe11b44200bb34f8061f64299a540219225294f240703c62519ea0e855939f9eb786c870e441cc9fbac316508b00521945553bbefc1addeed88fa5097a25e803350c0844304cfee45aaac5a3e425d790e524f422491f3019d39132632ff6882373f31295c01129b81c314452a6ce2fb51684a16fc20c7edc93f05cb338dff6568497d9d3a7400b3aedd18f292ba803e9315d5364433be86869953b296c0541070ba35afc89aeac2e618cb5535d28ee726fe0f070901ea3a760063901cbb82235fc6048a6f9e3de816c4adaa96a057aad5a4bd73402c3ed2e00ad45a028283df9aba95f674deb9e414daa75c935f46bdf7f77a5300fc8c3b68c3eb83045e8eb2b4e075074ccabb56c16d15eca7595dd757e8fa442ed75960cb03554eb8d48ca27c9f135fb7c67d1559fb6b5fcfdcc59b369fbd8482e05a8dd6ef44ce9270b32ede37f006af249bc493e435286f9598c11df0709934c67baaea68cb3018a9c98ca536258beba2a6747f1134705a1ad925c8073ce792af6c72888ad9e27ef6a46742780889a595aaedd824311e8741f5022b8bfa3bf2c8cb951c698e1a264ae3937e5163ad06f9b88c65865897e954bffe3fcc798aa58f7a2998678d083f99c06391e18ff3000afd7e966c296c8c43f0bd313b26913f625e6fc783a16ddc692fb758f9dcbe5d1178003b088c7c5e1af8582869e0041893649d0bbc1e15d1b7d9a5cefff4b9c7e3123613179f47b0fabb5376c02d133f2996b95a5d5c0e80a2d3a8078cfa8a4377f84942dd9f0ac0fe93eba97b18c4c6abfca769002c5bc676d9268b0736fc5b408856ee79f4d236cabdce1d9348031e2ebfb152afadd7186193ae02990621e932c4e720c7b8e08dc1e016847606601f0a142b6d12a608eb7a110111cff263ca9a51c6b963799dc81e1354968fc9ebb4b113df93c33fe1c6b1ec449710f804d0f8b3cc3e89bbfd899809dd01f884ee79b038d3581a193bf1f0f5e3014ce8c047b113d4d8cea7cf54a3c5f5fb1a2ee209968267deb67fcecfe01fdbd6381c2128b89c4773de7c704d1f6ff8530261d11a17f79dc4dac3638eccf76dd03268af212ee3336881463917104ddcd652372ac5cb5674e677c911379151af19b09726a289594fc854c5a88ec76ebd8e0e08419b8c22d17277ca024c2e7446e9eaae103bb2da78624aea6c4058a894dc55f0ffc8af4c7077fc170125ef2a9b05ed9689c395d4f43b6a122fc8edbe2f5985e87148101290232fb4a617c275af0cbaf695d50fca837144a1c0eacfd4adde3d27c1d81f86644845c7ce1e2d436b7e30dc062aeafebd0b9fcc6fbcf51204ee4c1b089699bbdab257a30e03a16e393d35bea02d74d6939e6b4c056d730308f677e32b03aa235c2483add25301c463dc200528d5aa057cfba80e3872267c03050b53e7aef3b1c9f706f5b0969ced7c99fed134df5f44eb86f5132064e3a6d94e1f083a3637acdd247248c5e1b0c1670571d4a1cf9e8561ca5d1da273097f7586d11e9c3b3a473633a33ccd37f50b30467ff8de6088dbf85a73307ce827537998f36b87682cc37e9de1d483e696e6f0cdcc08a7e27ff177aba6ff025770c27798b5cab755895fa005b538ebc66e55bfb0550b6f020d5df1d0215dd47e7813c40b09127009a62212078810bbdfde1611c4b870fde4d4b87ec8b55b0ca12f3ae15a253e0577665428dcb45c300cec58b9e89ab03b744dab654fe8b0deaf26787cb361a687201b0912b18b2427a051ca5897044051a4210b7f03b4459b0fd680b13e5ce605fceb5cc4a25ebb504639e04501a9d303f84b4d151ca00d53fd15f0382870f9a5e1802325d9e06606ff22f93ccfba340006cd6a224564f74a76cbbd3ce383548ca281bf9355ef113807e88d6138a8d7403234e2447b936c504c3ef0723d0f0c86f75d2f3eb32e79f430aa523a6f6917b88ba1b5fb8425d9dd00b319122b3adb1ecbdbe945c07c5b706835d90819fe9451f5f44e25387a618f1cfd28e6cb20c078ab7be359e231f1c3d9a33223867d58825e2429cb5822b1157fc6ec9f6f98f4668bc827b82cda25278c87ff7fd0c4be3cdcf381a7fd5ab6242fc7970f7855478793f68096e8c654a5bf452e2cfc425415c6af8f5183a716bc1ba026fc67b5e8744eea2c8481f4e1c7ef7ac74ecffdc54534ebc5797ea7222d394d8455ef689e5f6bb2f069c6b0760356f39bfbb3d945281a6f6b93b8fdb72a1ffe6018bb7fa489b830db45a6df1975003d14a890cf0fed7ee0ed5d4a428d64f5d938f96aadadafa3b6e0660df7f869e9d2be9368ad7a913285d158eac7ec457acc25e31ba6c321010c873d86d76d649b3755c9d19d0c45c56af116b8d72a0d2b18429c3c1a7de8eda291f223852c085e51f0a8684cd1633c85a280cafc4d547b696b735ff67706c9f46f6e727d6c7f0694e0e38dfd57f2387f6c7d22e9938741d873c73f2bfa03b4c2882d3ca3c8ba1b16fe57898cd2026bb09e33c02487e48fe435e9d9bd2658af6193d44481e45d1a859c00d1bc43037ac5934f9d92c90a58e5300e4e2e9fa06fb036efcc75f607801c88b62bb2161bd35be2da8a723360b1b1ff37e2f3212e55a5819f9058a4afdf14770a19bbe2c9c66c945af73b84d6c69d7e56aea3430718e75cc84dccaf3bfadb56e4caab4300cba4d0a01b38ba3b4cbe06f1dc3ffb813c3f16833ad5dde4bc8e8c3d5b2c68e7df517b18e1f8ee5f6ea03e2f591b8236d1a15d74befbd932452638002a01cc6c904e4f18a6708148bc68747516510831ad60b58ed90a166bcc13dcc313159ca1b89ee68104f4dc36fec49b5bf8d151f08bd093e5477dc23a1a84ee242e955d27af17377c982ee51ec3891ae92589e0232d77265d440f9ce25f660913824076089754ee599253dadb99ac68cd16a4d4c8ca1640d661d36386b655cb83d4114cc34c1d355f1498c5a81ba0c17cbf3435eed27beb3876137144a819a434b17377cae4d61a9946dc7aa4c8c5f69424b7fa3b4178e59acf7d0ebedda2b2382934ff2bf04d25f8836961b991498e40c923ba934e90846e34274973110f5dcea8999ce5db02828d880d517566e27765910506ba9039822e20ce4c0e3bead55dcef8a45c739b2989ecbcc60841813378ff310264292c8ca19905b3eba167bd7fd12048e7b560a979874c0c23876e1f11f7c8c80b66e63a8e7750c25dd31f7f95c13f47eaf63392a40600f7e4b83e6373ba3d49ac7f0d15f13415f01e4b09362c428805fe24f7857e5c5f4cd9a1b632b3e6a777c92d233dbce69df0c04c34d319df5c89e9c8d6959345cbba509f98a2c503a7190a0f514b4dfb15408ece193936f0081e31234f62ce08f32ae2b1ae0a401d0b4307f3c8f91366076496da8c9b5f037c34a1edad2d12134b26e812e06fd986ea0bd52f557151c5bd8afbec6b2948513f37e147c2d6876356c5b63b94fc203cf3ae5321ac1dd69ab4522378fd752ece732ed237940e4fa249e3a4422ea982678a8e1727e54e15af84de6bbc33bf8b15f0277d1795f47c178710e1cc311863440289dc11f6c636497bb91f66efa20ec888bdd8bc8be18e3a8ad25e4fe3b7deb99579bd8a07515a2d73d37ec7d29aa5946795d93049c46112380b554bfe8c6710d904929d1cdb6790e6aa3dfc90363a85eadb53f04709fad1db71cfae3f00378d3d10c9def2822f088c1a288e0e5b6d38085ef9d7f9e12f3bad777d371516a887126b0c077ba858d086ed1e8e74ed4c21cf1dee45e8f208ace4dff16c3ac12ab6bfdc3f8c6b720161590a372ce16bf8851243c02f89ab20e855d69960c69cc1409967cdc0d732d95087ac0e7a3058e630ebe9e4ca664ae967321316610660119dae958c58e4881302784c458f299013fa046493421782c91076f281a913081108318cd90e185cb50aa6c2c705cb3c0030c78660183ebbf74914261a36c44b20a95e5f735479d5d8a57d7b56471ce06ed8ed45a69461792eeb17c92295ef60176b6f02206d04b9ba5860aa7e023233710833e7c5be7f2a0c02b166a4e38aa9a7c8f54554258921852ed70d5dd8f73c482adcc59d42c1e2cb40ba734726af2c200715726a9f0499c912250c3d55121d29456e7feca00f14bf2b8d43d9693e7d61e496ab9c8a8490c9d7f1c81016c946a29831ee057512fbb0b4f8bd80dfc540fa0f2448c1d812b618d9533fb2d8811fd086a359ba0f3fc8f8bf528f8889467922ac34fbb0bfa04158bb7473de95b727433eb4494f71fead063718bdaf51809953ab28acd9bf36f21e4955ef244b498480ec658133cb9c9141a4fac852d424611ca2e44d9c57257734d9d532058b35122bfe500fb56a2a73613703ecea75f662195af303ed36605107efddf864b87156e053fc4f874038cbad0ec2f959790b60d0e00266723026131ca78f6344b560a695249975d47c560c0f61c0abd87b091bbecad185d950346c2b5ea35c19bbc2fb96dbaa6c8f62ed0ea87116899f067a348cc14fe7a1e6d8090ddbaca5525ab348df138a749bd3bc65c4bcc38a4c19456e7c55169f38a23ea6f9b25046a1756e830ae9f3cf1365b9b06e18e050b194a196f0a4b9b6e07316201bd2da9765cf7c7d85533f03a82bf55768527852fe4f94376dcd19867fdc5f2a5b033050aa1efe6949e48146066600049714cdcad7cd335a062fb66989d9b4a2444334562f24381fbf4d862b392853e37a9bc13026e4a04098c71a4bed87454ba939a4631353925b4a5f45c6f7dd04df453609506d18bc135496dd80eb113bf08bb87a133b908f58feaae5bdfdf3c6fce20e3188d96c7c71c4480c89dccbe1c061dfbfa176382b69fe34335be04ca54de661ac8a1fca2f401604acd8144cea6de601c45753cc4f56dd6288f84afe37aa1b47fc4cb6a541983483f2bc25ee606e79c2bd92cc5a95a7abe2933c38d23cb143ccb5d889a0dd7e0f1ec4a30aca31d2804d39e4fb4752d7b531af46b33164f294a0a672924fba4e9e755383e7889930b96c11ee491da5712457553bedbe119083db9ed2c5a07f6f9a985f55ec65efbbaa6847f480aa3ad2aafec65c9e1fd03fc39381609622ba3e83902fd188c94a525e8d94a2bc4482f9766d45e87430c7f09e604a239649ea2a5e2ed370cf6bd2212cb0f8689eec04f82f01ada0fefb16cbcc1a29e3163bf1490ab082831d7956a070de03ec733b68131a42cb8ba8a14e601facb070332cea4c89ca9e1dbf42329a0c3af744889ec4f4ec942291953d20c2fb83607d570dfb41aba18fc51df894383b62e38a8aff0240d44075b50d0542b0a7e801732ac2b9e5ddea6139205898f4abeee62d9c6c054f742bf1a7e5ae0d8be2dd1be2d8c0ccc838f1ca484633d98de7b1ca6a025a3665206d195b169e5c46b719bf65fcf35216f7ddb78a826f493242948ce9b6a7eb96599adbe9d30210fae93f533990b17b87e92c435f8da3f483e77cde37d21e49cc197f0d878f3431e3612938945c744939805ee6c4184357fcf720241568ca108e03be2a1e279b376782229edd6b18d651f6c8e8e0ff248d67323ce2e071d7d5472cd3be6788cc81038e271299c6b28a3b59a49ed201876249463367fac230bff27f7d5b6e234aee8049b7b6fc0e898249f46ae7e2bac77336f3d8e3fb63ddc4657a751e799bd35b21eac31564b1efb91867e3c4dca1d2dfc8f430d81632b7e73895dc1c438b013a46de93eeb5d939a6a9602150741c73cd2e0928b837e313a074463b470096171ddbf68c916138d4e54b05d17b03d218c479c04109824d06b5a578648814b690fa683420d21db9d33ac9d63b9f7cef6dc83ee35fd6bf3cd7fac400cd15a3d28731ea2a5a06335ac471b45c3e7e553c5929f4d4e0b852437f0dc18421df5a11ae6e57f829f1b8197175ddbfac1e1d77e1903fc22276a57ae08da0842a1b99a490f9d658df6dd9428711aca2d6074f7dc35125d088b0e1be4e15c905058fb4ed61e3d1cbf8cb90a20fa9c99033b9411cc3ea3db2bce80d0763a4ac3b12b9bd411fe70af6c0fff9e9841a61b490ef383f37dce1a3fd4a14340fc47d75d905c33e16ba21c9b6847ed3072c42a4377153c124954588d545055f884a7fbbbf4122ff0da4625e727a388e3224816b63b17558a008f91cf54b7cef5734da61d80ecf580812d93fb25099f4572230a7e4c107296ea0ff784903475c1e60d217bd45fded0310233151ef13a0b4204d7c28b410018866859fc5d486afd72176e1258882bf547a649ada5373cf9714737e540476a2d8391f5a2449616e75cd2ba0b6420940524be37c171727b53354b62454485a6b7daa24e0d0b33c4015d8b08c88b509f76f335355d0f268e3bc1cc418e27aaa00579ceea5aa551188ba8eaf148aec16acbd692f66a74e51c3add3871580485a12d49fc5c580dde540c85e71e3e23e50628b874d39c21dc0627b6a9b063a2a3a6eaed93b8d7c4ff1c3918155625de96d8496db91597a82710b7a7288c1402c9a49113b901a11717ac083b9ffdc0db644fcde1b769eca712522aa94e2204791658578bf308971c5a727c831d806de8186356121fb5340092d38125c9fff1e0e347caa2a73aef2e986bf0bb4a1fdd8a0bd9c9e766559a0f96e52262650dfbadc746ce43ad270c4e33c085dc2363fa87bf50a96f403f653ed634684a318d545c1d9f008a70f81e539a9cc5769c27cd935e00794acc504bef456205a64831ca1b9aa35f50dad29f9374a541b85a0af64d1d0ba99252aa70256d259d203eacde2098fc804c00e9e8f1130866e75a06d6ed7b33a38b9fffb595a326ecbfcde1407ebbc2924d34f67d580d92004c23f934a3948dc93a3b9f36521bb5cb1e49751379476c8c83e162260a5aae5485a2826106f929979c048ab288999aa8ce5cd1426adff1998e55dcf14405084255ef738ae2c735090c8ece40c6ce37d54a98e0ce2521a02d95af7232611d70e85c1ca5150f34ecb382aaf2f2b240c95788e84afa721a323509cdbae96c98cfd9c1b04901e0f2af9726ab9203c3588c9c993682c40144e56546d4e18995f6e8d1b3466aa84b5f252552b9b11ba4d7b0478308bdd78891d71fab751bf5c87fec6f4f8e2f6d86034acb2371ad23dc5eecbf79480fdcf6ea83602828c99990ae514a53a8bb81490ef7888ed6fc80350c0a09286e7f0c0019589f0b06525e67e0c19331cea6e8a436c490e767d7e17fcee340214e7c074c35f5efa6b87f3f7a0655b79d6056589d2c63dc24e56210ed4cc924bf10e60374251a97188b2fa17dc07f146742c88b241a527aec26e7e2d9ac1e724ee9f062be1f09a404430b5b6238ed5754a0b81bf21b70249adab0a10e02f2f4358f624b45a8952c2a274dcc3de7ab1105f3fc4ceb3b2a3e106e4366f1158fd61743eb505a0218788a6d03aa82100a92bf90d0a4de0e10af47fc38d2f556c3ac4ab590c7a81a9e4002405f5c49304e87c6f3ba6b23f31ff2b1e32f353e76633b773ddb1e0aca8457a1f9f469f757c9fd18a5e3d44f43654d959d4d558a246a20d50f489a9db762fc65499dd90b726a1d6476f8e574ae22a633c3548964038f3f601ee63ee823a008506c40563265e25702603ce5411fa1f6efcbb5939e53635ede61edf0dbacb8864a81208e4bb113b05601e85a879cd13c2c46d760ef651e209cb255cb49c5c7d723ed7295c4a068ef3b15ad7f9ce428bba2c1cabfc331904db2dfd5830365208593a90ac581c853dd31fa2f3a2cb5270c2ade004ffe51f604cbdc926665448f35cb0b51ab320c51d62ed7c08817254f3d20910b080831ead4b2c8cff3e096c25513a1da0291a9cdf42e298153a112ed8e6bd5889e9fb73752e90ad33147961b9f53060a514e333d23becd27d0bfdd20bca07116f619ebb03807ad49b1406c29dc6d5ac603bdd257a4a1eccb28886fdbbb41485df76262c331af2f86fcf324e5091cfb165e85424d26a9b2585b1582e05a209b7bbb940eae8f952b4444ffdea31335cb931b5c4ccc4d9f905b38b6c9aaf9efae50a2add3d6a7081ad132d9afa025ad971f055b1baf832ab9b5972c647de7fb02335def420522e2bb00e8e10edfa08df6b5eee3f3e79d7db1273c9a3ca6b0da09c24fe5e0c51f790c46e926cdfcb5839928cd5562c546d62eb5fcc9191e246ab5d49269c8be4492c513f33aa0c14c72356de6010af8db4b883ded8f72f817cd9dff92c28ef92a86000f2069c37f12bbd157c10c008a9afb37b1b36fe29aa16cb473db2a90b67013fa4351dbd2f1f4c0689173e304bbe468b0bf1ea7f3f57ed10c2aa670f2392d31bc1adb773f95a375428d5ade5388bbdc9ccefb952acfc457fbb8fa1e30a4bbc33125d12c52add5e469ddc04b2f97329ffd63b61147de939e9d290209771dbf7d11fbf04147049def364d5a9e420da4d36eca5a47044f6094d28aa4aff791a9cde31ec32e55d7f8dfb6104a4f15521a4032f742a68c5d19baec06ce174d744b6fa3b97593710290376f85acc54f0218d66a4f7b866480cf2e172e5ab747dc7bda8925579a11945f8069c8cea4a99e5087670758594e706137c2215a90ff1c088b9af1aa6d1e899732edfe5e1e83363ee89f4024672a0adf48c7dbd5161233965ab9e26586dca95c9378d44f20bfcb08b91791e7d0a06b132f38020a99d3343053c22bd60bc386581c9f9d3e655586305ddd3e87dd6fbd8e0ff03ac774d41b8948b71defa8c958df53b8153113a4906d5827ed1ac4623778c4c48cc4bc51253fca7ccc374673a305389c88724fec126480c07373f2e82f1c01a4c4ee8b98c60c7f4bfc2d394c4e3928c249ad3532018423a43820c131b4b2a2889c31141ef910bf275da25b4d3fd1880179791e2f256ee02efbb7c81961d281349de7ce57146a8e4eb94705f7a9287fa132dca3e91c78d141e226b8d12828d7e784922775122944e555ed3e527b79a87faa8c81282111b9f66782f81fbf185fb4389d03a7038c751613f38c493edfb5799572de541f10a4eaa1d9b1930558533e04bd7843c563885aa053ffe7d822b382dd46bb6e60b357d23fa9dd6c1549fa72828f9e1daa7e3990031b1eeaf18da07d22dc5309a3ce98921531785c4713c65cd33f71fceb8a301125c1849e053d9bc06c235e1ef454d08388166187cacfa45ccb4753a9acb94df3d6a06c0570b34d933295f6998265e0c20109baf7ef73e8b94a8fcc7e30e2c62d92e4fa2e68934f773f6f8b8bec644f33f2ba4965c02617fe0ed574cb589471c76c29b04fc09ee175ba801ccbdbdae0cc8062bb7eb7d2cafe8893a1531c5fbfc8bfe204a17fa64893e48408228ef4a5c1293e18e65f9b92ec069b02bb96cdb7a3f28fdd243d16c4ca276a201ecb227adf30bee81641b8fb49c90540605d9b81f6d083a23629cd61b89a91d571a3f13ccd406e13a156b5f4de75ae6371e0ca9aa488c34b866767a5186210afc06e1ebfb261050e124c1d8b5de5cff2b68aa443c596a9e5bb7d51c5eb088bb7c0ddecd918d5c086083c3e7b1ece3a0616fe0383bc178a359412f10028fc19ca63388883709cbfe70ad834dfaffbae01ed06f01e14f5b1f91ffc76e3283b2d2cf0ce39aedd2a8434ff832098c327eb01ae9a9abbf34b6131870983df568b34ce958466b49f78bd22843d8b26052f144a5dfe71fed0e00fdb9185b8797e6e427625bde1b0fe62247089ab24bb207dc80926f579f69c4999f9f26d4b240bc6210fb154f6ea945600a601e40a6590184f0688db441c3ce3a218d6157667e902103f0e97b3fb3929f54142fe0a03922fe69edf63218b92168a2797adceb47d30329df2d338b9f9c463594a7a6d3b27fa3b289ae20bb6c63da23e235be7598a6fa8b49c700c621680fe21bc3bb90d0fe9bb4b6118f0aa2a5feb79587f4712c6ec1a484dbcb3444727fa8a62599bc157b281086cb6606e8ec58d394c21f2eaa74d43ccf1acbfbe548b8079dc8adadd5f9d3b301f90387dd72458820c42411282793aacf642dffcb510933a88180426dcc2b6821011cb11f131400c211abd607deccfdd5ccb3a82671549d5bf8a801f3d9e01625e67f66403e33b619434eacceef932e48214ece0c0b17c745fafb3561d3963700ce2307388ad7ff059676ac06a30ffad837e92c940e02a60120295125ddbb9beac39fb4d9c65f0edb540629a49ed896cf85cb6be9dff9426213256d655392fdd2b184ec7b7025049907ec20614a9ff686cb750ae4a5a9e729d0bf2380238bb8d85eedf308e3a7c27e7a8bb5a68b16053cf8ba475a6ac0fee6df509b35ec3278d97b8555eac7f5c924015298c0bce4777903e606d19d01ff1b1cbf7978bb4edb62ee92aac26023440f0c3886874e75bf987ea6d6c1e14b5aa0549b98f9a5e6adeb3aebec2fe97d8e00e2fd4ae180182e5eaf530265c6f4efd08bbbf159e6b366a12222332a576dc53dc8dc8a0b6121e16d3dadef9a509d0912aefec675d27901de159e55032238b3e8db2169ecd97ac5176a480be3ef86588432a93c20ba2fe84ac8163921cb7c4b132ccdb9dc37c0ff40548026e85cf490cf8458a0866a4fdb8892a55e9b682dbd1efb9d7da6cb912fcb43952195ab64ca4a941e2b306ce167ed1858b7a3c786ccadf96805e204aeb26b99807307cb96987dba7cf9c87ed0f14875afb6f1de8b5007806e8db4a97c5d398d2fe1aa3ede862e6f2d01836e4a15368fd5a7bbf3f6814e9db50b97067ab3d9a0b3c8fc00156ee9e538ae030b7571166d10e3a0939cc4b9d6ad3ec7f23c5f58c2e4730a9edb4b60c9a4e60d16f488d96b570c6b4d7b3b2d7d6820422fa7cb0e19413745d04061044269961b29ca90f4306018386c817893f0df1a06caeed19cbb3d25c7c38aa0141c407f8ac3458b559fb034dc6fdd4ba34410513474d1dcf95c49571e5e7e586c06bc75b677fb5a9e152bda205751e4fc40c70e0c575021975cb1a5f13de27339796ceb4538476ca468a6cd3bc2de0d5cf1b8c2c9bf7e781a94fd6ea6610a58d30d79a16f2f6bf668233d342fb205092b9b1156d1fb273f2e93144e4c14270fd22ce472fe3feb86e9c5cac193ba44219ecfe021e98cebb44ee0245b3d8e6b1e4695a400c64aeea9758d0f344573b9e0cdd183e92aa71520abfb819ba6ab5c0b57442f5a25e8d8b6c94f46a3bb398dbafaa51ab44d01c13283435d66d55faad44b4c7aeb310ac5652bc433f926513e37f63182d81941cbd97d82c2ea100310b3ad96aefc21df83699ceb9626daca711793df5533bfe5696d2b314d0b2d9c2414ce2657253c9fbf2e8309ffa0ba052eeaf4ad3b5fcd373c36fc3f80ab763bcf31008f48c0c6affdf22ffa502773d19a7648546861cc74607e5356841725c82ab67572e45364ddd0658796c3daca0b315f60ef7ec0da218a92c8a4884d166407f54dfff30119ae18b6fc433e0dc1842456f115ab11bb26735610dddee6085e53fef99ad45242a3bea6acd10aa25f041730b0eac1a83426e837e2e5085ca0ffa03d1715f5f6b4f37bc3e223bf1715d60971e964933b55997d39302e6dac12394012f586dd0df4ac46ad7243ff1c1a433aeb5c88fe448c2f65906698fe0e48afa67b7bc2502612525c4dbb2671ec0b06f908415acc55d05e4359dc1788d225808610bbc3728eb6a412abd94802e239d8208628f5a00010e25e8187ed48d960c89ece68af0528f518588a12a0d0239161db2f5502e3aa40aa2d57848a0db94c91ee5573a5e94f5a1368350c7bbf0b12fd8af59e124a4957b21ab2e9389622dad09e3bc08e43d7b0436085d036dc05bb614563993985bc7664725490586b6963c5088c3ba3e13572198e0854045b3c60f8bf122ede85d465fa0572a7dbe6f4229a73a746c1eecb294e011455b4cf93a4cf41cbb741961660eaa897597aa16f945ebfff24314f33dcdc2b6b2cb18cf5562037b0ccf2b521fcc9f661b01cbc72f31fd5933a5619fc3ff04e49fcc325ab722492990d68644ea9388bd138c0e4685151b3524af3b1c26904a5ae991c83e4a40c1294af2601219777163b38837e489b0e72d1214bd661b7ed4894a5dc7d223ee30f2ebca6f83e340c5516528aea5ba43e137df145d078dc048c95bcd6499b72e8323293ff91bbf87f70a00730b174205c9695b1862b9b0c37fef8898907fcd545cf1cd4852c91c5ccc29576b463cc9baf9c313f2dc6aa772e7ecaa4d3937c05544e7e0cd385091cc9f0d44da438b1931c507f5c77f323a1063c4aba26021c64cdf98aaf14d6994ed52925907d3fd69a0858b9f3ededfc1d9021baca03989e0bb2ed2785102ca499899f6a9a632a69fdf628a0c8510665329920d33131dad9d1ccfc5443f71d64fc9f2ed29b6e9dd7314872f79a30ca4105f99880d86ba8383c65f9b6b3fc7e00a4d9693506e7f6d94c0a5bdfdb7fd50fe2d2708dac38e25686d4cfa2898c80e1e9f4b8607cd5263b0d0cbac61c5d88a0f34369fda5bee3b78b04eeae178ca51a7f5d5883b23d2725e36d4881c0181287c4820d01cdb9f95c86919559dcd35ef8f90e8e4f33e6136845138c3a3f84f7b766b9e2af07ae879eb93ff743e4b6b386bd91969fc25ea30d31998648af99c0b274ece316589267f19917112242d31d14b33b4b8ec4e9122d327388fd54a34d0c99e550ac2b7b65fa7ff11643f4c1b535fa606af6c285e6b0ba1ab5cddacf944e291a7fa7dcf77d7b2fdf52e3f558d9e11ae8cb5bf889e33a09a3f48605faa8c630bbc258f821958f3563f901c5f1170042546f71af9d2ccbe2cff36c0f28066a99f1667037aa430c593c1236cb538904ee0434b04275247956111d485801d75098c841c744824639d56b221735755374b81970844e036efe0d11d4c2fee2099da26c04b363b086f9fa31d9fcb5520b60ecb76a303319c8a629c85108284124566f4fda2f41aeaa4b24569e1bcb8200dc07084431a247897dd289800a56bff364f271bd6062503cd0aa4be5dec2b35e74a01e20c192e01b46fd98085330511360623beeaf18397aa08b6e458694193887064360c03be8f5440f7f80182a5d6c430c9297c2b1ad6bf47e71240f4f7722926382611643991874934d3ea8d8b77dbf60134970e979c5435af8027bf34c4c85556df23175faafd3e004243d468a265eff6e1b8a46a4a1b3fa0d01621bac74da0e8888898ae79adba0e8a00476bce22ad2e688359176664fe3462934450d3853afdce38874db7a6fcdb240f0369dfcea76231e8cd879ed5cc8990f56196d6217602f886edae3d31e7d73d06a8e90e79021f19220935cfe4b56252464a1309bc9218267d8224f9d56f1993cf9b0bf3ed0848df91366df685728cca31264bf85545494ba8235f3e0c7d941a59c68b39e471230c5963494067381123e527f729188316e3a92fbde3423ae1d9fcd1ff82910ee5c5902e8c87aa52841cf44448c5e9686a16971778026d1e7aa0a98dcc8f801bc3dc194da250083581973fbefb459b0cd5b9726febd3128d42982cd36208c2b2720130e192ad6012dd89e669a61ab8815d044ff5970268434d31539af3d7cabe3efc4f406c93570e620dfb90308508203447d8a8f96eb369b48a180399922ffc94b59ec777815c42919a5731a640c6697e0704359652e033720830f8a240d3ad801bb60c235f99c31f904819ad0e4c19c921bbe804a6c9a272fec13f3ed8a51a601a9bc5bb67acfc9f9a8ee6caab33a2d4a3801662f799edd782cfd24f2851c5aec4d3faf3ee462f2b8874bd89d04d8e51bb053ca5ad84d34af8e79c0e086f921790687de45c7e452deac94349396620e599881b4ecc92c2c05bf08a0c56a30a34afb89efa1b5baa37c3bd35885565371cdc557c4b64095e60f83801dc8ad5d492fbca4ab5e0c3b36065779f844bbf84988abb3e720fe73f42ce620b472d4eb18a89790085934f3b3252e2f0a4fc5f5d578b9dff40c6abb9af0ce3d9214c6b1384acdcf983386bade1dce252ec913ae143dd557b352aed0a4457e3db4fe6d34296efb3b062805ab640a8770a1248646601fad75094caa59841401911ba180c13246f3c4b27234552e409d8499145b9f78684f4e184d3ca777df631b9113e6f77f84413e535a6fe6f4b87f021238961bec077cfcb364c52d417b60acf106a9a1332ef1e0f00091c2229d4172194eca6aaab103d97c510a3b23bce00449c0bc29f7c495a7926f1dcb149787cd93226570e7b5518689f8224851b6e15743047bcb3c41b0d4dbc790b8729fd8c63ba8a2f65e537f4e452e47e63b15ba95f53828eae6fd550039863485d3cd48b69f1f18ef21e718b4e7ab97c88df60f70c3fdf6aa491215a938dc9018f0608251ee20504beae515ce1764edc9db1f25c11f7f039d26a7f427805182fc6501cfd1447a80604be5ce42a34d0dd5961b9adc9df03cbfecc7ddd034798d4efbe98d89b91bd53990e95a6f39ad5191e29612f6f171ace2a74233cae892a0b191bc1c0c8fca5f82c34df557ae8ff1adfc25ce13ae59aab7caf3ab600285e08884f3a37be2514e01e88250653c09dcf506072e017511cc575f9dbb09f30eae5a9423c2104a9448c646248960b7aadb1b20f53261148a66f98eec1119df42986b9785c7f6d668cc74764e5db6059de6ae2c59a1759969300558fab37013f6a3d0f12294c6300038a11a5038a87ea0fe1a0dc3212566b102229a19e0eea38a74b87e5b1945bd45a64297611c43421e28680aa678605098659ac9968185f78436ac88780e0e1e27266251f976abd4f531c30352fd6ecf4212861cf3c7ca26098f440aae4462710ae710e48387f4e6e979cfb4e8213af9ae22763a266ae214e6fbcb4e642f37ae5fec67cccfcd43c620b590ed8e27a958943f3c671c78ef2b2ad29d31d47c89d74616caae9f696ccaa7b1e9cb5db427d4a265c6a305f485f0d5459202364e7cc2c7eab48dfa2cde7f3b0e7aa0d15fca0fd514b46c0abb9b020f38a5dc5f95ca91dacb50d9678d1b9625ea1ff1fa32459fe0af5881baaeb55b3b442f45e72dfaa3726f4cffe41530b381962f8538902e258e1dac354acc12a4ddc6bc1feba70fdbe02595f998ec90813ecd9a9016dcf6582cbb4eb5b1d0787776874c940027c3148c7b52195a3a6cfde1145575706d2a5600b8e9dd615626cf3a06fefdc47a4d04285ff954db99e5572e20dc47bf86ef9f712e908f051ecb8d192260d15d45d49efe49044aa15d1b8155d8a3f584527e6ea7d32bc84c7d5b0a7169853fe665dfd153055eefac5f67a5ede4a0d00632d83db2bcb9726546fac7cc8027e229ed5b93e0ee69b76e5405cadee56115c07dc15c1263e83aa31d61f148f41d17770e61a9845fffffd80a6069b722800819d48ef4818eff8f749c1ce9036c36edaf5a48115f686a3ae63653003b3afdf5ac0de4962920ba2f3ef9078c7017572fdc0d72062b51fe3001414762f8c7852fc561382e02e6a20fc72dd1c956fcadd594252882da1cbe8f3f61704e9dffc2fd04b83dff885a47268517aeaf4e7bb2a151330a85a835c2b313b988377546ce8a4fe7fdeb85efcaac8b1d445dfdadf89cae74d81b5dfec1acb5c6abbb1ae3934038cf0cb252cf7300e6a46d1d037662e5e763e4a1f920a1a1b128fb0ce5495068c8465ae608e91f5f8b433af6c6e3b96872e67834393c4f60ab0ef1d7a7c70f32a63dc12d1d036f48dfda1b2e35ac4a66e9dd905c3f828ccdb25e08c9d247cc58c750be8b3f836cda943de1597a7327ed55807c73b2f49ddf71e7b4b0274b2f0eb8ff45fc785857727ab495127e181f6e00daca698c1df06e4a5ca3ff5b1318f30146f2e5f3c515c1ca47c53eef9ae5ac0bfe141d7e8a6ce79a98a242ae07bd21a204bcb10cfcdf58f2f09b412ce9d9552382cdf41e8810525486b0c28c555cb432f88655b2c0363d411c01a51587d69c201d30c6d5c10a41cd40dc2f50981541c1e82998cbf1c67ec794b99d3cd6f561e020351b98351d298ac66dd094224c482f304a347309bf48cd37cb6f45050e06c2f500a1287729380720c25eaa892c2160b743b3468269060b5233dfa70ce60f9d68eb6f2b58d6e778009298daed2e8ebc98eb10944ea3787aba4431a06c446d177a28ceca3542bc31cb20d68ad41d8e66518a029a8005171ce2c52d7cbb5d95253957229147bb0a9d1efbcb4f4333cf4a3f539bd6b784a69e6b6aedbd12a1c0bdad5bc784d4113e941fac79346421e56fd43aa0e8dcdc981df8b2e2fdaf884a5cd5dcde94312e0d50d7323a84abf6d66e70270df7c851db003c75e50fe8e48c628c121c3975b1c6c99204c3d1bee98d0f89071aa62100eef21864b0e17469c0a646d86b00f0ec5ad90283c490fe89264e404b41c84466ed0ac203a41083054d0382d23ad2101eb1b40819838f7c1b5da17372f53c8d551158bdd0053d683558e8fe4adebde5ecd9360afd1d5aa09583230857b5d5348e76d43434831efe9adc0bba0557e690784f20116cff192cb6bc178fb4ae1e2ea0b023a1d309ca3975e418ec390c9b669a40a3130d4754df66c3d412034269c1ab4eafe5a322b97c6950025a9707daf305f87c9b2f894a189ac974fef123fd31ddef3c02786b10bfc3b232796233fcd72b6c7ff77b96b25cff4c84e448c322835d245fd09d3f7b06e9f400c1db5c2252b251bd605aabf5b67e67504f03853e40daf3cdb118ca0f061f45e9a1ccc4be0cd232d928456875804ce8af9f0b330eaadce6773c95b170d02547a08618cf5722deab616d4d7569f7bb822fcbd304382bcb619b7e720d9afbc43cf5646464d5167472991884140f266486c560126c73ccaf7c1f4081930192f85ab995505373cfac55d143689f4e608c40043601042fd814ce0315dd31b084824b528d95b7450e34b2b07d20ba2147d512d67008cee82ca9df0b0d131d05f05bd78d46c08858989d79e9d66f9a9a13eed56641033a3691cfc5fd017739d3d4daae04cfc6e769105db011d9a6a36ec39b14abdecdd278b4921fd8a65c8cf4976cc7ab5e687bf6f1216a753e18ebf4d41b20da5fb121986cdb534a259a3825e5a81c93917dabca3d70be23d06314e5d4629293ea45c5b7cc9cd4e719bf722383ad295ae93eab2406caddda902681802a01054a86a809179db45b4706a8b85bf20f3b14b37c2b6377ce0e998783aa46012cd42a5c206b56a2e78694ba06491ac97d7bebb177de3f5afccabfdbf629cd3375788a6513c905acac9fb282f9f9849d33235569e93ce280137c412b9ceccce14878bc9a9afbe1ae96734853907d88036da844542c6e2c78dfce316056645dddbc3905190b97247928eab26dbeead9cc1064ee35840d06fb753fd85252c5cff2aa73b6a2ce1c4f671bc90487a8d4021ee5af2b9abc9277c1a3f42327a2ef79fcd68bfb8b5c8de8f4a505dce10258a41548714ea8464e97981cae4ae0c6dd20e838132f12588e72fcf92836f4508e2abca58dd962835a268092cf79afb3f65193a5f4e4fa7ea81a1f0058ec521b508e8eba68a55643df572b935c5d819b47c57e4f99b0d4f5dd396aedd434b9c38760b1b570326b43fce8147a52435fe8c725c99308e41d1c2b324ac7ae298caefb3acf2c218b8fafaf51967fbbcefdbf62be5fb25a610957a45c5e324d10fc0a12a291a2926b95d6bff227c6c3ae16be07c2ac34f12b558b0bf305c1a66be106cae482c908bc2ea62026e1ed70b1c0591d8b1731b40085728821e6c8f5670f6a5359e0e1784b76c74f52e06780f53186bb5b2871a76958716cadb19dca2020779170ce32b650fc25960d23426cdd4569b79129bb3ec9acc96cc8988cd97de97f1f32cc8d0fac6e1556b7322b8c2d92620ffeaed027b588ed31880a36175ef8425983a92dc635cf4c67d7a0a4b68d3200581373e12147ffc9ac8005657a5594b898ef3d627e52fe9f012243837b89ac54e904ff6ed7dade909d5755831ac4d5731cccafcd6da29b07207dac16ee299b87edca1c7b84a38134dff7070e3a4e470418fb305f14c2fb895c4ef3fcbbe97f06bd4110ee92dd2c1dba456a86e926abd4ed635e3b7581549e4506cbaf83478d99330bafe250f9a41629614241ccad51e518e2260c2b72eb701612d4a170b051f2feacacc6a910e1ec32b94b6cd17eb32ff933be0c3c8449ac3e3ae5be3b6dcdfe3e5650705f95f12b1792c3fe65497932449f1037e78b046e860ce139b43386fcd616098054c2728c0775fc9cb856702f5703ae3aadf24d2381ac4848a07457609aa6f059bb717ecb364a14821d5801525730e84be5a6e10658d28a363a16009bd075cce4309d0a854249300e693cdd70a217335d87cdae655097611683b630bdf3c8f4ae9dfc738917b3abe486694366af6c3edef94b2333a144ffad1243b6275e122d78db0ecc58f733ec3bd50c99a6dcce362d463c507823e345c15d9095287c69355c5f3f72c82042fa745f3fd130bb1523b6a89a228e2df4e9bb44e5a7c680409ea1400997b27013d0f8f6c2466872be9500cae77eb96ca45a57974329965e24d314464462d555c84b76e207d7c9cbb29d9fff200f081914b18a1376dc131e520c40154b877b77d5d50aad1ca056563dd9ac45254d9ac7bc12c60736268a83894f9b3f945731d5c9a79b05e13eccbccf341bc07b6494871f47087148ea743473d06462d31098d484c54fbd9e2eca8611d49e5cd9855082ecaad610c59d8e5e1d987d125b508b6237cd2bc14da363816402d515d73f00a8a5208179b07bff2eb20ea3fb92a3e0c5a220b72e792b73ae9ccd271942b206204dded28aeb8f686d4d2a9e4457cb5ab6ae6e098dcfff2054a2db9787d16c04bb7cb78ee329cc12d22359cee3d241eec0aa28a94264d43c703890b6254a51644a410b62a2c8559f74ce3a030d3567a943e883bb82e5ce6730ab693b57740776fecd3420c55c9bc4434ce652daf6e51d2c4e806275467385a689b213c316ff8a9d18c424f662121bb1108b98c520d6622606b1118bd8c522f662271631108b98c540cc62eb033e001fa39bbbcdbef05b4105f7387e73d45c533f13f68ad384acbf8ee5b465f4ca90c6a72baf5e1ab6c4e27d8823fec2016103345304e8292c23d70dcb75042c9ad6704900f46bda272f0e51d61849c2e08197d43ed8fa005c847a54cec3bba437db9ae13d067b5413b185b4d27e6bf0b03300b50dfa99950b4d1206b958956e5eb1fb39a0be28f3c9b0072dd905c2a983a074595e8d742d0467c48040e1403a6118d2b4f00467843f8d6627382d62fa7bf761daec5ee2ddbcb48096f8d5886cdd9755106f1bb17fce2060d0a3c610430103bf86211e1d813d0900b8029859340877e428e01070c2d7018ca122b84d41305e80438e04c31e1d46180ac8b8350cf04804ed4910c257c0cca040b8a3c71087800204da35eaf9f854cf9c6895c883359ef684b4ebc8719b61014f95fb98cd7c94d46f2ff58fd44c9793ec80009cbc3dc1950527454cd64a11bf800c62e3594a64d9a38a7928f13fc4e1e0d632b554fa468f0b4d1ca40f24a628c7537b075dfff367eb5c01b5494718f528c90e3694e51edbe613c99029d6a824256aab7c25ae6f913b3cc56a3701972f7ca2fd5cca836606993769be643e48d78b20ad22dd6d27cf129ef89cd51036ecef5a9759d324047a7cd5cc0092db73ebe9571d4fce1fdbd29514ec5b2f2e6f6b86d2cbb4f54422a896105582523f72ebc4b7e437079384209fcf95e3fdba66bf2f3e1f4c5f38f14c526fb7bbc11f604090e2586e492f443e939d31a48f9004df4228831223b0c7905fde13a9988a9af8b1aba22c0c5906571592defeaf7ca22c99203635bd42592e4e950324ecd70c9705550042e05b1de2ec7af19e8e3a2ddac0d28fa340fc28f2062cb29012ad22885e7eff6362f256755efbe34e2a762655975ddf0e833396a43458a5286473acbb259a133c5ef52261798e0c0c214826d5b9d9e00b5e1e1cb06aecc5c4ff9af231501d4d5a827f5855301e1729f939c6d83c63e568f88a2cb75c46377634711fc5fbdcfd20769fae9cc9865c453a22ff72a1a4a54e80d6024f2d2efc86d7a0e6a733dd17257d6b53861e585b76bc5c442c112c3513509501a20816f26f42673130d65eacd561d960ed4a3ef58c27c73fe78e314f6ea9e1977cc6932674fcae16d1ae22f3e05fc5199aabf7c342d5f65721f2e840f8fda17ea8617127f2c3c12863868e561bf9c58129f7a77ae01c78abc49740abbbdf5c43ab3aa459fa7cc68f5e001a32d384201d8986696bd251a4239f7dde58dac8c8651eccbdc319c04c25f8e02551487f2a0d30bdb0543b7f40ee11a4a04dc5e1624d123be2e9a4efea72d6fec13740c7762bddcd4d1b7f602772df26cc78f3b5ad6111421b7dca04c18026ca8152c215f90181b8d04e33a55dbf306ce75f5874d1c486378a0612f49a2c0bc24d2b220ad7921c25144312252b1023ab989ee7a0185301a1c5db43dc098501e972fa8612a4be398f51c88fbd33806c36876b1967052d3c3533fe1516c3c8ca1cc5363e332af8ff4ee9900d49e94c668e717e18225c5ac57f3ee59dcfbfa6c640cee124bb824c3f911bbf066faf4047496eb2d00be42ebe859fe790aa1edde70f1a313e49195585eda0a55ae0857eb2185e1d48942ee58f663533e5a94613f58b3f968cd2fbf9a5c2a11aa2c7e915a0aa5e079d362152449fd35f30b0d3cbe9f301ec5c860c003b3d9b5687fc113b2ca467ec057a18d423e628fa353f810b5ebc6621d9c5f3c07d04680b5194b98fc666a8e1ed97085e6e67cd4eb4ad29c2ecadede2d27f903d3a00b74fd84a218f9c017efaa77ca4ef68d27e67b2f6ab66194c4ae84e585fe5cf313bc69306bb0af37c6d8d7be536a502260e40ced83258f301d3187095ab1cefe25542e6a0d088b3402ca09e56b5184d01ee2178e53b4833956e842cda7abcc047a94c6ce556c7d3402cf9e52a60d99bedab3381328152b02f20b3dcc220d848725f7d5ce86e59a495278db02010e540a3e2efa8f120783bf84ec5b11457233fea24b1903cb1df635778af8ab6566b65d0746dd60790605007972120158157b0e835ea2cde733991eaac708f67839304a160cbf5a390639ad344e78301b2d1c7c75109c601901290b01b94b3acd14348c93a13bb7b7e1961404d195a806d5277444d21b8e8019d67a75cf274c0c2f5d03b9306cfea252d2ab235a4eae41cf0d7281d177236c04fb972af6cf134748fd794d8590e8648a023a1b4095609e879b68509e1ff28c97a36f14557201d21d1995be33c0bea9e26057478ac08e26a67b7993f513c53d1a7c0735ba3b9ccbb046d02de7120c7af32c13c38f391fc1ccb931ce1d5aa6d4d42bc61dc8f4c27a898fe199294f93eb45b82e0c9040df5e4df88b428f2da0b638836488f083465934e65b4740c126f8c5fc60479ce7cd8a5d8725e389901b7cabf2c427b4dcc239486d7550f9aaf8d1f9b444231ab92b261b9f492ccd95e03e7fa11b17481321b1e3c05e8511f11ad0e11866fa47f7c21fa8359e70ebfdf916e868941854921dad0c8666493ee13df0847bfc0a087a9fc40954eeaa7cbf9a7820ca34283ca02673869fc4f76523fd268142094a86d28731bf844db09479a1ef659eacc69da9d2bfb2638ff6b600c32dfee1db8d3cf82eb7b236325257a0bef615338979b2b780fc1360a530b314c23751b0c20cc2fa39f782991c4c0d2c61f6fe95d99c3758a1b0bdf22aac7c3fa63164789c1be6f2e4f383690f8f28c3df7207f0f507c80baccb085804ef909fea1bfc8731be937be88e1e686d776f386daa687ebec036911043ac9fb3b9d7307c9dd6e4816d84f9ab52806a2956b1ec345e3a93cb6f69548ddf2f312f5c8d749fe5c0e44efd85d19df92220c807217137c5b000061b06fd80c439193a68e27ed102435144191e15f2c456670a1b420570d8a80b3b8b25a1a86d3290c31b547425594d1215295a0190e0a826e4cb43a8a259d3334040e6d363195ad370c48ac4e770e3948038a11b832906af3272384142a66c08598c3f6c99af59a082a1cfd2190f0a18b6935efe2d73984f9b6b5a283754685e7f53b07b6c0c8aa2e0c0b1e84c833f39db134ffefce730a8103c11d302fcd361020fc3115e2b1efb9715d2c4311e6178d9e70239d538d8910eb3bc9e827a80060345199f575dde4c51aeba218b56eb743a2b76da0a3b8a580742f9097d5aaa8c1512d4d55fbfd73acea72f5cec7b3a955a975bf2045b55ba87f82c4f16d39c3856708c482a88f963b5bd88a302f89b4ee34513df9b30704fd478f90949d606aeb4c029357f7743e2d62d41ee670cbf1878eca7066a5592c0e04a5fcb25d41215efa44531233a82b3cba87273bb1390c010b90ddeae9c14b2cce6e9da9e49350a62c5246dc182ae911db08ff26018907b8fe0042ec5fca4a2d36b3ec599fa6a10a30009c045fda962dd8354171b63923c12de7fba2eb76e7085154f5f06995b6cef564e18487f7397c17c72be28675930c5ed8998bb642c531915142e5c2b60227163273291bf62f4ef6b3471c34065768fbf67595b64c9e3afe32fe143dbd53d04f25e4cf5d1c75bdf6898f67bedc73d870921ca1d3cfe0d3a18020b724d5bf396684de4ae8a020cf64c78a17707f8e93dd084ba5ccaf7d02090288ad2cc37546bf277976fcf7617d4171dc8e9a676827ad309dd0295512463379d5dcb05f9be3bb4f37cd53bec977f3db060ad48329da3d74cbcf863ad227e67de68e32ec1a1fe665596cc1efd46da138765130d45526176cb169066f3f624f0a7cb005b97a9cfb1d1d353d828eef346c264eb6fdaa7b25ccc376fb4cd1505dcfe76870745313e645bba9bc88a5b0b5eddf3d6c3af16a36e0bda420621dbee37223ac8712735c3a75ddc6b04f10f6e1f5df40123e5f281336b8c094e2099a76a66945c897571b92db6e65abde3b984bdca6e1a31022067b551ff7f07464516ee87272aaf53a84a0a81e3aaa75d7223e983198e43466c97df89ac10040ff09a5c503919061aa2d94382ed0b567b7df0d296d4f7782f120211da1892006d6485d6a960eb5cb36c3c8f469a17e4f812035f12710e75cb598b2eb1723bed286ea0b5002d1b373f0b76eed8d03164c8e5482a698fc5b1a1e692091d090f325ec16a7095b0c8bb8387b20467f6b6d366a2ea38830e4a742323d7133aa05971fb6965ce4609d06b264f126ea52edc91cbcfaf8b7517a9060228f1610cc203fdc5ff5076246637faa46649cf395abf599baf9c7e3982c6b1a030861f4f3f58663bb63958d34358766ef4436cc72bdfe96bc8a316a2a4576c0d24b9f0ffc4a7e9a0dd5f68d1fc12f8d36e56ac63f9fb1c111ade5d47adecd9aca261ffc51cca3467facee975316731f4415a300bc308b0df9883147327a4baa6c959499e4a57375694d7e78ee11c4b2ad82be65ffbfb9ae7152f4dc79dd41390869358314863cac608eb8f4242d61fae230644196bfd351d81759dbfe734b7f8902223f1001b6d8adc1e1a8f4edeb3c804e5cc78cb1a975c7c8ea4566fe3b96b1d6bf3864e20e8521e7ca079e4f7a6fb4271f1da35dd94be1c1782998186cc7a2de703caaf2b5a08cd96c7f9869a31c029e297be05d14ffe05979e9007a673bed4facf74ff24cde374175abc96d66246c983ee98324f2683c92eb29b9b7c71869c276f46987d9c1268e25791318b0082425ef1bea2bed465d1ef4f45f4d2eba8556974f4137cc77b15e9760972bd164485addd2d64526b2ea6a6ad20d88d74788e71ba3503c44944dd76838d45b9659014ab9cd26342e62efe9872bd1ff0da197a5e0487fd30e5f4f0143d8bca6623ec834e868032e7db4a13004c3048c7d1940636528905987e81342c7ac5820382250840325cf835761bca29a61b30dd99019e88924167764b9bb040af84ff494869f9f64a08fdcad74fc12e76336db84b9dd0d48716007c02d598e4eb069b774c78205d3067b53d4652a4a2265936b2d9537bd78c32fc851a19d003a2fe658f0d95283bf0f3abda672cbdb57a109d2b3d736061cd9eea479fe6b299380fe23853a2ded01e55104a69dd81246dd5d3f47086c8b1282a1f2ad7a0c39ea0ef49c40ee9c65c3deee9a7e68b1489b94798e0b4dd614e1ac914afa41f0c494b02ccfcf3349ab9c865e6b87d068c72d26abe3197538a70d8a916d102c67f1320d2656796c7f0a12a14cd779131ebd119bdc4c18b217f574f560ad51994ce1cce38c394b2a3e7228aba73c253be21bfb3aab81d21d25eb357906486006e3a20e8769da248254ef8e2180056bcbe86b937d8f0b1ef6ac0cb5bebe747e278ceeda436107e67dcb672325162ffe1090307f792ba001a9e360c7d34b3b7cfd4e1151b27334b1db3057dea4efd1f7e7ae4d2271cc6975ea611613e69c38d3416656636f712cd1bb87f9f83cd99241942546f39f0a97254d324b22b4597249c6eadd60131495b4bcb246c72aa362687ed58a57361be3169136457a533fb009ea22bb00b24daeaa6452188618d55fac98033b9e085ffbcca9646869cf827f888e89acd0a2ec8f19e998440577242bb99ee656bc6e32525383b916842e2ba3c57d02cae159ea9180d279e0ce6d69c6f3022eaa564f4e50cf24fd3a11e06bd86740c27f1ea1fe2b40875e90b551a3b2ef6359301bf7483f4f4d1e09f46d1aaf37b2e32c4ca5c3e6e4f116431750074023a81554f51ff5816e2ead40529275151b0467312fd3c6d9f7a23aff8bb29c65f126d20b4daf8bbfd583f589dbed3bb4e5319ae12b9d3ad890e304f399350f0408e9eb98dca1c06172f42089178b994eeb168902ab1d27815dbfa64f6151886fa006a7c877a48047ef32f3c05518cb7232c2d32b681187530137791ce4576ed17fff7d5a2066436ca2b30b12bd3be6260a74a7c4bdf3e4430100cac019b88b19449d907fe506e1a676a38c1b01cf0326e53d8a1dad5523b66b10758cfcc85c8e18e44131fa9d8fe52c26a6d917eb1fe24821e212a5ea2ed4d22134f0e4c06bbc95103e5de7d49fbb0e1007f8a06ea616903a29ce8492589519643992215c6485ecc99939b881c2783d477d74db03d1c490e64606a8d976341811a8b934afa1b3deaf1482aa097cc33be34b1cf7acbc1a828a9409d698f67f4655e63e05e657f36aafd13f50f614607ea6b9e4489d82077f4b266d532e280fb853cb11182fa491a11c6494270721fb26cc0e78f002c113d4261bffd87669cc08ddef298f8322e900fd356fb6a5256992542e3f18251ce8c09db1b4e1546c04090027501261c0f6e639aff54c365551257b2296c60dad60d0cbb67053e41d055b628b83ff946ca1e2e06de2346acad67b8b1f40e6e81a164740007db4cb5a0d46c4d97f26a66df04e49084ed61dd76a7e3b4a9ebdc877728f013606c60028c7b1e270f3e0d25aa66faaf9f0470f71c6d9b5f06842ea58b3a3fcf5c0c2446ea58951f60d901484d9462d56739c0987a490976f1410e00181faa891a6e9a5d9e9ed9c43b850ea024c86bde19c96916d4c7b01a4fce85c0e1a61a9b5d84b0302cac4f330199331d6afe5fbe295f526bda2684342dd6c7405ad2b9619d6492594e596918e55a4e32be18248c9eaf86494853b8e00c918b2ecb12ee930a211c8451cb6c5ae2574c7a51ffeebe3fd8c7712d4c21046a52ee54d0d02140c6574f85549b8dce878f64db107030f8c10fd4b9734c1754b677277632bd3457b4ad53309c3a2bd358f76d2dd3b8a2ef0b3715424c1f4f89475a4d46a5b2c885a5c1553492b43677515c6a9d87d4617d34cf9f6c6c846b6375931f8135278690c5c1b4535ea48c72ff1f633fbc221b88f48a391c59256fe23dc95ec44de65d764d2afe7a8d474ad8e512e1f75fe092e723273da4cfb275ec8dba5648d536d5fabeea3dfa0e6a379b70ea6500cb0615c3bfe26a51e93f4263d96bfbe98540a6039b18d2fa3bf34a73b107c1d17e42bdf9e8de244109ba09644317dec834591423c1186289df4097bdf01f2f8762a50f2890ffc7960d605bc15eef165729326f35ca4fd4acd9a515d4a464a461f4784d7db10b01bbce22d62b2946b4aa5305c2f0128d13e1b7039a712f41cff67f4f5e011433c631d2c0b482454c098295d721d406e4056fd77944f9405631ab6c8d445dac029038e4eb521fd24151ac684d33255d4c30ad313ab7647a9c01e6a8c69b0d2fd3ee08f56433a963c8acc395ea9a09ba290d51a31298c1602ea0dcca07e6ddb145271e2bb88ea9e2afd89d68e7a6e925ea374e100d3d4775dba56974bb6f4f4fc386ee25e730e7a3680812d462ed02965b723fe018270733c6d9f70a2cdd06bc8cf3c158cc9704b8aba6d80f9ec75d8d9d8f70afa0c5a23684dc8d52aedbf2662e832468d441cbb260cb2d8517c715a9170dec582f3eaf4516d9075d20679686faf3247a4591da4f7a7d2940105053230f5e0189139c216aad7b66088787a571fa8a0e2200980428726a938aa37a0bfbdb45f2d50ffe79dc2826cb7ce33f937b8dc1bfb7e6555d9d50654da22882cd223a2a822cd9dae001528570dd8d51ad4957b61b880d1ab0215766a5bcb29362f9a7b6345714b6ae8ef38d38f4bde81da6ce26d1e956754fef8baf7d87a84d32d2ab3eb8ae4e62f894db4e854b3ab594a616adaa09dd60bf1411c9eae119dbc0df441c9283751233dab69919f74324546ead0e1f70b1dad1e472d86152080862ef358a2e55365eaa89fc145a25aac3897d5547a66ceca54b733bf6a0acad5285a46801489af6d39993870067637fdb50d180b9563f7f44af7d4c09aa3d915e52ab48900094014ace7880eda64142b3e8f027affe9077d29735dd4db3a8c4a2ba27b3a125a146d0023b0d4560b48698c8f8854a44f627711adf822a70428ee8bc49c7a7d8b7cb8578d196daca68f2cec935fc55b8bfe1545f06cfce65c04af439986a6f4c23f45f37c9b4b81951d7d95ad2598fc263288b0d83c6edc3db535f82fdaa0841bcc1646fffee37e82b7c5dcdd6a0e30c1478645a4fbdc7f6cc8b962940c3283d205e2ad1e0597303ffe76853c9a99ac3f432580699ca113cd65a5023eb5f84a63f88feeab3dc8c65aa05d4f384c8af5103c852300cfcc81349dbd001ec64aacffb904d5fc5d0071bcd30ec86aabce97be62aef377485d4bcab1c1dcb0988593a76eea91a1bb7a47caa049d23c514148dfe98a9de869312a3d4db857c1057c34844df2a9284fb0978fb844102efc713d3a55b0e4a57e7687ca326f8deac6012669923628c958c168d2deb462fca0b0fb2a33bb920e5f1c02448541b9911ff6fe41726ce5f30c4be915ad6bcc029476ab017da0e8c6aa81075c9eb207720badc5b767bd460ed689c661ad6b7e2d752e968d09c07c8b4aba288112ffca687e5e07068b4be4f59d5ec35df29d3fc4e8075173ef6593c7cbef68322386241fd9d96bbd1e6fa7f2b056a93621fe39b6c114409d131467ace8375d76cb31970852f6aac4aeb051b1f6526748b1400fa5bc7c76ffa8ad7e8c8bad5534c287bba5818cc09ee81c53c395f028aa8a95ea807204c26199d1746fb915212fa30b44f2d2fdbe1297b7c286caa3137eaa967254da51ac5282336237a8556a22680351fd028804d66cbf6a3c13826d7cef6145e447280377b0d1e11babd2f084b5cacd797d45cc5aec9738b0bc029cddd0d6380d07f9964a63d8fe022d8d63b316dda1929d55503edc0b201ccc26f9bb4df1aa6374ccb13977548eb137d5ed1aefceac1d7e8d9a7f52233dc6378d9c6a36a8d00024bfdaef897835d58a5a42fe72c94040b1510708244b516882e25ba3206789a0f58e9d5e31c0dac04353be3655c69f009b93a5181d811f0d62e07f3147305c8bce6a5500606db7c796c5160212364ed81687530b914483dd8f2c69391a5a6d3cefff9d7f3daed654be81f68f49dd55d6b6194a44dce95a1f0beb89ccf863837b7da1bb77b87b6d41e72f75a5c6da49ea330c57ea76bfb1f7f237c115a207ae82211157776be06ab383589a5c945434372245cc92d0adfbdd0100763a48455b83e5130a5dfa4b25bdd3dc9d5be2e8ae49f041fa9bff4146c4cc9e836d31d05a83ea5876d3b5cafd18d09255b0a3e25d010b1e223cdeca52d6bef95afbef3312a92f97c759329e05305a27b321c66b168eb765a9260df1cf5454584a2a09bd0ede0c7eda96ad6814db37890e74110e61c926a7905d59e5b81ca6fa30cf919fdf73eea6870d3ee99ecd4c2cd5acc1fb8b4f86cb4eb56ac91a0bca0cec78f7316b767b23ba403ce79a04e594e1af3ef0ee031471f5eece37e61bcaa617f0127f6e4ccb586089c1624d71d0ff8057edd03e98f6da740fbc7f1396c910c1117ba2fac9a40c7c327d7adf6bc15dc38928b65c2581b6cedf4269318c0ad5ce527e2b4a73981635d116c272608d068945b88cf4300ccfa0262d51c542fc9d3d9da96f8058c07e617f4a7f0ffdd376a1de760b0c11d5a228a2565c38a8d7be9a985d2ddad660073d911306003990f1483b1733c2959109844abb2a98053341e1a78860f79688b9d3ec6ea89ecf2aa11e5cdc696a810f9cbf113e635b90888ad858b3010e83ae1735e6c265183d2b35e80a395ccdaa5d3cc61326672420da04cd233c4f8e923cbc0d81a69b5b7e0c0482cf95f628dce31675465f4b844f9b232ed4d65a816f7925ae6200cd4429e5d2269403a82e1c7f127c3bbbd91aa3a00fff24293a46f08cd5aff05e20eedde5135af5ce76e723847816287137d56b9552c44f6a284377e4082038cc32734ae33284a62a6f03d3a028b0fd1545dbe910b41a3c3737ca9d5c4751c6b3b950c8069edd6514f2a83f8854192e7eac245a9f4ae686646a487985905bbab34d650b326f670c62fcad0022c79518106c461f9dac41d7d8b38d13d62ee294bdb2f4dc206b02a481a5c18122f69973266f1b806165a875865d6d33456f39bb3f33159f20c521df7cd2cb50f84df5ea86d3b008c98e40dc714a050d00846b4fdc90ca4c76489ed49bf7a98a3eb80c9d598a7ad34f8cd8a015903f095a26417ac1c09806e224c2f9001844f8960f7aa5a80e7d028ef2ec63b09b20455bd87b45191d8a93b228842c9f9dd47e517e9e5c24632aa3a508237353a40699b77e0edf96e41c6ba76e54c30dbd68b117d7025ecf557916e45b90e6aa1724278b4fe45beb9cefadb6d649e3b073d659265e45848ed13e9cc1a5a17df5b2429b6622e9e1dc5c96cba665e50e14fdc462d38869ba607d5241001cccfff38e45f22549cebda5f4abe1ba6f7ac266064efd2730e13a7ac3914834e2bde130136a1b34602bb5f6471c203dd58736a0a59c96a63c6c5aa6b700d69f10f5ceff65f83552781ad5d269287a909d66c7073764eb8976426c856487fecf2d3e70a0a3a25d98eff7140ac36a5e37e03dfbbf21fef5c6261149e9ac939d7188a2abf5994ff0e0476950604d66673fe1e7dd07d66910d9443da65e0fd9d5f75135c57b2aaadc69e266a894f0b84371d42c3966af2752911505bce78d0e96efd29cc4e58e68b50197cbb29e4077cf5a0265090f6da59617b2a0f5510aa5fc4f09af09396f1cc5530f191c474080dffee0d895bf304095e1f177369972a43b0462dcac40455f254fa0d8f2a186a9c0ae0320aafe5bf8a061cab4c2ee713591ef4efa6075d07a376d3b02c09b16270a360422189d4057d36d39730d500e52a29a2399724538f80f4ede42fcfe9a98da892dfd6488843f4d8fe3cad80ed072e652031ce33c808046d2f3100ad7e946cc64a317a48820f5ab3c9b8aff3c9691a8326f9ff7a0659b07c163429e3db01827432b41a1eac3bb0e2122ccb7246dc1f28b9a6fb952b0b84e975ac5059a599733e8ebc5b1bac7414f6276201c4ef09c01584516c187be01f03c1db810e28fed5247af526c749dde0aaed286f2a6d1deddc7742291ef6534d31b121a33033ff079539b842697b4ed48d2482069244a8a461e994d08fff8b3816e3a40c79a521994c6499ea991bcd18e2b306f5bc97a07b5a18d6e93951c565cf6f1e765accdf5c9d061260bedb2b52aa0c4ee48248a5797e45847885c0637c2b54fa47261f5ed979551e4ad25a37c08a3f43e823fef0330681afc51c1c060fc3de387fb756d2f5a049e800a4be1dc5c80f910a37bce1f3185d3e2f7fffb08d60648976488768b9367f2a783cf478485a7eaa032634f33d818afb683ca71ad5ed4fe5eb14d8d5bf586bfa7c4213bab5b421e41dd51e16228e1e7df113f2b2ca7664e9972bd28c2bcaf9e45f6a9fbd2766cd53caf5f7d03b284b7f4285963cf89ee4a3c433752f912de2072f461db0f264a326007aace8f997d555378a88d7e820803aad8affea5c1b0d21de57c7dd07ea7ae37205dbb4c026c9d5052d6379795febabdc8f00d685b22045719592b8d867db9fb54078a1d577b0c711a60b3819f288f104fe3f36e060562e5c01f077c81669e01d6172891591e34a8f2822b9ca772f995e36f04bfc8f52212ea2fe9f7ef8d454d8e333ddd5a308645820a43d46d21f45a47f86987b54a3ef25cd5b9d60202d484873e5f70ab71c86a98a6833794bb93f460209ed772c0393ee3a635eb7535baf92ae0919c23d054fb32d497b153151a1093d7019aafef553a01fca6c75b60ce1941998a88c75a860cf481fb25b5da8fe4c3fdf08dc12a59b9d3f95de546d0540295ab83de1b4b9524d6a297afef166b0f93237223f6fa2ed477c3ae7900a949c04cf5ab1aef21c2f230493014cb1de174b141dccbc701be223b8db1390bcd9b427769fa117823a26254c2d32c1f68adc9c7bb1f72292a230522d4820bf350c67b3f3bb55875527040a15ced974330188e72b52ad3b3d38976b7a694fb5fdc400e86d9dcad7007e9513e45dbedbde9c146372eebffd7fd5faa0e974cd8513e57026ad1f8cb20d163d0953365fa8e7ba637291e15c96917dfaab1547beae084855df0305dc0b40e25540e2d1e78f59bfdaf7d62b810402888d80dbe02809e11712150218f845a78825a9a7f6d0b14fb26d8e10b5c156a22ff94a5be40aa7060aca627ba4208a739367c1973e7e75dc9f6717f7c7f8a6fe0543beaf0b88d0ec18d7502899aac8b4670d17bb5118f83bbc3cb77af6b714cc8b68bde9c8f6798ada73a2d509633f0860005c7232ad0b3a1dd89bd8645572a09be5a304479874391a2237b15abea0ee00cfd6045978ea1dff37e3fc9023e8626583ef8b703fade4be80c4a83e12f3d46ad3a11411611dcefc7e80df0a2178caf42ab32d27c7dbfa815aa38f2839e73b1b9c38222ac8b04c5c3f03a2c7a5d9fcb82a046a88fb1af524a1b333c27d0a0857ec03e2846e0db9e01b4d1bdc571d99508aadedcd375da3f43b572182380d9e88f5ce43e3993a6ea8512106a1c566be12e21e231978481c06f14933187d827eec28a1546538bbb8f712f38e1f35be7b724a73791626ddd468f35db584521ef84e3622a367b9a68562e09e14f49aac6c983faa4666d8b1e08edf0b8dcd9da7d6b31ac320e13bb3cb5cd946c21728b34c8a8e61919838ba8817b5d4e9a3990eabb10ba8193401dfbf09c7498a2f29fdc3881ab897c8ebedf5a100b257cdddd56f42cd5ec1aeb91b1c1cb451ba356c8d15fc8608701f5c80ed6f847caab58e4be2b1fc765df1a6136e697223a27e77e590c2f6e007a63fdb0af4c1b0133cf1529c0aa2013ecb964f83c8f3ea59782e6daebd23ef90279691593ba5bf9970255c15ef50e7ab56ed6495c8e5109a26ba318f71096a7f9c1b7e50c6b4ec71ffbdf441203ce6148c96bbd533480a3a272eadbbae9aab21fac27316148c008fa6453b167713260986af6e38a34eeac928ef0fe1a0e41c9a88788d5887bafdb11fe3e887dcc93f81b762b4027f32c8914501218745db32a14415da54906cdf43fb973c1fdc67769deb5597f556e7e8e4c7ee14ac5af0a658b0c0e61740930039e3784d76ce79e9b4825e50842bce1e71ae2b35399f29eac674b11c5e2402e5588495bd286048110d8216ed04d24acc827a5c2f4b3b220241472be1336f6934b19df2513866b64d8171031133b842ec6a104f5065f609d83372b187b1362450198b4fb12843bd839daddd431ff1592ce06bf9dd7007d4b46e6fd4305d890087665f24f21f885c2ef29a261ba68382d3d461cbec46e0174ee99a2fe8bafa18fb2a24c4e3fab8f8a2256ce1591c5a13b5e143116d1ba476bdda8d6c068421d840d1a5ed6fbc14d41646ed5ad9f8d5bdf57c507606fadd8ce0238a089f3248bb31be81c784cbb7dbb2fae1187d9ae60c4eca1b8e11216b0c9f3e84064c0b51dd5a8aa20c8dffaf1d8beb78cedd3c23606f061707c445750e904b50e33ccb5494da2b9da42c9e0703b0bc781d78060eec21d788535a3135f677a37e6005197e972139d6ffba39b6dc4fb86e0a59813e8633c370420f06f2db921f0383f4f25bb1bed0d0be122e00a2bce7c4358b1be6066c1b8ad6f523cc212fd44587a109efb6098cf49398dee407e2e105e04c63151b0fb6b6958269885189067bcbe447eb609e09fe72f7ff0c87e050149541f014b7fffc075b3c13c6e60726e330104b0307fe2be487b94552d41c482c02669c520b880d4123cbfa26b841a242d68c6b4afea4048e864d52db9de93bc95f14ce26c868559df1ff4cbcd5f987f528b58e67fa8937664356ca3b1230e4d816477a53ed803e51d6bc0a3460e2a5e6eddf1c067dd692cfcf2309ba213c4f9e93c5caae6a38ee76b31b8ece40c806e27198d13e31362a1f55b3f23b970a124c5c5bf75e1c43d5c4b2f83c40b056e6844b70d56205e55493af97c11b88792f844e00e4aaae1b469669abb0674af27349d5cfc45870a46bbeb62e17808002894948020c0ac6ebe7fdd345f5de1f1b70c4bb371ab1bd8eabd3ceaebfbdcb79fb4460869641342b6947b07e60da60d760d3546361e06bd32806c7c0c7a6510c1d08b4387fbc5d08b7241ef7cd9781c7ab7201bbfa2772bb2f12a7a4b3f36fe06bd25978dbfa1b7442f3764e35fe8e58e6cfc0b16a72221d185de1c19d8f81f9448e4917308d7d4d452457941cc6fdf3ee911dae7759226ffe2243d4967c9f7781d285c4c5444acba2752b0eaae8a5875719ab0eabe3062d545998255f7c68b55f7860a565d1b47298fd7a1cf79bc4ecc771eafe3e20cf85832413c5d9c8aff288ac5a9b84329859ca229b74121a76cfc86424eddfc06859cbaf1171467005ff1b8aac50b8be724b95c41e3f13aac1a8fd7f14179bcce0fab2e8cce1156dd151d20565d169d13b0eab6e804b1ea5e0709ab2e8e4e8b5577a5d304abae4a47285ec70956dd9dab3c5e67885537e7278fd779e2058d0ced3921c9fccca1961c0a3995f313bab3731515d55738386fe971161f5f21c0515c5ec39e06cf7396cc3c3e078abb7660d20311ab2e0c2958756b14b1ead268c2aa9b3262d58d3105ab6e7dcda082559787db1cd13c3ea70a565d98b73c3e07895597e5288fcfb18255f79e8a74688ed3eb4552ab8585424eb11c85c250c82998b7501e28e4140f979179ad3f9c068d1aef41003a7e0a39b5e33849acba3857b0eaeef0f81c16ab6e0f8fcff161d54d3d3ee787557726e708ab2e8c1c2056dd18392760d5a579e9f13941acba3aaf797c0e12565d1c97f1f89c16ab2e003ee3f1394db0eafa709bc7e708b1ea26f11e80c7e738c1aa0bc4733c3e6788553749f7201e9ff304abee690a0e8202416fe8a94900a80ff485152f9038158f83bea88253f13af4c5d18c41270c3a67e804a22d3dd016234ec5ef405b9ab4ec34c13efcbcc53e709588dc11ea553ffe54d42b534bbd2aaf2863ef09897df0e2cdc7621f3c947a51a7a2ef5464e36de80e929da09d13ec00d19d233b3f3b3e7487c5a993ef31c703a0f294a3bce530f5aaf870967a5100f84abd2d76ea95c1f19c7a533a7f512fcdca69bd3731f5e2b8b061958bc7bfa88255318f7f81c42afaf81756b0eac5e35f24b10ae6f1323facdae1f13241ac9a79acf5aad4cbd48b92390ff5b6e0e138f5caf4f055bda9d455f5d2c0f88d7a6f6eeac5b1512f0e9cc7cf13b06af5f819c42ad5e3271256dd78fc6cb1eae6f1738855368fa5db788d7a556a9c46bd281affa1de16334e807a657cd49baa798f7a6978d47b33807a715013c8c6b714b18a004d58f58311ab809882553e1edff262558fc7b720b16a008f47b158853a8fefa85765c775d48bd27101d4db82a75e199edb7a53f62ef5d2b0a8f786c55feac569512f0e7b5b8a76847aa7d5332a8a7380d7a037425c06b5f9f1494b3409cdaee894b17a006e7ea222c0fc4186cdaa5e7ad58b9e931a3d06f88d03ac6edcfc3b404c8e03b800a25ed55707f071c3c5010e204355af0b2da626314f6a12f38b7171950154f5e2fc86015437eea384d64bff19e045bd2f1e63801c01b88f1217f50271154ebd3e7ee3ab9bd7e8e9a981d3b3eac159dd47c94dbd2e5ea327a6e7e423c0717ef8ea363ccfc655bc9b1af751d2c3e3e1d9dc7836ea95790d0f002a365ecf69086183068fb708711f8480d9516f8ddb104287103478d4db7218213e2164d4a817467b4d6202a02631017098d7e8a951efcd69f4d4a0711f25b5de7a00f4c8d42bf3f754233e4a7c00c07d94c0d4bbe3356eead5711ab7d1326d2e4345c68d8d1b1bf751d2522fcc557e199e4a4b8fdff0b88dcfa053864ecfb6b98f920108a067c848699b9ac4a723801932bcd7fc98c1f283071c3f78ea95f1193fec8f9a1f2c3f70dc47898c7a79d0e6e4e1323c19f5dabcc69351731f253dd4dbc37178a97a53d7f1aa111f253874eea384877a792ec3a65efb9acf10404d62b23ca526317948b98f129bf9193633eea364877a77380f2cf5f2f0941496fb2829d53b80dbcc7a05f019dfe816a3de023c87a6de1841e4a07cdb3ee77d9414a05e9a0711e3393941dc47094a4d42abb7f4d9679a8466936c3c6d920e46bd28ddcacefcd6bd70c72b1d4abd2bdfe976eea364d6cb42a3a917c6776a123346bd3bf3a526d1d9243deb7539d724bae9a30446bd31fed23bf5d23ca77772eea38445bd2c3e5fcedf6a129a4de212444d62ae4c18282e3589ae54afcbb79a44b7dd47c94cbd3387c1d50be3283589cf1af15182b2721f25a87a5177a9d705881f08e0a3078f1d3a0620001e9b83ee3c0034e73ed09d0380e61c07dda949b8ebd09cba83434b5fd1ed2a3a7f83f26f68e936e8f61a749e06e5dbd052dd9941b7ba2383ceba5343b9eed0d0178f41e961d098cf50174fd117ef81d2f34063be03757119faa2ee20e1547ca5b4ee9cc6d49d13b08bbad38296ec0bcdb090812658615950cd093f59e08175a1bd820c10a1c1a26806822890c2605b284bf715159a84ab44220ff7149aa4ab4498873b0a4dd29548f370d547c949dd69712ad69d2638155d16babe5d7b94f30e611b48710b99d8600596e3eeac82da39ee369476682f4a6bc12aae48b0e5c78d39e3ec3a49ac822e1bbfc3ea95f71d211b777e6cdc01ba3b413b2d9f8f5916da8b93d4d153d1a9885537c6d0a909ab620cf50a070e70263e03d303363e8704367ea8579067c618b2112709d6c427354ed28ba3f8e2681ebd38b23940384934874584efe224d9c8d9f8a60a14df9d4c58b68b7026013570da6c1e9087e3b88b4205431c77b39bdf378453fc73aa3cc5c7df7fbedfc8faeac9f4930331fde437b2be373d4209af07b440be0f91f60469bbe9e404f3746c9ff5e4268d12d18e6a2122cf67862f75bfcfbf1001cf7296ba847678c8733f8fde933a44da01d0978fa32fdf214fcbb9ad7462f95461e12bf218c10007b0aa63f998be7a8fb0df4ff47e169ee84787487b623aa9f00c3f7a3a50ac42b1b00ae5a74b56adfc54ef107942511ffd4e58a80fcb39701e96aae474ba8aa902393de57cba4a2de274684dd74ea6d3e9ecf93855995213e01571aa4524c074363d479f5068bfd3576b7cdfb9d87da7ecab43a43d9d7eaa48486baa09f06a6754440258a50473a5ba7d6eb507a7688e207cfd0b9bd66e72aa84659d07260ca284953b881de50f2044c58e393176c581355bf8ae0d87c107463948420ba4c085229edb35c5f5d2cac408061270e10c965f54e0621abe78d87113ce4038137f5111c6cd7495b04194686692831ce420075a922abec82ca594ec830fbe35337c5723ba916516b1e354579b6b658013a21dcadcb611b992d1b51aa7e05477acf155a311a7da085a2e28dede06ca3eeb278516a3e421e0e365a38ed188cf7106ad4d112f43785c8d443dd35ba9bfd50622a2e3be7943705c85dc1db952358adacb10301ef54c47a20df294fec25588c8d3f5bf8e46a39e29d5fb6d0d642117345b8ee019128b6533fae2233bd797698b584921168d32a3cc3650770bf550c61d147af2a4f2d88f59a5c5243776c6b06e4cfb9d74768749ae35e497042e32e417ecf0457838a6922f251d423bac44e035adca2a44e4d92ed71963a4b06f9be13196485e86e0c31ca61289543059e2e221c227027326769ec003178f92ed4578a0ccf5866cdc4ee94099b0d0924fe5650a826785c965098d3597c150c642168ae0e2d9dac44518ca37d0c0152e9e0dbe509d8dafb31a51a5d9711c574bdd18f53aebba332c32d626ec063fdb5fd0d498d7b5beea5731cc3bd728ca4750ef63188661f78ed523a014ec2d02a560bb2681391fe157af62abf56abd5a2fd456e21f3ec240fc53f4f3c3473cef30948f68a81ae7fc3ed4bd6714088a32100a05f3f806a49c750053917f10990830150f439909cf70dce377ba7cd9b61cc2d3c925ca5b58e88823381b9fc7478668f4460d5a147ab9072c84162a443b71de7bf37478de8675ef67754857251c72b3551b1b1b7f582564b2411c58088b48a52658b7bcc1c73e5dd8c28b67889722b8c7071f879a73db32ac76c3e083f627f2c0dc870301e081a92fa6d3439e9fc8f362aa2f3027e2a775092530ff8980393dad449878420938e08139e4b90c435f4c873c3cf462aa42441e1612aab1c5a9be81dcc177e3cba667e2b19a0406c3babbbbbbdb0819cbdda65790c745c43166ca42502a6d25a24dc8542bd641744df2d397ce8c686068aa81fa5f7a3db5fe9c87567682675a0bdf9465f8b41bddd137b58ced63267a1360b17afb1957fba52f853e9b1985a2b03108bc03d9fa6eb325dc3461fd4126b0e83335c7659089ed89c5e0552282af23db8410ab342656fb350232b118c6bd74d3398c962a472f76d3f61cbd65376d8f42192d711c7b3fa0a9b43dc6161686efc696e5a1983ad4a10e3c313ff1c8290773b1431df5c8c11c5c3a7b3d1b08003686efb29012b88a2d3803756c005531898db19b01540de1c0c66d3babab10dfa6cc37e5ce43596b958538d331ca43a6214e096ddb2f0b61d9c6422c24c4425c762ea3b75f3a378f243fe781a92fd876ec3b5c546881cb6419b216dd6acc32d38b8feca69bb2ee3cba6ff39b1fbd6d8ab190aaab486016333dc668e7fcbeaea6639e0e53e6015104b3fd2c002f3eba88c5903eefd10b70c5040e50a8e10932d8785347a1c5d2f079bfa7a35028c8aa937bdea3a7c3eb1e7c9785567e7b19eaa01e3576229eaff069e1e30eb17366392129b10e3299300c65b13b4dd77e0a6168379cf176989a9e6ea2d02291d9d2b974a22874087b3cb8078941a9cfc10cb0a637ed86f9fd9e127ae59f39bfafbb4a4fa7a368ebd47254cb4fa856bf5eb1d52bc833bbd79cdfd7d5d8ca40f0e1d8702a3e73c277f987fe9fda4bf5a268fd9c5c612aca4ff4e4d99659ee47f010cc6a2f3d07a3280f68b3b7d06bfac9398e2ad1874358855524328b6d28376d1bc6fd2031b50298e5ea10cc6af51c0a7de957fad29585783223107b6f5c0f078bb257ea139be01bb1f43e6cc19ccf7c1818863911266e88b086221e983301898c4084253c5c9500e1381b5f162c219b6e91249ce5a05e713512cd0f15899e1149f1b5fc4622ed72e53726fb582252b7608f2d31a885c626a210a76a44d2425588a00e5b790da9590efb5be9b3d03bbf8b5aa137c66277cb3848ba6c778ea7f86efcd97e32a06b1288534750e4519e8399a2d408444f9751f8380a5fb49964244d409deff2976960651220d987c4130a84af7d34daf9413b4d120a1f07e5133e29c5b784af7fe3e5a314bce22e5f471d5f4da4133ee9924df8d845c431841c848c8d483825bb1c2c99f0753faf00ea0439590e823a3108662433ee4020fc4ca35128065626f190f0caabf231487210f375704ac7cc8f98a9a34c333a3365a94e582325d76b04bcc2f26d82e067f1c6a9117d1b902040704057118cf239aca5e5842054411505d091b89a3c308a9f97bd1f117270830624494593d941ecd00af98e9da90fbf831837cae5a1d7b3847b0962d1689b28759b983c452323a393daa379211a49297fba0ca7cfd11ca52331fd8baf5ecd4b0e62201b4f2749566a351a6da50a7be654392ea39b1249493cde919527252e136a0909090945a3afc656509095737e9f0ab0ef3332fa6e3a31d59793d2e938a9946a8419719aa675873cd1487eceef83a512d7bdf421ba97bc773fa943cc4dc9e945ccb2dc9d3b119308a7e4510e795e50aa1090a779f045564a5542f2c7a17047a943944a1d4625cbb2f7ee4478eff8dd97e87b27a2fbac4bf0bb8f962c77b271c99c714911dac946977ccc8e512399f862fd000545a389d547a3ee35857e36bbf6de1dcffc8eefee9336f5a925c70f221169d94963a6de4e0dbb7bb086efc7ee660f7010037aa65fa23d94e8993ed307f44c5fa33d9448763c42eaee5f1ec2096ad397f53ce98ea66efe9aeb7777777777f71719ebc7251d87a2503ffeccf97dad820fe5e41cc3c86d3afd041f8f5805dfa77b9f77aa2f5fe49b7a30a0a757dafb4af46abef928dd9135fba8398c2a3100ecc1aa8f4ff6ed3edcb568b13ef5e9a2bc97aff6c4faf23dbe080fc798d525940c318f7d89eed9b7faf29d5f8487ab4bcc63d7b6f387d8ce5d7df97e5287d088ccfaf2d51721f8d98988c7aec474ee44e5e7fc3e4964bbf753bd9aa5378a673b79dd9d4ad9cede7dbb8fcf8665b35fea0d9b3ed8b5fb649f2f51c80304a77ac6a43ed6efcbda835337f8e02f24f2e99066116e950c7050e67e4816bb90f8f94788c28218c38486b025412e280c4b89455cc7441c170f61bdf3641ea9a4c4222e2341cc760075222ab3410cb2159cd4b9241add9f8ab8a754958a051d556fcaa55e9b227ac60655af4d0aa5ded45bea3d4a25657ef54eec1c77841d754f8987f9280b6a6df12816f50c760fc33115b96c8c2e842a320a329aa7cf93a2a05e6147f3fb50a83f95b2b1c18e7ac5443d837dceef43a17eec08433a311949562731111331910d11b3ba088eac1e8249dd17be6c0f036141f66247b62fe5fbd8b11606070cc3902476592f2f91914a0b2590c58ed2f21c7cfa093b7a398947d1a857dd31945894b24517c74e1b3b53ea57fed5af57dae72cb5ac9cbb8f067b66d2204cb02a8684532d34da12f62548442f27b5c7545f4e9e9d641f827bb6d2402775888e88b651251f51039d9cc382580583823023ec8561737acfc16a38c2302cf380c5b4ac657a894aa1adcb4ee4149cc25a9ef29363471852afb425f2281bba999029c522937a55aab3aa54cea32b5fb264c9120dc330ef68c862c7b22516fb11268f2c9652e54b1a49238b5d2ee9d59cdf2797b04a48905807abf220273ab02ccbb16341584b47ca4f280f6853ce7129345a13853c2a746aa00396854e0db02c173bae55f0b9a09e835368b42a545a1616ce44dba312a8ad869dc39e7106db94f21c8ca508e18bf12952a867b06f72c862d73c212c4751f9510ebd202cf545a5e39e7209d42bafe5d8a513ac62397639d4ab52afb46319e632e71176e4512528dae3551f9fedd97d56aea1200f76d42b99d433d8e7545179c765ef3e44a67222debb2f513af7ec2a75086da52ee1bd4be2dd4495a49c8576ab572bc75a0ebd17214cdf3e8489e5444af545e5dc5b2a4b1dc2f4954ac4ab2f2af5450879ee44f4bbd76ef50c868261d8ab8dfa0843821d7b018605590c6bc2626f200c1bb218861171190a8661d8e386999edd47fb159cc230a4afc38e3cec68c38e78b44eb24e6a2761ef225661d8fc504fd9cc06fa2a0568b431a857a6638f401d5b71a857ae5e6dc7b048941df2bc0821af9d887e5697c8ded9fb4b68ac975885803cf1446f04b25877eda6fbf870cfeec5269cf22886d433d84dd839ec1df62c03b2d8b52cc862df5a167b49c862476c546311a7b05fecc8623c3ef2fd21654c64da0d0c384e86a008b161aadec6b3153e2d7c1093f0527234d2ddb1e39492c5cd30c8d7fa59c598b18a138b7a9450d483ed854ad8117760f0f5c00fc1aa582f9cc23624ea910423536036680904a7b8dfce26108c793a7a2061e37b7a38c53ba7df69e38ee9a56750c77be91ad4e15eaad7882ea317099b9ddb680ff7e0141f33c2b7f100e239f844279c512ad9d2f9269ac11917b099bd6c238c6cc2604de93b96b0d1721a8c6c92b0a6c441982a9dd33a8eded9713c88d8f8d75f256c2681f7e861f6744ca955097436abb37b619dd180833237a00cb8139dc0b13854f3b00708b78e57de7584d423e20cf8a3d2c2c2a804a7e28f883fd109263908ba102935240171078713031002752470040e6b71c49df81367c45fce117786380d20ee1461fae57823e24e0224007516d0ab2e1a11670cb100a843005813dfe3549bd82e6af108cffc1c7d174e07f023f482688b5db9dded7d588d88819d01ac228e00a6e2670a6c7ce682268458600202409d2802581377e2913823de0914d878a61b031c80d5cbcf8e653fb6b12a7ba65875a7a56161c2ec38d43567050eca30bcdda762610b19db38387218111591802a707a00811371448fa23ada821ea6823009ec107eb4d0fb615aaef7015605a6fa1bfd60aa65aa55be6e5ae61a8488659a4eb1ea368ea00b96638c5e944dc02ca3907eac84eb43990b99b06cfc91dd7eb2415213ee7708a73e77ccfa8e72676a035fa236875e101ed0424e75e788f4bb73517cd1ca38f478404e71bd3382d8ced0422ab8889da77195b043dad6bca64e4ed53c7a3a68d4fbd99a7a67d4989cc3c249e2d4657493468b1d815ec653ace273a569137c2c671f7c3f17196ea65b013b835e86e8def39e4a6406f5cc04ea99eec177719230a893811c0d4495cae3733890f381a81241cc2941cc494154ed3c3e87055195f3f89c1744158d4797b3d0979a64c3860d1b366cd8783174f362e8e6f066e8e6e6e6e6f0c68d1b376edcb871a852a9542a956ab55aad56abc3d5210e0e0e0e0e0ece2750af8408ea554faf0c70172e5cb870e12226262626c6c561cc392168eca13e3d06a03e4a6a2ec4fbc8d6a45ed538aa4935a926d5a49a54877a65a3d533f173be187a31f462e8c5908d5709f5cac69cdf8742fda994ead5ab9b39bf0f85fa53a95550af6e885645f1737e1f0af5a752737e1f0af5a752383fbdbab104c7d5ab1b3636a9d48f427ddfcf9cdf8742fd2e8e85c67822c612ae87b2e0e162d7435d78503c5c773db48587935d0f65e1e1b0ae87aef07059d743557838adeba1293cdcec7a280a0f57ea7ae8094f0d4dd273217a6a8c253d13fff1705cd7434f3c5cd7f550130fe7753dd4e3e14c5d0fed78b8afeba11c4f8da35ea984846a1c09d53812aa712454e348a8c691508da356af542fd5aba57ab554af96ead552bd5aaa57cbc6db30ead52a681564c3681564c3681564c3681564c3681564c3681564c3c8c6df00f56ab52aba015a15dd00ad8a6e8056453740aba21ba055d10d908dbf21ea15ce0fab5738ae9e89c7f9b9219af3fb50a83f95c271c5df58d2ab18a0be81d4ab96a29e89b7b149a57e14eafb628096ccf97d28d49f4add80c3576be8b48de48bf1ab12b2f19a6d241f8c5fd5cbc6d7d0cc36926fe6771564e3bbaba1986d245fea775564e36ba8b48de4ebe117e7c7c6635d0d6ddb483e1e7e715c36be86b26d24df0ebf3140365eeb6a68b48de493e1e6668ab18453f13514da120f77d2f5d08d8743e97ae8e4e152ba1eaaf1702a5d0fcd78b895ae87623c1c4bd743250fd7d2a1ba1eca3c9c4bd743230fe7c205d5c2e2e2c514a387421e2128e4413dda22d896c3a8d09621fa02a9eba12f907a261ef2d4742ab465a8e58996252d50b4b876680b9316224ec5d3a02d52702a5e081a796a28db1eda3c2f8eaaf820cf12dd0ff08bd35264697ce5384950a7e6f12d45bd629ef81623a8030475a28d479d8055321e0f4f4527357fd979cec7a9979dba83ed4ecd735a515a171b9f132494e3c48aa628c7470a1b9ff3b39353d352c4aa1836b60cf5eac551cfc4cf9696a196211b7fc487bd218755535373583849392c1a94c54f4550a766e5d76607676b2a4e5215be9baaa1a9a97100fa4204d7e70e79209cf141263780c2ba58c8e4062d7b831fcb4fd1406ffef2693c9e866be8d4c0c7a7515335b3e69fa7a3a6e6f37a401f5c65a54975e6e9e07711ca3605693b6958c5b5c66b0e3d1d3857d4a02ffc17e77bf485eba9e8d48467e27b0b5f0eabe2249d5e1fad327e719224ace13a3935cfcdaea32f44c013c1583fbe44777878f67a7e1c7a3f18bebb0c3aa31aa162b70a3965e343b560f2e124f50a888cd7a85820db6b7e8d50b140647cfb0c19db6b6e436f116b7319f4462b833f633bd75cd3f80f359ff4aad8a932afcdb7cf38d36b848add3ee3d0d321e3560685d686424b83decfcea853460d02b0bf1001fbf007bfc436f4465baaf4ce60d97819ba03bd31926c3c0ff4d20cd9f81ee8a539b2f1297a6b5a367e86de737b2627b63d3e6a3be2f90790781b709087bcd684d59ef1909f5538819dcfe6fc3ed4cac6c6f68d86862f48bc692a858f099bed2dc7b68deca04abeff4155c4a0f6437e1e63167793cd746a40f38028b2838d1548f679a63e8244ec4086442be3330d9c7c94f0c55134ffa564c0b82a3836580c6e8965dadc4a5ce7994edf094a8aca0a4b0bca85c54b0b17303136be20642cd7e45d0cca9669921267436754d8335c513ca2c20a8b9dabc2628f4716e38ab8a2f90d897a4fd0ae86c280f199cb3827e3e990516b7c3064c080716e87ce86cea8f18666bce67c6e6606cf98c1cfc139587677bff80eefee6e9d777777cc73dedddd38efeeeed5bbbb5b08a77a77770bb9f17777738b5542f8e6dddd57b04a888d7777b790951aefeeeeee6e213452de424ededddddd6d04ab84786feddddddd2dc32a21326cde4df320b10e56470360a77dc0d1c30e9165e6188c6373e6397807cad60700e0d8e9a1a94eaf500aed0b0a5f744ccc73625476c8a16c7528dbedc546b7968b3e4ea7b8a0d0c65018c37271f9ca056545d9e250b631cda94e3868a7cbe572dd78f95e284f97c9cd6ef1cd69b258365a4c6c6f5eaf570daf05d562c3e572b968a4746c354d6b9d7027d06a2c96772a31b7652e97cb25c366da50e6b2ceb845936934145a19d863f0d0d550189731f318b4ad6cf18aa710cd25125609517d7505afd8258fb84e606984d0bf38cddb88573c5fdf91a579376195909bdf38cdfb095e35ab67b04f286884b878cc69de40bcea19f4b52ccdfb08ab84b8fca50a5eb5cb6585eb0a57fb1ccdf80a11affa5564d4af179396db38cd594eb09e60416169ce2d9a338b57b2d5e29f1603b538e80a1aaf719ac72978255d5454215d56189d3ce5348f4b78255f3d837dba681e4fc02b6c22a1797c82e611c8fba9157f5a343f8257986b0a9a03c12bcc6584769af7609590ed3487fcfa706c502d686e67699ee215f692a9b9cd692e7995b17a063b8d8cc738cd539e0e1a7661d7f99d38ece257af36978b5f2e7eb95e16db5a2d568bd562596c63b55a2d57afe6ebe57ab95eaee972f5cbd52fd76cb5582d568bd5ead564b15a2d57afb4d7cbf572bdb0cb57af34974bbe5cf2e5922f56afb4568bd562b558ad5e69ac56abe5ea55f67ab95eae17f6c25eaed7cb62cf58bdca5adc42a13216cbb65a6fade25531eb21d5c337a4aa537370ea0e34f505e5e1b5bd362a78c5c30ecfc12fd8ae28b42a97ca455dae1b2f7ef3628717322f9e83b7966a6bd1ad45d38aa1b90b1a195a6328b42e28db1b14da1bca76636dac8db5b15e5eee425fc43ce675f372f1a279adcca82e605c7c0665fb42a175a16ce7caa49933a68d16fad2e2e53978ae4c9a396336df85850b5b1b6c276bb2266bb26ad0886941b5bc5eaf57ca09cc0a4b0adb1a6c3597cbe5caa68b14956b33b46ed5d6c96b7182f2937b946dc65663692c8da5b1b4eee5f4fdf49af1ea17bf368e8567faa6b1cd5c2e97cba6c6853bf68e7b0ece5abdda905a336ae562c8a81bd286b4217d1bd28e68bda12e7cf2b363aea8e7e48a62700d65cbf5d0cda07c19d47b8253d861d01a0f0a8b9d599f91c5ee1559ec93694ae76030c730fa92943ee372124fa14e9f9bb73883993a4e618f41a1854121639fa19053298abd07ec3c4061b1ef203364b1bfc05e9bb0d829c5fe208b3d063b4c3c62b11614f6cc0b761656580c4531ec2c5358ec2b77a2e038c1f9e88962f7dea1b8194df0f55988d4aa1069af376431ae08892d47d3458f37a8d3d5db01acc18e7943b0067b8fc11b3a01c54411e88083322c8e522f8d8545862ccaa135991ea4f44bc4a2a45805a43bcbe139169a42a12ca79b4e2c2867a92bcfd12841b897eab9f06d67390bb782625aa9283548e9b75bb9e9275a8394be72d351e89516e52bf4a2acd420a7e7e81c8c42a58d50b00a9e9b85aab0b4b7c3c55bc09a4bc4a67c1ee631ff3998226cca69026ccac52c0ccc29ea31d485c56368cb61e8edb129879e8b7a8b0cd9947a8d804516489014d32f3c6af18417fa838c6551e30fea043786c0f253e845a2ed03528e72161a2425252525a5526005e5a69f9c85aab0dc2b9d57be7214ea9dceb2424f47a1dd5574a45414944a8193af22e162b99fea4d414abfd276350857937840dec82c45a29e318242a18ca420a471a30f2cdf084ecff027479ee8ea9927b6f015d133dca367e4e51f30db88123dc34630a25ec1cb7374b160022b129bb3c1764e7addad6d745ed2d99534199b61b6b3b05e7e3c76fe3cc7158bbd513ec7da27cc642c27bb98868f0fdfb0a5c065df145f13d4cd075d9048e32ea1a4e560cc8674635869fb09fbdcae95b6f93ecdd3f9744de5b30a3e2c5ac8794424ba6cf964215957b2524c2a2d2b37345c94ddd8db42fdc2715be8d49db8a86a5fbd7332333333333333b30e7679f97a554411bd8a4344295556228cc844d4518dbdf795ac3874256b65e8c65ec92ac25aad168d8ccabdb14287d95ba4641dd1a357d28767b2a34af57e5af56abd6495a66d92d5d52ba160a957ba564a37cdd351250dcaf43002e809a378458b091f1d196ad2491249e7e9d8a0f7a33b7793463b27e7628aef7a875a9dd4a33f5fafe2d097ea95cbb348e452b9a8675e7ea74b8a4a853d233f1722ee123dc1f64824051721b1d9b329be264fd84c3a01a15111ade2add659fb0636fbe49564f54c86f2f908775a28cec83e3f5350a48f5c0285346a592489a44b0ee1ca20b05ab26e3bb1d5cb128a1fb3c8f4300208ea70348a57708b99f0d111a8c34350873b09ea2039793ad8c5fb713a9fa3b593ac6296e938d6c15220da994d16d5a57213be91bdc00dc80ca03cfbdecdeac9c2c9b4132dc4a9ec1b479570b790906d091545c9ba421c6aa1a199a1aef8ace87ebb8aeeb7a9e82d78cfde4ef02a12f14cf6ccfbed2ed88cd9de9e22d5e452a09810f513367b249a91e874e8ed60e1a1b3f1f1c9749a9387aee9e9256afa4653aed1b69b646525ccc7e4529d967232691aa432e533e59432270ccb2a1f3c7ba56fa5deb66ddbe2f6a9d5b96da517efc73637493ff6b1d97b38e1263d74278a721f25df490a2a967ee7519e8f5991a872a6eba8f649210f9632b72ebd742a3dc8c996ae452b85787e1fea9f2d3494b27dfe6ec75ac8c5f3b1d55b42793fe6bb2211eda95efe26599cca6ec2faa4858f7f20dbac7252e1bb9235af5d429b2db19984c266d2653326f34ba91775aaf7ac948d4c0f23809e308a57b498f0d191a1269d2491401db6da59a4cbaecc8d8b5895cd9f844815cf47094697ea550ba17c92a3273a39d5422a55c824a4d5146ea27c28188b67b25f16ab82449bf24ce8a64513240364b3df167c555cdd8772fae59b7ea58fcdee22e5a7b737b909a7dec9a22ab49064b590cc00843af3d95d5c4e4ee65699e18a0f96f33996438f07cbf92793772f4a6162554a8d491d17bb1374e1b829455182262c0c0ba32041926d8f47ca4fceb57732b10059394b0592f2931a9b58a12aa667f508145873c3f23b8874211c4e7508a7b22390222bfec4ac63ec1b952ccdfb308cea9846beef905392c7f71ccc3c58de7d7a3cbab7b4948e84346df3414e7656d43defc7a9542f3fe59df743e5f3f2579ea35beacb0f1d90953a55aaac40526a4ce2d40985b7937713f56abc8253d90d0e0ecb8f49fc8e7f9866a69bd28753d93bc9ac2336daeda92f65b31410fefccd24cbc75627a7b2cf0a5b36c6f29888453079800c703e9383345fe48990469fee3ab232009bf080ed48021b57d0c4fa4496ccc2076b929ff364e733607e1f6a26427916109c8245ccb2f045cba643e95d7a97ded7b228a9f0754224b3410d70879ff5b34796652446ea39fbfb56a2c4c2c76b803a48f0b3ac8960b34ba3afcffd36d0f47cf44b7d66035c4d3893fd6339a036603317fd23230771252a99461be551235d796405a7b2b3bcc287bd6386d459866433236f079760966d5be528bf44239cc15ae99cb6759d562f74699b76d6ceda659279a6d20adf6d249b3d49fb6d38d8eafdd0ce48ac826d4527b1e7835bab13a9374e6a96c6e2e6b020017845c32be01547f6240f656e64d1e4e3213919297c575a086b5a1e0621e31512497777f4b110c201aa0192e108e885efff8818b1e1e6897837f2f58cbcf4c02462e490c642d8041a5918bb571c1c167ae7ce49efd786f3badac3ddf6c8c63a02c90824596bc271271b9f3cc9589cf86e4f47bcf9a434c527f09b25ab5a07c6f682f021b1cb48296623a491916bb06540e45f7e90df2ebf7d7a363ee338eeb6cf6bb0464e49af0422bf3d7a3fb68ea50e7b73584d9b00944c2f1319b0cc6a4f0707895602e1971d46b01428c2b2f2c5870f56de07cbd54224a295f5c54763623052c2168ee00937858d5390e27483600883e01f68580521d71b7530963d3247ef07c38a44b47caeef41161f691fc29aec59d5aaa7a383cfa0ce1069bbb35093521e3b33a63110ec439af0c9c32027391f6b768d5537f3915dc3fec918c83790e959989d6990d30da2cff7f27cae138b110811720a429dec177b0cbe68b143acc220273b67f0c14397c5b07ab30f89d23216eda4b16d0f862441044036868549084118dad371bb02c98e1d883cffe031e4dc64c836b310f8ee67777c08b38a7df05956c8150c9c14be4b63251156dd688940ede4b2e8eb03c1a9c8052570e1c7f251ae842d24d95b4d3b6be728486064b34b09e5235cc5a0cd4217163128b6ac2c793fc458ae4dd8f8ba7336bee7600877501e7f3c1f7c6df37e58c2a29ce98d29e77a65846cd7eccc9a0e2c7bf27e50ab55860249b27ce7020d9b44a10257ef88323242f49cdfb7a38747a68387b623c88e1d3b22843076a1344b2fcba523cbd78cb426560bd2882c5f0bea555f636259430290168565cd08968b60f9f06a42b03c6b902674b5a1f9ab314bbdf3a7abe8a23883cfd12ed176f5cc12da578033a6e0d45050af609cf9ced7804ee7b7d0cabfd34d75e5b146554b2b81e5df18163ac1435c759044459aa86a0b3f037734a0388377b6c3d7a86aa1127778ae64329934968a0e53e988537cb54835ce4485f4926823121d2613d521e5922592c5c23013c5962cc9b22ceb4c5487a6699a896a424273ce394db4836e7b3a5e2f1642425ab224b2220b1275269ab2c568afd6b24b4c5487101662e2a1ada077006b385e0b82353547ac8a67d85a50dc8196e1cefced2bf41496b9cf81c923cf2ca6f3351f56796f2ba858aa06747b0a96b9fe6449967f42b520cb1d74a48520cb8fcd3fd5db58b07cee470bba3341d5c6734c5d9c1837b03cd8c891a7859294a2c964327d72ca74e8c59fc953e2e8d7334ddf3330e20a0400ff04fad0e77f2d3006aeb8b30c7e0f705592549e0393a70f9bfe7c3c7de899687bb49b9466f460e3351a1c3f93a76b09a98b4826ba48c45054e0628c593f6236fad8e1d90f3235befef476f4d9fba12f9f6554a63166ec5c2f10ec7d2a656c112cb68be3da0d68e078d8412db4a45d4438af231c249cb3523f380d243487be2528d7895245464251a8f58aaf78343fd4539068167d46471009fea46e834a7ddbe7fbe763c94108bd1fa22d75d164bbd11dd1f2f4aae7fc3e14ea4fa5dad5737e1f0af5c691737e43106908220d412424fe9cdf8742fda9943c62acc541bdc28c7a863fe7f7a15af1f5b2586b7e8c197150066463934afd28d49cdf8742fd291bdb3fd606d9f86de3634836f2b78dcf90c86ecc75b7d124d827ddc0112c56fff42acbfa27eb1f18675ca2db48446439c29a780e6aacc65cdec04199fbd2f2c1179f0d71d90b11d912d3d53398a47049cf6091873b25b18a93efae2ff17d2345784a97f5257ede48111e79eca7a45ebd44ec1fab57de8790f71e631d8223322feb0b578407c3e8a412081c4f495a8a2bc5c8ba52882a7c10be3b5b3c17c7de53d25c72618aebd4c288e8f34a3711209f5522ef192c096a09cac64b6940f8525c163b0b977c694ded091c94b93010462b234f84937f3f202b8396b4e60fa7da9424fe87de096465ac93d533f197c5110fb52fa873c40209eac018bb071f19e02ac2a8062be160a54b06acac800d72b27d27b592eb8b65e561d7d30bd6481647a7178b231655b04a1e1161863803e23895ef5349911d2f5bca9651de4a086b8c81dd98ec8ed816b8c8d9ca87ab4a623c9098d10deac80cc5c24cae346ae502514991a162440a4a4d4a04504e68502470f2c53899c07782f11d7132cd9c8298bc944988d7f5e051a0e378e88670a51db80a9436991212db7cb12531b53a95d0328abd6586ca2e60251623318049982622db052fd10c6bb0334abe23acf1b4de344ed29845c96db22327b9d811153f6f568ac7ce711a1313d5922356e1c95014283092d9d9c524c8c22b2c540293a4fe33e6e6f676a870aa5b7a5d6b7cd99b1f606fdf0894651d1da72666b9e6682d3b63dd1166fe61e6ee037c68e3841e057840db9507b48c5dc141997b7245407b59f86ce8c3b04f1e2b08e214d55ef66a2f3b35f069cf9cf8aef6b22fbbfd6aaf1d1c268fd5c9297972453870f150e69e78ce07f5ccd144fa3a49feb6b0127518552c7e3b179505edee42bda3a8e99c8ca1a7c350ee2e68e92de8ca5f28cb5ba86659d01311a7b6bbd013134e6d47d1938b53db6550afe64fcf6cdfa60c9262f8ae0cb2dbefc965b76b84f6b2dd4d41deb7cb2d63d25d0bc55aa86cd1ba9693eddcb64dd3f75fce0abb9d85c2965f919f3fdd48565ea5dec9fab1db49bd2dacdcfe9d68ecbad2d4c02783ac3c5f1994a3392b2c3f935000e943c891092eb231118b6c9bb6022dfc5868a1cdc2b9dfec18cc4ab0a68fd1ae74292bdc3e207d0975844858d34160873cbb4a4e417921a720fc578aad04c9e722c62760265ba9542a6d496d4529463e127f7ee2cf6be336fed9ee662ffff0112bace41715ac1a825f349fcc8d3f3f3ff148c70313ecf4d0c63fbd6a263c23df4d15f92323249338c8b0880583c4c2d7af0fa9a5943f52e5d9b3c79f7804ea40eb8233f27322a1b74fcef3d196b3f17d363eac59ed036be49cb7e97e696e5b73709bf127662a50a7bb94ef232c013612a08abb7cbbe20ecefb0a564661e36ec36d5ca95756b652c3edfded5d7715fab27d6efdd347b6666d3e5067bb7c1b81cd6a56bba051d021b0f2dca6a96ce7b696259b290a1318d919164661821fcbf18cb46178e692278d3e6825132b4d40d47590551cfc6cb65367e3e3e24ffc916dd034ed173362e5b55f39872aa8302a6ac2538af67670bba4d117af0c902ccbb47a65ac76b259115b9a5d022c5725a7388ebb3899cd44cd792a7c5148b450070c56bebbe7334c32e1148eabe7f7a150bfa4e2bbcd6a1f295c4c60e292524a29592c168bc562b17c5c1b365db27dc0f0dd1e926c4fe023afb0525ad171139e8265b80a2b2fa998f218bded81f6e154b338255dd375190a2c7cf2d5ae0f494aecc74aec88c54260a5e95a3713a8035b7eceef6b1ecdea151fe119f9134c245f132c963cff3412acbc8cfc6a386575fdb87a157fe08cfc9c50421c705e67e3f3bc20646cc7a957119c924f80040197659f583639149439b924de332aad201f2fdf4c9a08ea942e9b09565e1e61097085239100a54b167581e80a561e421985392f077ba39d13c3300e05659b1cf732bf5120dad24df4657ed24c4ea338130075e6e5150057edea22589575172e34326a43d119ac0c8365dbd121d276d22599c01a29930067a8e8c2168caa50249f60e56f13597921dd831c61517e4d520a17ab98109d529ef2eca77fb2fbce9e8eef3b9db0792e4be1d3fc69a6f048a1739ed3668ad6cd393714ed5bf61945098eac8c8551948089d5a228c1131c8ae3b8ee42970963951d0867749fddb743264be96c7c2c2f3f645ff9cab392a7a3e59c4ad772ced3d1f21a5f76964b17ab4c97a6b37ce51c4b17b31fb29b584c540a2bb7b3502198e999c9644af178645f39b742b76fe75aba8c5ee91282ed90b12619cbb574db7653bdd2b583ddaa74714a4ef1656f79e9924c54e6b72152d56442afab40523e24f60905655e660eb0d9ac570138d9b1d27ca9b267fadd80687ff1f159ed9fe532bad52b73b363d7a8b723476bb4480a95dd7783e359e61e8a3b1e9cc1cc373a59fe90953e3c1fdaa7e7fdd05e83445befa540113b04e3b21216042abbda0f323693c7e9d510379aa0a45859c1ca4fd9a2fb30d7d63ea8e0a0cccd47736530af43f50cf69d446be34351752c3009c7b281d3ca31ccc6e765d937bb13aa633b2ad350a886718a131aa1d7b272169514ed93e55c4aa7d2ad7841c8d8d34f4ecc473cee08dbc4cfc141da7247e3149cf28e9d08abba0894345d6ee3fb9298a63821c23c545786a24fcf93e9d4f6247a3c68dbef2792552c876741448907f40c8eaf4258c352a39117a205e02a4225a08e76ec012cf5a46925cfc4e28b2c94080ff110867d7e55a0ac78cae4e9e8ceb5741c5d129fb0d83d9894d499a80b85c5a28f08a50418be8b6384d338710a567daf625af1c52bd8c76865faedf888c54eba1577293b0a4f68eca465ef078ab783c539e55c54699927ff5a544ede8f95971f581ce5282cf884ba7ce5c4e5f32e2c942d6c14a3503b5ccec24259b054168f2b73aab470de0fed2a1509966f2f793f5258fee960515f7e98299f15c8c642514fa13d38859da240e1c0812f68848383c3a2bb11e5f168161616ed2df5f20f95b35424f8df73748ba76305e5f158a940be0f49a12857c14e19b0188ae94458753a762558f51d6b65d89d6cbf93893749d99561354e7050a69bcbe6799ee799ab987c1424da0993fa4326647b046d6cca76a55927df3739198ff8a85b1ead6047b60c4771878f613eb0d886c9eddf4fd30c7085311b2c866118947cd412c846d9b14d9a46b98aa32f7cf27d64b4c47ba9ebbc12e6953a93a95e1c5ed6655e128e3b3ab21812d66ab0989c47acaaa291a08e0ffe3cc2308cb551c8725e9b1a6f332b95b6996540599b863828d315017570704a9ee5e56a9bbd2ad51e70a6b908a8136dec01b1103f32c4233825ef85efe25879207e90f1017764e20c79f91e5007fb87fa52f236dc7cd97879192cd8f8a42369c1ca222c503336050eca7030acfcd52cbcdc49c519f217b39063139086364c6529f9962c4b452aa9d0823ad04ae628b3f0f5b16791c562b164608a06aab03363cf9a6f338c5b580958e528eefb1a7bbf6cb0db63b1ee298a41a15ab0d82ab429b08845351273ef1d5339155874daae428360580db2552c85de255c36e5e41f0bcb39245c6c12ef2de762f7712c2d261595abdc23ecc6e2303f1df2eaef0e79f5721731ab16c7fe32bb7abf7f2898937a51dfb1b3d85ca052eafd625a50c8331836b3712c29293589573de0b577e8512347784622ab67200d971b8940405ed7b85c6ee1bbf1655fb1d5331d877aa60f73efde3be62c0e798cb4f84ba31e73c863c4c55bc4542330d57bdf054579f5eb199416d5c8ec1994a37a06e52b2f94058570e6abb7c8900bbd44ee113787c52acba1e55aea65a9d8b9af505649a1a7a39c9cfe9d3058a415e99888454a32e50a1c9431920312dd07421bf01c380f8434a20dce8d1b97c889189150e3fa49ed08ac3211234ad8cf484f8445fdf76525226f8401515625fd6e2496188beb8ecb02acb3a8642cb6a549cd32854a00000000009314000038140e87c5a2d1702c4d5561fc14000e8ba64e7c589b674116a390510a10630800000000000000009b00007e13dac4679029cb46983e4aae9a8f055dec1659fa219bb11bd79b982b4e359a637e23e9f818b15ba9e0a57a63c4ed7c8e16809aa9fc7f84104fcbc26e5c77ae4419c014357f850475169081dd300005d7c253075f62450529fbde3e779ec572963df1c06eeda37d53b0db34c75619762975b2b8fdc39583ddb261dae428af4d9c434478e0eed2398725fd01675adadffc637ef8d71f289525f93fd80d8eedc4fa00d71f62beb6ca45076a4aba4c6f68c28bcf95cb4393d861cbbe6bac63419a8792b2e8582f51d8f98eccde021e4eb5d9439ef490134d5a9ca58bbf436074d6dcd557550c1a2064a1042d57038cb1390caf4c2ff920a4b18529b48a2363132f2e110aeb19e66a09b721590b6ab184aca1f0a0910117e31f9ab922096ce0d3b161ef8a7c761260509d5a0e3a99e1c5c82fcf09e1a742e70156713a374285d83e35583ec39b0e023676de441c3eee75a94d76492f4f218ea72954ea3fe23ba9ae019a91612e3ec4d94f2a49c0a4501ea888b3e7e8c79fe956f5ba12ce807689d23e5e3a0b6db85e4d1cb316ec6c4131793b94cb8ee8ef70f2180a60d30c2b8748c01008fefdb35f0df6a64683b0585896820e8e27504b21a4bd274c4eac937165c2fbde5ec7b61f6feda6dafd1268de61ddb531e2bafefb9737e5fde7feccad7fa64813a24d766d64b936d9fddeefdcdb2e7d59e15e47a25ba46feba6dde7fdb8cfded38f668168815090694509a2a476e57c664cde178af98b321aa92bb75f04c85c00b64090932b9bbd589e7de73a2af1f4b842af22936f91bf7365e84c4e663e198c9a3b57f9bd86947661aca88a37ab7e953a752eec9d105e7769e45f131918917b361fcee2b11066c9c8f211fef9afc19050d32dce8a3194b3cfbec38af1496225e14d90010419a0cae41dd12d349d1790524d8ef6e5291f45a12f5c2928d3c787c69acaa98feb6c16e75dd4269dac356f106d22edd46745391b423fb50ed5b019fe55f29785204996e0cab99cbec7ca8cd2d6e1f5e2da951a6bbec516701faacfb5332c634f263c16d207c959087d8c3978af8d7de8e7505dacf3f8406cd54c5333ec8b4c81e769107d8999a820ed6538ced579a62a7e8778019cacfcd00013d21d85264df1dee326b67db8f78413df0604afac29a5819268cb79c7a144f6c14a94dddf0de2e6a551ca90b452748b1ca4b7bee445f1333b19c79719954b5cf2116e410c4ec8590b7c658eceb8d63918206de471b8e252d044be1c229eebd133eca3aa465bf1bdcc34391215c172a049babe5df845ee1e90ce12bf0f460ffe042568051ff58969f3e445c73796456f410320da9fe40b389661fdbfb19f12af604ed89d831f3a90c11a8efa20e2728d80a5c465121e51aa3a5befe77e8c269552e7a083fa49ce436d32591b213b33f84d8409164caa246ef8110909cbd2071c6a6b744741b4aa95e02c24a954c62dc4ac3b104d6d0cd360264b0d32dce1030798db9f22ce31639458817dff53bc37a2904d34046090024def2d368591818f270aeb1b9c14ba1f3f54031383fc607ff5134b30086836b50589572cb5208082e0a0509a5790dde189deedfbd19e701a772a147f5bb8ee03188a9bea87ed383e2f343353aee4a1b6f771e001b5987187cc6d7ae0267b24f369b34580719680a809a2f3d49f4a5e09dcc2a790355ed29b7009932d8e3da9e90a79741718d199a4620c2eb9c26d4cd74d8b3d0a872444a9a95dd7933a2e87e0c836b9a5961a0173165ebfe7092cd4804ff771dd242eed8d883eed1ea2a7cc00acf794e7c1bd186c733dc153194f0896b91aaf8897cec23c8a234f095fda46641619665234d19f26140375ded1411a85afb100df4218f2709376a4d8f9aa5cba006a7494a0bc36358357b4648cc038e71f2d9706dd6d304d0146be6c184525f1113b9d2e59b8a539c65b4ad27110e1cad89681311754d274f53931947baecaa4eb6c0abe58e3a3e043218395bdc4f813a2c0eb3d407c723b99cacf19b9e859b60faec9561e1ecc62dfbb1df061002c8c6e53a131b6f1caa727683db7464d58f96548b018640e12239e68eb96dc20a005e69711bc4da1c5ce8082e77b69d2a2defcf97bdd76b1a8851bf7baa3656ab0ed8bd3f0c7d8365065886bff8472986addbc08038e8531925fbced5b4f4e353913cb4110f041486758069843c39be423be45a988c8b68dd1b52074e11b4be456347213468bce21aee5c5b65d4ce7d0f365b48010c5bd8c8eba7bc123e9b526d55830046ff17c5a58e39a5cf969ad16f2f495e4a679c8884a68c7a70bd1c439460e839eb5fcc182d7454d67cd3a606eb8ddfd107eb9dbef0f0d4a1eaefbb86f91053cb31a7da8d5a167bccc14bd580bb121b647497a1234a32eaa503428f402408e2bf34363f93eef6ecc25f33f01777e2a649ded35fc4cfd3e6a50b0c0d65595254875ad5148d3405958558897972990523c821a7051e9bdd60113b7714011363ea3edf16a9e284c07164ba436fbd4ab919d2af0b0709466c68c3ea4f70628734acef87fcbc65600a5162f280bc19d8466c657f1735f4d23518a84be12494468b14a385b2fbd538e1527ad7b369775a3d5c72160d41d91aa9b289e2aa689d4e022af1d1793de01008b3fa9ab7ab2906634b91b64ef16930a11f8c999a87b667f42e917b573d07d97a82bf3d2a866ed4a0ff7fcbcee9c5c08044463606b5482642f66180a24027d2e141d85ca38bea1476fe7b3c4314d70092358206f7521dbc31f420affc288b9d833ac6f66896339f9271192c8003ad610ac848fe59f047589a7426682037d719ed1838d6b48caa4075064d414d4014e94d4e0e4f83701d63a93b72764e378bb9c4252a279c335bde6374d79969720cbd87c0d21fa721a3a2da54b901dfb38db735de22eb6ca5c45f79cd46f6a2fed9634179c97bf792b92883546c10f33b89e3435997f868a3eaac69d69710191e2744c92e14f7d95078f9162ef42b142a53ac1d971506269621f1be4e947aac2357716ff53647f1142b6d0e9feeebfec92fd7eabd32911c209ce7133aa9d1084acafb0004eea1a5b7f8ff2f72cf4fa0074b356664945201a53a8ba6c1a99edbada72a5a95a9f2504886121615f5fb085376fa09121eb43555bcad456d55b87f498cd094a52018f8833f687602bb98c2dd4fb5a81f81bae7db9fad7c44735c1530a4daf20cceb7af10b63abfa2368208a09e9ca258bacac770dcaaba054c712f76ef1f6edd730b25210c82189e4d18e1e2e982bcccccfbee920806d6122feac147b38c60fde781a419f9e1d95f67df653befbf7218cc0e9678222424e8d31fdb23542dc06b99554889e130a1cb7621b572bbe01cea7ddef2afeb14345ff5133da6b8dbc32a9833a42cbb9244229bb46371aba5c891e6db6dfbf9b8182d241f2b2c48b341eac3906139a4239268b75af0493c7ba55c2c8b1dd9560f258f70a1869ac4b059414c35d19268b75af849362b9564248315d1560f258b74a3839b6ab12941cc35511228975af24305be6a2b0b0e80a150f3b367e98f6166fc1699836757f8dc095bd284b10ed5a29836a174a9bca84920cecfd681615c9aad8ebe2f97a33638154478ccdd37102bce5470054822f78401217665f7ac4bddc30211a0cdddac1cd7f76488d5b9f18259fb7505aa80e2ca9ef43909733884f642326cb48f45ca92b5cca3d70a5c557af6a824d0ba66f01e98a7ce4eeca0907647addfbf5f0bf136ac1a147e6f7d6492a100c6143abb56bfa07b819fb86cb06080805c2066d927f44effeaf71745583e76c87011b980a2d984e5b972bda6d6d0bcb4030b46dce6c34b1ac99a4dba90629df08b976bbcff12a6d312c4707a383a44166823f7156a118682eaba2d359fad64fbf5b58d4ddcbf096226bee95a89d1a5c59f01c5d3afedbccea3f809312802f3c541c9a422de0423f00f3de08f88aed92272e52a07332b7b46b20a1fa1052d056a3910ef3703af0f153d40942f6054be74a5f3e2e0bfcb0ffbeb0d1028e1d44d8c20594ee63035c6149abd330aad29f8c685d4c7ace05b6c9f96b76169472accc4a30b97a7f1f4134286b7cfcef8619407299d9ba52322f168ed81417866b791c644fb158f9bc77baaff90cd860062adaaf1f01f14db03c66e0fc7f2623fd7c19ccb73448c06ffd77456109684055cbd2b80aead730c3937946e7369902feb339e44e2db27a20794a1f95b62633a0fbcc922426200e946ef7546790babe7a2a349eda50508a00fc4ba70ea63d30f7b5e93410629280125a343ff8755591b67707d956392583c7ac304568e02de06143701bc79693b6edc93875d94e42bea27385d3b327b086d149b2aaea2522ac5f3a48ecc090a3fc18b38716627144b930abb8c23138d4c8f3fdf7271b5da33a1bde6c9992c82f7733b0e07b5bdc4908715187d3379285d8afe5ab3e61de3757c8201b471db1892d11620c97a38270e4aaaf3ca63da3fa73bcf1fa7c2cf7565dec57d28d0c453c51710f5499d88ab74f5a14dee73766bfa309c3b0db96dab70eef2e1c12017c6027aa023a5c831a43c4104bec3bbb1b36741044fd04b1c2799964454fef1d3170af6b244080009e59040a8d01743b31aac4e167ea9f68ab272cfae33d2f42ad417639b9763ce6ed0b2da4f3230fb49876159b445c936bf2c463983bde244825c3437e7a18006fb183b6179ac76d083f591ebaa72518a1fa5859727113050f3e7a45621a3542cae18f669b9fc203316bdfbf8e8129f4498d3f71d49aa60e60cbbeeba40b25ab534902164c50809fc7501eee436b445aa752b0404d5f7b7175fd7cadb49206c14bdd9d95daae61309b3c29e8470b876e93ee1b0e8edeecb894a1fe21f29b01fbb8a7d681d00836601cb80011d87768548cd2f67fd6eaeb0f8c8f52a9edf27c8031b3ef14d3719ef988674809478453e9be6c015b994385cf41ac4123e4a75edfef68ed058ade2a62b316a6d011ec31b85cf41a68cab81cc7150b04c9d22ca2cd9350366aaa795f3c65337bc99f052aa6b6f43bfd7a0f9660a83ae6c3983151eebfc311341fc631463cca734ed16cb609a2d73c5f2c9ce9655b14bbcd0a3b21701122599a4ce60810243a08541b5ad722c03d9520b68f8c3010b7dd9d88c192fe43cf1b853fce5bf4af1f91b54dbc26411ca94a71b043b394bc092e3c00739134402f1c61df8c3cbc0306cf1d679368d7005d083577d6509c2180a884762861c49f0096ad1893e3be114bf8542f3044a717c47a8a1b430484056641686a91c48f42e43c0db0a736f499356b71bd66d66fca5533a3092ecc8b5b8011717a1f60d0d52bd9014594907f4a954b5e0da21888239ebd6b5c1c38f59ba6f145f7d766432046b2cb33b86c1aa052f003f46777f0c556891ff5078226cfb54a5591b1cf391daef6ef8baac5792cf273f852c2f41d0db9d430bd33b628aa15399ddffbdeb013c2cd934e170250a49ee3b751f0ba730af69e30c77e43c3c62e13d8b8a5ea503f1deae4d85994c3ffd163b957a53fcb1fbe0ea977e660d7d1b48f38aa63f1e8c1888c90a822d365da3126bd28b95b3f41662b0077e567edf5e6ad0b3ac2c36d247d457680ecf511c1aea273c705a9dd426c8e05a010f60efa3e26d91601608c97f0ddea157f8762d88aae3007642c247f40d40342d93784f7c71a422070a0bca336718ac048243548498c6c6406b740a515f2bb892f561a006d05e8f7a2430e1fa95a0e09a04fa1ca33cb3fc7890e2cb6d35dada7065c5e6dcea97b302c4bef11b5fb738629fde38e46b4bd28867e583a1b59e877cb16dbed08af69274dbfed9c78368460a97ae9271e844516b4055c8764f27aba66925bc2122a2baba2af69f1ef7eb409c051c66415ef40011911067774d86c08750d39d5b6135877c822d2e5551353aa55789bb48318dbf24b907ad0a14fc47d79e58dd61d204b0c5680402e467c63ca49de2a66ae2a77a2d11481695e13c7dd7e7723af30c78d13c8237a884be40a49f2bd66cd47a24a1fddc26797a68a32d04efcf5833ee0433ed07e7daa0477b8e216c603ce2ba017c9e7237390403fcbf13b0d4306fa80a223b2eb9db08688f50fb04722a3166f122b01cdd073656e25f9f2f1cc58a546b4320d3af61f3c4721ca71e112029e241dd64e879b17e58247e0184a93f19ac1f1a3e81efe0da747d657c0b867114ffe615caf352e04b8a72af1622537201b6bbf0e86032caa8cadd410e1c4d7e4660ab1acb21daefbadc112d46f98eccf474f56fee0b805f962dcaa6735a1b5b154c4b71ea66416ef7d656e4d4c7b371ec98c0673ed874bc014c073adfe9a5e8e81d746e37d4f4df1acc561eaa3490a610569a1baeaa44d4c3a4ee93b40bc8e57d22141d75c2bb8da355394c05621f3fd4388606abeb80ca9cd3a1158c22135431476680865a9395e7bc32618f565a1afcf6d065d7bf583a82f00fcd27c966893e095da2a50bd31dbf6d109bc49ac188874c8eb873f1c7fe50d74755ccce0bc80c3f2f295cffa8bc29dbafbf5b37e47728256ac8e840371fb191711856b7186d11b321d5ea140298e1d6680ca4936eeae547a78090ffea56bb412e6c10dbdefc2770c31585101dbd1fb140b777b841e5d7d71e6b976bba55004b33dd8c1a09ed258b42610dd75dc411880ce17465f8e25b48135b38f162b3060b1e4f5aad49597ab944e75eacd6ae873cf05b68b7bd78205b4d95aae9f54b9fd7ba2e40741ae85f640c05aa967fa0ae73e6c3c6dfb3b40e8c32df1a5bd3ed8690a84f58fe736aa0fb4e8fa2f95ca2048e3e079f349ce03a877f98f038bffd31e9f5a439c37d564849ff7d04e7b8b3f5c652daa9e2610cc231c0c6afa57e8bae96a533d78e5e19e87b26c2b5154f252129fe2cd4459d2f951a15297de62abb1ce0673aa385d7edd0dc518c49c17304b9580ad516c1a97a8cabb962a549751128f15fb631615104b908c4bf6293c690e2481339de7c4878845f5c4a0da6f08d0cb8142d78433567b3c3525605cd0a720861bd430a010120147454117e5e75ef738adb135ee13e4b4b799d17daf88672203f543876f65056c73b1d5cf0d096aad2a03fe97e433d6d49810af86ff5e0b93b0b3db55e35af9b88bdc07a7e498c8d737cb6cfd05bcb25ab615a00ab0e8a91820a6cd6033a0a3629b9451d5d50c8ae1e2d8f5bd567d3d1f12ae7787f43d98f2805ae2f23d7d6d742800d5329b1cc7ac5051288b9f2716d7fa207c4c4a561d812934da3bc9cb3d8e24d3eb1f0cb02e12372d13e14578e3da4620093e4373b30cd2639dd4122e8d9e8dcedf6551a09bd1af8844d1b73b58238a1437e64859123022355fb966460a13d6fc6b473e21f0549d9a82e682ff82d8d2d74cbd09a69740d3ad3f8e4f0f63200124e7b34854aa7f0a4c1bb5eacbf30ab542fe9481fe0a6e9d76fb6ac84fc4c3f57211840072b981d57412727798e378815c7912d1a31e851379eb9f5cb1ad0343c990b5b0cd7123344bd0f355cc5e83fc544b7d2187a692d7cdd15974005c9a811b51f586f124c40b8fae059cc034c211d2aaf35afbc336088385a4333c192c8d60ba03c92f84efe4a67324a596f7fafd8c566d449fb296cc577fa654d8d2b010cbf2ed19c7d0f66071b7a3ee2dcac2654dc2a2d6ca2884910ccb6de759d8bbfc4bf4004c34f09e307768182c9b4327c6d31be0dcf1b8c0d923033869431cc09e3aa0b83c20f9789e2bfedda58eebdecb90a7a0364b760c837f9570503b7abbbc5557e7b8530f28748b1268c0a6ecba044c9eaee6de7fabd7d4d8c7b7db000b8eb68a8945620d88f138583dca3269ab87378b217b4751b1979e11170cde8d46b4c2df3fb7a5c4efd96a0acdcd1ea3eda2fc4b80060c87c1c5406d1f41accd702e8914080a68ccc8e1e02052937d75a877a737edb13be0b53917e6326d20720685450080629a0b9042c459f8f7b00c549c7219c96e01139ce3b790cf481b0e2763607940080b951eeeefd5bc344e2768bc8fc37296f5dc4f66496ea30b04b06f9715240073821952e428d7020005a04df8908ff23416d711c66b4e0627a0e221dfee3a9745c78a054caafcf10d1d8a8b2299f6ffe34853136e1843fe20e8499888c21dc01ef5626c3051244e24e281a713c334be0578247a32e2fee358dab1032131fcc418590d0235057a422a8ca0e54fbc2589a25df490ef04f7d5dfff6e0ce89a7579c7f0f6b15c282b18276f6214d80a9f480fab82f53fb357dce367b4010d2627181904e945016338558b1cacc9dda83bf570c2fa9d527b39c5d814b0a21d75366862c6316205c4e4d883d94e415ca184194889cf33f3ba6616becc2b120f3cce75599ad23838c0f1d22c1540d3db5e7fb1923fa65f7c13df51c253038c91e428ed1a6f9c2f6860d2b723fece56f5a8d3035fdf0fd24a5a4fe17ddf35a9ae839528cc7bffcf07c929e83fabb32c471665143b30e76d6d71086806dd0545b7753b93c57ec1dc7d834fc41ab111bffdb2715357c87411519c7fabad026bc338c8cfe16ad35dd695800337ed2433260c60ba45e97c5089cc5f100c1ceb2489c46a2b36ac8b60bc5550fc92b44da662497ee9ee724a2c8200a36036c0714f765283d74372bda9111b2afcc16cc472e9debb3eaf1f67d6f189c4763ca3f57a12758536671dba285d0899d26f05f21abffdc38dec15f9932c9d40c73e6afa1898c4a85eaaf88f520ba506e2b7f3e9490db51c609f23979caae808dbb49dabe243a502924f671aea9d1bef1e6edfde48b8887c3c42cefa476bc054f3fb638b3f134f810a13772b90ccb4412629c66a16785445175d6265296f222623aa44864379c2010e051780095030202d8e9d7c14723e6e4d90143ba5f0a3cddd4f2346830508b4fdbb8acd9d10c3a863d1bb49a59ccf3a0de1f755cd17a85225a2251c2fefdcce142973c6dfef37cea51dcdf18b5fa9da0db6e527c5e22659b597c4c6f3133b6cb5e2d8b588bd3e272454a34cb15834237a51ae1e85e171b1d9c6e9418f02587f6b230009407d81acf024174d3ba721dd63a2a2a847eceb81acbdb2147a5b3872756d32a886e1136546f0e2bf43724686edec3463886394743086597c066222037c461819d434de65188306fc9d0bbb0f7235e16b4166bc70fb3b57f04dbaf489828bd701af1c42086c8e3f137f05f46f9c12c8f891b52b2a98266c743aaee43f1374dcc041601323265c8a6a6b452be9092521878b4899adb54d8ea442f8ffe7849345124a7082e0d65229123693609d684855438ae9dfc7139958eeecb415fd86b8a007ee984e8c36333bbad4379a9ab1b5daca0fcb808a878848c72b8c7299b3adebb135e7a091b4a963a350a9e684dc89987241573e46eb6481394700521c5776999b3b009e44872d049ab53f754850e572d430b5c79f63f2127316078e3ef653f1b9098fb7d4d20fbc6fdd058cc5e301a8f891d6423c016d6b17cace8d016a28d7e99224b117a48799d51029823b7a0fb8203c40395ef233faf572b34462cb5f96b134bbe5695d873cd97e0c23baa5328febe0751b3d303b43cb853dc8cab86027232268e13c15dcc450dab3d832b464082eb41da9e4a30c2dd426c3858892e00f314931b4408ff90473e07ad2ea2c4d8c56804292c0b21bb14fae3388e0673559764b9e9d1ded67572d445d0919af9ebcf1e38460801e857c4b00425bdf4d7b17d644f90d16a470a5fce7f5290ed28a2c94d5646c38c6b81b578492860041d6cd58190e66b15d8b7ef48e9e1724e47161c7904b8a1f4491a19171216c97cec085e2e230dba5846ae023eec667e6e5f5ba8937dba5d136815d578d90db6c2eb3d69556fea0ff64c138afa84f45fbe6eb225bb84b1de84f6f5dbb2674e075b250858ea4aa9c9ba28e03571577948ca9085a02365083847f17409ae238c0285e6970557465d2d296d9feb3cf98f9efa2433637904c97e426dbc02ec1a3058a5aa120535ffd97de2af0898d538dd5c8be6a4e7eab12f7204288c0e01b684ad99617fe40f98dfa981db23c7e2c881147bebbdf466a2f0d67711bce9b054cdda757df2cb8518e745c86fe71ecdaaf0aa6caa95bd4d439bc09ccd77a634faac7bb66c345348a52922f707cf6712ceb3039c4342330657340286b1dedd224712f2b367631f7639786146d0eed7f063231026aa90d2a1610fdc1497aad027c531680ac69b7f246e30180256319b1530902031682d6fc4ee1d47ab563af9dfa0f05dbb91ccf2f1d6b95979b7708ab4a4975855636e0f2e10fc22b1fd0354029398871484330f307eaa378bf2baebace28d83041688af406c20342141f2cf6a5837f67273a5245a160550f51c9e088441f0b71f83182e608ec3de5b9b94fa7a6c17ceac5c09ee85d620a634f32476f867c73c32dcb29791b2e546bbb4df1184143da8e8535fe9d39c1f581333295e1ea08329d4d0b9d414cbd3dd2d1b61635cb7ed21cbba9ca527d322fe18a6e75682ccb8b23b01c3bc24a0fba32ba10a2e70eb0c546b6670bc7f94429898e9b9f8682416016e538c6266a99cc9a187d11b648e6756d73b9634c90f9933ec13f7c1a2e5c00d131a87f74630405de07f7113301be9110946351f345dd48daf149841e636e7ab9189dd54aa2d0482ab1433829dffda6e482facdcffad9ca9194f4a4746cad2552c052a9dc93528fddf7218712b57490515f4a23495c9a44d93a00c407aaa6e1825d342ae56201a16302d181fd8f2f1d2e03360a080b019118ef38b7f93a6ffee8ad601ca528dcc917b9f943b7a09fcbf96aae5316f0092cb06d10b3f037dcfcd193c45dea0f572a232d15866d5880ec1480b34e0dc49625534ae3ad62fda1d39dfef836bae908f3a5b12616d235a111eb0f6d564411efd41ebd55c241dd55f4f2d273a8bcaac0e6db01c4fc00362a50c55d4b5e68f5a37099dd0a26d03d39f9657d5d391ef3b7f3e5792f636e598f3c09847b51523f0ad432758d4a45c78ca775448020154b84f00828997187ddf65a1dfeb854c6428839f65cfe73f8e3621647f7e1d700d0d9afb95af5827366ff4f3524dbdfe4008d28932ce2173e690e94ce189657e55fd9fa03fca6928b124167a54d3db8c36abf8bb850725878029e0e1c3b7ff906651e24129255d5466db7dbe46806524f403056c2ad98e1eae37d56ec0fe9cefab19b89b2bfa0271ac675a7163bbffde8301d2a1406d64a3f2e142d8d16ef141077fc5ddcf6b591f15d557eb59ddf493f92358698c24afc66d28f32d592b34032afc49d9e0f6e4d25e454005a9f25f35a257886b7e667667b0e54dc612047bbf081b9141f281613cab707a8bcb21a140387aa376f149b94153d1383fa689faeb30cfa1eca7dad556789e2ead28f297b23e77a9a40c9d5e519cd4962dcde7dfe705f7fd57294ef60008c825d1d772339e411448af3c18a67ed2462ceed7c438a24ae69b8a0a7d3490aaab8e424d0c7a5e7daa1271d7168e62a12159970b4e52207a1a81f9bfc8a3e70416c4713ad19a1a3ab89510ab374bc46406cdeb04c977809c9f83863167a0d9f1c3fdcc8b7a45a348720c49a44a15967758d7ea71464b57afbd745a5cbb0273741015118c3cad730f3234aa445fe093c52eafa93ba88217c3a78caa89a2da32c6532d33171eb4a2d2085e0087291582399d4c892b98dc852aa7e1bd8c3cabcefe0b112227a0206e7ff976adbcc83a5e9d0a4c6d4cf57c078b7c3c28070776c3ba4c13b063671783e52e09203887f83d824b9aabcb9702738bc14ec4a7de3a3dcfbf63781170a61542fe27ed59a1c9d8c95f6e76db78f5d1fe111f13c1ff3bf795c93b39168aa1ffdee885b631b08aed39ca25aab4d28df3196a03c44c39e26b0ab22c6da3e460fb8a17c584f2d26f7cc467ddd1f9f5a8c0cd0e00adad6defddeebdf7a88b788db9053bf0b12fd1471205f8f5eaa929c6e0505d33731b93d329ce26ecf69937d2de10e98221ed96109ed2814ab862f9261a1ba185060441b61edb8302e949bb383a11812907cdb9015ecd403c0997c84afb304dfc0038538cce97c4506c5d6e0300432658012a471fffbc2c9395e5286d54f8afd7b014f2fac32514f33f0c8d7b9f6397b3da14bdbd35e1a3ff722a5eadc8780bfb112e8a313faa017ddd1412774a02bbad1813e74402f7aa3837ee8404ff44707bdd0818ee84617ba161d7674e00140c238fc9abca78d6e7e3eb6ed4803e6fc9a8f3ed0b97c5588373cf3c6f8356553a61762dbd51fe10fbe3bb43c397f88d482fedf95844cf51d493aa6d9185b669a94db12888d76af8ef7813599d788c57de3a2db093f6a4203fd12fa03bf6596737c97121fc181993766ba038ffff56b8c5cbbff98df307c3d4ac34e785280ef2d2b841da5dd3638f9a8d98bb0f56ecb7fb5e5a471c60a6b2a6ec09175ac74faa1232eb84a7fce40dce092ec1a902698e87eb6bb26a3c93aef85a9a506dce8902d77e2aaf3e16f43024a2fa8eb3ab73a873c7d7b348e201503215a755275c1dddcebfcb9488380eab72194231365acf3b67fca1c4321fed2c4139b7c61724fd6f96fa152092391bca14192b9b3642af3bc515963dd5ce75e73dea1d603dceb1c5699b713b70d6fac9146ba41df7280eb9c4a4ee403276d0d1697ce3a5663599db46464789d2bbb6ce955c1ef68ee74e2ef5d1e8f01a25adc9eb974c0eea3aae90837e63ac52672b85ab9d1f88bb6c78d7a03b75d73772f7ab3064873f3d2dcdcb112e445f9a4b6e605db0bf4969ba3e9118dd77cee496ba46589dad28dd97ee97b490cdcfb98934465aaa696f4b2495aea35ff095fc2e4e0b49905757d95608b6ef8bee9ae203c218e1b67e95de9d88727986d7a6392e6e272ede4a5ddb78f6bdedb4e75fc93b04daff8a6b944cf4f6b47fc710367bad61ba81dc420f62551c98a67d20eccf793b0af577ed3b0dce9890c3fe99e4ea33582e17bbd491ac6f83b71c5b5e684b0b3a69ec12de9d56f7afaa7498cc463cca5b721bd6092eefe2873a0a1aeba7dd9ecc0f9ed05dd5d1fffd66ed4be695f3f4da83b6b825611428fd6155717e80d11244d9d90e8dec9f5f4b9527c4ce9e0fdb3718cfcccd2b1eb96e23d00c4092645c3d8faa7904b938799397a8964ef373db52a90ab79964bb27e8aa2b3b637fbc78066b3147fecb929012af4f875d892b3246025f1f203ef504208ec4b785d2b39b5f4642c3588e8376c9522e60a4f26bca6e45a7674e46e3b2f879aba05625f670fe11b6d64894727186c1718b3b3c4ca59ee279ff1b5ee86931c3995dd1ae0ffec07d4de8faef2f1f28863e9245288ad80b2f3dc4027833ee906fc08948442ddd8e2bc752ded3b067928dd9c643e00abe208a96986224b1ba87b9de6b64a54209591863366829e867342b4a4cc97582bb0c1df53c88023e843921cbe3eca629c4b6da274f088ba95c618971317892a0ea27c1652748e461a4d939bb9bb42247cf52e2a3a244d8f493b084c8cb5e72e360e4955030f55940f9d9bf5b2378a160d111c658bc19b9b48bdf8371d9541503579f05f7d12bd8ac22a1eee864dc14032a83a7e143f6df52826ca36e048828da55716a15287d49ba6df75da55f80fe77bba112d73eaddfb17232fb4ad4b5a8672d38ac88201c3ba7eda7e3cc997b20564488daaa0962b698068b7fbb202d587a1939c73ef8d4aec82a4f30646780d18f0982b29e0b340c9f6ae1e9156afccd0112b4ffd7d4c180584c3cb3967943710f4c10a72288b54d83f0f6f7d94bdf696cd2d8937c52aa73f2a1463944f0cc7dec18160c6baa82e74ba013c7657bd982a52f0d384db3f9078019a9cc4c5e81f99538ed47a46c524ef709815873f461b72131de2ce0d15b23269eba7a750350ffdbed939a0682cf000ee7032c06a6fa61c43a48c87a6fb06160e6e36b6d41103275db05df998267e2e3756f983fb93925b4524bd7c41c08583be5c10c8ec6b96dd61920de97a03bb034c2c0ceb0360e295b2e7042f3752fb83673b9a605f0c74355d72ef0e707256bdaa1c404cec3ca20d218ca2dbfd7543f47680d359941c1bd9b08b11843eac69ba9ee075435407b0f130845fe066e79d11846e7a63c7417b2303c53549d0d5f803019693387d982c2539ef272de876032a0b7140ef12d7865ef581eeb2e74a1950624d7054a1ed7623bebdc903dfdb9d4d963bbc60a190ce93dc2c61fae9ca794ffa756e3742ad1007eef198d48380d55caa4b08bedee03407e901256219a7ed9141a953c02218d084c0edc1211b71ff1641b6dde89e6a5cf9e75e2e9a1782f25d214d70692fe286b998d6b76dca2eac487f5a8bc772901948a3c2c3a7ead4c703c8cfd70dbf2ef8c6ae87d90ea553130a4cafc9c1dcffa4aa5692f6acd4baf7dde1febee4c326eef8b782ec126f41bf15ebd5ddb3aa794f3bdcafd6212448e13c3366ae9c715871d28b820d886fcf633046cec155fb79e938f70530b43cd0759c37e8297530e7591ff6c5180056879c4168476946c468812b40400b8d05d646ad866c398f2aaaf8e8cba4f99296d6c6d5fd6fe9ae31c5aa883567ce3114954fbd54cb407d1e6c47e8ee0db2368532ca1c08d921625989efb61bbc69b89150e5bc0e4142ce33bc8d6530ddcf77674bba44792ea3547fabec84b9cf885992eb28a901103246aabdd21217df5a089b89fd2169a80172e4c1899f2a9da7172fadc7906048a0db84030af18eedba2abb3cfd80972be18e5e5d36f8f09e0063aec983864224c42944710ba0d8b089f01b4067c27cdae72e90a9ce817a704a30d39944014ff3383fc73a6dbcc6b85a59bf718840fa753c7daa8dc40e1e17eb93d1043c5e94ddefff758e6a206d6b33bf90a65846ddad020e91ddc110dc885adc0542208aa0e3967ede43bf6ee4beaa1a398846b1a3915b14b1df0b84ca3e970d2644b41d49c25c987fdef64b1557eb86c1c557108daa3ba528f1ddfa3f9607c4baf1da728713f3784cec5d7645ff316f8be6d7bd3896063434456abdfc8ef5695038b3564aa518f0d6dfdc362c46701a61f0d72ca0777a3f020a9760dd53d233a5bb71d9e08b1ba21c80f8a2c8044d786a4a67820e5427c8c4117acb272d2684cf4e7fd169b912c2b298aa99da941a4e888ef39644a4afb5bda53e691d46d294a8c0e6579c2711464fbf24109cd616e27f6cf8c63a3bd9faef4d8f100843e0ac2012a5df606ed6c330d12fcfe852df1ea2893e8d9dd6c4091600dcfa3e251f831057a74f96f68e4194d8eb1373bc31886ae4c7d9a622cf99eb9342672054381d31c142a5292f081f3a1c15717db4c778d0795517ca78932b88d585d62dd32374e457031edb2ea50b106d3ab0e96c053d805c141b7ba6a051596002c4a4dcc93e2e3e0aef6028a060dfe1da0ae624228b69c5c7c57d914d9737c2869e0b031db4a673641ad7c5c81ed2a896cb4dd8dc7ddd7a6f00f5758d3158608117df0a0d720f30a2ba898ca74e59ec06438051bfc609d529c1091e6d5b7ef0efde1f8ab2d77f34849e32c8797e1f89672ec52291874001c325c2973e59ec4f0d75c0df8afcb9f6b7ba1ccce15edfdc117d1de96756f6775cf41e0e1437f45069c82ab699a79c30af15c13c16e6e8700e35040b4e98b978e3597448f6a02bce108909d8ae5926a58efc196117b1b3f55ad7bd72f4386723ac3f6dcbbd5383d158b2727add5566190712056b89fd97dae87e82d0d39b0c44f026c0daa24dec061aad55f86f2c873cfc3ecbdd2ba5a4b19760bd69c313f26e37021637ae6049358e9cd67511419d23d9e57f59add52d1238ceab6906c3d7b851a74aa766bc715ead5cc63b54821870095931edf4d35dad646354af6bf0a927742c9260f9f78f3f8cae05e9a11e1306acf1c8dd728675f4c1ecedec8bff4526f1ed868c4debfea2a447220b19d4e2f1ac588c24247bcae3526c7ef6a7f8f8d001443bd493eede2e729e5c1c592b0707657480a3389d2c4eba5c950c8d74c7e752008d4bb04ae2997667c94d24aa902122c47e291b13a45e08154d45d788aa985218a225484349afcb2c2c95395e8bcb6aa121d52a5a66a110a607a47320021b3774df5f6041e38c67961c82a12d68952e7a5b7dfd431481d52e05638429a5b2136b46e921f557b65261ff670663ee595325dc8a9233ab519828d93ffe03436689ad0e812413b5268ed44b66754e42664e9b7f7ca744feb71653c4600031c13f93b8ed201396c390db955ac4353c60bf1147d334b56aa4110e41c49b1ae9c3b2b7c3d03bea2271bfe76ff1ea7d5d8289681b314f608f8b5321638504821ced52150844dce9f1160c397cfb1cf7ea2153518bc3f45b40b505b8b2417e84e3837e8d1bfc65e97f785b40ef6bd8d1fb8993818fc667faac553d213b7d5062e58717fc91355f590eddcf5da52c61486698b411935805f89adfda762b608e5ce9baa4e3426dcf7ddde4f4bc920685ace0497c9de82659fe6000b1b7b5e14a10dca72e4c1b816b96bc08e7b4f81b3d24d1373a4a24df1a066e363928d53a00a929b5224588769f1a894d909c03802515ab24caf648882637f77568d0aef6538d73c9c0e31bfa6b40e27561a868ad8a8dbb41e6c87c79b95dc85696f1124762b9d64db114adf1cb588c62a40fa23fb360747dcb5739e01a64fbbb9b6fcf6c17a1c45bdcccd34b612370827125640a341c02da72bf01dc7a3ac65cea45176a2aa2343eab97eae94da5f493c760ac2e0496ffbb689d8e05b5c862360e1529df4081ad08aef9143529f802f521ef8ef61b0f209a79fb4d697a978b66319251c2fe91668c86671e62512e43dea94b892bc6b2a11029105a7c2d132d21dc73ccfcd06d415add1bb2a357b80789957f43253eb7a771ddfe2118580203982cce7413ac7633a5f0d8b1417806ae6c8c84def0b929219094fe0086dfda1d59322708b33528b1b38a39b025e194d04b1890b6875c016914dc08e02219952667c311649cb464d2fc0325240de1804e11472fb03e3c8bc1cb27f1ad86ee47574edc40721861ec55a80c48ccfe6006bf65d2572b944ca0c4c7949d641c876266d519da0ae46318151cc0de88971bb717b6dda3af15c5108bec791475f8ea5701a0cd3d9577d4501d7a620efcec0ebf5b6ab23080a7c7c018515e8c45fa2bef7ab1eeefca2c2a773bcc0fda6c0bf943ca007de75e00508d75e5248de4d1d695c7dfb250113b46404900ec4942253c914b2afcd30bad2c40f96039e1c531798e54030cae0b90098f65b1aa71c3765b039a5cf8d04dd2ee0f953792f0e2a4e775a61e83211a120a3f468de7b78f240730954f930c94d51d6b05f787549a4b3402636efcedc213af14f004bca66dfcd653845593471d940c9dff51cbe9a389c3736c6f7db1a4fa7289838922b9dd31b42cedbf5fe91dc1195d94be4f308cc7d6fa6d51a10500445ceff53410e2dddfca04fff769a3400d0da7097835dcf5289b76529b0df77d9ac2de338fd1be805d0270b7be09dc58bdd1a8c018760dc4de432d18e926d7baa66b5a636a3c26137a2a518d772c5a165463927b6626f2fb8ac9739a95fd86fdba511ced963daa8c676c81e9c74d231bee15e24ef2dbbabab824da9c6c78d735c03711225714fe5f552bee2daa01ac784f1792d839648480b7d437b964dea57e01940ddce405598e0abd15d1ba168ab5f98e0987af100e56d11cc66eff5856fdcd0f5a08131b75d3733928541c32470efd18d77217f052e68e65427d2ae0de839f588363619a2f3b08f5d099f8b2ce586dedb6b55032e1d038864ca411317247f886933b478ffd9ac9ae077743915a91be522ec5cca14d77d052f6e223f3be169000c235750af07c3ce619ccde81e2bb505a050eab8c1cb63655bd884ae47f93efc570d60d0d76891fee3ae58f8785a6b59d01741ac3cdef83cb67ccbad9f2c51bcc97f84780f0659b2d7e58c127dffbc06f39a6312801a56a7367d4510b2534fbb861cc222147c49f372f7f43fcb5eb5e34b3ce46996b76a1d239da372a7d10b19ca030d7097ef554d54e867534b55124ed2a1717f4a053d4728e9d8d09e992710da650f68925f4e15460fff3455fc75b343f43f79ba1f0749f1e722221d6df9fde05d9e87745af9c137e064c2a1124d138447bbd9aceb16830ebe08e23c05fcc46ba33e24654a6c3691aec78d998453460a3e89f6f068ff590edcdadb9f6a0a82ca3c52d48591168f274adb6a4d9bd72febb002c4783957934c078bf67e071c9f92b8a61269b6092e0443c42e74ecc03426a429b3fc879997d09a4fd83c4eb215439f96248f3625f67d453b08dbdbbd1dc7aff481bf98650d4948a471f3633359ba977b7c98236782b7942e52ca809ca97da843ba2fa57a5d777701250663b55285799689f907085ebe12d2844890dc37eb0cef891f133c89019147e5d7163074672f15facd84d9b71bc8e41f7b5b1ae0fb80ce22d45ebd4616e07547d480dbfc4428c565740311dcf783ac6e2b0997029f1e5e7f963be68ed219cde61a90058a5e94eb8e096017ce0a88c8efc296cb7c37d04d9138c97e38ec2ff9c5ee26c8bba99548a7ea4a1987eeae092c1776641a32cd97c825888ef03b3175cad99dc400aeb63fabf9503b6cc6f7c021d8435339085221d4c518d8db7d9bc86bfc3987c891069c340ec910fe91e5e0df4cda0b4cdefb5282123080ce56214f8d07519ef48cb3ab0e340d8ce096aebaa23091bdfbf6beef7568d73f94f354afa12fa206d071acd066d7d5a8b57f4e4c43c402805effd583db60b01070edda4382622b5564158a342469dcb733d367ed9f92ee842b39d7df479895d44482ea102d7191053b4295ccb525052d9c4946152950da8df6b4291d1249d01483e4345bbd62675bd8d62e70d807ffe3eb89a97727f26636976b80027b0263d750900bfa59128190543d8284e35ba60998baefdf06187744939c91b5a4d14dbd6602b5e13b91f3f328b8e6003333bc558b618984303a0a59eec17cb331d15450b8a60cf26f2bc8cb793f9115939eebcef22235c9cc7bf96472229a0211f9a68a042b439196a59b8a9866db8d85805b2c615875a2b0cfb203de85875de7100130d70ee398c2df712613ed3a1d1a6c4993c002d0f06a6e14533146a8b41f8abb43766ed050d414de5202b3d5d53fccae95fa7704efd8f58c5c460f729a75025bc6f3f4ba0cbb8144b5450cf4b35e76eca6542019811c86c3b3fa7ca156a84d79bba652520638b3681c34aaa72af1cab2c71b609a056332b7442707d43dab58dede7fac465f63c2a2e6cd8f5688e528ec43645ff93a51d7f74377d365ca10fc3c4d4202b1dcc6f429cf357d032a4e426d265548734988a59f04ef4fadc8674655e964f91e3036bac2c55333698b654438274391c6f62bae9302b3bf94bc9ede3c2ca661cf4935d63f7b6b821f416e6fad4e524f48a783abcfd979b5e8db2a55b6d4a16c9527863904e497da018515e25982eef4f87e43b16dcdf7fb350ad4a281a161e87b2006e3addb3f9268d6c583e97148f34379c935f4ab20651d94cf9348f3c2ea7bfd16959077d975391ae72bb6c6657168cfb7ea96d9413d3adfbd361ebf50f9c55ca77d156c3e5323aa75eef835b0fef758a2dad12d9eb4233e7d1f55829a53ca1c0bdbecb041e04b9ac0a061de5f48a1d65fc517e0f5aa737cff142849880463de5674ec219b6bd73fabeb1e7eeae69669564aa3675296b502fc90f919860dcf2af5a89b26ef04262b89ebdbb333f76515876e4a480c854c7274c1c1074ec13ee0d4213f7b8610b8a8adad1ad86e7fa3225a556518a750a2f82dde9e4299c7e95ffc425c57fa2ee747e657918106680b9236c95574960bbb43b6f9bc4c78ef344b15643f7d0f4190b6acce49380e1e3ec8fad63bd25678e87af2b6c537a02f40a5a68b4420b625f67a80738430bfa25fb55492b27d23a862f29f953b62cb650c87194f51eeb170bb7d8d408001497c7a7edcee78e1b719bf3f0b0791acf665abd1db22d3fc3aff85840a7286fce596eb0b368df1ae47316d088961f791af288b28e117cb663db9f6303b0eb785b134057fd85c1af6b495da5fd5fd57c71d16fa0a651191f56a5d3e71d58c8ae428070c8dc6bfed9fcef32b499d61146a485023dab251082bca3f5b031464553d0fb6be3e75a959796d3508d3139b960afe98c1905725c3a5b5ff22514c168c5f5f13d66eada4f14814b24a5d295cdff69d0e6fb5c2aa8ae0ac60741fdc2660361050c6dd0251cea5a87d58acb32dc4e46562222f8af2dd7b17eb14ef2e4e8202a2fa47178bd9c60023ae174e5ff59b69bd40c7c64fc3f66cb6d2f2077bb31d1e16e5cbbe3ce9d6246d270670e4596fbe2ac3efe79f493444bad0b24883bdb051d2bb1881f61805f25d9b09388e43b8cf864e0fbe746a190d857d6627541bbe0385ff0f4c012779a6c81e612bb4bc77668866d50bf4adbfc55e2e63cdcab48c27c9b07266584120a810a79bedce38906c0b0d99e74cd6234f6699e3b0cbe9eb76d3e2dd20f249b59f286dfbeb16326249f83b28b8238e9b45be6da5c5083205a81ee6ed0666f36336d0614698f0e2b8ebc24515a146fe1f50d68fa5f97e85903366e54663f9d7d274debc7b3a96bfc6d096e08b2c779b37e17f712b86ed10b71df9949ef74aef138730fa27bf52c59126453093cb1a49d53a2fada95a1bcd5ce618dee84f4da9a4c5a1eb0c9215a69b287d46504c7b7ef0f425e21079158b42dc86fbc7b21003386f34148435c0b4d05d245b042823e79b8fe25fb8f28004e82f0831005a0ef2e0107ff2ae9645e1a45be92aa5ccbf0d0959ae97c2e76ba3a7badafe69a057ddc3e9e708f9bb7173b578d0446a972f4001c08fe231e374a25b9c812a4578516cdfda4925cfc0d008b06936c65099716c25dcd5d048582165c41244bf8bd8d29ed9acf6c66c2de4a3fac448c87fea8b9a48ee2ba82cb53a865385b5b133fdfbca6a7db8e536e48c7e7b8eae9c1e6161313f35ff72238f577c569ac3542579e1f79d1faa7321cceb881126d28f7d2b3d961d59488cdca0bd77e5a0c3e5eb1a0ba452e935a2460476fc2dc227c864b06bab7247850c09d5388be01b957908b3c235f05adff9e8bca6e912075443517e8ee1f7404c2854d78605b589484f8ada9540dcea296007217b5e39fc7cbf5845719e46622c3b53a9e5345d0cdd175712f106ec920b7e2fda4ea92a12201537637c7f8a17fc85ea529f927f15ff9f9e311c852ed0be52ebf38b068409da7137073f1c52c0fedb4101a1adf5e9d9816c0a90c9a680372ccb3e8bc39cabb77852aac096601ef8ca3e82a37f346d032bb3ad0257a0d1485b6b397ddf647ed18a3558785f6ec5e658c948c6cd295440c313282b2d3ecacb28c547615dcf0e1a3305cf5837b71ebfc3ca1bb4a85753a39a37b29ebc21adeb3e3c090bb97c49f3e7cdc657fe2e3284f2200d403a21fcd50fd8c2edcacb29145ef4b6ea1b11f5eae0ae7358f2b8bcbd931fcd5e5bc8284608260a373d4b340df2f5327d37e927a17f9e0ca764104da656f309da8e984c4ba948aa990fa600b95ce59c46994ae6947db1471cfa3673d0ade32e2398bfef843f855415bf5bd70f30b6afcd0805b601e4a0ae84153a0c005397c8956177602b3d40267b0d591346c4ca41e5f47eed9d8a6d17c6926aea5fe00246362b25bf0857172dcad451c66fd08f4e71eafda266691ab69f4e7f3ce403ea238febd22c0a961bce3d630e63351031aa65d7721e44eec499852432ac267a31c15642954b40302ef6a55c6ac416ba0756449007b152c601db08803dff24510f17c394364bb0d6add74dabe5b0b4b7126a716906b8d5a2b1e91111d007a509303e3790e1d607338d2a02d5f97f964f49cec5106068cea642b360b5662f3c5f41f7662cd94811d3652a5106396ed25e141c2365c614c0dfe842771cdd68e151de67d7f3da21041aa7a7674d06dda4e65195209b4ca35f6abe4ad4a6b82b5871f6602f90d40e4084528eb425bc809f92b8272ac981911cee299b7de6d88afc1d647f37b21bc953e1849730c8f325fad16a08dd28619d1239b6f620432669f527655ee2c74a6adb633a8bd629b379c77ed2810893c3265cfe2a2dbc9f8f833758ba3f3dea05a16339e16d0843b67c47f9a1478aaa3d594bfc9e843f82684f6425adfa9aff3dae1ea67e579dd54da2cbed71d9f13d49e53ccab72c85fcfb5c9493267017721abe7449996e6b84eae100491736be2a103ff169227ed1fe17850f23e0f0ca963d64d2ce6b4249ab16f400f45b87aa7f7e2727a40a9cdecf8537eb81110f8691b586f3e85c5b0064ff2623213811ed169d1cdd1bf48011cfac41fec0aa62b2bd3c5efb0b2c21c2c5cfedb54f7770f5b2a0bc3bed2f3a49d040604aaf3a3406e9b27726670e07b3720ff9f13ebec6bdf5c1b576f0efb282cf7eb613c1172da982cd128e8aa856936002fef7aee582d333ad21e52b4e4403d1c2caf4dd3bb100f994c097f5cf9ab1609d286be0ad0a21216be71b594d1c87721b51682618099ced4987ca9e8a71ad648c93b6f32ce3db38469d6f756156785110fcbd201bc560d0a1d0eb709cd7967c2cc3c21c5452bfb34a18b58b7478918416a55e994a98cba9e3d2e4c045024ad2a7ce7edf9bfd3db94b495e9203b632326d342939f5708c66e5ab7158c90f9b098e75ffa64b239c3be1194ad1bedbc9cdf419f73c6bbaa8d6ff0639de18daa92c986846aeb6b88b5fdd465b87d9c3b6e2846d4faa41ef9e7d8b10bac2cae512dc57a16ff1464ffe3ab92cfba66d340fe257cde9d4bb7178bf8c6f8ca5809330680ef889c3e2bd5b90b98500d9036761801b0d8e16bacde710079f29f278daf5223ce119605641429fd67e84aa7540bf4fd59f7b41e6f605d8576f004f9c032a7ace57fdd8247bdb28c10015a26e4f3c6c4e89c28b2dd22ba86850676c0369840af4b9f6c4a6c10bcf7ed031bdf7376f5538f2fe33e855e6be3c3b63e05a98ce5c516a19a5fae0540129c710306401487c11d4ec855d747ba31391715e0c123d80de8a05848200a896f6caf64b965a4ee91d8fcff0a94ec24e06e190002f3f7389d63256901c144896235fff24c0bb272cd633a2451d4c49fe7580f42f8e13fa3c36538fbdbdfe5d36f08cd58451daff52bcab1d66de13e9552041582c65fdc961ba34a3454bcad23b2128df3c5e496b16113c62a31a3d8f143216ffd89e6a46377ea217bd15fcb731aa949523749ac2f31ab2435259babc47f064d42aaba5d739fc4ff27537ce8abf927f3dd565f3bc8d74f12937379af7db9a64cae287a800d686210ecc214e28f998159fce8124f9f901d890e72248cbf1a9b413bdcf67e44fa48b62c8d442a50244e5962957e84f20cf3c049dd61fe644d467b7af86ffd2f4d090968bd47680dde0cf1d27c8b76288a491f34b15402cd159492ccc44249ac5f59f7421355a283a68389c28fa6bce2210d7a0b8015b4d3de1f2e4568f6e2f5f8e39e16d920c75344cc2a7a36e408bd0934ff42e4bc36347f5aa17cb025f8a08d739f3285669a7b5ce529713e4070875aa7968528026e43b0954be7398a08b9eed21b79d039c2ca540a9b81d45577f3cd37527396bfe84ff9ae8cce099b8f1b57b11d36ff56f8d048ba95e7868c8cdeea55df344308b540d141a358f2eb3fef4214a8188e30129f41acba8828c5cd0772b0b6c59761ff592e4cbfb664509f21a952fca3062f1197b1f0ca8fe5ff4830a2c84db0a582bb19c83ced47c8bdcc763f01addc592b02a26ddf7c0e701c9dd9b153be7d8a42081e046c3e8506f82ce088bc3cf99b94f28504d13e96f2a1eea3f0c8c2d8c986e9bce47fe97ef0fa7da2edbf07fbfd24a03f1ad45fd2f4e3ad9823730deaa7ada021f881136435caf7f4ad0e01dcb183dd22c737fe15e60bc0ad3c52638d8a3bb295be90fc29fd0225c66250950172125e93c14dd9cf927f150182540a64d7194e76610ba8a198f2fd7e24ed5beb923fb05814b5a4aeaa81545e9101afd1acc8e53d5bcad4ebeb736a21e9fac36340887ba0a3d53911d861ce18bbd543aa76ae00a9c9d0c1741b39821c8c177684fc98e0318061314927f367ebc881b97db83d641130ec83044db3fc60f58b9ed0e10003965315920ac7e8ba09249c3f8969e445810a780c9073ab2ebf9088f92696004300f4954606c5f45bf4233c06134274defbd056fee131a89ac5d8886d6d8848492c49185a92294aaeb35c8cb8ebd4f303ae3c7ca5a61bca691dc5cbcaef0d34e239f2baafe007edec03e6a4195412616f84243785c780ae3a2bfabf72b4edec64a55760d8b159be1927c41e663f7535215af42ae259faba654a14d7cc13472a8925ed7847a110412df8a4016eb43f8f401e1e83d39566cd28c4d33234b7d94976391e823367034776ef045ab1022bcb0195db258991174bb4e97099410268e22631a34164f1387f61b094fd12b84e676d2e2536a4db32f5e7511c63c4f4d71a4561338a537110857fa542d9cdc877096be67ed259f5506e7eaaa54fac90edc23576b51fc13aab9d36586f942b4540bf8e8c161ff4d7ad5a603da4e7faafb70c7d7dd985c18e8e047abdcf615ac74a3c18b0114f1b88dbcc79ef30803dfc1cee734ae0c2a5f6c48b1ac1fd0eacc87dd3d46d502a35882655eed26a11ed76f2f3e57665c2b450c8d6140a319fbdcaae3f831580534457c48642e8c5bf6b4019f607adab1aa08fab06bcdd50fc8fa1a0575ae31300e0282d301c179c120c38bbd4469988097494a157f1daf6f417aef78986093d9c99e1b4530d5aca1e4498a7bcc1966dd5673fe5fb55fdff4cedd53756a3697213b34f6a110c61971fd998610114a73c3593586820a5134603a2f17db76a099abe9ea09c1266dd2843c173c4e73212de8aa4e2cde52a4b650ac70a46e9050b042ec14c2f320717e9dbd66b7e4c985a3882c9d144f37344d76847f6ac8a43ad4e3bbc0cc1827809824475ae429c33e5dbae200b482d7845934c4695d7e16a8ff355ee643cb76743906e5b412d1a27d8334a7c02903a34443a0fdadd863b83cb56e443d7d166dc6a1d28d8ed1aefa4fd8fc43e298b7a516dd0a5035229cb4adb846587b2bc8e4857dbcd0bdb035c3c52bee6ca9a1ba3b9472d52a17f92576fe25b6cab55eec0707e6c488314b29541102068998eb91a1ae77d01822a912ef276cce01f3878c45557c29c5772308a0dbce5d8e5dae4a2adfe67b20414425da18cdc70362a9fc8a0db6db02e9d09016aadc1c019ed80b6873aacb4e2d408ca1cf4ab96bbccf7b153c875efcc9a37ac64d3ddf36670ac3bc123d64222bc385f19cb92c6199a2cf7ec4af665d5820def856dfb6a3eba78dd349d874a803ea81c36780eedff876ea2ab0be7c3f622a100e88775eb37b38852c5471e9301fc6c24a93c1f3d47adfd319e69db8a47eb2140872f9d395fc19bf305b9740ef68a142469921d0d35e040ba5d2f9d8d95f395b8a750381b99ef0dfe8b89bb8eb1e2215c5374de16912235acb63e9e771338e8598388f41c2b7c83a7068801e7ed126c2bf19b5e8b2659b5a19a69a8cf7019706f24af4c093c48725362c0d0ad82f6e3073f8bf1db0d5e68b8a5e439fac91634b3c86613341d8f21176ec86a60e21e63d7325d008a31357586d6cb6fde76747f3c361783b5e1e24be3603477263fed5e6525feace71f46e975220165cf53a83afdc1637954e8706428e3064e91c83282ec6a1da02e74c17f32ec76ce9c28ead55d48f7aef3a3b359e2c635780883377ebc0f1bee3b4f9259140c7eb2685feb45002dbb6353855f3072571c1bec7bfbc93c3250c9e4ef8cb7a6b1bdb1e987b31d42a9adde444aa798eb06e2f9fca41013c4dd716bac5dc9b5896c746e32fec920c170598d29306f0efa9d386334dbafa8908f67741d799c38d69ee8c2aad9640c3e94570166cd8f473295d244478e4de1b2bcdf4e205949d9b18d26a404c178eaa53633d44f29c0300e2d4ef8d73f0bf95b84e30a85ffa4752d10c9f37adbe7694b43fd6ccaea2d7e20b6e0f6e4f0674f8c0456fdb327acb95b5d0d02d81513280886efea019f783545ffdf9fb1d4f5aadbc17895023bfece19adcb49b45cd3085b32a15bd787886ceea3cf13688721af763b741f8bc1c087f6288fb65d016a4c1b3e4f4070500cc868edecef8005b61948be183f58d3d4ca74f6975c5a838f8ef65a40839e1d4f7cb1c302e782ea2d9400d29cbe2d6528d4dc5b723a3546e446b5d9fd3025c94c952f889f6e19c7a3a95d19802744f86577e77a1becb39431a991596b9c15c84c763b5df37d9196e2dd2bfa2699559d74a157e762a15b1a45adca3a97f76a7afc06ed529696f27c8eaa3e5f5aeb5f7ada1fb8aded78d58d1ff07e3fdb1e559185a6fce16dad8b2f48e9d22b8d379f1eea62df38872d6f7bc9792f2aa7b3d864db6bffec0b47a8d0ce19cb491bbda6e21b74b2e30e43fe45eda3e188d2b815b31e1773091cab60e7f73a49ed84d3e46260e7d98e6c35aab28353e59956714f54b2d5cd80f50cf1939c615b02445af81fc9cc02d7ab9258b96a22001ab6541198aae7be1d9e97343b61079bc15efb1b0e53b6e2598516e40b3b6b269306e775a77dbdc0f2ea9cf57e2e1a225e68a121c4e9cea99f43f9d12f4c1eee0bd5b42ab8b867ba25293a5beb97972711f13405de4ed2fe19ea9138ca51548fa9f223f21df1b14bc18afc8715ba81a69d39543dfdff4c0843260d4fa5301c3fbc8e4e22eb73fefba12ab40473ec2b95d2ac69d4bdd3a068c14b4c6f60532a3d6bbf41a53c308b6480955e6c1dd38c5bbb77e7dd1e9c1f3aebf3103765c88aa3763351bb77d0d50243630aa974fbd117e2e3f2e86903b35d4d9e745445fa74785982c3544702ae74d5f023ed1dc80805ff22420073a672827b7577a094db4f8c208b0431d027f0082657006ae6a23cc3dbc9c696810701e22ccf5d5d69e80603627cd830cab8851524edc0b4f3a01f2fb29572aec6a69d3c287cf2966ec9c6f067769ddd54512a772eb21ad8e07837c3a8bc06adff2880110b2c19ff35656e87d33f17b0157a077ab706ad080d147046f5fe284b1789df2711ea66b2f86e5731ba2bd6fa0ab2af7b6aaa07eacc019ea7953b95d1c76e4029f16853ee68258c6a31baa31f05ea20002629393900605d8c2e4626de958fb58b81828ad187eb06b1dde211cc279d33119543ebe555ca4c98f8cfc705515b5f0529728f1d0c6553412f166e26908fa23fc29f7257a180ffc934c425a482322ed489a9e06399a301bd5fe3d866e749ecd721a4c733424cd2e4edc93804b41b62e766bf6c2541b7225aa4c0145798f5aeff42863083626909c356ecf0a1286ef739b9822c241ac8b5ca7049eb817a9004f7a3b5900d97e754f06aa530d1b786aeb21f2d15199d81b7c5910941e45536126cd2ae12172deab6845d2f2f83b8d5cc1398816cd900e940589224fdc2fed560d72e0cb92988da303240b120a8d3113b549e0c559594ef673660b92e757cf80959d7d10f7115959db628051f43575124fcf3b14e31815d51e79a02673654e1d31a45adef50828998305ead4d62bc07058077af0aada10a0402417088f11e0f548f6dc0b51c6a3940c0608afa9ac1a703f51c1750a855670c70cbffbab39032f60e7566172f4f1cda7c51131a03e8b8c53f377f225f5218d96985145a608cfdc695c2e8dfe9a2e74b0d1799b2f218f7dc53578934153826c74372f1c647a2bb949bf87396fc870ca42c4040f9dd431cdd5815afd702b3ce89dcc2963532c9421be9502bd8be704107586a6f819a2bc45df099dad7bcaa3fe1c133d77df6a0e68c6414102aec257b6c5a3d0b9c247faec783e42697e6499f43db97233a1bd38e939124fdb78f29bc016a86325424475cd796890fa52d8bde3ade5606005f0e01f54e64ae4b9a9441a49ec85f9b6502f801cb0174f728b18df46bd4e13f72831b53c909685133839639fb723a6c4dbafa69cabbde93cc56b85687acc18060155430156538e9b6f7eac455aa2aca61f81d9d340ef84bb5bc058c6914ddb5c533bace0b487d6f036fcd17fe32797e90b616dd3430ba7e9c695fd02944c00413a5d6d32162a26bc981d21d4124b96cc5a89c91e4fc141c88a76bd712058d345f524961ce5ae188284929e3c44981349a9081dec127776b77dbf6a658bb1835315b13b8423b412fccd61b24b3e384265da1eaf8e8fa680b160c511c2fc31a1f3c6404c97896243b5fdbed9529c509cf4ba24d5f4b11e200c664f014da1605aaef7bc8963fba33468236c34ab3ece12b3e8463ea6566bf183c7ec3f1b1ce0b682603bab7fb23b7b8af288960f39acc7d26f2a75e95d90be950a963f1ceaa6e273685b7d0d707d4d6a7ea51d32a5986b09dc043a64db52ca8005786d00462b0571c96a0dca278af46c88e4d49b5bd57e415e155869a39d1427c4d1a0a6cfce0b0f66e2f5387accd409e614029f4b9d4b64040c583589dd918c4b7f0ca9e2fd3788306a58ce36c3d03396286f8da8687002a8693687a502c9fd54a832ce92205c44ae2f1ce503348fb8d37160a83c7a635cf6e50f0609ed8287d7a648c98f5ee4925b5965c4146040c6314a97b523af6bbe36ed689127f27ccb449cdcecfa17a625980b4800a22d89034b3049a888d3794d1ebcfbb1932dccff659f5246d65a74e9a3d54b97edeaac6eb909fcc9eabea5723f19d913c6430bf99ef0d0733c6eef90c355f5e2602d488232cc6e8ae8aaa64d276188cac14377d11d561a4159facd3b3789500e032621ddb86e1e9ccfd003e0b02305ed4479eff5059855e9a4262aeb65302b7a9358479ffcc7836446bf48f89686759fed9aa43674ddc0072231a1eae754098d815b2bea3f3b2ac8cd17a27f7f12a6b8b37b26dabb6438d83d8edc72df03c145bf47a640ab39cfed06c8d2c11e3e7d583a1ccd00c4fd009ff4a40498002b94fc199ded2c68ec2351f9dbac1740f68f0827f284f053923c3da3ca6f55aca09c546e4f5e1b7c6a0f05a2cdc89af5326721a8092abe09f301b93403a4f1179a511c6b9002b59d1b45a79cb0557b7973c56ce07ff7c63821995c3b06cc0655f9be71f354ac2663b6e36a465fc935c7588f4a4a4f7e5dfb6cc4318142ab8212420b6fe8342774c2060d68c210e5a01e14c6eca902656a4b2a65a326bd30d52bc090d29e244e68642ffe2868539af81c670ecea31896bf3dcd2b5f78ccdb57dfed5904e4d3899833c010740e143449183483187608a67a05191f8ae925519b9518bacb07b784357de385f179674ffa959163ed01e39141c7350193d90167cd8133e7444e44d1ea2fb39183e388c1c588c397c8c1e9c0c3e402fe36cbdd93d954e0858390f1fec460e3ec61c8c450fdd041fac880fff470ea7630e9e460ff6829fd9df636e44e60cc0e75469c9072ad125a3d5dc60a2bb2b64d7b2dd9d9d8c9d579f125f54afe55248e49a59b66f292242cf14d71cb2bc7f61c5fadca748b731d684c5aab034a661981509a870524c8c935c8595b68cf7c25198e66896e40a9f57441db7fb38b316b6693b60438d26d4fe45526cca57b0b6f58ed95f98337e07b13bda9a4ff3dea325d4f2db7867d0862eee85a5bff0014a85a9c83d05c29986f698d975614e7807a9c297c570fccc85b936ce2934bc454626ad7d6c58157d070884acb7c2deff953a99ef5c58f6dde1529333ed805bf0fe2720d8f9185ab9d8052e6cfded0a9aa7a2f2c50a4450472bc3a8c6b9d4010389a132c4893992c8472991a91a2ad97b86ff481426e5c295b447e3f1da2d77b954b0e86cde902a0e9ac54f42b4bd9d1f11bfe2478b9ab65cd823d42c88485ec108b646bc7ca175e23cc7c25ac86d2f7edeb8394b668e61ddd90f37080c0b5b90ebfa3dd1c1770991687cbd51a96db8697b5995eb441fcc554a13ecae5ff38621aebfa641eea69bba40e67f2d85bb291b5599ff06e5bb9d68f0fe69b8255407d037fe57630f26922aa6b39131f8b53310b0145bfcc85b40373e8f1dfd9c98a79944c6e5b6a35d7d78315b140ce7de85bef028c72edbe0cc38f84c594a9388e41ca7569a419c7001c9453ee8e784e2cb7024f03b172af15bcd4f72c5741cc35a4118692784ebf92c9b731d7bfbe65623203888ee4b810836fd3d4a09b1a35a1e1309046447727a726344e34fbcb725ec8b1fafbb27b00f884debc53cb2d736330c396438e0642f1e46de163ed9de436a3166fe543c5844648901af8c7dd0fbcc100b3878a6ccfe1ecd18dd450e1874c4e06dbf8c64025d863efe8967b9f13bb7014b9c4c833601492a4fedb62e08164a11057e864846b3dbb9552cca14e0064dedde16424973f9e379965580f7ca767a86ecaa7223100b5408ca6fd11681d008646a91c7de3d9104df42e60220c1f077c7c75879a4917d84a366d1ca6549f198db12f1388ae8e0841dc6d2fe28b4b7ba4a90a7d78bbed7589fc1cf156174d75092fb48d0acdb190bab188742b8a05c70a8bb5e78a285a4be9f984df774d283ac24e87b2fc89c406b1cb69d50c6dd136b7b33db4d365a406b5583cc30d44d9ec15b39cd08034ea867edd70b0a89eda236282bbb3fe011edb17eb99b49a7f4682500242858ed0e7362360cb0105865281c6095bc6d70238fce049f4471e2cc853453941283cab2aba5b4b4c56d65bfdbe9022175702a5535d6b76ce7e00c6ee5a07cf59d0649770f993fc7004686e4e8d2eea2a95a86739dccd08dab1dc96239872b58e32e61202db3dc786c33ece8fd1499dec8431361f7f1b705f03fa367cb389d22b9bb241b7cf62932dbd55fb540afac930fc5acb13cb5845f55e5c19e45589385be6f6c7866037e0fb5cc66f450e7f490c96bc5f9ec17ec2e0eb61652ccb36ba09413fba175f16a24f3f031255c44a95d34c1b613a842b2dd4b767f1a251f50a34f61a1df49f7b2c412796e2d35501d8d7e39ad911bc0525d61ab6066b11607842262d875e03271a352c89d8748d6dd714c88a41976171ea727624cf5518ffe364840291be62cbb13baa770b15f9abe03dcdd4fc0bdb554d14b614a8eeddf4819b53ec73cf0c4f7b9e250e6bc1ee583648d8eef39b586845ed491f76516ed1b0e624264b1dd853924ef32cb5506a9327b6948cdee470ec76a06c726b5f6dde69f470806d71456d7ff274ca2b52fbb621696dc7ab1cccb4aea02c90b0f1108b9b5e2a53f72aa28bcb9a06b4779c4affb20e8154c84f5d0db085b57878f6f5bfd97d79589d60a325913dffdca35e09b4bc455909186d17890065b4f0bd6b25be08bb66929b7431606a391ebc32133564e7b5f866f32c7d0b163678afb8682e40dbd6566d7f42f83d1ad0f32a84fcadd9cd3b834325b8306b3ac78067d6f049bc6f17b712f96ee8dc67b95df821c6152554b07b8f1d45165200d5879af71540e5b56e43c1305a32701b6cb70c10e02ede05d12ff8192d12d4f90dac8282469bc2b09b9cf2a5cee3476ce4701b28b7ea73f853abaced67507b9fd88f7ea82ac51442ac53eb2e7837647a6723681cf9a87fe95084c2b9a65985050baa42deb34983e9fd6d67250f1e69467e243d0177487ee5fb6b7ee78234c94782f6a90f62d9fb1c19cf6fc2921edc96ebf447b746754a9bdb6996c8b4914b0e8f44cbe826710e55335be7c2fd0efcc5e592701998210a559073806a936b8c915d6010d56760aae46a954779c518cbe568ac0c3b45aee3b988e3ec95d173619108e9a050c72de04dda912a19641799391913f38c87d6d4abf6645812a26ce8aaa67bbb48c560d9e9e3fe31e2fb51163e4d35c9cd96f66058ae33cab59895480f5583008d24d32f04215efecbc83fd645d085307428797a51c92ceb82e6932368e5667ace2baa9bd6ac200b5dae92d98d873473696a07caedffb45ac8200deb0f789a249dc47826ce63399de06b4bba4474f8237a47beea91cf5b3f018d23ee045b7183e05c466d051dd079f1bad08909f56534d317bd88c55285b2de97319a031b2ae2a56c57206462b5c206f7b203b63b8fc689a425fd58898ec7e8e10eeb762d5fa180e94b2d327196ce1549af0273e520ed9824651bac806e59cd5daa7a7135302bf952360f5a7f20741772bf4e12c4fbbe53a308bec8f24a06527d89b0562530f79ff2b656c9cccba424d7c58551711301cdbe6acf6c8e88858f4e2d545a789f22dd34eb8afc526be3ac98759b7026e2b3d2d0c23164b788db67e477e77043456f83cd2390c935d29be28fe72df6b393f7837713a64609245d6676d1cadecab6746d2ea46b9c6c55d283e2b90c6baa611319908b5229a38076d7a97cccb48506a7977d517049a3a6fcb0716d7ae758d23a430f6b9236bee385e8a8ecd58f33114223c04dcc4db836712fae2ce5ec15421943b814a271228cf25a7a89e4cb2e7398f21494e47c4da7aec22ed01c36c27dd1eb4ffdd69eaf80ff1c99977e322fb781ee6a0b370ca3af051d8c470a1b3d561b8e8b06b29269efea91017759aab58e602bca1ef9d5db381208e6249676da54239e74100c4403f14c7ab1de092bff989e9335eec16ca43b7f43e8d3a57908a32936503fd8db6d355fcb4518798ecfde7ee6edd7f848ccf339c8d719659958cd4709d0f462b8d7a67f6140014a0e0364072ed6c1b88879671ed070c05cd3ad33d0ed82d8dc783fc604b4b9cb8d1f01f90fb353cfeeb21eeee61efaf7b8a733ac75eb0c60ec2e38d3b678f24b0a2adce45c4920b402723b6a8233cf9821cdcefa21b2a204b9ae06dfa9a54e03470309a1ba2f9238e07fab0ac2e864ab1eec95d4a7d60411a51b3aa822b494fed10d32ccf69919c4ed6fd473a5527cbd70c2c6c514f49c6d8a24066dbd2ab2d7bb146f3a138d8fcfb15b7e9a5c8640c2af210d8933c0f0038b7b3334b2b517e06005273676a8a9bae802b55b556f5111b8ffa545accb926a4e67cb49ad59053e788d82cb1d327337d5a90dbf3b323b45d519357725a82b69f9dca7793374365d72bbdb3ba84b4a21603bbae3ca52b59ae50b167980faed04c7458fcce6a42ee997f2752231b599d7f26a0f4d49e57a5c044e8bc2294e52661fe5479ac6a04150a7a37cf0a9fbe50439f4cbad9cc1b40694b1009e0b4210831bbe8ef8d269fd70ae4e23bfad4a68859d873a389c08f9566760abb9d26e030e219e10846080f8ffceba3e08a0aa300334e146a63fbfabe96f7f54883ea2da421f5d8f22d3536a2adbf59c2f90326b3e8f03999a9b552a2159b177d726b1e5852dea81939f87b39d019acfacb2a364be775193b3ec96a6949051e6ff330bdfcd82632e8f5c82a689e0f859cfd78df20cb262717e00018ffee84fa9ad39b15533708ac426818c1fdde4eaa776cbcc2a293aeb09367470b4312b39040668764956ae8b457be4a9dbdafc79042aae64098940f00f90d3f5a20f9eb5fc506bfdbb1b5b629fdbb8946dba6233e96b5774c472aebc0176459bff2d87c9b44a46553e07b36e89bd3a60cf5c8ae9394a3815560aa6e72b6c5ca3196cb165b70a1dcb3252ea858ae716f1704fa1ece7f3d85ce29f88f034446dda80180d23f833667a375d7d09e66e4b7d0d7d14c77bc22eda83c7a8bc24ce47c09c3a6f2fe57afac773a8b6cb9a3aefdd8d023b958ad0b64566c5d8a831c4ad8b678e17b5bebe2811870d0890b8794f835d18144f0a031e1773e4bdb8a365d0a51018a9e335d17bd8ae2929183eb2056403dbd97a75e3246f6fc000cec6091fb68de3dcc232c9b8c7e508f7c3b3c675b401407a765af13532649ec440b4ef42650358356fe5fce75a540bbfe04a16bbae3c15efc600a988d794f6108ea25197d64bcff3e632909e7107e692b13f0bebb012cc903b3a3619c549f36c06dafb98cb77c407d0c90fcb55a919925067ec09239918d10b74190670bf4dbb611d768ace1f2551ac2c17440ece35525d10fa8065f3ccf2f3098ba9d1fc9945aae572db02a1a3d1d730616a2f7342e41e7e86b5361d1da37a5f56d8f356e3c9320c10915692d0a559f436036c3b9650dad127e73775391b7a5774481576738f67c2507676736abc99850546e2e066d4c78c511e6a59b989d2e85de54c1acaca5f4653a906ecc89e8f743647009ec144fd3e2be4b82fba2e2b765304f62b3925733c957ac1d8ef26d601809d61c3ee02a197f6f1459b8d83be6b7f7fbcbfaee242cf5223bc985caf011c89e74db2e66ae8cbd08492ca9a2ca5df47ce8a00d640339d8c8adeba679123601b778c64f7defab6e9e76761985e3dc5cc47cf8edbdeb4757e6dd68e2d71b60c3d4e8772a2d1bc7745990a6c3e5b2d53b475f1d62deb8a72d9e0431db080a8c6e7f1af10401c6f844de3f2c2ce26767887df418efb6f32157744842cd16757fb2cd65bbbbaa76ed939659d5bc8999c2599192ca9656f8832ed596261d659013b18512346a6ac4c0dfa19130fb7b6dd1f24dd45269681b89b33fed5a40f48cd122502d941950d49f9237f04178b9a2eaa78c638b7ec4a5b144b024cdd4905cc6b2a2799f52ddd69cf6617302cf8aa1b11f9b290a432e237ca2bc0639086a5b02d999a776002a4d11572c1db79a43d608e1b43bd2b22dbabcf7a9826786b9d408dca1b57bd29dd149698e10ce8f11fb8247500e2121128bc3f0ba80e231202d1f07d12e038a12d61030233caa53eedc2c2f8e4a63ff28f3eea9991a4e6e608f0e4c41c67a9c4c686451e1bcb08c01239c1cf89ce6484631c7e57d668b37bf1050190b9ec64eb4f61b68ab51ffe062ca7314817796b8898fc90d044416d2bcb8a949a39071f34582fa561dda2d4c3f45693d02675af8d01fa4b8ccbd3e65f7af2568a19c70b5e31092d9ad1a7ad59db21237155374a73ced3dc60e8bb7f17813b923f86094a4edab58bb18b9a0c7d67ca72fb38d636e7c088445a27fd7358f785d43a229e4f9f962cbac0bafe52ada25e0cac1278b31f556763581608ac711efb0919877fb60646259467a6450b36c1d7028a5853c934552bb45f2a60124526eecd7c1cd537d1c637a1d5f432a56fa51f393c8507f44b558e5e6426894ec90df5a3b78ed29f6e8529012646ec0d5758776c848e73566684cb25bfdb0efe8074028d0ce154c233868427cb1546fc04bcb8d81fd1462a8c3442ac19fb35ab0f0f4dd4cb14aba00225f69001092b3e8a7e82d6466b9b336d10942a1faf29c4a60a270cbbb265199ea3698e5682f62c7d215da9e96cc2522f4e94b18a6ed2d06825935c9dea15758fed2b6dd03049e2394087ab1269e53b832be8838acb48234f72ecd39e91832aca740ef3062f79c1e0d4d9ecfe29c417e7c593122e33764ceb14b2c3d16d49fdc3d23d3bd01cb9fa2780ff5c9d5bad5551d40846d9c02467bde90ef5a56d08949130ea101d419c0a7cb1af4d2d437d666bfe589f0f0a98edd91107163d3fea1770f88402cb17a1a336c018676ae1a7afb27a1135136611ddf343072698378bcafd0e9726f90ad553ed2f15cd52a1eac08f22cd5217e623813c528ed91e4cc337dfeb47ce6549b307dafb82091422b3256c80ef55d00afdc0f807386a5a1c08fb6cd0a661a6dc34470fb4f6b6f055116accd407aff86f8d1397430732ba8e849d7d81f3c30f61ce078b043fc9e2b7289f741f65cc959a8ffeb05e79e3474481fb74e72e8b47244d7d986637978dccf9cf3cd33ec003347db4967d080b2705fcd7e5a1c01ce91d6119c0087b66ec1918fa689847e26deb06d0a9da629532e96950d9d86f3db759c5f5036a6882bc3cd40ae3a43b12232d40189a6ec607ce15efef038d4476e78a47528f0cbc03899af904f0f4607a708c1ff6ea2c85a7e410d9f51486178661219a9626eb7aba0a4b279d1e78741317f49f14b800d1d9025e560b655bcdcf6f3c579f248599e1fcdea704558d6743a5158a0c48efcda422aa783430a3207ff47ea8c38c0b61911bf9cb682f153b9b28b8554f6203b87446a02ee7c8b4c9fb2a56a81030f1950d638a8849b0021e78f1b2806a66a72bca0de0a3596b5027bf58bdccd59f003358a7c13bda9820328dd0af5caa8add27e2e5601ce1e22e838b45ab68ea54632596a29e7f5a40c11defa19c8f7020ec03b1ff08c0b8e35feab5f7837c495d05453fd21e9dbade8c2d212e34cc6a4b889d0a60f1f1d6430f0150dbe6215fe2aa0bece26b9c463efc0f4841ae2441497a41279039bd817c80003c8f7eea41248123c0adfea30e8c04196a2253676f35cd8622bc7c2bf9e34783d93d690bc4679bc871edb4a61010add6af269b9a85b39e23b853373666454ce00b303ec683f006f23478d5500f5445a8db5eaea7ab86ab5d2826689244d8af6c30c9d7602a1b4e7a7699e379ce5818e31d1e8485a44776da8395694a94432ed940357ab5d96a79fd57103557908fdf2c8bd8ed35770d06aea229f5ec7a72b73ba28e181622203d74b0a349a54511cdadcf60fc0182e5bb762be2eb516b8b798ad2505bb93c4586de0a113f58a4d89d2349176a2665a9fc3ed7b7c0abfa7c2aa572a55d5fde2371a50a9b9c8fbc7a0a3cebdc6276f065e1d7c9e034cf071a5f30e6af58213a09eebaaf96f1f59bdbf6773c5d999862a444d1f6d0220f1ed33b2faff156bf238df2ed4f8305103e4a366ed41e505c233ecbbd0155906d0c29fecb0ca0db115180af5570e6f698831a54f261aa32f9a63c0825a799f48878727fa24b4e745723ae8e683722e724390947f8c1fc0e491eeb781c82a4807303eeb14ac56547fd9b1fa2468bed46280c0da727f2c587f780724b8dd9361735aa16bee815e811747555d451300c330d665bf7809c9ffc500f783950a6746e719b1947ce883bb1d701ee207cb4447c3f00d3869b835255f9553c1e55f59affbfd8ca027f23220f126d9fee37c76161597b524d59815f03384ad88b624627711dd3285edb10eb8370510e1622d2439acb8ec1f6d7fadb0c2f9488eccc7db247114255bbfc65ef1e4e6153804c5ff4e11562d7d44ff10a00a9044128fca8acc734a44bbb0bd041da0107f105bc187b0bb926635da573a19378817ece9a4828ba10ed1506ce81891a0ce3089d86ad0d2695e654ec7efa8c0116ce20a6a9ee20a06bbad041812c858da92fce7f3044533d7b4bd9d6c4feb44ff89062cf149843e7afffc05bdfbb79b092cc87bc245b4b59b512b642280280b41eb301c7af5b3040c2996d72e610192d2209c8033b9a74012fe98905d2bb8261e0f9e239edbc45eafd5b22b3a0d05cc91280d9b043cd1632b040c32bec72daeebac55a7228838265e3c0e155bfc528fa90702b0ec98bb9cab457e9c724028d9a1fc9c32c3d5432008e6b289eeaaacc0a02a9938da4b5dd938614b2900bd2557b339fbbb8b536a5bd8f3118150b958d808ba355dd698fad48ab1d05bde886a85a7abc7616f3b2d54d73f92fa2aaa539c6c050190ca107982c23bce877be5caf02bd6f3f9244357cd04b0232ceb2f223424f16dedd94204cc30f3cb4defbf7ac2828acb23e71d04a64d9934a869eaea5be674b22d94fb6fe2dbd3bae3bf0be5dbfc20b617030a6a6178128c04a5ca2dbcd64982e6f39f04640451d7a25f02390e25f18402e1642590cb84829cb1b9e2772312e3499aa7a0c4507b5b340a1d00e55448e4973e72b56fa4ece6cfc02e0596f672a5641dedd9c4758ff33e7fb364a2882e6420b9e02041e37859ab2ef81e1b57509c3c98351c1b2c33ebb5cf6c4b732a980fb3720c548c34fa993f8a00bdb0b79afe11e1193684e805ab7583ce79e581b25c526fb7b3e95e6a7ffc4984344390be107f6d1e345df89b484d710937f2b273a3fc748677d0e646861f3842f8f55d4910c6a35a44981615b01b904ca2b941e5e1c385548ab2634486e4b46251b6a0da05390fa714e0e781eb6bd070076c754ec7b7d5fc81c278f828fdf5941f00b7fcc859d8cb66cb685a6ef1cc50b6264c9b581075a2db8ce3668452c8f1e2303e5cf4f80b233312d8461410f6b3d702957e81e91f3defed301c494150a809233862114b972c73f3d553e47e7f3991614334784eb5c2aaba417a4e313805917b39be52fb837ca3c73651dda14e9fcd7772d85629ae39a71f83b22e9cdc74f8854b62c14d62e11353fef13cff13a21b03c236e76fe35b36ec2bb119fa029059e5d98ed93070d31b2252e8081500d3d08b13b1daa1935c7e2fa481f5ed0848ac83da68ba0ad2c444c0e8efd2a8120808ae20e56b1f73f752fa06152c90c381db46eac3f566f174181269eb30a48ec393dfc91d500345b95afb8745a2f98c295dc44a84aa85753d4221b90e09ab4225772134a344aac8675627630c3686bb988f4a8987b804e5650d8130f086f3d7546b8132072c28e3cbdcbc0b719331b3f594dbf8c4bba4c6b82dc7404d96bb406c7ecc3df3a549eb8966e12af3de0f6b5528a4fa045e34c44e0d50107866950e187de3453ba13946c7313a3ad2f6e0721c31064d7eba63d7d17ff4c91b0c20a5b06cfc86f62a5ae030426e2605cf4a8315d5c848c0ae073e6aa9f0156c04dab6ee46f6967bcbbda54c49a6d30c6b0d960d8f217df7dc928cc72cf3d10d6de01d971f3f4b822d6925115445ea9d9546e054fcd3bbbb3b11bc3be47b9a0ad97997599d4bfa06a80aef44d1acf9642e69d4049a4f661015bc6f02dd3889e2ace2d2f9e0b8cc29736846c1b46896cec7c7907867f5dfc9fb6fdeae73b2a4285015ffe5752a16c5aac29b254589f91dcda3071985ab702a3e90635a609de4a91e27655538f6fe4e859d8fcbf55ebf243e22aeabe761e74324d379ff20b1f3e1c95e418064afdbe3021244ca554acad46a9592397a805c17902041b2174f9694256558b2178feb753ef2b878660e1e1e170f86e437f155ddefac763024f72e07cf5f1e170f0f0f0f8f0f3c3c3ef0dccb53f9e254c8c3535d3ed4afc8bd9fa37e49dcebf25ce7d363757844be23d27542dc5d2ec8b92abc98168d1a52952651b35cae94caf5f7e9adb3cacaf5dfac32a368547c17e41855ae0aaf4b4c0ba566adb2a41eec373b8fdb91fd8ca259432c13f7e34fa2abfa7b9f6b56eaefbb743ed7eaf0a4aa72a304f0236d88ac7e2e4d31c4c1c1913838cf2bfbfddcd5af3e4b6a169666e17cfcec9529655a9aa5fa8e7d30e57e720a91db6fce1c6be594667d52088a66557109a5595f6c22856873b10d3e3e7e5c822d1f1f837c7c1902c802f2f1a513cc12f2f16550b35c1f5f3e69d68fd67f5a8c03b75a3bff794c606be7e3b3ce7f35f204dcd2f92825fb9efe5183548c0b8c8a0fa4626180a8f8422a460646c5dfc1b880aaf8ad0ae3b12fb02abe0f6c0b9c8a8f690155f15d7509264e57c762676054bc794c0dac8a3470d098c1c30c193764c4f8183637363050305eecf0e2a4c3a926871a1a1b3433356664a84c8c8d81a9302f332f578753feafe3415cae0ea7fc67e870ca5f860ea7fcb9abe31f43c7df46c71f860ea7fc6b74fc5f64d8865d1d4d5e9d2e728177dcafce635bf0d7794c0bbc13973cc75f7e137f4e0fd3827774ac4cf29b68a5168d8a488d8a1f955e8d92489e0efbc1a49b8a1f83621402028a43313a612ae237f193c438254251c52351b3acc4679e999939dd193ee2a4ff20102bfd0783302f8abf4abdbfcbffc7f6c38f771cfbf9bcfcd801e17ac7f9847c001ec77e00682b5ff5f2715441ecbc5b9bd4fbe3d4cfb349bd5ce1d8a4522fdf1fe7694a27556d88a47ef54252bfd249d998fa9dfaad9ee77d10328094c5f90ec8ab541fc4ff87bfeba9e47cbc8f2f89bb7ad805e1d646e7fd538ff3aa6aa3f3f255363a36c8cfd579f9a95f3dd569e9541b223abff342747ea7a5f33bbf637592b8aa55fd56df9312f23dadaa9f7c1f7686c04b7d1784904fd92384bc8e3d22c8ab7e5591c4ab7aaf9fb448e215626390e779ef7e00f2aaef8e4810cb3e16895fd717800f001689df1f40fc7897fde0fdf1fe43f5384f71aaaac28e88e3ac5e7aea558ff3c37e4a2e110742955ad94f3e12f7befe41cd52a9ec87c463b4e2f93b6954bc405ec7ea00791d9dbfdbc579afaa97f54b22087f15140fc7ca377544fc75bec77bde716aec7ed02ecec7cee7a6ecf77353a657cd5feddcecd86fca37ddacece7aafaed7ccfcbfa3ccf9d4fca32012f8e3de2bece77f70390d779d811b9afb3aaa99755f538f54be2e2fcaddfcfbd4fbbf3e1e7aeba20542a15cea756f73e4efd762c927875b85b8fc0799d55dd795953aafa2571554f57a9552a6555bf63b951aa5f3d4ed5f98bf33a38b5afaa7e48e2d5798883536de0fdb93644e4e3bc10f9382a3b47e0d9fc201fe7715eda78edd7c4d5799ee746e13ccfad7c75ecfd5b81bc17b93cdf53bf242e4f74b2c93c95a1407e7644662e90e7a9feaa4acd02623f78817cfcb89bc279ff09e4574f57d55f28f080fce7af6a43c47ff52bfbf9ff5cc6b450d56ad509f12c9fc2a9d3b9a5667da720fed896a5ef67ba94d2254e4de9ecf84e4bc7875b2ce9c7635a302d8d8a1812900aef8fba44f48121794ecb6259fce36ae7571f9ba5f3ab5f3dd72cd5af5eeb7c561b9278fd378e03f47a81d33dc27ff53b95752ac5495de0748f48fdea7fee0e55d5d928292dd7a8d4c729cd4a7dfc9826383838ef55c77e487058e7231feb7c709e4a1c1c8ba37ad7d9796e714e542ae9d272a35ad6c63f5ef92acb8ddab136fef3aabea775accd5d22fe4c6956eae347279d1397fc26ae52ffd9b85f6c22836294964da05c95fde2931be78def52f0aae84196f8393ebea4024a26cc7c7c9945b3747c7c49045b3d3ebe3402efbc7c7c99046ec17c7c69056cedf8f8d209dce2f1514ec1fa9cff24146efc19650ef5a8396c604ef5b0c585cf430d651083172e7c1d750ba338e6e2c2cff1850bdf9b78ff4142a68f55dc8a4731af78587816a6cf3253669a9d8fa76a1f212d75ecb88483a352550ea7facbd453e756952f8e939b52bd3fcea752a9a738383838385aa87054cf1d8e4ae59c7a554fdb3496a5251cf5c3dc70e3f3503fac0d37fe8dfa615ddcf837f5a381aadf8c1dea274387fac5c8a17e3636ea07a346fd5ed8fad5d4fad17cfd6468d42f6646fd6064d4ef2546fd5c6cea678251bfee45fde8fd30a4afe3d7d48fa3a95f763f0792894bd80f6e4cba9f445a02de0f439244ed62b368b8e41501798e134dde653a3a6a62fa24f363fce884294686a27330241bde513afbcd28386248f387aa6c76fe078f32cdcecc3a515d98a5f2614837ca677867d1e51a3f3e9a803fde84fc6979840ea69012745b97a7c881146ec68fbd117eb3643af19ef00b0a0b7bce924d3e7aa322efe1b368a9e347798fdf44bff206eff3a397262f1ddb5f8d8a9e2bc1c1b32132f3fe33ff73b3cf5c09468353b66dcaa61427f44efe30355689427adf5686a0edd3f79be9280ba48845a4a32c1af5fa711f924317385dff388ddab63f7478cadedfb3377833f3a346c5e806ef8353b488eff2d1c5c6262eabc4286e6cb2c5abdf84b6e8d456a4f48f58b43bcce24affb6df1c8a427f34a4ef47fa3774ffae5a6b59b4bb6cf9d0fa94f6288d8a443f4343d10d1edf291fa3962e3c976e2352a3b8979c64ce95dae0d910f17e2ee75a7a3a763e10e619e659d3b46f99f6a1194b2d17d3439f4c6bad693ef4e243d1085a6104d41161095fd67ea358d4a818af340aa959de9c7ee4b15c4bb32e60e32a35abfb08e13dc5e89e3b36f9ee31e9f2990b91eee5cb9f4b31aeab7c63171ee53afabd8222227028516ee49038dd290dc58d6f7ba86313cf89454f3ac809922c1679b5bb59907f3ad8d1efe920b4ef2a61e723e17741b7939d13d9d3cdf7c20e055025e5fb8b7e3cf257c472a3c9f4b0dbd44bbcfe1e875d3bdb50342a7eedda05354abea6f538a4b2b54cb9b0ca853d34347d080e9e7ceda150a358ab92ca4abf2b12dc9548b82bbf9d78f27bbc6535b272715cb6c228e872dcec59b91e8a593f7740c8ab69b6a1804fae5c8805122c9a462f3e3ac5eff11c38e54fa7d50a85fa3f355217ae7f17473dc45bdca11eb22ba969dacbd7aa11f1a912f1bf9f1b6d06ba288858d9a3fd4679569d08de612238c544f00ebc455d985b7867b8fe71c96b129b4c894da64ce9e9193c1193a8f7a042f96be59bf83747396efc8f91746efc7abfffee391521155ef4faaf5458e4cd095b0d946d7c52b87eaf82b7840d11971bdfe5fbb9523c201f49bc52806c8e4017f6d085d9269c4bdae937cc0fbb0433d06538861d867b41c9789c7bdfc4304ef15bdfb41567b1944d93373b4fe3b22c28ddb439bd0ad9e4301f78f01de33ce9bd300ccbcb1c3d189f9ce7659dc948c9297e092737c393a3d941d3333c5cc68b31726a5b678231753c1889b75c1ec25e32ee374e49cf853946a3bc467166da3aca717433693e3d6f661f8f170c46c644ee2193b1673dbc0a1ef4cca361d738d5e3728de7d2237baf82079d3fce3bd5708a5fc7953de4de8f32935996d198da9c337b6e54d5b22cd3348f334a66969cc9e81042e89c13ebc5a4949233ccaba07db71a5aa8f2cf989951382e4beebf181baa5cb29c92532ca36b1d591c3d074e65eeeed994d9a4a8271efcca297fc8f2b35b659459966513662e2767dacc30b9dd70de6474f6e19ec5daa351fcee710ec97cf4e081c3f6ca6f58e314db681475c916f2a9a16a83d8a95159e636c618dda7bb239157869b76bb99b163d4e2c17788411573d482753e6c91c88a2eff332af3f82b3633c9060fbef7c466964df11bfe24159be2c18ffe44c213d5388c051e7c7fec89e74891463663c2e8d2654643baa4d1a2e750ecdd73a1586dcec41131e7e9c49c31331279f9bb286782dc0ade51d26bd5a3c8abb0c3f36f6e52da2fcb60f4e189c4d6f9f0736c659c938dd44928a5785cf0b78a1bc7491c78f039761cd6020f728cd11439c819334308d9fd33f7ac778f4635b333fbc7192ffc5697b3397f5eae1c63c69fc128a4e421d8296d6c34aaff3d877bc738fb6e9b6db322f7c0fb9eb5f04c8b47363bb9e6516630dac0e1f1b8fc132693106672f4efe74a28bfa879a746f14f18ee25a3311c7742f8a38df143e204d3f9f077163cc66238a9030fbea43271c669660e3633bfe91a0e9eb8c8f24547098580628c586597b6819b88457fee2162989431b28bfbcf8b316252c61831897d8c9894f2e70358c0e05d81a0b76469d61663703a336a4444148be0cc4c44da14229a4231f7e3d7bc0de90e4fe3587337d1b7f0a70907510fa3d4856f5444a432d2e814221212a2443e436090caad7e3682adb62ba644846c4fb7156c696f58694bf3ca16787cb5a5a8048e4be02b386712c5a22a8a88a6709d7e4f43139d44936812c92824d65be39af877601c2a13f3d22c8d827589ecb7f7d1d1ca2e3a6f47a99d442693a927d112ef98becb5c18b2a8d15353ed2b59e019b5d17598efde088c8d66c4c5da687fa453927594e8ba8be54cd4d4fd1197efac122a4ae4d3239d92f89d65970a8baa90c28a2db7b58905e8522e92b62682c302745d2a2b75950a5b51c402cd4d96934b573ef1e0fd8f5b5c4f7fbc83051305dadaf4b4e18a084ea2a68d1b42afa0469c13f08990b7b81d5ef6adce87fb5627a4afe9e90f2ed62554324e080adde16db36812354a3af158449e035d5d144e4da13aefbc72051eccfbd325de995df04e1b208b1235caff8566e194bf505a063370ca3ff317a754e0d1fff8f5e24e08cc7b9837e259fa30d6061a79bfa1ff626160601ec626e968179cf277a144b40d97c2c1ca75cc65e9d2f684378b886ca085d01a8949ba8ff6c745ab90c28acb55ee521bee974c20179377519940ae8fbe2e1769e09c95df8c81a91998be201053376495ad286201b7c5ef5675c814787348a8515308726afbaecda9ed69754e6ddb7375326a7b3a9944265993e0fad34ec8cfa52fd8c298dcd8b1125d7f0742efc0fbb8ebfee5250c8c35e2f249ba7779cea5daf4dbb40dd2972e71cad9259fe06490c741e13c2ee83a7dd90811dfe58d44aa74fddb1a899fa47b68bb289cf28732055e34d25e7ef72bcf79a8faef08c64006d808d8a24896dd10af34ca9f16d11d5ec6c33cd04da68f5370e74ae0943f97992812ed240fb7c3e3e9bae8fad325aa44797a78da24253e7747a02b5a242ac02a7f07c1f5ff7e5cdf7204a7fc29100e482784e6a2408ce014e5e1a810d0455f28f0be585444b3365bb320413a1fd307e984f4a5f48723109d81bb74297382bee8968fbea01149f06b0af18e8603dee14cf4a99d42d60a3198aee0b828b03585a0cae5ad10e14e18e4c007d73929d7f41fc703bac4017530299be20860e89e08272b1fc91b2b15ee7c1a763685860ce97c4c4f7d601fa09be856e1e5d7d5bc28166dae686391df9cc0c4d1293485aeff56fb6a2e9d0f5c57ba055729179cf237553a06fa03076bfbd0f968ef030582e31983eb538851feeca22ffaea272d749d8be2fa734f9c81738cf09b1f3a88b28272bdb0029eb40b06013b71fda7954679bc6264639174e27db1281645a33a8966917fb7a48b025b7cbd83d2b9a04b41c7a423416782ebcf61f98fdb729d63039be13a1786ce6e23d0e2bae5ac70dd6a4b1c14c62086cb2de13a77c5f5e7ae70513ac7084e881b7a29f992e7f8734decc74db0e2b4c441719d0b9a175afa9ac263978c13e0e0c91090eba3afad9a2ead3cc511c070b99a5d2038aeca4b2b2b2168e96e3e9b8e0bab5f9aa551ae445f3af0b0ffe84b5b7222606b0854f977ddfd5677751d088eeef0e6007800d0e3145f2c9a51b857b85ec42978a509bc8fbeae3b7dd5a5215f3b8d126d22fec026e06c116018d6d1ff2e81da04f1ee85d0d7e0316c9b1941c8ef4da1fdcc655cbcde853633a2c2fb5c9a5c9726f0fb5d9c34cbc8dfbb1c140510b040c20a7ab024660a148cb959d947e6c9030ed6f61eed87bdf6322e7f9c0f6b2ecc81595d8b83aab6e196d749ee9c396e7fbb983aae7237e0ede76e0eb7dfed09b39fbf06b70f70f54b72e7c3f93d1d1f7b683b462ba0548246da0bdff80be8ced164a35bd0ddddd0bbbbbb1bb6b7135248c375ef26502c0cde37a90721f5d00b5659c2c2304d4ad41f7299f7a6eef326b67154ae5438291c3cdcb841eda0430e366ad8fa3466c888d13072bc8f1f40787aae0b0001f009226408111f7e1000100308a2881004288011031c39c0100848800216c080063880880740200245c0b7f9d47df13ddcd3ffb8355f43f334333f23f332311f03f3302eeff2f22f3a5e8b03a75c47d5de0004555b38b5e449e03fd8c4c77f304808c87f7088e73f38a5e73f58e5fe07895cffc12200fc078d02f01f3cf2f90f2205f90f2609f90fbe86fc079588fc07977cf8af817ef8af9b08e0bf0e02e2bf161ac07f3d14c47f3da5c87f5d4588ff9a8800ff755101fe6b2323fff59101fe6ba423ff75d201feebd710ffb51202feeba504fce7400af8cf9b2ce03f0f62c07f2ed480ff7cc801fff91422fef32a0ff8cf8920f09f1745e03f37ca29c29162e490b2f9af8717fffd38fdc755d4fcc74ea061d682cc7f0c8698ff980c30ffb11a5cfee337bcfc074770f9e19d8009833a9eff060e64c9e7d7c13babe7674196eaf9777807e7f9814056eaf95d41a00f0380ac9be727c011c8dae1f913d000c8cae1f9213001c8aaf1fcdf0520ab3eff12bcf3cfcf0464d1787e0ff0ce8ce76f02b2643c3f0c0164025b30381eb8a5b56c5a00e0d6a955f3fc05e016cdf32b805b33cf1f016ec93cff11dc8a79fe0c700be6f93fc02d97e78722e0d6cb737777f7b64999cf55294d66e43ec74fa052f17e0993e91281c7210e2e2aa65fc2e4e4a2d23d931e2e2a5147edb0e06a770514ba26c0d61530aab60455fe12a85a1be08d5f1b9b87f12f5e7c8e3f9d5ec7d7d0d03c8f9f99f91e5e46e6591f13f3390fd3e35d74fea52eb1f3da92e748e0b123cf9180ed8cbc6519aa5affcd223c020e017f8013e10ef00638037c01ae004f4023a087e803f49136401be90234015a882ed241f4001a881640fda1fab0444469c84b485210249fa3001801a0c84574abf44ce1190222f423c84765bff96013cfd9d6006ffcfd19b6e070fd5bd6684b03abfc75ea360656f9f7a8db1758e59f53b72cb0ca9f55b729b0cabf87ba5dc12a7f1e755302abfc77d4ed08acf2d751b720b0ca3f47dd78c02a7f1875bb01ab9ce01bff55dd6cc0297f55dd7200b71d70ca3f55b71e40943f8eba01a16e438028ff1b753342dd900051fea8ba5151372b20ca5f87ba35a16e4f80287f1b759342ddaa0051feb66e58a8db1620caffebe6054ef9d3a85b1820ca7f46ddb8a85b1920ca3f46ddd0c029ff9737b8a801860c316090d1c20c15686a4d3dfd78d1834dea8889a7c126604e67046ffc39c832e5ccad9314b2b01a4e1ab54569943fec7ca65c7f38d4dd5b159f2d0a87a251be05f96c4f1ae59b934679f63d9dd9ad09a73a21b8877509f8d97b9589d37df9ad3271badbcbca84c7c4898979e3c320f1907857f33cef3dcf83a95b149b091815e4375070c028ff982a57e54f6b0cae0da0ca5f8bc2107234b9d80d8a985529d3426d097a316a75bbd2a8a2ebdfdfd3305e7ccdccd3e678a761681a841b90df5818f5db806ebfff8bfa6d36b8d98ef7fe5b083627cd7af91d8c05ccda5ec03b1c0c660059f2dd32e15df835f6db9e5cff4d05b00567ec16036e69bf2db91e633fef616cbc52a66bbea94a69e2b9e677550afcacdb6c70fd3fec688b016f2a80aa97ba39d99ee094ff563716f0f682bac1a06e3380287f4d06d71f5617988f794d7b19996ac32af8311506aae067d5aba6da5005bf9bdc0cbfa83038055fd6198c82afc9c8c1fd7c07d7ffbb214dde7fa7c8395c7ea0cbbfc156f6fc322f64308bee6ccf6f7580015bf1f96bb8b8b8bc8b8b4bb7942627d77caf4a69d2c335db54b5a52e3867f20e7cad0bcd0d5a1c3620bfd99c5c0fda9ed858b0996073627bb2a9405be294bf0c81d7396172d285cea83beab2e8aed0698146e13f192cf4c871d31965b56302abfc65edae6014146af77546465de8c070fd63edb270bdbbc2f5d73a2cd73b2f5c7fe9fbc29609ef62339609ef9a64ec47a387fd4ef6f36e3a23dee9de9f7695af04819775462e5609258468d77c9f8b756faa4b20f160fd5e601c672e09e47ddad2d5de81ae673f36322a02b72eabe0fb6f56e07fac84ed09ce79a12d6d40bcb364738277e8fb6f27e00d04dceade7f2b016c99be470ff85f8e4f5b82ff558fda4fc6df54615805bfab1aabe0737586b7caf1e4140cc0472f8c452f3cfcec6802fec8f84307a7d3494a4ab36f66c9f573e2314b0c934830a72169485a16198c42946d7cf0e87e2b560c8dd259add648ee7cacb6130ffb1e9f156bf7e804c3b0ca01d82ec34a4746946d7c9d94837a466155785f0f971e5732393052fa3f374a6c08ac728f610fbbc865d9cbac878f1e99c99e1e3e20ec1ef002a795dd9eeb9c1e58cef4d9ac0ecf8648fce1b02a30efd12797308b3b94983f7ceeb00c724e2e67e5f634c5fc3309a167fed66b547fb3a2ed9e49fd83b9cb126cd8b0f1100bb0193aedee7cf8bb8effb1430154f1cb875877cdcf7109651bdf2c523d773e467ca78bf3dcf9708ec4498959399e7fe31766d1e73f316be6f963304bc73b7fc62d95ea4ddcc2c199e1966420aaa3ca992a8f241318159fab920a888a9fa3aaa6b8aaf8389e2abe9450b8aaf84edbeb12abeff1aaba84ea611ea72e81f33b5ed625fc79a452a954ea7bba22f1eecbab2a12eff6f03815897759ef158977733e088e97c27e4451a5b1cc28b0cec7edac92aa8da593aa24ad5ea552a9a22bbd523e5a38cf8d83a383a3f33e5a3b424e9ee7425a5552af5aa9785ec84efd30a21b5fe747fd783e763e403e48f580f03c92788100e964a2134c8b466ad691c3210bdb5896d4c7d57f271c55ca6259b0342ad6a45e65bf7971ece7e1fcca3a86a5b12ccde21bbb4c07de8721293d0c8921a5ec37b957591cfb9d224ddfd7d5d30ea7d758e18ca9ef9d14d9cdfce31ff18f56091525dd11d32b997f247ef747fc5d4c737bc62282abd18ce366c1d6642244b3993601f13b6b3313e0ef626da6e98f746fb236f261de66bee9d975c4e5633ec6dac88f799b696d848079d31f817953cc2b99476294983ec6da4c1be3a2047c430c4c7da91ea7b2974f7832c8eb777953fdced20a3b2805a7b2dfaa87450457abd89dd50aa7b287571a9541a346653f2d2c721d78993d021e7513fe03e70e28dbe898612f98f6d96b1ea77afee41c8b59f66e0f7a33f922efac280f1e8deacfe243e15d9baec2eb41f01ec05d0839a27bbe3176ee1e7966d4b188e07ef13276842cdcfb7137c628bcece147970d91eee7cf8efef659fdaec228100aedcacdec10d04e0bad70aadfae28859208ec5d54b3709c62ecc8ec450679f1ba4a69a3c7b1b3c0fe0f4208bb2184104208218410420821eca22122843d5db48aabd5161c5ae11d18432ca00a1e118df21fa2510e89aef440a873a0cba195667d738866e5b02b0a66d13c3f246256cd73ff805b3170f8211566cdec805b9ffa0f42910366c9dc805b3670fc077170f9210d98757a7e0805b650fcf009432166c13cc12d1c3cfc07577002667925e0d6ea0664c22c1e373f4960ab073f120e28c12d1f287e0b308bb67a76e09f00b3b60f800e0e6096e999df08b3b2e71f8259b32500a8f21cfee3295c7e209885bd0d7e1fb855e4e32a8c0461967c863b0072790acfaa592f9e9f47f768967d7e7ecf7366fce99fc6c7802d180527c68558d8802d23a0ca87b8c13b09e094c3272bd8824250e59fb2386c5c1e70dcb05ff3802d0805aa767807da80533d600b0ef9802db8a407b6609300f8dff0b8281f3bd8af75b01ea4024e0900b69014812d0e4023b095640adc01efc01070ca3f072c6cd8a31af6eb4b5b0a4ec1b715168151f06b854260f80346c1174bb8e23601850a2fac0283469d0283f8264685407c03ff050c18568924ee8b17f6fb01bafd30caa9866646060b2312300416fcfa8943137050f286245b3ee0060fb4a1035d706069036c60620d1a5003122d1948c3126850e20c492861c00c17288305c880449623c6f07151812d8c7851400c13088304c0500496087c01025e78401788487ae21f03f3e2b90841b1c19015a12b04280eb8820b341ad0842dcc600013b4206301465ac450c012b26093002bb0000301555ce1c51057904e075082156a8e5051051a034c418519234559c81420095388210012a4002384145128c24741301406c04f00829d2000c6e207bec2076e021166c2103612c24b08c256f8701501e02b006025b89c8acb53f414c12570c9f537751cdd6013e8440541b00974c2c30304c88f1f3e7cb45a3b3b3a3a3d7ae4e4b0583df4c083c78e1d3a74e4c8b15aa9543838a9140e1c3cf070e3c6cd0d0ab5c30e3ae890430e366cf880776ac41ab7ad5b2abc53bbde7e0805effc23f177d7027dc08e42712049087807f6805340fe5696ae10b6d0b882068d194d983143061364c88861142386cd126c6c60580103c68b2a5ebc385d399d6a9450534343050dcdcc14333332453232314988898141020c94e2be4087feecd09f1dfa333bf46787feecd09f1dfab3437f76e8cf0e2374873d7028acf04efbc323ece7e4aa2d70cf4f4d0f4d0fbfc9cdcba68ee3ace7f2bd65532697b9fb47cfd15cd45bc2fd8be7994ca6e7b87fe138137431994c2693c973814f376d66988cde84fc81181604bab9d8f39a402993c873e66742fe3dadb9bcb2ebc8fdc6737592b7bdb62ccd72f9ed6633803ffa3318402053887760be3f7b01efbc7c3694d5e0b697e9c0ffcb769033ffcb800024fe97d9e0c71226efca72709704f10bf36d304be66fef75c90e0f06c6f3bc9ff337294c7ab8a85411f02c61b2726dcfa4874bfbee7cbcf6cec7f33ccffbd9280f3e7730d0c5d4712f9c83737c2fe06718067bf836b8e3335df85e97307917c31d1fcd85cfb0870fe6ce26e60ff4698572b3982b948253d1638c3c1ac5df2cf99131ec21b4c2a918e13366b3fe9e9e598cf6eb87b165dc02a5b414c3b02ab1c6e2e7e3f237d13fb2271628db40828df5e0c6cded93f7626a59340a6e30301adef4c37e7971bbcae84934746bae69fc8daf6751a22fa5a6485c118dd282fe967d468da891b6b40165d906d4a82dda92b6852acdc0fb180b35f26ce0cbff7149f945a4eb1f3b1b8fbeb8e5b6b6a5953ebac47783117edb2170495b62a322458608808bcca12934a45945684b93685e994694051edce89b2af7024eb98b5da1507f92d657520654e06985eb38aeffcc625ee99cf8accdca2cc2e2fa0f812d6d8955feee46d7cebb3d6cfadbfbc3303d7dfa476cdad22bcbf61f7d6d4acddab6ed5be995e595e5a5b43553bb017d5388227d5a5afbb8947dd42284fba8f4860b2bc6fe948b3b89e821dfc0adc601cb2d498049b856eec7b7a374144e2551248a715b9ba073d1e3604cffd9b8998c29fb1a54c7a53b3c99e9d7f9346fbf80ffe2c50b48c3dc0c2633bb9a130d5f0851fe3072512333b305a7b8d02a1d036c2a4a5c888a3c2554e02be9dee595c4efdee58d74f6ddfbbc860d5d925031d27db4494e6ad00209555c9d958142052e765191c190dd24e37b5a880c1bb7d0f1c2c640ae66d7c45d534f2108a1cc9ffea5f3399d4c27cce497c2d0dca02dc5c0fb6251dc6267060d5429a3af251c7d19798e3c6a2d9a25f3fef1c53b33ef1fb7e01d2cc6fc176f4354ccb7cc472d624cfda8114d0c4d8c913135267271fd63e6fbddb09addd9c574cc24b2e3d2efaabdcccfc8d0a7361d8395a87c36ae8c2310d93c773e26bac393d1649c6454beb4860702531444d7466f4bbc9f17ce789bb6696b23848b0bfd2412e6a935e2f22fff629374eff2f23faeed4d373358df3802d11219800cb3ac3af682ae7e37206d097b6d48735f8e1ac193a31b0ee882f4c7f062943fbd42c5c9bdb97c058a2e5c1ab9ad9a3ed6205898eabc9ce95da2ad4ccc6bfa3699ecb4128be69530f0e2bb3cccbffcf6dcd39787f98f2ec1fccbf7f4248a4593c825d623dec35825548cc8877925dd7bf608ccbf5825f2612c55f21b970a87ba6e17561dd7543d0a57bec0db9e73a7ef0fc3f4dbff11f4e7a47fd42c6a892625e21b6a8445a3fc07172c9ad5acfe1b10b5fd0e0f7e4fc37c4f6f59966599a6691c07636370f63433eee338eeb9a75a6433fb39676632797d03dff4966b5446939ac5d9afdff4fe30b6a7a64a932852667aeee98dce87e362112a1a354ab34a4f2114bcd837f02907c42dd1d228a74bf4b58a82b906fc829727bf33511a4ac372d96dd9d12ca718cf01714d384f46cb9646d1ae388da31bc2b72d556a948d4b95a89666d18fdf7fde8932112c66c9b0661e5e38e7122f718a7eaaf3a148cdda6c90222c8dd282075b66f654db78836e32696d7003b3b4f7d7e22002ce19e2370e5b454095b6143333b939e734bd8ad368111de5668534ab7e672a56b34b3b6e06abdcedb428ae6b4b300a4eb991d0d09459650978773a88dfb6c2fd3425cab510bc2f1609a1b934d31024ca6dab5fadb01c11f06340b84a7e6727047445206a5fe035e46877e7439f3a3b74d3464d1be7e2e212c3c1cafd46bd4ab3740ffeb1327917770f305d90793925349e5d4a5cfee3178d9a84ca91f8336a0c37a3ba1489dfe4ba8bb5692b0474bd5418afb24bbec0dbac9047d42ced595b1a02b711c0d0300d9799b44ec688116386cac4cc18dc0e6ffb1846d8d8546ad4a8a346c178f1fe5d0e602bc6771f4491a07066e0b6c4cc2264b46c46886bb01cbef1779a973befca733807037ce3af75f34d2f3899a7303a4d06cb68be330fa3f3c99eca60195046e58b04f21aae3fb5e17678356fd3f9606ff3361d5f1915cae06a5e46e7833d9dc133da4d1cbc27233c46cd4197c31c0daebf90e714397dc91478f4c8c652239a3fc18c59d20281d4d0840d32db673354a8082121ac861b42041bc1a0f11bc9c5160db86df0a715f8d072d47258a577767f6d1e9d8fc972a61d278099c6cdcc78a98f2d52206d7aba7545de16453ccae2462d6251d2f58fd5086ec13b7db7708167b24934cab7fff8e51bacbe753e5b14700a09cda269b403d71c4f7184a30baba6434764c70c81b7fdccd73cabf3a9d981abe961124da2198f0648dc9a270b48b41976dc7bb74406e06d8c5aa158d0236a44a9113da24694d249976466b82c3eee0ac784ebcffd805b457041c0d142f9b81f7d11712ba0dc92eb42340df6eba2b8d0421f5cf83c830b1f42e156119004175a98820b2dbc01a4c185160e17765ad80c97e3300385c4c0850b93700bc702fc61c3227e71e703650a3c4a8962fea34445388603aafc7de2e0cb3233da735c96052c02cec86838fcb92984121242c5f050891bfd7efe1ab4275676cd8b44124668fc4ac2086d481158a5c88fb5c9bb2a139309ef6e6fb2147220984834ca4f37873b26c14b42c5487cf9493a693d3771b4d2add22d8d6ad2d5255cc7561461b9927bc205760a35aa071e7d6b82b1722eee7c7c5c08b5251db166ae207da15f239a95c40b8ae0fa33a781d9709dd170fd8d261145b29b6d7671505bd2b62022aec74595f88ae04500953e1b57c7e5b7bc13fb0200763e5664d779636b5b36206dc9a42d31515110362805efc0cbc9c8f9959183b58b88b667c2e5a50d87a300c836eeee2d878e4d4b0e8e0660c72a1e61dc13ba0d8992b1d8a21cc258dc4897e4135edb248ce0c1992abd5d798a23a4e152d8f56f5bd357a34cffd1176d42c609e10069a807ce54b9db15d6be5bf5db9d0ff79b57fae43a0ca6affbc5a28ec229011419c2a6ffd8681e65464242d4148087adb61489faf01543b8a729120dfecc2c68b117a66431a5bea285d745442f3629599752a0f070605d0632c85970fd3d887766e4c897df2cc9781caafffc89ff7c05fff9132719948e3b55f932f5f4d485a33bbc08b4a4512ef3326af9a06f71252389054eaa6b6c23faa912fd5fb498fdbe268a2efcac0b22eb0c64f593b11fc4accf54ecd21d9e0ffac2b9cc54d93335ded8054ef9d38c93b57b72fdb3268d8a55fce6156b3caf4a104e4a1ec9231979248da491c4424a4c4a9913ce8d1bdfd3120b288f2084379e1ba9513d6eaf3ed455f21be7c83b36be5ff28ecdf763b085848fdbcfc36395871a8fbc8e59c4a4999a1af6fbcc7ea8cc864d6d35f41a60dbda5b92600dfba1ee17939ec67ea7191b39e5af010f7bc928bcd3f255a5120fbcd33fac48fac29845b32ee0e3461ede3f2235abf3e1215e2d6a3e5c5460e3a46ec08fad042d4eaeb086311c59e10c9f64021438c1e2042510824b666994471a494919c05e49987d25f98a474a46467c8616403184144cc1520619b011145100dac20328008dc0e5581ae533b52f5fea71332a94519923a3e01241e25522c9c59e48bc98957271c4574c4a62820636bc4029065ba650c3cf0a54700508c400743454c5480ad490650636e0c20dda0024055648c3941764210d53b83c8b4655f11c19938ce20c69e439ecba9fe4c27537f2e07f355d10eb35357046ed33341aa0ca7f555b0ba7fc73d45603a77a0d2790e24c861a0ed75b6946859709efc39a604d30270da4b5f0e745a40877e07dad7474fd5ba9595a9af5c9a025cdfaa491dc726595eb4a9f7c01f9cb57346ad6e97f82ca90821ee8e04a10caf00597bf14f21c8e0c476083195ed0459434b8fce590e7fcc8c00b5c4ce1448a14707082cb2530831b506109413c8842125cfeac1a8351fd3dd467543f8f7a6254ff8e2ac3a87e1dd563547f8ccaf164547f4c8d8c6a543f75e1666011174208a15522c9854a7db570335ae9f3fe72510d84aed254722f5b9a40f06646f3c843f22378b946b55dc2fbb0d79c319e93ebf0617c57d8e3dc05e987616361b5f6bb0b02e3ed4bd16cd4f82dee41ddb7edf7dd7e86f6b3c0ed2417c9ed2f891cff4da0e6490456ff398046680157f5df10b72f0605aa0c70bbc87f466edb0f5a2456178bf7c35e89ecbf24b78f981f1f93fdd142d7a2c48d0e78313e2a012ff4a5866d95c8fe9bf0b1efe9ac1bc62b8364ea6723c0e00051feab8ab18151feaa8a29552c4b908c27338468bc3f06e55fc6a782667ccd131a4f2374fd7fc642e9aec6d3c8f5c7813b53a322b9335f1277e6bb1b00bcd07e49eecc53ec356367fececcccd899cfc0cf9db11980f6b1aff95869ec17958850e67b3c569aa7909ba9703e8e2ae5c5cb542566acdd3603353c58265edc1b2fad55e28695e2440efeaee45a1a95831da209d46fbf7d8f7ff13afcc74637760428eb47d67378768d60073b0247dafe6324cf79615b49079b03c46cd8d064500c3a2551a3c647a046798d8f4d1ae57586c0abf13635ba460dcdd698aff5cb4870fdbf2e2169d48fbb33ea87b9e1facba85f1602cb8d8a8989791835e61dc9834d925e0809bd5e7c92ed47c00177e28511494600a7f88dbf034527bd74fd8b4bae073d1982e2db6bbcb4fda6757b15cf692cfac6df9be86b220fcbf52a32081e859d86566294bfbb6466f63650524a09048f955082a1fb612510c25e3ff04a0024ab781ff66a568213afeb8f65716ce93a9213469d4fe1b27c089b6a74e3b8937e652abc34d6973b2b06e4478df2e71d38053ec2f5f7266294ff46d4a88e91e3642aec02a7bcc0a92f5488c5c2244ef9c0fbfce8c8b39079672aa88072fdc8736450129ecc67ffc920dea9797fd805ce69a51cb8053cc3a549f22870cafd48c9735c0a5b5c7f1afb3909bc70fd67ece73916aeffec21afe1c4b04c86e3eecbe50b4967e0ce40207be0a1200631624b1142efc59cda87bdfcc8a167eab0e7f8d2df550817574ce031fc9e31caa1a486585c380f086ed4876db9fe127bcd39e78ccc8ccccc30cef33a1f291af68257302dd7a53479d7652a8c8e2ef66a567c8cea001b9253ae3fed2c7de3d8ab518ebd5210457b4f0abba79ce2f23a22d1422b57888818f66408bb39024fe67e4d443b217de5d4449d902e6a94ff4c2e828262603f11c24550b3e00be1028a102e82b2a046f1edacbb31a5ebd8cb6f5c081737368635c43a215c602fcf71f79886020a8af38f4d94fd9c9e773afd674d4474bd720e9c826f1c4e011ec5202f4681304e196a1412aee3c38a0477bba15cef278d4a6a9463e9de8a1ae58fbd2084101a15dd1d97a9303ac1edce87b60c6a0821849dd90fc2f467a3b581a0a930155364b9b20b0265503f16e3b2125090451af18dff84d268ca21cc062d013fbab4cfbb1ff662b8156d57aeabe07af68413dec45e8e612f6c8b7986eb5817d733105ccf9cb8cca97ed82fa5d2e51a3f3a34217f68ff60594b0125caf8d1faf37f3ff77bbbc41a4a8c99995949322a6a1b6054f4f890087b8ab1b008fbfdb1e84848c282850a241cad9060658a778a81a21e7522fe98ac4da64b7eac4b98f470c96f325d317be69d4c4a16bfdd6a9bd5b42376dcac1e815926fcf27b97bb1f580c97ad141bec937091ab03f13b20232b7adb23eeccceec91d9866d11f9982500bba43dc2e3722b9d4085144dee37790945c8e2f67b7d4507494850b6a1745997a9b0427429cb1c78544801748a51c46bfc5989f047fb6154839914ff79b97e1cb8f1e56b76ce2390f48d1f73b17a44b44cf8953f2f773fec70a595d281c88ade1e8738748be512f0724f4bc948fa4af1e7ee088fcb312ea810c2160e32fc2164e566a4fe2116001f42e88221f845348b8b8eac5cf871d2d285901e1941085f36c3289e74e5f26d3b6d3b13302aa85cf1c113b4d4c4586902d3dddddddddddd0dbbbbbbbbbb82a10a2758dc7ab90a27537678f0f96164f3bf47e180564aecce2736acdfa84671d70633cb7de521a06cc3166994102eb614f1d80a2b4757fbccb5cc35cda1159494328734b3610e1859bafd459a052f4dbbf82ee192a440c1ed2b1cb11556926e3f11be69d9908edf1f8066e1dcd4a5737adea95193b39753a3e09759194ec1ad7a8d3dd79d8f9499bd5b237dd39f178b7c7c34943961c53b7d57ab1cbc03dff48cba1c7d7939862ab97d842aa9fd842a6796d061f4ef0eb68688b0b5006cc216110d5b45c8fffa0ed12fe5022c66bfbe4448688f6094945b0e57a226205f7e11b0250355f2e51f2119d5f6bbb9f2ffca1d34685ca963c68c2b73c89071e52a468c2b55363657e2c0807165eac58b2b719c4e57f2505373e50d1a9a2b6f6666ae44c9c85cb9434ccc953ac0c05c99c3cbcb95363cefca1a2e2e575a93e9cada75573ec75d49e3ca677ae58c2bfb3d29e3caf7a4276daeecf7248c2be58b2bfb3d59233df934d29b69191f8ad94c0baffc1e0174cecb518ca02babc8c8fb9d587e7f258e2b1fd60c5b02952c97bb2f89db5d151886b9768361ee284ec5d0c29b5896d90fb354b04c9b1c7f9bdf99c5de060687c0eeae44c7a35e02651c4f62f0c4af69b6a75ba39a8c3b3c9849d9bea7e79c94c6a0d49e382e08f947c4c741398ea39ab659cf47d3565f45c9674dd37af4d0c01b326d1196b131cb44143144a34e319e0823384fc6c8021ad551466c48a3fa6391212d8096444008e1b5a7dbdd8d41e9c6dddd08773f09a0878f86d16bd6cc62f4db6814efd0c734c8a9adefd6c4ed77fadc567641ecb8da737586c0d39eda55bfa669af754434cb6d5a37b72e881d37fb55b38ec8be6a7695c52ccb5e8647a3acf03099c4edf77e1b37df288fa1d43fed120bca36be0e8859de12cb286cef6e77efa2996527efdd3b79f56f5bf86281278461c67d97a5b159a16761964629cded3dcf7e6da11274cd874acd62af9e1ae5d9f4d33c5fede31bd1bc8fd626fbe8fd665d5cb48faf647379761d89da476bd3343ff37ce7cce8cf874bbcd305ef9c7e3e6c0364c1a488e5cea79985592a5721196019a0193835e76fc1294e4deffdfb89f9703e9cad833bbb0677f60beeecd9b3e78573ce9a8ff953ac36fd32ffe3a2b5e6e31ba989360995b646625ec626317d8c4d22bfc6feb86052b3da70e74f08873bff83584cfff2624fb4336b23444c0cfd9a57123fc61ea95142bfe6d9e565005e2ef6f5ae9cf7f0353db7dfc9abde0472518ce3aa8e8b55bfde5a706afe631376c1a9f93095a6c2a5273cd4d3c0fbe69d0f690661168f7cd3904e26f0359f52ac13f273679e4aae6bc52e9c4f6797792e35abf31d08de0e3ce72e931ff3474c2ff318cc735753f39e3502f3494c0ff33430d5c67b76b9541b0f2e716abed0c820cf7fa6369446cd97a9dd64bef749e4bb78a677b1f0e537f33d0aa7e6679c96464d6e89536ad47c4ee9ce97266bd35925e065c2bb990d676d84d83efe91eda3f64ae46f7f447b6a95c4d74eeefda33c67b3de84af464dbe0f67ff9ccf36a63da203ead66838b6abf83cbd931bd148348b680a22678757c09e6a99a6cd14244101489b99b347777f42c9dddddd6116d71f8b5c857011454896258d8a2d4f2efd346d7ee8efe7b6e571e10d3c2eba5ca31d8b42f634fb8dc9cd7ee21be9dee5dd26a1eff249e277ffe3ca323834939b3df42c7b6a2384e9e31b8979fa3d8dc1c0f82be91ec6dab88ef853abc425ac5ba8048cb775514e3235331000400000c314000028100a0704c3f188404e24557d14000d87b05070529ea75994c31042c618430080000000cc0090a6810039d6e391359e1cd854951550f6b842001e6ad2a544672f2823e3ffd9761cf9b81ceecd39ecf27e9c24c5662eecd26460dba102658419cecce12f6f22391e552d94d47e20392e6236f2dbc8ad787c06f5f01529c7dfb57707f8003dcb4cd2f1d36a8e9fe00d4cd07d782faa78fc07540d9a07af9561a3283f89ec94ad4986cee665152033243400a65e340634b6f2f899a3af0ed3d04e96f9c2a1de14e0e959b20d9f59b34cd24eb165fc5039bd06b38d425f5d4f1b05100754dce29b3eb4a622adca6a8a91854ae10c8db697d36857b25ff616d0d0463ddf619d5ca404c29bb976546607ee9bab86f36a7fe5f871043f6867658d9115a5a2d2b58cf4fc27910dae8b5821838b0210e367af00d19286ac36e28ddf4178cd4586b878372c10dbc8894c3d6714ca82249e474ed4c3963564f0946986fc66eb672aaa3ce90d777d1853a2ff8110c17b837da122298bd3fca9f95c4fc5bca9f29f5cf35f69a576d676ad8d96da47ebac18f9a8a9b7cd9277b33684399c1c15ff354fc55b9cd8ee5c0ad632e36ea34bd5d57813b9aca6c016dd3faf8ef4b703549722d5a037032d57190362a165c92052172977c26f7ab3ba4bf1d137c130907ec70978f962dd5f684db2decf652722a35c4014c230f6614605fdb7e73487122387f0350489ceb02c8eb7fb742c2dc12f4bd6662b78bf41f3c03019319834ae4f8ed16572cd303419857b91596587f7ea5e1b7eaaf74e0ce1c4e5b28469a8a463cb3ac1420656a62f09cfdce65c1f9dd6c0d5f3478bd0fefa1cbe4dfd2c54901a0a84ed2c667f2eb46cf4a62b45ddd6bda88ba6ca4ac5cffadf00a840262d24c8f336a94a4a35733785c394f6c83cd50db59b9632953b17b3d402067963eb6b7d762f67b390e17f813a91be08d3e190fbe4af650247a69df793f46f001a64a1a2fd33f7c4a9aea343151b6e22c62827184e0e3835bac579c5fd0d1a0456910671fba2a7196e5fd1232d82a5a768fc53199b87c57351ae3fb796f87d6b470217f34b1a2b028dd70ca2564971af7cf2f987b4770677021f5d3dafbeb0fd43b2ba2cd228fe207da3b2b65dbdbf81bd727277acc9cf9593bbc945e6a3a70af888cfeffbbe7211a1ebc86cc0fa17e8c188f080002a64d5adaa706a53e982a54c0ee4e92924eb2b13a832f3f1310dd632500396815b7c193404fdb279d99ce90921c1f5a2cca98c17eaaa2f165a359422bfeaa41d088c875cc109fc3ae9f20cdfaa54e79a2055a20de926972b13853a89cede2fb017a728a52839f0fd7ed030914c03c04468674e45f45e29f9d6f73f86854b0d4005cc91efb68170c351a22e41fd10eca581069491136241064e81d4b51a9dde258727e7c2bf1b87477717f08a4227c64aa4c6c148aa9bb586b01891bb93d0d8bc2ed91f7f5134fe5f4bef3743cbe9734b723207cabda42b920848ccd812de4f798c32c07c09f276445df283b588907dc342ae56cbf54d687955ea68a194da91028614f4745f08e4334e0408c12d96daf555caeca0b314f678f21693091c972fa4348361529ce73f6288611d9edb4239212b9b2a2534fa9cfb29374c591c51aee6439d3d95c9d3329bda2a5e882211cae989452164181c28ee69aa790c7b383c715767a45b877ceed26accf2a9cd69fed49e2c372fc1f58b8da4fd8451e97cd98e3909359e78a8ebaf8cf9cb1bb78527c48853639e08df31d5206ed961ff2a08619b1a3b663ee17a8159fb83ae6d6fe5af20f5a475d90b8dda06574b1748a8c526e73206a8cfaca213baa1304e91a9bfd221f6a9e8494dfc9d3f1cc3916b1db225f22fa915c124672227bed7b95db358b14a645092f8397a79ae13ae421e8a2d1433b16dc4b0a3b99b9a1ae42b21f86e064d9a7ea571ea838345c65b839c1147a56fc87dc18d11d28eb0255739e1c6a310850f46b118d4bb51126477502167f7ec9d5723887dbdd198e0d91756750a48ad858a4589a84299f61711ba04408f11c95378f9c9d388efe852118aba1b88e087c5c176911f01b1f1bbcc63ee4d7c0a09f7cb8e0ccb5fd92e450981af43c2e99b5f018b0d2e17db4e9a1951001315757364b2bbacf3e457a5e83a34f4da1762f05200958289734765729e9141ab470387fd924db3f1c726c18eb1ec8e4b7a7c9773388c66e92e9da2189bace49e4e560d83b2091dc46abbaa3c56af72cf0d05ff5d209803d609afe2b6d6093f7924582e18f3ab333d52675b56de93eb0356d84dc8794f33ae5e747756d4ba23b82ccc50d6deec00893dc099da8690ea5de2311de74a09ec5374c83833721bbc925cdcbc7c693658bc0caa76542742ee46ba498804618e3d059dc1d8286756655379112e7c7bd49172ccfa79de0c5ad53e2e7500cb864aabd4c05a2aeafafb811da20486813b357247743643e6045fd5233a294e933b672623391d42af199f19e408d3978db0e32cd68e4a6f38bf7e145a1f4a3beabc5b03c13b58187a938fed20a18f627466ab931e65f841e83236024f5d109f5874881334874bbd1bdbb9bfcefbd2a2937ab02d4be2961a677ee06bcded5a442e3afd8746de47247fd44a6f5a7349bce8fcdda6c4bc3b33a8951a4cc31d4635111b61c87a3c9109cc6c537cf9bea11dbab3f81d7060af2f61c52cb85c3448d3d9be0b4fbffa7a5a0f52956f2565990be2c2e322f08970eba9a80e0fca461fd107b0588c01ddab040e91270668b58bffa453c638658b04edd8950a7e31d62b3e7a302fb56ce38b0c786448bd36a6ff526c9d342e86dccdce68441df45bc5d05861ca7639a37135b416f80729630b084ac37c295d9ab31c4d7ffba5ca33fc63062ec35ea9bd09ef77df1fbeedf35c1d4580dce9ebcce9514cb3bd6f842c769b16ab5cfef5f2cc379812d8ef2d5f3f571b06d7b64d26a5876b5c7ae39ee7ebfa875d5234a465a357414da47e07ff4761a04ce4d0e242b48b7070c5842d2c913210e15050a6c636d708c3ebcc000cb650bbc66d9638827abd9f25601d0294e2c5da29e424b4675fb846179c7d07a3d48e14926a172fdd8a4c092b9b449e9b74ae6203e8bb5dbef7ba17ea69478f00196d9671e319dab9ea8295719246c68da01222b2f4c43b6e906972820aaa384432b215d36a6b769100c0da142dc209012d72e3372d79ec883dd6ead23a593a7399e3247829fd772d2af342620b0545bb2ab1dd7fd4a926f2845b54b091c35d4a1d6990fac84d3fb9884c783a24527889251ccdf2e62331616d5ba8113a2b74d9d60a8ce0c46dc0e9e45402226da611c9d5bcec403b30dff76165121ea60bfde3d62c518a1bca67fe1c78251ddd08e5807756bc2c70f5a8fce46605661b217291df2ab7637230da5ce88c3ef00b31340338271f478c3b9a040758c2c556b34627e4a4deb53b2e3df8387a426bcb790c6196f71d41a9350613e6e872abc706d7431502f81f94da65b5094cffa8c0b75e4daf5a396eab8efd136aa2d9a956d18573de46910997295e854a68fd230bd6d4cd6921f5b6aeba7e0435ca8f6485c9d16c015a9861f71635329f990b96b7ea631a81216895d06f736d5fb898f2230829ba5bee14108320b6369c25a967a003063e80411453bf02507fed88fffc01e666efc8fbad07f86cb2b426ae7edc114c29e354e6d099cf01dbec5f0b94c98f7d8ad4187dbb8995f052f29f8bedd7d4920d6110bf1c483f573f683e98679ffb0368e44689eaf5b3b69e43864661d66c1a791a084e03ded7818465afd1719992301ff61648dda5db15ea3f2a5b018520bf375c71c9a9e00784da7c74e66a4df472511960522a9e4f1c74d02b44f2d61804a5abedb85cf69313126cc308bfbb160a10e61a0e1bdcd5da5c97cf8b3094bfe18cb5a722238f367cf0e8ce5702c866bedbe36cec35e24a5d87a56239c5a723b7c006b1386c1f361db75957a5dbda5d155c59fbf40a023887562dedafd03409e9a6bd36e4d371dcc9e0ad367296abcefce79b19c706e9679bf1e96884ca44217840d164a1405e3790f394b8d0a1bac1e7da613368b79d286721cab2c99458f362bbe27b131db7dc9220a97a959336bbb444593825bbcb6adcdc82ad28027210deee6673984bccdfe3fb0a7ce63c490f76e775bc7eb23ef2ec255acae5341badd4a61eec7a997d3a130420439e7651d8271cf5158a4d4cde79e391546aa36e8770191c1a85aee5cc31de00c1e29f591750543ee9ce64b49b63b9aa4c8323f1cf52dcd67e9d9419e0a601b99f17ac4c712870161536def9eddb5b39c9cf959014afe5dcc53d8e6674fca7dc74e5eef651f6ec8bb9b2e286047950e7eab2fdb6a524ca688c523a660c16b7a5e7e72271e58d580c7760051174a02e9d2197129145dbf13b81c4e6e04ec751f755224de9323fa7869f8c8ba90db76ca6a64a816c1252366aeb8edbf504a97949e4d5bb02edb505fd22ce1e88dc32241811c18b52c81abcc63fbe97b9ea66afecfd13ff58f2db471a2c9cef8fd274b018f158d07a48710d69f01a354b85b5b8fcf322fadf1390e969245df3323487039801e4bdfbbb791e2c622c22374a02120f85d658d8950c83a4094b2347f7dda781ec807b8174e8daef0065b6e7d50856199cf3f2ce4b4b458a7e076be902a5bf491b3468800d3780d38ada6a2f861a7d89c9ec323f9c5b1b3e735fefd99e20a51f56890084dd833a28a09cc638362f43f746aa3bf9a996fb65a04913afd95c8aa5e38152e181ce3e8e0900728264b7b0563c2c178859763f35eaef88f790576bf5ecaa5739b9551b7b49d5465a11e511746c6289a13f7a6ba90d6c8fb184e59c840ea0c131120d27b5a12cec4e1e888c57282cf204fa5cb640c91c218f9585456a57aacf65d32efb6d4f02f95f5f2a9c23890074f62d557bbe373cf0dab419bc7b03585a9c44cbb64d49ce9ae55c4b11ee59b1c7039db5974a1b04bfcb4e51b2f683fe126b7f6abd0358c2ebee2f874050b11d8c0c0849dc7b0ef78796354db2f9998c9c21bb5856dea61a6da7b44525f19fa7f888fc26ec101b30af545a09d6b28115515bda38b29747620df4c889903d58c841d5b2b37d28df4472dac7a07393b540838b7edb04ebe72941d8cf35354ae6199c334912b97d88be941f82385a2310a4ceb362fe7c6ee739af48a98d1d5217dfe9664860ead25a0dc70af14e3a279627923b0871a8e8a3bf7280ce567056280f0314ff91a115ad60cb7459b555de9e834cd7b36b73eff5eac65d84f5d7ec4509ca43018a860abcde1897fdb33b8e07ff77d44f38f07df715bf68149950aa6f53f67cb589136d33e7f2958cdbcceb92efd8e9066afee5d5e8ac9b763fab954b0a5e52e960b21f0882d28c5b1fbafafba79b234471617c9e308e13efcd940565cc37a53cb8f55a5461070042342982d723725a4aeec2d40acdb057b463986540668d97800cb7f40555765f966fe682691b21bdcdf26dae5fa4954935735bfead817bd8bb4595d25b529638c49d57c7cc427d8793d678b35ddc115cdb2dcb602b7123622817871d42d57c8afdc19296d4da9e9eb90cccb278b1be98647a885073b1015958a9990a8805880bb93429d291c4a1aeed119b99f7ca894f496fef42ec366dea48d01da901f44233242dbf8e4bb5c07386024d6c363598f437282859742a7f828b8a3f0f733675e46b69d3a88a2841a839cd534e850e1f5c4ee3e81134577dcb89327d26ea6dc7dd7136f1a803d2f62d80dac077bdccf2f80d10ae66262cab2e9da8bb5ad38817343b9cfda790a4d5ce012a2eac515d9124b4f3446995c9f05739196b505e6b70128cf2782a932b54bedb29027b2d632a45d5bf5d90e67ce8817133c8377358d20c0c11bcd185d40719923dae547d55d191a56ee5601785f42564932c23e84c5ce0a2641892d7b36eeee0846a90392b9c54dcd57e897f05f0b50a12cbf20a75d4c448a05e69091db93370ee2b4117ddc7944f9629d27c920b3759008510498615b23b7c869b405e45d62e4e86828a622fed0bb22211dfbd22512dad346fb92bf4906cbe3192f7245bff00f50da73ea02611e66537bc9909ba2eace8908ecde0c1cf304a2c4923d221366fb35ee921133ccc5131bd34d3854c6262157272c595573e60bd370fabd1caca4e88c044c0b4f6885cfe77ecdbddaed86e35848e46b74288a9030735544f02bc6135433b36f022068268b450aa0f1e93bd5b006e19cdfd6bd129cb02892dd1b667d523d1827526982d6160a707b1190db111ee9d76cf0a930b20b83f66165464134127736b3b96054118c73104ae9b2bd874b9be0690871311e5a2b8c565e65e141837e5f00a33032f84157545dfc125b37d3617a56d07f8e62ef268b346b52b4a4b7db03830a5d320d08e160fd2f4e77b615fb65234847f1a332f7855f81f8e71a1c2e311e47e5860aaf5b4719928bc82a5e877cb18ff73d4467a49d7684a852091f1d7eda6cf50cd7d4f2b233a8f8de5570ae1401345184fb1e0916b8bebbd18d2bf49d3627b4a7924829803f04389d470f0725b3116c2ce483270f26f56ddb2fbe85eb37ca0471db910e3ef34441f9c2180160d519119e217cfd0ac141dda7ad83a71b4471ee0c9bf8fe5195f64e457514b98db7b070eab3216282c31af4d5df5adf2cd70bf19d84d1cfce99fc8162df256c59a15035d7d4883eb0def13ffae5d1d7e2589efab9bfe3592c656a9a8669ac1b3c87fa749661a8a24df1fb9a2e1f78376f938b6b36ef674bfe84befb79fa06ebf35ef5d2270c069d6468dbada2a87df47e95d149e5ebc32aa907901b7f9f227aeb9eb418cb3de9ffde7bd173acf8b47b6ce322fe49b53fec898793d903fcb7ba27bb6f720fb3cf14bcef9e6875c33cb9b6cb3af1799677b3ffacf7b1f369f132f5cf63990085e9bd3435ddf83043faf3c009793d286308b00ecad951006435653f809e08a0024a989a002988289ed50be0a742bd4839526b86513c4eeee532a1c322989859635dc05a7e6e38000849a41aece1263d0f1cf8c4525726739db8edbceb8b471d6206be91993b5ba5b33236a796473f503a70c916e749e03637255ce05c59eb347e79e49fd85d05febfcdd6530dbf29ef117d96245c94c8e6b8f2db3c179b706b0502c7756012086bd161df0094665183b8ad2740c7e4671a6710505e01e5e46ff3d64933b7647fd9c5b48b01f5d9321b29440a5dacc3da192e90a803ab93db1f905736b8a2dd7aa44c1904afb92abdb5301f4fc0f823779b2a4452160fb08f97cf409bdeeaeaf736095f4b27706e742996a8a518d666080ff888567e4d6c1dc3152e56a3da8297082291829a46feac396bca37a0e578738d5a2d2d1541894b554f2264fc863c1ba500819bb8c149a0916c72c3f9d6edee01897a7d00e94a8002f7f2d98072b881610b528b380be4e9164464f83ad383858ccb7a0eaf9cdc4070b446dcad229ce5b4041c29b24101290390ee8a0e2d3f371794ceed58751f2a081ae3c50a1f454fa36e0ae4ea6762ad4ed384cf887d93e74108ea6a4f83a5ee68c45c810985f6780ff9fa293fc4761194a82755024cb1f47a1f684ccfb490ff1192ecff71f0a0217681fb842ad72ce015376d01048b5a94fecfaacd18f53e6374b0132eaecf2f560a2264aa8db6da3cfad1c3ec4ea535502ffddf15bcebb5e3e0144a2f91e5b1dcbee80ba4182158087e02b27b0fd5401cc94b3f6e6f4167211d396ed54925242d411ac99cff02c079cac1046b34f71955f8e022330dfe69b4d524a838b2225a9364475cca5dc8d446c3122174f95aa4e578f04b34a7948aa050286811b580fd035120321c3aba897086702bd87a0f6abe3848f36d284d26725d7ec280c8e9f8942611f9b9e2a5f05ae2acb723151044b1e3b8d30c71a5b578d2efc88806c03459ff0be4a945c4268701300493374c7765fc06a2993d05400c68a41c53758faabb90a9d3a228fe319b28650955f27556a529500b8aca39c019730c49b109ee4162d66fd065112ab8dcc45014f89682f943faf1cbcb01cd940999d1db63bd36a9aea90209622adab08db608aa2b4b10e6846e810295cda67d6298ad080ddda60ee63b4260b81aaee4106ad4aa64a26837bc4e1b0320c807e1cc87d5acba740b998e92da838e9e055575c25b2afeec4fb99fdb48b3b088a6277368736624a1b849cc29905026384d1e12a045884013c7c3308e5469502a0ae0327654172d233feb5526e48989c98fb0342bf219ba24a017ce50d3e32ea94ba85cf11fb8e7c79b60d51a6bddbeb138ae95684654cd5f0bd5db0867924ce549f9c7006bef5b73dd7e626438a9872a57003e650e30a5cc64ad16fd0b2e7699250650ad252974ca62c4463eca18c1f377afe548ba3d8f2f3662f27d151d4695410c5f41c81d88417b7bbaf55b99493b07d0eb93e8afd4c5e817aee5c2d5ae61db18017415c1ef010689f7e7bbc06b4416c101237272378dc807353f5b67673606bde219a5d3e1f00703bf03d571392f71cdea53b47abfedc15826f271d92be901c444f621057528f9146b5cbd303ee717668258861e61b264387970224ebdea8e464fec7da70a5f25811c8187ad7f205ff5b59c29ebb0b96383f13afaa77d8158483089e12aad550c0c5214552b3b301c9c2fdd52211e42c05e80575a1394e71313567181a9f888e3ddd47984e813908d0e2d535a3441f4eed6307ce37ea5b82650d6c4c9766fdba6eb4f849f374a10cbdff3ba351db580b33b3ebd1cdc9f57f3e52071534e228a5ea54da6af6cad3e414fe060d0b6e03e2e48a7b60eb4119bd000702b2b61e1d1824f1fb6dede8eaa21759a55e366229a9b122fb7e9b26a1ba77b38d5988e1fe4721743160de971478c04c107ebc6b0d4e7ab366c459b60fec9fe25b292bb214a9171499688d4f9a6490b17aa9e638c5a175a2f8f76acc6c1e45d10e5505c21c594e70fb1c174c2ad76c752829528fbcbb09350be720edac779584f2e844a8245e0a1e0b46a9c6f970fd2161fca9450575df9a4a6ca4db46a2af49a5548b1257c9d2b22d52386681fb5044735ea8be08f8d7efd547e0cbe0a836d84563e50fa1844d41c95d8317534c6495c1c427d82c83ee0d520f1482c7be74c214fd6512af4284bac8ffb2b39bda77abb4ab8484d9f809916952b1cfddf3b281169c0f04519d46a566be33205abdf2164cc7d2561025dafa3980243284e4e1da463c5d4520a03bb0b36488a295011ea331bbc4d606cc24eecba1445c982e3e04374435c9442817d026c121fc42c043b3faa0c05167a0ea06871d6425c1acb4f30963d03e2d42a343193340960b59c6bd30db4470d5ef92735983f1bff446a0973e8f46ec0a054c87f0a9615dccb26a98248432e968804d37772a4d96621fc02c84dadfa6a1a4e27899b259fc7eb9a19982e051cf7e1c8e159c53fcdeefb55dae9e59d824314156474c7458f321375ae04997786f3f4aa3a98d61e63c737f6f704b7be5efc82375c60147080e7c1d245bc57834059646ff6c4e2b51064d95a2d72fd8fded80b9e0c33150cbe5a870e18476387ad3c27b0c54d1bac3fd52a1e4f90ecac3a5294b22c2db492cd21d4de816c32c93696a692257255d1818cfc3e82fd3dcb47088b9720bf29cf7e3e8e0e1498dd37435e163e75f3a63dac345c19654f641f6f2830662121fd6ea925e43eae924803ee4469ec24fa4dcce80f2503073a20a48b5871b1bec972daf8d82d10612dc5ccc14f6477a69f2a5c0d28838898b3389fc414cdfc31ab1240e33d6491c3ed11bd37488c2f9ee05a53b9ffd1070af82541a2df9b3df7075942b849717745f19aff8f88fb5f1405254c1523de0daebebbad63480d0f2df52d3d9f9e8cc644de787905619dfd4780858199dbeb37af98396135817b40c859e84889e06f6a185897ad098e14102a903dc24bf6847a359068c88588474811a3905136406478b04e6f54a1b304b36a6a0d61bd7376882958e8924c5c8650720222d3a0002c0c32187a99a6e8061fc82af202ab2e79903b2220787212db8b666ded240b6a8dc87d6e633a63186cba876d432f181ee4b3a931e104ab3bea6721b92409f327b94f47178a5e04ba82a7a3d0e8aeae2e377a06fba90de3274249175cb14f6c7b8de5dc3df50585347658415701f0f530738ba55b77b1d881dd1256224f1dba98085a902b4a10acdb31eae1a2c016edd16b4dc8d696b2f2b3dc40518affdf73cbecefc0575a2b4796bf3f733c3ec1eb49ceddbcdc3c458830c4b865a5653036ad0f001495b593b5077e834f0bfdb844b14e8c74648eb941a5f2a5841ad1a1015990d84d532321589b96c26907a98683dd5082f2d55369bb12761da3e0e696fbc84a29a067cbca7ba9fa969cb7c70c32593113fd4f65b19c36beef43e6316f9527d2f12f6004b8ef7432405a87368c658c48eb34980375422d7c152eaad1328e64d3207c5f5d780703d30645d59930542620171dcafeffe3a56b92266f7bec0d73a963df53ac8eaef3822bd6f60cf23b396e8675e627792b4885a516e323f25a2b0c4cbf93f2a44587acd9a91b16b87ce282de0de54cb385d40f49d2249175e27da7353a2f10af850111d8f53d2ea31c21ed289e88d41f1daf9b1095f6530266273b81224f1ae914b43eaae491e07eb24979eec78d5f9285649c80a2da3f95c368a9ba37f2538971f4f77704df363054f967b95839d10327fdd8eae427cb458dd6e4e7ac69dbfecc86645748b7c9da2888f28c72d5e110290d790aa850558b6b1912032906a676eda0e251a54a37c641d5b9872d176c9fa9f868e4b72926d0a37e0743444dbe53493da27b5049a4889661f6b14b650b1c39c0f50a07665a235e34988e71658d68b36709fac70b849355c8f772a2d0bb7cf54444fcd7816d23abe997930e6fa07aa6e4811efe2b67891d6ed75e1ccc193aa724bc2dacdb6e1160ddce10f5d7ae1b11b0e24698a3b24a4c746b8e68e72bb0c88c586d9e36d612a3708e0ceaca5a1c63e8e0711495d1301552061dfa1af9f2e063e0234b11b194d23ec0f8dac52329e10cbb6d812ed2aa8dea7603a272a06faa01873057ede9ed41f94a2b362b437a3717a9efe76218a9633d3e6c9807972a96ab5d55b587dd2245da4458b8a7a5c7ea447dc26bd259b886e2b5b7ea5e809c37a03adfa65f06c23d56ee6113c87d8c5eff43e599b589910a93f69dd8f6f3e18ba746246f224c53ffdb2b18f3fe53bf14c02e264a883372ebcaac1714e53d3962109110e93721b659f44ee7495e1556533a185f78b02b57a18577290de7dc82ef3a810f33fcf6e6e9a72e7a62c721ba2c56d927e0ff169ce3eae39d5b2b351a4a5a944a3cbfe45a94bcf70226c65a4afe23b33d4c60c24c496675449701862d9bea2a0ccbbb3c8c204c8ef75023307b2aa25b114f18953e72580f6520731db0d368e2d738731e0b1398faabe1f450d79a99d91a4a927786154ce45aec1236ca1d4e624d5ca0bc650aacd906de5094e589566916af40657889af3486a780a2b9c9a9964b57980199aaa39329bbc3032fec9f687fb5746d9c2f819447d44e2768395d363abf78d332e4400919f6c673d9f2568a842a9026d28a19445056ac20c51aa15a0196494a2aa014d30a14aa506358214515615a40d24a4a2d63008db699e5f306404bec0c860f4822d23e005460663176c19812e303218b960cb08708191c1b8055b46600b8c0c462dd832025a60643066c1661d786153172f12712bce940b4b2a5bb8232f52c95ab4839201a3d05d87b3b0202c3604a679f05f6d434933ebce9298b3ee248959abce499959eb9c8499d54e49cd597596d48c55a749ccad754acadc4aa724cdac3b4b62ceba932466ad3a276566ad731238ae00791c68a8b7c32e15728b8f43b42ad6e40959019e8944304b5a12e579afd0272053c509acd641c3378082e207917fecc3425c9e448c740786b061711c685e3894b24b63a9875242e3dc5da3cd4aff568ca4483558ebef458c32f347beeba9a269326cee47dce524426fe7ccec05ccc9a755d766c4e889bccf4b45d364d8dc8fb86b08e8dfac7096542d11adc2f9ed5e4aeade9c78484876e88da8510a0a851e896ca62b5e2f4e292faf898fc2b4275fd29fa3d4a351ba4f776b4ca394eebbbf38376e3548a8510a45f2dbea0667760dce903b83fd9a066b94e281e7416058705e4113d861e52a1b9beb2ddb9cf314960f600a0692d0f27747b70a4e1c031b9c489ceaeef3ecf50039fa89f42d4e00aaf52e0736f84c005023eeba05b900bf9a42696b1b45fc4f04c410ef181bb64af05402d85a039e11b02fc0d0b4b0d100cbb2f6690f06363d442e34edb203f1055a185603d0c1f0524d35cad9b9c28fb55323127a42f90ee49a9fec2640474561de5007c44c50b23c862d243b9e54bf0cf8d431316f9f266e7825cc5729ac2d93da97ad15376d95bb8365552622e0a6937042f1cc5c842fc11fc2fce75e4971228ddf506a717cbd920c1d717fd265cf684034f71369f7d007bd5638dae6eaa2489d6b4e37ea52a4ff4eaefda316f7897f045da7e5d870ce85da4a7201f0045b1d36aa891fb6a99154c1c237f1c60a957c8af1c6de09b7d26ae62fee2cb667df891d49862f0b67b7abba3759c595898334da6061e268cddf4cc07685cb54210e73c52f9bd70128886b5a70c38d22cafb24d6e6caa4d9819085275d09c7780d2394c58866d5db702670ce38eb57dc6b63dd8448447d4f9e707f9bca945a065a913bb7266a59e00e6082296e51b2afc0c9855c611e4c8e7a6b87b5675b47be77a6b2baf1ccd3f909e426576c22d18b1346dd173fd67a8777f3db1988fd9f382b7a15e32c8ae23503b20b99be17fed9cae5d85e17b3ad48211eb4aff10823b7bb9589876e4fb18b0b6c66cc53ca6b0c2f9fbf87cb6ed5785cf8be877c03e373b30c976e182ef3eea7c120d4abacfc6db8f097bdfebdeec1465ddf33aa1a6988915ade38ee8b66d45fcac5fe59d81643655c2ccce19d21791e22436f5dc4ee81487a3cef437db3d62e590302a1e8fa1a75dd1f41013904abb0016ac6a7f42e782c771e375d697a2bc1aca48f33fbd5c6f80b0c773dd7762649c72ee7e4e095263512e33895bcd6f87708b70e8b301d114e52014754df87b4ab1cab19a845dca84e41cd4d6f60d4e82c28a73aa647a9b60b4a3756ac431fba9ede583d40948bb545a494d3f06bc3d1387a13a062a9afc766a044bb8f70b920d232a3542f40e184d87f8253f17bd88fb89a25c820850019f9ca383bed2db1138b965f806ee8ad4c3e9b94d2da94c00f2bb87bffb4b13aa154f5616113e289e0f102f8024750d8d75460f4c1b462c20524a35ff754f4cbf29cf5905306629a714f82b92103ad9a054338e459e9412220f82b34badf3e43ff4e68b45e6b9b830eece727887b26bbac95dcfe379fc30d1a0c8c303dcedc0f933e50c91b555ec4324752ea98b4fdc2f209ea9a9b340026d329e844f5c3265173db907b73a7206e1363efc3738433fff763f346f16290b1ce7481dc4c9cf09420c32227faa98ee8a41fff72261f40371b064a5c5e5ea96d2f8bfcf1c3c7888496a7fae4076000ac3eadad248fda958765c7912c1e22bd0b8ebd20a0f7fc3a193aaef0955ec54946de98c9df528ff3399949fa90c65f9853c72e56492a1956f0636edc18bfa3205eb914ca68589981dce0d792c22e1b86ddff551dc1c1e0ab8db51a530ec03d8f12ac90150fd142ed3bddb105a450b770a5f2d8f08df601c67ce9a93e98719a5ab4d5634ae026546a017bf25485f71e17b087bfd73694a7ecc2f7cbfe38974b9fc8fbae4feb5d865838a01ebcc6108ad7518f5c06a6ecbef0b1044b4bff808d600f7778ee0d68e85633fbebfd04aa766f3b64993999dc1f30228ab9c0df267a927107aef6d0f56c032040010198c8304421b371804163297f338e12a4d4526c3ddb71da03e08bc6ff68fb42ef8ff4fc4f6afb33fe5f14d7256a5da16a07785d566dfe7767f43c4e1a0cfcad1a70ba0edc066e3fd4b826a439a6bea69a349f4f78016d543ca7dcd130b1a6a2b21873057831d17087a1fb6ee18574f193b3634d63c17a92eca950beab496e1a8d9fe9dbc1cc267bb994846d8c9393bae17bd12d81f5b633c5c9ad796cf557569650815a36d3131137966ab0c40d5b2e6b4a7faa529fb8b1b47e470fc6ec38cdec01981d68637ba264094484a6d74e5a40d50e349e8916e8d594774dc363d76b1e1ebb44d043ff626354a90e716892c8086cb4365191913d2c96e8104ff4f5dd86d35118ea028d46c791bbb646f4db1d5c21dc8ef9f3f632623e1fc43aa95647d8996d150385001b2cf520519312d0b107d385d532a4ac5e5b1b9513b6334d3ed7e9fe59251df44bcc29d595dc102ad38a460a8693e17d22077ba18163a8296451f5e553ea50d6ed85b3c2dcbcd98762f91cd515187b64950e210d5b015e6443beca397a89bb254f831b943f357196f4a9cc3e158fd96ef35ad029daceb501e0253bcdd927d12a7af344b42a07596d6e7fe775fd11dd65053eb6eaf44694acb90f8ebd5538a26b18694825240c5de4a35871af85eb06b129cc52c55ddd9ce2ed372bbdba76002cc6eff0a550b9300640ccc2992af8a3ea20a3935cd3ebf55b444d253ab275c5c3f995b6e8179f2067e35b158acc821629e3f79a356d144b803b76d80c21343ee1e11717b053c6cd6366e99cd1d93e491da8a4f9af77b8c195c17acca57be08e59d56528ab2a43ed35fb53cadcae21de4a44b307ec5f407a806af500f606752ce2c4084b07e909fec4f2b62606e438a5c1353304f411e06d2476546df6b1b57aca93e70cae33643358f805fd629be4c694b655145359fef43085a2cf9173d38220418a33d96333087857465c386757dc04ae51c68bd8d8bb06430274cc78c5ff199db7256c0b7f5498a4fc43eab476396a0a2baca1adc35f161670e72478e88b6e96f6f6c5b4bd8dd9bb10fd1e246defda42d97c1d0d57275ac4310b222ed1e75c204cd905432e38e93013b28db440481e439d85978b3e592c1484c6a25922aa895e63f11e342d2cac8975d4a5252c695cefc829c5656e4d4654d42cd2dc034e85ad4a1607992ba24c1b46281806c7df490f58a4a87f110f6998cc9a609834ec8c652297e0bec6061d8a956cb07a855802a20c31ce2480b34bda36f863b0f5c5c0a9a4599a22ef9fd714564ff2c1e19a9eb50feb18795dc07a9a2c378d811114fa811d29a2194720a70f5b5f495be87f9814992802d6bfe85bd7656812951cef5829b0befe626970e1a6a491d402bb64807cca4f7602526f4c41a43839404d7fd280bf00ad6b715cb1991993d63a75791b0eb7105a4f0af2e90cba499fc1696a4a335d9f2ca7a74c037de9653924f7ebc10f30d30123a0f87735c15e50ed7553b709eafc41d8c628d893cd064341aa7cb38a353e722819710d963d1a82da84a69fdf155b9cf2e0894da90d975f65d8650331e4a230b0a5773e5aac96c460472b96540c9a2233da046260bbf865a1b9ec79fe088f014f4eb4d9fd2213e4dc04833d79251397e7611ed40e501dddb48a31b8da6f1522bff74de4a0c308e94bec7f1e653139a2653c5177241476412668a808e2b0fde35fb54cee99edfb10182e75d376058fd4ebf78e2eef5994bfdfc383a5bb50f91efea71429996d4fc5f03f2dcf238b1237d7d4fddd3aaf90996968a57d2ca1ed9f31920d897168b75bd7493436154b407cda515e312d14eab8de39f19f8b9a71075d8285753c765fbdcaa91b7ba62c3c46051506d806f27c611e2a08470d179395e39930b4f6b2779a4a926eb66af9de605f537ed9ae0ed68ea242e4cb5dfeef1b350f6285e38ab96826d1ee41a14e2534379ba90d606352a30cd58046104cb64b9b820a9df89145b5284abc13443048d1635207baa8d9f524183e3fccdf583e03da61f681a96c435faad3892012445c4e37e4ab65f8969b19cf729dac3df5a8d02af16933494191575b72a7aeedacc6dea98d4b417a124f58eccc2cf1db35f8e558a026c3136d6944c3021ec8c986f02d72df87bdef6b32b04c575374d4d85bd08554685a23c28e0a61100fc0e1044fc2ad92fedc2763e1ee4198dc686c8a965628baec25e1ac184aa4a74eeb75e1a12f0cbab2495c712e72c496a64acf68200db32b6bd2470e76388cdbe8635825689d74e9060dd8ac2485601cdaa72e73e9945732d435639b1794e3696ae978c482d2efd7c0b0282fad82d5b62059d169b8f5c0359988d86a55885a288e52b0f6ba1ce8fae7782548c245082d8a4a54e074db0e483407604e846fd8b89068763974dacd1ee576a4431247e2edebbd6979e1bb2ebe05a87364886c9f117d4e7e5bed2b573ca600e542cf0e1e8ca8ef64c38dd741904fc37b341643919816a38e9bbc684aa769ecde03124ce5d79e1823e8e19a5414a822ba76a181151de883aeb053b28a57b4337122df60b476916689fcf3a5688a29b4b4d2d863dcdf4cad9ca4c7ed3873a5824b105da0d844d8adb6c4ad2e00221eb8bb9110d39def3da73d5758159eb97f2b63424a0117527329b508ce58a9db0bdae10ffa191bc7c8f125a513f0a64a723ac20fd981456548aa2a052b04d040e49e7f4c354dc4d0655211fc2860ada3cfd4a6dc63917f56b8409e78ecdc4137416ab240fc6a5250408cb426cf3a82bc4f440d09d0cdc70e707d14411d06cb1e89b74fa2046190477f0067046e671cf0653e62fefb0233b0c201bcd87067c31855dac1b9c4c9254d3266d8452fa4451abd98b7344945e1d38c095b9a2900b403b8f00e2fbaffdd50d27e29a5098c29d90dc77fe22a7a394960c6e72fa5475084ec4baca68ab100384120d0795c588b2e448e04c75adf6f7a485b261eec96e40869d53071ac30dd991e52244a3c91b77aad7a0bb45a6a4bd7d72a54a837ba095b2db39e170b7a679980c37e95d408f5289debe3f686778ba4a5914f2e3eaed3c9411d3c1d68211378351e97c3c9a0c1e99d60d8f854cc5d9f2e8082f17567995d69607253dd9dc19f5bc2aed41d6f6d24781b30a0368c5bafd7673f9b069e1f1eb28118835a247db69028eeca99e217c0cb71eb8c70af6cbe971ba8f9e1db29fde7dbc059458eee86d1410c6079230727969b0f93eb646ed44d6d911ced08e8d7a5816437a5936815a1441b14995d3393af4d34c53c9b68e44f03606f192283980a7f764c83fbc30c87bf407df9e8095c5126b3a0c47b24a73159444c905a42a2388d1a34b1595a821ca09a48f40e3b783e42dd0148b779135942487649a52cc9e8bce42b2d31658339cdc314b638b64b44eaf9100179b0b4bd2d7b085c31bc8c5b572dd6b9871fae92bdda7b9868449dabdc9e1f7a792c980b431623ef9eeb95747da86c59d5b7c2ad5e1e1bd6c8736b55b50a627f114af681968820642f8513f7404f733c0e5c335ec21d47a4622dd39fd2206cd61841f9291c8146f93bc0f9c25a05a8bd5849188ce0ed6b746ba31a132584a474fa652752f1b36e11c638fa14d6c88d67a16d97b872420fe04014236836c16431b3d550b1200d6b457f0bbee1004cf28763c4a56383c9e5327329333dd7f59b6bc72036529cfd0b9c9faebcbe61e83de08eadab971d690ac8f91d9a12e1bc7388ea7fe6df3f3606cdb76ebe399fb76019de2de5e637868e117ce2b549a3fc22bedf910aeb7344ceef005fed5ea373ac888723d749ec352fafd06eed3c297c00c132844b9c783a345b1f54dfb41fde82cc78b262a048c63e1002b3eaa532eedb0a313721f6a2c39f7b3facb408848387885aad45ef3bb8485aa5965ec96c41c7b4a2e4baebe2068ca18ea02ebfc39d7dec2dc9a1bdea57f6743d02885d5209cedc938b03152176a3d227e0a46b40957d32802aae60960e9d6a83fbf03210160964b405e6f7cc635b96b114c5bf159a37d2758631ed3da4126960ae015c6ec0c9a00b202bafe60908a5fd67d364b61a7b6425a273bb69962a13f9891afb0cd37eff50320f676a7861475f72f6de40d0e2723a8d78ce6c8de669126a7f43928273a4e07b086df6e159e9def3943feb69572a7c11f9bc39da5b96ee47e147f82ec0ddd0b5583f16174b0141a2640cd741a7bb1f3a84ea1033d7f5b5b7861a5783aa1c9eecb94eca89fc91c29ca2fefeee76a1d09d984f43f7ea4a02fb3c9332fa7640ac39d89f22801552e23b2c47dd68048d8113a98b06f330dff8a7f6192c0abc993386419fdb6e80d4b84d3910fc7cd0a4fc3a56aa807f7621cd36ed9f9e57ee33ef9acf4d1552efdb30f4543f5eed255b4fcf2685a3e5bc3aecd52e80612737c31b64f699021bd581b2bdc8c2b5adc6f7f68eed478c8d6dd892833ff32e6d5cacd11c749e81217ec38172b40c66cf6cf26727aac5558b9f6a255e9732d5bcdce01d1c0b212a4711df7a50603ae18f647f422a4aa48b4971d6d9900ffd0e54faad261703acd1f3f4d81b3efa874243a600e3441a8491c8080037f1e4af26e07ae9048144cf40c237f8c8b1726e6c00e73ee183fca87bea15fdcfb5860a5f97d66a928b56fe2f6ff28289637a92f3b7df95e6bc98fd3e5821168fab3b515be0ffd8f1ad6517f466590f6d55abaface26fcba0b383de4d2764a5bb5aa67d81216fdd5f32ed68f3e8e6a0d12888dc747135fecdee8e6f662167c3b66f070f325e39f344e19ac96d3088bdbaed90c97d188f15b2731a99c705d8f6798e211af5d9a6c64254bc866c6a26e8e1af1341de0f363bbe1f543ab3f8f2eea2f04a0426a0cc15a1b7b97178b6b07f903071da88529c12301d2b4319bc6b6c42d68764e6d68e82100c8983bffaffc638af81a288c3d80a4e61e338c82329d6856fd18682976236847e2bc00db64897fcf5b6fa0f033b00f4701d47c7314857b24a86f258ff610d6c19aeb990ed0d13259e21ce25c8528a88a8f845b316545ccb669b75d8833a4a575328eb161cac1943b453bf4ea2c10b90d27ccb58372a41727608cbf2e1120a8a8bec53c09e3347fbd83da5d71db6b521a3bcfb3f944b5ac339e270d70b56f491bc65856cab33210f5bbe5efba8d0091888c9b2243bb86241225b848ff0940ef43208ee7cb5122a6ff45c0d691a594d2719537a75ed75188689d72f9784e85890d95d6f6a6a1ca0a5588189c46c4455f5a3b78ceb7d29ce0f2a5f08db89dcd4d99355a9d0b44a59f0e7664f58a643b4cb7b6ac28e4ef8beab25405661af2528cd7bba6c81a7c2ed5c2dda8af17bdca0436419d029b0fce51f900accebb7c861f73762cf0c08d51b0407a67a1988bbbefbfe6534e0b1617bb6d2b71ba39fb05d301f1ec402617889879388a8b485c2bf1ae7538f83d64fdf313bce4aa421ab96e453bdcfcb29b6e19f1b89cbac7d6d27c88596bb320388b566f85048deb3ab135e44c9fe8d9c7e004628df3e6cc50276c8c4c36af9d137e81262016394e543192e467a1a23af80360bc59347e0a332b1e568ad95e1b0c511b1a4ab20148dc8e97e062af6156245838b924d3464f3ff48f6f41b5fd686b53e8ffcfa2c390cb87d4dc46e59d7a3899697faa6bdb9fa2810aabbf0bca571dfc6b1c174ef7d92e1dcca22114c8f206d419e5bce68b4761ec299b0c85de8a859bb7de877ca1ef4977d3a37417cd8700d96add1129a7279b1b4cc3d5611438f61131715577cfbaa62919d788a8ac6a32ef24bfd50aa5e42b8d19afc48867870494ab7a2d24d911364f742bc738a005ada70362a6a8e0cc6360cc6e9b5f17fe64cedf53de3e6a133961e89db66f87344147d12553dd186ab55281565887801a61aafe3c099c311cd3c745e68cc724be59d72e2deacfe3cec71ccbaf2fe72896e6351425b4e0435caa4e3cfad5639be6792fee92e5199f76853af546ec62be90661424537610032955e11df3d3d3eb5d70cbe18c08082d7718a17fb23fd8274b8c1a6ec4b1c777f288b8d3e39e933766dfa98b5646ce7c61255731af3aac853a190759747125685fb9ce0fa61cf49862a80da1d17f493f3486ecbb4cece0ce49cf9ad2f1c8dd0863a1bb2e13cf7cd028d55b6e6fc3a58be82f5fab3dd572e02cd5466431fbae621b15095d65ce6ed96392498e8fc63cbab4f1de1e66a2dac438821ed64bf463004776f043c176a503a2a53a99f9daf4d4a7b0e4f4287b72af5d11881f584605c2ac801be8115fa582e513ec856dc9347e31fda9dd1b84351ac06bd659fc4b317ba1f15aa5fca84423a78fb6e61bd406da44a9fbf2d8c1fed4dded3f743634402eb265e1fe37d15e1d85121c7b4c4d75e611c31aa51e617a8975dd7bfaa1242ab502461b9aefc836719f8b1f0de1b914b85bdfa829483368c7ca550d8990a1e67b11261d4d23554cd46068461c9ba8313e2dc6b176b7932ad3b7f5ba339defa8f3a734a4e583e5795084d2e35f14e6661525980083bf451294f5b731d83a31e9deacbe6b8a5963bc0868eec135e386821b70ac4f0ec4c71cefae40212f420b503a01f430fcabbc46560d7e3397073a259a5e12ea5d746c45e012c40659f3401717f6197cc29b322cdba2516a0609bb936ce0372e1fb7cf43a2c6885e4357dfd9423d8fc6230722707a54e5d721840bf6525e1068bf802895b8d2a024d17d105a49f75a71cfc46d10d9a031d637321e6c0574722338946264c716a5f6e1b4f04aa45769e8cd125a3ad205508fc58c7efa41f1b7698248403dcfcbd24db6f1498ae4453359d79291f337dceb4d6501fc61f826a0266610af4879787ad44842a31691c4e449ed2a584602dfafe76dc0922cd42d2859ceeaf5ab52f0da7fd55b0654026ab283fabfb364be2c0b00cdb9758726f61c65bd02f00725000bd7235639811374dc0ee54b55b0722545545983148ef9616e394e98801e7a94d75b7f3901696b5c871fd35e42f46858852988e4189d456c8db9b536e0676d7c73ac1742aa5f2b94afcc0a9e8054de5c483aa0dae8ea37e100958fb2e720465e181e8d40144685fa213ba0a80abb0961c84fafe078bd762a88ca85acc31260c30716484f3dcdbbefea4dc7a4b89a0550025620dc5e0724d3d45867e844a97c920ea107a93e04d3f32dc575c14dcf2e7f7013ac564a0f68426fa335f9a057b29b4b804d4844a53361c6ba986031632ed61307ba156d3c88717a0aa58b28f643cfcb784f4be2b652e379a90b1c536b3d278064136933dc1f4f4c26f57de01163b1aa04111dc629f9266804802e9c61b32390c6b9c9ae106b2ffd8498a87f612b0b6122d42fbef8b640238986d6a6645efdce83f91128accaf15e25d1dc612c511d203d0fdea2b8f245e318816c62a98d61c26f17148c1467947222912dcf7eeec4c0dee37e6fb82b2924db4a5ebab9cc50f2370810197899b2db0cbbfab6e2966f997a7db66c1b9bdb4c86830c3ef11959995731463d46c9d6790b731523b41434591268a5dcba035e3e38c4b6fe19cf74c02bde71058cbd6e8e7645fd938abcfd447edb00c198146defee8a95eb58f52a2c750e5e146c0e59c651778e81caf5dbaa3282f682cd27700bddb6f1f5484c646ee1678247853a7a7b916d83c9f415dabd73d08915a69fdfc1acf6f8114a73b6d7487089bb8416a5ebf09329d13f3644e10a92315e27b422cb0c1c3847cf0c000555273ed4af3451ab7f8dc1667c85c2dfabfed86153d3fadaaa98172093badf5e142d04b52014b2958c53f997bf4047e9cd31522787aa9bce2a2301467eea98811285ad3632f3ee2547c5d42f1048697388937181628ec7d7d1d696835d13745c2161254577a2b1431f56c8d60c8ac8555b65432798024e31ea97ec8d21defe3b4520f843510f8b229707b6dce6077146d52fab928cf5c91ae186e912d966ea160561ec897247e55f75bf1e8b275c59a7d5eef70ca15ec47a073f028d7298166cbfc6e95fd2104db5c031e933b810fe97d10729b03d6af061a29145ef26a94af94eda5149241a55ce8da5b941296851d944e900c5fab56f88816d7e48e213db0126ef40cd395304389308107d375cc970225fbdc40b12ae387fe592c7c620df0fa3239a9033bc2d1cd2f0a8de8309c72fe2064ce23ffc444d65cd8a8c26f9fa5a70a3af7401a10bfcf90e70eeb422c0e992d0c42a2743a29bdfd4ed4a38a8e8fa85adf272274492d7092278064f159302f45306cf8d37285d0908ae6ea57d06cb4578a16bf842bb4b86b962d387ead8f15dd6f67c94c3366937268523b9ceca8509bca3001e849a45a86e92837cb0f6c3f1ee13e8a880ec2eb47ae2d8c81b025957536adf35461ecbd0a9ad5a7d7d9c17e3618bbd630d05162311d4b332fd7a7bbbd9a52049b59e084b9bc34996e83a311f82f0f46ad685b55afc6bdbdbd2e6a53342218adccbf2155b3f584f9dbd1be56baaa4826c4ff1e89e3f898f2682b4a4e30db343104e7e26c82dad4473d9ba164971e4ba332f8f765b6721f66d31466d0590947a7215fa3297e1c4493e6349a5d9c41a8ce16684339a8200c863060cba0803c6a881cf879c04b34b40731362df5286ace024694ca1b1d98c03083e2e56b1687da9727d40f21981e4347924307d1e7b65711bf332f13379d4a073dc08c10d17b6ac267a85101e195509b03fc1065a601598a2e736e443f91f95ea1b26c5251604c95e99f2253761ca4db9b82636070396e5467b23a101084c1c49e26687adfb8015bb89b9d113e5416a4047ed52edc0ad5b90ab80d6d964559a2e19ee845b0e234e748cfc284de03ba1b71ed06719fa8f36a4e5d4d59c303eda8b4b7cf83970f8d7e8f834d1a248fcfeedc5e5966dfd0dadeca209451f7568110a8b6feeedcdc37702cb711044c07b3beb2f73055028edcee91fae7d6bf959190ffeaf626252a50c9df266f9bd2f2ccb265ab9dfafcaca28aa15deeee84032e1514fcae3d3c549d9c4b806cb7453a567cf021942e500d0af09a3694ce60347d0962b089b4aaa5a9307b99e8f69e7c1257741d165b1154a8e801159d38558c8cf8643c0a62b14b4e479f9d87066c6b5906c8ff8bf6c15c69ba9ebba02f57aca8536b4db916500dfa228df304077337fabd0a9003bfff8fd9a869949b8a8360b08f9585051bb2490e2cae96517e7b179dbd68aa5314e689a2cc2f37dcc25191274a20db0e41f11bb5f34656bebbb8b00a93a21c3f3fc37ff5373a0d52c543b46f5a56260af27924fc1cadf1052357aa7ce72ff35556814985cf676e72f22ee20136939c005cbfd5fda39756eb07d889fe5211f67cfb559a6ebc2d22ba458415584dc18e867cd49f6a233719760f964c1f033f5ef5e9f04c0ef367cd9d408848cd3081fca884c76820bedf6b855b21884ad4ea35b06c4068516335dd1a61d1c38c841bbab38974b7789661119edbc78e646a2054107a57d443a6ee9a4422e73e91e0a55c40986fa1fc13df3c815ab9830417fd233815504adc321a6ae2245c961540df0f480c8b208ddb1fba19bac4c246e41cc7896c1d7a4de50a34793b238f36f9e721e31c0824da18125ad467c1029ae63fa2fdf7479c64b18bb8271490db3f1aba7e44eb2a64352969291048528a72255f087a0db54c5e24d04b4c20f922816666b63bcceb4e0fc42420f14ceb1d09451921a6cf9f9f38f7a1f73c9007d3d5c58d4a9612962020cf65d6a29347efdd7a6e6580a2d9e46b9be23576d27d3220a2019f07f1633eb666a0ee2791ce205bbfdb5d66af0af16ab1230981dc7f0817e48a3ca96998745b9209a76fe3fb1fa3acf526b2af8b71fe579d09eb706a807d3e01331256405ab919b253912e410156be76f2bd3840e1330de10b27bbccb31d841c6ba931aa60667179e1005c095296142160632669cef689d0029a59eae12fa2b8c3a26fdbf158c58294cb1511dc96430e00adb010c5df19061bc0680b442f2e351cb38efb238c574e4308e60c0e8e4f8eaafd6e87bc3eeeaef312288d030208c05012f4a88cf4aaac11e2347508ff0c1e04624776b0f771619c34bc9d2d508498864759d51f05492abdbe95c65e964a563523b5e22e4b4396dd2895da16d26bb97a3b12cbaeaca5bbd150da65adda1b45d34ea6eade54947a332bb6ce6299ab596d6b18b65a8c467b222585056f685419694f169a45944832dd140de9e879260593c5578cf8b604eeebc7e5b70f2538b6127a2489b1fab643888ab36e8eac4664bfdf70e3702c6123aa0ac95b347c3978f19db90c200b14b79079a32686293c5b21fb1b11010afa28984ab4c0ee383458dd8683b9d720507b1b1d749723c1d8311c583d0d82aef7d120761d118c6ec3c0d47318e87b8f2482765b0ad53d9190c3a5a2e954cb9a38809d83d715a438818462e4873b0883ca9b6f91d1e76494a99cbe71054d5d25f4de5a1e3e09dba13b5754b2be5c851e0dddb0c9b8420f1fcdaf070d0dae078726d66382bea87a6cef293dea23c46d8b56bddf3c9adb7950da5067137a24098fd674aa94fff673f0d811671ff603a5bc0bc281be1d43d4cdc7cd541a8bb14d7b84fd63a6f0840bfd94f4379b4fe3a0b604642ba5f9b4198b438f36f45409524db7db9560b3db73304c1f865ab4191620aa5f7beb24ec98fa4a647afdd71a4fd0ba2522e2907cfdc60214440b6b49668550fa5e4b7930b84a96652b022748a01d4fbc2a04c696337ecf6bb005ac08790b56801e4155856754f32099169da9ce0569b2f0cd5a1e4a1b1195d7a53e7a11f0f734e5bdbf18bad4921b893ee5d77e3b88de07db203dc5edea71ee5fcf75ff7ac0fbd5fbf87ef3fbe001c921f55c84264d0fcbcbbb8274efe79a6ff110a8ae62360ec4bc7da97fd3cd314987620823984aeb9dd4463633bcda31cafe2607fc37a8824bdde53071c71cc97f1041310e62c8e810f66c56399cf32b499ad7e08fa4a2250e5a3c1d44df0b54c59f3e448f0df49a040a7149f38866d74b36c36f91b872387f03131c9afdc981b503bcb67878fc8918e6987e52067f09000c5147f08aec59583a6b5bad0d62c2f0bd6df2c04c2d911508742a3f644fee56bf257e08f6f11027b4c1c1b77133c4933cce51f2166bda0e5943bcdc258a03377b6fa5e912d476b684fae2618fe1a64b41e49fc329fd8ace42124824ceb20325e9cf47637860bd53f0ec9f306aaa0d266c14ad7eec0c21a4bfc2412e9a088ed24e3bf7f253e3a5a0c5d58019e7dd58e5cbd94ef8c1a55f3b4c28094590056aa7e9f1536dec9b73f114fb74b4412fd31350421a65385cb3fd47252636fdcfd52d9059bfb8ec9f7bfc791fadadff88159893dfe371c233251700a24d652572b237740c8171f2ca14a5ceb80fe6a3b54e6a85dd496f2bb19292e6841e48688147fa28579422dce50cab171b4475929e259c1fed93e49523338b1b01c67f9657e0f00ceaa3d344ca59408fb485ba601ce30bc0685b4c826749501ba1a57c4b985d4830f286b9c78431b6751e62eccb83384d58a627254d447acf1106ef01ffe4f2aca87e851ad7428cab12a9048f55afaef8a4a8f6db9646dca64f992d7129fc5332ffb1cf1eac798c2af3dbc45f78c259c5546cdd8c5adc8127d81f43c47bb2c4a06d464397014be5095c95fea9416a63e981a1aefc5c18708f99f55b83e2b7ae75b1850fb421858e8a94aafed8e407a9e575c441988cb7c1aa54186792123589912b853de8b30778c2945b0246a26d3a2e2ba676fe535f5ea13d2af966fd0eb66f7caf4715c23d32e304491154df3042a1d48cc6f657daaaa48d1728ee1aea23e1dd62f549b4f7180925dc774ca4306e887c4c6ef9a1f01db1ab6810d1cf600d519bf8080d8e47eb0009f15ea822ab121f12a8aae9ff80f24a2c1cd1666ad61ce79f2f5157c0074b684110a04874e2d3805a70f6cc4f35f711152e72088235994a5ea7cf6cc9a6af34d1a6efb88e434e68fbe63846498b23385a8c2ebe65ed74a9f82fdce6f3355a7a8c79634161d357c347d1fe482122cdb6c9b0d6b7e58f06f288ae998d44e83dea0ae03060ee8e36881659d6d0c35580843b6a25a40345cdc04eb46de01d28c48dbde58e19ae511fae6f456a81177018cd4d55088e63947e1bec11b357929a1bda8a13fc4a4aca4bad22eaa9588ab712d787c196ade9a4a11be8bffa15b5e519e9be381d20a833c9dc8ceec6241f206154a36a02745b29b541d30132f42466dd0443dfcdbbc85c91524c9a9d0e508e3f295f3312a7fec3fd0d3a4b19991ab69f24a3493af67064206afc451f435643b9de0cf3b2bac6f2c817d8c38837df4387059e87a2c71acbc4b02041a67181819098cb7b0e1bdb7631664d21fe7a4727ca5ef86d718a0bc058febc5a59d946b3d9eae0ce2d8f7f7131cc69320d65925d3dec869aa2977b85aa04a26a4aaacc9a5bd4eb30bbafd66efcfb332f07b3472877d5c0ecd2a3975de0c230634ee9a056d1188f73d684ca5a1eed7845df338e3e4356653451eb0fd3ce41974522f4108390b185659a84cfd394bd16fc459b1a4e5cf8fde375aff77b2f48af13c3a0d46519e408b2f46e136285f0bf759c21e121dcc89a1b7cd4df835e0943bda0c94a99ed919cfe7c37c1e3427240dbdcd0a9113a858b4b21fe77e3a8528401399ab9b7ccc668fad401322903bb96217da609552a971bc2c24e79d065e649da6901961feed916aa0a63998d6db8bd86e79d7704dd62d0b6eb11609cbeab84b986fb3ae41b270efdde8d1e964b8dc9a46c483a5c10ca07067c67b2f4467fd02e2e17d487de8db04a9fea9f8b89c4af465577d13265ef1afa4bb488448199fd6c899ed5ac4fddbe0aa27db34216f90823e57159eefdd1807d47b3a92661e54085d7f0056c78e5a8307c91095b2efa2f6dd9308e80d85278a507cdff8c989311f3ab01b80955ed386211555de839405dbbc6f0ce3c9b935b541771ad700d1396b86d9c8f5d1b43a5259da5b63186b0c174be21de132a96fa6143bb5fa4ebbae3c266db3d81752abb77bb3d3dceb97c1492fd36e549d057e8d1b1c88ce31005d46bf89c60c1c3cc29f3a97f5bf7302191d17de669042bc94066852934bab8ee3e088f3dbad5a0ac1ce6562c6eb3c9254cfc4cd71505be4d870dac8217badb872b6215eda2db55f462ac221a0a0dac5c03f731b7d450bdc92917cdfb0a837ed22f5a41e4d295d42aa9bba174d71e13158b980941a58f2de208b0ca9969a8c7b855e5900e2d8fdbc0336ab04c9dd2df451c6a6aae9e7379af839dcbba4000c613f9602d250e9c90a7737493f8369d1cfab70f0a308a9ff19246a856b35e18b971d4677192a7f5e4e4b0483749731ace4e0a614d37ae71c5fdf75232c6393557b39709e80b3907024bd589866e7ee77052f8db7158331e6293e0f1154dd8e93d7f30599a3ee0fc1aa1d95a23bc306cd38fa41f6137362b8e132f31a16f949d24ea3e7d6ec2f0ff2ec8adebe6aa48ed026145358b25c27fb162ebf7a36f85b29d0a382275715774fc46f22e2b5d7ff64adb42332bd536d884b34351c1ddfd37eacfa75f971c76ac73556cc954a7b5c6c54d5a1aea1770e91b3181e169d28a805df630f7c990662136a433e63596bd0b6b76d71a6444489dd64d29b0cde49f7801b300b50e6318351f288d140d7791a8cd21b7693ceae034c9f0a1c3b435a3368d639014d203e6523122284ead7d9715c5ad62c6841d0b316ab586a5874b557f41c6a9ade038d7cf231586a602ec1994feab0d872c4042f5f4ddb374cff2f83d18cb758a5751515555acc6c3ce26fd07610c8af4742b73ddb66f0b3bd2111608c2fc08df2cc8221062abe4b0a770d7143f12029805de0d652768548981849086292520e21b61602dfefb21cbc81f84aa9ae1e8774283f3b8f610d0f4271f6e72e392d150c58ea60534bc2728408fb1c3b50d259a290414415366038a9792a505ff122ea53811943847bb552d814793a155c74db104786e51d65e3ce0c96d988265769595af74f3c50cff8e133f56f7e430c9fb710156552f7d66ff654ae0b2a4a3bb408f32a2ad65c448929b802d6529b098b832b20ce9e0961a5f754c24ad62c2341a0a36c582e960b070394afe260845da0a3b7a9014d987dc4ab200250fe8324a4e7618ccf0cc3c8ea63e60245cdee0f29a8e2aed1d915725e32ebe788c2f503e444535a4592d8b4d1fceae604959cd2cebff2183b815e2979cfa1a4e9aec339f43a92a7bc17426d563a1717f85d28090a1b00d215bacbdf6e66e6bba734953530455254bfead8f59a97dec42c5954dab2d605c93b5704b043894254e09b475df2a664d51c7d65c558304af7f2507198695f620894abe69580246056187f20b9981d0235906115f9eeb300df19db725b053e625ee1b2368d1dc25a12d3062c247db4efcc8160fbbadc478dc36c3a0e9290e2ab2fe0134fe046116afc186afe569a8a0a10a75b13bcebddef2893ee427bea0d684646ef7960cfce22ff0d12b3f8ed51c6fea96dd0dc50a17bc319acb054259caecf6888a7c86ea9b2eb0ce2e159855db55d52608558c6470a68a57e709136cee73a22bf387edc804bee915d75a85d47f0321097982b6588ef0ec1028474603144b2d720783e070d6e5e626417a921d8f8dac69259428611957561f996830e6f43f994b3029518e32175e85c651c81c054081ce4a3f4b4bf77b022eb832c85d1352168f9c53004fbaf4cb3f8b952d501bc391c0c226cf6d4b181c59e567b57986d532ac922b6eb7a3c7f3087096ba26124b140b75dc3071d26a3ea2a15f40599454859bbba79a222a4e5e2343cce5792a893508221b6893dc670edf72a0284706e6bfa68c79ffcb31fde10053df834179dcf5b0bcf313ca7aa8257d6296a20180c5ab36e27304220fa6c2bd32a5b854506baa0ac61135a461ff0172de8c0e7c56e6cf0da058e0a2d073e9cc91be846a9c2ab8f451aa0bcaafdb06963928caa1e56c68310282a23dc454ee3ded7d7776173556effb83b5eeded036927aa20524c85290f95cb79e90594ec3bfa44bf9c111de417af15210ef0741419569414563e8c7d7c38db351b802aa849af12e8ca6bf6874ccf547383cbe6a2b7a4c3bae3f6432a99d9a6016427f94463a754806bef8b826f7d35ede5a301887cea411d0e02bda237a1b918deacbc19c6557762d40e68240f9be37324ea77925d32f748e29315890ba94276b7de6c8a0e74f23959eb4882b17a51570d31c02d9f2936761be4cf92a40edacb774a4a0f9d4e1ac2b1c0764293abb386b7524a50a2adc1ef1264d15c0eee97c5144051ddabebf49f6ad78c35ee7d4b5afa0dfea6b96ef3b7feb02c49f88c6db4196025c84a6152a0f810b2b052e71d8c045fec0856197005450210031b8aa348bd9dfb79de040dfa493b811490016eb88cd597150e18a8dfed6f03f1efa30848d6d82addc9054839a3a11c33c81326c21a48fb946b8dd827656845790f4b70cbbb3da055393f495965d56a110d20302a6ae810dc196dcacb82460c5231093434ff5615cc0075a174dec18404ccacfdebe42dbf2c211dfdb00d56e06b35d19b05005e0b908556d228aa8c0629a9383ea7906a2c40e208563f6db99debe2426b3ea04c641246885ee50803bcf40d8bf0f113ca206c3f97a5e808f7d15e8e68409db03c571d402e622731cf22be831ae0fe1ff10f92ce66177d3bcba8e67ef2be8a2c690953e8b877cc58e33620066222ff824122b9098424362768eccec9bf69d13d333c4747ea883787787a28bb38f61bfa7a0cd648990d9ec240483eddc055e271e2adc121f8b9f7537b03a243fae5245baa36e49c73075cf3e7feba0907aa3f32d44910ca1d585b6038bdf41f0f97cd313004e86d69381e2849afc9967229c122750dd2bb5c33505f5710eee6db9ebf5ff27e89bc73945669fc4d1f9e457860651e04de6738d34ff6b99da32751131f3f9f5791f5c78c55926f904fe77b4c4fd91f89c7c22dc43c9c83debe34c1807af2f04fe284656ae3d9d79af8f548dc54a4df1f3c6b9739c279f947ece26dce7c5283193a33fcf6fccff39043699b49cc31d7d42147af83773c7edc2acd566ac2408a12d87aebe1881b570729410c440439510fabc0763cd6d897ddb84bf4e0561a71d3c247ede206e0c45420ae3983e95bc90c1f52f2fa11308ffc9021bcd7f40cf578288dcf00506a09fe4bd4bf002df28081d5b15f5c66d14eb539350e6b343d2271b8d962a9b9e10f0af61a0d2c5884067f12d8bd7e2deedd6cdd737681cd5118c052f3c9a488d26b4cdbc2b3bce744d02b628e6d09e5cc8bfe7cb60c616e10e73b1a3d41010d144d70e6ca081df220d0c71db2490560f41f1d7c75514fb665503398cdd61dbc3d68857cfa7d000394176f0bde1a51d7daa2681dac06d5556793ad11eebae8f49c6330cc399f2525d02a65e186acc38144e631ef98846025b4fe21d2b2cca0e19c93d31d6f5b558a3624c7353e5c7dd1439b4b2dee6d7b84463f595be8ce8f28f905d011fa21f20870f260940f09ddd6e3787ebb0377423f67b8832980625f6d53ef9c133033d740ed6fec1529d3c5a065672e5484b95d289beb4beeeee10f5419a9f9bc18ea7b7da9acf2413c5e01df1ac3754f227a988d0266a372b43dc6d790903cf0bcbee78531a241c09e42424277b0de1ce64e7b5eb0e300bdc91b830e4f5679896e69537dc306e1e6d03a3afafe51c5f09eee72713d5468841e25e1b90560ea917df5cda0b455e69be3e2c059b3228a3c0caf457fa92884c9cd55fd058655aa098fc51e8a81864ec57610ba12f2c88e2ba9c36b1b0776cdba7608040c9b7405f16855c9ba6ea922216158f70dbb3ab13dab24f4fe04f267a1a17dd74a12d0d01e86343dd54fa2cc33642420eb19798ba6bd4869d3c8bc8088a19aa85267343a8dda19e0d2bbc568178a36b0fbe510d22a5134bd5a2f238a0f19dc9af6952d32ad85dac48a828445888c705add479307334683964558075c74a10b504ead37d55a5090c5c61c5aba6921cecde761f458e47d5fc32eb1e8feb11c90bec5f79cb11c863f87a3dbc66a570ddd0a463154f5690118fa8a0f1ce36a89178aeda42491a302899927d6762e952f731fe676a2698991e9dfd6ddda931949db6e96ade3c208a549792d6ddbd1b29d29107f08305ca8b436960fec708ce4b4cadfd1b3f92e90a64a09d020b3c74685ee3e1d952292e1e0b4609032d8643fc62f39fe6e6d4c607f70be253cf97ecc352e91b67305cfb2812516d14101790e11b49e05c322ab46147e34b56adcf15e90046ffb5fc51682e4d3a937a1046b6ee58604207d107f673b3b17c58ae56ec0ba2e1d5217666ec1e61a4dafeb68b64513424b238df1bbbd583bceed7da10273dafea7936eab0084b31c1c7cef9052f350220473619e271ff3f61c9c48fcf89a9700f599aba190111c25b49c4bd5eecb09da4a8d33a35de4ba6d86bc617f9019df8c5b45cfe0f00f8cf4227e2b76ffcf172620755e24793ed7e70a08dc0242cee9fe80217b19b089fa0fe675c21cf39e242e7185fb0868d79d795c2eb2111e9a3fbce8e75dc2f9d4bb339078affa09b194a13ef4a591542ef5570a264b33c51f21b54d09954f7f28b27f65e16f8fd7b624d4df47f8da2e59c635f6070e0909c6dc4b6dc5712d99a070de6edbf6c88695334ccdcf2908e48146a437a8caabfb4089738ca703513ce6eebb90e5e927a5c9ea8d02b3c7846d9f03b3e3526e55dd5b1c8dc60b82dcac9e77ace9a0f637735ecf6005597cb50e3ff6c86b1a592c0b90e62b84f4d784fdbcf233b0392c3ba68200f0ec98aa9f361e0879e38ecef759b31f0e7f60bd0915948cd7ce25297a4db639fd4ed626b6c014fdbca961f8923e9e03ec40b4c151f56686df9d67d9407e29544ce3375dfeb37bf06b9a6fc35320e549155c603d5f74f981968f820e94fe50fe12974acc1dc774a984affab59921da034750407f89175e86b8e75db67601059ea30481e861deeffb82606b6a60cad52c685dc199b9d51165631f4158c9aa4b8575f2cabe76243840accf0578d516439ac8ce5d432a317a1f3f7aec35903e0a2fe466efbbc2bea2de03fffb5f23a13cb4d0eced4dfd7404278fa8071069dd10eea5abd19a400f5043bb09e7e53cf63d31baa593009a710c8d30860c5206bc915aaf0928a6f1dd1c9764ef5a7dafc4bcb2e44449d3e174782cd0e5f953a12e72ae5e5f904b7cb54166cba3370794cd0c6ac144cd23d85684042201731b2bb6353db540a160afef886884cde6028d1f344d45e98e32c4a63828d1741ecb7a1479635184a252c8d9472e6f1f2d884b2a9d68ab3a71d5ac99823d63a457ea656c456cb411d728e0ecaaf457b475d1592ca04ed8f21b0e34d7a377875725a03e900bd00aaa082e65dd688e35f4550d6881b485a9c668499fc574af3b0e60fdf3904be748405a7f9184ac55294e9170243393ab2abbc60c76762c3133eca2b1c0048cf720bf11f76dbcd68b970a61aa1bb9f23abb4350ab88cba5f14afd0b72c88aa52dd04c9c55d4c885d320305917f1ca4727e164069a0c80315223be67e31eb7692d6ce11c17021648e7b1cb0b946330d8a82a04f8388c7fe4d443a20ce9d8aeb1db349e2bc485fd648fe0a7d972ed2889642702d5741018c04699c19590133a5b49beb288a71565dd0d8742a653e72794f92de7dad877be74ee6d3c129ca1264ab6e87dff81a90a66cf1a0a97ce5c3695ac9fb7eaf3ad82d546962de75ac2e99a704592edace59303e187ef0e6d89dc53c3cd18d1b35d5c079257f8f553c9bc048f228632b1f6aeaeaac3ad53fcd3716eb32228056575fec7bef0c2c60908455df285eec68d5d22e8f923971dd398b8b0a425b5c958e6dfa674257e759896c6787714936f519dbf2e88e77058bd97952b9d37db2100c827c126a68e213803cb192de70a4328da56749bac46fe00573d16858c95852ece03200716b4145deb15aaa850273e503039b18cc5a4c508ee22cd08c918ec3a534819ad561b521f682d27521f8446edd2a0860930b0a1a49cc6050813193413d0ab984162c4e2b18756db8044b5ecaf4fd325fa04d39bd53ead0f243103d20b220d73ef35b9c9720614d2394b08cb0c7d7df307fb2c37f4cbd00b52103cfdd4bad907a6b83a13f15ce9945b2bb8ea554e464717a2a4bb47b6f4a8a562fa7fe284a759d049131d9aa39e560ba0f832d6016fb0b41c92839a58b7b98f33397e88f32a267c9275b4d2b3312f2d64c3e5b8c601f56cb933f42544e736e249f3e2e74ca72ab3081e2733a9d351672a347fe22284b3146202ed69e54226e2c78903311452213a0f181ef38408ebbcd076231d7a186b681818ee8fad0de4a2fdb2b7002bf5cd569890681d1a9f766c3da3b2e1f471aa24eee688d874e07e16a0851eb36b79ce9754ff31aa7659f155ea1c7fd5dbd39238dde3ff83f57a788856fd2e60843744a7977320b94dbfa624de81858699d0b713c61f70482649022267d13a2db85a320601c2f341455590445b42778143e5c51be34a446a0e6b87a100f70b078cbecd1b51648c757fdc6bb4546973d5aac2a3326ab9638c3f327ef8b4160aa39682f4cf14c5fd49a0c2e77610b965c7bbd4a81edfc96d4395969b05852ccc2e7147f4038a0211b3fc3df14c237b55641142250ae6919ce557528555e9b1f687c12c2aa3d4f6743fc049ca18c0b6d6c6a771b534ee6b48a96fed7fca0aa5c2df7313f9014a8b596f14a7de39028e1309e54dc965109eb5b31a4921062781bf98523d3d651ca868ac627867e72eea043ca27c5b55eec91c37685ad1d9ae248988d46468f1ea476518ef2229e523b51e29b5541451e5cc65bd7f1cf4f7e6e5aae33c753d3700a13c64b8e4718edc8c2b28c13685c7c6148197728b689991e947e75ff6b415e6f8cc9109c2bf08115d2dcba2af9c34de219f91614f333bf35dd98920a147087e0360dd7885172ca6bf0314dc1d0824c0833dcdfbfc9a089e9adfe19248afb224ca39bebb1850d617011f5782d7f5b67049661843df7ad9203884cff4936e2a40aa2108a5e3031c0c0adf5bd74725368dee047a14c1fe3f8980087a04093493d562e9f458e8e8d8287af60dd73510bd4088538c3a0c4ba6495343d7b2c4e521475d5c40ebcb3a589d3f2bd34f4a094ce01195d8814fcd52dfb300106a5fce080d5150a73f80e083cc52f3920fd62a366d7603ecc24d8ea24b9ba821c0309ad5bd789e7d7587ff13b238a5b47329ccb7414359fa1656d4a298a6d26208684e149ab4919938659186d19baf4a3d1034e678dcd9940feba8d9f49b8beb0e2e2b1a07c7e88b36c426ac049870b17902480ae300dfaa73d14c6988ac42ea0d32c680a2876105dce823a259b53985115c5f577cb1e6fb3ae08b42a80cee50b352c4eda885928077dc25d88e852303832ba0e2e8be0610a82bb8af42edd0c0e47dedd37cef588ce2e80e73093e85328b07bba272c0512af834379418db8266902b8df42111faa4f9fa24f6ccf41fe89bc66219af9356da6ad0036e18fc81e5d5fd12bd01f97b41436c4f7b0e5ebaf0a33ba547fb8354a5fc8fad702e03675c25cb00f75a75564432579bb7617b70db82423d5c3042666f6052273e288420b60c86fe9327059690e254504014fab3eb04cee5397f7f92eb392221a0575ee002da14e90941f009d13d5405524bb4e9a52536f754a445ea9d1396017789ff402b64ccbb95d47e2400f0eeff84bf4302182e87842a5e11b8a486f6281a93581b41b8ba47e0c69db31019bddd3547cfd8ddca13469bd2ab0d909bdb2d83c318e887f2206ad6629f18334ba52d89ba8ec9704c48930984e5b41a3a189f7caa4977273eb29791c77a172f79a889233431c1f49b986ab4b3537672f4bf8f7c35b1020d5c609df19692750490b79e2616c6af669e285d5e560fa0144b2557cf0f192ada631eb529188802b2e2069425f25e0633b7116cffcc4e35e806ba2e85ffdbb962b600affb102c3bb2c1ffe4188179288a8eb371f8a9563412bbe317920fd92352b9fe8a3fa44ca19bd525fbd3477f12ca2ca6724bf02712bb3cc73a5013b7fcd0cb04d21bc57ff9fa4b639321203fac4901dd4f9ec3af35362f8955e00e0bfa7bbda03d5abff664798fd28758fd3f89587042e3a7aa47de9f9f897dfd9e8afdbd21e79970c9c65f53c62b8103de6f552c7ad7b48149ea41f6f714fbaa1d5587528b26da5b1aade1ad017db27c9544d3af4ae3976466968b324f4b64619adfb2e290a3364af3ce9d92b2fa0e7b9adc9a5dda4350b4070538fd3d689acba8f391ff2697c263ae7ea3d894074051ff9deda6a5c0b458e22c1664c614f3e0ec5d62949bfbd79bc32500020eb3fe7cd2242cddc73819794bf112f355cd81bb65d29f1c9bdbc9a9458758dcac0a70b28e41e4269ceb132227840ccd2e19aeeee5afc532587ce82a9e1c544fffe3db1dd2b8825bf8c2ffe46b5fb4d9fff5b31151b8c43b55032d5fed9011ef30f4c06371c084eb3a06858e002d34ea4dcb56970eb4bf8817ada1fd1917a35b3c84d3eb23b479d0c73937dddffdcb08667ffde4f6c38bd2cec3df4e352afedeb7570b5122546b9b8638649023d5eea66fa3153c87861291a135c741a6000da6752488356284731ff8937ee86f61f9f0c46212c44961e883721e8f1ccebde6e02650158abd9ebe3d214db766d6c268cf1dbd5038e7ee5675229c66d2df0adc34fa0ea93120cb548d8968fa0bf043960667674553e5fe1eb8140e7521a839eaead22f3b099e79d88338244b7c1386cbee45648ff753231d48e54a16171c38696d9d4fb83de3c92fbd616b7f5077fbb87674e773c455bd43a2f7041013a013cc6daa3c53aec9546514010face48690e2f08b29c1cb4e094d770c92d4728d36222e20360147fb481626774055c9f7f099299dbe8651dd92d3f76914f4a074dd736b97f470ed20c84ef1d830c825a1828c28f624618b5b0ba05fdd51129ab2c45d17de77bfb813ed4c008c074a77723679598dae83a9427328224c5e92f03120a0738fab0f28361de4a5b6b023256ede68a1e0569b6301ab85e14ec328772fe438e717aa5b8b1e25e61b6799cf422e8fb436e87e363a485400c03ec4c33264e293d41cd16cedb35d09748317d59babdcc1643ef959fdeb2f1fc3309a8d1a5cce45631bd2f7ae4bcd5a3e1f88513c64dcc7bafc5917c1be4b5d08dccb148e2363b225280bce3cdb0a0b29ea7f652b852331c4d0317b2365488e22f5113549c3559fe1a9ff0bda90d78a2b143514f4559fce3072754240a7670bf945b8d01572be554fc29d1a420c37b49a918dd1dfa639bd5cc4850bbd545a50b63d8281bab967f361cd4c42e306a931ae279fb60ba93282b852b88263cea1f17eb7e287ff42fff55e3a12def0c866ac3298a5fcff9ed1d674e3d2df60a4bbc7728f0368ddd3ee656e5afa1b715eab56509bc81a061b0c2365119387491f50ed5f8e307385935f4f8ec2d479394e892dc8a29147f4120fcc87ebdaf332da09d58e95e45f324a7115cab44af6807b93453aa1c6ff3e05084d2767eeafb27f0876603cb189c8e93d53d0671278a051784407b7cf0105e4a0ef3459d5e04b8966061373154d0c432591e96812f0b9b3f187b9301125f8ea7ef5046243323ca0e254be3f9e13a8d1241310e9eedb05cd81c0a3e300d5767bf2dd7904bd87a3ad4052238b626a81aa0f4861d9448404c3946ae85f72f5757ebf8a0f688ea1273d813498346783fa9b92dc19604595038e971811733662c4c32701f40c022aa0f5a186ae9bfc128fe0716dcb6631b33d3b9a9f779515a89c58b06ef6c4b358f1c185be3996aa87afd4725d86e1c96a32572eb5024d54201ac5cd15fc93da7ed10d105e566b5244f48c248a1b49a53fe7017a2bdbeb5e889c4a17afa7b39d4a56cea162898a88e517e7d76637724431c057b32e55978def39a5f6118131648a10bc45170950645e6a518b3c227ef59defd911901cdc9d398ece0d96f62bfb230a6e932c2d2e5c6e514307fdb34f137afe902b02819175ed404ab82c6f993ca1e84f2966b318d71876d61658fcccb9b51cdf6a8c816ae455a00a0ae50b5e1ecea549efce48a516f5ac7c4937a8d0c3da1a8f001664f302a2b702397db0cbeea05ca77dfacfa710422ae10d9c489aac55792b5ccb1782543ff49a335a67215320b6197dee008228fb213c2ce2ad6455bdd79628dbabab644bf264b00a49fcb4d6e9bee8bc0704ac854b4fa0327c50f0a4ad96a564f8d2dccacc0a7304a8e6269cfdec057482a48f574b7b05ff70a91d92f6c8524609af439654d17e550c23b110747217a1bdca2838638f8e79c5c9acb4853c19201697ad90e54a876875761b8369dcd7906da46922a50154ae49d2b8c69275ef28463e364a66f0d131f391d83b938548adda3d7146eb89b7c08b572294726b1085a06d6d92336cc22f0b4356bcfccdbd339596c60016a9ea633fd808cf7046f8e108de003ea4eb4735a24e363d95143f8d883a0eb54fd6489f26460dab8be7f8e13dfcd11f1eaa24760d1e1cdc432798be7ac2632bb50d7e0122168b45e5f0b0279600625d243db9d8cdb7d0cfe294f99b95ac9642077daf6fec81dd9da604a53022234e83ff43f5a20a6e5ad10eba38817a967c167a24409d1109b322db50e4b1858ae956911543a24108a8919eadf7eef23c3af8feb38a58546f0027e006d9556d30e5d3e1c21ecdfc20dfd1357961377e94567f935d65459dfe6f74232dda4939fe090ebe003d284483a44ff36d93a1cb5ea09f44eac81fc15f89a6520c4d29faba375599635825edfdf89437d701c6c30d8dac4a23d4827522a13d9fb146bfd0e9be58c67d81be8c1022c4464a9c8a2d6cff5b7877537883f1dbf1b021f2eaa2214607c7133bb54d3ca4f2d58ddeb2a6136fefc6d10451638635b2bc5bc77d31f6fceec9e91e8faf6e527f10721c26e525cb49eab0ed68360650041e7aa24b08f5d3087b3022161f1f050e57938e94b3de9789f4382c37468ab69fd414e84ddfc90c6fe5b173aa1afa65235688375545812be5ce848e72f2fc4b69607657eec2882359e5b01f19943c0282e03337c2f4451602987502b44a70588c3708f145a268c39dc58231247ef76fc19144422170695ce0e720000935e7009b8b549fc6b8ab6edebb62383c8cbeca9b0dd1d209c4ef54e9db2a288101aa81cf4728e94b71161075a792b35427fd5a5efa4d1b88d803731977e3fe4efe7b10490b7984123b48d0853f57e2246ddea04896cca6d59feeb5c9b75466d118d0d9335b53682bbef8c8e57051f836a9d650799682c6d843e004d34ff381f61b84b19cc9c042a81d7ad583058594d3ae9757d737a5dbfaedf23a73345f94feb8cc6d150ba9adbb6dd77dbee6f2ef1a0d5ba8aefe633e4870290074350008437b99dde7358823e2498d37b2266cf198a9b788cc60cad0e6d641bd9441a217bef2de50eaa0a650a260b879cccbc950e97abaeb22e989530067b5b0963a8fce48060c121e777f886d5f6549fdc01f8b23ce57d7d95cd34d0b5fd71dae190dbc172697db0bcad0f1ddea653ef63b152879bded7c185d589977b0c2b73b03af1da53fb3ef7be95974c999eadfd92a09229f7a393beecd347a16c7239d8aa7e95ea31d90e7e6685d0f155319827b99c182ccb5c5a1c255377e1d45b78b06152fc9117a5ea3c9cbde674fcaa3397a3e794311ec43cd563c53c1f31577d636e07ea52d6b823e6269bdd7469511b56633c78b18ccb813a2627733f9c2c8cf924972385655eb6d291bacb5d2c6c566ac73c66a5953046de4071663f25aeea26bee9df0ee6f18d51797fffb8a647a1d648a724fa4b2e07eade4a93d7f605c66378f41e2da25804612ee93e3974bb664555b762c9c0cc32166bed3793e870974fcfc588d3e914818e65bc15cbed51df3e9d79e39366c54bd151a2480371b29497bacafb76eeb758472dfe750d61b49694c42e7f03bbfcce65ef93bf2d69f69b6e9d993a7b3751e5e5f094673215593daebe7a1472f1be93f5563a648ebacc519f5174f3936f0e2f2f3e188f4ada8a69f2529ff0da6f3d5fd3481cd27d94a85dac402969fea655c8dd70f1d5b794c74c2f618b00ff20931affa0105482ab3f081404a7a8f9d7c325c02ce2ba0dbfd647e3b6fde4b51fbb78234e87763be36eec7097a73e0365b0cb48b752e7a3b81ce696b7c30de0c9ebf0641c08afe64178ae1fc023c07778356a783b4e00ef00777941bcc603e2323c1d979e01be83d7fa003cec2df994c3f2c4cc5c2b370988c5ead4f3316983c05e4f3f404c62cc639c9e79a72128414ce81252482a33ecc2d8de38bd0c7665392c3467a189462e0bcb216461b1d964f9a7332157695c8af35880c74f18c0d67dfc5c01b76e1e3f4d005b34b3043f3ca6ccf899c1030d272c134fa3af008258265e0087ddb2f1ef86c5cecffe71c6f2d3e5e9101422443ef4609383cfede0f78ccdf193f4415fafb195c132d2c8eb488c790cfa53761c39ec8d3892f18c1e87fd68dcd35f6ed84fde13bd8c530ba0bb516fd2cbe2f1c530ec97a55a192c73b20dc4329409e93c2c01c6c4fff0648665b2dfc41c4fde86378017c0ab711c8f00bf9eeb375ecd693c19dfa1a2bc8f2feae519266350e667a7633206e5bf3cc6ed8e97f36f9a459e30398bb4853feca24229f6eb780ac42eda04e8c6d3207651273c5c256809d0865e01c63061177d22c42e3ae4c359c809bb28119669c22e0ac5e63c5c01da4827c09827ec92422c13dfc3bbc9c72ad84a79bf05b6aa8b1669136ca9bcafc116e9dd27411735025d74f4d2734e1ab308cb444ad4bd9c8e9dde3b581d9895c132fcd3699e5d5ec6583010dd0eb18b1681c22e6a8408bbe88b659cc02e7ac407fb75ec01ca8d36f66b19ecc29ecd79596ef38fc695d7e9cbf21827400d976782ac7e8da741563fe36ef07db0d41ce376d4cba745d8858232bd72fb2d2428d32fc9f02264f5e98b5d1894e9b7cebcd86dec47e3667f1900f61897c12eb65f8d94c1c2e5c88dc6e37b62be9837efe54be3c1971bb95f7616efdbb92c37dd4a9991f14f871e96c1e1f68b95967f2f4aaccfeab68bdb4b58a653b7ed2719c37e83b6f7c963ded7cf5efaa79d2b75fabe58192c933d86f7c9cbe2b93cf352df5297c12e785377f1ac8c2e1ab9b4875d14c90e97a1845d74063eeca249586609bba813b145c92df9e460c98da74874d0e13b20c18860439aba01b2e2491e4d03b3e279a0399801972487c75327d8073f6606373ec98d1c7b3836646536f62811b2d26c54727320fa281ba600bc23b04bc3fba60b6efc0cef9b34b8115e94076fbbb02f8f3d5149b76cabacd024a25488c0092a85a4100b11bd787bdf0fb63f4ef7c55f98eee2cce5385d176f0fc8e9bae03e4bdfe5c529bdedbb645c0ed7ed721dcecfb82058def653fde5d27e2bcc46273e809c7cf0e94f6fbb3a7da71576ceec0ab339e6b3df98364776ec37328bf1fbf227efcb0ee306507d1e00b3a66f5c65eaa9d31d6d57f34dbdd57cf62f3bd9d5b4f3ab1ca89f7e0375b23ba7cfdf38edfcb89d03a63a3f65330d746c7f9c4c87dc0ed531eb43f5697dd8ff385dfaf63eb63f4e5765ed619c723a5e9c7e7239ac853a589d7859ce56aeac4ebc2e7779bfb92058ecc7d7e5fdcda529958d5d66edd2e720a895965bb293c8d118e592aedfa459313a911997a3adcb8bbbb89ca3ff7ef4e5044257b91c7d97dfc41cdef492cbe1a4f7fdb812b64d1d764bf58962186bbfecca94a54436e583bbcb9bd3f1e22e672e0777976f1bf65586d9d5e9288cf3be9dcba14ed3bb811de3b894d5e9fb635e97c7f8c695f33e974f60e762bfb17357d957f3a7efdcccae504f7de74a2f3b7bf2c7a54f7937e4f9282f07bd91e5c8e4b7ac52cf458579f072df7c8cabbc4f89ebb2a25fe590cf7e435a08a95de5e0d3df60fbf5b81f8c4ffbe3745d247718dfb9f6dbb92e96fb8bc7f03e1b17c673f0be1f17c68d1a38d1262ba373f176d148f07df1e237ed2199419223181358118c0811df17677e71617c83e1c9219f6e95437e851d9941921546042b62a459fde2a7fb2267462109e574fb11c6992f8c0ec6279703a3f984f3c42a47afe490558c4201797decdc9d0bafe74922920959245e71e3fbfc3e5b1f7c899d2f665706d8b9fd1d1fb2088b4b6d8cf2832e0ad12850748cf34527f7498412896eb4e2c6b3cfc7dde47d3bd7d41e43c1321cc771bfe929829cc41e242cb9b0c985530411ddad7dc4ca52ca96cd7d3e7bf2478d2be5574e672ebd997f92e6ccfca633cca75939b29bafd32c594963a7186657d40a9e6e65a744dcc2526929d1c86ef59d838ebbe9322b371d8223c49e2a7d7cb4d3e5b793277d644f0abad33fd9a304729b10c6198d4ea3401b79efca34225dae3a9d51a8a7bea13c1a4547bc32056fe5725257ce22cd8a77f1e62b42d18d4ea360af4883c3e3312491a60525cab20c957abcf471399d2ea594d2e527295dacec691612f2ca6f95cb41414e4a798cbb215f56fe72788700c05bd8582484f5281486ee743e0eff62d7964674d8639645a05b9de5dbacac48d7d0592687e490c6d2a759d1ca1eb659864926b2c232cf28f38a0c95cd99fae9dbd69fbccc975267ce7f948868e372f8e445212f3a39425e1d2074988f54d2ac287b306f5ed1ac9892591dce9c8d2c91b71a22001f7d6493c0b9892b295f7942941259ef4b3900bc151f07243a08e2c1197d934aba8584bc7df9e8c3e54879fbe5cddd7879e9897205cb933ee802f0178f02f2fa48b90e9412a144640f43183999cca019247b6473475a07efeba73c00de2afb88124dc6a1445249a7232f29ce68a0636156044b22a557b04845ddcab0e8d644037449a132c0161d03bb640f18b825bd005d33680bb0c543ec8a422ca30568139d0063e285d420bf707188a2c8a21b4f3136894e8428511125e22f36e956bd4d84b00c5c6c09214a06c88a9fbff192a681bae162436ebceca16cb8919ec109d0868e01c6b08b5a41b1903d140d3308041ff000910e7060034396d04006309e2cdee0062cdac0863514a9210d68b8e20c6628434b49066813631c03b4694a44c5d08f6de5d0b4a25b17011418663d5d8faae76f09a0f5cf368d19565829e39f6c29a56cf927dfd2a351a4949d0aa551bc7f6da5090bb21b8b1a92c8075ddb214924872411144a1455aa2c939743cd8af2146b2211264a223944d42d28e54848e828fbb166308ac54f255df6931d791d25c20809492b54d331f3e2904b6a4507352b7e46d7d2ca4ed2287c6a45b3a2cc9ac995344ab7d806990dbab883ea73a336a253138aaccb9a902674e3a507532b3f548966257a67d3fa47069b94124a283bc628e79c2a2a634bb3608c10622dcd523164d91c639c72cef938639c2308310d420daae69ca766c1db487bc61aa76cc948e7e79c4d19ca4c360b7e8efa8310c2f8c5286394347e598c91610cfc8cb2eb4e2a2a89c5ac47acc919a5e5c8cd6ad67d69167ccb968c7d755a47cc228b764529e3a58431c60863dc46190f1c3822679e3b476c9248747a54b6fc8575103949545111820a0452528290120193698949025d274507a4548aa26404890404d2111ce7c34da0d61f549d6d8362a380a6f9404362345232aa4096f5200b82613cc02c40e90ee8052e9d493070a9d4811422630e6212b19f68253a723918bf69766c4a4ab9877be2a5ddd33d34f6c41e297b2627256721866198d47a22dd4173e6247139a86523a49e12d4304949a614958e53982573ec39a15029367174dbb62959b2395b70399995d1cd6c6e735a1a3333d8ca0a77448e7ca6c2a69450605ec4e28ab91d92a5c6a02c167d5368d32fac18339139b28c5c3c56cfc21d91b37d44bf73b9ab6df7b19da785df5ab6f337de56dbc6e18039367bea7a3a96114e49c2208c69c11263cf4923d16b2f96e828eb9cdc11394d90224db36a50552d50a60fe5ad1e0fe1611e668289e800f184043142c77dabd70022867e2ca08793d80ce524cd8931f5e8bcf26eb1ceca47f8f5227953cec73927c6e598968d442ec245e66f3a6a993622d9272236c27808318a3424085ff26e224cd738a166e36dabf0aa9673124e62b201e731a9d2989991afdc1139f15c56bb78ae095527a18bf7c21be3e79993f125c997e3707039a28d31378ec5aa19576774db39ee881cedd95f581a0c6ec300caf43f8f238967c032fd1ab00e1aa61ffbdce71a34bbd889d4859ca42727bb356d733fc4ea1d2193787cb34cfbf4a16987777b0a97b359191ddf2e7239347b925d2749f37c27a94268a3d5d13cc748286b9f5ab0c1a629e17c59158adcaf3bd170c2109529949064feb8f2544f174229a9704ac2e97492599ca77dcaec27b9bbf2a4921076f22a99792aaf6b96c42a7727959c431d1fc631c82074900d5df6db26e64c4db36e224c6f307a7c8e23c68ca35bfdec5bf470340b7bc48e6156d5ac6e55b7601344bc26e66d34cdcc6eba95d91f7ea0d8c8e20f3a88451e1e9e1b9fc577b44dccd36fd1fb2abcc428b5d130dd375decd8316252d82874dd324a6619d45ab97fd8cd9e758b547af6ae5bddb34f096de8b3947bb5c67aeb99fbc174ec5be476c86bff61ce3927e576743f911ebb9f7eb2dd0e956bd7ac8431d17e51b3115ec54bf1be1ff783ff71627669ef6bde8432b0b3da4b9ec6d9d63c6ff3563fd46f87319b853066b3ab1cf5db6f54bbd548479a97c5950eecd933acb91d3207fdb45275e3d42cfac4c687340448704687cf1aa7efaa3f2f3d6c9b803b2f9999999919889a1a3cbdccabf0844d4ae7ec2270a0888c4bd8e0cb96c9195d8f662d200a1d113d209406f0e0f7e0d30246f6fb7147efe6affe38ddd1c823a247b3f83fe217d0307ced4494b6cabd478fb647b388985474a37fd0c90246968806b04b0828c3e70d42f9d1307ccde3724adf4a5e11cdc2ce7d203cba8436db47f6d3895bf48014b1a48b3ffa6e5c470c3b92248c19fda6b7d1f99d07216bb483c3e2f8e6edfb4dec3f30503aff47b74a5646372a8dac4ebc6d573a4848441297f5c5d11f062a0e8ba359bcd94f88b6801eb1b3c34c077d1fb340d89ac1201c40d4e0ee16618925b73bee2e4fa6bd80b2e9335a3a67e9329b991c3173a956e6e9f18cb21944f6fa9b9ed9668d9bc98f4696594aad8c3927fd7ce47266e6753c1a56faa885c71d5ef5956dfb9cdcd2e2733badabd7436e470bfb756b18cfe67d7ceb6bbd8695feb558de74f0dc2e8988309da272185139669c73ae2ee30d5abf713b2a13f1c27eaaebc2bec57ed995e122ae6ccb3f6a571f713b785ac35cd88f06d7b2921bbddbbc5b0649dde99937c3323791c5bb2d3cee5bac32d83533538cdb68ca4c078d237ef79594fd543729f634eb4a263b99794a87513b8ca4fa6ffba7a3a3def4865da5d2acfdb2b9fdd399346e9437b6fb2861cc537a96752592fd68705506bb361974e4c949a1c72e78e50bb59371a4ad72689fbfa159d82c2dcb1e776ea6d3975a192c1325941134bf185bb0abfd7efc40a7f7fdb8b172bf819db3b0d6df90af36c6b9d96fe7632971e3e50b29cce0e35739b0d3dfc0ece9c2efc8c7df90968fc5a8e4743ab5851042d810b2921c9c9aa65fe331db75d6dc307dec34b29adbd5f84bf730ba8ebc4d7c3498bb412dcfdc693f0cdeba51f6a1136bec19f52236d9e732d165259162d87c366dc62d3397b387da3d8cec9bc5debc8930b33ca165c578b3f84af00ed618106adcfe88aa3089f5c5bae3a99d529eba9a4119257c8f9826d960ab8346c0c2933bfa086e190f2aff604eff3cd4bf1697b944e24e978fb28f270b238c8aad71e9b794f86bbff4379de2c16bea4a24af7627efdbb99fa36bded722478d3b2350e3ce67198532da8ca404efb494af6dc58750ae8c7221841042080f21843538ba75206a600d28618c66b19a05191e422a80e0216c276c30015dbc425e71a594523ae00344ee97014109151e8872bf2c8a2134080eba2262c3a220ddca3eb517016d78b3548c80c8e4ec3713a459fd19b57ff19c0dd2acd1b3f820cd629e78213c31160163b8086813e3dd608cf9f5ddbe79ccc379418ae22bd4e93b75f810a45b5cfc4d0789342cef7cd49a086d09e4424622206181422ab57facb85fd64b5cf86d723ab4af7464dfbe591f37abb68b58e83a4e7231b26ecf8c8e7010e9336311cdfa01a459fd229ad54ca45b41fa42ba01ddaab75f44ff681a8823a4832cd17d5048081e369ad5fd1add3a95dd5072aa7ba1844541282cdaa99c726483ad52458f001d9c220945a2c8dc299240e4089decc575ba2b1f553fa5e89c937e524a29cdb0542a95b24ca42094f142f804c81a313fe129f8f41221ace330a48b6078875c8e9755189771482773e696674fca8d4a29314a29f6ceb81cb9cd642d65d08e4ea210f378a0fba2108ddb341a6996948dbd67286dd9b49b16155d980ba74002931b8d48ef74c851192c23f994e1e9b2bbfb2465f4e9d81395acd8afc65df9146a016156568e3a8c2b5ff9a7ba75e537ad5245d43c9d4ea8e9e26265b0cc3c7b37f1e4b17c7a76c5a652a928ba959b68bd6945eafb51e3ce7c05074f42d1e1f009d4a12e04d3bf038944fa36a3535d12c18addfe842e4a0465e29bf35ca8e8b88fbc6d8aeef4d44de76fa6cb4b6893c3e5924ea59244e8a04a75c8e5f8553750e74b1d2a0cbbcb993be67192c8c5934339781cb99cd34f9fd1f5e4724e4dd0fba3b66d62347fa8154d33ba10203ad747ff47bdaaa3e845b10caaabcb0f2817d508b3d449b7dae5a86f2e5e741285e610da3631bacb0f7cd45dde3423c8a12c25925174cf22cbb78c61a7bc93f7eddcc48e30878cbb669daeca8bf9067be882b658d9beff65d7c5e99b0b827b33cb639ced97c3a9b5d189f5d14fbddb53e9505da63c89fa7151dfb26397dc0f9c85e772e9a5ce9ecb21e61dcb300b73acfe927a7b74f597bfa4be1272698eec98f44ee71f302037e562bf1f3775e670b08ab37d1d36ba6dcce548f1310f75fe4e1886fded61f49bccb22c835c9665ec7255b6367777d9b819777b71d27df1254d596b069d98f919e9f1752e87f98526543a4a08e9a69d2d00cd751be7cdb8db8c6e83e996db9442f7d1a2cc088ca93ca5a6914b1a26025d19046dda42182399348b48b71ae38934a547ce34d07dc381cba92e12a8590c9bc541cd5a31a3cec374d4f9282be4094ed9f81252ba690787ed17917498a45a0ce3542649e1c3f4566a868ed41b2d6a52d4b8add3b8adab3f5d4d5f542297342b56aedbb49626252b04944aa49265914a96156124500b20fe63298138250863f8858b0f51ba0b9b84e9a9bbb0291f8c08c6042dc27830231af7036322f5e9d6d73f41dd6a614696d488552295877d9a45b50ecbb48e398ec46d15e3a40c370f7589cad3dc3de53210779b5024537c655034285c0238be1b3d7724313777d5b8adab1ab775dddd74d35a33995eda501b0af5214a37a14efa10a893ac90215459f8600a36e090ac2ac26cff542613aa14934427501e1228dd5ab1d5a04425d0a6c36c54d2598c8716356bbe721ba954e9959d86c94ec3b8ad4e1e58f062d4e5a95c9050277fbad2499a908b431c1dddb5ce6a446d570830a53e44123689d24d4d2a6ddbfbd5270add669beb2ac98343ecd16eeb362c25856e9d46b74e2371984a6daf0201c6440163a4a84b7e504fc284faa759a1c203f5d29320ddf424502f5d85cb59218074d38740bdf48db90f513aea9ad08befe0c46b4e228d8bf35db8f80b2b0475171742b2429ee0413aca0a5181010d438870483632926665248f44fa4dbbb02bbe4dd9d45f7c0817b73689d25dfc850b9b84e929ab39b93837310dea34a59b34a26ead72b4b6434b4137de2474e367142814baf5f1ab6aa75a3d7a37cda3b7211fa941cd62d2e4095d44f26ad269af0f6262eb13ba9eae72dba96a1e7637de50355535afdeaddb8afe61e60a6d88005dfdf8a602daccb7683bd9fa9238e3ba96b86933b869c82d6b393d9e8b02bb54e7867004263f8052f08b83827b4113d78914046199d81c0a60161db86a68c30dcbc4771aa017201654e4b672499b7d65aff85ab91f2dca981bd1ae4ace341a49dce588a6604ad8d58365e2a90005abc81555148a562bd5a733ce868eba204f28ba912a3d5ae66963a9edc14e5557b81bf3f2e91a927023b4e93b2103d003300bed4524c098f88da56e5ed61ea4a24815ba1b271cd578d5528df07382ed45edbcca21915d7ecd6c946204a67292ea8b59805f9c4213604482f78f758a710503c6ffab545fadbeb2f296969fbcc36069a15aadb49cb84f429a794e364851d7d7cc46292ab2e195fd66aca3da56b94c004718a104cfe5a8c65b4dc5414dc235268930f1af8a862a06f8552ef8fc541f6e487c0545244057165f5109914913ce8bb7eb3712dfca356e4ea4a89c5a8e187d05c6fdaa4fe9f1d596a5858a231260a8b8d5552d5858be91522f980f83a5856ab571b51962effe41273ffc7ac1d7c641228d26d465292a278fb5e2191184878787877011085cb00269112d2ad9ea136144d07db4e866936a925faf57d66a12cfa8342c05fb3009dbded9a4db2377c404f87627751e5f2937ee5723d95452bed2f2f8ea06e86af1f89a05b4511d289b95486aff3824479a33d24cdcc8f3af3e61018bfd3236c16506c1e50b61578bf307df209758fde30e7c1dc7337c5d15e01378280c2dffe015e016bc70192aa1071fa838c2caf935d8a5727e0b93fad5fd0646a90d753683449aca83410601a7f2e413ba123379884955d9369eceaba46eb395bdec4ac9432e4d944ef29060b67549b382a0ddad522c9a35c4ff625cfe5e2ec3545b7d608479b55f06495ec569614dc8d6eaf16d52b75a4a78d8856129d0c0c596e0a11b0bbbdb388c769b566333baf1073e1900a93403a744c54fe5b42635bb240fe2709c26a439c96e3cb700daf065d2f6d1a21269aba2d39c6842cdd28460c0630322581169532235d7c06033a9d90957259578068900b00d3708fdb991044ff0b71297b83726100ad1501468d38fb1c88dd10337c60cf41a60194631ce8cd26bdabb1700186942f1954daa755b9f6b4d4823c38b5fcc537940203756855cd735926eadecc7575b798d44a75b1de1aacf8a52bb4200eaa90f617ac92651bae9299b845dd1bbf80e4e12a6a3ec8ada95025077711ea9bf38fd0b2be4096a79a0eec20a211df5d47770200ef78824e56942af4dfe74a627417ae92dbe75ad3e424ca4b7e07256dce185dc8ab343905eb2f115e32bd2d0a2967f30545f762b8daaf8ea9f4af413ab4f8bfd60a8d8149b7533561f229547b3f0aaaf3e1ebc8f87fbc5d7aa03c0e5747da45b2c8f6f24dd825c0e0b8b2769703d0dee46addf604ade13fd8dd49b0eb5e4419c6e613fcd8acbdbd01017a956b0e7c0e5d0e7b0c9d4ea236f908a861bab186eac5ce8aa80428dc20da969569d4ee8ea56d3ac98245ef5737d5e140b8c8716d56c325c96759d0c2906c56f736287da79f40bf11569b80b0c138362166e8c53b83136212261fe63f55ff115b7c83e91a65f11a60b4c43df402d66559dfd60dc8f7dba6ff623a55ed4370ff10e95e70d4cd33f3060a8a2665f9dfd48f7a345dcb488a3459516ed108317c0fdd33ffdd33f44f4e05e1fc3b1d0ea135f42f4c6e07ee89b19813140cdaaa2eba0fe6956af8005b085c1960c20cd4d7c5571230e6e1058544fb11b950ec7faf90fd703c907578dd6b1d777c8135c7b4864f3f6ab8aee8102eb4001d2ac28b1fa344ba759f1409ad54d401a7ebd7a05cd827e016c1924e91f20d1c1dcae78bde6f4b0cefbc08daf26b8f1dc086ebc2694821b8fbde0c6266e8c2653e949a06eb24324417aa9abaf6d3bf9d3a12cc9d2a2162a48d0815b6b1796b8b0ab47803441224c64977c7c8da24a015badeef1950ad8a2e76102c7b127bbb0c4ddba72ecc12e2c71f9cc58923602d390ac1685a3bed9d4e91f09a5f22f654af9f7a26421c38cde3f240b1966fbb783160586412a227440d84176b21fa953b15f4a9562bf1707c0fd342166edc0136162ac4e54229e4853bf0061e2895c2e03aa35dc789e5a86ca93655da752fd4de86acf966456d165762b9a768b521f24d2f44f51ff449a1eac75dc6f9a7d7cd807884eb7b657ccd3ba538f96184eee26a3b2d7739b424dd8877f90dcda5de39e411a88c359ae4338be89f0d4575b8710e9164715577d220cb5f1d54898d0dd6cd50ea9447896408bb025601b602b7b3ccd02b626bb2a1ba0cd0d6e7c14c38d67105c214ff028dd749315427a7dfd8964577c04c65488f3b5bcde5a842018e16a5ead71ab8c3c3837bdcda898c7976a1ea624dece9b7167151db34fb37a344bf3b84b3d48050948d0719ccf92669ddf47fa9cad3ef5a759b16d2369565dd2af1f8efb76eedc7dd4737c559f5a7fba55eb468b36fbd5ead59fea5397549fbaa45bfc86f76e365c4e770d12fe6956bf605111133afe2acf4fb7be7edd25dd6afbd52240fdead712283f49d8b5456199782ec936a3cb040005c091b4694230b8f19a50f5a98fbff9e99f52943aa3db68b86deb8ad4a0fad33435344d6a8244b2740db40d30060b7953f4c28a64addae21030c2a93f1126be55d4f1458b686a579ff8aa3edd5d02f6806b9ce63b0468d3cd2126d5e709338536d8e33928401b6e4dcb7020831207020b3913fc408a2140c1a1807b41e53476698faf3ef50c6148831ada90c516fed528dc58a550052cdc587da010addf24941c497cbea4934836be22cc0c016b1d57378c6e5e05428dc2ab52c09825cd8ab7de70f4d74653d13f4ba00db402c402b4c91e5f830069e8fdaa4fb7b83a4474391e2caeb83787b08a1b2b146e7c3cd2acd821892fae09bb201537724ab8917bc28de7947046b81efce370702327831b218ce9ecd799e046ab092df10329860005f7020e051c0bb814dcf87a05bb468faf4d9a86164598a02a547d7e6cb5e24279f2d534dcaa8636d42caacf66a372debcb567d4255c7faacf139dd484369c5a801c98c391a4459aa882f80ab08482105e5e18233b0823f639b191379a33ce11166777f7c426c5a68c37415db7fd4a3676571202c6683f29e5c4e69cb3bdcfbb8d4dac679c18a4c97806ceee8e33c68e1383240863b4e6d18c9cec1867742c6577632daeaa9be3658c0da36972774378d28c31c619e78c9299d91e462c758b67582ceaf810c67ca40b7fe12b8c81564ac9b0a594524a29a56c96568592a28c524612090a1bd8b6520bac45e08f24d23571868b9a7561bc6c128684a3c847a2dfd82ed3267108601c8e268035db9535c7081f260761cc462bc55e6e561a6d32f6c61bc4489f1114c3b02963638c61184782d3064049842e5092a00b2fe12988267854808e6816097a7d4096aae5440361b7b457d5d44e0b616e20d17f740bc69dee660291a0977f040f5d24ea659b2398e71ae1c3e576481e9e8e87e74668779a1180018dc08742a1e1c412152a48802455434a0fd5a1067027eaf63f17cb3f1ee60ed7c5bf99dbe25f0e771e4e983b55ff5ceefcefb477b6dc699aa7eeab5476ac88ee2e542d2d94f73de0fa485d9ed52c168f47102aef0766f5573c1f20abdf8a314323f5e9a58ef26aba956a71532c3765bf7912eaf25f71c05df1be075c393da88231a4dfb47cc03de5a88a50f1bad38f14af76406ed5b95206217dca6925a40226e1f6b59a9a66a611a871ad842b23356cdda93b75a778d3d2047f22e207650cba2fbb0c67b8cbec977506b3e6be020808c80a51302178f4108283d80933e12797a1100b08217808d12ce6d12c1b5c3ce6f168181bdd8217f37864ef61035b7fbf07d8f2de03b87d1ae82242c6edcf40570374b87d18e82aa22d84f1e27d1c60cb450bfb9e400bed760ab680a4c096eafd12740559710961196e0874551ead10cdead1854e8587ed4144038a601733b11a22d23fd8c54526005b9c02231d845d7c8491f059ac383283ee7833797cd948b73849a700b618079075845ddcf3351276b19218b04f143086f93c845dbc845dfcc3324cb08b815886f94b86fc0019808bdcbeb51e5f5ec2874b2edfbbc75060bc7061801f201c3ee24dff1ae8aabc3d959b4ea56b995cced72ffd2696bcafaf8fd2e34ddea7c42db5b4d82f5e89eb23be14df9d71005b3ab887cf2bcbd27389d80a90c55ff1380acce2a778cc04257c8ec27ecd3e6c390b90c5677bb24a2e93ce1dda98c06f82ba1559c57e7dd331ee877e77533c862cd36f4c25fb6120e372c8db7d1b3134d91b1ba5f32997532a79369ac5858f9f70990a972300816ec737048240d706fcb1d1ad296367aa47599968c03c8523e4fd316382191a353333ac183334669ad533339333a4d734eb728c1a385c0ec0e556ea1fcbe5eff7e6c56595dbe2d86db00cf73b76e160192019ed40376a513a56fa4b42b08c0d760931000ed553da64bfee805ebac5ef2e5b1f9d102a21063880597d940701c8d2e91cfa3c84f459da531a8beeec757fb7bab6ff21f2c724b88594fb41272dee079d1c21efcc4c4d363363528277a6ccd280cd26a0344104ced8dca72cbbaaf341f768bf8ced14e2fa88ff317347bffca199117ea0b85ff6d50b3780a4477bf4a8fde24542de0fc8d591390dd39fbfa182b9850eca6efe35774a4169f046c4856f4fa582188d66c5d175e69d353337c608676ab219c8351e0d6869342bb2b5353333ac9e99616de4d17ee96e39690e8080a4ca854518d253821072ef4c9f6f81adeef328e852addc79136ca57c5e832d95cf791274b56070f63fe87a61199de9f92071a0e39ba9b4a3ecc99369310120cb46e368561f002ddbfbafefbf946c0b257d7a2456b748a42f93dfb93372333e9bdbd7fa2316764c67de699198575a79e2f9d3972da594524a29a594524a29a594524a5bc39ae96477f78c4e9e470fb6375216198ac18d57c116e300e2e10f14006c8d4e23ca80ae8e655adc89652296358dcae33f006cda61240a22848923ac05f0a8955d353a76dd9cd8652308bb705c200a69189d23451800478964538260a1fba0900e09ae096ebcc9ee40567c57e34721b8f11c078e7ce0e3257cb002a08d124258269e890d10b5b8dce38370f6ebd7d16fa2c6a388db0fc29a875ccb99c862abba42f7c1a220b1281661728482ad34036de451a79b60151d34421704a738f94084cfe6c2afe67e336e0bcbb40bfe0bc085ae0b63c0567689652bdabb43790c61e64f9e490237bebb547237a972d77ff77262a9eec6f5a3af97f213d8b9744685464a4d8ca89262ea4a242ec693ec375f7dccc8fd30cf2941825ceb0cbb68b08cacc96af467689d814eb89be703b2fa9a7703b2e010146e1f834bb850093fd8f0f1a48829dc7e5771fbd4427913654a6f6e90546cc08a0e02187e6a60cb104bc2ec33346ad48e880644612686743875fb5c04c90c9c1052840f110df8a1130488843f940935353540345831fea26ae94e0d3369704498182f2da73b71449a2011667e3a410224c20e887061d6752ad55fc41ac03c8c9693c098f99b9e4fba2f6baf832c2384f44cc24a788890f96227ee642277cad8731ebe4cc9f445b143da5837d60263244796c2d0e97ce47494ae24c2e731697dcc49279d73ca68052c7b8665189d33a334a318868d6826a59452d3b42ccb32abaa12cb3256261b506b95149318a51493f459961151444d8d363f08848de6b41154530313a2076603886c6214abc1ec8d109106888dae798d3e8545b4a4fcec7d337abe13c3a827e7680394948194262da7ac635683150346891db35ff6918fec59f6917db33a3bccac7c817f69e9284d4093bded47e5a4234c4a8b0018d3dfaf3c0ca697aa8c7637e5131b7c9911e226918780e8b015ddfa5888a1b0100dc4a111a2194096759d4ac5a251c179150d10543b506559d74518e507fe4ccb48e693eee32066d2ad9691a717666a3061c204886ed5804c58063138463aa51cc9294772524ae394db286a9aa669d968341a5955d546a3d148a354a352d24d4a8d528d528d524a279d73522226957452a6f438a8158247d300e9a227b7ef0789ee89c001a23329a59466cc3539026d5a5a8cbcba2507d4614e2f2c152b07534a8c0074330028d1c041a5c6a672355e36d78d8b66c3fa508306ac813c401710debf19173e06b6e8618c0b9f030c1700bcb8f02d30606bd4c2c58b4396e700c30a0000707871b1de61b4e085c72a70e1f10948e0c20b612003178131bcf29807c2f0593c088f9494e89d95b8431a2cb700c648556bda53f424a7619fdf30cfcb302ce093cc8b328b2d10a661a48dad54b62e5572ccc54b8bb62d33b2354c767d9638d19c68425a134d486ba209694eea4fe5e1a126435086b6ed67fbd998a85943afd7eba509fdf413ee958a214d98fc00458131f1cc509828c893cb79474879bf1a14e552a1fbfac70a8d851bdf4eba3573e3fb09b461d234a437d0bbc9d584a04cbc26e4f3da64745d7d3a4da8ebbaae36e4ace6a4593fdb4f8f66c5eeb1877b74222661246eb81c95dc68139310fa00bab2134099086df8fc027ec191fbd1a2cc08fbd48d7698accc027efd900d21d6242c130f852a3454a1c4a09b1ecd8a4bb86bad8b2a7d52d95e71536da89a92aa217d0e64384b6059649105ce1375ebf8722d1c1a88dcc8051f8eb9bb79d8e5c285fd837554db84a410a4353d7c1de92cbf4ea71b5fb50655274f986ba4987ccf6790864497d8fad34fba7738f1ab96961e3b921784c18e24bee291f88a47bac5dd6aac6546873561fa4da77ed374341a8d4629292973a66ccb54a98ca6cabf39e779c948c553515119492093ed24ffb0f04fb37cba85cb99f3c51291346b492d827d15a8841d0a35b915a80661424e30a095ca04e3b7e072a4f4a93f5528d2d0a2eae45626485e96bd79319ea89d79e36ebbdace77deca3384af92977dba45ed122736703f1eea176946aad7a8042d5785450b199a1100000820009314002020140a8603a2e17848a067abf20114000e7ea0507262a049b31c8721848c318618000000006000606066124000f030187d638f5b2096d94b06daf9986e6efb4d5a8de7fae8df02fac14520f21a20ef19818bf45cf0c640f7511ce561262dfc287f3ab3731762a531ab28d2b816f94d172f2a4f8a66a2e210a07619036df06190330d82bff11722218adfebfd79f5e543b4c9ef8b667aa6997f877c8fe1a09eb6a60c06e94186ca8dbdb7d102ad76887cea69504da30d2b68aa538687c706420bc203e1924383668fd18990cd4d69de2b56e46903c06c6a71da4721809feca3b0d04e221fb8eaf71f4e2994ce535b04eed2b0a577ad5e75021f63959b9266d62cf4315bd5ab41e3834da246ef2290a558959d98938085a8f91b109e00db8ec32c0f9146da8915e0e5c6022ee09754cd5422c01cdfdea35e30652004aa4b143861c35f781d1ea211b7155cbc55524d1a0e1d23de3059d2c360a41287fc732015b12b07ed8ba0b4652e857f92262778ec8cf3105031213c0b3c6f2360189bb5c96eb024d2fc1734b3c2805fad176698e522538c93d4b13e13ca9766b9172e5774f69f8fc9719c4a9a305f7af090992293081f85e019d3f1f1a7f88213bde85936ce08b83d675dfc4786d14f3a5aa64d096a256be3ceca9b7951e104523b8b61230a2fd1e87af946a40b2d31454f680c60014e50a07bdf830cfea0d96e7beba68a0bd6f1f1dbfd77f5f6e1062a5fb9cf92ea3511540462cf3203e395cd84c58082c414415984a0f9cf567ef17da0d70b76cb1100ade8f9c71c674586749fb647b378c393e9679a3fc46691911cc5e3f094750a2b6e84294cecfe3dc9569b3d56f962456ec543140a6b682ecf7c816b9d74f693e2ba3dfbb6f945a59a0533a50c0bda7334bf54a3b73c563183fa6e26d69e32a2f51dce226e7b4af1b35c0b5766ebf4c33c06e3bc2c35af04d33fc75451a7d7d3b86cda7477d5145a7b537320d2e1562ff4d2951724effd1212e934b7680c8361fc0b3b627f04a9f203d4af2265b777c06e3ee6394d00fa56922616225fa1eab2f2f781d2ed7f4845488fc50f262a2a0e4482e78bbf21816d3180f64ceac64a537b565a58b6e2e51b35087000e1888a772506f02735fd8f0a5222f0c885677edd4ac7f25a90ecb061554aa82b599f27a193af50147b208a31cb0294048c598292e82c052596e11c6f6dfa97e52f77844c3ea9f4c2445bca5624fa04c674ead56d88f089e61333d970b238be0c7da757be14518993912ea0634e54eccd54b44b1041946207f6fb18223443a21e2ce16790b43f83306e34ff2cf56d91acd88e0be6dd94dc1af5b838f8e939367265e139b79490b98f809e4671220e1306d7b18b62759b44ff744abff4ca29ed8a121aa2333c906325a2a48062e98322719c9d33b22929e314fa4d8d992094201e572a26c5a295dd515a8ff036f7c80577dc91885dd32a40cc4117415e85b943d94e71687e0946b6290e9a02232171583327fd10c0ff07d43a100bc72c6bb1085de450e522506c68ae974fae5e29abea2aa0a60bd38a85196a45892d0a9428a3bab080e25780494dc9cd2d7feba87d4eefe0dd05453a4132f502335c5965cd9cb3c8f8ba79d0e173a64ecd97381de52ad9e912d15049bb6c46e8a83811920f14709f171b207943662dc444491f42c06278f1de40d3ab44be1b99ffec1c4a2a91cf3dd33fddc421c59835a59771a48aa8afb9bdc73b32c2e4a2bbae96b6b1258feed46cd53fcd6be99c628bf1e8aa5bd457069a46153bd6733ac81508810585c6b82b71e5af77057fd37c9ab7dca0bef89eec0111bc44ac38ced77c271ce90dfb0f1d53b12110bf21a2b35d6d08fb63ba323f4b9f2b23afffe7c03d87761b5624f7d1d98780256803b42c4f69cce54b86a47e61d2a51b3f51c5c2fa2ff63b7b7608fbc4388d0b20189992ba44fe8149360c7849e3aa1fc39c35a8db06b8838fc8be609c51119cd7503beb7b98360663bfe15aa4a5c67e15cdf8924703835829f0a2d2ef4c618cb002eb8304a2aa4e9a2f784551db4ed6fe5f00a95ff9daa1820f894a8c89275a7aa8d050f63e248dac176da62173d79a7b39e76932425ed23294c32f9dec3baabc7d4171bf0a7bdbac6e69c1452759d9da5cb224c9ad949c36c898d896655326da0a45ae87567c533445f7a96d1838a6be6cc34c4160b2a1f3bcb151292336e58c92246980c135717638458f6308c16f6cd32997e6824df1e6522c2c7434f0b662231ecf493050157b408956a7adcbda66d7defccc6639209fcd34c62b0d51918426f6e1796e91eff476f67ca4726a29153c3a1a9d1e361888925b10cabdddac102c7d4b17726383b056a4d203be3c12a3773e86dbccde2ae6062a2755d2b10fc4811d896f8b4032320f2806bc39cbed193c47479268ce8c1854a918d17109c5a9240b44c570a6ebbb42acf18e7c5d6fa4fc4a1ebb26add0057fe604b8fec57b201af65c54e2aab2c89e08b5ee2845362e1a6d9db61759f108a7fc9696060544fa78d411462be9c8d5ea3cc93b11791797c2dd8e7085346bbee6dfa3204a440e297c56b3a88d51820379a7baa6ba5dea245d05bd5d66a5f703b21a4ad8fd264f4a4f4fa49bf2a5304f884fae905400ad0abaea7804b81721fa77cec627afa83e6f8dc402846e51915ab4625343836a2a6a7a69d79d5c64e5cd067e465d1f5ca2de3e36c33dc4692c6a48346157fec7e6983a403226858d8dd5a34e8b8047e509455bd312ad0f0e75f7b668d7eba3384acc0afdf08e3d2cd45c0e0ad7ad036a8c49733a5f2907eaa0b3950c28689ea6fec32adf6a5840181b14451ecbc9755103ea06d7c2b6f6087728c2747deb5771f1db369bf57bebf0c122386a4463b41b8622e49a45231e7c131ca3c2e410c1a892f0293724d1c0ce31c747f6a1884dfb4e49fe618808d482f0a454717fbe89f27527d61d896299ac0321db96b4f9cda38e90faf69623bc7711a62789bf050666860ecba3ccf5e4ed209e301ed2e0c07288716770d8df94a0cacd658d9f50457eab876bb651e8019763ce4d55e62ec2f81db537909993a0a0c488265c1ca778a145b0dd806688f6345a1e7a9c81f2f8c1216246ceed4cd860629d339e8fe0722cd8505aabe98ad1eae4a1de19e7e3a870270f328e7a57502b3c877174177e6ba42c58a46d1c6df9c872a1c711b52bb5c1fc4c47498d0f38615bba49854db097df0de171d449bb7984521b046382cffccedbc953a91c0d9993b8e39a8d3b8ceb1618d67fbe9a802c44007b06b7a793d96679d1e0299ec0ac8703f4d21d10585fbb66078893f241d7153297a6c1b32eaebe2f940e8c2a9550ebefeaf419dee242af00a68206971d39435105882d60e34263e1f6d9d82ec8374361f8471a2c21ca4010e644bba0d60aee9c1278352f6d1d271215e134737ecd5c49ff744737411b3d750ecf13014cb5eb8b1075718d1bc8e4af14582cc16c3621f5b07dd73169d20a697d47f43f7a7bd02a58fc409df722fda4e1a4b08ecb3336aea553071ccfbf9b734ed8ed0549b9cf524c5a76529d99b994fe58f55f1c28dfd42f7ad3a30bd780e916bf9aca5173c2c0be606b098ff7fb8ec4fae1f1c2ef840c8a2d169b2fe2dc85ccd985ff194f554495c6d3f6ce3ec1f8663d8d9a4b235ff757090bcef500acc0eb48fd72ee41ebae4896004dbe761de9977b4cfe7faa0f2a7c9b5532c3cd4ef12cc129eb8ffadf9876c57c433b506175fadf075fd01a7b4d5a800d6a473583be0abbb26a5a67cebee17d26d55235ec047d124e4fc5f0ac7d802d67154f4433541d31e0c1c78b9dbf48ed0796a6febaf9ca4e3f136d17d67bcfeb599b1332f3e80da0594d7c5ef47e7d4b11d810336e5812d678231c3af815b140e055cf3466e9741ae28903bad95d134fe64ea3b5c8793061c82dd7f06e6975b2684424dca0ca4b9a3a439cba5ee26c278083edf95b12084aca76226f276439cf640bc086db55950a462f1ed8d2036308675aa9ca1ddad0ac81748a35d228b5244c1a3c472decacea51916c4bb77ed9ca80465e0af2e8ba5f470bd6ff94a62589e3407851056cf5230bdd4e991e4e69d352b5949081d690f7b2212323356d66bfa3e399bd6bc0d8c0ffabb28a2c262bf2c9176f894dca2c28d9aa438ecca53d994caba574cd259765dbf1207d13b56fca29b37b255480b2927154687216c11294c730f9143a669798960b531a5bcd6ca459a6d2774c9f4099ba0f9b826e3ce8b3441620302f476f3dc61bd614fae84a37882e5940eab0aeb20a34a3e5646b38c8cd08206b49cdcac8131a4b43bc5f6e21bcead8d5106dbc1faf94cb3c215498b22cc64a58a620efd51b15a684540699850a177ef1b950192ccd9d51f70896e0819a9bcd2e77d29b076654e0b1e92ccfb6ecd51ec5f6adb547f76d8de078cca72a20dc12d7f3385341603f7d9e6f9eede131d50d67bb5489210057e83016e41d21fc80599a7ecf37b6046e0fc4cae4ea549346204189f6184e38970461e6c25d0c9e2f5eb1a2b3ca08064ca3fd015fda4926673866469ab99a4ffbca9dbc2d3e7dab81ab855a833cd5b0a4ab9d71db00e1aa1b0d36a015a61e01a783d3806e6263f9ccf74e8d807a9d15a29358d51c73f8f7409b7d659616702944235d26a7b053cb9a8df5ebf69d59daf59937a273d311eb11977668c7b3d8bb846c85cc99765189155913fe07ead68b719db43da4bbe2e512c2579a18d5acf9131d179bfc4de1bbe53b2bd19f9fb905da7de87245f2ace8b7169256a3a8d5693d10603d6e0c7da90041bc073c8a65689b07c53d7e18c15c45b557d109ece0c47c2289f954b3cb8e55462d4c9cd03e1547698782774c6fee6354f355bc8a810e8d96285c7c8fe349eb218aab59e1031d9db53e3ba549f19bbb03d925586ff98b4378483bbb9d74897a0d17688eff43a43b42536d407a1c858eb1faca0ed198d27dcba98cea6b5d0384f1701bb60112905a8ddfdf83d048d59f8ff16865621e96625eb14dfc3216f374b3986770857b7cefcfa5042e0c7da702b533975cf3804695a902fa214808fa2103f87cbc84d17c380a000f7c4e3f6a6f0754261ef139ea23c8f523cb03dd6c35fb41cfa264550b6584f87b1319649bf4ddbf3a4ff6a112eac3f93b5d203428ea1758a4ec41462cb1400640837ffd00d1ce336885d882a6258116c1830871125abccfd520c5158842c1881a6561b4cad538ae0c8a17c53110fbd796568739ccb1ab018e403a64c428457f28f0229307cf4bec1e2c0b8755d3818a3f2a94cea94a080e01a90574b13cde921679b06fcaa9491afafabfb1a180b98e47cdb96fb91c7ad2cc890ba004c3ea2964c9a22905c3e4001cc5133132543dfc267c46a947c8a12a3e74a2b4ff0fddaa31305b9aa792b45439d75c157e56ea0b1d1eaa18d57b9e45b12ceef115e8ee6e5f02b069c73d2f627acf423c5e03976e53e990c12be6b081cd5700ebc998201da3e81fb5a3962b759ef5c8819486d33f5d8a344f2d410845793e97425c3173fe890fe52822eac71dfc3a3bc5c82d1b42115075833274f0a1adc04164d45a95f2a4d63e714dfdc4bd01d3cbf9a37840ed238363e76730890e4fd02da8e9b8617ea9e4a3bc6171f0804c01052d9dd896f7564bd0178648008ce90b8ba42ee0666ca7ae23692b9ab82c1255fa80fca01188ae181a5ec5cfae2848f4905d04e24cfa946d74d052494e69e39400714fcf9f75d8603c40fe8a955775162f0ee04ce9327ef816bd9510ea54a35ec8f860fab7bfa926ed6a0a7bae6fd5509ce61cc2592302d73e7e8a598b9e870038b912bd8892e0fbbaa16a52d187e13b9be83416a01163d99581a7076bbce20a652caed4ba77a442560b390c1f756d70b77ba1aefad1aaa61f8c7b05713f0ac502cf9c66b5dc5c6560f50727b563053c71507ad429520c36ae9cbb7485694469a29a792aeb2e53d1ec1a789d0040c182013a4b0ac0c6db01b002a07598046e5cfa7537cbdfbe99549b65013435ee590060e6810500c00a41206ca4f5c915002acba6abf9bba27005f4713d5600926a465e081e983409ae0200ec65719a600c007a116196713200f7e24311bb09290519c05a1acc009c11f10283386600d307e564d68db7defb5ee06c21cf2cec1d0f57b481d56cc59a4c509d8a87063e1dadfa958c885e9945152e9052eeeed44cf2d80c73957b8dbb266e00530d4b9578df454a4698898068da0f8aba4d21aaed2450af11b48c979449e5c6cf0e204134673d006bc00ffe00aae9ed9ad09f84eea27d7cd8836d0a48691315e5ad5258150fb4e0cc67b8caa023190a1154068dd664f188361c5132211e310201b130027c3b8a102d1801d29c0463c06a998d1701e8cab1e2fa31f2a52c7de2937d6cb51effe2e9f6eb90c564fbfa14b23bbe958b946700d0015ef3acbd99343e4f7700da59251f606db31f90748cbdfe3c234eb14db6e6433f2f27dbb2e04ac0028f27744aad2112a15fe6e24530ff76b4ad6d48f79362354fa0b2e41342ea41e1929def1fa826a67c2083fb51c7bd010ce792b675d58c85ee261def17bf806a6b5b2208395b992bc73f5944e67ada6729dd2385b122ef38d07c27e4b718c5b91c7d5e0eb08ada8bf6b3e8570f2fbe6ad9be977a6b5db3b05be189a727516b29d08f3663d91ff20666fe004c43b2fd2859a54d3f12efb6b7802ff703223727a770ca3e83787ab9a8468d572c8721ebf2cb79850aa68c0001a89bd9c325eee48d899783bfa0801e88d3157be34397551fd4b8bab235a422c18e41806a33e9cc16ee5afaf57c092c9778c80a335f93fa79139f15be4c4831e7cf4dd5fefc7512aa3c4a954e8641007011fa5c8704e16adc58190f2f4d7884bcf1474df1e469e51890f08716e99da48116080228f381c44bb972816c510a792481b6821c7794435056ea8bd3be312951ad779f7642caa00f03ebc3e73e0ae0490294483823b7f53885a5419b486e06713aaca92f88793eeb318f76c01e28300350daf0d8cf6e0b0602daf3b1cfe9e0c88c0ff75f9012b8be44be6636f70829240f5b183033f1c7a2dfdc1d99fb00294066e720f3208d108004f4687312898dd27a79351f22915b4edf7ae63808af832a0f747c808abcdbd232bbeb1c121ee0e03df323a68e9b3efb011716c052884f50163a83e685120de0fd6300b33af131cf0c01a5b7c260364300aab2b44716481c02f87a9127737022dc8934ba8b431a7f4a0a451768052db2a79cd0be3794169e615a1a73a7063f6c05c133b018b1c6b140534f45bdde56e55cc399bd3ca9400066e2f4fc6b87c9b1fc6f33807be639d20a231a13ff7804a3a97c3b786ad8cad6c417332dda796f5d7802aaef74237867592b0a3d035f89e28e3b4f42f3ec967029e6746782ee97954f91980a3615245712172983106070f4136181bba1e5b26dd1891e9ff8a87003a7a08e0264dfc9acb493eadacbab90d3597d272312f4ef195c9a85041a7c61570a0696f9761ab6573636cd451e06624ae281755e65a028d474f72b1e6bc87ffbc2e90bd0a59a6c0f290ca49d8d5127e7e99dac7278761cacaac8660f2e0410394c02c45ffa0ef5cb6f26db28144a45977622ae21016d3ffb24bac0b133527a0e5c256c6c2e70e969f401a1ae5c70ab59d1c9526744a124882338da93dac78ab7432d2b4da56e1910fe26019e4a32fc99c5e5525b02172e42cf453c3633e1307d4838f6d9e43128845ba51003fbd830d27479c20b9a7f16cd46b85dba7c8d4a02bf60b06e3ed4abd28bd69493982af907d5882ee58a3411b8012ad6feb8324d840795aea1eab8894006177ba0c8d142cdcca2aa68f7bb3a3b3b598f47233286447cffee230dfa0174c6de58d7b296cca1951da25e9069706767cf74c1a8c268478c7739a226243911b9d4246f25c981f87792c543f9625cd85e2c2c35686783dc86efc8c41d84b2c8ab7b3c3b7bb8992a34a35f0a3355dd38b6878e50e115453f6a470b860114bcbf292c529c43a05cc146285e7da39d6e9e3e19a76b76768f510191058a3af7aec0d7c40bc5ceaeb715ccd906ec2d25e8dc742d82c72f91c0063a7be578b848fcdb78c54528db7e958c6d09f3bb1e70bb45d9be3c92b875296cfb73bf6de7b1e0998fcf94a8deb1ff8a3c5af7443b120034c5d6d4a632c96e9f00280a17bfcc68e7f5a47e59cf26e8d8e88cda4365b0f8df03918216b277a0ddeb6f1d9b8b8fbea88ca0332b94734f07d52dec6e4804c121a6a0b01958a4e0e2a8da71a6e24bbfa88253bd0c9211fca7a01aaf70e1a5707657a0203a574516376040b0c1020e35309cf84846e285e3eb9a02f2bc15a0dcc4d0c85c02b334ba926f70e4e2a6604a67b0d7dcd8941ffb306f0a72a15a7ef56c0f32ddd17539f48feac5c49ad8895f7a991813cabcb07756b1ca59e9904e9a8cad221588521b5a7f06e81db87e379ea7350769ef8ec0c6ba67a8ac80aaf3fd3700a040fcf7bd3f7e8d484d1405565b0d881ff28012eef80537240b3302424289e924c0624114191dbcd87a3842e61154646c1ffb515e640134830e476fc5ea58a6ae6ab35e241f28c52eaaacac61e36a6b994dae83720c51afdbd82127fbbd9172b43ee1cdebc4e7310c1257500bcd13b17a94a5ec250c10fa7f20b7e568d40bf144b599a2e612db80be4f1f8fc0fb7ae46aaac3d2c3f98ffb34de87dba30af50f6ac267390350f30bb202ccf84e826b7ae5726d834d38b23e3de1a54045515b23cfbfa003abedd19151610d57e52daeb08785eb6006d7f9ec2b219fd9dd407cc71b7e3b3911fe32f9a0929fa1d4712cba37015d8d6b28a508f4592b766b115528609fc776b14b854fb8240a480cd62d43ff3bb64d703918fce296b4f260380df1adf05d69ee36be5f76379d0db7fb82e608256e47c2a563692f89714e71d5bec58006529a55df4acb2f1d168b53bc072f8e1907531a251f4cf44181dcea2cad80505c36a951610f910dc2e504f4f0f7cb1460631f6708b4c5c16a141361c616bcb8b230f225c41681c9e266ffa7710589491ce7450153309d8708bcd0a48a46e902ff34fb9c18bbea6d9f7e0afe66b8e12cbe92cfb879c5c03c484306ea364470af17d5dd602bcb0070ab3607333a9a64ea8cde5a0e3728c334136bf5833997c1ff0a7fc20017bfb3a24275fbac4163f0371fc5facc17a843701128a9d0159f7bf781fd3d232c83610162da064f3742987994899499e2bba9d34231ca990fbbaa92137593f4f19e68bea9a9928a3d5efb4a12f3ca0705d718b8ba1e583d6f02c8f62639830d8e8aa0d5915315fdf091a4d0b9a2494aaff4d68de80a0ed44dba87e90d9cc5c7102e16c9734327e420cf760694829d8cbb361e7c54a8bec368fd56e8ef70eeccc0aae1f171c8772814bde09c41def848a11cc8a9304ceade95762c3b2d6e465e19c4a1da2e4d019e597f04ad3dd43ba40c77a324c5e3dca074c5da94805f7b9c536aa7429d712c293cd7a42057062a45034eaeacf71ecbbca2016a0b84dd042dc2221807db41301145a6d2570bffb7f7af6460792d85ab43fd63b5fed89a6f02fdce8b93f06c31a9035a9e6e0605240af61cce62a62d9573a4979b135a451a74df096e728b3403b00bd51ddf61d9995009d94406b7387fc7358dad610444a99f327304d65adf07d8a00d42a7e2f8224dfe691080821c8322b1b3929ae84e4adda4f1670298ff4a09342a09c13d9c6c25be6b0e7d7002fc994d4c95f5aff1950ca0c0791a9c02a04595eda0c6413601b50c6d1784784152e94c1584fe29feb1ea8dbd58e887a9c4e92f03d95ccfc507029a4dab49fecc5281d884ca50be9fe1341c88cb7aadbd75394f6444fb4677fa622b0aa3fcda9f21d9846fc2b1738243485eb0e8a2922918a7b5f4ccab2b8a0f6f1df1855afdaffc75f2be3f0fb543296fb98f3305eb1acf23daa29d5fe76629ecafb11302caba7cc55e8e3ec2b8c057efc4315f7bc29e1c7ed3da3677322c2e33235812f4d665296918fa83e37c966fb3cba76db89933efafe0407c4ee5a850d08637273b2cb593d61220b0a0c0e8cc23cf9302b05601f2c9176b1016cfe7726fbeb10f8ff68bbedf9612946df84f7f48b7a78abbaf085f32e4f4cd72527ce7d82000d59d607edbf35fa4a205f3c4479f7c4025bed8652eec69d4ea5b321e68ec47fe245a9849abbf5ac74b592198825ad269b8f12b31b6a9cbcc63dbb8b882116c179dc56c3bd289c5ca8d17b508e0581508ce4017aeb2b63e57f816caa1db9bbf5b8f3865886eaf1a0e47ca62dbb39d1393bb8dfe80fb669934b1c0847a051730c7ca1ea2e18e7e30fa3df710459a2cdd9046a0f8b6cc8b1e7a756aaf2f1db8d685e2d57e09e065ea25be7753ac8144fcc1b7241464a06bcb390f2fb60cb09f834c22bb55166411e2a1e02fd4adc5f6e0107fe0b5cf2c9b576c136d863b6e1d8dce8d06e0106ce16fc055bdbec739b1d52639b1c879129ae2654d8d4010f187de54be5c001c6ae20463f1e1cc6f25dd89b864acdd24ea4aad2b8511181e7b17e3d7eae3380d44a344a317258210961f152b35021f8d1d8af1b0fb0b26219cfb7994751e430a65b0d58958e02020a26cdd4535ca2f059cb91ad9e3f7c0b2486e077791a36380950b9228aba7b1c4b0349e2f7d918a8706c66f3c2d1be5957eec44255261d31c98e89eadd09cd1b2a315622705f9d43ebd3f7ba109c9e37d205ea09f9a21029900256549b48d85eda96075b54346040ef1929410cbbc9d77f6fef48ddbc4e363826c9ec07b0b74d34074c617a00424ab5f268aee9f97a145fdfb021eddfc12034fbaa4e51a82add3367e68b8ea8240f957b6cf0f9110b38ba79cc2e344a2ee0aac195b7447df42905eba39174a350ab6c8bf3811514bb9a927815198e9d1433c7840d20f148756a0dabb7b6e55cc1f8006d4ae04bad2e223513f6398db767933def32eaff6a51bc62d0a5d021a757a9c5ce0fc648f067117878c7a985a7327d497af099df34cf69d78415fa460c52e6209f8d03d55e42c2fcc72f64177dc0ce0dc748faec12907d0a2d3af8557a0046eecfc579a04f8eeebd55f7c9885b993677d4d6b56d68ddfe71fa804802c6db16035964aa22edb6af5820a2d8245d1a6fe11a7d3c5d950e5c3a4bf9b5b2455a6edca61b9b92ae56fdde80a00ad62e8e171279f81879420d1712a2ec8d3f8a0d11c91af2472fe4e16a25b158cf8fb28524925fce6d5a849bd0ab7c2380e12b5b1b9bfca5139b33341eca80a6747e25eeca2e3e5324e7ae2184f3fae59deff23c48e775cc28913d91287f9192d1d24588d1aaf6126aef4cc83aa2b90303a8d7c3c96fd51a82c0834892113ae442c059c935387e53416b001e35213c8fc51a87627b43cb66727f96db6f3e8f97b134274763cbf22eab0bcf6e014000fb7c4c71a1e6d7076904120e2ede5c5625db6309018d87355b8da3bd0934c3ac71e07050aef06f7dc8ccb30838d19599c7eebc2f722c9080341cccb8da98343ea41fe933fae8147424bf42ec3beac70eb9ffd9888bd46bc548ee67cafb7c58e606e1d39cb8945fcc33b2df9413894476715f1fc9ad89449ee79a1a4186d3f299173f1dbe332f14f2d4c13930c36f718ecec4d5cb85e4229b212f183a23adbc01f94e9a5f26ee5db623adb0c0bda823a164e979b600ae1bb9184326115263a7ffe6d1a0eff1ec49460464529ae3cc2ec236b5013493f188df08310efea02c35f83a4ca0ef9b70b94c8a91c34962e51779b913f2670edd8f5c765ee3dda9304b1563b3ca6e412fac0a8da5a47e6909d8bbdcb2a9a50f0603c9ba299a9d5627b8a4d52f8496afca626d2263d06ee07227eb0feebfb4cdce3448fd35608c10e30df328cacf0290c391e4d21a7effdf5b01050ad30cf0bc7b8f97616c0b8c72dbdd2a771801f0258e9f09e39ee9323245e44ce757943796f47b82f83df2d28ff45089de8580e6184104296c60b0967b5acadf2ac20c49e5a60dc37df8edb37b17776465d4965d65112ba29210abf02cc2a4944eff9c384d00d5ec7515127ec332c1e80b242f58d14f68000a520ab4e5f5ed234f897d86592b8b0170a7db9cbf8c87945d3376a91e366b5785628397b19fea4a10a68c19333d9e6e85d97cacbbdf79fabfde076c2f0b736e09e864dbc52190f9556c1b93012aea42811631127b1c0af0e73077e5cba25c5c6fa4485a0f3341e162aca85201d774d86be45b8e6b6b734f945c86346960bac57634de936e5f2361c456ae27646c89e4aa5949e09a8b6ee26700ca87a0130c5011058c404707824e7af01132329de37f67b6cd1c7975857053bc534e20734a34ea133a8627e6f6e2699238a166a23911b0486a0da730613ce67d830da8319a08f6c88629471ab6129880cd01af46c6c990f3ca5309bb852790ff556c1cf502fd3523c762e591fe35edd4e91caf0dea8aec6c988dbd7e50b98294d6cd1c3aaf9057278566c841215407af51d11489d01933de5f1fdd43281f72fbd206ea3a94077505b661f26284d8546136fd17da3a2875d862eb31fce678d516e746e77141d73e092960806948d6ddea6b5855472ba03c7e0a9d92bbccab647b6b6b297a059ea4d5754f17e50c753b66a7025cdc1237b2a06f68545117460710644f9392578f896ce332a3a74152c257c56a6f8581a0bac1e2033983c6ca22281e795ee89806b9fdcd1ea071d5b3cb681becfb21a568c582f2f1d1eba87537459190a1723561a17848ce7f83c72558e81d7dcf35436e64af605898befe2b89eddf9bba60501ca17822c9fc57ce1cdd47df2330e00177d80ab4e2ff8ef9ade9f93aa8eb42a93a66c845dcb7e34428c7e0b4f5940607280ca36b3261000b49732e01da761df11934a130c97f0d567163953a601d15f3103095fcd6c8dfa73b62a31b3609927db778b7937ffc60b30d9c32c16dbc7e10c632bb251b943d35739161fcc76daad8d0861b1660520ea199f54c004b848423d8e0176d3fc7c0838e416dab1ce8239d4fa0d7d23fbc5d4bbaf4014274453ae28e413df0bb5c9cf6c17d29c8f2da6693e022b1b6557206d3a12c10905dea9606f355a8465cf01f545824ccc23bf69db1ce59322cc4553b6aa903c17395aeab0ced0b86cb3718ba22345d1a20c6f7ce30d318b747539a0548b4a90338dcd357a513385a6cd8f868e7eb1f60a6e3228b5ae305e156dfd65930e87acd1058da74e49b9ffb0e22eee8697cc16cba6496bab49e5b69016a88e1bb1aa1867ee45f56f9309171e24bc4ffe359e75c23ab135c568b37ce6a351702d4652c9efafe86842a3d8cbe33b237c47bd358acedce18a4bdd06c0fa0f0331c20130d4bea1551e399ec5f6e074eb12abb4644b73ee6a252164e37e83cecac4c20f7e4809cfcd55ecbdfe62fe9f7436b83ca04cb77fe0429400571ef80cb9ec0b5d82d075518e2e7534ebd017034f838ec406e18cea4283f4a9e6378d662a20a704188a97e861ef27713061652644a7bc61195f31670c20e85ed19ea219fce8b59e916e9d9ad67a854fb4f4bb2687cdf92d2c2012feae325ddea80c2e4eb971c2eb65d339adef8f498b146eba0fd00c1272f8303f42ca38ddd783976192d3440e8ea69b4156df776df5be6fe1812d7bbcd1b16581c331ffb33858dae9b8c1d7106ac70f3c78204ee264769a570748bff10ce05a249487b5f7a68485680e538e9062267081603d2e2ff897ea044330b279d2d1688888724983574d7582264be846759ecab87530f958a725bb6b05948a83a7691b621f629778d4af3868e33f53574b6bcac99e058d4c2f35a4c0a2d35843f9fbf49de0ff74d1db017135aa1ecab4e43ec9514ec5469363e60548886de68f7cfb1d280b6b484ac269a3714a713add392af97c662e1399c9b44c665a66392deb95f148a14da7321769e98432718d8dc157e1569ce5402bf6ab714fd47cc95b13c52eb8a83d6ca0bf2742a3f4c5b1a219ed3d0aff48e5265c0982a406deba5e8a852311301d70c57c9d3c802a11461c956d9abf53ef0f4a0c0035498817d6a790768bc91d94e4e3564e3baa8e6219715f910572f01e211bb07f344581aad8502f2e0d4d46c0dcaa0a705c9b92560b2b4ac36ede4db828e31ad39cec62612c832ed2e69523b3ee39005fadc846b7f42c63d0827699457ac1680cf4b7eaef88893c2bea13c1dece485398dab76f6e31e41743395e5d344a1483ddba5887bce412b9ec51c99a1dd2b473a98d415dfbfbb07472ca2525159d4a03fe13baec947edf480dbaa07189b53435901aa3f65919d2a5b3cb699f9782b9bd72223c29be0a04f391d6717796684384730d22dd64f5d2b639b962293ba0f39659a6642a533397894ca4dd9942b4da1818e4985030da05683ff95af1bf6d4f5d486bee5e7df3e69152440b7841f8b8b13740d1be262542838eaf2ff2fc183d5f84cce5e390ec2c0b9ccadb71528448bac7faace418524baa5f34036e593bf705c456b886207f57fe6176a083226a91aaa4fdcd279a9e63aba57d99252922d1d749862794fdfab01b146945710404c1ae919eed14c3fd99a1e1f9d1e7a2c1657d7011e0ec9b119d6fc2b13959849b475928a6a9cf4889fd2f7a69fa869b126ad7df2f30673d22f7eb47a7aa6f0a8fdc1f5969f71296431e267cf1d3714b3f60cd31d833809e4dde4b6f1d47ebda1ebdfa011faff6b9b9494c2e00ae64f0cae749e71fcbf7cf30e422a10b960a63c9d9b532569114305a81e70090c94ce75232028a12389236fc34927a38d10644309f45828663a16a4a3004c3fdb0504003904d1a3e895698dfe1ab94171ed29f88065c45f894faa64a4aadfdd03e594e65aebfb12b427328e4d7e21d59d2745dfc1980c67f30e0bdb71504ec537a14ce010d6460ac3dbc2eb96f25fd04cd237f8eb94931c9e0afd45b99ffda22205e3f5c8d2e8d0ae199ac8abc189170b3a41897ccdc0acab9749b1e00e2b5682312175ca52a8623c03f6842b34a4dcb71ea65c39871f614219f8f6bdd0f366fcfb41572622e742fcee695717ee5f2cb17d24e1965b74a60efcc21ae9a9d3fb8a90b5335f07241c661aebbd5bb98052c6bd6b3ee7694c4b3c0380529794e35e59295565660bb540dba89bc1be5c16b59f187fb7aafd8de5d1fdc1dd1aafbda29d089a872bfdc78b2e4846a0a8d7e55be5db3a80d1f2632400c8ca5d2030ef34005e2bffb01bc0e5ca942a9cd10cbb8733f028f77b0f8b08501aeeec57abeffd4088b6e330526df5625447f837078436fcb45732f7b8f83afebb4f679ee808156922d8328efde1b9ae1cffb0e4bf178ef9409cd53faccd1c03ae7eb31beb2401d8ad193b42e4ba6f379b80bcce88b8a945f61549dc585f1a4318d0ff801b285edc0b6b59fd057db0b7b9cd63f3f4a3b3b7f6372d89ed26072c3a8396db0fde42740c8a508fbb39e9294b048fb0f3097e150e69b81646278e35b649197401331fdc21acc20f71f4945110cbefc1ae87f8bf1370e8601c3494f95c235b8b94220f388d2955734a4f2366f6cec5a304b601cf92e5fab2484beb53514434544c9f6868b7a63f1b6a1062869633df84e44830c2f3b3e7c374d6a18ddeddb814ed437b467da0a3e929e08c2e75f3e765fe97d6a8b5a937d58a0117a372f676893da96e98186b5ee87db70412dc1f4332b22bd50504c3e00c8e537f6872ee9ef26d214f878e64d8eec0bbf46a12f38c215d14d324abc287e7000703c34a3581492297e2b7d1ddd10328c0bab5d27f5149dfb057fddf01bab285e681eee42bd0479d9a41db6ddfee42a30d093ba1668e6be230028fdb043860eacfb0db868869237ccbc68205b0f77b3d6d5f2db0a0435040fd0baed3e8b17f576704305917b5697c64af3c5c268def48682648ba01db87a4932e989787fd29bea4b86cce8a0e7b9434cb1772846997c0c8ffb4064ad9eae3a2302b7c727435378b0eadc8e58df15a151f472e4acf3cd212a9a96dfd5ea300fd39b2cd700ab683e382684ca4e2378d4f6cfe72ef9cdb60fbdf1e65110c080499936737c92ace15b36bddca66990cff8b848803dc4691595a8dfcb4bf5fefeaa2fcb7d646e14a9f69055372d10901ca2b18439e54dba6faa11a7e8198fe23d85d2f8e7b520163b46946111dfdda1b7130edf52a4b6b0a28b223d379da071604738de485e8e1b3d96635c4d93ed9cccf6f747c012be2437d4c62c04310222d0d9b0dc7d03a30d8ac0b8ba575f29aefa6ef564ea21627a38aa83d606a592d8488e63f6f3687b0221e69553098e9672a954f76e8684ea2fb1d058729a49e7ae2849b7c54294f5ba7b0649b9f1c18bc80e592fdc92a66e8e38bfbe3bb6212b5039ca2144471b7b2a7760071c1b0528ec402930fbaf3be91219670ff4c3d7c5ca80ad38db84d0e0a59403e49772bf07615950dff67afd8ca9107d8b2d42c5b88b29365e1fbba93621391ba9f1545112729ab226c4fbec1e7ac76eb3acaf9502a900d2842a40c078e914fccb4ee822ad2a67fc715a46ef2894b0320a8b933cc6863e9e5f0599f34e5b14aac69c6a0a24673c58f9a92bc2662e7aac556ad1f51220b6f46d97ec7b8b433ce1176ae0e528a5a4bb71e5c56fef70430ea8b0dae5532021bc4be924f732d64384e4ee8cbc000e91d5a940ddbf898d7b03056b11de2e4b1d3c02b9cdd1922190f473d2e63205f639d054aabea8d438d56b098edf585415dc24803f9131852c5d560b758425d13188719baee37578507722f236d7385b1eef8cecabcea03d74391cf769a48394de1948b1712fc5c8a2943a030fdc01dd7075fe2ef00404c144de6f36740bf69397bcfdd67d46f60ae72d8d56706402be95205f053a182b0c7a0035e5c32771682b0e165c5a5a8b3c74b16384b674520f629d8f2237ac94dde22c4a8d589df953004558cc52db04d1323116488617ee8ed33237c50131180f10d123de14142c523e4f8134e4d9921ed84d9dcefc14d172647361d2fe73f248f64f06a4532100da0e20ceb3a0f37b68316ce95cf81ef6eb6531fd722fa0069d378a980f24fd6c7c1fc761bc661b5dd553c6796b89e423a310faa673647a9bc7922be4ebcb8f6afc09e47fb0f40c51c2fe1daaad6f983af73906190ca7ce618e292a79f5c7d7585429be83bd7263fd863d3e2c99c595dc89b6cd65464dbddcc24faf84497c415045d6097f2657723275e571ff3ef04c6e788d527166c8b6b5a9102c95e6492b01daef7878624d41554f4cc52b3b4a7d543ff259b679f4a9d44cc3011916e417e0bb648bf7abb753b59d35b04bbc87a644abb8225e6561223d7d72594ef223f0bae8af3430eae49ee46f99900a4da3a08a482ab94a112298bfcb17b40923f80a619114b0220747dea903e5f56ffc1f729a69de42572521ee131f00b12cd8e46351344ea35f07e79810f7c62c166e984b915f0099dba5976df7bc429e4f47df9989be166e6a97767343c6971a7c427f381b10c510b0840cc56d75843f38a043bd432a9914caef18054628452a963b222499fe9fcc2db8942d231228e42e4ac7285fbc9b24493f1afccc8b7b8985588e9681885a0699a2b0f05f3d4ba0491749841851130b031442980663fe40aff6d60b2e13b5a19e9e103712021721d01d909463d54e2d203343efde83b7725e60ceafec99d661c128cd1bdc1da60c95931444574cc16810eb8cc1f11ade3a17a3781b0e04d9995c8c263ad3c3365f2b2a77730862d31224c80556cb902ea184662a7386e1263c2ab909024de02a47fa83b0da4c6ac2f991d3106ee72c8880712d36b77d88a29aaa67e4ed8acf0999fc6aec82e26d68ea4df37ec7f8eeb68e11054b8e88bec4ace3284b05734d5f7f4ccb8c2bf5022c60a255085ed77411caae275a3d4aeb2be503d3006e3cb8a8ebc4252e9bf80ccc097addb46e2392f9c801d61990dbc8e03e3d044b7aa2018e0aa2010f18d0ffa787ee273e8b0c17bc506a14bebed6be47db4fd82e0a8f2011fa8e728929ea158f7f80a670bf4af40bb77ac369599e5d5747c6777a89a00c1edbcebe329780a52d473edaa2449c290eb6511371ad1a93b8c4011513ed6309c2389d9ab7a59501443b4b272890262b791d87937043284de338b8b0ea06b0ffd65e8f26089f57510e848c3ec849a46a00856bc1a75fb630c3e5ff4be269c16fbab79584b08bb0e2be133936a312fda2f070ab178a4e2641f03275398d1a3e8380f371fc9fdc495b28a01225f9d1cee11749e6f07270392206f947111bfdfa379bfb06b84ba5984ad41f645cf7d8d95097246629c03ebb444b2e8273bfd071dd7c71042e477d49ad0806e74464830aa7e28f99b93708fb453fb3fc3cbc503fc737565537f0b1da38e7b1727d50bd324c86fdac7efb7e83129db87140bfd97d5bcae3015297b16ebd34234ea7b237ccff24c5bed759e853f78b418008f00e05b9dac0f31872b56e809c4697a394994cfc89b669d7773f36544c56c2689ac067f2ba31a338c701912fd2f6d5040ee974db01e48e67df9186bc0ea01fdcdf4642d0d667eae82620db3e309ecf5d900877e5c805594a48f8f25d14d6c00055d428e6463f2c1d883d4fc97b2cba6f17cd642899803497153dccdd9865e01aecb1589603485156987a26c104c80898008009c81ddaee7f2080000840875c074af9d803581ac808e7a3773e7fdfd79e56eb0625ba675440bcdabe3f84d2e5bc07abaf6dd3976702655619d8cf9f74b6baaafd379227c0e6aa9d761638ceb2b1b056cbf4f9b87727cd44df75176f7841e807962daef8c1906dd508f18a7a8831a6eeec579fe51b581577d88c1b50e095c2d7cef1db6d55a2db3983a58c66d72e0015d017d65d7d8a53a129206145c322ac184dc0c96161ecdff198da65913517f929063321f1f6fcf36dbccec5802be36c4aca3e66cfda9ae4882c8d34f9ed96c1d5af84e5b49eed509a0b1b2af00f95f180462180e173ca39878781a61c7138b5c5e3b93dda504ef8835911c739bf8de31bab1f5fcd0704ccc2f2cf4b8cc2be19581ccb323932798f3e9c94085bd7692ff227e0b14a2a045aebd3b6f7c10a44e55a7e963c3e88a2f4fc4f0b0dc1a091d256ad8544637058532a1f5b68de0da96ca25596e9666814a26d138faec2acc7362ba88388b3a1d76cf8e2285e252c1380866b6484ed6b6c45ff3b084f2602a6d9018987b383522d29a73788093d9b37d78d876c182c14217fdc936d7a0e56b64967e6ff0418f78047ebd0e56b113dae070185dd9508b37047050c2d5760fccf5d41f59d1f9f1064670026aecda9096c66e0d34338a7136c8ae53b6f9cdd3a729603715ba7264e0244d2ba033709022072fcb3e1f172967999ea4553efae854431ed8237d56875fe8cfa00f2c2675e54d7ffb787fb68fa7f145246c1234600776544adc30233bef32c21a69f1763482d4966440c5c29b2a50956085dc9f541011f0758c1a4c729a983d81fdcd6d0a9c07c31efc3d3db1293385ba90c5e8f0630cdb76e79f1d2ee65b67e9d1630e360fdb47825f8d1e6862369fb6d4da84236aa8f440e2063700d4b19fb401ba8d90dc29f9e74c141089b939052d6310cfde4ad06ed9e74742b1dd8a19a3ef362b40de40aa5ef42943d6e001adaf250bb6fed33c052e5d8a2f15c23f0e7f84d8feb9006cc15ec6686a5a0f77febf835dd8155971fbea1f5a861561bb43e4d8d5741dd0f5a9fa818036bbcfb13a45604243ced7a7301cfe532d420f1a2f029a5fbd80f32fd87cd8a8bd645ab75572130e37d1c207a463f6a0049d9d8fda577eea94a1c9b3b300ffc9ae0b6724396653d7652e5aa357177c1d9895bdcd3098651532b84136c86ff0bf2463829dc2a900e4c1a0e23abe67e5850bfcbbc25f714098d12d889ad4e04f1c01228b7e539610dfbb127be3c5b6c497c3e188573e1455d04fb954ba5e00058fbd9eb76bd9de26bd2b49ec9102c6ba7ad652040cb36090dbe788c98c13dd85f78d06667c5b78a3d879887fa0489b95fec69ac674a5d08a13610b049ecef7cc4941139fb5bf378a34a64e5fecce7900980d8a7430b354fd8f4d8db32f65c8c89b0ee656ac5b61efba292582f37b33557234587cb18411db49e8a567784a96b72965fd46242cdc5c12b32b595639a00a4ff6ee95a7e3f6014bea3f0b4f6a97a867c4a5f542f30fba6a5e2cab8dca7b2e38ad1d9e37435d275188b465995302a95d596fff34064d0f337066699b646ff179a7c1bb7076a4d2782b090c5d2e8f5625a05802aaebaf441f30c67175094759f5994c3d390e57959c784a933a29df7064127ea6164cbf08346843e6e2f92de402f4de4e7f55ad41ba2dec57fbd35b4f1d7e8694e63954d169a03d34ec04a0b40897853d06699ab53d90af165400d5d4011925ed650c1f38f5741846de8474fff75653647a2070dd6929bbe1899fc48d1cb8da0077488ce50285a1abd4674ca404233331e3ad3c52b3d34664239026c424ec9e6437442579b13274692665be713c7539b6e77a6be59fca3ab3e07321e060d823ff67585d222127459091a918734ba8741130a72951ffc10a9fff4d990b99775e43fa5d4112cb64954ec820a0588f4eb0227da7151ab9422bdd8f51c5f781bed27c11d11e7cdbdff6c3aa870da2241ed11d7244068f12760b2bdb05c5d00e4bf50b3407bc95cda5013eee5930861aa3668901578bf03a865ce14eb22ac44b29ba54c9812ff7c0067e9c1697151f9e60163fdba4adf8a0333743c1a51077b4bdb9ef4356cec974dea6376e0a5529d0e0cc240bd0c03508953334c23285286c6a301faefa5050dbb1a4d680387901525d54de8866364340902b40de4a2140d2f7e99f57022aabf3bf7fab747840616419766f8e7ba9d9e9ad850de4420f8440ce95b8b09126a352caac3c94412c705d450a41e1f51360f2e5d195175ca9d3101c4bc29082b43ceda6603a74f33a0ac3b3f8307983e300a98fa5805f8487c40faa26b2ec7cf57a4e387782fbac0e9a49a945a2154a1a58ee9429c72ced228ee3c4f15a8c3338fe279537a6628c77f40ad707e6593181a49d1df8f21ee9b0b56a84ed2aa73e9d931eb73db46fb711dbd1ec5c852e6e140ab51cd47caf66631a6a49db7b67fdef685f1150d4beb6409774796f9f42477ca0d578680204b35462be7f48ef6f7e382dca42f9bf6489c612c1c0798475062f08d698a281182a5254e7e04c39b573e758e4585d0bc9f38b5e6520fd1d78e60e2c27290bdf23a039916bb5e61a0a4ae88791cad30da65e7be8d9350d08465266afc48fb1763507813b912f7301d37ac745c6610ae96f741741c6a507319685aafb8b96e02b98931d80b62092a9f636a0b47689ddf0267980f67212a5f0ad964ee3d84203be97bb48caa7d184b53f91f53b4b804ebf93670e379281b41f9429025e7ec4d06b1cbbf23e56829c627774a7b9e04abf3968fff88ee2e1695686e94942c9223a62c061eb4358ae484c7da4315762146b4e08a04949180a4466f05eafac825fdb503b77fbb22dbc360c311a8ffbb85bb3ad136f048b40d6c7debdd4bed26b981765e43a55bd2e73a63a329aaf4884a73e21ac340e2df70d4a5ca7250487ab297b81cadb8e3b1acfd1f6c390e751db1e3c8806433ecc12156a5135bd769ba9ffa52e7736eeff2be7e169dee501693d5b91d8b79139045c95d70026c3ec8cbc31c3a5d310ecd83ac44061d8563819bb8aa1f4e95c9e048da2ce113f2942e04c91b241351d28f9cf6d410970b62eac0546bbfcf1957bd2e6cca62288a99731ea6f559432d8db6bb188a08a85c939cc486c776de3829b5759d1d32e0ec0e2507f9a3e80df6bab903255baf8e12642906640f123faa445e30307084ff92688cd0bf4ba8d7038829d42af0b538d1d7b956f6ad56b992a5feb5114a2b94228f47c9c83dc153e548f248b9d2344fbbcc9430b6016536e8603af5d9defa42f56a9808abaa814ab1cc918eb9b705679e9690c63665bde9103bb5e01965f4c0093badc0e3decea7f0a915fd37ee571e8fdebf576bde2409949d7889381ab7ffad552fabfadadb8fa786e87d61c9d30abc76ee163e40c30fdc2e8ddb13d2b62b21eb682946d8c0fb16420243db7933722b0450f875b2720a10bd080aadda041c684e1625dc95768f3f231510f74818044d3d67ddf9a6e393dd423a4554859e3fdc5ca3a058e974c418f7eb7757881fd430c438971e8fd8ea347e7ba171f9f8e607886c7ed1b87033a07490ad325e309087c464eac3e366c5348417e61b1646a6ef1b10dd3743dbf1bb5863bd9f081e1bc1107d783c609260ee5116e8663a14151e38f419c7c7c1c0957918803e724c914a0cf6a0a802424d579bd06b9b414e68411687b7c30c74e3d015f3d0c054163a97a56d6b3dd8fe0bdd36d0211611d0ae1d53b236718f053a1b337ffd23e2484138f87eb2eaaf49627b9038f25b6f56aebb35b0c9840529c4b83811e2b51dd23e106b36ced719e99a2cdbb935e0d32e76928448771dcabfc2168516918cc8a5f6d07924d8e42b77e0f2e2e574d893a91edf04cb646789a508ef948117ff851e4f3251bccf56d4079d37e6174da269d4afba1ae9aeca4654e81324113a708acbd132e7ad6847154e399562a359406ef5a04364728ebc75b3fa165f67da94817dc6d3c26edd05f5b877e7558711c2412f84affb490d16cdf6a2d5f092c6d84373a9a5fd5af45112c5a2cf7eebc0a089c92a93a0dfb8e9ad367bb20e4ceb437f9fee9f5860ccc0b5961b27c6aa7ce36b42855b42cd6df9df3e6392e9093d1e847a7b9aa266f868913b684f8682ea174475380e8d33a5e9792059b40e9b624690172c6079042ca300a11c550b276c213ba9ee3a0ef9997a2f48f80c1a1692e691dadd9496e98b744a1e2f81903388c54c8ea7dfac5cd0334daec3559c5e4633f8db35a80aa92eb358c83dd3d8c6ba24a461b79c82cf70f57518aaa6059247fe7722c1a5b1e6d8796afdc990f340960fa53e3d72f7108bccb068780a4a6679058c5277368496f21ae6a20b268ac87f3c681420b7e252322d19689723b788741c22b80f5003ee5ac372e34b0c8e821c679902e0e75cb3346033c562319bf903497bf8444a35dba721f96633eb2308bae1423a6e6bfd4eef6949f95c421c5a73411e0e5fa1e95e827a4f9f8f3b178f15b8c919e47257045331f08bb1ac327e0226d6e96f2a5ebba6133fd484b34417b95711ce86f1cc1db097b677ae177f477331717f1f6be17723c3ad531e6ebcd5fca1d3ee0d7ffd6874d21b212e4b5d00511610fe2f131b7a07f41d3346de6f77a8b68d7a567b2d0867f1d4bc5faa4bccccb5b8937650e7eaa85eb265fbee027e602efd7880d2bac75b2a9e49038d2699fd5a4b1bde5a413a3b900e270d5d972354c755234ad8afd019a92f9741e6f728e9b08b9bf02208bb48266e831066eff0c6cb3ce331b0ff425892e13b5f6edc00db6d6260e1088b6e17d59bc9769c317af8169d3b3a0a448e1b0327d71733bac2a3305141a2aee94e4f079edf5b827cc45c1b5fb4314fafda152f295d178d3ef8a24e3b374377609b2f8f1ebf1dcd2be052a6783c5ef70d09e6ed85ffbc1be239e7b3f2747a379bc81d78c9c860c04bd2d2fb22fdda7a31f2545ff7bc3c05ab2344fc766ff96adc1b86de18fc91bfa7aed9396baf44416a0c564e80bf4a3bdc54987b35038dbd856398b74ad53d805b6f35b8a9be487492229f512472415583d5ac1b0c55706a362e27b52382fe71a35033babaf84f29ead7af9f7eb787264a2a7c410b352dd174fce84aaad36e5858dcc8c55885aff1e35fc7d9d8079329a0c26a1a98ae8898bbd63f4636249094af8c68bcb421b84439a7cf0228766a67e51a23ac83257ecec930acd7f8584173a521d83b44c8e7bf04a12b9fe6207ce5dcd6fd9974abafa3b0ae78f3c30e9fb30c9df0379cb2de29c0d4e37661ca828d6ca5a166e538383f3a86948f227c58befd67183a15747dbe60ceaefcd7cefca149d081077da243ef40cfe420c308eb182241fa4f2ff101aa077d6534c660dd5d3a191cc46951738dbbb5174d0c46ddccd5f016ece39245bb0991f529b48ff9e47814f29d71b85ceb4d7426409d426b78c990828f57f0f206510d013c7d071bf25fa31aa242431bf6625491d1cff59fdfc8742d321b2c27e791982d50413294539a1a38c04802e9d68f0cb5abffa8881c29729a2e297c735a6be8d082623e1e0364905b0c680a56b4da8ae10e5508c23e800a0203dfba72cd99d188fc4a2435bc00b3453b855456212ef9ab6e1e3e1187b4ceba01fae9a5eab68d1a05862e96906c553609457a8179054aa4386067bb4f72b6524a6c412bde65bbd0ee7dfd93a2bd5df38ce99998e4024f4becc41886d299ae5db047dd7164e72b5f5392b83c66c986cec853da0081e12077ed1ff412c2e3abbb5785f1450266cf577daee254ee32cd6ba3257b60771f5af354d052f91da04a42525bb5de01cbf91db06eb5ea5c09488a42bf034ce6397f80e6a7a55bb901573a7708f3a3eacf330bff315517807aa6f15648e2d03443f25e97bb50b45037418a5d5347a428b174dffbdd7d39f0ee13dd6f2d1da69610f4b6a3ad42af110bd7c4f022ebae5bbabfbe705948232184d97335cdf0f73e013d84a09ecbae436546be3c3e6de8140b2ad461ea335fc0324854804973a751605c3cb559d5ba02df6c07025d32342f6c59a85d57a8ab7ebc4ee8921274673fabfd3564d179c45397797d24b49ef36bf676136c226f992006c4f2860f77fe96a1fbbb0acbae943b5b85a846d9dcb365696ebf96b96ada298e30199df43762e563e8c60bdcc024f44de763deb81f228acf00e38610fa2926c3bc4e4e4d4beef6c2c04abb2431564cbaabca7d4ec1c03cfe12580ee8369a9eea97f6e3793237ae57d08db468f31e1b03db6230672b2f86db7eb189a795091b76033ae82e86db10ba87a14eab892368367536d5b92083b7793f2e7b360f053c02f4a8a1f4352834743181af3ba31c893a85e7a3ef3db7b4e408987466bcfbbc1a512eccd85a372bb5bfbbeb3c4dc9beef2ea88cfbc6479d28afa86e91cb32635294580c0b72a53811dc2d70fc06a7df4def528527558e5b6f483f30a25813a65a45f2a0de6d03268e7fbed85545e2f373b5e851d03fa9a0a79ef05bc76f4124db4455e94052bd21595b85c5915bd58c5ee009e4860f4576c1d76a78b73d5e7ab8b56a189bed3c2ecca2866a5abd650888860f00dbdaf21d5c82ba2c1d7019aa3606e29f47f995b007eb21997beac0cb7c180cfbc1b5e7e5cc4dc0a407fc58a5defaf870d9efc6500411677379566a9d5752ce04a1f15b98fc522ca0dad7dd8b8d9e321d61a75893819d5306861dd601bb570c68e76786368240f7e635665d9d8c470c0d801b13e4860f719188127f863678a0bace681938289e9dbc760f4997d14a664d733fdb70aa5dcb81c845c06d84b0d7f2bae516589dfdde6d0438818f813311664626f1f2b251a210f65c1db691a62fa63180085afa72e5e2fd16d699be90e5a53cf561f206d781f4d080db0105eaecb20f7f5d0138d4f25475a3a28b5f4e98ca24ba250179ae3a84311fd11c9b392afac3d5998009c8fbe0416a3e85bd2b1a6e87f1c5fa2a60a27362817bbb671bdea6b4d73d651d39ea89226d98ee521cdbd58dca566c65b9e010939fb1f09a7ab5681bab09a84c92cf1b407a41bf709397134aab48ad88e6a0de5fba7ab7e8f5e6e54731c216a7d5a542811f1a330a9344149a3a60a023bd239451a0345881013b6037ebbfe7391830b9cb8b6abbe00cf3041853502d6dd1172a7a41472767697c3a1f1a3d1f2fc432b97ab94e5e10ead603d6a75802260178a380e5a1ce2bb1418af766a17e0539ab898ee8d6e6ee4b7b480e0ab85fac7a0a55721865c6fd0c88c80e8ac717444f515b5ef33de1044c6c789e78e59a53e261d6b60dcc4567cfb5f9b3b8e270717c09d1cf1af7e704ad36dc22fb7669740a3d2110966e725b237742974c6334c0c2590d3cd96047013d3dcdb7085cdc84648efc908263e4d8798e210b80008899a11a02e15134f9efff909a429f4a258cef416f905dab9a8d5e2ce6a0845a682895a8e62240bf8864324972683a10d5962d9749df0113158231568ca0208c3657d0fd8599690acc35c474704a9adb5f87cb7f3522010cb674bd449157b42bd177b4b9c088ed14e41ae82c7ec82b1c6365d125cc55e58afed1af04b36715e10ad1a6175c4263f9351573b66775bf99089b2e990959b217cfe3f4a5ff634a7622a33f8bcd25e52a9567416667240b896077537f494d4862f07b49a5bc6b721a6e2c56e4ea8b761ebe7e7560c22179879d8aaf2a2a2f3b3d2b3932c53f6cb2eb77a38c54e169668db661f6a0dad6779afd351637abaa6012906b148a55968b0be6ac7eda47369ca72ec4fb18a3adaca830be9b761fc4deab5e7ed884feedc133d57e4041d60ba59b05f8315598fb49bcbdd2531e39a9b121126e68bf6c037ade52373435d8406fd7ef4f1b43e3b9cd9abf801936035e43c2329a5ed86b0a043a2ba9c6086fbd4f65bcb24f45251b13d4728adbe6f760dc3d888b3dc5d86fb4882e013da27916c6f057bf7b90213b1e0bea1b5c95111e350f1dfe2f6d29b9a4bf16b0c2627de540c31e0e9c3d61503f7e0a24d9dd75b5109d36f76a339141afe9efe8115785722855ef859aca518d5763a33cf954f45ec892af005fcae76a9e65a8198dfc225fd86d2f24810d685608ed815287595b229df50483f5d00b0ae017adb89520c17608d1d78381b7294c2cd94a590d3b4340ca76c39f2df7cf03da04e6212eb7e25c08c260de24bce2e3a80b2e6c3cb117d66f5b2684c5d8337fe6413a6155115ed4fe88029e328a0935a54a2259f44b2d82b6c1868e9c023c27d93bfb860b1100d632cfa67afc7c79fdc880d43bcac9f0876cf324f3515e38a2767a97b018c7059e33c868ad5177bd982dab418f40f54e10858cf28597a3597b8c6b9237f10c7f14117adfa9e22a9fe1c5a135e2dd2c37cebacfe5af0aace3198d3876e45b90980c8cbbc6e75aa28bc1c298869733bb5a8d09b67f08093d23935c832026aaf10fddfe5ca63191217e725145cca768c2e67a9ce6f273beb431859e55623bc9408fe0e7c47b39876e411622bcff300d1e219be1154ccb82897cc605755c20e63b3d38e5db04e0aa8f69e653d3ee2d631ea390c3a265b4fbcd3896dbc07581e410f55f81e80715ee89982f95fea89117bd785aad5eff1d2bf4b33c6a9259d46f61bcef2d625f8fd584e7c2368f11091f86d72896387a92628b56d9472b232751a74c61c6c49b68938cecf86df3c02453c3b15387acf2b5fa9500c6135b977a184af89fc74d916e98d6776e04bd9164373300ae650fd3b15feda39529815db9bea9eb1c553111ced92b0440d7b5a3ebc39ab318684a684200df3dbf63df1e114a6597d6702ece009eb3ebc8db68b3b8f93e224138055d98d55cc460218b207c675c60c91055d7dc88e6b755e547d1ddb648b661199e3b46dc4f6404f5ac076237c53b493382596a87bcb404bc7c50de9d73477894fab39dafd9d97b9f7e524705096496caad712713c31fbe55a29769d9df1aba618d89ae34b3318184d83996161f6da9935aa221a4b04bfbbc5479960f5ea586e7270fb2f17dc0b4469b26a80115d722daf11f849c735f4a55f05038cf4607f590f037e7caca78f13d970897b227b757e88a5b751f0c659274a23dbcdaff0fcf390a4d3b4c85bb942cd0580368ef72b27a48a5a2c89bb6d1bcf55466814f7d8a24388d90b221968b3adca2e1906657c1e376724fa2eeda09a86a83162f0d415adb970c59746b43956d647edbbca1e28288523f1dd90811b94b8dc4d048c3a4d25c444c773395a303ccda74515f6beddc04800c8f58a99c91c3d26e8c871195c8ec2b5a40332a9524358ffeea395359c167282d8e70408ad0cf67a3d37bac08617dc83000e7ebd9b3ca9eb9c5241f2b8eb01f4b1af18f9b4a9f9b3db0b4dc2ad25ca41ec0ddfc76e5c27981a0c3be831a67754c2e3aeaae65d789f46b3991ad3a3121f25ae1758fc97517ccce061247e3a09df32ff3290f15e468ad036c1964c40a3e0288a7b7ac62ab0104a6f64f2c34cd4ae8293a1e9c2b08a7058b5db12968bcddad07b131544589d6c0bb2c057a7c58e4f786d523b392bbb861d991e956a15b474fdd483c2e0736e07b319b7d5d917e41fe6236c431992c274511898bc9c0e9c74606877b0766f9b7f5c31022922f0c13e0cfecbcfaab78c5843eb76b02614b1a316a598142c4517b43af4088bf5394404120cc0c395cd45694844024ef87921ed32d5da858c3c87c9b8adb1261c5a5b62d886ed89c2de35d1126bdaa933f5b803a2468bd17d3cfde58354975631d8350b88ad4d0ad1db915b8ee3b26622e2c46f18c6129d5d46d5dfe484b99da58829e12a777062b066f30de988d1f1dcdd66dc0b7dfd8ae1238c609162e7709efc49191b6b99a662e5d8c2cd21bf73a96c379c99486f3df37b3d9a36b6bdcd6226f2ce05728ffc7ec5092725f24765ad0114779a481dd3d68e98ef0c90af35f11fd1b929429d3436d92f7c28bfaf212da4b8c38f81eaad4698d939d20dd5f928775c8f83c62cc3b4d66f9decaa849ea212739b413a1f24fd58b1bacd38683ebbf83796fa1b216ab1d5e3bf72c2669c74acc8e25919f08974bc548f17a9097e8167deb2767ffb6262db65448eebe7ef839e0b8fbba7b134b81ae66a8fd64e914aba7b2349a5574c582c2231cc1665620b51d5917101295a55b93f6df7319cfd5f240771e63ca38fbd6522eadaa2441e52c0491a820151a393aa11957a8de7ff4b14fabc1a58ffaacc5dd8705cd411283272c4dd16c31138133fc097c9d9c9536a9ad58226632b51be0e109c9f0665244784db095888de00d2b8e5ad1ab47bc502554dba9954acec589ce320ff8c0dbcc356c04c2b91fa26f52e12d80f42f711a26276de00f05787315accfba4cc821cc746c443da4b97c8f96626130ac06f0f82ccf1fe13234b014132cc648d3b6793e64b953cc833c4a087b80f3b9a382ea7182f3b54e97a1d694fdce9ec91aa2447d6ff350ab2c044e817fba82ea628b0029cdf19cea2ef276aba51270ed3e503f2a269c733814316cc91421d917b70e40829d7fada9388c588917ce264375df57950fbd46f2f486fd822a3a04942a4646e07da6754c0a7d5eb2e530dc962f931201d494623e57b02d7069ee6e6484656d51913441851112f7fd6c026c93fdad08f36d5a8e26250bc07fe567be022cfe41ba04ac66ab58caba09d79329f7115251ec8429870d4f3897fa2a84ecd65968ead335febfe63059daf833d9ce6f23483d5a75cf93abc2e6a4f6b1827a5423130c2102a5164673da6793fe0bb840386de34eb50ee46f157dff3a3207615068d9dc1344f8e2b50830b7671593607e46e35d22854c1ce1a7b8712af54b5325746cd91d2ee8160b7ece2e9ed5c0be61e1a8f2e93fa1a3f27592791ec6b3cff5e8f222cce9b35596a62ad18b71fba58a44e4f3ad7adc7023e48d5cb162c74eb130e544445d893ab1ca792a26c5cb57515a468ad4066b0b15f1a258a79e6a580c6d32ee745c49e4db778cf5b8ba9c25500ebb62518a8ec6babca771b0aa755cc66f1101296043ebd07f82fd5e7cbf11f64865e296c3700f2c2ca1b2146a340d2e95379f4ba021a7db491005f1eeb590476686ad07d81071458eacff1e78f874432c11df9ef1dc53a067bf6bb11a151fcf085d945bba07e402ea73d37a7632ad190057a139f3e60034782197cd6184c9a236aded1dbbc5568af1cc9670c472d27290c344e67b11976144570a2601c57e9e199880e669cbaa6358287537fd95e89b58c1077f43ba3907382d2993f368210d635cb63b0084e781d95906264d543219a9c43f84f69f42a722f52395960e39eaf68feb29b87b5a770a4daef5bcf0a05974243490e2405819e634bfc3612a00c77c9eb8e795f3c1c65cd720d5a4647efcd7b486fa1f5a33505c496e87a233c0088cd0bcdebd5abdb0f678e7db0ba2225b910657599ed5452ad20ed01a223dd5e8613c049ea222ee58204018dccda51ad8b577c8b2a09d1c624f9e078670d6fad272de8d993e30481980e54efaf21ea7470965ad90813aa441eef0ddc8955ba194260ab01eef46691ae6317319e04d754877e0f50d4c880c9fec103035268d3e8dddb2d3f72019db8af1cdab98f2f5ed44b16927c438dc03fa04c44ec2725407970e84304f4606c427edb3602aba4c8a475abbaf42c354bae3b9eb1224b89aa5544a3b60f172437088134fe116fc8e0e22a2b7aa8837466d8c580414434c62ca080fd24b297b41a62b6f6ec6cb7520564ef14d79bd8fe8ca7f6a56ec16f2217a33bd9f8940affd3609eee870c0a3b9ca43048360a7cac5586b0eedae535391c6f004f6fc37b59b5276cb634d57847c498a6700ac38495894b2b0a781cd861e7da8c2188c01b08bd9c2d31907ae18aa5a7e1e475b08c532bf97b6562b07f9aa33bab631e09bc0ced9e2eb64b589ba1e7d7dc7cfd2348307daecf93a9868259adfeba9144d48aa060e8396dc9c64cbb89190d2289fd730925062a04905ebb444b49b944af958b4de0049e5529ad49cc55358fe774079c01a320330349eefa83cac7fe9810139e6075a51eddbc2fb4907c571407cf67ac6424fc2bfb9e869cc9aa936f6f567d9374f03e7d241a4318db52c62eec245b823dcdcb3da1d668d1605ebb5534cae4a5e59c3c2c2870b0d7787365fef1f0fc14450648d18bc81c22050f102918ffbca8c1a9fa5c592ea7b0fde401412834b370ada59b8eba55105fb0e954d8dd29cf79d6f9e2b6cb3d9d616a8881dd132ad2950e0702cb08cf3c8df19f1163fe0e6b10e5ca1d360bf2b981a76fb951be05c0fae4ab6a2378ed1a8f1fe1b17148dc0f84a19203634d52469b7b1ccadc3b7d8ad3c0bd099df149e67cd7788c29aab431692f9e37aa163d50ac3a44e7726c68b081b9887ebb821b0db93b8f50fe9ad86e5de1b58416d432e45c3029f568ea0dfd84aaedcdcf5811f3248901b3c814b4e85041bf705d49bf5e0e242d46c7135d31f30bac9d4fca8bc0b3eb1ebced0197b651df4c274178e50f0ecacabb6347c8368b703d386e39000b492d5e05e78af6b0f346add22fbf1cd79e4dabeff751ada47cbb475035f02ec7bdd7b0149ee23acccfe3614fcf47ad16e78e636d86bdaa4912431824596b9d04211a711ac9881fdf3e21509d2581658c5628dfe22b7d385f92a66d3a99e300df316ddcbc1ab701cd69d918523e35600580e3f3b59d64db4d71741d1264a17968eaf12f4a4554d1bdf6f4cc1ff27532367bfc4db2eb34561c4d833ee376c9bb229909e8c2a7187420a46a738eda1d5e0df214a6bdae093367990475d8fd6cd98a3d0423be326cad45bdc2fee870251aff78ef70e965e65cfc98913c28fd4792f318c80c5438b1ee9f59830c425cfc8f937d94d16724ed958621c93930d83d032e52d970cbddf0c70b1c48def96612ca460a88a36fe50cc6d092b9ed0b429fc4038d1f8a3316377714ba310d6c0c27fdfb990f580b2409ba5d99ce60969cbf85754f69894fe441bd7101716a30a108a1bd499943e0443e2da4082aaf287db9c7979660ec2f15f1f6a1dfc755922618132ec4db9ce0ffe1d90773b5fcbe9b7c529ba3fd0fb0b409dd63218a542ee759fa2756fd1ca9876868f54bdd98325cfffd5dc37ef240d02b6af9d79c9b90821876cef8a0cf22572056a19215a603635106d7a84544fae0618fce11115fab7bea6dc3b0db3e7bb370e26389a4846fc1764923f60502a08401a7162ed3957237efa7afcd9e3cca2bf4049ac4df15ecca4636020d543107ec31814c17a76f6174bda9817fbb29966efe577f135770740d0824a098d333c4d28e66a5b30d17a41724a3d325b8fea6692412a2c007fe59d05ef5ac00867c2df196ba682082e532d093b3e2ee05bfc8b447512695a053457662c83362d248b0cb02f2fd1d9fb938ea27b5bdcbbd4ccba6f796009da026be3890480dee23449973081093d35b2ead0dc4ddfd7d4483f34faba395c77fa5b3d97ec9ffe0e3d254f996aedd6b2f4c7de118924e85bfe52f444cf1a066a512e16182829f0a8cedb0c54a148a8445bc2632de9164a920f25c64d7087263af42572a657aa16d83bf69bd381290cdf054351414000270429829a1558a39a05096a663e84a4bd4bb0bcee01ed64377ba12ded2e9db806bd28230eae4b3180887315dd89f81be3c5f28ad08011709a72cafc126bc4f53500afe7ec873379a917626f9a9a566bd8452bf3acd314d1f1146356b806f4cc635245917d099e48afba5744f976d81295e75ef13996ace9177d745f4795ee6c0bd7e6439605f94569b68409fa219743890153721a2a8863f71a09228304c126e28415f1f10dcf72094aff0add33f995d88b61a3bdf26a8270b2344fcf029244fd5e0eab6c13ea8e8d32ae4c7e9bdc247cc0906eb7ec19094a8a126eca450407e9cb8421f0a0471132bddc677c8eccfe5839f2c29cbfc400aae8533d1b98286939215e32d6b6bb20b5168a15a3414348aad61cc2a0e06306f11ae216eeac5db1d9388b06c6afd731b7601627cafbfb96a8fe7a9c7ad7660aebcec3b831abc197bcc6814bac7eb7377ee7ec22dce424400e543c98eeed06a25209817a814fe0529b461656696d2d9dd0ec5b69372e082871b78faea8116512a28a389aae08aaf6faf88e9c02bf09e5a50df2b62b4341139f707f9f2199b99080614bd55d795a9f944084704f7f6f441870f06fb215050bdb9ae4960ad6b2b430d5046341ac54d1f428b0a383bd6ca9b545ebeeb9614ee1fab1b4ee9c00ccc6cb2621f0bf968665d469631087f9c0ff0881382e90678a40f921cf86b8095b1a3742e618038eb3a171496eed6cd8c6652d1813f23bd58e022ce0c40635ae6bdc9911e041cff4d4c3a955bbb20de533e6089e195bfe625eefc43a975c355ba2b2215fba4572918f97221000179f334b4d706c8ea80801d1969d3051f2f1df2cadbdbc5f54b534cb52bd4cb1b0fb8d6b62263100b4ab18895ba8149033d4ce5b6462261a4eb2e5f44a7ea1c1b49eea0eab528636eeb3aab8c9eb446f60d2402ea7e0aa4b85c662cc7d92be3eea2ffda3add740bc17b7a7f2d16ee71c7191866a86620bd2e6969dd35200c9e5f4187bbd5acbdabe88a8c11c27f103fb617b19271c998d5279be33c1a6e1af097e37f3d7d84963f53f8a42247a1de59983ebe38a1eaf2e378f8a2ee3e62613a6d4cc5b05471dd4833af7f2a6fd29b85093c6e5e17fbb4f1c2f4a495404a479c2e971ca704d0930c05b1e40816c9d02cb14caccb1e7848fcae19351d4b9141e1f08e6f431cf7c44c30c0c2a53322020565aa82808c2b13e1740eed2eef5948d60b310c001e8df94ff4ffaac82ed33ca1f19396ebee75daf2f3d3906bfd9bb0d9da79eff90921a586cdef7451cbf64d2cd058f3c1fe4ffbbc8edee076a4dcb636b68992198af5c363b810ce63257be8765221d3a04fe0d78a3c0cba5477b2085b82cb69ea2aff9b95b1bcaea734e42bcacdc0a479319ec7e881cb1907e5d302f4609ac9a443dcd64f785086f3e49664e40ebcf1e7ad76fbed6d2bedec52b6da42a45b6b80a73d5cdf514a986ac84eaa035f4b8d62223a17ab54c6b9fd787d0a14983f2fd3c8c22e6637a3456a387d1c6a415b2870d6fc3b950130edcaabbba59ff7d96fc38f6be5b20fc78da005c9a9425525e993e24f4cf77a0a38e855cad2732b9425312730d9f3dd6c87b495cfdac81e0fdc5d3274a1a1747b93607f7be8253829527e32fc38f4e671dd7c365500e7e11efb1f6d1688013d9d9e7ec3e7c04565d94a06641ba38fc98f21dbdb91632789121d5b1a37343afd636f7f7af3a4d85c906d2d901d43e47626907bafa323e250d6b66ad70d61c9754ad5b3e50ae80ae449ce380280ee9403bbfa41a6d92c63971bd26dbf5858cdc252bb9a46ae59e7c7427e411c4ffa8295c3a28ee8096286e603135a905c99e9e5bc6c16d5cd732c8e62027bb9bb6c6926abbb42edacd17f22a4b000b020934a3166506756effe2926a360582ead7fbc4d38458ffcc3fc7bdf267b6937a92660393a5bd4dd77aa88bea6b44a1b83297fbc908343246a8a5e61eb960e155b7dfc18f207dc5a537ba5e62087c349934cde44a9438475cae112be2fbe00d1abc9247f5da532222210204dbea39c843e7f8035d383b2c5086a340071ba8af48ac7cb325242d38ed3c04771e08b71364157ceb059ebaabc9e62c3c350dc18d3ba0e9956d6a5f60d38da31b6da781e7f33aad6c4301de1de170e2bd32c50f493d2a201fd577a2334b772b5da6f890ea0e4484a4639caa0368fa2b14504f4be5881f9eda1728e9c10ab19337b34801c6ba226e2a7fe5f58f22a5ad0917af0cbe99cd03d36efa602da0fac2a64cc701f7c7cb83878f7aeee022adedb1fbbfd3f7922ee4f817bcb16c5c1b62a0ddf6b8a8905b1878180f3527d00c959df0474b02278d111ce452042bac010f38f2f5bbedfd7a24e6915787f51a5ae1eb81b0d68273d2becd85fe63457422688e37b08510a5a89e3d1e127583df87d41ae68c3623502169574a8e661fa8460c2c74ab562bb415b915b9bb6bcaf2e732c03d522bfe9dab1573c3fe3f7facbdafeab28d128fd0203ef175cd2e38fbe2b0a52f0a2d25d42923d897033bf3a5e8b33bf1b75b8a4fee3ad3e2e7788dcb32dc35cc09400599843ea2a9ac306401f5236910a5c8aa83d4bc2887873f99d1013efb0d2fa108b0f451ff2b9f1b0dead18135a7eb2412031c8e02125aad20ab84267365ccb068032412a7805e766d0a573c962a8e99e5eb59a4422ac8642dd9a835e34cac51d2b503f6e59f366e5a2ef0c0d59c61a211cdefabff1b6309288701bcea887183aa0676d17f296a9264227d3ae77488957763432181d280c05f1c8e2ba1e9c826ee45a660701c5c0995168b0a4adc24e74f3d7e4c105dbce62967e2bc516c7358e661eae446704f5776f329248bd73419a2691f5624bdeedf519567d3fda1c8d448ecd965fc6ff34d516a401c08b6b6d93521048f4af07fe8a371f39279867a9bcb7771e946c3f880d763c0cc75f8e58afd9db44f24fa5bc4ca5977c98a2fd7749146634ceadd0dd5ca3a2bb9ed952f37f27fef9bb32b7b66ed1a50e17909fa4bd61c78889290d10187d3fb7449751ce19c25421e5c7b8203a2412188fbd8f2d5a0369f2a7b0829e7cc2f14752bfe7f3753b513af9f7e221b21fe1e3aadf3444994357ce1545ec56f486655c3e5b9102df7b96ba8e19ee3e759093058f77377b62e39d6a96bb11c90c9449592e274ce2bf14c78a5a81c41cd54d858f65cc9e54be9753fd26f4922bea6186087c1ed067069b4f705dfca94c982fd07281a425a9219310a0abe1a6ecfa32e011d4445707812a26e1d6e0f767c007e444f0c37eabc447c0068ae5b6fb9a5dc886756cd10860523ffd3d0adc5b7ccb83dcde5b72519968a3c2f6ea47e7a3c9c9dc35f409e11ba87d1d822514e791df285ebbd0ce2d21346df40ccefa51908d586e278f8aea2469c99bc041067c9d6de3e812508ac2deb1ff96464db270e1100c464f61a8418c41c4ff506d4805d73f051268ca88c7d14109201fad076a3782b8a8f49dba3b47f8221480c24cd6bd3ad374086418c614aff0442a8839818da0615ce286ac7415cc6260c1998424a40820917580acbd305355d0bdcff6c0e24f791823741e34ca933fbe8189261aad946b2ccdfe2c83d540f25078ed5568836ecd27bbb5a46955bfee050ba5ec786e7d2749a92166824cf822ed2a87faaba309029b60dd1e27d087bbd91b06dbd405cbd1f8b1bb258c90c3bc71ca9ceaa038eeec782c037491643bbe8145e581331c7e7a76135263527348ff841eba776a6000a2f9faee22033ed89c9cecb30a6a04522359221576cdf42004724517429b5d2a687e4638b3a8441d70176c3f38e80e252d0f19655f69bf19c4781c88d840d6280ef35ffd081b9895a2bade66aae3cad68d87e2234b1d412f7ea3f4c998e0c8c27d6d2966ada01e8315bc6e3c48ebf6ff72954838d2a6f5903779868e8c520a7d4a936c340170804aa29127b292916dbaaee3af6c3562d344b26a2b788d122e35a68c52022eaeccf9c43fc050e537c8e72ed03d843d4017d9399c0389c68048deadd4e18f2e6d3dfe6b9ee7ce305a8f8cac462e365e545279923857458a46b8c75c387e1885ef274fd0fb8e20a1574497990d0f41730dec89fdfc730e42a6563a1b128842988789152409e6dc2740fdf560cbebfa8d97ba28ff879a55d1b8815f755893c006d71ac4726bd0b31bc63ecd315f5ed2ce6ba50d7f63b28f8ffb48780b6a8315829b00fc6b2ef18a33f0c0cf92363b058dd086268f5311dae02b7b8651a848575636f3051683dbb538d70e0b3074fb626f073ce509e1991c816be4aeb523eae3e2ee50c0d1a2ee1519c7a8c1fc1617bf1615e310bd9ee739ff65deccbe5879b610d525459d5fa16de60a8c5aad8ee479523f41abc1f39bc3eaa46990f88bf7ccd92caedd047a63eddfac752b5e96369954009408f043820b46b6d824c573e044aae411b703c1e7060946fda83ce8e7e03eda4423fe0ae0e60e0739f5a825a1af09915729b10f00dc0636b1f033d774413a08f0f38f0904f4dc16dcabf07a152a30be0b70a2060aa6dadc1ebe53e010574a317e00e021870d56bed82676b1f037def401320e651f6e7fa34fd64b25a352ae385721beae9da063bd7a77ac5c0c3f2a2141370392dab44930fcfa6f517a93f1f90e7fb559f7676bb74498596c97365a6864a617229dca74cf8bb2646057d210c91e2171527beea5ebc8a5ef39e57e1e3430a1ad0bb56a704c687752f4ed24e47be3ca154438139c79761aab3647d9411e5224fbc4062dbe154ec33bb263b50f3d96d9628feb90a7204c53065f67c2fe918fd3f5d938078642506597c27cda7a504ba941aee130cffc0c30d58f7d458b72fac5c67703fabcc56883d22da4861870c567d923e418c2b8e78651a69f966a8365ea99f616a949d991b4d93872c34de292308d164fc28c97268813518d08ea68ab37c95f374e37973e44fab3816f24c1844df163b880ce60a262db2c8b8152392f91b696896b40d36a4b0c04e44aab5732fd0d238180c7eb21d35144f76c1d186dd4a88a83770cdb67eecd8862b641c4f24272e59b1efae25ade08b6cf37a1a03931ccbe17147670229c8d4fe5f34af80ad79a9159b959b6c43d0ce6906cfe9748012f7aa9c1b039546cda5d996e7f1746b602f67e519e0136b01fa8c729085d0ae22c1417488ab82e71059d548b6f90312442e86965b40e4e9763c94c7f314dab62a318961819693410d418dbea7c4aed6e7e801eff4bfa9ffdd0676d29062bcb88874377cbf4961787bc98005d112caa382a4f3080ea91139f396052cf81d41709dc2b78288fe61bc9b4c5b3aa3c524b12257eb38ec0be46a7add106f011402e6a233a162f0135caf034aaf728351206055a50399767c1d7cf1849791e28b1a67087328a5d441c49a8ec687cb81e6492b4e0064a9e361e91a85abe2067434ed07f081eccdce730b0e3daf3edc4a584906166d5b9384ecbdf796724b99524a01d507190873085db12b1b51ae18968dbefaa7e9680f652a95aa5df4012f82b27ad124c2451ab660112baf2a1949bb15cb3854575457545734b941aac90da290160703c134f518bd36d21e8e74b4c73bfceeefef9b1ca18b1a53b7c911802ae6d968f4a3ad1bfd88763bb646d1efff818a699a7669a351a783eb48bb46540757eddf36aade6754e7558c45dab52b62bd6b3acc8d412839c6cada966bc8b82dd79854e3ea09d8eee0273d9227905606d3fe6b1455db7834f77234f7dea248f460fe7e0e24fa6949f093deb51ed993b64e7e16bb8be93fbfc241faee2bece13be6195d679285848a2a2aff85248b3a7aab099227153e10167ee4b379deb17190308c64654e72d26661d8e768cb0a7eb69ea493d11ab397e2d55d1ad2670fe90ee9e13fc10a4cb2a84bda4c3d1a6a3ad99b7af0cf9f5b27022e52319eccf37972a783eba583947d8ece5e85ea64aeed20d1ad9724612fd3686bd7eeee1569ff1584eb75718fea88763208910a9ff44b77accfbea94987b5997a14a0665f80ed43ed16c825654d076e3bfd50d2d77af4663213b263ebf26be9d99bb0a52a4519f22d998bc366b21aedc6a8eed87ad3dc7b294875c7d6236a9703563e98dd9298c81efe7b082c8e4947f670028ba3fd7b8f48ed4f454d87b405e18c9a7a14a0424cfb8b7697f68fb475402ae93348bb961dbb344f5b62b4595b2189eec00d48cbba9604fff51a85ff1805d262929b0ef9d66fcd7edf7befed745b2fbb2d89fdf516352561bdf6da5b8f75ab659b8e5d1a52464d49642f5f7eb65d9fc32d2af72fb80169a93cdb8ac915bee41fb1cb942632e06994f4971657f2fa7d983dec8054a8bdb7df49f16ab5c954af3242a982694ae2bdaaeb80edee36154c80edcc24f1b44d57c4817a8b4050e67e17812a3f89877780ed027ce7250da372e58aed8eb94da89052ab875f6d726e132abaa85bb762dc2bfbd42fe360585bf0218caa0e37b6c8834f35fb41b8c9e66e3077c2581282108490060c7bb08ad2bae40215f10fa73a490f794f15a5153bd92d5011ffa43ac910c442b54045fc93ea24100bdbbb4dbb052ae29f14c4c293dd0215f10fc4822f5011c44263a1b9dbb2d8920186c58829c1ecf66ebbb4b0ac7477f7ebf66e9fa491b6bbfb1aebbe2c192bf8bc7bb79bbb77d71423a60463223901c37c7777abafde6b19d7dd5f30458af3fcfbc65c793b952d05ec2ce4cbd89076116a56560256c4f40b3c78e3a68673ab92694e0312e16543e3bb23febb05e20ec7006c54be2180212ad304a0f2cbc8f8ca448c0f95128c133f3c41818aafb7201b72308e2878703366bccb161cb4dc371419e01a3f28b0381f788271009121a4f2c3e6f251d0a7f1d2b2222384f6339eb711cceff83bfe199fc367d09df8fd506426ca3e8c84320c96f32f515e0173fe301fd832f00388cbb6d31f379594ff0866519190e737768bdd22498cf6861b2f6359dd8da38cd893df2c8dffbbc1ec6ebca08be33b2064b81596ff616db2df188b43e6c5a5eeb3ecd2f8cb8a85d29ab6691f4378086071706e308f322a610c91d5df60ad7af83ec0a874a80ea5023be432e26da787bca1aa01677128f004d7f097e21f836ae2f539bcee54df6f5149e3c615f3d86a7b353537482d8d70a5e6c6e00fbabbbb3bf18473eeee1cf6329d181f93196b40b8caaf84d61b7df2d7746ada263ae96f6e00b03808b035fc9900d565c82cce7c36e588714162a5b68c2ac7ca037bccccd5eb4d506f5a306fe4e815dacbad7cd39dfef8bfc2848f210a581c21946089a142a4aac439e9ab5eb1974dda1583d9a45cb12c8e7869565e4632131e235481dd007b60a5184173fe42f8fbd0fc39160fa3e7af6ccf8f7d7c153a3f87c7e78e2ba6c578c555beb9d862e672b4f80057e326f3e05b21c245a0632ea8f11a87eeeeeeeeec50077f10033ce730c033380331f95992c4a7878f304f511429289607dc9b9aaf383f353bdcdf52acb6e927b8adac2a67c05e55d934100fcf32110f0f37598982daee6dbbce8c029732fbd7093d7eda2ad34c03ecf5105fa4aa2dfccc2f6e2ce1c94f1655e4c93e04f130b7b9ca8ad9c96a79c6af9b10ab349daa728a9a737fe5fc9759113d4ae6b22d1eaaed431516b3ab7e30bb57171b45f6d8871a06d202894cedd9d23644d4ade12318b6d9653df9c030c1e060f05d5f8e4375ff1d73777777df0a0ae1bdf7de835f17eeeeee8bbba4f222776f19db92fedcdf95adb65b6782d42bc2e47f3e25f7f7defa5fd5b75d9a25c2455e93da50c45ccb7a4b6296656d5bed93dc3c2eeff932af7b8b115ebfb7cdd2debed2fd547ac2a569528f1c2ac143f38c86430821dc7e408cf3abad951d49306b6fd9953f9fe1e0ee6e0e95e0f17677dff3f7de8beff97b9173ef96ddefd178bb71bcbbdddded10f280fbe2d2c2b2f25244bf5671f7289e46bbbbc3072384105ad01d02f1094970e41af7d2f4fbedc5cc1dce3806aff79e777bd632563cd39cbff7bafb69b83b04f29efb24c1f860c717e36b7fefbd1767de7bcff7bdf77677f7410895680ebaca24add880de707d770abedd0fe6708df7bbbb2cfdad0be13b87ba0f46dd8f6269f679a3581ad80dbb634308217c6ebde5b0bbbba13333fbe6fdba1b7637ad6fa574f78fe69afbbdde29b8fbee6e748fdbfdbabbbddbdf55f7f7e173a84372ddddfe1a3a7cb165944e83eeee8e9017a334e8d7bebd965c9aaf90b00f7531494583f7de7b0b581a16bcf661ebd97bafaac1647fddeedeafdfeb3ae2f7de7bbdf1eeeec26a866fef55f7e70f7ab7bf6652b69a6f1d14d5ffedc25da752c0ba3f0a900e9105d7d8b70db184bf07a724bd84d949202e94a34f4b4e4b4e41382da9a7a11316a724a7208081ad4c47fa49c2ccdcaa35456fb1ba8d8a5bf449e809942ea217af76981791688a4fa95d24aa3b5c869bc122dd3ac44f732fbe217ee28bb2a8c71045e01afef2c521b2a01d0fb1a4b967d1f83e4411b623dae6886d9bfada8eac6e735ee461743f23b56177694ea248d4a7e6227ad57554d57911ecbca83696f24dc8f3a2f6577eaab0307dcb7edc25ece1515d61761bc60876c809259a7326dae67900cd22b5fa6e83e2d62d95a23946e244ec8a54f6a2cab46bfb5861763be4844b3967a9f4cf719247db78b57d807d98a9a907337785d9cd542e68ca1cf8b04f650529e72c95fe39aea6618f471dc0dfec48e6022958bfce7fe7dbab6adb81dbee3812b0f5e2d5b8bbbbbbf760d6d9bd6d0d148eec6e1d90acbbbba77677df4136d73dddd331606e193431c2921effc1ec9867795054b44d91597a3d8586d4f94cf876853bf7f86040985d4d8dff5b8ff33d20314008e7fb87fdb02b1882203c1e3cdfb6e57d8971644cf78a09a744b2329dbf975c7560bdfb5796bb530bc3b05feb31fac31f0be26e5999a5a22db1d9af26df69f736b98d32499f8f341ddfbeb94beb71bd6fa1839f0a445d2764c8a202d930eab575458cd4ebdd1dc88651d39c134fb4cdf3c2ec38e8396871f849f3ccefda08153fafb03832c035b2c03b65a57821b1a8dced50c741fc2ca5514a2c94291d87519946f58759540e3fc5b559d2a2483854dedf775de3fd688e196677e51c3244ca3939c84773d773129fe63888e5e5509eaca8401529aabfb424a6a8d5578ff1cbfbd6c908916f658f5934bb1e83d965fdb4367f4273fc7d3d8fb447fa4d4a4d87d70e5a1afef764b6b84f07591d8d7abdebba88fcc47f7d0bf6dcf2ecf2cc41945d280fb96cfca48576f3e8d7b5c762393b5df9d16469a2a69d75bdac60ec737d122b0957d1dcb57115d5c64930aaf28f0bb32faf028bc591cf49aa0321db94cc1deba5e07a61545a59e65698bff23c9fb954e58ec2f9895fcbc2e4dfea4040be85bb43a9fca4395e99f357be731f9f2ab2b7b68eabfb5c55647bfd655d94873aee824cbd9e3497882aa778761cc449da866d9c757c45d3c19e83f6a9c8686ef4da94ee22c6c153849ae3cf2843d1a812cd05f1d54b2f2abe09814f16477b7ef7715407f1ff50d9d4cb965ad95cb6ee1987cb738106356268139801543f753400584791be8358b66eae07b96f5d911fff1f4016c7662b3fc1398ac79efc774a494a65e186e8aed09be5fc55e8119be3082496f327d1b927978b2aedc9b7867f4d89e304f85fdb4d76bd8549b95dd95e7fedcb7dae6d2a99191b58abe73e54b845ccac63a266d96fbd32f72ccbdea9b565eed8b38feafe5b2f8c06f1ef8a54df42f0a2e9d882643e05d012f2adf7e78a6df02ddabdb8c1ca1fcad47d74c6852a225d64f482888310846fa469a4a9691a69563abece8774cef78ff46f92be4825252137e6fa134606218c569c988c3a56f5d08a96f524b65d5f5178c1ab9fb6bd156a3a2ebfa594bdede7e11303b63228235a88a0eb931f65c54b48f8914a23f37d6b3c3609b8bd4d8aaeee5c07ec313b7d007d4be30f45e5f724ef2f34af8061cf8aeae77b9fb79ddd657e36cf193eb890dde1eeb274382cbc438cb284284790a4462e660389dc4d98dd8c513691314aadb28831ced8613fd84f7354346a85c84f1df683a4b650c5fea7b7c50e5fd5313ef3575a4c06f27caa9471dbe10d63f2040f3c9fba03ffad61c2efb01f25b40d9327b44d07e4f9d47ea1cc87587a2e3e04516a428423cc83613e291b6caabdb7d7b355479674b7773b7ccd40e8eeee59f27efd9e3feff6a5afbbddbdbbdbbbbd7a4298b0e4eeeeafbddb5ff7eebe76efdeee959992887185c42f771702c3e4879612f9dc9ffb5b241edd9154fedc9f3ff727ddd777dd79d7d71d1bc924f814bd263878123f3a110ff1a9305525c4834b1a3de5a9aaaad8534e54178822cff98b4b8885e5f154455e24f3dd3b02c477af67eb3c0a7d1934b974059f1ae65f3e3e56a23fbc0b8d7506ddb1d5e5a7ab54ca4fed530d01212573a4f203417b4c14ab1b954125fd71d4d5316425a55e403c953b52252dce23f1e22c4e8cefb7168769c60c2f2ad78841d550f9d7c6e51b0d95a54731d14b4691557f905834d2556dd3d3f81933be4ddf33361bd3f41867334c34644c33b0f2abad7252e1591cd3e3ccf8fe0a0f8b83c6f77f7b8d1940547e13c5c3da984cb4324f5554152dce56f045b6a289ca0a73499899682c32d1aa3ad00fd5908942cd4586c9c8fb157ccedbb47071f991a61363b3315d62b8985c362b335d9909cb4c9725b36c6472a1553551253155919f7a224f6b5a69fde442617d5e15459e09e4425b06bd98f8a937231ed403e84fc13b5215615835f4d5900be56aa24a623e0655d253ad8fa15551f48930341ef153ff0bbd80ae8b47ee53e4518e58be7ad674b0bc7c165255d98470edaaa2ae22c9ae6be757d47e8d7635b5ab8a8a9ecff3793e97d02ba242848bb494c1857c19b5224e4d3f09c9a18ebb11722195d1c7caa2f2e3a77e61f9d2f7975a7ea585c2fc0bad6a09e6f95958361b1386050666832c50e20f7fc79f17fa2a0cedc2a354fe12cb4acbd04a4b8965dbe6a078c1bb0013a56553e2b2bd5c75965c7cc8852ab7557dc85fbee51dcacaf7bb17bab03846dfef40428bc3f2fd5ea8cab3d0aaaef0c37c8bca6352d381d96c4c1518158dc756956d05a6c5532cf4551522ba6f7929b9d79715986d9beb0a33ea586a742a2c94ab8ab7bc6c4a5cb66a4771045d56179a3ee42339aae2885695f3944b01babe938eb990a72066c54c85927e445f8d21513049cf3fe7bc485e312b1bd14e23aca08c6c417d416d997887e5221fa40a6a5351bb0705b523918dc58976589a8e53b846bf913dd4fe9948e41f195a4f16911bd185657eb307e8831f2ea6cdd7de3783ea9e364df2b00436a983918ec2109a54214914ba708ca8bec732abae4addd99c894df27fb48d8f0084a41843d1d302087d8faba88fdfb3cc40dbd8a8af32e128249e0871cd918419e4c9c5c33c417def611a66b742a62476fc79db0b096aaad919268f6d09d6bf542c95aaff0d23aa0b84176108f35055158d06daf8d717c961eacfefe3791ba245dc7cc8bfb621a6f82b5f2447fe1053dc84f8e09fa41712646e4386cc57f16d88163e583af9a626706801095250c223372292652b92b36911e7c73dac3865c24fcdb4c64ffd938ee88d9f58eec6437eea973c7373ac97b4488ea44572b2bfe8f591663409af9147beb50d1912859ffaa1d8843060737ef8a93f080336e77a066c8ec523adef1a3f09f7683e578f463989c551d2eb339abd468374cd34213ef8af6dc890ebaf8d7fde086fcca4f93747e6641c549babce56be020d43a8d5d671aaa534505d208854459cabf8e40b6f079007f240813c331ec5c4517dc7effdba856bf07c9e5555f783b3f6cfda1b23a77f63d45682edae44a9712876b1386858d4e38951aab36039ff2ea6aac7213f3d16ac4d3c433c431c7230aafb909faa909fa8ac4f8bd93d9edd42f517d2b57b3c8ca37986aaffbedf2aeaeecb742d5d56b767eab64d021842667eefb9efae44e1e23dc6dd10ef1935e2d3fbed5a78c4a81b7c7a1fbfdaba6b2506735bedb2fafe06a398c74f8c6308d778bfc9ad8ba17db5752bb5b381ba6a67a3bee6b1a0a4a0ee578bd39dccaaad73a256cf74c87be609a2320f0fcf6bf64a62904a15cce7254fd3116bb55d2f2910ae56983f135bd148a49c4573ef2b5ed2dcab8e4c3ec23ccd391184ac254284542f24480c8387a7c6e7de0ee6fb7e5c4d010f0fa7606d98080cd81ccbb7878f708f35b246d0a5859bc5094c9ca0652a5811332ab1aa9ed9758f4a7c232bf89c522f51f9ec05c3f8c1ae229669b32b862a2fa8cbf96bac8476166221a22888da59685516276a32bb7630abc7308ad54bd2aa6a54881afb8b4ef517bca488595536574fc33c6901d2ade9f4b7b695571e867f561ea6a5fbf18f65edfbf7b61d966e61f9fe1616161a2306cbfbf75a54de9484cbbffccbb6b331bebfe5593e06ddaa4285c4172245a966ef425930ce5a56b6de3aa8a5217cdb8c62b64fcf9bd2e328ced9a50d07da71589af71dff44228cb05462a6806366cf5b485503d405dac2928ac56cb551cf6069685003246feb9e497a59e36bdfa91889f1630fc8fa2948a3b7be09d2cfcfd196158534daa0189162a8117e2cf2a3b2f2b6533d55327a6cb7a83bd5f7631814d763d8cbe81655a260ee16955f873ded80c86a53d2457e921515a24219b554169088888848285b0d08576529053c29e025cd44a526130a4b44943593e6bc83e46fbbe10dfd859448246b941283d9754a89f5cd0428484e6bc7ee986ffd8eadcffaf9538c1660cd6f62f46c7d13f3ad6d88163eac1ffd681b529a43932c04e5581b0f3f5d51400316399ba3c5fb9743a23de4279ff41da1c934aa7b1e67959f5050778f77a934bb273e6a82bff5451a1f15a29b83988a99c5ec980852279e186a08df6b3ee2478eb4263f52c945854238d1719553dec5ca0f0857dbc40f4dfc5b1f7cb4a59878ebd4d6f6e99e233da71f227e8cf881c998084a110f0f09050d010a4e6a27c3d51e0daba284ac695f516cab5da768ed3aa5c958c166a26652c1f8cc647188226519ac042bf9cb5558492931965f60c33fcbf9776a7178718ac0386000872d0161f220c86d20eb307b0fd55d05d59fa148266ace8b9a9bc2453ca5399e99229a52693a6f885dd6b775aa64072aecc005392999c9e8e77f8bea203f71b5292f591aacb3f82aa442d447bdb69426ea54733db56bb03619b7156bb3c41b08fc303d788d831ec6d152b846d360713a0e4b435b0ecb79c661efd2a997c30b68c4c10533e0e02df841cacbf88286e90d3362b82126b534324a6d581aff6beb4c306c88f1b286a58971f1a2450d302c69785941c3d2b8a844d1b6ae659e81856486a55919956169ba4e75b13471601be68239298c8385c4b035346d28c32a83816b748a0c4bd3b51766d7a996d2365d07d5b6e97849aa6db609148250dda4bde9faad61300e787344737e93a39178dc4c6433d924b5ea922a861fd0b4821a894537876eedd33da91c5821849619f3f3a788f9f95dbb6445ccf82e2fefa2e9bc746169fc9932174be30516ca503016978d85e6c74c313fe6855846df44cccfd128667e4ce93b2e460b982e0445ea7b98fff81006e6e54bc16442b4944631118a684af384e1d3ff852ab1b646d23d4cb9ba085159e83a41c30a6acf91b9b231938d7f7a3a88884856a217937111b3838070557e49d3915b3f692e8789c04bdc10697fb13452aa52a72ca0499ac27ad2c7683a26fe26463fbf09eb49f347dfc4dcd64f1669eba1212530ae78039313cccd813ef8e1226773b460de527ef2972520dcd60565ff24475f5a0ffeac7bfce42fe59c25c71e5d26b496001a35fb1d7e50a815b52a377d0fb73ec0cda4433e7c530ff9f07748ece126b334d517a91a8f05c271f6d96b54c8ebe956422361524563e12dd49cc7f7962243464b07a582da26f6931e72d4e67494ad53d591c93d4788303b168a915514ab906e1328eca03e212cca39ab11392412121212faf981dbcfc32e1959c545504a4a47d228ebbd9550bdb3c0e2a70a4c46d6b489baa70421c2338487a7f24bec87acaa33b2d242e1a9584f6d4d879f7f3cd5f39392d28509bf67b0277f4baa744f4fa7bac79fd9b9a3d862d9a511759148c4ab388222604f657f632b4a5555d1a14787ef3df6b175afdffb115f3dcc813d667af38eb0a9bc3e9be7af71f4ce767384e4ce717333a4fa57f0a66dd80a5984264d104254c36fb2a80641544f4bfcf957a724cd79454bfdc56ed1cf1045f8f073748e6e18bce941514c291e2de2ac01ccc56761564561be778ee55643e4cfa871c595e48a63e4181b06b30f53fac06de71f14f8c12a6e098ac5e1b678c1e08dddb5cf98be18e36ffdc1cccc7093ffb425aae75f8d25cd9e2bda695ba6b94c09db807aa300750c242790a3a4ec1ef40c583294958c52be08063f2896c63729bf80edcc74828423759d1ca1a8a6ae932d82f0842c66adb69573ca9cf7f361a71d22c2882ded1486c4871b13eed2a54b261cc53da18a72e51cc5c49ede4b392707b3d936fb04aebed6746673f0a5a386c00134d474fa5f555555d53098febdadbb0c43140cc3308ca9680ccbb22ccb3001cc2e9ecc2aab7c9a8b9c65d1facd28909a1affedc0a6cf8cefd97b5a4d73f139470d89df5cfce7f45b662bf9e93d465be2dba693d9f111a642e32d2e77cea25651bd378df27014d0cd4d4d0df71f34e1112d7437cf3f0712185b5929a6622a157bec79b1afa9ab61385c317e5c2d0570cdb2181205337bebb12c7bd6e63d9818ddca475ccab86d18163d53fee883ece87a53fdb123538adabd9f2d4f3b3ee2c389e62049092ba39d14b1669a0e86dd58ff9ac3bedab28f96653d4685e7e8173f3e4657c33ed2f7597c0c8b2fc62ddb64739689a9b82ecadd8dee060962d9f709e68db6e97894f94cf89d64286d28e1e1dadef67ef7d50cbd9b9a379773141f79f3bd577d8c31c618638c4f5be28ab1fa5859958c2fbe0abee6285abfc8a18b4aaaeb24e8495d156c23cfdcca49164042008290fb503112578c64eaf13efe8e2a65e5fb7cd47135f5e0dfdfc19b6f2611bcba1f845477fb0b6a4bf4f326025e02fe6e22f0cba26b4ae2ed54db8ef7d647dac8120650c4acde5d96a6fab568acb5debaae7d6e6d1b5d3f916172959103b7eec948c0abbefd68d99f6d53b92cce0fbf5e956a8ede1f70eb4a6feb6410e922d01f0f9c00210a8e951f34132e273e0072280439e90150b78d47d9dddddddd0dfb7378b7fc967f49ab5b4635602bd33998f06be4cbf7dedbdeab197aefa6c2f7de7bef591f5f526d341afdd66c447fc8c73e88949ab6752ffba72d81bdbc7e3599d1f812a39d75c96fee412ac8f7812e163517880a4fea024de1875b06d3a7c6e51013f69ba305fc9b5ad3dce39ced2dfab0df2098a78487090674f8502cced60c71421f54b35e23e574283f3acc344dfbf11e0bf2dea3564704a8620fb525ae7fbfdac368fc77d14e6e1d5b5142b86d7370232dd015625057eb41aad109b6327298ddacce0f6830763b0c3a80bc788d9a43442733785263ed5af6f78693235e60a422a60c1d2e2d3fce658a989a4e10b632ce9fc3512f7fc49f12f0bc81a7007720bb62bc5c9923d3afa3663ee6d751423cccafa3b8003c10bf8ebaf1f4d751369ec6afa36a04f043fc3a0ae7837800fc3acae68bf87514124fc4afa372bec6d3fc3aaa008fe3d75149bc11bf8e42c0a37e00bf8ed2f107f8755403befe3a6a016f805f472df104f8759404bec7afa320f03b7e1df580d7f97594039e01bf8eb2c033f1eba80abc027e1d358157e2d7514f7c047e1da58177e2d75119f8267e1d8581f7f1eba80b3c140f792677977ee7f7b11dda3d0669ace073481b52ce392d117bea1b6bb443afda51251cf8e71cc581efaf71d48fefbfe9c0d6952a7fff0f3afdc4cf01ba01ba7ed2005d3f65807f2aff0598547e0bd0f513145be73c95bf0274fd44818dff09ba7e92005d3f456073627b005d3f35b1f9d818b031b12d41d74f0ad8ba16aaacc4d6f550e54f82ae9f1040d74f3d361e74fdb463d341d74f3a5bd74c2a3f1274fd7480ad6b9eca9f43d74f75cb41d74f06d80a40d74f04c0c18f43d74f466c1da76c2817f9a988ad63203f11b1d55016aafc02a0eb279a6d86ae9f86d884a0eba7d3c6d1f553105b00e8fa09005bc74c80d83ae6593fd1ade32395ff29f798b66ea36c6a89b668fdb4b2cdad5ba13adaba1daafc5c65b97535373941a0a83b0bd49bf496803607161ca935ea3a5941182a465a19c8337ad692f01f6d3b6f731c2e65545f716e66f4fe151ba6cbda15810b9039eba7ae1d09bc762588da12af76268099d49680b51b221fab324b5ba2aadd14f1b1985dda12b1764430ec3de370285c23c6d6f588fac750efa23d4abb17ed2927f229d48bdac368eef1f433429f43e9ea434bd3d51a6627475a46bb1eb268c729fe41c3fcb7f9835594d6c8677212e6eba960948236224d9515961697c798e6f2a23257585a7e7bd17498e8bdf7de8bf107afaf9a48edaeefac8ab52cf7287eac3076d767bf72fde8c545c36cd47033d77b97d42e79ad601addf1b7fed18c76560bcb8acab4acca6ad17414a9ddce8bc5b2022357544a98ccb491f32339e9f17b1edff52a9a4e0e8f178d443223c9cd5853d3e9a024529d2b161343b3de05a593477a3bd5fb778faed6639aa6699ad6a2599a16c364c18abdda1aaf04d55beb61599665592bf01733c9f8c159b2ec87192df312a342c2aa12d4a77d8e5e696dc3386ea6c6e6c64ccd0c1a5406ca2d638d9f65599615eb9ba2ee544ca47a16ebcbbe2b523179c19948f4d2d274c08f4464848f697ee30212b73f58453985ddc20802d4bdb121a286101c103536a60a76b5b464a59226430669fbdd91b454a68d1a6e4642f9620b49cbb0ab2463fb928cebb2b20c939a8d1a6e46cbaec8a970a495ec3d5f236e5020e21dd86dea1251a3ae105c2472c8d5abd8d232ec8a91480f366ab8999136aab2ef362ee687d24ccdc5cdd4d830cdb42aab2e58c10a7233353637666a48238cf4be9f6bc07e5e912a49c2a68aafa8acf4c32ac8717266c6aaa9b961f38654e6f8bdf7de9befc22e8b8b96ace04c8dcd8d991a9615162a63bd178e84d59de11abdafdaa8e11a7da3bef71d899aeb6f2893bf8b4449c8e75eb187c1ccab5fae3ea2cfa8d40c99643deb10cd0000000014e314000028100c864322c158289889eaec0314000d839c4c70609a48a324874114858c21c61802002004c018811922d226007ba4a3805db096deb887e5507ced0ae10e261c0e9b19746e5b929f755c0ffcb3cef2c44582f75559974668ebeb56da7eb1efb99dda78947b1cdb1dae09218c0432bd2fc175134994bec46b7896044bc7845173fe2c46e51df7b5c5f4d7b468778eea0215fcaebff833a484a4bd0ce2ce335e07da76140876a6edb49d4aa51c6211be3ba3af749d6011de8bc2bcbc0262acd2e602a31d2caad05c622c4c465aef88a761d099a9e13182cfd81d5820acb5bdfc410d209c666fc18b62812414403f748be91de575773fb5e99c06a481b3298f4e5c9e96f94829dbdfa3281179a5780a823e469ed3f7478e89e3e340296e090d9c867fd7ecafbe138f3be13f2450918b83a0edea7e10c578214c482445510693fd4dd3096b9f9453316e0feaafd3e254f23effeda894f27c2286327dbb21b4f1dc1a052c46580c9cb48c933798bbfb5c7798dc156380462d862d70663e3d1f5021501299358f6960ac8022055da2c9d666158184b78b3c2a4910ad7f5afdd70aa7172bc4b39f75b7f305c14fa83138c818e0c4dc2a1286f635481b8b5e50a129aece4051e313008903750190789dc00e52b4f35babdfc66c812ad86c6fe7fb8b49da677f616d3c2eb5cb63c3cdc6325abd46c020fba6ad3c338157eaf0561db2f6724963d12e1ce3d073e6996670129729a24a773d49b32095f6fc3d4ee966d6806db66580891697a6ca1cf6c96c852bffa6ac5123d4ce9ab96971ce1ca6d8261bb4aac90c5c0e89b3ec7c0bdf368e2205d0531ad2c68ae65f9988ab1cdab096ce4a176ce37d7528d1d5c5643c29e92bd2156fa78973b10096a42a77c06210b9fe8a0540a08dedcbb00cd4588150c9affa766a82dc38d31225679a762f493d833dc12fe15efd44b4d321759b2357d499710caa815353771b9be985cafdd988b04a41360e942333b09d3ef01b87231953795e00dc4b4792c986af34d49778d9c8edd1f9efe5f15aa5f22a03f0e58e2b24e20e35aabae5faa921984c76921e3e09012b22c3a9c4ea107543e1c7687792c94a64ebdae6803a85c5bba2ea7dc0bae537fbfef2a894384fe30a9e7194f497737c56d4bc0cc2b7bcab69ce96d70161a6e1f33a0db085493da11408663b5a44d61eba45f81f5971383822585eadb935519a7fb343e98f9263c420216bd974ac3b8059847854aa9a8ae51f18976681fa418583c5160fe606c2275f190c53094bf7127032fe0b11f566ea93fd59946272098fe834afe4edb1906033c7e221474a8a08cc10dc6484f0166e55ab720ee3daa4001fe265305d369aa6515146df5571457644fd935a450720233059b8479cf53315ac6a5b04ce8e403a279497203fd8d333160bac88518688e7a387d4cda16141c4ba9abe0e8d26f0f7e8bf6b362a9d8bccf757433c01810f0ee17dc8a7a09b82f24291fd00c9fb2eedb6baaa982771704c6a8394983bea0e35c9980a81a9d0c305293cd0511b03b021926bcc4ed1366eefcb3c69ec85aa801308457349fbf77d40321183302a4fe376bc68f069066890bd2ffd214a46061284d7e02c8ea3ea2e0102690a787081b0deddbe775eff72461f097229d9f1dd4a5f98b1693519c45c56d0a7092e1e943844002b5e7d2573860001a00a6f8fea3f68b84dfca86de382aa46630d63efd1e573bb02a1320a55cc6c2409998937e0192d2914c2985bfb4a99509714e2596d20feca3ee61e3717723a6c2f39235017ae01f56fb96ecdd8a056ac21415f9f67c0d527fa58b07630b70b7e9b7c43f32ffe48ce070246f205019762b728aea5866c6ac6ccc8b481e175361fd9d223a29582a0b145385b49b1f2040c0b024cc8dfda61d2525771c08eaaf84f8b890737008e1f94f60e948f751ec22a4517e795f14e4831a2ca5bf7fb2560d6b3d4809e776a0ece2ee3c07126286ca1d288ded7941c9866045587840d63c9c27a851884ff912575897bdd5583b9bce9f3e36eb46350af565d53fcbc480b127b1a34392679601aee5f5d0adabf947d3569529af0b22b5c5292f39e46a1d37b86ef056177891f3e36c03c873da93dad86c53758c1ef73a7a45e34b73770422d20a35c80ad331ddf391642490009f5e82edbfb99cf4d5daacc3b280a24520e4b57c98c3e5522a10dd178149334e3a30e4258ed06e6eca138cb32b33fadebba18518c588916746cbb2755f6516994956e1fd4b3a275176734b739de8371e2785f46a61b6f38053f1566622c4f708dd1dcd79b3de551a4eae0954983ea896a10070868366062bbc0450730d29d897870edc77995a73268228b1792b50826bcf273f958d31008a49c48ea631d85d946f20ea23632aa0661352ac1ab76dd545f929a34bdeaa73f5400c13bab1dd2514f7e5d8f64c9bc959a705c3b4c1645345e8b51c2933f2c2c86240d9a32ecc72e285161aab34f8decc3f9aa05ae2d2e8b9bed17e98954a73fa244567568784e1afc910c73c1f22b652cca5372559712d4be4f883206f0bc11f7932b07dd15d755970702baf56fd8048de4e02f62db55a049e805b024662c9cc74cf6ebc4c505de6011c6e40764fc3c81fedf71c1ba480708a5b730b14dd771ba0e61f514f96774b284a1ea5bb3dfd973d2ac9f17236188d6e843bc87e54ac5bf61443159902361484b9f2424c08f9496b22c51b3266e0b4299fb7788b1dbe7f99a094fcb637bd9dacc0ed90835c7abc51bcd7003f596cc88ef17480b4a42e8ebc2d296aea2802179fa880e7acc1f1db576d1ebb1a6c772c6625681807b69c84c344566c597cca2526996caf8c084b934419549410328816e102be24ad1191844fc2e0f6af3df93b0a533bac7e046a1c746c55d196247d0614c6b80759dd9c92df8a8d02a171b4ef6e8c3446b16eff9e17813767e709fbfb045e40b5f92f74248782b1e5dc0b6cfd7dcf5ed4feaa2dac00ba408617e5bf5e7e31199b08b633f658fc9e8d959357b5d0b4dc307fa17ea03a38ff78b734a1c057d96bf3f86e6640593f1a5d5bb8521413111e2fc2497df3dfe082ee75c5a8635d698963b8739e492941369fcbd7c39a9248284083d924e4035dac2dd47d519c1d9174ae68e11f06440e25604966bdf6f9cd2490449644701349b0dc0e3089a87f315956f1052b9812e4fc5930e2ddee35898fb4987cf21fc181072ff2a8db4165318b078d6200bb06cc4e3b04e308442eeaac112031866e4029e4ea454c8ae38468b6f0f9ccc6b6daaab470f5207511283ee8e05696eaad5687e375cb944c29d8de86fb73e8d644dd9b9d586e1aaf6f97fdb2790ea88594765ebd0cf52cfef06e8dc2ad0470c72c103bd994dee6b40cc1c626a79a75856181c9a7347308ed23c045d5e4395a11a272683580569044aa1d75c1916bf761285b7e7ee1d643d299370ffb55aa254affb56dc740a7f5dbf386161e6b3b3f33bc7f9ff4670f8e1fd9786bf8f45d82e9b7c1d988b443e947c91b3f48a0bc70d057fe70ed4f8e7abc711bb4c8070efda593b8fc2dfa23dd028ac48ab00805cd3bab498cdc529ddb4cec82125342cc24b1e383a4b62c80f1b6cd1a60fe362e4649cbfbaf2ae5b3a200394d423ecedbc5b24deb3f4bbda08ac494525c7aff24e24b211ef7ac3a1ba29c99f5b43e45be3fee2b9d580de45ed02cbb57c8b75c0a27f1d944f761d7f6ed463b68480a23fe4096f36abcb1b4e809de1edd44111b945244115ca09dacba4fe1a849a55933d725081eef2a55d3ee3e76ff9a26f0ae7fabd59fffd06ea35fe39e9ae61742eb9914dfa9c9a6c4696f2d28f66f8c50df936d5cd6011841eb51f9a08c7d773da2494b54520d07f0e1eeae3b89c7304ff0977b0b173e086591fb2f41e61f189d5afe3ea41ead48fdd518890e067ae37799f6d75d57ba0bdf07ef01c75ff3e32b6cf343d0dea0c82862a1b85dc1bfc13e3a661d5d0f8f16f5520f8a43d95600b686e051431385f7777b8185db2096c4c2e6ff28b96cb9ad6e678d58fdbf0f9c14c3b5b816937995293fd7265f662189b5d77e44aa24ca9d984be94112d6a34d983f5d420bd6f04f87edd43903fdff4bbe86f2e19c81fde9045a636141231906966f634f0d30d69c594727dd87cf6646f688ac3fb4a56785d383864d899bdde7d3854b443c30e601c6ab231e97efedb3b4befc7609e97bae6fba18f14f13b7a6ad8ebf2db76f5577eb2b743355c6d53af5768afce912a790378079151b9416a571d8adcd5db73b5adfc20ab43ff1a36844b0eb108d001f151292e0637fd7a3c3fc074f6da55815639ec27e14f33763b6e6feeaa7d37bf74e8a0594e005be558ae7b756791801a3d20d0c0529b1d409d0afefe34708dbed0ab9c0e2f20a181a56b5b14152e00993ea3bcfe2ff745edbf1b52deab0958893d76ece1b691e3885edfd8bb7e572b3ffcbfffca23c0fc3ddc5c0ffe01ed6a918642a7828307b5acc04417f058e75c746c12b78a6c3d9f87d5cd203ae5473192fcb67a914c65b8041cf205ac63420fda7be34d9fd364177c969277c2f0120bd6356c4f92e1a51388bf46bea10532ed6c84ac1262e0de89c0323b060fa28f3be30b5f14519e713cb0bad1d7ffe92ad9439cfb81fb05ce2729015dd72ea798d851043814ffb5137aaf70d0bbc9f2ffd89ef04d24f55eb26b1a7cbab805450b5f136c1f1e45f2e295c8ff0bd39662db3d7726a680e7b58453c097b18d395cab3d1982cbb8e53e6df77bc9ad30d039b8a20226287ed04cd174da1f778e44cc81a25fa507bbf0153cae82276f3bfc5ef4e201dd594fbd2f453e4df497d360063baa91bbda60367d01fa2711fc408a3556adb00aa07860a6418413c81195376db97b34dfe07f8217c15ef495b79048c15579b92745215cdcd1ff7e04adc0bbcd002cdfb5331593aec5519e7df3b22351ed2ab7436db2f956055251482d9917497327432f8d19a12078864184b2ca4fdb61f2120a6325a8b50a00ef2eec49fa9b46401a84d237fbd250a179aa282ba2aae70eb65dc20fee68dbe4caceec906d2b063e0a40fe3c6726de9f88dc5a25b8ee87c7fcb6485c240c062e00c428ef8a92d159daad073b5c4189c8cf51bd7b69b51c738ddf8b15bd9ab8d8f1bdaecc5e189d3450d66e26837ed74b909f4b94ff182fc017a962d894aaa60b3c2d339c9a6cbc2f2d1fcc2d5b50c4c680ab72fa76274cd3b73601fcb0d7c83821272ec62b1e66f76d5fd027f8d19ccacf28ddf3438fb631c27e6289a1f4875284633a89ccebf745746d7b12260724507cabe3bac818077bd97499679ac64a1a19c85e2a6c1b76df1830ef60dc925955f9404e7dfae7ba0b8c51ba2efd3feec96fa3fab34bb7314aafda3969194a1b7a97d220113a083170e3248c5aec178f6d192e5e383df14f08bdbed806f482351eeb127bcbc3726a3b83df1696302cf7c7d0b32ebd1c9e6a5b3f363ec14a0284adb04fcf37ed5092b1a222ae2bbc1e594bb66becd137ff73affe710b5c3055ceea058e050fa62e7ef2537285700c3c88d15d6aaa5fccc7971ad3e955eea21181facc4855e3a11149c5e2be0216ef0cde870cb68d976c5278a010dd730900fc6d1074317040944346d29b9645a826d42a49252ea166a522a963d605f269e1ec98aaf863c8cad6254878f78f3eba72cffd1815813f6ef402c3078baa5b4846d75ae03c48040a7b137a792a654489f2062158f7518597dccd44d70fe79c44f25a9031355a349c7648c4883d99c94c6f3997e1ea312b51a62ef45c355f283154b307901fbf3737ecc861f1d01ddb08e28418b162c53e391853c0b9ddb0af361e1415a85e48457d3da859396bcfbc00d338efff53051f14c5e3849a397ca8f4f78028b540726431a4a8162d5af50c8a0f3c3ef2916d497b73308d1227d1fc40dc2a8d524f2ef56199c0bd26d653e2b9ac0b5c5f2294c6c9894630945c2f2df4801924c95f6f9faabeccf35916b85e0aaaa43af1e579b04369676f5b0008138ab10455536b232587e244cb65ce650b3ee6eb9ac92bf779e53fe3fe56a8df4e64d03d1648f61938a2ba3377d99e21db6481ab5f9ecd5ee590cc7f9f776349b2c0c7ab89ebadfbffcf522c517515270bdceaaa43944d86e2ed6f5d4f806bf173810338b101e5b46872384abe9e0ff0c48ab6d67fe64e91544554a6cc8685050177294e629bb5aa8d8b9c4bb18196f45724a97b673aecb4db0b8d5768d9cac9a76e254ebcf9646cfc11514175593cfbb70e0bde21d34e2719f4f5e545d19fc067881cb01ebba62a7d05e4e1448d947b0b365db77f6e850b5695581760616950a3cf15c86005bc1752eabc952e78c71bda3ff2aef304fc01770c6292b31dfb9589d9ce744b55014e0246382a21ab5e4c64486050875cbe27acf2957b0b42c6fc6817a3f983a15cbd40c15fae3f4f32fee37689579a38e6d74b1120760b43b247b6fb5ed22a20b72b24b5ba5167d2aa542db7540f997ba72f0a3659b9a4a3eb51e76c8b8524ce02018b4af1f3a9fc2420fb52cb5436d7469930c364dd053498caba3b7fb40c9c8b6fb214da6d7e4ac3d3b52870b4f014869cb66c335db77d0ff814c71974c97c44ce01683b810fe2ba6cf25d3e96f88f43b570d800a515d8b0e9a356c41f8e867f3422115d554c515800114c8a0065225efa7c7fc4e49a39c2626150ee58860e46429abf4926f8197bb21b107a3c015ef5071d9fbf9f53fe965318b5db21c61f44f9da07708a1d4e27167cffd1a7507b05f09cafcdd610302daa37ee1d0caced96156ded284ed8380fd97a8567fbbea1229a5916e707c3bdd35471553029c0e04101464dc25958e05f3cc895126cb4924bcf487752680f72910cd60e60dc60b5b15f824935fb4995a44cd425e4fad2c3194b2e33748e2c70284b8e21644ce1291121364a1f693f4a08038a7f2e9cf2a8b49395ee4c124e36636739b20042daef3147160a8d05af5e8d367051881f9d7c8c40fa23cc4f220e904c8dd3c682feda25bfee0c8ca75f5ebc296b6c2b453e01d93794f05b240be0f620d4ed020ec0cef57f0b203bf739960c2bea303a27720d8df524638558968f7a773b80b7264cb18b7923393a6f39fc4f7223f160ccffe098c72efce8d2b76ffff6505b10b2c7ad33ef1d794d91a55ad170f5ab43134a069c20da9d4a22419230f3624605c59d7652caf9827a13867a0f7e126f46a86f2f044763f2637800b6b4264192fa06e864cfd13be5a9add8da412a8492159350732bafef835e86778b746d128fb153c350a27e247890d949b926694be4da24f1f19dab7a0ac8f626c4e4ba70b430c0a53b0f660aec2b84b4fd56a7a5dc827c6691276febb83a6dcb5d18dcf0f183db3f5a2c3cfe1dd81185c017078c6922e7e2f207dcbba08bbbc6651c6e529ee931a529a6b0d654a63e5cb782125421b3c2996f26ee59a2f10b848d457c2e56a0871c4ce8ed32f0c44b3743bb5fedd2ada06f3ee1b8dd48515e0fc668a2f37727565d04d9c8d449f3749c3260ca98982220dfb6a2057b62a24082a5b58a8e556c33903b5df3246bb7777c08d09b7e4408b1101df967e24ce63e665af41d7b3aa694ca8fd66f4143905463b933ac92742fb243e2656f9c414918a17964651ccc929a4b3b3094c0afa9ef10786181740ef8f34316bde9c0707fe5b1fd051e8d3269e64fb3dfb3f5569202b200888f65b1506343570d7275407c2f7e0455a95611012a1b27d71f1daf1caee09ba00a7fd8beb7f5e751c48dd890953366778150799d5032e677b4700c4810a10f8331a76c9d334d50cb872270e320f90c1963bcbf623f7a01ad867a138e7d4a7985dac70383bceebf45bb17467527e2350222041511def1a70c5ad568749cbb5b4f7a08c5bf0be0d47a03706682c4d833773f8b77e047b28a6a251fb4df10a5a22ee3742e79f8372d26fd4b70ed445a23e9b8dddbc0165c737ec2eb10fd4bafb673350fff583c6bd4e8f4771e15cc2e1f9f6b15b878befa847a3f00c1c8fd60b317ae5aea55e3edf281fb14d7084b0d46294e99bee6dd6966634003a86a61ebfd2293b78dd586e3822079a85d3898e436c8b30c52b0f359a38f08eb40320b8eeac2851b45aef2227598b42fe030ee3da0ac8e03aa9ade485a3ef7470cf230b39d38e26d72bde485dcf7a0b8c7c7378749200a0e115078e422b4a1a573bb4f991428357d913c3209993fa29a6e2567cc4d0f7cda2a1a230df4f3025a1ac5d9462725ce3860334ca053ea0419ea73fb2b5111f743af1fd024ad189dc0dcbb6d5f45fec49ee6b0f57896e5f8ba2f813a349943f2624898864a306b0b8e5fe89f2c4fe3d98b8c1b02a06c51e8fa00709aa6f016b8ed43d795c16c2e4d080af40e4bf29fe953057d25a5d45e802ef82b12aa19707b86c90be1e32b80302ee0f4db92f64b5803da5a440e04785d61aa623dbc0e5141b7d7a8ae2adaf96b0d0f2b41dd58115e61422120382c2668a6935746ab3e83e651263fc0a25a3d8c24e1632d93a6f38f3123a6830cf5c6d96ed0efdf0fc3326b5742b2a0100ac7ce8ce20c81540e040ead34d9b8cb6c9c1f7361172344282778330df2dc1eabf3ee7c30e82e7294f4cf06a7529a843c5c29cb74939446da25582148154343bb8d31ae40db3a626149d2120a32e6115ca041434469673025bdad4b3b740bac93ec1c6ff93ab4752cf45d68961005c360671239c5b4c40b4ccb27909ebd7b0fb6c158d0aac22fa8e15b0f18ac2ebb820c98471c713cbecf12a0d9b7a69c713b7a2ab8d13ea4cc12a6cb3cb68ddbe33d8597e5d2db52feb028748a4e79919fd76e938c8a9b9ceee01bc9cdceb4fe61121065224a21649e3870584c6ec49b9d520444ae8b84a850d861d540c04bb9abc504bf1ce46396e30ae1dbdd153833b12ab0832a6039a0d95abe9ac6085735118a0e3e7b9847d13986d7cb1577db8d90c72bdb918a251c99c22d0b7adc4ac58dbc21dc8bf809a7f76e30b9f2453e64ca2d83e921d5c5dddbc9d89aa6a429bf6b74760da6bceead2304ef8e042a169921c8eb05fea45b920a6cca495af57fe5126ef4a8ba8b0921bbdc1bf97837281849d61d9b4ed1d165a6da2572c9903ece5a2077ff1eaf88b65504d6d1662e40d7fc2e5220ccbe849920e007a3eabc67a1eba5bee90d024ea173fcf8c88e816cbfc8ba0692fba74c62fe610f37ddba3e7ac42288b6ba7af8adc0edff460dffa34b6a1c2c6e3eb4dfabd1c7b786d60a4874c31e86e37fde635a573f3e7f982fb941b131690ac8ccf53f5a200c5a805c1dde1ac24df0e36486a011486a9031ec16d1ca82841d998db675348160446958f078c02d4b87f679f30c23a7364e79348492dc44bc2559ea688d8f672821c25b9b67507afc2ac5ea1b8908fad724c3a7cc9db3d3e41c2279db28eab62aa92a7c084e3d82caf32b58c8eb15d401cdc1d89a205c485aeb6e808ab20f41a0e0f34ac914da819e010a50322e2dd79ed2b7138e9d5e57d97d068d6ecf3cb611e7098882e4901be81fb418fa12de9d75e0e36776524203080e76f1cbf3a500d762a241ee4b70961f6930c4b685a0af8f1ff39fc1a5fbb78ff732a4cad616dca70ddd2319a3c430556b5332c07ba93187af16886af2b04811bb13f1b5eadb6d0093e5905747eaa88715b63a2ba1a53a52b7ac6981f0a5da0201595ed7929f9a6605653773cea4b610307f1db405e2f6a92016886f94e3fa3424eb48d52f7d748dc20618f9323a7d94caee606b4db321a30d0052390991d1e177424bd54b7a33a6b59b605896f06816f8046e20bd5163081a13e3d1c9339ed40211529a85cb32f3af371bd54f565b7e67d3619689700488bebd0908edd90e1341ff4c2a22bddf21acfb36c3a51a0434292d6265194d42710932cd9c9f098051606618cd251d69321bad881e71252ed5c4918ecc204bdbdaa52997840c3b1164fb11ec451048ecaa2c7c9b414082ecc56f5d2fe40510bb588cf75e9145269a2ecfcc5dae47b89a1b71c10689dd213a0b141ae9964cefb20ef11bbb5505fd444dbdada8cf4c7de87ca5306404d1348fdf28d043d4acecdc481c2f8c00f6549ff24a44167d28fa95c6d4d30f2160ec2995c00742c3927f77ae195c4c04e733c4c77f960d122ae2de5b945a13faa54730a1d66cf0fc974daf790a8e72e9d1fddc53860329737ffcfa936795141e9610ed0c496a94c9cb1991c1b358cf3f00ead484241ed12abbbf7ae85895b8b725bfbbbfbef97aa1fcfe128bd354ec7468fadecabf02784504295703a2b3376dc8a8b11db7fae9186c862dc32201f8d09312e15cca780ff4f9102801bf37bfb651655d8e1c57800b88a3f6ebba091b62b354e3784fc17e98af12c7bbe04af064d450c49ceabcb219e1d1f030df7012d70d107e7effa5741d9013606139fe61f608f04605560375725fa5b71e4a8e6041ee2ea825a1a0bb1ab88b05eb52999928ca1e292807e0666c111466725fc94e05a12eb446a76f8cc2ea32e000a6619b8482b4f586fcd42abb9faa776916f800db05889c0a46d11c21c84ccaf651afb36d96afc3881238ad43d171309388c2410fb4af38c51af15e763a2c92cd3e295e927134bec09cb4682c69d40e0811e3cbe6445d42cc44bc0f98f1442a86d861e1318e7a610ad716af82f0347e046e789bf14af7580e05d986f1f6c22d8a1e461a17a17f2d9164fe948a2e4a67c1c5bd814e9ebf7879899468d37fa76ccde8f1f6e2f69f896b0f53d9ca978a40fa105bf1ed5e8f69622bc95abf57bcc0223e514422fe73e98306e904ea482ef0bcc6acdccf182ac8c4959ab218c229ae3d0c1030dc9c1e6b7fe1bee71566b51fb3ff86c77bdceb8f842b6578e567cb65a13adbef110b0fd720b1c3c2905c25c8b2028b704a54bf05d65d6703de89b2de48ce50f1596315391195f26ae8acbda641419ea518b8e8494b86d46f5999d1e09364a6daaf2c3249d8e387a56b85d07bc3e44ef9b7bd3e2eee033e9cfabbeac877035e3dc74ab082ba300bea6b60bcdce4a8e9ef238387beb6bf2b87a29dce11a4f0345a4e970573844338d3bc514065a9fdd71afea1c5df6be2211def5b8d81095649c92988b087e29148876410a82cf19aa46b72f45e6939c8637c135ce0faeeb392317301cf245650942c76df51b60205fb0cb5f1b9f27b0f428062d474f17d8c47e1700ddcf50111238113c162c76257c22be1e1b8e749fb9110028a82786a3363904e39cc55bd122bab3a5d54620239009015278ac6069e5596e0e1f827fe9e8b08a1b95406417eee750aae248f5091db7579c01f0dfdd807ba8253a9264eb496c4e5311fd145ea3cf99f842365bf78ee2187dae4ff4e967de762a6428080edbb0bbd6c928174e9c902658a8ba8201d8500389e71a8f6b85c3378de1753a7584cbaa1a504ecf6dac39453b5002619b1368db1dbba695967d3d275660d42a94e999c2ced324248ce0f1f394319e86060476bfe2e9798cced5d456feb8a0784bceb3a8a02b4fef9a38cd71bbde86dee3b15634bcdd2c689537c1250e1818dd2473869a3d08fdc1f3e17f8ce5d557f00b746dcb68a275c328a3cb76e26ebd8dfe4958bca2ea0e154cab01c206cbc0ee7e7a74e1fcf92d27e94637132a71f8d32c0abf772603cf6b482420ce3bb84d2e704e959af3bb44c4d5f2f672e50ecfef5af4257ee03172e18b538c6cf09d9f5daf7290afc7d0a6a21b06ec345b1f1aa460f768477d1318fce64c0eb61f96439869e6d67c5e36ba6b24bf287490c9b7594a25efe97ea5b24c256a5ba921eb46ecb436ec0dd24ff20a6bf49431f3197c754ed94959e2a5f10d24b0225c82bdb7cd6d00ae3be47d377fc592c2ed8edd7e9c16b7b08f8ab8f2118300e1c2f590c2fad3ddfab3634184d9c6dc77f4f6d621152f749ef010d2d386edebb1c4f0d84607b8c0b802ef76278c749fdc8bfef34289cbd0607605ead349320d77d4de66dbfcc50ad0960ceeba5583fc5357fed5906c960b04cc3d5d01dec2b3250ee02f833a068af6d28987378b002be7fd24cceaf36a43e046acc5a2862eb0ba4d1fba305b9a5c0e256026c431e837f5f6551df717a4a8e230bc96148a242d9aee4eb2d832dfa10cea6e6c0d905453841ca91e2a742959aa02f57426bba7e62917401f4a50a5841d4a2733057c108f4a5d433a75b6afded5d5152a8340e49ca6e368d5589007e20b6e2521bab77f1840ddcfdeeac47d7bd1874ed039d9c770404e1f68f490ddeaa5b484d09f80dea4948230f8babfe9388f66434860c34d57f6ae13354fd6f1796efd20700f63331e83abca4fff4a3ddc083a200b7849491c568933ab4a36bd024f8d64b5a70861fac082f154829aeb5b83e89040c0750fc200ea076f68384b0d8b4c40b61ccbf466fc3d4e7242157471a69421207b1648dde3cf19350a72bbc5bf1070d119d80f94cdef62e9d51bd6c1e5103ca7285d7015405f0a6b72516b54aef4ebfde999805d1d2029e7ac80c86bf4e77a2d166e72d4dcd6d94413b4d55d70e8b2e45f13a5fca1e148da8b414cfe061e050b30d1ab1c8151ebf741e59dcc425d1fd2a8e301f041f2e7428bf07d9e49a40edb06259a7728d7daa65b8bb5526060a2c20a2c0143fef1550a49c89843e9c7a07b466da2ffa82bfc0a6ff1377fabcc97a730177b2d1182857d9a51ce1328c868991c802dec05bc3b81636c260a08da31853d4a2cf02d1a1b5fb81d426ed0a07d7a3b3c2ae6c7acf264965eddec4776015a6c5d1655d1170d81ee433fdd08802d8e76024eda0e5f13017a43aa86179176a9bd0b2925f66d6c4d6a2882d9e4fb2cf1d466f673c76c4f5bf5aba274ad623f1e20db989847523330d89d5ab26f986a451d36d0803b569674e882234bb4d41694f2068409f44aa7b99493dafae5ba74692977352e605275ea78dc82be1ba41402c08071a3bc2c4aa17d3bce1c58c2cbd5b424d498a090f526ec0793ddd0807023c5cb5a326aff1b35446b91d026670e94231510fc3af02107a06a48e1f5fa33a603dbcebaed6e57d35836e8296da3c7866b910b32f8d0cbdbf35eab5ba1e4a5f6fef7856ca5a47b3930373b2760d0c5dec3d3952292e5ea00f75b568db8b47e6e39bf283604503d735c3449885685f80b5830074cd91dfa61adea43fc402f45af073a9af08c325d2d4beaac68cef0226dced70cdf05a45d5dec70ffa389612485291e567168633abdf8deaf96cbb3982d5447882466ea2f56e0b9772ad63c4ab8a6fa8639e6204d79c4413122b9ec3cd8313d8651711b7e0466aec3617fff0bcc1069c2dccc02e37d71888291a459a7197af0b9fdfad8618f13efd8b2f1f7bfbde6df6af2e720d87037270e2a69342dfb8434bf2ddd016b2c17cd109a615a76e0b7337b4e29b4a4f3d39508532aac180cbad20136160917f59dcdb705dade34644b8d2247f7014c986fa734f5a88527fe3b0fa6f68baef49e0920bd65aa81916a7a074ea553fbd083ea9929db2100fc8ec830fdd09620546f46f136d8c78ea9ed22b2e30c982e2e53ce1892be488012c26d56ae01d407557103ca68e042c58aaefd47490f3e370d5c30ec2ae71bf83bdd32e9b9a4ea274fd8a305d5b93dcf95b35d48fb94a3475750491cb8991e4ee812445eace2ade8c43f90d242998c0b0be9121d1c814ea3037414e3a7bdea024365f0388162d10c46bd64320081353584d5af7b136d50992679a2e961e047a0d218589911e4b2bc3267be1d51c92fa87c6bad9b120d94ebc4176a466efe43eeecaeb07122eecd2101406d6723770b5712bd40f1026611a8cf13ab0c47b656c9ebf6dc9906dd4adccc6ec9bc33141585392be1a15cce1176eb50fec0c34f5964a1d8f03c8584662a9427e686272a3311d2de9ba91d597afcaafcbad2344018c76b81ff4f189d1aa111363ee41723d0d6f5c7c796cdaa35348da99b3131073cd1c27c8d247dfd5c2491d9556d2e508067aa79840d23da9a3cae4848e439299349c9065aca89c946eb0c1633d23bc39c0b22e129d0968438aeefab9b6ac44354232467ec2a746547c38a5b5fe7ea69e02e5f75d171183442e5cd77531ea87b6c59377835a13db304e303f89670eff7edc49bcd23e267f1e49995591ac837c4c2df656a8c69934487e23f1a5f6287eeac1b91510164765ffc8cbf801fdaa2499117c95c589bcd21fb0a24614b347cbbf2caa967a44fa9f09dea4d40fe16b1100f546e2139cbd9f51b725accaab290df90a0726318521a4f0a79423ace9cb3ee7f7555dcb8deeea44c241274d92bdac33300350881ad34134d3aeaa248536447851763ce602a190e11a517e8a3bcb89a2e0ad6a6ea511c1f8c3962b0bb12f5445bf566b69e9c6c23e35814ab142276562e7951979ce3f01572c1c2c54ccc2ae5a3c21a1ae7f8675091fd4e13d855fbbb9831ee4800a161d162679a953cbeb90951e6cc7ac547c2fd2123ef8d4ef3b76fc775c2021fb1af66d4b7d216b56725121e5104568aa551ce7534f5bbe4d5443162d4a8b14b9759ae55fbc11a29c444f9f4e81106be4393c4e261e2d2526ad7c2501e1e69bfb9578ad6c690f1ac8925a0bdf5801da121eebf38f52923603667a707b6e1b3d7be49a58a3eedcf4eb08b15c57e2b3d95cf4e137ed809c767f596eb589a6997d0e7d0e684a7fb84eac592f44751b0ad5bbb0b971ad8bec6a0d6e20f323a6f2b8f56bdf19b925506ed41612f48ecd7cf5da55ed69b8bb4a1c01e063a86caff354ab61be810eae448e6efef4a870495c5bcae7157863424be8249e7b08bba4bebe83ce5ed519a20f12ef07237fefcfb5bed0b60c321bf6640392ee2948391b8aa61f17ac230438d3c16323bb3f96bac3146315948f3db9e90872bc0477e235967606291818b8e7b8377252a5cb8967f5a119251baa90a38f021f40be86b018c84825ffc4b63ec7642ffb0cc52842536def1c84aea85248f0a7a8ed7246ea0a5087b4c5915821c47b9139402ce3eda4729a5a27caa98f17a53d9ba66eb9c52b217fca1a670238007ce5abd3c9c228c86e9878343207306562b09f0057c729f2632762c088d0dfdb47888a4e8c6010edcc91dfe19f9158cde38a59593aac8ac3f7a0263718b174d1daafcd47bef94c2832eed10286313cf9605ee5affb8ef5f434454e943cc892d2d6d1582191b4a5a3b42577a964a2f65b4ce9a8ecad6934ab6beb6947900fc552f8740de032a96656dd133ced765d870066e59d0376f9ece31c9f7ed75f0dd3fd1d77fde4ac33919568834039bccca041fec9ecb8cb2e9180a827c900671948186c080a81a8fda486625a1fab2cc714fa2c661e932a45ab3a43be7b6e6096404f57af64d6fee250561f3bacc2d458097505e3dbc35de3627d6217d7a4cc4f273e45a0b14b5cd2a03ce906043d301d1cda15d503bbd586c59a56459b2c1491635173398b3a513dae75e0c52795c41d898ee20aea09fe89c61a6c68422d653c395ec6d58630b1efa0070e9608412a0a7c5024358acf1efee5657349d199a83165585e3331b348132cf798fbee3f6231e87548ca676e453b788bf44153d1a6c1a7608641144f9b5b722176d6f481cf97ded6c6372129d8b617326a82778e7fddc0a54dede8227f30d0f8cdc0524c51432884d0d04ad363e98c4eaa8ea628ba27a09773bc26eaf5fe009328cd8efc3f2ce01f0cf00a11381e0a3f4115f099318990edb8a93e1b5a4de83f065ad5705ca999dd28bea6d1aaf83662c95586f41d7ea22f027469439b3a054accec70900dab3e129edc516b1a8bc00ab5222d9f65abbc71f4fb9964936ce57406f91f8ea79b6c9217714e4f7ce71ce15460245c250437648f0d829ad18d1f639be8485331e449b4022cd2ab5d78139333a09343ea92bde12cbd9948892e83af1a654a23b2ea1f0bf60246329f69a5fc95e7f2b1da15d61bba57cbfcecb266e9cc95a0783cf1a932d857889872d9ca07870aec888ebcda1e69e34c4c1bcf5e8c479afed6b21eb56e934ad31423b6c0ff8ea5d6bd589a8a1308547835d6d37e0c907c855eb947c55f3470e2a6b82ed1db3765ac2a9c5274643c6cc632839ad777516bf9d60cfc548f04d85cba58929275f4ae5012a642f55cf51ff0bcf7d55a871fb210459d71190e0c0578626232b398c5ac8645b2621605fb4064d0e564f0c4b02f7609ce437e22ff76b5389929066b9495c247e224fc193b0193f673153710f18de535382a046dcbef7cfec178ad31ae930cd9aeb37b72e1945d670b7b82541130db6e72624b0114780663928feb660aaf4d88909e51b58bcaa5942572108f874dde98c61ebef640beef50b48bf095e318b3992a7a9b74b0a49c239cb208daf6222760731d6ed3590aeb80db310ffd01ac05f42b042aeafc78a2643b729d838ed1a73efc9c2607c42d491864cf4c7f96f26c30ccdcf185c386bebb80d6d0529edbccb38b9bf62209fa3cf1a6c680dda708527f21f7313bf873879cf00b64647feffe13dbff11c6e33341529787ec6fd0032156a6f262d4edec3229fb95aa21284e603c12f6eea5d6b0b4c7ae274b5267b22830e74a09f11db7b36c6c06313fe27b1fc93cbc48221eff618699a84141fcbe8a73c71151ee37a1f8ee88e010c2d06e34bc4871b95124f6864110eb79e14cbbb216d3ac8850ab5644c35a56c0c28bace3b298316233f90c080c2f526194ec3ad8f2fa6900e8eb91f14280802188b9574cd00cb9915a4d31ad0fea384327bf34c1cb5320fcd870c01d1721bce921b46ea0089c3db8ccf384638187170978616cf2b89139c524f4e459b6da178161aa76448993a69c3287602bd9eb4ed937a3062243b3376abd5d677e46a942ec598c522acd08d3a71a7afc22b71c70d32d5c25e4b577edd2ca2987d6af79f10e0f295bf05895bff5f388811e9e758a95ff120b5c3121d98bccbbf9d8eabadb9327a27e7cd1414455fd54e2b4b7583fbbc61739e3f2a85ba0c417b9519fbf5f6d38943b5b6b6d5d7c61b8a2029c5669dec1cecf982c1761385571b99198736ca2ea59a0a5164dd7bb40a0640bc3403a77b5e08cb6176540563f53c1e6316098082093638bd8f4eaa97d2bb3d4dfde2b637f1f0aafdbc6b6715c15eff9b8e7c50636f2319e2e94da17a9f86c878049ac36c287420c870b7100e0633cb31629ddd30b3deaa88e07a732a0c34620cdc8accc40e891dba94b2e00e4612336bb5b2eec19b44e656638fe821e3f0f4e10614bf341187994982a3d532c358e792e4582e55a908eeeb0d7ab872b51938c941f518ca825cc374beafc1a4a820ca87138d0e23add462fa33456fb46244d9a1018670fcb1d330fee58ba7afb382839d91abb53162cfd9b13a269ccbe79704801c00105edfe8d65fde1c3e53f0131df26d8f9580338a4566f4ea9411039d0495b8e5bb5144464d1abcbabc20c27f5cf2cd2f474a92b91660948b02ba202cd525b718e6739e61eddec530e11d8728962e1bb87cf521bee800aeb3681ed89fef6f5e43f7d9c14c39cb283a2833db7e8a2b9e0bf747f9b62d47c11ec79c6dccb431d059000abf338c3ae1e7892cd004e899ded6e494c2b9995da58c6049f100fe85bde0d13d6fc13051d1b1d1b3274e0e76582a6b98bf93ff9191e7f55a82828d74c091e5d59ab89d374f1d27d64bc9c7d9afeea8a166ed783831efd4a0b33a4728bbc742fd9c69786e92ea0e29576afbceb8fb34c6de35ecee98ea4aed0b224559368b144a9cf2f49d5ab576b7021ba95eda525a27a6a69ded7fa540f3ade5e5989dd5d81b7ee7cf9b946ef074fa51f66aa88264ad14159ca1051d54dc083dffd4c692ee2f7ea9127624e237fd01c4a764d88111307f8b039e2a56756c0b30c1290bbb0d68e947b954122ca516ac6f55d741361bd0f12e1b3ad42f9249b14a1d27d73d02b801f54269868924779d1c523d13bf774dbb7d4bee47f92f0a86ff9643d6a86cea1d8178f02055e0e94a98c3c73518ea6729d79788139148bc12ee9427747360d2b58e7dda38995c5c68504ecd68341d47ace3ac2b27f162becc232ece31885537a77e0abc2a3c03c208f58b11898f8b67704d4612363825c8ab78a8ddb11ba562efeb0bf1e813bfa1414fcb73b8e8756bc1d9d7fd260e0a9bece8b93116e00a9e5c47b015388c63c894589f9362827175080e72895e9fcb40fa596132a4d33fe7e2e2315b0320b8062188113b039ef850630474ad1d0ad3a320b15836e0d70ab10e54829d4d5f5154f15b5caaf5579231462aaac12140554f7672307d52f335d32a5c7892f7dbab84a461cafb970a034a88f8f14e6047d63f4a26e0fcd2c578068c9f4a97f940fe3b0fd14cd3086aeead0144dda803944f9be29a33f4329dd7843086052828aa8f74a96df1b1173a6556c4abb716fc6958bee727f3ac0a2acd7638c12cf9ccca1e3bb1bd64172fd4a92cc94cacebe1460b6c07621c059203fe3f46683ac102a7abbb49ce954a9a4cf286bb0cbd8cc85c4ac4b0065ec87d24cc2652b516461af0db165d2f506a54fde88bac5a9f0f179a012220d849d0cea89d810256d089524a16e3b9d3971488ffaa29224873b955bbe775237ace191f8fb4f1e89b3dc2a4d3408d0439f7f8615fda19a08bce4a614bbc4650a5286bfad4d44ba224c0042f8c04fce269c118c70d54e636044db498638224edd402133c7465cf5ce9463c42f2a20065b25c8421601308a6dcbe404bdafbaf0289f88e65565c5d0867000bd512fdceb65bc27f07b04c12ac642b40cb8cc2d206a2e1405f48c25a809f02b00a1407c6b3f0caeff39f684a19351accb5baa597d4f4973b50b8e136c3d9babaaf523188fa431fe0186dd259f9954a75a5130116469bb1007450a0e55c605902b6071ae87102326771f4dbe5fe130adca52d87f89c73023039100a8909b41bbf8faf5cb80af94ac43aa2453cb1dad77d2c6acad955c22c97b67bc630dc2b32051d144db5c12b0c019cc3f00a5381d774e6e8565cee133a881e48227e29ba8e2999be307265942e2fc677fe498b37930a1e8e9ae095d72e42c6cf949203a2f4c905e13d1bfd166ad1991075356340b39a191ab59a3f8c1483c2f49995f1c30e225cc4a6e6cdf887093ed7726244494f5007a757be496f973c444c42e1d55f0508afcdae60976c2cf04f32d42d205433b81a28f15f2109dc966dee7eaaa80a677cd52b225a4e75a443705e33f3a2b12fb68b08837fee121b66bc1488f867e89e8416e8ae78fc804ca911f0325fe49c55ad090d26658a1dcccfdfabd5699dbd409a6a064af1792f6b72e52cd1006b938d4ce9556e60781c68d617e3f4e6ba391fc6c40597b2a4b4bdf62633877c30e781ebd29735f59930d906df1536d2571b263ffce29d2158865034264a7d6c076c673f932a529913f09049379ef7fcbf8ff7b54d3f31ccd63ed12afd701ff8b27c6e5769fcc60485464a1888790a1b0a9bc0bfd9c44b99f35439d81408a1f3ac5b4ac1900dc50265e3fccb0f50a1ae32ed61bca9474b58ed664137b205b9e56937b5a9954fcb266af004e2f42b099006e5291210f74e25506c4232b532705030534352d975af9b44078535048f3ace542dc53b0e46b4eccffbbbc8eaabf10584f802e6ed26fd94010311e40717c0b7ef2c4eab815569f9130109d42b4e22c7b00d0bdeb17c6b67eccc78e2472c242e58016193c9ab366a8cfe0c33c2a4bc0c1740f31195e1f1db2e014796325137c16590aceee36b1568c69c433220fdb625e460604db96e49b4229c13f11b134b8df88b284b1da8b47e2c484cb9039aa704a0e5828424a602171b16236aab34518e40418c94c250500e9bad12979fd5c9a402377245e8db56f7d6f935bf1e004fc9d3bbe48bff001e1c7ef2dbd39edec951e8a2b290fa340c3512567bd0e63980d8321af004188d850a850184c126bc632466972a888d4e0ae5c4d6e20510ee2861b520f6324872b58549452dbcf11e3093af673029b93b8b1b70895d525fda7718175f2b1ebd104afe67ca1266e47a2706cf9d9f20034d33d38a0256fcfd7496e4fdeeab60ed81965241010c15b4f2a4e4ca0df7bd9fad1cda13f91ae8569ebf2a59abb4a71c898237bf63331a52576594eaf4fd5cd1146a1de4cb0f524507eb1a32471e6d13d35082d69c0f0d69ef799cc3cd76a5d2c5d5e3b59b0cfd422bafa723a2479e7bf4f47bb637424752634eb2d9d070dc695e9bbf53099c424a86864dfb6b19dbe0a2129e479cf38873f6943ebd5caf1568f935279a303fd7aed2e28b81b0cba0e45e58f101f05890d02be8185619d1ef4f9e71b6e590b92fee90a152101719f23dfb539d1de5429014dd4131cd50acf68151f32fee2be081ef93af27f4622e661e1f2608977fe6b200101f11f5d220a092090eedc3c4fe918322645aee1988cb4c62cd692c02c809a940437e4e0102ffc493e72b39f3d6fe05b9dcc05a5ccdb389ab3e45bc1b82b152a80a485b8c855b0065669ae0ece7247463e09024b2003a49f42dc206f7d8686a4a9ce87ac163f7468d896c5cb9e12e26a96a6afe8ebe9981a281fc62bb8129e9f5b8ca7b40e44416e44b57c20beb688806ab4ee770fadf602f474309d3119c44d2ad76fbbf0b8c1092f17e57ca26153acadfdfe07ee1802eabb8bc14f4ab481670b9eafb75e98c374d0702d2ffd09f6c6e10421b517f28e833c7ee25eff163b86f65b7919cd83ebde2127edf62bda68be4e0c6734566d03d172ea79a631696808a81b8141d747dd30785003536e2efbfe0a13a798a5440a1478cac8557d72b18e3d993115540612b083efcbabee9cf3e0919d827774a9d34f593b9b2e4933bc673b8590192d3dc2cb02816ee0e4bcaec066565df75e3a393cb918b801f953e0075f456dc7b3edc0764b66b1edea7806227843e662aeb413013902429860d3f1ec0df2ada8342d5de42dfe3aae2bedc4ac18622e543871d513b7468a58bfe5ec034f4186285ddc665001ef1cdeff99f6e481f49bdd4300e99cbf4ad2f1d5a2f73ad7221ded13c9503d6832315b9b5e228328a84a71031d40cd23bb6927f2e6061d31f7c1da3a1396dcfe05b8340e5c800c7be88b903a006e4f80956d3af3f9d6ac1ecf1a8632aa55183fa3b16a620ca69b1b4587934ae944e0010f9403ea0e0c4d9e90e24b70513c1a983c83ec762819fc6c67bc21e8a14af1d3d0b1646e7bbe85d2d05bda16309f63588e8b30a6329046bd17e3ec17b4bf6f706a1e204e7ff316f165cb56b8f23cc293e4c130504db2691b795c731a67e146510887e3820cd530027d1ed61337483c2511992789ab9093bc9b878590b6f578507ea5cfff8319e2555ef3920756ee03ed01cf3285f9e1b7b9d6483c73bf08a50a7d74f389ad8023899af4e7619c67b0927ff7ee2d485a0b1e2c7fa62709eaf8234d430e7c9a73e56982d18b61c07d813688ebea31e34bbcc2581f128b78356e2f37c443041e75f640a0902b79a8ab4fbe2df6bf10ee7e5bc194fd5c8c79728c3d0de07ce9f96c2491502d831d031a727c2a8359f9139389d20219bc0fdbe9a3382f65dde653ecd25b0bdc55bb8b1ee1c986df55bf386d0fa29ce3ae678f372ac035ba4a542c084687bec3ab07f15bbd5eb6cf78565b1ca545b471139a241a9c939602ee52caa5027eb157d52ca3ad38599379e448fc2261dedab3c341be0e6881481b68eea1dbc3e2dec2bcfa613b6ab29090dba70e452fee7cdfe17a795b43eb2c95a69c075266840975109a832b2329682881fdc89e3cd51a50deb4d8003ebd6887e891e56b62ce9cb93251014e504e72f0ea7299cf4e0e6fb386371b4c68bcfcb252fcb6f2e4a929168c4df84f7860096f4a61ba12968857533cd3db8c56392c2e927dd4b68c3f9cd3da77085aa8eb2bdb5b9b026de5c075790ec1748f64c7656a98fd03065ebd7047b3c083990f71d721027d1110c81dcd92249a25423dfbb4ee003bda87521adb4f32ea2a2c4884b66f75adf6681fdaca70cc79654a1baa7ae2673a97f7a4c97cf980bc78631771e4c4ea227591f6f134f93e32e8865db4c5f22ae5e816307b624e3ad42d2566e7256d0a9c58edc010e041471c62d60639c47b407a9f48509befc9183a79885107fc8d8194fcf0c1ed2903b6e9dcd44c6cb00bced63c7b72c78f79b8da11662e36d801672946a0c98aca20af71063fc04578f95be5b1a4a2dea35e38c9605d07b01db15fa7c82237f87120af2d0cc94c97c41be7e9602fb5912660c77b598edbaf67996c36a7051d3be94c94d26ba97220964f055ea766144c4ab9bf7b28025c7a560d7c61593f30c77bb33969a840bf24cc57df3cb4da7e49fb30ce562004b82c28b84f4bf1992465d2f1eaf97e4e710d234e7ea3650f8a9f62253956403c9d8396b094f0b1d509eb4201bed643579b40302cbfba92609f676814513c252d5ab55182264ace920bf687798bff96010384c019556c971464edc926704b2518aecbdc4a42780b61a6c16da43f1e5087b35ed1af700668d227f88008b587d4743b9506ff23f9ce090a313185ff7f5d5e9d4c33b2acf75d813802eea1c227cf8749ede128b4862cb7304e26a6ae055b321411afc03b5788609920a29e431075474741896671fa5d1c0fa7326fecd029a5d0238039bac7e19e858d6d2e5bef61b24f7514f14b15b35ca645ee852a1edda68f0d322a83852b25802c536c821bb340b1eed12aca484b43ce7e19d3d604e0118e49de56abad817508e214c78b40c04b0b8e9740ff668940124f18869b64c674e7e9727864abb1b9593ff059190adb00e513504d5e9bb4cf71323c2c637bda14c3603d7432c4c0f5176176efc5c1cca43cc4de437a1c9ff3fca62f5d1d033fbb379ebd1aed38c25901b69b3b960a910189b1c1f6fe876198fa39372652446138db0f213e1280dd320e70a40bcf2e67815a003431a4c2ae2b52a277d93f9a426f87fce6587e7a91e7ba92d303c283828694dba0521558172c09b8f7d2e62553aa03130230ba6f694f758e7a5243c3034ec3d7e27e346fb57a33b73f4f7cfec09a8fcf5d3a3cc1a6bd6f789b2aeb356435b1ce65bb00feb277adff1e961db1e9ea0805c2413956e1f132312626ed1008edb426c720119503196eafae5a42a1d16b32b9b48573fd7824a775fa595a7b98eebcb432a825952598f0f6a8e58530dc3180712e180380a017079ff862498e68cfa0ff2023392997981c2c7de9b2ce20fbbef281134811a4f14ad4f7e43367dd0f590682e2b90580f324e4439f177e0a983ef86076337975dfc5c3e873366e0329b53a40f82a0c8d26588373f161e6b96af98166f77db16c21bb01887ae075b685cc49dad321411adb1a3586087d987ab05e1bf03de4d92e6cdde0c9315ed0aaada14f8c1697f4f3b2b717b99e8aec6bad870b8ed34c6790e3e74ef6de89e24130050fd5dc1b0c80ff40c71500178d2cce582a2e3e574e794bb009fe4b4e9990966fedb23240bdb621cc1d359ec9678fad4281231d1127bc9ff04ef7f31954aa0d0dfdbb3f2084781f46d8915f23542998a7e7a5eb5d2242f7ea901c0cd089e6e6e2c00ee136ae34909b231dd16666ceb2dd37473aef46aa53db6be50c1b4ecdd86c49e7f09e31f6f8e412c95fa9bdddd5230c871b6c3e9dd3d7c136fdd462555e02c021909e97628cdb90465f0ea881202d0a7292f8e3009f861faabf545ab01c30d73c052b88f6257d7d73b66b465f41fff8325f657eb4c6ac967d44b9e4f4c807414c9b9c0208d7d51e18c44066b725c46674c5aba0bd90abed64615c4209fd0b4815decbe9672610780f5e68931b91ff9611097cf30006c1239908b22763a7175cad4c03a159dc85df41615d952249f8adc766eab5494b2c5ade7e076ac10d9c8169028e1ec4111cd3efdb1d66f743f05b03de08cc201d1a379376ab84a5f04f1706f15767c50dfef24d2cdc303ae1069902f214b0101c5c4428d0d2090aa80f5430c1a3df78e77ca13f9462eb1ba4ee0b23464eb3fa0cead5f8a25cdf1ded8f6853d2a4f173d5683c9b494fa5dbe02f252d2dfaf55133885b66551cf6c7c2f3b28ba04823ab95f3e67a17b6ae4167f8bacbaa6254853b1074c82feb7db8dadcbaa1cc2d1a0e571943140e660bc433274e30f74e26808e12bf78475b0cd6e348a446a518f4033a9944909d62095cadb1db3391fe0e415cf60cb46c822a75d89a2915b063a169729907bdd28e556d348e3bd3be48db5df8d39195c331aa9cd28d9d829f0b45113d6e576e0d5c8202e18c0a35402ffb7e73fd5a7a21884ad04a9fcb97572fcfe915fa0d58aa4211be84d2ae52db15b585d664092c01b576cce4ece5bba8c5495688114a7e07a06673bd16f1dc8d69526d98deb3b491925f53fa50115b3aabf8bbed506294bc69f2b168e8e7b3206496c3b0028cc535a7cdcabf8960a8a102500848f84e0931a23cea3d6b223f3df215a34c36bd5eddd18a1ab16fcbb4b7908988d55eeb889a910248d6edaa635a4e495864f6e16b0c889f7a35b7bd50594c3ba1aa4ac488e91fa6dcf0b662d842104b809074c904bfd67f182e23b142b9cb545da93c65284e95bb5aeca77ff5ad88f1e079e6164ee162fb0f7baed87bd209f1d3e0d2d0423c8a1ecc4852a6a915310fc0e8671bc1f76c8c7f7a6e2b967f782e27867dfae50ee0aded7b4993c8d2de62cc4b8a53ae7a1e4a1f549a7a87dfb9b5a17c07456558b625e2b8f7d55e5e1f420286ac0e69934e0585f4193d0d83d8b69c5c50340f10a80210d560e2a519977377ddd6dc1134bcefdb31adc08fc5bb0e11b4b7765c7ea339bf26e3212e2893653a2c73d4e7541a3c93cbf054e8fd8b10040dbc1b3befc642ab3553ab8b3c77e9152d112acda60cd8503cc5866f98cf09054bf91273d23f28353efe184c3714c8ea3376c4230e4c7685fcb532067685694bd4d97da117a25da4518b58c1b38b46c2bb48356719fbee4985fa9333372ad29c5ed88b5255f6721f5de793465a1b11c15151fb0b7e4762a0742688fdb652089c9df8c35a029f5f3f29f709f8ac07d17feba01d3c4fd2bb531f62fc4aad3032ad0833fc40bf5f5ed9b71766c7a12f195c8382b36239e14ef5642937760cdd18cf1f1ce3e3524dbfb8724e2d156e688ab0fafbda3f7d2303d6ad0c3260cecca7a251b8a728ae01feab538769549df5e49a152e22afabe239542ecaf603b6c6898f6addd142daaec1fa4935e4b3b61bdb02b4abec579d0e82689fc526f993ae4b79c42173ce57d336e04b65f60f812a8d42f8c2fadb2c7d9e359c1e11cf0fc1ec45a70fe39dc66b0cbbde06007daaadc808bbaf40699b758ae30376cfb4854c3caaae07be6427fa27979ab91b31de77ad8d4e4e4d6395035e32d2ace973d9035a5e472679a355a2faa87e454df1a94cd8e18c93d03d8466b4f25f1d1d1aba44dd50a0881042380914221d0e756f6165df5a8554801f29f32ad0a76456fab89dd0e73d73c42736cabef7f3ade05f03b2e6d17d21bf62c9a77b2e858fbe7105e3c2c81fd39309353d22c1735f267a387ce87a4090a1626fc1ba5e3f6ac2d4f7c3a1398b3d8ef40b4594264d81b3cf8946f7c3f5a4acf55ca47a3eaea3e55f4f414a1d550d45721ca188d5eff6277ce891a9b6f3042707f2268d487be8f1c25fb5d143802d94082e7db2a156eedf70fb9ecef150989509750ad7bd9cd74affa39c197431f5d09f2794c21ed438678dc2293b028da4a2ad70441d037b915f740ab5ddf3aadd8a4d9605c72fda563b443ad7f3e0e195fdd1562f2e8f64e093a20f087b74d981e1eb68db6d5f5df51ff25b93e3cf10f9c58754ec0cc998d3689a5fbf343f051de4edd4d8b75cc3cc071a91be96d7c76dc4e2c8cb2250b5cdfbffcb92e51611011fc7c78ce4e890cd0ef13d174be8d06c14c5255dad37d873560a37e70ad9e14710f5e83160451c71cd4ab3b8af992a447e6b9ddac20d415dbb943a085fa45fe88df3a3d76bdec35c6858aa3a749396259b86e8729c4088eed4ed1f3273df158147d293ae2ccb3e0fe6c0a2705bd6ec66ff3838a3dc47d7a7090dc3db645097e2a74dfb33004c1d73c36e9a972a70664c8480caf335a4ed3c77176c8f9b6df5913c4d4b332a59105cf7ba29443aa3a7861448c235a268aa510a07570bdf596f4c70791ea174f1333cddebe340283e66c495407f86d27b643cf22c8d4753daff960b2efa2330e42c3e0ede6c43987c3cfb9c904f7127176793f44bc0ea4df68aa1d49e11543f5c4978a38c767deed8d89574c7d3494c9694922743e11ce98c87c709b3de2659003311421d4d34f95c25319f1bbf4f0d8e197f6442e54eb6869d6fae009c803d626f45818d3d6fdd7ddec4142f4858c035b7ade97902112020d6d3db95232f0e60522e665d1d9820efa7ee5f0b719a87f119850a5cdb5bea323b07de167eccf775ab04923793611f8aa06c7dfc34d8fd55c17860049c9fb070c294325a59534575408648cf9ecc05af13c84f2727adcba6607a9e7afe425322c45208b11229ab43cf0240315f4b21c2958450279d63c73658e5b5e0d5510632a294661cca045b2c230d87847590a631d1d1a9903685184843721027e40134beca144b43c2077f1a66fbe421971760bac6e134b82acc970724654d2c70e3b1be1c229006a2f35727871ec41dd13b96a9ee9edba89e31f0b23f2b0bda8056c6de22068689afd658cfca2ae3cfca1fab2455c135745cae6eec2d4038c90979d1be6546c84edb9c1a56b65cae876893f61474183ee24038386f3dccbf0dd184d83e11c82fb8c984445f89a82d958ce4e9a0c03f18ba2d680583d5e9e287dd78e0561b250fb0ec57b008c36d8432f207c369bf4a3618c51ad68ba0d284f77c6113ea335b1e20e89b397e4ea14ae84cdf8f3d3201b911d3eeeab50787f9b08e890733420c09e210e8166a9d7a0eb0aaffd861ffcb13991e2a66225b5599a365f51f3eefed7947e0c5244fd2c7a119883ab6cd7e74a69d9b136b455bb2f80a01d3d47761563f8f5210c2e1dace2d6eeafdf4234d4c219fc6e1a28270986a3f308ba2a2654ec11bd72576edde36fbcdaeb3d519322355d94aa79d9b8d5689089635bbb1cf0b88f765ff0707bbc67ed73d83ede9b2b745304d54ef52f3f76b9a2f11efa6870317ebd9fbac1856dc79e3fd2836a246eda403b3786e805a36a64540a4ae17e6c14399ef3c2630fe421a2365ae05a33108d538aca3de16e63b64c8e188fc8dc32a63b96d04fa45d61f01449c4b41f6f16ffdc16823a4725f0594e5e5a49fe74ed2aa79d287188ec6b61fe7c4f089a27fe048f225bb7b3adb4a0edc0999950482320ae55823a326f6dc88b67aba8f420098a7756c35f4636107fd5f9a5a868cd5a4b4dc68afb7cb3bc99720ec5a801ac239b127aace9ebf13855b120bcb65061d4b2b9e26aac8c464a86f6bc4039e920a05d3697e063be115458c5e4607370bca2d5ac7e61c05a33c2cc87055b71acb556d5a7f4f41a0a81881b5449467defd7af9e58963e8549a970a7d0c0584c7e25b2eaa9f1b67286d8d8f6d29af87906b267a953979292a3e2eee7a240eae0bea53a20977b0f41eeaf6ffcbfc5457d67de682c2f842a856a912306ab9065eccacd02d07dca6c44f601fae6c21fc8e35ee5949f3c4aedd908ef58fc2b763d2400ef1e2b074a561e1ab8c925bbe9dbebea1a0555e428d836dfaf32638bbe2058b358008008338afc76d2e61db55af785a8dfbec675ca0ba08ffb8450ffb9e89d16eebe0c94c64969156eec8f6be9ecc4acc2a2328fcd4f92ee5abeafde5cecda8a0aa7617c97f701544061f261445eb2f046788e0a50750159c664af1cac1b4e3f0248b284d9541f32cdf042b399e6af23e7155f463967d771254259a19f6ccac7f290c48562e29c6d7d49d13bad66a2ef3e4122c1c5ee1a93b4a5c6677e16dd758fa065338192cdd875555e67ce412afa01fa582199d69c16e02acfb805d56662d888c8926a7a10b4c52bb1a19c87470faf8a78e25ac78ff8121e5c6c22b9d4d50f4ce0c077a33d5bc84707d35a469a062f5b200e06bcb36149ba124cca631433610fbef87cd313ae8cceead58235d0d5c9f3e53ca5e55af954ab8c31c512e146bf9f533da721b112c7689403e94f50625d5290b9a6149fba672032245bff51f345b0900213c3a642aa36f51e47f55434b846367c1828c40426083c3646a3f59c54320835c7f437bf53dc91788aed71455d9c4b1146d7034d86ecf72697a312efa0b350030f6c69510b68fb7c3a958b05c0e3b4b69d4ae48c9f69b5d20e48b835cec609063819128ebb5815234ad78e7c6c6c0c72c9e1c858ca6992cef888ce193ded51b64d39fd9bcc317350d809139d3d38b94ec22ba0457e17aaa4ab327c0d0de3a39c66c1d09c5e10069b6a832840ee451b11d712c2bfdb36cbbd43982d0545860dc0ead34c50fa870f864698d82499e63fb403441484c46a846a0826f19d51fe4422bc8806a17c51bebbd8e028f4f80a5ce2e3ee7508f96b208314ae38663a8183b1d6edc5ad53b11e1c12f7bc95eb5dc0acef65d59761508ab5dce49e4101877d095f2c81c1339ebaae4f769d70bfc52f439d0249a10edb9cce9fd1e3540806caadf581b64e440c4c178c40ab0a280e26b825974c4717d3c31044b57006adf0bb04b8367d06c453b0a4b50237ce0400acf3c11842ce52ec43721417f6eec8803e89fb6cdbc0266736f4e66019b4194c88857456037e46d1c11ef88e9120466e7cdad1c7843b07c5265c81211bead01f681e43faf08eaf20ae7acc7fb7aeb0c5bb60fadb239969de73774418dfa1a6ebd557a1965ed522e9df05a30fac031141fc4ae9d20b46e090d1ea18c4b3dd792dce24950d2a56d496dbef51399b67bc09181e9bb3ea22844a26fdfe7546285d6040cac5b85e47ee9112f09818c71c34941fdf3d4475c68f581cf45541a8d692b7153cb6096c575570148c74767c9bcad8945fe0e9b53fce6ab653971ab11077a51976c8d585f2d7b878b5e591211695b2630ff8b32e26ef2e2a4cf79140bcb70e9d73a284240dd897c20415d4151635ede170c0667e8bcb2ed669b40b100592a43919baf2aeb844b08949228a7964868c450b6c8f5d5ebe58d00dbbab9a588914f962dc2e9ea9bf5e78d4e40dee3f7e50b2b10f5032205c5fce7896c5dc404f87b0e4be683e643d372f43e8d8219dc80d30c47f79632f9b80b3cefbbf78758e408ce914fde8a6a191e3c7c6a182303967d6cbe57eaa0eda4dc9defe6723feeef3142d02c1a4ef3924d0628539fc6a55a35fb21e19bc99d9245b9c8c18fcdcc9b67f3da3395f0a00fb0308e35b5ebc31fbc90dbe611db415f028ba4214f52d21dfcc2cbfec80c93a94ddb59857c048bfc73508395f34d8413cc2bbfffc2859a0c8e53143e2b063fde4a09fa16643df1a8a93401ba4bf2cea7412ba04f613a33dc9f7a5b55ffbf4c094af655acdbc7a41861aafed58b6ef707a28b44c3dcbcee634d846872822c1319332facc5e0f0aff71f70df7c2b5f8878d4f2efc7b9b39594cdeb488d551f3095c7a6b1ba11ab76df476b21336511debae4ad40590d7629a9e985f3a71b725ee18e3b1a2c4f5441ca7f2318e8c7067d2c55bb25216d0303fba3d5eedc622ede91c7de3e134579b9ea832350df9b0f357979d709f1611e56b83c14340b8b991a785d08eae05bea122f6b02bbd2bae3b25a2374a14599faab8f7ce8c080ead4bfa217782ca3eff0f82e283366e0cbfb123a2eba176ff789db69c1f4afcacb078100997c8be6e727504f1ad83e75c220952382bdfcc15f855b10c4c6ac3d7fffad043d9dbe861a183a4cfab9dd66bc7e85944fc0ebaf6c0b397524d65f815f82995569a17c2d945c52ed64fbf5e29f5f4af15003d0c5af9f514b91c9027659fcd633a3f40609099983a71194ed45704f745355be6147396d246a6a7101bd4a2efeac1994abbc2086779b9c038cf0374fb0f2c9a31d82002aac3e02720a6ae67d01a683dc5485ffae2d664b4fba7c25230f1a3089eb4ab1e680038c25ed1dcf06dfd46deae6847d2d24d2ab366eafd82f3c4661c74c7df74120527d1b2871e0f448ba45435ea09f5a558e66ec73c5e4d7f632e8703ea0fd574b8a10786c18ab89c5c1d5cb3f9fb9ddb397d4ee3e71260ad2fd6fd99777eba2b71f001df9bf71f4764e877a3dcae06db4cf46967e9bc40b68ad7f3e394fddbe26185623033b08621553cd0a0598c906a7cc195b8798e052e14d20bb509900956fd3294986793d28274fc460f953b7cd2a2a0a20d2838149000c81e5ab2b7d9f4fe9ee334785716da053b0ac9405bf74dc4d74e641b40bad77bcb24ee80aacdc894bf1b51f87278927bef9e926d9dfb470fca5d340763717b2fc52a1492e372227e39651d7f4fec4d09f62b1afbc60c9d52a51297d5a2384e136ddbab635658b54a1df7131ce498463cafa588ddbbe2b621c468173019adb1cd2e86f0dcad9317d8c03b4e97b0592667a3e7c161bc9465e988613e3c36521455159a910880f1ead3eb00199cdf52e2ac5d627107919cefba6dd1e78ed31d3d33295975077927c0deffb34141b80e57c169df98b6d7a823530b841a3df99fd4c816e8ba75d205401a86e9ba84c08aeafdd8ae643811b335370a3bf1ed63a6286d47f6bf0b7ec0d7545ffc0175bf63d9a9227506f2ca928cf631d3cbf17f76a841277048d9b7dd276ad47048653d8f152f4db7c53ba10d923e0b8041416052e3104390d55209cd9a80385146c8f303d4e3ee387e5d0b0411af93a4723cf971c5a08267cb898af3401943420ad464d7fb1b1b8359ea2af8c192f20a431652d93008e2c7613f8432adc5a9b0a64202684ecbdf7967b4b299394019e0c060db70d1e5616dcfa52c679978517b95a3d4ae95570b56d317af47313dcfdbad2a8434343238299fa3eb1e6ee5cc430cad88c218651571dc1b9e513fd821d4a29a5924a2a252dc29def490dbc1e5659abac32ca28354d522eb474f5fc8eab699aa66951c7dd3ecd5341ea21e8c90f0441ed751f47e712eef79ea799386fc705eda6791c16c2fd27efab69567370d3be4ffbbceffbbeeffbf881abcfd3243841100441105c81a0c7e3f99e821e10f4802008be075c819ea8fd6baf7a386c5ffb62ad79e2811ecee3f94022dcdbbce712aec73d101e06e161fd1f3cf444fd99595caf07edf1d09e77d29e276b66e4a24ccb9a7949ffc99b147e4ce8c93b86abb8072a773b0dcb53fbfa126752ab56b5aaadb41e3daa179ef2be5a7d2bf81ff02da8d54fb55572e1aafbf525cec59e97399ed2b2f769797fb2ccf1b03e98258e87d57a3e8fe7a9eff90e5c7970a62aa70798e5932a6beee135d75f7bcf73587b0ff720c8691c478487f5f35168f53d9aa67d7d1109c4229287dfa6e5cfc30f7cafe3401088e8342f33358f487fa0f75acb03821e8ff620c8719aa6bd275b0fbdf76a2d52bfca1ede81fb795ff5177025edeb964d340eac4f1c55bfd629ba562c74ad351ed60a7e8f1e64b4f72ca759ec710eccd108ba6a9a56b58f55d3aa56b5aa55ad6a55ab5ad5aa56b5adbea669dd5beef3f970d8f31ffc04c7711cc761cf8341bcab9011f99ef33e821cd7e52d3ddb719a8c472ddb96e735d640e5935a6bedc1bd5610041f04c1f955ebd119b54468f0fb683dfb050179ee82bbbd25a97d87f914afb3d86bfc8987d4ba6ba2e8cbecad2c661eba51ea79472a3d7848f3eed12326260cffbfbc4935f778c29d4f5fda44d9ec0b4d750c90ae9cae2fa3eada984984bbe54cce3c25e321953f7e903034b872462ff5fee62f3f7d49e5ebb587e47db466fb32987b4c145d7d352fd9dd3dba2cab54195b73e5ef1eb4888794fb8f6d595aff8a48e07b158b3cd4de62d2b51d883792cde3b66fdbde5bb4fb9a41215da61e7e3957f0ed57bffb5a3ff0c3e05b5c1fc41febb3d55af0ebc123c243ba1da6a9c36e8fa992b339658f297bccbc03573b12b9d02fb0f44bf565ab89b556f4a8e228fa5b70d185a64e43bf0719bb7d5cb75289064d6ba595d6590f9c1e3d7a545a69edb171b6daba69d5652518a534c696add5e8f9f9dec3711c4729a5546eee79dff0feb2e7529d2db4d8428b4a63a4da09eea74926266ac6e46b1f33b5506befa136c377dc9f159c91a5ce963af19b504c94d49972078a39e3ac8a87fec48937f1b015cbd8f3317c60d000836f53356510515b9eae3d5d7426739e2fa853d0f3412beeeeee5e90fb2e2b1547c95ad147a4e0aa5259c95c651e7aa1e36115eeae323d5f47d79755b2341a4fd5259eda1e8c3ebe2e3cb32e24cc7ccf83983699853eef33d4859e54266577c626e8437853146cea92426209ae42a177bca1003d12aa43a1d14b7025aa9ef71877f362bd7f8af14ef78c373dcdbb94e5d7fab95772dbcbcd6312b23df741b6e73c1bf5cd3d68c67b46efc520a1afefc52262babe8c1be3bd0a825fa1f0bc3fe7f9edebc7e4c9409468cf6f9ee73309f1fce78378fef379fef39f4ca1d0dbe69e65abe0e8294864c66fd9c88cf7642332be3e8791e03d2353190ffa090e09099191e32923993ac6675aca48a6bef76fbd95abb7724e6badb592eae609bdc7f3a40a45cd4e2ecdf23d5088bfe76526cb3bc5944463dfe7f3b69ffc799697f841341b21bde71d1c1212427a0f0785a69e578ef4c946e87bdefbbcacdc96398a3d4fc2517b5c57181f4d406825f483c8a755d2cc91f2ae427b1e04227932e9493804036f2234e859f0864283bece3c55abf8075c8d3cf4151432d2a1261ece4a29a594d24aa9a43397a742597b486b793843bfb596deb095524a5969084b2d29165cfea9aab3594c6be2a9953c05d52dcde529293508f4a0ff3cb53de83de00a443b2454cb28a21025dadba44b5aab3f955fab9492d65aa5e6788adbc0957f9d4d9584d5d98dc5622c4fed49c3c453f299f0d0dfa50e8da77cc7539f2f3cf5b121fed068d210539e33c81f5aab0c32c58d21fea8333044c7f12f441ff305f1653e8d1bc860bf1d97fe075c39d1f92639e9919faf9f6a631305ae5c76679ef27c9e107f380e13628acb42fe982e24c8d4f63fa4ce1062ca7f3e8dc91f332661a810a28f29047a8428395844b9df070402814020100804028140201008040281402010080402814020181fcdfcede33c1fad55672f70d51965a994a552964a592a65a994a552964a592a65a994a552964a592a65a994a552964a592a65a994a552964a592a65a994a552964a592a65a994a552964a596a65a9e0f781f51d874a8152c171a8119ea34fd0f3379a859e3f5db4095a8726410b21faa045882f31f983622161e66ba15d097afe2775686881068d1959983143061664c838dd9c4ea62b984c252b944a31aa102306a90a8904830a3060b04c8185652485d14834138956a2b0b212824228047a020874b5b8f7e384cfc7d3048f076402087e36dfe72dc1f3ba2cba8e5302c7592ad66e49d8360d09daa447d075526a84e8634e5a040f113c9fafd69811023fedd3a4bbbbbb7b751c1c1c1c1fb1c8381aa3fe9e8b4bff1ce3bb1d28dd6b76a96df9891c4bdf0483485d9fc63c8505b8aaf904aee88cdd7838ffee78b37363a6f749402023f33e49f72078afc6a3b88a6e6fe258442a34763fcaecef9838b3f46b802beac1605ea6b1899adf71795b9b6f0c0573b8f42bc8447cf19a5b69cd4a155e2b03b670536badd5e9265d6eeed55d7aadb5de006007405728aea6d55a6bad5e6badb56af6bd7eadb5d65a6d75ad6a0f5dba536b06265871a3e6d1b8d375be8140c06df37069fafcd9755df736dbeefbefb5cfc35f92138af7f28f90f49ce144d18fd9c4d84046c5d57d07aeb8efc05547dd1f773c708f1e9270e5dbbafa1e9413e3397d82fe32c8f6d2856c2f7feb1eecde62cf4b1ceae0219d8e59524ef70772f290029199928b2d9aea803f89edfb83d453524a29fda5b4564af06db61e820f66d3fc28c120f4ef97a178ffbda762cc5479d959b0633e0f6912eefc5c739c6d33c4e43323a5f5f33e5c5db525b5d4de9df1deaf26e2461912be8841b8f76448e842d7ef538d7eb66aadb5d65a4b5f8370d94836f2bdf71314a23d97a90b14e23d97ab4bc8f7defb085c9ef26a935af3f6de88f63beed7a4d29687dff6fefb326de223b8da8341b4ffdefb40f03f0d9b84501a9aaaa9a6d1dc6b42a24c7342b8077314730e5f682e8aefb358728420e8e4d0710962e0829e2d4f416932b3508217547274cc82ca8ddeb40582ef79be11a64d1c35e77bff658f7bef376d6923ded3262e4f79b4e52175793869ab0385d0dfcb08f369f0bdeee3f014dfe78143beff3e70c8d4dc7bd2a99c1e4dcb514ccd6525ada99a2dcff3ded39372dbf6a34f7bd43375e9261e4ea969cbc3b96d483ce49e6239e57e048378f71379f869ef2bb8dab62d522cb5b76dff792aef23a411f63c4dd3fef34ca6211d94d1772770e599b40765f49ee4c04f236d2bc155ae82342365fb6f1bf261ef39efb9bafd141150a2a38e010aa1413eedb5f7f0f61cdeb457bf6d7b2f6e1bb51b9d2090edbdfc79a8e9cd7339f9c015a5a34df3e6efe1aa29cde0f71b6de229d3f6ad1a675a2010a96b6b7b8ff7d196a7be283eead1af62a16346607aeebd951abfaf5df638cfcb5cf6b2e779d5f3bcb7a3972cf9a3934c74c8f3ba4e72714546162931b8a29c05575eae5296640c53c9c4d9cf0ef1b2b4524ac981414cd684b7d45e358542a64df3640d29e97758b24a3814030c3d7d2ef49c884acfb343ba2c6df7e07f2fc11821abc5c85b5669bf6f01575fd7454d430f7ee06a7b0ecbaeab21f03d7ce4f358c097200c7005ae500f579eea15d2e73970f579ee43f3076faabdefa3792bf9907f8fc475077e21ceda8f4a4ae997f7912f825e16a27bebf9c7717b943738a40383889e7b998ff73f788afe87d2ff98c4005794abe0cacb3f78f809bdc5210f7ceebdee6b69ee2381fc01b220711b830829c7c8db2d07765b8c97710b3e75158c07f3912f461ec23d984de087fef39ee62dc47b4a84fb8f257fd0e7f217fafd31d19fe82d1824c6d36c2446c83379a58e8bf19e670a715c296faa435e8c904771edbaee3bdd813694a96c75f86391f0cac3c0a367c1df8b3eab691ce7599a577e8b4444565e64e944b221d9766a8b7bca65ef3befb9e78674f92341de92cb26ed2d7dbb916cba7b966f1ff974f7a207c120dc1be9f2961e90c8a7391afa2cf6776da1ba5fc1d143119743dff7fd095c7d1a969ad3dc53225a5d09e1ad448764dc48f73682df7b782ba1d1dd7341bedfb6efcbe00a27ca1da6427bf8c8a757f24782cffff009e1a8bf8f89f6e417c2321e7e3eef81eec7f3f4bd4f7e70dc32dd016d4ddaa2addaaab1daaa3d6a6bb65ab5355b5a2b5465b278cd39ab11344a93681f278a5e0f29d56cad32efe168dbad7878e4601d10fc3c1ca547677079d87868b5d0964b52b3c9088d0326ed352533f4a9946bb3596e8ca8af65171b2b3cd57d09c67253aaa237f602eb786871ce44d9a773b8dd6f1e39b38f75b1f1d08ae0529a3468eb5d2c7547dd3fb2dc8040d0a370411faf4d5c6d44b81b7f3e2e171bfa71d96982bb596e3a9fffc1517f0e0631e999371ddcfd7195601ffb71e229df9f1a6df5efcfeb1345dbffc03cf485b53f4fb47d8d8bbb596e40344bb4fd8b3d1f6d69fb9f87dd0babfbb80fee2cc14a53aca742a92d821b165434e50785f319ffc1d55cb8d0f6ef54b9d8b8e04c15974bb089b27fafdd2e39dafe36848ffd8f134f7dde7adebe7bbe042bc5b47d4ff7f1cc3cb45e151fc29d29b8e04f14dc2373477bf38afb7179426d5d6cb4f554487ba64ffa157713c2dd2f3c725e5853c5bd65b97194e7b57b596eb47d6179687f9ee06e9ca3addd3effb114a6ed7ba56f52cff13f1f971474e29d84f5c10057b4c3dbf391b9c3a30b57c519cb6366dfbe7d8a37ced9a4945aed3e7046cf3375e28bfd928dde2f2cadc12e4b7c913f78285f2a89b03b9a99738245b4a7ad89ea9e824136d27cee6be680f61c94fa76a2ec572c65153db4bf05e14e282d361be901d3b1869220015062ab904ae42655d005b7a19420517fcc35edb7a7a2264912f934763169a2dce5cc16847b64c3d1f5b5185f34e931c61823a9bf6892ed0a2bbc6866aa904201ead27b033972c6736a4565dd2450b620dc48299594d239a787278e3372e6451db4f74011e556a63b2064ac6b24d29d28ed3defed6596f110080f352d03f183875a4abef6da0321a548db8fd15e26a2c038ad9e733a10f4bc53a341e28bf6f40897769f2449fd4eca14556f1adada2dcf1dc4d9b6e36d11941a0f8960d0dd7f4b7331d6a8a10a2eeb052f4a00b31657614fc09a91d2c551183e111db93c65fa7cd42ccffda835552bcffd288aabe4ce28fa1e51d1dc471f61a1b9d11493698f9c686e1b3dd17267467b2f89a44dd8833f0fb90ff72c1cb78d5833dccc96459fe655c741a4f67041a28ef138eaf8994fa1dcd74029569fb780d4db7b710357f36770b7dcf91c9c2f6d12a9822d3c603393a40a18b119d057d18d803523a5fb24d1092c2fe8cc24a962cb990149e926b680d49fdc66f5426803849d79df3bf394b51bfdf95bde5a08ae0c020aa13fb39c790806b95aee78c879a10c9fef45402302100c443355201e44102cbe00e1c69938a3ba3fa15c28770a2b92cee06e4e9684cfa7e38a95332bd854c426b12b5fc5eda266464a076279c88db81f31893e5c733fd2d1dcc80bcdfde80d510582b1d03c2192c270b7a0b92a68ee472588aa184752a22ab4a315686e1483510d484ab844d0dcc738fa016ba2821053a313c4907beebdd109462cd00c36508de6402c10cd86ada6526834f7231a4fcddfb6cd7dced51cd1786a7b6edbb6ffae06c1b807f540aac289e2de0a01099afb28554dd01cf7125645732399e67e149ba851134771ef24f644a6b95114cd719b3762799e1904f310340514f390fb2d83605c00c134f723eead35c2fe88355156ac602ee63c7040449c8ca3e229d173cfedb8a27770c5e2314f999efb1d20576f100c04f394e8b9074df1942973cf3d0be6a878c85d4e3662e221376ae511cbc3b983eb3861f0743aee78ea12f1dfa5ff7214a617e2b9f41ec5df9bfc8be010faa2ffb0119a4d2c4f7f4b134b06226a96ff5ef4a6154bfef2a67f12e1d2d3d29fb057bf1ddc57a985e63ee3acc1f34050104030501040b0a9e28ee0e1641b1024f7f20b57ddf73c720e31e476268a7b3987986ae99da91a8d20ca112bbe704f8f7057debefc8f0443a49d35f0c035b3924913c5bd154b6433d17f9334f71504622abdf65434f752e62167c3c5e07ec48a39a487f12ca2ef8118b1268a7bce8ef2e5b84f9c19b1b6e75a9a1bb934f7718e6afe8110a2241bd0dcff869bfd0b61282e14508e8efa7c58e629d7ffe37eeec82f3ce4966c3eb85bee68ee47ac19472ccd3d279b1cf7de652e1bf9d6c6e950051a351fb6d4281e212641538f0f4d3fd22dd28f3c68da6283c2c4903aa599461d52a545f92347183a238694fab0654f44d1df294da526b30e2e75f0b0d6184f79d6c29850074fd5aba914222a6a205d60424445adbd142c1a49a5340e1e4eaa9960a5eaad7961067aa4f7a7e3143e405d4a59658e21b84298d076cb15c765b0004ab40581e668d450ea9402a8e5a93ae80da53d9f2a3903faf821e87aff5d4c59a1e7ef93d62a4569ea38a4b5740cd29e6b38be413bbebafb240e01417f986af73ec7d3660a3bc59da2f3e2d498441f53477b4254c5306ca10a7abe26256a25882a4a52c22542ec0776053706b1067a6ab18992992acd89cd132dca0f9ec622c1ad1988b9833b6b17f4bd7e51592d23fe1a130f67ddf1b0daafb6d668acfaadab6b7c5bb1c6d298448d89a7fce9f42ab8a254a3a93a3bd7351613d79af8ad35fb51daf39bae54c70b2d07ad61ab277575a1733a5d71cc02270cdab147976a8db6a32ce6e116ee7e29dd435d94355d966ada6be0ca751493baa64a4799cbb5a3ccc5816258ad6edfc793c9a8c51894474ca5f686ded09b2806f0382d5ae7458fbb17048b9033323fb8ddd39be8238e20faf852dadbadb1a4fd4c15e8a7f57eaa40996221a2e65f2f588f0c69f07828bd892ff3e98dad1fede4f9b08c2feeddafc3d1e35390b47f88c280c63c84c1fc1cbb9ec1a5efad7c157fde31f8f2775c5ca9d424c497195fe67b703d427c992f637cf9342b58331647add5587ca9322bb06079aa5e11c3f9ddae5a70d824657b25339e43c9b566a2e66ba2aa944b5bd66a9af6165c692d2b337f46aa284e1324bd8953a03a310b1a138dc5d2a6f86f7a23f383169b0feed658acf9d6de3b6bbc3ea9442217bafe54e9c8048d05198da5d5485b53894651672089ea576133870e5e5a772be89c48a60622a7a01375a28efc2dbcf4f6eed2dbbba9a5a707c56e51be4e05b2274bb463937c4e6b7a8be94f0fa4ca03021da52747089e1d247c689aa03f4c3eaeefe3c4c34984bb4bb08febe3b289e94f4dc90b59e1706325d8104a3a5365a299a8c9bd896544be69c947cbdf7d6aa8342d29d11c5c130b8a854d95cd251d1da94b3b5fda29e9680fc57e581e6ef9d3f2704aada4e329599ae2289d92173297601e4e3a84bb9568134db61246e6ad814268f8e3aaf1d4f6f9d468f8e392bf3f2e3da5b73f2da3871a75e22a97c5a6258e9aae8f9369a229e9488d7ac92676f837ee1d5c714f4120f5b5d78ef4404b58784845976c74490b3d4b310fe71597f579b55a2c16abe5a9e855bc7de161140f73a6aa048ba8f9d6de5b82e296601fd807f6797d5e1fd8b6b3c9e2cbb4798b51d9629e8ada447f7f5e9fd7546db12de6c9d962f56949672be99474f4fc12ac04d3b324d3251b3ddf93e3e9c2533a9df61fdcedd1e819ea424f2cf47cfa7979382936b14c4ba60aaeb6829b4d2c1a138d89e5a998f3f258f1657a341345636ad5396a02680a5fd429ccb4a84fc0d99ac0e40cf1e3bef5bd83efdbc729fa38f30ef58e38f3f3d04bd1ca7b21d14ade48f4ca866288a84349f44a8ef989f2dfef11e595fca1fcd957e64d84960f2291de949aa67dd45693524a2aadad14fc32145a466d394ecaa755c8a8c452c7d8a713d7b79c0e3cb464d1f89aaac49b1b172012b8d0fb6a1e9e4775b04129826c250b20e8e4504a29a5f4e36bd308375535c724a93985f2050d2ece0b08b397045bdc7063206136a0a1f162674766534547d91274e2117494d9b4a6b474cc620a4d54828e59f82036638c7186669c317f45a20f59647ea1108e9abb91f1f9a150fcef278eff854231ce39bfd067a70d4236893ea48c829652c2224ac6504b6f8cb557522b9f52ca7dadb552eea7c5bbfbb84927e5e8c7ab0f04998e590001e626d0318b2935fa150a3d170a793114fa59858c88ad3feb7fd3b6e8cdfb4ea41ddf7ed45ff7c58fa4bf8fdff765ef39eebd2fc65008fc888f9042fce9a17bc8f1bcd0f23b4eeae0a11b2ecd4a1c062e573cf0d1f7e8d1639df3a3248257df6140722e0d9c96d25dfaec6d48d2a54b972e7d4a77d79e7ee7c5701e7ea2bee7c52e4741c5120f748066e39e82446cad1ca65fb746b5ead5e974b9c4f318dcce8b3adcf71414fbf25ba4bf17d3ea06c5fef6e04ad32214fb9ea4207d09f398f6abf80e02895f87c4f7afd563a4a010ff88eb3bd6b2844d2d7b74778f8fc4b5e83157520565688ea2aaabcc8c95d2f83462eec6c3a8457f4de3aa4898f89ae61e3f666a352ae59433e51eb85b7e8cf4c8e7550caede4319e21d6ff48c55c716b9b9f70589445ae2a91da3fcc2435f02835b7fcb2f34751a4d97683a57c0842e5c70a3e679d1253d799f1e71f700247af8f3e5fc7892d67377f7777fea2ea5ac5edd024162b4d4645e6cd931dbbfd6de9be00a8afd9984582718e4f5964103509a0f4061672ca62de1c73810aae7e33ce2a82a9d38aabe577be8719af9090fc7205db5d688b47cc97aaad23586bbffb4a4243d94524a29ad2c1fb8644c57ee3970d5d1f7362aa9273f29a51359539fba5870e97be05b29e594de371fa493beed8e78586b7ec27b62aaea575b9053a44a2be35b0b6efd2f173979aabaaacb5970a914544b1a9ef52491a1e09ca912f2fedd6baaf0fb77b0a92ac0fb77b1a91af2fe9dcd5405f1fe5dce5409f1fe1e6baa86787fef355544dedfb3992a22dedfcb99aa22deff634d9501deff7b4dd5018abcff97335508787f90355546bc3ff89aaa23de1fb4992a24de49614c8f681367f126e6449d4fb2644bbae4ebca98b491b39b8fb3b6b7dce52f8779cc6d7c26f31ecf711ddf99acd99aae2040742f24f03c024f23b023007b11ec07c06e002c718ac092082c6b264a3e112c69264afe10988989922f04969928f941e09f28f943f09d28f905c076a2e40bc1533651f28108026485e3445102e8ea837c01fc0800ee215fc5c38e188c8e560ed40d171c1362fcb8a381bb195806eeb4f0ce0677543a59178381597017a58974d08fb62622bcb2bbd7f61a50f7da36ee48d8c7b3bb976c7bcde6b49452de48779f73524a6bad520bc395513a2a1eba8d94b97b37f3b0ab32b5a04e73f7dad070fd77f7d2fe851b97a0851d1b5f24115ff7dc7bf5d3369799eeeeee536ffa469048ad514a29a594bec93eadb5d65aeb102d1bd974aebfa6699aa669da96eba673e5d3e4a822002cd5004ebcae46bafb9c93525a6bfd3c017e68011244fa9c93525a6bd5344df4dfa494d65a354ddbb68dfe476bad9aa66ddb66ad9d5f354ddbb6cd5acb71dc7fdab66dd65a8ee3baae8b1ef5bce9d2f3388f2ce237703584c85b7025e46d01dee3380e88efc09510df79deb7e30e790f5c115144108fe26e6c960b519a8b0d2e44753a3c3a7ca0e74587872387e745c767c70a0040a1951d765c9898951d76887a90522c3048aa1e231e3c90543da8004e3f4aa6530f028811001fa71e0430675e66068dd733327c18c0eb9920ab97e02abfacf19ebb6302fcd00224887c192f024f2744e0f984089e5386c0130b21f00c02c7f8e23fc4bf004270f4d01f08f740a97f31107cc23f601e1efa1300cf685c040f001f4122002c7bc092894b273eb07c12002c7b6089850acb14965578c0720b1e58eec0d20b2cbfc0cec41f06bb130ffd75608fe2a1ff0bf629d8a978e89f03bb16d8ab78e88fc2ce8587fe21f62eb07f81e7120ffd5df064e2a17f0bced83f621b1a3364e093bfc9c318fe940463a63df41ff98b7442fea0fb7939cc65da6d74e7fe7647fbfb6b5ef39c7976b6727476361ad6d6ba81c5643633994c2693c9642c168bc562b15cdbcce572b95caed9bad991b15c72bbd1603199cdec668786d592c96432994cb6cd582c168bc5626db36db6cdb6d936db663732d63673cd6b76341a96d6d25c5a4d8ecc6676830383c16030188c2593c96432998cc562b1582cafc981edc858b3e6c86c66373839ac96ab060683c1603098cceec86432994c9603db91513ae37bce2cebb648aeaf095f15766f483839a18edd81c16030180cb66377ec8e84edc0ec4e9d333b7a4f3bbb37249ccf0975f48e8e9185b187915e3930180c0683edc026e74e5f93d64ce772660e97c3e570395c4e9471db376fa6caced99cc5e83d67d3c99d4d55b49e88b7d531864c23a12f35ed82a8422a99b3c8133c7fcf7d4e4a69adb5829aa669daf669e0b66ddbb6a5e1eed9c2f1578e8e84c576244d1a6c54e2b25ec19b9ab6bd94d24e29a59452fa0f64ae9fa70beebf95f4edace282cbda728af6b7ffe9546bef25d55ca34c21c1b4cbaf584a9ce3e59f94a19094528a5e7e0ed80ae84538471450cef1f2b07ab27a3ef284875e410fc240f8157687c6da7b495a701ad4faf796e7e99b33adbd9744cad1de55fb5b8453f3a7e3a17f7a73c3d57e7f3a4f780884a7a2fe743e3a8ef2ffacacd4d0afd45aab07c2517b524ad08f1e6fef25ae1ab8aa1255b322c2a08f2011d08782c8447c95665a7b2f8904561aed513cf50547335530de9f634d95e9fd3f9ba92abd93aee7bd1326bda9d3221c9d9597f1138ef1265c02e27a05a6f7e394e4c7907923a1240c03b3e07b64ceb4287a2b2b2b5f31eab592b792fa1114c9177dc5f257f0a8caba22aa3f5a91b2aebcc4b5be28175921c29d501272c243077d3329acdd918276221ceddfa713da25aee5900bf79884bbed8edd99aaef0bdf9070e3a73355d1adcefc74b43f092672182bf062cbee01d3d6fba4dcf99f8f29b8dba58ab63f517029d5a4d8a9d24220fe336fea4a82c389b246b8db4bda02bde50b2bfae8becb31be7cdef3c2da1bc8d1d38332f311ead29ef69f77b1b1f64a2f464a29a5524a4a29a5d2dd29a594fa9c93524ae90f28a59482efd55a29a594524a29d5346ddbc055f7f43d4e721c17a957c551f63fd89b79c8232727e7f3bc39e7a4d4f35eadd58750b54fd3683670b5e3529a19697e70bdf07046cb7d74069703815c4d693c9469eb5101571176a7175ef43c4ffaa455dba67be7d6fb6028f53fae97272fac979aa9aa2fac97978b8d8b8d8b162e33cf2bcd26f6c5ea09c47b4a3730884977390a77fe7e61ad362ceefeb8bc12ecf38f2b8a224878d5ebbe7981f7dc8a0bcc59aba615f1323e977809ae9e786f4e7085819f54d0256ad5b4254ef4749a2e4f27ce43c4ebbecea3e04a034f37b0bf829ab681abfd9b028448a2892382f8bcaf822b0e7c3562c1265e3b62db2cb86ae2ed1133e88c19d3e58c199c2708040cf9400d5c2979ed010cf8ed63ad04be8f03570c780e0134280d1ad3250d1a9c6708e8d9c0d591df9cb0df0726e0ed101cb89ac0730ef07c1db84ac07743803ccfe7f958700581b74a80463c4704a8035711f88e89fb791ea6184f9718739e2b43f01f7015855cf21cb8aac0736010a9a1e8be0b4a107c4781f7c095f4c07b1ff8c09504c17f21f889e3023e5a7181115800c97bee2e8508581720c1532b8a58e2091360808af7dcc1953cc112533029c11327588288021a90020d6ca0015b011968a1a0015b01421c91c40a38602489268e48a2829f4d9268e288201080440b943c00090620a08a9fe04ab240024830000143863880eb88130748c010341370c001123004e889784fbae025b882c04b25de7377d9819fe02a023fc1205233f1459e822b2388b83fc37aa0705f3b8f47b4925ef4f969f4b76dce34b5d65acf33ab5c1c135fec1381797868df08dc830b70101eda670217f1d07e04b0121eda1f021ff1d07e02301217960ec072025836f1d03e02b0640096515a80a504b0a4c2022c8fc0b2092c5780a5174db0fc4205d81580bd09f614608f8202ec535ad897c0aec509b0573101762e4a80bd0b26d8bdb002cf2524c093c908f074c2c2f38908f08c12023cb100019e5496e059e503f6a507ec17c14ad88700b62f3b60ff00f69db07f04db1f621f096cff01f695c8b4fd2a6cb4fd20ec2781a3ed1bc1d1430e60fb49b07d21708c2f0db0bf01fb1ab09f0122d846db7f62a6ed5381a3ed632047db9fc27e1134dafe0558da3e12fb16a8d1f6a57869fb0b8869fb51c8b47d28ec5700dba700b6df8572eef815777a3c1094f5e391e3e191e3f138cea1dee73d98290d95da4e55fd7b775ccf6bb0eb79cf7fc0695f3ff4fba5e645a6ed7ec1d141a3a346874c070e0c0d4c0d8c0c06278626a62646f612d3f6e5e66547874b474cc78d8e1d18174c0ce6066627c615138bb17979bdc0f68b8d7e9969bb5f725e7474e868e978e980e9b0d131d391a3430706a605f38281c1d8c0cc6072607462625a31af189847cf3b58849c71b171d9aeb833f43dbf5f58f565dc93a1335540bcfd2058868cd95405f9278e4ce0098065fcf0ab07f232605345807f80047e005806ec358e1325819f91d19aaa01bc03201081ff8165f4f002781ffea433553f7e89269c78153ef5f800bc8f3fcda64af54a30d180df814f3c9e874ffd0936553b3e890530e061f029e601f03bfca93555306f440214f039f049877f791d6fd299aa1c7f802390f81bd8143eea71bc693655377e882208f81ad8d4f22e6fe34db0a9aaf1448828e26960d313f1f94dada9a2f1f64dd8d49a28fbf661e092ce6caa60bc103f23883f0d7919a027dd8f0196b08bcd0a2ecd26ca3e76b1096390649c667c8461a261c3a5a5060e547843c78b0e397600400c4c8a071e3b7c04a087ca0701f4f06346cb0c00c8ea070218a000428200e162e362535d669acb0df7216e268206e0668a70436fffa5f5e29a2aedf794917e873ba6c78eb21d6d769ced78b323ce8e393beaecb8b325cd96ac2d5b06f82d5d3dec97d796b02d635bcab6b4d972b6e5cd96385be66ca9b3e5ce761a676d6fb96b7bcdf6d776d8f6d876d9769bedb3ed37db71b6e76cd7d9beb3270d6bcfd69eae9a3d5f7bc268187992cc488c7fe2c8c7a932fd049ec604f29eb11947f29e3019af9391bc67cd1332fe0112f81a794f97de25d86ce1f94fe43d691e80df011088c0df8840debe63030279bb8e4bcb03f2761c07b8fc124d7c9caa1befc4e770226fbfc1d144de3e43850ec8db9740bd12389e891cdf80876940deaec3612f2f1d96c8db6b9478f92416f071aa609e01bfc35d3b2c206f6f01c059314ae4ed344900e08dd861c72be0550ac85beea4a40e0f393c92c85be2f0782378f8031cf171aa548fc4ff90373e8ec85bce0260d343ca0e10801fc2c78f47c00f000179cb980f122680570f07c85bd60c218027e2c300be88374011794b5701644b0891bc254b46d208f17a47bf103f2344de1167e6837802c41c02fc90ff4167c8af86e41d65a00702ca3bdadc0ff2e003116f807850c87f3e9c5380182121101fe406c86c65f3838c003a33391a4726ee0cc0e5434b00ac1e687ec47cc002f0ea51a3ba49cd78b0e121dbb1030062605c3a5a2f2c1d6872c470c050afb0e6c68d8d998b4d8bacc64e761dec39ef38345c335a3258271a53ac048bb1f1c65e091623c2a1c539215c82c5a60aeb70b8149b28fb25d954e19d89b225d9c439154badfbe95eb8f365a66787e5467bb33b834b638cb4f4f2d0061ec155fe601ee2cf853f271e6e48889fabc5cdfb82a8b25cdef3c3de4aaba45028140a91483466e3e1fc2930d817e3bd49937c2d89822b9fa555144aab332c88ee85516196c5a4d562d530992c96b5d6c620916e92e8d3a98a5e5ad46cccc3e9e5f89982ebbde8f85a2bf6afef1124c269e1a35c13a2bda03c1c28140ac71410c7e3f88add2b2aac8fa3627fd44b16eebdf7d6ff9a4cf170ce187f42a1dec2ee8555144a07de4a74e82f1887575f724479711cf8a5e561bef8bee0bbf1e034bfe4e228ef4539b25d626132fe64fae8269b0d68d16bfb5a36da251e4e11cbc329a2892f3726615c98879b136ef7272f72bcbe9b03d612893eaf1c307085f2d71e85fd35548e170a85caffe45ff86b3c9c24d2894422e5d0410e1d780deeb62d3dff743ab5707051bf2f2c8aae58890e1c382ecc53fe381ef5dabf855dd65491601335dfda8bcafb92e69f5e24588ddfb6c6ef5be33729c667126cbee8f54f22dd8b65e0e0757a75b16be29231be5618ca7875d1481b162e07a414b1f130cf0197bff11cb0f130d2134d29a15ed3a67f4d3e27315ec657dfc62b997197b7f1455cde464e22a57e921befe2455c60de252b99a99e37921b0ff35b5465c5493091e825825d188efa38fe056f25fae545513c14cd2db6c8f1a81a1d502f0f73bc0e30255be819bf452f12ec443355313fe78daed5fd91b8d6f256a251ef820387d7aabdbf867a82f2ea9e494c482d1426d9c0305eb00b7b7947d920be8cbbf6386eeeb6b097288aa770fc7c11cc53f505864265cfc145d5c7f13ac29771255ac3a8271ac7e33015e1f237de0897bf817a236c3c4c96711c38bee28d037b0e6efdfde19d0476354ac747d05f47f8a8f065e60bd621c71c1fc1558e4c49ffb5442f58e969bc0d4c63e7149ba8f92e98049b1307b1d3fc5a7eda44afd34bb3b9e17bd1e595cc541beff2456cbc4b4e2245fb242e6f23c71b3b456e24b1f137b29219ad6697b7217a9d5ea7282798a7503f3d8f9aa7978727989fa67838452fd14b529866437b170df5f52fec4eb931770dc7cbb86b8ee3655c43a11e8757d750188543abd571b83f2adfd8855d1b4f85792bd1e1cf3bc5c3f065fcc2a6ea6b4d18e17fa14bb9fe2d3ded4cc1edac9ed4daefe3deafb81cf71b75d9b8a172f97d757c7a035b47c9b781afbb60ef56cdd2ee9bee91f17e9efa2d7a7ecb5397ff6ef9744b8d16c578dfbfb019580afadad6c26c0cbc2de96b6d7b617afe8804d3f345f8f5da530b109682ce44af2d025f3a094b6befe1ce6a35db6fda87e95823d3550ebcd8b2c31ba594d2dde98a4e4a2fe9f5a4135c497a84fa60563a29a5f48aab49b93356cd531504a3906dd0c0219ba62ee8ecbb7c9c91369b1290bfc61bd1f22e9903525aa411353840f3d7789a4d45f2d7f89c5b641355f7b34e2dfb1aecca9799f64bef496c1ad17818c122ded36fc2fbea4ddabee8492f48e9b9bc379c24dd3ffed760ffa6a7df7d9cd92db23fc5a20f96af1c4b8ef185fbc79b8a1a7d64c359cdc05248ad95f03eb2e1b4c83621f4e07a94b2a9f430af646646299b1250e3f3177179989c444ae95d729ca819b964278a16a9f12eefa264869ae48c17edd8978c226be416578dfaba0f4322b9e4969cb7f5187aa6e0ee162d74fd8982db62d3226ba1e2a9ffda5233d3f53d0e23f15889d23f5602090fb917c5740b6c89a3aa2b4b9a16598bcc535dd8d2d5a5eb3331552d2e950b47d5274d554bae21d257dc231bce910d476f1bce14ac68e26871453bb248f7b9cb73c3dc949f3569bb59b9d94be23e4d3e15eda45e92d21e1374f90fee4a2814859597a98fe02af5327e8acd3f995ec6672cefd5674d554be9e32cddb0f1a7d80cd954d5182d99f1224fa31c8c0b05fd9639239a108f583030648c9f4df4a9bebf65fa56bb896609c37f8addc0fb5b2f10deaf6db8e4acc545e3558b1697e74fde1fcdeed1e2baf353a4ff7c9c5f7167ebee8a43b2893efc2b0dcd71989e668c58d187e9eb2341136f5a643267f4115cd9dca7d89e70ea29e6748bac45d6226b91d937e19567c1dbcfc0da53ec694953e70c1a138c6701dd789a370d23e84f4b2944147d2c582f68fa30f22403fd1b79d3c0294ced0abe78cee20bddd162560526692e0d1a24d2fdcfef16d90ccc824d187cc597fa54f3eaaca20517930b1b9941d715579fb0f054e9eb54e5af251cb58d209fa61fffeaf7e82ad18ea3eaff7b9acdfd53cc539faecf9aaa8c8aa16203d28f94dec0d7e25214989ca251bb6976d32ca5f62996533cac513c84492a928a872e4f7da52f61a96d60a951787f4bd77f2c058d39c5407a83ae29058c37684a414771c9c5dda20a69a2ea8ff2965a6849a5877cc957123e24dcdde314ab949e62a094ee834b5fe220264df344a2524a73fff39e3bfa6f1757c7c37a73e20be8c443b0c6c37afa08620cba388cb7128d7f73c205ed481c5c6983b39173e840c2701774790a7ffd9b137dd8af7fbbb83a53d57da5f1970cf18784f1118646da6a9e78cac6d7075fd1c78daf38a97c8a650cf312eff81d0010c3e39158cd836847c61b61071cc343cccbe711c323ef706378c4fc7f31318afe65c4e0b9450c0180a7b07a873c6f62f80f83974c1c981df0bce1014f61358f3cabf0c0b34a7cf9dff13fa5b0030062e6cd44fdc3609c19c6511b41c7b0814f58dcc027597cb181e9671cbec43a3cc6527738c723b11a07ea398cc46a1d5f71bc1c18f5166bda7ae0a25efe0bea25ef70512fa87f54fe8f6144fdd77f16aa51f814431c780aab7364520cff43bce42300fe3f5005cd4cf8defc2c9e3a0726e9c05358fd9245317cd72f58145ffe75f80745987fafe6c050bac781a1a03069a2fe43fcef6937befc4b29bf2d30a0e98bbef07044e36195f111dc443b1e566c1fbf0dbc95c4ee95cc5059247f979348919fa4fb9c6fec14a9f1f9734e92bfc60d1d4df32e6d4db8dde7154945bf41d7c9e624f3900a13ee065d26fa35bee53b6ca2d95444feee8d68f91adf7dfed9c67133cfc19549609afe86adbdf111a412e3b747e64cdfc8281b4818fc1bde3770347e996903479ce9e8453ba22f4634a3259ee21e7bcff21b749d62272c3cdca718b5ff5e47c15f420eba90d3b3a9d0d49b933ee8c4c30a3ef9380dba5cb403ba807cfa14b3b9dbd34dca975bdd994bb821afca7f289f87ff115cd5f8ead2d282bb77c1f96b80b7864b0bf5ba1d0fab0b2ee86a724f8f6fce54e54d9b517ad0053a016ba6cae56bcb57926e714d957cdd0de6d5c0ddb7e07ca272c2e254df0bc991c9059f641355bf059f6a60d2745d169b69eea87dcfe268ad8da2377d69bded29ea09de525b4a375bb9f0b0ee508cb7d5ff1567aa648e2591f496c5a5dec966aae28c7c9afc499a69f567aa40d7cae95940bff21ee8a4ce145cd04f145c993355a7d844d52d77b4126ea8fe7645272c5c1567a85cea7d5e3739eb32829fe7ff31f834f09e549881f7d5d9aff729b65fc37be2e80dba38bd4f31f0061b44a3ebb3e06d4758b4728aed6f7f175ce2d7037e244ee653ccc32adac111d5177de12af99aa8fad63551f5a568a745a6657137e802639e924e5c25da9960ad82a3050e958a8305099c22da118976be245cd03555d20b97aebf21e14a9d2e724447d0b8b89bacfe29e6a9edeb9fb03855299fd253ec143bc9ba16d7b7b8768b4cd7b79e8c1c387d0b7134aa84a50a5752b90dd080869b895f69ae287fe0b7f5c0efdb011a25557020c9063490012a3030c5059058408a28a0a800052670c4c896c0131180c0039c68c2010d606209062c4009052460f4798a2505e34931be9432a54e29193f2345e37d8892785067a2fced07f2b6d703795f5207f226e5fd4af20eabf0bc26cadf72206f7b2f89f41f52e1c19928ff587ba7c8fb922e9037e991e4fda105f20ea5c8368abced8522ef4baa40dea4a740de3f81bcc3239fd944f98d3192774cb8f30e5f02793fe989bc493702795f0864fb80bced7522ef4b6a226fd23b20ef6f00135736517ebf9030fe314be41d133220eff01790f79394c89ba4809c8011c67266095be8e8b8842d7062745cc216301d93fcb61bf87d35f09b9481df4fc5ef100353fcb617f87d91fc26690b48f189e2b785e2f7adc06f12057eff0e778ce63e1ad977939ef8fd3bfcb41db3c307fcfe4dd2fb6a076cbbef12fbb5dda1b631dabe68c8cb274d557ef93c5a5e7e8fa9727919b3c3fd338939fa6d75f715c087212f5f871a2f3fc67d68f9f8a37b2261fcc17ff7218897dfe23eb07e2688971fba0f355ef65080975f69ae84617a09ae4e25182496193464c020b16cae98f69769ff24795b1bedbf81bcef4cfb6b206fd28df6cf40de8fa3fda9c839da1f03799b4d912f9091e46d66812c45b62c2bfb4491a1c815c814c813c847f28e3192b304f213f9662bfb32078b40de3110c83b7c40deef44dea426f2be0ec8db3620339197c80cc81c6c01792573394fe48f4e89bc631490779880bc3f89bc49a3bc2f286fdbf940fb7bdd138db19d01753c1e50c703ea78401d0fa8e301753ca08ef6c7789bf1bc42a157e8157a855ea157e8a5fd31d6663c389f8f07e7e3c1f978703e1e9c8f07e7e3c1d1fe18d7998febde8feb7e5cf7e3babf63fc31a6339fd954f97f9fd9f7997d9fd9f7997d9fd9f799698ce7cc65adacb056582bac15d6ca65ad5c96f6b71fc63e7365f70bf9636b2261fc6362c2f09f44ba57a6fd7ea1fd03af07a8d48b972bab1e64884600000080001315002030100c07c4c2e1581c07aa5e7514001189c05e6a4896c6491454c818448c01023000000000000000028ac3a313f2b2836068880c3fdc6fc2ef17866d8855019f2f05ab43f12b5a75de779abf8175130f1e119191c5406e022756dd4287a2cbf24e91b1190100d4b28f5336a4f07102304084f638534d80ffbffb17c9aa55224c6fd67cea55b7cf231df060d3d0737fef1c15e9a4329df138939a82e0acefac16fee7364314acc4d398a8cd3e83f79e106585ab5ff74d7444e25ad2a5b904864124a4145702ea710773cc512d57c7b0fff9b6e7893c0e68dfad89003c0c505b192d7367901ce2807c3c51d6abc3353122acfa461f9b5e150216c3b54408799ffc8721fd38d3fbfcfb223fd235488b5400ff4bdbefc98ec7a7667d479f853e73703bb95f3908999bd8cafdf02783609d91e29a4fc58f0e0b4879652df0b28c4f8e8b005554bb90d161b0af5037e0cd65b33b217970aa742c41a52f9c73a5be5e49a4f80d7c511a1f1182a4447d721a6fc9d7574d5e5b3d5acf8b0d2f021b8f8aec3f0049062bfb38c50faa30bd55d7ddfad6dc9672e00ffb19530f58786bceec8f3233bf645ba0ef45c4c48a6f4e0085e9188ddd9abef2db2d33a5e7826a76bcaf95383afa4facfd073e49475088b4d5de9feb9b5f0342f3959d1ba1a3b07ee59af37f9235760bd004573308780b4726d0457cba260b72434a30d27198c282a461b6141882d5af02d8f2ea8f61e42782fc434e4a1d67155e78332c1b93001b9a10fa116925104b5968a643ec8862adef3ec884222136cc94bb4dd8cfbf496a85272886323e39c89d25cd0cfc45c69fc08659d5b62b4c61014e0856dbf8a349658bb0b9940134ff9cd87df3fce58ac2200f6d36af2fb1ac1dc8a6e72fa6b4bd79c29040d9bad95446057abcfd2cd04c8979c100e6378ff9140516a795100d156f5900e91fd130f5227c0737db49e7a6c0b6673971bb6abe134f3270ae822b3ee2e33a27213e5b86313b4e3b5fb7c46b9eeae95feb8fd2b60f816ac103ef9602ac53577d4f9caf4284bc4ade1e2052defb11416821e0c56970f2718a0f656453e1ca2e6023fedbf7be03e4b4b82730985eeea15cfb8bb2ac338c9981b944f09a79f8aac80782bcb186ef82641331f07066e6babb801416d2c8d2b78531e22bb1e13a92ddf6c0114464d5c9a81104765960827792bf879fc32049022ce1b284b9b06f66e5e8e6e583900ba7338ad974a9a78679752760a485cd6204b8509567295d019b7e08905a31f417ed2a3afe6444906c5f6e4b28ea55ea740d21a9af967b81136a8c09094c14c12e5facfd81a509d8bd72dbae3e9c0ca3c22feaaeaa070f7c624561545ae27674d3b9a124666a6c4aacca7e234b8c84d5788fe17f897f310ea5c5028f2b6e1e7ec284c2e85c86195dccf17d9269cc719239e494f5971e2e505fe855f3676e09611ad0fa7520b811976d0f4b12c1d7598c26d171f3784ef154733ac63c1685680e47299d3d560b9f6147f301d957e809d5040183704f7650eb3d74914195315863211287926ea2a0d0d66aa7aeb11eba1ba3b5ed6b3d993c36dce4cb6b6b900dde22790aed695d041e4a630fb5a28b74275e5dede2ebaefc0e7c639d4b8e9f52c0c859ee0ee58d5d204166a08b9b1d72543ff109eb0bc61287a39cade1e84a44266906cc90365188de19f034b3278ec0912a8e15338de02f90a5727a6c163b0fac7e488809292d800184a964654e1b0b98865db4f2b9e28fc1d98a57cb060651046121429597dafc75c2ebbecc18a6531e6d978f95a1a800d70989ea64abca14e8328be22dc209e9baac4c3db202ca8ca74a5a01697ed7c8f46f66b4c1516541197959ad61533706fa9851f87ccd1b9b9866d88bb5f144bc84416e0cd197652a21bac9510b0ff28a6fa5147fbc7e065c4ad6f048d9c04ce451d919083183e31ad2548a6e9a10527007957c793fe4da7582c18cbaec3c10a8ed3d3c0b438880cf2367d20618c432462d8afd79878ee52a3297686b757d720a54ac69bbaa4e21a43fc97c3227b1f46ff0138561f9cd5bd6f3d2c5c579253af0acf8d7978b1b6dff0a1f0378e45a8f422b7b79867f01cebcbcd24398025f16461ec49b61d909041bf3d2534d3fcb87cd3714f4350ba049768d61eb3097837a8b5efc566f8944bfe08da005fb3187d4618236bf9bc7cdbdb2848ead9fcc4f2c7e8617a2c7da8a9a6482bcab94039731e3ec7a277316451d15c1da1c96fa9397e7342a18e053d7dc4d5ee5440c103c4d1a6ee52d04c2d09a6a6a2c4d96bfabc776b3ec8acf977b1e6e1e5681b4cb2840777f4cb54cd87ebdda062b782a7266bacd1f5c7c1a583ab9eb72478e5804403007ba9f88372cef06dfc05ec5b0ca3c5cc25c2732d6062087b905baca686f453c08a3b9e8a779445cbfbb1554f74104fb2a2db78219b594186ec56e0861a4596a544d45fcff0ec485fc25e43a2e47b02c153a1df62dfd373ae8c379c05dc7b2b36733b208dc6d6631801e4da42f733655699800ab076cdca99745b8b8c7ee88ee3ee2fb84b6f445033929ae4b0687db7f696dc276eca26d7108168bcfb80dace58e471842a65ab0d9d771c1f2b96f011771c888e59663444a5cb033412c88414beb371c9701c8168efa1a8616af963310c1dc4121a123edfc089a6dd849beb8bed2a0e5191b800fb6723210bd890ca7e4ce9dd92d86685b077ba22c98fbcb0c84406c1963073edead94c543a602a34c3b134801978567605847b5f36f76340c9240a206c458450fa6543677c92a10a01bf5983f311c1a4f6187489fc62c97619f8da70118da42d519d90d7b8ef76b2529a496978b7430e59d90906934705c79ffa4015b07c8bd3f265451d7e3cf5271270a6947c6952a14211c4c0e8c1b9eaba80db9777925d11878202241d66ecdc691faf1ad33bb96eeaaf4507b1769ab31a376c44ff5494cd9e29f52e51286b820c3cab027904c14f186617fc44bd761d2a20e8ce62dc4744a7b98c89318128f53c160360245690422d0a80f1a99604fea1e0cab6a010f330c6ddc89342b4a899065f21e85ff1e4626a90ac222d1f9d1b505377dfd5de7a5811797d8ed1ea64c396bc60f22166b64df0670334e145c7f2441ca1fbf8edae0e69b934a91a1d6f3cef75d2bffef7d0f27fbddf22201beee9582a5791f561dc9303ed885588db1b01dd474b71585e8bb90eabf0dcf5b773bf20879087fa9d48730f246482134ae92e809fb902a7867f6e515e0da6bfbf3c0caedfe9af11474eacbecd5195feb2929f77f52c34b358115c16a0c48b6e2b129837ef8f93a3c3d2082241ad41e0ab9a054e720a4c5b6c94fc8fedee29628680a92f532127c24ee3a32a6526ac316b1ef29f0dbaa64472968871256d0751ea5c6e5d6629873c6f626b1f988137e72c2eaa54a1ac2ebd1b6d144979301432132c4945d14bdfb69fb085e696319c031eb77f7f426ae2ca4212601d335b4ee5f33e41bfa0afbe7fea69c65e89e5964a4297208a3c4cbf1a8ab961553cf417c6dae8c85962a260d140180fd95ba180436fb7d2d18c39ac81aef0dd6c237f8a222c32de9020b7ac7308c5c10bd80d36c26a132c577cebfc26f274aa62f5f40e71d570317379e6587f273a11b272b3440b40c0e149b79124c3e9e6ea8166491b34bc5542130fe32fb5eaf69d5933544a1834b9d4f7798461614c00ccb257275a937d07f5a1fd1050548ffa33c6b66363e5ba9d812e1d59554541285639848b93f4ad74dd413c180c0235882631b0cf17e1a8dd95ee2e03ac8f3a0ff396ba646f898476ce4e73c3c77c34511af4479f94fb29083f06eaafc3f88d4a261007ccb9feecb3b05b29b3946c62afd823ea71755304e525a243e5156eb892b94039764f8f0f386dc0b063609ea0b2b860f233804f6f611ed1e3dd18fd35ea7a24edc70c3a493a5f204aaa5a11fff701401f70a4df9c4974c5146e6753f63a3898d4e7919965883d5ec1e82ed9c1a1cdac3abff4ee7df5c18cbd05fd86ed1d3e395ed2424ef0af2b2b04f1f5b46cc19c0077772b14cbd6dd28f97980ce3c98475e1ff16a4204639b4d4a7c2c8de9b3b690f238a57a6a0324a61623b665421100c2c4c7b12abb0e8b4a214cdfcf5866e944928e1afff753c7a21adf72998a4f445256a7f5d837c94de593513d4d6b95b2632b7c4433301b2b3eb57c65ea261e806986dc5033a78df61a4c3a1d0e7cac64675a717c3dbd8cd1881d6daca0c9d0e9c5e18c6b7c4bebc59d75a0b3071467ac37057c950f6581d0011191e2362bc85aec3bc9b16cc183885ff49301e1037e863eb07755928f9f9c1fc055a4471b81787f742eb2a981b320463a27996243b16a1c371e80c6e08fb268758aa178c18296fcaeaa185c825d81499b73c31151b1d0d2ebd992aae2e8974a9cb39042c2b7f44a893dc4712438fd78423a9dee813ed40296d74acd08b026a24cb17c22ba1cecb68f1fb48d001589b2d8f1e46465f6e8587be4827e698f2e5bb2c32be928a588fa7ba41b18361164f46536da348dc4792d7b0281c433da24d4f055e077423d5b844134c12dda1a3bb7bfe2229f6a8f953e3620c463193ab5ba5a46a92476d9b08c1f76dd764f29c76859945cc66369ed7e4f0939606136eb78eb6d76a53de9ed5395c6856a01d1277c336c555a484f6684aa44feacd1f428c5084793b62049ff7291e620455a75be9e0ec33b7c26f6c677933fc5860541e91e16fa3948ce58d0087cf4465d46a2d491f6fdb7f0bc01de7f8b14e8a12ee42773da9225cd5497f6f46a37999cfd61ab1e40c164c9c58c2168115ea8d6f9ac5aabb9f799ec123b1f75b3cd6528b35342136da4ee1ca16eec18d5c19bbb3eef5a4d260f91026af79ad2e02244508f00488f428466d0152dc00f118ca5eb67f6e98f541f588590d9cdcc2801faeac0143c515c269ecd76149dde6f6b6896a68e788113dca3a42b0e891253d5ea41a012ce35e561791d837d4778421366d18dd4b60b1c958277d262373ca84bfd3d871cadb0526cddf52401e1dcddf54a15c8783cc32ef289884f4c231a64345dbe3527948183cd2cbb0df3115e62f9b25dce6caebd4edcf54d7ad95206ec38a82ceb1b222b0b16234f3e58aea3d5730a85d7df1ad7d094b51b096cef1f94f05ce7ee7a5912fef28d9793b2367e36e40107a721171e7c01ecff346bcf2ab681f7a66e08c3c81c3ece89a368fd0e1ed9227f564d9e652babb87add9bae75e01bdce7244d030fae62c37405b143a1fe776805279b40e77dbdfabc6b14152efc8873ce830e9089a94149e41de67173155f80c917b047ad713188809d3637f419ac7d68f9ec71e62f586f5642f85aa89a137b0f7a36fe0b5ff78f024841018402d976dd279e1f2c9361e0113e2e49bb32f1a32606b5ccda35ff9549c558f368275f53c16672a596d19907e8662547e24f7996a20d1ced8cd781561764af54e40dab4437901a5aa8eec57ae8a016d0afd42ba9a035c28cbf0034edd4b86e5ff904d4a2ebc2f711833e7e6a7f6ad4d111b4c606b1934db1162247ac60c4ec9e69516130fac80e4db681abb03187425a110c82d3150f0ec6c90f2e0767da07c2d3875ffcfd0b4ab7f0ec67eb19097cf00fcc801840e9e4d32408d2e6286189c8c048e50140ff6455ad02d6de983521359fff444eb07545e9a522e40b175545306c47d8d513bc415c283a8c64e45bf7e63b14d6741c6259034b1277c1a805445393753f820d0036f4823e3791a0d15ea00ea61fb5e97524e3167794c2615f3b4cbb02313152e6c22a02c40abe7f311c8fe82f026382b59bcce158eb42a10c444e3190c6807fdd50bd73ddd43fe452074988fa105ac652d0d6f75884e831a98673c68e059ea3870a97f06fe05fa55001fc51c2060283997c2e605fa6ab02cfb345abfa385f7200c8be8bc65e2a70ee6831fb9b4ed9827b7c781c5b3e3dafd72ab06f74622391a4783a8d74808b3405dccebb52852ba8a2ee32b39439c1048d56ec2a0cd2feb120984d51b4121f19bec352699a963225f34f5dde182837075933bb4030509ffb9938213dc14fe97dae3708d16951fac3222b02351887f8039d01add21dbf58681d03780235715f648c456cee5d2778ae646e5c6af0f4b7ae1dc5ff7b6580ea143b144981e7c1b5487d0f8db88139ff1e1c47d67c442b76e305d55396f534c977f613f965e9ae48050965f27aa3f58e3ee9d46ca2923dc886daad0e3263e16563a2ff6a9438cc9c4aaeb3a6bbe2599383281f97a7a0c31888d2f2b17041b9933252ba458dfdc9d15937e562b2f77b04c73b840312208b829148bf9b06e89904e9e2c321b41477fa08c5bcf869838c896e8f2eeca59f35790d7b591befcc51e6d56b66de614c1f64bba09f3c072efa9350fdc31894e4147f397ea9dbc403cda5828fe49b4af003e3ac04622c53a3381d54b0e4d0520ad03af789275a3bdb36fc29ae02b190db5901cbc4fd92fa86090f73d186c5a6795fc92dac735148701888a9188530b6a0e91cdbdf939e8d8c24a8605e3d38192a3f8d445dbbf9423f09afbbeadb290b3b12b6210ad8fc9f6ee59218ad3dccb0b5b18f3053f9aac1471a551ff5901c12cd105bd6c259002ba4c45a354a31def590fd5eda92a117b3fb9e3a659453eb9a34146bea6262a02dcd3218a009c8e3015af17fc96555e864e9eda3b107aaaeaa57d67bc9935d2889f2177fe54aea603a1abe00b2d37e23d5cb06308c6f06adfc8f7feb72b741c075a5d4fbc6dd97f8cc0da89433c1fe0a52949c76c5b365d2a15c703ff71dbe29f60823396871cf698bcc14a800452666767099fd8d3447abba0b20f7b181b956ae196903197477ac641ef73429d439af383096ebbb9a161174aef7268c563b9f4047c2baf6eb4fda043b7b543bf6ba391816b23117233002a143ffa3310c8431767a36037f667ca258f47df9f939a4b415b880fc16556c577f4bb2a10b5e0be52805f38988280fd1ce799ba6e902c9707231548db7beb5427f09f721cec969224b754358a54686b7704bec5b430bd2a7253564ab91b299250cd23fe3c42a48ee5fe72f7ab0c0f1e2c2542e0ae831c3286f61293aa4647b896fdb9a99f07370e08103d55a33dc99f448ee31ffaf5344944412f35a10dd1035cc50f81c6179ebf3d83cb8e5b203806212eba0050d8d119185c3c276e3ec45d0a59321a4c3f8a19651051f23b3ddebc1cd255ba3ea420ca0139ed12bcb938cdb222f72903d0926c8bdcc12ec143c31343db804ae13b14b23ddf8a2be5d391483c91b6881311cc13acd644a194be85ba03bc17499795f567b085e99b0b3d89060ab64c6076fee1608f5715bc7d98138881ee14c480b240f987c2cfcfbe6fb061e0f286146f2300e81f9073824c8dfdb9609d8d044b9ace69c1a249bfe9a60ccb5e0b682815ee8b3a3596c56e9d7051b8828da2a61a1c4649598673b18599544877a53034efd7b6b3e4245b3696faec0ea740f23dedc0e784d43d0bc668acaa16864f643216c5f7094f30969793f0e43921955b08633d1c8c5c79c30ed57e275084680c8f9d6545377a834f8ba015b95b62a86bba508310b5cf72bfd4a221027604f5a92348bf3ff1c4be7bca28216a9309474069f777e0238cf805b8b303e77e41a1ce85fd20391a8fe857ecd237d36b0fb7429897219dded7303935fd861d650e1f6746bd03c69862c49cf86a2e10fb9dcde3cfc56a49000ce4b496434fedf2c8cb4593d4df17149d531077348a1040e28dd38fc661131e5753fa878af9b46f8f8dc4a345f17400daba5e22c300dfd9cda890e3ea66b8121a244937767c663567acd4714c69403cdd38790a03a214e3bc9590d838f9f2bfec63426ae3844b08813b5964085266c0effda7b1071f29ea019f0021155421fd49312404d880c6cefe62075c2201199a9c03b9d3ead906aa620e16e99e7d4a7d348ff5614cbffc9d61c89146077525b1d848d7ac0537a8f0d7574e9706ec92de678e197a64d1cfc127f7dca5fde5d6ba7d37890d025920a8851e136080ebfc004798f4357582fd4fb601fd877d266d180cc74be8ef1a5813e2eeefe320b4dd45b516348fa2ea03147180c9c0e532065e761e173d4e4d91aa89e6a0395517771fc1e6f834cd4d82e98a5c6d956a760f7fbc5a6ccea8e8768f65b937de5329180b360da6eb77b5552b670716e24289af955ca9108f7a502c0e5e3477f609628d24b19a83972caf07d7bd44ec87d1fedbc1ae89fb810b6e5ac68bd9678928b83ffaf8715ba5326c13c35ab926da85f90593600a67d35645711428e00ea082f99310f45f9dd620296cef4824f95be5611a630a8b5547c15fbce005a2c22b508107308585d8c981f10decbf5ba3e62d56eb410573bb96c27f4884dc540481aab0ac0650019b22705a69e9f3dfaeea80d7494f38853f9033494135949a2abb7b6e5a6139a80a37b1be03b434415cdf973f4c6c70dc117240ac22c11738207065be16599f64d413f93a3b60b73f7245a1787df3032aa56c9f189858c3e95b70e02cad7b9940af2e61d1d5b154d67a34c905e086a5ee5170c187edbaf34254d8f038efe983d555e181e772a6b1fd97a7c37cbe6f6bae0d82e79661cb8a15ab4f5303b4488dbdb53a6d16a936894a73451a2f50f155647ce6e9768aec4f73fafb8d4913560830e232ac62f08bf8bfa8d8886a11dfb654245644e5874a67adce293e4fc4077f541bdfde1c5a1e75f5646c05871f97e20b9c20167d3563f0a465c6933531b083e8efa5a25482ed140093d65f3b638fa41ad62e7210a98b511da41cd4ae797b342e111c249ad61fce8a0133732fbf49c7286869ce6b687e1cd24d5538adc55b6fba7c4d0737c929a310a6697ad2d4f4dca2b17f4d603b4a81e9d6ea3c6ce4653a9520e74364d09de1f76f57e216461a33393384a76c4d3b84e7a03f93f19df2009435254f35f1cc748019bc1703e06fbd4d6c2e888e84b7814eb3686e023e7b7df34b801633ed82f4b61356aaa783021f986c012c0285ad81ebd55b1571ede6af80ad9bf90f93407d6a96fa506e0b639f865ae65f54fa8a3671fffa6a64fb9fe6ed0079a29a73ee2cd8a2c629de3daaecd2665a660290a38a01df7b8f6da4b33279aac8d20cd5584855538fdfe47e87d16f39ee4998f9bb0354b35d738e086d4cbfa03d89dc9ab03bbf12d7990ed91dcc3d9c8de668bf1e2539c25a8f672676fb74c36cb9afe6d52ced65adb43c15ca5a936f04b63d495781e706eb6aa14176b318a7ac894b834c177d70c859cf3c0f6367e22b6e3b6f56f540c9fb0f5bce6087ed9393b1c649d85373ce65b087a28aeef02a3e1a29951ef4feaa0f76bfbaa7fe55e5fbf2669f25a13b53e4d1e25f57b6e46ef07129a734f660c1d41771ac1c8811747636f665a943cdfe42a513d2443db7a4c6c9a10aac856d4952b73351edf4c2803652edab701016d5965bda1afeff856a48350d46fd7c004f09529f21fc830aca7e90c355df268bde7179d4ff73d488bd92543bead1284b0dde8592a3da4237213a16af661b15c43867c8184e4c7996ea65ddd8cda8876b61326aea23326a8a3618706ebbf845451831ae6bd786b3453d062735d28bef66a9a9c44b4db35354b207cf1062f2e8903da120ed15a3b2b9a2acd6afb14120503481daace3d3e63c6d28c7e8844f135e9912bd8fc58ef9d511a5ea1f32892642410843485970e321863f0cf0dee25c9d074b998cc0540a741ca8c4ea01d5e9bc1808b889ac447d12be79062c8277b980a944b7bd14fb6565676e833ca8aa916fc05c383c2ce65b9370528fb34c238e93eb294906a822b7ce09c112fb02813e47f99e0d3173024e357a3036bd9e1b2ccf964cbc8cde274b5456d6c644c2797b25a163dcda88f0f0fd7c3e929a2d393bde682ce70d605805748a725ff3276087ab17a51a10e4fb1cf03ff7b25feff5c722792f27a97cd4eb908c50d134a6a9c7f1ae110a2648d1a91012d5d8eee03589c79e74fb7d0ed0e1ebbf9f2f8794dcaef61d2089fbd2368f28a0d4b7723ff3446b3bc904dac26e8c1b557c8d2aacdcfd4cf47506e731c11eef82ee389ed5515351b8967b98d28827412ee1cc64ff0b4dd3ab606fac90ddcda9487f9b498ed6a842288ada9e808ef48c86af8302a848b55cbf7938ae8d1622af6cb9b13ad4e9e3fc3ba2dcfcc8badbe1e7e0b7fed86b57a3f646f34dbccc7a5e3f008efe45ea1a25f81383827869dc1423ac87736409045da4ff5c91e1dce44a962d40ec5bc49bd2ce9b8b3d564ef6100493c2d065fe4f0489ae3f5376510fe21d899f4c8e3f611fc2d38714c46ffa2028b689c7b125c7d840f0ef4afc38305c6a9d028d54e1a8dfd8520408fc3ab19d044c9c66b14ed5e7bd3029e52a12fa9493b2675318395eb03deeff74e3824c69a961ae17e6a8e80435304333ae11dfd59489ed5ae37da3a9c4c804f47dce19148a08d273c968bb1f9815abfa475397576f92025c9684826f14a569270c087c4abe78fdac500b39f2aef8207a065e356cf4a265e438d4844e03ff728a619245d6b3cf165344193a0830cb65b1bb770719d4f419600a741d20200b62308b5834d6bcc8c2cfce72534cebe7f40821dc6a8a56e58d526abced24dcddfa79276bd11c294cf8492daa7a8db03cd25bb1f5454d0cad1dbecddb3916b9063dd03e3ef8b5e4c9e0dae35bfe504c60412a15f1357ac284633f64b2946dc73a6dad47323ff9dd833a44e67dc6f55ba9082e1574de2e385f8fb4d768164c88152d5fcf82cbb59aa535e3cba8bcee78795c01e13cc23d4e80ad12a881691efef27f739f224d635c90e101ee2b6304ec4775145c7643b1609d85d54624b880fe3689eaa61e3f6cee6ca742f77f9b50ac333bf3a14639333454846e2245ad4fb988edc76267efeab148ca9101a5371d75f57376f1305225c1f0dea30e5443eb2b223ac4f401b762f9d1c2f416f3e35c88e10fa66561e7f36245d467a59294fc8166184d0b5e52c8cb7be8e306b777dbedee535001dba0cfc750c566244deb798f1f73a398d9bef299663a1332c9e28b2f0ffebb84c31f20e75a109a87eee88d56b4fc3e96401133547ad1d14f7f62370b23ab1418aebdeb406f63ad224547ec3e7029869fb5b861317ecc15b13eb570ff119d4507741a3da3c5909d63b94d2be3ee6f876eaebeecd577a3a7085fd37c024353e888e19fcf7113537d9b5b5f04e915dbc7dc1673035f514d58c2dc8424b73f864e53f8b0ad405dd762a9d23ecb4d8c3fe73ecbf4e2969bdce456972d78f3248096b728ba943baa00d216bac1ea566fa5950db43a4dfc9d71434ab0c55670f683c8bd64278b6ab98622a727c69f732bf60f40964b178b8f5716df5202293cc6cb201e172f6248f09ef4b8a91bdde266d738eca8754e906fa457c241066cb251a4a0add59cf3ef8afda6993e1b2ef137317a47daf5622002b8fedd99022c187c0b0bf38ee3b4a13f9a544b0d89ed236ec5f0abf55bc5f344db71b57962965e8b71247fd551123da0fbef20fea39db5e8d0eea5c4a9a0e2f0e4c3ec00275437f935b84d63a8403e75d4feb9fee1151ce750ec665ed843e8b58bcd7d61e4d0c7ed6eeca65bbb115c1571da6a0bf335791af254e172e3ac1268b2326cfcbb80b7b0f77ece447086feb2e66c8013138b962f845e2a77a04c20f26a206840d33cbd96f62b872a314185e14b869c070eefa12202feeb289f8a96b2eaf71e2ce36b0140bc217740aef6579ef2d1a078e5d44a1bb13ce5398782bf1e048761ee088c5cfc7a2098e024aa07dcb8b9c119371662cd4fd356b224cfd79d1c0fe6984940f1fd1289c7aafffa57745fe48d6fa815bbb3cc1c7c612cd6c298eb803c3c3f1614cbd2df180df56d104add52618c267536502a3a5ee7cd3a9a70f350634ad0430be45ff786943e6ce3579e0c5ddd231a86612c86f90f492c15f7dbf9de77d5f196599f45745ae10e0b0327d0d669121f14f54baedfa6e7e69b4bb46f7e574fad499aaa4c38456192d96937646681cb2236d69e8bf85dd5bc57ce108b9867a9b6513d7fd4e7a5d927303113dae61a25c36243a7830518c34c67e723a077523fb2aa815281ccbe1fd5ae93609a46f338330edc25701a3e452b4f32c9ecd3185a6772ff5abe05ceb414a542d3fcd16cb91ae6bd54d964d4c474416634a19ce85908a53453882c67d08f42b7702567e10c743e24d590e4c9aafc6f57d51fac00dc0deddd57bba6d05fd6f843e1f9f57801d189def55ec66ab55bb601444d373d1fde1263c430ef01dc4aa0d34fef9236f2ab0dab24d99b7f68280ba6400c9c23fd77f3bd1367478ed9efb868dab2a0c8a55278c5a8eb5d750fc4d701cbd3bd86f0e0fc87ac73a7fa84f451e7fe5f1e716cc4283dc7795687f9e5eb3801f7fc1854edcefa75a3c15e0abc32563a8b9cef81d0d481bd5251e1dcc30733877d3faba44ad7e93e7b79b62dabf5caf46de06f39f1760243f2a8c1e3f19d9d258a3b335ad066e0acbeb737780f08214a825058fba26249e99f359e73c62ed0ef4ed50c65eed35ec51c7b60bf0fffdba5c223c7ea3d5dac01f776d9345d85b1bde110234f5a88cbe78a6e826fa09e6732d82d90ae91f3a200e8f67ee248f1db4edc8c16f2b125328453ba50cc3cc293bd101ef4a57f232cac0e1cf7010d9b9d2d0027119ae2f13c6a14ea0fcaaf93cf6f8bde08feb19d73d360f7c1d37461c13005f4753b8081fc21114818c951feb997a64fa5af5269f1f2e35fa2acb741ca28a2fc75bf1c2eeec11f30186dd167879250e898debfa90b6ca482b5a1197dbd81f2faefa852b51d5b0c5c7162e5d1c021add27915959fdcc66ba3e3fedcfff90229ce6fc736d72b28b4872368e8f3a503a1cc828063307c7659ad555031db39af1e825827b88220ef1cbde79e6c40a61d4fb6d1a4fa53e11e363096ad0610cbc24b44a2b1763e760093cc5c886da01b593356b0c947ffa00c0d0994a831f0313a189c9ba04b94ec52992f3389d0df5bcddd8b15d76ad1a673ccf0234d067b401a70b5c69cd81ce8388daa488e26af7e4f62999722146243af899c5a57c0ad4f6df20af2f7362da8cdaf6536d85e2433e870f0b84ee0df237c4e3ec4e0f8a67c6c0154ff0716ff4896234e57fef0d7e50ffd7a719fe8d774fb42131d20459394464dee7b7430df05a87d3b781b8e8d7ef5cf96a92c7b6a4e1fbaebb35535559c51b95e24ae188c3f0a3455bdc7572f0981b89c253e6e65fb938966f7d5f743b7906c8edc4648a192378d52e74b2c2e36bc7ad029b2d2b07691b7d3d8e5f9b653f5216e4ed5f146458552498a302c694eac7f5c5f1a990d6209d37c034caaeb4a1cd010169eb034f8376b53207ba80503e3e465d5de32b1e4320e90c8eb7146d8afbc107d39eefaf5be22930089482e508f1cb572486c8a88cecd599b938b52f073add496c2fbb5046f195ddcc9d4dbc1087feb9b61bc4349642e8cc15e46090a6bb02c520f00002f23b256541eae1bec6c87383755d40778da5ac96855b9df3f7c190697bf4bc5c579de9d3e0c5d0fc6c869ec9dfae56fd6e493113ac364dcfbf483809ea6f46cf369dff9b49904f30d548e2b36bfae434eacf759dba714ba095623f51bf121e0dc1a981e878c1aa7d60cc4cd01d9043eb4f1077c38f3e6dae19bde9ddea7426c5edf1417a8a19ba815cbee50dc442d5e5ea9aed013480e5b6f10e744f33e615a92ce449982f115224893da998c9d35a1866b0f32d3fbaa9dc7077aea423729b9cd81a86282940d53e7f08dd7c0ff4153fcacb018de5b14af9d80a976b14b1c679f1d75373a3333e49a548914ed65dd37a5b6d0dc1b7b04688ef747ef1e2dda4e46bf450affbede77b333767308a659e23b74b871b94cfc7e1ef66baea7b5052903907056232eef966bb01f549765b7719e821513123281e3d7477eb4c88c341fef6ae5b47be31e8baf44f5da64b32b1b4aaafe62fadda2ac3f2b0c3c30ed69640537bda9525d562a7fda3af97809d84351dd0079488216c442db331320bf58e0b2aeb7235c5a5fa62f1b2afbfb5af3ad615818e7009809bbeaedd426ccc2e0cee8467d80d58aafc239aa8026f7ab9bd3330edb0878c7da44faf67a15bf5ee26423a0f7e190261676324ea8de3e466761a2c39d74f1d31f591ad3b1d190cef5ad011b9697374199ac1d9c8c7896d1dd02dfd1fb089717d0e972e3b5a6e5fc25f5ec2877f27d7ee0b72699eb97af94efcd3fe5da606a0aee64307366f782d8afb2193a070026bf35f01f7f327271dbd58d00a8e0d18e8c6701239f615dfb32b3eb117f745df30ee43bb67bec76105ce03dd60c245232173d19724c6d4ce6b8c20c044a410b920377c8ecccf95ef815c91e221ff10937e599dc49c40eebed95e98055824b4c108c92b7fb22b48c998ce4457ecf4e004ab6db109672c13229de1850f95a67becc1dbe88ece439cea88fb255f65d7958f395f414d3d42231eaca10266b981cd7cce496cfa8861d806b40f0ec1de2ede242c21083e741b4ec8c07076f19dacbef610f75158efe0e1094cf3432abe15a9118e4c3217f3a551906f24f5d030ccd4e252f8a57bbacf13eebc922b1cd8740a6e6da8f85ca8c478666b591cecfdeadfc4888c661c45b506478fc217cc32c21b6526b00da3a3ea24cb54f2b404b9f719f415fa334b93b0fb8ea627effb3a099dfece18b1cb98bf0dfcb204cc89197cbde0808018f5c466c43f750ab9a16771417ca826d92400a2e52fc1dc33a78ab55758cb65fbff571ea84a5b98ef999b2efebc18016bd5120349f568b2ebe290927fe28c7c7a5766e9a2a1e594b22212ffe194240efff0b98c941f86724f63525694e3baf0a6db701234c93a581e81a6372a3dda86390a77c3f1904d80c37ddf6044ab8a44893dc740392c93cde4833c15737618beb021aebf74e2a05fcaa145a03269c7af41a65d7f1f6145f6c524df38a6e833fbe0b0fcd597b92019e190e4f7fec7acaf671f719b107c677bfb2cb31bc0dbde3c06fff21d9baa0318f9380becc7e65355e56400ae3ca29928a083be37e13fd3dda9791b86cbced8e3cf4bdf914ddb9295dfd08cb8d920b7d94b054463f5d334aaecfc78f2d5233150cd00eba8fbd9cd2feaa3f60e07ce87bbe45ef11122c5c222d4e91a2c600541c7d0e7e88869b92ef1985b45894bf0810ac8857c786c2d148840217d682f9ab021bb5a45497f41266117160f4677bd406815f688f4b23741890ac7159369a11912e5f01c2b057c7f8e0092b8c4bd3bbd83d3e6135ce497b19ccb0121c4cdbb01a4dc70be05e980312a6c8bd99db9524f6be9484afae155f3564e402395f8e7530aaf61406c13fe5e14139a0bca229565ffb580ada0ab61e0ab8bd8bca4f487d27645c3888711f1ce84fc21b38ea55e89a0377d3a09fd244d0136667936df40cec1ac24268bbe7593402c6206c634968071acc94a4c9c478f9cd669125de68213deda3ad2c6fdae164be892bcfd392f9f0264e85e895c59f96d74b6dcb2ccd30e1dbc563276b09e7e029931f1bd5ab8406e33d52bf9c4a5033db09a38eb0d46a4fe644234a9f8c4ab662644b42ccb3668cdb79a93a9c11038d36f9d2765919d39ae89a449ae98e91b20c493151f65e180f34c8ed0d8a9283d10b1b95c640e7783328829130996ecaca24518b2260526d4119c941b40c23edf0c698dea12bb5288b3186851172d789628c61c0d041293aa8b684e1130185a98f30f75da3d83c58481b3a844257027e07cbcf5e83602f57275ebe0c6c89155bb8bd81946072551e3905a04fdabd157e6ec4bdddf3e06b6b7bcd645877087071d41976b0ea469c55f3e083b0a1833bef06bcaeb45d2e5375af3b64758414d14b84f495d749df45115867dd025b477e1299df48217a9df95d1fc1bad72dfd75d1ef0e1ce9d2597b05fcc54583ddadf39e95b04d3dfe83e20670c589086b599b56dab1bd1df09faad3fa4a088c8b0abbb9c0d0707bef5cf47fb4539fdf15c15a91e1afbab62d47ad61ea5f2f13d54133182b3aec027ba6a54904eb87341be3f68357c91fff4482bb429ab42c1f4aadc6008fd34d8501bbf98d1ffb1b423c09315ffe13907582707422dadc335a662147fa01f62301f2ab00e3930f6fb8bb36dce536413382906f8ced9bf3e8e5bcf5625e3c3b0fefced327e6f5d5f3f06c9e7c31afdf9867efe6e907f3e6a9797eed3cbc386f5fceab67e6f1fb79e2e9bc7c751e9e9ba72fcecb1be7f9fd3cf560defe5c1aec96ebdf82564fd8774a64a392ff2cd8aa04ffa4546c2debbf45ad4cf06f4ac7a612ff2cb29564d2db5c3dbb5b40ba008d93b9b9933fdac36a3cde3e040880a91820a924c6e14dc90ad78833546ef8d62b8e902b8b0aa8aac6067a830d62713540fcc2e29d73a40b336617854011471e8a3296e382507357ce7d4e8be3d3631946752e8ab1be0a42cba598cd980b61dd2ae4e38e5aaa03368215042924eedbdc61abc8feaa8bc33ea9cce7f9e2586716f038f112fce295c51551c29ee86238e228cb87434a68e9aa23e7ec17a071e77e94fac917333e3616bbe84be1e18a812f4aa618e45679cfcc8a732a56e3dd58b073660bdf889d5fbb6c638a64105be2a8cc21c1f2768c9dbc12b532bf1c303f815ef2ae2a1d122d67dbb17fbc1996ded7d725b3135f9c9b6352dc855e949178b00ce6a51c33d3cb8773888d664914c6a985864c334ef4d5c0bd3106a2e75da2d3f17691bf0e89bd9af074d4a0293ef8511b504ea10b310608d505d37fa1203fa6fbca1ddd2717dc6ec7173efe0d567b530c6516bd4e4277bd1015de1249574ee0a2eb428ca0797d84a425b3471cf8adb688c957998f0b1fa9a9a0ec85296f9abe9e3a662f3422c8403aab85f17b3074acf50fa6ef514a55c1180a5c002d6ab57564b205bc29b0d02681a99ba14fd3d13778efaf4c6a385e42cbba1dae00e9fd122ff3e03496e417c4392e96ef96eaabd40f9f62767c81beca7d88fb4af154198db58df8b5cbc6f715a15e1892cbe7b64ff7642eac585f794b8fae884bf58b3f5c2052eb96bf501d5bfdb9fdc8002d6d68d8e01d472495605e1b77c77ef354065c82b99e7be404ad4f98ef49dc662ee6053caa59d0c0df7afe089242ae16efafedf0491638447bb979be6022689526998fd460c40802e15dadd4da941541cf4a3270ff4756329969560e2102d94f633e5b16618792cca36d1fb56784d28247b114c57f3b30cbc294f9d8b5648325c51611b5400d396c85c61c7435b240d52d8cac9df8f91e50956cd241ac23910cedecf3ed4af6015da69f3406974b3c12b572f86a2fc54e9ff5782a730cbb2040b8164fee7bf16409e0af02ca6b048a1279bf21e87888b82c17199878b308fc2293e55ac01920f7e1783383f195384f84c529eaa543ce1d13733b3859027d2f5eb66243e561e2930d8cdd371f4e7d4c99a7500af2976aeab833aaf310f9b4fd4e8c2898a66fb9fa21d5d2ef3cf99b6d6b913dc5ff320a09a5c4088e9e8f8fc1cc288385b58cb1e33bb0f304a0cb1d729c992bea13048602668cad11c1d24b99913de2c460eb1b1c13535fed0db8bdfb475002fc737564a6ffc8e1e5b77729b71fb677ac84df41b0cc285a92c5a5ac14d249adeced044f8ae217aa1e9c0e3fd283a36368a92ab34b17e4ffd65f80528adf8d52f95cdcd076071f461421327f46c41945106c683f7f01748a78a48ec98a2ffcf468987a5ca52831262302a409a2ae8d0da2c5a5a05864d9d2c843cbda28ffc183c4938883ff88d4b66d3c6bd952ff50059011580c3a18089a6bb067547ad8e0d8f77cd9e75a2c21a3e22c2dcf26ee65b32bd7e0aef677ebd8a34074114f389866eb02d8357481940fae0e07c97909cae00921f20e337c7748c4860eccf0775ee89060ed7d3bebe26b2e5a824f80952c0ec1a85ca7a975614d626f834e15e9525dc05abd7383b4e76c107bd92f3ef1e36eaa1fefd14669036b6b57a7b9502e45ad1012064409d180c2b1f10f271a97e1db24d3848782df0539f18f143f810fadcbe85a78a4a700cfb1a318d61be05f7f7d540352ff84b2f80f6070250c16c5395f98156ecfd2465c0ff4e401117a05c4c7645d547f0b6c11851720472c956f6df60e765b4931f84dff64bf77ba5b73b5c9c2e1a6c09d0d48ec9208520a870ecbc7405f1e93fc778b34ad51a9302c96cd9d680090aadbf940e8a8fb27f6f262dc0b2443ec6149d01c5d49230348f8fca174dd43a81d5bd0c0a7e474e06e11d1522a1cbdd9122fb8dba255c8c25cd5c54c40b6272116d3e6232d4d0e76231512e522aaf7520a80ff0fb5f127800229e0ab7c97f0edc633c79e0fd6a1cf1b9b548118eff758fe7140df0e379433f72304a6dd73716b940fa0e70f1d6f24f5aac6318cc42529cd59058fea65d538348474687287f3f1b8fa68d45f1124b968a22dbe42ea6872263b4cf8bd669be10aa1f7e53509df4ba9fa3efef329b464874c8296b6250f1377138d9f82e50547e54e9868b79642a26cfa42df2a6958acffb57183a9b6f5cb21a242a0b16e292b2aa168d0d05348ca4bd1d023478bd930edca76c9592e2169277898e23da131b9e5599ff249c8801b2cf38ded3530d6a7056f2cc80ee2b7b7dce70ccd647df682b43684f712be597ec2f4d941311f9418f1ac69582ee7003dd6981f1011c07b9b9e48e52dec39493a6b977b17f0065a9168605eae41cf2194809589a053f0c72272dba4645d81a10dff1a11dd3e53e5a0957aa1bbc68ead312dc9811a3f4017ff44a393f401c42e56892ee894165a4be0375180ab1dcbea510410d08a9bdf7f1fa83c31c8a43fdcbb2211c3707b6a01221a7b13d75eb24fcf616650b0cd31d31c96fb119c944d58acb998d8ec94e73f1d77c65f9b4ea1a2b7f7ed8a3d58332bfbb8cf189f3296a6b66fc2408a64e0f623ad3fef80cffce864148fc2df6e26b13fc835224f047a53ecfbda25708a973673693c430fe6e014950b6046d1323d1b380f1ac4e6e0741e378c2cf7dab6ee8959724e3dab5959cc83e0278095589d40137a059d15d1b5e6f5131ebaf6c255ff763ac9e34316745ac614a532deb522232d724ba1126148581091f53e2afe7fddb285bc22c87355059bec6a8d7d468384e168b76e2b9e8dbc580c8a3302bd32baf2f2af9cad942630e6dfd5fd44278d24d341da729432066ba699a09e1ee30321785ba8431a5921ea29b6b8b67e4ae4b5f2c0ac21447cd0ca579c2e466cc2c49726b07373e8d7927f6d34bee47b88d3925face2a7508bc9b4db49029ff206fd2cd97ec77af1ceb28de5b26e6fa6fe5e1d8bc1a95ab598c8801c7cc9dadd45cb34651e771fd455be6431673c1d95c221e239aba810e97e0862a49905ff75055f0aee883bd982c32113f51041bcf0cbbe088db739bbf13290a2e1b587e3d52578a5d6bafc31e738a132dd6e615068fcf2e747936a8b7385b23719a6032e2ecf4d0bc07b55b062862740f7aa0ac0ab0a0f5c640060f7f0fc0fe4d0e5ae93760c82528d012600a4a8d68371290c9e4d9c6286409e4b1214c6cd9d8fe26f8f7409f8411617477a5ffa946dd863040ae875fe824c4f4dfc76d8208f32ac42619eea049b1876481caadb743605242bb6e0c9cf4adf2b74d011008bcb19922f622267e16bb35c5c3bde8fe841443bd40430e2f2407d6f37df33634d8cef24d60f7ea7cf8890e3e7d6e495ff9a3ee1128a1203fc3f4e1392722dd7b5716ca137e9251599cb922410d64cfdd592b9b0213e69bd818ed2a2181b3ee6eb7c38596c313c1263307a6ff5fe955acb52524c058bd1526604ce61099bf2b440e4690c1b80f74e7af5f9882c894d98b103009d117f41089fda4ca14f6d09e243db8ac6338b8b50173f1ec525745b1275378c78500996a24ff9ef75fdb591da8de4137280efb2de8b0c2a7d3ddea37e99a38b61c0743cf27388029ecfe132cf80b07f95b73393a769cdd08be1292f7ad61bc97019770e56b78e8378f0aea4da7362981ec6052c8c8a094bdad46511360ab3936289724832d747c8286105127d254445f4ad16dee6121136a50ec2cc55335ff8b8e662a2080e139b25ddaa27aa68b22300efbaa25626587a840addb64253ad545ab6fdbdbab5437b2a66170ab1a0db5636da5fcc91ce60d895229b85c24ba8ac44e022a07d5a8f51ed26edf6d160b63b8aa9099a76ccd8034d59e6a00341fc3aa1fc64173d6e1fdd219b833f7cd0bdb0fec501526a63eda1972c836d7637fe81af8de358a59738ae15f44354edfd735d655603fc261c0a3d6131e15c14ec2c472a9fedcc1a44e1b045af8a1a05c864f40255badfbe45af1d4af4108b5e763c54f07fd5d49fb0f06151501552c4119d40cca36700b6b43d0a2576268e13d32ecff069674057068e9482ccae4544045a500dab16100149f4b999aa648b4ef11bdf421cba3c846461c4252bd0a11fe7f9f6c09f37039ac9ae932ca0ac5105a07ee9af9a4150c2559c94ccbe33e910aead4410a5698c024bf59813882bc0def9edf71198579d5bfd9c8348a1368e7975c90c8fd3734869ed95f687fa8ad9170b98daca7121f0c8848fabdee065bd17b8e45c59c3dda596d5b829d2fcbc92a2beb2caf565b0b601b001adba96059fbb4af3fbdfc37985da0aabef458274617e3d4c1ad4d2f7478d4effac224b36dcaf00ce00c0d79d0321f3aff8f4a0298505681df11135e996345c555ffdf59b316f12d166db80565cf64cc6f2861f96c272a99be8c9df7250f457c2423d956321c58fd8095841b73afdfc07a6c1968ceabd99b354d9720c84c8bcd0c71c9584404925c0b6a0c7b5e52e7241766cb3ed32866da35494c60d14cacb384f090ef93b2252a06d3066061a9bcc05e7ab15dc4410f5fa32a4d96fe187333014ca87a1837a67c5f1d304b12937e76855a01803b9b5d1a66417840c3c8fd49248262c11d241128e27d2ec2438bd36270bc6f8d9709fdb1876467e2550616da9188e24fea2dfae239eb99a6fd33472bb3c9de86f1088241b83feb2a1264082d8ae1e47510520e86ce7c354bf6124b2629f037f781e2c2ac23c10d7c90caca43d3e1e16ef64d88e69d51660c383daad4a87644d41d46de3634616997e76432003a65bb2e2ec73665fa2e3d9e79968971046f08647865967ca0d2523ecc8942043ee09264b270c736e08fdb988c39af900be15810564476e9b374997b92ec835ca5e5f3a2ebca4cc59769bdf0917d0eb90ae0ce07b9f1f32aea322dee87947846cd3c5404b4e11684388677b29f069a16dfecf674b2820b266dcf6a48b7a81f90399d3bfd2d08d6590aadcc15dd53ff5d5c634e7008c43843202b11e53523fdf941a5121be6aae64c469a05c3491c08cca13a824c0c4acbec81a22fdc8a550afb6a45d36c5ccdf6014b4e44636d52e4a1b42ecf234ffd807ab2be966e939578987e54156c1eaefbba25cb78a82554bab125631fbb0d153ee34c6afb98a1bb3c6e5b87a0de45b08aea24e8294a0585b93484679723632c5dc7134a963e16a0e40182c3223b41dca22ff1910feaf57f9893ba1d0396007f0b91d247dea5cc12d15d55c415704244df1ac16a4e94b1cb25a8b0e17142c1882006140cba817fc7d0cc970ea62922bcba89907832c1d3056c2164449fe41f9e9aa7096a96ed41bd5062a11a4a8530dcf31d4647c481b5e1850f3f0d9e22776fbb45e99ac290db189435e0b192af17e2aee5c212efda8c5a69fc12294cc77b69b41052863c306cbb14dd0c30af55517e83f3e0745ada3fb8dbc1f5f44179e0b50a022f951f1957ae44624ff84a66b60b6fa7d262bfe427ca6df62e391a67d631dad3f3874c91b71cd05bed6b5178c88face28678f0176b68d6a1b08400dd0910f5a27871c15e4ea7c6001c2cf3dde8a8cd5375ef6b3e4bccc9ddaf7f32217f39eb5b3e44fbfe2c6b1273532ec18ec3e8a7d2b8a8a7582672708083c252afef60099541dc7064ac3d2e874a398d8f67a07f962b082ef54c77b47dbbf173fa1e9347c6d305481a8a412ce3db44a0d3492fdc180064017462138be569aebf234f8faa07c24ca31cca01bbdbe12bdb8dc21dd7dc7a1ee387a3db9697b93040994709ff436c328794d6d501fe2b0d11cc8a4b1c1699a08cf59ef36f77565782573a30240e53ab5f99358f8a1183ffe3c24e48ef0c7c2d21b0f7106277c73cc163ac6b0a45be1d77b9fd0f1e963f579bb2493129bc1abecd5bf84c402e3cd8b1984084d15344df7dc70b89458a3e3ce02fc025b9321a7a82e2ac8eb83875c04087825fc11c534af8c91bf6afe4d7ea8474c98c489eec9a407a8147a55772f554cedb1477e63933f9375d5877f16dc3c70e1468db9ba653c815a7fc251d9c5cc410632ad0fab6c327c3b30175f30dbfb866fc3f100ddb8d7cc0ee58509697710f2071149c53b9a67215385657a370d2e59707490d08a938a32314251f74c0611e85a6b7cb02554a3bb4942a477f1446295a7d447ca934b0aefe6f4d4004d3b93e722a1a4b9ff89ea0e9e08af6460e75900133040f40214762474e48e086b8c98493179d43fe10c39bcb18692e94a7f4238accaf23cca82a46eb042c2faefbe722ec0bcc1d7ae6bc9503ea18b3f3e217d2ceb2812d5acf926125d630f44483369e6d8bf2fac1ddb1d66ffae70bf02a5cba18a3dde10f1ad503604141f3c999cf5c1b6039770850440c271d746f3a92a0e460d49ac0542dca35c0fd43ad965841c08018710e50a5dccb8e1faffbc26b06e6db1de93e929889cbc30567811f85a4e17594826fc0f61ba0d7e0ad285ebe622a1f7febd02a012c214971f44ff2b3f56a0fe70b98b7013a1e7e184a633ac53548790afa489ea53cd0de107a2731bb195f7d3150ef44e873bd32ef838e8388c54ca54da432d0faff76bc018901d0d92f72088dc943f4f29a75f47f060016f994f917b39bb191fe93d14aeabfcc3a53d994d9dfba45748c6ff8b5206b951e81d2f0b66cc98464cb0e516426c43505d8334e43d15bbc581e2c337f4f021f4d3c562525be8a133765b1489b385643e851b5114f110dee89c52280419a9089c56cff8f5c344d82269c343c9c523a14cb0a5a70d4075293aed18c0b8f8b711af8c83194dc0004ff2349c0312a0e2c5b58c4c69b0fef9efe674d2f158c8d51800875c2a08518f881fdbb5a19952bd8544067ffdb11ab096f6480602e1115ea81688c94709c5b589190af7de49c6e9d9559e4cd3ec87f114470a06509c52fa6fc22a4881bbfec935d5400ead33e1880cd0cc2c1d66364754bfb8af7d4cafa5a59a05154e9e6a20f1e684adb9fb8099a4fbd045b9919419f4216160a873bce07548540e5102270af981f759e915490a1b3ed82e008ce6360d2426e4875eb4cd4dd640c829176e530fc5fdd1d08908db150e2090113055de22c225249c653d072a4827a8f092987e040de7894d36cc69c1df58b6148121711dc346bae7ecb60c92294cede566b751c7ffdc0ae5d1e55067c6e2c59a74afb2cb3d5ad93f5db2f43fa4b8c8f8719463c7ab4590d174c42f3db9a30a80a73d9001e44dfa3079afc1dde43ebc1a282aa55893d2c726635d36b742c1578a83a37b17fa601380c7c74c10225534e32a67626364846b2a34176f62a306e29d825497dee6ec3a620d242849898a1ed1dc64dd25b3c8a89b33ccdfa0acc390d0f0864ab2f8fa13fd926ea370caeec882cef77a443d647a4e0eff91d37833d4058aac65121d29d4530cf7ac3e15b678938cb8e8d80650e32c7aeb720c5054d7a7a3ef24dc8c54dba169ce9b51a88e5c1d8e6a5bf32540567d1f6354f68cb40e2c70347536dbbed62b6190786b9de7b99a87432072a796aab60c346fc5c0291ec062dc02a6ab048928bd03300e688967036826bfbf5e82f5209c1e70aec83750ff086d0c11c67080f89818846db022c2c401df425c05d87154d4378409e58f27d97618db96def62aab7bfdfce7e9b2aa977ce4d05f5e6144a3177a1c8824d7de9e0ae99f1f320eac9e61da97f41ff634bc4c9be5858fc6f62b8aa23a7b96e3637b622d3408c34e00fb68eba845370639c821f349950ef4d7d6891eb049b36a602858e1aa522ac0681a83421700f36af7cdafa69334a0d145830a64a236792c982e330590277cff295d35376eb98bf16ee679a85db458126328a6a40b852219d2e1c6f8cfb371f2585ebbf3cf70dfa3d0d061267fe4163c5504ff2e1bc01626bfde0513282d731788239c0a1f7da4f81e816755238bb4d515bee6ed083f5ad3adc80317fa3b5b42c681439d81984930f9d1945e0d4393bff025a67ce0647a7ebbd77b29adcb5cbe15c2382f5759efe466da8917c7c411cf1227a450bf18944977a08c948acf5d09d467e7999d0f992b8ca4b241270066a0f7835eb084ad4cb5dcf69064b4c448f429ef0e9c7d72168de887cb0db8a9d72115c71d31e3761100366dc06a9b50cfb39f33e0d86166c7ca6b0cc6663c20979d6a5ef1e97de155e5e5acb60f31487902676b845d3bff60bd0da0ed6fa3e0f40b9e0154f9908b8c1964fb299407a2ce9c0f334157929f98c2030659224842dd33fd4b79f657aa92e761f9e3ee9b4a693b2844a740a6c5b92e9b0dd2b71d66615a64149f2e855669ffda4714644d27bdeea27f770e18a384fe0e88a4091eda8ccdc19d196bee8959e5f8ec07a42c5a4173a83d10616a3021d417a872e8c23cd5dc21cc65b7f17d93905a55440f9144d39ce8e22c086978eadfe6708cb6dcf85168e283bc8cc1d204da94a993e408f3c7b5141b37e492a1585cc9d58247e9d7b459a05c0afafdcfd75146987d00f2500c748811177fb85a862f49992888ce3121dd57a5dd1c83a184932234cc94f0bb7507f1339f404905b16d1cb9b6764f828db1f77fc297674dcf9c91425f684c8e8d9ecc49afd272faf3da2b21cef3dc3a2ecd66a9e5c5be817db8d6c822524734b9adac6490e91eb8f9e1097f0eada68049b221f6df6e999749e50368b3f9902e08a26026e7a9097f8f6025552e5dc2372a6c72da2f8c17057b8916aa447dfa027d7309b23295b55218e11c444e75d9395be248304470f60395f5584af85bad4390bb494b37f7d932e05d39b4b36cf3648d04a4471edcefb4be53b970bf81dc189f99816d44a8a93698642beae1158295faa341491209541cf631f86e4919c26271547e68c8f91e2cc8b42678c26d35ab11db86ccb2e2d7edff468fe5cca6fdfa3104089e3791e7d948c149a5e523e7bd23d256e027df71a4a2abc11405b6bcbeeb5b58a17ae8c5fb0dba16c1b560fcbbb09e6f83f4dd24dfa2dacbe243ccbbeb8301e12a25b0eb6c6689562f48e23d1f961071ab2d6481e7647fcb2fd2d12bc812a878d9e83061e372ee28bb449de167e11729f1e14d6c676ce4e21586fc03399852d91e8e3e3c1b12e30641b182609b1fb3f890620c0057a60f0c93fb83556613b53af1f8efdc8a03f3639082edcafca24253e46e9215aa3bf1a6d87ab7c9c6f5956086270c265d1321cd2ce47cb71b7d15fac4551aff536960b57f86ca89311acd3eba0a0bc90443766f9602c6fba2dd516112dc15a2e0f2e7eb98a671f2802bcdf5bfd24faaa7c9e414998a2831b0bb218cc73907c6a2451908e37d7eb7c923537ce52d521e5901e945e44f83107c70cad622020162da3d51bbc2a8c34b7768aaa70e5377356361e3ed4f542b4d7c901183794c1787cbdff4801e792176b569910760f99fca1d1b05b7c4eedbf47cc6e4f36d8d20d09766751a91661c7a83bbc82f51013aa735818ac8b485b97c13dcc27c3964750d38015beed647f9fafefbad9b128440a0ceb83ea555682a079eef1d108c32b117c68ca00f43028996f7352f3cc4d8075604f205beb89ad60c8a9fe0d690d60a961743ad749653e0328f134d9db9e813d510e2fde9d6b37744e3eca99ca93aa5180ca81c51701ae89c4c3e24c0201304d0340baf53e71ccb2056548ddabc9d3551e9633967a9392c03f5a6e86ee3c0bdbf780aa2b9e6267aced642af02d99ad142070e9e5e7477dcf306e91190bbf038cb6b9711b80f11c4d5e563c458621e9d7284395cc04e25f7ca09302a31b79121aea674c765647133c435341eee3661e39472d369612774f42a307046ff07f1541541bfa2c1684ac46f5ee146fb2f0eed407ee23246e017cd901d7fe38ee6d907bd39fbcbdba48acb1e619448d3250e733048c81bfa70472b62b86e402d4c1643da64fb376f3c961652d97bf162eab57b4c623ff2dfbd6ed50cdf365f19a99d72921662050a44417ffe49c07a1e58df3f9588cafef58985cf9166560fa2c782f0d6fe3e05c7b2b76dfa23db9895457e2173d1b584e8ef1336d499fdd36e2c035967cd1483b8a8ff1df5b60b1564830c964e8c320acdbb2d2af04e37550701f393fd0752d329c2ed221cb4f0512f536569c1b8bfe69a80a799506a91a0d23ada0aa3e6ad9e842c212efc979bf22be15c42ef76eb2e9f22ef2339946a301790a71eba4e430893db5faa0de2819913a1b433299536a3d2adfeb9dca41a8c4d4c0086ae35ab740b7e35c77c86b1fdbe2a16e60f1f052bbd57a2246874ea278e219125f0af16f565d89ff57bbaa509d1ed1018f82fcb6d7c8619c11ca11e339db1295117478ab36865e1615ef11516e77b2aa15cfa8709325d1e5b7ddbc38947b127e7bae83c72f0436aae44142553290383b7bf023e17003eb255e0bb47616b5ea3b078945c7b4c93f9b04d26220de2d832460f7fd953a0e0e5091325d940c69dfbea0d4d362c4b17b2abd07728bc8ff2c2fc04e71dee542d2426cce4a06f9ce8c5ebe6aa08d1c5889072ee6f07ebc3443923cbcdaed05e717dacc8fd711de8ba88cdc326123f347e06e7df84838591f242e5f2e171991a91ba622dbf4c2f457c6d13bc19b2e2fc157232d40b3990cf1f19fd2414f5ec4df892752948cc0be1329108074ff9042f340969aebf9e8c6010b2f9e41379ef7520f94220bdc94e977e57b8115dd64d374e9167034f4cc13953311d143f8de6b8f66c3820fb316c39ea2dcbea2a376d4c6490ac61db0767aa13b84bf09448f9be892e47ad78499cd94ea71e239a7cb9ab2008be2334ccea47f63e1b0cc8381097990a2ab9f8b594149ae2e1125220c176a3297d843146107749ac6bc80c5acdfc73a4c94c4db875f0b8708c8861d6f52ec9fca5ae38dfdd3ae04c147fbdda818782bd4a2eb12eecf4e88171b846275523858851d77e2698777e2b6773cc61ab8f6c0332f520232413bd4f8402d28263002113a629682393377265d4820945859e4474db10d9a73a9b3b27194e2e453404589a2623c021b684131722ec693778a30e8e6666160b2ef95a03978ab752b4468718dbb5dd54c56e64ca84f8860cd8f0aee40dc90a8a1bb27a10a4a6747211da203e0c9fda046817cb007795c76deee804796a67916678356eb3244d40a442aaecebf8b0f058f57284f366e239f8b8380712250e70a37533d8fe61a0cee50e6e7d7b1b5a28473d0028b6ead248cc2b411c5eb984cdb7ef35ff20bc1280549f9a458d784dcf8f2feb5dfbce756193d9fb631237a411df51b156a76e6c96e39d04e884201bc28bdf1262c312dfe333e3f0fefdca0cc2a9a7ca05d287ac3408edd8c5f02d683fa24ec817f3e26d03ab8359ff3bb71fcd27c236662bb61a2929ce8b9113ae4bdaa03ebf21c29b48c92ea9743a6dbf5a9b6268200222f2b18733bd6db7420c1927e0cf36fe2a8ec27bd5d260d21acd34c952a3e8f9cab2541ecd9bf83b62396c3acc6f7cdfded38965a8f83e746741b8fdc45aac25a16ef8e8e8fc41259e7c4aead4b7bfefae3c74b867873aeb1ce1bd7464a8dab4c99591dd5a47da388e7248b7d5e0c1ae56bb5f0de03a61124b6eb77e66df52699f1a5d323c8f715862d902b4b4990ba0eeff66bea7d68fee360475979f00bedc8086f5a408c6615fdb094bef6c22315ddecc86b6aa50c6fedc6f51630156500afcb9d8f4badf371a111ff81af6eb3148f614342cda8f2d32ab5e47980afe4a16dc8ff04bc09bfed70667e3d550b7283f2584359670f0c26c1b823bf3d42fddb58ec2c9b72bb3275f2b9e2009f171a815af12340cc91f191f95242029051048ee48542361ab7b02cd16adacc26e9d56de80a86ba821530724fb9a5cf64dcd70e8e6d0ef835e9d48a86c4c63acde8e8a5e8ca2f506c8a889c8acde387c325c17fc6bea518cf3991444dcca397ee3635ac8345cc6b723d0cc2abb9c57db02fdbd483de2b2146e3908566182ba6c4c7955c2dcc391ff0d018b69fa1129043c9b55f92245e3799968377c4aa12c39403107476a7c591cea7840606de571a90f2934082dc27d45d74bb5d867da7c0d9ff2f9c13fc349a6a83dd396a5c23d0e886d9c845152ea3ba7f7a3200ae747eaa7299a60449b282473c446e3282bc38c6fa273f6ccaade84b2aef77532fab75ae01ffc3c84c37f8342089be078a82380f9200a9e090aeb6d5a7941213c919032da3797e38eafcc31cc1eca19929f698dee1ab5b1b2cebb405e776f26cf06bdb7b4d3ef9023da4552a0245f368713a030a583aded7aab2764b080fc546802510c0efc7115635cbb06e185f82a48bd6bee4c1cf29acecf7acab3ecfb8f757c42e48257d9f8f9f144669c126e81b954b075b6cade689cd1b3bb738fc98257b232024f086d472e040f19e51b9bae6a5826d52a0eedb7e27820ac8d5e0752f3cb28f7aa0860b38ba809b6d39e93379a0844bf17ac62db4cf635c1ad3aea2cc2bface449205d2f2ce1857984511a53b58a5656e40a57d57158e83cc6c20a0ac392fe319b5987138ddbbd97dc2a1db15a3974d08b7ed7b1bdae53a4e601b7dbc42a7900f4e6d2f18f4e0d90cccec6191a09062d79004629679f727ed285dc899d0a23e49b17306aec31e2f51579a0dcf3008b15f677901aa1901609372dcb81a9c067f9810e3099c1b0404b21fc109a1de1f3634ed673f04c02c20495f23188db2db65967be8ab0cfdf2b488dfc918848fa35a09017e426cf8e653f398a89c79de06e4b00734c417c41ff7d58bbd832d9d0d8e7bb129b8e049a430a28e886b055fc303303f3ac1a06152e50ebf4338790a4d9979b03d88b098f144f0ba34aba72c8f2452646ab3fc1880226e9c35973d718f4ea7f6e178ebf63a216a7ea4d57b93d305b1f388e1b26a109bde77e32c32f93717d7fc2b048a527214a4f1eb4bbba84470bc64d651137464afb3f7a35a9fc6004dcd239ad63f5a227a83c2f03a7011a3465ad6209d3f2228766551ae9c393923320ed61e615224a39115887a180bfff4c90933d67c33a58407b369931c9c44380a7c862ccb8abaff603849b14ad779bfc13c9bdfaf227fbf1de813d327c9c91c1a7f19e4f0c014fc384241b14a31d125597803ee9d38f8d0b2df24e0966cca2947d0261762dbb9655ab65a125ed5802064eee7d33a02366bd7705a8d29b92c5f929aa42aacd727ba1d30d298c1051402d21437ccf7c5faec7f644bd8dde341b0ca15143cc4bb6e44561ea12808d95b6ba822f4aab063da3a95bb2950c87069f578ce6a5409cd72c12f1646e2c81197df8cc10d3c872f54933620d6d145945a69fc9f791d7255a042a68bc4e94730c2f3561ffed3543ff40578321af679ef7f626d6597ea11696306fb9bcc3ed1a1ce89a92898c962caa9fd6bfa0429177f7f376eeac920d81128ce1a101f60b00453a82382354052f332207d6852ca388a1b2b94330c1e2970ca5b1582b52e956ff6cf0ed53a824199261668a754891658194b168120da76e09706bc57a6a55e61db0b7a478873bf1eec5ec16b51c4383a5b50890b0d480e90303dd9b7b98c19e221ea5939b1fb2b88e32cc44651323161f3a1400027f653c7bc0377a01c83c98725cd53d73bd765c97c6fcf6f32f02e7753ba5319178c567829069e7e102ffce63d7f6b2e7b3b2240cabb4ba31556f8629a8bf4a579bf5bd74059c73c7953510f0fda854f6fe2783ab8fc06b5bdb7cbbae895e1bf527fee8cc70d414bdaa8b5fff3ffa30e611c4b8ed73e8e28f71be284c1d4102a44f3a268f5a3a4babeb23a2889bc6a72f4489f19c4b02d5ab1e79356725c8ebad612c61d6fa40fb5fc71ce99232644889ccf0fbf3142d8080d2bf3469e07a53e86a2840ecfaa59256fe547e8b69a8ed953459c22f1bc091be1a345886d524102a217fde7781ea3555a9fb42ff8c9c3247e05c3c37d245d444d98dd08fdc8ddc52999a4ab130b6d11475b248e29d07ddb4072077bcdf487334c44bc56a851fd82cc721a3f17fc7d36f376f49d18b6d924e617ee7df1883ae691d19d0b25e86b807cc545b843b9296b04573b3b8a6ac9105dcbd2eac0506bd69eff6dce7e758e9281af37a504aac371364ce9ab17cec1289b72bd983f39c46fb6ef480f11c7e94ad7438efe8eef2d374e25cdbf95fcb15ed42038a2b39006ac7aed9dafbf85822e83e4bb205907addb12a1050bc5635ce72159bc6e898fde243a58db3e41a820816b5dbe086e79ac4790a85d27d0afe535a28bb104d8b8250a621b85bae6a4a33f280d37a11ae4642aa20f1e3167eb71c36be7ed01fcc01010e177060cd798fe84ce1dffd80da68dc760e9c70f91df3bc60ace4851d1f0299341045c363e3e9263af5df7d4ba58d3f9a2cd9e3d10be393190941fbc52230e33645b01494d26c1ff02310aba7f103eba375f16ce3cdde9e7a22c14e6ccc3b06b67270f00aa0067e7e248ac8e724e75736cb250e8e751272e5252e58a54e2837014a7f3618a25d220576b345d4936731a867540bdbc3cbabe464bcb30e9b9f7adda14379b502ee105afd994beac8928018b8f5aadfee09ee3dd6e2500177869706b8ca0af427cbf01391e1896abec9cbfc81a698fb00c11396973fcaa3eafc8a6869236013d1d0e225d952e59de6b8695f04e3c7cdbaf897703cef105b703f70889bd312579438011def64d9e172bde5d26946cf08ee29f1ab893479dc62c8021acf7ffc0d7515270a222c50d00603cae93a54a5639049d94a0cdd437191e5de7da0963ddf22e85ddb61dc2c76736d4d92b933b18c60ecf3abed352ebffd42890e72c385c4dfca5f9d1b9d079e5ac39a46f4fb93769a5f002a48fb61fa4875ecccf75a7d0de3104c5de97c0d69d2a1ebe51ba43fb0d50e482404b148f93502161e6bb6191506253ae2f5fdc55e9c913cbae0868a253c8e34869dd07ab4decd9256be470271bd75109379f99ed2a1ce03c1df4d77ac8646cac78a66b3baa0a7c5bffd96f20dce6fadd0878111f075c7f291adb1d6e1296bbd289e022e4081a676376da7c1f75f784c3720736058817c7e109d5e0abb60afe4026b5294f1869750a0c14d25fc19df42122ec1d2794b8a5dac7be76ef820f23e1f966fb18e0ea8e4d51fcf683c0d38caa537819bc9024ae7d44e22a3cda7a940d3ea597f25522a5cfecc766f1e99961ba3851f5f138a6c4ffb89c1761520dad50653efddd5725910704c918f7241b92f8b472a25cbb9424df03bd198f92fe55b5b5bee1010a1c076db016c01f94743789a335ca68576c45395889854025f6abf640b0faa6ecb5334d112b425e24ede501f75491050b3827770392ab59cde1a4de4fd3b60abad1e6b0908cd0d73d2a72e5dca065f065cd20663a7e6fe8bb0b5597ac860a03a3c13b879788043b33130d199b431f5f60c2ed8f6d0ff1fdbd3a7c82004ee43eab5959efa21bd42d452c808318687e4f68721d0244b506098e230bc8cb50833a94a86b5383ba9b59fcd4c17ad45292616c0f120bf31d2cafc93e80941b591d9ea348c880a64e665eef94f7c71c282332a4bac002c8ce612ef143cd6081eb0c83166651b56fb04489b6442c93cc605dab7d3c466c1b6bce572a48c472060effe63c6f6343c0942459cc6d76b07bdf4aeeb0aa589051b12c1751fd61c0cfd4b95892e02a28c47cf2fe5b287ea3cff9da2a6949f10ede47a95ca89c06410eca1d7cf9b837d9917c134cc56271be0cd6020f5cc9b41714484324f862f64ff0c4627b4f3224970f0c8168a6c9307695255b69239e5391a8bd47b6790382cc1803d37c78753c0bb5ec2226432235a50de758dd701647142fdde9b211bb5c9b0810597051bd3eee1b64d4feb6a737826425942673b3243d9fa5447ce206c68f83b41383151f42a40bd243f23b4891ee6f1a774887afbbb37b1a250833bd0c2e91a31fa794173e54a0e583d8baad9c5db7303217f7e32ba383e6229c074e655af0f32ab1a30bf5ae8b7d0549ab20857d393858920ce6744006912353805c0db2e0a4c86eef59cc0794adfcb67761b0a2a4402e7f0ab1ebeca24c49ae4424c2c79064ae5703e0c2a23c2aca66c20721106917cebe4bbb5a22987499b57444d5e728e3408b2caff77a164401ab631141c8d6e170d3a8c92cc54e2b817237a89a64ed9846a3aa0abc0c8e08d8342df7c1f4a180bcbaedade486f3a9cd944a38add3961216364648413adf102a5c8f5e1a28befa3796c8bb9ccfd7789b2f8ffe38c80ecbf8a09379ff1e0d5c353191460df84b2021c3d1b6191427c53ac0b6ecb9456d396665dba088079615fdf03d5abef3c51148f4da162a9354036d8c53a7c1d1814f0dcac7b1814ae24ef5bcee166d8e3de568731c2d2e425ff3117011de5a304a8a47c348ee7e68201f836bb56f9c0c000f417a0f2dd32bc537231aa42a4de51af2b16f6b24e93f33bc856d2cd5f12fd9309051aa3633936d0a3705f2f2e14225403f5bce3056daa2514df7141f4824ce46735b65c2df73d9e68151120d4cbe65770ce2ea1c0f186cc9f883d4078ee3b8004b44c312f50e0f5caba29dc8d48c33839beeced4a3cea93819261cc6b91103de5fc9ca1be9c380393ac75aa7264f6abd958f219600da2d0c289433e34e8e96ce8af90094c377620a9a4c30f1e587eab1153f80d46fd7f3478121d29a372491f2451606d8576b931ba48254652d0c4d5d98d3cf58959d60105ed67259da44df56312641dcd125052a0ab2445e69a3870eea91a9bb9b54e08271555260480f0d301058887e44e3e6439ea12c0aafd32699c0d7040a152e4632628cc0990c9d40a92ff6e9382620301fa7f8485e7f97f10d56e3f9a8be1da724af434870ed3337929db90b60fa1407ba22b99d8e316c43b84083e12980272a2ec02cedeafde9df7ccf8bd1168128c01a22f03b0d461c4f59606620bd9777ad099c4b66d48dda846c0cf29ff910e169739f1c150a3212c46a1bed15f18594cff48275f5a92bf445629c77790b673f145a6df9bd5825c859aa34a56e24804a70c32e4a01809c575890c4859b381c9a62a7bec932984ae481e12df616bf89abf13e0d75461b9c68761a821e043113e8efb8f7425e72528f877ec5a97d544888a49820773fd13239466967638aa1d407fb93ba400b49e09c57b09219c039b4acb073c7825b92ddccf0920ae1c2f1ccbb19ea629489b35f6bde92aa84460221f7f2421a2dc69908560274a62c5602d2681d228ba2c270e50c36422d55f6969995a200f9cc697eae4c20c7b0c29c0f0193f4021f83dc318f5c07157e5690f139dfac9eeeb06171d8f8a0fc78ccc6a3934027de0203eeaf88cd67980d178933352f398d907e368d80f2e8503ca15ef90e8c84e04798491a0a981e3e17868c72cd3e5df0ee5a88c6b404b7e7f9f1d4d9f317df4715de8933bb5b96fda9a17d786f4a37ef4b99d1115593b470b27ea2eb8163beb9e023ee4fe1ed9cedca38db90d91d98a5904ea8d368e274ac19644c31fb70196757bc4b23aa4bd58e19bc161b6ef104de9f734e76629b8cb7c4b4681a4e84b166742b881825c0c06d3ad561160aebea9f9fa0e0a4c8d7547b40559613e4c327503a530376e623d9d79964a6884edb11e36ac3786c0d352eed742444966ebd71ebe15584f036272cb9653898416c4ce17892c2953375f975c1e9afc9833a6859106dfb9c9ec02ffb192e9de920f9d3a58318405a56d585c84a4546fe5a40b45bbcc7e014acaa422d707057a4aafc2b6af7861d4934042b20ccd340281652eabcd9c9e436384f6212b00fa513ee51c129f0846aa98c2b4b7460b1b72dca59ba891261d5eafe805c51b4aa6ee1f80254da114ea065b7e33f1d9eb06276efd78c7f0bf32d248ca49419e7eae397f05943ee0d166704c9a2860a49c16273a03de45e32595af959e432aa17bcfc0d0c9973be205e02ae011666d44c6a1bbeaedcd6e789337dcf08d6f7cf31bdce86637b8e14dde74c337bff1a66f70a39bdde0a6377bd30dd3e3e9e7f0c411f1191692470e0e8dfca702c8000f0d153ab802144b7450cc243c66f36b89aa436d810182c4c3ca6081aa9dd414ae861fc4e7fca190459aa2eaf236dc053014c2fa93c02fde8a2b10ace08ac02178f67f1a67914ba82869c0dec3876330bf18e4428d7075b91946011a8265fc61e317fa05d56416982564b0b21f19a1810bcc87913aa5364ee95fbee0173dba87ade4667b929f5ca26f3d8767d44a4f42d679bdca3412db12490bd6c06c6ef03e4a0ffd68195d429ada586bd859b625b65ab4eb7297c7abdff2f703c8052b35e8f4cf1e5841aa153d1eef82e2c6e914748effe7a1462c9b9c8e76472a003c9b18afdfe1a0963ee746cfbcf41a138d46d721f874120ca7c78333fdcc0f6c6b790199246a979153815614e532a2caf947c16ada9ee811762d4cc71c0d35e7e0cccee6f79a57961193a317135dd793b6fffb93ff7e3918fc8dbb042335b838d8df3c91ec9e7db8fc2b9ce5685587b446284d77a9f744c9e351d7c58d3ea6fbf27c026e3d8600effe109b74be759d0e9c5aba117733fcc5d05ce6533a4834aaf3453f4c394e6fa6695d8f0635cf81e1f35a0036eae5eb70a0380c5e351fa71bf295bf9aca827d02368ed51b7b477dbbdbb19cf739b87f1351a6d21437fcc73a22878443c09801b1984897d81ca4dc1807862ab0d970377c48159afcdc736c98d0e34b5726f214d2494a4f62b3b56807611f19d53a0c003f87a40a7897619591f79a561a7e0637244d4cdc4d23eca81cb889e12896756414c570b313094b4ff214b5184e2569ae92643055ca79bf05397d91e802eee1a0b401b6fbc81b30b7044495dc270cad047858f476f82fa341060bd95afcd98d266be1529b5311b98037fc0fc67cb2135b1a1b8e7138f6e5dc09f23b46a285ee44fd526c4a81d25a099bc70f0b95f1903896b710f628f2056e3515127ab94ef7e19f00e19768740dabf5d639b6ca37fc68187f1f9ce3dbbbf0c9419efa98193246cf93961eef79e3d47899a4f3fa2e0b19dc0034ddcf684a3d99ef36ac4112d2233dd26b3c993fb674817ba5b4e1f2a92955b5216c5da40f1d23beb25cef7b9077a248426d850a5275d78e9d5c527698a6d05d455393412872f082966c801b587447bd65a604b4891c4e613dbae3fe97aca53b3f548372b926b3cb3c7904856d3c0a20c6618726edee5a7291eea7e7b0d102fc1d46f695364289a442e337eb249d0dc02cfed6d3eeb3806ca2beb12bf12c5e74c610fa62299a113e27d6f93d1d45e08aae5f4ae202d748619ddd6f7f67dab7b64fbbc982aa6ac9b5f5f1d56bdcb37ab9164738bc06c25a25f7b5348800f1c2330abdf20cf2cbde90a35b26f9e5feb55100dc6de7f982bf16fb562e5575bca2baa0ad162d96d9e714fdd29d786422caba95e4143976a768eac9ba83b3f04447b3b7be91287ad301aee6eebb56da973ace9a9fb281e39a42fb4fc274908597c649fad6e9d9e2aebb14cbdd1bb7a3b3336978d1fdb0d7f580f2a2a66d13e10593eb8a5c33303f233e169e99230e64522e24fdb853ea8ddcb4952308d01970106bc910e06fcd889de917bb6b9a9cc94af7089c96af964998613ab4e90fc45384035c385a0659c74232645a40513e2c29b4f79e9e14c30a1e1968eb70c78f4b01e1ad4771ed6200344023f7707d4b9e277b5d22d4bf7fcfef5d29d82e3254a5d48534b3eefd143ddd0ba820853684f0e9b231868604429325c4400b226abaabc482b166f859fc3713598686e7051e45c66ec08e25cc31ef7858cdf6040be3351919e9db93ec429043363e84997afeffda8702d2b2bdbdf7d1cfd0d618f26f02aabcd79aca3953e58ec5bfba98b026985d1375b1a7ff9034d8b10b2777a1bc12a4c0c7634ba99c9cdbdb19791b72723c8e28859ea6bc0180fda3acbda09496a13b9901e0d160b5e46f2e8d5e4a4bee53782063b0efe10eff0101e4fb7bc5da2834ebd9ddae7a11c41d5a5c830ff532d2b29213cbbafe97614924bd837a780c3c257fd7783e2fa72ad6c8cd4948690d866e5ca5ff9a9e2922ca8c849553e29fb08cc2f1b7845ecb62540487944d740426367c101ac185960628cfbf6787dea6c6a77bf644a6b0e8a370df4551669fb00defe70ad8e037178f74e7e0b7f74668da6d9b33cc3c407052e6f38a0ee5f3ed781442d56c68479d3c95d58e6970d87dde8389e97f56e1ceb274ac22bcfbd4e223a478d5ca6f4145e651d46b25c4b3489be65dd47d0886ac59dc60419765aa1654af08cb901ee0f1efed5f4a49681ebf5cbeb6f9c1ba4341a749fddd917a20c42304209e0030688296205c80a19aa75f1b246c62b018dd986948a09b08e30001b5e9d929e795f14d8ec5d335a4df43a05b990db22faead7b85d3431ec28596fe4a49e18319a577049741adf100ecd2d41a63f054f71a8795515db392a963e1f585417113682583c534b50a73522d459bbe98b35ccc4509393736c018762e9ec2fe8fad5329560c20cfc76a079652184ffc62ff103d00824cbe5398e4dc4953408a8ada808c087317826eb227b3d250f188d2021409edb88f43c3982c31dfce449708aa3316b95f37ff33c37c3c41bbbf837af3633cc2a7f34e185049dd79858394b3aebdd21e4d3494d6935affe042bfe21767066ecc980274923caddb67190ca183742907b395d34624b10838074ac41629585b94e6d25ef29b4a69e1cc16d0448902ecdcaf362456d0fc983e32bcc4cf1ecfbe4420078662962039fbe7eceb22af6c1be8cd2afaec4c304a4f17ce5de37827c7bb59b7be41026996a34bcf71bed59d4082c042aff0aa6edd0dc6ab10b8ec64e482618d490419b7f33eebd98d5048bbebdff0b14607568e7ad82abd7caacf5f7328629f3e415133238f01a71cc25bd22b58e3f69c8dd6372ff8e66a24aa8f4c41f2c843a17c982e3b5cc2762d4eb95f3000a7af9a11e6918df099ab0219d584c82229c14679d36fc8c54437ce47c36ed59d0eeddec74cc93a91731d7f0ac0068aaba9b99e23538da44c108f5f96cf378c5c6c18055de83d341d594498038397bce3720f3cb0cf4a8a3e46e697ceb100c6e67dd8ecc0c1733f2b46695a091fd376335930a556a88b5e56b44f52e8ccb165b0c3775871e0812ebee00d216a670ba2aecd768ae39656c52ac91912f17483af9c41e41291f943f0b77638a9705542ad02eff8fbf4a61442deb65e24130f14cc22133dc01436f183d84cf3af1a4908ad666e522603cb3039984a2dea77305fc140649e2c4d30544d60317e7bbb281b00d20b2d5de84e06c94ca54904c1a142b2f62b00a52d79d3a577e87ff07b90af62b6618d092449c6e16a02045d8071e46fb99e0b7f6fb39dc914fb0dfd1985aabea853352a164c9bd6786b4aef7aec2c5e3d8b57acf5765101b6b969e1d86890d65ac33f984d4b7af0bcb02e43352bdc64e63233af77e7532f7cb41a257283fa270e37fa622b0721e789f87f8dd7f192a3dd5df6ade8100e681987b3b2da0f4e69f15c95b8b331b0a0f0b486f893076c151d0f97c34763e5858e27649a2eda85ca69bbfdc1a8808644ff8721f41e21f0c1060b3eb3babc074ba3c1c4a8ff87ee4928ea175e1e1f3f268bf68f18f3ba163ec2d8c5f8348535c0b0dc729ae2c0da97ba1a349728e77f9921e4ecfb0569cb77db8c951659b2d04e619616b15ec6fcddccbb0f48ca1cd0762497b4f15a97a4c3e9866826d87e68ca434801cf21cea127a176a4d620b91c73541c3c8cc7feb996651f809d79cba19d45f20e5fbc25248e2ca84b7e0dd2eb3dde05a798869b42e325c36b5d8eafa443e162547e71580c67f1466a47f5621c4cdd4d2bb9a2146f2a209c6c0057e9813ca4a9ff33054345fe9a2a0174be74839d5aa945c6d769f233ecb1c6782ed5fffd3f38439bb72e940985c32dd703250d6468da3b62ac0a48fa32f6f68945451374d4ee0185153295b4fc5775a867883422176b407f00c1fe4b22786c62934bfc851128a0546cb640ab1fe8f96562b2ada635de800516dd730b04e8138577516a2bda59201908fd896491a2db6d3274401646177172bb1c9f3d7148f59f0a011ff8262a628973faf94b88f5ac3836c956fd62df9338aecebcec483f0e9fdfb4b14aa0fcca5681018cd2129678967ee393b1acdb2f6bead44109c614e45c5a9c76fe3236c342e1c5afea5e4ae137d0c8b59174f0635dc8ce2e48e676cc539b43662cea4225d3a860656c6afe24ec37935def58399fe95b346f979ea3e762b026ad5eb5115b58070c7315a6fdcb1fef5127505a58b91d88fbf4aad30c97902f6e1759820170505e43d95823361023f9ec2528e534814fbc06540b977b6f51420c23fe8a0f461c09c287d702be3c8a6c548774fd96206a20445962a07bb105d8a0c0c1ba8499a3625a976f2e6128ef1735085b6213ef7bbb0738828e1d02b3c03eb819d8bdc187936eac536758dc60dbf905d8e533fc8216eacd2f4a9458a1f606f6efe80abf8bb889deb334b8a3de2b69f09519b570bf88b6dacd635eab4def04bd56611bfb18f41376bd76c80b403e5d3d7a28d6d73c4d56d07a951bd1f2869ca6f0f1bc1e131b796ed9b87d07d100d463c0b74bb93c8256e72440ee633d7b9efe683cd71eb370466ca02f889ee37994d1ab4f90da9b37d5dd56eb390aa00e39f267d6e0875fbde78ed39d9d5c3d7a97dc480fb59f8ee1ef11d1cfa3aafe08daad2916c3dcbe209045dde0c0bddde01f52ac37975564a188f0a885fa0fd8e53156d56b81df397d4325acd5c10d7154c876e3fb113777746b9fda2d84e343ad89ae0525fb9cc8f40677eae5944503907a78680d194fad9ad7e0c66bc0856bfc9006ca5aed0bbf7c9c9c8bfe92099d64c41e9e86a235afb51a130f8c315d3dd357513469acc068a2caade9fc4d829c340857131a2c656903698d9caaf62e602a045667e0ee63f9acfbe3cac2c764d9d07c7529ee505fd88d16eb57d1904c67e6dd7a3bd678ac5a2e44d6df872d3913e58238e38c30977564ada27ccc2c916f2ee7e16e3f1d49e7ccab81d5c5f2ef00ccb300831a7a401ff16aee409949aabf25eece10f6c39dd360a6fed63b266c0f05a67924d53e9c6cc2c89ee23111ca69983d1057907d2370990d88680c17a716446e0d267fa4d40d112df984de427c4af5c52842e4068680cf3e79c1a78465fd7978b073822890c908446eb20676a4487abcbd6b210c46cf9240c344a1a258841d068584c401298e6f65420801e9d8423c1686603c7559095cb91e39f1c1e444fb8eafb70bd2942f52c2e5ac189f5ce2dbf1dff1ff5c17c7ea239ff02b7a00e821b335c4962c4871fca639cdf22fd0ac399716020adbe9c9be2396db12b90cb91608e68827560e345105feed84c410581050e76c73c05ec1447c529885eb99bc1c4f7707be2cac0b0ebb81d4f45e7a5fccb37a7edcbd18da80decb2a663134f823b567f65fa7c6963db9fc020bd4c4e147c1833eacb37390d2a9034860ef75d0d2d2d2922da54c0103108910f010e1d499cbae1307986fc9e47f792b3d24d6f8c4016318641d0c83e29edc6202fe0bf824d86a224503855f5424f9351aa898d40de5d75e47d031bff65a42aaff85c5eb06feaa01de1193e545557b19217d01e1c583268a90ea5710d250aa2ad5b55716a98e1da183f4a5e545156b02ef88a9c2375278070dd41178079ac337fabf581334612875448a63b2a49ee77939e7777189a9c23b624b641a28a781c23b624c6028bc2316856ff4a3b925c6bc44aa3f0615bec650a9fe181338c64414de11c3826f4ae03cb128dc46c756d0b5dc5dddc768397679e603c103130ab0039a1f623a90f1c16db44c0f323cc8104066496607b79179d12146460e6e332386128c0c0e2f646e90e1c206b789c192c9c138b778b15a82db681725b0cc249c251256e411dc468f46701b53dc528645701b1224c2f80d414c636282d0ed88d1c26ff4c754b98d7e1dc39fd1a5dc6aa1b98c2aa14b5927a33ac7a4f46b44d12514cd65974673a85296e55c2e9713a2476717694c4acb603e34446b3030286a83bff4bf10205c05a1805437bda85a29fe1dfca5cf4fcf1d5cf66205674ecb5e489127c494881df1b123b24e4c96ec8a29e13a3131f01e638cf14a4b76e9d2a96cf221bb3c7db10297bd24e08549bf62b2649d702abb6262e03a610bc029e0af9e264b0268a8d216d04cf1c2a4653430f0702aebd048d102c31da42418958e63044e8cc9ae85eecb78640de1010942813c084b378780512de01e1ab025c304fcd5afd029ab5fb5649aacfee55f501a29fdd2bf4263aaf44bd344e95787c459c350351a283417ebe1ec1ecdd53a53c8997e28097eef75698b7cb055b381516998732d8753aa6b31a91c444820d518638cbb13a6c8ae2fe79c73fe1814a114270c303e612abb74daf5e0ac954d594e3003a109e537d5793c3ca5a597823386e6501a10d040d180a064000d54d6299bba16aa84e6a28451ce34a3ed7ba6280e6ea31fb5c16f948849c5b06419f8fa498ff13fb2f8e48c726cc5e090924972eaf231a68ff7e5d85aa55dcb9bb8e2001034a5a2373363facc983e318c40654c9ff3c9b385e64c7409a7e852f75d8c3f9f8cd14297d05c8cafa13934c6ffc8de9b92ab560c4b7ee99f8101bef85cfc8c29c44bbb15e828b20a84e03486c57964c868b9db741f930546ab166b418c0531296a21aa94756e259a4397b28e9b3ee739ae7e5c8d248a9990c150fa5d5a9dbb3ab456fe18922f6316e952b32ccbb2488996336618d6bc1fc9d72f8e2886eabc918659c44361d030a130146622eb68c9ad1716a60f465f542f38c556897dba0e00356e9cf853fc63ea4d54e086d45d06fae01ae509219a731bfd313497eacf91a30159677c34067305ba43aabfe64ad19cbff49328bc6cf0a272977eef33e9270ed15a0ea71c44745f8b01418bf38a10c7a46250b88dfe9894f3902449921f832294e28441aaaf48f5eb20d52ee30566468c8cb7f4d8d253842d2340f44349174792e5c25fe0d385c708e625888053efb067975a4b84cc2fc4cb5dd7a12774ba33518df313245883133f367db0d969dd9942746a0af1a6a45a88464f701becd25ead4a3ac444dd4ac63807eeeeee180391d9f481829da2b211171f285d9409b269e4459b42c4b4731b138ade42c583671a9101058ce2217df19962140acd15d03442a6180a8f2ba1db88a60f149c28d13452a6181d331e4591f43a721c3d971a2e85a2afe4d2173f4e4bd3c82ac5a81996a576a9e152cf2e4c8e2e65e9529b9266d0050ade22f5c79a0151473420f5a8237c485da41e750123a420e9eeee2e7ab532757787c9aedc52925d2449922c6417893a114763c0247e924463c83ab8c33188cf23bb32466b658a9f04bf46922419b6344eabe68f6b62c031f89b35b22b33c92eb4467e0dbf92ec8a0133c10870f4a7ce10db90e6fcee4a48b327a13c429a7d0869ce6fc33ae1d79c0869761fb8acf3c4cffe83f4fbb0c44d30f2e307b84d7e738832d5682d6b235adef2d488cf3113d641ca032618429f81df20cd4fe6c778881aa44df9f1039ca789db342067fc30e4a339256b2ec47f64f7295788c24c49ddd11926f9c524bf72056066c02ad85b0981f3cf6459eec93a1c22cd5f3ef18106c0c0a9329623498e6f9635cc448a7e3f26195fc41c10cdf21b4dd3f43cb3c449f3e8bd898a47f27b9d39bef9a6b8a304ad8da85896e690d58f5814c5c75063799e5a86c30a5f2c1f2f51c6f871f4bc11f43c34cc0fe3711e8c81e61761a046caf1c53cfe88f1ac274911ad1529f1f87809bc43fc118512c51a8c37bf34878c2fa245621214732006fad56c30d0f76be690522cc751060ac6406b5dfa9530be4f4b4a8a59cc3967ef43c5f3730b2fa15fb4cc77d1d2bf12c5712c9598e0d748f0c717d153cb5cbe7b7f2d7341715828fa62a944cb7e80e1d7c650fc0f95f91f9ac4d1b2ae7bcc01bc437cefcb1a4e6abe182ac149bd37a71c101f44310738009a3ee6f8a218cad05a8d54fcae26154db416a64ab4cc052d3bd3347f487ef3ada4654b6cd5ca5434c5b245a29e8628e600bef1300730145518a3073258554fb881a5d45f884f64e029373d7144930bad75cbc653583e0e1f0ccb96063b342449f08f74ddf769fd7d5a6b8d5b6019eaf243dde92eec1e87a1ee4aad75f87d2ebe21fa8b42517fa00671da755dd795e0772e7fb6cc5fb5ca0fb1b6e150d4d8ebf4177ea18d24f0971fd6a0aec2586cbd6822bbb2d65a877a8bde82f18ba821688dcd2ad88ad62c25c818c78f318ae20f3d7eefe117fff3d037a7e388be3945c7afbdb59c9a3fb6de6cd5deeec3d8341f7f6fbe9cc407f198c29614934fa2581c4fc7e3eb29eb8ce2083aa5dd93e4f7df7b1f8ee193d9c426699a6868bef9239bad300c51efb10cd408fe11255199711c1f8b4fe22751f1f5547b9d32cc1f65881ff93244176f2792323e1445f193f1799ee779a189a2f83d182d9793f5b975d6462d695773b992767f8a3f9a3fe2711c4fb448fc108f62eded6a22ea7d68d1f89e288a3fbed744383e368f84363d554ebd8a30df7bd696b4c3ef8de708be0b16fe73fc46a9954babb379e3079ae6388ea359d356a4dd972d3da565f9f1875a26be37457675ef4e9268bec049fef86038b6aca4622b05aa14bb9e8a11157a3270f0403da565e44f8925068350ba94a50b5ab32284138c8ad2546094a622e22c12df4b6b6094cb47651df3432c59e77b97507f88d63014fd72c228b804780584ba9275960031141804d383a2b7d8e2c6443f100827f80e5e21e2c4694d5389aff3e92cb410b24eb7e555445803a3d2a8ace34f5cf194ea079bc83a541a0b2d8410fd91c5ce489742d15b6c4125a2218a51f4550415a8c9183ca1002717fc1fd65d0703f32678f9ec3a14773a0c418ddde5afb5eeb4ee3cfc39e80f02a13bdd7962a745af3bbdf368a56305c565c7a53565a65bea942f9983c48d38c628e20d1129cc39e7ec758ff5e32e279402c65230e973e7f968f06ebc1a3a583725d5da6d3a1b4d25d5ef36dd839ef79ee7799e276227c050f44011f4bc16f9a2588e64497a1f688a5fe33cdee71745b20c7ba0e0d40810cd34384d300c41d37bd0d3ab28d26be0ac3dfcee7511f61e4bdf137ed65f0b47922c5b370e739bfc5dab06dfe8ec48b3e6398f563a56505c765c5a5366baa54ef9923948dc88638c22de109142adb5d6ba46f4be7623cd39a1143006267d5fc3493f1a3ccff34c9f6c26e9522342d4a55fd9aba183e96e8af760d654d2eec5cf4c824972e683b9023382a4f7b998510385eceeaaade0d855d349738d8c94e54a5b24598e64499ae0e8f24c107cd22c3df3fb1ae7f9b069fa80ef5a9d622bd47e961ff8bd99ad7c9ae5812d41c040530f4a519fcbe56ed8e158e49a27843842874f00e1240127b430754ed4c0876e3575852a574da53ac4315e878493bca26524d49f2e98237479c6e7b34b6fe0fc32c61e8258346884b3064a815840a9ac83d399bc811326bb6078b9cb2eddbd5703a740f24a0d944ab5d6425e8102a3d20c6e396b30698649cf14268b659965f9bdf41513d6e40e5c80ff62e3c9c61121ea1a74fd1ed8aa792008a29a246de891ef49b7710436bfc421e8e2b8bb9275c0c7e168fa806055f8bae575a98d251efc1fd946129fe4446b39c5cf426b39d52489e2ef312ad3bdf721f818ad15095fe3d728aed9b8429a435c3c468b46176138bea8c330f45c78b8e57ddff77d9f762866b5cc3f5be5af5a1d0882e1e307b126a9d2fc226a35855f6f09df43b428fc07df436b7a8b4ced45549a6bfac70fcd21e01775a099a44cc1af4a6b7a8bb740fce4f8369e6c24f1993ee3977a20083e061f63348bb4d629e92d3a4bb94d7ef2c699cb6d0943345be00cfff58320065b56526c23091b4f3692e85eae882e5ebace858b53aa41f0cb773349f81e88be39edd037a765881695ff765df932be057a9e0c19ef7ded48f932fe47cee518fe187aefb97cf9e1cbe94544f72ae2f5d475a8b622bbfcd1d7f7614b7caf05feaa2ccb10c6ab08bc83fcf0858c52468c97f16e26f164843264a0a48cafc990d18af1309e44c9a2f2bdb07b418d78df85a80cf9e07fab95f77de87d887eafa7daeb29fd5e643cf9d2aae1b4fb562befc1970ffcc01f43ef5f5efc56efd272d47b01b394655996a58c323487842f3ed8ea5c1e46cbfc172df2c3f3718b257a0fd6deeeebbe155a147ef9dfab08bce35d7cf8766188e240a2a177e4fb12ad79fedf63f34859b375a80cf8de936396daea6b2954a5241ade70daca6f9de40aada55035a4fba212ed5c4caf23d1f1c7f13dd367145b7a2abbfc4910ecfef3f4fb5c9caa642ba6768105e959c775166d05f6f0c6d9ad42345fe0141fac819fed55c4cbe95504883310c02ca5cee23a59329024ddd35974960f0cc371049d325aa24f7e187ed69d46bfd273f2afa6a748ddb5146994b305a96721c72fedf093249a738664e875a476724af377e92886ad2c50aae4724ab6dc6d344e47f0c596670488eaaf853a04c925743692e89c60274ec52e75415dce67b15c5c582e9fcb6ae57dab154b8f7ffecc9f68ce79e274fc5c582fbed58bf0b491c438fe0b1797f3dcc2faee6d24c162a1369260fdf7a9d8317543744d27383f330921ebb0bef47c5cc5c2ac13647966f964eec877c73ad0819622a7ba4acbf46b2dce836b30a9d6e23cee723ecbc5bff899acf3e2f57fd661b15eb80059a1cb67989444614e1b4ba461cbc695b4b3914458da78ca3adde3b77104def16423091b573aaa94b4f1642389b03cc169e38a8d2b1d0b9b118842415497aede9f5c9920589a660a8aa00b2882a0089eab96a7e6cbe95544f82e6859fe699aacc7ab0fb5ccc5af563fae9e85d670ba7af03bd3c898aec0d7e690d57f9f8a541a8becd25a9a385dff0b172dd7af939c399ff5306058ac164e572d9c7e26114fcd95e992bf6c85e3eb885a0a55e9eb29fd919db24e117887a7e0bf9ebe5796947c39bd8a2071d93571be9eb2cb4a0abe9e5237f1eb2a22baaeebbaaeebb4ceaffc2a620bd3196ab11375e7bda8b5a7b59ba228865ff881622becc44fd45ff75df7fdc05d156137e53a940aa53c4ba75bb518b2ab08676d6747cb60c2b36cd2a513d92af3cbbf4377763acfd3def8e4f8ef6612affb518b1a6c894f86bad36227b63cf54a22b22b3ff925d554d9044271d6ba29cf0212e1c4526593f69a9cd29cc1fc5d193e198e22aa5bafa79a95ae55c33e5a6bad3d4f772ded141ffe388adf8f2d2b296ebd8af8fe87063ff04a98bb2048afd179a7bf3bcf98779ff91fd9691ee37773862626e67dc63b9a8f9969d1a0369e3ea645e34ff334ad1d9408e93433315d1855859fa97fd70496ecd2baeb3ccffbbeef03411004c3300cc3302cc57731fe0bf261941fc37c192eff123eebc5d5c33c2986ff211a4a65973e3f8cca2ecd4483329da70cda954c9d14eea46a27ced530548c5a580ba332555a0ba3c2a812aa76e25c9a71559a9fd2fc63ab5573a94f4976691c1c2d3b4fa8124acb744aa8fcc257b23683f01e6cd5ac5819d1175eb98d7e2af08a969dafc7d6eb69fc37a764cd4af9ab14b6a4a5f76789d6deb244c7ffb2353e59be3996651352291895c12b3232e57b3aa2353c8e3ffe0f5d8ee47bab29aad42bdf34cdcf3f8e66ab36bed70adfada464eb45443a7e28993f0e648d3dcf03bdef7baf0576de077a20dac1e8cf4b1897405004670d5c4a9f0c35d3e8f4345e818a9282828282828282d252b95c2e97cbe5b49496d2525a4a4b6929a89c96c260162d555bc6dcb834323d3d3d3d3d3d3de5a0a0a0a0a0a0a072b95c2e97cb0295cb9f78052a4a6a2acbd3d3d3d3d3d3135457050505050505f504a5bd1ab814865bce1cccd233b9c4261cd1296d6a6a6a6a6a6aeaaa9e9e9e9e9e9e9ebaaaaeaaabeaaabaaaae4acb5357d575e05218754ac14c7d1617158e96b4a9a9a9a9a9a9e9c9a37a7a7a7a7a7a6a7a0297b44cf780e1d2c904d3f44eae278faaa9a9a9a9a9a9c9a3f2a83c2a8f6a4b13b884b3c555f55a60a8ce2ce137d5d4d4d4d4d4d4043269d937b5a465b8273c4f18987f976b29fda6a2be2970e9e600fedff7a0d8929169c1e5cd67527e0e2edfe7507e4fa2da4a9acd2118eb2e77e110adbd7348978a9fe923a25a8af41be2a5e2935e298e9ff8e00f111f1cd1308753c688a8adf8fe1bf2b94bcd4a2a5304b492ba290444f594db7c2fa2df6b14acd259017397c524df3d2fff8b888c168de493e52b67f2c532af5e145768edf59442958b0b5a5be9dc72416bb93445fd6527b642b4067e6976c91d0a9cb0b75e4e2f22f4a7bff67a1a75a76164570a55680dfc0ecdfacd143efc554ba338b8886868a29a44df1c02a245e3179da0d3d8755467f92202fc37a7e18f38cd565297d5cbe94544f73aa273f1b5d7930bd6875a06e359a88b8ef52e52a89a02cfee6cb9bc8a7815a1a73c1cc22b640148999ce2d4759a538c759a73d65aeb2ff5d2aeebba0e4cbfd4f33ccff3643453ea1fa660962f3b795a3a7c456f49fd33dd6d3e7345863874c1dd0148afa175766e6c6cbc76f42bff8d30bdc113a63cae653ebe07fa3550703d662100ef44de5b58f23967020d99cf3805e213f330431ed7c214c93b92337d214c5f787f8126c30be0858b67ad4c3c86dfffd0b2191e3b19804a243c4f18987f570d47474a76659d1adcb5dfc3330793fb9c2bcd399c344f1d612aaa30a53ad330b4a1b53367a62234e72b619abb9c4c470eced7a8908590b57057fe4ca55f533e726e8002dce54ae17366c2544b98ea87ce9a081d0126d7d2439d57a6c22c5b76cb88227a4a43a1b1b43e874fa3abf46b0b53ba5b46b8f0448e94c4a89d2f5a0b2d04a7dd32428627d2324d757e7e255ae6a2019d02aebc7817a6335fd92d236678202deb72443a7765a9a5ef985c39cc596ab78c087a22f93101bc06d7c13eb84bcbca774985e16e8d69a6d2321c9f737c967dd6f13b3ebf5ed2321e9f5f3369d90a9f5f3769998fcfaf9db4ec8796f57c90cfafa1b44cc80ff9fc5acac81fd15a749596b9d0e5baa58e4986cff9432d7bf2f3eae72ee8f363262d9b7d7edc84d6606641ad50bf3ccb931964880186264c9660254fd8096f09005a8408be92a23f7cf45881070f5acb5129de416b3a87cee928eda49ff4150d85025acb5a6aa0b55c85a2b5bc25c5b9bc949972d30c98171930d017f85d9c2eb849bf3aa7175574d639b7802e41addece5312a335b155a66efa9c906a2d5564a14a7d2a15ff0551a9f852297e4af5e32a9ad24ee7f427aa584abdc751a0e02d30891d6b6f7546708a5ff2ad4401f163ff5e348fe030348f782f9ed9a58dd448fd7f6cd54428601a4201d332bb72d6eed83b5310e6ecbc13b76ae011106bcf3c02ea0fa31da95b611b65267d61d2b7c32fbe671ec17e64ecc62362abe5628d14d7aaa418ad59c13531750fed6aa45dabd6e974a999047fb632e291089204b3007b006601f68007cea4f7dd48b6b2123848c7168d348b28aae4799ee91363c424f93d994b0f93650ebad854aa45d711635331a918160f8d4d651d8cc6a6625266ea4d54c087b484316188604e1818937479cb14dbcafcb9e9b2eabad589a1b47019cceb8f49e1e510c06d4875cc08a9c6a5f9684ecb60d0a398aa70063976268ad1b3f490b08205000ce537fafd8d6822f528527fa20821148145114ba4240cd7fe855e169b7298cd26e04f8155f5acde4d252bf4f54b67d70d672da6cac3faddc44f2ee18397c5a68c3ffca1b530a7a0bb8d0b18659869300d0d4e4e4e099a538af9191ff3fa6370bc8786c60ceaf4a135f409878606ea5a0645491a281a282533ff239399060652345334727232aba7d1025ba84ceba58546b5d0192dd449bff4d368a14bfaa5d19c15e17b604e4c2a676927adc5a4c8772d93d13283c6a4740c4aa232ad978f496118ef99ca42e53de40b292d634af5bf90d2b827269581d34363a862b2c46481827a095f1086e10b76485370e6fc95756247b84b27e06c432832f9a184a84c7e17bc27e69be01478608a9e19efa1392d9369d2b2198d5ed132f0677c87d650a754a34f28141a95ea1a2a956272a685840bde33f35f4bc90caaa404f3ab577af99996f7c4a474182a894165f2c7bc951e4fd19867b2fa18985f7d4699803fe367a0535e1e7c2b322d24bca732e36164fee5e5659e0acccf787999190ff34c64fe65c6c37c13997f7906cc3cf854627e35f3e06b2a4830017fe6a9ac3ee6a9803ff332f999c4fcea99cc7c465b88f9d5379979d07b605a32f961de7b484fe3d249cb689ec6eb2f9fb4cc84d731aeb475718a65c4a0811dd7006002c658bb2e311318046e7383a1667ccc43e11d51c294fc283029292386ceeb8fe5c079c8bcfed80b5cf6f2fa6b311aa45ac66bd327c6939e7b58bba4e80d314040714077407b78f520440dd0e60f31c618632ff4c431e3acb54bf75e4e716b88a71e6a03fe8b4a468c9611ab978921c1d0f4293fd4f2aa7ab9e03d4aff267cad6c9af1341ff34a4a324fe367fe47063379e3f4c8199996eb19344cc859f29e9996f7ccf01e9a96f7d06879cfb7bcc7042638051e7041cf8cc72d25539060f2f233d029e0bffc94d5c378341f88394103029a11d098c0652f4c4dbc3820d5ff4293826c9658bbe09424c5f1fbbeeffb5e98624dbc30bd30b9699a3ee59be6909ce616aa842e85690c14cd41e0c4e9ea51e03c1f48b58ef9b116c4f0096231286f9ce6af58cec23a7d516999904f1c6166885064f8e4e7f45b95e54b548aa5cc1a0cf9028952fc1146eae5ec7939e7ec658f847961ca31a9ecd23906a7f9ee793450d81ca5c8af1c69a0bc898e0cc9b7d57012f5fe47f67e3c495de6ec3897187b8dd814d9d5c271d98b0acf587d8d95e26ffd0a6c6197954d628acd7779d26cd144d1409965139a51181548cd9697bae9d3fa60fc3181716af326c208a46612ec220522355d7ced4545bea8627c18c6f818ffa2d232ef094ba7a6ecd23f9c22c021358fa4f9bf22a4e657a63acb59835b2e970c192fb4a42c9df344d1f05fb45a9c96634ba7662b57918a2d3325bf12347dbe374f10821ca462eb4cc911ffc85844b5f9fdf87d68eea45131291c93c2b598147e1768ed445d1693ca2ffd18bba03450d9451345c3445476dde0acd140c9e0e0c0d1b8f462b26052976436a1609d92684781f2bd8c47292c934b651e9b43721a8382244992243dcff33cdc81f96b0090c941064b577aaa8817783a538ce650a5ec7a51753330148ac674386dc5b0b4702c056e73a39fa4998231e044104f3d554a1c967a90205f98a4f01006ae83d896342797eab7e1a4198d61c1e2f4bc9c63aad05c59668c73324b296ac4cbffc82f280d547e99f05d96d29acb522a964e65d3064e348779ecd0e0dcc1229aa389ca3a248ab16bd5a289a281ca2efda27a51a11f1a93027ff5318a48716a679ae2564dc90f6dc391c160cfea49b16504f81d0d1359068234505967448728a0898689118d49d9e04473259af3d09c175385a1a0a07eb48874e08c32a132c62fd212a4b8e5a51e9adf93c12f83d198d497c3592b9b4c9d9d88524add2c221343ea24fd5a9a06a7879995e6b2bc92eaa79940d9a59d4a4aa68897e2f7528cda48d6101ea45e5a43739ea24aa90ebd5246637075825ab6f2b2406192f4f2cbcbcb0c0d0c85f1a7b5b28974228b0f380ccba74c92243a3545160175907a20087a3fc40421a62a86062a36c507c459c350fe8554581193d24cb470de92a394655f159b22ebb81324904a754cc7a6b4a43a968458961816a97e2fe3d6901d1c712c5e54a311e07b3f602f66f538e0aacf3252b205a1f7c26289f38b49b995d4fc5a3943e43420d5ef39de44faa1b5d8d44bcb8b0acdb90d0ec3f37c5175b915938a4d65d7f7c38963b6c454c5a6b2cea3436ab84cc9a93cc0801401a94e4d98c059c30d702a9bb22bf6b2b249872801d2a720d25209181a266250c450805ffaf5154a54f1548bb1c0e9714ceaebe1f4509a281aa81795f358bdfed7152ec31e7851e117157e51ad50314aaa072432940fa674a9b52ca6eaccf854aad252c0203dafa8723acf3387e57c8125ebd45e545f0f50ece08a4f6b619a731efca80d2e8b41e12ffd31293417939a3123ada1b99894dbe8ff7a3863b66434a6ea4bc159c35061789e1e1022055b98e9c68963614e064e74495be0acd140610fb88cc603fed21a86c5c25034506ea3bf6c12c313d34069b0e53df985098732331e9b7a51ad7e5543733434320b4eef499ad203a5b238bd07fc5a4cca7b5169d96a85a234b8093361a62727272fd54e3574089c45132090822f4c60ce5903676ee1ece427480003522f7766169c353467ca00fe0a9d2245bfb4114750670dcda57849831dc039e751ca3adea34b2853aad12152fd31a9fcdeb90e8925d57fc20053fc1dd619a280a610cbbc6749774c5ab67afc5d93f334c075c2c7df3939ee9e521c86e195947cbd251d4d9fa6f4050d9496bdbc60a817a66c02f8abafd5c8233857684c8934365536ed4c6559b5f0955c2e97eb015b48e43397e20d9c200151691ec1e9e5ce98149acb2fa4fe47069338d12c399a52a7981c4f2996580a768452f8468fe90b292da60f26711993e54aaa3f268b4d949654d75e542f2cb28bca6d5e57f8cb06210a52107d21a58d70d6caa6175538c594eaf385540a3e8ae6aa4ea82de0153d15956a19f89a5c3da598290d712bcdde8b14bc907a910203a459e785c9bf1594a27ac0b7d213e21896ecd2b1a998546c4abfb29300014d29d912d398947ef180e63d37434dde38d11caa842ea1b92614b025ad9db92c59a75636a5de44124d312bd21a9a4bcba6ac538ba94a1b90754a5489068a4469a0c62fc44b3081afd040d53a1a26b24e6d8abf5e545542c83a1985e2c0b9fa568ea60d9c198b494401befe180a700f1055d2e17b625ee6f5c7a0701e32a3b5d854aa6359521d83c1d76255a4fa6bb11af478797f41677c2d4645aa8495c09ff9554be9e55739e79c3308fe0cf8f2f2ab96920e383d345e879d9e9917f38b39673c4576856397ff0b69cce497c93f0326ff4bce4fd240714073280eb114a4fa6352ee4da136f3c720092d3d60959c8029aa7a561f9342228625eb781fe61eabd7b2337ca1812201f062052fa4f0ea5739bd7192af8970926f7325bbc21604b8db7ef5dd4d5ba3b0edd11bb92a92cb12a1edb7658fb60b36f55585b83b122143b7d5dd8fb8afbb4af1515f35c87bdbed26ba157177163e16dcfde6ac17609c75710ba486575c438f1b61db4dc32705fda6ad5156dab3efbf4746fb7dd504e4e0a2bbbfeeb6b0f7b6e286d620f7099c30a5b3ef6d55dd16f6ae413b39b11fb7dd47b64d345bdf6d44f4aead7ae3ee28ebbb1aadedd14e4e0cf742ffb2371bcedd6dcddda1f8f962e4ee4642da86f23b667f5389de77dd6d7b374945b2a99f14f451da4dbbad46bb75f700d8dad667c6da6c29126b136a77942449ef3a538f5420eeaeddfdf5cbe0410a8edbc2d623f5c7c855916eab4a34535bf5e80687b665321c9d9b9d9da36e1c3b074d9623b473030787cdcbd2d4221b7b44c3dd07e0a78c1a77b7515f95f62feee8b6ce368d05f2c449cd0c4e1e66b36da477d5afb9ed28ebd00fddd6d76d57a11762ff61b49506636f49361b4ee867ef6eda0bb1ff670c1eeeb4fd6edb91110ba4869f314ee0ee4dfc8cc1b26272603d0da1edf708d7b6fbbd15219abd6a4f0c1c316ac070778fd1b9bbc31082bbbb878670eebf4443abd1efa3a4d755bfdd4146b8db17cd585bd06fa2b7e689939f199cfc267a6fdb0837d4aabf89defdb2481e46dbb77d74a412bdab12bdfb481bc9c348727701f809e3593d10e17e6357d7dd4b90361218278cd0ddfd7c910477f722ee4ec4dd876cb1c5165bb8bb630bb83b909f2ea2ded96e5b76b65bf5dd976868dd48bf8dd6f7866b5f687dda7e67fb48ca7e77fddf444c7e07d04fcbfe003dd1bb223d6d13b9eb6d15fa1eb785b9ef6ab4da8cf6eb26b9bb1077c737de9625729f655f2257257a9eedb63bca6e9fb6dad428b7226e0b237255a29b1b1d6a2c474748c74d2c47c591dd98e1a0ddb881630767cb6cf6abb6af1b84736fdc17c716cd36d1ece65d876ed8a1569dc16e8ad4f5883d526fb6114b7443e4aa443c3c6fcb1e1de1dc9f6da4b6422e78c8d8a560b4fdbeab91113b3301ac68a6063d6ddb6c6cfb3be86feaec5f95e89da9ee4d6ddfbfed23f65924ee6ee3aefaa942e9eeb077bbebbbdad45bbb5f29fb6d37b65da3dc7cdedb7683d24d63673b8810cbb64adcddc7e7c8a8252265d36e456cfb76538980b8ee6e876e458e8c5a229b8675c9c66d5c0b44b3573d72d72049aa6dbb40533791199423508c82b87b90a155e8c60271d7232fcbba90830da04e58e5c082025a4c66ce011cb0c41236408041004c142ea840902a2c60c2c30a33f8dc1d48cf8f9fdbd06a537f360dabfbe2d824950577f7715b5f77d39e68f6aa469ba5fdcbb5f7acc5b1ae0d3fcf1967e734eee10961cd6acadd67c038d011fb1edfb6b8990a4fc657cde87251792a2bb83b8fb1c6dd77b8eb70f7cefdc658c37fcdd7f06e0b6b896646dbe8c66558c1b82dcc6d37cdb6e2826e5e2321f71b2d77cf71d1e2eeffff5f93420a3c4cb0a8c842042e21f07fd5a7eda2d97a538f5edc91966d5b1f24b66dd99ee701027a9eb10608e8795ea16dfb1f815e2fd1d0dafebf42dbe6027a1edab6adaa90abbabbf6d3a5a8f4d3e5c7e588bbcff0d30587fb0a2bb8eb03fdd06dbd6d22a47ffd0a3cdeb5028fbfad433bc86d61eaabd27edc61f0aa1c908346a0770ebac7c2a0afb02703bbe030a793b91ea2a30173187a9dc6d8b3e3163a1fd8c11d9e67c718eb4c046310678cf54743c6198359860b187f18f48c4d98cedfe71a1f7739774cb8c3388f7808198beee12eeb8d712d639cc317b24cc6f9eb32e641c6f8cbb805fc82b1cea1093c0dba601918c7083576c25fc638eb1f9cbb51c4914bdc23c45e0ded937317d33b2b1d7c855440f6ce330570a75d9d97b176ef00b806d8b39fe7e9d8718733f6010eb30a18672f678df10d7c83435ce69cf30704a7907397318e8691334214b0e9222627007b7906eeb0c69e95e41f71e779fdfc81f00fda5b26c0ee611e27b2c61fee406c62dd9473c8a3f18ec639779f4bd1853d8c419cce070b07e7f10b33c6188318f3e09c63a03f2ce64e47c16846d2365824330e419c7f649a4c43d3d0ae1daff0973336bb53777946ce197fb813c2620d4c7a197bd8458631c6582607e023c58c83c212ccb8051c62ac33ee30114c23ebc83399cc60f6b0c6196732831dd69ed681357661119718e31d98268f1ac4618733c63c187f32320cdc65ec7558070dd63ae72e775847ce38268f58c4619731c63c98461e418dbbb0c318cb1eaf90b40d0f6b2ce20e068b220f39830c0d06408773fe32b8f1190387248271c619636ce3a01fb9bbf7707717dcdde5eef2d3647a6104b8ea05983f932bb44c3189400db258a25e81d3c21554aea4558527b9428a9da4c584039044804d8244ad55052002344110a2cee0e868c1dcec5ce17201996ad6d089c0887554ac841c545b3c2087d312dc860a093435544fb906a808d686138e0a36bee60734545fd238bdb870a7174f1cc80bc2bfc3c15dbbd36efb55df3d47742cdd6d61db16a4beb7b53dbad93476b6de709fd278420a722fd0d42208ce10414feb1825131b90a0a1eb1bc39dae84518202285f6d6a33cc82c302729f4b06c5aec6a4b193446e6c52d2ba1a171b320e19ef850e7f3c4a905b8185202c1c7237762cbc5e90f31cb0c7736443ee62b48d0b723694e41063d593831e62c30eb919220c258c05e484bcdc427724420ec80027286ad32bea08e0830d61c7d231136c2882044415a8500ab724c02593de0f16a8a333b267b872c30bcf350a195100ca9d0aa08e1b3c108121374801c48d12133c34912371420cc0c1cc59e10ee466e8d830823abe3174d1b22243348d510868830e1a4b4222323e42469148b984c6232a7776353a23a8e385f98da40f3a80227263488426a8879ca74f0f7f2d7ca3b7e35321f541e2c4144222df08ce7001b2a2e990882f30669aa810ba90b880820d6308036f9837644594806507c6783c5a472cbb14fe0728826377e319e9767e604f46b73c19386238d33a9a72e1284394d9c094c3248ed0d5d5e86a7c16c8a9e0d205f16c7834628d6e6615d3346ec8c16eb016d2369df66a40076000f68625498924a6a2ae2861012278b042458a5b24b46740037022430c4d5e58a284850010e1d9b9e142e104007ce7c4097cf438018d99013aa9008b1145b4e0e38387468c92fc9a60e203483c1941c40422e0e480175c293060014132fcc0073fac1040ac423d768ce053104c321106592af0c4a343e705063986e08c4c0738e064d39220094011213e0f2800017670419523044a2461012b303491e9c0c0e8a4980a42931e2be888e00781073c008824487aec48a1c448c847c846c85bbaaaf741d692aff0a87015f905990ad105e514598acc442ed2355c23a4e1cd9833f24b8e8161b05e782e320b9f9d4b26bd318b61983bac31fe3cc65c69192d825cf743ae63e153c125e534b28145819ce795200a55d8d04520d6bd94445ce0e321d7b120ca18676070c88902e864d034e4fb95a19070e71bf58e0a29c8855039184e6c1065fa07256dfaa0a441cedb22e7953154e4cad746033911c625833bbc1b6f88a518e48c04dcd0f9905bb5ced736ac9b1086b5c50d9e8d7007e4a1579a47f86a9b8e051fad6ffc8ec869f28be96ac898c65dd9d58c423c1ba000be986ffc6a258c1286f842c60005a09570c317a3afdce049e54ea87546ff73028d8ea75c7dac0e6b1b0da45362c600330803787a1fc8d23c5e0c17fc91daeb4aad75d6a00eb538ce741a7c0174b15232b2c00fc41aec7074371d0e6768aa1ce9ca71819ccb1136b0be4e260c724347831bd09ff72d969003186491620a0a29dcd0922d961004934f8f8f1564eced073eb849e15c85e00c322441b2451424883201089ca604fc58000d5eb0822746d001258cb881a1f0738300dc0b84db0e418b2a2b5c30c5093660a5ca009cc81043122443849840f322e3084c80408924aa50f9a131c3de4c58b9d06006508cccdc164b2802119cccf02283f582279c20c1083ac0010c00510002fc0c40003024415264055138a1821034118941152b88e289138c40044510d1430e386851f502178c40044c644029b769457c5866d50db0a001142700c10796a840103f6c1a0c457c5e2c73055140e1000604a1b46903084011213e3b785cccce6f80c50aa240811320f8c01218a8801005507a1280222bece091e188bd5cb03adfe20658cc000550387102107c00031510228802fca054830dfc3c71e2e306960424b06064e522031a334c3ef410030c3812f8a187242948f8e8ee27f82952e1e2167a099d123c24e4238417e82c902b908dc03939a671308cb4c935da867e1926601a79068cd133328cf78265882f5cb8d067b7325d4e134639839c195962187ea0fe3ecfd3d8dd166684bbb5eaeb763fdcb7bbcbf8d9b9e00e83b97bf6b39b01027a21f65fefee3729c8f5bf69ab7b5bdf5dff5d7f4752abb62ad1ecd57fd9dbbbebbf49419f9f9de9eea19f9de7ee28f8a96960a2e0349d7077173f4da8ee855985bb937eea29fc090c069be189dea1dbb6bd10fb7bb6dadc6f5921da6dff1ebaa9adbba37e6a16dcfdf453f370d7a16347874c878e8e1c3a70e8b8a12347474c078e0e1d3b3b3bb21d9d9d1c3b38766eece4ecc476707674c8766432998e2c870c87ec862c471693e1c874e8ece8c874747472e8e0d0b9a193a313d3c1d1d1916327872c874e8e1c3970e4b8912327472c074e0e1d387670c870e8e0c88103078e1b387270c470e0e0d07163e786ec86ce8d1c3770dcb87123e746ec06ce0d1d393b39b21c9d9c1c3938726ee4e4e4c472707274c47662b2984e2c470c47ec462c27168be1c474e0ece0c870747072e0e0c0b981938313c3c1c179777d7141ffeeba89dee77169371c1bf442ecbf38f6a56cda4e56e2eeef67c6f177b51db90ff4aa40e092187ee22dee36350a6bb4db55869f38057777e127666205299b765bdbedde567737dd3d1d987477ece7aa06777ff1134f7177187e6222777f7775fd6ddb9ec7efa0a7d9702c91fbafd98ee2b6301a6b74f31a09ed969ddd04ede498cd7008e5e0c041db3ab3999a13cba109e5d08143db99dd98c972ece4506f08edecd8ec66f6bab8f6c66d61af9190e721ee0ee3a73fb9bbccbd65db76ff4d7ddabeb5b877b77f63d7577d6fdb68db8e8cd67f57b57d7fe8b6beaf6ad4b242afbae770771c9dbbdf70f717eeb87577237e7a94dbc2663bca0f92dadecc5af766c6da6cea4d52abb641abcddd3df78ce3ee337efa09ee20477a542e97ba06b3782249ed7df7d8f409404df6ff9159d23fd4b2294830017ffc294a4bdfe331f9defb2953aae4d75f057ff755c40fdfd1293a7c8f874ea922a24bdf8356f93e4497be473f8856f9500fc561b5c516fe553e7c8339b10e3a744a4bf875e85027f31212507ca4faf392d252872201c5870e4840f1e151a986c13f04937076af6b783c48aff4b2954bb17b112b913f92e48764d9caf9c9c72d2ae1e31c962d2bb9960e3e96708f7e1d7cf4749f4d9916ba2f9f89fe9e924a95fc1f9a1b5b65f9e2f84bb8277ccf6c4189fcf2718b8af83844a920c1447cfc54c6cf2def115b63ab9401df475aa4df88a4fc1e4582e587e6f497a5d2f84bdf23fed7522a5f87ef111f97684e53a9a25f44735a69e97bcad7a60ca7feb245a58afe11cde9375bd04c942ce11ef1c3d612ee097f6c29e9e0a347fc25dc336ad347a685eecb97413ff95f4b295ce23d254a050926e3e3a7227ea6323efe9eb1e52d1d9080e223051ff7805b9c507c8b14448b8c48ca6f449292fc9f29d342f7f999e8c76f2ad15fc5eb3e0cc0c8a5f973ced86baba52c4d544e5ad2a7aa34ffd23944d6bf04cc11693e894873d880349369b81486e7590b97ba1444dbce5753a4ab2c695e4db94d56caaebcb494e632f736b08d1ddc06468ab510ca5c12ca9c8d2bba0bf58361d6499290e607735bb22b97392dd32d911ad4e2ac853ba439e73f977c3899c21d9cc75321e85612c0aa2160adb3e8aa0c2337ea80f4dcfb1ac8947a1a2aeb309175c8f7b4ccc5f356adee5d5aadcea5955faeb3693e95ee5768484587656bca951407371c3b9ba97b155adfdba6d1d61fa04f0a4abaa9eb6d6855770b7b5bf5c886d6ae44ef6f2336c9e6e2d855a552059523a82ca102802928988234e5a7c0d470821a98a881a8ca4b952b0a7006618b95244968c1939520aaec1802961b5cb0610b1b406043056c80c186d4dd97f899f341ae2917c4ca1536235a0c400b255a28dda004c3210b0e4a38dcfc00eafc41104a543a0c914313a52672488107097077cf420a25239c3b0c399526e083151121e4e0940394730702d8e1891d987680a2431074e881bbbb0e3a28427a5649a9525285c28c1658b420c159841a9c3f58c2140ae88084a51c000830b3f400022001000f26016070042a78285a4242801e78c8f9a1e907203e2ce9618ba71e5ae8c1460fddd2d4c943103f1401c4152066f881c7871af84000206c14a00505a0a10027fca0041e4690b301e20340fce014a246102e082217448e338892090bd3014ea621400c0108149c859530c093d300338480c129040f420c5541594c56708098219630840a8650e2e52cfd0df1340493217618e0062cec025d012d019687001eeefee3e70164d041d1b9c0ea5c2c7d8403e05042800274c09482b340206ea0c10d3db0c021f03c000ace03b8451d0276f882b0bc23208005a51eb478a24a5725d3908506294f7c683893a49e3449024ac22141135298a41021410b909aa264214106a2e49e144539714d4face07e9060ca1bf502918087d75d2712d8c055e23e097890e54910eeee2d532be509035ad70b2859a03cbd40398fae1c3dcbc412b94ddd9660eeee3723aa12e4b8bbd191d18f12e8d89e6c444ab042d19522a2121469d9245b8ddb6e1a6a6eab114dfd9a76e35c773552f7fb43ea4ddd444c5822a4af7969eb0f5012dbbeeea6d16636ae6a9bbdd08fbb7e8d6b538dd6d9a67d8d8d0d324a72bf661ba9b7af79b7fbc489fa4f9cd4d0d6760bbd52d73f7192645369459e38f99aafa101ed571ddab64d037aa076df9058a0a477b7eb7bdbefbe6b0b04445b677002b4672d2b0488b6ddfde282d6f67d559a4af4ae4a24e3ee3efc0cb262b6346367286da7b47dceb4982d416b421369546819a822c60ecf9209f6b87b809cb6915422261b88dba6816d858860ff40e8858408ede0ee2bf8291425a484a19d191258a270052de1439014221524212806154ca1248a298288047d144d413058984e2c4b0485491042162a5516153099926aa5542815f8708549054e4b2aa8c99d2a10962d31fcc032a5eea88f85c8dd1d8965816db70cb7f5c8119adab3d720341b8e8561d3b0772b84a412bdef767f5a75db6caa6dcf662d2b44db51d8f6e848fdb1d9b7d5a82909d1a6beaad0ef1bebae4c62301d301c9b1b12db0611b92a912771c263f64fe4aa441c972c1e84ee0ec561b8a3a3df3338b93b123378c0dd8fe8f1eab183e331db4dbea668c6da7a5c3c66bb49bbdf1b8e05b2875425ee1e5295cc800277bfc01e5295cc5085bb5b407dd5204d4bcea2228b196a3300c540c459546431836b061a33c0cc70ce70caf0c40ccba045862ccea2220b19b03cd100d82dc9f300bdb71dc5e76143bf5d1cd0dbfcf30001bdcdf3b8b05da4be37767df65d817c80de75d523cf0304f436b6a1dbeabefa2f001901bc884105670c1188410131b410830c186e004394007cc00004038e1107a8bb756937958856e4c813273534da4d75d7274e6a9ed6aa48372436c837a1f10216b4254d7268d2a3c90dede693a4c90ddc7d053f9b3c7dce2a01117c60d8d181261098a2892b4e4b2fbcb4175878818793176a583b78d4b076c0ec085fa8c1e2a97277ff61b38d1fa0563d7255a41e369b0a8487a7c7bbea33e1c163b69bc06c38a17623091569d9b6dd9ba61abd6bc309d50001fd267a5775ad71dddb6ad4ee77d39e7d5d23dcac5d676fb3a94549801e2808e7fed0f68fab02a94835393115d857c9d0eaaeaf0d770428f643b3b144ee6e89de9ff5b5e18c7e5c15e85fae4d10cefda4dbb3efcbd21ec726bd6ecbaeedd16def20f67da024296c7b04f4383609b661abeb69bb656f2cd1d06da56d570db2b9a9fb2654c45d714f345b89906e2a6ce8c6da54f5e877fb30a3a41b4bc36df7e869fba6b6442f8cb681fc6e3711d2bf80b8923ccf0b4888cda602d9aedac3c3e3baea5152d0bb9b86b3cd6eae87b5fbb5ad4243b7f5c5b1b74df4baab50111e20a0b77958d2914fbaa92fb4be6d558b666a90cdc6b63776b5b1444846b3d5887dd5a0579f76db4b1e89eb4816ac0f44b510a589bbbfe0670b58c9939226387e2a4121c9549226d6133a38e12c1128b15e18eeee4b5a2ea8c00524175468618ad4cf24309c496a20c17222614202a5852596f02cc9a15444cb911916b228a285bb3b0b4e5808526409eeee2c080000bcdd51d89f3d5ba3b4db85ed21d575b7d1d0cd16b4ba2e7bf4ee2ac49e466adcfd5d8d5616da1d2589912423358cc01839594e315edc8fcd91116de3360ecacf9111ede76747595f35cada6eda8fabda6cea0fd1ec558390d0c00cf72e06b0a11bdb22fdd06d257a616e10ce259addd4b6c7bd18ded180b6d723a1f5dfedd2b68bf35eae732f57d27b64b47fdc1596b48b7e866e6b6be875f727ceea411314f7166dcf54dbd16e9f4d6a99c08ef62e3222e2c4dd2be0eef8061126279120cea2220bf75d6f38b7655fd7757142ecdeadd0d06dadd9ee76dd1db4e4797c982441f2b01bfb49b7f461efbe3dd2bee1c0706039519e75d77f2131388530e1ee4fe79098bbc3fc1ca2dddd881e52d4233c3c4cbea668c6b2c063b69bf414a91b06b768c6b230e400436870f7227af0f030e1a1be6a90213770770a103184b3a8c8822584132c21a08428bd425610b223e4859ccea2220b9f2d522ba6c2c5a7cadd87ca59546481800eb8bb4b058119ed7dc47e4f90676fcfba5f735b3fc9dbbc6a5ccfaead7adb33f7b7abcefe755b16e96b74603764ff7f53917e1ba96e51cb223dd08eb2dad49fa3bd8b7e808068379c4d7d5d5c90760f0dadedab120de1d8dbfea1db1a8535da2e00fd20eddbcf8de5e141da486e4978789800053dfbc292de55cab61d19bdb820a09f9b3afbd92dcebd6da0b7f97f1e171e8693c2de926c36f5f6bfdbdf7bc9c3dcd9b7fb886d8f6a6cea6c7dd776f62f7b736f41dee6612d0bb404e848dd6d8dfaaefa2900ed2d042829a8c8c3da1d65ddb3dd3eeda6c2da4df4b2db88fd41dab7bd5ba11fa47d03628990806a6231588e1b36db6a4427074c96f33c43b7f56d6c1ee6ba422c6dabef02799b87b9ef6dd36efbc8e661402fcbb6404c58243c3c3f40ae77775bb3895e776dd947dab7220f7b0115b1a92fcb04c8f538d75ddfa6beacabeed67dd787ad40407bb74280beddaf4d75572226ea0bb1bf973c2cc808e7baeabfbbb66f536fecfaae349aba0aadb37de4fe0ea2ddd4a33d93b2bfe65df5936cef4c95e2f33d6e7800e05fec6fd7f5afbb69307c8ca66e173ed613e46ddedd40091e072c96e37960f8edaa3d6ff330dade41dbc5a9b31dd4ee23751301791b188d257ab711006c462f114c09ec9de1dad77d1e184dddaf7b5bdf9b8af43836e9041d3a1eb689de97bdbdfa04a8dd4240336c2375c9db9c3b70e0ee307eee88e2dc31c48ed98d9f3b70eca8c133c523073c12c0c3071e3b3f38f990d14309670f1bf498a287087afcd0c3a8c78fb387aff08115a4ac80b30279fa08e283070f05707787c1172406880ddcbd053f810801e4e80492e3ee2ef8d943e5ee31f8d9b374f62c7177237ef684e9126904ce74480ae3fc21c5ca729e3f6e387fbc70fe387d489d3e74f0a1a48aebfc81160f603149018f94271be021c2e34f8cd071a4c38533e3eebea364e74b80c213277bb742bb9dc1c9c35c97b5fd8b636db847626d3b886d370d3637f6b65d9608e96f296dd3f69ecd70eeff1327357bb7424941ff6e37fd274e5a5688b65d15c948ddadd01327352c11d20c4e1ef6dabb157af67dd7e3963c71e2e25ef5757f6a6ad8f76b8cd8566806270fdb4749fb55672bed66536fab9087d16eec6cbbec2bc4be11db0afdbb2a92bbabe0678e1d678e0ec7951c5b5ddb573dda2e9c398adcdbdb0b1ba0ed28ed76b70b670e25b88ecfbb97e848613dfd606920e7d4a93a759c5e9765e17571414e590da76d249676f369c2210507cd891222387ee0d8c18183c385e3c4d125e1061656dcc072a30977f71b4cb09e60dcdd6f2ca1feb7ecbb48a2ac8e5f80cd56a1b5dd517ec9d4dabe512c91526db8994d9d19ed77fdd7dd436b90a858150dfb387350bc13638211b9aa12a4f304595c1e1ef7c76d6146ae8a5480f366876d697f63ffb68bd4976868257a9b8aa4b6b4db8eb2dba36fdf76dbeeb3eff7fcc6d1d8f76db6b528493dba69b790bb12bdaefb513eb5d9ed5152abaeb35568df76cf9f3656b8ba83d86ce1db86a36da2d992a1db0acb71f71d65b5a5477b1b39614ddc83d8d4f5bded1316c4adc80953c2ddddb57ddded42d2bbd2561c949505774fc14fd815ee3d434da6b0918ab279723a6d86f0c146ca918d1326363c6c70d8d4386b88b8bb6b5bd577d37ef61662f95953e33530ee3558b8bb9bb48b7eb68d26bcdd452d8bf473c46983c9dd1f29a70d27eeb755c84610775ff969a3467d559afa6e231b33ebbbde561b9dbbe3665bcacec2a3b83be8a70a5678cb12bd38550529b52753b93b133f9d58c192010e159a54d080dffcec57b571df6db3a947372ece8633c2cd6e5c9bfdb246bbf5212cdbfebbeebebd2b0cee4e8404dc3d021070f707b8bb03dcbd01eece00775f80bb2bc0dd9b10e0ee0770f721dcdd00ee2e0493bb03e1ee0570f71fdcdd0777efc1dd79707702b8fb92bbefe0ee3a28b93b0eee7e83bbdbd0b9dff041e4aa3b347513fd7bdb9ec3c68abb577172772a3594b320a7ab73f796a66edaabee2a24847371b4ddfe6dbdbdf03ceb10cbc299c2d29902093002dcdd89b36618b711bbe4dd7775d9a34dfb195a6bbbfd1d38dfe35faedbb6c1866e2bedb68f7e076d13b9b8a37f5d5c00dc9d06774f727729ee8ee4ee51dc1de7eeaf27eda28db3b13cfb556d47aad1cdcd916ac4c3d3b2afca83421228c0e0c6ae6ebb9b4861e2aeeebeed2149ef6a53df963d5234db44403c3be1ee333f4f50e2eeee074202f4b4df30b82d2cb7ac1f4c71f798bbfb6059c18212773761c85949fc705b58d06a5bdb974a8d2beece43e3f9e1b1e154a11d640fa92dfbba4d0cddd676bfb7fd84bb0128c715c014389738b97b4bdb507ec7d17edda2196bdbee1ebaa944b3bfed96665b89664fbba97fc432b91549a2a9bbb5a53806d8bbddddaa49bb88b6936c377676c309b92b119387d1f6bbef8d9dbdfbae5f43db5158235114c5f1a6fe6e59a1ddf349bbe893de76a5fd267a692d3bdbedbbeb6f9c4d6d42db49aaaddd5192fc4d7df6fdfdae2dd2a7fb28098b4407d60460b83b941f1c580c966333db347666b36deaccb5497ad7563dbab991b333db3a82683a74e4e8cc663b6663c4ce604138a2774d6a5f771dda6d0d39826835c0dd861c00dc7d8ad7f051aebeee6d259aa94636fb555f1788d1366297ec1b8be4ddae9b0231c219adb7f508126bdb3d2c12b6dd3224f5bce0ee47a9bbb3b75dc43251c22271c1dd6feecec2912434b5878597bddd8cda4df42601725b87d6967d9ada33745b6fab6ab4db6fb711cebdb140dc9645b26d381a6bf4b41bee6f698b9bcdd85bba4659836c5b906a5bd528ea0df7bb55f74a7371463be8a5dd68fb55773bfb1d94e2de5ddd8d83f2b7f5dfedbaea6f2226b74d03db0afd6ed5d75da56c213615076513b92a1177b7b9d7567727daecfbb4ddae3828b7f58f70452c6bdb446fcbbe2a6ddf8656f786bb01b921b1b7a2db0b2f24d6b66737d5a606fd7bc3b1b399fab021d876bdbbb7d06f23d6fd24f5e8d9f793ded5b606a9b722bbc5bd38a1df416fb3ad48b4fdaab4dde25ef536b4ba4f53839ee86dd7a07f6f7b9dddd4bfa9efaa444846ecebe266b0bfa97f5b9fb66bd41da4dade5591de6653679fc2dcbda3a84449aad1bb3b925af6556937d5e8ddf599b82d4c6df7cd6c6df76d0fd5b8fb13772ff253c6c9d06d7d5b36287d186dbf2e4e2592b23fa9658db6910b8e459b241b6dd3d8d96d6f9c4d8de2b6b0a4a01fd7558f66aa50bbdfdb6a0382981d77dfef4dbdad466b3b7357da1b05aa14a8746df1d7891a650ad188080400008000e3130020301c120bc6a3019150cc32c5d60314800a7db65476541e0993308a21639831c81001010000000000800100003dee659c88ea50935af234c823a9da1e864e72ecc15840da257233fd7cb228a9659c5f2543fe486395c0e3e429a21c4d015b9cada0aee6a2db80bc6b16d91cfde9e6eb7bf8a323d20a956db1b25d586f8817a2b569362c518dd49b00bf809913c9629cda23d484c10d3e7e0731da5ee798299816b64663373b8b23e418ba8723f456344f466e8733eb1a6505845c92516be2e61c71562ff65bbd31be594edffc46f3dccd15e94d581af325fb0680bb124c16b9c1e6d3ddca3498f7b86bedfa652ffb2a66a66180fbaa18773a1b7e3f2c450b5aa01dca7d3b175798620e336a28b4064761b64710a7a5bdfc2cc03348d501363df7677fa6f528cd9833a88117f07b1f99568232daae2eb1ac5be00f6b038f8b30d179ed8d61899b985a4f58bba5d21832ba47127f1e84c6c90ee10e45ce044c3aae690a7030b82b06a3c21c12505f76e0fdfe57ed18dbd64d4c6520725ff23933843f5e1cbb3765f79aadfc3057b1c1e3df86c7f974c030479f1caa4159de432bdd2ee776654b923b9397caa1c3f6986f32554c7ca39df1c1ffb7dd97cc9ebd42b559940f0a3253f0cc36acc162e0b7a76d1b008fd1513919f9bd2b9ab7f0265356b6752b56aeb86a697eaaa906297ccc8a8dd76ac76da5be0213ec725c7982c279fdb3c78689899275767d03909dbcd6b01d82d195b170c7aed42998f4c80add58bb3818cb9a713176267292872bccdd77e5f5ded3de368041f8db20c6416e115e436ae296adcd772dded827bc963bc93c87c693dff4b9d1410d4f1819b05f1e8be5f8132918553f48d7376dd97558cdd71baa04d3cda955dc7fd1116cc809e7bf9e037883c98e85d916fd3b0b0686f1ba3a73a342233f86b960c25e052baff81bc8df81613cd31b15def6effeba229b22fa7341ba4e6df23398e24fe998e6dfced01e5933f88b3df6c6fe74981d084ae29b6ea7c514dbfd59a45f41f805320f8ceff3f3bc41d1886b66b29002fb4afa8921119dbb2b5d82e547f0bca6a759e850fd0e636786fe3dc32505ec13425ecc58ecb636cd82b1c3f902ffe77bfc97ca5980bd3beddaffdb1f87ff5efd7c1e1fdf67777e8654ddd2ffe3609dbbc40763321dfac12c1fd8492aea3af5c73a3faaa0e5ab9c9b81971e781e059a1cfbcf532e8d716f9b1f8d331497fc86e81cad2f4ef157dfd436d8c592b0e8e8878c622adb83f8cf6c1ac6089fb2983dfcd2f064b071b47e59b8ced84113dea17036822b852701b2ee7a3121b0039cd8a0c5e3bd04fafaf7cb27fe85848f05b5eb7282a17ea68dc36f60fe13d02254f388bdb9d616b971f87609ff3f5a42f16476afa79129a5078046a0147e5abe8fb3975f123cb3d06e3f4d30cbaaf399a16c9f7549986b04b2af502b0672a0e556545743df84eb23a3a201203cc82c6cb41e8f89a2d57279c740fe7c41270d71233be80c2d0dd964c31eb5782aab4f6c412f6fd0dae16080b37a312dcb342d3c20bc9f323c63b3f21a611a781ed248ac1ca2c425a2e42e9abe961405095d26d293fc922fd7f791794678f09adf8c99327ce45bd246dea58db11e70154186011aa731af1ddac94ae8d792dfc254a50d90229f844790143a5cbd89023e56b6ef6724444b0d9a9b1f8893de2df431d256b80a36885973ba2f085273d000b004635e6c249e41f7ace9a6b5a84c4fa1ea3829b7b3d3e229e542df8e497f72cc364e2936eb0a1204b9d2dc943e2bae0a146d5760ce5934262c070730da99236d2f254e12d1f5565040e11a81fc302ccc05f667e375328a3e523709c5bbf62eddd11f233d71032e7f55296ba12f75dac75afa9fd3fe56d39daa76ba3b6837cfcade97ff09c5293d06dfe8773b3bf3f2b722152c673b30a6dab6f7cb5f9c1f144feceac9e4a6b6f87689d7db0186fc60bacca0e8103c9cd7b0b35546e922d96f21ebac0cf301827ec1ce727d8d88cb57149736b52e45ffe72c7782e55e2f9cd73560cbb98420f7f189e999e7b70516a45f07402f64d10ae4bd3f33a26fb25de8324a8486749f00637970240bcac1e7fdb013ff023bc8a0d96e547c32f37184d78ffa65f18670c45b3bb1961ff0c162fb173ec3e7c515dd1b49692891d629b1cb6b80cf04f7af550c8c6b9cbd062f39b644c54694e776c4f498c52617f67dc032c1255d2d5db085493c835112b4063af28aa38ed6c33992b09bbf5db5ecce8c55e309d34140ec63be717b7cef76ea7d02873303f8fdc2aecfe54da9f8c81269e9c38289fe9c5f9fa78fcd3b2dd60ff4d519059f8be609d5424f4d693d04148e6783d12d04a541f88948f1e6a5a36e8e9d521a69aca400fd24c0b447faa8f8e64b991f0ce3cca56c2e9ea2149c391ee0e94dfe8584866e234f144c0bc0b877a43f4e97f0079111efc429fa32aacec80bd5f762a3a1f8b2542e02e359085ebcdf388a573a6aed81e0d6d38a8f52e482f48886f4f09c711a6bfa4b2af3113d1c05206fff676ab1374818b7b322e02684b1078ed727be6b034bd721354485012aebf4d42218aed64c9c6c7b25a4298422fcbc511033313ce892664d00fd681a1b2ab173a61932ad7ad73756f31b66bb026bab7cf951e21b5fef88c7ffe408eee378c0837a4fada67934cd77d3f0b0597cfbfed4e1486559eec319e04160092c9cedbb5de8c663a046a31377f9b91701cff27f38307fb0af10303c5ac18941e6ddbe92e3c422af19459e5bb554c4ea22403b125020e48245b592a0f34af982f0bfaa85dac8d1a5b26282fc39a7238e2b5fb923eacd0522437dd6cbcbecb896fca9bdddf2f5825952d2819efd9faa2bbb9ac17da3410844ee9676c00e2ea456ce382c2c52ca45ef39e7c184bf7e78e3b641e259237233ca656cff146ed47be6cbb332dbc1041f406958bfef19e2c03334f88d01765ceebe464cf499100ec32aa49fb746d1ef47a56f615293cca2e83ee0b40813e90ed314615813e04d5b413453e3bb4d6f0e96db7321007382a783848bd35dc03641a6a98a37ed339f66b3ea91e3124fc4eebe33275b1f49daeaa4c82b277ee3a05f8cb02c85ebae119635724449dc623cb942bc7b52290ff9e8a5802d0af953eac1e588f1872b4cd48b1b7f214ae327961f55d99194855d809b86d54aff887b310d16f319dff13ef9422c93a83b4df5b684c202d62465630415c4b1282b91c996a9c58f66a82ef141ba5be676c8fa6d2940bca0a9f5b64c88f4a86e8821010dff849b28005a7d98f22da722e850ed1676d938d511c7e3597c57b3451178979690a4360c6180385334802d5c3a8a7d515c9557b3cfb4ce03b5416a9d645708563dcd3019195afa3cbc10d1b1cd0a8af5fc5e782d8cf29ed41245784017b83de0cec943ae13cf2ffa4e58f2d91bc5525da8865f2357614e693e200e3e74ce65fb3d7adb7349a1e335f9b74a972e3f8e95e4752a0be813fa85b8a831b9e3ba1c713a5239c437be67d81ab50cecf2c265ab1904e98e0a8b0db0fcc96c5fd14c63445d723d7f5a86f81295bc8ba4af72f77b4b73bf82ed67e2c0e8613563f62673f02f47c2f53fca2d70aed07c3aa58f6c373a575aaeef6e4a7e4ae9cff0f7617a7d957273db092199f20dde3efa0d3e4e77a7c7f85a025b1c301f706b1b329cb277ed85767ce3fd2ee00634e6cb991226a8981d93ac2bc6fee57abf4469d1ea1b145368d374d9bf98f955e0d69013f7abdf2c893cc41f4a0ae552eaf462c845e1117fb6dc52f399f854d256016e1d0d30fd80349557787f865cd98f2145c6eddd44aa0ca4a05bc7be4ff304538f6368a89e0c37c7cc00dbf3b29040c026a214767d703a85f38ee0723af83a383aea174aebc0f465f60738ddf8db9f6f929fd39cd19c92dc39b7417a744f17f6eb204280bbd3d6dbd4a77e6972b8fd083f7433dfdd88c517f7804757836b6bdbaf6f79071c6957688a11133e77330009c005244a55ce01cebc762c5000879e0a0174c3f0cb7912e52012c3a47db9cd60d46f429e0ef2f8f06f1418b8dfaa1c300657b4739b191137884a747f1c2de28929442c0bd00ea01019d48c0c4206721bf4ec62dfe8984be7ae083b98fac770ff5d196ac6d0981f971acae20aaf701f099e3ea1eaf4a447a7c4270d10ebb5b5bb025e66fa18a03347ba815ee2d08903fdee986cf26717be0af556057050d75b50597d9dcdf83cdf9872f408f5b0f3f7c36fd5c0541ad3700f3b663711ff0b605b56fd4e36638d9737c47367de37160dbb4c0db5495612c1000c5cb30f551455f0798e0a80b521e13b6c5b268391aa0173e4af67300ba9fe7259c287e0071abb670f6a3e39405b527a05fe3152703bc56f867483fc53aac26d61342ce25d0d54d5e37e20665501b15e1c2a9a6234a091afc2a2d90137ff47f004ccb236a19fd2aafa098dc8fb428390eb72de1cf809ba5952b102da8fdf799dab3ec1e2e556bc0ddd2570e34e4cc0c8a233a4dd043c028b2b77aedd5088bdbde643ed0a7a9fecc105f3ce5843795904d90904edab9e2d2161e82913b9989d94787d060ac68fd9c7cb456013b8bbe3c6536ec1c066edfed0260824db24b7f95174facd2c091b236bd4a4b4e24be872e2d31816ae0863e1234008001b2d55e6cb9a0ee4119ca72a00b28d13afddf06b3095c64cf04697cd6f4da7b15f9a976a5b427996e3cfdec05986faf6778d8b07e282dcf7a047095b4687c63512c80f5adac09c7df83a21f5bd1a96b0d9ccca2ea41bb1b385c4c03c36814127458cb883c6e12d1ca3e7d89da2a6b20b1d1a875fb1c14d0cd7cc0428f8df2fe2da740edaff0dd709e6227ec6f56c45019c0952fe1ff667d877a814f190a58718a81024c90255a7bfc523901646a5088844fc7602249239f3338792c0efd78e1958c580990523f33d73e46f7e6d81c586bb8c1e2b3c2d3b7d1f38c534948125e7262ae3d43ed2ff874373badccb0884c358c356233d02e64381bd310525aed24819fa110466cf98528bdcc6cc95a89a68112e9cab4e6c3e1b7ea2863d5cbf54033e487a19ef50e4db759961487d70af26056e2dd5da35a6c38f6126d8152cd3ac972a1ae5e187a6bdde4ffbd12bf001edb6b9c60f35d7abd6d9ef766b2126abe22a20ecaaba91c83963cef5d84ada73019e157636ae6719ae4d8cdba9bfc27cd4d3475e189a5efdb55140afd6cde6d05d27d1ad8f69f77f00e1ecb0e468b393595f9fa65d0c32ff180f3fa9b29a22d30584c5c2ec53bf39879ae18abf17f0fce605dc7dc211e0e3537b5bf125617d84cbd46fb83870e66bd14eb612571e77d656b4c419e8f83111ffa5344d6e34201e67d5c7f036b9a3e9c80117108e09a5a0415b24ce2d0e68d64dfb172de7228eadcea6871ac36b2368a14d70e80a2b7fb21fcb0f6eab66ddbfea52510bd4266e14f9bd113532259737d0b3763a12a07d7ce077343870d487c347e2ee725ae006f848bbdc97802d1b6bd3e37a5f598b86bfb23098ece99b5c7457a452c8dea85847bfcafb24609d7a04c4623078205d02b5a01ec5e77b26800b2a6c4d866e20ed9ef3b056b566828e9f1096cfd0f345bbb44692a387ab5397b12e9f021a68c6ff08ce02605b93d3c704f9e0bd2e5d43e995918ce42e334c89354cccf6c8b16aa5db64cd7148ed3b80d37dadde538af990111e88330dd502336894f627f18517e6dbcbdc24e9310dce05cff60f97cdade1af7c8b573b5b876fb6c099c03d54a650a71389ac1af355e790187e26fc05e9dd727004d5c4713e9f572ca535cbce12fd2ac733662151a8a1488967df4880e88a8013a6037d9d0ecc5eb7b44b5eb7851d5fd5dcd549efd5d4c38e00093f6d4a5c56d2a6728d5bc3edda377b9fd9997f06dfc93038de7b3412eef2823876b0112b3c0d3871efb8d80b7b58d06f2998807c10568be09c09f49397641a287f1635cda61fab9f7fb937dfb20d4f96431d7609dccb6d9b34a87b4d3c80015f12f0e99fbe729532d9bb8a29f2fff3be092d7a18e8a8f9e28b7c88a60225e983bcf452afcf8f2d442285aecf8c231c802cb2158ee1321e1c3470ccb9ab20d3dbe154e43fd023668e0f9b9928748899fee3e202c7ddf85cef83ac81dbad8659177d3c109f145b7e603f7f734ce949560ad1561745d7d0a7cd350df7d7add93a74a9777e69848e430358bccc6c9e20f9032b838e62f75dd4dc5fa741079d6efd602fdf834e23612b5e4c2341d2a3ddfb62e4ba132aa5e19dde5b3ec0b22b71639f1addce982e2b253759cae3b9b1099d4e8c2ca323f03d670ddf7645a1d374eb98c2fb079d36f865fd1ecaa43be4e18d5a9a65e38b130e55858e8696d73af3224f0acfdffeacdd01b0abba7b03d6fad1087efaa7bc6ebbd933e7c627549ea6d76e55fc2f37c941949c954861bef2acba378b9a0b86f83732bb3402a7ff3cf87ae50063f877c1f5f1f1ff2f2726d4233ed7bf66bbd191de5f6f20e75c5d0e9c66c0958bfdb1f9c865674b6d1c708dc50a4b5759fed9e50740aa862d1344853fd11b24e419dc2df04e3efb1a9a492e7bed18843cf7186674e009b92f9c6e8a9caa6844b5839a196389a6e20ee5b4a44dc6cd9df6f91bab2ee971484392e716a7080b7c467455215b9e50dfb127f2555b90f59191669e12ffd0134d56460628c10f93949742d5b15f138b49ef24b94f037e5bc5c6c191eb38a29adba797d1fb5552619be5f8c3e80e84b330c09b5701b8fa491895c1882877fe8b911f94ed237167eb18b941ad7fa40f99af89ef561fd08f3dccde062171aca7dd20e7dac5d257bb1d4ce91f00e80217074c44cfe9bdb5ba6112b39efd81a7d0f3ff9deced98f727f65bb07d1ebcd94fd37b2fafc6334428bf259dfbe588a31060191f8200ec8738943e54296ffa2f50ff0362bce10eb998c7a2ca3727ee8a752de0876c3e177cce0b5ec3a57704b78bb3311f06a2a39e36ef41c299c4120df1e0c6c5c6cf5b58d678013b583fa5ad9e89384b61f629a34067338daef057366c84bed6df28355f46698109ff9459ebb073b909227278018f0db33ce74a2b34bc5f8a570dedb27a0f9fc32b39f44a5eb3f5f35f4ad8bbf46b61fc0a2c20c5065fc6b036a79a4c77f17c19bdab6c7a779d899ba00530c95b2dd2b21e461b7756d4d7887c6c3a58b4adf2e1a2a7eecbbfbbc8a83ba87d3681dd93ecf7a5e09f3830106a08020d614ca21cecd920b3bb223cd24332e60033530839e5bad2ac433ae6b8076590a38af943698d396d8a5d196170ad55ec8c096ec54bb2aab37830441655674a44d004a3d7d80693000880d40361adf359150a4a972f1c784977f109b973d29e224d2dddf429945e2e0048c2ed5ca4314b53427a2e828d9edf4bc2f1476a31b5e137486228f9440ffd7ef2cae308e9a1cd9456e134c03735cf795a81a532410fcdb8579639fe02ba9f58712eec0f9cd835b7ed4500a55766ec26af5243227dfba01a8c05d7e19c453ed8b0b4551487f15efe583bdcbc66b6ac7968ae519136e571b7b7e568bb21b33f8d8cdcad063be073d7a51cce460bf7277b6bd163cea71db7f98e58a67b589986bfd7288a24452d7e80a8a19915e572632f7b438547fc0757725e3942a9794456d401b7a92bf88bedc4ff32f732fb94bf3a9cdc78e4ffd6066cbc05fc325e0ddcae5ccab556f7720ffa8e3df6da5345a0dd14f3c3d01ddc2123e1a0b3e771f1f1b8b6e8d5291a67cc7e8bed7951820989197ca777a2b7b0daa06bc6fa42e2009642da0fc5aa1463dafda6e62084164b12f67a03afffa612b999335c2d48621fb5d14f7cdaf8b352cb3467e3fb0cdb17fc52586fc7ac1de332d322ee60887d671b7d40a4d70e583eff3be14593a60767cf0409bd08048a624a274e64540a49a585a1ef969171abfde5e0b876ff34a0bb23d8ed9f0756f0f9fd6380f1ff38422fd57b8379e0c1d5d724e54703b2ad3d474b3b8f351858dab27759bf4074ad1dca21d4865f4503915f2b07a307cbb8f3619d7183b46c6d6d409fa1292737f022ccf737bf80def42eabd48918b9436c40a4ce9f33901c25cb2417ee75ee1042b7de7f6afaadb174d9e548dce53b1e4482645e1fcc2bf0478776f4452fe270fe330184a3dc3824d9c17314c103ba3ac49d528f959d6c3704e51d77b9b71a0dca88efdbafe8d8496f5410ed179ad60f38fd5f80f087450deb331405ea3b89bde2227fbf7455992e766cef84438d2b00efead5d539242712eb392ef0e0705091e62fe2b02bfd79d21ecfd5084d60cd81be131ef6c71582b66c85d22dc7444307fd37346d719dfc7d5a731d4cabfc25a95d67a471d6cfaf2a470171bcb7b5d5e812cd0cff52af70d307165cb2f48e4d9d9743b9dc02adb2234efe6f545b226cfb3a7476aed8890aa7c6ffc48dd902b90faebfa4931b483ce7dd96edf5e6e572b4fee733c44f7aa0f7a21a5c9d56fab57cd83a2610b602157ffe346f94aefc6c423aa7d1177329522ec4adbf5aba63830c1784fe17a82395bc486dee591a5c3218b175e02f13dc67016f79d7713ff93d5bff2f28c461c15b3df49b1432bed704a402327f011406950c0e6d2574af311b907f1bcc422f9d0b57fa9dbe4f38decccbce8af0d977db7f494970f6694c64762909214df537b2f4c15aaadc9c95252514555030415308ccc5a4e3e85370523120088baca44f40ef9a5aeb96b1a4f8f95d2922f37cd6b7354aa7338d5bfcf974daa9929d4b590cca9e8e4cc7d6306529ed6f6650eef868464274266d68610c7f7c19c1e2c32a6d29e0d64fd470a811103a13c3bd25bdc2d3524cccc3d9a7117a23e2e8f6b3b1037ad92038809e1ed76a5aeff303b564f6b082d0ccddca1038b8e2e54656557a5d69dc3dbac121af57c8ab86986672954404e1e7a9dfe868d0cde77802811aee1b875f8664bb175cfd6616dab45af9a5365f534ac2ba352c592d3781333cc4338d19945978ed997b4481b4fe0db6fdbf35d17e0271dfe02d49fda7031c356648f73a6e9049cb1e00f3e74e8444df7ae1670271f9f0b7ba3452a002f461f1186f12eb68a883c94ee4ca1e32c6c12a833eae0321eb44ed38859a156779df0d335f6376c789bec65c7ef860a54be6d5d1517c6b14db619fcf964aabfa2a4d5426128a1562298345f239e866f08ea402bc3f42911d17aa94a334acb12718e3b8e982e4bd9e7d1251932fd993751d5072fb3ca51fb81b426140a3de63f8ec6ea79038eeef44107bd96b7a2af2277a1577ce492d62b3b85fa38ec86cf2e1f2c80a368ce111c49b2dc510b65b89a82650715a88249ea921bf562e105aeec9d5e9dc752d74ee65f1811e53f54844a30c4a68f1398262f9954481dad5cc8490ffde38225fe21ff73955a8da61b86add6d135048ce9247199579301a9dbbd302996957c2f68d39a9172ad648ba43019bfc406248d50f51b529345015742fc45ca04ca557333a3d66c33ccc30fac0e025528f43d98f7fb37d744521e63f2f3cba1383882d0a39b62faadd62ab1884718f666df22bb65165d14882a42f40d42c1488e1be461e9e7e1866eed006a6be42748ae25147f1484e11c7e4a2a06a57d8b272241f1a525f50c8a1e47664fa7d1216921aa797a36418f4ab32e28519d51a9b05ff72e719e5a0e53426d784550dca2061238dc6365ab61ae40de57e8985d6e6bf62cbe3818087aa13f74640f73848f03e75c73851db1b7f0f6beda5b0567ad9c8bb55bdf76d3890c3c36fc4279d8cffe09711b43a3dd09390341e5ababa233711455ad194ca375c238b0c916d62378247768a7fc6c8e1f4f5978b630541793aae134c6daa511f5de419042dd0f5dd3a25583ebafe511eb2d1e5bc3d4a9d1b1fe550b82bafa0e01d9166f743dce8d5400c0003f8267bc02a28a56d23299d5fd32984247768864eec2866cd6d3b87a50b6cdcdc61fbd2e1e6bdb8fd148dbfa3ecd1c7364938f27b7195b5e04d6643bc41138a5fae7edbaac986fc43c8190c728e4a1bbc0fed7d1e428783be1920c182bb170c7051ec5790ba12950d76d7210b35fbd86f443625e387adc151464818c624f4bcc720eb097f947aaf661713615d04fd23c171543c25fb234069405e7417ddaa416ca11c153df0abdbeb0d0e72cd0747b29377fe4af63e474b0c20f696c936713a0a06eb0f9f038ea2831f700a7029be943a2270db52b699fbfa45f2d2e41e6ba2d59502f62be77117960a66c4c5eb78bb4f78afda5cf1e6b33c8cf91036b90d90b6ce87f1b64605cc0f130e9123a0dbbbdb40b130e10ac573da971e62f8a1625b90e2c4d78f95ba39aa5e4e1df7c4cd97c2c19d36f2a7ac67351277424a3ba81446e0f4315dd7b32392982da8779537e881fa6849ddcbce28de7e1af2c1d27e64bad0b425231ba72d793613a1e035e789148665497e2d5b88de59c4eecc25378d93dcd9c4630c34d1592b646d1ef90b5d664327b2bd3e0f0ca02ca6028856a6499337e4601d8750329404327f90ac117443d96ae790b412665394d5997882c644a7b39508397f5a8729a1fb3ed95ef8d35869ab4524119fffb9b0e104cff0a1476d8fa7935120de9371567b620b0bab42ff09ee129ed8984467f1f4ede7035548abb3c73408151ceb7e01b02fd7b2abf30e9dad9410df3f61682b861d6dbef143f8e23d4a19341f6e313ee3e12fbdc27670d6d2b340a54bafe29850c64f0281178e0c43d6d2c2f43d804caae436e2a81b802ecaafc97895d507fe5f927ee029d86617ff324a8b7fa30eace50caf3584dcc8548a96b0b1e7443a7cc11c50acfdb3c3983d38bc6b9b205f869cf7697422cf61659e4a99f8fb7bd8a58e17a7769091fa3223181464f102fa42996b305873a835dd177a5998910a8f8eb4eb66919fa5c776a20f770d51c6fa8563451ce8b5a0ecbe31b35c2135a1861dcd13361157938080646cb3f39abafb1fc24258b0cd2258c308b5ad18a1c49349fc0b84d3de8dda969ab55aed705d04bf4fbe392972edc2b003cb72e8a7cf1d760f8f6c4f91ed399fadd87e1741febccde2a6e52c34371e84c706a6483282c8f069e6d95bdda9b66212b2152c872b09158dbebd0985646220e69346f308c9c5e1f210b97bfabec3c4c7a8b921442b091a41fa2e4be4e81c2b05d6e073db38b03559634e891621b65d2c5b88121d3e819944038ec759023f869730e5001360311c8158082e0116c34b98728009108e82002e092cc24b31658049208c82105c022c869730e5085c119162a55826d6f8e395d3e40de374621a7258c94d6f6637fec13ff807ffe03366e30095bcd377fe1fdb847c4b28b2dd177ab7d84da89938813e70e7e3e8c69ce798b5e77df2063d87d905ce39c7987bcf79f20fa80e22c45a319958c30f2ba176fee3f739612fad510ca2c61423e15ea8bbab0038849bda509e74a30f561cebc77ee9d15f72f42f7f777770f7e66e4e1e32f96315494daefff985ee8937fa6065f76c92e3dc73ecbaf73efd071fc3dc05c69cd398b5e77af20654fda8b0560c26d7e8c395d27efead26ec2f4018693b5f1ab271aeb933db6eb3850ee32a164a8cfea546f76e5afb63d6f4304c949f497ea824e1f3d935e527e118a8220668e45c39364ad3179d6538455a3fd6936ef071a5f7c46fbecb074b49ab72a81a55cac1bf530b5731f8c92c9936f4a0121b79640574b31ff6c37ed80ffb570cb2a644ca5067d34c1795840a38508958ec05360f1008818a094955409cc82996936ce051a5b63db5ada1ed053840b766292519e2cc2d8be9160ba8318e62a1d4e85e7a74cf265f3f31028917c2038e6f7df27aa20bf813983e0140e7f3fbfedfe8e9624a049a3c55bad5321e9cbaa13c71a30f571c7b4c202d676f54b486dd8ffad17c94df28590f56653847408cf65bc29fd3ea5b3462936ef6c72556b178ce1697ebb1a31e7b26a03efb7195d5b86e80c483298f507a742e253a29441eeb06a40f5fb8b6dd479ecc7e8a43a600ad9f9365e4f939c42ace938f2304baa19392bdcd51bf92cb4bdc40694bb40efa3195385e091939447a34232b12f8d608616f5640486af48f04b2ae0f723dc85b1012589929147d386a02fd065a8a88bd4247e0c4e2e2cfb08fdcd3ff87057852ecee22136dd8229119885c58174377a339c43d0a6d47e6ae0c293f1c96ca61b7430daff4113a8ef95e490809935db29f948d1256c97ea189d20a8c654b3bc6d84bfecae4a7e305f2e5e197948de7d8dcbbf00134e8347195436cd87dcba40021214a84339689d189392354d05d928465a422e3a4f4016ce3c1d6a7c4398214737c436a85668511c34c2cb9fc68d9a5f5b43261344b49568fa946741af81f9d1d8e65b892ed69f4566168606763a40d626a5283c1538d708bcf488cb4d282e7ac64c3568cb47d3204e1552362eb5756227b5e57f7afc7acb35cf987bc5ae567a8a634676cf2734a9345e35559fd77fe47547609d492697e73b9247550faa13c68915b7f9a9d677e6ea01ab27f63fd9e56ef5fcc0e6fa0217524d7dc63502e270092ecc701d397d1a8ddd8ffa923423617ade81d16132ccc5a84063d331def58537e5543df3f8297218578c6a1c2ffd1c150620bf7b1b6bc842a3c43083d5540f4ec657727c4b8e1dd52dfd9df258138a9cae8f8abbb46ac438f0e407bc484539059e5ffde07cca26b604ba0955c9fd5c7a8e9e2fe200a2ddbdb95d117e2873cc86bf901c0f69127b3d5672815b115a67f90244f1dea630c98dcc8a9a84c6122c1bd89711f5016053d6781dce084265f8bfe0c66d1e3cb49d88cb53a333efd97454b3b2906d7e13af82d04aa1d64853748b15cc16f8c3700d18c433f2c06effbfaf1e658ad1b80745cf6e3b29156b6523c14f594379b6713a24c08ba0148d32762b0ced3cde3d983cb77b754795aa6dc87e69da69ba9da00a407063445483497ddd99a3d6c1d99159a40eaaf30f5748af43176e8632943fd5f47226d836403bb7b308fdb9ec40f506ed321b49254ee9400383ac98aeedfbea89475c6243856de277981a24bfe10403a65bb2fa7dd679743e23de44189133143c8028836d1f5079d5822a6c838b7c69f49a5ddead98abe7efebb4494b0287abf1b22d9d1b033e14e49d6bff61e47c123bf0f24e90d2dc30459acdc532de191062cb56cc98292028733103d60c170fc2c8fe7c91085e8040515e0f8b11c38f70adc55255230dacc5e80dbddf876bd1540e5434883652fe2eb550f898de6b8af1a2edae8e6dae87adee8ca6151db6e72a38da92b3fdea78ec22a9e601205adf6487db53a2707bb7972c9bceacfe48c4271650c2f59089d33a3e157e133ba160423fe6be49b9080c1ac5d784930bcdbde115d9624b0d67f0680184967ea0ae3087aad5f318ba6bb85be89aaf2185517f696450f16e3ca310b6843a21714df01abc1e329acf2cfc4bf53bbf324acc8a4941f6db43b5a7d3446a495af8fbe7ee6bd797818fe14984294f7f1565cbabfe2de2605639f884c8e0509df674115de1922690742054f3a23e908c5b4ae8224b50649b2b28592f4e4d864a5e698a499eebb2a34709262d435db68b487bbcaf39c0f33f36c50891ff8514552950ff6707a60be14498124d8789893215da9007011f02315d6469384a9b8d1fe61280780a2207129a61722e364d3085f0dc9314048fe888e291ab1985a5b6c7a30cec7955439525c806dc91ccee548499658ca1dcfee92d430ab1bebf5f164eeee3223fdd05040849bf5036493a665c2bd297c3139a619efaed980e54ee160ffadfc1c889c2614e3204e168ef41161bb6f0b4696d5c46922234c42cc47cb141299a2c4628a3b69658aaea9e1c3453b99361918d36b2052fe29f1c316d4a3f3ba55bd1759534676f893aad68e5c49f1d429064626e727737af00f6a9c2d49b672aaf48397ba599dd39d5ff1320fe772cfd8356c7d55faaa57aff630eda0611cb248f0506de7a81b9c23c20e95ee0c323142814b2cf9dafc2c8f6d56362d3ee29fe903dcf10b489817ce891ff822864110e647873e5dbaafe23705356cfdf79606da9b85070a6eecafc2b9be6e2d0d9c09a1cebd93f6153791556ffa32edd235b822222c68adfe87ae522b3196422ecfd9dd49ee1094670055a161d89976e91b7718fccb161e3aba23116eaa5eb9947494a7a6a2eb685c6630a84ba9612028898ba2542ecf8bfc4d248556de390ec9cc08755cf05e76686646a8db6809669ec0ced2405d529f7a1fd7ba236d51139f2c19231e46651f9d1cbc51a8509585573891b49b998cdb8e5343fcd6f60dbc6269618003b80ca66d57289269ede86e83b6c0bae2145677eff1ce86c56eb50bac56fbd473cbad2320a43a6ec1c26bfd0a1c74f1d772310d9c111831ac75e285b1c45c6bc73870f1fa5ea4f32c58c5c2bd181a7ea144951b08d79349c040fa9501743b9e88a10b3a4ddce02020fdcaa141db9db2ed7a585febcb01fa8aa7b567cb165eb9e8c9a388bed88f75e9880a5753dc69454e3420eba6bd863f6045f26b91c86b0d615fd1d06fdb75d4dcb6d97c0ccb54d23c50e257ccf9ced592b8d712b86128b57794273112c95c1729176c333c3276a2625af7d9c5960c97ee244013c0aff1effd118d333e7fb112e8da9fa8a5945f9d5d30d80280c8610722ed1b503ab25f60ffd5748a0358456f49bd5e8e6bc540ca099c301f8960c8801248876fe8c2a4e604037521b3f0bf600a6b57e2d872bce921584d3b1b2d09e4488885315c6fa6f6e1f7314bda0e91e4484bea4a4c6299c2e673005b43252151f3dad3ec096d5646555e55ba43680f38ff02f0dc17a8bdb98809fbc0ea65c4ae81ef7e71dac4324a826a5baa8cb79de68ceeb3db8f55e14f35efb4e53c2e7da043066021c579e638833882ade1aa25afcbf6d829f87d0b29c692aeadafa3774d2e4cb680b46e2ed1922a760f9e4588c44bb5444123a5242a49060a97777302317e5d28333958dcc2e90a3480099a952c594eaabc6c55b822e6428d58317b25dc4c50a4e8959e67d0c53c36c94f765b85c3007039309704cc4d2751e8bc3d4f14eb3512897db0242cda521c396819f2b22b0cf5aaac3462202a06a7c6f8e312553c999ec179d1057f4de1f81d452929f12a5aba5891f64d8dc174166009c1c3a290aa73a416ee9c9613e8156788000aad9c12d7a08cd23ca98d7ea27ae69084417553c858e0a01a3b0f62a521a3baaf7448e4e195866d5d35c7c23832727708e5432dd624eece7bbb47d724c396ffa0ad027ae7e8cbd53b0def6bccdb3b04f3a2b9203f8d55bf66620e4b8d9aca33363d2310636a043e7f6cd9c65025130b5da90c5652898fcf2a30d61d0285acf45d1d4a70a2179659c9a4f8bd4cae64fcefbd44688bcb67c09877d5deb69b23e89b540a393d4ba86fcd2c0355be5d45b9de4aba252b9667687259a70a450ed4c4bba594de20cc726a15e2332aa31e5ddba1b2aa876ecc6c48502a08cba65280c0c37ac49c1ca82c7900be581df2b625464c0eea4901dd7e728cdcc5943a4b09341fbc77902f25c2f13d776db314dceb255d4c86a1862b37c01ae08009e5f95eb610aa4cddc42867b70fce833d55e57563b7f0867688f1d6f3a1f4563fcb8ff8917457e7d17cf45ae7e2ba8aea73c5f688cbf3831ce02287ac2bd196121dda1353d41b1319242c35f8bc485b1bba784d25b417b9b0627252675c1d4ee5124f595622eb5d9136c470c14d908380858f97338fb30e99a1eddaa59842d78d0d01e521b94b0a03d5229ce24e488241805fe7198460c6a689df4ff333babda62312ffa55507b18aa6a0e72d3af3058019c1078d39a8f07dbd104e09a418fe77aeb2f5f7a8352ef260c121f5e0372bc60e1d3b8a2fd992840f5f8ba584b852c7311b6197394978e9c694b29f60a2fbb86f8fcb6dcc200887dbd483c286d7c531dc1d83206a7b75f5194cfd6dafdf9986f4d4b6db5124ba67b67b8cedabe48941563d3fe543f4599cc14cf75bc136b4275614023c78678d58c43319a9788d6bed6ec7461f889a66072dbb031353a059097875cfd561364e933c6db3d8e4c6d2c92c2295d192469b05efd68afbabf1fdc238f7ce295156780c73228117b461bdff1212ce5edbac1779a09d14a8a7da6c1882f3c37f812ea7e4ae4e390cb765aa6ec47618aeb7155dddc283e18628348caf94de880441475d7235e059d150412ad754fdf046bda31e8052f1b30ff37654d1f99a025c3ffcaf3c1af6ae040b1fcb92fcbc35e9a05b64d397183ec5c7c44febe71c96b9682b9ada3cfc80292fca346f904c87cfa9353098ec5bc82e77f7b70c9e166e9811d94531cbdbdc0572cba03164816a215ea6fd28291bd4d69af0ae5c0591f51aa611f135a1bb958547147531f3f7a91e82f4c05a7ac2d432ac6b7153a490c2b7e0899c554178eb113882d495f6adfbe4a3f600b045f79f18345bb9282dba358a0dd6168faa7a9b5ab7141ace4aeb4be6a85a6808686710942452b698c881bf60b130280adb98ed8fae54f4c2205544f242623f70ab469d810e91faf429778da5a3f4865d5e8b0775ca0c59e6970a27f91a15ca3b297ccd1c18d10ba03b2f3a209bdb1e2c45c35c45bc826b29b8ce2c370b4876583810ee479560d1f250bd8f9b8182fb1892d3ed87446412c120f2b94b2f3496e0624e469ba9545cb89e6bc6a599b6a32a66b7feb7562f6923ac5e30b46b260504b44002aabf786ac239d50874480a05c0d24a54ed9b21559a3c8bd20d3a40ec948bd70c19fc52ed4eec6cdea3e47c8b740c5807a9d767394df109c48f60f485f295e49660dbddf1396a57a4d555d44885f69b52f3f673d929bab12b5444cf80bd3dfc173e5fe067c3d913c11d6f4317b27da0a0d31d0f12286929f3fa2728f80ba3c0f46c023dd250f274de56f523a2fe21cb0a0de2a2d89628478ff187908060747978c39b9e64d2865246898bf1eb8cb3170f19f2c60bd269318e741939027bba3351d0f59d065d0ce9fac5a0e9c9f1f4020c4a32e6fb976be9430053f400435085453e992f5198cdd3f1b1a6e7515ecda3eecbbf10e0d60ad8efba699ffc3c067cb3a902c42de72727af65e56c286bc1dcd3ff1aa77b02b553d9d114409c9a35ab8fbd0c70f9270308b0f4d3624cc86f668ba06282d01157458a07b53199e1aa8fb3a8e26e42bffdb957680e5a48feb5894d16ddc843770e2edaab3b9639791fb4a5184872ea698035f25d6a0a0490f41eb827cfdc046b4a5e74997d3becd83cad5ce9cec90f12d10db50ece5759eacad0a8a27ff0ebbb59c9ce8ade7441d409dea800ccc9a9d7e445ed83e288647a04571e08c031994f8cb846611ea90caf4a63fc6f6826cffc8a8e61490af0f6ec96affd9d34ca82932841c9fb653fa97b8a1d0dd25719a5e8aa86bb40d8f0f1c896301ac8c9b8b71e25e67dc84a3120b08267f04947807f6d0dc0768589c06b0245f4f1e7b84e69c52d3655d111b677f1048f2554ff282b61a392cf1fe4e6b0fb28bb57f641d375a71a1a41b6a89c943030615ef89fc1d1d3b62f9b861ff8c807441f10ef459253c7bd0b17de15fa99cc3f694b13f6419a65b921f0d7d74be3fb94997f5b40a6e3537787678c53822347c0bc4367e63e6508117168a18ed70c540e8ea21cbe1cdbc58da4939ab8d658cd7437697418fa223c1b8d91734576722a1be8c99ea0d85b51952c5f4ffa7e90e8419483091b516a58022ab556d2aaf82c7a0336d310307e810c29019ab3f77401083eee45df672d25bf0827bdd230edc777b5c6d17faf84756b9c6e5be41be155c4ffff99c4d14a3f422c220dcdf1319faa296fa6a42395134de2c0b096095839d48dcd62643df62a4c38e1272d1aeeea6c70e5be6b9151e44d4b44e08d0fac26bd2a6403b522de09215d4e6e94b0b11037439f0d5738a68b4fe9434a517b6d179ad9757fa6402d8c37736e0b698a6c1d453aa40776e6ef8453067a0d94a8beceffc9915f4fccf8eddba18ac23587d87be7344f36db2809e8e50fd510856591795b5485d13b37908dc9f262348a565d4454be145e2f35419ac364d6abc3ceadf87ccb510c63296eae9bbe1c09617c2a54ec53674c3c8d82df24b87a07899f06b9a96d2066f3386e84c18d4c46695d9b87f3cb81e89b4be4c9bdaeff9e501b97f101c416498c52a4fb32aff9659e06d18a4c76eb88d58c91c7ce6e8f1d70d7278228887680237a2e5d3c644722c679db34bbdc18905d43d4e3b65e8868b9af1e07fff7c3db7f4cce1f5305b9f5121996c0e3be101d8d170c324b0d308e23f0b9796f5a287cc1231f1bcd43bf240ce7ec0280ae1390b24f56d5b5dc7152c1d31739b17ba18c218b31470f951608d32391c8a96235920841ac7c470731b3eede838930db4d23472cc46bc4a9ec6df3c88ca5df34f2ea5fd158c26a51b1196c04da62c65720cafb9784dee7f4a28dc361b854cbbfda7345642f79aaf81877a874f2e2ac79ace45a626304fee509a8b08f9e9b41b6fba06771d751f5860c61f6e42e4db03fbcc92dd33610646f46f24404520b878970fb2dc34c1594d3757eaefb8bf793ffd900f65c3c0aa2876cca8b050cc203c8484c6c1c6d2f1e9bdba98135c162dadb07548c8812c98f7291140216a64707d41bda31c50b0a406d00f7347b5a24099875c49d3214c65142136c45b4e70ca146086ae2feb0511c26827ac60dd51883cc6155a32c19dfdddd3cf26ffeac57c5a08774b2db39ed0d403142c689a0cd0d67a7378f1f56b256390cf28267c5c5478412de000c34bfc0d24d19009eda74c4934f0a1bc7f17111aea5f754c34e80990c0e0898d336704a125ac253bfc3393cfa492139455222a43baedda2fad6b08fa59dae001fc5e588b53161c73860a1c03668762679a8b174c69056ad4e8387e2063966107ad757530853104f41d8924863a8a891af59f73e53907dfb7e93f47e672efec2b10db5c9acd6ffeb5ca97936a6fffcaf96a36ebffc72986fe35843392771ce45ac39b6b1e3c170cbddce29c262256047070ea14eb350f87588922c2d8525f4b4136dc43c390449a50b950ea9b9f9eb39ad2d46afb9fbf3387026c750f6b141b159036c31a25c206ba59a39e4d2c012a550d2fc5948fdeae2f44f79871d29c0a8bcb5d10cfd085c4f95e7bafa32b3752c011bf18d18080dc4224d3287012f5995b3c19bc204d9e496450b93e1da398789a3a4c2cf7519861cbd1ac827ffe8a79a589cfa93630986e65c7ccb72b26e96b6cdf031002b531966db231376248a75188cbfcddde01e4866c8e7cb56b3fd040c7d32efab9bbbac7e5657f08bbe6d8da8b3c2f3457bfa592393489efdbe3ba6434a2851d7ee3b1094d383fed79353d4c2413e1cf8d94f9ceecd84661bed0d34f1a02893b92fc76d55f2986406cb7c19adf2b9db851ed53745f4f35e7d2018099e0dac5ad54999d2fc1eb381200549ce87cf11d138f22c9d53b5a5e9ef4cdb6472774d5b48bd77ea8926eda6653f447dad7f9472116c3fc71e66c3acfc9871e782351396563e1824b6e19d430388dc0f6b4546fdfd375a8214e8663cc8f1275d394e8de606d6dd26109b56c8b99389049a1bce3355a6778efb74c69921d24cc7a0d2d644767c61dbd5280a6058afc66b0108d07700b208582bcde772e746c4584f20ddd9024236f35fb7f84cc7f894b296a808faeb8c7f286b44ba276204e02b8835109b8ab9df27867dee051a64d5ae54101b777892e2f993e908e72925adde67a5479a14eba3bb5b575a0dc5eea1789688e28607600119cbb5a75f6f4bbb6f0e210bebc2d08e4ba479a6c1e676b454f4a98ee60b001dd9c5c15f864600b780df36b0853bf75766fb5fd01248042272785961208cbaa00389e7382fadc0bd03c72055c603b94ca6a3d7a048ab6be39019000970715c3cea8e9df53ed07e02a8f7aded4fba567f69c240e0841e7a4cde9b0d0c208fbe169bd7bd43195ae564759fa62f75934aa32500c57f60f86f005a17c9ed131910609c59ae8fd5b18b7adbc1e502515b993504c076d7c381da854c1632d001e2f9bc9ed5ab48235ea9668f9687bdb15cf0b306cc73063f14be53d569cb2864875e0d49c911b36660a7e92b2e00702eb896671e259edf27d343528a2ec72e984cc0125e5660c4503d198f7ced2dfded22965e9ebd269a983f349a561b8689a9c6a106ea3441f3f4e80bdc26e33b4c362e98d53de326517425e7fd545798f9306a84a295d789f4f17f7e185043278025415ef127c65357d138ea2eb845780fb1ad2dc87c6f4d84532df98e1022c48f0a4dcaa4bdab7f1fccf2720561bc9fdcbcd75cc86c7614358fdb4e5212fdfd53b19e9ca3a4d391cf516aa4c0653afe1a97e124efc3c1cb327cc5216dc0bb12196cd033dc66754f885b0f50203b42e64b41483e8e63e06f2c6b18fae01cc53ac54e302c303c0a6bc793975ca8125bd525106291a0d88a97fadad7f7d5ffc1ac45a3a8002c04f37ca90361c5381c4517db14c2d659cc847a9b70e74c50a2ea2ffe8bfe498d9c783bdbd1c455788cbedd4b989db71434a88d88bf99fe5bfc0e9d49975373c6f72e2d8a4c1373b6b04d8d8dc45910bd44d2da822ba90ac03a4d14d3f5f070d3061ee5a2fa776f21157ea3b64d20aaccb32dd4f765f4c24a944e38b59c8cb35fdbaf5808b748a9457bf512896b26a3b8054c874a1a4cbf04a3b6ca8531fa67f4d590a0bc8763ef6586348cb3fe3207f11f22be2efe3a6d356e605da2c5dd3ee6e3c8cebdc924cd13647fcadc22511ac55fcc1c7e40143256a1438d91564b52ad8dcfef2ba3e0fd73dc52697eb79a0e29d9555ca1a35c5e5dab94e5ebb2108bd1f161e0999e0fc7d2ca0839b5e5d624ab51226b746bdb95ca4ac0185659fbee64889104ed4d0cbeac0569a23b852989075f14682fa44c0ab94d8e40598862e31ec51493d90fb779618a3915d00b3416a0e684546c8a6d970de28a72c694ef7c5df72c5cc6384f8830fec8d2528486efd0f775867317c41fcd772dc88c6670f4a0709ffc7d76909cd12c1d64c627e470a4c022c9e62b3770f49595cd8326d5c36595417f2631384ba5a3749e843ca81347b8d680fc9a1bccae96da7a51ad7954fd84e0079bbed98b3cd97c048c127afa7db85b631c9f40bd1eb0538f8acd32450d0ada3399f7ba35f4cb773d3a03f3e5bf60c5251de12cf143ac63cb5264b12cdbe956aecac9611e7a3e9a00cad55907891031e701d5224728be7bc629892266d9ddd44ccd0ae0bb06d2b512b31d89a946863066fc5257fa6a80f0cedffdb99b5f1b10da60f031d2c31ff94cb8e1ae1fba5254c2c001d605104c7436999b0124e835fa8c6fc34c6a00665f656979485227a349e4bacd634b5675c22338c9da5e5e057eec3e223a934c4372dc2a30b897451bb271a18f6b87d6d14a2c8a4dccdd289faea89ce412f1593786f505f47c4acf63877369499635670a78d6b78c146891d1ae279c8efc22dca7e94ec2d858149b746eacb0a6ff1a6d0853796e12f6fac49e63cf4958beaffc1fbabf2c54e32200294327178048d82c7553b6c9a5f561ed98154b49ef04c6ef68f0233ac9b5ca2efe6f37403b66fa3c7d56a337f83983eb613b37482cd8eb0ac81e090741bc28250a50072b85575df97804a3d4bc71144d438fe1a960bf27b6e4ad363f90598e4ef5aa4adb4448d4759039b061c55d8d948a4096ab158a94a979a25dfc7254eed41b91919f53a9102e70636364c7f1e70e54210afac629dc90b35c5cf7ea7d73f5be7f1af4a06ab0d35cb0d839ed64f17cda9fc349a2e26b8134ff1803532c280bd9201216b69ccda1f3efc4a90ca64d67698946c0eeaa0bc93e68b53cf7e0d9c247dde999be820451686c91aff34a3d34f9b3a9d4032a41274b2720802efff105f85fc9ada1733891ac422aa018f5050cbb7047559cb7a3cc4f557f740d650ac11fc18b887d651b15a21224abbc91fa3507eeb6d4af5e69425be41829a133dbc671030c9c91d168bb65e146513e1dde1f08022ba33e28a6a1327d98dd63c439b83e9c6a5f44070b64d9bd255869facaef8c0c072c73ee528db37b991be52ebf4b83229b2d471224a3909a6489327e7f9747d26b2433dde34e3dd5245c4315a4f2e0463bb2c5c363a618d0f62531d163c2a0dd77ad02523bc92075b38532aaf0dc9f03eeb265e48b18880fd1ca5da3fd6a85e1507f4dba35dc6f2a009c5ba7031d980434b83493f291aa412cf79d99e1027a7dded0d6522f8e95189f78662ed65998d8c4d706adf6f840534f6c04826ed20aeaf54588391c642503e9073c14f4589d79ed674aea20672627e36139a6488bd3719ae94e68e9fe8b0377e9d673662187807ae4fe1784fc8f5aa23319b1c0f89a250fa735facf027db001e2bc2a84907ac48befe926bebd10111f0a9792228f3283c63b9aebb01debeb4f37279b6bd7d570956dccc4ebeff56cab0204d3945ad58ee0f83cbbb7c74c26d0fff85b5567eb7429f50fa91a9b17b624356beb6de1d41e9b2fd2a088e20d7e8c681d8b656d58bdf22755797d33b653ecd3a1885c30191a5b847b98eb74205c18e39fe2635071db934f10a35886cda7fa8ccd976d2da1df40fd3ee45ae200287669567688bfdcfb057fec8138f407518f9355f3c1a5ddee0f643b40559fae89340f0a59c7bdbc6613412a106d8f2155c1b111bf525ce3048ed8b8ae9b21830fe66cb6964b4e9db0b0424f687ebc066b1728390a8d3fd252ddf3e83a27f40809ea799a4820ae3ca88943015828447a0554806725d83d91496e9efc2e58327e2801f911617f5020c70ff46d93ea45d6b2bf40b0abf1d77971a36fdeb826ac88067036e53912e511c38c0db6be3fe5c95b9665be2cf1de55b4d6aa2a3e676a057c6e14712f278398826cc00c4b0b0b6d3968b18b5278b9b68e6061dcd476d1861f5f7962b224fd6c886999e36eaa9386e7a46aea58190e467503dd34f116636ec1f3df852fcf463138ac66ca0c6e4a73a73404e50c69705634997ede811476d35901bfbab1640829b3aa9f8f47e66c4a27167cc7840759dbbc9b149d454de5eaa97ef818d5ac3f15fe98ee411cda9afb0c3490fd90c40b37daa3541941c281b00d8d5e061b0940462d89d64219c960ae9f6d9f60e3a40ba4e8c695e485bf915ff207c5414bfeaa6044d8006370fc8832d0d80d80aa343676c60495a2996b7ce16e1feefc373ee235650476c7eb5d33a19abbf61d9d48ef2423da0274d7faf1287dc93ab1f28c53341e1fdad31528a474eb5c53d5d04b5b401f0625349e02d40a81099778de2f3e96c875119df3c9435d3cf5dcd19d7d35751915df0f4e8bc03c63c43c80383fff46275cea15c1d7f03f46faa19b5528262b6a37bc1b2c9f316cf38cea4a45cd5f42c21db345dee2d32b63eeebd9055fb647c212960928f7a84201b245e58e3eb5111d090ca7096d0cf29b1dde5a8cfec6fac66113214b02237e7c914b9fdc9e74e21e9841d7d6f8542ed010cb48cd080d9a5268a849a0ca41c98aa4478b09f6435abc46c608760288bce5ef28e5dc0c9c12abe616d1d9d0e7e2b9877fd43a1eb73985743645381f8fbf6748888ffdd2d6177f1af64a6375e9fe7dfadb358774005f2dd0c2fc4c25a9aa5fe7294cbae508572a2a389a59afe0cbab987e0f06a2b5717ef9d6325dcddd27434c06feac91507d3cfcb9e37f5d686767ec846f0df479aa0825ff5f58e063a09fcf1fcf897c53309719866d5501746eec85eaf7397e90d0487e37bbeffa517ac92ef93e392c02893ab0b011a96106fe3ae29840ba1b65dc7378c27253bc6d4be69062ca6f44e5058abf1309b8cf43d2cc8e79f1a459c93af05d6025e1fd1a02afacd1951735a249d622f68f28655cd15e87071355b0c2ed274e8b4ddae7772fd8a42f0b26c42677cbea6d315cfb68c1405f54dcc738aff8cb43d800f42a431ba609be825d81974da239faf29a461cff32491b40404776e5f5bdac47c4aea82fc77c9bee61dfc4e315b090ed64a7ff0147c9d01d4fd436d70887078b24bcb507c9adb1cff96112aacfa10ef82933fe5b8da8fd04f7b20b3af2f7458f29e6b9eba7e05b7662d3e1a90cd81ea624320d72253720fdaba563b641f92701aab7ccbba563d53e5bd272949a8360a2cbfe526d20f9c045cf5483d6224c3a9bae0a59ef83c8c694936af8027bab6ebcff742c8025e156901a31a9ca277cfb54695ab4a3d176fa4e7fe7dddb1c8ef21353b87aef16a529f9ef95763effebde676902078eeee937e5647a4b4853cebdfc45b25af9a60bceea2ffaa77b4ef41ba76a528db5eda48eba3985ee938c7df7d768e9f438f76d7b1a39f549969a47eaa577ccf393a59d4976e33b3f866c8d51286b3a32b3995438adf739052746a2c18c14b11b9e63768c72cba3ef799b89493ed5f4595b647764db93ab6510ffba414405db1de0923cbca7d36b93ff1dd60968ac0dadaf1717688cab0e9870d5ce86ff583fabd36059975491de496b67935d2427777f83c3a15682a68dd5ada4c7a486acc7054b180b0505d84cb3643f50b11a4aa2fd9ea2cf3b8d9da2cd8109c7200f6a8427839f4e9f3930f7a698b27155b92bd4386e1b0aa70dfada447e5f944ace184ea5aa3094ef0c63c45b0fb69fd62c5e2c930488b6cc687edfbce673e23980674cb44d07d6710e04d5e288fd489b838098c5966d69012e79bee5106639785aac11c5c34c727187cdae0aab21935417bb16d51ab838ef42a9e5a9d9bc588cd71e11a183eaef060512f92438a58ed4b09ab9e6884593876036b2c1d6edd728e81aa6649ccc343f51ee5dad87974ab6b67b7131bd5b89256a452e020f7bb5339b24ca2defe2d1aebefaff19fdb3a1080f122ae1713d5384a3ad2ab885dbfcff94d1c36466459db8078cec98da8b28699f867f29a28b8d05a20add910385404259350cbbdc9975eaa984766dcc5e12c09fd5f0be747c16ade460e732e5cf575d354b2d2d47674b487f04c7d59ca8ade7ead042ddb435ba50dbcf73bf67ca9a5c752275aadc9757b8ec9d40d52447cb6615bcd158cdf26b7f02a15128f75b587eda101f4467e13663c01cd058fde644a9da71c9467f9c3d6f7045d8e5ab4c4187cd007acd29644707f25a7b327fd7999895f60612332f16acfcf35df3588d3866d3d3cffe57171c7ccc7e45a0edfcbcf68998b575d794d8e989c7559828e86a75304384a636b123ca0aa73e32079567b4df4b4c8499b789caaada59abd553e507c3301a18428e4697ddefcbcc77b10771d62b91ccab555dbbd9fe46545c86a91880950627db6fb060e9bebe9fb3068b0156679255b31b53342fd9ccc6b3bca2d4ea85ae119c6a75497dc68ac3160551b8209406bdb3aa4597c03e0a9a6eee4da6577f102c74a224dd8ef13f4140f3b1b688afd1277f1a73b072343d168febf0b87c9922fd19c4c753885b8f19b25266f83c77e533b137843d89f7819140dbdae70ccfe7f9491e8f9bbfb5450e2eee4b3da5560f2bc607306630f622917cb96538d8659121b2d3b1de97836a98758dff910799e9e343f67b42914d7a630347ff09c70f5293148c000606de126787546e459e78574785392de8245ede4d1de3a9be8877f2dd023271a2b6a97593fc2509f086de9873764c6cc60fb632f1f4a9e46c252b031137168f13be6294b391c9482d9a20e5598f67d365faef4cbde441ea747a4bf7291cf7e00dc774e7248fb4f5ec15add70c752c68d4036b8a9328e4bb817a031023db7770baea8b13d12101a41bd5df9e1a321d181e6360c426629d8e91c815a98844714eb7978a745f130480d416088bac7155cc7285b707f3c33d1278b3c89e43d3f980f732f337f224dbd3e9d07907c84c959c8db55565eac55d8139fa98c4bd431161f9cfa544b8fd92164c198303051e783ae3d77ca51b9fa4018ee9663fd3bee4041c2d015354f92edd8242bb5ac7ea2513898912d434b106c5697dcdfb414e0a0ceec1227d6c841c3a7e491e4a75994e6ed403ff50b6e7f9d79995261c2becc4af34caded1a0261c7664cfa87366b31757585754094031cc22f53c58c80219354bb8ee11170c8742985c0209b10ffb988ec48833761c29436ec6b5f1068e836bb7f89c8e9d2e6e128b5526bb7ec26fd003fba82d415101099daee511721f3b16941631da01d1113607f9a848dd0df533c112a1cb6c51debe0dfc45fa5a40b27b20a18ca0b9208040b3e4053e60bcbc9bb0cd33bd257a4defbe214ebf8da15367ad88885c0d321e9012ebcf0fb57176dd2e147f2d995e2e26ee420f26d837d5250dc2b74f716756116c0c8d1953a43b343d9a3635cc7c3208a53703e0713cd81a61fb5218184665b3305513735e9dc5e732f19fa0a72f146088ccd6efed2c34ca6879791ecfd8f5a47f048e1517f5b96e651cee3d84c53bfb10c1f661063f0699a39e19f4c9467b79560b59a1a6fd678dbecd2afb2157f7dcd0252961d5a602cb44f6186fb54ed9c0ea14c91e3afe4360afcc08452321970acfa659c7b49653c8f8944d09c8814d9ed9a7d38649f44d1545b56677d9970fe4873bc67e9bcf23a1cdb0ffe08ef0b6eb5522c0051cc820ac88311ab1b768517c81393da1acc268458bfd7238d8f5b51825b6209a3c61a8bf6ad053c062bab3001ac8b9d21175b9ac5c86e965965f22748e09df5e46cbace698788277f14cffbe9027d1291ac40f716fade2898ce575ea5e30ae2ba920777a426546872cdfddc1e16d645898d3e18d584c7456fec7b3230f1eba13abf93ea1f8bf64c4c169745442f746e6da4d98d31e3fed45e8764be97234a1224888428ccc81992147b1d06733b4485418e79ccd6b6514b1ea5e10c008d234d7581771e012209d44585f64a4c9b26357c16c0309736d5efcf176465813c803ee71a7b782e6860541fc6f622709dc3ca0dfa7b79fe75da097e96783c465a0d00f32ce51f4928e20bf0d3e047b2f8c6cb1246f3f39e66c6a1b56e913099c42ba75d97a707c17fdaa913a3367af6f6d23efdf6d5bae7bb0dd7089513145f2b9297992da902b994519e45996aeb1b3ce14055cf134e593cf65f5cc1ecebbabf3a07f9421b4885d08f25ea57594f9e37fd5ea7c135701a8145103af15a0620b5f87956d9f322abbdc99a280c5016ad0179c1bc9b6a518705a77cebc1d445ae065108bec7f21ed7baf7c1828abd7917f51f988ae8a5f3bc676ee6155176eb67b0543591762e3bf12d40eeddc4592b686805f839cf3fb05baeebc9e725c98b77cc81e03b9e8c6ebf5287de75cdfa77ce53ffaa3bdbc51250cb2f7eb5c90256ed26c9d2f61dcfe22412786f06fc9cf5bd845376405363b29e4ef1608d22e5066c6642d8240e80e8d8783676754275084f1754e69e897dbdbd6b07d67e9008fdcfc52ceebfdbdaf791743059ac0d24711066d246b324af061bd9cbeabfba61ec3f1f52e107e036b525d2a458ee223877e6d6857081200d60dcc28d688677bb745449155cb0e21c6a2388f4e79c9725770a6dcc9aff51a43241626dc2e7cb030bbd1cc046bb0c95144ab6273951321523e035082ab805d2930ecb76aff81421c20962555a4300507c5898c8680b59fa923b1401a05f46d8c1ccb76d42e3009b951bdbfe1fe3c8057300ff87acf466310f4256dd1d5d0076673f9ab10c402526dd041e28b0075e0048d1bbb116fec3044133041e20c1dfa630bb8c91efa218a01079cba9702cd0deffdd19c37e0880b65a8bbb1f5a4aa0e2b965da0cb8945456286c6f8a3776742562c416ed14ecf46b4a916da22cc25d41a31f3724b4be2cb48fa4aec4720476a6788f001fc98777265e96e1b9ca32dc52f775c5d7f93a0daaf1fd1a170145e6315e73227eb950de493ecbe6f796e5063e4118d348ffa65914c8f36bfe05c44cbfc2164fa6592a8da1cd78beca4371319736e3e9f046cdc2cb6954c23246c73b04e9a8de752212c58b4853c69a26826d7746d8678e028b4e572f74c261dfcd2742cb6ac49098252e3f538f232137e68bcfa7a5d0c9b171f848e4b5738f0e5ea39db3eb14f9365c1689753b9622cb32626fbe2c58e2c3af97e931d1853ada4f36e70231acada9c1c3ffe2a84cecc7f4cf2e9dc4d8d2e12ac4e62e21c9e89b4feb6fee787759bfc55963665a0f0ba30320575299d9002f4eaa4e22a7479a3b9a4d6619511e393a868bc61bb3f650276c77850b00a08d415f5be4fd8d5652f39fcf197caad26694b080e84fe90dbacc68e25ab4b5b5addfb1c18283366aa31edccef878b09d2be99ad87b9b91ea4d02419af1e02d1f29d8fe25e70011dc48dfd27ced842527362614602d4bd6ab948d55591f3359f2531f458113be51507e847813d8c26684ec99e7e960a291c0f4779084ccfc83fbbcf68111c0520c6da1ccee94aad26511834414b67c965d8e92cc647d789c639f7eeab37ad79a9e0997f483e138d4b5b51cacefd0aeb0ce46c874b4a6b631ba96466397a11429c84d3c30a8a9ba43826df808f2f762df306e0b313f638284cb7b905b060e850167a49fdce68a6556ab5f375a561a734713b3c0a987c0d4c86dfeb393425613d604a870b4947e35476f427b57007dc51b3308ba6db38329cb7d2b3adc1b10c943a273a9987d7fd2e50f20fdc549c0707251ca05f1add63d07e50206f5e8126009fe65ca59dbe064e76979fbf0be581901f5fdd5aa0542f0f385040859f8212091e51ab5c3f12c645f58c32a47ca65122788da5e63553610d771a6b5ac9e95f3c59f940148381542755890f8f3474ec6ff1264d2e3758264eef6003e83f1a4fc1f29bf9e907d44b6ee7701c29ee97a90d9a51db1754501fae0c609ac37be51d9809b8c57b0d9214b840c68bee15b8f1e49a3291ff3b7d75790cea545c9a2d4aca94e048ccb61ed30ba1c60b0c6f6558eff4450432f7eb4735a04987b86a2e651e0b2a44ce31fb44ff5ec1359112e61b5d4247f91cc897d6b783a3a83df05bb7ce63cd4eec9db274666688758efdd96731bdd32db2211a39b3d28046207ae24e2d2bee1e81eb7e41f1bdd366445d2101638a704febb7a2c7d9a55b2a26f416569d2a6650f131d8076f4b001affe99398c43a653a3c80d76f7466ccf7c002a99863fcc4e1f0331fef774d471c9f753adeecbb1de551f8ed42ac53fe778fec54641383321f0c4bd9e29d64ab5de04027a04d8ac4745bfbf980bfd8b453c96343c5c6d8c388b49ce7d7a761ba4e01e766ad03bed57e12a7f6dc0c70659fd97e74d0403f23efaeb4c506b5783badf8d5702ecea441eb57141a82d0a98c6d3767cb4d8922f020e4b88ea1e9fbe88e24f41fa5d22ecf4ed84f22d187aae2d8829bc26f6edc8664ad037ecf34efc2d9d57a5d6470d3fd178dedc4a702fe1ef59c0e71e1619fccf72262446696f3faa5cc926230a4be7f89e78522aa060f734a5e538454821bc7e30462f74cf9a3b49f58b90e9759fc82714268302bf6903af54b22a6f7b95100c647f76f05720facb283e68162a8b9e11a9978529255a9aff99ae466c8a93e87c31e072e8de42fe5ca7557db883a2530eef9e614003701ffd01f2c7b7f1a36b97f268da32029c61b44b76e38746ac6e27e1fb0b129fc8f9038a3d0f7f1adf482487393ed983cfb0583c99be0c0b8c40f59abbbc62610d24507e2211b1e2403bdbc7b46380cdbf8bf7085da1e39226e9e8c0ceda2a9f299b4dfc6bf5d080caa3fcac9b9625162c4733c1114a2d77d08ceced6d4779c2b0d7d45aa7e4377ebe8d8a9b345e72eaec93f940b598e1b2b6efc7e231428174e8d673a8fbdd14d65132549b063adf8e6d2fb739798aa9b8a15062dee0f3c5d83c711c102cbb58f11ada90e9c047232892d319b60fa95b368711a4b70e39d9774e48dbd22ba72d6d20f18503c9c26d7f14c257c5675143481887910b5b6751452f6eb89e4895a7b145f3acbde9c109d3c93009e97c9a855987895509bf4119134d7daf174dcb98e5a9aa347e34566a99ecffd46b1d5d93db2c90f787cba9d31b72ccfac4066542367515288a28cb169888e756aa666d6388e4c8c3f978393d0fa485627b99c1400db03c1244a0dd844e690c33d0e006c431bd41633e78ff012e7eb76fc8ff87eb301879c13a5c5243349952c3dc9b83a88e4741be752bb0d34539d18a610fce009ca880aca083110717eec7c0ac4778ce30801948ff17837eb0496e8dc471f984b442f579b3c1fd8636cc75195ce13e26ca087945edf6b0c07f0a86afe0f88b37e6e155e98fb329e94ba6f5164efad425f1f3852638f046e7f69957eb47c02806d2a45307b909fb340d98829e3e1f186da5e20088012daefbba09900713d7043a9a7139e9b1a519274b833b9a1b066a800a92a4f88a866b294678317e3ac056720789782ff0b5b831e94d20cd5f8996fc2df138bd2f07de39e45994fdf4421b41fcc430a16d55ebd11075848629cb657efd1daeb24fc18585f064a943318505fe365df690788f201f4d4ded02915ec92d31a74b3fd7119fe05b13beeee0bc19682448580a10bc3a525431730a83f804ecf15f0e7b5bda5c061b7dcafaf5ed2a23706baca0c31651ab6bf2113c7c64ec88f1492028ecd31a495f6a05408042a1fe710bb6a310841a5cca6c58046a4dc891cfc476e8258073656e851b52654c48c5466663fac37060dd9a882f06003aad6cee3ac650c30be19ffeae0ed4a20ba33cdd04d338c24898f0f6734e096beaa484bc7dd5084f364695248b170a4423c37c4101da122a6f215929be9a00a27cc21762feff9a6edf25a3a8fb872ea23af5908b8220c3e5c2151967681de15a443954f4fbb0e9232c0edeb0d749c0ef353344f0f0ce05042bcb7e0cacc1db925aac07e571f1af9c6586b995142efb710e45073f518bb6f0cba277043c949856846af48b55b1a9c4bd0c0c1cb822e678c4935b5bba5c0b6ac556029570f640aa3caa67ca28cc2a0375fbdd983c831440b87b18f516c18dbf6860fd3f3263c5198bc596a386166862393201a834e9018515b386964bd41529de2aac32c539a0cd1565e0c2fb24349b084583e9134aa0e144153cac81c81bff91e718435cdfd46a30d9f60c46b414d63764085348027d768fd683d2a9a7884020615a9b15f6358b0684b90b9f472fc84786c507741c875f0e4156f45f0fa486f1226c9fb991a07ba30f16d6c8af6f5e242e086c9077d890de4759888d9b3097c018d6c6914d3a481b3425c6916567c9cc52dc52a87ea8a1c2b36454825866d5a39ba0f44a61dcc8be77ebd5071550d0892e04a0fb7cf763678facf0f4e12ecde50f0489a03a27485bea1b4f7a0e009942498b1a3ebedd7de4e879d5c5cad75f9f6b9ee3efe68d2c7c8e5d9e3c7cbe14fdf99fe4c1fa0ffedfbdbc7cdf5cc2a8a14054d546bec44a8f7623a9a99c0fcc11e72fdefcfdfc0c5d9c536c184fc130ff5460e0972296373625500f9b9331f79ecfde953a90ead7775430ccf04ecdbb43727761279ba9baccd5b20244896652894147f2941a4b1f5e2b2e812a083b8f9f04fa3eccd2fe847b8458f83cc93ddd1d2c5fe6e719de8906169d21585b4635d1ee7b3809d27d564a66b41fad6d9c7ec55fbcd9c2083594c6c70733cc2812f8ee771351f79b298a7a457424dc5d6a6120d156f696cb8eddad96f9b143fa84c80a5c2fd038bec6c4bc7c595e2f78ea63e72d3ed9454a631731987117fbafec5c2373cc26e4e9573d827e94dd236475c24c3f292d9d75603ae845bd1f031ec6aec8801d280ad17d5a4eafaacc4b2a06eebd6541936524888d8fe5fbaed0ebcb91d7b30e973d472c6d891f576ab6fe7e1a7ae2ed6bc7fff1e7e269ae9c3f4037d6fffdbbfb4606fb0108a3eda86f744d3662d61499c36539d800ece043c2476241556626921f4bd042395d620d800ff708d73cd1a935299f86a365f3a832545be170244ecf0cd10ab6f0dac5745a8232b6d7142551c4d6cdd941baa87d99c01de6036d97838f7488bd39c4746bf8e3d4242966ad0896437f4ef9a3f1b1081b602d91303c1c89b87e1adc83848e4b0794c5676fb476cbbb9505251a38c518f545862f3b63a990f7d53155d6aa54770998a235b7470a61f197634b05a49de2648101e199ee144fb68466d06f4c5e3b15bec84d0c7ca0eb69132cecafd550406f26c58c7a521a1ce88cd75e1330b1a90a76c4c817b9232a61123b0862d679ad44fc7cadd2e18a38dd1520bf755aad3e93486a374c3794a4c92e76ae7bd93c2e711b5f5fd701162c3a1d24bd59494aa5e1957bc904c514089d22192af43508ff06e4e563e1717d52d92dd96b8a8168d17ffcfb8e761cffb07fb0951a368d016e774b5a5263bb2159169b04f881baeb2ada1231aef6a99205c5524e300c2412895e1c67c28367106f0fc728ffa56ed82e633969d3a0733533eeb16c98a068a0deee249a8e23384daa886b9859746823441be0fb378538c6ae605ec33de350ac243735dae4bca62b345bf47896ae66a8f66febc302841a9a459c3b4bd106e65af474bfb5fb72a522631c43aefdfc45240e6f26c1975e0c7a1c5301cba0170a92a02876174776a7e881ad0dc619be9d094949408bd95bc1281b82e704b1042ba2cd7f3f439cf2efd5af48f50d2e8ae9a20a28dbab4a6861a7b0b775809850aab98e7a870565a46b34e0fbb784ca1209e851e53a135bf30803131063ab8c4d88113d7fa40fec7170d6b9e8ae68b8834c0feadd8d4e1e66b56bcb56bdd03857dfce5494ef2d785c99c572c2df5c00d8c965148c70a5bcd51108fc7a395f6e03c62c622875c3e6365e3c8de0a5da7903ed68c7b9bd230a6166af18d7b486d942be2728fc2603f6b674b188d59937a213a69893e1245009fe9f66872e963461e4f5be3e7b5d0c6e15b0d2334b0ff40fad167b8319d19a0ffbbd1ec1ff87d0a8b7c186467b0cd088ae1deb5d03a403c1c84e77849973d13ac868259e2c11778c083b105ebe9e2c05e5b979f23c155849f5917b6fc30314a060c42a36566980f3cba20fb2a77b97081da73f87dc2e10a16aa612b0d4cf3bd248c0084fbc534183515a03ef2d7c2577ad0bba1c325588cc7129153f156d00f672eea4f8d0a7261969babff75f8f8ef7c126dd76fb11b3677ea4c67ed73f6a3c67d8d85d648816863083af4b9d52e9636a28ba6104bbcd259f654b39b4ae6f1e90b453e4b5a83a0d81f9ccc467dd3a006348c4447722d1e3865ea7d728a728ffc149a40774ce43b547be369122aa0fe389d5f5610e78f35872aa5916bee91b42697a4f44de7ca1c0eccbd123182cdbd2cccfd94e29b2d94b9e4ff9a3807683b53f534fad702c5efb2a8a0086ac8a15247da0e107c9935691eafa0ddeffc8bf39d5e5d9c1c8fa8658f57d221b137d902d4b7e44c78179596af8d0c6ca55a8616038a8bcc85b23b786626ef1d2742191bc20c72138a570be5108a93b7113f09f6a390803f33538c0f800f7406bf9a5757057042949c1317f134cf258611bd3562c9d8d0b25aeb7ea1f18fb2a5475aada91959eb9ffa094311b7681cc16f31da2a2a27466bc9efb4abf4fe1e0995c6559aded30e767faf33795c3473859fc862dda7d012446d7c2ea1866a9411c3181561bd0de86a9636c45f2cf830354f35360dad04f172be6b41541b44d5ab2ae9cbd0aae5634fbc8a9f13c9075bb54ca096bab2c8f4ff325260c3c3b2f06c2f6a008cecc578e0f8129a65f552c50980da0d3139078402f32cbd791a77ef94bdd4f13572b4a266afa9fa0bef7548f2dac226a47886fd0803d9a10f30b2e40af498bbc3414ec60ccb24da66b08e6197759508e13ee09ed164591b6da35cfb3a522082bcd7df3089000607226703441afc31f875e09306bf87d3c104e5461310ebebd2d8c17d2fb561821e1dbdaa1bca82162fd6af32e7bdfe1be05d380d95db55cb9e4abfd08c2044143b52a34ac5e55673e65a9fd73fbe2f98a12aedec86c82a21ce1e2249fce181b8089dc8913f8c0c5a30720a2c9b881009cb5f3c745947c9b42b15279e081dc68f08a244fad656dc4fc4a7f9cabbe943104687cd19dc43155e7326042d753cb0896879c74a56cd597a6e7bfe29ef62cb9f34cd59637a9c430076b238a2714b6945a3bbd5a57fcaa5f89c6d630ae6e2b5250a83308f79a41db937b080a89459df071ee631a77b27feb527660aa452bb10872a59e05a358787f63cb072f318fc9c1a24c44678bca0c2c43638e04766b7036bb1f6d6d6b22b0dca530939a989bed586804fcab6de674c67e02ee3f081afad3cb6012e3819e47549eb53d83aebc0981e523af374d3540310b849678716d4d013e2906924f4c12416589fc96a64b172804ee89df1eaf80e3b15642799b01df9c278cffed2ff91c75a220fb27eab0c6c8d8ec35d9dc9927f70c0656959ad8d81151921d2184f050aa492813d83ae30da571cc42868a8ebc7f9c9ceefbf15f8b4ce559dec196ab28644bc10cd621062c0527299b9c0cfc68d83b3f5c7c28334cb69e314ea882c2b385a50ccae271f2983c672e882b9e622fbe0668995cab8c20520bb091db19aafc32873f4b97b1dfba953e543197085406d0b611032feed3345d8c34101e51f5a26d83a6dbfe261e14990c3d8e7034667a047e487b418464e815cfbc1d5b2ba6ac0c7c2fb3107fc4b6f32d3f2628e191a153dde2254cf8f3c51471e79ed88867a07104de03bf2ca86998d791209bd5e3d4699cdee58d10e0a4ed191ffe45fd281fb025ca66edf7390e08134d8dd042838905ce7870049111eb2af9ba1362a91bf51484c3b7ff9653a4a63d480cf1c95f7912ee297a14933184cc7103bee99dd5362a4921763a9619fe5026b87edc94edc3732b3db73077cf7a960b8dab7a0eb27bd7a1b6635cc9e957bd6eb90c0a9938b2d3eee1957917371470814c09c09284318fa6b40972c1d23002ac89719910515e9b18fcde145840f7e2b53800c1d6dd8928607b4202bed6b331cb8ac0e2162b6d44294cf47c2774d1b09fce39fe433fc767c7dbebee31da282f248f38c927f744334544cbb7261d28a178c25f7a60e181630b9c6545f7e16e89b4f0195006ecacfedc01fc91d1a667080de5fc58dbb680ac62556ad37a248cdbdfad1191b2b9a0801c96bd1f2d05eaa7982a248819b14e51f6220a09e2829cf4f2c2e782ca781b01ebc60d38b1be91dfe906b0150d32f2e3a3186f6835e3240b9f21fc230237e2da5bb3b2a798f9be96a949a8d215a5357a3cf8d2954bbba2a4c8ee9a63608ec724195c986a0ec3916c8bf59bbf2a477b02d6a27a170d16b70e51f3920ed22103d08bdfb4656c7d319955ae1d46551d42cdc0541a21ec0c54ded0439c74e85399c5815dc9f9c63613d225b3e10cb30e72b80a099696ad130f97c8b81a7de1b3bd16f6167ffe60860e10a4d69f634fb9222f29d2244d518f357d437f5664423404a3d9066b84c262a1416169604cf464dea172aa741b52d4e9f83d839e38fba86164a2c294c185ccfe3482fddae827e92ec63f6b350cf9c3598b35d56187ab70714ae3d3b893a0a6b9bd14ccd85de7bec2e03d0863331ed5c928d3065823340697f8aaab9c096324f8a4421ac198013ac40e15f5a677ba40d8fab75b8166ca49ec72cd315c9435bf5f9c92988792cee0355d804397ac05a288ce28d28c32af1d078879d4840271c09eb5629361e1237f13a1258e39594941e08db98793e71fd7cb21e79151e263964dda874ba78ce27dfde86d6b8f9889a9a255ee8bd1bf8f429df152d14083cd9965e7d223bdf93690934c618b3fc54fc655830e3fffd5c40865d3b4a94bda5105baf57e612a2a01fa0f433bc70f494930133f931a6420229b8e289b98f3d7926681496420cea356f83fa53086606892a0a0213a603d13ff074b241366b2255e8ca9023fac02588af12b0c0a424b7f65965cedf81c3a00a281bb442c2ef2738a281f003a388ac688a153f5e2d3ac8a6b0f7ad31e4bddf1294ae5443a24cecf1ca5439f3b41e2d350e35acf08618fd78723bd90acd2881fbddc06eb363459c5d59ff77939e2bca493cb5c2fd4ebf220a9123c61a53fcf0e30d13c67421165b21e6c49e79bdd79947544a8c3a757f6fafdd1ae2b8d41cde50e860853f66d672a63f0f9474a46d3953fea819f1271579579e1fc0805f73315a244367fe4b5534d1d82f2f0640f93da141b9a7c974bf65e0ae0dfd879df08d7d94ac32bb1dbe12b4deb2b83c3f3507aa0fa49637b36103a09e8e6fc41aa3233d7dc96561667f31685b81ab96b00d77a3f0893a8933c2bf71fdb9ea1589de5d46d15282e02f891db85cc1c663132eec6633d6315e4077c924e1b35b168b65a4d28bc9ac0e76b2b68e8f08e8a1abd17287dabbbf91eb8289c96c42a107336e977a98139a5f923e51f4e6505218bc70d6c9e9a77e01b5e58f88e4954061b3a9865aafa12c193cff497bab629abede91c9b695b73d3ac637e7c8647d8caf77ab9b7dee5865754d56d1341854238ec1dc9d0433ef3db001f6ba2d76a031e3d94f04b15dca91af604df0348d4b2d7edfa7df3a61efe88523aa66f993279f71626ab0d4ca5790fd507d1fe00e19f0423fcd389489544768333f0c11897353bf82f521af5fbc9f940fda7e89759ccb9671dbc54a23fd2892337a3e5dd605c142ba4efc4144fdf5669b11f403d5994cca8e8c17d4619f10554467515647013eb170bc904daca3d414350bedd43e2a001ceef98efa9572da4deac847c5f028acc1f5d6d71a3439acce8ec5976cb67048813106fe3b82f698b5571e0ce0ae41ae973db898c8c6c7f58ab0feae3b813852350456bdda26f76f1f9075ed7274c200d179c74555cc263d33a2371a9701fe6675ad4ec91f37fa9d754cf1d9099649f5b2ba4b91d824d65f55c97c3a52c248a31aa5d0fbfb610388e1901dcca87b6d42858781d973361292d0deee2eaeb73d5b394d198d2be12866838d46c773124dbe0fb0ebb6c5a81f867df4b5f8867de1018ad56633ff2651a9fc941beedfeeba868fd3251ea161f57539a9bd76434cc904c243d06b70abe31d4247f8fc3f031200d4cb2907698e56eeb70698b94699b120cf654cea5ddb483f00a4e153e388a9f7b717b75563f86fa31b391a8c22a067c8dedf3d7b722702e0f8c10a01492768130a35abb2c64dc5e7378af9be36ca23144c922f3e0a9384d7875c181f7c17c8039eff2bc6b6392ed914fcdaca82cf1a4743d63705a1e2b6a421e920ed9ee96fecc9da949e3f93052902cf74995934f4d004ae83c4f70e521040aea839f836accd8e73a02dfb73678317b836abaa14527ef55f254acdd3537bf764f1bfd7fe2654ff4b904c524ab920b28d3e0c7f082319878b01855cd9dd2b573b9a1271cc25065694d52cc55db44d063110f80f230e647692d130e7cc225362ce7945c6c79c330c218fcc4eb40184df4382608e86c39cd30bd711c125da953967155a08e69c60e432eff0883de499d7cd65ba8c5c245c1e9492fc91848f247424f932937491248a52920b24b992e44a424ba7430021a3023ae0f8523a2d81012c3d9c422f7512ea39dd9c32d2c9743ae114c2a90820b324860c157b906cf4b0c3860dd2195d66490c990fd864b1b1b159916c3c1b2a3617087e7a7c20d4a9e750d429db58414c64c8014201e5307152a98d7665a77a5ae5f7287984b640ad7a92ccd14fc3505e150d7dd14786bf4aa130dee4a7c258fc502b32456968aa2688e62745312acc3b150482acfe4f033de9e8e8a45a61e6df2854923ff4edd0206afa6f14a2e4add889aba9343f3c403934c5c3279f9442716a48045195d2d02f69ad461fe26c5a4daaa6d2fca468a8114f175bffe466ff948f22a197b3279b0fc52729b28b299ed4131e54eb9f54ea0226bffc461a8028129ad97bba1e7c9e024aa58052405fe691351a51b2f5449a45b268598a62141a2812244890d0d3d1d79f6c3d11093ea9d4869e34d5343fe5a77acac34c94a1d00504b2003654b8a2c256a1012a8c50a266d0b24493a820850a205061cb0a475618800a6f9454b862052b4264b1824e698533567862852b2bfc0a2c58210f163a10461e2c0051620188851656a0010b76b030821628d0824e89853225231f941840056d61ce89c32c31004aa9852106cc520b2c307232c244c9c80f4674308219f9c2881673cec982024a46c23042c79c73968ce071e4c8111516a065013f944a7c01a614cab0bca4e044e94a0a3c859e1296327a24818213a5520850102aa17142193d4a6d944ef072821325149c70c20fa53ce69cb30572b1873ca3388e4cac54318de238fe0d55c21c7ae25cdc389563a58ae9862a36a148c31f5a821dfca398509a733e31c134a7094f2697f25cd431216502074cb8405098334af0d2a50427b444714b304288127a284be0a512847a4ad8292153659ffdab201e5188e4ff3efb5741e57e95a8138a3efda388e3db108a3e1c781ca40a00c623b3c7451f8a6b68982460a422ea501ce5274a142609c049c85fb5ca392350428096395bff6468cc794231cf4bc8f194046332143f32fcf2e831464094392986a243c506088a0e15a01904cc9c503a00113324427c485026c989cd8be3efc0395ee5f7f8932c1e146a4e2aa502845032406ace13141d2a5074a8509e975003843067c90026a836159e971800090f3f481432409111ca00c2c7086346082396a69a4782848692e3d0a7a26306f7734a2dd0450cb62ca182114c2330601feda37d04825f277f28af502b922c59e27311f5df58a2c8f2c9a3afffb84281e04784221ab3eac7d36987c7688767146936ea1f0f451f4a0027082086003510c18a6083082d11325012018ed207a5528d961930700396ff010c821f01ae541f8a3b5d36fb8b5a791cf3919200e898737e41a286c26f4cf22c1d9ea3f617252143f19bb3cf9200803a2095aa1833e764d2e3858a157e6864543e49958c5ff89d6a684a200c124202e69c55f49f10ec9cb3cb9710bc39671533333321a060ced925063e4a20585102218b180e403002842b2038294308841840b80a297d40468f30a50f98f8c0880faeacfcc843e8839e0f6e66490c99d207002805c09052000699aafc2579e455d4dbf947ce733efd8fe537fe8a4552327b27f213436a4a7d8a3ed1078652e8a9058aa14d2886242f5f8552852aea020d5f933c14a752d406db9c523534af124914f99d28fd904553a991d69424494353bf4325644d593e4b877fb02c3ff248f9a9dedb64feb193a238f48132d0d3d007ea4ccb51ecfd6d4af2f9c80273d1a772b6f928f4944af151ec389c86e2abc4a014ed3c14a3ba984395a46ca8121b8a8330c6d95f99cb204a668ab1d04dc91a93f01fc54e694619fd68f4618ada187d9893a236b4f5444ff444296ae3026d3d114d98715236e4915c668ec3794ea9f283c89204739939c94356f86027bf544d4db9607481890ff005b90f07b8e00c3e5cc007122ee800990990c9f828436685176c79c1087df4a100327dc0008d181cc08f3cfc102306373028f28384810a3028c00bd6f063490cba39e78c810b7f08f28713626840021a14d1a066062a980112338832839b19304006780092420d7ea88106081940a000c48a200408248f40ae08e4a8063210a48b203b083265900f0c7245904108210969c0205db040080c08098310216cb06510426c600dd131a4a64c98325a9441950140215d14a20b19800d5681d4d8800586a40e51e1067cdca08a1b1ccdc0043730a410434e60c8060cf952586916e090300e094284436818a41eb20182cd2b25925189a4a44402a134bd9843f861f2a385129120886c9e39a709b344244969c690d20c15a51955696686128990120739d052911d4a44b8904109a4cc520760943a28a2c401182fb8f2021ef808818c292dc0d2829d1c5860070b84f600640f708f1634a087163d6ec87862055d5610820ab0a860270f32793891c7ce183dc660600c1f73021986cc39271e61f0f00200108f13ee207307bf232b038514784941998210ec38c30ed08e1650c005053dd4d1a58eac8e2274a4461fd2532a954a59a9424d74ff142b552889d3fa27389c0763a19b50fccad50fe7b15285b69e889a50af5b59454d3bcc237d03cc1b3fc0a1031c367028014701de3024078e2de2084094381430e340220e1d870a74e438218e33ca0f922304720ccdf249b2040590e38b39a74e094c25082a4117557ea11200c25108e36492640675c819868a302b98730e16e6188ae30b3ec707e6dc99e30d11c414792390c9ff8d377adeb879e384374478c38341dc20e3861e67b8e184116ef4e04659c58d1e376edc10a10d3dda60a30d2e6d64f9e1a88d15afd2d3c64d1b591b2db451848d3fd8a0830d306c7c61830b1b5ad810828d15cf4b9e9412f20c85e248c38ee8134a81a2ccfce361d6191f88fc9c5ce69d92cc3de507f16fa72473cf0e5992b9e767a5da546858a946272bd5e8c4e87de6045b4f8402f316eda99eaacdf3fce591304a06d0303a020d0e1081c6187316410112e69c3493059d396702f414218d6cceb944d316a873c9529d742982e4192298f1c79cb38b520483ced0e69c5c9841871960cc38a38c6e861733b8cc921832a5278ce69cf309b00df22bfa38cde3f3397dbe14324530a8ec3f21cf97e1a70a4796fed1287b65f9e593a83cb2721e59cfd2e10b555ff2ec9c7e486459493d1775bef2a32b32533283f9479a434f5652a458be5148ada45237c0d0ea1f0df464942999474ad2a14c4512cc94fcc04c4da631ccafe2e07f7d157eb9d4624966f01bc7bcc3efcb9e29ffa24c52ceb308160d859f4adce147c75fbd91272486b47fd4e87dc6ac1abfcc46276fe7a75d7c5d7e8b9620f895243da550a198da214b0ccbecb1bc12158a291a7e5aa46f44a338d1a1f28d405076e850f81999caa30f4d5dd8d085155ddce145115e685eacf10502e69c5c44f8a287392797956a7452b27e6ef64ff9e2895a0446d01736f8a28d3967155fe48081031846cc39b7a026ce93c70c74b3ca50fe47a1255e9480a1022f41734e2d5e042f46cc39bbcc21fe8d3a270c21c2d044f0528718218491c59cb38a52f4c8550e83c44861ce9985c5588c6fce8985184dcc39ab28c98f1c1f688c3d460962cc31e7bce28bcf9710c6d0630c0fcc39abe8a2852e0ca0802e8aa8710308177aa841e2428d1b70c106980574e1c2092e8c48c30b2eb8004a630c17978b13d2006496d9824c1a516c11260d35ba6ce1c41657d43091b6486d01b4c58d942d4228334b62c86831460d3cb48822cb2c8921a3c5153546403af2b40052430a275a5c3584d0e2d282ce9218325a78a0c61f5dbaa8d1a5cb972e56cc9218326a7c28f28f25b628d1fe464de6a7adf1a7d013098a5b2cc57145c1ac1a49f24d64b8c3178aa3b7c356103d3d6d81d92bb3b857ab5ce61da0d3afc86f7fef4f9f933934558ae193d95bed507cca9f482c0a3f291e993d1b1874310519339440451e5464a1625311c3143198c20d2e445e804415ab2a14c0050d2e2b2e2454e14309859b28a6d8f2650a213e10c79c734e11c314341f708114834831e60365c22f7b3aff91d948738c51ad0cfe68a50add3aa850fc4916aa5c41a104142928bc882350140380a20d1e85fc284c487d8902cf3973a21813059628fce03f8a655013a018a068010a0394a0e0a30c20202003023ae0004117103801022d73ce09821fe69c530518becc65d050f895612e7af0a3a450e50fa568de4f10cd497117c571451f241a5f45692b831f298627289115e80b2f509edf438dac3d63470d0d918822bf530d497ba84151134963a4076aa2693d11aaa551de1ef393a8d698c34f9f48f0c3f023e3b9b8310abf79f9248a8fd968c542f1f04994c859240a55ee1cfe8c915c662e96610ee147aaf298579cb5f5235be4839f679443962b161d1a3348b5086a9ac9ec85ac9114bd0f5cad5824f9d1f059f4b9b86913570ea534919a73f2df2147f4696202bc147d9af032754a5274e2810ee6cc29459f5ce69d291ee88007a0cc39f42d1145210f8400a8b5e4f3c411e803a4493ecfe3d04aca50f8ad564dd0347142130668620eb2858c1e226c39c3cb962d5b8cd822c4952de016be05a8021210c7df213fc8f383542cc9f2d3fccbfe7924399e360e1c30840611389045c96571c05463060ad1b8a60aadf1a3af51e593a751fc6c3af8243db572497ebde82b1a59a491961fe69c244c11b4c8a1a50f267498186262024c34d18315305a6628e10051c0f728c138a007304755aa94082084431a425668a0a5e706ad3083ef9d4c3b3cb4f544a3d8bbd89bd013a9449739a7151fe05c1635dd2c61c31254893596e032e714014e1ecb23264bec31e7ac0287879a846efa0f35711e12fc72a904172db324868c12424a282182122d641964cef9019865cc1c6548748099253164b2383133339345cb9c59b0cc921832597cb2ec94f133e729455b7a7fa0669d52aafc25aa7c72f579248a454990b6b2aa7c92fc225104cb520c1fd4df50c8ca3445e61768aa86a436f46444435fa03b5317e88aba4037cd4faaa54b91a6c44dea32fc5442630659fb2bc7bc2ac30f0a3da544cfc8e63fad126da02529aea811fa23105592123da3254759a5f947532912fcf212282b167d6fb3543a0a3d9d7e68cc65d1673a29294911882a4975118862f2b908a5fce8136592fc52baa45f24eafce46734be57b6c0d21bfa4056b973f89564985b9a939f7e1e8ae4178950a8e819852c9b91d533f9ed845f1e1a7af02bfac655c8a2462208e69c74931c1e9d92a66ac2074f2ed0f0c1d3ab72484391d02f5b4bc607722145710659aa51eca3b8776ef263ffa1ef95afcae1fe15f9230f87827c523541d405ea43f3933a7d48feb8fa91458f7e28fcc63228455b9a9e5a200fff1b3b1d9f64a9725866be627d2882f92496343fa8434f355e69248e43e3932c0a8a63198afb49f0e9f8455f66cf888ee20e13d68fdf7fa4a914cd9c648d65aaf394df164932d3328ba0a6f93d1a284ea1c84f1c7f872757e4c77fb33879e48bb267f461f8a95ae01791a55866d527aee81b8942afa262494791ae5894ff6a259629928783a2478aab91b51afac8d60e7f1c593aa932c5849e280f73f86f54fea71a7f4539494f29fea5543c87be576a3a8af4fb4c5b9af22e82bfc3ac43713016ba29775ea9441dfe9d5264f9a998d0133976b1548925991fa425cd6561e288c3853882e2f0c1082b362174ae4439b2e2dd585941bae159f100375254ac2802c88a26dc7062c5163180b9569ce0b2a20f3768ac2064ce396b388f8986a68b2ed02c45c96f1cc5fee517b2d6c032e76401094e58438d39e71e6c786c9c40023248f0734e3dd6f8a19c253164d6e06bf4ac71b3866904654a2320334b62c88c20ccac82660445e69c5dc80906cc083a2081015302c36596c490298161cd703003263543d147c7069a1f7a2af3eadba34da61f7f958a873e4b87bcfa01c1bc491608446d6a50ffd190a9076d8e4a1b6c48d5b8406da02ed0209a9f542a454da3f811fdfcd053aaa6be0773d1c7d2e129f9d1d3687a6f8825e2e020a154f595df3f9092e54769fe1d3ef2cb5a1334248234f58139fc521f8a3e293145a64c5f8a627a4aa52ab5a15de4d90a66717038cf5659a48987acfe51a8c98ace0dd44431cf1fc546f52589f14f121e6af3e14fabfc8eba688482397594a1a456abbc4f94a682525e296a6a327df8436de8c9e643510ab5a1271a5aae542f7a46b4868692242a456dc8cf2614a9498c2c0c3fc268220c1fbc10000c2e4a5f1471c5c0428a32b09461250c31bce8d21743bc9cc40883c607d0b0e12a230432bea091421823191020e349184bce98c3cb1f5eb67801cff8728610676066a0c00c0c98d1f3458d2fe3170580b101301af005205f0430461863e8504699313031ec18401a45ca2041195e784003066a946860356cd2b841c98c9a34c248439506096204e185e785072220810b3eb85889e0c8165aac44c075f9a3cb1711c010b286348d827333ae56a6f2862af4447368098b1fb0b0238b25b218ca42491660b298c1e87d7ac0c2c32285c5c582060b12ae18e40a3eae187305982bbc08f990a28fd1371145a1f1f9f8d37f4ad60ff9df2896214f2996a2cfab3e2123b1473cca50c6d31b59b3c80ffc4a5692a18f3c41982cbe983a7c46a09e8b2108644078e186f24fa565d2b18a2b73ce93893eade16f6a955fc852a9c44d43e61e2ba9d40dcfbff113f5d1d7847249cd399fe0f2049720e69c55cccc39b3e05f92b9a70a16e69c2ba822ca9c53055ca87071c2e5ce3927174a059710485c8a5001081561d8a0c20b154550f103153d5001ce921832545499461f1e65150f452dc5aa9c734e298cc02d475250d942440c5b3a30e79c52d0683131cbe2cf790e0fc5253a46efb363f43e6264317a9f1b054d141e4431ff80220c1b507829c92f33384504a2990e851c14df48fc8c48fa46e197e5371a8d39fce87b9b920f820f8080c9132e78e28c3927179ca795f38496d21358f4f0c3057312edac0b2939014efe1d9c4872dc19e2e89b48e20bc007a128925372665818137e62c984055a664a0e855ff6800a4d0c32e7cc83f33441471367cc4986acd11bfa544a481c7a94555be86802017392df97fcc78f7c8e2a9fe4a1a851adbd5164467da82fca0fea3c7e08b28a4ad18794b265c9b6c5c89613b6d494991e7dc801403a80c2cc08385084d8c34fece1872a8f1e954756b609c52751a38842f9fcf0044561320525c4a4a727070885c262480ad113f991a2586a01b52ca1c50b2d27d012032626132a68e12815aaa06ab408a18868e91144cb0e0e75dce0d08239e7d492a10830e79c337a909991633c3d29829b1e95cf1aa2a1b8e94a14411a02f0c169a4656e12800f4ed968cc2a6f87afe928f64ec19cf1203f2351d330534705561d0948a52aa426a4150899538f0f6460ce3986f2a7e47f61568d99872cb1d313278f3ca8bf32fc48b2fcf226bf6ce9530b2c43b1348120e799d2245249ec90840892a841298b0d598ac8c285ca0680703022092749c48043181735c385831c3456009104c5618b1d1e2afa70ca5ff581b47c42335066008c0cec918143347004ac72015e650355aa84425578c840cf9622722c958854ab58e3a69992cfc5102596e187e2e1ef5fadbeb124b18acc4637277145bf6c691b25aa2fafbe177d23983f9518b6407185049839271e2feadcec9ff2df4414c2000873ce3bfe9b7cd95af205092b900802891e902891e04800a580cc0fbe1de37fe0eabf4979f43e705c208a591243e6024c5c00cba4a7237a987362710415479c31e744010ee7f992a73596211329e511fc082a132886232ea97444e908235860c41894d187a74ca905b05840041678e2070b8055f83c91a3f879bf3f95188afbc7e7e491517c8f065e86628ae47181a6524f84050ecef34f688828c09cb30a226a20a29b738e815916f9ed105103224030e7aca3866cfd93227828c266ce8945114ecc39b328a28c39e709b060c1e2441358b460e9a18a14583816212c0dc072b1d060216188416418828f21860033c49721ac188234c41043a05e205b4f34be291391e5271a89e3f314c55cef501b9a32a552d494ea3f98e4f9a3e81a1a927fa8d613614cb6fe09c642a91c4ac38f72f02b4316ad0962862068802003c4579a001c421c21c44a0819840001080d041108105909082241842088520831b8205b4f842a9f9cc0047e0064ce397f38e38750dca8f155fb88032509fc0e1fa9a40459e469878fa68bbfc347a6ba98aaa139b940319b0a3f05ae2866b5cdabbe72ab99aabefc6cee4643531e999da4a829c55bbb8b57f61501f840c79c938e2b725c0162ce6902089820e08039a798082c11812510e0a304012fe69c7348600024b0a3148135e69c619ef4a18b287cc0e243e903f7a16727f3a1e4830f451e60071b0fe8e201a5078c008f0784a249f4c8275b4f4443f6c0e79c25a831f530a6070bcc39e5a8c1a1261c13fda0ff0e500f557ae8e1210f1ec2f070060f5dbe59e2e1090f3b73922791925f147a7a506732359e8c448f9a5a9aaa78fe91563a147e5028fed9f911a2a7cf447e5cfcc65fd127592bca125bf4c7232cb14549f26b5229d5579a680ef8e9efe8c13e8a3d95a25fa44b52548179fca2f1535f8679ccac214a7e34d3d028af82280e665938a71a201a3aee26a8f2e8b347df13f252d4e64a697104a2279a3aad5254cc948c424f0fea2ffc9020213f0709127aca2bb28b28d4f8645e921ac572e726e1ab52b48bf443b1cca90c85fce8eaf3c850fcc0e71fa96dc80fd42c20aff52a8fcc4e4030eb9c3cb1554343c9f1f354359c86e2fc7822b307446d5439d486e22e827913ed0fa238d545dac1ecbda6a1088260fef1cb57e53103d1530d4923aec81f4791fc532a95a2391c955414503d5191c028401e42ac5a812a0d7005a2428854500a6558c52012226e21ea201e09df288544a8bc108304257207f2c81866fc61d489810e1bd061a54309251d405875b1aa000ce5562ea02c8114a46484c5288a910b45628a888a466089c1ea00eb4919485947a95ca27c523aea8c5660a445a9c5c11118474614c151d4430b06ad285a538cac283d206f407241540591109108624a399ca094031b3bd88043200d60d0f7c767840d03f844f0c6a0e0a56cb886ba1812c2069dce475f3df92e7e55c39c733eb541733036ace69c93a7380936ec2d9b8a0d139856aadc50c5d40273e8af5a4256aaa04cbf6a95281ee6cc1afab42a931f6f69133581f9c71baad0530a2ca50e499d916bc8c93a8b1ae69c299eea49c590ba5222a4e620a83f5063422964eb9f707214c11f6fe873228a42e5074929451f20d1a7156628a2288442a150ad15c84555eb481c813af841a20f0fa5000d8dd9d321c7d3879d30ec74d9680e16e100a444f57d24e5a24ac98fdf2896b4cc477f9be0700239e692e7b9e8b36487871963ad628d3a64eb9f9447efd3fa2764eb9f883ea20fe7999223fab4fe09ff32ef0f5cb176c80777b8fa3cd20695e45579ec9ce7d677248e2b9225aa5aa118e62fc35795fb73f831a35a47e2b822c70f51e3971f4a258e5dabc10a723cf124fb8bb41a7ac62f3f0e361532277ea4448553b94095271ba022f4a48a2771cc39e19873be31e774838d392709d6983e84d14282f9499aa3b072e883ab261dc860ca1f73cefd5352f55206a052bdb3f4386615e5ff24ddf5d292ccdff841740a1be59413e69c239852448a14211ba0f81f7d7d4a01f3377e99a144b9d93fa5249f9f84e829e5006a853ae074e2c101a7130f2dd6127a03c5a489074a43261453af4c6196a768a8690e4da592a2a3484d2b9aaaa9399d68a88906a392a2af572d1a8e700ad43a8f621ffa7efc22912471846e549bcacd91b8e484e45522894449287e600b49298648c82fe7795695e54af5475995a26156b540308f226d819ba6864855cacb31f137859952a03d8028500222814ef8f9f2a3c54f2efd98ca2033030d6ac10c49cc508520500aea409011a5a05390014a51ae8862c39c93cfd20c81cc399fccd20c5408ddc440688c501de0973c7cd2278c8f133e5a7c6e7c5a80c2c69c738250aacc39271413149a39e7c4f82ac2a9a1b9516d2a3d3db947a80c3fa8c79b73f2efe9b93d574f0b13d43994f2230bfc72131e7e10ff07750ea59cb80e556219660f0885ea2935c0014f8e6c54fbc8c6e6033bea8b4295c8c33ca266214a4c93e40229842e0a1989209862424f5f7ea46813f26f7faca191557222e4c4033c29949ca88027f360c1a3464f02ce70b293801238319512c082134a241071120209284c0f6c64a01845425779a33828d2175ea03534abbc4f1d7c72aba7cba614c5d1e6bfb14cc1480db3d404cb0c53850fc513eb94241479c6a1a14c73098aa22e3f1b6fe8f394643a8a9d9e34ab699b18523245c39c593a8846a5e935ede2935f36a224985b618eb83f550e5b5c6767ce0946870273823a57904c782831e1f228ed0cb1c3e98c9973aa51b355163581a2a84b4cc2984d88cc39d3f8a0c68453b3526d2a3c373a261d05e888a0e3c19241fe5862c7122e4bb42c0997545922b444a789376666965c4b689690304b62c8e4b431e79c395e88440a45878a6a5381a2438564b1f4478639b48463c5a652c2c963ce59861f04830879090c0cc84b6050020315f0cb4d6048c1d033a3c0c962044e0f6509c74be108f5e0dce0dc0b8706878a23073f929e9eb58348b10c3e3c3e517268b81953642c0216f98a78a8223310a940114d0464482328609210d0c1098a0e154a7e56aa50fe41d1a142bbf863e55225977583952a5425ee9225720e280195883127ff508a123f940862c59cb3a7a464923ca4983442e9a9a624c78ff51c146954140a3de95c664e1e91819ebaf84459c54791869fced4480c89c8fc51e8a955aed0e46a24b98276838228fff279774b974ce972e096734e342e0be86a41419dd09cf38c8e35e73443ef745ccc39cbc021cc39c9e8c1db9cf30b4992b7e7dedcebd25c122e00ee1c848f59124386a38383034c17b324860c17c5162366490c198e076ec579258eca2c892153e276b8bbc3635a511204730d0d3f8fcc5e86424f35b9cc5c2c297964955534949e5229dad2ab557ecf741241fa3aa46528ee14c9ca21956295e477f1bf7791869f8afcc2eced57ed3c965ff481db869222b8bf92fcc8fdad72e8a9243f90a67070846ec854b9bf88e61a1ababf9558d2bcca50f6afc8146659a9b286863e09e626f4944aad5a5e4949ce1ac56b67ced9e5c9ec0131b9c2b8fa83ab6f14bade987362815929a210af2bcc39ab107bc843e69e92fd2c024a981925ac0225ac2bd53dea9752359a738e414d4234fb5b8942560a6b823927178fcc4e3016bae1a3b83fcacdfe29f69039a7184237fd275332a7171af71a57b3fbbdebb8dd4a8c7170a4dc8865c8d31a85302e5f207171375e6de6baabbdb398dd1ec69ce72daca6695cd52ae7b2e776eb3c8c1de0801f59a4086e1e78c0b8e8e33b242dfed2ddcd9aeddbe5f26bdb655faddbaedb18d66177e3d5c31864a93852163bf3ad75d6f9a6b1eeb1cdc318c4b80c3f2943df128c31090b5e6fae1db765aedb19b31daaa5512d708531c657ec8de94ec3b8dd5d1a677b178a18df3480640597358b5dbbd6bc2f9208eeb657be59d5d77255d71e82efd77ddbf9765d1897e97df44ec637127b2ca90a4d773a6759d66ebdba2e6f0fe326242e98c6eac6eafdad5e6c5feb614cae54a387310a04df08e35a8431896a00898a9ed5ede6dbf5b51ca63336c5def2aed7d576c679efb84d882445c5b4c6b8be58e632cfac0f298a2bdb5d6f5dde57cdbf5d1d10090a2edb37b359b6ed0eab977b120876bd19a6b1ad3fc3387e691e467ac276ace36eb59abdbc7355b3c0be919cb8ecfdde3b4e5b9b653ccbbc8cf4019e693ddbfa394eebef397b18f307751e127b301e127b56a20fc643227873491ec8364dd3bd5bae39cf1c9731162235b16916abdbbefdba5c567946da725d4e777f2defacceb2da3d8c7170784c4237e3d864ff2a08e39b4dea00c76bbf99671bbf367beb46e240de39f3bbb9cbdaae7195637c5385c4c4b675767b2df38c77cb73d7c2edd577ddb89e73b7b3de40962f866599fdeb62bce7bdc456335b3bec5edb2bd734ad84d661fd725bd7affdee9bb3bcdeb7db6ab36bb5aaf74da267d75afe5c7779d65dbe84409206f4c56f8669badbae72f76e1ec6e183283144e59032703bec66d9e52cf759fd9e5118e38cef91d949c80485310f240cf42cdbec6efd358e7798967918871904aa2424b2acd33adf2aef3a6b312ecb18df10912e906bc735dbb3ed9dd61d678fc8f8dbdc3dc6d5afdabd320f6322921159b5f7ea1d9665b5d39add46240b6897fb8cbbeee517b6e56e2be239edba5bf658b61bbb36f73026c27675abddad7ff3d5f7d2b0642d635bbb2eadf9c6f50ef330e6813444d7dbe6daed97e6aeaede2f4915c8349df9bd765779be9e3f49018d693777ce79f67bfbcc85d0f2ebdae5cdfeb55cef2e888d699f691a56f765f3d6ef614c9280e0b4ee7e77d5d73dbbb7731ec62cd20434ec72da56b39a9f5f9ade1ec623e9072cdbd7d62a87e5ee2bd7bd87f147920066b7f61d7fcb7dc7b6ac3d8c4911c8b6ccf1ca716edbadbbb2ed610c81dd65d9767f5fddd9ad755a45bac2f5da3b6d672efb4bbbdde5615c8aa20f57b6d95bf3775d37dd33f730ee0f78abd9bcbdbef9eaecf5e6613ce400fddc725db7bc771a7b4d0ff580f59c9febdacdb06d775725390f1b976d4d776c6776d3fd390f639e7fc4f877c0366e5f2ce7deadd675edf230f6c8ecfd8812ba79506721a31c0563a33ce2b4b07d6dae6339bbaacd59ab47f9e26cbf5bab5a866d5ad7373918554c67fb6e8dbbeec66f86b36998931d146a6314abe8b9c7fe79d66cde5dd79b752bf7bb631ad7dab65ce7b277ddf6bb61fd6299bdbac318632132d336dd5d5ff3d52dc6bb20d314d3939b5586b2ca2a8cb7f1fe95655def19cb72f759eb90715acbdf5d9da6e9bdb1cec3986775b3d757d7af7feebbba39b16ab9bb30abfbcdb8abb9cbc3b88b28b2fcf258a25664165afb1ad65d17562bbff6660f638cf77351e7b9e88331c69a77aa8a6559c6615bc7312cabdc0f0101d6cedf6615cb7c67d985711ec6262737fda32cd9d11ce591d963f224f928d210449767fdeeddd56eb9d5b8f670709c383105dd2cf96f14c21863146a45de18e5d0755ba65d17e7f8c575cef5cb7b57bdef75b39ad9afde5f99eef4f5b5efbf3a860de98e5fd9bdba4d7bccea9be1f49ab7ad5cb6dd6e3fcbb8adb7e6d8f3dcbfab50e1832d1c2b4237f8f0dcf3bedcae98dd3aabba97e44dddb6f39d69ba6a4ceb8cdb300f63b10c3f54b6b1504f8e7955f57637ec75975dae77d7f6dbc318e3f283b86cf5d6b8bf1c76b3bfb0cd3db862097529edd2d9c6b7bddd9ae5eee2a80cb37977bcbb7ff1d77ec36177f55e4ccbd796616f7bf7ac6cb55fdb96377665dcf5dbf54e55eece78775d9ceedc72dcce37642cdfcc72da6ff9abadd7c39883ff758c83b00d9cef9cb3aab7965f5fbdcbe11908e3a01a38adbbfd661a777de62edd51d1b6ab5f8d6f9d7197a659ed4403ff5b39cb65ec5e5963bf9d4cb19aed9cb3d77297aefd7a8c41f037132916b339bbecc6bb6ab9ccd99b1da1edb2bf69d9d66e6fdccdfc0ab256f78af5e798cdb0efac87318a8bc25dcc66d7c5b25d6db6377b61069dabb6edad5e4dbbb2cbe5005deed42f6e5f3afbfbdca55dd9eff091432cfd3d3f1bc673c5f2b6ebc5be66cc43911fc69d4fe6327e695a66f7bfd69bf530c6f855efadf23884b10c5036ded9ad39cff5332d77d70dd6a37f6f9cb3fb6a8c5f7bb921967e9c23ce73f343618e82f14d039e68ba66db79cffa6675bf66e4066b40ddf4b6d56a3b5beb67b9e3e9b82e6f7dab5dbddbeed67a189b9c546c63b5d376e71bb6611ae7611c3e883a7a8e3a7a1ec220436733d7b99c7576ebb4b69787b14e139e5d7e651796edde757b590f63308f439f571a930de334ce2fae5f2defdc330f63fea17ed52a31c669853918b7c25c77ee6f58d7b7acbb5eb3ab621ec63838389775337ec973a38331ff6f256ebcca3c633c7ef919b941851f6a258e1ce3b15c893a3cfc8c4216aab404dbfaebacc336cd6eb6671b0b55aa7a921c5dafe5f2beddde3a7be9ed8918ff0e7fc22618634caec42e86ed2f8b5dfb314dc3360ccb7a17513930703ae72ebb1a875d1de3f7e2588debdb69ee3bbd33dbd9bc70b5befc5e8dd330dbf5f51e0e6659ad0caec86f075ca9be1b8c57aa0f63152bf4b9f9ab699af7bffa67f579c518e3fd45384a6ebfb2acafe7f9b7ad9df370ceb45633a76bd6f56bdbb887f198bdada4d3bbea2be3baab31beb76e3d8cc79244e1d04069a0254b65e4065f9d75cefecab8c5eefdef1ec6a8f1c465566bbdc3b8b51bffbdb3873189dab62ce337e334a669d6560ed33c8c59d0fe3996334de31aa675d7b58731c6a5aa63cc808c3f87617673d5da9bb5e61ec6ff636762eb953776b3abfbdf17a67115c624aa24450f158e32607d5fcd6b77bbda6d59efeb616c248e43a77a69b9bbb8c66f765deeda9887310f334ae418638c936332ca517c2ece75f56258efb2f6b66b9887f1178ee2ae49c2755bdbf7c2367b65b6dacec3188571765289a207365dbd2eee66995f4c3f965d1ec6185b934a145143230ae5810ba8511cc74791ac1185320149fda207514759b5801a4a73a40423471850420b26b08064051354488196b080135240d1a070820214b0820925ac40422f5928240001480e906d2818e048342a47a005b85845614f94418d1a0a3f8fcc1e2d59d42502798400a5280e80e71f6904600aa1fca1232090483eb802e04145a95200006a14cb7c420715758403ac48458d0c20c2cdd09058981e00c1811c81905e95c3221cc871480b04d026f9ad7208a409cc09c25483cc0f3973a8f3ad730a8583952a37d85003151aa648110a8a3203d0cf085b66490c991c418620f033f30308538d3eaee4900a21c7536b2cc34fc2041023bc72f59c6272fc8af2a60117404000449b738e23939448533534ab3c1a852c8c3998e3b918d63185141cdc3820ac6232bd80f302ad39e21f4dd9bf0747197fcafe3d94521a56e1811ef10ff543fc51443b8f25074bf0c7442fe07090830b280e8a450279e186860fa2cafe20cae8c32265cc600c10443a303b48a324397de105bac7223c4d2e8af33f965a023508f1e8e400e5e8d01b7ac43f1fa8cd0bf4f443fc756a68c8f184ba8a92ec919c11f2e3ca9cf333221209464956f8a9582acdff1bcb0e9674b0a4080104610408203c30c51244e4787a2e86733e69009919e624820314110cc7e8c3ed546df6178160569185cc395fc02305527e628042268a393590a58f10e69c3e1840a274040ed12780d49c4e1ed4fa0b5fe0a3cb9c9986e14795609401347cf0a22fa840c307e79c96a4913292c53846aa6548172909e9844712243626920b486af0405243433a6284012dacc0c20a7828400515e80252c06304120a7804600127904c9877dc8054421952026a80003f4807b8a30f03941961ce390b304b77ac4084320310c01d728430e7077780018114000feed802001d90382072470866e6cc1d4dcc3989cc3224d22177642973833bae90a621b3cc2cc40693903b7418640a3203993598734e40ee2092b2a3da5474549bca4ab5a994474cf2c8cac9232b27482787ec21cfea039be844a1c10c6430e7fc63ce19033f6030e72c4266ce49d2df0ba20c5680441f734e52141e9002680430c070734e120c17b8e1c7080a30e165ce491ae2050ba81939b8a162ce39d3c304863d863832842073ce990358000e3f92c8e2458e3927074b64601052187c8318e69c243d6a70440f6592580137e724b281140094f04890031e734e52188da15185081d5230e79c739252e0042905b894822d054fe69c4c5c78411f2e20c7932aff58925062a0a1086a96c8e9eb3cb272e82836093fa2513432225964183e29d6404fe49857ab4cb938ae281224d9e897d01369870050d0c50614cc39271f63e098253164eaf80243f943df0ead239b7362018aa2ae23cf395b608d449f3a4c75d411421d454e708217f05186af12a1602c642486a9f2495428a6e8f8a927ca25c6fcdb49d12ed2b05435249853e507853f299a1bca023da5522996f815fd9be6a4030e3a3c3a14508709466082a392099688212326cc090e708202cc39a7982a62764a404a80883d68506492e34974630c690673ce14e69ce1600e8f629a650e048429338fde869c5a8e1062aae0813d0609e6afc401ba69e9307cca2727a04505281b390e91a38f39c2942d6041490ed34a954bf2559fd0b5ca25a9facad328528cacf95154d1d056984130eb187d176af1e75fd16b5a1e097f87fc47f439b5b2d1f85c0c4d6436caa127ee461637c8702390ec8d2b6f8081c3003d70180147a4b87aae0691252e8c67dce6dd5faff1ef542c52b348d450586612635287881257bdb28bdb755f99f6bb5b8f0a912cbfb5ac7377ed6bcbf7c69887df93d6f8ac194c26a01b159124aeaccbbabd34d77bbed7de1ec638435f27c32712496310d1c0d669afaf2cdbf676698f690fe3fe23aac4c15962cab92931aec1aae962f2e08a254473e303910c74bada8cdbb2cd6afd5be71ec63a3cc638373410c1c00b4490b8b8e6aee67ac3fee2b2ec2fc075f6dabc65b5eb9a96afee887c3f575dafaab59e712eab41c488caddddb15defee755f597b18e3984ad3f8de2e3314d30d0a6312182216e857be3a77bfdbbadb7aef3c8c319e42a4886af7e5eea5659a779bb671abac42ad32942a4488b8f2d535a66dfe9ae534d7b1e89b395e35deb74ceb55db86d03a8cb3cfafd6ee966d592752814ce3aeab717de3aae6bb3f110a6c8f75f76a57dfb8ee32fd4484e030feb7fbabb3d8db7a9f4810f96e9ab397ee1ecbb7679508105dbfb08e67b5ab1bb3dd4fa072355fbb71ddb98c5d5723f2c35ffc6d766dc736966d6c1391c0b575cbbbcd74e7396fd8261281aeef7dcd79be7e6f9bd34420b069aef78e7b6e77b6319b11b972f9f57dd32c577756b94c1f92558e65f65ef6affd5bd537e8ba9c713d77afd9cff6d286dc4deb4eebf9cad9db5a7399cf17d71ac6b3da79eecf1572715ceb5cb57ebb31ede26c50b74b67f9b2f5ea2ac7b78d108def2ddbd866b9cdb2e7bec9cc20fd66b6da8be7fc9dbbdb2648d665cd3bceafec3566bb2c90ab6edb77d7f38edbb6acdb1a60cff356abceaeed5bc52c2099f75bb9deb0ab755ab7311a64fef96e1c67f5dbbb2f3683ad6e4d7717ef5add9da572a3332303bdf7b559c72dc7b38a6d7f5cdb7bb79a5b6ef5c66d0cacae376fd86fdfffde0bf3637397666fdedbd6edec7218f0abeb6c675bcb34777326d35db5d36c66b9766fbf6e7dc1c53bccf25cffea7acbbb8fcdb7ac7276bf9661fdb9b2a551656b89e966fcb27c195ae54ac524fc71c08c0b6e772fdb751da6f995b59bf9c8ee57abf16d777c6becb51a665ac0691dc62bc7adedaca63b0b6a97d9edab76b36eb3d7f62366f6d07fb5ceb0dbfbde1ad661a69b71468fae750eeb7cab57df7a2b469a6266051bb7e9ac6e58cd3a7db72dc41827c708ce1223373a3001f3578e19e8674605db629aedfa6f7b5d5899317e61260fecea5b6f766bbbf72d77ddc338fc86be51fcb96972a3da546e54336338ce72dde534cc5eff5b773cb656b1efead6da8561d8bea3cb59bf38dbed75b3cd980f559282dcafcae52ce32ead6d8ecb56846eb871326307b72facd3b0e7dbc52f8ee33a3328f8da75c76dcbe9eff65e5d1d9fe5ae396d2bdff6adcf9de0b57b2dc79f6b5a63da6f74681db7dda5ed956d6f37ae99206399d67aefb2eb666ef34c0cb7d87f976db5bfceea55e7b8fc6ebe7bf79bdb3bef301b866dbb621aa66d666df625b05aa69deab55afbfad976759add9d87318e6a53a161468ecddaba33fd57d5f296711f47bf966f2ee74cd3fad255c391bfe64eefadea8addaed9516c32f386962f0ce39a77d56ebfe5cb8dcc7577777be3f4a555eeb3362e2ed3309e6d5acddbf2ddd9b0366bde6d7a63d8dd7ad74990b7cc65bddb5c638fbdd6ad61add619d71df67c04d8962fd6ebe6ea56ff621d8cdeae2c5ff5e26ab7e58c776a68ed5fbbbfb9ecf68bb33a0d8d7597deb57b6dbb3ee3191a3bcb966737d33a4e3fbfd9199b9669a7cc5fcb9a9671daee5d773b8f67c60cedd25876b1dcb9ac3ee7196ba60c2ebbf6dbabed8a65956b8c0cbeb1ecbaff395fd9be38ec0ba665dae9bbbe7a776f354dabfcca1ec6384b66c6e89abe9a6f5d775ab775dec4c85d7759ab599db5edb3acdfa836953e1306d769d9d5f663b9db2ecd552fb66bbbbbead6699b63f57293909319302e6efb9a77b76999ef8edf2fba6ce34e5166bcd8b87bed75e50db3553fe75ddc9bb5e5fde65a2dbfb583c00c17fa5e9ef7d669ddd5d7ae58b66dc1ed6ab3ce76d716d3d76f5ed08c161ca76535e374dff8555feb2efc39a65dddf5da5f57d6340f631c283359542db39c66b99c65bbdb6c491598c18257eeb3e638e7aeeb5ebc5e9165ec56ceddcab57b3b8d68c68addaf4bdf6e6b76657db16b7f116a4604dd953b766917c6f7d5b9be552a9e107477671a7bcd6b67b3ba2f0f0582ac3e147ead1d3c66aad0b25aafc63a8e630dc84186192e596397b517bb1cb7f19cc912a5da47373c3354dcedea1abbfa73f63cd39c8753b3c4944333fe60bc52ed7267660a6ec3b07bf3b67597f35b67a4e03acdb9cc71fcf29bb36667a2d0aff5edf6beeca6af6d633350bcb5af9fabd7cd3267b93a03028e6558df3ccbb6c6b66df399273aae6fdf3e63d9c661fb6e334e5caeffaff659ad99bebee3e1f83cbf07c3cc07b0dee92bd36ecf5cb7eb96a1765e912b329bf1c0d57b6f1de3dbaddd72fd9a6962cb5a56b3caf18befab3f11ea7938f8793a38335bb6fb588775d8a5bdee34def5cc74206795e70bbb1de357d6751ea3cc70e0bab2ae69ecaadd757956779519267acd5b6b9ba6efbe57db382dd763d9657957b3e595ab1b87990d7059bfc66d4cdb6c73f96d19e69da744995922735cd65d6fb9cc5dd9e69b87c91b6694e072b6b17d6f875d1a86719987314a27cbed9bc6fd96b52bdb97f63a9c49a2fb2ef7bb6d1d86fd563bf77a36919898d100573badcb38fd5d6633aded0c68ed6ad66ad8b6bd66d77e7106039ccbb4abe32edd33ac62f9e2994182b35bc5b0aff772f5da6ae7614c8ae0d0cc05b0bcbbdd39be3ddfb06b65e6886e2fad2d56b7c6fbc5bbebc6082edfbe7bcd1ce7d6de2e5b40dbb6cf56cb328cdb6b6f1b5984bd19e7ead63be7b2fe1a6688e0dd767135dbb82cebd6d60ccbc5d9e7b64e7339eb2e0e631c8ccbcf334364faebb5f18debd6cbb9d93f0504b32a489ba9c0c62fad6dcd5e4dbfd62e6a354301cbb3b5dd6e5aa76ddbed9a10f9b9ef6ce5d9d66b6bad5ef9414d6682d8b0fdf7e25edbb7e6bf1b88cab7ae7ecdb9dbcb619cf6428c573313e057a6e9da6d7eafee39cd7a2b71dcc178258e3ccffc9065babb1caf9faffe5a778f45a236ce8722a883f18722b8c319095cdd766e5b7bbfe332cee5086019c7b77b69fd723de3384bd580190870ddcd326db3dc3b5bb9ac6598b992695e77bd5fffebcd5a33211db23567ed55f9a57bbfdd867918e38865c883f10ea41b747ee97b697cabbc661ad779283087e3cfaf5a42a42f4886d8cabb0cbb57c59edb0ec3ca5c9ce5ffbb5ffc6a75bb5c2117b6afddb6f6f52fc6b5b641cf59b7f9a5390cbb3cdf4dc8bdb7eb4e5fab6dd75edb1ec46e5cdfd7c659dee95db1ea615c863fe6558a24c8ee18bfba9a39cf98d5577bd8065220bbf34cc332ae33ad66ae5e1ec61cfcbc8d42fdd0f82a4eaa81cd59b5b9c3f87eec6adde6610ce62f491411c8d218e34c313db9298fbe0c459da1f0bb810448bf5d766d98cd6ecfb8c6ba87711111aae707513838539ee0f4fc3d534c4f4c250b0ac6e3138d59d53fca73d1c709c6cfc510e399294834c8f6339d658cbb5b66333d032c6b6e379bb1eddaba3d9741cd328d6b5c7777df1dc3ec1f5add7dd37abeafb37b6b27032906fbda9bee58b5f966d86f9947f2a35e5ac66bbedef2ca69db0f0906db76b7bb2ed7ddaeeb74bd188337412432f5725d676fcdd6d6bbf7bfa056adfbef30ed6659eb5efbc8195639efb4ceb3e7d6660fe3f0d32a7163dc2a3f17d45e3beceab56e3bd3df2f3eeace9d5fbc5fae697b67ba05fdf6dff667ab69ddbeee58d06d19ef9bbb17c6f1ab5dbd47a7594edb18c7b9ab562cbba41e97f7fd7a5fcd698ef1ba828cd5af9bdb3886e98dbb3215e47e6d7a6719b72bc6f5aed321e5a1b52c77fbd25acdeebdd81e63b9bedbceb4ac6f0ddb355b42c2e3ebce304dcbb5db5bbf32ec8e9c79b76d2eeb9996026c739cd636bed5bdfde62e3b78b7bbaef76bf7bad96bab28d0db5f5a6ffdfaaee378d63c8cebb8f6671ddb57ef35cbac764fc0b32dff95bbaf9d736daf11121dbfd5ac6ff5e69bafae3d2199e0b5ee7297a66dda86dd8cdb1ec6b7972c31776fd8b6bbcb694de376bf8731698e6cdbaaed8559aeb5fc9af530fec6328cadb956ad62bdeb34c6f95682cde6ec5ed96e5bd796ab4f92a36ef6ea1ddf5dc73bcf2e5e43737391e2d076cbdf59ddb96cf39e2f0f63121c79ab3657be3d76afdf2e56496ff02be35b6b755f75ff7fe6610c821f911bf7ca7cf3d73aae73fe8c23dbd8bae7362c6f8ccb99b61dc606b79db5bccbb4fe3ce7ad9140ebe79bd6edae7539f7eda590d6d8b4aeabb6de4efbdcb9d54670b52c734dd79dafbe2eec83486078bf340dbbfde2576bbfb71a486ae44dc372be9ff5b51bcb3a0a298d8bd9cddece76cc76d80391d0c8bf6befb0ee7a7bb1da6d67641cc7ae2e7bae63f6c278e661ec4332e3efd79c2fac76f56fdeaa8731a98cbb6d1777f1ebb2db5aadd31ec63390c8e87297f12cdb4bcbb6b5fb7a188be5aa35ee1ed217cdd99bf3952feeeabf9d8ff15bdfd975f1acdf5eab330fe3af77213a8a9da74913953836c118a38c4862e42de3bac631ec6bb6bbef61689ddbca6daedb3e5fcb71640ec9cb65afae5dce310ed376b77130ead70beb2aa777bd9bbed7c31885714fce929f1e1930fe95b8498c57e412d21716bbf9aa7f6597f3ab77174ed1b783f1c5aa148c6f9ee445c6b656b9def6b75a7986756103a4b6a894d1e78935ca32640c10004048090a8311003038241c90c72312b968d0ed5100148004549a528c46561909c3e228444194310619630c20c400316666a6881a0044d7f783e2adef2cda98ebb46e119a24d51197d9d81224cb0815bdc861e4ba240d3417f00e5c0fee69860fb6812b7b3ec6c5700deca5d96dbf0e6e1a1d1280630e3120e6099b7107deb0dada929938cf0cc1f452f8aa3b41af82525438002bf1bff77c3c0bcc177b0159d7292d7f8cff3690760a3b4edefdf290cff88f977da1e204080fb0eefbc2e937ac20245fe75bf0ac987a949e5c6e5e1891541d9cd3daf0deb4cb5885a4378de8011e0403e366f95aafe6e6514e5ff8b2e77db636d11924596a2988f3a3633b87e7e035d02f917da5c43ecdfd2569ac9d8a83ce171acf07ea16599f782b831e6245e254997d6faa24c39db1d4fb59ee75ade92d2de871f31be556b6337b507f2829f6b3a2e75ad62bada9e790398aadd940eb65b2d13b32e85999e93519f4a6ccf53219d391268f1db6a469f565e8b5b2e96d32f44e99f56632e83dc0925bcf04ef092145490094b45bbb9eb5ad5e83456fd24c2fb341efc05ccfd20652d363c945b1b8613374652709050200ef19a9991d5cc31a8f1b4b139d18bf5981f9754990e86792364094415bb76d1a1c4d5cd1e00e3612a24954af3528f23376a235b6fe10121dc362dc42559383f5659b30ac60af61d3979a94e9b48f8208eade7496ab80a44c5f8661272ec0f4c22179fb7b51cbaf4667e8b12a98cda45e3fd66eb3ebde497d5d4d4b9cf430958f20d9a002f858992f064bae619e7f1c7e444ff6bcfdc99b1c536de70632db0513f7f865153e6753a8850c6fc74c0b9c9416fae42dd11ee8a400e290f6edd665a2462b163a8894db5a743d9ab55b863f53ec2713f939e2c8b312f2d7017be028f0ffa1a6fdc65acad45e23d1c0b89bab70e06ad032dfca82a5ac55a33f2df05dc5dd8956056b2233910ec4f55edea0e1d7cf11f3618dd81b70955bca61dfef803a445443ccaa0d777d130e563c8cfdc59ab88a52891783be5c524a6a94ea2a77a6eca7bb51d490847e5a075eb8199c9a1b97fc696433bbd914c6cfffefca94cbf46ab9af2d145440e757dc4037850e9c175b07e482348a48479488dd13a22341cc1f6c2947a21b90e4a1848c20b27ae68b8794fba7bf2e36ab97167c50570349e076be6c60254a3601b8f31cfca32d9c60490aad4381bedd30e873cbfdac10df472cfc682ceb96505237d44e6c09f662e25ca5149f0d7f9ebb8025249ed2a058a399c411f375738a8e30623c4b29097dc74a63333881d9dfc2f25fdb6675ebdd64a0403fe70da12cc28e8d00a84083c9660f79a6a205a7c3d055ba86e56a21cfd563e4dce980db3776aa8a61a0c42aa13dd33f98d82ef1ad94438f934144e35f650194e5007c825c877ba2ea0c8ed7d6ab9f6b32961335bc0eb721c40efe0af18c4673e5a9a520bb2e029b57821f0bb2decd22e56745e51f5bc20f3bf99d4d35ae4de0e89127e5b63769f63a369ddec71a96c44d972982226d2184f68cfc6f8fe0da38a80e61eefa76cd7ad011be828a9eb7037e91d243539b94e79c26b400db20c437bbe02eb1f0f06f92451b016796089487b9a6aad5a086f20bab4ec261f0079ca0eb9f74266644ae5d79b795df3c1ec46eedc539c22724f5a63a70e610745974dc9c4fe28fe40407ac1b33789b698c7bb8d82bcbf7bd70c1d897817cc3d666f20a634b564c6ad856f255fcd9abfb8465bbf900ee1eedc0ed135a8a746a7fe8e6a4f70f8e71432350b98fb9c62b921635ac3a11aea2154c04f8770484771d2bb2744febe46495221933399f3f66a232a674c06aa4f07a8ede38e102eee27abbaea9884bf918f3c3bf3f2982fcb73b909e22f9baa26371ee85d3b540b3040b8cd226170176014da778d9bface1f309b4298558713216b6d370f21f8537b29cd76457feac0044c5a903aa33750f4ec27575d32b3ecadc77194f158f0a99782b3e87cf6a2dc7fbb2048f9a23d5eb87c267d83f127bad7b50298d3aba7bf84abab10ffa3127b675706baad19ba886ade51ffff4bf20c1bc56f81f59193aaa6a7df19053d6060570a021a4f721e38bc98e993f1eb0f7f89a1dca24341d74f00800cc35e6b3a16b6428895739e0ec7c3632a9f38523ad88e5032b4460736773705f36eb5831576613641efb346a403983644d03506929385993c55fbbb3fc00af9a5d64d34fab6e75547f809771ac6d9907ce75d1034722db2c5b3950d32997ec901c1cfb8ca622c4e558c857c1af4dd136b8ac5ab36c0eda6de0d1b8d31e228d3de08ad5031be94562d349dbd313ec7cd40a5c379f89bab93ffb8cc754e3abcf1fa49680e882a9407d3255b199a1ba4c24cd8285e92a0477b8a33ea6dd288c0cfac58b1d4c8c12fdcea836b136ee89eb3d5bd05985ea0feeef1cca7a15391732e9deb668fef59186e0612c6569c94b0c29bd68fc6d11689e4a444218801342bdb3f0a1642ab509b7945c90f975fc53a0e3e11e241de21252c21c0dcf1a42df9514e80ebf4fd247cdd4dd6200f4944cedff6c71cb8a76ac600f46574d5d8e128b39e022e17fadb43c38d3bca54f958f80c225b8ab19558ca8f96f12f9b22226d6a8fa59da829b70831c730939eba69a9597f6f2369bda1c03b5585f321647960c1de8da488d64194d0371ec81f15d90984c2ba4b5f048d4d5811d771103b212d3a3e20a9650e143830f58a04c277a31ca941e1418d3c01f98a681f369a92ad8adbb7c2d16926f15cbea905daab98d9de829b51dfe3cd5457aad8207ea23fc27c620d74158513c5163f2a157da87d68a14630ef42a27be5180f8f9650151c4a2218e37e84555c3adef30ff0fbb5696d20b90f5d6413e9f12030f8dcc803a1034293745db0bcac005df29f1e26cae039cbd420d3c248ba93233ae077c0c4acbab811f9658d642bbb909eb80192d9724102af7575c7db2afb3ec04b78c0b78141a2439877a9ab5a4b4dbd638573e4f22a5619396dfdd0db256eb2caf5db6c438c96f915a17f33300a8dbd66aa3f9a0ac25f76c729cf1cf58752a48d88e68f0e69b16d89bbd5ddd7f30abb7aedd45bed09ee3b16817acb037d1ec8dd0e42bb9cbcd7ec8552abebd02b5605fb1145e9433d714ba205332192f462238ed1de5a5306091366e035353018d56634900666968ae32e142c3b9471cc7b542ffdc2692b7f163999a65ccdaaa67eb4769a38f71b2ee5058b087ba2b52d48b9b10525aac49cebaa93582c8245cfaa288513b0c56db41b02fe8366068543796e6e4d84be8aa84e0bcca1e64d101e26e765055af7b81af521c21a151fae718a7addb6e90c3d9f69af19510df3c5d5cc3e278f319ca285368eff45a7ddb6915068df93f65ebebf65b700fe29b035e6e76326a60e5c1d7526641efabb22960f78b39cd3d5569f1747bc64e50695f99403a4fa5ed3af965ee553207a2f048e9459fd1f6a0438b08a676ebe903e6b73348ad8b73c635d81736b423899c1eb7492175b66a732be52f2a0c1b08c15d0c84befa3d52b989540698be5f5792f99864fa2ff8e759c844bc6be1d6e29ea3d0283e4842896c9898ae0a670d622a2575fadc082516b4c48bafa42ad64ab1ea9eb2c4f2b20d151f3f78e93b5a0a2f44099b9249e139ab3eee6eb09fd1c6ca3717ea6fcbe11fdc2eab9da3c4c98b6b651242d0d877a81bd52eb8e9b01776ebfb5b9e6e08d8cd12243f7411d27ce576f189c7415f593de38562fce6695ce0c02f094fb51e53942c17e0cc96a670adc9f0aa0350a566f39810e3933a552a542a18dda741f7a351ea589f475fe37bb09156c070108fc781037a4184d703bed0cae715842fc0be8af68e7b6ea6615e9917bdfd5a51429ae77b5c40ca2cffb411fea9ea557453d331e82f1193d0506143100fc06bf9426aa5332a090027bde08da213ec0ae645323b681161e7223297cefc8f8a8d0cc68ab4c367ec3a68c9a0585f43bd868e97e055061f8c3e7b03d784af27856472234454c68d8cc0c78b588288953a76834dc486ff5c53b884e2442af16556f948e2053bed9366966a5780e26b2e999670fa50f10888508343e1bc060b49c75dd961b287c137332d31345beb17face00f927d730e057953b9a1507d194ed87a70a35b8a6147e058e02e0559ef1288327a8eaaf45c568e7cec9aa9724e932ac485d0a952dc54b53d52f28e0505ff40934764edfb47b34c8232ac9e88e2febcff974ac8b4eb97f97ed433c18fc6b70bbf37cb82efa74d56710d43b6ed5c08c0b45fa833b4b7afd059704da0855d2849ad9bf31d07b73916a1692c1ca01ac8618a8411bf5ef030a81f273ab7e01ca84fdc9e917c396b80f12c23149b04238c6d736e02d1af074d097bc3a7373365c2717a709bcf2e9d59fed68aa386d00b89a79c6ee93a39a7ebfae1be25efbda47ae76832a329db8fff4635d16b8877fdbb4311aa33713e54bb91a38746bc0b913d14b77c428e8181b39f091ff93075d837ba1bed6c0e437def9dffe4a6ed64828cbbf53fc66150d5a945c44fdbacb36dae7c87c07c94029fc5f4218a20cd132d5e39019ba92e4930f1b223b80901891167fc8ad43abe10aef5ff7ae7ade1926d87de4c874ad0495fd73ee955fd93669336deb7cbf65ecebe236e09b18917df5030ba635cb201e3320a7b3f59f740fa31f62725c7a0502d08b04994520f9a004fdb4d381238e63619f57aead829e66b47d48eba617c2485f3c00f0aacd1c6873f984a45301af7a07e12f347c571dfdf391e501af3a1d149b0dae83139446fa7907059132d3bec6e681573d2f0cdd38a79a51fc3cb2afcf9a48584b0ab5cb613563e001416f2a6e50340c6861cdbc634d8eccbc61062704e681c140426d7560ac160aaffaec466165f443ce737ce93a8a816e3e54a7076029b7b72e78576f72bca9fa89b20832cae3e5c0166e8fb363ce0daf7adfd8b99ac3abfe8fd83ff0f0aa1f799cf0aa2968a25ba51a14d748babb9d688a83862a23aed5130af81dc1368a81621014e6cc0f8561e33635d8be470be67c50190f8f55c3c0336ae0dbcf0e0c87ab616e97617ceabde27b661f821ee1b95269f9083b2524288102c97827eec50d996ebb13b83d4aec96224976105b6306fcf72538618d98f11c721b08e12f5089c9cc754b8d8d3803e7b3cc57bf782cdf18b8ff2fb5b5d2f4d92f47e6ee3783c9c4de968e50e64aaca726ddaa77e42b2d65ab347c5934441d34475d722078c00f01ef7807b35be8e4fca7d6c56a9fca8837bde7d8b1796cbad43ba8bb6d350f2ee945375f8f3d015f658579fc5170e0481b6a36ac2375a40f606e056c90f29bf93fcbf0cf2615b8042bddd7f67fd77c8d0e4cc8b65470f1a90683c0506aa3db96f37283f461f54ce846a2c341ce3cd946fdf85208f48e2b452ec01731013d635120eae545d9cf0d94c3c17fb20bf1182d7021857d2e58b018060508ac41c17ba3cc7bb2db2fa1abb6d2f19bf7467ef3a9dd99f6ae821bbffbca64d9f118683ecb2ba945927f0a0cf790e927b3d0e7c09d437f5c96383caa1b18c6d506a328438ce0bb916baa06616eb7a1c5a8ede3c2ce4a774c117cadf9d01bcfb88991edbace18f0212ad7aedbfb06fab0546cb760e0b7e7aea1b0476edf25b9be14bb70c1ce6b37cc8727d2e7c93efbe873449d8cbc5118c7465c1752e8d3777a23d55f1fa9f79eb32303ed2febe9f1f5fb8e49991d3190b413d66de94b60a7fcc505ca46b6eb71db78dce20ab7e5ce0f13bc3fda7e6dabb14fc9db4e4a6ccfd9effbe67309d6f3d11a899a7cccec4bdb127508dce48f6a38b03ac779d8f74a73e71b64d8bc7aa0045dce1cdfd12f2f08ded9541cade3b9ebe0d1c3c31a6d6cf1832ddc0d5c30f388cfcf5998d53021628c64e33831f4d19caf19286301385351586e4f21aa319ecc2d247b35d0c8b0b1a54da357eb877f0d07620711e5656963c541ef65600970ca21c07548cfc4caf26ec21e237dbbc14c39e463445f2eb2305052766679048e8f8901ff694f6602987377e4cddf74f62cf4904fe3da275105c9298f4022b3184e31ce37bb22785e057ace38d6dd417b4c461ede4ed0e78c81eadc7048d7866440c28b2d4c79f2109f69e1834419527f1eb2f30598acb2dc840e8f90f527ce963baed5a7134158630ea96ef0ef6834125ed796378d39a6c67a94533e16abfbc9c3b265b27db3ff82e2a511b812048c73d407c4d9f17ae7bcc08c4a8ffeac293f523f84fdf34cf0e6c455da006dc980c707caf428bdc32ff863bf867523b5cfd6e9a7cc051a11d733ac8c8c262860f0ea6cdf1263d88edfc619b1393ab409a0f3b2bbbc476be933881ef323be7d28a3bc804d4339d17991ff50729242e86958201e362d250504a09b9c764b8a2731a499ee8426fb9720136ad1006d41bed45f97b68cae2fe03573d0579948ee8431108aa22203cb19591d50e77973c37771fe172b37f8ce96a9f88f3a7e59f8363f04aceeb6ac21cf6565d78c3fa274cc7b9eacfd0e4c3d63db95c04aa6cbd8b15f13aed15674913cfd74e786cf3ce2f4e996f3f7b936580a3c3860e3b72cb3d962e28c46f2977fdb7f60d08be430a889a9042e4f1de0cbe4772e954b7b39de3b6463f5f8c36c7419125f0533c781427532a77c7d5c21b457ad262e84ddf2062449d2b5a1a65cf24215677d4927f9ea073f3609c8977dc3c2ae220d5277fbf68ecc3bc3a2fc5194321d67c7c3bc8bf0722322e5f8bdb871a2bff27d65f863eb89797de63b5b3b299508e7032f93642e48e30d46b36bd8ce95d4fa2ec8133afe4d611d732de821261c8016e5c00ce0d7cc060dd130bf8358276bace4a90a00ad84f1929e5b7f2114f0dc9dc21831ce2611dd9cb4797d48372d32099c111683086a3d88734dd2c7c8145636639a5fd6fc87c93b55ab5065b46a077b37f18d7eacd14030a4ba5646c9544d1647c2cfdc31ab7de970576c066a9a30dfa45eff8a94a28e5e484328bb5ecd6c8648dab88be8f8ab5d362ed425da39aa094876d3e713557c3e2fcf7e0f21b61d106a39e011dc2ff02fa980a5d6088c40599b132b6ece4e06a22f85897d72cb9386dd4deb102dce99155dc3236f7d99ed27a004c6ed30dcfe6ea60e99e602b5d7bbbd78b3822ecdb1798b24f28cc7f5ba59f14020689c8d13280f8e054b16412ee2461de1982a2c4e4773e0e7bb510db32dd76cebcda11ce6cdf0418276a3e4ce3cf43751f87663d31b6c05042c3d5e3ee1446aedd611aad5af5fe69e877db89af244df09873cf4f70f07f60d9965360ddfcf3d3ee46df3d7b579f53d5bf63ab65400f877460337889a6084543012b912b686c09a6ed5723721b0d039422a845f688577b65b38945bd17b96888eec6b252f165136ae0966e83c1e28fb714a8ca67739f477c7325fed8ffebe1f838328d22c6e3c4e3fe596ad891e915784e42fee61e64aa1b382b1089d0a5e2cbc70369eb821f6904db3026184521de1b03af39dc3469da64c444131bc4dbe1c9003536514d2df11fff58121e803471843c0325c078d086e35dbd3ec368daf9110ecd8ca324f37002304eef7b374eac238617cc98069080683ee9a028c6427871c2197b1cba885996252e804005053fbd5db637c9139e1749c5007eab6c902f627332c6d35cd033c47fa9faad52f8ea79989d7bf38bfa3d7a9a5a6fc5ff3b37ce34e3e47103a142fb91520af7d34cb518aff580f87452b3ac00163cf939eaf521484bcf7cfd6dc178ac96f93ba65f1d644df809f3e80e64545f7102e64c40c941214734cdfbe8794ec003998ecca47cdb5a8b6928fd789586c50f733370fecb3caee77aecc6cbbd11367fbac3c3168f4a4a1e1d87d64dcff8beaef360cbc80053ce0c02fc756e130c8bca11d7f3d00cc0fd107c1f0919babd3c45ab8c4c6d7f2d798805fea8b7486c41b79be7326fbcfe3010de70fe6e3ccf3cf3a87dc41b767da68a40153e0104c93d0e8a4275f92f4fc23e13a2cc3aad142473f1124de68c44fc49e19af20c38c68300ea93f5238f49abd34d1d48a662e378bf638f4a2e189b8e24532a56e92c2b205b7a00c491901c9920316c83022d1b2f650e75a4a209b2d602cd97810a2ec2b15ef60bf5585fa3045d857e99bccb297fa3d971557f1bc2d588fae1ced14b166a849ffd2d111dc2682dd80bc1083a38f788609823200f7ae3507b387da6cecbcf83846f05bd841da8d427e9da613ad3d5a6f14967e9529caacd93b972ca2d7798e0c26cf9847e32d1de7ba4a930b63a675a96ebf86676ecd4ccc673d4a0ec9e259967ea1897ed2f009006cbfd9b2384c622180474161f6dfb118178c8029f33564e44f743c4db3df118658659bd0b15b9ba05afbce03f32f02afa53edf1929cd35c1644dbdc7c6750df69fe5273753f03a2546503dd2381fc49266bbd9afc93e6d00bce7891fb7c632476002333a5326586aecdae3858179774aa43ae83c002d923a30ebefd9108246e77bc6ad1f7207b0b55e53ce05d0d2e7efbc16338feba2e10422ab9f6460103ab2791ba05f2dbfbf886a08d10683c25f9ae9d9e42c6267dfbe2e708a33939bd9efcc08a7767340b7eb13589a59e316224dca60725c0d8c15b73e8331322e9e95ae31d145010b19aea8856343928d1f304dcb15662a70a8521e31f9e85f8243f38a20194dc50a46d583792e2bffa71c63341ca5acbbcb4237e9e68e561c4b18af8ba198505de702f1b3623cc8ec9d79f457b89f5986820acb6d211397430240ff73a794196261a6232e3322b705701d53e0343669ab0505cd614af77fc1507152afb46d11882397f48396a53e07a9d14316d05a1de73dd7b3b00adc30f01cd01c8989c324ecb7a80299185666e5aea887174e58b08d73202ef22c969dc8d1a8106f4b8a0acd1e99857a9d8f77b1df670310408c981e48ddb1408c2d9a26856d94b9f05721607ed733dff3328c478b8f61e49253f8a5afc3ac98827c11bc00cb35a2bf770db2fde4d5c6f24df38aec42671dfb62b413e02176106868398add9a15073c3845d9ad076c54d3d8c9d6b2686c0d71f8c3a1fccb5e39d74372641302919358984e06105616136d99aab76889372c9324b40f9e8219c60e146dc48d594241d0504353610898eb87c30ad808c596bba3f7d3c1003d342245e95da9e7ac1d077baf21d09e00c02dd8a610c08baba63a58d0043c3dd65304c5ae5330826f25eff5a82d1891fb81f1a3db10aec4c9d33fcd0e3313f570736e9bf3e1285c8f76a176edcecb54ef01498f6c6051719120e4b776f6da20c810cc070a4862b9fb5b34dfd0fcd49b83d6170c83ca073a4486111631a9b946a461958c3f080425f269d488ed9d68d60a149443c14d1ba9b5c054ecdcfaa4c503b8c12dd94bfb810b566c90d860652f6dc02441bc4387d60870ca44b9a286d4b99584c2944de7f2545028362d790a5e838a9c91ee9ac58d649d8f948d3411e24db04951338252227c802be598fb082bd745b7fb3d484cae6ae1234e3baf00e0d96642b518e0b628e58ce6dfc6dc2bed1857565acae9d6abab4ef3b281bb93829b2b52a88911b5e9fa60f3ea72c2cde6bc4c3b86bfe66cd17946afe86a5906de5e6661f226934edf704ef536dd6c3dcbc5c2879d633c07e8661c38b7828b0cff7c23469656ad33f0f45d091bdc5fa86cc1f40053ddfee7a434e25dc51b6b07de9facf4448bf768d5f077d569ff33da60ad7b3517bbc87cc0515879a43eaef74dbf4b03ee3c908d0cdedaa42f34443e64ce1b3dc6cb29e753e9d11fd1fa401c0b3ba438fe03f4ba6cd34f23a61bafaaa3afd6649d3ccbe27f1464edc807f4ff952d7dfb462cc69b2bd30dede565b9c0b2650772a6a22787a684992d52bf68fbac672da2be7fc4e9e8cf1c74dc9ba0ce4337affa1324ed7ec62d43e841d7936c6343e2408dca6743699f99d9696618da3f4a66a9d3392a25ccf40090ef92bf61baff651212c9e4483e20cf56ed07574c611a998a6fd896f44382e400bc31f9b0354b0bfc45c93ebac3933f9ecba85d31f146763d0c7969ac3549694a27c964383d83ae57d9933d3e871ce6cf82c04867d6ee78c86fbdfe2288b3f91a1998483fabe378af466c0271b941773fd3384fcbf0beafe12dcdf4e6d81f7b1381ab57bf28d6dd06b8137b90b1ef76e13dbc2f2e8e71d0ba3eefad05630edc17da266cd0192a730a3e610b462e68d9600ccb35cd2111e25dbe8c574d909d297a0845289fa28aee83cb9cf1ac8b99ca241a922f387d693bd1586d29b7db85a1d13f090603bcbad561c477cd038677b9576d499ce0c0e7b33e51b8e64fa92497a57ca17256ff11f3fa626289b8471c994c1436b84ed33191261d8365cd967b2aa89da146ca8e82368c8577b84cc7cae6ec3e23742c599b10bc27022539ebe271eb6cf3058d7f11512b30628107eca551cbd08d84c1bbb56fefa7d5989b96e63f4566835ec34c9bef68eb0f4565d70a69658ea95b8b9b352e8b42e99faf0604397c5b53ab0ac6bf064689f85c63c6d8afd1fb7da0bef04562922fc74e9e35e4250ec7795a042de67c57deb9068b2e5b644bdb1f30bd02bc1886cc673ecc71d1f0d65f0258fa0d97b90fe8cca118e6915659c4c16501eb5f5468361e8b61ac4213eca4e76f750407469f1faa9efc8a66c5d8280f939bec6355ccffab56f5b957785a00fc834fdea02283ebae2bdf3db3d632aaa57ccd07bed7373d9f8dba684b2f320b26eadec383e150c021bfa986ff678ebbfcaef457c487ec5ca88fa530de39a0a9f7a01912393e76682ce4aae89e942d0ca982fd3eefcd7816a1e2b0342ae236929b020b7413f8e1fef8dbb7e37e361c078831310e81f45454bd0560eae95fc70946fbe5773bba720cd965245f9b3eb589e54d4fd4219b4f6a5be5591ad88ee954ad7d4a6254dc6e10c3c1be0619007042cd58112c93331952e960bb4567f8a1836b9d9b89c208779e617884c63e6c1fe43e70a23e08202e98e2fe61de2d29c3af9d6ca8ebcbd5ed533dff0bff019cfd748c8835147a2e0f38b1e8e340da78962455db7f0d4f333fa6e776b7838c9c5bf41c1f3032b7c6ff454fc98c23ec900a25aa5de4c7aff63ff99e732f12e4bf453efb12a03779f7c4fadf209149040e13a3b4bfc8b2f3bf117d7cb6c3263e68ca6492acf1050fdb5cb68c6d7da741d3e5c69d6e32320cc624ad5fa719663780b10c1e3abad0caef31fb745522d927005bc318f2c13f7813d9d2b10a0385bf80e9ae69a261f7de60e3a0cabdd91a3db04eb0fddde4e9ea9db518ceea9f3c1268679cbd66de4b5c4007976b455b56f513fc7064aac9aef8954f4b9bc15bcd3b8934e74d2a627fd471c029eea898386cefec782e69c7fbf1e4c6e3ac4b0a982e8282a4172966fb40209da1c5dc912ffe55dc1220dd6ffd073c6feb8938afaee1b880227ffb6c343f5d0f044ed67bd34fee7a5d0dc10344b2902bc6844e4243012f8d9b4b817ee9c2c33cd88a6c4268348b470d7997557f38fde911c63a4a517920728259c30bc7f08a5b1abc3e47e48955572a73019d83881abcb127e51184bc07ea677c61cc67c1e509b5868f42bc34748d3e097e04372713e705e1e497704ac4b1ee998af02e61662fe03b5531457acad19bd488ffcffefb7e77308927c761b70f6989370ff62eef52fc57a5a308199f3c26393ccc787c56bd36d840a0fcbbdcbb409c9fa1bef9331d6a7cdee9e2bcd1beb307a3fb4d61fd1bc6a1c21f5c7420bb4f0220caecb3e28a77a4673ec61b90e724d28e2274adab4abb776ea29ecbde9da9f420a9673411b26926a4515ea9cdb1499c68ca2e5f22ab495b5887238b88e3822ac7686676add2e9a52bdd41baab84aae0344c8e88e06186987288213e5a728718bd32f8eb4bb93ed167904851cb599003547273d0c82ffb9ea6547f098841a74ecc824d3660ad8c6800db25a4bb15329e2edbc454f8a60a502ed6b5937252e7aefd74e13ec3ca9599ee4efa852e0ced99597eaed17156fbf6d5f799033552ffbddb97bc23a2a3f6815e384013f608697be12e1bc195d161f0c9c6c6ea508c66be116fb418dd3adf510c51c4528d706a52938d43e5271d2f675d659568f2f842f9957f6fd5898f641e52bfd23b17a380f1e56d169eee35f97b98a822a862f01e65af6ebb530c09a22dc6bebb1f81d0173c195cdea8e49655673c284e73bbb2ff457ea4fac86b3117e56eb5f71b776b433e87b4fad7278ec05d39863e89586ce19c0c32839df95f3e83c0a33e6903e4188307ec6ddac8d8bffa522e06620bcda54b86efce6fd967c20362c32c2dc9e4f387fa9386f5e964348040dcbf9823af94c99df30004e39816fad02a6fb9e5e27b6c9f30b7efae6138ee36c60eaf81fef1ff68fecfed3070e9c3bc27d0bedfdf66f5be60d79687635cb87e4d9297ac3fc5d7160ed10ff2853c5632dab320f410aef4a0712fff2f6ae3fb275990fa270c0555f1d36f0ad6b65c8c5ac12078d65c513c406a57b41ad2dc05890724551e55f7c789710d07c0a58b1283ec4162d26ebd3c6735f929d29008243bc79f8487eb9b72712c00e8feededb60d0ef79d411c44d97e12ed895102c8255c732daec3b313d6e0761c56d69538428be6647b14e1485d7d65f279e0d65fe17c70faa0cf9c73fcd0f10a45f589dc2dc79fc6f764a38c608dada5020a1874fa1d3f19b45c9b02ea83e6de4ed3c9d29e99fb16144499a8677646bbd9abcf63154bccef85de94fa9fb2e8d559c1a13ee0b87bd33aa9ccadc8d9dba87e0af2a379600d839f0b6f21d883e3a2f1ec8534bfc69f187349396b90ba98333f1ab0f56c4c9ba1b0790a591f3b6a827e455cb9132e6f25af9c794c76cbe8d0a48f5856898ec434bdcf51947120a682092228134b0d94eb6e4549b845de106fa220ede428d603ae770542a111824dd592f3120f0e9bb0ae8fbed236d2e7c5c0d58bfae66ae90e0b295b618446ac85cad3d3327d73c047dac1c734f8434b8cba188869562666ccdafd6d5bb0861d624c3b04458108b7368354598f106b0278ea8790cc1af5c32a6fa191bb190c1118496e3f2d34c4092295fcc32f629bb607b90fb04e94c37e32e9629addb410f38ad8da6ad655842ebcc368e4d58afb05a0b2ff3001c3587816acc79cd9e5eea8c0fc730f71f8b9765e35eec30c6286333d7b7a42b65187719fbdbe34ea5d6a97b3d42441d068599f23b4f5d87a58ffe6a2b04dd1d2f4cf77c4d1432639fa78a011c69bf539c5eb5fddbb1f861fa32bf0d089ed718d8949b150ef971ccbef349674b9844f7efcd16af52391d5e7def7a3f3f4e911ade96c43c89d3a177b342e6ba53a76fc090d1dfde045df65345f3cf0879d12883c6c310cc74a3a5e9e2a2fc4169e21a70ecb775121e04504be3c8da705984436d44998a238033147f29022d1ed811d2f1b33c0899254e734ceccabd72c003a94b99af296e581353a91b699051076071a99d571cea64a1b9bc324ab38ae4222aaad3ae399d281a79cb7393831b2c5c55d3029cc4265a2ad13d6c45ca48cf8096c30eb8b6f45bd20331b25703b3356968a9b14ff49a75f38c2226fd36eee8b52c2ed650908215717a70c02323fa4b0485f1f683a7aa4cf14deedc671a4aff6dfc9f385b21d349a64cbe83ddccf85b64a66ce76d0a41b95f29152f29e27fa10e8b740ce84e077a7fc2b44b3060a32931f6f3d9a1e74be7a19cf04de11f309832ee4ad204afda40df6251d26b6f825e41f8d910f974fa5540fa002dfd38600921f5917d6bd7f9f54903af287257d1e67f9e24d3c3fe8deecaf9c79cf8bfbb13186da28fbcd615de1bb6b2c2f9ca99512a1f8f9ee5144acd9763c8bc1c6ce8632996d238aa6b8b0449246ff11e57b5f79b46b7e1516c505e3fada026828c799185816cabf6d462df5bef6772473c162e3a58452c1b913ae78a94af10cd5813df3f1be0a5569eb8d3c26d4ee7225f5935bc4af2fed32cb261060dc8f41738b4a942f70bc65e777e0efe22856f103b65570adcd3061d98d1c5d495f9a1ae472800c43062fc59187867d6b5d93eb581c647f4d4674e56071dd4160560a80cdaf1bac770ce86af02b06f2c1c19c812080e82b9d7b0c68a936c51ddc8b5eb0e43994686ebaff9752ac03c68526abfbdc914b394300cf26a086c49eb9a0bf3d475d16357e5fde717c75c2dd23f5f4a51727e94b74f8d371e08d556ca607a3f433b3fa3ddddbba8f4bb78a9ed68e972b7debcaf7cf08db0c920477e9866df0e9741dc5dece37a0bc268595ef068ae3c61fbeb63364ff3ef410f0f8711a2bf24797d245f2be76b215633a296a875b9c1987d4ddb5bccbaf7583a80cdde32b851219aece1a099b22661d72636dcc7cd458466ea908d3de9916c4c5417c90da78b26805a040f232ffbbfcc2f11addc5116b4d3cd4f84056e8f5783f1d001c180a64ce5ce42ca42a789ef4a89add108a7e4d603abdd058caaa5aa8c80e32c10df098dde674cf16da70b9ac5dc6d236004d8d0e84cd36d4cba71233a6a55063b60ae8b1e7d179f17c93bcc1c023ef2ed0f2c0b7eb2a6ac726d791595cf3075672dd72b6d558dd4503be20ac7ae0982f20b837971053e21d83235c93d6135e2013016f9b58b5acbd36694ba8ec209be1f8dcbf9dfb9142edda44a3b4ae875663d69c55aba5c1c4bf55a5e762c7ab4f4e7320499407bf4cdad6d265ca261b22d990070bc1476ebee5ad2e347063bdb82d975e107a669278165bce0d77f1316b475fe5f471b2c91d5f217307853b31da0653042f29ba4ccc106ee34d54743099c2a0a19f178f829b092005e32275f7076ebfeb06ee8e552c256d50c213e94dff8eba29cb4bed86a29436407afb2ee10ba0659234a666821226af6e0753503ed943685bef77c44f7003066428acee563f48a7f4202608aa6d80078ba6e0b006d5b20238c8bd2d603ceeb119f808cdc52bf2ac94590052bca42cb2800af0b381aecb4f6df49f1b183555bc8c04a574714cee8c2721cb0e2616618ac8d403b93b649a39470fcffc47ed94b6d732cfb6cb9a0e72a6d3c10945f1b39e233f7fc2f6d240c14168785b9e9338df8612f9728ef055c2f07390c3266e8e1df55bce0ed4077103f809438f8e7261240c6fe24a0b243779d3e63bcc482a6cae4981635f503e0c166b813a7fd1dd455bf66ef56aa57751d89fc00fcce8d1f8a460e02ecf330d4c96807708f756df112016c93042c1b8e6482ba4401c35b252cc7b58c092e7ff40ac46d6a5bb620d24745fa46e139069533fc5a04273e83aae8f3bf17167c9a42ca1e8ec4bb6f69a01c7c088b7aaddf1ea8894da4127f80bc0ce9d91ec048cd90dbda0033f0b889ef299dfc8a4b19dcde4054c0b18928d1cbd081045e4bfb04d0173c85afee020aeee039e590d8f5b73693bed9750891a29ca29a81334b70ecc1410c91e4bdd88d6bc465dd085d0af42e6c8eddc26f633dcf312c10fe101b71fe7ed7380b660cc0267c81739102f5414c45df607641c6609777bac0c8d0ed9a8d9699a4ecfafd1bea94b3d74bf6865b9265bb02e2f189ee7bb4f4b5da1dcbdf2a38c357a989b0c581b3200d340d1a1fd76119b3504510d0663f0e7209b2c2dc7b56e555892ec777dc9fc47cb234811c818acf838066e14fbe70afb94a61ad3557ecedb62d17e83c4edd6c7ec14c608c0e61760585755243844f763bc7ed9a4d9455dee30b5516cbcabcc343ad7d947ed1af537ea0d54a013dc09f59d0b4f36594e56d86d53faef4e13767e45f10158524889e65815bab10cf380ba72267be0281c7cdac025aeda21bbe9ca000ae8b43a52c4f3f9823235f71681489066af3ce2571f17a37a441d8fee3faa8cb2c3069a26706829e98d01b571d00a407e7798e31ac7ab39ebbf11d02199aa929ceb3b081f03368624b5a9df34f5aae3921c075bf4ca171fa23cc2b08d16db666019a4a33e7d7fc380c590fc06e2ca59ba67cace018346af4b9a418a8a9c3c52e418ee61cf595d12e974402861b877fc7098c84968ef50ae686704176c30058562962ac04636f4a81fbba230efd325677ab2c20e38c7bf118a6ef8a3fe288f75591bd6ab29af7104219a21a899f7fb5ef2094781e32c8867bc1ce1b713305f1d19bc159439b8837002d6b00620be15c1a7c93856b441790a329718eb8bb17c83dd3722b73dfa52f621f0d536fd4ad9bb7d7dba50264ef0692cef9d0df7270bcc9fdec61948d10d18c5349df8505bb87fd27096c30cac9239e4375672cafee57f65dcdd64e2ceb91c9e46a13928a15ba4ff9171729b91cbb744fb92ca7f3842bc51b8b6b1e12f17299acfda0beb2f04ff5fd05ebd1d4f4ed1f274b41e1474e91596f9e3855b6c1be71c0c0843843be5c34d8ddc4abdf8a1184228cf8731db50c873c1aa6b4b714fa4cfec37c175e5ef315b7cfc6bdcb922fafc80986f581ff6803d6e5ebfe1cb4782fc8960f3782557c4a21f85eb37f95e04e959029282234f16ef71c0d23f9ecc90fc5c538716413c3bcea0fe84d37c44c2a34de2ee7415e79215037302eee8da3978af1dd83db7562e278afea84a5c3e65430f636d119b8eec7f16a304f2e10587c3ab21e9fc4945949c51eb3e9b37c68e1e2929cc1bbac7f7732e886fef44b1a7f23247c9f6dc74f95f367d5e6231e8d9cf4e7cb4396e0d5286abb11f1a2d0afb4a7f6889e5a05fe361ba31d588c87fe6dad71413b2869e3ff910c938640c5923bae4f5567a9d7438e41de5403b3b48f350b0c4a30ac141616574d280f4877b078b30135a3c9965c3bc3dc56f0f7f32ac3a6cbbd9169f4250f64c0f2b09e3e0dd1a77a2ef99f1faa8f129f47db222564fbe02303b1c7acbe758534e590140c856aa7a512156cf378227728b4678c769d61321d42347a3b4e220c7f865d16a10e2c3e101e085db7b35658d14d79f56ee52dca445e6f23348a9a0d095122ef2c9cb469f7204c4516cf4d09031a3d83164145c26e16cd44accc96e8cc44d94163b39224400b6462022c5d1b5f9d8669b1d8fead348d25e0e159350c63aaeee0aa4d70d197b62daccd5c7a5bd063c427d3878a69e56fdd8e5fdcc1cd42c140956ccd898014219d60e6d3f446dbe9ac8fb409739e22ae8f94bbd499c2f525efbd0faadb1216b389201ec4270d1838f93bdf0d63f20234454b75c6f14a865baa741a4cd0487d3cb4087a62e0dd0ddb526f7ffc5fc2efad6ff41fbb1cbe5cfab18602c1556c244daabbd2362eb8ce493099091bc2b1fc3c6a1cc9094efbbf73971a6e6b9be9a7499142e3668fb29643cbfc80fb337e1b6c4ef6e23e340c9a7fdef38634f2761013d3a8c0a225498aa2175ee547090820ec7d08078738b6b83be597c77ea68da01c578aa46fea3fc5fdb4b90fa31dccc3ff9d8340a1dc85ac7b47e57f1b97ae1e59115fadb949f5f5ed403072f88cc3798e3ff148b38b95faf12a300832ee1e91dc3ca8a3e7dc10f6b08e7cfad60113dba1937f065b28ea7102df8275011f7b5b17086334d38e9c994c393b84624a1bdb9cb07a4f73437e5f4956b631da7d51732c613cb1f842d306d3322fad8fdedd07cb808df1aeca7118a130202e07436be7717729f1ef8151407139e6f1d1bea407ef06980ae3d11ee0538a03a7f561eb461cfa3715f53ed4f7fdbd6f6af894d42e24e1a88af241796ed5d24ca898f3f2043e6f0076d8e443619628bdc3aff365988034b8048340d55af08555923c39a16054fc1da5cfd790db3a403f96ca45e8b609fd2a59aff133e36f066c1ce940d69f0c2fc67748ed09f1241093554f406568abdaa68b5c34d68809a99c6722c457dc1342fd2d68797a2c5f36620a8545b0d90ca2e0e068d6c8a0ee88956b8dbf3284515af4b0750815c1d192500e2480c927817874c0c541f0be120507e66f5e90a05a69c13ec6cfd0da66649099428e080221a28c8bf666580ce2aa38554719cef0ab5cea1e4bc1c703517c6e37b9561ee21167c7aa70d458744856e5744a963fe5345c00875623932577ba3e17da975151b2a5bf6cd02e778f438c903e368af72d2af9ee8c329c50a0f20ccdeece91d79ec9dccf8ae3757a98ed218500897f406211379a42fbf72d63114ce2da1c6793aea564947c00b7fb0cc634e4a2c9ff8ec77683d8907a0ade84148319276eafb792706046363ae96d648e33a27d5a7b21fc4599964c1368fc3da05178149a39e7edae86c48ba992246e8cd96e40fd82bd00fa9df0bfb7885c36d29365cb93ca95e2d9c2d38c3c779f47db270ed29607273b31fc3acd061cf5629bacfde92715aec7f403f2d13848f7b246c1f9dc997403fe3511f1324bed4e7098ac76268b1479d6c387386bfdfce0e7a3049682da5c72fc703c4f20badf913d8c5211ece1c2e90fd8a7e2bb937433c543864c3ce418bf33d13a58303c7bbbd12b16f67a3a3cd9edeb22e08fbc433837af542c66887b6241df3f5c0cfac35abc395f1d3dc70569222f44ba32150b9b59a6e73864d8b1937bde83c53d0e994efbde6b70a9b58059b3679cfe7481a960402ac60e2c022ccdcbba85f5045c058c7394234816b1a94b9836b8f136bace081c2a7a74f4f3791a91049ed9b2fd4f7d27de7ede9be1af16eeaebc1177788a3c6e5e4fc7c93648f8e69bad5ba024a70ecc7d72b35443230e480d594995805e2c13be01a38003881b30c24f067d13166e55bf7919b210e22cd18aac22804d923e8574730a6c602a7fe5207df91b27f600044d9a75c94ac933cd6e50a449577a9e3537d2e1d7d3e601de2f5b1da65672f6af4c32f1a8b3ba132dad4ae52deee90df9a31bc949a752b7ec14a09998ca7577b9e117aa8359fb37b7c46f433661ecdb5d3f8ff2fdf3cf7c07d6bb61a34f2f57063b64f4f900ff7a4a4c38f0ce885f666f37757d3d9ce92f2925f2681028a4e87677724174bbafbd3513ab3f2289564965e231d172cbc743ffcd66e10442725599a147eb6b43c2ec0fb09e26f62b84581da1ee80917c235e7aafe7350144e8a65e8a9ad4714d9433ee069087bf1d69f5d0a7c4f5a38d5609858cb053749d9d63ba105e92681b44aaabd40f91abff3e0874b1f3994214e4b05c817921fa6dc9c8c2962e6eb2a45c7294901c308a4b30ffccca687e3d5d7ccb1fc754136174985070f5e0aa07b680f66162dbd618bab585352aae901467395c2b18f16bae602a48d7118e50ab0c3525f5c2183bf8368972ba99163f669b41ed406e0168000a555d0351f35429c40b6d71f60c20eb59bb385bc836ca0af2dce804814b510477df406bcaa89ef1b0c376cdace053d41467d85c66dd7aafc0ecdc8a61d1accd8be1951be31909ea9c93cbef5e58ffa54ac2a7fa8f4b74193a74263878eeb402dad13e983b4dfdb85f039a1ef8cb3466a37beaff1bc6c85bb45d6c50dacdd4c4333a3d5acd9d4420fd3a28d6a964ce70c5d5a9008c6a29871107b9501d5cf740a55c0f12b9491bcd7dab022794821031f9e8f7ee055710e1df2e96d0a97bc97367ba4edcaf5b3cd75dbfe5abd55feec702f0a9e4d71abfbeefb15cce8fcdfcbba9243b7ea3ca3eaef4af346ab96d1c4fb09f7e656576d228277b6e6bb96c7e506875aa19bafdce4fff06097d551181392396fc0316538dd13477e4970c011aba74308fe34d76187fb39405583c8e65936176342f2bbf64ff1b99bd80e2c674fa6eebaa36fc90fa6cd49e1628161eb44e329d45ca07449bcfa792c0f5291dbf87386c2a7cf0c8facfa180890f1699054a71cfd1516999b5d5827e23f8f1960019762c080b79eb67a07d7791ec1f1793bebd2f19b3eed61f97ef6c539993fe1c96574c7e52337a1e9c7796ef67751ec8d0d770d0123e726dd1a8fdf2d29401d490d4f5fb9d4a0be9f5ad56d3c12beb56a14793c1ad8dae8aa8c9165092848071e28c06c9c2987d774c40ce339dcd1bd93153dbd1af55e6292901ae2f125a18d93f6e7f206110b6b1176c287cc8330c1af8146d429f396422ec98eff4a3f146a841767ac138d49129e44c9ed15f20fec39a330b065aa23eac7d30203162fde3c0f003824e326dc6ec05588671d2a4aebf03567d6edf4bca94e6605eb447c6a1e08f199174320e2f22ac55cbfc85afab5a32e293734692813756ac427ac503ed64929849b737defd3a1318d668aaf16ccdbd7c39d45fee33b30fad793e1d0f9eff0362f709de03f7148d48dc3e8c3199f7e90184f4b9eeb3abcaafd04542fe6289f91efb2e621945d011cf9ff295fd3cfdfab8b86220823b49f0988c41d251d47090778c0450ab4586a119465fef4ef3d5d30b32ba566f36f848196891f0d004b4a447ad42e5bc2d0cef61a881c349f736ddd81e1be171e39cc7f375396f87ef5b4c65fcc358843ec814b08f3f8ac7a8f632bba1b5ca463b5eabe1af71eed6da97c692238fb024a02f4b68110819bf19102b5475b937a808564399a232296580d57ecc8d3e538530ae4ac3f003fcd1183e0a0e41edec5d48ca79eed6c73fbf32039b92b836bdd5d1f7fc31d3c9ab0939e4a749638b60219447abc094d184fb43acdb67cd1daa98c4d420dc6a33f62c26276fdc98eb1d08d1c5a3c6766c10114edec80d49b0c2810f031ccffcbe5234b173244e8a05e8dfd43de9bac5a3b242d20e263471dcd2e327e2fda0c2fbde0750381fdcc69e3e02866bf4b23c40ce84632e31b19a13151445c22929a0c2e60b17142c91d7864fe9489332ab1112ef71f511e1d1323f2d651543efc8cdec3964352072c007dc1866252c3e57e86cdb4a003b13306f4896201193793421e685d99763d81a9b4ac4e0d7364ec75d712a10258c572abf8bfd1129503822aca927be7b41e9cfe0a286c6003b2743b7775fa8ebcabd6494efbc46a318df3e173240bd4b1bdc99f585512d408bdb8f1ef2fa62b6673baa08548ddb110f8908a08c5568b396c36166ce330cf60d35bd649781e066660320a82fc8bf522f20dc26cd5e7f8b8ef5fcafccc1fa570cf6239541585c9b3ab1aa7cc624f7e5d9b3680adbcbefdc2eb310566d8a43383764837d045014e8b73f453898d165cd45f1afa9ce47d7224c2ed21b7547b4883bd7b0c146adbd189e97c7ad45d42e2f6b47c2abdbbef6e46dbacf05f74aba96cf9ecd1b1a46b484338241f970a2b591c0c5a3758a5b71f31373a395c30a8023aff3dc444873e1b38ff706cb90dcc1b233fa6980012b6a20adcdcaf6218792064d34724f6d714a4701f198d43680a44872437e277352db96bd9ff20d13af0f2fddc2c2f4e51576bad8af8be73d6603cac47b8ab4b5b2ef209428f0ec146cfb8720cfd0a5856556ce89c89507d3fca389c42f39561be11e4bcb9b56b95a99f1780d2b0fac1311bec8c80cc04c930914127b56cb30e8d98000b888cae79270f5423b3b5e71c068629b5329ca2c93be271fb3d2efcf1ccc2977d21e73b4f65eb7bbc8bcf14a8e4fb4cc44381d1dbaefc0cc47208ce375af0671c60936ca34a0de42dc32fc79f408655e3f18ea7befa03f3d8ad4e41d00e63f7fa679f0d0291dc6fe4302c0340c7906bbc043ccff05b3e606efc6ba8488152b4e928b75099b79aca5be35e9bb578e7540b6f2bd1bfa287d21bc4cf98ae46208402eaa5e198403550de2f815c365dc3988cb3783da983d0fe2d9d8d9aabb84ccbab9d71c2e53f36507f49b54685c33e15f5906772cf971f485af37e07c04efa7d048749b58d37e3c3cdc886587b9a670edc98f6002de73ab2b4a0a28bab16e2122140a1060d878f4fbeb03d9bc45ad161d755641f4f80677480d6dea1c6f22b38ca879f745c3b942ddf9e157e16132018b77c5f85d8cf106d551c2c18adf525c688ece9e7699a963fd062cb26285229d9f8aad8bd990d5907de0438b81e948868875990c7ba34fbc7dc70f505944c712cf4c8aa8f3b397c3a8e2b6affaa18ecb2e53860d81832c861b202346c4bf57229617436451ba392a3ed2f9ad0faa7b7328c1cf5c8df6a5151c901930daf1efc1161e6bf1c3d98a49bf3db12781e9a88875f059dba30cd42fd81d1e2b1f9c5ccd3dac4ca86597642e491654350bd49d9b06ca02db29d23bc8db9778120edaafdc04e3c9bc1803f2984ff78d529c4e415e52520511ff2071d0dc9e3614db450d981822a5b84e5b97b7761965e94b1ddf74003ae56e86783eccc1d760381ef6e6ab1d65fb14bc9db37f2a0ca90a84e6c0566de27dfaa34beaf7eb1ee53095a2acc1f5a3376e6b52c7e89068fd0f578b0e578f3c5d264392d7c9f93597d805091cd74cbf80af2c9cf6365dc3da8be297430c83361b793c3e7f46d55ffb0abd728d89c0c2163d5f75ec7af852ee6ab295f56aebdbf6ebd8ba13e4dd305754cfaf7aea064e86253ee2476661600b0aea1bbea6844d5a2e66c199a08370af05c4c925ec67a3cc28acdfb1ceea7f87f60c61c073df64df3cd4fdf767a034a72d9e6fda15537d86c5930345b579bd6c46fe2b702857a9fd6ced44a3e47287a5f3054f3c9e8382dbcbf8a3e00ba80f2feec1b62d73368db22de065e1e44b46f677f769baa6fb765da17f00e2c67f84c63d2cd453923453f63700f99c0db51223faca7d5137248575839100d1d22df4fe13e2014f16adb2bbd2371a480ed1c9c2341af33a19d6c7dc303e67d3f417748df72ab2c72406a8a121e58d6aa351b6369e889587cfa7130ea9d1dae833bc5840bfc2390e13d1682791be3f2d00586812ddcd4daef2cff1278d7b20b1a4b7395821f50a83e4935e2712c06b6086e7acc8c88711ef8703cd8ddae6f5252f9acc5cde50a69bd862d01bb09e6f0c2f25db267cabedbd3a5c9ad4bdfff0dc0e267bec03c821af38e1bbbc313ee16a868ba9281c001aa2eef1f67f04c17c5fce85680fe699fa0db9ce580e569df25d463f28258f98b33e2075ab7b3a36a4aab9ef543824c803a9997a308988d326b948d6f163e27d7a161b1967d9c5f044a5c6c5ccdcddd98c9eaad839e61f0b4e90812577dc05db892cd3f8426b0c1e2cdd1cf97728eb857e9bb204694ebcd914fa653c68d011e20ae7982556c293498541b89bb105fa6a5fbb9b66e89f12a23f48f06be6193852fce2594e415ea1c1f352859790f1ed72b967fde579f1fc74be7cdf5f6ea21a5c93fdf35c450b006691690954f3c805acef556022d7d4f311ea01b84572c1724c4f8bfdd737af4c0f243d29b86a2530ea191a477a57869ea04903f4d2de7a5998d8a55a670bce1f9d0dfcb0bec7ecdf9d9bfe3d13d2a04a81c113e28d51b5b0c9c86bad3c942f6879c8a0c02e3e9fdf68daeb14d82d568654e0aa92ba4c187436633763de405371f451cfe0b8d4e43136f11f2cbaba0fdc89087fda872fd983b2f3299d02fc7d90c2a7909f98c9eb32a05c96f8f755518685c156d750206f519467f3aa095fa04bd176bda04a45d7433bc8be915cf0f3b7fe142565bd1ee77785651a7028c36637e409f2a024474e8f4e640c85ef3b5ea4c020b7ff1f5e7917a092a3fbf3e0f3a57109bcf328b7eebb3fd8ba75397d78b512c08b7b497e89083750d8e5ce3658e3b9f73d395ef591d0eccca4c6a14421cfff892dd9dc7d6a928c6c30ddddac5bda5f679eee972f8eb94b4e5fc0177848f3f6d86ff14d53f341bd4c22c70e5fec9b69c96f777a1144e176694f3ff19caeda25fc3b6a89d1e557ea4d113dfccc23edfc8a13fe8f5d59ac25af118d285930cf8d95caf6cbf3de35bf8f92064d5e3f2f3ec9a6377778b2dde28cbf93116bfe5c4937d6de313e534889ee3bdc381aadc9b3047c8e2fa118d35ce8e73e8466d0127e2a9668bc3b10ee9643975d06d534689d317c99e80aa9f1519daa5b247a6b19cb5b127337c3e7c39fe9fa3f883b077226f76c2f374b7cbddfe1ec9dfdf669c2faa318a26ceeb02e6f3ae7c33c47338f534c6f2a8afe1f3e563d74b5db167cab9c459dc8c19f7f77dbaa8b07164de385281e3b90bce57404ec7b5ff2f550f12ff5cc88af787bde52e334e371cb924b297f7de860e97fa23f81efe6ff649c243e0337ef770e7c7c74f117b3477878fabd8711be77bed953646ccd4f9acee25ace14378707664dfc3bc39f27832d13950e8a3ed89ba3cbe057a5378f50bcdcc9f5db0d3be019827f4ac042741047226a95660dc8ee3cc35b994f08feaf87f8d9c0c04dd4a641d5e9245844688df362f733ff5174c1faa4f4a391f23434540a31f18d4f04fea75800a35f4ad69030adbbd09ee01b7f2885e2187f36a8899d1eb5ee00582ec872edd5b278308093668bd48e71c15286752020defe00fe3433869937a9ff92952a879d48cfb0a29038f92b455cae984fe11b638b71f39024cd19daed691ddd0f5ac674ff454b79ba00a7fe0dc20b59694b61c1926f73d04242797f8fa73c7124dced045ebb2c96b1de0a0e76a6e201d279f4b1ab17e935d43ab3ad2eefc7489b51daeb335f0566f4409a665b07c593444993fc4ec52f732206e21e7be70a13e58a8247d8ab26e919345d157bc4cf8e7b5a02e69ef7e030ab572db81a3a3f00ae2aa25a62db5f5d6b34c482e4815796d177dd4e260290a7019d70e13855df2c9298bc5e59cb81c5c502556386a5677d4ba4c1448a330e73e3ebac37da30d1a8ef6276f13effeffbc8dc6082eb269ee6ed572bd201a4be0928897e66fb81be46eaf51b1a8b79979270386b245162f032a369cf0bafafe026ea39d16974781e7ec67a212412043182057e20b46455d15f8dc507e43e5339fb1c8dd91166cfe7b154c2ac2a32cda4c93bcf0d2955f41a08bc8d4b990f6697ae0b0ad27df721de79ba5f024ccd106c9b6b895bbfdb01ac3d592b585ea11bb7b45573c017fd99a01a5093466b2d0778b7b90dcf8d48395945fb87223647a6873c8a2227957be09773849667150b51ae5d3a7d7e49d2cfdeeeb7eb5ca242abe4e765787840ffeffb0a7fd21a7433335553b9c1a898aee71c53f852b4239dbee36267746921f6aef6ab57413e1901fa0406d7ace7fe4cca0f0f79d617055995da410e5bab31fb1b8fee8322c05549dfd38883904ce3b70a0213ae8af915d75e0ae4423b817503f0c4515a7474d9887f614ab3e6bd7c6c3d7a8ef0c73b79031746a18dfa28d57ecc7508e578627ef62d0966c4ccd886a04d9a910b0a66c9a14d360d6ee5482687a31ce956cda5b147b8e4b634fa25b68b30a173586649270424fc4dac19700f2a905ce41a7a84f9dc0057bfb86a93b49c5ab42cb1d42bb0ecf8038eaf86ba0bf5aa08c7bb6b2dd186b82ecaa05ea43d3b4d308b2536ab39b6477d43e35c49a428f20188fe3298a889099532baf5a253d7fc01d4bfe00bb6dd3b5f9b6f61840cc5da755a6ac98e743f260efce965482031fe46fbad39bf6ccc01dc1d7b6c187dc85512bc1e5c4c5e8dfcfd6475f873314d073e641924fc9ff68c198a7631cc2fdd3541f769403330673bad6526f88ceabb5752a64927eb7590dde3c68e6f515c409a3fb66a4d963a039791738510621c5861ddaa092f1290d746aa6d183e3b1c406e12a111edc46db2dc15b723d20937f5f878451e93104a5ae2ceb7af89ceb65d5e22988b0ce23a9082be025ff103240560fbcaa946ff3428c10508af6f7382a28ee743f5378ff054d92134b39ef3983f3a80f7445e412f82b5702fff6ef6841e31a406dc98a6f6e2d7d11bfde92392d133bb1625d029808df5838d45a5df07c6842db16389ce9132f20c17cd1592e538100f65fef89b469654b477311aa201e3bcb08aa1f3c81d10c3ac4068ecf146073e15c755027643747e771333393a593103255a8c0988d32dfdc2832253fd8c7e829df03ac2ae18a49b63e5f21c3e62f138876f1b633db6bd9e3c2d1b73574bb722658a521ebdb815e04bab95da92992e160d409b08509afa6fd72751244b0e13bb6680332b357a65e96d562d0d3589f4d20184aa27e1329f18b23f3877bd615a5fbbcea25ba55b0e6ed8b5b10082eb285afa47cecf412663dc55a5332fbd7b2501f7b8b7674d8a6baee427c4eb7fb39f75227214ce568fb023e3a790cd7bddf341f0de828346eb529edc4db4d7efcaaf0f1877d51b8f2676246c00fa1b91f3f2bb3e5a8172907c54d1bba33036b97a2f11652069a13577ca8760c843e1c12b667faea0cf5804474d707d693588f54d55019bb125dcfe9133d16d0d50f3c1d7441792d62bf64bd15398576c01ad45fb64e2400755a4b65aa0981d035b29630a1b69f1ac096d9e24c11375ca98be6ac0d15582ca1089423b252650435e2272c32586bcf3cd64717bdc286bc5b0f336a7cf0d516ece83512919be9bd1272ef70187ec938776d5b474e8d153bdae9c68544fc1a03f8e80632b3fc97db0a8e626591e42f16bbcf98d50b1a9d75e16bdc41b40bd1bfdbacf3e3e2a89ac163fedf1536c59793f3e911644fcb4d6b6be421b25ecb56ecc2f5b7f6348dd7f97b77cb6a5af7b5974f7d6140d3f5fcdb3519ab0b3eb1365305746fe51ba859cfa37acf60f9dfafc7ee6966c8fd821df2839df5b45dc4a328453104748f68a9a2a33483eb6bf604754600bfd747789a9fddded0f8b70dc3edaa3b948477057830727ea2ec34ba958bd4e39f0ab8a1bb37ad7745ff6738d4f85aedf799f34aee8aa787153d6a6b303cde5d19336c2d1169b6fd0ae53a45baed73f951ebe0afdc7722e29b31b0d3f59147ed20aeb8684b18e735d526226082456e9dfc3f946aebc28a771833e36222027f86033789725063e69275f5bc55dfb5b720df34d9bfc8a857f8e9ddcac00f0dfe0b294f82fc4f0f73955f723687360dc1e469d7afd9bbb6c4f3e5787c7df59a097c820b7bc23d1afe41893e64069b8a61bf82e97d8af93ee7aea6e2ba11947533f0c7d151675678eb3f10497b0d0aae3f966f3de3f50a7c2394fb566e9f65dbcbab5ed0e31f5dc4c30075e45ac9838f9636204a6c3da2da6b9b5f63b25bc47a99bd7f0048dfaafb8fa411a76ee4a9c3fac835b6f77575efa251bf4582f7b43ce779c5b755bfd4b21f17e39d87545fc83cb9403c688fa72b173cc7e9cb488fcd75959666217e730bb74567d99f4be44cef21d974e83a85c7f6d493b9aa7168ffcfcb228691f5cf8bdcb3cacfade030c69137dfb647113dc71bf69e24abf6de4cff327dd8c6912b3d6fb6efdcfb7d1d8f2c24f992a923578046fbc1005ced76b53bdce6750670d2dc003eddbe7acb93cebf544604bf9e1c56606056d1c39a4935fbe96658c9437e6f41c727b7cee1a554a6de2a90e2759da9792146b3f6f57d0ccb2e959f29adaee8b25b43791f1ac3a1c87b29ed51b5ecda65c866573e9e6852c1c54763f834eb09033fa48a19830a1124e75c3971a4e8dc9408f83c2d7ccb3b1e309866cc0f1b16d9f64af4a7991bc67b82665e29c80d4b3055b39396b6e6fe312f31b7786b5660ccabdc6e0dee355fe215e325da47678f4922b5327976dd56e0ad4573d2ebb8366f817be4dfcee9f8c0cb4f27fcb2302a23426d196190135cfb16cc093f10f9bccd4bc3399d577fa6881098dd2ad82334249b0cec444c2534163276d91da34a35aefeb67c3b17bf28ad49c104bc03017ad32c89207aafd2c926dc982eb4b7cd2dcbf6d5417c456d3bcf7e6659a0471dd1851b92a67643cf0cb09e88f37b518a3820709a95cd000b37dfcd109b865e4a7131392eb00ae2a3fa18fc014694d1ea63f5cd1e0539dab43088b69d519f33f905667494d3eae0ca36ca2738a314f0f4947a255155cdf6e6ee568a16ff3d77c36eb90d0903eaf204fed00382bd41f0a9677a6e61537cf8f02eb572369493f7477a424c9abc58396bcdfe125fc07f905ba7f9513afb518ac7abdabc87de669afbc7d9eadf5b90b632d28a3ff055e8e6210bb24a3e691953fdcd1c2a226e90ef2baaeb4175f91bfb8eb2fe79d4ce7d06cae8668e449ba29571644719b1f8aed00c34342e1a2671eefead59a30fe8c7ca6ab5f6289cd3318781fee95e70838cee98bfa187cca02aeba270d78e9dd89d6b5a251c27aa344f206167b92351c84f0e5444623e274780f3d474edaaf1c086caefb90571a19e591dfebe0bef972ab488f25ccace49dfad227160ed0c7ab70a861fe3db7c53698a7f1f594878307c68d785b40b954187fa728754e93962d9d8e82115a27d253daf9d7eff63e3bb55d7f5a80fbaa45d90bab44abd2d0337d5e7fdd0c8fc8ea5ff718f016bcbbbe1dae00e09665edda183b6eda497ea83a5713479f992de5469075e65ba923400a02cdae0ae070b695a7560da43c3e8ec48a553a1c3afade0e24b383666170c5d814cca39b94cecfa51263ca2f838ffd9174366c3ed33bbdc256cdab15e00683bcf9d193c1bcbd65aae1f8502aa7e80f7cbbc1c982cc026a01214fbd67f41262ffcebdf5abe84511e7019fd6884131ae6072c9c0f82bebe349cad25a6f15643676c154beb0fbd4a9108739e76afda1275321182dccd4d63484d2aa16370b269dc15aa220e223e770c36e7a8b0d1e730901be08effc7f730da760537bf5abab9a349caee80fee657f165673adab9c7d7da9d81d01d565f6b5a489e3b14eacb945164dac752da9ad21951cee4316dc82f12682e95d36b11937f7761b4b7f532e96a7305fc12d1423eea71b1ec1f124afc34dffe1f53fc3a6f8bd7887bca11cd0e869a378009d5cff2df32f0adf0bc42e720ac236fe62a35bcb593819b35d2b1aab79132f23fcc20a34152170623fd11b2a73fae653b449d6e4be2bbd2d34bd138fa5ad829f6460a15aff60551215d2aa20ad16b64c920be19e4a092e34e105bbd46ba1a811c7420676acbc13d76f160763247ff8236f709ac393166a27b9ab93bda55d3f190b3d7c03dd1eeb14343b27fb39cf6923e526d5611d060113e220ed5d018377f5cf968beb00ea2fb94992bfe79fef7d0ad7e9362d4442588498ac2cf0d5fead1b7164d70bbfa0b709dc49123805b37ae54b50c85fb65e2cf0f7c65b7b78b2f46640948e112dc22ab6601623c360e740e3de1cd0232dbf90afacf80d07cf903b877e63e4cf29bdec4f0cf038925edd16c2d99bd75309a14299674a50352b6aa6da2a72c1bd08b0f496b660adde395f3ce1d7efcfbdcdaf3a20ec1da39778f1e66f2488d8811cfedf1b8c2b02e1836b93ecaebbb688bbe2ffb16580ca4ef5e88c2c4f789b569e989898261b676f8a8da7f858e860e28913b9c0c28310d062dced1ed3c9af29ce070579cec1e394ce2a4c66ac1a5328fc0de094746510100c010af3fdd60b13aec3d0f6079a6fc98ca99cf4fe2f55046b3108dbe3ad929789500c8685bfbafc1600618798cc4664610e97e0ced50592e68e52ea3137a36fff9693c438794684e600c8ca50694a699c3465f890abaccbbe3f878d59daa76c71b7df322377cf1e59c65ff341f7c1b01997dfb1bcbc4e5d932ab6f9e4278421827a99a7f8270e506872606acc5759ebcf2e43df41d756fc301a03a37b824d3b81249778b12235274a4f89f83c315b4bcef09248b73d7f99aba905c07b7a3ce6ec6ab92cc41188c8724c520a36f4108c292035d0f8741278a491d6155d2d867f1332d4ce4c8b939ba158b78c4d0ff65d64c60e34ec32ae4a3faff18be6b435d76e934b032add1e4d4d816b93debdf68cbf4a6b9a3795f3dccdf391eecdb5b6ab925a43fdfe417f8ad827c93bde02c5a73a741836039d1f9eda8f30437a84b714eccd777a839edd033ef01c0b75c95577d8ecbc9ad3ff37f50e9eb25cf8ff64bb882bd98fd2b485ebee0e9c1a8cb8e5576a74a9cbf76fa85b57f949c3e117f52952570682d3f243db9d11c8488679a6ff44f52218e58aeffe96b06fa57a47a43068d8ba88f7f66b26501dc0b03f887dba7a3644d2c41b78518bba025ee6f7df4e4066488efe5af1ad962d6775bce06a3fb139b6e63728338aa20cda8e8031920354ac8ccc727aea5379f07227bbb95160d3170bd874b345ca50308e304fe233a206fd69503d723c0851149c012036d6e6cb5cc8a593b03a894fbb8fa721bbae5461a3bc6042e702062c76bfc7c203ac019ecc42e3a56005e4e77839fbfb05d80d8d028d9bf4fb367bb3a7e859bff7d6a8e704898070df9e8b34fd343aeb79f1cd2b8ef1f9f16cbc41aeedcc9a06dfdb8e753ba3161151cc71dc7c15f4c89fa279fe8a5ff02200fc59c2e8187e9ec01c2aeee378b5d3d9976d91165f32c03c66919fdb6c2f56053fc7ff6fc3607e65080bdd79861921b57b1e571084927387408b8f9e148dd15f720a7230bdddd68c0531f29708455328cc9dcdd27007a35081a10f23548ed481eda8ab24a36f6442e090ec1f8309189bec5a2e6146a26898db8ff4c9e733011f7eb49cfa5413d7bdcb65b1879fca8ffeaff46f698de380054720e2039c68b0bbf10bcc7f4407a00a56a43cbc7ba8285fca1a13df54cb69e120389104bae5adf77dbe6c1fa4d4552e572febfb14c42ef4b2f6b65c509524d6ac747bb53d52aa5d9074f8762fa154530828dd68634cdd235aa7d3b8e9d5c3dfaf01ddbb98a3373fe6b03bbad216c0b772cc5c00cd48d16ef676bf2bf8aac93f60d066c488b0d794587befad4043bfc6feafbb2e39e03c0a9c778e5b6ade74829110f67e007f69201290f629e34abe48643dccc6896f4e855e85f3ec1cf52f172a00c9b53c68f133842dde7a9af7eaec89e073bd0d872904587d174f6dbc2192743bc791e4df707039b419bcb4350b006a7812fbccb24e0d2bd8f951e2f9c420317916be52c40cb116321ce714d0522ea2f02aebbc1f66ce111e6797479fc17402b9573619c15e0409d2bdf1e30547199313e879fde8e20a0431b727c3b86c46cedd1757f5e6278c086eac7bd9e1539daefef82b66b19c0c15d3561cc77bdeaf55fe6fd206ee79173c27ffe6428c74e84959d01c4bf2dc23232212fa166267ecedc1a2d316d62f4b11bc7eba02453a2b6b5fd5d59eef6a70f64344856b6fc291e5e6fba244e8c5e27aae341ba9f4dbecc6dd96ffc03df10f6ad0d7ea5eab1dfa7aded78281d1d3c079501d7a8cd65699ea8028be8d9623b69555713742a97754600d4b99c5e806cc262cc3402215431348579edb1d8a91cf88eee754adaa47a08d07fa952b4b5947d27ecaad5faa88fb0a6e5624018a7270b6502d3ea35a16ddc560e7d0816cf9b8e67ca2a1fb2e581fc57915609040aec5a0997e1c943ed6e1377bdf3cac1ccdf0f36301646068b00869a6511b1c9a5fb25599de7a87f02411430103c34df40008e01f2300b3534ead022ffd1d09e546c5e21bb5f4c26f574f705be903dfc75d97c83bdbb333fb8c886a3822b76427e5e3ac9a301947089b3532cbe4f634e1675ed0d2145e970de06f7e65eb68e36d857f37fd3c4e8738e58a2ef0535c371c2e5ed4ee663cf441f1c8e7f900d3ec95d4ae75ef1fd4f37189fc7831e7a769bd65b2ed3de415ca1804c9bdb2e93e32acb8377f7cfffdf97102d42657f83e53c5e83f30bc43c3b9a2942b5c676a69dc3426d724e7fdcb577d786ed1c601aab0abe8824b8d571f3cb06429e48920cf5fa458220f32c5d64083e9fe31fbc6121f0fe648da255182ee0b8e7599efdbf77e9ac77ab5c9f4261949dbcf47ddd3b82e63b2e81041101712ed1e44ce21dfed02603d0379638b037b72230b2726855b784edfb24e332dabfb2507751ff72037ff00a30d81575eb3ba9b90937ee8ed32dd1e8b878b9443e66f9164f38a578cee4e4da72ffc600eb5ab63f36533ea8d9657ea3b61ad2c235eb8bb36a3fba0775dbbf5eee5ff7b7700e20fabbd3b88593c33397968c15b7e3db4d549c46d059d2ab2c02d49077eecca7838d40b300ee3b4358da1e7263bd2279479c22c35116c45386cb79a7ee6afae151ca60ab02c58fde2e9261e339d302fd0bb0504400b2ad1d0796a5fbf72f7e65c7f4ce81025d91a3ceba2504f34c592f0c132c6765c340f3064e3f7a2e7fc0c1d9587012a0a2375671fa765dc1f42320f3fdd2b70a80cceefb6e7c6b1cf5625feffd149cbd421448709981f441a5b1a3ec181aad47a5e3bffe6377063c30dceef57ce659bc33ccc09fb3fd5d109b07c79457452d2fafcbf6c66e79a756d309e73c064998f2dacf49c8c6eb003a933ae22973932626e8aec2b797b4ffd71cf12e97e8e7435b68d6ca12a91339087def89b759af706f088278ec4a6507562411bf31576ac8189a5874725a66cbff210774791a651a019f753d26d689542e8b35c2686fa8844a53901652b8854416a9540dd95eea61e7c39b4e86fa9f7f67f450088468ac8e2efbfa1d52e08386dbf60d6237cfb583cd23d6e10b5f2c1231a41b53a160047341c213d6979f20de7185a0a537348fdf05166eba8623159e44cf8c1b8660ccf9ab1341d8e6e705f7e2b029ec68711f256e8cc47ac31ef9c6cb2d36a89e52415af15930003157b5c7df267600c3a152ffbd530822808f74010336153da42d87f1ccd664dbe55610c8af559d6124f81330e9e7fe7219ab981c7be6e8a4c31a574de0212d1de87ac819eee84372de8d771c22297d0f98a023d09b7311a48008c26081a1b660aa15c274b66afcf6e7b64a470e9065e5310c407845858619e598d03b162702c50bcedf1e95e614f9884dd82096a728348443aa33ab1cbc943d3e130392f55c580fd0d4068305497428c01f631bc841aa25613805ab4ac135eb7eb65c6d6defa3c6693c38aea503039bc43c8fb26da6afc60a10fcc84bd5db8b919eec47c052f99934ed45c9e1c3a29701a8ce9b082bac0f245f4890b6896fc487284989464967a69afca1f81584e41748160d067917a1fba987f14ed30f31bdda4ff9aebb64dded4a031a9c2720edf7a85601201644c0aaf42f1a449d4647cd7942b3bae9694a1160241bd81b309bc11f9ddceae0ce69bb08a435f6256f52865f50ef136aeb08e64f4247a8cb8931f2afa2f6df12b094cd45ddbc00569b8b5a5bc0f07d366ca7289d1164da672886485545ca66a31bd1c989969b72df5e446fa5a0f8f7ab0986fbcfc0e73cbb360b70ff48d40947a41848ccd57104f888c0758f4d26885f95538ee071be1330a465dbc1f3383da33db4bc2aa9d85ae70f54e2e9378db8292429937f0805838be7a983ba73c07ac23a986af5fe0d2913efcd56de80351e571c3605265aabb9a15ee6583e4236f00a0c87bcfd2ca711354b7c76b0cf964fdd13f50de29a579767fa690a30a83e6af45564116c7a474e106f4fe9360451d3c23bed6095b3abeb488a38637c6512463aa5f65f2a0d89075e7af1082742dfc2aa05b280ae24ac4a00513fff12082eadc358c3deff7c0e3b01cd865a8164bcdcec2f7392707f7f743fdb7108b9f0661e7f73e7dad42904e0ea9a335e287202b241808ff8d1e5c8f17629e496240f248079d12095c3d0973394a052bb42a68f90914f7a5970f00e8b8c1bd844dafe22fa5fef2090413397f73f77f1209969c62054f206422ec660c9e516abf064740f3475600029bae571a27a59b80a6b2472dc0d64cfe2392fccd0c9b2678f2f17f4d8c1be0477c9b216b06fc41d6fd799fafbc4506be7c35865e8eea97477bb1a8a53ed7195435b96f9b11ab8e09128017c538b6d0b163546ac2de24ab058a7e4fdc6ed6b927b2edf904e26142f99c5d43f83bef5dd531412dbdb42385d273ead2d1629827169d50dd12329dba9a19a0e821532ad389f2b5253bcf1851639adf2d95c06cff0ec91332e99e335e2a356ec958b1a5345e4cfae7b1b25e57a77866d453a59587a380f735d90a4edc5bbf33a6dd92e7f4c7bdc10e78032733f7775a4f79d78eacfa357e93c11e4dda8b1bfe24f59f2d554d6005b5fde96a2d07043bceb8ebe965ee31fb583b932f47627547e29ed7f592ed632f62018f63cfb5d67a655aad6e9526991ff48b732adc75a250c530faaf22b58455c6246307a39779044bbd3b58441985d6d244d9cf8a7b136f7a5ca7f3603335b7928fa69a4b2133be297b9f7706ab95fb0f6cea71207434493325d162dd5c5ad45db86d1e2fd3a69651c2936003556716e803002ae509da6f91d7e9c6e43a449504c753367ecee0fb75dd4d47bab555f4fc594196f6542f4c93dac95e0b701bffd028498e9f6f91135aa017acb32783c302e25c3013cc3333cc3333cc3333e20d45aa3ad9143b8434a3249d14d877fe803ffc04e6b71a724654a2989a57f60f87f000002c43d79dede24ad0fa70773072a07669de31f6b36bbbbd68b111f9337bca7f56c92dbe97964dca0ea50328fdca8d8e7b461a19d9bf17d13861a6b4cd860a9e8d4abde5e833175f6ecfab34fdcea3251832fe7525c9c16d1bf5e3630494326348b1d7129759626346c52ac002fa4ebf2f28e793439c3d265c50bad65d451656648fbcbd3a0bd595d4a592c39c89894c1df56ddd9e4b45cd34fc8c07e9928f5527f73c5635045240683475fddea95dafee40ec523988401fdf1a4797b68ddfb0f1f239880e12c5765d439a4d03179be70c6574aa8135ac975e432f1c27d9abd4f4837315ee61883040d8ba564053d7a5c2400834917d41cefb165f0522a7f2e983c8c76a9273f7c865be073cc7e5d332937262d18eac56f7a4e3b7b6d16d0ac8430bd992ab66e1a4cb0807e16e6e142d584f65c2c9633b9c2428d1add322f95a9bf582c387a4cac703653155476fe1b35987bcb12154ea7565ce8117232d59f4ce1d1396cd59ec755d7e650c1440a233d9e648c2e26308902042650b834e8098d8c5a67fdcb5c22d2cb8e1d3c0244070f1d655c80f8f0d513278ce8f0d18049131630614263bf2a6c5bd9b7d64c96b09e1d599f5fdac85e5bc70e15640323132530609204074c90a09fd9495be9397eb28bc592c6e4086838606284491110ca56f3769496c6ec8408aa8eb961524977dd740c1c403c8c144c8690efebf8b964ee8bd45cdc621963228445330902db418af93bd1f3488ff58109100c7a44374b95cd6fcda5c7938c01c4c3b0a860f20375e9d92c743c7f43c7e13b144f61e2032f263de0c1a3c247c9db9919ed4c7670a6cf3361b372b3e84c74b0caac91c97ea467b127392899e000fbce71bf44e89c59d6be468ec90dfc9e515acfca6c28716203577f5452c47e646cf1c562d1420c931ae8ba31a65c63db9c7442037b3fe8ac290d99e2cee2d4d177946be6113aa647882c4a1a10120be4e594d2fee9d388ff62b17020041696c9f849d9dca3c765c7d2e183905758e3dda3f95b6cd0bf0a425c9180905670e2b5669bd9ad8fa59210562cc5bbeba4dba3e6370859c59e8321aa784d93d64a7bce9f7adfb8b1630777710387072c961192205a40212415235c282004159d567f7d2fd99c52750a84eacd4143680a038494a25b9131699759a4120e42488180905124465e7b9dfe66318d2842812c97a9c5337af9cb2f164b08283e7180104f8ce8f0b105ff08b20502423a61e9cb162b3547176a1df9d163840dfe3102c453c009d5ccd3d9a97ff13122060e0fd944fe5aa56c19b5d326a1104d785e9af21ae3a24b9d895b26137a7363b55c191307d19f473f7d6913a54b2cd36bf98828432cf16d6a3e359a6a2e7e0e1cde430b228454a20d1a94ae5a694abd8a126654edf6a7ebde3a9a8499e23a9d58a537c85e12a97a6a66256fb37e692450e9bddad3cfe6eefcc562b1587290a0d1c58d921d3bb6b8e1811b376ee0f03574582c350881c4a227d7747fd4aaee3ec2bc173fca7c7468521d81aa07b155db41d7538df83ca649313a6777d94218a1df2975fa52f48a2b21216411ebcc2566330a1dd4ecf70eb0204411e6d8eeb91ed539fd2611e7c775ef32a1bd571f82885cb4af274f331a7b14720864d059338bd6ea9242b51324c4106d7ac9f971ff0c3fb6c017098e2d4a4afcc75a7c859042a8a1592aa5a387ffcd5d540821d8336dad35658fd8d1c5621921e1d643c820b8ed53efe15d8fda648820d4ba72c3687b92baaa2e420271ec391dc64d069d1b2dba100208a5b4572384d4ce6c8e1b37029083903f98dba995ceed28fdef911ced1f380305217e408b79561d32b7501be211d207a31e992655872b702f1123840fbcd2ba364cf637adec82d27ab0a186af8077702183903d24a3bc755521424ecba420440feb18ea1f37eac336bb582c2bf03270e8f8a1461938708820240fbdc60bf9acfbfd64a30c1c1908c103fbad4e5f010949c81ddad2d6372247d5dc57e301217660dde389cf78527a4e73e1050e2ebc58deec238d369c0c1c6a84d42193a784d2139dd3eb6d00f1c1c34f081d12f332e3aecde35e1e3207c5ca5e9d447bc6bff6620991431acdd4e77e51e6eb098983afb11e7472d9a54a9643838881a30d27e352c26268f1841038a43bbd0691397aa9cf86bc61a9597c7b54323cab6410e2063d3667a1c255692e6d1b54939a43632e3ddae56cc8e56b452bbfbf31993528cdb3479342969669a4863d7ed2e96490eae3711a4c1a5f93b969cbef51101f683068fdda37eb28eb2625f135fc042167b85fc86606f9a53addcb2f257c2109a22166d06b9368e1a95979141a2969019b71a30d27e386163d082903324e5fb58514c23c2303eeadd36ce63f066c47e8f02e74bef4570c8ee67872a549ed36a530f8417e109b85ccb8e283e11cf437dcb8b7ce4ffac2fd31f35f3727b5d07a815122c35506b97dbdea82a5ea3aab669a9031bc83102e987bcecd478df6dbf43252c2255bdc20640b2a2195ac293f3fd3ac19846801d1aff4a9b715919e93464816d637a6fb95bc124ad3178b8587cb20040b6f126ae5eaa033887f81902b2077645dfe5fc828d31a620554ef633add35b7b95daaa02755d11db21e449572a871430c1c66dc50e3061864dc100307175e9881a3032154b8d5d6b9cc42b39657c520640acadd7f696e7a8c7e215258e88a3e71e12963ced9c13fbe704148143811392b65d6e7521a3342a060acdc3e171bebc6f44f487dcc519fda12ea21ba582c23407404bacdb8107b20f207b73bae52d30ca9320f03113f9c7b5cf4acb876c9b70fe9ad5169327c8f4e1b227c385764ec98130281c81e94d155bb6be7d4e5620f88e8e10d2d84af90b24d07791ef6d869756a4d7bff1b1e8e49968b56af5c8d5edd41bb5742cad472fa4e646d381937ecb4e164dc384e10b143d2f364ceaef369ef5f245e62b1e42011a9c39d63941b9ed2c124ea5d9a19a3dc3587650b29cc8348e1f17139e8fa56fb771251af350eeaa0857bf749a5b37a1138a0433e7eb4d18dd2339137f872f251dea3501d64226e505eea90f33e32d7495d44da607c5a5d9e212b1f1e1136ac65fef2b4fd22e3cd2cb20654c5f66e1a1964ceaa0780f00e302c161207028477fc0f113598598e2b572666f3bdd270dc11fd1b54ade9d86088a0a13b17f9a8e3a394538a9c6117aee6b57410efd39ac1bc4137b4d5cad0ae29831b33fa9b328896324f06f5885f8d9a3465f2ee0203913168b23c6fe728c6a3ebc5609c58e1c956a896598b09226170b569dd28fa2e34ea6040040c7b985676dacd5648a516887cc17fb9b1763f4b8e9012f1c23afabb37cdcea94f9540a40bca18fdab9e59de0a2d178e5178aa13ade65ffc3f44b670f22da576f5bcbbd044b4f046d9a2df4b6f261f8964c16d51f125848d06572f225838559aea8ea5847a712f164bc9488b5cc1f0a7a3e6de9f0d3187216285a3589775ef7a0d667f215285db66b547611b5f6e2e870815ccde9e3d5afbb4cd3e057429b1aad589d686cb62c911061937b4a0818814d231747679eaf2316991884421f1511eb3e9a942c844a07046f94c21e48998c79f9092b2573609f1b01b3ac12ccd574ec9c8d39e2618c6658ce14568d0e4919c4182021126e09fddd36c92b2454a9780d4f2bda336f95aecb194b0ebf45a7ffc9d7fb1af259204eddd376aad42c434e2c37ff85022483895dad20fb25c49997504f407f9fafb4d6aab458c808eea2575163fa3c35d84c5637f8cdf3908d9a10811f264f2644ad51d77634486d0860f6a5e8e4e076e94f168388988100cfd31e309ad31c7bd4482b0c7556f722fc48c9972dce0820810767d3a7a974e1b6205447eb06cf5585a7e6cb55f2f16cbc8c872120fecd8c15df040c407fd6729755c652aec3f911ea83b9ca8af0fa54a8c6288f020297257061573329dd0c56259be0206b2c010d9c1a639c712f1aee64fea22a203b3ca60dfba5a7d70ed192239e853b9e91ea585ce411a86080e3c29d6d7b6be336e8881438b2688dc808de23767d039a38cad8bc5b2cec051e225ac63c716767810b1016f426c4d2b957131446a805a99712664ea52d234446880509ff34eb8fc9f5f81249e694186c92cd66a84120d37c2c684b2f883e8e73d7717ab45b150c6dc8948a9d5bbd481b1050e154c60c1c9ee76523284cc9af6e415e84ead516f186132baae484469b9e61e1a5ddead50aa76fd285d7c90ae8a316185ad5b6d7fe91c655b26d1c13fd6c86415cbaf7dff868d67e62d961c6dbc8e1ffe010f4c5471a6ca55a2a2656bd49180e9c00dc3811b6603370c1a37cc19378c19374c191118d142089354389f83da86513248adb760820a94bcf29c5973a7ce7f728abbb76fa36e1db57e9417135378a332d4ca71f541bf654c4ad19a4a215c874f9af763b1a03121459ab48b9a4d311a43341985b1238a6e56be7013e73a2b91310985da46957aa93b0a2ff762b18c90e818e1d12de0d121d0020a1350a06537ab8afb98b6a5804b4a9c471a934f2c4f7eb6d4b6263d86b430f144be51ca49915945bc72d2094de5da9d8da94db7b360c289b59e1655f76d13a6df16f999cc47a3f262b18cf460a2894bc46d181de972e7d3e347daf801048c1b63e0f0c166e0d831c9842135aafede9351396d8209deb4ab17a7df497976b1585aa0e37572896d6dfee7b32e6f695bc298756cce1be3fa785b8943cb0771ae534754bc582caee3871a6a4c28818ca793cbc70b29a733e2243a76a03189c46b938f0df5bed744120b136a52efe8dc174a172f2691d0bfe3cb6bc73545e240783890312c961c6df08f1f5b6c8103c7176c4c20a1067d615294bcc8a42def01c4278fc88536ef1cddd59e9968e0704432626bcba530a593f652c262a449234e7bbd59ea345e9a3513469c7d657489772775ffc562f15142a2e38bc9221ca157b6a6d2b625be34b765a208858e1f1e748c65fab7911c934458dae1f774d2d25811222cb593d93e48a93da72787384af17b31150d22171343e0f5e2aef95fb3e7d5c562c981a3049342a04e9cb6b8ef378d041342983da7b399d5ff5466c48bc920ae4d1dd3b5bfccb71f3511845d7ade9a35d6fcfecb241067fcd352881e5d71099012de518209201a594affad8c519bedcbc822e11d4cf263f207f4736acb584dfbb9bc582c39bc75ec48e38c891f328dd935758f109e42979ef4c17d93c2b48c792963178405ee4517133e98253f835a4df65a9d408298b1c5640fcd7b47a9672ba3b88e165f98e801efd21cbf3d6b89e94a80903010df1164f5e0d181491e50edd2d53b7f55ead3050f06f9eaf444cf06f9c398dcc1d3f791e1272332561998d861f3517ba5941811933af0aa35fe7353688e77b1581431a143f2f7b99d45b534eb47072c164a4ce660d2e0440e66d0a149788ecd5a749338a43994b9c66dde0a0f1c0227146b4bdf4df11d478a8d0f0a281cdda5655d7aaf94a6c502ca27d2a93b4a1d93b0532f22a17842a5638946bd5b514f5a83d209359a8c90b6a655864fe1043266c6f8393eca268e535a334af56e760e31289a586ecc16429a6efb5c5d2c962f289948cf5f9dfc80fcf035daf801a4c49b640b1c3f7c8c329440c1842d93507d6a446b95fe127ab81b9994ab550d5b06144baceb842be12e62c47cac40a904afd43f548d081dafc2028512f8eafdcc2def4faf830265129ba794493bc5c8fd560973d1058a24925a499d637a0c2512e97ac79ef3fcf47abe984181444af74d9c8eca438a94f2085727e5ea1b53af943e1714471c43cee8c86716a03422d919ffcc3f469939bb000962c685c20885afcc3353cd22d46ef7a9959d8ca737e00e06181445a0348892084c8310710c2efde45d2bddeda11c62b3cf53badc632bad1ecb106af796f1daf1946df6b2d2a01462f5a0a7e4857f8c328a108639a9ddc694263bf50244071b83e06575487d23763f6f7c5104e1b69f0edf0e5b69bb1a21e9a1a384a4878e9292336e888103480bbe80012510998e527c4e73ab56b98048869b7da869ee3e1dca1f946ffa328837193f783f287e506e1625a550551f301db6c4c6edd5d77a3ee02384f61cba6b759b243af8d205650facf620549faaa8bc9ca207ce576ed651ad16e23279e0e3e76490fa35f6251eb61797526b74f615a3a6dce1fba044dde855be4ac90e967916f3a0c1a3ad90520755988c521fde5f5de662b18041a1c3bdaada33ae1250e6708b52e6dab3b53cf31050e4b09abaf40d665a283fc5617d1934fa7ef42cad34287058d646fc68174ad32a3b407983aa951042082983661952dcf0e9aca508f17e9b0512c40c34286dc0b459011f50d8806c0d2a366b49f1da8501650d491d3b4b1b911993cc6a7883cef6c974d4fd0aa5012deaff5c8bd3a7eea4a0c1f911a1739cf60cc9535fa643281d11b7198eeaeb5373ea4be52a2e2865b8cd4421031aedfb5beb0625744419c31fe24e6b19b51ef532623874d2b15f8e06b5d1be90801286d385cb6c21dece34010a1832e5ab6450d71221ed203f80a4e1618c8ce480f285dde40a1da15b69d31d0e50bcb05462f5f78655328f4e1b942eb4b625efb2bd42f90707142e20c634e7a84ca7c764942da49dfeebe99fa568011722948ad326953a3f0b8b76faab543216fc24fffa3c26fd2f5b942ba4c4ac4007285650c4ac80092855487bd23a768b5bfdfa1e198901850a27d7b2c5ff867bf5df4551a690ebd45da9377c013212018a14d6b94e6ae1ae999f3ca744c1f51562a2c1b3a89551a0608ba7de24b3c9e61c3e810f5b1ad6c55bcfa438e1b059dd8ef8f0df1b4a1354a183ccccb5b7a7260e5098c0cd7cf41819c4bcc7884159824285d250ba75ffada22861d37acde7857e21444449c2a65cbef0d3d066e705818204f7c5cf8f94d5eac61484720476d4e94da166dc4f6c508c8098c971dda4944bb9d9825284d3c9b8e69f7029e44e043ea7998788fbd4a53584336bd906a53293505b0869bc4cd294ae0e116a106cd7229a6a468dc71e087e8e6cfcfefe03647c6aa532d9cadc721ff4a644a95be96274be1ea4c5dde574b47890f787fc3e55a795e83bc085fc79cb081d5f3b141dac75d6e968afa4d86f941ca8c47427ef0f7fbf66891428383073073f979f57756451a0dc00f724633d6f949b4f45058a0d0cbec275fb4ed4eb7602a506ea0e32ceea52f1179b40a181519f16b52de23f4f8382c82cf6cc209fd47dd80c11595c9feed256a8dad1d70b91587cfa65e4a9df738d1f2e4460a16e523abbf2a86447a505445e814b21f478a9fc1026bb82b38d1eed94ead65acb0b915620a3282d292b544cab45588198f098b943ae9ad27488ac828d9f3676c9b4e631aa8ae735aacdf13dbb8e9a364452819b7eba16a55fcaf185082a2e13dba84f96903b630c444e8116ea45adadbc7f96fe1031456e1af21af56dfcd53a444a91dc5cf39f41bcfcfe2e971177818e121e22a4784eca18d543dd95b7179151a4f2caa3fad08f9bed8b28f2a832aacfdbf9fe9948283ca9510a71ef37db9608281a55afb3cd9e980d2931443ea1cee0c184998dd64203868827360df72374c6d23ae51810e9042a355f7bdc78d599e1841f4d37864c1bfb6dc343641366cef9901ec5ff6da7894b3784144f1fe7af6782b1d1d07de6416610262c29c4df2b0dd1eeda4bb0f1bf663abcd267f28bc5c202114bb827a56bbaae68a9a7129f94b5fa853a2d3d8d94f8844e2f3beb5b3e66894ce29372fcefa414e3bd4a02a1743e88cf2d4124127bb7fa7d96cc7ab265051148a4aa32c6c476cb6eb40b9147f01da79e2d3c6911ad2356263fc6ff9313524e8df0c7a306d9ccf1c47618a1ac0fa38356e2439ebd0885f4f67c427e96c94f116f7afc18dc73e68ee944249b7b3c4bd79cd51611069349c7c3ca6faf7c8837363da971d5517b6908553fff6f1a25a675218eb7320761e6a3b52c11429de3694e97ed294f83f8a4b95627d77416621484311f7ada4a7cd3b481f04f9ed232099da5ba1a10ca4cad6d0a1230478134143866ac011120a180a9006605ce0344b4684351800000005212a403132d3c051c240524bc43000128f9e103f000007cf0e81c00f1121cf81a3d78f0701e1501dca00d1fcdc379500460831b1180006a703a80ac1e3c828c8c0c400034381d40765c4a7864640095599c0e203f2e253b4646065091c5e900b2868e156464640095582ce55ddfeb736ecd9e8bda0962b1f0f01f236be85823abdd4789c55242a203c80fdfa1c3078f1e5d4605169daad142f5c574f304a3f28afc339fb8514278a7c815277529e2ee43c833f1c5621921e94152d28a64ca51e6abcf83d8678415db28b1ab3fe81ff9aa8fca2ad0d142ea17f1fdbf7b8dc1454515e7b33ff5f3c14a2adadd123932ff49ffb2828a93d4d1c44cd9c61959e514a7d3dfb5dfa0a34b79554c714afda5b34c35e8774a71dcf25153996ab54e4048fc079302df9cea2d3dbfd090f18e5118fe1e95ce9c63925168b194f8e83152118521b3a138c86c0514abceeb28c328310df20c2a9f406a6cb92565b7b9b43de109d118e3eb98362a9de8d4f4a64e1b27bc7338b178d7626ca53ea57f0512c48c54d9c423cd56756a6dd971bb582ca6a289a39ed1302555fddde7a1e352b2c60b5e204625139c92763a5346d4cc46051387f6c9d3fcbf4d99bde4588bf9871aaba85cc28f19f1cccea27ede8b1637a858a200954a3c529c085d9fb4d976164b098e0d542881529ecc469768d7db4d4259ed6a5566253bb42b89f57c77ebb42db3ec158954938dd0266d4898f1efb4962e52eff995475cba4b558e8e37b24b8e38c91ba1854c8f333a498c4a2376b54935265193d2c40a238e5a6826691a42ae945716b1cc1fd38689502fa5d00e2a8a7833d68996ff9d955b22d0ac5b34be07716f5505117b3013a7d94e5f8e9a0a954398b579d66afb6eb659c510c71cf2458ce8f8ba329542d84a88dc36a1b3bc926ea04208f4a63e35a34165835e19c4229a7f35e8a02f2a8230e9deb8be5285d0b75602a1a6b6df9195dbf801642b80506dd4ad51a3998e235e2c963f985a32b8bd8c2b7e68ef85c87c8eafeacd4a1f92bb239eb4eaefd457850f879769aee131dd83dc8bca1edef0159523d64747f152d183b5516fb383bbd0f3f2b0cbc98dd13ecee49c482a78e8c44a518f5e5ae7acbbc3eaa6b92557fa776a55eca096426f14de6167dfa25207a35ce9a33e68ad49ba020692810a1df22847b9e8f0ae7f519943db9a414c66f575327ff890834279499dade2adfbd1e3d2249538bc5a6bedc52939f9fee58c2954e0a0d013c257b68e0c255f2c161e3d7e805183ca1b92176f1ab3562d63c778248c8a1bd62efc536c888e514a178bc58b4a1b32712bfb4e63ebcc87fb62a3c286e48b0db17af2657b7ab158d8e8b163075fbae8e2861a384a1649901e5cb8a0b286fb747818d92b83dcd32b6ac8d49ea8abc860b67fa09286c7dee368195e6aad3f153498fa34a879a57458f14616098f2c07f2a3478e1454ced0c6e6fff017a9a36515331844f8687bed39c3d6824a194eff33755f559a79930113da44eb786a44becc187c53912e844b351d9d0b8f0ec122f1344250110323d4a5e8ee6779f772a01286f433b756dab966f347a3020665670cabdb5b9a4e5ee50b081db56f75ddca6c1f342a5ec04de996abafb39bdea384a447176090d146a50bc974d12efe1bbc747e01a3c2855544952d1c357483bc4b9d748c7e54b4906bd3a6b3b6374c771f952cdc39a9ca98b3d8a8842a58488cf9eb6f7bd298f98baa5cc19895686f295ccb945217a858e1b76d6dfb52b4bd262f160b57aab052e7726384b8db525d2c16f7a1838d910a1596b2a64a9e3ef11332369cc42b537895c789d725fe9ba52a5250d4b7ba53a74a67d907a944a14f9da7a4c9866cefa1808cdf9cfdc5864fa97b8259cbbd52aba32c21908a133c2955fed6ecdc4533a3d2846318331d56667ed242234c58bb79588d79e7b58e190307890321a92cc1d7ba4bbb67dd514eaba28475072f792ae4c7e4320b2a495885c7514ad4bbaa7b9170efecc6d79ec93c2b79c9118c339bb773abbb6db947c5080ad19863ae56a4bc0f49a50827916a567de8d73811501d252383e8f0dd108e9721fb9f427cb85a11c24aabfce8edd37a4618044c688edf7ae995bee251018231338af12cdf23831e46e507dd6747a5e2f34da683f4f001efe9f3e43c994cb35d2c9615547ae026bd9b771a3426d1e1c15194b6edf498848c59253a2a3be86fe56b61b3a9e7a9121da89e3c7f4e79a3fd121d3b1c888e0b1b23403c053938676f769421357ebf970a0e1a1d36c36bcef85a760364e547fd95ce067de7ba3415a67a4297824a0dce317c7ad623dfa24283951e7dbab294c95572818e9291efd1e30765167ad4d831ea30294b679d228b54b78e78511e734a7184128b77c3afab2af5e54ae692238d335e408185aa95ccc14dd4a8aa95f20a763dede990f2e54cf402c5152bf5643bdb51f44474054a2bd2da3589e82a194fe65c58f16b592d7faa6f75f435a0ac02d91215a3734a310fc980a20a47ba5ebd9bf12e32ac014a2af2e85a7ece51abd4396a0c0a2a0ed3695eaf7f281935ca295272857bda96e6b944174b1814531c465466a1d456a6c75f504ab1d2afe46f659ecc08b7a090e29c314bf710f28bc562b1e4b85046e1aeded99caa5d2c168b050314519c51af28fdae8804a81472b36830108602614020000600428acd4c12e31008204054381a0a49a5c2597dd70b1400004a4e385e4a302c18228a0502916020108583a14030180ec43018c54214895138ceb536dd5faf58b852735ae16cadb16d7b6f639fb00598ffa0dac94a11f984ca1f07a3324d8ee28a9a374ba3851881694b0108de18c38300b59c2d9bdcb6fdad1908ceed8ddc5e50b8da63f1c76e36003c60a76114173b10b88a603fd44f2349e580041d0e35f8815da47f2822cd511a69527acfa8e11bb9508938e8940e21a9a99e0b42ce79cd00afcad76ddcda3476fd6d55f2a8443495bdb2ba153547b3d68f9813da248b2d2adadf1dba92ff1a676315ec2a94a3489a01cfec4c416197329875f004ac96bf5ba1d28b9ecc378fd5bb3167db898fa03104c8a729f94256edf9039d73fa10e6630910f957b4f8fdd10382d7f11f9400f97a0b9928f2b52e911e2c5005842ac062ce59c8da5121cbb4d28d5daa2e5dda443e6acb16194ff4dedff26b397a0fd48b5ca349a38dc0748d27d3c0c6ac59ccf02a48d84091b383587077264d666c02008db8f337e144480503270f7b67b8bc74a4ea93931df0356b14772864d4c3675e193b2a2deabf716fbae7c515dc89e17aacc005003d54d2ebd74f194e05ed971f0411a29426105bd4f902719877469d3c5d3cada73172a291771a6f9a5c8b27e16e362d74a6ec73d86f79dbab4a3249765ac843ef88204b143300a0488a31340c1552aece6f81cbd09063affbc93a5ef10d6e82fa67f0c79a7dc15389b88e3d25c50152eb2404483603a2ab1d91df6a91f209c3a78260037ca14567c36029a1af804e18e0665a347ce4e12209dbd89b2eab68825625011fdf398606a8c4e98bc19e8edf35684ac171988045e0cbce2d9c51e59172a5bee538f707778b0a478dc1d1bc11f35780fe578eb310ad23f2da9688c87f1b9e6246efd46e63e9868a119cd2976110947c5750d59441e0be557fcf7e0f19c3337af74cf8d91b0b2589cecf9ce8c564b04c81a917b6b64d02cabd1a4cc54cd18f38110ceb21781c3f3f8d2f7096933c81e2b299d49f86c2c2eadf458ee8cfa53d3e6474cb086840d783bcf758bead29e683c0fe49ce841d10078f73c40864590bb51230287e3927dc93bd3503e8da4269a8af2795e39303ec3a848786f6502b8a20246b1c07e5a9f17a86c62a69e6f446e291a46145335dc3b3efcbdf9f9ce7b3bb82a71d0009f78c2580481f282c53008d2774d2a44ba9526fffc3f4bddba8f568e43ac0b1bbe2c7425a78d4206f0a0cbcfbd3073acef5a4198c2e830925bc51f54a60bd65f3f4062107315ca58bc7f7d04269bc9fa4c567747e3d80a9784c69027791efd2a8320e348b5cb330a3f082fd5b0acc6701058b83043926fc213b89449a648844707085d4439f051dd13af2c026566a9d6e0ee939ee954dd114e61b4f5679b24bcedd6b3e31a1f1c17a9c429ff76b73bcb52e7db973b74177010512ce325b77f66e8152fca599aa961693ac480e28a92391cd45f52eebc8ddd44a04d5953bd747df484e9eece7c9c11922a9bea1542f19093051a3579d5bb93bba1a38c25a208b7925578401fd63d57d060bb080c7771e6d9fcbd65bd08d26f37ca0d4af06a9b745049da1b181bae61a22fe3a351eac138cf2e6983b24deee85782406073e955145f8ca35ff15e1c40a35adb5dbd12caf8720cd96f415e07335a8acd68dac49170f349924f77a4b97733f2144f9de23be935e23d7f40544bc51cfadc628b958fd73f570f691f8f7e647191dd37feb734246669e459bad9bbe560e3a4509d5fa77d7db60eba1591e32462a406657df4c69601c34bb3476e86a3560cad8b48562c94acd07bd271caac24240633fedae30c9f8b47e2050db55fb4e4ebe4f4244b55a9fc23ca8e6e8bfc4c6856092f103a0040157869401cdb0e41bba295ef36afbbf72f5181906bec4fa0841ac84e9d2860b2a9f9cccb21585be05a25cb3e616078a9b0b1d65d0aead2cb488462818c28bf39b1f93983551b62962acc8097081354caa3f776639570e3c367a8850fc0d47ae1cb7a8f93d00986187c3c100dd280a2fe95a59bf65ae7f0ff5625a945561455842a506e4bd89227115717d3b5c34b7b8c6de1d4df3d82aace46e33ef16af8c2d740b7531ee27ff766451fa6a98c5ba62579cb009936f0b2797b82440fea54996d2ef204e810f44046b514b511e63b1499e7bdf63f3ac388b7055b146619a86e6fb92802dc43cbc47b3124287842abb2515c534c403d5c534d34d7f4cfcda8dd0ce2993773cb690511c29bd9d6e4e9eef8d163f528f3859913ccbb3f6cebe4021df0715ec0ec672cb62eb13d9d7d065c7856c34763ae7f9912992f9ca9e52d1c074586d95f4708e4d26f9404bf48d1f13e6c9343598c4920296e22c04c30d1b7c8808d48c88c3432988822da605881fed8b1fa7cfb70e5cf0683acdf22f707134bc91eadfc0880c1eb60913a236ec01361ffb8aafa2c418d6e0ac160ee0d065db8149576a908953fcaa3156a6015ecc30a22762311159a19719af48dab1237510d426f27afd56bca4f51619f460a4e5da680eee5ea4daf903b7abb8f0ed9e443604a8aee49545cd6821a15ea3181cf21bf273f633e42b6c74531c3eed8a70d3ba47c802390cec09fbebbb0dc209e5059e7fea0e34862a5aa63d911e4eb6a86e682d4f492b822249760221210dd8eeacedb6b7a6b25a4e62268aa810f706e25ed58905e49bc5853f325187d584298ec84c772a6e3544862a9e829c88be5b8a598aa4e860aa9c49f204ae37c9883f680c1db9de6cb388dfb02ad85816d85a42a13bf151e1255101aa34a6deb5073c01f28f3770dc29612c8dc6d0187c45ac8e712ce568aa6db1ee0bb26888771bce783608061d64e43aafe09cd8bf3281b75abc81d001b9e3a5389393ad5684b8e5f392ac1d30b36914040228f842cfdf81e9b785da8b898faccfb370b8ab604a5bf6c366ecf94430cb7e371274f06ded12ba04a44bd7c505fd50d8be6bd4aebc7ac425ee5c818534e23ba2002de8eafc0627cb48be73baa2fd5cdc60a8b0a34cf81d374f8065b6d9b43b032c2df41edb8bffdf19f05718bf7fcc70d78b51088303bbe13778fc4d89c5b7471bbda50815ba4e64b1c5292ae33005bd41c1b5c2a6b5c75ddca003e31e033de572fda60611e3d43eab6eeed26f3ef3798daf9e92aa8b32f9dc60c268d987e57b91383af1484e769c29608ee706e3b1176a2fa371cd926c98482d1561e67c51aa934641ddc37b1c2ede13c3638921ed4a25ea37792c11e1b37ece975463fe6e7cd03cf09cafa4596c3abcd80329427e5facf40a0feaa58f25f798b392c19761a944446e15be2b97dc17a5b4963ec6817021d1d138ae5f30272790471987cd035842d37cc51466dc0264337e96dd75be1b551d213cb27858361a18b24c0895d3838aeec34bac86b9029691031109c3309c1cfce60a0bef895a1140cee75b9f8f1e2c9e65e06eaba624e6651e5fd8bb7b2c26b7ac6a7b13272b22f9026eeaed28b7dd7cf82c36fc7dba7817ecd665690f15b25edfaa15fccb48ded5e1a5c3c7d8e5ceee832974c8a5a40dc7749934e199981c0b11267d15cf86511c2edbd980eb25cd4277554b68849fca1a2d2f443883f560fbc6574f6d6fa73651c4d16f388d3682c963a2e970af19c6155089f92bebfe530addd2fd5159ef0c96c50f6f9c8109dbcefa6af219f3c26c747e3dbd891965e7655d723b53847554580efbfc667e848c3b7bdafbd6894898d18ab9fcbe49bc5fc6dcb91d04e5a0b2c8e1951cd9e8abea09dda841353fe8ce4cae7156b878790b15f2773e08495d2f2eb07ed9f75104757ea2b73f0e33f7c524d364f28490be89a722620f12c9f326c55c206888b9febb70aa3348699f1a2ed1a7fbb8836161124d8ab67b9c6677cf55d2bceb6232b169e88771adc77a5f4a3943bbb01c0103d59ca47fcfee0b86efcca17cea24618304b13cd3a641ebbe9992d8cfd859a7e73a622cb1f44c83cecf229b594fbd4233a62750b0fb7a824e224161ba91e12cb950c6042444b62b934d90517e16d25c1451251b3d0239d83e1a97333bdb7a4dce815bc0362ea65714dc5d0d0513c6ec63109379c716c8ff01a53800c86dd2118643155260a21662060e99400b1a2ad4779e794264aba9d05109077d8bff35375aa5b7d73703fd30941793eee587bd21e1cdd7f564772d7b5cf7e8d6445c67ccc2462913a6fe2ffed7f67dacf3dd5bb5bc8b7fbfa9bc7ee32f6ebbe0b19f1973c2a45dd2e18b9c087dbbf205996188823abc5814d0866ebc575a25230e2cefbac5c619901b468d140b965062b93e20ec6d7654bc2c68a13fb4e4cd41e002bc1cea92b525e3e4caf5118cf1f3159169aac58c501792afb49d11dee2bba5ef119ed509215ce02e4b6e7e84e95472b75cc5f2134491911ecfec72560fcd722b272301147dfeec871924ff9a21a855a894b18929622c1e962b48029db75736716f2749ad5f6f974ce8e2c08766f4392264d251744dca73bdffc689d31caee6b60bf7d46ca1eb43707ef007f395754a362f68c574e2ed812e7271240d9980aa883e7d27ed1284e1249fc45ddaacf5822d8ae523806df3383a9548a2a61d4b36ee0ece8a526cbaec03185366e15bd0c9620f5de53db02281c4f5baccc941eabde9d2cbfdec996c0f1f5a9342450f16b10f084fbb8306890c419482e0de92062a74d12f8fec1b9d4f2a42695aad005b808b348a0ab25b4cb435b90b8569d7898a4ac74f11307006aa5ea915bdd5634a5212aa88331c55c9ac811c73a28d5310671765e930bd36b81770ae5a92f95683c920f2d0a1f7de5716784636a2b898e1954806801cd15658408e4b3dffef48d0c072f4e6b4d74e82c5535b2f2396a5c8dc050ebe5242f6151dd98a014471858e3da2ed3c01af97503a1ea7c0dbcbfb51993bbe8119992c099e946fd1b0965d3a60089ebc36edc3fa6eac2e18e04c55cd68f5dcaf54234d4fef2f35d3492aa960f97b800dc1c3a2dafe123523e8532e384a2187eccb2c2fb522d670cacb69090dc0fbd87202066cc4a595d56ce4f221306e431805f5c7ef028bf3f71dbd1310e85d153854474bb3b55004dca617f633ecd6f95242b094b0b17b2df8bca5dbd3ddfd98d70b6504ba4d95e7998a297c87579e894b44af489f76d4e23c4898a1e2677967c5fd598248a72b8a8790311146721294d9bf67afcfc5d57b8daae26c639baa23599c6faf91426c9145a429c0f90cdb6914a5996b4adb0fdc23a67a36e1b3a12fa4a1cffe6178319736e3b291142a5f839f157f975391d628a283e18caa46439281bc32a75f0f712b905d3171c8d22903eb788db4a1953ae9bc4605c9334a55179d644db2b74b5990ac8d95990b0cc08a01a6445cd596fd5f3f3ca00d485e3a6dd5636aab939c9cdad4f42af8e8ea49a8583de15941caf6732b8de105c61d3930d3dc356a1092b45e0d549a46cd9190acf373ede5d64de2033b50877d3f31c3cb339d171b218722c28940bc00a208fe3ee3ed37b1d01e1015192e5706803c58b9d631b95896c2f0f2b093c4a87c7b271a84f9b04fa17aa3aac4446ecc3c1db681c31ad9630ddf679c1e86a504d8fcf2caa6ee6f95f4152e667d8371c4c8793323ba01b8e1f2cf221363ee01b4227d1761fa6fdc15b8c6001d58582971c2f4a52e94e76b54b11ebd10725e1b8400a3fee858c1f59b3b1f6f507c8a0cc30dc0036ea204758992bbe615b681bc89fc95a0ed7470296651433f41be3cee936ff244c03f8b95acef6c726fe55c25af377d78ce6ad5a7f02e259fe87e4fa07cf4f6d19dae3d84b8df97b878c00f95d24501780c8906ac84f74de639ef91dd0a36870d2e203bc6ccb9158cd66b20a915009f2e41d697477089116252078ea555a29b4e0a021f5b88b966f531292d8f7ecbe7d2776391eabe5909f44c4d805752d9c228bc4e1944672d1e897bef9eb083e616e2ac7d58050a6cf3a0b268248b3b987500de16d36eecc358a4e3790351cf86b49ddfba28cdae5ba5562b4e60debc6def32b82e9b9e1f701d77461f9d2a7ee3f4b02741ec87d91de7c47451b5d245ac7472064e7c615c021217fc58dc89cff29c267b299f50542c1d45edc895583115033d4cb36de1ff75e5b8762cbb6f185f4a84d31e1c1e946030c1f763f4962cf4e4f01c536102b52cd376f8aa6c377ee79286dfb211db0cd25945933abc7aa08d48593a6f3a20b2c14dfba0b9bcf7a3e6afae6550559d981660326bd64dc0a2bb6ea764980c9825687b4f540085eb2c8d3cd544954e4440083a265309464b176fd6bebd4fd07ac119b3740e4ea2d4410c5fda8bbb1c1c2b4eebd0e7102ee2039d6e66dbb51df627cc1d302d126de7060a1be9a5fbb28aed41a7df3fe694930b486e1ff7d205a1a354e3d7f78046dec2ed73a4698753bbe5021030bf2fc3bf3478bb9056a413d5802883a7d4ce897fdb0c8b80a6abe2939296e7ebecd7089cfb8c374c92b072af9480e26dbd6092aad136bc5e020a0e9f9b6034144a9c058f24f8430e274231bf18321725162fa14eb0bf7e93c08aced61f8b890618c5fcacfec41a23fa20a05deecbf798438f747e221a0c82c0af35a179a635b44fac7625eb78972591430ff3fb77264c40c3038ee7b33c9b5a90e8c171b872e44fce5fe43d549fa973bf4a90917cfa2f4f238cc80ef37889253966d7c67de1fa7947aa3c4f87b96eb499b76014eed12b69c64fd35eed8f1d58f7591a8de0fabb7b13ea3ef99485f5202ce1ccd243893b99cd8be577d5d04d7b25a7572ce2284e89df3400ffb2f677d485de4b16ddc5f91ccdf03fc2d3f808d90fa9e0b207d9eac1b03895ca6b19bbb286561a3d83efe32fb2a031674e696e96a96ebadd09aa70ad689d31316396d632349586f281e9a495a6d219660128dde84a466174ea4e82dea3cf047374de568d4539d6d135f398bbb07cd350d4337eca82f684e4c35b918984f9f5e1d09aaaf0d4c9955d8a22afa077a9858e1f1cf210bfab3d27d068e1cce2aac12812470a9153fcc7bc610aee9abb563400cd7b33e41f2474cf369e2e11e7fb17775ae342a408c323aeff9dfd811a67f5828f7a70ca41346989e41473b2f673c6e2147826988d85a1d13b8742d88501685c6c2250433d17d2e6aef018ee0add948f4164b7d00de3274519392b4a338eaa1023510a19e55030378357a20ac0c8a548cdc5c020fcf5f871696f59042b3b99f78db413f107a8b28f30ffa572e9951073186829146e126e84f9c6305250dd432b8d0687d2fbb2f88905a25ae42cc82534df8f0cc77d4186960891bd304753036cc807cab1b590dd0f2d53856894f5a04e40b559f0edef51e54f1c127646c2ecf40af3573dcb88934c398a7583b5967316acb2a97ed8439ee8232cdd83b29fe27b5392c357a8cd182e55061a32bbcac8ab053e77e53c2c95f54c73b59418400e25004b3d4e2ca3aeb481f058883014b0b6a54ee15efaa9a842bcb1f3c20464951ef740a66f4c24d936febe86c4bce8eb02cc8a6dc6294fdf3a70eeca07444f664624fcfcf21c2720f782f8eb28dd380f3ce3e21ad55fb481a90c89efd971625de3ef316d23108a31fa6d1ad39ce9112f35a9ba987154b8655868d5b6f8c9cf47a3bf8601848bb6d36177316c0ce24035218fcdc9a0be4d80f104bb0010ceffc11e40c47bfc91059b351b8da61ed6227991ba58f2c1de984b0f769c7cfac0bda63291a44fe0ebe48ebc5cd7ac13657155137f6eae1c436d0d3c20c041ac1a0739abb75e1ea3e083f9424125e0272a0d0985dbd911b8ce64f4049ba38dc1377b08a8fec9c2289fa6bf0f92cfc02e606f9f773920879cf90958d50f0b268f6596539cd9b0175d3921479a93e37441f4b68d0081e78e0498340e0c8f0c6696859390d68535c70820f8347d1cd6b16b2966924c7ff8c0723220b1e170aaa5d7a1c05f9b9113f51bb43efd58c7338e68769ad8274f42f9d8cf51f2769a0f9f29906f8e8aa950a33912b8581b0a980cc1dad06b845d9a3528e3966dafbcba31e0de75c53ae81a9303affefef93113f6c69fc426282b080a12a6d32634077de0411dde4afd067df5e33c3594754f29273facd055e1e220a5d44cc715eacddef74f54f7cb18b9d81eae8bfeadd6ad1177bb2e8cbaef707de88af3ba86ecc01d1acd384576885e0d2daf2be5daecc6a3efa15aad504d000d5a73d9590a533bddd4ff1105bfa7a77a3c26eeee65d37ba2564033690c536dbd9006d25438b07df3000fbc60ce26865f4df84421132a8275a86cb30c7bc81d2b1630fbb60eae3c261d458fbd93e5c2f1b14d6bb2f6fa4e5153431dcef5f60717fcad7ff418bbcf5601", - "0x57f8dc2f5ab09467896f47300f0424385e0621c4869aa60c02be9adcc98a0d1d": "0x1050673d59020488a4ffc9d8c6de3062a65977046e6990915617f85fef6d349730fe8102dbc244e7ea2babd9f53236d67403b046154370da5c3ea99def0bd0747a38144b5398e5d0da5ec936a3af23f5a96e782f676ab19d45f29075ee92eca76a3253947640e309120ae70fa458dcacb915e2ddd78f930f52bd3679ec63fc4415", - "0x26aa394eea5630e07c48ae0c9558cef7b99d880ec681799c0cf30e8886371da9f94d70db43676a76269071bc1fab024efe8102dbc244e7ea2babd9f53236d67403b046154370da5c3ea99def0bd0747a": "0x0000000000000000010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "0xbd2a529379475088d3e29a918cd47872878d434d6125b40443fe11fd292d13a4": "0x03000000", - "0xcec5070d609dd3497f72bde07fc96ba04c014e6bf8b8c2c011e7290b85696bb3b2f278bf7750703750673d59020488a4ffc9d8c6de3062a65977046e6990915617f85fef6d349730": "0x50673d59020488a4ffc9d8c6de3062a65977046e6990915617f85fef6d349730", - "0xcec5070d609dd3497f72bde07fc96ba0726380404683fc89e8233450c8aa19506f114d556b001da96175726180fe8102dbc244e7ea2babd9f53236d67403b046154370da5c3ea99def0bd0747a": "0xfe8102dbc244e7ea2babd9f53236d67403b046154370da5c3ea99def0bd0747a", - "0x0d715f2646c8f85767b5d2764bb27826878d434d6125b40443fe11fd292d13a4": "0x00000100", - "0xcec5070d609dd3497f72bde07fc96ba088dcde934c658227ee1dfafcd6e16903": "0x1050673d59020488a4ffc9d8c6de3062a65977046e6990915617f85fef6d349730fe8102dbc244e7ea2babd9f53236d67403b046154370da5c3ea99def0bd0747a38144b5398e5d0da5ec936a3af23f5a96e782f676ab19d45f29075ee92eca76a3253947640e309120ae70fa458dcacb915e2ddd78f930f52bd3679ec63fc4415", - "0x682a59d51ab9e48a8c8cc418ff9708d2878d434d6125b40443fe11fd292d13a4": "0x03000000", - "0xc2261276cc9d1f8598ea4b6a74b15c2f57c875e4cff74148e4628f264b974c80": "0x00000000000000000000000000000000", - "0x15464cac3378d46f113cd5b7a4d71c84476f594316a7dfe49c1f352d95abdaf1": "0x00000000", - "0x26aa394eea5630e07c48ae0c9558cef7b99d880ec681799c0cf30e8886371da9b063988c4aca94685cfd2b8b8ca2fdac38144b5398e5d0da5ec936a3af23f5a96e782f676ab19d45f29075ee92eca76a": "0x0000000000000000010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "0x79e2fe5d327165001f8232643023ed8b878d434d6125b40443fe11fd292d13a4": "0x00000100", - "0xe38f185207498abb5c213d0fb059b3d8878d434d6125b40443fe11fd292d13a4": "0x00000100", - "0x15464cac3378d46f113cd5b7a4d71c845579297f4dfb9609e7e4c2ebab9ce40a": "0x1050673d59020488a4ffc9d8c6de3062a65977046e6990915617f85fef6d349730fe8102dbc244e7ea2babd9f53236d67403b046154370da5c3ea99def0bd0747a38144b5398e5d0da5ec936a3af23f5a96e782f676ab19d45f29075ee92eca76a3253947640e309120ae70fa458dcacb915e2ddd78f930f52bd3679ec63fc4415", - "0xf0c365c3cf59d671eb72da0e7a4113c4878d434d6125b40443fe11fd292d13a4": "0x03000000", - "0x7474449cca95dc5d0c00e71735a6d17d878d434d6125b40443fe11fd292d13a4": "0x03000000", - "0xcec5070d609dd3497f72bde07fc96ba04c014e6bf8b8c2c011e7290b85696bb36d5c455f52f81fe03253947640e309120ae70fa458dcacb915e2ddd78f930f52bd3679ec63fc4415": "0x3253947640e309120ae70fa458dcacb915e2ddd78f930f52bd3679ec63fc4415", - "0x26aa394eea5630e07c48ae0c9558cef7a7fd6c28836b9a28522dc924110cf439": "0x01", - "0x3f1467a096bcd71a5b6a0c8155e20810878d434d6125b40443fe11fd292d13a4": "0x03000000" - }, - "childrenDefault": {} - } - } -} diff --git a/cumulus/parachains/chain-specs/asset-hub-kusama.json b/cumulus/parachains/chain-specs/asset-hub-kusama.json deleted file mode 100644 index e50858795623..000000000000 --- a/cumulus/parachains/chain-specs/asset-hub-kusama.json +++ /dev/null @@ -1,60 +0,0 @@ -{ - "name": "Kusama Asset Hub", - "id": "asset-hub-kusama", - "chainType": "Live", - "bootNodes": [ - "/ip4/34.77.217.152/tcp/30334/p2p/12D3KooWF63ZxKtZMYs5247WQA8fcTiGJb2osXykc31cmjwNLwem", - "/ip4/34.77.119.77/tcp/30334/p2p/12D3KooWGowDwrXAh9cxkbPHPHuwMouFHrMcJhCVXcFS2B8vc5Ry", - "/dns/kusama-asset-hub-connect-0.polkadot.io/tcp/30334/p2p/12D3KooWMzvdGcUXxacLdMQzRVrsP1mJrZHcrz8LtGbhLzve84Qx", - "/dns/kusama-asset-hub-connect-0.polkadot.io/tcp/443/wss/p2p/12D3KooWMzvdGcUXxacLdMQzRVrsP1mJrZHcrz8LtGbhLzve84Qx", - "/dns/kusama-asset-hub-connect-1.polkadot.io/tcp/30334/p2p/12D3KooWQmGf5z3DU1kKcZoLzMNgdbP31ybjuwxS1VGLKMUjq5ez", - "/dns/kusama-asset-hub-connect-1.polkadot.io/tcp/443/wss/p2p/12D3KooWQmGf5z3DU1kKcZoLzMNgdbP31ybjuwxS1VGLKMUjq5ez", - "/dns/kusama-asset-hub-connect-2.polkadot.io/tcp/30334/p2p/12D3KooWLm6iHcmA3YD4xn2zfbm4KLF5KSUqJJAnmt2UGr9o2PgB", - "/dns/kusama-asset-hub-connect-2.polkadot.io/tcp/443/wss/p2p/12D3KooWLm6iHcmA3YD4xn2zfbm4KLF5KSUqJJAnmt2UGr9o2PgB", - "/dns/kusama-asset-hub-connect-3.polkadot.io/tcp/30334/p2p/12D3KooWD8Bma5qPbq7N5qdED3Xy6GXHfvfk86TL8aVTQKxmWkHG", - "/dns/kusama-asset-hub-connect-3.polkadot.io/tcp/443/wss/p2p/12D3KooWD8Bma5qPbq7N5qdED3Xy6GXHfvfk86TL8aVTQKxmWkHG", - "/dns/boot.stake.plus/tcp/34333/p2p/12D3KooWAzSSZ7jLqMw1WPomYEKCYANQaKemXQ8BKoFvNEvfmdqR", - "/dns/boot.stake.plus/tcp/34334/wss/p2p/12D3KooWAzSSZ7jLqMw1WPomYEKCYANQaKemXQ8BKoFvNEvfmdqR", - "/dns/boot.metaspan.io/tcp/26052/p2p/12D3KooW9z9hKqe3mqYAp5UJMhZiCqhkTHyiR43fegnGmTJ3JAba", - "/dns/boot.metaspan.io/tcp/26056/wss/p2p/12D3KooW9z9hKqe3mqYAp5UJMhZiCqhkTHyiR43fegnGmTJ3JAba", - "/dns/boot-cr.gatotech.network/tcp/33210/p2p/12D3KooWRMUYeWMPkadDG8baX9j1e95fspfp8MhPGym5BQza7Fm5", - "/dns/boot-cr.gatotech.network/tcp/35210/wss/p2p/12D3KooWRMUYeWMPkadDG8baX9j1e95fspfp8MhPGym5BQza7Fm5", - "/dns/statemine-bootnode.turboflakes.io/tcp/30320/p2p/12D3KooWN2Qqvp5wWgjbBMpbqhKgvSibSHfomP5VWVD9VCn3VrV4", - "/dns/statemine-bootnode.turboflakes.io/tcp/30420/wss/p2p/12D3KooWN2Qqvp5wWgjbBMpbqhKgvSibSHfomP5VWVD9VCn3VrV4", - "/dns/boot-node.helikon.io/tcp/10210/p2p/12D3KooWFXRQce3aMgZMn5SxvHtYH4PsR63TZLf8LrnBsEVTyzdr", - "/dns/boot-node.helikon.io/tcp/10212/wss/p2p/12D3KooWFXRQce3aMgZMn5SxvHtYH4PsR63TZLf8LrnBsEVTyzdr", - "/dns/statemine.bootnode.amforc.com/tcp/30336/p2p/12D3KooWHmSyrBWsc6fdpq8HtCFWasmLVLYGKWA2a78m4xAHKyBq", - "/dns/statemine.bootnode.amforc.com/tcp/30333/wss/p2p/12D3KooWHmSyrBWsc6fdpq8HtCFWasmLVLYGKWA2a78m4xAHKyBq", - "/dns/statemine-boot-ng.dwellir.com/tcp/30343/p2p/12D3KooWQNJKBaNfW6Nn7HZDi5pSSEFmHL2Qz7chr9RksQUDR1Wk", - "/dns/statemine-boot-ng.dwellir.com/tcp/443/wss/p2p/12D3KooWQNJKBaNfW6Nn7HZDi5pSSEFmHL2Qz7chr9RksQUDR1Wk" - ], - "telemetryEndpoints": null, - "protocolId": null, - "properties": { - "ss58Format": 2, - "tokenDecimals": 12, - "tokenSymbol": "KSM" - }, - "relay_chain": "kusama", - "para_id": 1000, - "consensusEngine": null, - "genesis": { - "raw": { - "top": { - "0x26aa394eea5630e07c48ae0c9558cef7f9cce9c888469bb1a0dceaa129672ef8": "0x08147368656c6c", - "0x26aa394eea5630e07c48ae0c9558cef78a42f33323cb5ced3b44dd825fda9fcc": "0x4545454545454545454545454545454545454545454545454545454545454545", - "0x26aa394eea5630e07c48ae0c9558cef7878d434d6125b40443fe11fd292d13a4": "0x03000000", - "0x26aa394eea5630e07c48ae0c9558cef7a44704b568d21667356a5a050c118746b4def25cfda6ef3a00000000": "0x4545454545454545454545454545454545454545454545454545454545454545", - "0x26aa394eea5630e07c48ae0c9558cef75684a022a34dd8bfa2baaf44f172b710": "0x01", - "0x0d715f2646c8f85767b5d2764bb2782604a74d81251e398fd8a0a4d55023bb3f": "0xe8030000", - "0x3a636f6465": "0x0061736d01000000018e022a60037f7f7f017f60027f7f017f60017f0060047f7f7f7f0060037f7f7f0060027f7f0060017f017f60057f7f7f7f7f0060047f7f7f7f017f60017f017e6000017f60037f7e7f017f60027f7f017e60000060027e7e0060027e7e017f60027e7e017e60047e7e7e7f017e60017e017e60037e7e7e0060017e017f60017e0060037e7e7f017e6000017e60037f7e7e0060027e7f017f60057f7f7f7f7f017f60067f7f7f7f7f7f0060037e7f7f0060087f7f7f7f7f7f7f7f0060047e7f7f7f0060047f7f7f7e0060037f7f7e0060057f7f7e7f7f0060037f7f7f017e60057f7f7f7f7e0060047f7f7e7e0060057f7f7f7e7e0060027f7e0060037f7e7e017f60047f7e7e7f0060057f7e7e7e7e0002980d2903656e76066d656d6f727902001103656e761f6578745f6c6f6767696e675f6d61785f6c6576656c5f76657273696f6e5f31000a03656e76236578745f63727970746f5f656432353531395f7665726966795f76657273696f6e5f31000b03656e76286578745f63727970746f5f66696e6973685f62617463685f7665726966795f76657273696f6e5f31000a03656e76376578745f63727970746f5f736563703235366b315f65636473615f7265636f7665725f636f6d707265737365645f76657273696f6e5f31000c03656e76236578745f63727970746f5f737232353531395f7665726966795f76657273696f6e5f32000b03656e76276578745f63727970746f5f73746172745f62617463685f7665726966795f76657273696f6e5f31000d03656e76296578745f64656661756c745f6368696c645f73746f726167655f636c6561725f76657273696f6e5f31000e03656e76306578745f64656661756c745f6368696c645f73746f726167655f636c6561725f7072656669785f76657273696f6e5f31000e03656e762a6578745f64656661756c745f6368696c645f73746f726167655f6578697374735f76657273696f6e5f31000f03656e76276578745f64656661756c745f6368696c645f73746f726167655f6765745f76657273696f6e5f31001003656e762c6578745f64656661756c745f6368696c645f73746f726167655f6e6578745f6b65795f76657273696f6e5f31001003656e76286578745f64656661756c745f6368696c645f73746f726167655f726561645f76657273696f6e5f31001103656e76286578745f64656661756c745f6368696c645f73746f726167655f726f6f745f76657273696f6e5f31001203656e76276578745f64656661756c745f6368696c645f73746f726167655f7365745f76657273696f6e5f31001303656e76306578745f64656661756c745f6368696c645f73746f726167655f73746f726167655f6b696c6c5f76657273696f6e5f33001003656e76206578745f68617368696e675f626c616b65325f3235365f76657273696f6e5f31001403656e761e6578745f68617368696e675f74776f785f3132385f76657273696f6e5f31001403656e761d6578745f68617368696e675f74776f785f36345f76657273696f6e5f31001403656e761c6578745f616c6c6f6361746f725f667265655f76657273696f6e5f31000203656e761e6578745f616c6c6f6361746f725f6d616c6c6f635f76657273696f6e5f31000603656e762a6578745f747269655f626c616b65325f3235365f6f7264657265645f726f6f745f76657273696f6e5f31001403656e761c6578745f6d6973635f7072696e745f6865785f76657273696f6e5f31001503656e761d6578745f6d6973635f7072696e745f757466385f76657273696f6e5f31001503656e76226578745f6d6973635f72756e74696d655f76657273696f6e5f76657273696f6e5f31001203656e761c6578745f73746f726167655f617070656e645f76657273696f6e5f31000e03656e76226578745f73746f726167655f6368616e6765735f726f6f745f76657273696f6e5f31001203656e761b6578745f73746f726167655f636c6561725f76657273696f6e5f31001503656e76226578745f73746f726167655f636c6561725f7072656669785f76657273696f6e5f31001503656e76286578745f73746f726167655f636f6d6d69745f7472616e73616374696f6e5f76657273696f6e5f31000d03656e761c6578745f73746f726167655f6578697374735f76657273696f6e5f31001403656e76196578745f73746f726167655f6765745f76657273696f6e5f31001203656e761e6578745f73746f726167655f6e6578745f6b65795f76657273696f6e5f31001203656e761a6578745f73746f726167655f726561645f76657273696f6e5f31001603656e762a6578745f73746f726167655f726f6c6c6261636b5f7472616e73616374696f6e5f76657273696f6e5f31000d03656e761a6578745f73746f726167655f726f6f745f76657273696f6e5f31001703656e76196578745f73746f726167655f7365745f76657273696f6e5f31000e03656e76276578745f73746f726167655f73746172745f7472616e73616374696f6e5f76657273696f6e5f31000d03656e76196578745f6c6f6767696e675f6c6f675f76657273696f6e5f31001803656e76226578745f6f6666636861696e5f696e6465785f636c6561725f76657273696f6e5f31001503656e76206578745f6f6666636861696e5f696e6465785f7365745f76657273696f6e5f31000e03e404e2040d0d0d0d0d040406020500040700010105010501190202091a080400070101010401041b010101010401001a0101000101001c040101010300030405040405010703070502010105031b0304010502050404040d0d0d071d1b030708030407030505050403050505010101040405020405050205020505040205020405050405090502040105050a0202020103050503050305080d0d02020303030000070303040404050505020504030301000002051e03050202020101010504020404020505050505050505050505010502050501010108080804040504050405020404050404030c05040505051f050205020401040202050505050505050505050505050505050505050503050502050305050502050702040420202104040507040303030505050505050105050501010101010102052201050d0405010703050300030505050307000705050004040504031b03050d07040403031b030405010702030807040307020d040502040506060606070203020d030c01050c0505020c020c05040c05030c0d020c0502050c0c0c0305040c0c0c0505050505050505050502020204050205040c050505030203020505022305020205010404030403050205050505040405052405012503042404020202050105030501150505050202020505050505052405020203000203040501070403050505050505060d0a0505040104221b0405070403070703050404040404040501010502010501010102262603030807071d041b0701010107040405050d0104041b0d02030d05030105000104030505050403050505030401010101010105050603050403050227282900000000280407017001c601c6010619037f01418080c0000b7f0041ecaec2000b7f0041ecaec2000b07ec03110c436f72655f76657273696f6e009e0312436f72655f657865637574655f626c6f636b00a10315436f72655f696e697469616c697a655f626c6f636b00a503114d657461646174615f6d6574616461746100a7031c426c6f636b4275696c6465725f6170706c795f65787472696e73696300aa031b426c6f636b4275696c6465725f66696e616c697a655f626c6f636b00ad0320426c6f636b4275696c6465725f696e686572656e745f65787472696e7369637300b0031c426c6f636b4275696c6465725f636865636b5f696e686572656e747300b4032b5461676765645472616e73616374696f6e51756575655f76616c69646174655f7472616e73616374696f6e00b503214f6666636861696e576f726b65724170695f6f6666636861696e5f776f726b657200b6031f53657373696f6e4b6579735f6465636f64655f73657373696f6e5f6b65797300ba032153657373696f6e4b6579735f67656e65726174655f73657373696f6e5f6b65797300bb032b436f6c6c656374436f6c6c6174696f6e496e666f5f636f6c6c6563745f636f6c6c6174696f6e5f696e666f00bc030e76616c69646174655f626c6f636b00cf03195f5f696e6469726563745f66756e6374696f6e5f7461626c6501000a5f5f646174615f656e6403010b5f5f686561705f62617365030209e802010041010bc5013b394c45d10446474dac016dd702c1049f03a704f701ff037172737475767778797a7b7c7d7e7f80018101820183018401850186018701880151d2043e3536375d3f5254555657585c5ec4044e4f6ec201c40198049a0499049b049c04bf019404d501c001c301c501c701c901cc01cd01d201d401e001de01df0185048404db0186048f049a029902dc01c9038402c803cc03dd01e504f801f9019f02a302a802a602a902a002fb03c204f804f704f504a202bf04a502aa02a102a702a4028c048b048a048904880487049304d40289039d03e502fb02ec02c102c602c502c802f1028803f6028c038503df028103c2028703e802fc02f2028b039103960394038f03980399039b03f9028d03ef02f002dd02be02c002bf02d802d502d602bb04bc04bd04be04c304d404d504d604d704d804d904da04db04dc04dd04de04df04e004c704c804c904ca04cb04cc04cd04ce04cf04d004e104e204e304e404e6040a978c29e20405001029000b0500102b000b05001028000b1700410141b8fbc100410741bffbc100412210d30400000b110041d099c2004111418080c000102d000b4701017f230041206b22032400200341146a4100360200200341bc8ec200360210200342013702042003200136021c200320003602182003200341186a36020020032002103a000ba90101027f4100210302400240200141004e0d00410121010c010b0240024002400240024002400240200228020022030d0020010d010c050b200228020422040d012001450d040b2001102f22020d010c020b2001102f2202450d012002200320041085051a200310300b200121030c020b2000200136020441012103410121010c020b41012102410021030b20002002360204410021010b20002001360200200041086a20033602000b0600200010130b0600200010120be00201067f230041206b2202240020012802002103024002402001280204220441037422050d00410021060c010b200341046a2107410021060340200728020020066a2106200741086a2107200541786a22050d000b0b0240024002400240024002400240200141146a2802000d00200621070c010b2004450d02410021054101210402402006410f4b0d00200341046a280200450d020b200620066a22072006490d010b2007417f4c0d02024020070d0041002105410121040c010b200721052007102f2204450d030b20004100360208200020043602002000200536020420022000360204200241086a41106a200141106a290200370300200241086a41086a200141086a29020037030020022001290200370308200241046a41bc80c000200241086a10320d03200241206a24000f0b4100410041ac80c0001033000b102c000b102a000b41d480c0004133200241086a418881c000419881c0001034000bcc0501097f230041306b22032400200341246a2001360200200341033a002820034280808080800437030820032000360220410021042003410036021820034100360210024002400240024020022802082205450d0020022802002106200228020422072002410c6a2802002208200820074b1b2209450d01200020062802002006280204200128020c1100000d02200641086a21002002280210210a20092108034020032005411c6a2d00003a00282003200541046a290200422089370308200541186a28020021024100210441002101024002400240200541146a2802000e03010002010b2002410374210b41002101200a200b6a220b2802044101470d01200b28020028020021020b410121010b2003200236021420032001360210200541106a28020021020240024002402005410c6a2802000e03010002010b20024103742101200a20016a22012802044101470d01200128020028020021020b410121040b2003200236021c20032004360218200a20052802004103746a2202280200200341086a20022802041101000d0302402008417f6a22080d00200921040c030b200541206a2105200041046a210220002802002101200041086a2100200328022020012002280200200328022428020c110000450d000c030b0b2002280200210620022802042207200241146a2802002205200520074b1b2208450d0020022802102104200020062802002006280204200128020c1100000d0141002105200821020340200420056a2200280200200341086a200041046a2802001101000d0202402002417f6a22020d00200821040c020b200620056a2100200541086a21052003280220200041086a2802002000410c6a280200200328022428020c110000450d000c020b0b0240200720044d0d002003280220200620044103746a22052802002005280204200328022428020c1100000d010b410021050c010b410121050b200341306a240020050b6c01017f230041306b2203240020032001360204200320003602002003411c6a41023602002003412c6a41023602002003420237020c2003418083c000360208200341023602242003200341206a360218200320033602282003200341046a360220200341086a2002103a000b7e01017f230041c0006b220524002005200136020c2005200036020820052003360214200520023602102005412c6a41023602002005413c6a41033602002005420237021c200541b48fc200360218200541043602342005200541306a3602282005200541106a3602382005200541086a360230200541186a2004103a000b8d0201047f230041206b22032400024002402000280200220041046a2802002204200041086a28020022056b2002490d00200028020021040c010b0240200520026a22062005490d00200441017422052006200520064b1b22054108200541084b1b21050240024020040d00200341003602100c010b200341106a41086a410136020020032004360214200320002802003602100b20032005200341106a102e200341086a2802002105024020032802004101460d00200020032802042204360200200041046a2005360200200041086a28020021050c020b2005450d00102a000b102c000b200420056a200120021085051a200041086a2200200028020020026a360200200341206a240041000bbf0501047f230041306b2202240020002802002100024002400240024002400240024002402001418001490d002002410036020c2001418010490d0102402001418080044f0d0020022001413f71418001723a000e20022001410c7641e001723a000c20022001410676413f71418001723a000d410321010c040b20022001413f71418001723a000f2002200141127641f001723a000c20022001410676413f71418001723a000e20022001410c76413f71418001723a000d410421010c030b024020002802082203200041046a280200460d00200028020021040c020b200341016a22042003490d04200341017422052004200520044b1b22044108200441084b1b21040240024020030d00200241003602200c010b200241206a41086a410136020020022003360224200220002802003602200b200241106a2004200241206a102e200241186a2802002103024020022802104101460d00200020022802142204360200200041046a2003360200200028020821030c020b20030d030c040b20022001413f71418001723a000d2002200141067641c001723a000c410221010c010b200420036a20013a00002000200028020841016a3602080c040b0240200041046a2802002204200041086a28020022036b2001490d00200028020021040c030b200320016a22052003490d01200441017422032005200320054b1b22034108200341084b1b21030240024020040d00200241003602200c010b200241206a41086a410136020020022004360224200220002802003602200b200241106a2003200241206a102e200241106a41086a2802002103024020022802104101460d00200020022802142204360200200041046a2003360200200041086a28020021030c030b2003450d010b102a000b102c000b200420036a2002410c6a20011085051a200041086a2200200028020020016a3602000b200241306a240041000b6301017f230041206b2202240020022000280200360204200241086a41106a200141106a290200370300200241086a41086a200141086a29020037030020022001290200370308200241046a41bc80c000200241086a10322101200241206a240020010b6f01017f230041306b2202240020022001360204200220003602002002411c6a41023602002002412c6a41023602002002420337020c200241c082c000360208200241023602242002200241206a3602182002200241046a36022820022002360220200241086a41d882c000103a000b0b0020003502002001103c0b3401017f230041106b220224002002200136020c200220003602082002419083c000360204200241bc8ec2003602002002103d000b0d0020002802001a037f0c000b0bd20203027f017e037f230041306b22022400412721030240024020004290ce005a0d00200021040c010b412721030340200241096a20036a2205417c6a20004290ce0080220442f0b17f7e20007ca7220641ffff037141e4006e220741017441d283c0006a2f00003b00002005417e6a2007419c7f6c20066a41ffff037141017441d283c0006a2f00003b00002003417c6a2103200042ffc1d72f5621052004210020050d000b0b02402004a7220541e3004c0d00200241096a2003417e6a22036a2004a7220641ffff037141e4006e2205419c7f6c20066a41ffff037141017441d283c0006a2f00003b00000b02400240200541094a0d00200241096a2003417f6a22036a200541306a3a00000c010b200241096a2003417e6a22036a200541017441d283c0006a2f00003b00000b200141bc8ec2004100200241096a20036a412720036b10402103200241306a240020030b6f01017f230041c0006b220124002001200036020c200141346a410136020020014201370224200141cc80c2003602202001410536023c2001200141386a36023020012001410c6a360238200141106a200141206a1031410141b8fbc10041072001280210200128021810d30400000b02000b0d0042e38efeb4f5aa80b7847f0b830601067f20002802002205410171220620046a21070240024020054104710d00410021010c010b4100210802402002450d00200221092001210a03402008200a2d000041c00171418001476a2108200a41016a210a2009417f6a22090d000b0b200820076a21070b412b418080c40020061b21080240024020002802084101460d004101210a200020082001200210410d012000280218200320042000411c6a28020028020c1100000f0b02402000410c6a280200220920074b0d004101210a200020082001200210410d012000280218200320042000411c6a28020028020c1100000f0b024002400240024002402005410871450d00200028020421052000413036020420002d002021064101210a200041013a0020200020082001200210410d054100210a200920076b22012109410120002d0020220820084103461b4103710e03030201030b4100210a200920076b22052109024002400240410120002d0020220720074103461b4103710e03020100020b2005410176210a200541016a41017621090c010b410021092005210a0b200a41016a210a0340200a417f6a220a450d0420002802182000280204200028021c280210110100450d000b41010f0b2001410176210a200141016a41017621090c010b410021092001210a0b200a41016a210a02400340200a417f6a220a450d0120002802182000280204200028021c280210110100450d000b41010f0b200028020421014101210a200028021820032004200028021c28020c1100000d01200028021c210a20002802182102410021080240034020092008460d01200841016a210820022001200a280210110100450d000b4101210a2008417f6a2009490d020b200020063a00202000200536020441000f0b200028020421074101210a200020082001200210410d00200028021820032004200028021c28020c1100000d00200028021c2108200028021821004100210a0240034002402009200a470d002009210a0c020b200a41016a210a200020072008280210110100450d000b200a417f6a210a0b200a200949210a0b200a0b5401017f024002402001418080c400460d0041012104200028021820012000411c6a2802002802101101000d010b024020020d0041000f0b2000280218200220032000411c6a28020028020c11000021040b20040b6c01017f230041306b2203240020032001360204200320003602002003411c6a41023602002003412c6a41023602002003420237020c2003419c85c000360208200341023602242003200341206a3602182003200341046a36022820032003360220200341086a2002103a000ba108010a7f20002802102103024002400240200028020822044101470d0020034101470d020c010b20034101460d002000280218200120022000411c6a28020028020c1100000f0b200120026a2105024002400240200041146a28020022060d0041002107200121030c010b41002107200121030340200322082005460d02200841016a2103024020082c00002209417f4a0d00200941ff017121090240024020032005470d004100210a200521030c010b200841026a210320082d0001413f71210a0b200941e001490d000240024020032005470d004100210b2005210c0c010b200341016a210c20032d0000413f71210b0b0240200941f0014f0d00200c21030c010b02400240200c2005470d004100210c200521030c010b200c41016a2103200c2d0000413f71210c0b200a410c742009411274418080f0007172200b41067472200c72418080c400460d030b200720086b20036a21072006417f6a22060d000b0b20032005460d00024020032c00002208417f4a0d0002400240200341016a2005470d0041002103200521060c010b200341026a210620032d0001413f7141067421030b200841ff017141e001490d000240024020062005470d0041002106200521090c010b200641016a210920062d0000413f7121060b200841ff017141f001490d00200841ff01712108200620037221030240024020092005470d00410021050c010b20092d0000413f7121050b20034106742008411274418080f0007172200572418080c400460d010b024002402007450d0020072002460d0041002103200720024f0d01200120076a2c00004140480d010b200121030b2007200220031b21022003200120031b21010b20044101460d002000280218200120022000411c6a28020028020c1100000f0b0240024002402002450d004100210820022107200121030340200820032d000041c00171418001476a2108200341016a21032007417f6a22070d000b2008200028020c22054f0d014100210820022107200121030340200820032d000041c00171418001476a2108200341016a21032007417f6a22070d000c030b0b41002108200028020c22050d010b2000280218200120022000411c6a28020028020c1100000f0b41002103200520086b22072108024002400240410020002d0020220520054103461b4103710e03020100020b20074101762103200741016a41017621080c010b41002108200721030b200341016a2103024003402003417f6a2203450d0120002802182000280204200028021c280210110100450d000b41010f0b20002802042107410121030240200028021820012002200028021c28020c1100000d00200028021c2105200028021821004100210302400340024020082003470d00200821030c020b200341016a2103200020072005280210110100450d000b2003417f6a21030b200320084921030b20030bc80801057f230041f0006b220524002005200336020c20052002360208024002402001418102490d00410020016b21064180022107024003400240200720014f0d00200020076a2c000041bf7f4c0d00200721080c020b2007417f6a210820074101460d01200620076a21092008210720094101470d000b0b2005200836021420052000360210200541de85c000360218410521070c010b2005200136021420052000360210200541bc8ec200360218410021070b2005200736021c0240024002400240200220014b22070d00200320014b0d00200220034b0d01024002402002450d0020012002460d00200120024d0d01200020026a2c00004140480d010b200321020b200520023602202002450d0220022001460d02200141016a210903400240200220014f0d00200020026a2c000041404e0d040b2002417f6a210720024101460d0420092002462108200721022008450d000c040b0b20052002200320071b360228200541306a41146a4103360200200541c8006a41146a4104360200200541d4006a410436020020054203370234200541e485c0003602302005410236024c2005200541c8006a3602402005200541186a3602582005200541106a3602502005200541286a360248200541306a2004103a000b200541e4006a4104360200200541c8006a41146a4104360200200541d4006a4102360200200541306a41146a410436020020054204370234200541fc85c0003602302005410236024c2005200541c8006a3602402005200541186a3602602005200541106a36025820052005410c6a3602502005200541086a360248200541306a2004103a000b200221070b024020072001460d00410121094100210602400240200020076a22022c000022084100480d002005200841ff01713602240c010b200020016a220921010240200241016a2009460d00200241026a210120022d0001413f7121060b2008411f71210202400240200841ff017141e0014f0d00200620024106747221080c010b4100210020092103024020012009460d00200141016a210320012d0000413f7121000b200020064106747221010240200841ff017141f0014f0d0020012002410c747221080c010b41002108024020032009460d0020032d0000413f7121080b20014106742002411274418080f00071722008722208418080c400460d020b20052008360224410121092008418001490d00410221092008418010490d0041034104200841808004491b21090b200520073602282005200920076a36022c200541306a41146a4105360200200541ec006a4104360200200541e4006a4104360200200541c8006a41146a4106360200200541d4006a4107360200200542053702342005419c86c0003602302005410236024c2005200541c8006a3602402005200541186a3602682005200541106a3602602005200541286a3602582005200541246a3602502005200541206a360248200541306a2004103a000b41b2abc200412b2004102d000b100020012000280200200028020410430b7901037f230041206b2202240002402000200110490d002001411c6a2802002103200128021821042002411c6a4100360200200241bc8ec2003602182002420137020c2002418487c00036020820042003200241086a10320d00200041046a200110492101200241206a240020010f0b200241206a240041010bce0d02067f017e410121020240200128021841272001411c6a2802002802101101000d0041f4002103410221040240024002400240024002402000280200220541776a0e1f05010303000303030303030303030303030303030303030303040303030304020b41f2002103410221040c040b41ee002103410221040c030b200541dc00460d010b2005410b74210241002104411f2106411f210002400240034002400240200641017620046a220641027441a093c0006a280200410b74220320024f0d00200641016a21040c010b20032002460d02200621000b200020046b2106200020044b0d000c020b0b200641016a21040b02402004411e4b0d002004410274210641b105210002402004411e460d00200641a493c0006a28020041157621000b410021030240024002400240024002400240024002400240024002402004417f6a220220044b0d002002411f4f0d01200241027441a093c0006a28020041ffffff007121030b02402000200641a093c0006a280200411576220441016a460d00200520036b2102200441b105200441b1054b1b21062000417f6a210341002100034020062004460d0c2000200441ac94c0006a2d00006a220020024b0d012003200441016a2204470d000b200321040b024020044101710d000240024002400240200541ffff034b0d0041dd87c000210041002106200541087641ff0171210702400340200041026a2103200620002d000122046a21020240024020002d000022002007470d0020022006490d0a200241a3024f0d0b200641c088c0006a210003402004450d022004417f6a210420002d00002106200041016a21002006200541ff0171470d000c110b0b200020074b0d022002210620032100200341af88c000470d010c020b2002210620032100200341af88c000470d000b0b200541ffff0371210241e28ac0002104410121000340200441016a21030240024020042d000022064118744118752207417f4a0d00200341978dc000460d0b200741ff007141087420042d0001722106200441026a21040c010b200321040b200220066b22024100480d0220004101732100200441978dc000470d000c020b0b200541ffff074b0d0141a88dc000210041002106200541087641ff0171210702400340200041026a2103200620002d000122046a21020240024020002d000022002007470d0020022006490d0c200241b0014f0d0d200641f48dc0006a210003402004450d022004417f6a210420002d00002106200041016a21002006200541ff0171470d000c100b0b200020074b0d022002210620032100200341f48dc000470d010c020b2002210620032100200341f48dc000470d000b0b200541ffff0371210241a38fc0002104410121000340200441016a21030240024020042d000022064118744118752207417f4a0d00200341c692c000460d0d200741ff007141087420042d0001722106200441026a21040c010b200321040b200220066b22024100480d0120004101732100200441c692c000470d000b0b410121042000410171450d0a0c010b200541ef83384b0d09200541b5d9736a41b5db2b490d09200541e28b746a41e20b490d092005419fa8746a419f18490d09200541dee2746a410e490d09200541feffff0071419ef00a460d09200541a2b2756a4122490d09200541cb91756a410b490d09410121040b0c0a0b200541017267410276410773ad4280808080d0008421080c080b2002411f419c94c0001033000b2006200241b088c0001048000b200241a20241b088c0001042000b41b2abc200412b41988dc000102d000b2006200241b088c0001048000b200241af0141b088c0001042000b41b2abc200412b41988dc000102d000b200541017267410276410773ad4280808080d0008421080b410321040b200521030c030b200641b10541f099c0001033000b2004411f41e099c0001033000b20052103410221040b03402004210641dc002100410121024101210402400240024002400240024020060e0402010500020b02400240024002402008422088a741ff01710e06050302010006050b200842ffffffff8f608342808080803084210841f50021000c060b200842ffffffff8f608342808080802084210841fb0021000c050b413041d70020032008a72204410274411c7176410f712200410a491b20006a2100024020040d00200842ffffffff8f60834280808080108421080c050b2008427f7c42ffffffff0f832008428080808070838421080c040b200842ffffffff8f6083210841fd0021000c030b41002104200321000c030b20012802184127200128021c2802101101000f0b200842ffffffff8f60834280808080c0008421080b410321040b20012802182000200128021c280210110100450d000b0b20020b6c01017f230041306b2203240020032001360204200320003602002003411c6a41023602002003412c6a41023602002003420237020c200341ec92c000360208200341023602242003200341206a3602182003200341046a36022820032003360220200341086a2002103a000bb70201037f23004180016b22022400024002400240024020012802002203411071450d0020002802002103410021000340200220006a41ff006a2003410f712204413072200441d7006a2004410a491b3a00002000417f6a2100200341047622030d000b20004180016a22034181014f0d02200141a8f7c1004102200220006a4180016a410020006b104021000c010b02402003412071450d0020002802002103410021000340200220006a41ff006a2003410f712204413072200441376a2004410a491b3a00002000417f6a2100200341047622030d000b20004180016a22034181014f0d03200141a8f7c1004102200220006a4180016a410020006b104021000c010b20003502002001103c21000b20024180016a240020000f0b2003418001419087c000104a000b2003418001419087c000104a000b6c01017f230041306b2203240020032001360204200320003602002003411c6a41023602002003412c6a41023602002003420237020c200341a087c000360208200341023602242003200341206a3602182003200341046a36022820032003360220200341086a2002103a000bec0201017f230041f0006b220624002006200136020c2006200036020820062003360214200620023602102006410236021c200641e09ac000360218024020042802000d00200641386a41146a4103360200200641c4006a4103360200200641d8006a41146a41033602002006420437025c200641e49ac0003602582006410436023c2006200641386a3602682006200641106a3602482006200641086a3602402006200641186a360238200641d8006a2005103a000b200641206a41106a200441106a290200370300200641206a41086a200441086a29020037030020062004290200370320200641d8006a41146a4104360200200641d4006a4108360200200641386a41146a4103360200200641c4006a41033602002006420437025c200641849bc0003602582006410436023c2006200641386a3602682006200641206a3602502006200641106a3602482006200641086a3602402006200641186a360238200641d8006a2005103a000b140020002802002001200028020428020c1101000b6401027f230041206b220224002001411c6a280200210320012802182101200241086a41106a200041106a290200370300200241086a41086a200041086a2902003703002002200029020037030820012003200241086a10322100200241206a240020000b1c00200128021841de9bc000410b2001411c6a28020028020c1100000b1c00200128021841e99bc000410e2001411c6a28020028020c1100000b5b01017f230041306b220324002003200136020c20032000360208200341246a410136020020034201370214200341cc80c2003602102003410436022c2003200341286a3602202003200341086a360228200341106a2002103a000b1500200120002802002200280200200028020410430b830501077f0240024002402002450d000340024020002802082d0000450d00200028020041b19cc0004104200028020428020c110000450d0041010f0b4100210320022104024002400340200120036a210502400240200441074b0d002004450d03410021060340200520066a2d0000410a460d022004200641016a2206470d000c040b0b024002400240200541036a417c7120056b2206450d0020042006200620044b1b2107410021060340200520066a2d0000410a460d042007200641016a2206470d000b2007200441786a22084b0d020c010b200441786a2108410021070b02400340200520076a220641046a2802002209417f732009418a94a8d0007341fffdfb776a7120062802002206417f732006418a94a8d0007341fffdfb776a7172418081828478710d01200741086a220720084d0d000b0b200720044b0d070b20072004460d02200420076b21042001200720036a6a21054100210602400340200520066a2d0000410a460d012004200641016a2206470d000c040b0b200720066a21060b200620036a220641016a21030240200620024f0d00200120066a2d0000410a470d00410121060c030b200220036b2104200220034f0d000b0b41002106200221030b200028020820063a0000200028020421062000280200210702400240024020022003460d000240200220034d0d00200120036a22052c000041bf7f4a0d020b200120024100200341b89cc0001044000b200720012002200628020c110000450d0141010f0b0240200720012003200628020c110000450d0041010f0b20052c000041bf7f4c0d040b200120036a2101200220036b22020d000b0b41000f0b2007200441f89cc000104a000b200120022003200241c89cc0001044000bbc0302047f027e230041c0006b2205240041012106024020002d00040d0020002d000521070240200028020022082d0000410471450d000240200741ff01710d0041012106200828021841ad9dc00041032008411c6a28020028020c1100000d02200028020021080b41012106200541013a0017200541346a41b09dc000360200200520082902183703082005200541176a360210200829020821092008290210210a200520082d00203a00382005200a37032820052009370320200520082902003703182005200541086a360230200541086a2001200210520d01200541086a41c48fc200410210520d012003200541186a200428020c1101000d01200528023041c89dc0004102200528023428020c11000021060c010b41012106200828021841ab9dc00041a89dc000200741ff017122071b4102410320071b2008411c6a28020028020c1100000d004101210620002802002208280218200120022008411c6a28020028020c1100000d00410121062000280200220828021841c48fc20041022008411c6a28020028020c1100000d0020032000280200200428020c11010021060b200041013a0005200020063a0004200541c0006a240020000bf30101017f230041106b220224002002410036020c02400240024002402001418001490d002001418010490d012001418080044f0d0220022001413f71418001723a000e20022001410c7641e001723a000c20022001410676413f71418001723a000d410321010c030b200220013a000c410121010c020b20022001413f71418001723a000d2002200141067641c001723a000c410221010c010b20022001413f71418001723a000f2002200141127641f001723a000c20022001410676413f71418001723a000e20022001410c76413f71418001723a000d410421010b20002002410c6a200110522101200241106a240020010b6001017f230041206b2202240020022000360204200241086a41106a200141106a290200370300200241086a41086a200141086a29020037030020022001290200370308200241046a41cc9dc000200241086a10322101200241206a240020010b0d0020002802002001200210520bfa0101017f230041106b22022400200028020021002002410036020c02400240024002402001418001490d002001418010490d012001418080044f0d0220022001413f71418001723a000e20022001410c7641e001723a000c20022001410676413f71418001723a000d410321010c030b200220013a000c410121010c020b20022001413f71418001723a000d2002200141067641c001723a000c410221010c010b20022001413f71418001723a000f2002200141127641f001723a000c20022001410676413f71418001723a000e20022001410c76413f71418001723a000d410421010b20002002410c6a200110522101200241106a240020010b6301017f230041206b2202240020022000280200360204200241086a41106a200141106a290200370300200241086a41086a200141086a29020037030020022001290200370308200241046a41cc9dc000200241086a10322101200241206a240020010bd40202047f027e230041c0006b2203240041012104024020002d00080d00200028020421050240200028020022062d0000410471450d00024020050d0041012104200628021841e89dc00041022006411c6a28020028020c1100000d02200028020021060b41012104200341013a0017200341346a41b09dc000360200200320062902183703082003200341176a3602102006290208210720062902102108200320062d00203a00382003200837032820032007370320200320062902003703182003200341086a3602302001200341186a200228020c1101000d01200328023041c89dc0004102200328023428020c11000021040c010b41012104200628021841ab9dc00041e79dc00020051b4102410120051b2006411c6a28020028020c1100000d0020012000280200200228020c11010021040b200020043a00082000200028020441016a360204200341c0006a240020000b840703017f027e027f02402002280200220341134c0d00024002400240200042808084fea6dee111540d002002200341706a2203360200200120036a200042808084fea6dee111802204428080fc81d9a19e6e7e20007c2200428080e983b1de1680a741ff017141e4007041017441d283c0006a2f00003b0000200228020020016a41026a20004280a094a58d1d80a741ffff037141e4007041017441d283c0006a2f00003b0000200228020020016a41046a20004280c8afa02580a741e4007041017441d283c0006a2f00003b0000200228020020016a41066a20004280c2d72f80a741e4007041017441d283c0006a2f00003b0000200228020020016a41086a200042c0843d8042e40082a741017441d283c0006a2f00003b0000200228020020016a410a6a20004290ce008042e40082a741017441d283c0006a2f00003b0000200228020020016a410c6a200042e40080220542e40082a741017441d283c0006a2f00003b00002005429c7f7e20007ca72103410e21060c010b024020004280c2d72f5a0d00200021040c020b2002200341786a2203360200200120036a20004280c2d72f8022044280bea8507e20007ca7220341c0843d6e41ff017141e4007041017441d283c0006a2f00003b0000200228020020016a41026a20034190ce006e41ffff037141e4007041017441d283c0006a2f00003b0000200228020020016a41046a200341e4006e220641e4007041017441d283c0006a2f00003b00002006419c7f6c20036a2103410621060b2001200228020020066a6a200341017441d283c0006a2f00003b00000b024002402004a722064190ce004f0d00200621030c010b20022002280200417c6a2203360200200120036a20064190ce006e220341f0b17f6c20066a220641ffff037141e4006e220741017441d283c0006a2f00003b0000200228020020016a41026a2007419c7f6c20066a41ffff037141017441d283c0006a2f00003b00000b0240200341ffff0371220641e400490d0020022002280200417e6a2207360200200120076a200641e4006e2206419c7f6c20036a41ffff037141017441d283c0006a2f00003b0000200621030b0240200341ffff037141094b0d0020022002280200417f6a2206360200200120066a200341306a3a00000f0b20022002280200417e6a2206360200200120066a200341ffff037141017441d283c0006a2f00003b00000f0b41ee9dc000411c418c9ec000102d000b6c01017f230041306b2203240020032001360204200320003602002003411c6a41023602002003412c6a41023602002003420337020c200341a09ec000360208200341023602242003200341206a360218200320033602282003200341046a360220200341086a2002103a000b0b002000280200200110490b1c002001280218418bf6c10041052001411c6a28020028020c1100000b2e01017f230041106b220224002002200028020028020036020c2002410c6a200110492101200241106a240020010bc916041d7f017e017f017e230041f0036b22042400200441c8016a41086a220541002802b8f541360200200441002902b0f5413703c80102400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002402001200141e0006a2206200441c8016a10600d004130102f22070d010c180b200441186a2208200141f8006a290000370300200441106a2209200141f0006a290000370300200441086a220a200141e8006a290000370300200420012900603703002003410174210b2004410772210c200441c8016a41186a210d200441c8016a410c6a210e200441c8016a41206a210f4100211041002111410021120340201241017621060240024020124101710d00200620034b0d04200441003a00d001200420063602cc01200420023602c8010c010b200620034b0d04200620034f0d05200441013a00d001200420023602c801200420063602cc012004200220066a2d000041f001713a00d1010b200441206a20012004200441c8016a10610240200428022022130d00200441c8016a41186a2206200441186a290300370300200441c8016a41106a2210200441106a290300370300200441c8016a41086a2214200441086a290300370300200420042903003703c8014130102f2207450d19200720042903c801370001200720114100473a0000200741096a2014290300370000200741116a2010290300370000200741196a20062903003700000c160b20042802242115200441c8016a20132004280228106220042d00c8014101460d12201141016a2111034020042802e401211620042802e001211720042802dc01211820042802d801211920042802d401211420042802d001211a20042802cc012106200441206a200f41a8011085051a200428029403211b200428029003211c4100211d410021070240024002400240024020060e051a120001021a0b41002107410021060240201441017420196b221e200b20106b221b201b201e4b1b221f450d00410021060340201020066a221c410176221b20034f0d0c201920066a2220410176221d20144f0d0d2002201b6a2d0000221b410f71201b41f00171410476201c4101711b201a201d6a2d0000221b410f71201b41047620204101711b470d01201f200641016a2206470d000b201f21060b2006201e470d12201e21060c030b200420163602dc01200420173602d801200420183602d401200420193602d001200420143602cc012004201a3602c801200d200441206a41a8011085051a0240200b2010460d002010410176220620034f0d0c200441c8016a200220066a2d00002206410f71200641047620104101711b410c6c6a220628020022184102470d020c100b201c450d0f201b417f4c0d1b02400240201b0d00410121070c010b201b102f2207450d1d0b2007201c201b1085051a201bad222142208620218421210c180b20042802a003211e200428029c0321222004280298032106200420163602d001200420173602cc01200420183602c801200e200441206a41a8011085051a20042006360284032004201b360280032004201c3602fc0241002107410021060240201441017420196b2216200b20106b2217201720164b1b221f450d00410021060340201020066a221c410176221b20034f0d0d201920066a2220410176221d20144f0d0e2002201b6a2d0000221b410f71201b41f00171410476201c4101711b201a201d6a2d0000221b410f71201b41047620204101711b470d01201f200641016a2206470d000b201f21060b024020062016460d000c150b024020172016460d00201020166a2214410176220620034f0d0e200441c8016a200220066a2d00002206410f71200641047620144101711b410c6c6a221428020022184102460d15201641016a211e201641016a210620142802042117201441086a28020021160c020b024020220d000c150b201e417f4c0d1a02400240201e0d00410121070c010b201e102f2207450d1c0b20072022201e1085051a201ead222142208620218421210c140b20062802042117200641086a28020021164101211e410121060b200620126a21122010201e6a211002402018450d00200441c8016a20172016106220042d00c8014101460d140c010b0b0240024020164120460d002016417f4c0d190240024020160d00410121060c010b2016102f2206450d1b0b20062017201610850521064130102f2207450d1a200741043a0000200720042903003700012007201636002c2007201636002820072006360024200741096a200a290300370000200741116a2009290300370000200741196a20082903003700000c010b200441c8016a41026a41003a0000200441003b01c80120172f00002106200441cc036a41026a201741026a2d00003a00002017411f6a2d00002114201741176a29000021212017280003210720172900072123200441d0036a41086a22192017410f6a290000370300200441d0036a41106a221a2021370300200441d0036a41186a221b20143a0000200420063b01cc03200420233703d003200d201b2d00003a0000200441c8016a41106a201a29030037030020052019290300370300200420042903d0033703c8010b200441c8036a41026a2206200441cc036a41026a2d00003a0000200441a8036a41086a22142005290300370300200441a8036a41106a2219200441c8016a41106a290300370300200441a8036a41186a221a200d280200360200200420042f01cc033b01c803200420042903c8013703a80320164120470d13200c20042903a803370000200c41086a2014290300370000200c41106a2019290300370000200c41186a201a2d00003a0000200420042f01c8033b010020042007360003200420062d00003a00022015450d00201310300c000b0b200741003a000020072006290000370001200741096a200641086a290000370000200741116a200641106a290000370000200741196a200641186a2900003700000c130b2006200341a099c2001042000b2006200341b099c2001042000b2006200341c099c2001033000b201b200341e098c2001033000b201d201441e098c2001033000b2006200341e098c2001033000b201b200341e098c2001033000b201d201441e098c2001033000b2006200341e098c2001033000b410021070c080b41002107201441017420196b200b20106b221f470d00410021060240201f450d00410021060340201920066a221c410176221b20144f0d03201020066a2220410176221d20034f0d04201a201b6a2d0000221b410f71201b41f00171410476201c4101711b2002201d6a2d0000221b410f71201b41047620204101711b470d01201f200641016a2206470d000c050b0b2006201f460d030b0c030b201b201441e098c2001033000b201d200341e098c2001033000b2017417f4c0d060240024020170d00410121070c010b2017102f2207450d080b2007201820171085051a2017ad222142208620218421210b4100211d0c020b20042d00c90121064130102f2207450d05200741033a000020072004290300370001200720063a0021200741096a200441086a290300370000200741116a200441106a290300370000200741196a200441186a2903003700000b4101211d0b02402015450d00201310300b201d0d000240024020070d004200212142002123410021060c010b20214220882223a72210417f4c0d030240024020100d00410121060c010b2010102f2206450d050b2006200720101085051a02402021a7450d00200710300b20214280808080708321210b2000200636020420004100360200200041086a20232021843702000c010b02400240024020072d00000e0402020002010b200741086a280200450d01200741046a28020010300c010b200741286a280200450d00200741246a28020010300b20071030200041013602000b200441f0036a24000f0b102c000b102a000bce0201027f230041206b2203240002400240024002400240200120004180016a41201088050d004101102f2201450d03200141003a00000c010b0240024020012000413c6a41201088050d00200041386a2802002204417f4c0d0520002802302100024020040d00410121014101200020041085051a0c020b2004102f2201450d042001200020041085051a0c010b200341186a200141186a290000370300200341106a200141106a290000370300200341086a200141086a2900003703002003200129000037030041002101024020002003106722000d000c010b0240200028020c41014e0d000c010b20002802082204417f4c0d04200028020021000240024020040d00410121010c010b2004102f2201450d040b2001200020041085051a0b024020010d00410021010c020b2004450d010b200110300b200341206a240020014100470f0b102a000b102c000bda0201027f230041206b220424000240024002400240200220014180016a41201088050d004101102f2202450d02200042818080801037020420002002360200200241003a00000c010b0240024020022001413c6a41201088050d00200141386a2802002202417f4c0d0420012802302101024020020d00410121054101200120021085051a0c020b2002102f2205450d032005200120021085051a0c010b200441186a200241186a290000370300200441106a200241106a290000370300200441086a200241086a2900003703002004200229000037030041002105024020012004106722010d000c010b0240200128020c41014e0d000c010b20012802082202417f4c0d03200128020021010240024020020d00410121050c010b2002102f2205450d030b2005200120021085051a0b2000200236020420002005360200200041086a20023602000b200441206a24000f0b102a000b102c000ba60b03027f027e0c7f230041d0066b2203240041002104200341003602880520032002360284052003200136028005420321050240024020020d0042002106410021070c010b41012107200341013602880542002106024020012d000022080d00420021050c010b0240024002400240024002400240024002400240200841c00171220941c001460d0002402009418001460d00200941c000470d0b2008413f712208413f470d05410221074141210803402007417f6a20024f0d0320032007360288050240200120076a417f6a2d0000220941ff01460d00200920086b21080c0c0b200841817e6a2108200741016a2207418302470d000b41ffff03210841820221070c0a0b2008413f712208413f470d05410221074141210803402007417f6a20024f0d0320032007360288050240200120076a417f6a2d0000220941ff01460d00200920086b21080c0a0b200841817e6a2108200741016a2207418302470d000b41ffff03210841820221070c080b2008413f712208413f470d05410221074141210803402007417f6a20024f0d0320032007360288050240200120076a417f6a2d0000220941ff01460d00200920086b21080c080b200841817e6a2108200741016a2207418302470d000b41ffff03210841820221070c060b2007417f6a21070c080b2007417f6a21070c070b2007417f6a21070c060b410121070c040b410121070c020b410121070b2008ad422086428002842106420121050c020b2008ad4220862106420121050c010b2008ad4220862106420221050b2006422088a7210a410121094101210802400240024002400240024002400240024002402005200684a741ff01710e0405000107050b200a410171220b450d03200720024f0d0141002108200120076a2d00004110490d030c060b200a410171220b450d010240200720024f0d0041002108200120076a2d00004110490d020c060b2007200241d08dc1001033000b2007200241e08dc1001033000b2007200a41016a4101766a220c20024b0d022003200c36028805200341186a20034180056a106f20032802180d0241012108200328028805220d200328021c6a220e2003280284054b0d032003200e36028805410121040c010b2007200a41016a4101766a220c20024b22080d012003200c3602880520080d01200c41026a220820024b0d012003200836028805200c417e4f0d042001200c6a2f000021044100210a4100210d0240200642800283500d00200341106a20034180056a106f20032802100d0241012108200328028805220e20032802146a220f2003280284054b0d032003200f360288054101210d0b200341023602c406200341023602b806200341023602ac06200341023602a00620034102360294062003410236028806200341023602fc05200341023602f005200341023602e405200341023602d805200341023602cc05200341023602c005200341023602b405200341023602a8052003410236029c05200341023602900520034190056a2108200441ffff03712110034002402010200a410f7176410171450d00200341086a20034180056a106f20032802080d032003280288052211200328020c22126a22042003280284054b0d03200841086a2004360200200841046a20113602002008201241204736020020032004360288050b2008410c6a2108200a41016a220a4110470d000b200341c0036a20034190056a41c0011085051a410421040b20034180026a200341c0036a41c0011085051a2003412c6a200b360200200341286a200c360200200320073602242003413c6a20034180026a41c0011085051a200341386a200f360200200341346a200e360200200341306a200d36020020032004360220200041046a200341206a200120021070410021090c020b410121080b20034180026a200341c0036a41c0011085051a200020083a00010b200020093a0000200341d0066a24000f0b200c200841c08dc1001048000baf0201047f230041106b22022400024002402001280208220341046a2204417f4c0d002001280200210102400240024002400240024020040d0020024100360208200242013703000c010b2004102f2205450d06200241003602082002200436020420022005360200200341c000490d01200341808001490d022003418080808004490d030b200241033a000c20022002410c6a410110642002200336020c20022002410c6a410410640c030b200220034102743a000c20022002410c6a410110640c020b200220034102744101723b010c20022002410c6a410210640c010b2002200341027441027236020c20022002410c6a410410640b20022001200310642000200228020022032002280208106502402002280204450d00200310300b200241106a24000f0b102c000b102a000b880201047f230041206b2203240002400240200041046a2802002204200041086a28020022056b2002490d00200028020021040c010b0240200520026a22062005490d00200441017422052006200520064b1b22054108200541084b1b21050240024020040d00200341003602100c010b200341106a41086a410136020020032004360214200320002802003602100b200320054101200341106a1069200341086a2802002105024020032802004101460d00200020032802042204360200200041046a2005360200200041086a28020021050c020b2005450d00102a000b102c000b200420056a200120021085051a200041086a2200200028020020026a360200200341206a24000b7201027f2002ad4220862001ad84100f2101200041186a22024200370000200041106a22034200370000200041086a2204420037000020004200370000200020012900003700002004200141086a2900003700002003200141106a2900003700002002200141186a290000370000200110300bee0101027f230041206b2202240002404104102f2203450d0020024204370204200220033602004120102f2203450d002002422037021420022003360210200241106a200141046a412010642002200228021022032002280218106402402002280214450d00200310300b200220012802003602102002200241106a410410644120102f2203450d002002422037021420022003360210200241106a200141246a412010642002200228021022012002280218106402402002280214450d00200110300b2000200228020022012002280208106502402002280204450d00200110300b200241206a24000f0b102a000bd30303017f047e097f230041306b22022400200241206a20002903182000290308852203200141186a29000085420020002903102204200029030022058522062001290010854200108405200241106a200141086a29000020038542002001290000200685420010840520022004420020042004200542adfed5e4d485fda8d8007e200241206a41086a2903002002290320857c42a0cbbf9599b5a19f0a7c85421789200241106a41086a2903002002290310857c8542178922034200108405200041246a2802002207200041206a2802002208200241086a290300200229030085200389a722007122096a280000220a200041197641818284086c220b732200417f73200041fffdfb776a7141808182847871210c200941046a200871210d4104210e02400340200d21000240200c0d000240200a200a4101747141808182847871450d00410021000c030b200b200720006a280000220a73220c417f73200c41fffdfb776a7141808182847871210c20082000200e6a41046a71210d200e41046a210e200021090c010b200c68210f2000210d200c417f6a200c71210c20012007410020082009200f4103766a716b41306c6a41506a220041201088050d000b0b200241306a2400200041206a410020001b0be30605027f017e037f027e027f230041206b220524002005200120022003105f024002400240024020052802004101460d00024002400240024020052802042206450d004100210302400240200541086a2903002207422088a722010d000c010b2001417f6a21020240024020062d0000220841037122094103460d00200641016a210a02400240024020090e03000102000b200841027621080c030b024020020d000c040b200a2d0000410874200872220841ffff0371418002490d032001417e6a2102200641026a210a200841fcff037141027621080c020b0240200241034f0d000c030b20062f0001200641036a2d000041107472410874200872220841ffff034d0d022001417c6a2102200641046a210a200841027621080c010b0240200841034d0d000c020b0240200241044f0d000c020b20062800012208418080808004490d012001417b6a2102200641056a210a0b02400240200820024102762201200120084b1b22014102742203417f4c0d000240024020010d00410421030c010b2003102f2203450d0a0b2001ad210b2008450d02034020024104490d02200a280000210902400240200b422088220ca72201200ba7470d00200141016a220d2001490d032001410174220e200d200d200e491b220d4104200d41044b1b220d41ffffffff0371200d46410274210e200d410274210d0240024020010d00200541003602000c010b20054104360208200520033602002005200c4202863e02040b200541106a200d200e200510692005280218210d20052802104101460d0120052802142103200b42808080807083200d410276ad84210b0b2002417c6a2102200a41046a210a200320014102746a2009360200200b4280808080107c210b2008417f6a22080d010c040b0b200d0d090b102c000b0240200b42ffffffff0383500d00200310300b410021030b02402007a7450d00200610300b2003450d0220042802002201450d01200428020441ffffffff0371450d01200110300c010b20042802002203450d022004290204210b0b200041086a200b370200200041046a2003360200200041003a00000c050b20004181023b01000c020b200041023a0001200041013a00000c030b200041013b01000b20042802002201450d01200441046a28020041ffffffff0371450d01200110300c010b102a000b200541206a24000bc70101027f0240024002400240024002402002450d0020014100480d01024002400240200328020022040d002001450d010c050b200328020422050d0120010d040b200221030c050b2001102f2203450d032003200420051085051a200410300c040b2000200136020420004101360200200041086a41003602000f0b20004101360200200041086a41003602000f0b2001102f22030d010b2000200136020441012103200221010c010b20002003360204410021030b20002003360200200041086a20013602000b990603017f017e067f230041a0016b22052400200541f8006a200120022003105f0240024002400240024020052802784101460d00200528027c2201450d01024020054180016a2903002206422088a722044104490d002004417c7122024104460d0020024108460d002004417c712202410c460d0020024110460d0020044114460d00200128000021032001280004210720012800082108200128000c21092001280010210a20052004416b6a3602542005200141156a360250410021020240024020012d00140e020100020b200541f8006a200541d0006a106b4101210220052d00784101460d01200541f0006a20054191016a290000370300200541e8006a20054189016a290000370300200541e0006a20054181016a290000370300200520052900793703580b200541286a41186a2204200541d8006a41186a290300370300200541286a41106a220b200541d8006a41106a290300370300200541286a41086a220c200541d8006a41086a2903003703002005200529035837032802402006a7450d00200110300b2005411f6a200541286a411f6a280000360000200541186a2004290300370300200541106a200b290300370300200541086a200c290300370300200520052903283703000c030b02402006a7450d00200110300b20004181023b01000c040b200041013b01000c030b200541086a2004411d6a290000370300200541106a200441256a290000370300200541186a2004412d6a2900003703002005411f6a200441346a2800003600002005200429001537030020042d001422024102460d012004280210210a200428020c21092004280208210820042802042107200428020021030b200041186a20023a0000200041146a200a360200200041106a20093602002000410c6a2008360200200041086a2007360200200041046a2003360200200041196a2005290300370000200041216a200541086a290300370000200041296a200541106a290300370000200041316a200541186a290300370000200041386a2005411f6a280000360000200041003a00000c010b200041023a0001200041013a00000b200541a0016a24000bdb0301097f230041c0006b220241106a41047221032001280204210441002105024003402004450d01200128020022062d0000210720012004417f6a22043602042001200641016a360200200320056a20073a00002002200541016a22063602102006210520064120470d000b200241086a41026a22012002411d6a2d00003a00002002200241106a41196a220428000036023820022002412c6a28000036003b200220022f01143b010c200220022d00163a000e2002200241106a410b6a2f00003b0108200241306a2802002105200241256a28000021062002411e6a2801002107200228003b210320022800172108200241386a41026a2209200241246a2d00003a00002002200241106a41126a2f01003b0138200241046a41026a220a2002412b6a2d00003a0000200220042f00003b0104200041046a2008360000200041036a20022d000e3a0000200020022f010c3b00012000410b6a2007360000200041086a20022f01083b00002000410a6a20012d00003a0000200041126a20063600002000410f6a20022f01383b0000200041116a20092d00003a0000200041166a20022f01043b0000200041186a200a2d00003a00002000411d6a2005360000200041196a2003360000200041003a00000f0b200041013a00000b950201067f024020002802202201450d0002402000412c6a280200450d00200041246a280200220241046a2103200120026a41016a21042002280200417f73418081828478712101024003400240024020010d000340200320044f0d04200241c07e6a210220032802002101200341046a220521032001418081828478712201418081828478460d000b2001418081828478732201417f6a2001712106200521030c010b2001417f6a20017121060b2001682105200621012002410020054103766b41306c6a220541746a280200450d00200541706a2802001030200621010c000b0b200028022021010b200041246a280200200141016aad42307ea76b10300b0240200041346a280200450d00200028023010300b0bb00b01027f230041106b220224000240024002400240024002400240024020002d00000e0701020304050600010b2002200128021841ec9fc000410b2001411c6a28020028020c1100003a000820022001360200200241003a0009200241003602042002200041046a36020c20022002410c6a41f89fc000105921032002200041086a36020c4101210120032002410c6a41f89fc000105921032002200041016a36020c20032002410c6a4188a0c00010591a20022d000821000240200228020422030d00200021010c070b200041ff01710d06024020034101470d0020022d000941ff0171450d00200228020022002d00004104710d0041012101200028021841ea9dc00041012000411c6a28020028020c1100000d070b2002280200220128021841eb9dc00041012001411c6a28020028020c11000021010c060b20012802184198a0c000410c2001411c6a28020028020c11000021010c050b2002200128021841a4a0c00041062001411c6a28020028020c1100003a000820022001360200200241003a000920024100360204410121012002200041016a36020c20022002410c6a4188a0c00010591a20022d000821000240200228020422030d00200021010c050b200041ff01710d04024020034101470d0020022d000941ff0171450d00200228020022002d00004104710d0041012101200028021841ea9dc00041012000411c6a28020028020c1100000d050b2002280200220128021841eb9dc00041012001411c6a28020028020c11000021010c040b2002200128021841aaa0c000410a2001411c6a28020028020c1100003a000820022001360200200241003a000920024100360204410121012002200041016a36020c20022002410c6a4188a0c00010591a20022d000821000240200228020422030d00200021010c040b200041ff01710d03024020034101470d0020022d000941ff0171450d00200228020022002d00004104710d0041012101200028021841ea9dc00041012000411c6a28020028020c1100000d040b2002280200220128021841eb9dc00041012001411c6a28020028020c11000021010c030b2002200128021841b4a0c00041162001411c6a28020028020c1100003a000820022001360200200241003a000920024100360204410121012002200041016a36020c20022002410c6a4188a0c00010591a20022d000821000240200228020422030d00200021010c030b200041ff01710d02024020034101470d0020022d000941ff0171450d00200228020022002d00004104710d0041012101200028021841ea9dc00041012000411c6a28020028020c1100000d030b2002280200220128021841eb9dc00041012001411c6a28020028020c11000021010c020b2002200128021841caa0c00041172001411c6a28020028020c1100003a000820022001360200200241003a000920024100360204410121012002200041016a36020c20022002410c6a4188a0c00010591a20022d000821000240200228020422030d00200021010c020b200041ff01710d01024020034101470d0020022d000941ff0171450d00200228020022002d00004104710d0041012101200028021841ea9dc00041012000411c6a28020028020c1100000d020b2002280200220128021841eb9dc00041012001411c6a28020028020c11000021010c010b2002200128021841e1a0c00041162001411c6a28020028020c1100003a000820022001360200200241003a000920024100360204410121012002200041016a36020c20022002410c6a4188a0c00010591a20022d000821000240200228020422030d00200021010c010b200041ff01710d00024020034101470d0020022d000941ff0171450d00200228020022002d00004104710d0041012101200028021841ea9dc00041012000411c6a28020028020c1100000d010b2002280200220128021841eb9dc00041012001411c6a28020028020c11000021010b200241106a2400200141ff01714100470b690002400240024020002802002d00000e03010200010b200128021841f7a0c00041062001411c6a28020028020c1100000f0b200128021841fda0c00041052001411c6a28020028020c1100000f0b20012802184182a1c00041062001411c6a28020028020c1100000b880301077f410121020240024002400240024002402001280208220341016a2204200128020422054d0d000c010b200320054f0d012001280200220620036a2d00002107200120043602080240200741037122084103460d0002400240024020080e03000102000b20074102762108410021020c030b0240200341026a220320054d0d000c030b200120033602082004417f460d04200620046a2d0000410874200772220141ffff0371418002490d02200141fcff03714102762108410021020c020b200341046a220320054b0d01200120033602082004417d4f0d04200620046a22012f0000200141026a2d000041107472410874200772220141808004492102200141027621080c010b0240200741034d0d000c010b200341056a220320054b0d00200120033602082004417c4f0d04200620046a28000022084180808080044921020b20002008360204200020023602000f0b2003200541dc92c2001033000b417f200341ec91c2001048000b2004200341ec91c2001048000b2004200341ec91c2001048000bd20c01087f230041c0016b22042400024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024020012802000e050400010203040b200141086a2802002205200141046a2802002206490d04200520034b0d05200141146a280200220720012802102208490d06200720034b0d072001410c6a28020021092000200220066a36020420004101360200200041146a200720086b360200200041106a200220086a3602002000410c6a2009360200200041086a200520066b3602000c150b200141086a2802002207200141046a2802002208490d07200720034b0d08200141186a2802002105200141146a28020021062001410c6a28020021090240024020012802104101470d0020052006490d0b4101210a200520034d0d012005200341d49bc2001042000b20052006490d0b4100210a200520034b0d0c0b2000200220086a36020420004102360200200041186a200520066b360200200041146a200220066a360200200041106a200a3602002000410c6a2009360200200041086a200720086b3602000c140b200441023602b401200441023602a8012004410236029c0120044102360290012004410236028401200441023602782004410236026c2004410236026020044102360254200441023602482004410236023c2004410236023020044102360224200441023602182004410236020c20044102360200200141106a210b410021050340410221070240200b20056a2206280200410246220a0d0041002006200a1b220741086a2802002106200728020421080240024020072802004101470d0020062008490d0f41012107200620034d0d012006200341d49bc2001042000b20062008490d0f41002107200620034b0d100b200220086a2109200620086b21080b200420056a22062007360200200641086a2008360200200641046a20093602002005410c6a220541c001460d130c000b0b200441023602b401200441023602a8012004410236029c0120044102360290012004410236028401200441023602782004410236026c2004410236026020044102360254200441023602482004410236023c2004410236023020044102360224200441023602182004410236020c200441023602002001411c6a210b410021050340410221070240200b20056a2206280200410246220a0d0041002006200a1b220741086a2802002106200728020421080240024020072802004101470d0020062008490d1141012107200620034d0d012006200341d49bc2001042000b20062008490d1141002107200620034b0d120b200220086a2109200620086b21080b200420056a22062007360200200641086a2008360200200641046a20093602002005410c6a220541c001460d110c000b0b200041003602000c110b2006200541c49cc2001048000b2005200341c49cc2001042000b2008200741d49cc2001048000b2007200341d49cc2001042000b2008200741c49cc2001048000b2007200341c49cc2001042000b2006200541d49bc2001048000b2006200541e49bc2001048000b2005200341e49bc2001042000b2008200641d49bc2001048000b2008200641e49bc2001048000b2006200341e49bc2001042000b2008200641d49bc2001048000b2008200641e49bc2001048000b2006200341e49bc2001042000b02400240024002400240024020012802104101460d00410021070c010b200141186a2802002205200141146a2802002206490d01200520034b0d02200520066b2108200220066a21070b200141086a2802002205200141046a2802002206490d02200520034b0d03200041086a200520066b3602002000200220066a3602042000410c6a2001410c6a280200360200200041106a200441c0011085051a200041d4016a2008360200200041d0016a2007360200200041043602000c050b2006200541f49cc2001048000b2005200341f49cc2001042000b2006200541c49cc2001048000b2005200341c49cc2001042000b0240024020012802044101460d00410021050c010b2001410c6a2802002205200141086a2802002207490d02200520034b0d03200520076b2106200220076a21050b200041046a200441c0011085051a200041c8016a2006360200200041c4016a2005360200200041033602000b200441c0016a24000f0b2007200541e49cc2001048000b2005200341e49cc2001042000b8b0702047f017e230041306b2206240002400240024002400240410028028cad4241016a220741004c0d0002404100280290ad424101460d00200641086a4100280288ad42110200200641186a41086a200641086a41086a29030037030020062006290308370318410028028cad420d024100417f36028cad4202404100280290ad42450d00024041002802a0ad422208450d004100280298ad422107200841027421080340200728020022092009280200417f6a3602000240200728020022092802000d00200941046a22092009280200417f6a3602002007280200220941046a2802000d00200910300b200741046a21072008417c6a22080d000b0b410028029cad4241ffffffff0371450d004100280298ad4210300b41004101360290ad4241002006290318370294ad424100200641206a29030037029cad424100410028028cad42220741016a36028cad42200741026a220741004c0d030b4100200736028cad424100280294ad42220841016a220741004c0d0341002007360294ad420240024041002802a0ad422207450d0020074102744100280298ad426a417c6a280200220728020041016a220841014b0d0100000b41002008360294ad424100410028028cad42417f6a36028cad424188a1c000412441aca1c0001050000b2007200836020041004100280294ad42417f6a360294ad4220072802080d042007417f360208200641186a410472200728020c2001200220072802102802101103002007200728020841016a36020820072007280200417f6a220836020002400240024020080d00200741046a22082008280200417f6a220836020020080d01200710304100410028028cad42417f6a36028cad420c020b4100410028028cad42417f6a36028cad420c010b4100410028028cad42417f6a36028cad420b02400240200628021c22080d00410021090c010b20032008200641206a290300220a422088a72207200520072005491b22096a2004200720096b2209200920044b1b1085051a41012109200aa7450d00200810300b2000200736020420002009360200200641306a24000f0b41aeaac0004118200641286a41ac9fc00041d8aac0001034000b41b082c2004110200641286a41bc9fc00041f8aac0001034000b41aeaac0004118200641286a41ac9fc0004188abc0001034000b41aeaac0004118200641286a41ac9fc0004184acc0001034000b41b082c2004110200641286a41bc9fc0004194acc0001034000b860701057f230041306b22042400024002400240024002400240024002400240410028028cad42220541016a220641004c0d0002404100280290ad424101460d00200441086a4100280288ad42110200200441186a41086a200441086a41086a29030037030020042004290308370318410028028cad420d024100417f36028cad4202404100280290ad42450d00024041002802a0ad422205450d004100280298ad422106200541027421050340200628020022072007280200417f6a3602000240200628020022072802000d00200741046a22072007280200417f6a3602002006280200220741046a2802000d00200710300b200641046a21062005417c6a22050d000b0b410028029cad4241ffffffff0371450d004100280298ad4210300b41004101360290ad4241002004290318370294ad424100200441206a29030037029cad424100410028028cad42220641016a220536028cad42200641026a220641004c0d030b4100200636028cad424100280294ad42220741016a220641004c0d0341002006360294ad4241002802a0ad422206450d0820064102744100280298ad426a417c6a280200220628020041016a220541014d0d042006200536020041004100280294ad42417f6a360294ad4220062802080d052006417f3602082001417f4c0d06200628020c2107200628021021080240024020010d00410121050c010b2001102f2205450d080b2004200136020c200420053602082005200020011085051a200420013602102003417f4c0d064101210502402003450d002003102f2205450d080b2005200220031085052105200441206a20033602002004200336021c200420053602182007200441086a200441186a200828024c1104002006200628020841016a36020820062006280200417f6a2205360200024020050d00200641046a22052005280200417f6a220536020020050d00200610300b4100410028028cad42417f6a36028cad42200441306a24000f0b41aeaac0004118200441286a41ac9fc00041d8aac0001034000b41b082c2004110200441286a41bc9fc00041f8aac0001034000b41aeaac0004118200441286a41ac9fc0004188abc0001034000b41aeaac0004118200441286a41ac9fc0004184acc0001034000b00000b41b082c2004110200441286a41bc9fc0004194acc0001034000b102c000b102a000b4100200536028cad4241002007360294ad424188a1c000412441aca1c0001050000be70601057f230041306b2203240002400240024002400240024002400240410028028cad4241016a220441004c0d0002404100280290ad424101460d00200341086a4100280288ad42110200200341186a41086a200341086a41086a29030037030020032003290308370318410028028cad420d024100417f36028cad4202404100280290ad42450d00024041002802a0ad422205450d004100280298ad422104200541027421050340200428020022062006280200417f6a3602000240200428020022062802000d00200641046a22062006280200417f6a3602002004280200220641046a2802000d00200610300b200441046a21042005417c6a22050d000b0b410028029cad4241ffffffff0371450d004100280298ad4210300b41004101360290ad4241002003290318370294ad424100200341206a29030037029cad424100410028028cad42220441016a36028cad42200441026a220441004c0d030b4100200436028cad424100280294ad42220541016a220441004c0d0341002004360294ad4202400240024041002802a0ad422207450d0020074102744100280298ad426a417c6a280200220428020041016a220541014b0d0100000b41002005360294ad420c010b200420053602004100210641004100280294ad42417f6a360294ad4220042802080d052004417f360208200341186a200428020c20012002200428021028021011030002400240200328021822010d000c010b200341206a2802002205417f4c0d070240024020050d00410121060c010b2005102f2206450d090b2006200120051085051a200328021c450d00200110300b2004200428020841016a36020820042004280200417f6a220136020020010d00200441046a22012001280200417f6a220136020020010d00200410300b4100410028028cad42417f6a36028cad422007450d072000200536020420002006360200200041086a2005360200200341306a24000f0b41aeaac0004118200341286a41ac9fc00041d8aac0001034000b41b082c2004110200341286a41bc9fc00041f8aac0001034000b41aeaac0004118200341286a41ac9fc0004188abc0001034000b41aeaac0004118200341286a41ac9fc0004184acc0001034000b41b082c2004110200341286a41bc9fc0004194acc0001034000b102c000b102a000b4188a1c000412441aca1c0001050000bf20501047f230041306b220224000240024002400240024002400240410028028cad42220341016a220441004c0d0002404100280290ad424101460d00200241086a4100280288ad42110200200241186a41086a200241086a41086a29030037030020022002290308370318410028028cad420d024100417f36028cad4202404100280290ad42450d00024041002802a0ad422203450d004100280298ad422104200341027421030340200428020022052005280200417f6a3602000240200428020022052802000d00200541046a22052005280200417f6a3602002004280200220541046a2802000d00200510300b200441046a21042003417c6a22030d000b0b410028029cad4241ffffffff0371450d004100280298ad4210300b41004101360290ad4241002002290318370294ad424100200241206a29030037029cad424100410028028cad42220441016a220336028cad42200441026a220441004c0d030b4100200436028cad424100280294ad42220541016a220441004c0d0341002004360294ad4241002802a0ad422204450d0620044102744100280298ad426a417c6a280200220428020041016a220341014d0d042004200336020041004100280294ad42417f6a360294ad4220042802080d052004417f360208200428020c20002001200428021028023011000021032004200428020841016a36020820042004280200417f6a2205360200024020050d00200441046a22052005280200417f6a220536020020050d00200410300b4100410028028cad42417f6a36028cad42200241306a240020030f0b41aeaac0004118200241286a41ac9fc00041d8aac0001034000b41b082c2004110200241286a41bc9fc00041f8aac0001034000b41aeaac0004118200241286a41ac9fc0004188abc0001034000b41aeaac0004118200241286a41ac9fc0004184acc0001034000b00000b41b082c2004110200241286a41bc9fc0004194acc0001034000b4100200336028cad4241002005360294ad424188a1c000412441aca1c0001050000bca0601057f230041306b22022400024002400240024002400240024002400240410028028cad42220341016a220441004c0d0002404100280290ad424101460d00200241086a4100280288ad42110200200241186a41086a200241086a41086a29030037030020022002290308370318410028028cad420d024100417f36028cad4202404100280290ad42450d00024041002802a0ad422203450d004100280298ad422104200341027421030340200428020022052005280200417f6a3602000240200428020022052802000d00200541046a22052005280200417f6a3602002004280200220541046a2802000d00200510300b200441046a21042003417c6a22030d000b0b410028029cad4241ffffffff0371450d004100280298ad4210300b41004101360290ad4241002002290318370294ad424100200241206a29030037029cad424100410028028cad42220441016a220336028cad42200441026a220441004c0d030b4100200436028cad424100280294ad42220541016a220441004c0d0341002004360294ad4241002802a0ad422204450d0820044102744100280298ad426a417c6a280200220428020041016a220341014d0d042004200336020041004100280294ad42417f6a360294ad4220042802080d052004417f3602082001417f4c0d06200428020c2105200428021021064101210302402001450d002001102f2203450d080b2002200136020c200220033602082003200020011085051a20022001360210200241003602182005200241086a200241186a200628024c1104002004200428020841016a36020820042004280200417f6a2203360200024020030d00200441046a22032003280200417f6a220336020020030d00200410300b4100410028028cad42417f6a36028cad42200241306a24000f0b41aeaac0004118200241286a41ac9fc00041d8aac0001034000b41b082c2004110200241286a41bc9fc00041f8aac0001034000b41aeaac0004118200241286a41ac9fc0004188abc0001034000b41aeaac0004118200241286a41ac9fc0004184acc0001034000b00000b41b082c2004110200241286a41bc9fc0004194acc0001034000b102c000b102a000b4100200336028cad4241002005360294ad424188a1c000412441aca1c0001050000b930601047f230041306b22012400024002400240024002400240410028028cad4241016a220241004c0d0002404100280290ad424101460d00200141086a4100280288ad42110200200141186a41086a200141086a41086a29030037030020012001290308370318410028028cad420d024100417f36028cad4202404100280290ad42450d00024041002802a0ad422203450d004100280298ad422102200341027421030340200228020022042004280200417f6a3602000240200228020022042802000d00200441046a22042004280200417f6a3602002002280200220441046a2802000d00200410300b200241046a21022003417c6a22030d000b0b410028029cad4241ffffffff0371450d004100280298ad4210300b41004101360290ad4241002001290318370294ad424100200141206a29030037029cad424100410028028cad42220241016a36028cad42200241026a220241004c0d030b4100200236028cad424100280294ad42220341016a220241004c0d0341002002360294ad4202400240024041002802a0ad422202450d0020024102744100280298ad426a417c6a280200220228020041016a220341014b0d0100000b41002003360294ad42200141003602180c010b2002200336020041004100280294ad42417f6a360294ad4220022802080d052002417f360208200141186a200228020c20022802102802541105002002200228020841016a36020820022002280200417f6a220336020020030d00200241046a22032003280200417f6a220336020020030d00200210300b4100410028028cad42417f6a36028cad422001280218450d0520002001290318370200200041086a200141186a41086a280200360200200141306a24000f0b41aeaac0004118200141286a41ac9fc00041d8aac0001034000b41b082c2004110200141286a41bc9fc00041f8aac0001034000b41aeaac0004118200141286a41ac9fc0004188abc0001034000b41aeaac0004118200141286a41ac9fc0004184acc0001034000b41b082c2004110200141286a41bc9fc0004194acc0001034000b4188a1c000412441aca1c0001050000bee0501047f230041306b220224000240024002400240024002400240410028028cad42220341016a220441004c0d0002404100280290ad424101460d00200241086a4100280288ad42110200200241186a41086a200241086a41086a29030037030020022002290308370318410028028cad420d024100417f36028cad4202404100280290ad42450d00024041002802a0ad422203450d004100280298ad422104200341027421030340200428020022052005280200417f6a3602000240200428020022052802000d00200541046a22052005280200417f6a3602002004280200220541046a2802000d00200510300b200441046a21042003417c6a22030d000b0b410028029cad4241ffffffff0371450d004100280298ad4210300b41004101360290ad4241002002290318370294ad424100200241206a29030037029cad424100410028028cad42220441016a220336028cad42200441026a220441004c0d030b4100200436028cad424100280294ad42220541016a220441004c0d0341002004360294ad4241002802a0ad422204450d0620044102744100280298ad426a417c6a280200220428020041016a220341014d0d042004200336020041004100280294ad42417f6a360294ad4220042802080d052004417f360208200428020c2000200120042802102802441104002004200428020841016a36020820042004280200417f6a2203360200024020030d00200441046a22032003280200417f6a220336020020030d00200410300b4100410028028cad42417f6a36028cad42200241306a24000f0b41aeaac0004118200241286a41ac9fc00041d8aac0001034000b41b082c2004110200241286a41bc9fc00041f8aac0001034000b41aeaac0004118200241286a41ac9fc0004188abc0001034000b41aeaac0004118200241286a41ac9fc0004184acc0001034000b00000b41b082c2004110200241286a41bc9fc0004194acc0001034000b4100200336028cad4241002005360294ad424188a1c000412441aca1c0001050000ba70602047f017e230041306b22032400024002400240024002400240410028028cad4241016a220441004c0d0002404100280290ad424101460d00200341086a4100280288ad42110200200341186a41086a200341086a41086a29030037030020032003290308370318410028028cad420d024100417f36028cad4202404100280290ad42450d00024041002802a0ad422205450d004100280298ad422104200541027421050340200428020022062006280200417f6a3602000240200428020022062802000d00200641046a22062006280200417f6a3602002004280200220641046a2802000d00200610300b200441046a21042005417c6a22050d000b0b410028029cad4241ffffffff0371450d004100280298ad4210300b41004101360290ad4241002003290318370294ad424100200341206a29030037029cad424100410028028cad42220441016a36028cad42200441026a220441004c0d030b4100200436028cad424100280294ad42220641016a220441004c0d0341002004360294ad4202400240024041002802a0ad422205450d0020054102744100280298ad426a417c6a280200220428020041016a220641014b0d0100000b41002006360294ad420c010b2004200636020041004100280294ad42417f6a360294ad4220042802080d052004417f360208200341186a200428020c2001200220042802102802601103000240024020032802184101460d00200341206a2903002107200328021c21060c010b410021060b2004200428020841016a36020820042004280200417f6a220136020020010d00200441046a22012001280200417f6a220136020020010d00200410300b4100410028028cad42417f6a36028cad422005450d052000200737020420002006360200200341306a24000f0b41aeaac0004118200341286a41ac9fc00041d8aac0001034000b41b082c2004110200341286a41bc9fc00041f8aac0001034000b41aeaac0004118200341286a41ac9fc0004188abc0001034000b41aeaac0004118200341286a41ac9fc0004184acc0001034000b41b082c2004110200341286a41bc9fc0004194acc0001034000b4188a1c000412441aca1c0001050000b810701077f230041306b2203240002400240024002400240024002400240410028028cad4241016a220441004c0d0020022802082105200228020421062002280200210702404100280290ad424101460d00200341086a4100280288ad42110200200341186a41086a200341086a41086a29030037030020032003290308370318410028028cad420d024100417f36028cad4202404100280290ad42450d00024041002802a0ad422204450d004100280298ad422102200441027421040340200228020022082008280200417f6a3602000240200228020022082802000d00200841046a22082008280200417f6a3602002002280200220841046a2802000d00200810300b200241046a21022004417c6a22040d000b0b410028029cad4241ffffffff0371450d004100280298ad4210300b41004101360290ad4241002003290318370294ad424100200341206a29030037029cad424100410028028cad42220241016a36028cad42200241026a220441004c0d030b4100200436028cad424100280294ad42220841016a220241004c0d0341002002360294ad42024041002802a0ad422202450d0020024102744100280298ad426a417c6a280200220228020041016a220441014d0d052002200436020041004100280294ad42417f6a360294ad4220022802080d062002417f3602082001417f4c0d07200228020c2108200228021021094101210402402001450d002001102f2204450d090b2003200136020c200320043602082004200020011085051a20032001360210200320053602202003200636021c200320073602182008200341086a200341186a200928025c1104002002200228020841016a36020820022002280200417f6a2204360200024020040d00200241046a22042004280200417f6a220436020020040d00200210300b4100410028028cad42417f6a36028cad42200341306a24000f0b41002008360294ad4202402006450d0020071030410028028cad4221040b41002004417f6a36028cad424188a1c000412441aca1c0001050000b41aeaac0004118200341286a41ac9fc00041d8aac0001034000b41b082c2004110200341286a41bc9fc00041f8aac0001034000b41aeaac0004118200341286a41ac9fc0004188abc0001034000b41aeaac0004118200341286a41ac9fc0004184acc0001034000b00000b41b082c2004110200341286a41bc9fc0004194acc0001034000b102c000b102a000bc00601047f230041306b2203240002400240024002400240410028028cad4241016a220441004c0d0002404100280290ad424101460d00200341086a4100280288ad42110200200341186a41086a200341086a41086a29030037030020032003290308370318410028028cad420d024100417f36028cad4202404100280290ad42450d00024041002802a0ad422205450d004100280298ad422104200541027421050340200428020022062006280200417f6a3602000240200428020022062802000d00200641046a22062006280200417f6a3602002004280200220641046a2802000d00200610300b200441046a21042005417c6a22050d000b0b410028029cad4241ffffffff0371450d004100280298ad4210300b41004101360290ad4241002003290318370294ad424100200341206a29030037029cad424100410028028cad42220441016a36028cad42200441026a220441004c0d030b4100200436028cad424100280294ad42220541016a220441004c0d0341002004360294ad420240024041002802a0ad422204450d0020044102744100280298ad426a417c6a280200220428020041016a220541014b0d0100000b41002005360294ad424100410028028cad42417f6a36028cad424188a1c000412441aca1c0001050000b2004200536020041004100280294ad42417f6a360294ad4220042802080d042004417f360208200341186a410472200428020c2001200220042802102802381103002004200428020841016a36020820042004280200417f6a220536020002400240024020050d00200441046a22052005280200417f6a220536020020050d01200410304100410028028cad42417f6a36028cad420c020b4100410028028cad42417f6a36028cad420c010b4100410028028cad42417f6a36028cad420b2000200329021c370200200041086a200341246a280200360200200341306a24000f0b41aeaac0004118200341286a41ac9fc00041d8aac0001034000b41b082c2004110200341286a41bc9fc00041f8aac0001034000b41aeaac0004118200341286a41ac9fc0004188abc0001034000b41aeaac0004118200341286a41ac9fc0004184acc0001034000b41b082c2004110200341286a41bc9fc0004194acc0001034000bea0501047f230041306b220024000240024002400240024002400240410028028cad42220141016a220241004c0d0002404100280290ad424101460d00200041086a4100280288ad42110200200041186a41086a200041086a41086a29030037030020002000290308370318410028028cad420d024100417f36028cad4202404100280290ad42450d00024041002802a0ad422201450d004100280298ad422102200141027421010340200228020022032003280200417f6a3602000240200228020022032802000d00200341046a22032003280200417f6a3602002002280200220341046a2802000d00200310300b200241046a21022001417c6a22010d000b0b410028029cad4241ffffffff0371450d004100280298ad4210300b41004101360290ad4241002000290318370294ad424100200041206a29030037029cad424100410028028cad42220241016a220136028cad42200241026a220241004c0d030b4100200236028cad424100280294ad42220341016a220241004c0d0341002002360294ad4241002802a0ad422202450d0620024102744100280298ad426a417c6a280200220228020041016a220141014d0d042002200136020041004100280294ad42417f6a360294ad4220022802080d052002417f360208200228020c20022802102802641102002002200228020841016a36020820022002280200417f6a2201360200024020010d00200241046a22012001280200417f6a220136020020010d00200210300b4100410028028cad42417f6a36028cad42200041306a24000f0b41aeaac0004118200041286a41ac9fc00041d8aac0001034000b41b082c2004110200041286a41bc9fc00041f8aac0001034000b41aeaac0004118200041286a41ac9fc0004188abc0001034000b41aeaac0004118200041286a41ac9fc0004184acc0001034000b00000b41b082c2004110200041286a41bc9fc0004194acc0001034000b4100200136028cad4241002003360294ad424188a1c000412441aca1c0001050000b820601047f230041306b2200240002400240024002400240024002400240410028028cad42220141016a220241004c0d0002404100280290ad424101460d00200041086a4100280288ad42110200200041186a41086a200041086a41086a29030037030020002000290308370318410028028cad420d024100417f36028cad4202404100280290ad42450d00024041002802a0ad422201450d004100280298ad422102200141027421010340200228020022032003280200417f6a3602000240200228020022032802000d00200341046a22032003280200417f6a3602002002280200220341046a2802000d00200310300b200241046a21022001417c6a22010d000b0b410028029cad4241ffffffff0371450d004100280298ad4210300b41004101360290ad4241002000290318370294ad424100200041206a29030037029cad424100410028028cad42220241016a220136028cad42200241026a220241004c0d030b4100200236028cad424100280294ad42220341016a220241004c0d0341002002360294ad4241002802a0ad422202450d0420024102744100280298ad426a417c6a280200220228020041016a220141014d0d052002200136020041004100280294ad42417f6a360294ad4220022802080d062002417f360208200228020c200228021028026811060021012002200228020841016a36020820022002280200417f6a2203360200024020030d00200241046a22032003280200417f6a220336020020030d00200210300b4100410028028cad42417f6a36028cad4220010d07200041306a24000f0b41aeaac0004118200041286a41ac9fc00041d8aac0001034000b41b082c2004110200041286a41bc9fc00041f8aac0001034000b41aeaac0004118200041286a41ac9fc0004188abc0001034000b41aeaac0004118200041286a41ac9fc0004184acc0001034000b4100200136028cad4241002003360294ad424188a1c000412441aca1c0001050000b00000b41b082c2004110200041286a41bc9fc0004194acc0001034000b41bca1c000412c41e8a1c0001050000b820601047f230041306b2200240002400240024002400240024002400240410028028cad42220141016a220241004c0d0002404100280290ad424101460d00200041086a4100280288ad42110200200041186a41086a200041086a41086a29030037030020002000290308370318410028028cad420d024100417f36028cad4202404100280290ad42450d00024041002802a0ad422201450d004100280298ad422102200141027421010340200228020022032003280200417f6a3602000240200228020022032802000d00200341046a22032003280200417f6a3602002002280200220341046a2802000d00200310300b200241046a21022001417c6a22010d000b0b410028029cad4241ffffffff0371450d004100280298ad4210300b41004101360290ad4241002000290318370294ad424100200041206a29030037029cad424100410028028cad42220241016a220136028cad42200241026a220241004c0d030b4100200236028cad424100280294ad42220341016a220241004c0d0341002002360294ad4241002802a0ad422202450d0420024102744100280298ad426a417c6a280200220228020041016a220141014d0d052002200136020041004100280294ad42417f6a360294ad4220022802080d062002417f360208200228020c200228021028026c11060021012002200228020841016a36020820022002280200417f6a2203360200024020030d00200241046a22032003280200417f6a220336020020030d00200210300b4100410028028cad42417f6a36028cad4220010d07200041306a24000f0b41aeaac0004118200041286a41ac9fc00041d8aac0001034000b41b082c2004110200041286a41bc9fc00041f8aac0001034000b41aeaac0004118200041286a41ac9fc0004188abc0001034000b41aeaac0004118200041286a41ac9fc0004184acc0001034000b4100200136028cad4241002003360294ad424188a1c000412441aca1c0001050000b00000b41b082c2004110200041286a41bc9fc0004194acc0001034000b41f8a1c000412a41a4a2c0001050000ba10701027f230041c0006b2205240002400240024002400240024002402002417f4c0d004101210602402002450d002002102f2206450d020b2006200120021085052106200520023602102005200236020c20052006360208410028028cad4241016a220241004c0d0202404100280290ad424101460d00200541186a4100280288ad42110200200541286a41086a200541186a41086a29030037030020052005290318370328410028028cad420d044100417f36028cad4202404100280290ad42450d00024041002802a0ad422206450d004100280298ad422102200641027421060340200228020022012001280200417f6a3602000240200228020022012802000d00200141046a22012001280200417f6a3602002002280200220141046a2802000d00200110300b200241046a21022006417c6a22060d000b0b410028029cad4241ffffffff0371450d004100280298ad4210300b41004101360290ad4241002005290328370294ad424100200541306a29030037029cad424100410028028cad42220241016a36028cad42200241026a220241004c0d050b4100200236028cad424100280294ad42220641016a220241004c0d0541002002360294ad420240024041002802a0ad422202450d0020024102744100280298ad426a417c6a280200220228020041016a220641014b0d0100000b41002006360294ad424100410028028cad42417f6a36028cad424188a1c000412441aca1c0001050000b2002200636020041004100280294ad42417f6a360294ad4220022802080d062002417f360208200541286a410472200228020c200541086a20032004200228021028021c1107002002200228020841016a36020820022002280200417f6a220636020002400240024020060d00200241046a22062006280200417f6a220636020020060d01200210304100410028028cad42417f6a36028cad420c020b4100410028028cad42417f6a36028cad420c010b4100410028028cad42417f6a36028cad420b2000200529022c370200200041086a200541346a2802003602000240200528020c450d00200528020810300b200541c0006a24000f0b102c000b102a000b41aeaac0004118200541386a41ac9fc00041d8aac0001034000b41b082c2004110200541386a41bc9fc00041f8aac0001034000b41aeaac0004118200541386a41ac9fc0004188abc0001034000b41aeaac0004118200541386a41ac9fc0004184acc0001034000b41b082c2004110200541386a41bc9fc0004194acc0001034000bec0702027f017e230041c0006b2208240002400240024002400240024002402002417f4c0d004101210902402002450d002002102f2209450d020b2009200120021085052109200820023602102008200236020c20082009360208410028028cad4241016a220241004c0d0202404100280290ad424101460d00200841186a4100280288ad42110200200841286a41086a200841186a41086a29030037030020082008290318370328410028028cad420d044100417f36028cad4202404100280290ad42450d00024041002802a0ad422209450d004100280298ad422102200941027421090340200228020022012001280200417f6a3602000240200228020022012802000d00200141046a22012001280200417f6a3602002002280200220141046a2802000d00200110300b200241046a21022009417c6a22090d000b0b410028029cad4241ffffffff0371450d004100280298ad4210300b41004101360290ad4241002008290328370294ad424100200841306a29030037029cad424100410028028cad42220241016a36028cad42200241026a220241004c0d050b4100200236028cad424100280294ad42220941016a220241004c0d0541002002360294ad420240024041002802a0ad422202450d0020024102744100280298ad426a417c6a280200220228020041016a220941014b0d0100000b41002009360294ad424100410028028cad42417f6a36028cad424188a1c000412441aca1c0001050000b2002200936020041004100280294ad42417f6a360294ad4220022802080d062002417f360208200841286a410472200228020c200841086a20032004200228021028021c1107002002200228020841016a36020820022002280200417f6a220936020002400240024020090d00200241046a22092009280200417f6a220936020020090d01200210304100410028028cad42417f6a36028cad420c020b4100410028028cad42417f6a36028cad420c010b4100410028028cad42417f6a36028cad420b02400240200828022c22090d00410021010c010b20052009200841306a290300220a422088a72202200720022007491b22016a2006200220016b2201200120064b1b1085051a41012101200aa7450d00200910300b0240200828020c450d00200828020810300b2000200236020420002001360200200841c0006a24000f0b102c000b102a000b41aeaac0004118200841386a41ac9fc00041d8aac0001034000b41b082c2004110200841386a41bc9fc00041f8aac0001034000b41aeaac0004118200841386a41ac9fc0004188abc0001034000b41aeaac0004118200841386a41ac9fc0004184acc0001034000b41b082c2004110200841386a41bc9fc0004194acc0001034000bdb0701037f230041c0006b220624000240024002400240024002400240024002402001417f4c0d004101210702402001450d002001102f2207450d020b2007200020011085052107200620013602102006200136020c20062007360208410028028cad42220741016a220141004c0d0202404100280290ad424101460d00200641186a4100280288ad42110200200641286a41086a200641186a41086a29030037030020062006290318370328410028028cad420d044100417f36028cad4202404100280290ad42450d00024041002802a0ad422207450d004100280298ad422101200741027421070340200128020022002000280200417f6a3602000240200128020022002802000d00200041046a22002000280200417f6a3602002001280200220041046a2802000d00200010300b200141046a21012007417c6a22070d000b0b410028029cad4241ffffffff0371450d004100280298ad4210300b41004101360290ad4241002006290328370294ad424100200641306a29030037029cad424100410028028cad42220141016a220736028cad42200141026a220141004c0d050b4100200136028cad424100280294ad42220041016a220141004c0d0541002001360294ad4241002802a0ad422201450d0820014102744100280298ad426a417c6a280200220128020041016a220741014d0d062001200736020041004100280294ad42417f6a360294ad4220012802080d072001417f3602082003417f4c0d00200128020c2100200128021021080240024020030d00410121070c010b2003102f2207450d020b2006200336021c200620073602182007200220031085051a200620033602202005417f4c0d004101210702402005450d002005102f2207450d020b2007200420051085052107200641306a20053602002006200536022c200620073602282000200641086a200641186a200641286a20082802501103002001200128020841016a36020820012001280200417f6a2207360200024020070d00200141046a22072007280200417f6a220736020020070d00200110300b4100410028028cad42417f6a36028cad420240200628020c450d00200628020810300b200641c0006a24000f0b102c000b102a000b41aeaac0004118200641386a41ac9fc00041d8aac0001034000b41b082c2004110200641386a41bc9fc00041f8aac0001034000b41aeaac0004118200641386a41ac9fc0004188abc0001034000b41aeaac0004118200641386a41ac9fc0004184acc0001034000b00000b41b082c2004110200641386a41bc9fc0004194acc0001034000b4100200736028cad4241002000360294ad424188a1c000412441aca1c0001050000b9f0701037f230041c0006b220424000240024002400240024002400240024002402001417f4c0d004101210502402001450d002001102f2205450d020b2005200020011085052105200420013602102004200136020c20042005360208410028028cad42220541016a220141004c0d0202404100280290ad424101460d00200441186a4100280288ad42110200200441286a41086a200441186a41086a29030037030020042004290318370328410028028cad420d044100417f36028cad4202404100280290ad42450d00024041002802a0ad422205450d004100280298ad422101200541027421050340200128020022002000280200417f6a3602000240200128020022002802000d00200041046a22002000280200417f6a3602002001280200220041046a2802000d00200010300b200141046a21012005417c6a22050d000b0b410028029cad4241ffffffff0371450d004100280298ad4210300b41004101360290ad4241002004290328370294ad424100200441306a29030037029cad424100410028028cad42220141016a220536028cad42200141026a220141004c0d050b4100200136028cad424100280294ad42220041016a220141004c0d0541002001360294ad4241002802a0ad422201450d0820014102744100280298ad426a417c6a280200220128020041016a220541014d0d062001200536020041004100280294ad42417f6a360294ad4220012802080d072001417f3602082003417f4c0d00200128020c2100200128021021064101210502402003450d002003102f2205450d020b2004200336021c200420053602182005200220031085051a20042003360220200441003602282000200441086a200441186a200441286a20062802501103002001200128020841016a36020820012001280200417f6a2205360200024020050d00200141046a22052005280200417f6a220536020020050d00200110300b4100410028028cad42417f6a36028cad420240200428020c450d00200428020810300b200441c0006a24000f0b102c000b102a000b41aeaac0004118200441386a41ac9fc00041d8aac0001034000b41b082c2004110200441386a41bc9fc00041f8aac0001034000b41aeaac0004118200441386a41ac9fc0004188abc0001034000b41aeaac0004118200441386a41ac9fc0004184acc0001034000b00000b41b082c2004110200441386a41bc9fc0004194acc0001034000b4100200536028cad4241002000360294ad424188a1c000412441aca1c0001050000bf30601027f230041c0006b220524000240024002400240024002400240024002402002417f4c0d004101210602402002450d002002102f2206450d020b2006200120021085052106200520023602102005200236020c20052006360208410028028cad42220641016a220241004c0d0202404100280290ad424101460d00200541186a4100280288ad42110200200541286a41086a200541186a41086a29030037030020052005290318370328410028028cad420d044100417f36028cad4202404100280290ad42450d00024041002802a0ad422206450d004100280298ad422102200641027421060340200228020022012001280200417f6a3602000240200228020022012802000d00200141046a22012001280200417f6a3602002002280200220141046a2802000d00200110300b200241046a21022006417c6a22060d000b0b410028029cad4241ffffffff0371450d004100280298ad4210300b41004101360290ad4241002005290328370294ad424100200541306a29030037029cad424100410028028cad42220241016a220636028cad42200241026a220241004c0d050b4100200236028cad424100280294ad42220141016a220241004c0d0541002002360294ad4241002802a0ad422202450d0820024102744100280298ad426a417c6a280200220228020041016a220641014d0d062002200636020041004100280294ad42417f6a360294ad4220022802080d072002417f3602082005200228020c200541086a2003200420022802102802401107002005280204210620052d000021012002200228020841016a36020820022002280200417f6a2203360200024020030d00200241046a22032003280200417f6a220336020020030d00200210300b4100410028028cad42417f6a36028cad420240200528020c450d00200528020810300b2000200636020420002001417f73410171360200200541c0006a24000f0b102c000b102a000b41aeaac0004118200541386a41ac9fc00041d8aac0001034000b41b082c2004110200541386a41bc9fc00041f8aac0001034000b41aeaac0004118200541386a41ac9fc0004188abc0001034000b41aeaac0004118200541386a41ac9fc0004184acc0001034000b00000b41b082c2004110200541386a41bc9fc0004194acc0001034000b4100200636028cad4241002001360294ad424188a1c000412441aca1c0001050000bd30601027f230041c0006b220424000240024002400240024002400240024002402001417f4c0d004101210502402001450d002001102f2205450d020b2005200020011085052105200420013602102004200136020c20042005360208410028028cad42220541016a220141004c0d0202404100280290ad424101460d00200441186a4100280288ad42110200200441286a41086a200441186a41086a29030037030020042004290318370328410028028cad420d044100417f36028cad4202404100280290ad42450d00024041002802a0ad422205450d004100280298ad422101200541027421050340200128020022002000280200417f6a3602000240200128020022002802000d00200041046a22002000280200417f6a3602002001280200220041046a2802000d00200010300b200141046a21012005417c6a22050d000b0b410028029cad4241ffffffff0371450d004100280298ad4210300b41004101360290ad4241002004290328370294ad424100200441306a29030037029cad424100410028028cad42220141016a220536028cad42200141026a220141004c0d050b4100200136028cad424100280294ad42220041016a220141004c0d0541002001360294ad4241002802a0ad422201450d0820014102744100280298ad426a417c6a280200220128020041016a220541014d0d062001200536020041004100280294ad42417f6a360294ad4220012802080d072001417f360208200128020c200441086a20022003200128021028023411080021052001200128020841016a36020820012001280200417f6a2200360200024020000d00200141046a22002000280200417f6a220036020020000d00200110300b4100410028028cad42417f6a36028cad420240200428020c450d00200428020810300b200441c0006a240020050f0b102c000b102a000b41aeaac0004118200441386a41ac9fc00041d8aac0001034000b41b082c2004110200441386a41bc9fc00041f8aac0001034000b41aeaac0004118200441386a41ac9fc0004188abc0001034000b41aeaac0004118200441386a41ac9fc0004184acc0001034000b00000b41b082c2004110200441386a41bc9fc0004194acc0001034000b4100200536028cad4241002000360294ad424188a1c000412441aca1c0001050000bcf0601027f230041c0006b220424000240024002400240024002400240024002402001417f4c0d004101210502402001450d002001102f2205450d020b2005200020011085052105200420013602102004200136020c20042005360208410028028cad42220541016a220141004c0d0202404100280290ad424101460d00200441186a4100280288ad42110200200441286a41086a200441186a41086a29030037030020042004290318370328410028028cad420d044100417f36028cad4202404100280290ad42450d00024041002802a0ad422205450d004100280298ad422101200541027421050340200128020022002000280200417f6a3602000240200128020022002802000d00200041046a22002000280200417f6a3602002001280200220041046a2802000d00200010300b200141046a21012005417c6a22050d000b0b410028029cad4241ffffffff0371450d004100280298ad4210300b41004101360290ad4241002004290328370294ad424100200441306a29030037029cad424100410028028cad42220141016a220536028cad42200141026a220141004c0d050b4100200136028cad424100280294ad42220041016a220141004c0d0541002001360294ad4241002802a0ad422201450d0820014102744100280298ad426a417c6a280200220128020041016a220541014d0d062001200536020041004100280294ad42417f6a360294ad4220012802080d072001417f360208200128020c200441086a2002200320012802102802481103002001200128020841016a36020820012001280200417f6a2205360200024020050d00200141046a22052005280200417f6a220536020020050d00200110300b4100410028028cad42417f6a36028cad420240200428020c450d00200428020810300b200441c0006a24000f0b102c000b102a000b41aeaac0004118200441386a41ac9fc00041d8aac0001034000b41b082c2004110200441386a41bc9fc00041f8aac0001034000b41aeaac0004118200441386a41ac9fc0004188abc0001034000b41aeaac0004118200441386a41ac9fc0004184acc0001034000b00000b41b082c2004110200441386a41bc9fc0004194acc0001034000b4100200536028cad4241002000360294ad424188a1c000412441aca1c0001050000bf40601027f230041c0006b22032400024002400240024002400240024002402002417f4c0d004101210402402002450d002002102f2204450d020b2004200120021085052104200320023602102003200236020c20032004360208410028028cad4241016a220241004c0d0202404100280290ad424101460d00200341186a4100280288ad42110200200341286a41086a200341186a41086a29030037030020032003290318370328410028028cad420d044100417f36028cad4202404100280290ad42450d00024041002802a0ad422204450d004100280298ad422102200441027421040340200228020022012001280200417f6a3602000240200228020022012802000d00200141046a22012001280200417f6a3602002002280200220141046a2802000d00200110300b200241046a21022004417c6a22040d000b0b410028029cad4241ffffffff0371450d004100280298ad4210300b41004101360290ad4241002003290328370294ad424100200341306a29030037029cad424100410028028cad42220241016a36028cad42200241026a220241004c0d050b4100200236028cad424100280294ad42220441016a220241004c0d0541002002360294ad4202400240024041002802a0ad422202450d0020024102744100280298ad426a417c6a280200220228020041016a220441014b0d0100000b41002004360294ad42200341003602280c010b2002200436020041004100280294ad42417f6a360294ad4220022802080d072002417f360208200341286a200228020c200341086a20022802102802581104002002200228020841016a36020820022002280200417f6a220436020020040d00200241046a22042004280200417f6a220436020020040d00200210300b4100410028028cad42417f6a36028cad422003280228450d0720002003290328370200200041086a200341286a41086a2802003602000240200328020c450d00200328020810300b200341c0006a24000f0b102c000b102a000b41aeaac0004118200341386a41ac9fc00041d8aac0001034000b41b082c2004110200341386a41bc9fc00041f8aac0001034000b41aeaac0004118200341386a41ac9fc0004188abc0001034000b41aeaac0004118200341386a41ac9fc0004184acc0001034000b41b082c2004110200341386a41bc9fc0004194acc0001034000b4188a1c000412441aca1c0001050000ba10701027f230041c0006b2205240002400240024002400240024002402002417f4c0d004101210602402002450d002002102f2206450d020b2006200120021085052106200520023602102005200236020c20052006360208410028028cad4241016a220241004c0d0202404100280290ad424101460d00200541186a4100280288ad42110200200541286a41086a200541186a41086a29030037030020052005290318370328410028028cad420d044100417f36028cad4202404100280290ad42450d00024041002802a0ad422206450d004100280298ad422102200641027421060340200228020022012001280200417f6a3602000240200228020022012802000d00200141046a22012001280200417f6a3602002002280200220141046a2802000d00200110300b200241046a21022006417c6a22060d000b0b410028029cad4241ffffffff0371450d004100280298ad4210300b41004101360290ad4241002005290328370294ad424100200541306a29030037029cad424100410028028cad42220241016a36028cad42200241026a220241004c0d050b4100200236028cad424100280294ad42220641016a220241004c0d0541002002360294ad420240024041002802a0ad422202450d0020024102744100280298ad426a417c6a280200220228020041016a220641014b0d0100000b41002006360294ad424100410028028cad42417f6a36028cad424188a1c000412441aca1c0001050000b2002200636020041004100280294ad42417f6a360294ad4220022802080d062002417f360208200541286a410472200228020c200541086a20032004200228021028023c1107002002200228020841016a36020820022002280200417f6a220636020002400240024020060d00200241046a22062006280200417f6a220636020020060d01200210304100410028028cad42417f6a36028cad420c020b4100410028028cad42417f6a36028cad420c010b4100410028028cad42417f6a36028cad420b2000200529022c370200200041086a200541346a2802003602000240200528020c450d00200528020810300b200541c0006a24000f0b102c000b102a000b41aeaac0004118200541386a41ac9fc00041d8aac0001034000b41b082c2004110200541386a41bc9fc00041f8aac0001034000b41aeaac0004118200541386a41ac9fc0004188abc0001034000b41aeaac0004118200541386a41ac9fc0004184acc0001034000b41b082c2004110200541386a41bc9fc0004194acc0001034000b02000b02000bbc04010a7f230041f0076b220224000240024002400240200041106a28020022032f01ae2b220420016a2205410c4f0d00200041186a2802002f01ae2b22062001490d01200320053b01ae2b200041186a2203280200200620016b22073b01ae2b20032802002106200241f8036a200041046a280200200028020841f8036c6a220841f8031085051a200820062001417f6a220941f8036c220a6a41f8031086051a2002200241f8036a41f803108505210b200041106a2206280200200441f8036c6a200b41f8031085051a20092005200441016a22026b470d022006280200200241f8036c6a2003280200200a1085051a200328020022082008200141f8036c6a200741f8036c1086051a200028020c21080240024020002802140d002008450d010c050b2008450d042006280200220820024102746a41b02b6a2003280200220641b02b6a2200200141027422031085051a2000200020036a200741027441046a1086051a0240200520044d0d00200441027420086a41b42b6a210003402000280200220320023b01ac2b200320083602a82b200041046a2100200241016a21022001417f6a22010d000b0b2007417f460d00200641b02b6a2102200741016a21034100210003402002280200220120003b01ac2b200120063602a82b200241046a21022003200041016a2200470d000b0b200b41f0076a24000f0b41dca4c20041324190a5c200102d000b41a0a5c200412841c8a5c200102d000b41f8a2c200412841a0a3c200102d000b41d8a5c20041284180a6c200102d000be803010d7f23004180046b2202240002400240200141106a28020022032f01ae2b220441016a2205200141186a28020022062f01ae2b22076a2208410c4f0d00200128020821092001280200210a2001280204220b2f01ae2b210c200320083b01ae2b200241086a200b200941f8036c6a220141f8031085051a2001200141f8036a200c2009417f736a220d41f8036c1086051a2003200441f8036c6a200241086a41f8031085051a2003200541f8036c6a2006200741f8036c1085051a200b41b02b6a220e200941016a22014102746a20094102742209200e6a41086a200d4102741086051a02402001200c4f0d002009200b6a41b42b6a210903402009280200220d20013b01ac2b200d200b3602a82b200941046a2109200c200141016a2201470d000b0b200b200b2f01ae2b417f6a3b01ae2b0240200a4102490d002007200820056b470d02200320054102746a41b02b6a200641b02b6a200741016a22094102741085051a200820044d0d00200441027420036a41b42b6a210103402001280200220d20053b01ac2b200d20033602a82b200141046a2101200541016a21052009417f6a22090d000b0b200610302000200b3602042000200a36020020024180046a24000f0b41a0a4c200412a41cca4c200102d000b41f8a2c200412841a0a3c200102d000bd80b03077f027e037f230041e0076b2203240020012802002104200128020422052f01a6292106200341e0036a20052001280208220741d0036c6a220141d0031085051a2001200141d0036a20062007417f736a220841d0036c1086051a200541f0276a220920074104746a220141086a290300210a2001290300210b20012009200741016a220c4104746a20084104741086051a20052006417f6a22013b01a629200341106a200341e0036a41d0031085051a0240200141ffff037141044b0d0002400240024020052802a0292206450d00200441016a21090240024020052f01a42922080d0020062f01a6290d01200341f4036a4101360200200342013702e403200341f4a9c2003602e003200341043602c40720034188a4c2003602c0072003200341c0076a3602f003200341e0036a4190a4c200103a000b024020062008417f6a22084102746a41a8296a280200220d2f01a629200141ffff03716a41016a410b4b0d00200341f8036a2005360200200341f0036a200d360200200320043602f403200320043602ec03200320083602e803200320063602e403200320093602e003200341b0076a200341e0036a41012007108c010c040b200341f8036a2005360200200341f0036a200d360200200320043602f403200320043602ec03200320083602e803200320063602e403200320093602e003200341e0036a4101108d012003200c3602b8070c020b0240200141ffff0371200841027420066a41ac296a28020022012f01a6296a41016a410b4b0d00200341f8036a2001360200200341f0036a2005360200200320043602f403200320043602ec03200320083602e803200320063602e403200320093602e003200341b0076a200341e0036a41002007108c010c030b200341f8036a2001360200200341f0036a2005360200200320043602f403200320043602ec03200320083602e803200320063602e403200320093602e003200341e0036a4101108e010b200320073602b8070b200320053602b407200320043602b0070b20032802b807210720032802b007210420032802b40722052802a0292201450d0020012f01a629220941044b0d00200441016a21060240034020012802a0292208450d01200941ffff03712109200641016a210d024002400240024020012f01a429220c0d0020082f01a6290d01200341f4036a4101360200200342013702e403200341f4a9c2003602e003200341043602c40720034188a4c2003602c0072003200341c0076a3602f003200341e0036a4190a4c200103a000b2008200c417f6a220e4102746a41a8296a280200210c200320013602d807200320063602d4072003200c3602d007200320063602cc072003200e3602c807200320083602c4072003200d3602c00702402009200c2f01a6296a41016a410b4b0d00200341e0036a41186a200341c0076a41186a280200360200200341e0036a41106a200341c0076a41106a290300370300200341e0036a41086a200341c0076a41086a290300370300200320032903c0073703e003200341086a200341e0036a108f01200328020c2101200328020821060c030b200341c0076a410520096b108d010c010b2003200c41027420086a41ac296a280200220e3602d807200320063602d407200320013602d007200320063602cc072003200c3602c807200320083602c4072003200d3602c00702402009200e2f01a6296a41016a410b4b0d00200341e0036a41186a200341c0076a41186a280200360200200341e0036a41106a200341c0076a41106a290300370300200341e0036a41086a200341c0076a41086a290300370300200320032903c0073703e0032003200341e0036a108f0120032802042101200328020021060c020b200341c0076a410520096b108e010b410021010b2001450d0220012f01a629220941044d0d000c020b0b200941ffff03710d00200241013a00000b2000200341106a41d003108505220141d8036a200a3703002001200b3703d003200141e8036a2007360200200141e4036a2005360200200120043602e003200341e0076a24000b8305020f7f027e230041d0036b22042400024002400240200141186a28020022052f01a6292206200141106a28020022072f01a629220820021b2003490d00200841016a220920066a220a410c4f0d01200128020c210b2001280208210c2001280200210d2001280204220e2f01a629210f2007200a3b01a6292004200e200c41d0036c6a220141d00310850521102001200141d0036a200f200c417f736a220441d0036c1086051a2007200841d0036c6a201041d0031085051a2007200941d0036c6a2005200641d0036c1085051a200e41f0276a2211200c4104746a22122903002113201241086a290300211420122011200c41016a22014104746a20044104741086051a200741f0276a221220084104746a2211201437030820112013370300201220094104746a200541f0276a20064104741085051a200e41a8296a221220014102746a200c410274220c20126a41086a20044102741086051a02402001200f4f0d00200c200e6a41ac296a210c0340200c280200220420013b01a4292004200e3602a029200c41046a210c200f200141016a2201470d000b0b200e200e2f01a629417f6a3b01a6290240200d4102490d002006200a20096b470d03200720094102746a41a8296a200541a8296a200641016a22044102741085051a200a20084d0d00200841027420076a41ac296a21012009210c03402001280200220e200c3b01a429200e20073602a029200141046a2101200c41016a210c2004417f6a22040d000b0b20051030200020073602042000200b36020020002009410020021b20036a360208201041d0036a24000f0b419ca7c20041910141b0a8c200102d000b41a0a4c200412a41cca4c200102d000b41f8a2c200412841a0a3c200102d000b9e05040a7f027e027f017e230041a0076b220224000240024002400240200041186a2802002f01a629220320016a2204410c4f0d00200041106a28020022052f01a62922062001490d012005200620016b22073b01a629200041186a220528020020043b01a62920052802002208200141d0036c6a2008200341d0036c1086051a200528020041f0276a220820014104746a200820034104741086051a2006200741016a22036b22082001417f6a470d022005280200200041106a2206280200200341d0036c6a200841d0036c22091085051a200528020041f0276a200628020020034104746a41f0276a2008410474220a1085051a2006280200220820074104746a220b41f8276a290300210c200b41f0276a290300210d200241d0036a200041046a280200220b2000280208220e41d0036c6a220f41d0031085051a200f2008200741d0036c6a41d0031086051a200b200e4104746a220741f0276a220829030021102008200d370300200741f8276a2207290300210d2007200c3703002002200241d0036a41d0031085052108200528020020096a200841d0031085051a2005280200200a6a220241f8276a200d370300200241f0276a2010370300200028020c21020240024020002802140d002002450d010c050b2002450d04200628020021072005280200220241a8296a2200200141027422056a2000200420016b41027441046a1086051a2000200720034102746a41a8296a20051085051a200441016a21074100210103402000280200220520013b01a429200520023602a029200041046a21002007200141016a2201470d000b0b200841a0076a24000f0b4190a6c200413341c4a6c200102d000b41d4a6c200412741fca6c200102d000b41f8a2c200412841a0a3c200102d000b41d8a5c2004128418ca7c200102d000bef0504097f027e037f017e230041a0076b220224000240024002400240200041106a28020022032f01a629220420016a2205410c4f0d00200041186a2802002f01a62922062001490d01200320053b01a629200041186a2203280200200620016b22073b01a629200328020022062001417f6a220841047422096a220a41f8276a290300210b200a41f0276a290300210c200241d0036a200041046a280200220a2000280208220d41d0036c6a220e41d0031085051a200e2006200841d0036c220f6a41d0031086051a200a200d4104746a220641f0276a220a2903002110200a200c370300200641f8276a2206290300210c2006200b3703002002200241d0036a41d003108505210a200041106a2206280200200441d0036c6a200a41d0031085051a200628020020044104746a220241f8276a200c370300200241f0276a201037030020082005200441016a22026b470d022006280200200241d0036c6a2003280200200f1085051a200628020020024104746a41f0276a200328020041f0276a20091085051a200328020022082008200141d0036c6a200741d0036c1086051a200328020041f0276a2208200820014104746a20074104741086051a200028020c21080240024020002802140d002008450d010c050b2008450d042006280200220820024102746a41a8296a2003280200220641a8296a2200200141027422031085051a2000200020036a200741027441046a1086051a0240200520044d0d00200441027420086a41ac296a210003402000280200220320023b01a429200320083602a029200041046a2100200241016a21022001417f6a22010d000b0b2007417f460d00200641a8296a2102200741016a21034100210003402002280200220120003b01a429200120063602a029200241046a21022003200041016a2200470d000b0b200a41a0076a24000f0b41dca4c20041324190a5c200102d000b41a0a5c200412841c8a5c200102d000b41f8a2c200412841a0a3c200102d000b41d8a5c20041284180a6c200102d000bca04020e7f027e230041d0036b2202240002400240200141106a28020022032f01a629220441016a2205200141186a28020022062f01a62922076a2208410c4f0d00200128020821092001280200210a2001280204220b2f01a629210c200320083b01a6292002200b200941d0036c6a220141d003108505210d2001200141d0036a200c2009417f736a220241d0036c1086051a2003200441d0036c6a200d41d0031085051a2003200541d0036c6a2006200741d0036c1085051a200b41f0276a220e20094104746a220f2903002110200f41086a2903002111200f200e200941016a22014104746a20024104741086051a200341f0276a220f20044104746a220e2011370308200e2010370300200f20054104746a200641f0276a20074104741085051a200b41a8296a220f20014102746a20094102742209200f6a41086a20024102741086051a02402001200c4f0d002009200b6a41ac296a210903402009280200220220013b01a4292002200b3602a029200941046a2109200c200141016a2201470d000b0b200b200b2f01a629417f6a3b01a6290240200a4102490d002007200820056b470d02200320054102746a41a8296a200641a8296a200741016a22094102741085051a200820044d0d00200441027420036a41ac296a210103402001280200220220053b01a429200220033602a029200141046a2101200541016a21052009417f6a22090d000b0b200610302000200b3602042000200a360200200d41d0036a24000f0b41a0a4c200412a41cca4c200102d000b41f8a2c200412841a0a3c200102d000ba50302027f047e024020002001109101220241ff01710d00024002400240024002400240024020002d00d003220320012d00d0032202470d00410021022003417f6a0e06050102030406070b417f410120032002491b0f0b20034102470d05200041d1036a200141d1036a41041088052200450d05417f410120004100481b0f0b20034103470d04200041d1036a200141d1036a41081088052200450d04417f410120004100481b0f0b20034104470d03200041d1036a200141d1036a41101088052200450d03417f410120004100481b0f0b20034105470d02200041d1036a200141d1036a41201088052200450d02417f410120004100481b0f0b20034101470d01417f200041d8036a2903002204200141d8036a290300220585200041e0036a2903002206200141e0036a290300220785844200522004200554200620075420062007511b1b0f0b20034106470d000240200041d4036a280200200141d4036a280200200141dc036a2802002201200041dc036a2802002200200020014b1b10880522020d00417f200020014720002001491b0f0b417f410120024100481b21020b20020bf90702027f017e02402000280200220220012802002203470d000240024020020d00024002400240024002400240024002400240200041086a2802002203200141086a2903002204a72202470d00410021022003417f6a0e0801020304050607080a0b417f410120032002491b0f0b20044201520d08200041106a200141106a1092010f0b20044202520d07200041106a200141106a109201220241ff01710d07200041c8006a200141c8006a1092010f0b20044203520d06200041106a200141106a109201220241ff01710d06200041c8006a200141c8006a109201220241ff01710d0620004180016a20014180016a1092010f0b20044204520d05200041106a200141106a109201220241ff01710d05200041c8006a200141c8006a109201220241ff01710d0520004180016a20014180016a109201220241ff01710d05200041b8016a200141b8016a1092010f0b20044205520d04200041106a200141106a109201220241ff01710d04200041c8006a200141c8006a109201220241ff01710d0420004180016a20014180016a109201220241ff01710d04200041b8016a200141b8016a109201220241ff01710d04200041f0016a200141f0016a1092010f0b20044206520d03200041106a200141106a109201220241ff01710d03200041c8006a200141c8006a109201220241ff01710d0320004180016a20014180016a109201220241ff01710d03200041b8016a200141b8016a109201220241ff01710d03200041f0016a200141f0016a109201220241ff01710d03200041a8026a200141a8026a1092010f0b20044207520d02200041106a200141106a109201220241ff01710d02200041c8006a200141c8006a109201220241ff01710d0220004180016a20014180016a109201220241ff01710d02200041b8016a200141b8016a109201220241ff01710d02200041f0016a200141f0016a109201220241ff01710d02200041a8026a200141a8026a109201220241ff01710d02200041e0026a200141e0026a1092010f0b20044208520d01200041106a200141106a109201220241ff01710d01200041c8006a200141c8006a109201220241ff01710d0120004180016a20014180016a109201220241ff01710d01200041b8016a200141b8016a109201220241ff01710d01200041f0016a200141f0016a109201220241ff01710d01200041a8026a200141a8026a109201220241ff01710d01200041e0026a200141e0026a109201220241ff01710d0120004198036a20014198036a1092010f0b0240200028020420012802042001410c6a28020022012000410c6a2802002200200020014b1b10880522020d00417f200020014720002001491b0f0b417f410120024100481b21020b20020f0b417f410120022003491b0b860a03037f047e017f024002400240024002400240024002400240024002400240024002400240024002400240024020002d0000220220012d00002203470d00410021032002417f6a0e090401060208090a0c030c0b417f410120022003491b0f0b20024102460d0341000f0b20024104460d0441000f0b20024109460d0741000f0b4100210320024101470d07417f200041046a2802002202200141046a28020022004720022000491b0f0b200041246a2802002202200141246a2802002203470d07024020024101470d00200041286a280200200141286a280200200141306a2802002202200041306a2802002204200420024b1b10880522030d0941ff01210320042002490d07200420024722030d070b41002103200041016a200141016a41201088052202450d06417f410120024100481b0f0b4100210320024103470d05200041046a2802002202200141046a2802002203470d08024020024101470d00200041086a280200200141086a280200200141106a2802002202200041106a2802002204200420024b1b10880522030d0a41ff01210320042002490d06200420024722030d060b417f200041186a2903002205200141186a29030022065220052006541b0f0b200041186a2802002202200141186a2802002203470d09024020024101470d002000411c6a2802002001411c6a280200200141246a2802002202200041246a2802002204200420024b1b10880522030d0b41ff01210320042002490d05200420024722030d050b41002103200041016a200141016a41141088052202450d04417f410120024100481b0f0b4100210320024105470d03417f20002d0001220220012d000122004720022000491b0f0b4100210320024106470d02417f200041086a2903002207200141086a290300220885200041106a2903002205200141106a290300220685844200522007200854200520065420052006511b1b0f0b4100210320024107470d010240200041046a280200200141046a2802002001410c6a28020022022000410c6a2802002200200020024b1b10880522010d00417f200020024720002002491b0f0b417f410120014100481b0f0b02400240024002400240200041046a2802002202200141046a2802002203470d002002417f6a0e020102040b417f410120022003491b0f0b0240200041086a280200200141086a280200200141106a2802002202200041106a2802002204200420024b1b10880522030d0041ff01210320042002490d04200420024721030c020b417f410120034100481b0f0b41ff012103200041086a2802002202200141086a2802002204490d02200220044721030b20030d010b02400240024002400240200041146a2802002202200141146a2802002203470d002001411c6a2802002104200141186a28020021012000411c6a2802002109200041186a2802002100410021032002417f6a0e0401020304050b417f410120022003481b0f0b417f200020014720002001491b0f0b41ff01210320002001490d024101210320002001470d02417f200920044720092004491b0f0b41ff01210320002001490d014101210320002001470d01417f200920044720092004491b0f0b41ff01210320002001490d004101210320002001470d00417f200920044720092004491b21030b20030f0b417f410120022003491b0f0b417f410120034100481b0f0b417f410120022003491b0f0b417f410120034100481b0f0b417f410120022003491b0f0b417f410120034100481b0bcf0101037f230041206b220324002002210402400240034020022f01b6012105024020010d002001450d020c030b2001450d022001417f6a2101200220054102746a41b8016a280200210220042802b80121040c000b0b2000200136020c200041003602082000200436020420002001360200200041146a2005360200200041106a2002360200200341206a24000f0b200341146a410136020020034201370204200341f4a9c2003602002003410436021c200341eca9c2003602182003200341186a360210200341fca9c200103a000b920403027f017e077f230041d00b6b220324000240024002402002200128020441e8036e2204200420024b1bad42e8037e2205422088a70d002005a72204417f4c0d0002400240024020040d00410821060c010b2004102f2206450d010b200441e8036e2107024020020d00410021020c030b200341d8076a410172210841002109410021044100210a02400340200341d8076a200110950120032d00d807210b200341f1036a200841e7031085051a200b410b460d012003410a6a200341f1036a41e7031085051a0240200a2007470d002009200a41016a220c2009200c4b1b220c4104200c41044b1bad42e8037e2205422088a745410374210c2005a7210702400240200a0d00200341003602d8070c010b200341083602e007200320043602dc07200320063602d8070b200341c00b6a2007200c200341d8076a106920032802c80b210c024020032802c00b4101470d00200c0d040c050b20032802c40b2106200c41e8036e21070b200620046a220c200b3a0000200c41016a2003410a6a41e7031085051a200941026a2109200441e8036a21042002200a41016a220a460d040c000b0b200041003602000240200a450d002006210a0340200a109601200a41e8036a210a200441987c6a22040d000b0b2007450d03200741e8036c450d03200610300c030b102a000b102c000b2000200736020420002006360200200041086a20023602000b200341d00b6a24000b961503057f027e017f230041900c6b2202240002400240200128020422030d002000410b3a00000c010b200128020022042d0000210520012003417f6a22063602042001200441016a3602000240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024020050e0b000102030405060708090b0a0b200241a8086a200110980120022802a8082203450d13200241b0086a280200210520022802ac08210420022001109b01024002402002280200450d00200241003602a8080c010b200241a8086a2001200228020410a30120022802a8080d220b2000410b3a000002402005450d00200541f8036c21002003210103402001109a01200141f8036a2101200041887c6a22000d000b0b2004450d22200441f8036c450d22200310300c220b200241a8086a200110980120022802a8082203450d11200241b0086a280200210520022802ac082104200241086a2001109b01024002402002280208450d00200241003602a8080c010b200241a8086a2001200228020c10a30120022802a8080d200b2000410b3a000002402005450d00200541f8036c21002003210103402001109a01200141f8036a2101200041887c6a22000d000b0b2004450d21200441f8036c450d21200310300c210b200241a8086a200110980120022802a8082203450d0f200241b0086a280200210520022802ac082104200241106a2001109b01024002402002280210450d00200241003602a8080c010b200241a8086a2001200228021410a30120022802a8080d1e0b2000410b3a000002402005450d00200541f8036c21002003210103402001109a01200141f8036a2101200041887c6a22000d000b0b2004450d20200441f8036c450d20200310300c200b200241186a2001109d012002290318a70d11024020012802042203450d0020022903202107200128020022042d0000210520012003417f6a3602042001200441016a36020020050d00200241a8086a200110980120022802a8082201450d0020022902ac082108200041106a2007370300200041086a2008370000200041046a2001360000200041033a00000c200b2000410b3a00000c1f0b200241a8086a200110980120022802a8082203450d11200241a8086a41086a280200210520022802ac082104200241a8086a2001109901024020022903a8084209510d00200041106a200241a8086a41c8031085051a2000410c6a2005360000200041086a2004360000200041046a2003360000200041043a00000c1f0b2000410b3a000002402005450d00200541f8036c21002003210103402001109a01200141f8036a2101200041887c6a22000d000b0b2004450d1e200441f8036c450d1e200310300c1e0b200241c0046a200110980120022802c0042203450d11200241c8046a280200210520022802c4042104200241c0046a200110990120022903c0044209510d0a200241f8006a200241c0046a41c8031085051a200241286a2001109b01024002402002280228450d00200241003602c0040c010b200241c0046a2001200228022c10970120022802c0040d1a0b2000410b3a0000200241f8006a109c010c0b0b2006450d1120042d0001210520012003417e6a22063602042001200441026a36020041002109024002400240024020050e0403000102150b410121090c020b410221090c010b410321090b02400240024020064108490d00200429000221072001200341766a36020420012004410a6a360200200241306a2001109b0120022802300d022001280204220420022802342203490d022003417f4c0d150240024020030d00410121050c010b2003102f2205450d092005410020031087051a200128020421040b20042003490d012005200128020020031085052105200128020422042003490d1a200020093a0001200041063a00002001200420036b360204200041f4006a2003ad2208422086200884370200200041f0006a2005360200200041106a4102360200200041086a20073703002001200128020020036a3602000c1f0b2000410b3a00000c1e0b200510300b2000410b3a00000c1c0b200241c8006a2001109b0120022802480d12200228024c2103200241c0006a2001109b0120022802400d1320022802442104200241386a2001109b01024020022802380d00200228023c2101200041073a00002000410c6a2001360200200041086a2004360200200041046a20033602000c1c0b2000410b3a00000c1b0b200241d0006a2001109b01024020022802500d0020022802542101200041083a0000200041046a20013602000c1b0b2000410b3a00000c1a0b200241e8006a2001109b0120022802680d12200228026c2103200241e0006a2001109b0120022802600d1320022802642104200241d8006a2001109b01024020022802580d00200228025c2101200041093a00002000410c6a2001360200200041086a2004360200200041046a20033602000c1a0b2000410b3a00000c190b2000410b3a00000c180b200241a8086a200110990120022903a8084209510d01200241f8006a200241a8086a41c8031085051a200241a8086a200110950120022d00a8082101200241c0046a200241a8086a41017241e7031085051a2001410b460d0341e803102f22030d020b102a000b2000410b3a00000c150b200320013a0000200341016a200241c0046a41e7031085051a200041086a200241f8006a41c8031085051a200041046a20033602002000410a3a00000c140b2000410b3a0000200241f8006a109c010c130b2000410b3a00000b02402005450d00200541f8036c21002003210103402001109a01200141f8036a2101200041887c6a22000d000b0b2004450d11200441f8036c450d11200310300c110b2000410b3a00000c100b2000410b3a00000c0f0b2000410b3a00000c0e0b2000410b3a00000c0d0b2000410b3a00000c0c0b2000410b3a00000c0b0b2000410b3a00000c0a0b102c000b2000410b3a00000c080b2000410b3a00000c070b2000410b3a00000c060b2000410b3a00000c050b2003200441f0f5c100104a000b200041106a20022903c004370200200041186a200241c0046a41086a280200360200200241a8086a41046a200241f8006a41c8031085051a200041053a0000200020022f00753b0001200041036a200241f7006a2d00003a00002000410c6a2005360000200041086a2004360000200041046a20033600002000411c6a200241a8086a41cc031085051a0c030b200041106a20022903a808370200200041186a200241a8086a41086a280200360200200041023a0000200020022f00c0043b0001200041036a200241c0046a41026a2d00003a00002000410c6a2005360000200041086a2004360000200041046a20033600000c020b200041106a20022903a808370200200041186a200241a8086a41086a280200360200200041013a0000200020022f00c0043b0001200041036a200241c2046a2d00003a00002000410c6a2005360000200041086a2004360000200041046a20033600000c010b200041106a20022903a808370200200041186a200241a8086a41086a280200360200200041003a0000200020022f00c0043b0001200041036a200241c2046a2d00003a00002000410c6a2005360000200041086a2004360000200041046a20033600000b200241900c6a24000ba20701027f02400240024002400240024002400240024020002d00000e0a00010203040506070707080b02402000410c6a2802002201450d00200041046a2802002102200141f8036c210103402002109a01200241f8036a2102200141887c6a22010d000b0b0240200041086a2802002202450d00200241f8036c450d00200028020410300b200041106a280200200041186a28020010a401200041146a2802002202450d0620024198046c450d06200028021010300f0b02402000410c6a2802002201450d00200041046a2802002102200141f8036c210103402002109a01200241f8036a2102200141887c6a22010d000b0b0240200041086a2802002202450d00200241f8036c450d00200028020410300b200041106a280200200041186a28020010a401200041146a2802002202450d0520024198046c450d05200028021010300f0b02402000410c6a2802002201450d00200041046a2802002102200141f8036c210103402002109a01200241f8036a2102200141887c6a22010d000b0b0240200041086a2802002202450d00200241f8036c450d00200028020410300b200041106a280200200041186a28020010a401200041146a2802002202450d0420024198046c450d04200028021010300f0b02402000410c6a2802002201450d00200041046a2802002102200141f8036c210103402002109a01200241f8036a2102200141887c6a22010d000b0b200041086a2802002202450d03200241f8036c450d03200028020410300f0b02402000410c6a2802002201450d00200041046a2802002102200141f8036c210103402002109a01200241f8036a2102200141887c6a22010d000b0b0240200041086a2802002202450d00200241f8036c450d00200028020410300b200041106a109c010f0b02402000410c6a2802002201450d00200041046a2802002102200141f8036c210103402002109a01200241f8036a2102200141887c6a22010d000b0b0240200041086a2802002202450d00200241f8036c450d00200028020410300b200041206a109c010240200041186a2802002201450d00200041106a280200210220014198046c21010340200210a00120024198046a2102200141e87b6a22010d000b0b200041146a2802002202450d0120024198046c450d01200028021010300f0b200041106a21020240200041f4006a280200450d00200041f0006a28020010300b20022802004102460d00200210b2020b0f0b200041086a109c01200041046a2202280200109601200228020010300bb41507027f017e0c7f017e057f037e017f230041c0176b22032400024002400240200220012802044198046e2204200420024b1bad4298047e2205422088a70d002005a72204417f4c0d0002400240024020040d00410821060c010b2004102f2206450d010b20044198046e2107024020020d00410021020c030b200341c8136a410c6a2108200341c8136a41046a2109200341d00f6a410472210a200341a8136a210b200341d00f6a410c6a210c4100210d4100210e0240034020012802042204450d012001280200220f2d0000211020012004417f6a3602042001200f41016a3602004100210f0240024002400240024002400240024002400240024002400240024002400240024020100e080300010205060708120b200341c8136a200110980120032802c8132210450d0820032802d013210420032802cc132111200341c8136a2001109901024020032903c81322124209510d0020032802d0132113200341bc086a200841bc031085051a4101210f201021142011211520042116201221050c030b02402004450d00200441f8036c210f2010210403402004109a01200441f8036a2104200f41887c6a220f0d000b0b4108210f410121042011450d0e201141f8036c450d0e201010300c0e0b200341d00f6a200110980120032802d00f2210450d0720032802d80f211720032802d40f2111200341d00f6a2001109901024020032903d00f4209510d00200341880c6a200341d00f6a41c8031085051a200341086a2001109b01024002402003280208450d00200341003602d00f0c010b200341d00f6a2001200328020c10970120032802d00f0d0b0b200341880c6a109c010b02402017450d00201741f8036c210f2010210403402004109a01200441f8036a2104200f41887c6a220f0d000b0b2011450d07201141f8036c450d07201010300c070b200341c8136a200110980120032802c8132210450d0620032802d013210420032802cc132111200341c8136a200110980120032802c813450d0120032802d013211320032903c81321054103210f2010211420112115200421160b200341cc046a200341bc086a41cc031085051a0c0c0b02402004450d00200441f8036c210f2010210403402004109a01200441f8036a2104200f41887c6a220f0d000b0b4108210f410121042011450d0a201141f8036c450d0a201010300c0a0b200341d00f6a200110980120032802d00f2210450d0320032802d80f211720032802d40f2111200341d00f6a2001109901024020032903d00f4209510d00200341880c6a200341d00f6a41c8031085051a200341106a2001109b01024002402003280210450d00200341003602d00f0c010b200341d00f6a2001200328021410970120032802d00f0d090b200341880c6a109c010b02402017450d00201741f8036c210f2010210403402004109a01200441f8036a2104200f41887c6a220f0d000b0b2011450d03201141f8036c450d03201010300c030b200341d00f6a200110980120032802d00f2210450d0220032802d80f211720032802d40f2111200341d00f6a2001109901024020032903d00f4209510d00200341880c6a200341d00f6a41c8031085051a200341186a2001109b01024002402003280218450d00200341003602d00f0c010b200341d00f6a2001200328021c10970120032802d00f0d070b200341880c6a109c010b02402017450d00201741f8036c210f2010210403402004109a01200441f8036a2104200f41887c6a220f0d000b0b2011450d02201141f8036c450d02201010300c020b200341206a2001109d014108210f410121042003290320a70d0720032903282112200341c8136a200110990120032903c8134209510d07200341d00f6a200341c8136a41c8031085051a200341c8136a200110980120032802c8132210450d0220032802d013211620032802cc13211520032802d00f2113200341bc086a200a41c4031085051a4106210f4100210420102114201221050c060b200341c8136a2001109e0120032802c813410c460d00200341d00f6a200341c8136a41f8031085051a0240200128020422044108490d002001280200220f29000021122001200441786a22103602042001200f41086a36020020104108490d00200f29000821182001200441706a22103602042001200f41106a220f3602002010450d00200f2d0000211020012004416f6a3602042001200f41016a360200410021110240024020100e020100020b410121110b200341306a2001109b0120032802300d00200341c8136a20012003280234109f0120032802c8132210450d0020032802d013211620032802cc13211520032903d00f210520032802d80f2113200341bc086a200c41cc031085051a20034198086a41186a200b41186a29030037030020034198086a41106a200b41106a29030037030020034198086a41086a200b41086a2903003703002003200b290300370398084107210f4100210420102114201821192012211a2011211b0c070b200341d00f6a109a010b4108210f410121040c050b200341d00f6a109c010c040b20032802d80f211320032903d00f21052009200341880c6a41c8031085051a200341bc086a200341c8136a41cc031085051a4102210f410021042010211420112115201721160c020b20032802d80f211320032903d00f21052009200341880c6a41c8031085051a200341bc086a200341c8136a41cc031085051a4105210f410021042010211420112115201721160c010b20032802d80f211320032903d00f21052009200341880c6a41c8031085051a200341bc086a200341c8136a41cc031085051a4104210f410021042010211420112115201721160b0b200341cc046a200341bc086a41cc031085051a200341a8046a41186a20034198086a41186a290300370300200341a8046a41106a20034198086a41106a290300370300200341a8046a41086a20034198086a41086a29030037030020032003290398083703a80420040d020b200341dc006a200341cc046a41cc031085051a200341386a41186a2210200341a8046a41186a290300370300200341386a41106a2211200341a8046a41106a290300370300200341386a41086a2217200341a8046a41086a290300370300200320032903a8043703380240200e2007470d00200e4101742204200e41016a2207200420074b1b22044104200441044b1bad4298047e2212422088a74541037421042012a7210702400240200e0d00200341003602c8130c010b200341083602d013200320063602c8132003200e4198046c3602cc130b200341d00f6a20072004200341c8136a106920032802d80f2104024020032802d00f4101470d0020040d040c050b20032802d40f210620044198046e21070b2006200e4198046c6a22042013360018200420053700102004201636000c20042015360008200420143600042004201b3a00012004200f3a00002004411c6a200341dc006a41cc031085051a20044180046a2010290300370000200441f8036a2011290300370000200441f0036a2017290300370000200420032903383700e80320042019370090042004201a37008804200d4198046a210d200e41016a2204210e20042002460d040c000b0b200041003602000240200e450d00200621040340200410a00120044198046a2104200d41e87b6a220d0d000b0b2007450d0320074198046c450d03200610300c030b102a000b102c000b2000200736020420002006360200200041086a20023602000b200341c0176a24000bb50403037f017e077f230041800c6b22022400200241086a2001109b01024002402002280208450d00200041003602000c010b02400240200228020c2203200128020441f8036e2204200420034b1bad42f8037e2205422088a70d002005a72204417f4c0d0002400240024020040d00410821060c010b2004102f2206450d010b200441f8036e2107024020030d00410021030c030b200241f8076a410472210841002109410021044100210a02400340200241f8076a2001109e0120022802f807210b20024184046a200841f4031085051a200b410c460d01200241106a20024184046a41f4031085051a0240200a2007470d002009200a41016a220c2009200c4b1b220c4104200c41044b1bad42f8037e2205422088a745410374210c2005a7210702400240200a0d00200241003602f8070c010b2002410836028008200220043602fc07200220063602f8070b200241f00b6a2007200c200241f8076a106920022802f80b210c024020022802f00b4101470d00200c0d040c050b20022802f40b2106200c41f8036e21070b200620046a220c200b360200200c41046a200241106a41f4031085051a200941026a2109200441f8036a21042003200a41016a220a460d040c000b0b200041003602000240200a450d002006210a0340200a109a01200a41f8036a210a200441887c6a22040d000b0b2007450d03200741f8036c450d03200610300c030b102a000b102c000b2000200736020420002006360200200041086a20033602000b200241800c6a24000bfe6b1c087f017e0a7f017e057f017e017f017e047f017e0a7f017e057f017e017f017e047f017e0a7f017e057f017e017f017e047f017e0a7f017e230041e0006b2202240002400240200128020422030d00200042093703000c010b200128020022042d0000210520012003417f6a3602042001200441016a3602000240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024020050e09000102030405060709080b200042003703000c3a0b200241286a2001109c02024020022d0028410a460d0020002002290328370308200041386a200241286a41306a290300370300200041306a200241286a41286a290300370300200041286a200241286a41206a290300370300200041206a200241286a41186a290300370300200041186a200241286a41106a290300370300200041106a200241306a290300370300200042013703000c3a0b200042093703000c390b200241286a2001109c0220022d00282203410a460d11200241266a220620022d002b3a0000200220022f00293b0124200241306a22072802002105200241286a410c6a2802002108200241286a41106a2209290300210a200241286a41186a220b280200210c200241c4006a280200210d200241286a41206a220e280200210f200241286a41246a2802002110200241286a41286a22112802002112200241286a412c6a2802002113200241286a41306a22142903002115200228022c2104200241286a2001109c02024020022d0028410a460d00200041c0006a2002290328370300200041f0006a2014290300370300200041e8006a2011290300370300200041e0006a200e290300370300200041d8006a200b290300370300200041d0006a2009290300370300200041c8006a2007290300370300200020033a0008200020022f01243b00092000410b6a20062d00003a0000200041386a2015370300200041346a2013360200200041306a20123602002000412c6a2010360200200041286a200f360200200041246a200d360200200041206a200c360200200041186a200a370300200041146a2008360200200041106a20053602002000410c6a2004360200200042023703000c390b20004209370300024002400240024002402003410f710e093d3d0001023d3d033d040b20104101470d3c2013450d3c201210300c3c0b20044101470d3b2008450d3b200510300c3b0b200c4101470d3a200f450d3a200d10300c3a0b2005450d39200410300c390b20044101470d382008450d38200510300c380b200241286a2001109c0220022d00282203410a460d11200241206a41026a20022d002b3a0000200220022f00293b0120200241306a2204280200210b200241346a2205280200210e200241386a2208290300210a200241c0006a220c2802002111200241c4006a22102802002116200241c8006a220f2802002117200241cc006a22132802002114200241d0006a220d2802002118200241d4006a22122802002119200241d8006a22062903002115200228022c2109200241286a2001109c0220022d00282207410a460d0e200241246a41026a20022d002b3a0000200220022f00293b01242004280200211a200528020021052008290300211b200c28020021082010280200211c200f28020021102013280200210c200d28020021132012280200210f2006290300211d200228022c2104200241286a2001109c02024020022d0028410a460d00200041f8006a2002290328370300200041a8016a200241286a41306a290300370300200041a0016a200241286a41286a29030037030020004198016a200241286a41206a29030037030020004190016a200241286a41186a29030037030020004188016a200241286a41106a29030037030020004180016a200241306a290300370300200020033a0008200020022f01203b00092000410b6a200241206a41026a2d00003a0000200041c0006a20073a0000200041386a2015370300200041346a2019360200200041306a20183602002000412c6a2014360200200041286a2017360200200041246a2016360200200041206a2011360200200041186a200a370300200041146a200e360200200041106a200b3602002000410c6a2009360200200041f0006a201d370300200041ec006a200f360200200041e8006a2013360200200041e4006a200c360200200041e0006a2010360200200041dc006a201c360200200041d8006a2008360200200041d0006a201b370300200041cc006a2005360200200041c8006a201a360200200041c4006a2004360200200020022f01243b0041200041c3006a200241246a41026a2d00003a0000200042033703000c380b20004209370300024002400240024002402007410f710e09141400010214140314040b200c4101470d13200f450d13201310300c130b20044101470d122005450d12201a10300c120b20084101470d112010450d11201c10300c110b201a450d10200410300c100b20044101470d0f2005450d0f201a10300c0f0b200241286a2001109c0220022d00282203410a460d112002411c6a41026a20022d002b3a0000200220022f00293b011c200241306a2204280200210b200241346a2205280200210e200241386a2208290300210a200241c0006a220c2802002111200241c4006a22102802002116200241c8006a220f2802002117200241cc006a22132802002114200241d0006a220d2802002118200241d4006a22122802002119200241d8006a22062903002115200228022c2109200241286a2001109c0220022d00282207410a460d12200241206a41026a20022d002b3a0000200220022f00293b01202004280200211a2005280200211c2008290300211b200c28020021082010280200211e200f28020021102013280200210c200d28020021132012280200210f2006290300211d200228022c2105200241286a2001109c0220022d00282204410a460d0b200241246a41026a221f20022d002b3a0000200220022f00293b0124200241306a22202802002112200241286a410c6a2802002106200241286a41106a22212903002122200241286a41186a22232802002124200241c4006a2802002125200241286a41206a22262802002127200241286a41246a2802002128200241286a41286a2229280200212a200241286a412c6a280200212b200241286a41306a222c290300212d200228022c210d200241286a2001109c02024020022d0028410a460d00200041b0016a2002290328370300200041e0016a202c290300370300200041d8016a2029290300370300200041d0016a2026290300370300200041c8016a2023290300370300200041c0016a2021290300370300200041b8016a2020290300370300200020033a0008200020022f011c3b00092000410b6a2002411c6a41026a2d00003a0000200041c0006a20073a0000200041386a2015370300200041346a2019360200200041306a20183602002000412c6a2014360200200041286a2017360200200041246a2016360200200041206a2011360200200041186a200a370300200041146a200e360200200041106a200b3602002000410c6a2009360200200041f8006a20043a0000200041f0006a201d370300200041ec006a200f360200200041e8006a2013360200200041e4006a200c360200200041e0006a2010360200200041dc006a201e360200200041d8006a2008360200200041d0006a201b370300200041cc006a201c360200200041c8006a201a360200200041c4006a2005360200200020022f01203b0041200041c3006a200241206a41026a2d00003a0000200020022f01243b0079200041fb006a201f2d00003a0000200041a8016a202d370300200041a4016a202b360200200041a0016a202a3602002000419c016a202836020020004198016a202736020020004194016a202536020020004190016a202436020020004188016a202237030020004184016a200636020020004180016a2012360200200041fc006a200d360200200042043703000c370b20004209370300024002400240024002402004410f710e09111100010211110311040b20284101470d10202b450d10202a10300c100b200d4101470d0f2006450d0f201210300c0f0b20244101470d0e2027450d0e202510300c0e0b2012450d0d200d10300c0d0b200d4101470d0c2006450d0c201210300c0c0b200241286a2001109c0220022d00282203410a460d12200241186a41026a20022d002b3a0000200220022f00293b0118200241306a2204280200210b200241346a2205280200210e200241386a2208290300210a200241c0006a220c2802002111200241c4006a22102802002116200241c8006a220f2802002117200241cc006a22132802002114200241d0006a220d2802002118200241d4006a22122802002119200241d8006a22062903002115200228022c2109200241286a2001109c0220022d00282207410a460d132002411c6a41026a20022d002b3a0000200220022f00293b011c2004280200211a2005280200211c2008290300211b200c28020021082010280200211e200f28020021102013280200210c200d28020021132012280200210f2006290300211d200228022c2105200241286a2001109c0220022d00282204410a460d14200241206a41026a20022d002b3a0000200220022f00293b0120200241306a220d2802002123200241346a22122802002126200241386a22062903002122200241c0006a22242802002129200241c4006a2228280200212e200241c8006a2227280200212f200241cc006a222b280200212c200241d0006a22252802002130200241d4006a222a2802002131200241d8006a221f290300212d200228022c2121200241286a2001109c0220022d00282220410a460d08200241246a41026a20022d002b3a0000200220022f00293b0124200d28020021322012280200211220062903002133202428020021062028280200213420272802002128202b28020021242025280200212b202a2802002127201f2903002135200228022c210d200241286a2001109c02024020022d0028410a460d00200041e8016a200229032837030020004198026a200241286a41306a29030037030020004190026a200241286a41286a29030037030020004188026a200241286a41206a29030037030020004180026a200241286a41186a290300370300200041f8016a200241286a41106a290300370300200041f0016a200241306a290300370300200020033a0008200020022f01183b00092000410b6a200241186a41026a2d00003a0000200041c0006a20073a0000200041386a2015370300200041346a2019360200200041306a20183602002000412c6a2014360200200041286a2017360200200041246a2016360200200041206a2011360200200041186a200a370300200041146a200e360200200041106a200b3602002000410c6a2009360200200041f8006a20043a0000200041f0006a201d370300200041ec006a200f360200200041e8006a2013360200200041e4006a200c360200200041e0006a2010360200200041dc006a201e360200200041d8006a2008360200200041d0006a201b370300200041cc006a201c360200200041c8006a201a360200200041c4006a2005360200200020022f011c3b0041200041c3006a2002411c6a41026a2d00003a0000200020022f01203b0079200041fb006a200241206a41026a2d00003a0000200041b0016a20203a0000200041a8016a202d370300200041a4016a2031360200200041a0016a20303602002000419c016a202c36020020004198016a202f36020020004194016a202e36020020004190016a202936020020004188016a202237030020004184016a202636020020004180016a2023360200200041fc006a2021360200200041b3016a200241246a41026a2d00003a0000200020022f01243b00b101200041e0016a2035370300200041dc016a2027360200200041d8016a202b360200200041d4016a2024360200200041d0016a2028360200200041cc016a2034360200200041c8016a2006360200200041c0016a2033370300200041bc016a2012360200200041b8016a2032360200200041b4016a200d360200200042053703000c360b20004209370300024002400240024002402020410f710e090e0e0001020e0e030e040b20244101470d0d2027450d0d202b10300c0d0b200d4101470d0c2012450d0c203210300c0c0b20064101470d0b2028450d0b203410300c0b0b2032450d0a200d10300c0a0b200d4101470d092012450d09203210300c090b200241286a2001109c0220022d00282203410a460d14200241146a41026a20022d002b3a0000200220022f00293b0114200241306a2204280200210b200241346a2205280200210e200241386a2208290300210a200241c0006a220c2802002111200241c4006a22102802002116200241c8006a220f2802002117200241cc006a22132802002114200241d0006a220d2802002118200241d4006a22122802002119200241d8006a22062903002115200228022c2109200241286a2001109c0220022d00282207410a460d15200241186a41026a20022d002b3a0000200220022f00293b01182004280200211a2005280200211c2008290300211b200c28020021082010280200211e200f28020021102013280200210c200d28020021132012280200210f2006290300211d200228022c2105200241286a2001109c0220022d00282204410a460d162002411c6a41026a20022d002b3a0000200220022f00293b011c200241306a220d2802002123200241346a22122802002126200241386a22062903002122200241c0006a22242802002129200241c4006a2228280200212e200241c8006a2227280200212f200241cc006a222b280200212c200241d0006a22252802002130200241d4006a222a2802002131200241d8006a221f290300212d200228022c2121200241286a2001109c0220022d00282220410a460d17200241206a41026a20022d002b3a0000200220022f00293b0120200d28020021322012280200213420062903002133202428020021062028280200213620272802002128202b28020021242025280200212b202a2802002127201f2903002135200228022c2112200241286a2001109c0220022d0028220d410a460d05200241246a41026a223720022d002b3a0000200220022f00293b0124200241306a2238280200212a200241286a410c6a280200211f200241286a41106a2239290300213a200241286a41186a223b280200213c200241c4006a280200213d200241286a41206a223e280200213f200241286a41246a2802002140200241286a41286a22412802002142200241286a412c6a2802002143200241286a41306a22442903002145200228022c2125200241286a2001109c02024020022d0028410a460d00200041a0026a2002290328370300200041d0026a2044290300370300200041c8026a2041290300370300200041c0026a203e290300370300200041b8026a203b290300370300200041b0026a2039290300370300200041a8026a2038290300370300200020033a0008200020022f01143b00092000410b6a200241146a41026a2d00003a0000200041c0006a20073a0000200041386a2015370300200041346a2019360200200041306a20183602002000412c6a2014360200200041286a2017360200200041246a2016360200200041206a2011360200200041186a200a370300200041146a200e360200200041106a200b3602002000410c6a2009360200200041f8006a20043a0000200041f0006a201d370300200041ec006a200f360200200041e8006a2013360200200041e4006a200c360200200041e0006a2010360200200041dc006a201e360200200041d8006a2008360200200041d0006a201b370300200041cc006a201c360200200041c8006a201a360200200041c4006a2005360200200020022f01183b0041200041c3006a200241186a41026a2d00003a0000200020022f011c3b0079200041fb006a2002411c6a41026a2d00003a0000200041b0016a20203a0000200041a8016a202d370300200041a4016a2031360200200041a0016a20303602002000419c016a202c36020020004198016a202f36020020004194016a202e36020020004190016a202936020020004188016a202237030020004184016a202636020020004180016a2023360200200041fc006a2021360200200041b3016a200241206a41026a2d00003a0000200020022f01203b00b101200041e8016a200d3a0000200041e0016a2035370300200041dc016a2027360200200041d8016a202b360200200041d4016a2024360200200041d0016a2028360200200041cc016a2036360200200041c8016a2006360200200041c0016a2033370300200041bc016a2034360200200041b8016a2032360200200041b4016a2012360200200041eb016a20372d00003a0000200020022f01243b00e90120004198026a204537030020004194026a204336020020004190026a20423602002000418c026a204036020020004188026a203f36020020004184026a203d36020020004180026a203c360200200041f8016a203a370300200041f4016a201f360200200041f0016a202a360200200041ec016a2025360200200042063703000c350b2000420937030002400240024002400240200d410f710e090b0b0001020b0b030b040b20404101470d0a2043450d0a204210300c0a0b20254101470d09201f450d09202a10300c090b203c4101470d08203f450d08203d10300c080b202a450d07202510300c070b20254101470d06201f450d06202a10300c060b200241286a2001109c0220022d00282203410a460d17200241106a41026a20022d002b3a0000200220022f00293b0110200241306a2204280200210b200241346a2205280200210e200241386a2208290300210a200241c0006a220c2802002111200241c4006a22102802002116200241c8006a220f2802002117200241cc006a22132802002114200241d0006a220d2802002118200241d4006a22122802002119200241d8006a22062903002115200228022c2109200241286a2001109c0220022d00282207410a460d18200241146a41026a20022d002b3a0000200220022f00293b01142004280200211a2005280200211c2008290300211b200c28020021082010280200211e200f28020021102013280200210c200d28020021132012280200210f2006290300211d200228022c2105200241286a2001109c0220022d00282204410a460d19200241186a41026a20022d002b3a0000200220022f00293b0118200241306a220d2802002123200241346a22122802002126200241386a22062903002122200241c0006a22242802002129200241c4006a2228280200212e200241c8006a2227280200212f200241cc006a222b280200212c200241d0006a22252802002130200241d4006a222a2802002131200241d8006a221f290300212d200228022c2121200241286a2001109c0220022d00282220410a460d1a2002411c6a41026a20022d002b3a0000200220022f00293b011c200d28020021322012280200213420062903002133202428020021062028280200213620272802002128202b28020021242025280200212b202a2802002127201f2903002135200228022c2112200241286a2001109c0220022d0028220d410a460d1b200241206a41026a20022d002b3a0000200220022f00293b0120200241306a2225280200213b200241346a222a280200213e200241386a221f290300213a200241c0006a223c2802002141200241c4006a22402802002146200241c8006a223f2802002147200241cc006a22432802002144200241d0006a223d2802002148200241d4006a22422802002149200241d8006a22372903002145200228022c2139200241286a2001109c0220022d00282238410a460d02200241246a41026a20022d002b3a0000200220022f00293b01242025280200214a202a280200212a201f290300214b203c280200211f2040280200214c203f28020021402043280200213c203d28020021432042280200213f2037290300214d200228022c2125200241286a2001109c02024020022d0028410a460d00200041d8026a200229032837030020004188036a200241286a41306a29030037030020004180036a200241286a41286a290300370300200041f8026a200241286a41206a290300370300200041f0026a200241286a41186a290300370300200041e8026a200241286a41106a290300370300200041e0026a200241306a290300370300200020033a0008200020022f01103b00092000410b6a200241106a41026a2d00003a0000200041c0006a20073a0000200041386a2015370300200041346a2019360200200041306a20183602002000412c6a2014360200200041286a2017360200200041246a2016360200200041206a2011360200200041186a200a370300200041146a200e360200200041106a200b3602002000410c6a2009360200200041f8006a20043a0000200041f0006a201d370300200041ec006a200f360200200041e8006a2013360200200041e4006a200c360200200041e0006a2010360200200041dc006a201e360200200041d8006a2008360200200041d0006a201b370300200041cc006a201c360200200041c8006a201a360200200041c4006a2005360200200020022f01143b0041200041c3006a200241146a41026a2d00003a0000200020022f01183b0079200041fb006a200241186a41026a2d00003a0000200041b0016a20203a0000200041a8016a202d370300200041a4016a2031360200200041a0016a20303602002000419c016a202c36020020004198016a202f36020020004194016a202e36020020004190016a202936020020004188016a202237030020004184016a202636020020004180016a2023360200200041fc006a2021360200200041b3016a2002411c6a41026a2d00003a0000200020022f011c3b00b101200041e8016a200d3a0000200041e0016a2035370300200041dc016a2027360200200041d8016a202b360200200041d4016a2024360200200041d0016a2028360200200041cc016a2036360200200041c8016a2006360200200041c0016a2033370300200041bc016a2034360200200041b8016a2032360200200041b4016a2012360200200041eb016a200241206a41026a2d00003a0000200020022f01203b00e901200041a0026a20383a000020004198026a204537030020004194026a204936020020004190026a20483602002000418c026a204436020020004188026a204736020020004184026a204636020020004180026a2041360200200041f8016a203a370300200041f4016a203e360200200041f0016a203b360200200041ec016a2039360200200041a3026a200241246a41026a2d00003a0000200020022f01243b00a102200041d0026a204d370300200041cc026a203f360200200041c8026a2043360200200041c4026a203c360200200041c0026a2040360200200041bc026a204c360200200041b8026a201f360200200041b0026a204b370300200041ac026a202a360200200041a8026a204a360200200041a4026a2025360200200042073703000c340b20004209370300024002400240024002402038410f710e09080800010208080308040b203c4101470d07203f450d07204310300c070b20254101470d06202a450d06204a10300c060b201f4101470d052040450d05204c10300c050b204a450d04202510300c040b20254101470d03202a450d03204a10300c030b200042093703000c320b200241286a2001109c0220022d00282203410a460d1a2002410c6a41026a20022d002b3a0000200220022f00293b010c200241306a2204280200210b200241346a2205280200210e200241386a2208290300210a200241c0006a220c2802002111200241c4006a22102802002116200241c8006a220f2802002117200241cc006a22132802002114200241d0006a220d2802002118200241d4006a22122802002119200241d8006a22062903002115200228022c2109200241286a2001109c0220022d00282207410a460d1b200241106a41026a20022d002b3a0000200220022f00293b01102004280200211a2005280200211c2008290300211b200c28020021082010280200211e200f28020021102013280200210c200d28020021132012280200210f2006290300211d200228022c2105200241286a2001109c0220022d00282204410a460d1c200241146a41026a20022d002b3a0000200220022f00293b0114200241306a220d2802002123200241346a22122802002126200241386a22062903002122200241c0006a22242802002129200241c4006a2228280200212e200241c8006a2227280200212f200241cc006a222b280200212c200241d0006a22252802002130200241d4006a222a2802002131200241d8006a221f290300212d200228022c2121200241286a2001109c0220022d00282220410a460d1d200241186a41026a20022d002b3a0000200220022f00293b0118200d28020021322012280200213420062903002133202428020021062028280200213620272802002128202b28020021242025280200212b202a2802002127201f2903002135200228022c2112200241286a2001109c0220022d0028220d410a460d1e2002411c6a41026a20022d002b3a0000200220022f00293b011c200241306a2225280200213b200241346a222a280200213e200241386a221f290300213a200241c0006a223c2802002141200241c4006a22402802002146200241c8006a223f2802002147200241cc006a22432802002144200241d0006a223d2802002148200241d4006a22422802002149200241d8006a22372903002145200228022c2139200241286a2001109c0220022d00282238410a460d1f200241206a41026a20022d002b3a0000200220022f00293b01202025280200214a202a280200214c201f290300214b203c280200211f2040280200214e203f28020021402043280200213c203d28020021432042280200213f2037290300214d200228022c212a200241286a2001109c0220022d00282225410a460d20200241246a41026a224f20022d002b3a0000200220022f00293b0124200241306a22502802002142200241286a410c6a2802002137200241286a41106a22512903002152200241286a41186a22532802002154200241c4006a2802002155200241286a41206a22562802002157200241286a41246a2802002158200241286a41286a2259280200215a200241286a412c6a280200215b200241286a41306a225c290300215d200228022c213d200241286a2001109c02024020022d0028410a460d0020004190036a2002290328370300200041c0036a205c290300370300200041b8036a2059290300370300200041b0036a2056290300370300200041a8036a2053290300370300200041a0036a205129030037030020004198036a2050290300370300200020033a0008200020022f010c3b00092000410b6a2002410c6a41026a2d00003a0000200041c0006a20073a0000200041386a2015370300200041346a2019360200200041306a20183602002000412c6a2014360200200041286a2017360200200041246a2016360200200041206a2011360200200041186a200a370300200041146a200e360200200041106a200b3602002000410c6a2009360200200041f8006a20043a0000200041f0006a201d370300200041ec006a200f360200200041e8006a2013360200200041e4006a200c360200200041e0006a2010360200200041dc006a201e360200200041d8006a2008360200200041d0006a201b370300200041cc006a201c360200200041c8006a201a360200200041c4006a2005360200200020022f01103b0041200041c3006a200241106a41026a2d00003a0000200020022f01143b0079200041fb006a200241146a41026a2d00003a0000200041b0016a20203a0000200041a8016a202d370300200041a4016a2031360200200041a0016a20303602002000419c016a202c36020020004198016a202f36020020004194016a202e36020020004190016a202936020020004188016a202237030020004184016a202636020020004180016a2023360200200041fc006a2021360200200041b3016a200241186a41026a2d00003a0000200020022f01183b00b101200041e8016a200d3a0000200041e0016a2035370300200041dc016a2027360200200041d8016a202b360200200041d4016a2024360200200041d0016a2028360200200041cc016a2036360200200041c8016a2006360200200041c0016a2033370300200041bc016a2034360200200041b8016a2032360200200041b4016a2012360200200041eb016a2002411c6a41026a2d00003a0000200020022f011c3b00e901200041a0026a20383a000020004198026a204537030020004194026a204936020020004190026a20483602002000418c026a204436020020004188026a204736020020004184026a204636020020004180026a2041360200200041f8016a203a370300200041f4016a203e360200200041f0016a203b360200200041ec016a2039360200200041a3026a200241206a41026a2d00003a0000200020022f01203b00a102200041d8026a20253a0000200041d0026a204d370300200041cc026a203f360200200041c8026a2043360200200041c4026a203c360200200041c0026a2040360200200041bc026a204e360200200041b8026a201f360200200041b0026a204b370300200041ac026a204c360200200041a8026a204a360200200041a4026a202a360200200041db026a204f2d00003a0000200020022f01243b00d90220004188036a205d37030020004184036a205b36020020004180036a205a360200200041fc026a2058360200200041f8026a2057360200200041f4026a2055360200200041f0026a2054360200200041e8026a2052370300200041e4026a2037360200200041e0026a2042360200200041dc026a203d360200200042083703000c320b200042093703000240024002400240024002402025410f710e09313100010231310331040b20584101470d30205b450d30205a10300c300b203d4101470d2f20370d030c2f0b20544101470d2e2057450d2e205510300c2e0b2042450d2d203d10300c2d0b203d4101470d2c2037450d2c0b204210300c2b0b200042093703000b024002400240024002400240200d410f710e092b2b0001022b2b032b040b20444101470d2a2049450d2a204810300c2a0b20394101470d29203e0d030c290b20414101470d282047450d28204610300c280b203b450d27203910300c270b20394101470d26203e450d260b203b10300c250b200042093703000b0240024002400240024002402020410f710e09262600010226260326040b20244101470d252027450d25202b10300c250b20124101470d2420340d030c240b20064101470d232028450d23203610300c230b2032450d22201210300c220b20124101470d212034450d210b203210300c200b200042093703000b0240024002400240024002402004410f710e09222200010222220322040b202c4101470d212031450d21203010300c210b20214101470d2020260d030c200b20294101470d1f202f450d1f202e10300c1f0b2023450d1e202110300c1e0b20214101470d1d2026450d1d0b202310300c1c0b200042093703000b0240024002400240024002402007410f710e091f1f0001021f1f031f040b200c4101470d1e200f450d1e201310300c1e0b20054101470d1d201c0d030c1d0b20084101470d1c2010450d1c201e10300c1c0b201a450d1b200510300c1b0b20054101470d1a201c450d1a0b201a10300c190b200042093703000b0240024002400240024002402003410f710e092d2d0001022d2d032d040b20144101470d2c2019450d2c201810300c2c0b20094101470d2b200e0d030c2b0b20114101470d2a2017450d2a201610300c2a0b200b450d29200910300c290b20094101470d28200e450d280b200b10300c270b200042093703000c260b200042093703000c250b200042093703000c240b200042093703000c130b200042093703000c220b200042093703000c130b200042093703000c110b200042093703000c1f0b200042093703000c130b200042093703000c110b200042093703000c0f0b200042093703000c1b0b200042093703000c130b200042093703000c110b200042093703000c0f0b200042093703000c0d0b200042093703000c160b200042093703000c140b200042093703000c120b200042093703000c100b200042093703000c0e0b200042093703000c0c0b200042093703000c0a0b0240024002400240024002402003410f710e09151500010215150315040b20144101470d142019450d14201810300c140b20094101470d13200e0d030c130b20114101470d122017450d12201610300c120b200b450d11200910300c110b20094101470d10200e450d100b200b10300c0f0b0240024002400240024002402007410f710e09060600010206060306040b200c4101470d05200f450d05201310300c050b20054101470d04201c0d030c040b20084101470d032010450d03201e10300c030b201a450d02200510300c020b20054101470d01201c450d010b201a10300b0240024002400240024002402003410f710e09131300010213130313040b20144101470d122019450d12201810300c120b20094101470d11200e0d030c110b20114101470d102017450d10201610300c100b200b450d0f200910300c0f0b20094101470d0e200e450d0e0b200b10300c0d0b0240024002400240024002402004410f710e09060600010206060306040b202c4101470d052031450d05203010300c050b20214101470d0420260d030c040b20294101470d03202f450d03202e10300c030b2023450d02202110300c020b20214101470d012026450d010b202310300b0240024002400240024002402007410f710e09060600010206060306040b200c4101470d05200f450d05201310300c050b20054101470d04201c0d030c040b20084101470d032010450d03201e10300c030b201a450d02200510300c020b20054101470d01201c450d010b201a10300b0240024002400240024002402003410f710e09101000010210100310040b20144101470d0f2019450d0f201810300c0f0b20094101470d0e200e0d030c0e0b20114101470d0d2017450d0d201610300c0d0b200b450d0c200910300c0c0b20094101470d0b200e450d0b0b200b10300c0a0b0240024002400240024002402020410f710e09060600010206060306040b20244101470d052027450d05202b10300c050b20124101470d0420340d030c040b20064101470d032028450d03203610300c030b2032450d02201210300c020b20124101470d012034450d010b203210300b0240024002400240024002402004410f710e09060600010206060306040b202c4101470d052031450d05203010300c050b20214101470d0420260d030c040b20294101470d03202f450d03202e10300c030b2023450d02202110300c020b20214101470d012026450d010b202310300b0240024002400240024002402007410f710e09060600010206060306040b200c4101470d05200f450d05201310300c050b20054101470d04201c0d030c040b20084101470d032010450d03201e10300c030b201a450d02200510300c020b20054101470d01201c450d010b201a10300b0240024002400240024002402003410f710e090c0c0001020c0c030c040b20144101470d0b2019450d0b201810300c0b0b20094101470d0a200e0d030c0a0b20114101470d092017450d09201610300c090b200b450d08200910300c080b20094101470d07200e450d070b200b10300c060b0240024002400240024002402038410f710e09060600010206060306040b203c4101470d05203f450d05204310300c050b202a4101470d04204c0d030c040b201f4101470d032040450d03204e10300c030b204a450d02202a10300c020b202a4101470d01204c450d010b204a10300b024002400240024002400240200d410f710e09060600010206060306040b20444101470d052049450d05204810300c050b20394101470d04203e0d030c040b20414101470d032047450d03204610300c030b203b450d02203910300c020b20394101470d01203e450d010b203b10300b0240024002400240024002402020410f710e09060600010206060306040b20244101470d052027450d05202b10300c050b20124101470d0420340d030c040b20064101470d032028450d03203610300c030b2032450d02201210300c020b20124101470d012034450d010b203210300b0240024002400240024002402004410f710e09060600010206060306040b202c4101470d052031450d05203010300c050b20214101470d0420260d030c040b20294101470d03202f450d03202e10300c030b2023450d02202110300c020b20214101470d012026450d010b202310300b0240024002400240024002402007410f710e09060600010206060306040b200c4101470d05200f450d05201310300c050b20054101470d04201c0d030c040b20084101470d032010450d03201e10300c030b201a450d02200510300c020b20054101470d01201c450d010b201a10300b0240024002400240024002402003410f710e09060600010206060306040b20144101470d052019450d05201810300c050b20094101470d04200e0d030c040b20114101470d032017450d03201610300c030b200b450d02200910300c020b20094101470d01200e450d010b200b10300b200241e0006a24000beb010002400240024002400240024002400240024020002802000e0b0808080800010203040506070b200041086a280200450d07200028020410300f0b200041086a280200450d06200028020410300f0b200041086a109c010f0b200041086a109c010f0b200041086a280200450d03200028020410300f0b0240200041086a280200450d00200028020410300b200041106a2d00004106490d02200041186a280200450d02200041146a28020010300f0b200041086a109c010c010b200041086a109c01200041d0036a2d00004106490d00200041d8036a280200450d00200041d4036a28020010300f0b0bcf0201067f0240024020012802042202450d00200128020022032d0000210420012002417f6a2205360204410121062001200341016a3602000240200441037122074103460d0002400240024020070e03000102000b20044102762107410021060c040b41012106024020050d000c040b20032d0001210520012002417e6a3602042001200341026a3602002005410874200472220141ffff0371418002490d03200141fcff03714102762107410021060c030b20054103490d01200341036a2d0000210620032f0001210720012002417c6a3602042001200341046a3602002007200641107472410874200472220141808004492106200141027621070c020b0240200441034d0d000c020b20054104490d012003280001210720012002417b6a3602042001200341056a36020020074180808080044921060c010b410121060b20002007360204200020063602000bf0020002400240024002400240024002400240024020002802000e080700010203040506080b200041086a10f4010f0b200041086a10f401200041c0006a10f4010f0b200041086a10f401200041c0006a10f401200041f8006a10f4010f0b200041086a10f401200041c0006a10f401200041f8006a10f401200041b0016a10f4010f0b200041086a10f401200041c0006a10f401200041f8006a10f401200041b0016a10f401200041e8016a10f4010f0b200041086a10f401200041c0006a10f401200041f8006a10f401200041b0016a10f401200041e8016a10f401200041a0026a10f4010f0b200041086a10f401200041c0006a10f401200041f8006a10f401200041b0016a10f401200041e8016a10f401200041a0026a10f401200041d8026a10f4010b0f0b200041086a10f401200041c0006a10f401200041f8006a10f401200041b0016a10f401200041e8016a10f401200041a0026a10f401200041d8026a10f40120004190036a10f4010bb00404057f017e017f017e0240024020012802042202450d00200128020022032d0000210420012002417f6a22053602042001200341016a360200024002400240200441037122064103460d000240024020060e03030001030b41012106024020050d000c060b20032d0001210520012002417e6a3602042001200341026a3602002005410874200472220141ffff0371418002490d05200141fcff0371410276ad21070c030b410121060240200541034f0d000c050b200341036a2d0000210520032f0001210820012002417c6a3602042001200341046a3602002008200541107472410874200472220141808004490d042001410276ad21070c020b024002400240200441027622080e050002020201020b20054104490d042003350001210720012002417b6a3602042001200341056a36020020074280808080045421060c050b20054108490d03200329000121072001200241776a3602042001200341096a3602002007428080808080808080015421060c040b200441134b0d02200841046a21052002417e6a2102200341026a2103410021044200210741012106034002402002417f470d000c050b2003417f6a310000210920012002360204200120033602002002417f6a2102200341016a210320092004410374413871ad862007842107200441016a220441ff01712005490d000b2007427f412820084103746b413871ad885821060c030b2004410276ad21070b410021060c010b410121060b2000200737030820002006ad3703000bbe0e02047f027e230041b00b6b2202240002400240200128020422030d002000410c3602000c010b200128020022042d0000210520012003417f6a3602042001200441016a3602000240024002400240024002400240024002400240024002400240024002400240024002400240024020050e0c000102030405060708090a0c0b0b200041003602000c130b200041013602000c120b200041023602000c110b200041033602000c100b20022001109b01024020022802000d002001280204220420022802042203490d002003417f4c0d0a0240024020030d00410121050c010b2003102f2205450d0c2005410020031087051a200128020421040b024020042003490d002005200128020020031085052105200128020422042003490d0e20002005360204200041043602002001200420036b360204200041086a2003ad22064220862006843702002001200128020020036a3602000c110b200510300b2000410c3602000c0f0b200241086a2001109b01024020022802080d0020012802042204200228020c2203490d002003417f4c0d090240024020030d00410121050c010b2003102f2205450d0b2005410020031087051a200128020421040b024020042003490d002005200128020020031085052105200128020422042003490d0e20002005360204200041053602002001200420036b360204200041086a2003ad22064220862006843702002001200128020020036a3602000c100b200510300b2000410c3602000c0e0b200241e8076a2001109901024020022903e8074209510d00200241a0046a200241e8076a41c8031085051a200241d0006a41046a200241a0046a41c8031085051a20004106360200200041046a200241d0006a41cc031085051a0c0e0b2000410c3602000c0d0b200241e8076a2001109901024020022903e8074209510d00200241a0046a200241e8076a41c8031085051a200241d0006a41046a200241a0046a41c8031085051a20004107360200200041046a200241d0006a41cc031085051a0c0d0b2000410c3602000c0c0b200241286a2001109b010240024020022802280d0020012802042204200228022c2203490d002003417f4c0d070240024020030d00410121050c010b2003102f2205450d092005410020031087051a200128020421040b024020042003490d0020052001280200200310850521052001280204220420034f0d022003200441f0f5c100104a000b200510300b2000410c3602000c0c0b2001200420036b3602042001200128020020036a360200200241106a200110c9022002290310a7450d0a2000410c3602002003450d0b200510300c0b0b200241306a2001109b010240024020022802300d002001280204220420022802342203490d002003417f4c0d060240024020030d00410121050c010b2003102f2205450d082005410020031087051a200128020421040b024020042003490d0020052001280200200310850521052001280204220420034f0d022003200441f0f5c100104a000b200510300b2000410c3602000c0b0b2001200420036b3602042001200128020020036a360200200241d0006a200110ca02024020022d00504107460d00200041106a2002290350370300200041306a200241d0006a41206a290300370300200041286a200241d0006a41186a290300370300200041206a200241d0006a41106a290300370300200041186a200241d0006a41086a2903003703002000410c6a2003360200200041086a200336020020002005360204200041093602000c0b0b2000410c3602002003450d0a200510300c0a0b200241e8076a200110990120022903e8074209510d02200241a0046a200241e8076a41c8031085051a200241386a200110c90202402002290338a70d00200241c8006a290300210620022903402107200241d0006a41046a200241a0046a41c8031085051a2000410a360200200041046a200241d0006a41cc031085051a200041d8036a2006370300200041d0036a20073703000c0a0b2000410c360200200241a0046a109c010c090b2000410c3602000c080b200241e8076a200110990120022903e8074209510d03200241a0046a200241e8076a41c8031085051a200241e8076a200110ca02024020022d00e8074107460d00200041d0036a20022903e807370300200041f0036a20024188086a290300370300200041e8036a20024180086a290300370300200041e0036a200241f8076a290300370300200041d8036a200241f0076a290300370300200241d0006a41046a200241a0046a41c8031085051a2000410b360200200041046a200241d0006a41cc031085051a0c080b2000410c360200200241a0046a109c010c070b2000410c3602000c060b102c000b102a000b2000410c3602000c030b2003200441f0f5c100104a000b2003200441f0f5c100104a000b200241106a41106a2903002106200229031821072000200536020420004108360200200041106a20073703002000410c6a2003360200200041086a2003360200200041186a20063703000b200241b00b6a24000b920403027f017e077f230041d00b6b220324000240024002402002200128020441e8036e2204200420024b1bad42e8037e2205422088a70d002005a72204417f4c0d0002400240024020040d00410821060c010b2004102f2206450d010b200441e8036e2107024020020d00410021020c030b200341d8076a410172210841002109410021044100210a02400340200341d8076a200110a10120032d00d807210b200341f1036a200841e7031085051a200b410b460d012003410a6a200341f1036a41e7031085051a0240200a2007470d002009200a41016a220c2009200c4b1b220c4104200c41044b1bad42e8037e2205422088a745410374210c2005a7210702400240200a0d00200341003602d8070c010b200341083602e007200320043602dc07200320063602d8070b200341c00b6a2007200c200341d8076a106920032802c80b210c024020032802c00b4101470d00200c0d040c050b20032802c40b2106200c41e8036e21070b200620046a220c200b3a0000200c41016a2003410a6a41e7031085051a200941026a2109200441e8036a21042002200a41016a220a460d040c000b0b200041003602000240200a450d002006210a0340200a10a201200a41e8036a210a200441987c6a22040d000b0b2007450d03200741e8036c450d03200610300c030b102a000b102c000b2000200736020420002006360200200041086a20023602000b200341d00b6a24000bc50801027f0240024002400240024002400240024020002d00000e0707000102030405060b02402000410c6a2802002201450d00200041046a2802002102200141f8036c210103402002109a01200241f8036a2102200141887c6a22010d000b0b0240200041086a2802002202450d00200241f8036c450d00200028020410300b200041106a109c010f0b02402000410c6a2802002201450d00200041046a2802002102200141f8036c210103402002109a01200241f8036a2102200141887c6a22010d000b0b0240200041086a2802002202450d00200241f8036c450d00200028020410300b200041206a109c010240200041186a2802002201450d00200041106a280200210220014198046c21010340200210a00120024198046a2102200141e87b6a22010d000b0b200041146a2802002202450d0520024198046c450d05200028021010300f0b02402000410c6a2802002201450d00200041046a2802002102200141f8036c210103402002109a01200241f8036a2102200141887c6a22010d000b0b0240200041086a2802002202450d00200241f8036c450d00200028020410300b0240200041186a2802002201450d00200041106a2802002102200141f8036c210103402002109a01200241f8036a2102200141887c6a22010d000b0b200041146a2802002202450d04200241f8036c450d04200028021010300f0b02402000410c6a2802002201450d00200041046a2802002102200141f8036c210103402002109a01200241f8036a2102200141887c6a22010d000b0b0240200041086a2802002202450d00200241f8036c450d00200028020410300b200041206a109c010240200041186a2802002201450d00200041106a280200210220014198046c21010340200210a00120024198046a2102200141e87b6a22010d000b0b200041146a2802002202450d0320024198046c450d03200028021010300f0b02402000410c6a2802002201450d00200041046a2802002102200141f8036c210103402002109a01200241f8036a2102200141887c6a22010d000b0b0240200041086a2802002202450d00200241f8036c450d00200028020410300b200041206a109c010240200041186a2802002201450d00200041106a280200210220014198046c21010340200210a00120024198046a2102200141e87b6a22010d000b0b200041146a2802002202450d0220024198046c450d02200028021010300f0b200041186a109c0102402000410c6a2802002201450d00200041046a2802002102200141f8036c210103402002109a01200241f8036a2102200141887c6a22010d000b0b200041086a2802002202450d01200241f8036c450d01200028020410300c010b200041106a109a0102402000410c6a2802002201450d00200041046a2802002102200141e8036c21010340200210a201200241e8036a2102200141987c6a22010d000b0b200041086a2802002202450d00200241e8036c450d00200028020410300f0b0b941503057f027e017f230041900c6b2202240002400240200128020422030d002000410b3a00000c010b200128020022042d0000210520012003417f6a22063602042001200441016a3602000240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024020050e0b000102030405060708090b0a0b200241a8086a200110980120022802a8082203450d13200241b0086a280200210520022802ac08210420022001109b01024002402002280200450d00200241003602a8080c010b200241a8086a2001200228020410970120022802a8080d220b2000410b3a000002402005450d00200541f8036c21002003210103402001109a01200141f8036a2101200041887c6a22000d000b0b2004450d22200441f8036c450d22200310300c220b200241a8086a200110980120022802a8082203450d11200241b0086a280200210520022802ac082104200241086a2001109b01024002402002280208450d00200241003602a8080c010b200241a8086a2001200228020c10970120022802a8080d200b2000410b3a000002402005450d00200541f8036c21002003210103402001109a01200141f8036a2101200041887c6a22000d000b0b2004450d21200441f8036c450d21200310300c210b200241a8086a200110980120022802a8082203450d0f200241b0086a280200210520022802ac082104200241106a2001109b01024002402002280210450d00200241003602a8080c010b200241a8086a2001200228021410970120022802a8080d1e0b2000410b3a000002402005450d00200541f8036c21002003210103402001109a01200141f8036a2101200041887c6a22000d000b0b2004450d20200441f8036c450d20200310300c200b200241186a2001109d012002290318a70d11024020012802042203450d0020022903202107200128020022042d0000210520012003417f6a3602042001200441016a36020020050d00200241a8086a200110980120022802a8082201450d0020022902ac082108200041106a2007370300200041086a2008370000200041046a2001360000200041033a00000c200b2000410b3a00000c1f0b200241a8086a200110980120022802a8082203450d11200241a8086a41086a280200210520022802ac082104200241a8086a2001109901024020022903a8084209510d00200041106a200241a8086a41c8031085051a2000410c6a2005360000200041086a2004360000200041046a2003360000200041043a00000c1f0b2000410b3a000002402005450d00200541f8036c21002003210103402001109a01200141f8036a2101200041887c6a22000d000b0b2004450d1e200441f8036c450d1e200310300c1e0b200241c0046a200110980120022802c0042203450d11200241c8046a280200210520022802c4042104200241c0046a200110990120022903c0044209510d0a200241f8006a200241c0046a41c8031085051a200241286a2001109b01024002402002280228450d00200241003602c0040c010b200241c0046a2001200228022c10970120022802c0040d1a0b2000410b3a0000200241f8006a109c010c0b0b2006450d1120042d0001210520012003417e6a22063602042001200441026a36020041002109024002400240024020050e0403000102150b410121090c020b410221090c010b410321090b02400240024020064108490d00200429000221072001200341766a36020420012004410a6a360200200241306a2001109b0120022802300d022001280204220420022802342203490d022003417f4c0d150240024020030d00410121050c010b2003102f2205450d092005410020031087051a200128020421040b20042003490d012005200128020020031085052105200128020422042003490d1a200020093a0001200041063a00002001200420036b360204200041186a2007370300200041106a41003a0000200041086a2003ad2207422086200784370100200041046a20053601002001200128020020036a3602000c1f0b2000410b3a00000c1e0b200510300b2000410b3a00000c1c0b200241c8006a2001109b0120022802480d12200228024c2103200241c0006a2001109b0120022802400d1320022802442104200241386a2001109b01024020022802380d00200228023c2101200041073a00002000410c6a2001360200200041086a2004360200200041046a20033602000c1c0b2000410b3a00000c1b0b200241d0006a2001109b01024020022802500d0020022802542101200041083a0000200041046a20013602000c1b0b2000410b3a00000c1a0b200241e8006a2001109b0120022802680d12200228026c2103200241e0006a2001109b0120022802600d1320022802642104200241d8006a2001109b01024020022802580d00200228025c2101200041093a00002000410c6a2001360200200041086a2004360200200041046a20033602000c1a0b2000410b3a00000c190b2000410b3a00000c180b200241a8086a200110990120022903a8084209510d01200241f8006a200241a8086a41c8031085051a200241a8086a200110a10120022d00a8082101200241c0046a200241a8086a41017241e7031085051a2001410b460d0341e803102f22030d020b102a000b2000410b3a00000c150b200320013a0000200341016a200241c0046a41e7031085051a200041086a200241f8006a41c8031085051a200041046a20033602002000410a3a00000c140b2000410b3a0000200241f8006a109c010c130b2000410b3a00000b02402005450d00200541f8036c21002003210103402001109a01200141f8036a2101200041887c6a22000d000b0b2004450d11200441f8036c450d11200310300c110b2000410b3a00000c100b2000410b3a00000c0f0b2000410b3a00000c0e0b2000410b3a00000c0d0b2000410b3a00000c0c0b2000410b3a00000c0b0b2000410b3a00000c0a0b102c000b2000410b3a00000c080b2000410b3a00000c070b2000410b3a00000c060b2000410b3a00000c050b2003200441f0f5c100104a000b200041106a20022903c004370200200041186a200241c0046a41086a280200360200200241a8086a41046a200241f8006a41c8031085051a200041053a0000200020022f00753b0001200041036a200241f7006a2d00003a00002000410c6a2005360000200041086a2004360000200041046a20033600002000411c6a200241a8086a41cc031085051a0c030b200041106a20022903a808370200200041186a200241a8086a41086a280200360200200041023a0000200020022f00c0043b0001200041036a200241c0046a41026a2d00003a00002000410c6a2005360000200041086a2004360000200041046a20033600000c020b200041106a20022903a808370200200041186a200241a8086a41086a280200360200200041013a0000200020022f00c0043b0001200041036a200241c2046a2d00003a00002000410c6a2005360000200041086a2004360000200041046a20033600000c010b200041106a20022903a808370200200041186a200241a8086a41086a280200360200200041003a0000200020022f00c0043b0001200041036a200241c2046a2d00003a00002000410c6a2005360000200041086a2004360000200041046a20033600000b200241900c6a24000b820801027f02400240024002400240024002400240024020002d00000e0a00010203040506070707080b02402000410c6a2802002201450d00200041046a2802002102200141f8036c210103402002109a01200241f8036a2102200141887c6a22010d000b0b0240200041086a2802002202450d00200241f8036c450d00200028020410300b0240200041186a2802002201450d00200041106a280200210220014198046c21010340200210a00120024198046a2102200141e87b6a22010d000b0b200041146a2802002202450d0620024198046c450d06200028021010300f0b02402000410c6a2802002201450d00200041046a2802002102200141f8036c210103402002109a01200241f8036a2102200141887c6a22010d000b0b0240200041086a2802002202450d00200241f8036c450d00200028020410300b0240200041186a2802002201450d00200041106a280200210220014198046c21010340200210a00120024198046a2102200141e87b6a22010d000b0b200041146a2802002202450d0520024198046c450d05200028021010300f0b02402000410c6a2802002201450d00200041046a2802002102200141f8036c210103402002109a01200241f8036a2102200141887c6a22010d000b0b0240200041086a2802002202450d00200241f8036c450d00200028020410300b0240200041186a2802002201450d00200041106a280200210220014198046c21010340200210a00120024198046a2102200141e87b6a22010d000b0b200041146a2802002202450d0420024198046c450d04200028021010300f0b02402000410c6a2802002201450d00200041046a2802002102200141f8036c210103402002109a01200241f8036a2102200141887c6a22010d000b0b200041086a2802002202450d03200241f8036c450d03200028020410300f0b02402000410c6a2802002201450d00200041046a2802002102200141f8036c210103402002109a01200241f8036a2102200141887c6a22010d000b0b0240200041086a2802002202450d00200241f8036c450d00200028020410300b200041106a109c010f0b02402000410c6a2802002201450d00200041046a2802002102200141f8036c210103402002109a01200241f8036a2102200141887c6a22010d000b0b0240200041086a2802002202450d00200241f8036c450d00200028020410300b200041206a109c010240200041186a2802002201450d00200041106a280200210220014198046c21010340200210a00120024198046a2102200141e87b6a22010d000b0b200041146a2802002202450d0120024198046c450d01200028021010300f0b200041086a280200450d00200041046a28020010300b0f0b200041086a109c01200041046a220228020010a201200228020010300b891507027f017e0b7f017e057f037e017f230041c0176b22032400024002400240200220012802044198046e2204200420024b1bad4298047e2205422088a70d002005a72204417f4c0d0002400240024020040d00410821060c010b2004102f2206450d010b20044198046e2107024020020d00410021020c030b200341c8136a410c6a2108200341c8136a41046a2109200341d00f6a410472210a200341a8136a210b200341d00f6a410c6a210c4100210d0240034020012802042204450d012001280200220e2d0000210f20012004417f6a3602042001200e41016a3602004100210e02400240024002400240024002400240024002400240024002400240024002400240200f0e080300010205060708120b200341c8136a200110980120032802c813220f450d0820032802d013210420032802cc132110200341c8136a2001109901024020032903c81322114209510d0020032802d0132112200341bc086a200841bc031085051a4101210e200f21132010211420042115201121050c030b02402004450d00200441f8036c210e200f210403402004109a01200441f8036a2104200e41887c6a220e0d000b0b4108210e410121042010450d0e201041f8036c450d0e200f10300c0e0b200341d00f6a200110980120032802d00f220f450d0720032802d80f211620032802d40f2110200341d00f6a2001109901024020032903d00f4209510d00200341880c6a200341d00f6a41c8031085051a200341086a2001109b01024002402003280208450d00200341003602d00f0c010b200341d00f6a2001200328020c10970120032802d00f0d0b0b200341880c6a109c010b02402016450d00201641f8036c210e200f210403402004109a01200441f8036a2104200e41887c6a220e0d000b0b2010450d07201041f8036c450d07200f10300c070b200341c8136a200110980120032802c813220f450d0620032802d013210420032802cc132110200341c8136a200110980120032802c813450d0120032802d013211220032903c81321054103210e200f211320102114200421150b200341cc046a200341bc086a41cc031085051a0c0c0b02402004450d00200441f8036c210e200f210403402004109a01200441f8036a2104200e41887c6a220e0d000b0b4108210e410121042010450d0a201041f8036c450d0a200f10300c0a0b200341d00f6a200110980120032802d00f220f450d0320032802d80f211620032802d40f2110200341d00f6a2001109901024020032903d00f4209510d00200341880c6a200341d00f6a41c8031085051a200341106a2001109b01024002402003280210450d00200341003602d00f0c010b200341d00f6a2001200328021410970120032802d00f0d090b200341880c6a109c010b02402016450d00201641f8036c210e200f210403402004109a01200441f8036a2104200e41887c6a220e0d000b0b2010450d03201041f8036c450d03200f10300c030b200341d00f6a200110980120032802d00f220f450d0220032802d80f211620032802d40f2110200341d00f6a2001109901024020032903d00f4209510d00200341880c6a200341d00f6a41c8031085051a200341186a2001109b01024002402003280218450d00200341003602d00f0c010b200341d00f6a2001200328021c10970120032802d00f0d070b200341880c6a109c010b02402016450d00201641f8036c210e200f210403402004109a01200441f8036a2104200e41887c6a220e0d000b0b2010450d02201041f8036c450d02200f10300c020b200341206a2001109d014108210e410121042003290320a70d0720032903282111200341c8136a200110990120032903c8134209510d07200341d00f6a200341c8136a41c8031085051a200341c8136a200110980120032802c813220f450d0220032802d013211520032802cc13211420032802d00f2112200341bc086a200a41c4031085051a4106210e41002104200f2113201121050c060b200341c8136a2001109e0120032802c813410c460d00200341d00f6a200341c8136a41f8031085051a0240200128020422044108490d002001280200220e29000021112001200441786a220f3602042001200e41086a360200200f4108490d00200e29000821172001200441706a220f3602042001200e41106a220e360200200f450d00200e2d0000210f20012004416f6a3602042001200e41016a3602004100211002400240200f0e020100020b410121100b200341306a2001109b0120032802300d00200341c8136a2001200328023410940120032802c813220f450d0020032802d013211520032802cc13211420032903d00f210520032802d80f2112200341bc086a200c41cc031085051a20034198086a41186a200b41186a29030037030020034198086a41106a200b41106a29030037030020034198086a41086a200b41086a2903003703002003200b290300370398084107210e41002104200f211320172118201121192010211a0c070b200341d00f6a109a010b4108210e410121040c050b200341d00f6a109c010c040b20032802d80f211220032903d00f21052009200341880c6a41c8031085051a200341bc086a200341c8136a41cc031085051a4102210e41002104200f211320102114201621150c020b20032802d80f211220032903d00f21052009200341880c6a41c8031085051a200341bc086a200341c8136a41cc031085051a4105210e41002104200f211320102114201621150c010b20032802d80f211220032903d00f21052009200341880c6a41c8031085051a200341bc086a200341c8136a41cc031085051a4104210e41002104200f211320102114201621150b0b200341cc046a200341bc086a41cc031085051a200341a8046a41186a20034198086a41186a290300370300200341a8046a41106a20034198086a41106a290300370300200341a8046a41086a20034198086a41086a29030037030020032003290398083703a80420040d020b200341dc006a200341cc046a41cc031085051a200341386a41186a220f200341a8046a41186a290300370300200341386a41106a2210200341a8046a41106a290300370300200341386a41086a2216200341a8046a41086a290300370300200320032903a8043703380240200d2007470d00200d4101742204200d41016a2207200420074b1b22044104200441044b1bad4298047e2211422088a74541037421042011a7210702400240200d0d00200341003602c8130c010b200341083602d013200320063602c8132003200d4198046c3602cc130b200341d00f6a20072004200341c8136a106920032802d80f2104024020032802d00f4101470d0020040d040c050b20032802d40f210620044198046e21070b2006200d4198046c6a22042012360018200420053700102004201536000c20042014360008200420133600042004201a3a00012004200e3a00002004411c6a200341dc006a41cc031085051a20044180046a200f290300370000200441f8036a2010290300370000200441f0036a2016290300370000200420032903383700e80320042018370090042004201937008804200d41016a2204210d20042002460d040c000b0b200041003602002006200d10a4012007450d0320074198046c450d03200610300c030b102a000b102c000b2000200736020420002006360200200041086a20023602000b200341c0176a24000bf00801037f02402001450d00200020014198046c6a21020340200022034198046a21000240024002400240024002400240024020032d00000e0707000102030405060b02402003410c6a2802002204450d00200341046a2802002101200441f8036c210403402001109a01200141f8036a2101200441887c6a22040d000b0b0240200341086a2802002201450d00200141f8036c450d00200328020410300b200341106a109c010c060b02402003410c6a2802002204450d00200341046a2802002101200441f8036c210403402001109a01200141f8036a2101200441887c6a22040d000b0b0240200341086a2802002201450d00200141f8036c450d00200328020410300b200341206a109c010240200341186a2802002204450d00200341106a280200210120044198046c21040340200110a00120014198046a2101200441e87b6a22040d000b0b200341146a2802002201450d0520014198046c450d05200328021010300c050b02402003410c6a2802002204450d00200341046a2802002101200441f8036c210403402001109a01200141f8036a2101200441887c6a22040d000b0b0240200341086a2802002201450d00200141f8036c450d00200328020410300b0240200341186a2802002204450d00200341106a2802002101200441f8036c210403402001109a01200141f8036a2101200441887c6a22040d000b0b200341146a2802002201450d04200141f8036c450d04200328021010300c040b02402003410c6a2802002204450d00200341046a2802002101200441f8036c210403402001109a01200141f8036a2101200441887c6a22040d000b0b0240200341086a2802002201450d00200141f8036c450d00200328020410300b200341206a109c010240200341186a2802002204450d00200341106a280200210120044198046c21040340200110a00120014198046a2101200441e87b6a22040d000b0b200341146a2802002201450d0320014198046c450d03200328021010300c030b02402003410c6a2802002204450d00200341046a2802002101200441f8036c210403402001109a01200141f8036a2101200441887c6a22040d000b0b0240200341086a2802002201450d00200141f8036c450d00200328020410300b200341206a109c010240200341186a2802002204450d00200341106a280200210120044198046c21040340200110a00120014198046a2101200441e87b6a22040d000b0b200341146a2802002201450d0220014198046c450d02200328021010300c020b200341186a109c0102402003410c6a2802002204450d00200341046a2802002101200441f8036c210403402001109a01200141f8036a2101200441887c6a22040d000b0b200341086a2802002201450d01200141f8036c450d01200328020410300c010b200341106a109a0102402003410c6a2802002204450d00200341046a2802002101200441e8036c210403402001109601200141e8036a2101200441987c6a22040d000b0b200341086a2802002201450d00200141e8036c450d00200328020410300b20002002470d000b0b0bab0101017f230041106b220224000240024002400240200141c000490d00200141808001490d012001418080808004490d02200241033a00032000200241036a41011064200220013602042000200241046a410410640c030b200220014102743a000d20002002410d6a410110640c020b200220014102744101723b010e20002002410e6a410210640c010b200220014102744102723602082000200241086a410410640b200241106a24000bb30101017f230041106b220324000240024002400240200141c000490d00200141808001490d012001418080808004490d02200341033a00032002200341036a41011064200320013602042002200341046a410410640c030b200320014102743a000d20022003410d6a410110640c020b200320014102744101723b010e20022003410e6a410210640c010b200320014102744102723602082002200341086a410410640b2002200020011064200341106a24000bdd0b01057f230041206b21020240024020012802042203450d00200128020022042d0000210520012003417f6a2206360204200241013602082001200441016a360200200220053a000c20060d01200041013a00000f0b200041013a00000f0b200128020022042d0000210520012003417e6a22063602042001200441016a360200200220053a000d200241023602080240024002400240024002400240024002400240024002400240024002400240024002402006450d00200128020022042d0000210520012003417d6a22063602042001200441016a360200200220053a000e200241033602082006450d01200128020022042d0000210520012003417c6a22063602042001200441016a360200200220053a000f200241043602082006450d02200128020022042d0000210520012003417b6a22063602042001200441016a360200200241106a20053a0000200241053602082006450d03200128020022042d0000210520012003417a6a22063602042001200441016a360200200241116a20053a0000200241063602082006450d04200128020022042d000021052001200341796a22063602042001200441016a360200200241126a20053a0000200241073602082006450d05200128020022042d000021052001200341786a22063602042001200441016a360200200241136a20053a0000200241083602082006450d06200128020022042d000021052001200341776a22063602042001200441016a360200200241146a20053a0000200241093602082006450d07200128020022042d000021052001200341766a22063602042001200441016a360200200241156a20053a00002002410a3602082006450d08200128020022042d000021052001200341756a22063602042001200441016a360200200241166a20053a00002002410b3602082006450d09200128020022042d000021052001200341746a22063602042001200441016a360200200241176a20053a00002002410c3602082006450d0a200128020022042d000021052001200341736a22063602042001200441016a360200200241186a20053a00002002410d3602082006450d0b200128020022042d000021052001200341726a22063602042001200441016a360200200241196a20053a00002002410e3602082006450d0c200128020022042d000021052001200341716a22063602042001200441016a3602002002411a6a20053a00002002410f3602082006450d0d200128020022042d000021052001200341706a22063602042001200441016a3602002002411b6a20053a0000200241103602082006450d0e200128020022042d0000210520012003416f6a22063602042001200441016a3602002002411c6a20053a0000200241113602082006450d0f200128020022042d0000210520012003416e6a22063602042001200441016a3602002002411d6a20053a0000200241123602082006450d10200128020022042d0000210520012003416d6a22063602042001200441016a3602002002411e6a20053a0000200241133602082006450d112002411f6a200128020022042d000022053a000020012003416c6a3602042001200441016a360200200020022f010c3b0001200041036a20022d000e3a0000200041046a200228000f360000200041086a200241086a410b6a2f00003b00002000410a6a200241156a2d00003a00002002411d6a2f00002101200241143602082000410b6a200241166a280100360000200041116a200241086a41146a2d00003a00002000410f6a200241086a41126a2f01003b0000200041146a20053a0000200041126a20013b0000200041003a00000f0b200041013a00000f0b200041013a00000f0b200041013a00000f0b200041013a00000f0b200041013a00000f0b200041013a00000f0b200041013a00000f0b200041013a00000f0b200041013a00000f0b200041013a00000f0b200041013a00000f0b200041013a00000f0b200041013a00000f0b200041013a00000f0b200041013a00000f0b200041013a00000f0b200041013a00000f0b200041013a00000bb90202057f017e230041106b22012400200142003703080240024020002802042202450d00200028020022032d0000210420002002417f6a2205360204200141013602082000200341016a360200200120043a000c2005450d00200028020022032d0000210420002002417e6a22053602042000200341016a36020020014102360208200120043a000d2005450d00200028020022032d0000210420002002417d6a22053602042000200341016a36020020014103360208200120043a000e2005450d00200028020022032d0000210420002002417c6a3602042000200341016a360200200120043a000f20014104360208024020012903082206a741044f0d0041fef8c100411b419cf9c100102d000b2006422088a72102410021000c010b41012100410021020b200141106a24002002ad4208862000ad840bd20403087f017e017f230041e0006b220241086a41047221032001280204210441002105024003402004450d01200128020022062d0000210720012004417f6a22043602042001200641016a360200200320056a20073a00002002200541016a220636020820062105200641c000470d000b2002200241086a41356a22012900003703502002200241c4006a290000370057200241396a2800002104200241326a28010021052002412b6a2800002106200241246a28020021072002411d6a2800002103200241166a2801002108200228005321092002290057210a200228000f210b200041036a20022d000e3a0000200020022f010c3b0001200041046a200b3600002000410b6a2008360000200041086a200241086a410b6a2f00003b00002000410a6a200241156a2d00003a0000200041126a20033600002000410f6a200241086a41126a2f01003b0000200041116a2002411c6a2d00003a0000200041166a200241086a41196a2f00003b0000200041186a200241236a2d00003a0000200041196a20073600002000411f6a2002412a6a2d00003a00002000411d6a200241086a41206a2f01003b0000200041206a2006360000200041266a200241316a2d00003a0000200041246a200241086a41276a2f00003b0000200041276a20053600002000412d6a200241386a2d00003a00002000412b6a200241086a412e6a2f01003b00002000412e6a2004360000200041346a2002413f6a2d00003a0000200041326a20012f00003b0000200041396a200a370000200041356a2009360000200041003a00000f0b200041013a00000b9b0805077f017e027f017e027f23004180016b22012400200141286a4200370300200141206a22024200370300200141106a41086a420037030020014200370310200141106a41e2a4c000410f10ab01200241a4e0c000411410ab01200141203602342001200141106a36023041002103200141386a200141106a412041002802d4ad421104000240024002400240200128023822040d000c010b200128023c21052001200141386a41086a28020036024c20012004360248200141086a200141c8006a109b010240024020012802080d00410421030240024002400240200128020c2206200128024c4104762202200220064b1b22024104742207417f4c0d0002402002450d002007102f2203450d080b2002ad21082006450d030340200128024c22024104490d0320012802482207280000210920012002417c6a36024c2001200741046a3602482001200141c8006a109b0120012802000d03200128024c220720012802042202490d032002417f4c0d010240024020020d004101210a0c010b2002102f220a450d09200a410020021087051a200128024c21070b20072002490d02200a20012802482002108505210a200128024c22072002490d092001200720026b36024c2001200128024820026a360248024002402008422088220ba722072008a7470d00200741016a220c2007490d032007410174220d200c200c200d491b220c4104200c41044b1b220c41ffffffff0071200c46410274210d200c410474210c0240024020070d00200141003602680c010b20014104360270200120033602682001200b4204863e026c0b200141d8006a200c200d200141e8006a10692001280260210c20012802584101460d01200128025c2103200842808080807083200c410476ad8421080b200320074104746a2207200a36020420072009360200200741086a2002ad220b422086200b8437020020084280808080107c21082006417f6a22060d010c070b0b200c0d070b102c000b200a10300b02402008422088a72202450d0020024104742107200341086a2102034002402002280200450d002002417c6a28020010300b200241106a2102200741706a22070d000b0b0240200842ffffffff008350450d000c020b200310300c010b20030d010b2001420037025c41002103200141002802dc9442360258200141093602542001200141306a3602502001200141d8006a360264200141fc006a41013602002001420137026c200141a0e6c1003602682001200141d0006a360278200141e4006a41d0adc000200141e8006a10321a2001280258200128026010ad01200128025c450d00200128025810300b2005450d00200410300b0240024020030d0020004200370204200041002802e88f423602000c010b20002008370204200020033602000b20014180016a24000f0b102a000b2002200741f0f5c100104a000b3e002002ad4220862001ad8410102101200041086a2202420037000020004200370000200020012900003700002002200141086a290000370000200110300bde0401047f230041c0006b2202240020002802042103200028020021042001280218419c9ec00041012001411c6a28020028020c11000021000240024020030d00200021050c010b2002200436020441012105024020000d00024020012d0000410471450d0041012105200128021841ec9dc0004101200128021c28020c1100000d012001280200210041012105200241013a001720022000360218200241b09dc00036023420022001290218370308200220012d00203a00382002200128020436021c20022001290210370328200220012902083703202002200241176a3602102002200241086a360230200241046a200241186a10d3020d01200228023041c89dc0004102200228023428020c11000021050c010b200241046a200110d30221050b20034101460d00200441016a21002003417f6a2103034020022000360204200541ff0171210441012105024020040d00024020012802002205410471450d00200241013a001720022005360218200241b09dc00036023420022001290218370308200220012d00203a00382002200128020436021c20022001290210370328200220012902083703202002200241176a3602102002200241086a3602300240200241046a200241186a10d3020d00200228023041c89dc0004102200228023428020c11000021050c020b410121050c010b41012105200128021841ab9dc0004102200128021c28020c1100000d00200241046a200110d30221050b200041016a21002003417f6a22030d000b0b41012100024020050d00200128021841ed9dc0004101200128021c28020c11000021000b200241c0006a240020000b0e002001ad4220862000ad8410160b810201027f230041306b22022400200241186a4200370300200241106a22034200370300200241086a420037030020024200370300200241dca4c000410610ab012003418cc4c100410e10ab012002410036022820024201370320410021030240024002400240024020000e03000102040b200241003a002c200241206a2002412c6a410110642002200136022c200241206a2002412c6a410410640c020b200241013a002c200241206a2002412c6a410110640c010b200241023a002c200241206a2002412c6a410110640b200228022421030b2002412020022802202200200228022841002802fcad4211030002402003450d00200010300b200241306a24000bd20201057f230041f0006b22002400200041186a4200370300200041106a22014200370300200041086a420037030020004200370300200041f1a4c000410d10ab01200141b088c100410b10ab01200041203602242000200036022041002101200041286a2000412041002802d4ad4211040002400240200028022822020d000c010b200028022c210302400240200041286a41086a2802004104490d0020022800002104410121010c010b2000420037023c41002101200041002802dc94423602382000410936024c2000200041206a3602482000200041386a360254200041ec006a41013602002000420137025c200041a0e6c1003602582000200041c8006a360268200041d4006a41d0adc000200041d8006a10321a2000280238200028024010ad010240200028023c450d00200028023810300b0b2003450d00200210300b200041f0006a2400200441e40020011b0ba504010d7f230041f0006b22012400200141186a4200370300200141106a22024200370300200141086a420037030020014200370300200141e2a4c000410f10ab01200241c8dcc000411110ab01200141203602242001200136022041002102200141286a2001412041002802d4ad4211040002400240200128022822030d000c010b200128022c2104024002400240200141286a41086a28020022024104490d002002417c7122024104460d0020024108460d002002410c460d0020024110460d0020024114460d00200328000021052003280004210620032800082107200328000c2108200328001021092003280014210a200241686a220241084b0d01410120027441910271450d010b2001420037023c41002102200141002802dc94423602382001410936024c2001200141206a3602482001200141386a360254200141ec006a41013602002001420137025c200141a0e6c1003602582001200141c8006a360268200141d4006a41d0adc000200141d8006a10321a2001280238200128024010ad010240200128023c450d00200128023810300b0c010b2003280020210b200328001c210c2003280018210d410121020b2004450d00200310300b200041246a200b360200200041206a200c3602002000411c6a200d360200200041186a200a360200200041146a2009360200200041106a20083602002000410c6a2007360200200041086a20063602002000200536020420002002360200200141f0006a24000bb02b050e7f027e077f037e027f230041c0036b220124002000412c6a22022802002103200041246a22042802002205280200210620024100360200200041286a4100360200200441bcf5c100360200200041206a22022802002107200241003602002005200741016a22086a2109200541046a21022006417f7341808182847871210a200141b8016a410572210b20014192016a210c20052104024002400240024002400240024002400240024002400240024002400240024003400240024002400240200a0d000340024020022009490d00410021060c040b200441c07d6a210420022802002106200241046a220d21022006418081828478712206418081828478460d000b200641808182847873220a417f6a200a7121060c010b200a417f6a200a7121062002210d0b2003417f6a210320044100200a684103766b41d0006c6a220241546a2d0000220e4102470d01200d21020b02402003450d0003400240024020060d000340200220094f0d04200441c07d6a210420022802002106200241046a220d21022006418081828478712206418081828478460d000b2006418081828478732206417f6a200671210b200d21020c010b2006417f6a200671210b0b200668210d200b210620044100200d4103766b41d0006c6a220d41506a2802004125490d00200d41586a2802001030200b21060c000b0b024002402007450d00200541ff01200741056a1087051a200741074d0d00200841037641076c21020c010b200721020b20002002360228200020073602202000412c6a4100360200200041246a200536020020002d00584101460d0f200041dc006a28020021020240200041c8006a220d28020022042004417f6a2206200041c0006a220928020022042000413c6a220b2802006b716b4101470d00200b10b201200d280200417f6a2106200928020021040b20092006200441016a71360200200041c4006a28020020044102746a2002360200200041386a280200220420024d0d03200141e4006a41026a200041306a220e280200200241fc006c6a220241036a2d00003a0000200141c0006a41086a220d200241206a290000370300200141c0006a41106a200241286a290000370300200141c0006a41186a200241306a290000370300200120022f00013b01642001200229001837034020022800082106200228000c21042002290010210f20022800442103200229003c211020022800402111200228003c210820022800382112200241046a220b280000210920022d0000210a200b4100360200200241003a0000200141286a41106a220b200241d8006a280000360200200141286a41086a2213200241d0006a290000370300200141086a41086a2214200241e4006a290000370300200141086a41106a2215200241ec006a290000370300200141086a41186a2216200241f4006a290000370300200120022900483703282001200229005c370308200a4101470d02200241016a220a2f000021172000280254220241026a200a41026a2d00003a0000200220173b00002002200f37000f2002200436000b2002200636000720022009360003200220012903403700172002411f6a200d2d00003a0000200141ec016a200141dc006a280200360200200141e4016a200141d4006a2902003702002001200129024c3702dc0120014180026a2001290328370300200141b8016a41d0006a2013290300370300200141b8016a41d8006a200b28020036020020014194026a2001290308370200200141b8016a41e4006a2014290300370200200141b8016a41ec006a2015290300370200200141b8016a41f4006a20162903003702002001200141e4006a41026a2d00003a00bb01200120012f01643b00b901200141b8016a41106a200f370300200141c4016a2004360200200141b8016a41206a200d2d00003a0000200141b8016a41186a2001290340370300200141fc016a2003360200200141f4016a2010370200200141f0016a2012360200200141b8016a41086a2006360200200120093602bc01200141013a00b8012000200e200141b8016a10b30136025c200041003a00580c0f0b200241506a280200210a200241b07f6a2202290200210f200241086a2902002110200241106a2902002118200141c8026a41186a2213200241186a290200370300200141c8026a41106a22142018370300200141c8026a41086a221520103703002001200f3703c8022002290025210f2002412d6a2900002110200241356a29000021182002413d6a2900002119200241c5006a290000211a200241cd006a2f00002116200c200241cf006a2d00003a0000200141e8006a41286a20163b0100200141e8006a41206a2202201a370300200141e8006a41186a22162019370300200141e8006a41106a22172018370300200141e8006a41086a221220103703002001200f37036820014198036a41186a201329030037030020014198036a41106a201429030037030020014198036a41086a2015290300370300200120012903c802370398032001200e3a00bc012001200a3602b801200b2001290368370000200b41086a2012290300370000200b41106a2017290300370000200b41186a2016290300370000200b41206a2002290300370000200b41276a200141e8006a41276a280000360000200028024c21022000280250210e02400240200a4125490d0020012802c401210a20012802c00121130c010b200b21130b200120012f01e4013b01f8022001200a3602f402200120133602f002200220014198036a200141f0026a200e28021c110400024020012802b8014125490d0020012802c00110300b200d21022006210a0c000b0b2001410036029401200141003a006c200141003602680240024002400240024020090e050102030400010b200141b8016a41086a200f370300200141b8016a41106a2001290340370300200141b8016a41186a200141c0006a41086a290300370300200141d8016a200141c0006a41106a290300370300200141e0016a200141c0006a41186a290300370300200120063602b801200120043602bc010240024020044125490d00200f422088a7210920012802c80121040c010b200141c1016a21090b20064101762102024002402006410171450d00200420024d0d084101210d200920026a2d0000410f71210b200241016a21020c010b20042002490d064100210b4100210d0b200420026b210a200920026a2102200441017420066b2104024002402010a72206450d00200141a5036a200b3a0000200141a0036a200a3602002001200d3a00a4032001200236029c032001410036029803200141b8026a20014198036a2004410210b401200821090c010b200141a5036a200b3a0000200141a0036a200a3602002001200d3a00a4032001200236029c03410021092001410036029803200141b8026a20014198036a2004410110b4010b20012802c002221b21020240024002400240201b20012802bc02470d00201b41016a2202201b490d16201b41017422042002200420024b1b22024108200241084b1b210202400240201b0d0020014100360298030c010b20014198036a41086a41013602002001201b36029c03200120012802b802360298030b200141c8026a2002410120014198036a1069200141d0026a280200210220012802c8024101460d0120012802cc022104200120023602bc02200120043602b80220012802c00221020b20012802b80220026a41003a0000200120012802c00241016a22023602c002200220012802bc02470d02200241016a220420024f0d010c150b2002450d140c130b2002410174220d2004200d20044b1b22044108200441084b1b21040240024020020d0020014100360298030c010b20014198036a41086a41013602002001200236029c03200120012802b802360298030b200141c8026a2004410120014198036a1069200141d0026a280200210220012802c8024101460d0f20012802cc022104200120023602bc02200120043602b80220012802c00221020b20012802b80220026a41003a0000200120012802c00241016a3602c00202402006450d0020092003200141b8026a10a6010b201241c0046a210720014198036a4101722104200141b8016a41096a211c4100210b200141f0026a411f6a2115200141f0026a41186a210e200141f0026a41106a2113200141f0026a41086a211420122102410021034101210d0240034020022d00002106200241023a0000024020064103470d0020034180fe037141087621040c020b2015200241206a280000360000200e200241196a2900003703002013200241116a2900003703002014200241096a2900003703002001200241016a2900003703f00202400240024002400240024020064102470d00200141023a00c8020c010b0240024020012802bc01220a4125490d0020012802c801210a20012802c40121170c010b201c21170b20012802b80122164101762109024002402016410171450d00200a20094d0d1141012105201720096a2d0000410f71210c200941016a21090c010b200a2009490d0f410021054100210c0b2001200c3a009903200120053a0098032001200a20096b3602a0032001201720096a36029c03200141e8006a20014198036a10b501200141e8006a200b10b601200420012903f002370000200441086a2014290300370000200441106a2013290300370000200441186a200e2903003700002004411f6a2015280000360000200120063a009803200141c8026a200020014198036a200141e8006a10b701200141e8006a200a41017420166b41016a10b80120012d00c8024103460d010b20014198036a41206a200141c8026a41206a29030037030020014198036a41186a200141c8026a41186a29030037030020014198036a41106a200141c8026a41106a29030037030020014198036a41086a200141c8026a41086a290300370300200120012903c802220f37039803410021060240200fa741ff0171417f6a0e020004020b200e200441186a2900003703002013200441106a2900003703002014200441086a290000370300200120042900003703f00220012802bc03220641214f0d0f200141f0026a2006200141b8026a10a6010c020b20034180fe037141087621040c040b20044120200141b8026a10a6010b200d21060b200b41016a210b200d410174210d20062003722103200241246a22022007470d000b20034180fe037141087621040b201b41026a2102201b417e4f0d0a20012802c00222062002490d0b20012802b802201b6a2004410874200341ff0171723b000002402008450d002011450d00200810300b2012103020012802bc014125490d0f20012802c40110300c0f0b4101102f2202450d10200141013602bc02200120023602b802200241003a0000200141013602c0020c0e0b200141b8016a41086a200f370300200141b8016a41106a2001290340370300200141b8016a41186a200141c0006a41086a290300370300200141d8016a200141c0006a41106a290300370300200141e0016a200141c0006a41186a290300370300200120063602b801200120043602bc010240024020044125490d00200f422088a7210920012802c80121040c010b200141c1016a21090b20064101762102024002402006410171450d00200420024d0d0d200141013a009803200141a0036a2004200241016a22066b3602002001200920066a36029c032001200920026a2d0000410f713a0099030c010b20042002490d0b200141a0036a200420026b360200200141003b0198032001200920026a36029c030b200141b8026a20014198036a20122010422088a710b90102402010a7450d00201210300b20012802bc014125490d0d200141c4016a28020010300c0d0b200141b8016a41086a200f370300200141b8016a41106a2001290340370300200141b8016a41186a200141c0006a41086a290300370300200141d8016a200141c0006a41106a290300370300200141e0016a200141c0006a41186a290300370300200120063602b801200120043602bc010240024020044125490d00200f422088a7210220012802c80121040c010b200141c1016a21020b200120063602c002200120043602bc02200120023602b802200141f0026a200141b8026a10ba01200141e8006a200141b8026a4100200210bb012102200141d4026a2003360200200141c8026a41106a2001290328370300200141e0026a200141306a290300370300200141e8026a200141286a41106a280200360200200120103702cc02200120123602c80220014198036a2000200141c8026a200141e8006a10b701200141e8006a200210b80110bc01000b10bd01000b2002200441acf0c1001033000b2002200441e097c200104a000b2002200441f097c2001033000b2009200a41e097c200104a000b2009200a41f097c2001033000b2006412041908ec1001042000b201b200241a08ec1001048000b2002200641a08ec1001042000b2002200441e097c200104a000b2002200441f097c2001033000b2002450d030c020b200028024c21022000280250210420014198036a41086a41002802b8f541360200200141002902b0f54137039803200141b8016a200220014198036a20012802b80220012802c00220042802141107002000280254220220012903b801370000200241186a200141b8016a41186a290300370000200241106a200141b8016a41106a290300370000200241086a200141b8016a41086a2903003700002000200028027c41016a36027c2000280254220241186a290000210f200241106a2900002110200241086a2900002118200041d9006a2002290000370000200041013a0058200041e1006a2018370000200041e9006a2010370000200041f1006a200f370000024020012802bc02450d0020012802b80210300b20012802684125490d00200141f0006a28020010300b0240200041386a2802002204450d0020002802302102200441fc006c210403400240024020022d00000d00200241046a10be010c010b200241246a10be010b200241fc006a2102200441847f6a22040d000b0b0240200041346a2802002202450d00200241fc006c450d00200028023010300b200041c8006a2802002102024002400240200041c0006a28020022042000413c6a2802002206490d00200220044f0d012004200241e8adc0001042000b20022006490d010b0240200241ffffffff0371450d00200041c4006a28020010300b024020002802202206450d0002402000412c6a280200450d00200041246a280200220441046a2102200620046a41016a21092004280200417f73418081828478712106024003400240024020060d000340200220094f0d04200441c07d6a210420022802002106200241046a220d21022006418081828478712206418081828478460d000b2006418081828478732206417f6a200671210b200d21020c010b2006417f6a200671210b0b200668210d200b210620044100200d4103766b41d0006c6a220d41506a2802004125490d00200d41586a2802001030200b21060c000b0b200028022021060b200041246a280200200641016aad42d0007ea76b10300b200141c0036a24000f0b41f8adc0004123419caec000102d000b102a000b102c000beb0201067f230041206b220124000240024002402000410c6a28020022022002417f6a200041046a28020020002802006b716b4101470d00200221030240024002402002450d00200220026a22032002490d04200141106a41086a4104360200200120024102743602142001200028020836021020012003410274200341ffffffff0371200346410274200141106a1069200141086a280200210320012802004101460d01200020012802043602082000410c6a200341027622033602000b20032002410174470d0420002802002204200041046a28020022054d0d022005200220046b22064f0d01200041086a280200220320024102746a200320054102741085051a200041046a2200200028020020026a3602000c020b2003450d02102a000b200041086a2802002202200320066b22034102746a200220044102746a20064102741085051a200020033602000b200141206a24000f0b102c000b41d0f5c000412b41fcf5c000102d000bdf0302047f017e230041a0016b2202240002400240024002402000410c6a22032802002204200041106a280200470d002002200141fc0010850521040240024020002802082201200041046a280200470d00200141016a22032001490d04200141017422052003200520034b1b22034104200341044b1bad42fc007e2206422088a74541027421032006a721050240024020010d0020044100360290010c010b20044198016a41043602002004200141fc006c3602940120042000280200360290010b20044180016a2005200320044190016a106920044188016a28020021012004280280014101460d012000200428028401360200200041046a200141fc006e360200200028020821010b2000280200200141fc006c6a200441fc001085051a20002000280208220441016a3602080c020b2001450d02102a000b2003200041186a280200417f6a200441016a71360200200041146a28020020044102746a28020021042002200141fc0010850521012000280208220320044d0d020240024020002802002200200441fc006c6a22032d00000d002000200441fc006c6a41046a10be010c010b2000200441fc006c6a41246a10be010b2003200141fc001085051a0b200241a0016a240020040f0b102c000b2004200341bcf0c1001033000bbd0701077f230041206b2204240002400240200241ffff03200241ffff03491b220541017641036a2206102f2207450d0020002007360200200041086a4100360200200041046a20063602002002413e2005413e491b210202400240200341ff01714102460d00200541807f7341bf7f20052002461b2106200520026b210341012105034002400240200541ff01714102460d0020054101712102410021052002450d00200621020c010b2003450d030240200341ff014b0d002003417f6a210241022105410021030c010b200341817e6a210341ff012102410221050b200420023a00102000200441106a410110640c000b0b200541406a417f20052002461b2106200520026b210341012105034002400240200541ff01714102460d0020054101712102410021052002450d00200621020c010b2003450d020240200341ff014b0d002003417f6a210241022105410021030c010b200341817e6a210341ff012102410221050b200420023a00102000200441106a410110640c000b0b200141086a2802002102200128020421032001280200210502400240024020012d000c0d00200520024f0d01200220056b2106200320056a2103200041046a22082802002102200041086a220728020021050240034020032d00002101024020052002470d0020022002470d00200241016a22092002490d072002410174220a2009200a20094b1b22094108200941084b1b21090240024020020d00200441003602100c010b2004410136021820042002360214200420002802003602100b200420094101200441106a10692004280208210220042802004101460d0220002004280204360200200820023602000b200028020020056a20013a00002007200541016a2205360200200341016a21032006417f6a22060d000c030b0b20020d030c040b200320056a210620022005200220054b1b20056b21032001410d6a2d0000410f712101200041046a22082802002102200041086a220728020021050340024020052002470d0020022002470d00200241016a22092002490d052002410174220a2009200a20094b1b22094108200941084b1b21090240024020020d00200441003602100c010b2004410136021820042002360214200420002802003602100b200420094101200441106a10692004280208210220042802004101460d0320002004280204360200200820023602000b200028020020056a20013a00002007200541016a22053602002003450d012003417f6a210320062d00002101200641016a21060c000b0b200441206a24000f0b2002450d010b102a000b102c000bd208010d7f230041106b22022400200141086a280200210320012802042104024020012d00004101470d00200020012d0001410f7110b6010b02400240200028020022014125490d002000410c6a28020021050c010b200121050b02400240024002400240024002402005410174200028022c470d00024020014125490d002000410c6a28020021010b20022000200310bd02024020022802004101470d00200241086a2802000d0341d099c200411141e499c200102d000b02400240200028020022054125490d002000410c6a28020022052001490d07200041086a28020021060c010b20052001490d06200041056a21060b200620016a220620036a2006200520016b1086051a2006200420031085051a0240024020002802004125490d002000410c6a21010c010b200021010b2001200520036a3602000c010b0240024020014125490d002000410c6a28020021050c010b200121050b2003450d002005417f6a21050240024020014125490d002000410c6a2207280200220120054d0d07200041086a220828020020056a2d0000417071210620072802002101200828020021070c010b200120054d0d06200041056a220720056a2d000041707121060b200120054d0d02200720056a20063a000002400240200028020022014125490d002000410c6a2802002101200041086a28020021060c010b200041056a21060b200120054d0d03200620056a220120012d000020042d0000410476723a000002402003417f6a2209450d002000410c6a210a200041056a210b20034101200341014b1b417f6a210c410021010340024002400240024020032001460d00200c2001460d01200420016a220d41016a210e02400240200028020022074125490d00200028020c210520002802082108200a21060c010b2007210520002106200b2108412421070b200d2d0000210d200e2d0000210e20052007470d0320022000410110bd0220022802004101470d02200241086a2802000d0741d099c200411141e499c200102d000b2003200341c097c2001033000b200141016a200341d097c2001033000b200028020c210520002802082108200a21060b200820056a200d410474200e411874411c76723a00002006200628020041016a3602002009200141016a2201470d000b0b200420096a210802400240200028020022064125490d002000410c6a22052802002101200041086a28020021070c010b200041056a21072006210120002105412421060b20082d00002108024020012006470d0020022000410110bd02024020022802004101470d00200241086a2802000d0341d099c200411141e499c200102d000b2000410c6a22052802002101200041086a28020021070b200720016a20084104743a00002005200528020041016a3602000b2000200028022c20034101746a36022c200241106a24000f0b102a000b2005200141a097c2001033000b2005200141b097c2001033000b41f49ac200411e41949bc200102d000b20052001419097c2001033000bc00201057f230041106b22022400024002400240024020002d002c4101710d0002400240200028020022034125490d002000410c6a22042802002105200041086a28020021060c010b200041056a21062003210520002104412421030b024020052003470d0020022000410110bd02024020022802004101470d00200241086a2802000d0441d099c200411141e499c200102d000b2000410c6a22042802002105200041086a28020021060b200620056a20014104743a00002004200428020041016a3602000c010b02400240200028020022054125490d002000410c6a2802002105200041086a28020021040c010b200041056a21040b2004450d022005450d02200520046a417f6a220520052d00002001723a00000b2000200028022c41016a36022c200241106a24000f0b102a000b41e494c200413a41a095c2001050000be11905067f017e037f017e067f230041e0026b220424002004200336020c20042001360208024002400240024002400240024002400240024002400240024002400240024020022d00004101460d00200241046a28020021020240200141c8006a220528020022032003417f6a2206200141c0006a220728020022032001413c6a22082802006b716b4101470d00200810b2012005280200417f6a2106200728020021030b20072006200341016a71360200200141c4006a28020020034102746a2002360200200141386a280200220320024d0d02200441106a2001280230200241fc006c6a220141fc001085051a200141046a4100360200200141003a000020042d001022094101460d01200441d4006a2802002107200441cc006a2201290200210a200441d0006a280200210b2001280200210c200441c8006a280200210d200441106a41086a2802002102200428021421062004200441086a3602a40120042004410c6a3602a001200441106a41186a2101200441106a410c6a21030240024002400240024020060e050102030400010b200441a8016a41106a2001290200370300200441a8016a410c6a200341086a280200360200200441a8016a41186a200141086a290200370300200441c8016a200141106a290200370300200441d0016a200141186a290200370300200420023602a80120042003290200220e3702ac0102400240200ea722034125490d00200441b4016a280200210620042802b80121030c010b200441b1016a21060b20024101762101024002402002410171450d00200320014d0d0a41012105200620016a2d0000410f712108200141016a21010c010b20032001490d0841002108410021050b200320016b210f200620016a2101200341017420026b210202400240200aa72203450d00200441a5026a20083a0000200441a0026a200f360200200420053a00a4022004200136029c02200441003602980220044190016a20044198026a2002410210b401200c21060c010b200441a5026a20083a0000200441a0026a200f360200200420053a00a4022004200136029c0241002106200441003602980220044190016a20044198026a2002410110b4010b20042802980122102102024002400240024020102004280294012201470d00201041016a22012010490d17201041017422022001200220014b1b22014108200141084b1b21010240024020100d0020044100360298020c010b20044198026a41086a41013602002004201036029c022004200428029001360298020b200441f0016a2001410120044198026a1069200441f8016a280200210120042802f0014101460d0120042802f40121022004200136029401200420023602900120042802980121020b200428029001220520026a41003a00002004200241016a22023602980120022001470d02200141016a220220014f0d010c160b2001450d150c140b200141017422012002200120024b1b22014108200141084b1b21010240024020042802940122020d0020044100360298020c010b20044198026a41086a41013602002004200236029c0220042005360298020b200441f0016a2001410120044198026a1069200441f8016a280200210120042802f0014101460d0f20042802f40121022004200136029401200420023602900120042802980121020b200d41c0046a210120042802900120026a41003a00002004200241016a3602980102402003450d002006200720044190016a10a6010b200420013602dc01200441d8016a41106a200441a0016a360200200420044190016a3602ec012004200441a8016a3602e40120044198026a410172210f200441e4016a21114100210620044198026a410572220541086a2112200541186a21132005411f6a211441012102410021084101210702400340200d20066a22012d00002103200141023a00002004200141246a3602d801024020034103470d0020084180fe037141087621020c020b200420023602e0012005200141016a2900003700002012200141096a290000370000200541106a200141116a2900003700002013200141196a2900003700002014200141206a280000360000200420033a009c0220042002417f6a36029802200441f0016a201120044198026a10a804024002400240024020042d00f0014103460d0020044198026a41206a200441f0016a41206a29030037030020044198026a41186a200441f0016a41186a29030037030020044198026a41106a200441f0016a41106a29030037030020044198026a41086a200441f0016a41086a290300370300200420042903f001220a37039802410021010240200aa741ff0171417f6a0e020004020b200441c0026a41186a200f41186a290000370300200441c0026a41106a200f41106a290000370300200441c0026a41086a200f41086a2900003703002004200f2900003703c00220042802bc02220141214f0d0f200441c0026a200120044190016a10a6010c020b20084180fe037141087621020c040b200f412020044190016a10a6010b200721010b200241016a21022007410174210720012008722108200641246a220641c004470d000b20084180fe037141087621020b201041026a21012010417e4f0d0a20042802980122032001490d0b20042802900120106a2002410874200841ff0171723b00000240200c450d00200b450d00200c10300b200d103020042802ac014125490d0f200441b4016a28020010300c0f0b4101102f2201450d1120044101360294012004200136029001200141003a000020044101360298010c0e0b200441a8016a41106a2001290200370300200441a8016a410c6a200341086a280200360200200441a8016a41186a200141086a290200370300200441c8016a200141106a290200370300200441d0016a200141186a290200370300200420023602a80120042003290200220e3702ac0102400240200ea722034125490d00200441b4016a280200210620042802b80121030c010b200441b1016a21060b20024101762101024002402002410171450d00200320014d0d0d200441013a009802200441a0026a2003200141016a22026b3602002004200620026a36029c022004200620016a2d0000410f713a0099020c010b20032001490d0b200441a0026a200320016b360200200441003b0198022004200620016a36029c020b20044190016a20044198026a200d200a422088a710b9010240200aa7450d00200d10300b20042802ac014125490d0d200441b4016a28020010300c0d0b200441a8016a41106a2001290200370300200441a8016a410c6a200341086a280200360200200441a8016a41186a200141086a290200370300200441c8016a200141106a290200370300200441d0016a200141186a290200370300200420023602a80120042003290200220e3702ac0102400240200ea722014125490d00200441b4016a280200210020042802b80121010c010b200441b1016a21000b200420023602e001200420013602dc01200420003602d801200441c0026a200441d8016a10ba0120042802a001280200200441d8016a4100200410bb01210120042802a4012802002100200441fc016a200736020020044180026a200441d8006a29030037030020044188026a200441e0006a29030037030020044190026a200441e8006a2802003602002004200a3702f4012004200d3602f00120044198026a2000200441f0016a20042802a00128020010b70120042802a001280200200110b80110bc01000b10bd01000b200041003a000020002002290001370001200041196a200241196a290000370000200041116a200241116a290000370000200041096a200241096a2900003700000c0c0b20002004290011370001200041003a0000200041196a200441106a41196a290000370000200041116a200441106a41116a290000370000200041096a200441106a41096a2900003700000c0a0b2002200341acf0c1001033000b2001200341e097c200104a000b2001200341f097c2001033000b2001412041908ec1001042000b2010200141a08ec1001048000b2001200341a08ec1001042000b2001200341e097c200104a000b2001200341f097c2001033000b2001450d040c030b024002402004280298012201411f4d0d002004280208220141d0006a2802002102200128024c2101200441a8016a200428020c10b902200041016a2001200441a8016a2004280290012004280298012002280214110700200041003a000020042802082201200128027c41016a36027c0c010b200441c0016a22024200370300200441b8016a22034200370300200441b0016a22064200370300200442003703a801200441a8016a20042802900120011085051a200041246a2001360200200041013a0000200041196a2002290300370000200041116a2003290300370000200041096a2006290300370000200020042903a8013700010b0240200428029401450d0020042802900110300b2009450d010b200441346a10be010b200441e0026a24000f0b102a000b102c000bb00301057f0240024002402001450d000240200028022c220220014b0d0002400240200028020022014125490d002000410c6a220228020021010c010b200021020b02402001450d00200241003602000b2000410036022c0f0b200220016b2203410176200341017122046a210202400240200028020022014125490d002000410c6a28020021050c010b200121050b0240200220054f0d002000410c6a2106200220056b41016a210203400240024020014125490d0020062802002101200621050c010b200021050b02402001450d0020052001417f6a3602000b2002450d01200241016a2102200028020021010c000b0b2000200336022c2004450d0002400240200028020022014125490d002000410c6a28020021020c010b200121020b2002417f6a21020240024020014125490d002000410c6a2205280200220120024d0d04200041086a220628020020026a2d0000417071210020052802002101200628020021050c010b200120024d0d03200041056a220520026a2d000041707121000b200120024d0d01200520026a20003a00000b0f0b2002200141d096c2001033000b2002200141c096c2001033000be90501087f230041206b22042400024002400240200141086a280200220541036a2206417f4c0d0020012d000021072001280204210820012d000121094101210102402006450d002006102f2201450d020b20002001360200200041086a4100360200200041046a2006360200200541017420076a220641ffff03200641ffff03491b220141c0006a41ff0020012006413e2001413e491b2206461b210a200120066b2106410121010240034002400240200141ff01714102460d002001410171450d0041002101200a210b0c010b2006450d020240200641ff014b0d002006417f6a210b41022101410021060c010b200641817e6a210641ff01210b410221010b2004200b3a00102000200441106a410110640c000b0b024002400240024020070d00200041046a2802002106200041086a28020021010c010b0240200041086a220a280200220b200041046a2802002206470d00200b41016a2201200b490d04200b41017422062001200620014b1b22014108200141084b1b210102400240200b0d00200441003602100c010b200441106a41086a41013602002004200b360214200420002802003602100b200420014101200441106a10b402200441086a280200210620042802004101460d0220002004280204360200200041046a20063602000b200a200b41016a22013602002000280200200b6a2009410f713a00000b200620016b2005490d01200028020021060c040b2006450d010c020b200120056a220b2001490d002006410174220a200b200a200b4b1b220b4108200b41084b1b210b0240024020060d00200441003602100c010b200441106a41086a410136020020042006360214200420002802003602100b2004200b4101200441106a10b402200441086a280200210b024020042802004101460d00200020042802042206360200200041046a200b3602000c030b200b0d010b102c000b102a000b200620016a200820051085051a200041086a200120056a36020020022003200010a601200441206a24000bb80101057f2001280208220241017621032001280204210402400240024002402002410171450d00200420034d0d034101210220012802002205200341016a22066a2101200520036a2d0000410f712105200621030c010b20042003490d01200128020020036a210141002105410021020b200020023a000c20002001360204200041003602002000410d6a20053a0000200041086a200420036b3602000f0b2003200441e097c200104a000b2003200441f097c2001033000bf90101057f230041106b22042400024002400240024020010d00410021010c010b200141086a2802002205410176210620012802042107024002402005410171450d00200720064d0d04200441013a0000200441086a2007200641016a22086b36020020042001280200220120086a3602042004200120066a2d0000410f713a00010c010b20072006490d02200441086a200720066b360200200441003b01002004200128020020066a3602040b2000200410b501200741017420056b21010b02402002450d002000200310b601200141016a21010b200441106a240020010f0b2006200741e097c200104a000b2006200741f097c2001033000b110041d8a5c200412841808ec100102d000b110041d8a5c200412841f08dc100102d000bcd0101017f0240024002400240024020002802000e0404000102030b0240200041086a2802004125490d00200041106a28020010300b200041386a280200450d03200041346a28020010300f0b200041086a2802004125490d02200041106a28020010300f0b20002802041030200041086a2802002201450d012000410c6a280200450d01200110300c010b0240200041086a2802004125490d00200041106a28020010300b200041346a2802001030200041386a2802002201450d002000413c6a280200450d00200110300f0b0b950201067f024020002802202201450d0002402000412c6a280200450d00200041246a280200220241046a2103200120026a41016a21042002280200417f73418081828478712101024003400240024020010d000340200320044f0d04200241c07e6a210220032802002101200341046a220521032001418081828478712201418081828478460d000b2001418081828478732201417f6a2001712106200521030c010b2001417f6a20017121060b2001682105200621012002410020054103766b41306c6a220541746a280200450d00200541706a2802001030200621010c000b0b200028022021010b200041246a280200200141016aad42307ea76b10300b0240200041346a280200450d00200028023010300b0b940101037f230041206b22042400200141086a280200210520012802042106200441106a41086a200341086a28020036020020042003290200370310200420062005200441106a10c10120012802002101200420042f010c3b011820042004280208360214200420042802002203360210200020012002200441106a10c20102402004280204450d00200310300b200441206a24000b930101037f0240024002402003280204220420026a2205417f4c0d000240024020050d00410121060c010b2005102f2206450d022006410020051087051a0b20052002490d02200620012002108505220620026a200328020020041085051a200020053602082000200536020420002006360200200020032f01083b010c0f0b102c000b102a000b2002200541a490c2001042000bba0401047f230041206b22042400024002400240024002400240200220012802042205413c6a41201088050d00200541386a2802002206417f4c0d0220052802302105024020060d00410121074101200520061085051a0c020b2006102f2207450d032007200520061085051a0c010b200441186a200241186a290000370300200441106a200241106a290000370300200441086a200241086a290000370300200420022900003703004100210702402005200410d30122050d000c010b0240200528020c41014e0d000c010b20052802082206417f4c0d01200528020021050240024020060d00410121070c010b2006102f2207450d030b2007200520061085051a0b024020070d000240200220012802002207413c6a41201088050d00200741386a2802002202417f4c0d02200728023021070240024020020d00410121060c010b2002102f2206450d040b2006200720021085051a0c040b200441186a200241186a290000370300200441106a200241106a290000370300200441086a200241086a290000370300200420022900003703004100210602402007200410d30122070d000c040b0240200728020c41014e0d000c040b20072802082202417f4c0d0120072802002107024020020d00410121064101200720021085051a0c040b2002102f2206450d022006200720021085051a0c030b2000200636020420002007360200200041086a20063602000c030b102c000b102a000b2000200236020420002006360200200041086a20023602000b200441206a24000b960101037f230041206b22032400200041086a280200210420002802042105200341106a41086a200241086a28020036020020032002290200370310200320052004200341106a10c10120002802002100200320032f010c3b01182003200328020836021420032003280200220236021020002001200341106a10c401210002402003280204450d00200210300b200341206a240020000b9f0401047f230041206b220324000240024002400240200120002802042204413c6a41201088050d00200441386a2802002205417f4c0d0220042802302104024020050d00410121064101200420051085051a0c020b2005102f2206450d032006200420051085051a0c010b200341186a200141186a290000370300200341106a200141106a290000370300200341086a200141086a290000370300200320012900003703004100210602402004200310d30122040d000c010b0240200428020c41014e0d000c010b20042802082205417f4c0d01200428020021040240024020050d00410121060c010b2005102f2206450d030b2006200420051085051a0b0240024020060d0002400240200120002802002200413c6a41201088050d00200041386a2802002205417f4c0d0420002802302101024020050d00410121064101200120051085051a0c020b2005102f2206450d052006200120051085051a0c010b200341186a200141186a290000370300200341106a200141106a290000370300200341086a200141086a290000370300200320012900003703004100210602402000200310d30122010d000c010b0240200128020c41014e0d000c010b20012802082205417f4c0d03200128020021010240024020050d00410121060c010b2005102f2206450d050b2006200120051085051a0b20060d00410021060c010b2005450d00200610300b200341206a240020064100470f0b102c000b102a000b7301037f230041206b22052400200141086a280200210620012802042107200541106a41086a200241086a28020036020020052002290200370310200520072006200541106a10c101200020012802002802042003200410c60102402005280204450d00200528020010300b200541206a24000bab0301057f230041d0006b22042400024002402003417f4c0d000240024002400240024002402003450d002003102f22050d010c070b410121054101200220031085051a200141386a2802002003460d010c030b2005200220031085052106200141386a2802002003470d010b200520012802302003108805210602402003450d00200510300b20060d012000200129003c370000200041186a200141d4006a290000370000200041106a200141cc006a290000370000200041086a200141c4006a2900003700000c020b200610300b2004200220031065200441206a41186a200441186a2206290000370300200441206a41106a200441106a2207290000370300200441206a41086a200441086a2208290000370300200420042900003703200240024020030d00410121050c010b2003102f2205450d030b20042003360244200420053602402005200220031085051a200420033602482001200441206a200441c0006a10c801200041186a2006290000370000200041106a2007290000370000200041086a2008290000370000200020042900003700000b200441d0006a24000f0b102c000b102a000bd90101047f230041c0006b22042400200041086a280200210520002802042106200441106a41086a2207200241086a28020036020020042002290200370310200420062005200441106a10c10120002802002802042100200441106a41186a200141186a290000370300200441106a41106a200141106a2900003703002007200141086a29000037030020042001290000370310200441306a41086a200341086a280200360200200420032902003703302000200441106a200441306a10c80102402004280204450d00200428020010300b200441c0006a24000be50301047f23004180016b220324000240024020022802082204200041386a280200470d0020022802002205200028023020041088050d00200241046a280200450d01200510300c010b200341c0006a41186a2204200141186a290000370300200341c0006a41106a2205200141106a290000370300200341c0006a41086a2206200141086a2900003703002003200129000037034020032000200341c0006a10ca01024020032903004201520d00200341c0006a41286a200341306a290300370300200341c0006a41206a200341286a2903003703002004200341206a2903003703002005200341186a2903003703002006200341106a29030037030020032003290308370340200341f0006a41086a200241086a2802003602002003410136027c20032002290200370370200341c0006a200341f0006a10cb010c010b0240200341106a2802002204417c6a2201280200220041004a0d00200441706a2105200341c0006a41086a2206200241086a280200360200200320022902003703400240200441746a280200450d0020052802001030200128020021000b20052003290340370200200541086a20062802003602002001200041016a3602000c010b2001200041016a360200200241046a280200450d00200228020010300b20034180016a24000b980301037f23004190016b22032400200041086a280200210420002802042105200341106a41086a200241086a28020036020020032002290200370310200320052004200341106a10c1010240200120002802002802042200413c6a4120108805450d00200341d0006a41186a2202200141186a290000370300200341d0006a41106a2204200141106a290000370300200341d0006a41086a200141086a29000037030020032001290000370350200341106a2000200341d0006a10ca01024020032903104201520d00200341d0006a41286a200341c0006a290300370300200341d0006a41206a200341106a41286a2903003703002002200341106a41206a2903003703002004200341106a41186a290300370300200341d8006a200341106a41106a290300370300200320032903183703502003417f36028c012003420037028401200341002802dc944236028001200341d0006a20034180016a10cb010c010b200341106a41106a280200417c6a22012001280200417f6a3602000b02402003280204450d00200328020010300b20034190016a24000b840503017f047e0a7f230041306b22032400200341206a20012903182001290308852204200241186a29000085420020012903102205200129030022068522072002290010854200108405200341106a2004200241086a2900008542002007200229000085420010840520032005420020052005200642adfed5e4d485fda8d8007e200341206a41086a2903002003290320857c42a0cbbf9599b5a19f0a7c85421789200341106a41086a2903002003290310857c8542178922044200108405200141246a2802002208200141206a2802002209200341086a2903002003290300852004892205a7220a71220b6a280000220c200a41197641818284086c220d73220a417f73200a41fffdfb776a7141808182847871210e200b41046a200971210f4104211002400340200f210a0240200e0d000240200c200c41017471418081828478710d00200d2008200a6a280000220c73220e417f73200e41fffdfb776a7141808182847871210e2009200a20106a41046a71210f201041046a2110200a210b0c020b2000200537030820004201370300200041106a2001360200200041146a20022900003700002000411c6a200241086a290000370000200041246a200241106a2900003700002000412c6a200241186a2900003700000c020b200e682111200a210f200e417f6a200e71210e200841002009200b20114103766a716b41306c6a220a41506a200241201088050d000b2000200537030820004200370300200041186a41013a0000200041146a2001360200200041106a200a360200200041196a2002290000370000200041216a200241086a290000370000200041296a200241106a290000370000200041316a200241186a2900003700000b200341306a24000bde0403027f017e067f230041d0006b2202240020022000280208220336020c20002903002104200241286a200041246a290200370300200241206a2000411c6a290200370300200241106a41086a200041146a290200370300200241386a200141086a2902003703002002200029020c37031020022001290200370330200341206a2105200328022022062004a72207712101200341246a28020021084104210003402001220920006a2006712101200041046a2100200820096a28000041808182847871220a450d000b02402008200a6841037620096a20067122006a2c000022014100480d0020082008280200418081828478716841037622006a2d000021010b200341286a280200210902402001410171220a450d0020090d00200241c0006a20052002410c6a108002200328022022062007712101200341246a28020021084104210003402001220920006a2006712101200041046a2100200820096a280000418081828478712205450d000b0240200820056841037620096a20067122006a2c00004100480d002008280200418081828478716841037621000b200328022821090b20032009200a6b360228200820006a200741197622013a000020062000417c6a7120086a41046a20013a00002008410020006b41306c6a41506a220041286a200241106a41286a290300370200200041206a200241106a41206a290300370200200041186a200241106a41186a290300370200200041106a200241106a41106a290300370200200041086a200241106a41086a290300370200200020022903103702002003200328022c41016a36022c200241d0006a24000b130020004180a3c000360204200020013602000b130020004180a3c000360204200020013602000bd128030f7f017e047f230041e0016b220124002001420037020c200141286a200141086a10cf01200141e0006a41186a200141286a41186a2802002202360200200141e0006a41106a200141286a41106a290300370300200141e0006a41086a200141286a41086a290300370300200120012903283703600240024020020d00410021030c010b20012002417f6a2204360278200141e0006a410020012802641b220528020021060240024020052802082207200528020422022f018e024f0d00200221080c010b03400240200228020022080d00410021080c020b200641016a210620022f018c02210720082102200720082f018e024f0d000b0b024002402006450d00200741027420086a4194026a280200210202402006417f6a2206450d00034020022802900221022006417f6a22060d000b0b410021060c010b200741016a2106200821020b20052002360204200541003602002005200636020820082007410c6c6a41046a2102410021030340200228020820036a21032004450d0120012004417f6a2204360278200141e0006a410020012802641b220528020021060240024020052802082207200528020422022f018e024f0d00200221080c010b03400240200228020022080d00410021080c020b200641016a210620022f018c02210720082102200720082f018e024f0d000b0b024002402006450d00200741027420086a4194026a280200210202402006417f6a2206450d00034020022802900221022006417f6a22060d000b0b410021060c010b200741016a2106200821020b20052002360204200541003602002005200636020820082007410c6c6a41046a21020c000b0b41012108024020034101742202417f4c0d00024002402002450d002002102f2208450d010b200141003602202001200236021c200120083602184104102f2209450d0020094100360200200141286a200141086a10cf01200141e0006a41186a200141286a41186a2802002202360200200141e0006a41106a200141286a41106a290300370300200141e0006a41086a200141286a41086a29030037030020012001290328370360024002400240024020020d00410021084101210a410121030c010b20012002417f6a360278200141e0006a410020012802641b220528020021060240024020052802082207200528020422022f018e024f0d00200221080c010b03400240200228020022080d00410021080c020b200641016a210620022f018c02210720082102200720082f018e024f0d000b0b024002402006450d00200741027420086a4194026a280200210202402006417f6a2206450d00034020022802900221022006417f6a22060d000b0b410021060c010b200741016a2106200821020b20052002360204200541003602002005200636020820082007410c6c6a41046a2102410121034101210a034002400240200228020822070d00200128022021020c010b20022802002108200128022021020240034020082d0000210602402002200128021c470d00200241016a22052002490d09200241017422042005200420054b1b22054108200541084b1b21050240024020020d00200141003602b0010c010b200141013602b801200120023602b401200120012802183602b0010b20014198016a20054101200141b0016a106920012802a00121022001280298014101460d02200128029c0121052001200236021c20012005360218200128022021020b200128021820026a20064104763a00002001200128022041016a2202360220024002402002200128021c470d00200241016a22052002490d0a200241017422042005200420054b1b22054108200541084b1b21050240024020020d00200141003602b0010c010b200141013602b801200120023602b401200120012802183602b0010b20014198016a20054101200141b0016a106920012802a00121022001280298014101460d01200128029c0121052001200236021c20012005360218200128022021020b200841016a2108200128021820026a2006410f713a00002001200128022041016a22023602202007417f6a2207450d030c010b0b2002450d070c060b2002450d060c050b02402003200a470d00200341016a22082003490d06200341017422062008200620084b1b22084104200841044b1b220841ffffffff03712008464102742106200841027421080240024020030d00200141003602b0010c010b200141043602b801200120093602b001200120034102743602b4010b20014198016a20082006200141b0016a106920012802a001210802402001280298014101470d002008450d070c060b200128029c0121092008410276210a0b200920034102746a2002360200200341016a2103024020012802782202450d0020012002417f6a360278200141e0006a410020012802641b220528020021060240024020052802082207200528020422022f018e024f0d00200221080c010b03400240200228020022080d00410021080c020b200641016a210620022f018c02210720082102200720082f018e024f0d000b0b024002402006450d00200741027420086a4194026a280200210202402006417f6a2206450d00034020022802900221022006417f6a22060d000b0b410021060c010b200741016a2106200821020b20052002360204200541003602002005200636020820082007410c6c6a41046a21020c010b0b200128020c22080d01410021080b41002102410021050c010b200128021021052001280208210620082102034020082f018e0221072006450d012006417f6a2106200820074102746a4190026a280200210820022802900221020c000b0b200141cc006a4202370200200141c8006a20033602002001413c6a2007360200200141386a2008360200200142003702542001200936024420012005360240200142003703302001200236022c41002104200141003602282001200141186a36025c0240024002400240024002400240024002402005450d0020012005417f6a220b3602402002450d0120022f018e020d0241002106034041002108024020022802002204450d00200641016a210520022f018c022107200421080b024041c00241900220061b450d00200210300b024020080d00410021020c060b2005210620082102200720082f018e024f0d000b200741016a210620082007410c6c6a22024188016a2104200241046a210c024020050d00200821020c040b200820064102746a4190026a280200210202402005417f6a2206450d00034020022802900221022006417f6a22060d000b0b410021060c030b2001410036022c41002802e88f42210d2002450d060c040b41b2abc200412b41d4a8c200102d000b20024188016a2104200241046a210c4101210641002107200221080b20082007410c6c6a22084190016a280200210e2008418c016a28020021052008410c6a280200210f200841086a280200210720042802002104200c28020021080b200120063602302001200236022c2001410036022802402008450d000240200341014b0d0002402007450d00200810300b2005450d01200410300c010b20012003417f6a220d36024820012001280244220c41046a360244200141fc006a4102360200200141f4006a200e360200200141f0006a20053602002001200c3602782001200436026c2001200f3602682001200736026420012008360260200141b0016a200141dc006a200141e0006a10d00120012802b001450d00417f41002003417e6a200d4102491b2202200b200b20024b1b220241016a220820082002491bad42147e2210422088a70d062010a72202417f4c0d062002102f220d450d05200d20012903b001370200200d41106a200141b0016a41106a280200360200200d41086a200141b0016a41086a290300370200200141e0006a41306a200141286a41306a290300370300200141e0006a41286a200141286a41286a290300370300200141e0006a41206a200141286a41206a290300370300200141e0006a41186a200141286a41186a2903002210370300200141e0006a41106a200141286a41106a290300370300200141e0006a41086a200141286a41086a29030037030020012001290328370360200241146e210341012104024002402010a722020d004100210b0c010b20012002417f6a220b36027802400240024020012802642202450d00200128026021062001280268220720022f018e02490d01034002400240200228020022080d00410021080c010b200641016a210520022f018c0221070b024041c00241900220061b450d00200210300b024020080d00410021020c040b2005210620082102200720082f018e024f0d000b20082102200521060c010b41b2abc200412b41d4a8c200102d000b200741016a210820022007410c6c6a22074188016a2105200741046a210c02402006450d00200220084102746a4190026a280200210202402006417f6a2208450d00034020022802900221022008417f6a22080d000b0b410021080b20074190016a28020021112007418c016a280200210e2007410c6a2802002112200741086a280200210f20052802002113200c280200210c0b200120083602682001200236026420014100360260200c450d0020014194016a21144101210403400240200128028001220820012802840122024f0d000240200f450d00200c10300b200e450d02201310300c020b20012008417f6a2207360280012001200128027c220641046a36027c200120023602cc01200120063602c801200120113602c4012001200e3602c001200120133602bc01200120123602b8012001200f3602b4012001200c3602b00120014198016a2014200141b0016a10d001200128029801450d0102400240024020032004470d002003417f4100200820026b20072002491b2202200b200b20024b1b220241016a220820082002491b6a22022003490d0b200341017422082002200820024b1b22024104200241044b1bad42147e2210422088a74541027421022010a721080240024020030d00200141003602b0010c010b200141043602b8012001200d3602b0012001200341146c3602b4010b200141d0016a20082002200141b0016a106920012802d801210220012802d0014101460d0120012802d401210d200241146e21030b200d200441146c6a2202200129039801370200200241106a20014198016a41106a280200360200200241086a20014198016a41086a290300370200200441016a2104200128027822020d014100210b0c030b2002450d090c080b20012002417f6a220b36027802400240024020012802642202450d00200128026021062001280268220720022f018e02490d01034002400240200228020022080d00410021080c010b200641016a210520022f018c0221070b024041c00241900220061b450d00200210300b024020080d00410021020c040b2005210620082102200720082f018e024f0d000b20082102200521060c010b41b2abc200412b41d4a8c200102d000b200741016a210820022007410c6c6a22074188016a2105200741046a210c02402006450d00200220084102746a4190026a280200210202402006417f6a2208450d00034020022802900221022008417f6a22080d000b0b410021080b20074190016a28020021112007418c016a280200210e2007410c6a2802002112200741086a280200210f20052802002113200c280200210c0b200120083602682001200236026420014100360260200c0d000b0b20012802642102200141003602642002450d04200128026021060240200b450d00200128026821070340024002400240200720022f018e024f0d0020022108200621050c010b034002400240200228020022080d00410021080c010b200641016a210520022f018c0221070b024041c00241900220061b450d00200210300b024020080d00410021020c030b2005210620082102200720082f018e024f0d000b0b200741016a210c20082007410c6c6a22064188016a2113200641046a21120240024020050d0020082102200c21070c010b2008200c4102746a4190026a280200210202402005417f6a2208450d00034020022802900221022008417f6a22080d000b0b410021070b2006418c016a280200210e200641086a280200210f201328020021132012280200210c0b200c450d060240200f450d00200c10300b200b417f6a210b0240200e450d00201310300b41002106200b0d000b0b034020022802002108024041c00241900220061b450d00200210300b200641016a21062008210220080d000c050b0b2001410036022c41002802e88f42210d200b450d000340024002400240200620022f018e02490d0041002106034041002108024020022802002204450d00200641016a210520022f018c022107200421080b024041c00241900220061b450d00200210300b024020080d00410021020c040b2005210620082102200720082f018e024f0d000b200741016a210620082007410c6c6a22024188016a2104200241046a2103024020050d00200821020c020b200820064102746a4190026a280200210202402005417f6a2206450d00034020022802900221022006417f6a22060d000b0b410021060c010b20022006410c6c6a22084188016a2104200841046a21032006210720022108200641016a21060b20082007410c6c6a2208418c016a280200210f200841086a280200210c2004280200210e200328020021030b2003450d020240200c450d00200310300b200b417f6a210b0240200f450d00200e10300b200b0d000b0b41002108034020022802002106024041c00241900220081b450d00200210300b2008417f6a21082006210220060d000b0b410021040b410021030b20014200370264200141002802dc9442360260200d20044100200141e0006a10d101200128026421062000200128026022072001280268106502402004450d00200441146c2108200d410c6a2102034002402002280200450d002002417c6a28020010300b200241146a21022008416c6a22080d000b0b02402003450d00200341146c450d00200d10300b0240200a41ffffffff0371450d00200910300b0240200128021c450d00200128021810300b02402006450d00200710300b200141e0016a24000f0b102a000b102c000b8f0203047f017e017f230041206b22022400024002400240200128020422030d004100210341002104410021010c010b20012802002205ad4220862106200321040240034020032f018e022107024020050d002005450d020c040b2005450d0320064280808080707c21062005417f6a2105200320074102746a4190026a280200210320042802900221040c000b0b200128020821010b20002001360218200020063702082000200436020420002005360200200041146a2007360200200041106a2003360200200241206a24000f0b200241146a410136020020024201370204200241f4a9c2003602002002410436021c200241eca9c2003602182002200241186a360210200241fca9c200103a000bf10101057f230041106b22032400200341086a200241106a29020037030020032002290208370300024002400240024002402002411c6a2802000e020102000b20022802182204280204220520042802002204490d0320012802002201280208220620054f0d022005200641d0f4c0001042000b4100410041e0f4c0001033000b4101410141f0f4c0001033000b200228020421062002280200210720012802002102200020032902043702082000200520046b3602042000200220046a360200200041106a2003410c6a28020036020002402006450d00200710300b200341106a24000f0b2004200541d0f4c0001048000bcd1701177f230041f0006b220424000240024002400240024002400240024002400240024002400240024020010e020001020b0240024020032802082205200341046a280200470d00200541016a22062005490d0d200541017422072006200720064b1b22064108200641084b1b21060240024020050d00200441003602000c010b200441086a410136020020042005360204200420032802003602000b200441d0006a20064101200410b402200441d8006a280200210520042802504101460d0120032004280254360200200341046a2005360200200328020821050b200328020020056a41003a00002003200328020841016a3602080c030b2005450d0b0c0c0b0240200028020422052002490d0041012101200028020020026a2107200041106a28020021082000280208210902400240200520026b2205410171220a450d002005450d0120072d000021000b200541ffff03200541ffff03491b220641c0006a41ff0020062005413e2006413e491b220b461b210c2006200b6b210d2007200a6a21072005417e712105200341086a210e4101210b024002400340024002400240024002400240024002400240200b417e6a0e020105000b0240200141ff01714102460d0020014101712106410021012006450d00200c210f0c040b41022101200b4101470d00200d450d00200d41ff014b0d01200d417f6a210f410221014100210d0c020b0240200a41ff01714102470d004102210a0c040b200a41017121064102210b4100210a2006450d032000210f0c020b200d41817e6a210d41ff01210f410221010b4101210b0b200e2802002206200341046a280200470d030240200b4103470d002007452110200721110c020b02402007450d0002400240200b4102470d0041002112200a41ff017122114102460d01201141014621120c010b0240200a41ff017122124102460d00200141ff017141014620124101466a21120c010b41002112200141ff017122114102460d00201141014621120b417f2012200541017620054101716a410020051b6a221120112012491b21120c030b0240200b4102470d0041002112200a41ff017122114102460d03201141014621120c030b0240200a41ff017122124102460d00200141ff017141014620124101466a21120c030b41002112200141ff017122114102460d02201141014621120c020b2007450d052005450d050240024002402005410220054102491b22060e020001020b4100410041cc93c2001033000b4101410141dc93c2001033000b200520066b2105200720066a211120072d000041047420072d000172210f4103210b0240200e2802002206200341046a280200460d00201121070c030b20114521104103210b0b41002112024020100d002005450d00200541017620054101716a21120b201121070b2006417f201241016a221120112012491b6a22122006490d10200641017422112012201120124b1b22124108201241084b1b21120240024020060d00200441003602000c010b2004410136020820042006360204200420032802003602000b200441d0006a20124101200410b4022004280258211220042802504101460d0220032004280254360200200341046a20123602000b200328020020066a200f3a0000200e200641016a3602000c000b0b20120d0e0c0d0b024002400240200841c000490d00200841808001490d012008418080808004490d02200441033a0000200320044101106420042008360200200320044104106420032009200810640c060b200420084102743a0000200320044101106420032009200810640c050b200420084102744101723b0100200320044102106420032009200810640c040b20042008410274410272360200200320044104106420032009200810640c030b4100410041cc94c2001033000b2002200541fcf6c000104a000b200041106a21082000280200210c2000280204220d21070240200141146c22054114460d00200041146a2111200020056a2110200d210703402011220541146a2111024020052802042206200d200d20064b1b2212450d00200528020021054100210b2012210f200c21060340200b20062d0000220a20052d0000220e466a210b0240200a200e460d00200b21120c020b200641016a2106200541016a2105200f417f6a220f0d000b0b20072012201220074b1b210720112010470d000b0b20082802002113200028020821064100210502400240200720024b0d0020022107410021100c010b200d2007490d02200c20026a210c200720026b21100b200441386a4200370300200441306a4200370300200441286a4200370300200441206a4200370300200441186a4200370300200441106a4200370300200441086a420037030020044200370300200641002007200d4622121b210d200141146c21112012210f03402005210a200f20014b0d05410021060240200f2001460d002011200f41146c22056b210b200020056a21054100210603402007200541046a280200220e4f0d08200528020020076a2d0000200a41ff0171470d01200541146a2105200641016a2106200b416c6a220b0d000b0b2004200a4102746a20063602002006200f6a210f200a41016a22054110470d000b2010413e201041ffff03201041ffff03491b2205413e491b210602400240200d450d0002402010410171220b450d002010450d05200c2d0000210a0b200441e8006a4102360200200441e4006a2010417e71360200200441dc006a200b3a0000200441d8006a41013a00002004200a3a005d2004200541406a417f20052006461b3a00592004200520066b360254200441013602502004200c200b6a3602602003200441d0006a10b5020c010b02402010410171220b450d002010450d05200c2d0000210a0b200441e8006a4102360200200441e4006a2010417e71360200200441dc006a200b3a0000200441d8006a41013a00002004200a3a005d2004200541807f7341bf7f20052006461b3a00592004200520066b360254200441013602502004200c200b6a3602602003200441d0006a10b5020b2004280200210b2004280204210a2004280208210e200428020c210f20042802102111200428021421102004280218210c200428021c2102200428022021082004280224210920042802282114200428022c2115200428023021162004280234211720042802382118200428023c211902400240200341046a2802002206200341086a28020022056b4102490d00200328020021060c010b200541026a221a2005490d0a20064101742205201a2005201a4b1b22054108200541084b1b21050240024020060d00200441003602500c010b200441d0006a41086a410136020020042006360254200420032802003602500b200441c0006a20054101200441d0006a1069200441c0006a41086a280200210520042802404101460d09200320042802442206360200200341046a2005360200200341086a28020021050b200620056a2019410047410f742018410047410e742017410047410d742016410047410c742015410047410b742014410047410a74200941004741097420084100474108742002410047410774200c41004741067420104100474105742011410047410474200f410047410374200e410047410274200a410047410174200b4100477272727272727272727272727272723b0000200341086a2205200528020041026a3602000240200d450d00200d2013200310a6010b200741016a210e4100210541002802dc9442210f03400240200420056a2802002206450d00200620126a22072006490d08200720014b0d09200442003702442004200f3602402000201241146c6a2006200e200441c0006a10d1012004280244210b20042802402106024002402004280248220a4120490d00200441d0006a2006200a1065200441d0006a4120200310a6010c010b2006200a200310a6010b0240200b450d00200610300b200721120b200541046a220541c000470d000b0b200441f0006a24000f0b2007200d418cf7c0001042000b4100410041cc94c2001033000b4100410041cc94c2001033000b200f2001419cf7c000104a000b2007200e41acf7c0001033000b2012200741bcf7c0001048000b2007200141bcf7c0001042000b20050d010b102c000b102a000bba0301037f230041306b22042400200141086a280200210520012802042106200441106a41086a200341086a28020036020020042003290200370310200420062005200441106a10c10102400240024002402002200128020022014180016a41201088050d004101102f2202450d02200042818080801037020420002002360200200241003a00000c010b0240024020022001413c6a41201088050d00200141386a2802002202417f4c0d0420012802302101024020020d00410121034101200120021085051a0c020b2002102f2203450d032003200120021085051a0c010b200441106a41186a200241186a290000370300200441106a41106a200241106a290000370300200441106a41086a200241086a290000370300200420022900003703104100210302402001200441106a10d30122010d000c010b0240200128020c41014e0d000c010b20012802082202417f4c0d03200128020021010240024020020d00410121030c010b2002102f2203450d030b2003200120021085051a0b2000200236020420002003360200200041086a20023602000b02402004280204450d00200428020010300b200441306a24000f0b102a000b102c000bd30303017f047e097f230041306b22022400200241206a20002903182000290308852203200141186a29000085420020002903102204200029030022058522062001290010854200108405200241106a2003200141086a2900008542002006200129000085420010840520022004420020042004200542adfed5e4d485fda8d8007e200241206a41086a2903002002290320857c42a0cbbf9599b5a19f0a7c85421789200241106a41086a2903002002290310857c8542178922034200108405200041246a2802002207200041206a2802002208200241086a290300200229030085200389a722007122096a280000220a200041197641818284086c220b732200417f73200041fffdfb776a7141808182847871210c200941046a200871210d4104210e02400340200d21000240200c0d000240200a200a4101747141808182847871450d00410021000c030b200b200720006a280000220a73220c417f73200c41fffdfb776a7141808182847871210c20082000200e6a41046a71210d200e41046a210e200021090c010b200c68210f2000210d200c417f6a200c71210c20012007410020082009200f4103766a716b41306c6a41506a220041201088050d000b0b200241306a2400200041206a410020001b0b960101037f230041206b22032400200041086a280200210420002802042105200341106a41086a200241086a28020036020020032002290200370310200320052004200341106a10c10120002802002100200320032f010c3b01182003200328020836021420032003280200220236021020002001200341106a10d501210002402003280204450d00200210300b200341206a240020000bcf0201027f230041206b2203240002400240024002400240200120004180016a41201088050d004101102f2201450d03200141003a00000c010b0240024020012000413c6a41201088050d00200041386a2802002204417f4c0d0520002802302100024020040d00410121014101200020041085051a0c020b2004102f2201450d042001200020041085051a0c010b200341186a200141186a290000370300200341106a200141106a290000370300200341086a200141086a290000370300200320012900003703004100210102402000200310d30122000d000c010b0240200028020c41014e0d000c010b20002802082204417f4c0d04200028020021000240024020040d00410121010c010b2004102f2201450d040b2001200020041085051a0b024020010d00410021010c020b2004450d010b200110300b200341206a240020014100470f0b102a000b102c000b830e02047f097e23004180066b22012400200141c8016a4200370300200141d0016a4200370300200141d8016a4200370300200141e0016a4200370300200142c0b2cd3b3703c804200142c0b2cd3b370308200142c0b2cd3b3703c00420012001290380033703c00141002102410121030340200141c0046a2104024002400240200241ff01710e03010002010b200141086a21040c010b200141c8046a21040b200442c0b2cd3b370300024020034103460d00200341bcf2c1006a2104200341016a210320042d000022024103470d010b0b200141c0036a4200370300200141b8036a420137030020014180036a41306a2203420037030020014180036a41286a2204420137030020014180036a41186a420037030020014180036a41f8006a420037030020014180036a41f0006a420137030020014180036a41e8006a420037030020014180036a41e0006a4201370300200141d0036a4200370300200141c8036a200129030837030020014188046a420037030020014180046a20012903c004370300200142003703880320014280e497d01237038003200120012903c80437039003200141b0046a200141e0016a290300370300200141a8046a200141c0016a41186a290300370300200141a0046a200141d0016a29030037030020014198046a200141c8016a29030037030020014190046a20012903c0013703002004420137030020034280b0def7d32b370300200141003602b804200141c0016a20014180036a41c0011085051a200141c0016a41f8006a428090cad2c60e370300200141c0016a41f0006a4201370300200141c0016a41e8006a4280c0a8ca9a3a370300200141c0016a41e0006a4201370300200141086a200141c0016a41b8011085051a200141c8046a200141086a41b8011085051a20012903d004210502400240200141c8046a41286a2903004201520d00200141c8046a41306a29030022062005560d010b200521060b02400240200141c8046a41e0006a2903004201520d00200141b0056a29030022052006560d010b200621050b02400240200141e0056a2903004201520d00200141e8056a29030022062005560d010b200521060b200120063703d0042006428094ebdc03804280c2d72f7e2006428094ebdc03822206420a8020064280c2d72f7e428094ebdc03824280cab5ee0156ad7c7c21060240200141e0046a2903004201510d0002400240200141f0046a29030050450d00420021050c010b42004200200141f8046a290300220520067d220720072005561b220520012903d8047d220720072005561b2107420121050b200141e8046a2007370300200120053703e0040b024020014198056a2903004201510d0002400240200141a8056a29030050450d00420021050c010b42004200200141b0056a290300220520067d220720072005561b220520014190056a2903007d220720072005561b2107420121050b200141a0056a200737030020012005370398050b0240200141c8046a4188016a2903004201510d0002400240200141e0056a29030050450d00420021060c010b42004200200141e8056a290300220520067d220620062005561b2206200141c8056a2903007d220520052006561b2105420121060b200141d8056a2005370300200120063703d0050b200141c0016a200141c8046a41b8011085051a024020012903c801220620012903c0012205200141c0026a29030022087c580d0020064200200141e0026a2903002207200141d8026a2903005022031b540d00427e200141f0026a290300427f7c200141e8026a290300501b2008540d00200141d0026a290300220950200141c0016a4188016a290300220a420052710d0042002009200a501b4200427f200720031b220720087d220920092007561b560d002006200520014188026a290300220a7c580d0020064200200141a8026a2903002209200141c0016a41e0006a2903005022031b540d00427e200141b8026a290300427f7c200141b0026a290300501b200a540d0020014198026a290300220b5020014190026a290300220c420052710d004200200b200c501b4200427f200920031b2209200a7d220b200b2009561b560d002006200520012903d001220b7c580d0020064200200141f0016a290300220c200141e8016a2903005022031b540d00427e20014180026a290300427f7c200141f8016a290300501b200b540d00200141e0016a290300220650200141d8016a290300220d420052710d0042002006200d501b4200427f200c20031b2206200b7d220c200c2006561b560d002006502006200b5620062005567172450d002009502009200a5620092005567172450d00200750200720085620072005567172450d00200020014186036a200141c8046a41b80110850541b8011085051a20014180066a24000f0b200141013a00800341bff4c10041e00020014180036a41d8f3c10041a0f5c1001034000bda0701027f230041106b220224000240024002400240024020002802000e03000102030b200241003a00002001200241011064200041086a210302400240024002400240024020002d00080e06000102030405080b200241003a00002001200241011064200041106a290300200041186a2d0000200041196a2d0000200110d8010c070b200241013a0000200120024101106420002d000c2000410d6a2d00002000410e6a2d0000200110d901200041186a290300200041206a2d0000200041216a2d0000200110d8010c060b200241023a000020012002410110640c050b200241033a000020012002410110642001200341016a412010640c040b200241043a000020012002410110642001200341016a412010640c030b200241053a000020012002410110642001200341016a412010644120102f2200450d0320024220370204200220003602002002200341216a41201064200120022802002200200228020810642002280204450d02200010300c020b200241013a00002001200241011064200041086a21030240024002400240024020002d00080e050001020304060b200241003a000020012002410110642002200341046a28020036020020012002410410640c050b200241013a000020012002410110642002200341046a28020036020020012002410410640c040b200241023a000020012002410110644120102f2200450d0420024220370204200220003602002002200341016a41201064200120022802002200200228020810642002280204450d03200010300c030b200241033a000020012002410110642002200341046a28020036020020012002410410640c020b200241043a000020012002410110642002200041306a29030037030020012002410810644120102f2200450d0220024220370204200220003602002002200341016a41201064200120022802002200200228020810642002280204450d01200010300c010b200241033a00002001200241011064200041086a210302400240024020002d00080e03000102030b200241003a000020012002410110642001200341016a410810640c020b200241013a000020012002410110642001200341016a410810640c010b200241023a000020012002410110642001200341016a41081064024002400240200041186a2802000e03000102030b200241003a000020012002410110642002200041206a29030037030020012002410810640c020b200241013a000020012002410110642002200041206a2903003703002001200241081064200041286a200110da010c010b200241023a00002001200241011064200041206a200110da010b200241106a24000f0b102a000baf0101017f230041106b22042400200420003703082003200441086a410810640240024002400240200141ff01710e03000102030b200441003a00072003200441076a410110640c020b200441013a00072003200441076a410110640c010b200441023a00072003200441076a410110640b02400240200241ff01714101460d00200441003a00072003200441076a410110640c010b200441013a00072003200441076a410110640b200441106a24000be80301017f230041106b22042400024002400240024002400240024002400240200041ff01710e080001020304050607000b200441003a000f20032004410f6a410110640c070b200441013a000f20032004410f6a410110640c060b200441023a000f20032004410f6a410110640c050b200441033a000f20032004410f6a41011064200420013a000f20032004410f6a41011064200420023a000f20032004410f6a410110640c040b200441043a000f20032004410f6a410110640c030b200441053a000f20032004410f6a410110640c020b200441063a000f20032004410f6a41011064024002400240024002400240200141ff01710e06000102030405070b200441003a000f20032004410f6a410110640c060b200441013a000f20032004410f6a410110640c050b200441023a000f20032004410f6a410110640c040b200441033a000f20032004410f6a410110640c030b200441043a000f20032004410f6a410110640c020b200441053a000f20032004410f6a410110640c010b200441073a000f20032004410f6a41011064024002400240200141ff01710e03000102030b200441003a000f20032004410f6a410110640c020b200441013a000f20032004410f6a410110640c010b200441023a000f20032004410f6a410110640b200441106a24000bd20501017f230041106b22022400024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024020002802000e1b000102030405060708090a0b0c0d0e0f101112131415161718191a1b0b200241003a00072001200241076a410110640c1a0b200241013a00072001200241076a410110640c190b200241023a00072001200241076a410110640c180b200241033a00072001200241076a410110640c170b200241043a00072001200241076a410110640c160b200241053a00072001200241076a410110640c150b200241063a00072001200241076a410110640c140b200241073a00072001200241076a410110640c130b200241083a00072001200241076a410110640c120b200241093a00072001200241076a410110640c110b2002410a3a00072001200241076a410110640c100b2002410b3a00072001200241076a41011064200041086a2001109d02200041d0036a200110d0020c0f0b2002410c3a00072001200241076a410110640c0e0b2002410d3a00072001200241076a410110640c0d0b2002410e3a00072001200241076a410110640c0c0b2002410f3a00072001200241076a410110640c0b0b200241103a00072001200241076a410110640c0a0b200241113a00072001200241076a410110642002200041086a2903003703082001200241086a410810640c090b200241123a00072001200241076a410110640c080b200241133a00072001200241076a410110640c070b200241143a00072001200241076a410110640c060b200241153a00072001200241076a410110640c050b200241163a00072001200241076a410110640c040b200241173a00072001200241076a410110640c030b200241183a00072001200241076a410110640c020b200241193a00072001200241076a410110640c010b2002411a3a00072001200241076a410110640b200241106a24000b130020004106360204200041d894c1003602000b13002000410536020420004194bcc0003602000b130020004103360204200041948ac1003602000b040041010b040041010b040041010be80403017f027e017f230041c0016b220224000240024020012802004101460d000240024002400240024002400240024002400240200141086a280200417f6a0e0a00010203040506070809000b2001410c6a3502002103200241086a10d60120022903102104200041003b0108200020032004428094ebdc03807e42ffffffffffbfb2cd3b20032004428094ebdc03827e2203428094ebdc0380200342ffffffffffbfb2cd3b561b2003428094ebdc03824280cab5ee0156ad7c42ffffffff0f837c3703000c0a0b200041003b0108200042e88bd2003703000c090b200041013b0108200042f0edd5303703000c080b200241086a10d60120022903102103200041013b0108200020033703000c070b200241086a10d60120022903102103200041013b0108200020033703000c060b200041013b0108200042d8848ef0003703000c050b200041013b01082000200141146a35020042f8a5fd2f7e3703000c040b200041013b01082000200141146a350200220342e0891c7e20034280c2d72f7e7c4298c3e4007c3703000c030b200041013b01082000417f200141186a280200220141016a220520052001491bad220342b0ce347e20034280c2d72f7e7c42f0dd8b057c3703000c020b200041003b01082000200141146a35020042e8077e42e8edcf047c3703000c010b0240024002400240024020012d0004417f6a0e050001020304000b200041013b0108200042003703000c040b200041023b0108200042003703000c030b200041013b0108200042e8073703000c020b200041013b0108200042c0843d3703000c010b200041003b0108200042c0843d3703000b200241c0016a24000b8a3a08037f017e0a7f017e077f027e047f017e230041e0086b2203240002400240200228022422042802082001200428020c28020c1101000d002000420037030820004201370300200041186a41003a0000200041206a41023a0000200228022422002000280200417f6a2204360200024020040d002000280208200028020c2802001102000240200028020c280204450d00200028020810300b2002280224220041046a22022002280200417f6a220236020020020d00200010300b024020012802004101460d000240024002400240024002400240200141086a280200417f6a0e09090009010209030405060b200141106a280200450d082001410c6a28020010300c080b200141106a280200450d072001410c6a28020010300c070b200141106a280200450d062001410c6a28020010300c060b0240200141146a2802002200450d002001410c6a2802002102200041186c210003400240200241046a280200450d00200228020010300b0240200241106a280200450d002002410c6a28020010300b200241186a2102200041686a22000d000b0b200141106a2802002202450d05200241186c450d05200128020c10300c050b0240200141146a2802002200450d002001410c6a28020021022000410c6c210003400240200241046a280200450d00200228020010300b2002410c6a2102200041746a22000d000b0b200141106a2802002202450d042002410c6c450d04200128020c10300c040b200141106a280200450d032001410c6a28020010300c030b200141106a280200450d022001410c6a28020010300c020b02400240024020012d0004417f6a0e0404000104020b02402001410c6a280200450d00200141086a28020010300b0240200141c4006a2802002200450d002001413c6a28020021022000410c6c210003400240200241046a280200450d00200228020010300b2002410c6a2102200041746a22000d000b0b0240200141c0006a2802002202450d002002410c6c450d00200128023c10300b0240200141d0006a2802002202450d0020024104742100200141c8006a28020041086a2102034002402002280200450d002002417c6a28020010300b200241106a2102200041706a22000d000b0b0240200141cc006a28020041ffffffff0071450d00200128024810300b200141d4006a10e3010c030b2001410c6a280200450d02200141086a28020010300c020b2001410c6a280200450d01200141086a28020010300c010b0240024002400240024002400240024002400240024002400240024002400240024002400240024020012802004101460d002001410c6a2802002105200141106a2902002206422088a721072002280224210420022d0001210820022d000021092006a7210a024002400240024002400240024002400240200141086a280200417f6a0e0a000102030f0e0d0c0b0a000b20042004280200417f6a2201360200024002400240200941ff01710d0020010d022004280208200428020c2802001102000240200428020c280204450d00200428020810300b200441046a22012001280200417f6a22013602002001450d010c020b20010d012004280208200428020c2802001102000240200428020c280204450d00200428020810300b200441046a22012001280200417f6a220136020020010d010b200410300b0240200920087241ff0171450d0020004200370308200041206a41023a0000200041186a41003a0000200042013703000c1d0b2000420037030820002003280070360019200041186a41003a00002000411c6a200341f3006a280000360000200042003703000c1c0b20042004280200417f6a220136020002400240200941ff01710d00024020010d002004280208200428020c2802001102000240200428020c280204450d00200428020810300b200441046a22012001280200417f6a220136020020010d00200410300b200841ff01714101470d010240200a450d00200510300b2000420037030820002003280070360019200041186a41003a00002000411c6a200341f3006a280000360000200042003703000c1d0b20010d002004280208200428020c2802001102000240200428020c280204450d00200428020810300b200441046a22012001280200417f6a220136020020010d00200410300b0240200a450d00200510300b20004200370308200041206a41023a0000200041186a41003a0000200042013703000c1b0b20042004280200417f6a2201360200024002400240200941ff01710d0020010d022004280208200428020c2802001102000240200428020c280204450d00200428020810300b200441046a22012001280200417f6a22013602002001450d010c020b20010d012004280208200428020c2802001102000240200428020c280204450d00200428020810300b200441046a22012001280200417f6a220136020020010d010b200410300b200920087241ff01710d054108102f2201450d01200342083702742003200136027020032006370318200341f0006a200341186a4108106441c492c100410a20032802702201200328027841002802fcad4211030002402003280274450d00200110300b2000420037030820002003280050360019200041186a41003a00002000411c6a200341d3006a280000360000200042003703000c1a0b20042004280200417f6a2201360200024002400240200941ff01710d0020010d022004280208200428020c2802001102000240200428020c280204450d00200428020810300b200441046a22012001280200417f6a22013602002001450d010c020b20010d012004280208200428020c2802001102000240200428020c280204450d00200428020810300b200441046a22012001280200417f6a220136020020010d010b200410300b0240200920087241ff0171450d00410221010c180b200341d0006a2005200710e40120032802502201450d15200328025421022003200341d8006a2802003602d408200320013602d008200341106a200341d0086a109b0120032802100d1420032802d408220420032802142208490d142008417f4c0d010240024020080d00410121090c010b2008102f2209450d012009410020081087051a20032802d40821040b20042008490d13200920032802d0082008108505210b20032802d40822042008490d032003200420086b3602d408200320032802d00820086a3602d008200341086a200341d0086a109b0120032802080d1220032802d4082204200328020c2207490d122007417f4c0d010240024020070d004101210c0c010b2007102f220c450d01200c410020071087051a20032802d40821040b20042007490d11200c20032802d0082007108505210d20032802d40822042007490d022003200420076b22043602d408200320032802d00820076a220e3602d00820044104490d102003200e41046a3602d00820032004417c6a220f3602d408200f4104490d10200e28000421102003200e41086a3602d0082003200441786a220f3602d408200f4104490d102003200441746a3602d4082003200e410c6a3602d0082003200341d0086a109b0120032802000d102003280204220f20032802d408410c6e22042004200f4b1bad420c7e2211422088a70d012011a72204417f4c0d010240024020040d00410421120c010b2004102f2212450d010b2004410c6ead2111200f450d0c200341f8006a2113200341f9006a2114200341fa006a2115200341fb006a2116034020032802d4082204450d0f20032802d008220e2d0000211720032004417f6a22183602d4082003200e41016a3602d008200320173a00742018450d0f20032802d008220e2d0000211720032004417e6a22183602d4082003200e41016a3602d008200320173a00752018450d0f20032802d008220e2d0000211720032004417d6a22183602d4082003200e41016a3602d008200320173a00762018450d0f20032802d008220e2d0000211720032004417c6a22183602d4082003200e41016a3602d008200320173a00772018450d0f201320032802d008220e2d00003a000020032004417b6a22173602d4082003200e41016a3602d0082017450d0f201420032802d008220e2d00003a000020032004417a6a22173602d4082003200e41016a3602d0082017450d0f201520032802d008220e2d00003a00002003200441796a22173602d4082003200e41016a3602d0082017450d0f201620032802d008220e2d00003a00002003200e41016a3602d0082003200441786a22173602d40820174104490d0f20032902742119200e28000121172003200441746a3602d4082003200e41056a3602d008024002402011422088a722042011a7470d00200441016a220e2004490d0420044101742218200e200e2018491b220e4104200e41044b1bad420c7e221a422088a745410274210e201aa721180240024020040d00200341003602700c010b200341043602782003201236027020032004410c6c3602740b200341186a2018200e200341f0006a10692003280220210e20032802184101460d01200328021c2112201142808080807083200e410c6ead8421110b20122004410c6c6a220420173602082004201937020020114280808080107c2111200f417f6a220f0d010c0f0b0b200e450d010b102a000b102c000b2007200441f0f5c100104a000b2008200441f0f5c100104a000b20004200370308200041206a41023a0000200041186a41003a0000200042013703000c140b200341f0006a200141046a41dc001085051a200341186a41206a200241206a290200370300200341186a41186a200241186a290200370300200341186a41106a200241106a290200370300200341186a41086a200241086a290200370300200320022902003703182000200341f0006a200341186a10e5010c130b2002411a6a2901002106200241196a2d0000210b200241186a2d0000210c200241166a2f0100210e200241156a2d0000210d200241146a2d0000210f200241126a2f01002110200241116a2d00002112200241106a2d000021172002410e6a2f010021182002410d6a2d000021132002410c6a2d000021142002410a6a2f01002115200241096a2d00002116200241086a2d0000211b200241066a2f0100211c200241056a2d0000211d200241046a2d0000211e200241026a2f0100210220042004280200417f6a220136020002400240200941ff01710d00024020010d002004280208200428020c2802001102000240200428020c280204450d00200428020810300b200441046a22012001280200417f6a220136020020010d00200410300b200841ff01714101470d01200341186a200520071065200341d0006a41186a200341186a41186a2900002211370300200341d0006a41106a200341186a41106a2900002219370300200341d0006a41086a200341186a41086a290000221a37030020032003290018221f370350200341b1016a2011370000200341a9016a2019370000200341a1016a201a37000020034190016a200b3a0000200341f0006a41186a20123a0000200341f0006a41106a20163a00002003201f3700990120032006370091012003200c3a008f012003200e3b008d012003200d3a008c012003200f3a008b01200320103b008901200320173a008701200320183b008501200320133a008401200320143a008301200320153b0081012003201b3a007f2003201c3b007d2003201d3a007c2003201e3a007b200320023b0079200341053a007820034200370370200341f0006a10e6010240200a450d00200510300b200320032800d0083602482003200341d3086a28000036004b200041186a41003a000020004200370308200020032802483600192000411c6a200328004b360000200042003703000c140b20010d002004280208200428020c2802001102000240200428020c280204450d00200428020810300b200441046a22012001280200417f6a220136020020010d00200410300b0240200a450d00200510300b20004200370308200041206a41023a0000200041186a41003a0000200042013703000c120b20042004280200417f6a2201360200024002400240200941ff01710d0020010d022004280208200428020c2802001102000240200428020c280204450d00200428020810300b200441046a22012001280200417f6a22013602002001450d010c020b20010d012004280208200428020c2802001102000240200428020c280204450d00200428020810300b200441046a22012001280200417f6a220136020020010d010b200410300b0240200920087241ff01710d002005200741002802bcad421105000240200a450d00200510300b2000420037030820002003280070360019200041186a41003a00002000411c6a200341f3006a280000360000200042003703000c120b0240200a450d00200510300b20004200370308200041206a41023a0000200041186a41003a0000200042013703000c110b20042004280200417f6a2201360200024002400240200941ff01710d0020010d022004280208200428020c2802001102000240200428020c280204450d00200428020810300b200441046a22012001280200417f6a22013602002001450d010c020b20010d012004280208200428020c2802001102000240200428020c280204450d00200428020810300b200441046a22012001280200417f6a220136020020010d010b200410300b0240024002402009200872220441ff01710d0002402007450d0020052007410c6c6a21022005210103402001280200200141086a28020041002802b4ad421105002001410c6a22012002470d000b2007450d002007410c6c21022005210103400240200141046a280200450d00200128020010300b2001410c6a2101200241746a22020d000b0b200a450d02200a410c6c0d010c020b02402007450d002007410c6c21022005210103400240200141046a280200450d00200128020010300b2001410c6a2101200241746a22020d000b0b200a450d01200a410c6c450d010b200510300b0240200441ff0171450d0020004200370308200041206a41023a0000200041186a41003a0000200042013703000c110b2000420037030820002003280070360019200041186a41003a00002000411c6a200341f3006a280000360000200042003703000c100b20042004280200417f6a2201360200024002400240200941ff01710d0020010d022004280208200428020c2802001102000240200428020c280204450d00200428020810300b200441046a22012001280200417f6a22013602002001450d010c020b20010d012004280208200428020c2802001102000240200428020c280204450d00200428020810300b200441046a22012001280200417f6a220136020020010d010b200410300b0240024002402009200872220441ff01710d0002402007450d002005200741186c6a21022005210103402001280200200141086a2802002001410c6a280200200141146a28020041002802fcad42110300200141186a22012002470d000b2007450d00200741186c21022005210103400240200141046a280200450d00200128020010300b0240200141106a280200450d002001410c6a28020010300b200141186a2101200241686a22020d000b0b200a450d02200a41186c0d010c020b02402007450d00200741186c21022005210103400240200141046a280200450d00200128020010300b0240200141106a280200450d002001410c6a28020010300b200141186a2101200241686a22020d000b0b200a450d01200a41186c450d010b200510300b0240200441ff0171450d0020004200370308200041206a41023a0000200041186a41003a0000200042013703000c100b2000420037030820002003280070360019200041186a41003a00002000411c6a200341f3006a280000360000200042003703000c0f0b20042004280200417f6a2201360200024002400240200941ff01710d0020010d022004280208200428020c2802001102000240200428020c280204450d00200428020810300b200441046a22012001280200417f6a22013602002001450d010c020b20010d012004280208200428020c2802001102000240200428020c280204450d00200428020810300b200441046a22012001280200417f6a220136020020010d010b200410300b0240200920087241ff01710d000240024020054101460d0041ce92c100410d41002802b4ad421105000c010b20034201370370200341003602782003200a360218200341f0006a200341186a4104106420032007360218200341f0006a200341186a4104106441ce92c100410d20032802702201200328027841002802fcad421103002003280274450d00200110300b200341fc006a2007360200200341f0006a41086a200a36020020032005360274200341043a0070200341186a41186a4200370300200341286a22014200370300200341186a41086a420037030020034200370318200341186a41dca4c000410610ab01200141e0c0c100410610ab01200341d0086a200341f0006a10e70141002802a4ad422101200341d0006a41086a200341d0086a41086a280200360200200320032903d008370350200341186a4120200341d0006a2001110400200320032800483602402003200341cb006a280000360043200041186a41003a000020004200370308200020032802403600192000411c6a2003280043360000200042003703000c0f0b20004200370308200041206a41023a0000200041186a41003a0000200042013703000c0e0b20042004280200417f6a2201360200024002400240200941ff01710d0020010d022004280208200428020c2802001102000240200428020c280204450d00200428020810300b200441046a22012001280200417f6a22013602002001450d010c020b20010d012004280208200428020c2802001102000240200428020c280204450d00200428020810300b200441046a22012001280200417f6a220136020020010d010b200410300b024002400240200920087241ff01710d002003200637027420032005360270200341186a200341f0006a10e80120032d001822014108460d02200341186a41086a280200210220032d0019210420032d001a210920032d001b2108200328021c210a0c010b410221010240200a450d00200510300b0b200020083a0023200020093a0022200020043a002120004200370308200041286a2002360200200041246a200a360200200041206a20013a0000200041186a41003a0000200042013703000c0e0b20034200370370200341023a0078200341f0006a10e601200041186a41003a000020004200370308200042003703000c0d0b2012450d030b2011a7210e024020032802d40841034b0d00200e450d03200e410c6c450d030c020b02402002450d00200110300b024002400240024020084105470d000240200b4180a4c0004105108805450d00410f210241ba94c1002104410021090c020b0240201041034f0d00411a210241a094c1002104410121090c020b200b103002402007450d00200d10300b0240200e450d00200e410c6c450d00201210300b2003200637027420032005360270200341186a200341f0006a10e80120032d001822014108460d03200341186a41086a280200210220032d0019210820032d001a210920032d001b210a200328021c21040c0e0b410f210241ba94c1002104410021092008450d010b200b10300b02402007450d00200d10300b200e450d09200e410c6c450d09201210300c090b20034200370370200341023a0078200341f0006a10e601200320032800483602402003200341cb006a280000360043200041186a41003a000020004200370308200020032802403600192000411c6a2003280043360000200042003703000c0b0b2011a72204450d012004410c6c450d010b201210300b2007450d010b200c10300b2008450d010b200910300b2002450d00200110300b41022109418394c1002104411d21020b410321010b410021080240200a450d00200510300b0b200320032800483602402003200341cb006a280000360043200041186a41003a000020004200370308200020032802403600192000411c6a2003280043360000200041286a2002360200200041246a20043602002000200a3a0023200020093a0022200020083a0021200041206a20013a0000200042013703000b200341e0086a24000be40303067f017e017f200028020421012000410036020402402001450d00024020002802002202450d00034020012802b80121012002417f6a22020d000b0b024020002802082203450d004100210403400240024002400240200420012f01b601490d0041002100034041002102024020012802002205450d00200041016a210420012f01b4012106200521020b024041e80141b80120001b450d00200110300b024020020d00410021010c050b2004210020022101200620022f01b6014f0d000b20022006410c6c6a41306a2105024020040d00200221010c020b200641027420026a41bc016a280200210102402004417f6a2200450d00034020012802b80121012000417f6a22000d000b0b410021040c020b20012004410c6c6a41306a210520042106200121020b200641016a21040b20022006410c6c6a41346a2902002107200528020021080b2008450d0202402007422088a72202450d0020024104742100200841086a2102034002402002280200450d002002417c6a28020010300b200241106a2102200041706a22000d000b0b2003417f6a21030240200742ffffffff0083500d00200810300b20030d000b0b41002102034020012802002100024041e80141b80120021b450d00200110300b2002417f6a21022000210120000d000b0b0b130020002002ad4220862001ad84101710c6040bd1f60107057f027e0b7f017e0b7f057e2b7f23004180206b220324000240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024020012d0000417f6a0e050001020304000b200228022422042004280200417f6a2205360200200141046a280200210620022d0001210702400240024020022d000022020d0020050d022004280208200428020c2802001102000240200428020c280204450d00200428020810300b200441046a22012001280200417f6a22013602002001450d010c020b20050d012004280208200428020c2802001102000240200428020c280204450d00200428020810300b200441046a22012001280200417f6a220136020020010d010b200410300b41022101420021084200210902400240200220077241ff01710d00200341a0056a41186a22074200370300200341b0056a22014200370300200341a0056a41086a22024200370300200342003703a005200341a8046a41e2a4c000410f10ab012002200341a8046a41086a2204290000370300200320032900a8043703a005200341a8046a41a0d9c000411c10ab0120072004290000370300200120032900a8043703002003200341a0056a412010850220032802004101460d014190b3c000ad2109410321014280808080c00121080b200041810a3b002120004200370308200041246a2008200984370200200041206a20013a0000200041186a41003a0000200042013703000c150b200742003703002001420037030020024200370300200342003703a005200341a8046a41e2a4c000410f10ab0120022004290000370300200320032900a8043703a005200341a8046a41a0d9c000411c10ab01200141086a2004290000370000200120032900a804370000200320063602a018200341a0056a4120200341a0186a410441002802fcad42110300200041186a41003a000020004200370308200042003703000c140b200341e8016a200141046a220441d8001085051a200228022422012001280200417f6a220736020002400240024020022d00000d0020022d00012102024020070d002001280208200128020c2802001102000240200128020c280204450d00200128020810300b200141046a22072007280200417f6a220736020020070d00200110300b200241ff01714102470d01200341a0056a41186a22014200370300200341a0056a41106a220a4200370300200341a0056a41086a22024200370300200342003703a005200341a8046a41e2a4c000410f10ab012002200341a8046a41086a2207290000370300200320032900a8043703a005200341a8046a41acdac000410e10ab0120012007290000370300200a20032900a804370300200341a0056a412041002802ccad42110100450d0241dbb9c00041334190bac000102d000b20070d002001280208200128020c2802001102000240200128020c280204450d00200128020810300b200141046a22022002280200417f6a220236020020020d00200110300b024020032802ec01450d0020032802e80110300b200328029c0221040240200341a4026a2802002201450d002001410c6c21022004210103400240200141046a280200450d00200128020010300b2001410c6a2101200241746a22020d000b0b0240200341a0026a2802002201450d002001410c6c450d00200410300b20032802a80221040240200341b0026a2802002201450d0020014104742102200441086a2101034002402001280200450d002001417c6a28020010300b200141106a2101200241706a22020d000b0b0240200341ac026a28020041ffffffff0071450d00200410300b200341b4026a10e301200320032800e1013602c8012003200341e4016a2800003600cb01200320032900d2013703b8012003200341d9016a2900003700bf01200041186a41003a000020004200370308200020032802c8013600192000411c6a20032800cb01360000200041206a41023a0000200020032903b801370021200041286a20032900bf01370000200042013703000c140b200341c0026a41306a200441306a280200360200200341c0026a41286a200441286a290200370300200341c0026a41206a200441206a290200370300200341c0026a41186a200441186a290200370300200341c0026a41106a200441106a290200370300200341c0026a41086a200441086a290200370300200320042902003703c00241002802e8ac4241016a220141004c0d03200341bc026a280200210b200341b8026a280200210c200341b0026a280200210d200341ac026a280200210e200341a4026a2802002107200341a0026a280200210f20032802b402211020032802a8022111200328029c022112024041002802ecac424101460d00200341d0106a41002802e4ac42110200200341a0186a41086a200341d0106a41086a290300370300200320032903d0103703a01841002802e8ac420d054100417f3602e8ac42024041002802ecac42450d00024041002802fcac422202450d0041002802f4ac422101200241027421020340200128020022042004280200417f6a3602000240200128020022042802000d00200441046a22042004280200417f6a3602002001280200220441046a2802000d00200410300b200141046a21012002417c6a22020d000b0b41002802f8ac4241ffffffff0371450d0041002802f4ac4210300b410041013602ecac42410020032903a0183702f0ac424100200341a8186a2903003702f8ac42410041002802e8ac42220141016a3602e8ac42200141026a220141004c0d060b410020013602e8ac4241002802f0ac42220241016a220141004c0d06410020013602f0ac420240024041002802fcac4222010d00410020023602f0ac420c010b200141027441002802f4ac426a417c6a280200220128020041016a220241014d0d0820012002360200410041002802f0ac42417f6a3602f0ac4220012802080d092001417f360208200128020c2202280208220420032802c802470d0a200228020020032802c00220041088050d0a200228021820032802cc02470d0b2002411c6a2202200341c0026a41146a220441201088050d0c2001410036020820012001280200417f6a220236020020020d00200141046a22022002280200417f6a220236020020020d00200110300b410041002802e8ac42417f6a3602e8ac42200341a0056a41186a4200370300200341a0056a41106a4200370300200341a0056a41086a22014200370300200342003703a005200341a8046a41e2a4c000410f10ab012001200341a8046a41086a2202290000370300200320032900a8043703a005200341a8046a41a0d9c000411c10ab01200a41086a2002290000370000200a20032900a804370000200341b0016a200341a0056a4120108502024020032802b0014101470d0020032802cc0220032802b4012204490d0042002108200341b8056a22054200370300200341b0056a22064200370300200341a0056a41086a22014200370300200342003703a005200341a8046a41e2a4c000410f10ab012001200341a8046a41086a2202290000370300200320032900a8043703a005200341a8046a41a0d9c000411c10ab01200a41086a22132002290000370000200a20032900a804370000200341a0056a412041002802b4ad42110500200542003703002006420037030020014200370300200342003703a005200341a8046a41e2a4c000410f10ab0120012002290000370300200320032900a8043703a005200341a8046a41ecd9c000411510ab0120132002290000370000200a20032900a804370000200341a0186a200341a0056a41201086020240024020032802a0182201450d00200341a0056a412041002802b4ad4211050020032902a41821080c010b41002802dc944221010b200341b8056a4200370300200341b0056a4200370300200341a0056a41086a22024200370300200342003703a005200341a8046a41e2a4c000410f10ab012002200341a8046a41086a2205290000370300200320032900a8043703a005200341a8046a4198dbc000410b10ab01200a41086a2005290000370000200a20032900a804370000200320043602a018200341a0056a4120200341a0186a410441002802fcad4211030041a0bac000410520012008422088a741002802fcad42110300200320032802cc023602ac18200341013a00a818200342013703a018200341a0186a10e6012008a7450d00200110300b10af012114200341d8036a41186a200341ec026a290200370300200341d8036a41106a200341c0026a41246a290200370300200341d8036a41086a200341c0026a411c6a290200370300200320032902d4023703d8034101102f2201450d14200141003a0000410041003502e0ac42200341a0186aad7c42adfed5e4d485fda8d8007e42218922083e02e0ac42200341a0016a41e0acc200ad220942a4bb99fed1a0bbb02385420042adfed5e4d485fda8d800420010840520034180016a200842a4bb99fed1a0bbb02385420042adfed5e4d485fda8d800420010840520034190016a200942c5ecb3fec9ecf7c2c30085420042adfed5e4d485fda8d8004200108405200341f0006a200842c5ecb3fec9ecf7c2c30085420042adfed5e4d485fda8d8004200108405200341e0006a2008200985420042adfed5e4d485fda8d8004200108405200341a0056a418de2c10041011065200341a4116a200341b8056a2903003702002003419c116a200341b0056a29030037020020034194116a200341a0056a41086a29030037020020034184116a428180808010370200200341f8106a4200370300200341d0106a41246a41bcf5c100360200200320032903a00537028c112003200136028011200341003602f01020032008200341a0016a41086a29030020032903a001857c200341e0006a41086a29030020032903608542cf829ebbefefde82147c2215893703d0102003200341f0006a41086a29030020032903708520097c2015423088893703e8102003200820034190016a41086a290300200329039001857c2015422088893703e010200320034180016a41086a2903002003290380018520097c2015421088893703d81020122007410c6c6a2116201221012007450d112012410c6a210120122802002217450d11200341f0106a2118200341ba186a2119200341b3186a211a200341a0186a410c6a211b200341a0186a410572211c200341bf186a211d2012210203402001211e20022902042208422088a7221f417f4c0d1b02400240201f0d00410121010c010b201f102f2201450d160b20012017201f1085052102410021010240200328028811201f470d002002200328028011201f1088054521010b0240201f450d00200210300b024020010d00200341a0056a2017201f106520034188096a41186a2202200341a0056a41186a29030037030020034188096a41106a2204200341a0056a41106a29030037030020034188096a41086a2207200341a0056a41086a290300370300200320032903a0053703880902400240201f0d00410121010c010b201f102f2201450d170b20012017201f108505212002400240200328028811201f470d002020200328028011201f1088050d00201f0d010c020b200341a0186a41186a20022903002209370300200341a0186a41106a20042903002221370300200341a0186a41086a20072903002222370300200320032903880922153703a018200341d0006a200920032903e81020032903d810852223854200202120032903e010220920032903d0102224852225854200108405200341c0006a2022202385420020152025854200108405200341306a2009420020092009202442adfed5e4d485fda8d8007e200341d0006a41086a2903002003290350857c42a0cbbf9599b5a19f0a7c85421789200341c0006a41086a2903002003290340857c854217892221420010840520032802f410220720032802f0102206200341306a41086a290300200329033085202189a722267122136a28000022272026411976222841818284086c2229732201417f73200141fffdfb776a7141808182847871210541042104201341046a200671212a2015a7212b2013212c202721020340202a2101024020050d0002402002200241017471418081828478710d002029200720016a2800002202732205417f73200541fffdfb776a714180818284787121052006200120046a41046a71212a200441046a21042001212c0c020b200341dc046a41026a222a201c41026a2d00003a0000200341d8046a41026a222c201b41026a2d00003a0000200341d4046a41026a2229201a41026a2d00003a0000200341d0046a41026a222d201941026a2d00003a00002003201c2f00003b01dc042003201b2f00003b01d8042003201a2f00003b01d404200320192f00003b01d00420032d00a418212e20032802a818212f20032800af18213020032801b618213120032f00bd18201d2d00004110747221052003200341d0106a3602a005410421010240034020274180818284787122020d01201320016a2102200141046a21012007200220067122136a28000021270c000b0b0240200720026841037620136a20067122016a2c000022024100480d0020072007280200418081828478716841037622016a2d000021020b20032802f8102104024020024101712213450d0020040d00200341a0186a2018200341a0056a10800220032802f010220620267121024104210120032802f410210703402002220420016a2006712102200141046a2101200720046a280000418081828478712227450d000b0240200720276841037620046a20067122016a2c00004100480d002007280200418081828478716841037621010b20032802f81021040b2003200420136b3602f810200720016a20283a000020062001417c6a7120076a41046a20283a00002007410020016b41306c22026a220141546a202e3a0000200720026a41506a202b360200200141556a220220032f01dc043b0000200241026a202a2d00003a0000200141586a202f3600002001415c6a220220032f01d8043b0000200241026a202c2d00003a00002001415f6a2030360000200141636a220220032f01d4043b0000200241026a20292d00003a0000200141666a2031360000200141706a2020360200200141746a201f360200200141786a201f3602002001417c6a41013602002001416d6a220241026a20054110763a0000200220053b00002001416a6a220141026a202d2d00003a0000200120032f01d0043b0000200320032802fc1041016a3602fc100c030b200568212d2001212a2005417f6a2005712105200741002006202c202d4103766a716b41306c6a220141506a200341a0186a41201088050d000b02402001417c6a2202280200220441004a0d00200141706a21070240200141746a2205280200450d0020072802001030200228020021040b2005201f36020020072020360200200141786a201f3602002002200441016a3602000c020b2002200441016a360200201f450d010b202010300b02402008a7450d00201710300b201e2016460d13201e410c6a2101201e2102201e28020022170d000c120b0b200228022422042004280200417f6a22053602002001410c6a2802002113200141086a2802002107200141046a280200210620022d0001210102400240024020022d000022020d0020050d022004280208200428020c2802001102000240200428020c280204450d00200428020810300b200441046a22052005280200417f6a22053602002005450d010c020b20050d012004280208200428020c2802001102000240200428020c280204450d00200428020810300b200441046a22052005280200417f6a220536020020050d010b200410300b0240200220017241ff01710d00200341a0186a10b001024020032802a0184101470d002013200341b4186a2802004d0d002007450d110c100b20032013360290092003200736028c092003200636028809200341b8056a22014200370300200341b0056a22024200370300200341a0056a41086a22044200370300200342003703a005200341a8046a41e2a4c000410f10ab012004200341a8046a41086a2205290000370300200320032900a8043703a005200341a8046a41c0e1c000411510ab0120012005290000370300200220032900a804370300200341d0106a20034188096a10870241002802a4ad422101200341a0186a41086a200341d0106a41086a280200360200200320032903d0103703a018200341a0056a4120200341a0186a200111040020070d0f0c100b02402007450d00200610300b20004200370308200041186a41003a0000200041206a41023a0000200042013703000c120b200341e8106a200141196a290000370300200341e0106a200141116a290000370300200341d8106a200141096a290000370300200320012900013703d010200228022422042004280200417f6a220536020020022d0001210702400240024020022d000022020d0020050d022004280208200428020c2802001102000240200428020c280204450d00200428020810300b200441046a22052005280200417f6a22053602002005450d010c020b20050d012004280208200428020c2802001102000240200428020c280204450d00200428020810300b200441046a22052005280200417f6a220536020020050d010b200410300b200220077241ff01710d0a200341b8056a22024200370300200341b0056a22044200370300200341a0056a41086a22074200370300200342003703a005200341a8046a41e2a4c000410f10ab012007200341a8046a41086a2205290000370300200320032900a8043703a005200341a8046a41fce2c000411110ab0120022005290000370300200420032900a8043703004120102f2202450d12200141016a2101200342203702a418200320023602a018200341a0186a200341d0106a41201064200341a0056a412020032802a018220220032802a81841002802fcad42110300024020032802a418450d00200210300b200341c1186a200141186a290000370000200341b9186a200141106a290000370000200341b1186a200141086a290000370000200341023a00a818200342013703a018200320012900003700a918200341a0186a10e601200041186a41003a00002000420037030820002003280088093600192000411c6a2003418b096a280000360000200042003703000c110b410c21042001410c6a2802002127200141086a2802002113200141046a280200210620022802242101200341a0056a41186a22074200370300200341a0056a41106a22024200370300200341a0056a41086a22054200370300200342003703a005200341a8046a41e2a4c000410f10ab012005200341a8046a41086a222a290000370300200320032900a8043703a005200341a8046a41fce2c000411110ab012007202a290000370300200220032900a804370300200341a0186a200341a0056a412010820220034188096a41086a222a200341aa186a29010037030020034188096a41106a222c200341b2186a2901003703002003419f096a2229200341b9186a290000370000200320032901a218370388090240024020032d00a0184101470d0020032d00a118210c200341d0106a41186a2029290000370000200341e1106a202c290300370000200341d9106a202a29030037000020032003290388093700d1102003200c3a00d010200341a0056a200620271065200341a0186a41186a2007290300370300200341a0186a41106a2002290300370300200341a0186a41086a2005290300370300200320032903a0053703a0180240200341a0186a200341d0106a4120108805450d004107210241c0b3c00021050c020b200320273602a818200320133602a418200320063602a018200341d0106a200341a0186a10e801024020032d00d01022074108460d00200341d0106a41086a280200210420032d00d110212a20032d00d210210220032d00d310210620032802d41021050c0d0b42002108200341a0056a41186a4200370300200341b0056a4200370300200341a0056a41086a22044200370300200342003703a005200341a8046a41e2a4c000410f10ab012004200341a8046a41086a2207290000370300200320032900a8043703a005200341a8046a41fce2c000411110ab01200241086a2007290000370000200220032900a804370000200341a0056a412041002802b4ad4211050020012001280200417f6a2202360200024020020d002001280208200128020c2802001102000240200128020c280204450d00200128020810300b200141046a22022002280200417f6a220236020020020d00200110300b200320032800e8013602a0182003200341eb016a2800003600a318200041186a41013a000020004200370308200020032802a0183600192000411c6a20032800a3183600000c0d0b4106210241a4b3c0002105411121040b410321074101212a024020130d000c0b0b200610300c0a0b41aeaac000411820034188096a41c8aac00041d8aac0001034000b41b082c200411020034188096a41e8aac00041f8aac0001034000b41aeaac000411820034188096a41c8aac0004188abc0001034000b41aeaac000411820034188096a41c8aac0004184acc0001034000b00000b41b082c200411020034188096a41e8aac0004194acc0001034000b200341b4186a4100360200200341b0186a41bc8ec200360200200342013702a418200341a4acc0003602a0182002200341c0026a200341a0186a108802000b200341b4186a4100360200200341b0186a41bc8ec200360200200342013702a418200341bcacc0003602a018200241186a200341cc026a200341a0186a108902000b200341a0186a41146a4100360200200341b0186a41bc8ec200360200200342013702a418200341d4acc0003602a01820022004200341a0186a41dcacc000108a02000b20004200370308200041186a41003a0000200041206a41023a0000200042013703000c060b20012001280200417f6a2213360200024020130d002001280208200128020c2802001102000240200128020c280204450d00200128020810300b200141046a22132013280200417f6a221336020020130d00200110300b20004200370308200020032800a018360019200020063a0023200020023a00222000202a3a0021200041186a41003a0000200041286a2004360200200041246a2005360200200041206a20073a00002000411c6a200341a3186a280000360000420121080b200020083703000c040b200610300b20004200370308200020032800e801360019200041186a41003a00002000411c6a200341eb016a280000360000200042003703000c020b20162001460d0003402001410c6a21020240200141046a280200450d00200128020010300b2002210120162002470d000b0b2003418c116a21010240200f450d00200f410c6c450d00201210300b024002400240200341d8036a20014120108805450d00200341a0186a41186a200341d8036a41186a290300370300200341a0186a41106a200341d8036a41106a290300370300200341a0186a41086a200341d8036a41086a290300370300200320032903d8033703a018200341d0106a200341a0186a10672201450d01200128020c4101480d010b200341a0186a200341d0106a41e0001085051a20034198196a200341d8036a41186a29030037030020034190196a200341d8036a41106a29030037030020034188196a200341d8036a41086a290300370300200320032903d8033703801941012102200341a0056a418de2c10041011065200341b8196a200341a0056a41186a290300370300200341b0196a200341a0056a41106a290300370300200341a8196a200341a0056a41086a290300370300200320032903a0053703a01920034188096a200341a0186a41cc9fc0004120105f02402003280288094101470d004100212e0c070b0240200328028c0922010d004102212e0c080b024002400240024002400240024020034188096a41086a2903002208422088a722024104490d002002417c7122024104460d0020024108460d002002410c460d0020024110460d0020024114460d0020024118460d002002411c460d0020024120460d00200128000021182001280004213220012800082133200128000c2134200128001021352001280014213620012800182137200128001c21382001280020213902402008a7450d00200110300b200342bfd1ab90c7d5a39e653703b805200342cdfebda78cc1eae29d7f3703b005200342f3a4f999eff7bbed0c3703a805200342e3eeb3c4a9ae8fee907f3703a005200320143602a8042003200341a8046a4104108b023703b803200341a0096a200341a8046a41046a36020020034198096a200341b8036a41086a36020020034188096a41086a2204200341c0056a220136020020034194096a200341b8036a3602002003200341a8046a36029c092003200341a0056a36028c09200341013602880920034198046a20034188096a108c0220034188096a200341a0186a200328029804220720032802a004105f2003280288094101460d05200328028c092202450d032003200429030022084220883e02cc04200320023602c80420034188096a200341c8046a106b4101212e20032d00880922044101470d010c020b2008a7450d0b200110300c0b0b200341a8056a20034196096a290100370300200341b0056a2003419e096a290100370300200341b7056a200341a5096a2800003600002003200329018e093703a00520032d008d09210f20032d008c09211d20032f018a09213120032d008909212e0b02402008a7450d00200210300b200341b8036a41176a2202200341a0056a41176a280000360000200341b8036a41106a2205200341a0056a41106a290300370300200341b8036a41086a2206200341a0056a41086a290300370300200320032903a0053703b80320044101460d03200341a8046a41176a2002280000360000200341a8046a41106a2005290300370300200341a8046a41086a2006290300370300200320032903b8033703a8040c010b200341b0046a4200370300200341b8046a420037030041002131200341bf046a4100360000200342003703a8044100211d4100210f4100212e0b200341f8026a41176a2202200341a8046a41176a280000360000200341f8026a41106a2204200341a8046a41106a290300370300200341f8036a41086a200341a8046a41086a290300370300200341f8036a41106a2004290300370300200341f8036a41176a2002280000360000200320032903a8043703f8030240200328029c04450d00200710300b200342c1f3db99a8f3d78f3e3703b805200342faa3dfa29eecf58f543703b005200342b0a0d080e781cb92937f3703a805200342f5c1fc9bf099f7f2867f3703a005200320143602a8042003200341a8046a4104108b023703b803200341a0096a200341a8046a41046a36020020034188096a41106a200341b8036a41086a36020020034188096a41086a2207200136020020034194096a200341b8036a3602002003200341a8046a36029c092003200341a0056a36028c092003410136028809200341f8026a20034188096a108c0220034188096a200341a0186a20032802f8022204200328028003105f02402003280288094101470d004100212e0c070b0240200328028c0922020d00410021124100212b0c040b024020072903002208422088a722074104492007417c714104467222070d002002280004212b200228000021120b02402008a7450d00200210300b2007450d034101212e0c060b4100212e0b0240200328029c04450d00200710300b410221020c070b200341d0106a106c410021020c070b024020032802fc02450d00200410300b2003428580cfabfc80d1acc8003703b8052003429deee4a88fb6ac96f1003703b005200342b8d08eab80d2bcb1fc003703a805200342ea9a80e5d5b4e689bc7f3703a0052003201436029804200320034198046a4104108b023703a804200341a0096a20034198046a41046a36020020034198096a200341a8046a41086a36020020034188096a41086a200136020020034188096a410c6a200341a8046a360200200320034198046a36029c092003200341a0056a36028c092003410136028809200341b8036a20034188096a108c0220032802b803210420032802c00321022003420037028c09200341002802e88f42220736028809200341f8026a200341a0186a2004200220034188096a106802400240024002400240024020032d00f8024101460d00200341f8026a410c6a2802002102200341f8026a41086a280200212d20032802fc02211c024020032802bc03450d00200410300b200342b58a8dcc8c8e8be0203703b805200342f1d7d0ebf6d98cf4c3003703b005200342b8d08eab80d2bcb1fc003703a805200342ea9a80e5d5b4e689bc7f3703a0052003201436029804200320034198046a4104108b023703a804200341a0096a20034198046a41046a36020020034198096a200341a8046a41086a36020020034188096a41086a200136020020034188096a410c6a200341a8046a360200200320034198046a36029c092003200341a0056a36028c092003410136028809200341b8036a20034188096a108c0220032802b803210120032802c00321042003420037028c092003200736028809200341f8026a200341a0186a2001200420034188096a106820032d00f8024101460d03200341f8026a410c6a280200211b200341f8026a41086a280200213020032802fc02212f024020032802bc03450d00200110300b2002ad423c7e2208422088a70d0d2008a72201417f4c0d0d20010d01410421260c020b20032d00f902212e024020032802bc03450d00200410300b410421020c0a0b2001102f2226450d050b2001413c6e210720020d01410021060c020b20032d00f902212e024020032802bc03450d00200110300b41052102202d41ffffffff0371450d06201c10300c070b2002410274212a20034188096a41106a21024100211341002106201c210502400340200341b8036a200528020022272014108d0220032802c003212c20032802b8032101200341023a00b40520034188096a200341a0186a2001202c200341a0056a106a20032d0088094101460d01200341f8026a41086a222c200241086a290200370300200341f8026a41106a2229200241106a290200370300200341f8026a41186a221f200241186a290200370300200341f8026a41206a221e200241206a290200370300200341f8026a41286a2216200241286a280200360200200320022902003703f8022003280294092117200328029009212020032f018e09210420032d008d09212820032d008c092119024020032802bc03450d00200110300b20034188096a41286a221a201628020036020020034188096a41206a2216201e29030037030020034188096a41186a221e201f2903003703002002202929030037030020034188096a41086a2229202c290300370300200320032903f80237038809024020062007470d00200741016a22012007490d0b2007410174222c2001202c20014b1b22014104200141044b1bad423c7e2208422088a74541027421012008a7212c0240024020070d00200341003602a0050c010b200341043602a805200320263602a00520032007413c6c3602a4050b200341b8036a202c2001200341a0056a106920032802c0032101024020032802b8034101470d002001450d0c0c060b20032802bc0321262001413c6e21070b200541046a2105202620136a220120273602002001410c6a2017360200200141086a2020360200200141066a20043b0100200141056a20283a0000200141046a20193a0000200141106a200329038809370200200141186a2029290300370200200141206a2002290300370200200141286a201e290300370200200141306a2016290300370200200141386a201a2802003602002013413c6a2113200641016a2106202a417c6a222a450d020c000b0b20032d008909212e024020032802bc03450d00200110300b0240202d41ffffffff0371450d00201c10300b02402007450d002007413c6c450d00202610300b410621020240203041ffffffff03710d00201421290c070b202f1030201421290c060b0240202d41ffffffff0371450d00201c10300b201bad423c7e2208422088a70d072008a72201417f4c0d070240024020010d004104212d0c010b2001102f222d450d020b2001413c6e210502400240201b0d00410021130c010b201b410274212c20034188096a41106a21024100212741002113202f212a02400340200341b8036a2014202a2802002229108d0220032802c003211f20032802b8032101200341023a00b40520034188096a200341a0186a2001201f200341a0056a106a20032d0088094101460d01200341f8026a41086a221f200241086a290200370300200341f8026a41106a221e200241106a290200370300200341f8026a41186a2216200241186a290200370300200341f8026a41206a2217200241206a290200370300200341f8026a41286a2220200241286a280200360200200320022902003703f8022003280294092128200328029009211920032f018e09210420032d008d09211a20032d008c09211b024020032802bc03450d00200110300b20034188096a41286a221c202028020036020020034188096a41206a2220201729030037030020034188096a41186a221720162903003703002002201e29030037030020034188096a41086a221e201f290300370300200320032903f80237038809024020132005470d00200541016a22012005490d0b2005410174221f2001201f20014b1b22014104200141044b1bad423c7e2208422088a74541027421012008a7211f0240024020050d00200341003602a0050c010b200341043602a8052003202d3602a00520032005413c6c3602a4050b200341b8036a201f2001200341a0056a106920032802c0032101024020032802b8034101470d002001450d0c0c060b20032802bc03212d2001413c6e21050b202a41046a212a202d20276a220120293602002001410c6a2028360200200141086a2019360200200141066a20043b0100200141056a201a3a0000200141046a201b3a0000200141106a200329038809370200200141186a201e290300370200200141206a2002290300370200200141286a2017290300370200200141306a2020290300370200200141386a201c2802003602002027413c6a2127201341016a2113202c417c6a222c450d020c000b0b20032d008909212e024020032802bc03450d00200110300b0240203041ffffffff0371450d00202f10300b02402005450d002005413c6c450d00202d10300b4106210202402007450d002007413c6c450d00202610300b201421270c060b0240203041ffffffff0371450d00202f10300b20034188096a41176a2201200341f8036a41176a28000036000020034188096a41106a2202200341f8036a41106a29030037030020034188096a41086a2204200341f8036a41086a290300370300200320032903f80337038809200341a0186a106c2003419c036a200f3a00002003419b036a201d3a000020034199036a20313b000020034194036a2013360200200341f8026a41186a2005360200200341f8026a41106a200636020020034184036a20073602002003419d036a200329038809370000200341a5036a2004290300370000200341ad036a2002290300370000200341b4036a20012800003600002003202e3a0098032003202d36028c0320032026360280032003202b3602fc02200320123602f802200341a0056a41186a4200370300200341a0056a41106a4200370300200341a0056a41086a22014200370300200342003703a005200341a8046a41e2a4c000410f10ab012001200341a8046a41086a2202290000370300200320032900a8043703a005200341a8046a41acdac000410e10ab01200a41086a2002290000370000200a20032900a804370000200341003602d810200342013703d01020032802c00220032802c802200341d0106a10a601200320032802cc023602a018200341d0106a200341a0186a410410644120102f2201450d01200342203702a418200320013602a018200341a0186a200341c0026a41146a41201064200341d0106a20032802a018220120032802a8181064024020032802a418450d00200110300b200341f8026a41206a2101200341f8026a41146a2102200341f8026a41086a2104200320032802d0023602a018200341d0106a200341a0186a41041064200341a0056a412020032802d010220720032802d81041002802fcad42110300024020032802d410450d00200710300b200341d0106a41386a2207200141186a290200370300200341d0106a41306a2205200141106a290200370300200341d0106a41286a2206200141086a290200370300200341d0106a41206a22132001290200370300200341d0106a41086a222a2004108e02200341e4106a2002108e022003202b3602d410200320123602d010200341a0186a41386a2007290300370300200341a0186a41306a2005290300370300200341a0186a41286a2006290300370300200341a0186a41206a2013290300370300200341a0186a41186a200341d0106a41186a290300370300200341a0186a41106a200341d0106a41106a290300370300200341a0186a41086a202a290300370300200320032903d0103703a018200341a0056a41186a4200370300200341a0056a41106a4200370300200341a0056a41086a22024200370300200342003703a005200341a8046a41e2a4c000410f10ab012002200341a8046a41086a2204290000370300200320032900a8043703a005200341a8046a41d4dbc000411610ab01200a41086a2004290000370000200a20032900a804370000200341003602e003200342013703d8034120102f2202450d012003422037028c09200320023602880920034188096a200341a0186a41206a41201064200341d8036a200328028809220220032802900910640240200328028c09450d00200210300b200320032802a01836028809200341d8036a20034188096a41041064200320032802a41836028809200341d8036a20034188096a41041064200341a8186a200341d8036a108f02200341b4186a200341d8036a108f02200341a0056a412020032802d803220220032802e00341002802fcad42110300024020032802dc03450d00200210300b0240200341ac186a2802002202450d002002413c6c450d0020032802a81810300b0240200341a0186a41186a2802002202450d002002413c6c450d0020032802b41810300b200341a0056a41186a4200370300200341a0056a41106a22054200370300200341a0056a41086a22024200370300200342003703a005200341a8046a41e2a4c000410f10ab012002200341a8046a41086a2204290000370300200320032900a8043703a005200341a8046a41c8dcc000411110ab01200a41086a22062004290000370000200a20032900a804370000200342013703a01841002107200341003602a818200320183602d010200341a0186a200341d0106a41041064200320323602d010200341a0186a200341d0106a41041064200320333602d010200341a0186a200341d0106a41041064200320343602d010200341a0186a200341d0106a41041064200320353602d010200341a0186a200341d0106a41041064200320363602d010200341a0186a200341d0106a41041064200320373602d010200341a0186a200341d0106a41041064200320383602d010200341a0186a200341d0106a41041064200320393602d010200341a0186a200341d0106a41041064200341a0056a412020032802a018221320032802a81841002802fcad42110300024020032802a418450d00201310300b200341b8036a41186a200141186a290000370300200341b8036a41106a200141106a290000370300200341b8036a41086a200141086a290000370300200320012900003703b803200341a0056a41186a42003703002005420037030020024200370300200342003703a005200341a8046a41e2a4c000410f10ab0120022004290000370300200320032900a8043703a005200341a8046a41b4ddc000410e10ab0120062004290000370000200a20032900a804370000200341203602dc032003200341a0056a3602d80320034188096a200341a0056a412041002802d4ad421104000240024020032802880922010d000c010b200328028c09212a0240024020034190096a2802002202450d00200320012d00003a00a418200341013602a01820024101460d00200320012d00013a00a518200341023602a01820024102460d00200320012d00023a00a618200341033602a01820024103460d00200320012d00033a00a718200341043602a01820024104460d00200341a8186a20012d00043a0000200341053602a01820024105460d00200341a9186a20012d00053a0000200341063602a01820024106460d00200341aa186a20012d00063a0000200341073602a01820024107460d00200341ab186a20012d00073a0000200341083602a01820024108460d00200341ac186a20012d00083a0000200341093602a01820024109460d00200341ad186a20012d00093a00002003410a3602a0182002410a460d00200341ae186a20012d000a3a00002003410b3602a0182002410b460d00200341af186a20012d000b3a00002003410c3602a0182002410c460d00200341b0186a20012d000c3a00002003410d3602a0182002410d460d00200341b1186a20012d000d3a00002003410e3602a0182002410e460d00200341b2186a20012d000e3a00002003410f3602a0182002410f460d00200341b3186a20012d000f3a0000200341103602a01820024110460d00200341b4186a20012d00103a0000200341113602a01820024111460d00200341b5186a20012d00113a0000200341123602a01820024112460d00200341b6186a20012d00123a0000200341133602a01820024113460d00200341b7186a20012d00133a0000200341143602a01820024114460d00200341b8186a20012d00143a0000200341153602a01820024115460d00200341b9186a20012d00153a0000200341163602a01820024116460d00200341ba186a20012d00163a0000200341173602a01820024117460d00200341bb186a20012d00173a0000200341183602a01820024118460d00200341bc186a20012d00183a0000200341193602a01820024119460d00200341bd186a20012d00193a00002003411a3602a0182002411a460d00200341be186a20012d001a3a00002003411b3602a0182002411b460d00200341bf186a20012d001b3a00002003411c3602a0182002411c460d00200341c0186a20012d001c3a00002003411d3602a0182002411d460d00200341c1186a20012d001d3a00002003411e3602a0182002411e460d00200341c2186a20012d001e3a00002003411f3602a0182002411f460d00200341c3186a20012d001f3a0000200341a8046a41026a200341ad186a2d00003a0000200341f8036a41026a200341b4186a2d00003a0000200320032f01a4183b01d010200320032d00a6183a00d2102003200341ab186a2f00003b01a8042003200341b2186a2f01003b01f803200341bc186a2802002106200341b5186a2800002105200341ae186a2801002104200341203602a018200341a0186a41206a280200211320032800a718210220034198046a41026a200341bb186a2d00003a00002003200341b9186a2f00003b019804410121070c010b200342003702d41041002107200341002802dc94423602d010200341093602fc032003200341d8036a3602f8032003200341d0106a3602a804200341b4186a4101360200200342013702a418200341a0e6c1003602a0182003200341f8036a3602b018200341a8046a41d0adc000200341a0186a10321a20032802d01020032802d81010ad01024020032802d410450d0020032802d01010300b0b202a450d00200110300b0240024020070d00200341f0036a4200370300200341e8036a4200370300200341e0036a4200370300200342003703d8030c010b200341e1036a200341a8046a41026a2d00003a0000200341e8036a200341f8036a41026a2d00003a0000200341ef036a20034198046a41026a2d00003a0000200320032d00d2103a00da03200320032f01d0103b01d803200320023600db03200320032f01a8043b00df03200320043601e203200320032f01f8033b01e603200320053600e903200320032f0198043b00ed03200320133602f403200320063602f0030b02400240200d0d00420021210c010b200341033a00a818200342013703a0182003200d3602ac18200341a0186a10e60142002121200341a0056a41186a222a4200370300200341a0056a41106a22274200370300200341a0056a41086a22134200370300200342003703a005200341a8046a41e2a4c000410f10ab012013200341a8046a41086a2201290000370300200320032900a8043703a005200341a8046a41d0e2c000411910ab01200a41086a2001290000370000200a20032900a804370000200341206a200341a0056a10900220032903284280a094a58d1d20032802201b2115201141106a21042011200d41047422066a2117200341b1186a2120200341a0186a4101722116200341a0186a4104722107200341c4186a2114200341d7106a212820034188096a410472211e201121020340024002402006450d0020022802002105200228020421012003200241086a2902002208370390092003200136028c09200320053602880920010d0120172004460d002011200d4104746a21020340200441106a21010240200441086a280200450d00200441046a28020010300b2001210420022001470d000b0b0240200e41ffffffff0071450d00201110300b200341b8056a4200370300200341b0056a4200370300200341a0056a41086a22014200370300200342003703a005200341a8046a41e2a4c000410f10ab012001200341a8046a41086a2202290000370300200320032900a8043703a005200341a8046a41b4ddc000410e10ab01200a41086a2002290000370000200a20032900a8043700004120102f2201450d04200342203702a418200320013602a018200341a0186a200341d8036a41201064200341a0056a412020032802a018220120032802a81841002802fcad42110300024020032802a418450d00200110300b200341c1186a200341f0036a290300370000200341b9186a200341e8036a290300370000200341b1186a200341e0036a290300370000200341d0186a2021370300200320032903d8033700a918200341043a00a818200342013703a018200341a0186a10e6010c020b202a200341d8036a41186a222c2903003703002027200341d8036a41106a22292903003703002013200341d8036a41086a221f290300370300200320032903d8033703a0052014201e1063200741186a202a290300370000200741106a2027290300370000200741086a2013290300370000200720032903a005370000200320053602a018200341d0106a200341a0186a1066202c200341d0106a41186a2903003703002029200341d0106a41106a290300370300201f200341d0106a41086a290300370300200320032903d0103703d80320012008422088a72205108b0221092003200536028c09200320013602880902400240024002402005450d0020012d0000212c20032005417f6a36028c092003200141016a36028809202c0d00200341a0186a20034188096a10950120032d00a0182205410b460d00200341d0106a201641e7031085051a200341a0056a200341d0106a41e7031085051a2005410f7141756a0e020200010b200320093700a918200341003a00a818200342023703a018200341a0186a10e6010c020b200342013703d010200341003a00d810200320053a00a0182016200341a0056a41e7031085051a20034188096a200341d0106a200341a0186a201510910242002122024002402003280288090e03000001000b20032903900921220b202820034188096a41c8071085051a2020200341d0106a41cf071085051a200320093700a918200341023a00a818200342023703a018202220217c2121200341a0186a10e6010c010b200320093700a918200341013a00a818200342023703a018200341a0186a10e6010b02402008a7450d00200110300b200241106a2102200641706a2106200441106a21040c000b0b024002400240200341d8036a200341b8036a41201088050d00200341b8056a4200370300200341b0056a4200370300200341a0056a41086a22014200370300200342003703a005200341a8046a41e2a4c000410f10ab012001200341a8046a41086a2202290000370300200320032900a8043703a005200341a8046a41e8dec000411910ab01200a41086a2002290000370000200a20032900a8043700002003200d3602a018200341a0056a4120200341a0186a410441002802fcad421103000240200d0d00200e41ffffffff0071450d00201110300b2003280280032106200328028803212d20032802cc02211b02400240200c0d0041002101200341b0186a4100360200200341003602a4180c010b200341a0186a2010200c109301200b21010b200341d0106a41106a200341a0186a41106a22022903002208370300200341d0106a41086a200341a0186a41086a22042903002209370300200320032903a01822153703d0102002200837030020042009370300200320153703a01802402001450d0020032001417f6a22133602b818200341a0186a410020032802a4181b220528020021040240024020052802082207200528020422012f01b6014f0d00200121020c010b03400240200128020022020d00410021020c020b200441016a210420012f01b401210720022101200720022f01b6014f0d000b0b024002402004450d00200741027420026a41bc016a280200210102402004417f6a2204450d00034020012802b80121012004417f6a22040d000b0b410021040c010b200741016a2104200221010b200520013602042005410036020020052004360208202d450d02200220074102746a41046a210103402001280200210741002101202d2104202d2102024003400240024020072006200441017620016a2204413c6c6a28020022054d0d00200441016a21010c010b2004210220072005460d020b200220016b2104200220014b0d000c050b0b2013450d0120032013417f6a22133602b818200341a0186a410020032802a4181b220528020021040240024020052802082207200528020422012f01b6014f0d00200121020c010b03400240200128020022020d00410021020c020b200441016a210420012f01b401210720022101200720022f01b6014f0d000b0b024002402004450d00200741027420026a41bc016a280200210102402004417f6a2204450d00034020012802b80121012004417f6a22040d000b0b410021040c010b200741016a2104200221010b200520013602042005410036020020052004360208200220074102746a41046a21010c000b0b0240200c0d004100210c410021024100210b0c030b200c21020340200c2f01b60121012010450d032010417f6a2110200c20014102746a41b8016a280200210c20022802b80121020c000b0b200341003602a018200341d8036a200341b8036a200341a0186a41c0bac000108a02000b41d0bac00041d40041a4bbc000102d000b200341ec106a200b360200200341e8106a2001360200200341e4106a200c360200200341dc106a4200370200200341d8106a20023602002003410036028411200341003602f010200342013703d010200341a0186a200341d0106a10920202400240024020032802a818450d00417f417f200341fc106a280200200341f8106a2802006b410475410020032802f0101b220120034190116a2802002003418c116a2802006b41047541002003280284111b6a220220022001491b220141016a220220022001491bad42147e2208422088a70d0a2008a72201417f4c0d0a2001102f2228450d04202820032903a018370200202841106a200341a0186a41106a280200360200202841086a200341a0186a41086a290300370200200341a0186a200341d0106a41c8001085051a200141146e211c20034188096a200341a0186a10920202402003280290090d00410121200c020b41142101410121200240034002402020201c470d00201c417f417f20032802cc1820032802c8186b410475410020032802c0181b220220032802e01820032802dc186b410475410020032802d4181b6a220420042002491b220241016a220420042002491b6a2202201c490d0d201c41017422042002200420024b1b22024104200241044b1bad42147e2208422088a74541027421022008a7210402400240201c0d00200341003602a0050c010b200341043602a805200320283602a0052003201c41146c3602a4050b200341d8036a20042002200341a0056a106920032802e003210220032802d8034101460d0220032802dc032128200241146e211c0b202820016a2202200329038809370200200241106a20034188096a41106a280200360200200241086a20034188096a41086a2202290300370200200141146a2101202041016a212020034188096a200341a0186a1092022002280200450d030c000b0b2002450d0a0c040b024020032802d010450d00200341d0106a4104721093020b024020032802f0102202450d000240200341fc106a2802002207200341f8106a28020022046b2201450d002001417f2001417f4a1b2202410120024101481b200420076b22022001200220014a1b4104766c4104742102200441086a2101034002402001280200450d002001417c6a28020010300b200141106a2101200241706a22020d000b20032802f01021020b200341f4106a28020041ffffffff0071450d00200210300b41002802e88f42212802402003280284112202450d00024020034190116a28020022072003418c116a28020022046b2201450d002001417f2001417f4a1b2202410120024101481b200420076b22022001200220014a1b4104766c4104742102200441086a2101034002402001280200450d002001417c6a28020010300b200141106a2101200241706a22020d000b20032802841121020b20034188116a28020041ffffffff0071450d00200210300b4100211c410021200c010b024020032802a018450d00200341a0186a4104721093020b024020032802c0182207450d000240200341cc186a2802002202200341c8186a28020022046b2201450d002001417f2001417f4a1b2205410120054101481b200420026b22022001200220014a1b4104766c4104742102200441086a2101034002402001280200450d002001417c6a28020010300b200141106a2101200241706a22020d000b0b200341c4186a28020041ffffffff0071450d00200710300b024020032802d4182207450d000240200341e0186a2802002202200341dc186a28020022046b2201450d002001417f2001417f4a1b2205410120054101481b200420026b22022001200220014a1b4104766c4104742102200441086a2101034002402001280200450d002001417c6a28020010300b200141106a2101200241706a22020d000b0b200341d8186a28020041ffffffff0071450d00200710300b0240202041144b0d00202041014d0d01202041146c20286a41586a21014101210203402001200241016a22021094022001416c6a210120202002470d000c020b0b2020410176ad42147e2208422088a70d082008a7222f417f4c0d08202f102f2226450d022028416c6a212b202841446a212e41002802e88f42211041002112410021292020210d024002400340200d21144100210d4101210402402014417f6a2201450d000240024002400240024002402028200141146c6a221341046a280200220120282014417e6a220741146c6a220441046a2802002202490d0020042802002105024020012002470d0020132802002005490d010b202e201441146c6a2101410221130340200521270240201420132204470d004100210d201421040c080b02402002200141046a2802002207490d00200441016a21132002200747212a200128020021052001416c6a222c210120072102202a0d01202c210120072102202720054f0d010b0b201420046b210d0c010b4100210d02402007450d00202e201441146c6a2101034002402002200141046a2802002204490d00024020022004470d00200141146a2802002001280200490d010b2007210d0c020b2001416c6a2101200421022007417f6a22070d000b0b2014200d490d01201420204b0d022014200d6b22044101762207450d002028200d41146c6a2101202b201441146c6a21020340200341a0186a41106a2205200141106a2213280200360200200341a0186a41086a222a200141086a2227290200370300200320012902003703a018200241106a222c280200210c200241086a221f290200210820012002290200370200202720083702002013200c360200202c2005280200360200201f202a290300370200200220032903a018370200200141146a21012002416c6a21022007417f6a22070d000b0b200d450d04200441094b0d04201420204b0d022014200d6b2104200d417f6a2101202b200d41146c6a2102034020142001490d072002200441016a22041094022001417f6a220720014f0d042002416c6a2102200721012004410a490d000c040b0b200d201441ccf7c0001048000b2014202041ccf7c0001042000b2014200d417f6a2201490d032014202041dcf7c0001042000b200741016a210d0b024020292012470d00201241016a22012012490d0c201241017422022001200220014b1b22014104200141044b1b220141ffffffff01712001464102742102200141037421010240024020120d00200341003602a0180c010b200341043602a818200320103602a018200320124103743602a4180b200341d0106a20012002200341a0186a106920032802d8102101024020032802d0104101470d002001450d0d0c070b20032802d4102110200141037621120b201020294103746a220120043602042001200d360200202941016a22172129024020174102490d0003400240024002400240201020172229417f6a22174103746a2201280200450d00202941037420106a220741746a2802002204200128020422024d0d00202941024d0d0520102029417d6a221f4103746a2802042201200220046a4d0d01202941034d0d05200741646a280200200120046a4b0d050c010b20294103490d012001280204210220102029417d6a221f4103746a28020421010b20012002490d010b2029417e6a211f0b02400240024002402029201f41016a22014d0d0002402029201f4d0d0002402010201f4103746a2214280204221920142802006a2204201020014103746a2216280200221e490d000240200420204b0d00201441046a211a2028201e41146c6a22022016280204220c41146c22076a2101200441146c210502402004201e6b222a200c6b2204200c490d00202620022007108505220420076a21130240200c41014e0d00200421050c080b202a200c4a0d06200421050c070b20262001200441146c2207108505222c20076a211302400240200c4101480d00200441014e0d010b202c2105200121020c070b202b20056a210403402001416c6a210702400240201341706a2802002205200141706a280200222a4f0d00200721050c010b2013416c6a212702402005202a470d002007210520272802002007280200490d010b2001210720272113202721050b20042005290200370200200441106a200541106a280200360200200441086a200541086a290200370200200220074f0d052004416c6a2104200721012013202c4b0d000c050b0b20042020418cf8c0001042000b201e2004418cf8c0001048000b201f202941fcf7c0001033000b2001202941ecf7c0001033000b202c2105200721020c010b202820056a212a200421040340024002400240200141046a2802002207200441046a2802002205490d0020072005470d01200128020020042802004f0d010b200141146a2107200421050c010b200441146a210520012107200421010b20022001290200370200200241106a200141106a280200360200200241086a200141086a290200370200200241146a21022007202a4f0d01200521042007210120052013490d000b0b20022005201320056b220120014114706b1085051a201a2019200c6a3602002014201e3602002016201641086a2029201f6b41037441706a1086051a41012129201741014b0d000b0b200d450d020c000b0b2001201441dcf7c0001048000b0240201241ffffffff0171450d00201010300b202f4114702101202f4114490d00202f2001460d00202610300b200341e8106a22014200370300200341d0106a41106a22024200370300200341d0106a41086a22044200370300200342003703d010200341a8046a41e2a4c000410f10ab012004200341a8046a41086a2207290000370300200320032900a8043703d010200341a8046a4184dec000411010ab0120012007290000370300200220032900a804370300200341203602ac042003200341d0106a3602a8044100211e200341d8036a200341d0106a412041002802d4ad421104000240024002400240024020032802d803221f0d00410021010c010b20032802dc0321102003200341d8036a41086a2802003602bc032003201f3602b803200341186a200341b8036a109b0102400240024020032802180d0002400240200328021c22120d00410121014100212c410021290c010b200341b5056a210f200341ae056a210e200341a0056a4107722118200341a0186a410472212a200341b9186a2119200341b2186a211a200341a0186a410b6a21264100212c41002129410021160340024002400240024020032802bc0322014104490d00201641016a211620032802b8032213280000210720032001417c6a22273602bc032003201341046a3602b8032001417b6a210241002101034020272001460d01202a20016a201320016a220541046a2d00003a00002003200141016a22043602a0182003200541056a3602b803200320023602bc032002417f6a21022004210120044120470d000b200341e8046a41026a222b202641026a2d00003a0000200341e4046a41026a222e201a41026a2d00003a00002003202a2f01003b01ec04200320262f00003b01e8042003201a2f00003b01e4042003202a41026a2d00003a00ee0420032802c018212f20032802bc18213020032800b518213120032801ae18211120032800a718210b200341e0046a41026a221d201941026a2d00003a0000200320192f00003b01e004024020290d00419403102f2229450d0f4100210c202941003b0132202941003602000b20292113200c21140340201341046a210d20132f01322217410274212741002104417f21024100210102400340024020272001470d00201721020c020b201320016a2105200241016a2102200441206a2104200141046a2101417f200541046a2802002205200747200520074b1b22054101460d000b0240200541016a0e020100010b200341a0186a41026a2202202b2d00003a000020034188096a41026a2207202e2d00003a0000200341a0056a41026a2205201d2d00003a0000200320032f01e8043b01a018200320032f01e4043b018809200320032f01e0043b01a00520032f01ec042127201320046a220141166a20032d00ee043a0000200141146a20273b00002001411d6a20022d00003a00002001411b6a20032f01a0183b0000200141246a20072d00003a0000200141226a20032f0188093b0000200141176a200b3600002001411e6a2011360000200141256a2031360000200141296a20032f01a0053b00002001412b6a20052d00003a0000200141306a202f3600002001412c6a20303600000c050b02402014450d002014417f6a2114201320024102746a4194036a28020021130c010b0b02402017410a4b0d00200341a0186a41026a220120032d00ee043a000020034188096a41026a2204202b2d00003a0000200341a0056a41026a2205202e2d00003a0000200341f8036a41026a2227201d2d00003a0000200320032f01ec043b01a018200320032f01e8043b018809200320032f01e4043b01a005200320032f01e0043b01f803200241016a21140240200220174f222b0d00200d20144102746a200d20024102746a201720026b4102741086051a0b200d20024102746a2007360200200341dc046a41026a220720012d00003a0000200341d8046a41026a220d20042d00003a0000200341d4046a41026a220420052d00003a0000200341d0046a41026a220520272d00003a0000200320032f01a0183b01dc04200320032f0188093b01d804200320032f01a0053b01d404200320032f01f8033b01d004201341346a21010240202b0d00200120144105746a200120024105746a201720026b4105741086051a0b200120024105746a220120032f01dc043b0000200141026a20072d00003a0000200141096a200d2d00003a0000200120032f01d8043b0007200141106a20042d00003a0000200120032f01d4043b000e2001200b3600032001201136000a20012031360011200141176a20052d00003a0000200120032f01d0043b00152001202f36001c200120303600182013201741016a3b0132202c41016a212c0c040b4100213a4104210502400240200241054f0d00200221270c010b4105210541052127024002402002417b6a0e020201000b200241796a21274101213a410621050c010b410021274101213a0b419403102f2204450d0e200441003b013220044100360200200420132f0132223b2005417f736a22023b0132200d20054102746a280200213c200341dc046a41026a2217201341346a223d20054105746a220141026a2d00003a0000200320012f00003b01dc04200341d8046a41026a2239200141096a2d00003a0000200320012f00073b01d804200341d4046a41026a223e200141106a2d00003a0000200320012f000e3b01d404200341d0046a41026a223f200141176a2d00003a0000200320012f00153b01d0040240024002400240024002402002410c4f0d00203b200541016a22146b2002470d012001280003213b200128000a214020012800112141200128001c214220012800182143200441046a200d20144102746a20024102741085051a200441346a203d20144105746a20024105741085051a201320053b0132200341c8046a41026a223d20392d00003a00002003419c056a41026a2244203e2d00003a000020034198056a41026a2245203f2d00003a0000200320032f01dc043b019804200320172d00003a009a04200320032f01d8043b01c804200320032f01d4043b019c05200320032f01d0043b01980520034188096a41026a220d202b2d00003a0000200341a0056a41026a222b202e2d00003a0000200320032f01ec043b01a018200320032d00ee043a00a218200320032f01e8043b018809200320032f01e4043b01a005200341f8036a41026a222e201d2d00003a0000200320032f01e0043b01f80320042013203a1b220241046a21010240202741016a221420022f013222054b221d0d00200120144102746a200120274102746a200520276b4102741086051a0b200120274102746a2007360200201720032d00a2183a00002039200d2d00003a0000203e202b2d00003a0000203f202e2d00003a0000200320032f01a0183b01dc04200320032f0188093b01d804200320032f01a0053b01d404200320032f01f8033b01d004200241346a21010240201d0d00200120144105746a200120274105746a200520276b4105741086051a0b200120274105746a220120032f01dc043b0000200141026a20172d00003a0000200141096a20392d00003a0000200120032f01d8043b0007200141106a203e2d00003a0000200120032f01d4043b000e2001200b3600032001201136000a20012031360011200141176a203f2d00003a0000200120032f01d0043b00152001202f36001c200120303600182002200541016a3b01322003418c056a41026a220120442d00003a0000200320032f0198043b019405200320032d009a043a00960520034190056a41026a2230203d2d00003a0000200320032f019c053b018c05200320032f01c8043b01900520034188056a41026a221120452d00003a0000200320032f0198053b018805200320032f0194053b01fc04200320032d0096053a00fe04200341f8046a41026a220b20302d00003a0000200320032f0190053b01f804200341f4046a41026a223120012d00003a0000200320032f018c053b01f404200341f0046a41026a221d20112d00003a0000200320032f0188053b01f0040240201328020022010d004100212f0c080b4100212f203b21462040214720412148204321492042214a203c214b2004214c0240034020132f0130210520034194056a41026a224d20032d00fe043a0000203020312d00003a0000200320032f01fc043b019405200320032f01f4043b019005200122272f0132223a410b490d014100211441042107024020054105490d0020052107024002402005417b6a0e020201000b200541796a210541012114410621070c010b4100210541012114410521070b41c403102f2204450d16200441003b013220044100360200200420272f0132223b2007417f736a22023b0132202741046a224e20074102746a280200213c2017202741346a224f20074105746a220141026a2d00003a00002039200141096a2d00003a0000203e200141106a2d00003a0000203f200141176a2d00003a0000200320012f00003b01dc04200320012f00073b01d804200320012f000e3b01d404200320012f00153b01d0042002410c4f0d04203b200741016a22136b2002470d052001280003213b200128000a214020012800112141200128001c214220012800182143200441046a204e201341027422506a20024102741085051a200441346a204f20134105746a20024105741085051a202720073b0132200d20392d00003a0000202b203e2d00003a0000202e203f2d00003a0000200320032f01dc043b01a018200320172d00003a00a218200320032f01d8043b018809200320032f01d4043b01a005200320032f01d0043b01f80320042f0132220241016a21012002410c4f0d06203a20076b22072001470d07202f41016a212f20044194036a202720506a4194036a20074102741085051a4100210102400340200420014102746a4194036a280200220720013b013020072004360200200120024f0d01200120012002496a220120024d0d000b0b203d200d2d00003a00002044202b2d00003a00002045202e2d00003a0000200320032d00a2183a009a04200320032f01a0183b019804200320032f0188093b01c804200320032f01a0053b019c05200320032f01f8033b0198052004202720141b220741046a21130240200541016a220120072f013222024b223a0d00201320014102746a201320054102746a200220056b4102741086051a0b20132005410274224e6a204b360200201820032f01f8043b0000201841026a200b2d00003a0000200e20032f0190053b0000200e41026a20302d00003a0000200f20032f01f0043b0000200f41026a201d2d00003a00002003204d2d00003a00a205200320032f0194053b01a005200320463600a305200320473601aa05200320483600b1052003204a3602bc05200320493602b805200741346a21140240203a0d00201420014105746a201420054105746a200220056b4105741086051a0b200241016a2113201420054105746a221420032903a005370000201441186a200341a0056a41186a290300370000201441106a200341a0056a41106a290300370000201441086a200341a0056a41086a29030037000020074194036a21140240200541026a2246200241026a223a4f0d00201420464102746a201420014102746a200220056b4102741086051a0b201420014102746a204c360200200720133b013202402001203a4f0d002007204e6a4198036a2101034020012802002202200541016a22053b013020022007360200200141046a210120132005470d000b0b2011203d2d00003a000020034184056a41026a220120442d00003a000020034180056a41026a220220452d00003a0000200320032d009a043a008e05200320032f0198043b018c05200320032f01c8043b018805200320032f019c053b018405200320032f0198053b018005200320032d008e053a00fe04200320032f018c053b01fc04200b20112d00003a0000200320032f0188053b01f804203120012d00003a0000200320032f0184053b01f404201d20022d00003a0000200320032f0180053b01f004203b21462040214720412148204321492042214a20272113203c214b2004214c20272802002201450d090c000b0b202741046a21010240203a20054d22040d00200120054102746a220241046a2002203a20056b4102741086051a0b2001200541027422146a204b360200201820032f01f8043b0000201841026a200b2d00003a0000200e20032f01f4043b0000200e41026a20312d00003a0000200f20032f01f0043b0000200f41026a201d2d00003a0000200320032d00fe043a00a205200320032f01fc043b01a005200320463600a305200320473601aa05200320483600b1052003204a3602bc05200320493602b805200541016a2101202741346a2102024020040d00200220014105746a200220054105746a203a20056b4105741086051a0b203a41016a2107200220054105746a220220032903a005370000200241186a200341a0056a41186a290300370000200241106a200341a0056a41106a290300370000200241086a200341a0056a41086a29030037000020274194036a2102203a41026a2113024020040d00201420026a41086a200220014102746a203a20056b4102741086051a0b202720073b0132200220014102746a204c3602000240200120134f0d0020272001417f6a22014102746a4198036a2102034020022802002204200141016a22013b013020042027360200200241046a210220072001470d000b0b410021012005213c2032212f203321042034213b203521402036214120372143203821420c080b2002410b41e8a2c2001042000b41f8a2c200412841a0a3c200102d000b2002410b41e8a2c2001042000b41f8a2c200412841a0a3c200102d000b2001410c41f8a3c2001042000b41f8a2c200412841a0a3c200102d000b410021010c040b200d200b2d00003a0000202b20312d00003a0000202e201d2d00003a0000200320032d00fe043a00a218200320032f01fc043b01a018200320032f01f8043b018809200320032f01f4043b01a005200320032f01f0043b01f803410121010b024020010d0020422138204321372041213620402135203b213420042133202f2132202c41016a212c0c010b41c403102f2202450d0b2002202936029403200241003b013220024100360200202941003b013020292002360200200c202f470d0820022f01322201410b4f0d07200c41016a210c2002200141016a22073b0132200220014102746a41046a203c360200200220014105746a220141346a20032f01a0183b0000200141366a20032d00a2183a0000200141376a203b3600002001413b6a20032f0188093b00002001413d6a200d2d00003a00002001413e6a2040360000200141c2006a20032f01a0053b0000200141c4006a202b2d00003a0000200141c5006a2041360000200141cb006a202e2d00003a0000200141c9006a20032f01f8033b0000200141d0006a2042360000200141cc006a204336000020024194036a20074102746a2004360200200420073b01302004200236020020422138204321372041213620402135203b213420042133202f213220022129202c41016a212c0b20162012470d000b410121010b2003202c3602a818200320293602a4182003200c3602a01820010d01200341a0186a1095020b2003420037028c0941002101200341002802dc944236028809200341093602fc032003200341a8046a3602f803200320034188096a3602a005200341b4186a4101360200200342013702a418200341a0e6c1003602a0182003200341f8036a3602b018200341a0056a41d0adc000200341a0186a10321a20032802880920032802900910ad010240200328028c09450d0020032802880910300b0c010b410121010b2010450d00201f10300b0240024020010d004100212c0c010b2003200c3602b8032029211e0b2003202c3602c0032003201e3602bc03200342003702dc032020450d022028202041146c6a2119200341a0186a4104722127200341a0186a41246a211a200341d0106a410472211620032802b8032126410121012028212a0340202a280204212c200341d0106a200341d8036a202a109602202c201b202c201b4b1b211020014101712114202a41146a210c0240024020032802d0104101460d0020034188096a41106a201641106a28020036020020034188096a41086a201641086a290200370300200320162902003703880902400240201e450d00202a2802002105201e21292026211f0340202941046a210220292f01322217410574211341002101417f210702400340024020132001470d00201721070c020b20022802002104200741016a2107200141206a2101200241046a2102417f2004200547200420054b1b22044101460d000b0240200441016a0e020100010b202920016a220141146a29000021082001411c6a2900002109200141246a2900002115200341a0186a41186a2001412c6a290000370300200341a0186a41106a2015370300200341a0186a41086a2009370300200320083703a0180c030b201f450d01201f417f6a211f202920074102746a4194036a28020021290c000b0b200341a0186a41186a4200370300200341a0186a41106a4200370300200341a0186a41086a4200370300200342003703a0180b20034188096a200341a0186a10970221010c010b20032802d81020032802dc104105746a41346a21010b202c201020141b211b200341a0056a41186a2202200141186a2204290000370300200341a0056a41106a2207200141106a2205290000370300200341a0056a41086a2213200141086a222c290000370300200320012900003703a005202a2802042129201a202a41086a1063202741186a2002290300370000202741106a2007290300370000202741086a2013290300370000202720032903a005370000200320293602a018200341d0106a200341a0186a10662004200341d0106a41186a2903003700002005200341d0106a41106a290300370000202c200341d0106a41086a290300370000200120032903d01037000041002101200c212a200c2019470d000c030b0b41aca1c200412041cca1c200102d000b41eaa0c2004130419ca1c200102d000b200341a0056a41186a22164200370300200341a0056a41106a22174200370300200341a0056a41086a22104200370300200342003703a005200341a8046a41e2a4c000410f10ab012010200341a8046a41086a2214290000370300200320032900a8043703a005200341a8046a4194e2c000411a10ab01200a41086a22192014290000370000200a20032900a804370000200341086a200341a0056a109002024002400240202d450d002006202d413c6c6a210c200341d0106a410472212c20032802b803211f0340200341d0106a200341d8036a20061096020240024020032802d0104101460d0020034188096a41106a202c41106a28020036020020034188096a41086a202c41086a2902003703002003202c2902003703880902400240201e450d0020062802002105201e212a201f21270340202a41046a2102202a2f01322229410574211341002101417f210702400340024020132001470d00202921070c020b20022802002104200741016a2107200141206a2101200241046a2102417f2004200547200420054b1b22044101460d000b0240200441016a0e020100010b202a20016a220141146a29000021082001411c6a2900002109200141246a2900002115200341a0186a41186a2001412c6a290000370300200341a0186a41106a2015370300200341a0186a41086a2009370300200320083703a0180c030b2027450d012027417f6a2127202a20074102746a4194036a280200212a0c000b0b200341a0186a41186a4200370300200341a0186a41106a4200370300200341a0186a41086a4200370300200342003703a0180b20034188096a200341a0186a10970221010c010b20032802d81020032802dc104105746a41346a21010b200341d0106a41086a200141086a290000370300200341d0106a41106a200141106a290000370300200341d0106a41186a200141186a290000370300200320012900003703d0100240024020062d00184101460d00200341a0186a41186a4200370300200341a0186a41106a4200370300200341a0186a41086a4200370300200342003703a0180c010b200341a0186a41186a200641316a290000370300200341a0186a41106a200641296a290000370300200341a0186a41086a200641216a290000370300200320062900193703a0180b200341d0106a200341a0186a41201088050d022006413c6a2206200c470d000b0b20032802dc03210520032802d803211320032802e003212a201642003703002017420037030020104200370300200342003703a005200341a8046a41e2a4c000410f10ab0120102014290000370300200320032900a8043703a005200341a8046a4184dec000411010ab0120192014290000370000200a20032900a804370000202a41246c41046a2201417f4c0d090240024020010d00410121020c010b2001102f2202450d040b20034100360290092003200136028c09200320023602880920034188096a202a10a501024020050d004100210141002102410021040c020b200521022013210420052101034020022f01322107024020040d00202a21040c030b2004417f6a2104200220074102746a4194036a280200210220012802940321010c000b0b41b4bbc000412941e0bbc000102d000b200341b4186a2007360200200341b0186a2002360200200342003703a818200320013602a418200341003602a01802402004450d00034020032004417f6a3602b818200341a0186a410020011b220628020021040240024020062802082207200628020422022f01324f0d00200221010c010b03400240200228020022010d00410021010c020b200441016a210420022f0130210720012102200720012f01324f0d000b0b024002402004450d00200741027420016a4198036a280200210202402004417f6a2204450d00034020022802940321022004417f6a22040d000b0b410021040c010b200741016a2104200121020b2006200236020420064100360200200620043602082003200120074102746a41046a2802002802003602d01020034188096a200341d0106a410410644120102f2202450d03200342203702d410200320023602d010200341d0106a200120074105746a41346a4120106420034188096a20032802d010220120032802d8101064024020032802d410450d00200110300b20032802b8182204450d0120032802a41821010c000b0b200341a0056a4120200328028809220120032802900941002802fcad421103000240200328028c09450d00200110300b02402005450d0002402013450d00034020052802940321052013417f6a22130d000b0b0240202a450d004100210203400240024002400240200220052f0132490d0041002102034041002101024020052802002206450d00200241016a210720052f01302104200621010b024041c40341940320021b450d00200510300b024020010d00410021050c050b2007210220012105200420012f01324f0d000b200120044105746a41346a2106200120044102746a220241046a2802002113024020070d00200121050c020b20024198036a280200210502402007417f6a2202450d00034020052802940321052002417f6a22020d000b0b410021020c020b200520024105746a41346a2106200520024102746a41046a280200211320022104200521010b200441016a21020b200320062f00003b018c052003200641026a2d00003a008e0520034188056a41026a200120044105746a2201413d6a2d00003a000020032001413b6a2f00003b01880520034184056a41026a200141c4006a2d00003a00002003200141c2006a2f00003b0184050b2013450d02202a417f6a222a0d000b0b41002101034020052802002102024041c40341940320011b450d00200510300b2001417f6a21012002210520020d000b0b200341b8056a4200370300200341b0056a4200370300200341a0056a41086a22014200370300200342003703a005200341a8046a41e2a4c000410f10ab012001200341a8046a41086a2202290000370300200320032900a8043703a005200341a8046a41e0dfc000410d10ab01200a41086a2002290000370000200a20032900a8043700002003201b3602a018200341a0056a4120200341a0186a410441002802fcad42110300200341b8036a10950202402020450d002028202041146c6a2104202821010340200141146a210202402001410c6a280200450d00200141086a28020010300b2002210120042002470d000b0b0240201c450d00201c41146c450d00202810300b02402003280284032201450d002001413c6c450d0020032802800310300b02402003280290032201450d002001413c6c450d00200328028c0310300b024020032802c402450d0020032802c00210300b200320032800e1013602c8012003200341e4016a2800003600cb01200041186a41013a0000200041106a202137030020004201370308200020032802c8013600192000411c6a20032800cb01360000200042003703000b20034180206a24000f0b102a000b024020032802fc02450d00200410300b41032102410021040c020b4101212e410121020c010b0b200341a0186a106c0b200341d0106a41086a2029360200200320273602d41020032004411074202e41ff0171410874722002723602d010200341b4186a4101360200200342013702a418200341a8bac0003602a0182003410a36028c09200320034188096a3602b0182003200341d0106a36028809200341a0186a41b0bac000103a000b102c000bb60d010c7f230041e0086b22012400200141a0086a2202420037030020014198086a2203420037030020014188086a41086a220442003703002001420037038808200141a8086a41dca4c000410610ab012004200141a8086a41086a2205290000370300200120012900a80837038808200141a8086a41acc0c100410610ab0120022005290000370300200320012900a808370300200141086a20014188086a4120108502024002402001280208450d00200128020c450d00200141a0086a2206420037030020014198086a2207420037030020014188086a41086a220242003703002001420037038808200141a8086a41dca4c000410610ab012002200141a8086a41086a2204290000370300200120012900a80837038808200141a8086a418cc4c100410e10ab01200341086a22082004290000370000200320012900a808370000200141203602bc08200120014188086a3602b808200141d0086a20014188086a412041002802d4ad421104000240024020012802d00822090d00410321050c010b20012802d408210a024002400240200141d0086a41086a280200220b450d00410121050240024020092d00000e03000401020b200b417f6a4104490d012009280001210c410021050c030b410221050c010b200142003702ac08200141002802dc94423602a808200141093602c4082001200141b8086a3602c0082001200141a8086a3602cc08200141246a410136020020014201370214200141a0e6c1003602102001200141c0086a360220200141cc086a41d0adc000200141106a10321a20012802a80820012802b00810ad01024020012802ac08450d0020012802a80810300b410321050b0b200a450d00200910300b200141106a200041e0071085051a200141fc076a4200370200200141f4076a200c36020020014102200520054103461b3602f007200141013602f8072006420037030020074200370300200242003703002001420037038808200141a8086a41dca4c000410610ab0120022004290000370300200120012900a80837038808200141a8086a41d0c1c100410a10ab0120082004290000370000200320012900a808370000200120014188086a41201085020240024002402001280204410020012802001b220041016a22042000490d00200141f8076a2105200141a0086a220c420037030020014198086a2206420037030020014188086a41086a220242003703002001420037038808200141a8086a41dca4c000410610ab012002200141a8086a41086a2200290000370300200120012900a80837038808200141a8086a41d0c1c100410a10ab01200341086a22072000290000370000200320012900a808370000200120043602a80820014188086a4120200141a8086a410441002802fcad42110300200c420037030020064200370300200242003703002001420037038808200141a8086a41dca4c000410610ab0120022000290000370300200120012900a80837038808200141a8086a418cc1c100410610ab0120072000290000370000200320012900a808370000200141003602d808200142013703d0080240024020012802f0070e03030001040b200141013a00a808200141d0086a200141a8086a410110640c030b200141023a00a808200141d0086a200141a8086a410110640c020b024020012802104102490d0020012d00184102470d0002400240200141286a2802000e020200010b200141386a280200410b470d01200141c0006a109c0120014188046a10a2010c010b200141306a280200410b470d00200141386a109c0120014180046a10a2010b20012802fc0741ffffff3f71450d0320012802f80710300c030b200141003a00a808200141d0086a200141a8086a41011064200120012802f4073602a808200141d0086a200141a8086a410410640b200141106a200141d0086a10d7012005200141d0086a10fc0341002802a4ad4221032000200141d0086a41086a280200360200200120012903d0083703a80820014188086a4120200141a8086a2003110400024020012802104102490d0020012d00184102470d0002400240200141286a2802000e020200010b200141386a280200410b470d01200141c0006a109c0120014188046a10a2010c010b200141306a280200410b470d00200141386a109c0120014180046a10a2010b20012802fc0741ffffff3f71450d0120012802f80710300c010b20002802004102490d0020002d00084102470d0002400240200041186a2802000e020200010b200041286a280200410b470d01200041306a109c01200041f8036a10a2010c010b200041206a280200410b470d00200041286a109c01200041f0036a10a2010b200141e0086a24000bb00401027f230041106b220224000240024002400240024002400240024020012d00000e06010402030500010b20004200370204200041002802dc9442360200200241003a00002000200241011064200141046a2802002001410c6a280200200010a6010c050b20004200370204200041002802dc9442360200200241023a000020002002410110644120102f2203450d0520024220370204200220033602002002200141016a41201064200020022802002201200228020810642002280204450d04200110300c040b20004200370204200041002802dc9442360200200241043a000020002002410110642000200141016a41041064200141086a280200200141106a280200200010a6010c030b20004200370204200041002802dc9442360200200241053a000020002002410110642000200141016a41041064200141086a280200200141106a280200200010a6010c020b20004200370204200041002802dc9442360200200241063a000020002002410110642000200141016a41041064200141086a280200200141106a280200200010a6010c010b20004200370204200041002802dc9442360200200241073a00002000200241011064200241003a000020002002410110640240200141046a2802004101460d00200241003a000020002002410110640c010b200241013a000020002002410110642002200141086a280200360200200020024104106420022001410c6a28020036020020002002410410640b200241106a24000f0b102a000be810010c7f230041d0086b22022400200241286a22034200370300200241206a22044200370300200241106a41086a2205420037030020024200370310200241f0006a41e2a4c000410f10ab012005200241f0006a41086a220629000037030020022002290070370310200241f0006a41ecd9c000411510ab01200320062900003703002004200229007037030041002107024002400240200241106a412041002802ccad42110100450d0020004183023b0100200041086a4113360200200041046a41f4b1c000360200200041026a41003a00000c010b20034200370300200442003703002005420037030020024200370310200241f0006a41e2a4c000410f10ab012005200629000037030020022002290070370310200241f0006a41acdac000410e10ab01200441086a200629000037000020042002290070370000200241203602342002200241106a360230200241386a200241106a412041002802d4ad4211040002400240200228023822050d000c010b200228023c21032002200241c0006a28020036024c20022005360248200241f0006a200241c8006a10f5010240024020022802702207450d00200241fc006a2802002108200228027421060c010b2002420037026441002107200241002802dc9442360260200241093602542002200241306a3602502002200241e0006a36025c20024184016a410136020020024201370274200241a0e6c1003602702002200241d0006a36028001200241dc006a41d0adc000200241f0006a10321a2002280260200228026810ad0102402002280264450d00200228026010300b0b2003450d00200510300b024002400240024002402007450d00200241f0006a10b00120022802704101470d010240200141086a280200220520022802744d0d0020004183023b0100200041086a4106360200200041046a41acb2c000360200200041026a41023a00000c050b20024194016a280200210920024190016a280200210a200241286a220b4200370300200241206a220c4200370300200241106a41086a2203420037030020024200370310200241f0006a41e2a4c000410f10ab012003200241f0006a41086a220d29000037030020022002290070370310200241f0006a41a0d9c000411c10ab01200441086a200d29000037000020042002290070370000200241086a200241106a4120108502024020022802084101460d00200b4200370300200c4200370300200241106a41086a2203420037030020024200370310200241f0006a41e2a4c000410f10ab012003200241f0006a41086a220d29000037030020022002290070370310200241f0006a4198dbc000410b10ab01200441086a220c200d290000370000200420022900703700002002200241106a4120108502410020082002280204410020022802001b6b220b200b20084b1b200a4d0d002001280200210a200241286a4200370300200241206a42003703002003420037030020024200370310200241f0006a41e2a4c000410f10ab012003200d29000037030020022002290070370310200241f0006a419cdfc000411110ab01200c200d29000037000020042002290070370000200541046a2203417f4c0d0302400240024002400240024020030d0020024100360278200242013703700c010b2003102f220d450d0920024100360278200220033602742002200d360270200541c000490d01200541808001490d022005418080808004490d030b200241033a0060200241f0006a200241e0006a4101106420022005360260200241f0006a200241e0006a410410640c030b200220054102743a0060200241f0006a200241e0006a410110640c020b200220054102744101723b0160200241f0006a200241e0006a410210640c010b20022005410274410272360260200241f0006a200241e0006a410410640b200820096a2108200241f0006a200a20051064200241106a412020022802702205200228027841002802fcad4211030002402002280274450d00200510300b200241286a220d4200370300200241206a220a4200370300200241106a41086a2205420037030020024200370310200241f0006a41e2a4c000410f10ab012005200241f0006a41086a220329000037030020022002290070370310200241f0006a41ecdac000411410ab01200441086a220b200329000037000020042002290070370000200241013a0060200241106a4120200241e0006a410141002802fcad42110300200d4200370300200a42003703002005420037030020024200370310200241f0006a41e2a4c000410f10ab012005200329000037030020022002290070370310200241f0006a41a0d9c000411c10ab01200b20032900003700002004200229007037000020022008360270200241106a4120200241f0006a410441002802fcad42110300200241e0006a41086a200141086a28020036020020022001290200370360200d4200370300200a42003703002005420037030020024200370310200241f0006a41e2a4c000410f10ab012005200329000037030020022002290070370310200241f0006a41ecd9c000411510ab01200b200329000037000020042002290070370000200241106a4120200241e0006a10980202402002280264450d00200228026010300b2002200836027c200241003a007820024201370370200241f0006a10e601200041083a00002006450d07200710300c070b20004183023b0100200041086a4114360200200041046a4190b2c000360200200041026a41013a00000c040b20004183023b0100200041086a411a360200200041046a41c4b2c000360200200041026a41033a00000c040b20004183023b0100200041086a411d360200200041046a41e8b2c000360200200041026a41043a00000c020b102c000b102a000b2006450d00200710300b200141046a280200450d00200128020010300b200241d0086a24000bb81904057f017e057f017e230041d0026b22022400024002400240200128020422030d00200041023602000c010b200128020022042d0000210520012003417f6a22063602042001200441016a360200024002400240024002400240024002400240024002400240024002400240024020050e0400010302030b2006450d0e20042d0001210520012003417e6a22063602042001200441026a36020002400240024002400240024002400240024002400240024020050e0a000102030405060708091a0b20064104490d192004280002210520012003417a6a3602042001200441066a3602002005418194ebdc034f0d19410121010c0a0b20022001109b0120022802000d182001280204220320022802042204490d182004417f4c0d1a0240024020040d00410121050c010b2004102f2205450d172005410020041087051a200128020421030b20032004490d172005200128020020041085051a200128020422032004490d0d2004ad220742208620078421072001200320046b3602042001200128020020046a360200410221010c080b20064108490d17200429000221072001200341766a36020420012004410a6a360200410321010c080b200241086a2001109b0120022802080d1620012802042203200228020c2204490d162004417f4c0d180240024020040d00410121050c010b2004102f2205450d152005410020041087051a200128020421030b20032004490d152005200128020020041085051a200128020422032004490d0f2004ad220742208620078421072001200320046b3602042001200128020020046a360200410421010c060b200241106a2001109b0120022802100d152001280204220320022802142204490d152004417f4c0d170240024020040d00410121050c010b2004102f2205450d142005410020041087051a200128020421030b20032004490d142005200128020020041085051a200128020422032004490d0f2004ad220742208620078421072001200320046b3602042001200128020020046a360200410521010c050b200241a0016a200110ea0120022802a00122054102460d1420022902a4012107410621010c040b200241286a2001109b0120022802280d13200228022c2208200128020441186e2204200420084b1bad42187e2207422088a70d152007a72204417f4c0d150240024020040d00410421050c010b2004102f2205450d120b200441186ead2107024002402008450d0002400340200241206a2001109b0102400240024020022802200d002001280204220320022802242204490d002004417f4c0d1c0240024020040d00410121060c010b2004102f2206450d192006410020041087051a200128020421030b024020032004490d002006200128020020041085052109200128020422032004490d112001200320046b3602042001200128020020046a360200200241186a2001109b01024020022802180d002001280204220a200228021c2203490d002003417f4c0d1e0240024020030d004101210b0c010b2003102f220b450d1b200b410020031087051a2001280204210a0b0240200a2003490d00200b20012802002003108505210a200128020422062003490d142001200620036b3602042001200128020020036a3602002007422088a722062007a7470d05200641016a220b20064f0d040c1f0b200b10300b2004450d010b200610300b02402007422088a72201450d00200141186c21042005210103400240200141046a280200450d00200128020010300b0240200141106a280200450d002001410c6a28020010300b200141186a2101200441686a22040d000b0b2007a72201450d19200141186c450d190c180b2006410174220c200b200b200c491b220b4104200b41044b1bad42187e220d422088a745410274210b200da7210c0240024020060d00200241003602a0010c010b200241043602a801200220053602a0012002200641186c3602a4010b200241d0006a200c200b200241a0016a10692002280258210b20022802504101460d0220022802542105200742808080807083200b41186ead8421070b2005200641186c6a2206200436020420062009360200200641106a2003ad220d422086200d843702002006410c6a200a360200200641086a200436020020074280808080107c21072008417f6a22080d000c030b0b200b450d170c130b2005450d140b410721010c030b200241a0016a200110eb0120022802a0012205450d1220022902a4012107410821010c020b200241306a2001109b0120022802300d112001280204220320022802342204490d112004417f4c0d130240024020040d00410121050c010b2004102f2205450d102005410020041087051a200128020421030b20032004490d102005200128020020041085051a200128020422032004490d0c2001200320046b22033602042001200128020020046a2206360200024020034104490d002004ad220742208620078421072006280000210420012003417c6a3602042001200641046a360200410921010c030b20040d100c110b200241386a2001109b0120022802380d1020012802042203200228023c2204490d102004417f4c0d120240024020040d00410121050c010b2004102f2205450d0f2005410020041087051a200128020421030b20032004490d0f2005200128020020041085051a200128020422032004490d0c2004ad220742208620078421072001200320046b3602042001200128020020046a360200410a21010b0b20004100360200200041186a2004360200200041106a20073702002000410c6a2005360200200041086a20013602000c0f0b02402006450d0020042d0001210520012003417e6a220a3602042001200441026a360200024002400240024002400240024020050e050001020304070b200a4104490d062004280002210520012003417a6a3602042001200441066a360200410121010c040b200241a0016a200110ec0120022802a0012205450d0520022902a4012107200241d0006a200241ac016a41cc001085051a410221010c030b200241c0006a2001109b0120022802400d042001280204220320022802442204490d042004417f4c0d140240024020040d00410121050c010b2004102f2205450d112005410020041087051a200128020421030b20032004490d032005200128020020041085051a200128020422032004490d0a2004ad220742208620078421072001200320046b3602042001200128020020046a360200410321010c020b2003417d6a2105200241a0016a410472210b410021030340200a2003460d04200420036a220641026a2d00002108200120053602042001200641036a360200200b20036a20083a00002002200341016a22063602a0012005417f6a21052006210320064120470d000b20024190026a41106a200241bc016a2d00003a000020024190026a41086a200241b4016a2902003703002002200241ac016a22012902003703900220022902a401210d200241cb026a200241a0016a410f6a280000360000200241a8026a41086a220420024190026a410f6a2f00003b01002002200d3703c002200220012802003602c80220022002290097023703a802200241b5026a200241c0016a2800003600002002200241bd016a2800003601b2022002419e016a20022d00c2023a00002002200d3d019c0120022900c7022107200241f8016a41086a22012004290300370300200241f8016a41106a2204200241a8026a41106a2d00003a0000200220022903a8023703f801200241d0006a41106a20042d00003a0000200241d0006a41086a2001290300370300200220022903f801370350200d421888a72105410421010c010b200241c8006a2001109b0120022802480d0220012802042203200228024c2204490d022004417f4c0d120240024020040d00410121050c010b2004102f2205450d0f2005410020041087051a200128020421030b20032004490d012005200128020020041085051a200128020422032004490d0d2004ad220742208620078421072001200320046b3602042001200128020020046a360200410521010b200020013a0004200020022f019c013b00052000410c6a2007370200200041086a2005360200200041076a2002419e016a2d00003a0000200041146a200241d0006a41cc001085051a200041013602000c100b200510300b200041023602000c0e0b02402006450d0020012003417e6a3602042001200441026a3602000b200041023602000c0d0b200041023602000c0c0b2004200341f0f5c100104a000b2004200341f0f5c100104a000b2003200641f0f5c100104a000b2004200341f0f5c100104a000b2004200341f0f5c100104a000b2004200341f0f5c100104a000b2004200341f0f5c100104a000b2004200341f0f5c100104a000b2004200341f0f5c100104a000b102a000b200510300b200041023602000b200241d0026a24000f0b102c000bc70101047f024002400240024020012802042202450d00200128020022032d0000210420012002417f6a22053602042001200341016a36020020040e020203010b200041023602000f0b200041023602000f0b200041003602000f0b0240024020054104490d002003280001210520012002417b6a22043602042001200341056a360200200441034b0d010b200041023602000f0b2000200536020420004101360200200328000521042001200241776a3602042001200341096a360200200041086a20043602000b8b0503037f017e077f230041306b22022400200241086a2001109b01024002402002280208450d00200041003602000c010b02400240200228020c22032001280204410c6e2204200420034b1bad420c7e2205422088a70d002005a72204417f4c0d00024002400240024020040d00410421060c010b2004102f2206450d010b2004410c6e2107024020030d00410021030c040b41002108410021094100210a0240034020022001109b0120022802000d012001280204220b20022802042204490d012004417f4c0d040240024020040d004101210c0c010b2004102f220c450d03200c410020041087051a2001280204210b0b0240200b2004490d00200c20012802002004108505210c2001280204220b2004490d042001200b20046b3602042001200128020020046a3602000240200a2007470d002008200a41016a220b2008200b4b1b220b4104200b41044b1bad420c7e2205422088a745410274210b2005a7210702400240200a0d00200241003602200c010b2002410436022820022009360224200220063602200b200241106a2007200b200241206a10692002280218210b024020022802104101470d00200b0d050c070b20022802142106200b410c6e21070b200620096a220b200c360200200b41046a2004ad2205422086200584370200200841026a21082009410c6a21092003200a41016a220a460d060c010b0b200c10300b200041003602000240200a450d002006210403400240200441046a280200450d00200428020010300b2004410c6a2104200941746a22090d000b0b2007450d042007410c6c450d04200610300c040b102a000b2004200b41f0f5c100104a000b102c000b2000200736020420002006360200200041086a20033602000b200241306a24000bda1105107f017e037f017e017f230041d0016b22022400200241e8006a200110f50102400240024002400240024020022802682203450d00200241386a41086a200241e8006a41106a290300370300200241386a41106a200241e8006a41186a290300370300200241386a41186a200241e8006a41206a290300370300200241386a41206a200241e8006a41286a290300370300200241386a41286a20024198016a2802003602002002200241e8006a41086a2204290300370338200228026c2105200241e8006a200110eb01200228026822060d01200041003602000c020b200041003602000c020b20042802002107200228026c2108200241206a2001109b0102400240024002400240024020022802200d00410421092002280224220a200128020441047622042004200a4b1b220b4104742204417f4c0d090240200b450d002004102f2209450d090b02400240200a450d004100210c4100210d4100210e02400340200128020422044104490d012001280200220f280000211020012004417c6a3602042001200f41046a360200200241186a2001109b0120022802180d012001280204220f200228021c2204490d012004417f4c0d0d0240024020040d00410121110c010b2004102f2211450d0d2011410020041087051a2001280204210f0b0240200f2004490d0020112001280200200410850521112001280204220f2004490d062001200f20046b3602042001200128020020046a3602000240200e200b470d00200c200e41016a220f200c200f4b1b220f4104200f41044b1b220f41ffffffff0071200f46410274210b200f410474210f02400240200e0d00200241003602680c010b200241043602702002200d36026c200220093602680b200241c0016a200f200b200241e8006a106920022802c801210f024020022802c0014101470d00200f0d0f0c100b20022802c4012109200f410476210b0b2009200d6a220f2010360200200f41086a2004ad2212422086201284370200200f41046a2011360200200c41026a210c200d41106a210d200a200e41016a220e470d010c040b0b201110300b0240200e450d00200941086a2101034002402001280200450d002001417c6a28020010300b200141106a2101200d41706a220d0d000b0b200b41ffffffff0071450d02200910300c020b2009450d014100210a0b200241106a2001109b0120022802100d0420022802142113200242003702b40102402013450d00410021140340200128020422044104490d052001280200220d280000211520012004417c6a3602042001200d41046a360200200241086a2001109b0120022802080d05200228020c220e200128020441047622042004200e4b1b2204410474220d417f4c0d0b0240024020040d004104210f0c010b200d102f220f450d0b0b2004ad211202400240200e450d00024002400340200128020422044104490d022001280200220d280000211120012004417c6a3602042001200d41046a36020020022001109b0120022802000d022001280204220d20022802042204490d022004417f4c0d100240024020040d004101210c0c010b2004102f220c450d10200c410020041087051a2001280204210d0b200d2004490d01200c20012802002004108505210c2001280204220d2004490d092001200d20046b3602042001200128020020046a3602000240024020124220882216a7220d2012a7470d00200d41016a2210200d490d12200d4101742217201020102017491b22104104201041044b1b221041ffffffff007120104641027421172010410474211002400240200d0d00200241003602680c010b200241043602702002200f360268200220164204863e026c0b200241c0016a20102017200241e8006a106920022802c801211020022802c0014101460d0120022802c401210f2012428080808070832010410476ad8421120b200f200d4104746a220d200c360204200d2011360200200d41086a2004ad221642208620168437020020124280808080107c2112200e417f6a220e0d010c050b0b2010450d0f0c0e0b200c10300b02402012422088a72201450d0020014104742104200f41086a2101034002402001280200450d002001417c6a28020010300b200141106a2101200441706a22040d000b0b201242ffffffff0083500d07200f10300c070b200f450d060b201441016a21142002201237026c2002200f360268200241c0016a200241b0016a2015200241e8006a10af02024020022802c001220e450d00024020022802c8012204450d002004410474210d200e41086a2104034002402004280200450d002004417c6a28020010300b200441106a2104200d41706a220d0d000b0b20022802c40141ffffffff0071450d00200e10300b20142013470d000b0b200241286a41086a2201200241b0016a41086a280200360200200220022903b001370328200041306a200241386a41286a280200360200200041286a200241386a41206a290300370200200041206a200241386a41186a290300370200200041186a200241386a41106a290300370200200041106a200241386a41086a290300370200200041086a2002290338370200200041c8006a200a360200200041c4006a200b360200200041c0006a20093602002000413c6a2007360200200041386a2008360200200041346a20063602002000200536020420002003360200200041cc006a2002290328370200200041d4006a20012802003602000c070b200041003602000c040b2004200f41f0f5c100104a000b2004200d41f0f5c100104a000b200241e8006a41086a200241b0016a41086a280200360200200220022903b001370368200241e8006a10e3010b41002101200041003602000240200a450d00200a410474210d03400240200920016a220441086a280200450d00200441046a28020010300b200d200141106a2201470d000b0b200b41ffffffff0071450d00200910300b02402007450d002007410c6c21042006210103400240200141046a280200450d00200128020010300b2001410c6a2101200441746a22040d000b0b2008450d002008410c6c450d00200610300b2005450d00200310300b200241d0016a24000f0b102a000b102c000bfb0201037f230041206b22022400200241003602082002420137030002404120102f2203450d002002422037021420022003360210200241106a200141106a412010642002200228021022032002280218106402402002280214450d00200310300b2001200210ee014120102f2203450d002002422037021420022003360210200241106a200141306a412010642002200228021022032002280218106402402002280214450d00200310300b4120102f2203450d002002422037021420022003360210200241106a200141d0006a412010642002200228021022032002280218106402402002280214450d00200310300b2001280204210320022001410c6a280200220110a5010240200141246c2201450d000340200241106a200310e7012002200228021022042002280218106402402002280214450d00200410300b200341246a21032001415c6a22010d000b0b2000200228020022032002280208106502402002280204450d00200310300b200241206a24000f0b102a000bb30101027f230041106b2202240002400240024002402000280200220341c000490d00200341808001490d012003418080808004490d02200241033a00032001200241036a41011064200220002802003602042001200241046a410410640c030b200220034102743a00032001200241036a410110640c020b200220034102744101723b010a20012002410a6a410210640c010b2002200341027441027236020c20012002410c6a410410640b200241106a24000b930201017f230041106b22022400200220002903003703082001200241086a410810640240024020002903084201510d00200241003a00082001200241086a410110640c010b200241013a00082001200241086a410110642002200041106a2903003703082001200241086a410810640b0240024020002903184201510d00200241003a00082001200241086a410110640c010b200241013a00082001200241086a410110642002200041206a2903003703082001200241086a410810640b0240024020002903284201510d00200241003a00082001200241086a410110640c010b200241013a00082001200241086a410110642002200041306a2903003703082001200241086a410810640b200241106a24000bce33050d7f017e067f017e047f23004190076b22022400200241146a10af01360200200241013a001020024201370308024002400240024002400240024002400240024020012802000e09010203040506070800010b200241d0036a200141086a10f10120024188046a200141c0006a10f101200241c0046a200141f8006a10f101200241f8046a200141b0016a10f101200241b0056a200141e8016a10f101200241e8056a200141a0026a10f101200241a0066a200141d8026a10f101200241d8066a20014190036a10f101200041386a200241d0036a41306a290300370300200041306a200241d0036a41286a290300370300200041286a200241d0036a41206a290300370300200041206a200241d0036a41186a290300370300200041186a200241d0036a41106a290300370300200041106a200241d0036a41086a290300370300200020022903d003370308200041c0006a200229038804370300200041c8006a20024188046a41086a290300370300200041d0006a20024188046a41106a290300370300200041d8006a20024188046a41186a290300370300200041e0006a20024188046a41206a290300370300200041e8006a20024188046a41286a290300370300200041f0006a20024188046a41306a290300370300200041a8016a200241c0046a41306a290300370300200041a0016a200241c0046a41286a29030037030020004198016a200241c0046a41206a29030037030020004190016a200241c0046a41186a29030037030020004188016a200241c0046a41106a29030037030020004180016a200241c0046a41086a290300370300200041f8006a20022903c004370300200041e0016a200241f8046a41306a290300370300200041d8016a200241f8046a41286a290300370300200041d0016a200241f8046a41206a290300370300200041c8016a200241f8046a41186a290300370300200041c0016a200241f8046a41106a290300370300200041b8016a200241f8046a41086a290300370300200041b0016a20022903f80437030020004198026a200241b0056a41306a29030037030020004190026a200241b0056a41286a29030037030020004188026a200241b0056a41206a29030037030020004180026a200241b0056a41186a290300370300200041f8016a200241b0056a41106a290300370300200041f0016a200241b0056a41086a290300370300200041e8016a20022903b005370300200041d0026a200241e8056a41306a290300370300200041c8026a200241e8056a41286a290300370300200041c0026a200241e8056a41206a290300370300200041b8026a200241e8056a41186a290300370300200041b0026a200241e8056a41106a290300370300200041a8026a200241e8056a41086a290300370300200041a0026a20022903e80537030020004188036a200241a0066a41306a29030037030020004180036a200241a0066a41286a290300370300200041f8026a200241a0066a41206a290300370300200041f0026a200241a0066a41186a290300370300200041e8026a200241a0066a41106a290300370300200041e0026a200241a0066a41086a290300370300200041d8026a20022903a006370300200041c0036a200241d8066a41306a290300370300200041b8036a200241d8066a41286a290300370300200041b0036a200241d8066a41206a290300370300200041a8036a200241d8066a41186a290300370300200041a0036a200241d8066a41106a29030037030020004198036a200241d8066a41086a29030037030020004190036a20022903d806370300200042083703000c080b200042003703000c070b200241d8066a200141086a10f10120004201370300200041386a200241d8066a41306a290300370300200041306a200241d8066a41286a290300370300200041286a200241d8066a41206a290300370300200041206a200241d8066a41186a290300370300200041186a200241d8066a41106a290300370300200041106a200241d8066a41086a290300370300200020022903d8063703080c060b200241a0066a200141086a10f101200241d8066a200141c0006a10f101200041386a200241a0066a41306a290300370300200041306a200241a0066a41286a290300370300200041286a200241a0066a41206a290300370300200041206a200241a0066a41186a290300370300200041186a200241a0066a41106a290300370300200041106a200241a0066a41086a290300370300200020022903a006370308200041c0006a20022903d806370300200041c8006a200241d8066a41086a290300370300200041d0006a200241d8066a41106a290300370300200041d8006a200241d8066a41186a290300370300200041e0006a200241d8066a41206a290300370300200041e8006a200241d8066a41286a290300370300200041f0006a200241d8066a41306a290300370300200042023703000c050b200241e8056a200141086a10f101200241a0066a200141c0006a10f101200241d8066a200141f8006a10f101200041386a200241e8056a41306a290300370300200041306a200241e8056a41286a290300370300200041286a200241e8056a41206a290300370300200041206a200241e8056a41186a290300370300200041186a200241e8056a41106a290300370300200041106a200241e8056a41086a290300370300200020022903e805370308200041c0006a20022903a006370300200041c8006a200241a0066a41086a290300370300200041d0006a200241a0066a41106a290300370300200041d8006a200241a0066a41186a290300370300200041e0006a200241a0066a41206a290300370300200041e8006a200241a0066a41286a290300370300200041f0006a200241a0066a41306a29030037030020004203370300200041a8016a200241d8066a41306a290300370300200041a0016a200241d8066a41286a29030037030020004198016a200241d8066a41206a29030037030020004190016a200241d8066a41186a29030037030020004188016a200241d8066a41106a29030037030020004180016a200241d8066a41086a290300370300200041f8006a20022903d8063703000c040b200241b0056a200141086a10f101200241e8056a200141c0006a10f101200241a0066a200141f8006a10f101200241d8066a200141b0016a10f101200041386a200241b0056a41306a290300370300200041306a200241b0056a41286a290300370300200041286a200241b0056a41206a290300370300200041206a200241b0056a41186a290300370300200041186a200241b0056a41106a290300370300200041106a200241b0056a41086a290300370300200020022903b005370308200041c0006a20022903e805370300200041c8006a200241e8056a41086a290300370300200041d0006a200241e8056a41106a290300370300200041d8006a200241e8056a41186a290300370300200041e0006a200241e8056a41206a290300370300200041e8006a200241e8056a41286a290300370300200041f0006a200241e8056a41306a290300370300200041a8016a200241a0066a41306a290300370300200041a0016a200241a0066a41286a29030037030020004198016a200241a0066a41206a29030037030020004190016a200241a0066a41186a29030037030020004188016a200241a0066a41106a29030037030020004180016a200241a0066a41086a290300370300200041f8006a20022903a006370300200041e0016a200241d8066a41306a290300370300200041d8016a200241d8066a41286a290300370300200041d0016a200241d8066a41206a290300370300200041c8016a200241d8066a41186a290300370300200041c0016a200241d8066a41106a290300370300200041b8016a200241d8066a41086a290300370300200041b0016a20022903d806370300200042043703000c030b200241f8046a200141086a10f101200241b0056a200141c0006a10f101200241e8056a200141f8006a10f101200241a0066a200141b0016a10f101200241d8066a200141e8016a10f101200041386a200241f8046a41306a290300370300200041306a200241f8046a41286a290300370300200041286a200241f8046a41206a290300370300200041206a200241f8046a41186a290300370300200041186a200241f8046a41106a290300370300200041106a200241f8046a41086a290300370300200020022903f804370308200041c0006a20022903b005370300200041c8006a200241b0056a41086a290300370300200041d0006a200241b0056a41106a290300370300200041d8006a200241b0056a41186a290300370300200041e0006a200241b0056a41206a290300370300200041e8006a200241b0056a41286a290300370300200041f0006a200241b0056a41306a290300370300200041a8016a200241e8056a41306a290300370300200041a0016a200241e8056a41286a29030037030020004198016a200241e8056a41206a29030037030020004190016a200241e8056a41186a29030037030020004188016a200241e8056a41106a29030037030020004180016a200241e8056a41086a290300370300200041f8006a20022903e805370300200041e0016a200241a0066a41306a290300370300200041d8016a200241a0066a41286a290300370300200041d0016a200241a0066a41206a290300370300200041c8016a200241a0066a41186a290300370300200041c0016a200241a0066a41106a290300370300200041b8016a200241a0066a41086a290300370300200041b0016a20022903a00637030020004198026a200241d8066a41306a29030037030020004190026a200241d8066a41286a29030037030020004188026a200241d8066a41206a29030037030020004180026a200241d8066a41186a290300370300200041f8016a200241d8066a41106a290300370300200041f0016a200241d8066a41086a290300370300200041e8016a20022903d806370300200042053703000c020b200241c0046a200141086a10f101200241f8046a200141c0006a10f101200241b0056a200141f8006a10f101200241e8056a200141b0016a10f101200241a0066a200141e8016a10f101200241d8066a200141a0026a10f101200041386a200241c0046a41306a290300370300200041306a200241c0046a41286a290300370300200041286a200241c0046a41206a290300370300200041206a200241c0046a41186a290300370300200041186a200241c0046a41106a290300370300200041106a200241c0046a41086a290300370300200020022903c004370308200041c0006a20022903f804370300200041c8006a200241f8046a41086a290300370300200041d0006a200241f8046a41106a290300370300200041d8006a200241f8046a41186a290300370300200041e0006a200241f8046a41206a290300370300200041e8006a200241f8046a41286a290300370300200041f0006a200241f8046a41306a290300370300200041a8016a200241b0056a41306a290300370300200041a0016a200241b0056a41286a29030037030020004198016a200241b0056a41206a29030037030020004190016a200241b0056a41186a29030037030020004188016a200241b0056a41106a29030037030020004180016a200241b0056a41086a290300370300200041f8006a20022903b005370300200041e0016a200241e8056a41306a290300370300200041d8016a200241e8056a41286a290300370300200041d0016a200241e8056a41206a290300370300200041c8016a200241e8056a41186a290300370300200041c0016a200241e8056a41106a290300370300200041b8016a200241e8056a41086a290300370300200041b0016a20022903e80537030020004198026a200241a0066a41306a29030037030020004190026a200241a0066a41286a29030037030020004188026a200241a0066a41206a29030037030020004180026a200241a0066a41186a290300370300200041f8016a200241a0066a41106a290300370300200041f0016a200241a0066a41086a290300370300200041e8016a20022903a006370300200041d0026a200241d8066a41306a290300370300200041c8026a200241d8066a41286a290300370300200041c0026a200241d8066a41206a290300370300200041b8026a200241d8066a41186a290300370300200041b0026a200241d8066a41106a290300370300200041a8026a200241d8066a41086a290300370300200041a0026a20022903d806370300200042063703000c010b20024188046a200141086a10f101200241c0046a200141c0006a10f101200241f8046a200141f8006a10f101200241b0056a200141b0016a10f101200241e8056a200141e8016a10f101200241a0066a200141a0026a10f101200241d8066a200141d8026a10f101200041386a20024188046a41306a290300370300200041306a20024188046a41286a290300370300200041286a20024188046a41206a290300370300200041206a20024188046a41186a290300370300200041186a20024188046a41106a290300370300200041106a20024188046a41086a2903003703002000200229038804370308200041c0006a20022903c004370300200041c8006a200241c0046a41086a290300370300200041d0006a200241c0046a41106a290300370300200041d8006a200241c0046a41186a290300370300200041e0006a200241c0046a41206a290300370300200041e8006a200241c0046a41286a290300370300200041f0006a200241c0046a41306a290300370300200041a8016a200241f8046a41306a290300370300200041a0016a200241f8046a41286a29030037030020004198016a200241f8046a41206a29030037030020004190016a200241f8046a41186a29030037030020004188016a200241f8046a41106a29030037030020004180016a200241f8046a41086a290300370300200041f8006a20022903f804370300200041e0016a200241b0056a41306a290300370300200041d8016a200241b0056a41286a290300370300200041d0016a200241b0056a41206a290300370300200041c8016a200241b0056a41186a290300370300200041c0016a200241b0056a41106a290300370300200041b8016a200241b0056a41086a290300370300200041b0016a20022903b00537030020004198026a200241e8056a41306a29030037030020004190026a200241e8056a41286a29030037030020004188026a200241e8056a41206a29030037030020004180026a200241e8056a41186a290300370300200041f8016a200241e8056a41106a290300370300200041f0016a200241e8056a41086a290300370300200041e8016a20022903e805370300200041d0026a200241a0066a41306a290300370300200041c8026a200241a0066a41286a290300370300200041c0026a200241a0066a41206a290300370300200041b8026a200241a0066a41186a290300370300200041b0026a200241a0066a41106a290300370300200041a8026a200241a0066a41086a290300370300200041a0026a20022903a00637030020004188036a200241d8066a41306a29030037030020004180036a200241d8066a41286a290300370300200041f8026a200241d8066a41206a290300370300200041f0026a200241d8066a41186a290300370300200041e8026a200241d8066a41106a290300370300200041e0026a200241d8066a41086a290300370300200041d8026a20022903d806370300200042073703000b4108210302400240024002400240024002400240024020012802000e09000102030405060708000b410021030c070b410121030c060b410221030c050b410321030c040b410421030c030b410521030c020b410621030c010b410721030b024002402003417f6a220420034b0d002001200410f2012203450d00200041086a2105200041c0006a2106200041f8006a2107200041b0016a2108200041e8016a2109200041a0026a210a200041d8026a210b20004190036a210c200241d8066a410172210d4100210e034041002104024020032d00000d00200241d8066a200241086a10f3014108210420022d00d8062203410a460d00200241a0066a41026a200d41026a2d00003a00002002200d2f00003b01a006200229038807210f2002280284072110200228028007211120022802fc06211220022802f806211320022802f406211420022802f006211520022903e806211620022802e406211720022802e006211820022802dc062119200321040b200241e8056a41026a221a200241a0066a41026a2d00003a0000200220022f01a0063b01e805024002400240024002400240024002400240200e0e0807000102030405060b0b200621032000280200417e6a41074f0d0a0c070b200721032000280200417d6a41064f0d090c060b200821032000280200417c6a41054f0d080c050b200921032000280200417b6a41044f0d070c040b200a21032000280200417a6a41034f0d060c030b200b2103200028020041796a41024f0d050c020b200c210320002903004208510d010c040b200521032000280200417f6a41084f0d030b200310f401200320043a0000200341306a200f3700002003412c6a2010360000200341286a2011360000200341246a2012360000200341206a20133600002003411c6a2014360000200341186a2015360000200341106a20163700002003410c6a201736000041082104200341086a2018360000200341046a2019360000200320022f01e8053b0001200341036a201a2d00003a000002400240024002400240024002400240024020012802000e09000102030405060708000b410021040c070b410121040c060b410221040c050b410321040c040b410421040c030b410521040c020b410621040c010b410721040b2004200e41026a22036b221a20044b0d012003417f6a210e2001201a10f20122030d000b0b200241086a109c0120024190076a24000f0b4188a9c000412f41b8a9c0001050000bf10801067f02400240024002400240024002400240024002400240024020012d00000e0a01020304050607080900010b4104210241062103024002400240024002400240024002400240200141046a2802000e0700010203040508000b410021030c050b200141106a2802002204417f4c0d10200141086a2802002105410121034101210602402004450d002004102f2206450d120b2006200520041085051a0c060b200141086a2802002106410221030c040b410321030c020b410421030c010b410521030b0b0b2001411c6a2802002105200141186a28020021070240024002400240024020012802140e050001020304000b410021020c030b410121020c020b410221020c010b410321020b200041093a00002000411c6a2005360200200041186a2007360200200041146a2002360200200041106a20043602002000410c6a2004360200200041086a2006360200200041046a20033602000f0b200041003a00000f0b200041013a0000200041046a200141046a2802003602000f0b4103210302400240024002400240200141246a2802000e0400010204000b410021030c020b200141306a2802002204417f4c0d09200141286a2802002102410121034101210602402004450d002004102f2206450d0b0b2006200220041085051a0c020b410221030b0b200041023a000020002001290001370001200041306a20043602002000412c6a2004360200200041286a2006360200200041246a2003360200200041196a200141196a290000370000200041116a200141116a290000370000200041096a200141096a2900003700000f0b4103210302400240024002400240200141046a2802000e0400010204000b410021030c020b200141106a2802002204417f4c0d08200141086a2802002102410121034101210602402004450d002004102f2206450d0a0b2006200220041085051a0c020b410221030b0b200041033a0000200041186a2001290318370300200041106a20043602002000410c6a2004360200200041086a2006360200200041046a20033602000f0b4103210302400240024002400240200141186a2802000e0400010204000b410021030c020b200141246a2802002204417f4c0d072001411c6a2802002102410121034101210602402004450d002004102f2206450d090b2006200220041085051a0c020b410221030b0b200041043a000020002001290001370001200041246a2004360200200041206a20043602002000411c6a2006360200200041186a2003360200200041116a200141116a280000360000200041096a200141096a2900003700000f0b200041053a0000200020012d00013a00010f0b200041063a0000200041106a200141106a290300370300200041086a200141086a2903003703000f0b2001410c6a2802002204417f4c0d01200141046a28020021010240024020040d00410121060c010b2004102f2206450d030b20062001200410850521012000410c6a2004360200200041086a2004360200200041046a2001360200200041073a00000f0b200041083a00000f0b102c000b102a000b8a0401017f410021020240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024020010e08000102030405062a2b0b2000280200417f6a0e08060708090a0b0c0d2a0b2000280200417e6a0e070d0e0f10111213290b2000280200417d6a0e06131415161718280b2000280200417c6a0e0518191a1b1c270b2000280200417b6a0e041c1d1e1f260b2000280200417a6a0e031f2021250b200028020041796a0e022122240b200041086a0f0b200041086a0f0b200041086a0f0b200041086a0f0b200041086a0f0b200041086a0f0b200041086a0f0b200041086a0f0b200041c0006a0f0b200041c0006a0f0b200041c0006a0f0b200041c0006a0f0b200041c0006a0f0b200041c0006a0f0b200041c0006a0f0b200041f8006a0f0b200041f8006a0f0b200041f8006a0f0b200041f8006a0f0b200041f8006a0f0b200041f8006a0f0b200041b0016a0f0b200041b0016a0f0b200041b0016a0f0b200041b0016a0f0b200041b0016a0f0b200041e8016a0f0b200041e8016a0f0b200041e8016a0f0b200041e8016a0f0b200041a0026a0f0b200041a0026a0f0b200041a0026a0f0b200041d8026a0f0b200041d8026a0f0b20002903004208520d0020004190036a21020b20020bf20d5b027f027e017f017e017f017e017f017e017f017e017f017e017f017e017f027e017f017e017f017e017f017e017f017e017f017e017f017e017f017e017f017e017f017e017f017e017f017e017f017e017f017e017f017e017f017e017f017e017f017e017f017e017f017e017f017e017f017e017f017e017f017e017f017e017f017e017f017e017f027e017f017e017f017e017f017e017f017e017f017e017f017e017f017e017f037e017f017e017f087e037f230022022103200241c0006b41607122022400200129030021044200210520014200370300200141386a22062903002107200141306a22082903002109200141286a220a290300210b200141206a220c290300210d200141d8006a220e290300210f200141d0006a22102903002111200141c8006a22122903002113200141c0006a2903002114200141f8006a22152903002116200141f0006a22172903002118200141e8006a2219290300211a200141e0006a221b290300211c20014198016a221d290300211e20014190016a221f290300212020014188016a2221290300212220014180016a22232903002124200141b8016a22252903002126200141b0016a22272903002128200141a8016a2229290300212a200141a0016a222b290300212c200141d8016a222d290300212e200141d0016a222f2903002130200141c8016a22312903002132200141c0016a22332903002134200141f8016a22352903002136200141f0016a22372903002138200141e8016a2239290300213a200141e0016a223b290300213c20014198026a223d290300213e20014190026a223f290300214020014188026a2241290300214220014180026a22432903002144200141b8026a22452903002146200141b0026a22472903002148200141a8026a2249290300214a200141a0026a290300214b200141d8026a224c290300214d200141d0026a224e290300214f200141c8026a22502903002151200141c0026a22522903002153200141f8026a22542903002155200141f0026a22562903002157200141e8026a22582903002159200141e0026a225a290300215b20014198036a290300215c20014190036a290300215d20014188036a225e290300215f20014180036a22602903002161200141b8036a2903002162200141b0036a2903002163200141a8036a2903002164200141a0036a2903002165200141c0036a290300216620012903082167200129031021682002200141186a22692903003703382002206837033020022067370328200220043703202067a7216a410a216b02400240024002400240024002400240024002402004a70e09090102030405060700090b200241176a2002290038370000200241106a200229003137030020022002290029370308420721050c070b200241176a2002290038370000200241106a2002290031370300200220022900293703080c060b200241176a2002290038370000200241106a200229003137030020022002290029370308420121050c050b200241176a2002290038370000200241106a200229003137030020022002290029370308420221050c040b200241176a2002290038370000200241106a200229003137030020022002290029370308420321050c030b200241176a2002290038370000200241106a200229003137030020022002290029370308420421050c020b200241176a2002290038370000200241106a200229003137030020022002290029370308420521050c010b200241176a2002290038370000200241106a200229003137030020022002290029370308420621050b206a216b0b2000206b3a000020002002290308370001200041206a200b370000200041186a200d370000200041286a2009370000200041096a200241106a290300370000200041106a200241176a290000370000200041306a20073700002001109c0120602062370300205420633703002056206437030020582065370300205a205c370300204c205d370300204e205f370300205020613703002052205537030020452057370300204720593703002049205b370300203d204f370300203f20513703002041205337030020432046370300203520483703002037204a3703002039204b370300203b203e370300202d2040370300202f20423703002031204437030020332036370300202520383703002027203a370300202b202e370300201d2030370300201f20323703002021203437030020232026370300201520283703002017202a3703002019202c370300201b201e370300200e20203703002010202237030020122024370300200620183703002008201a370300200a201c370300200c200f37030020692011370300200141106a201337030020012014370308205e20663703002001204d3703a0022029203c3703002001201637034020012005370300200324000bc8010002400240024002400240024020002d00000e09050500010205050305040b200041246a2802004101470d042000412c6a280200450d04200041286a28020010300f0b200041046a2802004101470d032000410c6a280200450d03200041086a28020010300f0b200041186a2802004101470d02200041206a280200450d022000411c6a28020010300f0b200041086a280200450d01200041046a28020010300c010b200041046a2802004101470d002000410c6a280200450d00200041086a28020010300f0b0ba406010f7f230041c0006b2202240020022001109b0102400240024002400240024002400240024020022802000d002001280204220320022802042204490d002004417f4c0d060240024020040d00410121050c010b2004102f2205450d082005410020041087051a200128020421030b024020032004490d002005200128020020041085052106200128020422032004490d092001200320046b22073602042001200128020020046a220836020020074104490d032008280000210920012007417c6a220a3602042001200841046a360200200241186a410472210b41002103417b21050340200a2003460d03200820036a220c41046a2d0000210d2001200720056a3602042001200c41056a360200200b20036a200d3a00002002200341016a220c3602182005417f6a2105200c2103200c4120470d000b200241106a41026a2203200241256a2d00003a00002002410c6a41026a2205200241186a41146a2d00003a0000200220022f011c3b0114200220022d001e3a00162002200241236a2f00003b011020022002412a6a2f01003b010c200241386a280200210d200241346a280200210a2002412d6a280000210b200241266a280100210e200228001f210f200241086a41026a2210200241336a2d00003a00002002200241316a2f00003b01082007200c6b2207417c6a4104490d04200020022f01103b001b2000200e36001e200020022f010c3b00222000200b360025200041146a20022f01143b0100200041166a20022d00163a0000200041176a200f3600002008200c6a220c41046a28000021082001200741786a3602042000411d6a20032d00003a0000200041246a20052d00003a00002001200c41086a360200200041306a200d3600002000412c6a200a3600002000412b6a20102d00003a0000200020022f01083b0029200041106a20083602002000410c6a2009360200200041086a200436020020002004360204200020063602000c060b200510300b200041003602000c040b200041003602000c020b200041003602000c010b200041003602000b2004450d00200610300b200241c0006a24000f0b102c000b102a000b2004200341f0f5c100104a000b8f0101027f230041106b2202240020002802002000280208200110a6012002200028020c360200200120024104106402404120102f2203450d0020024220370204200220033602002002200041146a412010642001200228020022032002280208106402402002280204450d00200310300b200220002802103602002001200241041064200241106a24000f0b102a000b1c0020012802184199f7c100410f2001411c6a28020028020c1100000bf80101017f230041106b22022400200028020021002002410036020c02400240024002402001418001490d002001418010490d012001418080044f0d0220022001413f71418001723a000e20022001410c7641e001723a000c20022001410676413f71418001723a000d410321010c030b200220013a000c410121010c020b20022001413f71418001723a000d2002200141067641c001723a000c410221010c010b20022001413f71418001723a000f2002200141127641f001723a000c20022001410676413f71418001723a000e20022001410c76413f71418001723a000d410421010b20002002410c6a20011064200241106a240041000b6301017f230041206b2202240020022000280200360204200241086a41106a200141106a290200370300200241086a41086a200141086a29020037030020022001290200370308200241046a41d0adc000200241086a10322101200241206a240020010bf50201017f23004190016b22042400024002400240024020002d00000e03000102000b200441206a41186a200341186a290000370300200441206a41106a200341106a290000370300200441206a41086a200341086a29000037030020042003290000370320200041016a20012002200441206a10fb0121000c020b200441206a41186a200341186a290000370300200441206a41106a200341106a290000370300200441206a41086a200341086a29000037030020042003290000370320200041016a20012002200441206a10fc0121000c010b2004200120021065200441206a200041016a200410fd014100210020042d00200d00200441c8006a41206a200441206a41216a2d00003a0000200441e0006a200441396a290000370300200441d8006a200441316a290000370300200441d0006a200441296a29000037030020042004290021370348200441f0006a200441c8006a41211065200441f0006a200341201088054521000b20044190016a240020000b150020002002ad4220862001ad84200310014101460b150020002002ad4220862001ad84200310044101460bc30a03017f017e0f7f230041306b2203240002402001200210032204422088a72202450d002002417f6a210502400240024002402004a722012d00000e020001040b200341003602082005450d0320012d0001210520034101360208200320053a000c20024102470d010c030b2005450d02410121064100210702400240024020012d00010e03040001050b41012107410121060c010b410221070b0c010b20012d0002210520034102360208200320053a000d20024103460d0120012d0003210520034103360208200320053a000e20024104460d0120034104360208200320012d00043a000f20024105460d01200341106a20012d00053a00002003410536020820024106460d01200341116a20012d00063a00002003410636020820024107460d01200341126a20012d00073a00002003410736020820024108460d01200341136a20012d00083a00002003410836020820024109460d01200341146a20012d00093a0000200341093602082002410a460d01200341156a20012d000a3a00002003410a3602082002410b460d01200341166a20012d000b3a00002003410b3602082002410c460d01200341176a20012d000c3a00002003410c3602082002410d460d01200341186a20012d000d3a00002003410d3602082002410e460d01200341196a20012d000e3a00002003410e3602082002410f460d012003411a6a20012d000f3a00002003410f36020820024110460d012003411b6a20012d00103a00002003411036020820024111460d012003411c6a20012d00113a00002003411136020820024112460d012003411d6a20012d00123a00002003411236020820024113460d012003411e6a20012d00133a00002003411336020820024114460d012003411f6a20012d00143a00002003411436020820024115460d01200341206a20012d00153a00002003411536020820024116460d01200341216a20012d00163a00002003411636020820024117460d01200341226a20012d00173a00002003411736020820024118460d01200341236a20012d00183a00002003411836020820024119460d01200341246a20012d00193a0000200341193602082002411a460d01200341256a20012d001a3a00002003411a3602082002411b460d01200341266a20012d001b3a00002003411b3602082002411c460d01200341276a20012d001c3a00002003411c3602082002411d460d01200341286a20012d001d3a00002003411d3602082002411e460d01200341296a20012d001e3a00002003411e3602082002411f460d012003412a6a20012d001f3a00002003411f36020820024120460d012003412b6a220520012d00203a00002003412036020820024121460d012003412c6a20012d00213a0000200341086a41216a2f00002108200341286a2d00002102200341246a2802002109200341226a2f0100210a200341216a2d0000210b2003411d6a280000210c2003411b6a2f0000210d2003411a6a2d0000210e200341166a280100210f200341146a2f01002110200341136a2d0000211120052f00002105200328000f211220032f000d211320032d000c2107410021060b200020073a0001200020063a0000200041206a20053b00002000411e6a20083b00002000411d6a20023a0000200041196a2009360000200041176a200a3b0000200041166a200b3a0000200041126a200c360000200041106a200d3b00002000410f6a200e3a00002000410b6a200f360000200041096a20103b0000200041086a20113a0000200041046a2012360000200041026a20133b000020011030200341306a24000f0b41e8fac100412e200341086a4198fbc10041a8fbc1001034000b9e14030c7f047e057f23004180026b22032400024002400240200128020c220441016a22052004490d00200520012802002206200641016a220741037641076c20064108491b22064101764b0d0141002106200141046a210841002105034002400240024020064101710d00200520074f0d010c020b200541036a22062005490d002006210520062007490d010b200141046a280200210502400240200128020041016a220641044f0d00200541046a200520061086051a0c010b200520066a20052800003600000b41002105024020012802002209417f460d002002280200210a200141046a210b200341e0016a41186a210c4100210603400240200b28020022052006220d6a2d0000418001470d004100200d6b210e0340200c200a290318200a29030885220f3703002003200a29031022103703e80120032010200a29030022118522123703f001200341b0016a200f2005200e41d0006c6a221341406a220541086a29000085420020122005290000854200108405200341a0016a200f201341b07f6a221441086a221529000085420020122014290000854200108405200320102010201142adfed5e4d485fda8d8007e200341b0016a41086a29030020032903b001857c42a0cbbf9599b5a19f0a7c85421789200341a0016a41086a29030020032903a001857c854217893703e001201341506a2216200341e0016a10ff01024002402013417c6a22052d00000d00200341f0006a20032903e001420042adfed5e4d485fda8d8004200108405200341f0006a41086a29030020032903708521100c010b20034190016a20032903e001420185420042adfed5e4d485fda8d800420010840520034180016a20034190016a41086a29030020032903900185200531000185420042adfed5e4d485fda8d800420010840520034180016a41086a2903002003290380018521100b200341e0006a20032903e801420020104200108405200b28020021172001280200210841002105200341e0006a41086a2903002003290360852010892210a7220421060340200541046a2205200620087122076a2106201720076a280000418081828478712202450d000b0240201720026841037620076a20087122056a2c00004100480d002017280200418081828478716841037621050b02402005200820047122066b200d20066b7320087141034b0d002017200d6a2010a741197622053a00002008200d417c6a7120176a41046a20053a00000c020b201720056a22062d0000210720062010a741197622023a00002005417c6a20087120176a41046a20023a00000240200741ff01470d00200b2802002206200d6a41ff013a000020062001280200200d417c6a716a41046a41ff013a0000200b280200410020056b41d0006c6a41b07f6a201441d0001085051a0c020b200b280200410020056b41d0006c6a220641b07f6a2205290200211020052014290200370200200541186a2207290200210f2007201441186a2208290200370200200541106a220729020021122007201441106a2217290200370200200541086a22052902002111200520152902003702002014201037020020152011370200201720123702002008200f370200200641506a220541186a220729020021102007201641186a2208290200370200200541106a2207290200210f2007201641106a2217290200370200200541086a220729020021122007201641086a2202290200370200200529020021112005201629020037020020162011370200200820103702002017200f37020020022012370200200641706a220541086a220729020021102007201341706a220641086a22082902003702002005290200210f200520062902003702002006200f37020020082010370200200b28020021050c000b0b200d41016a2106200d2009470d000b20012802002205200541016a41037641076c20054108491b21050b2000410036020020012005200128020c6b3602080c040b200828020020056a220620062802002206410776417f73418182840871200641fffefdfb07726a36020041012106200541016a21050c000b0b4192afc000411c41b0afc000102d000b024002400240024002402005200641016a2206200520064b1b22050d0041bcf5c1002108410021174100210e0c010b02400240200541074b0d004104410820054104491b21050c010b200541ffffffff01712005470d02417f200541037441076e417f6a677641016a21050b2005ad42d0007e2210422088a70d022010a72206200541046a22176a22082006490d022008102f2208450d03200820066a220841ff0120171087051a2005417f6a2217200541037641076c20174108491b210e0b200141046a280200221641046a2114201620076a21132016280200417f734180818284787121052002280200210a200341f8016a210d03400240024020050d0002400340201420134f0d01201641c07d6a211620142802002105201441046a220621142005418081828478712205418081828478460d000b2005418081828478732205417f6a2005712115200621140c020b2001200436020c200041003602002001200e20046b3602082001280200210520012017360200200141046a22062802002107200620083602002005450d062007200541016aad42d0007ea76b10300c060b2005417f6a20057121150b200d200a290318200a29030885220f3703002003200a29031022103703e80120032010200a29030022118522123703f001200341c0006a200f201641002005684103766b41d0006c6a220541406a220641086a29000085420020122006290000854200108405200341d0006a200f200541b07f6a220b41086a2900008542002012200b290000854200108405200320102010201142adfed5e4d485fda8d8007e200341c0006a41086a2903002003290340857c42a0cbbf9599b5a19f0a7c85421789200341d0006a41086a2903002003290350857c854217893703e001200541506a200341e0016a10ff01024002402005417c6a22052d00000d00200341106a20032903e001420042adfed5e4d485fda8d8004200108405200341106a41086a29030020032903108521100c010b200341306a20032903e001420185420042adfed5e4d485fda8d8004200108405200341206a200341306a41086a290300200329033085200531000185420042adfed5e4d485fda8d8004200108405200341206a41086a29030020032903208521100b200320032903e801420020104200108405200341086a2903002003290300852010892210a72105410021060340200641046a2206200520177122076a2105200820076a280000418081828478712202450d000b0240200820026841037620076a20177122056a2c00004100480d002008280200418081828478716841037621050b200820056a2010a741197622063a00002005417c6a20177120086a41046a20063a00002008410020056b41d0006c6a41b07f6a200b41d0001085051a201521050c000b0b4192afc000411c41b0afc000102d000b4192afc000411c41b0afc000102d000b102a000b20034180026a24000bfd0404027f027e017f027e230041f0006b2202240002400240200028020022034125490d002000410c6a2802002103200041086a28020021000c010b200041056a21000b200241e0006a20012903002003ad220485420042adfed5e4d485fda8d80042001084052001200241e8006a29030020022903608520047c42adfed5e4d485fda8d8007e2204370300024002400240024020034109490d00200341104d0d01200241106a200141186a2903002205200320006a41706a220641086a2900008542002001290310220720062900008542001084052004200241106a41086a2903002002290310857c20012903082208854217892104034020022005200041086a29000085420020072000290000854200108405200041106a21002004200241086a2903002002290300857c2008854217892104200341706a220341104b0d000b200120043703000c030b0240200341014b0d002003450d03200241d0006a2004200031000085420042adfed5e4d485fda8d80042001084052001200241d8006a2903002002290350853703000c030b200341034b0d01200241c0006a200320006a417f6a310000422086200033000084200485420042adfed5e4d485fda8d80042001084052001200241c8006a2903002002290340853703000c020b200241206a200141186a290300200320006a41786a2900008542002001290310200029000085420010840520012004200241286a2903002002290320857c2001290308854217893703000c010b200241306a200141186a290300200320006a417c6a3500008542002001290310200035000085420010840520012004200241386a2903002002290330857c2001290308854217893703000b200241f0006a24000bc010050a7f017e027f037e057f23004180016b22032400024002400240200128020c220441016a22052004490d00200520012802002206200641016a220741037641076c20064108491b22064101764b0d0141002106200141046a210841002105034002400240024020064101710d00200520074f0d010c020b200541036a22062005490d002006210520062007490d010b200141046a280200210502400240200128020041016a220641044f0d00200541046a200520061086051a0c010b200520066a20052800003600000b41002105024020012802002204417f460d0020022802002109200141046a210a4100210503400240200a28020022082005220b6a2d0000418001470d004100200b6b210c0340200341c0006a2009290318200929030885220d2008200c41306c6a41506a220e41186a220f2900008542002009290310221020092903002211852212200e290010854200108405200341d0006a200d200e41086a22132900008542002012200e290000854200108405200341306a2010420020102010201142adfed5e4d485fda8d8007e200341c0006a41086a2903002003290340857c42a0cbbf9599b5a19f0a7c85421789200341d0006a41086a2903002003290350857c85421789220d42001084052001280200211441002105200341306a41086a290300200329033085200d892210a7221521060340200541046a2205200620147122076a2106200820076a280000418081828478712202450d000b0240200820026841037620076a20147122056a2c00004100480d002008280200418081828478716841037621050b02402005201420157122066b200b20066b7320147141034b0d002008200b6a2010a741197622053a00002014200b417c6a7120086a41046a20053a00000c020b200820056a22062d0000210720062010a741197622023a00002005417c6a20147120086a41046a20023a00000240200741ff01470d00200a2802002206200b6a41ff013a000020062001280200200b417c6a716a41046a41ff013a0000200a280200410020056b41306c6a41506a2205200e290200370200200541086a2013290200370200200541106a200e41106a290200370200200541186a200f290200370200200541206a200e41206a290200370200200541286a200e41286a2902003702000c020b200a280200410020056b41306c6a41506a220529020021102005200e290200370200200541186a2206290200210d2006200f290200370200200541106a220629020021112006200e41106a2207290200370200200541086a22062902002112200620132902003702002013201237020020072011370200200f200d370200200e2010370200200541286a220629020021102006200e41286a22072902003702002005290220210d2005200e290220370220200e200d37022020072010370200200a28020021080c000b0b200b41016a2105200b2004470d000b20012802002205200541016a41037641076c20054108491b21050b2000410036020020012005200128020c6b3602080c040b200828020020056a220620062802002206410776417f73418182840871200641fffefdfb07726a36020041012106200541016a21050c000b0b4192afc000411c41b0afc000102d000b024002400240024002402005200641016a2206200520064b1b22050d0041bcf5c100210841002114410021160c010b02400240200541074b0d004104410820054104491b21050c010b200541ffffffff01712005470d02417f200541037441076e417f6a677641016a21050b2005ad42307e2210422088a70d022010a72206200541046a22146a22082006490d022008102f2208450d03200820066a220841ff0120141087051a2005417f6a2214200541037641076c20144108491b21160b200841506a2117200141046a280200220941046a210e200920076a21132009280200417f734180818284787121072002280200210a03400240024020070d0002400340200e20134f0d01200941c07e6a2109200e2802002105200e41046a2206210e2005418081828478712205418081828478460d000b2005418081828478732207417f6a20077121152006210e0c020b2001200436020c200041003602002001201620046b3602082001280200210520012014360200200141046a22062802002107200620083602002005450d062007200541016aad42307ea76b10300c060b2007417f6a20077121150b41002105200341106a200a290318200a29030885220d200941002007684103766b41306c6a41506a220f41186a220b290000854200200a2903102210200a2903002211852212200f290010854200108405200341206a200d200f41086a220c2900008542002012200f29000085420010840520032010420020102010201142adfed5e4d485fda8d8007e200341106a41086a2903002003290310857c42a0cbbf9599b5a19f0a7c85421789200341206a41086a2903002003290320857c85421789220d4200108405200341086a290300200329030085200d892210a721060340200541046a2205200620147122076a2106200820076a280000418081828478712202450d000b0240200820026841037620076a20147122056a2c00004100480d002008280200418081828478716841037621050b200820056a2010a741197622063a00002005417c6a20147120086a41046a20063a00002017410020056b41306c6a220541286a200f41286a290200370200200541206a200f41206a290200370200200541186a200b290200370200200541106a200f41106a290200370200200541086a200c2902003702002005200f290200370200201521070c000b0b4192afc000411c41b0afc000102d000b4192afc000411c41b0afc000102d000b102a000b20034180016a24000b8007010a7f230041a0016b2202240002400240024002400240024020012d00002203417e6a0e0403010100010b2001410c6a2802002104200141046a280200210520024180016a41186a2206420037030020024180016a41106a2201420037030020024180016a41086a22074200370300200242003703800120024180016a41e2a4c000410f10ab01200141fce2c000411110ab01200241d8006a20024180016a4120108202200241386a41086a2208200241e2006a290100370300200241386a41106a2209200241ea006a290100370300200241cf006a220a200241f1006a2900003700002002200229015a370338024020022d00584101470d0020022d0059210b200241186a41186a200a290000370000200241186a41116a2009290300370000200241216a2008290300370000200220022903383700192002200b3a001820024180016a200520041065200241d8006a41186a2006290300370300200241d8006a41106a2001290300370300200241d8006a41086a20072903003703002002200229038001370358200241d8006a200241186a4120108805450d020b20034102460d020b200041003b0001200041013a0000200041036a41003a00000c020b200241166a20022d005a3a0000200241086a200241ef006a290000370300200241106a200241f7006a2d00003a0000200220022f01583b01142002200229006737030020022d005b210420022d005c210520022d005d210620022d005e2107200228005f210820022800632109410c102f2203450d024120102f2201450d02200120022f01143b00002001200936000b20012008360007200120073a0006200120063a0005200120053a0004200120043a00032001200229030037000f200141026a200241146a41026a2d00003a0000200141176a200241086a2903003700002001411f6a200241106a2d00003a000020032001360200200342a08080808004370204200041086a42e400370300200041003a0000200041106a427f370300200041186a41002802e88f42360200200041246a2003360200200041306a41013a00002000411c6a4200370200200041286a4281808080103702000c010b200041003a0000200041286a4200370300200041246a41002802e88f4222013602002000411c6a4200370200200041186a2001360200200041086a4200370300200041306a41013a0000200041106a427f3703000b200241a0016a24000f0b102a000bda0a03037f017e017f230041e0006b220324002003200236020c20032001360208200341106a2001200241002802d4ad4211040002400240200328021022010d00200041003a00000c010b2003280214210402400240200341186a2802002202450d00200320012d00003a003c2003410136023820024101460d00200320012d00013a003d2003410236023820024102460d00200320012d00023a003e2003410336023820024103460d00200320012d00033a003f2003410436023820024104460d00200341c0006a20012d00043a00002003410536023820024105460d00200341c1006a20012d00053a00002003410636023820024106460d00200341c2006a20012d00063a00002003410736023820024107460d00200341c3006a20012d00073a00002003410836023820024108460d00200341c4006a20012d00083a00002003410936023820024109460d00200341c5006a20012d00093a00002003410a3602382002410a460d00200341c6006a20012d000a3a00002003410b3602382002410b460d00200341c7006a20012d000b3a00002003410c3602382002410c460d00200341c8006a20012d000c3a00002003410d3602382002410d460d00200341c9006a20012d000d3a00002003410e3602382002410e460d00200341ca006a20012d000e3a00002003410f3602382002410f460d00200341cb006a20012d000f3a00002003411036023820024110460d00200341cc006a20012d00103a00002003411136023820024111460d00200341cd006a20012d00113a00002003411236023820024112460d00200341ce006a20012d00123a00002003411336023820024113460d00200341cf006a20012d00133a00002003411436023820024114460d00200341d0006a20012d00143a00002003411536023820024115460d00200341d1006a20012d00153a00002003411636023820024116460d00200341d2006a20012d00163a00002003411736023820024117460d00200341d3006a20012d00173a00002003411836023820024118460d00200341d4006a20012d00183a00002003411936023820024119460d00200341d5006a20012d00193a00002003411a3602382002411a460d00200341d6006a20012d001a3a00002003411b3602382002411b460d00200341d7006a20012d001b3a00002003411c3602382002411c460d00200341d8006a20012d001c3a00002003411d3602382002411d460d00200341d9006a20012d001d3a00002003411e3602382002411e460d00200341da006a20012d001e3a00002003411f3602382002411f460d00200341db006a20012d001f3a0000200041086a200341386a410b6a2f00003b00002000410a6a200341c5006a2d00003a0000200041116a200341cc006a2d00003a00002000410f6a200341386a41126a2f01003b000020034120360238200320032f013c3b0120200320032d003e3a0022200341c6006a2801002102200341cd006a2800002105200341d4006a2902002106200328003f2107200041186a200341d3006a2d00003a0000200041166a200341386a41196a2f00003b0000200041036a20032d00223a0000200020032f01203b0001200041196a2006370000200041126a20053600002000410b6a2002360000200041046a2007360000410121020c010b2003420037022441002102200341002802dc9442360220200341093602342003200341086a3602302003200341206a36025c200341cc006a41013602002003420137023c200341a0e6c1003602382003200341306a360248200341dc006a41d0adc000200341386a10321a2003280220200328022810ad012003280224450d00200328022010300b200020023a00002004450d00200110300b200341e0006a24000b8a1105037f017e0e7f027e037f230041f0016b22022400200241286a2001109b010240024020022802280d000240024002400240024002400240200228022c2203200128020441246e2204200420034b1bad42247e2205422088a70d002005a72204417f4c0d000240024020040d00410421060c010b2004102f2206450d060b200441246ead21052003450d0320024180016a4104722107200241ce016a2108200241bf016a2109200241e4016a210a2002419d016a210b20024180016a41106a210c4100210d034020012802042204450d032001280200220e2d0000210f20012004417f6a22103602042001200e41016a36020002400240024002400240024002400240200f0e08000b010b030402050b0b200241086a2001109b0120022802080d0a2001280204220f200228020c2204490d0a2004417f4c0d080240024020040d004101210e0c010b2004102f220e450d0e200e410020041087051a2001280204210f0b200f2004490d09200e2001280200200410850521102001280204220f2004490d0e2001200f20046b3602042001200128020020046a36020020104108762111410521102004210f0c050b2004417e6a211241002104034020102004460d0a200e20046a221341016a2d0000210f200120123602042001201341026a360200200720046a200f3a00002002200441016a2213360280012012417f6a21122013210420134120470d000b2002200c2902003703b8012002200c41056a2900003700bd0120022802840121132002290388012114200a41036a200c41036a280000360000200a200c280200360200200241c8016a41046a200941046a2f00003b0100200841036a200b41036a2800003600002008200b280000360000200220143702dc01200220133602d801200220092800003602c80120022900e301211520022800db01210e2002200241c8016a41056a2900003700ad01200220022902c8013703a801200220022900ad01370075200220022903a80137037020022002290075370065200220022903703703602002200229006537005520022002290360370350200241c0006a41086a200241d0006a41086a29030037030020022002290350370340200e41087621112014421888a7210f2015422088a72112410021100c050b200110a8012215a74101710d08200241206a2001109b0120022802200d082001280204220420022802242212490d082012417f4c0d060240024020120d004101210f0c010b2012102f220f450d0c200f410020121087051a200128020421040b0240024020042012490d00200f200128020020121085051a2001280204220420124f0d012012200441f0f5c100104a000b200f10300c090b2001200420126b3602042001200128020020126a36020020154280808080f01f83422088a7210e20154280feffffff1f83420888a7211341012110201221040c030b200110a8012215a74101710d07200241106a2001109b0120022802100d072001280204220420022802142212490d072012417f4c0d050240024020120d004101210f0c010b2012102f220f450d0b200f410020121087051a200128020421040b0240024020042012490d00200f200128020020121085051a2001280204220420124f0d012012200441f0f5c100104a000b200f10300c080b2001200420126b3602042001200128020020126a36020020154280808080f01f83422088a7210e20154280feffffff1f83420888a7211341022110201221040c020b200110a8012215a74101710d06200241186a2001109b0120022802180d0620012802042204200228021c2212490d062012417f4c0d040240024020120d004101210f0c010b2012102f220f450d0a200f410020121087051a200128020421040b0240024020042012490d00200f200128020020121085051a2001280204220420124f0d012012200441f0f5c100104a000b200f10300c070b2001200420126b3602042001200128020020126a36020020154280808080f01f83422088a7210e20154280feffffff1f83420888a7211341032110201221040c010b2010450d05200e2d0001210f20012004417e6a3602042001200e41026a360200200f0d0520024180016a200110ea01200228028001220e4102460d052002280288012104200228028401210f41042110410021110b2011410874200e41ff017172210e2012ad4220862004ad8421150b200241306a41086a2216200241c0006a41086a29030037030020022002290340370330024002402005422088a722042005a7470d00200441016a22172004490d0320044101742218201720172018491b22174104201741044b1bad42247e2214422088a74541027421172014a721180240024020040d0020024100360280010c010b200241043602880120022006360280012002200441246c360284010b200241d8016a2018201720024180016a106920022802e001211720022802d8014101460d0120022802dc012106200542808080807083201741246ead8421050b2006200441246c6a2204201537000c2004200f3600082004200e360004200420133b0001200420103a0000200441036a20134110763a0000200420022903303700142004411c6a201629030037000020054280808080107c2105200d41016a220d2003470d010c060b0b20170d050b102c000b200e10300b02402005422088a72201450d00200141246c21042006210103400240024002400240024020012d00000e050400010204030b2001410c6a280200450d03200141086a28020010300c030b2001410c6a280200450d02200141086a28020010300c020b2001410c6a280200450d01200141086a28020010300c010b200141086a280200450d00200141046a28020010300b200141246a21012004415c6a22040d000b0b2005a72201450d04200141246c450d04200610300c040b2006450d030b20002005370204200020063602000c030b102a000b2004200f41f0f5c100104a000b200041003602000b200241f0016a24000b13002000410836020420004194b0c0003602000b900201037f230041d0006b22032400200320023602042003200136020041002104200341086a2001200241002802d4ad4211040002400240200328020822020d000c010b200328020c210502400240200341106a2802004104490d0020022800002101410121040c010b2003420037021c41002104200341002802dc94423602182003410936022c200320033602282003200341186a360234200341cc006a41013602002003420137023c200341a0e6c1003602382003200341286a360248200341346a41d0adc000200341386a10321a2003280218200328022010ad010240200328021c450d00200328021810300b0b2005450d00200210300b2000200136020420002004360200200341d0006a24000bd00302047f017e230041e0006b220324002003200236020c20032001360208200341106a2001200241002802d4ad4211040002400240024002400240200328021022010d00200041003602000c010b200328021421022003200341186a280200360224200320013602202003200341206a109b010240024020032802000d002003280224220420032802042205490d002005417f4c0d030240024020050d00410121060c010b2005102f2206450d052006410020051087051a200328022421040b024020042005490d002006200328022020051085052106200328022422042005490d0620002005ad2207422086200784370204200020063602002003200420056b3602242003200328022020056a3602200c020b200610300b2003420037022c200341002802dc94423602282003410936023c2003200341086a3602382003200341286a360244200341dc006a41013602002003420137024c200341a0e6c1003602482003200341386a360258200341c4006a41d0adc000200341c8006a10321a2003280228200328023010ad010240200328022c450d00200328022810300b200041003602000b2002450d00200110300b200341e0006a24000f0b102c000b102a000b2005200441f0f5c100104a000b900201047f230041106b22022400024002402001280208220341046a2204417f4c0d002001280200210102400240024002400240024020040d0020004100360208200042013702000c010b2004102f2205450d06200041003602082000200436020420002005360200200341c000490d01200341808001490d022003418080808004490d030b200241033a00032000200241036a41011064200220033602042000200241046a410410640c030b200220034102743a000d20002002410d6a410110640c020b200220034102744101723b010e20002002410e6a410210640c010b200220034102744102723602082000200241086a410410640b2000200120031064200241106a24000f0b102c000b102a000b6901017f230041206b220324002003200136020420032000360200200341086a41106a200241106a290200370300200341086a41086a200241086a29020037030020032002290200370308200341dcefc100200341046a41dcefc100200341086a41acacc000104b000b6901017f230041206b220324002003200136020420032000360200200341086a41106a200241106a290200370300200341086a41086a200241086a290200370300200320022902003703082003418cf0c100200341046a418cf0c100200341086a41c4acc000104b000b6601017f230041206b220424002004200136020420042000360200200441086a41106a200241106a290200370300200441086a41086a200241086a290200370300200420022902003703082004419cf0c100200441046a419cf0c100200441086a2003104b000b1d01017e2001ad4220862000ad841011220029000021022000103020020be00c010f7f230041206b22022400200141186a2802002103200141106a28020021042001410c6a2802002105200141086a2802002106200128021421072001280204210802400240024002400240024002400240024002400240024002400240200128020022094101460d0020070d0120004201370200200041086a210a0c0b0b02402007450d000240024020080d004101210120050d014100210b0c050b200620086b210b20050d03410121010c040b200420056b210b0c030b0240024020080d0020050d0120004201370200200041086a210a0c0c0b200620086b210b20050d04200b21010c050b200420056b21010c040b200320076b21010c030b200b200420056b6a220c200b4f2101200c210b0b2001450d02200b200320076b6a2201200b4f0d010c020b200b200420056b6a2201200b490d010b2001417f4c0d044100210b4101210d02402001450d002001210b2001102f220d450d040b2000200d360200200041086a220a4100360200200041046a200b36020020094101460d01024020070d004100210c0c070b200320076b21010c020b200041046a42003702004100210b200041002802dc9442220d360200200041086a210a0b024002400240024002400240024002402007450d000240024020080d004101210120050d014100210c0c040b200620086b210c20050d02410121010c030b200420056b210c0c020b024020080d0020050d074100210c0c0c0b200620086b21012005450d074100210e2001200420056b6a220c2001490d02200c21010c070b200c200420056b6a220e200c4f2101200e210c0b02402001450d00200c200320076b6a2201200c4f0d060b2008450d012007210e0b024020062008470d00410021080c020b200841016a210c0c020b2007210e0b02402005450d0020042005460d00200521012008210c200541016a2105200121080c010b2007450d0720032007460d07200741016a210e410021092008210c200721080b200041046a210f410021070340200e210120082d0000210802400240024002402007200b470d0002400240024020094101460d0020010d014100210e0c020b02402001450d0002400240200c0d00200420056b410020051b210e0c010b2006200c6b210e2005450d00417f200e200420056b6a22102010200e491b210e0b417f200e200320016b6a22102010200e491b210e0c020b0240200c0d00200420056b410020051b210e0c020b2006200c6b210e2005450d01417f200e200420056b6a22102010200e491b210e0c010b200320016b210e0b200b200b6b417f200e41016a22102010200e491b220e4f0d00200b200e6a220e200b490d08200b4101742210200e2010200e4b1b220e4108200e41084b1b210e02400240200b0d00200241003602100c010b200241013602182002200b3602142002200d3602100b2002200e4101200241106a10692002280208210b20022802004101460d0120002002280204220d360200200f200b3602000b200d20076a20083a0000200a200741016a220736020020094101470d02200c450d012006200c460d0141012109200c2108200c41016a210c2001210e0c030b200b0d050c060b41002109024020050d004100210c0c010b4100210c20042005460d00410121094100210c20052108200541016a21052001210e0c010b2001450d0720032001460d07200141016a210e200121080c000b0b200420056b21010b4100210c02400240200b20014f0d00200b410174220c2001200c20014b1b22014108200141084b1b210102400240200b0d00200241003602100c010b200241106a41086a41013602002002200b3602142002200d3602100b200220014101200241106a1069200241086a280200210120022802004101460d0120002002280204220d360200200041046a2001360200200041086a280200210c0b200d200c6a2101024020094101470d0002402008450d0020062008460d002006200c20086b6a210c0340200120082d00003a0000200141016a21012006200841016a2208470d000b0b2005450d0020042005460d002004200c20056b6a210c0340200120052d00003a0000200141016a21012004200541016a2205470d000b0b2007450d0420032007460d04200721080340200120082d00003a0000200141016a21012003200841016a2208470d000b2003200c20076b6a210c0c040b2001450d010b102a000b102c000b4100210c200a41003602000b200a200c3602000b200241206a24000b940201017f230041e0006b22032400200342d7b89aadacd3f3803d370020200342b6c1b1faafd0a2b73f370018200342b8d08eab80d2bcb1fc00370010200342ea9a80e5d5b4e689bc7f370008200341003602302003420137032820032001360240200341286a200341c0006a4104106420032002360240200341286a200341c0006a4104106420032003280228220220032802302201108b02370338200341d8006a200220016a360200200341d0006a200341386a41086a360200200341c0006a41086a200341286a36020020032002360254200341cc006a200341386a360200200341013602402003200341086a3602442000200341c0006a108c020240200328022c450d00200210300b200341e0006a24000b980404027f017e0e7f037e230041c0006b2202240002400240024020012802082203ad423c7e2204422088a70d002004a72205417f4c0d00200128020021064104210702402005450d002005102f2207450d020b410021082000410036020820002007360200200041046a2005413c6e220936020002402005413c490d00200641196a210a2009210b034020052008460d01200b450d04200b417f6a210b2006280214210c2006280210210d200628020c210e2006280208210f200628020421102006280200211141002112024020062d00184101470d00200241206a41186a200a20086a220141186a290000370300200241206a41106a200141106a290000370300200241206a41086a200141086a29000037030020022001290000370320410121120b2006413c6a2106200241186a200241206a41186a2903002204370300200241106a200241206a41106a2903002213370300200241086a200241206a41086a2903002214370300200220022903202215370300200720086a220141186a20123a0000200141146a200c360200200141106a200d3602002001410c6a200e360200200141086a200f360200200141046a201036020020012011360200200141196a2015370000200141216a2014370000200141296a2013370000200141316a20043700002008413c6a2108200b0d000b0b20002003360208200241c0006a24000f0b102c000b102a000b2009200941a0e4c1001033000bbb0201037f230041106b220224002000280200210320012000280208220010a501024002402000450d0020032000413c6c6a210003402002200328020036020020012002410410642002200341046a28020036020020012002410410642002200341086a280200360200200120024104106420022003410c6a28020036020020012002410410642002200341106a28020036020020012002410410642002200341146a280200360200200120024104106402400240200341186a2d00004101460d00200241003a000020012002410110640c010b200241013a000020012002410110644120102f2204450d0320024220370204200220043602002002200341196a41201064200120022802002204200228020810642002280204450d00200410300b2003413c6a22032000470d000b0b200241106a24000f0b102a000b990204017f017e017f017e230041d0006b220224002002412036020420022001360200200241086a2001412041002802d4ad4211040002400240200228020822010d00420021030c010b200228020c210402400240200241086a41086a2802004108490d0020012900002105420121030c010b420021032002420037021c200241002802dc94423602182002410936022c200220023602282002200241186a360234200241cc006a41013602002002420137023c200241a0e6c1003602382002200241286a360248200241346a41d0adc000200241386a10321a2002280218200228022010ad010240200228021c450d00200228021810300b0b2004450d00200110300b2000200537030820002003370300200241d0006a24000b970302017f027e230041d0166b22042400200441286a200141c8031085051a200442003703f003200441e0076a200241e8031085051a200441f8036a200441e0076a10ce02200441186a200441f8036a10c4030240024002402004280218450d0020004202370300200041153602080c010b20042903202105200441086a200441f8036a10c30302402004290308a7450d0020004202370300200041153602080c010b0240200520042903107c220620055a0d0020004202370300200041013602080c010b024020062003580d002000411136020820004202370300200041106a20063703000c010b200441a00f6a200441286a41c8031085051a200441e8126a200441f8036a41e8031085051a42012103200441e0076a200441a00f6a200441e8126a200441f0036a420110da030240024020042903e0074201520d00200041106a200441e8076a41b8071085051a0c010b420021034200200620042903e8077d220520052006561b21060b20002003370300200020063703080c010b200441f8036a109601200441286a109c010b200441d0166a24000bf20803077f017e037f230041306b22022400200128022021032001412c6a21040240034002402003450d00024002402001280228220520042802002206470d00200521070c010b2001200541106a220736022820052802042208450d002000200541086a29020022093e020c20002008360208200041106a20094220883e020020002005280200360204200020012802303602000c030b0240024020062007470d00200321070c010b0340200741106a21050240200741086a280200450d00200741046a28020010300b2005210720062005470d000b200128022021070b0240200128022441ffffffff0071450d00200710300b200141003602200b0240200128021c2207450d0020012007417f6a36021c02400240024020012802082207450d0020012802042106200128020c220820072f01b601490d01034002400240200728020022050d00410021050c010b200641016a210a20072f01b40121080b024041e80141b80120061b450d00200710300b024020050d00410021070c040b200a210620052107200820052f01b6014f0d000b20052107200a21060c010b41b2abc200412b41d4a8c200102d000b200841016a210520072008410c6c6a220a41306a2103200720084102746a41046a210802402006450d00200720054102746a41b8016a280200210702402006417f6a2205450d00034020072802b80121072005417f6a22050d000b0b410021050b20082802002106200a41346a2902002109200328020021030b2001200536020c20012007360208200141003602042003450d0020032009422088a74104746a21082009a7210a024020012802202205450d0002402004280200220b2001280228220c6b2207450d002007417f2007417f4a1b2205410120054101481b200c200b6b22052007200520074a1b4104766c4104742105200c41086a2107034002402007280200450d002007417c6a28020010300b200741106a2107200541706a22050d000b200128022021050b200128022441ffffffff0071450d00200510300b20012006360230200120033602282001200a36022420012003360220200420083602000c010b0b024020012802342208450d000240024002402001413c6a2802002205200141c0006a2802002206470d00200521070c010b2001200541106a220736023c2005280204220a0d010b20024100360210024020062007460d000340200741106a21050240200741086a280200450d00200741046a28020010300b2005210720062005470d000b200128023421080b0240200141386a220728020041ffffffff0071450d00200810300b2001410036023420072002290220370200200141c0006a200241286a29020037020020022802102107200041003602082007450d022002280214450d02200228021010300c020b200241086a41086a2207200a3602002002200528020036020c2002200141c4006a280200360208200020022903083702002002200541086a290200370214200041086a2007290300370200200041106a200241086a41106a2802003602000c010b200041003602080b200241306a24000bba0302077f017e200028020421012000410036020402402001450d0020002802002102024020002802182203450d00200028020821040340024002400240200420012f01b6014f0d0020012100200221050c010b034002400240200128020022000d00410021000c010b200241016a210520012f01b40121040b024041e80141b80120021b450d00200110300b024020000d00410021010c030b2005210220002101200420002f01b6014f0d000b0b200441016a210620002004410c6c6a220241306a21070240024020050d0020002101200621040c010b200020064102746a41b8016a280200210102402005417f6a2200450d00034020012802b80121012000417f6a22000d000b0b410021040b200241346a2902002108200728020021070b2007450d0202402008422088a72200450d0020004104742102200741086a2100034002402000280200450d002000417c6a28020010300b200041106a2100200241706a22020d000b0b2003417f6a21030240200842ffffffff0083500d00200710300b4100210220030d000b0b034020012802002100024041e80141b80120021b450d00200110300b200241016a21022000210120000d000b0b0b9b0303077f017e037f230041106b220224000240024020014102490d00200041146a2103200028020021040240200041186a2802002205200041046a2802002206490d0020052006470d01200328020020044f0d010b20002003290200370200200241086a2207200041106a2205280200360200200041086a220829020021092008200341086a2902003702002005200341106a2802003602002002200937030041012108024020014103490d002001417e6a210a200041286a210520002001417f6a220b41146c6a210341002108024003400240200541046a280200220c2006490d00200c2006470d02200528020020044f0d020b200b2008460d042005416c6a220c2005290200370200200c41106a200541106a280200360200200c41086a200541086a290200370200200541146a2105200a200841016a2208470d000b200841016a21080c010b200841016a21082005416c6a21030b200320043602002000200841146c6a2205200636020420052002290300370208200541106a20072802003602000b200241106a24000f0b20012001419cf8c0001033000bc00201067f200028020421012000410036020402402001450d00024020002802002202450d00034020012802940321012002417f6a22020d000b0b024020002802082203450d004100210403402003417f6a2103024002400240200420012f0132490d0041002100034041002102024020012802002205450d00200041016a210620012f01302104200521020b024041c40341940320001b450d00200110300b024020020d00410021010c040b2006210020022101200420022f01324f0d000b20060d01200221010b200441016a21040c010b200441027420026a4198036a280200210102402006417f6a2202450d00034020012802940321012002417f6a22020d000b0b410021040b20030d000b0b41002102034020012802002100024041c40341940320021b450d00200110300b2002417f6a21022000210120000d000b0b0bc80201087f02400240024020012802042203450d00200128020021040c010b419403102f2203450d0141002104200341003b01322003410036020020012003360204200141003602000b20022802002105034020032f01322206410274210741002108417f210902400340024020072008470d00200621090c020b200320086a210a200941016a2109200841046a2108417f2005200a41046a280200280200220a472005200a491b220a4101460d000b0240200a41016a0e020100010b20002004360204200041106a20013602002000410c6a2009360200200041086a2003360200200041013602000f0b02402004450d002004417f6a2104200320094102746a4194036a28020021030c010b0b20002002360204200041146a2001360200200041106a20093602002000410c6a2003360200200041086a4100360200200041003602000f0b102a000bea17011d7f230041a0016b220224002000410c6a280200210320002802002104024002400240200041086a28020022052f01322206410a4b0d00200541046a21070240200341016a220820064b22090d00200720084102746a200720034102746a200620036b4102741086051a0b200720034102746a200436020020024180016a41186a2207200141186a29000037030020024180016a41106a2204200141106a29000037030020024180016a41086a220a200141086a2900003703002002200129000037038001200541346a2101024020090d00200120084105746a200120034105746a200620036b4105741086051a0b200120034105746a220b200229038001370000200b41186a2007290300370000200b41106a2004290300370000200b41086a200a2903003700002005200641016a3b01320c010b410521064100210c02400240200341054f0d0041042106200321070c010b41052107024002402003417b6a0e020201000b200341796a21074101210c410621060c010b410021074101210c0b2000280204210902400240024002400240024002400240024002400240419403102f2203450d00200341003b013220034100360200200320052f0132220d2006417f736a22083b0132200541046a220e20064102746a280200210f20024180016a41186a200541346a221020064105746a220a41186a29000037030020024180016a41106a200a41106a29000037030020024180016a41086a200a41086a2900003703002002200a290000370380012008410c4f0d01200d200641016a220a6b2008470d02200341046a200e200a4102746a20084102741085051a200341346a2010200a4105746a20084105741085051a200520063b0132200241c0006a41086a20024180016a41086a220a290300370300200241c0006a41106a20024180016a41106a220d290300370300200241c0006a41186a20024180016a41186a2210290300370300200220022903800137034020032005200c1b220641046a21080240200741016a220c20062f0132220e4b22110d002008200c4102746a200820074102746a200e20076b4102741086051a0b200820074102746a20043602002010200141186a290000370300200d200141106a290000370300200a200141086a2900003703002002200129000037038001200641346a2101024020110d002001200c4105746a200120074105746a200e20076b4105741086051a0b200120074105746a220b200229038001370000200b41186a20024180016a41186a220a290300370000200b41106a20024180016a41106a220c290300370000200b41086a20024180016a41086a220d2903003700002006200e41016a3b0132200241206a41086a2210200241c0006a41086a2212290300370300200241206a41106a2211200241c0006a41106a2213290300370300200241206a41186a2214200241c0006a41186a221529030037030020022002290340370320200241186a22162014290300370300200241106a22172011290300370300200241086a2218201029030037030020022002290320370300024002400240200528020022010d00410021090c010b200f2119410021062003211a03402001210420052f013021072014201629030037030020112017290300370300201020182903003703002002200229030037032020092006470d0620042f0132220e410b490d024100210841042105024020074105490d0020072105024002402007417b6a0e020201000b200741796a210741012108410621050c010b4100210741012108410521050b41c403102f2203450d03200341003b013220034100360200200320042f0132221b2005417f736a22013b0132200441046a221c20054102746a280200210f200a200441346a221d20054105746a220641186a290000370300200c200641106a290000370300200d200641086a29000037030020022006290000370380012001410c4f0d07201b200541016a22066b2001470d08200341046a201c2006410274221b6a20014102741085051a200341346a201d20064105746a20014105741085051a200420053b0132200241e0006a41086a221c200d290300370300200241e0006a41106a221d200c290300370300200241e0006a41186a221e200a290300370300200220022903800137036020032f0132220141016a21062001410c4f0d09200e20056b22052006470d0a200941016a210920034194036a2004201b6a4194036a20054102741085051a4100210502400340200320054102746a4194036a280200220620053b013020062003360200200520014f0d01200520052001496a220520014d0d000b0b2015201e2903003703002013201d2903003703002012201c290300370300200220022903603703402003200420081b220641046a21080240200741016a220520062f013222014b221b0d00200820054102746a200820074102746a200120076b4102741086051a0b20082007410274221c6a2019360200200a2014290300370300200c2011290300370300200d20102903003703002002200229032037038001200641346a210e0240201b0d00200e20054105746a200e20074105746a200120076b4105741086051a0b200141016a2108200e20074105746a220e200229038001370000200e41186a200a290300370000200e41106a200c290300370000200e41086a200d29030037000020064194036a210e0240200741026a221b200141026a22194f0d00200e201b4102746a200e20054102746a200120076b4102741086051a0b200e20054102746a201a360200200620083b01320240200520194f0d002006201c6a4198036a2105034020052802002201200741016a22073b013020012006360200200541046a210520082007470d000b0b20162015290300370300201720132903003703002018201229030037030020022002290340370300200f211920042105200921062003211a200428020022010d000b0b200a2016290300370300200c2017290300370300200d20182903003703002002200229030037038001200028021022012802042206450d092001280200210741c403102f2205450d012005200636029403200541003b013220054100360200200641003b013020062005360200200120053602042001200741016a36020020072009470d0a20052f01322206410b4f0d0b2005200641016a22083b0132200520064105746a220741c4006a20024190016a290300370000200741cc006a20024198016a290300370000200741346a200229038001370000200520064102746a41046a200f3602002007413c6a20024188016a29030037000020054194036a20084102746a2003360200200320083b0130200320053602002001200128020841016a3602080c0d0b200441046a21050240200e20074d22030d00200520074102746a220141046a2001200e20076b4102741086051a0b200520074102746a201936020020024180016a41186a2206200241186a29030037030020024180016a41106a2208200241106a29030037030020024180016a41086a2209200241086a2903003703002002200229030037038001200741016a2105200441346a2101024020030d00200120054105746a200120074105746a200e20076b4105741086051a0b200e41016a210a200120074105746a2201200229038001370000200141186a2006290300370000200141106a2008290300370000200141086a200929030037000020044194036a2101200e41026a2106024020030d00200741027420016a41086a200120054102746a200e20076b4102741086051a0b2004200a3b0132200120054102746a201a360200200520064f0d0b200e41016a210620042005417f6a22054102746a4198036a2101034020012802002203200541016a22053b013020032004360200200141046a210120062005470d000c0c0b0b102a000b2008410b41e8a2c2001042000b41f8a2c200412841a0a3c200102d000b41b0a3c200413541e8a3c200102d000b2001410b41e8a2c2001042000b41f8a2c200412841a0a3c200102d000b2006410c41f8a3c2001042000b41f8a2c200412841a0a3c200102d000b41b2abc200412b41e0abc200102d000b41eaa0c2004130419ca1c200102d000b41aca1c200412041cca1c200102d000b20002802102205200528020841016a3602080b200241a0016a2400200b0bb90201047f230041106b22032400024002402002280208220441046a2205417f4c0d002002280200210202400240024002400240024020050d0020034100360208200342013703000c010b2005102f2206450d06200341003602082003200536020420032006360200200441c000490d01200441808001490d022004418080808004490d030b200341033a000c20032003410c6a410110642003200436020c20032003410c6a410410640c030b200320044102743a000c20032003410c6a410110640c020b200320044102744101723b010c20032003410c6a410210640c010b2003200441027441027236020c20032003410c6a410410640b20032002200410642000200120032802002204200328020841002802fcad4211030002402003280204450d00200410300b200341106a24000f0b102c000b102a000b13002000410536020420004180c3c0003602000b3400200041e2a4c00036020420004100360200200041146a4113360200200041106a4198ccc000360200200041086a420f3702000bf70703037f037e027f230041c0006b22022400024002400240024002400240024020002d0000417f6a0e050001020304050b200241003a00202001200241206a410110642002200041046a2802003602202001200241206a410410640c040b200241013a00202001200241206a41011064200041046a200110f601200041386a28020021032001200041c0006a280200220410a50102402004450d0020032004410c6c6a210403402003280200200341086a280200200110a6012003410c6a22032004470d000b0b200041c4006a28020021032001200041cc006a280200220410a50102402004450d00200320044104746a21040340200220032802003602202001200241206a41041064200341046a2802002003410c6a280200200110a601200341106a22032004470d000b0b2001200041d8006a280200220310a50102400240200041d4006a28020022040d0041002103200241306a4100360200200241003602240c010b200241206a200041d0006a28020020041093010b200241086a41106a200241206a41106a22002903002205370300200241086a41086a200241206a41086a220429030022063703002002200229032022073703082000200537030020042006370300200220073703202003450d03034020022003417f6a360238200241206a410020022802241b220828020021040240024020082802082209200828020422002f01b6014f0d00200021030c010b03400240200028020022030d00410021030c020b200441016a210420002f01b401210920032100200920032f01b6014f0d000b0b024002402004450d00200941027420036a41bc016a280200210002402004417f6a2204450d00034020002802b80121002004417f6a22040d000b0b410021040c010b200941016a2104200321000b2008200036020420084100360200200820043602082002200320094102746a41046a28020036023c20012002413c6a4104106420032009410c6c6a220041306a28020021032001200041386a280200220010a50102402000450d00200320004104746a210003402002200328020036023c20012002413c6a41041064200341046a2802002003410c6a280200200110a601200341106a22032000470d000b0b200228023822030d000c040b0b200241023a00202001200241206a41011064200041046a2802002000410c6a280200200110a6010c020b200241033a00202001200241206a410110644120102f2203450d022002422037022420022003360220200241206a200041016a41201064200120022802202203200228022810642002280224450d01200310300c010b200241043a00202001200241206a41011064200041046a2802002000410c6a280200200110a6010b200241c0006a24000f0b102a000ba316020c7f027e230041d0016b2202240002400240200128020422030d002000410a3a00000c010b200128020022042d0000210520012003417f6a22063602042001200441016a36020002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024020050e0a000102030405060708090a0b200041003a00000c170b200241086a2001109b01024020022802080d00200228020c2101200041013a0000200041046a20013602000c170b2000410a3a00000c160b02402006450d0020042d0001210520012003417e6a22073602042001200441026a220836020041002103410121094100210a0240024002400240024020050e0403000102050b200241106a2001109b0120022802100d04200128020422042002280214220b490d04200b417f4c0d1302400240200b0d004101210c0c010b200b102f220c450d15200c4100200b1087051a200128020421040b2004200b490d03200c2001280200200b1085051a20012802042204200b490d1520012004200b6b220736020420012001280200200b6a22083602004101210a410021090c020b410121094102210a0c010b4103210a410121090b200241003602a8012007417f6a2104200241a8016a410472210d034020072003460d10200820036a22052d0000210620012004360204200d20036a20063a00002001200541016a3602002002200341016a22053602a8012004417f6a21042005210320054120470d000b200041086a200241a8016a410b6a2f00003b00002000410a6a200241b5016a2d00003a00002000410f6a200241a8016a41126a2f01003b0000200041116a200241bc016a2d00003a0000200041186a200241c3016a2d00003a0000200041166a200241a8016a41196a2f00003b0000200220022f01ac013b01a401200220022d00ae013a00a601200241b6016a2801002101200241bd016a2800002103200241c4016a290200210e20022800af012104200041036a20022d00a6013a0000200020022f01a4013b0001200041196a200e370000200041126a20033600002000410b6a2001360000200041046a2004360000200041023a0000200041216a20022f00a1013b0000200041236a200241a1016a41026a2d00003a0000200041306a200b3600002000412c6a200b360000200041286a200c360000200041246a200a3600000c170b200c10300b2000410a3a00000c150b024002402006450d0020042d0001210520012003417e6a3602042001200441026a36020041002106410121070240024002400240024020050e0403000102050b200241286a2001109b0120022802280d0420012802042205200228022c2203490d042003417f4c0d130240024020030d00410121040c010b2003102f2204450d152004410020031087051a200128020421050b20052003490d032004200128020020031085051a200128020422052003490d162001200520036b3602042001200128020020036a36020041012106410021070c020b410221060c010b410321060b200241186a2001109d012002290318a70d022002290320210e200041033a0000200041186a200e370300200041106a20033600002000410c6a2003360000200041086a2004360000200041046a20063600000c170b200410300b2000410a3a00000c150b2000410a3a00002007200345720d14200410300c140b024002402006450d0020042d0001210520012003417e6a3602042001200441026a36020041002106410121070240024002400240024020050e0403000102050b200241306a2001109b0120022802300d042001280204220520022802342203490d042003417f4c0d120240024020030d00410121040c010b2003102f2204450d142004410020031087051a200128020421050b20052003490d032004200128020020031085051a200128020422052003490d162001200520036b3602042001200128020020036a36020041012106410021070c020b41012107410221060c010b41032106410121070b200241a8016a200110a70120022d00a8014101460d02200020022900a901370001200041116a200241a8016a41116a280000360000200041096a200241a8016a41096a290000370000200041246a2003360000200041206a20033600002000411c6a2004360000200041186a2006360000200041043a00000c160b200410300b2000410a3a00000c140b2000410a3a00002007200345720d13200410300c130b02402006450d0020042d0001210520012003417e6a3602042001200441026a360200200020053a0001200041053a00000c130b2000410a3a00000c120b200241386a200110c90202402002290338a70d00200241386a41106a290300210e2002290340210f200041063a0000200041086a200f370300200041106a200e3703000c120b2000410a3a00000c110b200241d0006a2001109b01024020022802500d002001280204220420022802542203490d002003417f4c0d0a0240024020030d00410121050c010b2003102f2205450d0c2005410020031087051a200128020421040b024020042003490d002005200128020020031085052105200128020422042003490d10200041073a00002001200420036b360204200041086a2003ad220e422086200e84370000200041046a20053600002001200128020020036a3602000c120b200510300b2000410a3a00000c100b200041083a00000c0f0b2006450d0420042d0001210520012003417e6a22033602042001200441026a360200410021064101210702400240024002400240024020050e07080001020304050a0b20024190016a2001109b012002280290010d09200128020422032002280294012205490d092005417f4c0d0c0240024020050d00410121040c010b2005102f2204450d0e2004410020051087051a200128020421030b20032005490d082004200128020020051085051a2001280204220320054f0d062005200341f0f5c100104a000b20024198016a2001109b012002280298010d08200228029c01210420012802042103410221060c060b410321060c050b410421060c040b410521060c030b410621060c020b2000410a3a00000c0d0b2005ad220e422086200e84210e2001200320056b22033602042001200128020020056a36020041012106410021070b2003450d02200128020022052d0000210820012003417f6a3602042001200541016a360200410021050240024002400240024020080e050400010203070b200241d8006a2001109b0120022802580d06200228025c2103410121050c030b200241e8006a2001109b0120022802680d05200228026c2103200241e0006a2001109b0120022802600d052002280264210d410221050c020b200241f8006a2001109b0120022802780d04200228027c2103200241f0006a2001109b0120022802700d042002280274210d410321050c010b20024188016a2001109b012002280288010d03200228028c01210320024180016a2001109b012002280280010d03200228028401210d410421050b200041093a0000200020022f00a4013b00012000411c6a200d360200200041186a2003360200200041146a20053602002000410c6a200e370000200041086a2004360000200041046a2006360000200041206a20022903a801370300200041036a200241a6016a2d00003a0000200041286a200241a8016a41086a290300370300200041306a200241b8016a2903003703000c0b0b200410300b2000410a3a00000c090b2000410a3a00002007200ea745720d08200410300c080b2000410a3a00002009200b4572450d060c070b102c000b102a000b200b200441f0f5c100104a000b2003200541f0f5c100104a000b2003200541f0f5c100104a000b2003200441f0f5c100104a000b200c10300b200241d0016a24000bf90401017f230041106b22022400024002400240024002400240024002400240024020002802000e09000102030405060708090b200241003a000f20012002410f6a410110640c080b200241013a000f20012002410f6a41011064200041086a2001109e020c070b200241023a000f20012002410f6a41011064200041086a2001109e02200041c0006a2001109e020c060b200241033a000f20012002410f6a41011064200041086a2001109e02200041c0006a2001109e02200041f8006a2001109e020c050b200241043a000f20012002410f6a41011064200041086a2001109e02200041c0006a2001109e02200041f8006a2001109e02200041b0016a2001109e020c040b200241053a000f20012002410f6a41011064200041086a2001109e02200041c0006a2001109e02200041f8006a2001109e02200041b0016a2001109e02200041e8016a2001109e020c030b200241063a000f20012002410f6a41011064200041086a2001109e02200041c0006a2001109e02200041f8006a2001109e02200041b0016a2001109e02200041e8016a2001109e02200041a0026a2001109e020c020b200241073a000f20012002410f6a41011064200041086a2001109e02200041c0006a2001109e02200041f8006a2001109e02200041b0016a2001109e02200041e8016a2001109e02200041a0026a2001109e02200041d8026a2001109e020c010b200241083a000f20012002410f6a41011064200041086a2001109e02200041c0006a2001109e02200041f8006a2001109e02200041b0016a2001109e02200041e8016a2001109e02200041a0026a2001109e02200041d8026a2001109e0220004190036a2001109e020b200241106a24000bad0901027f230041106b220224000240024002400240024002400240024002400240024020002d00000e0a000102030405060708090a0b200241003a000f20012002410f6a410110640c090b200241013a000f20012002410f6a41011064200041046a200110ee010c080b200241023a000f20012002410f6a41011064200041016a210302400240024002400240200041246a2802000e0400010203000b200241003a000f20012002410f6a410110640c030b200241013a000f20012002410f6a41011064200041286a280200200041306a280200200110a6010c020b200241023a000f20012002410f6a410110640c010b200241033a000f20012002410f6a410110640b20012003412010640c070b200241033a000f20012002410f6a41011064200041186a21030240024002400240200041046a2802000e0400010203000b200241003a000f20012002410f6a410110642003200110d2020c090b200241013a000f20012002410f6a41011064200041086a280200200041106a280200200110a6012003200110d2020c080b200241023a000f20012002410f6a410110642003200110d2020c070b200241033a000f20012002410f6a410110642003200110d2020c060b200241043a000f20012002410f6a41011064200041016a210302400240024002400240200041186a2802000e0400010203000b200241003a000f20012002410f6a410110640c030b200241013a000f20012002410f6a410110642000411c6a280200200041246a280200200110a6010c020b200241023a000f20012002410f6a410110640c010b200241033a000f20012002410f6a410110640b20012003411410640c050b200241053a000f20012002410f6a41011064200220002d00013a000f20012002410f6a410110640c040b200241063a000f20012002410f6a410110642002200041086a360208200241086a200110cc020c030b200241073a000f20012002410f6a41011064200041046a2802002000410c6a280200200110a6010c020b200241083a000f20012002410f6a410110640c010b200241093a000f20012002410f6a4101106402400240024002400240024002400240200041046a2802000e0700010203040506070b200241003a000f20012002410f6a410110640c060b200241013a000f20012002410f6a41011064200041086a280200200041106a280200200110a6010c050b200241023a000f20012002410f6a41011064200041086a200110ee010c040b200241033a000f20012002410f6a410110640c030b200241043a000f20012002410f6a410110640c020b200241053a000f20012002410f6a410110640c010b200241063a000f20012002410f6a410110640b0240024002400240024020002802140e050001020304050b200241003a000f20012002410f6a410110640c040b200241013a000f20012002410f6a41011064200041186a200110ee010c030b200241023a000f20012002410f6a41011064200041186a200110ee012000411c6a200110ee010c020b200241033a000f20012002410f6a41011064200041186a200110ee012000411c6a200110ee010c010b200241043a000f20012002410f6a41011064200041186a200110ee012000411c6a200110ee010b200241106a24000b4201027f230041106b2202240002404101102f22030d00102a000b2000420137020420002003360200200241003a000f20002002410f6a41011064200241106a24000b2701017f02404104102f22020d00102a000b20004204370204200020023602002000410010a5010b8f0101027f230041306b220224002000410036020820004201370200200241186a4200370300200241106a4200370300200241086a42003703002002420037030002404120102f2203450d002002422037022420022003360220200241206a2002412010642000200228022022032002280228106402402002280224450d00200310300b200241306a24000f0b102a000b4301027f230041106b2202240002404104102f22030d00102a000b2000420437020420002003360200200241e40036020c20002002410c6a41041064200241106a24000b2e01017f230041106b2202240020024200370204200241002802dc944236020020002002108702200241106a24000b4201027f230041106b2202240002404104102f22030d00102a000b2000420437020420002003360200200241003a000f20002002410f6a41011064200241106a24000b6a01017f230041106b2202240020004100360208200042013702002002410036020c20002002410c6a410410642002410036020c20002002410c6a410410642002410036020c20002002410c6a410410642002410036020c20002002410c6a41041064200241106a24000b8f0101027f230041306b220224002000410036020820004201370200200241186a4200370300200241106a4200370300200241086a42003703002002420037030002404120102f2203450d002002422037022420022003360220200241206a2002412010642000200228022022032002280228106402402002280224450d00200310300b200241306a24000f0b102a000b2701017f02404104102f22020d00102a000b20004204370204200020023602002000410010a5010b4201027f230041106b2202240002404104102f22030d00102a000b20004204370204200020033602002002410036020c20002002410c6a41041064200241106a24000b4301027f230041106b220224002002420037020402404104102f22030d00102a000b20004204370204200020033602002000410010a5012002109502200241106a24000b5801017f230041106b220224002000410036020820004201370200200242003703082000200241086a41081064200242003703082000200241086a41081064200242003703082000200241086a41081064200241106a24000bc65e0b047f017e127f017e087f017e147f017e037f017e017f230041c0036b2202240020024188016a200110ac02024002400240024002402002280288010d00200228028c01210320012001280204220441016a2205360204200520012802084b0d0002402003450d004100210542002106034002402005417f470d0020064280808080705a0d072006422088a721050b200642ffffffff0f83200541016a2205ad4220868421062003417f6a22030d000b0b20012004360204200128020022052802042203450d01200528020022072d0000210420052003417f6a3602042005200741016a360200200441ff00714104460d02200041023602000c030b200041023602000c020b200041023602000c010b0240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002402004411874411875417f4c0d00410321030c010b02400240200128020022052802042203450d00200528020022042d0000210820052003417f6a360204410121092005200441016a36020041012104024002400240024002400240024020080e050006010203070b200241a0026a410472210a410021030340200128020022052802042204450d07200528020022072d0000210b20052004417f6a3602042005200741016a360200200a20036a200b3a0000200341016a2205210320054120470d000b200241a0026a41086a280200220541087420022802a402220c41187672210b200241ac026a2f0100200241ae026a2d0000411074724108742005411876722107200241b3026a2f0000200241b5026a2d000041107472210d200241ba026a2f0100200241bc026a2d000041107472210e200241c1026a2f0000200241c3026a2d000041107472210f200241af026a280000210a200241b6026a2801002110200241bd026a280000211141002104410121090c050b20024180016a200110ac022002280280010d05200128020022052802042203200228028401220a490d05200a417f4c0d1f02400240200a0d004101210b0c010b200a102f220b450d1b200b4100200a1087051a2001280200220528020421030b02402003200a490d00200b2005280200200a1085051a20052802042203200a4f0d03200a200341f0f5c100104a000b200b1030410321030c060b200241a0026a410472210a410021030340200128020022052802042204450d05200528020022072d0000210b20052004417f6a3602042005200741016a360200200a20036a200b3a0000200341016a2205210320054120470d000b200241a0026a41086a280200220541087420022802a402220c41187672210b200241ac026a2f0100200241ae026a2d0000411074724108742005411876722107200241b3026a2f0000200241b5026a2d000041107472210d200241ba026a2f0100200241bc026a2d000041107472210e200241c1026a2f0000200241c3026a2d000041107472210f200241af026a280000210a200241b6026a2801002110200241bd026a280000211141032104410121090c030b200128020022052802042203450d03200528020022042d0000210720052003417f6a3602042005200441016a360200200220073a00a4022001280200220528020422030d010c030b20052003200a6b36020420052005280200200a6a3602004102210441002109200a21070c010b200528020022042d0000210720052003417f6a3602042005200441016a360200200220073a00a502200128020022052802042203450d01200528020022042d0000210720052003417f6a3602042005200441016a360200200220073a00a602200128020022052802042203450d01200528020022042d0000210720052003417f6a3602042005200441016a360200200220073a00a702200128020022052802042203450d01200528020022042d0000210720052003417f6a3602042005200441016a360200200241a8026a20073a0000200128020022052802042203450d01200528020022042d0000210720052003417f6a3602042005200441016a360200200241a9026a20073a0000200128020022052802042203450d01200528020022042d0000210720052003417f6a3602042005200441016a360200200241aa026a20073a0000200128020022052802042203450d01200528020022042d0000210720052003417f6a3602042005200441016a360200200241ab026a20073a0000200128020022052802042203450d01200528020022042d0000210720052003417f6a3602042005200441016a360200200241ac026a20073a0000200128020022052802042203450d01200528020022042d0000210720052003417f6a3602042005200441016a360200200241ad026a20073a0000200128020022052802042203450d01200528020022042d0000210720052003417f6a3602042005200441016a360200200241ae026a20073a0000200128020022052802042203450d01200528020022042d0000210720052003417f6a3602042005200441016a360200200241af026a20073a0000200128020022052802042203450d01200528020022042d0000210720052003417f6a3602042005200441016a360200200241b0026a20073a0000200128020022052802042203450d01200528020022042d0000210720052003417f6a3602042005200441016a360200200241b1026a20073a0000200128020022052802042203450d01200528020022042d0000210720052003417f6a3602042005200441016a360200200241b2026a20073a0000200128020022052802042203450d01200528020022042d0000210720052003417f6a3602042005200441016a360200200241b3026a20073a0000200128020022052802042203450d01200528020022042d0000210720052003417f6a3602042005200441016a360200200241b4026a20073a0000200128020022052802042203450d01200528020022042d0000210720052003417f6a3602042005200441016a360200200241b5026a20073a0000200128020022052802042203450d01200528020022042d0000210720052003417f6a360204410121092005200441016a360200200241b6026a220320073a0000200128020022052802042204450d01200528020022072d0000210b20052004417f6a3602042005200741016a360200200241b7026a200b3a0000200241a0026a41086a280200220541087420022802a402220c41187672210b200241ac026a2f0100200241ae026a2d0000411074724108742005411876722107200241b3026a2f0000200241b5026a2d000041107472210d200241af026a280000210a20032f01002110410421040b0240024002400240024002400240200128020022052802042203450d00200528020022082d0000211220052003417f6a3602042005200841016a360200024002400240024020120e03000102040b200241003602a00241c00021030340200128020022052802042208450d04200528020022122d000021132005201241016a36020020052008417f6a36020420022802a002220541c0004f0d05200241a0026a20056a41046a20133a00002002200541016a3602a0022003417f6a22030d000b2005413f490d05200241f8026a41026a200241ad026a2d00003a0000200220022f01a4023b018803200220022d00a6023a008a032002200241ab026a2f00003b01f802200241ae026a2801002114200241b5026a2800002115200241bc026a2802002116200241c3026a2800002117200241ca026a2801002109200241d1026a2800002113200241d8026a2802002112200241dc026a290200210620022800a7022118200241e8026a41026a200241b4026a2d00003a000020024180026a41026a200241bb026a2d00003a0000200241f0016a41026a200241c2026a2d00003a00002002419c026a41026a200241c9026a2d00003a000020024198026a41026a200241d0026a2d00003a00002002200241b2026a2f01003b01e8022002200241b9026a2f00003b0180022002200241c0026a2f01003b01f0012002200241c7026a2f00003b019c022002200241ce026a2f01003b01980220024194026a41026a200241d7026a2d00003a00002002200241d5026a2f00003b019402410021030c020b200241003602a00241c00021030340200128020022052802042208450d03200528020022122d000021132005201241016a36020020052008417f6a36020420022802a002220541c0004f0d06200241a0026a20056a41046a20133a00002002200541016a3602a0022003417f6a22030d000b2005413f490d06200241d5026a2900002119200241ae026a2801002114200241b5026a2800002115200241bc026a2802002116200241c3026a2800002117200241ca026a2801002109200241d1026a280000211320022800a7022118200241a8036a410b6a200241e0026a280000360000200220193703a803200220022f01a4023b018803200220022d00a6023a008a032002200241dd026a2800003602b00320024198036a41026a220520022d00aa033a0000200220193d01980320022900af032106200241f8026a41026a200241ad026a2d00003a00002002200241a0026a410b6a2f00003b01f802200241e8026a41026a200241b4026a2d00003a00002002200241b2026a2f01003b01e80220024180026a41026a200241bb026a2d00003a00002002200241b9026a2f00003b018002200241f0016a41026a200241c2026a2d00003a00002002200241c0026a2f01003b01f0012002419c026a41026a200241c9026a2d00003a00002002200241c7026a2f00003b019c0220024198026a41026a200241d0026a2d00003a00002002200241ce026a2f01003b01980220024194026a41026a20052d00003a0000200220022f0198033b0194022019421888a72112410121030c010b200241003602a00241c10021030340200128020022052802042208450d02200528020022122d000021132005201241016a36020020052008417f6a36020420022802a002220541c1004f0d07200241a0026a20056a41046a20133a00002002200541016a3602a0022003417f6a22030d000b200541c000490d07200241d5026a2900002119200241ae026a2801002114200241b5026a2800002115200241bc026a2802002116200241c3026a2800002117200241ca026a2801002109200241d1026a2800002113200241e4026a2d0000211a200241dd026a2d0000210520022800a7022118200241a8036a410d6a200241e2026a2f01003b0000200220193703a803200220022f01a4023b018803200220022d00a6023a008a03200220053a00b0032002200241de026a2801003600b1034102210320024198036a41026a220520022d00aa033a0000200220193d01980320022900af032106200241f8026a41026a200241a0026a410d6a2d00003a00002002200241ab026a2f00003b01f802200241e8026a41026a200241b4026a2d00003a00002002200241b2026a2f01003b01e80220024180026a41026a200241bb026a2d00003a00002002200241b9026a2f00003b018002200241f0016a41026a200241c2026a2d00003a00002002200241c0026a2f01003b01f0012002419c026a41026a200241c9026a2d00003a00002002200241c7026a2f00003b019c0220024198026a41026a200241d0026a2d00003a00002002200241ce026a2f01003b01980220024194026a41026a20052d00003a0000200220022f0198033b0194022019421888a721120b200241a8036a41026a20022d008a033a0000200241a0026a41026a20024191026a41026a2d00003a000020024198036a41026a200241f8026a41026a2d00003a0000200241ec016a41026a200241e8026a41026a2d00003a0000200241e8016a41026a20024180026a41026a2d00003a0000200220022f0091023b01a002200220022f0188033b01a803200220022f01f8023b019803200220022f01e8023b01ec01200220022f0180023b01e801200241e4016a41026a200241f0016a41026a2d00003a0000200241e0016a41026a2002419c026a41026a2d00003a0000200241dc016a41026a20024198026a41026a2d00003a0000200241d8016a41026a20024194026a41026a2d00003a0000200220022f01f0013b01e401200220022f019c023b01e001200220022f0198023b01dc01200220022f0194023b01d8010c080b2009200745720d06200b1030410321030c070b200220133a00a80341bea9c200412b200241a8036a41ecf6c00041bc8ec2001034000b41fef8c100411b419cf9c100102d000b200220133a00a80341bea9c200412b200241a8036a41ecf6c00041bc8ec2001034000b41fef8c100411b419cf9c100102d000b200220133a00a80341bea9c200412b200241a8036a41ecf6c00041bc8ec2001034000b41fef8c100411b419cf9c100102d000b410321030b200241d4016a41026a2205200241a0026a41026a2d00003a0000200241d0016a41026a2208200241a8036a41026a2d00003a0000200241cc016a41026a221b20024198036a41026a2d00003a0000200241c8016a41026a221c200241ec016a41026a2d00003a0000200241c4016a41026a221d200241e8016a41026a2d00003a0000200220022f01a0023b01d401200220022f01a8033b01d001200220022f0198033b01cc01200220022f01ec013b01c801200220022f01e8013b01c401200241c0016a41026a221e200241e4016a41026a2d00003a0000200241bc016a41026a221f200241e0016a41026a2d00003a0000200241b8016a41026a2220200241dc016a41026a2d00003a0000200241b4016a41026a2221200241d8016a41026a2d00003a0000200220022f01e4013b01c001200220022f01e0013b01bc01200220022f01dc013b01b801200220022f01d8013b01b40120034103460d01200241b0016a41026a20052d00003a0000200241ac016a41026a20082d00003a0000200241a8016a41026a201b2d00003a0000200241a4016a41026a201c2d00003a0000200241a0016a41026a201d2d00003a0000200220022f01d4013b01b001200220022f01d0013b01ac01200220022f01cc013b01a801200220022f01c8013b01a401200220022f01c4013b01a0012002419c016a41026a201e2d00003a000020024198016a41026a201f2d00003a000020024194016a41026a20202d00003a000020024190016a41026a20212d00003a0000200220022f01c0013b019c01200220022f01bc013b019801200220022f01b8013b019401200220022f01b4013b0190010b200128020022052802042208450d152005280200221b2d0000211c20052008417f6a3602042005201b41016a36020002400240024002400240201c0e0400011a041a0b200128020022052802042208450d192005280200221b2d0000211c20052008417f6a3602042005201b41016a3602000240024002400240024002400240024002400240201c0e0a00010203040506070809230b2001280200220528020422014104490d222005280200221b280000210820052001417c6a3602042005201b41046a3602002008418194ebdc034f0d22410021014101211e0c0a0b2002200110ac0220022802000d212001280200221b280204221c20022802042205490d212005417f4c0d230240024020050d00410121080c010b2005102f2208450d1f2008410020051087051a2001280200221b280204211c0b201c2005490d202008201b28020020051085051a201b28020422012005490d0d2005ad22194220862019842119201b200120056b360204201b201b28020020056a360200410021014102211e0c090b2001280200220528020422014108490d202005280200220829000021192005200141786a3602042005200841086a360200410021014103211e0c080b200241086a200110ac0220022802080d1f2001280200221b280204221c200228020c2205490d1f2005417f4c0d210240024020050d00410121080c010b2005102f2208450d1d2008410020051087051a2001280200221b280204211c0b201c2005490d1e2008201b28020020051085051a201b28020422012005490d122005ad22194220862019842119201b200120056b360204201b201b28020020056a360200410021014104211e0c070b200241106a200110ac0220022802100d1e2001280200221b280204221c20022802142205490d1e2005417f4c0d200240024020050d00410121080c010b2005102f2208450d1c2008410020051087051a2001280200221b280204211c0b201c2005490d1d2008201b28020020051085051a201b28020422012005490d122005ad22194220862019842119201b200120056b360204201b201b28020020056a360200410021014105211e0c060b200241a0026a200110ad0220022802a00222084102460d1d20022902a4022119410021014106211e0c050b200241286a200110ac0220022802280d1c200228022c221d200128020028020441186e22052005201d4b1bad42187e2219422088a70d1e2019a72205417f4c0d1e0240024020050d00410421080c010b2005102f2208450d1a0b2001200128020441016a221b360204200541186ead2119201b20012802084b0d1a02400240201d450d0002400340200241206a200110ac0220022802200d1e2001280200221b280204221c20022802242205490d1e2005417f4c0d220240024020050d004101211e0c010b2005102f221e450d1e201e410020051087051a2001280200221b280204211c0b024002400240201c2005490d00201e201b28020020051085052121201b280204221c2005490d10201b201c20056b360204201b201b28020020056a360200200241186a200110ac02024020022802180d002001280200221c280204221f200228021c221b490d00201b417f4c0d2602400240201b0d00410121200c010b201b102f2220450d2220204100201b1087051a2001280200221c280204211f0b0240201f201b490d002020201c280200201b108505211f201c280204221e201b490d13201c201e201b6b360204201c201c280200201b6a3602002019422088a7221c2019a7470d04201c41016a221e201c4f0d030c270b202010300b2005450d210b201e10300c200b201c4101742220201e201e2020491b221e4104201e41044b1bad42187e2222422088a745410274211e2022a7212002400240201c0d00200241003602a0020c010b200241043602a802200220083602a0022002201c41186c3602a4020b200241a8036a2020201e200241a0026a106920022802b003211e20022802a8034101460d0220022802ac032108201942808080807083201e41186ead8421190b2008201c41186c6a221c2005360204201c2021360200201c41106a201bad2222422086202284370200201c410c6a201f360200201c41086a200536020020194280808080107c2119201d417f6a221d0d000b20012001280204417f6a3602040c020b201e450d200c1b0b2001201b417f6a3602042008450d1d0b410021014107211e0c040b200241a0026a200110ae0220022802a0022208450d1b20022902a4022119410021014108211e0c030b200241306a200110ac0220022802300d1a2001280200221b280204221c20022802342205490d1a2005417f4c0d1c0240024020050d00410121080c010b2005102f2208450d182008410020051087051a2001280200221b280204211c0b201c2005490d192008201b28020020051085051a201b280204221c2005490d0f201b201c20056b360204201b201b28020020056a360200024020012802002201280204221b4104490d002005ad221942208620198421192001280200220528000021232001201b417c6a3602042001200541046a360200410021014109211e0c030b20050d190c1a0b200241386a200110ac0220022802380d192001280200221b280204221c200228023c2205490d192005417f4c0d1b0240024020050d00410121080c010b2005102f2208450d172008410020051087051a2001280200221b280204211c0b201c2005490d182008201b28020020051085051a201b28020422012005490d0f2005ad22194220862019842119201b200120056b360204201b201b28020020056a36020041002101410a211e0c010b200128020022052802042208450d182005280200221b2d0000211c20052008417f6a3602042005201b41016a360200024002400240024002400240024002400240201c0e050001020304210b2001280200220528020422014104490d2020052802002208280000211e20052001417c6a3602042005200841046a360200410021014101212442002119420021220c050b200241e8006a200110ac0220022802680d1f20012802002205280204221b200228026c2208490d1f2008417f4c0d210240024020080d004101211e0c010b2008102f221e450d1d201e410020081087051a20012802002205280204211b0b201b2008490d1b201e200528020020081085051a2005280204221b2008490d0e2005201b20086b3602042005200528020020086a3602000240024020012802002205280204221b4104490d002008ad21192005280200221c35000021222005201b417c6a3602042005201c41046a360200200241a0026a41047221204100211b034020012802002205280204221c450d012005280200221d2d0000211f2005201c417f6a3602042005201d41016a3602002020201b6a201f3a0000201b41016a2205211b20054120470d000b20012802002205280204221b41044f0d010b20080d1c0c200b20022802a4022125200241a0026a41086a2802002126200241ae026a2d00002127200241ac026a2f01002128200241b5026a2d00002129200241b3026a2f0000212a200241bc026a2d0000212b200241ba026a2f0100212c200241c3026a2d0000212d200241c1026a2f0000212e200241af026a280000212f200241b6026a2801002130200241bd026a28000021312005280200221c28000021232005201b417c6a3602042005201c41046a360200200241a0026a200110ae0220022802a0022232450d1a200241a8026a280200213320022802a4022121200241e0006a200110ac0220022802600d19410421202002280264223420012802002802044104762205200520344b1b221f4104742205417f4c0d210240201f450d002005102f2220450d1d0b2001200128020441016a2205360204024002400240200520012802084b0d002034450d014100211b4100211d02400240034020012802002205280204221c4104490d022005280200222428000021352005201c417c6a3602042005202441046a360200200241d8006a200110ac0220022802580d022001280200221c2802042224200228025c2205490d022005417f4c0d270240024020050d00410121360c010b2005102f2236450d232036410020051087051a2001280200221c28020421240b20242005490d012036201c28020020051085052136201c28020422242005490d15201c202420056b360204201c201c28020020056a3602000240201d201f470d00201f41016a221c201f490d28201f4101742224201c2024201c4b1b221c4104201c41044b1b221c41ffffffff0071201c464102742124201c410474211c02400240201f0d00200241003602a0020c010b200220203602a002200241043602a8022002201f4104743602a4020b200241a8036a201c2024200241a0026a106920022802b003211c024020022802a8034101470d00201c450d290c240b20022802ac032120201c410476211f0b2020201b6a221c2035360200201c41086a2005ad2237422086203784370200201c41046a2036360200201b41106a211b2034201d41016a221d470d000b20012001280204417f6a3602040c040b203610300b201d450d00202041086a2105034002402005280200450d002005417c6a28020010300b200541106a2105201b41706a221b0d000b0b201f41ffffffff00710d1a0c1b0b20012005417f6a3602042020450d1a410021340b200241d0006a200110ac0220022802500d17200228025421382001200128020441016a2205360204200520012802084b0d172002420037029c0302402038450d0041002139034020012802002205280204221b4104490d182005280200221c280000213a2005201b417c6a3602042005201c41046a360200200241c8006a200110ac0220022802480d18200228024c221c200128020028020441047622052005201c4b1b2205410474221b417f4c0d230240024020050d00410421360c010b201b102f2236450d1f0b2001200128020441016a221b3602042005ad2137024002400240201b20012802084b0d00201c450d0102400240034020012802002205280204221b4104490d032005280200221d28000021352005201b417c6a3602042005201d41046a360200200241c0006a200110ac0220022802400d032001280200221b280204221d20022802442205490d032005417f4c0d290240024020050d00410121240c010b2005102f2224450d252024410020051087051a2001280200221b280204211d0b201d2005490d022024201b28020020051085052124201b280204221d2005490d18201b201d20056b360204201b201b28020020056a36020002402037422088223ba7221b2037a7470d00201b41016a221d201b490d2a201b410174223c201d201d203c491b221d4104201d41044b1b221d41ffffffff0071201d46410274213c201d410474211d02400240201b0d00200241003602a0020c010b200241043602a802200220363602a0022002203b4204863e02a4020b200241a8036a201d203c200241a0026a106920022802b003211d20022802a8034101460d0220022802ac032136203742808080807083201d410476ad8421370b2036201b4104746a221b2024360204201b2035360200201b41086a2005ad223b422086203b8437020020374280808080107c2137201c417f6a221c0d000b20012001280204417f6a3602040c040b201d450d270c220b202410300b02402037422088a72205450d002005410474210a203641086a2105034002402005280200450d002005417c6a28020010300b200541106a2105200a41706a220a0d000b0b203742ffffffff0083500d1a203610300c1a0b2001201b417f6a3602042036450d190b203941016a2139200220373702a402200220363602a002200241a8036a20024198036a203a200241a0026a10af02024020022802a803221c450d00024020022802b0032205450d002005410474211b201c41086a2105034002402005280200450d002005417c6a28020010300b200541106a2105201b41706a221b0d000b0b20022802ac0341ffffffff0071450d00201c10300b20392038470d000b0b20282027411074724108742026411876722127202a202941107472211b202c202b41107472211c202e202d41107472211d20264108742025411876722224410876210520224220862222201984211920024188036a41086a20024198036a41086a2802002236360200200220022903980322373703880320012001280204417f6a360204200241e8026a41086a2036360200200220373703e8022024411874202541ffffff077172213641002101410221240c060b200241f0006a200110ac0220022802700d1e20012802002205280204221b20022802742208490d1e2008417f4c0d200240024020080d004101211e0c010b2008102f221e450d1c201e410020081087051a20012802002205280204211b0b201b2008490d07201e200528020020081085051a200528020422012008490d102008ad21192005200120086b3602042005200528020020086a36020041002101410321240c020b200241a0026a410472211e41002108034020012802002205280204221b450d1e2005280200221c2d0000211d2005201b417f6a3602042005201c41016a360200201e20086a201d3a0000200841016a2205210820054120470d000b200241bb026a2800002136200241c2026a2f01002127200241bf026a2f00002108200241c1026a2d0000211b200241b8026a2f01002101200241a0026a41086a2903002137200241a0026a41106a290300211920022802a4022105200241be036a200241ba026a2d00003a0000200220193702b403200220373702ac03200220013b01bc03200220053602a803200541087421012008201b41107472210520022900b30322194280808080708321222037421888a7210820022800bb03212320022800ab03211e410421240c030b200241f8006a200110ac0220022802780d1c20012802002205280204221b200228027c2208490d1c2008417f4c0d1e0240024020080d004101211e0c010b2008102f221e450d1a201e410020081087051a20012802002205280204211b0b02400240201b2008490d00201e200528020020081085051a2005280204220120084f0d012008200141f0f5c100104a000b201e10300c1d0b2008ad21192005200120086b3602042005200528020020086a36020041002101410521240b420021220b0b0b20024180026a41086a200241e8026a41086a280200360200200220022903e80237038002200120247221242022201942ffffffff0f83842119410121010b200241f0016a41086a222520024180026a41086a28020036020020022002290380023703f0012000413b6a201d4110763a0000200041396a201d3b0000200041346a201c4110763a0000200041326a201c3b01002000412d6a201b4110763a00002000412b6a201b3b0000200041226a20054110763a0000200041206a20053b0100200041d0006a2034360200200041cc006a201f360200200041c8006a2020360200200041c4006a2033360200200041c0006a20213602002000413c6a2032360200200041356a20313600002000412e6a2030360100200041276a202f360000200041236a20273600002000411c6a2036360200200041186a2023360200200041106a20193702002000410c6a2008360200200041086a201e3602002000202436020420004180016a200f4110763a0000200041fe006a200f3b0100200041f9006a200e4110763a0000200041f7006a200e3b0000200041f2006a200d4110763a0000200041f0006a200d3b0100200041e3006a200c4110763a00002000200c3b0061200041e4006a200b360200200041e8006a2007360200200041ec006a200a360200200041f3006a2010360000200041fa006a2011360100200041e0006a20043a0000200041dc006a2025280200360200200041d4006a20022903f001370200200020022f01b0013b00810120004183016a200241b0016a41026a2d00003a000020004184016a20033a000020004188016a20183600002000418f016a201436000020004196016a2015360000200020022f01ac013b00850120004187016a200241ac016a41026a2d00003a00002000418e016a200241a8016a41026a2d00003a00002000418c016a20022f01a8013b000020004195016a200241a4016a41026a2d00003a0000200020022f01a4013b0093012000419c016a200241a0016a41026a2d00003a0000200020022f01a0013b009a012000419d016a2016360000200041a3016a2002419c016a41026a2d00003a0000200020022f019c013b00a101200041a4016a2017360000200041aa016a20024198016a41026a2d00003a0000200041a8016a20022f0198013b0000200041ab016a2009360000200041b1016a20024194016a41026a2d00003a0000200020022f0194013b00af01200041b2016a2013360000200041b8016a20024190016a41026a2d00003a0000200020022f0190013b00b6012000201a3a00c501200041bd016a2006370000200041b9016a2012360000200020013602000c180b201e10300c160b200128020022052802042201450d1520052001417f6a3602042005200528020041016a3602000c150b200041023602000c150b2005200141f0f5c100104a000b2005201c41f0f5c100104a000b201b201e41f0f5c100104a000b2008201b41f0f5c100104a000b2005202441f0f5c100104a000b2005201d41f0f5c100104a000b2008200141f0f5c100104a000b2005200141f0f5c100104a000b2005200141f0f5c100104a000b2005201c41f0f5c100104a000b2005200141f0f5c100104a000b200241a0026a41086a20024198036a41086a28020036020020022002290398033703a002200241a0026a10e30120012001280204417f6a3602040b02402034450d002034410474210a4100210503400240202020056a220141086a280200450d00200141046a28020010300b200a200541106a2205470d000b0b201f41ffffffff0071450d010b202010300b02402033450d002033410c6c21012032210503400240200541046a280200450d00200528020010300b2005410c6a2105200141746a22010d000b0b2021450d002021410c6c450d00203210300b2008450d040b201e10300c030b102a000b02402019422088a72205450d00200541186c21012008210503400240200541046a280200450d00200528020010300b0240200541106a280200450d002005410c6a28020010300b200541186a2105200141686a22010d000b0b2019a72205450d01200541186c450d010b200810300b2000410236020020034103460d00200441ff01714102470d002007450d00200b10300b200241c0036a24000f0b102c000bfb0201057f02400240200128020022022802042203450d00200228020022042d0000210520022003417f6a360204410121032002200441016a3602000240200541037122024103460d0002400240024020020e03000102000b20054102762102410021030c040b200128020022022802042203450d02200228020022012d0000210420022003417f6a360204410121032002200141016a3602002004410874200572220141ffff0371418002490d03200141fcff03714102762102410021030c030b2001280200220228020422034103490d012002280200220141026a2d0000210420012f000021062002200141036a36020020022003417d6a3602042006200441107472410874200572220241808004492103200241027621020c020b0240200541034d0d000c020b2001280200220128020422054104490d0120012802002203280000210220012005417c6a3602042001200341046a36020020024180808080044921030c010b410121030b20002002360204200020033602000be60101047f0240024002400240200128020022022802042203450d00200228020022042d0000210520022003417f6a3602042002200441016a36020020050e020203010b200041023602000f0b200041023602000f0b200041003602000f0b024002402001280200220228020422034104490d0020022802002204280000210520022003417c6a3602042002200441046a36020020012802002202280204220141034b0d010b200041023602000f0b200020053602042000410136020020022802002203280000210420022001417c6a3602042002200341046a360200200041086a20043602000bd10503037f017e087f230041306b22022400200241086a200110ac02024002402002280208450d00200041003602000c010b024002400240200228020c22032001280200280204410c6e2204200420034b1bad420c7e2205422088a70d002005a72204417f4c0d00024002400240024020040d00410421060c010b2004102f2206450d010b2001200128020441016a22073602042004410c6e2108024002400240200720012802084b0d0020030d01410021030c070b200041003602000c010b41002109410021074100210a024003402002200110ac0220022802000d012001280200220b280204220c20022802042204490d012004417f4c0d050240024020040d004101210d0c010b2004102f220d450d04200d410020041087051a2001280200220b280204210c0b0240200c2004490d00200d200b2802002004108505210d200b280204220c2004490d05200b200c20046b360204200b200b28020020046a3602000240200a2008470d002009200a41016a220b2009200b4b1b220b4104200b41044b1bad420c7e2205422088a745410274210b2005a7210c02400240200a0d00200241003602200c010b2002410436022820022007360224200220063602200b200241106a200c200b200241206a10692002280218210b024020022802104101470d00200b0d060c080b20022802142106200b410c6e21080b200620076a220b200d360200200b41046a2004ad2205422086200584370200200941026a21092007410c6a21072003200a41016a220a460d070c010b0b200d10300b20004100360200200a450d002006210403400240200441046a280200450d00200428020010300b2004410c6a2104200741746a22070d000b0b2008450d052008410c6c450d05200610300c050b102a000b2004200c41f0f5c100104a000b102c000b200128020421070b2000200836020420002006360200200041086a200336020020012007417f6a3602040b200241306a24000bd115030a7f017e087f230041e0006b2204240002400240024002400240024002400240024002400240024002400240024020012802042205450d00200128020021060c010b41b801102f2205450d0141002106200541003b01b6012005410036020020012005360204200141003602000b034020052f01b6012207410c6c210841002109417f210a200541046a220b210c02400340024020082009470d002007210a0c020b200c280200210d200a41016a210a2009410c6a2109200c41046a210c417f200d200247200d20024b1b220d4101460d000b0240200d41016a0e020100010b200441d0006a41086a200341086a280200220c36020020042003290200220e370350200041086a200520096a2209412c6a220d2802003602002000200941246a22092902003702002009200e370200200d200c3602000c0e0b02402006450d002006417f6a21062005200a4102746a41b8016a28020021050c010b0b200441086a200341086a22092802003602002004200329020037030002402007410a4b0d00200441c0006a41086a200928020036020020042003290200370340200a41016a21080240200a20074f220c0d00200b20084102746a200b200a4102746a2007200a6b4102741086051a0b200b200a4102746a2002360200200441d0006a41086a220d200441c0006a41086a28020036020020042004290340370350200541306a21090240200c0d0020092008410c6c6a2009200a410c6c6a2007200a6b410c6c1086051a0b2009200a410c6c6a22092004290350370200200941086a200d2802003602002005200741016a3b01b6010c0b0b410521094100210602400240200a41054f0d0041042109200a210c0c010b4105210c02400240200a417b6a0e020201000b200a41796a210c41012106410621090c010b4100210c410121060b41b801102f220d450d00200d41003b01b601200d4100360200200d20052f01b60122072009417f736a220a3b01b601200b20094102746a2802002103200441d0006a41086a200541306a220f2009410c6c6a220841086a28020036020020042008290200370350200a410c4f0d012007200941016a22086b200a470d02200d41046a200b20084102746a200a4102741085051a200d41306a200f2008410c6c6a200a410c6c1085051a200520093b01b601200441306a41086a200441d0006a41086a220728020036020020042004290350370330200441c0006a41086a220b200441086a28020036020020042004290300370340200d200520061b220941046a210a0240200c41016a220620092f01b60122084b220f0d00200a20064102746a200a200c4102746a2008200c6b4102741086051a0b200a200c4102746a20023602002007200b28020036020020042004290340370350200941306a210a0240200f0d00200a2006410c6c6a200a200c410c6c6a2008200c6b410c6c1086051a0b200a200c410c6c6a220c2004290350370200200c41086a200441d0006a41086a22072802003602002009200841016a3b01b601200441206a41086a2210200441306a41086a2211280200220936020020042004290330220e370320200441106a41086a220b20093602002004200e370310024002400240200528020022090d004100210f0c010b4100210f20032112200d2113034020052f01b40121022010200b28020036020020042004290310370320200922062f01b6012205410b490d024100210841042109024020024105490d0020022109024002402002417b6a0e020201000b200241796a210241012108410621090c010b4100210241012108410521090b41e801102f220d450d03200d41003b01b601200d4100360200200d20062f01b60122142009417f736a220c3b01b601200641046a221520094102746a28020021032007200641306a22162009410c6c6a220a41086a2802003602002004200a290200370350200c410c4f0d062014200941016a220a6b200c470d07200d41046a2015200a41027422146a200c4102741085051a200d41306a2016200a410c6c6a200c410c6c1085051a200620093b01b601200441c0006a41086a2215200728020036020020042004290350370340200d2f01b601220c41016a210a200c410c4f0d08200520096b2209200a470d09200f41016a210f200d41b8016a200620146a41b8016a20094102741085051a4100210902400340200d20094102746a41b8016a280200220a20093b01b401200a200d3602002009200c4f0d0120092009200c496a2209200c4d0d000b0b2011201528020036020020042004290340370330200d200620081b220a41046a21080240200241016a2209200a2f01b601220c4b22140d00200820094102746a200820024102746a200c20026b4102741086051a0b2008200241027422156a20123602002007201028020036020020042004290320370350200a41306a2105024020140d0020052009410c6c6a20052002410c6c6a200c20026b410c6c1086051a0b200c41016a210820052002410c6c6a22052004290350370200200541086a2007280200360200200a41b8016a21050240200241026a2214200c41026a22124f0d00200520144102746a200520094102746a200c20026b4102741086051a0b200520094102746a2013360200200a20083b01b6010240200920124f0d00200a20156a41bc016a210903402009280200220c200241016a22023b01b401200c200a360200200941046a210920082002470d000b0b200b2011280200360200200420042903303703102006210520032112200d2113200628020022090d000b0b2007200b280200360200200420042903103703502001280204220c450d082001280200210a41e801102f2209450d012009200c3602b801200941003b01b60120094100360200200c41003b01b401200c2009360200200120093602042001200a41016a360200200a200f470d0920092f01b601220c410b4f0d0a2009200c41016a220a3b01b6012009200c410c6c6a220241306a2004290350370200200241386a200441d8006a2802003602002009200c4102746a41046a2003360200200941b8016a200a4102746a200d360200200d200a3b01b401200d20093602002001200128020841016a3602080c0c0b200641046a21090240200520024d220c0d00200920024102746a220d41046a200d200520026b4102741086051a0b200920024102746a2012360200200441d0006a41086a220a200441106a41086a28020036020020042004290310370350200241016a2109200641306a210d0240200c0d00200d2009410c6c6a200d2002410c6c6a200520026b410c6c1086051a0b200541016a2108200d2002410c6c6a220d2004290350370200200d41086a200a280200360200200641b8016a210d200541026a210a0240200c0d002002410274200d6a41086a200d20094102746a200520026b4102741086051a0b200620083b01b601200d20094102746a20133602002009200a4f0d0a200541016a210a20062009417f6a22094102746a41bc016a210c0340200c280200220d200941016a22093b01b401200d2006360200200c41046a210c200a2009470d000c0b0b0b102a000b200a410b41e8a2c2001042000b41f8a2c200412841a0a3c200102d000b200c410b41e8a2c2001042000b41f8a2c200412841a0a3c200102d000b200a410c41f8a3c2001042000b41f8a2c200412841a0a3c200102d000b41b2abc200412b41e0abc200102d000b41eaa0c2004130419ca1c200102d000b41aca1c200412041cca1c200102d000b2001200128020841016a3602080b200041003602000b200441e0006a24000bcf0701077f230041a0046b220224000240024002400240024020014184016a22032d00004103470d00200241206a200141e0001085051a410021010c010b20024186016a200341c2001085051a200141e8006a2802002104200141e4006a28020021054101210302400240024020012d00600e03000201020b200241f2016a200141e3006a2d00003a0000200241c0036a200141f4006a290000370300200241c5036a200141f9006a2900003700002002200141e1006a2f00003b01f0012002200141ec006a2900003703b803410021030c010b2004450d00200510300b200241ec016a41026a2206200241f0016a41026a2d00003a0000200241d0026a41086a2207200241b8036a41086a290300370300200241d0026a410d6a2208200241b8036a410d6a290000370000200220022f01f0013b01ec01200220022903b8033703d00202402003450d00200041013b0001200041013a0000200041036a41003a00000c030b200241db016a2007290300370000200241e0016a2008290000370000200220022f01ec013b01c801200220043600cf01200220053600cb01200220022903d0023700d301200220062d00003a00ca01200241b8036a41046a200141e0001085051a200241d0026a200241b8036a41e4001085051a200241f0016a200241d0026a41046a41e0001085051a200241003602d802200242013703d0020240024020022802f0014101460d00200241003a00b803200241d0026a200241b8036a41011064200241f8016a200241d0026a10b1020c010b200241013a00b803200241d0026a200241b8036a41011064200241f0016a410472200241d0026a109b020b20022802d00221040240024020022802d8022205418102490d00200241b8036a20042005106520024186016a200241b8036a4120200241c8016a10fa0121040c010b20024186016a20042005200241c8016a10fa0121040b024020022802d402450d0020022802d00210300b2004450d01200241186a200241c8016a41186a290300370300200241106a200241c8016a41106a290300370300200241086a200241c8016a41086a290300370300200220022903c801370300200241206a200241f0016a41e0001085051a410121010b200041086a200241206a41e0001085051a200041e8006a20013a0000200041003a0000200041e9006a2002290300370000200041f1006a200241086a290300370000200041f9006a200241106a29030037000020004181016a200241186a2903003700000c020b20004180083b0001200041013a0000200041036a41003a0000200241f0016a10b2020b2003450d00200110b2020b200241a0046a24000bb30501027f230041106b22022400024002400240024002400240024002400240024002402000280200417f6a0e0a000102030405060708090a0b200241003a00082001200241086a41011064200220002802043602082001200241086a410410640c090b200241013a00082001200241086a4101106420002802042000410c6a280200200110a6010c080b200241023a00082001200241086a410110642002200041086a2903003703082001200241086a410810640c070b200241033a00082001200241086a4101106420002802042000410c6a280200200110a6010c060b200241043a00082001200241086a4101106420002802042000410c6a280200200110a6010c050b200241053a00082001200241086a41011064024020002802044101460d00200241003a00082001200241086a410110640c050b200241013a00082001200241086a410110642002200041086a2802003602082001200241086a4104106420022000410c6a2802003602082001200241086a410410640c040b200241063a00082001200241086a410110642000280204210320012000410c6a280200220010a5012000450d032003200041186c6a210003402003280200200341086a280200200110a6012003410c6a280200200341146a280200200110a601200341186a22032000470d000c040b0b200241073a00082001200241086a410110642000280204210320012000410c6a280200220010a5012000450d0220032000410c6c6a210003402003280200200341086a280200200110a6012003410c6a22032000470d000c030b0b200241083a00082001200241086a4101106420002802042000410c6a280200200110a6012002200041106a2802003602082001200241086a410410640c010b200241093a00082001200241086a4101106420002802042000410c6a280200200110a6010b200241106a24000bce0501027f0240024020002802004101460d000240024002400240024002400240200041086a280200417f6a0e09080008010208030405060b200041106a280200450d072000410c6a28020010300f0b200041106a280200450d062000410c6a28020010300f0b200041106a280200450d052000410c6a28020010300f0b0240200041146a2802002201450d002000410c6a2802002102200141186c210103400240200241046a280200450d00200228020010300b0240200241106a280200450d002002410c6a28020010300b200241186a2102200141686a22010d000b0b200041106a2802002202450d04200241186c450d04200028020c10300f0b0240200041146a2802002201450d002000410c6a28020021022001410c6c210103400240200241046a280200450d00200228020010300b2002410c6a2102200141746a22010d000b0b200041106a2802002202450d032002410c6c450d03200028020c10300c030b200041106a280200450d022000410c6a28020010300f0b200041106a280200450d012000410c6a28020010300f0b02400240024020002d0004417f6a0e0403000103020b02402000410c6a280200450d00200041086a28020010300b0240200041c4006a2802002201450d002000413c6a28020021022001410c6c210103400240200241046a280200450d00200228020010300b2002410c6a2102200141746a22010d000b0b0240200041c0006a2802002202450d002002410c6c450d00200028023c10300b0240200041d0006a2802002202450d0020024104742101200041c8006a28020041086a2102034002402002280200450d002002417c6a28020010300b200241106a2102200141706a22010d000b0b0240200041cc006a28020041ffffffff0071450d00200028024810300b200041d4006a10e3010f0b2000410c6a280200450d01200041086a28020010300f0b2000410c6a280200450d00200041086a28020010300f0b0b950201067f230041206b22022400024002402000280210220341046a280200220420002802042205200028020022066a22076b2001490d00200328020021040c010b0240200720016a22062007490d00200441017422052006200520064b1b22064108200641084b1b21060240024020040d00200241003602100c010b200241106a41086a410136020020022004360214200220032802003602100b200220064101200241106a1069200241086a2802002106024020022802004101460d00200320022802042204360200200341046a200636020020002802042105200028020021060c020b2006450d00102a000b102c000b2004200620016a22016a200420066a20051086051a20002001360200200241206a24000bc80101017f02400240024002402002450d0020014100480d01024002400240200328020022040d0020010d01410121020c020b0240200328020422030d0020010d01410121020c020b2001102f2202450d042002200420031085051a200410300c010b2001102f2202450d030b20002002360204410021020c030b2000200136020420004101360200200041086a41003602000f0b20004101360200200041086a41003602000f0b2000200136020441012101410121020b20002002360200200041086a20013602000bde07010e7f230041206b22022400200141186a2802002103200141146a2802002104200128021021052001280204210620012802002107200141086a2f010022084180fe037141087621092001410c6a2f0100220a210b024002400240024003400240024002400240024002400240024002402007417e6a0e020105000b0240200841ff01714102460d0020084101712101410021082001450d002009210c0c040b4102210820074101470d002006450d00200641ff014b0d012006417f6a210c41012107410021060c020b0240200b41ff01714102470d004102210b0c040b200b41017121014100210b2001450d03200a4180fe0371410876210c410221070c020b200641817e6a210641ff01210c410121070b410221080b200041086a2802002201200041046a280200470d03024020074103470d00200545210d2005210e0c020b024002402005450d000240024020074102470d004100210f200b41ff0171220e4102460d01200e410146210f0c010b0240200b41ff0171220f4102460d00200841ff0171410146200f4101466a210f0c010b4100210f200841ff0171220e4102460d00200e410146210f0b0240024020040d004100210e0c010b2003450d02200420036e20042003704100476a210e0b417f200f200e6a220e200e200f491b210f0c040b024020074102470d004100210f200b41ff0171220e4102460d04200e410146210f0c040b0240200b41ff0171220f4102460d00200841ff0171410146200f4101466a210f0c040b4100210f200841ff0171220e4102460d03200e410146210f0c030b4190e5c100411941ec92c200102d000b2005450d052004450d0502400240024020032004200420034b1b22010e020001020b4100410041cc93c2001033000b4101410141dc93c2001033000b200420016b2104200520016a210e20052d000041047420052d000172210c410321070240200041086a2802002201200041046a280200460d00200e21050c030b200e45210d410321070b4100210f0240200d0d002004450d002003450d06200420036e20042003704100476a210f0b200e21050b2001417f200f41016a220e200e200f491b6a220f2001490d052001410174220e200f200e200f4b1b220f4108200f41084b1b210f0240024020010d00200241003602100c010b2002410136021820022001360214200220002802003602100b2002200f4101200241106a10692002280208210f20022802004101460d0220002002280204360200200041046a200f3602000b200028020020016a200c3a0000200041086a200141016a3602000c000b0b200f450d02102a000b200241206a24000f0b4190e5c100411941ec92c200102d000b102c000bf70203057f017e067f230041106b220224000240024020014102490d000240024020002802102000280200220320002802042204200041146a2802002205200520044b1b10880522060d0020052004490d010c020b2006417f4a0d010b2000200041106a2205290200370200200041086a220629020021072006200541086a29020037020020022007370308200041106a2108024020014103490d00200041246a210520002001417f6a22064104746a21094102210a02400340024002402005417c6a220b280200200320042005280200220c200c20044b1b108805220d0d00200c2004490d010c040b200d417f4a0d020b2006450d042005416c6a220c41086a200541046a290200370200200c200b290200370200200541106a21052000200a4104746a2108200a41016a210a2006417f6a22064101470d000b200921080c010b2005416c6a21080b2008200436020420082003360200200820022903083702080b200241106a24000f0b20012001419cf8c0001033000b941d01127f230041a0056b220224000240024002402001410c6a2802002203450d00200141046a2104200141106a2105200128020422062003417f6a220741306c6a210820024190026a41046a2109200241086a41e4016a210a20024190026a41086a210b20024190026a411d6a210c034020082802002203280210210d2003280208210e4102210f0240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002402006200741306c6a22062802040e0412000102120b2003280214417e6a0e03020f03260b200628020821072003280214417d6a0e020304250b4103210f02400240024020032802140e051212010200120b2005200328021c20032802186b41017420032802206b41016a10b8010c110b2005200328021c20032802186b41017420032802206b10b8010c100b200510b8020c0f0b2003411c6a280200220f20032802182207490d04200f200d4b0d05200f20076b2110200e20076a211120032802202207410176210f024002402007410171450d002010200f4d0d0141012112200f41016a21072011200f6a2d0000410f7121130c0f0b4100211202402010200f490d0041002113200f21070c0f0b200f201041e097c200104a000b200f201041f097c2001033000b2003411c6a280200220f20032802182208490d05200f200d4b0d06200f20086b210f200e20086a2106200328022022084101762103024002402008410171450d00200f20034d0d0141012107200341016a2108200620036a2d0000410f71210d0c0c0b410021070240200f2003490d004100210d200321080c0c0b2003200f41e097c200104a000b2003200f41f097c2001033000b200341246a21030c010b200341306a21030b0240200741104f0d004104210f20032007410c6c6a22032802004102460d0b200510b8022005200710b6010240024020062d000c4101460d00200241c8046a41186a4200370300200241c8046a41106a4200370300200241c8046a41086a4200370300200242003703c8040c010b200241c8046a41186a200841256a290000370300200241c8046a41106a2008411d6a290000370300200241c8046a41086a200841156a2900003703002002200829000d3703c8040b20012802002106200341086a280200210f200341046a28020021080240024020032802004101470d00200f2008490d0741012103200f200d4d0d01200f200d41d49bc2001042000b200f2008490d0741002103200f200d4b0d080b200220033602a0042002200f20086b3602a8042002200e20086a3602a404200241f8046a200510b90220024190026a2006200241c8046a200241a0046a200241f8046a10ba02200228029002210f2002280294022110200241086a200b4185021085051a0c0b0b200741104188fbc0001033000b2007200f41c49cc2001048000b200f200d41c49cc2001042000b2008200f41c49cc2001048000b200f200d41c49cc2001042000b2008200f41d49bc2001048000b2008200f41e49bc2001048000b200f200d41e49bc2001042000b2002200d3a009102200220073a0090022002200f20086b360298022002200620086a36029402200520024190026a10b5010b2005410010b6014104210f0c010b200220133a009102200220123a0090022002201020076b360298022002201120076a36029402200520024190026a10b5010240024020062d000c4101460d00200241c8046a41186a4200370300200241c8046a41106a4200370300200241c8046a41086a4200370300200242003703c8040c010b200241c8046a41186a200841256a290000370300200241c8046a41106a2008411d6a290000370300200241c8046a41086a200841156a2900003703002002200829000d3703c8040b200128020021062003412c6a280200210f200328022821080240024020032802244101470d00200f2008490d0341012103200f200d4d0d01200f200d41d49bc2001042000b200f2008490d0341002103200f200d4b0d040b200220033602a0042002200f20086b3602a8042002200e20086a3602a404200241f8046a200510b90220024190026a2006200241c8046a200241a0046a200241f8046a10ba02200228029002210f2002280294022110200241086a200b4185021085051a0b0240024002400240200f417e6a2203410320034103491b0e0401020003010b200128020c2203450d06200341306c20012802046a41506a220341086a2106200341046a21072003280200210d4103210802400240024002400240024020032802040e03000102180b200d280214417e6a0e03020202170b41024103200d280214417d6a4102491b21084100210f0c160b20032802082103200d280214417d6a0e020102150b410121080c140b2003410f4f0d130c120b2003410f490d110c120b200128020c2203450d062001280204220a2003417f6a220d41306c6a220341086a2106200341046a2107200328020021094103210802400240024002400240024020032802040e03000102150b2009280214417e6a0e03020202140b410241032009280214417d6a4102491b21084100210f0c130b2003280208210e2009280214417d6a0e020102120b410121080c110b200e410f4f0d100c0f0b200e410f490d0e0c0f0b200128020c2203450d0620012003417f6a220336020c2001280204200341306c6a22032802044104460d06200328020022032003280200417f6a220f3602000240200f0d0002402003410c6a280200450d00200328020810300b200341046a220f200f280200417f6a220f360200200f0d00200310300b0240200128020c2203450d00200341306c20012802046a41506a220341086a2106200341046a21072003280200210d4103210802400240024002400240024020032802040e03000102130b200d280214417e6a0e03020202120b41024103200d280214417d6a4102491b21084100210f0c110b20032802082103200d280214417d6a0e020102100b410121080c0f0b2003410f4f0d0e0c0d0b2003410f490d0c0c0d0b200041023602000c140b200f450d09200128020c2203450d06200341306c20012802046a41506a220141086a2108200141046a2106200128020021074103210f02400240024002400240024020012802040e030001020e0b2007280214417e6a0e030202020d0b410241032007280214417d6a4102491b210f410021030c0c0b200128020821012007280214417d6a0e0201020b0b4101210f0c0a0b2001410f4f0d090c080b2001410f490d070c080b2008200f41d49bc2001048000b2008200f41e49bc2001048000b200f200d41e49bc2001042000b41a8f9c000419d0141c8fac0001050000b41a8f9c000419d0141d8fac0001050000b41a8f9c000419d0141e8fac0001050000b41a8f9c000419d0141f8fac0001050000b200141016a21034102210f0b200820033602002006200f36020020002010360204200041013602000c0a0b200941206a200a41206a2d00003a0000200941186a200a41186a290200370200200941106a200a41106a290200370200200941086a200a41086a2902003702002009200a290200370200024041f001102f220f450d00200f2010360208200f410c6a200241086a41e4011085051a200f4281808080103702000240200128020c2203200141086a280200470d00200410bb02200128020c21030b2001280204200341306c6a220341003602042003200f360200200320022f00c8043b002d200341086a200229029002370200200341106a200b290200370200200341186a20024190026a41106a290200370200200341206a20024190026a41186a290200370200200341256a200c2900003700002003412f6a200241c8046a41026a2d00003a00002001200128020c41016a220336020c0c070b102a000b200341016a210f410221080b2006200f36020020072008360200200128020c21030c040b200e41016a210f410221080b2006200f3602002007200836020002400240200128021022084125490d002001411c6a2802002108200141186a280200210f0c010b200141156a210f0b200241003a009402200241003602900220024190026a200f200f20086a10bc02200241c8046a41086a220e20024190026a41086a220f290300370300200241c8046a41106a220420024190026a41106a2208290300370300200241c8046a41186a220520024190026a41186a2206290300370300200241c8046a41206a221020024190026a41206a2207290300370300200241c8046a41286a220b20024190026a41286a220928020036020020022002290390023703c8042001413c6a280200210c200241f8046a41206a2211200a200d41306c6a2201412c6a2d00003a0000200241f8046a41186a220a200141246a290000370300200241f8046a41106a220d2001411c6a290000370300200241f8046a41086a2212200141146a2900003703002002200129000c3703f80402402003280200220128020041016a220341014d0d0020012003360200200f200e2903003703002008200429030037030020062005290300370300200720102903003703002009200b280200360200200241a0046a41086a22032012290300370300200241a0046a41106a220e200d290300370300200241a0046a41186a220d200a290300370300200241a0046a41206a220a20112d00003a0000200220022903c80437039002200220022903f8043703a0042000410036020020002002290390023702042000410c6a200f290300370200200041146a20082903003702002000411c6a2006290300370200200041246a20072903003702002000412c6a2009280200360200200041306a200c360200200041346a20022903a0043702002000413c6a2003290300370200200041c4006a200e290300370200200041cc006a200d290300370200200041d4006a200a2d00003a0000200041d8006a20013602000c060b00000b200341016a210f410221080b2006200f36020020072008360200200128020c21030b200428020022062003417f6a220741306c6a210820030d000b0b200041023602000b200241a0056a24000f0b41acf8c00041eb004198f9c000102d000bc50201067f230041106b22012400024002400240200028022c2202450d0002400240200028020022034125490d002000410c6a22042802002103200041086a28020021050c010b200041056a2105200021040b2003450d0120042003417f6a2203360200200520036a2d0000210520002002417f6a220336022c2003410171450d0002400240200028020022044125490d002000410c6a22022802002103200041086a28020021060c010b200041056a21062004210320002102412421040b024020032004470d0020012000410110bd02024020012802004101470d00200141086a2802000d0441d099c200411141e499c200102d000b2000410c6a22022802002103200041086a28020021060b200620036a200541f001713a00002002200228020041016a3602000b200141106a24000f0b418b96c200412241b096c2001050000b102a000ba60201047f200128022c220241017621030240024002400240024020024101710d0002400240200128020022024125490d002001410c6a2802002102200141086a28020021010c010b200141056a21010b20022003490d0220002001360200410021010c010b02400240200128020022024125490d002001410c6a2802002104200141086a28020021050c010b200141056a2105200221040b20042003490d020240024020024125490d002001410c6a2802002102200141086a28020021010c010b200141056a21010b200220034d0d0320002005360200200041096a200120036a2d000041f001713a0000410121010b200020013a0008200020033602040f0b2003200241e096c2001042000b2003200441f096c2001042000b20032002418097c2001033000b810d03047f017e047f230041b0076b22052400200341086a2802002106200328020421070240024002400240024002400240200328020022084101470d002006417f4c0d030240024020060d00410121030c010b2006102f2203450d050b2003200720061085051a2006ad220942208620098421094100210a0c010b0240024020064120460d002006417f4c0d040240024020060d00410121030c010b2006102f2203450d060b20032007200610850521074130102f2203450d05200341043a00002003200636002c200320063600282003200736002420032002290000370001200341096a200241086a290000370000200341116a200241106a290000370000200341196a200241186a2900003700000c010b200541086a41026a200741026a2d00003a0000200541f8036a2007410f6a29000037030020054180046a200741176a29000037030020054188046a2007411f6a2d00003a0000200520072f00003b0108200520072900073703f003200728000321030b2005412c6a41026a2207200541086a41026a2d00003a0000200541306a41086a220a200541f0036a41086a220b290300370300200541306a41106a220c200541f0036a41106a290300370300200541306a41186a220d200541f0036a41186a280200360200200520052f01083b012c200520052903f00337033020064120470d01200541df056a200a290300370000200541e7056a200c290300370000200541ef056a200d2d00003a0000200520052f012c3b01d005200520052903303700d705200520033600d305200520072d00003a00d2052001280200210620012802042103200b200441086a280200360200200520042902003703f003200541306a2006200541d0056a200541f0036a200328020c1103000240200528023022030d0002400240200441046a2802000d0020042d00080d004130102f2206450d06200641003a0000200620052903d005370001200641096a200541d8056a290300370000200641116a200541e0056a290300370000200641196a200541e8056a2903003700000c010b4130102f2206450d05200641013a0000200620052903d005370001200641096a200541d8056a290300370000200641116a200541e0056a290300370000200641196a200541e8056a2903003700000b20004101360200200020063602040c060b20054190026a41086a200541d0056a41086a29030037030020054190026a41106a200541d0056a41106a29030037030020054190026a41186a200541d0056a41186a290300370300200520052903d00537039002200529023421094101210a0b200541086a41186a220720054190026a41186a290300370300200541086a41106a220420054190026a41106a290300370300200541086a41086a220120054190026a41086a2903003703002005200529039002370308200541d0056a20032009422088a710ce0320052d00d105210b20052d00d0052106200541f0036a200541d0056a41027241de011085051a20064101470d0302402009a7450d00200310300b024002402008450d00200541f0036a41186a200241186a290000370300200541f0036a41106a200241106a290000370300200541f0036a41086a200241086a290000370300200520022900003703f0030c010b200541f0036a41186a200541086a41186a290300370300200541f0036a41106a200541086a41106a290300370300200541f0036a41086a200541086a41086a290300370300200520052903083703f0030b200541d0056a41186a2203200541f0036a41186a290300370300200541d0056a41106a2207200541f0036a41106a290300370300200541d0056a41086a2202200541f0036a41086a290300370300200520052903f0033703d0054130102f2206450d02200641033a0000200620052903d0053700012006200b41ff01714100473a0021200641096a2002290300370000200641116a2007290300370000200641196a2003290300370000200541306a20054190026a41dc011085051a20004101360200200020063602040c040b20004101360200200020033602040c030b102c000b102a000b20054190026a200541f0036a41026a41dc011085051a200541306a20054190026a41dc011085051a200041086a2009370200200041106a200541306a41dc011085051a200041ec016a200a3a000020002003360204200020052903083700ed01200041f5016a2001290300370000200041fd016a200429030037000020004185026a2007290300370000200041003602000b200541b0076a24000be00102047f017e230041206b22012400024002400240200041046a28020020002802082202470d00200241016a22032002490d02200241017422042003200420034b1b22034104200341044b1bad42307e2205422088a74541027421032005a721040240024020020d00200141003602100c010b200141186a41043602002001200241306c360214200120002802003602100b200120042003200141106a1069200141086a280200210220012802004101460d0120002001280204360200200041046a200241306e3602000b200141206a24000f0b2002450d00102a000b102c000b9b0301087f230041106b2203240020032000200220016b10bd020240024020032802004101470d00200341086a2802000d0141d099c200411141e499c200102d000b02400240200028020022044125490d002000410c6a22052802002106200041086a28020021070c010b200041056a21072004210620002105412421040b024002400240200620044f0d00034020022001460d02200720066a20012d00003a0000200141016a21012004200641016a2206470d000b200421060b2005200636020020012002460d012000410c6a2108200041056a2109034002400240200028020022074125490d00200028020c210620002802082105200821040c010b200721062000210420092105412421070b20012d0000210a024020062007470d0020032000410110bd02024020032802004101470d00200341086a2802000d0541d099c200411141e499c200102d000b200028020c210620002802082105200821040b200520066a200a3a00002004200428020041016a3602002002200141016a2201470d000c020b0b200520063602000b200341106a24000f0b102a000bbe0301057f02400240200128020022034125490d002001410c6a2802002104200321050c010b41242105200321040b0240200520046b2002490d00200041003602000f0b024002400240200420026a22022004490d004100417f2002417f6a677620024102491b220441016a22052004490d000240024020034125490d002001410c6a2802002104200141086a2802002102200321060c010b200141056a210241242106200321040b200420054b0d0102400240200541244b0d000240200341244b0d00200041003602000f0b200141003a0004200141056a200220041085051a20012004360200200210300c010b20062005460d002005102f210702400240200341244b0d0002402007450d002007200220041085051a0c020b2000200536020420004101360200200041086a41013602000f0b2007450d042007200220052006200620054b1b1085051a200210300b200141013a0004200120053602002001410c6a2004360200200141086a20073602000b200041003602000f0b2000200536020420004101360200200041086a41003602000f0b41c29ac200412041e49ac200102d000b2000200536020420004101360200200041086a41013602000b0900200041003602000b0900200041013602000b2200200041013602002003200428020011020002402004280204450d00200310300b0b5701017f230041206b22032400200341086a200141086a28020036020020032001290200370300200341106a41086a200241086a2802003602002003200229020037031020002003200341106a10c202200341206a24000bb80501047f23004190016b2203240002400240024002402001280208410f490d0041fc8fc20020012802002204410f1088050d00024020022802002200450d00200241046a280200450d00200010300b200141046a280200450d01200410300c010b0240200041086a2802002204280224450d002004106c0b200420032903683703002004410036022420042003290330370328200441206a200341e8006a41206a280200360200200441186a200341e8006a41186a290300370300200441106a200341e8006a41106a290300370300200441086a200341e8006a41086a290300370300200441306a200341306a41086a290300370300200441386a200341306a41106a290300370300200441c0006a200341306a41186a290300370300200441c8006a200341306a41206a290300370300200441d0006a200341306a41286a290300370300200441d8006a200341306a41306a290300370300200441003a0060200441e1006a2003290008370000200441e9006a200341086a41086a290000370000200441f1006a200341086a41106a290000370000200441f9006a200341086a41186a29000037000020044180016a200341276a290000370000200028020022042802200d01200241086a2802002100200228020021052002280204210620044100360220200441286a2202200229030042017c37030020042802300d0220044100360230200441386a220220022903002000ad420020051b7c370300200341086a41086a200141086a28020036020020032001290200370308200341306a41086a200036020020032006360234200320053602302003200410c302200441c0006a200341086a200341306a2003280200200328020410c4020b20034190016a24000f0b41b082c2004110200341306a41c082c20041d483c2001034000b41b082c2004110200341306a41c082c20041e483c2001034000bb30302047f017e230041106b22022400024002400240024002400240024020012d0088020d00410021030c010b410121030240200141c0006a41fc8ac200411010e60222040d00417f21010c010b02400240200428020022054106490d00200428020c2105200428020821040c010b200441086a21040b2004450d012005450d01024020042005417f6a41186c6a22042802000d0020012802000d03200141003602002001200129030842017c37030820012802100d0420014100360210417f21010c010b20012802000d04200441086a22053502002106200141003602002001200129030842017c37030820012802100d0520014100360210200141186a2201200129030020067c370300417f210120052802004104490d00200428020028000021010b2000200136020420002003360200200241106a24000f0b418486c20041fc00418087c2001050000b41b082c2004110200241086a41c082c20041b483c2001034000b41b082c2004110200241086a41c082c20041c483c2001034000b41b082c2004110200241086a41c082c20041b483c2001034000b41b082c2004110200241086a41c082c20041c483c2001034000b8c16050e7f017e017f017e037f23004180056b22052400024002400240024020012802082206417f4c0d002001280200210702400240024002400240024002400240024002400240024020060d00410121080c010b2006102f2208450d010b2008200720061085052109024002402000280204220a450d002000280200210b0c010b418c0c102f220a450d014100210b200a41003b018a0c200a41003602002000200a360204200041003602000b0340200a2f018a0c220c410c6c210d4178210e200a41046a220f210841002110024003400240200d0d00200c21100c020b0240024020092008280200200828020822112006200620114b1b10880522120d0020062011490d03200620114721110c010b4101211120124100480d020b2008410c6a2108201041016a2110200e41807f6a210e200d41746a210d20110d000b02402006450d00200910300b200a200e6b210b0c0f0b0240200b450d00200b417f6a210b200a20104102746a418c0c6a280200210a0c010b0b0240200c410a4b0d00201041016a211102402010200c4f220d0d00200f2011410c6c6a200f2010410c6c6a200c20106b410c6c1086051a0b200f2010410c6c6a22082006360208200820063602042008200936020020054180046a20054180036a41f8001085051a200a4188016a21080240200d0d00200820114107746a200820104107746a200c20106b4107741086051a0b200820104107746a220b4200370200200b41086a20054180046a41f8001085051a200a200c41016a3b018a0c0c0c0b410521084100211202400240201041054f0d00410421082010210d0c010b4105210d024002402010417b6a0e020201000b201041796a210d41012112410621080c010b4100210d410121120b418c0c102f2211450d00201141003b018a0c201141003602002011200a2f018a0c220b2008417f736a22103b018a0c200f2008410c6c6a220e2902042113200e280200210c20054180046a200a4188016a220720084107746a4180011085051a2010410c4f0d01200b200841016a220e6b2010470d02201141046a200f200e410c6c6a2010410c6c1085051a20114188016a2007200e4107746a20104107741085051a200a20083b018a0c20054180036a20054180046a4180011085051a2011200a20121b220841046a21100240200d41016a221220082f018a0c220e4b220b0d0020102012410c6c6a2010200d410c6c6a200e200d6b410c6c1086051a0b2010200d410c6c6a22102006360208201020063602042010200936020020054180046a20054180016a41f8001085051a20084188016a21060240200b0d00200620124107746a2006200d4107746a200e200d6b4107741086051a0b2006200d4107746a220b4200370200200b41086a20054180046a41f8001085051a2008200e41016a3b018a0c20054180026a20054180036a4180011085051a200520054180026a4180011085052112024002400240200a28020022080d00410021070c010b410021072011211420132115200c21160340200a2f01880c211020124180016a20124180011085051a200822092f018a0c220f410b490d024100210a41042108024020104105490d0020102108024002402010417b6a0e020201000b201041796a21104101210a410621080c010b410021104101210a410521080b41bc0c102f2211450d03201141003b018a0c20114100360200201120092f018a0c22172008417f736a220d3b018a0c20092008410c6c6a220641086a2902002113200641046a280200210c20124180046a20094188016a221820084107746a4180011085051a200d410c4f0d062017200841016a220e6b200d470d07201141046a200641106a200d410c6c1085051a20114188016a2018200e4107746a200d4107741085051a200920083b018a0c20124180036a20124180046a4180011085051a20112f018a0c220d41016a2106200d410c4f0d08200f20086b22082006470d09200741016a21072011418c0c6a2009200e4102746a418c0c6a20084102741085051a4100210802400340201120084102746a418c0c6a280200220620083b01880c200620113602002008200d4f0d0120082008200d496a2208200d4d0d000b0b20124180026a20124180036a4180011085051a20112009200a1b220641046a210e0240201041016a220820062f018a0c220d4b220f0d00200e2008410c6c6a200e2010410c6c6a200d20106b410c6c1086051a0b200e2010410c6c6a220e2015370204200e201636020020124180046a20124180016a4180011085051a20064188016a210a0240200f0d00200a20084107746a200a20104107746a200d20106b4107741086051a0b200d41016a210e200a20104107746a20124180046a4180011085051a2006418c0c6a210a0240201041026a2216200d41026a220f4f0d00200a20164102746a200a20084102746a200d20106b4102741086051a0b200a20084102746a20143602002006200e3b018a0c02402008200f4f0d00200620104102746a41900c6a210803402008280200220d201041016a22103b01880c200d2006360200200841046a2108200e2010470d000b0b201220124180026a4180011085051a2009210a2011211420132115200c2116200928020022080d000b0b20124180046a20124180011085051a2000280204220d450d082000280200210641bc0c102f2208450d012008200d36028c0c200841003b018a0c20084100360200200d41003b01880c200d2008360200200020083602042000200641016a36020020062007470d0920082f018a0c220d410b4f0d0a2008200d41016a22063b018a0c2008200d410c6c6a221041086a2013370200201041046a200c3602002008200d4107746a4188016a20124180046a4180011085051a2008418c0c6a20064102746a2011360200201120063b01880c201120083602002000200028020841016a3602080c0d0b200941046a21080240200f20104d220d0d0020082010410c6c6a2206410c6a2006200f20106b410c6c1086051a0b20082010410c6c6a220820153702042008201636020020124180046a20124180011085051a201041016a210820094188016a21060240200d0d00200620084107746a200620104107746a200f20106b4107741086051a0b200f41016a2111200620104107746a20124180046a4180011085051a2009418c0c6a2106200f41026a210e0240200d0d00201041027420066a41086a200620084102746a200f20106b4102741086051a0b200920113b018a0c200620084102746a20143602002008200e4f0d0b200f41016a211120092008417f6a22084102746a41900c6a210d0340200d2802002206200841016a22083b01880c20062009360200200d41046a210d20112008470d000c0c0b0b102a000b2010410b41e8a2c2001042000b41f8a2c200412841a0a3c200102d000b200d410b41e8a2c2001042000b41f8a2c200412841a0a3c200102d000b2006410c41f8a3c2001042000b41f8a2c200412841a0a3c200102d000b41b2abc200412b41e0abc200102d000b41eaa0c2004130419ca1c200102d000b41aca1c200412041cca1c200102d000b102c000b2000200028020841016a3602080b20012802082106200128020021070b20054180036a41086a200241086a280200360200200520022902003703800302400240200028020c22084106490d00200041186a2802002108200041146a280200210d0c010b200041146a210d0b20012802042111024002400240200d450d0020080d010b410221082011450d01200710300c010b2005200636028804200520113602840420052007360280042008410c6c200d6a41746a20054180046a10e10221080b200b20054180036a20082008410247712003200410e20220054180056a24000b7301027f230041206b22032400024002402002417f4c0d000240024020020d00410121040c010b2002102f2204450d020b20032002360204200320043602002004200120021085051a200320023602082003410036021020002003200341106a10c202200341206a24000f0b102c000b102a000bb80301047f23004190016b220424000240200041086a2802002205280224450d002005106c0b200520042903683703002005410036022420052004290330370328200541206a200441e8006a41206a280200360200200541186a200441e8006a41186a290300370300200541106a200441e8006a41106a290300370300200541086a200441e8006a41086a290300370300200541306a200441306a41086a2206290300370300200541386a200441306a41106a290300370300200541c0006a200441306a41186a290300370300200541c8006a200441306a41206a290300370300200541d0006a200441d8006a290300370300200541d8006a200441306a41306a290300370300200541003a0060200541e1006a2004290008370000200541e9006a200441086a41086a2207290000370000200541f1006a200441086a41106a290000370000200541f9006a200441086a41186a29000037000020054180016a200441276a290000370000200028020021052007200241086a280200360200200420022902003703082006200341086a2802003602002004200329020037033020052001200441086a200441306a10c70220044190016a24000bc60403017f017e047f230041b0016b220424002004200010c3020240024020032802000d00420021050c010b200341086a35020021050b024002400240024020002802200d00200428020421062004280200210720004100360220200041286a2208200829030042017c37030020002802300d0120004100360230200041386a2208200829030020057c37030020012802082208417f4c0d02200128020021094101210102402008450d002008102f2201450d040b2001200920081085052101200420083602502004200836024c20042001360248200441086a20004198016a200441c8006a1082030240024020042802084101460d00200441c0006a200441246a280200360200200441386a2004411c6a290200370300200441306a200441146a2902003703002004200429020c370328200441c8006a200041c0006a1083030240024020080d00410121000c010b2008102f2200450d060b200441a4016a2008360200200420003602a0012000200920081085051a200441a8016a2008360200200441286a200441c8006a10840321000c010b200441106a280200200441146a28020041e4006c6a4188016a21000b200441086a41086a200241086a28020036020020042002290200370308200441c8006a41086a200341086a280200360200200420032902003703482000200441086a200441c8006a2007200610c402200441b0016a24000f0b41b082c2004110200441c8006a41c082c20041d483c2001034000b41b082c2004110200441c8006a41c082c20041e483c2001034000b102c000b102a000bda0301027f23004190016b22042400024002402003417f4c0d000240024020030d00410121050c010b2003102f2205450d020b20052002200310850521050240200041086a2802002202280224450d002002106c0b200220042903683703002002410036022420022004290330370328200241206a200441e8006a41206a280200360200200241186a200441e8006a41186a290300370300200241106a200441e8006a41106a290300370300200241086a200441e8006a41086a290300370300200241306a200441306a41086a290300370300200241386a200441306a41106a290300370300200241c0006a200441306a41186a290300370300200241c8006a200441306a41206a290300370300200241d0006a200441d8006a290300370300200241d8006a200441306a41306a290300370300200241003a0060200241e1006a2004290008370000200241e9006a200441086a41086a290000370000200241f1006a200441086a41106a290000370000200241f9006a200441086a41186a29000037000020024180016a200441276a29000037000020002802002102200420033602102004200336020c200420053602082004410036023020022001200441086a200441306a10c70220044190016a24000f0b102c000b102a000bd90504067f017e027f027e230041206b220224000240024020012802042203450d00200128020022042d0000210520012003417f6a22063602042001200441016a360200024002400240200541037122074103460d0002400240024020070e03000102000b2005410276ad21080c040b410121072006450d0220042d0001210620012003417e6a3602042001200441026a3602002006410874200572220141ffff0371418002490d02200141fcff0371410276ad21080c030b4101210720064103490d01200441036a2d0000210620042f0001210920012003417c6a3602042001200441046a3602002009200641107472410874200572220141808004490d012001410276ad21080c020b02400240024002402005410276220a0e0d00030303010303030303030302030b20064104490d052004350001210820012003417b6a3602042001200441056a36020020084280808080045421074200210b0c060b20064108490d04200429000121082001200341776a3602042001200441096a3602002008428080808080808080015421074200210b0c050b20064110490d03200441096a290000210b2004290001210820012003416f6a3602042001200441116a360200200b428080808080808080015421070c040b200541334b0d02200a41046a21062003417e6a2103200441026a21044100210541012107200241186a2109420021084200210b03402003417f460d012004417f6a310000210c2001200336020420012004360200200241106a200c4200200541037441f800711089052003417f6a2103200441016a21042009290300200b84210b20022903102008842108200541016a220541ff01712006490d000b2002427f427f41e800200a4103746b41f800711083052008200229030058200b200241086a290300220c58200b200c511b21070c030b0c020b4200210b410021070c010b410121070b20002008370308200041106a200b37030020002007ad370300200241206a24000bf10f03057f027e037f230041d0006b2202240002400240200128020422030d00200041073a00000c010b200128020022042d0000210520012003417f6a22063602042001200441016a36020002400240024002400240024002400240024002400240024002400240024002400240024020050e0700010203040506070b200041003a00000c110b2002200110c90202402002290300a70d00200241106a290300210720022903082108200041013a0000200041086a2008370300200041106a20073703000c110b200041073a00000c100b0240200110a8012207a74101710d00200041023a0000200020074208883e00010c100b200041073a00000c0f0b2006450d0d20042d0001210520012003417e6a22093602042001200441026a360200200220053a002c20090d060c0d0b2006450d0b20042d0001210520012003417e6a22093602042001200441026a360200200220053a002c20090d060c0b0b2003417e6a2105200241286a410472210a41002103034020062003460d07200420036a220941016a2d0000210b200120053602042001200941026a360200200a20036a200b3a00002002200341016a22093602282005417f6a21052009210320094120470d000b200041086a200241286a410b6a2f00003b00002000410a6a200241356a2d00003a00002000410f6a200241286a41126a2f01003b0000200041116a2002413c6a2d00003a0000200041186a200241c3006a2d00003a0000200041166a200241286a41196a2f00003b0000200220022f012c3b0124200220022d002e3a0026200241366a28010021012002413d6a2800002103200241c4006a2902002107200228002f2105200041036a20022d00263a0000200020022f01243b0001200041196a2007370000200041126a20033600002000410b6a2001360000200041046a2005360000200041053a00000c0c0b200241186a2001109b0120022802180d0220012802042205200228021c2203490d022003417f4c0d060240024020030d00410121090c010b2003102f2209450d082009410020031087051a200128020421050b20052003490d012009200128020020031085052109200128020422052003490d08200041063a00002001200520036b360204200041086a2003ad2207422086200784370000200041046a20093600002001200128020020036a3602000c0b0b200041073a00000c0a0b200910300b200041073a00000c080b20042d0002210520012003417d6a22093602042001200441036a360200200220053a002d2009450d0620042d0003210520012003417c6a22093602042001200441046a360200200220053a002e2009450d0620042d0004210520012003417b6a22093602042001200441056a360200200220053a002f2009450d0620042d0005210520012003417a6a22093602042001200441066a360200200241306a20053a00002009450d0620042d000621052001200341796a22093602042001200441076a360200200241316a20053a00002009450d0620042d000721052001200341786a22093602042001200441086a360200200241326a20053a00002009450d06200241336a20042d00083a00002001200341776a3602042001200441096a3602002000200229022c370001200041033a00000c070b20042d0002210520012003417d6a22093602042001200441036a360200200220053a002d2009450d0420042d0003210520012003417c6a22093602042001200441046a360200200220053a002e2009450d0420042d0004210520012003417b6a22093602042001200441056a360200200220053a002f2009450d0420042d0005210520012003417a6a22093602042001200441066a360200200241306a20053a00002009450d0420042d000621052001200341796a22093602042001200441076a360200200241316a20053a00002009450d0420042d000721052001200341786a22093602042001200441086a360200200241326a20053a00002009450d0420042d000821052001200341776a22093602042001200441096a360200200241336a20053a00002009450d0420042d000921052001200341766a220936020420012004410a6a360200200241346a20053a00002009450d0420042d000a21052001200341756a220936020420012004410b6a360200200241356a20053a00002009450d0420042d000b21052001200341746a220936020420012004410c6a360200200241366a20053a00002009450d0420042d000c21052001200341736a220936020420012004410d6a360200200241376a20053a00002009450d0420042d000d21052001200341726a220936020420012004410e6a360200200241386a20053a00002009450d0420042d000e21052001200341716a220936020420012004410f6a360200200241396a20053a00002009450d0420042d000f21052001200341706a22093602042001200441106a3602002002413a6a220b20053a00002009450d042002413b6a20042d00103a000020012003416f6a3602042001200441116a360200200241286a410b6a2f00002101200241356a2d00002103200241366a280100210520022f012c210920022d002e2104200228002f21062000410f6a200b2f01003b00002000410b6a20053600002000410a6a20033a0000200041086a20013b0000200041046a2006360000200041036a20043a0000200020093b0001200041043a00000c060b200041073a00000c050b102c000b102a000b2003200541f0f5c100104a000b200041073a00000c010b200041073a00000b200241d0006a24000beb0301017f230041106b22022400024002400240024002400240024002400240024002400240024020002802000e0c000102030405060708090a0b0c0b200241003a000f20012002410f6a410110640c0b0b200241013a000f20012002410f6a410110640c0a0b200241023a000f20012002410f6a410110640c090b200241033a000f20012002410f6a410110640c080b200241043a000f20012002410f6a4101106420002802042000410c6a280200200110a6010c070b200241053a000f20012002410f6a4101106420002802042000410c6a280200200110a6010c060b200241063a000f20012002410f6a41011064200041086a2001109d020c050b200241073a000f20012002410f6a41011064200041086a2001109d020c040b200241083a000f20012002410f6a4101106420002802042000410c6a280200200110a6012002200041106a360204200241046a200110cc020c030b200241093a000f20012002410f6a4101106420002802042000410c6a280200200110a601200041106a200110cd020c020b2002410a3a000f20012002410f6a41011064200041086a2001109d022002200041d0036a360208200241086a200110cc020c010b2002410b3a000f20012002410f6a41011064200041086a2001109d02200041d0036a200110cd020b200241106a24000bb80303017f027e027f230041306b2202240002400240024002400240024020002802002200290300220342c000544100200041086a29030022045022051b0d0020034280800154410020051b0d01200342808080800454410020051b0d0220047920037942c0007c20044200521ba7220541e7004d0d0341fe85c100413641a887c100102d000b20022003a74102743a00182001200241186a410110640c030b20022003a74102744101723b01182001200241186a410210640c020b20022003a74102744102723602182001200241186a410410640c010b20024133200541037622054102746b3a00182001200241186a41011064200029030021032002200041086a2903002204370310200220033703080240411020056b450d00200541706a21000340200220033c00182001200241186a410110642003420888200442388684210320044208882104200041016a22052000492106200521002006450d000b20022003370308200220043703100b200320048450450d010b200241306a24000f0b2002412c6a4100360200200241286a41bc8ec2003602002002420137021c200241c486c100360218200241086a200241186a10c003000b9a0201017f230041106b220224000240024002400240024002400240024020002d00000e0700010203040506070b200241003a000f20012002410f6a410110640c060b200241013a000f20012002410f6a410110642002200041086a360208200241086a200110cc020c050b200241023a000f20012002410f6a410110642001200041016a410410640c040b200241033a000f20012002410f6a410110642001200041016a410810640c030b200241043a000f20012002410f6a410110642001200041016a411010640c020b200241053a000f20012002410f6a410110642001200041016a412010640c010b200241063a000f20012002410f6a41011064200041046a2802002000410c6a280200200110a6010b200241106a24000ba70a02057f017e230041a00b6b22022400024002400240024002400240024002400240024002400240024020012d00000e0b0102030405060a07080900010b200141046a2802002103200241086a200141086a41c8031085051a200241b8076a200341e8031085051a200241d0036a200241b8076a10ce0241e803102f2201450d0b2001200241d0036a41e8031085052101200041086a200241086a41c8031085051a2000410a3a0000200041046a2001360200200310300c0a0b200241d8036a22042001410c6a2802003602002002200141046a2902003703d003200141146a28020021052002200141106a2802002203200141186a2802004198046c6a3602c407200220033602c007200220053602bc07200220033602b807200241b8076a200310cf02210120022802c007220620022802c40720066b4198046d10a40141002802fce441410010a4012000410c6a2004280200360200200041046a20022903d003370200200041186a200120036b4198046d360200200041146a2005360200200041106a2003360200200041003a00000c090b200241d8036a22042001410c6a2802003602002002200141046a2902003703d003200141146a28020021052002200141106a2802002203200141186a2802004198046c6a3602c407200220033602c007200220053602bc07200220033602b807200241b8076a200310cf02210120022802c007220620022802c40720066b4198046d10a40141002802fce441410010a4012000410c6a2004280200360200200041046a20022903d003370200200041186a200120036b4198046d360200200041146a2005360200200041106a2003360200200041013a00000c080b200241d8036a22042001410c6a2802003602002002200141046a2902003703d003200141146a28020021052002200141106a2802002203200141186a2802004198046c6a3602c407200220033602c007200220053602bc07200220033602b807200241b8076a200310cf02210120022802c007220620022802c40720066b4198046d10a40141002802fce441410010a4012000410c6a2004280200360200200041046a20022903d003370200200041186a200120036b4198046d360200200041146a2005360200200041106a2003360200200041023a00000c070b200041033a0000200041106a200141106a290300370300200041046a200141046a2902003702002000410c6a2001410c6a2802003602000c060b2000410c6a2001410c6a280200360200200041046a200141046a290200370200200041106a200141106a41c8031085051a200041043a00000c050b2000410c6a2001410c6a280200360200200041046a200141046a290200370200200041206a200141206a41c8031085051a200041053a0000200041186a200141186a280200360200200041106a200141106a2902003702000c040b200041073a00002000410c6a2001410c6a280200360200200041046a200141046a2902003702000c030b200041083a0000200041046a200141046a2802003602000c020b200041093a00002000410c6a2001410c6a280200360200200041046a200141046a2902003702000c010b200141086a290300210720012d00012103200241b8076a200141106a41f0001085051a200241b4046a200241b8076a41e8006a28020036020020022002290398083702ac04024020022802b8074102460d00200241b8076a10b2020b200020033a0001200041106a4102360200200041086a2007370300200041146a200241d0036a41e8001085051a200041063a00000b200241a00b6a24000f0b102a000bf40609067f017e097f027e037f027e017f017e017f230041d00f6b220224000240024020002802082203200028020c460d00200241bc046a41046a2104200241f40b6a41046a21050340200020034198046a3602082002200341980410850522062d00004108460d02200341186a2802002107200341106a29030021082003410c6a2801002109200341086a280100210a200341046a280100210b20032d0001210c20032d0000210d200641a8086a2003411c6a220e41cc031085051a20064188086a41186a220f20034180046a29030037030020064188086a41106a2210200341f8036a29030037030020064188086a41086a2211200341f0036a2903003703002006200341e8036a2903003703880820034188046a290300211220034190046a2903002113200641f40b6a200e41cc031085051a41002103024002400240024002400240024002400240200d0e080801020304050600080b2006200b3602a0042006200a36029c042006200b360298042006200b200941e8036c6a3602a404200641c00f6a20064198046a10be03200641bc046a200641a8086a41cc031085051a20064198046a41186a200f29030037030020064198046a41106a201029030037030020064198046a41086a201129030037030020062006290388083703980420062802c00f211420062802c40f211520062802c80f2116410721032013211720122118200721192008211a200c211b0c070b200641bc046a200e41bc031085051a410121030c050b2004200541c8031085051a410221030c040b410321030c030b2004200541c8031085051a410421030c020b2004200541c8031085051a410521030c010b200641bc046a200e41c4031085051a410621030b200b2114200a211520092116200721192008211a0b200141186a2019360200200141106a201a3703002001410c6a2016360100200141086a2015360100200141046a2014360100200141016a201b3a0000200120033a00002001411c6a200641bc046a41cc031085051a20014190046a201737030020014188046a201837030020014180046a20064198046a41186a290300370300200141f8036a20064198046a41106a290300370300200141f0036a20064198046a41086a290300370300200141e8036a20062903980437030020014198046a210120002802082203200028020c470d000b0b200241083a00000b200241d00f6a240020010bcd0901047f230041106b2202240002400240024002400240024002400240024002400240024020002d00000e0b000102030405060708090a0b0b200241003a00072001200241076a41011064200041046a280200210320012000410c6a280200220410a5010240200441f8036c2204450d0003402003200110cb02200341f8036a2103200441887c6a22040d000b0b200028021021032001200041186a280200220010a50120004198046c2200450d0a03402003200110d10220034198046a2103200041e87b6a22000d000c0b0b0b200241013a00072001200241076a41011064200041046a280200210320012000410c6a280200220410a5010240200441f8036c2204450d0003402003200110cb02200341f8036a2103200441887c6a22040d000b0b200028021021032001200041186a280200220010a50120004198046c2200450d0903402003200110d10220034198046a2103200041e87b6a22000d000c0a0b0b200241023a00072001200241076a41011064200041046a280200210320012000410c6a280200220410a5010240200441f8036c2204450d0003402003200110cb02200341f8036a2103200441887c6a22040d000b0b200028021021032001200041186a280200220010a50120004198046c2200450d0803402003200110d10220034198046a2103200041e87b6a22000d000c090b0b200241033a00072001200241076a41011064200041106a200110d202200241003a00072001200241076a41011064200041046a280200210320012000410c6a280200220010a501200041f8036c2200450d0703402003200110cb02200341f8036a2103200041887c6a22000d000c080b0b200241043a00072001200241076a41011064200041046a280200210320012000410c6a280200220410a501200041106a21050240200441f8036c2200450d0003402003200110cb02200341f8036a2103200041887c6a22000d000b0b20052001109d020c060b200241053a00072001200241076a41011064200041046a280200210320012000410c6a280200220410a501200041206a21050240200441f8036c2204450d0003402003200110cb02200341f8036a2103200441887c6a22040d000b0b20052001109d02200028021021032001200041186a280200220010a50120004198046c2200450d0503402003200110d10220034198046a2103200041e87b6a22000d000c060b0b200241063a00072001200241076a410110640240024002400240024020002d00010e0400010203000b200241003a00072001200241076a410110640c030b200241013a00072001200241076a410110640c020b200241023a00072001200241076a410110640c010b200241033a00072001200241076a410110640b200220002903183703082001200241086a4108106420002802042000410c6a280200200110a6010c040b200241073a00072001200241076a41011064200041046a200110ee01200041086a200110ee012000410c6a200110ee010c030b200241083a00072001200241076a41011064200041046a200110ee010c020b200241093a00072001200241076a41011064200041046a200110ee01200041086a200110ee012000410c6a200110ee010c010b2002410a3a00072001200241076a41011064200041086a2001109d02200041046a280200200110d0020b200241106a24000bc30801047f230041106b2202240002400240024002400240024002400240024020002d00000e080001020304050607000b200241003a00082001200241086a410110640c070b200241013a00082001200241086a41011064200041046a280200210320012000410c6a280200220410a501200041106a21050240200441f8036c2200450d0003402003200110cb02200341f8036a2103200041887c6a22000d000b0b20052001109d020c060b200241023a00082001200241086a41011064200041046a280200210320012000410c6a280200220410a501200041206a21050240200441f8036c2204450d0003402003200110cb02200341f8036a2103200441887c6a22040d000b0b20052001109d02200028021021032001200041186a280200220010a50120004198046c2200450d0503402003200110d10220034198046a2103200041e87b6a22000d000c060b0b200241033a00082001200241086a41011064200041046a280200210320012000410c6a280200220410a5010240200441f8036c2204450d0003402003200110cb02200341f8036a2103200441887c6a22040d000b0b200028021021032001200041186a280200220010a501200041f8036c450d04200041f8036c210003402003200110cb02200341f8036a2103200041887c6a22000d000c050b0b200241043a00082001200241086a41011064200041046a280200210320012000410c6a280200220410a501200041206a21050240200441f8036c2204450d0003402003200110cb02200341f8036a2103200441887c6a22040d000b0b20052001109d02200028021021032001200041186a280200220010a50120004198046c2200450d0303402003200110d10220034198046a2103200041e87b6a22000d000c040b0b200241053a00082001200241086a41011064200041046a280200210320012000410c6a280200220410a501200041206a21050240200441f8036c2204450d0003402003200110cb02200341f8036a2103200441887c6a22040d000b0b20052001109d02200028021021032001200041186a280200220010a50120004198046c2200450d0203402003200110d10220034198046a2103200041e87b6a22000d000c030b0b200241063a00082001200241086a41011064200041106a200110d202200041186a2001109d02200041046a280200210320012000410c6a280200220010a501200041f8036c2200450d0103402003200110cb02200341f8036a2103200041887c6a22000d000c020b0b200241073a00082001200241086a41011064200041106a200110cb02200220004188046a2903003703082001200241086a41081064200220004190046a2903003703082001200241086a41081064200220002d00013a00082001200241086a41011064200041046a280200210320012000410c6a280200220010a501200041e8036c2200450d0003402003200110d002200341e8036a2103200041987c6a22000d000b0b200241106a24000be00203017f017e027f230041206b220224000240024002400240024002402000290300220342c000540d00200342808001540d012003428080808004540d02200379a7220441274d0d0341fe85c100413641b486c100102d000b20022003a74102743a00082001200241086a410110640c030b20022003a74102744101723b01082001200241086a410210640c020b20022003a74102744102723602082001200241086a410410640c010b20024113200441037622044102746b3a00082001200241086a410110642002200029030022033703000240410820046b450d00200441786a21000340200220033c00082001200241086a4101106420034208882103200041016a22042000492105200421002005450d000b200220033703000b200350450d010b200241206a24000f0b2002411c6a4100360200200241186a41bc8ec2003602002002420137020c200241c486c1003602082002200241086a10bf03000bc40201037f23004180016b2202240020002802002100024002400240024020012802002203411071450d0020002d00002103410021000340200220006a41ff006a2003410f712204413072200441d7006a2004410a491b3a00002000417f6a21002003410476410f7122030d000b20004180016a22034181014f0d02200141a8f7c1004102200220006a4180016a410020006b104021000c010b02402003412071450d0020002d00002103410021000340200220006a41ff006a2003410f712204413072200441376a2004410a491b3a00002000417f6a21002003410476410f7122030d000b20004180016a22034181014f0d03200141a8f7c1004102200220006a4180016a410020006b104021000c010b20003100002001103c21000b20024180016a240020000f0b2003418001419087c000104a000b2003418001419087c000104a000bbe0201037f23004180016b2202240020002802002100024002400240024020012802002203411071450d0020002802002103410021000340200220006a41ff006a2003410f712204413072200441d7006a2004410a491b3a00002000417f6a2100200341047622030d000b20004180016a22034181014f0d02200141a8f7c1004102200220006a4180016a410020006b104021000c010b02402003412071450d0020002802002103410021000340200220006a41ff006a2003410f712204413072200441376a2004410a491b3a00002000417f6a2100200341047622030d000b20004180016a22034181014f0d03200141a8f7c1004102200220006a4180016a410020006b104021000c010b20003502002001103c21000b20024180016a240020000f0b2003418001419087c000104a000b2003418001419087c000104a000bd60202027f017e23004180016b2202240020002802002100024002400240024020012802002203411071450d0020002903002104418001210002400340024020000d00410021000c020b200220006a417f6a2004a7410f712203413072200341d7006a2003410a491b3a00002000417f6a2100200442048822044200520d000b20004181014f0d030b200141a8f7c1004102200220006a41800120006b104021000c010b02402003412071450d0020002903002104418001210002400340024020000d00410021000c020b200220006a417f6a2004a7410f712203413072200341376a2003410a491b3a00002000417f6a2100200442048822044200520d000b20004181014f0d040b200141a8f7c1004102200220006a41800120006b104021000c010b20002903002001103c21000b20024180016a240020000f0b2000418001419087c000104a000b2000418001419087c000104a000b880101017f230041306b220224002002200028020036020c2002410b3602142001411c6a280200210020022002410c6a360210200128021821012002412c6a4101360200200241246a4101360200200241b4f7c1003602202002410136021c200241cc80c2003602182002200241106a36022820012000200241186a10322101200241306a240020010bfe0101047f230041306b22022400200028020021030240024020012d0000410471450d002001411c6a2802002104200128021821052002412c6a4100360200200241bc8ec2003602282002420137021c200241acf7c1003602184101210020052004200241186a10320d010b41002100024003402002200320006a36020c2002410c36021420022002410c6a36021020012802182104200128021c21052002410136022c20024101360224200241d4f7c1003602202002410136021c200241cc80c2003602182002200241106a36022820042005200241186a10320d01200041016a22004120470d000b410021000c010b410121000b200241306a240020000b9b0702027f047e230041f0016b2202240020002802002100024002400240024020012802002203411071450d00200041086a290300210420002903002105418001210002400340024020000d00410021000c020b200241f0006a20006a417f6a2005a7410f712203413072200341d7006a2003410a491b3a00002000417f6a210020054204882004423c8684220520044204882204844200520d000b20004181014f0d030b200141a8f7c1004102200241f0006a20006a41800120006b104021000c010b02402003412071450d00200041086a290300210420002903002105418001210002400340024020000d00410021000c020b200241f0006a20006a417f6a2005a7410f712203413072200341376a2003410a491b3a00002000417f6a210020054204882004423c8684220520044204882204844200520d000b20004181014f0d040b200141a8f7c1004102200241f0006a20006a41800120006b104021000c010b200041086a2903002104200029030021062002412736026c02400240200442ffff1f560d0020064213882004422d868442bda282a38eab04802104420021050c010b200241386a2006420042f3b2d8c19e9ebdcc957f4200108405200241286a2006420042d2e1aadaeda7c987f6004200108405200241d8006a2004420042f3b2d8c19e9ebdcc957f4200108405200241c8006a2004420042d2e1aadaeda7c987f6004200108405200241c8006a41086a290300200241286a41086a290300200241386a41086a290300220520022903287c2204200554ad7c220720022903487c2205200754ad7c2005200241d8006a41086a290300200420022903587c200454ad7c7c2204200554ad7c2207423e8821052004423e8820074202868421040b200241186a20042005428080e0b0b79fb79cf500427f108405200229031820067c200241f0006a200241ec006a105a02402004200584500d00200241f0006a41146a4130200228026c416c6a1087051a2002411436026c200241086a20044213882005422d8684220542bda282a38eab048022062004428080e0b0b79fb79cf500427f108405200229030820047c200241f0006a200241ec006a105a200542bda282a38eab04540d00200241f1006a4130200228026c417f6a1087051a20022006a74130723a00702002410036026c0b200141bc8ec2004100200241f0006a200228026c22006a412720006b104021000b200241f0016a240020000f0b2000418001419087c000104a000b2000418001419087c000104a000bff0101047f02400240200028020022014106490d00200041086a280200210202402000410c6a2802002200450d002002200041186c6a2103200221000340024020002802002204450d00200041046a280200450d00200410300b0240200041106a28020041ffffffff0371450d002000410c6a28020010300b200041186a22002003470d000b0b200141186c450d01200210300f0b2001450d002000200141186c6a41086a21012000410c6a2100034002402000417c6a22042802002203450d002000280200450d00200310300b0240200441106a28020041ffffffff0371450d00200041086a28020010300b200041186a2100200441186a2001470d000b0b0ba30502077f047e230041f0066b220224000240418003102f2203450d00200241086a41086a22042001280208220541086a290000370300200241086a41106a2206200541106a290000370300200241086a41186a2207200541186a29000037030020022005290000370308200241d0066a41086a4120360200200220053602d406200241003602d006200241e0066a41086a41002802b8f541360200200241002902b0f5413703e006200241c0046a2001200241086a200241d0066a200241e0066a10ba0220022802c404210820022802c0042105200241b8026a200241c0046a41086a4188021085051a0240024020054101460d00200241306a200241b8026a4188021085051a200241c0046a200241b8026a41e4011085051a200241086a41206a200241b4026a2d000022053a00002007200241ac026a29020022093703002006200241a4026a290200220a37030020042002419c026a290200220b3703002002200229029402220c370308200241dc026a20053a0000200241d4026a2009370200200241b8026a41146a200a370200200241b8026a410c6a200b3702002002200c3702bc0241f001102f2205450d02200520083602082005410c6a200241c0046a41e4011085051a2005428180808010370200200341256a200241d5026a290000370000200341206a200241b8026a41186a290200370200200341186a200241b8026a41106a290200370200200341106a200241b8026a41086a290200370200200320022902b8023702082003410036020420032005360200200041c0006a4100360200200041186a41003a0000200041146a41003602002000410c6a428880808010370200200041086a200336020020002001360204200041003602000c010b2000410136020020002008360204200310300b200241f0066a24000f0b102a000be62b051c7f017e057f027e017f23004190096b220324002000410c6a220428020021052004410036020002402005450d0020002802042104200541306c21060340200428020022052005280200417f6a3602000240200428020022052802000d0002402005410c6a280200450d0020052802081030200428020021050b200541046a22052005280200417f6a3602002004280200220541046a2802000d00200510300b200441306a2104200641506a22060d000b0b200041106a210702400240200028021022044125490d002000411c6a220528020021040c010b200721050b02402004450d00200541003602000b2000413c6a410036020020002802002104200341c0026a41186a4200370300200341c0026a41106a4200370300200341c0026a41086a4200370300200342003703c002200341b8046a41086a22084120360200200341003602b804200320042802083602bc04200341086a41086a41002802b8f541360200200341002902b0f541370308200341c0066a2004200341c0026a200341b8046a200341086a10ba0220032802c406210420032802c0062105200341dc046a200341c0066a41086a220941e4011085051a200341d0086a41086a220a200341b5086a290000370300200341d0086a41106a220b200341bd086a290000370300200341d0086a41186a220c200341c5086a290000370300200320032900ad083703d008024002400240024020054101460d00200041046a210d200341ac086a2d0000210e200341086a200341dc046a41e4011085051a200341f0016a41186a220f200c290300370300200341f0016a41106a2210200b290300370300200341f0016a41086a2211200a290300370300200320032903d0083703f001200341003602980220032002360294022003200136029002200341ad086a2112200341dc046a41026a21134100210541002114024002400240024002400240034020092011290300370300200341c0066a41106a22152010290300370300200341c0066a41186a2216200f290300370300200320032903f0013703c0060240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024041f001102f2206450d00200620043602082006410c6a200341086a41e4011085051a20064281808080103702000240200028020c2204200041086a280200470d00200d10bb02200028020c21040b2000280204200441306c6a2204410036020420042006360200200420032f00dc043b002d2004410c6a200e3a00002004410d6a20032903c006370000200441156a20092903003700002004411d6a2015290300370000200441256a20162903003700002004412f6a20132d00003a00002000200028020c221741016a220436020c20042017490d0120002802042218201741306c6a22192802002206280210211a2006280208211b0240024002400240024020062802140e050001020304000b20024101742005470d220c2f0b2006411c6a280200220420062802182200490d052004201a4b0d0620032006280220221c3602c8062003200420006b221d3602c4062003201b20006a221e3602c0060240200341c0066a20034190026a10dc0241ff017141ff01470d002018201741306c6a41033602044200211f0c300b410021040240200241017420056b2220201d410174201c6b2206200620204b1b2221450d000340201c20046a22004101762206201d4f0d09200520046a2216410176221520024f0d0a201e20066a2d00002206410f71200641f0017141047620004101711b200120156a2d00002206410f71200641047620164101711b470d012021200441016a2204470d000b202121040b2004202046ad211f0c2f0b2006411c6a280200220420062802182215490d082004201a4b0d092003200628022022213602b0042003200420156b221e3602ac042003201b20156a22203602a804410021040240201e41017420216b2222200241017420056b2223202320224b1b2224450d000340200520046a2216410176221520024f0d0c202120046a221c410176221d201e4f0d0d200120156a2d00002215410f71201541f0017141047620164101711b2020201d6a2d00002215410f712015410476201c4101711b470d012024200441016a2204470d000b202421040b024002400240024020042022460d00200341a8046a20034190026a10dc0241ff017141ff01460d0120232022202220234b1b221d0d02410021040c030b20194101360204200320023602940220032001360290022003200520226a22053602980220214101762104024002402021410171450d00201e20044d0d0141012116200441016a2115202020046a2d0000410f71211d0c280b410021160240201e2004490d004100211d200421150c280b2004201e41e097c200104a000b2004201e41f097c2001033000b2018201741306c6a410336020420214101762104024002402021410171450d00201e20044d0d11200341013a00c006200341c8066a201e200441016a22026b3602002003202020026a3602c4062003202020046a2d0000410f713a00c1060c010b201e2004490d0f200341c8066a201e20046b360200200341003b01c0062003202020046a3602c4060b2007200341c0066a10b5014200211f0c300b410021040340202120046a22004101762206201e4f0d10200520046a2216410176221520024f0d11202020066a2d00002206410f71200641f0017141047620004101711b200120156a2d00002206410f71200641047620164101711b470d01201d200441016a2204470d000b201d21040b2004202346ad211f0c2e0b20024101742005460d2c2005410176220420024f0d0f200120046a2d000021042019410236020420192004410f71200441047620054101711b22043602082007200410b601200641246a2004410c6c6a220628020022154102460d21200320023602940220032001360290022003200541016a22053602980202400240200e41ff01714101460d00200c4200370300200b4200370300200a4200370300200342003703d0080c010b200c200f290300370300200b2010290300370300200a2011290300370300200320032903f0013703d0080b20002802002116200641086a2802002104200641046a28020021060240024020154101470d0020042006490d12410121152004201a4d0d012004201a41d49bc2001042000b20042006490d12410021152004201a4b0d130b200320153602f0082003200420066b3602f8082003201b20066a3602f408201441016a221441017621040240024020144101710d00200420024b0d15200341003a008809200320043602840920032001360280090c010b200420024b0d15200420024f0d16200341013a008809200320013602800920032004360284092003200120046a2d000041f001713a0089090b200341c0066a2016200341d0086a200341f0086a20034180096a10ba0220032802c406210420032802c0062106200341dc046a200941e4011085051a2008201241086a290000370300200341b8046a41106a2215201241106a290000370300200341b8046a41186a2216201241186a290000370300200320122900003703b804024020064101460d0020032d00ac08210e200341c0026a200341dc046a41e4011085051a200341a0026a41186a2016290300370300200341a0026a41106a2015290300370300200341a0026a41086a2008290300370300200320032903b8043703a0020c240b2004ad2225421886211f2025422086222542018421260c2e0b2006411c6a280200220420062802182215490d152004201a4b0d162003200628022022213602b0042003200420156b221e3602ac042003201b20156a22203602a804410021040240201e41017420216b22222002410174222720056b2223202320224b1b2224450d000340200520046a2216410176221520024f0d19202120046a221c410176221d201e4f0d1a200120156a2d00002215410f71201541f0017141047620164101711b2020201d6a2d00002215410f712015410476201c4101711b470d012024200441016a2204470d000b202421040b0240024002400240024020042022460d00200341a8046a20034190026a10dc0241ff017141ff01460d0120232022202220234b1b221d0d02410021040c030b200320023602940220032001360290022003200520226a22043602980220272004470d034201211f0c300b2018201741306c6a410336020420214101762104024002402021410171450d00201e20044d0d1f200341013a00c006200341c8066a201e200441016a22026b3602002003202020026a3602c4062003202020046a2d0000410f713a00c1060c010b201e2004490d1d200341c8066a201e20046b360200200341003b01c0062003202020046a3602c4060b2007200341c0066a10b5012007410f10b6014200211f0c2f0b410021040340202120046a22004101762206201e4f0d1e200520046a2216410176221520024f0d1f202020066a2d00002206410f71200641f0017141047620004101711b200120156a2d00002206410f71200641047620164101711b470d01201d200441016a2204470d000b201d21040b2004202346ad211f0c2d0b2004410176220520024f0d1d200120056a2d000021052019410236020420192005410f71200541047620044101711b221536020820214101762105024002402021410171450d00201e20054d0d014101211d200541016a2116202020056a2d0000410f71211c0c210b4100211d0240201e2005490d004100211c200521160c210b2005201e41e097c200104a000b2005201e41f097c2001033000b102a000b41ebfbc00041d10041bcfcc0001050000b2000200441c49cc2001048000b2004201a41c49cc2001042000b2006201d41e098c2001033000b2015200241e098c2001033000b2015200441c49cc2001048000b2004201a41c49cc2001042000b2015200241e098c2001033000b201d201e41e098c2001033000b2004201e41e097c200104a000b2004201e41f097c2001033000b2006201e41e098c2001033000b2015200241e098c2001033000b2004200241e098c2001033000b2006200441d49bc2001048000b2006200441e49bc2001048000b2004201a41e49bc2001042000b2004200241a099c2001042000b2004200241b099c2001042000b2004200241c099c2001033000b2015200441c49cc2001048000b2004201a41c49cc2001042000b2015200241e098c2001033000b201d201e41e098c2001033000b2004201e41e097c200104a000b2004201e41f097c2001033000b2006201e41e098c2001033000b2015200241e098c2001033000b2005200241e098c2001033000b2018201741306c6a41033602040c010b2003201c3a00c1062003201d3a00c0062003201e20166b3602c8062003202020166a3602c4062007200341c0066a10b5012007201510b6010240200641306a2015410c6c6a220628020022154102470d00420021254200211f420021260c0e0b200320023602940220032001360290022003200441016a22053602980202400240200e41ff01714101460d00200c4200370300200b4200370300200a4200370300200342003703d0080c010b200c200f290300370300200b2010290300370300200a2011290300370300200320032903f0013703d0080b20002802002116200641086a2802002104200641046a28020021060240024002400240024002400240024020154101470d0020042006490d02410121152004201a4d0d012004201a41d49bc2001042000b20042006490d02410021152004201a4b0d030b200320153602f0082003200420066b3602f8082003201b20066a3602f408201420226a41016a221441017621040240024020144101710d00200420024b0d05200341003a008809200320043602840920032001360280090c010b200420024b0d05200420024f0d06200341013a008809200320013602800920032004360284092003200120046a2d000041f001713a0089090b200341c0066a2016200341d0086a200341f0086a20034180096a10ba0220032802c406210420032802c0062106200341dc046a200941e4011085051a2008201241086a290000370300200341b8046a41106a2215201241106a290000370300200341b8046a41186a2216201241186a290000370300200320122900003703b804024020064101460d0020032d00ac08210e200341c0026a200341dc046a41e4011085051a200341a0026a41186a2016290300370300200341a0026a41106a2015290300370300200341a0026a41086a2008290300370300200320032903b8043703a0020c090b2004ad2225421886211f2025422086222542018421260c130b2006200441d49bc2001048000b2006200441e49bc2001048000b2004201a41e49bc2001042000b2004200241a099c2001042000b2004200241b099c2001042000b2004200241c099c2001033000b420021254200211f420021260c0c0b2003201d3a00c106200320163a00c0062003201e20156b3602c8062003202020156a3602c4062007200341c0066a10b50102400240200e41ff01714101460d00200c4200370300200b4200370300200a4200370300200342003703d0080c010b200c200f290300370300200b2010290300370300200a2011290300370300200320032903f0013703d0080b200028020021162006412c6a2802002104200628022821150240024020062802244101470d0020042015490d04410121062004201a4d0d012004201a41d49bc2001042000b20042015490d04410021062004201a4b0d050b200320063602f0082003200420156b3602f8082003201b20156a3602f408202220146a221441017621040240024020144101710d00200420024b0d07200341003a008809200320043602840920032001360280090c010b200420024b0d07200420024f0d08200341013a008809200320013602800920032004360284092003200120046a2d000041f001713a0089090b200341c0066a2016200341d0086a200341f0086a20034180096a10ba0220032802c406210420032802c0062106200341dc046a200941e4011085051a2008201241086a290000370300200341b8046a41106a2215201241106a290000370300200341b8046a41186a2216201241186a290000370300200320122900003703b804024020064101460d0020032d00ac08210e200341c0026a200341dc046a41e4011085051a200341a0026a41186a2016290300370300200341a0026a41106a2015290300370300200341a0026a41086a2008290300370300200320032903b8043703a0020c010b2004ad2225421886211f2025422086222542018421260c0b0b200341086a200341c0026a41e4011085051a200f200341a0026a41186a2903003703002010200341a0026a41106a2903003703002011200341a0026a41086a290300370300200320032903a0023703f0010c000b0b2015200441d49bc2001048000b2015200441e49bc2001048000b2004201a41e49bc2001042000b2004200241a099c2001042000b2004200241b099c2001042000b2004200241c099c2001033000b2004ad2225421886211f2025422086222542018421260c020b4201211f0b42002125420021260b20034190096a2400201f4208864280fe0383202584202642ff0183840b970201097f02400240200141046a2802002202410174200141086a28020022036b2204200041046a2802002205410174200041086a28020022066b2207200720044b1b2208450d00200128020021092000280200210a02400240024003402006410176220020054f0d022003410176220120024f0d0302400240417f200a20006a2d00002200410f71200041047620064101711b2200200920016a2d00002201410f71200141047620034101711b22014720002001491b41016a0e03030001000b200641016a2106200341016a21032008417f6a2208450d050c010b0b41010f0b41ff0121060c030b2000200541e098c2001033000b2001200241e098c2001033000b41ff01210620072004490d0020072004470f0b20060b060010de02000b1100418ee2c100410f41a0e2c100102d000b9e13020c7f017e230041e0016b2203240002400240024020024110490d0041fc8fc2002001410f1088050d010c020b200141fc8fc2002002108805450d010b0240200041086a2802002204280224450d002004106c0b20042003290310370300200441003602242004200329038801370328200441206a200341106a41206a280200360200200441186a200341106a41186a290300370300200441106a200341106a41106a290300370300200441086a200341106a41086a290300370300200441306a20034188016a41086a2205290300370300200441386a20034188016a41106a2206290300370300200441c0006a20034188016a41186a2207290300370300200441c8006a20034188016a41206a290300370300200441d0006a200341b0016a290300370300200441d8006a20034188016a41306a290300370300200441003a0060200441e1006a2003290048370000200441e9006a200341c8006a41086a2208290000370000200441f1006a200341c8006a41106a2209290000370000200441f9006a200341c8006a41186a220a29000037000020044180016a200341e7006a2900003700002000280200210b200320023602d401200320013602d001200341086a200b10c302200328020c210c2003280208210d2003200341d0016a360234200341c8006a200b41c0006a10e0022007200a28020036020020062009290300370300200520082903003703002003200329034837038801200b41d4006a210e2003200341346a3602a401200341346a210a02400240024002400240034020032802a001210902400340024020090d00410021040c020b20032009417f6a22093602a00120034188016a4100200328028c011b220828020021060240024020082802082207200828020422042f018a0c4f0d00200421050c010b03400240200428020022050d00410021050c020b200641016a210620042f01880c210720052104200720052f018a0c4f0d000b0b024002402006450d00200741027420056a41900c6a280200210402402006417f6a2206450d000340200428028c0c21042006417f6a22060d000b0b410021060c010b200741016a2106200521040b20082004360204200841003602002008200636020820052007410c6c6a2204410c6a280200200a28020022062802042208490d002006280200200441046a220428020020081088050d000b200520074107746a4188016a21070b02402004450d002003410036023820042802082205417f4c0d02200428020021040240024020050d00410121060c010b2005102f2206450d040b200620042005108505210802400240200b28024c22044106490d00200b2802582104200b28025421060c010b200e21060b0240024002402006450d0020040d010b410221042005450d01200810300c010b2003200536021820032005360214200320083602102004410c6c20066a41746a200341106a10e10221040b2007200341386a2004200441024771200d200c10e20220032802a401210a0c010b0b2000280204210420034188016a41086a220541002802b8f541360200200341002902b0f54137038801024002402004200441e0006a220620034188016a10d5010d004130102f2205450d03200541003a000020052006290000370001200541096a200641086a290000370000200541116a200641106a290000370000200541196a200641186a2900003700000c010b200341003602442003200636024020034180dec10036023c2003200436023820034188016a200341386a2001200210e302200341c8006a41086a20034188016a41106a290300370300200341c8006a41106a220420034188016a41186a290300370300200341c8006a41186a220620034188016a41206a290300370300200341c8006a41206a220720034188016a41286a290300370300200341c8006a41286a220820034188016a41306a290300370300200341c8006a41306a220920034188016a41386a290300370300200341c8006a41386a220a200341c8016a28020036020020032005290300370348200328028c0121052003280288014101460d0020034194016a220b200341d0006a2903003702002003419c016a2004290300370200200341a4016a2006290300370200200341ac016a2007290300370200200341b4016a2008290300370200200341bc016a2009290300370200200341c4016a200a28020036020020032005360288012003200329034837028c01200341106a20034188016a10e402200328021022044102460d05024003402003280214210520044101460d012003290318220f422088a72206417f4c0d03200328022421082003280220210a200028020021040240024020060d00410121070c010b2006102f2207450d050b200720052006108505210720042802200d0520044100360220200441286a2209200929030042017c37030020042802300d0620044100360230200320063602d801200320063602d401200320073602d001200341003602102003200410c302200441c0006a200341d0016a200341106a2003280200200328020410c40202402008450d00200a10300b0240200fa7450d00200510300b200341106a20034188016a10e402200328021022044102470d000c070b0b024020034188016a410c6a2802002206450d00200328028c012104200641306c21070340200428020022062006280200417f6a3602000240200428020022062802000d0002402006410c6a280200450d0020062802081030200428020021060b200641046a22062006280200417f6a3602002004280200220641046a2802000d00200610300b200441306a2104200741506a22070d000b0b024020034190016a2802002204450d00200441306c450d00200328028c0110300b2003280298014125490d00200341a0016a28020010300b02400240024020052d00000e0402020002010b200541086a280200450d01200541046a28020010300c010b200541286a280200450d00200541246a28020010300b200510300c050b102c000b102a000b41b082c2004110200341106a41c082c20041d483c2001034000b41b082c2004110200341106a41c082c20041e483c2001034000b0240200b2802002205450d00200328028c012104200541306c21060340200428020022052005280200417f6a3602000240200428020022052802000d0002402005410c6a280200450d0020052802081030200428020021050b200541046a22052005280200417f6a3602002004280200220541046a2802000d00200510300b200441306a2104200641506a22060d000b0b024020034190016a2802002204450d00200441306c450d00200328028c0110300b2003280298014125490d00200341a0016a28020010300b200341e0016a24000b8a0201057f230041206b22022400024002400240200128020422030d004100210420004100360204200041106a41003602000c010b20012802002104200321050240034020032f018a0c2106024020040d002004450d020c040b2004450d032004417f6a2104200320064102746a418c0c6a2802002103200528028c0c21050c000b0b2000200436020c200041003602082000200536020420002004360200200041146a2006360200200041106a2003360200200128020821040b20002004360218200241206a24000f0b200241146a410136020020024201370204200241f4a9c2003602002002410436021c200241eca9c2003602182002200241186a360210200241fca9c200103a000b8f0f030b7f027e017f20012802082102200128020421032001280200210402400240024002400240024002400240024002400240024020002802042205450d00200028020021060c010b418c01102f2205450d0141002106200541003b018a012005410036020020002005360204200041003602000b0240034020052f018a012207410c6c2108200541046a220921014100210a02400340024020080d002007210a0c020b02400240200420012802002001280208220b20022002200b4b1b108805220c0d002002200b490d032002200b47210b0c010b4101210b200c4100480d020b2001410c6a2101200a41016a210a200841746a2108200b0d000b410021012003450d022004103041000f0b02402006450d002006417f6a21062005200a4102746a418c016a28020021050c010b0b024002402007410a4b0d000240200a20074f0d002009200a410c6c6a2201410c6a20012007200a6b410c6c1086051a0b2009200a410c6c6a2201200436020020012002360208200120033602042005200741016a3b018a010c010b410521014100210c02400240200a41054f0d0041042101200a21080c010b4105210802400240200a417b6a0e020201000b200a41796a21084101210c410621010c010b410021084101210c0b418c01102f220b450d02200b41003b018a01200b4100360200200b20052f018a0122062001417f736a220a3b018a01200a410c4f0d032006200141016a22076b200a470d0420092001410c6c6a2206290204210d20062802002106200b41046a20092007410c6c6a200a410c6c1085051a200520013b018a01200b2005200c1b220141046a210a0240200841016a220720012f018a01220c4b0d00200a2007410c6c6a200a2008410c6c6a200c20086b410c6c1086051a0b200a2008410c6c6a2208200436020020082002360208200820033602042001200c41016a3b018a01024002400240200528020022010d00410021070c010b41002107200b2109200d210e20062103034020052f018801210a200122042f018a012205410b490d024100210c410421010240200a4105490d00200a210102400240200a417b6a0e020201000b200a41796a210a4101210c410621010c010b4100210a4101210c410521010b41bc01102f220b450d05200b41003b018a01200b4100360200200b20042f018a0122022001417f736a22083b018a012008410c4f0d082002200141016a220f6b2008470d0920042001410c6c6a220241086a290200210d200241046a2802002106200b41046a200241106a2008410c6c1085051a200420013b018a01200b2f018a01220841016a21022008410c4f0d0a200520016b22012002470d0b200741016a2107200b418c016a2004200f4102746a418c016a20014102741085051a4100210102400340200b20014102746a418c016a280200220220013b0188012002200b360200200120084f0d01200120012008496a220120084d0d000b0b200b2004200c1b220241046a21050240200a41016a220120022f018a0122084b0d0020052001410c6c6a2005200a410c6c6a2008200a6b410c6c1086051a0b200841016a210c2005200a410c6c6a2205200e370204200520033602002002418c016a21050240200a41026a220f200841026a22034f0d002005200f4102746a200520014102746a2008200a6b4102741086051a0b200520014102746a20093602002002200c3b018a010240200120034f0d002002200a4102746a4190016a2101034020012802002208200a41016a220a3b01880120082002360200200141046a2101200c200a470d000b0b20042105200b2109200d210e20062103200428020022010d000b0b20002802042208450d0a2000280200210241bc01102f2201450d032001200836028c01200141003b018a0120014100360200200841003b01880120082001360200200020013602042000200241016a36020020022007470d0b20012f018a012208410b4f0d0c2001200841016a22023b018a0120012008410c6c6a220841086a200d370200200841046a20063602002001418c016a20024102746a200b360200200b20023b018801200b20013602002000200028020841016a36020841010f0b200a41016a2101200441046a2108200541016a2102024002402005200a4b0d002008200a410c6c6a2208200e370204200820033602002004418c016a2108200541026a210b0c010b20082001410c6c6a2008200a410c6c6a22082005200a6b220b410c6c1086051a2008200e37020420082003360200200a4102742004418c016a22086a41086a200820014102746a200b4102741086051a200541026a210b0b20082001410274220a6a2009360200200420023b018a012001200b4f0d00200a20046a418c016a210803402008280200220220013b01880120022004360200200841046a2108200b200141016a2201470d000b0b410121012000200028020841016a3602080b20010f0b102a000b200a410b41e8a2c2001042000b41f8a2c200412841a0a3c200102d000b2008410b41e8a2c2001042000b41f8a2c200412841a0a3c200102d000b2002410c41f8a3c2001042000b41f8a2c200412841a0a3c200102d000b41b2abc200412b41e0abc200102d000b41eaa0c2004130419ca1c200102d000b41aca1c200412041cca1c200102d000bd20803047f017e017f230041206b2205240020002802002106024002400240024002400240024002400240024002400240024020020d00024020064106490d002000410c6a2802002202450d01200541086a41086a200141086a28020036020020052001290200370308200541086a2101200041086a28020022070d03418486c20041fc00418888c2001050000b20060d01410021060b200541086a41086a200141086a28020036020020052001290200370308024002400240024020064106490d002000410c6a220128020022022006460d01200041086a28020021070c0e0b4105210220064105460d01200041086a210720062102200021010c0d0b2000410c6a2802002101200621020c010b200621010b20022001470d09200141016a22022001490d054100417f2002417f6a677620024102491b220241016a22012002490d050240024020064106490d002000410c6a2802002102200041086a2802002108200621070c010b200041086a210841052107200621020b200220014b0d020240200141054b0d00200641054d0d0a20004100360204200041086a2008200241186c1085051a200020023602002007ad42187e2209422088a70d04200810300c0a0b20072001470d040c090b200541086a41086a200141086a28020036020020052001290200370308200041086a2107200541086a2101200621020b024020072002417f6a41186c6a22062802002202450d00200641046a280200450d00200210300b20062001290200370200200641086a200141086a2802003602000c090b41c29ac200412041e49ac200102d000b2005410036021c20052009a736021841bea9c200412b200541186a41e485c20041f485c2001034000b2001ad42187e2209422088a70d002009a7210a0240200641054b0d00200a102f2206450d0420062008200241186c1085051a0c030b2007ad42187e2209422088a7450d010b41d099c200411141e499c200102d000b200a102f2206450d0120062008200a2009a722072007200a4b1b1085051a200810300b20004101360204200020013602002000410c6a2002360200200041086a20063602000c010b102a000b2000410c6a22012802002102200041086a28020021070b2007200241186c6a220641002802e88f4236020c20062005290308370200200641106a4200370200200641086a200541086a41086a2802003602002001200128020041016a3602000b0240024020034101470d0002400240200028020022064106490d002000410c6a2802002106200041086a28020021000c010b200041086a21000b2000450d012006450d0120002006417f6a41186c6a2206410c6a2101024020062802142200450d00200041027420012802006a417c6a2802002004460d010b200641146a210202402000200641106a280200470d0020012000410110f302200228020021000b200128020020004102746a20043602002002200228020041016a3602000b200541206a24000f0b418486c20041fc00419888c2001050000b930d02097f017e230041f0016b2204240020044188016a200110da02200441c8006a41086a220520044188016a41106a290300370300200441c8006a41106a220620044188016a41186a290300370300200441c8006a41186a220720044188016a41206a290300370300200441c8006a41206a220820044188016a41286a290300370300200441c8006a41286a220920044188016a41306a290300370300200441c8006a41306a220a20044188016a41386a290300370300200441c8006a41386a220b200441c8016a280200360200200420044188016a41086a290300370348200428028c01210102400240024002402004280288014101460d00200441146a220c20052903003702002004411c6a2006290300370200200441246a20072903003702002004412c6a2008290300370200200441346a20092903003702002004413c6a200a290300370200200441c4006a200b280200360200200420013602082004200429034837020c200441086a2002200310db02220da74101710d01200c280200210202400240024002400240200d42800283500d002002450d0320042002417f6a2205360214200428020c2201200541306c6a22032802044104460d03200441c8006a41286a2206200341286a290200370300200441c8006a41206a2207200341206a290200370300200441c8006a41186a2208200341186a290200370300200441c8006a41106a2209200341106a290200370300200441c8006a41086a220a200341086a29020037030020042003290200370348410021032004410036021402402005450d00200241306c41506a21030340200128020022022002280200417f6a3602000240200128020022022802000d0002402002410c6a280200450d0020022802081030200128020021020b200241046a22022002280200417f6a3602002001280200220241046a2802000d00200210300b200141306a2101200341506a22030d000b200428021421030b20044188016a41286a200629030037030020044188016a41206a200729030037030020044188016a41186a200829030037030020044188016a41106a200929030037030020044188016a41086a200a29030037030020042004290348370388012003200441086a41086a280200470d02200341016a220120034f0d010c080b200441003602142002450d02200428020c2101200241306c21030340200128020022022002280200417f6a3602000240200128020022022802000d0002402002410c6a280200450d0020022802081030200128020021020b200241046a22022002280200417f6a3602002001280200220241046a2802000d00200210300b200141306a2101200341506a22030d000c030b0b200341017422022001200220014b1b22014104200141044b1bad42307e220d422088a7454102742101200da721020240024020030d00200441003602e0010c010b200441e8016a41043602002004200428020c3602e0012004200341306c3602e4010b200441d0016a20022001200441e0016a1069200441d8016a280200210120042802d0014101460d02200420042802d40136020c2004200141306e360210200428021421030b200428020c200341306c6a2201200429038801370200200141286a20044188016a41286a290300370200200141206a20044188016a41206a290300370200200141186a20044188016a41186a290300370200200141106a20044188016a41106a290300370200200141086a20044188016a41086a2903003702002004200428021441016a3602140b20002004290308370204200041003602002000413c6a200441c0006a290300370200200041346a200441386a2903003702002000412c6a200441306a290300370200200041246a200441286a2903003702002000411c6a200441206a290300370200200041146a200441186a2903003702002000410c6a200441106a2903003702000c030b2001450d03102a000b20004101360200200020013602040c010b200041013602002000200d422088a73602040240200c2802002202450d00200428020c2101200241306c21030340200128020022022002280200417f6a3602000240200128020022022802000d0002402002410c6a280200450d0020022802081030200128020021020b200241046a22022002280200417f6a3602002001280200220241046a2802000d00200210300b200141306a2101200341506a22030d000b0b0240200441106a2802002201450d00200141306c450d00200428020c10300b20042802184125490d00200441206a28020010300b200441f0016a24000f0b102c000be40a010b7f23004180036b22022400200241086a200110b70202400240024002400240024002400240024002400240200228020822034102460d00200241e8006a4104722104200241086a41086a21050340200228020c210602402003450d0020002006360204200041013602000c080b2002280260210320042005290200370200200441086a200541086a290200370200200441106a200541106a290200370200200441186a200541186a290200370200200441206a200541206a290200370200200441286a200541286a2802003602002002200636026820024198016a200341146a20032802082003280210107002400240024002400240200228029801417f6a0e0400040102040b20022802a40122014101762104200241ac016a2802002107200241a8016a280200210820022802a0012105200228029c012106024002402001410171450d00200520044d0d09200241013a00f002200241f8026a2005200441016a22016b3602002002200620016a3602f4022002200620046a2d0000410f713a00f1020c010b20052004490d07200241f8026a200520046b360200200241003b01f0022002200620046a3602f4020b200241e8006a200241f0026a10b5010c0a0b20022802e002210720022802dc0221080c010b20022802a4012209410176210620022802ec02210720022802e802210820022802a001210a200228029c01210b024002402009410171450d00200a20064d0d0941012109200b20066a2d0000410f71210c200641016a21060c010b200a2006490d07410021094100210c0b2002200c3a00f102200220093a00f0022002200a20066b3602f8022002200b20066a3602f402200241e8006a200241f0026a10b5010b20080d070b20032003280200417f6a2206360200024020060d0002402003410c6a280200450d00200328020810300b200341046a22062006280200417f6a220636020020060d00200310300b024020022802684125490d00200228027010300b200241086a200110b702200228020822034102470d000b0b200041023602000c050b2004200541e097c200104a000b2004200541f097c2001033000b2006200a41e097c200104a000b2006200a41f097c2001033000b2002280294012205410176210402400240200541017122060d0002400240200228026822054125490d00200241f4006a2802002105200228027021010c010b200241e8006a41057221010b200520044f0d012004200541e096c2001042000b02400240200228026822054125490d00200241f4006a280200210a200228027021010c010b200241e8006a41057221012005210a0b200a2004490d020240024020054125490d00200241f4006a28020021052002280270210a0c010b200241e8006a410572210a0b200520044d0d03200a20046a2d0000417071210a0b0240024020040d00410121050c010b2004102f2205450d040b20052001200410850521010240024020060d002007417f4c0d060240024020070d00410121050c010b2007102f2205450d060b2005200820071085052105200041186a2007360200200041146a2007360200200041106a20053602002000410c6a2004360200200041086a200436020020002001360204200041003602000c010b4130102f2205450d042005200436010c20052004360108200520013601042005200a3a0001200541023a000020002005360204200041013602000b20032003280200417f6a2204360200024020040d0002402003410c6a280200450d00200328020810300b200341046a22042004280200417f6a220436020020040d00200310300b20022802684125490d00200228027010300b20024180036a24000f0b2004200a41f096c2001042000b20042005418097c2001033000b102a000b102c000bdd0802037f017e23004180016b2204240002400240024002400240024002400240024002402001280200220541c0006a2002200310e6022206450d0002400240200628020022024106490d00200628020c2102200628020821060c010b200641086a21060b2006450d042002450d04024020062002417f6a41186c6a2206280200450d0020052802000d06200641086a22023502002107200541003602002005200529030842017c3703082005280210450d0241b082c2004110200441286a41c082c20041c483c2001034000b20052802000d0641002106200541003602002005200529030842017c37030820052802100d07200541003602100c020b200441086a20012802042002200310e70241022106024020042802084101460d0002400240200428020c22050d00410021060c010b200441e0006a2005200441086a41086a2903002207422088a71065200441286a41186a200441e0006a41186a290000370300200441286a41106a200441e0006a41106a290000370300200441286a41086a200441e0006a41086a29000037030020042004290060370328410121062007a7450d00200510300b200441e0006a41186a200441286a41186a290300370300200441e0006a41106a200441286a41106a290300370300200441e0006a41086a200441286a41086a290300370300200420042903283703600b20064102460d07200441086a41186a200441e0006a41186a290300370300200441086a41106a200441e0006a41106a290300370300200441086a41086a200441e0006a41086a290300370300200420042903603703080c020b20054100360210200541186a2205200529030020077c370300200441e0006a200628020020022802001065200441c1006a200441e0006a41186a290000370000200441396a200441f0006a290000370000200441316a200441e8006a29000037000020042004290060370029410121060b200441206a200441c1006a290000370300200441186a200441396a290000370300200441106a200441316a290000370300200420042900293703080b0240024020064101460d00200041003602000c010b200441286a41186a200441086a41186a290300370300200441286a41106a200441086a41106a290300370300200441286a41086a200441086a41086a2903003703002004410036025820044201370350200420042903083703284120102f2205450d062004422037026420042005360260200441e0006a200441286a41201064200441d0006a200428026022052004280268106402402004280264450d00200510300b20002004290350370200200041086a200441d0006a41086a2802003602000b20044180016a24000f0b418486c20041fc00418087c2001050000b41b082c2004110200441286a41c082c20041b483c2001034000b41b082c2004110200441286a41c082c20041b483c2001034000b41b082c2004110200441286a41c082c20041c483c2001034000b41d488c1004130200441286a41dcfcc00041ecfcc0001034000b102a000bc60101067f024020002802042203450d00200028020021040340200341046a210020032f018a0c21054100210603400240024020052006460d000240024020012000280200200041086a2802002207200220072002491b10880522080d00200720024b0d01200720024721070c030b41012107200841004e0d020b200621050b2004450d032004417f6a2104200320054102746a418c0c6a28020021030c020b200641016a21062000410c6a210020070d000b0b20032006417f6a4107746a4188016a0f0b41000bc40302027f027e230041306b22042400200441286a41002802b8f541360200200441002902b0f54137032002400240024002400240024002402001200141e0006a2205200441206a10d5010d004130102f22010d010c060b2004410036021c20042005360218200441eca2c000360214200420013602102004200441106a2002200310910420042802004101460d0102400240200428020422020d004200210642002107410021010c010b200441086a29030022064220882207a72205417f4c0d050240024020050d00410121010c010b2005102f2201450d070b2001200220051085051a02402006a7450d00200210300b20064280808080708321060b200041086a200720068437020020002001360204200041003602000c030b200141003a000020012005290000370001200141096a200541086a290000370000200141116a200541106a290000370000200141196a200541186a2900003700000c010b200428020421010b02400240024020012d00000e0402020002010b200141086a280200450d01200141046a28020010300c010b200141286a280200450d00200141246a28020010300b20011030200041013602000b200441306a24000f0b102c000b102a000b890501057f230041e0026b22022400024002400240200128020822032d00600d0020012802042104200241206a2001280200220141c0006a10e902200241c0006a200110ea02200241c0026a41186a200241206a41186a280200360200200241c0026a41106a200241206a41106a290300370300200241c0026a41086a200241206a41086a290300370300200220022903203703c002200241e0006a41186a200241c0006a41186a280200360200200241e0006a41106a200241c0006a41106a290300370300200241e0006a41086a200241c0006a41086a29030037030020022002290340370360200241c0016a2004200241c0026a200241e0006a10eb02200241086a2204200241c0016a41086a290300370300200241106a2205200241c0016a41106a290300370300200241186a2206200241c0016a41186a290300370300200220022903c001370300200241e0006a200241c0016a41206a41e0001085051a200241c0016a200241e0006a41e0001085051a02402003280224450d002003106c0b2003200241c0016a41e000108505220141f9006a2006290300370000200141f1006a2005290300370000200141e9006a2004290300370000200141e1006a2002290300370000200141013a006020004100360208200042013702004120102f2201450d02200242203702c401200220013602c001200241c0016a200241201064200020022802c001220120022802c801106420022802c401450d01200110300c010b20004100360208200042013702004120102f2201450d01200242203702c401200220013602c001200241c0016a200341e1006a41201064200020022802c001220120022802c801106420022802c401450d00200110300b200241e0026a24000f0b102a000b8a0201057f230041206b22022400024002400240200128020422030d004100210420004100360204200041106a41003602000c010b20012802002104200321050240034020032f018a0c2106024020040d002004450d020c040b2004450d032004417f6a2104200320064102746a418c0c6a2802002103200528028c0c21050c000b0b2000200436020c200041003602082000200536020420002004360200200041146a2006360200200041106a2003360200200128020821040b20002004360218200241206a24000f0b200241146a410136020020024201370204200241f4a9c2003602002002410436021c200241eca9c2003602182002200241186a360210200241fca9c200103a000b980203047f017e017f230041206b220224000240024002402001419c016a28020022030d004100210441002103410021010c010b2001280298012205ad4220862106200321040240034020032f01d6092107024020050d002005450d020c040b2005450d0320064280808080707c21062005417f6a2105200320074102746a41d8096a280200210320042802d80921040c000b0b200141a0016a28020021010b20002001360218200020063702082000200436020420002005360200200041146a2007360200200041106a2003360200200241206a24000f0b200241146a410136020020024201370204200241f4a9c2003602002002410436021c200241eca9c2003602182002200241186a360210200241fca9c200103a000bf67007027f057e037f017e417f017e047f230041c0096b2204240002404101102f2205450d00200541003a0000410041003502e0ac42200441f8076aad22067c42adfed5e4d485fda8d8007e42218922073e02e0ac42200441e0016a41e0acc200ad220842a4bb99fed1a0bbb023852209420042adfed5e4d485fda8d8004200108405200441c0016a200742a4bb99fed1a0bbb02385420042adfed5e4d485fda8d8004200108405200441d0016a200842c5ecb3fec9ecf7c2c30085220a420042adfed5e4d485fda8d8004200108405200441b0016a200742c5ecb3fec9ecf7c2c30085420042adfed5e4d485fda8d8004200108405200441a0016a2007200885420042adfed5e4d485fda8d8004200108405200441f8076a418de2c10041011065200441c4026a200441f8076a41186a220b290000370200200441bc026a200441f8076a41106a220c290000370200200441b4026a200441f8076a41086a220d290000370200200441a4026a428180808010370200200441f0016a41286a4200370300200441f0016a41246a41bcf5c100360200200420042900f8073702ac02200420053602a002200441003602900220042007200441e0016a41086a29030020042903e001857c200441a0016a41086a29030020042903a0018542cf829ebbefefde82147c220e893703f0012004200441b0016a41086a29030020042903b0018520087c200e423088893703880220042007200441d0016a41086a29030020042903d001857c200e42208889370380022004200441c0016a41086a29030020042903c0018520087c200e421088893703f801200441d0026a41186a200341186a280200360200200441d0026a41106a200341106a290200370300200441d0026a41086a200341086a290200370300200420032902003703d002200441d8056a410772210f200441f8076a4101722110200441f8056a41e0006a2111200441d1066a211220044198056a4107722113200441f4046a2114200441f8076a410c6a211520044190036a41076a2116200441f8076a410b6a2117200441f8076a410d6a2118200441f8076a410e6a2119200441f8076a410f6a211a200441f8076a41116a211b200441f8076a41126a211c200441f8076a41136a211d200441f8076a41156a211e200441f8076a41166a211f200441f8076a41196a2120200441f8076a411a6a2121200441f8076a411b6a2122200441f8076a411c6a2123200441f8076a411d6a2124200441f8076a411e6a2125200441f8076a411f6a212620044199086a21272004419a086a21282004419b086a21294100212a4100212b4100212c41002802e88f42222d212e0240024002400240024002400240024003400240024020042802e8022203450d0020042003417f6a3602e802200441d0026a410020042802d4021b222f280200213002400240202f2802082231202f28020422032f01d6094f0d00200321050c010b03400240200328020022050d00410021050c020b203041016a213020032f01d409213120052103203120052f01d6094f0d000b0b024002402030450d00203141027420056a41dc096a280200210302402030417f6a2230450d00034020032802d80921032030417f6a22300d000b0b410021300c010b203141016a2130200521030b202f2003360204202f4100360200202f2030360208200441f8076a2005203141e4006c6a4188016a10fa0320042802940822320d010b200441d8056a41186a200241186a280200360200200441d8056a41106a200241106a290200370300200441d8056a41086a200241086a290200370300200420022902003703d8054101102f2203450d0a200341003a0000410041003502e0ac4220067c42adfed5e4d485fda8d8007e42218922073e02e0ac42200441c0006a41e0acc200ad220e42a4bb99fed1a0bbb02385420042adfed5e4d485fda8d8004200108405200441206a200742a4bb99fed1a0bbb02385420042adfed5e4d485fda8d8004200108405200441306a200e42c5ecb3fec9ecf7c2c30085420042adfed5e4d485fda8d8004200108405200441106a200742c5ecb3fec9ecf7c2c30085420042adfed5e4d485fda8d800420010840520042007200e85420042adfed5e4d485fda8d8004200108405200441f8076a418de2c10041011065200441e4036a200441f8076a41186a290000370200200441dc036a200441f8076a41106a290000370200200441d4036a200441f8076a41086a2230290000370200200441c4036a428180808010370200200441b8036a420037030020044190036a41246a41bcf5c100360200200420042900f8073702cc03200420033602c003200441003602b00320042007200441c0006a41086a2903002004290340857c200441086a29030020042903008542cf829ebbefefde82147c220889370390032004200441106a41086a290300200429031085200e7c2008423088893703a80320042007200441306a41086a2903002004290330857c2008422088893703a0032004200441206a41086a290300200429032085200e7c20084210888937039803200141e3006a280000210c200141ea006a2801002133200141f1006a280000210b200141f8006a22032802002114200141fc006a2802002134200141e2006a2d00002135200141e7006a2f00002136200141e9006a2d00002137200141ee006a2f01002138200141f0006a22052d00002110200141f5006a2f00002111200141f7006a2d0000213920012f0160213a200420013602d002200420044190036a3602d402200441b8046a41186a2003290200370300200441b8046a41106a2005290200370300200441b8046a41086a200141e8006a290200370300200420012902603703b804200441f8076a200441d0026a41c4a2c000200441b8046a10fe0220042802fc07210520042802f8072103200441f8066a20304180011085051a20034101460d05200441f8056a200441f8066a4180011085051a20044184076a2205200441d8056a41086a2903003702002004418c076a200441e8056a29030037020020044194076a200441f0056a2802002203360200200441f8066a41246a202e202b41186c6a222f360200200441013602f806200420042903d8053702fc062004202e3602980702400240024002400240024002402003450d0020042003417f6a36029407200441f8066a4104724100200441f8066a41086a223b28020022031b223c2802002130024002402005410820031b223d2802002231203b410420031b223b28020022052f018a0c4f0d00200521030c010b03400240200528020022030d00410021030c020b203041016a213020052f01880c213120032105203120032f018a0c4f0d000b0b024002402030450d00203141027420036a41900c6a280200210502402030417f6a2230450d000340200528028c0c21052030417f6a22300d000b0b410021300c010b203141016a2130200321050b203b2005360200203d2030360200203c410036020002400240200320314107746a22304188016a28020022054106490d0020304194016a280200210520304190016a28020021300c010b20304190016a21300b2030450d062005450d0620032031410c6c6a2203410c6a213b200341046a210320302005417f6a41186c6a223028020022050d01410021050c020b41002105200441003602f806202f202e460d0e2004202e41186a220336029807202e28020c22300d020c030b203028020821310b203b280200213b2003280200213c417f20044194076a2802002203202f202e6b41186e6a223020302003491b21030c020b202e2802142131203021050b202e280208213b202e280200213c202f20036b41186e21030b417f200341016a223020302003491b220341ffffffff00712003470d0720034104742203417f4c0d072003102f223e450d0b203e203136020c203e2005360208203e203b360204203e203c360200200441f8076a41206a200441f8066a41206a290300370300200441f8076a41186a200441f8066a41186a290300370300200441f8076a41106a200441f8066a41106a290300370300200441f8076a41086a223d200441f8066a41086a290300370300200420042903f8063703f8072003410476213f200441f8076a410c6a2140200441f8076a410472214141012142024002400240034002400240024002400240024020042802f8074101470d0002402004280294082203450d0020042003417f6a360294082041410020042802800822031b222f2802002130024002402040410820031b223b2802002231203d410420031b223c28020022052f018a0c4f0d00200521030c010b03400240200528020022030d00410021030c020b203041016a213020052f01880c213120032105203120032f018a0c4f0d000b0b024002402030450d00203141027420036a41900c6a280200210502402030417f6a2230450d000340200528028c0c21052030417f6a22300d000b0b410021300c010b203141016a2130200321050b203c2005360200203b2030360200202f410036020020032031410c6c6a2205410c6a2802002130200541046a280200212f02400240200320314107746a22054188016a28020022034106490d0020054194016a280200210320054190016a28020021050c010b20054190016a21050b2005450d0a2003450d0a20052003417f6a41186c6a220328020022050d02410021050c030b200441003602f8070b2004280298082203450d07200428029c082003460d072004200341186a3602980802400240200328020c22050d00410021050c010b200341146a28020021310b200328020821302003280200212f203f2042470d0420042802980822030d02410021030c030b200328020821310b203f2042470d022004280294082103200428029808223b450d01417f2003200428029c08203b6b41186e6a223b203b2003491b21030c010b200428029c0820036b41186e21030b2042417f200341016a223b203b2003491b6a22032042490d0c2042410174223b2003203b20034b1b22034104200341044b1b220341ffffffff0071200346410274213b200341047421030240024020420d0020044100360298050c010b2004203e36029805200441043602a0052004204241047436029c050b20044198046a2003203b20044198056a106920042802a00421032004280298044101460d02200428029c04213e2003410476213f0b203e20424104746a22032005360208200320303602042003202f3602002003410c6a2031360200204241016a21420c000b0b2003450d090c0d0b0240204241144b0d00204241014d0d072042410474203e6a41606a21034101210503402003200541016a220510b602200341706a210320422005470d000c080b0b2042410176220341ffffffff00712003470d0820034104742243417f4c0d082043102f2244450d0c203e41706a2132203e41506a210141002802e88f42214541002146410021472042214803402048213b41002148410121030240203b417f6a2205450d0002400240203e20054104746a2203280200203e203b417e6a22484104746a2205280200222f2005280204220520032802042203200320054b1b10880522300d00417f200320054720032005491b21030c010b417f410120304100481b21030b0240024002400240024002402003417f460d002001203b4104746a21304102210303400240203b2003470d0041002148203b21030c080b024002400240202f2030280200223c203041046a28020022312005200520314b1b108805222f0d00200520314f0d010c020b202f4100480d010b203041706a2130200341016a210320312105203c212f0c010b0b203b20036b21480c010b203b410274213c2001203b4104746a210302400340024020480d00410021480c020b02400240202f20032802002231200341046a28020022302005200520304b1b108805222f0d00200520304f0d030c010b202f417f4a0d020b2048417f6a2148200341706a2103203021052031212f0c000b0b203b2048490d01203b20424b0d02203b20486b22034101762231450d00203e20484104746a21052032203c4102746a21300340200441f8076a41086a222f200541086a223c290200370300200420052902003703f807203041086a223d290200210720052030290200370200203c2007370200203d202f290300370200203020042903f807370200200541106a2105203041706a21302031417f6a22310d000b0b2048450d04200341094b0d04203b20424b0d02203b20486b21032048417f6a2105203220484104746a21300340203b2005490d0b2030200341016a220310b6022005417f6a223120054f0d04203041706a2130203121052003410a490d000c040b0b2048203b41ccf7c0001048000b203b204241ccf7c0001042000b203b2048417f6a2205490d07203b204241dcf7c0001042000b203141016a21480b024020472046470d00204641016a22052046490d0a204641017422302005203020054b1b22054104200541044b1b220541ffffffff01712005464102742130200541037421050240024020460d00200441003602f8070c010b2004410436028008200420453602f807200420464103743602fc070b200441f8066a20052030200441f8076a10692004280280072105024020042802f8064101470d0020050d0f0c0b0b20042802fc062145200541037621460b204520474103746a2205200336020420052048360200204741016a22492147024020494102490d0003400240024002400240204520492247417f6a22494103746a2203280200450d00204741037420456a223141746a2802002230200328020422054d0d00204741024d0d0520452047417d6a224a4103746a2802042203200520306a4d0d01204741034d0d05203141646a280200200320306a4b0d050c010b20474103490d012003280204210520452047417d6a224a4103746a28020421030b20032005490d010b2047417e6a214a0b02400240024002402047204a41016a22034d0d0002402047204a4d0d0002402045204a4103746a224b280204220d204b2802006a2205204520034103746a224c280200224d490d000240200520424b0d00204b41046a214e203e204d4104746a2230204c280204224f41047422316a21032005410474212f02402005204d6b223b204f6b2205204f490d00204420302031108505220520316a21310240204f41014e0d00200521050c080b203b204f4a0d06200521050c070b2044200320054104742231108505224120316a2131204f4101480d0420054101480d042032202f6a2105034002400240203141706a222f280200200341706a223b280200203b280204223c202f280204223d203d203c4b1b10880522400d00417f203d203c47203d203c491b213c0c010b417f410120404100481b213c0b2005203b202f203c417f46223c1b223d290200370200200541086a203d41086a2902003702002031202f203c1b21312030203b2003203c1b22034f0d05200541706a2105203120414b0d000c050b0b20052042418cf8c0001042000b204d2005418cf8c0001048000b204a204741fcf7c0001033000b2003204741ecf7c0001033000b20412105200321300c010b203e202f6a213d20052105034002400240200328020020052802002005280204222f2003280204223b203b202f4b1b108805223c0d00417f203b202f47203b202f491b212f0c010b417f4101203c4100481b212f0b203020032005202f417f46222f1b223b290200370200203041086a203b41086a2902003702002005200541106a202f1b2105203041106a2130200341106a2003202f1b2203203d4f0d0120052031490d000b0b20302005203120056b4170711085051a204e200d204f6a360200204b204d360200204c204c41086a2047204a6b41037441706a1086051a41012147204941014b0d000b0b2048450d060c000b0b418486c20041fc00418087c2001050000b418486c20041fc00418087c2001050000b200441f0026a41186a200b2802002203360200200441f0026a41106a200c2903002207370300200441f0026a41086a200d290300220e370300200420042903f80722503703f002200441f8036a41186a222f2003360200200441f8036a41106a223b2007370300200441f8036a41086a223c200e370300200420503703f80320044198046a10ce014101102f2203450d09200341003a0000410041003502e0ac4220067c42adfed5e4d485fda8d8007e42218922073e02e0ac4220044190016a2009420042adfed5e4d485fda8d8004200108405200441f0006a200742a4bb99fed1a0bbb02385420042adfed5e4d485fda8d800420010840520044180016a200a420042adfed5e4d485fda8d8004200108405200441e0006a200742c5ecb3fec9ecf7c2c30085420042adfed5e4d485fda8d8004200108405200441d0006a2007200885420042adfed5e4d485fda8d8004200108405200441f8076a418de2c10041011065201441186a200b290000370000201441106a200c290000370000201441086a200d290000370000201420042900f80737000020044281808080103702ec04200420033602e804200442003703e004200441bcf5c1003602dc04200441003602d8042004200441e0006a41086a29030020042903608520087c200441d0006a41086a29030020042903508542cf829ebbefefde82147c220e423088893703d0042004200720044180016a41086a290300200429038001857c200e422088893703c8042004200441f0006a41086a29030020042903708520087c200e421088893703c0042004200720044190016a41086a290300200429039001857c200e893703b8042032280208220541176a2203417f4c0d05203228020021300240024020030d00410121310c010b2003102f2231450d0a0b2004410036028008200420033602fc07200420313602f807200441f8076a418b90c200411710fd02200441f8076a2030200510fd0220042802fc072139200441f8066a200120042802f807225120042802800810e7020240024020042802f8064101470d0020044198056a41186a20044198046a41186a29030037030020044198056a41106a20044198046a41106a29030037030020044198056a41086a20044198046a41086a2903003703002004200429039804370398050c010b024020042802fc062203450d0002402004290380072207422088a72205450d00200420032d00003a00fc0720054101460d00200420032d00013a00fd0720054102460d00200420032d00023a00fe0720054103460d00200420032d00033a00ff0720054104460d00200d20032d00043a000020054105460d00200441f8076a41096a20032d00053a000020054106460d00200441f8076a410a6a20032d00063a000020054107460d00201720032d00073a000020054108460d00201520032d00083a000020054109460d00201820032d00093a00002005410a460d00201920032d000a3a00002005410b460d00201a20032d000b3a00002005410c460d00200c20032d000c3a00002005410d460d00201b20032d000d3a00002005410e460d00201c20032d000e3a00002005410f460d00201d20032d000f3a000020054110460d00200441f8076a41146a223020032d00103a000020054111460d00201e20032d00113a000020054112460d00201f20032d00123a000020054113460d00200441f8076a41176a20032d00133a000020054114460d00200b20032d00143a000020054115460d00202020032d00153a000020054116460d00202120032d00163a000020054117460d00202220032d00173a000020054118460d00202320032d00183a000020054119460d00202420032d00193a00002005411a460d00202520032d001a3a00002005411b460d00202620032d001b3a00002005411c460d00200441f8076a41206a20032d001c3a00002005411d460d00202720032d001d3a00002005411e460d00202820032d001e3a00002005411f460d00202920032d001f3a000020042f00950820262d000041107472410874200428009108220541187672214f20042f01fc0720042d00fe0741107472213d20042f00830820182d000041107472213120042f018a0820302d0000411074722130200428008d082141200428018608214720042800ff072142200428029808214002402007a7450d00200310300b200420053b00ad0520044198056a41176a20054110763a0000200420303b01a60520044198056a41106a20304110763a0000200420313b009f0520044198056a41096a20314110763a0000200420403602b4052004204f3602b005200420413600a905200420473601a2052004204236009b052004203d3b0198052004203d4110763a009a050c020b2007a7450d00200310300b20044198056a41186a20044198046a41186a29030037030020044198056a41106a20044198046a41106a29030037030020044198056a41086a20044198046a41086a2903003703002004200429039804370398050b200420013602b8052004200441b8046a3602bc0520322802002103200420322802083602d005200420033602cc052004200441b8056a3602c805200441d8056a41186a20044198056a41186a223a290300370300200441d8056a41106a20044198056a41106a2243290300370300200441d8056a41086a223520044198056a41086a225229030037030020042004290398053703d805200441f8076a200441c8056a4180a3c000200441d8056a10fe0220042802fc07210520042802f8072103200441f8066a200d4180011085051a024002400240024002400240024020034101460d00200441f8056a200441f8066a4180011085051a200441f8066a41186a2236202f2802002203360200200441f8066a41106a2237203b290300370300200441f8066a41086a2238203c290300370300200420042903f8033703f8062003450d0220042003417f6a223b36029007200441f8066a410020042802fc061b222f280200213002400240202f2802082231202f28020422052f018a0c4f0d00200521030c010b03400240200528020022030d00410021030c020b203041016a213020052f01880c213120032105203120032f018a0c4f0d000b0b024002402030450d00203141027420036a41900c6a280200210502402030417f6a2230450d000340200528028c0c21052030417f6a22300d000b0b410021300c010b203141016a2130200321050b202f2005360204202f4100360200202f203036020802400240200320314107746a22304188016a28020022054106490d0020304194016a280200210520304190016a28020021300c010b20304190016a21300b02400240024002402030450d002005450d000240024020302005417f6a41186c6a220528020022300d00410021300c010b2005280208212f0b417f203b41016a22052005203b491b220541ffffffff00712005470d1020054104742205417f4c0d1020032031410c6c6a2203410c6a2802002131200341046a28020021032005102f223e450d14203e202f36020c203e2030360208203e2031360204203e2003360200200b20362802002203360200200c2037290300370300200d2038290300370300200420042903f8063703f8072005410476213f024020030d00410121490c040b20042003417f6a223b36029008200441f8076a410020042802fc071b222f280200213002400240202f2802082231202f28020422052f018a0c4f0d00200521030c010b03400240200528020022030d00410021030c020b203041016a213020052f01880c213120032105203120032f018a0c4f0d000b0b024002402030450d00203141027420036a41900c6a280200210502402030417f6a2230450d000340200528028c0c21052030417f6a22300d000b0b410021300c010b203141016a2130200321050b202f2005360204202f4100360200202f2030360208200320314107746a4188016a210520032031410c6c6a41046a210341012149024002400340200328020821302003280200213102400240200528020022034106490d00200528020c2103200528020821050c010b200541086a21050b2005450d022003450d020240024020052003417f6a41186c6a220328020022050d00410021050c010b2003280208212f0b0240203f2049470d00203f417f203b41016a22032003203b491b6a2203203f490d14203f410174223b2003203b20034b1b22034104200341044b1b220341ffffffff0071200346410274213b2003410474210302400240203f0d00200441003602b0090c010b2004203e3602b009200441043602b8092004203f4104743602b4090b200441a0096a2003203b200441b0096a106920042802a809210320042802a0094101460d0220042802a409213e2003410476213f0b203e20494104746a2203200536020820032030360204200320313602002003410c6a202f360200204941016a214902402004280290082203450d0020042003417f6a223b36029008200441f8076a410020042802fc071b222f280200213002400240202f2802082231202f28020422052f018a0c4f0d00200521030c010b03400240200528020022030d00410021030c020b203041016a213020052f01880c213120032105203120032f018a0c4f0d000b0b024002402030450d00203141027420036a41900c6a280200210502402030417f6a2230450d000340200528028c0c21052030417f6a22300d000b0b410021300c010b203141016a2130200321050b202f2005360204202f4100360200202f2030360208200320314107746a4188016a210520032031410c6c6a41046a21030c010b0b0240204941144b0d00204941014d0d06203e20494104746a41606a21034101210503402003200541016a220510b602200341706a210320492005470d000c070b0b2049410176220341ffffffff00712003470d1220034104742253417f4c0d122053102f2246450d16203e41706a2134203e41506a215441002133202d214a41002147204921440340024002402044223b417f6a22030d0041012103410021440c010b02400240203e20034104746a2203280200203e203b417e6a22444104746a2205280200222f2005280204220520032802042203200320054b1b10880522300d00417f200320054720032005491b21030c010b417f410120304100481b21030b0240024002400240024002402003417f460d002054203b4104746a21304102210303400240203b2003470d0041002144203b21030c080b024002400240202f2030280200223c203041046a28020022312005200520314b1b108805222f0d00200520314f0d010c020b202f4100480d010b203041706a2130200341016a210320312105203c212f0c010b0b203b20036b21440c010b203b410274213c2054203b4104746a210302400340024020440d00410021440c020b02400240202f20032802002231200341046a28020022302005200520304b1b108805222f0d00200520304f0d030c010b202f417f4a0d020b2044417f6a2144200341706a2103203021052031212f0c000b0b203b2044490d01203b20494b0d02203b20446b22034101762231450d00203e20444104746a21052034203c4102746a21300340200d200541086a222f290200370300200420052902003703f807203041086a223c290200210720052030290200370200202f2007370200203c200d290300370200203020042903f807370200200541106a2105203041706a21302031417f6a22310d000b0b2044450d04200341094b0d04203b20494b0d02203b20446b21032044417f6a2105203420444104746a21300340203b2005490d0a2030200341016a220310b6022005417f6a223120054f0d04203041706a2130203121052003410a490d000c040b0b2044203b41ccf7c0001048000b203b204941ccf7c0001042000b203b2044417f6a2205490d06203b204941dcf7c0001042000b203141016a21440b024020472033470d00203341016a22052033490d14203341017422302005203020054b1b22054104200541044b1b220541ffffffff01712005464102742130200541037421050240024020330d00200441003602f8070c010b20044104360280082004204a3602f807200420334103743602fc070b200441f8066a20052030200441f8076a10692004280280072105024020042802f8064101470d0020050d190c150b20042802fc06214a200541037621330b204a20474103746a2205200336020420052044360200204741016a224c21470240204c4102490d0003400240024002400240204a204c2247417f6a224c4103746a2203280200450d002047410374204a6a223141746a2802002230200328020422054d0d00204741024d0d05204a2047417d6a224f4103746a2802042203200520306a4d0d01204741034d0d05203141646a280200200320306a4b0d050c010b20474103490d0120032802042105204a2047417d6a224f4103746a28020421030b20032005490d010b2047417e6a214f0b02400240024002402047204f41016a22034d0d0002402047204f4d0d000240204a204f4103746a2245280204224e20452802006a2205204a20034103746a224d280200224b490d000240200520494b0d00204541046a2148203e204b4104746a2230204d280204224241047422316a21032005410474212f02402005204b6b223b20426b22052042490d00204620302031108505220520316a21310240204241014e0d00200521050c080b203b20424a0d06200521050c070b2046200320054104742231108505224120316a213120424101480d0420054101480d042034202f6a2105034002400240203141706a222f280200200341706a223b280200203b280204223c202f280204223d203d203c4b1b10880522400d00417f203d203c47203d203c491b213c0c010b417f410120404100481b213c0b2005203b202f203c417f46223c1b223d290200370200200541086a203d41086a2902003702002031202f203c1b21312030203b2003203c1b22034f0d05200541706a2105203120414b0d000c050b0b20052049418cf8c0001042000b204b2005418cf8c0001048000b204f204741fcf7c0001033000b2003204741ecf7c0001033000b20412105200321300c010b203e202f6a213d20052105034002400240200328020020052802002005280204222f2003280204223b203b202f4b1b108805223c0d00417f203b202f47203b202f491b212f0c010b417f4101203c4100481b212f0b203020032005202f417f46222f1b223b290200370200203041086a203b41086a2902003702002005200541106a202f1b2105203041106a2130200341106a2003202f1b2203203d4f0d0120052031490d000b0b20302005203120056b4170711085051a2048204e20426a3602002045204b360200204d204d41086a2047204f6b41037441706a1086051a41012147204c41014b0d000b0b2044450d050c000b0b20030d150c110b418486c20041fc00418087c2001050000b418486c20041fc00418087c2001050000b2005203b41dcf7c0001048000b0240203341ffffffff0171450d00204a10300b2053450d00204610300b2049450d01203e20494104746a213d203e21030240034020032802002230450d03200341046a2802002131024002400240200341086a280200222f0d00200441f8076a200441f8056a2030203110ff0220042802fc07210520042802f8074101460d0420042903800821070c010b2003410c6a280200210520044100360280090240024020042d00d0064101460d004100213b0c010b200441c4056a41026a201241026a2d00003a00002038201141086a2902003703002037201141106a2902003703002036201141186a2d00003a0000200420122f00003b01c405200420112902003703f8064101213b0b20042802d406213c201020042f01c4053b0000200d20042903f806370200201041026a200441c4056a41026a2d00003a0000200d41086a2038290300370200200d41106a2037290300370200200d41186a20362802003602002004203b3a00f8072004203c3602fc07200441003602a809200420313602a409200420303602a0092005417f4c0d100240024020050d00410121300c010b2005102f2230450d150b200420053602b409200420303602b0092030202f20051085051a200420053602b80920044190096a200441f8056a200441f8076a200441a0096a200441b0096a20044180096a10800320042802940921052004280290094101460d01200420053602d406200441003a00d006200428028009210520042902840921070b02402005450d002007a7450d00200510300b200341106a2203203d470d010c040b0b2004280280092203450d00200428028409450d00200310300b0240203f41ffffffff0071450d00203e10300b200441f8056a10b1010b20052d00000e0404040304020b203f41ffffffff0071450d00203e10300b200441f8056a10b101200441f8066a41026a20042d00da0522033a0000200d200f41086a290000370300200c200f41106a290000370300200b200f41186a2d00003a0000200420042f01d80522053b01f8062004200f2900003703f807200420053b019805200420033a009a05200420042800db0536009b05201320042903f807370000201341086a200d290300370000201341106a200c290300370000201341186a200b2d00003a00000c030b200541286a280200450d01200541246a28020010300c010b200541086a280200450d00200541046a2802001030200510300c010b200510300b20044198056a20044198046a41201088052105200b203a290300370300200c2043290300370300200d205229030037030020042004290398053703f8072016200441b8046a41e000108505210302402039450d00205110300b200441f8056a41186a200b290300370300200441f8056a41106a200c290300370300200441f8056a41086a200d290300370300200420042903f8073703f805200441f8066a200341e0001085051a2032280208223041176a2203417f4c0d05203228020021310240024020030d004101212f0c010b2003102f222f450d0a0b200d4100360200200420033602fc072004202f3602f807200441f8076a418b90c200411710fd02200441f8076a2031203010fd022035200d280200360200200420042903f8073703d805200441f8076a200441f8066a41e0001085051a200441f0016a200441f8076a10c2030240024020050d00200441b8046a41086a22052035280200360200200420042903d8053703b8040240202b202c470d00202b41016a2203202b490d08202b41017422302003203020034b1b22034104200341044b1bad42187e2207422088a74541027421032007a7213002400240202b0d00200441003602f8070c010b20044104360280082004202e3602f8072004202b41186c3602fc070b20044190036a20302003200441f8076a1069200428029803210302402004280290034101470d0020030d0d0c090b200428029403212e200341186e212c0b202e202b41186c6a220320042903b804370200200528020021052003410036020c200341086a20053602000c010b200d2035280200360200200420042903d8053703f8072004410036028c0820044201370284084120102f2203450d0a2004422037029403200420033602900320044190036a200441f8056a412010642015200428029003220320042802980310640240200428029403450d00200310300b0240202b202c470d00202b41016a2203202b490d07202b41017422052003200520034b1b22034104200341044b1bad42187e2207422088a74541027421032007a7210502400240202b0d0020044100360290030c010b20044104360298032004202e360290032004202b41186c360294030b200441b8046a2005200320044190036a106920042802c0042103024020042802b8044101470d0020030d0c0c080b20042802bc04212e200341186e212c0b202e202b41186c6a220320042903f807370200200341106a200c290300370200200341086a200d2903003702000b202a41186a212a202b41016a212b0c000b0b2005203b41dcf7c0001048000b0240204641ffffffff0171450d00204510300b2043450d00204410300b2042450d02203e20424104746a2147200441f8076a41086a2130200441f8076a410172213c200441d8066a213d200441d1066a2142203e21030240034020032802002231450d04200341046a280200212f024002400240200341086a280200223b0d00200441f8076a200441f8056a2031202f10ff0220042802fc07210520042802f8074101460d0420042903800821070c010b2003410c6a2802002105200441003602f0020240024020042d00d0064101460d00410021400c010b200441c4056a41026a204241026a2d00003a0000200441f8066a41086a203d41086a290200370300200441f8066a41106a203d41106a290200370300200441f8066a41186a203d41186a2d00003a0000200420422f00003b01c4052004203d2902003703f806410121400b20042802d4062141203c20042f01c4053b0000203020042903f806370200203c41026a200441c4056a41026a2d00003a0000203041086a200441f8066a41086a290300370200203041106a200441f8066a41106a290300370200203041186a200441f8066a41186a280200360200200420403a00f807200420413602fc07200441003602a0042004202f36029c0420042031360298042005417f4c0d050240024020050d00410121310c010b2005102f2231450d0a0b2004200536029c0520042031360298052031203b20051085051a200420053602a005200441f8036a200441f8056a200441f8076a20044198046a20044198056a200441f0026a10800320042802fc03210520042802f8034101460d01200420053602d406200441003a00d00620042802f002210520042902f40221070b02402005450d002007a7450d00200510300b200341106a22032047470d010c050b0b20042802f0022203450d0020042802f402450d00200310300b0240203f41ffffffff0071450d00203e10300b200441f8056a10b1010b20394110742103201041107421312037411074212f2035411074213b02400240024020052d00000e0402020002010b200541086a280200450d01200541046a28020010300c010b200541286a280200450d00200541246a28020010300b20112003722130203820317221312036202f72212f203a203b722103200510300c030b102c000b203f41ffffffff0071450d00203e10300b200441f8056a10b10120042f01b80420042d00ba0441107472210320042f00cd04200441cf046a2d000041107472213020042f01c604200441b8046a41106a2d000041107472213120042f00bf04200441c1046a2d000041107472212f20042800bb04210c20042801c204213320042800c904210b20042802d004211420042802d40421340b200441f8076a20044190036a41e0001085051a200041176a20304110763a0000200020303b0015200041106a20314110763a0000200020313b000e200041096a202f4110763a00002000202f3b0007200041026a20034110763a0000200020033b01002000203436001c200020143600182000200b3600112000203336000a2000200c360003200441f8066a200441f8076a41e0001085051a200441f8076a200441f8066a41e0001085051a200441f0016a200441f8076a10c203200041206a200441f0016a41e0001085051a0240202b450d00202e210303400240200341046a280200450d00200328020010300b02402003410c6a2802002205450d00200341106a280200450d00200510300b200341186a2103202a41686a222a0d000b0b0240202c450d00202c41186c450d00202e10300b200441c0096a24000f0b102a000bbd0402037f017e230041206b22052400024002400240024002400240024002400240200128020022064198016a2002280200200228020810ed022207450d0020072003200410e6022207450d0002400240200728020022024106490d00200728020c2102200728020821010c010b200741086a21010b2001450d022002450d0202400240024020012002417f6a41186c6a2201280200450d0020062802000d06200141086a22023502002108200641003602002006200629030842017c3703082006280210450d0141b082c2004110200541186a41c082c20041c483c2001034000b20062802000d0641002101200641003602002006200629030842017c37030820062802100d07200641003602100c010b20064100360210200641186a2206200629030020087c37030020022802002202417f4c0d07200128020021060240024020020d00410121010c010b2002102f2201450d090b2001200620021085051a0b2000200236020420002001360200200041086a20023602000c010b200541086a200128020420022003200410ee0220052802084101460d072000200529020c370200200041086a200541146a2802003602000b200541206a24000f0b418486c20041fc00418087c2001050000b41b082c2004110200541186a41c082c20041b483c2001034000b41b082c2004110200541186a41c082c20041b483c2001034000b41b082c2004110200541186a41c082c20041c483c2001034000b102c000b102a000b41d488c1004130200541186a41dcfcc00041fcfcc0001034000bc70101067f024020002802042203450d00200028020021040340200341046a210020032f01d60921054100210603400240024020052006460d000240024020012000280200200041086a2802002207200220072002491b10880522080d00200720024b0d01200720024721070c030b41012107200841004e0d020b200621050b2004450d032004417f6a2104200320054102746a41d8096a28020021030c020b200641016a21062000410c6a210020070d000b0b20032006417f6a41e4006c6a4188016a0f0b41000bb60704047f017e037f017e230041f0006b220524000240024002402002280208220641176a2207417f4c0d00200228020021020240024020070d00410121080c010b2007102f2208450d020b200541003602182005200736021420052008360210200541106a418b90c200411710fd02200541106a2002200610fd0220052802142107200541106a200120052802102208200528021810e70202402007450d00200810300b0240024020052802104101460d0002400240200528021422070d00200541106a10ce0120054100360208200542013703004120102f2207450d052005422037025420052007360250200541d0006a200541106a412010642005200528025022072005280258106402402005280254450d00200710300b20052802002107200528020821080c010b200541186a290300210920052007360200200520093702042009422088a721080b200541106a41186a220a4200370300200541106a41106a220b4200370300200541106a41086a220c42003703002005420037031020084120470d04200a200741186a290000370300200b200741106a290000370300200c200741086a29000037030020052007290000370310200541306a41086a20063602002005200236023420052001360230200541e0006a41086a41002802b8f541360200200541002902b0f541370360024002400240200541306a200541106a200541e0006a10d4010d004130102f2202450d06200241003a000020022005290310370001200241096a200541186a290300370000200241116a200541206a290300370000200241196a200541286a2903003700000c010b2005410036025c200541a8a3c0003602542005200541106a3602582005200541306a360250200541c0006a200541d0006a20032004109104024020052802404101460d0002400240200528024422060d004200210d42002109410021020c010b200541c8006a290300220d4220882209a72201417f4c0d060240024020010d00410121020c010b2001102f2202450d080b2002200620011085051a0240200da7450d00200610300b200d42808080807083210d0b200041086a2009200d8437020020002002360204200041003602000c020b200528024421020b02400240024020022d00000e0402020002010b200241086a280200450d01200241046a28020010300c010b200241286a280200450d00200241246a28020010300b20021030200041013602000b2005280204450d01200710300c010b200041013602000b200541f0006a24000f0b102c000b102a000b41202008418c91c200105b000b150020004200370204200041002802e88f423602000b6501037f2001280204210220012802002103024020012802082201450d00200141047421042003210103400240200141046a280200450d00200128020010300b200141106a2101200441706a22040d000b0b0240200241ffffffff0071450d00200310300b0bc80302037f017e230041106b22032400024002400240024002400240024002402000280200220441c0006a2001200210e6022205450d0002400240200528020022014106490d00200528020c2101200528020821050c010b200541086a21050b2005450d022001450d02024020052001417f6a41186c6a2205280200450d0020042802000d04200541086a3502002106200441003602002004200429030842017c37030820042802100d0520044100360210200441186a2204200429030020067c370300200528020021050c020b20042802000d0541002105200441003602002004200429030842017c37030820042802100d06200441003602100c010b200320002802042001200210e70220032802004101460d060240200328020422050d00410021050c010b200341086a280200450d00200510300b200341106a240020054100470f0b418486c20041fc00418087c2001050000b41b082c2004110200341c082c20041b483c2001034000b41b082c2004110200341c082c20041c483c2001034000b41b082c2004110200341c082c20041b483c2001034000b41b082c2004110200341c082c20041c483c2001034000b41d488c1004130200341dcfcc000418cfdc0001034000b9a3c05127f017e027f017e037f23004190066b220324000240200041086a2802002204280224450d002004106c0b2004200329039003370300200441003602242004200329039005370328200441206a20034190036a41206a280200360200200441186a20034190036a41186a290300370300200441106a20034190036a41106a290300370300200441086a20034190036a41086a290300370300200441306a20034190056a41086a290300370300200441386a20034190056a41106a290300370300200441c0006a20034190056a41186a290300370300200441c8006a20034190056a41206a290300370300200441d0006a200341b8056a290300370300200441d8006a20034190056a41306a290300370300200441003a0060200441e1006a200329009004370000200441e9006a20034190046a41086a290000370000200441f1006a20034190046a41106a290000370000200441f9006a20034190046a41186a29000037000020044180016a200341af046a29000037000002400240024002400240024002400240024002400240024020012802082204417f4c0d002001280200210520002802002106410121074101210802402004450d002004102f2208450d0c0b2008200520041085052109200341086a200610c302200328020c210a2003280208210b02402004450d002004102f2207450d0c0b200720092004108505210c02400240200641c4006a280200220d450d002006280240210e0c010b418c0c102f220d450d0c4100210e200d41003b018a0c200d41003602002006200d360244200641003602400b02400340200d2f018a0c220f410c6c210741782110200d41046a221121084100211202400340024020070d00200f21120c020b02400240200c2008280200200828020822132004200420134b1b10880522140d0020042013490d03200420134721130c010b4101211320144100480d020b2008410c6a2108201241016a2112201041807f6a2110200741746a210720130d000b02402004450d00200c10300b200d20106b21140c020b0240200e450d00200e417f6a210e200d20124102746a418c0c6a280200210d0c010b0b02400240200f410a4b0d00201241016a210702402012200f4f22130d0020112007410c6c6a20112012410c6c6a200f20126b410c6c1086051a0b20112012410c6c6a22082004360208200820043602042008200c36020020034190056a20034190046a41f8001085051a200d4188016a2108024020130d00200820074107746a200820124107746a200f20126b4107741086051a0b200820124107746a22144200370200201441086a20034190056a41f8001085051a200d200f41016a3b018a0c0c010b410521084100211402400240201241054f0d0041042108201221070c010b41052107024002402012417b6a0e020201000b201241796a210741012114410621080c010b41002107410121140b418c0c102f2213450d0d201341003b018a0c201341003602002013200d2f018a0c220e2008417f736a22123b018a0c20112008410c6c6a221029020421152010280200210f20034190056a200d4188016a221620084107746a4180011085051a0240024002400240024002400240024002402012410c4f0d00200e200841016a22106b2012470d01201341046a20112010410c6c6a2012410c6c1085051a20134188016a201620104107746a20124107741085051a200d20083b018a0c20034190046a20034190056a4180011085051a2013200d20141b220841046a21120240200741016a221420082f018a0c22104b220e0d0020122014410c6c6a20122007410c6c6a201020076b410c6c1086051a0b20122007410c6c6a22122004360208201220043602042012200c36020020034190056a20034190026a41f8001085051a20084188016a21120240200e0d00201220144107746a201220074107746a201020076b4107741086051a0b201220074107746a22144200370200201441086a20034190056a41f8001085051a2008201041016a3b018a0c20034190036a20034190046a4180011085051a20034190016a20034190036a4180011085051a024002400240200d28020022080d00410021160c010b410021162013211720152118200f21190340200d2f01880c211020034190026a20034190016a4180011085051a2008220e2f018a0c2211410b490d024100210d41042108024020104105490d0020102108024002402010417b6a0e020201000b201041796a21104101210d410621080c010b410021104101210d410521080b41bc0c102f2213450d19201341003b018a0c201341003602002013200e2f018a0c221a2008417f736a22073b018a0c200e2008410c6c6a221241086a2902002115201241046a280200210f20034190056a200e4188016a221b20084107746a4180011085051a2007410c4f0d05201a200841016a220c6b2007470d06201341046a201241106a2007410c6c1085051a20134188016a201b200c4107746a20074107741085051a200e20083b018a0c20034190046a20034190056a4180011085051a20132f018a0c220741016a21122007410c4f0d07201120086b22082012470d08201641016a21162013418c0c6a200e200c4102746a418c0c6a20084102741085051a4100210802400340201320084102746a418c0c6a280200221220083b01880c20122013360200200820074f0d01200820082007496a220820074d0d000b0b20034190036a20034190046a4180011085051a2013200e200d1b221241046a210c0240201041016a220820122f018a0c22074b22110d00200c2008410c6c6a200c2010410c6c6a200720106b410c6c1086051a0b200c2010410c6c6a220c2018370204200c201936020020034190056a20034190026a4180011085051a20124188016a210d024020110d00200d20084107746a200d20104107746a200720106b4107741086051a0b200741016a210c200d20104107746a20034190056a4180011085051a2012418c0c6a210d0240201041026a2219200741026a22114f0d00200d20194102746a200d20084102746a200720106b4102741086051a0b200d20084102746a20173602002012200c3b018a0c0240200820114f0d00201220104102746a41900c6a2108034020082802002207201041016a22103b01880c20072012360200200841046a2108200c2010470d000b0b20034190016a20034190036a4180011085051a200e210d2013211720152118200f2119200e28020022080d000b0b200341106a20034190016a4180011085051a20062802442207450d072006280240211241bc0c102f2208450d172008200736028c0c200841003b018a0c20084100360200200741003b01880c20072008360200200620083602442006201241016a36024020122016470d0820082f018a0c2207410b4f0d092008200741016a22123b018a0c20082007410c6c6a221041086a2015370200201041046a200f360200200820074107746a4188016a200341106a4180011085051a2008418c0c6a20124102746a2013360200201320123b01880c20132008360200200641c8006a2208200828020041016a3602000c0b0b200e41046a21080240201120104d22070d0020082010410c6c6a2213410c6a2013201120106b410c6c1086051a0b20082010410c6c6a220820183702042008201936020020034190056a20034190016a4180011085051a201041016a2108200e4188016a2113024020070d00201320084107746a201320104107746a201120106b4107741086051a0b201141016a2112201320104107746a20034190056a4180011085051a200e418c0c6a2113201141026a210c024020070d00201041027420136a41086a201320084102746a201120106b4102741086051a0b200e20123b018a0c201320084102746a20173602002008200c4f0d09201141016a2112200e2008417f6a22084102746a41900c6a2107034020072802002213200841016a22083b01880c2013200e360200200741046a210720122008470d000c0a0b0b2012410b41e8a2c2001042000b41f8a2c200412841a0a3c200102d000b2007410b41e8a2c2001042000b41f8a2c200412841a0a3c200102d000b2012410c41f8a3c2001042000b41f8a2c200412841a0a3c200102d000b41b2abc200412b41e0abc200102d000b41eaa0c2004130419ca1c200102d000b41aca1c200412041cca1c200102d000b200641c8006a2208200828020041016a3602000b02400240200641cc006a28020022084106490d00200641d8006a2802002108200641d4006a28020021060c010b200641d4006a21060b0240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002402006450d0020080d010b41002112024020040d00410021130c020b20091030410021130c010b20062008417f6a2217410c6c6a220f41046a211602400240200f280204220c450d00200f280200210d0c010b418c01102f220c450d224100210d200c41003b018a01200c41003602002016200c360200200f41003602000b0340200c2f018a01220e410c6c2107200c41046a221121084100211202400340024020070d00200e21120c020b0240024020092008280200200828020822132004200420134b1b10880522100d0020042013490d03200420134721130c010b4101211320104100480d020b2008410c6a2108201241016a2112200741746a210720130d000b41002113410121122004450d02200910300c020b0240200d450d00200d417f6a210d200c20124102746a418c016a280200210c0c010b0b024002400240200e410a4b0d0002402012200e4f0d0020112012410c6c6a2208410c6a2008200e20126b410c6c1086051a0b20112012410c6c6a220820093602002008200436020820082004360204200c200e41016a3b018a010c010b410521084100211002400240201241054f0d0041042108201221070c010b41052107024002402012417b6a0e020201000b201241796a210741012110410621080c010b41002107410121100b418c01102f2213450d23201341003b018a01201341003602002013200c2f018a01220d2008417f736a22123b018a012012410c4f0d03200d200841016a22196b2012470d0420112008410c6c6a220d2902042115200d280200210e201341046a20112019410c6c6a2012410c6c1085051a200c20083b018a012013200c20101b220841046a21120240200741016a220d20082f018a0122104b0d002012200d410c6c6a20122007410c6c6a201020076b410c6c1086051a0b20122007410c6c6a2207200936020020072004360208200720043602042008201041016a3b018a01024002400240200c28020022080d00410021110c010b410021112013211920152118200e211a0340200c2f0188012110200822092f018a01220d410b490d024100210c41042108024020104105490d0020102108024002402010417b6a0e020201000b201041796a21104101210c410621080c010b410021104101210c410521080b41bc01102f2213450d26201341003b018a0120134100360200201320092f018a0122122008417f736a22073b018a012007410c4f0d082012200841016a221b6b2007470d0920092008410c6c6a221241086a2902002115201241046a280200210e201341046a201241106a2007410c6c1085051a200920083b018a0120132f018a01220741016a21122007410c4f0d0a200d20086b22082012470d0b201141016a21112013418c016a2009201b4102746a418c016a20084102741085051a4100210802400340201320084102746a418c016a280200221220083b01880120122013360200200820074f0d01200820082007496a220820074d0d000b0b20132009200c1b221241046a210d0240201041016a220820122f018a0122074b0d00200d2008410c6c6a200d2010410c6c6a200720106b410c6c1086051a0b200741016a210c200d2010410c6c6a220d2018370204200d201a3602002012418c016a210d0240201041026a221b200741026a221a4f0d00200d201b4102746a200d20084102746a200720106b4102741086051a0b200d20084102746a20193602002012200c3b018a0102402008201a4f0d00201220104102746a4190016a2108034020082802002207201041016a22103b01880120072012360200200841046a2108200c2010470d000b0b2009210c2013211920152118200e211a200928020022080d000b0b20162802002207450d0a200f280200211241bc01102f2208450d242008200736028c01200841003b018a0120084100360200200741003b0188012007200836020020162008360200200f201241016a36020020122011470d0b20082f018a012207410b4f0d0c410121122008200741016a22103b018a0120082007410c6c6a220741086a2015370200200741046a200e3602002008418c016a20104102746a2013360200201320103b0188012013200836020020062017410c6c6a2208200828020841016a3602080c020b201041016a2108200941046a2107200d41016a211302400240200d20104b0d0020072010410c6c6a220720183702042007201a3602002009418c016a2107200d41026a21120c010b20072008410c6c6a20072010410c6c6a2207200d20106b2212410c6c1086051a200720183702042007201a36020020104102742009418c016a22076a41086a200720084102746a20124102741086051a200d41026a21120b2007200841027422106a2019360200200920133b018a01200820124f0d00201020096a418c016a210703402007280200221320083b01880120132009360200200741046a21072012200841016a2208470d000b0b4101211220062017410c6c6a2208200828020841016a3602080b410121130b02400240201428020022084106490d00201428020c2108201428020821070c010b201441086a21070b201220137121130240024002400240024002402007450d0020080d010b20034190056a20002802042005200410e7022003280290054101460d0e20034190046a41086a20034190056a41086a290300420020032802940522041b37030020034101360290042003200441002802dc944220041b3602940420034190046a410472210420130d02201428020022084106490d012014410c6a2802002208450d0220034190056a41086a200441086a280200360200200320042902003703900520034190056a2107201428020822040d04418486c20041fc00418888c2001050000b02402013450d000240024020072008417f6a220441186c6a28020022130d00410021080c010b2007200441186c6a2802082204417f4c0d1b0240024020040d00410121080c010b2004102f2208450d270b2008201320041085051a0b2003419c046a200436020020034198046a20043602002003200836029404200341013602900420034190046a41047221040c020b4100210820034100360290040c180b20080d010b20034190056a41086a200441086a28020036020020032004290200370390050240024002400240201428020022044106490d00201428020c22072004460d012014410c6a21080c170b4105210720044105460d01201441086a211220042107201421080c170b201428020c2108200421070c010b200421080b20072008470d12200841016a22072008490d0f4100417f2007417f6a677620074102491b220741016a22082007490d0f0240024020044106490d00201428020c210720142802082112200421130c010b201441086a211241052113200421070b200720084b0d0c0240200841054b0d00200441054d0d1320144100360204201441086a2012200741186c1085051a201420073602002013ad42187e2215422088a70d0e201210300c130b20132008470d0e0c120b20034190056a41086a200441086a2802003602002003200429020037039005201441086a210420034190056a21070b024020042008417f6a41186c6a22042802002208450d00200441046a280200450d00200810300b20042007290200370200200441086a200741086a2802003602000c130b2012410b41e8a2c2001042000b41f8a2c200412841a0a3c200102d000b2007410b41e8a2c2001042000b41f8a2c200412841a0a3c200102d000b2012410c41f8a3c2001042000b41f8a2c200412841a0a3c200102d000b41b2abc200412b41e0abc200102d000b41eaa0c2004130419ca1c200102d000b41aca1c200412041cca1c200102d000b41d488c100413020034190046a418489c100419489c1001034000b41c29ac200412041e49ac200102d000b200341003602940320032015a73602900341bea9c200412b20034190036a41ccfcc00041f485c2001034000b2008ad42187e2215422088a70d002015a721100240200441054b0d002010102f2204450d1420042012200741186c1085051a0c030b2013ad42187e2215422088a7450d010b41d099c200411141e499c200102d000b2010102f2204450d112004201220102015a72213201320104b1b1085051a201210300b2014200736020c2014200436020820144101360204201420083602000b2014410c6a2108201428020c21070b201428020821120b20034190056a41086a280200211320032903900521152012200741186c6a220441002802e88f4236020c20042015370200200441106a4200370200200441086a20133602002008200828020041016a3602000b41012108200b4101470d0002400240201428020022044106490d00201428020c2104201428020821070c010b201441086a21070b2004450d022007450d0220072004417f6a41186c6a2207410c6a2113024020072802142204450d00200441027420132802006a417c6a280200200a460d010b200741146a211202402004200741106a280200470d0020132004410110f302201228020021040b201328020020044102746a200a360200410121082012201228020041016a3602000b02400240201428020022044106490d00201428020c2104201428020821070c010b201441086a21070b2007450d022004450d0202402008200328029004410147720d002003280294042208450d0020034198046a280200450d00200810300b024020072004417f6a221341186c6a22082802000d00200841002802dc9442360200200842003702040b410c102f2204450d0b20042002290200370200200441086a200241086a28020036020020034190036a41086a2212200841086a2802003602002003200829020037039003200841002802dc94423602002007201341186c6a22074100360208200741046a2213410036020020034190046a41086a20122802002207360200200320032903900337039004024020070d0020034190046a410110f40220034190046a2004280200200428020810640c080b2007417f6a210c02400240024020032802900422122d0000221041037122144103460d0002400240024020140e03000102000b201041027621100c030b200c450d0320122d0001410874201072221041ffff0371418002490d03201041fcff037141027621100c020b200c4103490d0220122f0001201241036a2d000041107472410874201072221041ffff034d0d02201041027621100c010b201041034b0d01200c4104490d0120122800012210418080808004490d010b41012114201041016a220c2010490d000240201041c000490d0041022114201041808001490d00410441052010418080808004491b21140b410121120240200c41c000490d0041022112200c41808001490d0041044105200c418080808004491b21120b024020122014470d00200320034190046a36029005200c20034190056a201410f50220034190046a2004280200200428020810640c090b201220146b20076a220741046a2210417f4c0d010240024020100d00410121090c010b2010102f2209450d0d0b200320103602940520032009360290052003200736029805200320034190056a36029002200c20034190026a201210f50220072012490d0420032802980522102007490d0520032802980422102014490d060240200720126b2207201020146b2210460d0020072010418c91c200105b000b20032802900520126a20032802900420146a20071085051a20034190056a20042802002004280208106420032902940521152003280290052107200328029404450d0920032802900410300c090b2003280294040d060c090b102c000b418486c20041fc00419888c2001050000b418486c20041fc00418888c2001050000b2012200741f483c2001048000b2007201041f483c2001042000b20142010418484c200104a000b201210300c020b200329029404211520032802900421070b2007450d00200320153702940520032007360290050c010b4110102f2207450d012003421037029405200320073602900520034190056a410110f40220034190056a2004280200200428020810640b02402013280200450d00200828020010300b2008200329039005370200200841086a20034190056a41086a2802003602000240200441046a280200450d00200428020010300b200410300240200141046a280200450d00200128020010300b20034190066a24000f0b102a000be10101027f230041206b22032400024002400240200041046a280200220420016b20024f0d00200120026a22022001490d02200441017422012002200120024b1b22014104200141044b1b220141ffffffff03712001464102742102200141027421010240024020040d00200341003602100c010b200341186a410436020020032004410274360214200320002802003602100b200320012002200341106a1069200341086a280200210120032802004101460d0120002003280204360200200041046a20014102763602000b200341206a24000f0b2001450d00102a000b102c000ba80101017f230041106b220224000240024002400240200141c000490d00200141808001490d012001418080808004490d02200241033a000f20002002410f6a410110642002200136020020002002410410640c030b200220014102743a000f20002002410f6a410110640c020b200220014102744101723b01062000200241066a410210640c010b200220014102744102723602082000200241086a410410640b200241106a24000be00101027f230041106b220324000240024002400240200041c000490d00200041808001490d012000418080808004490d02200320003600054105210420034105360200200341033a00040c030b200320004102743a0004410121040c020b4102210420034102360200200320004102744101723b01040c010b4104210420034104360200200320004102744102723602040b024002402001280200220028020822012002490d0020042002470d012000280200200341047220021085051a200341106a24000f0b20022001419484c2001042000b20022004418c91c200105b000be60301067f230041206b22042400200441086a20012802042205200541e0006a41002002200310f702024002400240024002400240024020042802084101460d00200441146a2802002106200441106a22072802002108200428020c2105200441086a200128020041c0006a2002200310f80220072802002107200428020c2102200428020821030240024020050d002003450d010c040b20030d020b2000200836020420002005360200200041086a20063602000c030b41d488c1004130200441186a41dcfcc000419cfdc0001034000b024002402005200320022006200620024b1b10880522090d00200620024f0d020c010b2009417f4a0d010b2000200836020420002005360200200041086a20063602000c010b02400240200728020022064106490d002007410c6a2802002106200741086a28020021070c010b200741086a21070b2007450d012006450d0102400240200641186c20076a41686a2802000d00200020012003200210f6020c010b2002417f4c0d030240024020020d00410121010c010b2002102f2201450d050b2001200320021085052101200041086a200236020020002002360204200020013602000b2005450d002008450d00200510300b200441206a24000f0b418486c20041fc00418087c2001050000b102c000b102a000bb30b02067f017e230041f0016b220624000240024020030d004180dec10021030c010b200641106a2003280208360200200620013602082006200328020036020c41ecddc1002103200641086a21010b200641a8016a41086a220741002802b8f541360200200641002902b0f5413703a801024002400240024002400240024020012002200641a8016a20032802101100000d004130102f22010d010c060b20064100360224200620023602202006200336021c20062001360218200641a8016a200641186a10da02200641e8006a41086a200641a8016a41106a290300370300200641e8006a41106a2202200641a8016a41186a290300370300200641e8006a41186a2203200641a8016a41206a290300370300200641e8006a41206a2208200641a8016a41286a290300370300200641e8006a41286a2209200641a8016a41306a290300370300200641e8006a41306a220a200641a8016a41386a290300370300200641e8006a41386a220b200641a8016a41c0006a2802003602002006200729030037036820062802ac012101024020062802a8014101460d00200641286a41386a200b280200360200200641286a41306a200a290300370300200641286a41286a2009290300370300200641286a41206a2008290300370300200641286a41186a2003290300370300200641286a41106a2002290300370300200641286a41086a2203200641e8006a41086a2903003703002006200629036837032841c000102f2202450d0620022001360200200220062903283702042002410c6a2003290300370200200241146a200641386a2903003702002002411c6a200641c0006a290300370200200241246a200641c8006a2903003702002002412c6a200641d0006a290300370200200241346a200641d8006a2903003702002002413c6a200641e0006a28020036020041012103200541016a2201417f4a0d020c050b0240024020012d00000e0404040004010b200141086a280200450d03200141046a28020010300c030b200141286a280200450d02200141246a28020010300c020b200141003a000020012002290000370001200141096a200241086a290000370000200141116a200241106a290000370000200141196a200241186a29000037000020011030200041013602000c020b02402001450d002001102f2203450d040b200641003602302006200136022c20062003360228200641286a2004200510b903024002400240024002400240024020062802302201200628022c2203470d00200141016a22032001490d09200141017422072003200720034b1b22034108200341084b1b21030240024020010d00200641003602a8010c010b200641a8016a41086a4101360200200620013602ac01200620062802283602a8010b200641e8006a20034101200641a8016a1069200641f0006a280200210320062802684101460d01200628026c21072006200336022c200620073602280b2006280228220720016a41003a00002006200141016a220136023002402002200720011092042201450d0002400240024020012d00000e0402020002010b200141086a280200450d01200128020410300c010b200141286a280200450d00200128022410300b200110302000410136020020030d050c060b200641a8016a200210e4024100210120062802a80122054102470d010c020b20030d080c070b20062802ac012101024020054101470d0002400240024020012d00000e0402020002010b200141086a280200450d01200141046a28020010300c010b200141286a280200450d00200141246a28020010300b200110300c020b2001450d01200641b0016a290300210c200641bc016a280200450d00200641b8016a28020010300b2000200136020420004100360200200041086a200c3702002003450d020c010b200041013602002003450d010b200710300b2002108603200210300c010b20011030200041013602000b200641f0016a24000f0b102c000b102a000ba808010b7f230041206b22042400024002400240200128020422050d00200441186a41003602002004410036020c0c010b200128020021064101210102400340410221070240024002400240024020010e0400010302000b03400c000b0b200541046a210820052f018a0c2109410021010240034041012107024020092001470d00200921010c020b0240024020022008280200200841086a280200220a20032003200a4b1b108805220b0d002003200a490d032003200a4721070c010b41012107200b4100480d020b200141016a21012008410c6a210820070d000b410221070b200120052f018a0c22094d0d02418c81c200412441b081c200102d000b410321070b20052f018a0c2109410021010b024020012009490d002006450d022006417f6a2106200520014102746a418c0c6a2802002105200721010c010b0b0240024020060d002005210c0c010b2005210c0340200721082006417f6a2106200520014102746a418c0c6a28020021054102210741002101024002400240024020080e0401020300010b20052f018a0c2101410321070c020b200541046a210820052f018a0c210d410021074100210a03400240200d200a2201470d00200d21010c030b0240024020022008280200200841086a280200220a20032003200a4b1b108805220e0d002003200a490d042003200a47210b0c010b4101210b200e41004e0d00410021070c030b200141016a210a2008410c6a2108200b0d000b410321070c010b200541046a210820052f018a0c21014100210a02400340410121072001200a460d020240024020022008280200200841086a280200220b20032003200b4b1b108805220e0d002003200b490d032003200b4721070c010b41012107200e4100480d020b200a41016a210a2008410c6a210820070d000b410221070b200a21010b200c20094102746a418c0c6a280200220c2f018a0c210920060d000b0b2004411c6a2009360200200441186a200c36020020044100360214200420013602102004200536020c200441003602080240200c450d0041000d02200c450d022005200c470d0020012009460d020b200428020821030240024020042802102208200428020c22072f018a0c4f0d00200721010c010b03400240200728020022010d00410021010c020b200341016a210320072f01880c210820012107200820012f018a0c4f0d000b0b024002402003450d00200841027420016a41900c6a280200210702402003417f6a2203450d000340200728028c0c21072003417f6a22030d000b0b410021030c010b200841016a2103200121070b200041086a200120084107746a4188016a360200200020012008410c6c6a2201410c6a2802003602042000200141046a280200360200200420033602102004200736020c200441003602080c020b200441186a41003602002004410036020c0b200041003602000b200441206a24000b060010fa02000b1100418ee2c100410f4194e3c100102d000bf30802037f017e23004180016b220524000240024002400240024002400240024002400240200128020022064198016a2002280200200228020810ed022207450d0020072003200410e6022207450d0002400240200728020022024106490d00200728020c2102200728020821010c010b200741086a21010b2001450d042002450d04024020012002417f6a41186c6a2202280200450d0020062802000d06200241086a22013502002108200641003602002006200629030842017c3703082006280210450d0241b082c2004110200541286a41c082c20041c483c2001034000b20062802000d0641002102200641003602002006200629030842017c37030820062802100d07200641003602100c020b200541086a200128020420022003200410ee0241022102024020052802084101460d0002400240200528020c22060d00410021020c010b200541e0006a2006200541086a41086a2903002208422088a71065200541286a41186a200541e0006a41186a290000370300200541286a41106a200541e0006a41106a290000370300200541286a41086a200541e0006a41086a29000037030020052005290060370328410121022008a7450d00200610300b200541e0006a41186a200541286a41186a290300370300200541e0006a41106a200541286a41106a290300370300200541e0006a41086a200541286a41086a290300370300200520052903283703600b20024102460d07200541086a41186a200541e0006a41186a290300370300200541086a41106a200541e0006a41106a290300370300200541086a41086a200541e0006a41086a290300370300200520052903603703080c020b20064100360210200641186a2206200629030020087c370300200541e0006a200228020020012802001065200541c1006a200541e0006a41186a290000370000200541396a200541f0006a290000370000200541316a200541e8006a29000037000020052005290060370029410121020b200541206a200541c1006a290000370300200541186a200541396a290000370300200541106a200541316a290000370300200520052900293703080b0240024020024101460d00200041003602000c010b200541286a41186a200541086a41186a290300370300200541286a41106a200541086a41106a290300370300200541286a41086a200541086a41086a2903003703002005410036025820054201370350200520052903083703284120102f2202450d062005422037026420052002360260200541e0006a200541286a41201064200541d0006a200528026022022005280268106402402005280264450d00200210300b20002005290350370200200041086a200541d0006a41086a2802003602000b20054180016a24000f0b418486c20041fc00418087c2001050000b41b082c2004110200541286a41c082c20041b483c2001034000b41b082c2004110200541286a41c082c20041b483c2001034000b41b082c2004110200541286a41c082c20041c483c2001034000b41d488c1004130200541286a41dcfcc00041acfdc0001034000b102a000bc15e05077f017e027f027e1a7f230041c0066b220324000240024002400240024002400240024002402002280208220441176a2205417f4c0d00200228020021020240024020050d00410121060c010b2005102f2206450d070b2003410036028005200320053602fc04200320063602f804200341f8046a418b90c200411710fd02200341f8046a2002200410fd02200328028005210720032802fc04210820032802f8042109024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024020012802082d0060450d00024002402001280200220541c0006a2009200710e6022202450d0002400240200228020022044106490d00200228020c2104200228020821020c010b200241086a21020b2002450d042004450d040240024020022004417f6a41186c6a2202280200450d0020052802000d07200241086a2204350200210a200541003602002005200529030842017c3703082005280210450d0141b082c2004110200341f8026a41c082c20041c483c2001034000b20052802000d07200541003602002005200529030842017c37030820052802100d08200541003602100c220b20054100360210200541186a22052005290300200a7c37030020042802002205417f4c0d1e200228020021040240024020050d0041012102410021050c010b2005102f2202450d250b2002200420051085051a200521040c010b200341f8046a20012802042009200710e70220032802f8044101460d0720034184056a280200210520034180056a280200210420032802fc0421020b2002450d1f2005450d1d200320022d00003a00fc04200341013602f80420054101470d010c1d0b02400240024002400240024020012802004198016a2002200410ed02220b0d00200341023a0098052001280200220541c0006a2009200710e6022202450d03200228020022044106490d01200228020c2104200228020821020c020b200341f8046a200b10e902200341e0006a41186a200341f8046a41186a22042802002205360200200341e0006a41106a200341f8046a41106a2206290300220a370300200341e0006a41086a200341f8046a41086a220c290300220d370300200320032903f804220e3703602001280204210220034180016a41186a200536020020034180016a41106a200a37030020034180016a41086a200d3703002003200e37038001200341a0016a10ce014101102f2205450d26200541003a0000410041003502e0ac42200341f8046aad7c42adfed5e4d485fda8d8007e422189220a3e02e0ac42200341d0006a41e0acc200ad220d42a4bb99fed1a0bbb02385420042adfed5e4d485fda8d8004200108405200341306a200a42a4bb99fed1a0bbb02385420042adfed5e4d485fda8d8004200108405200341c0006a200d42c5ecb3fec9ecf7c2c30085420042adfed5e4d485fda8d8004200108405200341206a200a42c5ecb3fec9ecf7c2c30085420042adfed5e4d485fda8d8004200108405200341106a200a200d85420042adfed5e4d485fda8d8004200108405200341f8046a418de2c1004101106520034194026a20042900003702002003418c026a200629000037020020034184026a200c290000370200200341f4016a428180808010370200200341e8016a4200370300200341e4016a41bcf5c100360200200320032900f8043702fc01200320053602f001200341003602e0012003200a200341d0006a41086a2903002003290350857c200341106a41086a29030020032903108542cf829ebbefefde82147c220e893703c0012003200341206a41086a290300200329032085200d7c200e423088893703d8012003200a200341c0006a41086a2903002003290340857c200e422088893703d0012003200341306a41086a290300200329033085200d7c200e421088893703c801200b280260220441176a2205417f4c0d20200b28025821064101210c02402005450d002005102f220c450d270b2003410036028005200320053602fc042003200c3602f804200341f8046a418b90c200411710fd02200341f8046a2006200410fd0220032802fc04210f200341f8036a200220032802f804221020032802800510e702024020032802f8034101470d00200341a0026a41186a200341a0016a41186a290300370300200341a0026a41106a200341a0016a41106a290300370300200341a0026a41086a200341a0016a41086a290300370300200320032903a0013703a0020c1a0b20032802fc032205450d17200341f8036a41086a290300220a422088a7220c450d15200320052d00003a00fc04200341013602f804200c4101470d040c150b200241086a21020b2002450d092004450d090240024020022004417f6a41186c6a2202280200450d0020052802000d0c200241086a2204350200210a200541003602002005200529030842017c3703082005280210450d0141b082c2004110200341f8026a41c082c20041c483c2001034000b20052802000d0c200541003602002005200529030842017c37030820052802100d0d200541003602100c110b20054100360210200541186a22052005290300200a7c37030020042802002205417f4c0d1e200228020021040240024020050d0041012102410021050c010b2005102f2202450d250b2002200420051085051a200521040c010b200341f8036a20012802042009200710e70220032802f8034101460d0c20034184046a280200210520034180046a280200210420032802fc0321020b2002450d0e2005450d0c200320022d00003a00fc03200341013602f80320054101460d0c200320022d00013a00fd03200341023602f80320054102460d0c200320022d00023a00fe03200341033602f80320054103460d0c200320022d00033a00ff03200341043602f80320054104460d0c20034180046a20022d00043a0000200341053602f80320054105460d0c20034181046a20022d00053a0000200341063602f80320054106460d0c20034182046a20022d00063a0000200341073602f80320054107460d0c20034183046a20022d00073a0000200341083602f80320054108460d0c20034184046a20022d00083a0000200341093602f80320054109460d0c20034185046a20022d00093a00002003410a3602f8032005410a460d0c20034186046a20022d000a3a00002003410b3602f8032005410b460d0c20034187046a20022d000b3a00002003410c3602f8032005410c460d0c20034188046a20022d000c3a00002003410d3602f8032005410d460d0c20034189046a20022d000d3a00002003410e3602f8032005410e460d0c2003418a046a20022d000e3a00002003410f3602f8032005410f460d0c2003418b046a20022d000f3a0000200341103602f80320054110460d0c2003418c046a20022d00103a0000200341113602f80320054111460d0c2003418d046a20022d00113a0000200341123602f80320054112460d0c2003418e046a20022d00123a0000200341133602f80320054113460d0c2003418f046a20022d00133a0000200341143602f80320054114460d0c20034190046a20022d00143a0000200341153602f80320054115460d0c20034191046a20022d00153a0000200341163602f80320054116460d0c20034192046a20022d00163a0000200341173602f80320054117460d0c20034193046a20022d00173a0000200341183602f80320054118460d0c20034194046a20022d00183a0000200341193602f80320054119460d0c20034195046a20022d00193a00002003411a3602f8032005411a460d0c20034196046a20022d001a3a00002003411b3602f8032005411b460d0c20034197046a20022d001b3a00002003411c3602f8032005411c460d0c20034198046a20022d001c3a00002003411d3602f8032005411d460d0c20034199046a20022d001d3a00002003411e3602f8032005411e460d0c2003419a046a20022d001e3a00002003411f3602f8032005411f460d0c2003419b046a20022d001f3a0000200341c0016a41026a20034185046a2d00003a0000200341d8026a41026a2003418c046a2d00003a0000200320032f01fc033b01f802200320032d00fe033a00fa02200320034183046a2f00003b01c00120032003418a046a2f01003b01d80220034194046a28020021112003418d046a280000211220034186046a280100210c200341203602f803200341f8036a41206a280200211320032800ff032106200341a0026a41026a20034193046a2d00003a0000200320034191046a2f00003b01a002410021050c0d0b200320052d00013a00fd04200341023602f804200c4102460d10200320052d00023a00fe04200341033602f804200c4103460d10200320052d00033a00ff04200341043602f804200c4104460d1020034180056a20052d00043a0000200341053602f804200c4105460d1020034181056a20052d00053a0000200341063602f804200c4106460d1020034182056a20052d00063a0000200341073602f804200c4107460d1020034183056a20052d00073a0000200341083602f804200c4108460d1020034184056a20052d00083a0000200341093602f804200c4109460d1020034185056a20052d00093a00002003410a3602f804200c410a460d1020034186056a20052d000a3a00002003410b3602f804200c410b460d1020034187056a20052d000b3a00002003410c3602f804200c410c460d1020034188056a20052d000c3a00002003410d3602f804200c410d460d1020034189056a20052d000d3a00002003410e3602f804200c410e460d102003418a056a20052d000e3a00002003410f3602f804200c410f460d102003418b056a20052d000f3a0000200341103602f804200c4110460d102003418c056a20052d00103a0000200341113602f804200c4111460d102003418d056a20052d00113a0000200341123602f804200c4112460d102003418e056a20052d00123a0000200341133602f804200c4113460d102003418f056a20052d00133a0000200341143602f804200c4114460d1020034190056a20052d00143a0000200341153602f804200c4115460d1020034191056a20052d00153a0000200341163602f804200c4116460d1020034192056a20052d00163a0000200341173602f804200c4117460d1020034193056a20052d00173a0000200341183602f804200c4118460d1020034194056a20052d00183a0000200341193602f804200c4119460d1020034195056a20052d00193a00002003411a3602f804200c411a460d1020034196056a20052d001a3a00002003411b3602f804200c411b460d1020034197056a20052d001b3a00002003411c3602f804200c411c460d1020034198056a20052d001c3a00002003411d3602f804200c411d460d1020034199056a20052d001d3a00002003411e3602f804200c411e460d102003419a056a20052d001e3a00002003411f3602f804200c411f460d102003419b056a20052d001f3a0000200341d8026a41026a20034185056a2d00003a0000200341b0066a41026a2003418c056a2d00003a0000200320032f01fc043b01f802200320032d00fe043a00fa02200320034183056a2f00003b01d80220032003418a056a2f01003b01b00620034194056a28020021142003418d056a280000211320034186056a2801002111200341203602f804200341f8046a41206a280200211520032800ff042112200341a0066a41026a20034193056a2d00003a0000200320034191056a2f00003b01a0064100210c0c110b200320022d00013a00fd04200341023602f80420054102460d1b200320022d00023a00fe04200341033602f80420054103460d1b200320022d00033a00ff04200341043602f80420054104460d1b20034180056a20022d00043a0000200341053602f80420054105460d1b20034181056a20022d00053a0000200341063602f80420054106460d1b20034182056a20022d00063a0000200341073602f80420054107460d1b20034183056a20022d00073a0000200341083602f80420054108460d1b20034184056a20022d00083a0000200341093602f80420054109460d1b20034185056a20022d00093a00002003410a3602f8042005410a460d1b20034186056a20022d000a3a00002003410b3602f8042005410b460d1b20034187056a20022d000b3a00002003410c3602f8042005410c460d1b20034188056a20022d000c3a00002003410d3602f8042005410d460d1b20034189056a20022d000d3a00002003410e3602f8042005410e460d1b2003418a056a20022d000e3a00002003410f3602f8042005410f460d1b2003418b056a20022d000f3a0000200341103602f80420054110460d1b2003418c056a20022d00103a0000200341113602f80420054111460d1b2003418d056a20022d00113a0000200341123602f80420054112460d1b2003418e056a20022d00123a0000200341133602f80420054113460d1b2003418f056a20022d00133a0000200341143602f80420054114460d1b20034190056a20022d00143a0000200341153602f80420054115460d1b20034191056a20022d00153a0000200341163602f80420054116460d1b20034192056a20022d00163a0000200341173602f80420054117460d1b20034193056a20022d00173a0000200341183602f80420054118460d1b20034194056a20022d00183a0000200341193602f80420054119460d1b20034195056a20022d00193a00002003411a3602f8042005411a460d1b20034196056a20022d001a3a00002003411b3602f8042005411b460d1b20034197056a20022d001b3a00002003411c3602f8042005411c460d1b20034198056a20022d001c3a00002003411d3602f8042005411d460d1b20034199056a20022d001d3a00002003411e3602f8042005411e460d1b2003419a056a20022d001e3a00002003411f3602f8042005411f460d1b2003419b056a20022d001f3a0000200341f8026a41026a20034185056a2d00003a0000200341c0016a41026a2003418c056a2d00003a0000200320032f01fc043b01f803200320032d00fe043a00fa03200320034183056a2f00003b01f80220032003418a056a2f01003b01c00120034194056a280200210c2003418d056a280000211220034186056a2801002111200341203602f804200341f8046a41206a280200210620032800ff042113200341d8026a41026a20034193056a2d00003a0000200320034191056a2f00003b01d802410021050c1c0b418486c20041fc00418087c2001050000b41b082c2004110200341f8026a41c082c20041b483c2001034000b41b082c2004110200341f8026a41c082c20041b483c2001034000b41b082c2004110200341f8026a41c082c20041c483c2001034000b41d488c1004130200341f8026a41dcfcc00041bcfdc0001034000b418486c20041fc00418087c2001050000b41b082c2004110200341f8026a41c082c20041b483c2001034000b41b082c2004110200341f8026a41c082c20041b483c2001034000b41b082c2004110200341f8026a41c082c20041c483c2001034000b41d488c1004130200341f8026a41dcfcc00041bcfdc0001034000b410121050b02402004450d00200210300b2005450d010b200341f8036a10ce010c010b20034181046a200341c0016a41026a2d00003a000020034188046a200341d8026a41026a2d00003a00002003418f046a200341a0026a41026a2d00003a0000200320032d00fa023a00fa03200320032f01f8023b01f803200320063600fb03200320032f01c0013b00ff032003200c36018204200320032f01d8023b0186042003201236008904200320032f01a0023b008d04200320133602940420032011360290040b20004100360208200042013702004120102f2205450d11200342203702fc02200320053602f802200341f8026a200341f8036a41201064200020032802f80222052003280280031064024020032802fc02450d00200510300b20032d0098054102470d050c060b4101210c0b0240200aa7450d00200510300b200c450d010b200341a0026a41186a200341a0016a41186a290300370300200341a0026a41106a200341a0016a41106a290300370300200341a0026a41086a200341a0016a41086a290300370300200320032903a0013703a0020c010b200341a9026a200341d8026a41026a2d00003a0000200341b0026a200341b0066a41026a2d00003a0000200341b7026a200341a0066a41026a2d00003a0000200320032d00fa023a00a202200320032f01f8023b01a002200320123600a302200320032f01d8023b00a702200320113601aa02200320032f01b0063b01ae02200320133600b102200320032f01a0063b00b502200320153602bc02200320143602b8020b200320023602c0022003200341c0016a3602c402200341c8026a41086a2004360200200320063602cc022003200341c0026a3602c802200341d8026a41186a200341a0026a41186a290300370300200341d8026a41106a200341a0026a41106a290300370300200341d8026a41086a200341a0026a41086a290300370300200320032903a0023703d802200341f8046a200341c8026a4180a3c000200341d8026a10fe0220032802fc04210520032802f8042102200341f8036a200341f8046a41086a4180011085051a0240024002400240024002400240024020024101460d00200341f8026a200341f8036a4180011085051a200341f8036a41186a20034180016a41186a2802002205360200200341f8036a41106a20034180016a41106a290300370300200341f8036a41086a20034180016a41086a29030037030020032003290380013703f8032005450d0320032005417f6a221236029004200341f8036a410020032802fc031b220c280200210402400240200c2802082206200c28020422022f018a0c4f0d00200221050c010b03400240200228020022050d00410021050c020b200441016a210420022f01880c210620052102200620052f018a0c4f0d000b0b024002402004450d00200641027420056a41900c6a280200210202402004417f6a2204450d000340200228028c0c21022004417f6a22040d000b0b410021040c010b200641016a2104200521020b200c2002360204200c4100360200200c200436020802400240200520064107746a22044188016a28020022024106490d0020044194016a280200210220044190016a28020021040c010b20044190016a21040b024002400240024002402004450d002002450d000240024020042002417f6a41186c6a220228020022040d00410021040c010b2002280208210c0b417f201241016a220220022012491b220241ffffffff00712002470d1320024104742202417f4c0d1320052006410c6c6a2205410c6a2802002106200541046a28020021052002102f2216450d192016200c36020c201620043602082016200636020420162005360200200341f8046a41186a200341f8036a41186a2802002205360200200341f8046a41106a200341f8036a41106a290300370300200341f8046a41086a200341f8036a41086a290300370300200320032903f8033703f80420024104762117024020050d00201641106a21150c050b20032005417f6a221236029005200341f8046a410020032802fc041b220c280200210402400240200c2802082206200c28020422022f018a0c4f0d00200221050c010b03400240200228020022050d00410021050c020b200441016a210420022f01880c210620052102200620052f018a0c4f0d000b0b024002402004450d00200641027420056a41900c6a280200210202402004417f6a2204450d000340200228028c0c21022004417f6a22040d000b0b410021040c010b200641016a2104200521020b200c2002360204200c4100360200200c2004360208200520064107746a4188016a210220052006410c6c6a41046a21054101211802400340200528020821042005280200210602400240200228020022054106490d00200228020c2105200228020821020c010b200241086a21020b2002450d012005450d010240024020022005417f6a41186c6a220528020022020d00410021020c010b2005280208210c0b0240024002400240024020172018470d002017417f201241016a220520052012491b6a22052017490d1a201741017422122005201220054b1b22054104200541044b1b220541ffffffff00712005464102742112200541047421050240024020170d00200341003602b0060c010b200320163602b006200341043602b806200320174104743602b4060b200341a0066a20052012200341b0066a106920032802a806210520032802a0064101460d0120032802a4062116200541047621170b201620184104746a2205200236020820052004360204200520063602002005410c6a200c360200201841016a21182003280290052205450d0320032005417f6a221236029005200341f8046a410020032802fc041b220c2802002104200c2802082206200c28020422022f018a0c4f0d01200221050c020b20050d1e0c180b03400240200228020022050d00410021050c020b200441016a210420022f01880c210620052102200620052f018a0c4f0d000b0b024002402004450d00200641027420056a41900c6a280200210202402004417f6a2204450d000340200228028c0c21022004417f6a22040d000b0b410021040c010b200641016a2104200521020b200c2002360204200c4100360200200c2004360208200520064107746a4188016a210220052006410c6c6a41046a21050c010b0b0240201841144b0d00201841014d0d05201841047420166a41606a21054101210203402005200241016a220210b602200541706a210520182002470d000c060b0b2018410176220541ffffffff00712005470d1420054104742219417f4c0d142019102f221a450d1a201641706a211b201641506a211c41002802e88f42211d4100211e4100211f20182120034020202112410021204101210502402012417f6a2202450d0002400240201620024104746a220528020020162012417e6a22204104746a2202280200220c2002280204220220052802042205200520024b1b10880522040d00417f200520024720052002491b21050c010b417f410120044100481b21050b0240024002400240024002402005417f460d00201c20124104746a2104410221050340024020122005470d0041002120201221050c080b024002400240200c20042802002211200441046a28020022062002200220064b1b108805220c0d00200220064f0d010c020b200c4100480d010b200441706a2104200541016a2105200621022011210c0c010b0b201220056b21200c010b20124102742111201c20124104746a210502400340024020200d00410021200c020b02400240200c20052802002206200541046a28020022042002200220044b1b108805220c0d00200220044f0d030c010b200c417f4a0d020b2020417f6a2120200541706a2105200421022006210c0c000b0b20122020490d01201220184b0d02201220206b22054101762206450d00201620204104746a2102201b20114102746a21040340200341f8046a41086a220c200241086a2211290200370300200320022902003703f804200441086a2213290200210a200220042902003702002011200a3702002013200c290300370200200420032903f804370200200241106a2102200441706a21042006417f6a22060d000b0b2020450d04200541094b0d04201220184b0d02201220206b21052020417f6a2102201b20204104746a2104034020122002490d092004200541016a220510b6022002417f6a220620024f0d04200441706a2104200621022005410a490d000c040b0b2020201241ccf7c0001048000b2012201841ccf7c0001042000b20122020417f6a2202490d052012201841dcf7c0001042000b200641016a21200b0240201f201e470d00201e41016a2202201e490d16201e41017422042002200420024b1b22024104200241044b1b220241ffffffff017120024641027421042002410374210202400240201e0d00200341003602f8040c010b20034104360280052003201d3602f8042003201e4103743602fc040b200341f8036a20022004200341f8046a10692003280280042102024020032802f8034101470d002002450d170c1d0b20032802fc03211d2002410376211e0b201d201f4103746a2202200536020420022020360200201f41016a2221211f024020214102490d0003400240024002400240201d2021221f417f6a22214103746a2205280200450d00201f410374201d6a220641746a2802002204200528020422024d0d00201f41024d0d05201d201f417d6a22224103746a2802042205200220046a4d0d01201f41034d0d05200641646a280200200520046a4b0d050c010b201f4103490d0120052802042102201d201f417d6a22224103746a28020421050b20052002490d010b201f417e6a21220b0240024002400240201f202241016a22054d0d000240201f20224d0d000240201d20224103746a2223280204222420232802006a2202201d20054103746a22252802002226490d000240200220184b0d00202341046a2127201620264104746a22042025280204222841047422066a21052002410474210c0240200220266b221220286b22022028490d00201a20042006108505220220066a21060240202841014e0d00200221020c080b201220284a0d06200221020c070b201a200520024104742206108505221520066a210620284101480d0420024101480d04201b200c6a2102034002400240200641706a220c280200200541706a221228020020122802042211200c2802042213201320114b1b10880522140d00417f201320114720132011491b21110c010b417f410120144100481b21110b20022012200c2011417f4622111b2213290200370200200241086a201341086a2902003702002006200c20111b210620042012200520111b22054f0d05200241706a2102200620154b0d000c050b0b20022018418cf8c0001042000b20262002418cf8c0001048000b2022201f41fcf7c0001033000b2005201f41ecf7c0001033000b20152102200521040c010b2016200c6a211320022102034002400240200528020020022802002002280204220c200528020422122012200c4b1b10880522110d00417f2012200c472012200c491b210c0c010b417f410120114100481b210c0b200420052002200c417f46220c1b2212290200370200200441086a201241086a2902003702002002200241106a200c1b2102200441106a2104200541106a2005200c1b220520134f0d0120022006490d000b0b20042002200620026b4170711085051a2027202420286a360200202320263602002025202541086a201f20226b41037441706a1086051a4101211f202141014b0d000b0b2020450d040c000b0b418486c20041fc00418087c2001050000b418486c20041fc00418087c2001050000b2002201241dcf7c0001048000b0240201e41ffffffff0171450d00201d10300b2019450d00201a10300b2018450d03201620184104746a21150b20162128200341f8046a41086a2102200341f8046a4101722112200341d8036a2111200341d1036a211f0240034020162802002204450d03201641046a2802002106024002400240201641086a280200220c0d00200341f8046a200341f8026a2004200610ff0220032802fc04210520032802f8044101460d04200329038005210a0c010b2016410c6a280200210520034100360280060240024020032d00d0034101460d00410021130c010b2003418c066a41026a201f41026a2d00003a0000200341f8036a41086a201141086a290200370300200341f8036a41106a201141106a290200370300200341f8036a41186a201141186a2d00003a00002003201f2f00003b018c06200320112902003703f803410121130b20032802d4032114201220032f018c063b0000200220032903f803370200201241026a2003418c066a41026a2d00003a0000200241086a200341f8036a41086a290300370200200241106a200341f8036a41106a290300370200200241186a200341f8036a41186a280200360200200320133a00f804200320143602fc04200341003602a806200320063602a406200320043602a0062005417f4c0d120240024020050d00410121040c010b2005102f2204450d190b200320053602b406200320043602b0062004200c20051085051a200320053602b80620034190066a200341f8026a200341f8046a200341a0066a200341b0066a20034180066a10800320032802940621052003280290064101460d01200320053602d403200341003a00d0032003280280062105200329028406210a0b02402005450d00200aa7450d00200510300b201641106a22162015470d010c040b0b2003280280062202450d00200328028406450d00200210300b0240201741ffffffff0071450d00202810300b200341f8026a10b1010b20052d00000e0405050405030b202821160b201741ffffffff0071450d00201610300b200341f8026a10b101200341fa036a20032d00da0222053a000020034180056a2202200341d8026a410f6a29000037030020034188056a2204200341d8026a41176a29000037030020034190056a2206200341d8026a411f6a2d00003a0000200320032f01d802220c3b01f803200320032900df023703f8042003200c3b01a002200320053a00a202200320032800db023600a302200341a0026a411f6a20062d00003a0000200341a0026a41176a2004290300370000200341a0026a410f6a2002290300370000200320032903f8043700a7020c030b200541286a280200450d01200541246a28020010300c010b200541086a280200450d00200541046a2802001030200510300c010b200510300b200341a0026a200341a0016a41201088052102200341f8026a41186a2205200341a0026a41186a290300370300200341f8026a41106a2204200341a0026a41106a290300370300200341f8026a41086a2206200341a0026a41086a290300370300200320032903a0023703f802200341ff036a200341c0016a41e0001085051a200245210c0240200f450d00201010300b200341f8046a41086a22122006290300370300200341f8046a41106a22062004290300370300200341f8046a41186a22042005290300370300200320032903f8023703f8042003200c3a00980520034199056a200341f8036a41e7001085051a200341f8036a41186a2004290300370300200341f8036a41106a2006290300370300200341f8036a41086a2012290300370300200320032903f8043703f803200341003602e002200342013703d8024120102f2205450d0c200342203702fc02200320053602f802200341f8026a200341f8036a41201064200341d8026a20032802f80222052003280280031064024020032802fc02450d00200510300b200128020021050240024020020d0020052802200d0420054100360220200541286a2202200229030042017c37030020052802300d0520054100360230200320073602c801200320083602c401200320093602c001200341003602f8022003200510c302200541c0006a200341c0016a200341f8026a2003280200200328020410c4020c010b20032802e0022202417f4c0d0720032802d80221040240024020020d00410121060c010b2002102f2206450d0e0b200620042002108505210420052802200d0520054100360220200541286a2206200629030042017c37030020052802300d0620054100360230200541386a220620062903002002ad7c370300200320073602c801200320083602c401200320093602c00120034180036a2002360200200320023602fc02200320043602f802200341086a200510c302200541c0006a200341c0016a200341f8026a2003280208200328020c10c4020b200020032903d802370200200041086a200341d8026a41086a2802003602000b200341a0056a106c0b200b0d0c2008450d0c0c0b0b41b082c2004110200341f8026a41c082c20041d483c2001034000b41b082c2004110200341f8026a41c082c20041e483c2001034000b41b082c2004110200341f8026a41c082c20041d483c2001034000b41b082c2004110200341f8026a41c082c20041e483c2001034000b102c000b410121050b02402004450d00200210300b2005450d010b200341f8046a10ce010c010b20034181056a200341f8026a41026a2d00003a000020034188056a200341c0016a41026a2d00003a00002003418f056a200341d8026a41026a2d00003a0000200320032d00fa033a00fa04200320032f01f8033b01f804200320133600fb04200320032f01f8023b00ff042003201136018205200320032f01c0013b0186052003201236008905200320032f01d8023b008d0520032006360294052003200c360290050b20004100360208200042013702004120102f2205450d00200342203702fc03200320053602f803200341f8036a200341f8046a41201064200020032802f80322052003280280041064024020032802fc03450d00200510300b20080d010c020b102a000b200910300b200341c0066a24000b890201047f230041206b2203240002400240200041046a2802002204200041086a28020022056b2002490d00200028020021040c010b0240200520026a22062005490d00200441017422052006200520064b1b22054108200541084b1b21050240024020040d00200341003602100c010b200341106a41086a410136020020032004360214200320002802003602100b200320054101200341106a10b402200341086a2802002105024020032802004101460d00200020032802042204360200200041046a2005360200200041086a28020021050c020b2005450d00102a000b102c000b200420056a200120021085051a200041086a2200200028020020026a360200200341206a24000bd30702047f067e230041b0016b2204240020044190016a41086a41002802b8f541360200200441002902b0f541370390010240024002402001200320044190016a20022802101100000d004130102f2201450d02200141003a000020012003290000370001200141096a200341086a290000370000200141116a200341106a290000370000200141196a200341186a29000037000020002001360204200041013602000c010b200441d0006a41186a2205200341186a290000370300200441d0006a41106a2206200341106a290000370300200441d0006a41086a200341086a290000370300200420032900003703504120102f2207450d0120044190016a41186a2005290300220837030020044190016a41106a2006290300220937030020044190016a41086a200441d0006a41086a290300220a370300410041003502e0ac42200441f0006aad7c42adfed5e4d485fda8d8007e422189220b3e02e0ac4220042004290350220c37039001200441c0006a41e0acc200ad220d42a4bb99fed1a0bbb02385420042adfed5e4d485fda8d8004200108405200441206a200b42a4bb99fed1a0bbb02385420042adfed5e4d485fda8d8004200108405200441306a200d42c5ecb3fec9ecf7c2c30085420042adfed5e4d485fda8d8004200108405200441106a200b42c5ecb3fec9ecf7c2c30085420042adfed5e4d485fda8d80042001084052004200b200d85420042adfed5e4d485fda8d80042001084052000413c6a4200370200200041386a41002802e88f42360200200041c4006a4200370200200041d0006a4108360200200041cc006a2007360200200441f0006a41186a22052008370300200441f0006a41106a22062009370300200441f0006a41086a2207200a3703002004200c370370200041e0006a41013a0000200041dc006a2003360200200041d8006a2002360200200041d4006a2001360200200041306a42003703002000412c6a41bcf5c100360200200041286a4100360200200041086a200b200441c0006a41086a2903002004290340857c200441086a29030020042903008542cf829ebbefefde82147c220889370300200041206a200441106a41086a290300200429031085200d7c200842308889370300200041186a200b200441306a41086a2903002004290330857c200842208889370300200041106a200441206a41086a290300200429032085200d7c200842108889370300200041e1006a2004290370370000200041e9006a2007290300370000200041f1006a2006290300370000200041f9006a200529030037000020004184016a4100360200200041003602000b200441b0016a24000f0b102a000bcf0502037f047e23004190016b22042400410121050240024020012d00584101460d00200141dc006a2802002106410021050c010b200441266a200141db006a2d00003a0000200441106a200141e8006a290200370300200441186a200141f0006a290200370300200441206a200141f8006a2d00003a00002004200141d9006a2f00003b01242004200141e0006a290200370308200141dc006a28020021060b200441003602302004200336022c2004200236022820044100360238200441c8006a41086a2004290308370300200441c8006a41106a200441086a41086a290300370300200441c8006a41186a200441086a41106a290300370300200441e8006a200441086a41186a280200360200200420053a0048200420042f01243b00492004200441246a41026a2d00003a004b2004200636024c200441f0006a2001200441c8006a200441286a200441386a10b00420042802742105024002400240024020042802704101460d00200441f0006a41086a2d000041ff01714102470d01200441c8006a418de2c10041011065200141f1006a200441c8006a41186a2205290000370000200141e9006a200441c8006a41106a2202290000370000200141e1006a200441c8006a41086a2203290000370000200141d9006a2004290048370000200141013a0058200441c8006a418de2c10041011065200441f0006a41186a20052900002207370300200441f0006a41106a20022900002208370300200441f0006a41086a2003290000220937030020042004290048220a37037020012802542201200a370000200141186a2007370000200141106a2008370000200141086a20093700000c020b200041013602002000200536020420042802382201450d02200428023c450d02200110300c020b200141003a0058200141dc006a20053602000b20002004290338370204200041003602002000410c6a200441c0006a2802003602000b20044190016a24000bd70b03027f017e047f23004180076b22062400024002400240024002400240024002400240024020022d00004101470d0020064188036a200241196a29000037030020064180036a200241116a290000370300200641f8026a200241096a290000370300200620022900013703f0022003280208220741017621020240024020074101710d00200328020422072002490d05200641003a00f803200620023602f403200620032802003602f0030c010b200328020422072002490d05200220074f0d062006200328020022073602f003200620023602f403200641f9036a200720026a2d000041f001713a0000200641013a00f8030b2001200641f0026a200641f0036a10a9042208422088a721022008a7450d012000410136020020002002360204200441046a280200450d02200428020010300c020b200241046a28020021020b0240200141c8006a220928020022072007417f6a220a200141c0006a220b28020022072001413c6a220c2802006b716b4101470d00200c10b2012009280200417f6a210a200b28020021070b200b200a200741016a71360200200141c4006a28020020074102746a2002360200200141386a280200220720024d0d04200141306a220c280200200241fc006c6a22022d0000210720022f0001210a200241036a2d0000210b200641086a200241046a220941f8001085051a20094100360200200241003a0000200641f8016a200641086a41f8001085051a200a200b411074722102024002400240024020074101470d00200328020821072003280204210a2003280200210b20064198066a20064198026a41d8001085051a200641f0066a41086a200441086a280200360200200620042902003703f006200641f0026a200120064198066a2003200641f0066a200510aa0420062802f0024101460d0320062802f4022104200641c0056a200641f0026a41086a41d8001085051a200641e8046a200641c0056a41d8001085051a4101210320044101470d01200641f0026a41156a200641086a41156a290000370000200641f0026a41106a200641086a41106a290000370300200641f0026a41086a200641086a41086a290000370300200620062900083703f00220064190036a200641e8046a41d8001085051a200641f0036a200641f0026a41f8001085051a410021010c020b20064198066a200641086a41d8001085051a200641f0066a41086a200441086a280200360200200620042902003703f006200641f0026a200120064198066a2003200641f0066a200510aa0420062802f0024101460d0220062802f4022101200641c0056a200641f0026a41086a41d8001085051a200641e8046a200641c0056a41d8001085051a200641f0036a200641e8046a41d8001085051a20014101472101410021030c010b20064188036a2006411d6a29000037000020064183036a200641186a290000370000200641fb026a200641106a290000370000200620062900083700f302200741017621030240024020074101710d00200a2003490d09410021040c010b200a2003490d092003200a4f0d0a200b20036a2d00004170712107410121040b20064190036a200b200310ab04200641bd036a20073a0000200641bc036a20043a0000200620023b01f002200620024110763a00f2022001200641f0026a10ac04200641f0036a200641e8046a41d8001085051a41002103410121010b20064180016a200641f0036a41f8001085051a200641f0036a20064180016a41f8001085051a200620033a00f002200620023b00f102200620024110763a00f302200641f0026a410472200641f0036a41f8001085051a200c200641f0026a10b3012102200041086a20013a000020002002360204200041003602000c010b20062802f402210120004101360200200020013602040b20064180076a24000f0b2002200741a099c2001042000b2002200741b099c2001042000b2002200741c099c2001033000b2002200741acf0c1001033000b2003200a41a099c2001042000b2003200a41b099c2001042000b2003200a41c099c2001033000b9618020c7f017e230041c0026b220424000240200041086a2802002205280224450d002005106c0b200520042903103703002005410036022420052004290338370328200541206a200441106a41206a280200360200200541186a200441106a41186a290300370300200541106a200441106a41106a290300370300200541086a200441106a41086a290300370300200541306a200441386a41086a290300370300200541386a200441386a41106a290300370300200541c0006a200441386a41186a290300370300200541c8006a200441386a41206a290300370300200541d0006a200441e0006a290300370300200541d8006a200441386a41306a290300370300200541003a0060200541e1006a20042900d001370000200541e9006a200441d0016a41086a290000370000200541f1006a200441d0016a41106a290000370000200541f9006a200441d0016a41186a29000037000020054180016a200441ef016a29000037000020002802002106200420033602c401200420023602c001200441086a200610c30202400240024002400240024020012802082205417f4c0d0020012802002107200428020c2108200428020821094101210a02402005450d002005102f220a450d020b200a20072005108505210a200420053602402004200536023c2004200a360238200441d0016a20064198016a200441386a1082030240024020042802d0014101460d00200441286a200441ec016a280200360200200441206a200441e4016a290200370300200441186a200441dc016a290200370300200420042902d401370310200441386a200641c0006a1083030240024020050d00410121060c010b2005102f2206450d040b20044194016a200536020020042006360290012006200720051085051a20044198016a2005360200200441106a200441386a108403210b0c010b200441d8016a280200200441dc016a28020041e4006c6a4188016a210b0b2004200441c0016a3602b002200441d0016a200b10e002200441386a41186a200441d0016a41186a280200360200200441386a41106a200441d0016a41106a290300370300200441386a41086a200441d0016a41086a290300370300200420042903d001370338200b41146a210c2004200441b0026a360254200441b0026a210d03402004280250210e024003400240200e0d00410021050c020b2004200e417f6a220e360250200441386a4100200428023c1b220f280200210a02400240200f2802082207200f28020422052f018a0c4f0d00200521060c010b03400240200528020022060d00410021060c020b200a41016a210a20052f01880c210720062105200720062f018a0c4f0d000b0b02400240200a450d00200741027420066a41900c6a28020021050240200a417f6a220a450d000340200528028c0c2105200a417f6a220a0d000b0b4100210a0c010b200741016a210a200621050b200f2005360204200f4100360200200f200a36020820062007410c6c6a2205410c6a280200200d280200220a280204220f490d00200a280200200541046a2205280200200f1088050d000b200620074107746a4188016a21070b02402005450d00200441003602900220052802082206417f4c0d02200528020021050240024020060d004101210a0c010b2006102f220a450d040b200a20052006108505210f02400240200b28020c22054106490d00200b2802182105200b280214210a0c010b200c210a0b024002400240200a450d0020050d010b410221052006450d01200f10300c010b20042006360218200420063602142004200f3602102005410c6c200a6a41746a200441106a10e10221050b200720044190026a20052005410247712009200810e2022004280254210d0c010b0b2001280208220641176a2205417f4c0d002000280204210a200128020021070240024020050d004101210f0c010b2005102f220f450d020b200441003602402004200536023c2004200f360238200441386a418b90c200411710fd02200441386a2007200610fd02200428023c2105200441d0016a200a2004280238220f200428024010e70202402005450d00200f10300b20042802d0014101460d050240024020042802d40122050d00200441386a10ce01200441003602a801200442013703a0014120102f2205450d032004422037021420042005360210200441106a200441386a41201064200441a0016a200428021022052004280218106402402004280214450d00200510300b20042802a80121050c010b200441d8016a2903002110200420053602a001200420103702a4012010422088a721050b200441106a41186a220e4200370300200441106a41106a220d4200370300200441106a41086a220b42003703002004420037031020054120470d02200b20042802a001220f41086a290000370300200d200f41106a290000370300200e200f41186a2900003703002004200f290000370310200441b0016a41086a2006360200200420073602b4012004200a3602b001200441386a41086a41002802b8f541360200200441002902b0f54137033802400240200441b0016a200441106a200441386a10d4010d004130102f2205450d03200541003a000020052004290310370001200541096a200441186a290300370000200541116a200441206a290300370000200541196a200441286a2903003700000c010b200441003602cc01200441ecddc1003602c4012004200441106a3602c8012004200441b0016a3602c001200441386a200441c0016a2002200310e302200441d0016a41086a2206200441386a41106a290300370300200441d0016a41106a220a200441386a41186a290300370300200441d0016a41186a2207200441386a41206a290300370300200441d0016a41206a220e200441386a41286a290300370300200441d0016a41286a220d200441386a41306a290300370300200441d0016a41306a220b200441386a41386a290300370300200441d0016a41386a2208200441f8006a2802003602002004200441386a41086a2903003703d001200428023c210520042802384101460d00200441c4006a22092006290300370200200441cc006a200a290300370200200441d4006a2007290300370200200441dc006a200e290300370200200441e4006a200d290300370200200441ec006a200b290300370200200441f4006a200828020036020020042005360238200420042903d00137023c20044190026a200441386a10e40220042802900222064102460d0402400340200428029402210520064101460d012004290398022210422088a72206417f4c0d0320042802a402210720042802a002210d2000280200210e0240024020060d004101210a0c010b2006102f220a450d050b200420063602b4022004200a3602b002200a200520061085051a200420063602b8022004410036029002200e2001200441b0026a20044190026a10c70202402007450d00200d10300b02402010a7450d00200510300b20044190026a200441386a10e40220042802900222064102470d000c060b0b0240200441386a410c6a280200220a450d00200428023c2106200a41306c210703402006280200220a200a280200417f6a36020002402006280200220a2802000d000240200a410c6a280200450d00200a28020810302006280200210a0b200a41046a220a200a280200417f6a3602002006280200220a41046a2802000d00200a10300b200641306a2106200741506a22070d000b0b0240200441c0006a2802002206450d00200641306c450d00200428023c10300b20042802484125490d00200441d0006a28020010300b02400240024020052d00000e0402020002010b200541086a280200450d01200541046a28020010300c010b200541286a280200450d00200541246a28020010300b200510300c040b102c000b102a000b41202005418c91c200105b000b024020092802002206450d00200428023c2105200641306c210a0340200528020022062006280200417f6a3602000240200528020022062802000d0002402006410c6a280200450d0020062802081030200528020021060b200641046a22062006280200417f6a3602002005280200220641046a2802000d00200610300b200541306a2105200a41506a220a0d000b0b0240200441c0006a2802002205450d00200541306c450d00200428023c10300b20042802484125490d00200441d0006a28020010300b20042802a401450d00200f10300b200441c0026a24000ba503010b7f02400240024020012802042203450d00200128020021040c010b41d809102f2203450d0141002104200341003b01d6092003410036020020012003360204200141003602000b02400340200341046a210520032f01d6092206410c6c2107417f2108410021090340024002402007450d00024002402002280200220a20052802002005280208220b2002280208220c200c200b4b1b108805220d0d00200c200b490d01200c200b47210b0c030b4101210b200d41004e0d02200921060c010b200841016a21060b02402004450d002004417f6a2104200320064102746a41d8096a28020021030c030b200020022902003702042000411c6a2001360200200041186a2006360200200041146a200336020041002105200041106a41003602002000410c6a200241086a2802003602000c030b2005410c6a2105200941016a2109200841016a2108200741746a2107200b0d000b0b20002004360204200041106a20013602002000410c6a2008360200200041086a200336020041012105200241046a280200450d00200a1030200041013602000f0b200020053602000f0b102a000bbb0602097f017e230041a0016b220224000240200128020c22034106490d00200141186a28020021030b200242003703082002200336025c2002420037025420024180016a200241086a2003109203024002400240024002402002280280014101470d0020024188016a2802000d0141d099c200411141e499c200102d000b02400240200228020822044106490d00200241146a22052802002106200241106a28020021070c010b200241106a2107200241086a210520042106410521040b0240024020062004490d00200621040c010b20072006410c6c6a2107200620036a20046b210820024180016a410472210903402003450d04200242003703880120072009290200370200200741086a200941086a2802003602002007410c6a21072003417f6a21032004200641016a2206470d000b2002200836025c0b20052004360200200241e0006a41086a200241d0006a41086a290300370300200220022903503703600240200228026c2207450d00200241086a410c6a2108200241086a41086a210a20024180016a4104722109034020022007417f6a36026c0240024020022802680d0020024200370388010c010b20022802642207450d0420092002280260200710f2040b200241f0006a41086a200941086a280200220736020020022009290200220b37037020024190016a41086a220520073602002002200b3703900102400240200228020822064106490d002002280214210720022802102104200821030c010b200241086a210320062107200a2104410521060b024020072006470d0020024180016a200241086a410110920302402002280280014101470d0020024188016a2802000d0441d099c200411141e499c200102d000b2002280214210720022802102104200821030b20042007410c6c6a2207200229039001370200200741086a20052802003602002003200328020041016a360200200228026c22070d000b0b200241e0006a10d4030c030b102a000b41b2abc200412b41a082c200102d000b2002410036025c20052006360200200241d0006a10d4030b200042003702042001280250210720012d005421032000410c6a200241086a41c4001085051a200020033a005420002007360250200241a0016a24000b9c13050c7f017e027f017e027f23004190046b22022400200041146a2802002103024002400240200041106a28020022042f01d6092205410a4b0d00200241a8036a41086a2206200041086a280200360200200220002902003703a803200441046a21070240200341016a220820054b22090d0020072008410c6c6a20072003410c6c6a200520036b410c6c1086051a0b20072003410c6c6a220720022903a803370200200741086a2006280200360200200241a8036a200141e4001085051a20044188016a2107024020090d002007200841e4006c6a2007200341e4006c6a200520036b41e4006c1086051a0b2007200341e4006c6a220a200241a8036a41e4001085051a2004200541016a3b01d6090c010b410521074100210b02400240200341054f0d0041042107200321060c010b41052106024002402003417b6a0e020201000b200341796a21064101210b410621070c010b410021064101210b0b200028020c21090240024002400240024002400240024002400240024041d809102f2205450d00200541003b01d60920054100360200200520042f01d609220c2007417f736a22033b01d609200441046a220d2007410c6c6a2208290204210e2008280200210f200241a8036a20044188016a2210200741e4006c6a41e4001085051a2003410c4f0d01200c200741016a22086b2003470d02200541046a200d2008410c6c6a2003410c6c1085051a20054188016a2010200841e4006c6a200341e4006c1085051a200420073b01d609200241c0026a200241a8036a41e4001085051a20052004200b1b22032f01d6092107200241a8036a41086a220b200041086a280200360200200220002902003703a803200341046a21080240200641016a220c20074b220d0d002008200c410c6c6a20082006410c6c6a200720066b410c6c1086051a0b20082006410c6c6a220820022903a803370200200841086a200b280200360200200241a8036a200141e4001085051a20034188016a21010240200d0d002001200c41e4006c6a2001200641e4006c6a200720066b41e4006c1086051a0b2001200641e4006c6a220a200241a8036a41e4001085051a2003200741016a3b01d609200241d8016a200241c0026a41e4001085051a200241086a200241d8016a41e4001085051a024002400240200428020022030d00410021090c010b410021072005210d200e2111200f211003402003210820042f01d4092106200241f0006a200241086a41e4001085051a20092007470d0620082f01d609220c410b490d024100210b41042104024020064105490d0020062104024002402006417b6a0e020201000b200641796a21064101210b410621040c010b410021064101210b410521040b41880a102f2205450d03200541003b01d60920054100360200200520082f01d60922122004417f736a22033b01d60920082004410c6c6a220741086a290200210e200741046a280200210f200241a8036a20084188016a2213200441e4006c6a41e4001085051a2003410c4f0d072012200441016a22016b2003470d08200541046a200741106a2003410c6c1085051a20054188016a2013200141e4006c6a200341e4006c1085051a200820043b01d609200241c0026a200241a8036a41e4001085051a20052f01d609220341016a21072003410c4f0d09200c20046b22042007470d0a200941016a2109200541d8096a200820014102746a41d8096a20044102741085051a4100210402400340200520044102746a41d8096a280200220720043b01d40920072005360200200420034f0d01200420042003496a220420034d0d000b0b200241d8016a200241c0026a41e4001085051a20052008200b1b220741046a21010240200641016a220320072f01d60922044b220c0d0020012003410c6c6a20012006410c6c6a200420066b410c6c1086051a0b20012006410c6c6a2201201137020420012010360200200241a8036a200241f0006a41e4001085051a20074188016a210b0240200c0d00200b200341e4006c6a200b200641e4006c6a200420066b41e4006c1086051a0b200441016a2101200b200641e4006c6a200241a8036a41e4001085051a200741d8096a210b0240200641026a2210200441026a220c4f0d00200b20104102746a200b20034102746a200420066b4102741086051a0b200b20034102746a200d360200200720013b01d60902402003200c4f0d00200720064102746a41dc096a2104034020042802002203200641016a22063b01d40920032007360200200441046a210420012006470d000b0b200241086a200241d8016a41e4001085051a20082104200921072005210d200e2111200f2110200828020022030d000b0b200241a8036a200241086a41e4001085051a200028021822032802042207450d092003280200210641880a102f2204450d01200420073602d809200441003b01d60920044100360200200741003b01d40920072004360200200320043602042003200641016a36020020062009470d0a20042f01d6092207410b4f0d0b2004200741016a22063b01d60920042007410c6c6a220141086a200e370200200141046a200f3602002004200741e4006c6a4188016a200241a8036a41e4001085051a200441d8096a20064102746a2005360200200520063b01d409200520043602002003200328020841016a3602080c0d0b200841046a21040240200c20064d22030d0020042006410c6c6a2205410c6a2005200c20066b410c6c1086051a0b20042006410c6c6a2204201137020420042010360200200241a8036a200241086a41e4001085051a200641016a210420084188016a2105024020030d002005200441e4006c6a2005200641e4006c6a200c20066b41e4006c1086051a0b200c41016a21072005200641e4006c6a200241a8036a41e4001085051a200841d8096a2105200c41026a2101024020030d00200641027420056a41086a200520044102746a200c20066b4102741086051a0b200820073b01d609200520044102746a200d360200200420014f0d0b200c41016a210720082004417f6a22044102746a41dc096a2103034020032802002205200441016a22043b01d40920052008360200200341046a210320072004470d000c0c0b0b102a000b2003410b41e8a2c2001042000b41f8a2c200412841a0a3c200102d000b41b0a3c200413541e8a3c200102d000b2003410b41e8a2c2001042000b41f8a2c200412841a0a3c200102d000b2007410c41f8a3c2001042000b41f8a2c200412841a0a3c200102d000b41b2abc200412b41e0abc200102d000b41eaa0c2004130419ca1c200102d000b41aca1c200412041cca1c200102d000b20002802182204200428020841016a3602080b20024190046a2400200a0bd422020a7f017e230041c0026b220524000240200141086a2802002206280224450d002006106c0b200620052903703703002006410036022420062005290308370328200641206a200541f0006a41206a280200360200200641186a200541f0006a41186a290300370300200641106a200541f0006a41106a290300370300200641086a200541f0006a41086a290300370300200641306a200541086a41086a290300370300200641386a200541086a41106a290300370300200641c0006a200541086a41186a290300370300200641c8006a200541086a41206a290300370300200641d0006a200541306a290300370300200641d8006a200541086a41306a290300370300200641003a0060200641e1006a20052900b001370000200641e9006a200541b0016a41086a290000370000200641f1006a200541b0016a41106a290000370000200641f9006a200541b0016a41186a29000037000020064180016a200541cf016a29000037000020052001280200220710c3020240024002400240024002400240024020022802082206417f4c0d0020022802002108200528020421092005280200210a4101210b02402006450d002006102f220b450d020b200b20082006108505210b200520063602102005200636020c2005200b360208200541b0016a20074198016a200541086a1082030240024020052802b0014101460d0020054188016a200541cc016a28020036020020054180016a200541c4016a290200370300200541f8006a200541bc016a290200370300200520052902b401370370200541086a200741c0006a1083030240024020060d004101210b0c010b2006102f220b450d040b200541e4006a20063602002005200b360260200b200820061085051a200541e8006a2006360200200541f0006a200541086a108403210c0c010b200541b8016a280200200541bc016a28020041e4006c6a4188016a210c0b200541b0016a200c10e002200541086a41186a200541b0016a41186a280200360200200541086a41106a200541b0016a41106a290300370300200541086a41086a200541b0016a41086a290300370300200520052903b001370308200c41146a210d2005200541b0026a36022403404100210b024020052802202206450d0020052006417f6a360220200541086a4100200528020c1b220e280200210702400240200e2802082208200e280204220b2f018a0c4f0d00200b21060c010b03400240200b28020022060d00410021060c020b200741016a2107200b2f01880c21082006210b200820062f018a0c4f0d000b0b024002402007450d00200841027420066a41900c6a280200210b02402007417f6a2207450d000340200b28028c0c210b2007417f6a22070d000b0b410021070c010b200841016a21072006210b0b200e200b360204200e4100360200200e2007360208200620084107746a4188016a210720062008410c6c6a41046a210b0b0240200b450d002005410036028002200b2802082206417f4c0d02200b280200210b0240024020060d00410121080c010b2006102f2208450d040b2008200b2006108505210e02400240200c28020c220b4106490d00200c280218210b200c28021421080c010b200d21080b0240024002402008450d00200b0d010b4102210b2006450d01200e10300c010b20052006360278200520063602742005200e360270200b410c6c20086a41746a200541f0006a10e102210b0b200720054180026a200b200b41024771200a200910e2020c010b0b20012802042106024020034101460d002002280208220741176a220b417f4c0d012002280200210e02400240200b0d00410121080c010b200b102f2208450d030b200541003602102005200b36020c20052008360208200541086a418b90c200411710fd02200541086a200e200710fd02200528020c210b200541b0016a200620052802082208200528021010e7020240200b450d00200810300b4101210b024020052802b0014101470d00410021060c090b0240024020052802b40122080d00200541086a10ce01200541003602f801200542013703f0014120102f220b450d04200542203702742005200b360270200541f0006a200541086a41201064200541f0016a2005280270220b2005280278106402402005280274450d00200b10300b20052802f001210820052802f801210b0c010b200541b8016a290300210f200520083602f0012005200f3702f401200f422088a7210b0b20054180026a41186a220c420037030020054180026a41106a2209420037030020054180026a41086a220a42003703002005420037038002200b4120470d03200c200841186a2900003703002009200841106a290000370300200a200841086a2900003703002005200829000037038002200541a0026a41086a20073602002005200e3602a402200520063602a002200541086a41086a41002802b8f541360200200541002902b0f5413703080240200541a0026a20054180026a200541086a10d4010d004130102f2207450d0341002106200741003a00002007200529038002370001200741096a20054188026a290300370000200741116a20054190026a290300370000200741196a20054198026a2903003700000c070b200541003602bc02200541a8a3c0003602b402200520054180026a3602b8022005200541a0026a3602b002200541086a200541b0026a10da02200541b0016a41086a2206200541086a41106a290300370300200541b0016a41106a220b200541086a41186a290300370300200541b0016a41186a220e200541086a41206a290300370300200541b0016a41206a220c200541086a41286a290300370300200541b0016a41286a2209200541086a41306a290300370300200541b0016a41306a220a200541086a41386a290300370300200541b0016a41386a220d200541086a41c0006a2802003602002005200541086a41086a2903003703b001200528020c210720052802084101460d05200541f0006a41386a200d280200360200200541f0006a41306a200a290300370300200541f0006a41286a2009290300370300200541f0006a41206a200c290300370300200541f0006a41186a200e290300370300200541f0006a41106a200b290300370300200541f0006a41086a2006290300370300200520052903b00137037041c000102f220c450d02200c2007360200200c2005290370370204200c410c6a200541f8006a290300370200200c41146a20054180016a290300370200200c411c6a20054188016a290300370200200c41246a20054190016a290300370200200c412c6a20054198016a290300370200200c41346a200541a0016a290300370200200c413c6a200541a8016a280200360200200541086a200c10e40241002106024002402005280208220b4102460d00410021060340200528020c2107200b4101460d022005280214210b200528021021090240200528021c450d00200528021810300b200b417f4c0d042001280200210a02400240200b0d004101210e0c010b200b102f220e450d060b200641016a220d20064921062005200b3602b4012005200e3602b001200e2007200b1085051a2005200b3602b80120054100360208200a2002200541b0016a200541086a10c70202402009450d00200710300b417f200d20061b2106200541086a200c10e4022005280208220b4102470d000b0b200c108603200c10300c080b200c108603200c10300c060b2002280208220841176a220b417f4c0d002002280200210e02400240200b0d00410121070c010b200b102f2207450d020b200541003602102005200b36020c20052007360208200541086a418b90c200411710fd02200541086a200e200810fd02200528020c210b200541b0016a200620052802082207200528021010e7020240200b450d00200710300b4101210c0240024020052802b0014101470d00410021060c010b0240024020052802b40122070d00200541086a10ce01200541003602f801200542013703f0014120102f220b450d04200542203702742005200b360270200541f0006a200541086a41201064200541f0016a2005280270220b2005280278106402402005280274450d00200b10300b20052802f001210720052802f801210b0c010b200541b8016a290300210f200520073602f0012005200f3702f401200f422088a7210b0b20054180026a41186a220c420037030020054180026a41106a2209420037030020054180026a41086a220a42003703002005420037038002200b4120470d04200c200741186a2900003703002009200741106a290000370300200a200741086a2900003703002005200729000037038002200541a0026a41086a20083602002005200e3602a402200520063602a002200541086a41086a41002802b8f541360200200541002902b0f541370308024002400240200541a0026a20054180026a200541086a10d4010d004130102f220b450d0541002106200b41003a0000200b200529038002370001200b41096a20054188026a290300370000200b41116a20054190026a290300370000200b41196a20054198026a2903003700000c010b200541003602bc02200541a8a3c0003602b402200520054180026a3602b8022005200541a0026a3602b002200541086a200541b0026a10da02200541b0016a41086a2206200541086a41106a290300370300200541b0016a41106a2208200541086a41186a290300370300200541b0016a41186a220e200541086a41206a290300370300200541b0016a41206a220c200541086a41286a290300370300200541b0016a41286a2209200541086a41306a290300370300200541b0016a41306a220a200541086a41386a290300370300200541b0016a41386a220d200541086a41c0006a2802003602002005200541086a41086a2903003703b001200528020c210b024020052802084101460d00200541f0006a41386a200d280200360200200541f0006a41306a200a290300370300200541f0006a41286a2009290300370300200541f0006a41206a200c290300370300200541f0006a41186a200e290300370300200541f0006a41106a2008290300370300200541f0006a41086a2006290300370300200520052903b00137037041c000102f220e450d05200e200b360200200e2005290370370204200e410c6a200541f8006a290300370200200e41146a20054180016a290300370200200e411c6a20054188016a290300370200200e41246a20054190016a290300370200200e412c6a20054198016a290300370200200e41346a200541a0016a290300370200200e413c6a200541a8016a280200360200200541086a200e10e4024100210602400240200528020822084102460d00410021060340200528020c210b024002400240024020084101460d0020052802142108200528021021090240200528021c450d00200528021810300b20042006470d01200421060c020b200e108603200e10300c070b200641016a220c20064f0d010b4100210c2009450d03200b10300c030b2008417f4c0d072001280200210a0240024020080d00410121060c010b2008102f2206450d090b200520083602b401200520063602b0012006200b20081085051a200520083602b80120054100360208200a2002200541b0016a200541086a10c70202402009450d00200b10300b200541086a200e10e402200c2106200528020822084102470d000b200c21060b4101210c0b200e108603200e10300c020b410021060b024002400240200b2d00000e0402020002010b200b41086a280200450d01200b41046a28020010300c010b200b41286a280200450d00200b41246a28020010300b200b10304101210c0b20052802f401450d00200710300b200c410047210b0c070b102c000b102a000b4120200b418c91c200105b000b4120200b418c91c200105b000b410021060b02400240024020072d00000e0402020002010b200741086a280200450d01200741046a28020010300c010b200741286a280200450d00200741246a28020010300b200710300b024020052802f401450d00200810300b4101210b0b200020063602042000200b3a0000200541c0026a24000bcd0101037f02402000410c6a2802002201450d0020002802042102200141306c21030340200228020022012001280200417f6a3602000240200228020022012802000d0002402001410c6a280200450d0020012802081030200228020021010b200141046a22012001280200417f6a3602002002280200220141046a2802000d00200110300b200241306a2102200341506a22030d000b0b0240200041086a2802002202450d00200241306c450d00200028020410300b024020002802104125490d00200041186a28020010300b0bb80301047f23004190016b220424000240200041086a2802002205280224450d002005106c0b200520042903683703002005410036022420052004290330370328200541206a200441e8006a41206a280200360200200541186a200441e8006a41186a290300370300200541106a200441e8006a41106a290300370300200541086a200441e8006a41086a290300370300200541306a200441306a41086a2206290300370300200541386a200441306a41106a290300370300200541c0006a200441306a41186a290300370300200541c8006a200441306a41206a290300370300200541d0006a200441d8006a290300370300200541d8006a200441306a41306a290300370300200541003a0060200541e1006a2004290008370000200541e9006a200441086a41086a2207290000370000200541f1006a200441086a41106a290000370000200541f9006a200441086a41186a29000037000020054180016a200441276a290000370000200028020021052007200241086a280200360200200420022902003703082006200341086a2802003602002004200329020037033020052001200441086a200441306a10c70220044190016a24000bde0302037f017e230041106b2204240002400240024002400240024002400240200028020022054198016a2001280200200128020810ed022206450d0020062002200310e6022206450d0002400240200628020022014106490d00200628020c2101200628020821000c010b200641086a21000b2000450d022001450d02024020002001417f6a41186c6a2201280200450d0020052802000d04200141086a3502002107200541003602002005200529030842017c37030820052802100d0520054100360210200541186a2205200529030020077c370300200128020021010c020b20052802000d0541002101200541003602002005200529030842017c37030820052802100d06200541003602100c010b2004200028020420012002200310ee0220042802004101460d060240200428020422010d00410021010c010b200441086a280200450d00200110300b200441106a240020014100470f0b418486c20041fc00418087c2001050000b41b082c2004110200441c082c20041b483c2001034000b41b082c2004110200441c082c20041c483c2001034000b41b082c2004110200441c082c20041b483c2001034000b41b082c2004110200441c082c20041c483c2001034000b41d488c1004130200441dcfcc00041ccfdc0001034000b9a0301037f230041306b22052400200028020041a4016a2106024002400240024020030d004107102f2204450d02200441036a41002800b78e42360000200441002800b48e423600002002417f4c0d030240024020020d00410121030c010b2002102f2203450d030b20032001200210850521032005411c6a2002360200200541186a20023602002005200336021420054287808080f00037020c20052004360208200541003602202006200541086a200541206a108a030c010b4107102f2200450d01200041036a41002800b78e42360000200041002800b48e423600002002417f4c0d020240024020020d00410121070c010b2002102f2207450d020b20072001200210850521012005411c6a2002360200200541186a20023602002005200136021420054287808080f00037020c200520003602082004417f4c0d020240024020040d00410121020c010b2004102f2202450d020b2002200320041085052102200541286a200436020020052004360224200520023602202006200541086a200541206a108a030b200541306a24000f0b102a000b102c000b8221030a7f017e0e7f23004190056b2203240002400240024002400240024002400240024002400240024002400240024020012802082204417f4c0d00200128020021050240024020040d00410121060c010b2004102f2206450d0f0b200320043602e403200320063602e0032006200520041085052107200320043602e803200141146a2802002206417f4c0d00200128020c21080240024020060d00410121090c010b2006102f2209450d0f0b200341f0036a2006360200200320093602ec03200920082006108505210a200341f4036a20063602000240024020002802042209450d002000280200210b0c010b41900d102f2209450d0f4100210b200941003b018e0d2009410036020020002009360204200041003602000b200341c8026a200b2009200341e0036a10f104024020032802c8024101460d00200341d4026a2802002109200341d0026a280200210b02402004450d00200710300b02402006450d00200a10300b200b20094107746a418c026a210c0c0e0b200341d4026a280200210920032903f003210d0240200341d0026a28020022062f018e0d2205410a4b0d00200641046a21080240200941016a220b20054b220e0d002008200b41186c6a2008200941186c6a200520096b41186c1086051a0b2008200941186c6a2208200d3702102008200a36020c2008200436020820082004360204200820073602002006418c026a21040240200e0d002004200b4107746a200420094107746a200520096b4107741086051a0b200420094107746a220c4200370200200c41086a200341e0036a41f8001085051a2006200541016a3b018e0d0c0c0b410521054100210f02400240200941054f0d0041042105200921080c010b41052108024002402009417b6a0e020201000b200941796a21084101210f410621050c010b410021084101210f0b20032802cc02210e41900d102f2209450d0e200941003b018e0d20094100360200200920062f018e0d220c2005417f736a220b3b018e0d200341086a200641046a2210200541186c6a2211410c6a290200370300200341106a201141146a2802003602002003201129020437030020112802002112200341c8026a2006418c026a221320054107746a4180011085051a200b410c4f0d01200c200541016a22116b200b470d02200941046a2010201141186c6a200b41186c1085051a2009418c026a201320114107746a200b4107741085051a200620053b018e0d200341e0036a41086a200341086a290300370300200341e0036a41106a200341106a280200360200200320032903003703e003200341f4036a200341c8026a4180011085051a200341c8026a200341e0036a4194011085051a20092006200f1b220b41046a21050240200841016a220f200b2f018e0d22114b220c0d002005200f41186c6a2005200841186c6a201120086b41186c1086051a0b2005200841186c6a2205200d3702102005200a36020c200520043602082005200436020420052007360200200b418c026a21040240200c0d002004200f4107746a200420084107746a201120086b4107741086051a0b200420084107746a220c4200370200200c41086a200341e0036a41f8001085051a200b201141016a3b018e0d20034198016a200341c8026a4194011085051a200320034198016a419401108505210b02400240200628020022040d004100210e0c010b200b41e0036a41146a2114200b41146a211541002105200921162012211703402004210a20062f018c0d2108200b41b0026a41106a2218200b41106a280200360200200b41b0026a41086a2219200b41086a290200370300200b200b2902003703b002200b4198016a20154180011085051a200e2005470d050240200a2f018e0d2213410a4b0d00200b41e0036a41106a2209200b41106a280200360200200b41e0036a41086a2205200b41086a290200370300200b200b2902003703e003200a41046a21040240201320084d22060d002004200841186c6a220741186a2007201320086b41186c1086051a0b2004200841186c6a220420173602002004200b2903e0033702042004410c6a2005290300370200200441146a2009280200360200200b41e0036a20154180011085051a200841016a2104200a418c026a2109024020060d00200920044107746a200920084107746a201320086b4107741086051a0b201341016a2105200920084107746a200b41e0036a4180011085051a200a41900d6a2109201341026a210b024020060d00200841027420096a41086a200920044102746a201320086b4102741086051a0b200a20053b018e0d200920044102746a20163602002004200b4f0d0e201341016a2105200a2004417f6a22044102746a41940d6a2106034020062802002209200441016a22043b018c0d2009200a360200200641046a210620052004470d000c0f0b0b4100211041042104024020084105490d0020082104024002402008417b6a0e020201000b200841796a210841012110410621040c010b4100210841012110410521040b41c00d102f2209450d10200941003b018e0d200941003602002009200a2f018e0d22112004417f736a22053b018e0d200b41f8046a41086a220f200a200441186c6a220641106a290200370300200b41f8046a41106a221a200641186a280200360200200b200641086a2902003703f804200641046a2802002112200b41c8026a200a418c026a221b20044107746a4180011085051a2005410c4f0d062011200441016a22076b2005470d07200941046a2006411c6a200541186c1085051a2009418c026a201b20074107746a20054107741085051a200a20043b018e0d200b41e0036a41086a2211200f290300370300200b41e0036a41106a220f201a280200360200200b200b2903f8043703e0032014200b41c8026a4180011085051a20092f018e0d220641016a21052006410c4f0d08201320046b22042005470d09200e41016a210e200941900d6a200a20074102746a41900d6a20044102741085051a4100210402400340200920044102746a41900d6a280200220520043b018c0d20052009360200200420064f0d01200420042006496a220420064d0d000b0b200b41c8026a200b41e0036a4194011085051a2009200a20101b22052f018e0d2104200f201828020036020020112019290300370300200b200b2903b0023703e003200541046a21070240200841016a220620044b22100d002007200641186c6a2007200841186c6a200420086b41186c1086051a0b2007200841186c6a220720173602002007200b2903e0033702042007410c6a2011290300370200200741146a200f280200360200200b41e0036a200b4198016a4180011085051a2005418c026a2111024020100d00201120064107746a201120084107746a200420086b4107741086051a0b200441016a2107201120084107746a200b41e0036a4180011085051a200541900d6a21110240200841026a2210200441026a220f4f0d00201120104102746a201120064102746a200420086b4102741086051a0b201120064102746a2016360200200520073b018e0d02402006200f4f0d00200520084102746a41940d6a2104034020042802002206200841016a22083b018c0d20062005360200200441046a210420072008470d000b0b200b200b41c8026a4194011085051a200a2106200e21052009211620122117200a28020022040d000b0b200b41e0036a200b4194011085051a20002802042206450d082000280200210541c00d102f2204450d0e200420063602900d200441003b018e0d20044100360200200641003b018c0d20062004360200200020043602042000200541016a3602002005200e470d0920042f018e0d2206410b4f0d0a2004200641016a22083b018e0d2004200641186c6a220541046a2012360200200541086a200b2902e003370200200541106a200b41e0036a41086a290200370200200541186a200b41e0036a41106a280200360200200420064107746a418c026a200b41f4036a4180011085051a200441900d6a20084102746a2009360200200920083b018c0d200920043602002000200028020841016a3602080c0c0b102c000b200b410b41e8a2c2001042000b41f8a2c200412841a0a3c200102d000b41b0a3c200413541e8a3c200102d000b2005410b41e8a2c2001042000b41f8a2c200412841a0a3c200102d000b2005410c41f8a3c2001042000b41f8a2c200412841a0a3c200102d000b41b2abc200412b41e0abc200102d000b41eaa0c2004130419ca1c200102d000b41aca1c200412041cca1c200102d000b2000200028020841016a3602080b20012802142106200128020c210820012802082104200128020021050b200141106a210702400240200028020c22094106490d00200041186a2802002109200041146a280200210b0c010b200041146a210b0b200728020021072001280204210a0240024002400240024002400240024002400240024002400240024002400240200b450d0020090d010b0240200a450d00200510300b2007450d01200810300c010b200341f4036a2006360200200341f0036a2007360200200320083602ec03200320043602e8032003200a3602e403200320053602e0032009410c6c200b6a41746a200341e0036a10f3040d010b0240200c28020022044106490d00200c410c6a2802002204450d01200341e0036a41086a200241086a280200360200200320022902003703e003200341e0036a2106200c28020822090d03418486c20041fc00418888c2001050000b20040d010b200341e0036a41086a200241086a280200360200200320022902003703e0030240024002400240200c28020022044106490d00200c28020c22092004460d01200c410c6a21060c0d0b4105210920044105460d01200c41086a210520042109200c21060c0d0b200c28020c2106200421090c010b200421060b20092006470d08200641016a22092006490d054100417f2009417f6a677620094102491b220941016a22062009490d050240024020044106490d00200c28020c2109200c2802082108200421050c010b200c41086a210841052105200421090b200920064b0d020240200641054b0d00200441054d0d09200c4100360204200c41086a2008200941186c1085051a200c20093602002005ad42187e220d422088a70d04200810300c090b20052006470d040c080b200341e0036a41086a200241086a280200360200200320022902003703e003200c41086a2109200341e0036a21060b024020092004417f6a41186c6a22042802002209450d00200441046a280200450d00200910300b20042006290200370200200441086a200641086a2802003602000c090b41c29ac200412041e49ac200102d000b200341003602cc022003200da73602c80241bea9c200412b200341c8026a41e485c20041f485c2001034000b2006ad42187e220d422088a70d00200da7210b0240200441054b0d00200b102f2204450d0820042008200941186c1085051a0c030b2005ad42187e220d422088a7450d010b41d099c200411141e499c200102d000b200b102f2204450d0520042008200b200da722052005200b4b1b1085051a200810300b200c200936020c200c2004360208200c4101360204200c20063602000b200c410c6a2106200c28020c21090b200c28020821050b200341e0036a41086a280200210820032903e003210d2005200941186c6a220441002802e88f4236020c2004200d370200200441106a4200370200200441086a20083602002006200628020041016a3602000b20034190056a24000f0b102a000b0900200042003702000b870703067f017e017f230041306b220524000240024002402002280208220641176a2207417f4c0d0020012802042108200228020021090240024020070d004101210a0c010b2007102f220a450d020b20054100360218200520073602142005200a360210200541106a418b90c200411710fd02200541106a2009200610fd0220052802142107200541106a20082005280210220a200528021810e70202402007450d00200a10300b02400240024020052802104101460d000240200528021422070d00200542003703000c030b200541186a290300210b200541286a4200370300200541206a4200370300200541186a42003703002005420037031002400240200b4280808080708342808080808004510d0020054101360200200ba70d010c040b200b422088a7220a4120470d02200541106a41186a200741186a290000370300200541106a41106a200741106a290000370300200541106a41086a200741086a2900003703002005200729000037031020052008200541106a20022003200410f702200ba7450d030b200710300c020b200541013602000c010b4120200a418c91c200105b000b024002400240024020052802004101460d002005410c6a2802002108200541086a280200210c200528020421070240024020012802004198016a2009200610ed0222060d0041002109200541003602100c010b200541106a20062003200410f802200541106a41086a280200210a20052802142106200528021021090b0240024020070d002009450d010c040b20090d020b2000200c36020420002007360200200041086a20083602000c030b41d488c1004130200541106a41dcfcc00041dcfdc0001034000b024002402007200920062008200820064b1b10880522030d00200820064f0d020c010b2003417f4a0d010b2000200c36020420002007360200200041086a20083602000c010b02400240200a28020022084106490d00200a410c6a2802002108200a41086a280200210a0c010b200a41086a210a0b200a450d032008450d0302400240200841186c200a6a41686a2802000d0020002001200220092006108c030c010b2006417f4c0d020240024020060d00410121020c010b2006102f2202450d040b2002200920061085052102200041086a200636020020002006360204200020023602000b2007450d00200c450d00200710300b200541306a24000f0b102c000b102a000b418486c20041fc00418087c2001050000b0600108e03000b1100418ee2c100410f41a4e3c100102d000b3d01017f230041206b2203240020002802002100200341106a20023602002003200136020c200341003602082000200341086a109003200341206a24000be80202057f017e230041c0006b22022400200241086a41106a2203200141106a290200370300200241086a41086a2204200141086a2902003703002002200129020037030802400240024020004184026a280200220120004180026a280200470d00200141016a22052001490d02200141017422062005200620054b1b22054104200541044b1bad42187e2207422088a74541027421052007a721060240024020010d00200241003602300c010b200241386a41043602002002200141186c360234200220002802fc013602300b200241206a20062005200241306a1069200241286a280200210120022802204101460d01200020022802243602fc0120004180026a200141186e36020020002802840221010b20002802fc01200141186c6a22012002290308370200200141106a2003290300370200200141086a2004290300370200200020002802840241016a36028402200241c0006a24000f0b2001450d00102a000b102c000b830c02077f017e230041d0006b22012400024002402000280200220241cc006a220328020022044106490d00200241d8006a22052802002100200241d4006a28020021060c010b200241d4006a21062004210020032105410521040b0240024020002004470d00200141206a20034101109203024020012802204101470d00200141286a2802000d0241d099c200411141e499c200102d000b200241d8006a22052802002100200241d4006a28020021060b20062000410c6c6a42003702042005200528020041016a360200200120024198016a109303200141206a41186a200141186a2802002200360200200141206a41106a200141106a290300370300200141206a41086a200141086a2903003703002001200129030037032002402000450d0020012000417f6a360238200141206a410020012802241b220328020021040240024020032802082206200328020422002f01d6094f0d00200021050c010b03400240200028020022050d00410021050c020b200441016a210420002f01d409210620052100200620052f01d6094f0d000b0b024002402004450d00200641027420056a41dc096a280200210002402004417f6a2204450d00034020002802d80921002004417f6a22040d000b0b410021040c010b200641016a2104200521000b2003200036020420034100360200200320043602082005200641e4006c6a4188016a210003402000410c6a210702400240200028020c22064106490d00200041186a210420002802182105200028021421030c010b200041146a21032006210520072104410521060b024020052006470d00200141c0006a20074101109203024020012802404101470d00200141c8006a2802000d0441d099c200411141e499c200102d000b200041186a210420002802182105200028021421030b20032005410c6c6a42003702042004200428020041016a36020020012802382200450d0120012000417f6a360238200141206a410020012802241b220328020021040240024020032802082206200328020422002f01d6094f0d00200021050c010b03400240200028020022050d00410021050c020b200441016a210420002f01d409210620052100200620052f01d6094f0d000b0b024002402004450d00200641027420056a41dc096a280200210002402004417f6a2204450d00034020002802d80921002004417f6a22040d000b0b410021040c010b200641016a2104200521000b2003200036020420034100360200200320043602082005200641e4006c6a4188016a21000c000b0b02400240024002400240200241b0016a220028020022054106490d00200241bc016a220028020022042005460d01200241b8016a28020021060c040b4105210420054105460d01200241b8016a2106200521040c030b200241bc016a2802002100200521040c010b200521000b024020042000470d00024002400240200041016a22042000490d004100417f2004417f6a677620044102491b220441016a22002004490d000240024020054106490d00200241bc016a2802002104200241b8016a2802002103200521060c010b200241b8016a210341052106200521040b024002400240200420004b0d000240200041054b0d00200541054d0d07200241b4016a4100360200200241b8016a20032004410c6c1085051a200220043602b0012006ad420c7e2208422088a70d02200310300c070b20062000470d020c060b41c29ac200412041e49ac200102d000b2001410036022420012008a736022041bea9c200412b200141206a41e485c20041f485c2001034000b2000ad420c7e2208422088a70d002008a721070240200541054b0d002007102f2205450d06200520032004410c6c1085051a0c030b2006ad420c7e2208422088a7450d010b41d099c200411141e499c200102d000b2007102f2205450d032005200320072008a72206200620074b1b1085051a200310300b200220003602b001200241bc016a2004360200200241b8016a2005360200200241b4016a41013602000b200241bc016a22002802002104200241b8016a28020021060b20062004410c6c6a42003702042000200028020041016a360200200141d0006a24000f0b102a000b870503057f017e037f230041106b2203240002400240200128020022044106490d002001410c6a2802002105200421060c010b41052106200421050b02400240200620056b2002490d00200041003602000c010b024002400240024002400240200520026a22022005490d004100417f2002417f6a677620024102491b220541016a22062005490d000240024020044106490d002001410c6a2802002105200141086a2802002107200421020c010b200141086a210741052102200421050b200520064b0d010240200641054b0d000240200441054b0d00200041003602000c080b20014100360204200141086a20072005410c6c1085051a200120053602002002ad420c7e2208422088a70d03200710300c060b20022006460d052006ad420c7e2208422088a7220945410274210a2008a7210b20090d030240200441054b0d000240200b102f2202450d00200220072005410c6c1085051a0c060b2000200b36020420004101360200200041086a200a3602000c070b2002ad420c7e2208a72104024002402008422088a70d00200b102f2202450d0120022007200b20042004200b4b1b1085051a200710300c060b2000200436020420004101360200200041086a41003602000c070b2000200b36020420004101360200200041086a200a3602000c060b2000200636020420004101360200200041086a41003602000c050b41c29ac200412041e49ac200102d000b2003410036020c20032008a736020841bea9c200412b200341086a41e485c20041f485c2001034000b2000200b36020420004101360200200041086a200a3602000c020b20014101360204200120063602002001410c6a2005360200200141086a20023602000b200041003602000b200341106a24000b8a0201057f230041206b22022400024002400240200128020422030d004100210420004100360204200041106a41003602000c010b20012802002104200321050240034020032f01d6092106024020040d002004450d020c040b2004450d032004417f6a2104200320064102746a41d8096a280200210320052802d80921050c000b0b2000200436020c200041003602082000200536020420002004360200200041146a2006360200200041106a2003360200200128020821040b20002004360218200241206a24000f0b200241146a410136020020024201370204200241f4a9c2003602002002410436021c200241eca9c2003602182002200241186a360210200241fca9c200103a000b0a0020002802001095030bb60501077f230041d0006b2201240002400240200041c0006a410010f40422020d00200141086a20004198016a109303200141286a41186a200141086a41186a2802002203360200200141286a41106a200141086a41106a290300370300200141286a41086a200141086a41086a2903003703002001200129030837032802402003450d0020012003417f6a360240200141286a4100200128022c1b220428020021050240024020042802082206200428020422032f01d6094f0d00200321070c010b03400240200328020022070d00410021070c020b200541016a210520032f01d409210620072103200620072f01d6094f0d000b0b024002402005450d00200641027420076a41dc096a280200210302402005417f6a2205450d00034020032802d80921032005417f6a22050d000b0b410021050c010b200641016a2105200721030b2004200336020420044100360200200420053602082007200641e4006c6a4188016a2103024003402003410010f4040d0120012802402203450d0220012003417f6a360240200141286a4100200128022c1b220428020021050240024020042802082206200428020422032f01d6094f0d00200321070c010b03400240200328020022070d00410021070c020b200541016a210520032f01d409210620072103200620072f01d6094f0d000b0b024002402005450d00200641027420076a41dc096a280200210302402005417f6a2205450d00034020032802d80921032005417f6a22050d000b0b410021050c010b200641016a2105200721030b2004200336020420044100360200200420053602082007200641e4006c6a4188016a21030c000b0b418c8bc2004138200141c8006a41c48bc20041b08dc2001034000b200041a4016a410010f6040d010b200141d0006a240020020f0b41e48bc2004138200141c8006a41c48bc20041a08dc2001034000bfa0201027f23004190016b220124000240200041086a2802002202280224450d002002106c0b200220012903683703002002410036022420022001290330370328200241206a200141e8006a41206a280200360200200241186a200141e8006a41186a290300370300200241106a200141e8006a41106a290300370300200241086a200141e8006a41086a290300370300200241306a200141306a41086a290300370300200241386a200141306a41106a290300370300200241c0006a200141306a41186a290300370300200241c8006a200141306a41206a290300370300200241d0006a200141d8006a290300370300200241d8006a200141306a41306a290300370300200241003a0060200241e1006a2001290009370000200241e9006a200141096a41086a290000370000200241f1006a200141096a41106a290000370000200241f9006a200141096a41186a29000037000020024180016a200141286a2900003700002000280200109703210220014190016a240020020ba90e01147f230041c0046b2201240002400240200041c0006a410110f40422020d00200041a0016a28020021032000419c016a2204280200210520044200370200200141d8036a2000280298012005200310d50320012802dc03210320012802d8032104024020012802f0032206450d000240024002402003450d0020012802e003220720032f01d609490d01034002400240200328020022050d00410021050c010b200441016a210820032f01d40921070b024041880a41d80920041b450d00200310300b024020050d00410221040c040b2008210420052103200720052f01d6094f0d000b20052103200821040c010b41b2abc200412b41d4a8c200102d000b200741016a21092003200741e4006c6a22054188016a210820032007410c6c6a220741046a210a02402004450d00200320094102746a41d8096a280200210302402004417f6a2204450d00034020032802d80921032004417f6a22040d000b0b410021090b200141c8016a41086a200841086a290200370300200120082902003703c8012007410c6a280200210b200741086a280200210c20054198016a2802002104200a280200210d200141d8036a2005419c016a41d0001085051a0b20004198016a210e20014198036a41086a220f200141c8016a41086a2210290300370300200120012903c80137039803200141b0026a200141d8036a41d0001085051a200141c8016a41146a211120014198036a4104722112200141e0006a41146a21130340200141d0006a41086a2207200f29030037030020012001290398033703502001200141b0026a41d000108505220541e0006a41086a2214200729030037030020052005290350370360200520043602702013200541d000108505210402400240200541e0006a410110f4040d002006417f6a210602402005280268450d00200541b0026a200541e0006a41e4001085051a2005200b3602e0032005200c3602dc032005200d3602d80320054198036a200e200541d8036a10820302402005280298034101460d00200541b8036a41186a201241186a280200360200200541b8036a41106a201241106a290200370300200541b8036a41086a201241086a290200370300200520122902003703b803200541d8036a200541b0026a41e4001085051a200541b8036a200541d8036a1084031a0c030b200541c8016a20052802a00320052802a40341e4006c6a4188016a220441e4001085051a2004200541b0026a41e4001085051a20052802d8014102460d02200541c8016a1090040240024020052802d40122084106490d0020052802dc01210a024020052802e0012204450d002004410c6c2107200a21040340200410d4032004410c6a2104200741746a22070d000b0b2008410c6c450d01200a10300c010b2008450d002008410c6c2107201121040340200410d4032004410c6a2104200741746a22070d000b0b20052802a402450d0220052802a00210300c020b200541e0006a10900402400240200528026c22084106490d002005280274210a024020052802782204450d002004410c6c2107200a21040340200410d4032004410c6a2104200741746a22070d000b0b2008410c6c450d01200a10300c010b2008450d002008410c6c2107200421040340200410d4032004410c6a2104200741746a22070d000b0b024020052802bc01450d0020052802b80110300b200c450d01200d10300c010b418c8bc2004138200541d8036a41c48bc20041d48bc2001034000b024020060d00410021040c020b02402003450d000240024002400240200920032f01d609490d004100210703404100210402402003280200220a450d00200741016a210920032f01d4092108200a21040b024041880a41d80920071b450d00200310300b024020040d00410221040c050b2009210720042103200820042f01d6094f0d000b2004200841e4006c6a4188016a210a20042008410c6c6a41046a210d024020090d00200421030c020b200841027420046a41dc096a280200210302402009417f6a2207450d00034020032802d80921032007417f6a22070d000b0b410021090c020b2003200941e4006c6a4188016a210a20032009410c6c6a41046a210d20092108200321040b200841016a21090b20042008410c6c6a2207410c6a280200210b200741086a280200210c200d280200210d2010200a41086a2902003703002005200a2902003703c8012004200841e4006c6a22074198016a2802002104200541d8036a2007419c016a41d0001085051a20142010290300370300200520052903c8013703600b200f20142903003703002005200529036037039803200541b0026a200541d8036a41d0001085051a0c010b0b41b2abc200412b41d4a8c200102d000b02402003450d00034020032802002105024041880a41d80920041b450d00200310300b200441016a21042005210320050d000b0b200041a4016a410110f6040d010b200141c0046a240020020f0b41e48bc2004138200141d8036a41c48bc200419c8cc2001034000b8f0101027f230041206b22052400024002402003417f4c0d00200028020021064101210002402003450d002003102f2200450d020b20002002200310850521002005411c6a2004360200200541186a2003360200200541146a2003360200200541106a20003602002005200136020c200541013602082006200541086a109003200541206a24000f0b102c000b102a000b8c0f01077f23004180036b2201240002402000280200220241cc006a28020022034106490d00200241d8006a28020021030b0240024002402003450d00034020021097030d02200028020021022003417f6a22030d000b0b200141b0016a2002200041046a200041086a280200109a0302400240024020012802d401450d00200141086a200141b0016a41a8011085051a200128026821040240200141f0006a2802002202450d00200241186c21032004210203400240200241046a280200450d00200228020010300b02402002410c6a2802002205450d00200241106a280200450d00200510300b200241186a2102200341686a22030d000b0b0240200141ec006a2802002202450d00200241186c450d00200410300b200128027421060240200141fc006a2802002202450d002006200241186c6a210720062102034002402002220441046a280200450d00200428020010300b0240200441146a2802002203450d00200428020c2102200341186c210303400240200241046a280200450d00200228020010300b02402002410c6a2802002205450d00200241106a280200450d00200510300b200241186a2102200341686a22030d000b0b200441186a21020240200441106a2802002203450d00200341186c450d00200428020c10300b20022007470d000b0b0240200141f8006a2802002202450d00200241186c450d00200610300b2001280280012104024020014188016a2802002202450d00200241246c21074100210303400240200420036a220241046a280200450d00200228020010300b0240200241106a280200450d002002410c6a28020010300b0240200241186a2802002205450d002002411c6a280200450d00200510300b2007200341246a2203470d000b0b024020014184016a2802002202450d00200241246c450d00200410300b200141086a106c0240200041086a2802002202280224450d002002106c0b200220012903d80237030020024100360224200220012903b001370328200241206a200141d8026a41206a280200360200200241186a200141d8026a41186a290300370300200241106a200141d8026a41106a290300370300200241086a200141d8026a41086a290300370300200241306a200141b0016a41086a290300370300200241386a200141b0016a41106a290300370300200241c0006a200141b0016a41186a290300370300200241c8006a200141b0016a41206a290300370300200241d0006a200141d8016a290300370300200241d8006a200141b0016a41306a290300370300200241003a0060200241e1006a2001290008370000200241e9006a200141086a41086a290000370000200241f1006a200141086a41106a290000370000200241f9006a200141086a41186a29000037000020024180016a200141276a290000370000200028020022064194016a2d00000d01200641013a0094010240200641cc006a28020022024106490d00200641d8006a28020021020b20064190016a2002360200200141086a20064198016a109303200141b0016a41186a200141086a41186a2802002202360200200141b0016a41106a200141086a41106a290300370300200141b0016a41086a200141086a41086a290300370300200120012903083703b0012002450d0420012002417f6a22073602c801200141b0016a410020012802b4011b220028020021050240024020002802082204200028020422022f01d6094f0d00200221030c010b03400240200228020022030d00410021030c020b200541016a210520022f01d409210420032102200420032f01d6094f0d000b0b024002402005450d00200441027420036a41dc096a280200210202402005417f6a2205450d00034020022802d80921022005417f6a22050d000b0b410021050c010b200441016a2105200321020b2000200236020420004100360200200020053602082003200441e4006c6a4188016a2102034020022d00540d03200241013a00540240200228020c22034106490d00200228021821030b200220033602502007450d0520012007417f6a22073602c801200141b0016a410020012802b4011b220028020021050240024020002802082204200028020422022f01d6094f0d00200221030c010b03400240200228020022030d00410021030c020b200541016a210520022f01d409210420032102200420032f01d6094f0d000b0b024002402005450d00200441027420036a41dc096a280200210202402005417f6a2205450d00034020022802d80921022005417f6a22050d000b0b410021050c010b200441016a2105200321020b2000200236020420004100360200200020053602082003200441e4006c6a4188016a21020c000b0b41d488c1004130200141d8026a41dcfcc00041ecfdc0001034000b41fcfdc00041c500200141d8026a41c4fec00041d4fec0001034000b41e08dc20041c100200141d8026a41c08dc20041a48ec2001034000b41e4fec000418e02200141d8026a41f480c100418481c1001034000b0240200641f8016a2d00000d00200641013a00f8010240200641b0016a28020022024106490d00200641bc016a28020021020b200641f4016a200236020020014180036a24000f0b41e48bc2004138200141d8026a41c08dc20041d08dc2001034000bc34803107f017e0b7f230041e0046b220424000240200341246a220528020022060d00200441286a200141c0006a10e9022004200110ea02200441b8016a41186a200441286a41186a280200360200200441b8016a41106a200441286a41106a290300370300200441b8016a41086a200441286a41086a290300370300200420042903283703b801200441d0026a41186a200441186a280200360200200441d0026a41106a200441106a290300370300200441d0026a41086a200441086a290300370300200420042903003703d002200441c8036a2002200441b8016a200441d0026a10d303200441c8006a41086a2207200441c8036a41086a290300370300200441c8006a41106a2208200441c8036a41106a290300370300200441c8006a41186a2209200441c8036a41186a290300370300200420042903c803370348200441d0026a200441e8036a41e0001085051a200441c8036a200441d0026a41e0001085051a02402005280200450d002003106c0b2003200441c8036a41e000108505220241f9006a2009290300370000200241f1006a2008290300370000200241e9006a2007290300370000200241e1006a2004290348370000200241013a0060200241246a28020021060b200541003602000240024002402006450d0020032d00602102200341003a0060200441ec036a2006360200200441c8036a41206a200341206a2207280200360200200441c8036a41186a200341186a2208290300370300200441c8036a41106a200341106a2209290300370300200441c8036a41086a200341086a220a290300370300200441c8036a41286a200341286a2205290300370300200441c8036a41306a200541086a220b29030037030020044180046a200541106a220c290300370300200441c8036a41c0006a200541186a220d290300370300200441c8036a41c8006a200541206a220e290300370300200441c8036a41d0006a200541286a290300370300200441c8036a41d8006a200541306a220f290300370300200420032903003703c8030240024020024101470d00200441b8016a41086a200a290300370300200441b8016a41106a2009290300370300200441b8016a41186a2008290300370300200441b8016a41206a2007280200360200200441d0026a41086a200b290300370300200441d0026a41106a200c290300370300200441d0026a41186a200d290300370300200441d0026a41206a200e290300370300200441d0026a41286a200541286a290300370300200441d0026a41306a200f290300370300200420032903003703b801200420052903003703d002200441d0026a41d0006a200341f9006a290000370300200441d0026a41c8006a200341f1006a290000370300200441d0026a41c0006a200341e9006a2900003703002004200341e1006a29000037038803200441c8006a200441d0026a41d8001085051a0c010b200441c8036a106c410021060b2006450d00200441d0026a41206a2203200441b8016a41206a280200360200200441d0026a41186a2205200441b8016a41186a290300370300200441d0026a41106a2202200441b8016a41106a290300370300200441d0026a41086a2207200441b8016a41086a290300370300200420042903b8013703d002200441c8036a200441c8006a41d8001085051a200441086a2007290300370300200441106a2002290300370300200441186a2005290300370300200441206a2003280200360200200441c8006a41086a200441c8036a41086a290300370300200441c8006a41106a200441c8036a41106a290300370300200441c8006a41186a200441c8036a41186a2203290300370300200441c8006a41206a200441c8036a41206a290300370300200441c8006a41286a200441c8036a41286a290300370300200441c8006a41306a200441c8036a41306a290300370300200420042903d002370300200420042903c803370348200441286a41186a20044198046a290300370300200441286a41106a20044190046a290300370300200441286a41086a200441c8036a41c0006a2903003703002004200429038004370328200441c8036a200141c0006a41d8001085051a200141cc006a4200370200200141c4006a420037020020014194016a41003a000020014190016a41003602000240024020042802d40322024106490d00200328020021030c010b200221030b20030d01024020042802cc03220a0d004100210c4100210a410021100c030b20042802d003211020042802c8032103200a210c0340200a2f018a0c210d2003450d032003417f6a2103200a200d4102746a418c0c6a280200210a200c28028c0c210c0c000b0b41c48ec100413b41808fc1001050000b41a888c200412c41d488c200102d000b0240024020024106490d00200441dc036a28020021070240200441e0036a2802002203450d002003410c6c2105200721030340200310d4032003410c6a2103200541746a22050d000b0b2002410c6c450d01200710300c010b2002450d00200441dc036a21032002410c6c21050340200310d4032003410c6a2103200541746a22050d000b0b200141a0016a28020021032001419c016a2205280200210220054200370200200441c8036a2001280298012002200310d50320042802e003211120042802d003211220042802cc03210920042802c803210f200441d0026a200141a4016a41d8001085051a200141b0016a4200370300200141a8016a420037030041002103200141f8016a41003a0000200141f4016a4100360200200441c8036a200441d0026a41d8001085051a0240024020042802cc0322050d00410021130c010b20042802d003211320042802c80321012005210303402001450d012001417f6a2101200520052f018e0d4102746a41900d6a280200210520032802900d21030c000b0b0240024020042802d40322024106490d00200441dc036a28020021070240200441e0036a2802002205450d002005410c6c2101200721050340200510d6032005410c6a2105200141746a22010d000b0b2002410c6c450d01200710300c010b2002450d00200441dc036a21052002410c6c21010340200510d6032005410c6a2105200141746a22010d000b0b0240024002400240024002400240024002400240024002400240024002400240024002400240024002402013450d002003450d0120032f018e0d0d0241002101034041002105024020032802002208450d00200141016a210720032f018c0d2102200821050b024041c00d41900d20011b450d00200310300b024020050d00410221020c060b2007210120052103200220052f018e0d4f0d000b200241016a2101200520024107746a418c026a210b2005200241186c6a41046a2108024020070d00200521030c040b200520014102746a41900d6a280200210302402007417f6a2201450d00034020032802900d21032001417f6a22010d000b0b410021010c030b4100210b410021010c040b41b2abc200412b41d4a8c200102d000b2003418c026a210b200341046a21084101210141002102200321050b20082802002107200441b0026a41106a2005200241186c6a220841186a280200360200200441b0026a41086a200841106a2902003703002004200841086a2902003703b002200520024107746a22084190026a2802002102200b2802002105200441c8036a20084194026a41f8001085051a0b200441b8016a41106a200441b0026a41106a280200360200200441b8016a41086a200441b0026a41086a290300370300200420042903b0023703b801200441d0026a200441c8036a41f8001085051a200420023602cc03200420053602c803200441c8036a41086a2202200441d0026a41f8001085051a0240024020054106490d00200441d4036a2208280200210520042802d00321020c010b200441c8036a21080b2005450d0420082005417f6a22053602002002200541186c6a220528020c2202450d04200441d4016a200541086a280200360200200420052902003702cc010240200541106a29020042ffffffff0383500d00200210300b2013417f6a210b200441c8036a10d9022007450d00417f200b41016a22052005200b491bad42247e2214422088a70d0f2014a72205417f4c0d0f2005102f2215450d0b20152007360200201520042903b8013702042015410c6a200441c0016a290300370200201541146a200441c8016a2903003702002015411c6a200441d0016a290300370200200541246e210e0240200b0d00410121134100210b0c0a0b2003450d030240024002400240200120032f018e0d490d0041002102034041002105024020032802002208450d00200241016a210720032f018c0d2101200821050b024041c00d41900d20021b450d00200310300b024020050d00410221010c050b2007210220052103200120052f018e0d4f0d000b200520014107746a418c026a21082005200141186c6a41046a2116024020070d00200521030c020b200141027420056a41940d6a280200210302402007417f6a2202450d00034020032802900d21032002417f6a22020d000b0b410021070c020b200320014107746a418c026a21082003200141186c6a41046a2116200321050b200141016a21070b20162802002117200441b0026a41106a2005200141186c6a220241186a280200360200200441b0026a41086a200241106a2902003703002004200241086a2902003703b002200520014107746a22024190026a280200210120082802002105200441c8036a20024194026a41f8001085051a0b20044190026a41106a2218200441b0026a41106a221928020036020020044190026a41086a221a200441b0026a41086a221b290300370300200420042903b00237039002200441d0026a200441c8036a41f8001085051a200441b8016a41146a211c200441c8036a410c6a211d200441c8036a41086a211e410121160340200441b8016a41106a22082018280200360200200441b8016a41086a221f201a29030037030020042004290390023703b801200420013602cc03200420053602c803201e200441d0026a41f80010850521010240024020054106490d0020042802d403210520042802d0032101201d21020c010b200441c8036a2102200121010b2005450d0320022005417f6a22053602002001200541186c6a220528020c2201450d03201c2005290200370200201c41086a200541086a2802003602000240200541106a29020042ffffffff0383500d00200110300b200b417f6a210b200441c8036a10d90202402017450d000240200e2016470d00200e417f200b41016a22052005200b491b6a2205200e490d12200e41017422012005200120054b1b22054104200541044b1bad42247e2214422088a74541027421052014a7210102400240200e0d00200441003602c8030c010b200441043602d003200420153602c8032004200e41246c3602cc030b200441d0026a20012005200441c8036a106920042802d802210520042802d0024101460d0a20042802d4022115200541246e210e0b2015201641246c6a22052017360200200520042903b8013702042005410c6a201f290300370200200541146a20082903003702002005411c6a200441b8016a41186a290300370200200b450d0a2003450d030240024002400240200720032f018e0d490d0041002101034041002105024020032802002208450d00200141016a210720032f018c0d2102200821050b024041c00d41900d20011b450d00200310300b024020050d00410221010c050b2007210120052103200220052f018e0d4f0d000b200520024107746a418c026a21082005200241186c6a41046a2117024020070d00200521030c020b200241027420056a41940d6a280200210302402007417f6a2201450d00034020032802900d21032001417f6a22010d000b0b410021070c020b200320074107746a418c026a21082003200741186c6a41046a211720072102200321050b200241016a21070b2017280200211720192005200241186c6a220141186a280200360200201b200141106a2902003703002004200141086a2902003703b002200520024107746a22024190026a280200210120082802002105200441c8036a20024194026a41f8001085051a0b201641016a211620182019280200360200201a201b290300370300200420042903b00237039002200441d0026a200441c8036a41f8001085051a0c010b0b20162113200721010c090b4100211341002802e88f4221152003450d05200b450d04200441c8036a41186a2116200441e8036a21170340024002400240200120032f018e0d490d0041002101034041002105024020032802002208450d00200141016a210720032f018c0d2102200821050b024041c00d41900d20011b450d00200310300b024020050d00410221070c040b2007210120052103200220052f018e0d4f0d000b200241016a2101200520024107746a418c026a210e2005200241186c6a41046a2108024020070d00200521030c020b200520014102746a41900d6a280200210302402007417f6a2201450d00034020032802900d21032001417f6a22010d000b0b410021010c010b200320014107746a418c026a210e2003200141186c6a41046a21082001210220032105200141016a21010b200441b8016a41106a200841106a290200370300200441b8016a41086a200841086a290200370300200420082902003703b801200520024107746a22054190026a2802002107200e2802002108200441c8036a20054194026a41f8001085051a0b200441b0026a41106a2205200441b8016a41106a290300370300200441b0026a41086a2202200441b8016a41086a290300370300200420042903b8013703b002200441d0026a200441c8036a41f8001085051a200441c8036a41106a2005290300370300200441c8036a41086a2002290300370300200420042903b0023703c803200420073602e403200420083602e0032017200441d0026a41f8001085051a024020042802cc03450d0020042802c80310300b200b417f6a210b024020042802d803450d0020042802d40310300b201610d902200b0d000c050b0b41b2abc200412b41d4a8c200102d000b418486c20041fc0041848ac1001050000b41b2abc200412b41d4a8c200102d000b418486c20041fc0041848ac1001050000b41002105034020032802002101024041c00d41900d20051b450d00200310300b2005417f6a21052001210320010d000b410021130b4100210e0c030b20050d030c070b200721014100210b0b2003450d000240200b450d00200441c8036a41186a2117200441e8036a211c03400240024002400240200120032f018e0d490d0041002101034041002105024020032802002208450d00200141016a210720032f018c0d2102200821050b024041c00d41900d20011b450d00200310300b024020050d00410221070c050b2007210120052103200220052f018e0d4f0d000b200520024107746a418c026a21162005200241186c6a41046a2108024020070d00200521030c020b200241027420056a41940d6a280200210302402007417f6a2201450d00034020032802900d21032001417f6a22010d000b0b410021010c020b200320014107746a418c026a21162003200141186c6a41046a210820012102200321050b200241016a21010b200441b8016a41106a200841106a290200370300200441b8016a41086a200841086a290200370300200420082902003703b801200520024107746a22054190026a280200210720162802002108200441c8036a20054194026a41f8001085051a0b200441b0026a41106a2205200441b8016a41106a290300370300200441b0026a41086a2202200441b8016a41086a290300370300200420042903b8013703b002200441d0026a200441c8036a41f8001085051a200441c8036a41106a2005290300370300200441c8036a41086a2002290300370300200420042903b0023703c803200420073602e403200420083602e003201c200441d0026a41f8001085051a024020042802cc03450d0020042802c80310300b200b417f6a210b024020042802d803450d0020042802d40310300b201710d902200b0d000b0b41002105034020032802002101024041c00d41900d20051b450d00200310300b2005417f6a21052001210320010d000b0b200441dc036a200d360200200441d8036a200a360200200420103602e003200442003703d0032004200c3602cc034100210a200441003602c803200041e0006a200441c8036a10d703024002402011450d000240024002402009450d00201220092f01d609490d01034002400240200928020022030d00410021030c010b200f41016a210520092f01d40921120b024041880a41d809200f1b450d00200910300b024020030d00410221030c040b2005210f20032109201220032f01d6094f0d000b200321092005210f0c010b41b2abc200412b41d4a8c200102d000b201241016a21032009201241e4006c6a22054188016a210120092012410c6c6a41046a210202400240200f0d00200321120c010b200920034102746a41d8096a28020021090240200f417f6a2203450d00034020092802d80921092003417f6a22030d000b0b410021120b200441b0026a41086a2207200241086a280200360200200441c4026a200141086a290200370200200420022902003703b002200420012902003702bc0220054198016a2802002103200441c8036a2005419c016a41d0001085051a20044190026a41186a200441b0026a41186a28020036020020044190026a41106a200441b0026a41106a29030037030020044190026a41086a2007290300370300200420042903b002370390020b2011417f6a210a200441f0016a41186a220520044190026a41186a280200360200200441f0016a41106a220120044190026a41106a290300370300200441f0016a41086a220220044190026a41086a29030037030020042004290390023703f001200441d0026a200441c8036a41d0001085051a200441c8036a41186a22072005280200360200200441c8036a41106a22052001290300370300200441c8036a41086a22012002290300370300200441e4036a22022003360200200420042903f0013703c803200441c8036a41206a200441d0026a41d0001085052103200441b8016a200441c8036a10d803024020042802b801450d00200441a0016a41086a200441b8016a41086a2208280200360200200441e4016a280200210b200441e0016a280200210c2003200441b8016a41206a2903003703002007200441b8016a41186a2903003703002005200441b8016a41106a29030037030020012008290300370300200420042903b80122143703a001200420143703c803200441d0026a41186a200441ec036a280200360200200441d0026a41106a2002290200370300200441d0026a41086a200441dc036a290200370300200420042902d4033703d002200441ac016a200441d0026a10d7030240200b450d00200c10300b20042802a0010d020b4100210f0b4100211141002802e88f42210c02402009450d002004200a3602d403200420123602d003200420093602cc032004200f3602c803200441c8036a10d9030b4100210d0c040b417f200a41016a22032003200a491bad42187e2214422088a70d042014a72203417f4c0d042003102f220c450d00200c20042903a001370200200c41106a200441a0016a41106a290300370200200c41086a200441a0016a41086a290300370200200341186e210d0240200a0d00410121114100210a0c030b0240024002402009450d000240024002400240201220092f01d609490d0041002105034041002103024020092802002202450d00200541016a210120092f01d4092112200221030b024041880a41d80920051b450d00200910300b024020030d00410221030c050b2001210520032109201220032f01d6094f0d000b2003201241e4006c6a4188016a210220032012410c6c6a41046a2107024020010d00200321090c020b201241027420036a41dc096a280200210902402001417f6a2205450d00034020092802d80921092005417f6a22050d000b0b410021050c020b2009201241e4006c6a4188016a210220092012410c6c6a41046a2107200921030b201241016a21050b200441b0026a41086a2201200741086a280200360200200420072902003703b002200441c4026a200241086a290200370200200420022902003702bc022003201241e4006c6a22024198016a2802002103200441c8036a2002419c016a41d0001085051a20044190026a41186a200441b0026a41186a28020036020020044190026a41106a200441b0026a41106a29030037030020044190026a41086a2001290300370300200420042903b002370390020b200441f0016a41186a221620044190026a41186a221c280200360200200441f0016a41106a221220044190026a41106a2218290300370300200441f0016a41086a221720044190026a41086a221a29030037030020042004290390023703f001200441d0026a200441c8036a41d0001085051a200441b0026a410c6a2119200441a0016a410c6a211e200441c8036a410c6a210b200441c8036a41206a211b4101210802400340200441c8036a41186a22012016280200360200200441c8036a41106a22022012290300370300200441c8036a41086a22072017290300370300200420042903f0013703c803200420033602e403201b200441d0026a41d0001085052103200a417f6a210a200441b8016a200441c8036a10d80320042802b801450d0120042802e401210f20042802e001211f2003200441b8016a41206a2903003703002001200441b8016a41186a2903003703002002200441b8016a41106a2903003703002007200441b8016a41086a2203290300370300200441a0016a41086a22012003280200360200200420042903b80122143703a001200420143703c803200441d0026a41186a200b41186a280200360200200441d0026a41106a200b41106a290200370300200441d0026a41086a200b41086a2902003703002004200b2902003703d002201e200441d0026a10d7030240200f450d00201f10300b20042802a001450d010240200d2008470d002008417f200a41016a22032003200a491b6a22032008490d0a200841017422022003200220034b1b22034104200341044b1bad42187e2214422088a74541027421032014a721020240024020080d00200441003602c8030c010b200441043602d0032004200c3602c8032004200841186c3602cc030b200441d0026a20022003200441c8036a106920042802d802210320042802d0024101460d0520042802d402210c200341186e210d0b200c200841186c6a220320042903a001370200200341106a200441a0016a41106a290300370200200341086a2001290300370200200a450d062009450d030240024002400240200520092f01d609490d0041002105034041002103024020092802002207450d00200541016a210220092f01d4092101200721030b024041880a41d80920051b450d00200910300b024020030d00410221030c050b2002210520032109200120032f01d6094f0d000b2003200141e4006c6a4188016a210720032001410c6c6a41046a210f024020020d00200321090c020b200141027420036a41dc096a280200210902402002417f6a2205450d00034020092802d80921092005417f6a22050d000b0b410021050c020b2009200541e4006c6a4188016a210720092005410c6c6a41046a210f20052101200921030b200141016a21050b200441b0026a41086a2202200f41086a2802003602002004200f2902003703b00220192007290200370200201941086a200741086a2902003702002003200141e4006c6a22014198016a2802002103200441c8036a2001419c016a41d0001085051a201c200441b0026a41186a2802003602002018200441b0026a41106a290300370300201a2002290300370300200420042903b002370390020b200841016a21082016201c280200360200201220182903003703002017201a29030037030020042004290390023703f001200441d0026a200441c8036a41d0001085051a0c000b0b20052112200821110c050b41b2abc200412b41d4a8c200102d000b41b2abc200412b41d4a8c200102d000b2003450d040b102a000b200521124100210a0b2009450d002004200a3602d403200420123602d003200420093602cc03200441003602c803200441c8036a10d9030b200020042903003703002000200429034837032820004180016a2013360200200041fc006a200e360200200041f8006a2015360200200041086a200441086a290300370300200041106a200441106a290300370300200041186a200441186a290300370300200041206a200441206a280200360200200041306a200441c8006a41086a290300370300200041386a200441c8006a41106a290300370300200041c0006a200441c8006a41186a290300370300200041c8006a200441c8006a41206a290300370300200041d0006a200441f0006a290300370300200041d8006a200441c8006a41306a290300370300200041f4006a2011360200200041f0006a200d360200200041ec006a200c360200200020063602242000419c016a200441286a41186a29030037000020004194016a200441286a41106a2903003700002000418c016a200441286a41086a29030037000020004184016a2004290328370000200441e0046a24000f0b102c000bad0101037f230041b0016b2201240002402000280200220241cc006a28020022034106490d00200241d8006a28020021030b0240024002402003450d00034020021095030d02200028020021022003417f6a22030d000b0b20012002200041046a200041086a280200109a0320012802240d0141d488c1004130200141a8016a41dcfcc000419481c1001034000b41e4fec000418e02200141a8016a41f480c10041a481c1001034000b109c03000b1100418ee2c100410f41b4e3c100102d000ba70402037f017e230041206b220424000240024002400240024002400240024002402001280200220541c0006a2002200310e6022206450d0002400240200628020022024106490d00200628020c2102200628020821060c010b200641086a21060b2006450d022002450d0202400240024020062002417f6a41186c6a2206280200450d0020052802000d06200641086a22023502002107200541003602002005200529030842017c3703082005280210450d0141b082c2004110200441186a41c082c20041c483c2001034000b20052802000d0641002106200541003602002005200529030842017c37030820052802100d07200541003602100c010b20054100360210200541186a2205200529030020077c37030020022802002205417f4c0d07200628020021020240024020050d00410121060c010b2005102f2206450d090b2006200220051085051a0b2000200536020420002006360200200041086a20053602000c010b200441086a20012802042002200310e70220042802084101460d072000200429020c370200200041086a200441146a2802003602000b200441206a24000f0b418486c20041fc00418087c2001050000b41b082c2004110200441186a41c082c20041b483c2001034000b41b082c2004110200441186a41c082c20041b483c2001034000b41b082c2004110200441186a41c082c20041c483c2001034000b102c000b102a000b41d488c1004130200441186a41dcfcc00041bcfdc0001034000bbf0302027f027e230041d0006b22022400410041002802e8ae422203410120031b3602e8ae4202400240024020030e020001020b410041b480c200360284ad42410041b480c200360280ad42410041023602e8ae420c010b034041002802e8ae424101460d000b0b41052103024002400240024002400240024010000e06010203040506000b41acf9c1004134200241e0f9c10041f0f9c1001034000b410021030c040b410121030c030b410221030c020b410321030c010b410421030b410020033602e4ae4202402001450d00200241cc006a410d360200200241146a410236020020024202370204200241bc81c10036020020024104360244200241b481c1003602402002200241c0006a36021020022002360248200241cc81c100103a000b200241386a41002903f8a340370300200241306a41002903f0a340370300200241286a41002903e8a340370300200241206a41002903e0a340370300200241186a41002903d8a340370300200241106a41002903d0a340370300200241086a41002903c8a340370300200241002903c0a340370300200241c0006a200210a0032002350248210420023502402105200241d0006a240020052004422086840b1c0020012802184180f6c100410b2001411c6a28020028020c1100000ba10301037f230041106b2202240020004100360208200042013702002002200110c6032000200228020022032002280208106402402002280204450d00200310300b2002200141106a10c6032000200228020022032002280208106402402002280204450d00200310300b200220012802203602002000200241041064200220012802243602002000200241041064200220012802283602002000200241041064200141306a28020021030240024002400240200141386a200141346a200128022c4101461b280200220441c000490d00200441808001490d012004418080808004490d02200241033a000020002002410110642002200436020020002002410410640c030b200220044102743a000020002002410110640c020b200220044102744101723b010020002002410210640c010b2002200441027441027236020020002002410410640b02402004410c6c2204450d00200320046a2104034020002003410810642002200341086a28020036020020002002410410642003410c6a22032004470d000b0b2002200128023c3602002000200241041064200241106a24000bfb0801087f230041c0036b22022400410041002802e8ae422203410120031b3602e8ae4202400240024020030e020001020b410041b480c200360284ad42410041b480c200360280ad42410041023602e8ae420c010b034041002802e8ae424101460d000b0b41052103024002400240024002400240024010000e06010203040506000b41acf9c1004134200241c0026a41e0f9c10041f0f9c1001034000b410021030c040b410121030c030b410221030c020b410321030c010b410421030b410020033602e4ae4220024280808080802037020c2002200136021c2002200041bc8ec20020011b3602182002200241186a360208200241c0026a200241086a10a2030240024020022802c4022200450d00200241cc026a280200210420022802c802210520022802c0022106200241e0016a200241d0026a41e0001085051a200241c0026a200241086a10a303024020022802c00222070d0002402004450d00200441246c21012000210303400240024002400240024020032d00000e050400010204030b2003410c6a280200450d03200341086a28020010300c030b2003410c6a280200450d02200341086a28020010300c020b2003410c6a280200450d01200341086a28020010300c010b200341086a280200450d00200341046a28020010300b200341246a21032001415c6a22010d000b0b2005450d01200541246c450d01200010300c010b200241c8026a280200210820022802c402210920024180016a200241e0016a41e0001085051a200241206a20024180016a41e0001085051a0240024020022802082802040d00200241c0026a200241206a41e0001085051a0c010b02402004450d00200441246c21012000210303400240024002400240024020032d00000e050400010204030b2003410c6a280200450d03200341086a28020010300c030b2003410c6a280200450d02200341086a28020010300c020b2003410c6a280200450d01200341086a28020010300c010b200341086a280200450d00200341046a28020010300b200341246a21032001415c6a22010d000b0b02402005450d00200541246c450d00200010300b02402008450d00200841c8016c21012007210003400240200022034184016a2d00004103460d00200341e0006a2d00004102470d00200341e8006a280200450d00200341e4006a28020010300b200341c8016a2100200310b202200141b87e6a22010d000b0b410021002009450d00200941c8016c450d00200710300b20000d010b2002418c016a410d360200200241f4016a4102360200200242023702e401200241bc81c1003602e00120024104360284012002418082c10036028001200220024180016a3602f0012002200241c0026a36028801200241e0016a41cc81c100103a000b200241e0016a200241c0026a41e0001085051a200241cc026a2004360200200241c8026a2005360200200220003602c402200220063602c002200241d0026a200241e0016a41e0001085051a200241b8036a2008360200200241b4036a2009360200200220073602b003200241c0026a10a403200241c0036a240041003502dc94420bc71c05187f017e097f027e037f23004180026b2202240020024190016a410472210341002104024002400340200128020022052802042206450d01200528020022072d0000210820052006417f6a3602042005200741016a360200200320046a20083a00002002200441016a2205360290012005210420054120470d000b200241e0006a41026a2002419d016a2d00003a0000200241d0006a41026a200241a4016a2d00003a0000200220022f0194013b01e801200220022d0096013a00ea0120022002419b016a2f00003b01602002200241a2016a2f01003b01502002419e016a2801002109200241a5016a280000210a200241ac016a280200210b200241b0016a280200210c200228009701210d200241d8016a41026a200241ab016a2d00003a00002002200241a9016a2f00003b01d8010c010b0b2002412c6a41026a20022d00ea013a0000200241286a41026a200241e0006a41026a2d00003a0000200241246a41026a200241d0006a41026a2d00003a0000200241206a41026a200241d8016a41026a2d00003a0000200220022f01e8013b012c200220022f01603b0128200220022f01503b0124200220022f01d8013b0120024002400240024002402006450d00200241186a200110ac0220022802180d02200228021c210e20024190016a4104722103410021040340200128020022052802042206450d02200528020022072d0000210820052006417f6a3602042005200741016a360200200320046a20083a00002002200441016a2205360290012005210420054120470d000b200241e0006a41026a2002419d016a2d00003a0000200241d0006a41026a200241a4016a2d00003a0000200220022f0194013b01e801200220022d0096013a00ea0120022002419b016a2f00003b01602002200241a2016a2f01003b01502002419e016a280100210f200241a5016a2800002110200241ac016a2802002111200241b0016a28020021122002280097012113200241d8016a41026a200241ab016a2d00003a00002002200241a9016a2f00003b01d8010c030b200041003602040c030b0c010b200041003602040c010b2002413c6a41026a20022d00ea013a0000200241386a41026a200241e0006a41026a2d00003a0000200241346a41026a200241d0006a41026a2d00003a0000200241306a41026a200241d8016a41026a2d00003a0000200220022f01e8013b013c200220022f01603b0138200220022f01503b0134200220022f01d8013b0130024002402006450d0020024190016a41047221034100210402400340200128020022052802042206450d01200528020022072d0000210820052006417f6a3602042005200741016a360200200320046a20083a00002002200441016a2205360290012005210420054120470d000b200241e0006a41026a2002419d016a2d00003a0000200241d0006a41026a200241a4016a2d00003a0000200220022f0194013b01e801200220022d0096013a00ea0120022002419b016a2f00003b01602002200241a2016a2f01003b01502002419e016a2801002114200241a5016a2800002115200241ac016a2802002116200241b0016a28020021172002280097012118200241d8016a41026a200241ab016a2d00003a00002002200241a9016a2f00003b01d8010c020b0c010b200041003602040c010b200241cc006a41026a20022d00ea013a0000200241c8006a41026a200241e0006a41026a2d00003a0000200241c4006a41026a200241d0006a41026a2d00003a0000200241c0006a41026a200241d8016a41026a2d00003a0000200220022f01e8013b014c200220022f01603b0148200220022f01503b0144200220022f01d8013b01400240024002400240024002402006450d00200241106a200110ac0220022802100d0202400240024020022802142219200128020028020441246e2205200520194b1bad42247e221a422088a70d00201aa72205417f4c0d000240024020050d00410421030c010b2005102f2203450d070b2001200128020441016a2204360204200541246ead211a200420012802084b0d022019450d0420024190016a410472211b200241de016a211c200241cf016a211d200241f4016a211e200241ad016a211f20024190016a41106a21204100212102400340200128020022052802042204450d04200528020022072d0000210820052004417f6a3602042005200741016a3602000240024002400240024002400240024020080e08000c010c030402050c0b200241086a200110ac0220022802080d0b200128020022072802042208200228020c2204490d0b2004417f4c0d090240024020040d00410121050c010b2004102f2205450d102005410020041087051a2001280200220728020421080b20082004490d0a2005200728020020041085052122200728020422082004490d102007200820046b3602042007200728020020046a3602002022410876212341052108200421220c050b410021040340200128020022052802042206450d0b200528020022072d0000210820052006417f6a3602042005200741016a360200201b20046a20083a00002002200441016a2205360290012005210420054120470d000b200220202902003703c8012002202041056a2900003700cd0120022802940121062002290398012124201e41036a202041036a280000360000201e2020280200360200200241d8016a41046a201d41046a2f00003b0100201c41036a201f41036a280000360000201c201f280000360000200220243702ec01200220063602e8012002201d2800003602d80120022900f301212520022800eb0121072002200241d8016a41056a2900003700bd01200220022902d8013703b801200220022900bd0137008501200220022903b80137038001200220022900850137007520022002290380013703702002200229007537006520022002290370370360200741087621232024421888a721042025422088a72126410021080c050b20024190016a2001109d042002280294012204450d0920022f01900120022d00920141107472210620022d00930121052002290398012225422088a721262025a72122410121080c030b20024190016a2001109d042002280294012204450d0820022f01900120022d00920141107472210620022d00930121052002290398012225422088a721262025a72122410221080c020b20024190016a2001109d042002280294012204450d0720022f01900120022d00920141107472210620022d00930121052002290398012225422088a721262025a72122410321080c010b200128020022052802042204450d06200528020022072d0000210820052004417f6a3602042005200741016a36020020080d0620024190016a200110ad0220022802900122054102460d062002280298012122200228029401210441002123410421080b2023410874200541ff01717221072026ad4220862022ad8421250b200241d0006a41086a2222200241e0006a41086a290300370300200220022903603703500240201a422088a72205201aa7470d00200541016a22272005490d0320054101742228202720272028491b22274104202741044b1bad42247e2224422088a74541027421272024a721280240024020050d0020024100360290010c010b200241043602980120022003360290012002200541246c360294010b200241e8016a2028202720024190016a106920022802f001212720022802e8014101460d0220022802ec012103201a42808080807083202741246ead84211a0b2003200541246c6a2205202537000c2005200436000820052007360004200520063b0001200520083a0000200541036a20064110763a0000200520022903503700142005411c6a2022290300370000201a4280808080107c211a202141016a22212019470d000b20012001280204417f6a3602040c090b20270d060b102c000b200510300b0240201a422088a72205450d00200541246c21042003210503400240024002400240024020052d00000e050400010204030b2005410c6a280200450d03200541086a28020010300c030b2005410c6a280200450d02200541086a28020010300c020b2005410c6a280200450d01200541086a28020010300c010b200541086a280200450d00200541046a28020010300b200541246a21052004415c6a22040d000b0b201aa72205450d02200541246c450d02200310300c020b200041003602040c050b20012004417f6a36020420030d030b200041003602040c030b102a000b2004200841f0f5c100104a000b200020022f01283b00172000200936001a200020022f01243b001e2000200a360021200020022f01203b0025200041106a20022f012c3b0000200041136a200d360000200041126a2002412c6a41026a2d00003a0000200041196a200241286a41026a2d00003a0000200041206a200241246a41026a2d00003a0000200041276a200241206a41026a2d00003a00002000412c6a200c360000200041286a200b360000200041336a20133600002000200f36003a20002010360041200041306a20022f013c3b0000200041326a2002413c6a41026a2d00003a0000200041396a200241386a41026a2d00003a0000200020022f01383b0037200041c0006a200241346a41026a2d00003a0000200020022f01343b003e200020022f01303b0045200041c7006a200241306a41026a2d00003a0000200041cc006a2012360000200041c8006a2011360000200041d2006a200241cc006a41026a2d00003a0000200041d0006a20022f014c3b0000200041d3006a2018360000200041d9006a200241c8006a41026a2d00003a0000200020022f01483b00572000201436005a200041e0006a200241c4006a41026a2d00003a0000200020022f01443b005e20002015360061200041e7006a200241c0006a41026a2d00003a0000200020022f01403b0065200041ec006a2017360000200041e8006a20163600002000201a370208200020033602042000200e3602000b20024180026a24000ba90503037f017e077f230041f0046b22022400200241086a200110ac02024002402002280208450d00200041003602000c010b024002400240200228020c2203200128020028020441c8016e2204200420034b1bad42c8017e2205422088a70d002005a72204417f4c0d0002400240024020040d00410821060c010b2004102f2206450d010b2001200128020441016a2207360204200441c8016e2108024002400240200720012802084b0d0020030d01410021030c060b200041003602000c010b20024198036a41047221094100210a41002104410021070240034020024198036a200110ab02200228029803210b200241d4016a200941c4011085051a200b4102460d01200241106a200241d4016a41c4011085051a024020072008470d00200a200741016a2208200a20084b1b22084104200841044b1bad42c8017e2205422088a74541037421082005a7210c0240024020070d0020024100360298030c010b200241083602a0032002200436029c0320022006360298030b200241e0046a200c200820024198036a106920022802e8042108024020022802e0044101470d0020080d050c060b20022802e4042106200841c8016e21080b200620046a220c200b360200200c41046a200241106a41c4011085051a200a41026a210a200441c8016a21042003200741016a2207460d050c000b0b200041003602002007450d002006210b03400240200b22074184016a2d00004103460d00200741e0006a2d00004102470d00200741e8006a280200450d00200741e4006a28020010300b200741c8016a210b200710b202200441b87e6a22040d000b0b2008450d04200841c8016c450d04200610300c040b102a000b102c000b200128020421070b2000200836020420002006360200200041086a200336020020012007417f6a3602040b200241f0046a24000b811501097f230041f0026b22012400200010a60302400240024002400240024020002802002202450d00200141d8026a2002417f6a10fe0320014188016a20012802d802220220012802e0021082020240024020012d0088014101460d00200141286a4200370300200141206a4200370300200141186a4200370300200142003703100c010b200141286a200141a1016a290000370300200141206a20014199016a290000370300200141186a20014191016a29000037030020012001290089013703100b024020012802dc02450d00200210300b200141106a200041106a41201088050d00200041f8006a280200220341c8016c210441002105417f2106200028027022072102024003402004450d014101210841002109024020024184016a2d00004103470d004101210820022802004101470d00200241046a2d000022084102462109200520084102477221080b200241c8016a2102200441b87e6a2104200641016a2106200821052009450d00200821052008410171450d000b200120063602102001419c016a41013602002001420137028c01200141f0e6c100360288012001410236028401200120014180016a360298012001200141106a3602800120014188016a41f8e6c100103a000b10a204200041f4006a2802002109200141106a200041f0001085051a200341c8016c210402400240024020030d00200721080c010b20042108200721020240034020022802004102460d0120014188016a200241c8011085051a200141d8026a20014188016a10ab0320012d00d8020d05200241c8016a2102200841b87e6a22080d000c030b0b200241c8016a21080b200720046a2008460d002007200341c8016c6a210403402008220241c8016a2108024020024184016a2d00004103460d00200241e0006a2d00004102470d00200241e8006a280200450d00200241e4006a28020010300b200210b20220042008470d000b0b02402009450d00200941c8016c450d00200710300b200141fc8ac2004110108502200128020421020240200128020022084101470d0041fc8ac200411041002802b4ad421105000b200141a0016a2204420037030020014188016a41106a2209420037030020014188016a41086a220642003703002001420037038801200141d8026a41dca4c000410610ab012006200141d8026a41086a2205290000370300200120012900d80237038801200141d8026a41f0bec100410e10ab0120042005290000370300200920012900d80237030020012002410020081b3602d80220014188016a4120200141d8026a410441002802fcad421103004101200110ae0110ae0310a304450d0220014188016a10af032001200141106a410c6a280200220636028001200120014188016a410c6a28020022023602d00220062002470d032006450d05200128028c0121052001280214210041002104034002400240200020046a22022d00002209200520046a22082d0000470d0002400240024002400240024020090e06000304050102000b200241016a200841016a41201088050d050c060b200241046a2802002207200841046a280200470d042007450d05200241086a280200200841086a280200470d042002410c6a2802002008410c6a280200470d040c050b2002410c6a28020022072008410c6a280200470d03200241046a280200200841046a28020020071088050d030c040b200241016a280000200841016a280000470d02200241106a2802002207200841106a280200470d02200241086a280200200841086a28020020071088050d020c030b200241016a280000200841016a280000470d01200241106a2802002207200841106a280200470d01200241086a280200200841086a28020020071088050d010c020b200241016a280000200841016a280000470d00200241106a2802002207200841106a280200470d00200241086a280200200841086a2802002007108805450d010b41baf4c000411410ad01200141d8026a200210e70120012802d802220920012802e00210a404024020012802dc02450d00200910300b200141d8026a200810e70120012802d802220920012802e00210a404024020012802dc02450d00200910300b20022d000020082d00002209470d060b024002400240024002400240024020090e06050203040001050b200241046a2802002209200841046a280200470d0b2009450d05200241086a280200200841086a280200470d0b2002410c6a2802002008410c6a280200470d0b0c050b2002410c6a28020022092008410c6a280200470d0a200241046a280200200841046a28020020091088050d0a0c040b200241016a280000200841016a280000470d09200241106a2802002209200841106a280200470d09200241086a280200200841086a28020020091088050d090c030b200241016a280000200841016a280000470d08200241106a2802002209200841106a280200470d08200241086a280200200841086a28020020091088050d080c020b200241016a280000200841016a280000470d07200241106a2802002209200841106a280200470d07200241086a280200200841086a2802002009108805450d010c070b200241016a200841016a41201088050d060b200441246a21042006417f6a22060d000c060b0b41c2e6c100411c41e0e6c100102d000b200141086a20012f00d90220012d00db024110747210a504200120012903083703d0022001419c016a41013602002001420137028c01200141cc80c200360288012001410436028401200120014180016a360298012001200141d0026a3602800120014188016a4188e7c100103a000b4198e7c100411e41b8e7c100102d000b200141ec026a4100360200200141e8026a41bc8ec200360200200142013702dc02200141c8e7c1003602d80220014180016a200141d0026a200141d8026a10a604000b41e0e7c10041274188e8c100102d000b0240200141106a41306a220220014188016a41306a22084120108805450d0041ec80c200410e10ad012002412010a4042008412010a4040b0240200220084120108805450d004198e8c100412841c0e8c100102d000b0240200141106a41d0006a20014188016a41d0006a41201088050d0002402001280294012208450d00200128028c012102200841246c210803400240024002400240024020022d00000e050400010204030b2002410c6a280200450d03200241086a28020010300c030b2002410c6a280200450d02200241086a28020010300c020b2002410c6a280200450d01200241086a28020010300c010b200241086a280200450d00200241046a28020010300b200241246a21022008415c6a22080d000b0b024020014190016a2802002202450d00200241246c450d00200128028c0110300b0240200128021c2208450d0020012802142102200841246c210803400240024002400240024020022d00000e050400010204030b2002410c6a280200450d03200241086a28020010300c030b2002410c6a280200450d02200241086a28020010300c020b2002410c6a280200450d01200241086a28020010300c010b200241086a280200450d00200241046a28020010300b200241246a21022008415c6a22080d000b0b0240200141186a2802002202450d00200241246c450d00200128021410300b200141f0026a24000f0b41d0e8c100412441f4e8c100102d000b940701057f230041d0026b22022400410041002802e8ae422203410120031b3602e8ae4202400240024020030e020001020b410041b480c200360284ad42410041b480c200360280ad42410041023602e8ae420c010b034041002802e8ae424101460d000b0b41052103024002400240024002400240024010000e06010203040506000b41acf9c1004134200241e0016a41e0f9c10041f0f9c1001034000b410021030c040b410121030c030b410221030c020b410321030c010b410421030b410020033602e4ae4220024280808080802037020c2002200136021c2002200041bc8ec20020011b3602182002200241186a360208200241e0016a200241086a10a203200241ec016a280200210420022802e801210520022802e401210020022802e001210620024180016a200241f0016a41e0001085051a02402000450d00200241206a20024180016a41e0001085051a0240024020022802082802040d0020024180016a200241206a41e0001085051a0c010b02402004450d00200441246c21012000210303400240024002400240024020032d00000e050400010204030b2003410c6a280200450d03200341086a28020010300c030b2003410c6a280200450d02200341086a28020010300c020b2003410c6a280200450d01200341086a28020010300c010b200341086a280200450d00200341046a28020010300b200341246a21032001415c6a22010d000b0b02402005450d00200541246c450d00200010300b410021000b2000450d00200241e0016a410c6a2004360200200241e0016a41086a2005360200200220003602e401200220063602e001200241f0016a20024180016a41e0001085051a200241e0016a10a60302402004450d00200441246c21012000210303400240024002400240024020032d00000e050400010204030b2003410c6a280200450d03200341086a28020010300c030b2003410c6a280200450d02200341086a28020010300c020b2003410c6a280200450d01200341086a28020010300c010b200341086a280200450d00200341046a28020010300b200341246a21032001415c6a22010d000b0b02402005450d00200541246c450d00200010300b200241d0026a240041003502dc94420f0b2002412c6a410d360200200241f4016a4102360200200242023702e401200241bc81c1003602e001200241043602242002419882c1003602202002200241206a3602f0012002200241e0016a360228200241e0016a41cc81c100103a000b9936020e7f027e230041c0026b2201240020014200370214200141002802e88f422202360210024002400240024002400240024002400240024002402000410c6a28020041246c2203450d002000280204210441002105410021060340024020042d00004101470d00200441106a2802002207417f4c0d0c200441036a2d00002108200441016a2f00002109200441086a280200210a200441046a2d0000210b0240024020070d004101210c0c010b2007102f220c450d090b200c200a2007108505210c200141f8006a41086a220d200141206a41086a290200370300200120012902203703780240024020062005460d002006210a0c010b200541016a220a2005490d042005410174220e200a200e200a4b1b220a4104200a41044b1bad42247e220f422088a745410274210a200fa7210e0240024020050d00200141003602500c010b20014104360258200120023602502001200541246c3602540b200141c0006a200e200a200141d0006a10692001280248210e20012802404101460d052001200128024422023602102005210a200e41246e21050b2002200a41246c6a220a2007360210200a200736020c200a200c360208200a200b360204200a200920084110747222073b0001200a41013a0000200a41036a20074110763a0000200a2001290378370214200a411c6a200d290300370200200641016a21060b200441246a21042003415c6a22030d000b20012005360214200120063602180b200141386a22044200370300200141306a220a4200370300200141206a41086a2207420037030020014200370320200141c0006a41dca4c000410610ab012007200141c0006a41086a220529000037030020012001290040370320200141d0006a41f0c2c100411210ab012004200141d0006a41086a290000370300200a2001290050370300200141203602742001200141206a360270200141c0006a200141206a412041002802d4ad42110400200128024022070d02410221050c030b2001200536021420012005360218102c000b2001200536021420012005360218200e0d030c070b2001280244210c200120052802003602b402200120073602b002200141086a200141b0026a109b01200128020c21060240024020012802080d002001200141b0026a109b0120012802000d0020012802b402220520012802042204490d002004417f4c0d080240024020040d00410121030c010b2004102f2203450d052003410020041087051a20012802b40221050b024020052004490d00200320012802b00220041085051a20012802b40222052004490d042001200520046b3602b402200120012802b00220046a3602b002410121050c020b200310300b20014200370254200141002802dc9442360250200141093602642001200141f0006a3602602001200141d0006a3602bc022001418c016a41013602002001420137027c200141a0e6c1003602782001200141e0006a36028801200141bc026a41d0adc000200141f8006a10321a2001280250200128025810ad0102402001280254450d00200128025010300b410221050b200c450d00200710300b024020054102460d0041012107024020064102490d0041002107024020044105470d004180a4c000200341051088054521070b200741017321070b02402004450d00200310300b4200210f2007450d050b20014184016a41002903c8a34037020020014102360278200141002903c0a34037027c200141386a4200370300200141306a4200370300200141206a41086a2204420037030020014200370320200141c0006a41dca4c000410610ab012004200141c0006a41086a29000037030020012001290040370320200141d0006a41f0c2c100411210ab01200a41086a200141d0006a41086a290000370000200a20012900503700002001410036025820014201370350200141f8006a200141d0006a10c503200141206a412020012802502204200128025841002802fcad4211030002402001280254450d00200410300b2001410336026820014106360274200141dca4c000360270024041002802e4ae424103490d002001412c6a410e360200200141043602242001200141e8006a3602282001200141f0006a3602204100280284ad4221044100280280ad42210741002802e8ae42210520014188016a4202370300200141ac016a418691c100ad4280808080c00a84370200200141a0016a41f290c100ad4280808080c0028437030020014198016a420237030020014180016a411636020020014194016a200141206a360200200141cc90c1003602840120014281808080c0133702b401200141003602a801200141dc90c10036027c20014103360278200741bc8ec200200541024622051b200141f8006a200441d8f5c10020051b2802101105000b200141206a41186a22054200370300200141306a22034200370300200141206a41086a2204420037030020014200370320200141c0006a41dca4c000410610ab012004200141c0006a41086a220629000037030020012001290040370320200141d0006a41e4c3c100411810ab01200a41086a220c200141d0006a41086a2208290000370000200a20012900503700000240200141206a10a104220741ff01714102460d002007410171450d004200210f200141d0006a21040c040b20054200370300200342003703002004420037030020014200370320200141c0006a41dca4c000410610ab012004200629000037030020012001290040370320200141d0006a41e4c3c100411810ab01200c2008290000370000200a2001290050370000200141013a0050200141206a4120200141d0006a410141002802fcad42110300200141c0006a41dca4c000410610ab01200141d0006a4199e0c100410710ab014120102f2204450d01200142203702b402200120043602b002200141b0026a200141c0006a411010b903200141b0026a200141d0006a411010b90320012802b8022204417f4c0d0520012802b00221070240024020040d00410121050c010b2004102f2205450d020b200141f8006a200520072004108505200441002802dcad421104002004ad220f422086200f84210f20012802782207450d0241002802dc944221080340024002402004200129027c2210422088a722034b0d0020012802b00220072004108805450d010b2010a7450d04200710300c040b0240200fa7450d00200510300b2001200336024420012007360240200141d0006a2007200341002802d4ad4211040002400240024020012802502205450d00200128025421060240024002402001280258220c4104490d00200c417c71417c6a0e050001010100010b2001420037022420012008360220200141093602642001200141c0006a3602602001200141206a3602bc022001410136028c012001420137027c200141a0e6c1003602782001200141e0006a36028801200141bc026a41d0adc000200141f8006a10321a2001280220200128022810ad0102402001280224450d00200128022010300b4101210c0c010b200528000021092005280008210d2005280004210b4100210c0b02402006450d00200510300b200c0d0002400240200320046b22044110490d00200441706a21050c010b4100210541002802e4ae42450d00410021054100280284ad4221044100280280ad42210641002802e8ae42210c2001420137038801200141c0f2c100360284012001428180808080103702b401200141dbf2c100ad4280808080e00a843702ac01200141003602a8012001420037039801200141133602800120014101360278200141c8f2c10036027c200141c8f2c100ad4280808080b002843703a001200141bc8ec20036029401200641bc8ec200200c410246220c1b200141f8006a200441d8f5c100200c1b2802101105000b41002104034020052004460d02200441016a22044120470d000b20014100360280012001420137037820012009360220200141f8006a200141206a410410642001200b360220200141f8006a200141206a410410642001200d360220200141f8006a200141206a4104106420014100360220200141f8006a200141206a41041064200720032001280278220420012802800141002802fcad42110300200128027c450d02200410300c020b41002802e4ae42450d014100280284ad4221044100280280ad42210541002802e8ae4221062001420137038801200141a0e0c1003602840120014281808080f0153702b401200141d6e0c100ad4280808080f00c843702ac01200141003602a8012001420037039801200141263602800120014101360278200141b0e0c10036027c200141b0e0c100ad4280808080e004843703a001200141bc8ec20036029401200541bc8ec200200641024622061b200141f8006a200441d8f5c10020061b2802101105000c010b41002802e4ae42450d004100280284ad4221044100280280ad42210541002802e8ae4221062001420137038801200141a8e0c100360284012001428180808080173702b401200141d6e0c100ad4280808080f00c843702ac01200141003602a8012001420037039801200141263602800120014101360278200141b0e0c10036027c200141b0e0c100ad4280808080e004843703a001200141bc8ec20036029401200541bc8ec200200641024622061b200141f8006a200441d8f5c10020061b2802101105000b200141f8006a2007200341002802dcad421104000240200128027822030d00200721052010210f0c040b20012802b802210420072105200321072010210f0c000b0b2004200541f0f5c100104a000b102a000b0240200fa7450d00200510300b024020012802b402450d0020012802b00210300b200141f8006a10d601200129038001210f200141d0006a21040b200141c0006a41dca4c000410610ab01200141d0006a41b08ec100411410ab01200a2001290050370000200a41086a200141d0006a41086a290000370000200141f8006a41086a200141c0006a41086a290000370300200141f8006a41106a200141206a41106a290300370300200141f8006a41186a200141206a41186a29030037030020012001290040370378200142013703204100210720014100360228200120012f01683b0150200141206a200141d0006a41021064200120012d006a3a005041012105200141206a200441011064200120012d006b3a0050200141206a200441011064200141f8006a412020012802202203200128022841002802fcad4211030002402001280224450d00200310300b2001418080043602702001410a3602b402200141fea4c0003602b00241002103024041002802e4ae424103490d002001412c6a410e360200200141043602242001200141f0006a3602282001200141b0026a3602204100280284ad4221074100280280ad42210541002802e8ae42210320014188016a4202370300200141ac016a41b284c100ad4280808080d00384370200200141a0016a41b285c100ad4280808080a0038437030020014198016a420237030020014180016a411636020020014194016a200141206a360200200141d084c100360284012001428180808080043702b401200141003602a801200141dc90c10036027c20014103360278200541bc8ec200200341024622031b200141f8006a200741d8f5c10020031b28021011050020012d0073210720012d0072210520012f017021030b200141c0006a41fea4c000410a10ab01200141d0006a41b08ec100411410ab01200a2001290050370000200a41086a200141d0006a41086a290000370000200141f8006a41086a200141c0006a41086a290000370300200141f8006a41106a200141206a41106a290300370300200141f8006a41186a200141206a41186a29030037030020012001290040370378200142013703204100210620014100360228200120033b0150200141206a200141d0006a41021064200120053a005041012105200141206a200441011064200120073a0050200141206a200441011064200141f8006a412020012802202207200128022841002802fcad4211030002402001280224450d00200710300b2001418080043602702001410d3602b402200141f1a4c0003602b00241002107024041002802e4ae424103490d002001412c6a410e360200200141043602242001200141f0006a3602282001200141b0026a3602204100280284ad4221074100280280ad42210541002802e8ae42210320014188016a4202370300200141ac016a41f684c100ad4280808080c00784370200200141a0016a41e084c100ad4280808080e0028437030020014198016a420237030020014180016a411636020020014194016a200141206a360200200141d084c1003602840120014281808080f0023702b401200141003602a801200141dc90c10036027c20014103360278200541bc8ec200200341024622031b200141f8006a200741d8f5c10020031b28021011050020012d0073210620012d0072210520012f017021070b200141c0006a41f1a4c000410d10ab01200141d0006a41b08ec100411410ab01200a2001290050370000200a41086a200141d0006a41086a290000370000200141f8006a41086a200141c0006a41086a290000370300200141f8006a41106a200141206a41106a290300370300200141f8006a41186a200141206a41186a29030037030020012001290040370378200142013703204100210320014100360228200120073b0150200141206a200141d0006a41021064200120053a005041012107200141206a200441011064200120063a0050200141206a200441011064200141f8006a412020012802202205200128022841002802fcad4211030002402001280224450d00200510300b2001418080043602702001410f3602b402200141e2a4c0003602b00241002105024041002802e4ae424103490d002001412c6a410e360200200141043602242001200141f0006a3602282001200141b0026a3602204100280284ad4221074100280280ad42210541002802e8ae42210320014188016a4202370300200141ac016a41ccb8c000ad4280808080a00584370200200141a0016a4193f4c000ad4280808080f0048437030020014198016a420237030020014180016a411636020020014194016a200141206a360200200141d084c1003602840120014281808080a0083702b401200141003602a801200141dc90c10036027c20014103360278200541bc8ec200200341024622031b200141f8006a200741d8f5c10020031b28021011050020012d0073210320012d0072210720012f017021050b200141c0006a41e2a4c000410f10ab01200141d0006a41b08ec100411410ab01200a2001290050370000200a41086a200141d0006a41086a290000370000200141f8006a41086a200141c0006a41086a290000370300200141f8006a41106a200141206a41106a290300370300200141f8006a41186a200141206a41186a290300370300200120012900403703782001420137032020014100360228200120053b0150200141206a200141d0006a41021064200120073a0050200141206a200441011064200120033a0050200141206a200441011064200141f8006a412020012802202204200128022841002802fcad421103002001280224450d00200410300b2000280200200041106a200141106a410110b703200141386a22054200370300200141206a41106a22034200370300200141206a41086a2204420037030020014200370320200141c0006a41e2a4c000410f10ab012004200141c0006a41086a220629000037030020012001290040370320200141d0006a41ecdac000411410ab01200a41086a220c200141d0006a41086a2208290000370000200a200129005037000002400240200141206a10a104220741ff01714102460d0020074101710d010b20054200370300200342003703002004420037030020014200370320200141c0006a41e2a4c000410f10ab012004200629000037030020012001290040370320200141d0006a419cdfc000411110ab01200c2008290000370000200a2001290050370000200141206a412041002802b4ad421105000b200141386a22074200370300200141306a22054200370300200141206a41086a2204420037030020014200370320200141c0006a41e2a4c000410f10ab012004200141c0006a41086a220329000037030020012001290040370320200141d0006a41acdac000410e10ab01200a41086a2206200141d0006a41086a220c290000370000200a200129005037000041002108200141206a412041002802b4ad4211050020074200370300200542003703002004420037030020014200370320200141c0006a41e2a4c000410f10ab012004200329000037030020012001290040370320200141d0006a41e8dec000411910ab012006200c290000370000200a2001290050370000200141206a412041002802b4ad4211050020074200370300200542003703002004420037030020014200370320200141c0006a41e2a4c000410f10ab012004200329000037030020012001290040370320200141d0006a41e0dfc000410d10ab012006200c290000370000200a2001290050370000200141206a412041002802b4ad4211050020074200370300200542003703002004420037030020014200370320200141c0006a41e2a4c000410f10ab012004200329000037030020012001290040370320200141d0006a41f8e0c000410e10ab012006200c290000370000200a2001290050370000200141206a412041002802b4ad4211050020074200370300200542003703002004420037030020014200370320200141c0006a41e2a4c000410f10ab012004200329000037030020012001290040370320200141d0006a41a4e0c000411410ab012006200c290000370000200a2001290050370000200141206a412041002802b4ad42110500200141f8006a10b001024020012802784101470d0020014194016a28020021080b200141386a4200370300200141306a4200370300200141206a41086a2204420037030020014200370320200141c0006a41e2a4c000410f10ab012004200141c0006a41086a29000037030020012001290040370320200141d0006a41e0e1c000412110ab01200a41086a200141d0006a41086a290000370000200a200129005037000020012008360278200141206a4120200141f8006a410441002802fcad42110300200141f8006a10d601427f200f20012903787c22102010200f541b1080044100410010ae0120012802102107024020012802182204450d00200441246c210a2007210403400240024002400240024020042d00000e050400010204030b2004410c6a280200450d03200441086a28020010300c030b2004410c6a280200450d02200441086a28020010300c020b2004410c6a280200450d01200441086a28020010300c010b200441086a280200450d00200441046a28020010300b200441246a2104200a415c6a220a0d000b0b024020012802142204450d00200441246c450d00200710300b200141c0026a24000f0b102c000bb90702057f017e230041306b22022400410041002802e8ae422203410120031b3602e8ae4202400240024020030e020001020b410041b480c200360284ad42410041b480c200360280ad42410041023602e8ae420c010b034041002802e8ae424101460d000b0b41052103024002400240024002400240024010000e06010203040506000b41acf9c1004134200241086a41e0f9c10041f0f9c1001034000b410021030c040b410121030c030b410221030c020b410321030c010b410421030b410020033602e4ae4202400240024020010d004108102f2203450d012003410e360204200341b8a5c000360200410c102f2204450d0141002101024020032802002205450d00200420032802043602082004200536020420044100360200410121010b200310302002410036021020024201370308200241edcad18b06360220200241086a200241206a410410642002410c3a0020200241086a200241206a410110644104200241086a10a80341c8a5c0004104200241086a10a903200241043a0020200241086a200241206a410110642001200241086a10a80302402005450d002001410c6c21012004210303400240024020032802004101470d00200341046a2802002105200341086a2802002206200241086a10a803200241086a2005200610640c010b200341046a2802002105200341086a2802002206200241086a10a803200241086a2005200610640b2003410c6a2103200141746a22010d000b0b200228020c2106200228020821052002280210210320041030200341046a2201417f4c0d0202400240024002400240024020010d0020024100360210200242013703080c010b2001102f2204450d06200241003602102002200136020c20022004360208200341c000490d01200341808001490d022003418080808004490d030b200241033a0020200241086a200241206a4101106420022003360220200241086a200241206a410410640c030b200220034102743a0020200241086a200241206a410110640c020b200220034102744101723b0120200241086a200241206a410210640c010b20022003410274410272360220200241086a200241206a410410640b200241086a200520031064200235021021072002280208210302402006450d00200510300b200241306a240020074220862003ad840f0b2002412c6a410d3602002002411c6a41023602002002420237020c200241bc81c10036020820024104360224200241b082c1003602202002200241206a3602182002200241086a360228200241086a41cc81c100103a000b102a000b102c000bab0101017f230041106b220224000240024002400240200041c000490d00200041808001490d012000418080808004490d02200241033a00032001200241036a41011064200220003602042001200241046a410410640c030b200220004102743a00032001200241036a410110640c020b200220004102744101723b010a20012002410a6a410210640c010b2002200041027441027236020c20012002410c6a410410640b200241106a24000be00801057f230041c0006b2203240002402001450d002000200141f0006c6a210403400240024020002802004101470d002000280204210120002802082205200210a80320022001200510640c010b2000280204210120002802082205200210a80320022001200510640b02400240200028020c22014102470d00200341003a00202002200341206a410110640c010b200341013a00202002200341206a41011064024020014101470d000240024020002802104101470d002000280214210120002802182205200210a80320022001200510640c010b2000280214210120002802182205200210a80320022001200510640b0240200028021c4101470d002000280220210120002802282205200210a80320012005200210b6040c020b20002802202101200041246a2802002205200210a80320012005200210b6040c010b200341206a20002802101102000240024020032802204101470d002003280224210120032802282205200210a80320022001200510640c010b2003280224210120032802282205200210a80320022001200510640b0240200328022c4101460d002003280230210120032802342205200210a80320012005200210b6040c010b2003280230210620032802382201200210a80320062001200210b604024020032802382201450d00200141d8006c21074100210503400240200620056a220141346a280200450d002001413c6a280200450d00200141386a28020010300b0240200141c4006a280200450d00200141cc006a28020041ffffffff0171450d00200141c8006a28020010300b2007200541d8006a2205470d000b0b20032802342201450d00200141d8006c450d00200610300b02400240200028022c22014102470d00200341003a00202002200341206a410110640c010b200341013a00202002200341206a41011064024020014101470d002000280230210120002802382205200210a80320012005200210b4040c010b200341186a200028023011020020032802182101200328021c2205200210a80320012005200210b4040b02400240200028023c22014102470d00200341003a00202002200341206a410110640c010b200341013a00202002200341206a41011064024020014101470d002000280240210120002802482205200210a80320012005200210b7040c010b200341106a20002802401102002003280210210120032802142205200210a80320012005200210b7040b02400240200028024c4101470d002000280250210120002802582205200210a80320012005200210b8040c010b200341086a200028025011020020032802082101200328020c2205200210a80320012005200210b8040b200041f0006a210102400240200028025c4101470d002000280260210520002802682206200210a80320052006200210b9040c010b200320002802601102002003280200210520032802042206200210a80320052006200210b9040b200320002d006c3a00202002200341206a410110642001210020012004470d000b0b200341c0006a24000bca0602027f027e230041f0046b22022400410041002802e8ae422203410120031b3602e8ae4202400240024020030e020001020b410041b480c200360284ad42410041b480c200360280ad42410041023602e8ae420c010b034041002802e8ae424101460d000b0b41052103024002400240024002400240024010000e06010203040506000b41acf9c1004134200241a8036a41e0f9c10041f0f9c1001034000b410021030c040b410121030c030b410221030c020b410321030c010b410421030b410020033602e4ae42200242808080808020370204200220013602142002200041bc8ec20020011b3602102002200241106a360200200241a8036a200210ab0220022802a8032103200241e0016a200241a8036a41047241c4011085051a0240024020034102460d00200241186a410472200241e0016a41c4011085052101200220033602180240024020022802002802040d00200241a8036a200141c4011085051a0c010b02402002419c016a2d00004103460d0020022d00784102470d0020024180016a280200450d00200241fc006a28020010300b200241186a10b202410221030b20034102460d00200241186a200241a8036a41c4011085051a200220033602a803200241a8036a410472200241186a41c4011085051a200241e0016a200241a8036a10ab034101410220022d00e00122034101461b2201102f2200450d01200241003602b003200220013602ac03200220003602a8030240024020034101470d00200241013a0018200241a8036a200241186a4101106420022d00e10120022d00e20120022d00e301200241a8036a10ac030c010b200241003a0018200241a8036a200241186a41011064024020022d00e40122034108460d00200241013a0018200241a8036a200241186a41011064200320022d00e50120022d00e601200241a8036a10d9010c010b200241003a0018200241a8036a200241186a410110640b20023502b003210420023502a8032105200241f0046a240020052004422086840f0b200241ec016a410d3602002002412c6a41023602002002420237021c200241bc81c100360218200241043602e401200241c082c1003602e0012002200241e0016a3602282002200241a8036a3602e801200241186a41cc81c100103a000b102a000bd21702077f037e230041800d6b22022400200220013602a005200241186a200241a0056a10b30320022802182103200228021c210420022802202105200241a0056a200141c8011085051a200241c0026a200241a0056a10b00220022d00c002210120022f00c102210620022d00c3022107200241b4016a200241c0026a410472418c011085051a024002400240024020014101460d00200241286a200241b4016a41046a4188011085051a200241106a41fc8ac20041101085022002280214210120022802102106200220053602c802200220043602c402200220033602c002200241a0056a2001410020061b10820420022802a005220120022802a805200241c0026a109802024020022802a405450d00200110300b02402004450d00200310300b200241d0036a200241286a10e101200241a0056a200241286a4188011085051a0240024020022d008006450d0041800821030c010b20022802a0054101470d03200241c0026a200241a0056a410472108102024020022d00c0024101460d00200241ec026a2802002106200241e8026a2802002103200241e4026a2802002107200241dc026a2802002105200241d8026a28020021080240200241e0026a2802002201450d002001410c6c21042008210103400240200141046a280200450d00200128020010300b2001410c6a2101200441746a22040d000b0b02402005450d002005410c6c450d00200810300b02402006450d002006410c6c21042007210103400240200141046a280200450d00200128020010300b2001410c6a2101200441746a22040d000b0b2003450d042003410c6c450d04200710300c040b20022d00c10222014102460d0320022f01c20241087420017221030b024020022802a0054101460d000240024002400240024002400240200241a8056a280200417f6a0e09090009010209030405060b200241b0056a280200450d08200241ac056a28020010300c080b200241b0056a280200450d07200241ac056a28020010300c070b200241b0056a280200450d06200241ac056a28020010300c060b200241a0056a410c6a28020021050240200241b4056a2802002201450d00200141186c21042005210103400240200141046a280200450d00200128020010300b0240200141106a280200450d002001410c6a28020010300b200141186a2101200441686a22040d000b0b200241b0056a2802002201450d05200141186c450d05200510300c050b200241a0056a410c6a28020021050240200241b4056a2802002201450d002001410c6c21042005210103400240200141046a280200450d00200128020010300b2001410c6a2101200441746a22040d000b0b200241b0056a2802002201450d042001410c6c450d04200510300c040b200241b0056a280200450d03200241ac056a28020010300c030b200241b0056a280200450d02200241ac056a28020010300c020b02400240024020022d00a405417f6a0e0404000104020b0240200241ac056a280200450d00200241a8056a28020010300b200241dc056a28020021050240200241e4056a2802002201450d002001410c6c21042005210103400240200141046a280200450d00200128020010300b2001410c6a2101200441746a22040d000b0b0240200241e0056a2802002201450d002001410c6c450d00200510300b200241e8056a28020021050240200241f0056a2802002201450d0020014104742104200541086a2101034002402001280200450d002001417c6a28020010300b200141106a2101200441706a22040d000b0b0240200241ec056a28020041ffffffff0071450d00200510300b200241f4056a10e3010c030b200241ac056a280200450d02200241a8056a28020010300c020b200241ac056a280200450d01200241a8056a28020010300c010b2000200620074110747222013b0001200041013a0000200041036a20014110763a00002004450d02200310300c020b20024190046a41086a200241b4016a41086a29020037030020024190046a41106a200241b4016a41106a29020037030020024190046a41186a200241b4016a41186a29020037030020024190046a41206a200241b4016a41206a29020037030020024190046a41286a200241b4016a41286a29020037030020024190046a41306a200241b4016a41306a280200360200200220022902b40137039004200041036a20034110763a0000200020033b0001200041013a00000c010b200241c0026a200241a0056a41e0001085051a200241023a00c804200241f8046a200241c8046a10cd03200241c8046a200241c0026a200241f8046a10e20141082101200241b4016a410c6a200241c8046a41086a290300370200200241b4016a41146a200241c8046a41106a290300370200200241b4016a411c6a200241c8046a41186a290300370200200241b4016a41246a200241c8046a41206a290300370200200241b4016a412c6a200241c8046a41286a290300370200200220022903c8043702b80120024190046a41086a200241b4016a41086a29020037030020024190046a41106a200241b4016a41106a29020037030020024190046a41186a200241b4016a41186a29020037030020024190046a41206a200241b4016a41206a29020037030020024190046a41286a200241b4016a41286a29020037030020024190046a41306a200241b4016a41306a280200360200200220022902b40137039004200241e0036a41286a20024190046a412c6a290200370300200241e0036a41206a220420024190046a41246a290200370300200241e0036a41186a20024190046a411c6a290200370300200241e0036a41106a220320024190046a41146a290200370300200241e0036a41086a220520024190046a410c6a29020037030020022002290294043703e00320022903d00322092003290300220a200a2009561b200920052903004201511b210920022903d803210a0240024020022903e0034201510d002009210b200a2109410021030c010b2002200241e0036a41086a36029004024041002802e4ae424105490d00200241c8046a41186a4200370300200241c8046a41106a22044200370300200241c8046a41086a4200370300200242003703c804200241c8046a41dca4c000410610ab01200441acc0c100410610ab01200241086a200241c8046a4120108502200241cc026a410f360200200241103602c4022002200228020c410020022802081b3602b401200220024190046a3602c8022002200241b4016a3602c0024100280284ad4221044100280280ad42210341002802e8ae422105200241a0056a41106a4202370300200241d4056a418691c100ad4280808080c00a84370200200241c8056a41fb92c100ad4280808080c00184370300200241a0056a41206a4202370300200241a0056a41086a410f360200200241bc056a200241c0026a360200200241dc92c1003602ac052002428180808080b9013702dc05200241003602d005200241ec92c1003602a405200241053602a005200341bc8ec200200541024622051b200241a0056a200441d8f5c10020051b28021011050020022802900441186a21040b2004290204210b20042802002104410121030b200241a0056a41286a20022903c002370300200241a0056a41206a200a370300200241a0056a41186a2009370300200241a0056a41106a200b370300200241ab056a200241b4016a41026a2d00003a0000200241a0056a41306a200241c0026a41086a290300370300200241d8056a200241c0026a41106a290300370300200241e0056a200241c0026a41186a290300370300200241e8056a200241c0026a41206a290300370300200220022f00b4013b00a905200220043602ac05200220033a00a805200242003703a005200241a0056a10e601200241fc8ac20041101085022002200228020441016a410120022802001b22043602a00541fc8ac2004110200241a0056a410441002802fcad421103004100200410ae01024020022903e0034201520d0020022903e8034202510d0020022002290081043703a005200220024188046a2800003600a70520024180046a2d000021010b200041003a0000200041046a20013a0000200041056a20022903a0053700002000410c6a20022800a7053600000b200241800d6a24000bb50301017f230041106b2204240002400240200041ff01714101460d00200441003a000f20032004410f6a410110640240024002400240024002400240024002400240200141ff01710e0a000102030405060708090b0b200441003a000f20032004410f6a410110640c0a0b200441013a000f20032004410f6a410110640c090b200441023a000f20032004410f6a410110640c080b200441033a000f20032004410f6a410110640c070b200441043a000f20032004410f6a410110640c060b200441053a000f20032004410f6a410110640c050b200441063a000f20032004410f6a410110640c040b200441073a000f20032004410f6a41011064200420023a000f20032004410f6a410110640c030b200441083a000f20032004410f6a410110640c020b200441093a000f20032004410f6a410110640c010b200441013a000f20032004410f6a41011064024002400240200141ff01710e03000102030b200441003a000f20032004410f6a410110640c020b200441013a000f20032004410f6a410110640c010b200441023a000f20032004410f6a41011064200420023a000f20032004410f6a410110640b200441106a24000be90902067f017e230041a0016b22022400410041002802e8ae422203410120031b3602e8ae4202400240024020030e020001020b410041b480c200360284ad42410041b480c200360280ad42410041023602e8ae420c010b034041002802e8ae424101460d000b0b41052103024002400240024002400240024010000e06010203040506000b41acf9c1004134200241106a41e0f9c10041f0f9c1001034000b410021030c040b410121030c030b410221030c020b410321030c010b410421030b410020033602e4ae420240024020010d00200241086a41fc8ac2004110108502200228020c21040240200228020822054101470d0041fc8ac200411041002802b4ad421105000b200241286a22034200370300200241106a41106a22014200370300200241106a41086a220642003703002002420037031020024180016a41dca4c000410610ab01200620024180016a41086a2207290000370300200220022900800137031020024180016a41f0bec100410e10ab0120032007290000370300200120022900800137030020022004410020051b36028001200241106a412020024180016a410441002802fcad421103004101200210ae012003420037030020014200370300200642003703002002420037031020024180016a41dca4c000410610ab0120062007290000370300200220022900800137031020024180016a41acc0c100410610ab012003200729000037030020012002290080013703002002200241106a412010850210ae03200241106a10af03200241003602980120024201370390014120102f2203450d012002422037028401200220033602800120024180016a200241206a4120106420024190016a200228028001220320022802880110640240200228028401450d00200310300b200241106a20024190016a10ee014120102f2203450d012002422037028401200220033602800120024180016a200241c0006a4120106420024190016a200228028001220320022802880110640240200228028401450d00200310300b4120102f2203450d012002422037028401200220033602800120024180016a200241e0006a4120106420024190016a200228028001220320022802880110640240200228028401450d00200310300b2002280214210420024190016a2002411c6a280200220710a5010240200741246c2201450d0020042103034020024180016a200310e70120024190016a200228028001220620022802880110640240200228028401450d00200610300b200341246a21032001415c6a22010d000b0b2002350298012108200228029001210602402007450d00200741246c21012004210303400240024002400240024020032d00000e050400010204030b2003410c6a280200450d03200341086a28020010300c030b2003410c6a280200450d02200341086a28020010300c020b2003410c6a280200450d01200341086a28020010300c010b200341086a280200450d00200341046a28020010300b200341246a21032001415c6a22010d000b0b0240200241186a2802002203450d00200341246c450d00200410300b200241a0016a240020084220862006ad840f0b2002418c016a410d360200200241246a410236020020024202370214200241bc81c1003602102002410436028401200241d882c10036028001200220024180016a3602202002200241106a36028801200241106a41cc81c100103a000b102a000b9b1803057f047e117f230041b0026b22002400200041c0016a41186a22014200370300200041c0016a41106a22024200370300200041c0016a41086a22034200370300200042003703c001200041086a41dca4c000410610ab012003200041086a41086a2204290000370300200020002900083703c001200041086a4198bfc100410b10ab012001200429000037030020022000290008370300200041086a200041c0016a10810420002903082105200041086a41106a290300210620002903102107200041086a41186a2903002108200041086a10d60102402000290310427f427f20074200200542015122011b22052006420020011b7c220620062005541b22052008420020011b7c220620062005541b580d0042001080040b200041e0016a41186a22014200370300200041e0016a41106a22094200370300200041e0016a41086a22034200370300200042003703e001200041086a41e2a4c000410f10ab0120032004290000370300200020002900083703e001200041086a41ecdac000411410ab0120012004290000370300200920002900083703004100210a200041e0016a412041002802b4ad42110500200041086a10b0010240024002400240024020002802084101470d00200041086a41186a280200210b200041086a41106a280200210c200041146a280200210d200041c0016a41186a4200370300200041c0016a41106a4200370300200041c0016a41086a22044200370300200042003703c001200041086a41e2a4c000410f10ab012004200041086a41086a2201290000370300200020002900083703c001200041086a41d4dbc000411610ab01200241086a20012900003700002002200029000837000020004120360284022000200041c0016a3602800220004188026a200041c0016a412041002802d4ad4211040002400240200028028802220e0d000c010b200028028c02210f200020004188026a41086a280200220336029c022000200e360298022003411f2003411f491b200e6a41016a210a200041086a410472211041002104417f2102024002400240034020032004460d01201020046a200e20046a22112d00003a00002000200441016a22013602082000200320026a36029c022000201141016a360298022002417f6a21022001210420014120470d000b200041e9016a200041156a2d00003a0000200041f0016a2000411c6a2d00003a0000200041f7016a200041236a2d00003a0000200020002f010c3b01e001200020002d000e3a00e2012000200041136a2f00003b00e70120002000411a6a2f01003b01ee012000200041216a2f00003b00f501200041246a29020021052000411d6a2800002104200041166a28010021022000200028000f3600e301200020023601ea01200020043600f101200020053703f801200320016b22044104490d00200a35000021052000200e20016a220241046a3602980220002004417c6a220136029c0220014104490d00200241046a35000021062000200441786a36029c022000200241086a36029802200041086a20004198026a109e042000280208220a450d00200028020c2112200041086a20004198026a109e04200028020822130d012012450d002012413c6c450d00200a10300b200042003702e4014100210a200041002802dc94423602e001200041093602a402200020004180026a3602a0022000200041e0016a3602ac022000411c6a41013602002000420137020c200041a0e6c1003602082000200041a0026a360218200041ac026a41d0adc000200041086a10321a20002802e00120002802e80110ad01024020002802e401450d0020002802e00110300b0c010b20064220862005842105200028020c21140b200f450d00200e10300b200a450d00200041f8016a22154200370300200041f0016a22164200370300200041e0016a41086a22174200370300200042003703e001200041086a41e2a4c000410f10ab012017200041086a41086a2218290000370300200020002900083703e001200041086a41c0e1c000411510ab01200941086a221920182900003700002009200029000837000041002103200041086a200041e0016a10bd032000280208220441002802e88f4220041b210f0240200029020c420020041b22064220882207a72210410c6c2211450d004100200d2005a76b22042004200d4b1b2102410021034100200c2005422088a76b22042004200c4b1b2104200b20022002200b4b1b2102200f41086a21012007a7410274417c6a41027641016a210b02400340200420012802006b220e20044b0d012002417f6a220420024b0d012001410c6a2101200341016a210320042102200e2104201141746a22110d000b200b21030b200320104b0d020b201542003703002016420037030020174200370300200042003703e001200041086a41e2a4c000410f10ab0120172018290000370300200020002900083703e001200041086a41f8e0c000410e10ab0120192018290000370000200920002900083700002003410c6c41046a2204417f4c0d020240024020040d00410121020c010b2004102f2202450d040b200041003602102000200436020c20002002360208200041086a200310a50102402003450d00200f2003410c6c6a2102200f210403402004280200200441086a280200200041086a10a6012004410c6a22042002470d000b0b200041e0016a412020002802082204200028021041002802fcad421103000240200028020c450d00200410300b200320104b0d040240024020030d00200642ffffffff0f83420c7e2205422088a70d042005a72204417f4c0d040240024020040d00410421110c010b2004102f2211450d060b2006a7210e2004410c6ead21050c010b201020036b2210ad420c7e2205422088a70d032005a72204417f4c0d030240024020040d00410421020c010b2004102f2202450d050b200642ffffffff0f832003ad4220868421052004410c6e210e200f21112002200f2003410c6c6a2010410c6c108505210f0b02402005422088a72204450d0020112004410c6c6a21012011210403402004410c6a21020240200441046a280200450d00200428020010300b2002210420012002470d000b0b02402005a72204450d002004410c6c450d00201110300b200041f8016a4200370300200041f0016a4200370300200041e0016a41086a22044200370300200042003703e001200041086a41e2a4c000410f10ab012004200041086a41086a2202290000370300200020002900083703e001200041086a41c0e1c000411510ab01200941086a2002290000370000200920002900083700002010410c6c41046a2204417f4c0d020240024020040d00410121020c010b2004102f2202450d040b200041003602102000200436020c20002002360208200041086a201010a50102402010450d00200f2010410c6c6a2102200f210403402004280200200441086a280200200041086a10a6012004410c6a22042002470d000b0b200041e0016a412020002802082204200028021041002802fcad421103000240200028020c450d00200410300b02402010450d002010410c6c2102200f210403400240200441046a280200450d00200428020010300b2004410c6a2104200241746a22020d000b0b0240200e450d00200e410c6c450d00200f10300b200041f8016a22014200370300200041f0016a22034200370300200041e0016a41086a22044200370300200042003703e001200041086a41e2a4c000410f10ab012004200041086a41086a2202290000370300200020002900083703e001200041086a41e0e1c000412110ab01200941086a22112002290000370000200920002900083700002000200041e0016a4120108502024020002802004101470d00200041e0016a412041002802b4ad421105000b200142003703002003420037030020044200370300200042003703e001200041086a41e2a4c000410f10ab0120042002290000370300200020002900083703e001200041086a41a4e0c000411410ab0120112002290000370000200920002900083700004104102f2204450d032000420437020c20002004360208200041086a410010a501200041e0016a412020002802082204200028021041002802fcad421103000240200028020c450d00200410300b02402012450d002012413c6c450d00200a10300b2014450d002014413c6c450d00201310300b200041b0026a24000f0b2003201041b4a2c0001042000b102c000b102a000b200320101038000bc629030c7f027e097f230041e0016b22012400200141d8006a41186a22024200370300200141d8006a41106a22034200370300200141d8006a41086a2204420037030020014200370358200141a8016a41dca4c000410610ab012004200141a8016a41086a2205290000370300200120012900a801370358200141a8016a418cc4c100410e10ab0120022005290000370300200320012900a801370300200141d8006a412041002802b4ad4211050020024200370300200342003703002004420037030020014200370358200141a8016a41dca4c000410610ab0120042005290000370300200120012900a801370358200141a8016a41ccbfc100411010ab0120022005290000370300200320012900a801370300200141d8006a412041002802b4ad4211050020024200370300200342003703002004420037030020014200370358200141a8016a41dca4c000410610ab0120042005290000370300200120012900a801370358200141a8016a41acc0c100410610ab0120022005290000370300200320012900a801370300200141106a200141d8006a4120108502200128021421062001280210210720024200370300200342003703002004420037030020014200370358200141a8016a41dca4c000410610ab0120042005290000370300200120012900a801370358200141a8016a41ccc0c100410a10ab0120022005290000370300200320012900a801370300200141a8016a200141d8006a41201082020240024020012d00a8014101460d00200141186a41186a4200370300200141186a41106a4200370300200141186a41086a4200370300200142003703180c010b200141186a41186a200141c1016a290000370300200141186a41106a200141b9016a290000370300200141186a41086a200141b1016a290000370300200120012900a9013703180b200141f0006a22084200370300200141e8006a22094200370300200141d8006a41086a2202420037030020014200370358200141a8016a41dca4c000410610ab012002200141a8016a41086a2204290000370300200120012900a801370358200141a8016a41e0c0c100410610ab01200341086a220a2004290000370000200320012900a8013700002001412036027c2001200141d8006a36027820014180016a200141d8006a412041002802d4ad421104000240024020012802800122050d004100210b0c010b200128028401210c200120014180016a41086a280200360294012001200536029001200141a8016a20014190016a1083020240024020012802a801220b450d0020012902ac01210d0c010b200142003702d4014100210b200141002802dc94423602d0012001410936029c012001200141f8006a360298012001200141d0016a3602a401200141bc016a4101360200200142013702ac01200141a0e6c1003602a801200120014198016a3602b801200141a4016a41d0adc000200141a8016a10321a20012802d00120012802d80110ad01024020012802d401450d0020012802d00110300b0b200c450d00200510300b20084200370300200942003703002002420037030020014200370358200141a8016a41dca4c000410610ab0120022004290000370300200120012900a801370358200141a8016a41f0bec100410e10ab01200a2004290000370000200320012900a801370000200141086a200141d8006a4120108502200128020c210241002103024020012802084101470d00200141d8006a412041002802b4ad42110500410121030b02402002410020031b2209ad420c7e220e422088a70d00200ea72203417f4c0d000240024002400240024020030d004104210c0c010b2003102f220c450d010b0240024002402003410c6e220f20094f0d00200f41017422022009200220094b1b22024104200241044b1bad420c7e220e422088a7454102742102200ea72104024002402003410b4b0d00200141003602a8010c010b200141b0016a41043602002001200c3602a8012001200f410c6c3602ac010b200141d8006a20042002200141a8016a1069200141e0006a2802002103024020012802584101460d00200128025c210c2003410c6e210f0c020b20030d030c060b20090d00410021090c010b41002802dc9442210a200c2103410021020340200141d8006a2002108204200141a8016a20012802582205200128026022081086020240024020012802a80122040d004200210e200a21040c010b2005200841002802b4ad4211050020012902ac01210e0b200241016a21020240200128025c450d00200510300b20032004360200200341046a200e3702002003410c6a210320092002470d000b0b200120093602b0012001200f3602ac012001200c3602a801200141d8006a200141a8016a10830402402006410020071b220541fc01490d00200141a8016a4100200541857e6a2203200320054b1b10fe0320012802a801220320012802b00141002802b4ad4211050020012802ac01450d00200310300b200141d0016a41002802f4ad4211020020012802d8012202450d02200120012802d00122032d00003a00ac01200141013602a80120024101460d02200120032d00013a00ad01200141023602a80120024102460d02200120032d00023a00ae01200141033602a80120024103460d02200120032d00033a00af01200141043602a80120024104460d02200141b0016a20032d00043a0000200141053602a80120024105460d02200141b1016a20032d00053a0000200141063602a80120024106460d02200141b2016a20032d00063a0000200141073602a80120024107460d02200141b3016a20032d00073a0000200141083602a80120024108460d02200141b4016a20032d00083a0000200141093602a80120024109460d02200141b5016a20032d00093a00002001410a3602a8012002410a460d02200141b6016a20032d000a3a00002001410b3602a8012002410b460d02200141b7016a20032d000b3a00002001410c3602a8012002410c460d02200141b8016a20032d000c3a00002001410d3602a8012002410d460d02200141b9016a20032d000d3a00002001410e3602a8012002410e460d02200141ba016a20032d000e3a00002001410f3602a8012002410f460d02200141bb016a20032d000f3a0000200141103602a80120024110460d02200141bc016a20032d00103a0000200141113602a80120024111460d02200141bd016a20032d00113a0000200141123602a80120024112460d02200141be016a20032d00123a0000200141133602a80120024113460d02200141bf016a20032d00133a0000200141143602a80120024114460d02200141c0016a20032d00143a0000200141153602a80120024115460d02200141c1016a20032d00153a0000200141163602a80120024116460d02200141c2016a20032d00163a0000200141173602a80120024117460d02200141c3016a20032d00173a0000200141183602a80120024118460d02200141c4016a20032d00183a0000200141193602a80120024119460d02200141c5016a20032d00193a00002001411a3602a8012002411a460d02200141c6016a20032d001a3a00002001411b3602a8012002411b460d02200141c7016a20032d001b3a00002001411c3602a8012002411c460d02200141c8016a20032d001c3a00002001411d3602a8012002411d460d02200141c9016a20032d001d3a00002001411e3602a8012002411e460d02200141ca016a20032d001e3a00002001411f3602a8012002411f460d02200141cb016a20032d001f3a000020014198016a41026a2202200141b5016a2d00003a000020014190016a41026a2204200141bc016a2d00003a0000200120012f01ac013b018001200120012d00ae013a0082012001200141b3016a2f00003b0198012001200141ba016a2f01003b019001200141c4016a2802002109200141bd016a280000210a200141b6016a280100210c200141203602a801200141a8016a41206a280200210f20012800af012106200141f8006a41026a200141c3016a2d000022083a0000200141c4006a41026a20012d0082013a0000200141c0006a41026a20022d00003a00002001413c6a41026a20042d00003a00002001200141c1016a2f000022023b0178200120012f0180013b0144200120012f0198013b0140200120012f0190013b013c200141386a41026a20083a0000200120023b0138024020012802d401450d00200310300b200141003602d801200142013703d0014120102f2203450d00200142203702ac01200120033602a801200141a8016a200141186a41201064200141d0016a20012802a801220320012802b0011064024020012802ac01450d00200310300b41002802e88f42210320014180016a20012802d001220220012802d80141002802acad42110400024020012802d401450d00200210300b200d4200200b1b210e200b2003200b1b2104024002402001280280012203450d0020014188016a2802002202450d032001280284012108200120032d00003a00ac01200141013602a80120024101460d03200120032d00013a00ad01200141023602a80120024102460d03200120032d00023a00ae01200141033602a80120024103460d03200120032d00033a00af01200141043602a80120024104460d03200141b0016a20032d00043a0000200141053602a80120024105460d03200141b1016a20032d00053a0000200141063602a80120024106460d03200141b2016a20032d00063a0000200141073602a80120024107460d03200141b3016a20032d00073a0000200141083602a80120024108460d03200141b4016a20032d00083a0000200141093602a80120024109460d03200141b5016a20032d00093a00002001410a3602a8012002410a460d03200141b6016a20032d000a3a00002001410b3602a8012002410b460d03200141b7016a20032d000b3a00002001410c3602a8012002410c460d03200141b8016a20032d000c3a00002001410d3602a8012002410d460d03200141b9016a20032d000d3a00002001410e3602a8012002410e460d03200141ba016a20032d000e3a00002001410f3602a8012002410f460d03200141bb016a20032d000f3a0000200141103602a80120024110460d03200141bc016a20032d00103a0000200141113602a80120024111460d03200141bd016a20032d00113a0000200141123602a80120024112460d03200141be016a20032d00123a0000200141133602a80120024113460d03200141bf016a20032d00133a0000200141143602a80120024114460d03200141c0016a20032d00143a0000200141153602a80120024115460d03200141c1016a20032d00153a0000200141163602a80120024116460d03200141c2016a20032d00163a0000200141173602a80120024117460d03200141c3016a20032d00173a0000200141183602a80120024118460d03200141c4016a20032d00183a0000200141193602a80120024119460d03200141c5016a20032d00193a00002001411a3602a8012002411a460d03200141c6016a20032d001a3a00002001411b3602a8012002411b460d03200141c7016a20032d001b3a00002001411c3602a8012002411c460d03200141c8016a20032d001c3a00002001411d3602a8012002411d460d03200141c9016a20032d001d3a00002001411e3602a8012002411e460d03200141ca016a20032d001e3a00002001411f3602a8012002411f460d03200141a8016a41236a20032d001f3a0000200141d0006a41026a2202200141b5016a2d00003a0000200141cc006a41026a220b200141bc016a2d00003a0000200120012f01ac013b0154200120012d00ae013a00562001200141b3016a2f00003b01502001200141ba016a2f01003b014c200141b6016a2801002110200141bd016a2800002111200141c4016a2802002112200141203602a801200141a8016a41206a280200211320012800af012114200141c8006a41026a2207200141c3016a2d00003a00002001200141c1016a2f00003b014820014198016a41026a221520012d00563a0000200120012f01543b019801200120012f01503b019001200120022d00003a009201200141f8006a41026a2216200b2d00003a0000200120012f014c3b0178200141a4016a41026a220b20072d00003a0000200120012f01483b01a40102400240200e422088a72202200ea7460d00200e210d0c010b200241016a22072002490d0620024101742217200720072017491b22074104200741044b1bad42247e220d422088a7454102742107200da721170240024020020d00200141003602a8010c010b200141b0016a4104360200200120043602a8012001200241246c3602ac010b200141d0016a20172007200141a8016a1069200141d8016a280200210220012802d0014101460d0220012802d4012104200e42808080807083200241246ead84210d200e422088a721020b2004200241246c6a220241003a000020022014360204200241036a20152d00003a0000200220012f0198013b00012002410a6a20012d0092013a0000200220012f0190013b01082002201036000b20022011360112200241116a20162d00003a0000200220012f01783b000f200241186a200b2d00003a0000200220012f01a4013b01162002201336001d20022012360019200220012f00a8013b0021200241236a200141a8016a41026a2d00003a0000200d4280808080107c210e2008450d00200310300b20002001290358370050200020012f01443b0030200041376a20012f01403b00002000413e6a20012f013c3b0000200041e8006a200141d8006a41186a290300370000200041e0006a200141d8006a41106a290300370000200041d8006a200141d8006a41086a290300370000200041326a200141c4006a41026a2d00003a0000200041396a200141c0006a41026a2d00003a0000200041c0006a2001413c6a41026a2d00003a0000200041cc006a200f360000200041c8006a2009360000200041c1006a200a3600002000413a6a200c360000200041336a2006360000200041086a200e3702002000200436020420002005360200200041c7006a200141386a41026a2d00003a0000200041c5006a20012f01383b0000200041286a200141186a41186a290300370000200041206a200141186a41106a290300370000200041186a200141186a41086a29030037000020002001290318370010200141e0016a24000f0b2002450d030b102a000b41a493c100412c200141a8016a41b492c10041e093c1001034000b41a493c100412c200141a8016a41b492c10041d093c1001034000b102c000bfa0903027f017e057f230041d0026b22022400410041002802e8ae422203410120031b3602e8ae4202400240024020030e020001020b410041b480c200360284ad42410041b480c200360280ad42410041023602e8ae420c010b034041002802e8ae424101460d000b0b41052103024002400240024002400240024010000e06010203040506000b41acf9c1004134200241f8016a41e0f9c10041f0f9c1001034000b410021030c040b410121030c030b410221030c020b410321030c010b410421030b410020033602e4ae422002428080808080203702342002200136027c2002200041bc8ec20020011b3602782002200241f8006a360230200241f8016a200241306a10b1030240024020022802f8014101460d00200241a0016a41086a220320024184026a280200360200200220022902fc013703a0012002280230280204450d01200241a0016a10b2030b200241ac016a410d3602002002418c026a4102360200200242023702fc01200241bc81c1003602f801200241043602a401200241f082c1003602a0012002200241a0016a360288022002200241f8016a3602a801200241f8016a41cc81c100103a000b200241086a20032802002203360200200220022903a0012204370300200241206a41086a200336020020022004370320024002400240024020022802242205450d0020022802202106034020052f018a012207410374210841002100417f210141002103024002400340024020082003470d00200721010c020b41ebb7c000200520036a418c016a41081088052209450d02200141016a21012000410c6a2100200341086a21032009417f4a0d000b0b2006450d022006417f6a2106200520014102746a41e4016a28020021050c010b0b200520006a220341046a280200210120022003410c6a28020036023420022001360230200241f8016a200241306a10ec0120022802f8012200450d0120022f01fc012109200241a0016a200241f8016a41067241d2001085051a200241f8016a200241a0016a41d2001085051a200241a0016a200241f8016a41d2001085051a200241f8016a200241a0016a41d2001085051a20024100360230200241f8006a41a0064108200241306a1069200241f8006a41086a2205280200210120022802784101470d0220010d03102c000b200241f8016a200241a0016a41d2001085051a0b41f3b7c00041c60041bcb8c0001050000b200228027c22032000360208200341023a0004200341013602002003410c6a20093b01002003410e6a200241f8016a41d2001085051a20034184016a41033a000020034180016a20024198016a280200360200200341f8006a20024190016a290200370200200341f0006a20024188016a290200370200200341e8006a20052902003702002003200229027837026020034185016a200241306a41c3001085051a200241206a10b20341cc01102f2200450d00200242cc013702a401200220003602a001200241a0016a410110a50120022003360230200241f8016a200241306a10b303200241a0016a20022802f80122002002280280021064024020022802fc01450d00200010300b20022802a001210020023502a8012104024020034184016a2d00004103460d0020032d00604102470d00200341e8006a280200450d00200341e4006a28020010300b200310b202200141c8017021090240200141c801490d0020012009460d00200310300b200241d0026a240020044220862000ad840f0b102a000bb61a070e7f017e027f017e057f017e077f230041e0006b22022400200241086a200110ac0202400240024002400240024002400240024002400240024002402002280208450d00200041013602000c010b200228020c21032001200128020441016a22043602040240200420012802084b0d00410021050240024002400240024020030d0041002106410021070c010b200241d0006a41086a2108200241d9006a2109200241d0006a410a6a210a200241d0006a410b6a210b41002106410021074100210c034020012802002204280204220d450d032004280200220e2d0000210f2004200d417f6a3602042004200e41016a3602002002200f3a005420012802002204280204220d450d032004280200220e2d0000210f2004200d417f6a3602042004200e41016a3602002002200f3a005520012802002204280204220d450d032004280200220e2d0000210f2004200d417f6a3602042004200e41016a3602002002200f3a005620012802002204280204220d450d032004280200220e2d0000210f2004200d417f6a3602042004200e41016a3602002002200f3a005720012802002204280204220d450d032004280200220e2d0000210f2004200d417f6a3602042004200e41016a3602002008200f3a000020012802002204280204220d450d032004280200220e2d0000210f2004200d417f6a3602042004200e41016a3602002009200f3a000020012802002204280204220d450d032004280200220e2d0000210f2004200d417f6a3602042004200e41016a360200200a200f3a000020012802002204280204220d450d03200b2004280200220e2d00003a00002004200d417f6a3602042004200e41016a360200200229025421102002200110ac0220022802000d032001280200220d280204220e20022802042204490d032004417f4c0d070240024020040d004101210f0c010b2004102f220f450d0f200f410020041087051a2001280200220d280204210e0b200e2004490d02200f200d28020020041085052111200d280204220e2004490d11200d200e20046b360204200d200d28020020046a36020020022010370350024020070d0041e401102f2207450d0f41002112200741003b018a01200741003602000b200c41016a210c2004ad2213422086201384211320072114201221150240024003402014418c016a211620142f018a01221741037421184100210e417f210d4100210402400340024020182004470d002017210d0c020b200241d0006a201420046a418c016a4108108805220f450d03200d41016a210d200e410c6a210e200441086a2104200f417f4a0d000b0b02402015450d002015417f6a21152014200d4102746a41e4016a28020021140c010b0b0240024002400240024002402017410a4b0d00200d2017490d012016200d4103746a2010370000201441046a21040c020b410021154104210402400240200d41054f0d00200d210f0c010b410521044105210f02400240200d417b6a0e020201000b200d41796a210f41012115410621040c010b4100210f410121150b41e401102f220e450d15200e41003b018a01200e4100360200200e20142f018a0122172004417f736a220d3b018a01201620044103746a29000021192008201441046a221a2004410c6c6a221841086a28020036020020022018290200370350200d410c4f0d0f2017200441016a22186b200d470d10200e418c016a201620184103746a200d4103741085051a200e41046a201a2018410c6c6a200d410c6c1085051a201420043b018a01200241c0006a41086a221a200828020036020020022002290350370340200e201420151b2204418c016a210d02400240200f41016a221520042f018a0122184d0d00200d200f4103746a2010370000200441046a210d0c010b200d20154103746a200d200f4103746a220d2018200f6b22174103741086051a200d2010370000200441046a220d2015410c6c6a200d200f410c6c6a2017410c6c1086051a0b200d200f410c6c6a220d2013370204200d20113602002004201841016a3b018a01200241306a41086a221b201a2802002204360200200220022903402210370330200241106a41086a2216200436020020022010370310201428020022040d02410021110c030b2016200d41016a220e4103746a2016200d4103746a22042017200d6b220f4103741086051a20042010370000201441046a2204200e410c6c6a2004200d410c6c6a200f410c6c1086051a0b2004200d410c6c6a22042013370204200420113602002014201741016a3b018a01200641016a21060c040b4100211120192110200e211c034020142f0188012114200241206a41086a221d201628020036020020022002290310370320200422152f018a012217410b490d024100211841042104024020144105490d0020142104024002402014417b6a0e020201000b201441796a211441012118410621040c010b4100211441012118410521040b419402102f220e450d13200e41003b018a01200e4100360200200e20152f018a01221e2004417f736a220d3b018a012015418c016a221f20044103746a29000021192008201541046a22202004410c6c6a220f41086a2802003602002002200f290200370350200d410c4f0d0f201e200441016a220f6b200d470d10200e418c016a201f200f4103746a200d4103741085051a200e41046a2020200f410c6c6a200d410c6c1085051a201520043b018a01201a200828020036020020022002290350370340200e2f018a01220d41016a211e200d410c4f0d11201720046b2204201e470d12201141016a2111200e41e4016a2015200f4102746a41e4016a20044102741085051a4100210402400340200e20044102746a41e4016a280200220f20043b018801200f200e3602002004200d4f0d0120042004200d496a2204200d4d0d000b0b201b201a28020036020020022002290340370330200e201520181b220f418c016a21180240201441016a2204200f2f018a01220d4b221e0d00201820044103746a201820144103746a200d20146b4103741086051a0b201820144103746a20103700002008201d28020036020020022002290320370350200f41046a21170240201e0d0020172004410c6c6a20172014410c6c6a200d20146b410c6c1086051a0b200d41016a211820172014410c6c6a22172002290350370200201741086a2008280200360200200f41e4016a21170240201441026a221e200d41026a221d4f0d002017201e4102746a201720044102746a200d20146b4102741086051a0b201720044102746a201c360200200f20183b018a0102402004201d4f0d00200f20144102746a41e8016a210403402004280200220d201441016a22143b018801200d200f360200200441046a210420182014470d000b0b2016201b2802003602002002200229033037031020192110200e211c20152114201528020022040d000b0b2008201628020036020020022002290310370350419402102f2204450d11200420073602e401200441003b018a0120044100360200200741003b0188012007200436020020122011470d1220042f018a01220d410b4f0d13201241016a21122004200d41016a220f3b018a012004200d4103746a418c016a20193700002004200d410c6c6a220d410c6a2008280200360200200d41046a2002290350370200200441e4016a200f4102746a200e360200200e200f3b018801200e200436020020042107200641016a21060c020b2015418c016a21040240201720144d220e0d00200420144103746a220d41086a200d201720146b4103741086051a0b200420144103746a20103700002008201628020036020020022002290310370350201441016a2104201541046a210d0240200e0d00200d2004410c6c6a200d2014410c6c6a201720146b410c6c1086051a0b201741016a210f200d2014410c6c6a220d2002290350370200200d41086a2008280200360200201541e4016a210d201741026a21180240200e0d002014410274200d6a41086a200d20044102746a201720146b4102741086051a0b2015200f3b018a01200d20044102746a201c3602000240200420184f0d0020152004417f6a22044102746a41e8016a210d0340200d280200220e200441016a22043b018801200e2015360200200d41046a210d200f2004470d000b0b200641016a21060c010b2014200e6a220441086a220d280200210e200d2013370200200441046a220d2802002104200d20113602002004450d00200e450d00200410300b200c2003470d000b0b200020123602042000410c6a2006360200200041086a20073602002002200636025820022007360254200220123602500c020b200f10300b200220063602582002200736025420022012360250200241d0006a10b203410121050b2000200536020020012001280204417f6a3602040c010b200041013602000b200241e0006a24000f0b102c000b200d410b41e8a2c2001042000b41f8a2c200412841a0a3c200102d000b200d410b41e8a2c2001042000b41f8a2c200412841a0a3c200102d000b201e410c41f8a3c2001042000b41f8a2c200412841a0a3c200102d000b102a000b41eaa0c2004130419ca1c200102d000b41aca1c200412041cca1c200102d000b2004200e41f0f5c100104a000b9a0303067f017e017f200028020421012000410036020402402001450d00024020002802002202450d00034020012802e40121012002417f6a22020d000b0b024020002802082203450d004100210003400240024002400240200020012f018a01490d0041002100034041002102024020012802002204450d00200041016a210520012f0188012106200421020b024041940241e40120001b450d00200110300b024020020d00410021010c050b2005210020022101200620022f018a014f0d000b20022006410c6c6a41046a2104024020050d00200221010c020b200641027420026a41e8016a280200210102402005417f6a2200450d00034020012802e40121012000417f6a22000d000b0b410021000c020b20012000410c6c6a41046a210420002106200121020b200641016a21000b20022006410c6c6a41086a2902002107200428020021080b2008450d022003417f6a210302402007a7450d00200810300b20030d000b0b41002102034020012802002100024041940241e40120021b450d00200110300b2002417f6a21022000210120000d000b0b0b8b0d01077f230041c0006b22022400024041ca01102f2203450d0020002003360200200041046a220441ca01360200200341003b000041022105200041086a410236020020042802002104024002400240200128020022034184016a2d00004103470d00410221010240024020044102470d00200242828080801037021420022000280200360210200241306a41084101200241106a1069200241306a41086a280200210120022802304101460d0120002002280234360200200041046a2001360200200041086a28020021010b200028020020016a41043a0000200041086a2201200128020041016a3602000c020b2001450d020c030b0240024002400240024002400240024020044102470d00200242828080801037021420022000280200360210200241306a41084101200241106a1069200241306a41086a280200210120022802304101460d0120002002280234360200200041046a2001360200200041086a28020021050b200028020020056a4184013a0000200041086a2201200128020041016a36020020032d00600e050102030405060b20010d080c070b200241003a00102000200241106a410110642000200341e1006a412010640c040b200241013a00102000200241106a410110640c030b200241023a00102000200241106a41011064200341e4006a280200200341ec006a280200200010a6010c020b200241033a00102000200241106a410110642000200341e1006a412010640c010b200241043a00102000200241106a410110642000200341e1006a411410640b02400240024020032d0084010e03000102030b200241003a00102000200241106a41011064200020034185016a41c00010640c020b200241013a00102000200241106a41011064200020034185016a41c00010640c010b200241023a00102000200241106a41011064200020034185016a41c10010640b0240024020032802004101460d00200241003a00102000200241106a41011064200341086a200010b1020c010b200241013a00102000200241106a41011064200341046a2000109b020b200041086a28020021034104102f2201450d01200242043702042002200136020002400240024002402003417e6a220341c000490d00200341808001490d012003418080808004490d02200241033a00102002200241106a41011064200220033602102002200241106a410410640c030b200220034102743a00102002200241106a410110640c020b200220034102744101723b01102002200241106a410210640c010b200220034102744102723602102002200241106a410410640b0240200041086a2206280200220141014d0d00200228020821052002280200210420022000360220410021032006410036020020022004360224200241286a200420056a2207360200200241023602102002411c6a2000280200220641026a220836020020022001417e6a220136021420022008360218200241246a21080240024020010d002000200810c1030c010b034020052003460d012002200420036a220141016a360224200620036a20012d00003a00002000200028020841016a360208200341016a22034102470d000b0240024020052003470d00200420036a21010c010b200241106a200520036b10b302024020022802202205280208220320022802102200470d0020022802282107200228022421010c010b200020036b2106200528020020036a21002002280224210320022802282107034020072003460d022002200341016a2201360224200020032d00003a00002005200528020841016a360208200041016a2100200121032006417f6a22060d000b0b200720016b2203417f4c0d020240024020030d00410121000c010b2003102f2200450d040b200241003602382002200336023420022000360230200241306a200810c1032002280234210720022802302108024020022802382203450d00200241106a200310b30220022802202205280208220020022802102201460d00200120006b2106200528020020006a21002008210103402003450d01200020012d00003a00002005200528020841016a3602082003417f6a2103200141016a2101200041016a21002006417f6a22060d000b0b2007450d00200810300b024020022802142203450d000240200228021022052002280220220641086a22012802002200460d002006280200220620006a200620056a20031086051a0b2001200320006a3602000b02402002280204450d00200410300b200241c0006a24000f0b4102200141c4e3c1001042000b102c000b102a000bc80f02087f027e230041e0036b22022400410041002802e8ae422203410120031b3602e8ae4202400240024020030e020001020b410041b480c200360284ad42410041b480c200360280ad42410041023602e8ae420c010b034041002802e8ae424101460d000b0b41052103024002400240024002400240024010000e06010203040506000b41acf9c1004134200241186a41e0f9c10041f0f9c1001034000b410021030c040b410121030c030b410221030c020b410321030c010b410421030b410020033602e4ae42200242808080808020370204200220013602142002200041bc8ec20020011b3602102002200241106a360200200241f0026a200210a203024020022802f4022201450d00200241fc026a280200210420022802f802210520022802f002210320024190026a20024180036a41e0001085051a200241f0026a200210a303024020022802f00222060d0002402004450d00200441246c21002001210303400240024002400240024020032d00000e050400010204030b2003410c6a280200450d03200341086a28020010300c030b2003410c6a280200450d02200341086a28020010300c020b2003410c6a280200450d01200341086a28020010300c010b200341086a280200450d00200341046a28020010300b200341246a21032000415c6a22000d000b0b2005450d01200541246c450d01200110300c010b200241f0026a41086a280200210720022802f4022108200241b0016a20024190026a41e0001085051a200241f0026a200210b103024020022802f0024101470d0002402004450d00200441246c21002001210303400240024002400240024020032d00000e050400010204030b2003410c6a280200450d03200341086a28020010300c030b2003410c6a280200450d02200341086a28020010300c020b2003410c6a280200450d01200341086a28020010300c010b200341086a280200450d00200341046a28020010300b200341246a21032000415c6a22000d000b0b02402005450d00200541246c450d00200110300b02402007450d00200741c8016c21012006210003400240200022034184016a2d00004103460d00200341e0006a2d00004102470d00200341e8006a280200450d00200341e4006a28020010300b200341c8016a2100200310b202200141b87e6a22010d000b0b2008450d01200841c8016c450d01200610300c010b200241a0016a41086a2200200241f0026a410c6a280200360200200220022902f4023703a001200241286a200241b0016a41e0001085051a20024190016a20073602002002418c016a2008360200200241186a410c6a2004360200200241186a41086a20053602002002419c016a20002802003602002002200636028801200220022903a001370294012002200136021c2002200336021820024194016a21090240024020022802002802040d0020024190026a41086a200941086a28020036020020022009290200370390020c010b02402004450d00200441246c210303400240024002400240024020012d00000e050400010204030b2001410c6a280200450d03200141086a28020010300c030b2001410c6a280200450d02200141086a28020010300c020b2001410c6a280200450d01200141086a28020010300c010b200141086a280200450d00200141046a28020010300b200141246a21012003415c6a22030d000b0b02402005450d00200541246c450d00200228021c10300b02402007450d00200741c8016c21012006210003400240200022034184016a2d00004103460d00200341e0006a2d00004102470d00200341e8006a280200450d00200341e4006a28020010300b200341c8016a2100200310b202200141b87e6a22010d000b0b02402008450d00200841c8016c450d00200610300b200910b203410021010b2001450d00200241b0016a41086a20024190026a41086a28020022033602002002200229039002220a3703b001200241f0026a41086a2003360200200241013b01242002420037021c2002200a3703f002200241f0026a10b20302402004450d00200441246c21002001210303400240024002400240024020032d00000e050400010204030b2003410c6a280200450d03200341086a28020010300c030b2003410c6a280200450d02200341086a28020010300c020b2003410c6a280200450d01200341086a28020010300c010b200341086a280200450d00200341046a28020010300b200341246a21032000415c6a22000d000b0b02402005450d00200541246c450d00200110300b02402007450d00200741c8016c21012006210003400240200022034184016a2d00004103460d00200341e0006a2d00004102470d00200341e8006a280200450d00200341e4006a28020010300b200341c8016a2100200310b202200141b87e6a22010d000b0b02402008450d00200841c8016c450d00200610300b200241003602f802200242013703f002200241013a009002200241f0026a20024190026a41011064200241003a009002200241f0026a20024190026a41011064200241f0026a410010a50120023502f802210a20023502f002210b200241186a10b203200241e0036a2400200b200a422086840f0b200241fc026a410d3602002002412c6a41023602002002420237021c200241bc81c100360218200241043602f4022002418c83c1003602f0022002200241f0026a3602282002200241186a3602f802200241186a41cc81c100103a000bab0f05057f027e057f017e017f23004190086b22022400410041002802e8ae422203410120031b3602e8ae4202400240024020030e020001020b410041b480c200360284ad42410041b480c200360280ad42410041023602e8ae420c010b034041002802e8ae424101460d000b0b41052103024002400240024002400240024010000e06010203040506000b41acf9c1004134200241d0016a41e0f9c10041f0f9c1001034000b410021030c040b410121030c030b410221030c020b410321030c010b410421030b41002104410020033602e4ae4220024280808080802037020c20022001360284072002200041bc8ec20020011b220336028007200220024180076a360208024002400240024002402001450d0020022001417f6a360284072002200341016a3602800702400240024020032d00000e03020001030b410121040c010b410221040b200241a0036a200241086a10ab0220022802a00322014102460d00200241dc016a200241a0036a41047241c4011085052103200220013602d801200220043a00d0010240024020022802082802040d00200241a0036a200341c4011085051a0c010b200241d8016a21010240200241dc026a2d00004103460d00200241b8026a2d00004102470d00200241c0026a280200450d00200241bc026a28020010300b200110b202410221010b20014102460d00200241086a200241a0036a41c4011085051a200220013602a003200241a0036a410472200241086a41c4011085051a2002200241a0036a36028007200241d0016a20024180076a10b303024020022802d401450d0020022802d00110300b200241d0016a200241a0036a41c8011085051a20024180076a200241d0016a10b00220022d008007210120022f008107210320022d0083072100200241f0056a20024180076a410472418c011085051a41012104024020014101460d0041042103200241e8046a200241f0056a41046a4188011085051a20024180076a200241e8046a10e1010240024020022d00c805450d00410021050c010b410121010240024020022802e8044101460d0020024181023b00d1010c010b200241d0016a200241e8046a41047210810220022d00d00121010b410121040240200141ff01714101460d0020024180026a2d00002104200241fc016a2802002100200241f8016a2802002101200241f4016a2802002106200241ec016a2802002103200241e8016a2802002105200241d0016a41106a2903002107200241d0016a41086a29030021084100210941002802e88f42220a210b4100210c0240024002400240200241f0016a280200220d450d00200241003602d001200241f0056a200d4104200d41044b1bad420c7e220ea7200e422088a745410274200241d0016a1069200241f8056a280200210f20022802f0054101460d0120022802f405210b200f410c6e210c0b200b2005200d410c6c1085051a20000d010c070b200f450d010c090b200241003602d001200241f0056a20004104200041044b1bad420c7e220ea7200e422088a745410274200241d0016a1069200241f8056a280200210f024020022802f0054101460d0020022802f405210a200f410c6e21090c060b200f0d080b102c000b20022f00d10120022d00d30141107472220541ffffff077122014110762106200141087621030b0c030b2003200041107472220541ffffff07712201411076210620014108762103410121040c030b200241146a410d360200200241e4016a4102360200200242023702d401200241bc81c1003602d0012002410436020c200241a483c1003602082002200241086a3602e0012002200241d0016a360210200241d0016a41cc81c100103a000b200a20062000410c6c1085051a200441ff0171210f4100210402402003450d002003410c6c450d00200510300b200f410047210f02402001450d002001410c6c450d00200610300c010b0b200241e8046a10b2020b4101102f2201450d00200242013702d401200220013602d001024002402004450d00200241013a00a003200241d0016a200241a0036a41011064200520032006200241d0016a10ac0320022802d801210520022802d00121060c010b200241003a00a003200241d0016a200241a0036a41011064200220083703a003200241d0016a200241a0036a41081064200241d0016a200d10a5010240200d450d00200b200d410c6c6a2103200b210103402001280200200141086a280200200241d0016a10a6012001410c6a22012003470d000b0b200241d0016a200010a50102402000450d00200a2000410c6c6a2103200a210103402001280200200141086a280200200241d0016a10a6012001410c6a22012003470d000b0b200220073703a003200241d0016a200241a0036a410810642002200f3a00a003200241d0016a200241a0036a4101106420022802d001210620022802d801210520040d000240200d450d00200d410c6c2103200b210103400240200141046a280200450d00200128020010300b2001410c6a2101200341746a22030d000b0b0240200c450d00200c410c6c450d00200b10300b02402000450d002000410c6c2103200a210103400240200141046a280200450d00200128020010300b2001410c6a2101200341746a22030d000b0b2009450d002009410c6c450d00200a10300b20024190086a24002005ad4220862006ad840f0b102a000bf11203067f017e0b7f23004190036b22022400410041002802e8ae422203410120031b3602e8ae4202400240024020030e020001020b410041b480c200360284ad42410041b480c200360280ad42410041023602e8ae420c010b034041002802e8ae424101460d000b0b41052103024002400240024002400240024010000e06010203040506000b41acf9c1004134200241c0016a41e0f9c10041f0f9c1001034000b410021030c040b410121030c030b410221030c020b410321030c010b410421030b410020033602e4ae4220024280808080802037028403200220013602e4022002200041bc8ec20020011b3602e0022002200241e0026a36028003200241c0016a20024180036a10a203200241cc016a280200210420022802c801210520022802c401210620022802c0012107200241e0006a200241d0016a41e0001085051a02400240024002402006450d00024002402002200241e0006a41e0001085052201280280032802040d00200141e0006a200141e0001085051a0c010b02402004450d00200441246c21002006210303400240024002400240024020032d00000e050400010204030b2003410c6a280200450d03200341086a28020010300c030b2003410c6a280200450d02200341086a28020010300c020b2003410c6a280200450d01200341086a28020010300c010b200341086a280200450d00200341046a28020010300b200341246a21032000415c6a22000d000b0b02402005450d00200541246c450d00200610300b410021060b2006450d00200141cc016a2004360200200141c8016a2005360200200120063602c401200120073602c001200141d0016a200141e0006a41e0001085051a2004ad42247e2208422088a70d012008a72209417f4c0d010240024020090d004104210a0c010b2009102f220a450d030b2001200a3602b0022001200941246e220b3602b402024020094124490d0041002100200b210c034020092000460d01200c450d050240024002400240024002400240200620006a22032d00000e06010203040500010b2003410c6a280200220d417f4c0d09200341046a280200210302400240200d0d004101210e0c010b200d102f220e450d0b0b200e2003200d108505410876210f41052110200d21110c050b2001200341146a2900003703c0022001200341196a2900003700c502200341016a2f0000200341036a2d0000411074722112200341046a280000220e410876210f200341106a28000021022003410c6a280000210d200341086a2800002111410021100c040b200341106a2802002202417f4c0d07200341036a2d00002112200341016a2f0000210d200341086a2802002113200341046a2d0000210e410121104101211102402002450d002002102f2211450d090b200d20124110747221122011201320021085051a2002210d0c030b200341106a2802002202417f4c0d06200341036a2d00002112200341016a2f0000210d200341086a2802002110200341046a2d0000210e0240024020020d00410121110c010b2002102f2211450d080b200d20124110747221122011201020021085051a410221102002210d0c020b200341106a2802002202417f4c0d05200341036a2d00002112200341016a2f0000210d200341086a2802002110200341046a2d0000210e0240024020020d00410121110c010b2002102f2211450d070b200d20124110747221122011201020021085051a410321102002210d0c010b41042110200341046a280200210e2003410c6a280200210d200341086a28020021114100210f0b200a20006a220320103a0000200341036a20124110763a0000200341016a20123b0000200341106a20023602002003410c6a200d360200200341086a2011360200200341046a200f410874200e41ff017172360200200341146a20012903c0023702002003411c6a200141c0026a41086a290300370200200041246a2100200c417f6a220c0d000b0b200120043602b8022007200141c0016a41106a200141b0026a410010b7032001200141c0016a10ed01200141e0006a41186a200141186a290300370300200141e0006a41106a200141106a290300370300200141e0006a41086a200141086a29030037030020012001290300370360200141e0026a41dca4c000410610ab01200141c0026a4190e0c100410910ab01200120073602fc022001200141fc026a4104108b023703d0022001418c036a200141fc026a41046a3602002001200141d0026a41086a360284032001200141fc026a360288032001200141d0026a36028003200141f0026a20014180036a10b80320012802f802220041206a2203417f4c0d010240024020030d00410121020c010b2003102f2202450d030b200141003602d802200120033602d402200120023602d002200141d0026a200141e0026a411010b903200141d0026a200141c0026a411010b903200141d0026a20012802f0022203200010b903024020012802f402450d00200310300b20012802d002210320012802d80221004120102f2202450d022001422037028403200120023602800320014180036a200141e0006a4120106420032000200128028003220220012802880341002802fcad421103000240200128028403450d00200210300b024020012802d402450d00200310300b02402004450d00200441246c2100200a210303400240024002400240024020032d00000e050400010204030b2003410c6a280200450d03200341086a28020010300c030b2003410c6a280200450d02200341086a28020010300c020b2003410c6a280200450d01200341086a28020010300c010b200341086a280200450d00200341046a28020010300b200341246a21032000415c6a22000d000b0b024020094124490d00200b41246c450d00200a10300b02402004450d00200441246c21002006210303400240024002400240024020032d00000e050400010204030b2003410c6a280200450d03200341086a28020010300c030b2003410c6a280200450d02200341086a28020010300c020b2003410c6a280200450d01200341086a28020010300c010b200341086a280200450d00200341046a28020010300b200341246a21032000415c6a22000d000b0b02402005450d00200541246c450d00200610300b20014190036a240041003502dc94420f0b2002410c6a410d360200200241d4016a4102360200200242023702c401200241bc81c1003602c00120024104360204200241c083c100360200200220023602d0012002200241c0016a360208200241c0016a41cc81c100103a000b102c000b102a000b200b200b41a0e4c1001033000b9e0a01057f230041c0006b220424004102200410ae012004410036020041fc8ac20041102004410441002802fcad42110300200441186a22054200370300200441106a22064200370300200441086a2207420037030020044200370300200441206a41dca4c000410610ab012007200441206a41086a220829000037030020042004290020370300200441206a41acc0c100410610ab0120052008290000370300200620042900203703002004200036022020044120200441206a410441002802fcad4211030020054200370300200642003703002007420037030020044200370300200441206a41dca4c000410610ab012007200829000037030020042004290020370300200441206a41e0c0c100410610ab012005200829000037030020062004290020370300024002402002280208220841246c41046a2207417f4c0d00200228020021050240024020070d00410121020c010b2007102f2202450d020b200441003602382004200736023420042002360230200441306a200810a5010240200841246c2207450d000340200441206a200510e701200441306a200428022022082004280228106402402004280224450d00200810300b200541246a21052007415c6a22070d000b0b2004412020042802302205200428023841002802fcad4211030002402004280234450d00200510300b200441186a4200370300200441106a4200370300200441086a2205420037030020044200370300200441206a41dca4c000410610ab012005200441206a41086a220729000037030020042004290020370300200441206a41ccc0c100410a10ab01200641086a2007290000370000200620042900203700004120102f2205450d012004422037022420042005360220200441206a2001412010642004412020042802202205200428022841002802fcad4211030002402004280224450d00200510300b200441206a2000417f6a10fe0320042802282107200428022021054120102f2208450d01200442203702042004200836020020042001412010642005200720042802002208200428020841002802fcad4211030002402004280204450d00200810300b02402004280224450d00200510300b200441186a22084200370300200441106a22024200370300200441086a2205420037030020044200370300200441206a41dca4c000410610ab012005200441206a41086a220729000037030020042004290020370300200441206a4198bfc100410b10ab01200641086a22002007290000370000200620042900203700002004412041002802b4ad4211050002402003450d0020084200370300200242003703002005420037030020044200370300200441206a41dca4c000410610ab012005200729000037030020042004290020370300200441206a418cc1c100410610ab0120002007290000370000200620042900203700002004412041002802b4ad4211050020084200370300200242003703002005420037030020044200370300200441206a41dca4c000410610ab012005200729000037030020042004290020370300200441206a41d0c1c100410a10ab0120002007290000370000200620042900203700002004412041002802b4ad4211050020084200370300200242003703002005420037030020044200370300200441206a41dca4c000410610ab012005200729000037030020042004290020370300200441206a41f8dfc100410b10ab0120002007290000370000200620042900203700002004412041002802bcad421105000b200441c0006a24000f0b102c000b102a000beb07010c7f230041206b220224002001410c6a2802002103200128020821042001280204210502400240024002400240024002400240024002400240200128020022060d0020040d012000420137020041002107200041086a220841003602000c060b200520066b2101024020040d00200121090c020b2001200320046b6a220920014f0d01200041046a420037020041002109200041002802dc9442220a360200200041086a21080c020b200320046b21090b2009417f4c0d070240024020090d004101210a410021090c010b2009102f220a450d070b2000200a360200200041086a22084100360200200041046a2009360200024020060d0020040d02410021070c040b200520066b2107024020040d00200721010c030b2007200320046b6a220120074f0d020b0240024020052006460d00200641016a210b0c010b20032004460d044100210b20042106200441016a21040b200041046a210c4100210d034020042107200b210120062d00002104024002400240200d2009470d0002400240024020010d0020070d01410021060c020b200520016b21062007450d01417f2006200320076b6a220b200b2006491b21060c010b200320076b21060b200920096b417f200641016a220b200b2006491b22064f0d00200920066a22062009490d0a2009410174220b2006200b20064b1b22064108200641084b1b21060240024020090d00200241003602100c010b20024101360218200220093602142002200a3602100b200220064101200241106a10692002280208210920022802004101460d0120002002280204220a360200200c20093602000b200a200d6a20043a00002008200d41016a220d3602002001450d0120052001460d01200141016a210b20072104200121060c020b20090d070c080b2007450d0420032007460d04200741016a21044100210b200721060c000b0b200320046b21010b410021070240200920014f0d00200941017422072001200720014b1b22014108200141084b1b21010240024020090d00200241003602100c010b200241106a41086a4101360200200220093602142002200a3602100b200220014101200241106a1069200241086a280200210120022802004101460d0320002002280204220a360200200041046a2001360200200041086a28020021070b200a20076a210102402006450d0020052006460d002005200720066b6a21070340200120062d00003a0000200141016a21012005200641016a2206470d000b0b2004450d0020032004460d00200421060340200120062d00003a0000200141016a21012003200641016a2206470d000b2003200720046b6a21070b200820073602000b200241206a24000f0b2001450d010b102a000b102c000b880201047f230041206b2203240002400240200041046a2802002204200041086a28020022056b2002490d00200028020021040c010b0240200520026a22062005490d00200441017422052006200520064b1b22054108200541084b1b21050240024020040d00200341003602100c010b200341106a41086a410136020020032004360214200320002802003602100b200320054101200341106a1069200341086a2802002105024020032802004101460d00200020032802042204360200200041046a2005360200200041086a28020021050c020b2005450d00102a000b102c000b200420056a200120021085051a200041086a2200200028020020026a360200200341206a24000bea0402037f027e230041306b22022400410041002802e8ae422203410120031b3602e8ae4202400240024020030e020001020b410041b480c200360284ad42410041b480c200360280ad42410041023602e8ae420c010b034041002802e8ae424101460d000b0b41052103024002400240024002400240024010000e06010203040506000b41acf9c1004134200241086a41e0f9c10041f0f9c1001034000b410021030c040b410121030c030b410221030c020b410321030c010b410421030b410020033602e4ae4220024280808080802037020c200220013602242002200041bc8ec20020011b3602202002200241206a3602082002200241086a10ac020240024002400240024020022802000d002002280224220120022802042203490d002003417f4c0d020240024020030d00410121000c010b2003102f2200450d042000410020031087051a200228022421010b024020012003490d002000200228022020031085052104200228022422012003490d052002200120036b22013602242002200228022020036a3602202001450d022003450d010b200010300b2002412c6a410d3602002002411c6a41023602002002420237020c200241bc81c10036020820024104360224200241d883c1003602202002200241206a3602182002200241086a360228200241086a41cc81c100103a000b02402003450d00200410300b4105102f2203450d012002420537020c20022003360208200241013a0020200241086a200241206a41011064200241086a410010a5012002350210210520023502082106200241306a240020062005422086840f0b102c000b102a000b2003200141f0f5c100104a000ba50502027f027e230041c0006b22022400410041002802e8ae422203410120031b3602e8ae4202400240024020030e020001020b410041b480c200360284ad42410041b480c200360280ad42410041023602e8ae420c010b034041002802e8ae424101460d000b0b41052103024002400240024002400240024010000e06010203040506000b41acf9c1004134200241106a41e0f9c10041f0f9c1001034000b410021030c040b410121030c030b410221030c020b410321030c010b410421030b410020033602e4ae422002428080808080203702142002200136023c2002200041bc8ec20020011b22033602382002200241386a360210024002400240024002402001450d0020022001417f6a220136023c2002200341016a360238024002400240024020032d00000e020100040b200241086a200241106a10ac0220022802080d03200228023c2200200228020c2201490d032001417f4c0d040240024020010d00410121030c010b2001102f2203450d062003410020011087051a200228023c21000b20002001490d022003200228023820011085051a200228023c22002001490d062002200020016b220036023c2002200228023820016a36023820000d012001ad220442208620048421040c070b20010d02410021030c060b2001450d010b200310300b200241346a410d360200200241246a410236020020024202370214200241bc81c1003602102002410436022c200241f483c1003602282002200241286a3602202002200241106a360230200241106a41cc81c100103a000b102c000b102a000b2001200041f0f5c100104a000b2002420037022c200241002802dc944236022802402003450d002004a7450d00200310300b200241106a200241286a1087022002350218210420023502102105200241c0006a240020052004422086840b920b05077f017e037f017e027f230041d0006b22022400410041002802e8ae422203410120031b3602e8ae4202400240024020030e020001020b410041b480c200360284ad42410041b480c200360280ad42410041023602e8ae420c010b034041002802e8ae424101460d000b0b41052103024002400240024002400240024010000e06010203040506000b41acf9c1004134200241206a41e0f9c10041f0f9c1001034000b410021030c040b410121030c030b410221030c020b410321030c010b410421030b410020033602e4ae42024020010d00200241386a22034200370300200241306a22014200370300200241206a41086a2204420037030020024200370320200241c0006a41e2a4c000410f10ab012004200241c0006a41086a220529000037030020022002290040370320200241c0006a41e0dfc000410d10ab012003200529000037030020012002290040370300200241086a200241206a4120108502200228020c210620022802082107200241106a10aa0120034200370300200142003703002004420037030020024200370320200241c0006a41e2a4c000410f10ab012004200529000037030020022002290040370320200241c0006a41f8e0c000410e10ab012003200529000037030020012002290040370300200241c0006a200241206a10bd03200228024021082002290244210920034200370300200142003703002004420037030020024200370320200241c0006a41e2a4c000410f10ab012004200529000037030020022002290040370320200241c0006a41e8dec000411910ab0120032005290000370300200120022900403703002002200241206a41201085022002280204210a2002280200210b20034200370300200142003703002004420037030020024200370320200241c0006a41e2a4c000410f10ab012004200529000037030020022002290040370320200241c0006a419cdfc000411110ab012003200529000037030020012002290040370300200241c0006a200241206a41201086022002280240210c2002290244210d2002280210210e2002280214210f200228021821042002420137032020024100360228200241206a2009420020081b2209422088a7220510a501200841002802e88f4220081b210802402005450d0020082005410c6c6a21012008210303402003280200200341086a280200200241206a10a6012003410c6a22032001470d000b0b200241206a200410a50102402004450d00200e20044104746a2101200e2103034020022003280200360240200241206a200241c0006a41041064200341046a2802002003410c6a280200200241206a10a601200341106a22032001470d000b0b200a4100200b1b21032006410020071b210102400240200c0d00200241003a0040200241206a200241c0006a410110640c010b200241013a0040200241206a200241c0006a41011064200c200d422088a7200241206a10a6010b2009a7210620022003360240200241206a200241c0006a4104106420022001360240200241206a200241c0006a41041064200228022021072002350228210902402005450d002005410c6c21012008210303400240200341046a280200450d00200328020010300b2003410c6a2103200141746a22010d000b0b02402006450d002006410c6c450d00200810300b02402004450d0020044104742101200e41086a2103034002402003280200450d002003417c6a28020010300b200341106a2103200141706a22010d000b0b0240200f41ffffffff0071450d00200e10300b0240200c450d00200da7450d00200c10300b200241d0006a240020094220862007ad840f0b200241cc006a410d360200200241346a410236020020024202370224200241bc81c100360220200241043602442002419484c1003602402002200241c0006a3602302002200241206a360248200241206a41cc81c100103a000bc00201027f230041e0006b220224002002412036020c20022001360208200241106a2001412041002802d4ad4211040002400240200228021022010d00200041003602000c010b200228021421032002200241106a41086a28020036022420022001360220200241c8006a200241206a10eb01024002402002280248450d0020002002290348370200200041086a200241c8006a41086a2802003602000c010b2002420037022c200241002802dc94423602282002410936023c2002200241086a3602382002200241286a360244200241dc006a41013602002002420137024c200241a0e6c1003602482002200241386a360258200241c4006a41d0adc000200241c8006a10321a2002280228200228023010ad010240200228022c450d00200228022810300b200041003602000b2003450d00200110300b200241e0006a24000bfa0101077f230041d0076b22022400200128020421032001280200210402400240200128020822052001410c6a2802002206470d00200421070c010b2004210702400340200522082d0000410b460d01200241e8036a200841e8031085051a2002200241e8036a10ce022007200241e80310850541e8036a21072006200841e8036a2205470d000b0b200841e8036a21050b024020062005460d00034020051096012006200541e8036a2205470d000b0b2001410036020420002003360204200020043602002001410c6a41002802fce441220536020020012005360208200120053602002000200720046b41e8036d360208200241d0076a24000b6c01017f230041206b22022400200241d086c10036020420022000360200200241086a41106a200141106a290200370300200241086a41086a200141086a29020037030020022001290200370308200241fcefc100200241046a41fcefc100200241086a41d886c100104b000b6c01017f230041206b22022400200241b887c10036020420022000360200200241086a41106a200141106a290200370300200241086a41086a200141086a29020037030020022001290200370308200241ecefc100200241046a41ecefc100200241086a41c887c100104b000bed0201067f230041206b2202240002400240200041046a2802002203200041086a28020022046b200141046a2802002205200128020022066b2207490d00200028020021030c010b0240200420076a22062004490d00200341017422042006200420064b1b22044108200441084b1b21040240024020030d00200241003602100c010b200241106a41086a410136020020022003360214200220002802003602100b200220044101200241106a1069200241086a2802002104024020022802004101460d00200020022802042203360200200041046a2004360200200041086a2802002104200141046a2802002105200128020021060c020b2004450d00102a000b102c000b024020062005460d002001200641016a360200200141046a210502400340200320046a20062d00003a0000200128020022062005280200460d01200441016a21042001200641016a3602000c000b0b200441016a21040b200041086a2004360200200241206a24000bb707030c7f057e037f230041a0016b22022400410041003502e0ac42200241206aad7c42adfed5e4d485fda8d8007e421f883e02e0ac422001280220220341016a2104200141246a280200220541046a2106200141346a21072001412c6a21082005280200417f7321094100210a02402003450d0020052004ad42307ea76b210a0b200520046a21042007280200210b200828020021082001280230210c2009418081828478712101200241206a41086a21070340024002400240024020010d000340024020062004490d00410021010c040b200541c07e6a210520062802002101200641046a220321062001418081828478712201418081828478460d000b2001418081828478732209417f6a200971210d200321060c010b2001417f6a200171210d200121090b200d21012008417f6a2108200541002009684103766b41306c6a220341706a280200220d0d010b02402008450d0003400240024020010d000340200620044f0d04200541c07e6a210520062802002101200641046a220321062001418081828478712201418081828478460d000b2001418081828478732201417f6a2001712107200321060c010b2001417f6a20017121070b2001682103200721012005410020034103766b41306c6a220341746a280200450d00200341706a2802001030200721010c000b0b0240200a450d00200a10300b0240200b450d00200c10300b200241a0016a24000f0b2003417c6a2802002109200341746a290200210e200341506a2203290200210f200341086a2902002110200341106a2902002111200241186a200341186a2902002212370300200241106a2011370300200241086a20103703002002200f370300200241e0006a41186a22032012370300200241e0006a41106a22132011370300200241e0006a41086a221420103703002002200f370360200241206a2000200241e0006a10ca01024020022903204201520d00200241e0006a41286a200741286a290300370300200241e0006a41206a200741206a2903003703002003200741186a2903003703002013200741106a2903003703002014200741086a290300370300200220072903003703602002200936029c012002200e370294012002200d36029001200241e0006a20024190016a10cb010c010b024020022802302214417c6a22032802002213417f4a0d00201441706a21150240201441746a2214280200450d0020152802001030200328020021130b2014200e3702002015200d3602002003201320096a3602000c010b2003201320096a360200200ea7450d00200d10300c000b0ba40204017f027e037f017e230041306b22022400420021034200210402400240024020012d00000e0b0101010202020202020200020b200241206a200141046a28020010c3032002280220410047ad2104200229032821030c010b42002104200141186a2802004198046c2205450d00200141106a280200220620056a2107420021030340024020062d00004107470d002006410c6a28020041e8036c2205450d00200628020421010340200241106a200110c4034201210402402002280210450d000c040b200229031821082002200110c3032002290300a70d03200141e8036a2101200820037c20022903087c2103200541987c6a22050d000b0b20064198046a22062007470d000b420021040b2000200337030820002004370300200241306a24000bda0203017f027e027f230041f0016b220224004200210342c0843d210402400240024002400240024020012d00000e0b0404040505050005050501050b0240200141106a22052802004102470d002002200141f8006a2802003602ec012002200141f0006a2802003602e80120024188016a200241e8016a10e901024020022802880122064102460d002002412c6a20024188016a41047241dc001085051a0b024020052802004102460d00200510b2020b20012006360210200141146a2002412c6a41dc001085051a20064102460d020b200241186a200510e101200229031842c0843d7c21040c040b200241086a200141046a28020010c4032002290308a7450d010b420121030c020b200229031042c0843d7c21040c010b200141186a2802004198046c2201450d00200141e87b6a4198046ead42c0843d7e428089fa007c21040b2000200437030820002003370300200241f0016a24000bca0101027f230041106b2202240002400240024002402000280200220341c000490d00200341808001490d012003418080808004490d02200241033a000020012002410110642002200336020020012002410410640c030b200220034102743a000020012002410110640c020b200220034102744101723b010020012002410210640c010b2002200341027441027236020020012002410410640b2002200041046a10c6032001200228020022002002280208106402402002280204450d00200010300b200241106a24000b960401047f230041106b22022400024002400240024020012802004101470d002001410c6a280200220341046a2204417f4c0d02200128020421010240024002400240024020040d0020004100360208200042013702000c010b2004102f2205450d07200041003602082000200436020420002005360200200341c000490d01200341808001490d022003418080808004490d030b200241033a000c20002002410c6a410110642002200336020c20002002410c6a4104106420002001200310640c040b200220034102743a000c20002002410c6a4101106420002001200310640c030b200220034102744101723b010c20002002410c6a4102106420002001200310640c020b2002200341027441027236020c20002002410c6a4104106420002001200310640c010b200141086a280200220341046a2204417f4c0d012001280204210102400240024002400240024020040d0020004100360208200042013702000c010b2004102f2205450d07200041003602082000200436020420002005360200200341c000490d01200341808001490d022003418080808004490d030b2000410310c0042002200336020c20002002410c6a410410640c030b2000200341027410c0040c020b200220034102744101723b010c20002002410c6a410210640c010b2002200341027441027236020c20002002410c6a410410640b20002001200310640b200241106a24000f0b102c000b102a000b130020004101360200200041086a41023602000b3400200041f1a4c00036020420004100360200200041146a4101360200200041106a41d887c100360200200041086a420d3702000b130020004100360204200041bc8ec2003602000bc40101017f230041306b220324000240024020022001413c6a41201088050d002003200141306a10cb030c010b200341106a41186a200241186a290000370300200341106a41106a200241106a290000370300200341106a41086a200241086a2900003703002003200229000037031002402001200341106a10d3012202450d00200228020c4101480d002003200210cb030c010b200341003602000b20002003290300370204200041003602002000410c6a200341086a280200360200200341306a24000b5c01027f0240024020012802082202417f4c0d00200128020021030240024020020d00410121010c010b2002102f2201450d020b20002002360204200020013602002001200320021085051a200020023602080f0b102c000b102a000b3400200041fea4c00036020420004100360200200041146a4100360200200041106a41bc8ec200360200200041086a420a3702000b960201027f200041003a000020002001290000370001200041216a200141206a2d00003a0000200041196a200141186a290000370000200041116a200141106a290000370000200041096a200141086a29000037000002404110102f2201450d00200141a0a5c00036020c20014101360208200142818080801037020020002001360224024020002d0001450d004110102f2202450d0120024188a5c00036020c20024101360208200242818080801037020020012001280200417f6a2203360200024020030d002001280208200128020c2802001102000240200128020c280204450d00200128020810300b200141046a22032003280200417f6a220336020020030d00200110300b200020023602240b0f0b102a000be90b03027f027e097f230041f0016b2203240041002104200341003602282003200236022420032001360220420321050240024020020d00420021060c010b410121042003410136022842002106024020012d000022070d00420021050c010b0240024002400240024002400240024002400240200741c00171220841c001460d0002402008418001460d00200841c000470d0b2007413f712207413f470d05410221044141210703402004417f6a20024f0d03200320043602280240200120046a417f6a2d0000220841ff01460d00200820076b21070c0c0b200741817e6a2107200441016a2204418302470d000b41ffff03210741820221040c0a0b2007413f712207413f470d05410221044141210703402004417f6a20024f0d03200320043602280240200120046a417f6a2d0000220841ff01460d00200820076b21070c0a0b200741817e6a2107200441016a2204418302470d000b41ffff03210741820221040c080b2007413f712207413f470d05410221044141210703402004417f6a20024f0d03200320043602280240200120046a417f6a2d0000220841ff01460d00200820076b21070c080b200741817e6a2107200441016a2204418302470d000b41ffff03210741820221040c060b2004417f6a21040c080b2004417f6a21040c070b2004417f6a21040c060b410121040c040b410121040c020b410121040b2007ad422086428002842106420121050c020b2007ad4220862106420121050c010b2007ad4220862106420221050b2006422088a72107024002400240024002400240024002402005200684a741ff01710e0401020300010b20004181023b01000c060b200041003a0000200041046a41003602000c050b20074101712209450d03200420024f0d01200120046a2d00004110490d03200041013b01000c040b20074101712208450d010240200420024f0d00200120046a2d00004110490d02200041013b01000c040b2004200241d08dc1001033000b2004200241e08dc1001033000b024002402004200741016a4101766a220120024b0d0020032001360228200341186a200341206a106f2003280218450d0120004181023b01000c030b20004181023b01000c020b024020032802282207200328021c6a220220032802244b0d00200041003a0000200041106a20083602002000410c6a2001360200200041086a2004360200200041186a2002360200200041146a2007360200200041046a4101360200200320023602280c020b20004181023b01000c010b02402004200741016a4101766a220a20024d0d0020004181023b01000c010b2003200a360228024002400240200a41026a220720024b0d00200320073602280240200a417d4b0d002001200a6a2f00002107410021014100210b0240200642800283500d00200341106a200341206a106f20032802100d042003280228220c20032802146a220d20032802244b0d032003200d3602284101210b0b200341023602e401200341023602d801200341023602cc01200341023602c001200341023602b401200341023602a8012003410236029c0120034102360290012003410236028401200341023602782003410236026c2003410236026020034102360254200341023602482003410236023c20034102360230200341306a2102200741ffff0371210e024003400240200e2001410f7176410171450d00200341086a200341206a106f20032802080d02024020032802282208200328020c220f6a220720032802244d0d0020004181023b01000c080b200241086a2007360200200241046a20083602002002200f412047360200200320073602280b2002410c6a2102200141016a22014110470d000b200041206a200341306a41c0011085051a2000411c6a200d360200200041186a200c360200200041146a200b360200200041106a20093602002000410c6a200a360200200041086a2004360200200041046a4104360200200041003a00000c050b20004181023b01000c040b200a200741c08dc1001048000b20004181023b01000c020b20004181023b01000c010b20004181023b01000b200341f0016a24000bf60b05027f017e017f017e077f230041a0016b220224002002200136021c20022000360218200241d0006a200241186a10d0030240024020022802502203450d0020022902542104200241d0006a200241186a10d003024020022802502205450d00200229025421060240200228021c22004104490d002000417c6a2107200228021822082800002109200241d0006a410472210a410021000240034020072000460d012002200820006a220141056a360218200a20006a200141046a2d00003a00002002200041016a22013602502001210020014120470d000b20024198016a41026a200241dd006a2d00003a000020024194016a41026a200241e4006a2d00003a0000200220022f01543b019c01200220022d00563a009e012002200720016b36021c2002200241db006a2f00003b0198012002200241e2006a2f01003b019401200241f0006a2802002100200241ec006a2802002101200241e5006a2800002107200241de006a28010021082002280057210a20024190016a41026a200241eb006a2d00003a00002002200241e9006a2f00003b0190010c040b2002410036021c0b2006a7450d00200510300b02402004a7450d00200310300b410021030c010b410021030b02402003450d00200241106a41026a220b20024198016a41026a2d00003a00002002410c6a41026a220c20024194016a41026a2d00003a0000200241086a41026a220d20024190016a41026a2d00003a0000200220022d009e013a0016200220022f019c013b0114200220022f0198013b0110200220022f0194013b010c200220022f0190013b0108200241e0006a2006370300200241ef006a200a360000200220093602682002200536025c2002200437025420022003360250200241ee006a20022d00163a0000200241f6006a2008360100200220022f01143b016c200241f3006a20022f01103b0000200241f5006a200b2d00003a0000200241fa006a20022f010c3b0100200241fc006a200c2d00003a0000200241fd006a200736000020024183016a200d2d00003a000020024181016a20022f01083b000020024188016a200036020020024184016a2001360200200241186a200241d0006a10d10320024100360258200242013703502002280218210020022802202201200241d0006a10a803200241d0006a2000200110640240024020022802240d00200241003a009c01200241d0006a2002419c016a410110640c010b200241013a009c01200241d0006a2002419c016a41011064200228022421002002412c6a2802002201200241d0006a10a803200241d0006a2000200110640b20022802302109200241386a2802002208200241d0006a10a80302402008450d0020092008410c6c6a210720092100034020002802002101200041086a2802002203200241d0006a10a803200241d0006a2001200310642000410c6a22002007470d000b0b200228023c2105200241c4006a280200220a200241d0006a10a8030240200a450d002005200a4104746a21072005210003402002200028020036029c01200241d0006a2002419c016a41041064200041046a28020021012000410c6a2802002203200241d0006a10a803200241d0006a200120031064200041106a22002007470d000b0b2002200228024836029c01200241d0006a2002419c016a410410642002200228024c36029c01200241d0006a2002419c016a4104106420022802502103200235025821040240200228021c450d00200228021810300b024020022802242200450d00200241286a280200450d00200010300b02402008450d002008410c6c21012009210003400240200041046a280200450d00200028020010300b2000410c6a2100200141746a22010d000b0b0240200241346a2802002200450d002000410c6c450d00200910300b0240200a450d00200a4104742101200541086a2100034002402000280200450d002000417c6a28020010300b200041106a2100200141706a22010d000b0b0240200241c0006a28020041ffffffff0071450d00200510300b200241a0016a240020044220862003ad840f0b4190f6c1004112200241d0006a41a4f6c10041b4f6c1001034000be50302067f017e02400240024020012802042202450d00200128020022032d0000210420012002417f6a22053602042001200341016a3602000240200441037122064103460d000240024020060e03040001040b2005450d0220032d0001210620012002417e6a22053602042001200341026a3602002006410874200472220241ffff0371418002490d02200241fcff037141027621040c040b20054103490d01200341036a2d0000210620032f0001210720012002417c6a22053602042001200341046a3602002007200641107472410874200472220241ffff034d0d01200241027621040c030b200441034b0d0020054104490d002003280001210420012002417b6a22053602042001200341056a360200200441ffffffff034b0d020b200041003602000f0b200441027621040b024002400240024020052004490d002004417f4c0d010240024020040d00410121020c010b2004102f2202450d032002410020041087051a200128020421050b024020052004490d002002200128020020041085052103200128020422022004490d0420002004ad2208422086200884370204200020033602002001200220046b3602042001200128020020046a3602000f0b200210300b200041003602000f0b102c000b102a000b2004200241f0f5c100104a000be56b04077f017e407f037e23004190116b220224002002200141146a2802003602a40d2002200128020c3602a00d200241e8066a200241a00d6a10a0040240024002400240024020022802ec062203450d00200241f4066a280200210420022802f006210520022802e8062106200241d80b6a200241f8066a41e0001085051a200241f0006a200241a00d6a109b01024020022802700d002002280274220720022802a40d41c8016e2208200820074b1bad42c8017e2209422088a70d052009a72208417f4c0d050240024020080d004108210a0c010b2008102f220a450d050b200841c8016e210b0240024002402007450d00200241e8066a410472210c20024190106a410b6a210d20024181076a210e200241fa066a210f200241e8066a410b6a2110200241a5106a21112002419e106a211220024197106a2113200241e8066a410172211441002115410021160340200241e8006a200241a00d6a109b010240024020022802680d000240200228026c2217450d004100210842002109034002402008417f470d0020094280808080705a0d0e2009422088a721080b200942ffffffff0f83200841016a2208ad4220868421092017417f6a22170d000b0b20022802a40d2217450d0020022802a00d22082d0000211820022017417f6a22193602a40d2002200841016a3602a00d201841ff00714104470d004103211a02402018411874411875417f4a0d00024002402019450d0020082d0001211a20022017417e6a22183602a40d2002200841026a3602a00d410121194101211b024002400240024002400240201a0e050005010203060b2017417e6a211c41002118417d211a0340201c2018460d06200c20186a200820186a221d41026a2d00003a00002002201841016a221b3602e80620022017201a6a3602a40d2002201d41036a3602a00d201a417f6a211a201b2118201b4120470d000b201320102f00003b00002012200f2f01003b01002011200e2f00003b0000201341026a201041026a2d00003a0000201241026a200f41026a2d00003a0000201141026a200e41026a2d00003a00002002200c2f01003b0190102002200c41026a2d00003a00921020022800ef06210820022801f606211820022800fd06211a20022002290284073703a8102002201a3600a1102002201836019a1020022008360093102017201b6b417e6a21184100211b410121190c040b200241e0006a200241a00d6a109b0120022802600d0420022802a40d221720022802642208490d042008417f4c0d120240024020080d00410121180c010b2008102f2218450d122018410020081087051a20022802a40d21170b024020172008490d00201820022802a00d2008108505211820022802a40d221720084f0d032008201741f0f5c100104a000b201810300c040b2017417e6a211c41002118417d211a0340201c2018460d04200c20186a200820186a221d41026a2d00003a00002002201841016a221b3602e80620022017201a6a3602a40d2002201d41036a3602a00d201a417f6a211a201b2118201b4120470d000b201320102f00003b00002012200f2f01003b01002011200e2f00003b0000201341026a201041026a2d00003a0000201241026a200f41026a2d00003a0000201141026a200e41026a2d00003a00002002200c2f01003b0190102002200c41026a2d00003a00921020022800ef06210820022801f606211820022800fd06211a20022002290284073703a8102002201a3600a1102002201836019a1020022008360093102017201b6b417e6a21184103211b410121190c020b200241e8066a200241a00d6a10a70120022d00e8064101460d0220024190106a41106a201441106a28000036020020024190106a41086a201441086a29000037030020022014290000370390104104211b4101211920022802a40d21180c010b20022008ad22094220862009843700971020022018360093102002201720086b22183602a40d200220022802a00d20086a3602a00d4102211b410021190b200241f8006a41026a221e20022d0092103a0000200241900a6a41086a221f200d41086a290000370300200241900a6a410d6a200d410d6a290000370000200220022f0190103b01782002200d2900003703900a200228009710211d200228009310211c02402018450d0020022802a00d221a2d0000210820022018417f6a22203602a40d2002201a41016a3602a00d024002400240024020080e03000102040b200241e8066a200241a00d6a10a90120022d00e8064101460d0320022d00a807212120022802a407212220022d00a307212320022d00a207212420022d00a1072125200228009d07212620022d009c07212720022d009b07212820022d009a072129200228019607212a20022d009507212b20022d009407212c20022d009307212d200228008f07212e20022d008e07212f20022d008d07213020022d008c072131200228028807213220022d008707213320022d008607213420022d0085072135200228008107213620022d008007213720022d00ff06213820022d00fe06213920022801fa06213a20022d00f906213b20022d00f806213c20022d00f706213d20022800f306213e20022d00f206213f20022d00f106214020022d00f006214120022802ec06214220022d00eb06214320022d00ea06214420022d00e90621454100211a0c020b200241e8066a200241a00d6a10a90120022d00e8064101460d0220022d00a807212120022802a407212220022d00a307212320022d00a207212420022d00a1072125200228009d07212620022d009c07212720022d009b07212820022d009a072129200228019607212a20022d009507212b20022d009407212c20022d009307212d200228008f07212e20022d008e07212f20022d008d07213020022d008c072131200228028807213220022d008707213320022d008607213420022d0085072135200228008107213620022d008007213720022d00ff06213820022d00fe06213920022801fa06213a20022d00f906213b20022d00f806213c20022d00f706213d20022800f306213e20022d00f206213f20022d00f106214020022d00f006214120022802ec06214220022d00eb06214320022d00ea06214420022d00e90621454101211a0c010b41002108200241003602e8062018417e6a2117034020202008460d02200c20086a201a20086a221841016a2d00003a00002002201841026a3602a00d2002200841016a22183602e806200220173602a40d2017417f6a211720182108201841c100470d000b20022d00ec06214520022d00ed06214420022d00ee06214320022800ef06214220022d00f306214120022d00f406214020022d00f506213f20022801f606213e20022d00fa06213d20022d00fb06213c20022d00fc06213b20022800fd06213a20022d008107213920022d008207213820022d0083072137200228028407213620022d008807213520022d008907213420022d008a072133200228008b07213220022d008f07213120022d009007213020022d009107212f200228019207212e20022d009607212d20022d009707212c20022d009807212b200228009907212a20022d009d07212920022d009e07212820022d009f07212720022802a007212620022d00a407212520022d00a507212420022d00a607212320022800a707212220022d00ab07212120022d00ac0721464102211a0b200241a8056a41026a201e2d00003a0000200241e8066a41086a201f290300370300200241e8066a41106a200241900a6a41106a290300370300200220022f01783b01a805200220022903900a3703e8060c020b2019201d45720d00201c10300b4103211a2047211d2048211c2049211b0b20024180106a41026a2208200241a8056a41026a2d00003a0000200241f8086a41086a2217200241e8066a41086a290300370300200241f8086a41106a2218200241e8066a41106a290300370300200220022f01a8053b018010200220022903e8063703f808201a4103460d01200241800a6a41026a20082d00003a0000200241c8036a41086a2017290300370300200241c8036a41106a2018290300370300200220022f0180103b01800a200220022903f8083703c803201d2147201c2148201b21490b200241e8066a200241a00d6a10e90120022802e8062117200241900a6a200c41dc001085051a20174102470d01201a4103460d00201b41ff01714102470d00201d450d00201c10300b02402016450d00200a211703400240201722084184016a2d00004103460d00200841e0006a2d00004102470d00200841e8006a280200450d00200841e4006a28020010300b200841c8016a2117200810b202201541b87e6a22150d000b0b200b450d05200b41c8016c0d040c050b200241c8056a200241900a6a41dc001085051a200241f00f6a41026a2208200241800a6a41026a2d00003a0000200241c8026a41086a2218200241c8036a41086a290300370300200241c8026a41106a2219200241c8036a41106a290300370300200220022f01800a3b01f00f200220022903c8033703c802200241e80e6a200241c8056a41dc001085051a200241b8036a41026a222020082d00003a0000200241d8016a41086a22082018290300370300200241d8016a41106a22182019290300370300200220022f01f00f3b01b803200220022903c8023703d801200241e00d6a200241e80e6a41dc001085051a200241d40b6a41026a221920202d00003a0000200241c8046a41086a22202008290300370300200241c8046a41106a221e2018290300370300200220022f01b8033b01d40b200220022903d8013703c80402402016200b470d0020164101742208201641016a220b2008200b4b1b22084104200841044b1bad42c8017e2209422088a74541037421082009a7210b0240024020160d00200241003602e8060c010b200241083602f0062002200a3602e8062002201641c8016c3602ec060b200241900a6a200b2008200241e8066a106920022802980a2108024020022802900a4101470d0020080d0a0c0b0b20022802940a210a200841c8016e210b0b200a201641c8016c6a22082017360200200841046a200241e00d6a41dc001085051a200841e0006a201b3a0000200841e8006a201d360200200841e4006a201c360200200841e1006a20022f01d40b3b0000200841e3006a20192d00003a0000201e29030021092020290300214a20022903c804214b200841c0016a2022360000200841b9016a2026360000200841b2016a202a360000200841ab016a202e360000200841a4016a20323600002008419d016a203636000020084196016a203a3600002008418f016a203e36000020084188016a2042360000200841c4016a20213a0000200841bf016a20233a0000200841be016a20243a0000200841bd016a20253a0000200841b8016a20273a0000200841b7016a20283a0000200841b6016a20293a0000200841b1016a202b3a0000200841b0016a202c3a0000200841af016a202d3a0000200841aa016a202f3a0000200841a9016a20303a0000200841a8016a20313a0000200841a3016a20333a0000200841a2016a20343a0000200841a1016a20353a00002008419c016a20373a00002008419b016a20383a00002008419a016a20393a000020084195016a203b3a000020084194016a203c3a000020084193016a203d3a00002008418e016a203f3a00002008418d016a20403a00002008418c016a20413a000020084187016a20433a000020084186016a20443a000020084185016a20453a000020084184016a201a3a0000200841ec006a204b370200200841f4006a204a370200200841fc006a2009370200200841c5016a20463a0000201541c8016a2115201641016a2208211620082007470d000c020b0b200a450d02410021070b200241e8066a200241a00d6a10eb0120022802e80622160d0302402007450d00200741c8016c21154100210803400240200a20086a22174184016a2d00004103460d00201741e0006a2d00004102470d00201741e8006a280200450d00201741e4006a28020010300b201710b2022015200841c8016a2208470d000b0b200b450d01200b41c8016c450d010b200a10300b02402004450d00200441246c21172003210803400240024002400240024020082d00000e050400010204030b2008410c6a280200450d03200841086a28020010300c030b2008410c6a280200450d02200841086a28020010300c020b2008410c6a280200450d01200841086a28020010300c010b200841086a280200450d00200841046a28020010300b200841246a21082017415c6a22170d000b0b2005450d00200541246c450d00200310300b410021030c010b20022902ec06214c200241e8066a200241d80b6a41e0001085051a0b024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002402003450d00200241f8006a200241e8066a41e0001085051a200220012802083602dc0b200220012802003602d80b200241e8066a200241d80b6a10a00420022802ec06450d01200241d8016a200241e8066a41f0001085051a200241d4026a2004360200200241d0026a2005360200200220033602cc02200220063602c802200241d8026a200241f8006a41e0001085052108200241003602e00b200242013703d80b4120102f2217450d41200242203702ec06200220173602e806200241e8066a200841201064200241d80b6a20022802e806220820022802f0061064024020022802ec06450d00200810300b200241c8026a200241d80b6a10ee014120102f2208450d41200242203702ec06200220083602e806200241e8066a200241f8026a41201064200241d80b6a20022802e806220820022802f0061064024020022802ec06450d00200810300b4120102f2208450d41200242203702ec06200220083602e806200241e8066a20024198036a41201064200241d80b6a20022802e806220820022802f0061064024020022802ec06450d00200810300b200241d80b6a200410a5010240200441246c2208450d000340200241e8066a200310e701200241d80b6a20022802e806221720022802f0061064024020022802ec06450d00201710300b200341246a21032008415c6a22080d000b0b200241b8036a41086a200241d80b6a41086a280200360200200220022903d80b3703b803200241c8036a200241c8026a41f0001085051a200241c0046a2007360200200241bc046a200b3602002002200a3602b804200241e8066a200241d8016a10ed01200241e8066a200241d8036a41201088050d024101102f2203450d41200341003a0000410041003502e0ac42200241e8066aad7c42adfed5e4d485fda8d8007e42218922093e02e0ac42200241d0006a41e0acc200ad224a42a4bb99fed1a0bbb02385420042adfed5e4d485fda8d8004200108405200241306a200942a4bb99fed1a0bbb02385420042adfed5e4d485fda8d8004200108405200241c0006a204a42c5ecb3fec9ecf7c2c30085420042adfed5e4d485fda8d8004200108405200241206a200942c5ecb3fec9ecf7c2c30085420042adfed5e4d485fda8d8004200108405200241106a2009204a85420042adfed5e4d485fda8d800420010840520024190106a418de2c100410110652002419c056a200241a8106a29030037020020024194056a200241a0106a2903003702002002418c056a20024190106a41086a290300370200200241fc046a428180808010370200200241f0046a4200370300200241ec046a41bcf5c100360200200220022903901037028405200220033602f804200241003602e80420022009200241d0006a41086a2903002002290350857c200241106a41086a29030020022903108542cf829ebbefefde82147c224b893703c8042002200241206a41086a290300200229032085204a7c204b423088893703e00420022009200241c0006a41086a2903002002290340857c204b422088893703d8042002200241306a41086a290300200229033085204a7c204b421088893703d004204ca72104024002400240204c422088a7220a410c6c220b0d00201621030c010b2016410c6a21080240201628020022170d00200821030c010b200a410c6c41746a21150340200241e8066a200241c8046a2017200841786a2902002209422088a710c60102402009a7450d00201710300b2015450d02201541746a2115200828020021172008410c6a2203210820170d000b0b2016200b6a2003460d002016200a410c6c6a211703402003410c6a21080240200341046a280200450d00200328020010300b2008210320172008470d000b0b20024184056a210802402004450d002004410c6c450d00201610300b200241a8056a41186a200241a0026a290300370300200241a8056a41106a200241d8016a41c0006a290300370300200241a8056a41086a200241d8016a41386a29030037030020022002290388023703a80520024188026a21030240200241a8056a20084120108805450d00200241e8066a41186a200341186a290000370300200241e8066a41106a200341106a290000370300200241e8066a41086a200341086a290000370300200220032900003703e806200241c8046a200241e8066a10d3012208450d04200828020c41004c0d040b200241e8066a200241c8046a41e0001085051a200241e0076a200341186a290200370300200241d8076a200341106a290200370300200241d0076a200341086a290200370300200220032902003703c80720024190106a418de2c1004101106520024180086a20024190106a41186a290300370300200241f8076a220320024190106a41106a290300370300200241f0076a20024190106a41086a29030037030020022002290390103703e807200241c8056a200241e8066a41a0011085051a200241e0086a41003a0000200241dc086a410036020020024184086a4200370200200241fc076a41003a000020034100360200200241ac076a4200370200200241b4076a420037020020024190086a420037030020024198086a4200370300200241e8066a41386a420037030020024190076a4200370300200241e8066a41186a4200370300200241002802e88f42223c3602e40820024100360298072002410036028807200241003602f806200242003703f006200241003602e806200241f0086a41003a0000200241e8086a4200370300200241003a00d8092002410036029c09200241003b018c0a2002200241f8086a3602880a2002200241c8056a3602840a2002200241e8066a3602800a41002d00e8ad420d04410041013a00e8ad4241002802e4ad422104410041113602e4ad4241002d0080ae424101710d05410041013a0080ae4241002802fcad422116410041123602fcad4241002d00d8ad424101710d06410041013a00d8ad4241002802d4ad42210a410041133602d4ad4241002d00d0ad420d07410041013a00d0ad4241002802ccad42210b410041143602ccad4241002d00b8ad424101710d08410041013a00b8ad4241002802b4ad422105410041153602b4ad4241002d00f8ad420d09410041013a00f8ad4241002802f4ad422107410041163602f4ad4241002d00c0ad424101710d0a410041013a00c0ad4241002802bcad422118410041173602bcad4241002d00b0ad424101710d0b410041013a00b0ad4241002802acad422106410041183602acad4241002d00a8ad420d0c410041013a00a8ad4241002802a4ad42210c410041193602a4ad4241002d00e0ad424101710d0d410041013a00e0ad4241002802dcad42211a4100411a3602dcad4241002d0088ae424101710d0e410041013a0088ae424100280284ae42211b4100411b360284ae4241002d00f0ad424101710d0f410041013a00f0ad4241002802ecad42211d4100411c3602ecad4241002d00c8ad424101710d10410041013a00c8ad4241002802c4ad42211c4100411d3602c4ad4241002d00a8ae424101710d11410041013a00a8ae4241002802a4ae4221194100411e3602a4ae4241002d00b8ae420d12410041013a00b8ae4241002802b4ae4221204100411f3602b4ae4241002d00c8ae420d13410041013a00c8ae4241002802c4ae42211e410041203602c4ae4241002d0090ae424101710d14410041013a0090ae42410028028cae4221454100412136028cae4241002d00d0ae420d15410041013a00d0ae4241002802ccae422144410041223602ccae4241002d00a0ae420d16410041013a00a0ae42410028029cae4221434100412336029cae4241002d0098ae424101710d17410041013a0098ae424100280294ae42214141004124360294ae4241002d00c0ae420d18410041013a00c0ae4241002802bcae422140410041253602bcae4241002d00b0ae424101710d19410041013a00b0ae4241002802acae42213f410041263602acae4241002d00e0ae424101710d1a410041013a00e0ae4241002802dcae42213e410041273602dcae4241002d00d8ae424101710d1b410041013a00d8ae4241002802d4ae42213d410041283602d4ae42200241900a6a41386a200141386a280200360200200241900a6a41306a200141306a290200370300200241900a6a41286a200141286a290200370300200241900a6a41206a200141206a290200370300200241900a6a41186a200141186a290200370300200241900a6a41106a200141106a290200370300200241900a6a41086a200141086a290200370300200220012902003703900a200241cc0a6a200241c8036a41fc001085051a200241d00b6a200241b8036a41086a280200360200200220022903b8033703c80b410028028cad4241016a220341004c0d1c02404100280290ad424101460d00200241e80e6a4100280288ad42110200200241d80b6a41086a200241e80e6a41086a290300370300200220022903e80e3703d80b410028028cad420d1e4100417f36028cad4202404100280290ad42450d00024041002802a0ad422208450d004100280298ad422103200841027421080340200328020022172017280200417f6a3602000240200328020022172802000d00201741046a22172017280200417f6a3602002003280200221741046a2802000d00201710300b200341046a21032008417c6a22080d000b0b410028029cad4241ffffffff0371450d004100280298ad4210300b41004101360290ad42410020022903d80b370294ad424100200241e00b6a29030037029cad424100410028028cad42220341016a36028cad42200341026a220341004c0d1f0b4100200336028cad424100280294ad420d1f4100417f360294ad424114102f2203450d41200341e0ecc1003602102003410036020820034281808080103702002003200241800a6a36020c0240024002400240024041002802a0ad422208410028029cad42470d00200841016a22172008490d47200841017422152017201520174b1b22174104201741044b1b221741ffffffff03712017464102742115201741027421170240024020080d00200241003602d80b0c010b200241e00b6a4104360200200220084102743602dc0b20024100280298ad423602d80b0b200241e80e6a20172015200241d80b6a1069200241f00e6a280200210820022802e80e4101460d01410020022802ec0e360298ad424100200841027636029cad4241002802a0ad4221080b4100280298ad4220084102746a2003360200410041002802a0ad4241016a3602a0ad4241004100280294ad4241016a360294ad42200241d80b6a200241900a6a41c4011085051a200241a00d6a41386a200241900a6a41386a280200360200200241a00d6a41306a200241900a6a41306a290300370300200241a00d6a41286a200241900a6a41286a290300370300200241a00d6a41206a200241900a6a41206a290300370300200241a00d6a41186a200241900a6a41186a290300370300200241a00d6a41106a200241900a6a41106a290300370300200241a00d6a41086a200241900a6a41086a290300370300200220022903900a3703a00d200241e00d6a200241940c6a221541fc001085051a200241e40e6a200241980d6a280200360200200220022903900d3702dc0e41002802e8ac4241016a220341004c0d24024041002802ecac424101460d0020024190106a41002802e4ac42110200200241e80e6a41086a20024190106a41086a29030037030020022002290390103703e80e41002802e8ac420d264100417f3602e8ac42024041002802ecac42450d00024041002802fcac422208450d0041002802f4ac422103200841027421080340200328020022172017280200417f6a3602000240200328020022172802000d00201741046a22172017280200417f6a3602002003280200221741046a2802000d00201710300b200341046a21032008417c6a22080d000b0b41002802f8ac4241ffffffff0371450d0041002802f4ac4210300b410041013602ecac42410020022903e80e3702f0ac424100200241f00e6a2903003702f8ac42410041002802e8ac42220341016a3602e8ac42200341026a220341004c0d270b410020033602e8ac4241002802f0ac420d274100417f3602f0ac424110102f2203450d452003410036020820034281808080103702002003200241a00d6a36020c41002802fcac42220841002802f8ac42470d03200841016a22172008490d46200841017422012017200120174b1b22174104201741044b1b221741ffffffff037120174641027421012017410274211720080d01200241003602e80e0c020b2008450d450c440b200241f00e6a4104360200200220084102743602ec0e200241002802f4ac423602e80e0b20024190106a20172001200241e80e6a106920024198106a28020021082002280290104101460d3f41002002280294103602f4ac42410020084102763602f8ac4241002802fcac4221080b41002802f4ac4220084102746a2003360200410041002802fcac4241016a3602fcac42410041002802f0ac4241016a3602f0ac42200241e80e6a200241e00d6a4188011085051a20024190106a201541fc001085051a20024190106a10a403200241a8106a2203420037030020024190106a41106a2208420037030020024190106a41086a22174200370300200242003703901020024180106a41e2a4c000410f10ab01201720024180106a41086a221529000037030020022002290080103703901020024180106a419cdfc000411110ab0120032015290000370300200820022900801037030020024180106a20024190106a4120108602200228028010213b2002290284102109200342003703002008420037030020174200370300200242003703901020024180106a41e2a4c000410f10ab012017201529000037030020022002290080103703901020024180106a41f8e0c000410e10ab0120032015290000370300200820022900801037030020024180106a20024190106a10bd032002280280102101200229028410214a200342003703002008420037030020174200370300200242003703901020024180106a41e2a4c000410f10ab012017201529000037030020022002290080103703901020024180106a41e8dec000411910ab01200320152900003703002008200229008010370300200241086a20024190106a4120108502200228020c213a20022802082139200241f00f6a10aa01200342003703002008420037030020174200370300200242003703901020024180106a41e2a4c000410f10ab012017201529000037030020022002290080103703901020024180106a41e0dfc000410d10ab01200320152900003703002008200229008010370300200220024190106a412010850220022802042103200228020021082000411c6a204a420020011b37020020002001203c20011b360218200020022903f00f3702242000412c6a200241f00f6a41086a280200360200200020022902e40f370200200041086a200241ec0f6a28020036020020002003410020081b3602342000203a410020391b360230200041106a20093702002000203b36020c41002802f0ac420d244100417f3602f0ac42024041002802fcac422203450d0041002003417f6a22033602fcac4241002802f4ac4220034102746a2802002203450d0020032003280200417f6a220836020020080d00200341046a22082008280200417f6a220836020020080d00200310300b410041002802f0ac4241016a3602f0ac42410041002802e8ac42417f6a3602e8ac42024020022802a40d450d0020022802a00d10300b0240200241b00d6a280200450d0020022802ac0d10300b4100280294ad420d254100417f360294ad42024041002802a0ad422203450d0041002003417f6a22033602a0ad424100280298ad4220034102746a2802002203450d0020032003280200417f6a220836020020080d00200341046a22082008280200417f6a220836020020080d00200310300b41004100280294ad4241016a360294ad424100410028028cad42417f6a36028cad422004450d26410020043602e4ad42410041003a00e8ad422016450d27410020163602fcad42410041003a0080ae42200a450d284100200a3602d4ad42410041003a00d8ad42200b450d294100200b3602ccad42410041003a00d0ad422005450d2a410020053602b4ad42410041003a00b8ad422007450d2b410020073602f4ad42410041003a00f8ad422018450d2c410020183602bcad42410041003a00c0ad422006450d2d410020063602acad42410041003a00b0ad42200c450d2e4100200c3602a4ad42410041003a00a8ad42201a450d2f4100201a3602dcad42410041003a00e0ad42201b450d304100201b360284ae42410041003a0088ae42201d450d314100201d3602ecad42410041003a00f0ad42201c450d324100201c3602c4ad42410041003a00c8ad422019450d33410020193602a4ae42410041003a00a8ae422020450d34410020203602b4ae42410041003a00b8ae42201e450d354100201e3602c4ae42410041003a00c8ae422045450d364100204536028cae42410041003a0090ae422044450d37410020443602ccae42410041003a00d0ae422043450d384100204336029cae42410041003a00a0ae422041450d3941002041360294ae42410041003a0098ae422040450d3a410020403602bcae42410041003a00c0ae42203f450d3b4100203f3602acae42410041003a00b0ae42203e450d3c4100203e3602dcae42410041003a00e0ae42203d450d3d200241e8066a41c0006a21034100203d3602d4ae42410041003a00d8ae420240200228029c09450d00200241f8086a106c0b20031090040240024020022802b40722174106490d00200241bc076a28020021150240200241c0076a2802002203450d002003410c6c2108201521030340200310d4032003410c6a2103200841746a22080d000b0b2017410c6c450d01201510300c010b2017450d00200241bc076a21032017410c6c21080340200310d4032003410c6a2103200841746a22080d000b0b2002280284082103200241003602840802402003450d0002402002280280082208450d00034020032802d80921032008417f6a22080d000b0b200241003602e00b200220033602dc0b200241003602d80b20022002280288083602e40b200241d80b6a10d9030b200228029008210320024100360290082003450d400240200228028c082208450d00034020032802900d21032008417f6a22080d000b0b2002280294082204450d3f200241d80b6a41186a210a200241f80b6a210b4100211703400240024002400240201720032f018e0d490d0041002117034041002108024020032802002200450d00201741016a210120032f018c0d2115200021080b024041c00d41900d20171b450d00200310300b024020080d00410221010c050b2001211720082103201520082f018e0d4f0d000b200820154107746a418c026a21162008201541186c6a41046a2100024020010d00200821030c020b201541027420086a41940d6a280200210302402001417f6a2217450d00034020032802900d21032017417f6a22170d000b0b410021170c020b200320174107746a418c026a21162003201741186c6a41046a210020172115200321080b201541016a21170b200241e80e6a41106a200041106a290200370300200241e80e6a41086a200041086a290200370300200220002902003703e80e200820154107746a22084190026a280200210120162802002100200241d80b6a20084194026a41f8001085051a0b200241e00d6a41106a2208200241e80e6a41106a290300370300200241e00d6a41086a2215200241e80e6a41086a290300370300200220022903e80e3703e00d200241900a6a200241d80b6a41f8001085051a200241d80b6a41106a2008290300370300200241d80b6a41086a2015290300370300200220022903e00d3703d80b200220013602f40b200220003602f00b200b200241900a6a41f8001085051a024020022802dc0b450d0020022802d80b10300b2004417f6a2104024020022802e80b450d0020022802e40b10300b200a10d90220040d000c400b0b41cfeac100411c20024180106a41eceac10041fceac1001034000b418cebc100411320024180106a41eceac10041a0ebc1001034000b41b0ebc100411341c4ebc100102d000b41d4ebc10041314188ecc100102d000b4198ecc100413541d0ecc100102d000b4198ecc100413541d0ecc100102d000b4198ecc100413541d0ecc100102d000b4198ecc100413541d0ecc100102d000b4198ecc100413541d0ecc100102d000b4198ecc100413541d0ecc100102d000b4198ecc100413541d0ecc100102d000b4198ecc100413541d0ecc100102d000b4198ecc100413541d0ecc100102d000b4198ecc100413541d0ecc100102d000b4198ecc100413541d0ecc100102d000b4198ecc100413541d0ecc100102d000b4198ecc100413541d0ecc100102d000b4198ecc100413541d0ecc100102d000b4198ecc100413541d0ecc100102d000b4198ecc100413541d0ecc100102d000b4198ecc100413541d0ecc100102d000b4198ecc100413541d0ecc100102d000b4198ecc100413541d0ecc100102d000b4198ecc100413541d0ecc100102d000b4198ecc100413541d0ecc100102d000b4198ecc100413541d0ecc100102d000b4198ecc100413541d0ecc100102d000b4198ecc100413541d0ecc100102d000b41aeaac000411820024180106a41c8aac00041d8aac0001034000b41b082c200411020024180106a41e8aac00041f8aac0001034000b41aeaac000411820024180106a41c8aac0004188abc0001034000b41b082c200411020024180106a41e8aac0004198abc0001034000b41aeaac000411820024180106a41c8aac00041d8aac0001034000b41b082c200411020024180106a41e8aac00041f8aac0001034000b41aeaac000411820024180106a41c8aac0004188abc0001034000b41b082c200411020024180106a41e8aac0004198abc0001034000b41b082c200411020024180106a41ace5c10041bce5c1001034000b41b082c200411020024180106a41ace5c10041bce5c1001034000b4180eec100412041a0eec1001050000b4180eec100412041a0eec1001050000b4180eec100412041a0eec1001050000b4180eec100412041a0eec1001050000b4180eec100412041a0eec1001050000b4180eec100412041a0eec1001050000b4180eec100412041a0eec1001050000b4180eec100412041a0eec1001050000b4180eec100412041a0eec1001050000b4180eec100412041a0eec1001050000b4180eec100412041a0eec1001050000b4180eec100412041a0eec1001050000b4180eec100412041a0eec1001050000b4180eec100412041a0eec1001050000b4180eec100412041a0eec1001050000b4180eec100412041a0eec1001050000b4180eec100412041a0eec1001050000b4180eec100412041a0eec1001050000b4180eec100412041a0eec1001050000b4180eec100412041a0eec1001050000b4180eec100412041a0eec1001050000b4180eec100412041a0eec1001050000b4180eec100412041a0eec1001050000b4180eec100412041a0eec1001050000b2008450d030c020b41002108034020032802002117024041c00d41900d20081b450d00200310300b2008417f6a21082017210320170d000b0b0240024020022802980822174106490d00200241a0086a28020021150240200241a4086a2802002203450d002003410c6c2108201521030340200310d6032003410c6a2103200841746a22080d000b0b2017410c6c450d01201510300c010b2017450d00200241a0086a21032017410c6c21080340200310d6032003410c6a2103200841746a22080d000b0b024020022802ec082208450d0020022802e4082103200841186c2108034002402003280200450d002003410c6a280200450d00200341086a28020010300b200341186a2103200841686a22080d000b0b024020022802e8082203450d00200341186c450d0020022802e40810300b200241c8056a106c20022802dc0121170240200241d8016a410c6a2802002203450d00200341246c21082017210303400240024002400240024020032d00000e050400010204030b2003410c6a280200450d03200341086a28020010300c030b2003410c6a280200450d02200341086a28020010300c020b2003410c6a280200450d01200341086a28020010300c010b200341086a280200450d00200341046a28020010300b200341246a21032008415c6a22080d000b0b0240200241e0016a2802002203450d00200341246c450d00201710300b20024190116a24000f0b102a000b102c000b8b0201057f230041206b2202240002400240024020012802042203450d002001280208210420012802002101200321050240034020032f01ae2b2106024020010d002001450d020c050b2001450d042001417f6a2101200320064102746a41b02b6a280200210320052802b02b21050c000b0b2000200136020c200041003602082000200536020420002001360200200041146a2006360200200041106a20033602000c010b4100210420004100360204200041106a41003602000b20002004360218200241206a24000f0b200241146a410136020020024201370204200241f4a9c2003602002002410436021c200241eca9c2003602182002200241186a360210200241fca9c200103a000b847107027f057e037f017e427f017e037f230041c0096b2204240002404101102f2205450d00200541003a0000410041003502e0ac42200441f8076aad22067c42adfed5e4d485fda8d8007e42218922073e02e0ac42200441e0016a41e0acc200ad220842a4bb99fed1a0bbb023852209420042adfed5e4d485fda8d8004200108405200441c0016a200742a4bb99fed1a0bbb02385420042adfed5e4d485fda8d8004200108405200441d0016a200842c5ecb3fec9ecf7c2c30085220a420042adfed5e4d485fda8d8004200108405200441b0016a200742c5ecb3fec9ecf7c2c30085420042adfed5e4d485fda8d8004200108405200441a0016a2007200885420042adfed5e4d485fda8d8004200108405200441f8076a418de2c10041011065200441c4026a200441f8076a41186a220b290000370200200441bc026a200441f8076a41106a220c290000370200200441b4026a200441f8076a41086a220d290000370200200441a4026a428180808010370200200441f0016a41286a4200370300200441f0016a41246a41bcf5c100360200200420042900f8073702ac02200420053602a002200441003602900220042007200441e0016a41086a29030020042903e001857c200441a0016a41086a29030020042903a0018542cf829ebbefefde82147c220e893703f0012004200441b0016a41086a29030020042903b0018520087c200e423088893703880220042007200441d0016a41086a29030020042903d001857c200e42208889370380022004200441c0016a41086a29030020042903c0018520087c200e421088893703f801200441d0026a41186a200341186a280200360200200441d0026a41106a200341106a290200370300200441d0026a41086a200341086a290200370300200420032902003703d002200441d8056a410772210f200441f8076a4101722110200441f8056a41e0006a2111200441d1066a211220044198056a4107722113200441f4046a2114200441f8076a410c6a211520044190036a41076a2116200441f8076a410b6a2117200441f8076a410d6a2118200441f8076a410e6a2119200441f8076a410f6a211a200441f8076a41116a211b200441f8076a41126a211c200441f8076a41136a211d200441f8076a41156a211e200441f8076a41166a211f200441f8076a41196a2120200441f8076a411a6a2121200441f8076a411b6a2122200441f8076a411c6a2123200441f8076a411d6a2124200441f8076a411e6a2125200441f8076a411f6a212620044199086a21272004419a086a21282004419b086a21294100212a4100212b4100212c41002802e88f42222d212e0240024002400240024002400240024003400240024020042802e8022203450d0020042003417f6a3602e802200441d0026a410020042802d4021b222f280200213002400240202f2802082231202f28020422032f01d6094f0d00200321050c010b03400240200328020022050d00410021050c020b203041016a213020032f01d409213120052103203120052f01d6094f0d000b0b024002402030450d00203141027420056a41dc096a280200210302402030417f6a2230450d00034020032802d80921032030417f6a22300d000b0b410021300c010b203141016a2130200521030b202f2003360204202f4100360200202f2030360208200441f8076a2005203141e4006c6a4188016a10fa0320042802940822320d010b200441d8056a41186a200241186a280200360200200441d8056a41106a200241106a290200370300200441d8056a41086a200241086a290200370300200420022902003703d805200128020021034101102f2205450d0a200541003a0000410041003502e0ac4220067c42adfed5e4d485fda8d8007e42218922073e02e0ac42200441c0006a41e0acc200ad220e42a4bb99fed1a0bbb02385420042adfed5e4d485fda8d8004200108405200441206a200742a4bb99fed1a0bbb02385420042adfed5e4d485fda8d8004200108405200441306a200e42c5ecb3fec9ecf7c2c30085420042adfed5e4d485fda8d8004200108405200441106a200742c5ecb3fec9ecf7c2c30085420042adfed5e4d485fda8d800420010840520042007200e85420042adfed5e4d485fda8d8004200108405200441f8076a418de2c10041011065200441e4036a200441f8076a41186a290000370200200441dc036a200441f8076a41106a290000370200200441d4036a200441f8076a41086a2230290000370200200441c4036a428180808010370200200441b8036a420037030020044190036a41246a41bcf5c100360200200420042900f8073702cc03200420053602c003200441003602b00320042007200441c0006a41086a2903002004290340857c200441086a29030020042903008542cf829ebbefefde82147c220889370390032004200441106a41086a290300200429031085200e7c2008423088893703a80320042007200441306a41086a2903002004290330857c2008422088893703a0032004200441206a41086a290300200429032085200e7c20084210888937039803200341e3006a280000210c200341ea006a2800002133200341f1006a280000210b200341f8006a22052800002114200341fc006a2800002134200341e2006a2d00002135200341e7006a2f00002136200341e9006a2d00002137200341ee006a2f00002110200341f0006a22312d00002111200341f5006a2f00002138200341f7006a2d0000213920032f0160213a200420033602d002200420044190036a3602d402200441b8046a41186a2005290200370300200441b8046a41106a2031290200370300200441b8046a41086a200341e8006a290200370300200420032902603703b804200441f8076a200441d0026a41c4a2c000200441b8046a10fe0220042802fc07210520042802f8072103200441f8066a20304180011085051a20034101460d05200441f8056a200441f8066a4180011085051a20044184076a2205200441d8056a41086a2903003702002004418c076a200441e8056a29030037020020044194076a200441f0056a2802002203360200200441f8066a41246a202e202b41186c6a222f360200200441013602f806200420042903d8053702fc062004202e3602980702400240024002400240024002402003450d0020042003417f6a36029407200441f8066a4104724100200441f8066a41086a223b28020022031b223c2802002130024002402005410820031b223d2802002231203b410420031b223b28020022052f018a0c4f0d00200521030c010b03400240200528020022030d00410021030c020b203041016a213020052f01880c213120032105203120032f018a0c4f0d000b0b024002402030450d00203141027420036a41900c6a280200210502402030417f6a2230450d000340200528028c0c21052030417f6a22300d000b0b410021300c010b203141016a2130200321050b203b2005360200203d2030360200203c410036020002400240200320314107746a22304188016a28020022054106490d0020304194016a280200210520304190016a28020021300c010b20304190016a21300b2030450d062005450d0620032031410c6c6a2203410c6a213b200341046a210320302005417f6a41186c6a223028020022050d01410021050c020b41002105200441003602f806202f202e460d0e2004202e41186a220336029807202e28020c22300d020c030b203028020821310b203b280200213b2003280200213c417f20044194076a2802002203202f202e6b41186e6a223020302003491b21030c020b202e2802142131203021050b202e280208213b202e280200213c202f20036b41186e21030b417f200341016a223020302003491b220341ffffffff00712003470d0720034104742203417f4c0d072003102f223e450d0b203e203136020c203e2005360208203e203b360204203e203c360200200441f8076a41206a200441f8066a41206a290300370300200441f8076a41186a200441f8066a41186a290300370300200441f8076a41106a200441f8066a41106a290300370300200441f8076a41086a223d200441f8066a41086a290300370300200420042903f8063703f8072003410476213f200441f8076a410c6a2140200441f8076a410472214141012142024002400240034002400240024002400240024020042802f8074101470d0002402004280294082203450d0020042003417f6a360294082041410020042802800822031b222f2802002130024002402040410820031b223b2802002231203d410420031b223c28020022052f018a0c4f0d00200521030c010b03400240200528020022030d00410021030c020b203041016a213020052f01880c213120032105203120032f018a0c4f0d000b0b024002402030450d00203141027420036a41900c6a280200210502402030417f6a2230450d000340200528028c0c21052030417f6a22300d000b0b410021300c010b203141016a2130200321050b203c2005360200203b2030360200202f410036020020032031410c6c6a2205410c6a2802002130200541046a280200212f02400240200320314107746a22054188016a28020022034106490d0020054194016a280200210320054190016a28020021050c010b20054190016a21050b2005450d0a2003450d0a20052003417f6a41186c6a220328020022050d02410021050c030b200441003602f8070b2004280298082203450d07200428029c082003460d072004200341186a3602980802400240200328020c22050d00410021050c010b200341146a28020021310b200328020821302003280200212f203f2042470d0420042802980822030d02410021030c030b200328020821310b203f2042470d022004280294082103200428029808223b450d01417f2003200428029c08203b6b41186e6a223b203b2003491b21030c010b200428029c0820036b41186e21030b2042417f200341016a223b203b2003491b6a22032042490d0c2042410174223b2003203b20034b1b22034104200341044b1b220341ffffffff0071200346410274213b200341047421030240024020420d0020044100360298050c010b2004203e36029805200441043602a0052004204241047436029c050b20044198046a2003203b20044198056a106920042802a00421032004280298044101460d02200428029c04213e2003410476213f0b203e20424104746a22032005360208200320303602042003202f3602002003410c6a2031360200204241016a21420c000b0b2003450d090c0d0b0240204241144b0d00204241014d0d072042410474203e6a41606a21034101210503402003200541016a220510b602200341706a210320422005470d000c080b0b2042410176220341ffffffff00712003470d0820034104742243417f4c0d082043102f2244450d0c203e41706a2132203e41506a214541002802e88f42214641002147410021482042214903402049213b41002149410121030240203b417f6a2205450d0002400240203e20054104746a2203280200203e203b417e6a22494104746a2205280200222f2005280204220520032802042203200320054b1b10880522300d00417f200320054720032005491b21030c010b417f410120304100481b21030b0240024002400240024002402003417f460d002045203b4104746a21304102210303400240203b2003470d0041002149203b21030c080b024002400240202f2030280200223c203041046a28020022312005200520314b1b108805222f0d00200520314f0d010c020b202f4100480d010b203041706a2130200341016a210320312105203c212f0c010b0b203b20036b21490c010b203b410274213c2045203b4104746a210302400340024020490d00410021490c020b02400240202f20032802002231200341046a28020022302005200520304b1b108805222f0d00200520304f0d030c010b202f417f4a0d020b2049417f6a2149200341706a2103203021052031212f0c000b0b203b2049490d01203b20424b0d02203b20496b22034101762231450d00203e20494104746a21052032203c4102746a21300340200441f8076a41086a222f200541086a223c290200370300200420052902003703f807203041086a223d290200210720052030290200370200203c2007370200203d202f290300370200203020042903f807370200200541106a2105203041706a21302031417f6a22310d000b0b2049450d04200341094b0d04203b20424b0d02203b20496b21032049417f6a2105203220494104746a21300340203b2005490d0b2030200341016a220310b6022005417f6a223120054f0d04203041706a2130203121052003410a490d000c040b0b2049203b41ccf7c0001048000b203b204241ccf7c0001042000b203b2049417f6a2205490d07203b204241dcf7c0001042000b203141016a21490b024020482047470d00204741016a22052047490d0a204741017422302005203020054b1b22054104200541044b1b220541ffffffff01712005464102742130200541037421050240024020470d00200441003602f8070c010b2004410436028008200420463602f807200420474103743602fc070b200441f8066a20052030200441f8076a10692004280280072105024020042802f8064101470d0020050d0f0c0b0b20042802fc062146200541037621470b204620484103746a2205200336020420052049360200204841016a224a21480240204a4102490d00034002400240024002402046204a2248417f6a224a4103746a2203280200450d00204841037420466a223141746a2802002230200328020422054d0d00204841024d0d0520462048417d6a224b4103746a2802042203200520306a4d0d01204841034d0d05203141646a280200200320306a4b0d050c010b20484103490d012003280204210520462048417d6a224b4103746a28020421030b20032005490d010b2048417e6a214b0b02400240024002402048204b41016a22034d0d0002402048204b4d0d0002402046204b4103746a224c280204220d204c2802006a2205204620034103746a224d280200224e490d000240200520424b0d00204c41046a214f203e204e4104746a2230204d280204225041047422316a21032005410474212f02402005204e6b223b20506b22052050490d00204420302031108505220520316a21310240205041014e0d00200521050c080b203b20504a0d06200521050c070b2044200320054104742231108505224120316a213120504101480d0420054101480d042032202f6a2105034002400240203141706a222f280200200341706a223b280200203b280204223c202f280204223d203d203c4b1b10880522400d00417f203d203c47203d203c491b213c0c010b417f410120404100481b213c0b2005203b202f203c417f46223c1b223d290200370200200541086a203d41086a2902003702002031202f203c1b21312030203b2003203c1b22034f0d05200541706a2105203120414b0d000c050b0b20052042418cf8c0001042000b204e2005418cf8c0001048000b204b204841fcf7c0001033000b2003204841ecf7c0001033000b20412105200321300c010b203e202f6a213d20052105034002400240200328020020052802002005280204222f2003280204223b203b202f4b1b108805223c0d00417f203b202f47203b202f491b212f0c010b417f4101203c4100481b212f0b203020032005202f417f46222f1b223b290200370200203041086a203b41086a2902003702002005200541106a202f1b2105203041106a2130200341106a2003202f1b2203203d4f0d0120052031490d000b0b20302005203120056b4170711085051a204f200d20506a360200204c204e360200204d204d41086a2048204b6b41037441706a1086051a41012148204a41014b0d000b0b2049450d060c000b0b418486c20041fc00418087c2001050000b418486c20041fc00418087c2001050000b200441f0026a41186a200b2802002203360200200441f0026a41106a200c2903002207370300200441f0026a41086a200d290300220e370300200420042903f80722513703f002200441f8036a41186a223b2003360200200441f8036a41106a223c2007370300200441f8036a41086a223d200e370300200420513703f8032001280200210520044198046a10ce014101102f2203450d09200341003a0000410041003502e0ac4220067c42adfed5e4d485fda8d8007e42218922073e02e0ac4220044190016a2009420042adfed5e4d485fda8d8004200108405200441f0006a200742a4bb99fed1a0bbb02385420042adfed5e4d485fda8d800420010840520044180016a200a420042adfed5e4d485fda8d8004200108405200441e0006a200742c5ecb3fec9ecf7c2c30085420042adfed5e4d485fda8d8004200108405200441d0006a2007200885420042adfed5e4d485fda8d8004200108405200441f8076a418de2c10041011065201441186a200b290000370000201441106a200c290000370000201441086a200d290000370000201420042900f80737000020044281808080103702ec04200420033602e804200442003703e004200441bcf5c1003602dc04200441003602d8042004200441e0006a41086a29030020042903608520087c200441d0006a41086a29030020042903508542cf829ebbefefde82147c220e423088893703d0042004200720044180016a41086a290300200429038001857c200e422088893703c8042004200441f0006a41086a29030020042903708520087c200e421088893703c0042004200720044190016a41086a290300200429039001857c200e893703b8042032280208223041176a2203417f4c0d05203228020021310240024020030d004101212f0c010b2003102f222f450d0a0b2004410036028008200420033602fc072004202f3602f807200441f8076a418b90c200411710fd02200441f8076a2031203010fd0220042802fc072138200441f8066a200520042802f807225220042802800810e7020240024020042802f8064101470d0020044198056a41186a20044198046a41186a29030037030020044198056a41106a20044198046a41106a29030037030020044198056a41086a20044198046a41086a2903003703002004200429039804370398050c010b024020042802fc062203450d0002402004290380072207422088a72230450d00200420032d00003a00fc0720304101460d00200420032d00013a00fd0720304102460d00200420032d00023a00fe0720304103460d00200420032d00033a00ff0720304104460d00200d20032d00043a000020304105460d00200441f8076a41096a20032d00053a000020304106460d00200441f8076a410a6a20032d00063a000020304107460d00201720032d00073a000020304108460d00201520032d00083a000020304109460d00201820032d00093a00002030410a460d00201920032d000a3a00002030410b460d00201a20032d000b3a00002030410c460d00200c20032d000c3a00002030410d460d00201b20032d000d3a00002030410e460d00201c20032d000e3a00002030410f460d00201d20032d000f3a000020304110460d00200441f8076a41146a223120032d00103a000020304111460d00201e20032d00113a000020304112460d00201f20032d00123a000020304113460d00200441f8076a41176a20032d00133a000020304114460d00200b20032d00143a000020304115460d00202020032d00153a000020304116460d00202120032d00163a000020304117460d00202220032d00173a000020304118460d00202320032d00183a000020304119460d00202420032d00193a00002030411a460d00202520032d001a3a00002030411b460d00202620032d001b3a00002030411c460d00200441f8076a41206a20032d001c3a00002030411d460d00202720032d001d3a00002030411e460d00202820032d001e3a00002030411f460d00202920032d001f3a000020042f00950820262d000041107472410874200428009108223041187672214b20042f01fc0720042d00fe0741107472214020042f00830820182d000041107472212f20042f018a0820312d0000411074722131200428008d082148200428018608214220042800ff072150200428029808214102402007a7450d00200310300b200420303b00ad0520044198056a41176a20304110763a0000200420313b01a60520044198056a41106a20314110763a00002004202f3b009f0520044198056a41096a202f4110763a0000200420413602b4052004204b3602b005200420483600a905200420423601a2052004205036009b05200420403b019805200420404110763a009a050c020b2007a7450d00200310300b20044198056a41186a20044198046a41186a29030037030020044198056a41106a20044198046a41106a29030037030020044198056a41086a20044198046a41086a2903003703002004200429039804370398050b200420053602b8052004200441b8046a3602bc0520322802002103200420322802083602d005200420033602cc052004200441b8056a3602c805200441d8056a41186a20044198056a41186a2239290300370300200441d8056a41106a20044198056a41106a223a290300370300200441d8056a41086a224520044198056a41086a224329030037030020042004290398053703d805200441f8076a200441c8056a4180a3c000200441d8056a10fe0220042802fc07210520042802f8072103200441f8066a200d4180011085051a024002400240024002400240024020034101460d00200441f8056a200441f8066a4180011085051a200441f8066a41186a2235203b2802002203360200200441f8066a41106a2236203c290300370300200441f8066a41086a2237203d290300370300200420042903f8033703f8062003450d0220042003417f6a223b36029007200441f8066a410020042802fc061b222f280200213002400240202f2802082231202f28020422052f018a0c4f0d00200521030c010b03400240200528020022030d00410021030c020b203041016a213020052f01880c213120032105203120032f018a0c4f0d000b0b024002402030450d00203141027420036a41900c6a280200210502402030417f6a2230450d000340200528028c0c21052030417f6a22300d000b0b410021300c010b203141016a2130200321050b202f2005360204202f4100360200202f203036020802400240200320314107746a22304188016a28020022054106490d0020304194016a280200210520304190016a28020021300c010b20304190016a21300b02400240024002402030450d002005450d000240024020302005417f6a41186c6a220528020022300d00410021300c010b2005280208212f0b417f203b41016a22052005203b491b220541ffffffff00712005470d1020054104742205417f4c0d1020032031410c6c6a2203410c6a2802002131200341046a28020021032005102f223e450d14203e202f36020c203e2030360208203e2031360204203e2003360200200b20352802002203360200200c2036290300370300200d2037290300370300200420042903f8063703f8072005410476213f024020030d004101214a0c040b20042003417f6a223b36029008200441f8076a410020042802fc071b222f280200213002400240202f2802082231202f28020422052f018a0c4f0d00200521030c010b03400240200528020022030d00410021030c020b203041016a213020052f01880c213120032105203120032f018a0c4f0d000b0b024002402030450d00203141027420036a41900c6a280200210502402030417f6a2230450d000340200528028c0c21052030417f6a22300d000b0b410021300c010b203141016a2130200321050b202f2005360204202f4100360200202f2030360208200320314107746a4188016a210520032031410c6c6a41046a21034101214a024002400340200328020821302003280200213102400240200528020022034106490d00200528020c2103200528020821050c010b200541086a21050b2005450d022003450d020240024020052003417f6a41186c6a220328020022050d00410021050c010b2003280208212f0b0240203f204a470d00203f417f203b41016a22032003203b491b6a2203203f490d14203f410174223b2003203b20034b1b22034104200341044b1b220341ffffffff0071200346410274213b2003410474210302400240203f0d00200441003602b0090c010b2004203e3602b009200441043602b8092004203f4104743602b4090b200441a0096a2003203b200441b0096a106920042802a809210320042802a0094101460d0220042802a409213e2003410476213f0b203e204a4104746a2203200536020820032030360204200320313602002003410c6a202f360200204a41016a214a02402004280290082203450d0020042003417f6a223b36029008200441f8076a410020042802fc071b222f280200213002400240202f2802082231202f28020422052f018a0c4f0d00200521030c010b03400240200528020022030d00410021030c020b203041016a213020052f01880c213120032105203120032f018a0c4f0d000b0b024002402030450d00203141027420036a41900c6a280200210502402030417f6a2230450d000340200528028c0c21052030417f6a22300d000b0b410021300c010b203141016a2130200321050b202f2005360204202f4100360200202f2030360208200320314107746a4188016a210520032031410c6c6a41046a21030c010b0b0240204a41144b0d00204a41014d0d06203e204a4104746a41606a21034101210503402003200541016a220510b602200341706a2103204a2005470d000c070b0b204a410176220341ffffffff00712003470d1220034104742253417f4c0d122053102f2247450d16203e41706a2134203e41506a215441002133202d214b41002148204a21440340024002402044223b417f6a22030d0041012103410021440c010b02400240203e20034104746a2203280200203e203b417e6a22444104746a2205280200222f2005280204220520032802042203200320054b1b10880522300d00417f200320054720032005491b21030c010b417f410120304100481b21030b0240024002400240024002402003417f460d002054203b4104746a21304102210303400240203b2003470d0041002144203b21030c080b024002400240202f2030280200223c203041046a28020022312005200520314b1b108805222f0d00200520314f0d010c020b202f4100480d010b203041706a2130200341016a210320312105203c212f0c010b0b203b20036b21440c010b203b410274213c2054203b4104746a210302400340024020440d00410021440c020b02400240202f20032802002231200341046a28020022302005200520304b1b108805222f0d00200520304f0d030c010b202f417f4a0d020b2044417f6a2144200341706a2103203021052031212f0c000b0b203b2044490d01203b204a4b0d02203b20446b22034101762231450d00203e20444104746a21052034203c4102746a21300340200d200541086a222f290200370300200420052902003703f807203041086a223c290200210720052030290200370200202f2007370200203c200d290300370200203020042903f807370200200541106a2105203041706a21302031417f6a22310d000b0b2044450d04200341094b0d04203b204a4b0d02203b20446b21032044417f6a2105203420444104746a21300340203b2005490d0a2030200341016a220310b6022005417f6a223120054f0d04203041706a2130203121052003410a490d000c040b0b2044203b41ccf7c0001048000b203b204a41ccf7c0001042000b203b2044417f6a2205490d06203b204a41dcf7c0001042000b203141016a21440b024020482033470d00203341016a22052033490d14203341017422302005203020054b1b22054104200541044b1b220541ffffffff01712005464102742130200541037421050240024020330d00200441003602f8070c010b20044104360280082004204b3602f807200420334103743602fc070b200441f8066a20052030200441f8076a10692004280280072105024020042802f8064101470d0020050d190c150b20042802fc06214b200541037621330b204b20484103746a2205200336020420052044360200204841016a224d21480240204d4102490d0003400240024002400240204b204d2248417f6a224d4103746a2203280200450d002048410374204b6a223141746a2802002230200328020422054d0d00204841024d0d05204b2048417d6a22504103746a2802042203200520306a4d0d01204841034d0d05203141646a280200200320306a4b0d050c010b20484103490d0120032802042105204b2048417d6a22504103746a28020421030b20032005490d010b2048417e6a21500b02400240024002402048205041016a22034d0d000240204820504d0d000240204b20504103746a2246280204224f20462802006a2205204b20034103746a224e280200224c490d0002402005204a4b0d00204641046a2149203e204c4104746a2230204e280204224241047422316a21032005410474212f02402005204c6b223b20426b22052042490d00204720302031108505220520316a21310240204241014e0d00200521050c080b203b20424a0d06200521050c070b2047200320054104742231108505224120316a213120424101480d0420054101480d042034202f6a2105034002400240203141706a222f280200200341706a223b280200203b280204223c202f280204223d203d203c4b1b10880522400d00417f203d203c47203d203c491b213c0c010b417f410120404100481b213c0b2005203b202f203c417f46223c1b223d290200370200200541086a203d41086a2902003702002031202f203c1b21312030203b2003203c1b22034f0d05200541706a2105203120414b0d000c050b0b2005204a418cf8c0001042000b204c2005418cf8c0001048000b2050204841fcf7c0001033000b2003204841ecf7c0001033000b20412105200321300c010b203e202f6a213d20052105034002400240200328020020052802002005280204222f2003280204223b203b202f4b1b108805223c0d00417f203b202f47203b202f491b212f0c010b417f4101203c4100481b212f0b203020032005202f417f46222f1b223b290200370200203041086a203b41086a2902003702002005200541106a202f1b2105203041106a2130200341106a2003202f1b2203203d4f0d0120052031490d000b0b20302005203120056b4170711085051a2049204f20426a3602002046204c360200204e204e41086a204820506b41037441706a1086051a41012148204d41014b0d000b0b2044450d050c000b0b20030d150c110b418486c20041fc00418087c2001050000b418486c20041fc00418087c2001050000b2005203b41dcf7c0001048000b0240203341ffffffff0171450d00204b10300b2053450d00204710300b204a450d01203e204a4104746a213d203e21030240034020032802002230450d03200341046a2802002131024002400240200341086a280200222f0d00200441f8076a200441f8056a2030203110ff0220042802fc07210520042802f8074101460d0420042903800821070c010b2003410c6a280200210520044100360280090240024020042d00d0064101460d004100213b0c010b200441c4056a41026a201241026a2d00003a00002037201141086a2902003703002036201141106a2902003703002035201141186a2d00003a0000200420122f00003b01c405200420112902003703f8064101213b0b20042802d406213c201020042f01c4053b0000200d20042903f806370200201041026a200441c4056a41026a2d00003a0000200d41086a2037290300370200200d41106a2036290300370200200d41186a20352802003602002004203b3a00f8072004203c3602fc07200441003602a809200420313602a409200420303602a0092005417f4c0d100240024020050d00410121300c010b2005102f2230450d150b200420053602b409200420303602b0092030202f20051085051a200420053602b80920044190096a200441f8056a200441f8076a200441a0096a200441b0096a20044180096a10800320042802940921052004280290094101460d01200420053602d406200441003a00d006200428028009210520042902840921070b02402005450d002007a7450d00200510300b200341106a2203203d470d010c040b0b2004280280092203450d00200428028409450d00200310300b0240203f41ffffffff0071450d00203e10300b200441f8056a10b1010b20052d00000e0404040304020b203f41ffffffff0071450d00203e10300b200441f8056a10b101200441f8066a41026a20042d00da0522033a0000200d200f41086a290000370300200c200f41106a290000370300200b200f41186a2d00003a0000200420042f01d80522053b01f8062004200f2900003703f807200420053b019805200420033a009a05200420042800db0536009b05201320042903f807370000201341086a200d290300370000201341106a200c290300370000201341186a200b2d00003a00000c030b200541286a280200450d01200541246a28020010300c010b200541086a280200450d00200541046a2802001030200510300c010b200510300b20044198056a20044198046a41201088052105200b2039290300370300200c203a290300370300200d204329030037030020042004290398053703f8072016200441b8046a41e000108505210302402038450d00205210300b200441f8056a41186a200b290300370300200441f8056a41106a200c290300370300200441f8056a41086a200d290300370300200420042903f8073703f805200441f8066a200341e0001085051a2032280208223041176a2203417f4c0d05203228020021310240024020030d004101212f0c010b2003102f222f450d0a0b200d4100360200200420033602fc072004202f3602f807200441f8076a418b90c200411710fd02200441f8076a2031203010fd022045200d280200360200200420042903f8073703d805200441f8076a200441f8066a41e0001085051a200441f0016a200441f8076a10c2030240024020050d00200441b8046a41086a22052045280200360200200420042903d8053703b8040240202b202c470d00202b41016a2203202b490d08202b41017422302003203020034b1b22034104200341044b1bad42187e2207422088a74541027421032007a7213002400240202b0d00200441003602f8070c010b20044104360280082004202e3602f8072004202b41186c3602fc070b20044190036a20302003200441f8076a1069200428029803210302402004280290034101470d0020030d0d0c090b200428029403212e200341186e212c0b202e202b41186c6a220320042903b804370200200528020021052003410036020c200341086a20053602000c010b200d2045280200360200200420042903d8053703f8072004410036028c0820044201370284084120102f2203450d0a2004422037029403200420033602900320044190036a200441f8056a412010642015200428029003220320042802980310640240200428029403450d00200310300b0240202b202c470d00202b41016a2203202b490d07202b41017422052003200520034b1b22034104200341044b1bad42187e2207422088a74541027421032007a7210502400240202b0d0020044100360290030c010b20044104360298032004202e360290032004202b41186c360294030b200441b8046a2005200320044190036a106920042802c0042103024020042802b8044101470d0020030d0c0c080b20042802bc04212e200341186e212c0b202e202b41186c6a220320042903f807370200200341106a200c290300370200200341086a200d2903003702000b202a41186a212a202b41016a212b0c000b0b2005203b41dcf7c0001048000b0240204741ffffffff0171450d00204610300b2043450d00204410300b2042450d02203e20424104746a2148200441f8076a41086a2130200441f8076a410172213c200441d8066a213d200441d1066a2142203e21030240034020032802002231450d04200341046a280200212f024002400240200341086a280200223b0d00200441f8076a200441f8056a2031202f10ff0220042802fc07210520042802f8074101460d0420042903800821070c010b2003410c6a2802002105200441003602f0020240024020042d00d0064101460d00410021400c010b200441c4056a41026a204241026a2d00003a0000200441f8066a41086a203d41086a290200370300200441f8066a41106a203d41106a290200370300200441f8066a41186a203d41186a2d00003a0000200420422f00003b01c4052004203d2902003703f806410121400b20042802d4062141203c20042f01c4053b0000203020042903f806370200203c41026a200441c4056a41026a2d00003a0000203041086a200441f8066a41086a290300370200203041106a200441f8066a41106a290300370200203041186a200441f8066a41186a280200360200200420403a00f807200420413602fc07200441003602a0042004202f36029c0420042031360298042005417f4c0d050240024020050d00410121310c010b2005102f2231450d0a0b2004200536029c0520042031360298052031203b20051085051a200420053602a005200441f8036a200441f8056a200441f8076a20044198046a20044198056a200441f0026a10800320042802fc03210520042802f8034101460d01200420053602d406200441003a00d00620042802f002210520042902f40221070b02402005450d002007a7450d00200510300b200341106a22032048470d010c050b0b20042802f0022203450d0020042802f402450d00200310300b0240203f41ffffffff0071450d00203e10300b200441f8056a10b1010b20394110742103201141107421312037411074212f2035411074213b02400240024020052d00000e0402020002010b200541086a280200450d01200541046a28020010300c010b200541286a280200450d00200541246a28020010300b20382003722130201020317221312036202f72212f203a203b722103200510300c030b102c000b203f41ffffffff0071450d00203e10300b200441f8056a10b10120042f01b80420042d00ba0441107472210320042f00cd04200441cf046a2d000041107472213020042f01c604200441b8046a41106a2d000041107472213120042f00bf04200441c1046a2d000041107472212f20042800bb04210c20042801c204213320042800c904210b20042802d004211420042802d40421340b200441f8076a20044190036a41e0001085051a200041176a20304110763a0000200020303b0015200041106a20314110763a0000200020313b000e200041096a202f4110763a00002000202f3b0007200041026a20034110763a0000200020033b01002000203436001c200020143600182000200b3600112000203336000a2000200c360003200441f8066a200441f8076a41e0001085051a200441f8076a200441f8066a41e0001085051a200441f0016a200441f8076a10c203200041206a200441f0016a41e0001085051a0240202b450d00202e210303400240200341046a280200450d00200328020010300b02402003410c6a2802002205450d00200341106a280200450d00200510300b200341186a2103202a41686a222a0d000b0b0240202c450d00202c41186c450d00202e10300b200441c0096a24000f0b102a000b9a0303067f017e017f200028020421012000410036020402402001450d00024020002802002202450d000340200128028c0121012002417f6a22020d000b0b024020002802082203450d004100210003400240024002400240200020012f018a01490d0041002100034041002102024020012802002204450d00200041016a210520012f0188012106200421020b024041bc01418c0120001b450d00200110300b024020020d00410021010c050b2005210020022101200620022f018a014f0d000b20022006410c6c6a41046a2104024020050d00200221010c020b200641027420026a4190016a280200210102402005417f6a2200450d000340200128028c0121012000417f6a22000d000b0b410021000c020b20012000410c6c6a41046a210420012102200021060b200641016a21000b20022006410c6c6a41086a2902002107200428020021080b2008450d022003417f6a210302402007a7450d00200810300b20030d000b0b41002102034020012802002100024041bc01418c0120021b450d00200110300b2002417f6a21022000210120000d000b0b0bf80101037f230041206b220424000240024002402002450d00200221050240034020022f01d6092106024020010d002001450d020c050b2001450d042001417f6a2101200220064102746a41d8096a280200210220052802d80921050c000b0b2000200136020c200041003602082000200536020420002001360200200041146a2006360200200041106a20023602000c010b4100210320004100360204200041106a41003602000b20002003360218200441206a24000f0b200441146a410136020020044201370204200441f4a9c2003602002004410436021c200441eca9c2003602182004200441186a360210200441fca9c200103a000bb703010a7f200028020421012000410036020402402001450d00024020002802002202450d00034020012802900221012002417f6a22020d000b0b024020002802082203450d004100210003400240024002400240200020012f018e02490d0041002100034041002102024020012802002204450d00200041016a210520012f018c022106200421020b024041c00241900220001b450d00200110300b024020020d00410021010c050b2005210020022101200620022f018e024f0d000b2002200641186c6a41046a2104024020050d00200221010c020b200641027420026a4194026a280200210102402005417f6a2200450d00034020012802900221012000417f6a22000d000b0b410021000c020b2001200041186c6a41046a210420012102200021060b200641016a21000b2002200641186c6a220241146a2802002107200241106a2802002108200241086a28020021092004280200210a0b200a450d0202402009450d00200a10300b2003417f6a210302402007450d00200810300b20030d000b0b41002102034020012802002100024041c00241900220021b450d00200110300b2002417f6a21022000210120000d000b0b0baa18030a7f027e057f230041b0026b22022400200128020821032001280204210420012802002105024002400240024002400240024002400240024002400240024002400240024020012802182206450d002004450d01200320042f018a0c490d02034002400240200428020022010d00410021010c010b200541016a210720042f01880c21030b024041bc0c418c0c20051b450d00200410300b024020010d00410221080c050b2007210520012104200320012f018a0c4f0d000b20012104200721050c020b410021090c030b41b2abc200412b41d4a8c200102d000b200341016a2101200420034107746a22074188016a210920042003410c6c6a220a41046a210b0240024020050d00200121030c010b200420014102746a418c0c6a280200210402402005417f6a2201450d000340200428028c0c21042001417f6a22010d000b0b410021030b2007418c016a2802002108200a41086a290200210c20092802002101200b280200210520024190016a20074190016a41f8001085051a0b200241086a20024190016a41f8001085051a2002200836029401200220013602900120024198016a2207200241086a41f8001085051a0240024020014106490d002002419c016a2208280200210120022802980121070c010b20024190016a21080b2001450d0420082001417f6a22013602002007200141186c6a220128020c2207450d04200241a0026a41086a200141086a280200360200200220012902003703a0020240200141106a29020042ffffffff0383500d00200710300b2006417f6a210920024190016a10d902024020050d00410021050c010b417f200941016a220120012009491bad42187e220d422088a70d07200da72201417f4c0d072001102f220e450d08200e200c370204200e2005360200200e20022903a00237020c200e41146a200241a8026a280200360200200141186e210f024020090d0041012106410021090c0b0b2004450d030240024002400240200320042f018a0c490d0041002105034041002101024020042802002208450d00200541016a210720042f01880c2103200821010b024041bc0c418c0c20051b450d00200410300b024020010d00410221070c050b2007210520012104200320012f018a0c4f0d000b200120034107746a4188016a210a20012003410c6c6a41046a210b024020070d00200121040c020b200341027420016a41900c6a280200210402402007417f6a2205450d000340200428028c0c21042005417f6a22050d000b0b410021050c020b200420034107746a4188016a210a20042003410c6c6a41046a210b200421010b200341016a21050b200120034107746a2208418c016a280200210720012003410c6c6a41086a290200210c200a2802002101200b280200210b20024190016a20084190016a41f8001085051a0b200241086a20024190016a41f8001085051a20024190016a410c6a211020024190016a41086a21114101210a0340200220073602940120022001360290012011200241086a41f80010850521030240024020014106490d00200228029c0121012002280298012103201021070c010b20024190016a2107200321030b2001450d0320072001417f6a22013602002003200141186c6a220128020c2207450d03200241a0026a41086a2203200141086a280200360200200220012902003703a0020240200141106a29020042ffffffff0383500d00200710300b2009417f6a210920024190016a10d9020240200b450d000240200f200a470d00200a417f200941016a220120012009491b6a2201200a490d0a200a41017422072001200720014b1b22014104200141044b1bad42187e220d422088a7454102742101200da7210702400240200a0d0020024100360290010c010b20024104360298012002200e360290012002200a41186c360294010b200241086a2007200120024190016a10692002280210210120022802084101460d09200228020c210e200141186e210f0b200e200a41186c6a2201200c3702042001200b360200200120022903a00237020c200141146a20032802003602002009450d0b2004450d030240024002400240200520042f018a0c490d0041002105034041002101024020042802002208450d00200541016a210720042f01880c2103200821010b024041bc0c418c0c20051b450d00200410300b024020010d00410221070c050b2007210520012104200320012f018a0c4f0d000b200120034107746a4188016a210b20012003410c6c6a41046a2112024020070d00200121040c020b200341027420016a41900c6a280200210402402007417f6a2205450d000340200428028c0c21042005417f6a22050d000b0b410021050c020b200420054107746a4188016a210b20042005410c6c6a41046a211220052103200421010b200341016a21050b200120034107746a2208418c016a280200210720012003410c6c6a41086a290200210c200b28020021012012280200210b20024190016a20084190016a41f8001085051a0b200a41016a210a200241086a20024190016a41f8001085051a0c010b0b20052103200a21060c0a0b20004200370204200041002802e88f423602002004450d0a2009450d0420024190016a410c6a210e200241a4016a210f0340024002400240200320042f018a0c4f0d0020042101200521070c010b034002400240200428020022010d00410021010c010b200541016a210720042f01880c21030b024041bc0c418c0c20051b450d00200410300b024020010d00410221010c030b2007210520012104200320012f018a0c4f0d000b0b200341016a210a200120034107746a22054188016a210b20012003410c6c6a41046a21080240024020070d0020012104200a21030c010b2001200a4102746a418c0c6a280200210402402007417f6a2201450d000340200428028c0c21042001417f6a22010d000b0b410021030b200241a0026a41086a200841086a280200360200200220082902003703a0022005418c016a2802002101200b280200210720024190016a20054190016a41f8001085051a0b2009417f6a210920024180016a41086a2205200241a0026a41086a280200360200200220022903a00237038001200241086a20024190016a41f8001085051a20024190016a41086a2005280200360200200220022903800137039001200220013602a0012002200736029c01200f200241086a41f8001085051a0240200228029401450d0020022802900110300b200e10d9024100210520090d000c050b0b41b2abc200412b41d4a8c200102d000b418486c20041fc0041dc8ac2001050000b41b2abc200412b41d4a8c200102d000b418486c20041fc0041dc8ac2001050000b034020042802002101024041bc0c418c0c20051b450d00200410300b200541016a2105200121042001450d060c000b0b20010d010b102c000b102a000b20052103410021090b02402004450d0002402009450d0020024190016a410c6a210b200241a4016a211203400240024002400240200320042f018a0c490d0041002105034041002101024020042802002208450d00200541016a210320042f01880c2107200821010b024041bc0c418c0c20051b450d00200410300b024020010d00410221010c050b2003210520012104200720012f018a0c4f0d000b200120074107746a4188016a210a20012007410c6c6a41046a2108024020030d00200121040c020b200741027420016a41900c6a280200210402402003417f6a2205450d000340200428028c0c21042005417f6a22050d000b0b410021030c020b200420034107746a4188016a210a20042003410c6c6a41046a210820032107200421010b200741016a21030b200241a0026a41086a200841086a280200360200200220082902003703a002200120074107746a2207418c016a2802002101200a280200210520024190016a20074190016a41f8001085051a0b2009417f6a210920024180016a41086a2207200241a0026a41086a280200360200200220022903a00237038001200241086a20024190016a41f8001085051a20024190016a41086a2007280200360200200220022903800137039001200220013602a0012002200536029c012012200241086a41f8001085051a0240200228029401450d0020022802900110300b200b10d90220090d000b0b41002101034020042802002105024041bc0c418c0c20011b450d00200410300b2001417f6a21012005210420050d000b0b200020063602082000200f3602042000200e3602000b200241b0026a24000bcd0301087f230041d0016b22022400200241086a200141f0001085051a200041086a200141086a28020036020020002001290200370200200241f8006a200241146a41d8001085051a0240024020022802840122034106490d0020024190016a28020021010c010b200321010b0240024020010d000240200228027c22010d004100210141002104410021050c020b20022802800121052002280278210620012104034020012f018a0c21072006450d022006417f6a2106200120074102746a418c0c6a2802002101200428028c0c21040c000b0b41a888c200412c41d488c200102d000b0240024020034106490d002002418c016a2802002108024020024190016a2802002206450d002006410c6c2109200821060340200610d4032006410c6a2106200941746a22090d000b0b2003410c6c450d01200810300c010b2003450d002002418c016a21062003410c6c21090340200610d4032006410c6a2106200941746a22090d000b0b2000410036020c200041246a2005360200200041206a20073602002000411c6a2001360200200041146a4200370200200041106a2004360200200041286a200241ec006a290200370200200041306a200241f4006a280200360200200241d0016a24000b9f07010b7f230041a0026b220124000240200028020c2202450d00200141f0006a410c6a210320014190016a210420014180026a410c6a2105034020002002417f6a36020c2000280200210602400240024020002802082207200028020422082f01d6094f0d0020082102200621090c010b034002400240200828020022020d00410021020c010b200641016a210920082f01d40921070b024041880a41d80920061b450d00200810300b024020020d00410221070c030b2009210620022108200720022f01d6094f0d000b0b200741016a21082002200741e4006c6a22064188016a210a20022007410c6c6a41046a210702402009450d00200220084102746a41d8096a280200210202402009417f6a2208450d00034020022802d80921022008417f6a22080d000b0b410021080b2005200a29020037020020014180026a41086a2209200741086a280200360200200541086a200a41086a290200370200200120072902003703800220064198016a2802002107200141f0006a2006419c016a41d0001085051a200141e0016a41186a20014180026a41186a280200360200200141e0016a41106a20014180026a41106a290300370300200141e0016a41086a200929030037030020012001290380023703e0010b200141d0006a41186a2209200141e0016a41186a280200360200200141d0006a41106a220a200141e0016a41106a290300370300200141d0006a41086a220b200141e0016a41086a290300370300200120012903e0013703502001200141f0006a41d0001085052106200020083602082000200236020420004100360200200641f0006a41186a2009280200360200200641f0006a41106a200a290300370300200641f0006a41086a200b290300370300200620062903503703702006200736028c012004200641d000108505210202402006280274450d00200628027010300b20031090040240024020062802880122074106490d00200628029001210902402006280294012202450d002002410c6c2108200921020340200210d4032002410c6a2102200841746a22080d000b0b2007410c6c450d01200910300c010b2007450d002007410c6c2108200221020340200210d4032002410c6a2102200841746a22080d000b0b024020062802d801450d0020062802d40110300b200028020c22020d000b0b2000280204210620002802002102034020062802002108024041880a41d80920021b450d00200610300b200241016a21022008210620080d000b200141a0026a24000bef8f0104077f017e507f3b7e230041a0296b2205240002402004a70d002005200210c403200528020045ad21040b02400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002402004a7450d000240024002400240024002400240024002400240024002400240024002400240024020012903004201520d0020012d00080d00200541e0216a200110db03200541286a41c8036a200241e8031085051a200541286a200541e0216a41c8031085051a20052d00f0030e0b0102050703040610101008100b200042013703002000411636020820021096010c2e0b200541d00b6a200541286a41c8031085051a20054188046a280200210620054184046a280200210720054180046a2802002108200541f8036a2802002109200541f4036a280200210a200541fc036a2802002103200541e8076a4200370300200542003702dc07200a2102024002402003450d00200a41f8036a2102200a280200220b410c470d010b0240200a200341f8036c6a22032002460d0003402002109a012003200241f8036a2202470d000b0b02402009450d00200941f8036c450d00200a10300b200541106a41106a200541d8076a41106a290300370300200541106a41086a200541d8076a41086a290300370300200520052903d8073703102006ad4220862007ad84210c200541d00b6a109c0142002104410021034101210b4101210741012106410121024101210a410121090c2d0b200541c80f6a200a41046a41f4031085051a2005200b3602e021200541e0216a410472200541c80f6a41f4031085051a20004201370300200041124102200b417f6a4107491b360208200341f8036c41887c6a220041f8036d2103200541e0216a109a0102402000450d00200341f8036c210003402002109a01200241f8036a2102200041887c6a22000d000b0b02402009450d00200941f8036c450d00200a10300b200541d8076a10dc03024020052802e8072200450d00024020052802e4072202450d00034020002802b02b21002002417f6a22020d000b0b200541003602e821200520003602e421200541003602e021200520052802ec073602ec21200541e0216a10dd030b2008200610a40102402007450d0020074198046c450d00200810300b200541d00b6a109c0141012108410021070c260b200541e0216a200541286a41c8031085051a20054188046a280200210720054184046a280200210220054180046a2802002108200541f8036a280200210a200541f4036a28020021030240200541fc036a28020022090d0041002109200541003602d80b2005200a3602d40b200520033602d00b200541c80f6a200541d00b6a10de03200541e80f6a2007360200200541e40f6a22032002360200200541106a41086a200541c80f6a41086a290300370300200541106a41106a200541c80f6a41106a290300370300200520052903c80f3703102003290200210c200541e0216a109c01420021044101210b4101210741012106410121024101210a0c2b0b20032802002106200042013703002000411241072006417f6a4107491b3602082008200710a40102402002450d0020024198046c450d00200810300b200941f8036c21022003210003402000109a01200041f8036a2100200241887c6a22020d000b0240200a450d00200a41f8036c450d00200310300b200541e0216a109c0141002108410121070c250b200541d01a6a200541286a41c8031085051a200541981e6a20054180046a41c8031085051a200541f4036a280200220b200541fc036a280200220241f8036c22036a2108200541f8036a280200210d200b210a2002450d1f200341887c6a2109200541e0216a4104722106200541d00b6a4104722107200b21020340200241f8036a210a20022802002203410c460d20200541d8076a200241046a41f4031085051a200520033602d00b2007200541d8076a41f4031085051a02402003417f6a41064b0d0020004201370300200041123602080c090b200541e0216a10c70320052802e0212102200541c80f6a200641bc071085051a20024101460d0720054188176a41106a2202200541c80f6a41106a29020037030020054188176a41086a200541c80f6a41086a290200370300200520052902c80f3703881720054188176a10dc03024020022802002202450d0002402005280294172203450d00034020022802b02b21022003417f6a22030d000b0b200541003602e821200520023602e421200541003602e0212005200528029c173602ec21200541e0216a10dd030b200941887c6a2109200541d00b6a109a01200a2102200a2008470d000c210b0b200541981e6a200541286a41c8031085051a200541f8036a280200210b200541f4036a2802002107200541fc036a2802002106200541d8076a200541286a41e8036a41c8031085051a2007200641f8036c6a210920054188046a280200210e20054184046a280200210d20054180046a280200210f200541d00b6a200541d8076a10f001200541e0216a41047221082007210a03402009200a460d050240200a280200417f6a41064b0d0020004201370300200041123602080c0c0b200541e0216a10c70320052802e0212102200541c80f6a200841bc071085051a20024101460d0a200541d01a6a41106a2202200541c80f6a41106a290200370300200541d01a6a41086a200541c80f6a41086a290200370300200520052902c80f3703d01a200541d01a6a10dc03024020022802002202450d00024020052802dc1a2203450d00034020022802b02b21022003417f6a22030d000b0b200541003602e821200520023602e421200541003602e021200520052802e41a3602ec21200541e0216a10dd030b200a200541d00b6a10df032102200a41f8036a210a2002450d000b20004201370300200041003602080c0a0b200541e0216a200541286a41c8031085051a20054188046a280200210920054184046a280200210220054180046a2802002108200541f8036a280200210a200541f4036a28020021030240200541fc036a2802002207450d0020032802002106200042013703002000411241082006417f6a4107491b3602082008200910a40102402002450d0020024198046c450d00200810300b200741f8036c21022003210003402000109a01200041f8036a2100200241887c6a22020d000b0240200a450d00200a41f8036c450d00200310300b200541e0216a109c014100210341012107410121084101210a41012109410121020c260b41002107200541003602d80b2005200a3602d40b200520033602d00b200541c80f6a200541d00b6a10de03200541e80f6a2009360200200541e40f6a22032002360200200541106a41086a200541c80f6a41086a290300370300200541106a41106a200541c80f6a41106a290300370300200520052903c80f3703102003290200210c200541e0216a109c01420021044101210b0c1f0b200541d00b6a200541286a41c8031085051a200541f8036a2903002104200541f1036a2d0000210a200541d8076a20054180046a41f0001085051a20052802d8072102200541023602d80720024102470d0b200520052802b808360288172005200541c0086a28020036028c17200541c80f6a20054188176a10e90120052802c80f22024102460d0c200541d01a6a200541c80f6a41047241dc001085051a0c1a0b200541286a41d0036a2802002108200541f4036a280200210a200541e0036a2802002110200541d8036a2802002111200541d0036a2802002112200541c0036a2802002113200541b8036a2d00002114200541a8036a2802002115200541a0036a280200211620054198036a280200211720054188036a280200211820054180036a2d00002119200541f0026a280200211a200541e8026a280200211b200541e0026a280200211c200541d0026a280200211d200541c8026a2d0000211e200541b8026a280200211f200541b0026a2802002120200541a8026a280200212120054198026a280200212220054190026a2d0000212320054180026a2802002124200541f8016a2802002125200541f0016a2802002126200541e0016a2802002127200541d8016a2d00002128200541c8016a2802002129200541c0016a280200212a200541b8016a280200212b200541a8016a280200212c200541a0016a2d0000210f20054190016a280200212d20054188016a280200212e20054180016a280200212f200541f0006a2802002130200541e8006a2d0000210e200541d8006a2802002131200541d0006a2802002132200541c8006a2802002133200541286a41106a280200213420052802e403213520052802dc03213620052802d403213720052802c403213820052802bc03213920052802ac03213a20052802a403213b200528029c03213c200528028c03213d200528028403213e20052802f402213f20052802ec02214020052802e402214120052802d402214220052802cc02214320052802bc02214420052802b402214520052802ac022146200528029c0221472005280294022148200528028402214920052802fc01214a20052802f401214b20052802e401214c20052802dc01214d20052802cc01214e20052802c401214f20052802bc01215020052802ac01215120052802a40121522005280294012153200528028c012154200528028401215520052802742156200528026c2157200528025c215820052802542159200528024c215a200528023c215b2005280234215c20052d0030210d2005290328215d0240200541286a41d4036a2802002202450d00200241f8036c2109410021020340024002400240024002400240024002400240200a20026a22032802000e0b0808080800010203040506070b200341086a280200450d07200341046a28020010300c070b200341086a280200450d06200341046a28020010300c060b200341086a109c010c050b200341086a109c010c040b200341086a280200450d03200341046a28020010300c030b0240200341086a280200450d00200341046a28020010300b200341106a2d00004106490d02200341186a280200450d02200341146a28020010300c020b200341086a109c010c010b200341086a109c01200341d0036a2d00004106490d00200341d8036a280200450d00200341d4036a28020010300b2009200241f8036a2202470d000b0b02402008450d00200841f8036c450d00200a10300b42002104410021084101210b4101210741012106410021024101210a410121094101210302400240024002400240024002400240205da70e082e00010203040506070b410021084101210741012106410021024101210a410121094101210302400240024002400240200d0e09323200010232320332040b4101210b4100210220594101470d1c2058450d1c203110300c230b4101210b41002102205c4101470d1b205b450d1b0c210b4101210b4100210220334101470d1a2032450d1a205a10300c210b2034450d20205c10300c200b4101210b41002102205c4101470d18205b0d1e0c180b0240024002400240024002400240200d0e09060600010206060306040b20594101470d052058450d05203110300c050b205c4101470d04205b0d030c040b20334101470d032032450d03205a10300c030b2034450d02205c10300c020b205c4101470d01205b450d010b203410300b410021084101210741012106410021024101210a410121094101210302400240024002400240200e0e09313100010231310331040b4101210b4100210220544101470d1b2053450d1b202d10300c220b4101210b4100210220574101470d1a2056450d1a0c1f0b4101210b41002102202f4101470d19202e450d19205510300c200b2030450d1f205710300c1f0b4101210b4100210220574101470d1720560d1c0c170b0240024002400240024002400240200d0e09060600010206060306040b20594101470d052058450d05203110300c050b205c4101470d04205b0d030c040b20334101470d032032450d03205a10300c030b2034450d02205c10300c020b205c4101470d01205b450d010b203410300b0240024002400240024002400240200e0e09060600010206060306040b20544101470d052053450d05202d10300c050b20574101470d0420560d030c040b202f4101470d03202e450d03205510300c030b2030450d02205710300c020b20574101470d012056450d010b203010300b410021084101210741012106410021024101210a410121094101210302400240024002400240200f0e09303000010230300330040b4101210b41002102204f4101470d1a204e450d1a202910300c210b4101210b4100210220524101470d192051450d190c1d0b4101210b41002102202b4101470d18202a450d18205010300c1f0b202c450d1e205210300c1e0b4101210b4100210220524101470d1620510d1a0c160b0240024002400240024002400240200d0e09060600010206060306040b20594101470d052058450d05203110300c050b205c4101470d04205b0d030c040b20334101470d032032450d03205a10300c030b2034450d02205c10300c020b205c4101470d01205b450d010b203410300b0240024002400240024002400240200e0e09060600010206060306040b20544101470d052053450d05202d10300c050b20574101470d0420560d030c040b202f4101470d03202e450d03205510300c030b2030450d02205710300c020b20574101470d012056450d010b203010300b0240024002400240024002400240200f0e09060600010206060306040b204f4101470d05204e450d05202910300c050b20524101470d0420510d030c040b202b4101470d03202a450d03205010300c030b202c450d02205210300c020b20524101470d012051450d010b202c10300b410021084101210741012106410021024101210a41012109410121030240024002400240024020280e092f2f0001022f2f032f040b4101210b41002102204a4101470d192049450d19202410300c200b4101210b41002102204d4101470d18204c450d180c1b0b4101210b4100210220264101470d172025450d17204b10300c1e0b2027450d1d204d10300c1d0b4101210b41002102204d4101470d15204c0d180c150b0240024002400240024002400240200d0e09060600010206060306040b20594101470d052058450d05203110300c050b205c4101470d04205b0d030c040b20334101470d032032450d03205a10300c030b2034450d02205c10300c020b205c4101470d01205b450d010b203410300b0240024002400240024002400240200e0e09060600010206060306040b20544101470d052053450d05202d10300c050b20574101470d0420560d030c040b202f4101470d03202e450d03205510300c030b2030450d02205710300c020b20574101470d012056450d010b203010300b0240024002400240024002400240200f0e09060600010206060306040b204f4101470d05204e450d05202910300c050b20524101470d0420510d030c040b202b4101470d03202a450d03205010300c030b202c450d02205210300c020b20524101470d012051450d010b202c10300b024002400240024002400240024020280e09060600010206060306040b204a4101470d052049450d05202410300c050b204d4101470d04204c0d030c040b20264101470d032025450d03204b10300c030b2027450d02204d10300c020b204d4101470d01204c450d010b202710300b410021084101210741012106410021024101210a41012109410121030240024002400240024020230e092e2e0001022e2e032e040b4101210b4100210220454101470d182044450d18201f10300c1f0b4101210b4100210220484101470d172047450d170c190b4101210b4100210220214101470d162020450d16204610300c1d0b2022450d1c204810300c1c0b4101210b4100210220484101470d1420470d160c140b0240024002400240024002400240200d0e09060600010206060306040b20594101470d052058450d05203110300c050b205c4101470d04205b0d030c040b20334101470d032032450d03205a10300c030b2034450d02205c10300c020b205c4101470d01205b450d010b203410300b0240024002400240024002400240200e0e09060600010206060306040b20544101470d052053450d05202d10300c050b20574101470d0420560d030c040b202f4101470d03202e450d03205510300c030b2030450d02205710300c020b20574101470d012056450d010b203010300b0240024002400240024002400240200f0e09060600010206060306040b204f4101470d05204e450d05202910300c050b20524101470d0420510d030c040b202b4101470d03202a450d03205010300c030b202c450d02205210300c020b20524101470d012051450d010b202c10300b024002400240024002400240024020280e09060600010206060306040b204a4101470d052049450d05202410300c050b204d4101470d04204c0d030c040b20264101470d032025450d03204b10300c030b2027450d02204d10300c020b204d4101470d01204c450d010b202710300b024002400240024002400240024020230e09060600010206060306040b20454101470d052044450d05201f10300c050b20484101470d0420470d030c040b20214101470d032020450d03204610300c030b2022450d02204810300c020b20484101470d012047450d010b202210300b410021084101210741012106410021024101210a410121094101210302400240024002400240201e0e092d2d0001022d2d032d040b4101210b4100210220404101470d17203f450d17201a10300c1e0b4101210b4100210220434101470d162042450d160c170b4101210b41002102201c4101470d15201b450d15204110300c1c0b201d450d1b204310300c1b0b4101210b4100210220434101470d1320420d140c130b0240024002400240024002400240200d0e09060600010206060306040b20594101470d052058450d05203110300c050b205c4101470d04205b0d030c040b20334101470d032032450d03205a10300c030b2034450d02205c10300c020b205c4101470d01205b450d010b203410300b0240024002400240024002400240200e0e09060600010206060306040b20544101470d052053450d05202d10300c050b20574101470d0420560d030c040b202f4101470d03202e450d03205510300c030b2030450d02205710300c020b20574101470d012056450d010b203010300b0240024002400240024002400240200f0e09060600010206060306040b204f4101470d05204e450d05202910300c050b20524101470d0420510d030c040b202b4101470d03202a450d03205010300c030b202c450d02205210300c020b20524101470d012051450d010b202c10300b024002400240024002400240024020280e09060600010206060306040b204a4101470d052049450d05202410300c050b204d4101470d04204c0d030c040b20264101470d032025450d03204b10300c030b2027450d02204d10300c020b204d4101470d01204c450d010b202710300b024002400240024002400240024020230e09060600010206060306040b20454101470d052044450d05201f10300c050b20484101470d0420470d030c040b20214101470d032020450d03204610300c030b2022450d02204810300c020b20484101470d012047450d010b202210300b0240024002400240024002400240201e0e09060600010206060306040b20404101470d05203f450d05201a10300c050b20434101470d0420420d030c040b201c4101470d03201b450d03204110300c030b201d450d02204310300c020b20434101470d012042450d010b201d10300b410021084101210741012106410021024101210a41012109410121030240024002400240024020190e092c2c0001022c2c032c040b4101210b41002102203b4101470d16203a450d16201510300c1d0b4101210b41002102203e4101470d15203d450d150c140b4101210b4100210220174101470d142016450d14203c1030410021020c140b2018450d11203e1030410021020c130b4101210b41002102203e4101470d12203d0d110c120b0240024002400240024002400240200d0e09060600010206060306040b20594101470d052058450d05203110300c050b205c4101470d04205b0d030c040b20334101470d032032450d03205a10300c030b2034450d02205c10300c020b205c4101470d01205b450d010b203410300b0240024002400240024002400240200e0e09060600010206060306040b20544101470d052053450d05202d10300c050b20574101470d0420560d030c040b202f4101470d03202e450d03205510300c030b2030450d02205710300c020b20574101470d012056450d010b203010300b0240024002400240024002400240200f0e09060600010206060306040b204f4101470d05204e450d05202910300c050b20524101470d0420510d030c040b202b4101470d03202a450d03205010300c030b202c450d02205210300c020b20524101470d012051450d010b202c10300b024002400240024002400240024020280e09060600010206060306040b204a4101470d052049450d05202410300c050b204d4101470d04204c0d030c040b20264101470d032025450d03204b10300c030b2027450d02204d10300c020b204d4101470d01204c450d010b202710300b024002400240024002400240024020230e09060600010206060306040b20454101470d052044450d05201f10300c050b20484101470d0420470d030c040b20214101470d032020450d03204610300c030b2022450d02204810300c020b20484101470d012047450d010b202210300b0240024002400240024002400240201e0e09060600010206060306040b20404101470d05203f450d05201a10300c050b20434101470d0420420d030c040b201c4101470d03201b450d03204110300c030b201d450d02204310300c020b20434101470d012042450d010b201d10300b024002400240024002400240024020190e09060600010206060306040b203b4101470d05203a450d05201510300c050b203e4101470d04203d0d030c040b20174101470d032016450d03203c10300c030b2018450d02203e10300c020b203e4101470d01203d450d010b201810300b410021084101210741012106410021024101210a41012109410121030240024002400240024020140e092b2b0001022b2b032b040b4101210b4100210220364101470d152035450d1520101030410021020c150b4101210b4100210220394101470d142038450d140c110b4101210b4100210220124101470d132011450d1320371030410021020c130b2013450d1020391030410021020c120b4101210b4100210220394101470d112038450d110c0e0b20054188176a200541286a41c8031085051a200541d01a6a200541f8036a41c8031085051a200541f4036a28020021094100210202400340200541d01a6a200210f201220a450d01200241016a2102200a2d00000d000b20004201370300200041063602080c050b200541981e6a200541286a41c8031085051a200541981e6a41186a220229030021042002200541d01a6a41186a29030037030020052903a81e210c200520052903e01a3703a81e20052903a01e215d200520052903d81a3703a01e20052903981e215e200520052903d01a3703981e200541981e6a41206a220b290300215f200541981e6a41286a22082903002160200541981e6a41306a22072903002161200541981e6a41386a22062903002162200541d01a6a41c0036a2903002163200541d01a6a41a0036a2903002164200541d01a6a41a8036a2903002165200541d01a6a41b0036a2903002166200541d01a6a41b8036a2903002167200541d01a6a4180036a2903002168200541d01a6a4188036a2903002169200541d01a6a4190036a290300216a200541d01a6a4198036a290300216b200541d01a6a41e0026a290300216c200541d01a6a41e8026a290300216d200541d01a6a41f0026a290300216e200541d01a6a41f8026a290300216f200541d01a6a41c0026a2903002170200541d01a6a41c8026a2903002171200541d01a6a41d0026a2903002172200541d01a6a41d8026a2903002173200541d01a6a41a0026a2903002174200541d01a6a41a8026a2903002175200541d01a6a41b0026a2903002176200541d01a6a41b8026a2903002177200541d01a6a4180026a2903002178200541d01a6a4188026a2903002179200541d01a6a4190026a290300217a200541d01a6a4198026a290300217b200541d01a6a41e0016a290300217c200541d01a6a41e8016a290300217d200541d01a6a41f0016a290300217e200541d01a6a41f8016a290300217f200541d01a6a41c0016a290300218001200541d01a6a41c8016a290300218101200541d01a6a41d0016a290300218201200541d01a6a41d8016a290300218301200541d01a6a41a0016a290300218401200541d01a6a41a8016a290300218501200541d01a6a41b0016a290300218601200541d01a6a41b8016a290300218701200541d01a6a4180016a290300218801200541d01a6a4188016a290300218901200541d01a6a4190016a290300218a01200541d01a6a4198016a290300218b01200541d01a6a41f8006a290300218c01200541d01a6a41e0006a290300218d01200541d01a6a41e8006a290300218e01200541d01a6a41f0006a290300218f01200541d01a6a41c0006a290300219001200541d01a6a41c8006a290300219101200541d01a6a41d0006a290300219201200541d01a6a41d8006a290300219301200541d01a6a41206a290300219401200541d01a6a41286a290300219501200541d01a6a41306a2903002196012006200541d01a6a41386a29030037030020072096013703002008209501370300200b209401370300200541981e6a41d8006a220b290300219401200b209301370300200541981e6a41d0006a220d290300219301200d209201370300200541981e6a41c8006a220e290300219201200e209101370300200541981e6a41c0006a220f290300219101200f209001370300200541981e6a41f0006a220f290300219001200f208f01370300200541981e6a41e8006a2228290300218f012028208e01370300200541981e6a41e0006a2223290300218e012023208d01370300200541981e6a41f8006a2223290300218d012023208c01370300200541981e6a4180016a2257290300218c01200541981e6a4188016a221e290300219501200541981e6a4190016a225c290300219601200541981e6a4198016a22192903002197012019208b01370300205c208a01370300201e2089013703002057208801370300200541981e6a41a0016a2230290300218801200541981e6a41a8016a2257290300218901200541981e6a41b0016a2234290300218a01200541981e6a41b8016a2252290300218b012052208701370300203420860137030020572085013703002030208401370300200541981e6a41c0016a225b290300218401200541981e6a41c8016a2230290300218501200541981e6a41d0016a224d290300218601200541981e6a41d8016a222c290300218701202c208301370300204d2082013703002030208101370300205b208001370300200541981e6a41e0016a2227290300218001200541981e6a41e8016a225b290300218101200541981e6a41f0016a2256290300218201200541981e6a41f8016a22482903002183012048207f3703002056207e370300205b207d3703002027207c370300200541981e6a4180026a2259290300217c200541981e6a4188026a2227290300217d200541981e6a4190026a2214290300217e200541981e6a4198026a2251290300217f2051207b3703002014207a3703002027207937030020592078370300200541981e6a41a0026a22432903002178200541981e6a41a8026a22592903002179200541981e6a41b0026a2233290300217a200541981e6a41b8026a2222290300217b20222077370300203320763703002059207537030020432074370300200541981e6a41c0026a222f2903002174200541981e6a41c8026a22432903002175200541981e6a41d0026a224c2903002176200541981e6a41d8026a2254290300217720542073370300204c207237030020432071370300202f2070370300200541981e6a41e0026a224f2903002170200541981e6a41e8026a222f2903002171200541981e6a41f0026a22322903002172200541981e6a41f8026a225829030021732058206f3703002032206e370300202f206d370300204f206c370300200541981e6a4180036a2247290300216c200541981e6a4188036a224f290300216d200541981e6a4190036a222b290300216e200541981e6a4198036a221d290300216f201d206b370300202b206a370300204f206937030020472068370300200541981e6a41a0036a223e2903002168200541981e6a41a8036a22472903002169200541981e6a41b0036a222e290300216a200541981e6a41b8036a2253290300216b20532067370300202e206637030020472065370300203e2064370300200541981e6a41c0036a223e2903002164203e2063370300200541e0216a41b8036a206b370300200541e0216a41b0036a206a370300200541e0216a41a8036a2069370300200541e0216a41a0036a2068370300200541e0216a4198036a206f370300200541e0216a4190036a206e370300200541e0216a4188036a206d370300200541e0216a4180036a206c370300200541e0216a41f8026a2073370300200541e0216a41f0026a2072370300200541e0216a41e8026a2071370300200541e0216a41e0026a2070370300200541e0216a41d8026a2077370300200541e0216a41d0026a2076370300200541e0216a41c8026a2075370300200541e0216a41c0026a2074370300200541e0216a41b8026a207b370300200541e0216a41b0026a207a370300200541e0216a41a8026a2079370300200541e0216a41a0026a2078370300200541e0216a4198026a207f370300200541e0216a4190026a207e370300200541e0216a4188026a207d370300200541e0216a4180026a207c370300200541e0216a41f8016a208301370300200541e0216a41f0016a208201370300200541e0216a41e8016a208101370300200541e0216a41e0016a208001370300200541e0216a41d8016a208701370300200541e0216a41d0016a208601370300200541e0216a41c8016a208501370300200541e0216a41c0016a208401370300200541e0216a41b8016a208b01370300200541e0216a41b0016a208a01370300200541e0216a41a8016a208901370300200541e0216a41a0016a208801370300200541e0216a4198016a209701370300200541e0216a4190016a209601370300200541e0216a4188016a209501370300200541e0216a4180016a208c01370300200541e0216a41f8006a208d01370300200541e0216a41f0006a209001370300200541e0216a41e8006a208f01370300200541e0216a41e0006a208e01370300200541e0216a41d8006a209401370300200541e0216a41d0006a209301370300200541e0216a41c8006a209201370300200541e0216a41c0006a209101370300200541e0216a41386a2062370300200541e0216a41306a2061370300200541e0216a41286a2060370300200541e0216a41206a205f370300200541e0216a41186a2004370300200541e0216a41c0036a20643703002005200c3703f0212005205d3703e8212005205e3703e021200541c80f6a200541981e6a200541e0216a10e0030240024020052903c80f4209520d00420921040c010b2002290300215e2002200541c80f6a41186a29030037030020052903a81e215d200520052903d80f3703a81e20052903a01e210c200520052903d00f3703a01e20052903981e2104200520052903c80f3703981e200629030021622007290300216120082903002160200541c80f6a41c0036a290300219401200541c80f6a41a0036a290300219301200541c80f6a41a8036a290300219501200541c80f6a41b0036a290300219601200541c80f6a41b8036a290300219701200541c80f6a4180036a290300218f01200541c80f6a4188036a290300219001200541c80f6a4190036a290300219101200541c80f6a4198036a290300219201200541c80f6a41e0026a290300218b01200541c80f6a41e8026a290300218c01200541c80f6a41f0026a290300218d01200541c80f6a41f8026a290300218e01200541c80f6a41c0026a290300218701200541c80f6a41c8026a290300218801200541c80f6a41d0026a290300218901200541c80f6a41d8026a290300218a01200541c80f6a41a0026a290300218301200541c80f6a41a8026a290300218401200541c80f6a41b0026a290300218501200541c80f6a41b8026a290300218601200541c80f6a4180026a290300217f200541c80f6a4188026a290300218001200541c80f6a4190026a290300218101200541c80f6a4198026a290300218201200541c80f6a41e0016a290300217b200541c80f6a41e8016a290300217c200541c80f6a41f0016a290300217d200541c80f6a41f8016a290300217e200541c80f6a41c0016a2903002177200541c80f6a41c8016a2903002178200541c80f6a41d0016a2903002179200541c80f6a41d8016a290300217a200541c80f6a41a0016a2903002173200541c80f6a41a8016a2903002174200541c80f6a41b0016a2903002175200541c80f6a41b8016a2903002176200541c80f6a4180016a290300216f200541c80f6a4188016a2903002170200541c80f6a4190016a2903002171200541c80f6a4198016a2903002172200541c80f6a41e0006a290300216b200541c80f6a41c0006a2903002167200541c80f6a41206a2903002163200541c80f6a41f8006a290300216c200541c80f6a41e8006a290300216a200541c80f6a41f0006a2903002168200541c80f6a41c8006a2903002169200541c80f6a41d0006a2903002164200541c80f6a41d8006a2903002165200541c80f6a41286a2903002166200541c80f6a41306a290300216d20052903b81e215f2006200541c80f6a41386a2903003703002007206d37030020082066370300200b2903002166200b2065370300200d2903002165200d2064370300200e2903002164200e2069370300200f2903002169200f2068370300202829030021682028206a3703002023290300216a2023206c370300200520633703b81e20052903d81e2163200520673703d81e20052903f81e21672005206b3703f81e2019290300216e205c290300216d201e290300216c20052903981f216b20192072370300205c2071370300201e20703703002005206f3703981f20522903002172203429030021712057290300217020052903b81f216f205220763703002034207537030020572074370300200520733703b81f202c2903002176204d29030021752030290300217420052903d81f2173202c207a370300204d207937030020302078370300200520773703d81f2048290300217a20562903002179205b290300217820052903f81f21772048207e3703002056207d370300205b207c3703002005207b3703f81f2051290300217e2014290300217d2027290300217c200529039820217b2051208201370300201420810137030020272080013703002005207f3703982020222903002182012033290300218101205929030021800120052903b820217f20222086013703002033208501370300205920840137030020052083013703b8202054290300218601204c290300218501204329030021840120052903d8202183012054208a01370300204c208901370300204320880137030020052087013703d8202058290300218a012032290300218901202f29030021880120052903f8202187012058208e013703002032208d01370300202f208c013703002005208b013703f820201d290300218e01202b290300218d01204f290300218c01200529039821218b01201d209201370300202b209101370300204f2090013703002005208f01370398212053290300219201202e290300219101204729030021900120052903b821218f012053209701370300202e209601370300204720950137030020052093013703b82120052903d82121930120052094013703d8210b20044209520d03200541d8076a200541981e6a41c8031085051a200541d00b6a200941e8031085051a200541e0216a200541d8076a200541d00b6a2003420010da0320052903e821210420052903e021210c200541c80f6a200541e0216a41106a41b0071085051a0240200c4201510d00200910304100210a4101210b41002108410121074101210641012102410121090c250b200041106a200541c80f6a41b0071085051a2000420137030020002004370308200910300c0c0b200541e4216a200541d8076a41c8031085051a200541c80f6a200541e0216a41cc031085051a2000410b3602082000410c6a200541c80f6a41cc031085051a200041f0036a200e360200200041ec036a200d360200200041e8036a200f360200200041e4036a2006360200200041e0036a200b360200200041dc036a2007360200200041d8036a41013a000020004201370300200541d00b6a109c010c0a0b200041086a200541cc0f6a41b8071085051a200042013703000b200541d00b6a109a0102402008200a460d000340200a109a01200a41f8036a210a200941887c6a22090d000b0b0240200d450d00200d41f8036c450d00200b10300b200541981e6a109c01200541d01a6a109c014100210041012107410121084101210a4101210941012103410121020c200b20054188256a20900137030020054180256a208f01370300200541e8246a208c01370300200541e0246a208b01370300200541c8246a208801370300200541c0246a208701370300200541a8246a208401370300200541a0246a20830137030020054188246a20800137030020054180246a207f370300200541e8236a207c370300200541e0236a207b370300200541c8236a2078370300200541c0236a2077370300200541a8236a2074370300200541a0236a207337030020054188236a207037030020054180236a206f370300200541e8226a206c370300200541e0226a206b370300200541c8226a2068370300200541c0226a2067370300200541a8226a2064370300200541a0226a206337030020054188226a206037030020054180226a205f370300200541a0256a20930137030020054190256a209101370300200541f0246a208d01370300200541d0246a208901370300200541b0246a20850137030020054190246a208101370300200541f0236a207d370300200541d0236a2079370300200541b0236a207537030020054190236a2071370300200541f0226a206d370300200541d0226a2069370300200541b0226a206537030020054190226a206137030020054198256a209201370300200541f8246a208e01370300200541d8246a208a01370300200541b8246a20860137030020054198246a208201370300200541f8236a207e370300200541d8236a207a370300200541b8236a207637030020054198236a2072370300200541f8226a206e370300200541d8226a206a370300200541b8226a206637030020054198226a2062370300200541f8216a205e370300200520043703e0212005200c3703e8212005205d3703f021200541e0216a109c01200042013703002000410c360208200541981e6a109c010b200910960120091030200a450d07200541d01a6a109c0120054188176a109c010c070b200041086a200541cc0f6a41b8071085051a200042013703000b200541d00b6a109c010240200e450d00200e4198046c2102200f21000340200010a00120004198046a2100200241e87b6a22020d000b0b0240200d450d00200d4198046c450d00200f10300b200541d8076a109c0102402006450d00200641f8036c21022007210003402000109a01200041f8036a2100200241887c6a22020d000b0b200b450d04200b41f8036c450d04200710300c040b2000420137030020004104360208200541286a109c0141012107410121080c170b200042013703002000421537030820021096010c1d0b200541d01a6a200541d8076a41047241dc001085051a0c0e0b200042013703002000410d360208410121000c0e0b200541981e6a109c014100210241012107410121084101210a41012109410121030c160b4100210a41012107410121080c130b20131030410021020c020b410021020c010b20181030410021020b4100210841012107410121060c0d0b201d10300c050b202210300c040b202710300c030b202c10300c020b203010300c010b203410300b410021084101210741012106410021020c060b200541e0216a200541d01a6a41dc001085051a200541981e6a410472200541e0216a41dc001085051a200520023602981e200541c80f6a200541d00b6a41c8031085051a200541e0216a200541c80f6a200a10e1030240024020052802e0214101460d0020054188176a41086a220a200541f4216a29020037030020054188176a41106a2209200541fc216a29020037030020054188176a41186a220820054184226a2802003602002005200541ec216a29020037038817200541e0216a41086a280200210720054188226a280200210220052802e4212106200541e0216a200541981e6a10e101024020052903e021220c2004580d00200042013703002000411336020820022002280200417f6a220036020020000d022002280208200228020c2802001102000240200228020c280204450d00200228020810300b200241046a22002000280200417f6a220036020020000d02200210300c020b200541e0216a200541981e6a41e0001085051a200541d01a6a41086a200529038817370300200541d01a6a41106a200a290300370300200541d01a6a41186a2009290300370300200541f01a6a2008280200360200200520073602d41a200520063602d01a200520023602f41a200541c80f6a200541e0216a200541d01a6a10e2012003427f2003290300225d4200200c200541c80f6a41106a290300200c20052802d00f1b7d22042004200c561b22047c220c200c205d541b3703000240200541bc086a280200450d0020052802b80810300b410021084101210b41012107410021060c060b200541c80f6a200541e8216a41c8031085051a200541c80f6a109c01200042013703002000410e3602080b200541981e6a10b202410021000b0240200541bc086a280200450d0020052802b80810300b02402000450d00200541d00b6a109c010b4100210941012107410121084101210a0c070b2008200a460d000340200a109a012008200a41f8036a220a470d000b0b0240200d450d00200d41f8036c450d00200b10300b200541981e6a109c01200541d01a6a109c014200210441012107410021084100210b0b410121060b410121020b4101210a410121090c050b4101210a0b410121090b41012103410121020b410121000b0240024002400240024002400240024020052d00f0030e0b000102030405060a0a0a070a0b2007450d090240200541fc036a2802002202450d00200541f4036a2802002100200241f8036c210203402000109a01200041f8036a2100200241887c6a22020d000b0b0240200541f8036a2802002200450d00200041f8036c450d0020052802f40310300b20054180046a28020020054188046a28020010a40120054184046a2802002200450d0920004198046c450d0920052802800410300c090b2008450d080240200541fc036a2802002202450d00200541f4036a2802002100200241f8036c210203402000109a01200041f8036a2100200241887c6a22020d000b0b0240200541f8036a2802002200450d00200041f8036c450d0020052802f40310300b20054180046a28020020054188046a28020010a40120054184046a2802002200450d0820004198046c450d0820052802800410300c080b2003450d070240200541fc036a2802002202450d00200541f4036a2802002100200241f8036c210203402000109a01200041f8036a2100200241887c6a22020d000b0b0240200541f8036a2802002200450d00200041f8036c450d0020052802f40310300b20054180046a28020020054188046a28020010a40120054184046a2802002200450d0720004198046c450d0720052802800410300c070b0240200541fc036a2802002202450d00200541f4036a2802002100200241f8036c210203402000109a01200041f8036a2100200241887c6a22020d000b0b200541f8036a2802002200450d06200041f8036c450d0620052802f40310300c060b2000450d050240200541fc036a2802002202450d00200541f4036a2802002100200241f8036c210203402000109a01200041f8036a2100200241887c6a22020d000b0b0240200541f8036a2802002200450d00200041f8036c450d0020052802f40310300b20054180046a109c010c050b2002450d040240200541fc036a2802002202450d00200541f4036a2802002100200241f8036c210203402000109a01200041f8036a2100200241887c6a22020d000b0b0240200541f8036a2802002200450d00200041f8036c450d0020052802f40310300b20054190046a109c01024020054188046a2802002202450d0020054180046a280200210020024198046c21020340200010a00120004198046a2100200241e87b6a22020d000b0b20054184046a2802002200450d0420004198046c450d0420052802800410300c040b2009450d030240200541e4046a280200450d00200541e0046a28020010300b2005280280044102460d0320054180046a10b2020c030b200a450d02200541f8036a109c01200541f4036a2200280200109601200028020010300c020b410121030b02400240024002400240024002400240024020052d00f0030e0b0001020304050608080807080b2003450d070240200541fc036a2802002203450d00200541f4036a2802002102200341f8036c210303402002109a01200241f8036a2102200341887c6a22030d000b0b0240200541f8036a2802002202450d00200241f8036c450d0020052802f40310300b20054180046a28020020054188046a28020010a40120054184046a2802002202450d0720024198046c450d0720052802800410300c070b2009450d060240200541fc036a2802002203450d00200541f4036a2802002102200341f8036c210303402002109a01200241f8036a2102200341887c6a22030d000b0b0240200541f8036a2802002202450d00200241f8036c450d0020052802f40310300b20054180046a28020020054188046a28020010a40120054184046a2802002202450d0620024198046c450d0620052802800410300c060b2007450d050240200541fc036a2802002203450d00200541f4036a2802002102200341f8036c210303402002109a01200241f8036a2102200341887c6a22030d000b0b0240200541f8036a2802002202450d00200241f8036c450d0020052802f40310300b20054180046a28020020054188046a28020010a40120054184046a2802002202450d0520024198046c450d0520052802800410300c050b2002450d040240200541fc036a2802002203450d00200541f4036a2802002102200341f8036c210303402002109a01200241f8036a2102200341887c6a22030d000b0b200541f8036a2802002202450d04200241f8036c450d0420052802f40310300c040b200b450d030240200541fc036a2802002203450d00200541f4036a2802002102200341f8036c210303402002109a01200241f8036a2102200341887c6a22030d000b0b0240200541f8036a2802002202450d00200241f8036c450d0020052802f40310300b20054180046a109c010c030b0240200541fc036a2802002203450d00200541f4036a2802002102200341f8036c210303402002109a01200241f8036a2102200341887c6a22030d000b0b0240200541f8036a2802002202450d00200241f8036c450d0020052802f40310300b20054190046a109c01024020054188046a2802002203450d0020054180046a280200210220034198046c21030340200210a00120024198046a2102200341e87b6a22030d000b0b20054184046a2802002202450d0220024198046c450d0220052802800410300c020b2006450d010240200541e4046a280200450d00200541e0046a28020010300b2005280280044102460d0120054180046a10b2020c010b200a450d00200541f8036a109c01200541f4036a2202280200109601200228020010300b024020080d0020004200370300200020043703080c010b200541d00b6a41106a200541106a41106a290300370300200541d00b6a41086a200541106a41086a290300370300200520052903103703d00b2008200c422088a74198046c22026a2109200ca7210b0240024020020d00200821020c010b200241e87b6a2103200541e0216a41106a2107200541286a41017221062008210202400240034020022d0000220a4108460d022005200a3a00282006200241016a4197041085051a200541e0216a2001200541d00b6a200541286a10e20320052903e821215d20052903e021210c200541c80f6a200741b0071085051a200c4201510d01200341e87b6a2103205d20047c210420024198046a22022009470d000b200921020c020b200041106a200541c80f6a41b0071085051a200042013703002000205d37030820024198046a20034198046d10a4010240200b450d00200b4198046c450d00200810300b200541d00b6a10dc03200541d00b6a41106a22022802002100200241003602002000450d02024020052802dc0b2202450d00034020002802b02b21002002417f6a22020d000b0b200541003602e821200520003602e421200541003602e0212005200541e40b6a2802003602ec21200541e0216a10dd030c020b20024198046a21020b2002200920026b4198046d10a4010240200b450d00200b4198046c450d00200810300b200541d00b6a10dc03200541e00b6a220328020021022003410036020002402002450d00024020052802dc0b2203450d00034020022802b02b21022003417f6a22030d000b0b200541003602e821200520023602e421200541003602e0212005200541e40b6a2802003602ec21200541e0216a10dd030b20004200370300200020043703080b2001109c01200541a0296a24000bfc2b01017f230041c0036b22022400024002400240024002400240024002400240024020012802000e09010203040506070800010b2002200141086a10f101200241386a200141c0006a10f101200241f0006a200141f8006a10f101200241a8016a200141b0016a10f101200241e0016a200141e8016a10f10120024198026a200141a0026a10f101200241d0026a200141d8026a10f10120024188036a20014190036a10f101200041386a200241306a290300370300200041306a200241286a290300370300200041286a200241206a290300370300200041206a200241186a290300370300200041186a200241106a290300370300200041106a200241086a29030037030020002002290300370308200041c0006a2002290338370300200041c8006a200241386a41086a290300370300200041d0006a200241386a41106a290300370300200041d8006a200241386a41186a290300370300200041e0006a200241386a41206a290300370300200041e8006a200241386a41286a290300370300200041f0006a200241386a41306a290300370300200041a8016a200241f0006a41306a290300370300200041a0016a200241f0006a41286a29030037030020004198016a200241f0006a41206a29030037030020004190016a200241f0006a41186a29030037030020004188016a200241f0006a41106a29030037030020004180016a200241f0006a41086a290300370300200041f8006a2002290370370300200041e0016a200241a8016a41306a290300370300200041d8016a200241a8016a41286a290300370300200041d0016a200241a8016a41206a290300370300200041c8016a200241a8016a41186a290300370300200041c0016a200241a8016a41106a290300370300200041b8016a200241a8016a41086a290300370300200041b0016a20022903a80137030020004198026a200241e0016a41306a29030037030020004190026a200241e0016a41286a29030037030020004188026a200241e0016a41206a29030037030020004180026a200241e0016a41186a290300370300200041f8016a200241e0016a41106a290300370300200041f0016a200241e0016a41086a290300370300200041e8016a20022903e001370300200041d0026a20024198026a41306a290300370300200041c8026a20024198026a41286a290300370300200041c0026a20024198026a41206a290300370300200041b8026a20024198026a41186a290300370300200041b0026a20024198026a41106a290300370300200041a8026a20024198026a41086a290300370300200041a0026a20022903980237030020004188036a200241d0026a41306a29030037030020004180036a200241d0026a41286a290300370300200041f8026a200241d0026a41206a290300370300200041f0026a200241d0026a41186a290300370300200041e8026a200241d0026a41106a290300370300200041e0026a200241d0026a41086a290300370300200041d8026a20022903d002370300200041c0036a20024188036a41306a290300370300200041b8036a20024188036a41286a290300370300200041b0036a20024188036a41206a290300370300200041a8036a20024188036a41186a290300370300200041a0036a20024188036a41106a29030037030020004198036a20024188036a41086a29030037030020004190036a200229038803370300200042083703000c080b200042003703000c070b20024188036a200141086a10f10120004201370300200041386a20024188036a41306a290300370300200041306a20024188036a41286a290300370300200041286a20024188036a41206a290300370300200041206a20024188036a41186a290300370300200041186a20024188036a41106a290300370300200041106a20024188036a41086a29030037030020002002290388033703080c060b200241d0026a200141086a10f10120024188036a200141c0006a10f101200041386a200241d0026a41306a290300370300200041306a200241d0026a41286a290300370300200041286a200241d0026a41206a290300370300200041206a200241d0026a41186a290300370300200041186a200241d0026a41106a290300370300200041106a200241d0026a41086a290300370300200020022903d002370308200041c0006a200229038803370300200041c8006a20024188036a41086a290300370300200041d0006a20024188036a41106a290300370300200041d8006a20024188036a41186a290300370300200041e0006a20024188036a41206a290300370300200041e8006a20024188036a41286a290300370300200041f0006a20024188036a41306a290300370300200042023703000c050b20024198026a200141086a10f101200241d0026a200141c0006a10f10120024188036a200141f8006a10f101200041386a20024198026a41306a290300370300200041306a20024198026a41286a290300370300200041286a20024198026a41206a290300370300200041206a20024198026a41186a290300370300200041186a20024198026a41106a290300370300200041106a20024198026a41086a2903003703002000200229039802370308200041c0006a20022903d002370300200041c8006a200241d0026a41086a290300370300200041d0006a200241d0026a41106a290300370300200041d8006a200241d0026a41186a290300370300200041e0006a200241d0026a41206a290300370300200041e8006a200241d0026a41286a290300370300200041f0006a200241d0026a41306a29030037030020004203370300200041a8016a20024188036a41306a290300370300200041a0016a20024188036a41286a29030037030020004198016a20024188036a41206a29030037030020004190016a20024188036a41186a29030037030020004188016a20024188036a41106a29030037030020004180016a20024188036a41086a290300370300200041f8006a2002290388033703000c040b200241e0016a200141086a10f10120024198026a200141c0006a10f101200241d0026a200141f8006a10f10120024188036a200141b0016a10f101200041386a200241e0016a41306a290300370300200041306a200241e0016a41286a290300370300200041286a200241e0016a41206a290300370300200041206a200241e0016a41186a290300370300200041186a200241e0016a41106a290300370300200041106a200241e0016a41086a290300370300200020022903e001370308200041c0006a200229039802370300200041c8006a20024198026a41086a290300370300200041d0006a20024198026a41106a290300370300200041d8006a20024198026a41186a290300370300200041e0006a20024198026a41206a290300370300200041e8006a20024198026a41286a290300370300200041f0006a20024198026a41306a290300370300200041a8016a200241d0026a41306a290300370300200041a0016a200241d0026a41286a29030037030020004198016a200241d0026a41206a29030037030020004190016a200241d0026a41186a29030037030020004188016a200241d0026a41106a29030037030020004180016a200241d0026a41086a290300370300200041f8006a20022903d002370300200041e0016a20024188036a41306a290300370300200041d8016a20024188036a41286a290300370300200041d0016a20024188036a41206a290300370300200041c8016a20024188036a41186a290300370300200041c0016a20024188036a41106a290300370300200041b8016a20024188036a41086a290300370300200041b0016a200229038803370300200042043703000c030b200241a8016a200141086a10f101200241e0016a200141c0006a10f10120024198026a200141f8006a10f101200241d0026a200141b0016a10f10120024188036a200141e8016a10f101200041386a200241a8016a41306a290300370300200041306a200241a8016a41286a290300370300200041286a200241a8016a41206a290300370300200041206a200241a8016a41186a290300370300200041186a200241a8016a41106a290300370300200041106a200241a8016a41086a290300370300200020022903a801370308200041c0006a20022903e001370300200041c8006a200241e0016a41086a290300370300200041d0006a200241e0016a41106a290300370300200041d8006a200241e0016a41186a290300370300200041e0006a200241e0016a41206a290300370300200041e8006a200241e0016a41286a290300370300200041f0006a200241e0016a41306a290300370300200041a8016a20024198026a41306a290300370300200041a0016a20024198026a41286a29030037030020004198016a20024198026a41206a29030037030020004190016a20024198026a41186a29030037030020004188016a20024198026a41106a29030037030020004180016a20024198026a41086a290300370300200041f8006a200229039802370300200041e0016a200241d0026a41306a290300370300200041d8016a200241d0026a41286a290300370300200041d0016a200241d0026a41206a290300370300200041c8016a200241d0026a41186a290300370300200041c0016a200241d0026a41106a290300370300200041b8016a200241d0026a41086a290300370300200041b0016a20022903d00237030020004198026a20024188036a41306a29030037030020004190026a20024188036a41286a29030037030020004188026a20024188036a41206a29030037030020004180026a20024188036a41186a290300370300200041f8016a20024188036a41106a290300370300200041f0016a20024188036a41086a290300370300200041e8016a200229038803370300200042053703000c020b200241f0006a200141086a10f101200241a8016a200141c0006a10f101200241e0016a200141f8006a10f10120024198026a200141b0016a10f101200241d0026a200141e8016a10f10120024188036a200141a0026a10f101200041386a200241f0006a41306a290300370300200041306a200241f0006a41286a290300370300200041286a200241f0006a41206a290300370300200041206a200241f0006a41186a290300370300200041186a200241f0006a41106a290300370300200041106a200241f0006a41086a29030037030020002002290370370308200041c0006a20022903a801370300200041c8006a200241a8016a41086a290300370300200041d0006a200241a8016a41106a290300370300200041d8006a200241a8016a41186a290300370300200041e0006a200241a8016a41206a290300370300200041e8006a200241a8016a41286a290300370300200041f0006a200241a8016a41306a290300370300200041a8016a200241e0016a41306a290300370300200041a0016a200241e0016a41286a29030037030020004198016a200241e0016a41206a29030037030020004190016a200241e0016a41186a29030037030020004188016a200241e0016a41106a29030037030020004180016a200241e0016a41086a290300370300200041f8006a20022903e001370300200041e0016a20024198026a41306a290300370300200041d8016a20024198026a41286a290300370300200041d0016a20024198026a41206a290300370300200041c8016a20024198026a41186a290300370300200041c0016a20024198026a41106a290300370300200041b8016a20024198026a41086a290300370300200041b0016a20022903980237030020004198026a200241d0026a41306a29030037030020004190026a200241d0026a41286a29030037030020004188026a200241d0026a41206a29030037030020004180026a200241d0026a41186a290300370300200041f8016a200241d0026a41106a290300370300200041f0016a200241d0026a41086a290300370300200041e8016a20022903d002370300200041d0026a20024188036a41306a290300370300200041c8026a20024188036a41286a290300370300200041c0026a20024188036a41206a290300370300200041b8026a20024188036a41186a290300370300200041b0026a20024188036a41106a290300370300200041a8026a20024188036a41086a290300370300200041a0026a200229038803370300200042063703000c010b200241386a200141086a10f101200241f0006a200141c0006a10f101200241a8016a200141f8006a10f101200241e0016a200141b0016a10f10120024198026a200141e8016a10f101200241d0026a200141a0026a10f10120024188036a200141d8026a10f101200041386a200241386a41306a290300370300200041306a200241386a41286a290300370300200041286a200241386a41206a290300370300200041206a200241386a41186a290300370300200041186a200241386a41106a290300370300200041106a200241386a41086a29030037030020002002290338370308200041c0006a2002290370370300200041c8006a200241f0006a41086a290300370300200041d0006a200241f0006a41106a290300370300200041d8006a200241f0006a41186a290300370300200041e0006a200241f0006a41206a290300370300200041e8006a200241f0006a41286a290300370300200041f0006a200241f0006a41306a290300370300200041a8016a200241a8016a41306a290300370300200041a0016a200241a8016a41286a29030037030020004198016a200241a8016a41206a29030037030020004190016a200241a8016a41186a29030037030020004188016a200241a8016a41106a29030037030020004180016a200241a8016a41086a290300370300200041f8006a20022903a801370300200041e0016a200241e0016a41306a290300370300200041d8016a200241e0016a41286a290300370300200041d0016a200241e0016a41206a290300370300200041c8016a200241e0016a41186a290300370300200041c0016a200241e0016a41106a290300370300200041b8016a200241e0016a41086a290300370300200041b0016a20022903e00137030020004198026a20024198026a41306a29030037030020004190026a20024198026a41286a29030037030020004188026a20024198026a41206a29030037030020004180026a20024198026a41186a290300370300200041f8016a20024198026a41106a290300370300200041f0016a20024198026a41086a290300370300200041e8016a200229039802370300200041d0026a200241d0026a41306a290300370300200041c8026a200241d0026a41286a290300370300200041c0026a200241d0026a41206a290300370300200041b8026a200241d0026a41186a290300370300200041b0026a200241d0026a41106a290300370300200041a8026a200241d0026a41086a290300370300200041a0026a20022903d00237030020004188036a20024188036a41306a29030037030020004180036a20024188036a41286a290300370300200041f8026a20024188036a41206a290300370300200041f0026a20024188036a41186a290300370300200041e8026a20024188036a41106a290300370300200041e0026a20024188036a41086a290300370300200041d8026a200229038803370300200042073703000b200241c0036a24000bc404020a7f027e230041b0076b22012400200028020421022000410036020402402002450d00024020002802002203450d00034020022802a82921022003417f6a22030d000b0b024020002802082204450d00200141d8036a2105200141d0036a410472210641002107200141a8076a210803400240024002400240200720022f01a629490d0041002100034041002103024020022802a0292209450d00200041016a210a20022f01a4292107200921030b024041d82941a82920001b450d00200210300b024020030d00410221030c050b200a210020032102200720032f01a6294f0d000b2003200741d0036c6a2100200320074104746a220241f8276a290300210b200241f0276a290300210c0240200a0d00200321020c020b200741027420036a41ac296a28020021020240200a417f6a2203450d00034020022802a82921022003417f6a22030d000b0b410021070c020b2002200741d0036c6a2100200220074104746a220341f8276a290300210b200341f0276a290300210c0b200741016a21070b20002802002103200141d0036a200041046a41cc031085051a0b2004417f6a2104200141046a200141d0036a41cc031085051a200120033602d0032006200141046a41cc031085051a2008200b3703002001200c3703a007024020030d002005109c0120040d010c020b024020012802d803450d0020012802d40310300b20040d000b0b41002103034020022802a0292100024041d82941a82920031b450d00200210300b2003417f6a21032000210220000d000b0b200141b0076a24000bfc0301097f230041f0076b220124000240200028020c2202450d0020014180046a2103200141f8036a4104722104034020002002417f6a36020c2000280200210502400240024020002802082206200028020422022f01ae2b4f0d00200521070c010b2002210803400240024020082802a82b22090d00410021020c010b200541016a210720022f01ac2b2106200921020b024041e02b41b02b20051b450d00200810300b024020020d00410221050c030b2007210520022108200620022f01ae2b4f0d000b0b200641016a21082002200641f8036c6a210602402007450d00200220084102746a41b02b6a280200210202402007417f6a2205450d00034020022802b02b21022005417f6a22050d000b0b410021080b20062802002105200141f8036a200641046a41f4031085051a0b200141046a200141f8036a41f4031085051a200020083602082000200236020420004100360200200120053602f8032004200141046a41f4031085051a0240024020050d002003109c010c010b200128028004450d0020012802fc0310300b024020012d00c8074106490d0020012802d007450d0020012802cc0710300b200028020c22020d000b0b2000280204210820002802002102034020082802a82b2105024041e02b41b02b20021b450d00200810300b200241016a21022005210820050d000b200141f0076a24000bd40301067f23004180046b2202240020004200370204200041106a4200370200200128020022032001280208220441f8036c6a21052001280204210620032107024002402004450d00200241086a4104722104200321010340024020012802002207410c470d00200141f8036a21070c020b200220073602082004200141046a41f4031085051a2000200241086a10ed03200141f8036a22012005470d000c020b0b20052007460d0003402007220141f8036a210702400240024002400240024002400240024020012802000e0b0808080800010203040506070b200141086a280200450d07200141046a28020010300c070b200141086a280200450d06200141046a28020010300c060b200141086a109c010c050b200141086a109c010c040b200141086a280200450d03200141046a28020010300c030b0240200141086a280200450d00200141046a28020010300b200141106a2d00004106490d02200141186a280200450d02200141146a28020010300c020b200141086a109c010c010b200141086a109c01200141d0036a2d00004106490d00200141d8036a280200450d00200141d4036a28020010300b20052007470d000b0b02402006450d00200641f8036c450d00200310300b20024180046a24000b935403037f017e4c7f230041a00a6b2202240041002103024020002802002204410b4b0d00410120047441c01971450d00200041086a2100024002400240024002400240024002400240024020012802000e09010203040506070800010b20024198076a200141086a10f101200241d0076a200141c0006a10f10120024188086a200141f8006a10f101200241c0086a200141b0016a10f101200241f8086a200141e8016a10f101200241b0096a200141a0026a10f101200241e8096a200141d8026a10f101200241086a20014190036a10f10120024188046a20024198076a41306a290300370300200241d0036a41306a20024198076a41286a290300370300200241d0036a41286a20024198076a41206a290300370300200241d0036a41206a20024198076a41186a290300370300200241d0036a41186a20024198076a41106a290300370300200241d0036a41106a20024198076a41086a290300370300200241d0036a41c0006a20022903d00737030020024198046a200241d0076a41086a290300370300200241a0046a200241d0076a41106a290300370300200241a8046a200241d0076a41186a290300370300200241b0046a200241d0076a41206a290300370300200241b8046a200241d0076a41286a290300370300200241c0046a200241d0076a41306a29030037030020022002290398073703d803200241f8046a20024188086a41306a290300370300200241f0046a20024188086a41286a290300370300200241e8046a20024188086a41206a290300370300200241e0046a20024188086a41186a290300370300200241d8046a20024188086a41106a290300370300200241d0046a20024188086a41086a290300370300200241d0036a41f8006a200229038808370300200241b0056a200241c0086a41306a290300370300200241a8056a200241c0086a41286a290300370300200241a0056a200241c0086a41206a29030037030020024198056a200241c0086a41186a29030037030020024190056a200241c0086a41106a29030037030020024188056a200241c0086a41086a290300370300200241d0036a41b0016a20022903c008370300200241e8056a200241f8086a41306a290300370300200241e0056a200241f8086a41286a290300370300200241d8056a200241f8086a41206a290300370300200241d0056a200241f8086a41186a290300370300200241c8056a200241f8086a41106a290300370300200241c0056a200241f8086a41086a290300370300200241d0036a41e8016a20022903f808370300200241a0066a200241b0096a41306a29030037030020024198066a200241b0096a41286a29030037030020024190066a200241b0096a41206a29030037030020024188066a200241b0096a41186a29030037030020024180066a200241b0096a41106a290300370300200241f8056a200241b0096a41086a290300370300200241d0036a41a0026a20022903b009370300200241d8066a200241e8096a41306a290300370300200241d0066a200241e8096a41286a290300370300200241c8066a200241e8096a41206a290300370300200241c0066a200241e8096a41186a290300370300200241b8066a200241e8096a41106a290300370300200241b0066a200241e8096a41086a290300370300200241d0036a41d8026a20022903e80937030020024190076a200241086a41306a29030037030020024188076a200241086a41286a29030037030020024180076a200241086a41206a290300370300200241f8066a200241086a41186a290300370300200241f0066a200241086a41106a290300370300200241e8066a200241086a41086a290300370300200241d0036a4190036a2002290308370300200242083703d0030c080b200242003703d0030c070b200241086a200141086a10f10120024188046a200241086a41306a290300370300200241d0036a41306a200241086a41286a290300370300200241d0036a41286a200241086a41206a290300370300200241d0036a41206a200241086a41186a290300370300200241d0036a41186a200241086a41106a290300370300200241d0036a41106a200241086a41086a290300370300200242013703d003200220022903083703d8030c060b200241e8096a200141086a10f101200241086a200141c0006a10f10120024188046a200241e8096a41306a290300370300200241d0036a41306a200241e8096a41286a290300370300200241d0036a41286a200241e8096a41206a290300370300200241d0036a41206a200241e8096a41186a290300370300200241d0036a41186a200241e8096a41106a290300370300200241d0036a41106a200241e8096a41086a290300370300200241d0036a41c0006a200229030837030020024198046a200241086a41086a290300370300200241a0046a200241086a41106a290300370300200241a8046a200241086a41186a290300370300200241b0046a200241086a41206a290300370300200241b8046a200241086a41286a290300370300200241c0046a200241086a41306a290300370300200220022903e8093703d803200242023703d0030c050b200241b0096a200141086a10f101200241e8096a200141c0006a10f101200241086a200141f8006a10f10120024188046a200241b0096a41306a290300370300200241d0036a41306a200241b0096a41286a290300370300200241d0036a41286a200241b0096a41206a290300370300200241d0036a41206a200241b0096a41186a290300370300200241d0036a41186a200241b0096a41106a290300370300200241d0036a41106a200241b0096a41086a290300370300200241d0036a41c0006a20022903e80937030020024198046a200241e8096a41086a290300370300200241a0046a200241e8096a41106a290300370300200241a8046a200241e8096a41186a290300370300200241b0046a200241e8096a41206a290300370300200241b8046a200241e8096a41286a290300370300200241c0046a200241e8096a41306a290300370300200220022903b0093703d803200241f8046a200241086a41306a290300370300200241f0046a200241086a41286a290300370300200241e8046a200241086a41206a290300370300200241e0046a200241086a41186a290300370300200241d8046a200241086a41106a290300370300200241d0046a200241086a41086a290300370300200241d0036a41f8006a2002290308370300200242033703d0030c040b200241f8086a200141086a10f101200241b0096a200141c0006a10f101200241e8096a200141f8006a10f101200241086a200141b0016a10f10120024188046a200241f8086a41306a290300370300200241d0036a41306a200241f8086a41286a290300370300200241d0036a41286a200241f8086a41206a290300370300200241d0036a41206a200241f8086a41186a290300370300200241d0036a41186a200241f8086a41106a290300370300200241d0036a41106a200241f8086a41086a290300370300200241d0036a41c0006a20022903b00937030020024198046a200241b0096a41086a290300370300200241a0046a200241b0096a41106a290300370300200241a8046a200241b0096a41186a290300370300200241b0046a200241b0096a41206a290300370300200241b8046a200241b0096a41286a290300370300200241c0046a200241b0096a41306a290300370300200220022903f8083703d803200241f8046a200241e8096a41306a290300370300200241f0046a200241e8096a41286a290300370300200241e8046a200241e8096a41206a290300370300200241e0046a200241e8096a41186a290300370300200241d8046a200241e8096a41106a290300370300200241d0046a200241e8096a41086a290300370300200241d0036a41f8006a20022903e809370300200241b0056a200241086a41306a290300370300200241a8056a200241086a41286a290300370300200241a0056a200241086a41206a29030037030020024198056a200241086a41186a29030037030020024190056a200241086a41106a29030037030020024188056a200241086a41086a290300370300200241d0036a41b0016a2002290308370300200242043703d0030c030b200241c0086a200141086a10f101200241f8086a200141c0006a10f101200241b0096a200141f8006a10f101200241e8096a200141b0016a10f101200241086a200141e8016a10f10120024188046a200241c0086a41306a290300370300200241d0036a41306a200241c0086a41286a290300370300200241d0036a41286a200241c0086a41206a290300370300200241d0036a41206a200241c0086a41186a290300370300200241d0036a41186a200241c0086a41106a290300370300200241d0036a41106a200241c0086a41086a290300370300200241d0036a41c0006a20022903f80837030020024198046a200241f8086a41086a290300370300200241a0046a200241f8086a41106a290300370300200241a8046a200241f8086a41186a290300370300200241b0046a200241f8086a41206a290300370300200241b8046a200241f8086a41286a290300370300200241c0046a200241f8086a41306a290300370300200220022903c0083703d803200241f8046a200241b0096a41306a290300370300200241f0046a200241b0096a41286a290300370300200241e8046a200241b0096a41206a290300370300200241e0046a200241b0096a41186a290300370300200241d8046a200241b0096a41106a290300370300200241d0046a200241b0096a41086a290300370300200241d0036a41f8006a20022903b009370300200241b0056a200241e8096a41306a290300370300200241a8056a200241e8096a41286a290300370300200241a0056a200241e8096a41206a29030037030020024198056a200241e8096a41186a29030037030020024190056a200241e8096a41106a29030037030020024188056a200241e8096a41086a290300370300200241d0036a41b0016a20022903e809370300200241e8056a200241086a41306a290300370300200241e0056a200241086a41286a290300370300200241d8056a200241086a41206a290300370300200241d0056a200241086a41186a290300370300200241c8056a200241086a41106a290300370300200241c0056a200241086a41086a290300370300200241d0036a41e8016a2002290308370300200242053703d0030c020b20024188086a200141086a10f101200241c0086a200141c0006a10f101200241f8086a200141f8006a10f101200241b0096a200141b0016a10f101200241e8096a200141e8016a10f101200241086a200141a0026a10f10120024188046a20024188086a41306a290300370300200241d0036a41306a20024188086a41286a290300370300200241d0036a41286a20024188086a41206a290300370300200241d0036a41206a20024188086a41186a290300370300200241d0036a41186a20024188086a41106a290300370300200241d0036a41106a20024188086a41086a290300370300200241d0036a41c0006a20022903c00837030020024198046a200241c0086a41086a290300370300200241a0046a200241c0086a41106a290300370300200241a8046a200241c0086a41186a290300370300200241b0046a200241c0086a41206a290300370300200241b8046a200241c0086a41286a290300370300200241c0046a200241c0086a41306a29030037030020022002290388083703d803200241f8046a200241f8086a41306a290300370300200241f0046a200241f8086a41286a290300370300200241e8046a200241f8086a41206a290300370300200241e0046a200241f8086a41186a290300370300200241d8046a200241f8086a41106a290300370300200241d0046a200241f8086a41086a290300370300200241d0036a41f8006a20022903f808370300200241b0056a200241b0096a41306a290300370300200241a8056a200241b0096a41286a290300370300200241a0056a200241b0096a41206a29030037030020024198056a200241b0096a41186a29030037030020024190056a200241b0096a41106a29030037030020024188056a200241b0096a41086a290300370300200241d0036a41b0016a20022903b009370300200241e8056a200241e8096a41306a290300370300200241e0056a200241e8096a41286a290300370300200241d8056a200241e8096a41206a290300370300200241d0056a200241e8096a41186a290300370300200241c8056a200241e8096a41106a290300370300200241c0056a200241e8096a41086a290300370300200241d0036a41e8016a20022903e809370300200241a0066a200241086a41306a29030037030020024198066a200241086a41286a29030037030020024190066a200241086a41206a29030037030020024188066a200241086a41186a29030037030020024180066a200241086a41106a290300370300200241f8056a200241086a41086a290300370300200241d0036a41a0026a2002290308370300200242063703d0030c010b200241d0076a200141086a10f10120024188086a200141c0006a10f101200241c0086a200141f8006a10f101200241f8086a200141b0016a10f101200241b0096a200141e8016a10f101200241e8096a200141a0026a10f101200241086a200141d8026a10f10120024188046a200241d0076a41306a290300370300200241d0036a41306a200241d0076a41286a290300370300200241d0036a41286a200241d0076a41206a290300370300200241d0036a41206a200241d0076a41186a290300370300200241d0036a41186a200241d0076a41106a290300370300200241d0036a41106a200241d0076a41086a290300370300200241d0036a41c0006a20022903880837030020024198046a20024188086a41086a290300370300200241a0046a20024188086a41106a290300370300200241a8046a20024188086a41186a290300370300200241b0046a20024188086a41206a290300370300200241b8046a20024188086a41286a290300370300200241c0046a20024188086a41306a290300370300200220022903d0073703d803200241f8046a200241c0086a41306a290300370300200241f0046a200241c0086a41286a290300370300200241e8046a200241c0086a41206a290300370300200241e0046a200241c0086a41186a290300370300200241d8046a200241c0086a41106a290300370300200241d0046a200241c0086a41086a290300370300200241d0036a41f8006a20022903c008370300200241b0056a200241f8086a41306a290300370300200241a8056a200241f8086a41286a290300370300200241a0056a200241f8086a41206a29030037030020024198056a200241f8086a41186a29030037030020024190056a200241f8086a41106a29030037030020024188056a200241f8086a41086a290300370300200241d0036a41b0016a20022903f808370300200241e8056a200241b0096a41306a290300370300200241e0056a200241b0096a41286a290300370300200241d8056a200241b0096a41206a290300370300200241d0056a200241b0096a41186a290300370300200241c8056a200241b0096a41106a290300370300200241c0056a200241b0096a41086a290300370300200241d0036a41e8016a20022903b009370300200241a0066a200241e8096a41306a29030037030020024198066a200241e8096a41286a29030037030020024190066a200241e8096a41206a29030037030020024188066a200241e8096a41186a29030037030020024180066a200241e8096a41106a290300370300200241f8056a200241e8096a41086a290300370300200241d0036a41a0026a20022903e809370300200241d8066a200241086a41306a290300370300200241d0066a200241086a41286a290300370300200241c8066a200241086a41206a290300370300200241c0066a200241086a41186a290300370300200241b8066a200241086a41106a290300370300200241b0066a200241086a41086a290300370300200241d0036a41d8026a2002290308370300200242073703d0030b200241086a2000200241d0036a10e0030240200229030822054209510d0020024188036a280200210620024180036a2802002107200241f8026a2802002108200241e8026a2802002109200241e0026a2d0000210a200241d0026a280200210b200241c8026a280200210c200241c0026a280200210d200241b0026a280200210e200241a8026a2d0000210f20024198026a280200211020024190026a280200211120024188026a2802002112200241f8016a2802002113200241f0016a2d00002114200241e0016a2802002115200241d8016a2802002116200241d0016a2802002117200241c0016a2802002118200241b8016a2d00002104200241a8016a2802002119200241a0016a280200211a20024198016a280200211b20024188016a280200211c20024180016a2d00002103200241f0006a280200211d200241e8006a280200211e200241e0006a280200211f200241d0006a2802002120200241c8006a2d00002100200241386a2802002121200241306a2802002122200241286a2802002123200241186a2802002124200228028c032125200228028403212620022802fc02212720022802ec02212820022802e402212920022802d402212a20022802cc02212b20022802c402212c20022802b402212d20022802ac02212e200228029c02212f2002280294022130200228028c02213120022802fc01213220022802f401213320022802e401213420022802dc01213520022802d401213620022802c401213720022802bc01213820022802ac01213920022802a401213a200228029c01213b200228028c01213c200228028401213d2002280274213e200228026c213f2002280264214020022802542141200228024c2142200228023c214320022802342144200228022c2145200228021c21462002280214214720022d00102101024002400240024002400240024002402005a70e080800010203040506070b0240024002400240024020010e090c0c0001020c0c030c040b20444101470d0b2043450d0b202110300c0b0b20474101470d0a2046450d0a202410300c0a0b20234101470d092022450d09204510300c090b2024450d08204710300c080b20474101470d072046450d07202410300c070b024002400240024002400240024020010e09060600010206060306040b20444101470d052043450d05202110300c050b20474101470d0420460d030c040b20234101470d032022450d03204510300c030b2024450d02204710300c020b20474101470d012046450d010b202410300b0240024002400240024020000e090b0b0001020b0b030b040b203f4101470d0a203e450d0a201d10300c0a0b20424101470d092041450d09202010300c090b201f4101470d08201e450d08204010300c080b2020450d07204210300c070b20424101470d062041450d06202010300c060b024002400240024002400240024020010e09060600010206060306040b20444101470d052043450d05202110300c050b20474101470d0420460d030c040b20234101470d032022450d03204510300c030b2024450d02204710300c020b20474101470d012046450d010b202410300b024002400240024002400240024020000e09060600010206060306040b203f4101470d05203e450d05201d10300c050b20424101470d0420410d030c040b201f4101470d03201e450d03204010300c030b2020450d02204210300c020b20424101470d012041450d010b202010300b0240024002400240024020030e090a0a0001020a0a030a040b203a4101470d092039450d09201910300c090b203d4101470d08203c450d08201c10300c080b201b4101470d07201a450d07203b10300c070b201c450d06203d10300c060b203d4101470d05203c450d05201c10300c050b024002400240024002400240024020010e09060600010206060306040b20444101470d052043450d05202110300c050b20474101470d0420460d030c040b20234101470d032022450d03204510300c030b2024450d02204710300c020b20474101470d012046450d010b202410300b024002400240024002400240024020000e09060600010206060306040b203f4101470d05203e450d05201d10300c050b20424101470d0420410d030c040b201f4101470d03201e450d03204010300c030b2020450d02204210300c020b20424101470d012041450d010b202010300b024002400240024002400240024020030e09060600010206060306040b203a4101470d052039450d05201910300c050b203d4101470d04203c0d030c040b201b4101470d03201a450d03203b10300c030b201c450d02203d10300c020b203d4101470d01203c450d010b201c10300b0240024002400240024020040e09090900010209090309040b20354101470d082034450d08201510300c080b20384101470d072037450d07201810300c070b20174101470d062016450d06203610300c060b2018450d05203810300c050b20384101470d042037450d04201810300c040b024002400240024002400240024020010e09060600010206060306040b20444101470d052043450d05202110300c050b20474101470d0420460d030c040b20234101470d032022450d03204510300c030b2024450d02204710300c020b20474101470d012046450d010b202410300b024002400240024002400240024020000e09060600010206060306040b203f4101470d05203e450d05201d10300c050b20424101470d0420410d030c040b201f4101470d03201e450d03204010300c030b2020450d02204210300c020b20424101470d012041450d010b202010300b024002400240024002400240024020030e09060600010206060306040b203a4101470d052039450d05201910300c050b203d4101470d04203c0d030c040b201b4101470d03201a450d03203b10300c030b201c450d02203d10300c020b203d4101470d01203c450d010b201c10300b024002400240024002400240024020040e09060600010206060306040b20354101470d052034450d05201510300c050b20384101470d0420370d030c040b20174101470d032016450d03203610300c030b2018450d02203810300c020b20384101470d012037450d010b201810300b0240024002400240024020140e09080800010208080308040b20304101470d07202f450d07201010300c070b20334101470d062032450d06201310300c060b20124101470d052011450d05203110300c050b2013450d04203310300c040b20334101470d032032450d03201310300c030b024002400240024002400240024020010e09060600010206060306040b20444101470d052043450d05202110300c050b20474101470d0420460d030c040b20234101470d032022450d03204510300c030b2024450d02204710300c020b20474101470d012046450d010b202410300b024002400240024002400240024020000e09060600010206060306040b203f4101470d05203e450d05201d10300c050b20424101470d0420410d030c040b201f4101470d03201e450d03204010300c030b2020450d02204210300c020b20424101470d012041450d010b202010300b024002400240024002400240024020030e09060600010206060306040b203a4101470d052039450d05201910300c050b203d4101470d04203c0d030c040b201b4101470d03201a450d03203b10300c030b201c450d02203d10300c020b203d4101470d01203c450d010b201c10300b024002400240024002400240024020040e09060600010206060306040b20354101470d052034450d05201510300c050b20384101470d0420370d030c040b20174101470d032016450d03203610300c030b2018450d02203810300c020b20384101470d012037450d010b201810300b024002400240024002400240024020140e09060600010206060306040b20304101470d05202f450d05201010300c050b20334101470d0420320d030c040b20124101470d032011450d03203110300c030b2013450d02203310300c020b20334101470d012032450d010b201310300b02400240024002400240200f0e09070700010207070307040b202b4101470d06202a450d06200b10300c060b202e4101470d05202d450d05200e10300c050b200d4101470d04200c450d04202c10300c040b200e450d03202e10300c030b202e4101470d02202d450d02200e10300c020b024002400240024002400240024020010e09060600010206060306040b20444101470d052043450d05202110300c050b20474101470d0420460d030c040b20234101470d032022450d03204510300c030b2024450d02204710300c020b20474101470d012046450d010b202410300b024002400240024002400240024020000e09060600010206060306040b203f4101470d05203e450d05201d10300c050b20424101470d0420410d030c040b201f4101470d03201e450d03204010300c030b2020450d02204210300c020b20424101470d012041450d010b202010300b024002400240024002400240024020030e09060600010206060306040b203a4101470d052039450d05201910300c050b203d4101470d04203c0d030c040b201b4101470d03201a450d03203b10300c030b201c450d02203d10300c020b203d4101470d01203c450d010b201c10300b024002400240024002400240024020040e09060600010206060306040b20354101470d052034450d05201510300c050b20384101470d0420370d030c040b20174101470d032016450d03203610300c030b2018450d02203810300c020b20384101470d012037450d010b201810300b024002400240024002400240024020140e09060600010206060306040b20304101470d05202f450d05201010300c050b20334101470d0420320d030c040b20124101470d032011450d03203110300c030b2013450d02203310300c020b20334101470d012032450d010b201310300b0240024002400240024002400240200f0e09060600010206060306040b202b4101470d05202a450d05200b10300c050b202e4101470d04202d0d030c040b200d4101470d03200c450d03202c10300c030b200e450d02202e10300c020b202e4101470d01202d450d010b200e10300b02400240024002400240200a0e09060600010206060306040b20264101470d052025450d05200610300c050b20294101470d042028450d04200910300c040b20084101470d032007450d03202710300c030b2009450d02202910300c020b20294101470d012028450d01200910300c010b200241c0036a2802002148200241b8036a2802002149200241b0036a280200214a200241a0036a280200214b20024198036a2d0000214c20022802c403214d20022802bc03214e20022802b403214f20022802a4032150200228029c032151024002400240024002400240024020010e09060600010206060306040b20444101470d052043450d05202110300c050b20474101470d0420460d030c040b20234101470d032022450d03204510300c030b2024450d02204710300c020b20474101470d012046450d010b202410300b024002400240024002400240024020000e09060600010206060306040b203f4101470d05203e450d05201d10300c050b20424101470d0420410d030c040b201f4101470d03201e450d03204010300c030b2020450d02204210300c020b20424101470d012041450d010b202010300b024002400240024002400240024020030e09060600010206060306040b203a4101470d052039450d05201910300c050b203d4101470d04203c0d030c040b201b4101470d03201a450d03203b10300c030b201c450d02203d10300c020b203d4101470d01203c450d010b201c10300b024002400240024002400240024020040e09060600010206060306040b20354101470d052034450d05201510300c050b20384101470d0420370d030c040b20174101470d032016450d03203610300c030b2018450d02203810300c020b20384101470d012037450d010b201810300b024002400240024002400240024020140e09060600010206060306040b20304101470d05202f450d05201010300c050b20334101470d0420320d030c040b20124101470d032011450d03203110300c030b2013450d02203310300c020b20334101470d012032450d010b201310300b0240024002400240024002400240200f0e09060600010206060306040b202b4101470d05202a450d05200b10300c050b202e4101470d04202d0d030c040b200d4101470d03200c450d03202c10300c030b200e450d02202e10300c020b202e4101470d01202d450d010b200e10300b0240024002400240024002400240200a0e09060600010206060306040b20264101470d052025450d05200610300c050b20294101470d0420280d030c040b20084101470d032007450d03202710300c030b2009450d02202910300c020b20294101470d012028450d010b200910300b024002400240024002400240204c0e09060600010206060306040b204e4101470d05204d450d05204810300c050b20514101470d0420500d030c040b204a4101470d032049450d03204f10300c030b204b450d02205110300c020b20514101470d012050450d010b204b10300b200542095221030b200241a00a6a240020030b9a5205167f017e067f397e2b7f23004180116b22032400200110fb0421044108210541082106024002400240024002400240024002400240200228020022070e09000102030405060708000b410021060c070b410121060c060b410221060c050b410321060c040b410421060c030b410521060c020b410621060c010b410721060b20042006200210fb046b22064b210802400240024002400240024002400240024020012802000e09000102030405060708000b410021050c070b410121050c060b410221050c050b410321050c040b410421050c030b410521050c020b410621050c010b410721050b2006200420081b21064108210402400240024002400240024002400240024020070e09000102030405060708000b410021040c070b410121040c060b410221040c050b410321040c040b410421040c030b410521040c020b410621040c010b410721040b024002400240200520064101746b20046a4109490d002000200241c8031085051a0c010b2003200241c803108505220241086a2105200241c0006a2106200241f8006a2107200241b0016a2108200241e8016a2109200241a0026a210a200241d8026a210b20024190036a210c03404100210402400240024002400240024002400240024020022802000e09080102030405060700080b200c21040c070b200521040c060b200621040c050b200721040c040b200821040c030b200921040c020b200a21040c010b200b21040b02402001290300500d002004450d0020012d000841ff01710d0020042d0000450d00200241a80a6a200210fa04024020022d00a80a2204410a460d000240024002400240024020040e09050500010205050305040b20022802cc0a4101470d0420022802d40a450d0420022802d00a10300c040b20022802ac0a4101470d0320022802b40a450d0320022802b00a10300c030b20022802c00a4101470d0220022802c80a450d0220022802c40a10300c020b20022802b00a450d0120022802ac0a10300c010b20022802ac0a4101470d0020022802b40a450d0020022802b00a10300b200241a80a6a200110f30120022d00a80a2204410a460d010240024002400240024020040e09060600010206060306040b20022802cc0a4101470d0520022802d40a450d0520022802d00a10300c050b20022802ac0a4101470d0420022802b40a450d0420022802b00a10300c040b20022802c00a4101470d0320022802c80a450d0320022802c40a10300c030b20022802b00a450d0220022802ac0a10300c020b20022802ac0a4101470d0120022802b40a450d0120022802b00a10300c010b0b200241c8036a200241c8031085051a200241a80a6a200241c8036a10fa04024020022d00a80a410a460d0020014190036a2104200141d8026a2105200141e8016a2106200141b0016a2107200141f8006a2108200141096a210d200141a0026a2109200141c0006a210a200241a80a6a41d8026a210e200241a80a6a41e8016a210f200241a80a6a41b0016a2110200241a80a6a41f8006a210c200241a80a6a41086a210b200241a80a6a4101722111200241a80a6a41a0026a2112200241a80a6a41c0006a211320022d00a80a2114034020024194076a41026a2215201141026a2d00003a0000200220112f00003b01940720022802ac0a211620022802b00a211720022802b40a211820022903b80a211920022802c00a211a20022802c40a211b20022802c80a211c20022802cc0a211d20022802d00a211e20022802d40a211f20022903d80a21202001290300212120014200370300200141186a2903002122200141286a2903002123200141306a2903002124200141386a2903002125200141c8006a2903002126200141d0006a2903002127200141d8006a2903002128200141e8006a2903002129200141f0006a290300212a2008290300212b20014188016a290300212c20014190016a290300212d20014198016a290300212e200141a8016a290300212f20072903002130200141b8016a2903002131200141c8016a2903002132200141d0016a2903002133200141d8016a290300213420062903002135200141f0016a2903002136200141f8016a290300213720014188026a290300213820014190026a290300213920014198026a290300213a200141a8026a290300213b200141b0026a290300213c200141b8026a290300213d200141c8026a290300213e200141d0026a290300213f20052903002140200141e8026a2903002141200141f0026a2903002142200141f8026a290300214320014188036a29030021442004290300214520014198036a2903002146200141a8036a2903002147200141b0036a290300214820012903c00321492001290308214a2001290310214b2001290320214c2001290340214d2001290360214e200129038001214f20012903a001215020012903c001215120012903e0012152200129038002215320012903a002215420012903c002215520012903e0022156200129038003215720012903a0032158200241a80a6a41b8036a200141b8036a290300370300200241a80a6a41b0036a2048370300200241a80a6a41a8036a2047370300200241a80a6a4198036a2046370300200241a80a6a4190036a2045370300200241a80a6a4188036a2044370300200241a80a6a41f8026a2043370300200241a80a6a41f0026a2042370300200241a80a6a41e8026a2041370300200e2040370300200241a80a6a41d0026a203f370300200241a80a6a41c8026a203e370300200241a80a6a41b8026a203d370300200241a80a6a41b0026a203c370300200241a80a6a41a8026a203b370300200241a80a6a4198026a203a370300200241a80a6a4190026a2039370300200241a80a6a4188026a2038370300200241a80a6a41f8016a2037370300200241a80a6a41f0016a2036370300200f2035370300200241a80a6a41d8016a2034370300200241a80a6a41d0016a2033370300200241a80a6a41c8016a2032370300200241a80a6a41b8016a203137030020102030370300200241a80a6a41a8016a202f370300200241a80a6a4198016a202e370300200241a80a6a4190016a202d370300200241a80a6a4188016a202c370300200c202b370300200241a80a6a41f0006a202a370300200241a80a6a41e8006a2029370300200241a80a6a41d8006a2028370300200241a80a6a41d0006a2027370300200241a80a6a41c8006a2026370300200241a80a6a41386a2025370300200241a80a6a41306a2024370300200241a80a6a41286a2023370300200241a80a6a41186a2022370300200220583703c80d200220573703a80d200220563703880d200220553703e80c200220543703c80c200220533703a80c200220523703880c200220513703e80b200220503703c80b2002204f3703a80b2002204e3703880b2002204d3703e80a2002204c3703c80a2002204b3703b80a2002204a3703b00a200220213703a80a200220493703e80d02400240024002400240024002400240024002402021a722590e080800010203040506070b200241fc106a41026a20152d00003a0000200241c0106a41086a200b41086a290300370300200241c0106a41106a200b41106a290300370300200241c0106a41186a200b41186a290300370300200241c0106a41206a200b41206a290300370300200241c0106a41286a200b41286a290300370300200241c0106a41306a200b41306a290300370300200220022f0194073b01fc102002200b2903003703c010420221210c080b200241fc106a41026a20152d00003a0000200241c0106a41086a200b41086a290300370300200241c0106a41106a200b41106a290300370300200241c0106a41186a200b41186a290300370300200241c0106a41206a200b41206a290300370300200241c0106a41286a200b41286a290300370300200241c0106a41306a200b41306a290300370300200220022f0194073b01fc102002200b2903003703c01020024188106a41306a201341306a29030037030020024188106a41286a201341286a29030037030020024188106a41206a201341206a29030037030020024188106a41186a201341186a29030037030020024188106a41106a201341106a29030037030020024188106a41086a201341086a2903003703002002201329030037038810420321210c070b200241fc106a41026a20152d00003a0000200241c0106a41086a200b41086a290300370300200241c0106a41106a200b41106a290300370300200241c0106a41186a200b41186a290300370300200241c0106a41206a200b41206a290300370300200241c0106a41286a200b41286a290300370300200241c0106a41306a200b41306a290300370300200220022f0194073b01fc102002200b2903003703c01020024188106a41306a201341306a29030037030020024188106a41286a201341286a29030037030020024188106a41206a201341206a29030037030020024188106a41186a201341186a29030037030020024188106a41106a201341106a29030037030020024188106a41086a201341086a290300370300200241d00f6a41306a200c41306a290300370300200241d00f6a41286a200c41286a290300370300200241d00f6a41206a200c41206a290300370300200241d00f6a41186a200c41186a290300370300200241d00f6a41106a200c41106a290300370300200241d00f6a41086a200c41086a29030037030020022013290300370388102002200c2903003703d00f420421210c060b200241fc106a41026a20152d00003a0000200241c0106a41086a200b41086a290300370300200241c0106a41106a200b41106a290300370300200241c0106a41186a200b41186a290300370300200241c0106a41206a200b41206a290300370300200241c0106a41286a200b41286a290300370300200241c0106a41306a200b41306a290300370300200220022f0194073b01fc102002200b2903003703c01020024188106a41306a201341306a29030037030020024188106a41286a201341286a29030037030020024188106a41206a201341206a29030037030020024188106a41186a201341186a29030037030020024188106a41106a201341106a29030037030020024188106a41086a201341086a290300370300200241d00f6a41306a200c41306a290300370300200241d00f6a41286a200c41286a290300370300200241d00f6a41206a200c41206a290300370300200241d00f6a41186a200c41186a290300370300200241d00f6a41106a200c41106a290300370300200241d00f6a41086a200c41086a29030037030020022013290300370388102002200c2903003703d00f200241980f6a41306a201041306a290300370300200241980f6a41286a201041286a290300370300200241980f6a41206a201041206a290300370300200241980f6a41186a201041186a290300370300200241980f6a41106a201041106a290300370300200241980f6a41086a201041086a290300370300200220102903003703980f420521210c050b200241fc106a41026a20152d00003a0000200241c0106a41086a200b41086a290300370300200241c0106a41106a200b41106a290300370300200241c0106a41186a200b41186a290300370300200241c0106a41206a200b41206a290300370300200241c0106a41286a200b41286a290300370300200241c0106a41306a200b41306a290300370300200220022f0194073b01fc102002200b2903003703c01020024188106a41306a201341306a29030037030020024188106a41286a201341286a29030037030020024188106a41206a201341206a29030037030020024188106a41186a201341186a29030037030020024188106a41106a201341106a29030037030020024188106a41086a201341086a290300370300200241d00f6a41306a200c41306a290300370300200241d00f6a41286a200c41286a290300370300200241d00f6a41206a200c41206a290300370300200241d00f6a41186a200c41186a290300370300200241d00f6a41106a200c41106a290300370300200241d00f6a41086a200c41086a29030037030020022013290300370388102002200c2903003703d00f200241980f6a41306a201041306a290300370300200241980f6a41286a201041286a290300370300200241980f6a41206a201041206a290300370300200241980f6a41186a201041186a290300370300200241980f6a41106a201041106a290300370300200241980f6a41086a201041086a290300370300200220102903003703980f200241e00e6a41306a200f41306a290300370300200241e00e6a41286a200f41286a290300370300200241e00e6a41206a200f41206a290300370300200241e00e6a41186a200f41186a290300370300200241e00e6a41106a200f41106a290300370300200241e00e6a41086a200f41086a2903003703002002200f2903003703e00e420621210c040b200241fc106a41026a20152d00003a0000200241c0106a41086a200b41086a290300370300200241c0106a41106a200b41106a290300370300200241c0106a41186a200b41186a290300370300200241c0106a41206a200b41206a290300370300200241c0106a41286a200b41286a290300370300200241c0106a41306a200b41306a290300370300200220022f0194073b01fc102002200b2903003703c01020024188106a41306a201341306a29030037030020024188106a41286a201341286a29030037030020024188106a41206a201341206a29030037030020024188106a41186a201341186a29030037030020024188106a41106a201341106a29030037030020024188106a41086a201341086a290300370300200241d00f6a41306a200c41306a290300370300200241d00f6a41286a200c41286a290300370300200241d00f6a41206a200c41206a290300370300200241d00f6a41186a200c41186a290300370300200241d00f6a41106a200c41106a290300370300200241d00f6a41086a200c41086a29030037030020022013290300370388102002200c2903003703d00f200241980f6a41306a201041306a290300370300200241980f6a41286a201041286a290300370300200241980f6a41206a201041206a290300370300200241980f6a41186a201041186a290300370300200241980f6a41106a201041106a290300370300200241980f6a41086a201041086a290300370300200220102903003703980f200241e00e6a41306a200f41306a290300370300200241e00e6a41286a200f41286a290300370300200241e00e6a41206a200f41206a290300370300200241e00e6a41186a200f41186a290300370300200241e00e6a41106a200f41106a290300370300200241e00e6a41086a200f41086a2903003703002002200f2903003703e00e200241a80e6a41306a201241306a290300370300200241a80e6a41286a201241286a290300370300200241a80e6a41206a201241206a290300370300200241a80e6a41186a201241186a290300370300200241a80e6a41106a201241106a290300370300200241a80e6a41086a201241086a290300370300200220122903003703a80e420721210c030b200241fc106a41026a20152d00003a0000200241c0106a41086a200b41086a290300370300200241c0106a41106a200b41106a290300370300200241c0106a41186a200b41186a290300370300200241c0106a41206a200b41206a290300370300200241c0106a41286a200b41286a290300370300200241c0106a41306a200b41306a290300370300200220022f0194073b01fc102002200b2903003703c01020024188106a41306a201341306a29030037030020024188106a41286a201341286a29030037030020024188106a41206a201341206a29030037030020024188106a41186a201341186a29030037030020024188106a41106a201341106a29030037030020024188106a41086a201341086a290300370300200241d00f6a41306a200c41306a290300370300200241d00f6a41286a200c41286a290300370300200241d00f6a41206a200c41206a290300370300200241d00f6a41186a200c41186a290300370300200241d00f6a41106a200c41106a290300370300200241d00f6a41086a200c41086a29030037030020022013290300370388102002200c2903003703d00f200241980f6a41306a201041306a290300370300200241980f6a41286a201041286a290300370300200241980f6a41206a201041206a290300370300200241980f6a41186a201041186a290300370300200241980f6a41106a201041106a290300370300200241980f6a41086a201041086a290300370300200220102903003703980f200241e00e6a41306a200f41306a290300370300200241e00e6a41286a200f41286a290300370300200241e00e6a41206a200f41206a290300370300200241e00e6a41186a200f41186a290300370300200241e00e6a41106a200f41106a290300370300200241e00e6a41086a200f41086a2903003703002002200f2903003703e00e200241a80e6a41306a201241306a290300370300200241a80e6a41286a201241286a290300370300200241a80e6a41206a201241206a290300370300200241a80e6a41186a201241186a290300370300200241a80e6a41106a201241106a290300370300200241a80e6a41086a201241086a290300370300200220122903003703a80e200241f00d6a41306a200e41306a290300370300200241f00d6a41286a200e41286a290300370300200241f00d6a41206a200e41206a290300370300200241f00d6a41186a200e41186a290300370300200241f00d6a41106a200e41106a290300370300200241f00d6a41086a200e41086a2903003703002002200e2903003703f00d420821210c020b200241a40a6a41026a220b200241b30a6a2d00003a0000200241e8096a41086a2211201341086a290300370300200241e8096a41106a2215201341106a290300370300200241e8096a41186a2259201341186a290300370300200241e8096a41206a225a201341206a290300370300200241e8096a41286a225b201341286a290300370300200241e8096a41306a225c201341306a290300370300200220022f00b10a3b01a40a200220132903003703e809200241b0096a41306a2213200c41306a290300370300200241b0096a41286a225d200c41286a290300370300200241b0096a41206a225e200c41206a290300370300200241b0096a41186a225f200c41186a290300370300200241b0096a41106a2260200c41106a290300370300200241b0096a41086a2261200c41086a290300370300200241f8086a41086a2262201041086a290300370300200241f8086a41106a2263201041106a290300370300200241f8086a41186a2264201041186a290300370300200241f8086a41206a2265201041206a290300370300200241f8086a41286a2266201041286a290300370300200241f8086a41306a2267201041306a2903003703002002200c2903003703b009200220102903003703f808200241c0086a41306a220c200f41306a290300370300200241c0086a41286a2210200f41286a290300370300200241c0086a41206a2268200f41206a290300370300200241c0086a41186a2269200f41186a290300370300200241c0086a41106a226a200f41106a290300370300200241c0086a41086a226b200f41086a29030037030020024188086a41306a226c201241306a29030037030020024188086a41286a226d201241286a29030037030020024188086a41206a226e201241206a29030037030020024188086a41186a226f201241186a29030037030020024188086a41106a2270201241106a29030037030020024188086a41086a2271201241086a2903003703002002200f2903003703c0082002201229030037038808200241d0076a41306a220f200e41306a290300370300200241d0076a41286a2272200e41286a290300370300200241d0076a41206a2273200e41206a290300370300200241d0076a41186a2274200e41186a290300370300200241d0076a41106a2275200e41106a290300370300200241d0076a41086a2276200e41086a2903003703002002200e2903003703d00720024198076a41306a2277200241e80d6a29030037030020024198076a41286a2278200241e00d6a29030037030020024198076a41206a2279200241d80d6a29030037030020024198076a41186a227a200241d00d6a29030037030020024198076a41106a227b200241c80d6a29030037030020024198076a41086a227c200241c00d6a2903003703002002200241b80d6a2903003703980702400240024002400240201441ff01710e090a0a0001020a0a030a040b201d4101470d09201f450d09201e10300c090b20164101470d082018450d08201710300c080b201a4101470d07201c450d07201b10300c070b2017450d06201610300c060b20164101470d052018450d05201710300c050b200241fc106a41026a20152d00003a0000200220022f0194073b01fc10420121210b200241a40a6a41026a2215200241fc106a41026a2d00003a0000200241e8096a41086a225a200241c0106a41086a290300370300200241e8096a41106a225b200241c0106a41106a290300370300200241e8096a41186a225c200241c0106a41186a290300370300200241e8096a41206a225d200241c0106a41206a290300370300200241e8096a41286a225e200241c0106a41286a290300370300200241e8096a41306a225f200241c0106a41306a290300370300200220022f01fc103b01a40a200220022903c0103703e809200241b0096a41306a226020024188106a41306a290300370300200241b0096a41286a226120024188106a41286a290300370300200241b0096a41206a226220024188106a41206a290300370300200241b0096a41186a226320024188106a41186a290300370300200241b0096a41106a226420024188106a41106a290300370300200241b0096a41086a226520024188106a41086a290300370300200241f8086a41086a2266200241d00f6a41086a290300370300200241f8086a41106a2267200241d00f6a41106a290300370300200241f8086a41186a2268200241d00f6a41186a290300370300200241f8086a41206a2269200241d00f6a41206a290300370300200241f8086a41286a226a200241d00f6a41286a290300370300200241f8086a41306a226b200241d00f6a41306a29030037030020022002290388103703b009200220022903d00f3703f808200241c0086a41306a226c200241980f6a41306a290300370300200241c0086a41286a226d200241980f6a41286a290300370300200241c0086a41206a226e200241980f6a41206a290300370300200241c0086a41186a226f200241980f6a41186a290300370300200241c0086a41106a2270200241980f6a41106a290300370300200241c0086a41086a2271200241980f6a41086a29030037030020024188086a41306a2272200241e00e6a41306a29030037030020024188086a41286a2273200241e00e6a41286a29030037030020024188086a41206a2274200241e00e6a41206a29030037030020024188086a41186a2275200241e00e6a41186a29030037030020024188086a41106a2276200241e00e6a41106a29030037030020024188086a41086a2277200241e00e6a41086a290300370300200220022903980f3703c008200220022903e00e37038808200241d0076a41306a2278200241a80e6a41306a290300370300200241d0076a41286a2279200241a80e6a41286a290300370300200241d0076a41206a227a200241a80e6a41206a290300370300200241d0076a41186a227b200241a80e6a41186a290300370300200241d0076a41106a227c200241a80e6a41106a290300370300200241d0076a41086a227d200241a80e6a41086a290300370300200220022903a80e3703d00720024198076a41306a227e200241f00d6a41306a29030037030020024198076a41286a227f200241f00d6a41286a29030037030020024198076a41206a228001200241f00d6a41206a29030037030020024198076a41186a228101200241f00d6a41186a29030037030020024198076a41106a228201200241f00d6a41106a29030037030020024198076a41086a228301200241f00d6a41086a290300370300200220022903f00d3703980702402059417f6a4107490d00200241a80a6a109c010b2001109c01200120143a000820012021370300200120203703382001201f3602342001201e3602302001201d36022c2001201c3602282001201b3602242001201a3602202001201937031820012018360214200120173602102001201636020c200d20022f01a40a3b0000200d41026a20152d00003a0000200a20022903e809370300200a41086a205a290300370300200a41106a205b290300370300200a41186a205c290300370300200a41206a205d290300370300200a41286a205e290300370300200a41306a205f290300370300200841306a2060290300370300200841286a2061290300370300200841206a2062290300370300200841186a2063290300370300200841106a2064290300370300200841086a2065290300370300200820022903b009370300200720022903f808370300200741086a2066290300370300200741106a2067290300370300200741186a2068290300370300200741206a2069290300370300200741286a206a290300370300200741306a206b290300370300200641306a206c290300370300200641286a206d290300370300200641206a206e290300370300200641186a206f290300370300200641106a2070290300370300200641086a2071290300370300200620022903c008370300200941306a2072290300370300200941286a2073290300370300200941206a2074290300370300200941186a2075290300370300200941106a2076290300370300200941086a20772903003703002009200229038808370300200541306a2078290300370300200541286a2079290300370300200541206a207a290300370300200541186a207b290300370300200541106a207c290300370300200541086a207d290300370300200520022903d007370300200441306a207e290300370300200441286a207f290300370300200441206a208001290300370300200441186a208101290300370300200441106a208201290300370300200441086a2083012903003703002004200229039807370300200241a80a6a200241c8036a10fa0420022d00a80a2214410a470d000b0b200241c8036a109c01200042093703000b20034180116a24000f0b2001109c012001204a3c000820012021370300200120233e02282001204c4220883e02242001204c3e0220200d20022f01a40a3b0000200d41026a200b2d00003a0000200120243e0230200120234220883e022c2001204b3e02102001204a4220883e020c200a20022903e809370300200a41086a2011290300370300200a41106a2015290300370300200a41186a2059290300370300200a41206a205a290300370300200a41286a205b290300370300200a41306a205c29030037030020012025370338200120244220883e0234200120223703182001204b4220883e0214200841306a2013290300370300200841286a205d290300370300200841206a205e290300370300200841186a205f290300370300200841106a2060290300370300200841086a2061290300370300200820022903b009370300200720022903f808370300200741086a2062290300370300200741106a2063290300370300200741186a2064290300370300200741206a2065290300370300200741286a2066290300370300200741306a2067290300370300200641306a200c290300370300200641286a2010290300370300200641206a2068290300370300200641186a2069290300370300200641106a206a290300370300200641086a206b290300370300200620022903c008370300200941306a206c290300370300200941286a206d290300370300200941206a206e290300370300200941186a206f290300370300200941106a2070290300370300200941086a20712903003703002009200229038808370300200541306a200f290300370300200541286a2072290300370300200541206a2073290300370300200541186a2074290300370300200541106a2075290300370300200541086a2076290300370300200520022903d007370300200441306a2077290300370300200441286a2078290300370300200441206a2079290300370300200441186a207a290300370300200441106a207b290300370300200441086a207c290300370300200420022903980737030041c09fc2004130200241a80a6a41f09fc2004180a0c2001034000b9d3723027f017e037f017e027f017e067f017e037f017e077f017e037f017e077f017e037f017e077f017e037f017e077f017e037f017e077f017e037f017e067f017e037f017e0e7f230041c0056b22032400024002400240200241ff01714101460d00200341c4006a41026a2001410b6a2d00003a0000200320012f00093b0144200141106a2800002104200141186a2900002105200141206a2800002106200141286a2800002107200141306a2800002108200141386a2900002109200141c0006a2d0000210a20012d0008210b2001290300210c200128000c210d2001280014210e2001280024210f200128002c211020012800342111200341c0006a41026a200141c3006a2d00003a00002003413c6a41026a200141fb006a2d00003a0000200320012f00413b0140200320012f00793b013c200141f8006a2d00002112200141f0006a2900002113200141e8006a2800002114200141e0006a2800002115200141d8006a2800002116200141d0006a2900002117200141c8006a2800002118200128006c21192001280064211a200128005c211b200128004c211c2001280044211d200141b0016a2d0000211e200141a8016a290000211f200141a0016a280000212020014198016a280000212120014190016a280000212220014188016a290000212320014180016a280000212420012800a4012125200128009c01212620012800940121272001280084012128200128007c2129200341386a41026a200141b3016a2d00003a0000200320012f00b1013b0138200141e8016a2d0000212a200141e0016a290000212b200141d8016a280000212c200141d0016a280000212d200141c8016a280000212e200141c0016a290000212f200141b8016a280000213020012800dc01213120012800d401213220012800cc01213320012800bc01213420012800b4012135200341346a41026a200141eb016a2d00003a0000200320012f00e9013b0134200141a0026a2d0000213620014198026a290000213720014190026a280000213820014188026a280000213920014180026a280000213a200141f8016a290000213b200141f0016a280000213c200128009402213d200128008c02213e200128008402213f20012800f401214020012800ec012141200341306a41026a200141a3026a2d00003a0000200320012f00a1023b0130200141d8026a2d00002142200141d0026a2900002143200141c8026a2800002144200141c0026a2800002145200141b8026a2800002146200141b0026a2900002147200141a8026a280000214820012800cc02214920012800c402214a20012800bc02214b20012800ac02214c20012800a402214d2003412c6a41026a200141db026a2d00003a0000200320012f00d9023b012c20014190036a2d0000214e20014188036a290000214f20014180036a2800002150200141f8026a2800002151200141f0026a2800002152200141e8026a2900002153200141e0026a2800002154200128008403215520012800fc02215620012800f402215720012800e402215820012800dc022159200341286a41026a20014193036a2d00003a0000200320012f0091033b0128200141c0036a290000215a200141b8036a280000215b200141b0036a280000215c200141a8036a280000215d200141a0036a290000215e20014198036a280000215f20012800bc03216020012800b403216120012800ac032162200128009c03216320012800940321010c010b20034190056a41026a2001410b6a2d00003a0000200320012f00093b019005200141106a2800002104200141186a2900002105200141206a2800002106200141286a2800002107200141306a2800002108200141386a2900002109200141c0006a2d0000210a20012d0008210b200128000c210d2001280014210e2001280024210f200128002c2110200128003421112001290300210c2003418c056a41026a200141c3006a2d00003a000020034188056a41026a200141fb006a2d00003a0000200320012f00413b018c05200320012f00793b018805200141c8006a2800002118200141d0006a2900002117200141d8006a2800002116200141e0006a2800002115200141e8006a2800002114200141f0006a2900002113200141f8006a2d000021122001280044211d200128004c211c200128005c211b2001280064211a200128006c211920034184056a41026a2264200141b3016a2d00003a0000200320012f00b1013b018405200141b0016a2d0000211e200141a8016a290000211f200141a0016a280000212020014198016a280000212120014190016a280000212220014188016a290000212320014180016a2800002124200141e8016a2d0000212a200141e0016a290000212b200141d8016a280000212c200141d0016a280000212d200141c8016a280000212e200141c0016a290000212f200141b8016a280000213020012800a4012125200128009c01212620012800940121272001280084012128200128007c212920012800dc01213120012800d401213220012800cc01213320012800bc01213420012800b401213520034180056a41026a2265200141eb016a2d00003a0000200320012f00e9013b018005200141a0026a2d0000213620014198026a290000213720014190026a280000213820014188026a280000213920014180026a280000213a200141f8016a290000213b200141f0016a280000213c200128009402213d200128008c02213e200128008402213f20012800f401214020012800ec012141200341fc046a41026a2266200141a3026a2d00003a0000200320012f00a1023b01fc04200141d8026a2d00002142200141d0026a2900002143200141c8026a2800002144200141c0026a2800002145200141b8026a2800002146200141b0026a2900002147200141a8026a280000214820012800cc02214920012800c402214a20012800bc02214b20012800ac02214c20012800a402214d200341f8046a41026a2267200141db026a2d00003a0000200320012f00d9023b01f80420014190036a2d0000214e20014188036a290000214f20014180036a2800002150200141f8026a2800002151200141f0026a2800002152200141e8026a2900002153200141e0026a2800002154200128008403215520012800fc02215620012800f402215720012800e402215820012800dc022159200341f4046a41026a226820014193036a2d00003a0000200320012f0091033b01f404200141f9006a2169200141c1006a216a200141096a216b200141c0036a290000215a200141b8036a280000215b200141b0036a280000215c200141a8036a280000215d200141a0036a290000215e20014198036a280000215f20012800bc03216020012800b403216120012800ac032162200128009c03216320012800940321010240200c4201520d00200b41ff01710d0020034196056a41003a00002003410036009b052003410036029805200341003b0194050b200341c8006a41c0006a200a3a0000200341c8006a41386a2009370300200341c8006a41306a2008360200200341c8006a41286a2007360200200341c8006a41206a2006360200200341c8006a41186a2005370300200341c8006a41106a2004360200200341c8006a410b6a206b41026a2d00003a0000200341c8006a41c3006a206a41026a2d00003a00002003201136027c200320103602742003200f36026c2003200e36025c2003200d3602542003206b2f00003b00512003206a2f00003b0089012003200b3a00502003200c370348200341c8006a41f8006a20123a0000200341c8006a41f0006a2013370300200341c8006a41e8006a2014360200200341c8006a41e0006a2015360200200341c8006a41d8006a2016360200200341c8006a41d0006a2017370300200341c8006a41c8006a2018360200200341c8006a4180016a2024360200200341c8006a4188016a2023370300200341c8006a4190016a2022360200200341c8006a4198016a2021360200200341c8006a41a0016a2020360200200341c8006a41a8016a201f370300200341c8006a41b0016a201e3a0000200341c8006a41fb006a206941026a2d00003a0000200320193602b4012003201a3602ac012003201b3602a4012003201c360294012003201d36028c01200320293602c401200320283602cc01200320273602dc01200320263602e401200320253602ec01200320692f00003b00c101200341c8006a41e8016a202a3a0000200341c8006a41e0016a202b370300200341c8006a41d8016a202c360200200341c8006a41d0016a202d360200200341c8006a41c8016a202e360200200341c8006a41c0016a202f370300200341c8006a41b8016a2030360200200341c8006a41b3016a20642d00003a0000200341c8006a41eb016a20652d00003a0000200320313602a4022003203236029c0220032033360294022003203436028402200320353602fc01200320032f0184053b00f901200320032f0180053b00b102200341c8006a41a0026a20363a0000200341c8006a4198026a2037370300200341c8006a4190026a2038360200200341c8006a4188026a2039360200200341c8006a4180026a203a360200200341c8006a41f8016a203b370300200341c8006a41f0016a203c3602002003203d3602dc022003203e3602d4022003203f3602cc02200320403602bc02200320413602b402200341c8006a41a3026a20662d00003a0000200320032f01fc043b00e902200341c8006a41d8026a20423a0000200341c8006a41d0026a2043370300200341c8006a41c8026a2044360200200341c8006a41c0026a2045360200200341c8006a41b8026a2046360200200341c8006a41b0026a2047370300200341c8006a41a8026a204836020020032049360294032003204a36028c032003204b360284032003204c3602f4022003204d3602ec02200341c8006a41db026a20672d00003a0000200320032f01f8043b00a103200341c8006a4190036a204e3a0000200341c8006a4188036a204f370300200341c8006a4180036a2050360200200341c8006a41f8026a2051360200200341c8006a41f0026a2052360200200341c8006a41e8026a2053370300200341c8006a41e0026a2054360200200320553602cc03200320563602c403200320573602bc03200320583602ac03200320593602a403200341c8006a4193036a20682d00003a0000200320032f01f4043b00d903200341c8006a41c0036a205a370300200341c8006a41b8036a205b360200200341c8006a41b0036a205c360200200341c8006a41a8036a205d360200200341c8006a41a0036a205e370300200341c8006a4198036a205f3602002003206036028404200320613602fc03200320623602f403200320633602e403200320013602dc0302400240200c420151200b41ff0171457122690d00200341e8046a41026a20034190056a41026a2d00003a0000200341e4046a41026a2003418c056a41026a2d00003a0000200341e0046a41026a20034188056a41026a2d00003a0000200341dc046a41026a20034184056a41026a2d00003a0000200341d8046a41026a20034180056a41026a2d00003a0000200320032f0190053b01e804200320032f018c053b01e404200320032f0188053b01e004200320032f0184053b01dc04200320032f0180053b01d804200341d4046a41026a200341fc046a41026a2d00003a0000200341d0046a41026a200341f8046a41026a2d00003a0000200341cc046a41026a200341f4046a41026a2d00003a0000200320032f01fc043b01d404200320032f01f8043b01d004200320032f01f4043b01cc040c010b200341e8046a41026a20034194056a41026a2d00003a00002003200328009b053600ef0420032003280298053602ec04200320032f0194053b01e804200341c8006a109c014200210c4100210d410021044100210e4100210b420021050b200341c0046a41026a226a200341e8046a41026a2d00003a0000200320032802ec043602c404200320032800ef043600c704200320032f01e8043b01c004200341bc046a41026a226b200341e4046a41026a2d00003a0000200320032f01e4043b01bc04200341b8046a41026a2264200341e0046a41026a2d00003a0000200320032f01e0043b01b804200341b4046a41026a2265200341dc046a41026a2d00003a0000200320032f01dc043b01b404200341b0046a41026a2266200341d8046a41026a2d00003a0000200320032f01d8043b01b004200341ac046a41026a2267200341d4046a41026a2d00003a0000200320032f01d4043b01ac04200341a8046a41026a2268200341d0046a41026a2d00003a0000200320032f01d0043b01a804200341a4046a41026a226c200341cc046a41026a2d00003a0000200320032f01cc043b01a404024020690d00200341c4006a41026a206a2d00003a0000200341c0006a41026a206b2d00003a00002003413c6a41026a20642d00003a0000200341386a41026a20652d00003a0000200341346a41026a20662d00003a0000200320032f01c0043b0144200320032f01bc043b0140200320032f01b8043b013c200320032f01b4043b0138200320032f01b0043b0134200341306a41026a20672d00003a00002003412c6a41026a20682d00003a0000200341286a41026a206c2d00003a0000200320032f01ac043b0130200320032f01a8043b012c200320032f01a4043b01280c010b20034198046a41026a2201206a2d00003a0000200320032800c70436009f04200320032802c40436029c04200320032f01c0043b01980420034198056a41106a200b3a000020034198056a41086a200c37030020034198056a41206a20053c000020034198056a411c6a200e36020020034198056a41186a200436020020034198056a41146a200d3602002003200328009f0436009c052003200328029c0436009905200341a9056a20032f0198043b000020034198056a41136a20012d00003a0000200341013a009805200341c8006a20034198056a10cd03200341c4006a41026a2201200341d7006a2d00003a00002003200341d5006a2f00003b0144200341c8006a41106a290300210c200341c8006a41186a280200210b200341c8006a411c6a2902002105200328026c210220032802482104200329024c2109200041106a200341d4006a2d00003a0000200041086a20093702002000200436020420004100360200200041286a2002360000200041206a20053700002000411c6a200b360000200041146a200c370000200020032f01443b0011200041136a20012d00003a0000200020032f01403b0049200041cb006a200341c0006a41026a2d00003a0000200020032f013c3b00810120004183016a2003413c6a41026a2d00003a0000200041bb016a200341386a41026a2d00003a0000200020032f01383b00b901200041f3016a200341346a41026a2d00003a0000200020032f01343b00f101200041ab026a200341306a41026a2d00003a0000200020032f01303b00a902200041e3026a2003412c6a41026a2d00003a0000200020032f012c3b00e1022000419b036a200341286a41026a2d00003a0000200020032f01283b0099030c010b200341246a41026a2269200341c4006a41026a2d00003a0000200341206a41026a226a200341c0006a41026a2d00003a00002003411c6a41026a226b2003413c6a41026a2d00003a0000200341186a41026a2264200341386a41026a2d00003a0000200341146a41026a2265200341346a41026a2d00003a0000200320032f01443b0124200320032f01403b0120200320032f013c3b011c200320032f01383b0118200320032f01343b0114200341106a41026a2266200341306a41026a2d00003a00002003410c6a41026a22672003412c6a41026a2d00003a0000200341086a41026a2268200341286a41026a2d00003a0000200320032f01303b0110200320032f012c3b010c200320032f01283b010802400240200241ff01714102470d00200c4201520d00200b41ff0171450d010b200341d8006a200b3a000020034190016a200a3a000020034188016a200937030020034180016a2008360200200341f8006a2007360200200341f0006a2006360200200341e8006a2005370300200341e0006a2004360200200341db006a20692d00003a00002003200c370350200320032f01243b005920032011360284012003201036027c2003200f3602742003200e3602642003200d36025c200341c8016a20123a0000200341c0016a2013370300200341b8016a2014360200200341b0016a2015360200200341a8016a2016360200200341a0016a201737030020034198016a201836020020034193016a206a2d00003a0000200341cb016a206b2d00003a0000200320193602bc012003201a3602b4012003201b3602ac012003201c36029c012003201d36029401200320032f01203b009101200320032f011c3b00c90120034180026a201e3a0000200341f8016a201f370300200341f0016a2020360200200341e8016a2021360200200341e0016a2022360200200341d8016a2023370300200341d0016a2024360200200320253602f401200320263602ec01200320273602e401200320283602d401200320293602cc0120034183026a20642d00003a0000200320032f01183b008102200341b8026a202a3a0000200341b0026a202b370300200341a8026a202c360200200341a0026a202d36020020034198026a202e36020020034190026a202f37030020034188026a2030360200200320313602ac02200320323602a4022003203336029c022003203436028c022003203536028402200341bb026a20652d00003a0000200320032f01143b00b902200341f0026a20363a0000200341e8026a2037370300200341e0026a2038360200200341d8026a2039360200200341d0026a203a360200200341c8026a203b370300200341c0026a203c3602002003203d3602e4022003203e3602dc022003203f3602d402200320403602c402200320413602bc02200341f3026a20662d00003a0000200320032f01103b00f102200341a8036a20423a0000200341a0036a204337030020034198036a204436020020034190036a204536020020034188036a204636020020034180036a2047370300200341f8026a20483602002003204936029c032003204a360294032003204b36028c032003204c3602fc022003204d3602f402200341ab036a20672d00003a0000200320032f010c3b00a903200341e0036a204e3a0000200341d8036a204f370300200341d0036a2050360200200341c8036a2051360200200341c0036a2052360200200341b8036a2053370300200341b0036a2054360200200320553602d403200320563602cc03200320573602c403200320583602b403200320593602ac03200341e3036a20682d00003a0000200320032f01083b00e103200341c8006a41c8036a205a37030020034188046a205b36020020034180046a205c360200200341f8036a205d360200200341f0036a205e370300200341e8036a205f3602002003206036028c042003206136028404200320623602fc03200320633602ec03200320013602e403200041086a200341c8006a41086a41c8031085051a200041013602000c010b200341003a009805200341c8006a41047220034198056a10cd03200341003602482000200341c8006a41d0031085051a0b200341c0056a24000bcf7b070b7f067e137f017e087f017e037f230041a0236b22042400024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024020032d0000417f6a0e070001080203040a080b20044190146a200341106a41c8031085051a200441f0086a41086a22052003410c6a2802003602002004200341046a2902003703f008200441086a2002200441f0086a10e303200441c0006a2004280208200428020c200428021010e4032005200441086a41146a280200360200200420042902143703f008200441206a200441f0086a10e503200441e0006a410c6a200441c0006a41086a290300370200200441e0006a41146a200441c0006a41106a290300370200200441fc006a2205200441c0006a41186a28020036020020044184016a20042903203702002004418c016a200441206a41086a29030037020020044194016a200441206a41106a2903003702002004419c016a200441206a41186a28020036020020044101360260200420042903403702642004410136028001200441e0006a4104722106024020052802002205450d0020042005417f6a36027c200441e0006a41086a2802002205450d0720042802642107200441ec006a280200220820052f01a629490d1503400240024020052802a02922090d00410021090c010b200741016a210a20052f01a42921080b024041d82941a82920071b450d00200510300b024020090d00410221070c180b200a210720092105200820092f01a6294f0d000b20092105200a21070c150b2004410c3602f008200610e603200620042902d01f370200200641086a200441d01f6a41086a290200370200200641106a200441d01f6a41106a290200370200200641186a200441d01f6a41186a2802003602004100210b200441003602602004410c3602881820042802f008410c460d13200441f0086a109a010c160b200441801c6a200341206a41c8031085051a200341186a2802002106200341146a280200210a200341106a280200210b200441f0086a41086a2003410c6a2802003602002004200341046a2902003703f00820044188056a2002200441f0086a10e303200441c8016a20044188056a10e703200441e0006a20044188056a410c6a10e803200441b0056a410c6a2209200441c8016a41086a290300370200200441b0056a41146a200441c8016a41106a290300370200200441cc056a2205200441c8016a41186a280200360200200441d4056a2004290360370200200441dc056a200441e0006a41086a290300370200200441e4056a200441e0006a41106a290300370200200441ec056a2207200441e0006a41186a280200360200200441013602b005200420042903c8013702b405200441013602d005024020052802002205450d0020042005417f6a3602cc05200441b0056a4104724100200441b0056a41086a220c28020022051b220d2802002107024002402009410820051b220e2802002208200c410420051b220c28020022092f01a6294f0d00200921050c010b0340024020092802a02922050d00410021050c020b200741016a210720092f01a429210820052109200820052f01a6294f0d000b0b024002402007450d00200841027420056a41ac296a280200210902402007417f6a2207450d00034020092802a82921092007417f6a22070d000b0b410021070c010b200841016a2107200521090b200c2009360200200e2007360200200d4100360200200520084104746a220941f8276a290300210f200941f0276a2903002110024002402005200841d0036c6a22052802004101470d002005410c6a2802002209417f4c0d07200528020421070240024020090d00410121050c010b2009102f2205450d070b200420093602d81f200420053602d41f2005200720091085051a200441dc1f6a20093602004108210920042903d81f211120102112200f21130c010b200441d01f6a41086a200541086a10db03200441e81f6a2903002113200441e01f6a290300211220042903d81f2111200441d0106a200441f01f6a41b0031085051a410a21090b20044188096a2013370300200441f0086a41106a2012370300200441f0086a41086a2011370300200420053602f408200420093602f00820044190096a200441d0106a41b0031085051a200441c80c6a200f370300200441c00c6a2010370300200441d00c6a20042903a810370300200441d80c6a200441a8106a41086a290300370300200441e00c6a200441a8106a41106a29030037030020044188186a200441f0086a41f8031085051a0c0f0b2004410c3602f008200441003602b005200728020022050d0d2004410c360288180c0f0b20044188186a200341206a41c8031085051a200441c8016a41086a2205200341186a2802003602002004200341106a2902003703c801200441f0086a41086a2003410c6a2802003602002004200341046a2902003703f008200441d0106a2002200441f0086a10e303200441f0086a20044188186a10f001200441d0106a200441f0086a10e903200441d01f6a20042802d01020042802d41020042802d81010e40320044190146a41086a200441d0106a41146a280200360200200420042902dc1037039014200441801c6a20044190146a10e503200441ac146a200441d01f6a41186a28020036020020044190146a41146a200441d01f6a41106a29030037020020044190146a410c6a200441d01f6a41086a290300370200200441b4146a20042903801c370200200441bc146a200441801c6a41086a290300370200200441c4146a200441801c6a41106a290300370200200441cc146a200441801c6a41186a280200360200200420042903d01f3702941441012107200441013602b0142004410136029014200441b0056a20044190146a10ea03200441f0086a109c01200429038818210f200441f0086a410b6a200441b0056a41086a280200360000200420042903b0053700f308200420042900f008370390142004200441f7086a29000037009714200041186a20044188186a41086a41c0031085051a41002109200041d8036a41003a0000200041106a200f3702002000410b36020820004201370300200041f0036a2005280200360200200041e8036a20042903c80137020020002004290390143700d903200041e0036a2004290097143700000c060b200341046a290200210f2003410c6a280200210520044188186a200341206a41c8031085051a200441c8016a41086a2207200341186a2802003602002004200341106a2902003703c801200420053602f8082004200f3703f008200441d0106a2002200441f0086a10e303200441f0086a20044188186a10f001200441d0106a200441f0086a10e903200441d01f6a20042802d01020042802d41020042802d81010e40320044190146a41086a200441d0106a41146a280200360200200420042902dc1037039014200441801c6a20044190146a10e503200441ac146a200441d01f6a41186a28020036020020044190146a41146a200441d01f6a41106a29030037020020044190146a410c6a200441d01f6a41086a290300370200200441b4146a20042903801c370200200441bc146a200441801c6a41086a290300370200200441c4146a200441801c6a41106a290300370200200441cc146a200441801c6a41186a280200360200200420042903d01f3702941441012109200441013602b0142004410136029014200441b0056a20044190146a10ea03200441f0086a109c01200429038818210f200441f0086a410b6a200441b0056a41086a280200360000200420042903b0053700f308200420042900f008370390142004200441f7086a29000037009714200041186a20044188186a41086a41c0031085051a200041d8036a41023a0000200041106a200f3702002000410b36020820004201370300200041f0036a2007280200360200200041e8036a20042903c80137020020002004290390143700d903200041e0036a200429009714370000410021070c050b200341106a2903002114200441d01f6a200341186a41c8031085051a200341086a2802002115200341046a28020021162003410c6a2802002117200441e0006a41106a22184200370300200442003702640240201741f8036c22050d00200441d0106a21050c070b201620056a2119200441e0006a410c6a211a2002410c6a211b20044188186a41106a211c200441f0086a41086a210e200441f01b6a211d200441f0086a410c6a211e20044188186a41e0036a210a20044188186a41206a210c200441f0086a41206a211f20044188186a41086a2120200241146a2121200441e01b6a210d20044188186a41d3036a21222016210b034002400240024002400240024002400240024002400240024002400240200b28020022050e0c0d000102030c0b0a090809080d0b02400240200241086a2802000d00200442003702d4100c010b20022802042205450d07200441d0106a2002280200200510eb030b02400240200241146a2802000d00200441e0106a42003703000c010b20022802102205450d06200441dc106a201b280200200510ec030b200441e0006a10dc03200428027021052004410036027002402005450d000240200428026c2209450d00034020052802b02b21052009417f6a22090d000b0b200441003602f808200420053602f408200441003602f008200420042802743602fc08200441f0086a10dd030b200441d0106a21050c150b02400240200241086a2802000d00200442003702f4080c010b20022802042205450d04200441f0086a2002280200200510eb030b201e201a290200370200201e41086a201a41086a280200360200200441e0006a10dc032018200441f0086a41106a290300370300200441e0006a41086a200e290300370300200420042903f0083703600c0b0b200e200441e0006a41086a2207280200360200200420042903603703f0080240024020212802000d0020044200370380090c010b20022802102205450d02201e201b280200200510ec030b200428027021052004410036027002402005450d000240200428026c2209450d00034020052802b02b21052009417f6a22090d000b0b20044100360290182004200536028c182004410036028818200420042802743602941820044188186a10dd030b2018200441f0086a41106a2903003703002007200e290300370300200420042903f0083703600c0a0b200441d0106a200210e703200441801c6a41186a200441d0106a41186a2802002205360200200441801c6a41106a200441d0106a41106a290300370300200441801c6a41086a200441d0106a41086a290300370300200420042903d0103703801c2005450d0920042005417f6a3602981c200441801c6a410020042802841c1b220628020021070240024020062802082208200628020422092f01a6294f0d00200921050c010b0340024020092802a02922050d00410021050c020b200741016a210720092f01a429210820052109200820052f01a6294f0d000b0b024002402007450d00200841027420056a41ac296a280200210902402007417f6a2207450d00034020092802a82921092007417f6a22070d000b0b410021070c010b200841016a2107200521090b2006200936020420064100360200200620073602082005200841d0036c6a2109200520084104746a41f0276a21050340200541086a290300210f2005290300211002400240200928020022084101470d002009410c6a2802002207417f4c0d0f200928020421090240024020070d00410121050c010b2007102f2205450d0f0b200420073602f808200420053602f4082005200920071085051a200420073602fc084108210920042903f808211120102112200f21130c010b200e200941086a10db03200441f0086a41186a2903002113200429038009211220042903f808211120044188186a201f41b0031085051a410a21090b20044190146a20044188186a41b0031085051a200441c8016a41086a2207200441b0056a41086a290300370300200441c8016a41106a2206200441b0056a41106a290300370300200420042903b0053703c80120044188186a41186a201337030020042012370398182004200536028c1820042009360288182004201137039018200c20044190146a41b0031085051a200d200f370300200a20042903c801370300200a41086a2007290300370300200a41106a2006290300370300200420103703d81b024002402008450d00200b28020c2011422088a72209470d00200b280204200520091088050d00200441f0086a20044188186a41f8031085051a200441e0006a200441f0086a10ed030c010b20044188186a109a010b20042802981c2205450d0a20042005417f6a3602981c200441801c6a410020042802841c1b220628020021070240024020062802082208200628020422092f01a6294f0d00200921050c010b0340024020092802a02922050d00410021050c020b200741016a210720092f01a429210820052109200820052f01a6294f0d000b0b024002402007450d00200841027420056a41ac296a280200210902402007417f6a2207450d00034020092802a82921092007417f6a22070d000b0b410021070c010b200841016a2107200521090b2006200936020420064100360200200620073602082005200841d0036c6a2109200520084104746a41f0276a21050c000b0b41b2abc200412b41a082c200102d000b41b2abc200412b41a082c200102d000b41b2abc200412b41a082c200102d000b41b2abc200412b41a082c200102d000b0240024002400240200541776a0e03020001000b41d8a5c200412841c0dfc100102d000b200441f0086a200b41086a10db0320042802f408210620042802f008210520044188186a200e41c0031085051a41002108410021070240024002400240024002400240200b2d00d0030e0706010203040500060b200b41dc036a2802002223417f4c0d0f200b41d4036a28020021090240024020230d00410121240c010b2023102f2224450d0f0b20234108762125202420092023108505410876212641062107202321270c050b200b41e0036a2903002128200b2903d803220f422088a72123200f420888a72125200fa72127410121070c040b200b2f00d103200b41d3036a2d0000411074722129200b2d00d4032124410221070c030b200b2800d40322244108762126200b2f00d103200b41d3036a2d0000411074722129200b2d00d8032127410321070c020b202842807e83200b3100e003842128200b2800d80322274108762125200b2800d40322244108762126200b2f00d103200b41d3036a2d0000411074722129200b2800dc032123410421070c010b20044190146a41086a200b41f0036a2d00003a00002004200b2900e80337039014200b2800d40322244108762126200b2f00d103200b41d3036a2d0000411074722129200b41e0036a2900002128200b2900d803220f422088a72123200f420888a72125200fa72127410521070b200441f0086a20044188186a41c0031085051a200441801c6a41086a20044190146a41086a29030037030020042004290390143703801c2026410874202441ff017172212a2023ad4220862025410874202741ff017172ad84210f20292109202821100c010b200b410c6a2802002205417f4c0d08200b28020421090240024020050d004101212b0c010b2005102f222b450d080b202b200920051085051a410021070240024002400240024002400240200b2d00100e0706010203040500060b200b411c6a280200222c417f4c0d0e200b41146a280200210902400240202c0d004101212d0c010b202c102f222d450d0e0b202c410876212e202d2009202c108505410876212f41062107202c21300c050b200b41206a2903002131200b290318220f422088a7212c200f420888a7212e200fa72130410121070c040b200b2f0011200b41136a2d0000411074722132200b2d0014212d410221070c030b200b280014222d410876212f200b2f0011200b41136a2d0000411074722132200b2d00182130410321070c020b203142807e83200b310020842131200b2800182230410876212e200b280014222d410876212f200b2f0011200b41136a2d0000411074722132200b28001c212c410421070c010b200e200b41306a2d00003a00002004200b2900283703f008200b280014222d410876212f200b2f0011200b41136a2d0000411074722132200b41206a2900002131200b290018220f422088a7212c200f420888a7212e200fa72130410521070b200441801c6a41086a200e290300370300200420042903f0083703801c202f410874202d41ff017172212a202cad422086202e410874203041ff017172ad84210f410121082005210620322109203121100b20044190146a200441f0086a41c0031085051a200441d0106a41086a2233200441801c6a41086a290300370300200420042903801c3703d010200420063602941820042005360290182004202b36028c18201c20044190146a41c0031085051a200a2010370300201d20042903d010370300201d41086a2033290300370300200420093b00d91b202220094110763a00002004200f3703e01b2004202a3602dc1b200420073a00d81b2004200836028818024020022802102206450d00201b280200212a034020062f01ae2b223341f8036c2105417f21072006210902400340024020050d00203321070c020b200741016a2107200541887c6a210520044188186a20091090012108200941f8036a2109200841ff01714101460d000b0240200841187441187541016a0e020100010b200441f0086a20044188186a41f8031085051a201a200441f0086a10ee030c070b0240202a450d00202a417f6a212a200620074102746a41b02b6a28020021060c010b0b20042802881821080b0240024020080d002020109c010c010b200428029018450d00200428028c1810300b20042d00d81b4106490d0420042802e01b450d0420042802dc1b10300c040b0240024002400240200541786a0e03020001000b41d8a5c200412841b0dfc100102d000b200441f0086a200b41086a10db0320042802f408210620042802f008210520044190146a200e41c0031085051a200b41d0036a2109410021080c010b200b410c6a2802002205417f4c0d07200b2802042106410121084101210702402005450d002005102f2207450d070b200b41106a21092007200620051085051a200521060b200941086a290300210f20092903002110200420063602941820042005360290182004200736028c182004200836028818201c20044190146a41c0031085051a02402002280204222a450d00200228020021330340202a41e0276a2108202a2f01a629223441d0036c2105417f2107202a210902400340024020050d00203421070c020b200741016a2107200841106a2108200541b07c6a210520044188186a20091091012106200941d0036a2109200641ff01714101460d000b0240200641187441187541016a0e020100010b200441f0086a20044188186a41d0031085051a200441e0006a200441f0086a2008290300221120102010201156200f200841086a290300221156200f2011511b22051b2011200f20051b10ef030c060b02402033450d002033417f6a2133202a20074102746a41a8296a280200212a0c010b0b20042802881821080b024020080d002020109c010c040b200428029018450d03200428028c1810300c030b200441d0106a201b10e803200441801c6a41186a200441d0106a41186a280200360200200441801c6a41106a200441d0106a41106a290300370300200441801c6a41086a200441d0106a41086a290300370300200420042903d0103703801c200b41086a212a034020042802981c2205450d0320042005417f6a3602981c200441801c6a410020042802841c1b220628020021070240024020062802082208200628020422092f01ae2b4f0d00200921050c010b200921050340024020052802a82b22050d00410021050c020b200741016a210720092f01ac2b210820052109200820052f01ae2b4f0d000b0b024002402007450d00200841027420056a41b42b6a280200210902402007417f6a2207450d00034020092802b02b21092007417f6a22070d000b0b410021070c010b200841016a2107200521090b200620093602042006410036020020062007360208200441f0086a2005200841f8036c6a10f00320042802f008410c460d0320044190146a200441f0086a41f8031085051a20044188186a20044190146a41f8031085051a0240200428028818410b470d00202a202010f103450d00200441f0086a20044188186a41f8031085051a200441e0006a200441f0086a10ed030c010b20044188186a109a010c000b0b200441d0106a200210e703200441801c6a41186a200441d0106a41186a2802002205360200200441801c6a41106a200441d0106a41106a290300370300200441801c6a41086a200441d0106a41086a290300370300200420042903d0103703801c2005450d0120042005417f6a3602981c200441801c6a410020042802841c1b220628020021070240024020062802082208200628020422092f01a6294f0d00200921050c010b0340024020092802a02922050d00410021050c020b200741016a210720092f01a429210820052109200820052f01a6294f0d000b0b024002402007450d00200841027420056a41ac296a280200210902402007417f6a2207450d00034020092802a82921092007417f6a22070d000b0b410021070c010b200841016a2107200521090b200b41086a212a2006200936020420064100360200200620073602082005200841d0036c6a2109200520084104746a41f0276a21050340200541086a290300210f2005290300211002400240200928020022084101470d002009410c6a2802002207417f4c0d07200928020421090240024020070d00410121050c010b2007102f2205450d070b200420073602f808200420053602f4082005200920071085051a200420073602fc084108210920042903f808211120102112200f21130c010b200e200941086a10db03200441f0086a41186a2903002113200429038009211220042903f808211120044188186a201f41b0031085051a410a21090b20044190146a20044188186a41b0031085051a200441c8016a41086a2207200441b0056a41086a290300370300200441c8016a41106a2206200441b0056a41106a290300370300200420042903b0053703c80120044188186a41186a2013370300200420123703981820042011370390182004200536028c182004200936028818200c20044190146a41b0031085051a200d200f370300200a20042903c801370300200a41086a2007290300370300200a41106a2006290300370300200420103703d81b0240024020080d00202a202010f103450d00200441f0086a20044188186a41f8031085051a200441e0006a200441f0086a10ed030c010b20044188186a109a010b20042802981c2205450d0220042005417f6a3602981c200441801c6a410020042802841c1b220628020021070240024020062802082208200628020422092f01a6294f0d00200921050c010b0340024020092802a02922050d00410021050c020b200741016a210720092f01a429210820052109200820052f01a6294f0d000b0b024002402007450d00200841027420056a41ac296a280200210902402007417f6a2207450d00034020092802a82921092007417f6a22070d000b0b410021070c010b200841016a2107200521090b2006200936020420064100360200200620073602082005200841d0036c6a2109200520084104746a41f0276a21050c000b0b200441d0106a201b10e803200441801c6a41186a200441d0106a41186a280200360200200441801c6a41106a200441d0106a41106a290300370300200441801c6a41086a200441d0106a41086a290300370300200420042903d0103703801c034020042802981c2205450d0120042005417f6a3602981c200441801c6a410020042802841c1b220628020021070240024020062802082208200628020422092f01ae2b4f0d00200921050c010b200921050340024020052802a82b22050d00410021050c020b200741016a210720092f01ac2b210820052109200820052f01ae2b4f0d000b0b024002402007450d00200841027420056a41b42b6a280200210902402007417f6a2207450d00034020092802b02b21092007417f6a22070d000b0b410021070c010b200841016a2107200521090b200620093602042006410036020020062007360208200441f0086a2005200841f8036c6a10f00320042802f008410c460d0120044190146a200441f0086a41f8031085051a20044188186a20044190146a41f8031085051a02402004280288184109470d00200b28020c2205200428029418470d00200b280204200428028c1820051088050d00200441f0086a20044190146a41f8031085051a200441e0006a200441f0086a10ed030c010b20044188186a109a010c000b0b200b41f8036a220b2019470d000b200441d0106a21050c060b102a000b102c000b41b2abc200412b41d4a8c200102d000b200042013703002000410536020841012109410121070b410121080c030b20044188186a200341106a41f8031085051a2003410c6a2802002105200341086a2802002107200341046a28020021080240024020034188046a290300220f20034190046a2903007c200f54220a0d0020044188186a41206a2109200441e01b6a2903002112200441d81b6a290300211320044188186a41186a290300211020044188186a41106a290300211120044188186a41086a290300210f200428028c18210602400240024002400240024002400240024002400240024002402004280288180e0c01000a0b0608070903050204010b2002290200210f2002290208211020024200370204200441dc106a2010370200200241106a2209290200211020094200370200200441e4106a2010370200200441003602d0102004200f3702d4100c0b0b200441e4106a4200370200200441d8106a4200370300200441003602d0100c0a0b20044190146a41186a2010370300200441a0146a20113703002004200f3703981420044190146a41206a200941b0031085051a2004410036029014200441d0106a200220044190146a2013201210f2030c090b20044198146a200f37030020042006360294142004410136029014200441d0106a200220044190146a2011201010f2030c080b20044190146a41186a201037030020044190146a41106a20113703002004200f3703981420044190146a41206a200941b0031085051a2004410036029014200441d01f6a41106a200441e81b6a290300370300200441d01f6a41186a200441f01b6a290300370300200441d01f6a41206a200441f81b6a290300370300200420123703d81f200420133703d01f200441d0106a200220044190146a200441d01f6a10f3030c070b20044190146a41086a200f37030020042006360294142004410136029014200441d01f6a41106a2009290300370300200441d01f6a41186a200941086a290300370300200441d01f6a41206a200941106a290300370300200420103703d81f200420113703d01f200441d0106a200220044190146a200441d01f6a10f3030c060b200441801c6a41086a220b200f370300200441c0056a22094200370300200442003702b405200420063602841c200441013602801c20044190146a2002200441801c6a10f40302402004280290144102460d00200441e8176a290300210f20042903e0172110200441d01f6a20044190146a41d0031085051a200441b0056a200441d01f6a2010200f10f5030b200441dc106a200441b0056a41086a290300370200200441e4106a2009290300370200200420042903b0053702d410200441003602d010024020042802801c0d00200b109c010c060b20042802881c450d0520042802841c10300c050b200441801c6a41186a2010370300200441801c6a41106a20113703002004200f3703881c200441801c6a41206a200941b0031085051a200441b0056a41106a22094200370300200442003702b405200441003602801c20044190146a2002200441801c6a10f40302402004280290144102460d00200441e8176a290300210f20042903e0172110200441d01f6a20044190146a41d0031085051a200441b0056a200441d01f6a2010200f10f5030b200441dc106a200441b0056a41086a290300370200200441e4106a2009290300370200200420042903b0053702d410200441003602d010024020042802801c0d00200441801c6a41086a109c010c050b20042802881c450d0420042802841c10300c040b20044198146a2209200f37030020042006360294142004410136029014200441d0106a410472200220044190146a10f603200441003602d01002402004280290140d002009109c010c040b200428029814450d0320042802941410300c030b20044190146a41186a2010370300200441a0146a20113703002004200f3703981420044190146a41206a200941b0031085051a2004410036029014200441d0106a410472200220044190146a10f603200441003602d01002402004280290140d0020044198146a109c010c030b200428029814450d0220042802941410300c020b2002290200210f2002280208210920024200370204200441e4106a4200370200200441dc106a2009360200200441003602d0102004200f3702d4100c010b200441d0106a41106a200229020c370300200441d8106a4200370300200241146a2802002109200241106a4200370200200441d0106a41186a2009360200200441003602d0100b024020042802d0104101470d0020004201370300200041143602080c020b200441d0016a200441e4106a290200220f3703002004200441d0106a410c6a29020022103703c80120042902d410211120044180096a200f370300200420113703f008200420103703f808200441f0086a10f703200441f0086a410c6a10f80320004201370300200041023602080c010b20004201370300200042013703080b02402005450d00200541e8036c21092008210503402005109601200541e8036a2105200941987c6a22090d000b0b02402007450d00200741e8036c450d00200810300b0240200a450d0020044188186a109a010b4100210a4101210941012107410121080c030b200441d0106a41106a200441e0006a41106a290300370300200441d0106a41086a200441e0006a41086a290300370300200420042903603703d0100b200441f0086a200441d01f6a10f001200441d0106a200441f0086a10e90320044190146a20042802d01020042802d41020042802d81010e40320044188186a41086a200441d0106a41146a280200360200200420042902dc1037038818200441801c6a20044188186a10e503200441a4186a20044190146a41186a28020036020020044188186a41146a20044190146a41106a29030037020020044194186a20044190146a41086a290300370200200441ac186a20042903801c370200200441b4186a200441801c6a41086a290300370200200441bc186a200441801c6a41106a290300370200200441c4186a200441801c6a41186a280200360200200420042903901437028c18200441013602a8182004410136028818200441e0006a20044188186a10ea03200441f0086a109c0120042903d01f210f20044190146a200441d01f6a41086a41c0031085051a200441b0056a410b6a200441e0006a41086a280200360000200420042903603700b305200420042900b0053703c8012004200441b7056a2900003700cf0120044188186a200441f0086a41d0031085051a200520044190146a41c0031085051a200441801c6a20044190146a41c0031085051a200041186a200441801c6a41c0031085051a200041f0036a20044188186a41d0031085051a200041d8036a41033a0000200041106a200f3702002000202b36020c2000410b360208200020042903c8013700d903200041e0036a20042900cf01370000200041e8036a20143703002000420137030002402017450d00201741f8036c21092016210503402005109a01200541f8036a2105200941887c6a22090d000b0b02402015450d00201541f8036c450d00201610300b4100210841012109410121070b4101210a0b41012106410121050c0b0b20042005417f6a3602ec05200441d4056a4100200441d8056a220928020022051b220c280200210702400240200441dc056a410820051b220d28020022082009410420051b220e28020022092f01ae2b4f0d00200921050c010b200921050340024020052802a82b22050d00410021050c020b200741016a210720092f01ac2b210820052109200820052f01ae2b4f0d000b0b024002402007450d00200841027420056a41b42b6a280200210902402007417f6a2207450d00034020092802b02b21092007417f6a22070d000b0b410021070c010b200841016a2107200521090b200e2009360200200c4100360200200d200736020020044188186a2005200841f8036c6a10f00320042802f008410c460d00200441f0086a109a010b200428028818410c470d010b200441d0106a41106a20044188056a41106a290300370300200441d0106a41086a220520044188056a41086a29030037030020042004290388053703d010200441f0086a200441801c6a10f001200441d0106a200441f0086a10e90320044190146a20042802d01020042802d410200528020010e40320044188186a41086a200441d0106a41146a280200360200200420042902dc1037038818200441d01f6a20044188186a10e503200441a4186a20044190146a41186a28020036020020044188186a41146a20044190146a41106a29030037020020044194186a20044190146a41086a290300370200200441ac186a20042903d01f370200200441b4186a200441d01f6a41086a290300370200200441bc186a200441d01f6a41106a290300370200200441c4186a200441d01f6a41186a280200360200200420042903901437028c18200441013602a8182004410136028818200441b0056a20044188186a10ea03200441f0086a109c0120042903801c210f200441f0086a410b6a200441b0056a41086a280200360000200420042903b0053700f308200420042900f008370388182004200441f7086a29000037008f18200041186a200441801c6a41086a41c0031085051a200041d8036a41013a0000200041106a200f3702002000410b360208200041f0036a2006360200200041ec036a200a360200200041e8036a200b3602002000420137030020002004290388183700d903200041e0036a200429008f183700000c010b20044190146a20044188186a41f8031085051a200441f0086a20044190146a41f8031085051a2000420137030020004102360208200441f0086a109a0120044188056a10dc03024020044198056a2802002205450d0002402004280294052209450d00034020052802b02b21052009417f6a22090d000b0b200441003602f808200420053602f408200441003602f00820042004419c056a2802003602fc08200441f0086a10dd030b02402006450d0020064198046c2109200b21050340200510a00120054198046a2105200941e87b6a22090d000b0b0240200a450d00200a4198046c450d00200b10300b200441801c6a109c010b410021064101210941012107410121084101210a410121050c060b4100210b0c030b200841016a21092005200841d0036c6a210a200520084104746a220841f8276a210b200841f0276a210802402007450d00200520094102746a41a8296a280200210502402007417f6a2209450d00034020052802a82921052009417f6a22090d000b0b410021090b200b29030021102008290300210f200a2802082108200a28020c210b200a280204210c200a2802002107200441d01f6a200a41106a41c0031085051a0b200441801c6a200441d01f6a41c0031085051a2004200936026c2004200536026820044100360264024002402007450d0020044188096a201037030020044180096a200f3703002004200c3602f408410821050c010b20044180096a200441801c6a41c0031085051a200441c80c6a2010370300200441c00c6a200f370300410a21050b200441fc086a200b360200200441f8086a2008360200200420053602f00820044188186a200441f0086a41f8031085051a4101210b0b2004280288182205410c460d0020044188186a410c6a280200210920044188186a41086a2802002108200428028c18210a200441b0056a20044188186a41106a41c0031085051a200441a8056a200441f81b6a290300370300200441a0056a200441f01b6a29030037030020044188056a41106a200441e81b6a29030037030020044188056a41086a200441e01b6a2903003703002004200441d81b6a290300370388050c010b0240024002402004280280014101470d002004419c016a2802002205450d0020042005417f6a36029c01024020044188016a2802002209450d00200428028401210702402004418c016a280200220820092f01ae2b4f0d00200921052007210a0c030b03400240024020092802a82b22050d00410021050c010b200741016a210a20092f01ac2b21080b024041e02b41b02b20071b450d00200910300b024020050d004102210d0c050b20052109200a2107200820052f01ae2b490d030c000b0b41b2abc200412b41d4a8c200102d000b0240200b450d00200610e6030b0240200428028001450d0020044188016a2802002205450d002004418c016a2802002109200428028401210720042004419c016a2802003602fc08200420093602f808200420053602f408200420073602f008200441f0086a10dd030b20044190146a109c01200041086a420037030020004200370300024020032d0000220541074b0d00410120057441f601710d050b200310f9030c040b200841016a210c2005200841f8036c6a21070240200a450d002005200c4102746a41b02b6a28020021050240200a417f6a2209450d00034020052802b02b21052009417f6a22090d000b0b4100210c0b20072802082108200728020c21092007280204210a2007280200210d200441f0086a200741106a41c0031085051a200441a01c6a200741f0036a290200370300200441981c6a200741e8036a290200370300200441801c6a41106a200741e0036a290200370300200441881c6a200741d8036a290200370300200420072902d0033703801c0b200441d01f6a200441f0086a41c0031085051a200441a8106a41206a2207200441801c6a41206a290300370300200441a8106a41186a220e200441801c6a41186a290300370300200441a8106a41106a221f200441801c6a41106a290300370300200441a8106a41086a2220200441801c6a41086a290300370300200420042903801c3703a8102004200c36028c012004200536028801200441003602840102400240200d450d00200441b0056a41206a2007290300370300200441b0056a41186a200e290300370300200441b0056a41106a201f290300370300200441b0056a41086a2020290300370300200420042903a8103703b005410921050c010b200441b0056a200441d01f6a41c0031085051a20044188056a41206a200729030037030020044188056a41186a200e29030037030020044188056a41106a201f29030037030020044188056a41086a2020290300370300200420042903a81037038805410b21050b200428028818410c460d0020044188186a109a010b200441c8016a200441b0056a41c0031085051a200441a0016a41206a220720044188056a41206a290300370300200441a0016a41186a220c20044188056a41186a290300370300200441a0016a41106a220d20044188056a41106a290300370300200441a0016a41086a220e20044188056a41086a29030037030020042004290388053703a001200441fc086a2009360200200441f0086a41086a20083602002004200a3602f408200420053602f008200441f0086a41106a200441c8016a41c0031085051a2000410236020820004201370300200441e00c6a2007290300370300200441d80c6a200c290300370300200441d00c6a200d290300370300200441c80c6a200e290300370300200441c00c6a20042903a001370300200441f0086a109a010240200b450d00200610e6030b0240200428028001450d0020044188016a2802002205450d002004418c016a2802002109200428028401210720042004419c016a2802003602fc08200420093602f808200420053602f408200420073602f008200441f0086a10dd030b20044190146a109c01410021054101210941012107410121084101210a410121060b024002400240024002400240024020032d0000417f6a0e0700010602030405060b2005450d0602402003410c6a2802002209450d00200341046a2802002105200941f8036c210903402005109a01200541f8036a2105200941887c6a22090d000b0b0240200341086a2802002205450d00200541f8036c450d00200328020410300b200341106a109c010c060b2006450d0502402003410c6a2802002209450d00200341046a2802002105200941f8036c210903402005109a01200541f8036a2105200941887c6a22090d000b0b0240200341086a2802002205450d00200541f8036c450d00200328020410300b200341206a109c010240200341186a2802002209450d00200341106a280200210520094198046c21090340200510a00120054198046a2105200941e87b6a22090d000b0b200341146a2802002205450d0520054198046c450d05200328021010300c050b2009450d0402402003410c6a2802002209450d00200341046a2802002105200941f8036c210903402005109a01200541f8036a2105200941887c6a22090d000b0b0240200341086a2802002205450d00200541f8036c450d00200328020410300b200341206a109c010240200341186a2802002209450d00200341106a280200210520094198046c21090340200510a00120054198046a2105200941e87b6a22090d000b0b200341146a2802002205450d0420054198046c450d04200328021010300c040b2007450d0302402003410c6a2802002209450d00200341046a2802002105200941f8036c210903402005109a01200541f8036a2105200941887c6a22090d000b0b0240200341086a2802002205450d00200541f8036c450d00200328020410300b200341206a109c010240200341186a2802002209450d00200341106a280200210520094198046c21090340200510a00120054198046a2105200941e87b6a22090d000b0b200341146a2802002205450d0320054198046c450d03200328021010300c030b2008450d02200341186a109c0102402003410c6a2802002209450d00200341046a2802002105200941f8036c210903402005109a01200541f8036a2105200941887c6a22090d000b0b200341086a2802002205450d02200541f8036c450d02200328020410300c020b200a450d01200341106a109a0102402003410c6a2802002209450d00200341046a2802002105200941e8036c210903402005109601200541e8036a2105200941987c6a22090d000b0b200341086a2802002205450d01200541e8036c450d01200328020410300c010b200310f9030b200441a0236a24000bd64104207f037e057f027e230041a0206b22032400200341086a41106a42003703002003420037020c200228020022042002280208220541f8036c22066a210720022802042108200421090240024002402005450d00200341086a410c6a210a2001410c6a210b200641887c6a210c200341981c6a410472210d200341981c6a41d0036a210e20034198146a41cc036a210f200341a0186a41cc036a211020034198146a41086a211120034198146a4104722112200341a0186a4104722113200341a0186a41086a2114200341a0106a4104722115200341a0106a41086a2116200341981c6a41086a2117200341800c6a4104722118200341800c6a41086a211920034190086a410472211a20034190086a41086a211b20034198146a41046a211c200341a0106a41d0036a211d200341800c6a41106a211e200341981c6a41046a211f200341800c6a41d0036a212020034198046a410472212120034198146a41d8036a21222004210903402009220241f8036a210920022802002205410c460d01200341246a200241046a41f4031085051a20032005360298042021200341246a41f4031085051a024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024020050e0c170001020e0b0d0a07050804170b2001290210212320014200370210200129020021242001290208212520014200370204200041106a2023370200200020253702082000202437020020034198046a109a01024020072009460d0003402009109a01200941f8036a2109200c41887c6a220c0d000b0b02402008450d00200841f8036c450d00200410300b200341086a10dc0320032802182102200341003602182002450d1b024020032802142205450d00034020022802b02b21022005417f6a22050d000b0b200341003602a01c2003200236029c1c200341003602981c2003200328021c3602a41c200341981c6a10dd030c1b0b200128020821022001280204210520014200370204200341a0106a20012802002005200210fd03200341a0186a41186a200341a0106a41186a2802002202360200200341a0186a41106a200341a0106a41106a29030037030020142016290300370300200320032903a0103703a0182002450d1420032002417f6a22263602b81820032802a4182202450d0120032802a018212720032802a818222820022f01a629490d1203400240024020022802a02922050d00410021050c010b202741016a210620022f01a42921280b024041d82941a82920271b450d00200210300b024020050d00410221050c150b2006212720052102202820052f01a6294f0d000b20052102200621270c120b2019200b41086a280200220236020020014100360214200b290200212320014100360210200320233703800c20172002360200200320233703981c200341a0106a200341981c6a10d20320032802a010210620032802a410210220032802a8102128024020032802b81022260d0020022105202821270c100b02402002450d000240202820022f01ae2b4f0d0020022105200621290c0f0b03400240024020022802a82b22050d00410021050c010b200641016a212920022f01ac2b21280b024041e02b41b02b20061b450d00200210300b024020050d00410221020c110b2005210220292106202820052f01ae2b490d0f0c000b0b41b2abc200412b41d4a8c200102d000b41b2abc200412b41d4a8c200102d000b200341800c6a20034198046a41f8031085051a0c010b200341800c6a20034198046a41f8031085051a0b024002400240024020032802800c41776a0e03020001000b41d8a5c200412841c4dec100102d000b201f201941c8031085051a200341a0186a41206a202041206a290300370300200341a0186a41186a202041186a290300370300200341a0186a41106a202041106a2903003703002014202041086a290300370300200320202903003703a01820034198146a200341981c6a41cc031085051a410021020c010b2011201841086a2802003602002014201e41086a290300370300200341a0186a41106a201e41106a290300370300200341a0186a41186a201e41186a290300370300200341a0186a41206a201e41206a29030037030020032018290200370398142003201e2903003703a018410121020b20034190086a20034198146a41cc031085051a200341f80f6a41206a2205200341a0186a41206a290300370300200341f80f6a41186a2206200341a0186a41186a290300370300200341f80f6a41106a2227200341a0186a41106a290300370300200341f80f6a41086a22282014290300370300200320032903a0183703f80f201520034190086a41cc031085051a201d41206a2005290300370300201d41186a2006290300370300201d41106a2027290300370300201d41086a2028290300370300201d20032903f80f370300200320023602a010024020012802102228450d00200b2802002126034020282f01ae2b222a41f8036c21294100210241ac2b2106417f2105024002400340024020292002470d00202a21050c020b200541016a2105200641046a2106202820026a2127200241f8036a2102200341a0106a2027109001222741ff01714101460d000b0240202741187441187541016a0e020100010b200341003a00f00b024002402026450d00202820066a2802002102024020264101460d00410121050340200220022f01ae2b4102746a41b02b6a28020021022026200541016a2205470d000b0b20022f01ae2b2105200341003602a01820032005417f6a410020051b3602a81820032002410020051b3602a418200341981c6a200341a0186a200341f00b6a109504200341a0186a200341981c6a41f8031085051a200328029020210502400240200328029820220620032802942022272f01ae2b4f0d00202721020c010b202721020340024020022802a82b22020d00410021020c020b200541016a210520272f01ac2b210620022127200620022f01ae2b4f0d000b0b200341981c6a2002200641f8036c6a222741f8031085051a2027200341a0186a41f8031085051a02402005450d002005417f6a2205450d00200641027420026a41b42b6a2802002102034020022802b02b21022005417f6a22050d000b0b20034198146a200341981c6a41f8031085051a0c010b200320053602a01c2003202836029c1c200341003602981c20034198146a200341981c6a200341f00b6a1095040b2003280298142102200341a0186a201241f4031085051a20012001280214417f6a36021402400240024020032d00f00b450d0020012802102205450d01200b2802002227450d0220052802b02b210620012027417f6a36020c20012006360210200641003602a82b200510300b20024102460d03200320023602981c200d200341a0186a41f4031085051a200a200341981c6a10ee030c030b41b2abc200412b41d0acc200102d000b41b7a2c200412141d8a2c200102d000b2026450d002026417f6a2126202820054102746a41b02b6a28020021280c010b0b20032802a01021020b0240024020020d002016109c010c010b20032802a810450d0020032802a41010300b024020032d00f0134106490d0020032802f813450d0020032802f41310300b024020032802800c41776a0e03120012000b200341800c6a109a010c110b200341981c6a20034198046a41f8031085051a0c010b200341981c6a20034198046a41f8031085051a0b024002400240024020032802981c41786a0e03020001000b41d8a5c200412841b4dec100102d000b200341981c6a41d8036a290300212320032903e81f2124201c201741c8031085051a200341a0186a20034198146a41cc031085051a410021020c010b2014200d41086a2802003602002003200d2902003703a018200341981c6a41186a290300212320032903a81c2124410121020b200320023602800c2018200341a0186a41cc031085051a0240024020012802042229450d00200128020021260340202941e0276a212720292f01a629222a41d0036c2102417f21062029210502400340024020020d00202a21060c020b200641016a2106202741106a2127200241b07c6a2102200341800c6a20051091012128200541d0036a2105202841ff01714101460d000b0240202841187441187541016a0e020100010b0240024002402027290300222b202458202741086a290300222520235820252023511b0d000240024020032802800c4101470d00200328028c0c2202417f4c0d0420032802840c2127410121054101210602402002450d002002102f2206450d040b200320023602a0142003200636029c142006202720021085051a200320023602a4140c010b2011201910db03410021050b2003200536029814200120034198146a202b20247d202520237d202b202454ad7d108d0420034198146a200341800c6a41d0031085051a200341086a20034198146a2024202310ef030c060b024020012802042228450d0020012802002126034020282f01a629222a41d0036c21294100210241a4292106417f210502400340024020292002470d00202a21050c020b202820026a2127200541016a2105200641046a2106200241d0036a2102200341800c6a2027109101222741ff01714101460d000b0240202741187441187541016a0e020100010b200341003a009008024002402026450d00202820066a2802002102024020264101460d00410121050340200220022f01a6294102746a41a8296a28020021022026200541016a2205470d000b0b20022f01a6292105200341003602a01020032005417f6a410020051b3602a81020032002410020051b3602a41020034198146a200341a0106a20034190086a108b01200341a0106a20034198146a41d0031085051a2022290300212320032903e817212420032802f817212702400240200328028018220620032802fc1722052f01a6294f0d00200521020c010b0340024020052802a02922020d00410021020c020b202741016a212720052f01a429210620022105200620022f01a6294f0d000b0b20034198146a2002200641d0036c6a220541d0031085051a2005200341a0106a41d0031085051a200220064104746a220541f0276a2228290300212c20282024370300200541f8276a220529030021242005202337030002402027450d002027417f6a2205450d00200641027420026a41ac296a2802002102034020022802a82921022005417f6a22050d000b0b200341a0186a20034198146a41d0031085051a200341a0186a41d8036a20243703002003202c3703f01b0c010b200320053602a0142003202836029c142003410036029814200341a0186a20034198146a20034190086a108b010b20032802a0182102200341a0106a201341dc031085051a20012001280208417f6a36020802400240024020032d009008450d0020012802042205450d0120012802002227450d0220052802a829210620012027417f6a36020020012006360204200641003602a029200510300b20024102460d0420032002360298142012200341a0106a41dc031085051a024020020d002011109c010c050b20032802a014450d04200328029c1410300c040b41b2abc200412b41d0acc200102d000b41b7a2c200412141d8a2c200102d000b2026450d012026417f6a2126202820054102746a41a8296a28020021280c000b0b20034198146a200341800c6a41d0031085051a200341086a20034198146a202b202510ef030c050b102a000b102c000b02402026450d002026417f6a2126202920064102746a41a8296a28020021290c010b0b20032802800c21020b024020020d002019109c010c010b20032802880c450d0020032802840c10300b024020032802981c41786a0e030f000f000b200341981c6a109a010c0e0b20034198146a20034198046a41f8031085051a0c010b20034198146a20034198046a41f8031085051a0b0240024002400240200328029814417b6a0e03020001000b41d8a5c200412841a4dec100102d000b201b201141c8031085051a410021020c010b201a2012290200370200201a41086a201241086a280200360200410121020b2003200236029008200342003702e40b200341f00b6a41086a200b41086a222a280200220236020020014100360214200b290200212320014100360210200320233703f00b20172002360200200320233703981c200341f80f6a200341981c6a10d20320032802f80f210620032802fc0f210220032802801021280240024020032802901022260d0020022105202821270c010b0240024002402002450d000240202820022f01ae2b4f0d0020022105200621290c020b03400240024020022802a82b22050d00410021050c010b200641016a212920022f01ac2b21280b024041e02b41b02b20061b450d00200210300b024020050d00410221020c040b2005210220292106202820052f01ae2b490d020c000b0b41b2abc200412b41d4a8c200102d000b202841016a21272005202841f8036c6a210602402029450d00200520274102746a41b02b6a280200210502402029417f6a2202450d00034020052802b02b21052002417f6a22020d000b0b410021270b20062802002102200341981c6a200641046a41f4031085051a0b200341a0106a200341981c6a41f4031085051a0340200341a0186a200341a0106a41f4031085051a200320023602800c2018200341a0106a41cc031085051a2026417f6a2126024002402003280290082002470d000240024020024101460d00201b201910f1030d010c020b200328029c082202200328028c0c470d0120032802940820032802840c20021088050d010b200341981c6a200341800c6a41d0031085051a200e41206a201041206a290200370200200e41186a201041186a290200370200200e41106a201041106a290200370200200e41086a201041086a290200370200200e2010290200370200200a200341981c6a1096040c010b200341981c6a200341800c6a41d0031085051a200e41206a201041206a290200370200200e41186a201041186a290200370200200e41106a201041106a290200370200200e41086a201041086a290200370200200e2010290200370200200341e00b6a200341981c6a10ee030b024020260d00410021060c020b02402005450d000240024002400240202720052f01ae2b490d0041002106034041002102024020052802a82b2229450d00200641016a212820052f01ac2b2127202921020b024041e02b41b02b20061b450d00200510300b024020020d00410221020c050b2002210520282106202720022f01ae2b4f0d000b2002202741f8036c6a2106024020280d00200221050c020b202741027420026a41b42b6a280200210502402028417f6a2202450d00034020052802b02b21052002417f6a22020d000b0b410021270c020b2005202741f8036c6a21060b202741016a21270b20062802002102200341981c6a200641046a41f4031085051a0b200341a0106a200341981c6a41f4031085051a0c010b0b41b2abc200412b41d4a8c200102d000b02402005450d00200341003602a41c200320273602a01c2003200536029c1c200320063602981c200341981c6a10dd030b2014200341e00b6a41086a2802003602002001280210210220014100360210200320032903e00b3703a01802402002450d000240200128020c2205450d00034020022802b02b21022005417f6a22050d000b0b200341003602a01c2003200236029c1c200341003602981c200320012802143602a41c200341981c6a10dd030b200b20032903a018370200202a2014280200360200024002402003280290080d00201b109c010c010b200328029808450d0020032802940810300b0240200328029814417b6a0e030c000c000b20034198146a109a010c0b0b200341981c6a20034198046a41f8031085051a0c010b200341981c6a20034198046a41f8031085051a0b024002400240024020032802981c417c6a0e03020001000b41d8a5c20041284194dec100102d000b2016201741c8031085051a410021020c010b2015200d290200370200201541086a200d41086a280200360200410121020b200320023602a010200128020421022001280208210520014200370204200342003702f40b200341f80f6a20012802002002200510fd0320034190086a41186a200341f80f6a41186a280200220236020020034190086a41106a200341f80f6a41106a290300370300201b200341f80f6a41086a290300370300200320032903f80f3703900802402002450d0020032002417f6a22263602a8080240024002402003280294082202450d002003280290082127200328029808222820022f01a629490d0103400240024020022802a02922050d00410021050c010b202741016a210620022f01a42921280b024041d82941a82920271b450d00200210300b024020050d00410221050c040b2006212720052102202820052f01a6294f0d000b20052102200621270c010b41b2abc200412b41d4a8c200102d000b202841016a21062002202841d0036c6a2129200220284104746a220541f8276a2128200541f0276a212a02402027450d00200220064102746a41a8296a280200210202402027417f6a2205450d00034020022802a82921022005417f6a22050d000b0b410021060b20282903002124202a29030021232029280200210520034198146a202941046a41cc031085051a0b200341800c6a20034198146a41cc031085051a0340200320063602980820032002360294082003410036029008200320053602a0182013200341800c6a41cc031085051a02400240200520032802a010470d000240024020054101460d002014201610f103450d020c010b20032802ac18220520032802ac10470d0120032802a41820032802a41020051088050d010b20034198146a200341a0186a41d0031085051a200341086a20034198146a2023202410ef030c010b20034198146a200341a0186a41d0031085051a200341f00b6a20034198146a20232024108d040b2026450d0120032026417f6a22263602a80802400240024002402002450d00200620022f01a629490d0141002106034041002105024020022802a0292229450d00200641016a212820022f01a4292127202921050b024041d82941a82920061b450d00200210300b024020050d00410221050c050b2028210620052102202720052f01a6294f0d000b202741016a21062005202741d0036c6a2129200520274104746a220241f8276a2903002124200241f0276a2903002123024020280d00200521020c030b200520064102746a41a8296a280200210202402028417f6a2205450d00034020022802a82921022005417f6a22050d000b0b410021060c020b41b2abc200412b41d4a8c200102d000b2002200641d0036c6a2129200220064104746a220541f8276a2903002124200541f0276a2903002123200641016a21060b2029280200210520034198146a202941046a41cc031085051a0b200341800c6a20034198146a41cc031085051a0c000b0b20034190086a10e603200110dc03200141086a200341f00b6a41086a280200360200200120032903f00b3702000240024020032802a0100d002016109c010c010b20032802a810450d0020032802a41010300b024020032802981c417c6a0e03090009000b200341981c6a109a010c080b202841016a21272005202841f8036c6a210602402029450d00200520274102746a41b02b6a280200210502402029417f6a2202450d00034020052802b02b21052002417f6a22020d000b0b410021270b20062802002102200341981c6a200641046a41f4031085051a0b200341a0186a200341981c6a41f4031085051a0240034020034198146a200341a0186a41f4031085051a200320023602981c200d200341a0186a41cc031085051a200e41206a200f41206a290200370200200e41186a200f41186a290200370200200e41106a200f41106a290200370200200e41086a200f41086a290200370200200e200f290200370200200a200341981c6a1096042026417f6a2226450d012005450d030240024002400240202720052f01ae2b490d0041002106034041002102024020052802a82b2229450d00200641016a212820052f01ac2b2127202921020b024041e02b41b02b20061b450d00200510300b024020020d00410221020c050b2002210520282106202720022f01ae2b4f0d000b2002202741f8036c6a2106024020280d00200221050c020b202741027420026a41b42b6a280200210502402028417f6a2202450d00034020052802b02b21052002417f6a22020d000b0b410021270c020b2005202741f8036c6a21060b202741016a21270b20062802002102200341981c6a200641046a41f4031085051a0b200341a0186a200341981c6a41f4031085051a0c000b0b410021060b2005450d04200341003602a41c200320273602a01c2003200536029c1c200320063602981c200341981c6a10dd030c040b41b2abc200412b41d4a8c200102d000b202841016a21062002202841d0036c6a2129200220284104746a220541f8276a2128200541f0276a212a02402027450d00200220064102746a41a8296a280200210202402027417f6a2205450d00034020022802a82921022005417f6a22050d000b0b410021060b20282903002124202a290300212320292802002105200341981c6a202941046a41cc031085051a0b20034198146a200341981c6a41cc031085051a0340200320063602a818200320023602a418200341003602a018200320053602981c200d20034198146a41cc031085051a200341086a200341981c6a2023202410ef032026450d0120032026417f6a22263602b81802400240024002402002450d00200620022f01a629490d0141002106034041002105024020022802a0292229450d00200641016a212820022f01a4292127202921050b024041d82941a82920061b450d00200210300b024020050d00410221050c050b2028210620052102202720052f01a6294f0d000b202741016a21062005202741d0036c6a2129200520274104746a220241f8276a2903002124200241f0276a2903002123024020280d00200521020c030b200520064102746a41a8296a280200210202402028417f6a2205450d00034020022802a82921022005417f6a22050d000b0b410021060c020b41b2abc200412b41d4a8c200102d000b2002200641d0036c6a2129200220064104746a220541f8276a2903002124200541f0276a2903002123200641016a21060b20292802002105200341981c6a202941046a41cc031085051a0b20034198146a200341981c6a41cc031085051a0c000b0b200341a0186a10e6030b20034198046a109a010b200c41887c6a210c20092007470d000c020b0b20072009460d0003402009109a012007200941f8036a2209470d000b0b02402008450d00200841f8036c450d00200410300b20002003290308370200200041106a200341086a41106a290300370200200041086a200341086a41086a2903003702000b200341a0206a24000bf80101037f230041206b220424000240024002402002450d00200221050240034020022f01a6292106024020010d002001450d020c050b2001450d042001417f6a2101200220064102746a41a8296a280200210220052802a82921050c000b0b2000200136020c200041003602082000200536020420002001360200200041146a2006360200200041106a20023602000c010b4100210320004100360204200041106a41003602000b20002003360218200441206a24000f0b200441146a410136020020044201370204200441f4a9c2003602002004410436021c200441eca9c2003602182004200441186a360210200441fca9c200103a000b8b0201057f230041206b2202240002400240024020012802042203450d002001280208210420012802002101200321050240034020032f01ae2b2106024020010d002001450d020c050b2001450d042001417f6a2101200320064102746a41b02b6a280200210320052802b02b21050c000b0b2000200136020c200041003602082000200536020420002001360200200041146a2006360200200041106a20033602000c010b4100210420004100360204200041106a41003602000b20002004360218200241206a24000f0b200241146a410136020020024201370204200241f4a9c2003602002002410436021c200241eca9c2003602182002200241186a360210200241fca9c200103a000b9004020c7f027e230041b0076b22012400200028020421022000410036020402402002450d0020002802002103024020002802182204450d0020002802082105200141d8036a2106200141d0036a4104722107200141a8076a21080340024002400240200520022f01a6294f0d0020022100200321090c010b03400240024020022802a02922000d00410021000c010b200341016a210920022f01a42921050b024041d82941a82920031b450d00200210300b024020000d00410221000c030b2009210320002102200520002f01a6294f0d000b0b200541016a210a2000200541d0036c6a2103200020054104746a220241f8276a210b200241f0276a210c0240024020090d0020002102200a21050c010b2000200a4102746a41a8296a280200210202402009417f6a2200450d00034020022802a82921022000417f6a22000d000b0b410021050b200b290300210d200c290300210e20032802002100200141d0036a200341046a41cc031085051a0b2004417f6a2104200141046a200141d0036a41cc031085051a200120003602d0032007200141046a41cc031085051a2008200d3703002001200e3703a0070240024020000d002006109c010c010b20012802d803450d0020012802d40310300b4100210320040d000b0b034020022802a0292100024041d82941a82920031b450d00200210300b200341016a21032000210220000d000b0b200141b0076a24000b8a0201057f230041206b22022400024002400240200128020422030d004100210420004100360204200041106a41003602000c010b20012802002104200321050240034020032f01a6292106024020040d002004450d020c040b2004450d032004417f6a2104200320064102746a41a8296a280200210320052802a82921050c000b0b2000200436020c200041003602082000200536020420002004360200200041146a2006360200200041106a2003360200200128020821040b20002004360218200241206a24000f0b200241146a410136020020024201370204200241f4a9c2003602002002410436021c200241eca9c2003602182002200241186a360210200241fca9c200103a000b8f0203047f017e017f230041206b22022400024002400240200128020422030d004100210341002104410021010c010b20012802002205ad4220862106200321040240034020032f01ae2b2107024020050d002005450d020c040b2005450d0320064280808080707c21062005417f6a2105200320074102746a41b02b6a280200210320042802b02b21040c000b0b200128020821010b20002001360218200020063702082000200436020420002005360200200041146a2007360200200041106a2003360200200241206a24000f0b200241146a410136020020024201370204200241f4a9c2003602002002410436021c200241eca9c2003602182002200241186a360210200241fca9c200103a000b9c0f03087f027e037f230041c00f6b22022400200028020821032000280204210420004200370204200241c80b6a20002802002004200310e403200242003702fc0720022802cc0b210320022802c80b210402400240024002400240024020022802e00b2205450d000240024002402003450d0020022802d00b220620032f01a629490d0103400240024020032802a02922070d00410021070c010b200441016a210820032f01a42921060b024041d82941a82920041b450d00200310300b024020070d00410221040c040b2008210420072103200620072f01a6294f0d000b20072103200821040c010b41b2abc200412b41d4a8c200102d000b200641016a21082003200641d0036c6a2107200320064104746a220641f8276a2109200641f0276a210602402004450d00200320084102746a41a8296a280200210302402004417f6a2204450d00034020032802a82921032004417f6a22040d000b0b410021080b2009290300210a2006290300210b20072802002104200241c80b6a200741046a41cc031085051a0b2002410c6a200241c80b6a41cc031085051a200241c80b6a410472210c02400340200220043602c80b200c2002410c6a41cc031085051a200241c80b6a200110800520024180046a200241c80b6a41d0031085051a200241c80b6a20024180046a41d0031085051a200241f8076a200241c80b6a200b200a10f5032005417f6a2205450d012003450d030240024002400240200820032f01a629490d0041002107034041002104024020032802a0292209450d00200741016a210620032f01a4292108200921040b024041d82941a82920071b450d00200310300b024020040d00410221040c050b2006210720042103200820042f01a6294f0d000b2004200841d0036c6a2107200420084104746a220341f8276a290300210a200341f0276a290300210b024020060d00200421030c020b200841027420046a41ac296a280200210302402006417f6a2204450d00034020032802a82921032004417f6a22040d000b0b410021080c020b2003200841d0036c6a2107200320084104746a220441f8276a290300210a200441f0276a290300210b0b200841016a21080b20072802002104200241c80b6a200741046a41cc031085051a0b2002410c6a200241c80b6a41cc031085051a0c000b0b410021040b02402003450d00034020032802a0292107024041d82941a82920041b450d00200310300b200441016a21042007210320070d000b0b200010f703200041086a200241f8076a41086a280200360200200020022903f807370200200041146a2802002103200029020c210b200041106a420037020020022003360288042002200b37038004200241c80b6a20024180046a10e5032002420037020420022802c80b210420022802cc0b2107024020022802e00b220d0d00200721030c040b02402007450d00024020022802d00b220620072f01ae2b4f0d0020072103200421090c030b03400240024020072802a82b22030d00410021030c010b200441016a210920072f01ac2b21060b024041e02b41b02b20041b450d00200710300b024020030d00410221040c050b2003210720092104200620032f01ae2b490d030c000b0b41b2abc200412b41d4a8c200102d000b41b2abc200412b41d4a8c200102d000b200641016a21082003200641f8036c6a210702402009450d00200320084102746a41b02b6a280200210302402009417f6a2204450d00034020032802b02b21032004417f6a22040d000b0b410021080b20072802002104200241c80b6a200741046a41f4031085051a0b2002410c6a200241c80b6a41f4031085051a200241c80b6a41cc036a210520024180046a41d0036a210c200241f8076a410472210e02400340200241c80b6a2002410c6a41f4031085051a200220043602f807200e2002410c6a41cc031085051a200241f8076a200110800520024180046a200241f8076a41d0031085051a200c41206a200541206a290200370200200c41186a200541186a290200370200200c41106a200541106a290200370200200c41086a200541086a290200370200200c2005290200370200200241c80b6a20024180046a41f8031085051a2002200241c80b6a109604200d417f6a220d450d012003450d030240024002400240200820032f01ae2b490d0041002107034041002104024020032802a82b2209450d00200741016a210620032f01ac2b2108200921040b024041e02b41b02b20071b450d00200310300b024020040d00410221040c050b2004210320062107200820042f01ae2b4f0d000b2004200841f8036c6a2107024020060d00200421030c020b200841027420046a41b42b6a280200210302402006417f6a2204450d00034020032802b02b21032004417f6a22040d000b0b410021080c020b2003200841f8036c6a21070b200841016a21080b20072802002104200241c80b6a200741046a41f4031085051a0b2002410c6a200241c80b6a41f4031085051a0c000b0b410021040b2000410c6a210802402003450d00034020032802a82b2107024041e02b41b02b20041b450d00200310300b200441016a21042007210320070d000b0b200810f803200841086a200241086a28020036020020082002290300370200200241c00f6a24000f0b41b2abc200412b41d4a8c200102d000b9e0903027f017e047f230041a0056b22022400200241086a41386a200141386a290200370300200241086a41306a200141306a290200370300200241086a41286a200141286a290200370300200241086a41206a200141206a290200370300200241086a41186a200141186a290200370300200241086a41106a200141106a290200370300200241086a41086a200141086a2902003703002002200129020037030820024188016a200241086a109f040240024002400240200228028801410c460d00200228022821030240024020022802084101460d00410021012003450d01200241c4006a28020021010c010b200241246a28020021012003450d00417f2001200241c4006a2802006a220320032001491b21010b0240417f200141016a220320032001491bad42f8037e2204422088a70d002004a72201417f4c0d002001102f2205450d02200520024188016a41f8031085051a200241c8006a41386a200241086a41386a290300370300200241c8006a41306a200241086a41306a290300370300200241c8006a41286a200241086a41286a290300370300200241c8006a41206a200241086a41206a290300370300200241c8006a41186a200241086a41186a290300370300200241c8006a41106a200241086a41106a290300370300200241c8006a41086a200241086a41086a29030037030020022002290308370348200141f8036e210620024188016a200241c8006a109f040240200228028801410c470d00410121010c040b41f8032103410221074101210102400340024020012006470d00200228026821080240024020022802484101460d00200228028401410020081b21060c010b200228026421062008450d00417f20062002280284016a220820082006491b21060b2001417f200641016a220820082006491b6a22062001490d0320072006200720064b1b22064104200641044b1bad42f8037e2204422088a74541037421062004a721080240024020010d0020024100360290050c010b2002410836029805200220033602940520022005360290050b20024180056a2008200620024190056a106920022802880521062002280280054101460d022002280284052105200641f8036e21060b200520036a20024188016a41f8031085051a200341f8036a2103200741026a2107200141016a210120024188016a200241c8006a109f04200228028801410c460d050c000b0b20060d020b102c000b20004200370204200041002802fce44136020002402002280208450d00200241086a41047210e6030b2002280228450d02200241306a2802002201450d022002412c6a2802002103200241346a28020021072002200241c4006a2802003602940120022007360290012002200136028c01200220033602880120024188016a10dd030c020b102a000b02402002280248450d00200241c8006a41047210e6030b02402002280268450d00200241f0006a2802002203450d00200241ec006a2802002107200241f4006a2802002108200220024184016a2802003602940120022008360290012002200336028c01200220073602880120024188016a10dd030b2000200136020820002006360204200020053602000b200241a0056a24000bb006030b7f027e037f230041f0036b2203240002400240024002402001450d0020032001417f6a220420022802a82910eb030240024020032802042201450d00200328020021050c010b41a829102f2201450d0341002105200141003b01a629200141003602a0290b41d829102f2206450d02200620013602a82941002107200641003b01a629200641003602a029200141003b01a429200120063602a029200320063602042003200541016a360200024020022f01a629450d00200641a8296a2108200241f0276a2109200241ac296a210a200641f0276a210b2003280208210c2002210d024002400340200341106a200d108e04200941086a290300210e2009290300210f200341e0036a2004200a28020010eb0320032802e80321100240024020032802e4032201450d0020032802e00321110c010b41a829102f2201450d0741002111200141003b01a629200141003602a0290b024020052011470d0020062f01a6292211410b4f0d022006201141016a22123b01a6292006201141d0036c6a200341106a41d0031085051a200b20114104746a2211200e3703082011200f370300200820124102746a2001360200200120123b01a429200120063602a029200d41d0036a210d200941106a2109200a41046a210a2010200c6a41016a210c200741016a220720022f01a6294f0d030c010b0b41eaa0c2004130419ca1c200102d000b41aca1c200412041cca1c200102d000b2003200c3602080b20002003290300370200200041086a200341086a2802003602000c010b41a829102f2209450d01200941003b01a629200941003602a0294100210a024020022f01a629450d00200241f0276a2101200941f0276a210d4100210a200221110340200341106a2011108e0420092f01a6292206410b4f0d04200141086a290300210e2001290300210f2009200641016a3b01a6292009200641d0036c6a200341106a41d0031085051a200d20064104746a2206200e3703082006200f370300201141d0036a2111200141106a2101200a41016a220a20022f01a629490d000b0b2000200a36020820002009360204200041003602000b200341f0036a24000f0b102a000b41aca1c200412041fc80c200102d000bae0b01107f230041a0046b22032400024002400240024002402001450d00200341086a2001417f6a220420022802b02b10ec0302400240200328020c2201450d00200328020821050c010b41b02b102f2201450d0341002105200141003b01ae2b200141003602a82b0b41e02b102f2206450d02200620013602b02b200641003b01ae2b200641003602a82b200141003b01ac2b200120063602a82b2003200636020c2003200541016a360208024020022f01ae2b450d00200641b02b6a2107200241b42b6a210820032802102109200341186a41d1036a220a41086a210b200a41186a210c200a41106a210d200221014100210e024002400340200341186a2001108e0402400240024002400240024002400240200141d0036a2d00000e0701020304050600010b200141dc036a280200220f417f4c0d0e200141d4036a280200211002400240200f0d00410121110c010b200f102f2211450d0e0b2003200f3602f003200320113602ec0320112010200f1085051a200341063a00e8032003200f3602f4030c060b200341003a00e8030c050b200341186a41e0036a200141e0036a290300370300200341013a00e8032003200141d8036a2903003703f0030c040b200341023a00e8032003200141d1036a2800003600e9030c030b200341033a00e8032003200141d1036a2900003700e9030c020b200b200141d9036a290000370000200a200141d1036a290000370000200341043a00e8030c010b200c200141e9036a290000370000200d200141e1036a290000370000200b200141d9036a290000370000200a200141d1036a290000370000200341053a00e8030b20034190046a2004200828020010ec03200328029804211202400240200328029404220f450d0020032802900421110c010b41b02b102f220f450d0741002111200f41003b01ae2b200f41003602a82b0b024020052011470d0020062f01ae2b2211410b4f0d022006201141016a22103b01ae2b2006201141f8036c6a200341186a41f8031085051a200720104102746a200f360200200f20103b01ac2b200f20063602a82b200141f8036a2101200841046a2108201220096a41016a2109200e41016a220e20022f01ae2b4f0d030c010b0b41eaa0c2004130419ca1c200102d000b41aca1c200412041cca1c200102d000b200320093602100b20002003290308370200200041086a200341086a41086a2802003602000c010b41b02b102f220f450d01200f41003b01ae2b200f41003602a82b41002108024020022f01ae2b450d00200341186a41d1036a221041086a2109201041186a2112201041106a210520022101410021080340200341186a2001108e0402400240024002400240024002400240200141d0036a2d00000e0701020304050600010b200141dc036a2802002206417f4c0d0b200141d4036a280200210e0240024020060d00410121110c010b2006102f2211450d0b0b200320063602f003200320113602ec032011200e20061085051a200341063a00e803200320063602f4030c060b200341003a00e8030c050b200341186a41e0036a200141e0036a290300370300200341013a00e8032003200141d8036a2903003703f0030c040b200341023a00e8032003200141d1036a2800003600e9030c030b200341033a00e8032003200141d1036a2900003700e9030c020b2009200141d9036a2900003700002010200141d1036a290000370000200341043a00e8030c010b2012200141e9036a2900003700002005200141e1036a2900003700002009200141d9036a2900003700002010200141d1036a290000370000200341053a00e8030b200f2f01ae2b2206410b4f0d05200f200641016a3b01ae2b200f200641f8036c6a200341186a41f8031085051a200141f8036a2101200841016a220820022f01ae2b490d000b0b200020083602082000200f360204200041003602000b200341a0046a24000f0b102a000b102c000b41aca1c200412041fc80c200102d000bf50c04067f027e037f017e230041900b6b2202240041012103410121044101210541012106024002400240024002400240024002400240024002400240024002402001280200220741786a0e0403020001060b200141d8036a2903002108200141d0036a2903002109200241086a41046a200141086a41c8031085051a200241003602980720024198076a410472200241086a41cc031085051a0240024020002802042205450d002000280200210a0c010b41a829102f2205450d074100210a200541003b01a629200541003602a02920002005360204200041003602000b0240034020052f01a629220b41d0036c210c4100210741e0272103417f2106024003400240200c2007470d00200b21060c020b200520076a2104200641016a2106200341106a2103200741d0036a210720024198076a2004109101220441ff01714101460d000b0240200441187441187541016a0e020100010b20024198076a108105200520036a2207427f2007290300220d20097c22092009200d542206200741086a2207290300220920087c2006ad7c220820095420082009511b22061b3703002007427f200820061b3703000c020b0240200a450d00200a417f6a210a200520064102746a41a8296a28020021050c010b0b200241a0076a22072802002103200229039807210d200241d4036a200241a4076a220441c4031085051a200720033602002002200d370398072004200241d4036a41c4031085051a200241f00a6a2006360200200241ec0a6a2005360200200220003602f40a200241003602e80a20024198076a200920081082051a0b4101210441002103410121050c030b200241086a41046a200141086a41c8031085051a41002105200241003602980720024198076a410472200241086a41cc031085051a20024198076a41f0036a200141f0036a29030037030020024198076a41e8036a200141e8036a29030037030020024198076a41e0036a200141e0036a29030037030020024198076a41d8036a200141d8036a2903003703002002200141d0036a2903003703e80a2000410c6a20024198076a10960441012103410121040c020b20024198076a410c6a2001410c6a280200360200200241f00a6a200141186a290300370300200241f80a6a200141206a290300370300200241800b6a200141286a290300370300200241880b6a200141306a2903003703004101210320024101360298072002200129020437029c072002200141106a2903003703e80a2000410c6a20024198076a1096044100210641012104410121050c020b200141186a2903002108200141106a290300210920024198076a410c6a2001410c6a28020036020020024101360298072002200129020437029c070240024020002802042205450d002000280200210a0c010b41a829102f2205450d044100210a200541003b01a629200541003602a02920002005360204200041003602000b0240034020052f01a629220b41d0036c210c4100210741e0272103417f2106024003400240200c2007470d00200b21060c020b200520076a2104200641016a2106200341106a2103200741d0036a210720024198076a2004109101220441ff01714101460d000b0240200441187441187541016a0e020100010b20024198076a108105200520036a2207427f2007290300220d20097c22092009200d542206200741086a2207290300220920087c2006ad7c220820095420082009511b22061b3703002007427f200820061b3703000c020b0240200a450d00200a417f6a210a200520064102746a41a8296a28020021050c010b0b200241a0076a22072802002103200229039807210d200241086a200241a4076a220441c4031085051a200720033602002002200d370398072004200241086a41c4031085051a200241f00a6a2006360200200241ec0a6a2005360200200220003602f40a200241003602e80a20024198076a200920081082051a0b4100210441012103410121050b410121060b200128020021070b200741786a0e0405040302010b102a000b2001109a010c040b2005450d03200141086a109c01200141d0036a2d00004106490d03200141d8036a280200450d03200141d4036a28020010300c030b2003450d02200141086a109c010c020b2006450d010240200141086a280200450d00200128020410300b200141106a2d00004106490d01200141186a280200450d01200141146a28020010300c010b2004450d00200141086a280200450d00200128020410300b200241900b6a24000b9a1203077f017e097f230041b0176b22022400200241f8036a200141f8031085051a0240024002400240024002400240024002400240024002400240024020002802042203450d00200028020021040c010b41b02b102f2203450d0141002104200341003b01ae2b200341003602a82b20002003360204200041003602000b034020032f01ae2b220541f8036c210641002101417f210702400340024020062001470d00200521070c020b200741016a2107200320016a2108200141f8036a2101200241f8036a2008109001220841ff01714101460d000b0240200841187441187541016a0e020100010b0240024020022802f8030d0020024180046a109c010c010b200228028004450d0020022802fc0310300b20022d00c8074106490d0d200241d0076a280200450d0d200241cc076a28020010300c0d0b02402004450d002004417f6a2104200320074102746a41b02b6a28020021030c010b0b20024180046a280200210620022903f80321092002410c6a20024184046a41ec031085051a024020032f01ae2b2201410a4b0d00200241f8036a2002410c6a41ec031085051a0240200720014f0d002003200741f8036c6a220841f8036a2008200120076b41f8036c1086051a0b2003200741f8036c6a22072006360208200720093703002007410c6a200241f8036a41ec031085051a2003200141016a3b01ae2b0c0b0b410521014100210502400240200741054f0d0041042101200721080c010b41052108024002402007417b6a0e020201000b200741796a210841012105410621010c010b41002108410121050b41b02b102f220a450d00200a41003b01ae2b200a41003602a82b200a20032f01ae2b220b2001417f736a22073b01ae2b2003200141f8036c6a2204280204210c2004280200210d200241f8036a200441086a41f0031085051a2007410c4f0d01200b200141016a22046b2007470d02200a2003200441f8036c6a200741f8036c1085052104200320013b01ae2b200241c0136a200241f8036a41f0031085051a2004200320051b22012f01ae2b2107200241f8036a2002410c6a41ec031085051a0240200841016a220520074b0d002001200541f8036c6a2001200841f8036c6a200720086b41f8036c1086051a0b2001200841f8036c6a22082006360208200820093703002008410c6a200241f8036a41ec031085051a2001200741016a3b01ae2b200241d00f6a200241c0136a41f0031085051a200241e00b6a200241d00f6a41f0031085051a02400240024020032802a82b22010d004100210e0c010b4100210e2004210f200c2110200d2111034020032f01ac2b2106200122052f01ae2b2203410b490d024100210441042101024020064105490d0020062101024002402006417b6a0e020201000b200641796a210641012104410621010c010b4100210641012104410521010b41e02b102f220a450d03200a41003b01ae2b200a41003602a82b200a20052f01ae2b220b2001417f736a22073b01ae2b2005200141f8036c6a2208280204210c2008280200210d200241f8036a200841086a41f0031085051a2007410c4f0d06200b200141016a22126b2007470d07200a200841f8036a200741f8036c1085052108200520013b01ae2b200241c0136a200241f8036a41f0031085051a20082f01ae2b220741016a210b2007410c4f0d08200320016b2201200b470d09200e41016a210e200841b02b6a200520124102746a41b02b6a20014102741085051a4100210102400340200820014102746a41b02b6a280200220320013b01ac2b200320083602a82b200120074f0d01200120012007496a220120074d0d000b0b200241d00f6a200241c0136a41f0031085051a2008200520041b22032f01ae2b2101200241f8036a200241e00b6a41f0031085051a0240200641016a220720014b0d002003200741f8036c6a2003200641f8036c6a200120066b41f8036c1086051a0b200141016a21042003200641f8036c6a220b2010360204200b2011360200200b41086a200241f8036a41f0031085051a200341b02b6a210b0240200641026a2211200141026a22104f0d00200b20114102746a200b20074102746a200120066b4102741086051a0b200b20074102746a200f360200200320043b01ae2b0240200720104f0d00200320064102746a41b42b6a2101034020012802002207200641016a22063b01ac2b200720033602a82b200141046a210120042006470d000b0b200241e00b6a200241d00f6a41f0031085051a200521032008210f200c2110200d211120052802a82b22010d000b0b200241f0076a200241e00b6a41f0031085051a20002802042207450d082000280200210841e02b102f2201450d01200120073602b02b200141003b01ae2b200141003602a82b200741003b01ac2b200720013602a82b200020013602042000200841016a3602002008200e470d0920012f01ae2b2207410b4f0d0a2001200741016a22083b01ae2b2001200741f8036c6a2207200c3602042007200d360200200741086a200241f0076a41f0031085051a200141b02b6a20084102746a200a360200200a20083b01ac2b200a20013602a82b2000200028020841016a3602080c0c0b200241f8036a200241e00b6a41f0031085051a200641016a21010240200320064d22080d002005200141f8036c6a2005200641f8036c6a200320066b41f8036c1086051a0b200341016a21042005200641f8036c6a2207201036020420072011360200200741086a200241f8036a41f0031085051a200541b02b6a2107200341026a210a024020080d00200641027420076a41086a200720014102746a200320066b4102741086051a0b200520043b01ae2b200720014102746a200f3602002001200a4f0d0a200341016a210320052001417f6a22014102746a41b42b6a2107034020072802002208200141016a22013b01ac2b200820053602a82b200741046a210720032001470d000c0b0b0b102a000b2007410b41e8a2c2001042000b41f8a2c200412841a0a3c200102d000b2007410b41e8a2c2001042000b41f8a2c200412841a0a3c200102d000b200b410c41f8a3c2001042000b41f8a2c200412841a0a3c200102d000b41b2abc200412b41e0abc200102d000b41eaa0c2004130419ca1c200102d000b41aca1c200412041cca1c200102d000b2000200028020841016a3602080b200241b0176a24000be30302087f017e230041b0076b22042400200441d0036a200141d0031085051a02400240024020002802042205450d00200028020021060c010b41a829102f2205450d0141002106200541003b01a629200541003602a02920002005360204200041003602000b0240034020052f01a629220741d0036c21084100210141e0272109417f210a02400340024020082001470d002007210a0c020b200520016a210b200a41016a210a200941106a2109200141d0036a2101200441d0036a200b109101220b41ff01714101460d000b0240200b41187441187541016a0e020100010b200441d0036a108105200520096a2201427f2001290300220c20027c22022002200c54220a200141086a2201290300220220037c200aad7c220320025420032002511b220a1b3703002001427f2003200a1b3703000c020b02402006450d002006417f6a21062005200a4102746a41a8296a28020021050c010b0b200441d8036a2201280200210920042903d003210c2004410c6a200441dc036a220b41c4031085051a200120093602002004200c3703d003200b2004410c6a41c4031085051a200441a8076a200a360200200441a4076a2005360200200420003602ac07200441003602a007200441d0036a200220031082051a0b200441b0076a24000f0b102a000bf20b02097f027e230041b0076b22022400024002400240024020012802004101470d002001410c6a2802002203417f4c0d02200128020421040240024020030d00410121050c010b2003102f2205450d040b200220033602102002200536020c2005200420031085051a200241086a410c6a2003360200200241a0076a41086a2206200241086a410472220341086a280200360200200220032902003703a007410021074100210841002109024002400240024002400240024020012d00d0030e0706010203040500060b200141dc036a2802002205417f4c0d08200141d4036a28020021010240024020050d00410121040c010b2005102f2204450d0a0b200541807e71210820042001200510850541807e712107410621092005210a0c050b200141d8036a290300220ba7220541807e712108200141e0036a290300210c200b422088a7210a41012109410021070c040b200141d1036a2f0000200141d3036a2d0000411074722103200141d4036a2d000021044102210941002107410021080c030b200141d1036a2f0000200141d3036a2d0000411074722103200141d4036a280200220441807e712107200141d8036a2d0000210541032109410021080c020b200141d1036a2f0000200141d3036a2d0000411074722103200141d8036a280200220541807e712108200141d4036a280200220441807e712107200141e0036a310000210c200141dc036a280200210a410421090c010b200241d8036a41086a200141f0036a2d00003a00002002200141e8036a2903003703d803200141d1036a2f0000200141d3036a2d0000411074722103200141d4036a280200220441807e712107200141d8036a290300220ba7220541807e712108200141e0036a290300210c200b422088a7210a410521090b200020022903a00737020420004109360200200041136a20034110763a0000200041116a20033b0000200041206a200c370300200041106a20093a0000200041286a20022903d8033703002000410c6a2006280200360200200041146a2007200441ff017172360200200041306a200241d8036a41086a290300370300200041186a200aad4220862008200541ff017172ad843703000c010b200241086a41086a2203200141086a10db034100210720024100360208200241d8036a200341c8031085051a4100210841002109024002400240024002400240024020012d00d0030e0706010203040500060b200141dc036a2802002205417f4c0d07200141d4036a28020021010240024020050d00410121040c010b2005102f2204450d090b200541807e71210820042001200510850541807e712107410621092005210a0c050b200141d8036a290300220ba7220541807e712108200141e0036a290300210c200b422088a7210a41012109410021070c040b200141d1036a2f0000200141d3036a2d0000411074722103200141d4036a2d000021044102210941002107410021080c030b200141d1036a2f0000200141d3036a2d0000411074722103200141d4036a280200220441807e712107200141d8036a2d0000210541032109410021080c020b200141d1036a2f0000200141d3036a2d0000411074722103200141d8036a280200220541807e712108200141d4036a280200220441807e712107200141e0036a310000210c200141dc036a280200210a410421090c010b200241a0076a41086a200141f0036a2d00003a00002002200141e8036a2903003703a007200141d1036a2f0000200141d3036a2d0000411074722103200141d4036a280200220441807e712107200141d8036a290300220ba7220541807e712108200141e0036a290300210c200b422088a7210a410521090b200041086a200241d8036a41c8031085051a200041d3036a20034110763a0000200041d1036a20033b0000200041e0036a200c370300200041d4036a2007200441ff017172360200200041d0036a20093a00002000410b360200200041e8036a20022903a007370300200041f0036a200241a0076a41086a290300370300200041d8036a200aad4220862008200541ff017172ad843703000b200241b0076a24000f0b102c000b102a000be20602027f017e410021020240024002400240024002400240024002402000280200220320012903002204a7470d004101210202400240024002400240024002400240024002400240024002400240024002400240024002402003417f6a0e080e00010203040506130b20044202520d12200041086a200141086a1097040d060c1a0b20044203520d11200041086a200141086a1097040d060c180b20044204520d10200041086a200141086a1097040d060c160b20044205520d0f200041086a200141086a1097040d060c140b20044206520d0e200041086a200141086a1097040d060c120b20044207520d0d200041086a200141086a1097040d060c100b20044208520d0c200041086a200141086a1097040d060c0e0b200041c0006a200141c0006a109704450d130c0b0b200041c0006a200141c0006a109704450d11200041f8006a200141f8006a109704450d110c0a0b200041c0006a200141c0006a109704450d0f200041f8006a200141f8006a109704450d0f200041b0016a200141b0016a109704450d0f0c090b200041c0006a200141c0006a109704450d0d200041f8006a200141f8006a1097040d070c0d0b200041c0006a200141c0006a109704450d0b200041f8006a200141f8006a109704450d0b200041b0016a200141b0016a1097040d050c0b0b200041c0006a200141c0006a109704450d09200041f8006a200141f8006a1097040d030c090b200041c0006a200141c0006a109704450d07200041f8006a200141f8006a109704450d07200041b0016a200141b0016a1097040d010c070b20044201510d050c040b200041e8016a200141e8016a109704450d05200041a0026a200141a0026a109704450d05200041d8026a200141d8026a109704450d0520004190036a20014190036a109704450d050c030b200041b0016a200141b0016a109704450d05200041e8016a200141e8016a109704450d05200041a0026a200141a0026a109704450d05200041d8026a200141d8026a109704450d050c020b200041e8016a200141e8016a109704450d05200041a0026a200141a0026a109704450d050c010b200041b0016a200141b0016a109704450d05200041e8016a200141e8016a109704450d050b20020f0b200041086a200141086a1097040f0b41000f0b41000f0b41000f0b41000f0b41000f0b41000f0b41000b920402087f037e230041b0076b220524000240024020012802042206450d00200128020021070340200641e0276a210820062f01a629220941d0036c2101417f210a2006210b02400340024020010d002009210a0c020b200a41016a210a200841106a2108200141b07c6a21012002200b109101210c200b41d0036a210b200c41ff01714101460d000b0240200c41187441187541016a0e020100010b2008290300220d20037d220e200d56200841086a290300220f20047d200d200354ad7d220d200f56200d200f511b0d022008200e3703002008200d370308200241086a290200210d0240024020022802004101470d00200228020421014108210b2003210f2004210e0c010b200241186a290200210e200241106a290200210f200541086a200241206a41b0031085051a410a210b0b200041146a4200370200200041086a4200370200200541d0036a200e370300200541c8036a200f370300200541b8036a41086a200d370300200520013602bc032005200b3602b803200541d8036a200541086a41b0031085051a20054190076a200437030020054188076a2003370300200041046a200541b8036a10ed03200041003602000c030b2007450d012007417f6a21072006200a4102746a41a8296a28020021060c000b0b20004101360200200241086a2101024020022802000d002001109c010c010b2001280200450d00200228020410300b200541b0076a24000be80a01037f23004180146b220424002004200241d003108505220241f0036a200341206a290300370300200241e8036a200341186a290300370300200241e0036a200341106a290300370300200241d8036a200341086a290300370300200220032903003703d0030240024002400240200141106a2802002203450d00200241f0076a200128020c2003200210ff0420022802f0074101460d00200241fc076a2802002103200241f8076a280200210520022802f4072104200241003a008708024002402004450d00200520034102746a41b02b6a280200210302402004417f6a2204450d000340200320032f01ae2b4102746a41b02b6a28020021032004417f6a22040d000b0b20032f01ae2b2104200241003602881020022004417f6a410020041b3602901020022003410020041b36028c10200241800c6a20024188106a20024187086a10950420024188086a200241800c6a41f8031085051a20022802f80f21040240024020024180106a2802002205200241fc0f6a28020022062f01ae2b4f0d00200621030c010b200621030340024020032802a82b22030d00410021030c020b200441016a210420062f01ac2b210520032106200520032f01ae2b4f0d000b0b20024188106a2003200541f8036c6a220641f8031085051a200620024188086a41f8031085051a02402004450d002004417f6a2204450d00200541027420036a41b42b6a2802002103034020032802b02b21032004417f6a22040d000b0b200241800c6a20024188106a41f8031085051a0c010b20022003360290102002200536028c102002410036028810200241800c6a20024188106a20024187086a1095040b20022802800c2103200241fc036a200241800c6a41047241f4031085051a200141146a22042004280200417f6a360200024020022d008708450d0020012802102204450d03200128020c2206450d0420042802b02b210520012006417f6a36020c20012005360210200541003602a82b200410300b20034102460d00200220033602800c200241800c6a410472200241fc036a41f4031085051a200241800c6a108105024020022d00d00f4106490d00200241d80f6a280200450d00200241d40f6a28020010300b200241d0036a210320022802002104200241800c6a2002410472220141cc031085051a0240024020044101470d0020024188106a41086a200141086a2802003602002002419c106a200341086a290200370200200241a4106a200341106a290200370200200241ac106a200341186a290200370200200241b4106a200341206a29020037020020022001290200370388102002200329020037029410410921030c010b20024188106a41046a200241800c6a41046a41c8031085051a20024188086a41206a200341206a29030037030020024188086a41186a200341186a29030037030020024188086a41106a200341106a29030037030020024188086a41086a200341086a2903003703002002200329030037038808410b21030b200041146a4200370200200041086a4200370200200220033602800c200241800c6a41047220024188106a41cc031085051a200241f00f6a200241a8086a290300370300200241e80f6a200241a0086a290300370300200241e00f6a20024198086a290300370300200241d80f6a20024188086a41086a290300370300200241d00f6a200229038808370300200041046a200241800c6a10ed03200041003602000c010b200041013602000240024020022802000d00200241086a109c010c010b2002280208450d00200228020410300b20022d00d0034106490d00200241d8036a280200450d00200241d4036a28020010300b20024180146a24000f0b41b2abc200412b41d0acc200102d000b41b7a2c200412141d8a2c200102d000bd40602097f037e230041a00b6b220324000240024020012802042204450d0020012802002105034020042f01a629220641d0036c21074100210841a4292109417f210a02400340024020072008470d002006210a0c020b200420086a210b200a41016a210a200941046a2109200841d0036a21082002200b109101220b41ff01714101460d000b0240200b41187441187541016a0e020100010b200341003a000f024002402005450d00200420096a2802002108024020054101460d004101210a0340200820082f01a6294102746a41a8296a28020021082005200a41016a220a470d000b0b20082f01a629210a200341003602d0072003200a417f6a4100200a1b3602d807200320084100200a1b3602d407200341e0036a200341d0076a2003410f6a10fe04200341106a200341e0036a41d0031085051a200341b8076a290300210c20032903b007210d20032802c007210b02400240200341c8076a2802002209200341c4076a280200220a2f01a6294f0d00200a21080c010b03400240200a2802a02922080d00410021080c020b200b41016a210b200a2f01a42921092008210a200920082f01a6294f0d000b0b200341d0076a2008200941d0036c6a220a41d0031085051a200a200341106a41d0031085051a200820094104746a220a41f0276a2204290300210e2004200d370300200a41f8276a220a290300210d200a200c3703000240200b450d00200b417f6a220a450d00200941027420086a41ac296a2802002108034020082802a8292108200a417f6a220a0d000b0b200341e0036a200341d0076a41d0031085051a200341b8076a200d3703002003200e3703b0070c010b2003200a3602d807200320043602d407200341003602d007200341e0036a200341d0076a2003410f6a10fe040b2000200341e0036a41e0031085051a20012001280208417f6a36020820032d000f450d030240024020012802042208450d0020012802002209450d0120082802a829210a20012009417f6a3602002001200a360204200a41003602a029200810300c050b41b2abc200412b41d0acc200102d000b41b7a2c200412141d8a2c200102d000b02402005450d002005417f6a21052004200a4102746a41a8296a28020021040c010b0b200041023602000c010b200041023602000b200341a00b6a24000ba80302087f017e230041b0076b22042400200441d0036a200141d0031085051a02400240024020002802042205450d00200028020021060c010b41a829102f2205450d0141002106200541003b01a629200541003602a02920002005360204200041003602000b02400340200541e0276a210720052f01a629220841d0036c2101417f21092005210a02400340024020010d00200821090c020b200941016a2109200741106a2107200141b07c6a2101200441d0036a200a109101210b200a41d0036a210a200b41ff01714101460d000b0240200b41187441187541016a0e020100010b200441d0036a10810520072003370308200720023703000c020b02402006450d002006417f6a2106200520094102746a41a8296a28020021050c010b0b200441d8036a2201280200210a20042903d003210c2004410c6a200441dc036a220741c4031085051a2001200a3602002004200c3703d00320072004410c6a41c4031085051a200441a8076a2009360200200441a4076a2005360200200420003602ac07200441003602a007200441d0036a200220031082051a0b200441b0076a24000f0b102a000be50e03027f017e1f7f23004190106b2203240020004200370204200041106a4200370200200341086a41086a200141146a2802002204360200200129020c2105200141106a420037020020032005370308200341980c6a41086a2004360200200320053703980c200341186a200341980c6a10e50320032802182106200328021c210702400240200328023022080d00200721040c010b0240024002402007450d0002402003280220220920072f01ae2b4f0d00200721042006210a0c020b03400240024020072802a82b22040d00410021040c010b200641016a210a20072f01ac2b21090b024041e02b41b02b20061b450d00200710300b024020040d00410221060c040b20042107200a2106200920042f01ae2b490d020c000b0b41b2abc200412b41d4a8c200102d000b200941016a210b2004200941f8036c6a21070240200a450d002004200b4102746a41b02b6a28020021040240200a417f6a2206450d00034020042802b02b21042006417f6a22060d000b0b4100210b0b20072802002106200341980c6a200741046a41f4031085051a0b2001410c6a210c2000410c6a210d200341386a200341980c6a41f4031085051a200241c8006a210e20024198036a210f200241e0026a2110200241a8026a2111200241f0016a2112200241b8016a211320024180016a2114200241106a2115200341980c6a41d0036a2100200341ac046a41cc036a2101200341a0086a4104722116200341a0086a41c8006a2117200341a0086a4198036a2118200341a0086a41e0026a2119200341a0086a41a8026a211a200341a0086a41f0016a211b200341a0086a41b8016a211c200341a0086a4180016a211d200341a0086a41106a211e2002280200211f0340200341ac046a200341386a41f4031085051a200320063602a0082016200341386a41cc031085051a200341f00b6a41206a2207200141206a2220290200370300200341f00b6a41186a2209200141186a2221290200370300200341f00b6a41106a220a200141106a2222290200370300200341f00b6a41086a2223200141086a2224290200370300200320012902003703f00b2008417f6a2108024002402006201f470d000240024002400240201f0d0020032802a808220620022903082205a7470d0402400240024002400240024002402006417f6a0e0808000102030405060a0b20054202520d09201e2015109704450d0a2017200e109704450d0a0c090b20054203520d08201e2015109704450d092017200e109704450d09201d2014109704450d090c080b20054204520d07201e2015109704450d082017200e109704450d08201d2014109704450d08201c2013109704450d080c070b20054205520d06201e2015109704450d072017200e109704450d07201d2014109704450d07201c2013109704450d07201b2012109704450d070c060b20054206520d05201e2015109704450d062017200e109704450d06201d2014109704450d06201c2013109704450d06201b2012109704450d06201a2011109704450d060c050b20054207520d04201e2015109704450d052017200e109704450d05201d2014109704450d05201c2013109704450d05201b2012109704450d05201a2011109704450d0520192010109704450d050c040b20054208520d03201e2015109704450d042017200e109704450d04201d2014109704450d04201c20131097040d020c040b20032802ac082206200228020c470d0320032802a408200228020420061088050d030c020b20054201520d01201e2015109704450d020c010b201b2012109704450d01201a2011109704450d0120192010109704450d012018200f109704450d010b200341980c6a200341a0086a41d0031085051a200041206a2020290200370200200041186a2021290200370200200041106a2022290200370200200041086a202429020037020020002001290200370200200d200341980c6a1096040c010b200341980c6a200341a0086a41d0031085051a200041206a2007290300370300200041186a2009290300370300200041106a200a290300370300200041086a2023290300370300200020032903f00b370300200c200341980c6a1096040b024020080d00410021060c020b02402004450d000240024002400240200b20042f01ae2b490d0041002107034041002106024020042802a82b220a450d00200741016a210920042f01ac2b210b200a21060b024041e02b41b02b20071b450d00200410300b024020060d00410221060c050b2006210420092107200b20062f01ae2b4f0d000b2006200b41f8036c6a2107024020090d00200621040c020b200b41027420066a41b42b6a280200210402402009417f6a2206450d00034020042802b02b21042006417f6a22060d000b0b4100210b0c020b2004200b41f8036c6a21070b200b41016a210b0b20072802002106200341980c6a200741046a41f4031085051a0b200341386a200341980c6a41f4031085051a0c010b0b41b2abc200412b41d4a8c200102d000b02402004450d00034020042802a82b2107024041e02b41b02b20061b450d00200410300b200641016a21062007210420070d000b0b20034190106a24000b9f0402097f027e230041b0076b22012400200028020421022000410036020402402002450d00024020002802002203450d00034020022802a82921022003417f6a22030d000b0b024020002802082204450d00200141d0036a410472210541002106200141a8076a210703402004417f6a21040240024002400240200620022f01a629490d0041002100034041002103024020022802a0292208450d00200041016a210920022f01a4292106200821030b024041d82941a82920001b450d00200210300b024020030d00410221030c050b2009210020032102200620032f01a6294f0d000b2003200641d0036c6a2100200320064104746a220241f8276a290300210a200241f0276a290300210b024020090d00200321020c020b200641027420036a41ac296a280200210202402009417f6a2203450d00034020022802a82921022003417f6a22030d000b0b410021060c020b2002200641d0036c6a2100200220064104746a220341f8276a290300210a200341f0276a290300210b0b200641016a21060b20002802002103200141d0036a200041046a41cc031085051a0b200141046a200141d0036a41cc031085051a200120033602d0032005200141046a41cc031085051a2007200a3703002001200b3703a007200141d0036a10810520040d000b0b41002103034020022802a0292100024041d82941a82920031b450d00200210300b2003417f6a21032000210220000d000b0b200141b0076a24000be90301087f230041f0076b22012400200028020421022000410036020402402002450d00024020002802002203450d00034020022802b02b21022003417f6a22030d000b0b024020002802082204450d00200141f8036a41047221054100210603400240024002400240200620022f01ae2b490d0041002100034041002103024020022802a82b2207450d00200041016a210820022f01ac2b2106200721030b024041e02b41b02b20001b450d00200210300b024020030d00410221030c050b2003210220082100200620032f01ae2b4f0d000b2003200641f8036c6a2100024020080d00200321020c020b200641027420036a41b42b6a280200210202402008417f6a2203450d00034020022802b02b21022003417f6a22030d000b0b410021060c020b2002200641f8036c6a21000b200641016a21060b20002802002103200141f8036a200041046a41f4031085051a0b2004417f6a2104200141046a200141f8036a41f4031085051a200120033602f8032005200141046a41f4031085051a200141f8036a108105024020012d00c8074106490d0020012802d007450d0020012802cc0710300b20040d000b0b41002103034020022802a82b2100024041e02b41b02b20031b450d00200210300b2003417f6a21032000210220000d000b0b200141f0076a24000bc50801027f0240024002400240024002400240024020002d00000e0707000102030405060b02402000410c6a2802002201450d00200041046a2802002102200141f8036c210103402002109a01200241f8036a2102200141887c6a22010d000b0b0240200041086a2802002202450d00200241f8036c450d00200028020410300b200041106a109c010f0b02402000410c6a2802002201450d00200041046a2802002102200141f8036c210103402002109a01200241f8036a2102200141887c6a22010d000b0b0240200041086a2802002202450d00200241f8036c450d00200028020410300b200041206a109c010240200041186a2802002201450d00200041106a280200210220014198046c21010340200210a00120024198046a2102200141e87b6a22010d000b0b200041146a2802002202450d0520024198046c450d05200028021010300f0b02402000410c6a2802002201450d00200041046a2802002102200141f8036c210103402002109a01200241f8036a2102200141887c6a22010d000b0b0240200041086a2802002202450d00200241f8036c450d00200028020410300b0240200041186a2802002201450d00200041106a2802002102200141f8036c210103402002109a01200241f8036a2102200141887c6a22010d000b0b200041146a2802002202450d04200241f8036c450d04200028021010300f0b02402000410c6a2802002201450d00200041046a2802002102200141f8036c210103402002109a01200241f8036a2102200141887c6a22010d000b0b0240200041086a2802002202450d00200241f8036c450d00200028020410300b200041206a109c010240200041186a2802002201450d00200041106a280200210220014198046c21010340200210a00120024198046a2102200141e87b6a22010d000b0b200041146a2802002202450d0320024198046c450d03200028021010300f0b02402000410c6a2802002201450d00200041046a2802002102200141f8036c210103402002109a01200241f8036a2102200141887c6a22010d000b0b0240200041086a2802002202450d00200241f8036c450d00200028020410300b200041206a109c010240200041186a2802002201450d00200041106a280200210220014198046c21010340200210a00120024198046a2102200141e87b6a22010d000b0b200041146a2802002202450d0220024198046c450d02200028021010300f0b200041186a109c0102402000410c6a2802002201450d00200041046a2802002102200141f8036c210103402002109a01200241f8036a2102200141887c6a22010d000b0b200041086a2802002202450d01200241f8036c450d01200028020410300c010b200041106a109a0102402000410c6a2802002201450d00200041046a2802002102200141e8036c210103402002109601200241e8036a2102200141987c6a22010d000b0b200041086a2802002202450d00200241e8036c450d00200028020410300f0b0b950201057f230041206b22022400024002400240200128020422030d004100210420004100360204200041106a41003602000c010b20012802002104200321050240034020032f018a0c2106024020040d002004450d020c040b2004450d032004417f6a2104200320064102746a418c0c6a2802002103200528028c0c21050c000b0b2000200436020c200041003602082000200536020420002004360200200041146a2006360200200041106a2003360200200128020821040b200020043602182000200141d8006a36021c200241206a24000f0b200241146a410136020020024201370204200241f4a9c2003602002002410436021c200241eca9c2003602182002200241186a360210200241fca9c200103a000b7e01027f230041306b22022400200241146a4104360200200241ac8fc2003602102002410436020c200241a48fc2003602082001411c6a2802002103200128021821012002412c6a41023602002002420237021c200241b48fc2003602182002200241086a36022820012003200241186a10322101200241306a240020010b8e0101037f230041106b220224002000280200210320012000280208220010a501024002402000450d002000410574210003404120102f2204450d02200242203702042002200436020020022003412010642001200228020022042002280208106402402002280204450d00200410300b200341206a2103200041606a22000d000b0b200241106a24000f0b102a000bf80101037f230041206b220424000240024002402002450d00200221050240034020022f01a6292106024020010d002001450d020c050b2001450d042001417f6a2101200220064102746a41a8296a280200210220052802a82921050c000b0b2000200136020c200041003602082000200536020420002001360200200041146a2006360200200041106a20023602000c010b4100210320004100360204200041106a41003602000b20002003360218200441206a24000f0b200441146a410136020020044201370204200441f4a9c2003602002004410436021c200441eca9c2003602182004200441186a360210200441fca9c200103a000b890201037f230041d0006b22022400200241086a41dca4c000410610ab01200241186a4190e0c100410910ab01200220013602342002200241346a4104108b02370338200241cc006a200241346a41046a3602002002200241c0006a3602442002200241346a3602482002200241386a360240200241286a200241c0006a10b803024002402002280230220341206a2201417f4c0d000240024020010d00410121040c010b2001102f2204450d020b2000410036020820002001360204200020043602002000200241086a411010b9032000200241186a411010b903200020022802282201200310b9030240200228022c450d00200110300b200241d0006a24000f0b102c000b102a000bb70201037f23004180016b22022400024002400240024020012802002203411071450d0020002802002103410021000340200220006a41ff006a2003410f712204413072200441d7006a2004410a491b3a00002000417f6a2100200341047622030d000b20004180016a22034181014f0d02200141a8f7c1004102200220006a4180016a410020006b104021000c010b02402003412071450d0020002802002103410021000340200220006a41ff006a2003410f712204413072200441376a2004410a491b3a00002000417f6a2100200341047622030d000b20004180016a22034181014f0d03200141a8f7c1004102200220006a4180016a410020006b104021000c010b20003502002001103c21000b20024180016a240020000f0b2003418001419087c000104a000b2003418001419087c000104a000bd00302057f047e230041d0006b22012400200141286a41186a22024200370300200141286a41106a22034200370300200141286a41086a2204420037030020014200370328200141086a41dca4c000410610ab012004200141086a41086a220529000037030020012001290008370328200141086a4198bfc100410b10ab012002200529000037030020032001290008370300200141086a200141286a108104200141086a41186a2903002106200141086a41106a2903002107200129031021082001290308210920024200370300200342003703002004420037030020014200370328200141086a41dca4c000410610ab012004200529000037030020012001290008370328200141086a4198bfc100410b10ab0120022005290000370300200320012900083703002001420137030820014100360210200120084200200942015122021b370348200141086a200141c8006a4108106420012007420020021b370348200141086a200141c8006a410810642001427f2006420020021b220620007c220020002006541b370348200141086a200141c8006a41081064200141286a412020012802082202200128021041002802fcad421103000240200128020c450d00200210300b200141d0006a24000bc40202037f017e230041d0006b220224002002412036020420022001360200200241086a2001412041002802d4ad4211040002400240200228020822010d00200042003703000c010b200228020c2103024002400240200241086a41086a28020022044108490d00200441787141786a0e09000101010101010100010b420021052002420037021c200241002802dc94423602182002410936022c200220023602282002200241186a360234200241cc006a41013602002002420137023c200241a0e6c1003602382002200241286a360248200241346a41d0adc000200241386a10321a2002280218200228022010ad01200228021c450d01200228021810300c010b200041186a2001290010370300200041106a200129000837030020002001290000370308420121050b200020053703002003450d00200110300b200241d0006a24000b890201037f230041d0006b22022400200241086a41dca4c000410610ab01200241186a4183e0c100410d10ab01200220013602342002200241346a4104108b02370338200241cc006a200241346a41046a3602002002200241c0006a3602442002200241346a3602482002200241386a360240200241286a200241c0006a10b803024002402002280230220341206a2201417f4c0d000240024020010d00410121040c010b2001102f2204450d020b2000410036020820002001360204200020043602002000200241086a411010b9032000200241186a411010b903200020022802282201200310b9030240200228022c450d00200110300b200241d0006a24000f0b102c000b102a000bc40301097f230041206b220224000240024020012802082203410c6c41046a2204417f4c0d00200128020021050240024020040d00410121060c010b2004102f2206450d020b2002410036020820022004360204200220063602002003200210a80302402003450d0020052003410c6c6a210720052104034020042802002106200441086a2802002208200210a80320022006200810642004410c6a22042007470d000b0b2002280204210920023502084220862002280200220aad8410142104200241186a22064200370300200241106a22084200370300200241086a22074200370300200242003703002007200441086a2900003703002008200441106a2900003703002006200441186a2900003703002002200429000037030020041030200041186a2006290300370000200041106a2008290300370000200041086a20072903003700002000200229030037000002402009450d00200a10300b02402003450d002003410c6c21062005210403400240200441046a280200450d00200428020010300b2004410c6a2104200641746a22060d000b0b0240200141046a2802002204450d002004410c6c450d00200510300b200241206a24000f0b102c000b102a000b13002000410a360204200041909ac1003602000b3400200041dca4c00036020420004100360200200041146a4110360200200041106a41a4b3c100360200200041086a42063702000b130020004106360204200041dccfc1003602000b4201027f230041106b2202240002404101102f22030d00102a000b20004201370204200020033602002002412a3a000f20002002410f6a41011064200241106a24000b920101017f230041c0006b22022400200241386a41002903f8a340370300200241306a41002903f0a340370300200241286a41002903e8a340370300200241206a41002903e0a340370300200241186a41002903d8a340370300200241106a41002903d0a340370300200241086a41002903c8a340370300200241002903c0a3403703002000200210a003200241c0006a24000b4601017f230041106b220224002000410036020820004201370200200242003703082000200241086a41081064200242003703082000200241086a41081064200241106a24000b4301027f230041106b2202240002404104102f22030d00102a000b2000420437020420002003360200200241fa0136020c20002002410c6a41041064200241106a24000b6101017f230041106b2202240020004100360208200042013702002002418080f0013602082000200241086a410410642002418080c00236020c20002002410c6a410410642002418080c0023602042000200241046a41041064200241106a24000b7701017f230041c0016b22022400200210d6012000410036020820004201370200200220022903003703b8012000200241b8016a41081064200220022903083703b8012000200241b8016a41081064200241106a200010ef01200241c8006a200010ef0120024180016a200010ef01200241c0016a24000bfe1505087f017e047f027e057f230041c0156b22042400200441d0036a200141d0031085051a0240024002400240024002400240024002400240024002400240024020002802042205450d00200028020021060c010b41a829102f2205450d0141002106200541003b01a629200541003602a02920002005360204200041003602000b034020052f01a629220741d0036c21084100210141e0272109417f210a02400340024020082001470d002007210a0c020b200520016a210b200a41016a210a200941106a2109200141d0036a2101200441d0036a200b109101220b41ff01714101460d000b0240200b41187441187541016a0e020100010b0240024020042802d0030d00200441d8036a109c010c010b20042802d803450d0020042802d40310300b200520096a22012003370308200120023703000c0d0b02402006450d002006417f6a21062005200a4102746a41a8296a28020021050c010b0b200441d8036a280200210b20042903d003210c2004410c6a200441dc036a41c4031085051a02400240024002400240024020052f01a6292201410a4b0d00200441d0036a2004410c6a41c4031085051a2005200a41d0036c6a2109200a2001490d012009200c3703002009200b3602082009410c6a200441d0036a41c4031085051a200541f0276a21090c020b410521014100210d02400240200a41054f0d0041042101200a21090c010b4105210902400240200a417b6a0e020201000b200a41796a21094101210d410621010c010b410021094101210d0b41a829102f2207450d05200741003b01a629200741003602a029200720052f01a62922062001417f736a220a3b01a6292005200141d0036c6a2208280204210e2008280200210f200441d0036a200841086a41c8031085051a200a410c4f0d062006200141016a22086b200a470d07200541f0276a221020014104746a220641086a29030021112006290300211220072005200841d0036c6a200a41d0036c108505220641f0276a201020084104746a200a4104741085051a200520013b01a629200441f8116a200441d0036a41c8031085051a20062005200d1b22012f01a6292108200441d0036a2004410c6a41c4031085051a2001200941d0036c6a210a02400240200941016a220d20084d0d00200a200c370300200a200b360208200a410c6a200441d0036a41c4031085051a200141f0276a210a0c010b2001200d41d0036c6a200a200820096b221041d0036c1086051a200a200b360208200a200c370300200a410c6a200441d0036a41c4031085051a200141f0276a220a200d4104746a200a20094104746a20104104741086051a0b200a20094104746a220a2003370308200a20023703002001200841016a3b01a629200441b00e6a200441f8116a41c8031085051a200441e80a6a200441b00e6a41c8031085051a20052802a02922010d02410021100c030b2005200a41016a220841d0036c6a20092001200a6b220641d0036c1086051a2009200b3602082009200c3703002009410c6a200441d0036a41c4031085051a200541f0276a220920084104746a2009200a4104746a20064104741086051a0b2009200a4104746a220a2003370308200a20023703002005200141016a3b01a6290c0d0b20122102201121034100211020062113200e2114200f2115034020052f01a4292105200122062f01a629220d410b490d024100210841042101024020054105490d0020052101024002402005417b6a0e020201000b200541796a210541012108410621010c010b4100210541012108410521010b41d829102f2207450d03200741003b01a629200741003602a029200720062f01a62922162001417f736a220a3b01a6292006200141d0036c6a2209280204210e2009280200210f200441d0036a200941086a41c8031085051a200a410c4f0d062016200141016a220b6b200a470d07200641f0276a221620014104746a221741086a2903002111201729030021122007200941d0036a200a41d0036c108505220941f0276a2016200b4104746a200a4104741085051a200620013b01a629200441f8116a200441d0036a41c8031085051a20092f01a629220a41016a2116200a410c4f0d08200d20016b22012016470d09201041016a2110200941a8296a2006200b4102746a41a8296a20014102741085051a4100210102400340200920014102746a41a8296a280200220b20013b01a429200b20093602a0292001200a4f0d0120012001200a496a2201200a4d0d000b0b200441b00e6a200441f8116a41c8031085051a2009200620081b220b2f01a6292101200441d0036a200441e80a6a41c8031085051a0240200541016a220a20014b22160d00200b200a41d0036c6a200b200541d0036c6a200120056b41d0036c1086051a0b200b200541d0036c6a2208201436020420082015360200200841086a200441d0036a41c8031085051a200b41f0276a210d024020160d00200d200a4104746a200d20054104746a200120056b4104741086051a0b200141016a2108200d20054104746a220d2003370308200d2002370300200b41a8296a210d0240200541026a2215200141026a22144f0d00200d20154102746a200d200a4102746a200120056b4102741086051a0b200d200a4102746a2013360200200b20083b01a6290240200a20144f0d00200b20054102746a41ac296a210103402001280200220a200541016a22053b01a429200a200b3602a029200141046a210120082005470d000b0b200441e80a6a200441b00e6a41c8031085051a20122102201121032006210520092113200e2114200f211520062802a02922010d000b0b200441a0076a200441e80a6a41c8031085051a2000280204220a450d082000280200210941d829102f2201450d012001200a3602a829200141003b01a629200141003602a029200a41003b01a429200a20013602a029200020013602042000200941016a36020020092010470d0920012f01a629220a410b4f0d0a2001200a41016a22093b01a6292001200a41d0036c6a220b200e360204200b200f360200200b41086a200441a0076a41c8031085051a2001200a4104746a220a41f8276a2011370300200a41f0276a2012370300200141a8296a20094102746a2007360200200720093b01a429200720013602a0292000200028020841016a3602080c0c0b200441d0036a200441e80a6a41c8031085051a0240200d20054d0d002006200541d0036c6a220141d0036a2001200d20056b41d0036c1086051a0b200d41016a21092006200541d0036c6a2201201436020420012015360200200141086a200441d0036a41c8031085051a200641f0276a220b20054104746a210a200541016a210102400240200d20054b0d00200a2002370300200a2003370308200641a8296a210a200d41026a210b0c010b200b20014104746a200a200d20056b220b4104741086051a200a2003370308200a20023703002005410274200641a8296a220a6a41086a200a20014102746a200b4102741086051a200d41026a210b0b200a200141027422056a2013360200200620093b01a6292001200b4f0d0a200520066a41a8296a210a0340200a280200220920013b01a429200920063602a029200a41046a210a200b200141016a2201470d000c0b0b0b102a000b200a410b41e8a2c2001042000b41f8a2c200412841a0a3c200102d000b200a410b41e8a2c2001042000b41f8a2c200412841a0a3c200102d000b2016410c41f8a3c2001042000b41f8a2c200412841a0a3c200102d000b41b2abc200412b41e0abc200102d000b41eaa0c2004130419ca1c200102d000b41aca1c200412041cca1c200102d000b2000200028020841016a3602080b200441c0156a24000bcf0e02037f017e230041c0036b22022400024002400240024020012802004101470d002001410c6a2802002203417f4c0d02200128020421044101210102402003450d002003102f2201450d040b20002001360204200041086a20033602002001200420031085051a200041013602002000410c6a20033602000c010b42002105024002400240024002400240024002400240200141086a2802000e09080102030405060700080b20024188036a200141106a10f101200241d0026a200141c8006a10f10120024198026a20014180016a10f101200241e0016a200141b8016a10f101200241a8016a200141f0016a10f101200241f0006a200141a8026a10f101200241386a200141e0026a10f101200220014198036a10f101420821050c070b20024188036a200141106a10f101420121050c060b20024188036a200141106a10f101200241d0026a200141c8006a10f101420221050c050b20024188036a200141106a10f101200241d0026a200141c8006a10f10120024198026a20014180016a10f101420321050c040b20024188036a200141106a10f101200241d0026a200141c8006a10f10120024198026a20014180016a10f101200241e0016a200141b8016a10f101420421050c030b20024188036a200141106a10f101200241d0026a200141c8006a10f10120024198026a20014180016a10f101200241e0016a200141b8016a10f101200241a8016a200141f0016a10f101420521050c020b20024188036a200141106a10f101200241d0026a200141c8006a10f10120024198026a20014180016a10f101200241e0016a200141b8016a10f101200241a8016a200141f0016a10f101200241f0006a200141a8026a10f101420621050c010b20024188036a200141106a10f101200241d0026a200141c8006a10f10120024198026a20014180016a10f101200241e0016a200141b8016a10f101200241a8016a200141f0016a10f101200241f0006a200141a8026a10f101200241386a200141e0026a10f101420721050b200041086a2005370300200041106a200229038803370300200041c8006a20022903d002370300200041186a20024188036a41086a290300370300200041206a20024188036a41106a290300370300200041286a20024188036a41186a290300370300200041306a20024188036a41206a290300370300200041386a20024188036a41286a290300370300200041c0006a20024188036a41306a290300370300200041d0006a200241d0026a41086a290300370300200041d8006a200241d0026a41106a290300370300200041e0006a200241d0026a41186a290300370300200041e8006a200241d0026a41206a290300370300200041f0006a200241d0026a41286a290300370300200041f8006a200241d0026a41306a290300370300200041b0016a20024198026a41306a290300370300200041a8016a20024198026a41286a290300370300200041a0016a20024198026a41206a29030037030020004198016a20024198026a41186a29030037030020004190016a20024198026a41106a29030037030020004188016a20024198026a41086a29030037030020004180016a200229039802370300200041e8016a200241e0016a41306a290300370300200041e0016a200241e0016a41286a290300370300200041d8016a200241e0016a41206a290300370300200041d0016a200241e0016a41186a290300370300200041c8016a200241e0016a41106a290300370300200041c0016a200241e0016a41086a290300370300200041b8016a20022903e001370300200041a0026a200241a8016a41306a29030037030020004198026a200241a8016a41286a29030037030020004190026a200241a8016a41206a29030037030020004188026a200241a8016a41186a29030037030020004180026a200241a8016a41106a290300370300200041f8016a200241a8016a41086a290300370300200041f0016a20022903a801370300200041d8026a200241f0006a41306a290300370300200041d0026a200241f0006a41286a290300370300200041c8026a200241f0006a41206a290300370300200041c0026a200241f0006a41186a290300370300200041b8026a200241f0006a41106a290300370300200041b0026a200241f0006a41086a290300370300200041a8026a200229037037030020004190036a200241386a41306a29030037030020004188036a200241386a41286a29030037030020004180036a200241386a41206a290300370300200041f8026a200241386a41186a290300370300200041f0026a200241386a41106a290300370300200041e8026a200241386a41086a290300370300200041e0026a2002290338370300200041c8036a200241306a290300370300200041c0036a200241286a290300370300200041b8036a200241206a290300370300200041b0036a200241186a290300370300200041a8036a200241106a290300370300200041a0036a200241086a29030037030020004198036a2002290300370300200041003602000b200241c0036a24000f0b102c000b102a000b130020004105360204200041e0d8c1003602000b8605010a7f230041b0026b22012400200028020421022000410036020402402002450d00024020002802002203450d000340200228028c0c21022003417f6a22030d000b0b024020002802082204450d0020014190016a410c6a2105200141a4016a21064100210003400240024002400240200020022f018a0c490d0041002100034041002103024020022802002207450d00200041016a210820022f01880c2109200721030b024041bc0c418c0c20001b450d00200210300b024020030d00410221030c050b2008210020032102200920032f018a0c4f0d000b200320094107746a4188016a210a20032009410c6c6a41046a2107024020080d00200321020c020b200941027420036a41900c6a280200210202402008417f6a2200450d000340200228028c0c21022000417f6a22000d000b0b410021000c020b200220004107746a4188016a210a20022000410c6c6a41046a210720002109200221030b200941016a21000b200141a0026a41086a200741086a280200360200200120072902003703a002200320094107746a2208418c016a2802002103200a280200210920014190016a20084190016a41f8001085051a0b2004417f6a210420014180016a41086a2208200141a0026a41086a280200360200200120012903a00237038001200141086a20014190016a41f8001085051a20014190016a41086a2008280200360200200120012903800137039001200120033602a0012001200936029c012006200141086a41f8001085051a0240200128029401450d0020012802900110300b200510d90220040d000b0b41002103034020022802002100024041bc0c418c0c20031b450d00200210300b2003417f6a21032000210220000d000b0b200141b0026a24000bbf1703027f047e1e7f230041f0086b22042400200441086a41086a2001280208220541086a2900002206370300200441086a41106a200541106a2900002207370300200441086a41186a200541186a29000022083703002004200529000022093703082001280204210a2001280200210b200441286a41186a220c2008370300200441286a41106a220d2007370300200441286a41086a220e2006370300200420093703282003410174210f20044190076a4102722110200441f0016a4104722111200441d0036a41026a2112200441286a410772211320044190076a41186a211420044190076a410c6a2115200441f0016a41206a2116410021054100211741002118024002400240024002400240024002400240024002400240024002400240024002400340201841017621010240024020184101710d00200120034b0d03200441003a009807200420013602940720042002360290070c010b200120034b0d03200120034f0d04200441013a009807200420023602900720042001360294072004200220016a2d000041f001713a0099070b200441d0036a200b200441286a20044190076a200a28020c110300024020042802d00322190d0020044190076a41186a2205200441286a41186a29030037030020044190076a41106a221a200441286a41106a29030037030020044190076a41086a221b200441286a41086a29030037030020042004290328370390074130102f22010d100c120b20042802d403211c20044190076a201920042802d803221b10ce0320042d009107211a20042d0090072101200441d0036a201041de011085051a20014101460d0d201741016a2117200441b0056a201241dc011085051a2011200441b0056a2019201b10700340200428028c02211d200428028802211e200428028402211f200428028002211b20042802fc01211a20042802f801212020042802f4012101200441c8006a201641a8011085051a20042802bc03212120042802b803212202400240024002400240024020010e050001020304000b200042003702000c140b410021230240201a410174201b6b200f20056b221d470d00410021234100210102400240201d450d00410021010340201b20016a22224101762221201a4f0d0d200520016a2224410176222520034f0d0e202020216a2d00002221410f71202141f0017141047620224101711b200220256a2d00002221410f71202141047620244101711b470d01201d200141016a2201470d000c020b0b2001201d470d010b201e417f4c0d0c02400240201e0d00410121230c010b201e102f2223450d180b2023201f201e1085051a201ead220642208620068421060b2000202336020420004100360200200041086a20063702000c130b410021010240201a410174201b6b2226200f20056b2221202120264b1b2223450d000340200520016a2222410176222120034f0d0d201b20016a22244101762225201a4f0d0e200220216a2d00002221410f71202141f0017141047620224101711b202020256a2d00002221410f71202141047620244101711b470d012023200141016a2201470d000b202321010b024020012026470d00202621010c030b200042003702000c120b2004201d3602a4072004201e3602a0072004201f36029c072004201b360298072004201a3602940720042020360290072014200441c8006a41a8011085051a02400240200f2005460d002005410176220120034f0d0e20044190076a200220016a2d00002201410f71200141047620054101711b410c6c6a2201280200221f4102470d01200042003702000c130b4100210102402022450d002021417f4c0d0b0240024020210d00410121010c010b2021102f2201450d170b2001202220211085051a0b20002001360204200041003602002000410c6a2021360200200041086a20213602000c120b2001280204211e200141086a280200211d41012126410121010c010b20042802c803212620042802c403212720042802c00321012004201d360298072004201e360294072004201f360290072015200441c8006a41a8011085051a200420013602cc08200420213602c808200420223602c408410021010240201a410174201b6b221e200f20056b22232023201e4b1b221d450d000340200520016a2222410176222120034f0d0e201b20016a22244101762225201a4f0d0f200220216a2d00002221410f71202141f0017141047620224101711b202020256a2d00002221410f71202141047620244101711b470d01201d200141016a2201470d000b201d21010b02402001201e460d00200042003702000c110b024002402023201e460d00201e20056a221a410176220120034f0d1020044190076a200220016a2d00002201410f712001410476201a4101711b410c6c6a221a280200221f4102470d01200042003702000c120b4100210102402027450d002026417f4c0d0a0240024020260d00410121010c010b2026102f2201450d160b2001202720261085051a0b20002001360204200041003602002000410c6a2026360200200041086a20263602000c110b201e41016a2126201e41016a2101201a280204211e201a41086a280200211d0b200120186a2118200520266a21050240201f450d0020044190076a201e201d10ce0320042d009107211a20042d0090072101200441d0036a201041de011085051a20014101460d0f200441b0056a201241dc011085051a2011200441b0056a201e201d1070200441003a00f0010c010b0b02400240201d4120460d002014200c29030037030020044190076a41106a221a200d29030037030020044190076a41086a221b200e2903003703002004200429032837039007201d417f4c0d0802400240201d0d00410121010c010b201d102f2201450d140b2001201e201d10850521204130102f2201450d13200141043a000020012004290390073700012001201d36002c2001201d36002820012020360024200141096a201b290300370000200141116a201a290300370000200141196a20142903003700000c010b20044190076a41026a41003a0000200441003b019007201e2f0000211a200441f0016a41026a201e41026a2d00003a0000201e411f6a2d0000211b201e41176a2900002106201e2800032101201e2900072107200441b0056a41086a2220201e410f6a290000370300200441b0056a41106a22212006370300200441b0056a41186a2222201b3a00002004201a3b01f001200420073703b005201420222d00003a000020044190076a41106a202129030037030020044190076a41086a2020290300370300200420042903b005370390070b200441cc036a41026a221a200441f0016a41026a2d00003a0000200441d0036a41086a221b20044190076a41086a290300370300200441d0036a41106a222020044190076a41106a290300370300200441d0036a41186a22212014280200360200200420042f01f0013b01cc0320042004290390073703d0030240201d4120470d00201320042903d003370000201341086a201b290300370000201341106a2020290300370000201341186a20212d00003a0000200420042f01cc033b01282004200136002b2004201a2d00003a002a201c450d01201910300c010b0b20004101360200200020013602040c0d0b2001200341a099c2001042000b2001200341b099c2001042000b2001200341c099c2001033000b2021201a41e098c2001033000b2025200341e098c2001033000b102c000b2021200341e098c2001033000b2025201a41e098c2001033000b2001200341e098c2001033000b2021200341e098c2001033000b2025201a41e098c2001033000b2001200341e098c2001033000b4130102f2201450d03200141033a000020012004290328370001200141096a200441306a290300370000200141116a200441386a290300370000200141196a200441c0006a2903003700002001201a41ff01714100473a002120002001360204200041013602000b201c450d01201910300c010b2001200429039007370001200120174100473a0000200141096a201b290300370000200141116a201a290300370000200141196a200529030037000020004101360200200020013602040b200441f0086a24000f0b102a000b2802017f017e41002103024020002001200210db022204420183500d002004422088a721030b20030b950201067f024020002802202201450d0002402000412c6a280200450d00200041246a280200220241046a2103200120026a41016a21042002280200417f73418081828478712101024003400240024020010d000340200320044f0d04200241c07e6a210220032802002101200341046a220521032001418081828478712201418081828478460d000b2001418081828478732201417f6a2001712106200521030c010b2001417f6a20017121060b2001682105200621012002410020054103766b41306c6a220541746a280200450d00200541706a2802001030200621010c000b0b200028022021010b200041246a280200200141016aad42307ea76b10300b0240200041346a280200450d00200028023010300b0b8d0101017f230041106b22042400024002400240200220014180016a41201088050d004101102f2202450d02200042818080801037020420002002360200200241003a00000c010b20042001200210ca03024020042802004101470d00200041003602000c010b20002004290204370200200041086a2004410c6a2802003602000b200441106a24000f0b102a000b8b0b010a7f230041b0086b2203240020012802002104200128020422052f01ae2b210620034188046a20052001280208220741f8036c6a220141f8031085051a2001200141f8036a20062007417f736a41f8036c1086051a20052006417f6a22013b01ae2b200341106a20034188046a41f8031085051a0240200141ffff037141044b0d0002400240024020052802a82b2206450d00200441016a21080240024020052f01ac2b22090d0020062f01ae2b0d012003419c046a41013602002003420137028c04200341f4a9c20036028804200341043602940820034188a4c20036029008200320034190086a3602980420034188046a4190a4c200103a000b024020062009417f6a22094102746a41b02b6a280200220a2f01ae2b200141ffff03716a41016a410b4b0d00200341a0046a200536020020034198046a200a3602002003200436029c04200320043602940420032009360290042003200636028c04200320083602880420034180086a20034188046a4101200710fc040c040b200341a0046a200536020020034198046a200a3602002003200436029c04200320043602940420032009360290042003200636028c04200320083602880420034188046a410110fd042003200741016a360288080c020b0240200141ffff0371200941027420066a41b42b6a28020022012f01ae2b6a41016a410b4b0d00200341a0046a200136020020034198046a20053602002003200436029c04200320043602940420032009360290042003200636028c04200320083602880420034180086a20034188046a4100200710fc040c030b200341a0046a200136020020034198046a20053602002003200436029c04200320043602940420032009360290042003200636028c04200320083602880420034188046a41011089010b20032007360288080b200320053602840820032004360280080b2003280288082107200328028008210420032802840822052802a82b2201450d0020012f01ae2b220841044b0d00200441016a21060240034020012802a82b2209450d01200841ffff03712108200641016a210b024002400240024020012f01ac2b220a0d0020092f01ae2b0d012003419c046a41013602002003420137028c04200341f4a9c20036028804200341043602940820034188a4c20036029008200320034190086a3602980420034188046a4190a4c200103a000b2009200a417f6a220c4102746a41b02b6a280200210a200320013602a808200320063602a4082003200a3602a0082003200636029c082003200c3602980820032009360294082003200b3602900802402008200a2f01ae2b6a41016a410b4b0d0020034188046a41186a20034190086a41186a28020036020020034188046a41106a20034190086a41106a29030037030020034188046a41086a20034190086a41086a290300370300200320032903900837038804200341086a20034188046a108a01200328020c2101200328020821060c030b20034190086a410520086b10fd040c010b2003200a41027420096a41b42b6a280200220c3602a808200320063602a408200320013602a0082003200636029c082003200a3602980820032009360294082003200b3602900802402008200c2f01ae2b6a41016a410b4b0d0020034188046a41186a20034190086a41186a28020036020020034188046a41106a20034190086a41106a29030037030020034188046a41086a20034190086a41086a290300370300200320032903900837038804200320034188046a108a0120032802042101200328020021060c020b20034190086a410520086b1089010b410021010b2001450d0220012f01ae2b220841044d0d000c020b0b200841ffff03710d00200241013a00000b2000200341106a41f80310850522014180046a2007360200200141fc036a2005360200200120043602f803200341b0086a24000bd71103037f017e0d7f230041b0176b22022400200241f8036a200141f8031085051a02400240024002400240024002400240024002400240024002400240024020002802042201450d00200028020021030c010b41b02b102f2201450d0141002103200141003b01ae2b200141003602a82b20002001360204200041003602000b200241c0136a20032001200241f8036a10ff04024020022802c0134101460d00200241f8036a10810520022d00c8074106490d0d200241d0076a280200450d0d200241cc076a28020010300c0d0b200241f8036a41086a280200210420022903f80321052002410c6a200241f8036a410c6a41ec031085051a200241c0136a410c6a28020021030240200241c0136a41086a28020022012f01ae2b2206410a4b0d00200241f8036a2002410c6a41ec031085051a0240200341016a220720064b0d002001200741f8036c6a2001200341f8036c6a200620036b41f8036c1086051a0b2001200341f8036c6a22032004360208200320053703002003410c6a200241f8036a41ec031085051a2001200641016a3b01ae2b0c0c0b410521064100210802400240200341054f0d0041042106200321070c010b41052107024002402003417b6a0e020201000b200341796a210741012108410621060c010b41002107410121080b20022802c413210941b02b102f220a450d00200a41003b01ae2b200a41003602a82b200a20012f01ae2b220b2006417f736a22033b01ae2b2001200641f8036c6a220c280204210d200c280200210e200241f8036a200c41086a41f0031085051a2003410c4f0d01200b200641016a220c6b2003470d02200a2001200c41f8036c6a200341f8036c108505210c200120063b01ae2b200241c0136a200241f8036a41f0031085051a200c200120081b22032f01ae2b2106200241f8036a2002410c6a41ec031085051a0240200741016a220820064b0d002003200841f8036c6a2003200741f8036c6a200620076b41f8036c1086051a0b2003200741f8036c6a22072004360208200720053703002007410c6a200241f8036a41ec031085051a2003200641016a3b01ae2b200241d00f6a200241c0136a41f0031085051a200241e00b6a200241d00f6a41f0031085051a02400240024020012802a82b22030d00410021090c010b41002107200c210f200d2110200e211103402003210820092007470d0620012f01ac2b210420082f01ae2b2207410b490d024100210c41042101024020044105490d0020042101024002402004417b6a0e020201000b200441796a21044101210c410621010c010b410021044101210c410521010b41e02b102f220a450d03200a41003b01ae2b200a41003602a82b200a20082f01ae2b220b2001417f736a22033b01ae2b2008200141f8036c6a2206280204210d2006280200210e200241f8036a200641086a41f0031085051a2003410c4f0d07200b200141016a22126b2003470d08200a200641f8036a200341f8036c1085052106200820013b01ae2b200241c0136a200241f8036a41f0031085051a20062f01ae2b220341016a210b2003410c4f0d09200720016b2201200b470d0a200941016a2109200641b02b6a200820124102746a41b02b6a20014102741085051a4100210102400340200620014102746a41b02b6a280200220720013b01ac2b200720063602a82b200120034f0d01200120012003496a220120034d0d000b0b200241d00f6a200241c0136a41f0031085051a20062008200c1b22072f01ae2b2101200241f8036a200241e00b6a41f0031085051a0240200441016a220320014b0d002007200341f8036c6a2007200441f8036c6a200120046b41f8036c1086051a0b200141016a210c2007200441f8036c6a220b2010360204200b2011360200200b41086a200241f8036a41f0031085051a200741b02b6a210b0240200441026a2211200141026a22104f0d00200b20114102746a200b20034102746a200120046b4102741086051a0b200b20034102746a200f3602002007200c3b01ae2b0240200320104f0d00200720044102746a41b42b6a2101034020012802002203200441016a22043b01ac2b200320073602a82b200141046a2101200c2004470d000b0b200241e00b6a200241d00f6a41f0031085051a20082101200921072006210f200d2110200e211120082802a82b22030d000b0b200241f0076a200241e00b6a41f0031085051a20002802042203450d092000280200210641e02b102f2201450d01200120033602b02b200141003b01ae2b200141003602a82b200341003b01ac2b200320013602a82b200020013602042000200641016a36020020062009470d0a20012f01ae2b2203410b4f0d0b2001200341016a22063b01ae2b2001200341f8036c6a2203200d3602042003200e360200200341086a200241f0076a41f0031085051a200141b02b6a20064102746a200a360200200a20063b01ac2b200a20013602a82b2000200028020841016a3602080c0d0b200241f8036a200241e00b6a41f0031085051a200441016a21010240200720044d22060d002008200141f8036c6a2008200441f8036c6a200720046b41f8036c1086051a0b200741016a210c2008200441f8036c6a2203201036020420032011360200200341086a200241f8036a41f0031085051a200841b02b6a2103200741026a210a024020060d00200441027420036a41086a200320014102746a200720046b4102741086051a0b2008200c3b01ae2b200320014102746a200f3602002001200a4f0d0b200741016a210720082001417f6a22014102746a41b42b6a2103034020032802002206200141016a22013b01ac2b200620083602a82b200341046a210320072001470d000c0c0b0b102a000b2003410b41e8a2c2001042000b41f8a2c200412841a0a3c200102d000b41b0a3c200413541e8a3c200102d000b2003410b41e8a2c2001042000b41f8a2c200412841a0a3c200102d000b200b410c41f8a3c2001042000b41f8a2c200412841a0a3c200102d000b41b2abc200412b41e0abc200102d000b41eaa0c2004130419ca1c200102d000b41aca1c200412041cca1c200102d000b2000200028020841016a3602080b200241b0176a24000bae0601047f410021020240024002400240024020002d0000220320012d0000470d0041012102024002400240024002400240024002400240024002402003417f6a0e09010203040506070b000b0b20034109470d0a200041046a2802002203200141046a280200470d0b2003417f6a0e020708090b4101210220034101470d09200041046a280200200141046a280200460f0b20034102470d08200041246a2802002203200141246a280200470d0c41012102024020034101470d00200041306a2802002203200141306a280200470d0d200041286a280200200141286a28020020031088050d0d0b200041016a200141016a41201088050d0c0c080b20034103470d07200041046a2802002203200141046a280200470d0a41012102024020034101470d00200041106a2802002203200141106a280200470d0b200041086a280200200141086a28020020031088050d0b0b200041186a290300200141186a290300520d0a0c070b20034104470d06200041186a2802002203200141186a280200470d0841012102024020034101470d00200041246a2802002203200141246a280200470d092000411c6a2802002001411c6a28020020031088050d090b200041016a200141016a41141088050d080c060b20034105470d0520002d000120012d0001460f0b20034106470d04200041086a290300200141086a29030085200041106a290300200141106a2903008584500f0b20034107470d03410021022000410c6a28020022032001410c6a280200470d03200041046a280200200141046a2802002003108805450f0b200041106a2802002203200141106a280200470d03200041086a280200200141086a2802002003108805450d010c030b200041086a280200200141086a280200470d020b200041146a2802002203200141146a280200470d012001411c6a2802002104200141186a28020021012000411c6a2802002105200041186a280200210002400240024002402003417f6a0e0400010203040b20002001470d040c030b20002001470d0320052004470d030c020b20002001470d0220052004470d020c010b20002001470d0120052004470d010b20020f0b41000f0b41000f0b41000f0b41000b1000200020012802042003200410c6010baf0201047f23004180016b220324000240200120002802042200413c6a4120108805450d00200341c0006a41186a2204200141186a290000370300200341c0006a41106a2205200141106a290000370300200341c0006a41086a2206200141086a2900003703002003200129000037034020032000200341c0006a10ca01024020032903004201520d00200341c0006a41286a200341306a290300370300200341c0006a41206a200341286a2903003703002004200341206a2903003703002005200341186a2903003703002006200341106a290300370300200320032903083703402003417f36027c20034200370274200341002802dc9442360270200341c0006a200341f0006a10cb010c010b200341106a280200417c6a22012001280200417f6a3602000b20034180016a24000b7e01017f230041306b2204240020002802042100200441186a200141186a290000370300200441106a200141106a290000370300200441086a200141086a29000037030020042001290000370300200441206a41086a200341086a2802003602002004200329020037032020002004200441206a10c801200441306a24000b1300200041d0dfc100360204200020013602000b1300200041d0dfc100360204200020013602000ba10402057f027e230041106b220224002002420037030802400240200128020022032802042204450d00200328020022052d0000210620032004417f6a360204200241013602082003200541016a360200200220063a000c200128020022032802042204450d00200328020022052d0000210620032004417f6a3602042003200541016a36020020024102360208200220063a000d200128020022032802042204450d00200328020022052d0000210620032004417f6a3602042003200541016a36020020024103360208200220063a000e200128020022032802042204450d00200328020022052d0000210620032004417f6a3602042003200541016a360200200220063a000f20024104360208024020022903082207a741044f0d0041fef8c100411b419cf9c100102d000b2002200110ac02024002400240024020022802000d0020012802002204280204220520022802042203490d002003417f4c0d010240024020030d00410121060c010b2003102f2206450d032006410020031087051a2001280200220428020421050b024020052003490d002006200428020020031085052105200428020422012003490d0420002003ad22084220862008843702082000200536020420002007422088a73602002004200120036b3602042004200428020020036a3602000c060b200610300b200041003602040c040b102c000b102a000b2003200141f0f5c100104a000b200041003602040b200241106a24000bdb0d03037f017e1d7f23004180016b2202240020022001109b01024002402002280200450d00200041003602000c010b02400240200228020422032001280204413c6e2204200420034b1bad423c7e2205422088a70d002005a72204417f4c0d0002400240024020040d00410421060c010b2004102f2206450d010b2004413c6e2107024020030d00410021030c030b200241c8006a4104722108200241c8006a41196a2109200241da006a210a200241d3006a210b4100210c0340024002402001280204220d41044f0d004102210e0c010b20012802002204280000210f2001200d417c6a220e3602042001200441046a3602000240200e41044f0d004102210e0c010b200428000421102001200d41786a220e3602042001200441086a3602000240200e41044f0d004102210e0c010b200428000821112001200d41746a220e36020420012004410c6a3602000240200e41044f0d004102210e0c010b200428000c21122001200d41706a220e3602042001200441106a3602000240200e41044f0d004102210e0c010b200428001021132001200d416c6a220e3602042001200441146a3602000240200e41044f0d004102210e0c010b200428001421142001200d41686a22153602042001200441186a220e36020002402015450d00200e2d000021152001200d41676a22163602042001200e41016a3602004100210e0240024020150e020100020b4100210e20024100360248200d41666a210d03402016200e460d022004200e6a221541196a2d000021172001200d36020420012015411a6a3602002008200e6a20173a00002002200e41016a2215360248200d417f6a210d2015210e20154120470d000b200241c4006a41026a200b41026a2d00003a0000200241c0006a41026a200a41026a2d00003a0000200220082f01003b01702002200b2f00003b01442002200a2f00003b01402002200841026a2d00003a00722002280268211820022802642119200228005d211a2002280156211b200228004f211c2002413c6a41026a200941026a2d00003a0000200220092f00003b013c4101210e0b200241c8006a41026a20022d00723a0000200241386a41026a200241c4006a41026a2d00003a0000200241346a41026a200241c0006a41026a2d00003a0000200241306a41026a2002413c6a41026a2d00003a0000200220022f01703b0148200220022f01443b0138200220022f01403b0134200220022f013c3b01302014211d2013211e2012211f2011212020102121200f21220c010b4102210e0b2002412c6a41026a2204200241c8006a41026a2d00003a0000200241286a41026a220d200241386a41026a2d00003a0000200241246a41026a220f200241346a41026a2d00003a0000200241206a41026a2210200241306a41026a2d00003a00002002411c6a41026a2215200241f0006a41026a2d00003a0000200220022f01483b012c200220022f01383b0128200220022f01343b0124200220022f01303b0120200220022f00703b011c0240200e4102460d00200241186a41026a221120042d00003a0000200241146a41026a2217200d2d00003a0000200241106a41026a220d200f2d00003a00002002410c6a41026a220f20102d00003a0000200241086a41026a221020152d00003a0000200220022f012c3b0118200220022f01283b0114200220022f01243b0110200220022f01203b010c200220022f011c3b01080240200c2007470d00200c4101742204200c41016a2215200420154b1b22044104200441044b1bad423c7e2205422088a74541027421042005a7211502400240200c0d00200241003602480c010b20024104360250200220063602482002200c413c6c36024c0b200241f0006a20152004200241c8006a106920022802782104024020022802704101470d0020040d040c050b200228027421062004413c6e21070b2006200c413c6c6a220441186a200e3a00002004411b6a20112d00003a0000200441196a20022f01183b00002004202136020420042022360200200441146a201d360200200441106a201e3602002004410c6a201f360200200441086a20203602002004411c6a201c360000200441226a20172d00003a0000200441206a20022f01143b0000200441236a201b360000200441296a200d2d00003a0000200441276a20022f01103b00002004412a6a201a360000200441306a200f2d00003a00002004412e6a20022f010c3b0000200441356a2018360000200441316a20193600002004413b6a20102d00003a0000200441396a20022f01083b0000200c41016a2204210c20042003460d040c010b0b200041003602002007450d032007413c6c450d03200610300c030b102a000b102c000b2000200736020420002006360200200041086a20033602000b20024180016a24000bdd0a02077f027e230041b00f6b2202240002400240024020012802004101460d002002410c3602000c010b02400240024002402001411c6a2802002203450d0020012003417f6a36021c200141086a2802002203450d01200128020421042001410c6a280200220520032f01a629490d0203400240024020032802a02922060d00410021060c010b200441016a210720032f01a42921050b024041d82941a82920041b450d00200310300b024020060d00410221040c050b2007210420062103200520062f01a6294f0d000b20062103200721040c020b2002410c3602f803200141046a220310e60320014100360200200320022902f007370200200341086a200241f0076a41086a290200370200200341106a200241f0076a41106a290200370200200341186a200241f0076a41186a2802003602002002410c3602000c030b41b2abc200412b41d4a8c200102d000b200541016a21062003200541d0036c6a2107200320054104746a220541f8276a2108200541f0276a210502402004450d00200320064102746a41a8296a280200210302402004417f6a2206450d00034020032802a82921032006417f6a22060d000b0b410021060b200829030021092005290300210a200728020021042002200741046a41cc031085051a0b200241f0076a200241cc031085051a2001200636020c2001200336020820014100360204200241e40b6a200241f0076a41cc031085051a024002402004450d0020024190046a200937030020024188046a200a3703004108210320024184046a200241f0076a41086a280200360200200220022902f0073702fc030c010b20024180046a200241e80b6a41c8031085051a200241d0076a2009370300200241c8076a200a370300410a21030b200220033602f8032002200241f8036a41f8031085052203280200410c460d002000200341f8031085051a0c010b024020012802204101460d002000410c3602000c010b0240024002402001413c6a2802002203450d0020012003417f6a36023c0240200141286a2802002206450d00200141246a280200210402402001412c6a280200220520062f01ae2b4f0d0020062103200421070c030b03400240024020062802a82b22030d00410021030c010b200441016a210720062f01ac2b21050b024041e02b41b02b20041b450d00200610300b024020030d00410221050c050b2003210620072104200520032f01ae2b490d030c000b0b41b2abc200412b41d4a8c200102d000b2000410c3602000c020b200541016a21062003200541f8036c6a210402402007450d00200320064102746a41b02b6a280200210302402007417f6a2206450d00034020032802b02b21032006417f6a22060d000b0b410021060b20042802002105200241f8036a200441046a41f4031085051a0b200241f0076a200241f8036a41f4031085051a2001200636022c2001200336022820014100360224200241f8036a200241f0076a41f4031085051a200241e40b6a200241f0076a41cc031085051a024002402005450d00200020022902f007370204200041106a20022902c4073702002000410c6a200241f8076a280200360200200041186a200241cc076a290200370200200041206a200241d4076a290200370200200041286a200241dc076a290200370200200041306a200241e4076a290200370200410921030c010b200041086a200241e80b6a41c8031085051a200041f0036a200241e4076a290200370200200041e8036a200241dc076a290200370200200041e0036a200241d4076a290200370200200041d8036a200241cc076a290200370200200041d0036a20022902c407370200410b21030b200020033602002002280200410c460d002002109a010b200241b00f6a24000bfb1102167f017e23004180016b22022400200241d0006a4104722103200128020421044100210502400240034020042206450d01200128020022072d0000210820012006417f6a22043602042001200741016a360200200320056a20083a00002002200541016a22073602502007210520074120470d000b200241c8006a41026a2205200241dd006a2d00003a00002002200241e9006a22072800003602782002200241ec006a28000036007b200220022f01543b014c200220022d00563a004e2002200241db006a2f00003b0148200241de006a2801002109200241e5006a280000210a200241f0006a280200210b2002280057210c200228007b210d200241f8006a41026a2204200241e4006a2d00003a00002002200241e2006a2f01003b0178200241c4006a41026a2208200241eb006a2d00003a0000200220072f00003b0144200241d0006a41026a20022d004e3a0000200220022f014c3b0150200241c0006a41026a20052d00003a0000200220022f01483b01402002413c6a41026a20042d00003a0000200220022f01783b013c200241386a41026a20082d00003a0000200220022f01443b01380c010b0b200241146a41026a200241d0006a41026a2d00003a0000200241106a41026a200241c0006a41026a2d00003a00002002410c6a41026a2002413c6a41026a2d00003a0000200241086a41026a200241386a41026a2d00003a0000200220022f01503b0114200220022f01403b0110200220022f013c3b010c200220022f01383b0108024002400240024002402006450d0020022001109b0120022802000d012002280204210e200128020421074104210502400240034020072204450d01200241d0006a20056a200128020022062d00003a000020012004417f6a22073602042001200641016a36020020022005417d6a360250200541016a22054124470d000b200241c8006a41026a2205200241dd006a2d00003a00002002200241e9006a22062800003602782002200241ec006a28000036007b200220022f01543b014c200220022d00563a004e2002200241db006a2f00003b0148200241de006a280100210f200241e5006a2800002110200241f0006a280200211120022800572112200228007b2113200241f8006a41026a2208200241e4006a2d00003a00002002200241e2006a2f01003b0178200241c4006a41026a2203200241eb006a2d00003a0000200220062f00003b0144200241d0006a41026a20022d004e3a0000200220022f014c3b0150200241c0006a41026a20052d00003a0000200220022f01483b01402002413c6a41026a20082d00003a0000200220022f01783b013c200241386a41026a20032d00003a0000200220022f01443b01380c010b410021070b200241246a41026a200241d0006a41026a2d00003a0000200241206a41026a200241c0006a41026a2d00003a00002002411c6a41026a2002413c6a41026a2d00003a0000200241186a41026a200241386a41026a2d00003a0000200220022f01503b0124200220022f01403b0120200220022f013c3b011c200220022f01383b01182004450d02200241d0006a41047221034100210502400240034020072206450d01200128020022042d0000210820012006417f6a22073602042001200441016a360200200320056a20083a00002002200541016a22043602502004210520044120470d000b200241c8006a41026a2214200241dd006a2d00003a00002002200241e9006a22152800003602782002200241ec006a28000036007b200220022f01543b014c200220022d00563a004e2002200241db006a2f00003b0148200241de006a2801002105200241e5006a2800002107200241f0006a280200210420022800572108200228007b2103200241f8006a41026a2216200241e4006a2d00003a00002002200241e2006a2f01003b0178200241c4006a41026a2217200241eb006a2d00003a0000200220152f00003b0144200241d0006a41026a20022d004e3a0000200220022f014c3b0150200241c0006a41026a20142d00003a0000200220022f01483b01402002413c6a41026a20162d00003a0000200220022f01783b013c200241386a41026a20172d00003a0000200220022f01443b01380c010b0b200241346a41026a200241d0006a41026a2d00003a0000200241306a41026a200241c0006a41026a2d00003a00002002412c6a41026a2002413c6a41026a2d00003a0000200241286a41026a200241386a41026a2d00003a0000200220022f01503b0134200220022f01403b0130200220022f013c3b012c200220022f01383b01282006450d03200241d0006a2001108302024020022802502201450d0020022902542118200020022f01103b00172000200936001a200020022f010c3b001e2000200a360021200020022f01083b0025200041106a20022f01143b0000200041136a200c360000200041126a200241146a41026a2d00003a0000200041196a200241106a41026a2d00003a0000200041206a2002410c6a41026a2d00003a0000200041276a200241086a41026a2d00003a00002000412c6a200b360000200041286a200d360000200041336a20123600002000200f36003a20002010360041200041306a20022f01243b0000200041326a200241246a41026a2d00003a0000200041396a200241206a41026a2d00003a0000200020022f01203b0037200041c0006a2002411c6a41026a2d00003a0000200020022f011c3b003e200020022f01183b0045200041c7006a200241186a41026a2d00003a0000200041cc006a2011360000200041c8006a2013360000200041d2006a200241346a41026a2d00003a0000200041d0006a20022f01343b0000200041d3006a2008360000200041d9006a200241306a41026a2d00003a0000200020022f01303b00572000200536005a200041e0006a2002412c6a41026a2d00003a0000200020022f012c3b005e20002007360061200041e7006a200241286a41026a2d00003a0000200020022f01283b0065200041ec006a2004360000200041e8006a200336000020002018370208200020013602042000200e3602000c050b200041003602040c040b200041003602040c030b200041003602040c020b200041003602040c010b200041003602040b20024180016a24000b8c0201037f230041d0006b220124002001412036020420012000360200200141086a2000412041002802d4ad4211040002400240200128020822020d00410221000c010b200128020c210302400240200141106a280200450d0041002100024020022d00000e020200010b410121000c010b2001420037021c200141002802dc94423602182001410936022c200120013602282001200141186a360234200141cc006a41013602002001420137023c200141a0e6c1003602382001200141286a360248200141346a41d0adc000200141386a10321a2001280218200128022010ad010240200128021c450d00200128021810300b410221000b2003450d00200210300b200141d0006a240020000b040010050b070010024101460b0e002001ad4220862000ad8410150b8f0201027f20014180feff07714108762102024002402001410171450d00411f2103419580c200210102400240200241ff01710e03000103000b41c100210341d4ffc10021010c020b41c10021034193ffc10021010c010b411f210341f4fec1002101024002400240024002400240024002400240200241ff01710e0a00060102030405090708000b4120210341d4fec10021010c080b4127210341f4fdc10021010c070b4117210341ddfdc10021010c060b41befdc10021010c050b412621034198fdc10021010c040b412a210341eefcc10021010c030b41392103419bfec10021010c020b413b210341b3fcc10021010c010b41d200210341e1fbc10021010b20002003360204200020013602000b6901017f230041206b220324002003200136020420032000360200200341086a41106a200241106a290200370300200341086a41086a200241086a29020037030020032002290200370308200341dce9c100200341046a41dce9c100200341086a41d0e7c100104b000b1c0020012802184199f7c100410f2001411c6a28020028020c1100000bb00301097f230041306b22032400024002400240024020022d000422044102470d00200041023a00000c010b20012802042105024002402001280200220628020422014125490d00200641106a28020021012006410c6a28020021070c010b200641096a21070b200228020021082006280200220941017621062005280200280200210a024002402009410171450d00200120064d0d04200341013a0008200341106a2001200641016a220b6b36020020032007200b6a36020c2003200720066a2d0000410f713a00090c010b20012006490d02200341106a200120066b360200200341003b01082003200720066a36020c0b200a200341086a10b501200a200810b60120052802042802002106200341116a200241056a220241086a290000370000200341196a200241106a290000370000200341216a200241186a290000370000200341286a2002411f6a280000360000200320043a00082003200229000037000920002006200341086a200528020028020010b7012005280200280200200141017420096b41016a10b8010b200341306a24000f0b2006200141e097c200104a000b2006200141f097c2001033000b850404047f017e027f017e230041d0026b22032400200041d0006a2802002104200028024c2105200341d0016a41086a2206200241086a280200360200200320022902003703d001200341d8006a20052001200341d0016a200428020c1103000240024002400240200328025822020d004130102f2200450d03200041013a000020002001290000370001200041096a200141086a290000370000200041116a200141106a290000370000200041196a200141186a2900003700000c010b200329025c2107200341b0016a41186a200141186a2205290000370300200341b0016a41106a200141106a2208290000370300200341b0016a41086a200141086a290000370300200320012900003703b001200341d0016a200341b0016a20022007422088a7200041306a220910ad0420032802d401210020032802d0012104200341d8006a200641d4001085051a024020044101460d00200341046a200341d8006a41d4001085051a200341f8016a200341046a41d4001085051a200341e9016a2005290000370000200341e1016a2008290000370000200341d9016a200141086a290000370000200320003602f401200341013a00d001200320012900003700d1012009200341d0016a10b30121004200210a2007a7450d02200210300c020b2007a7450d00200210300b4201210a0b200341d0026a24002000ad422086200a840f0b102a000ba25302127f047e23004180056b22062400200641086a200341086a280200360200200620032902003703000240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024020022802000e050104000203010b20064198016a2002412c6a29020037030020064190016a200241246a29020037030020064188016a2002411c6a29020037030020064180016a2207200241146a290200370300200641f0006a41086a2002410c6a29020037030020062002290204370370200241346a2108200241386a2109024002402006280274220a4125490d002007280200210a200641f0006a410c6a280200210b0c010b200641f9006a210b0b2002413c6a210c200241356a210d20082d0000210e2009280200210f2006200628027022103602a8012006200b3602a00120062802042111200628020821122006200a3602a4010240200a410174221320106b2214201141017420126b2202200220144b1b2215450d00410021022006280200211602400340201220026a2209410176220820114f0d10201020026a22174101762207200a4f0d11201620086a2d00002208410f71200841f0017141047620094101711b200b20076a2d00002208410f71200841047620174101711b470d012015200241016a2202470d000b201521020b20020d060b20132010470d0441ccf0c100412a41f8f0c100102d000b4101210920062802042203200628020822084101762202490d0e20064180046a410472200628020020026a200320026b10ab04200641286a41086a20064180046a41186a290300370300200641286a41106a200641a0046a290300370300200641286a41186a200641a8046a290300370300200620064180046a41106a290300370328200841017121022006418c046a280200210320064180046a41086a2802002107200429020421182004280200210c2006280284042117410021080c2a0b200241106a28020021102002410c6a280200210b200241086a280200210a2002280204210202402006280204220941017420062802082208470d0020042802082103410021080240200a450d0020102003470d00200a20042802002010108805452108201021030b2004280204210720042802002117024020052802002209450d00200541046a280200450d00200910300b2005200b3602042005200a360200200541086a2010360200410321090c2a0b2008410176220720094f0d0e200628020020076a2d000021092003200328020841016a36020820022009410f71200941047620084101711b220741246c6a22092d00002108200941023a00000240024020084102470d0020032802042217200328020822054101762208490d112006418c046a200328020020086a201720086b10ab04200641b8046a2004290200370300200641c0046a200441086a280200360200200641013602840420064180046a41086a200541017136020041002108200641003a0080042002200741246c6a41046a200141306a20064180046a10b301360200200941003a00000c010b20064180046a41096a200941096a29000037000020064180046a41116a200941116a29000037000020064180046a41196a200941196a29000037000020064180046a41206a200941206a280000360000200620083a0080042006200929000137008104200641a8036a41086a200441086a280200360200200620042902003703a803200641d0026a200120064180046a2003200641a8036a200510800320062802d402210320062802d0024101460d0b200641d0026a41086a2d0000211741002108200941003a00002002200741246c6a41046a2003360200201741ff0171450d090b4103210920102103200b2107200a21170c290b200641a0026a2002412c6a29020037030020064198026a200241246a29020037030020064190026a2002411c6a29020037030020064188026a2217200241146a290200370300200641f8016a41086a2002410c6a290200370300200620022902043703f801200241346a2108200241386a21092002413c6a2107200241c0006a21020240024020062802fc01220a4125490d002017280200210a200641f8016a410c6a280200210b0c010b20064181026a210b0b2008280200210c2009280200210e200728020021132002280200210f200620062802f80122103602d0012006200b3602c80120062802042111200628020821122006200a3602cc01410021020240200a41017420106b2214201141017420126b220d200d20144b1b2215450d00200628020021160340201220026a2209410176220820114f0d11201020026a22174101762207200a4f0d12201620086a2d00002208410f71200841f0017141047620094101711b200b20076a2d00002208410f71200841047620174101711b470d012015200241016a2202470d000b201521020b0240024002400240024002400240024020022014470d002014200d460d010b200220144f0d01200a2010200241016a22076a22084101762203490d19200641d0026a410472200b20036a200a20036b10ab04200620084101713602d002201020026a22084101762203200a4f0d1a200b20036a2d0000210341c004102f2209450d1b200941023a009c04200941023a00f803200941023a00d403200941023a00b003200941023a008c03200941023a00e802200941023a00c402200941023a00a002200941023a00fc01200941023a00d801200941023a00b401200941023a009001200941023a006c200941023a0048200941023a0024200941023a000020064180046a41306a200641d0026a41286a29030037030020064180046a41286a2217200641d0026a41206a29030037030020064180046a41206a220a200641d0026a41186a29030037030020064180046a41186a2210200641d0026a41106a29030037030020064180046a41106a2205200641d0026a41086a29030037030020064180046a41086a220b20062903d002370300200641c4046a200f360200200641c0046a2013360200200641bc046a200e360200200641b8046a200c360200200641003a008004200641043602840420092003410f71200341f0017141047620084101711b41246c6a2203200141306a221120064180046a10b301360204200341003a000020062802042203410174200628020822086b2002470d0220064180046a200641c8016a200210ae04200641286a41086a2010290300370300200641286a41106a200a290300370300200641286a41186a2017290300370300200620052903003703282006418c046a2802002103200b28020021072004280208210a20042902002118200628028404211720062802800421020c030b410021080240200e450d00200f2004280208470d00200e2004280200200f1088054521080b200a20104101762202490d1720064180046a410472200b20026a200a20026b10ab04200641a8036a41086a220920064180046a41186a290300370300200641a8036a41106a220b200641a0046a290300370300200641a8036a41186a2211200641a8046a290300370300200620064180046a41106a2903003703a803201041017121022006418c046a280200210320064180046a41086a28020021072004280208210a200429020021182006280284042117024020052802002204450d00200541046a280200450d00200410300b200520133602042005200e360200200541086a200f360200200641286a41086a2009290300370300200641286a41106a200b290300370300200641286a41186a2011290300370300200620062903a8033703280c050b201220026a2209410176220820114f0d1a200628020020086a2d000021082003200220032802086a41016a360208200c2008410f71200841047620094101711b220941246c6a22022d00002108200241023a000020084102470d0220032802042207200328020822174101762208490d1d2006418c046a200328020020086a200720086b10ab04200641b8046a2004290200370300200641c0046a200441086a280200360200200641013602840420064180046a41086a2017410171360200200641003a008004200c200941246c6a41046a200141306a20064180046a10b301360200200241003a00000c030b200820026a220a410176221720034f0d1a2003200820076a22104101762208490d1b2006280200220520176a2d00002107200641a8036a41046a200520086a200320086b10ab04200620104101713602a803200641b0046a200641a8036a41286a29020037030020064180046a41286a2203200641a8036a41206a29020037030020064180046a41206a2208200641a8036a41186a29020037030020064180046a41186a2217200641a8036a41106a29020037030020064180046a41106a2210200641a8036a41086a29020037030020064180046a41086a220520062902a803370300200641b8046a2004290200370300200641c0046a200441086a2802003602002006410136028404200641003a00800420092007410f71200741f00171410476200a4101711b41246c6a2207201120064180046a10b301360204200741003a000020064180046a200641c8016a200210ae04200641286a41086a2017290300370300200641286a41106a2008290300370300200641286a41186a2003290300370300200620102903003703282006418c046a28020021032005280200210720062802840421172006280280042102420021180b410021082009210c0c020b20064180046a41096a200241096a29000037000020064180046a41116a200241116a29000037000020064180046a41196a200241196a29000037000020064180046a41206a200241206a280000360000200620083a0080042006200229000137008104200641a8036a41086a200441086a280200360200200620042902003703a803200641d0026a200120064180046a2003200641a8036a200510800320062802d402210320062802d0024101460d0a200641d0026a41086a2d00002108200241003a0000200c200941246c6a41046a2003360200200841ff0171450d080b200a20104101762202490d1a20064180046a410472200b20026a200a20026b10ab04200641286a41086a20064180046a41186a290300370300200641286a41106a200641a0046a290300370300200641286a41186a200641a8046a290300370300200620064180046a41106a290300370328201041017121022013ad422086200ead8421182006418c046a280200210320064180046a41086a2802002107200628028404211741002108200f210a0b024020062802fc014125490d0020064184026a28020010300b410421090c290b200641a0026a2002412c6a29020037030020064198026a200241246a29020037030020064190026a2002411c6a29020037030020064188026a2207200241146a290200370300200641f8016a41086a2002410c6a290200370300200620022902043703f8012002413c6a2108200241386a2109200241346a21020240024020062802fc01220d4125490d002007280200210a200641f8016a410c6a280200210b0c010b20064181026a210b200d210a0b2008280200210e200928020021132002280200210f410021020240200a41017420062802f80122106b220c20062802042211410174200628020822126b22142014200c4b1b2215450d00200628020021160340201220026a2209410176220820114f0d1b201020026a22174101762207200a4f0d1c201620086a2d00002208410f71200841f0017141047620094101711b200b20076a2d00002208410f71200841047620174101711b470d012015200241016a2202470d000b201521020b02400240024002402002200c470d00200c2014460d010b2002200c4f0d0141c004102f2209450d16200941023a009c04200941023a00f803200941023a00d403200941023a00b003200941023a008c03200941023a00e802200941023a00c402200941023a00a002200941023a00fc01200941023a00d801200941023a00b401200941023a009001200941023a006c200941023a0048200941023a0024200941023a0000201020026a22074101762217200a4f0d1e200a200741016a22104101762208490d1f200b20176a2d00002117200641a8036a41046a200b20086a200a20086b10ab04200620104101713602a80320064180046a41306a200641a8036a41286a29020037030020064180046a41286a220b200641a8036a41206a29020037030020064180046a41206a2211200641a8036a41186a29020037030020064180046a41186a220a200641a8036a41106a221229020037030020064180046a41106a2210200641a8036a41086a221529020037030020064180046a41086a221620062902a803370300200641c0046a2214200e360200200641bc046a220c201336020020064180046a41386a200f360200200641013602840441002108200641003a00800420092017410f71201741f0017141047620074101711b41246c6a2207200141306a20064180046a10b301360204200741003a000020064180046a2006200210ae04200641c8006a41086a22022006418c046a2207280200360200200641f0006a41086a2217200a290300370300200641f0006a41106a220d2011290300370300200641f0006a41186a2211200b29030037030020062006290284043703482006201029030037037020062006280280043602ac03200641043602a8032015200629034837030020122002280200360200200641a8036a41386a4100360200200641a8036a41346a2009360200200641a8036a41146a2006290370370200200641a8036a411c6a2017290300370200200641a8036a41246a200d290300370200200641a8036a412c6a2011290300370200200641a0016a41086a200441086a280200360200200620042902003703a00120064180046a2001200641a8036a2003200641a0016a200510aa04200641d0026a41086a220520064180046a41246a290200370300200641d0026a41106a220b20064180046a412c6a290200370300200641d0026a41186a221120064180046a41346a290200370300200620064180046a411c6a2902003703d00220162802002109200728020021022010280200211720064180046a41146a2802002107200a2802002103200c280200210c20142903002118200641c8046a280200210a20062802840421102006280280042104200641b0016a41106a2212200641dc046a280200360200200641b0016a41086a2215200641d4046a2902003703002006200641cc046a2902003703b00120044101460d07200641c8016a41186a20112903002219370300200641c8016a41106a200b290300221a370300200641c8016a41086a2005290300221b370300200641d8006a41086a22042015290300370300200641d8006a41106a22102012280200360200200641286a41086a201b370300200641286a41106a201a370300200641286a41186a2019370300200620062903d00222193703c801200620062903b00137035820062019370328200641106a41106a2010280200360200200641106a41086a2004290300370300200620062903583703100c020b410021020240200e2004280208470d00200f2004280200200e1088054521020b024020052802002203450d00200541046a280200450d00200310300b200520133602042005200f360200200541086a200e360200024020020d00200620103602800420064180046a410472210302400240200d4125490d0020064188026a280200210d20064184026a28020021020c010b20064181026a21020b4100210820064180046a41086a220941003a00002006410036028404200320022002200d6a10bc02200641286a41086a20064180046a41186a290300370300200641286a41106a200641a0046a290300370300200641286a41186a200641a8046a290300370300200620064180046a41106a2903003703282006418c046a280200210320092802002107200429020421182004280200210c20062802840421172006280280042102410121090c020b200620103602800420064180046a410472210302400240200d4125490d0020064188026a280200210d20064184026a28020021020c010b20064181026a21020b20064180046a41086a220841003a00002006410036028404200320022002200d6a10bc02200641286a41086a20064180046a41186a290300370300200641286a41106a200641a0046a290300370300200641286a41186a200641a8046a290300370300200620064180046a41106a2903003703282006418c046a280200210320082802002107200429020421182004280200210c2006280284042117200628028004210241012109410121080c010b200a20104101762202490d1e20064180046a410472200b20026a200a20026b10ab04200620104101713602800441c004102f2202450d14200241023a009c04200241023a00f803200241023a00d403200241023a00b003200241023a008c03200241023a00e802200241023a00c402200241023a00a002200241023a00fc01200241023a00d801200241023a00b401200241023a009001200241023a006c200241023a0048200241023a0024200241023a0000200641d0026a41086a220820064180046a41086a2209290300370300200641d0026a41106a220720064180046a41106a2217290300370300200641d0026a41186a220a20064180046a41186a2210290300370300200641d0026a41206a220b20064180046a41206a290300370300200641d0026a41286a221120064180046a41286a29030037030020062006290380043703d002200641a8036a410c6a2008290300370200200641a8036a41146a2007290300370200200641a8036a411c6a200a290300370200200641a8036a41246a200b290300370200200641a8036a412c6a2011290300370200200641a8036a41c0006a200e360200200641a8036a413c6a2013360200200641e0036a200f360200200641a8036a41346a2002360200200641043602a803200620062903d0023702ac03200641a0016a41086a200441086a280200360200200620042902003703a00120064180046a2001200641a8036a2003200641a0016a200510aa04200641c8016a41086a220420064180046a41246a290200370300200641c8016a41106a220520064180046a412c6a290200370300200641c8016a41186a220b20064180046a41346a290200370300200620064180046a411c6a2902003703c8012009280200210920064180046a410c6a28020021022017280200211720064180046a41146a28020021072010280200210320064180046a413c6a280200210c20064180046a41c0006a2903002118200641c8046a280200210a20062802840421102006280280042108200641b0016a41106a2211200641dc046a280200360200200641b0016a41086a2212200641d4046a2902003703002006200641cc046a2902003703b00120084101460d1f200641f0006a41186a200b2903002219370300200641f0006a41106a2005290300221a370300200641f0006a41086a2004290300221b370300200641d8006a41086a22082012290300370300200641d8006a41106a22042011280200360200200641286a41086a201b370300200641286a41106a201a370300200641286a41186a2019370300200620062903c8012219370370200620062903b00137035820062019370328200641106a41106a2004280200360200200641106a41086a200829030037030020062006290358370310410021080b20062802fc014125490d2820064184026a28020010300c280b20104101762202200a4f0d1e200b20026a2d0000210841c004102f2202450d12200241023a009c04200241023a00f803200241023a00d403200241023a00b003200241023a008c03200241023a00e802200241023a00c402200241023a00a002200241023a00fc01200241023a00d801200241023a00b401200241023a009001200241023a006c200241023a0048200241023a0024200241023a00000240024020144101470d00200641a8036a41026a200d41026a2d00003a000020064180046a41086a200c41086a29020037030020064180046a41106a200c41106a29020037030020064180046a41186a200c41186a2802003602002006200d2f00003b01a8032006200c290200370380040c010b200a201041016a22074101762209490d20200641ac036a200b20096a200a20096b10ab04200620074101713602a80320064180046a41306a200641a8036a41286a29020037030020064180046a41286a200641a8036a41206a29020037030020064180046a41206a200641a8036a41186a29020037030020064180046a41186a200641a8036a41106a29020037030020064180046a41106a200641a8036a41086a29020037030020064180046a41086a20062902a803370300200641b9046a200d2f00003b0000200641bb046a200d41026a2d00003a0000200641c0046a200c290200370300200641c8046a200c41086a290200370300200641d0046a200c41106a290200370300200641d8046a200c41186a280200360200200641bc046a200f360200200641b8046a200e3a000020064102360284044100210e200641003a008004200141306a20064180046a10b301210f0b20022008410f71200841047620104101711b41246c6a2208200e3a0000200820062f01a8033b00012008200f3602042008200629038004370208200841036a200641aa036a2d00003a0000200841106a20064180046a41086a2209290300370200200841186a20064180046a41106a2207290300370200200841206a20064180046a41186a220a28020036020041002108200641a8036a41086a4100360200200620023602ac03200641033602a803200641d8006a41086a200441086a2802003602002006200429020037035820064180046a2001200641a8036a2003200641d8006a200510aa04200641d0026a41086a221020064180046a41246a290200370300200641d0026a41106a2205200641ac046a290200370300200641d0026a41186a220b200641b4046a29020037030020062006419c046a2902003703d002200928020021092006418c046a28020021022007280200211720064194046a2802002107200a2802002103200641bc046a280200210c200641c0046a2903002118200641c8046a280200210a20062802840421112006280280042104200641c8016a41106a2212200641dc046a280200360200200641c8016a41086a2215200641d4046a2902003703002006200641cc046a2902003703c80120044101460d01200641f8016a41186a200b2903002219370300200641f8016a41106a2005290300221a370300200641f8016a41086a2010290300221b370300200641b0016a41086a22042015290300370300200641b0016a41106a22102012280200360200200641286a41086a201b370300200641286a41106a201a370300200641286a41186a2019370300200620062903d00222193703f801200620062903c8013703b00120062019370328200641106a41106a2010280200360200200641106a41086a2004290300370300200620062903b0013703100c250b0240024020022014460d00200a201020026a22094101762208490d21200641c8016a41046a200b20086a200a20086b10ab042003200328020820026a360208200620094101713602c801200641b4036a2208200641c8016a41086a290200370200200641bc036a200641c8016a41106a290200370200200641c4036a200641c8016a41186a290200370200200641cc036a200641c8016a41206a290200370200200641d4036a200641c8016a41286a290200370200200641dc036a200e3a000041022109200641023602a803200641df036a200d41026a2d00003a0000200620062902c8013702ac032006200d2f00003b00dd03200641e0036a200f360200200641e4036a200c290200370200200641ec036a200c41086a290200370200200641f4036a200c41106a290200370200200641fc036a200c41186a280200360200200641b0016a41086a200441086a280200360200200620042902003703b00120064180046a2001200641a8036a2003200641b0016a200510aa0420062802840421072006280280042103200641d0026a20064180046a41086a41d8001085051a20034101460d01200641f8016a200641d0026a41d8001085051a200641a8036a200641a0016a200210ae0420064180046a410472200641f8016a41d8001085051a4100210c200641003a008004200141306a20064180046a10b3012102200641286a41086a200641a8036a41186a290300370300200641286a41106a200641a8036a41206a290300370300200641286a41186a200641a8036a41286a2903003703002006200641a8036a41106a2903003703282002ad2118200641a8036a41086a28020021072008280200210320062802a803210220062802ac032117410021080c260b2003200328020820146a36020820064180046a41086a200c29020037030020064180046a41106a200c41086a29020037030020064180046a41186a200c41106a290200370300200641a0046a200c41186a2802003602002006200e3a0080042006200f360284042006200d2f00003b0081042006200d41026a2d00003a008304200641a8036a41086a200441086a280200360200200620042902003703a803200641d0026a200120064180046a2003200641a8036a200510800320062802d4022109024020062802d0024101460d00200a20104101762202490d22200641d0026a41086a2d0000210320064180046a410472200b20026a200a20026b10ab04200641a8036a41186a200641a8046a2903002218370300200641a8036a41106a200641a0046a2903002219370300200641286a41086a20064180046a41186a290300370300200641286a41106a2019370300200641286a41186a2018370300200620064180046a41106a29030037032820104101712102200341ff01714521082006418c046a280200210320064180046a41086a280200210720062802840421172009ad2118410221094100210c0c260b20004101360200200020093602040c020b20004101360200200020073602040c010b20004101360200200020113602040b20062802744125490d25200641fc006a28020010300c250b20004101360200200020103602040c200b200a20104101762202490d1d20064184046a200b20026a200a20026b10ab04200041c8006a200f360200200041c4006a2013360200200041c0006a200e3602002000413c6a200c36020020004281808080c000370204200041146a20064188046a2902003702002000411c6a20064190046a290200370200200041246a20064198046a2902003702002000412c6a200641a0046a290200370200200041346a200641a8046a29020037020020062010410171360280042000410c6a200629028004370200200041003602000c1e0b2000428080808010370200200041186a2010360200200041146a200b360200200041106a200a3602002000410c6a2002360200200041086a41033602000c220b20004101360200200020033602040240200e450d002013450d00200e10300b200c10300c1c0b20004101360200200020033602040240200a450d00200b450d00200a10300b200210300c200b2008201141e098c2001033000b2007200a41e098c2001033000b2002200341f098c200104a000b2007200941e098c2001033000b2008201741f098c200104a000b2008201141e098c2001033000b2007200a41e098c2001033000b2002200a41f098c200104a000b2003200a41f098c200104a000b2003200a41e098c2001033000b102a000b2008201141e098c2001033000b2017200341e098c2001033000b2008200341f098c200104a000b2008200741f098c200104a000b2002200a41f098c200104a000b2008201141e098c2001033000b2007200a41e098c2001033000b2017200a41e098c2001033000b2008200a41f098c200104a000b2002200a41f098c200104a000b20004101360200200020103602040c060b2002200a41e098c2001033000b2009200a41f098c200104a000b2008200a41f098c200104a000b2002200a41f098c200104a000b2002200a41f098c200104a000b20062802fc014125490d0420064184026a28020010300c040b20062802fc014125490d0320064184026a28020010300c030b20062802744125490d01200641fc006a28020010300c010b0b20002008360204200041186a2003360200200041146a2007360200200041106a20173602002000410c6a2002360200200041086a20093602002000411c6a2006290328370200200041c8006a200a360200200041c0006a20183702002000413c6a200c360200200041cc006a2006290310370200200041246a200641286a41086a2903003702002000412c6a200641286a41106a290300370200200041346a200641286a41186a290300370200200041d4006a200641106a41086a290300370200200041dc006a200641106a41106a280200360200200041003602000b20064180056a24000bc30301087f230041106b22032400200041003a00042000410036020020032000200210bd020240024020032802004101470d00200341086a2802000d0141d099c200411141e499c200102d000b02400240200028020022044125490d002000410c6a22052802002106200041086a28020021070c010b200041056a21072004210620002105412421040b02400240024020062004490d00200121080c010b2002210920012108024003402009450d01200720066a20082d00003a00002009417f6a2109200841016a21082004200641016a2206470d000b200421060c010b200520063602000c010b200520063602002008200120026a2201460d002000410c6a2105200041056a210a034002400240200028020022044125490d00200028020c210620002802082107200521090c010b2004210620002109200a2107412421040b20082d00002102024020062004470d0020032000410110bd02024020032802004101470d00200341086a2802000d0441d099c200411141e499c200102d000b200028020c210620002802082107200521090b200720066a20023a00002009200928020041016a3602002001200841016a2208470d000b0b200341106a24000f0b102a000b940b03017f057e197f230041e0016b22022400200241e8006a200141d0001085051a200241c0016a41186a200029031820002903088522033703002002200029031022043703c801200241e8006a41186a290300210520022004200029030022068522073703d001200241c8006a2003200585420020072002290378854200108405200241d8006a2003200241e8006a41086a29030085420020072002290368854200108405200220042004200642adfed5e4d485fda8d8007e200241c8006a41086a2903002002290348857c42a0cbbf9599b5a19f0a7c85421789200241d8006a41086a2903002002290358857c854217893703c00120024188016a200241c0016a10ff0102400240200241b4016a2d000022080d00200241186a20022903c001420042adfed5e4d485fda8d8004200108405200241186a41086a29030020022903188521040c010b200241386a20022903c001420185420042adfed5e4d485fda8d8004200108405200241286a200241386a41086a290300200229033885200241b5016a31000085420042adfed5e4d485fda8d8004200108405200241286a41086a29030020022903288521040b200241086a20022903c801420020044200108405200041246a2802002209200041206a220a280200220b200241106a290300200229030885200489a7220c71220d6a280000220e200c411976220f41818284086c2210732211417f73201141fffdfb776a71418081828478712112200d41046a200b71211341042114200d2115200e2111024002400240024003402013211620120d012011201141017471418081828478710d022010200920166a2800002211732212417f73201241fffdfb776a71418081828478712112200b201620146a41046a712113201441046a2114201621150c000b0b2012417f6a201271211320152012684103766a2117200241e8006a41256a211820024194016a280200211920024190016a280200211a200228028801211b200241e8006a41cd006a2d000041ff0171211c03400240200241e8006a20094100200b2017716b41d0006c6a221241b07f6a221d41201088050d00201241506a211e201a211f201921170240201b41254f0d002018211f201b21170b02400240201e28020022204125490d002012415c6a2802002120201241586a280200211e0c010b201e41056a211e0b20172020470d00201f201e20171088050d0020082012417c6a2d0000470d002008450d03201c201d41cd006a2d000041ff0171460d030b024003402016211220130d012011201141017471418081828478710d032010200920126a2800002211732216417f73201641fffdfb776a71418081828478712113200b201220146a41046a712116201441046a2114201221150c000b0b20152013684103766a2117201221162013417f6a20137121130c000b0b200220003602bc014104211102400340200e4180818284787122160d01200d20116a2116201141046a211120092016200b71220d6a280000210e0c000b0b02402009201668410376200d6a200b7122116a2c000022164100480d0020092009280200418081828478716841037622116a2d000021160b200041286a280200211402402016410171220d450d0020140d00200241c0016a200a200241bc016a10fe012000280220220b200c712116200041246a28020021094104211103402016221420116a200b712116201141046a2111200920146a28000041808182847871220e450d000b02402009200e6841037620146a200b7122116a2c00004100480d002009280200418081828478716841037621110b200028022821140b20002014200d6b360228200920116a200f3a0000200b2011417c6a7120096a41046a200f3a00002009410020116b41d0006c6a41b07f6a200141d0001085051a2000412c6a2211201128020041016a3602000c010b201b4125490d00201a10300b200241e0016a24000bf17c1f057f017e027f017e017f017e017f017e017f017e017f017e017f017e017f017e017f017e017f017e017f017e017f017e017f017e017f017e017f017e1e7f230041d0106b22052400200541f00e6a2002200310ce0320052d00f10e210620052d00f00e2107200541900d6a200541f00e6a41027241de011085051a024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024020074101470d002005200641ff017141004722033a00094130102f22020d010c2a0b200541b00b6a200541900d6a41026a41dc011085051a200541086a410472200541b00b6a200220031070200541086a41086a22082802002109200541086a410c6a290200210a200541086a41146a2802002106200541086a41186a2802002102200541086a411c6a280200210b200541086a41206a280200210c200541086a41246a290200210d200541346a280200210e200541086a41306a290300210f200541086a41386a2802002110200541086a413c6a2902002111200541086a41c4006a2802002112200541086a41c8006a2903002113200541086a41d0006a2802002114200541dc006a2902002115200541e4006a2802002116200541e8006a2903002117200541f0006a2802002118200541f4006a2902002119200541fc006a280200211a20054180016a290300211b20054188016a280200211c2005418c016a290200211d20054194016a280200211e20054198016a290300211f200541a0016a2802002120200541a4016a2902002121200541ac016a2802002122200541b0016a2903002123200541b8016a2802002124200541bc016a2902002125200541c4016a2802002126200541c8016a2903002127200541d0016a2802002128200541d4016a28020021294100212a200528020c0e050702030401070b200241033a0000200220033a002120022001290000370001200241096a200141086a290000370000200241116a200141106a290000370000200241196a200141186a29000037000020004101360200200020023602040c270b200541d8016a2802002103200541dc016a280200212b200541e0016a28020021074102212c4102212d024020064102460d00200541900d6a41186a200141186a290000370300200541900d6a41106a200141106a290000370300200541900d6a41086a200141086a290000370300200520012900003703900d200541b00b6a41086a200b360200200520023602b40b200520063602b00b200541f00e6a200541900d6a200541b00b6a200410af0420052802f40e212d20052802f00e4101460d17200541a0056a41186a200541900f6a290300370300200541a0056a41106a200541f00e6a41186a290300370300200541a0056a41086a200541f00e6a41106a2903003703002005200541f00e6a41086a2903003703a0050b20054180056a41186a200541a0056a41186a29030037030020054180056a41106a200541a0056a41106a29030037030020054180056a41086a200541a0056a41086a290300370300200520052903a005370380050240200c4102460d00200541900d6a41186a200141186a290000370300200541900d6a41106a200141106a290000370300200541900d6a41086a200141086a290000370300200520012900003703900d2005200d3702b40b2005200c3602b00b200541f00e6a200541900d6a200541b00b6a200410af0420052802f40e212c20052802f00e4101460d18200541e0056a41186a200541900f6a290300370300200541e0056a41106a200541f00e6a41186a290300370300200541e0056a41086a200541f00e6a41106a2903003703002005200541f00e6a41086a2903003703e0050b200541c0056a41186a200541e0056a41186a290300370300200541c0056a41106a200541e0056a41106a290300370300200541c0056a41086a200541e0056a41086a290300370300200520052903e0053703c00541022106410221020240200e4102460d00200541900d6a41186a200141186a290000370300200541900d6a41106a200141106a290000370300200541900d6a41086a200141086a290000370300200520012900003703900d2005200f3702b40b2005200e3602b00b200541f00e6a200541900d6a200541b00b6a200410af0420052802f40e210220052802f00e4101460d19200541a0066a41186a200541900f6a290300370300200541a0066a41106a200541f00e6a41186a290300370300200541a0066a41086a200541f00e6a41106a2903003703002005200541f00e6a41086a2903003703a0060b20054180066a41186a200541a0066a41186a29030037030020054180066a41106a200541a0066a41106a29030037030020054180066a41086a200541a0066a41086a290300370300200520052903a00637038006024020104102460d00200541900d6a41186a200141186a290000370300200541900d6a41106a200141106a290000370300200541900d6a41086a200141086a290000370300200520012900003703900d200520113702b40b200520103602b00b200541f00e6a200541900d6a200541b00b6a200410af0420052802f40e210620052802f00e4101460d1a200541e0066a41186a200541900f6a290300370300200541e0066a41106a200541f00e6a41186a290300370300200541e0066a41086a200541f00e6a41106a2903003703002005200541f00e6a41086a2903003703e0060b200541c0066a41186a200541e0066a41186a290300370300200541c0066a41106a200541e0066a41106a290300370300200541c0066a41086a200541e0066a41086a290300370300200520052903e0063703c0064102212e4102212a024020124102460d00200541900d6a41186a200141186a290000370300200541900d6a41106a200141106a290000370300200541900d6a41086a200141086a290000370300200520012900003703900d200520133702b40b200520123602b00b200541f00e6a200541900d6a200541b00b6a200410af0420052802f40e212a20052802f00e4101460d1b200541a0076a41186a200541900f6a290300370300200541a0076a41106a200541f00e6a41186a290300370300200541a0076a41086a200541f00e6a41106a2903003703002005200541f00e6a41086a2903003703a0070b20054180076a41186a200541a0076a41186a29030037030020054180076a41106a200541a0076a41106a29030037030020054180076a41086a200541a0076a41086a290300370300200520052903a00737038007024020144102460d00200541900d6a41186a200141186a290000370300200541900d6a41106a200141106a290000370300200541900d6a41086a200141086a290000370300200520012900003703900d200520153702b40b200520143602b00b200541f00e6a200541900d6a200541b00b6a200410af0420052802f40e212e20052802f00e4101460d1c200541e0076a41186a200541900f6a290300370300200541e0076a41106a200541f00e6a41186a290300370300200541e0076a41086a200541f00e6a41106a2903003703002005200541f00e6a41086a2903003703e0070b200541c0076a41186a200541e0076a41186a290300370300200541c0076a41106a200541e0076a41106a290300370300200541c0076a41086a200541e0076a41086a290300370300200520052903e0073703c0074102210c4102210b024020164102460d00200541900d6a41186a200141186a290000370300200541900d6a41106a200141106a290000370300200541900d6a41086a200141086a290000370300200520012900003703900d200520173702b40b200520163602b00b200541f00e6a200541900d6a200541b00b6a200410af0420052802f40e210b20052802f00e4101460d1d200541a0086a41186a200541900f6a290300370300200541a0086a41106a200541f00e6a41186a290300370300200541a0086a41086a200541f00e6a41106a2903003703002005200541f00e6a41086a2903003703a0080b20054180086a41186a200541a0086a41186a29030037030020054180086a41106a200541a0086a41106a29030037030020054180086a41086a200541a0086a41086a290300370300200520052903a00837038008024020184102460d00200541900d6a41186a200141186a290000370300200541900d6a41106a200141106a290000370300200541900d6a41086a200141086a290000370300200520012900003703900d200520193702b40b200520183602b00b200541f00e6a200541900d6a200541b00b6a200410af0420052802f40e210c20052802f00e4101460d1e200541e0086a41186a200541900f6a290300370300200541e0086a41106a200541f00e6a41186a290300370300200541e0086a41086a200541f00e6a41106a2903003703002005200541f00e6a41086a2903003703e0080b200541c0086a41186a200541e0086a41186a290300370300200541c0086a41106a200541e0086a41106a290300370300200541c0086a41086a200541e0086a41086a290300370300200520052903e0083703c008410221104102210e0240201a4102460d00200541900d6a41186a200141186a290000370300200541900d6a41106a200141106a290000370300200541900d6a41086a200141086a290000370300200520012900003703900d2005201b3702b40b2005201a3602b00b200541f00e6a200541900d6a200541b00b6a200410af0420052802f40e210e20052802f00e4101460d1f200541a0096a41186a200541900f6a290300370300200541a0096a41106a200541f00e6a41186a290300370300200541a0096a41086a200541f00e6a41106a2903003703002005200541f00e6a41086a2903003703a0090b20054180096a41186a200541a0096a41186a29030037030020054180096a41106a200541a0096a41106a29030037030020054180096a41086a200541a0096a41086a290300370300200520052903a009370380090240201c4102460d00200541900d6a41186a200141186a290000370300200541900d6a41106a200141106a290000370300200541900d6a41086a200141086a290000370300200520012900003703900d2005201d3702b40b2005201c3602b00b200541f00e6a200541900d6a200541b00b6a200410af0420052802f40e211020052802f00e4101460d20200541e0096a41186a200541900f6a290300370300200541e0096a41106a200541f00e6a41186a290300370300200541e0096a41086a200541f00e6a41106a2903003703002005200541f00e6a41086a2903003703e0090b200541c0096a41186a200541e0096a41186a290300370300200541c0096a41106a200541e0096a41106a290300370300200541c0096a41086a200541e0096a41086a290300370300200520052903e0093703c00941022112410221080240201e4102460d00200541900d6a41186a200141186a290000370300200541900d6a41106a200141106a290000370300200541900d6a41086a200141086a290000370300200520012900003703900d2005201f3702b40b2005201e3602b00b200541f00e6a200541900d6a200541b00b6a200410af0420052802f40e210820052802f00e4101460d21200541a00a6a41186a200541900f6a290300370300200541a00a6a41106a200541f00e6a41186a290300370300200541a00a6a41086a200541f00e6a41106a2903003703002005200541f00e6a41086a2903003703a00a0b200541800a6a41186a200541a00a6a41186a290300370300200541800a6a41106a200541a00a6a41106a290300370300200541800a6a41086a200541a00a6a41086a290300370300200520052903a00a3703800a024020204102460d00200541900d6a41186a200141186a290000370300200541900d6a41106a200141106a290000370300200541900d6a41086a200141086a290000370300200520012900003703900d200520213702b40b200520203602b00b200541f00e6a200541900d6a200541b00b6a200410af0420052802f40e211220052802f00e4101460d22200541c00a6a41186a200541900f6a290300370300200541c00a6a41106a200541f00e6a41186a290300370300200541c00a6a41086a200541f00e6a41106a2903003703002005200541f00e6a41086a2903003703c00a0b4102211641022114024020224102460d00200541900d6a41186a200141186a290000370300200541900d6a41106a200141106a290000370300200541900d6a41086a200141086a290000370300200520012900003703900d200520233702b40b200520223602b00b200541f00e6a200541900d6a200541b00b6a200410af0420052802f40e211420052802f00e4101460d23200541e00a6a41186a200541900f6a290300370300200541e00a6a41106a200541f00e6a41186a290300370300200541e00a6a41086a200541f00e6a41106a2903003703002005200541f00e6a41086a2903003703e00a0b024020244102460d00200541900d6a41186a200141186a290000370300200541900d6a41106a200141106a290000370300200541900d6a41086a200141086a290000370300200520012900003703900d200520253702b40b200520243602b00b200541f00e6a200541900d6a200541b00b6a200410af0420052802f40e211620052802f00e4101460d24200541800b6a41186a200541900f6a290300370300200541800b6a41106a200541f00e6a41186a290300370300200541800b6a41086a200541f00e6a41106a2903003703002005200541f00e6a41086a2903003703800b0b4102211a41022118024020264102460d00200541900d6a41186a200141186a290000370300200541900d6a41106a200141106a290000370300200541900d6a41086a200141086a290000370300200520012900003703900d200520273702b40b200520263602b00b200541f00e6a200541900d6a200541b00b6a200410af0420052802f40e211820052802f00e4101460d25200541086a41186a200541900f6a290300370300200541086a41106a200541f00e6a41186a290300370300200541086a41086a200541f00e6a41106a2903003703002005200541f00e6a41086a2903003703080b024020284102460d00200541900d6a41186a200141186a290000370300200541900d6a41106a200141106a290000370300200541900d6a41086a200141086a290000370300200520012900003703900d200541a00b6a41086a2003360200200520293602a40b200520283602a00b200541f00e6a200541900d6a200541a00b6a200410af0420052802f40e211a20052802f00e4101460d26200541b00b6a41186a200541900f6a290300370300200541b00b6a41106a200541f00e6a41186a290300370300200541b00b6a41086a200541f00e6a41106a2903003703002005200541f00e6a41086a2903003703b00b0b200541e0046a41186a220120054180056a41186a290300370300200541e0046a41106a220420054180056a41106a290300370300200541e0046a41086a222920054180056a41086a290300370300200541c0046a41086a221c200541c0056a41086a290300370300200541c0046a41106a221e200541c0056a41106a290300370300200541c0046a41186a2220200541c0056a41186a290300370300200541a0046a41086a222220054180066a41086a290300370300200541a0046a41106a222420054180066a41106a290300370300200541a0046a41186a222620054180066a41186a29030037030020052005290380053703e004200520052903c0053703c00420052005290380063703a00420054180046a41186a2228200541c0066a41186a29030037030020054180046a41106a222f200541c0066a41106a29030037030020054180046a41086a2230200541c0066a41086a290300370300200541e0036a41086a223120054180076a41086a290300370300200541e0036a41106a223220054180076a41106a290300370300200541e0036a41186a223320054180076a41186a290300370300200541c0036a41086a2234200541c0076a41086a290300370300200541c0036a41106a2235200541c0076a41106a290300370300200541c0036a41186a2236200541c0076a41186a290300370300200520052903c0063703800420052005290380073703e003200520052903c0073703c003200541a0036a41186a223720054180086a41186a290300370300200541a0036a41106a223820054180086a41106a290300370300200541a0036a41086a223920054180086a41086a29030037030020054180036a41186a223a200541c0086a41186a29030037030020054180036a41106a223b200541c0086a41106a29030037030020054180036a41086a223c200541c0086a41086a290300370300200541e0026a41186a223d20054180096a41186a290300370300200541e0026a41106a223e20054180096a41106a290300370300200541e0026a41086a223f20054180096a41086a29030037030020052005290380083703a003200520052903c0083703800320052005290380093703e002200541c0026a41186a2240200541c0096a41186a290300370300200541c0026a41106a2241200541c0096a41106a290300370300200541c0026a41086a2242200541c0096a41086a290300370300200520052903c0093703c002200541a0026a41186a2243200541800a6a41186a290300370300200541a0026a41106a2244200541800a6a41106a290300370300200541a0026a41086a2245200541800a6a41086a290300370300200520052903800a3703a00241c004102f2203450d272003202d360200200320052903e0043702042003202c360224200320052903c0043702282003410c6a2029290300370200200341146a20042903003702002003411c6a2001290300370200200341306a201c290300370200200341386a201e290300370200200341c0006a2020290300370200200320023602482003200636026c200320052903a00437024c200341d4006a2022290300370200200341dc006a2024290300370200200341e4006a20262903003702002003200529038004370270200341f8006a203029030037020020034180016a202f29030037020020034188016a20282903003702002003202a360290012003202e3602b401200341ac016a2033290300370200200341a4016a20322903003702002003419c016a2031290300370200200320052903e00337029401200341d0016a2036290300370200200341c8016a2035290300370200200341c0016a2034290300370200200320052903c0033702b8012003200b3602d801200341f4016a2037290300370200200341ec016a2038290300370200200341e4016a2039290300370200200320052903a0033702dc012003200c3602fc0120034198026a203a29030037020020034190026a203b29030037020020034188026a203c2903003702002003200529038003370280022003200e3602a002200341bc026a203d290300370200200341b4026a203e290300370200200341ac026a203f290300370200200320052903e0023702a402200320103602c402200341e0026a2040290300370200200341d8026a2041290300370200200341d0026a2042290300370200200320052903c0023702c802200320083602e80220034184036a2043290300370200200341fc026a2044290300370200200341f4026a2045290300370200200320052903a0023702ec022003201236028c03200341a8036a200541c00a6a41186a290300370200200341a0036a200541c00a6a41106a29030037020020034198036a200541c00a6a41086a290300370200200320052903c00a37029003200320143602b003200341cc036a200541e00a6a41186a290300370200200341c4036a200541e00a6a41106a290300370200200341bc036a200541e00a6a41086a290300370200200320052903e00a3702b403200320163602d403200341f0036a200541800b6a41186a290300370200200341e8036a200541800b6a41106a290300370200200341e0036a200541800b6a41086a290300370200200320052903800b3702d803200320183602f80320034194046a200541086a41186a2903003702002003418c046a200541086a41106a29030037020020034184046a200541086a41086a290300370200200320052903083702fc032003201a36029c04200341b8046a200541b00b6a41186a290300370200200341b0046a200541b00b6a41106a290300370200200341a8046a200541b00b6a41086a290300370200200320052903b00b3702a0044104212a200541f00e6a4104722009200aa710ab04202b0d03410021020c040b200541f00e6a4104722009200aa710ab042002417f4c0d064101212a4101210302402002450d002002102f2203450d270b200a422088a7212d2003200620021085051a20054180026a41086a200541f00e6a41186a29030037030020054180026a41106a200541900f6a29030037030020054180026a41186a200541980f6a2903003703002005200541f00e6a41106a29030037038002200541fc0e6a280200212b200541f00e6a41086a280200212920052802f40e212c2002212e0c040b200541f00e6a4104722009200aa710ab04200541b00b6a41186a200141186a290000370300200541b00b6a41106a200141106a290000370300200541b00b6a41086a200141086a290000370300200520012900003703b00b200541800b6a41086a200b360200200520023602840b200520063602800b200541900d6a200541b00b6a200541800b6a200410af042008200541900d6a411c6a290200370300200541086a41106a2201200541900d6a41246a2802003602002005200541900d6a41146a29020037030820052802940d2103024020052802900d4101460d00200541900d6a41086a290300210d200541900d6a41106a2802002107200541e8016a41106a2001280200360200200541e8016a41086a200541086a41086a29030037030020054180026a41086a200541f00e6a41186a29030037030020054180026a41106a200541900f6a29030037030020054180026a41186a200541980f6a290300370300200520052903083703e8012005200541f00e6a41106a29030037038002200d422088a7212e200a422088a7212d200541f00e6a41086a2802002129200541fc0e6a280200212b20052802f40e212c200da721024102212a0c040b200041013602002000200336020420052802f40e4125490d24200541fc0e6a28020010300c240b4102210741022103024020094102460d00200541900d6a41186a200141186a290000370300200541900d6a41106a200141106a290000370300200541900d6a41086a200141086a290000370300200520012900003703900d2005200a3702b40b200520093602b00b200541f00e6a200541900d6a200541b00b6a200410af0420052802f40e210320052802f00e4101460d04200541a0056a41186a200541900f6a290300370300200541a0056a41106a200541f00e6a41186a290300370300200541a0056a41086a200541f00e6a41106a2903003703002005200541f00e6a41086a2903003703a0050b20054180056a41186a200541a0056a41186a29030037030020054180056a41106a200541a0056a41106a29030037030020054180056a41086a200541a0056a41086a290300370300200520052903a00537038005024020064102460d00200541900d6a41186a200141186a290000370300200541900d6a41106a200141106a290000370300200541900d6a41086a200141086a290000370300200520012900003703900d200541b00b6a41086a200b360200200520023602b40b200520063602b00b200541f00e6a200541900d6a200541b00b6a200410af0420052802f40e210720052802f00e4101460d06200541e0056a41186a200541900f6a290300370300200541e0056a41106a200541f00e6a41186a290300370300200541e0056a41086a200541f00e6a41106a2903003703002005200541f00e6a41086a2903003703e0050b200541c0056a41186a200541e0056a41186a290300370300200541c0056a41106a200541e0056a41106a290300370300200541c0056a41086a200541e0056a41086a290300370300200520052903e0053703c00541022106410221020240200c4102460d00200541900d6a41186a200141186a290000370300200541900d6a41106a200141106a290000370300200541900d6a41086a200141086a290000370300200520012900003703900d2005200d3702b40b2005200c3602b00b200541f00e6a200541900d6a200541b00b6a200410af0420052802f40e210220052802f00e4101460d07200541a0066a41186a200541900f6a290300370300200541a0066a41106a200541f00e6a41186a290300370300200541a0066a41086a200541f00e6a41106a2903003703002005200541f00e6a41086a2903003703a0060b20054180066a41186a200541a0066a41186a29030037030020054180066a41106a200541a0066a41106a29030037030020054180066a41086a200541a0066a41086a290300370300200520052903a006370380060240200e4102460d00200541900d6a41186a200141186a290000370300200541900d6a41106a200141106a290000370300200541900d6a41086a200141086a290000370300200520012900003703900d2005200f3702b40b2005200e3602b00b200541f00e6a200541900d6a200541b00b6a200410af0420052802f40e210620052802f00e4101460d08200541e0066a41186a200541900f6a290300370300200541e0066a41106a200541f00e6a41186a290300370300200541e0066a41086a200541f00e6a41106a2903003703002005200541f00e6a41086a2903003703e0060b200541c0066a41186a200541e0066a41186a290300370300200541c0066a41106a200541e0066a41106a290300370300200541c0066a41086a200541e0066a41086a290300370300200520052903e0063703c0064102212a4102212c024020104102460d00200541900d6a41186a200141186a290000370300200541900d6a41106a200141106a290000370300200541900d6a41086a200141086a290000370300200520012900003703900d200520113702b40b200520103602b00b200541f00e6a200541900d6a200541b00b6a200410af0420052802f40e212c20052802f00e4101460d09200541a0076a41186a200541900f6a290300370300200541a0076a41106a200541f00e6a41186a290300370300200541a0076a41086a200541f00e6a41106a2903003703002005200541f00e6a41086a2903003703a0070b20054180076a41186a200541a0076a41186a29030037030020054180076a41106a200541a0076a41106a29030037030020054180076a41086a200541a0076a41086a290300370300200520052903a00737038007024020124102460d00200541900d6a41186a200141186a290000370300200541900d6a41106a200141106a290000370300200541900d6a41086a200141086a290000370300200520012900003703900d200520133702b40b200520123602b00b200541f00e6a200541900d6a200541b00b6a200410af0420052802f40e212a20052802f00e4101460d0a200541e0076a41186a200541900f6a290300370300200541e0076a41106a200541f00e6a41186a290300370300200541e0076a41086a200541f00e6a41106a2903003703002005200541f00e6a41086a2903003703e0070b200541c0076a41186a200541e0076a41186a290300370300200541c0076a41106a200541e0076a41106a290300370300200541c0076a41086a200541e0076a41086a290300370300200520052903e0073703c0074102212e4102212b024020144102460d00200541900d6a41186a200141186a290000370300200541900d6a41106a200141106a290000370300200541900d6a41086a200141086a290000370300200520012900003703900d200520153702b40b200520143602b00b200541f00e6a200541900d6a200541b00b6a200410af0420052802f40e212b20052802f00e4101460d0b200541a0086a41186a200541900f6a290300370300200541a0086a41106a200541f00e6a41186a290300370300200541a0086a41086a200541f00e6a41106a2903003703002005200541f00e6a41086a2903003703a0080b20054180086a41186a200541a0086a41186a29030037030020054180086a41106a200541a0086a41106a29030037030020054180086a41086a200541a0086a41086a290300370300200520052903a00837038008024020164102460d00200541900d6a41186a200141186a290000370300200541900d6a41106a200141106a290000370300200541900d6a41086a200141086a290000370300200520012900003703900d200520173702b40b200520163602b00b200541f00e6a200541900d6a200541b00b6a200410af0420052802f40e212e20052802f00e4101460d0c200541e0086a41186a200541900f6a290300370300200541e0086a41106a200541f00e6a41186a290300370300200541e0086a41086a200541f00e6a41106a2903003703002005200541f00e6a41086a2903003703e0080b200541c0086a41186a200541e0086a41186a290300370300200541c0086a41106a200541e0086a41106a290300370300200541c0086a41086a200541e0086a41086a290300370300200520052903e0083703c0084102210b41022109024020184102460d00200541900d6a41186a200141186a290000370300200541900d6a41106a200141106a290000370300200541900d6a41086a200141086a290000370300200520012900003703900d200520193702b40b200520183602b00b200541f00e6a200541900d6a200541b00b6a200410af0420052802f40e210920052802f00e4101460d0d200541a0096a41186a200541900f6a290300370300200541a0096a41106a200541f00e6a41186a290300370300200541a0096a41086a200541f00e6a41106a2903003703002005200541f00e6a41086a2903003703a0090b20054180096a41186a200541a0096a41186a29030037030020054180096a41106a200541a0096a41106a29030037030020054180096a41086a200541a0096a41086a290300370300200520052903a009370380090240201a4102460d00200541900d6a41186a200141186a290000370300200541900d6a41106a200141106a290000370300200541900d6a41086a200141086a290000370300200520012900003703900d2005201b3702b40b2005201a3602b00b200541f00e6a200541900d6a200541b00b6a200410af0420052802f40e210b20052802f00e4101460d0e200541e0096a41186a200541900f6a290300370300200541e0096a41106a200541f00e6a41186a290300370300200541e0096a41086a200541f00e6a41106a2903003703002005200541f00e6a41086a2903003703e0090b200541c0096a41186a200541e0096a41186a290300370300200541c0096a41106a200541e0096a41106a290300370300200541c0096a41086a200541e0096a41086a290300370300200520052903e0093703c0094102210e4102210c0240201c4102460d00200541900d6a41186a200141186a290000370300200541900d6a41106a200141106a290000370300200541900d6a41086a200141086a290000370300200520012900003703900d2005201d3702b40b2005201c3602b00b200541f00e6a200541900d6a200541b00b6a200410af0420052802f40e210c20052802f00e4101460d0f200541a00a6a41186a200541900f6a290300370300200541a00a6a41106a200541f00e6a41186a290300370300200541a00a6a41086a200541f00e6a41106a2903003703002005200541f00e6a41086a2903003703a00a0b200541800a6a41186a200541a00a6a41186a290300370300200541800a6a41106a200541a00a6a41106a290300370300200541800a6a41086a200541a00a6a41086a290300370300200520052903a00a3703800a0240201e4102460d00200541900d6a41186a200141186a290000370300200541900d6a41106a200141106a290000370300200541900d6a41086a200141086a290000370300200520012900003703900d2005201f3702b40b2005201e3602b00b200541f00e6a200541900d6a200541b00b6a200410af0420052802f40e210e20052802f00e4101460d10200541c00a6a41186a200541900f6a290300370300200541c00a6a41106a200541f00e6a41186a290300370300200541c00a6a41086a200541f00e6a41106a2903003703002005200541f00e6a41086a2903003703c00a0b4102210841022110024020204102460d00200541900d6a41186a200141186a290000370300200541900d6a41106a200141106a290000370300200541900d6a41086a200141086a290000370300200520012900003703900d200520213702b40b200520203602b00b200541f00e6a200541900d6a200541b00b6a200410af0420052802f40e211020052802f00e4101460d11200541e00a6a41186a200541900f6a290300370300200541e00a6a41106a200541f00e6a41186a290300370300200541e00a6a41086a200541f00e6a41106a2903003703002005200541f00e6a41086a2903003703e00a0b024020224102460d00200541900d6a41186a200141186a290000370300200541900d6a41106a200141106a290000370300200541900d6a41086a200141086a290000370300200520012900003703900d200520233702b40b200520223602b00b200541f00e6a200541900d6a200541b00b6a200410af0420052802f40e210820052802f00e4101460d12200541800b6a41186a200541900f6a290300370300200541800b6a41106a200541f00e6a41186a290300370300200541800b6a41086a200541f00e6a41106a2903003703002005200541f00e6a41086a2903003703800b0b4102211441022112024020244102460d00200541900d6a41186a200141186a290000370300200541900d6a41106a200141106a290000370300200541900d6a41086a200141086a290000370300200520012900003703900d200520253702b40b200520243602b00b200541f00e6a200541900d6a200541b00b6a200410af0420052802f40e211220052802f00e4101460d13200541086a41186a200541900f6a290300370300200541086a41106a200541f00e6a41186a290300370300200541086a41086a200541f00e6a41106a2903003703002005200541f00e6a41086a2903003703080b0240024020264102460d00200541900d6a41186a200141186a290000370300200541900d6a41106a200141106a290000370300200541900d6a41086a200141086a290000370300200520012900003703900d200520273702a40b200520263602a00b200541f00e6a200541900d6a200541a00b6a200410af0420052802f40e211420052802f00e4101460d01200541b00b6a41186a200541900f6a290300370300200541b00b6a41106a200541f00e6a41186a290300370300200541b00b6a41086a200541f00e6a41106a2903003703002005200541f00e6a41086a2903003703b00b0b200541e0046a41186a220120054180056a41186a290300370300200541e0046a41106a220420054180056a41106a290300370300200541e0046a41086a221620054180056a41086a290300370300200541c0046a41086a2218200541c0056a41086a290300370300200541c0046a41106a221a200541c0056a41106a290300370300200541c0046a41186a221c200541c0056a41186a290300370300200541a0046a41086a221e20054180066a41086a290300370300200541a0046a41106a222020054180066a41106a290300370300200541a0046a41186a222220054180066a41186a29030037030020052005290380053703e004200520052903c0053703c00420052005290380063703a00420054180046a41186a2224200541c0066a41186a29030037030020054180046a41106a2226200541c0066a41106a29030037030020054180046a41086a222f200541c0066a41086a290300370300200541e0036a41086a223020054180076a41086a290300370300200541e0036a41106a223120054180076a41106a290300370300200541e0036a41186a223220054180076a41186a290300370300200541c0036a41086a2233200541c0076a41086a290300370300200541c0036a41106a2234200541c0076a41106a290300370300200541c0036a41186a2235200541c0076a41186a290300370300200520052903c0063703800420052005290380073703e003200520052903c0073703c003200541a0036a41186a223620054180086a41186a290300370300200541a0036a41106a223720054180086a41106a290300370300200541a0036a41086a223820054180086a41086a29030037030020054180036a41186a2239200541c0086a41186a29030037030020054180036a41106a223a200541c0086a41106a29030037030020054180036a41086a223b200541c0086a41086a290300370300200541e0026a41186a223c20054180096a41186a290300370300200541e0026a41106a223d20054180096a41106a290300370300200541e0026a41086a223e20054180096a41086a29030037030020052005290380083703a003200520052903c0083703800320052005290380093703e002200541c0026a41186a223f200541c0096a41186a290300370300200541c0026a41106a2240200541c0096a41106a290300370300200541c0026a41086a2241200541c0096a41086a290300370300200520052903c0093703c002200541a0026a41186a2242200541800a6a41186a290300370300200541a0026a41106a2243200541800a6a41106a290300370300200541a0026a41086a2244200541800a6a41086a290300370300200520052903800a3703a00241c004102f222d450d25202d2003360200202d20052903e004370204202d2007360224202d20052903c004370228202d410c6a2016290300370200202d41146a2004290300370200202d411c6a2001290300370200202d41306a2018290300370200202d41386a201a290300370200202d41c0006a201c290300370200202d2002360248202d200636026c202d20052903a00437024c202d41d4006a201e290300370200202d41dc006a2020290300370200202d41e4006a2022290300370200202d200529038004370270202d41f8006a202f290300370200202d4180016a2026290300370200202d4188016a2024290300370200202d202c36029001202d202a3602b401202d41ac016a2032290300370200202d41a4016a2031290300370200202d419c016a2030290300370200202d20052903e00337029401202d41d0016a2035290300370200202d41c8016a2034290300370200202d41c0016a2033290300370200202d20052903c0033702b801202d202b3602d801202d41f4016a2036290300370200202d41ec016a2037290300370200202d41e4016a2038290300370200202d20052903a0033702dc01202d202e3602fc01202d4198026a2039290300370200202d4190026a203a290300370200202d4188026a203b290300370200202d20052903800337028002202d20093602a002202d41bc026a203c290300370200202d41b4026a203d290300370200202d41ac026a203e290300370200202d20052903e0023702a402202d200b3602c402202d41e0026a203f290300370200202d41d8026a2040290300370200202d41d0026a2041290300370200202d20052903c0023702c802202d200c3602e802202d4184036a2042290300370200202d41fc026a2043290300370200202d41f4026a2044290300370200202d20052903a0023702ec02202d200e36028c03202d41a8036a200541c00a6a41186a290300370200202d41a0036a200541c00a6a41106a290300370200202d4198036a200541c00a6a41086a290300370200202d20052903c00a37029003202d20103602b003202d41cc036a200541e00a6a41186a290300370200202d41c4036a200541e00a6a41106a290300370200202d41bc036a200541e00a6a41086a290300370200202d20052903e00a3702b403202d20083602d403202d41f0036a200541800b6a41186a290300370200202d41e8036a200541800b6a41106a290300370200202d41e0036a200541800b6a41086a290300370200202d20052903800b3702d803202d20123602f803202d4194046a200541086a41186a290300370200202d418c046a200541086a41106a290300370200202d4184046a200541086a41086a290300370200202d20052903083702fc03202d201436029c04202d41b8046a200541b00b6a41186a290300370200202d41b0046a200541b00b6a41106a290300370200202d41a8046a200541b00b6a41086a290300370200202d20052903b00b3702a0044103212a024020280d004100212c2029212b0c040b2029417f4c0d050240024020290d004101212c0c010b2029102f222c450d260b202c202820291085051a2029212b0c030b20004101360200200020143602040c230b2007417f4c0d030240024020070d00410121020c010b2007102f2202450d240b2002202b20071085051a0b200a422088a7212d20054180026a41086a200541f00e6a41186a29030037030020054180026a41106a200541900f6a29030037030020054180026a41186a200541980f6a2903003703002005200541f00e6a41106a29030037038002200541f00e6a410c6a280200212b200541f00e6a41086a280200212920052802f40e212c2007212e0b2000202a360204200041186a200529038002370200200041c8006a20052903e801370200200041c4006a2007360200200041386a2003360200200041146a202b360200200041106a20293602002000410c6a202c360200200041086a202d360200200041306a20054180026a41186a290300370200200041286a20054180026a41106a290300370200200041206a20054180026a41086a290300370200200041d0006a200541e8016a41086a290300370200200041d8006a200541e8016a41106a2802003602002000413c6a202ead4220862002ad84370200200041003602000c200b20004101360200200020033602040c1f0b102c000b20004101360200200020073602040c1d0b20004101360200200020023602040c1c0b20004101360200200020063602040c1b0b200041013602002000202c3602040c1a0b200041013602002000202a3602040c190b200041013602002000202b3602040c180b200041013602002000202e3602040c170b20004101360200200020093602040c160b200041013602002000200b3602040c150b200041013602002000200c3602040c140b200041013602002000200e3602040c130b20004101360200200020103602040c120b20004101360200200020083602040c110b20004101360200200020123602040c100b200041013602002000202d3602040c0f0b200041013602002000202c3602040c0e0b20004101360200200020023602040c0d0b20004101360200200020063602040c0c0b200041013602002000202a3602040c0b0b200041013602002000202e3602040c0a0b200041013602002000200b3602040c090b200041013602002000200c3602040c080b200041013602002000200e3602040c070b20004101360200200020103602040c060b20004101360200200020083602040c050b20004101360200200020123602040c040b20004101360200200020143602040c030b20004101360200200020163602040c020b20004101360200200020183602040c010b200041013602002000201a3602040b200541d0106a24000f0b102a000b810601067f230041e0006b22032400024002400240024002400240024002400240200141046a2802002204410174200141086a28020022056b20024b0d00200420054101762202490d02200041046a200128020020026a200420026b10ab04200020054101713602000c010b20054101762106200520026a22074101762108024020074101710d0020082006490d0320042008490d04200128020020066a210202400240200820066b220141244b0d00200041096a200220011085051a410021020c010b2001417f4c0d062001102f2204450d072004200220011085052102200041106a20013602002000410c6a2002360200410121020b2000200136020420002005410171360200200041086a20023a00000c010b200841016a22072006490d06200820044f0d07200128020020066a210402400240200720066b220141244b0d00200341096a200420011085051a410021040c010b2001417f4c0d052001102f2206450d062006200420011085052104200320013600102003200436000c410121040b200341306a41086a20043a0000200341396a2003290009370000200341c1006a200341096a41086a290000370000200341c9006a200341096a41106a290000370000200341d1006a200341216a290000370000200341d8006a200341286a2900003700002003200136023420032005410171360230200341306a200241017110f90402400240200328023422014125490d00200341306a41106a220528020021010c010b200341306a41047221050b02402001450d0020052001417f6a3602000b20002003290330370200200041286a200341306a41286a290300370200200041206a200341306a41206a290300370200200041186a200341306a41186a290300370200200041106a200341306a41106a290300370200200041086a200341306a41086a2903003702000b200341e0006a24000f0b2002200441f098c200104a000b20062008418099c2001048000b20082004418099c2001042000b102c000b102a000b20062007419099c2001048000b20072004419099c2001042000bfd0601047f230041f0026b22042400200241086a280200210520022802042106024002400240024002400240024020022802004101470d00200441d0016a41186a200141186a290000370300200441d0016a41106a200141106a290000370300200441d0016a41086a200141086a290000370300200420012900003703d001200441f0016a200441d0016a20062005200310ad0420042802f401210120042802f0012102200441f8006a200441f0016a41086a41d4001085051a20024101460d05200441246a200441f8006a41d4001085051a200441f8016a200441246a41d4001085051a41002105200441003a00f001200420013602f4012003200441f0016a10b30121020c010b0240024020054120460d002005417f4c0d040240024020050d00410121020c010b2005102f2202450d060b20022006200510850521064130102f2202450d05200241043a00002002200536002c200220053600282002200636002420022001290000370001200241096a200141086a290000370000200241116a200141106a290000370000200241196a200141186a2900003700000c010b200441246a41026a200641026a2d00003a0000200441f8016a2006410f6a29000037030020044180026a200641176a29000037030020044188026a2006411f6a2d00003a0000200420062f00003b0124200420062900073703f001200628000321020b200441d0016a41026a2201200441246a41026a2d00003a0000200441f8006a41086a2206200441f0016a41086a290300370300200441f8006a41106a2203200441f0016a41106a290300370300200441f8006a41186a2207200441f0016a41186a2d00003a0000200420042f01243b01d001200420042903f00137037820054120470d01200441206a41026a20012d00003a0000200441086a2006290300370300200441106a2003290300370300200441186a20072d00003a0000200420042f01d0013b012020042004290378370300410121050b200020053a0004200041003602002000410c6a2004290300370200200041056a20042f01203b0000200041086a2002360200200041246a200441186a2802003602002000411c6a200441106a290300370200200041146a200441086a290300370200200041076a200441226a2d00003a00000c040b20004101360200200020023602040c030b102c000b102a000b20004101360200200020013602040b200441f0026a24000bb00e03027f017e047f23004190066b220524000240024002400240024002400240024002400240024002400240024002400240024020022d00004101470d0020054180036a200241196a290000370300200541f8026a200241116a290000370300200541f0026a200241096a290000370300200520022900013703e8022003280208220641017621020240024020064101710d00200328020422062002490d04200541003a00f003200520023602ec03200520032802003602e8030c010b200328020422062002490d04200220064f0d052005200328020022063602e803200520023602ec03200541f1036a200620026a2d000041f001713a0000200541013a00f0030b2001200541e8026a200541e8036a10a9042207422088a721022007a70d070240200141c8006a220828020022062006417f6a2209200141c0006a220a28020022062001413c6a220b2802006b716b4101470d00200b10b2012008280200417f6a2109200a28020021060b200a2009200641016a71360200200141c4006a28020020064102746a2002360200200141386a280200220620024d0d062001280230200241fc006c6a22022d0000210620022f00012109200241036a2d0000210a2005200241046a220841f8001085051a20084100360200200241003a00002009200a4110747221090c010b200241046a28020021020240200141c8006a220828020022062006417f6a2209200141c0006a220a28020022062001413c6a220b2802006b716b4101470d00200b10b2012008280200417f6a2109200a28020021060b200a2009200641016a71360200200141c4006a28020020064102746a2002360200200141386a280200220620024d0d042001280230200241fc006c6a22022d0000210620022f00012109200241036a2d0000210a2005200241046a220841f8001085051a20084100360200200241003a00002009200a4110747221090b200541f0016a200541f8001085051a024002400240024002400240200641ff01714101470d00200328020821062003280204210a20032802002108200541b8056a20054190026a41d8001085051a200541e8026a2001200541b8056a2003200410b10420052802ec02210220052802e8022103200541e0046a200541f0026a41d8001085051a20034101460d0520020e03020401020b200541b8056a200541d8001085051a200541e8026a2001200541b8056a2003200410b10420052802ec02210220052802e8022103200541e0046a200541f0026a41d8001085051a20034101460d0441022103024020020e03000313000b200541e8036a200541e0046a41d8001085051a0c110b200641017621020240024020064101710d00200a2002490d0c410021030c010b200a2002490d0c2002200a4f0d0d200820026a2d00004170712106410121030b20054188036a2008200210ab04200541b5036a20063a0000200541b4036a20033a0000200541f3026a200541086a290000370000200541fb026a200541106a29000037000020054180036a200541156a290000370000200520052900003700eb02200520093b01e802200520094110763a00ea022001200541e8026a10ac04410221030c110b20054180036a200541156a290000370000200541fb026a200541106a290000370000200541f3026a200541086a290000370000200520052900003700eb02200641017621020240024020064101710d00200a2002490d0e410021030c010b200a2002490d0e2002200a4f0d0f200820026a2d00004170712106410121030b20054188036a2008200210ab04200541b5036a20063a0000200541b4036a20033a0000200520093b01e802200520094110763a00ea022001200541e8026a10ac04200541e8036a200541e0046a41d8001085051a0c0f0b200541e8036a200541e0046a41d8001085051a41002104410021030c0f0b200541e8026a41156a200541156a290000370000200541e8026a41106a200541106a290000370300200541e8026a41086a200541086a290000370300200520052900003703e80220054188036a200541e0046a41d8001085051a200541e8036a200541e8026a41f8001085051a41012103410021040c0e0b20004101360200200020023602040c0e0b2002200641a099c2001042000b2002200641b099c2001042000b2002200641c099c2001033000b2002200641acf0c1001033000b2002200641acf0c1001033000b20004101360200200020023602040c080b2002200a41a099c2001042000b2002200a41b099c2001042000b2002200a41c099c2001033000b2002200a41a099c2001042000b2002200a41b099c2001042000b2002200a41c099c2001033000b41002103410121040b200541f8006a200541e8036a41f8001085051a41022102024020034102460d00200520032009410874723602e802200541e8026a410472200541f8006a41f8001085051a20044101712102200141306a200541e8026a10b30121060b2000200636020420004100360200200041086a20023a00000b20054190066a24000b853305067f017e027f017e0b7f230041a0036b22052400200241146a2106200328020422074101742108200328020821092003280200210a2002413c6a290200210b200241386a280200210c200241346a280200210d2002410c6a290200210e200241086a280200210f200228020421104102211102400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024020022802000e052207000102220b200541a8016a41086a200e370300200541a8016a41106a2006290200370300200541a8016a41186a200641086a290200370300200541c8016a200641106a290200370300200541d0016a200641186a290200370300200520103602a8012005200f3602ac01200e422088a7211202400240200f4125490d0020052802b8012113201221140c010b200541b1016a2114200f21130b410021150240200820096b2211201341017420106b2216201620114b1b2217450d000340201020156a2208410176221120134f0d15200920156a2218410176221920074f0d16201420116a2d00002211410f71201141f0017141047620084101711b200a20196a2d00002211410f71201141047620184101711b470d012017201541016a2215470d000b201721150b200241c4006a210220152016470d07200541d8016a41086a200341086a22152802003602002015200920166a360200200520032902003703d801200541e8016a41086a200b370300200541e8016a41106a200229020037030020054180026a200241086a29020037030020054188026a200241106a2802003602002005200c3602ec012005200d3602e801200541c8026a2001200541e8016a2003200410b00420052802cc02210c20052802c8024101460d10200541c8026a41086a2d0000220241ff01714102460d0f4101211120024101710d08200541186a41186a200641186a290200370300200541186a41106a200641106a290200370300200541186a41086a200641086a29020037030020052006290200370318410221154100210d0c210b20082009470d03200f0d0141012111410321154100210f0c200b20082009470d03200c0d01200541186a41186a200641186a290200370300200541186a41106a200641106a290200370300200541186a41086a200641086a2902003703002005200629020037031841012111410421154100210c0c1f0b024020042802002202450d00200441046a280200450d00200210300b2004200e3702042004200f36020041002111200541c8026a41086a4100360200200520103602cc02200541033602c80220054188016a41086a200341086a2802003602002005200329020037038801200541e8016a2001200541c8026a20054188016a10b204200541a8016a41086a220220054188026a290300370300200541a8016a41106a220920054190026a290300370300200541a8016a41186a220720054198026a290300370300200541386a41086a220a200541b8026a290300370300200541386a41106a2203200541c0026a2802003602002005200541e8016a41186a2903003703a8012005200541b0026a29030037033820052802ec012115024020052802e8014101460d00200541e8016a41086a2802002110200541f4016a280200210f200541e8016a41106a290300210e200541a0026a280200210d200541a4026a280200210c200541a8026a290300210b200541186a41186a2007290300370300200541186a41106a2009290300370300200541186a41086a2002290300370300200541086a200a290300370300200541106a2003280200360200200520052903a801370318200520052903383703000c1f0b200041013602000c1a0b024020042802002202450d00200441046a280200450d00200210300b2004200b3702042004200c36020041002111200541c8026a41386a4100360200200541fc026a200d360200200541c8026a410c6a200e370200200541c8026a41086a200f360200200541f4026a200641186a290200370200200541ec026a200641106a290200370200200541e4026a200641086a290200370200200541dc026a2006290200370200200520103602cc02200541043602c80220054188016a41086a200341086a2802003602002005200329020037038801200541e8016a2001200541c8026a20054188016a10b204200541a8016a41086a220220054188026a290300370300200541a8016a41106a220920054190026a290300370300200541a8016a41186a220720054198026a290300370300200541386a41086a220a200541b8026a290300370300200541386a41106a2203200541c0026a2802003602002005200541e8016a41186a2903003703a8012005200541b0026a29030037033820052802ec012115024020052802e8014101460d00200541e8016a41086a2802002110200541e8016a410c6a280200210f200541e8016a41106a290300210e200541e8016a41386a280200210d200541a4026a280200210c200541a8026a290300210b200541186a41186a2007290300370300200541186a41106a2009290300370300200541186a41086a2002290300370300200541086a200a290300370300200541106a2003280200360200200520052903a801370318200520052903383703000c1e0b200041013602000c190b410121112009410176220220074f0d102010200a20026a2d00002202410f71200241047620094101711b220741246c6a22022d00002109200241023a000041032115024020094102470d000c1d0b200541c7016a220a200241206a280000360000200541c0016a2206200241196a290000370300200541b8016a2211200241116a290000370300200541a8016a41086a2208200241096a290000370300200520022900013703a801200541d8016a41086a200341086a221928020022183602002019201841016a360200200520032902003703d801200541e8016a41196a2006290300370000200541e8016a41206a200a280000360000200520093a00e801200541e8016a41096a2008290300370000200541e8016a41116a2011290300370000200520052903a8013700e901200541c8026a2001200541e8016a2003200410b00420052802cc02210920052802c8024101460d0d200541c8026a41086a2d0000220a41ff01714102470d11200541c8026a410c6a200e370200200541c8026a41086a200f360200200520103602cc02200541033602c802200541f0006a41086a200541d8016a41086a280200360200200520052903d801370370200541e8016a2001200541c8026a200541f0006a10b204200541386a41086a220220054188026a290300370300200541386a41106a220920054190026a290300370300200541386a41186a220720054198026a29030037030020054188016a41086a220a200541b8026a29030037030020054188016a41106a2203200541c0026a2802003602002005200541e8016a41186a2903003703382005200541b0026a2903003703880120052802ec01211520052802e8014101460d08200541e8016a41086a2802002110200541e8016a410c6a280200210f200541e8016a41106a290300210e200541a0026a280200210d200541a4026a280200210c200541a8026a290300210b200541186a41186a2007290300370300200541186a41106a2009290300370300200541186a41086a2002290300370300200541086a200a290300370300200541106a20032802003602002005200529033837031820052005290388013703000c040b200541a8016a41086a200e370300200541a8016a41106a2006290200370300200541a8016a41186a200641086a290200370300200541c8016a200641106a290200370300200541d0016a200641186a290200370300200520103602a8012005200f3602ac01200e422088a7211202400240200f4125490d0020052802b8012118201221130c010b200541b1016a2113200f21180b410021020240200820096b2216201841017420106b2217201720164b1b2214450d000340201020026a2211410176221520184f0d13200920026a2219410176220820074f0d14201320156a2d00002215410f71201541f0017141047620114101711b200a20086a2d00002215410f71201541047620194101711b470d012014200241016a2202470d000b201421020b02400240024020022017470d0020172016460d010b200220174f0d01200541186a41186a200641186a290200370300200541186a41106a200641106a290200370300200541186a41086a200641086a2902003703002005200629020037031841042115410121110c1d0b200c450d09024020042802002202450d00200441046a280200450d00200210300b2004200b3702042004200c360200200541f4026a200541a8016a41286a290300370200200541ec026a200541a8016a41206a290300370200200541e4026a200541a8016a41186a290300370200200541dc026a200541a8016a41106a290300370200200541c8026a410c6a200541a8016a41086a29030037020041002111200541c8026a41386a4100360200200541fc026a200d360200200520052903a8013702cc02200541043602c802200541386a41086a200341086a28020036020020052003290200370338200541e8016a2001200541c8026a200541386a10b20420052802ec01211520052802e8014101460d07200541186a41086a200541e8016a41206a290300370300200541186a41106a200541e8016a41286a290300370300200541186a41186a20054198026a290300370300200541086a200541b8026a290300370300200541106a200541c0026a2802003602002005200541e8016a41186a2903003703182005200541b0026a290300370300200541e8016a41086a2802002110200541e8016a410c6a280200210f200541e8016a41106a290300210e200541e8016a41386a280200210d200541a4026a280200210c200541a8026a290300210b0c1c0b200920026a2211410176220920074f0d1341042115200d200a20096a2d00002209410f71200941047620114101711b220a41246c6a22092d00002107200941023a0000024020074102470d00200541186a41186a200641186a290200370300200541186a41106a200641106a290200370300200541186a41086a200641086a29020037030020052006290200370318410121110c1c0b200541d7006a2215200941206a280000360000200541d0006a2211200941196a290000370300200541c8006a2208200941116a290000370300200541386a41086a2219200941096a29000037030020052009290001370338200541e0006a41086a200341086a221828020022133602002018200220136a41016a36020020052003290200370360200541e8016a41196a2011290300370000200541e8016a41206a2015280000360000200520073a00e801200541e8016a41096a2019290300370000200541e8016a41116a2008290300370000200520052903383700e901200541c8026a2001200541e8016a2003200410b00420052802cc02210220052802c80222154101460d05200541c8026a41086a2d0000220741ff01714102470d14200541f4026a200541a8016a41286a290300370200200541ec026a200541a8016a41206a290300370200200541e4026a200541a8016a41186a290300370200200541dc026a200541a8016a41106a290300370200200541c8026a410c6a200541a8016a41086a290300370200200541c8026a413c6a200b370200200541c8026a41386a200c360200200541fc026a200d360200200520052903a8013702cc02200541043602c802200541d8016a41086a200541e0006a41086a280200360200200520052903603703d801200541e8016a2001200541c8026a200541d8016a10b20420054188016a41086a2202200541e8016a41206a29030037030020054188016a41106a2209200541e8016a41286a29030037030020054188016a41186a220720054198026a290300370300200541f0006a41086a220a200541b8026a290300370300200541f0006a41106a2203200541c0026a2802003602002005200541e8016a41186a290300370388012005200541b0026a29030037037020052802ec01211520052802e8014101460d0b200541e8016a41086a2802002110200541e8016a410c6a280200210f200541e8016a41106a290300210e200541e8016a41386a280200210d200541e8016a413c6a280200210c200541a8026a290300210b200541186a41186a2007290300370300200541186a41106a2009290300370300200541186a41086a2002290300370300200541086a200a290300370300200541106a20032802003602002005200529038801370318200520052903703703000c030b200541e8016a41086a200e370300200541e8016a41106a2006290200370300200541e8016a41186a200641086a29020037030020054188026a200641106a29020037030020054190026a200641186a290200370300200520103602e8012005200f3602ec01200e422088a7211702400240200f4125490d0020052802f8012118201721140c010b200541f1016a2114200f21180b201841017420106b200820096b2213470d18410021022013450d170340201020026a2203410176221520184f0d15200920026a2219410176220820074f0d16201420156a2d00002215410f71201541f0017141047620034101711b200a20086a2d00002215410f71201541047620194101711b470d182013200241016a2202470d000c1a0b0b200541186a41186a200641186a290200370300200541186a41106a200641106a290200370300200541186a41086a200641086a290200370300200541086a200241086a290200370300200541106a200241106a280200360200200520062902003703182005200229020037030041022115410121110c190b200541f4026a200541a8016a41286a290300370200200541ec026a200541a8016a41206a290300370200200541e4026a200541a8016a41186a290300370200200541dc026a200541a8016a41106a290300370200200541c8026a410c6a200541a8016a41086a290300370200200541c8026a41386a200c360200200541fc026a4100360200200520052903a8013702cc02200541023602c802200541f0006a41086a200541d8016a41086a280200360200200520052903d801370370200541e8016a2001200541c8026a200541f0006a10b204200541386a41086a2202200541e8016a41206a290300370300200541386a41106a2209200541e8016a41286a290300370300200541386a41186a220720054198026a29030037030020054188016a41086a220a200541b8026a29030037030020054188016a41106a2203200541c0026a2802003602002005200541e8016a41186a2903003703382005200541b0026a2903003703880120052802ec01211520052802e8014101460d01200541e8016a41086a2802002110200541e8016a410c6a280200210f200541e8016a41106a290300210e200541e8016a41386a280200210d200541a4026a280200210c200541a8026a290300210b200541186a41186a2007290300370300200541186a41106a2009290300370300200541186a41086a2002290300370300200541086a200a290300370300200541106a20032802003602002005200529033837031820052005290388013703000b410021110c170b200041013602000c120b2000410136020020002002360204024020154101470d00200c450d00200ba7450d00200c10300b200d1030200f4125490d16201210300c160b200041013602000c100b200041013602000c0f0b200541186a41186a200641186a290200370300200541186a41106a200641106a290200370300200541186a41086a200641086a290200370300200520062902003703184100210c41042115410121110c120b0240200f4125490d00201210300b410221110c110b200041013602002000200c360204200f4125490d11201210300c110b200041013602000c0b0b20004101360200200020093602040240200f450d00200ea7450d00200f10300b201010300c0f0b2011201341e098c2001033000b2019200741e098c2001033000b2002200741e098c2001033000b200241003a00002010200741246c6a41046a2009360200200a417f7341017121110c0a0b2015201841e098c2001033000b2008200741e098c2001033000b2009200741e098c2001033000b200941003a0000200541186a41086a200641086a290200370300200541186a41106a200641106a290200370300200541186a41186a200641186a29020037030041042115200d200a41246c6a41046a2002360200200520062902003703182007417f7341017121110c060b2015201841e098c2001033000b2008200741e098c2001033000b200020153602040c040b20022013460d010b200541186a41186a200641186a290200370300200541186a41106a200641106a290200370300200541186a41086a200641086a29020037030020052006290200370318200b42ffffffff0f83210b41012115410121110c010b200ba72102024020042802002215450d00200441046a280200450d00201510300b2004200c3602042004200d360200200441086a20023602000240200f4125490d00201710300b410121150b20002011360204200041146a200e370200200041106a200f3602002000410c6a2010360200200041086a20153602002000411c6a2005290318370200200041c4006a200b370200200041c0006a200c3602002000413c6a200d360200200041cc006a2005290300370200200041246a200541186a41086a2903003702002000412c6a200541186a41106a290300370200200041346a200541306a290300370200200041d4006a200541086a290300370200200041dc006a200541106a280200360200200041003602000b200541a0036a24000bde4903037f017e107f230041c0056b220424000240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002402002280200417e6a0e03020001030b20022802042205415c6a21062002410c6a2902002107200241086a2802002108417f2109024003402009410f460d01200941016a2109200641246a22062d00004102460d000b4110200941016a20094110491b20096b210a200641246a210b02400340200a417f6a220a450d01200b2d0000210c200b41246a210b200c4102460d000c230b0b20080d21200420093a00c004200441c0036a410472200441c0046a410110ab04200441013602c00320062d00002109200641023a000020094102460d04200441f4046a20093a0000200441cc046a200441c0036a41086a290300370200200441d4046a200441d0036a290300370200200441dc046a200441d8036a290300370200200441e4046a200441c0036a41206a290300370200200441ec046a200441e8036a290300370200200441fd046a200641096a29000037000020044185056a200641116a2900003700002004418d056a200641196a29000037000020044194056a200641206a280000360000200441023602c004200420042903c0033702c4042004200641016a2900003700f50420044188016a41086a200341086a280200360200200420032902003703880120002001200441c0046a20044188016a10b2040c1f0b2008450d1f200441c4046a41bc8ec200410010ab042000413c6a2007370200200041386a20083602002000428080808010370200200041106a200441c0046a41086a290200370200200041186a200441c0046a41106a290200370200200041206a200441c0046a41186a290200370200200041286a200441c0046a41206a290200370200200041306a200441c0046a41286a290200370200200441003602c004200041086a20042902c0043702000c1e0b200441b0036a41026a2002410f6a2d00003a0000200441d8006a41086a200241206a290200370300200441d8006a41106a200241286a290200370300200441d8006a41186a200241306a280200360200200420022f000d3b01b0032004200241186a22052902003703582002410d6a210d2002413c6a2902002107200241386a280200210e200241346a280200210a200241146a280200210f200241106a28020021102002410c6a2d00002111200241086a28020021122002280204211341002109417f210602400340200941c004460d01200641016a2106200a20096a210b200941246a220c2109200b2d00004102460d000b4110200641016a20064110491b20066b210b200a200c6a210902400340200b417f6a220b450d0120092d00002108200941246a210920084102460d000c1f0b0b200e0d1d200a200c6a2209415c6a220b2d00002108200b41023a000020084102460d04200941606a2802002105200441386a41026a2009415d6a220b41026a2d00003a0000200441086a41086a200941646a220941086a290200370300200441086a41106a200941106a290200370300200441086a41186a200941186a2802003602002004200b2f00003b0138200420092902003703082003280208210c200f210b0240201241254f0d002012210b0b2003280204210920032802002103200c200b41017420136b6a220c410176210b02400240200c410171220d0d002009200b4f0d01200b200941a099c2001042000b2009200b490d06200b20094f0d072003200b6a22092d00002114200441003a00c404200441003602c004200441c0046a2003200910bc02024002400240024020042802c00422094125490d00200441c0046a410c6a220c280200220e2009460d01200441c8046a28020021150c170b4124210e20094124460d01200441c0046a4105722115200441c0046a210c2009210e0c160b200441c0046a410c6a280200210c2009210e0c010b2009210c0b200e200c470d1202400240200c41016a220e200c490d004100417f200e417f6a6776200e4102491b220e41016a220c200e490d000240024020094125490d00200441cc046a280200210e200441c8046a2802002115200921160c010b200441c0046a4105722115412421162009210e0b200e200c4b0d0a200c41244b0d01200941244d0d14200441003a00c404200441c0046a4105722015200e1085051a2004200e3602c004201510300c140b41d099c200411141e499c200102d000b2016200c470d110c120b2006410474210e4102210c0c130b200e450d1b20004101360204200041106a20113a00002000410c6a2012360200200041086a20133602002000200d2f00003b0011200041186a200f360200200041146a20103602002000411c6a2005290200370200200041386a200e3602002000413c6a2007370200200041136a200d41026a2d00003a0000200041246a200541086a2902003702002000412c6a200541106a290200370200200041346a200541186a280200360200200041003602000c1a0b200441306a2002412c6a290200370300200441286a200241246a290200370300200441086a41186a2002411c6a290200370300200441086a41106a2206200241146a290200370300200441086a41086a2002410c6a29020037030020042002290204370308200441d6006a200241376a2d00003a0000200441386a41086a200241c4006a290200370300200441386a41106a200241cc006a290200370300200441386a41186a200241d4006a2802003602002004200241356a2f00003b015420042002413c6a29020037033802400240200428020c22094125490d00200628020021060c010b200921060b2006417f6a21060240024020094125490d00200441186a280200210b200441146a280200210a0c010b200441116a210a2009210b0b200b20064d0d06200241346a210b200241386a210c200a20066a2d0000210620032802082108024020094125490d00200441186a28020021090b200b2d00002105200c280200210a2006410f71210d2003280204210b2003280200210c200820094101742004280208417f736a6a2209410176210602400240200941017122080d00200b20064f0d012006200b41a099c2001042000b200b2006490d082006200b4f0d09200c20066a22092d00002112200441003a00c404200441003602c004200441c0046a200c200910bc02024002400240024020042802c00422094125490d00200441c0046a410c6a220b280200220e2009460d01200441c8046a28020021130c110b4124210e20094124460d01200441c0046a4105722113200441c0046a210b2009210e0c100b200441c0046a410c6a280200210b2009210e0c010b2009210b0b200e200b470d0c02400240200b41016a220e200b490d004100417f200e417f6a6776200e4102491b220e41016a220b200e490d000240024020094125490d00200441cc046a280200210e200441c8046a28020021132009210f0c010b200441c0046a41057221134124210f2009210e0b200e200b4b0d0c200b41244b0d01200941244d0d0e200441003a00c404200441c0046a4105722013200e1085051a2004200e3602c004201310300c0e0b41d099c200411141e499c200102d000b200f200b470d0b0c0c0b200d410474210d4102210b0c0d0b200041046a200241d8001085051a200041003602000c1f0b41c8f1c100412441ecf1c1001050000b41c8f1c1004124418cf2c1001050000b200b200941b099c2001042000b200b200941c099c2001033000b41c29ac200412041e49ac200102d000b2006200b41acf2c1001033000b2006200b41b099c2001042000b2006200b41c099c2001033000b41c29ac200412041e49ac200102d000b200b102f211002400240200941244b0d002010450d0c20102013200e1085051a0c010b2010450d0b20102013200b200f200f200b4b1b1085051a201310300b200441cc046a200e360200200441c8046a2010360200200441013a00c4042004200b3602c0040b200441cc046a220b280200210e200441c8046a28020021130b2013200e6a2012417071200d723a0000200b200b28020041016a360200200441c8036a200441cd046a290000370300200441d0036a200441d5046a290000370300200441d8036a200441dd046a290000370300200441df036a200441e4046a290000370000200420042900c5043703c00320042d00c404210b20042802c00421090b200441e5006a200441c8036a290300370000200441ed006a200441d0036a290300370000200441f5006a200441d8036a290300370000200441fc006a200441df036a29000037000020042009360258200420042903c00337005d2004200b3a005c02400240200b41ff01714102470d004100210b0c010b024020094125490d00200441e4006a2802002109200441e0006a280200210b0c010b200441d8006a410572210b0b20092006200b1b210e20084101732108200b200c200b1b2106024002400240024002402005410171450d00200441cf046a200441c0006a290300370000200441d7046a200441c8006a290300370000200441df046a200441d0006a2d00003a0000200420042f01543b01c0042004200a3600c304200420042903383700c7042004200441d4006a41026a2d00003a00c204200441c9036a200d3a0000200420083a00c8032004200e3602c403200420063602c0032001200441c0046a200441c0036a10a9042207422088a721092007a70d010240200141c8006a2205280200220b200b417f6a220c200141c0006a220a280200220b2001413c6a22122802006b716b4101470d00201210b2012005280200417f6a210c200a280200210b0b200a200c200b41016a71360200200141c4006a280200200b4102746a2009360200200141386a280200220b20094d0d032001280230200941fc006c6a220b2d0000210920044188016a200b41016a41fb001085051a200b41046a4100360200200b41003a00000c040b0240200141c8006a220528020022092009417f6a220b200141c0006a220c28020022092001413c6a22122802006b716b4101470d00201210b2012005280200417f6a210b200c28020021090b200c200b200941016a71360200200141c4006a28020020094102746a200a360200200141386a2802002209200a4d0d012001280230200a41fc006c6a220b2d0000210920044188016a200b41016a41fb001085051a200b41046a4100360200200b41003a00000c030b2000410136020020002009360204024020042d005c4102460d0020042802584125490d00200441e0006a28020010300b200428020c4125490d07200441146a28020010300c070b200a200941acf0c1001033000b2009200b41acf0c1001033000b02400240200941ff01714101470d00200441c0046a200441ab016a41d8001085051a200441c0036a41186a20044188016a41186a290000370300200441c0036a41106a20044188016a41106a290000370300200441c0036a41086a20044188016a41086a29000037030020042004290088013703c0030c010b200441c0046a2004418b016a41d8001085051a0b20044188026a200441c0046a41d8001085051a200441e0026a41186a200441c0036a41186a220b290300370300200441e0026a41106a200441c0036a41106a220a290300370300200441e0026a41086a200441c0036a41086a220c290300370300200420042903c0033703e0020240024002400240200428028802417f6a0e020100020b20044180036a41286a200441b4026a29020037030020044180036a41206a200441ac026a29020037030020044180036a41186a200441a4026a29020037030020044180036a41106a2004419c026a29020037030020044180036a41086a20044194026a2902003703002004200429028c02370380030240200941ff01714101470d00200441c0046a41186a200441e0026a41186a290300370300200441c0046a41106a200441e0026a41106a290300370300200441c0046a41086a200441e0026a41086a290300370300200420042903e0023703c004200441003a00c403200441003602c003200441c0036a20062006200e6a10bc022004418d056a200d3a00002004418c056a20083a000020044188056a200441c0036a41286a28020036020020044180056a200441c0036a41206a290300370300200441f8046a200441c0036a41186a290300370300200441f0046a200441c0036a41106a290300370300200441c0046a41286a200441c0036a41086a290300370300200420042903c0033703e0042001200441c0046a10ac040b200441bc026a2109200441c0036a41286a200441086a41286a290300370300200441c0036a41206a200441086a41206a290300370300200441c0036a41186a200441086a41186a290300370300200441c0036a41106a200441086a41106a290300370300200441c0036a41086a200441086a41086a290300370300200420042903083703c003200428028003210b0240024020042802840322064125490d0020044180036a41106a28020021062004418c036a280200210a0c010b20044189036a210a0b200441c0046a41086a20063602002004200a3602c4042004200b3602c004200441c0036a200441c0046a10b304200441ec046a200441e8036a290300370200200441e4046a200441c0036a41206a290300370200200441dc046a200441c0036a41186a290300370200200441d4046a200441c0036a41106a290300370200200441c0046a410c6a200441c0036a41086a290300370200200441f4046a2009290200370200200441fc046a200941086a29020037020020044184056a200941106a2902003702002004418c056a200941186a29020037020020044194056a200941206a280200360200200420042903c0033702c404200441023602c004200441b0036a41086a200341086a280200360200200420032902003703b00320002001200441c0046a200441b0036a10b2042004280284034125490d0220044180036a410c6a28020010300c020b200441c0036a41286a200441b4026a290200370300200441c0036a41206a200441ac026a290200370300200b200441a4026a290200370300200a2004419c026a290200370300200c20044194026a2902003703002004200429028c023703c0030240200941ff01714101470d00200441c0046a41186a200441e0026a41186a290300370300200441c0046a41106a200441e0026a41106a290300370300200441c0046a41086a200441e0026a41086a290300370300200420042903e0023703c004200441003a008403200441003602800320044180036a20062006200e6a10bc022004418d056a200d3a00002004418c056a20083a000020044188056a20044180036a41286a28020036020020044180056a20044180036a41206a290300370300200441f8046a20044180036a41186a290300370300200441f0046a20044180036a41106a290300370300200441c0046a41286a20044180036a41086a29030037030020042004290380033703e0042001200441c0046a10ac040b200441bc026a2109200441c0046a41286a200441086a41286a290300370300200441c0046a41206a200441086a41206a290300370300200441c0046a41186a200441086a41186a290300370300200441c0046a41106a200441086a41106a290300370300200441c0046a41086a200441086a41086a290300370300200420042903083703c00420042802c003210b0240024020042802c40322064125490d00200441c0036a41106a2802002106200441cc036a280200210a0c010b200441c9036a210a0b20044180036a41086a20063602002004200a360284032004200b36028003200441c0046a20044180036a10b304200041306a200441c0046a41286a290300370200200041286a200441c0046a41206a290300370200200041206a200441c0046a41186a290300370200200041186a200441c0046a41106a290300370200200041106a200441c0046a41086a290300370200200041086a20042903c0043702002000428080808010370200200041386a2009290200370200200041c0006a200941086a28020036020020042802c4034125490d01200441cc036a28020010300c010b4101210602400240200941ff01714101460d00200441c3036a20044188026a41d8001085051a410021060c010b200441c0036a41186a200441e0026a41186a290300370300200441c0036a41106a200441e0026a41106a290300370300200441c0036a41086a200441e0026a41086a290300370300200420042903e0023703c003200441e3036a20044188026a41d8001085051a0b200420063a00c004200441c0046a410172200441c0036a41fb001085051a200141306a200441c0046a10b30121092000428080808020370200200041086a2004290308370200200041106a200441086a41086a290300370200200041186a200441086a41106a290300370200200041206a200441086a41186a290300370200200041286a200441086a41206a290300370200200041306a200441086a41286a2903003702002000413c6a2009360200200041386a41003a00000b20042d005c4102460d1120042802584125490d11200441e0006a28020010300c110b200c102f211702400240200941244b0d002017450d0820172015200e1085051a0c010b2017450d0720172015200c20162016200c4b1b1085051a201510300b200441cc046a200e360200200441c8046a2017360200200441013a00c4042004200c3602c0040b200441cc046a220c280200210e200441c8046a28020021150b2015200e6a20144170712006723a0000200c200c28020041016a360200200441c8036a200441cd046a290000370300200441d0036a200441d5046a290000370300200441d8036a200441dd046a290000370300200441df036a200441e4046a290000370000200420042900c5043703c00320042d00c404210c20042802c00421090b2004418d036a200441c8036a29030037000020044195036a200441d0036a2903003700002004419d036a200441d8036a290300370000200441a4036a200441df036a2900003700002004200936028003200420042903c003370085032004200c3a00840302400240200c41ff01714102470d004100210c0c010b024020094125490d002004418c036a280200210920044188036a280200210c0c010b20044180036a410572210c0b2009200b200c1b2114200d410173210d200c2003200c1b210902400240024020084101470d00200441cf036a200441106a290300370000200441d7036a200441186a290300370000200441df036a200441206a2d00003a0000200420042f01383b01c003200420053600c303200420042903083700c7032004200441386a41026a2d00003a00c20320044191016a200e3a00002004200d3a0090012004201436028c0120042009360288012001200441c0036a20044188016a10a9042207422088a7210b2007a70d020240200141c8006a2205280200220c200c417f6a2203200141c0006a2208280200220c2001413c6a22152802006b716b4101470d00201510b2012005280200417f6a21032008280200210c0b20082003200c41016a71360200200141c4006a280200200c4102746a200b360200200141386a280200220c200b4d0d082001280230200b41fc006c6a220b2d0000210c200441c0046a200b41016a41fb001085051a200b41046a4100360200200b41003a00000c010b0240200141c8006a2203280200220b200b417f6a2208200141c0006a220c280200220b2001413c6a22152802006b716b4101470d00201510b2012003280200417f6a2108200c280200210b0b200c2008200b41016a71360200200141c4006a280200200b4102746a2005360200200141386a280200220b20054d0d062001280230200541fc006c6a220b2d0000210c200441c0046a200b41016a41fb001085051a200b41046a4100360200200b41003a00000b200c41ff01714101470d02200441c0036a41186a200441c0046a41186a290000370300200441c0036a41106a200441c0046a41106a290000370300200441c0036a41086a200441c0046a41086a290000370300200420042900c0043703c003200441003a008c01200441003602880120044188016a2009200920146a10bc022004418d046a200e3a00002004418c046a200d3a000020044188046a20044188016a41286a28020036020020044180046a200441a8016a290300370300200441f8036a20044188016a41186a290300370300200441f0036a20044188016a41106a290300370300200441c0036a41286a20044188016a41086a29030037030020042004290388013703e0032001200441c0036a10ac04200441c0036a200441e3046a41d8001085051a0c030b200041013602002000200b360204024020042d0084034102460d002004280280034125490d0020044188036a28020010300b200a103020124125490d00201010300b2002280200417e6a4103490d0d200210be010c0d0b200441c0036a200441c3046a41d8001085051a0b02400240024020042802c003417f6a0e0401000002000b41d8a5c2004128419cf2c100102d000b200441b0026a200441c0036a412c6a290200370300200441a8026a200441c0036a41246a29020037030020044188026a41186a200441c0036a411c6a29020037030020044188026a41106a220c200441c0036a41146a29020037030020044188026a41086a200441c0036a410c6a290200370300200420042902c4033703880220044188016a41086a20113a000020044188016a41096a20042f01b0033b000020044193016a200441b2036a2d00003a000020044188016a41106a200f36020020044188016a410c6a20103602002004201236028c01200420133602880120044188016a41146a200429035837020020044188016a411c6a200441d8006a41086a29030037020020044188016a41246a200441d8006a41106a29030037020020044188016a412c6a200441d8006a41186a280200360200200441e0026a41086a4101360200200441013602e002200420063a00542004200441d4006a3602e40220044188016a200441e0026a10b304200441f4036a2109200428028802210b02400240200428028c0222064125490d00200c280200210620044188026a410c6a280200210c0c010b20044188026a41096a210c0b200441e0026a41086a20063602002004200c3602e4022004200b3602e00220044188016a200441e0026a10b304200041306a20044188016a41286a290300370200200041286a20044188016a41206a290300370200200041206a20044188016a41186a290300370200200041186a20044188016a41106a290300370200200041106a20044188016a41086a290300370200200041086a2004290388013702002000428080808010370200200041386a2009290200370200200041c0006a200941086a280200360200200428028c024125490d0420044194026a28020010300c040b200441b0026a200441c0036a412c6a290200370300200441a8026a200441c0036a41246a29020037030020044188026a41186a200441c0036a411c6a29020037030020044188026a41106a2208200441c0036a41146a29020037030020044188026a41086a200441c0036a410c6a290200370300200420042902c40337038802200441f4036a280200210b20044188016a41086a20113a000020044188016a41106a200f36020020044188016a410c6a20103602002004201236028c01200420133602880120044188016a41096a20042f01b0033b000020044193016a200441b2036a2d00003a000020044188016a41146a200429035837020020044188016a411c6a200441d8006a41086a29030037020020044188016a41246a200441d8006a41106a29030037020020044188016a412c6a200441d8006a41186a280200360200200441e0026a41086a4101360200200441013602e002200420063a00542004200441d4006a3602e40220044188016a200441e0026a10b304200441f8036a2109200428028802210c02400240200428028c0222064125490d002008280200210620044188026a410c6a28020021080c010b20044188026a41096a21080b200441e0026a41086a2006360200200420083602e4022004200c3602e00220044188016a200441e0026a10b304200041306a20044188016a41286a290300370200200041286a20044188016a41206a290300370200200041206a20044188016a41186a290300370200200041186a20044188016a41106a290300370200200041106a20044188016a41086a290300370200200041086a200429038801370200200041386a200b360200200041043602042000413c6a2009290200370200200041c4006a200941086a28020036020020004100360200200428028c024125490d0320044194026a28020010300c030b102a000b2005200b41acf0c1001033000b200b200c41acf0c1001033000b20042d0084034102460d002004280280034125490d0020044188036a2802001030200a10300c060b200a10300c050b4188f1c100412f41fcf1c100102d000b20004104360204200041106a20113a00002000410c6a2012360200200041086a20133602002000200d2f00003b0011200041186a200f360200200041146a20103602002000411c6a2005290200370200200041386a200a3602002000413c6a200e360200200041c0006a2007370200200041136a200d41026a2d00003a0000200041246a200541086a2902003702002000412c6a200541106a290200370200200041346a200541186a280200360200200041003602000c030b200510300c020b4188f1c100412f41b8f1c100102d000b2000428080808030370200200041106a20073702002000410c6a2008360200200041086a20053602000b2002280200417e6a4103490d00200210be010b200441c0056a24000bd003010a7f230041106b2202240020002001280200220320002802006a41017110f9040240024002400240024020030d00200141086a2802002104410021030c010b02400240200028020422034125490d00200041106a28020021050c010b200321050b200141086a2802002204450d012005417f6a21050240024020034125490d00200041106a28020021032000410c6a28020021060c010b200041096a21060b200320054d0d02200620056a220320032d000020012802042d0000410f71723a0000410121030b0240200320044f0d00200420036b2107200041106a2108200041096a2109200041046a210a200128020420036a2104034002400240200a28020022054125490d0020002802102101200028020c2106200821030c010b20052101200a210320092106412421050b20042d0000210b024020012005470d002002200a410110bd02024020022802004101470d00200241086a2802000d0641d099c200411141e499c200102d000b20002802102101200028020c2106200821030b200620016a200b3a00002003200328020041016a360200200441016a21042007417f6a22070d000b0b200241106a24000f0b4100410041dc9ec2001033000b2005200341cc9ec2001033000b102a000bf20201047f02402001450d0020002001412c6c6a2103034002400240200022042802004101470d002004280204210120042802082205200210a80320022001200510640c010b2004280204210120042802082205200210a80320022001200510640b02400240200428020c4101470d002004280210210120042802182205200210a80320012005200210b5040c010b20042802102101200441146a2802002205200210a80320012005200210b5040b2004412c6a210002400240200428021c4101470d002004280220210120042802282204200210a80320044103742204450d01200120046a2106034020012802002104200141046a2802002205200210a8032002200420051064200141086a22012006470d000c020b0b2004280220210120042802242204200210a80320044103742204450d00200120046a2106034020012802002104200141046a2802002205200210a8032002200420051064200141086a22012006470d000b0b20002003470d000b0b0bd00101027f02402001450d002000200141186c6a210103400240024020002802004101470d00200041046a2802002103200041086a2802002204200210a80320022003200410640c010b200041046a2802002103200041086a2802002204200210a80320022003200410640b024002402000410c6a2802004101470d00200041106a2802002103200041146a2802002204200210a80320022003200410640c010b200041106a2802002103200041146a2802002204200210a80320022003200410640b200041186a22002001470d000b0b0b8a0801057f230041106b2203240002402001450d002000200141d8006c6a2104034002400240200022052802004101470d002005280204210120052802082206200210a80320022001200610640c010b2005280204210120052802082206200210a80320022001200610640b0240024020052d00544101460d00200341003a000f20022003410f6a410110640c010b200341013a000f20022003410f6a410110640b024002400240024020052d000c0e03000102030b200341003a000f20022003410f6a41011064024020052802104101470d002005280214210120052802182206200210a80320022001200610640c030b2005280214210120052802182206200210a80320022001200610640c020b200341013a000f20022003410f6a410110642005410d6a2d0000200210ba040240024020052802104101470d002005280214210120052802182206200210a80320022001200610640c010b2005280214210120052802182206200210a80320022001200610640b02400240200528021c4101470d002005280220210120052802242206200210a80320022001200610640c010b2005280220210120052802242206200210a80320022001200610640b200320052d000e3a000f20022003410f6a410110640c010b200341023a000f20022003410f6a410110642005410d6a2d0000200210ba040240024020052802104101470d002005280214210120052802182206200210a80320022001200610640c010b2005280214210120052802182206200210a80320022001200610640b02400240200528021c4101470d002005280220210120052802242206200210a80320022001200610640c010b2005280220210120052802242206200210a80320022001200610640b0240024020052802284101470d00200528022c210120052802302206200210a80320022001200610640c010b200528022c210120052802302206200210a80320022001200610640b20052d000e200210ba040b0240024020052802344101470d002005280238210120052802402206200210a80320022001200610640c010b20032005280238200528023c28020c1105002003280200210120032802082206200210a80320022001200610642003280204450d00200110300b200541d8006a21000240024020052802444101470d002005280248210120052802502205200210a80320054103742205450d01200120056a2107034020012802002105200141046a2802002206200210a8032002200520061064200141086a22012007470d000c020b0b20052802482101200528024c2205200210a80320054103742205450d00200120056a2107034020012802002105200141046a2802002206200210a8032002200520061064200141086a22012007470d000b0b20002004470d000b0b200341106a24000bd90301057f02402001450d0020002001412c6c6a2103034002400240200022042802004101470d002004280204210120042802082205200210a80320022001200510640c010b2004280204210120042802082205200210a80320022001200510640b02400240200428020c4101470d002004280210210120042802182205200210a80320054103742205450d01200120056a2106034020012802002105200141046a2802002207200210a8032002200520071064200141086a22012006470d000c020b0b2004280210210120042802142205200210a80320054103742205450d00200120056a2106034020012802002105200141046a2802002207200210a8032002200520071064200141086a22012006470d000b0b2004412c6a210002400240200428021c4101470d002004280220210120042802282205200210a80320054103742205450d01200120056a2106034020012802002105200141046a2802002207200210a8032002200520071064200141086a22012006470d000c020b0b2004280220210120042802242205200210a80320054103742205450d00200120056a2106034020012802002105200141046a2802002207200210a8032002200520071064200141086a22012006470d000b0b20002003470d000b0b0be30301057f230041106b2203240002402001450d002000200141386c6a2104034002400240200022052802004101470d002005280204210120052802082206200210a80320022001200610640c010b2005280204210120052802082206200210a80320022001200610640b02400240200528020c4101470d002005280210210120052802142206200210a80320022001200610640c010b2005280210210120052802142206200210a80320022001200610640b0240024020052802184101470d00200528021c210120052802242206200210a80320022001200610640c010b2003200528021c200528022028020c1105002003280200210120032802082206200210a80320022001200610642003280204450d00200110300b200541386a21000240024020052802284101470d00200528022c210120052802342205200210a80320054103742205450d01200120056a2107034020012802002105200141046a2802002206200210a8032002200520061064200141086a22012007470d000c020b0b200528022c210120052802302205200210a80320054103742205450d00200120056a2107034020012802002105200141046a2802002206200210a8032002200520061064200141086a22012007470d000b0b20002004470d000b0b200341106a24000ba50201047f02402001450d0020002001411c6c6a2103034002400240200022042802004101470d002004280204210120042802082205200210a80320022001200510640c010b2004280204210120042802082205200210a80320022001200510640b2004411c6a210002400240200428020c4101470d002004280210210120042802182204200210a80320044103742204450d01200120046a2106034020012802002104200141046a2802002205200210a8032002200420051064200141086a22012006470d000c020b0b2004280210210120042802142204200210a80320044103742204450d00200120046a2106034020012802002104200141046a2802002205200210a8032002200420051064200141086a22012006470d000b0b20002003470d000b0b0bc60101017f230041106b2202240002400240024002400240024002400240200041ff01710e0700010203040506070b200241003a000f20012002410f6a410110640c060b200241013a000f20012002410f6a410110640c050b200241023a000f20012002410f6a410110640c040b200241033a000f20012002410f6a410110640c030b200241043a000f20012002410f6a410110640c020b200241053a000f20012002410f6a410110640c010b200241063a000f20012002410f6a410110640b200241106a24000b1c0020012802184199f7c100410f2001411c6a28020028020c1100000b040041000b02000b02000b1c002001280218418bf6c10041052001411c6a28020028020c1100000b800201047f230041206b2202240002400240200041046a280200200041086a2802002203460d00200028020021040c010b0240200341016a22042003490d00200341017422052004200520044b1b22044108200441084b1b21040240024020030d00200241003602100c010b200241106a41086a410136020020022003360214200220002802003602100b200220044101200241106a1069200241086a2802002103024020022802004101460d00200020022802042204360200200041046a2003360200200041086a28020021030c020b2003450d00102a000b102c000b200420036a20013a0000200041086a2200200028020041016a360200200241206a24000b970101037f23004180016b2202240020002802002d00002103410021000340200220006a41ff006a2003410f712204413072200441d7006a2004410a491b3a00002000417f6a21002003410476410f7122030d000b024020004180016a2203418101490d002003418001419087c000104a000b200141a8f7c1004102200220006a4180016a410020006b1040210020024180016a240020000bf90101027f230041106b22022400024002402000280204450d0020024280808080104200200128021841f4f7c10041082001411c6a28020028020c1100001b2001ad843703002002200036020c200241fcf7c10041062002410c6a4184f8c100105322002d0004210120002d0005450d01200141ff017121004101210120000d0120022802002201411c6a28020028020c210020012802182103024020012d0000410471450d00200341e49dc0004101200011000021010c020b200341e59dc0004102200011000021010c010b20012802184194f8c10041102001411c6a28020028020c11000021010b200241106a2400200141ff01714100470bf80101027f230041106b220224002000280200210020024280808080104200200128021841889fc00041062001411c6a28020028020c1100001b2001ad843703002002200036020c2002418e9fc00041052002410c6a41f89ec000105321012002200041046a36020c200141939fc00041062002410c6a419c9fc000105322002d00042101024020002d0005450d00200141ff017121004101210120000d0020022802002201411c6a28020028020c210020012802182103024020012d0000410471450d00200341e49dc0004101200011000021010c010b200341e59dc0004102200011000021010b200241106a2400200141ff01714100470b1f0020004100360200200041086a4200370200200041002802e88f423602040b7a01057f230041106b2202240002402001422088a72203450d0041002104024002402001a722052d00000e020100020b2003417f6a4104490d0120052800012106410121040b200510302000200636020420002004360200200241106a24000f0b41e8fac100412e200241086a4198fbc10041a8fbc1001034000ba40302077f017e230041106b2202240002402001422088a72203450d004100210402400240024002402001a722052d00000e020100040b20034101460d032003417e6a21040240024020052d0001220641037122074103460d00200541026a210802400240024020070e03000102000b200641027621060c030b2004450d0620082d0000410874200672220641ffff0371418002490d06200541036a21082003417d6a2104200641fcff037141027621060c020b20044103490d0520052f0002200541046a2d000041107472410874200672220641ffff034d0d052003417b6a2104200541056a2108200641027621060c010b200641034b0d0420044104490d0420052800022206418080808004490d042003417a6a2104200541066a21080b20042006490d032006417f4c0d010240024020060d00410121040c010b2006102f2204450d032004410020061087051a0b2004200820061085051a2006ad220142208620018421090b200020093702042000200436020020051030200241106a24000f0b102c000b102a000b41e8fac100412e200241086a4198fbc10041a8fbc1001034000b18002001ad4220862000ad842003ad4220862002ad8410060b18002001ad4220862000ad842003ad4220862002ad8410070b1b002001ad4220862000ad842003ad4220862002ad8410084101460b1d0020002002ad4220862001ad842004ad4220862003ad84100910c6040b1d0020002002ad4220862001ad842004ad4220862003ad84100a10c6040b5201017f230041106b22082400200841086a2002ad4220862001ad842004ad4220862003ad842006ad4220862005ad842007100b10c504200020082802083602002000200828020c360204200841106a24000b4801017e024002402002ad4220862001ad84100c2203422088a722010d0041002101200041002802dc94423602000c010b20002003a73602000b20002001360208200020013602040b22002001ad4220862000ad842003ad4220862002ad842005ad4220862004ad84100d0bb60202037f017e230041106b220524000240024041054101200341014622031b2206102f2207450d002002ad4220862001ad8421082005410036020820052006360204200520073602000240024020030d00200541003a000c20052005410c6a410110640c010b200541013a000c20052005410c6a410110642005200436020c20052005410c6a410410640b200528020421062008200535020842208620052802002207ad84100e2208422088a72203450d0141002101200541003a000c2003417f6a21020240024002402008a722032d00000e020100040b41012101200241034b0d010c030b20024104490d020b200328000121022003103002402006450d00200710300b2000200236020420002001360200200541106a24000f0b102a000b41e8fac100412e20054198fbc10041a8fbc1001034000b0d00200141e8a0c200410210430bb10301047f230041c0006b2202240020002802002103410121000240200128021841f79bc000410c2001411c6a28020028020c1100000d0002400240200328020822000d0020032802002200200328020428020c11090042f4f99ee6eea3aaf9fe00520d012002200036020c2002412936021420022002410c6a36021020012802182104200128021c2105410121002002413c6a41013602002002420237022c200241849cc0003602282002200241106a36023820042005200241286a10320d020c010b2002200036020c2002412a36021420022002410c6a36021020012802182104200128021c2105410121002002413c6a41013602002002420237022c200241849cc0003602282002200241106a36023820042005200241286a10320d010b200328020c2100200241106a41146a4102360200200241106a410c6a410236020020022000410c6a3602202002200041086a360218200241043602142002200036021020012802182100200128021c2101200241286a41146a41033602002002420337022c200241949cc0003602282002200241106a36023820002001200241286a103221000b200241c0006a240020000b6901037f230041206b220224002001411c6a280200210320012802182104200241086a41106a2000280200220141106a290200370300200241086a41086a200141086a2902003703002002200129020037030820042003200241086a10322101200241206a240020010b5601017f4104210502400240024002400240200041ff0171417f6a0e050001020304000b410021050c030b410121050c020b410221050c010b410321050b20052002ad4220862001ad842004ad4220862003ad8410250b31002001ad4220862000ad84200235020842208620022802002200ad8410180240200241046a280200450d00200010300b0b130020002002ad4220862001ad84101910c6040b0e002001ad4220862000ad84101a0b0e002001ad4220862000ad84101b0b0400101c0b11002001ad4220862000ad84101d4101460b130020002002ad4220862001ad84101e10c6040b130020002002ad4220862001ad84101f10c6040b4801017f230041106b22062400200641086a2002ad4220862001ad842004ad4220862003ad842005102010c504200020062802083602002000200628020c360204200641106a24000b040010210b4002017e017f0240024010222201422088a722020d0041002102200041002802dc94423602000c010b20002001a73602000b20002002360208200020023602040b18002001ad4220862000ad842003ad4220862002ad8410230b040010240b0e002001ad4220862000ad8410260b18002001ad4220862000ad842003ad4220862002ad8410270b040041010b9c0301057f230041c0006b220224002002420037020c41002103200241002802dc94423602082002412a36021c20022001410c6a3602202002200241206a3602182002200241086a3602242002413c6a41013602002002420137022c200241cc80c2003602282002200241186a360238200241246a41d480c200200241286a10321a02400240024002400240024002402001280200417f6a0e050102030400010b200141086a280200210441042103200141046a28020021010c040b200141086a2802002104200141046a28020021010c030b200141086a2802002104200141046a28020021012002280210210520022802082106410121030c030b200141086a2802002104200141046a28020021012002280210210520022802082106410221030c020b200141086a2802002104200141046a28020021012002280210210520022802082106410321030c010b20022802102105200228020821060b200220033a0029200241003a002820032004ad4220862001ad842005ad4220862006ad8410250240200228020c450d00200228020810300b200241c0006a24000b0f00200028020020012002106441000b6301017f230041206b2202240020022000280200360204200241086a41106a200141106a290200370300200241086a41086a200141086a29020037030020022001290200370308200241046a41d480c200200241086a10322101200241206a240020010b8c0c010a7f230041e0036b2203240020012802002104200128020422052f018e0d2106200341b0016a41106a220720052001280208220841186c6a220141146a290200370300200341b0016a41086a22092001410c6a2902003703002003200141046a220a2902003703b001200a2001411c6a20062008417f736a220141186c1086051a200341c8016a2005418c026a220a20084107746a220b4180011085051a200b200a200841016a220c4107746a20014107741086051a20052006417f6a22013b018e0d200341c8026a41106a2007290300370300200341c8026a41086a2009290300370300200320032903b0013703c802200341c8026a41186a200341c8016a4180011085051a200341186a200341c8026a4198011085051a200341c8026a200341186a4198011085051a0240200141ffff037141044b0d0002400240024020052802002206450d00200441016a21090240024020052f018c0d22070d0020062f018e0d0d012003412c6a41013602002003420137021c200341f4a9c200360218200341043602cc0120034188a4c2003602c8012003200341c8016a360228200341186a4190a4c200103a000b024020062007417f6a22074102746a41900d6a280200220a2f018e0d200141ffff03716a41016a410b4b0d00200341306a2005360200200341286a200a3602002003200436022c20032004360224200320073602202003200636021c20032009360218200341b0016a200341186a4101200810e8040c040b200341306a2005360200200341286a200a3602002003200436022c20032004360224200320073602202003200636021c20032009360218200341186a410110e9042003200c3602b8010c020b0240200141ffff0371200741027420066a41940d6a28020022012f018e0d6a41016a410b4b0d00200341306a2001360200200341286a20053602002003200436022c20032004360224200320073602202003200636021c20032009360218200341b0016a200341186a4100200810e8040c030b200341306a2001360200200341286a20053602002003200436022c20032004360224200320073602202003200636021c20032009360218200341186a410110ea040b200320083602b8010b200320053602b401200320043602b0010b20032802b801210820032802b001210420032802b40122052802002201450d0020012f018e0d220941044b0d00200441016a21060240034020012802002207450d01200941ffff03712109200641016a210b024002400240024020012f018c0d220a0d0020072f018e0d0d012003412c6a41013602002003420137021c200341f4a9c200360218200341043602cc0120034188a4c2003602c8012003200341c8016a360228200341186a4190a4c200103a000b2007200a417f6a220c4102746a41900d6a280200210a200320013602e001200320063602dc012003200a3602d801200320063602d4012003200c3602d001200320073602cc012003200b3602c80102402009200a2f018e0d6a41016a410b4b0d00200341186a41186a200341c8016a41186a280200360200200341186a41106a200341c8016a41106a290300370300200341186a41086a200341c8016a41086a290300370300200320032903c801370318200341106a200341186a10eb0420032802142101200328021021060c030b200341c8016a410520096b10e9040c010b2003200a41027420076a41940d6a280200220c3602e001200320063602dc01200320013602d801200320063602d4012003200a3602d001200320073602cc012003200b3602c80102402009200c2f018e0d6a41016a410b4b0d00200341186a41186a200341c8016a41186a280200360200200341186a41106a200341c8016a41106a290300370300200341186a41086a200341c8016a41086a290300370300200320032903c801370318200341086a200341186a10eb04200328020c2101200328020821060c020b200341c8016a410520096b10ea040b410021010b2001450d0220012f018e0d220941044d0d000c020b0b200941ffff03710d00200241013a00000b2000200341c8026a419801108505220141a0016a20083602002001419c016a20053602002001200436029801200341e0036a24000bc40501107f230041a0016b22042400024002400240200141186a28020022052f018e0d2206200141106a28020022072f018e0d220820021b2003490d00200841016a220920066a220a410c4f0d01200128020c210b2001280208210c2001280200210d2001280204220e2f018e0d210f2007200a3b018e0d200441086a41106a2210200e200c41186c6a220141146a290200370300200441086a41086a22112001410c6a2902003703002004200141046a221229020037030820122001411c6a200f200c417f736a221341186c1086051a200741046a2212200841186c6a220141106a2010290300370200200141086a2011290300370200200120042903083702002012200941186c6a200541046a200641186c1085051a200441206a200e418c026a2210200c4107746a22114180011085051a20112010200c41016a22014107746a20134107741086051a2007418c026a221020084107746a200441206a4180011085051a201020094107746a2005418c026a20064107741085051a200e41900d6a221020014102746a200c410274220c20106a41086a20134102741086051a02402001200f4f0d00200c200e6a41940d6a210c0340200c280200221320013b018c0d2013200e360200200c41046a210c200f200141016a2201470d000b0b200e200e2f018e0d417f6a3b018e0d0240200d4102490d002006200a20096b470d03200720094102746a41900d6a200541900d6a200641016a22134102741085051a200a20084d0d00200720084102746a41940d6a21012009210c03402001280200220e200c3b018c0d200e2007360200200141046a2101200c41016a210c2013417f6a22130d000b0b20051030200020073602042000200b36020020002009410020021b20036a360208200441a0016a24000f0b419ca7c20041910141b0a8c200102d000b41a0a4c200412a41cca4c200102d000b41f8a2c200412841a0a3c200102d000bd306040a7f027e027f017e230041b0036b220224000240024002400240200041186a2802002f018e0d220320016a2204410c4f0d00200041106a28020022052f018e0d22062001490d012005200620016b22073b018e0d200041186a220528020020043b018e0d200528020041046a2208200141186c6a2008200341186c1086051a2005280200418c026a220820014107746a200820034107741086051a2006200741016a22036b22062001417f6a470d02200528020041046a200041106a2208280200200341186c6a41046a200641186c22091085051a2005280200418c026a200828020020034107746a418c026a2006410774220a1085051a20022008280200220b20074107746a418c026a4180011085052106200b200741186c6a220741046a290200210c200741146a290200210d200041046a280200220b2000280208220e41186c6a2202410c6a220f2902002110200f2007410c6a29020037020020064198016a41086a22072010370300200241146a220f2902002110200f200d37020020064198016a41106a220f2010370300200241046a2202290200210d2002200c3702002006200d37039801200641b0026a200b200e4107746a418c026a22024180011085051a200220064180011085051a20064198016a41186a200641b0026a418001108505210220064180016a41106a220b200f29030037030020064180016a41086a220e2007290300370300200620062903980137038001200641b0026a20024180011085051a200528020020096a220741146a200b2903003702002007410c6a200e290300370200200741046a2006290380013702002005280200200a6a418c026a200641b0026a4180011085051a200028020c21070240024020002802140d002007450d010c050b2007450d04200828020021082005280200220741900d6a2200200141027422056a2000200420016b41027441046a1086051a2000200820034102746a41900d6a20051085051a200441016a21034100210103402000280200220520013b018c0d20052007360200200041046a21002003200141016a2201470d000b0b200641b0036a24000f0b4190a6c200413341c4a6c200102d000b41d4a6c200412741fca6c200102d000b41f8a2c200412841a0a3c200102d000b41d8a5c2004128418ca7c200102d000ba307040a7f027e037f017e230041b0036b220224000240024002400240200041106a28020022032f018e0d220420016a2205410c4f0d00200041186a2802002f018e0d22062001490d01200320053b018e0d200041186a2203280200200620016b22073b018e0d2002200328020022082001417f6a2209410774220a6a418c026a41800110850521062008200941186c220b6a220241046a290200210c200241146a290200210d200041046a280200220e2000280208220f41186c6a2208410c6a2210290200211120102002410c6a29020037020020064198016a41086a22022011370300200841146a221029020021112010200d37020020064198016a41106a22102011370300200841046a2208290200210d2008200c3702002006200d37039801200641b0026a200e200f4107746a418c026a22084180011085051a200820064180011085051a20064198016a41186a200641b0026a418001108505210820064180016a41106a220e201029030037030020064180016a41086a220f2002290300370300200620062903980137038001200641b0026a20084180011085051a200041106a2208280200200441186c6a220241146a200e2903003702002002410c6a200f290300370200200241046a200629038001370200200828020020044107746a418c026a200641b0026a4180011085051a20092005200441016a22026b470d022008280200200241186c6a41046a200328020041046a200b1085051a200828020020024107746a418c026a2003280200418c026a200a1085051a200328020041046a22092009200141186c6a200741186c1086051a2003280200418c026a2209200920014107746a20074107741086051a200028020c21090240024020002802140d002009450d010c050b2009450d042008280200220920024102746a41900d6a2003280200220841900d6a2200200141027422031085051a2000200020036a200741027441046a1086051a0240200520044d0d00200441027420096a41940d6a210003402000280200220320023b018c0d20032009360200200041046a2100200241016a21022001417f6a22010d000b0b2007417f460d00200841900d6a2102200741016a21034100210003402002280200220120003b018c0d20012008360200200241046a21022003200041016a2200470d000b0b200641b0036a24000f0b41dca4c20041324190a5c200102d000b41a0a5c200412841c8a5c200102d000b41f8a2c200412841a0a3c200102d000b41d8a5c20041284180a6c200102d000b8b05010f7f230041a0016b2202240002400240200141106a28020022032f018e0d220441016a2205200141186a28020022062f018e0d22076a2208410c4f0d00200128020821092001280200210a2001280204220b2f018e0d210c200320083b018e0d200241086a41106a220d200b200941186c6a220141146a290200370300200241086a41086a220e2001410c6a2902003703002002200141046a220f290200370308200f2001411c6a200c2009417f736a221041186c1086051a200341046a220f200441186c6a220141106a200d290300370200200141086a200e29030037020020012002290308370200200f200541186c6a200641046a200741186c1085051a200241206a200b418c026a220d20094107746a220e4180011085051a200e200d200941016a22014107746a20104107741086051a2003418c026a220d20044107746a200241206a4180011085051a200d20054107746a2006418c026a20074107741085051a200b41900d6a220d20014102746a20094102742209200d6a41086a20104102741086051a02402001200c4f0d002009200b6a41940d6a210903402009280200221020013b018c0d2010200b360200200941046a2109200c200141016a2201470d000b0b200b200b2f018e0d417f6a3b018e0d0240200a4102490d002007200820056b470d02200320054102746a41900d6a200641900d6a200741016a22094102741085051a200820044d0d00200441027420036a41940d6a210103402001280200221020053b018c0d20102003360200200141046a2101200541016a21052009417f6a22090d000b0b200610302000200b3602042000200a360200200241a0016a24000f0b41a0a4c200412a41cca4c200102d000b41f8a2c200412841a0a3c200102d000be20b010a7f230041c0036b2203240020012802002104200128020422052f018a0c2106200341a0016a41086a2207200520012802082208410c6c6a2201410c6a2802003602002003200141046a22092902003703a0012009200141106a20062008417f736a2201410c6c1086051a200341b0016a20054188016a220920084107746a220a4180011085051a200a2009200841016a220b4107746a20014107741086051a20052006417f6a22013b018a0c200341b0026a41086a2007280200360200200320032903a0013703b002200341b0026a410c6a200341b0016a4180011085051a200341106a200341b0026a418c011085051a200341b0026a200341106a418c011085051a0240200141ffff037141044b0d0002400240024020052802002206450d00200441016a21090240024020052f01880c22070d0020062f018a0c0d01200341246a410136020020034201370214200341f4a9c200360210200341043602b40120034188a4c2003602b0012003200341b0016a360220200341106a4190a4c200103a000b024020062007417f6a22074102746a418c0c6a280200220a2f018a0c200141ffff03716a41016a410b4b0d00200341286a2005360200200341206a200a360200200320043602242003200436021c200320073602182003200636021420032009360210200341a0016a200341106a4101200810ed040c040b200341286a2005360200200341206a200a360200200320043602242003200436021c200320073602182003200636021420032009360210200341106a410110ee042003200b3602a8010c020b0240200141ffff0371200741027420066a41900c6a28020022012f018a0c6a41016a410b4b0d00200341286a2001360200200341206a2005360200200320043602242003200436021c200320073602182003200636021420032009360210200341a0016a200341106a4100200810ed040c030b200341286a2001360200200341206a2005360200200320043602242003200436021c200320073602182003200636021420032009360210200341106a410110ef040b200320083602a8010b200320053602a401200320043602a0010b20032802a801210820032802a001210420032802a40122052802002201450d0020012f018a0c220941044b0d00200441016a21060240034020012802002207450d01200941ffff03712109200641016a210b024002400240024020012f01880c220a0d0020072f018a0c0d01200341246a410136020020034201370214200341f4a9c200360210200341043602b40120034188a4c2003602b0012003200341b0016a360220200341106a4190a4c200103a000b2007200a417f6a220c4102746a418c0c6a280200210a200320013602c801200320063602c4012003200a3602c001200320063602bc012003200c3602b801200320073602b4012003200b3602b00102402009200a2f018a0c6a41016a410b4b0d00200341106a41186a200341b0016a41186a280200360200200341106a41106a200341b0016a41106a290300370300200341106a41086a200341b0016a41086a290300370300200320032903b001370310200341086a200341106a10f004200328020c2101200328020821060c030b200341b0016a410520096b10ee040c010b2003200a41027420076a41900c6a280200220c3602c801200320063602c401200320013602c001200320063602bc012003200a3602b801200320073602b4012003200b3602b00102402009200c2f018a0c6a41016a410b4b0d00200341106a41186a200341b0016a41186a280200360200200341106a41106a200341b0016a41106a290300370300200341106a41086a200341b0016a41086a290300370300200320032903b0013703102003200341106a10f00420032802042101200328020021060c020b200341b0016a410520096b10ef040b410021010b2001450d0220012f018a0c220941044d0d000c020b0b200941ffff03710d00200241013a00000b2000200341b0026a418c0110850522014194016a200836020020014190016a20053602002001200436028c01200341c0036a24000b9f05010f7f23004190016b22042400024002400240200141186a28020022052f018a0c2206200141106a28020022072f018a0c220820021b2003490d00200841016a220920066a220a410c4f0d01200128020c210b2001280208210c2001280200210d2001280204220e2f018a0c210f2007200a3b018a0c200441086a2210200e200c410c6c6a2201410c6a2802003602002004200141046a22112902003703002011200141106a200f200c417f736a2212410c6c1086051a200741046a22012008410c6c6a221141086a20102802003602002011200429030037020020012009410c6c6a200541046a2006410c6c1085051a200441106a200e4188016a2210200c4107746a22114180011085051a20112010200c41016a22014107746a20124107741086051a20074188016a221020084107746a200441106a4180011085051a201020094107746a20054188016a20064107741085051a200e418c0c6a221020014102746a200c410274220c20106a41086a20124102741086051a02402001200f4f0d00200c200e6a41900c6a210c0340200c280200221220013b01880c2012200e360200200c41046a210c200f200141016a2201470d000b0b200e200e2f018a0c417f6a3b018a0c0240200d4102490d002006200a20096b470d03200720094102746a418c0c6a2005418c0c6a200641016a22124102741085051a200a20084d0d00200720084102746a41900c6a21012009210c03402001280200220e200c3b01880c200e2007360200200141046a2101200c41016a210c2012417f6a22120d000b0b20051030200020073602042000200b36020020002009410020021b20036a36020820044190016a24000f0b419ca7c20041910141b0a8c200102d000b41a0a4c200412a41cca4c200102d000b41f8a2c200412841a0a3c200102d000b8606040a7f017e037f017e230041a0036b220224000240024002400240200041186a2802002f018a0c220320016a2204410c4f0d00200041106a28020022052f018a0c22062001490d012005200620016b22073b018a0c200041186a220528020020043b018a0c200528020041046a22082001410c6c6a20082003410c6c1086051a20052802004188016a220820014107746a200820034107741086051a2006200741016a22036b22062001417f6a470d02200528020041046a200041106a22082802002003410c6c6a41046a2006410c6c22091085051a20052802004188016a200828020020034107746a4188016a2006410774220a1085051a20022008280200220b20074107746a4188016a4180011085052106200b2007410c6c6a220741046a290200210c200041046a28020022022000280208220b410c6c6a220d410c6a220e280200210f200e2007410c6a28020036020020064190016a41086a2207200f360200200d41046a220d2902002110200d200c3702002006201037039001200641a0026a2002200b4107746a4188016a22024180011085051a200220064180011085051a20064190016a410c6a200641a0026a418001108505210220064180016a41086a220b2007280200360200200620062903900137038001200641a0026a20024180011085051a200528020020096a2207410c6a200b280200360200200741046a2006290380013702002005280200200a6a4188016a200641a0026a4180011085051a200028020c21070240024020002802140d002007450d010c050b2007450d042008280200210820052802002207418c0c6a2200200141027422056a2000200420016b41027441046a1086051a2000200820034102746a418c0c6a20051085051a200441016a21034100210103402000280200220520013b01880c20052007360200200041046a21002003200141016a2201470d000b0b200641a0036a24000f0b4190a6c200413341c4a6c200102d000b41d4a6c200412741fca6c200102d000b41f8a2c200412841a0a3c200102d000b41d8a5c2004128418ca7c200102d000bd606040a7f017e047f017e230041a0036b220224000240024002400240200041106a28020022032f018a0c220420016a2205410c4f0d00200041186a2802002f018a0c22062001490d01200320053b018a0c200041186a2203280200200620016b22073b018a0c2002200328020022082001417f6a2209410774220a6a4188016a418001108505210620082009410c6c220b6a220241046a290200210c200041046a28020022082000280208220d410c6c6a220e410c6a220f2802002110200f2002410c6a28020036020020064190016a41086a22022010360200200e41046a220e2902002111200e200c3702002006201137039001200641a0026a2008200d4107746a4188016a22084180011085051a200820064180011085051a20064190016a410c6a200641a0026a418001108505210820064180016a41086a220d2002280200360200200620062903900137038001200641a0026a20084180011085051a200041106a22082802002004410c6c6a2202410c6a200d280200360200200241046a200629038001370200200828020020044107746a4188016a200641a0026a4180011085051a20092005200441016a22026b470d0220082802002002410c6c6a41046a200328020041046a200b1085051a200828020020024107746a4188016a20032802004188016a200a1085051a200328020041046a220920092001410c6c6a2007410c6c1086051a20032802004188016a2209200920014107746a20074107741086051a200028020c21090240024020002802140d002009450d010c050b2009450d042008280200220920024102746a418c0c6a20032802002208418c0c6a2200200141027422031085051a2000200020036a200741027441046a1086051a0240200520044d0d00200441027420096a41900c6a210003402000280200220320023b01880c20032009360200200041046a2100200241016a21022001417f6a22010d000b0b2007417f460d002008418c0c6a2102200741016a21034100210003402002280200220120003b01880c20012008360200200241046a21022003200041016a2200470d000b0b200641a0036a24000f0b41dca4c20041324190a5c200102d000b41a0a5c200412841c8a5c200102d000b41f8a2c200412841a0a3c200102d000b41d8a5c20041284180a6c200102d000be604010e7f23004190016b2202240002400240200141106a28020022032f018a0c220441016a2205200141186a28020022062f018a0c22076a2208410c4f0d00200128020821092001280200210a2001280204220b2f018a0c210c200320083b018a0c200241086a220d200b2009410c6c6a2201410c6a2802003602002002200141046a220e290200370300200e200141106a200c2009417f736a220f410c6c1086051a200341046a22012004410c6c6a220e41086a200d280200360200200e200229030037020020012005410c6c6a200641046a2007410c6c1085051a200241106a200b4188016a220d20094107746a220e4180011085051a200e200d200941016a22014107746a200f4107741086051a20034188016a220d20044107746a200241106a4180011085051a200d20054107746a20064188016a20074107741085051a200b418c0c6a220d20014102746a20094102742209200d6a41086a200f4102741086051a02402001200c4f0d002009200b6a41900c6a210903402009280200220f20013b01880c200f200b360200200941046a2109200c200141016a2201470d000b0b200b200b2f018a0c417f6a3b018a0c0240200a4102490d002007200820056b470d02200320054102746a418c0c6a2006418c0c6a200741016a22094102741085051a200820044d0d00200441027420036a41900c6a210103402001280200220f20053b01880c200f2003360200200141046a2101200541016a21052009417f6a22090d000b0b200610302000200b3602042000200a36020020024190016a24000f0b41a0a4c200412a41cca4c200102d000b41f8a2c200412841a0a3c200102d000bc80201087f200341146a2802002104200328020c210520032802082106200328020021070340200241186a210320022f018e0d21084100210902400240034020082009460d0202400240024020072003416c6a220a280200200a41086a280200220a20062006200a4b1b108805220b0d002006200a490d042006200a47220a0d022005200341786a2802002003280200220a20042004200a4b1b108805220b0d012004200a490d042004200a47210a0c020b4101210a200b417f4a0d010c030b4101210a200b4100480d020b200941016a2109200341186a2103200a0d000b20002001360204200041003602002000410c6a2009417f6a360200200041086a20023602000f0b200921080b02402001450d002001417f6a2101200220084102746a41900d6a28020021020c010b0b200042013702002000410c6a2008360200200041086a20023602000b9f06010e7f230041206b22032400024002400240024002402001450d0020032001417f6a2204200228028c0110f2040240024020032802042201450d00200328020021050c010b418c01102f2201450d0341002105200141003b018a01200141003602000b41bc01102f2206450d022006200136028c0141002107200641003b018a012006410036020020012006360200200141003b018801200320063602042003200541016a36020002400240024020022f018a01450d002006418c016a21082002410c6a210920024190016a210a200641046a210b034020092802002201417f4c0d07200941786a280200210c0240024020010d004101210d0c010b2001102f220d450d070b200d200c2001108505210e200341106a2004200a28020010f2042003280218210f024002402003280214220c450d002003280210210d0c010b418c01102f220c450d074100210d200c41003b018a01200c41003602000b2005200d470d0220062f018a01220d410b4f0d032006200d41016a22103b018a01200b200d410c6c6a220d2001360204200d200e360200200d2001360208200820104102746a200c360200200c2006360200200c20103b0188012003200f20032802086a41016a3602082009410c6a2109200a41046a210a200741016a220720022f018a01490d000b0b20002003290300370200200041086a200341086a2802003602000c030b41eaa0c2004130419ca1c200102d000b41aca1c200412041cca1c200102d000b418c01102f2206450d01200641003b018a01200641003602004100210a024020022f018a01450d002002410c6a210c200641046a21104100210a0340200c2802002201417f4c0d04200c41786a28020021090240024020010d004101210d0c010b2001102f220d450d040b200d20092001108505210d20062f018a012209410b4f0d052006200941016a3b018a0120102009410c6c6a22092001360208200920013602042009200d360200200c410c6a210c200a41016a220a20022f018a01490d000b0b2000200a36020820002006360204200041003602000b200341206a24000f0b102a000b102c000b41aca1c200412041fc80c200102d000bb81505017f017e0e7f017e067f23004190016b22022400200141106a2902002103200128020c210420012802082105200128020421062001280200210702400240024020002802042208450d00200028020021090c010b419002102f2208450d0141002109200841003b018e022008410036020020002008360204200041003602000b2003422088a7210a034020082f018e02220b41186c210c4100210d200841046a220e21014100210f034002400240024002400240200c200d470d00200b210f0c010b024020072001280200200128020822102005200520104b1b10880522110d0020052010490d01024020052010460d00200520104721100c030b024020042008200d6a221041106a280200201041186a2802002210200a2010200a491b10880522110d002010200a4b0d022010200a4721100c030b2011417f4c0d010c040b2011417f4a0d030b02402009450d002009417f6a21092008200f4102746a4190026a28020021080c050b02400240200b410a4b0d000240200f200b4f0d00200e200f41186c6a220141186a2001200b200f6b41186c1086051a0b200e200f41186c6a22012007360200200120033702102001200436020c20012005360208200120063602042008200b41016a3b018e020c010b410521014100210c02400240200f41054f0d0041042101200f210d0c010b4105210d02400240200f417b6a0e020201000b200f41796a210d4101210c410621010c010b4100210d4101210c0b419002102f2210450d06201041003b018e0220104100360200201020082f018e02220a2001417f736a22113b018e02200e200141186c6a220f280200210920024188016a200f41146a28020036020020024180016a200f410c6a2902003703002002200f2902043703780240024002400240024002400240024002402011410c4f0d00200a200141016a220f6b2011470d01201041046a200e200f41186c6a201141186c1085051a200820013b018e02200241e0006a41086a220a200241f8006a41086a290300370300200241e0006a41106a220b200241f8006a41106a2802003602002002200229037837036020102008200c1b220f41046a21010240200d41016a220c200f2f018e0222114b0d002001200c41186c6a2001200d41186c6a2011200d6b41186c1086051a0b2001200d41186c6a22012007360200200120033702102001200436020c2001200536020820012006360204200f201141016a3b018e02200241c8006a41086a200a2903002203370300200241c8006a41106a200b2802002201360200200220022903602212370348200241186a41106a2001360200200241186a41086a200337030020022012370318024002400240200828020022010d00410021040c010b410021042010210b2009210e034020082f018c02210f200241306a41106a2206200241186a41106a2213280200360200200241306a41086a2214200241186a41086a2215290300370300200220022903183703302001220c2f018e02220a410b490d0241002111410421010240200f4105490d00200f210102400240200f417b6a0e020201000b200f41796a210f41012111410621010c010b4100210f41012111410521010b41c002102f2210450d12201041003b018e02201041003602002010200c2f018e0222092001417f736a22053b018e02200241f8006a41086a2207200c200141186c6a220d41106a290200370300200241f8006a41106a2208200d41186a2802003602002002200d41086a2902003703782005410c4f0d052009200141016a22166b2005470d06200d41046a2802002109201041046a200d411c6a200541186c1085051a200c20013b018e02200241e0006a41086a22172007290300370300200241e0006a41106a221820082802003602002002200229037837036020102f018e02220d41016a2105200d410c4f0d07200a20016b22012005470d08200441016a210420104190026a200c20164102746a4190026a20014102741085051a4100210102400340201020014102746a4190026a280200220520013b018c02200520103602002001200d4f0d0120012001200d496a2201200d4d0d000b0b200241c8006a41106a22162018280200360200200241c8006a41086a22182017290300370300200220022903603703482010200c20111b22052f018e022101200820062802003602002007201429030037030020022002290330370378200541046a210a0240200f41016a220d20014b0d00200a200d41186c6a200a200f41186c6a2001200f6b41186c1086051a0b200141016a2111200a200f41186c6a220a200e360200200a2002290378370204200a410c6a2007290300370200200a41146a200828020036020020054190026a21070240200f41026a220a200141026a22084f0d002007200a4102746a2007200d4102746a2001200f6b4102741086051a0b2007200d4102746a200b360200200520113b018e020240200d20084f0d002005200f4102746a4194026a210103402001280200220d200f41016a220f3b018c02200d2005360200200141046a21012011200f470d000b0b201320162802003602002015201829030037030020022002290348370318200c21082010210b2009210e200c28020022010d000b0b200241106a200241186a41106a280200360200200241086a200241186a41086a2903003703002002200229031837030020002802042201450d072000280200210541c002102f220d450d10200d200136029002200d41003b018e02200d4100360200200141003b018c022001200d3602002000200d3602042000200541016a36020020052004470d08200d2f018e022205410b4f0d0941012101200d200541016a220f3b018e02200d200541186c6a220541106a200241086a290300370200200541186a200241106a280200360200200541086a2002290300370200200541046a2009360200200d4190026a200f4102746a20103602002010200f3b018c022010200d3602002000200028020841016a3602080c0c0b200241f8006a41106a2205200241186a41106a280200360200200241f8006a41086a2210200241186a41086a29030037030020022002290318370378200f41016a2101200c41046a210d0240200a200f4d22110d00200d200141186c6a200d200f41186c6a200a200f6b41186c1086051a0b200a41016a2107200d200f41186c6a220d200e360200200d2002290378370204200d410c6a2010290300370200200d41146a2005280200360200200c4190026a210d200a41026a2105024020110d00200f410274200d6a41086a200d20014102746a200a200f6b4102741086051a0b200c20073b018e02200d20014102746a200b360200200120054f0d09200a41016a2110200c2001417f6a22014102746a4194026a210d0340200d2802002205200141016a22013b018c022005200c360200200d41046a210d20102001470d000c0a0b0b2011410b41e8a2c2001042000b41f8a2c200412841a0a3c200102d000b2005410b41e8a2c2001042000b41f8a2c200412841a0a3c200102d000b2005410c41f8a3c2001042000b41f8a2c200412841a0a3c200102d000b41b2abc200412b41e0abc200102d000b41eaa0c2004130419ca1c200102d000b41aca1c200412041cca1c200102d000b410121012000200028020841016a3602080c010b20100d0102402006450d00200710300b410021012003a7450d00200410300b20024190016a240020010f0b200f41016a210f200141186a2101200d41186a210d0c000b0b0b102a000bbf1905107f017e087f017e017f230041c0066b2202240002400240024020002d00540d00200028020c21030c010b02400240200028020c22034106490d00200041186a28020021040c010b200321040b41012105200420002802504d0d010b2000410c6a21060240024020034106490d00200041186a22042802002103200041146a28020021070c010b200041146a2107200621040b024020030d00410121050c010b20042003417f6a22033602004100210520072003410c6c6a22042802042203450d00200428020821082004280200210420032109024003402004450d012004417f6a2104200320032f018a014102746a418c016a2802002103200928028c0121090c000b0b02402008450d0002400240024020092f018a010d004100210403404100210302402009280200220a450d00200441016a210b20092f0188012107200a21030b024041bc01418c0120041b450d00200910300b200b210420032109200720032f018a014f0d000b20032007410c6c6a41046a210a0240200b0d00200321090c020b200741027420036a4190016a28020021090240200b417f6a2204450d000340200928028c0121092004417f6a22040d000b0b4100210c0c020b200941046a210a41002107200921030b200741016a210c0b2008417f6a210d20032007410c6c6a220341086a280200210e0240200a280200220f450d00200041146a21102003410c6a2802002211ad422086200ead842112200241086a211320024180026a41146a2114200241a8046a410c6a211520024198036a410c6a2116034002400240024002400240024020002802042217450d002012422088a72104200028020021180340201741046a210320172f018a0c2219410c6c2107410021084100210a0340024002402007450d0002400240200f20032802002003280208220b2004200b2004491b108805221a0d00200b20044b0d01200b200447210b0c030b4101210b201a41004e0d020b200a21190b2018450d032018417f6a2118201720194102746a418c0c6a28020021170c020b2003410c6a2103200a41016a210a20084180016a2108200741746a2107200b0d000b0b201720086a220341086a21070240024002400240024002402001450d0002400240200341086a2208280200220b4106490d00200341146a2207280200210b200341106a280200210a0c010b200341106a210a0b200b450d022007200b417f6a220b360200200a200b41186c6a220728020c220b450d02200741106a290200211b02402007280200220a450d002007280204450d00200a10300b0240201b42ffffffff0383500d00200b10300b200828020022074106490d01200341146a2802000d080c070b02400240200628020022044106490d00200028021821042000280214210b0c010b2010210b0b02400240200b4520044572220a450d00200341086a2802002204210b024020044106490d00200341146a280200210b0b200b41024f0d010c090b200220123702ac042002200f3602a8042004410c6c200b6a41746a200241a8046a10e1020d0b200341086a28020021040b0240024020044106490d00200341146a22072802002104200341106a280200210b0c010b200341106a210b0b2004450d0220072004417f6a2204360200200b200441186c6a220428020c220b450d02200441106a290200211b200241a8046a41086a2208200441086a280200360200200220042902003703a80402400240200341086a221a28020022044106490d00200341146a2802002104200341106a28020021070c010b200341106a21070b2007450d032004450d03024020072004417f6a41186c6a22042802002207450d00200441046a280200450d00200710300b200420022903a804370200200441086a200828020036020002400240201a28020022044106490d00200341146a2802002104200341106a28020021030c010b200341106a21030b2003450d042004450d04200441186c20036a220341746a22042003417c6a2203280200201b422088a74102742207410275220810f302200428020020032802004102746a200b20071085051a2003200328020020086a3602000240201b42ffffffff0383500d00200b10300b200a0d070c0a0b2007450d050c060b418486c20041fc0041dc8ac2001050000b418486c20041fc0041dc8ac2001050000b418486c20041fc00418888c2001050000b418486c20041fc00419888c2001050000b41f588c20041d50141cc8ac2001050000b20002802042219450d00200028020021180340201941880c6a211a201941046a210320192f018a0c221c410c6c210741002108417f210a0340024002402007450d0002400240200f20032802002003280208220b2004200b2004491b10880522170d00200b20044b0d01200b200447210b0c030b4101210b201741004e0d022008211c0c010b200a41016a211c0b2018450d032018417f6a21182019201c4102746a418c0c6a28020021190c020b2003410c6a2103200841016a2108200a41016a210a201a41046a211a200741746a2107200b0d000b0b200241003a00ff01024002402018450d00201a2802002103024020184101460d00410121040340200320032f018a0c4102746a418c0c6a28020021032018200441016a2204470d000b0b20032f018a0c2104200241003602980320022004417f6a410020041b3602a00320022003410020041b36029c03200241a8046a20024198036a200241ff016a10ec0420024198036a200241a8046a418c011085051a20022802b405210b0240024020022802bc05220720022802b80522042f018a0c4f0d00200421030c010b03400240200428020022030d00410021030c020b200b41016a210b20042f01880c210720032104200720032f018a0c4f0d000b0b200241a8046a41086a20032007410c6c6a2204410c6a220a280200360200200441046a2204290200211b2004200229039803370200200a20024198036a41086a2802003602002002201b3703a804200241c0056a200320074107746a4188016a22044180011085051a200420164180011085051a2015200241c0056a4180011085051a0240200b450d00200b417f6a2204450d00200741027420036a41900c6a28020021030340200328028c0c21032004417f6a22040d000b0b20024180026a200241a8046a418c011085051a0c010b2002200a3602b004200220193602ac04200241003602a80420024180026a200241a8046a200241ff016a10ec040b2002280290022103200229038802211b200228028402210b200228028002210a20024184016a201441f8001085051a20002000280208417f6a360208024020022d00ff01450d0020002802042204450d0220002802002208450d03200428028c0c210720002008417f6a3602002000200736020420074100360200200410300b20034102460d00200241a8046a20024184016a41f8001085051a201b422088a721040240200b450d00200a10300b20022003360204200220043602002013200241a8046a41f8001085051a200210d9020b2012a7450d02200f10300c020b41b2abc200412b41d0acc200102d000b41b7a2c200412141d8a2c200102d000b200d450d020240024002400240200c20092f018a01490d004100210403404100210302402009280200220b450d00200441016a210720092f018801210c200b21030b024041bc01418c0120041b450d00200910300b024020030d00410021090c050b2007210420032109200c20032f018a014f0d000b2003200c410c6c6a41046a210b024020070d00200321090c020b200c41027420036a4190016a280200210902402007417f6a2204450d000340200928028c0121092004417f6a22040d000b0b410021040c020b2009200c410c6c6a41046a210b200921030b200c41016a21040b2003200c410c6c6a2203410c6a2802002111200341086a280200210e200b280200210f0b200d417f6a210d0240200f0d002004210c0c020b2011ad422086200ead8421122004210c0c000b0b200d450d0003400240024002400240200c20092f018a01490d004100210403404100210302402009280200220a450d00200441016a210b20092f0188012107200a21030b024041bc01418c0120041b450d00200910300b024020030d00410021090c050b200b210420032109200720032f018a014f0d000b20032007410c6c6a41046a210a0240200b0d00200321090c020b200741027420036a4190016a28020021090240200b417f6a2204450d000340200928028c0121092004417f6a22040d000b0b4100210c0c020b2009200c410c6c6a41046a210a20092103200c21070b200741016a210c0b20032007410c6c6a41086a280200210e200a280200210f0b200f450d02200d417f6a210d0240200e450d00200f10300b200d0d000b0b41002103034020092802002104024041bc01418c0120031b450d00200910300b2003417f6a21032004210920040d000b410021050b200241c0066a240020050b1c00200128021841e488c20041112001411c6a28020028020c1100000bac1b03177f017e037f23004190076b2202240002400240024020002d00540d00200028020c21030c010b02400240200028020c22034106490d00200041186a28020021040c010b200321040b41012105200420002802504d0d010b2000410c6a21060240024020034106490d00200041186a22042802002103200041146a28020021070c010b200041146a2107200621040b024020030d00410121050c010b20042003417f6a22033602004100210520072003410c6c6a22032802042204450d00200328020821082003280200210720042103024003402007450d012007417f6a2107200420042f018e024102746a4190026a280200210420032802900221030c000b0b0240024002402008450d000240024002400240024020032f018e020d0041002107034041002104024020032802002209450d00200741016a210a20032f018c02210b200921040b024041c00241900220071b450d00200310300b2004450d04200a210720042103200b20042f018e024f0d000b2004200b41186c6a41046a21090240200a0d00200421030c020b200b41027420046a4194026a28020021030240200a417f6a2207450d00034020032802900221032007417f6a22070d000b0b410021070c020b200341046a21094100210b200321040b200b41016a21070b2008417f6a21082004200b41186c6a220441146a280200210c200441106a280200210d200441086a280200210e2009280200220f450d01200041146a21102004410c6a2802002111200441186a2802002112200241186a410c6a2113200241186a41086a2114200241c8026a2115200241e8046a41186a2116200241d0036a41186a21170340200220123602142002200c3602102002200d36020c200220113602082002200e3602042002200f36020020002802042204450d05200241e8046a20002802002004200210f10420022802e8044101460d0520022802f00420022802f4044107746a2204418c026a210b024002400240024002400240024002400240024002402001450d0002400240200b280200220a4106490d0020044198026a2209280200210a20044194026a28020021180c010b20044194026a2118200b21090b200a450d022009200a417f6a220a3602002018200a41186c6a220a28020c2209450d02200a41106a29020021190240200a2802002218450d00200a280204450d00201810300b0240201942ffffffff0383500d00200910300b200b280200220b4106490d0120044198026a2802000d070c060b024002402006280200220a4106490d002000280218210a200028021421090c010b201021090b02400240200945200a45722218450d00200b280200220a21090240200a4106490d0020044198026a28020021090b200941024f0d010c080b200241e8046a41106a200241106a290300370300200241e8046a41086a200241086a290300370300200220022903003703e804200a410c6c20096a41746a200241e8046a10f3040d0a200b280200210a0b02400240200a4106490d0020044198026a2209280200210a20044194026a280200211a0c010b20044194026a211a200b21090b200a450d022009200a417f6a220a360200201a200a41186c6a220a28020c221a450d02200a41106a2902002119200241e8046a41086a221b200a41086a2802003602002002200a2902003703e80402400240200b280200220a4106490d0020044198026a280200210a20044194026a28020021090c010b20044194026a21090b2009450d03200a450d0302402009200a417f6a41186c6a220a2802002209450d00200a41046a280200450d00200910300b200a20022903e804370200200a41086a201b28020036020002400240200b280200220b4106490d0020044198026a280200210b20044194026a28020021040c010b20044194026a21040b2004450d04200b450d04200b41186c20046a220441746a220b2004417c6a22042802002019422088a7410274220a410275220910f302200b28020020042802004102746a201a200a1085051a2004200428020020096a3602000240201942ffffffff0383500d00201a10300b20180d060c090b200b450d040c050b418486c20041fc0041dc8ac2001050000b418486c20041fc0041dc8ac2001050000b418486c20041fc00418888c2001050000b418486c20041fc00419888c2001050000b20002802042204450d0020024190026a20002802002004200210f1042002280290024101460d00200228029c022104200228029802210a200228029402210b200241003a00a70202400240200b450d00200a20044102746a41900d6a28020021040240200b417f6a220b450d000340200420042f018e0d4102746a41900d6a2802002104200b417f6a220b0d000b0b20042f018e0d210b200241003602d0032002200b417f6a4100200b1b3602d803200220044100200b1b3602d403200241e8046a200241d0036a200241a7026a10e704200241d0036a200241e8046a4198011085051a200228028006210902400240200228028806220a200228028406220b2f018e0d4f0d00200b21040c010b03400240200b28020022040d00410021040c020b200941016a2109200b2f018c0d210a2004210b200a20042f018e0d4f0d000b0b200241e8046a41106a2004200a41186c6a220b41146a2218290200370300200241e8046a41086a200b410c6a221a290200370300200b41046a220b2902002119200b20022903d003370200201a200241d0036a41086a2903003702002018200241d0036a41106a290300370200200220193703e80420024190066a2004200a4107746a418c026a220b4180011085051a200b20174180011085051a201620024190066a4180011085051a02402009450d002009417f6a220b450d00200a41027420046a41940d6a2802002104034020042802900d2104200b417f6a220b0d000b0b200241a8026a200241e8046a4198011085051a0c010b200220043602f0042002200a3602ec04200241003602e804200241a8026a200241e8046a200241a7026a10e7040b20022802c402210420022902bc02211920022802b802211820022802b402211a20022802ac02210920022802a802211b20024198016a201541f8001085051a20002000280208417f6a360208024020022d00a702450d002000280204220b450d022000280200221c450d03200b2802900d210a2000201c417f6a3602002000200a360204200a4100360200200b10300b20044102460d00200241e8046a20024198016a41f8001085051a2019422088211902402009450d00201b10300b2019a7210902402018450d00201a10300b2002200436021c200220093602182014200241e8046a41f8001085052104024020094106490d0020022802202118024020022802242204450d002018200441186c6a210a20182104034002402004280200220b450d00200441046a280200450d00200b10300b0240200441106a28020041ffffffff0371450d002004410c6a28020010300b200441186a2204200a470d000b0b200941186c450d01201810300c010b2009450d002004200941186c6a210920132104034002402004417c6a220b280200220a450d002004280200450d00200a10300b0240200b41106a28020041ffffffff0371450d00200441086a28020010300b200441186a2104200b41186a2009470d000b0b02402002280204450d00200228020010300b2002280210450d02200228020c10300c020b41b2abc200412b41d0acc200102d000b41b7a2c200412141d8a2c200102d000b2008450d0302402003450d000240024002400240200720032f018e02490d0041002107034041002104024020032802002209450d00200741016a210a20032f018c02210b200921040b024041c00241900220071b450d00200310300b024020040d00410021030c050b200a210720042103200b20042f018e024f0d000b2004200b41186c6a41046a21090240200a0d00200421030c020b200b41027420046a4194026a28020021030240200a417f6a2207450d00034020032802900221032007417f6a22070d000b0b410021070c020b2003200741186c6a41046a2109200321042007210b0b200b41016a21070b2004200b41186c6a220441186a2802002112200441146a280200210c200441106a280200210d2004410c6a2802002111200441086a280200210e2009280200210f0b2008417f6a2108200f0d010c030b0b41b2abc200412b41d4a8c200102d000b00000b2008450d014100210003400240024002400240200720032f018e02490d0041002107034041002104024020032802002209450d00200741016a210a20032f018c02210b200921040b024041c00241900220071b450d00200310300b024020040d00410021030c050b200a210720042103200b20042f018e024f0d000b2004200b41186c6a41046a21090240200a0d00200421030c020b200b41027420046a4194026a28020021030240200a417f6a2207450d00034020032802900221032007417f6a22070d000b0b410021070c020b2003200741186c6a41046a2109200321042007210b0b200b41016a21070b2004200b41186c6a220441146a280200210c200441106a280200210d200441086a280200210e200928020021000b024020000d00410021050c050b0240200e450d00200010300b2008417f6a21080240200c450d00200d10300b2008450d020c000b0b2003450d020b41002104034020032802002107024041c00241900220041b450d00200310300b2004417f6a21042007210320070d000b410021050c010b41f588c20041d50141cc8ac2001050000b20024190076a240020050b1c00200128021841ec8ac20041102001411c6a28020028020c1100000b1c00200128021841f08fc200410c2001411c6a28020028020c1100000ba20a010a7f230041206b220224002000280200210320002001360200200220003602040240024002400240024002400240024002400240024002400240024002400240200320014d0d0002400240200028020422034125490d00200041106a28020021010c010b200321010b2001417f6a2204450d0c2001417e6a210541002101034002400240200341254922060d00200041106a28020021072000410c6a28020021080c010b200041096a2108200321070b200720014d0d02200141016a2107200820016a2d000021080240024020060d00200041106a2206280200220320074d0d0b200628020021032000410c6a22002802002106200028020020016a41016a2d000021000c010b200320074d0d0a200041096a2106200020016a410a6a2d000021000b200320014d0d03200620016a20084104742000411874411c76723a000020022802042100024020052001460d0020002802042103200721010c010b0b02400240200028020422014125490d00200041106a2203280200220120044d0d0b200328020021012000410c6a22002802002103200028020020046a2d000021000c010b200120044d0d0a200041096a220320046a2d000021000b200120044d0d03200320046a21010c0d0b200320014f0d0d200241043602082002410436020c200041046a210802400240200028020422074125490d00200041106a220328020021012000410c6a28020021060c010b200041096a21062007210120082103412421070b024020012007470d00200241106a2008410110bd02024020022802104101470d00200241186a2802000d0541d099c200411141e499c200102d000b200041106a220328020021012000410c6a28020021060b200620016a41003a00002003200328020041016a360200024002402002280204220328020422004125490d00200341106a28020021010c010b200021010b024020014102490d00200341086a21092001417e6a2101200228020c410771210a2002280208410771210b200341096a2104034002400240200041254922060d0020032802102107200328020c21080c010b20042108200021070b200720014d0d06200141016a2107200820016a2d000021080240024020060d002003280210220020074d0d0d200328020c20016a41016a2d0000200a76210620032802102100200328020c21050c010b200020074d0d0c200920016a41026a2d0000200a762106200421050b200020074d0d07200520016a41016a20062008200b74723a00002001417f6a210120032802042100200741014b0d000b0b0240024020004125490d00200341106a2201280200450d0c200128020021002003410c6a2201280200210320012802002d000021070c010b2000450d0b200341096a22032d000021070b200228020c21012000450d062003200741ff01712001410771763a00000c0d0b2001200741dc9dc2001033000b2001200341fc9dc2001033000b20042001419c9ec2001033000b102a000b2001200741a49bc2001033000b200141016a200041c49bc2001033000b4100410041bc9ec2001033000b200141016a200341ec9dc2001033000b20042001418c9ec2001033000b200141016a200041b49bc2001033000b4100410041ac9ec2001033000b0240024020034125490d00200041106a2201280200450d04200128020021032000410c6a2200280200210120002802002d000021000c010b2003450d03200041096a22012d000021000b20030d0041004100419c9ec2001033000b200120004104743a00000b200241206a24000f0b41004100418c9ec2001033000b882251027f027e017f017e017f017e017f027e017f017e017f017e017f027e017f017e017f017e017f027e017f017e017f017e017f027e017f017e017f017e017f027e017f017e017f017e017f017e017f017e017f017e017f027e017f017e017f017e017f037e017f027e017f017e017f017e017f027e017f017e017f017e017f017e017f027e017f017e017f017e017f037e017f027e017f017e017f017e017f037e137f230022022103200241a0046b41607122022400200129030021044200210520014200370300200141386a22062903002107200141306a22082903002109200141286a220a290300210b200141206a290300210c20014198016a220d290300210e20014190016a220f290300211020014188016a2211290300211220014180016a2903002113200141d8016a22142903002115200141d0016a22162903002117200141c8016a22182903002119200141c0016a290300211a20014198026a221b290300211c20014190026a221d290300211e20014188026a221f290300212020014180026a2903002121200141f8026a22222903002123200141f0026a22242903002125200141e8026a22262903002127200141e0026a2903002128200141b8036a2229290300212a200141b0036a222b290300212c200141a8036a222d290300212e200141a0036a222f2903002130200141c0036a2231290300213220014180036a2233290300213420014188036a290300213520014190036a2236290300213720014198036a22382903002139200141c0026a223a290300213b200141c8026a290300213c200141d0026a290300213d200141d8026a223e290300213f200141a0026a2903002140200141a8026a22412903002142200141b0026a22432903002144200141b8026a22452903002146200141e0016a2903002147200141e8016a22482903002149200141f0016a224a290300214b200141f8016a224c290300214d200141a0016a224e290300214f200141a8016a2903002150200141b0016a22512903002152200141b8016a22532903002154200141e0006a22552903002156200141e8006a2903002157200141f0006a2903002158200141f8006a2259290300215a200141c0006a290300215b200141c8006a225c290300215d200141d0006a225e290300215f200141d8006a2260290300216120012903082162200129031021632002200141186a226429030037039801200220633703900120022062370388012002200437038001200220613703182002205f3703102002205d3703082002205b3703002002205a37039804200220583703900420022057370388042002205637038004200220543703f803200220523703f003200220503703e8032002204f3703e0032002204d3703d8032002204b3703d003200220493703c803200220473703c003200220463703b803200220443703b003200220423703a803200220403703a0032002203f370398032002203d370390032002203c370388032002203b37038003200220393703f802200220373703f002200220353703e802200220343703e002410a21650240024002400240024002400240024002402004a70e09080102030405060700080b200241c8026a41106a200229039801370300200241c8026a41086a200229039001370300200241b0026a41086a200229038804370300200241b0026a41106a200229039004370300200241a0026a41086a20022903e80337030020024190026a41086a20022903f80337030020022002290388013703c80220022002290380043703b002200220022903e0033703a002200220022903f00337039002200241f8016a41106a20022903d803370300200241f8016a41086a20022903d003370300200241e0016a41086a200229038803370300200241e0016a41106a200229039003370300200241d0016a41086a20022903e802370300200220022903c8033703f80120022002290380033703e001200220022903e0023703d001200220022800f102360278200220022800f40236007b200241c8006a41206a202a370300200241c8006a41186a202c370300200241c8006a41106a202e3703002002203037035020022032370370200220393703482037a72165420721050c070b200241c8006a41186a200b370300200241d0006a200229039801370300200241c8006a41206a2009370300200241c8006a41286a20073703002002200c3703582002200228008c0136007b200220022800890136027820022002290390013703482062a721650c060b200241c8026a41106a200229039801370300200241c8026a41086a200229039001370300200241c8006a41086a2002290310370300200241c8006a41106a2002290318370300200241c8006a41286a200229039004370300200241c8006a41206a20022903880437030020022002290388013703c802200220022800013602782002200228000436007b200220022903083703482002200229038004370360205ba72165420121050c050b200241c8026a41106a200229039801370300200241c8026a41086a200229039001370300200241b0026a41086a200229038804370300200241b0026a41106a200229039004370300200241c8006a41186a200e3703002002201337034820022002290388013703c80220022002290380043703b00220022002280099043602782002200228009c0436007b2002201237035020022010370358200241c8006a41286a20022903e803370300200220022903e003370368205aa72165420221050c040b200241c8026a41106a200229039801370300200241c8026a41086a200229039001370300200241b0026a41086a200229038804370300200241b0026a41106a200229039004370300200241a0026a41086a20022903e80337030020022002290388013703c80220022002290380043703b002200220022903e0033703a002200220022800f40336007b200220022800f103360278200241c8006a41186a2017370300200241c8006a41106a2019370300200241c8006a41206a20153703002002201a37035020022047370370200220543703482052a72165420321050c030b200241c8026a41106a200229039801370300200241c8026a41086a200229039001370300200241b0026a41086a200229038804370300200241b0026a41106a200229039004370300200241a0026a41086a20022903e80337030020024190026a41086a20022903f80337030020022002290388013703c80220022002290380043703b002200220022903e0033703a002200220022903f00337039002200241c8006a41206a201e370300200241c8006a41186a2020370300200241c8006a41086a20022903d803370300200241c8006a41286a201c37030020022021370358200220022800cc0336007b200220022800c903360278200220022903d0033703482049a72165420421050c020b200241c8026a41106a200229039801370300200241c8026a41086a200229039001370300200241b0026a41086a200229038804370300200241b0026a41106a200229039004370300200241a0026a41086a20022903e80337030020024190026a41086a20022903f80337030020022002290388013703c80220022002290380043703b002200220022903e0033703a002200220022903f00337039002200241f8016a41106a20022903d803370300200241f8016a41086a20022903d003370300200241c8006a41086a20022903b003370300200241c8006a41106a20022903b803370300200241c8006a41206a200229038803370300200241c8006a41286a200229039003370300200220022903c8033703f801200220022800a103360278200220022800a40336007b200220022903a80337034820022002290380033703602040a72165420521050c010b200241c8026a41106a200229039801370300200241c8026a41086a200229039001370300200241b0026a41086a200229038804370300200241b0026a41106a200229039004370300200241a0026a41086a20022903e80337030020024190026a41086a20022903f80337030020022002290388013703c80220022002290380043703b002200220022903e0033703a002200220022903f00337039002200241f8016a41106a20022903d803370300200241f8016a41086a20022903d003370300200241e0016a41086a200229038803370300200241e0016a41106a200229039003370300200241c8006a41186a2023370300200220253703582002202737035020022028370348200220022903c8033703f80120022002290380033703e00120022002280099033602782002200228009c0336007b200241c8006a41286a20022903e802370300200220022903e002370368203fa72165420621050b20024180046a41086a2266200241c8026a41086a29030037030020024180046a41106a2267200241c8026a41106a290300370300200220022903c80237038004200241e0036a41086a2268200241b0026a41086a290300370300200241e0036a41106a2269200241b0026a41106a290300370300200220022903b0023703e00320024180036a41086a226a200241a0026a41086a290300370300200220022903a00237038003200241e0026a41086a226b20024190026a41086a29030037030020022002290390023703e002200241c0036a41106a226c200241f8016a41106a290300370300200241c0036a41086a226d200241f8016a41086a290300370300200220022903f8013703c003200241a0036a41106a226e200241e0016a41106a290300370300200241a0036a41086a226f200241e0016a41086a290300370300200220022903e0013703a003200241386a41086a2270200241d0016a41086a290300370300200220022903d001370338200241306a227120024180016a41306a290300370300200241286a227220024180016a41286a290300370300200241206a227320024180016a41206a290300370300200241186a227420024180016a41186a290300370300200241106a227520024180016a41106a290300370300200241086a227620024180016a41086a2903003703002002200229038001370300200020653a0000200041046a200228007b36000020002002280278360001200041306a200241c8006a41286a290300370000200041286a200241c8006a41206a290300370000200041206a200241c8006a41186a290300370000200041186a200241c8006a41106a290300370000200041106a200241c8006a41086a290300370000200041086a20022903483700002001109c0120602061370300205e205f370300205c205d3703002001205b3703402006200737030020082009370300200a200b3703002001200c370320200d200e370300200f2010370300201120123703002001201337038001200120053703002059205a3703002001200229038004370308200141106a206629030037030020642067290300370300205520022903e003370300205541086a2068290300370300205541106a2069290300370300204e200229038003370300204e41086a206a290300370300200120473703e0012014201537030020162017370300201820193703002001201a3703c001204520463703002043204437030020412042370300200120403703a002201b201c370300201d201e370300201f202037030020012021370380022053206b290300370300205120022903e002370300204820022903c003370300204a206d290300370300204c206c290300370300200120283703e002202620273703002024202537030020222023370300203e203f370300203a41106a206e290300370300203a41086a206f290300370300203a20022903a003370300203341086a2070290300370300203320022903383703002031207129030037030020292072290300370300202b2073290300370300202d2074290300370300202f20752903003703002038207629030037030020362002290300370300200324000b970401017f410021010240024002400240024002400240024002402000280200417f6a0e080001020304050607080b20002d0008450f0b20002d00080d0641014102200041c0006a2d00001b0f0b20002d00080d0541012101200041c0006a2d00000d0541024103200041f8006a2d00001b0f0b20002d00080d0441012101200041c0006a2d00000d0441022101200041f8006a2d00000d0441034104200041b0016a2d00001b0f0b20002d00080d0341012101200041c0006a2d00000d0341022101200041f8006a2d00000d0341032101200041b0016a2d00000d0341044105200041e8016a2d00001b0f0b20002d00080d0241012101200041c0006a2d00000d0241022101200041f8006a2d00000d0241032101200041b0016a2d00000d0241042101200041e8016a2d00000d0241054106200041a0026a2d00001b0f0b20002d00080d0141012101200041c0006a2d00000d0141022101200041f8006a2d00000d0141032101200041b0016a2d00000d0141042101200041e8016a2d00000d0141052101200041a0026a2d00000d0141064107200041d8026a2d00001b21010c010b20002d00080d0041012101200041c0006a2d00000d0041022101200041f8006a2d00000d0041032101200041b0016a2d00000d0041042101200041e8016a2d00000d0041052101200041a0026a2d00000d0041062101200041d8026a2d00000d004107410820004190036a2d00001b0f0b20010ba104010e7f23004180046b22042400024002400240200141186a28020022052f01ae2b2206200141106a28020022072f01ae2b220820021b2003490d00200841016a220920066a220a410c4f0d01200128020c210b2001280208210c2001280200210d2001280204220e2f01ae2b210f2007200a3b01ae2b200441086a200e200c41f8036c6a220141f8031085051a2001200141f8036a200f200c417f736a221041f8036c1086051a2007200841f8036c6a200441086a41f8031085051a2007200941f8036c6a2005200641f8036c1085051a200e41b02b6a2211200c41016a22014102746a200c410274220c20116a41086a20104102741086051a02402001200f4f0d00200c200e6a41b42b6a210c0340200c280200221020013b01ac2b2010200e3602a82b200c41046a210c200f200141016a2201470d000b0b200e200e2f01ae2b417f6a3b01ae2b0240200d4102490d002006200a20096b470d03200720094102746a41b02b6a200541b02b6a200641016a22104102741085051a200a20084d0d00200841027420076a41b42b6a21012009210c03402001280200220e200c3b01ac2b200e20073602a82b200141046a2101200c41016a210c2010417f6a22100d000b0b20051030200020073602042000200b36020020002009410020021b20036a36020820044180046a24000f0b419ca7c20041910141b0a8c200102d000b41a0a4c200412a41cca4c200102d000b41f8a2c200412841a0a3c200102d000beb0301097f230041f0076b220224000240024002400240200041186a2802002f01ae2b220320016a2204410c4f0d00200041106a28020022052f01ae2b22062001490d012005200620016b22073b01ae2b200041186a220528020020043b01ae2b20052802002208200141f8036c6a2008200341f8036c1086051a2006200741016a22036b22062001417f6a470d022005280200200041106a2208280200200341f8036c6a200641f8036c22091085051a20082802002106200241f8036a200041046a280200200028020841f8036c6a220a41f8031085051a200a2006200741f8036c6a41f8031086051a2002200241f8036a41f8031085052106200528020020096a200641f8031085051a200028020c21020240024020002802140d002002450d010c050b2002450d04200828020021072005280200220241b02b6a2200200141027422056a2000200420016b41027441046a1086051a2000200720034102746a41b02b6a20051085051a200441016a21044100210103402000280200220520013b01ac2b200520023602a82b200041046a21002004200141016a2201470d000b0b200641f0076a24000f0b4190a6c200413341c4a6c200102d000b41d4a6c200412741fca6c200102d000b41f8a2c200412841a0a3c200102d000b41d8a5c2004128418ca7c200102d000bd80b03077f027e037f230041e0076b2203240020012802002104200128020422052f01a6292106200341e0036a20052001280208220741d0036c6a220141d0031085051a2001200141d0036a20062007417f736a220841d0036c1086051a200541f0276a220920074104746a220141086a290300210a2001290300210b20012009200741016a220c4104746a20084104741086051a20052006417f6a22013b01a629200341106a200341e0036a41d0031085051a0240200141ffff037141044b0d0002400240024020052802a0292206450d00200441016a21090240024020052f01a42922080d0020062f01a6290d01200341f4036a4101360200200342013702e403200341f4a9c2003602e003200341043602c40720034188a4c2003602c0072003200341c0076a3602f003200341e0036a4190a4c200103a000b024020062008417f6a22084102746a41a8296a280200220d2f01a629200141ffff03716a41016a410b4b0d00200341f8036a2005360200200341f0036a200d360200200320043602f403200320043602ec03200320083602e803200320063602e403200320093602e003200341b0076a200341e0036a41012007108c010c040b200341f8036a2005360200200341f0036a200d360200200320043602f403200320043602ec03200320083602e803200320063602e403200320093602e003200341e0036a4101108d012003200c3602b8070c020b0240200141ffff0371200841027420066a41ac296a28020022012f01a6296a41016a410b4b0d00200341f8036a2001360200200341f0036a2005360200200320043602f403200320043602ec03200320083602e803200320063602e403200320093602e003200341b0076a200341e0036a41002007108c010c030b200341f8036a2001360200200341f0036a2005360200200320043602f403200320043602ec03200320083602e803200320063602e403200320093602e003200341e0036a4101108e010b200320073602b8070b200320053602b407200320043602b0070b20032802b807210720032802b007210420032802b40722052802a0292201450d0020012f01a629220941044b0d00200441016a21060240034020012802a0292208450d01200941ffff03712109200641016a210d024002400240024020012f01a429220c0d0020082f01a6290d01200341f4036a4101360200200342013702e403200341f4a9c2003602e003200341043602c40720034188a4c2003602c0072003200341c0076a3602f003200341e0036a4190a4c200103a000b2008200c417f6a220e4102746a41a8296a280200210c200320013602d807200320063602d4072003200c3602d007200320063602cc072003200e3602c807200320083602c4072003200d3602c00702402009200c2f01a6296a41016a410b4b0d00200341e0036a41186a200341c0076a41186a280200360200200341e0036a41106a200341c0076a41106a290300370300200341e0036a41086a200341c0076a41086a290300370300200320032903c0073703e003200341086a200341e0036a108f01200328020c2101200328020821060c030b200341c0076a410520096b108d010c010b2003200c41027420086a41ac296a280200220e3602d807200320063602d407200320013602d007200320063602cc072003200c3602c807200320083602c4072003200d3602c00702402009200e2f01a6296a41016a410b4b0d00200341e0036a41186a200341c0076a41186a280200360200200341e0036a41106a200341c0076a41106a290300370300200341e0036a41086a200341c0076a41086a290300370300200320032903c0073703e0032003200341e0036a108f0120032802042101200328020021060c020b200341c0076a410520096b108e010b410021010b2001450d0220012f01a629220941044d0d000c020b0b200941ffff03710d00200241013a00000b2000200341106a41d003108505220141d8036a200a3703002001200b3703d003200141e8036a2007360200200141e4036a2005360200200120043602e003200341e0076a24000bd80402077f047e200341d1036a2104034020022f01ae2b210520022106410021070240024003400240200722082005470d00200521080c030b024020032006109101220941ff01710d00024002400240024002400240024020032d00d003220920062d00d0032207470d002009417f6a0e06060102030405090b417f410120092007491b21090c060b20094102470d072004200641d1036a41041088052209450d07417f410120094100481b21090c050b20094103470d062004200641d1036a41081088052209450d06417f410120094100481b21090c040b20094104470d052004200641d1036a41101088052209450d05417f410120094100481b21090c030b20094105470d042004200641d1036a41201088052209450d04417f410120094100481b21090c020b20094106470d03024020032802d403200641d4036a280200200641dc036a280200220920032802dc032207200720094b1b108805220a0d00417f200720094720072009491b21090c020b417f4101200a4100481b21090c010b20094101470d02417f20032903d803220b20062903d803220c85200341e0036a290300220d200641e0036a290300220e8584420052200b200c54200d200e54200d200e511b1b21090b200841016a2107200641f8036a2106200941ff01714101460d000b200941187441187541016a0e020100010b20002001360204200041003602002000410c6a2008360200200041086a20023602000f0b02402001450d002001417f6a2101200220084102746a41b02b6a28020021020c010b0b200042013702002000410c6a2008360200200041086a20023602000b952f01017f230041d00a6b22022400024020002802000d00200041086a2100024002400240024002400240024002400240024020012802000e09010203040506070800010b200241c8036a200141086a10f10120024180046a200141c0006a10f101200241b8046a200141f8006a10f101200241f0046a200141b0016a10f101200241a8056a200141e8016a10f101200241e0056a200141a0026a10f10120024198066a200141d8026a10f101200241d0066a20014190036a10f101200241c0076a200241c8036a41306a29030037030020024188076a41306a200241c8036a41286a29030037030020024188076a41286a200241c8036a41206a29030037030020024188076a41206a200241c8036a41186a29030037030020024188076a41186a200241c8036a41106a29030037030020024188076a41106a200241c8036a41086a29030037030020024188076a41c0006a200229038004370300200241d0076a20024180046a41086a290300370300200241d8076a20024180046a41106a290300370300200241e0076a20024180046a41186a290300370300200241e8076a20024180046a41206a290300370300200241f0076a20024180046a41286a290300370300200241f8076a20024180046a41306a290300370300200220022903c80337039007200241b0086a200241b8046a41306a290300370300200241a8086a200241b8046a41286a290300370300200241a0086a200241b8046a41206a29030037030020024198086a200241b8046a41186a29030037030020024190086a200241b8046a41106a29030037030020024188086a200241b8046a41086a29030037030020024188076a41f8006a20022903b804370300200241e8086a200241f0046a41306a290300370300200241e0086a200241f0046a41286a290300370300200241d8086a200241f0046a41206a290300370300200241d0086a200241f0046a41186a290300370300200241c8086a200241f0046a41106a290300370300200241c0086a200241f0046a41086a29030037030020024188076a41b0016a20022903f004370300200241a0096a200241a8056a41306a29030037030020024198096a200241a8056a41286a29030037030020024190096a200241a8056a41206a29030037030020024188096a200241a8056a41186a29030037030020024180096a200241a8056a41106a290300370300200241f8086a200241a8056a41086a29030037030020024188076a41e8016a20022903a805370300200241d8096a200241e0056a41306a290300370300200241d0096a200241e0056a41286a290300370300200241c8096a200241e0056a41206a290300370300200241c0096a200241e0056a41186a290300370300200241b8096a200241e0056a41106a290300370300200241b0096a200241e0056a41086a29030037030020024188076a41a0026a20022903e005370300200241900a6a20024198066a41306a290300370300200241880a6a20024198066a41286a290300370300200241800a6a20024198066a41206a290300370300200241f8096a20024198066a41186a290300370300200241f0096a20024198066a41106a290300370300200241e8096a20024198066a41086a29030037030020024188076a41d8026a200229039806370300200241c80a6a200241d0066a41306a290300370300200241c00a6a200241d0066a41286a290300370300200241b80a6a200241d0066a41206a290300370300200241b00a6a200241d0066a41186a290300370300200241a80a6a200241d0066a41106a290300370300200241a00a6a200241d0066a41086a29030037030020024188076a4190036a20022903d00637030020024208370388070c080b20024200370388070c070b200241d0066a200141086a10f101200241c0076a200241d0066a41306a29030037030020024188076a41306a200241d0066a41286a29030037030020024188076a41286a200241d0066a41206a29030037030020024188076a41206a200241d0066a41186a29030037030020024188076a41186a200241d0066a41106a29030037030020024188076a41106a200241d0066a41086a2903003703002002420137038807200220022903d006370390070c060b20024198066a200141086a10f101200241d0066a200141c0006a10f101200241c0076a20024198066a41306a29030037030020024188076a41306a20024198066a41286a29030037030020024188076a41286a20024198066a41206a29030037030020024188076a41206a20024198066a41186a29030037030020024188076a41186a20024198066a41106a29030037030020024188076a41106a20024198066a41086a29030037030020024188076a41c0006a20022903d006370300200241d0076a200241d0066a41086a290300370300200241d8076a200241d0066a41106a290300370300200241e0076a200241d0066a41186a290300370300200241e8076a200241d0066a41206a290300370300200241f0076a200241d0066a41286a290300370300200241f8076a200241d0066a41306a29030037030020022002290398063703900720024202370388070c050b200241e0056a200141086a10f10120024198066a200141c0006a10f101200241d0066a200141f8006a10f101200241c0076a200241e0056a41306a29030037030020024188076a41306a200241e0056a41286a29030037030020024188076a41286a200241e0056a41206a29030037030020024188076a41206a200241e0056a41186a29030037030020024188076a41186a200241e0056a41106a29030037030020024188076a41106a200241e0056a41086a29030037030020024188076a41c0006a200229039806370300200241d0076a20024198066a41086a290300370300200241d8076a20024198066a41106a290300370300200241e0076a20024198066a41186a290300370300200241e8076a20024198066a41206a290300370300200241f0076a20024198066a41286a290300370300200241f8076a20024198066a41306a290300370300200220022903e00537039007200241b0086a200241d0066a41306a290300370300200241a8086a200241d0066a41286a290300370300200241a0086a200241d0066a41206a29030037030020024198086a200241d0066a41186a29030037030020024190086a200241d0066a41106a29030037030020024188086a200241d0066a41086a29030037030020024188076a41f8006a20022903d00637030020024203370388070c040b200241a8056a200141086a10f101200241e0056a200141c0006a10f10120024198066a200141f8006a10f101200241d0066a200141b0016a10f101200241c0076a200241a8056a41306a29030037030020024188076a41306a200241a8056a41286a29030037030020024188076a41286a200241a8056a41206a29030037030020024188076a41206a200241a8056a41186a29030037030020024188076a41186a200241a8056a41106a29030037030020024188076a41106a200241a8056a41086a29030037030020024188076a41c0006a20022903e005370300200241d0076a200241e0056a41086a290300370300200241d8076a200241e0056a41106a290300370300200241e0076a200241e0056a41186a290300370300200241e8076a200241e0056a41206a290300370300200241f0076a200241e0056a41286a290300370300200241f8076a200241e0056a41306a290300370300200220022903a80537039007200241b0086a20024198066a41306a290300370300200241a8086a20024198066a41286a290300370300200241a0086a20024198066a41206a29030037030020024198086a20024198066a41186a29030037030020024190086a20024198066a41106a29030037030020024188086a20024198066a41086a29030037030020024188076a41f8006a200229039806370300200241e8086a200241d0066a41306a290300370300200241e0086a200241d0066a41286a290300370300200241d8086a200241d0066a41206a290300370300200241d0086a200241d0066a41186a290300370300200241c8086a200241d0066a41106a290300370300200241c0086a200241d0066a41086a29030037030020024188076a41b0016a20022903d00637030020024204370388070c030b200241f0046a200141086a10f101200241a8056a200141c0006a10f101200241e0056a200141f8006a10f10120024198066a200141b0016a10f101200241d0066a200141e8016a10f101200241c0076a200241f0046a41306a29030037030020024188076a41306a200241f0046a41286a29030037030020024188076a41286a200241f0046a41206a29030037030020024188076a41206a200241f0046a41186a29030037030020024188076a41186a200241f0046a41106a29030037030020024188076a41106a200241f0046a41086a29030037030020024188076a41c0006a20022903a805370300200241d0076a200241a8056a41086a290300370300200241d8076a200241a8056a41106a290300370300200241e0076a200241a8056a41186a290300370300200241e8076a200241a8056a41206a290300370300200241f0076a200241a8056a41286a290300370300200241f8076a200241a8056a41306a290300370300200220022903f00437039007200241b0086a200241e0056a41306a290300370300200241a8086a200241e0056a41286a290300370300200241a0086a200241e0056a41206a29030037030020024198086a200241e0056a41186a29030037030020024190086a200241e0056a41106a29030037030020024188086a200241e0056a41086a29030037030020024188076a41f8006a20022903e005370300200241e8086a20024198066a41306a290300370300200241e0086a20024198066a41286a290300370300200241d8086a20024198066a41206a290300370300200241d0086a20024198066a41186a290300370300200241c8086a20024198066a41106a290300370300200241c0086a20024198066a41086a29030037030020024188076a41b0016a200229039806370300200241a0096a200241d0066a41306a29030037030020024198096a200241d0066a41286a29030037030020024190096a200241d0066a41206a29030037030020024188096a200241d0066a41186a29030037030020024180096a200241d0066a41106a290300370300200241f8086a200241d0066a41086a29030037030020024188076a41e8016a20022903d00637030020024205370388070c020b200241b8046a200141086a10f101200241f0046a200141c0006a10f101200241a8056a200141f8006a10f101200241e0056a200141b0016a10f10120024198066a200141e8016a10f101200241d0066a200141a0026a10f101200241c0076a200241b8046a41306a29030037030020024188076a41306a200241b8046a41286a29030037030020024188076a41286a200241b8046a41206a29030037030020024188076a41206a200241b8046a41186a29030037030020024188076a41186a200241b8046a41106a29030037030020024188076a41106a200241b8046a41086a29030037030020024188076a41c0006a20022903f004370300200241d0076a200241f0046a41086a290300370300200241d8076a200241f0046a41106a290300370300200241e0076a200241f0046a41186a290300370300200241e8076a200241f0046a41206a290300370300200241f0076a200241f0046a41286a290300370300200241f8076a200241f0046a41306a290300370300200220022903b80437039007200241b0086a200241a8056a41306a290300370300200241a8086a200241a8056a41286a290300370300200241a0086a200241a8056a41206a29030037030020024198086a200241a8056a41186a29030037030020024190086a200241a8056a41106a29030037030020024188086a200241a8056a41086a29030037030020024188076a41f8006a20022903a805370300200241e8086a200241e0056a41306a290300370300200241e0086a200241e0056a41286a290300370300200241d8086a200241e0056a41206a290300370300200241d0086a200241e0056a41186a290300370300200241c8086a200241e0056a41106a290300370300200241c0086a200241e0056a41086a29030037030020024188076a41b0016a20022903e005370300200241a0096a20024198066a41306a29030037030020024198096a20024198066a41286a29030037030020024190096a20024198066a41206a29030037030020024188096a20024198066a41186a29030037030020024180096a20024198066a41106a290300370300200241f8086a20024198066a41086a29030037030020024188076a41e8016a200229039806370300200241d8096a200241d0066a41306a290300370300200241d0096a200241d0066a41286a290300370300200241c8096a200241d0066a41206a290300370300200241c0096a200241d0066a41186a290300370300200241b8096a200241d0066a41106a290300370300200241b0096a200241d0066a41086a29030037030020024188076a41a0026a20022903d00637030020024206370388070c010b20024180046a200141086a10f101200241b8046a200141c0006a10f101200241f0046a200141f8006a10f101200241a8056a200141b0016a10f101200241e0056a200141e8016a10f10120024198066a200141a0026a10f101200241d0066a200141d8026a10f101200241c0076a20024180046a41306a29030037030020024188076a41306a20024180046a41286a29030037030020024188076a41286a20024180046a41206a29030037030020024188076a41206a20024180046a41186a29030037030020024188076a41186a20024180046a41106a29030037030020024188076a41106a20024180046a41086a29030037030020024188076a41c0006a20022903b804370300200241d0076a200241b8046a41086a290300370300200241d8076a200241b8046a41106a290300370300200241e0076a200241b8046a41186a290300370300200241e8076a200241b8046a41206a290300370300200241f0076a200241b8046a41286a290300370300200241f8076a200241b8046a41306a290300370300200220022903800437039007200241b0086a200241f0046a41306a290300370300200241a8086a200241f0046a41286a290300370300200241a0086a200241f0046a41206a29030037030020024198086a200241f0046a41186a29030037030020024190086a200241f0046a41106a29030037030020024188086a200241f0046a41086a29030037030020024188076a41f8006a20022903f004370300200241e8086a200241a8056a41306a290300370300200241e0086a200241a8056a41286a290300370300200241d8086a200241a8056a41206a290300370300200241d0086a200241a8056a41186a290300370300200241c8086a200241a8056a41106a290300370300200241c0086a200241a8056a41086a29030037030020024188076a41b0016a20022903a805370300200241a0096a200241e0056a41306a29030037030020024198096a200241e0056a41286a29030037030020024190096a200241e0056a41206a29030037030020024188096a200241e0056a41186a29030037030020024180096a200241e0056a41106a290300370300200241f8086a200241e0056a41086a29030037030020024188076a41e8016a20022903e005370300200241d8096a20024198066a41306a290300370300200241d0096a20024198066a41286a290300370300200241c8096a20024198066a41206a290300370300200241c0096a20024198066a41186a290300370300200241b8096a20024198066a41106a290300370300200241b0096a20024198066a41086a29030037030020024188076a41a0026a200229039806370300200241900a6a200241d0066a41306a290300370300200241880a6a200241d0066a41286a290300370300200241800a6a200241d0066a41206a290300370300200241f8096a200241d0066a41186a290300370300200241f0096a200241d0066a41106a290300370300200241e8096a200241d0066a41086a29030037030020024188076a41d8026a20022903d00637030020024207370388070b2002200020024188076a10e00320022903004209510d0020024188076a200241c8031085051a20024188076a109c010b200241d00a6a24000b9003000240024020002802000d0002400240024002400240024002400240200041086a2802000e080900010203040506070b200041106a10f4010f0b200041106a10f401200041c8006a10f4010f0b200041106a10f401200041c8006a10f40120004180016a10f4010f0b200041106a10f401200041c8006a10f40120004180016a10f401200041b8016a10f4010f0b200041106a10f401200041c8006a10f40120004180016a10f401200041b8016a10f401200041f0016a10f4010f0b200041106a10f401200041c8006a10f40120004180016a10f401200041b8016a10f401200041f0016a10f401200041a8026a10f4010f0b200041106a10f401200041c8006a10f40120004180016a10f401200041b8016a10f401200041f0016a10f401200041a8026a10f401200041e0026a10f4010f0b200041106a10f401200041c8006a10f40120004180016a10f401200041b8016a10f401200041f0016a10f401200041a8026a10f401200041e0026a10f40120004198036a10f4010f0b200041086a280200450d00200028020410300b0be212030d7f027e077f230041a00e6b22032400200041d8036a28020021040240024002400240024002400240024002400240024002400240024002400240024002400240200041d4036a28020022052f01a6292206410a4b0d002005200441d0036c6a2107200441016a220820064d0d012007200041d0031085051a200541f0276a21070c020b410521064100210902400240200441054f0d0041042106200421070c010b41052107024002402004417b6a0e020201000b200441796a210741012109410621060c010b41002107410121090b20002802d003210a41a829102f220b450d05200b41003b01a629200b41003602a029200b20052f01a629220c2006417f736a22043b01a6292005200641d0036c6a2208280204210d2008280200210e200341d80a6a200841086a41c8031085051a2004410c4f0d06200c200641016a22086b2004470d07200541f0276a220f20064104746a220c41086a2903002110200c2903002111200b2005200841d0036c6a200441d0036c108505220c41f0276a200f20084104746a20044104741085051a200520063b01a62920034190076a200341d80a6a41c8031085051a200c200520091b2204200741d0036c6a210602400240200741016a220920042f01a62922084d0d002006200041d0031085051a200441f0276a21060c010b2004200941d0036c6a2006200820076b220f41d0036c1086051a2006200041d0031085051a200441f0276a220620094104746a200620074104746a200f4104741086051a0b200620074104746a22122002370308201220013703002004200841016a3b01a629200341c8036a20034190076a41c8031085051a2003200341c8036a41c803108505210f20052802a02922040d024100210a0c030b2005200841d0036c6a2007200620046b220c41d0036c1086051a2007200041d0031085051a200541f0276a220720084104746a200720044104746a200c4104741086051a0b200720044104746a22122002370308201220013703002005200641016a3b01a6290c0e0b201121012010210241002107200c2113200d2114200e2115034020042109200a2007470d0620052f01a429210820092f01a6292216410b490d024100210c41042105024020084105490d0020082105024002402008417b6a0e020201000b200841796a21084101210c410621050c010b410021084101210c410521050b41d829102f220b450d03200b41003b01a629200b41003602a029200b20092f01a62922172005417f736a22043b01a6292009200541d0036c6a2206280204210d2006280200210e200f41d80a6a200641086a41c8031085051a2004410c4f0d072017200541016a22076b2004470d08200941f0276a221720054104746a221841086a290300211020182903002111200b200641d0036a200441d0036c108505220641f0276a201720074104746a20044104741085051a200920053b01a629200f4190076a200f41d80a6a41c8031085051a20062f01a629220441016a21172004410c4f0d09201620056b22052017470d0a200a41016a210a200641a8296a200920074102746a41a8296a20054102741085051a4100210502400340200620054102746a41a8296a280200220720053b01a429200720063602a029200520044f0d01200520052004496a220520044d0d000b0b200f41c8036a200f4190076a41c8031085051a20062009200c1b22072f01a6292105200f41d80a6a200f41c8031085051a0240200841016a220420054b22170d002007200441d0036c6a2007200841d0036c6a200520086b41d0036c1086051a0b2007200841d0036c6a220c2014360204200c2015360200200c41086a200f41d80a6a41c8031085051a200741f0276a2116024020170d00201620044104746a201620084104746a200520086b4104741086051a0b200541016a210c201620084104746a2216200237030820162001370300200741a8296a21160240200841026a2215200541026a22144f0d00201620154102746a201620044102746a200520086b4102741086051a0b201620044102746a20133602002007200c3b01a6290240200420144f0d00200720084102746a41ac296a2105034020052802002204200841016a22083b01a429200420073602a029200541046a2105200c2008470d000b0b200f200f41c8036a41c8031085051a201121012010210220092105200a210720062113200d2114200e211520092802a02922040d000b0b200f41d80a6a200f41c8031085051a20002802dc0322042802042206450d092004280200210741d829102f2205450d01200520063602a829200541003b01a629200541003602a029200641003b01a429200620053602a029200420053602042004200741016a3602002007200a470d0a20052f01a6292206410b4f0d0b2005200641016a22073b01a6292005200641d0036c6a2208200d3602042008200e360200200841086a200f41d80a6a41c8031085051a200520064104746a220641f8276a2010370300200641f0276a2011370300200541a8296a20074102746a200b360200200b20073b01a429200b20053602a0292004200428020841016a3602080c0d0b200f41d80a6a200f41c8031085051a0240201620084d0d002009200841d0036c6a220541d0036a2005201620086b41d0036c1086051a0b201641016a21062009200841d0036c6a2205201436020420052015360200200541086a200f41d80a6a41c8031085051a200941f0276a220720084104746a2104200841016a210502400240201620084b0d002004200137030020042002370308200941a8296a2104201641026a21070c010b200720054104746a2004201620086b22074104741086051a20042002370308200420013703002008410274200941a8296a22046a41086a200420054102746a20074102741086051a201641026a21070b2004200541027422086a2013360200200920063b01a629200520074f0d0b200820096a41a8296a210403402004280200220620053b01a429200620093602a029200441046a21042007200541016a2205470d000c0c0b0b102a000b2004410b41e8a2c2001042000b41f8a2c200412841a0a3c200102d000b41b0a3c200413541e8a3c200102d000b2004410b41e8a2c2001042000b41f8a2c200412841a0a3c200102d000b2017410c41f8a3c2001042000b41f8a2c200412841a0a3c200102d000b41b2abc200412b41e0abc200102d000b41eaa0c2004130419ca1c200102d000b41aca1c200412041cca1c200102d000b20002802dc032205200528020841016a3602080b200341a00e6a240020120b5801017e02400240200341c00071450d0020022003413f71ad882101420021020c010b2003450d002002410020036b413f71ad8620012003413f71ad220488842101200220048821020b20002001370300200020023703080b6e01067e2000200342ffffffff0f832205200142ffffffff0f8322067e22072003422088220820067e22062005200142208822097e7c22054220867c220a3703002000200820097e200420017e200320027e7c7c2005200654ad4220862005422088847c200a200754ad7c3703080b3601017f02402002450d00200021030340200320012d00003a0000200141016a2101200341016a21032002417f6a22020d000b0b20000b6f01017f02400240200020016b20024f0d002001417f6a21012000417f6a21030340200320026a200120026a2d00003a00002002417f6a22020d000c020b0b2002450d00200021030340200320012d00003a0000200141016a2101200341016a21032002417f6a22020d000b0b20000b2c01017f02402002450d00200021030340200320013a0000200341016a21032002417f6a22020d000b0b20000b4a01037f4100210302402002450d000240034020002d0000220420012d00002205470d01200041016a2100200141016a21012002417f6a2202450d020c000b0b200420056b21030b20030b5801017e02400240200341c00071450d0020012003413f71ad862102420021010c010b2003450d0020022003413f71ad2204862001410020036b413f71ad88842102200120048621010b20002001370300200020023703080b0b88af020300418080c0000be0ac02100010001c00000018020000050000006c6962726172792f616c6c6f632f7372632f7261775f7665632e7273c00010004b0000005a010000130000002b00000004000000040000002c0000002d0000002e0000006120666f726d617474696e6720747261697420696d706c656d656e746174696f6e2072657475726e656420616e206572726f72002b00000000000000010000002f000000a800100018000000420200001c0000006c6962726172792f616c6c6f632f7372632f666d742e72732f72757374632f643665616561316338383630616462353330326432666261616434303965333635383561623231372f6c6962726172792f636f72652f7372632f666d742f6d6f642e72736c6962726172792f616c6c6f632f7372632f7665632f6d6f642e7273292073686f756c64206265203c3d206c656e2028697320000068011000150000002701100017000000eb0e1000010000000b0110001c000000d50600000d000000606174602073706c697420696e6465782028697320000000a001100020000000c0011000120000002b000000000000000100000030000000696e646578206f7574206f6620626f756e64733a20746865206c656e20697320206275742074686520696e6465782069732030303031303230333034303530363037303830393130313131323133313431353136313731383139323032313232323332343235323632373238323933303331333233333334333533363337333833393430343134323433343434353436343734383439353035313532353335343535353635373538353936303631363236333634363536363637363836393730373137323733373437353736373737383739383038313832383338343835383638373838383939303931393239333934393539363937393839390000ac02100010000000bc0210002200000072616e676520656e6420696e64657820206f7574206f662072616e676520666f7220736c696365206f66206c656e677468205b2e2e2e5d00440310000b0000004a0d1000160000008303100001000000280d10000e000000360d1000040000003a0d1000100000008303100001000000440310000b0000004f0310002600000075031000080000007d0310000600000083031000010000006279746520696e64657820206973206e6f742061206368617220626f756e646172793b20697420697320696e7369646520202862797465732029206f662060608c031000020000002e2e0000c20310001b0000006500000014000000b003100012000000bc0210002200000072616e676520737461727420696e646578206c6962726172792f636f72652f7372632f666d742f6e756d2e727300010305050606030706080809110a1c0b190c140d100e0d0f0410031212130916011705180219031a071c021d011f1620032b032c022d0b2e01300331023201a702a902aa04ab08fa02fb05fd04fe03ff090046091000250000000a0000001c000000ad78798b8da23057588b8c901c1ddd0e0f4b4cfbfc2e2f3f5c5d5fb5e2848d8e9192a9b1babbc5c6c9cadee4e5ff00041112293134373a3b3d494a5d848e92a9b1b4babbc6cacecfe4e500040d0e11122931343a3b4546494a5e646584919b9dc9cecf0d112945495764658d91a9b4babbc5c9dfe4e5f00d11454964658084b2bcbebfd5d7f0f183858ba4a6bebfc5c7cecfdadb4898bdcdc6cecf494e4f57595e5f898e8fb1b6b7bfc1c6c7d71116175b5cf6f7feff800d6d71dedf0e0f1f6e6f1c1d5f7d7eaeafbbbcfa16171e1f46474e4f585a5c5e7e7fb5c5d4d5dcf0f1f572738f7475962f5f262e2fa7afb7bfc7cfd7df9a409798308f1fc0c1ceff4e4f5a5b07080f10272feeef6e6f373d3f42459091feff536775c8c9d0d1d8d9e7feff00205f2282df048244081b04061181ac0e80ab35280b80e003190801042f043404070301070607110a500f1207550703041c0a090308030703020303030c0405030b06010e15053a0311070605100757070207150d500443032d03010411060f0c3a041d255f206d046a2580c80582b0031a0682fd035907150b1709140c140c6a060a061a0659072b05460a2c040c040103310b2c041a060b0380ac060a06213f4c042d0374083c030f033c0738082b0582ff1118082f112d032010210f808c048297190b158894052f053b07020e180980b32d740c80d61a0c0580ff0580df0cee0d03848d033709815c1480b80880cb2a38030a06380846080c06740b1e035a0459098083181c0a16094c04808a06aba40c170431a10481da26070c050580a511816d1078282a064c04808d0480be031b030f0d0046091000250000001a000000360000000006010103010402080809020a050b020e041001110212051311140115021702190d1c051d0824016a036b02bc02d102d40cd509d602d702da01e005e102e802ee20f004f802f902fa02fb010c273b3e4e4f8f9e9e9f060709363d3e56f3d0d1041418363756577faaaeafbd35e01287898e9e040d0e11122931343a4546494a4e4f64655cb6b71b1c07080a0b141736393aa8a9d8d909379091a8070a3b3e66698f926f5feeef5a629a9b2728559da0a1a3a4a7a8adbabcc4060b0c151d3a3f4551a6a7cccda007191a22253e3fc5c604202325262833383a484a4c50535556585a5c5e606365666b73787d7f8aa4aaafb0c0d0aeaf79cc6e6f935e227b0503042d036603012f2e80821d03310f1c0424091e052b0544040e2a80aa06240424042808340b018090813709160a088098390363080930160521031b05014038044b052f040a070907402027040c0936033a051a07040c07504937330d33072e080a8126524e28082a561c1417094e041e0f430e19070a0648082709750b3f412a063b050a0651060105100305808b621e48080a80a65e22450b0a060d1339070a362c041080c03c64530c48090a46451b4808531d398107460a1d03474937030e080a0639070a81361980b7010f320d839b66750b80c48abc842f8fd18247a1b98239072a040260260a460a28051382b05b654b0439071140050b020e97f80884d62a09a2f7811f3103110408818c89046b050d03090710936080f60a73086e1746809a140c570919808781470385420f1585502b80d52d031a040281703a0501850080d7294c040a04028311444c3d80c23c06010455051b3402810e2c04640c560a80ae381d0d2c040907020e06809a83d8080d030d03740c59070c140c0438080a062808224e81540c15030305070919070709030d072980cb250a84066c6962726172792f636f72652f7372632f756e69636f64652f7072696e7461626c652e7273007c09100016000000920910000d000000736c69636520696e64657820737461727473206174202062757420656e647320617420000003000083042000910560005d13a0001217a01e0c20e01eef2c202b2a30a02b6fa6602c02a8e02c1efbe02d00fea0359effe035fd016136010aa136240d6137ab0ee1382f182139301c6146f31ea14af06a614e4f6fa14e9dbc214f65d1e14f00da215000e0e15130e16153ece2a154d0e8e15420002e55f001bf55000d100028000000520000003e00000000700007002d0101010201020101480b30151001650702060202010423011e1b5b0b3a09090118040109010301052b03770f0120370101010408040103070a021d013a0101010204080109010a021a010202390104020402020303011e0203010b0239010405010204011402160601013a0101020104080107030a021e013b0101010c0109012801030139030503010407020b021d013a01020102010301050207020b021c02390201010204080109010a021d0148010401020301010801510102070c08620102090b064a021b0101010101370e01050102050b0124090166040106010202021902040310040d01020206010f01000300031d031d021e02400201070801020b09012d03770222017603040209010603db0202013a010107010101010208060a020130113f0430070101050128090c0220040202010338010102030101033a0802029803010d0107040106010302c63a01050001c32100038d016020000669020004010a200250020001030104011902050197021a120d012608190b2e0330010204020227014306020202020c0108012f01330101030202050201012a020801ee010201040100010010101000020001e201950500030102050428030401a50200040002990bb001360f3803310402024503240501083e010c0234090a0402015f03020101020601a0010308150239020101010116010e070305c308020301011701510102060101020101020102eb010204060201021b025508020101026a0101010206010165030204010500090102f5010a0201010401900402020401200a280602040801090602032e0d010200070106010152160207010201027a060301010201070101480203010101000200053b0700013f0451010002000101030405080802071e0494030037043208010e011605010f000701110207010201050007000400076d07006080f000000000000d1000280000004b00000028000000000d10002800000057000000160000006c6962726172792f636f72652f7372632f756e69636f64652f756e69636f64655f646174612e7273626567696e203c3d20656e642028203c3d2029207768656e20736c6963696e672060206973206f7574206f6620626f756e6473206f6620603d3d0000a40d100019000000bd0d100012000000cf0d10000c0000008303100001000000a40d100019000000bd0d100012000000cf0d10000c000000db0d100003000000617373657274696f6e206661696c65643a2060286c6566742020726967687429600a20206c6566743a2060602c0a2072696768743a2060603a20426f72726f774572726f72426f72726f774d75744572726f7270616e69636b656420617420002d0e1000010000002e0e1000030000003c871000000000002c0e1000010000002c0e1000010000003a27272c2020202020000000580e1000200000003200000021000000580e10002000000033000000120000006c6962726172792f636f72652f7372632f666d742f6275696c646572732e7273880e1000200000005a000000050000006c6962726172792f636f72652f7372632f736c6963652f6d656d6368722e7273207b202c20207b0a2b0000000c000000040000003100000032000000330000002c0a00002b00000004000000040000003400000035000000360000007d207d28280a2c290a5d617373657274696f6e206661696c65643a202a63757272203e2031390000c20310001b000000e6010000050000005b000000380f1000150000004d0f10002b000000eb0e100001000000736f7572636520736c696365206c656e67746820282920646f6573206e6f74206d617463682064657374696e6174696f6e20736c696365206c656e67746820282b0000000400000004000000370000004c61796f757473697a655f616c69676e5f0000002b0000000400000004000000380000002b00000000000000010000003a0000002b00000000000000010000003b00000006de3d8a54d27e44a9d5ce189618f22db4b49d95320d9021994c850f25b8e38548726d704368616e6e656c002b00000004000000040000000f0000002b00000004000000040000003c000000526f6f744d69736d61746368436f6e666967446d714d71634865616452656c61794469737061746368517565756553697a6548726d70496e67726573734368616e6e656c496e64657848726d704567726573734368616e6e656c496e646578416273656e7450726f6f664465636f6465456e7669726f6e6d656e74616c2065787465726e616c6974696573206e6f74207365742e95771000440000002b0000002d0000004e6f206f70656e207472616e73616374696f6e20746861742063616e20626520726f6c6c6564206261636b2e9577100044000000c30000000a0000004e6f206f70656e207472616e73616374696f6e20746861742063616e20626520636f6d6d69747465642e00009577100044000000c80000000a0000004c1c10002a000000a40000002b0000002b00000008000000040000003d0000003e0000003f0000004000000041000000420000004300000044000000a00000000800000045000000460000002b0000000c000000040000004700000048000000490000004a0000004b0000004c0000004d0000002b0000000c000000040000004e0000004f00000000000000000000000012100005000000000000000000000000121000050000000000000001000000020000000000000000000000081210000700000000000000010000007368656c6c000000df6acb689907609b0300000037e397fc7c91f5e40100000040fe3ad401f8959a05000000d2bc9897eed08f1502000000f78b278be53f454c02000000ab3c0572291feb8b01000000ea93e3f16f3d69620100000053797374656d50617261636861696e53797374656d50617261636861696e496e666f43756d756c757358636d2b00000000000000010000005000000051000000520000002b0000000000000001000000500000005000000052000000446973616c6c6f775369676e65640000000000005c121000060000000000000053000000000000000000000000000000000000000000000000000000000000005400000000000000000000000000000055000000000000000000000000000000560000000000000000000000000000005700000000000000000000000000000000000000621210000f000000000000005800000000000000000000000000000000000000000000000000000000000000590000000000000000000000000000005a0000000000000000000000000000005b0000000000000000000000000000005c00000000000000000000000100000000000000711210000d000000000000005d0000000000000000000000000000000000000000000000000000000200000000000000000000000000000002000000000000000000000000000000000000005b0000000000000000000000000000005b000000000000000000000002000000000000007e1210000a000000000000005e000000000000000000000000000000000000000000000000000000000000005b0000000000000000000000000000005f0000000000000000000000000000005b0000000000000000000000000000005b0000000000000000000000030000006c6f636174696f6e20616e6420726573756c7420626567696e20657175616c3b2073616d652073697a653b2071656400c8141000660000009e0000001f0000002f636172676f2d686f6d652f6769742f636865636b6f7574732f706f6c6b61646f742d343033386632376435653465613265382f363239623836392f78636d2f78636d2d6275696c6465722f7372632f6c6f636174696f6e5f636f6e76657273696f6e2e7273616c7265616479206d757461626c7920626f72726f77656400002b00000000000000010000003a000000a81510005900000021000000170000002b00000000000000010000003b000000a8151000590000002300000019000000a8151000590000002800000018000000cc721000530000006d0000000b0000002f636172676f2d686f6d652f72656769737472792f7372632f6769746875622e636f6d2d316563633632393964623965633832332f656e7669726f6e6d656e74616c2d312e312e322f7372632f6c6f63616c5f6b65792e7273000000cc721000530000008a00000016000000cc721000530000008f00000029000000b4161000190000004c1c10002a0000008c0200000d00000093161000210000004c1c10002a000000900200000d0000006c161000270000004c1c10002a000000940200000d00000052656c617920706172656e742073746f7261676520726f6f7420646f65736e2774206d6174636852656c617920706172656e74206e756d62657220646f65736e2774206d61746368506172656e74206865616420646f65736e2774206d617463680000002b00000004000000040000006000000061000000620000002c17100066000000200000000e000000617373657274696f6e206661696c65643a206d6964203c3d2073656c662e6c656e2829009c8810004d000000ff050000090000002f72757374632f643665616561316338383630616462353330326432666261616434303965333635383561623231372f6c6962726172792f616c6c6f632f7372632f636f6c6c656374696f6e732f7665635f64657175652f72696e675f736c696365732e727348617368207461626c65206361706163697479206f766572666c6f770000c0171000530000004f000000280000002f636172676f2d686f6d652f72656769737472792f7372632f6769746875622e636f6d2d316563633632393964623965633832332f6861736862726f776e2d302e392e312f7372632f7261772f6d6f642e72730000000000f4181000130000000000000008191000010000000000000000000000101910001400000000000000241910000100000000000000000000002c191000060000000000000034191000020000000000000000000000441910001a0000000000000060191000010000000000000000000000681910001d0000000000000088191000010000000000000000000000901910000c000000000000009c191000010000000000000000000000a41910001100000000000000b8191000010000000000000000000000c01910000c00000000000000cc19100001000000000000004f7665726c617070696e67557067726164657300a51b10004600000050726f686962697465644279506f6c6b61646f74521b100053000000546f6f4269670000f11a100052000000431b10000f00000056616c69646174696f6e446174614e6f74417661696c61626c650000aa1a100047000000486f7374436f6e66696775726174696f6e4e6f74417661696c61626c65000000601a10004a0000004e6f745363686564756c6564291a1000370000004e6f7468696e67417574686f72697a6564000000041a100025000000556e617574686f72697a6564d4191000300000002054686520676976656e20636f6465207570677261646520686173206e6f74206265656e20617574686f72697a65642e204e6f20636f6465207570677261646520686173206265656e20617574686f72697a65642e204e6f2076616c69646174696f6e2066756e6374696f6e20757067726164652069732063757272656e746c79207363686564756c65642e2054686520696e686572656e7420776869636820737570706c6965732074686520686f737420636f6e66696775726174696f6e20646964206e6f742072756e207468697320626c6f636b2054686520696e686572656e7420776869636820737570706c696573207468652076616c69646174696f6e206461746120646964206e6f742072756e207468697320626c6f636b2054686520737570706c6965642076616c69646174696f6e2066756e6374696f6e2068617320636f6d70696c656420696e746f206120626c6f62206c6172676572207468616e20506f6c6b61646f742069732077696c6c696e6720746f2072756e20506f6c6b61646f742063757272656e746c792070726f68696269747320746869732070617261636861696e2066726f6d20757067726164696e67206974732076616c69646174696f6e2066756e6374696f6e20417474656d707420746f20757067726164652076616c69646174696f6e2066756e6374696f6e207768696c65206578697374696e6720757067726164652070656e64696e67737973693133333776616c69646174696f6e2066756e6374696f6e20706172616d732061726520616c7761797320696e6a656374656420696e746f20696e686572656e7420646174613b207165640000004c1c10002a00000025020000120000002f6275696c642f70616c6c6574732f70617261636861696e2d73797374656d2f7372632f6c69622e7273656e6163745f617574686f72697a65645f75706772616465617574686f72697a655f757067726164657375646f5f73656e645f7570776172645f6d6573736167657365745f76616c69646174696f6e5f646174617365745f757067726164655f626c6f636b56616c69646174696f6e44617461206d7573742062652075706461746564206f6e6c79206f6e636520696e206120626c6f636b00004c1c10002a0000001c0100000d0000003a636f6465000000f01d1000220000004c1c10002a0000003f010000190000004c1c10002a000000c002000009000000617373657274696f6e206661696c65643a20696e67726573735f6368616e6e656c732e62696e6172795f7365617263685f62795f6b65792873656e6465722c207c2628732c205f297c2073292e69735f6f6b28294c1c10002a000000db0200000d000000617373657274696f6e206661696c65643a206375725f68656164203d3d207461726765745f686561640000004c1c10002a000000230300000d000000696e76616c69642072656c617920636861696e206d65726b6c652070726f6f663a20000000000000f01e10001800000000000000081f1000010000000000000000000000101f1000020000000000000000000000201f10001900000000000000081f10000100000000000000000000003c1f1000010000000000000000000000441f10001100000000000000581f1000010000000000000000000000601f1000010000000000000000000000681f10001800000000000000801f1000010000000000000000000000881f1000020000000000000000000000981f10001900000000000000b41f1000020000000000000000000000c41f1000020000000000000056616c69646174696f6e46756e6374696f6e53746f726564682110001500000006211000540000005a2110000e00000056616c69646174696f6e46756e6374696f6e4170706c696564000000b42010005200000055706772616465417574686f72697a65640000004e4c1000040000009420100020000000446f776e776172644d65737361676573526563656976656413541000030000004720100041000000882010000c000000446f776e776172644d6573736167657350726f63657373656400000030201000060000003620100011000000d41f1000390000000d2010002300000020446f776e77617264206d6573736167657320776572652070726f636573736564207573696e672074686520676976656e207765696768742e205c5b207765696768745f757365642c20726573756c745f6d71635f68656164205c5d57656967687472656c61795f636861696e3a3a4861736820536f6d6520646f776e77617264206d657373616765732068617665206265656e20726563656976656420616e642077696c6c2062652070726f6365737365642e205c5b20636f756e74205c5d20416e207570677261646520686173206265656e20617574686f72697a65642e205468652076616c69646174696f6e2066756e6374696f6e20776173206170706c696564206173206f662074686520636f6e7461696e65642072656c617920636861696e20626c6f636b206e756d6265722e205468652076616c69646174696f6e2066756e6374696f6e20686173206265656e207363686564756c656420746f206170706c79206173206f662074686520636f6e7461696e65642072656c617920636861696e20626c6f636b206e756d6265722e52656c6179436861696e426c6f636b4e756d62657200000000000000ca1c100011000000000000005c22100001000000000000000000000074221000060000000000000000000000b71c10001300000000000000a4221000010000000000000000000000bc2210000900000000000000000000009f1c10001800000000000000042310000100000000000000000000003c8710000000000000000000000000008e1c100011000000000000001c2310000100000000000000000000003c871000000000000000000000000000761c10001800000000000000804f10000100000000000000000000003c87100000000000000000000000000006261000110000000000000068211000150000009f241000580000003c87100000000000f7241000550000004c25100056000000a225100055000000f72510000f000000000000008624100004000000000000008a2410001500000051231000210000003c871000000000007223100051000000c3231000230000003c87100000000000e6231000350000003c871000000000001b241000490000006424100022000000000000003d2310000700000000000000442310000d00000000000000342310000900000000000000f25f100007000000636f64655f686173686d6573736167655570776172644d65737361676520536574207468652063757272656e742076616c69646174696f6e20646174612e20546869732073686f756c6420626520696e766f6b65642065786163746c79206f6e63652070657220626c6f636b2e2049742077696c6c2070616e6963206174207468652066696e616c697a6174696f6e207068617365206966207468652063616c6c20776173206e6f7420696e766f6b65642e20546865206469737061746368206f726967696e20666f7220746869732063616c6c206d7573742062652060496e686572656e746020417320612073696465206566666563742c20746869732066756e6374696f6e207570677261646573207468652063757272656e742076616c69646174696f6e2066756e6374696f6e2069662074686520617070726f7072696174652074696d652068617320636f6d652e6461746150617261636861696e496e686572656e744461746120466f72636520616e20616c7265616479207363686564756c65642076616c69646174696f6e2066756e6374696f6e207570677261646520746f2068617070656e206f6e206120706172746963756c617220626c6f636b2e204e6f7465207468617420636f6f7264696e6174696e67207468697320626c6f636b20666f722074686520757067726164652068617320746f2068617070656e20696e646570656e64656e746c79206f6e207468652072656c617920636861696e20616e6420746869732070617261636861696e2e2053796e6368726f6e697a696e672074686520626c6f636b20666f722074686520757067726164652069732073656e7369746976652c20616e64207468697320627970617373657320616c6c20636865636b7320616e6420616e64206e6f726d616c2070726f746f636f6c732e2056657279206561737920746f20627269636b20796f757220636861696e20696620646f6e652077726f6e672e72656c61795f636861696e5f626c6f636b0000000000a02c10001c00000000000000000000006821100015000000000000000000000000000000000000000000000000000000000000003c871000bc2c10000000000000000000cc2c100004000000000000000000000000000000ec2c10001500000000000000000000008a52100007000000000000000000000000000000000000000000000000000000000000003c871000042d10000000000000000000142d1000030000000000000001000000000000002c2d10000e00000000000000000000003a2d100017000000000000000000000000000000000000000000000000000000000000003c871000542d10000000000000000000642d1000010000000000000000000000000000006c2d1000140000000000000000000000c561100004000000000000000000000000000000000000000000000000000000000000003c871000802d10000000000000000000902d100001000000000000000100000000000000982d10000b0000000000000000000000a32d100018000000000000000000000000000000000000000000000000000000000000003c871000bc2d10000000000000000000cc2d100001000000000000000100000000000000d42d1000160000000000000000000000ea2d100016000000000000000000000000000000000000000000000000000000000000003c871000002e10000000000000000000102e100007000000000000000000000000000000482e1000110000000000000000000000592e100019000000000000000000000000000000000000000000000000000000000000003c871000742e10000000000000000000842e100006000000000000000000000000000000b42e10000e0000000000000000000000c22e100011000000000000000000000000000000000000000000000000000000000000003c871000d42e10000000000000000000e42e100004000000000000000100000000000000042f1000100000000000000000000000142f100023000000000000000000000000000000000000000000000000000000000000003c871000382f10000000000000000000482f100004000000000000000100000000000000682f10001900000000000000000000001354100003000000000000000000000000000000000000000000000000000000000000003c871000bc2d10000000000000000000842f1000030000000000000001000000000000009c2f10001100000000000000000000008a52100007000000000000000000000000000000000000000000000000000000000000003c871000b02f10000000000000000000c02f100004000000000000000000000000000000e02f10000d0000000000000000000000ed2f10001c000000000000000000000000000000000000000000000000000000000000003c871000bc2d100000000000000000000c30100003000000000000000100000000000000243010001400000000000000000000003830100018000000000000000000000000000000000000000000000000000000000000003c8710005030100000000000000000006030100003000000000000000100000000000000783010000e00000000000000000000008630100012000000000000000000000000000000000000000000000000000000000000003c871000983010000000000000000000a830100003000000000000000100000000000000c03010001500000000000000000000008630100012000000000000000000000000000000000000000000000000000000000000003c871000983010000000000000000000d830100001000000000000000100000000000000e03010002100000000000000000000001354100003000000000000000000000000000000000000000000000000000000000000003c871000bc2d100000000000000000000431100002000000000000000100000000000000143110001a00000000000000000000003020100006000000000000000000000000000000000000000000000000000000000000003c8710003031100000000000000000004031100002000000000000000000000000000000503110001900000000000000000000003020100006000000000000000000000000000000000000000000000000000000000000003c8710003031100000000000000000006c311000020000000000000000000000000000007c311000110000000000000000000000f25f100007000000000000000000000000000000000000000000000000000000000000003c871000903110000000000000000000a031100001000000000000000000000050656e64696e6752656c6179436861696e426c6f636b4e756d6265722b0000000000000001000000630000001e3910004200000060391000280000008839100042000000ca3910004900000050656e64696e6756616c69646174696f6e436f64650000002b0000000000000001000000640000005138100044000000953810004a000000df3810003f00000056616c69646174696f6e4461746150657273697374656456616c69646174696f6e446174610000002b0000000000000001000000630000001d3810003400000044696453657456616c69646174696f6e436f64652b000000000000000100000063000000e5371000380000004c6173745570677261646572656c61795f636861696e3a3a426c6f636b4e756d626572002b0000000000000001000000650000009a3710004b00000052656c6576616e744d6573736167696e6753746174654d6573736167696e675374617465536e617073686f742b0000000000000001000000630000002f3710005900000088371000120000003c87100000000000563610005b000000b1361000530000003c87100000000000043710002b000000486f7374436f6e66696775726174696f6e4162726964676564486f7374436f6e66696775726174696f6e00002b0000000000000001000000630000000c3610004a0000003c87100000000000563610005b000000b1361000530000003c87100000000000043710002b0000004c617374446d714d7163486561644d6573736167655175657565436861696e002b000000000000000100000066000000cf3510003d0000003c871000000000005e35100059000000b7351000180000004c61737448726d704d7163486561647342547265654d61703c5061726149642c204d6573736167655175657565436861696e3e002b0000000000000001000000670000000c351000520000003c871000000000005e35100059000000b73510001800000050726f636573736564446f776e776172644d65737361676573000000da341000320000003c87100000000000bd3310003b0000004e657756616c69646174696f6e436f64650000002b000000000000000100000063000000493410002d0000003c871000000000007634100059000000cf3410000b00000048726d7057617465726d61726b72656c61795f636861696e3a3a76313a3a426c6f636b4e756d62657200000021341000280000003c87100000000000bd3310003b00000048726d704f7574626f756e644d657373616765735665633c4f7574626f756e6448726d704d6573736167653e2b000000000000000100000068000000f8331000290000003c87100000000000bd3310003b0000005570776172644d657373616765735665633c5570776172644d6573736167653e2b000000000000000100000068000000923310002b0000003c87100000000000bd3310003b00000050656e64696e675570776172644d65737361676573000000463310004c000000416e6e6f756e63656448726d704d6573736167657350657243616e646964617465000000b1321000590000000a3310003c000000526573657276656458636d705765696768744f7665727269646500002b0000000000000001000000630000005a321000570000002c3210002e0000005265736572766564446d705765696768744f76657272696465000000d6311000560000002c3210002e000000417574686f72697a6564557067726164650000002b000000000000000100000063000000a83110002e00000020546865206e65787420617574686f72697a656420757067726164652c206966207468657265206973206f6e652e205468652077656967687420776520726573657276652061742074686520626567696e6e696e67206f662074686520626c6f636b20666f722070726f63657373696e6720444d50206d657373616765732e2054686973206f76657272696465732074686520616d6f756e742073657420696e2074686520436f6e6669672074726169742e205468652077656967687420776520726573657276652061742074686520626567696e6e696e67206f662074686520626c6f636b20666f722070726f63657373696e672058434d50206d657373616765732e205468697320546865206e756d626572206f662048524d50206d65737361676573207765206f6273657276656420696e20606f6e5f696e697469616c697a656020616e64207468757320757365642074686174206e756d62657220666f7220616e6e6f756e63696e672074686520776569676874206f6620606f6e5f696e697469616c697a656020616e6420606f6e5f66696e616c697a65602e20557077617264206d65737361676573207468617420617265207374696c6c2070656e64696e6720616e64206e6f74207965742073656e6420746f207468652072656c617920636861696e2e20557077617264206d65737361676573207468617420776572652073656e7420696e206120626c6f636b2e20546869732077696c6c20626520636c656172656420696e20606f6e5f696e697469616c697a6560206f662065616368206e657720626c6f636b2e2048524d50206d65737361676573207468617420776572652073656e7420696e206120626c6f636b2e2048524d502077617465726d61726b2074686174207761732073657420696e206120626c6f636b2e204e65772076616c69646174696f6e20636f64652074686174207761732073657420696e206120626c6f636b2e20546869732077696c6c20626520636c656172656420696e20606f6e5f696e697469616c697a6560206f662065616368206e657720626c6f636b206966206e6f206f746865722070616c6c657420616c726561647920736574207468652076616c75652e204e756d626572206f6620646f776e77617264206d657373616765732070726f63657373656420696e206120626c6f636b2e20546865206d65737361676520717565756520636861696e2068656164732077652068617665206f62736572766564207065722065616368206368616e6e656c20696e636f6d696e67206368616e6e656c2e20546869732076616c7565206973206c6f61646564206265666f726520616e642073617665642061667465722070726f63657373696e6720696e626f756e6420646f776e77617264206d657373616765732063617272696564206279207468652073797374656d20696e686572656e742e20546865206c61737420646f776e77617264206d65737361676520717565756520636861696e20686561642077652068617665206f627365727665642e205468652070617261636861696e20686f737420636f6e66696775726174696f6e207468617420776173206f627461696e65642066726f6d207468652072656c617920706172656e742e2054686973206669656c64206973206d65616e7420746f2062652075706461746564206561636820626c6f636b2077697468207468652076616c69646174696f6e206461746120696e686572656e742e205468657265666f72652c206265666f72652070726f63657373696e67206f662074686520696e686572656e742c20652e672e20696e20606f6e5f696e697469616c697a656020746869732064617461206d6179206265207374616c652e2054686973206461746120697320616c736f20616273656e742066726f6d207468652067656e657369732e2054686520736e617073686f74206f6620736f6d652073746174652072656c6174656420746f206d6573736167696e672072656c6576616e7420746f207468652063757272656e742070617261636861696e20617320706572207468652072656c617920706172656e742e20546865206c6173742072656c617920706172656e7420626c6f636b206e756d626572206174207768696368207765207369676e616c6c65642074686520636f646520757067726164652e2057657265207468652076616c69646174696f6e20646174612073657420746f206e6f74696679207468652072656c617920636861696e3f20546865205b6050657273697374656456616c69646174696f6e44617461605d2073657420666f72207468697320626c6f636b2e20546865206e65772076616c69646174696f6e2066756e6374696f6e2077652077696c6c207570677261646520746f207768656e207468652072656c617920636861696e2072656163686573205b6050656e64696e6752656c6179436861696e426c6f636b4e756d626572605d2e2041207265616c2076616c69646174696f6e2066756e6374696f6e206d7573742065786973742068657265206173206c6f6e67206173205b6050656e64696e6752656c6179436861696e426c6f636b4e756d626572605d206973207365742e205765206e65656420746f2073746f726520746865206e65772076616c69646174696f6e2066756e6374696f6e20666f7220746865207370616e206265747765656e2073657474696e6720697420616e64206170706c79696e672069742e2049662069742068617320612076616c75652c207468656e205b6050656e64696e6756616c69646174696f6e436f6465605d206d75737420686176652061207265616c2076616c75652c20616e6420746f6765746865722077696c6c20636f6f7264696e6174652074686520626c6f636b206e756d6265722077686572652074686520757067726164652077696c6c2068617070656e2e63756d756c75735f70616c6c65745f70617261636861696e5f73797374656d3a3a70616c6c65744469676573744974656d206e6f7420657175616c0000803a100050000000840000001e000000803a1000500000008400000026000000803a100050000000840000002c0000002f636172676f2d686f6d652f72656769737472792f7372632f6769746875622e636f6d2d316563633632393964623965633832332f747269652d726f6f742d302e31362e302f7372632f6c69622e7273617373657274696f6e206661696c65643a2073656c662e6361702829203d3d206f6c645f636170202a2032000c3b10005e0000002d0800000d0000002f72757374632f643665616561316338383630616462353330326432666261616434303965333635383561623231372f6c6962726172792f616c6c6f632f7372632f636f6c6c656374696f6e732f7665635f64657175652f6d6f642e727300002b000000010000000100000069000000803a100050000000fb00000022000000803a1000500000000c01000031000000803a1000500000002b0100002f000000803a1000500000002c0100002e000000803a1000500000003b0100001a000000307210004a0000003604000015000000307210004a000000440400001e000000307210004a0000004d04000018000000307210004a0000004e04000019000000307210004a000000510400001a000000307210004a00000071030000360000004372756d623a3a696e6372656d656e7420616e64205472696544424e6f64654974657261746f722061726520696d706c656d656e74656420736f2074686174207468652061626f76652061726d732061726520746865206f6e6c7920706f737369626c652073746174657300983d100053000000460100001a0000006d6574686f6420776f756c6420686176652065786974656420617420746f70206f662070726576696f757320626c6f636b20696620747269616c207765726520656d7074793b747269616c20636f756c64206e6f742068617665206265656e206d6f6469666965642077697468696e2074686520626c6f636b2073696e63652069742077617320696d6d757461626c7920626f72726f7765643b716564000000983d100053000000760100001a000000983d100053000000500100001a000000983d1000530000005e0100001a000000983d1000530000006c0100001a000000983d100053000000380100002f0000002f636172676f2d686f6d652f72656769737472792f7372632f6769746875622e636f6d2d316563633632393964623965633832332f747269652d64622d302e32322e322f7372632f6974657261746f722e727364657363656e645f696e746f5f6e6f6465207075736865732061206372756d62206f6e746f2074686520747269616c3b20746875732074686520747261696c206973206e6f6e2d656d7074793b20716564983d10005300000076000000160000002b00000008000000040000006a0000002b00000000000000010000006b000000a444100060000000e40000003f000000a444100060000000f900000016000000a4441000600000002201000033000000a4441000600000004601000043000000a4441000600000001101000016000000a444100060000000cb00000027000000a4441000600000003901000012000000a4441000600000005b0100000e000000a444100060000000b20200000b0000005765206861766520726573657420746865206f7665726c61792061626f76652c20736f2077652063616e206e6f7420626520696e207468652072756e74696d653b207165640000002b00000000000000010000006c000000a444100060000000b70200000e000000546869732069732061207370656369616c20666e206f6e6c7920666f722062656e63686d61726b696e67207768657265206120646174616261736520636f6d6d69742068617070656e732066726f6d207468652072756e74696d652e0a09466f72207468617420726561736f6e20636c69656e742073746172746564207472616e73616374696f6e73206265666f72652063616c6c696e6720696e746f2072756e74696d6520617265206e6f7420616c6c6f7765642e0a09576974686f757420636c69656e74207472616e73616374696f6e7320746865206c6f6f7020636f6e646974696f6e20676172616e7475656573207468652073756363657373206f662074686520747820636c6f73652e00002b00000000000000010000006d000000a444100060000000aa02000031000000a444100060000000c40200000b000000a444100060000000bc0200002f000000f740100007000000dc4010001b000000c48710000200000090471000330000002a0100000100000042616420696e70757420646174612070726f766964656420746f2076657273696f6e0000084110000d000000657865637574655f626c6f636b0000002041100010000000696e697469616c697a655f626c6f636b38411000080000006d65746164617461484110000f0000006170706c795f65787472696e73696300604110000e00000066696e616c697a655f626c6f636b00007841100013000000696e686572656e745f65787472696e7369637300944110000f000000636865636b5f696e686572656e747300ac4110001400000076616c69646174655f7472616e73616374696f6ec84110000f0000006f6666636861696e5f776f726b657200e0411000130000006465636f64655f73657373696f6e5f6b65797300fc4110001500000067656e65726174655f73657373696f6e5f6b6579730000001c42100016000000636f6c6c6563745f636f6c6c6174696f6e5f696e666f2f6275696c642f70616c6c6574732f78636d2f7372632f6c69622e727300cc42100015000000e14210001d00000070617261636861696e5f696e666f3a3a70616c6c65742f6275696c642f706f6c6b61646f742d70617261636861696e732f70616c6c6574732f70617261636861696e2d696e666f2f7372632f6c69622e727363756d756c75735f70616c6c65745f78636d3a3a70616c6c6574e29c85206e6f206d6967726174696f6e20666f72202c2073657474696e672073746f726167652076657273696f6e20746f2050726576696f7573206d617463682061726d206d61746368657320616e7974696e67206c657373207468616e20325e33303b20716564868210005c0000005701000011000000684310003d000000000000000000000000000000868210005c0000005e01000011000000736869667465642073756666696369656e74206269747320726967687420746f206c656164206f6e6c79206c656164696e67207a65726f733b20716564000000868210005c000000830100001100000000000000000000000000000000000000868210005c0000008a0100001100000000000000304410000b00000000000000000000003b44100006000000000000000000000000000000000000000000000000000000000000003c8710004444100000000000000000003c87100000000000000000000100000050617261636861696e49645061726149640000002b00000000000000010000006e00000045787465726e616c6974696573206e6f7420616c6c6f77656420746f206661696c2077697468696e2072756e74696d652b00000000000000010000006b000000a444100060000000fb010000260000002f636172676f2d686f6d652f6769742f636865636b6f7574732f7375627374726174652d376530383433336434633337306132312f336631313031392f7072696d6974697665732f73746174652d6d616368696e652f7372632f6578742e727390831000780000008b0000002100000000000000984510000d00000000000000a8451000010000000000000000000000b0451000020000000000000000000000c04510001200000000000000a8451000010000000000000000000000d4451000020000000000000000000000e44510001000000000000000f4451000020000000000000000000000044610000200000000000000496e76616c6964466f726d617400000058461000070000009f461000210000009646100009000000556e737570706f7274656456657273696f6e0000664610003000000096461000090000004578656375746564446f776e7761726458461000070000005f461000070000001446100032000000464610001200000020446f776e77617264206d65737361676520657865637574656420776974682074686520676976656e206f7574636f6d652e205c5b2069642c206f7574636f6d65205c5d5b75383b20385d4f7574636f6d6520446f776e77617264206d65737361676520697320756e737570706f727465642076657273696f6e206f662058434d2e205c5b206964205c5d20446f776e77617264206d65737361676520697320696e76616c69642058434d2efc8810005e000000710000002e000000fc8810005e0000009000000034000000fc8810005e0000006900000034000000fc8810005e000000ba00000009000000fc8810005e000000b300000009000000fc8810005e000000d400000011000000fc8810005e000000d9000000090000003a5f5f50414c4c45545f56455253494f4e5f5f3a5472616e73616374696f6e207761732062652067656e6572617465642061732070617274206f66206073746f726167655f726f6f74603b20716564002c861000720000002b0200000e0000002f6275696c642f706f6c6b61646f742d70617261636861696e732f7368656c6c2d72756e74696d652f7372632f6c69622e727372656d61726b5f776974685f6576656e746b696c6c5f7072656669786b696c6c5f73746f726167657365745f73746f726167657365745f6368616e6765735f747269655f636f6e6669677365745f636f64655f776974686f75745f636865636b737365745f636f64657365745f686561705f706167657372656d61726b66696c6c5f626c6f636b0000da48100007000000e14810005200000072756e74696d653a3a6672616d652d737570706f72746672616d655f73797374656d3a3a70616c6c65742f636172676f2d686f6d652f6769742f636865636b6f7574732f7375627374726174652d376530383433336434633337306132312f336631313031392f6672616d652f73797374656d2f7372632f6c69622e7273e29aa0efb88f20206465636c6172657320696e7465726e616c206d6967726174696f6e7320287768696368202a6d696768742a2065786563757465292c2073657474696e672073746f726167652076657273696f6e20746f20002b00000000000000010000006f0000003a6865617070616765733a6368616e6765735f7472696500874910001a000000a14910000300000072756e74696d653a3a73797374656d6672616d655f73797374656d45787472696e736963206661696c656420617420626c6f636b28293a204e6f646520697320636f6e6669677572656420746f20757365207468652073616d6520686173683b2071656486481000540000005f0500000e000000864810005400000067050000160000004e6f6e44656661756c74436f6d706f736974654661696c6564546f4578747261637452756e74696d6556657273696f6e5370656356657273696f6e4e65656473546f496e637265617365496e76616c6964537065634e616d654e6f6e5a65726f526566436f756e7400000000604b10001000000000000000704b1000010000000000000000000000784b1000010000000000000000000000804b10000f00000000000000904b1000020000000000000000000000a04b1000010000000000000000000000a84b10000b000000000000003c871000000000000000000000000000b44b1000010000000000000000000000bc4b10000a00000000000000c84b1000010000000000000000000000d04b1000010000000000000000000000d84b10000d00000000000000c84b1000010000000000000000000000e84b1000010000000000000000000000f04b10000800000000000000f84b1000020000000000000000000000084c1000010000000000000045787472696e73696353756363657373d34c10000c000000df4c10002e00000045787472696e7369634661696c656400c64c10000d000000d34c10000c000000a14c100025000000436f646555706461746564008c4c1000150000004e65774163636f756e740000454c1000090000006d4c10001f0000004b696c6c65644163636f756e74000000524c10001b00000052656d61726b6564454c1000090000004e4c100004000000104c100035000000204f6e206f6e2d636861696e2072656d61726b2068617070656e65642e205c5b6f726967696e2c2072656d61726b5f686173685c5d4163636f756e7449644861736820416e205c5b6163636f756e745c5d20776173207265617065642e2041206e6577205c5b6163636f756e745c5d2077617320637265617465642e20603a636f6465602077617320757064617465642e20416e2065787472696e736963206661696c65642e205c5b6572726f722c20696e666f5c5d44697370617463684572726f724469737061746368496e666f20416e2065787472696e73696320636f6d706c65746564207375636365737366756c6c792e205c5b696e666f5c5d00000000000000404810000a00000000000000c84e1000010000000000000000000000e04e10000100000000000000000000003a4810000600000000000000e84e1000010000000000000000000000004f10000500000000000000000000002c4810000e00000000000000284f1000010000000000000000000000404f1000080000000000000000000000244810000800000000000000804f1000010000000000000000000000984f10000a00000000000000000000000d4810001700000000000000804f1000010000000000000000000000e84f1000080000000000000000000000f6471000170000000000000028501000010000000000000000000000405010000a0000000000000000000000eb4710000b0000000000000090501000010000000000000000000000a8501000080000000000000000000000df4710000c00000000000000e850100001000000000000000000000000511000080000000000000000000000d44710000b0000000000000040511000020000000000000000000000705110000b0000000000000000000000c34710001100000000000000c8511000010000000000000000000000e05110000600000000000000000000009759100006000000000000009d591000070000005559100042000000000000004e59100007000000000000008a52100007000000335910001b0000003c871000000000003a5210000b00000084551000090000007e5210000c000000000000002b59100005000000000000003059100003000000a85810003f0000003c871000000000003a5210000b0000008455100009000000e758100013000000fa5810001900000013591000180000007e5210000c00000000000000a458100004000000000000008a521000070000005c5710001a0000003c871000000000003a5210000b000000765710004d000000dd56100022000000c35710005e000000735210000b000000215810005f00000080581000240000007e5210000c00000072561000470000003c871000000000003a5210000b000000b956100024000000dd56100022000000735210000b000000ff5610005d0000007e5210000c000000000000003f561000130000000000000052561000200000005c551000280000003c871000000000003a5210000b00000084551000090000008d5510002c000000b955100036000000ef55100019000000085610000d000000155610002a0000007e5210000c000000000000004a55100005000000000000004f5510000d000000ce5410001b0000003c871000000000003a5210000b000000e9541000250000000e5510001f0000002d5510001d000000a85410001a0000007e5210000c00000000000000c25410000400000000000000c654100008000000165410001e0000003c871000000000003a5210000b000000345410003f00000073541000190000008c5410001c000000a85410001a0000007e5210000c000000000000000254100006000000000000000854100003000000000000000b5410000800000000000000135410000300000091521000450000003c87100000000000d65210004f00000025531000500000003c871000000000003a5210000b0000007553100037000000ac53100019000000c55310001d000000e2531000200000007e5210000c000000000000003a48100006000000000000008a52100007000000105210002a0000003c871000000000003a5210000b000000455210002e000000735210000b0000007e5210000c000000204d616b6520736f6d65206f6e2d636861696e2072656d61726b20616e6420656d6974206576656e742e2023203c7765696768743e202d20604f28622960207768657265206220697320746865206c656e677468206f66207468652072656d61726b2e202d2031206576656e742e2023203c2f7765696768743e5665633c75383e204b696c6c20616c6c2073746f72616765206974656d7320776974682061206b657920746861742073746172747320776974682074686520676976656e207072656669782e202a2a4e4f54453a2a2a2057652072656c79206f6e2074686520526f6f74206f726967696e20746f2070726f7669646520757320746865206e756d626572206f66207375626b65797320756e6465722074686520707265666978207765206172652072656d6f76696e6720746f2061636375726174656c792063616c63756c6174652074686520776569676874206f6620746869732066756e6374696f6e2e202d20604f285029602077686572652060506020616d6f756e74206f66206b657973207769746820707265666978206070726566697860202d206050602073746f726167652064656c6574696f6e732e202d2042617365205765696768743a20302e383334202a205020c2b573202d205772697465733a204e756d626572206f66207375626b657973202b20317072656669784b65795f7375626b657973753332204b696c6c20736f6d65206974656d732066726f6d2073746f726167652e202d20604f28494b296020776865726520604960206c656e677468206f6620606b6579736020616e6420604b60206c656e677468206f66206f6e65206b6579202d206049602073746f726167652064656c6574696f6e732e202d2042617365205765696768743a202e333738202a206920c2b573202d205772697465733a204e756d626572206f66206974656d736b6579735665633c4b65793e2053657420736f6d65206974656d73206f662073746f726167652e202d20604f2849296020776865726520604960206c656e677468206f6620606974656d7360202d206049602073746f72616765207772697465732028604f28312960292e202d2042617365205765696768743a20302e353638202a206920c2b5736974656d735665633c4b657956616c75653e2053657420746865206e6577206368616e676573207472696520636f6e66696775726174696f6e2e202d20604f28312960202d20312073746f72616765207772697465206f722064656c6574652028636f64656320604f28312960292e202d20312063616c6c20746f20606465706f7369745f6c6f67603a20557365732060617070656e6460204150492c20736f204f283129202d2042617365205765696768743a20372e32313820c2b573202d204442205765696768743a20202020202d205772697465733a204368616e67657320547269652c2053797374656d204469676573746368616e6765735f747269655f636f6e6669674f7074696f6e3c4368616e67657354726965436f6e66696775726174696f6e3e2053657420746865206e65772072756e74696d6520636f646520776974686f757420646f696e6720616e7920636865636b73206f662074686520676976656e2060636f6465602e202d20604f2843296020776865726520604360206c656e677468206f662060636f646560202d20312073746f726167652077726974652028636f64656320604f28432960292e2054686520776569676874206f6620746869732066756e6374696f6e20697320646570656e64656e74206f6e207468652072756e74696d652e2057652077696c6c207472656174207468697320617320612066756c6c20626c6f636b2e2053657420746865206e65772072756e74696d6520636f64652e202d20604f2843202b2053296020776865726520604360206c656e677468206f662060636f64656020616e642060536020636f6d706c6578697479206f66206063616e5f7365745f636f646560202d20312063616c6c20746f206063616e5f7365745f636f6465603a20604f28532960202863616c6c73206073705f696f3a3a6d6973633a3a72756e74696d655f76657273696f6e6020776869636820697320657870656e73697665292e2054686520776569676874206f6620746869732066756e6374696f6e20697320646570656e64656e74206f6e207468652072756e74696d652c206275742067656e6572616c6c792074686973206973207665727920657870656e736976652e2057652077696c6c207472656174207468697320617320612066756c6c20626c6f636b2e636f64652053657420746865206e756d626572206f6620706167657320696e2074686520576562417373656d626c7920656e7669726f6e6d656e74277320686561702e202d20312073746f726167652077726974652e202d2042617365205765696768743a20312e34303520c2b573202d203120777269746520746f20484541505f50414745537061676573753634204d616b6520736f6d65206f6e2d636861696e2072656d61726b2e5f72656d61726b204120646973706174636820746861742077696c6c2066696c6c2074686520626c6f636b2077656967687420757020746f2074686520676976656e20726174696f2e5f726174696f50657262696c6c0000000019701000070000000102000000000000245f10000c00000000000000305f100025000000000000000000000000000000000000003c871000585f10000000000000000000685f100001000000000000000100000000000000705f10000e00000000000000000000001354100003000000000000000000000000000000000000000000000000000000000000003c871000805f10000000000000000000905f100001000000000000000000000000000000985f10000b0000000000000000000000a35f10000e000000000000000000000000000000000000000000000000000000000000003c871000b45f10000000000000000000c45f100001000000000000000100000000000000cc5f10001000000000000000000000001354100003000000000000000000000000000000000000000000000000000000000000003c871000805f10000000000000000000dc5f10000100000000000000000000000000000010701000090000000105000000000000e45f10000e00000000000000f25f100007000000000000000000000000000000000000003c871000fc5f100000000000000000000c60100001000000000000000100000000000000037010000d00000001050000000000001354100003000000000000008a52100007000000000000000000000000000000000000003c87100014601000000000000000000024601000010000000000000001000000000000002c601000060000000000000000000000e45f10000e000000000000000000000000000000000000000000000000000000000000003c87100034601000000000000000000044601000010000000000000001000000000000004c6010000a0000000000000000000000f25f100007000000000000000000000000000000000000000000000000000000000000003c871000fc5f10000000000000000000586010000100000000000000010000000000000060601000060000000000000000000000666010000b000000000000000000000000000000000000000000000000000000000000003c87100074601000000000000000000084601000010000000000000001000000000000008c6010000600000000000000000000009260100023000000000000000000000000000000000000000000000000000000000000003c871000b86010000000000000000000c860100001000000000000000100000000000000d06010000a0000000000000000000000da6010000a000000000000000000000000000000000000000000000000000000000000003c871000346010000000000000000000e460100001000000000000000100000000000000f86f10000b0000000102000000000000f25f10000700000000000000ec60100021000000000000000000000000000000000000003c871000106110000000000000000000206110000a000000000000000100000000000000706110001200000000000000000000008261100016000000000000000000000000000000000000000000000000000000000000003c871000986110000000000000000000a861100001000000000000000000000000000000b0611000150000000000000000000000c561100004000000000000000000000000000000000000000000000000000000000000003c871000cc6110000000000000000000dc61100001000000000000000100000000000000e4611000180000000000000000000000c561100004000000000000000000000000000000000000000000000000000000000000003c871000cc6110000000000000000000fc611000020000000000000001000000000000000c6210000e00000000000000000000001a62100005000000000000000000000000000000000000000000000000000000000000003c87100020621000000000000000000030621000010000000000000000000000543a3a4163636f756e7449644163636f756e74496e666f3c543a3a496e6465782c20543a3a4163636f756e74446174613e0000002b000000000000000100000070000000a26710003a00000045787472696e736963436f756e7400002b000000000000000100000063000000746710002e000000426c6f636b576569676874436f6e73756d65645765696768740000002b0000000000000001000000710000005267100022000000416c6c45787472696e736963734c656e0267100050000000543a3a426c6f636b4e756d626572543a3a486173680000002b000000000000000100000072000000dc661000260000002b0000000000000001000000640000008d6610004f0000004e756d62657200002b0000000000000001000000650000004b66100042000000506172656e744861736800002f6610001c0000004469676573744469676573744f663c543e0000002b000000000000000100000073000000f36510003c0000004576656e74735665633c4576656e745265636f72643c543a3a4576656e742c20543a3a486173683e3e0000002b000000000000000100000068000000cb651000280000004576656e74436f756e744576656e74496e6465789d6510002e0000005665633c28543a3a426c6f636b4e756d6265722c204576656e74496e646578293e0000002b0000000000000001000000740000006b63100049000000b4631000250000003c87100000000000d9631000540000002d641000510000007e641000390000003c87100000000000b7641000530000000a651000530000005d651000400000004c61737452756e74696d65557067726164654c61737452756e74696d6555706772616465496e666f2b00000000000000010000006300000016631000550000005570677261646564546f553332526566436f756e74626f6f6c0000002b000000000000000100000063000000c3621000530000005570677261646564546f547269706c65526566436f756e745a62100057000000b162100012000000457865637574696f6e50686173655068617365002b00000000000000010000006300000038621000220000002054686520657865637574696f6e207068617365206f662074686520626c6f636b2e2054727565206966207765206861766520757067726164656420736f2074686174204163636f756e74496e666f20636f6e7461696e73207468726565207479706573206f662060526566436f756e74602e2046616c7365202864656661756c7429206966206e6f742e2054727565206966207765206861766520757067726164656420736f207468617420607479706520526566436f756e74602069732060753332602e2046616c7365202864656661756c7429206966206e6f742e2053746f726573207468652060737065635f76657273696f6e6020616e642060737065635f6e616d6560206f66207768656e20746865206c6173742072756e74696d6520757067726164652068617070656e65642e204d617070696e67206265747765656e206120746f7069632028726570726573656e74656420627920543a3a486173682920616e64206120766563746f72206f6620696e6465786573206f66206576656e747320696e2074686520603c4576656e74733c543e3e60206c6973742e20416c6c20746f70696320766563746f727320686176652064657465726d696e69737469632073746f72616765206c6f636174696f6e7320646570656e64696e67206f6e2074686520746f7069632e205468697320616c6c6f7773206c696768742d636c69656e747320746f206c6576657261676520746865206368616e67657320747269652073746f7261676520747261636b696e67206d656368616e69736d20616e6420696e2063617365206f66206368616e67657320666574636820746865206c697374206f66206576656e7473206f6620696e7465726573742e205468652076616c756520686173207468652074797065206028543a3a426c6f636b4e756d6265722c204576656e74496e646578296020626563617573652069662077652075736564206f6e6c79206a7573742074686520604576656e74496e64657860207468656e20696e20636173652069662074686520746f70696320686173207468652073616d6520636f6e74656e7473206f6e20746865206e65787420626c6f636b206e6f206e6f74696669636174696f6e2077696c6c20626520747269676765726564207468757320746865206576656e74206d69676874206265206c6f73742e20546865206e756d626572206f66206576656e747320696e2074686520604576656e74733c543e60206c6973742e204576656e7473206465706f736974656420666f72207468652063757272656e7420626c6f636b2e20446967657374206f66207468652063757272656e7420626c6f636b2c20616c736f2070617274206f662074686520626c6f636b206865616465722e2048617368206f66207468652070726576696f757320626c6f636b2e205468652063757272656e7420626c6f636b206e756d626572206265696e672070726f6365737365642e205365742062792060657865637574655f626c6f636b602e2045787472696e73696373206461746120666f72207468652063757272656e7420626c6f636b20286d61707320616e2065787472696e736963277320696e64657820746f206974732064617461292e204d6170206f6620626c6f636b206e756d6265727320746f20626c6f636b206861736865732e20546f74616c206c656e6774682028696e2062797465732920666f7220616c6c2065787472696e736963732070757420746f6765746865722c20666f72207468652063757272656e7420626c6f636b2e205468652063757272656e742077656967687420666f722074686520626c6f636b2e20546f74616c2065787472696e7369637320636f756e7420666f72207468652063757272656e7420626c6f636b2e205468652066756c6c206163636f756e7420696e666f726d6174696f6e20666f72206120706172746963756c6172206163636f756e742049442e000000002c6910000c000000000000003869100014000000000000003c8710004c69100000000000000000005c691000010000000000000000000000646910000b000000000000006f69100013000000000000003c871000846910000000000000000000946910000100000000000000000000009c6910000e00000000000000e45f10000e000000000000003c871000ac6910000000000000000000bc691000010000000000000000000000c46910000800000000000000cc6910000f000000000000003c871000dc6910000000000000000000ec691000010000000000000000000000f46910000700000000000000fb6910000e000000000000003c8710000c6a100000000000000000001c6a1000010000000000000000000000246a10000a000000000000002e6a100002000000000000003c871000306a10000000000000000000406a10000500000000000000426c6f636b576569676874736c696d6974733a3a426c6f636b576569676874732b0000000000000001000000750000002a6c100034000000426c6f636b4c656e6774686c696d6974733a3a426c6f636b4c656e67746800002b000000000000000100000076000000006c10002a000000426c6f636b48617368436f756e7400002b000000000000000100000077000000ab6b100055000000446257656967687452756e74696d654462576569676874002b000000000000000100000078000000696b10004200000056657273696f6e52756e74696d6556657273696f6e0000002b000000000000000100000079000000486b1000210000005353353850726566697875382b00000000000000010000007a000000686a10002a0000003c87100000000000926a10004e000000e06a10004c0000002c6b10001c000000205468652064657369676e61746564205353383520707265666978206f66207468697320636861696e2e2054686973207265706c6163657320746865202273733538466f726d6174222070726f7065727479206465636c6172656420696e2074686520636861696e20737065632e20526561736f6e2069732074686174207468652072756e74696d652073686f756c64206b6e6f772061626f7574207468652070726566697820696e206f7264657220746f206d616b6520757365206f6620697420617320616e206964656e746966696572206f662074686520636861696e2e204765742074686520636861696e27732063757272656e742076657273696f6e2e2054686520776569676874206f662072756e74696d65206461746162617365206f7065726174696f6e73207468652072756e74696d652063616e20696e766f6b652e204d6178696d756d206e756d626572206f6620626c6f636b206e756d62657220746f20626c6f636b2068617368206d617070696e677320746f206b65657020286f6c64657374207072756e6564206669727374292e20546865206d6178696d756d206c656e677468206f66206120626c6f636b2028696e206279746573292e20426c6f636b20262065787472696e7369637320776569676874733a20626173652076616c75657320616e64206c696d6974732e0000000000003a4a10000f00000000000000ec6c1000020000000000000000000000204a10001a00000000000000fc6c1000020000000000000000000000034a10001d000000000000000c6d1000030000000000000000000000f04910001300000000000000246d1000010000000000000000000000494a10000f000000000000002c6d10000100000000000000a76e100045000000926e100015000000416e100051000000926e100015000000c26d10003c0000003c87100000000000fe6d100043000000826d100040000000346d10004e0000002054686572652069732061206e6f6e2d7a65726f207265666572656e636520636f756e742070726576656e74696e6720746865206163636f756e742066726f6d206265696e67207075726765642e20537569636964652063616c6c6564207768656e20746865206163636f756e7420686173206e6f6e2d64656661756c7420636f6d706f7369746520646174612e204661696c656420746f2065787472616374207468652072756e74696d652076657273696f6e2066726f6d20746865206e65772072756e74696d652e204569746865722063616c6c696e672060436f72655f76657273696f6e60206f72206465636f64696e67206052756e74696d6556657273696f6e60206661696c65642e205468652073706563696669636174696f6e2076657273696f6e206973206e6f7420616c6c6f77656420746f206465637265617365206265747765656e207468652063757272656e742072756e74696d6520616e6420746865206e65772072756e74696d652e20546865206e616d65206f662073706563696669636174696f6e20646f6573206e6f74206d61746368206265747765656e207468652063757272656e742072756e74696d652b0000000c000000040000004e0000004f0000007b000000a0000000080000004500000046000000546f10005a000000ce0100001e000000546f10005a000000e00100001e000000546f10005a000000f20100001e000000546f10005a000000050200001e0000002f636172676f2d686f6d652f6769742f636865636b6f7574732f706f6c6b61646f742d343033386632376435653465613265382f363239623836392f78636d2f78636d2d6578656375746f722f7372632f6173736574732e72730000546f10005a000000830100001e000000546f10005a0000008d0100001e0000002b00000008000000040000003d0000003e0000003f000000400000004100000042000000430000004576656e74546f7069637345787472696e73696344617461426c6f636b486173684163636f756e74e27010002b000000bd701000250000006672616d655f737570706f72743a3a73746f726167653a3a67656e657261746f723a3a6d61702f636172676f2d686f6d652f6769742f636865636b6f7574732f7375627374726174652d376530383433336434633337306132312f336631313031392f6672616d652f737570706f72742f7372632f73746f726167652f67656e657261746f722f6d61702e7273496e76616c6964207472616e736c6174653a206661696c20746f206465636f6465206b6579496e76616c6964207472616e736c6174653a206661696c20746f206465636f6465206f6c642076616c7565006e6f7420696d706c656d656e7465640000003071100064000000fb000000090000002f636172676f2d686f6d652f6769742f636865636b6f7574732f7375627374726174652d376530383433336434633337306132312f336631313031392f7072696d6974697665732f73746174652d6d616368696e652f7372632f6261636b656e642e72733071100064000000e9000000090000003071100064000000ee000000090000003071100064000000e400000009000000d47110004c00000074060000240000002f72757374632f643665616561316338383630616462353330326432666261616434303965333635383561623231372f6c6962726172792f616c6c6f632f7372632f7665632f6d6f642e7273307210004a000000c4000000110000002f72757374632f643665616561316338383630616462353330326432666261616434303965333635383561623231372f6c6962726172792f616c6c6f632f7372632f736c6963652e727300000800000000000000000000000000000000000000617474656d707420746f20646976696465206279207a65726f0000002b00000000000000010000003b000000cc7210005300000078000000230000002f636172676f2d686f6d652f72656769737472792f7372632f6769746875622e636f6d2d316563633632393964623965633832332f656e7669726f6e6d656e74616c2d312e312e322f7372632f6c69622e727300287310001a0000004552524f523a20436f7272757074656420737461746520617420506172656e7420686173682073686f756c642062652076616c69642e0000847410005700000038010000090000001e7510003100000084741000570000003f0100000d0000008474100057000000640100000d0000005369676e617475726520766572696669636174696f6e206661696c65642e000084741000570000005501000011000000ec741000320000008474100057000000c001000009000000446967657374206974656d206d757374206d6174636820746861742063616c63756c617465642e008474100057000000c80100000d00000053746f7261676520726f6f74206d757374206d6174636820746861742063616c63756c617465642e8474100057000000ce010000090000005472616e73616374696f6e207472696520726f6f74206d7573742062652076616c69642e8474100057000000d0010000090000002f636172676f2d686f6d652f6769742f636865636b6f7574732f7375627374726174652d376530383433336434633337306132312f336631313031392f6672616d652f6578656375746976652f7372632f6c69622e7273002b00000004000000040000007c0000004e756d626572206f6620646967657374206974656d73206d757374206d6174636820746861742063616c63756c617465642e496e76616c696420696e686572656e7420706f736974696f6e20666f722065787472696e73696320617420696e64657820496e76616c69642070617261636861696e20626c6f636b2064617461002b00000000000000010000006f0000009577100044000000350000000e000000496e76616c696420706172656e742068656164009577100044000000380000003b000000496e76616c696420706172656e7420686173680095771000440000003f000000050000005769746e657373206461746120646f6573206e6f7420636f6e7461696e20676976656e2073746f7261676520726f6f742e00000095771000440000004700000009000000547279696e6720746f207265706c61636520616e20616c7265616479207265706c6163656420696d706c656d656e746174696f6e210000003077100065000000710000000d0000002b00000010000000040000007d0000007e0000007f000000800000008100000082000000830000008400000085000000860000008700000088000000890000008a0000008b0000008c0000008d0000008e0000008f000000900000009100000092000000930000009400000095000000960000009700000098000000990000009a0000009b0000009c0000009d0000009e0000009f000000a0000000a100000056616c7565206973206f6e6c792074616b656e206f6e2064726f703b2071656430771000650000008e0000003a0000002f636172676f2d686f6d652f6769742f636865636b6f7574732f7375627374726174652d376530383433336434633337306132312f336631313031392f7072696d6974697665732f72756e74696d652d696e746572666163652f7372632f7761736d2e72732f6275696c642f70616c6c6574732f70617261636861696e2d73797374656d2f7372632f76616c69646174655f626c6f636b2f696d706c656d656e746174696f6e2e72730000002b00000004000000040000000f0000002b0000000400000004000000a20000002b0000000400000004000000a30000002b00000004000000040000007c0000002b0000000400000004000000a40000006c8f100054000000740100001b0000006c8f100054000000670100000d000000617373657274696f6e206661696c65643a20216578697374696e675f6b65792e69735f656d707479282900006c8f10005400000080030000150000004272616e63682077697468206e6f2073756276616c7565732e20536f6d657468696e672077656e742077726f6e672e006c8f100054000000ad04000019000000757365645f696e646578206f6e6c7920736574206966206f636375706965643b207165646c8f100054000000b30400001e0000006c8f100054000000db040000190000006c8f100054000000df0400001e0000006c8f10005400000015050000220000006c8f100054000000290500001c00000000010200b1791000260000006672616d655f737570706f72743a3a686173682f636172676f2d686f6d652f6769742f636865636b6f7574732f7375627374726174652d376530383433336434633337306132312f336631313031392f6672616d652f737570706f72742f7372632f686173682e7273496e76616c696420726576657273653a2068617368206c656e67746820746f6f2073686f7274002b0000000100000001000000a50000002f636172676f2d686f6d652f6769742f636865636b6f7574732f7375627374726174652d376530383433336434633337306132312f336631313031392f6672616d652f73797374656d2f7372632f6c696d6974732e72734275696c6465722066696e6973686564207769746820606275696c645f6f725f70616e6963603b205468652070616e69632069732065787065637465642069662072756e74696d65207765696768747320617265206e6f7420636f727265637400e879100057000000aa010000160000003c8710000000000000000000ffffffff2b0000000000000001000000a6000000a7000000a80000002b0000000000000001000000a6000000a7000000a8000000247c10005a0000006700000012000000436f646563206572726f724572726f72496e76616c696420696e707574206461746100002b00000000000000010000006f000000447b1000550000001d000000340000002f636172676f2d686f6d652f6769742f636865636b6f7574732f706f6c6b61646f742d343033386632376435653465613265382f363239623836392f70617261636861696e2f7372632f7761736d5f6170692e72733c7761736d3a73747269707065643e30780000a87b10000200000000000000200000000400000002000000000000000200000000000000030000000000000020000000080000000200000000000000000000000200000003000000416c6c6f634572726c61796f757400002b0000000400000004000000a900000043617061636974794f766572666c6f772f636172676f2d686f6d652f72656769737472792f7372632f6769746875622e636f6d2d316563633632393964623965633832332f7061726974792d7363616c652d636f6465632d322e312e302f7372632f636f6465632e72735765206465636f646520604e6020656c656d656e74733b20716564000000247c10005a000000c602000017000000486f737420746f207761736d2070726f766964657320612076616c696420656e756d206469736372696d696e616e743b207165642b0000000000000001000000c0000000007d100068000000bb0100001a0000002f636172676f2d686f6d652f6769742f636865636b6f7574732f7375627374726174652d376530383433336434633337306132312f336631313031392f7072696d6974697665732f72756e74696d652d696e746572666163652f7372632f706173735f62792e7273486f737420746f207761736d2076616c7565732061726520656e636f64656420636f72726563746c793b2071656400002b00000000000000010000006f000000007d100068000000090100002600000072756e74696d6552756e74696d65206d656d6f7279206578686175737465642e2041626f7274696e675472616e73616374696f6e206469737061746368206973206d616e6461746f72793b207472616e73616374696f6e73206d6179206e6f742068617665206d616e6461746f727920646973706174636865732e412063616c6c20776173206c6162656c6c6564206173206d616e6461746f72792c2062757420726573756c74656420696e20616e204572726f722e5472616e73616374696f6e20776f756c6420657868617573742074686520626c6f636b206c696d6974735472616e73616374696f6e2068617320616e20616e6369656e7420626972746820626c6f636b5472616e73616374696f6e20686173206120626164207369676e61747572655472616e73616374696f6e206973206f757464617465645472616e73616374696f6e2077696c6c2062652076616c696420696e2074686520667574757265496e6162696c69747920746f2070617920736f6d6520666565732028652e672e206163636f756e742062616c616e636520746f6f206c6f77295472616e73616374696f6e2063616c6c206973206e6f74206578706563746564496e76616c69645472616e73616374696f6e20637573746f6d206572726f72436f756c64206e6f742066696e6420616e20756e7369676e65642076616c696461746f7220666f722074686520756e7369676e6564207472616e73616374696f6e436f756c64206e6f74206c6f6f6b757020696e666f726d6174696f6e20726571756972656420746f2076616c696461746520746865207472616e73616374696f6e556e6b6e6f776e5472616e73616374696f6e20637573746f6d206572726f722b0000000000000001000000c3000000c4000000a80000003c871000000000002b00000004000000040000006000000061000000c500000048617368206e6f7420657175616c0000dc9010005b0000005c020000090000004f726420697320696c6c2d646566696e656420696e2042547265654d61702072616e6765c08010005d00000076000000110000002f72757374632f643665616561316338383630616462353330326432666261616434303965333635383561623231372f6c6962726172792f616c6c6f632f7372632f636f6c6c656374696f6e732f62747265652f7365617263682e7273000000649410005a000000e40000002e000000616c726561647920626f72726f7765642b00000000000000010000003b0000002f636172676f2d686f6d652f6769742f636865636b6f7574732f7375627374726174652d376530383433336434633337306132312f336631313031392f7072696d6974697665732f73746174652d6d616368696e652f7372632f73746174732e7273000050811000620000007b0000001e00000050811000620000007c000000230000005081100062000000800000001e00000050811000620000008100000024000000248210006200000091000000090000002482100062000000910000003500000024821000620000007b0000000d0000002f636172676f2d686f6d652f72656769737472792f7372632f6769746875622e636f6d2d316563633632393964623965633832332f7061726974792d7363616c652d636f6465632d322e312e302f7372632f656e636f64655f617070656e642e72732f636172676f2d686f6d652f72656769737472792f7372632f6769746875622e636f6d2d316563633632393964623965633832332f7061726974792d7363616c652d636f6465632d322e312e302f7372632f636f6d706163742e727300002b00000008000000040000006a000000f48c10004e0000000c0100002e000000416e204f7665726c617956616c756520697320616c7761797320637265617465642077697468206174206c65617374206f6e65207472616e73616374696f6e20616e642064726f7070656420617320736f6f6e0a09617320746865206c617374207472616e73616374696f6e2069732072656d6f7665643b20716564908310007800000086000000230000002f636172676f2d686f6d652f6769742f636865636b6f7574732f7375627374726174652d376530383433336434633337306132312f336631313031392f7072696d6974697665732f73746174652d6d616368696e652f7372632f6f7665726c617965645f6368616e6765732f6368616e67657365742e72739083100078000000970000002b0000009083100078000000a10000002b000000447261696e206973206e6f7420616c6c6f7765642077697468206f70656e207472616e73616374696f6e732e908310007800000006010000090000004e6f4f70656e5472616e73616374696f6e4120777269746520746f20616e204f7665726c6179656456616c7565206973207265636f7264656420696e20746865206469727479206b6579207365742e204265666f726520616e0a090909094f7665726c6179656456616c75652069732072656d6f7665642c2069747320636f6e7461696e696e67206469727479207365742069732072656d6f7665642e20546869730a0909090966756e6374696f6e206973206f6e6c792063616c6c656420666f72206b65797320746861742061726520696e20746865206469727479207365742e2071656400009083100078000000580100003800000090831000780000009c00000021000000416c7265616479496e52756e74696d653a65787472696e7369635f696e646578546f7020616e64206368696c6472656e206368616e67657365747320617265207374617274656420696e206c6f636b737465703b207165642b00000000000000010000006d0000002c86100072000000a501000012000000546f7020616e64206f6666636861696e206368616e67657365747320617265207374617274656420696e206c6f636b737465703b207165642c86100072000000a90100000e0000002f636172676f2d686f6d652f6769742f636865636b6f7574732f7375627374726174652d376530383433336434633337306132312f336631313031392f7072696d6974697665732f73746174652d6d616368696e652f7372632f6f7665726c617965645f6368616e6765732f6d6f642e727300002c86100072000000b80100000e0000002c86100072000000b5010000120000002b00000000000000010000006c0000002c86100072000000c70100000e000000546f7020616e64206368696c6472656e206368616e6765736574732061726520656e746572696e672072756e74696d6520696e206c6f636b737465703b207165640000002c86100072000000c40100001200000073746f72616765004c8710005800000027000000200000002f636172676f2d686f6d652f72656769737472792f7372632f6769746875622e636f6d2d316563633632393964623965633832332f61727261797665632d302e372e302f7372632f61727261797665635f696d706c2e7273db8710000d000000c6871000150000003c87100000000000c4871000020000003a20696e73756666696369656e7420636170616369747943617061636974794572726f72040000000000000044656661756c744572726f723a6368696c645f73746f726167653a3a6368696c645f73746f726167653a64656661756c743a000034881000570000007d010000050000002f636172676f2d686f6d652f6769742f636865636b6f7574732f7375627374726174652d376530383433336434633337306132312f336631313031392f7072696d6974697665732f747269652f7372632f6c69622e7273009c8810004d000000e80b00000d0000002f72757374632f643665616561316338383630616462353330326432666261616434303965333635383561623231372f6c6962726172792f636f72652f7372632f736c6963652f6d6f642e7273000000fc8810005e000000470000001f0000002f636172676f2d686f6d652f6769742f636865636b6f7574732f7375627374726174652d376530383433336434633337306132312f336631313031392f7072696d6974697665732f747269652f7372632f6e6f64655f636f6465632e72730000fc8810005e00000050000000140000007c8910004e0000005b050000150000002f72757374632f643665616561316338383630616462353330326432666261616434303965333635383561623231372f6c6962726172792f636f72652f7372632f736c6963652f697465722e72730000ec8910005f0000004000000040000000ec8910005f000000400000004d0000002f636172676f2d686f6d652f6769742f636865636b6f7574732f7375627374726174652d376530383433336434633337306132312f336631313031392f7072696d6974697665732f747269652f7372632f747269655f73747265616d2e727300ec8910005f0000003f0000003100000001000000000000006c656e20213d20302073696e6365206c656e2025203220213d20303b20696e6e6572206861732061206c61737420656c656d656e743b207165640000b08a10005b0000003d000000120000002f636172676f2d686f6d652f72656769737472792f7372632f6769746875622e636f6d2d316563633632393964623965633832332f747269652d64622d302e32322e322f7372632f6e6962626c652f6e6962626c657665632e72736c656e20213d20303b20696e6e657220686173206c61737420656c656d3b20716564000000b08a10005b0000004800000025000000b08a10005b0000006000000033000000b08a10005b000000600000000d000000b08a10005b000000690000000f000000b08a10005b0000006b0000000f000000b08a10005b0000006b0000003e000000b08a10005b0000009100000039000000b08a10005b0000009100000011000000b08a10005b0000009300000011000000b08a10005b0000009400000040000000b08a10005b000000940000004e000000008c10005d0000009800000017000000008c10005d00000096000000290000002f636172676f2d686f6d652f72656769737472792f7372632f6769746875622e636f6d2d316563633632393964623965633832332f747269652d64622d302e32322e322f7372632f6e6962626c652f6e6962626c65736c6963652e7273000000848e1000550000004d0000001c000000008c10005d0000004000000012000000008c10005d0000004f0000002d000000008c10005d0000005500000032000000008c10005d000000dd0000000f000000008c10005d000000df0000000f000000008c10005d000000df0000003d0000006361706163697479206f766572666c6f77000000f48c10004e000000fb000000360000002f636172676f2d686f6d652f72656769737472792f7372632f6769746875622e636f6d2d316563633632393964623965633832332f736d616c6c7665632d312e362e312f7372632f6c69622e7273617373657274696f6e206661696c65643a206e65775f636170203e3d206c656e0000f48c10004e000000320300000d000000617373657274696f6e206661696c65643a20696e646578203c3d206c656e0000f48c10004e0000005f05000009000000848e1000550000008d0000003c000000848e1000550000008d00000051000000848e1000550000008d00000031000000f48d10004f0000004b00000042000000f48d10004f0000004a0000003e0000002f636172676f2d686f6d652f72656769737472792f7372632f6769746875622e636f6d2d316563633632393964623965633832332f747269652d64622d302e32322e322f7372632f6e6f64652e727300f48d10004f0000006b00000022000000f48d10004f0000009a00000032000000f48d10004f000000a20000003e000000f48d10004f000000aa0000003e0000002f636172676f2d686f6d652f72656769737472792f7372632f6769746875622e636f6d2d316563633632393964623965633832332f747269652d64622d302e32322e322f7372632f6e6962626c652f6d6f642e7273000000848e1000550000008600000031000000848e1000550000008600000042000000848e1000550000008600000026000000848e100055000000870000001d000000848e100055000000870000000d000000848e1000550000008e00000018000000848e1000550000008e0000000d0000006c8f10005400000042060000090000006c8f10005400000042060000320000002f636172676f2d686f6d652f72656769737472792f7372632f6769746875622e636f6d2d316563633632393964623965633832332f747269652d64622d302e32322e322f7372632f7472696564626d75742e72736c656e202b20707265666978206d696e757320322a736b6970706564206973206c657373207468616e20343b207165642b0000000000000001000000c0000000109010005800000054020000200000002f636172676f2d686f6d652f6769742f636865636b6f7574732f706f6c6b61646f742d343033386632376435653465613265382f363239623836392f78636d2f7372632f76302f6d756c74695f6c6f636174696f6e2e72732829617373657274696f6e206661696c65643a20656467652e686569676874203d3d2073656c662e686569676874202d20310000dc9010005b0000007902000009000000617373657274696f6e206661696c65643a20696478203c204341504143495459dc9010005b0000007d020000090000002f72757374632f643665616561316338383630616462353330326432666261616434303965333635383561623231372f6c6962726172792f616c6c6f632f7372632f636f6c6c656374696f6e732f62747265652f6e6f64652e7273617373657274696f6e206661696c65643a2073656c662e686569676874203e2030dc9010005b000000d400000009000000dc9010005b0000002604000016000000617373657274696f6e206661696c65643a207372632e6c656e2829203d3d206473742e6c656e2829dc9010005b000000a706000005000000617373657274696f6e206661696c65643a20656467652e686569676874203d3d2073656c662e6e6f64652e686569676874202d2031000000dc9010005b0000009403000009000000dc9010005b00000063040000160000004094100013000000dc9010005b0000009f0400001f000000617373657274696f6e206661696c65643a206e65775f6c6566745f6c656e203c3d2043415041434954590000dc9010005b000000d304000009000000617373657274696f6e206661696c65643a206f6c645f6c6566745f6c656e202b20636f756e74203c3d2043415041434954590000dc9010005b000000860500000d000000617373657274696f6e206661696c65643a206f6c645f72696768745f6c656e203e3d20636f756e74dc9010005b000000870500000d000000696e7465726e616c206572726f723a20656e746572656420756e726561636861626c6520636f6465dc9010005b000000b705000016000000617373657274696f6e206661696c65643a206f6c645f72696768745f6c656e202b20636f756e74203c3d20434150414349545900dc9010005b000000470500000d000000617373657274696f6e206661696c65643a206f6c645f6c6566745f6c656e203e3d20636f756e7400dc9010005b000000480500000d000000dc9010005b0000007705000016000000617373657274696f6e206661696c65643a206d6174636820747261636b5f656467655f696478207b5c6e202020204c6566744f7252696768743a3a4c6566742869647829203d3e20696478203c3d206f6c645f6c6566745f6c656e2c5c6e202020204c6566744f7252696768743a3a52696768742869647829203d3e20696478203c3d2072696768745f6c656e2c5c6e7d000000dc9010005b0000001905000009000000656d70747920696e7465726e616c206e6f646500649410005a000000d2050000350000002f72757374632f643665616561316338383630616462353330326432666261616434303965333635383561623231372f6c6962726172792f616c6c6f632f7372632f636f6c6c656374696f6e732f62747265652f6d61702e727363616c6c65642060526573756c743a3a756e77726170282960206f6e20616e2060457272602076616c7565000000959510001d0000006b9510002a0000000c9510005f0000005c000000120000002f72757374632f643665616561316338383630616462353330326432666261616434303965333635383561623231372f6c6962726172792f616c6c6f632f7372632f636f6c6c656374696f6e732f62747265652f6e617669676174652e7273696e7465726e616c206572726f723a20656e746572656420756e726561636861626c6520636f64653a2042547265654d61702068617320646966666572656e742064657074687363616c6c656420604f7074696f6e3a3a756e77726170282960206f6e206120604e6f6e65602076616c7565000000f095100060000000450100002e0000002f72757374632f643665616561316338383630616462353330326432666261616434303965333635383561623231372f6c6962726172792f616c6c6f632f7372632f636f6c6c656374696f6e732f62747265652f6d61702f656e7472792e7273f095100060000000fb0100002a0000000041e0acc2000b84024f8167f7390000000000000000000000000000000000000000000000000000003c871000c07a100039000000000000000000000000000000000000000000000000000000aa00000000000000ab00000000000000ac00000000000000ad00000000000000ae00000000000000af00000000000000b000000000000000b100000000000000b200000000000000b300000000000000b400000000000000b500000000000000b600000000000000b700000000000000b800000000000000b900000000000000ba00000000000000bb00000000000000bc00000000000000bd00000000000000be00000000000000bf00000000000000c100000000000000c2000000000000000041e4aec2000b080000000000000000009ebe03046e616d650195be038a05001f6578745f6c6f6767696e675f6d61785f6c6576656c5f76657273696f6e5f3101236578745f63727970746f5f656432353531395f7665726966795f76657273696f6e5f3102286578745f63727970746f5f66696e6973685f62617463685f7665726966795f76657273696f6e5f3103376578745f63727970746f5f736563703235366b315f65636473615f7265636f7665725f636f6d707265737365645f76657273696f6e5f3104236578745f63727970746f5f737232353531395f7665726966795f76657273696f6e5f3205276578745f63727970746f5f73746172745f62617463685f7665726966795f76657273696f6e5f3106296578745f64656661756c745f6368696c645f73746f726167655f636c6561725f76657273696f6e5f3107306578745f64656661756c745f6368696c645f73746f726167655f636c6561725f7072656669785f76657273696f6e5f31082a6578745f64656661756c745f6368696c645f73746f726167655f6578697374735f76657273696f6e5f3109276578745f64656661756c745f6368696c645f73746f726167655f6765745f76657273696f6e5f310a2c6578745f64656661756c745f6368696c645f73746f726167655f6e6578745f6b65795f76657273696f6e5f310b286578745f64656661756c745f6368696c645f73746f726167655f726561645f76657273696f6e5f310c286578745f64656661756c745f6368696c645f73746f726167655f726f6f745f76657273696f6e5f310d276578745f64656661756c745f6368696c645f73746f726167655f7365745f76657273696f6e5f310e306578745f64656661756c745f6368696c645f73746f726167655f73746f726167655f6b696c6c5f76657273696f6e5f330f206578745f68617368696e675f626c616b65325f3235365f76657273696f6e5f31101e6578745f68617368696e675f74776f785f3132385f76657273696f6e5f31111d6578745f68617368696e675f74776f785f36345f76657273696f6e5f31121c6578745f616c6c6f6361746f725f667265655f76657273696f6e5f31131e6578745f616c6c6f6361746f725f6d616c6c6f635f76657273696f6e5f31142a6578745f747269655f626c616b65325f3235365f6f7264657265645f726f6f745f76657273696f6e5f31151c6578745f6d6973635f7072696e745f6865785f76657273696f6e5f31161d6578745f6d6973635f7072696e745f757466385f76657273696f6e5f3117226578745f6d6973635f72756e74696d655f76657273696f6e5f76657273696f6e5f31181c6578745f73746f726167655f617070656e645f76657273696f6e5f3119226578745f73746f726167655f6368616e6765735f726f6f745f76657273696f6e5f311a1b6578745f73746f726167655f636c6561725f76657273696f6e5f311b226578745f73746f726167655f636c6561725f7072656669785f76657273696f6e5f311c286578745f73746f726167655f636f6d6d69745f7472616e73616374696f6e5f76657273696f6e5f311d1c6578745f73746f726167655f6578697374735f76657273696f6e5f311e196578745f73746f726167655f6765745f76657273696f6e5f311f1e6578745f73746f726167655f6e6578745f6b65795f76657273696f6e5f31201a6578745f73746f726167655f726561645f76657273696f6e5f31212a6578745f73746f726167655f726f6c6c6261636b5f7472616e73616374696f6e5f76657273696f6e5f31221a6578745f73746f726167655f726f6f745f76657273696f6e5f3123196578745f73746f726167655f7365745f76657273696f6e5f3124276578745f73746f726167655f73746172745f7472616e73616374696f6e5f76657273696f6e5f3125196578745f6c6f6767696e675f6c6f675f76657273696f6e5f3126226578745f6f6666636861696e5f696e6465785f636c6561725f76657273696f6e5f3127206578745f6f6666636861696e5f696e6465785f7365745f76657273696f6e5f31281a5f5f727573745f616c6c6f635f6572726f725f68616e646c657229085f5f72675f6f6f6d2a33616c6c6f633a3a616c6c6f633a3a68616e646c655f616c6c6f635f6572726f723a3a68333061346538636637383161313439352b08727573745f6f6f6d2c34616c6c6f633a3a7261775f7665633a3a63617061636974795f6f766572666c6f773a3a68613038323933633636383239313437322d29636f72653a3a70616e69636b696e673a3a70616e69633a3a68633634663937353362386131626537362e2e616c6c6f633a3a7261775f7665633a3a66696e6973685f67726f773a3a68656339623739316366306636613034362f4773705f696f3a3a616c6c6f6361746f723a3a65787465726e5f686f73745f66756e6374696f6e5f696d706c733a3a6d616c6c6f633a3a6834326331343661653530346433356666304573705f696f3a3a616c6c6f6361746f723a3a65787465726e5f686f73745f66756e6374696f6e5f696d706c733a3a667265653a3a68626366333766366332326536363666383125616c6c6f633a3a666d743a3a666f726d61743a3a68643432303262663434353165343131393223636f72653a3a666d743a3a77726974653a3a68333430663261356164623035383937333336636f72653a3a70616e69636b696e673a3a70616e69635f626f756e64735f636865636b3a3a68646437306131633532326639613438643433636f72653a3a6f7074696f6e3a3a6578706563745f6e6f6e655f6661696c65643a3a6831376562363366633533333530333131353a3c266d7574205720617320636f72653a3a666d743a3a57726974653e3a3a77726974655f7374723a3a6838353961653439643663393635393637363b3c266d7574205720617320636f72653a3a666d743a3a57726974653e3a3a77726974655f636861723a3a6831616337353235653037303435346637373a3c266d7574205720617320636f72653a3a666d743a3a57726974653e3a3a77726974655f666d743a3a68643763656436386638663462396463343841616c6c6f633a3a7665633a3a5665633c542c413e3a3a73706c69745f6f66663a3a6173736572745f6661696c65643a3a6863396261303864613362366438653238394e636f72653a3a666d743a3a6e756d3a3a696d703a3a3c696d706c20636f72653a3a666d743a3a446973706c617920666f72207533323e3a3a666d743a3a68306334353861313332393630653838363a2d636f72653a3a70616e69636b696e673a3a70616e69635f666d743a3a68666131356635343732656635653535373b39636f72653a3a6f70733a3a66756e6374696f6e3a3a466e4f6e63653a3a63616c6c5f6f6e63653a3a68373638663331393138346165616262633c2f636f72653a3a666d743a3a6e756d3a3a696d703a3a666d745f7536343a3a68643763323462363139653738396437373d11727573745f626567696e5f756e77696e643e6f636f72653a3a7074723a3a64726f705f696e5f706c6163653c26636f72653a3a697465723a3a61646170746572733a3a636f706965643a3a436f706965643c636f72653a3a736c6963653a3a697465723a3a497465723c75383e3e3e3a3a68303337356532313964323463386639343f313c5420617320636f72653a3a616e793a3a416e793e3a3a747970655f69643a3a68313033663031323363306638356437354035636f72653a3a666d743a3a466f726d61747465723a3a7061645f696e74656772616c3a3a68383135303965336538336430303731664143636f72653a3a666d743a3a466f726d61747465723a3a7061645f696e74656772616c3a3a77726974655f7072656669783a3a6839636664666535336133306563353732423f636f72653a3a736c6963653a3a696e6465783a3a736c6963655f656e645f696e6465785f6c656e5f6661696c3a3a6862306437653965636439326333383039432c636f72653a3a666d743a3a466f726d61747465723a3a7061643a3a6863353362303232656334613136333438442e636f72653a3a7374723a3a736c6963655f6572726f725f6661696c3a3a683435336562653238633361336438346345323c265420617320636f72653a3a666d743a3a446973706c61793e3a3a666d743a3a6837303937326161326135396364643266464a3c636f72653a3a6f70733a3a72616e67653a3a52616e67653c4964783e20617320636f72653a3a666d743a3a44656275673e3a3a666d743a3a686362346137653762616233323061356547323c6368617220617320636f72653a3a666d743a3a44656275673e3a3a666d743a3a6863663462376533363964353837643838483d636f72653a3a736c6963653a3a696e6465783a3a736c6963655f696e6465785f6f726465725f6661696c3a3a6864656239323832323238363332653738494c636f72653a3a666d743a3a6e756d3a3a3c696d706c20636f72653a3a666d743a3a446562756720666f72207573697a653e3a3a666d743a3a68643064663134366464616534363035322e33364a41636f72653a3a736c6963653a3a696e6465783a3a736c6963655f73746172745f696e6465785f6c656e5f6661696c3a3a68613439303565646262633466653039634b37636f72653a3a70616e69636b696e673a3a6173736572745f6661696c65645f696e6e65723a3a68316666313534376234653230616232334c303c265420617320636f72653a3a666d743a3a44656275673e3a3a666d743a3a68633565373764323837313130393962384d443c636f72653a3a666d743a3a417267756d656e747320617320636f72653a3a666d743a3a446973706c61793e3a3a666d743a3a68363136303135393134303964616134324e453c636f72653a3a63656c6c3a3a426f72726f774572726f7220617320636f72653a3a666d743a3a44656275673e3a3a666d743a3a68623430393836373563346430353330394f483c636f72653a3a63656c6c3a3a426f72726f774d75744572726f7220617320636f72653a3a666d743a3a44656275673e3a3a666d743a3a6865613965386466313938353365636338502e636f72653a3a6f7074696f6e3a3a6578706563745f6661696c65643a3a683366636136316461313636313733646451323c265420617320636f72653a3a666d743a3a446973706c61793e3a3a666d743a3a683366383035316236663836346364353552533c636f72653a3a666d743a3a6275696c646572733a3a5061644164617074657220617320636f72653a3a666d743a3a57726974653e3a3a77726974655f7374723a3a6838333664333462346532333465316661533a636f72653a3a666d743a3a6275696c646572733a3a44656275675374727563743a3a6669656c643a3a6865643034343232393336373231643836542f636f72653a3a666d743a3a57726974653a3a77726974655f636861723a3a6861353338356234313535363961373963552e636f72653a3a666d743a3a57726974653a3a77726974655f666d743a3a6861646464353133356664303638666132563a3c266d7574205720617320636f72653a3a666d743a3a57726974653e3a3a77726974655f7374723a3a6861343030363464633465653062613966573b3c266d7574205720617320636f72653a3a666d743a3a57726974653e3a3a77726974655f636861723a3a6864643133613937613137353537313131583a3c266d7574205720617320636f72653a3a666d743a3a57726974653e3a3a77726974655f666d743a3a68383034393062363733333362616238375939636f72653a3a666d743a3a6275696c646572733a3a44656275675475706c653a3a6669656c643a3a68373230316338653237323030613438375a31636f72653a3a666d743a3a6e756d3a3a70617273655f7536345f696e746f3a3a68373835633739313239623639613262665b4e636f72653a3a736c6963653a3a3c696d706c205b545d3e3a3a636f70795f66726f6d5f736c6963653a3a6c656e5f6d69736d617463685f6661696c3a3a68333365376137316534376537386531325c303c265420617320636f72653a3a666d743a3a44656275673e3a3a666d743a3a68663265663039353738633135656166385d3e3c636f72653a3a666d743a3a4572726f7220617320636f72653a3a666d743a3a44656275673e3a3a666d743a3a68326334373934386661323433313635635e303c265420617320636f72653a3a666d743a3a44656275673e3a3a666d743a3a68633762393632303431633931303134615f773c73705f73746174655f6d616368696e653a3a747269655f6261636b656e643a3a547269654261636b656e643c532c483e2061732073705f73746174655f6d616368696e653a3a6261636b656e643a3a4261636b656e643c483e3e3a3a73746f726167653a3a6830303739336430363738623464663839608b013c73705f73746174655f6d616368696e653a3a747269655f6261636b656e645f657373656e63653a3a547269654261636b656e64457373656e63653c532c483e20617320686173685f64623a3a4861736844425265663c482c616c6c6f633a3a7665633a3a5665633c75383e3e3e3a3a636f6e7461696e733a3a68333838643038333434323963346131656186013c73705f73746174655f6d616368696e653a3a747269655f6261636b656e645f657373656e63653a3a547269654261636b656e64457373656e63653c532c483e20617320686173685f64623a3a4861736844425265663c482c616c6c6f633a3a7665633a3a5665633c75383e3e3e3a3a6765743a3a68623866393636653961653939306636356239747269655f64623a3a6e6f64655f636f6465633a3a4e6f6465436f6465633a3a6465636f64653a3a6838643539323031363638363233353531633473705f72756e74696d653a3a7472616974733a3a486173683a3a686173685f6f663a3a683066633834336633356333363139323264423c73705f7374643a3a57726974657220617320636f72653a3a666d743a3a57726974653e3a3a77726974655f7374723a3a6865323538316239383066346463346339654973705f696f3a3a68617368696e673a3a65787465726e5f686f73745f66756e6374696f6e5f696d706c733a3a626c616b65325f3235363a3a6838306530653565363235346161613533663473705f72756e74696d653a3a7472616974733a3a486173683a3a686173685f6f663a3a683262373164383663316338393034386367366861736862726f776e3a3a6d61703a3a486173684d61703c4b2c562c533e3a3a6765743a3a6835346630383263316361303466633165685463756d756c75735f70616c6c65745f70617261636861696e5f73797374656d3a3a72656c61795f73746174655f736e617073686f743a3a726561645f656e7472793a3a6835656466636537313634633266616334692e616c6c6f633a3a7261775f7665633a3a66696e6973685f67726f773a3a68303330616262643135383366393962646a5463756d756c75735f70616c6c65745f70617261636861696e5f73797374656d3a3a72656c61795f73746174655f736e617073686f743a3a726561645f656e7472793a3a68373361363432626132653235373430346b757072696d69746976655f74797065733a3a636f6465633a3a3c696d706c207061726974795f7363616c655f636f6465633a3a636f6465633a3a4465636f646520666f72207072696d69746976655f74797065733a3a483235363e3a3a6465636f64653a3a68323734313330393838666632343837616ca901636f72653a3a7074723a3a64726f705f696e5f706c6163653c6d656d6f72795f64623a3a4d656d6f727944423c73705f72756e74696d653a3a7472616974733a3a426c616b6554776f3235362c6d656d6f72795f64623a3a486173684b65793c73705f72756e74696d653a3a7472616974733a3a426c616b6554776f3235363e2c616c6c6f633a3a7665633a3a5665633c75383e3e3e3a3a68313661373931313365396365303365396d6a3c63756d756c75735f70616c6c65745f70617261636861696e5f73797374656d3a3a72656c61795f73746174655f736e617073686f743a3a4572726f7220617320636f72653a3a666d743a3a44656275673e3a3a666d743a3a68616263373364366564396131383038376e303c265420617320636f72653a3a666d743a3a44656275673e3a3a666d743a3a68636135633062393531653633333134306f6b3c7061726974795f7363616c655f636f6465633a3a636f6d706163743a3a436f6d706163743c7533323e206173207061726974795f7363616c655f636f6465633a3a636f6465633a3a4465636f64653e3a3a6465636f64653a3a68366439343735383634666262386239637031747269655f64623a3a6e6f64653a3a4e6f6465506c616e3a3a6275696c643a3a6862663363343030313637663962363830716563756d756c75735f70616c6c65745f70617261636861696e5f73797374656d3a3a76616c69646174655f626c6f636b3a3a696d706c656d656e746174696f6e3a3a686f73745f73746f726167655f726561643a3a6832343936643135356665386532383039726463756d756c75735f70616c6c65745f70617261636861696e5f73797374656d3a3a76616c69646174655f626c6f636b3a3a696d706c656d656e746174696f6e3a3a686f73745f73746f726167655f7365743a3a6839633630663033326335356535633530736463756d756c75735f70616c6c65745f70617261636861696e5f73797374656d3a3a76616c69646174655f626c6f636b3a3a696d706c656d656e746174696f6e3a3a686f73745f73746f726167655f6765743a3a6831653530393234366132333433653962746763756d756c75735f70616c6c65745f70617261636861696e5f73797374656d3a3a76616c69646174655f626c6f636b3a3a696d706c656d656e746174696f6e3a3a686f73745f73746f726167655f6578697374733a3a6838656536356239386238326233393032756663756d756c75735f70616c6c65745f70617261636861696e5f73797374656d3a3a76616c69646174655f626c6f636b3a3a696d706c656d656e746174696f6e3a3a686f73745f73746f726167655f636c6561723a3a6838623634623937643033336462383537766563756d756c75735f70616c6c65745f70617261636861696e5f73797374656d3a3a76616c69646174655f626c6f636b3a3a696d706c656d656e746174696f6e3a3a686f73745f73746f726167655f726f6f743a3a6865396561653766663961663937366562776d63756d756c75735f70616c6c65745f70617261636861696e5f73797374656d3a3a76616c69646174655f626c6f636b3a3a696d706c656d656e746174696f6e3a3a686f73745f73746f726167655f636c6561725f7072656669783a3a6866303932303361346638346663656264786d63756d756c75735f70616c6c65745f70617261636861696e5f73797374656d3a3a76616c69646174655f626c6f636b3a3a696d706c656d656e746174696f6e3a3a686f73745f73746f726167655f6368616e6765735f726f6f743a3a6832656436646534383037346161303531796763756d756c75735f70616c6c65745f70617261636861696e5f73797374656d3a3a76616c69646174655f626c6f636b3a3a696d706c656d656e746174696f6e3a3a686f73745f73746f726167655f617070656e643a3a68663361376164363966393638363666617a6963756d756c75735f70616c6c65745f70617261636861696e5f73797374656d3a3a76616c69646174655f626c6f636b3a3a696d706c656d656e746174696f6e3a3a686f73745f73746f726167655f6e6578745f6b65793a3a68306431343231656536613133633465327b7263756d756c75735f70616c6c65745f70617261636861696e5f73797374656d3a3a76616c69646174655f626c6f636b3a3a696d706c656d656e746174696f6e3a3a686f73745f73746f726167655f73746172745f7472616e73616374696f6e3a3a68323635373333396330383138313664347c7563756d756c75735f70616c6c65745f70617261636861696e5f73797374656d3a3a76616c69646174655f626c6f636b3a3a696d706c656d656e746174696f6e3a3a686f73745f73746f726167655f726f6c6c6261636b5f7472616e73616374696f6e3a3a68323830663161363465346563663564657d7363756d756c75735f70616c6c65745f70617261636861696e5f73797374656d3a3a76616c69646174655f626c6f636b3a3a696d706c656d656e746174696f6e3a3a686f73745f73746f726167655f636f6d6d69745f7472616e73616374696f6e3a3a68343461356430396132333663353861657e7263756d756c75735f70616c6c65745f70617261636861696e5f73797374656d3a3a76616c69646174655f626c6f636b3a3a696d706c656d656e746174696f6e3a3a686f73745f64656661756c745f6368696c645f73746f726167655f6765743a3a68303166643439303938336539306538627f7363756d756c75735f70616c6c65745f70617261636861696e5f73797374656d3a3a76616c69646174655f626c6f636b3a3a696d706c656d656e746174696f6e3a3a686f73745f64656661756c745f6368696c645f73746f726167655f726561643a3a683561663664313734343335313533376680017263756d756c75735f70616c6c65745f70617261636861696e5f73797374656d3a3a76616c69646174655f626c6f636b3a3a696d706c656d656e746174696f6e3a3a686f73745f64656661756c745f6368696c645f73746f726167655f7365743a3a683336626362363262636638326130303081017463756d756c75735f70616c6c65745f70617261636861696e5f73797374656d3a3a76616c69646174655f626c6f636b3a3a696d706c656d656e746174696f6e3a3a686f73745f64656661756c745f6368696c645f73746f726167655f636c6561723a3a683635626230316334333232636534323882017b63756d756c75735f70616c6c65745f70617261636861696e5f73797374656d3a3a76616c69646174655f626c6f636b3a3a696d706c656d656e746174696f6e3a3a686f73745f64656661756c745f6368696c645f73746f726167655f73746f726167655f6b696c6c3a3a683838613964386232653037633730346183017563756d756c75735f70616c6c65745f70617261636861696e5f73797374656d3a3a76616c69646174655f626c6f636b3a3a696d706c656d656e746174696f6e3a3a686f73745f64656661756c745f6368696c645f73746f726167655f6578697374733a3a683031366535653465386161336631626584017b63756d756c75735f70616c6c65745f70617261636861696e5f73797374656d3a3a76616c69646174655f626c6f636b3a3a696d706c656d656e746174696f6e3a3a686f73745f64656661756c745f6368696c645f73746f726167655f636c6561725f7072656669783a3a686365326335613336323933386361303485017363756d756c75735f70616c6c65745f70617261636861696e5f73797374656d3a3a76616c69646174655f626c6f636b3a3a696d706c656d656e746174696f6e3a3a686f73745f64656661756c745f6368696c645f73746f726167655f726f6f743a3a686435646635346534333836363166336686017763756d756c75735f70616c6c65745f70617261636861696e5f73797374656d3a3a76616c69646174655f626c6f636b3a3a696d706c656d656e746174696f6e3a3a686f73745f64656661756c745f6368696c645f73746f726167655f6e6578745f6b65793a3a686166383234326335376538366539646187016b63756d756c75735f70616c6c65745f70617261636861696e5f73797374656d3a3a76616c69646174655f626c6f636b3a3a696d706c656d656e746174696f6e3a3a686f73745f6f6666636861696e5f696e6465785f7365743a3a683337376536333238326664623664623588016d63756d756c75735f70616c6c65745f70617261636861696e5f73797374656d3a3a76616c69646174655f626c6f636b3a3a696d706c656d656e746174696f6e3a3a686f73745f6f6666636861696e5f696e6465785f636c6561723a3a683162393662616661616265323062633589015b616c6c6f633a3a636f6c6c656374696f6e733a3a62747265653a3a6e6f64653a3a42616c616e63696e67436f6e746578743c4b2c563e3a3a62756c6b5f737465616c5f72696768743a3a68393232636436316339656534393564398a0160616c6c6f633a3a636f6c6c656374696f6e733a3a62747265653a3a6e6f64653a3a42616c616e63696e67436f6e746578743c4b2c563e3a3a6d657267655f747261636b696e675f706172656e743a3a68353961356333626639333232396630358b01aa02616c6c6f633a3a636f6c6c656374696f6e733a3a62747265653a3a72656d6f76653a3a3c696d706c20616c6c6f633a3a636f6c6c656374696f6e733a3a62747265653a3a6e6f64653a3a48616e646c653c616c6c6f633a3a636f6c6c656374696f6e733a3a62747265653a3a6e6f64653a3a4e6f64655265663c616c6c6f633a3a636f6c6c656374696f6e733a3a62747265653a3a6e6f64653a3a6d61726b65723a3a4d75742c4b2c562c616c6c6f633a3a636f6c6c656374696f6e733a3a62747265653a3a6e6f64653a3a6d61726b65723a3a4c6561663e2c616c6c6f633a3a636f6c6c656374696f6e733a3a62747265653a3a6e6f64653a3a6d61726b65723a3a4b563e3e3a3a72656d6f76655f6c6561665f6b763a3a68396235323838383563316239366638668c0164616c6c6f633a3a636f6c6c656374696f6e733a3a62747265653a3a6e6f64653a3a42616c616e63696e67436f6e746578743c4b2c563e3a3a6d657267655f747261636b696e675f6368696c645f656467653a3a68663636336334343939336461346130388d015a616c6c6f633a3a636f6c6c656374696f6e733a3a62747265653a3a6e6f64653a3a42616c616e63696e67436f6e746578743c4b2c563e3a3a62756c6b5f737465616c5f6c6566743a3a68346566333866613433323135613866348e015b616c6c6f633a3a636f6c6c656374696f6e733a3a62747265653a3a6e6f64653a3a42616c616e63696e67436f6e746578743c4b2c563e3a3a62756c6b5f737465616c5f72696768743a3a68346235373338633066663432313762308f0160616c6c6f633a3a636f6c6c656374696f6e733a3a62747265653a3a6e6f64653a3a42616c616e63696e67436f6e746578743c4b2c563e3a3a6d657267655f747261636b696e675f706172656e743a3a6833616562653162313030626433336162900144636f72653a3a7475706c653a3a3c696d706c20636f72653a3a636d703a3a4f726420666f722028412c42293e3a3a636d703a3a68613034643064623062616230383134339101493c78636d5f6578656375746f723a3a6173736574733a3a4173736574496420617320636f72653a3a636d703a3a4f72643e3a3a636d703a3a68303636383864366535653636373865659201473c78636d3a3a76303a3a6a756e6374696f6e3a3a4a756e6374696f6e20617320636f72653a3a636d703a3a4f72643e3a3a636d703a3a68646662343164666361366133313635379301df01616c6c6f633a3a636f6c6c656374696f6e733a3a62747265653a3a6e617669676174653a3a3c696d706c20616c6c6f633a3a636f6c6c656374696f6e733a3a62747265653a3a6e6f64653a3a4e6f64655265663c616c6c6f633a3a636f6c6c656374696f6e733a3a62747265653a3a6e6f64653a3a6d61726b65723a3a496d6d75742c4b2c562c616c6c6f633a3a636f6c6c656374696f6e733a3a62747265653a3a6e6f64653a3a6d61726b65723a3a4c6561664f72496e7465726e616c3e3e3a3a66756c6c5f72616e67653a3a68393134396666333234396466643435339401417061726974795f7363616c655f636f6465633a3a636f6465633a3a6465636f64655f7665635f776974685f6c656e3a3a683264373937333463383331313630326295016678636d3a3a76303a3a5f3a3a3c696d706c207061726974795f7363616c655f636f6465633a3a636f6465633a3a4465636f646520666f722078636d3a3a76303a3a58636d3c43616c6c3e3e3a3a6465636f64653a3a6835306336626135386330616138616634960156636f72653a3a7074723a3a64726f705f696e5f706c6163653c78636d3a3a76303a3a58636d3c63756d756c75735f7368656c6c5f72756e74696d653a3a43616c6c3e3e3a3a68313336383831376432363135346263349701417061726974795f7363616c655f636f6465633a3a636f6465633a3a6465636f64655f7665635f776974685f6c656e3a3a68396231393235336435353862323061369801543c616c6c6f633a3a7665633a3a5665633c543e206173207061726974795f7363616c655f636f6465633a3a636f6465633a3a4465636f64653e3a3a6465636f64653a3a683535303331346331393834356537616299018a0178636d3a3a76303a3a6d756c74695f6c6f636174696f6e3a3a5f3a3a3c696d706c207061726974795f7363616c655f636f6465633a3a636f6465633a3a4465636f646520666f722078636d3a3a76303a3a6d756c74695f6c6f636174696f6e3a3a4d756c74694c6f636174696f6e3e3a3a6465636f64653a3a68353933653363656563306661613662329a014d636f72653a3a7074723a3a64726f705f696e5f706c6163653c78636d3a3a76303a3a6d756c74695f61737365743a3a4d756c746941737365743e3a3a68323738636637323934616561376561649b016b3c7061726974795f7363616c655f636f6465633a3a636f6d706163743a3a436f6d706163743c7533323e206173207061726974795f7363616c655f636f6465633a3a636f6465633a3a4465636f64653e3a3a6465636f64653a3a68393030333064336133633037653464359c0153636f72653a3a7074723a3a64726f705f696e5f706c6163653c78636d3a3a76303a3a6d756c74695f6c6f636174696f6e3a3a4d756c74694c6f636174696f6e3e3a3a68363135313237383266376333633632309d016b3c7061726974795f7363616c655f636f6465633a3a636f6d706163743a3a436f6d706163743c7536343e206173207061726974795f7363616c655f636f6465633a3a636f6465633a3a4465636f64653e3a3a6465636f64653a3a68643632326537333366613938363866359e01810178636d3a3a76303a3a6d756c74695f61737365743a3a5f3a3a3c696d706c207061726974795f7363616c655f636f6465633a3a636f6465633a3a4465636f646520666f722078636d3a3a76303a3a6d756c74695f61737365743a3a4d756c746941737365743e3a3a6465636f64653a3a68363234376232346239643861613030359f01417061726974795f7363616c655f636f6465633a3a636f6465633a3a6465636f64655f7665635f776974685f6c656e3a3a6862396263626564656438646661343733a00146636f72653a3a7074723a3a64726f705f696e5f706c6163653c78636d3a3a76303a3a6f726465723a3a4f726465723c28293e3e3a3a6834363736633432643364656534303461a1016678636d3a3a76303a3a5f3a3a3c696d706c207061726974795f7363616c655f636f6465633a3a636f6465633a3a4465636f646520666f722078636d3a3a76303a3a58636d3c43616c6c3e3e3a3a6465636f64653a3a6865313536363964623264303164613730a20142636f72653a3a7074723a3a64726f705f696e5f706c6163653c78636d3a3a76303a3a58636d3c28293e3e3a3a68613738356331663539613539376436312e31353539a301417061726974795f7363616c655f636f6465633a3a636f6465633a3a6465636f64655f7665635f776974685f6c656e3a3a6865646566366137313461386231396465a40161636f72653a3a7074723a3a64726f705f696e5f706c6163653c5b78636d3a3a76303a3a6f726465723a3a4f726465723c63756d756c75735f7368656c6c5f72756e74696d653a3a43616c6c3e5d3e3a3a6834653766663530323632636265323266a501437061726974795f7363616c655f636f6465633a3a636f6465633a3a636f6d706163745f656e636f64655f6c656e5f746f3a3a6863616132616138366137616631306265a601483c5b545d206173207061726974795f7363616c655f636f6465633a3a636f6465633a3a456e636f64653e3a3a656e636f64655f746f3a3a6861343063636637616237646337363864a701483c5b543b204e5d206173207061726974795f7363616c655f636f6465633a3a636f6465633a3a4465636f64653e3a3a6465636f64653a3a6837303636363630646233663138326237a801483c5b543b204e5d206173207061726974795f7363616c655f636f6465633a3a636f6465633a3a4465636f64653e3a3a6465636f64653a3a6837373234323638316264363037396230a901483c5b543b204e5d206173207061726974795f7363616c655f636f6465633a3a636f6465633a3a4465636f64653e3a3a6465636f64653a3a6864393866656562666237326136623766aa016a6672616d655f737570706f72743a3a73746f726167653a3a74797065733a3a76616c75653a3a53746f7261676556616c75653c5072656669782c56616c75652c51756572794b696e642c4f6e456d7074793e3a3a6765743a3a6865643763376635653136333435653231ab014773705f696f3a3a68617368696e673a3a65787465726e5f686f73745f66756e6374696f6e5f696d706c733a3a74776f785f3132383a3a6830316533306565373533323661303130ac01303c265420617320636f72653a3a666d743a3a44656275673e3a3a666d743a3a6834363732643331666161323165336564ad014673705f696f3a3a6d6973633a3a65787465726e5f686f73745f66756e6374696f6e5f696d706c733a3a7072696e745f757466383a3a6838616365353236353938326665656362ae016a6672616d655f737570706f72743a3a73746f726167653a3a74797065733a3a76616c75653a3a53746f7261676556616c75653c5072656669782c56616c75652c51756572794b696e642c4f6e456d7074793e3a3a7075743a3a6836303063643331636339323333643164af01766672616d655f737570706f72743a3a73746f726167653a3a67656e657261746f723a3a76616c75653a3a3c696d706c206672616d655f737570706f72743a3a73746f726167653a3a53746f7261676556616c75653c543e20666f7220473e3a3a6765743a3a6837313366643331356566323537346131b001766672616d655f737570706f72743a3a73746f726167653a3a67656e657261746f723a3a76616c75653a3a3c696d706c206672616d655f737570706f72743a3a73746f726167653a3a53746f7261676556616c75653c543e20666f7220473e3a3a6765743a3a6861626537373734396634383130613536b1017c636f72653a3a7074723a3a64726f705f696e5f706c6163653c747269655f64623a3a7472696564626d75743a3a5472696544424d75743c73705f747269653a3a4c61796f75743c73705f72756e74696d653a3a7472616974733a3a426c616b6554776f3235363e3e3e3a3a6834646337376364306536306561613431b20143616c6c6f633a3a636f6c6c656374696f6e733a3a7665635f64657175653a3a56656344657175653c543e3a3a67726f773a3a6838613638653561613766666632646530b3013c747269655f64623a3a7472696564626d75743a3a4e6f646553746f726167653c483e3a3a616c6c6f633a3a6839366165663935626663323133333033b4014473705f747269653a3a6e6f64655f636f6465633a3a7061727469616c5f66726f6d5f6974657261746f725f656e636f64653a3a6866626162363863363963666365343235b50160747269655f64623a3a6e6962626c653a3a6e6962626c657665633a3a3c696d706c20747269655f64623a3a6e6962626c653a3a4e6962626c655665633e3a3a617070656e645f7061727469616c3a3a6862643663643737303237643839326162b60156747269655f64623a3a6e6962626c653a3a6e6962626c657665633a3a3c696d706c20747269655f64623a3a6e6962626c653a3a4e6962626c655665633e3a3a707573683a3a6863663630363336346237373163376238b70141747269655f64623a3a7472696564626d75743a3a5472696544424d75743c4c3e3a3a636f6d6d69745f6368696c643a3a6830666634643134653731346536633661b8015c747269655f64623a3a6e6962626c653a3a6e6962626c657665633a3a3c696d706c20747269655f64623a3a6e6962626c653a3a4e6962626c655665633e3a3a64726f705f6c617374733a3a6862616238663962306165326162313032b901633c73705f747269653a3a6e6f64655f636f6465633a3a4e6f6465436f6465633c483e20617320747269655f64623a3a6e6f64655f636f6465633a3a4e6f6465436f6465633e3a3a6c6561665f6e6f64653a3a6830663336376164663265303138363634ba0160747269655f64623a3a6e6962626c653a3a6e6962626c65736c6963653a3a3c696d706c20747269655f64623a3a6e6962626c653a3a4e6962626c65536c6963653e3a3a72696768745f697465723a3a6865313261376161656463326131363630bb0172747269655f64623a3a6e6962626c653a3a6e6962626c657665633a3a3c696d706c20747269655f64623a3a6e6962626c653a3a4e6962626c655665633e3a3a617070656e645f6f7074696f6e616c5f736c6963655f616e645f6e6962626c653a3a6834356235366663323661333337313231bc01683c73705f747269653a3a6e6f64655f636f6465633a3a4e6f6465436f6465633c483e20617320747269655f64623a3a6e6f64655f636f6465633a3a4e6f6465436f6465633e3a3a657874656e73696f6e5f6e6f64653a3a6838366632663838613939623139343935bd01653c73705f747269653a3a6e6f64655f636f6465633a3a4e6f6465436f6465633c483e20617320747269655f64623a3a6e6f64655f636f6465633a3a4e6f6465436f6465633e3a3a6272616e63685f6e6f64653a3a6861303330343036333537356432636165be015c636f72653a3a7074723a3a64726f705f696e5f706c6163653c747269655f64623a3a7472696564626d75743a3a4e6f64653c7072696d69746976655f74797065733a3a483235363e3e3a3a6866373835336133336663356239353233bf018502636f72653a3a7074723a3a64726f705f696e5f706c6163653c73705f73746174655f6d616368696e653a3a747269655f6261636b656e645f657373656e63653a3a547269654261636b656e64457373656e63653c6d656d6f72795f64623a3a4d656d6f727944423c73705f72756e74696d653a3a7472616974733a3a426c616b6554776f3235362c6d656d6f72795f64623a3a486173684b65793c73705f72756e74696d653a3a7472616974733a3a426c616b6554776f3235363e2c616c6c6f633a3a7665633a3a5665633c75383e3e2c73705f72756e74696d653a3a7472616974733a3a426c616b6554776f3235363e3e3a3a6831323262313561333965653465333131c0014f3c73705f747269653a3a4b657953706163656444424d75743c44422c483e20617320686173685f64623a3a4861736844423c482c543e3e3a3a6765743a3a6831346534653638373962383333363636c1013473705f747269653a3a6b657973706163655f61735f7072656669785f616c6c6f633a3a6862663837306231326431353733623835c2017a3c73705f73746174655f6d616368696e653a3a747269655f6261636b656e645f657373656e63653a3a457068656d6572616c3c532c483e20617320686173685f64623a3a4861736844423c482c616c6c6f633a3a7665633a3a5665633c75383e3e3e3a3a6765743a3a6864353739343566393433346266336230c301543c73705f747269653a3a4b657953706163656444424d75743c44422c483e20617320686173685f64623a3a4861736844423c482c543e3e3a3a636f6e7461696e733a3a6835313936613133366239633965663066c4017f3c73705f73746174655f6d616368696e653a3a747269655f6261636b656e645f657373656e63653a3a457068656d6572616c3c532c483e20617320686173685f64623a3a4861736844423c482c616c6c6f633a3a7665633a3a5665633c75383e3e3e3a3a636f6e7461696e733a3a6838316563323563643766363030323335c501523c73705f747269653a3a4b657953706163656444424d75743c44422c483e20617320686173685f64623a3a4861736844423c482c543e3e3a3a696e736572743a3a6830323439636163376663636364316431c601523c6d656d6f72795f64623a3a4d656d6f727944423c482c4b462c542c4d3e20617320686173685f64623a3a4861736844423c482c543e3e3a3a696e736572743a3a6834643230613866613063613130656462c701533c73705f747269653a3a4b657953706163656444424d75743c44422c483e20617320686173685f64623a3a4861736844423c482c543e3e3a3a656d706c6163653a3a6837616364666338393937623566306630c801533c6d656d6f72795f64623a3a4d656d6f727944423c482c4b462c542c4d3e20617320686173685f64623a3a4861736844423c482c543e3e3a3a656d706c6163653a3a6831316566303234393338343834356564c901523c73705f747269653a3a4b657953706163656444424d75743c44422c483e20617320686173685f64623a3a4861736844423c482c543e3e3a3a72656d6f76653a3a6839376635353630636533363966393639ca01386861736862726f776e3a3a6d61703a3a486173684d61703c4b2c562c533e3a3a656e7472793a3a6835613638306366633565333736656362cb013d6861736862726f776e3a3a6d61703a3a566163616e74456e7472793c4b2c562c533e3a3a696e736572743a3a6839343531326630623937383231346631cc01583c73705f747269653a3a4b657953706163656444424d75743c44422c483e20617320686173685f64623a3a41734861736844423c482c543e3e3a3a61735f686173685f64623a3a6865303339633736656232626633396633cd015c3c73705f747269653a3a4b657953706163656444424d75743c44422c483e20617320686173685f64623a3a41734861736844423c482c543e3e3a3a61735f686173685f64625f6d75743a3a6866323362663739353136633534353463ce013173705f747269653a3a656d7074795f6368696c645f747269655f726f6f743a3a6832343639333138656635643431616533cf0146616c6c6f633a3a636f6c6c656374696f6e733a3a62747265653a3a6d61703a3a42547265654d61703c4b2c563e3a3a6b6579733a3a6865613735613538666464326466373631d0016a636f72653a3a6f70733a3a66756e6374696f6e3a3a696d706c733a3a3c696d706c20636f72653a3a6f70733a3a66756e6374696f6e3a3a466e4f6e63653c413e20666f7220266d757420463e3a3a63616c6c5f6f6e63653a3a6830383334323165306133663439303062d10128747269655f726f6f743a3a6275696c645f747269653a3a6837623231336466373963613635616638d2014f3c73705f747269653a3a4b657953706163656444423c44422c483e20617320686173685f64623a3a4861736844425265663c482c543e3e3a3a6765743a3a6830316332363261666431633336643338d301366861736862726f776e3a3a6d61703a3a486173684d61703c4b2c562c533e3a3a6765743a3a6833613031353031393962313365316561d401543c73705f747269653a3a4b657953706163656444423c44422c483e20617320686173685f64623a3a4861736844425265663c482c543e3e3a3a636f6e7461696e733a3a6862336162663734633763313434643331d5018b013c73705f73746174655f6d616368696e653a3a747269655f6261636b656e645f657373656e63653a3a547269654261636b656e64457373656e63653c532c483e20617320686173685f64623a3a4861736844425265663c482c616c6c6f633a3a7665633a3a5665633c75383e3e3e3a3a636f6e7461696e733a3a6830366364353430336465346636363439d6016b3c63756d756c75735f7368656c6c5f72756e74696d653a3a52756e74696d65426c6f636b57656967687473206173206672616d655f737570706f72743a3a7472616974733a3a6d6973633a3a4765743c493e3e3a3a6765743a3a6838393130336366333734323738353439d701810163756d756c75735f7368656c6c5f72756e74696d653a3a5f3a3a3c696d706c207061726974795f7363616c655f636f6465633a3a636f6465633a3a456e636f646520666f722063756d756c75735f7368656c6c5f72756e74696d653a3a4576656e743e3a3a656e636f64655f746f3a3a6834623161323438303335616533343062d8018a016672616d655f737570706f72743a3a776569676874733a3a5f3a3a3c696d706c207061726974795f7363616c655f636f6465633a3a636f6465633a3a456e636f646520666f72206672616d655f737570706f72743a3a776569676874733a3a4469737061746368496e666f3e3a3a656e636f64655f746f3a3a6863333638666137356230386332323639d9017373705f72756e74696d653a3a5f3a3a3c696d706c207061726974795f7363616c655f636f6465633a3a636f6465633a3a456e636f646520666f722073705f72756e74696d653a3a44697370617463684572726f723e3a3a656e636f64655f746f3a3a6864393533626230303937326438623239da017578636d3a3a76303a3a7472616974733a3a5f3a3a3c696d706c207061726974795f7363616c655f636f6465633a3a636f6465633a3a456e636f646520666f722078636d3a3a76303a3a7472616974733a3a4572726f723e3a3a656e636f64655f746f3a3a6830303936323135613461396230353434db014f63756d756c75735f7368656c6c5f72756e74696d653a3a52756e74696d653a3a5f5f6d6f64756c655f6576656e74735f6672616d655f73797374656d3a3a6833373235626461383063646565386166dc016263756d756c75735f7368656c6c5f72756e74696d653a3a52756e74696d653a3a5f5f6d6f64756c655f6576656e74735f63756d756c75735f70616c6c65745f70617261636861696e5f73797374656d3a3a6832363638303335333466316631633636dd015563756d756c75735f7368656c6c5f72756e74696d653a3a52756e74696d653a3a5f5f6d6f64756c655f6576656e74735f63756d756c75735f70616c6c65745f78636d3a3a6831333433386637303335383839383939de0137636f72653a3a6f70733a3a66756e6374696f6e3a3a466e4d75743a3a63616c6c5f6d75743a3a6839613236303363346365396462393861df0148636f72653a3a6f70733a3a66756e6374696f6e3a3a466e4f6e63653a3a63616c6c5f6f6e63657b7b767461626c652e7368696d7d7d3a3a6831646562646664343237316532393132e00181013c63756d756c75735f7368656c6c5f72756e74696d653a3a4f726967696e20617320636f72653a3a636f6e766572743a3a46726f6d3c63756d756c75735f7368656c6c5f72756e74696d653a3a4f726967696e43616c6c65723e3e3a3a66726f6d3a3a7b7b636c6f737572657d7d3a3a6838376139363063656139306335326336e1016e3c63756d756c75735f7368656c6c5f72756e74696d653a3a43616c6c206173206672616d655f737570706f72743a3a776569676874733a3a4765744469737061746368496e666f3e3a3a6765745f64697370617463685f696e666f3a3a6863376163643662393736326231393430e2015e3c63756d756c75735f7368656c6c5f72756e74696d653a3a43616c6c2061732073705f72756e74696d653a3a7472616974733a3a446973706174636861626c653e3a3a64697370617463683a3a6865343265636335356162653935623962e301613c616c6c6f633a3a636f6c6c656374696f6e733a3a62747265653a3a6d61703a3a42547265654d61703c4b2c563e20617320636f72653a3a6f70733a3a64726f703a3a44726f703e3a3a64726f703a3a6831383939633931353863623661623536e4014b73705f696f3a3a6d6973633a3a65787465726e5f686f73745f66756e6374696f6e5f696d706c733a3a72756e74696d655f76657273696f6e3a3a6865306163633236393063313830333763e50198013c63756d756c75735f70616c6c65745f70617261636861696e5f73797374656d3a3a70616c6c65743a3a43616c6c3c543e206173206672616d655f737570706f72743a3a7472616974733a3a64697370617463683a3a556e66696c7465726564446973706174636861626c653e3a3a64697370617463685f6279706173735f66696c7465723a3a6835343531663865653266626430333331e6015e6672616d655f73797374656d3a3a3c696d706c206672616d655f73797374656d3a3a70616c6c65743a3a50616c6c65743c543e3e3a3a6465706f7369745f6576656e745f696e64657865643a3a6866333639616164346636343364656533e7016f3c73705f72756e74696d653a3a67656e657269633a3a6469676573743a3a4469676573744974656d3c486173683e206173207061726974795f7363616c655f636f6465633a3a636f6465633a3a456e636f64653e3a3a656e636f64653a3a6832383362393231353932626537653162e8017c63756d756c75735f70616c6c65745f70617261636861696e5f73797374656d3a3a3c696d706c2063756d756c75735f70616c6c65745f70617261636861696e5f73797374656d3a3a70616c6c65743a3a50616c6c65743c543e3e3a3a7365745f636f64655f696d706c3a3a6830623733356333373064343665326464e9017d63756d756c75735f7368656c6c5f72756e74696d653a3a5f3a3a3c696d706c207061726974795f7363616c655f636f6465633a3a636f6465633a3a4465636f646520666f722063756d756c75735f7368656c6c5f72756e74696d653a3a43616c6c3e3a3a6465636f64653a3a6833396337646530373861346662386638ea01593c636f72653a3a6f7074696f6e3a3a4f7074696f6e3c543e206173207061726974795f7363616c655f636f6465633a3a636f6465633a3a4465636f64653e3a3a6465636f64653a3a6830323634353533663965353761353664eb01543c616c6c6f633a3a7665633a3a5665633c543e206173207061726974795f7363616c655f636f6465633a3a636f6465633a3a4465636f64653e3a3a6465636f64653a3a6866363762306539353363383033656535ec01ae0163756d756c75735f7072696d6974697665735f70617261636861696e5f696e686572656e743a3a5f3a3a3c696d706c207061726974795f7363616c655f636f6465633a3a636f6465633a3a4465636f646520666f722063756d756c75735f7072696d6974697665735f70617261636861696e5f696e686572656e743a3a50617261636861696e496e686572656e74446174613e3a3a6465636f64653a3a6864623432376462353838353935316261ed013473705f72756e74696d653a3a7472616974733a3a486173683a3a686173685f6f663a3a6835656663326464323864373136333630ee01713c7061726974795f7363616c655f636f6465633a3a636f6d706163743a3a436f6d706163745265663c7533323e206173207061726974795f7363616c655f636f6465633a3a636f6465633a3a456e636f64653e3a3a656e636f64655f746f3a3a6837383761373236613430313732363265ef0189016672616d655f73797374656d3a3a6c696d6974733a3a5f3a3a3c696d706c207061726974795f7363616c655f636f6465633a3a636f6465633a3a456e636f646520666f72206672616d655f73797374656d3a3a6c696d6974733a3a57656967687473506572436c6173733e3a3a656e636f64655f746f3a3a6864613136626136386366356530653861f00196013c78636d5f6275696c6465723a3a6c6f636174696f6e5f636f6e76657273696f6e3a3a4c6f636174696f6e496e7665727465723c416e6365737472793e2061732078636d5f6578656375746f723a3a7472616974733a3a636f6e76657273696f6e3a3a496e766572744c6f636174696f6e3e3a3a696e766572745f6c6f636174696f6e3a3a6831373331656531333538353136663139f1014d3c78636d3a3a76303a3a6a756e6374696f6e3a3a4a756e6374696f6e20617320636f72653a3a636c6f6e653a3a436c6f6e653e3a3a636c6f6e653a3a6861616166613664613866303866616439f2013d78636d3a3a76303a3a6d756c74695f6c6f636174696f6e3a3a4d756c74694c6f636174696f6e3a3a61743a3a6835333739313765616339303366623761f3014578636d3a3a76303a3a6d756c74695f6c6f636174696f6e3a3a4d756c74694c6f636174696f6e3a3a74616b655f66697273743a3a6835353561303665663362383065343861f4014d636f72653a3a7074723a3a64726f705f696e5f706c6163653c78636d3a3a76303a3a6a756e6374696f6e3a3a4a756e6374696f6e3e3a3a68313234333763346266356133303532392e31333031f5019901706f6c6b61646f745f7072696d6974697665733a3a76313a3a5f3a3a3c696d706c207061726974795f7363616c655f636f6465633a3a636f6465633a3a4465636f646520666f7220706f6c6b61646f745f7072696d6974697665733a3a76313a3a50657273697374656456616c69646174696f6e446174613c482c4e3e3e3a3a6465636f64653a3a6863636562346533396563306432633035f6019c01706f6c6b61646f745f7072696d6974697665733a3a76313a3a5f3a3a3c696d706c207061726974795f7363616c655f636f6465633a3a636f6465633a3a456e636f646520666f7220706f6c6b61646f745f7072696d6974697665733a3a76313a3a50657273697374656456616c69646174696f6e446174613c482c4e3e3e3a3a656e636f64655f746f3a3a6839633061656131383833323666313662f701303c265420617320636f72653a3a666d743a3a44656275673e3a3a666d743a3a6830326266343763653164616261396165f8013b3c266d7574205720617320636f72653a3a666d743a3a57726974653e3a3a77726974655f636861723a3a6831653731663866333935386365623561f9013a3c266d7574205720617320636f72653a3a666d743a3a57726974653e3a3a77726974655f666d743a3a6862326531656339393035366366633437fa01553c73705f72756e74696d653a3a4d756c74695369676e61747572652061732073705f72756e74696d653a3a7472616974733a3a5665726966793e3a3a7665726966793a3a6865306634353139393466313137306134fb014c73705f696f3a3a63727970746f3a3a65787465726e5f686f73745f66756e6374696f6e5f696d706c733a3a656432353531395f7665726966793a3a6861646465353763386438666236353633fc014c73705f696f3a3a63727970746f3a3a65787465726e5f686f73745f66756e6374696f6e5f696d706c733a3a737232353531395f7665726966793a3a6830373365333231666464343138356334fd016073705f696f3a3a63727970746f3a3a65787465726e5f686f73745f66756e6374696f6e5f696d706c733a3a736563703235366b315f65636473615f7265636f7665725f636f6d707265737365643a3a6863626362636165653737396333623837fe013e6861736862726f776e3a3a7261773a3a5261775461626c653c543e3a3a726573657276655f7265686173683a3a6836356339326337386331306562333936ff01443c736d616c6c7665633a3a536d616c6c5665633c413e20617320636f72653a3a686173683a3a486173683e3a3a686173683a3a683965616139663264323336343936666480023e6861736862726f776e3a3a7261773a3a5261775461626c653c543e3a3a726573657276655f7265686173683a3a68373436306562363966316238383136388102a90163756d756c75735f70616c6c65745f70617261636861696e5f73797374656d3a3a3c696d706c2073705f72756e74696d653a3a7472616974733a3a56616c6964617465556e7369676e656420666f722063756d756c75735f70616c6c65745f70617261636861696e5f73797374656d3a3a70616c6c65743a3a50616c6c65743c543e3e3a3a76616c69646174655f756e7369676e65643a3a68373162353434666536306332323035668202386672616d655f737570706f72743a3a73746f726167653a3a756e6861736865643a3a6765743a3a68653064383534303830333966343433328302910173705f72756e74696d653a3a67656e657269633a3a6469676573743a3a5f3a3a3c696d706c207061726974795f7363616c655f636f6465633a3a636f6465633a3a4465636f646520666f722073705f72756e74696d653a3a67656e657269633a3a6469676573743a3a4469676573743c486173683e3e3a3a6465636f64653a3a68326436386536396534316233343034668402783c63756d756c75735f70616c6c65745f70617261636861696e5f73797374656d3a3a70616c6c65743a3a50616c6c65743c543e206173206672616d655f6d657461646174613a3a4d6f64756c654572726f724d657461646174613e3a3a6d657461646174613a3a68653834326536616234353530663232388502386672616d655f737570706f72743a3a73746f726167653a3a756e6861736865643a3a6765743a3a68386262303865396562636333653536648602386672616d655f737570706f72743a3a73746f726167653a3a756e6861736865643a3a6765743a3a68323836636537656164646239353730398702433c58206173207061726974795f7363616c655f636f6465633a3a636f6465633a3a456e636f64653e3a3a656e636f64653a3a6863383638313961366630373466656137880231636f72653a3a70616e69636b696e673a3a6173736572745f6661696c65643a3a6836386461336534386264626164613663890231636f72653a3a70616e69636b696e673a3a6173736572745f6661696c65643a3a68656461386636303235633263633436308a0231636f72653a3a70616e69636b696e673a3a6173736572745f6661696c65643a3a68663232626463616464326266363230348b024673705f696f3a3a68617368696e673a3a65787465726e5f686f73745f66756e6374696f6e5f696d706c733a3a74776f785f36343a3a68623231383463663832313433303439318c02633c616c6c6f633a3a7665633a3a5665633c543e20617320616c6c6f633a3a7665633a3a737065635f66726f6d5f697465723a3a5370656346726f6d497465723c542c493e3e3a3a66726f6d5f697465723a3a68393432313338323666616664343732388d024a706f6c6b61646f745f7072696d6974697665733a3a76313a3a77656c6c5f6b6e6f776e5f6b6579733a3a68726d705f6368616e6e656c733a3a68386562323265343164623261356230348e02463c616c6c6f633a3a7665633a3a5665633c542c413e20617320636f72653a3a636c6f6e653a3a436c6f6e653e3a3a636c6f6e653a3a68393337663861386633306233366264668f02463c58206173207061726974795f7363616c655f636f6465633a3a636f6465633a3a456e636f64653e3a3a656e636f64655f746f3a3a68653061613130306563383264346137369002386672616d655f737570706f72743a3a73746f726167653a3a756e6861736865643a3a6765743a3a686138373037656265326334346365396391023b78636d3a3a76303a3a7472616974733a3a4578656375746558636d3a3a657865637574655f78636d3a3a68373437646434623038383937343664379202723c636f72653a3a697465723a3a61646170746572733a3a666c617474656e3a3a466c61744d61703c492c552c463e20617320636f72653a3a697465723a3a7472616974733a3a6974657261746f723a3a4974657261746f723e3a3a6e6578743a3a68613032336261653231616265336163359302613c616c6c6f633a3a636f6c6c656374696f6e733a3a62747265653a3a6d61703a3a496e746f497465723c4b2c563e20617320636f72653a3a6f70733a3a64726f703a3a44726f703e3a3a64726f703a3a683030373633313837643162363763373894022c616c6c6f633a3a736c6963653a3a696e736572745f686561643a3a68373162623766316662316161323839319502613c616c6c6f633a3a636f6c6c656374696f6e733a3a62747265653a3a6d61703a3a42547265654d61703c4b2c563e20617320636f72653a3a6f70733a3a64726f703a3a44726f703e3a3a64726f703a3a6863626339343933356135316239323238960247616c6c6f633a3a636f6c6c656374696f6e733a3a62747265653a3a6d61703a3a42547265654d61703c4b2c563e3a3a656e7472793a3a6836383737663065303936653930393433970252616c6c6f633a3a636f6c6c656374696f6e733a3a62747265653a3a6d61703a3a656e7472793a3a566163616e74456e7472793c4b2c563e3a3a696e736572743a3a68643635326133306462396135616236349802386672616d655f737570706f72743a3a73746f726167653a3a756e6861736865643a3a7075743a3a683737373262323933636665323866663199025563756d756c75735f70616c6c65745f70617261636861696e5f73797374656d3a3a70616c6c65743a3a50616c6c65743c543e3a3a63616c6c5f66756e6374696f6e733a3a68313839333161623465623533363939369a025763756d756c75735f70616c6c65745f70617261636861696e5f73797374656d3a3a70616c6c65743a3a50616c6c65743c543e3a3a73746f726167655f6d657461646174613a3a68643964356265393830613164623866639b02a70163756d756c75735f70616c6c65745f70617261636861696e5f73797374656d3a3a70616c6c65743a3a5f3a3a3c696d706c207061726974795f7363616c655f636f6465633a3a636f6465633a3a456e636f646520666f722063756d756c75735f70616c6c65745f70617261636861696e5f73797374656d3a3a70616c6c65743a3a43616c6c3c543e3e3a3a656e636f64655f746f3a3a68636432376237353366336530323063399c027978636d3a3a76303a3a6a756e6374696f6e3a3a5f3a3a3c696d706c207061726974795f7363616c655f636f6465633a3a636f6465633a3a4465636f646520666f722078636d3a3a76303a3a6a756e6374696f6e3a3a4a756e6374696f6e3e3a3a6465636f64653a3a68656434343132646534396564313064319d028d0178636d3a3a76303a3a6d756c74695f6c6f636174696f6e3a3a5f3a3a3c696d706c207061726974795f7363616c655f636f6465633a3a636f6465633a3a456e636f646520666f722078636d3a3a76303a3a6d756c74695f6c6f636174696f6e3a3a4d756c74694c6f636174696f6e3e3a3a656e636f64655f746f3a3a68616362303431633239626665376635629e027c78636d3a3a76303a3a6a756e6374696f6e3a3a5f3a3a3c696d706c207061726974795f7363616c655f636f6465633a3a636f6465633a3a456e636f646520666f722078636d3a3a76303a3a6a756e6374696f6e3a3a4a756e6374696f6e3e3a3a656e636f64655f746f3a3a68656334376465626134376562313938659f027d3c6672616d655f737570706f72743a3a73746f726167653a3a74797065733a3a4f6e456d7074794765747465723c56616c75652c4f6e456d7074793e206173206672616d655f6d657461646174613a3a44656661756c74427974653e3a3a64656661756c745f627974653a3a6830316261303162663866316632323038a0027d3c6672616d655f737570706f72743a3a73746f726167653a3a74797065733a3a4f6e456d7074794765747465723c56616c75652c4f6e456d7074793e206173206672616d655f6d657461646174613a3a44656661756c74427974653e3a3a64656661756c745f627974653a3a6830643932613761323131373735616362a1027d3c6672616d655f737570706f72743a3a73746f726167653a3a74797065733a3a4f6e456d7074794765747465723c56616c75652c4f6e456d7074793e206173206672616d655f6d657461646174613a3a44656661756c74427974653e3a3a64656661756c745f627974653a3a6831383533333462356530373636303564a2027d3c6672616d655f737570706f72743a3a73746f726167653a3a74797065733a3a4f6e456d7074794765747465723c56616c75652c4f6e456d7074793e206173206672616d655f6d657461646174613a3a44656661756c74427974653e3a3a64656661756c745f627974653a3a6836633039623862616362366166653932a3027d3c6672616d655f737570706f72743a3a73746f726167653a3a74797065733a3a4f6e456d7074794765747465723c56616c75652c4f6e456d7074793e206173206672616d655f6d657461646174613a3a44656661756c74427974653e3a3a64656661756c745f627974653a3a6839323138373663366631383166383064a4027d3c6672616d655f737570706f72743a3a73746f726167653a3a74797065733a3a4f6e456d7074794765747465723c56616c75652c4f6e456d7074793e206173206672616d655f6d657461646174613a3a44656661756c74427974653e3a3a64656661756c745f627974653a3a6839333033623564356438356165653534a5027d3c6672616d655f737570706f72743a3a73746f726167653a3a74797065733a3a4f6e456d7074794765747465723c56616c75652c4f6e456d7074793e206173206672616d655f6d657461646174613a3a44656661756c74427974653e3a3a64656661756c745f627974653a3a6839626434383338303463623936343332a6027d3c6672616d655f737570706f72743a3a73746f726167653a3a74797065733a3a4f6e456d7074794765747465723c56616c75652c4f6e456d7074793e206173206672616d655f6d657461646174613a3a44656661756c74427974653e3a3a64656661756c745f627974653a3a6861333933316537373664386464323663a7027d3c6672616d655f737570706f72743a3a73746f726167653a3a74797065733a3a4f6e456d7074794765747465723c56616c75652c4f6e456d7074793e206173206672616d655f6d657461646174613a3a44656661756c74427974653e3a3a64656661756c745f627974653a3a6863396665353639363663353637633962a8027d3c6672616d655f737570706f72743a3a73746f726167653a3a74797065733a3a4f6e456d7074794765747465723c56616c75652c4f6e456d7074793e206173206672616d655f6d657461646174613a3a44656661756c74427974653e3a3a64656661756c745f627974653a3a6864373931616330653961616166363331a9027d3c6672616d655f737570706f72743a3a73746f726167653a3a74797065733a3a4f6e456d7074794765747465723c56616c75652c4f6e456d7074793e206173206672616d655f6d657461646174613a3a44656661756c74427974653e3a3a64656661756c745f627974653a3a6864616432613463666632393234666339aa027d3c6672616d655f737570706f72743a3a73746f726167653a3a74797065733a3a4f6e456d7074794765747465723c56616c75652c4f6e456d7074793e206173206672616d655f6d657461646174613a3a44656661756c74427974653e3a3a64656661756c745f627974653a3a6865616137313036346666333832653733ab029c013c73705f72756e74696d653a3a67656e657269633a3a756e636865636b65645f65787472696e7369633a3a556e636865636b656445787472696e7369633c416464726573732c43616c6c2c5369676e61747572652c45787472613e206173207061726974795f7363616c655f636f6465633a3a636f6465633a3a4465636f64653e3a3a6465636f64653a3a6864663066383633663737313963333331ac026b3c7061726974795f7363616c655f636f6465633a3a636f6d706163743a3a436f6d706163743c7533323e206173207061726974795f7363616c655f636f6465633a3a636f6465633a3a4465636f64653e3a3a6465636f64653a3a6864656463663364666331333830633764ad02593c636f72653a3a6f7074696f6e3a3a4f7074696f6e3c543e206173207061726974795f7363616c655f636f6465633a3a636f6465633a3a4465636f64653e3a3a6465636f64653a3a6835663932353537363033373738333033ae02543c616c6c6f633a3a7665633a3a5665633c543e206173207061726974795f7363616c655f636f6465633a3a636f6465633a3a4465636f64653e3a3a6465636f64653a3a6831626166316664313834313066376361af0248616c6c6f633a3a636f6c6c656374696f6e733a3a62747265653a3a6d61703a3a42547265654d61703c4b2c563e3a3a696e736572743a3a6863643664653830333664333739303066b0029f013c73705f72756e74696d653a3a67656e657269633a3a756e636865636b65645f65787472696e7369633a3a556e636865636b656445787472696e7369633c416464726573732c43616c6c2c5369676e61747572652c45787472613e2061732073705f72756e74696d653a3a7472616974733a3a436865636b61626c653c4c6f6f6b75703e3e3a3a636865636b3a3a6865336661663562316434393330313866b10281016672616d655f73797374656d3a3a70616c6c65743a3a5f3a3a3c696d706c207061726974795f7363616c655f636f6465633a3a636f6465633a3a456e636f646520666f72206672616d655f73797374656d3a3a70616c6c65743a3a43616c6c3c543e3e3a3a656e636f64655f746f3a3a6835666136613336656664383631646539b20248636f72653a3a7074723a3a64726f705f696e5f706c6163653c63756d756c75735f7368656c6c5f72756e74696d653a3a43616c6c3e3a3a6862376362633435363964323033376232b30256616c6c6f633a3a7665633a3a73706c6963653a3a3c696d706c20616c6c6f633a3a7665633a3a647261696e3a3a447261696e3c542c413e3e3a3a6d6f76655f7461696c3a3a6838353232613461386337353261353763b4022e616c6c6f633a3a7261775f7665633a3a66696e6973685f67726f773a3a6834626437663734376237353665643138b502623c616c6c6f633a3a7665633a3a5665633c542c413e20617320616c6c6f633a3a7665633a3a737065635f657874656e643a3a53706563457874656e643c542c493e3e3a3a737065635f657874656e643a3a6832646338336165623263356131653134b6022c616c6c6f633a3a736c6963653a3a696e736572745f686561643a3a6837306362303531333764613238396535b7026d3c747269655f64623a3a6974657261746f723a3a5472696544424e6f64654974657261746f723c4c3e20617320636f72653a3a697465723a3a7472616974733a3a6974657261746f723a3a4974657261746f723e3a3a6e6578743a3a6864636435616631633839316538316165b80255747269655f64623a3a6e6962626c653a3a6e6962626c657665633a3a3c696d706c20747269655f64623a3a6e6962626c653a3a4e6962626c655665633e3a3a706f703a3a6830336636386263323566353364363939b9025b747269655f64623a3a6e6962626c653a3a6e6962626c657665633a3a3c696d706c20747269655f64623a3a6e6962626c653a3a4e6962626c655665633e3a3a61735f7072656669783a3a6835663464373436643738336535353035ba0240747269655f64623a3a7472696564623a3a5472696544423c4c3e3a3a6765745f7261775f6f725f6c6f6f6b75703a3a6830623564613362613666333963666162bb0230616c6c6f633a3a7665633a3a5665633c542c413e3a3a726573657276653a3a6861633834386537393536616163336534bc02773c736d616c6c7665633a3a536d616c6c5665633c413e20617320636f72653a3a697465723a3a7472616974733a3a636f6c6c6563743a3a457874656e643c3c4120617320736d616c6c7665633a3a41727261793e3a3a4974656d3e3e3a3a657874656e643a3a6863643564626365663964623363376639bd0235736d616c6c7665633a3a536d616c6c5665633c413e3a3a7472795f726573657276653a3a6838316330343865636136656463306634be027c3c73705f73746174655f6d616368696e653a3a6578743a3a4578743c482c4e2c423e2061732073705f65787465726e616c69746965733a3a657874656e73696f6e733a3a457874656e73696f6e53746f72653e3a3a657874656e73696f6e5f62795f747970655f69643a3a6836346432396161643233363634626537bf0287013c73705f73746174655f6d616368696e653a3a6578743a3a4578743c482c4e2c423e2061732073705f65787465726e616c69746965733a3a657874656e73696f6e733a3a457874656e73696f6e53746f72653e3a3a646572656769737465725f657874656e73696f6e5f62795f747970655f69643a3a6830633637656262616562373361383831c00287013c73705f73746174655f6d616368696e653a3a6578743a3a4578743c482c4e2c423e2061732073705f65787465726e616c69746965733a3a657874656e73696f6e733a3a457874656e73696f6e53746f72653e3a3a72656769737465725f657874656e73696f6e5f776974685f747970655f69643a3a6839303036363861373637653462333839c1023f73705f65787465726e616c69746965733a3a45787465726e616c69746965733a3a7365745f73746f726167653a3a6832386666643731613232316465363062c202683c73705f73746174655f6d616368696e653a3a6578743a3a4578743c482c4e2c423e2061732073705f65787465726e616c69746965733a3a45787465726e616c69746965733e3a3a706c6163655f73746f726167653a3a6838646439383539343631363066303665c3025973705f73746174655f6d616368696e653a3a6f7665726c617965645f6368616e6765733a3a4f7665726c617965644368616e6765733a3a65787472696e7369635f696e6465783a3a6837626532656639376266623938303962c4025973705f73746174655f6d616368696e653a3a6f7665726c617965645f6368616e6765733a3a6368616e67657365743a3a4f7665726c617965644d61703c4b2c563e3a3a7365743a3a6837646362323563623163373162636536c5024173705f65787465726e616c69746965733a3a45787465726e616c69746965733a3a636c6561725f73746f726167653a3a6831356361616133613438343866623631c6024573705f65787465726e616c69746965733a3a45787465726e616c69746965733a3a7365745f6368696c645f73746f726167653a3a6861646437366236336339373965346462c7025b73705f73746174655f6d616368696e653a3a6f7665726c617965645f6368616e6765733a3a4f7665726c617965644368616e6765733a3a7365745f6368696c645f73746f726167653a3a6864663731343138623232376234386262c8024773705f65787465726e616c69746965733a3a45787465726e616c69746965733a3a636c6561725f6368696c645f73746f726167653a3a6863623336336635613935613237613137c9026c3c7061726974795f7363616c655f636f6465633a3a636f6d706163743a3a436f6d706163743c753132383e206173207061726974795f7363616c655f636f6465633a3a636f6465633a3a4465636f64653e3a3a6465636f64653a3a6834376331656331646338363564643533ca02840178636d3a3a76303a3a6d756c74695f61737365743a3a5f3a3a3c696d706c207061726974795f7363616c655f636f6465633a3a636f6465633a3a4465636f646520666f722078636d3a3a76303a3a6d756c74695f61737365743a3a4173736574496e7374616e63653e3a3a6465636f64653a3a6866346133623034373566386530353033cb02840178636d3a3a76303a3a6d756c74695f61737365743a3a5f3a3a3c696d706c207061726974795f7363616c655f636f6465633a3a636f6465633a3a456e636f646520666f722078636d3a3a76303a3a6d756c74695f61737365743a3a4d756c746941737365743e3a3a656e636f64655f746f3a3a6839623631666332333332383863373566cc02723c7061726974795f7363616c655f636f6465633a3a636f6d706163743a3a436f6d706163745265663c753132383e206173207061726974795f7363616c655f636f6465633a3a636f6465633a3a456e636f64653e3a3a656e636f64655f746f3a3a6835356662346430663131373166323961cd02870178636d3a3a76303a3a6d756c74695f61737365743a3a5f3a3a3c696d706c207061726974795f7363616c655f636f6465633a3a636f6465633a3a456e636f646520666f722078636d3a3a76303a3a6d756c74695f61737365743a3a4173736574496e7374616e63653e3a3a656e636f64655f746f3a3a6830333431363639346262383061353166ce022b78636d3a3a76303a3a58636d3c43616c6c3e3a3a66726f6d3a3a6863643332373162653563373563393865cf026c3c636f72653a3a697465723a3a61646170746572733a3a6d61703a3a4d61703c492c463e20617320636f72653a3a697465723a3a7472616974733a3a6974657261746f723a3a4974657261746f723e3a3a7472795f666f6c643a3a6831373165343932393432653337346463d0026978636d3a3a76303a3a5f3a3a3c696d706c207061726974795f7363616c655f636f6465633a3a636f6465633a3a456e636f646520666f722078636d3a3a76303a3a58636d3c43616c6c3e3e3a3a656e636f64655f746f3a3a6838313265386532656231366636323939d1027978636d3a3a76303a3a6f726465723a3a5f3a3a3c696d706c207061726974795f7363616c655f636f6465633a3a636f6465633a3a456e636f646520666f722078636d3a3a76303a3a6f726465723a3a4f726465723c43616c6c3e3e3a3a656e636f64655f746f3a3a6838333532623031323263373163326263d202713c7061726974795f7363616c655f636f6465633a3a636f6d706163743a3a436f6d706163745265663c7536343e206173207061726974795f7363616c655f636f6465633a3a636f6465633a3a456e636f64653e3a3a656e636f64655f746f3a3a6834303161353730623233613133323733d302303c265420617320636f72653a3a666d743a3a44656275673e3a3a666d743a3a6833333134353631393431316531613735d402303c265420617320636f72653a3a666d743a3a44656275673e3a3a666d743a3a6833376565363165663031616561343963d502303c265420617320636f72653a3a666d743a3a44656275673e3a3a666d743a3a6833653331333538326332363836356531d602303c265420617320636f72653a3a666d743a3a44656275673e3a3a666d743a3a6864653231383832643832653738393431d702333c265420617320636f72653a3a666d743a3a4c6f7765724865783e3a3a666d743a3a6832656437393964646534616261306234d802303c265420617320636f72653a3a666d743a3a44656275673e3a3a666d743a3a6866346366323763313964353362303837d902493c736d616c6c7665633a3a536d616c6c5665633c413e20617320636f72653a3a6f70733a3a64726f703a3a44726f703e3a3a64726f703a3a6833343833373661363265336132373035da0240747269655f64623a3a6974657261746f723a3a5472696544424e6f64654974657261746f723c4c3e3a3a6e65773a3a6861366635393231306638373039656463db0248747269655f64623a3a6974657261746f723a3a5472696544424e6f64654974657261746f723c4c3e3a3a7365656b5f7072656669783a3a6832626435373665393862333961303539dc027b747269655f64623a3a6e6962626c653a3a6e6962626c65736c6963653a3a3c696d706c20636f72653a3a636d703a3a5061727469616c4f726420666f7220747269655f64623a3a6e6962626c653a3a4e6962626c65536c6963653e3a3a7061727469616c5f636d703a3a6864366231393034343662353135653837dd02653c73705f73746174655f6d616368696e653a3a6578743a3a4578743c482c4e2c423e2061732073705f65787465726e616c69746965733a3a45787465726e616c69746965733e3a3a70726f6f665f73697a653a3a6863313764656535376132396661613030de024173705f73746174655f6d616368696e653a3a6261636b656e643a3a4261636b656e643a3a70726f6f665f73697a653a3a6864353861663265666138633638666235df02673c73705f73746174655f6d616368696e653a3a6578743a3a4578743c482c4e2c423e2061732073705f65787465726e616c69746965733a3a45787465726e616c69746965733e3a3a636c6561725f7072656669783a3a6836616630373130366139333837376434e0024a616c6c6f633a3a636f6c6c656374696f6e733a3a62747265653a3a6d61703a3a42547265654d61703c4b2c563e3a3a697465725f6d75743a3a6862393131663233323632303631643236e10246616c6c6f633a3a636f6c6c656374696f6e733a3a62747265653a3a7365743a3a42547265655365743c543e3a3a696e736572743a3a6831373934336136343638303436653765e2025973705f73746174655f6d616368696e653a3a6f7665726c617965645f6368616e6765733a3a6368616e67657365743a3a4f7665726c61796564456e7472793c563e3a3a7365743a3a6863393666313466663462316361396334e30243747269655f64623a3a7472696564623a3a5472696544424974657261746f723c4c3e3a3a6e65775f70726566697865643a3a6831363434633638666463393163313436e402673c747269655f64623a3a7472696564623a3a5472696544424974657261746f723c4c3e20617320636f72653a3a697465723a3a7472616974733a3a6974657261746f723a3a4974657261746f723e3a3a6e6578743a3a6861663866633264636238323137336565e502673c73705f73746174655f6d616368696e653a3a6578743a3a4578743c482c4e2c423e2061732073705f65787465726e616c69746965733a3a45787465726e616c69746965733e3a3a73746f726167655f686173683a3a6833396230346461666231393938623537e6025973705f73746174655f6d616368696e653a3a6f7665726c617965645f6368616e6765733a3a6368616e67657365743a3a4f7665726c617965644d61703c4b2c563e3a3a6765743a3a6862353239646436353236383433656263e7025b73705f73746174655f6d616368696e653a3a747269655f6261636b656e645f657373656e63653a3a547269654261636b656e64457373656e63653c532c483e3a3a73746f726167653a3a6862633033633539363438663763316338e802673c73705f73746174655f6d616368696e653a3a6578743a3a4578743c482c4e2c423e2061732073705f65787465726e616c69746965733a3a45787465726e616c69746965733e3a3a73746f726167655f726f6f743a3a6835663264303939636364396361646430e9025d73705f73746174655f6d616368696e653a3a6f7665726c617965645f6368616e6765733a3a6368616e67657365743a3a4f7665726c617965644d61703c4b2c563e3a3a6368616e6765733a3a6834663363646565343132653439336464ea025273705f73746174655f6d616368696e653a3a6f7665726c617965645f6368616e6765733a3a4f7665726c617965644368616e6765733a3a6368696c6472656e3a3a6839353734653431343031393530623265eb024873705f73746174655f6d616368696e653a3a6261636b656e643a3a4261636b656e643a3a66756c6c5f73746f726167655f726f6f743a3a6837393938636130663836376363613438ec02683c73705f73746174655f6d616368696e653a3a6578743a3a4578743c482c4e2c423e2061732073705f65787465726e616c69746965733a3a45787465726e616c69746965733e3a3a6368696c645f73746f726167653a3a6830653737343130336461623338396332ed0245616c6c6f633a3a636f6c6c656374696f6e733a3a62747265653a3a6d61703a3a42547265654d61703c4b2c563e3a3a6765743a3a6838376466303834393062376266653863ee027d3c73705f73746174655f6d616368696e653a3a747269655f6261636b656e643a3a547269654261636b656e643c532c483e2061732073705f73746174655f6d616368696e653a3a6261636b656e643a3a4261636b656e643c483e3e3a3a6368696c645f73746f726167653a3a6830643035306535636432323965393237ef02683c73705f73746174655f6d616368696e653a3a6578743a3a4578743c482c4e2c423e2061732073705f65787465726e616c69746965733a3a45787465726e616c69746965733e3a3a6765745f77686974656c6973743a3a6837626233616637626436383161383966f002683c73705f73746174655f6d616368696e653a3a6578743a3a4578743c482c4e2c423e2061732073705f65787465726e616c69746965733a3a45787465726e616c69746965733e3a3a7365745f77686974656c6973743a3a6839643566623465623539323863356366f102693c73705f73746174655f6d616368696e653a3a6578743a3a4578743c482c4e2c423e2061732073705f65787465726e616c69746965733a3a45787465726e616c69746965733e3a3a6578697374735f73746f726167653a3a6865383364643464383438366165613032f202693c73705f73746174655f6d616368696e653a3a6578743a3a4578743c482c4e2c423e2061732073705f65787465726e616c69746965733a3a45787465726e616c69746965733e3a3a73746f726167655f617070656e643a3a6832393362333931363631666461343366f30237616c6c6f633a3a7261775f7665633a3a5261775665633c542c413e3a3a726573657276653a3a6830383662613565663438386139343936f402437061726974795f7363616c655f636f6465633a3a636f6465633a3a636f6d706163745f656e636f64655f6c656e5f746f3a3a6837336436323962336465343065633564f502703c7061726974795f7363616c655f636f6465633a3a636f6d706163743a3a436f6d706163743c543e206173207061726974795f7363616c655f636f6465633a3a636f6465633a3a456e636f64653e3a3a7573696e675f656e636f6465643a3a6861623833356636323534343263306639f6026b3c73705f73746174655f6d616368696e653a3a6578743a3a4578743c482c4e2c423e2061732073705f65787465726e616c69746965733a3a45787465726e616c69746965733e3a3a6e6578745f73746f726167655f6b65793a3a6864616365336365616165393762313935f7026e73705f73746174655f6d616368696e653a3a747269655f6261636b656e645f657373656e63653a3a547269654261636b656e64457373656e63653c532c483e3a3a6e6578745f73746f726167655f6b65795f66726f6d5f726f6f743a3a6832336263636434653039373361626231f8029b0173705f73746174655f6d616368696e653a3a6f7665726c617965645f6368616e6765733a3a6368616e67657365743a3a4f7665726c617965644d61703c616c6c6f633a3a7665633a3a5665633c75383e2c636f72653a3a6f7074696f6e3a3a4f7074696f6e3c616c6c6f633a3a7665633a3a5665633c75383e3e3e3a3a6e6578745f6368616e67653a3a6835333730303332376365316336646163f9026b3c73705f73746174655f6d616368696e653a3a6578743a3a4578743c482c4e2c423e2061732073705f65787465726e616c69746965733a3a45787465726e616c69746965733e3a3a726561645f77726974655f636f756e743a3a6861323066636631633836343664313438fa024773705f73746174655f6d616368696e653a3a6261636b656e643a3a4261636b656e643a3a726561645f77726974655f636f756e743a3a6863316466643231366631636466346536fb026d3c73705f73746174655f6d616368696e653a3a6578743a3a4578743c482c4e2c423e2061732073705f65787465726e616c69746965733a3a45787465726e616c69746965733e3a3a6368696c645f73746f726167655f686173683a3a6831346430396331393939663863623536fc026d3c73705f73746174655f6d616368696e653a3a6578743a3a4578743c482c4e2c423e2061732073705f65787465726e616c69746965733a3a45787465726e616c69746965733e3a3a6368696c645f73746f726167655f726f6f743a3a6832306231323135303338343734653335fd023a616c6c6f633a3a7665633a3a5665633c542c413e3a3a657874656e645f66726f6d5f736c6963653a3a6835393261306166653430653764343434fe0242747269655f64623a3a7472696564626d75743a3a5472696544424d75743c4c3e3a3a66726f6d5f6578697374696e673a3a6839303966633064643765333332373336ff02543c747269655f64623a3a7472696564626d75743a3a5472696544424d75743c4c3e20617320747269655f64623a3a547269654d75743c4c3e3e3a3a72656d6f76653a3a683063383563666661323134333735656680033e747269655f64623a3a7472696564626d75743a3a5472696544424d75743c4c3e3a3a696e736572745f61743a3a683835666361316163376439613863363881036d3c73705f73746174655f6d616368696e653a3a6578743a3a4578743c482c4e2c423e2061732073705f65787465726e616c69746965733a3a45787465726e616c69746965733e3a3a636c6561725f6368696c645f7072656669783a3a6835616234366634636135393832616666820347616c6c6f633a3a636f6c6c656374696f6e733a3a62747265653a3a6d61703a3a42547265654d61703c4b2c563e3a3a656e7472793a3a686130393866383330353064363864633383036173705f73746174655f6d616368696e653a3a6f7665726c617965645f6368616e6765733a3a6368616e67657365743a3a4f7665726c617965644d61703c4b2c563e3a3a737061776e5f6368696c643a3a6863363466303439373135323431333761840352616c6c6f633a3a636f6c6c656374696f6e733a3a62747265653a3a6d61703a3a656e7472793a3a566163616e74456e7472793c4b2c563e3a3a696e736572743a3a683836663033366537666531363139363585036d3c73705f73746174655f6d616368696e653a3a6578743a3a4578743c482c4e2c423e2061732073705f65787465726e616c69746965733a3a45787465726e616c69746965733e3a3a6b696c6c5f6368696c645f73746f726167653a3a683931646231623936626139386338646686037e636f72653a3a7074723a3a64726f705f696e5f706c6163653c747269655f64623a3a7472696564623a3a5472696544424974657261746f723c73705f747269653a3a4c61796f75743c73705f72756e74696d653a3a7472616974733a3a426c616b6554776f3235363e3e3e3a3a683666383263313532313035363839353887036e3c73705f73746174655f6d616368696e653a3a6578743a3a4578743c482c4e2c423e2061732073705f65787465726e616c69746965733a3a45787465726e616c69746965733e3a3a706c6163655f6368696c645f73746f726167653a3a683261343837653962336630316335396188036f3c73705f73746174655f6d616368696e653a3a6578743a3a4578743c482c4e2c423e2061732073705f65787465726e616c69746965733a3a45787465726e616c69746965733e3a3a6578697374735f6368696c645f73746f726167653a3a683661346635616264613266306230373889036f3c73705f73746174655f6d616368696e653a3a6578743a3a4578743c482c4e2c423e2061732073705f65787465726e616c69746965733a3a45787465726e616c69746965733e3a3a7365745f6f6666636861696e5f73746f726167653a3a68653064353638346139343733393066628a035973705f73746174655f6d616368696e653a3a6f7665726c617965645f6368616e6765733a3a6368616e67657365743a3a4f7665726c617965644d61703c4b2c563e3a3a7365743a3a68636265383332396336303039313866348b036f3c73705f73746174655f6d616368696e653a3a6578743a3a4578743c482c4e2c423e2061732073705f65787465726e616c69746965733a3a45787465726e616c69746965733e3a3a73746f726167655f6368616e6765735f726f6f743a3a68353037323664616638376339363866618c03713c73705f73746174655f6d616368696e653a3a6578743a3a4578743c482c4e2c423e2061732073705f65787465726e616c69746965733a3a45787465726e616c69746965733e3a3a6e6578745f6368696c645f73746f726167655f6b65793a3a68643761633535613438366637643434318d03713c73705f73746174655f6d616368696e653a3a6578743a3a4578743c482c4e2c423e2061732073705f65787465726e616c69746965733a3a45787465726e616c69746965733e3a3a72657365745f726561645f77726974655f636f756e743a3a68643062386438666362663237333861648e034d73705f73746174655f6d616368696e653a3a6261636b656e643a3a4261636b656e643a3a72657365745f726561645f77726974655f636f756e743a3a68323530643033623437383130346430388f03743c73705f73746174655f6d616368696e653a3a6578743a3a4578743c482c4e2c423e2061732073705f65787465726e616c69746965733a3a45787465726e616c69746965733e3a3a73746f726167655f696e6465785f7472616e73616374696f6e3a3a686636393832363132316238663838623390035f73705f73746174655f6d616368696e653a3a6f7665726c617965645f6368616e6765733a3a4f7665726c617965644368616e6765733a3a6164645f7472616e73616374696f6e5f696e6465783a3a68326137643261366437666237386362649103743c73705f73746174655f6d616368696e653a3a6578743a3a4578743c482c4e2c423e2061732073705f65787465726e616c69746965733a3a45787465726e616c69746965733e3a3a73746f726167655f73746172745f7472616e73616374696f6e3a3a6866646331663461393130616434623765920335736d616c6c7665633a3a536d616c6c5665633c413e3a3a7472795f726573657276653a3a683235663932353733653737643235666293034a616c6c6f633a3a636f6c6c656374696f6e733a3a62747265653a3a6d61703a3a42547265654d61703c4b2c563e3a3a697465725f6d75743a3a68336263643637613035613562616462369403753c73705f73746174655f6d616368696e653a3a6578743a3a4578743c482c4e2c423e2061732073705f65787465726e616c69746965733a3a45787465726e616c69746965733e3a3a73746f726167655f636f6d6d69745f7472616e73616374696f6e3a3a683138373932326561306337376534343695035c73705f73746174655f6d616368696e653a3a6f7665726c617965645f6368616e6765733a3a4f7665726c617965644368616e6765733a3a636f6d6d69745f7472616e73616374696f6e3a3a68306334613732656430646332383935369603773c73705f73746174655f6d616368696e653a3a6578743a3a4578743c482c4e2c423e2061732073705f65787465726e616c69746965733a3a45787465726e616c69746965733e3a3a73746f726167655f726f6c6c6261636b5f7472616e73616374696f6e3a3a683466623561613631303061316637336597035e73705f73746174655f6d616368696e653a3a6f7665726c617965645f6368616e6765733a3a4f7665726c617965644368616e6765733a3a726f6c6c6261636b5f7472616e73616374696f6e3a3a686363303436653666656138383136363998037a3c73705f73746174655f6d616368696e653a3a6578743a3a4578743c482c4e2c423e2061732073705f65787465726e616c69746965733a3a45787465726e616c69746965733e3a3a73746f726167655f72656e65775f7472616e73616374696f6e5f696e6465783a3a683333633963383736636362656661656699035f3c73705f73746174655f6d616368696e653a3a6578743a3a4578743c482c4e2c423e2061732073705f65787465726e616c69746965733a3a45787465726e616c69746965733e3a3a776970653a3a68383865333737343530396563346563629a035f73705f73746174655f6d616368696e653a3a6f7665726c617965645f6368616e6765733a3a4f7665726c617965644368616e6765733a3a647261696e5f73746f726167655f6368616e6765733a3a68333438396366366563393538313230349b03613c73705f73746174655f6d616368696e653a3a6578743a3a4578743c482c4e2c423e2061732073705f65787465726e616c69746965733a3a45787465726e616c69746965733e3a3a636f6d6d69743a3a68376161623936666332643834393961649c033d73705f73746174655f6d616368696e653a3a6261636b656e643a3a4261636b656e643a3a636f6d6d69743a3a68393939353035633834366535376337649d03623c73705f73746174655f6d616368696e653a3a6578743a3a4578743c482c4e2c423e2061732073705f65787465726e616c69746965733a3a45787465726e616c69746965733e3a3a73746f726167653a3a68386335306162383431623836633137649e030c436f72655f76657273696f6e9f03503c7061726974795f7363616c655f636f6465633a3a6572726f723a3a4572726f7220617320636f72653a3a666d743a3a446973706c61793e3a3a666d743a3a6837313936356535623339363630316139a0033c7061726974795f7363616c655f636f6465633a3a636f6465633a3a456e636f64653a3a656e636f64653a3a6865663338353965333632323338313431a10312436f72655f657865637574655f626c6f636ba203723c73705f72756e74696d653a3a67656e657269633a3a6865616465723a3a4865616465723c4e756d6265722c486173683e206173207061726974795f7363616c655f636f6465633a3a636f6465633a3a4465636f64653e3a3a6465636f64653a3a6836663861376562333534393435383035a303543c616c6c6f633a3a7665633a3a5665633c543e206173207061726974795f7363616c655f636f6465633a3a636f6465633a3a4465636f64653e3a3a6465636f64653a3a6863646436313533343439373064356330a40381016672616d655f6578656375746976653a3a4578656375746976653c53797374656d2c426c6f636b2c436f6e746578742c556e7369676e656456616c696461746f722c416c6c50616c6c6574732c434f6e52756e74696d65557067726164653e3a3a657865637574655f626c6f636b3a3a6838663665653161313266383835323237a50315436f72655f696e697469616c697a655f626c6f636ba60384016672616d655f6578656375746976653a3a4578656375746976653c53797374656d2c426c6f636b2c436f6e746578742c556e7369676e656456616c696461746f722c416c6c50616c6c6574732c434f6e52756e74696d65557067726164653e3a3a696e697469616c697a655f626c6f636b3a3a6839313361353637653962643466623462a703114d657461646174615f6d65746164617461a8036c3c7061726974795f7363616c655f636f6465633a3a636f6d706163743a3a436f6d706163743c543e206173207061726974795f7363616c655f636f6465633a3a636f6465633a3a456e636f64653e3a3a656e636f64655f746f3a3a6834613236303135633036326537366335a903417061726974795f7363616c655f636f6465633a3a636f6465633a3a656e636f64655f736c6963655f6e6f5f6c656e3a3a6861383832616363623062396162306539aa031c426c6f636b4275696c6465725f6170706c795f65787472696e736963ab0383016672616d655f6578656375746976653a3a4578656375746976653c53797374656d2c426c6f636b2c436f6e746578742c556e7369676e656456616c696461746f722c416c6c50616c6c6574732c434f6e52756e74696d65557067726164653e3a3a6170706c795f65787472696e7369633a3a6865636563643932623363336332396534ac03aa0173705f72756e74696d653a3a7472616e73616374696f6e5f76616c69646974793a3a5f3a3a3c696d706c207061726974795f7363616c655f636f6465633a3a636f6465633a3a456e636f646520666f722073705f72756e74696d653a3a7472616e73616374696f6e5f76616c69646974793a3a5472616e73616374696f6e56616c69646974794572726f723e3a3a656e636f64655f746f3a3a6832343638303535306436623933646561ad031b426c6f636b4275696c6465725f66696e616c697a655f626c6f636bae038a016672616d655f6578656375746976653a3a4578656375746976653c53797374656d2c426c6f636b2c436f6e746578742c556e7369676e656456616c696461746f722c416c6c50616c6c6574732c434f6e52756e74696d65557067726164653e3a3a69646c655f616e645f66696e616c697a655f686f6f6b3a3a6834376531663639303538356436333230af03516672616d655f73797374656d3a3a3c696d706c206672616d655f73797374656d3a3a70616c6c65743a3a50616c6c65743c543e3e3a3a66696e616c697a653a3a6830373137323738373030666662326333b00320426c6f636b4275696c6465725f696e686572656e745f65787472696e73696373b1036f3c616c6c6f633a3a636f6c6c656374696f6e733a3a62747265653a3a6d61703a3a42547265654d61703c4b2c563e206173207061726974795f7363616c655f636f6465633a3a636f6465633a3a4465636f64653e3a3a6465636f64653a3a6866386434656266623039383062646336b203613c616c6c6f633a3a636f6c6c656374696f6e733a3a62747265653a3a6d61703a3a42547265654d61703c4b2c563e20617320636f72653a3a6f70733a3a64726f703a3a44726f703e3a3a64726f703a3a6836646237336466623364623738363665b3033e73705f72756e74696d653a3a67656e657269633a3a656e636f64655f776974685f7665635f7072656669783a3a6862373336623339353730393630373364b4031c426c6f636b4275696c6465725f636865636b5f696e686572656e7473b5032b5461676765645472616e73616374696f6e51756575655f76616c69646174655f7472616e73616374696f6eb603214f6666636861696e576f726b65724170695f6f6666636861696e5f776f726b6572b703536672616d655f73797374656d3a3a3c696d706c206672616d655f73797374656d3a3a70616c6c65743a3a50616c6c65743c543e3e3a3a696e697469616c697a653a3a6832633438663832666437626366313861b803633c616c6c6f633a3a7665633a3a5665633c543e20617320616c6c6f633a3a7665633a3a737065635f66726f6d5f697465723a3a5370656346726f6d497465723c542c493e3e3a3a66726f6d5f697465723a3a6864373866643332346635313133633366b9033a616c6c6f633a3a7665633a3a5665633c542c413e3a3a657874656e645f66726f6d5f736c6963653a3a6863363633663537396561356330316138ba031f53657373696f6e4b6579735f6465636f64655f73657373696f6e5f6b657973bb032153657373696f6e4b6579735f67656e65726174655f73657373696f6e5f6b657973bc032b436f6c6c656374436f6c6c6174696f6e496e666f5f636f6c6c6563745f636f6c6c6174696f6e5f696e666fbd03386672616d655f737570706f72743a3a73746f726167653a3a756e6861736865643a3a6765743a3a6832326663616663646436616565663663be038901616c6c6f633a3a7665633a3a736f757263655f697465725f6d61726b65723a3a3c696d706c20616c6c6f633a3a7665633a3a737065635f66726f6d5f697465723a3a5370656346726f6d497465723c542c493e20666f7220616c6c6f633a3a7665633a3a5665633c543e3e3a3a66726f6d5f697465723a3a6837363332646637393437343930373338bf0331636f72653a3a70616e69636b696e673a3a6173736572745f6661696c65643a3a6864656131313935383830323236646432c00331636f72653a3a70616e69636b696e673a3a6173736572745f6661696c65643a3a6838343433653966326535313362343762c103623c616c6c6f633a3a7665633a3a5665633c542c413e20617320616c6c6f633a3a7665633a3a737065635f657874656e643a3a53706563457874656e643c542c493e3e3a3a737065635f657874656e643a3a6864653537323965316335653531666164c203793c6d656d6f72795f64623a3a4d656d6f727944423c482c4b462c616c6c6f633a3a7665633a3a5665633c75383e3e2061732073705f73746174655f6d616368696e653a3a6261636b656e643a3a436f6e736f6c69646174653e3a3a636f6e736f6c69646174653a3a6864393638616564623438616632666534c303773c78636d5f6275696c6465723a3a7765696768743a3a4669786564576569676874426f756e64733c542c433e2061732078636d5f6578656375746f723a3a7472616974733a3a7765696768743a3a576569676874426f756e64733c433e3e3a3a646565703a3a6864396662623965623534623463376135c4037a3c78636d5f6275696c6465723a3a7765696768743a3a4669786564576569676874426f756e64733c542c433e2061732078636d5f6578656375746f723a3a7472616974733a3a7765696768743a3a576569676874426f756e64733c433e3e3a3a7368616c6c6f773a3a6838346532616638643534323064613533c50380016672616d655f73797374656d3a3a5f3a3a3c696d706c207061726974795f7363616c655f636f6465633a3a636f6465633a3a456e636f646520666f72206672616d655f73797374656d3a3a4c61737452756e74696d6555706772616465496e666f3e3a3a656e636f64655f746f3a3a6866656139646632306262313536353265c6036b3c73705f72756e74696d653a3a72756e74696d655f737472696e673a3a52756e74696d65537472696e67206173207061726974795f7363616c655f636f6465633a3a636f6465633a3a456e636f64653e3a3a656e636f64653a3a6865303530353962643031393932633335c7035678636d5f6578656375746f723a3a7472616974733a3a7472616e736163745f61737365743a3a5472616e7361637441737365743a3a74656c65706f72745f61737365743a3a6862623462656638623564343363363265c8034670617261636861696e5f696e666f3a3a70616c6c65743a3a50616c6c65743c543e3a3a73746f726167655f6d657461646174613a3a6836383865333962323636653336613938c9034f70617261636861696e5f696e666f3a3a70616c6c65743a3a50616c6c65743c543e3a3a6d6f64756c655f636f6e7374616e74735f6d657461646174613a3a6837643665313733613335613736663934ca039b013c6d656d6f72795f64623a3a4d656d6f727944423c482c6d656d6f72795f64623a3a486173684b65793c483e2c616c6c6f633a3a7665633a3a5665633c75383e3e2061732073705f73746174655f6d616368696e653a3a747269655f6261636b656e645f657373656e63653a3a547269654261636b656e6453746f726167653c483e3e3a3a6765743a3a6862663364363833646463616232633361cb03463c616c6c6f633a3a7665633a3a5665633c542c413e20617320636f72653a3a636c6f6e653a3a436c6f6e653e3a3a636c6f6e653a3a6832633965323732376331313531323134cc034a63756d756c75735f70616c6c65745f78636d3a3a70616c6c65743a3a50616c6c65743c543e3a3a73746f726167655f6d657461646174613a3a6837626333613265363165356335616438cd03363c5420617320636f72653a3a636f6e766572743a3a496e746f3c553e3e3a3a696e746f3a3a6839326166656332393933386139356166ce03653c73705f747269653a3a6e6f64655f636f6465633a3a4e6f6465436f6465633c483e20617320747269655f64623a3a6e6f64655f636f6465633a3a4e6f6465436f6465633e3a3a6465636f64655f706c616e3a3a6831356466366335353430613630386339cf030e76616c69646174655f626c6f636bd003543c616c6c6f633a3a7665633a3a5665633c543e206173207061726974795f7363616c655f636f6465633a3a636f6465633a3a4465636f64653e3a3a6465636f64653a3a6833313462633738386635656234343731d1036263756d756c75735f70616c6c65745f70617261636861696e5f73797374656d3a3a76616c69646174655f626c6f636b3a3a696d706c656d656e746174696f6e3a3a76616c69646174655f626c6f636b3a3a6836353931336562346264326162383663d203783c616c6c6f633a3a636f6c6c656374696f6e733a3a62747265653a3a7365743a3a42547265655365743c543e20617320636f72653a3a697465723a3a7472616974733a3a636f6c6c6563743a3a496e746f4974657261746f723e3a3a696e746f5f697465723a3a6866643065393337386465353937646334d3034873705f73746174655f6d616368696e653a3a6261636b656e643a3a4261636b656e643a3a66756c6c5f73746f726167655f726f6f743a3a6835346565666161666363666165316334d403613c616c6c6f633a3a636f6c6c656374696f6e733a3a62747265653a3a6d61703a3a42547265654d61703c4b2c563e20617320636f72653a3a6f70733a3a64726f703a3a44726f703e3a3a64726f703a3a6835343030386234333333623262613261d5037a3c616c6c6f633a3a636f6c6c656374696f6e733a3a62747265653a3a6d61703a3a42547265654d61703c4b2c563e20617320636f72653a3a697465723a3a7472616974733a3a636f6c6c6563743a3a496e746f4974657261746f723e3a3a696e746f5f697465723a3a6865383831643839623230663063616161d603613c616c6c6f633a3a636f6c6c656374696f6e733a3a62747265653a3a6d61703a3a42547265654d61703c4b2c563e20617320636f72653a3a6f70733a3a64726f703a3a44726f703e3a3a64726f703a3a6832636362613566396136616239396265d703633c616c6c6f633a3a7665633a3a5665633c543e20617320616c6c6f633a3a7665633a3a737065635f66726f6d5f697465723a3a5370656346726f6d497465723c542c493e3e3a3a66726f6d5f697465723a3a6838303837623030333561353437646435d8036a636f72653a3a6f70733a3a66756e6374696f6e3a3a696d706c733a3a3c696d706c20636f72653a3a6f70733a3a66756e6374696f6e3a3a466e4f6e63653c413e20666f7220266d757420463e3a3a63616c6c5f6f6e63653a3a6831343433303464626232613261623663d903fd01636f72653a3a7074723a3a64726f705f696e5f706c6163653c616c6c6f633a3a636f6c6c656374696f6e733a3a62747265653a3a6d61703a3a44726f707065723c616c6c6f633a3a7665633a3a5665633c75383e2c2873705f73746174655f6d616368696e653a3a6f7665726c617965645f6368616e6765733a3a6368616e67657365743a3a4f7665726c617965644d61703c616c6c6f633a3a7665633a3a5665633c75383e2c636f72653a3a6f7074696f6e3a3a4f7074696f6e3c616c6c6f633a3a7665633a3a5665633c75383e3e3e2c73705f73746f726167653a3a4368696c64496e666f293e3e3a3a6837346332663764333938626662316335da034478636d5f6578656375746f723a3a58636d4578656375746f723c436f6e6669673e3a3a646f5f657865637574655f78636d3a3a6838313231333865653036373534376435db03583c78636d3a3a76303a3a6d756c74695f6c6f636174696f6e3a3a4d756c74694c6f636174696f6e20617320636f72653a3a636c6f6e653a3a436c6f6e653e3a3a636c6f6e653a3a6832323233306433333363653735626233dc03613c616c6c6f633a3a636f6c6c656374696f6e733a3a62747265653a3a6d61703a3a42547265654d61703c4b2c563e20617320636f72653a3a6f70733a3a64726f703a3a44726f703e3a3a64726f703a3a6865323736376564393139356161386333dd039c01636f72653a3a7074723a3a64726f705f696e5f706c6163653c616c6c6f633a3a636f6c6c656374696f6e733a3a62747265653a3a6d61703a3a44726f707065723c2878636d5f6578656375746f723a3a6173736574733a3a417373657449642c78636d3a3a76303a3a6d756c74695f61737365743a3a4173736574496e7374616e6365292c28293e3e3a3a6865623464356661633237633035363231de0381013c78636d5f6578656375746f723a3a6173736574733a3a41737365747320617320636f72653a3a636f6e766572743a3a46726f6d3c616c6c6f633a3a7665633a3a5665633c78636d3a3a76303a3a6d756c74695f61737365743a3a4d756c746941737365743e3e3e3a3a66726f6d3a3a6836303636326435373530323162663234df033d78636d3a3a76303a3a6d756c74695f61737365743a3a4d756c746941737365743a3a7265616e63686f723a3a6837333566613030303839373130323765e0034778636d3a3a76303a3a6d756c74695f6c6f636174696f6e3a3a4d756c74694c6f636174696f6e3a3a70726570656e645f776974683a3a6831616335636432636663326166356635e103783c285475706c65456c656d656e74302c5475706c65456c656d656e7431292061732078636d5f6578656375746f723a3a7472616974733a3a636f6e76657273696f6e3a3a436f6e766572744f726967696e3c4f3e3e3a3a636f6e766572745f6f726967696e3a3a6837656436393463613461666237613833e2034578636d5f6578656375746f723a3a58636d4578656375746f723c436f6e6669673e3a3a657865637574655f656666656374733a3a6835373861343161313634613462333435e3034078636d5f6578656375746f723a3a6173736574733a3a4173736574733a3a73617475726174696e675f74616b653a3a6836653133383465626364643436353030e4037a3c616c6c6f633a3a636f6c6c656374696f6e733a3a62747265653a3a6d61703a3a42547265654d61703c4b2c563e20617320636f72653a3a697465723a3a7472616974733a3a636f6c6c6563743a3a496e746f4974657261746f723e3a3a696e746f5f697465723a3a6839663339313561666662333665376435e503783c616c6c6f633a3a636f6c6c656374696f6e733a3a62747265653a3a7365743a3a42547265655365743c543e20617320636f72653a3a697465723a3a7472616974733a3a636f6c6c6563743a3a496e746f4974657261746f723e3a3a696e746f5f697465723a3a6862346539363132303666636139633163e603613c616c6c6f633a3a636f6c6c656374696f6e733a3a62747265653a3a6d61703a3a496e746f497465723c4b2c563e20617320636f72653a3a6f70733a3a64726f703a3a44726f703e3a3a64726f703a3a6831633861633538636430636437393137e70346616c6c6f633a3a636f6c6c656374696f6e733a3a62747265653a3a6d61703a3a42547265654d61703c4b2c563e3a3a697465723a3a6834383537623232383964636336373162e80344616c6c6f633a3a636f6c6c656374696f6e733a3a62747265653a3a7365743a3a42547265655365743c543e3a3a697465723a3a6866623435373336316137656230363165e9034178636d5f6578656375746f723a3a6173736574733a3a4173736574733a3a70726570656e645f6c6f636174696f6e3a3a6834643863363535303338353433323635ea03633c616c6c6f633a3a7665633a3a5665633c543e20617320616c6c6f633a3a7665633a3a737065635f66726f6d5f697465723a3a5370656346726f6d497465723c542c493e3e3a3a66726f6d5f697465723a3a6836386331373362353861363237353530eb036e3c616c6c6f633a3a636f6c6c656374696f6e733a3a62747265653a3a6d61703a3a42547265654d61703c4b2c563e20617320636f72653a3a636c6f6e653a3a436c6f6e653e3a3a636c6f6e653a3a636c6f6e655f737562747265653a3a6838346535623634323934653737366235ec036e3c616c6c6f633a3a636f6c6c656374696f6e733a3a62747265653a3a6d61703a3a42547265654d61703c4b2c563e20617320636f72653a3a636c6f6e653a3a436c6f6e653e3a3a636c6f6e653a3a636c6f6e655f737562747265653a3a6863373533366364623334316330316166ed034378636d5f6578656375746f723a3a6173736574733a3a4173736574733a3a73617475726174696e675f73756273756d653a3a6833636563333031323733343833363136ee0346616c6c6f633a3a636f6c6c656374696f6e733a3a62747265653a3a7365743a3a42547265655365743c543e3a3a696e736572743a3a6837646466666530333238363036376663ef034c78636d5f6578656375746f723a3a6173736574733a3a4173736574733a3a73617475726174696e675f73756273756d655f66756e6769626c653a3a6834666364323332643538313636626434f0036a636f72653a3a6f70733a3a66756e6374696f6e3a3a696d706c733a3a3c696d706c20636f72653a3a6f70733a3a66756e6374696f6e3a3a466e4f6e63653c413e20666f7220266d757420463e3a3a63616c6c5f6f6e63653a3a6834636536613134393036363039623036f103573c78636d3a3a76303a3a6d756c74695f6c6f636174696f6e3a3a4d756c74694c6f636174696f6e20617320636f72653a3a636d703a3a5061727469616c45713e3a3a65713a3a6865393136633431666561363838303065f2034278636d5f6578656375746f723a3a6173736574733a3a4173736574733a3a7472795f74616b655f66756e6769626c653a3a6838366531313033613365333232626234f3034678636d5f6578656375746f723a3a6173736574733a3a4173736574733a3a7472795f74616b655f6e6f6e5f66756e6769626c653a3a6864633735653630373566336436326138f4034e616c6c6f633a3a636f6c6c656374696f6e733a3a62747265653a3a6d61703a3a42547265654d61703c4b2c563e3a3a72656d6f76655f656e7472793a3a6835666137643533646539383761336235f50348616c6c6f633a3a636f6c6c656374696f6e733a3a62747265653a3a6d61703a3a42547265654d61703c4b2c563e3a3a696e736572743a3a6838613134323532613065656130373066f6034278636d5f6578656375746f723a3a6173736574733a3a4173736574733a3a74616b655f6e6f6e5f66756e6769626c653a3a6838323738363264353363646235363338f703613c616c6c6f633a3a636f6c6c656374696f6e733a3a62747265653a3a6d61703a3a42547265654d61703c4b2c563e20617320636f72653a3a6f70733a3a64726f703a3a44726f703e3a3a64726f703a3a6862383037643630653735613537313666f803613c616c6c6f633a3a636f6c6c656374696f6e733a3a62747265653a3a6d61703a3a42547265654d61703c4b2c563e20617320636f72653a3a6f70733a3a64726f703a3a44726f703e3a3a64726f703a3a6835343431396664313062653237636439f9035f636f72653a3a7074723a3a64726f705f696e5f706c6163653c78636d3a3a76303a3a6f726465723a3a4f726465723c63756d756c75735f7368656c6c5f72756e74696d653a3a43616c6c3e3e3a3a6862653437653531373264613463313862fa036a636f72653a3a6f70733a3a66756e6374696f6e3a3a696d706c733a3a3c696d706c20636f72653a3a6f70733a3a66756e6374696f6e3a3a466e4f6e63653c413e20666f7220266d757420463e3a3a63616c6c5f6f6e63653a3a6865633533663338666339646664386331fb03503c61727261797665633a3a6572726f72733a3a43617061636974794572726f723c543e20617320636f72653a3a666d743a3a44656275673e3a3a666d743a3a6865636165363036373164656464643635fc03463c58206173207061726974795f7363616c655f636f6465633a3a636f6465633a3a456e636f64653e3a3a656e636f64655f746f3a3a6866306636353264363534396362393035fd037a3c616c6c6f633a3a636f6c6c656374696f6e733a3a62747265653a3a6d61703a3a42547265654d61703c4b2c563e20617320636f72653a3a697465723a3a7472616974733a3a636f6c6c6563743a3a496e746f4974657261746f723e3a3a696e746f5f697465723a3a6866613335363136313431376463323135fe035c6672616d655f737570706f72743a3a73746f726167653a3a67656e657261746f723a3a6d61703a3a53746f726167654d61703a3a73746f726167655f6d61705f66696e616c5f6b65793a3a6862633865653564613263393761633466ff034c636f72653a3a666d743a3a6e756d3a3a3c696d706c20636f72653a3a666d743a3a446562756720666f72207533323e3a3a666d743a3a68313065656165346362323030373437362e313537398004686672616d655f73797374656d3a3a3c696d706c206672616d655f73797374656d3a3a70616c6c65743a3a50616c6c65743c543e3e3a3a72656769737465725f65787472615f7765696768745f756e636865636b65643a3a68653732393633323565336631343031348104386672616d655f737570706f72743a3a73746f726167653a3a756e6861736865643a3a6765743a3a683632326165383536326164386137666182045c6672616d655f737570706f72743a3a73746f726167653a3a67656e657261746f723a3a6d61703a3a53746f726167654d61703a3a73746f726167655f6d61705f66696e616c5f6b65793a3a686433656533303566336531643962353583045373705f696f3a3a747269653a3a65787465726e5f686f73745f66756e6374696f6e5f696d706c733a3a626c616b65325f3235365f6f7264657265645f726f6f743a3a68306561376462613364313537323961308404426672616d655f73797374656d3a3a70616c6c65743a3a50616c6c65743c543e3a3a63616c6c5f66756e6374696f6e733a3a68333261613062333564313764326534388504446672616d655f73797374656d3a3a70616c6c65743a3a50616c6c65743c543e3a3a73746f726167655f6d657461646174613a3a683061326162666261666638653664376386044d6672616d655f73797374656d3a3a70616c6c65743a3a50616c6c65743c543e3a3a6d6f64756c655f636f6e7374616e74735f6d657461646174613a3a683531306635373834303764653135366387049c013c6672616d655f73797374656d3a3a70616c6c65743a3a50616c6c65743c543e3a3a6d6f64756c655f636f6e7374616e74735f6d657461646174613a3a5353353850726566697844656661756c74427974654765747465723c543e206173206672616d655f6d657461646174613a3a44656661756c74427974653e3a3a64656661756c745f627974653a3a6866323633346661656530323062663465880499013c6672616d655f73797374656d3a3a70616c6c65743a3a50616c6c65743c543e3a3a6d6f64756c655f636f6e7374616e74735f6d657461646174613a3a56657273696f6e44656661756c74427974654765747465723c543e206173206672616d655f6d657461646174613a3a44656661756c74427974653e3a3a64656661756c745f627974653a3a683865363536653836636464383435326689049a013c6672616d655f73797374656d3a3a70616c6c65743a3a50616c6c65743c543e3a3a6d6f64756c655f636f6e7374616e74735f6d657461646174613a3a446257656967687444656661756c74427974654765747465723c543e206173206672616d655f6d657461646174613a3a44656661756c74427974653e3a3a64656661756c745f627974653a3a68373935343030346231656364323731368a04a0013c6672616d655f73797374656d3a3a70616c6c65743a3a50616c6c65743c543e3a3a6d6f64756c655f636f6e7374616e74735f6d657461646174613a3a426c6f636b48617368436f756e7444656661756c74427974654765747465723c543e206173206672616d655f6d657461646174613a3a44656661756c74427974653e3a3a64656661756c745f627974653a3a68643135653864663461643331663131328b049d013c6672616d655f73797374656d3a3a70616c6c65743a3a50616c6c65743c543e3a3a6d6f64756c655f636f6e7374616e74735f6d657461646174613a3a426c6f636b4c656e67746844656661756c74427974654765747465723c543e206173206672616d655f6d657461646174613a3a44656661756c74427974653e3a3a64656661756c745f627974653a3a68323162623536633235363936376230638c049e013c6672616d655f73797374656d3a3a70616c6c65743a3a50616c6c65743c543e3a3a6d6f64756c655f636f6e7374616e74735f6d657461646174613a3a426c6f636b5765696768747344656661756c74427974654765747465723c543e206173206672616d655f6d657461646174613a3a44656661756c74427974653e3a3a64656661756c745f627974653a3a68636336303936643766313934666332668d0448616c6c6f633a3a636f6c6c656374696f6e733a3a62747265653a3a6d61703a3a42547265654d61703c4b2c563e3a3a696e736572743a3a68326632356436616337663838643533658e044f3c78636d5f6578656375746f723a3a6173736574733a3a4173736574496420617320636f72653a3a636c6f6e653a3a436c6f6e653e3a3a636c6f6e653a3a68336462396433646230343635636664618f04653c6672616d655f73797374656d3a3a70616c6c65743a3a50616c6c65743c543e206173206672616d655f6d657461646174613a3a4d6f64756c654572726f724d657461646174613e3a3a6d657461646174613a3a68343537353034623237303936383335319004613c616c6c6f633a3a636f6c6c656374696f6e733a3a62747265653a3a6d61703a3a42547265654d61703c4b2c563e20617320636f72653a3a6f70733a3a64726f703a3a44726f703e3a3a64726f703a3a6831356535313461636166333365383864910425747269655f64623a3a547269653a3a6765743a3a68653536343939343838323838396632319204593c747269655f64623a3a7472696564623a3a5472696544424974657261746f723c4c3e20617320747269655f64623a3a547269654974657261746f723c4c3e3e3a3a7365656b3a3a686136363638373631663533383033363593048a02636f72653a3a7074723a3a64726f705f696e5f706c6163653c73705f73746174655f6d616368696e653a3a747269655f6261636b656e645f657373656e63653a3a547269654261636b656e64457373656e63653c6d656d6f72795f64623a3a4d656d6f727944423c73705f72756e74696d653a3a7472616974733a3a426c616b6554776f3235362c6d656d6f72795f64623a3a486173684b65793c73705f72756e74696d653a3a7472616974733a3a426c616b6554776f3235363e2c616c6c6f633a3a7665633a3a5665633c75383e3e2c73705f72756e74696d653a3a7472616974733a3a426c616b6554776f3235363e3e3a3a68313232623135613339656534653331312e31373139940486013c73705f73746174655f6d616368696e653a3a747269655f6261636b656e645f657373656e63653a3a547269654261636b656e64457373656e63653c532c483e20617320686173685f64623a3a4861736844425265663c482c616c6c6f633a3a7665633a3a5665633c75383e3e3e3a3a6765743a3a68313136386232366139376531306638649504aa02616c6c6f633a3a636f6c6c656374696f6e733a3a62747265653a3a72656d6f76653a3a3c696d706c20616c6c6f633a3a636f6c6c656374696f6e733a3a62747265653a3a6e6f64653a3a48616e646c653c616c6c6f633a3a636f6c6c656374696f6e733a3a62747265653a3a6e6f64653a3a4e6f64655265663c616c6c6f633a3a636f6c6c656374696f6e733a3a62747265653a3a6e6f64653a3a6d61726b65723a3a4d75742c4b2c562c616c6c6f633a3a636f6c6c656374696f6e733a3a62747265653a3a6e6f64653a3a6d61726b65723a3a4c6561663e2c616c6c6f633a3a636f6c6c656374696f6e733a3a62747265653a3a6e6f64653a3a6d61726b65723a3a4b563e3e3a3a72656d6f76655f6c6561665f6b763a3a6833616366653634653763363835616664960446616c6c6f633a3a636f6c6c656374696f6e733a3a62747265653a3a7365743a3a42547265655365743c543e3a3a696e736572743a3a683062343433613265663331396539313097044c3c78636d3a3a76303a3a6a756e6374696f6e3a3a4a756e6374696f6e20617320636f72653a3a636d703a3a5061727469616c45713e3a3a65713a3a686139383930316530353339353562323398047d3c73705f73746174655f6d616368696e653a3a747269655f6261636b656e645f657373656e63653a3a457068656d6572616c3c532c483e20617320686173685f64623a3a4861736844423c482c616c6c6f633a3a7665633a3a5665633c75383e3e3e3a3a696e736572743a3a686438353465353834343166303166356399047d3c73705f73746174655f6d616368696e653a3a747269655f6261636b656e645f657373656e63653a3a457068656d6572616c3c532c483e20617320686173685f64623a3a4861736844423c482c616c6c6f633a3a7665633a3a5665633c75383e3e3e3a3a72656d6f76653a3a68633133306133346536633731343563309a047e3c73705f73746174655f6d616368696e653a3a747269655f6261636b656e645f657373656e63653a3a457068656d6572616c3c532c483e20617320686173685f64623a3a4861736844423c482c616c6c6f633a3a7665633a3a5665633c75383e3e3e3a3a656d706c6163653a3a68643861373031366130613166623530359b0483013c73705f73746174655f6d616368696e653a3a747269655f6261636b656e645f657373656e63653a3a457068656d6572616c3c532c483e20617320686173685f64623a3a41734861736844423c482c616c6c6f633a3a7665633a3a5665633c75383e3e3e3a3a61735f686173685f64623a3a68326632376162653465613661323436399c0487013c73705f73746174655f6d616368696e653a3a747269655f6261636b656e645f657373656e63653a3a457068656d6572616c3c532c483e20617320686173685f64623a3a41734861736844423c482c616c6c6f633a3a7665633a3a5665633c75383e3e3e3a3a61735f686173685f64625f6d75743a3a68646564353439353233353330663165319d047c7061726974795f7363616c655f636f6465633a3a636f6465633a3a696e6e65725f7475706c655f696d706c3a3a3c696d706c207061726974795f7363616c655f636f6465633a3a636f6465633a3a4465636f646520666f72202851302c5230293e3a3a6465636f64653a3a68633539653461663333393538383661389e04543c616c6c6f633a3a7665633a3a5665633c543e206173207061726974795f7363616c655f636f6465633a3a636f6465633a3a4465636f64653e3a3a6465636f64653a3a68626235373765633132313530303433619f046c3c636f72653a3a697465723a3a61646170746572733a3a636861696e3a3a436861696e3c412c423e20617320636f72653a3a697465723a3a7472616974733a3a6974657261746f723a3a4974657261746f723e3a3a6e6578743a3a6863396134393164356430346562643632a004723c73705f72756e74696d653a3a67656e657269633a3a6865616465723a3a4865616465723c4e756d6265722c486173683e206173207061726974795f7363616c655f636f6465633a3a636f6465633a3a4465636f64653e3a3a6465636f64653a3a6862626266373431656433306566663131a104386672616d655f737570706f72743a3a73746f726167653a3a756e6861736865643a3a6765743a3a6865636365356138306364636463613364a2045073705f696f3a3a63727970746f3a3a65787465726e5f686f73745f66756e6374696f6e5f696d706c733a3a73746172745f62617463685f7665726966793a3a6836356465336238396535643461373434a3045173705f696f3a3a63727970746f3a3a65787465726e5f686f73745f66756e6374696f6e5f696d706c733a3a66696e6973685f62617463685f7665726966793a3a6839646161386332633466333633626365a4044573705f696f3a3a6d6973633a3a65787465726e5f686f73745f66756e6374696f6e5f696d706c733a3a7072696e745f6865783a3a6833313037363666636634346663383233a504363c5420617320636f72653a3a636f6e766572743a3a496e746f3c553e3e3a3a696e746f3a3a6862363630326565303930623965643130a60431636f72653a3a70616e69636b696e673a3a6173736572745f6661696c65643a3a6831323237313063663435666163643130a7045c3c6672616d655f737570706f72743a3a7472616974733a3a6d657461646174613a3a50616c6c657456657273696f6e20617320636f72653a3a666d743a3a44656275673e3a3a666d743a3a6863343733333632393238353666353238a8046a636f72653a3a6f70733a3a66756e6374696f6e3a3a696d706c733a3a3c696d706c20636f72653a3a6f70733a3a66756e6374696f6e3a3a466e4f6e63653c413e20666f7220266d757420463e3a3a63616c6c5f6f6e63653a3a6838313662383939386361376235643163a9043a747269655f64623a3a7472696564626d75743a3a5472696544424d75743c4c3e3a3a63616368653a3a6834316431393136343866653530326330aa0445747269655f64623a3a7472696564626d75743a3a5472696544424d75743c4c3e3a3a696e736572745f696e73706563746f723a3a6839323635663466303437663639376566ab04363c5420617320636f72653a3a636f6e766572743a3a496e746f3c553e3e3a3a696e746f3a3a6839336631356634623161396665336538ac04376861736862726f776e3a3a7365743a3a486173685365743c542c533e3a3a696e736572743a3a6861646633386430306331623961393466ad043c747269655f64623a3a7472696564626d75743a3a4e6f64653c4f3e3a3a66726f6d5f656e636f6465643a3a6865653830316163346164656533393332ae0465747269655f64623a3a6e6962626c653a3a6e6962626c65736c6963653a3a3c696d706c20747269655f64623a3a6e6962626c653a3a4e6962626c65536c6963653e3a3a746f5f73746f7265645f72616e67653a3a6832313566393262343438373337363632af043e747269655f64623a3a7472696564626d75743a3a4e6f64653c4f3e3a3a696e6c696e655f6f725f686173683a3a6866626265653931643164663532653665b0043e747269655f64623a3a7472696564626d75743a3a5472696544424d75743c4c3e3a3a72656d6f76655f61743a3a6863313966313831386436636331663837b10445747269655f64623a3a7472696564626d75743a3a5472696544424d75743c4c3e3a3a72656d6f76655f696e73706563746f723a3a6834333036646661663563646130343638b20438747269655f64623a3a7472696564626d75743a3a5472696544424d75743c4c3e3a3a6669783a3a6833616664323564386635326636343730b30432747269655f64623a3a7472696564626d75743a3a636f6d62696e655f6b65793a3a6835303732363836373338303630633137b404417061726974795f7363616c655f636f6465633a3a636f6465633a3a656e636f64655f736c6963655f6e6f5f6c656e3a3a6830313366383837663665356364303462b504417061726974795f7363616c655f636f6465633a3a636f6465633a3a656e636f64655f736c6963655f6e6f5f6c656e3a3a6863663339623665333530353637313162b604417061726974795f7363616c655f636f6465633a3a636f6465633a3a656e636f64655f736c6963655f6e6f5f6c656e3a3a6861386634393663663264383663313565b704417061726974795f7363616c655f636f6465633a3a636f6465633a3a656e636f64655f736c6963655f6e6f5f6c656e3a3a6862353035333964623761663936633865b804417061726974795f7363616c655f636f6465633a3a636f6465633a3a656e636f64655f736c6963655f6e6f5f6c656e3a3a6864343264613063613365363339333339b904417061726974795f7363616c655f636f6465633a3a636f6465633a3a656e636f64655f736c6963655f6e6f5f6c656e3a3a6861623262363533336235316362613464ba047b6672616d655f6d657461646174613a3a5f3a3a3c696d706c207061726974795f7363616c655f636f6465633a3a636f6465633a3a456e636f646520666f72206672616d655f6d657461646174613a3a53746f726167654861736865723e3a3a656e636f64655f746f3a3a6866663737316562373031663434386239bb04543c6672616d655f73797374656d3a3a6c696d6974733a3a56616c69646174696f6e4572726f727320617320636f72653a3a666d743a3a44656275673e3a3a666d743a3a6839396439363464376533383639616334bc04383c6c6f673a3a4e6f704c6f67676572206173206c6f673a3a4c6f673e3a3a656e61626c65643a3a6863353833386563616566616462336238bd04343c6c6f673a3a4e6f704c6f67676572206173206c6f673a3a4c6f673e3a3a6c6f673a3a6833373036613530626563623430313461be04363c6c6f673a3a4e6f704c6f67676572206173206c6f673a3a4c6f673e3a3a666c7573683a3a6833323266663961303132303133383362bf044e3c7061726974795f7363616c655f636f6465633a3a6572726f723a3a4572726f7220617320636f72653a3a666d743a3a44656275673e3a3a666d743a3a6835636238353930626239303132393432c0043f7061726974795f7363616c655f636f6465633a3a636f6465633a3a4f75747075743a3a707573685f627974653a3a6835346432343330353734623164636462c104333c265420617320636f72653a3a666d743a3a4c6f7765724865783e3a3a666d743a3a6839356532343834346664356661633335c2044a3c736d616c6c7665633a3a436f6c6c656374696f6e416c6c6f6345727220617320636f72653a3a666d743a3a44656275673e3a3a666d743a3a6838346665636338613465323536393566c304303c265420617320636f72653a3a666d743a3a44656275673e3a3a666d743a3a6837376161316435366631333932393538c4044273705f65787465726e616c69746965733a3a73636f70655f6c696d697465643a3a474c4f42414c3a3a5f5f696e69743a3a6834396138633561666465646638326363c5047773705f72756e74696d655f696e746572666163653a3a706173735f62793a3a3c696d706c2073705f72756e74696d655f696e746572666163653a3a7761736d3a3a46726f6d46464956616c756520666f7220543e3a3a66726f6d5f6666695f76616c75653a3a6831636264363561343838363639313838c6047773705f72756e74696d655f696e746572666163653a3a706173735f62793a3a3c696d706c2073705f72756e74696d655f696e746572666163653a3a7761736d3a3a46726f6d46464956616c756520666f7220543e3a3a66726f6d5f6666695f76616c75653a3a6834326337353836363163616465336536c7045273705f696f3a3a64656661756c745f6368696c645f73746f726167653a3a65787465726e5f686f73745f66756e6374696f6e5f696d706c733a3a636c6561723a3a6832626232396431663837393530376332c8045973705f696f3a3a64656661756c745f6368696c645f73746f726167653a3a65787465726e5f686f73745f66756e6374696f6e5f696d706c733a3a636c6561725f7072656669783a3a6862626633326661623562386566313532c9045373705f696f3a3a64656661756c745f6368696c645f73746f726167653a3a65787465726e5f686f73745f66756e6374696f6e5f696d706c733a3a6578697374733a3a6832373939396236383861326564643734ca045073705f696f3a3a64656661756c745f6368696c645f73746f726167653a3a65787465726e5f686f73745f66756e6374696f6e5f696d706c733a3a6765743a3a6839303165396231313831623664306237cb045573705f696f3a3a64656661756c745f6368696c645f73746f726167653a3a65787465726e5f686f73745f66756e6374696f6e5f696d706c733a3a6e6578745f6b65793a3a6836396237343631363136646636303136cc045173705f696f3a3a64656661756c745f6368696c645f73746f726167653a3a65787465726e5f686f73745f66756e6374696f6e5f696d706c733a3a726561643a3a6866653064373337633439333732656436cd045173705f696f3a3a64656661756c745f6368696c645f73746f726167653a3a65787465726e5f686f73745f66756e6374696f6e5f696d706c733a3a726f6f743a3a6835366232636463386439383435623564ce045073705f696f3a3a64656661756c745f6368696c645f73746f726167653a3a65787465726e5f686f73745f66756e6374696f6e5f696d706c733a3a7365743a3a6837343739636530396331363863663030cf045973705f696f3a3a64656661756c745f6368696c645f73746f726167653a3a65787465726e5f686f73745f66756e6374696f6e5f696d706c733a3a73746f726167655f6b696c6c3a3a6836326131393234613631366666663864d004303c282920617320636f72653a3a666d743a3a44656275673e3a3a666d743a3a6833373731373337333431623563313236d104323c265420617320636f72653a3a666d743a3a446973706c61793e3a3a666d743a3a6833613033656638373937343232653262d204323c265420617320636f72653a3a666d743a3a446973706c61793e3a3a666d743a3a6831633632343063396537613866326539d3042673705f696f3a3a6c6f6767696e673a3a6c6f673a3a6831363533396131366539326363386638d4044573705f696f3a3a73746f726167653a3a65787465726e5f686f73745f66756e6374696f6e5f696d706c733a3a617070656e643a3a6864333761616236613235353131363238d5044b73705f696f3a3a73746f726167653a3a65787465726e5f686f73745f66756e6374696f6e5f696d706c733a3a6368616e6765735f726f6f743a3a6835656663356564626666326565636230d6044473705f696f3a3a73746f726167653a3a65787465726e5f686f73745f66756e6374696f6e5f696d706c733a3a636c6561723a3a6836373964666331346631313130663433d7044b73705f696f3a3a73746f726167653a3a65787465726e5f686f73745f66756e6374696f6e5f696d706c733a3a636c6561725f7072656669783a3a6862653863333066343062333534663236d8045173705f696f3a3a73746f726167653a3a65787465726e5f686f73745f66756e6374696f6e5f696d706c733a3a636f6d6d69745f7472616e73616374696f6e3a3a6862383433373166626335393534633034d9044573705f696f3a3a73746f726167653a3a65787465726e5f686f73745f66756e6374696f6e5f696d706c733a3a6578697374733a3a6835663138613336356466333830356631da044273705f696f3a3a73746f726167653a3a65787465726e5f686f73745f66756e6374696f6e5f696d706c733a3a6765743a3a6832326566373862376362346332313035db044773705f696f3a3a73746f726167653a3a65787465726e5f686f73745f66756e6374696f6e5f696d706c733a3a6e6578745f6b65793a3a6830653935363231396661613931373139dc044373705f696f3a3a73746f726167653a3a65787465726e5f686f73745f66756e6374696f6e5f696d706c733a3a726561643a3a6831333365326136303638353566313964dd045373705f696f3a3a73746f726167653a3a65787465726e5f686f73745f66756e6374696f6e5f696d706c733a3a726f6c6c6261636b5f7472616e73616374696f6e3a3a6832303731316162356135353462616234de044373705f696f3a3a73746f726167653a3a65787465726e5f686f73745f66756e6374696f6e5f696d706c733a3a726f6f743a3a6838346636626261376363626163316231df044273705f696f3a3a73746f726167653a3a65787465726e5f686f73745f66756e6374696f6e5f696d706c733a3a7365743a3a6830366363366538376363316137313137e0045073705f696f3a3a73746f726167653a3a65787465726e5f686f73745f66756e6374696f6e5f696d706c733a3a73746172745f7472616e73616374696f6e3a3a6862343263393537383130346631626337e1044b73705f696f3a3a6f6666636861696e5f696e6465783a3a65787465726e5f686f73745f66756e6374696f6e5f696d706c733a3a636c6561723a3a6837636433393038303034666331316434e2044973705f696f3a3a6f6666636861696e5f696e6465783a3a65787465726e5f686f73745f66756e6374696f6e5f696d706c733a3a7365743a3a6832613733646436323361363630666636e304533c73705f72756e74696d653a3a72756e74696d655f6c6f676765723a3a52756e74696d654c6f67676572206173206c6f673a3a4c6f673e3a3a656e61626c65643a3a6839666230313735633266363431616165e4044f3c73705f72756e74696d653a3a72756e74696d655f6c6f676765723a3a52756e74696d654c6f67676572206173206c6f673a3a4c6f673e3a3a6c6f673a3a6832613666313566373266636435393838e5043a3c266d7574205720617320636f72653a3a666d743a3a57726974653e3a3a77726974655f7374723a3a6864336531323563623934326332663332e6043a3c266d7574205720617320636f72653a3a666d743a3a57726974653e3a3a77726974655f666d743a3a6835353665646366393938373039333936e704aa02616c6c6f633a3a636f6c6c656374696f6e733a3a62747265653a3a72656d6f76653a3a3c696d706c20616c6c6f633a3a636f6c6c656374696f6e733a3a62747265653a3a6e6f64653a3a48616e646c653c616c6c6f633a3a636f6c6c656374696f6e733a3a62747265653a3a6e6f64653a3a4e6f64655265663c616c6c6f633a3a636f6c6c656374696f6e733a3a62747265653a3a6e6f64653a3a6d61726b65723a3a4d75742c4b2c562c616c6c6f633a3a636f6c6c656374696f6e733a3a62747265653a3a6e6f64653a3a6d61726b65723a3a4c6561663e2c616c6c6f633a3a636f6c6c656374696f6e733a3a62747265653a3a6e6f64653a3a6d61726b65723a3a4b563e3e3a3a72656d6f76655f6c6561665f6b763a3a6834313863323165663033383532336339e80464616c6c6f633a3a636f6c6c656374696f6e733a3a62747265653a3a6e6f64653a3a42616c616e63696e67436f6e746578743c4b2c563e3a3a6d657267655f747261636b696e675f6368696c645f656467653a3a6862353465656538363436376535376331e9045a616c6c6f633a3a636f6c6c656374696f6e733a3a62747265653a3a6e6f64653a3a42616c616e63696e67436f6e746578743c4b2c563e3a3a62756c6b5f737465616c5f6c6566743a3a6861623038323664663333326432363139ea045b616c6c6f633a3a636f6c6c656374696f6e733a3a62747265653a3a6e6f64653a3a42616c616e63696e67436f6e746578743c4b2c563e3a3a62756c6b5f737465616c5f72696768743a3a6866393439646337366165336631386233eb0460616c6c6f633a3a636f6c6c656374696f6e733a3a62747265653a3a6e6f64653a3a42616c616e63696e67436f6e746578743c4b2c563e3a3a6d657267655f747261636b696e675f706172656e743a3a6862343435663836366533306234656461ec04aa02616c6c6f633a3a636f6c6c656374696f6e733a3a62747265653a3a72656d6f76653a3a3c696d706c20616c6c6f633a3a636f6c6c656374696f6e733a3a62747265653a3a6e6f64653a3a48616e646c653c616c6c6f633a3a636f6c6c656374696f6e733a3a62747265653a3a6e6f64653a3a4e6f64655265663c616c6c6f633a3a636f6c6c656374696f6e733a3a62747265653a3a6e6f64653a3a6d61726b65723a3a4d75742c4b2c562c616c6c6f633a3a636f6c6c656374696f6e733a3a62747265653a3a6e6f64653a3a6d61726b65723a3a4c6561663e2c616c6c6f633a3a636f6c6c656374696f6e733a3a62747265653a3a6e6f64653a3a6d61726b65723a3a4b563e3e3a3a72656d6f76655f6c6561665f6b763a3a6830633561626338366632383335626136ed0464616c6c6f633a3a636f6c6c656374696f6e733a3a62747265653a3a6e6f64653a3a42616c616e63696e67436f6e746578743c4b2c563e3a3a6d657267655f747261636b696e675f6368696c645f656467653a3a6866626136626332653265363235313737ee045a616c6c6f633a3a636f6c6c656374696f6e733a3a62747265653a3a6e6f64653a3a42616c616e63696e67436f6e746578743c4b2c563e3a3a62756c6b5f737465616c5f6c6566743a3a6864643966373737643537393636326234ef045b616c6c6f633a3a636f6c6c656374696f6e733a3a62747265653a3a6e6f64653a3a42616c616e63696e67436f6e746578743c4b2c563e3a3a62756c6b5f737465616c5f72696768743a3a6833323936636534346135643932316538f00460616c6c6f633a3a636f6c6c656374696f6e733a3a62747265653a3a6e6f64653a3a42616c616e63696e67436f6e746578743c4b2c563e3a3a6d657267655f747261636b696e675f706172656e743a3a6861333333616631383038363565653463f104ba01616c6c6f633a3a636f6c6c656374696f6e733a3a62747265653a3a7365617263683a3a3c696d706c20616c6c6f633a3a636f6c6c656374696f6e733a3a62747265653a3a6e6f64653a3a4e6f64655265663c426f72726f77547970652c4b2c562c616c6c6f633a3a636f6c6c656374696f6e733a3a62747265653a3a6e6f64653a3a6d61726b65723a3a4c6561664f72496e7465726e616c3e3e3a3a7365617263685f747265653a3a6833393064323636373564316338646663f2046e3c616c6c6f633a3a636f6c6c656374696f6e733a3a62747265653a3a6d61703a3a42547265654d61703c4b2c563e20617320636f72653a3a636c6f6e653a3a436c6f6e653e3a3a636c6f6e653a3a636c6f6e655f737562747265653a3a6839306235643433663438613564643364f30446616c6c6f633a3a636f6c6c656374696f6e733a3a62747265653a3a7365743a3a42547265655365743c543e3a3a696e736572743a3a6832623136316138366564643438376463f4046773705f73746174655f6d616368696e653a3a6f7665726c617965645f6368616e6765733a3a6368616e67657365743a3a4f7665726c617965644d61703c4b2c563e3a3a636c6f73655f7472616e73616374696f6e3a3a6838316564363663363163303466613866f5046f3c73705f73746174655f6d616368696e653a3a6f7665726c617965645f6368616e6765733a3a6368616e67657365743a3a4e6f4f70656e5472616e73616374696f6e20617320636f72653a3a666d743a3a44656275673e3a3a666d743a3a6839393062613539356334303738366330f6046773705f73746174655f6d616368696e653a3a6f7665726c617965645f6368616e6765733a3a6368616e67657365743a3a4f7665726c617965644d61703c4b2c563e3a3a636c6f73655f7472616e73616374696f6e3a3a6835306464383261356237333036346132f7046e3c73705f73746174655f6d616368696e653a3a6f7665726c617965645f6368616e6765733a3a6368616e67657365743a3a416c7265616479496e52756e74696d6520617320636f72653a3a666d743a3a44656275673e3a3a666d743a3a6839633431386138396131646333396662f8044c3c73705f73746174655f6d616368696e653a3a44656661756c744572726f7220617320636f72653a3a666d743a3a44656275673e3a3a666d743a3a6839353362366335636161383664346438f90439747269655f64623a3a6e6962626c653a3a6e6962626c655f6f70733a3a73686966745f6b65793a3a6836323266313733343737643339613130fa044478636d3a3a76303a3a6d756c74695f6c6f636174696f6e3a3a4d756c74694c6f636174696f6e3a3a74616b655f6c6173743a3a6831626337353231633337353332366463fb044778636d3a3a76303a3a6d756c74695f6c6f636174696f6e3a3a4d756c74694c6f636174696f6e3a3a706172656e745f636f756e743a3a6865386133306562386264666663373765fc0464616c6c6f633a3a636f6c6c656374696f6e733a3a62747265653a3a6e6f64653a3a42616c616e63696e67436f6e746578743c4b2c563e3a3a6d657267655f747261636b696e675f6368696c645f656467653a3a6863323861633434663635353935323132fd045a616c6c6f633a3a636f6c6c656374696f6e733a3a62747265653a3a6e6f64653a3a42616c616e63696e67436f6e746578743c4b2c563e3a3a62756c6b5f737465616c5f6c6566743a3a6831646565613831336165346363313562fe04aa02616c6c6f633a3a636f6c6c656374696f6e733a3a62747265653a3a72656d6f76653a3a3c696d706c20616c6c6f633a3a636f6c6c656374696f6e733a3a62747265653a3a6e6f64653a3a48616e646c653c616c6c6f633a3a636f6c6c656374696f6e733a3a62747265653a3a6e6f64653a3a4e6f64655265663c616c6c6f633a3a636f6c6c656374696f6e733a3a62747265653a3a6e6f64653a3a6d61726b65723a3a4d75742c4b2c562c616c6c6f633a3a636f6c6c656374696f6e733a3a62747265653a3a6e6f64653a3a6d61726b65723a3a4c6561663e2c616c6c6f633a3a636f6c6c656374696f6e733a3a62747265653a3a6e6f64653a3a6d61726b65723a3a4b563e3e3a3a72656d6f76655f6c6561665f6b763a3a6866323834643231653432363761303565ff04ba01616c6c6f633a3a636f6c6c656374696f6e733a3a62747265653a3a7365617263683a3a3c696d706c20616c6c6f633a3a636f6c6c656374696f6e733a3a62747265653a3a6e6f64653a3a4e6f64655265663c426f72726f77547970652c4b2c562c616c6c6f633a3a636f6c6c656374696f6e733a3a62747265653a3a6e6f64653a3a6d61726b65723a3a4c6561664f72496e7465726e616c3e3e3a3a7365617263685f747265653a3a686237306635613461623737643366303380054278636d5f6578656375746f723a3a6173736574733a3a417373657449643a3a70726570656e645f6c6f636174696f6e3a3a686336633265373764613739316331346281054a636f72653a3a7074723a3a64726f705f696e5f706c6163653c78636d5f6578656375746f723a3a6173736574733a3a417373657449643e3a3a6837373566333563626334623630313436820552616c6c6f633a3a636f6c6c656374696f6e733a3a62747265653a3a6d61703a3a656e7472793a3a566163616e74456e7472793c4b2c563e3a3a696e736572743a3a68616238393164666666353031633736638305095f5f6c7368727469338405085f5f6d756c7469338505066d656d6370798605076d656d6d6f76658705066d656d73657488050462636d708905095f5f6173686c74693300550970726f64756365727302086c616e6775616765010452757374000c70726f6365737365642d62790105727573746325312e35322e302d6e696768746c79202864366561656131633820323032312d30332d313429", - "0x0d715f2646c8f85767b5d2764bb27826878d434d6125b40443fe11fd292d13a4": "0x00000100", - "0x45323df7cc47150b3930e2666b0aa313878d434d6125b40443fe11fd292d13a4": "0x00000100", - "0x26aa394eea5630e07c48ae0c9558cef7a7fd6c28836b9a28522dc924110cf439": "0x01", - "0x3a65787472696e7369635f696e646578": "0x00000000", - "0x79e2fe5d327165001f8232643023ed8b878d434d6125b40443fe11fd292d13a4": "0x00000100" - }, - "childrenDefault": {} - } - } -} \ No newline at end of file diff --git a/cumulus/parachains/chain-specs/asset-hub-polkadot-genesis-values.json b/cumulus/parachains/chain-specs/asset-hub-polkadot-genesis-values.json deleted file mode 100644 index 0325288dfeb9..000000000000 --- a/cumulus/parachains/chain-specs/asset-hub-polkadot-genesis-values.json +++ /dev/null @@ -1 +0,0 @@ -[["0x15464cac3378d46f113cd5b7a4d71c84476f594316a7dfe49c1f352d95abdaf1","0x00000000"],["0x15464cac3378d46f113cd5b7a4d71c844e7b9012096b41c4eb3aaf947f6ea429","0x0000"],["0x15464cac3378d46f113cd5b7a4d71c845579297f4dfb9609e7e4c2ebab9ce40a","0x104c3d674d2a01060f0ded218e5dcc6f90c1726f43df79885eb3e22d97a20d5421c7d7d38d16bc23c6321152c50306212dc22c0efc04a2e52b5cccfc31ab3d7811c5c07ba203d7375675f5c1ebe70f0a5bb729ae57b48bcc877fcc2ab21309b7620b2d0013fb974794bd7aa452465b567d48ef70373fe231a637c1fb7c547e85b3"],["0x15464cac3378d46f113cd5b7a4d71c84579f5a43435b04a98d64da0cefe18505","0x00a0acb9030000000000000000000000"],["0x1809d78346727a0ef58c0fa03bafa3234e7b9012096b41c4eb3aaf947f6ea429","0x0000"],["0x267ada16405529c2f7ef2727d71edbde4e7b9012096b41c4eb3aaf947f6ea429","0x0000"],["0x3a63","0x"],["0x3c311d57d4daf52904616cf69648081e4e7b9012096b41c4eb3aaf947f6ea429","0x0000"],["0x3c311d57d4daf52904616cf69648081e5e0621c4869aa60c02be9adcc98a0d1d","0x104c3d674d2a01060f0ded218e5dcc6f90c1726f43df79885eb3e22d97a20d5421c7d7d38d16bc23c6321152c50306212dc22c0efc04a2e52b5cccfc31ab3d7811c5c07ba203d7375675f5c1ebe70f0a5bb729ae57b48bcc877fcc2ab21309b7620b2d0013fb974794bd7aa452465b567d48ef70373fe231a637c1fb7c547e85b3"],["0x3f1467a096bcd71a5b6a0c8155e208104e7b9012096b41c4eb3aaf947f6ea429","0x0000"],["0x57f8dc2f5ab09467896f47300f0424384e7b9012096b41c4eb3aaf947f6ea429","0x0000"],["0x57f8dc2f5ab09467896f47300f0424385e0621c4869aa60c02be9adcc98a0d1d","0x104c3d674d2a01060f0ded218e5dcc6f90c1726f43df79885eb3e22d97a20d5421c7d7d38d16bc23c6321152c50306212dc22c0efc04a2e52b5cccfc31ab3d7811c5c07ba203d7375675f5c1ebe70f0a5bb729ae57b48bcc877fcc2ab21309b7620b2d0013fb974794bd7aa452465b567d48ef70373fe231a637c1fb7c547e85b3"],["0x5e8a19e3cd1b7c148b33880c479c02814e7b9012096b41c4eb3aaf947f6ea429","0x0000"],["0x682a59d51ab9e48a8c8cc418ff9708d24e7b9012096b41c4eb3aaf947f6ea429","0x0000"],["0x7474449cca95dc5d0c00e71735a6d17d4e7b9012096b41c4eb3aaf947f6ea429","0x0000"],["0x7b3237373ffdfeb1cab4222e3b520d6b4e7b9012096b41c4eb3aaf947f6ea429","0x0000"],["0xc2261276cc9d1f8598ea4b6a74b15c2f308ce9615de0775a82f8a94dc3d285a1","0x01"],["0xc2261276cc9d1f8598ea4b6a74b15c2f4e7b9012096b41c4eb3aaf947f6ea429","0x0000"],["0xc2261276cc9d1f8598ea4b6a74b15c2f57c875e4cff74148e4628f264b974c80","0x00000000000000000000000000000000"],["0xcd5c1f6df63bc97f4a8ce37f14a50ca74e7b9012096b41c4eb3aaf947f6ea429","0x0000"],["0xcec5070d609dd3497f72bde07fc96ba04c014e6bf8b8c2c011e7290b85696bb30b1aeeca675702f24c3d674d2a01060f0ded218e5dcc6f90c1726f43df79885eb3e22d97a20d5421","0x4c3d674d2a01060f0ded218e5dcc6f90c1726f43df79885eb3e22d97a20d5421"],["0xcec5070d609dd3497f72bde07fc96ba04c014e6bf8b8c2c011e7290b85696bb314f6a7e973c2c34dc5c07ba203d7375675f5c1ebe70f0a5bb729ae57b48bcc877fcc2ab21309b762","0xc5c07ba203d7375675f5c1ebe70f0a5bb729ae57b48bcc877fcc2ab21309b762"],["0xcec5070d609dd3497f72bde07fc96ba04c014e6bf8b8c2c011e7290b85696bb34cb6fa5260704ee40b2d0013fb974794bd7aa452465b567d48ef70373fe231a637c1fb7c547e85b3","0x0b2d0013fb974794bd7aa452465b567d48ef70373fe231a637c1fb7c547e85b3"],["0xcec5070d609dd3497f72bde07fc96ba04c014e6bf8b8c2c011e7290b85696bb35242002c980f9df1c7d7d38d16bc23c6321152c50306212dc22c0efc04a2e52b5cccfc31ab3d7811","0xc7d7d38d16bc23c6321152c50306212dc22c0efc04a2e52b5cccfc31ab3d7811"],["0xcec5070d609dd3497f72bde07fc96ba04e7b9012096b41c4eb3aaf947f6ea429","0x0000"],["0xcec5070d609dd3497f72bde07fc96ba0726380404683fc89e8233450c8aa19502fe5f80e8854f64761757261804c3d674d2a01060f0ded218e5dcc6f90c1726f43df79885eb3e22d97a20d5421","0x4c3d674d2a01060f0ded218e5dcc6f90c1726f43df79885eb3e22d97a20d5421"],["0xcec5070d609dd3497f72bde07fc96ba0726380404683fc89e8233450c8aa1950a3f059d7e690a34f6175726180c7d7d38d16bc23c6321152c50306212dc22c0efc04a2e52b5cccfc31ab3d7811","0xc7d7d38d16bc23c6321152c50306212dc22c0efc04a2e52b5cccfc31ab3d7811"],["0xcec5070d609dd3497f72bde07fc96ba0726380404683fc89e8233450c8aa1950c41649dd3c9d26696175726180c5c07ba203d7375675f5c1ebe70f0a5bb729ae57b48bcc877fcc2ab21309b762","0xc5c07ba203d7375675f5c1ebe70f0a5bb729ae57b48bcc877fcc2ab21309b762"],["0xcec5070d609dd3497f72bde07fc96ba0726380404683fc89e8233450c8aa1950fa571e62466b970561757261800b2d0013fb974794bd7aa452465b567d48ef70373fe231a637c1fb7c547e85b3","0x0b2d0013fb974794bd7aa452465b567d48ef70373fe231a637c1fb7c547e85b3"],["0xcec5070d609dd3497f72bde07fc96ba088dcde934c658227ee1dfafcd6e16903","0x104c3d674d2a01060f0ded218e5dcc6f90c1726f43df79885eb3e22d97a20d5421c7d7d38d16bc23c6321152c50306212dc22c0efc04a2e52b5cccfc31ab3d7811c5c07ba203d7375675f5c1ebe70f0a5bb729ae57b48bcc877fcc2ab21309b7620b2d0013fb974794bd7aa452465b567d48ef70373fe231a637c1fb7c547e85b3"],["0xcec5070d609dd3497f72bde07fc96ba0e0cdd062e6eaf24295ad4ccfc41d4609","0x104c3d674d2a01060f0ded218e5dcc6f90c1726f43df79885eb3e22d97a20d54214c3d674d2a01060f0ded218e5dcc6f90c1726f43df79885eb3e22d97a20d5421c7d7d38d16bc23c6321152c50306212dc22c0efc04a2e52b5cccfc31ab3d7811c7d7d38d16bc23c6321152c50306212dc22c0efc04a2e52b5cccfc31ab3d7811c5c07ba203d7375675f5c1ebe70f0a5bb729ae57b48bcc877fcc2ab21309b762c5c07ba203d7375675f5c1ebe70f0a5bb729ae57b48bcc877fcc2ab21309b7620b2d0013fb974794bd7aa452465b567d48ef70373fe231a637c1fb7c547e85b30b2d0013fb974794bd7aa452465b567d48ef70373fe231a637c1fb7c547e85b3"],["0xd57bce545fb382c34570e5dfbf338f5e4e7b9012096b41c4eb3aaf947f6ea429","0x0000"],["0xd5e1a2fa16732ce6906189438c0a82c64e7b9012096b41c4eb3aaf947f6ea429","0x0000"],["0xe38f185207498abb5c213d0fb059b3d84e7b9012096b41c4eb3aaf947f6ea429","0x0000"],["0xe38f185207498abb5c213d0fb059b3d86323ae84c43568be0d1394d5d0d522c4","0x02000000"],["0xf0c365c3cf59d671eb72da0e7a4113c44e7b9012096b41c4eb3aaf947f6ea429","0x0000"]] \ No newline at end of file diff --git a/cumulus/parachains/chain-specs/asset-hub-polkadot-genesis-values.scale b/cumulus/parachains/chain-specs/asset-hub-polkadot-genesis-values.scale deleted file mode 100644 index bea223edb330..000000000000 --- a/cumulus/parachains/chain-specs/asset-hub-polkadot-genesis-values.scale +++ /dev/null @@ -1 +0,0 @@ -0x0006908015464cac3378d46f113cd5b7a4d71c84476f594316a7dfe49c1f352d95abdaf110000000008015464cac3378d46f113cd5b7a4d71c844e7b9012096b41c4eb3aaf947f6ea4290800008015464cac3378d46f113cd5b7a4d71c845579297f4dfb9609e7e4c2ebab9ce40a0502104c3d674d2a01060f0ded218e5dcc6f90c1726f43df79885eb3e22d97a20d5421c7d7d38d16bc23c6321152c50306212dc22c0efc04a2e52b5cccfc31ab3d7811c5c07ba203d7375675f5c1ebe70f0a5bb729ae57b48bcc877fcc2ab21309b7620b2d0013fb974794bd7aa452465b567d48ef70373fe231a637c1fb7c547e85b38015464cac3378d46f113cd5b7a4d71c84579f5a43435b04a98d64da0cefe185054000a0acb9030000000000000000000000801809d78346727a0ef58c0fa03bafa3234e7b9012096b41c4eb3aaf947f6ea42908000080267ada16405529c2f7ef2727d71edbde4e7b9012096b41c4eb3aaf947f6ea429080000083a6300803c311d57d4daf52904616cf69648081e4e7b9012096b41c4eb3aaf947f6ea429080000803c311d57d4daf52904616cf69648081e5e0621c4869aa60c02be9adcc98a0d1d0502104c3d674d2a01060f0ded218e5dcc6f90c1726f43df79885eb3e22d97a20d5421c7d7d38d16bc23c6321152c50306212dc22c0efc04a2e52b5cccfc31ab3d7811c5c07ba203d7375675f5c1ebe70f0a5bb729ae57b48bcc877fcc2ab21309b7620b2d0013fb974794bd7aa452465b567d48ef70373fe231a637c1fb7c547e85b3803f1467a096bcd71a5b6a0c8155e208104e7b9012096b41c4eb3aaf947f6ea4290800008057f8dc2f5ab09467896f47300f0424384e7b9012096b41c4eb3aaf947f6ea4290800008057f8dc2f5ab09467896f47300f0424385e0621c4869aa60c02be9adcc98a0d1d0502104c3d674d2a01060f0ded218e5dcc6f90c1726f43df79885eb3e22d97a20d5421c7d7d38d16bc23c6321152c50306212dc22c0efc04a2e52b5cccfc31ab3d7811c5c07ba203d7375675f5c1ebe70f0a5bb729ae57b48bcc877fcc2ab21309b7620b2d0013fb974794bd7aa452465b567d48ef70373fe231a637c1fb7c547e85b3805e8a19e3cd1b7c148b33880c479c02814e7b9012096b41c4eb3aaf947f6ea42908000080682a59d51ab9e48a8c8cc418ff9708d24e7b9012096b41c4eb3aaf947f6ea429080000807474449cca95dc5d0c00e71735a6d17d4e7b9012096b41c4eb3aaf947f6ea429080000807b3237373ffdfeb1cab4222e3b520d6b4e7b9012096b41c4eb3aaf947f6ea42908000080c2261276cc9d1f8598ea4b6a74b15c2f308ce9615de0775a82f8a94dc3d285a1040180c2261276cc9d1f8598ea4b6a74b15c2f4e7b9012096b41c4eb3aaf947f6ea42908000080c2261276cc9d1f8598ea4b6a74b15c2f57c875e4cff74148e4628f264b974c80400000000000000000000000000000000080cd5c1f6df63bc97f4a8ce37f14a50ca74e7b9012096b41c4eb3aaf947f6ea4290800002101cec5070d609dd3497f72bde07fc96ba04c014e6bf8b8c2c011e7290b85696bb30b1aeeca675702f24c3d674d2a01060f0ded218e5dcc6f90c1726f43df79885eb3e22d97a20d5421804c3d674d2a01060f0ded218e5dcc6f90c1726f43df79885eb3e22d97a20d54212101cec5070d609dd3497f72bde07fc96ba04c014e6bf8b8c2c011e7290b85696bb314f6a7e973c2c34dc5c07ba203d7375675f5c1ebe70f0a5bb729ae57b48bcc877fcc2ab21309b76280c5c07ba203d7375675f5c1ebe70f0a5bb729ae57b48bcc877fcc2ab21309b7622101cec5070d609dd3497f72bde07fc96ba04c014e6bf8b8c2c011e7290b85696bb34cb6fa5260704ee40b2d0013fb974794bd7aa452465b567d48ef70373fe231a637c1fb7c547e85b3800b2d0013fb974794bd7aa452465b567d48ef70373fe231a637c1fb7c547e85b32101cec5070d609dd3497f72bde07fc96ba04c014e6bf8b8c2c011e7290b85696bb35242002c980f9df1c7d7d38d16bc23c6321152c50306212dc22c0efc04a2e52b5cccfc31ab3d781180c7d7d38d16bc23c6321152c50306212dc22c0efc04a2e52b5cccfc31ab3d781180cec5070d609dd3497f72bde07fc96ba04e7b9012096b41c4eb3aaf947f6ea4290800003501cec5070d609dd3497f72bde07fc96ba0726380404683fc89e8233450c8aa19502fe5f80e8854f64761757261804c3d674d2a01060f0ded218e5dcc6f90c1726f43df79885eb3e22d97a20d5421804c3d674d2a01060f0ded218e5dcc6f90c1726f43df79885eb3e22d97a20d54213501cec5070d609dd3497f72bde07fc96ba0726380404683fc89e8233450c8aa1950a3f059d7e690a34f6175726180c7d7d38d16bc23c6321152c50306212dc22c0efc04a2e52b5cccfc31ab3d781180c7d7d38d16bc23c6321152c50306212dc22c0efc04a2e52b5cccfc31ab3d78113501cec5070d609dd3497f72bde07fc96ba0726380404683fc89e8233450c8aa1950c41649dd3c9d26696175726180c5c07ba203d7375675f5c1ebe70f0a5bb729ae57b48bcc877fcc2ab21309b76280c5c07ba203d7375675f5c1ebe70f0a5bb729ae57b48bcc877fcc2ab21309b7623501cec5070d609dd3497f72bde07fc96ba0726380404683fc89e8233450c8aa1950fa571e62466b970561757261800b2d0013fb974794bd7aa452465b567d48ef70373fe231a637c1fb7c547e85b3800b2d0013fb974794bd7aa452465b567d48ef70373fe231a637c1fb7c547e85b380cec5070d609dd3497f72bde07fc96ba088dcde934c658227ee1dfafcd6e169030502104c3d674d2a01060f0ded218e5dcc6f90c1726f43df79885eb3e22d97a20d5421c7d7d38d16bc23c6321152c50306212dc22c0efc04a2e52b5cccfc31ab3d7811c5c07ba203d7375675f5c1ebe70f0a5bb729ae57b48bcc877fcc2ab21309b7620b2d0013fb974794bd7aa452465b567d48ef70373fe231a637c1fb7c547e85b380cec5070d609dd3497f72bde07fc96ba0e0cdd062e6eaf24295ad4ccfc41d46090504104c3d674d2a01060f0ded218e5dcc6f90c1726f43df79885eb3e22d97a20d54214c3d674d2a01060f0ded218e5dcc6f90c1726f43df79885eb3e22d97a20d5421c7d7d38d16bc23c6321152c50306212dc22c0efc04a2e52b5cccfc31ab3d7811c7d7d38d16bc23c6321152c50306212dc22c0efc04a2e52b5cccfc31ab3d7811c5c07ba203d7375675f5c1ebe70f0a5bb729ae57b48bcc877fcc2ab21309b762c5c07ba203d7375675f5c1ebe70f0a5bb729ae57b48bcc877fcc2ab21309b7620b2d0013fb974794bd7aa452465b567d48ef70373fe231a637c1fb7c547e85b30b2d0013fb974794bd7aa452465b567d48ef70373fe231a637c1fb7c547e85b380d57bce545fb382c34570e5dfbf338f5e4e7b9012096b41c4eb3aaf947f6ea42908000080d5e1a2fa16732ce6906189438c0a82c64e7b9012096b41c4eb3aaf947f6ea42908000080e38f185207498abb5c213d0fb059b3d84e7b9012096b41c4eb3aaf947f6ea42908000080e38f185207498abb5c213d0fb059b3d86323ae84c43568be0d1394d5d0d522c4100200000080f0c365c3cf59d671eb72da0e7a4113c44e7b9012096b41c4eb3aaf947f6ea429080000 \ No newline at end of file diff --git a/cumulus/parachains/chain-specs/asset-hub-polkadot-genesis.json b/cumulus/parachains/chain-specs/asset-hub-polkadot-genesis.json deleted file mode 100644 index fff9bbe1ea14..000000000000 --- a/cumulus/parachains/chain-specs/asset-hub-polkadot-genesis.json +++ /dev/null @@ -1,82 +0,0 @@ -{ - "name": "Polkadot Asset Hub", - "id": "asset-hub-polkadot", - "chainType": "Live", - "bootNodes": [ - "/ip4/34.65.251.121/tcp/30334/p2p/12D3KooWG3GrM6XKMM4gp3cvemdwUvu96ziYoJmqmetLZBXE8bSa", - "/ip4/34.65.35.228/tcp/30334/p2p/12D3KooWMRyTLrCEPcAQD6c4EnudL3vVzg9zji3whvsMYPUYevpq", - "/ip4/34.83.247.146/tcp/30334/p2p/12D3KooWE4jFh5FpJDkWVZhnWtFnbSqRhdjvC7Dp9b8b3FTuubQC", - "/ip4/104.199.117.230/tcp/30334/p2p/12D3KooWG9R8pVXKumVo2rdkeVD4j5PVhRTqmYgLHY3a4yPYgLqM" - ], - "telemetryEndpoints": null, - "protocolId": null, - "properties": { - "ss58Format": 0, - "tokenDecimals": 10, - "tokenSymbol": "DOT" - }, - "relay_chain": "polkadot", - "para_id": 1000, - "consensusEngine": null, - "codeSubstitutes": {}, - "genesis": { - "raw": { - "top": { - "0x26aa394eea5630e07c48ae0c9558cef75684a022a34dd8bfa2baaf44f172b710": "0x01", - "0x26aa394eea5630e07c48ae0c9558cef7b99d880ec681799c0cf30e8886371da934fe21438e43955d2917f11ffd2f74d24c3d674d2a01060f0ded218e5dcc6f90c1726f43df79885eb3e22d97a20d5421": "0x0000000000000000010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "0x3a63": "0x", - "0x57f8dc2f5ab09467896f47300f0424384e7b9012096b41c4eb3aaf947f6ea429": "0x0000", - "0xe38f185207498abb5c213d0fb059b3d86323ae84c43568be0d1394d5d0d522c4": "0x02000000", - "0xcec5070d609dd3497f72bde07fc96ba0726380404683fc89e8233450c8aa1950c41649dd3c9d26696175726180c5c07ba203d7375675f5c1ebe70f0a5bb729ae57b48bcc877fcc2ab21309b762": "0xc5c07ba203d7375675f5c1ebe70f0a5bb729ae57b48bcc877fcc2ab21309b762", - "0x26aa394eea5630e07c48ae0c9558cef734abf5cb34d6244378cddbf18e849d96": "0x000000000000000000000000000000000000000000000000", - "0x26aa394eea5630e07c48ae0c9558cef74e7b9012096b41c4eb3aaf947f6ea429": "0x0000", - "0x15464cac3378d46f113cd5b7a4d71c845579297f4dfb9609e7e4c2ebab9ce40a": "0x104c3d674d2a01060f0ded218e5dcc6f90c1726f43df79885eb3e22d97a20d5421c7d7d38d16bc23c6321152c50306212dc22c0efc04a2e52b5cccfc31ab3d7811c5c07ba203d7375675f5c1ebe70f0a5bb729ae57b48bcc877fcc2ab21309b7620b2d0013fb974794bd7aa452465b567d48ef70373fe231a637c1fb7c547e85b3", - "0x3a65787472696e7369635f696e646578": "0x00000000", - "0x3f1467a096bcd71a5b6a0c8155e208104e7b9012096b41c4eb3aaf947f6ea429": "0x0000", - "0xcec5070d609dd3497f72bde07fc96ba04c014e6bf8b8c2c011e7290b85696bb30b1aeeca675702f24c3d674d2a01060f0ded218e5dcc6f90c1726f43df79885eb3e22d97a20d5421": "0x4c3d674d2a01060f0ded218e5dcc6f90c1726f43df79885eb3e22d97a20d5421", - "0xcec5070d609dd3497f72bde07fc96ba0726380404683fc89e8233450c8aa1950a3f059d7e690a34f6175726180c7d7d38d16bc23c6321152c50306212dc22c0efc04a2e52b5cccfc31ab3d7811": "0xc7d7d38d16bc23c6321152c50306212dc22c0efc04a2e52b5cccfc31ab3d7811", - "0x15464cac3378d46f113cd5b7a4d71c84476f594316a7dfe49c1f352d95abdaf1": "0x00000000", - "0xf0c365c3cf59d671eb72da0e7a4113c44e7b9012096b41c4eb3aaf947f6ea429": "0x0000", - "0x3c311d57d4daf52904616cf69648081e4e7b9012096b41c4eb3aaf947f6ea429": "0x0000", - "0x7474449cca95dc5d0c00e71735a6d17d4e7b9012096b41c4eb3aaf947f6ea429": "0x0000", - "0x1809d78346727a0ef58c0fa03bafa3234e7b9012096b41c4eb3aaf947f6ea429": "0x0000", - "0x0d715f2646c8f85767b5d2764bb278264e7b9012096b41c4eb3aaf947f6ea429": "0x0000", - "0x26aa394eea5630e07c48ae0c9558cef78a42f33323cb5ced3b44dd825fda9fcc": "0x4545454545454545454545454545454545454545454545454545454545454545", - "0x26aa394eea5630e07c48ae0c9558cef7b99d880ec681799c0cf30e8886371da905f2cada6eda1538ae80ad25967fae940b2d0013fb974794bd7aa452465b567d48ef70373fe231a637c1fb7c547e85b3": "0x0000000000000000010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "0x26aa394eea5630e07c48ae0c9558cef7b99d880ec681799c0cf30e8886371da974ba036f69b844c7eca06cadee15075fc7d7d38d16bc23c6321152c50306212dc22c0efc04a2e52b5cccfc31ab3d7811": "0x0000000000000000010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "0x79e2fe5d327165001f8232643023ed8b4e7b9012096b41c4eb3aaf947f6ea429": "0x0000", - "0x15464cac3378d46f113cd5b7a4d71c844e7b9012096b41c4eb3aaf947f6ea429": "0x0000", - "0x26aa394eea5630e07c48ae0c9558cef7f9cce9c888469bb1a0dceaa129672ef8": "0x65092473746174656d696e74", - "0xcec5070d609dd3497f72bde07fc96ba04c014e6bf8b8c2c011e7290b85696bb35242002c980f9df1c7d7d38d16bc23c6321152c50306212dc22c0efc04a2e52b5cccfc31ab3d7811": "0xc7d7d38d16bc23c6321152c50306212dc22c0efc04a2e52b5cccfc31ab3d7811", - "0xcec5070d609dd3497f72bde07fc96ba04c014e6bf8b8c2c011e7290b85696bb314f6a7e973c2c34dc5c07ba203d7375675f5c1ebe70f0a5bb729ae57b48bcc877fcc2ab21309b762": "0xc5c07ba203d7375675f5c1ebe70f0a5bb729ae57b48bcc877fcc2ab21309b762", - "0x15464cac3378d46f113cd5b7a4d71c84579f5a43435b04a98d64da0cefe18505": "0x00a0acb9030000000000000000000000", - "0x45323df7cc47150b3930e2666b0aa3134e7b9012096b41c4eb3aaf947f6ea429": "0x0100", - "0xc2261276cc9d1f8598ea4b6a74b15c2f57c875e4cff74148e4628f264b974c80": "0x00000000000000000000000000000000", - "0xc2261276cc9d1f8598ea4b6a74b15c2f308ce9615de0775a82f8a94dc3d285a1": "0x01", - "0xcec5070d609dd3497f72bde07fc96ba04e7b9012096b41c4eb3aaf947f6ea429": "0x0000", - "0xcec5070d609dd3497f72bde07fc96ba088dcde934c658227ee1dfafcd6e16903": "0x104c3d674d2a01060f0ded218e5dcc6f90c1726f43df79885eb3e22d97a20d5421c7d7d38d16bc23c6321152c50306212dc22c0efc04a2e52b5cccfc31ab3d7811c5c07ba203d7375675f5c1ebe70f0a5bb729ae57b48bcc877fcc2ab21309b7620b2d0013fb974794bd7aa452465b567d48ef70373fe231a637c1fb7c547e85b3", - "0xcd5c1f6df63bc97f4a8ce37f14a50ca74e7b9012096b41c4eb3aaf947f6ea429": "0x0000", - "0xcec5070d609dd3497f72bde07fc96ba0726380404683fc89e8233450c8aa1950fa571e62466b970561757261800b2d0013fb974794bd7aa452465b567d48ef70373fe231a637c1fb7c547e85b3": "0x0b2d0013fb974794bd7aa452465b567d48ef70373fe231a637c1fb7c547e85b3", - "0xcec5070d609dd3497f72bde07fc96ba04c014e6bf8b8c2c011e7290b85696bb34cb6fa5260704ee40b2d0013fb974794bd7aa452465b567d48ef70373fe231a637c1fb7c547e85b3": "0x0b2d0013fb974794bd7aa452465b567d48ef70373fe231a637c1fb7c547e85b3", - "0x0d715f2646c8f85767b5d2764bb2782604a74d81251e398fd8a0a4d55023bb3f": "0xe8030000", - "0x682a59d51ab9e48a8c8cc418ff9708d24e7b9012096b41c4eb3aaf947f6ea429": "0x0000", - "0xc2261276cc9d1f8598ea4b6a74b15c2f4e7b9012096b41c4eb3aaf947f6ea429": "0x0000", - "0xcec5070d609dd3497f72bde07fc96ba0726380404683fc89e8233450c8aa19502fe5f80e8854f64761757261804c3d674d2a01060f0ded218e5dcc6f90c1726f43df79885eb3e22d97a20d5421": "0x4c3d674d2a01060f0ded218e5dcc6f90c1726f43df79885eb3e22d97a20d5421", - "0x57f8dc2f5ab09467896f47300f0424385e0621c4869aa60c02be9adcc98a0d1d": "0x104c3d674d2a01060f0ded218e5dcc6f90c1726f43df79885eb3e22d97a20d5421c7d7d38d16bc23c6321152c50306212dc22c0efc04a2e52b5cccfc31ab3d7811c5c07ba203d7375675f5c1ebe70f0a5bb729ae57b48bcc877fcc2ab21309b7620b2d0013fb974794bd7aa452465b567d48ef70373fe231a637c1fb7c547e85b3", - "0xd57bce545fb382c34570e5dfbf338f5e4e7b9012096b41c4eb3aaf947f6ea429": "0x0000", - "0x3a636f6465": "0x52bc537646db8e0528b52ffd00585c7e041e77c5fb10511050cc281d0a5d5a68f2912d7947b66df0402a93fdc40fd8d34ccf97153632d5506b6f047cb3b14b842c862c8526c60739957875e9fb17988ed9cb8436b4b7bfbdfdc38aeedbb6b6b7245b6e29a54c29057e1102108d103d9dea97524ac73ae523b9a33dd375d0677344ba7c2e9f159fe5d3e37bd1a2720abfe5964bdede176a8b3b9a2e1b305dba505b5c55bdc59b1159ce55f8d1df36b7d7336e47483dccf9beaabea98d11de789eb33fef8de779bbe5743ae56c06a1df15522d679f9b451be3cc48bbe5736b7f47da2dcbe37425f9cf69bc2e4f7a2e7d6e67a4f44b5e5b742991b8e9a7d3b729c97f2eb7daff3cfaabfc6f72bb429e91f8fc68bae5f425619ea4249f7a12d29e61627a259cbf5c09fb93530c730cc3b0337fed0e798e6d95ff615b74ca64fe727ada906278de21d3df56fba7473f15457fdcf4976fb600d55fdcae90e942fdb6ca3fbd3323d127f75ce8bd8d3d6ef4397dd8dbdad908ff73c869279e778c60897e32449a9e76940d740adb2967cb371a6ffc4b033d39b5a1bebef39a0ef4d7b5a1e6fa16e1dfcd7708d0afc723d14f4e4f5b63a72dfa6645278f427ddaf6f9b23833326df8e96644cb375a77974fb79c33a21357557f72a127d4d686da6077ebd746e33685bff214c64edbe571db87f435bf5783f49ec7c8fbe993f31db2ce1fb78b3bb27cfa69db8719d2fce89b35c0f2c96136bb3758edf975d8ad737644fafac908ffec6ee5c6237dbd3031fd009e5a5bb57c3aa59b5d5c55fde5a7adf22f40f5c5ef0a39f974a177dad8e7b64f19dbece290deb7cf7624f8d12b74c921f1474e6571fc816e1a5cb4a4a1628318a40933b419dd4675c7ae75c71ea45567ecd999c8b3b3c3d0a9f8ecdea9256305569edda7837888bfb6f0bccebe3efcdadf368376f45c85afcf4e778b54a08faa38c3e9238dd0ebe3ead23faf1703768e8fdc16e8d177831eb709acd006184d43eb6fab3dfcabd29fa89678cbebd247df7d617785ba2b21c2bc12bfc541d9328ff49a9a5e725b7a585f5255716608724cb5878f5c7d5eaf6f177a6f53e12963705bdfcc029b4696a17d9b0aff9658d5af71d075aa0a97a68ba9de4e96071070d4f9eff97bfe9ebf0744977fefbdf7842e91d6be2b2a5ebe7d625a0b54068d7ddb85f5a57463d076058415ef547b4354a7da7d3a05bf573f9cf976ac83de10fc2ae4bbe7db19280a65e7ad3b9fb681eeb753f6c75e1ffbf3653f7a424d79eb5ffd1499c1cfcefc141c1bda186fefb3291223f353b09a2d92c44c8f14c3b3b76f960432313d1fd198b04eedb753c6768bb0d7caff360368fccfd7372be266778b649b9e775b9f7edc40a0fbdba9dabe0edbd9ebfa76b7dd413780d69ea4fd68b9ed0e728f136a55f303e8c6a041afa88f0ed4a93a8974aa6a5da72ad0478fde42a7de4732b238e3a3f774500fc1f0f1ab908fae75aa3d7a4ea79e478f8e758a3dfafa44ee68574b747d7d2ad03fa7bbf153ce886077ecdb1d7355e93d6cce88983b027db77d4a372b925cf5973e3b5bbe81dd7155e9fd895ad4ba2eae5e7ef2cbc2b45fd73a65f9f39c4e5dfe9c5edb76b7dd61ce59113fec0ee32ae6276c537a7f39e55e7e356b6dfb74db3f5da85f9f2fe88a0f6dffec0ea93dbf5c951efd397dbbfb70abfc53e257263f39a5f8eb9b112df6ed9436b699e4aaeaa5f3b6dbcb966f28cc766fb0ee7cba7b6eb977f77c3322ebc90d561e5ee9bdf4ddb46dbb6be78c4872919bdd699ddaffe770dbf7f9822013131313d3d0f36e8bbc7fee03f49b82eac49108ba07d076e5c31abf2b263406f85df960e5fddb3723a2ad98c87c85df2ed4937dce7d41db3f557bf6aa7d9ddf0e3bb5debe9db27c1d764afafaecd4fe3a95dbbeb5f1d35d417b18674416e78226bd3322e99bcdb02f3d3b62b9e4aae596d3ce8e686ff966b03be89b1145979be59b3dbad9c9e756e7e5a72d89f48bab6ccd0a8f2edfdf8ce8723ab72ac34ba79b4daece9f2eb7baab976e6dd59a41490d4c70d061bb932ef4e67684f49a9a9ad0fcf47d6bdb975b85e1a153c6e6063d099197d78664fde42aff94f792ab3cbc74ca98b5ed6f2639a5f791e1b6ddb1bf6dbbab39cfbe3e7d31a44281e868eb2be9768abdce5fdf4eb5afd3def87963c67adb879d8abe4e99b1c84e1b4b69ed3b3555b4e7edd15f461439173476fab0b8f177c6bed973a1de8ca85da82963bcedf7c6bf9903f6d9855aa855cc8c02ba2c68d4667daa1604fbe7f93add1534ce88b6bb3afff96645fcdbdd73a16e41e367e761dfdfeed67990cc6f9fdf1c0f9276e8ed9053e2676ebbabf0d79f6f7684bdb9dace2ed4da6f0aaa6615dd18b4f68afae7cf519d5a7fded329f6e7b08378e8b9d6a9fdb2451eff7c3bb55f73fef9fa3ceec87f53503117d12d80b6ab1f98fee6f78b16287e6fe86e7bd1b8df551962bcf5bb2aa38be75f1dba02d036d27d4157d8ab34f7cea955d1decf73f675d40bba22bd4a94915b5a315cf4a8b2461936f69862e8ca1caad2beb462b8e851658d326cec31c55015d4fb79cedc15d45015f6e696560c173daaac51868d3da618ba3287aab42fad182e7a5459a30c1b7b4c3154857d0ae8eb4bcd7d0665df4ed575e6b6bbf57515f30fba2b262dbf165d206d23dd01681bb338f804545270aa61ca9ab23bb22e321d646d64623221647064633237b22ab233b21b64696466646864646441c8bc6463646f6476645f64ab0c0b9a062d032b236b80c92053224b024b238322730156844904b403c382de8165715dc15a8071c1b6602cc0a4c0a2c0a0b8f2b88a6095218740d1907744166456cc1fe819b30a3602ec4a842352116b10bb886e4431221d718e2847e4412413e3883d883a885f4432a21631075009518d6845c4416c23aee21ad10ba8075c024c039310b78863442ce297c8060c038a01c1e831ed46a7d161ba8c3ea371d036e81bb41a8d46c7d13e68207499de41f3a0c9f40fba072d47cfd1669a0e4a053645cc8276c1564091a02aa029a0495014d025a812a71f4e3e5c7b5c7a5c69ae255c4ab89270a1b990701da1c1602a681bf00a76051c024684f602c3e31d31b35c43642f8043bc275e13cd823ed3681a09991a6d470fa1eb6821644ff41bad477fd1ab86416fc9c2740ab23238080c0436c33b1822240210e02ab0217238bac1860d34615243d113185e286224fb41e645c64526461646064694828a6912d020741ef407f40dde4296a1435c54a81b3c03ba83be42c7502c340b354146033a82931ed91cd40aad42a950a653d3c4a38d70f9c0634e7b5020a80ff30e5a86c201c7805250339709e81569062523d1a040c0ac70163d029e820a81cb301db407548e2b0bfd813a61c561c9718282fae0aad2696809e61e748e99860e818bc075d038280f380c4a47c760d231cbf01b9815d81c93ccec810587a54657b1d2b0d0c8b6a027b0c0585f2c322c312ea68802cb4b2481b5b2beb0bcb06a60756171616d618d81f980d661656161615d9115915199406026805b5033b023402e280e2811281874c55998082e019380b1f0087808bec25658080e82ab301506827f601f9849b524821e4200820fcc2649c7d423a3232b93f940ee8092203323e79072c8382419d903c9031e422f81ea21eb90769c92704273fd005120bf902b78073c73013197703ac2c9085309a73c4e458078c0234023cc39e60fa60f6612388f1311269a131ea733a73b4e765834b0c2b0c09848380de154c73c02e3719d00b20042019f9846380961f260ca31e39879cc229c827002c224c2c9cce907271f9ce8804cc024e012d0065005a732b08cd31cd0cb298e1399530f4e3b38c101c19cde38b9711ab303122fe124e6d4c63c63c980b938e9e0c4c6698d530e4e3868199c6e00bf9cc29cd438a5713ae3640613a1a9e03b4e659c6c20cf7855b01bcc03968375d054ba04348888444c41f685124185884744236211f104d104314b242296a0a580486828601eb0089008bd455701c9e823c028e00aa012fd44d3c03ae3c1e059f1a87831682eba8bae41dfd157506002ad45cfa0b3682b3a8a2682d3b4123a096c04fe01fb80c9f01c1c07f780db60316c0306c3abd7a5adf018ec057b6131180cee82bfe01a74165e01c78061c028682c8c04a7608ad2052ca0a4e1484012070cc13028fff2a4e3ea6724a5c90696e8d0c40887254b28bf1ba0182d59725a367ab281264a5076e0c012251b8c929cdc00c5c9922541e4126aa40b6c58128503508e3c791245014a36183d7912450103902d58294f9c345132ba61899111075490526c140e4071b2e40349463b202d71a2c32b4131cae1034d94b88c628d6c801205ca92264b9ce8f046364089e20025283b44b1c18637413a7143141b8c6e404132b1523e6074b4448a940f18218112c58914294611d8a412eb01273a7c92d15152140a24d924116ba4d4e406274f9a4c5962b483d10e0fa0e106a30e74a0090d03905856ca910d4638d820abac142528464946384071e292098a130ef04425ac0d4ea4407192a4c483d1920f3cd14187264b928c6e78e26487a1231ba23c19ea89683687254d949adcd044c9a80137d1082070f2a489132527509cfc8844d8231ba23cd9c01223a51d6c30e2c108279ed9a4280ac0e210568a9113252749517050daa1898f58c74289e244a949d20e372c518af244ca12273a7c93a41dfe079088c5faf2c6995f15dd1513d3b3ea0591500c2806ebc0168c4168775728861862e06e18f9bdf82284dd2c5ccc1dfbb15004c378237337c32110728ccc0dd926c238e30f88358430be392194f39d229404903172d7c4860988188661ddd1826fee8b91e3bb5ec708991b0131068116ecc82a442cc6d831325318b787c438230c70c6b80fce176384fd42336cab1b8b5000565b59775b6dd3998d8dc5dccccdfbe083323e026c8471c68e56b42c2b5a56b422437880222f62588cf100302832910e1224c6564185f92084168cd00030461887047547d82fd5dded42470b420c8b9161ec1638428f303e0823846f4e660827853c9962b13b1863010cd031c2180b103b42d8cd4264e6187508400018615b31c68b9939c60761dbbcc80273c4626c1d9d06823a5027469d5803e30a3a10ea449dd89de9bc173beab44e479d8e3a5127461d9df8628c59bf7e96d5338b59c739dfbcde9cf3d4f2c1f8fac199c5281fdc18e77c51ee23000164165f96c118e38331c2f72084b1bb1bc3608436f104874418237c11760b19c00062ecf8b48e3531760b2036fcc1b06ea634c668a910bb18218410c61863c78ed18ab061c7183b768cf0b58416bf385fe4c7cc70ce8d1c63376cb831be185f84cccc1d993966af330921673342c8fc209c12facc79a9707a5005156ca605610780193204408ca718394218636cd81d21f3db181b76c38edc1c19c618238cdd31368cdd2f3ec8dc3de17c5127f28b00e81863ecee086184f14d78bae6933e33cb3208e1ecc8f04919bb1bce86313233dc14b85de66576de2ce6b9cc11324366960be1e5b41b05c811468ecc3b37b63521ccb2ec04cbcab22c8e6c8e6783831427509c70a0c3c106a5261b50a1002998c001274946536e304a61e706a324a31b92a22c49b950002327494a02486aa2244585203d3b473634d9c093275104c0b3f3e3841f41767a32251b9a4881d22449698992931c7288d2f9e078a41875004a131c6ce0a018e9a043931e2b875e168c9238b024298a52131ba23c79d2a4470bc283d10d509c2c81e2a4090e3670800351765a4899c043140f289d9072a100be5300169614c0e8a8c9930d2ce90014273848698283e7e04409ca0e495c10221c50dac18420cb82110e4b94a03849d261890d529ce4d08332526a926404c5a8034b0ec0820b2e142009003a5b002329528c9274c8218a0d4b928ca644b1c1286949132937d860b48485a3940b05d0c10623294ba228e9f081241b820cf0c4c9111010292afc508a1225e786264649dd078c8e9628f1600445880f25a30ea8c0821425294e783012c0cd168007271c304ad201484b6a62f4c48625461d6892144549ca921b9e38c1c186254a4f7668c201a31b7e6c9e184d317ab284872639a030058ad1ab5916964089e2444a92d194251d88f2644907a038e94007a23c59a2c483519029508c1ecef60792a2e46094839c02c5e80d20134243261b7b899754966a696969e952bd25152fa954d692eac46449055591c92ea9544f0599a878554bcd649754cd6497541693552da99e6a3e26aaa55e5a5a523d264bbc8f898a9798c92e3113d5122f319325562d2d2d41264bbcb4b4b4b4f498ecd2523351f132d9a525d563b2cb64899754cd6449653151b12a3251b18a99ac4a325995aa99ecaa542a1564b22a6e262a56a9548fc93f31bcbb9c8394261bdc94201fc46b74ea371bd28df3388ddb94f7387447238754e315f329ef71d8e1d9aaea6f886a1c738a6d353a067fb39dddae621c52106ecb159457d171940eeae43a393ebc8ab63f3ffc34b98afa1f8ef3c37d7895dd1f205c9dff438aeaa7bcc7e1c6db71bcc6a90b35bd36cc6f362946b8e8d7867171ebad2eadbefd654934bf6e7ab3f19ccdc7a6bd9f769c0df57eda6f3629367eda7a3835e104162a38e20b33b40cedfb69d7b66ab98d5f5b856f53b365db94f7d1e9562384469d9bbe5e8e39674418e782c6557a715b4eded9162b3e74e2968086a6884ee3c673047ef4f9f0c748019aeff91d0305699e36163b50550fc57aa5f7d155481c391e249747bfb8e80d98c23f399e23f3a53fb17eca7be891f3b7d4aa5e7a2a6b8955d6d4c4d06dba3dc37b2834efa1ba7bf0e606e6f7de833046f8de7b10c2278760599675f95acd5951ffc63bc4f26b83dd59bea71b1abad3a26545c8cd4c2dcbb2ae6bb2e530336259d69c9c0b5acf6e4b8e25c8408730c66daf1ba1ee34089763dc655ee68510c227655cc8cc9816d921185d73d70149cb92cc80b62c19638c52ca28e38010f24208a5438f0fa1cf7b31c65d8710c218a58c90194218638443d065415b02b50419d99ddcdd778381eea657b75ccbe95474e915f51ba377ebeed3a9ce889673417bfbb6c870d9b27a512fa565cd69adf336bfccc8329c5b4d158d3923b22c695531e1f4cd88849aa5b33377c495399e23565f1e9b7bba9bbcedcf29b9e79cf374bae69cf3baaec91d01592ee0d85df4f9d8c33c6fbaeeb49804bb9b9bb99bbbd93fa2de4f0cd345c3b2ea3ebed7cd96259b5fa322d6cd3d3bc5edbc7137cb1eac0105171ea040e285fcae9ea8e33766cdeff5b6d68d52f37bbdcc6cc7ee72af57d87da3033373f37bddcccddcbbbbcf798390dbf7dab9979957072f088b71df8d0c49f0e38310be9826a7bbad90d917dee0d05d7b74a0c75c12acb37bd2a1fb739fd7bb1cd6dddb5ddeddf57dba5b6d24565353d31ebfbefcb4f7f380feed32f32e6bdae674d0f39e7fbb2b8b8da0e92b659cdb13f8208c0f42f850107f09d4126490f8a5a85e4a9f9bb54179a3443af427a5f46749a26959525a525a31c6d8c3755dd725ad28a58c3fd05da6b31fd1ec8e2b7c6fb66fbc61d2cdddaf217caffb753f6666d8db83cffb7177f3109aa64108a5b7576d51ac750a7a7b4ea7ac8c08722e6872d3b63857d36053d1dd0f42ef0a639c7b0343775a770febee3d87efc1172384efc1f76077770f52722f427fb0df7b1d7980c6667d8ac69c3913175ad6844e8475f72c2b7a73162d6e76f720840ea1dcf6174628658c104608e37befc1adc2874e539a65714f4687f141089f0e76056d09d4126422ac504a785383e50be5269f0bb59c61ff396aa7a68a74ad53d2a1e750c96cc9e830ca684919a38c5142ed610f6f79dc684a935272fb2ce951c218235734e60ce48e5cd66146176b469725504b9091d616ea73631e24d0a74f0e7a9d1ccf91e89647b7b82d567c887297bfd51370bccfefea892c7efa5e1cd69df4a23167525a85735abeefa6a73b2d097e9daf7acb6536bbb35cf54563d0ace5316b400f5f959ae8e28adca05234064da72a7396c46a6a2a1a83e6a9c55e34e6cce4bec80da6aa3d9a0e9aef47faa6f8374c17ed778c1d60f931ce58fdae58b0c4a37ec7d8c1125f34264d4684f48adc60ea6ebf87bfdcda2a7ccb694a3bf989dbecb4dd4dcb85deb529f54fb7b6a23169ba9b5c911b54badb2f1a73a653aadfe76cfba6684c1dddedd709df2a1a93c766492c8b2b1a73a6bb7d8f2dbf4887ed193b85584a7b2f23b22495118319117b67d05f46f49cb319f699398a9ed2ddddf095badfc8f3a67ffe1cfee378903c8ffe18729535ee12352290e0c50b3196c54e2dcb820e34ef8816574377d1eb8629a2a13b56f282a43b74a11724b9d308ac7041104bf0a0893ad200e3e44699c855fe4e652d882f3e415b094dfefa5e0f083e20a07618bd3dbee617d440ccefaa8b2b0af0bbea828cf717c4549ac37c642c1f994aff446726fea2699d6a879cd65de4877043d1c5dec643a720775d1c7d18cc8a1e97a3bd201dde4ff4a87dd4a1bbe87d84c60fbdee998fce59915277d1618cfc6f9bbf535345db30cf4c1f5d07a50ed29898987c188a0e8924e782365fa8df4619d3624e07ed50f4cd2037bb8b8e02cd3bc5ff3c76e1e5a3dfd029e8d171e017f8a3efdb17c44395c8aaae97871ed44375e1780e03f3a0eb5397ccb3eba0d55d09bd2025ef87bde66bce8a89892988a1daf3eda362a28a156e542973c7127430d43e3b757daf9c38e35b30e69bab4f80be5d49775234fefdba618276883da78384e60b027a3fec455fe0e86e7f86eed86b0e0fd59e87a2d50df3ec4a68e8d43e7b0d9d6a67c740a79a3d4943fdae9e30c19f7e574f08f115e8c9b418ba608250fdb345563a14ed796de1d7b14ed54e75aab9e7fdd31eb7ed0eb25721bfde750ad2a0ed971650e182c46ff61eab0105f5dbdd06bbebe6419bff04f5d079a0d27ba22d925b420d4dc183043e3b7ce67890b047e77f5c2fb10a3637419fd39d9a20de9603ea8f9e63dd71a73a68df4f4a7b822262afd22defe8d0eb13d45bdbecae7d6e5134e9bd9d9a5c911a59badb6fb78276a89db32453f899935c0ea88fdc1174c86d7716b7101ac008107fbf78618606348a45cb1bc2cab3cd736ac3b52f3fed6d7a670c507dd11b4f17ea2b68fee4935e7e44fde4944a4cfa74e854d3e32136b77aca32efcc85bab1b9d578633636fe32a29ecd6db1f19a88ed4a1a01c8c2e6b64b781ba7b1799fb471a1dec80d6b309fdbc2f1af5de8453f9a7ef23a7d1d9efc6545eca7534f9f73ba50737664fac969cd96796fef6db22ccbb22ccbb2cce9c36ab6cc29c46a6a2c2c664499c32cc97c99c70c035a96395db853533df099f7d65fb36d1e9f71495de34af231a757f795d578276197e5588d3fdfe690b8a9664342e1eabf2ccb31ccb3fee676855c1bdd2e5f9f95b3e51bc969dc430ed55dbb502fb10aeb9315954dedd4e9a14339c7430ee93535cd0bfac541995c9dfe4455c59997dcece1a1b34f7f1bf4cd906c1a44fce4b6442abd2e7d659f50104065f5d22be42a0fffa06c1a595e7a05c1c3c941d9324ab878b1421b61c02b577ccfefea0a124f1b93db12431613101e5401041098a0f3162613482085115a9200a0250660989474d832bf85698536c2609a82002a2b1e40f0d2b7fcb065862c8e69cb0c2dd7c3fa1214269c18e3431a26a6a1c8315161627a5cd5e11fdc9e77b6d9046ee2e0010bf600a2a9696867c8f9d7aa5ee28ef20bda59fe796f336847d255f82a39c6d21d16a32d9204f45bd655eb0367dfe5204725882143d0adf818627fce583a95f3cf776a84d0ea93672cdd3d07a243091588835619cb3faf4bc73fef615d7b3faaa135c21233686206549061621a82ce43bc31c11794008a1f9ea8c1109520860cb15bf131b45482e8a1e8561230c40e372b0918ea610a1ad87b5012e69f43ef610a1aa243ae07a1f7f33c723d4c410374e67af0f7f31c7240fb7eeafcbaab157bdd307b04216cb065086eb8200e1cd40ca1ed90ea88336ac004136088b1a208433bb45e81687026a621762c9d5281b32cb58a1f64e241b845876ccd18fdf98c6ec52889fa88eea2bf2c3affae8478e251dd45246e7ae832427ed82dc773087d7d6e91f8f84d7f973fe94ffaf34bfa94d29fa3de7bcf236dac57005da8dba5b3741ee8fcfd3cb009e9d19210ce3e638312680d5a6757bc3c13cabe3e55abc126c3b6c8abe92c09642ec2ae3e3adc22718b700bdd45218a78a0eea26ff66a0dd35fd0c9a3772f887af49e4ec1eea64727b2457c874c8f4e37ad7fa69fb6d93fd3e70b42f5cff4e8a84e5d1e753efa5ef1b5858faeb345f8a3cb97c5a73fff25838b09bea7bb399dc7f2f7fd3c16b72b2152f0bb12e2884775375d6e7c71dbdd8c3b647d33b843d6975a15fb5dc14cdf42ac9e9982f62b33f5ef8a0b379e9db324ecc32f57992983bedb14f8eb704362f3eb6fdb2d5221e4906c7eeb367d7dbebf8ea43dfb3477c44c615024fe7622a83c12e898d37d80b6ab12e4f1985fd17b93c2df0eb319f62fee286eb53f3a6f49bc43a22bcd47daa6a70e3323989f4e94db01f54aa867aea30bbddef8b1eddaa8c42ee7adf2b35f5b6f55f5cd5bbdfcf9cb9040c7bcb32397635e643975dea85f1be69d219946a633b73b845da8b1ad36c73b84fd72bad57e76a1775abfa6cc477a7b30fdbab5552556496e335a7c14e31f98f767a7ab006d574970791b24fee874b3a2e6a243aeae9430f36da4fdb9d083db7edcaaeaa1bf8d074914e3287ae56f6eca8f47e386b44d4d4d49fcd999ab2ab84df951070adf2ed4708b62fcdb94fa5178da6f3b6a874efbf9cb8cb0c7c829d1dfeeeaae9230f34afd8fabed53f8fddfe6dfdb3e6f4af4d75591bb0eda4e21d59842acb7e51be82ac88d0a103a4807c2a607d5d03acf91d32f8764f35394fa99db223dfab6f1404f211c2f372abb8a4600924b78b951716bb7d5e3e5060413229a9a9a9a86a4d3f89ae1465983c44dbfc58a0fc96dc8b0263abbd0a3ef291120ce0ce00d2cbe4a19830595e3abd208e44035f155894b13355f95e4e0c11926f6b0beee60822f7f4283cc236d5313995fcf80d631f85d9d80cab796df151165befb5d1161c4afd3c6609601ed65f1bb42c197e7d5efea08215e00bf2b2364906432311d814c4cebbcf55368c7d38811e1a96c9829a4583fa5bf03494c84016d9dbeccc8c2f1eb74e19b28d4540ffc72bcf5c76df3f8e53415fe7142dd1bbf8a9758055fa4833e5f1ffa360d68ec15fe428f3e31d446986940635f7ec852e81640833e80df2f6a20f1eed331c1a10451c4a169d5f15148a7ea73e991e7086482ffb4fecd8e30d3bf4fa72c2ec9e2756a5d2ed416f6ec8bb4d3db69ef5e9bf4f6e91412377d63d696a4249f7d3a6748b8078fc41b120a6f399d5bfb6eb53323d22bef26b9cabe16b72ba439a1e67f4edfe69b1979cf1fe58c68623530090387202cf3d1813e764a6ae8545c300ce814dc15098cf8e82d74d01b8a2f82f908f43c96b73b7d10e3aca83b236ae70cc9638b43c21e9d5a5b5c61a9437a742c70bce5fbec6eb9dcd8adadf21e7a4054a7a26b39146272dba79b152d31bde46a0f2fbdf558c01e6f393731a08946ccda6a33bdf46da6b7b82a7d7de854bfc8570c8460fa76e95b016d57419c79e9fbdd1c6f70a550bf8c01cb511b7ece881e7498152191de5b643d3a955b3b4d22bdddda8ea4b753886d5176441e59975ce5930b353d6df5e40ba9f3dc6a75ba1dad5bde99116b01daae86d0e22ddf6dc0e5cb7186c403951f7c60faa4934b51fd893b3952f5c012f4687a291b868b11433c7529aaa7dc7677e2ea22b9b8cac35b98cc8a4e2fa58c314208df7bdd2f3323fd96bfccc8496646f8ad17b1ce8c9cb8f5981939fdee907ada789058bebed86efbd7567958ee683a520f5fdf4f9f6fb950cfad4a67177aed72db1bec7715c4190f77488cdb7c1becae2f8e79fca0cc9019ba13ba3168eced5aa72aaaa753efdbb79b25303100d428417f5754b23caa278c6f44b4e7ecbb8be2e61b280334a8d1e51bac3be8394a3a55bd4a1e9d925f778d870e5d427f093d062d7a5d312f9d884cd53943a7aa8643a7a4c3d0a9f7d26be8d4ae8230e2a563a083e0d05b31ebe565ce57222f7d33a14669f1d2035c5d257c73c63edef3d02daea2721ebae4aa863de47822d7c2ac985673503dfe15e82bd096edd8e9d6b31dfb69436dc77e6d39dbb1cf4d5b6ce7c2edb8637fd8f3109513238c11c2c7edfb610e033574d7eebf2b28ca3c2f3dd5b5c42a8651055060780243bf200bbfc0bffc42fbf02bd45be4e49548f6f3bbcd9a3317087e3f1237b1bf984d14bece8f5e7ffc8fbf2677b143a203418ea73923fdec1657b5672e736a1a0ae55e3b200c6c11f667390d356420faa4431bc24794119e29cdc796ce4c2f8881b03fd1230a1505cae4557bc6c30ac649d068fbc099917ee6d8cc0e89ce4a6895c998f9e8a74ddbae9dc974aae67c994ed527cf3e176ed7fe34ccc8fce79c1981ff38a41e9e99632a3e36c75dba8bce5cba8b9d65a9557089551cada6c751682e83502572c63fa7a153d089fc73f89cc80b6228346eafec1b7bedfeb10b01ea1473cf7753ec3572405cd7dddbef1ed07cae3d476d500c3378224c0c94500518590c3df70d4200531172d0658a24b46863880c18ba3e6e05f183fd93d2d6df72bb45d8d7adb90f9b7d76ea71567b407b0e7dbbf6ce8e40fa22ecd4c9a3cf4ed1679d7c39a5fe13c783849bd2cf48af29cd2ffdf3a692b748d30df60f44c24d8fb43ba4b71a43f0cf216f279dc29835e03535fdc5255dae343f4949fb15364bf2a8c43abbb629fd97d389bd2c097c767a619b35e0fdf59a5fcdc9fb4f1cd2fb8babaa7fd99bdcbedf67291e9457e8fad449c5f3a734197d1ebf076b7687c8c82b5f3a679273419b157b1cdf2d406a5c3a8ed39711e1702e68353835dc6611d821204e2186636546f8779c0a35ddd9f8295090ceb72dd283926ed1c67636245d1689b65f9ac0f2cfe31237be19910fdfc971e83c9b7adbe53874548e43143ec72bea4f395eb53fd97c8ed7f927df0db2f627c74f4e2726264898870fcc439fed3685e3d2856c0a276e3555a2530de794cdb08fe38fe3424d37ebf19aada6e035ae6d55f3e8f484edec03b41dc307233efa0931a270b89de741fc4b135d3cca719ce6e4e4780f4f4e4e36c37e8ed31f3b71e34f61e3c7d9b6bb9ce83b4162c432a2204e338cb3a258436b7c3323356e511e87289d9e1caa83ed5001e241f810106e8a1452701f974e4f4821055436c37e0aee2323f2715a83e16c389eb3c1ee703ca6b0557ef71f9991fe1e6ebbc3e1ea13ec7990f8717c0afce848361fb92cc9f3c84de1c7e16a8dbb6f66c41d05176a1f59913be794730ec293d37eda0972e1e4701c0f1277141c058779742a884387683a95a653d22b91878ef538ccd91e15dd41f7d9de15dd414f617b5ad460714bc15159510a1e7d6743c1290acebeb3c3394f909d9d1d6fbf389f3b41845e4481e3419282eff84e0a9c8cd8664591738759110f123fe75360106fe741e2dff129f091f8cce33892cde3e0388f5b5992e741b829fc1c57a3d7b8cc92a01c879bc2afe3422f12b9476cc7887347356ef9918e2bf1a376faf1eec41ae93b9bf420dbe3d21df4b8bd2edd71f9cc2b914fd31df49c8dd17407bd67e33cba83aeb3f119d4c675f06c5c060b0dc773569d0ad329141cfa5ba353eed09f986b7b6774ca04874eb74dc7e50679f5356a79a8bde42a57eca35369a653288745fe3bcee3153ecab31d0ef264d922f14f41b279e941aa3c7346a6b16284962e5a78090387192b0f262c48cc283ad50f9da2b0f14b339de21c3ac67115732c9b530910cd3404645feeae504ff01ca7d991fea3138e9ce03146aef69f407da092d10ceb318143e26dd371ce9048e76a4e77d051e0a499eea04dc65768559239c1a1db644870fc04ae4ee1d7f19e8d7f0ca63c1ec7759cde603d47341dcff135415b8eb0860a10ffe1fc1188d31f5b37bf17e58f8d87806c549a692808af3c8ef2a6fb5ace88e950d456df1e8ff2b8e38ee33aa8ad2ef9f028a716a6b3f50f1fb7d7d4f49c1535d3c7a6e7e17687ec70357a10332db32438aec3a1b6aec1c76d3fc856f963f8c821c500b3a25d3d8ae951ab477148bcfae842fd2372bb437276489ae9143f741d9d1dda0ce7c7f68624994ee5387459a653380e5d9a117a39db8dfbd8b84c77d0713636d31d749badf2db38bdc1a2d720355e6f5ee278bd5efa6e91a27d1b97ce1bf456ef07ba741ba07fab173471b83a6bb8aa3deae35bdd704c46065a4555b6c11641e233effcd03b4bf2903c8fab4e79e914982db20f3d66489ea6b9d0dbf66db6fd9a6d3fdbaa635bc5bebe5545fd694bb2fedaea83e3a1cf2d097e65320fddda50b1a22aea7979abeea05ba145ae2e99fa560f2715bf29a86a965a75f35c0863e401860c27c86881a2532787cf2dcbb22ccbb22cabaa2a5b48d643eec8f2f72ccb9f15a1843156e8905ecdd5f9d3b2a48c11c2f7dcb44a3fcde9d61f4d975b952e45f553167107874693d013a53123a298538c528c6e27670a3322ba1d6544b099c6ecc8c9f9c8ea2cc9c999ab47963f3fb99511b1d31375de929c9c7235ba506f36a19ffc65d14f1b95d1379b1063eb8239188a5f45f914076d4f69fbb39c0f8dca14cbbec46c025d16349b46c36980fce08b99a634efae61f0e96eaf5dd503fcb2f0ebbf35e7d7c7c66bb78eddfc2c00f685ccd755d822359a2f901fcdd4a9c7d44c8c26cd039293e342cd699a09420c4e9d0d5a598ed394e6c3178772b587a7de75aaebae79bc12d9f10a14c46b87f2ea28132a76a150e4047f2ef985e98fab4f60f8e73a5d77ed3a9bb7407b5ebdc8a7bbf6942651d898ca0e693f61e32a3ba47d6e1c04afd06ec2c656ba6befd9184b77ed4a9a87abdd0e573d0857515f370c77e2eae47272b9c616e96f97a7adb56cd12ece87d3cda753506078e83adede5919910ee782a6037d8be554ca8ca897b0fe013bc4c2ac89a534e8332392a1bb865b24fe7ac43098116d598261680a09e4474ef415230f2c638e2084306de0e1644650022c679060082c7a091f1bceb6dd3d252cd02033752a72455fe0602a706b2d8d44778e7de555186734ee5d5cf1c1156cd0c1944410364d155de080e9052508a3c5e281822e5910c1a58c1d2b58305d6ec094e6056a3055a1a1bbcea2bfad83d0b6ddeef9cd06b77b4946e023f5f0d18fc08fdc969b6d5f7bfd36f92c85568392308ca6915835128c86d104410424a8e08c1269c03082aa881398e1c30f98c268a18206228c5007134ff4000a25248088368ac045056f14010c9ad2647841fe7edaa7d7295de7dbfd05c9fd795ef3cf275727907f2eb936e19fcd1677c8f39a0dee90e7d9d6bbc2736ce31df2389ed517f161837688c9044395af6c11e9ed0cc61609838318cdfb690ff295571a0ebe7d39084d19685e5023f17edaa9d779623497a3f9f66e24da6923a1e97cdd303a6f631f76c80ffcd3deac821f9ce0bbf9a7f21062be3966da21ed42bd84565b8b6fd7a253d1dbbb8b4e80151fb2b8c831957629b4192027e41c855679f5ddceab4e79e95465a65fa3536768f9f65598efca62be5dc90b622834f8b59168243ac5b441aa2c76100183167891811d730cb5b3950dc286c00512ee504112a228c2503b67d920d50ae408021858b6d4600f3486da19890d3262020a36be6479c10dbe186a7f1b6be98ebd57a8137ca03c27dfaffe27a727a4e7d53af98674f2132765be0a29c44edb7549c949995382bcf4b53824c96db902bd4a8c107adcc80ea157899cf67ed6ab400ef57ed69b5b57c5a556f57b7bd0f5a9bd7a88f29416e4c6df86729ad27a769c36b6d16b0f8fd7ecdffbb9bcfef8d7b3b3e3cf85748a3f057f0eb708e7cfe30631d3fb81fe5ed7a9a3e99d904ee970955f889fbcf6e05e9f53a76f73eadb09276c7ee29cf3611368d0816cd6750791f8a7d3fab8c99d309d9e7c3a7d7e820bbd375170a1e61f3f9c87abf32b335d5cd556e77f78e4aace5766ea6cc729c45ee5a1c7779cc7e9dc78b8aaf497ebf09777e600fe4937ab4afe423a798d97ef53df36a4cb2fee7229aabf38293cfe22877472ead3a3432425feb7f966449ba3e0713b21856d8be6dcb6c58a0f69be3d97a2fac749e1e19e383725c89be02870bb5d3d81433281db7205f30cf36cbe1f5805e3a0675e05731baf52c3695ec586abf193538d63b23fd06be6cc348cab4be6618f6f0f7dcf4654fa52da9bbed94e8d156dc79f530b4b6940dd41b732a216ba834e799c3a5d16525a54fa7834e53d0ed1f7a79f36a4e8f56d278fa7371d6649ae93cf8dfa69ab3c943a6d8c67cb74fce4708bec2f96d2a65389c5ccc80ebfc4382bda71225b4d156dc783f8736cc73723dab9c922b043371cc530e6f2aba5b69687de4cd38a96a59178e8641e3aed6c067eac3b7642abac85b5bca039356d7f2aaac68ae68ff3047ba9f428946f4684f227d8cfb9e580fde38e509ee394b320a8ad628fda727cb3a21c7f6eb9ce3e90edc79614bfb296879eb3d527d8c7a02b375e45bbd1b0f982aed47895ac26cbfce68a8d57a9b1a9a9f11b878e7a41577c78151b1f376ea3f90d77053554459be2f21bd7fcc66d1cba03756a569f874eb75d5541e5f705edd0d6161e3a1ba1f1ef183f58c2e3701586877eb3edfb79ae6d3644fe79cdb6ef27dbf6fd60dbb5ad75a37547fdf2b7ad75835d34a59de8cd7647b91357f486994ef15cfefce28ade30c38230fffc6da776c5c4f4977346746df6b8a237cc4c5ffe0db6b6c42a5e92aa197fa001020292a249df07ba42f705ad7345fad755cc4b2833a1d5fcbe71041b4050e10515692c61688becf41a247a35e1e4150581d41b2236d22bceafef16a9a77f61f20aed755a5ee90b18afd0be3ba4bd3ee8955fd85de10de0db4f5ced27c22f2caf50717cbefde26a7f25a2b32f2c77f584dfae02e07b3205b243dadb317e218757686f7f4108914eed768fab41be6adfd5846f67aeb6ff73ad6bfce972e9e316e197ae55f893abcf2dc93d871c3cda5516eafcd775f337bf413ec8b543da7909ad6b768740176ac8b03bee5f9fe62c286f10ef4feaf97ac5beb9a22f7008f9f5163a55a4461622bfde9b153a3bb503fca3e7d0f7e950b56d5f90e5d0e7660f00401c3f4091822f7804d1c490c5edfb6122f99cb7e7715382cf3ebb7b5c6f4bac8acd2a50a2e784df95165abe7fc9e84208607a08ad0201bda08985043ac8a20638d852461a5c645cf8b0e2e24a3c21e1b28313d2c6c0238d55b3da820c06c41844c0a284ce2f193280e27dfcaeb880c125053b27a155ed57051a3b1313d30f43bc7124010f378408820982b0827dbbf682381006134650a185126de460a8bf376b3e015d9faa3d873bd12b74e6e073f8fc08bae42874b84d081d76d7b0c87bc9fc2b5780bf9b4aea7d21891f22d92d12c3bfe98206197a84dcbb42531acfa96915f5cbdc8d46650af6207c688af6f56500f3fb4077053642abfe975bbe9ed21e3333572f4741480b30f86cea79bddc727a6d1bfccbdf1f5d0edf96d21ed7d02b2a7ad5a4d7f9d7f38bab939bdc16a1f9efb7e4ea8c5cd5767f6acfa382e0feb03f7f38d42e68f027bf37e8fa7092b5043df668facb9126951f7cb0fee268c4a64bbff1b855fe1ba7bb45e24d04e294b1aa5594b5e3b5fb1bdf2dc24d0fc42965cc72b73cba099bf7cf7cab3bf98e6f07e538f5ed201382705cd3fc729ccb4dd0285751bfe397e76cdb3f1757513b1efdb46dff604d4fbd06732459c34d09f23f76875c5c8d47e02349977254e3377e54e311935e2f7a7148d22fc73c6e15d6e8578dd31ac76a38a41fdc962b387ec2c1f1d309e7d4a3d38ef2e1554eaee35570dc874b9c6df747e3eafc1d3f6dbb3f3b6e6dd57fc77babdaefdc38c6f4bb438070f5868b8e39aa47c787505b8ea5763bccabe5d85b97c7edf2cd8ebc8f9ec4f2e89b21f15ffbd7d19625a0a1292cb77198111d41e73932bfc69f589f790d75e71f0ec4ebd4b4e915e5ffc3bbffe1b5fb189d7a855fa923d578eda1081655fbe68ebc9bbba05da7983925f4737a66caf248c53fe74132dd721b7f5ea757cb331fbe3b04c727cee663abd36f9cb324cfeb742bcc3ff7e15fac3e623d9ddab99d3cc7f2cb797748f531a44e87feb224cf7d709d25894e6bb09ce896b33bcec31c67e3915ee3dadc6cfc66ab96b76b1b0f92e8361edd86e391ce83a4c631afe17a1ce3212bbb2c54cfb6238c9b4fb77d3feca7ede8e2b41adde272e612abe07b6366f59798d7f9d809c3bce63c86f53cc655e9d06db69a2ada74cc6dfc896c3817349b0d7e4db6615b4e9f66d89f5c67459623b1f4e753e23fd819117c8edf4831344d550d7710be74d1add471ab405f9fb480f506cf74d7b13778a6851e92f5d6d24779e62ba5cfa1f7f61c6eb00e5ea13ddac12bb443875fcc00f3fbbfbd6d77937bd93b55556df1a38372124a3caabb6d87c01db2dc126d575eacdefa5d794183a732053bcfcdefca0b2e3fa4b5afbc08d356be20f396bf18b7a397f2275d3af4239911e970080b75f75db345f8d92d9841608780d8a615d350e632e3e6fb791ea3cbf8acedf9ca2d2952a7118bd4af33d775720cdba69f4e578c4eafdad3afe995ff8a3172356300c69991e716b645a4f0633b842d6e48ade124b495aaf721d2020c90898ed0965dbcf7de537aed4aef9be32e44883491eed7539ed27bfc628c213641d7a797d0ea7c1fef2fec3e1ffe7195997e91d83cf4b74d810f9fefbedd7687f01240cc75a89e5517467c0bf9764ca899885651efbcf1a3e0e850db03aa02b9c881d52d868d0d0a4ccf165dbeb92d86f0f1810e0dd4f841832d80448173820c88130daa2811e477c5c511591374770fab062d7ea02334c34ac94a0b35504ac2ac68109a410b2f84f861c4fcf5b2c517d84154a607e143939b82776a84d0daf7a1f791f6e7db946e0074de15a0c3f6f7afbd93a42bcde71dd24bdd586f53fa6573bc1d8c0f43f0d911f8efa5657148ef2507bb975825fb71a11072486640a56abbca228fb7498142a7d18fba81d0da2307b923ed2f00a161450f0dd5d309f9768ed0e3dba45fdb91e792839b9539043d6e5482203204ddca1c8a96d7b5b6c4ba55587578f97edecf5e5ed74fdc751d19e0aded487253deaf6bbf1992fdc12fb785477a0fbb1afa00f40f449882af7d02f225f1bb74b8be0ffa663ccb29892e3908ec50e4f6fd4c2086c76d24838c338cf8d42f1966ece0e9f21e5a9dcf4315c59992e72de576641d726fb332871e743a37ebdaf22aac3c3c7c3feb35fae4e2918f97db11e4a6bccd90a8f091dbf2019882af5f5353bf1093f8b7a969e8798c1be32af56f79bed90462e00781402184b03bc8319a23ecc25d087376e12e8412421f60842fee908510429893e3a307f5acc748607ac29a4963871042afa8df89edfabaa350df361234e6ee5ff3c21a9feed6198310c279c2208410ee09831042b810c2d38513c61968bece35cee0d2006dc94083cbd75961165ebe1d897fb26684c46000a88533353c08b906224cc46040b6f0e37144805aa8e105013990e4c47c0b3560e0070c9d8a10eb1ff65d9df113e80b500b383c39138170860c9317d465e1829dd79101ea847450cb0205399692ae863034402144ec6a85c708c80c418519450c208b32405c27844993ce6b26617058327f039317d4418885199d2e9221c3e406221dceef184858f91fbf2b2c72f0b53b2391a0b4a3b4e635af69c9d8d6b4e656778586a930d35ac4749496b464ec8e32a2612acc7484b15fdd159a6e6208e135af9a851042f8c0ec9075d5e4eb0bba3ef591f9ee0ab949973b82bccdeeb47dd810d5ef750f853c8493087646041f7cf0c1f8a07cd09a70ced73cdf8b0fca79c1eb7acdd77c4f3e68c179a539c1d3e9359fe67b569c66ea2873f24221a53defcd072f7882148318f69ab149039a344a34c8339775a261a249a304311a329865af399b444e93ae1718b21a5853f39a6b2697b9fad6e2dbe98545710273c6b7675e28977f5dbebd260a1b6863f39a6de69967e54c1e75bc2c67f2a8c38c1661c06821068e35b468a646224d6b69a6a692060d183262c09ce1c54c1d65c09ce165c559984b162c8f8a4dcc191ad0a4515a310b070d0edfae7c5a74d63c36f3edb5a9f876b881212306cc195eccd45106cc195e56d1cab7c30d6ef569f9f633cfca637a599e110fcb993cea30a345183062e058438b2efa8aa6a2991a89ced25a3a8a5ea2999a4a1a3460c88831534719306778597116e6c25ade632af80aeec259d808c6c256de8a39b3661e0d68d228ad98858386dd218fab90a83b2be2a7fd5edd159197227e18ba73a222fe9e9550cad72ce55583da21729e66cd7308ecd07c3fad046d2157c4baf6e6db27e67b681f19a320f6bd17e3beb7dd3bfdc5c830f51ebff71e7c0ddf7baf5ff77bef75775befbdd7affbcdeddd8e3a6dacb7d718e383fceca0dba9f79aa332c2ddde6d98ead82ff46ed7eeee85cfbb5ff7b36124ecf66ec36eabc60a025aab1c20e16429015343181aa40cdd311164d268834c98336928e1c5500be09b0d21703308b5920b1a112d29b9304354608c203831449712b8c1c550fcf918576c94f1919b41a83b255d688c1f2d6e06370d3fcaa8ad0146c2f7403112b9c83894410667cb95bca0c909c5d8f331faf888e563150f64f50b12fa52831b584033ec4a06a135d060fd84be8c11855661645052830c3330e0f4bbca811b9ffd82818616afe6083232086758c93003165a20c4428b87d0678ec31ac2bc9ffde7abe40ab361584f080b2edabcaeb0724516122c80082f7e88220c2ea83cd1818186164a9ec53d2094bc8e4a948421230a153c4b8e531e5670c85c4568faf1eb050858be50414643a02602d402d00b125ac980ca0585facdf778e7776545107615264c0ccf5e5378087db77d0101bb025b21e6a1c399e3dc82e99f20212bc2f4cf7e9ddacb4d062c10425885180f1f2774464806a016525048eb293a0112ef671fc217343931bef8f8fbc5045cbece3024784035903390f37765851c5f3b2bd437273ad61dcbaa45d82ac8ac02da5579af3b31409d90ee0529a94206f0b5921aba2aa878afbb8eed78cd3d1ea3045bbcf52bc698d5d72e888b044a50224c0804841086c1c4e521197498f99adf30da288119ba3ef126a73b9ef65d5561c443979ed31c64f973214464e814cf1ead7fd6abcff40a747985e15f77fdfcdab4fee99f766b935bd11b65b6a23165b6a2316160331bbfb07b05dae9d737e75281ea057b607981102f30a2cb0954c0030c152ec08ad86e20a60b231801c41d4c04000f3454a4800a212c6107524a0821bc01f6d2a794972b81d3e9755d42524a2ac47859f3d2674e1829a59432c29601fb25230c111f7fc1904109221800000000f6084ee89107113870638a280070398153c61523f04109326d84f119c211ae189439b981fd92c103183891aa44eaae5e868539557b01132dc44ebb69e8ee925c0d9c92d8dd5f6860e5bb7d1ed62fa87b3ffc38bfba174443ffb0f3e33a250c259114bc94448831a68aeb065909168e2baaece00661b0d1460a59885113032e31a022c35c4b5029a40f6034a180bb5fb082d67ec740a3ca1bef082536f0624c1a4170238939382f5fc8ac625044ceef0a06679efe92c183322cb42fcf639fd0f971bdc3185a0431a7b80253f85d75f1c16763621122bca34b195f819ed34c2a6f0572a861c5cb1d4448c2e6821f3411494004165148714410418c29c25b30832e50c8ee2f65acbeb15f30d018238a2e6074972c2815b20b14b0065d92e8559725de18681cf1f077d5a5099bdf318ef092d2784e4d08b3c100ba2b58edefbdf7de7befcdf79e7cdeddd49a524a29a5945242b7a4e4e8afb37919e1ad5ad64c329df72757ada38cc8daf6e511299f74ce9e4b097b534d965c700eb4aaf16c8700a5733dbaafc7f5a3b86c595c85912dcb8a965567557abcccccccccccbc1b618cf071b61e618cf0ad648b89525a517c032d6ad35aab626fa9a199a135cb2234b95d95e2b32f97a1b137127899999979d7799977977977b7779ff0f1f169620a84ec48dbd4a4049f392dd4a377ec54fb7ec386d1bb46dfd811f6e327075df8def37e0eb9ad880753f0f5bfa6a67ee18f92f86ddaebeb4da95f05f9ada01dbee7537b3f8deaae6ad021b7efa79df26698091c0414dea68b10746829028d20e4b1b2538bc5ca8f4d249792a7bed9919daafae22975ea94c3b623fb467664c178762cc92ee1d9b1231bc7f3f6e0f9e4428d6dfcf4b46d4674454ab7ca3e89a8cf23d499933e935078e276915cce17676dcfe55351864950205e20f1b57bd688748a9d9f575e58e9214679d709016ae17546049dc9b8bada4917fca0090f2de0b8c28e13e050d77542bc07d5fdec402d68f9f61cd40b5a8284153946e0c41a4c5a0c99f0ed9d13dfdd70eb61d417ad76cfde0961dffefe1204123f5f2eb1aa616ce284657f7086103148a2084f2471841e3c9e58e1d105c8ef0a0f2c8ffdaef0602a024b41101b28b6f0e144850b6a858c2d560004143451c50d9e2ebc6cf1a5816c64b0c543cf4179a74e0fbde3e219084b12401acadda713427d7db4e007119a0893823254c021841d17ac5c8082499538c12a0b11ccd00117470469c3cccd11aa165049c11c2f00e3cb0bea405511864d0a6cae6031033b7a80458935745af0041932c00280df159732ffe3d74b196566008d00c30a3abc845105ce17403e250435b6c4e1021fc0b18733198f88344850811d4118a186123ff8d1822c2d28c21ac1a9055798c998c3070f3da753f4a12f6a8ca62f2eb8416441ce138da08e2a80b0810f7040c76326341fdf0124acdc08134711427063687d7d005dd4dda71392fa5104e526bde8c569171720c6705a116ae8b801e2b4c6439bdf159733a616355e541866771d84f1bbe2e3e3c334d0ea8651f28284565cb0b8dcb7087fc7db0cdd49afbb92a13bae8e7d447d44e38b8f1f7d3ef1f9c85a68ef71417ec900429acf7e575cb87c057a96fcbef09d9a9683ea6147f55c28fc92c114c5dffcae58d0050bd2a4f9e872d5290ec36b685886e41d91d1dae676248fc81c9485e479ace3e3b297ca607ea1756479f4ce903c8be35e4a9fb24b978f2ea3cb339e5b702c92e7f1cb13677c74a9dd689a86e3237215fb28db2f2d43c252bab5eddb6447a64bb72c8be339b93c7146fa6b74da2ff4360ce50304c30c343079c20353e12cbc0473e12b72b0d3ae432c43c24f74f1af01cf23cd8e488f7e4d2b3b32ad1fd876ea487af4b5aabcac0cc973cb65766472dc11c945fa1af2be58c32b4c0cdd4e415f9d21f3cf557fe6cc476762ea92f48024fe731ab1b94de9239089a957602e8908628624fa9bec326b00373dd24bb25c69beabfe393bb5fc71b5ff59d39a93437a6f7130496c40e4a0c54f08ca56aca04de67eb09d9b9b3173003fd61d6fa71aa83ba6923976427bceefc1f0ecedafdba057584084cd8a054734efabd91db2ddad13cade50ce1356a361bc152d3be58d9d785477bbcccf378a34308a3b98b91f90252206218451ea583131cbb2ac7901b101c54ea7d38962a71ed4605996653536f2772505106e304dd3b41b1c9cdf151760e4603e7cf8f091f3438a3b74302019d16a7954770b244382bf3b648164443ba41d884e86c4288cb7f5cd1eb7ed1869bb9202cb57ecbbf2b545766e1132807854774130deb0df95147a3c6aaf69c9085ff39e6afa66cca908af3307a0af407f695a0eaa076e39ddb1153462e0b1471a2b9882054ee03c748d89875cbdb827403f39ad3b2d67c2cd41f5683936bf2b2eca3cfc05a30a187cd5f8bd20783915a5c7e8fc9aa0d3a9b30b8136375bc6808272de9dcfe42e4d7ba287343d2042055f7a30041adc6c29020a4a29a5d337c810aa2c4670260c9631aa1c61867666b5e5ca45b93ab7ee629eaebda013e7183401849b842bb4a842082158a152c410b479c882320f73b08387d07d87509dd350dc875d48a7e0dbdca77f5cf85d45b1c503f95d4511c55707b2b2b09c7fb7c8e32d22ebd233c723e525f5233dce08fce73ccc1979fcfb92e73dc7b7c11f80154b304581c5109040840d4210c05801142910c388379658f5def302773dfe6efbbcf144eeae9134684c4c4c4c4316d79cd35dfbdc95900c9daa1a0d9deaf6edde1688b4d082b6418f0d33dac801d31473a031d48eda209511617800e60459c8600b1c0cb5fb06a9946022097bac11c40f2d6062a8bddba0080ca146172c3c78630b252c19869136e4201b5f5f0ef2e5750b70900d57c3edca91711b04cbeb12e1db97531ca268a8646ad7a933410c42a790a1191a09124001a3154030301c128b85a37926aaba0f14000f8dae4c5a4296089328885114c5208314328418020c00108021a2990800b0353a01e5d012f35fa88901f7756d592e264343de5e98b4769878813146afde9ceced14585a9734ca47f39e9b2bf3886e63847a598816575f957ea587051b9cfcd86cfd648e0e5965816ffbdb901f53caece2404fb02a92df9b5834f1ca320375e394c7c644dfdc248171ba2374420e56a17934936cd306fd795da17be2961c2dac8f8dd796607ad6ea51185604c30453cc3ae4646c738369e5617ab29f9943250abe550ea1071489dc29da30599156b2f167202f3551ab1d6c515daa2d3356f78365f28d2a412e872872b5a740ed772c65603ff774dfbe2ee1f754ed892724605d25eead0ba5a22e29f6263e0695df310fc723038e53060bbaf5c1f5e72c538396dc4e80d564b882535a70e3d5ce31042786698a81e4e4f31322ff2a1ad078587d6646d26f6608c9c0c436fdf04dd645645e61c056aed5fcd8f87e6dd05dd4cd0e4d8a5599b049deda193c102d42100965fb79db91525570779bea88b1d881ce218d843e163e9ed126d045af87efd46cbbd926e6e90dfbc952c9d19cf65fb87ec297574df540a5a094822084b046df9119a351de71d734ba9ed31456337cd9ab93a276bcc9bc8b97d557e5f618660afb664c4c6a6c335eb62c26d34df896c22c6e1da77f84914ff24d668786898bfa807870e6229add040d37f3dc7ee2fd575462aab60d1300d4730f7259c3302bd7bfd344a584d0688c4aec602345d9660159a0234a3bd1ce63eb2d25ce40a5f19049719652fa924be986f6a11dc551f149011eee93064e1e9b42f615c229cd4bf4f1b0ea80f8345ce8c8df377113919508961a6154963432afe1ed2332ed7fc30b7d7f17bf2c13e883b67acfaeac88d5ddd0986b4ec472ef3865375a61e55adfe93281fb164554dde958d8cd23ffbf298e081a54e9f9925ba9228e8727626680c5503d3b7bc2d5bc1e1e5d0a1d15879923c069da1ac1839752a85933125f207263eeaf42b77de89e9643b57fed46e8fed0a1da23244f0f598c2e0a83b288c01e661a3f18b3760f1f747fd7f4be16f7f785be1a79f199268a34db2e4b69b4644dec2447ba85f5a3d56f6a318ffdfd7bb65ab94a4a381034388533d14f3294fef2dbacd39fc957d2cb8b7ca51ec3ee579c39009b88121c0076a5af2e3e7655c9fe7b50a7ca19cc03248b537aa93e3ef2c4cc8efc6f46ebfab46a12ef09e7e0f6a25c41024d8fa60d42e9327ad7e7adcae1262c0ccde15ab35778c5dfb1dfc3e664b1082660fae3244fb405753b658da4942db3ba2528ab7f76586a9bb20a340aecd581fdd7c66c2f48e4c8809d5e04ca1a9aed1d1f72c154fc91e6e203b14d7fa4553b4f35bc7ad083c16a209eedad66ee1b77f6070085cf3045b28acb182d29935b8bf39375cbf8ff502e3087993a534f3ad9273ee829665b9f0e34d4ebea72d85ffb9dd787eaa23fecfb72e6f20ea7d048d4ccf29205bd11de4f4394209918950a2d66d1536c54e8d114245acfb3787be1d9f56be36da2e6c0fd3ce817494c70f754a330c672f66d523ea48cb3e376d8c2e9aae1eea888b2900e34d0178a5dd28f135b576278cdf06199fe9862ab6a469c679141620a4cfb0a590191284cc435ce57db6cf94333ae923a08aa13180d3f587064f47da0fc7cee243df123600c22bb570692d6f9094ec51bd5bb7f41f841e2c75ae9f2e2f32efb4fa38b77ce17bdfbcd5155fd56eaf1087e13fd078ece32292e69826c6fd976209a055a7f9aeb87788071c8d43753a9dc063224cf0441f355b584aca82bcdad858f2798989c540637f6b04eb584bc03c53141e2f848a9a05a97af814bb536f1967216a811470c5b4668001da47f507573508cb05ba00c2ec9d808cdb20b2e5dfb9e91e04b12cbd0109a5d3211b859504194fc937a2c9f5aa1f5a4843a799380b40d63b2eb21fddbc607ec288a61937cd1fbb5e028b2071c356c39c6d896b4203515ac9198500cdfdda23ed18c0de6a4670151127a6d969500e880efb401e2b03036fd8c425fa432be0898bdb5c000f96e33352c2c2b871e246d3087f0216b714c98de72580eed403013dfaa9f41448106c6ba6971ca15772e59b777aecafabfc9149f6c714c259559508670dcbddd3bdb5b977a9a02e9d69948d892e1564b22dbedcff8f30bb72059e8f86d45419931620664efc9c6cc93ef9d5a94bbe526800e081f31d7052802b766630ca384cd792cbe83cafba3ceba323d6c014d6a1d4214122cbd81c2e46902984e8feb7e92264c9ae15ba2919d11696c71c9f79899bad77c87ee35c269f458a3434494087d9abf55f82006c3c105f097ca45c3017619c6b67cddc0c47b802c06fa83c0a134e2222f4425efc7a3820a00965393ecbe2326d151663f51af7547729afc60ea8a3f704fc40db2ca06242efc22dee06e6bd6a873ad14eee6198a31adaeb48e2fe188466699b1e0aacc0414b0ba916a54abff617a3d22cf8e519dbce32fb95d11915271025c5e720a7a6ebe2d7a7655d7913f83037c21d7c2c719a444ecf83f139279a12350023d895cb099a4bf09c70de07a92b1b6ac1c8ffbb01736818300ffb3eb284533954b19ae7797462467388aacfe82e2e1585b44df61ab7f3532b3b261b3746c68c0cf93f89b68b12f43dd682dc8d90dfa8ac44dc0f681519428e85f445b1f4b9d7f6d90a7a4d8a880dfe2848549acd00f117f7ce85a477287211626613ff16023739d90dbfd728acd49d708683463b8b58b67bc9f3f2beaf885987c39feaa28ec8008a0e1451bcd05de122f911343ed017e6313dc04a68320b5c4968819ff60b7e323c74b063e2c511ffb31fdd64d101c34819f06618658affda62ef5dd2a176d9212a6afa22506a74c9b499e20ce3a28882100be4351689c7f611f11c0ec7b6726b7ed0fc986c1c3cc33546d2d0b728373f2f1d878c89acbff235a39c0d1e900b8f8af19cc9f175650eabab48b7d445768bb7ae7daba6ead725ddf4753424cc9acf9b388adcb9a4f7fe1a09079e4914c31287762c3443fc2883c66e631380fe4ca817b3ef4fef931531380d77a5938e4d8c69cb9c16b6561cd347a099945798bbc8777f99369e419a2f6f0b1d177a0cb899e6332768db48ad175a9e0637aac1c873bc429618e9edfbc4cfa4c9acf6d4c0645cd7bb72a6ae205986668d32c9521de70d02cd30ff78a24685f4c3d6669266fffb1ce0bef64b3dff733ca4ac4c6521763b68c2a79a9f32c5d8a885a98fd43140354b93373f8c2a5ea526ca093f4487d7d182329e4124611a7ae3c0a94e5ad795f039ef62132d294ba2236cb12a869b1e3b3b5294ecc3dd2881568811ee02835a048950580126bc47f73b09d795a59195e6a512204d55436013985eeeebdb5f2e88c1c30cb22dedf92803ad03323d84347851bdea3801c62c694facad29aa174a2ca0d31899290c214846a51c2bc296478704d09a428e309855325f61e8353b3bbd4ed82d83b561fab8f987d9dc3db0df9cc6c7938b27d97608c60be458967f32d0d67dc3ff18f5825e9002c9891c1dc249fa90b09f9c444d5502d2ec4cfafd67f86520bdb61c6950787b988597bc2e1c1bc90290490d60b95049f33a830b576595ae69e8ad08d7f8ddcdf5e8b788226cf22e69c1fd2b42d14c3ca325d6225713c18a01ac56d1c20110ed13c3aaa1067ee16dcb28e84c7fb16e7ebe0e5a852a22a0ae2e25515fd4113c032ed0c86f3c13dc47aff64876f8847bc168f84ca824ac2b1c4c3738e0aa7c08f39c0229a6e3d78596a422f379ff55b43452609fc2d91fe79d7b25ceb67ec326eb21d96014e78025ee700ca55bfc8e445f1890fb770aed851f377f5dff6009111051b59f007323019b36d5298faf307a0d727ae6b12135a6d74c26b1bda6ba5df8605ace4e8e8bc6b73ea41e14e9e789b9b1b29f1d6f9c9fde6a3d91f5961f4e79bd6cf91f1a5d19948419cc26b1bdac9a5df8a8d5527a1f38747817ead070691d85d420b70a8a0c5ad459123efe5a93e00623abc71096090f02e84dc32fcd2195ecd686a58bd2f3652f4313a4063d24c290503ded8a2f77b0af828e9895ee81e72db7b3cd58a0faff669abe92564587dd441d1a01b9de5a7984860d09b9759bf8bba7fe0dd3ae1e5216d76c6bb88be7f82a7501f5af023af569cac39082d6801143afb3eb27baec566bea6d2789dd0510e0789d840023d2446f70d4df12726e6d9a2c86831535e2b4346c58c980da25f7b912a4d0500ccde688f866d36f23f7716551fb23f5a58bc94097615b62cacaef8d91b951886f5f7196b366c91fe9ac47367c4eed036d9397062375b879fb318ccc3f0354e4863ef5e5d0989067f4c8da9edfc22a89e7feb31b459f5702ceb4437b3244c3bf14b68d12c4e0722894f2c5cf6b89eec48e15396f3560b32bf3245f6604d989d6f19c25a65be570e9a9cb03d9259dd8d4022607bf79b7d5ca6a8f6f291e4a5229ed006e4faa6139ad30cfeaf4917666e1030217302cec8fdca44a719a21b00d86a31220a450ffd38837f4542ee4a757526e3ec6c527546024c820fcff0493bc588b72f137cec45f00138e236da8a555fc5cedf31960e4a1c22ab9728ce24c15a3233af662ca9c62e085cc6c63ae386ae9151471f51013e79a7bf327d29ba97e9e5e77c6d83a388d26172d5e9f4472ba6cd60f6e2c34bda6501419fe1cc9c918c4abd0fd062e6e8b66e00781ffb53b43ae3b9b557dc3f2d659ed758b9e6c93d25996fbe57ee01ed42fde4179d2db86523c585f88a9a22a783bccfda75aaa71f32f732669976577cfa4a29f5cb5b7a56749546154a6295aa99ecd2f759bbfea2a45bfd0e19542cc4d2c0f0fe3983c967a403dec309499b42628397c963b9334b8109e7628942b28990d4d114c7eef6afa8a2b5995fa385aaeb8b26af9bb9a4eb78a94dd34117ba0bfb8414a00dc72a0f03869378b9e28ef056bd0d9eaa67e14ad7ed5362bef5f44bfd78b2597882cf2d3d4069f1de6e7bc1e1ca45a0d6b5c0c8d3c49b64b84392cbf9f97120ec9eaf588273a000c7a007ee2c347e30162c02e9220e3da06370b8e57b82204c42c45e8eb7e72f4701c41fa381b2d8afe9f32340ba78f32c85b1a86b94f899b80d58ea14400c6784eb83f936a1968886c4b1d2ab6a7dbf1d21e06b2afe2dded61c8871d38b893dd260f9d1401dc42aaf72db76d4aad51de87e63af153277b972363ae7622b1c0b60cc9bdd971fafb5f27ef05eaa73fc4dd09884b7cb836a02ee3973c0c155ef42e1be2029defa5438307cbfc406a9be2eeaf6b526fc805c677a89f4699cbea00a96c198e59663c926caaebf12aad7c48dc927bd34b3b6fba29d3b7617a374d4d0bfbe39b436efa3f1f9256271708607caf8bce30c3cf49d1e23d5858ad2b72dbc1e58897449e0332f94c33818a3626e442a3ade86080c01e832d65214600517ae72099c103847fe4fd3d8a6664d7edcc777691835716b488f3e23d24148c0480f7089253226abee7d000bac126a43c47a205f2fab4a86cf028e48f244211e165844f030ed80f1bc1e54220144754ad3ee04fa3644f4f7970b3c24ac630d74a02154c36cf32510f0edf74358b070ca978ff17ba26e4b4ae4913ae184ca3f83829f8c8f13fd56568a288f1756f5b9d3f3d09d6419c32aa4322120f3f1346b32192a839c81b9e8c74ba02a39264ba2f0ddd73c716370bc093ba2bccae5ada10165037246e98d04d0c4edb7aa24975bc900f4866c4114cafc5754364808d74fd97292c2b046e68244a0dd1f37c3263bd0e268d4579da332423f61467d3b025d230a1c8bd6d8d08d26e5f83cd67da859cd9878871d65cdc41ca5382e95acf60e42688a182bbe10ea96570302ac695065b28e2a322ff939cee0072ae6b31616248aa0cf84cf6e5363014e9373bc8d9411cc2d037d8cda219cf083710f9811543f1fa2f53bb8c28fb9f79cfebe45d14772876106876bee7c671a22dbfaddd30c7b177d91bc8bb22e7eb154178702fa970f8eec1194324abae0562906746e224ad2cd1f2bdfd7f35b50dd9f543247cbef3489381ca9fafc0bcc1510945142a55d7cad6e4967574fcb5aca32e1cb8fb384e19848285fbd623ec4f497db90e27d32542a5e546bd29198137ad205195421c9c1476ac9d10e812930fe3803233bda225a2a4688c9588ea0b67528b5058ca4c3558ec6faa2351cbd9423f710e42d0351744cba7003884deb346a57e3a2eaa65de9c2bbeadc8344467b2574225ea5a8adaeee5fa20f373cf7b07b386374a9003d7e6613fa1b824df34792cc75ea4c74bda79b61e21469dd83bb4a0f6718c2c05d8bde49c9843e94bd5a6df60a39280bdc512f50f20e4b135fb4ab48303325b80292809c5528145ddbac6bc3e9000ebb82ffbb6b61d4d6a0d091db644e0b38c2fa0fbb8fe2339d15221e93ea15ca1fbbc53a88c40f52044afc936e685ca53b33f4c4476db615f2f635dd8c3e3cae69f11cb08eb11595570349a09dd48c6424a9eca8355c4dab869797d2b5ed24a21acd0ded15f33612ddb03205746dd889945503c7ed40868feb20b4cd4113a37074379e1a1f2cb177336307bf047a8cc554df912b2094afd8c7f9af1fbff3ca3a94ef91921a03df0e024a51ca54ddec15411d05acb28f6eca794ed97970714548b632a7dcb2525936d73b013d5548d881f24c3c9e417aafa398f97c7541495f7eda20e0c39b102d781f48fb475f5af38b3e20003fb8ee2807712a98d1f99f3407b9bf22dbfd62292d87ea31e9b3088c78dd42c416c0a1a3ac3bc2bf78cf44ef2ac509de98b702048c0368bc1656a0cf71cd7e8bb199075013f20fbe490023b932e80ba27f9c471a04fd0ec160c427a3f0b5657d40ac20a291dcef69b49d945cd977283cebdf8c7da3c1c09e1a053a7b76c258e455af9db4982fdf9f877461dce9f07f58669615c4d938f5f3e6a2f2ca101df90338a8da2f869da347c29704e0fe4d0b9c7fc99a682db4110271d90683f7122569085e5408773688418d7dd684e38679a987b912184eedc35123d5a4fe4ecd7e77b1051cd1b213f823c1898d4bd0aa2782d133c8d20a155667cca1a805a5fabbb387a099f93a83acb2369c4b30eaa61c36afa43ce447214bc927b501d05b36f0e68b73fcd695c910d44778a13169064bd9571c91f4a43437302be5441e642e8630eb544253fe8511a53994c826f9313109230771ac2e0170790f9954d3de84a2e3b853e715369cf41362a798f12e3966489890dac47380372420b10c3a2812dbef45e827faf53b906e3f70cc91af0948d25e849acf4dc2f86017203270fccabd0d2e967798899bcc128499ac7712a838e650f61024a4c51128168499d4eca669207546609075c280ce31c001813116f3e0d7fcbbb1634289de0548dc818da5badbfe9285cd05ef77d804af93821759441a6d5fe38e044422bd2a39abb13d9646b1f7b53ef1c7a6941c394f0dc2860fc8082a3b0ac2dc889c0104007186a320d2e2ff4ddb83ccbc11a0ab90003d6d52d04c5ab3c38eb8d9901645188a606c4153693d149aef7fab2787f66e3ed42937107310354c13cc13064ebe4398bdffadd97ac6172482de7856a228059895a39ac78c606705940f101df506113c71d0f588673a7b6f8c3ef081d8bd4f0fe537a2745839eaa2c527c22839a92491085fc99e278a604eb87030ba89e2f261a14fdc8efaf7bf104aef08fd9f759ed32f66e44d3f5407c72a8848324d910a6b24c14447d79c42e37cbe10a25f7afe235c98220bb9b3edc00747705fefa711f91f2312f709fb54c4ee7b07cdcb18aca162a8f7bd5f8783215d26397d8c414431d0db0c9956ddb1fd29ee1f804fcb30b14327a0f911558612c0e768259425735045a7b837eaacf9f7630685448a23d99d0154b5dd902fc7547a7266d9e224ba0c9396d134ec0c53f54f67267a884f12098130a2f4555c05e974cb551798d2233aa06222e369fbd74b2764f98fce0dec72006f626760f803deefa86be349fbeeeeabef94327d10feef96b88caa4e6fa254f67392b17aa81899d1eca8e59dfa5f2924722a4c37d67a3c9268e9e9c649da28f416209f7e9d1c9a82c520ffea3db91d23a00b6957ea336a1ecc289dda951f589c037622f8bf225d31d319c1716e710211b9d2555de381ba4af92b8af955cd894d9bbd675b05bab89a10f3e5559a45ca1189b269131a91db9b087d73fa1a768bc4288036455827407fa947102537fd347f8eb7a6295d67a3b42fa44c8bb9e0a4182a27da4db708513e3b579a2a382a2f17573234d0b9bbb1dddaa1a0436e013aa1514007223cc4f17ab3799a65a66596fad5ca718ddb4bcd8869f1abf26c903f3995013695686ca3a23440da2639d273beac9079baef6072fd20805e3317f4493c7429404ae501d40a6df96708d7e5d529782e01bbda494d729db97ff68048f613f73da408b524e00203c7f0b3761d30e4e6117564eed999f0a77b762ed6e03e55a735217fd2650be7c4133e51cb553d230d5109f0b204b68b81349b7fe0be49d3e2ad372a1af4cc24fa3ace1a532ca21e651e52ed11faecb5db47577876462b49f139d876be1ffda14534d5d5792f871427c75ee6e14af561b0e3bc62ea60ea4f4d20b81615858988950fd99c5ee29d938eb8198c6d463fa07690a46319b47c02d5bcfecec95a1e66af2744e757c05bea2777cace9241fd20eb7bb301042f5717fe0468d60f09b75a6062a3e17e9f43803f60937b2805439c4d801ed528402abc95d84ff7eb5b48563a22e5ba429f9c509ebe15ba17a6b4223246eb5c9eb35aa815120d8315dee55b95158ed35f23cd0a580180ce0909be4220d0617f2b5ec470f3aa76c55b62604b316f33139be36d1c1aed2e2d02d6265336026532cdc00c2a1807973405f91b48bd852e74ee4a5b58604690c61669b5c7276c3b304736f4fcf911938319d5acea2ab3f0a1c3463df4517b7ec9e99a25e90a0819c6d28e84f9c646289478c75dff4a302043f2aca41106e2a32310888e2ee4f589a4ef20e65570c4ca13d68ed6a81e2e358b0d8f2ebb08048245080b616c613450316c986c00d5ed72ec4f442027781e6a27c574cb0bbe981a5097c26de00ed8c11bc3f8086511679c24f0c2f7c955fa2a206fb0ccf00df751bab8dc308b00ff825c625d37e5c0ad21b42f29a9daecf5cf859989175bdbaf088238a1efc6559113cd255d0cf9400ebed7bc5e86417e3aed010ee511dfb418ea1ad8983f92ffa7980f9c0c081d663a9dfd60be1749513fa443f2cb02b5740cde2e008aff771b8ce0a6c4c6ec108cf44ccd60792294e863852c8848d4e71f09c0f8a7adaa14205a5929fabe91a202e9bc965a69aa9ed3a796df871cce5b10a52e74430b514559d650e6731a6b8286168c8dfbc1d711dab9d28c850b3018a0c1983066edf42bc96e490c29c0916178d0fb11125b5229df85a28bddf0b696ca6a259712e7add005df56d0c91d6b73f22963017c612986a320884a102fe8d54fb49bbb765b1422888dc8e3dc15a8492bbb88d3e0d1044e263f2b4940fdcaa69786219afa404ae893a938d0e9a30728d4cf1a5a0705cd25502795d3b3f8977ad6f333300989560c7a2719f6988e6898fa9bb27662174b54a263e9f59ba30f94411efd484b912bdd533e60c0ac5e145f22329992cfb7175dba3be34b100f1fc87a9952b8d25cc61fcae0519936c65bad968474d04f7ee01e1a444c768770818a13a4a6f7deaf8211f9f323a207b0177ff1d2b298324dd1352fa2458dc1d0817501600433bac16fd8a64102eeebdc734bcbf653b545a7801e458652fbc60dc89b5140847285a42f20d0a07b1caa5dfd6228716ae25283fa384a02d23f6784f5cbd71ac9a84b4ec2f482ee6321fc164da88025f69c671a4256f757ab1148b9bd9c8016b4e1ae4929ae31ab3d4132125c7c28161f4619eb0dc3f19bfab5effe2018095af3991f54c8ac68c0e4bc255c850e585abeb1796faddb480ae49e3061b1c1439dd116659846c8ba2b67239df1b07785b60b7bb944bd33745b4ed4461b7573305edfbfb2b954c05d2b031d0731c48c6744c1cb8aad892f540aba9602e986c54f074ea28b1a11095b2ec56129b474ed2b8b353b6d34734d17cb66c8868b0c43976cf2514aa72f3c80dd9f50cd0a3363c7e58dbc9d35d4cf27018c8e48dfd1c2c95853ece0f6093c3011b90135f853d46e000ba488e6b59f65e1dc10a24395b6ae4c406850be20bb14d953c453ccb71559d9221262b263b782614d1decd43feae533703ef632d339e9db12132a73ecb03a2a7f18f85dc1c8910b222e3815d4c4b1c9f936e6deabbc4fa666479eb78994c58d9643551d11cc0b4c8de45d08689f72a1ff7745522c46456222c082448712676c2c7cf68f39009032f7098d77f3ec86c192b1b7c576248228e8b7ee160de8330887e4e962be6a5ccebe03e3c54c8438200890f43efb307b10919d073f88e30f39143c08d1b5bb54a3c48d10f166ffbc3fcf1cdf34bf721707abcadcde2acfa1daa75e3cca3ec6b2b09244b48270b8891051360bfaad14a2ae900ff96b71387dde9cdfe84f130e445ffe50ba86b123670e053b19c58c7716a5d4bda6b1331606d0af1a18e89925aa21833858b81919d091c5807cf201ce3beb087c9eb0d7294fe7c6218d9c04f197cbc026701cf3f6abbe70229a4d9746d0adb996d45e2334a8ce9bdef2c81490b90f295de806aeb44aa184f207202f8a025e2892e07d3957b64146caec1b69b93edda845f715be04da57fe17c3b316b228a1e10b20e0230a6105e068e4d86abcd48499db5b7c8a7c612c7cbb9cce1f8f4c79539d9649ade233b31b3b385e211e0c8a2c7f60f2a72fb649b92d706ad8cbff473340c3ab568ce79c73246dc32890b062f40310522c2651f063d62aafc9b5fc76576a84aea8945f6d009fab8816f2c6619dabdbaf370e39d5129744f1eca58c0a4f5ee4819235b21b7b1f7815e9b1c54325978b8504e83f29ed235e5ce8aedd178a5c737946baedea76887104071047107d7f9da6299ad1ea3939b3438b2976a600f1fb22efcd6a660bef7dce0d9710eb7541e7342dbfa479dd72b73566e6d3c4319604734ea5347423165e1fea08ecc33f662fb62f00e7de78f12817aae9b4b7438a48b97810be59a524fed6b229c83fb1f40403b6aab99f4d5cdc1e54435126944c32c07337234ea9125ed1c6b76c45d420936e5166118a164ee6d97204ac42560c21b69335c3f385e55222d7db630a9ecf4e126ee2181546f3493a9dc35e2f839b5a15025ada2e0cd6a6c82a327d0846c62e326ca73c26cfedb422033903ac888f13d9bfbeb3e05ef1fd418471e6d105a4b87437c2eb09b162406152f0fcdcc39cc08d84061b091d68c333c311a57259db61ec4690895dfdf9fe05f332838b8d032a7ecc4f3cbacfe5e6d9a7604f774f5049c1d4657d4b110be26f2bf3fa655bbdcb78a4030888e89e6acf481803f6591ea2279cee898ef72c5dd1934ef7828efb2d8ef813a7fb40477d16a7e88970fabc526fd98d3d59aeab57f62c1cf127d3570064edfb3b34abb7fd7d73c922245c50368c9bd42ab7d66e8faff1953d5e2e7dff8ed3f9fa7e425aa990e4829f31d347843e8a9a6d644cfd5d61f674c5a0cf37cffba4cd1bb15476f87aa45f791a4ac33cf530163cd24df05c84ea6726f938bc3bebdb69be1a237b121a14e646c4d0378e9d22730d933d350df857f343bd95d2e0f20ae77133433be658e8ad37d154e5705b53d3a75cdf9d2d856c964e126dd62f78c77343b67fe385d86866fe935b09fb710691cdaf5726fbaa61d0f3ad118005eea6b32e5e7797f84aa9d3cdfd5c491d5a8173ef6e4fae544d59bab13e3aa65af2e7548b601a9d2c76aa3a2652ccaa012f6d9023c5cb035f219b823d02ffc8240e7a3251802fa4ab146104b91c7f0d16ef1b100835ef858a211e0b7aee3a1ea421cd789041ae3996772e7e3d451c2d0d93f6947865f6616d044914e73c90f27e76da0d43a58260c5e45d549e6e1a789ee7ca12321b030959321693637aee58952d363e5bf13cc504e9286343608d852d50b208e18d658d6a39d84a091ae6bf6ae41ec529b16d2ec6726247f875f464bb5132de7ddf7571a0745f2098ae958d528728d4a86aab80455157d03176d8d3cab108491658c92f9c1d6312f6d22c82fcff3da1beac981583dd08e5d9d26c0487187dd864831b9ce5226e458123453dcdde21cdae7ff6ff4078082f0da1ccd92a11db28d35937170c9a74cf7b6a700c08db024df88672dbfa135c46085043c25f05e6aeadb9732077cae48f44f320fe0d42ac2203630d26e94fe22279c8b7e9ccd985efce1445e1211d6c0d4e37802c625f4bdbdd0ea2e6c8edff37ec7344536b21b941efed96f1e45ee171383c2a149e867da9a941e4312d040e97dec6b7e11a93ca5c5b73a89dbd128e5e38f3c692051c1afd7940fd8521c49074626590417ed84ca3d7a2cdcf3e7b5326e403e466c20260628d9bd079ea526111da81a46bd981e5920a18b0359d6532f668fa22d932e4489747c0517e7070a608d1cad524adc1b88110e1947b4c12547aaf6aea5b050bfa0364f78693f567db1e09f75279cc46143dab67494d3e1fdda14104c7fb88989f8b58babd530b16952b0a7651a193d9885f091584766eafedc8cf7b15e58e21f086417f2cda8936041a07bc9ced52b866059e5203a527c62715676a1211a2edc08e39652195e0dcf2e71fb68b9cc458cb103825942a7029af57ff108c6289a80d5cf0d243c644ee89ba0824963ed39f899a4f2ca6c9d9407f2f9ac2d33f86f7784d1efbcd9a45fa6ab382ec58524484d1c54003bd313ee8b024aed036d9ca784e4bbcffa165acb261995437ab9ccc9d7261c01b019472e22c0c6379c0e1f931a38a1c493de7dab342034ab2d1111c04532b62565cfc455a10895ea6d59221e823fa9da9214888768977ce6a9cd78ac9255979ab97bd1731dd2f58d49c337689573901d33eab3a3bca2619f91b684148d9d2e9ffce823086dfd062deeee44a180a5242c11ad517b51f9c519c305a842244c11089c31b8a24da84b6067ebc96aee7a91f9eae5e19dc49265f29ee7368c778ba7386e2fc2b1d50acb6246c562cf12b6a5aafb6378d4dff6edcab4129b08ab4d66b24f764e55836222c2c888d320bd8c1492ce090c0e4c91992949f79786ef73d61c9b45cb9adc23257887c37915507488127babdac9a7a2c56e99245ddfafb3b0462e57c6713091d37d47d58be326f4684c7e3076c56ed4e774670a6992e04486b7e25c8295c2a22f07aedd2f80e09601a993fa518e564833b265ec5b5c3d0dea33c4c4c9cb0ff956511f9376e783da708afb860329a24713215fd3fc8003fb891218b3b6cad38911668b78581339a9ca26eeb3809a6a1a99f84cba1a1ca003c7584e4e8eb9782b7a6368d0d925cca897cfea7f2e639ca78bf11d594d701049439ef1f397f9640e33e8401aac93967d9b704cf7e5c4d1e7ce368482ab5b1b42f538701a814305009e7aee21f914ac1fae8e20c604c750247b64ddb379a5b677516c5145688a43a7b23405d49188554119c7fe80c5d6bc85425e5b918723ed06eed4c58a83fb5e307eb9a1a32f1944333aa28b71b9da69f8eb51f888a3ff3fa2b502107a9173f7800118f7a244339820f0080af35bb9bc5be5f46a7338905e89c489420714408aac158a616bf859bec643ebeed9be43fc636638d82ff009e54d4125fee67313e29b4fc66501a5c4d161c5c107cf68e144b7d82a2cee55d75863c28a74497886aae04201e3698e7923f38ba8ec29bf8457981b509b957f3d2ed001aa38267f6fbc50d3ec03f3a6862a028d3ed00466b3b7886a33cd504a5f5806453ba8341333cf6cbb1d87625f32d5f130ffdeb6e2c1ea713841eb56d0362c2fce1d2e7e25e6569999daa8c62b85e242cefff9c3e9f17fdc35983f62ca7233fa2feada5f9645f4ed4bbc9ec8fe74847a2da9d80a085c4d0298241b66357fdf904f997f37555c630c39da1cd2b2ced7419674e9328cf5c14ffa9f2e06654eda760d150130120666e2b7957a59ee5818c58248c987ab72ce6518501bb1093efef72f682cf0f1f5bcd8270f88d3f073b66e39f3eba3d2ef896fffbd890f213a782d27d818c52542852bee45ff090501dda68fc738bc235f85e90f771ad85ed97fc0e49ef6f67123154dcd2151dfb72197be77658fc23c57ae3d3986ac1074019af44167786f30c82653fd7394afe8ad14c88424cf8b84349322e291dd94c11a3abd3f35a5934af11a3a256e3fff8864804871612ede039275780e71a517887fc49da4cdd6fec94279c601cc44ca6711a5b94c252c737810a6ef3807572fdf99af328ca31747608d202b54877444893bd9d0dd380ae124b15e53ecf38c164a46fea8e96be264320ecd3117fae354bc17fbdffa20665023777985f0c9d85e3360d0f88a53e3b773e38411124ad007576348bfaefbdd6156ee86386c89f6f51d3d25c4ff51318ad8b01e897218821ddd5076b9deacfb4ab715f703679ce8794759b2c4449dcbbfe2c2cf8a588b17ea8315bb9ae6ebc80ae52f28f176229b560151e7bd1ab9ecc8d080fcc64574ef7e0d3bf68e36cf845ade6236012873b69534517b74c66694445876defd07fedd714de6602ea26be9013c88111822e1c81f057c2215e56968f2fa3a21f0d23b124b76569479dfd0336881715c0f2898ee7a1727d784cc82d7996434e7bcaed8b90b6a4b65a06042e7e2b19861fa81c53ac6777ca5e4eba850c315faf651c6ac1074401ce45e4fd073eeac5e909d7d303f2068915741e408673a3528ae92d0098f778f6247151127693b2d730ed116699cb186177052986f6058a35f7c11b7ff70fe56cf459de3cdb9f85c77f78e7b38d78ae18104317426dd53b62c9e53ab9c24cf9322d95515014a3b21696ecfe080eb11a3f61c54c9087060c4aac7421423d6bedb32a8f217e6cc4814b33276428a6d70f902956007d4e8c2d166e1157b8f2a3999c4eb1e9ec81617a523cfd40c90736aa0225615236e358c9d12bf823841e41ad7ed2f8753ba58683607e20d5a8a510d1e4bcc7fc08d13cac4aa9dfa8fa8b0da5d1c6e9a95ecfceddeb74de349e4fcdb9ab64344bca759c089357dab8140b40e175cf99c3aba2cc8893c7aec8268ab89f6833221d9a6f851614b5bebd216118619885a61765688146907821a9bdc84d6896da83ce2cfe02ad827c6ea9622651cbd895c83979d84c5ebabe4859dc3747bcd8ea263949b967de635cd183169fe711d6e02f820092b33e809759e509d63bded41225fc0bb20b50c3652b09750c8e2c28c9f29812ee0ee68a1439f53fce5cc91bd9b9a52647921db01a8cd179f212ffc4b6d4efa9fabe02dc01c33fd2c1f002bd0b37d6ec69b73846385b426e6bb2a9533a57ec8c041c754c88d8d4a114313b2e11cda125a50aa5e27810f6581e041b8c8c6cfcff4d5cf3dca05f9c642e30b28c00893f04207a1284453b18e9b453026032fc8453bcd37743c769b0dba3be296056d2e20430c6a56db1b028cd859d592388183804ec54f99187e50b59ac853e7279535d94ed9657650ace0dcf317dbb59b9eb11484c268049c43b8fe2c271217d24be038faffe3f268619a90fed3893ab9ecfbe97b6bc1249f3d46351b13c6219366f3756eddca111ea5a779ad3127019ebd57db5fc0ec6acf726c381804f0087730651e0a409f07165c389948cd8e646a014bef3963d52224791ede90145ae5a156327a1d9104bc7561b2ba15ff3d528f99959430a5c13753004e0ac58e1266d3702cd6661f4a923803faecf4c3e283a304d7bbb21ba9bc3512166e43d3c1c81184a14ea9bc2b39a0927ad01f559909e81ed4247553af44c6aa1a9e8b200e014b38ac40dc3849329013628f029129c792b052f5164d7d531e1ec719d9b61abf36c490dc188b2a2fd0be2b4ea1d36261d5a70e709df05fc6191f8e0a565ddb31bfc567570e9cfe5294b049860c92c96701423c72b75a15927485b427dc9edbe067a8447990bfb6c99508b30dcf5d8b6e6a3714228757e83b77121fb0f4e0ce26534958704a9d02d4d8415a9ae6b0ebf15d8509bf045d6edaa900a7985cd1ffbc14854c579e9001d7bd3f3bb2b2c76e9c04190d1a93fff49b978181c40a2a26e894846b0b5aefd0fd03726c4ec7f1e176a6847deef9e51c69049ae202f4df9442218755fc32312bd72e043b15cc97b248ac06625d8f01d156c30113bb465bdef83e376ddc75a0a2368bbe5613b840d799485bb4cbc0b7dcf9aee98f16253cddded0549ab7a7e7b8bb1d81d99a433080ed0d4e37a7596809adbebcaaeda34269938567e6dc45934ea9c713e19034acf7ae41e9df7d42a3f23947682b297aa855777f42046fa70a0efaada5a1c8728364982e6670338e2eac7c53be3a7943bd926346989114018ee952bc88c014c45d643fb5a5a6998f34c2faaca280189dc80a53da665462218a04d888a55e7306a7fa5548df7330784ecd7cc1e65e87c61747e202b35398722ec5f386d17a2e34f4d9162f2be348a9eb42e30354a7456c2a3221cae421d2d71090b97c009357005c2ee0f8319398eae8929c2405a0bb7ee80af5344c8045b78ee447ed2331931cec105e3e47fef698f2089b8a28007c68101c61b119af17565ee5185df30893c48376864cb8ceb28b06cfe3cbdf2233e2dd21b886919a8c6ca8c923dbf4a1e1c25e6b0dd0d8c5a0e0cc92bd5b8287e05ed3071db306a3a1b222cdd84d14221c5be3b851dd65e635bc75f501b50c484d2cd76a8ac16e63c297e68e48a3a39a4630831cee12d8c188c2cc271022af494e76b771ff28152a8b1d7921a3025fab1f2e925407bd264e475c0c10d05bfbb020957bc7f1a86669fc5c652ad7578e7cad7bb3dca1b548a920aa2919ad7a9aab4abdcda01e4265d70818eca9c968d2567e809d101d0d29a74128e0de4627bf6c441b815d255d02baf0a0eb21161c9524bddcf543aeeded631b1ef2386ea396f039250f52ce017e3be5cc04ca4c3fb64eac95aae3cc39589dfdcb0894509b0a73298a0d6b93eab4d9c8c93fc799477c226c8232e02b863270f607e752c62cd07766ff790886571e2157dc46742d5e17c0448bd6e5b5cdd8b681b7810db84c28e53ac995a6266348e54c1ef5f17c11f4aaa82a0b27500828756db1c625aecd4ba16f21b2b7ae8a28705668c516c8460f5cf268728f324f6ff25ff8090c489810abaf10a905a5033075b2e1b79950ca95d506d507eefee8910953c82a78263c306c7436a19116a76d70b96407f93ae3dd98e33bd2e4fd6367e66b68ca62e15622b50af1f43489cd23086df5e5a2b5c70ec255db05e4e44ddd2106946a096918bb940d87f7b86b3abde0fb28462550928af56c313d3fe3766949194bfe9728618a611fbf976bdec4e9744e08f023009a58525a27f98b8b12596604c0242516451080da19c72e857126029ab488bcd1b276fcc9e14b10ba6972b20c40063a0c66dee1a6f6074f49e268aef4b0004dd8c541c31398d07250061672598e96cdfe545dea26e73384bbfbe5d2ea6536ed092c5fa676cbc6af2f4b9d9b4542dcd8b5ec0a939491a668ee1cf3e862feb0e942db231359fc276043fa21948155c7edd04d166426ac894073bd342b45bdd3df50bece808c13f82f6a9cac81cb4403931daebd4e2d9bc71eca67ec9c3b9c790f892b083a9959a2d3998cce057079efd7e002cf04eeb313e2c8f9d40244ef73283b531da5dee458fa3e2746f804444cbf910e665922b738c68836829f70ee9b9c878881b4500a362dfa4fde9eadfac47b7b9bf38c443c5d97245fcb6fef8a60c6438c223b34514253737bc8a4bbf2f24794a5cf246ef5beb1e418099803ead8dc4c24cac2435209df112b2a440785fcef8975cf559fb971ec0a3626cf7b088b25640d043168194418da5234cdb8a424ff472a6751706232e9b7df7dbea53acf072b9872fabfb60998df69bad14d31150cb2958abce918f8420b7518a67255114ca06b474ec60460674495b6fd664a1938de7e8ccf25341cd7874f4fdc12d3fd0008c73d17df08a97796282605ba8664b333a863913bd103b382946f32743f8d7a86bc1cc9cc04558b3345972eeba5afc5adb5429c1502ef96b2c1987dea0e2e9429c635b0ad3865abc77067d7f8c51503b685a995234332792a05343cd0603a4cfedacb92186f504f25801244bd06786079215d72621811574028eeff6f6aaf22ce2074b4c9f60bcffd20d971c42969b4c393a886a528378d57a31d8dd1dbc8689d0e18958b29b81a021421b3d16a6ce55351614a46ae8f10a9217439a5bf1ca48a3c4218db4ac6ff43e81ed9399de56f7c5633f5ba42053fbc6bfffc56b4c27ed14c64e366e4fb9c53d6db1cd8e8981cc0f85116e45cdcf7c5b3419691bd46ca01354c21d79faea67a53bd621b401809caaf08b8568c073e4bd1693e6f0c713432899afa0a4a1289d0f69a1eb153c838f41824eca6ea107f81bb8d2c99106392c0da5d88d6732220926a8a1875e8d6e62f133ffa529e7c6a2a57ed4ddefc65f9077dc4cec67c6457e579cd35a3eb159e3876ddd9d4dc58238c44ed5d06c54f01d295b9d9d7e454d482725a3526115af8e18a6fba96d00271d39ada8b5bb75be3178c105133a6098a1a32d271719c38a042e210d74b9a0cdec5d7de47d8591d11c573185490a781601baafb21bd225cae959713858a53347a6085cbfd0b362b47a027cbe98cae4555ded40193d47a94e6b65b773937c71bd5191fad25dc0089038f87d007c9124b746734ef191d9265c99326e0cd961ab2056e7dd74f2ac13009dc7de2814f79673aaf56f7d43f48f514c7e9b4d758e9e7a33df45d6afc965c43a72cd40edd518a7e75a901466fbf9f39ae3e810ba803c5295b68a55d0bf3ade0beb1b396147af60b48c1afecb2b6e6ecac6a530d8f6e2337d4fd72ad30270f2c35dc9c6fd92557f3bd6f9cdde64e3dcae769458b3a45e03b207e41f07e08a903c20fe5d8f69658239ebacad62272552442c4692640568209eccf3dd51fe19be2033afdcc827f6c0afdd959cdd641fbeff864c6f3cee55142ec8424c7f91c638bdc1336d82c776677ec49979d8fc4018cffcc4e7c123de0090dbf9a8dff925c4b55cff4e96cd7163a27a707fc9bfb4b7759d1ee1a37046da9eeaeafe56e9e422b9b2bd7abb092f652f232fa46a752483f1404a6e4dad27fb341487011b63816020f00424e1c2018c20539ad93f01824dfa8cb0d8210d5cc44b381596641abb7c3cf9a3bdd4854e5ececcc01e5bc3e69b10b8507e6d0ec099518950db00b00b649af47f4785bb79f200e77804409cd5256801c16a069ad77bf8bf73949ae9f43479676ce709138297b0e610002835ece8d6bdda7be40000e59ea67247a101de55b8013081d7d20c97d8c84c81e5544c6702014386f3acbe2a97d92ed81048720f312e101afa80d0484221e52f08ad9126d4cbe731c9c10c7f8c1fd355a64fbd455623cf640f0b1b22c70cd7875d5f64d1536bffb44715d0496a3b417ac2908968315e33973cd63d26e8535c5e90d90ad191995736e42973e817b3ded977b95fe6e14070ebb77ffddf70d6e122e7ab8a44403c7f34c9d3df958952dcd185be8d8a020f0521d152388cb8a1b09556a2cb21599cd4eccc355a903d80e2d442e97758af9cb109e016cb7f349a023ef08836dcc5ef489a60656bd00ff4113270ea4f67257dc384a009420c765d89fe01245ce89d7d2449668befaffaa0e40b1467c910d9e7f7cd999bfc2601e487d58c13e5a3b15613f88b0be7257cc7c4b21abd119847d093067b1bd7c160b4cd5d9486afc98313cc7c387ec8c6d963d96ab92f90c853f4f0db5e9f6eda1043223bd881e2dbdcf9c16cdb50baf3af1d77ac95a9c9cd69da46680e9765ef7a96c8de34bc9701ce5c88f75ffc71a83a44eaa4af624a69174d3f196650a445cfcd6b52348c1641a20a9fbcead0b800c0adb9521743966e915804f0ebda331d9602308ec8301f88615767047409b58531fc216cf089f84f4a5564519d63a0277dae31211c50246c8c33cb14991732590edef9f381c9623325597e041a68bb9b2053d7526c5d499413c63daf8bb8f5bff9a35c9bed031cd1490f58eae57133d8dbce203b40e48cdf795f80fab836d67818bc9f26e5093b52344888ef7854bd30b38ce672c98c69ebfc2ef5ccbff4109634600ec7910cf6c47df5c95a52ed46cd5dc66b8f5ad2005274f5a958d2f613789225bc1d09459d8d519bc8d242a90789e527b05dce6b116ae169e42e0420885644b0d647f0a2b484b92cdec64a41155644824ed1a5aba0ba60de895f2e6de9a4845e5be0521e8ff99a9958c9bc13a01f57dc098509507d2f330f362c6c524a0c8dc1bef8ba6427f262ee96202825600f0df8642c4bba1addf2302d5a57bf81257a82c49f579780ee54cab8ff1f526587835e8922054ae484639bbd999c35abd41dba917cf423843434c100152e0c83694084ff519fe33a92e19bd6a0652d0a404e94e7604d1ba2210933b3fe091b570b48eca5ff713a14c3b7883060cf1e72cb83fc81763b7516cf300259ff6281ec878e50d16258c28a8861b55103c2a564362c8c750f722f8a44ad79c5c0b1704d0043040762c630720831554c0b9bbba1f55b90907fdbd286eb5114f08147b4fdc22b2ed4446bb98857f00faef3522486b725f02dfe0739614cda2ba4ee9f35f951483fad59996fca9639f1cb7fa1f2a1999faf07bc6cb3b6f4be3eb9621a69fb0bedecc86ab824751f972600d1a8946f5d546acaf8e55eb57d1434975c2acf104fa1b1f194ef18ed15903193fc8d73deca0419ff1e109c7beef9df0851af9f4400ae089ed8c8a951630b49bbcf804154fdcfefcba35b9f48ad31364482ea79f2ae8fc6252b9a6b120fc85ba9974de25e6e5de70158ef728a5f041ce61055b2364eaa64bd8489624c18c89b17a4fbfa4e745cf95142a9aee6fd9487ebeab984ff921725ddf877dc43a69cc4d1cda019fa432013340b0972d8d042767da2c1e67f34e86734bdeb898b4d311e20d64b657f2b197be8fd408fd675067ffdd969e06ab19a8e6e692f54d5f0e6457575ad71c84dcee7e027a8307d75dde73ba3769df4670383aef3012c02367bc829ba3692f371cbb9221b997628dab437dbaaa2c6036bb37660f037e239e4ba3a59886842107f819ccdd2285e0fc5d98998ea26808e3c1f862d56deb8875b37e925d8bf5dfc312a70be641a6f0c05c0d5af28134b74d8148ab152863c0042b30a18b8338e1f958976b5cce1a1ef89a8540470067b74b45cf4c1e32c5457be88b8121aa4bfcfbec5530d99baf3300759ba14bbaa0e7df554b6d03bd88783fe0ee934ffaca5e04545721aaca8eb1853b8534a863d3d268d1d04962e59fc01002ee3118810307b6af1140c572e151f70d412d603856966d0639b88ef2caa9611e45d7a031372b89b4d635dc03a72c9552d98139e9bb4bbd580d2e2c59e6c5049ea4b696055c8fb232120d3c9b0c22b3b6bf4924a166aa66b70959a176d41920888671ee0a026e755ace21d443b387e11fca72b3ad3d15d09208129344de4f684cc948482750913009da9fc7802c6b8737b9b6a45580604a725da78efe54af0113b1818d1682c45bf27e6e7fa5392ee7844b3bb6e8633b2b7be0a4d0361979790a13740c10e847c833125880edc4039997c0c109ed5e4185597cc4ab20693a9af27775c862c100316d83ed3f64e1b1159cb1a4a292548daad910be6b20783191838311c085b6cf474c117a4aa6a757ce563d597c444fb31a672d455e96b20432e1d3d166c5a94d625d1cb367f730025cd9360396f464c61d25f445eb25179f95652a4a4262539dfb4e2400223530a5bb61771f0c211d7eb5623f9c8a059ce51353bf9aff3a946ef9f2c269e6ac749efff54c2a096fbe795a2327b2bc7e0b7d84e06a25c27b324aab1ca9b838649bf7419cd8ee33c037a83b614c46b75c813117cf3b0a89c89af87e2a35d58c75cb61f6faf99348388c3f66fab3579bf09e0243b3c2485de22cbf1ae90e9771a20124f6b3b48d8b32032f07179eab6ec15ce4dc022a7fcc79c8ba8eea5eda7a37347ab9e361c9b07d720d6233ecf236148f3e0698f748f44080e8c9806bb29830d7b6e36524098172239001400733a23e30e079c8aa3501c08333cd2dab9f43d8e9456a15114b24cb70654df884be57bd494cf8f75a35998fec65131a11970cef58b3233bd8a56da5a9dc0b28f0868379da4818290bc3001c7bd7f111fec4f41f18ec64554cfa9f14573598e5b493e5528bd5b39fbd8c1e69a4cea31096b5ae3caefa98af4eaa7c1260f6ab042ebbe1292b8676ba157aeb85ad1bf5052e8cb5fe823124d4c4d24d54f52caafe153b710cf637fc7f36480e856f5a10bf46441e58d896980f6262b5f9aaf6c6160a58e41e4d312ca6a3759c42688b0b34e1c45234cde8771a4ba8ab5016b8b258d79f5cf3b262630d43ac6b9dd414100b19a78142aaa569ba1187fec4f04393db3784101770426627e7cfa43bb5d169cfe7142c8d0a7eb2bc08b40b7eea66a80d91455bbe9ff40f63b1a375805c7c1ca3c3fdf4c8dce65134465a99ac86d8cc75c3d29df602fe3d55442152e877429a19280903041776822543eaa32f1692b42b9fed0537efa65258666ff35d45600b292aa9a38c7aa6807a4cd0fade15ad0d3a330ab595b07148d46bfb88cec6aaff501abeaae689e601757b890b1c533f4642b0359a234b7f4764f89ee93f4019f349371c827a997712acb8a4e56e32da59cd48d378352bcc760620368d63cf384cf69ff653e620f40035eb042ae74e500458a319f32848166bd96067719052333fb187e23149bc50ee4dd80020f7b9d0ec78e280d844f13ea30fb2757d32b1e279807df88625528dd562c754115a284cc5290e23216c971a0eed620b71165f67f7596a74b02a906d2cf725904a16908edf8f4aec2eb9341d70702f6864d5921951067e5f9574fb8b9b0913424def5813c7713520775c974c93ca1f7b39d11db01844c1cd366ea22c4bae41c65c9142de73f4ab2cdee6c374167c3a2065437e90c80b76a7048fc39433687288ba1f2f88d61c09752e78e8dd25034e3c54d6d516024dd2cf1ad4cec000f692ef5e069f312755922c2e74c17b15ea5a66ec44d75e3de73eb8d71d73d9e2c10b8b155187d473a3f404a1c423fea0d28195bab8021a4ce8b45b829ec4a399cffb277df146b210d8275bb904a7f6b02c47decf166691842fd79dfe94cf80c6a6235b374d50a5a1a2308b1ea2a590387ff1937832fd59eebb6386f7e22f01c95ed2156151a4fdd8c64e2a3efad12d62058d7b5e4c00b1246b65f8bdcd810e4870cfe818b99d61059ee30dbaa808c2889eb14afc313bb02d3f714421be7884aa5ae8342ff4129a60c5dc44dab5037fdd1bb515c02b49d991602454a6d07a85acd8b3a13f6a8189716af8f393a6e4b5919883f8359b769a006ebe18de4673e9bc8a1bd016c0e4ed8145622251cea772c2e4041cac55b0e16574d0840c488bcedc043b861a3a23f30d14efa4bbe070723b60b2c142d8b0f97a8d481a12dca031468dcbe71008f5c559b0e18a16a982d3f5a581bc3bb613acc4d896df23d0c1a1f90111e0741984253cb60a6ed31409b4b12ab73f247408946b3b48205b7033106580bec838eb267e5b58daae1a4998dfac13b7575173d4bad8b255a80b8a982bb44056c154080d39aafd06aa189bb9a447e4f1cd6701aa69dfe2568ee3eda71fac10b9bd6de06dd0467ea8177d2832de2a92c342f4eca7881c5cef3513118ff5b74150574ee0435dac74acb22c5068b9fc5202bb529da06f718cc867466323cf9b5775bd6a370b1d068bb0283a89b15fa3f31d107538ac7aa81a9a8554cf57cd2f4d3d00e0b1aa183150f6fce47f434c891f9f0349c66f311971bb4c64b6959e0fc49ddbf88d7cae144a90d96ce987fd5f00e6fe03d5ac443edd679b3a88fddc81829ff56288ba0c65a133b65cea2c5817998aa02b2b5ee98fd646656c47d4e7ef2dad15c22acf20128009a8e281d46178866060390978469c101ae268cd0cad1ddfded793afdae22db431aef934f00b0629fffa50103773cc41994115cff161509e9fa6581067cab2e1a21a363fde8c46f2a45115427021c421f55eb6d7ac4a69a3ad477b238d16dc684eb95099bacd5cf4114b73570818a150c846afad6610dec0caa9b05e726c63d9ba92ddd1bc2e180b7982f545101db480b3b7cbf32556ec235731210eca142fbc792c74c124a93a4550a697d34aa2305e11bb7be59adf222fbea11c50f08ce34e26b8b91ea24b84218b2970ab83b04c457ffee80c69a55e16c7493b6c3abef2abccb46365699d524038c778d577b48e050ce57a070a9394b2475c21a9c0312462d853e0f85f400bdbdcc041ae6d347bb78abb9a34f226caba591265ae0e7876908a7cff46b9fed27e4c7baee886b5969ea9aa7432df6594be824216d7414f2ae311c0dd1c565b414d100cfffb6e1806244621301ca4e25ed5d160ec85a0ba2fba900a56d2b297904c0d46c04d71ce51892bad32ce9fec211587b74cfe619a7da4ec56d7c8dd84d6dc9632ab5e00fe5cb4893c3a907a36040cb0a8856de4a2f4b043556b5d9a4861d4b6a2e4ab9d7a663af849ada59db15527523fa6d181f6269e563e58ef2a2ecbb7000d06e5c25b0945417a87a975b473b78730a1db749fe2b3327d049b0780b6fee76f0ce4824e891f804002039eba981d0d87d6ef7d9cbb10759e355f084fe4233616662b03691fe91b4c2274d27c09d0c756ab6282c6f4f03057cbdc9cf8ed7429f902e13eafb679d129ce06f07c70c7721a8caeeea5ddef767bc706806eb8da249bdccb66f761d4a0005dcaddddaab4ae016a51838fb1fc0acedd1d98a83097e00dca02d8b214dec5e871c3900d42c05f7f89982fd1de3ecafd6bf05182de238cac774a34b58a2d20f9bd35e9fbb75a3d1cae65eac12d28f314645a1eb0d6a19d7918ac1f72cdf22d941c8709a1ba79c65ea45b199ba8d3f87f45365d86f27e485c5e952808c27911ba2e323ae9c1f76be6d1d3d44f0ae33c88bb9557952ccad88860996f38752625b8984a612f5f614213d05ac4ae3660c92e1a2919299b3c9e59d68616818fe617954042be7349228ae24c77bd093b4da5127b74e2c2ef8d089ade025b6ae62f442e2d828463472f0b44a3df90815df138d7850068f39572838f408c209d699923cb7971bc97b001e0e696e63f564613fa8729dc937d332b77ee54f3f7a42d6ff2d9b15574c2aed98a3e24cc87cd106cee81289d61ddd788fec74f081f69d30ea1e7c085b20b0c48d21041a4ff68bee355419d847d80e8c8382563b5f912ec1af35d2dea3652ceb48d70d582e4f6885fdf95de8635483b5d4efdf202f3117549d63d5a0d69ef05e3918e4fd3e340201b8c3e0098893e54121c13c7a18800119068e029cf72fd403a09519b8bf50995131e97f9da04966b2b9a4fd6261b81d41f4494ec9dfca67cfaad11070983d37db4b4fc75f23906dd45ee1129280dc591e4fbfb53110dbd571dae676c84d27247041b12dbc8cb49af33426da634a0258250dc0cf0fcf7fd36c81c6fe4ff157bedb23bee54e1cc9db9a939aced96931833d8b1cb6b69efd65867d71df29c28437a8c3a589201cdc19a9eaf398e4904386cd2f837b6814cf5d9fc64bfec8436ad0de3291648a83e1a410ff2b9ddaafa7065cc7042dbe3ec61ce9d642d1172b6e61eb33eec9d17834052b9aa78a3095218900bebf1bcf3733e8e8def65fd0bd9a3137e1dcaae32d469990a8d8cdf6f4b4f5011a41f92bdf89b4734279e1931541391c3c3106a6db84b5f66df014e214ac2c419abb8b4e92fe25dcd83a382b93e4980e3267aa9f20dcddc05477c55400d788d67366f796f82b21e8927eed54a8ba039738f2cb693766e6ac838b9dbd20a1d2e61f3f4b9616836a5a407f1abb2147feaff3a991289d65a1be298bca4c69c155d60356622a2400f9f06f16eb7cc30de69824df39ac87787ea01331636cf6a73fd412e5052564776f89ed38f6db469dbb0c866611bc2f7751f1996a28d9b32ef84a069f0de8df43f2c6e3930edcf7af15806592712b9877852f07b369fe9a8a936f142fd6eecd969ede299bc3bf00804b41a3e516b7808c17e0e89f91748128dbeaffd6bdc8138a7f3933dbcc157da4062baa707d51b6099278b835c4d483e2af1710e1865c62e8e0fb44a30b9e5a5afc871dab118eeeff3b4ffe75c2b88df651f374020d845de4fb29d76ecbc871bda85b55111ac0b80f63ac35566bb38aa9f0120949feda2eb31c4fecd1199401aca98da6d70f92e48a2ddf5c2fcccbae780bac2c6de544688c823b59dd743f517182a9041cc0492108410b914a3cd036c7f0b9749505c16bd12beb08fe1e47aa2be23b1b03b1362f8db0b31ee9afa985b3e5b4c9ded38981ec4ee311ffab17008a2f9c4102decaeb977f0fd0c2ec887b988595d1f164cadfb7b65e37eec4b7a46bc6396586c7764100c21497edce3828bc6e2551ebdffdaecfbf15ef1c9be7bc79c2f94e61a917d7927b20c44a95b43f930f7a18747f06b625f452e52bda9af59adc12fe1ba08c26946cf853273245a762d0b6b35a29efa8a17659d9daa08f0663a7bb0faddb4b2995aea1c8a986fd8db86e79a312c9b5ba169378a7d5fa11ca31de51e96937e8d3f7912eb22f4aed3cf43731fd79d6e0748fb0e72a706b445fe9eb4230d92d9c730d9661a8e41ee134a52192e71a8c22422e9175e885b9a85d42aae9fa8ecc88e3b577c8f235e90283a4432fcca8325ef7d226b1b9ae87c1634248368bc3eae8b6616012a3b0b02eb8b3d3cb02815992a4f78c90934942fabf70a436d4b6c012e3417c4832984d3e0e7b81c08f089ba4b7247e8655844005b835d9e43046af4332ff3d5dc2211edc16da5ff537ffb46366b0fffea6ae8876b4b86f64b0b44a1e73cac4951eb68032b7b63edb0033612875ed916aa7b5328516746eb355d0a5c6282166087c53712a1f3894ab21091c7c05d04b856a44637edafe7b139254265211ee47beaabcdca0e5c2579a680f9aa59ae3c896fb61c4265593c457795df3714a8b9ed3c71df55212ac6e98768458392001cdc9f21489ccb5cc5edd789d5fa54ad75aeb34dae3a37dee05269ea353e971c89f0a330778bc000f0a0d04505b761497d0c1da39a15fc9e23edd21f62ae0afa183d0b262f0a8387b1786ac54604d33b430fe520130deacb2f6469dc9e2442fbcda02eabe4e895930d4e1a439055a0e1f0db4a47fa8febe2e3e2f1e8ade19ac1dccdd061dbd4d065a0e1fe399691e7fc8a3933b2be4b9229cd10f0ecee1bededa3a8321c339703873477b63e1c898641df18fcdf57fb3dbdab6dd8d741321213b1b085f089e09778964828926ba216c1ad4ec98e0ea8e49e75cafee92a8defa86ebb06fc07e5df60d3fd799bf8ef50df3d721ddb9e80e0676707f77c8901c1e4ef51c0fa7babbede1e8f070aa63a0014d67c7c3a92ea4014da7df80a6837d3e372bf34da7826f3ad8730e3b8187531db3639edb185c6de0e15497d6e958b6e9b42582ab673fb432b87acdb2d4a58d7794014dc7fd3c9c0a3ebb1f1d8ab82435d75fcd75f87e16824add1afaa6433dde1a7a6b74a0de80a6439d07a713ef74e2b15b73fdd65cb786017d781edc5f76499a8eb44ea7f5dd5f106e2ff8ccf0a1a30d204c1ead88268ad801762db052040e8a40428b2122580865da9010c854dc868682b0a94f2198b0af4f3b085470886a5155f7218437416ce07edb0ad8c0f0f258bf7eddb2d767a3d8cd3a60ecb0adcca6faf7b236e53ac4574b6dc3a0fe0f47a3cfd2f4b20d8921cc3d913a66a3cdc736d3341354f8f678654704601d954c09dfb661ca0af101c7c78830ba08bcb71b2987a0e0e346148432434b601bb8110d15c1538e10c21896bf5e06dfc08dc88921ec44103ee146e4640c7642099e78bac0722ace5dd01df999534b9f8e4483dc60d29bee901e70d3b4a5c7f012e90fb809977ed99e886378a33b313484aec5ec6a183e73ea4906d76eee82e2205f78cc5167e8b4fe827d6169ec08b31006dbfa74635b9feacd6d085b77612d1a3337b7226c1d27bbb959c1d663a082ad93ac97ac146cfd645d061b65bbd9445d39e70becef53bb153fafebe61c5bb658b132654a5111eeab0d5df185751794c70c8f37412b6c1abc029269ba63454b4377ae6bd3a7f693bdbd99b757df1ee9ed955cfc3c1c6e08c671dedee9edc920e331b87018ec6f3e67455114d5d3550300455555163807e0920280a3015ee174549700703468b83424ceb33c3d57199e4d313c1f869baa9255d5a015700b179d04c0743dfd8392647094b25693e93f93ba220df3f250d3452769703200b7ba356560bcbd166c5e33e3327e17ee6d8356d02083e76798e1267718d3c5efdb3be933ea6d661ee326ab068d1b8017d7a57117d73b9ba9a4be5eba6e0d1701a05145255555b90baf80569068b0f400b0f33bde0c3334f7f370bcf0c6b9599e6eaea3cb70b389e631dcfcc370f3e9e6661b2f5c57e6de6cc3de6ce3c56f3eb970f38966c6cd9771f34736379b6a6e3661316eae2ddc5c4d17c61dbae0b31c1dbfc8e1e2661b2f4a379f684837bfce38ead6b5dc154e4794b25693e9d6c9b2ac5bdd9ab7eee5a97eddfafbe164b6812feb3a752d7bdd1a2ac7c3d1de25df393339666eb66123bbf9747237ff397258f77a0c520396cf416ac0d6671e2303223b89f290e7b1dc2b058261f91c4fca5a4da6df7a3ee19c035b3707a9015f9fb9d906ce397026afbb0baf7035e2e73cbcc2e968785ed5555555557d475fd7855754ef511ce6b52edf2ebc629a6c1abc02923129c927bc0147c4d46cb0de9f96ad2ace8d04f79b4dc42d341b0a30f34775f8a161b72cc437105fed92d6cc2f2b719879b436378d029bebf6d0f87adfe6667ee633c6686c3d06e5615d8806209eb70762ea4e8859f6619bceb1de7ffff4a98b641acb36b6e99c864163d7679e6d7e334d7367feba59879c6ac93ecd5f36888d19e4065f9f56056eb07579e6eb295b811bcc3373ebd22ec13e67bd65f30db6ae9b6fb0f58a237b6bfad6266c5157bcf94a4877430f87fb7917713794dd2cb145af1bc28d0675dd8f75ebf1fee0be2e92cd3478e68d5acfd60d7283673e2bccb20d771133efbb2d1a07f6ced168f4672c66dbc3b9ac6533fa4677e87c4f203b5cb14561d8b27ed959350ce075d5ec96cd3d10cfcb471bc484314b23a55acf18b67e5dbea76d5806b12fe60b2c521cb2c0fd5652b32bf38087d3638890640e0bbb4e50af670cd3cc6abeb2b225d8929feb608fd751eae3c2174679d466fd6af8b2acbba0ceb96ed94677ae0b27668bd03c88eb8c3e2725a5a42c0f6d3352521412ec42cedc99494b333737a62fdddc73d287b37533c456aed867880fd7cc1fb8b2238267e63e60cbe687af43dae361ea3e78c6ebf2ee7839bea777e615f28054bf240ff519ebf48dceefe8995b91de99cfe9e2ccbc3fa8cfc4c7c882a8b9a727764b5e1eeaf4d67dd0cbb2f3d6d0c7cfebd6cd3dae5bb7ee2890ebd61de07e9c0eebf2366cb978764178bedaec70fd88f290b72e8ff59967725e2eeebc68e64793521ed73c765d530e51eb3045511445677e5c8deb92361cadf592cd7ed97892adbee3d56a5d0760b6c8e8415c07bb6551caa27236e68c381dd961ab61993d9d6f6e58707c8c2c88daf3307579ae5b9f97ee8a0f07fc21ad53b7e7e1ebd6ada11e4fadc7f9dcb0607ae773cfab3eb2ad6fd06316f60d7a73cfcb6c8e9794c73c8fbcf4150582e1396fce800fb64eab6aa7b26cc49475d4653307f0f5ec017c5df882989ad8baee333fe7ade1011e7b03e0b1eb832d9b25b66cb61e2be923af33e26ac4e90067c4e96841783a8c6a42b8bd80f9e07c9c0fae9bf2f872b57cf36c835b8413b31e0ed3ad0fe79de6b68773d90c887a3dcbee8d4a65d4654f54b351390a939a0d38d66603c4eff534ae683ae7faa39e4d74e7ba372a755988336bd327eac27743d3386c1ae7d1748e4d9fba6d3a67e6efb5d9e0f023ddcce61b9c3daa52970d86f17c4c51a59bb3bf78b51910f57afd0dae3ee7455d30ec1b8dead5d2f4a9ba75d15b9407a5951c95aca3386477f11d2fbbc12ebea3693ae7c5dfb5c00d76f12c2dbaf3e2dea82e5eb8b02eee129a5734d7871b9d2633f7a6361b1a7e6f16d4d9b2539b2ba6bf6cbe40aeb882b87ac6703549548e2c95ddbdcc62b7b2f3d4666cde1bf53a65b13e750f105f9fd7afdb03b165511162aae76128c43d12b468406567e1e8771f0380f1e285005eb87061c3050d4d0d9a999900cc944a344a24120da45a015047a31946598693517aa218260336670cf3ba60b82cebc692f2055955b7a2288b5fc4afd170cf8fb8ef42b301f667bcd7683cdc97d1dd68b83fdcd7bdbe4db3213aba1327746d09740defac7d37944d2431c618af58547da6558b3481f177b6b6e41d87279238595d8f29b13ec93751ad6af5224d2275f976231b4075941aab8c8983c3b026c2767a9f8f3e1e868fcdf512f71d6da4aa7daaa0a8afb6879321ce353838ecaec4186e3755d7224dfabd9966ab912b8e8865e7b4d6e2ad81170717710ce22774ed14b34f73f12ec11d98ad467d3b1180701b2202113800b80d0d010b9e4de3e78cb6e19c1a8bb8dbe4598fa7aaea0dc75355657b68aa5b0d78f781aeac1e1a5799ca1df8d1ed0429cbe6c6d0651f9e6b7d97b877842148c16d880849e01a701b2a3a0237da83c2eebada74cc568b3479f0425c1670b373beee9de65ceb27b5a7716b6f2d444170cef523da7289a64008234544a68808364126de111515e16b1781da868a9018819b6d2713ba60831f243740021278304516525c208026d4173cf17380217cd0a407537019f3848d285d32dc86888c3c21060b28421cc18a2762ac60832c4cc8d4d04204822858e0891bd10d62306400284f51957c47138e94e908ad321a8a1265883a140507d884db501416c02b7eb06630144508ec5a07876f1d54dc86885e50bd274ae063892856c054c1822cb4e8c00060f8441164c06de8092c98c26d8828091045a4115c62804418284430040d259e48822ddc869e8042740d31e4a40ab8c2cd0991110a547758dbf5a640aa537149f6739d6cc80dd91dd2447e4813ead9ad47faa38d80c08fdea88f897d478fe44797a72f4fbdcc369d6e3ee0a7759daaae4c0849f5abf181a99bdd9bef09414a134758491031af3ffa235e9ed6970fc7101f1dd9fa7431c04391d6371ececbd7af2b1f4e03896f375bb7f2d034051279aa8bf5a95dbae7ac7e45ddafa937ea9d7d043ffa1ccd9cda5c661dbbad6f203d9fa240a8b7fc8e9d3ac9fe5c8734e406d21dd2fa46fb10d27d687da3bef58df8768afea03f46cfac377b3ddaf9cabe936cd369f4c7087b76084f2d661b9e97056ff6c1d0a23fda293704b7cd43704f377d7f7407c6b74c881aef7a1a53547cd630084fb6c023f86c0644cdb071f7501e315e9ef7d968b73e457871db9e8ecebd205c1549e953e5b0932db8354c04572925ceb2af8b9d4cc16d684809ae81db9093227033e99c3604050bbe01be7a7793eebe2e1bc7f5d63ffdb353c300787f9c8ef53e0f458240808ef51fa7230f2b9396449fb0cbe621f83ab5f9439aecd08777087cdf21fdac4815d2b660faa6d3fa46be9e3d9b70d574a06d3a244bf310dc4c7a1a5f3274fa872382ebed89f8ba2dd434a08f01d4392e74ce8b9b4e6df69c4a9f535db00ebfb00edf3a1cc344e9f536674ead6f74e73bdae464b4aaca7ea8d6e5df1df0702ad279ae93acc00d374cca3e38cb62fc9a1696599bd15b9f6ceee88febf2b4ebf474c6100cf4307a4fe9a4ebc6d0188ff1477f5412c907539bcfb03c56880b9847c61ba60e8fac1017b00c9b47ba53f3ccde3a2bfa543d86756464d8295460f88ece7ed119d26bc4726a6f895ffa44268b3e5dd9af9baf67d79101423abd395f37033eb834afd26beb9c1f33375f91fea8f5a4934a27d92ed3646c1ec2937d3426033e40b297aed2d54deafb1959d69687e3117938d58c2db8fa9c31e3c5af17bf8e6534c3e619331e9119f6fd3c223366bc228fc8fba971e1e2bd38a53ba5f7dcc29b0279f1ebe6179fa78fc9dce8d7cdd9cd800f9e715a4fbf9361c1a367cf6ef6f1399d460ae43abdb9fe20dd7c3dd38f3ea26f0a64468fec336ea625fa92757836a1a4e3dc50432f067870eff300efdef7037d773fe00eff8121ee36a9efc3db849e74487f641f7dcef04681bcf0d21bf531e3a5cb737dc61b9df98eae97e18d02b9af3e60bc5e9eeb304e6da333d89e629bce651b76617ddcc3b8d907dfcf581f2f7cc6cd3ef885936c1e82330c3f8d8e63b30fbe79a33b37279b09516178c3305c86186c4381617413e5311adddce19bfb176e5b7944c8e0eab9a7e0ea8fc82b82c3c875deafcba03b579789417af6ce82cc9c4177b28c644d97a989f4e9befabc37cbeaafd1492f1d0a106e434e20c1f911c1d513254f84f0a4b06bf37de9b3d11ed9cd3e387bbde8290ae43ae9e651067c7076487fd467a7f7f493da1ebab68b4843b8fab420767b907ebd91eab33794ceb9ee50e714754e9b81ee507a7343795c57e9a537daa374bb48073d9cea733ada49541e46ade4e154dfd130498c4e22f70fae84ca2cf125bb314d744eee22b84ad24a1e8eea1df470b81f771ddad637f275692c0f8f86eded9b32a0e9f46d7d23f734ceeeca38fa23bb3cd9af5fb789fcb8fe440abdd93ebbee8b2353a473eca579f51daf6950fdb687c63577c1f6d018c6a71bf3703493316e8cb342a87332fd457afd655b28b3cde43acff54ea24fd5c708916c4f63faab61da4c5a0889dc4c80d09392e81cd2eda131e9d9abb79045229de6d030e9bec7437fbdd11ff43a3237bb2f7daaeee23bbacccc297df5292f6a21eee7d4eb4c928ce924aaab8e666683944e673cb33d04a1a79f617d3c9cbd6483945e23847ec72b5987332be3d43696416de392957125d0fa34f3cc3a6c53f38629bd376a4d4d8c1831487798f41660bc6193e9dea83060bc78531e2f5edc1a1f0ebbb8c32e6e7698e6f2907e9148bf1eeb8e2bea5375487748d086a00f4f6d86983eb319e2ec17c5c1dd40a40f6f91d637b207711d78faa63dae93ea61931a1f0e67779887bef48bee5cef249d537af52682be7a2be91cd2ab976c2644a56fb8f48a627a7b9a07e9b7c607be48d74de9537567a54fd547d661e953f5cbba2d7daa6e055749aaefe8ae41cdce0a9387c33161c20457ef240f8763e2e154afaa171549b12c9993054b606702dc889e5082e708366cbdd2b15a6bad4a96275397f701a36a3d8655cebaabdfd1d80f19ef3023d8cdb0622f612fd512f652fd8e57dd2d4ff686b14a2addec834b98cd10631fd58fee8e87b946774a57c8c3a5ef6892cd3e601eecf53bba347a4f63ec2357612a5a1fc9aa54efe824d21d398af4d63959625255ca15d793de48f5b0de7d743123cf2c6c12ebd3c4d7cdd4ad9abebc23579179428a13508af00070238282043f25b8fa7b406fbe995fae8dc9f746f10819821b06d443c8c34d429cdd9b7beb37ccbdf5e0ce58129cdf2176363fdcf86ab7613f4e471f3a0b853cec7ec018591035436cdd9e9b31204cfd092250acd01deb8e627d6a2df7549674afaff3561f0b8241ca83a7afc7e8a9303cf6883c9c0a83a74158c6ba734f85b1f7732bc1d55dd0c3313a0dc2d5e9338b61fa567af6999b49b7de9185986257f609cedb536147bde5e589d5bdcdc7c4f16677783123aec6bb4f096e2fd027b118c2ef0e28083b24d85d6739ea2e261f082eecba2c56b90b6d086aae0f87137a38ef5256d3a30d67a1f2588f383b21ec429d335f31d1395713503a87fabb2bea1cacfa7b75f980d8badff12877449f9438264e893ba2732293ce7157744c3a67fefd81e08a1710ced42352e59b539285ea70aed61f86b3c31933e26ab81b84337521af21a03622274738212122f0bb5ba2731e7e4e88e0779a7c83197135a88bfdb81a114620b1858032d6420f87532284df31234e87bbb1c2eeb9a7c244f075734f85e58f107e413270ebdd1c04c3f2caca29c18cb81af60d4d234c1cb39b005a4aad34269b3149c013b7a1314438d7c7fee1647a636e801f6e4e722005e7131e33032a0bd60e8fb2e41817545878967caf1a83e40a6346b0c598106821a60a561043a60a62c4941193850a62aa4c418c142988799285181f44410c0eb010c3040a626040468c0a9e208604578829e284305a5811068b2ac230a10961b63021cc12c684318298304f8409d30498304a7c0953032f618ae8122609973025d81226082d60ae90054c165480a9020b982e538091e20a9829528021b20226084b00a303258049a20a1823a880694114604c9004303f48f89285295fa670842f4e30c2972f45f83285942f4980e2cb1088f06568085f7850f4c506445f6410e50b114f7c4101942f469e7c0181135eca38275e9ee086bc847142f042850b82172a0e085ea0704d7871c2fdc04b0f9c0fbc08b91e7859e298f0f202c7032f29703bf002e474e0e507b744172b3825ba40c1e5a0cb1887832e5a9c501725b81b742982b3411728ae49971fb824bae4c021d18506ae065d94381a74598163d2e5885bd2050837032e5bc8c0b40397281c618a914b138ce0c225065cac14c1e5084ab8447130e00204f7022e4b38177041c211c125066e082e2c702de012e458c0450897640b16dc0ab648c1a9608b152e055bbc38245bae38146c41823bc1962267822d4270415b76e04ab0a5893bb2e50847822d4338a02d277023d8220267640b1127022d54703f5aae70426801e382d082c501b18396282c57c404a1162258ee072d4e2c17022d4c580e045a6e6039225a666065418b0b2c2c6841625d41cb08ac2db484c0d2224b152c2b64216355218b18ab4c962c1615b254b1a690458a25852c4fac2cb2f8c08a42161c585864616241210b0c2c325954603d210b09ac2bb214b19c408516961554606155410513ac2650b1c56202154bb0c65061044b0c154f5861a868c202b303154a585f6ca840027ac110420861f51e841042f8a2115d86e082822d548c400b153f64d1828a2860a9620a2f57a690220a2b502ce189127e5045092a48446144128640020aa66019c111b0fc60042d8a1005295540e18508530c218a2228889ec42838c61863945515638c3156ef074f2811a1e018638c5156558c31c6583d249e3860ca0e531821a31318420821acde831042085f1cc2c914288871680a044c71c395035c31c0151d576cb852802b39aee0b89273e5c6951aae10e0ca00ae08e08a8d2b35ae04400a1a52d0200500a498418a29248e1451c89314504819a478226390e2071206299490375220215f90c208796d62dbd8dddd1d2bf8e01018428b218410c2ea3d082184f045145c8a11b820c50f33b49011059b2a6abcc498a285284c50c078f2e2072e94a04162c688d2102414542b231859f921d3824601ab627a911716ab8a344245440dc51ec01c3c1312d174938de9e1d041d6251c1163d4c114639431461bef9e20751a5a0211313a269acedb420955a86444417822bb583a4c19da61470e55aaa8826452444248818a30805590c05e151e6055142008c92a4faa0b671bd2c9ac8284480829c0004302e3411420085579e2c0cc2a548882f064a84a9786548a444105e75c3f22a82031f5c9592a3c90d8a332c6499010e0eb47650a95a26959b811010109ce5229834d1766d11dcbb2ae8beebc0bab14c151889e902daf30638545ec6a470282aaaa41b1020b43404105323920d2a972e0aa1a824204b87a2daba82a1b7db23eabaa0ac1105014dde008241013040e2ae06a874a565515c5175c5555553d7982aa02620657ae8041c21644b0824e9583ab6a8808607045450833dc86a290521135d5538a80bb9b52d2fd83127c6142132b18820c1374fa06ee7612650bee04d4e01605083f98845b14a22570b6418461d8acd9210e818ff7d1a9e1813e7b76fa666a3f351be4dbabb43c1a3e351aa746c3c987e34e2d366db01bec3a9b4699e475eb12cb41306cbd7614ea750b088f5523b4950fede3e08b62f667db9deca7bec33e41dcb0c4edd8a79d0ed33928b020f102a21efcc8a0062678e1c10e8260c5139cb4a086865263e4a8f97483fbe4743a4b3700dc745c0fa6c30d424104fc83f0f260b61a3508d61304c3afb2ae07fbc2508b34a94c98ec1c78b3f57cbdbad7af37cf75294abe47f99ca0282a08f6ac9837b5c1f9c212f7daba7b6be3696b831445bdc61c5c988183c3322a69dad4066b62b43073aaa9166912c425ee1a66bb2d9204eed3503156b12640031a16aa500323ae08f3822a64a1d32609eb538e9a4fcf712af205f7696803383c00dcee16a1e2f01b7a24980aa88d1b919013a60b9a5247a9a39ad19acdd7148edaeabbbc5936e72e568b348919c32f579a53f0997abcb54fefd479a84bd34e54771d455953ad34946d8dc69b2376d00539d5b5193a46cf6f18960c58e773e97a7e4159f479e2a6c3e46abce7ae36b8664337a7a3f4f7763a487f874e47acfe6e723aa8bf4ba7a36471365d4e07690098d3116f6b353200f0b36934deab75a19d2c7e1fd9d66ac4672fe0771a037ec766c0ef93067ebf0480dfad46c3e9a86e7335f24d753aa82ba3d578b706b0b8df9b8ebbe0820d2ecc985180193264e490616383c3a6a626a726468c1b315a68a186164c26029860c008a73e6a3359361a5119cdb3532f80ccbfb8b9a92ca33279eb254f51f2d4557dc012522bebb19f2bbb3c234881d453ead7e8a73f469fbfa6bc3ca34f7a8d469f30bb1f9acbc3c6e1c2d11ff38ea85b93fd7a253d3b229824e5a5a48e51574a9931208cf278717979e4e7e70b9b1da6249209c645bdb8652251148c174d64991c59ecc7d5a08fb4e1cbca537b7dc6d6bbb0a5d360ed642b431a4952361bc38c381d9775734f45efc5835dbaab6688a9cdee074b4a2f951f5d6a47bf5e1f76cd54facf4879d0f36497741863e67a7e44707cc9c2c6c95ed92018a43793302325ba53a58d78641d8547d6610cc38e8de47d70367ab50e53a7a853f216c58c5cad1d33e230203c1dd6a84bea1575218d262e73841969b4cb6c35ea48871da0ec60db2709aa0326d0398dfb1b885865279192252a7ac5f968ab5b11370a84c2550eafb1bbe34d7b519f107b000f7cb6280c779f6a3c1bdbb282fadefdf94cef623ed3451b380cb7f71e7cf0518fed14d58f040d4b53b3e99cf8b8816ed75bcce93017254a16b80d553146ca165876ce12ebef581148f071235292059e10626f9f1596535b7cc43e2d2ca7ca43bae4e73acd9258db257d477fc4eb985d62ed5cd6f501a338c0e3467f440c4f498963c4f0d6f4685cbd0709f8e03e75ea309e8a917a104b139ac0d0476d434d4802bbf7298f3ebc8b38b6cec140438c9d0e0c38fce0d332c77cc13915ba1e2c6dc6b01b4939bb7b5edd7366d9977c3f4e797b1a5bf3f2dc88496bf6678698b684ef96ce8803aa74c7b57cf2bae47577c9bb249694d292b7faba3c56f57eb2a7ab9bdb015dd6b16787f5654b797777d75cdfe980b203c2f3108eb05ba3d14836f58a2a3561599665598d59f2147d763eb3f495a5f07c5874f213c6c39c20184ff5eb59fab8dc65c4a22cb5b071a89b836014169d11676486eecccb3a5c5555555dd7b40ef398eff99eeff7e7953e58da20d803a2227c3d5f2905eeb361d46613a6a69c0adf7467c9bba33546d227c56a8cb15a1e388ab156194777745a2fe14715c21fa4c3e9b08e77260af175d4c785a9fb4579ccc737da3075ee1dd439f4ee24bae3a26d7487de1c24cc48ceb9d11b68d444e07892e5c1ee0376148d27d1931a098e23d231fa1ddd479c8ed123cd1d769a9b1b933ac85d7747a463248a5d4a8a393c1c34bf7ed0bb9b7bd03b20f42ebe819c0ef7786b8c0c885a2fca23c25b14088629a5b9b9cec419cb4aca239e6774b3abe23553456b668844229148a4a63d2686247a8a362ced295b9f59eb9595d97c0e627277965eba36ea9514e278ee4e9ed149a33bec245a731b0f470e0fa773b35124711f213d0731519407e93c14088649cfe1e1808d43ad8c74f3556b3d0ddda9365218b30e8f46236747236c5eca5b96b500f7ebf54d7d5caf3daed75fafb7bede4c2f0fabe5515f1f49f5f1f1f5caf94679d06323dbb0b312b3414c78de3ee26abc4ff93ee27404e1e9300bf649622fb030613706bbab8e556c0bbb63f7e383b0dfa133423d8a89d7dd0dbbbbbb6dc3ddddf0f53de5a212b3ddb486edc178dfeb204841aaa9573d1b0f2d051bc8d578a7608cefbd82af620256efbd3e39075f7cd03aba13773cd75e060f6f82d9411dd4417da483700f35501fe9a00e4a32674e85ed622d0731e176c8c3b43304bb2026ec226e22b39d6b25a8b3b50de076275bebd80333e26ad87e6bd78e0161ac6aaf51d1361c9dc580fae4b257e3de1cde71f7a11c64320fed83f1c1166f861bc0efd1ce188554f8f9802b092151123d9c1157039e7ab4f0cf5635ef0e08bb26b0fb6911daf84681402b29261ed61cdd818fd61db6061fdb9b0fbef6e27bf7b15c2432eaf8648f85e58a9b095292b216f6ebb23c7a5c575e192b1f5c517147cf062d25381dceb282dbe5de0c66c37354fd59a76cd56cc67083332ea0e18b47dfbaa33efaead1b7deb7aedca1ee83e3b594e06abc37bbe341e99c9620ed8b65c5b26259b1a8584ab0ac88911204c3803020ec07336205030a334dcfce87d9bebc9b9ff0c13b080f8f61c76ebede0b6818b33cb053a7deb407466ff6536b7c60a74e1dbb0d5f414cb8a5cfe5ba8a921a5fa95a6bad14a8d65abba2e2476f8d836694de51b5c1f4a3cb51d6a68ae9117a841ea147945811a2411488060961cf356b0bebeefa2e59966549694953b53293c964a24784a04fed4a084a6628102562668606d123f4c8cccccc29d00c2562668602512433333334a8813ed34037592fbdc12cf1e8b9ca97666c707de9b294a5a9627a841ea147e81125d5c9140805d1200a4489a04014090da2412653bf24f46a920c1332e1ec9260d8cd0d448f3db75092beb9cebc4f73330dee976ee92e6c6b9c52e3cc58930953ac81e8117a841ea147841eb49c6c49420476eed2d41a4491942954ac60d92244cd265754642a3215995e91a2222953a858c18251207a64092126849660c25df10561f31b1a4e36e8111a048449a84875269bdfd070b2418f5024a7a22229261b1ae8110a642a4a827317998abae859565d84dfe9116c021599ee842e677242f4c8963297a3787275781f6245e9631cc58f843c5951efa2a3111d51cb33df307d36ba9462f4d8e80a7999f5793ac28e55543cd6238a3dcb2ed634cb463767c0277bd3eb8ef565c99b2b2abece5ca50494224f9ac004c08de8c90f6c3663406e3aeb6a634d4a299dfc730fcb999d7c9205960137a22752a41cfd92f496cc4aafa47cb59574cc4aec2552cdb2f7e8f654b87a76b3fbb16c0644a5370886ab79ec6608298fecc333ef75595635d5a6b0884206cf801b511428510299a3a8f42a576ea318754ad1cc00008000f315000030140c0605a3b1348c92bc1f14000e93c04c541dc9624190821888812806611804b200008000000021c41823e301366f3648f4627b20633f5c24de3aa3fce0962b3cccaf203561a7c58bfdfa9a33c9fd9427e8359de523140be686f41493e62afcea7624791b16970c811d12e32a895dbb3b989cde26b3d6503e9e3225a49080660fb0cd0e1ebd6cfc10159a94f1b1b23688fa92c8b6dd9912da2a378d46c1d72ddb8024ff1516608c830187ab45b4b788bdc41f2fd5be2d67d0accaf04702ba0574f62515e0325cfb83f35fbd1db32d2b923da49231644690fa3c06bc0514f955c37029b569b3a7e5a1f9546535a2acfd7c350a248f3671ad075d5af9efbfcfa46546805a3c113df146812926ddc35d0cbef5108e69cbdd7b655ba0baecac7860f787b758ce9577791f16b81a71f725f979cb0ccdbb2d67b16f3d69e1ff5b66546b84fa92204f89d0f5adf88b46445b60dcc59ee0e874aa30e4da0c2d5e8e5f620ae7bc9f9de3071075aba4b03215ad131b45a77a017093fea7fd934e9c6f8409f4e839a98e496e994f35453aaf334959a8ae012f911e618b39fad6630f7d57876cb20f125147f41de1f0efd8fe69d5fc2bdab2206a58ad81475b8b03073bc80866a8889f3a110a9e0a3d2f7c4318f16e3afa77057359cecfef22a1bc8dd1ba2d31de83279a4d554a1c75bbb015429a4d9f6856724a8d05e4be3f83c2cb12fac0a459a011fd366f98a44514f28ddea7614359e0c11268f46ba83c80d52cd5eca50398c75e40175d192b74e7c607bd6f68e79cfed445355a0b7e38d60874c760eb43bbbc5cb001ef2cdd605a823c771146f61f7ea407d715b1f60f7af557a4536387ac0781aef40c711b2636affd2b280e0e529edbe091e23c20bcc56c0763b3c20ddc6ec30980d91e1cfa97baf2612f83d9b89fa477a0deeec5d88b7f04b520b338732b4551050cc346c81d6c0a8c8ee659d2bb143328e653a475995578ae24f7cdbb15f336293998ddc540b5ad3320af46700681bb36cd96c8ddad475b61e385920950a42dc8f1a90238e9e74dbae4c7d19bf1c14e04e74fe78366717b0ee97de6b5844410fa3e65b42853b39f9cab48672071583383337781ec8f76d6fba3b995d9f99ae09f13f89320f6edcd545b3407c743f26fe0077c2eef892ecfcd1db6ca9253c1bae059a575c1cb0acd3ea075bbdfca178ad2bd5ca1be73382582803c8300eed4bba53ee67b61b1d4f475693e8aa68d5548bfc56854f2b6da559021643ad151679ec2cb2eb229304620408a773c24958ae6697ce7db249a1958f2f2c9d1ff580c919bec2fc7415e8154de4c9c403495a674dc9e0ac5a9fcc60b2f712a086aebe9d414b8f3dbc66b4ba68381672ce8f4c375839a46ded4073860e6fac859176ae52d6f9da9248482aa02255aa472de3125337d3a74dcbd718690810d0cb9ddd16e1f748fbb9beca5994721b55041ed4054287793c2046781556d9c31ac43ec2636e650b80dad176ab60670a01db1aacbf3e14bfe575d91ad2fdb93a4324cc13aeb361933f64cb86eaaddfbf67d57cebbc68acf4a1a9dcf024171d339bccabbac97dc91daf1315be3f319017b7f4f6b66c969e97e58eb4fdee71dc31472062081fa8c723d85d668af78d30104f3a1cdf0a0984bb17c7c3544a843052503ee1dab7fc2c479d75e03020bf91e93ea1afca700d7d7ac8728caa5d3e2a043d26603e2fa9ace6f7fe936d47d6ab6f430ad388ba13b3f7e76ab107d7a5a7db271ab41f7ac3ce1348550f3669ce4e1b4b9d5cbc4a5aece59bb2ce47810a59135d4ba303739e0bfcf323a941db8386381acd49f9e3cef5d44665a2531a1d03b862d501799b4dba3148df16139e35b56351cb6a18e65d05d2f4c67b4e8b30130706100b1a220a76074ad6303ce5c93a964c504e1384fa6db40f85e34ca048aca7c4c6ff2e81c3660febfb51e64be314090313840a094a16e1169882e69380ede3485b449b7a1d001b659b70a7f2311f517e15e7e3b3b89aeb5f0c0c14efc2b5d6b897a745fc9b01435249488f61e6037ba761d68fdad136ebbfd796d3bd92738d4edefdfd6ea25b24cba9b5918b5bd22c6275736c448768382a4d4502009b3a82680b769516d77ba1b133f664052f04b4fc66e9c315601c491b6d10f4e59c741c865a51dbf5bc58efef46f2e9ef26789ab5bdf1b8ededa3619351a6697d4570020cbac52981deab8a100e38ac0739b1a04bb2630a3e200e29f3003e3dd513444f79210c9aed1468ff7780b004cbe6de77c302e67707a7395d1a819851b75c5be5e1c6155ccdce22305b0eaa03864c6dc38bf2b99a66f6f584e2d8024e41fb0453dea4acfaed74a1a93dace3154793bffc1ce4bdc0f7d8c91b03dafb7a059415a90a306e4831b39d17f248400477846aad116acd9ebd90236c93048a168773eaeb64961107625b53579de662926fe01d838e61b19fbd69afcc09ae09d7d0a4eb0745cf0dcb33fd2fa834a0e615a70322acc98769069c3203c9e37537baa657fadfd07c5506bf8dd470c857709bc2b7ded047e53dc157be74a366fa778366d32676d5c87e14623351d98f63b29012b60857756d96dcc646f91a6bb593108de678ed510082b0e17ade786d0fb9ce8586dc417b7df0e3559fc58a9a4c0ab1e0c5be0cb73ae9ae698e185f0551139c7fbeff2bf50c4855ff2a0658e9eb1df42691d2ea89c9143f4e641bdc7345a9362f9960f7de43bd9471587083db1cd0f32446fd00098b8f73628dd7d4d436fe6275eaff0b109c11b61f80ce5e637d2c1ec040ff098921ed3498b8e34feb4bdb3e340e0f5d1341fabf63dc2ffcffa92dbed07962843e4c0058a43d433158b1739f0c4646770feb009ff1a5a4b93d9fc4ce030c043b05d2f49969ed7a69dfa53196d7e0e6dc8f0620fe51c480341499d488c1929a14e58111042ba4f283575f64e6d5a6ea9644683b8d773ff46f15125b5a636cdc1688fb287a5b4d1095d9b0969cb3d2b53ccd4b2e9ab99cb6de6e94db4692b9f66c2a4a9126a2ef063b2cba000613007f603ac4781d5c5fa9280997a1ba3e0d9fa30bf3dc95c27d10244b28ecd4a9d9a109dd4f5ddf0e7e0862872e5a6cf98f6627219a483aecc9271b62c6269fed5fe0c5acfa1e023c5833292dfee00656200ed05291fca703fe414810499b87601c4a5011a9459a4fc25d5d8129136b8218be9ae90c5d9f1fa3d60d0391917743d8a94f7cda671cc28cc4d2a375615ca55de6d6f181b402daeca8a0faf96a8f262da4ad4842680fa00c2307719df8840f765551cc75401ef2524e6625e400da3de1cbd3df77ca47b8eb0c0c3c53ff7c26421bc13ab6abae669e37b95872cc90b864157d7e43dec670d338b99d5b92cc08b99473e221f06518db36d541600da7df306302914c00935d07df26487664d844ffdcdd698d4c71303ad8a1d08e35b5b15becb115ba84e76e2240df7d87f699f02219fe492fee8242e2035565283b9f4d0eed9401fc8ace12d99986c95d54498588287a81b090e4e00c0bd9f320d7c61c7ca6e49c3255a0471a18f199c0ecb4b20755a17e29882fda1dac2a9709133bec9649f728531b8f8cc327ae27dd255e4769c9c2d1a5b64a12458cd1b8de78cbc5c3a0845182e08cf2f32ed59314ba5c4f11b2364048c0fe2ae61d4948541a61eb36b427d67adb9d1749e6f20471856de194f7243adbad67b25554396b39dcec1ee90f3726a374548d150bf7b96d563b82f8b2456dd2eee53ea1fdc61116ed2f11bc7158a7d2ae31b02544afb92cba2c94c3ddf5bbf50add5eff595e176f350c50dcdcdc1ec1c78e5d86b92000f8640405682123f249003539748a015e607e789607221ab66d91dc1728ebaf4f8e55a5d37d09db68c35bc1d04a306c9ac2844502c2531fb8ff3f349e0b1cd65c27efd3f53d465d1d4262c38211d76f5aa9afe35b577974ccdcc5a30f3f308ecf270b155e49f0dedba3548c63920472ab301fc0d993c676b255f6071909ea6b370f6458c37db7b573112c5c06ae7c5df2c2dca44d9b6eb99b4d999aabc662d796914badb1370a45b636348ef19930f44a6c97df6062a7c2d40ac4944074373753e7d13868af31167f374fbb8b65f8db5b675120046917c86cf4e1a0f60351ab577ce6631e565cbaa681ee011312587d7e1300d725d23573a7b36809f5e807277f8a39d2ff0d51f597b594929ae8ab442fb086b1fc6b1bdabf995901d79b62ec0858f52c7b0e558865259df3bd5cfe511dac6c50caefd62ba3699f2978686cfa0c97a657cf9498263b6253ce81100af5538a332684e0db7c8ea7646f1bf8b55af2d83f34156b4b7b43c83b4726d926479f4e668e19b1611ed4c08210b320ad4a79a3fc5ce8f1e7259c29b4170ac0ac7cc07f3c5dd6036e204268d7716ceeaca48e1873ec0d0432d020744fe73e2d4ad64bb27177b514db275f96f2622134c7b9dc411a8f9b717388a39733a8af80f2b13c8f63ff5461d67130c421961ae6f416f21d33403d2d4ad196b2a43441120d55ac71904212003a7e483c2c7489df07d57ca732b3e17949762d31f93ec18f5f24b149b7fb3f1cbdbfdc513dc0cd53a403a88629694420369cb30f7fbafdfe13ba2817f07ab75ebbbb4dc484c14d2fe7ca0b7481d9842cb32334993a72bde12a69a297f6c6285f68afb8c5701d35c82f026680c068b6d0d25b103265cec9670c803e2b016405aeea937354d34d60fe6b82cb1078ac058f673aabb0872746ceb686db068f643be325ef7181da00bcfd167c7db0919af5dda39473bd59eea87cc26d1f7f08dae9892b503c617b8f1a88871503e701205a032973ef1628de82991c82814600c72b28a2a771426eab7315db0c428198256b894defd768d4f9349e09c879f176a83eb9ce59cbdf8780421d73970b1a888aae6391071b3c5f1abf1c2033e2ddaea62d94efbf4f46ac97703231809d59e3f55da6c3d4d823584fc04f862988f26bdb498550d0bc25a2a1cda1851369e39c4cc27859fb12d59a658d1e013839ff885eb0230446933bd4c07a06ce54399bb7e06c80fcffdf2efbc49cebc3089e53d16a50f9d0c722d6374351b02cbc6b225fce8eb88e125ba701ca203b01a000b7e5fc4b0ac77b5c47cb37f44f527df82eb9a18a80cbb4bc3ccd3a40e7a54ecbf5700ce17f8ea8eac7e81565d0b069dae3eeaf5c6b9d0982c3f087ae4c108cf0b7475e5437e89124a8a7ab448d064e236adba64799e0b78072658650951a049ae12e9ca129fed9612be9676ce5e06505431fea4a0db10289d63c2c83981557960a30e1719f1487ca2a9aa3a2e02b825a21025c7fa5a6237982f5490584190b0cee001de1bde90cc11112b13d245d79d73d1853e3eb7f30fe06a161bab90185c78fa2a55e5056b3073c65528291e8fdfd7b86b72baf0ff2867cda3b4f2cbbf72bb9f8da70b2dee5c7910c62feab31d7e8496c4923bffd92dd2afa86933fcf9ffef8234a0c7ec7b31322e6773d3d887371ec0e6b9d6f620a1633ab61b91f1c47b212d33e73e3ddca030deac0e9411d266cea0b23b4dc6d36c537358d98905f5256aa38d8052bf840aea4298306a75f60c84a6b03459142140d7539cf740a6b0af82ed77c6150d3f9604f6e3d2c79f081c4be6685250b0317141a94603b0ff41d347884be80f7f4e76c8d0719fc63ed4443a3923e07946a05ed9b8b9f0ab5efcf0d5d329fa20a483fd0885c888f20137c10062e5a738198948a52dd79696d00552d4bf67c9c4fbe17f774134f72d12aff40f4141fcfdc377501924076ff95b18098099267307b05691f6a5c74c7741a597795fcf4ab4da73ce99afc71996ca6d170078ba618ec6de85a83f707fd704d57466b3f28865b6d7ce916ac498556e1756515db0a53e2940997c3f766b3ffcb145ae1086b52193a2a665d5a4ade9643a2ef39873bbe23ac1735169ce446bdc2d1e31a3381419d4f4cf912b8579dd72a673ad23557c9a1cb4140f1812f2cfd6c8d15c774b34344ce211f3223e600b9240945027b49ef38d80ab6216f854ed9c4c86c8e32ccc3f1d5ef2d3bc845a30c7c7efcfb1d4f3323951929621c6ea48f87814d2c22e9808c67aee4ad55656c3bfdd56ba15f7f87419a2018f18eb5d9328b1510bf497b43882df0b19018cfc506299378e21e68e681f2596e9a475312fbb37fe9c8de8036c55815f5de45f0950134b6289675e7804806b92f01b9a82d2aa998ef2a07130b1cc741f7b21b2bffc4ebedb128fbb0521e0dadfa986b13f918870f75b79aebca7f0fa4dac4110794e3135e720118a250d1adf1bedd22417f306a68dafa28a1d948755b06f6d2f9531e0d50744679903dcbaead4a877b38c9edc56e56989ddc5ca2058c646cf53018740752e79b38a4406e81a74b1e41372ad30416fc9c1d570fc6d01e3563e928491e868271d9d9984b0a0932d22998f0ca90e0cb54a4ad679941a782933d07bb29f69423c1feb67d9cff5ecbe6b42f55ee9209d076558a341307d138e5046236ef8354fc30f9a579114aac35682a9859fe14d35834ab9e28fead02b263435019905a0a956426cab50dff5be5e95c60789bc30e2a7504dc019aef24c676719750270217dd57264d33a68aa0fa8aa867ab4eee1153bd5f8b7f73070041e3021510d83e8bb50f3bde69259ef6a94006aa280dd9336086c43ca1fcac4abc3828f9321582c46bbccd0aa5b37008520c1e09219e25ede1203255152adf3ab5c27610c7021f33cfe0430e684a5dd2a7f4a3ab19961fe4091661982206e5a8d19d8c12a7cae170bafbbb09d46853dd3f015e08bb6d58f214c65f4c83e82bc9ee1622295f133524445af1748936c87fde5e58e14496084da5d628d95929a789da80f8733a4516391c68a49b338bb6b62b0b08fe6669bb47d417833ecc778e9edc62770333aaad3a13cbe704ad790fe67d816b58567fddc054021ba86570251a39b0a4a6d1e07f829b103290f81fe209009319952a3e1290914f59cde90016c9b958cc82a8c481e8a6df0b538f91268a6e0c5f4d8d12dc51b3373ca6ba359c6923458c74ec7a2b24ac3ccc0ad788f6a781473a32e5693aab930ccb0560cb31cb59e81c46623f50560ab8dbb991fb1dfabbb35c73e45b5d525dba279c5c5212dcbcdc0d25e0d8026cbec05b23f2bc1c66f3740c56185a53f9b780327744ce0e4aeca2aa483237b5857b3c262d5121402e2a3c71e7c545dfafc1188c5ab107d7836f3c1a3dbdb40b9fce685566111cc41bd19d159caeaae45aa88658043b7ea10022c608844eccd5f2a695e2a2f6c0b4a8523f7db1ab42765a437f748555f21b5bf325230e11c35e768ed13bd0bb0358f508369308187d90aded71fd09dabf92091622686aa69347d834ec4280b6b1b86231a8c33f478e775407d45ba6fab85370d9b7c237bded0b5f578941e2b730f5c6a0a5af28a80e155b587dc2890b4d535e4de559998faeec59c6d7d92a15cca2639ad2497929c4797115db10d8becdf0ab239261be64a363d008e5c61858b58128f8ee1c445ec49bce1886521ca4e874a626902d9ac8b829e6057810f66731cf3a3e967d429610d0d5d332e6bdf0d8cdd4febd887caac86eecf145de319ba892bc9bab5c6257f69da28a5c6aa253f1a919fecefc131f84ffd52e0229ec3855538e7119722817f4bdea95007c0262f5582f4b0ad72a3a0d274ca6741284b635ebc51e10f0e870db1ab1ae727ea4cb4c81b1374b7646968b8ffac42c70623874e19b28c927e317a6b3592b1bab48b2bcee152cfc46107ac9ad376f3ba265e615d6d88252fb2148fbc9f473e6b2d811c1053b16cabb2c44bba7c88915c09848d4ba06c5074df49b6a62e7cde762168ccc5b8ae8d95ba3c40161987a3d60ba128c6324354cb0d2b60f092c0ac4b1a838184ca0ceecdfc76c25408106e2744e3b36d1855256166c360285a9cb8b300c6084584d1de635f07ad53008605fcc69ff94a1f1aed7c008b1f2e8404324455790d2e2e57a97f39e09316d63eeb0a41978270d8726c4bb61a2a51a45f1b814abb605a028ad6110e66b0b7bfc3ac5e6585a3d9f19883a6a7cecca952ce22c447597547591b2c612549885365ff6365c6fa5d2674077790f27f07ed984260eb86ada60065191461e60cd482213a3d9b682d0b76693a74a1030e7e68d2a4d9a1a0127c319a706000240bc6b0705de3cb4d56510f1ed93664816147d711056c785837b84072a094452ad4c6e24f15c04f9056e66789feea4a88c006335211ee7bc7c05117c60fc4c60b50112f554876a8d5e7b16b1e1a4690a781c275353711f42fd38a34bc468408a86d302547125f0e23a8a3971addac4d395b8a8591dd380a97da26ba71158c3ce2a7943362ab824da5280c4fa552cc0bbfd0ee0ceb01ee719d7d20a5a05d10697687a8dfe901b775da26831afb1d8c4523269bd4634842bc3a4d522aa7cc6fd5a40c34d7cb0626e88ebd1494871862ebd09cc43ed59d3d071e4cfcb68220c54d123157d0279709318e09434bf2a540517a6bf83a0ddc47b04ace60b5629c1cbecaaa7d9b91d751c67b60480f02acc8975bdc73ba6977951b7231ee066e5c62b4dc3ff5b936397389a7e5feaec5ddc49d4b849afbaf3ed7264f2ef174dcdf75b89b787289d171ffd6e1dae4c9259e8efbbb0e77134f2e313af6df3a5c9b3cb9c4d3717fd7e16ee2c92546c7fd5b876b932797783aeeef3adc4d3cb9c4e8b87feb706df2e4124fc7fd5d87bb892797181df76f1dae4d9e5ce2e9b8bfeb7037f1e412a3e3feadc3b5c9934b3c1df7771dee269e5c6274dcbf75b836797289a763ffaec3ddc4934b8c8efbb70ed7264f2e715b712bd89e5b29ecb814b1e0aebc2daeca587129d89e5ba9edb81561c1a59c2deeca5a7155c09e4ba9edb8156dc1ad1c5b5cca587157d09eab52ecb8146dc1ad7c5bdccab0e252c09ebb52edb82a62c1a57c5bdccab6e256803d9752ce1e7e06951a1a8d064ad4abb423ffd697fe06dc711caffe1422697826f749deb1cc05259e7bb39fbb587a2e1ff0731d351ff72139b88ee3c5fd582eee07f273390a1fd7a139b88fcb8beb182eee07f2733f2a1f974338b88ecf8bfb985c5c07f0733f2a1ff74339b81cc78bebd85cdc07e4e73a0a1ff74339b81fcf8bcb315c5c07e6e73e4af2d9f48fa2fe08bc148e3b9bdce5cf5b3e33f92ccd0205ca3d59cb30d7f36a53ee21a9c0b97a96cfdc213d4f5c8cfe27dc94de332e4cff0377a4c72b17d1fb991ba5f3c085d37fe44ee978e06274bfe7a6f43c7161fa1fb8333ddeb888feafdc249d272e98fe13774ecf132ea2ff1937a4ef810bd3fbca9de9f1cc85e87ee046e93d72d1741fb8733ade7311bdff58cf4120ea5bc2eff0cbb3c02d1ac0e305062551be845f9e1c1b0db6586de83c5cefa201c5c4a530fdd6a5343e6b9715da9d6e952b942057f3be5b64aafb8fded5c877174b77fdd3ba1af6dda229dd1ffaae06afbb28bdeb4fdbd5dceb164fedfed0e26ae0e72e4ee9fad1763576ba4553bb7ff45d4d5e7771aaeb87de050dfe7744cec08931ae1468ecb47537d4eba5699c8bae592de0df09d6117163ed3c1aff04ac5e59015801fe012f132cf075ab7c501dfe3be0ffef7816b0917858e068784443232047c48f6f9311ec73b856e155003757d5bf1c0dd83ad3ea4017337e0d65299bd92bf7fd98bbbfc32542e7fed5726d70b84453b9fff5dc4d3c2e318afba7ceb581e3129fe6feae7337e1b9c451dc3f75ae0d0e97683af7b78ebb81cf2546e5fed7e55ad61ae53ebd36c03d9002c6d55939cc75bc33e23e490ec8ddb032cc357bbf719b7d43106ce66d03bee18b20d7d2fbf938b75300231576de42f8dffae9c9f4eaa145f9d99f5f4c87f6e24d4a078f3a4e55bf7dbade038d8b0b8e3b67b82b07a88b73a89b3bb49b03b48b0bd29d1bde950bd6c519d2cd19d2cd05eae20075e70e75e50275710fc3cd19223717781707a43b376c26b7cd083675efa4815d7a325de5b3dd65735d65d9eea599eee5b92e65c864fd94e29d0192c1b9f1089b739aa7c3f47f5e247c0099a66ca6f5db98a6bd3402bb29265f653ade8db366b7aedcc4c9699ae4d801005f0b07bfe21fb397b53b7618d2d943d41c412036e93dbd24e3ef0a8a3abf6d89c431930de668ec63a0a7a1cd200182cc02c1620fe650dd3396ff12fd3299f7c0dd3c9591755a7c806cc4f214ef60be7ea4ecbe32117a7966d3a276c79a069db5809efc10cf6d23abe7476488944d6094500690825119f428742bac05011904fc1615ec2f8921ded8a25590090b75e5948bbe5c45b9b45e8e52180a1c87d45d9c5c7dbedb5e1167d2884884547692ee2b6161abe66780eeefdf714dc9828c0393a7fea95dab169250c13a2e0fd06e79cc03c2698ea929c218e1aee8b45c695c94ab08bedf39dbe44ca4944269300e1cb95e8691f51bac257c91fa996686889e935df6da8a72f62603a023207d444efeb8c9a5cedde149b44fddff3f01ee1721f2139a00006cee9d4cd649f2968226b86e429316269a14e60749be0dc93c1609a23633877dd551a3cb5beea028c10643595a0ea5619f70b5fd91722ba6441d0609b8b18476754b3b2a8d115475da34ef4ac1d2e8a379b34debf40f6caf41fb891cc822f88264d0ef823461ac056ed345448f4df9f0b046b1df9b889b96fe7b1c756689bbec8ee2e04931c0d09a41e42e2e1127ee56afa3a40a2f720d237edd16c39e40f429a5f67d0739af5fba25f75d9fa7dc0117a234d4dc57170d88111d26ea8747a0e53e5eee19a6cb9ee7f4d8e786ac7fb06ee4e6202d403b3a4872ef1ed32a8443abfe069ab0c4815e9184f83a41b2c115122c818e63b666f61c540dcc016b47d00ec3b20cc377a0fc12d8875aa60fad005a548c1cfc2fcdbb891bd9d51f3e77a4b05c61b6ed979456a28387d63046c17b9b7af68c190478385ecc98a03ef87ccaa70ea706760cd0aaad639bd3ad84a72476c61d55f9c1c4dca90fb85ce27e012bc257aed8ce865a83c70db48ab87d89cebbaf0274bec4bb6261691314b6fffa36191d58c026ad9f6a18ca230ca3357e87309ebbeeb81e43fcb5756ded0f841282c11901939e5358e1b1fd21f071328296af62b7b8b01fc1351add3dae821074fe753bd4d44043dd9571ed1a4768cb61e180823d238c5550ed754b5bcce11c02028e9b8e19dbdd40071120755dbec29e34e2d905dce90a6a42000c82f255444c95ee3ef50d88e8e8543ec193bbafeeec2dc9cdca0846625261d38a742e8e802eaaf7561df6f0891b207ffe294224108afe819671ab1bbfd278612ed774e572217951e99b90e5cba5e25fbc26b99c72d951cdb2c00ca449bd5cd0f1c0974b8197760e8bfe06bd5cb43890a344a1ea9526560eef8d772e6d3c03d3597cd0d159a186e719443017e01dc086aa8fea1d6912563f7fcc45715bd15f40cd8c62f131b29ac110074dd3fc7da9953adf8b0e4322ae61da2c7987b0e24c8488509f26e696102dba389c5bc6889140493c90786b4d3e9886d63208270f212c6c111b0133c5a7446693dad22d370f6809871e18f67a515a601f86941269ad7db2633e5907d1e6f29906c69c067b576e6217ab7d3ddf8f2e46004a82349b2560e6786a8501ffa83253a851122093eecf904ac28c62e299eda98f02877c5cc76985ea11e680e17d44bb1477c77a430430496643615fb9f35891f4e38398dda1c5ad70e5584605b45e2aed44f50bc8ddfcf1b59ecd1a0577bfa86d2b017c1e56434238f252c3b2481a55faea0adc817e94351d35dfcf3fec02f27b614d4e1466a08093b6805c7e41275630fa31fdb4722d0c4d10b5da6f4c849c3ea30abe0b7e6e589983cc3d52c7236b7a6d25c85d5f8868edfd8f073048dc26680d44ce97ae780b05a104a0a17106572df1e252e770fcf03355839327278a13e8714ff783ae1a13a8e377e9fd0bb55c61bd587ab7fa3a27c6a76b22e8036009d2b0543ae760141f930828972bc7e9d031c68a7f2ad3e282b0ca19efa9fb85865a76ac3b1209edb0c289131d6dd15b244c04c1a1f7d665bebb8d2a0809e21090b29d08ba1671ccfe7c23ecc3dae65f6668e4e45382e788d0ba0640492120a6b65b109b0ab9bf1ac32e23c39305628dc55b9b7295cd2d2cd48e0502dbb2c6b6521097deb920dfeda7f3e97c519df159e1b0f06d90b89e5e0349508ac879deaa0f38c00957c8bcc8d05b6b6db6e08ce0afea79ef095b16f303b5a64c3afa113dba7b0d7dd249debe0ac782786b179d91ae8c49a3bfb2d1674f66119d4316e603060a400f31c600487c3140e3f9954cc61e47f1979e4e59dcd64af4af79780adf91288ef74accf0316caef77b37327805a7dbf6f6672dda57923ceab56169c312918feb0f818db9bdca5fbeb3e8a39499b3eb1ce10907fe9a56dbeea15ddf07ec41bcffbb525be6484f2d03105bdde151cf18830948bae374f0e7ceca3ad973360d77bde952f22f5196be2f1f19e26c8ec342275609ea2cf0337f82e90420e182ca34fb57e116b5f377420b6140d080626005f9b81c15424fc6b0a2616d7839f0848b66244c86448335e38f113e9033f3070a95d2e8978eb432be5559804e2f718405081d747015ae9f687cbdcd06550dea45b4f369b702537afc3e484d12be99152ab15edbae2aaac876ae6c3570aa1c71882e317c8395cb63eddd317ab3e7567b333b4741b77ec4bbce3f613e6feda60bdc72ce3226fc3160370a9e92ab96bfefed7de07d753a01e4f8d68c522795552357a8fe586b7742f218feda114ab2a54572fdb251a8462b30b382f70206a3e542a01ffe8bcc50ee5c202f2eec8c60f00792e80d17a2d57cdb321d0a97621ec9c0762d13290dad9c15b80db6ada7dd55547288e11d87f1348bc8492cf9ccf4a76d1e51e274d5618d2db07684342a63092928210956b7dc289488334eea07d3bdb32aae3a8f0746dc89713ba9c028237d3abf2b0847171695733785e1ff1d506dd701d7091d4cded16c53862d992462a526112edfe5f9a69e74b39407a0285600ab1f81638735abeee524876ad5f235e705fde16d5a8282823174924a546550b3d208cd2a594a28d56219e897f3b16cc4ef8e5ebd264584c0f254f1347823a75d2f99db154440b70b3c4cc4d9d0805080f751dbbdc43d709d3e8347628d525a82f225785dc20051126e44ef92e0547906cb4908309978150cbf112db1205b921bc107acd0b20a4ca3a238997d95fc92b4fc6b46c55f538bd69d5ae7dce31157ef97596d5b16307f722d69f8e5689317f66b240dbad20a34132deb54806362c1a002982494915c6431df7a8def54ff9c1e1c5488340401f307329045e6641f695b29cd95977781588a049ff46aeb1ad4a10e318930082052bd1afe3740bf6cb6ea460538a2f6beca0926b9e9f05e42f2e6ef7a41f26c689cd429cd923d866d923bb62434030042eac01996f18bb140c26ca632755dea9a8daf823488a74e8b29207c45ef44684d0c5cf3ce530499f49c7d851cc8e275842ae864e0fecc0666b4cf49a00aa843e34db3465a8b56fc33098ed6227d37c6720c45215527e0bc73c73615fe375b1aadecb99c070b347391ebac3c07d5c45a35c6d875d08286b2c2bde1cce7cbb3111d1b483d2a8a8571f0c922ca400a98260eeec0e7bb8b43e9a62d059e5caa664d2b2ca42fbb82820c7eca59ab2ae452f2d77e6adafa7a6fc6f5fa29bd51c915072d705ebb90d240bfefec14b49ef4aed117ada9fc10ed8bf3c4aa08116f5a350e254d414e78f9887920823765026019f02379563a02109c5ed01b074d1b4f8116381a71b17c4469eee99af48e2ab5280ccfaf29144074df5f88fb574c9f70624344df2ec0303c06a0017498543f79b82b02fa651bab9970b028955b6d032e5fd913368253b0587fd6d8218e3bac7609f71ce14f2057620380269ab81e6faf3a15e164886bd3ea4e3e1508c196c0b92371b0be7f8669875d0e2bf3414fe4a209c83a0384b8297b058e1563ddc812c92867d618ea547325faea9767eae3f20023daeba0a53f4a2657c601a7be938882b3552da2a2101d06f10d129eea5db0b5443a4a8bb996cd6daca711a369dddb8f22dad0bd158fecd58b98f795fcaff09b4cfe74e2e606bde28872a7c1ff98075613682f5473ba4828080c9b7e42e93c1dce0c83881c0e2325e30a03755de8f55d392ce185a37e41306c54c3d86923957a5350bd6b2851a752b12cfb8e30fdde6dda1660173095e1d9fb8cb82d6846f37b9ba5432d7b45435f305748c1a542eb2d0ca5a18a68f2177020425dbf7188f0edd00e8381a1e2bbc37a4c14e31cacffb233352032366804fc363c89847ea34066155a2ca9437803551044652b7c154f91e8697f72c7d286dffa251351d380a302d5167c400b691d76a1705f97ea30583ca29b026600010ebd460f36c2b11d2c32d7469cf9e4962f325626d856ec3646b85c5ac08ae5d91d017bacb0fa921abaa8e16d54b5824ae6670a96ed4e6f227378e4bb56889433436d66bff95a2d54676cbe2e0a7b29ce6af31371ff0d7dc6c15cd9019b53eb48bb29eaf0a4a8b1899a55dd6c92be0740cc7220403889295ac3b64f1e3065db342b6b05343250a397df1ba8b30e3234704501733ba39fd2c79822ba7eacd1f05420fd8d6f28768321bb7456645407f2c182fed8104477333637a9aaca8c1017d0809a0e8176408610f84ca7eebfae845d837a871484479d0a2c5801da6f4fe87d350547addf60121e52119b727471fb86ac4d11eafae1fef31f7e6cc9b268a4ea5456ce25793fb60034a9f44f85de8a405d18f403f470efa7265dc54c5b64c9e9f8b3db7a9a030659391d42ea0ccaa241623a3b2cc020fe52c4a524b1f8253fa4b6c5a063b59096fd9b6534f2beff3d0cfdd533663da13b3d76fe3f8305a81605384c6d750ec0ab6981e3a5a4d1264c71b8ceb868233bf75f5db32f3e510e1a79b89556fa476400aef9db1b2bf0988e61d0e5da6e4a5fe68399f5d27c9dec04b65a4583d5ec923ca1e3031a422de7fae6a277dcea8a7fa942698f490ccd73253eee11e3a3f55493ab2190b4addb38af299dab06a31c8df227076ca8062a7352664fffa41ed6151bd52b7250cd89723d9c876cb4314c78eb91370fb24e9889b66a3f40bddb2eb70c24802df6d8c65aa102656d4648f6851110cda94c50eaff328310de98287770ef075d0ca018f4f91fea92e28c8b257d8ba45b4e3447703b502aa66a16f83c375077820701b6d36aa3f532eeef75bf78a4973640b4ea48c25653ae67f3645675f51420e107059bf9b83ced6b2f0b705ffeeabb27689b0d105267f9ce0a7c7ccbb6e925b1c228f05e1d66dd8e74f58a911a282cb93362e2db84bdba133c99eb284f1925e899868d800aa045a0ebada8277cd46b65fa014ce43f202e8502d3a07072f09cc08936197acba0594eac4247f72beceb0d53d9c03fbabbf4b56e15b1a8833093c6c17ad24f4ce201ec97b3716745cf6d73f33a384bb9315de26fd16788c9b8936756bf02ae92efd1328e3e7ba238a8b13937bdb5df951c1e19b4e1a8cbac6f33b11eb4785e8a11c086d36aa29c33c19bd78ed7c72d936c2176d1ccb27ff0e47e5183ed520d7cc61b5e70fe4a5dee91dee3904c04dd6011355fd913c221d72f8110bb8b3739e514ba84b3fd0ab445d63e8354a657d0b92588cf4f99df880abe8880bf7ef081e024136b374aaa442eba00b2a05687d2e6272e9d51dc9d403d365be5545589a18f3b34bc3f5ef3066cf24f05cb035d7e556f166e2bebabf2540ce7b2c3e6c4823501586906020c69b547c668dc4c88c6dfad5956fb6d2dd1ba2b1b477a5437e00e21600419d19f0b748299091099c7c04bc07f0d8f1279e72095fec54b6f024321caa1dd27842ff58e881e9a197b8539334551357148031de1d5c109aa70308859a9528307d5301c57961ece6c10a155d66044adb8c0ec8730c03479dad252f939a430b1edc1c2a8a88966da7a7bae14e8791cf4ca1dc8fa08899019e100ca58d1c391846fccbd7812e6d2700e25468e1f14bd0cc624d39e068c8e9f096e894340814d0c95db7c9b51bcb1910175d0f277653d0f76b415257f5626ad22d34e059d0e4e6dfcd9f007cfaa8495747962b947411c256ed49b9acebe1085c64579f49e0ffe14d4f565bf824b494aa225a51d7a71588966e2664dc811e50ee8ae7919bbc2cabbc977f8a3e7589243fa5dc2f1174eb38325375bcad6b384642205a9bfcec03d79d0494ab0059a3a38f12fd7a6690641628f160e2b9249221cd699ec733b787a7d337a8a31a62d324c3c5e10cf84e053c7d0329b598ebf841cadb0c5c2a48bfeaa4fd38cf0a2b0acc954741d7f8f7e4d509ab1103a49a376db82f2e3463ef89c3b9f0315165b8755a18ba96291677524e2d4a1a14a251d98cb79695d3f7bd9163de59afba4289bf02bad7407cd830a8281df37e7e9bbfe9190f6a2e6383dc4273bab3e07879da7999602198848161cb91949707d947ebc12240d3241667d03d2e8a234c51dd67b41c177d6c8f83e621f705b2ae7f4d61c0d9ec75031e78c0aa7a8473c0fb982e04a7045a79ac549eb03a773ddf292d6d6b0cf104206af3073f781acbb55e016bf085c2fc99bca130e9873dcad681ddecd64efc291dddbd6839a504a246b3a27425f8b110f74823aa00f8fa5259e665692b76b3645f23a9d90cfc6d27e73e4361a9a458b38fcd925e277668df429c239eb3a1fabcad446d880360c42bebd7b5abf9868b0748d83e152272e1cf48e17ebb1f0aa7a69d499d15cf76f79e9270df08c7fa6e341c06869984b9f413cc080c04e9b80238939020e3cff1de253654f6833b6919d6f545bc6ea2a19dfbdd020abe224a72e98646806a028cd9668f5303748679cdbe10612d03078528488135e34b79f40168ba80731f7c8517ca4a25f2b7043047084e761c9816b74e0cf111cc159ce6075e2f51c854a2e3c30118e83e1981c0a21517d78404c34e69db5f8c2940304d4308134d0fc16cb4feb8baab9112264837b0b539f33cc9d6b854644f482166c6c98acd185ac9f96c81ef5fe7f0a40429a8b0e827fa4832e7acf1eb1b64a71c16c73582eb4832d5da0e9cf646281608b4eea404eff1050ea693a9ff5c38a4f6e8ac244b9d6c4748d0127281edb628c2d16c085da7c5897fffc1581074b8ab7725411d1dd25b735557c2bdcdf9bd1fe6c8768484d40d54fe868b135fabc9232085df2478e9173ac1a2d7030645b012f7cdbfab542a3ee696dd98e5bb86abfc0d332c958dddcf1df1cd67b73846bec5d0c8073d527c83d4e6691704a42156037d7b82bf3d21d3f0de9420941570e664c2d9931f33f675d60bf3a944a13297ac94e0a942bb0cb30f60b9507770de61c851a56cd97d896641b59de79842f20e7bf6f350736e281dc8249d2e9e5b0454453fffb889438d20e58f426cd3397fa57deee7952377039cbfdde1dbd7eb54de2e5e048ad7be1be2b150cb5453c3756bfaf22f13fe8abbbc02ce7b40f530d63fe6c03099de634a1403623c323c0f9f58e43fc872d722f1f811d89d29c0504d1713b3ffbaf14c1b755289fe42fcd3437b4cc304973c0b5822e1bef14140ff4b822d7d9021b3ed8ef70fc9e713b5cb9469fb56bda3a6695addb31ca61fc5b1151adbceb82e0ceae8421f6916dc18d9a183c1522fc1bd19138135e516a40cbbd473698a017a15358cd65ae4ff244278d4e6dab8f933a332b164779a3e51f3aa7c82432c60bcba67d937581a2713b7d3b88255ee6d16125be587f961494084bf3fdca1be59a144add74372b00906ec080b0769beecbdc7da102062e556a2d81427708af741cbb6ca025e896efd777f04ea3974b857dd473ff64a21fafef8050c9a53bec5dd6a5f19bcfaa0b6bcf213de1462f46aed79e6c6b1fa1d28719a554e49f87c28d7dc07c31868be789c0b9c3f01ed257ccaf9bf158128aac6a0a7e24e0979c799dd428aeedd26d826bc58e71f9e26c14f658f2362ca73124c3fa560a44282a8e989d0cc07c722d8601b1162e0795adc1554c4ace37e9691e86e98b7ec3e1613172fd64bce3e78e2643cb54efe8e21b9ed83486df8ded52b6a301c6aa9680a83532e6ee774f93cea91776e222cf628e887d083674a9caa441a9263cd1085364688b84912631b089fa19511ef9670bcee3fa17c8238590a24014f7251d6ee8f83167994d455f27766657a6387ba32c1c5167484ef57685d2fe0a392e62eea3254b7548c750286c2efd7812a95fa7beffa883266cceae766e197455ded6bda05695e7131907116e226453c6ebd84850b6fd720bc9f075469bf52ad14108b75e26331cefbad181ac07023c37e17ed6ce9bfcac047b080202b6a14410f26ae662777b671c040c1cc9670313e1d431b3432b829569af000dfa214e7276954a4106ae13c8b4a2d134c0d70481c01a80f02d844c202ac13e53fcb9135816e6c659eb9ad15ef859f66eecd9e0a2a89a35c39d6d16d9a79a25deb8f876d0529bad88109622bfd0e873c3e5f38d9e29515b0bffef51fed2233ab078ca9feae99e17be285cefd0e1351d3f2e4fb2f09537c6454df77033bfe6f82a187259a06b5048dd42f83259311bd14b55734b23b23e80e7968967b3c958f788a9e718db0c459a007f9ab2554dfc031d6c31ab6899f1492ec3d3dae35a49b9498d615fa6a59305da3a4823b6019d218586df73354d9fa2b5334d1589f7a5c5432328d40ae9b56ed36f1791269938c8679f7d47203b282cd44d5c2bdb51ecb4d34d6c9cad58d974be871fe4031f7442d11b9803d2051db030a02cc74f1b56205c46a521f573260f6dc0def93793cf0585ff1417bca0e6ac5e41d6e8acacac22c7c4887b6c5041a9645df0852f95b4d7a7144006404f3ef1b696001ca7856893434f6f1e95fa1e4f5162fe32cd46ab7e79d308f2603b3089e35d7212ede782831c1f54041c15f45ae1c6ffe3090569ff080c3eec5c68589da9b1d237c1060bc70d41d1824c357c2a302b548a3c129e50ddb1f7c143eabcc31f48a70451b1d78bf19027f2fdec47434d52a0c88c5306ea700c2590609a00374e735c6033790159c8194f993c899c156b5fcec47237df7a45577fcd040fba447c70efa6bd64b2639a5743fab61fdc0903901879fdc8bf36d6e23eddb28daafd614e26eb34ff0dafc86100ac498dcd8cbd84c141f1774e419b3f7e7b61e455115984786da53faf54195b5ff72b96ca3d670e63cd46cbc404c90ef773c4411696a0499ee19a75aabe2c15362c7a4adcb726708eac68b112d1ac4134d310aa875fb2ce5c4e839ae677a7fd61e25ab5d686235542e2d86e117faa30e5979e86d4b148c5338c0b6a5b00c3c357a1477b05de6a8c83b19f6bd976da56003cd1d41738319a17b4f2e42c3b35a3479a49cd71fc33936a2264e9a4d1e178cdfb561fd6b88de486b239e12a3e3c818db3da8c0306bf0f328a66f88bc0c1566bed1c49c8289521eba9c594d17e200524544bda1e6578afd5b81f4596acc4dddf420aac029fcfa1ea813472d7024ef7374d111463d8931011e7acdccc1eaf8b2933b33f4c5c1a30591d1c495a6ec6008b848ac28a8cf013c36b44009bb55fe8020773779cf147bf388d47e548890f847b42017691128c709549790ca760a1338cd66c1ac927be7522955d366c6cb842a47b21a44fda41b6fd89e53c2aa410e28a87173f4a27a72d35e16263437d440a2cd9d099929c1ba8c2225e7f583bfe8002a5e9dbd91cabf74e8772322565b5f3f04975e00ce9e78871e9da937199102a8934a4baa04be4300f26c37f66498942ed4b33406bac88e67ed63b3ca04f152109709c11cd0a020d5c87fc8a1408414e5f92757573e8420042739036470dc5fce62f18e396d5374d56fa9c31e5ceb366f5770aa8d3f3c94136ce6f70ec8a0043482abfc13c97ad6fe8d0f57b295c8c7f88f74f1c008d957fbcb7f97cae8b6c300ace49b27fd3db7cf2ceae437b58a702f5575cc4c94737ee8c7fda8188264fec32252da19a83f93ce93d21abab6224553e9e704c43ebded499092d95ca63b29b87d5bb862f93edf4316520582d6b82fc4b8370e8d33a8920af317ec07eaa0f2b649db19a3a7469c11b145534021c79f8c87052f945cafe21c84c2f62dc25e7fd2e82685bfceba6eb644e9af4d428283e1d4e351f917a8d10257b1960ef6acb61a295c004d059a24bafafb7db79ddf19838979b81b7a7a7c80ee13a5a4cf2cdbe467607994290933420a27641066691ea14cdd6e442931c3ccd9d083df6ba44a79ddbd066ba6c7a411631396ef40226232ef09fa3a7709c794747bcf99e7b9a7b40a176d5c0707ed8753c06e69d3396e49111378ecaf0843941cd6457794ef18a2e4cec7a32b6f041861c611e1991b6b41cf65945a024340f3348e30713c645d030d0492e0447973626d2040fba4f30efea974f551f0eb86e715999186d70b2a687d5ebef6578c9864b18c5d111862bfa56b209448314a832b43292f0beda6269a34054f7bab9c16318904c381e64a31a450264a47885e3da314ee948334786063805cc77023aeed95e5850da8dd301e5c645ef24ba8602005b403dec0237e845455f9fb4f6271b296a9cf2ac9a1b11887adee02e8fff7d6c17220080ba3b365b27d6c2e55546e4075aca26dcd9d1ef8dbe2a62500dcb6fb2edbde5de524a995292328505d8050c063b6cf770aebf674003fc61455f831705e5f50977dffff47f98d69d03fbde9f06b65bc1ccfcb8c79c6b2f57cae88e3defe84bc7c0dafbac5802112e87de0df81e638c514a39a7945232c7805b059642918dc8dc3d08a38b306eb4d0c57d37a8d40d17721cca17ff6d1de842cb5c11908511d05b471f73901b6acc1d0387dc37008118e485117cee8b977ccc37ffcacd9576d557fd75c90a6ad93fccaa338bd03b42092ff7f830d8f7d687cdb73408af1cf5fb1dd351afaf0f2f8e862ed7adb68be2e8fab8e1f36cc2a9c1eb15469c598ab1fcb0bb3b5e8039ae0073dc1dbd3d766bf6a1d6a6084cc09ba830f42cb56375362cc6e2e2fa0e9a2e8ab92e180ce672380cee2350580c162329ef90a5cbd5632a8fa9ad62fd9b5bf701555812d80e2c095985c49137ccf1c7518cc7700a0f11a7604978f412d88eb9b871149de0141ae6e2e1f02e16cc99f8c7e312b7c33a678510f68cfe306e5605ba9dc780b4ae43ef991ac09c0fcce168e95415ceaf228c30ceca3ce08c23184755c58345b7210f1e5804a112b68ba351ab7017d6f1e71deeb1070d73f0866cf79e5b25e35a25dbe2a84ff8b1b975b46e717479d402cbdfc5d173fb3c4bfc028d802f551cc9a95d48c57f363a99badc2bb8e9c2e9c227dc77d345680ad3d5ee33c2143d4a3d6ab3c0762897411e855362ccde36b7285e727a5c1ae67a684cea939b79ede8793b421af2ddd1d42af6b971fa849f4f7aebfc5eb7b7cee58a31a26217cc71dc823976134ee3f415dd0b7f6b1bfc7f19a22f1cdcda5b66b01d47f1ae353f8a762fe92debfe993dcfce1cfed4b6d0f5cd5dc6183fbac7f6109ccb1faeea43ac25b39d87dfcdd8d688e0eb5b0c184734d6dd1d37f5097ff4e831ba893f5a2d6eb1256a1de431dfb5da7136d63c6c7c1713a754cfef3ffcc4299e6d1b6889df026b7c4fe79d6f1171e3cfbeb4eee55e1fb196eb2b967572c0871df8dd716a2f3773b92ed64ff31f7e6a930b6c474d973f20ae3a65cef9cee8f1c5be301e7ca8de2d533d32048c494ce29426aeef67299ac7888c30b7bfbafb5f7e695dea937ecbfaab8254183f6e4d5c5f43ea7ba0c5a2553db5744888b560db259f311d240f19b683fcea2b104c47f5b2aa2a104c87acdc7f7b91b3bed2ac979a5bf176a95d3ad622ffc25a2aeb3b2ae5b643bcfed71090ad56c2d677b96e15a78962b556dda7b2f4fa38162363894f9abaf40e26dfdd1f8b01c15a3c4a5a925aa7d64a29a52fa3b4d64833fbd1ed8c9452b7957f553db6c3bf921db64410f38db82ee9574c7ec46445e3cbeab1fa4f04dffad3b50e8bb99848d5f9367d3a9ff4bb6f3ee5e654877cef41fe0e98837fdc2aef30acc2b01c23ef5b10fef3af91ea613e8eea93fe765087e5901f44dc46de922028838a9e18630391fe2323375783976af0d65abf563a356c0796437ee731cdbfd2b0cfb4eaad16e2d13a0be2a8db2fa2759ffbe952078332b7b168b34829a5d4d6a7347b9a04cc619b9d6f2ea00a6231c61863e51df49dfec529d6d3b7ac723dc5b28d668f7dc5a34bad42bb141fa31e13d407f9ce6f5537fb91c6f76c1defb8588846eb77ad5b07d2596a37acfa743496226af166f266f166d8d6a73ee9971defb81d115f53ac256fb80a2631d71fb25d976e33e9f6578f25516131be85ec1f7dba2daf364d2dbefc2e35169ce2df924698aa69a88118117c5bea1f11ad8fb1082de0715f18f71521892cdcda8133cc3de63e8eb5bcf7273b2ab7776db452fa746bc2faabc25aa4d58455bdc4e8bf5a5d106ba91b88e5097ec674e0a78fedc0f2ab4965bc14d3319f27c574f0cfad83535e527b54877865bcb52ffa53be7c299fb71da2e5301ce6c6ef25ac7fff1039f8d2a75fbd7daa71f3b05dc3dc0efb86e9233a6435c7b4ee731fdd2e86698649b115111dedba7404c3be6297a45947efd641abc21ef657e84ac1b58353b0a7dfc15aa8a40d03f2b576b22ccb023036048a7991cce9044fa3d168341aa57260421cc322ef6d341a8d46a31149098dcb59200c0cc11828128944229148044f7dc24fad0581feb91324c19bf7e0a9592412894422084ff0044ff0044ff0f468985ccd8292e2507fe212a5d68240ff1c87b242616c0814f3224e0652d07322ca9b488aa2c8452daa71c91ff6afd72accc2a5c6ba72fdde3ba1fa7189625b47afadb32010ddba7fb9751ce75b6f1dcaa55fb5ab63ac0581fe390ea5eb50875ee8dd80c2c2ef3a44ab2c3e7c375aa562791884800aeab3c15298cb6fbb8f6fdd25b2ce1c8371a97cf7ed628ebbdb658eebcacd433fb0f03b0f852e7f063ae7ca67a72cb973ba73ae3b5318527d363acfe9760dcc7508502e12827ca8b9b8e83a0a73cd31d7ef41085538d8a8a7b2d227fd22df75eaf3ef750e73fd3df454ecfb7bcc530179e7978343e12f057b7ffa523aef7fbd94ecfded5389ef21ef5be7e2a27b3d77692841b0f05e39ae0d65a5559ca64f5a64ebe8c7b3d2f9d3e2f63b1430079a036883d4bcaaaa58af96c2f2bde256546af33a4d536a6dd3946efdce4b35d52710082121209d064234fb6e58214034fa4ee0d67de0caf74ee8953918a6c3757f90d594d4e4f55286fd50b174a2f65813201b0bbf03c5f8b1b193d18b66160404c4baa4d6376a1d5489533a28e67a80805c4db21d1d6135d5035b533e1ae7763535bafd20d80f154b4df9a0825173426aaaa66e7ff55c29167b0fd6e2d239b7f31eaca55344e8c29cebdf35167ba8b974cecdb24bf6cd9dffb01f2a96b875507de2838ed6e982b9fe4ceba498ebf7602dd8d64131d7df3d2cfcfac16826ff7a37aeed75ada98e976e4f0d75bb064ec9808b38144e79f43ecce3bfb819e12296274a7ccb808bae33073d277eb18c802f1c435cc029a006941b5e869005099c4062a20c472829e0f2dbff80da8af6313cca0d2b0a789e2f6480e227f000156a1002230a6638021672f822e60b1ed717475c398f02f2052e507ec56a81625750be55ac0dc557e0eefe0526a0a070361e6545012837f0c917527c01c5ed50ea0f280e385c1cec3b4e2084293001072ca861c1e1f25b0b6e2101f779b1049a2a9081095884c10c375f20ddf87cc11c28b4a15f6e3af863fc77e5c38edf37a8448534b022f7fdfb303337b3efa06748e0852e608f5b3bfccf46e73258cb58783bc8444b74b8c5f516d94ec2a6586aed7575f7f538983e89398f14cc791e07b7c85adf49d8772fc09ce72bc09ce7bde871df8d1778dc95fb6ebc10c68d57b34c0b3321b2f53b090b4b5730e77988c39ce7dbc49ca73fdf419c9a6243fe612d209f592b2f68e214be9e27e991ed9a24ba9eae49d7f3edf95e825340def32dc329d87bbe99e094773ddf234ef9bce7db094e1979cf374dedebf37911ad7b11791c5c476c8ccf322d47a6238b913df6d8672197f672adcb75473e9fc7d1f3f3f3f355169f17f930f7d99cb9b985e721d68201e63cffb0a68185eff9ea85e014fb9eaf40abf8d0271ecf9621615fe97670899b7d933a4473bb896ef64d0addec218cb9d986912e945abcbed6a855a621e6a57546dcac937530ec63d615d32a2cda3d665a7f0f9d4b2b5337fdbe1e96bd6bd96318f695e95aa18b8333c65afc31addfad4c1ac45a30acc2085f67925bd45df0add303e3c2a7a292f8ef365ce2be6f99fb9e06167a0c68831012ed3f1bf069632a99052d2cc77cf8b1a38953ac875af59834e5052184d65f15c2ebfa713b0bd62d882c3e64ebd882d082ae75f6be146144fc5761d1d5166fc4ed083dbed55d6582167de7e1b2da65d3b7856f415c5f752e97c7aa02f2cd43657d7c2ae5d7aa233ed643fcb6bec202e6d06f6ddd9d7f57992ec5b01c21df5b10fdd55f2154ca8e9fe8a9d6d6412b7ea4f598e689fd21d20addda5abcb02facb0c8117f52cdbfa3d107d1b2af1af660e9a1a025adad1fbeb45b3ffd8e6e41f4c7a7df5d4ee95b5b773d2bca4dbe3f854c72795b5cebafef542b5a5bdccea5f399e67c723da6b9585bc781972a0bda42a776c58edded3257145962892deca0b9fe2d032bff19d02aaf3eed31d723db3d1cea4ff21eca3071df8381e5fcfde34e0356d88d8779e90734edbd134c07bd1efa81594c4250181975c92464122322f223dfcd9c140ae726468c181dbda07fad0292917a38cce83aa19151abd4b0df7542f58a1f6b2fccaf894623f56ef4cf53abd0c89960e8990a79cf7733c754aaa19184686ac83b3b3a2113d2e73b1352a8139a9185ed464651a3612ba1f1347c7ca9f5ada19184faa4df440a3ee937213dc176429d1dac42d2834ffa496898c322ab24342624279890a8a091f37098f1fdae75214f42d32af1fb41be0b3121999066d4da49b1233d464820cf7636425341ae143be204084deddc431ff0c1748b58a208996e82ed8a90b90e5d3c74fde136e2c4480fe67a64c45cd3d3adbeab3223a33ee966ceedafa1563121d55028e65abf69249a4662ea93fed748487dd26f42f2adb3203536121a26c01713edbd1b2d5e040ded3d6e6e8dba1dc9c8e8eac09784a644424333f9336694685d5f92ada3a185db2f43eb4844b74b31b48ea474fb47b48e24c70405b7ffa375d4a37524a78ec6174c48b7df92d0747ebb4ea82331dd7eac23a932b7bf92d090a0464623a3596a7e6f9678963698f822a3468a88a803ff100b8897b7d1a45172197e37f2b9ccdf7542eec32e7f67f177b4bacbf908f0387e995dfe2872f95b23c08cc7c1ad9371f9df436919d46703a5d65e0b04ea938e560916de6e5077d3ad27a8e15d7937926037006fb772e9658988376e1d882239670d807084cb6341b04e16725d4888a95930333314b06681b2d6a240f605f6c38556630ce007654128141560d492fe774b74b8f079e3fb30c8828229e8a4f38929240aa41393d2f98413534ce18413f22d17c41020a063c377d2b1a37b773f03742fb76f7774efee185d4a23f845b2f74008130309c96cc733e71570a494b1a3ec19a577778c2fa5bb3f7c19b71b57cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc48197b7b3110d6489f52ea70ddb979a808949da5fba3e20b8faf2340129c9a77b7bb1bc0622d130309c96cc73371ec9c9855d58ab5d8acd3b12accaa6aadf5b29d6c3382676b2b6c887fe04eef144176ec14b60a225011b31b8c085460211e4fd6e9dcd84e76638940859dc2763e584b7693bd887d11acc5669d0e9dc27644b096ec66c41ddb1e73737b57b52adac24fb11de6bf6a45f5f7a85f1032bba458cbdc73116f2e1282fd1cfeaec971e91686f0997fdac0b24ba360d7d8396911da45ed22286aed34a9494d9a296b41a04ebb56c6da0f171aea23425dff690394adef469c01fca02c0885bae84c05a13e1b5d8db9fc15b6d792c9743aa1ee44a5264e69e234c9cecb7a0ee4735620141414943ed1615e9418a2146bf1afbe03cdf73e35da5813af4f68ac76434b57d6b4ae780e33712ef3c49938f58a975f14e6a2b0f0b18b53f8e2940bab567565f1abb7c582fa5ae509f9f4018e80f81e00e906df49e501dad1dd2fa94520f4c4102b3708eebeb0d02a6e1d3c823e124f0cb1f29e013ac7cb65c9123bbe7e7907cf8d5fe515ddbd87be1a6b7ac9273ac0b2bb67cce6d601be51cab8bd1cd4fa9cce68b9b81afc7a5a0a0c94a669dad34e39a9d3160dd3479cb630f1e886498cc357f0889d60991487182605068f1418285209872485e907490a480361443006ca4026200c3c2207e7991a755f17576c10c2f7dd28f7dd705f7c90be1bef2b0a517c4008d988cb0fb918029f2ee1b321fe8b8c758d9777a0311ee2f3102a84dc99261bb1964e8a752ceefb69d221bb74df4f93ede894d129ad1917eab301e1098671f91be630a32ebfdc62fa9ccd70ce2a83a76e38aae2f2c71b96259aaacae048ca97a2a18a087e2be7aa32212c6b058bcb7f951853c03b759e756b9ba1b555e74ab11dac65033ee3f2838038c483e580176a1f2c07bcfe445c44a4198a8854d95b79a951953f6c15f18b5a5756e3299bf8c4a8544ec37468341a8d46a3911028290ef527906965e5354a8b5aa6474dd3a4bee998fb7ecae8bdb2b2b2b2b2021fadd965433e53868e2c0d88f4371c0e0a9750a3d168341a8d84585959e1132a95d3301d92d17965656565656505e4738d802444a5729e4824128944a2d168341a8d4642a478c424be611c2e451f8d46a3111422f5522ff5522ff55223312e1925918692ec0d08e74b9c49440364b0d4766846317a515ae55404dcd725c0bf3bc0026e2840010870430002e0ef02f03f80cbdfd590410348c68c8e4e114aeb9555adf3387e4b83c03be1af34073cc87523977fd2b8fc04b8fcf00009b8fc107855f8b07508b81dbd0fcbf16e6ea43e3893a0e4c3c3e16dc03d09b56b33d0dc674518a3db752e771e0e500795405599ffde0918706ec97d376070e23eac077a9b988f836dabcc8d3b768e8dcf2f41109986c0a77b112dbb45c0d11f0ef1f939fa739892f7ef6eefe2a094de8e3eedbcb394dfffb91f8a003ac1767f6dd470f9e113ac5f167810be14f756a1747673370390b048d87f16660a4871fb6f9433c6edbef8146a2956d6efa8159f4618e33ff94f3ef95a6484144a09250ede7c7beeaf0a224c94b972dfd6cda7fe3528854e8464266ac3ed3b7fa93d9e1bb4a1737e0fdda1bb3b74f7f7d3af5642a5ff34fab5c2cd21ecde7b6f7b2f9d2bf8de66e1cfaf53737e3fb7475d3efe44f5e17667efa44fa57af86c10f3e5eb933e790ba27473083ba72e28ac82989919e4400a5ba044281ba0b840c970514351261442a150315ea494f02215938a4961576e1e53e920c682a6943e82d0c4a4d5aa1a64b1428fc5a2a91ede88ce513815981bb29781d239a594527a4b29e937a54054414e297d5851535353535353535353535353535353535353535353535353535353535353535353d55435550d12923e48279df2258c42b20f5a040c9f3384106a113fd2c00a0f3284504a0821a425346cbc665263060d2525252536685c24322e4c7b931a566652030402cd38d14069a041622d25259a2c297949ab50d1f87c44b4af61323232d28911e3470935f9ee541256958df5b1d6fa5169808084686f5263c6147c7864897cf5c7b56d25337e3399a1c5f5e39a828f928ebd4aaeeb47d6b9ba09767e8516be4e474a6a2bed6b589609159c86e6ef867bc9d61531437b6ff3ec47a7a464f3cd496480628c887c3c2120b6936157b52a3ae30ba805b5762e246c37014267a67e753333333373c38d2f242cbd66c90ad46140171256c6cc19a4c0b8ef5fce7dff52f7a11ec84ad12ccd522a66ce20e5456a2a61e1f5028ba99e888949a55262a8cf4697dd5c1bcc85acfc877d9b4cd5c39b474a5939749226a9c6cc6be5a080a5d26c13f4090bbfa394727356187cc2564e85215d7e9e9b95d3276ce55c7e293b766737f7d16044f4a844b54db09d430821430819367c2641d5667c29a594514a1965bb74de6b0c08c8f20364c9816961e94b7806ee61d6f9158f1d57be0301592c068259ac6e209ac5faead7d4dc1d0867b1628c1188c8627d95d7d4a49452022159acaff39ada9c73ce09c464b1b429d322d449d2f0282775438a210853ba523e9d1b7605dbb9e8caaf3020288bf5d57a90dba39c34eb5eba09cb63aefc39b7121dd5cfcf516d26f92fb7fae9a12b7f6efd21c8b92e1ea25d7920e32138e7940f25f53e61ff36b54a7cdf5c3cc4570c2cbca0ba7574824ccc12b7998282a8ebd3ed5ce42176660fb587a890b98f86ee78062b64e131a760f804b99fcb14b7bf38dbe39334c7a37cb38a723e6ac94969a5752836ba1e596e91eefb5aafa7752dbaefaf140a876422e5405b03153483274a7dd86ec57db88fcaa6b2a96c2a9bcaa6b2a96c2a1bf751d95436954d6553d95436958dfba86c2a9bcaa6b2a96c2a1bf751d95436954d6553d9b88fcaa6b2a96c2a1bf751d95436958dfba86c2a9bcac64637c2de9d577f92f85dffe893876cd7a76e1373cd59bf6c09db3469b84e9a5b43a1cb58dcaceeb8dc65a71f2a96109a3ee17752088dc30739937c99670f3ee149c31cd710cde5af214ed9c12afd834ff8b94dcc317326bf47609eb0c1ccd2076866490ab3d4044bdb5fbb3bc98e1612c7744892d0bbd1ef980f24307d3242c35c8f8c02e03f6f76785c7f37a5b8fed3e6a53060921e0e26efaf34ea3ca67398a7d2a73e113d15edfd5de6a96ca9a792f354febdcd60a716d4c62cdd39a360e19d739e18c02933b5c34b9960785c00b699d3a756a900e8d38c3edd2a6386db3fb5803974908036fcb85d2764a2d14095903c364f372be1c084da74bb91ce47cd84546538c5e406c6c8902183a44724a131451b5b0798aea8b40cd96a7ad4a99911000080002316000028140c894462a1248cf53cfa0114800d7c924870509a89235110a3280883304821620c2000006008014368066811848b3710962a7456151ee41eb72616af81f51a61b936e75bd911a4f5f26cc6905ae8420b22417df489ab6e479c42ed5975dd4d54f1f99096a5db4da76ee2a762ee6f898552119584cc4cc514919c8d3d9e0284418838e36d09aa30ecc6e71c40aeb29d8d377f31e0c3dd4c52302876a291ad675b375bf4259c1ad60d8001c09c52a08977bd455e7328ed82a952658709b894722c445b6c4b8d0675a2144d33409dc2c015adb48d3a138075086f5ead0820b8e288500ba00e21d383091d0b7a436906c6393d9443a400f2c7169f7c0c6bd4b8431f680f0733b265ba1630a9fc2c8d8f08899096b644cbdbfc6443ff6f955305a070a1a5f5805ea5af338e4a04d48b8088ab87666f59abba299be8b8accfdd9803296f5612ce505bd2f90c4ed43a0270350056f563b7de39dc3356138ca1b5c164a84b2b30c77d5b3465e02c86f9c4557e096c1cddc505711460b8284fbf501061cfaec38ee97586340f91c29ef649037dcca2688641876886b8e0489e417ebac76ba04f00823b26003d7dbf84932158960bb55f8de9b34a91d6a793eda5d788f02984c3428530ee1a311617a2b4539c11b1827ee83bf081801e414b52c76de260a6cd4554c2f40fd4391cf7767602a953dd1725e348c81537c1dfd1b244c4845b2d82bbbb7f6e29a3667e8152be33e8c4ab1c8ddc9953f39fe6456f4684a2f31fb1fe78674e9fafdce369141d60482a010018d5b781a2c6616d0af4c04833441124d2f884f29595dbcc25c975505b6f0982b981b404e92f8c2e6f6cf42dd0e90d8ecb453f88cf6542b4d990f56bd71b577e37c00292edd125f3cff53f37ba744088560de5cf9ad4362aa4a15e6daca44bbbee18313669ad00820f54013198b9069ad13eb13f007e94eb6573bf09c7aa76f4fd26ba754aa203fc4d54aefae4b24bd3812857b275c1f003484c91b581d245eb50cfe9e951aae9822d9dba7b8810b1ab8d9fc1507e1c22d47f9965318360a266d91d1e41c972c93a8ebba2e20eb0c0bdc748b08ddead51950e7054a6208858fdc0639bc955baed7e99841eb7710e28fcc31aa2388a0cf4c45f5a7e141b8e1c701256daa95702a22822e744bbbae8eff4fa8df2230fc70191346bcbb78df1df282ea57e2bc50006c8cd141104b0b3219b488c2dcb787750100048a195f4381fc6f51c90a076bf15440836484147841cf1062845db1b51e151a873a006a83654966b1930f9d8e42952014943d788c2f2876947cb2dfe066f044375534686dc5d5f4f838259c9f3333fc3a077fe01caa3e1611f5ddb561463e7d5e3ea26151723705ec54cbc8f38226ba0c0a0c1fc35c45b7dd02d6213527dd91a2c1f58b8cabf72c15d4da006e8d0f50025cb5769494abf2b540b6e808b0001c8d63429fc8f8eed443b61712922d78f5013369620b371c4d5421ac5d6dff6325b202cd6daa047c7606cf5d816d2ae05d6186b91aa3b7817b2e606c5e7b04619be07ac151d1dc32060b4802bed35c6c7c42f1a54ad0ed8014d60500c52cfa77d473604cd398bf3e21105484541d78236acfc696a566dc94471b1c6d8298e266b74e9960f1948cbd25da077e7d987754f8fb7fc845008fa94426b9c115103114c9b851b82ef74e86117940bba75f14bf82e6ad230338f772f6d96c3af34acb4b883ea2047358d79d6376384d59929b594c2a4f7eb95753276e4247014184ab423b5cd2c79ea0e218893b528e90f9b529ffc3188c483362245933d2befa3dd8ec8ecd7ba6a4e095a886492ad52d21f3f072c5e5f7bcf547b07bb9e8aa422b5652e12b52ad3d427a56d2d31322be3aafe18b9c91785991901e8c9d3f92955d889545a5499dd21dace4815d39c30fdc02d2497463d3df8699ac7f732d79c46a62c59f23a1c1702f08c7839207193c51921e996916b88e26fe360209290690379b81d2311a7450864cc4537024ee5639635c2815dca37f36a25730bb9b98ad5203dc64e5ac11d1ac942a2d2da333c3067fa6966b03ca298e1525c1f1516711beb8302fb646cc04f2d522eadfedad5d0f2136b8c777efa0d036c8df484563a7484e51cee3d77cc527c7023d4d1b522a0eb960f7007df08d55e2337e145179a4057bc3287f4085d3aef042862bd46d463e422bc85a0df3a1ea15ea755023b2595a7deab4574122a37c0f014274cb0e3393cf0388a266cbe68d89fa1f89f881d5e5c87940d356c0da33c6411bb04f350cf2c735ab316db3fa6c24b03974eb1359c80842bd18e28b1bf56c64e6577861eebe59a98f9e6c66cf5a1012c31bfcbba58c4818a551d550cec96d822109ed858ffe85d48773d5c6e8fbdac9239b389176727cd1d3b2e648edec2f210a40b640b65b9184af62250da99ea5872db0fb96c0bf864bfe43e3c4a83c2a7fae1d9111287c53ada8d18135d1807e27d33f8bd9ec80f6f4bf9779abe840de5fc48b4e1ff2825e136f5496d03a6444515e3deb295d14e0f3e1744db513a1d8c87728f7426256a4f2206d0f9fb7d3f6aac629cf3b5509a7d7715e7717a9a6cf08d80562b95b7addb999d38122a6fb2a3f6bea26de04bd9776daef54aa851c2fd7e2543e3fef95670dd61829a44c577fcb50c247a65972579b2bfae1fea4b990c93b85665cfc38a54d7c4db8dd0bd9b1a81746e8ecbb6c2f7b5a32804883b0fc6e87a78df2aad076bcb58e3cdecbe806b1d07fca667dcaa44983088a807918893d933f9253048ae19a0ad7bdb407c276a99825214269d3e7e2cbbc3187dd73657f4926b484b6cdbd9162002a96ac2a24d800d7c1498f8f32da06dd055901f292a259c843d7b594bfd0e066d2c8ba4ddbd9946f9bf5da649920b04fefa23e65279e2ef198a2fc3d07df13ad1c9513ad18389c94770d1e3623bd766f3a24d276fc73aea289cd609a1d7307384874ebfb08ee0fcf3db277f7574813237111f06e509d983153bb2f37d1a4327255803d278955aab6152c195754bd0524d31dd6459ff422960fb703f750c764b4a55d849d6eb95c1da62eff6456692b81ddd1d46636bd980be402128a265259319139617df303cc52729adcc8e84f90cbd43f88bfae3cae31f9fa04ea0f5254059f40c85c3f8e2cf1b58e04d4c86c62a6ab13dc803dc1d21dfd62397882e22fe3e76881edc97dabfd9d4efc7745accd9dcd4fb0908a54d8f104aa2dacc2cc0ca559cc64355379356e62545e863a2ee6fb9ff5a3270c444dc76da06735f2548240a10f29f7b1b87732f925d0ebc88d03cdbab324ef35a96f645d2aa7952c2365f8afcdcded72a0584a844c765f88d92c307582cd05304f1b39d8c84f67c5da7c8ad9b6abfda2bcef0408fa812c5b201c079673f5f769606c511f3f896d32e313e9b5d9b57f7e568068f56f0751a873eb83c256b57a5fdb35f973c2b30a488520afbaf2dc51a2c4dfe51e6afe1d6736324a4757f9429fdce59292f8d136b4f953d7abd2389f64eb96882a59ff5f7ee036b09b70f33114e4678b3648071514cdd89b00fd748a1abf12b360bd72bd31ce788e63132598a600fd1aa8d18c11f2a456ae209113784888a14206842dbf08e01227e64fce3060c245d8d6be410dd4a98a2f2341c12441b5c39b115e731e31577ffc83328ee445101026d5496cb014da5a877db046283c9e994277f5691038145fa10dc9ce0a560d5acc5af723bcdb846df1b3e31fcd45f41ce8fe17202e1c32941b5f99a0f9ce383588b3a9721f3809be7e04f16b78ee7e633b4ce912fe0fb141fa5a46ac7ac30187a05062b34326ae408e508b3327ccda2d8622f2754affe7854ab97e218101fdea9ae6ce834d18720ab5d8e34bf1f874ec8df247d1bf38d6d7c1e2522486ced42b40535eeaeb17645da787744956dd2cece0a176f4b523dca8cbcf5a960dc03d971dd8b708e07eb5ba9a32320297d3a9b602e84c9d0c84ebc22842573ec356f95b817419788688bd29464258fe72deda2c17b0a204e6e7a1e98c36add63d49bbfe6dc767586634d01b700b57e5e91954f06ecb51966f5b3b0240f5aa20b51cbcfa8e7dfd00f4010720aeaf4c4e34702b514d411a889a49c816b9a6a2331ac31156157e7ccf18cf3c185439221c907c290a719c9b029e1b56e3415dd27b04e4a83437429e456f863226c419360b989f05a10555185768f1f0c52251f531b2eb2e0232f7776b731cbe9617f9cceb7acb1facfa7b2ec0a6455fb3bcde200cb9f16bd0de30a43d6d8686b5f118fb4b69734a6732d73d2b69fb9f8360834acac0b9aa5efca1f16b6e37dc36bae874899d3ea0c86b010547e63c31ab7f8c71370902ad51eca08fd43ee6931e73b496251a2d96e867bc69c514785ff4ab9fb6fbe42a42560ab944a63f5999a0b6811a144015ff643efa4ea7bed1e24b77385319b95c0d98987fedf4a7b45d37982c234ec0f4cbd9485517eb9242eaa37a6b3f0559649a7d1f466444294e18299c0bcd4d06f02bfd03279e0f0842fd3c123b14e24bc5832645971875bc93482197eceb07d898d1dc2c2f2d91630d9261cf80aa97d1aeec74a3d7c44b46a15327b2e711f58a168f00a230ab2d02800aa8506501fe2c2aa452f99d5e22e1c51fac251309885d5013af2031443a201321c455194f150680b5834e7481cf1526912e30df30ae1101120872306de51490f5587aa4ef4673b7c47e1a17718b211dd6e9cdf57d6cdf3c5c97378e1a828c2dcd31ea229f71d73f990fd023f14005d989e1673cc27f00f995ab6e4430d1523be39a6d2ff8af1196e96e77c92bb042d588c4b7302445e50b418dd8841129f1f7031961c8d31beeba52c5e8589e35c99ad476d18dc8f7052f5f812b6491f1be6b2d167181315f59861dee69c9c3a7843bd93cf3113d5ee9bc55e24f5644f25f6fc9ccaa9a6f4a067b6d72cf693bca53d8c98439def3d3de5ee9ac71e24f7642f26a6e1e5c1404de941cf6caf59ec3d7708f11b877ae72c8e912696a33afd7ad8c98e559cc1875986f6a1aa8a71ce4031173ca92cf3612b7b2c47011c41e8f9c7a1ab62431437a1b9a8f187c973b31a255b90d503be7244e966c5a7025ca969914aa0dc53c3b0d0c701c3abf7736d5c86d871e558f1e63bc8498bd44d377ab7d46d32a0d5ceafadaa1325dc0b28363c9cae05655638617805d19bfdc98027c9fd1804df743ac3b4b62859cf44fe90bd8fd4580d0c73196c31e831505d86cbbc13bf7e37e12e548269b483dc082033dba8f8eec5f8b56d4ab82b2d06599d027cf8c544076e64b94e88d71b17eb00d2280214951f9cab4a06a612dc7c162c7ba46e140e3be5ffe9a7f458429e9c847fc25ab64e57b7093d197d1fe389721d2bed11a8ad82615c965510bf1dc350f8e9b70193d498ef322efccba7551221ca18f0ade7ee57810e0a04d68e4707170417b4050f1b30c00d1f72b8955dc2f1f3f06c1ea25b0f797cdc8cf4c9799826981d041225db7de8a5307738b54bb36b003509bc1984e520edec5f888be5aac7172bc7ddc12e7ce55f9fc32a1fad9c4a0702fd7dc8a4c8234afd6f3597fcef27ab9101dafe016311650a6927f77a654696dfa9efa2cf444d523c076d030e7a0b7eb3731081efe12098e00b840e41e53f58a597496b188e88483be165e8637df707b035414471a058e85f1436282b4dbb9c8c974a79d03ffcfca84505c82cd01db53b0397dc81a3bbae755fd63c0c1ce6af775fadc6be94204981b3742526623d2062affbc4e421e33e4a6190910449deea5d2cb153868ce27f21ce0d4f8ba9b19d4d270496b24173bc5e8c4973a68b7ebcb471fa232c1561532131eb9615a8a0185c4f17e6f18ba5a856b187ff69193fdac664aa970a2830413b23dd5890ee3c5cbd0abd00c7a3215c02cc9735f8f2307c083a25c0aeca04daed1c24639fd1eb479239f37361521a35f4e9d1c0a437b8fc08a5104dc10b0fc5d0831997050f145f6172988a45ec663313b485de82631e0b04d3a846515e9097ee054741f652d80bcadbf75f8fd73e91d64c69230b4201c995e6b7d14665a48fd062adf73b933f948d64c254b3a04fe8ea033677b5de5fa43d6cd564c11cef2d826d2d669e1604c9aea602620d8c4d31be28a2484ea2b8a71c53f0fd787daf3bc4c3971311d83fb100e577a708b141dec08f1ab7aa1cce2f986180bb5f802ed102a5dfbc215274dab00ab1ad7fecec71b60fbb58112d5e221de34cb148596a65e8065bdf0a42c6842b846ee6577d542fdec87f671bb14f12bdf3416a74ad0e3dc045e343d759836b44f6b63ff6c2543145a4a003a4a4ba600bcb11dbf73c508d2c06f2a2edc0f72376db88e0863f21f9f40038bd6e801411718a48af61632ef9fc93bcb394eb779273565cfd0b93d3486f86b32ed705dd917a34b7974e03dd66745f6a8b60351192375eb797669946fe1162d5e1fd2cb8434a949ac7642c0c80e2f36be8ae940795d8a4d567813285d302a1d366817e1c76e6873f85a8975ae804390b8d7659a86a6be25910f82f619b047e53a82847ac8a6228858441e393e571d0a9af2fab06362dfa357fd3a2bf6e7f30da848ec426e001ef2639b765ec6cfc62caa75c09fdc6e329c9663461f279d7cd72dc92bdc3743cfb8898146a121e7d98b834b11b60ae85862794151a483c68d543d4620d7b62c0ee98440a042488584a8836942e14e6f5adee02badb974790ae760d1e674bf7a05a565f1cc8462cf54291b943ba1311e9b8784a575fa22aa18c1244131195f5bdb004073a36d7da391213c1c712bc106e4594f6bdaa01bc47d032024ee8d0541f974fa67e484d807aa1d3df8bcbf7ded3ebce9724240b81c29fc01db7d04c9da12c03a68ca94cbca24146b7b24f7210f40beaccabc87947d4d21709638104940c78d87f3bf9f58332a0b92f2114377302451044b14a32e380a1b199d674e72cccd02392871a3de1debdacf12287445cef70e0fc054af3df7fd9681593097e0e70fbc6ec8d3d2a08adf461594b0a3c0d317fe7131463866fb9c52828c368d66e5fa027c8488a0a0286436882e89ba0c95b37c7f24929b49a040186d92a243913a4c757fca5b5d49d2dc6e65f3188584bea5c880692a01b97fe53a5decad4e45ba7a8a510e4eb12f40e82d36176029cd0a5697f1e5f2cf922e304acd74d79e05747be65331f40a5114737c5214a22d0fd5f3e80fb95c4fb32e88875f348ff869a5e544acbb740073e6cc17596a91640cc87509fc42590e6f5939031deadc5fb03cf8d269f8b3aa0bdb18e60a59b9ea094cb5dcf8d2dd5876e0874ba6b02b4baa581eea01b43dd37e626b8eaa209e88b57eed01e819bee4d084da497117b46dc8457a1e859c323eaeb5ab7d18d4b51b8c3051fa25fb2f3533551703e01dee14ed3bf161cc04d16738257a048010ed686938a2e8a3b7605ccabfb31a183fdf2a331fd4a957fbb165229f6f901f2be4272dc717bffe1b6d3e2fafc076a21d18336da761bff0ae4c1b4aa4cf93faf4ece6b1005fbbb3fd058c4eaef563d0f5497ae5efee69a3fc77f91eeec44837b02e19ac403efc86011f848753d07b980115d7c0ace123775f86d6082bcc09db01b5a24eedf25593f94e9d4505375f10e51f9e8fadd950b6115b07165662f974fb7f10f7f0bb3db89fc3c9895560f18c8f573461e8285919f3cb223f52085e4af08d07266278ae6c683c6a1fa06e9077f7ad86fe244de6f5101fc7935f2e7946725f85f7b1818f5b25aa5fc8502a8433c9e0f52216fac7015157558737859a899745995356d47957dd9d583101abd4d5e87cb20075484133f24c95f14b3666d75f053c110552a297f40b97eb94de27d66a31e58e25ff9cb399a2f9af8e371980ea590e22f72a55c332480e1eafddcba12afa1f8e154c44beffaa5ac7e1d8ad17a540c6582d04fdb0e5e6217f28249d82623edbc735f6de189e2bf73779eb006bacc9c3edc2bd5659b3d50bfba9fd65be10fdb4f710023fa0eb4ed270a1326eb4f30c16677822eea35bcd3bf5c5acc0a944464528a951a8c8a2843360a2840c8a20693e9df1dad98575ab78ad6281be32fa672eae261a76ac6f017a5e2078001dec4c4c0da7810c97cc7421e181b32b5b7ad974c4c90014379ac59f2feb81603810bb6bbbce51074d1c40d98aa53de0dca0fb121b83ba23d1881efce6cb31cf7fc5379c4f4eefca13b4fb488244790a38f858ef74619f14f469b1f2b24007f8879a187e2e72ce0933c1ddb1dc4da29a930aed51d5aaf1ffee4af83025d64a3953d2e06fe64bb77ff72eaf56731ca40594ba4697c2aec8ec60178f9dfb52c1f814713e66fdacc0c08f4ab889f5b873689ba073c52db92804831a4281daf51ab9e8e56dc26adf59cc52bc9fe5958e70fa2af8ebd5595dda715ac525177ee5b31cf2f198b2baef62bc5e74a6994a240dbf60cdfe03fed21840d9a36f749fdb70219982e0d82caf6fbf506f6a06ee6a8865518612d92ac22f7239a8a82360f8e0a6f94e46754444fecb24cfa9faa19ec9ac40239bf883793eadda8d274e57a7a51f03bd58c6bc5b24fa21160680e2045ac4ee4d02af770d697a4838e9100b8e42b0af3669254d1feed3f2f4268b7c32dc3ca891b325eb2eb4dc9ce34e5a88fa70ba25291430d55d6a4bba0cc87b8119cf210a04eba0a3b7d9577e53b9a488ddb307f1ec4f63b7cb908413978bf4710a2253fc958861e06c79a627365f86a1bea6de56a990733a667a0537108ac6455aa6cb9be01e9e11354e510340175675e6312831b3a87a954324ea7d808a94cf63e934f4ec062689049d554b61cb9483756648346eac32e85df11cab530242e54147580a8e67e9588cf1423969f1d5c3566c764f6f0d10c4a8f8bf5ca3072b7bed238dc71ec5a809b6f6cd12cabee7904c29f8501e013666052d70a92a67974274aa8d6effd1acc413ab2d138da691ff832919af638a22663c36646b6fee02f4a6691b2a36bba8dc08e21073aa0aa0ec02ba1c49f767cb0b62d50616f71e7512c7bc817c673ffeeb93c15f092b05f27d4ea74e613b3dfe12660b75055413d09845070044d3fa208671023a2d20b08cd31dcc6d01d0b198f348c76f4e03ace5ab80aa53e06ecc2d273ca237744325895e87dcc008b4581343fe731bc0d5296509951e0be221b5df38d4b95ebe4c60ddd4a99aa57e1510bf469b53c6fa10ef667a3050992d9fa91cecc3db620a9186c9159e348dffa9b2b62eaba97c737961eb934b8de7f0596f83954ab91b9cfd85c9d447d0c5d423b69f2255893ee5f418082e6310cabfe4a5f27c46cc43555223d464347ef6f71083a55f15b7d6f3daabf662b9b9e1f64ef1beb38d053465bc5d93bf45bd16f5342c801f623a8e0e35315675d5e77bf44dfb7d14a369401500330da4b8f2352c1f632a41103b41f18bc2330e27f282c0cf8a3e4cb5269658023ac27a20a1de4fec8284d7b065816b309b05cf734d3035e35b3a831ff8a8f834bcc49655e1f51557d26bd5cc14ae934e69044d4ca388727a10e53b0d80c861c566478f83252d5d678fe01cf8f987e13a025039501b8bc63d8aa84a5aa13a56fd2b3950b86275e38fcf65d1aa4078bebbd48ee95da0a2c8d5d09f80a27087ac88c75e2f2fbde114a400200f73a223a78c5cfc02eaf24dc7c71a073398926ab39167c74732432de55bea95f63a85253d2b65dd6a9ef970fd04007413bca6f47b6e4df9645d826ce36828665c403b0ac3e8584bc4f774facb5ba8f918891214fa87d64e3ceb725efecd271eb8376dab8ff1d51769c56d4efcd5142032055ddb18a6cfe14e1bb6d0bf161e8f5c236013c28ba85a7ede1271793e217c543ef03c12d0ee0421fbf75f444b33e5730bd7dad8c2ae180a8983a50325779fc3285b62c11d408ceb2533f4fed775bc0972c8a0b73df75a12b092a448f7a7de081db2f1121d92ccafff959bf5f7876eb1e0bd9832b68e61cf1639971c7a83bc66e1e5f67ac39e68e72638d8e3582954e497a11dae6ca856984450c0c4215c721d1d26be28c668ca93b8a028ea8c3c8a4f25fe93a46b8a881c2f86e0af4e4334a649616942d6621e2321654a9c15e63a992ecd18d6d4a20df6ddfee0a712d3c4fde4c6b7c2544ebd21170c5c67fe9cef501f83c020a3401c5420185730165624095c1cbe451bfc67dccea5dfd0bc2cade0edfbd9dcf02054e663a8f0305f60325d9473cba5f82f14f7ddbb6bc3c81277adeb148002531202a4febae8ce6264f88ab91b224d25764c970db5d214c903ba4015d4608424c3705f497cd6fe3da7b6c7fb27def83d9c9bc0f69b36abcec4d70d49e043edaf7ffa05dfa0fed52ffe001f0a0947a6d53d7dcb194b48f0d6f33dbfc0e8daabd1a9a198ddb5af36a2c2e66aab1db5ae82f7fdbe4546311662ebbde6a594548d3290572b1dd11ad2de5222fc0ed6ccec4a5fb1951cfecae96fcceb5e3476cea64da68424ad31afcbe2810c02810875120885120a46b11750df5c4716da92b0369ee0ebb7ac73a581e64b00598d839db94952a773904c895287688c823758cc6f3256a2bb1b4a91252b3daf9e080127e7dbd9d5577dda3e8ffed60fe75c3ea5836578959e64bd603b26e1600a016fdc135f01cdad4f074e73905789412e625e1bb09f92daf09bb1d57c08db803eeb5bfcdac1b74154464ad585bc3ecf92d8f19ad65ca2c50714ce77c6425074774a25e544459a25a234ab7d5e8599bd2cd4f56686c314fc0f9713f9d7f7168de79d12ec5b6f928146d8201301e82a3830c8e47f68bd3c5ec9ff50fccbbbeb6b79b971d5214d3b5cb7edeb1567810213a44402e6da93d46267596f81a126a8dee5e62b05350d17a64b6ff21550785b24099a4e20452fe402a6fd8627211fd13c600db763e43ccfc99b79aa619de642774ce352f3c755387acb0298a9d5dde2f8ad7a2ec5aa1248296104e53323b3c62d5930b21787d888b9535deaa1fa283e7d04b9dd0354bd0e1027ad180d2335511726e30e3a68a586daca671b2fc2db65c45ad2ef64cc2c6303279cd90c16766f6987e4baf7091341f24e646c752f5361992601e3be111f0f581fba2ceada20d3c18d3d142c0a256ca2e64e5fb119e1dcc3620ef17108c00111288be640dcfdab23c7ef2ae9fe727b5b18ef9039bad5c4b8fe64e1198a6f208192896723c97e06a44a81cce94f278f30654db53d9de82d23c26033a0b75a6318adb6ecc12e852a219e3c8494ce8977e40921c0b55b40584f8d0f070cd3c2c57ddacf9f89dda6e45ae4b62eae3e304f4de2ac7972d45162b59e37d6a4e79d4ef725b768a2cae646cd4a5f9c9786556b3f8aecab94ea9cd7dad82de8d16c1ea2121a88201c7cc96df3000830f365f6937d137509034e400f1c3805744cf9b6c32f1b9225e0611ac28acd5108c7eff4cb9c2a2abae1c33063c4f7495f6e74c0649a666f81b89055b7d267202b1ff4476963ad8221806d4a495cf84aa1f11a1ac156a035bd9f2cad54084d71c70317902dc48662b0b50f946785f8af1b96e42f9470f6ebfa9d90a745186730648c95d66053be6248bc5d795a4bd76ace804da8e37e30e1b764d1fb2a00be0b3b902db92bdaba544bca542773cfe30ce7f5b3cdd9e918105c305054a268773e6b48e282627daee0f02f236461267cc93d5455072921d20c517eaee7c2a66abbd2865bbbfc036f70e20a885ad475c4fb5391ced218721352b78a2727fc49658b7a51888a004448a1451fbcb70071d719682f04462194e01e088753c621b8d3a9dcd75267a93443afea4a9de2dc1cc7027f313a0d9996ca958371f950a266e70cdc5c68f37a677112ff1da181e5644403c76b3396e4fa872f8e4fe5a3249c6f1b20aeb1ff7cc9abe905b1b34704300d048348cab493adb8800cea21057e06c3d4523b6a4b70610b4ff64b7857fc2d58497ef33c6ba6260cbc65a57dd010bf3287845aa1d696924e49c94827a5ea405b5c517187f530ee4e7e7cee1da1946f2eff30c723e892dc1fdb364ccaf52abe5d80ba03d909ab424a51aa525e8e22be5ad111b57166c2022afaad74947f4a97807d935b06fa3f87972d2828223ac2958c140a020ce534df1fcd4bf3d988d33f0b03c79d6bfae58413b9f09d82cbcdb41e747f7bf128e2b6a4f9b43266853bc1e8505188f81a6f6998cf10b39c70c8b47d829d769450a623f19be9fe59fd80e26a2fb2da52eb08ef881054a17eecbaca07a4975b906fd64c9c38b73d1fad8b3887fac8fb9fb55c965ed18c25d87fd0d7eaff8a44d2bd0bdffbf256c4891229073bb74dccd4c5492273dbf26819c38cdf7dc4526ca55f4c708a2c3f32592830efad9ebdc328158025f246c1324123a6738ba7e821d5ac8f4e6fef34dec0cb62602ddeb9f2b94346aa81a02268f15a76586ee61bbb297f56ae94e43abadba4cfe383a13285d17e44870ea5ffab50ece8bc250941b3c07ee9c2292b646a6113d8077b7aa64890109dfa1c73d07759e5434e6ecdda84a6206264982c9e561b9d791176a16eb03fec61e6d1c4a3b23589a31da2b89e07bcd02f3d61b40b039423f7ed843533a87a7966f007573d98c4e437f3abae3606d9efa0a5d54c31a4a19c868947987830f3d2fadce46e908732f3652733a120cbd14da38b5cc7167935cf056785fad42e6beb6a66d70d4666019a74486e0a83278d91810dfa8ba51416e1339244e998fcc846c97812c76ac4b253e3c2799e8e9e79f7c8392d35fdae0941b645cf002918fb9cf8fcd680615bf33d134aeee87f5bd55272edb24070cfe08f1f5f4d782ecfbdabf2ecdadfd9a51333158462e28722380ff7795af19e31291a706454cdffa82c1525331f5871e90f2059d74995d12b532c620bd805aac5111a5d1db4428297a47a89360b97c686561372b73466c426bd3a06d9ac4d2233bd7e356aea208e2a63f25f91caacf346c0729ef9149b97bc302603ba1cd347484f9c1a7f7aaa1bfdf390257bfb3a11abe487a43e863a297670a48bf86be2d6ea7c86c86e0315a53a6a788a4d7ac98128457f65a00804036c7f69688733c2f14f88144ae1fe530839799dce13ba4a80fc1e7cd01d453e9b52bf32cc298a66e4020477ebe8adab7b1080c01ddf7e97dedace79f4e9d67d929f8bc2701d0556212c114291ae08da691afe861e8c5f9f3aa168826ff908cf60dbc5511f80df7d57db33cd64a9ab9497d912bf2fcb765e1118f15737ee0c9855a9de3080745ab531449868b07a15e58e846c09f1e5d375a004223ed37fc1bcd8485d98223711d1f881ade3a271074bf6e74aaa5146600acc6d202370b70b9679cc6ca3ad380e184c456168ff698b2e26f054944b913b19cb4c53682ebba02f56c1d921db36134756df46ef3ecb2c7c1d4478c10b862904382cd287584629032ab6b03eb7e0c1ea363427402a3999e8c6411921bf51bc9b77d71948a4d7a5ec13face7774510f62b2e347908512440acc9e89a6f6a3cb851cb74ccf0e6bf35a83a90a9d245185242fbacc3546a85e2de93c8aa3ffe1bf0007959a162c96aef9bc4e1aef4fec506951ef8f5f3f0df5d5d3e44be992f689fea3e5fb4c47c6c71f19e071d5f99d7933916825c31949caa925ad26e559511a4d83c9a6483cba6c509a6dd4c72b012f7aedb26abc2da719fd9363e43ceecb7b74b9ae1098bd6e3baf1cf0d39d1a0e784796c45337566a6518bc35ca7b23e1256fb82858718a63c0da031fe071b43db522b82ad0a4e84086a1df696f646b4646b45cb6cb5d27f95a0bf1f304cd5bacf44c3af0def085e06f64d36afa06a0e34f92a9830b562bbf2349dea1aeeaefbae0f1934c64388dd5aaf4436fd015661efa61517e46a301d76ab6cadf663306787f14ee41b21389263af5384e10cd1bb0801ded645585892537aa143ad10f6ca8a61f425c0747208528c5d82831e72c9af166238bd4b7f41dd07fe90feeadacb825ec78e327a95ad36179465e724e215e09a2fb68e341d463bc3c511ff8bd5259a431aa41dcbddff60e6e9b249a6d0c663949fb318a235973bd9599b7267fa60849d3d08412ffacf2d78308836cc5bae3b4ebfb85043567d03de381f698f5bba1d6d49ed544a287fbb451f822510b1067e6647746920cc2833884fa5a8fa5ea0b3fe50558123e51982a2c74a0c93053a0272eb53b639bb75f879f57c5c6f015db176ba10fc7cff9708fb7257d14be775a74d496b39e736d88025d187f796a446117a67b0393941349c044f4674214b564cfe205d574c0846828a29f902665652819877467dff5a51ff1d038e45848a0c7ec53e238ff8473dec3615a811cf2110f0453354a502a85e77bb62de13bf3f025afad4127070190f2c7770dc226f81d571323ab893e91c4ba2d7033fff1055002d09c415ffc5cbff2fcc96b6ad6f418ca9dcb923581d7d855f7e4f1bc8b88441df15a003f81a0af75a7454cbc48f8a1b313a85e2d8ad8d2358eb4532699a9fcf609a767d6498ecc4b0c983b985a54a99da8d45075626c9f523bd4ae602aa6019bef1853291df871b33816be70eff5a553e335bf867ea077470270d827e03ba78579da9a9f2de7cf5052c3a661db7eb6d05e6ad7e07ce6c447c4f13c7a53285d31a23be889fa8e105838d1848104a0997f266378f8660b0445d4182e068ac54324702d1cfbec562d4386b43c5857e0fd934d8fdd17645d6019e0a0d5a67fbcba56b64dd5fa95861510d78b83cd2da80405cc048dc237b92df2124e3fe9ade01fc3b889c34142c8e9c1d1e64b4efc0fe0c65df76c96368d04f1928eeadd3e7f2886ff86aeb8dd045d816d5e29ad8ec6269439dfb7d720da3e284ed9369eb9a7d0ef14e76ff8a2704041fd63f5d417950ccd066038f80688a2f12dee909853084880769cbcb129b408f3ae6bfcd2c95fc0ee33236350caa9c9915f43579e508eb757fb3b79b75d0f6bfc2194f23f18e7b2419f1d72b88bba5990d0d1aa38cafdb329ec25754f6b187207986be073a988082adf01084968bee840e7f31663bdfa33971571b73d77e386785a723076e6be750d067aa19b9d9c1c2bcc93be54e62716e8661207086ddeac8b6f728bc0e25fb6eedafc53f180883e949c555fe961ef4de50ee9b18ca90b5b112812dca2a24ca25bf8ee3de70e254a8d2315ea7480f511c64bd1ebb2b3868fd86b1e2294a25bb2824670103048e36e548c978c49d923f49b4bc02e824d1419cd89d2ad95c579839b38d9f974e444f45c2b9f2e61887189387d30059986d41f96d57775d381178c0464d396753cbdb7267db01312339e88539105bc8646b01085babf256c169d0b3eb80a01e7ca4244fa4e91e362b0416084be67c34d79438df21f202607ea79a65c423d5a37086690fc62abb6344fe84f4c0896d7d3d824b7d6390550ce5820e30c81bdb5aff4da182c1c983ab4d0576ebc18a83908d6d82487b44c0d01446173455415f299c21a908cd1f354539b62ad6dc15fb82341ef60c150f36551b0da2805f01a30b5fdc639a9e18e3ce36ffcc48e460207255987ddc3ac7fec0a0994d807f79b0ca9ba0f8819675c859355bd3442e55ead092e8ec456b9b4f77827373ca99389178734ed6fa9ff196d865175c316c004b73f3c4759cceb8e2eace7dbab92901056973f3e9ec1aa54534f06e229efbc49bdef16d980162f01180196ad6ab323c78ede33e8da726b15f26b2798748c4de8104175024950a1fe581a00eccacea6d28261639ec65e91a08d8eb2961512a63dd206de12f9c6714524952cfac23e8668701f11dc841102e8f4f9b5dc2a5dbc1e084e26dddbbd3ada4489a8184e2c0319e78a8e72114faaaf2a65481f6399ad33ba8db08c5589c37705764a289d405e40e67d47d4d32c7f4a82ae9eb0ac9e19abc952af6a0bdef0a2075256406c3159ca995d13ac3fbba3595c659a5870afc969906ca98676ea1206866625e4684bb2faf75ef103612907305a4139f9425d0cd402331fff79ac812e2395e9ba618d1506580b87af933270a2f833acfcf4ec8da4e65cc0240e125368bb451aba6468308a9f2839d7f8eb7aed006cad1467415dc0d1a87703a2467a7563447e722bd135a96703a52eff9854e906a80f0aa78b30b0d334863263c3964ab14871e1bfdb3f5d7138f653a80960c30c4cf80b2c08015b35f1bdb926a227b0c165f97c0c68df1843606f35c9bc72f04b3e002da238d07bbfd92157c497cf24bf458a06187e90bce63a4d6b049576fc37b8ceb315097a5203d2d0d99bf764d3183480a59ee0aec09f931f6357920230c8e42ad32f02683b2d67e6b9979d0baa4816d4255ba862d41500abdf1adbed7f677572f6bf5ece55a21ff5adb50e5d95158b6090dbd868b9d6b49c0b15cb70497ebb04032e518e6bb73ba658aa7569829e715295116bd5670020cb6ef930355ed4115ad9781d7996d1eab77806229f1c83a034118698f549cb44f247158d07a1fca6fae178a48bea65663d77081fd143c965016a9298edfd825915af9df42bea3b19f0e8b7bda08fceb57af546f485dbb8fc36c88ac20f194231677b75e0f3b5496076c9129b340ab4185cca6ebdcb1f0c31733fe36d3ca881e8e65e9206cdfaa4bd055ff37aa91c068ecd26616b78757ed80fb260c520629d43160195bf6f0a39caa643880c04e128678418cd63f4d034031ef5f235f3fb63106ce59530b5af23cde86af9947f6fdd92a30518df029997443d6006766fb5493493f6cdf3d547a29b87b798866332cf0a8bbc18000bcda4896026a0c841a10477d2175bbcd4dccd7b816dad06518caac80844a712ff475867acf8f1e63063bac88f1f4249ab6485e3bad38e882c186837ec06825776376b587ce33a6835c6ef204cf1684d7da1afcd9ef4d9e7f26df4871c58fa6762c26123df5bbed1c801a5815fd90b49d1af9775ecd4110244c5e7ba6ae5c9dd84b79a663c577671474648fda7642a2f4e73daaaeb298339684988571447ab9529a8b0a0f80dbd5ae71054612e51f9d77645960473e0ab5d7114550e2bc3e707699571f3e42f6ebe8ef39cd98f37c03f8433afc1857dac1d7c9989f4404fe5aca0a262ca266086d81f0bb40db89ac17f9fbc88a2b94c08ae16703bd00925f66050f1e5910d72e185ddad632d014115dd87aed95097001b5677478604b9d7554fba407535e3efa6001f4a22d093216b9a1515767ceea4a2bf0758002922d4a3e340b9082388ee5234ba6203e7709b8c0818f6159924bec2987642388ddeac766ded2ed9afb580bdd08a85cdf2a6a29b4d60329f022cc091d4e1c97bb105320a89b9479a5fdbbff716e0b893d8c1cd9a46e3fd66e3218dd0617564e2f14580e6e6a902cf58ec9f13052ee930275bc016316a92257830a4f814c4f9e0898e6bc68e60a3d4e22cf4180b625ab1513102dbaef0e0fc259ad1b591af2c4654aa0c52988c3d0ce937db83ae1fd72c3ac44d24ed611cdbd98f2896bc61049d89a160163401d0d4935c7297274ec3b2f5224cd7d64c96cb3e9e8caee28d5c9c59221e9f8058c762f46edab747cefc56ef4b87027add3b7b37609c9d1d5f62f548eac4813c159347451f80b2fdd68a560b3c43ce21d7e3989df1a3c95f8b282e28f0462e4a2c4519365ca74d4afde470d0589487e72bc703ff43d6482ce4291418b7f3b99de86a267d6f064e28a0800478ff1d5c747af47e1098b874bbdccdbf42e3036809986132138cd0dd12bc4b277582890d9d04d24156a460f70f78e25b8f9a1e46d35550cbd48fb67f9f08c23cbf5b20f1b2c7457dc254801bfb1a52e6f4ff7924057768833b4af6756523379e58f32a5f1958b5ca19207541cb07cf06ecac8a4fe8bd7c05cfe2815c73c0e8a845da3e72d90c3bb0fcc99733ba00168617695c1fe016e0018afe8f95d77363800c2d9a873244409f4611d4c35b9b4d455be674ea17b29bc9735abd81754c743bd00655ddaefe7707c38c086ef73cf91a1cbd6c5daacdfd5c40e1580ffe35789daf2553879a7714cd0352e96d0b6375f9506ff9f74ca60a107ce163d0eb7d354a4106ebad057cf41f838001710d64b25450b48aa1c3344671c6fc99a8b1f44a8abe7ddd0d0865aef8052fa02c23528f7e61b4e0ea1a4c6c5766fea96840bc226943b7ca22b4137651ab78adb8c1b10d446ad8a157676cf3afbb2a9a14879e0da53278883b840ab266d7af2e4f85410fe14e2d0d721abc4767cd7766c28f20408983aeb753254c016ba472af3dc5f1a15a064e282f19553d0d0652f5582b3660588d2a6100a92d6a011470c662730ec5f2d805bcab19a2a09f8a0f3c843d82896abb31151f05a77c3b24a1d08806e0240090074de42c97510642d78d510db0694f89b9e975f7989f3360104f3ffc3e5eec49cee26c56c8e417f9381ab271fbda8cb4570f6775808ffb69e71caff85e7f88fed07566c4096c5351a529935af60fa0a8ebf55fa29c03da360f86b04c612662d1e0428eb05c684e8abfa8218733b6db53c1cf1d4ca5073a967d264a84af0d86bd497f7990448d09ea54ca0ffbd75373817c15b8135fc5bbbd216d3b3d793e59d984671ef23c593736464c0766243fd97bbc1c6be37ba1d748a68187cbfc75026a2647109fee9a31172021b8081241dfcf3beb659d8ed3fbace18b3e1c3e7fcc350bd99e181d1957113140a5d1ddf530b72e0006e9c485e61677822295006e18e759e323ff9c1ba99c034877f801becfd25df2ce933dcfa419fb55fa52f826867cffd2e8cece4eca93bc37673c1b4c5b572e2198f418c30dcc717b37bacbf46031887105a86c0a92763bea9f14384650fe01b8ed20b7315384aabd85c9f44405a53c4a03c6746c9d4d24199d802e68f8cc015b4c0cb9bba8b9b507954890c96dceda36cff86ac2a4e1be7a7ac5831f3fa87c054e56743d0abb36c66379a2791ddd300006fd7d0906f31768af684e4d3847438e4962196403a8ba213ea70b185746d6e7438e47488456b6e920c6fb005cb598b16100a2c775895a0c1772d2503c203bba2bf2c104d6819151a6cc268020636d976a0b0ff47ee182ccb10109f2901b414bc9bf5ae1ea1b02916070f9cc33ed7e0655c70b6cbb6fdd3b59272d5f914b2b0af16b14e81ca000844680853f36efa85eff7fc12a1e19a2f3df5f44b0e408701d0ceb597f52e1793c6fee7d6f79d714410685908507a1d3bf2341e63dca0ec94c29c82c6d96a625661479d9294db6614480729c68789c2cc00fd091129a60f696ab809bb144fab63f1040c15f94457fded49acebeab04543c231e711beb850dcd8342855c7b0f10266e9b5c5196e492ccff54feb8de122d813d32c16e54793ee8fe1ae94760f03abd794947bb1575cc2b6e7eb144f8d9e8dfd45daf8bf9e4e7411f3c2c6654f0301495434f2f9555b77f19f1d5bcac431753d1778c7377ab211d447469d851c08258c561fbd8813625bfc30b8afec73fc02658f24e9014f989fe29bd1bb8f952fc9d16e6ebd5efea41825242245d4965fdeb821f4751c5641e59fe7efd6fd5d9f4e8450d2a84050ff897320679f5145471edcf320e5cc40ea03c87189128672bd0807978482cd7d40a657d6e18101a0ac4c71c69041e5005e30b5eb469f3a4792cfe49136b2a400b2b292be29f768d32bf77cedd69b5b042757ab832bfc7e8ba04942aaf530e201711a2dc395cf80ca136762e3372062bf2097ef666663a19ce1e5f4865ded6ab09ee59479d606a5ce497cdf0c43577c8cccdc3bca745d189c85b68f096fad2d731833c86659d000441e029ff35d781f08c805849e3fd2f932d9d5ee6cd531a9c9743490c77753e57f95cfe0bb29e46939dc5ddb1056e9b49784e2df07ccc985168df1a9b22144991e7530a8d0bcf7b5f1d5789c58ecf925fa6ab079bfe44f0d43f9ba5add2cafdfbc2f568fe9282eca7187a1adb000dbf838dc12ffc52313fbfdb2156e5bb2f10f9573b2048cfc03aae743c6531040ec28e95411d84cb6cb145d7ec15a1381aca571f068f1daf366fabba08de0b5d70712f0fff8cbe529e3812c1a7078901236f9e26d3f18e64db986caa6661bf6124fde8bffc5ffa4354248238410b2f79632a70c540c580c48903cca098772c2097fa2e44e94283913ca7c0485c7a866519816857b8d86b6ed30688371496513956f18285e0ce5d8d6b6c91a6a1c8907008d47e251a0b753426f8ebddc956ecae0a8768f764751ee20f5fe51d455147c8a7ecfa1aa8734f51d9a731d1a9e87ee7c4575ee4379de4357ff417dcea23def2468d1db8822f116fd7120947521b4f52014c8875021df800639a5437ebac139a0f495fe1d500efe43eb3fa01ddc03faf317fde02eeac143a0af83405d07a2219c0805e14528d045a0443e022df2202ac24ba0239c041af423b4841ba1247c881eb910357213e8d089a8d09350138e8412fd049ae44a2892a3404f781380b6d1bb00b493781fd126c05b09da05782f41fbe8cd046d25de48b4977837419b89b7016823bd0f40bb89b713b40df07e82f601de08a0edc41b0ada4fbcc7d046c03b0ada50bc13407bcc5b01b4a3784b413b01ef29682be0bd00da52bc19407b8a3719da0b7853419b01ef06d026f376006d2ade55d06ec0db0ada0e783f807615ef2b685bf14ea2fd807719da57bc21403be91d01da65de12a00d813716b423f09e006d09bcb3a08dc55b89f604de5ad0cee24d01da4aef0ad0d6e2bd056d0abccdd0aec0db02b4b7787341dbccfb0c6d0bbcbba0cdc5fb02b4cfbc3140bb8bb717b42ff0fe823606de19a0edc53b0cda5f3ca32103c56f948586b20d43e3917831341e99f26ddb39dadda3dc51d4fb287815fd9ea2aa90e6e8d01d9efbd0d57ba8cf7fd09eb3e88fb728eb4068eb42289007a1423e8406f90674c829dde0a7f41cd0bf520ede01adffa11dfc03fa730fe8077f510feea2af87405d07818670200ac28950a017a1442e022df211a8080fa223bc041a741268093f4249b8117ae443d4c885e8d04da04227a2263c09253a129ae427502457424f380a54c96114854b0afb122a2f868689b2fd4b5b56c651cad445c2aea26b93763ee12c33d0f6c9447802bd3f90d04b93d0fb22a277047a4d10a297d30cd1cb6518a197dd1ca197d920815e8ea3047ab98e207af98e11e8e53d44a0b79328426f374184de8e0288dea6a24c08f4b6162e7abb8b17bd1d8607f4769a0fe8ed327ee86d371dd0db6c547a3b8e3a4e6fdf41e9ed3d36a037263184ded844107a631442e88d5400a1379669d11bb5b0f4c62ee88d61d8cbdd98c687de5886bddc8d6e78e88d6c587a631c96de5887bd9c8d77d8cbc53dece5ae4cc25eeeca26ece5a2a0c2ca32f672576a612f776517615c99c65e8ece2542b60dc6197c62eda624e1341814e41390ae0af3f88e61611ecf1df10b1ef1abca61d81146fcf218f1ebf383614614f12ba488df2194614580f9ed00ccef072f868121e2178888df2223308c88217e8f0cf13b6402c38618c0ef0903f845c1326c006bbefc329b280cfb728610bf8c46158609a186975f5e2306867979a3cb2fc37103c3bac811c42fd3e103c3826881007ed98e2e0c13401e40fcb21e45300c881f7e998f1fcec17e5082cb6f33d104c3b83cb1e5b7a18882615ba6b8bfcd002a1876adf0e1b7af28c3301fb0d0f2db5968c1302d667af86d2eba60580f5ff0f0db6084c1301e38b0c36f8f01db618d0ebfcda60c86e970460ebf8d861b86e5a0060ebfbd061b0cc3e18d1b7e1b8e381876831c597e9b8e3a1896a50501f86d3bee605800f2b0e1b7f5e83d1866031f35fc761f4930ac062568f88d4c34c1301a9e98e137421105c366984286dfc8002a1826831531fcc62bca302c062cb0fcc62cb46018163330fc462eba60180c5f5cf98d6084c1b02b1c78e1378e9186612facb1f21bd994c1302b67b8f01bd170c33017d468e137aec106c35a78a3ca6f84230e86559183ca6fa4a30e865169010bbfd18e3b18c6421e2bfc463de21e0c5b818f29bfb18f2418364509157e25134d304c8527a4fc4a28a26098942952f8950ca08261295811e5575e51866151b080f22bb3d0826150cc3cf9955c74c1b0275f38f9956084c130271c60f22bc748c330266b62bf924d190c8b9dd1e457a2e186614d7e02d2d55082141403c0af5cc3b2c13000bc7b67a0deb0bfa897e5bdbda8f78d817a5de0fb02f5067517f512f5997a79a9b9a8979972de16a8979bc2b7997af9cdce7b8b7a198ecebb02f5b213cf9b02f5f2d3eaad45bd1ca795ea6da39e7716f536d28ff704eaed31ac3716f53699d65b02f57612907704ea6d25216f08d4db6782bccbd4db6886bc93eaeda50dde57d4db4cf4fd807abba9ada8b7df70f0aea2de8653df0ea8b79d3a7837a0de7efa7953516fc7f9e04da6de68e4c19b01f546a4d77b01f5c631aef714f5463221bca5a8372681f05640bd5109e89d807ae31922ef28ea8d688abcc7d41b97447843516f641ae18d807a6353d0fb897ae39b12de4ed41be190f03e40bdd1e9c8db00f5c62723ef26ea8d7186de48f54a23a13713f54a2413de4bd42bc710bd95a8579249f23eaa5726217917a05ea974c29b00f5ca334ade49d42bd1a0f036aa572ec15e54af6442a25ed904006a9f51ed4d28001ea34dce84c6ee8432f913eae450e89347a1509e028d72293485ab40a57c0a55e12bd0296781ae702a948557a154de02ad7217680bb7425df80bd4caafd0170e03bd722c1486c740b15c061ac367a0329c063ac36ba034dc065ac303406d78161a80df40b31c077ac373a0385c079ac377a03a9c07bac37ba03c5c0bede13e502dbfd4876fa1f75ce896ff40b91c08fac305408178105400ef4283b817dae542502fff4285f800e8970f41077022e810074389781114cc8da045fc086ac4c5d023241c9982f930b4a57dcb6cbff9485fcc8f10a3023bdb0f7323c2f8f0e4d8fe112fe28821427ed8be110763c4071d50db2fe244145104e865fb603e0498a12323d83e111f0011289c6082ed0ff12f43301b5e33800b31004683cfe0326cffcbbd7ce135580d7663fb42bc8b100c07bfc16cd8be9707e185e96039380edbef720174613bb8055c87ed07712082603d380fbec3f605f01f04c07d301fbc87ed03712e4030a14412b6ffc3b7fc00c5134dd83e975f2e0c98220adbdf721fb65c6105155a6e165894b17d1fde830f5c98d1c2f6b59c072d607cd185edf7f01d7a18830361d83e0fd78107366bd2d8fe0ecf610734ce28c3f675380e3aaca1861bdbcfe137e400c71b6cd83e0ecf82031d72c461fb373c0037d8d1823a6c3fcb6dc8a2471e77d87e005e4300ba8fe6a3f7b07d1b4e830d4c289184edd7f0196a80e289266c9f86cb400303a688c2f667780c335c610515b62fc3b1c8900516656c3f86c310031766b4b07d2cbf82058c2fbab07d18fe020c6370200cdbbf722b57d8ac4963fb2fdc8517d038a30cdbb7f216acaca1861bdb77e1555c80e30d366cbf855369810e39e2b0fd2a67a18a1d2da8c3f6a97c052a7ae47187edb3f0292cc43e221f710fdb5fe12aacc0841249d8fe944b9902c5134dd8be0a4f4105064c1185ed4b79142957584185eda770282964814519db8ff22751b830a385ed43b91328607cd185ed3f3993276370200cdb77f29813366bd2d83e93376182c61965d87eec00a02dedb135d47063fbf6688930c63cc295709470e51b47ae64a355998160b4a51d76d94701c664fb4a942cd9fe094a90203963fb499028d93e115192ed9b4044c6f68584c6d8fe909044b27d2346a491ed1f3112c7f64920e1c9f64b20c1c9f68382e0d8fe08416f6c5f04119a6cbf88084cb64f84c892ed03114163fb208070c6f6430041c9f65dae24db7fb9c8d8be071e8cb1fd0f3c8848b6fff3138d6cbf839f38b65feb93ed73509d6cff8763fbf46f6c7f830d9a6c7fc80641822cd9be9020686c1f089033b6df02a264fb2cd67fb07a7a7c7a56ab36b27d9e551cdbd7d179b2fd1d1d27db0fc39c309552a52a33d0f781b485425d7af2288ebb7c8bd5d2aa93b6599d9c6da0ed8c650e908852a40489138a5098dd84181eff64da3da190155d310809c2138564d0c0c85e233612b5b1f14ae250c7629b184f240a9d60e35941e210c7621dd3287368bfe88a31d833e7491b5e4417dbdbbe8de7a69ed18cc73f979b729eb4b14574b10d6fef5b0c450eb5b8b6aa64d76e25d36a18335cad68e76a18adb6b6ee61b2dadaceb1ecdc8b62971d4769468fc2255c2f075a26a3024ff64dc8595e83822be28c66f887901eed3747fb55a1b8eef2ce54f3708730e739b0436adc800a799021ad0d8008f91184d5f201926559cfacf707f76d0bc76d3cac6d5bf96cdbb6d3b36d9b0ecfb66d39ab6ddbc29d6ddb543aa91c30fc545e4ad33414a8695af7699ac6c97abd0da56d5a269f49f98c91b81828665bb2bb180967f5095b17d73d259873669964a099622491c5d878061949334724efc80c7f092e6646f6b45968955331927999926222c848e62b03f18c8591cc83b4cce56224dabded1362f9f6e878d9b7d997b3b399cd963508b5c729b32cca675a47166e27e784a1699ab67160b4ad0806cade3db3c940d92f77c4c648e49c61344612a514132723899ff54dab241d8b5c21365eae55ec8a2bcb754cfc929f154cd5c140b29db8a43753e4ae086f3bb55314e24b2fadf057a41b2b50401fb1ee9273d00bf89cda0aefe4349de42b45a91c1d658f3ffa52b46d3b715ccaa915562a5d6d85ef5e14636ba5bb5b89efb22ac68c15d4bb8bd99e3dd656f8f8a2584eb5a271d7b4c75bd11e6b1833390fb3d556f82ca75ad950b515d65695f8ec57fa9baaed9b498b0cbd5fd677a7cbcd248738d6f4c6361c2bbda38e8ebe673fe2defd48fbd64f2c5f5da6756cfb28c738ca318f72ec487bf6a38d63dda6a3ed245f1b95d7a8bc3645d84dcd145d525e9322e45339ea92665186045714b51e3cbc28b1d09025ba22c7418a4297084c9876c2467e7339ab040b0d5b1091e88a9fdf1091f88adf5061a7decd0545d753c8fdba9e10d1e86b104472088b7cc5b757c11a25b41f16e9f11b46d5376fda8239c34bdb2cc8f6e35d415c6c2082ec4f9df7ff89abf09b53e3c2e3225eba206164e5abb0bc39f63213c7c197ebb0b3ebe614e1acdae38994445796f3a40d35d1c544617eae3cf76fbf1c4764b9cf471717392ee49887a0f02b9eab7709258a4aa264b151a89b6fd275f3decaea8a2ea190c82a89425f1224873a025176528e5183ee4ac56e91ef3ea50859bee4ab5b51a000560e1df5921956a3822fece52c67320baee31264b7195fb1356fa702c2cb4c50e21663d81bdacb6fc21ccb6b50e0867be3f1cf55353d857caf7be6649743aa33f4491b29882eb6df13e1559d41c920bc219a2894bdefc5ceb2abce44970a4d74a9bc88aededaa0c9aa0a4d74f5556754675468a210dbcf2dca883cebd6b4356d693c8537b4fc585bbcc139ca32195d94c066f56e4f1b5314e26acb898cb6bf35c9a18e6d6db637b68fc6f23d2fa3d27a42a16a49a526ba5ac5b4a4dac2f6b7a7287455491b9cfe968238d41b1eb6afda6229290a5d15190944a1136c5fb51485ae5213873816ad27b9e9c59e2c539c355179212d83b3aace4457abced8be8a4c14eaabaa8842aa257ef565bd5cac970b5396c93873017b3738aa25dba1dde0709361e6021b1c5553a787d79f5184505488dc17ae5841fef3d9cb4c41cc648f6c3fe4be70c50af21f2246ecfd38a3ee264f1a592e8addb02ddf1fd04a3fd2492fcbce389be25bb5c5b6c83a117e2ef16b7e36d540f26331ae437eb5e5ecac5dc0d839ab8c4b16806379c9cc187b231ccb4b1630b2310e2369dbd78c6cac81ed33eadda9749d18d43baffbf7f59bae36a1faa9e378ed84aacd245f632292d2994693c435f1d2e58a77d4a9a0cee095d615d4bf7f558c77546dc5a35e14e3588bca77b00b15b0b27c55d08af7161596af304531962f24620c5a69c54a85e58b412c61bc88a6abbd34999ab237b6631c6d5de9ce9d636a5de1debdab629cba3b99323259d2189b2965646cc39143dcfb773acd37f2d5e76aeb8a9819e39a5079b23de1d80e13c6cc9576c1176618c5ba1bad625d2500123e2b88c3286624dd58811446b1eeb3c92983d375e7b233b6ef64bac2bdab41ec9a4df2d57732d9ae70526488c08c31468dc64d1a225063b4741b0d1e7ce8d1c628b67d4e26f9eaee99647b2ac5b1d3c85eb96499e038f1531c89248de410c7fa318e1cd26962400a8c62fdc984662e2539e3024b3189e6ca335bbd41568b73639cacdee9342b93ac77be89f5ce26cd688b2052c74c4a29a594524ad960949c6c1ae379d1fe85b3f3d27a42e16cad76bf340a75fdedc931f9d9d37ed3eaec6a85cf126ca1fb89d08b2096a006b174937cc9b7ac7ca8da4bf225ffd596152e4c5765927cc973b5285614f31abc325be858873a57148b8fa015d4b91a863bca8b5226c5e678a5510b1d73c9d7ec2a4bbe5a56f8dcb91a865f14631af36689bbbc4c9243ad798e7597974672a8356b958e79e7180a8d6d2669245ff2282a91426e2220ec3772481af14b26f14bde4826c537a167998c3373d82b8d6492959f4f849793c2a6498dfd12edb7adb6d816d925d189f0560e71fc925c68998c0af0616f281fdf849ae53527c0c352cd6a45594455e1718ca7d7b292bddf350c7f39ad2b7ded5a1513e3672f8a7991ca2f87bd6980b0cf6fb20d3e71c26ae648c3ca7abf44db8a12ad7cb4b22e892d23653573b4b148c422197b03cccc6fb228e7d43239b34cdb9cb29969dac66599b66d5c97691bc775a80e5dbd32f213ae9a4832dd994689d1a48aec090f27344d4c68c478e3061a3132242060a904e7cdd436aeeb50280fe579df07a2bcef03c1542aa55285618eced4d191b1759e9c98e274ec28e59c59a6cd4cd3b68de336aeeb5028cf4379df0782a9940afc3af5b5aac39c9caf7576e6ce8e8cbdb3f3f18ae90db9c78735592c199b95e3e9f4ce6ac5c3d3e3337d7c646c9f25b8258e73a69d92e21b0ec016b898f7133ba66e111d68d994a96b84071eaae366ea1ef1414ea84a8159ea8671b17c7a78563b5aea8a797dc8064282b4806ca98b04082fd7071e74f0c341e5525e085baadf3db73336f645578c728ca390f62f463bc68c64bbaceb0ab27c897889995297df84979f786e8ff971fb8c10becdb4c1ed38966f34fae0463496f94a24cb573259beb2e9cd925f09473a49165cf0aac4fcf288f9f5b13cc47207963fb00c64b988e52396872c9f601905cb43f010cc675866342c7fe12f2c040bc15ed80b77e12e1c0407c102e03e2c03c140f00ffc0373612ebc85b7f0e5cb3eb00fac85b5700f3c86651e9807de817760352cebc039700e8c03e3c037b01d96f3b0ac87653e2cf761d906b6816be01a9806a68167e0195806968163e018180b6361181806bec257f8057e81adb01576815de016b805aec255980a53611698055e8157e0293c85556015580a4be11438058ec251180a43e127fc849d301bcb4c180dcb318ef11b96e1b02c87653a2c9fe3e7304cccf93f1876c4f99461469cff625811e78fc03030e79bc03022ceb70c1be2fc280c1bc0f95518f6e5fc181826c4f93730cccbf93e30accbf95d1816c4f945304c006720ce3f9cb99cb79cefd987b396730f671ece3b9cdf6e18a6c33987330ee71bce59ce0138db70aee14cc37986b30ce718ce58ce309caf9c5f385b39bb706ee15ce54ce5ccc27985f394b30a6729e714ce51ce50ce4fce4ece9765308cc9f9d20dc362e74b3618d6e47c1907c30070bed7609346f3183d8a493c12e04ce851f7f1687427f4a8f978d7e04fe851cfe04d8343a147bdc75b068f428f5a8f779ca7408f3a8f770c2e851e350cde785c057ad477bc5ff029f4a8ed783f7d057ad42d78bbe02cd0a35ec19b05a7428fba8eb70a5e851e351d6fa7b7408f5a8ef71c77811e350ade29b8157ad471bc4ff017e851c3f186f32bf4a8df789be030d0a32ec1db8d63a147cdc6bb8dc7408f7a8df79bcb408f5a8d37093e033dea11bcd3380df4a8ddbc45f01ae851a3f16eba0df4a8cf7887e001a0470d82779b67a1475dc6db8cdf408f9acd9be938d0a35ef326e339d0a3fec05bcd75a0479de6ed81ef408f7a8cf7d279a047cd817707de033dea0dbcc5b8167a64df1ab80ff448cb7df8a5473cbc876fa1473a7c8773a147383c87ff408fb2fc8603418f6c78002e007a44c36b7810f44886cff02ef408cb63b8177a74e5305c087a64e52ffc0b3d6ae12e7c00f488caab7c087ab4c2593811f448854f39187a94c2a5bc087a04e5516e043d72f2273f821ec5cee4de440a1b8c33488593af30ce65e0de174779711003ff2e7055174f9d790e170f2df01d33d7d9e23c15f88a02f7d1e23d4aff91c55913780b8b0391c08544e04120f02165be41d2e915ff03ce8115af55bc0307fca701ff808a7b40e62f06dcb5808730c54190e2400a389104bc48141761cc4780e2410878094f9c04277ee4003762800f357121a49bc0c489967812258ee4e82714e04a08701492388c3203b5d12301b4c724b468d4bdfbe8ba06dc9b0fae69e0bd67e0b50c50ef3d50a8771cf0ad0708be63f0bdf3f8be371eaa370c54aaf70b52ef3b52a9f753cedb8e9c9cb70bc2770bc266c1ce7b053b3b6f15e8bcebd0d1793bf1bce9e0e179cfb17acbb1ea14f8bc51e0e3f33e41cf3b8e9e9e379c1f6f387efc789b80f57e83c57abbd17a97a0d57ab701e4cd061020ef3742de6b0811f2264190b71a4182bcd318f21ec190216f116cf076b3c106ef26fa4683d27708fe3ee37fb7e1e00d020e38789b51df65d4fa66eae0cda6830ede64fcbcd7fcfcbcd57cf0fec0071fbc3de0c13b8d071ebc975eef315eaf77075c6f0eb85c6f3128f39110de1b082184b70640b8050184fb00742d4040ef81c8792042e43b14b90e458a3c07118e830822fc86119e6584111e80a0db1014f41a4a380d2594f01948b80c2490f0188e1ccb912387c1c8af1831f217866e6568e82e08bd0521a15731e1544c30e12c107d0522a24f4972159224b914244f21e1af68adae55c2a77e25ac4a61cc58495dbba2aaadd5306cc6089cd418c552f5f2a53281144b318e993913859a2932c99764e2e2b25bfaa82982d0fb930e8cd2f71e99e450e4b8308c49b7de08dfa49c8702ec4637dbe09421d6bbc7a094dee219f9269d7ad88d76b64127eda4c8667fc271cf2a67b5e5047cf65614f0d99f80cfea0f036d2fb23cdfdfefb45bbd5c5c1fa2ed3cea91eda45ef78f7a9936aa6124dd9f6c1c2b65cbf7167128b6091284292ac92da29b309219135db329bc8d34468b747a62a712be8d7a36a3ac068f38eca49b8d1404db54da6e6a92435a90909090b46c35fcd17146bea65a18487ea2116e473e2d5c3ca14f0b2389d67a445a1849085aa995e45037352935293529452109c421edf24635627881b445bf91c2cd49483ed6668a6da24bce33c2ecb79fac7c2cc34f37263dc5a4a7a4d9268ccdaf7ec775d30f392977b7c83203f551461a12526a342c1da6146464645480589f61470569a1536481309878801b2307ac792316c9e091220cff1f17117e176c0609e274c0092990ca18c11a0e6ca1460d38e7e030613dcb6be0a081192798230f11b4e1740124353114cc130ae5acddcdf83d45bf6bf472b1da7de86deb9303de4b51364c676cffd3a93e71d5d3b3d2ae23ed96effd948e0e083e07bcd4d101bf263cffa4b4edfb54297d5519465675d693d59ec304c76a4fddf3bcfec22814e441d82fd26ec9b9f6cbd90dbec17ff05cc8876c096265534fd52daa87577dc7e7a99ea7de200be1554f8aecea2bbba3b3a3b3a3b3aa2d9db7a2f47cf5273dab28abebfcc9ea3a453baafbd0ab737e0a3c5fada0face7768caf31894023ebc8a5e2e2ca46aabe7a9eb7ce7216df57cf5cb5995cf6fd8eaa94ebefbfcc9e75339ba563eeff9139ff7548eae22bbaa3a557575cea9ce2094b63c5f12c19a52220ceb79aeaa5b78beaa5b58579dcbcaaa9ea237ac5c5696a7cee8dae03bacf387d00c94d2577d82515895a36b83d4b7abea15526774fda85372ae693b4fdd4bd11d3aa32bf5cefe814e529fffc0282b3b9fa241acecfca20bf4eea574b0e194abface537546574ebd6276eaac777b078912ad568304497d6ada5c0ab52adfbd2696200b28ef3cf472b13cd7a1f2071753a9a756cff9ea3a4fd19dd439a69e7af7f8fc49789fbab23ddfa9a917f17c15455ada962587e463ea3ba9af2e73ce5128e73fe273bef35694f0ab3fc9f9aac8eed45614d577fe24a75e2eab9d148353da82758bf72f8ac7a343b7a4a4f494ce820f57aa9d9e9d0359e984f7ac9df0ac68c1fec7b4f424ac37daf03faea2d76555dfa1178bdde1f9ca67e73ae751e9bc1564e73a074239bbf31ecad1b57349574239adf79ce31090fbf03c27b4aaf3bc4539be78eae5accaa7de95ddb9ea4028c797ead5536f10bbf315fdb13b5f225594f530e7dd7fd02e5b1f7df45103bbf3083a69bb5387680b3e94609468c1ba25f5effbe7240c4315db54cebf7bf14bd1fb1d2cb22d9db756ef7991d5a92d9f832fb22aaaf31daa4ad1cbc5a60ed227aaefdc874651a5bef31efa44e7aaaf68149dcad195ba2acc39ea3cf422e1a4c8b6c2b7a2a8befa139daf6a910d6b2bcacec33fd9d1a9178bbdfc9cca6565bf87aa7ab9ac6ceafca25b047ed4fb12d947d1cbe462b16cf99b2a14d9599158c5cc0cd1b6cf63837a62e0f108f277da3bd53cb5b1215856f3f4000936b951d62df39185f9e44b731c6d8309279745898f5bba6ca9b186657850d8b67c4b39c44232295d3d6f63562f8b2524e4b9a0e5ecc9e5198fe338ee7c4ebec555276c34808745a1693571e848d27c4be102a339a69d8842acc6090e6abb2432be40c3de16c3ce2663e73994cc12478728c41f98d2f6490958105d6cc1c8a13671962420e45aa8a3bc73f62551d616aa2e89315140781b694993e12529a84b5498e89a2dee8baef9e944288faa60a26b6689aea94374cd0ffcfd3ef9efdf515f12419a25ba3ef0737e1f0f3512bfc07bf740da46140c0d135d134c14f2509f1e0aa525bae63c982814260ab5d19c0f627ed2934be4eb1a2f851cd7d51b6e2c9656b32a43db84842ceaacd3c37bc2d60d7b3f1bb5a0019b2cdab0d1220f1b9940cb6c30c0823cbcb981b0cf5fd7755dc7691ba77559373bd9655cccb28ccbbe0eec8c8f2ccbc094941ed0deb9407393b5013c0ec264baaeeb3ad971ddd6a1a0755937bbd875c75c97bdf3c2e39f2b9b6cbc97a5940839f97aa3a995f8ecf85c306527e5949c9452ca29e59c5293724a29a594724a39a594524a29a594524e29a794524a296527a594724a39a594524a29a594524a29a59c534a29a59452ca29e594724ed952ce4f32330a155ae17953ce385b8620cbb2f9cab2599b8f64d99c9a9665b12ccbb2a9695996cd2c9b5a9aaf3fefcd39e7ac5f9d60acf1f8e7b65186ca3e1a7e755659ba881784171a7af5b98102bb5696c9b0f193cfb0f1599ac80b238131507c7c109d444917898f6b9a0b57e34e087ed03903889c360208411084ca8c2ea932bc804c427c6cbe78640c00b566884e0d11dc07c06c1e28424b638477040a61606226d8e43bd1094868da46010f8c8f0b909b1bd7a1b840792078c6fbbc4f03bf2b6124de3d0f85426d4d322e52280d04531a17462aa58a3f2e22413fcee8c87121672afbd6a9c26e30c2ecb37bd498d9ceddf95ecc8b9f27bfcdab7386b38d8c8c8c3a225ef312f4b2cfb3323bd97ca455e5bb772c5ff58e859f6a22ecc271b8b3932d8a15c5a2468fba87f4c83bcb172a751476e138b1ef9f13e9a190c84029254c3193691189ac9399947282296eca6d6669c8ef68fb128f6dd54c5fdbd29f513cd9679b7d66dd5d3faee1f03aca3937249db6228aaea985463569bd6c5223d203dbe77d5b8abbc631126ee388f849782808f98a42fc011b83e027ae43695d371b95799315e427274706214757967199e76ddcd785f2c5c9971a8fe338b642e1fc077a6922cfc51f171122222213f815ef840fbb29894d669d5b80b179ce94f6ce403919a59d91a06cfc6a0006186080010618dd603003c9cb4c36791de59c4682829444908868669afcf989b85cdad6744583b0e6e77199f64cb2e1c5f839e7149a32c62491bb638c91636419a3161e47e618638caa28639493cc1c692c699a030e4f26e5a9449794f24b229539f2d06112e7a083891e230540d161454e44c118a569990d146f50793021d78000101972d060fb8f1d1030c3eb078430cbe79d263b123099cc98c929ed384a695b8d31ca28a594525a89dde55057a9c857df0929659a33dc58a9e1112e098a4c9cd080086cd4661683c0b1319e1b9ab118441464446ada7c10b7a9714153144f5cb889824c18643035c5a207d460b1c6c6ad562ad1c5240b579b96f1520463e0440fc7c6684d0816e0b39d81c08eb606ce175f4646539a702eb941493664d82095d92295252c4d56b0b07953825076538c910919467392603bb2920471917e54a38215e458592f971f2a6842266bd0c4fefd892249be580be2b82f5c31b5acc6090e7b79091c8137bb98596cdaf462ced56a871f842535b96120ec67dcc4c01683d0155d2c7b4ea5397baa48e07933d336ae4371a899691bd76ddd9b99691ba77133d3b66c73cab4a9cd3251c6b814673ece5926eccbd83176dd91e98eecc6f299638d55862b8dcb0497656d041e72053192797ec8db17c44862c798da2a3390762dbb4b5e976d284d3d2b33d0fcf4815ff17784bc4727a1c5698c16b326420ec08274c39e38e77151a4a9a2065b98600f3563542036d3849126a5b2aca60e0b90f1bc5e220d060a80fa61adc21f17919d5ea30705ec3c91a0357420c0a22cafa1e3889b0bc888828c048541d3011ca0c009cc38801c2808410262f301411b1e414137e2fab91122254029cb6c105087075a565347994c634197a68f36380fa503e79deb3fff8e9890c38e2c922c20871e1140018f042ce1a1001001403078c156c6e3b22ab40534010b011b718524148c595a92428c26181bb6b3f32c20cb64cc31c6ce138942a92035751865aa197c6dc2d6f6ee1c6b6dddaf64efaa183356ba6b17c3fd8ac6b17bcbd125c9900983f4f93ccc6c6a9fdbeb85389b6c677b60590d1d4cd6b3ac668e34f63e4816c0e32261bbe22d5fce11c63683cbde5ea6e51234bb242b9f595484c271ccd473a65241444141fdd439160f7e8694d5f4609d6193287c2ecfdf6fefc1497013dd1d8a1cf2a93c2c961786328af00e96d1cadec3ca9884958f4d58792dfec62433aa2f895b94097b0e7ebe9d643fc9a19d4b34acdf982473c21b9158b59da44f65c9f15496af9c1a561abf43b5ebd0ec1fe59090905694633b94633a9463edf414c746238e798d460e493472886368aa4c1182b5cf28492991de62f96e92432deebab398eeb1b6f8b1a728473a8f9ce450075c1a5e88ea386e2a6ddc0781b03f359e3c594f5b66a0c94a75725fe823b92f0cb7387f640cd4339b3da95b5482d6b3f118e15661b783921bd7a1bc4fe7f3501dc7495ece866220be0c559c524aa9c0f0cbf1503bdde4429eae01536933d2a3f964acf98325cf1f5368ca68bf805262922c03f265d916a717cd414215112f598e39213d3cab1d9d9c5095023f0fd5719be643c2374b10f69b741cd76d2b08ef67b77fda547279d04532e982b0df31104f998aaa4fbaa0cc2c419714f63b6020bebc23070582bd22ecbb644700bb111101a18bc816847d962f6947d8ef18888958ee1e10f6519d151f3865cbd445627b4916847dad8bb4edaa08fb4b84ad8a2a96a95b64b368b33abb083712970539e6b24cd2946acb2606daf52ccbb68d0b73b62959324b9dc99a4ed8fc659c3117266d9bac5f74cd15c76faf73409c7653414720ec332779224f79449c3ab8e38724e3d8ec9901c23e171967db36aeabacdbb66dcbb66ddb38cb7cbe8e4c9cac4f5b4167ccccc54e0afb5cd754fbcb0ef075dca665a821aa0eb32ccb64e59e70ca2ccbb22c8c3b19cf97c56ecff8ccf33dbf85e997ccf2575ce58c47e71ba31d85fd269bfd0d1c27a19051dec7654b36639a4a4221a3bc8fb9af7aa80a2e911de5c24f969fd32b9d8f7948c5427386aa20f9e26bd93b06e2f9ad24cf16dff46cbd4d9fae01ecb1b4d42db2a89dc973f5499e4f28e4ceb22cdbdefd687e6de78760138ecd942d33330ad531456d2899a25bf78c369a54a3a14b6497cd767c6fdbce20dff3da8b2e929de96d999d63a133d045b27be746135d594fb34c8147314da3c9577dc0266d46c86e789e8c41d859b76d537e994dde966d5bcdf842de65a1b6cdabdbb6c90c5539e3733a60936ce3b68d59b7a8379eaffb380a71578ec59fcfe6fdf89e717616d884affdf83a2ac27e365b3208c76d51486f30b32ccbb80ec97a42550ad5715b8f2a15b9864006e034992aa24b765274b964a3b1f2721c342d46b7b1b2c98009d364ba0a562395d83662fb974810f0b358b8c334192c72084c87a83055c97c4de6dd64ae6a3260beaea8388da6d1b01a56c36a5a7650ac19a38c1517702c0a96d758408df5c2592f5f381befa5cb46032323fb25b4a87f61d98ec91b617fda53f5f2e197de348bd4276512b9a3b8775cf5a2020003c95b2e22ef75901cfa7e899e3489aaba04fc7731de531703fefb77f06252f72ee63bf899baf72bdf41efa95ff1beb37ca52a9b8929d79770711708fbf7cd1c95cde09421b6ab2bbab62126bc74cf4be7a53f0a6df627062d892ef93642adb26ac84bfd784e6e6178adfe4f0ce55010bff8cc1c64198c6a720d8a2ea2ae44d548744512f450188b4b22d3bb9a42969125650c830b6369b832ecf61bb21bbb7ddbbe24de20bb8546a2d0edb6dd6863379239fb4946799b95a8e9122542dddbb62d417d63b150754925a24aa26b0bad1b2652128780c4b6330f31c1830d7e3110dbca682b9b4e6c44dbb7cb6da1dd184ef6028f8b6ce1b573e778283e566e869404a17c9c614c22118ba2ec2f3cfeb9dd8c72e81b82b3d987905e74ee253bfa0e65ce39e7ccb85f01c1736015b3fdab1c0b220a0a3ac7be4fd5b39c7970fe9b5395e56cefe6d43eb309c626ba0d8a1cd22ac76281356462f23ee7ecd9b3e7e4e637439d997ace7526cfe79c73fe98ace933b59eabce3f2aabb27ca52a93d743bff350ee28aacd39e79c3d94633c9463e09c73665b879a73ce9953fb8c4e6d25a4993373bc6ccea933756aab0a78ed57b86b1c7731dbc1daca39c7c0730c9c932955755453f56cead4397b765f825e5ad9d675d1792a759ddacace714e4e394e9e47cdb4c031ef2a4ac5ab4747dab9f7544dd554cdac52d96a2bfbd6d556565b55be6fb7f27dab61cc640f03fe7b56ad84d196c4a609826ffbaab5738eb5766a158e8d59d546f2e6a743379bd1686473287b076fc53b58c398d9791879ef3bd50aea5a0d130fd2782687724646f6a36678cd05d058069bb4aa80ff7e05fc57c598b112ff5d8c3cf82bdfb92a26eaac8caca7a2a9d94d6d6e738639f3216daba2a939e7dcae75f750e0bf6c7ef3dafc36e73bd4bc370fcef92511a41ce358b7cdd9533e7659d18604571427ab0a97cb256726a594524a29a55482858638c431577449d7a3507d74c9ed9c814d32094a51d9d6a8253239a1a0e8925b4e079ce4081791433befff7c8712c9977ca99e4337caf2f505b9baaed9d57f5ffe2775f97daa1a655ad533508a661f7fa290aaca67609354fd892e792c1294d193cfe4e519e190958f5273d9e63a6e6e5b45c215330384cbfe4849571c721db784116e8bb03f6bd0b92dc247a1ec28ac44d115330a84fd1bb4595eb32486bdcf2caf4941996e293c6624b7c88ba3f16041a49f8db4b3defc8c6ca49ef5b24f6a9f8c94b35cea1645bad9a2d8dd018f1934cab2ac0d2361373c34c97057b04b9e8c1cca98e4bc82853234d8cbd0d8ec9c4d50a418934d392b9de48bb3738ef0664c6494502ab0f299193d2499e48ba99344232b259c13846d58295f9908229fdbc232cf49c4728353b26e35b6a79d6b4ee046c8248758ac3064c964e54123cd4cfc0dc1f25f9c84eb22f3fcd943a97ecdf3fd509dea2123fd9a4769e7be7e7147d50bc4decf72bbaa35d29d244c17999fe716aadeb97a817c3d84b297043b2fd3c0ce47ee0b43d6fdbcd76593af5dee7e5f98db81ed0f6a608d8c8c8cec6ca939419d8bad34b9da5da35cbd4cab75dcfbd9f63e8aae8df616adaead145df33cdd848d145df3596da3e89a9f6dd459c0e31fe984c42ce880bd20bcc21fdced640aa20bd5e9d808c4468efd8a9f73cacb735d8efd61a984f334cf78fc73511c8b71d1e24638efc96ceb38c189822c524497548a2ed95b34951eb7e2bc9d8e1d834f38ebe5780ddea39c9d69843726e5806738abf31cd09585d6f7548d473f85495014b0cc064969e707787fec1651bc022dec925f3bd1e4ab4e389b7d358bd49744a130e3fe4529e24bbe23082293f6a6710c03c97b138d707bca9024c785218bd57850279ced2c52f7e21723d864fb1be1b7fa58adaf9f3a09a751002bdf2f6024784421694f08bdf77423cc1ec7309218c7b4f5ceddebc06deb6d4e54b3133b699aa6715c7c7c07b2301feb16d4e751344b96e8cac2706213d296058562e17b4b0ab8053cdb26a4b9fda3add402cf36a23c6f8bf3f4c48a2e27c2c7a47e62eefa2445189ba2cb354b10c6a628c44af195c4e465ce5f76622424242d69429da6a6262a4d394a4a3b4d394d3f7eb0c0ecd9817c20cd42fbdce8109ced473a443804cb76f5126304ca7011edac4bc96a2cd88f348bd4357ab4c4633ea958639296a4699aa6add1e4b46488185a18f192b41b056152ce76ddb26db46bf422dd12c78cb9714cffc7c6c96a9cc4df223b3b8eb96ffa2cb69bde1f9bcd548d6f985a1fb8655f646a23f46a8fe16a23b1a1593bc207fefe585a396024251c00290ef51316d28a4d4949e93b179745c5321088116020f98d46098034a9eb1be94414baad6459c0924734d82a1e596d5a23f484c20f75907276a3ac268f03d88c463bb1d8f8a63132498e73b2fdd8ef938babd5cf5a7dce66d7c8149562529292929212b5afa7119e4c78fa34da4b4da5f5ea53a7f1064ebfe926351ae929494949699b07abc7c1d74f46be1e81953f58a89bd8251b019d642ac5a4981493e420417823536c231fdfc8a10e3ea1b0df4f8c647b2c83b71a9918680421c7d80c1490f166a96bad3f8c84875a6973590eec9c276d88d1c4145d31c9aa11ca6b71a60b344b488c24abcd40fdc8e2739e162dc7a614a1f6548c1248b5e91a95628d494c494a5a7411c3f068b4de07ac8717a37aea62580f4fe4dba1ed868144c040f291f60818487e453b8de8927f814e38ebd56e0acfba98d45517139ef5d7d760ab8aeaa95f613dbcd760ab4aeaaa5f495d55c398b1a23aeb57c2b3543548bee47d7e83622c333d3d0f1201a7ccaceb502814d8d373d404016cd253639b38d44ff225b9348cdcb032a6c0ca8734f2d02cb41a25105ff2290af4ad28af09638cdda120580ffc9298e426d4a93da63652925223292929293d71f66976247c415fa4b10c1acd000103b5a1247071c536d19546d894b3350b2639a4d556922ff92842cfcac7368c445a79f90423e95ac043fd14cf603986259508f978ca8353237c436a92b35d23d30854d72e267cea6254d7be294528c68c15edaa8b493dbc18edaa3769f5afa41ea2e3a8b48b97c84345e8a099190000008080004316002030140c088442b13cc9113dd5071480107c985a74501787a338464114859041c4184200010000316468684a1b0035b56e440c112d12e3df6789cd13a19b4e8df83776fc62847fd75ac84bf66e0d36bb2bd61ff5a84abef1a7013d7c2a5e16d5eb4c785c0f6d431d8d0bab2fe282ddfd7a2d08307ffd3232b0deff8879c1a6fb63424a1440bfeb35461715aba6abe5e6cfdf2555fe463dcfa6e7cb27c91c799ef7d207dd7e1c9a33e44d56acafe409c8bd204674bca2fa27b9e5368c89e1286d09b62ca65a3278280799b9f9082eed4436b339ee858a2cf17eb277e7ff2260fbc741857b5d77df42a5031db026272ab15ddaa6ceb485d04ef8f6f4f63660915854ea5221ccc4228a346e63b3ba9474b5a22cccfafe532bf37ec70788f182afca4bbb3c21417e10146e3da0a1afc09e94166b04b94e97520c90d0c2adb372b47b06d66e79a8a48ea46015ab301fec96b81748585ea2f88f5ceb4949b78e2aafe75757035d2e0066fec31d3b5983065e17e9dbef30accbc5fe90a65dd1982eff595bfef4c8a25aa0d09398824662b440034d6a5499945fb4dc4552bb5d1281ad31ccafd06edb1cfd057d6ac3f67d44000028af3c32fffedca3da58dcd421ac83c071362f2b902ef666540f484f0cca0ae96d9398677f4ba6b4557baee9af7cef9aa9aad5aadfee8d6ae6871f2e0a66a6f6442a83c2958976155d60750567ceecfdf792bd1c1f475c7951622bc4c90180710a83d62ef04040299f4df1756ce48e134ac35935cf5c67e0c9e31131a36d60bc0efcb941f88f6d3bec3075281d79c7396a5e201ba857d404b878bbe4a0c6db2716ebd4e7cf37d4420cf4f2cccd9de650aafa735ab37001348996d721f433cc1deb0d72cefbc742fb49e6763272a6a6232b3108d68fe3266170b312769dbdd67f742a00f36626549a364b1015a0790c1f5804c2dd60ca339264b5944678a5b934149aac5f94652528942f07c0f8a500c06e18ae5951955e3deb6bc334c4cf6532de14deab5bd9457dbaa5ad509b1f0f4d61337fb605d18a67d9549f994de336677847c1fb1f6db8fe07152678a145aeef76d1b97a891c02c60fc01bc264b59d4d2907c7c4b9f8fa9dda29883494d69dc2a391a926cabcef518f6ce441a01984389f26684268c709a40596be20ad6206b834510d172b5b5bc0a9434ff2f946c5d0a5715fb93e10664cf3bca86ea65addfc82fbdb52bc62d3be252e4257aa1f9500452a1f96d5ebb7da45891b68afb9643c4168f0e735a462703bd0c5a0061fcc48b532703d3f68ff9a1a112f36313fbfa84b35042a23b4d24184661d8c3f948d75acb0fdb178bd0b5d2948cbcd7c1f7c2de07d803c6a02a5c592a074cc99969e8ae0b121d8dee9d74e35b7909eaa7aa435fafbba2f4bc8a3e3dbdf40ea216705c9bddae74c22be323869cc37c8f238bd8961d96e4344ac883348ae70193201c27a71600bd1d41bc420916bf2196f16b683b00e016690b6c0e074bb822e785ed3b80052f145f9ac995ea4a8e097af8c162616fed41294db1dadff24c1d2a369a74463f4b1fcec2234009f71a907b8dd0405a887f9c1dec059c90e1241fc6ae4f82ef78752da11c9ef7bd239ca9cc4b67de361073037c48e209d6020c98b9116e2d3e1aa97440026128a2e0ba97edf1587d46d0792adb5dc0333308b6202ac7bad2f6bcb0336521e7020d7ec15249cfce822a7bdce1cae72dc98f05392ce831493ae7d9233e33351ddc2fcff4262f59db0e13bb6362c019585e47f919d3820a6347c3751ee9e8acb5e58a7e2c8c27e835ca3c919f640f8f4b0f3b65b8f805423a24772b03b51b0485bdb68e64da1d012145048f62044e76f3ab8990be6c272a12045d2b330545931e4c81aa2f1c76a3e93226c49d57fff02a7910a051417de90b30900ca0f5a150a7277118dfc973ae24c204b765a5ae1993e410a104873e0f2cc8baf49f3ba2252a67d381e30d5a36eaa846d1a82f6b96c4d092c479f63c33854f7e576cc543b3d533530ba1c4b403239c6002b379761673d0ecfcedddef080d7b24ad299b0d880803ba2080f39115c09fc246cb5bff59be0fd67cab83648d338cb797747b4a422976e72c67207fbcbe8438c5481ef50809201adec19dbc98f807bccd24009d6a0be13052e91ccd4b7d58e92d2568d19208426894ad665c235cfca7fe24375ac29734768962ed97c6e71dde270c02fd52a5bc140366dc5af960ced8499661931627bec69c721c4d8d868e810f9cf45323a8e22108fe6441445b9e72b48bd16406ddf47a04e042c28bb516e17364b10a414d93fe45e5e1ae2cc37667d9275981f15099f7226c615601608ae30f144447b36852b520c92ff17d9d93e71a848eee2384ad9055e1de9d76ef6b419ecb6070458a16ed238358beb219ed49cf901036b7cccfb1a22f4142c641405fe700ff2c67e3a11313108b90424d4c555ac222083768cfd141bb6f1347b2b0c3fae87b1569595f4a3ce8ddb18cebe22e7275f4bcd1498d0b96c3434b0e89d66af693cc52ed876f4a5f4a0be88348eb8abe54f686612ab9d31ce973136df39ac91470e92d3bbf258640a49f243f7d5b90452df45fcc6047dc66b52531e5c2850688bb2622568c5d5c633eb676692d1270060cf0853624de0e0387a157cdc6af70bc0116c9a5743deb570ff3791ddcc1844f0fcff8b3dfbadde8a350a4d994273c141bd07a5e64843443c0c9cd43822c11edef329d163cb66e118bc1b13a52a6f25eb053dbb41dd4bbb5ad8ea6a29cf8f6088c50a4890f8cbf6f543e8cd477b001e29245ce4d99f272a526d65edc6309d5066ace9c3f4331627cc67cd2777b41b64282b9ce679a14a71636654ca4939cddb1ce8a72de74de1f3b2d77af2aebb6a9c28d7a3cb4ef27ce53319d6c539fdda34979d5fff7d4173affcbc467050ad998be36aa359794a8fb10c57442b8fe8894232ff908826cd17413df0035158daf907a1ea07050ebfa1520e06dccf4014dde6002be5264ab0ed1fb60a93320cb17347334e1c869807eb192dbdf1bc2763848b3ab3b60dc18d74abae913596a13ec924d92a069e18d50b0b7d96b06940217313655147a639c6983807d3bd32e327eeb9d83f89a49790a1d7c4d9ef26fa1e63c4da2cae498162386acb438175222bc118c43a0e957cad81f3c6a665be2f94b7f215e4affbdbf49a2bb49e2ca42a53a247cbf9d76fc040bb266739cb5c98ae471f15803f8c60168669aaacd94a0c73e88734920ef4c0a863f89baa9f19bf15c2fa0549cdec054b6d58ecce385d821801ce5e750b55422ef9f0b478d31053110859f878008f7f81d6ae8f389afc1234917947441c8412fd40bb3ca68ab8ed6f1e7b088e7db8a7ea1b72640f05ad27ff1e0c4a5bdf29b36b80d7a22fbd66ecc7c33b88895ff1c1d9c15ffa39ea97255bbb7bf2cc56f6cf7354fdc07852a887e57baa27c7b75639c7b0c0578f94949786ad4cbed5aeab9d208c23ac99807ea0b4c9f498befb83a57206ab85050b567b2704c16e44611ecac0ea7f082c08e55d0455ec5f4004ee53521ba046ba6c369824e2dcc12ed5411b4d1d8db36258c7a5bcb8a658f92f814de419f2dc69b603961c25767e4ed7d8f9b521fb8aa02fa8b3fbd8c5b712c5abb69700c288adb5c1031272568d721508c4da1957eb6d44f637d39fe8f0db24ad694b090d4eae3e87da86272c17ead6d977a1a9e844d7d245ed1f3af9ee402d0250b54b169f6945c3acf550852360a8d8ad50edff4ca8bf2aee801d7708451704335630d4a1bb9f0493153ec2b05b22e9db5c8e6e0a04b9b82b13478feedcb60b200f2e875151e1abdd94ac242182cb0d6982290a5af4f15e0824710318a08984aee25a0de2eab4002369baf7b0ea086feee229ff2ded65ace0bec8fbb548a66006366eaa3311eb3684ee2b1077ac48254c4f7518302aafaeb90850c99b1fcde72fa888c291fd9d5d3dd06c13c1e514fa79aea58423d145788e044e87282eb392ab0c221896992f5da763d8075dd3038a55a512853b108f61c2b462de070a95b505095718b9075fc1df0763b48512f69998b5482316edecbdbcafa6237c37c6acd4852a4e036f4599c7dd2c1c077978e80ecee2943dca593e33444edd59f81688e0579a9ea5f2e73c4b5af00d1b3524cc48b3aae2711836298d1619b8bdcfec844cdff94a88bb787eb3d45577c5f161af12268c7c4bb861f625c04b801db117e04f50300eddc9a9898864ecb6c014c9237dd520a43c88f6a1c769f737d268e1b20d58f3a0ec335c885a9f574ad61073529675648833d77bb93b031096f098e5c50586fd6068672536e1510eb55fb19de3f66b58792764fb3f47aab802be7d17342b6d414a3ebe2840daf57fcf7b76b66fe1fc466c4aaabf21e57ec319714f38f0b1c8072531ff005434537098b11e73d1a667646a172fc1fb8ba552fe6cd0bebbbf5aa86ee16045986f50d8608a052e805c783fec5a27193c868f1b868a41cd6ec8f797534dd7f3a09fbfb1a752dd53ba3915a42ed54f4d05215cf32796d7c2557838d36f1210d2187b77e9d324ec10f2113b0ddb32200070111ac86ffbe490ae8ab4b87f4f9d007c480afe040d7268fdbe7de67aec72a4b9f9ab7b13fcac2b9ce94e49735844ebb83ffd84449b3be48ee8598009d58e88852c6953a06018f769c1ee1f6e0d387921fa6a078f115f864a67eae11a8808838177789d9a5f7a5ad3b1aac05b010c54e96888b7f1cd890c30f9d31a9640293a2bf2d59e642b7760aedd50515a554e779d7487447b52277f77423decbf16c0159e435503a18165f595dce4e1a2c1e97f31fd7535f32f80b0f467ed61e7ae459cafea5ef448a7d417fb82f9f07b50b8611b2b82cd6aedefda0a35793585d9b16ce66697469b5b9a781f2b7dbfde9ab87c03ec5cb5b2ab483d5fa22914ed4523c88171ff70ca131843cb0ac77b180dbcc67b0457b22b0a0f06ac658a860b29018624469852d03ec715b9c9e9add8e57d6671e913b3a150f062b4b0a3a46adf01d22029d1523689789483dc408ca6098a3ab0ec4e77e3a669299b29235b4577b6bf6865271a0d158daa116f1e75447bafd86447780b8d412ded9d1f8ccb12316f5211d1bd24e456368f2dfbfae0acb724a196828cdef54fe88ecd92928716e52f2107325af6a1ae2cbe4b8bddec44a9443c52f9a2057abd621d224b9c230f710142ac7a814ce36916ac2d4328a3ea53ca8d0b1c6e3958bd1ddd17ed16b7ec6883b38c00fc71394b3406240c8225110b79e0f59823764d55d7240bbc871dbea2f37f52cbbea20954402d8549be48df97b8a0394a20963a77d337feb4f47b22feaf3b0852793351d6aa6b59f8f6f51307fcdfefa25ea6597e158e67ee7931e4caea7983d3f84a4ed1c473f3d72351c88b49aee4be1079e40c811fa756c19f3aa5b8329220bffe2e3ca47e6ea28c49d4988830bf5a36ace94568be3d6a0af48c6c3ef7e646daa27d71444c080ffdc082dc26273e2bfa73883e53b0c00e4952cac28611741ffbacc33cd58ed26cd766e7fe19e2ed91c75a5930e030fc2b836dd22bb721de6a3b0798f1e9cf3177b118aa18e2e8cf32eacd0670e0d755d6921bfa8b555fbb78c3e524ba9e89ce52cad7d28b4c216956b50f6f328fa77f4a1948c0e69eb1b340ed4f0c0df8fad6d936b63dd3e50e980eb1546d43d7286e25e13d276d867b9ef86e93961798bc9d91d2d71607b986f0bae0f5f2321803b605fbf8e2819982c04ed4253d0540c1dffcd29b8a52f136ace5547ce379a542afeff1e667d8a5962bb8dd232f0e2589afdf846bbdaff6385e3f6ca487440bbc306d1c69ccae67cf465fedc6f30711ce5bdd4643882ece62634bee9cf54af2ccc042e7f3f2f088b9cd0cb05c80900f4fa07c76f97efc88adbb76e858a3c5c027901f9dfebb6e3e2bd95e31d9e1a56dd3f85a3753e36b9dc32cdb6343cd0ec9cdf0950ba110d9f5e1d317b919ad8e5f989e9cc314bb7cd816a63a71e2664f67bcafb1ee00c5cd4285aa75909d63c47def4766943bbe6ffb0d3ee808e84ab7fabfb8d96171c46d53d55e416989d079e8651dd72f59e4bba7104363283cde9c0ec8de223c1c4a22a053d55a2e9592e345a200ae3396797cdea526f3f3860a9aebd28a7f70e28817b805f5c93ca35532d1bae33564180f9ea935110e5173070d261061487351b5b21ef29ba06bd4747ee5dae47933bb55b08306e53d98559543453b6aeeb876a1d1dfa294c2e94481968aea7335c1a734d685c54a09cb112e6b6481ea8fc1eb5ca41efa4c772d38cf458fb65d94a837b6ffacafbbfbfc51912169437c9561011e02fc8ee662b6a71de79d829527fc41550d9226232c693b6e387949d2ec66147bf8f1f4e42705993adc2aeab7f5b121ce1762eccb7fb80cb4ed8122cc5165697bd3809da59ecc573f132caf460c232d3e8a5a26f6bc8d77884a8dd6a65c411c0ab5a635b6ac309f64423794b8fefe58943fd026eb0da667b5ed1e9d3cbfbcd215f93ad0dfa3ebfa6cad39bc620c040024bd6922ec940d6c65ec9f8821df7d58bbae80f935118aa402940743b0e20f61a590ad7cecd1b5bf96e15a667d5c31d2652f07f66e9b4e246bfe2963cab9c1d57598a62a38c3bcc6b835f020521bff793001bd33ce1674bb9de20c551d7e1721ab55744ba6ba46009253d858b613bf7a10865759790c49cb897beba2682f96872c35acb1f23b47e41268b4010b5ccd1c08e70be198e8693f0a04d7fd3151b9ccfcb3b004e78528d21e232c57632cfb2103725966679d2c60d71db7a2e2bdb0801b7aac7202b096fbc35944cf7a2bdfd84a970a8b1da6b700a792a65ab6033943e59b27540677a074868da348baaf61b41b5f153a60d145ec9869a5e3fedb00fdec24318a9ec0c58c0d99f2c8984fd2edc508873ae215452928086cd3b1e9288c2dda7be2e1e0f2fd1f9184db527b65e6c00322fcdf35968199f796b0a4b9c38a31ec84e911c1ad13f18188e021dfa82e599b4885ad894f0d1b18641f932c3649d6f66e600826c58bab450cb1a17e3a904cadc09e32fdc61fa0eac22e143c0544703108c89f81ba6e70e9379184d288c1a627e48765808408f3c1d62a3d4d3cac8feb10d21316a9ac56b4c1e77d98d4253888053a5fd12c0f39f4f4ef8803368f93aa65afbbc170d02d1a0a3b788ddc7a6acfa6838023c1acb612688c406b466a689a7be8d3addba234cbb20109ae594e57df421b9f2130c5a7480e3cdb1634e5fef998df4241e4a95a29d0af4f4d0cd3867cb2a0a0c1719ce42d97c7bd22b63de8b4af4460d42b7a10ae8b1817a6d891327c8c44df44b320c63b57f83204f26954a1ff585765e6ba9ef52beac98d7632890d5c3151b977de4353d9ddd1f9248b68f4ab1b13d7f6e93e4cba47e6b21e51febe5809609428b54ef14167bd6f5d1b3687a6e11fc57136363904cc2dce7a293c2f8ce1ce034d0d97de0e31a63bf7ea8a8ed5d4c96b74f961b7044c2ec4d29dde5aecfdfb080efca148dfdfa3bdf53d826c952e66515c0b7726be89fa34565a716edd4865c755cb016e6c42c92a623d0b6639a14cc700190fda4509751611764e1cdbe07c4a2aad028ae898310ed44cf93cf2e50849c40b6198c32d2f3d70313629eb6a35111df4d8dfd1f4df75e429cad8cdd93b78ca0143d3fb29049efd186fec6013e5579b1249f5f03057cf26d207167a5c0ff558a50468b1507b2ed261c836a0f0cbf325fd0cc40843a941d8938a09cbdb1e474071dc3baeff732c54e57f0ed459c6e133b924334e1113b5b20daee5ed9b14eddd810077be3db6480933998b4840a6596c0d6febdfe1f7085fb3391b8fe0848f3276e365d8a9e02e37ab25806415e4f6b4ccc4f5d3d2c60c22246dc92fe45594aca8693e8b77e6eb61cf784fc5fac78011a23c3b6b66e88c3a0bd2c0e4912f4b5de1813467bec802c1e624910a078af0418833f0507b63c85fdfc1f6b57169c04caf19cb61fad0044db7f473ac707a338999cba364d129b268ac516da36255f8acdd6bfbd18a2d0418d7473d1b7a5c52a254fa170b7a69ee1e106c3130bd2569004beea8677ba3b7785851df905ece04d02809758e0fd564c9846c0b05d8d125619d6d36d1bb4d4d68b0cf9ac0a5073d70a7471d1a679b02cb786116333d612f648cadaf1189a8b937793d84dbeb7a94d7bf6f6b814bbad30ffc45c85791db3a136f65d54862a8853969c806bf65776fd163902434c3c354c952258e2f7a68edc28f128a9156ea9248e7437112aa0ead03e5d4606fb638b3d6a97d9867defc3af518b2047cb3e049fd5d5935282eacb51c491b3ce54bc670f4258395dbadc3e740be5ad42673819eeaee0d6f4992a0032ff53a7679e141038b0f01126553bb722db1b7db65ae0194a4b1c757940a73fa4db02f41b5e58d0979bb6c8038018a8e9e408abe7efc41a5bc0371882e8f41f49c599c02a1896fd5cf8e7d278bce861eb523accd79c0ddc7d045259ded5f2b94910f4c6fec881d8d1fc8595b0e110a5daffe5b2d66b98f6a1d42f6b74c964c51303a4b3bb6733175e65c5339ae833af44048b52373c4221d5742da9ef0c762e4a7c568eba6bc30146d96f8576c7e7a89b2c7b6d6d7c6278a339ca8675deeaa4eac07d6af1117b393ca235e2393f29af7a2501a06c642f2ff1d3a3b0f53c20c30cc686a6adb6d92fff10b9cc7bddef324ec9e709541dd51ba3d07def30da56309ea6fefda60adc97a3047901397330cfa144e08317cab279c5d52649c9e1010ee40478c79b1291d22c4953668c195d03ac0867a943ab20c902260d9c717070b09644681d713313efb2c2b76bcbfcc9db3b5050a1467d7d3d08066d0b6c23c02d9dd15e5dfd7f02d2ebdb7ad8ebb090f7de61b5d3bfce226ba66caec0362121b8e52342be58224ca644a834169cd104ff2334d69f6c37ce8456774a0a71818b5cecd35a872cec02768508bc393c392bc3543629aaa4f323fc911edd2d6389ee0e87c0a1e0c54d61f69098ed81f7ab3ab0b3127289121a7779ce885e26b2822401d8fb4b29828bc00479f1c097b494d8318617bef6f090344c596912138a755c028e2e3f93fa469d44ad4bea94d5106844459ebdf148012f962cd59ff567ee3c18403561663a10434c8085809d6078106aee620658a6f3dda17041e53e8956b36f59f57c1a80a8c2e2a493f8c2ca16bed969479b0ee88c4caab67e15d3c91ea7b6ecd31af05b5b204955a4c8823a280584ce8d4188ba90d18eaf392c5ffbb604b40f49fef995da19bd1d491d42181f6ab64ef7dde58708f9b8bbd691132a71697c4dd844cd6c5f1f2c9f37f21d1ec7c5a02d6c34f637758a3498311dfe60a142ecaef3ec68abd4cffcf2a1e6432a5e98c9d3da47dd415e62705fb5068cc93a57b4a5b0a1bda2bfbe928c39427c57c9f48bf4baf08be440c4a1d944b97421936c001654fc907acd6483875267615ef047b9a7dabfb5cdad7e38e2fe2144ef1d0e73771521db4040fc518f487012363c1c8202f866fad5ef51cc312f94f5f70502c96ccc782b6c592ff53d3e736043ee6ce5d1422d7870af3ee402411f9f8b229105cb82b4ab200e81d9e6726034ad7a542fe2ee72f6e6ccedcfc6e16b66883ea9d833814c4ad3d37b0da87ab3b1d45a7819597f50b8e947b01e7363586ecf1bae16fc76b4d04740b9adb8981a719b6650a2edd0175e9584f2c04134bf18b59c64df96b0125d30ac055e48ae01c4ad07c4fe773cd5830a5bc80fb2468567861f60844506abfd70b26fc433e611c553bd2a261bcb0e6b441ef0ac9eb2bec2dc0704007f9c51b4ebdd9982bea561fd38b5e63a3febfd180770b15b3840c0c69f5442a6c570e86d38d4be443e19bc87d22d99f5847d3755283dedde95075ccfe7ca03b621323bf1603bfef5bad9a102355ffa0ee4e422297b0100a2f25ca29b5d90248cdb9d41a1ccd422d82290f21527217dbaba91e5b6de3d448241fbc512ff283b39b68d17d0b7c12fab878783856e020b2f6502ab0cf85522a703a912ad66eb2639f05d3b54ef79da573c16d7693d7e0c7463efd17ed4240676cf758d3891d9450a9f9f0da5be00e898c8c15969409771c54307381f7b2c9e954b628cb4008e165dfc7e47e4f52f2e399ec234ebd7b074143bab1b65af5d3358d55df3bb310c87797f840a72922ac4739e7ae5bb424a95410c34559614a15c319934d00269ed062ccf554a976869db5cda29a9a95273fc276972d0c4b20be57beaa1ae53d15af97f7497ac6a211dcb9746517ae421fc6cfa895daadffc971789681e2baee196bfee17e01646472b5420048a4f11092fe8b736653d6cabf844bcffffbac482e8ad5fc897b7e5666745595194deeb7d3dc15a7c5b010f752f486eb483a66637adec65fe09b2a720e165a4ee6b3089ed2c916c899744de786a787932c0880622f52318d50ef3db4d72151610a621ad8c018b763b8d2e02887cab034f621868422b8c8acfa6400da08a6850cb2fe2061489250ff037873209fc90bb8240dca17a181d2889059119775ec13a5d615a91c489220b1d0be44d05b61b6c3a759f12d4675b5893af8c4b076ca470afa4c9e5654d3bc83fd2223348c95d0adbf87455001ab2f01d4abf54b37ce9e0090d45297642410dbaa5e436146cb128832c5c0e631c8a635ddb215fc7c16ffddb2f0023a067eaf4c84907466379f11c50f630b013e6cdd37d5baa6ceb7bd1e4b0021f28717d6f17200677817b727b761bd0e0fbedf1eac2fb41ce2207ea476e939cb57f0af14189b04f0db8438e8611e9d58c167109cea7de766e9c1fa4a7ec7d10cb716900c186c9246eea5aa9bf8cc69e9f95284d7080d33e2db7945379b829bb32eb693e1e615595b91acdb6a213770c6ff8fa8a015d6c701fb06516c82cc2f7fbba46771b3e3de0ceda8081a10aa44317095bef8467638c39fa350489ce275219f24397861a435fe0a21a73ac22355019bf44a751bb071bdd43ce22f0135e2092075e8f3fb5b59c43c1f2b178dc8b9e2add33b18043a58a1c2b0fdf54fba4e0833bbd30588946f85174e9934b73525eff976c1455dcd4eb6649f805e85fe9fc25eedcbd7a815026e8fad62641e9b9fa71be324eef4d319d512c74cdea1c5f585f0397966917c50e1e64e338441f57e3f1cf11f152743cf1ff9c0ede0e3ef0b9ad745ac7c4458f6c24ea4a89b2b40b3830c008c4b863be2e64dae24b7098f2c798bfc64daa85020562125a3e20971659ab4f589e2d2dccdbd0327e33a10d20c29af240e5beea57b6e8c489a167f959d93b537fe4fbacbbac97d422b1ccf8ead02b10c53b2269b42fa6751cdf1784e63d9e72f0b44e469c02ad945c88302d99854167f2388669832e9877cfe8ea6ae7fda161d85ce243d2974a948f9490809fe0e831ee22c89fe6abe593644915389872bb49bc1d42368fe07a19141c00343b1961643f522f39f75144b2896c9a0656381afadf3a20cca6c99b146740b1369a2a6df94827da2b428e12d8bb4f8b43d9a8a4db02aaf5a7fe900a943bc6bd6117cbc53ab80a1783c1e75697dd9abe4f899b02e17d9436ae2f0a7108bb0c4699abdd0102ae47821ac2503c95f16452ca1708702d10488abf378579319a926fe429da962a1317ce9a6634d8b9b49a78b3e6356e97dec90ba5c0dc2982b70852365983f4e4c3590ab369578832f2bfd739dc6fbef152bd6d74c871ed744d17f4ee5a9e53b9fa19880bcc5c812086cc1f07e9ee287696747107d1d5da312ea8a698653fbbc5421e0c5554ed7226139832a11a8a8bcef63603d7cbf55d67435e5d827454a01bc90e7b6f4b0f65bdda2403d3305eba5f8f8ad23b84ee583f0dda761e85315cadacf8596cb2ec19c4a6accfe312d323f25ea82d5463257dfbcd61484c79ed5258cc00aa7b8e3ceef00c049636f144075eb4c614811dc6f3577ccbd0a01c641e92e2f57b9f4b69d5314fa39f7a739b86e346de0b35bc2120f0e861b8e2e6fc360521ec0914a398e9c5d76d0450382dac1282e04496de74fb658575a4b7491cb81443348da2356aafb19e49d842d912a0b4af9873835d97ac863c4bb8939a4411e8ffb7f503e5390e12d5701aef85cf9c7831d815a7d66e9dcf7e1fb8fe41752a682d4cd3b82187229acf88322c2e71d24761d14ebfd32a296cc83537c4e72d2ea2cd1c0981c1e521a079aeaef054db9d2d65719c620fe06d229cf1484136a074b1bdb8befe34c390e8bf8025b7da7bee0190b3791646678a8116b0cda244359b2adb6db7df4af79c7c74e2c02614403bde57e069defc4489ced10d182e1e2ac9edf6265f387f14f0d2e251d115808017951a7703fe47f020c2af48126169284d07de59c87dd5392cea13d98115bcc7d23ba272c65c036c4f16321a2ffa063c9008a38e8230f5c23b62aa50c03b17dbcc19fda401aa5350676a14a84eef13f644d0da3cdd6721138e0cc2e49257026577d571225e6c8a265cb4347df2e11c2be102bc421e2f5378c642283792ae60e252f36d84b972ee94406a891e3ffc1fcaf0a970857d8d9b1dd132d2adac4c327e139944c8d972b5815fe702e7166328c0998643bd95c925e24c8e0c08c7449a2885cc86a2ed1c0a8c916e1669f2560b28e2df43fe9073d5753fa473d4ee612cf642bf7cefab39ae4510ddc3447614e89115acc6595f4c8f27008ed6081d5f7ab4f419011a48cd6438fe5128e7331c21b33397a44530e0c95b62c17b17e41d1e4b2c4a9ab52e9ca54749ef47c770e4a4426e93c415202e858194e924ae4108d9da9a68b0c3ba22f50f2e47abd60467a4935a2dd5725899e13d51c556a2a15c1b46ceb96d53a5cbd511d6b5af2666c9b29622cf8e2684ba9e7d41285604434fd72a9a38903418fa0ca5be7702e0c5c24181929a5e9267d8960ad1f89fc53cae943819dc62a527ff09f204bd4da51085533ffa3fd6acf80ce0bb40ad44a4fdb0e6362bbd48aa4230aa41ff5b45dce5ead02de5b86a9a9679b07280254492d6af9fea3876a1ff917ee8bb126f77c631b13c24f488b8e80c1f699f2e89e7195e6773281d561255e93ac84143b2bbdf4226d55ff8f085a7d51e90c5e8572422055d0995da8cd1d369fb81d4b448ac80ff867b092767a91d824aab50cd437fbf4e69daf6162b808bd7a3eef298d96f6ec3266475619748fc0095c359ba153255d847a8867421aa3841df98bae5565d699e861c92f93eaa9e65ba718018c5ad75a0dc9ac65c77c394060de79310cf6cd9d1bf1c48389a4f4996f1f814f97911f4fa561a2ddd811d6de2c03622aede859988811c69c4348f14e52faccb78fc05fe9066c9de8a029c285ec3486dc5768c474d725e5441e815f0de05b01e9d4f7c1ebfb8781970a9972f5d6c8aa4a87c6b9262001d42f3bd6c46deb8a097bb3d60910b91c9046fbe8c4e36dbb68b72046fe3aeef3c24d5034a6a9db23f0d3fb91cc3d657ea7dd2b613344134a2aa13a531f812901eec412b5503fa79993be12f0830a1240ffb1ba4a0c10152ef870ba656cdb5a78c587871d1e02c0cd433a93d2f144cd243ec6e52d32d3765a35af5367bf0b02d54eef0fda777324f0b916845cdbb2f482d5dd8d452bdaa0c4a94621364ce85ce2b1d7ceb79d408f6390e4975e00a836777fbb5137437afee9cbe5b061ebe09fb90e5de1be89606d6e9b5124a980bcb95c3f9d03ecc4a71ea6d168cefec5d9e463bcf18722a010b25c58f7edb0032c1ef905c0a9704d793e72acb4e9bd27b4eaab2a6c2d4dff79c28db95293ab7830710442cdc66402b78c5befba953010b50acf4bab4445845c4ed4121af406cc54bce660ec8cd936fd5025c864121c2daf38a67fddd0ca1799663a1d13d22648821ddb3721eee503e59986492f93017b8260960310e67200623007500c7302c66c4e400ce6048e69ce8098e60c8cc11c0031cc1118c31c8131980338a6992327e4de62fa9b58de72aa29e1e91d04313c8b93186aabc2549ddb202aa706e4c4e38ca08c53b11e981c7b0a029e8915fd5ee42b384cc47b5c481343be7e74eea8e4ad4c6b1c486296a19401756724e4bb1186a13a60a0d2f582d3c1bbd69744de4c19f9d745b9178b962bd9a1610e877e4ed7cb0ad63f167e28761fb4446ae42e6e4d2037f9062e71d898d581ed76482eb45201d1cd6955cf5e4adcc2964ccbdc87aa5140174546705f6f374f511c61b6493d7e604d7d21f01fade53e96026f6f20e31c0997202ff8c8668cae35b28d1147e4915e359aeeae0524766542e49228db2267cc39399126318f3db55ee994be414fefb0118fe598ebd33c375bbdb871201f1f6e8d10ec1cf33f77aa9ce5979298cb45663d5fe3065ea36137d468e4acd12f33b5bfb9af723cf10e664dae4593a524548c2a9256ed30a05f1ab5385a4cafb39ae82260f45a4db6686efd1e77c336c9be2687fc46a4a151e2e024315734a8d318b623649619964289c88ec896886c20b52c4b05864dc9886f1b0983911a9a34f2d008d5c48338346950249313345ef9b0afb6fc2c9fd8404b0c9a9732225d677ecf72a18f3e98812916ca3e9d48f0d872dc354513ecc329e4980af37db8302d4e7e8ad7371ac25d67d2a2c1c92945d957d280f10b0ba64ca9a9c2953cc8bd170fdda7c3f3e0e20bf6445980417cbc11ca069b761381b1b11831b7a853245ce36d0a06e7da8ad104b6259416d2e3abc79773546b2e86b4203c02869695fbf20fa5618eb80c792efe77576917ab30ea817a340d0f23038e70e8462c63eb082d46e83e28b57a62580edad4625559aedb3fe0f168e2f11cc2fddcf7d0390c10b467695e20e46f4180675c2641108f3684da3f3312dc9d93547530d79d53b4c9a0ad0603e007e4bc014f76657a9028ea99c8634837b0a987a0d97eccb79dc108a6b2f9b7d8e7506665da1a22e05c30a81e629cca087c5c180e6f48053186daf7421502584fa239cc27ccf439d823c4bce6b3ac9cac1def470e016827c67545334d18cf906f537c68ae7c29ddee3537d071db1ea964cc3e6a41bc0f370a284603ac8314bfccd9837676aa28b6f2fc0b35fe4b873b30857f5275b5880b907c37a61f25c0f6c1b781e4c08c008a8da441db70637b503a43686458b89cf1b39234fb11f67cb60adc5fe0933b5e9780bd50819333ba20e8b5b01188d2b99787a397f401be589b2b9230a0b10802066eb133fe052e54bf3b37628eb8d30c988d8fb343ae008f956229f19a119b5236550b6badbee4fd83f2ea6115dcb344294124728d14f5de115843000d24080dd834c8beccbe767f039033833bf20dc640a88caf6a5e4c4d296ed6e03bb582f43431c13464ae332dd078c87bbc242dd7a28e3bbcbcf26b862b44c50e0520a2cf6b65e585f26c4b587bb53f4f1844b6b0050c9deeb3273410d23532656d0d50aa113d9b3fa2726d04fc33ead384c4ee42d1bbcc0bca79d260e95b46d96858e1121c035ef596780957a45d3f5a28d0abff8a60d9206d3bfb5d5fbd8ac430d8ac738b316f077aedc0f3b5ac63504b8f3973abd8fa2851faf97633832f6387b82d631ec9bd33162730f5d131f6b5987af2aca0414006a277d7c7e3c595af87d0934b2ccab93f388a60816ef54e744addd983df115e04fc3c83746b2d01b0ed19f603f89d58372de619dc79cce9ca7c177d2becc50f534d743e943383d0cfbc120be47c587b40c2c2c87e575bd70e77c6d93a56638ff6f1ab20918da420ca7cf60b541dc5ea33d22e8d1108c2c234e5694dd8c15fbac53c21f40de1c5c21d8f20d63af453f52c3b918944b080145758eb2baacb80c71d3b48f738cccf47dd256bd3fe933b0426969eace8f6a9efab30f468192b6772e253f733dd70613eacf38d0f59d6bef031dafeb423a749ced50de018a68a079b9ed937543be684eb462e76060e151275e50a19621d841ebdfc060d5f8988a2bdd67b2178e2dca046d17a5a635432aae79be443c984de9ce4914ac97e228ea1285afd50a4ec27e494c05699f4796b9fd126af7c736aaf6c53ed08d9753379884d9e35d7f77137a0dcd87d1530a0b1fe3f1da97995daaac4171186debdc931c5af7dbffc9970f1361b3bb7c51398629407238dac41a37295b4bba4a8bde3737f3e1311ca4899018cb749824fe6fa16baee39cf147d04fc5461ec5abc70784b44360208a61b113be6cdc56a087701d592117cf66d3604c30e90525781037896061e027efcd3bbc59d96d14fc9af8e4e65c6ad868187bc59ee3686843dd8c2ba9bb756fb12e6bfa838e3d6736c859d1e810f75b49d5f755f9e461124508062361f185e4061cc1421b3b6db4ca1ba5cfc236e100e2ec1ba22b5f8f28974230a574191d505f7da174d05aa1524e3c96f32ee7acc5a6657780164b7ae1a1b7a201ed3d44d2c680f6357bca5d2300b0492261b68b02feb6fd4ea19f2d86934695d252e611347939d94f891d09c405e9bde99a72707ebb27b671e6f9d250f8f5e71dd1761b187d8a95a46c9c837c37d30e0ed1f4c8de2f6062ba66115465c0a645df7d0ac615712532bcfbee238624a2bba32e1e6a0e6a25e54e9a7d1ecbc5c0ca3bc2fd13679ebc7d845a0805197f2f7de50eed5d4a1b4aac736fe02090f672e3239739554216b281d5dda8c331bd6d3861a36bbce402c8f27be116f9e282f08d7cf1dda1b5eb98c9c6d304d8125474b044401d98cfce6569782589e3c11b131c8ed64ee11a976e2cea3fef8869878006e2448112ff614bb77c426abcd7bea05789be21004e958bb5d9245d1aff207c19f247dc7803f976506800b0b64e05b16a5e123bd0a044f74b21c276416346cbedda160b3a521f4c3a061cdd09de81a5a7687849b915324ee9d8857dccfc9f627a770dcc9c2158a932312428063ef5c2b8b69f4ba47ea219a6c632ecc52a488a58fb56e11e23d173a7e745f16aca1ad374c28f02037f2d92e261b72f5ce96eda7fcc29271a35cc74d841f7e4019259207ca17d31f9638ae881bf96f5f528bd733f19cc00b8c70a3d03f3b4902b9a4dd4df098276064268c67315f185f3cc08d1a1be4edaebc0c825c3a427ea13dfb6998387136aacb158f146dea7b188bb71101f6c1489f0e49c8943db402b88462b881fd204dda768bb271166e23a03d3eb25291286336bb2f5cd8d4a473a61c37ffb41f9a44698c37b001c4a74e941c3bd4e1a11ea05332acfcff560a508c393939f848514f9d3a54fb790df6c2d52a0a584052e540ced13b4f46c8d34680f8063f6d854d7466acdc4132c2337490a34bc6e8195197ec5a2207a79157f2238c2a79f2f7fda1b95efbc09a74c93498eb5bc65821aea03051d691fbc47eab9501227906e66363043117cbe7d3167ba1c889893c5ac8a0275b69f60c22cd0042f70827345fe9643a3bf8691c1cea64d829ebd95eca5b6fae8402a4a508bf2ce37fdbc32fd66907aa2b2f0ef6fd3ffc62cf01826d79342bb1106e46e49c1211776d881c8ba2576d34b4dfd2855b71c3ca80097ed995a76bbc3c4e31079f901141e8002f0fcace586c86a5ea5ad31cb1061b07b5c06a0338acd60f07be44218595063e22cb919850a2ca6ebe7ea343bfdae7a2b3dba31dc88a814c02022f261247a3a45ec3f3261f20d9e34e9da0ba455704f69072192d11bcb8bd960002ec393095b4a5330afa9de20089eb91852da325ddc938dca79f2db7f37a1a22a670e812a8cb150e2c3214a81ab5a4c6f854a52036b2cfadebf07414c197ac89fc8f29090ea0da80d07de5d77882dbb1ed95a5d75ce1e5f8e45f5c41b86424c901b0afa8cf8d01109cba334bcfea1debfe6c2755d918ca420146013733ae72f509855d4e1ce3cd79acec4ed82452f0c13385ab16c8ac23d2e693e3eb74c4d701d62debb8d160159d462257c1df3e565a0eab6d6a3c41c01a34eb74b51c8e6805fa10d63656b3d539207d26b94b59cdf48b01074039603fa3b875d77157d9f060c00a1ad6bc984f5dfd359fa7f14783dee4da14e37cfdf8e58f96caf56af8d353878d5acd44d805ffca63168239b554863a2d83260b511498123a79f48622f46e44557027aa7e32313bfd50756589a83a0aeb9d69f713a2aa554bd6818668d06d30e8ec63ce254516f521b231882dc22521604f39599ad4cfda2163dff0c1e472d42127dac5c48122607db48fc36f58e205e164559e4f3754a3a2efe7d6724f5d1fae4ad1baadf07ebaa09d72f6615336bb32682c9deb650c13974879f077c2d24ac7a47dedbc748bdb962a19814e459b170f21f0159ac41f8fe8279ad5f71c21118658f9e5fdf9238a588f10048313df746981b62004f5d2c2e371d221d74f551cf5584313fbe0fdc69f520063c309f60660d82b27fb6279beecd76063398460915dcab30a2f1e3f90a4300e62dbb9e67a2b4c74ef345145a56f5b794e69aeed09c312c2889401625315965418f422571eb1b5886ecb4c47e921e5fedbf5c2a86d25fa0ac2ef661974398828e2b12cd08b25c86c944b559d033a979abd33f4bd11db037d09d11d1af4217e754239504eda40571d86d7d282c2a73ebca1cbdbc412dc28b6f60be879bf401493643c49a1afe7b10d254e12c9fc4aa34165697c5cd2c85cc2bada96009f5d9d8409c919c927b8aa5c5ecb1d111a2dcc4a163d9b356ca34217025616ab693080d7c23138768026cbccf06357cbd60a4b3e3662791852e4d8860a683433fc8de10469051b8710717b181947d6cf5adaab2cd50a86abc7b8fe311ffc10a081818b6d29e3a29d5dae997249cf102ac4a4611e5cb0c62fe8748d881613aec5dd680610c439f51ce12989d0aad0dac2896685247202406c246a9d9fd53f7ad0d21ea0c2602792aad4dcc57b3e386784420c6f181b7d04628b180abbe7b9211c7f08893bdda38fb465f13c87c77544ab959e7e9f0994049e5c39f1b28d68b59ce24d704d708fb57819cdaeae84617a839593938a78e20c01cfbe9825c5adeafbeb09b08051d4955748f685af74d505c920f0cf2f191302f0c07a6ebe8ddfed291d85b063219659cfb598462d872d3d0f5c0fe2aac90bc7dd73aba7fb06144263a29cea91345f57d7d500227f1507890b65bc2b33de7ad108f653e52b9d98b5353a22af69085258f5c986786f1ef8452ebd1c0c567fe29af86b70bedd2eda8ceb0d1d773c13bc4d42ec104ab614de9a61e6ce8818526181ffe6bf47848295247e80f27e5a72f0d0dc518fd24c024d3ff14bd751b34dcba21453880c2241d46da85080d6e25e9fe0c06d6fd2e081a83ca4832cf0e9580f294dae0a448cfdf32e4746dcc6647c23cac5fc3c029d986648e553d3dd6d0c80a6938607e8f1a837fa7499c1c49c8b65a88afa2aad8e30a5d833984f0061c02b7aed38b1fac1843bdf070ada0783d46f7000dfe4a0a42e30d5bc991fe9ed4c859e18066652c30a59d494f7eedf0b2369b35bfb101abad01b95e496bcc6646b6c6d7da755941fe588cc86f1eb8f0b633499e6b2c3aa1a6a24f5d33ab78bff36a87428dc0dc26034705c1498a52962b9812d982c56558cf11c0a2e2c3ab76896192375e4375d8816b16f53336abb908142da1ee94b578c28911a89167492519676b87238ba4511cd04a2cabe343f68a8f9c7af1b7cf87f9021718226c8355b3c1dfa314d4871b8bddbed11790ea5d9c2f0521414e2d58fcb82919ad55df9a2caef4a3c111c1755b70b87816dccea4e3d701505cae8dedbbc20abc5a207df3cd46e3066bf4ae10b3caa5ae9423b7317834f8a624584fdf8e6d62b0fa3e2167954bc7a6821a167994589366a3d08dac59d0d257d923a03b5d0b3fc8e1209666587ab46abff9de0a32448c55051c66653bb6ec1dc53a47ae09115773ad3ca4e7ec3072c105a083015a2601f3a96ea7c9512c0660d04d54e922306e3ad49576ae7b3b1663ee031577680896c1a5040abb904fa56e9f789039e081f0e19d646af0202327131c8a8892c15d15dd364199e67c6d91126b7066d97e713fb2e2af0b69e9a520ad19bac5d7b98d33a5abb440f6da86e1d0a0531de8cb57453f41686d592adcee3d4a77741514361623a70f40a6becbc8295044a19102919797d49c8ed7f3f214e22324b49ef298c8b09b840110fa2fa10b1f7f327b2e511fd13c0ba4205907f43737612917dcab4db9aec8c70abb51bddc534c085fc4e439fe74ae0eb14f8c54660b72262be13ee116dd845df5855d37ba35c118d0654c854dd583a2211e74b16b5205158d045d53b1ae05d878b2d547d3ce025bd393a059638d5ea89489f4f5b0e4dd2ddc7270ed51808f30a27d0b4b9b02dc38155058f2e3d13c446fa77bf0ee3079480f8d56b4572a8dcad51ca3362dc1b79272b1af14b3b418d85f4c80dd82e48fc23ea6e3c65a6b53fcfcb69a07328ee860c02b7e89002d9162977b66199beefdb20056418fa363fdb9c571cc738c89c84d96ffee6f88d1f0c14035ac22f6cd1c601b37b3bd1a963cdc2211f9b19e82521ab0a7d9f8c0be80a5cc7ae513718f51f022db7d0be24d219ddb8f5f73b6a6ebc067cf10ac5a09ff49e0ae9ec1e4e80d55968c9808e1388a50962e90212a221d35cb36713517782568468dd66dc531079444ce1235a6f3854885d5ae46d00ca97b8c4389d06cff01b685ee532da98e345ee940bcc0944ecce594cf2a2664fda5b7093865bfd06431b367c938965acd33033e030789b255e93bbc93344ce7fade361e7ba5d33776ea64b0ab93951691883b2d90a42736c1c6c2ac83ca04062573bd3f6b288cc66e0eb9fcd7236ceb71db4b14bb82170f7523ba2959934a14c359cc934c50c5719db08f14cafa43ceaac51281a4f8555580af91a0f53cc37c822eb9bf21f2bf2d0ddde98332ec27def21a31795fa587a8839ffb43d7d12bd962b0e856ede16522df1fe1d6ab886c30abe867068baa00a665f9b3934f9b05b8c6f22bd41ad1ce3ed44100b7d715f811b49699bf8cd6fa75ece2bc72a48c28825e44d0dd725d086239ee7235c718df06d1ee14b38c235b4ea11728c7cbc2d6f307413e4348e197b220307b17c12720f608633ac5ed6e9b23a5fcd881b9b389d1c1b30a59411e54e96673e0b6e49b9319bf65ca71b21b6482c608789b4f1826122953edb32c2008e1527ba7c02d60a872d8913c873169038055c7b8adda4f0adacd8d9210d9de46f0f90ec3824c30dd1b71d030cf2bc00419f03a56751575f9c755310c7ed1388860a647b804e2858e89a08590b69d957a9adeb16862c28597f49e2161a310e22c2ca1345530542d3f80090cc2b09c8f608ccc8e8e56018c8ee995ba6c461253d735755935b9f1baa128a921808a96b37fc7ab4c9b078e938f354ebcde95b7fb024ad09d724142eb6f083b32fbf8fd026c2259eab86f2c9cc05e75a03ae5fa6d96ef1865437a47a04592f32a89d1f67fa1899ec30852fda34a981b82812caac079c00d21bf3a37d6529c18b4dbaaab8c2f53073195e6bb41c92ed058966bc9980134ab751167122ffe52f89b2fa1a7696cf99a50052c38e61fe04d6b3505a994417c5f9a5eb18794f09bf5ed7efcd58bfd2e92a4256076ec5c22d6c9ac2985686890b2b7543d56acf7feb84d74435c2e91c2e2e57c5ad5e7c33a41d65be0ecc1eca252e063073443383248ff0300dd6f8ed6da093196130c089dd451a60b1ab377b2557f1ab7833d00f0957aac9a68fc0d545c176080681ac8b8b1b01bda800642fd560451f96dadfe05f0662ad4d744492f70313781d4c77076b1111024a05f3285aead5cc76bd0711a4deb665b8a62b1c4e9452c501a901da0e41893f2441fd82b2082e54570ced103372f67d1051c0e489a99bbe101da646c19eb7241348a639542888630d528f4a5d1d68b56d0ae0a6c1d936c17fd421d88ee11b009da68f19c20892744333ec7796101e020b66855345ccb03ed17d468c469bb5ea596b83c0e20bcdea04981f59260d8241dda31fa12dc30a7a905222fa44e9157dc1f54f560695c6743e4141cd2e272c256eb05159d885ba606e3d5204d1348f2c6f2e9e12a42ee68fd23130f940711a883d5c59282021d8c383c1c127548a063c555ca578fa6e8de0029f23e05b474502082acf7024bd25153d20eae3db2f0100b93195a0984f3062e71ec31d1b41fa66b0be4fec3fa93e5e0054db4b94605f01f2bab45dc1f2213a4b037af4bf466c972f212c0e7482814b497a0d963774f0528b623ed588ddf34aa387ad3a69ce85f7cd228b9361025e1b5ad19fd2d63b20f54d05146a025c97f1631a33ba601f9c228b66eda5c3e48882fd6273933f042e09b081bee0907b2f9ead74eb1b47b8cfe08965d6f5baca5899f7f92fe3bed459d5a3dd5d7169bbd7d525b5393dce7060855f515a41db164dcef10430b38c928171d42b7b759b40eb0a818dc9512fc2c38487cddfcc3bd7d26906718f2e93c42b2aa4366b0f442d50f25f065d702996c04414062faf93adf3e584462b799592158eb3d8448127c4dbca285d11029fcf61555a004a3f100e715361aa1c672b946e37fa05165005b77ecf5220bae5f64abf229b67f7280656fa53a5280441c178d0276048652b5d48cf97bf659615c0ed9b56e7c9ea35fd263a53ac4a6d205752ee61d03c45614a3e5dbeb880bc14b0f9a0c1e84b547bf29863818a5f852c057b128ab80102942129f54d0deafb3a0a3ab0a21209828cd5a751ae2c95655948ff81b58b92a6ab0d2ec00ff0117cc4fb000b9c94acb360d10b0cc9703717a093306f76d882a3e05cf6de4ba1cc2a10a0902873c3f2eba08c300433a4e1bf7a051194de27a3bd420b9449d5290ace513a7af13589ff3059a617d9c40b6d9ed4e185b3ffd4279642bc22f9645e4daf3767509a0225123c7b92ec81cb95e8420ba5f3d34efd789b273f981675e1e349f08f4333786263d28b4c2e238fc98c43b7e1f6bd50e7c6c083784e5fe0b016c150273d7ce628a1d3c3856b667d0be1b26fa3732d4fd411518892c560bc9a4797376335b2a17e2f4e32349d1e8cb03eab0887baed550a9d4c9d0e5da86a596775a843afdd12138b15fe40dc57c04c64b0fe8683c96f6a1ee4e0a44ceb41e29e12166a9cf5459dfe8d526c138801e978a9ca7c511a29f60983f3657202e2e45902d190c21f7f505cbb30b952c7b0c83db07acde171c2d2bf3508e61b394154c561a8383187919e1d7d43b81e1c195e328526ca6781d655482c8b298e5f525d61fdaf0bd78a40f8ff30b00e1c81af0e351ec361bcb0fa0181f6a9861e21251a6a25a2337bfd08733481372753f003731d824ffd4e8d075f21fcf6a815116be217813b38dc7c8c00b16fc43c2f808b9458a79e578171e7c80ab4f46d21a0b5d17f983e61fbd85dd325a7ee46ff915d9fb0c764fe3d97f5b8ce8e9f061bfb9b30b506efa10562939bf1aa6917faf07135089704bb4ede159af478e31a842d8233a7d71b3661e0700e0956820bb9765c8af33a6ce9836eeb763b91c25679ec3955c11a343cf6054774705ca6b008fdecec6bbbf369b85a58095c663a2a41fb8446bbdda91eb6aa9ae7fb5501db9ed8a52e6bc8b613b668d41f22f6bbec805061125f2e9092aabf327747297c5099d4e92c210f0ed7fb226a7687f5a2e0658e0ce85431b69ea337bcde13df907a8ad2b1d47cc2f47125c167646d5fecd105f2342124e2ffd1a0ebd0649c945439c700653e49a333e405f58e1aa1b2483bfeec994479fe8fac55c4afb85dabf9ed048bb9f3891bcd25581c3a413e2f338d4ff8c8f7b0d48493ff5ff4d4ff574b3935143b50788d8f757afa390c64e3222a866a67d3669db7a21e5cdb3819f46122f365189e15cfdc9c87847d1e9ee58d123aead3f806628f3ab6fb1b0f297f7dd5553821a8c85512e29c42c238ad67701ccf51eb706bf21c7ce459508e1dcb91632e270c3f1f2f3427e0eb9cf03989aa3b6ca3e30a0f86cb74fab4ba3f481d8aedeff65847f9fe5ef43aca2454cf21b203a77600745463c01d6727d51076a72ba6fa07df21716ec455f01c56ad6811cf6df07256c7e34ebc0c9df2f41d2f7fd23c44cacb0d0c7a944d8f5248cf53590ff80f5f4ef6c05b77c6c13d9edc9d217c4f8778e76fe243dadf1b553e54f7ce8d1dfa28a4f551d819cbec59c4eab84f91407958aa27d6a6243ad454eed18f73d01b31954589fcb432656d6fba86e514c4f0a979f9d38a4854f5c7a820cc52cdb34c1d0bf17a3fd12b6376d565015641a98555a838ece58fb1f67063d7b19225495156432db36747cd2a033fbbc4092d21c5b4dc6ebfae735a9b87772d20415b0dcdda961c76ab9ae76d384eb884c8e19ab425b774ae5c650ebae1f8e81244ae6ba089dda2937755c3da02a49597d268ded21f7bad99ed6de22597d04fdfdc8d7e85c9fdee22028c282c60921e821fe2dfed75cacbd19a772dc35e30d3f60a741d7663f530b540e2d5618995f4563c7ab3d8664cc647d019238272acd0abe3e905649bf1209f038e8c1046b28a8e9387d727db4655f90c6c6554009755ba5d9e3cc66c3b4ae653909a51816b56e98bf3f02867fb183c1f81794609fc59491fd0a397a16dc60f7d04693422d8d10a3d949ede95b619dbf43990d3082151abe88e7a7849b56db4aacf40b04605c65aa573ebc913d7b623be3e05ff1a15506cae9dd34f13cc6ebd47ada032ede32cb57520588318636d16dcba6613d75a9959065946fc19a97d2508c33ed1b14eb98c433f5b0ed400266c3623b79a0c4e974339f0b19d298e5729ec29287de0a33fdb2cb06438a8252d04091f9aea892502a37ee20830823498491684948aa8255819d346d7ac0f3a75934f30a350936cb4122c55544fc1c8a9f6f96a69e0aa65020b229235e52430daaa4eba0b100e06d664b93afa6ac6401757e29e1959c9051a94839d3959ae8ebc9930d3455571a74676128106e56c674e96aba22ee6cc609ab52ef16ea80e2c8a87b18be51fd050f2d30b5500b22a94649018c945647cb2b88a1524af68c13c8b1794bda8c11d8b1aa033f1ff9e34b5fa8060bfe2b50d4fa92a09b711dffea37112c3a6b81a2a4dbac1d2b91c2e2df541d35b1c3445cd61d2580d9526dd60e95c0e9796faa0e92d0e9aa2e63069ac864a936eb0742e874b4b7dd0f416074d51739834363558a8ec2d99cc9fc976a89c23953751e846cc3736a254c564974ccee473b4d48ffeab183422cc343352a0d884637667e5bb5cd285ee4b7c6a11a69a1857a964c23d46e7260f0671a83839cad0eafb43c6bab2fff66ad9e23c109173d2ab4f4400fe305bc866b68489641960e06772ced897921c8682fd403b628c144354e6c457fd94d7949e080fd11a44d521fd331161a414a03a1c2208966b3444e47d4a30b2e6094b1311143ed441b01fc2958476ecaf92650d1542ebe102036c5a6d32cf620a5e64edeae517572ebb7c75a985237d0fbc7c0e3a4b165bbcb4689b9354dba303271c1dbaea8c3b2456ef2eb45690247186a038c8592a430853d3442f053b9a0b924976bab272a99ac00b4f00087b1502cf2c132abc504948d2b8f448e30d4f90598767bf9ce6bd95eee729b3eee332faa37c9d357b3e4ed73d64d8b1b674a7d62f4730006eec5b54d4da76d2bfb2a09b9ae1d0a9dfde681ba40f4c60cf0879a667b2a9ac26826fdcacce65cd70f9a750ac366c9422ff7329edb4d725249a0b518849b6633944c9c4d778a4c4642b124449e60f38e3bb888951bf9505741af1bde1888e8aaca588221fcf0944420cfc284490606839830019e2681c79a2d1d02812b2e7872ce484d86d110489c11708066ac57153b3029ecbd08db97f2d23c46d83224c4cbc4a4444ce9f13888418f8518820c1d0720431c96efc160252dc3f28d2e4c5ad4804c4fc2b8988c8c133854812033d0710104c2ccd114c063a8d4546f41c1086946cfb2d832c2178331a2131ec8a025172f8cc211262e0f7210404736b700493114ff1c811d237271010232e2d112707cd0d2221c67c08424830bb16432019f8181e39d16c880849b2f9c72d3242f0f62904c4b86b48c4c9890f97065417b18ee344e23a40d0d75b10094c2378c07ba7c58aa9f7f0de4309a1b2c29337bc37edcdb444cfa89fb25e8a416d217cc5da2570ea84c497119fb55a29689805add4d7162b0d87a6268a8cfd9a254acaa5c91321733fcd82f272da0462cd489fb3a274393685286c862afb08b0ba0e8f3c12ec6381cff8461e3a40031195e2418da17409ac6df304aa3abf1f38890f9dfbb66349c8b65caeae3cc3312e85f70da12a113256b3aff2313a6da42dee8ebcbff0f2cdb6a7d019196082c6a3b7d895a406da242fcfead933d64bdbdbba3d9e204648fc3a49615582ee28c7fabc5a1b53295e3ac4974d98c7c5cef005805a004b25120fa43c1dde60885b81b522480732ae0f6f30c4adc05a11a40319d7873718e25660ad08d2418c4475b2c1eeab011d95282c91ea9469f32f6e17d78a201dc8b83ebcc110b7026b45900e645c1fde60885b81b522480732ae0f6f30c4adc05a11a40319d787571bbfcacd33a85f28256b3cd7f61f6127aa544d1c92397e7ac381b00254aa260ec91c3fbde14058012a41356f29da9b209f0f733d0b8ea10818dd3c5bea3b3281efa542707feea86543145d8d0612d52bdb3c8dada6e43213a46d47261a01a0c877adc049e9b5ccdb64ea19fba5da9d28784bbdcb0c4da33f7a176940ba97b200b6e9d4649249af27b65aa7d59e075bdd4b32ad3cfc6dce281bb7bb5cae0e20abfd81f49fbd8ccf81f225cb32005ca832d955678f0902dd2892911de2da574ed2983d5c368e215cb617b00bf32c162d46b76a14cce737f2b2448c1521560ac0ccd50232fe1da5c3e05b68f9373ac72a4237df4414678514f18a70bfb220b3cd96bbcbbd923f876127fcfd4e4d3c526f274ddec78c0d20a5a287565a474d138b5d3bd13c3f126cecc2a00062a77b44005d12f491b06d584a74d0e63aa28a7e683fe6925151f22b756975610e644ffcb4ee664b11f84f83d1b8511fab5e00d4d0d3703d52cffe3dd279f8bb6d1f3b9855f67d932f7076d1be5889c67fdaeda39dd08114f209d00a5c232cc8d08be3f9167feda9dc4f1ba09ae39305b61c4a7da6653fa7a05570ddd24ec971b5388c112e37db39c677c0b00e8476061ae7b520ae549256bd0d2ea688a035fab1ccfe1190ed9c217301ce3a505e6e73aeea5e01e9df0a544ff84e74d125d40421ac204f36ff32ff0abc9b78490d2a3052616946d48982ac078e0d1546caae0bb9945da09413dd2ee55276812ae5cbc2d5a4eb7746d506ac270d530f56df82b94aebeb0bd6d9a8c5a022a13448f7b8b281e295427084d7a07f3a6ca4e4853834a2eb297e4e9ba4b0538985fc7de1e2929d402b27dc5d0858a7b259e6a1e88a1834c2358bf6ff76d88812b83856be70ba90735be00e12405db9b4b76fd499ae9fce2adc16e5868d931950bab67569839d6b4353fbeac0b89dd365407ef948124ff8eb2e0f82f0e3c318d22d9962af239e8cc3c05c07de1b79cfb8ea8e38d1464f031e04856e01b405213b95bc4871ed053656eaa1acba6e9c5e68cd69cdee3ff736f507e6aae9d517fabf1d67fc1818080a0c47fc83ce01e533988e5e73b12106d6c8b2363d5195ccaaf67324cccbaf9bc97c9edc8cca089ad3b36805716a1edb279ca781fadd6e7d415b0929bbbb473a28e3632794757593abb9e122e3d35e2465276b4037937b94c399d8ebfe9175abd26f88db0504c969bb8efd7ebe7f8ee1273380219fa8a8eff5505eeb87aa679e6c57d9f569fbab0db4d340db9e4e7d49b6a34d4371ee0446493eb6bb5bea4de5230a56129ebf331e1e2f023bf81c7ab54586e402773efd7f6f9101bdb8413e74b687e76d06782a54190620eb876618ed3c41bb3e4ca6cff22042f834f4114d6ae1023dee8ca0b966a1d1ed3e97b1116383fb6f9658e516a943ded1eeb97d9e9a3a88dcc558d6390bc79560d05e7b2310590f0f320cd77c15cce1864f1d7f079d4cc19b40b4a29a70453f2f5c393f1b34520f381320af5b5273f0e09ab326e0674bfbf9b713888dec30b2dc325b0459aad3fdbb3f37ae78f61cee14d185419bc1a72cf6d5cabe2af0461cc50e8a36d8b6cd1d702d971645dd03d3284bad39fde399b5ce5d0409b7b324b724447ef707014c67035a9a328158301a16a503fe680f9b9350253f6be6ccc3e89f673c1754cde75de7274c4bf013bba8ba57ff21401f0837ee8691e739ae3557b0b3407e1f1679ea00c5a088e3a2923b2d2bf64a87b5f25b42628924646fb9b79452a694a40c43084208b5074dea476d09f8526b2dc912b4524a6146bf4229e79c53e7e9e0afab9aa4e24c9d29279d3aafc7ab492066d597d55a56a69a4f330b5e9452cd88ebac3ce1e9e09f3ada3c62ee84518553ddca132e0b8dc1a9ebf945439ca2cf2f3a83531d7dfe9527bc1e6fea388eedea535dffbca0ffacf99effd38c74952b7b5409583e7a9b3a2dc3320ad94e24a4338f60199e3ada653d1fb48661a5bc9cdcae8580a68effd49af4d316ba1e803a502cdceaeae910427e27fa595dfee9adae5a4668c5091591d0eb51a966518d5ed71e73549bd7b5096993f8b2266119aeab2958915027a2015e9793beab62d98a0f50ba28a94f89a582cbef38567661096c956621ecd0ede8a5178af19c35c6ac437d3b2ca77cd2985806fee329f2ed710a36d45ebc7ee1eb019f0e88b5d61765e3632e8fc15ae3ebddf06bcd5411de19dbbac47039ee0c26e3ccf5ae3aef8be1d964ae2ecb9c9639f55f4a52791cbfbc828b1fee9de6e986d23e41546888c7af389ccea17685c2f91c4e676746880b7a2054d0a316f51cff701f6481e80fc7e367504996f0a7dfd14b45529132a769245004dae1825332fe70aa31ad3a1681aac4cbaba02afcb2f573c5ebf1c5c582530d0673553c19da8bb7a3ab7829f8b8c8f2875f52190292f163046007bdb44fcbf0536a2d0af5cf71edd3945a8b423d8f5be5869f526b51a87f77e24e200f3fa5d6a250ff2ee44271a765f82350cbf0536a2d0af5cf717187526b51a8ff0814817e9a46e6344ed3c899198efb47a1accde11f4aad45a1feb9206ca457b20eec2a3388799c5c66279279862ee476a138c41e771c42811c2350c35527732ecb1cbe518b41d84e52b9fcded9e973251b004e54f87a7450137f1821f1dfbdc1ae56dd32cd2d846d2af0f5800dd43290e190c77ffdd137b8034a193d7af4ee23f136b482caed7980e51e899c467d3bb865e8f718b8036efcd0d26d053eb8572e2f413d446d9d7f7cd8587cb951eb29872c437cb851e6227c4b9d8e40ea80dfb236e79c54fb4929fdb703fd0e89763da5943e47a691e3a433ce8e1dd34dacedebba28b59e5ed765515683beb837078e1849c6da088b31d7df8d033b8225a4ff4cbba53d731e7fc8ebf162ed608df1e79cff7698df21b9736a1fc86898ef9ab5757e3b1f7c6ca0ef96253bf9f33dc7331763988ba3ebdbf319d2e2be0cc8e8d2f8437d31dd166c672fa4407d3b6c5bb87a0f460b6f3065948e909be172709163eafc84bed8096ac20f4c6841122c2e73979f13c2e5cf3133451650a60dd408e392de778d151319a3b707b97b8c33ae4690359b7dae1a50b27077f7f6fee9ee21ed51aaf163a7c31f3e33fce802162cf3b8e02e74c1326a4c29af25de1ee4dedddd575fdb4dd32335d66456438acc7b48501a4e260a90acaa5c21658c1d1cf1431057445903a787ed86b93844072154463f097951db6715a131aaace2c383453482ced082e568e4ac6a0b6d61688a1339f47241070b2c98770b4e3026ea12ca3da1b0c2b27051f1c417528c3ac58ba04ac5123c6ddd3705182b29959261dfbf79030e39a860e8867356ab950ac8e062e4d29210e7be284d480271bcbb7b48ec1814a3908edd4377f717340a3b540b35abd56a954346164ab3e6e787cf0c3f5e942c3059b910cb3fabd5aa8821a89cf2061c5e9431782e7f8c3c448cc0c8221e719f518128cefcc0c0238a1967ecdcc7292b080154f941320a98059005194c86a87133b550031e5aad562e9881cff0e345015a41283108295c81c383229c20c5131758b1440d26373babd5ca043ca2d8373d0c1de981b917e507e8f2cfbd699a1a27abd5ea043fc0e4e42a33fc00ba2f0a149600fdac562b227c74a81b8525745f9427045d16424114220cc1445e4baab005253b0082126930414a1559ac9103aa85234cf37c58655c188756ab550a6ecab8e2f2fbb46a7c5e14299cf1aae86c210329668005137c9e08029532acf0c1e56dbbe9e1032ec4323942109870051a4b58f003113e980a2d2c410b54e0a0f7108f30076f86340ddd6e7cc902b2a8c2e51bea379cea23427a3872c3dc90de86a494f11304577d002f08d0e48ab878a8015cec3e296640218d34ce589db1aa52a58a19679851c58c2a660c993134065cc2129690e9d4ea5d58f8af8a2aaa10230654a0827b61e163190da3fb987b52ee7b2b845ac3701c66c7b1dd43c7a1ee18f52c4629e7f4c2c24929ad58176a4d59081b8a65281076bbc7e88c592902a11682eb4008a133e642b6a1507a01512184cc3cc67ddf2d242446963c27a490330821846f1a8d50261ba3cc065a4b226dbe92a98cac642af81a4208218410c2debcb45222d952a9542ab9946c505f4c17ad26d818638cfc356a1d7409613bf8201448323117b70e628e9f0e8e3b458c210615c2b01dbd2e643bdacfcc53983f9cd30dbdbbbbbbbbdd319819e92a770438fd036ba4ab38efc0716c43b1fc5aa6a34818220003a2b75092040bc276260c082fb01fb01f989999312fea23d517733961e1bb58ea65cd814ae4c2f750f7029713de0842ca14270a607c613b13146c87d129b12e6c8c944a1f7ea0930b9f91dc38637760c04c336c2ec8768f4ae7c3e5ad8e9c42ebea601aef396b22201e0a80618ea8b548d74a2d61a6ec246219b5b0d69958eb78c0f04876247ac95eb07abdbcbc306431f232157bcc8535cc9e0385fdde8ba20ec93512f386a8655d8c61196ba217b127d82e807e30f71e1637f6885fe61f056014835db14c851de930a819c13053a63282e2cd9d60e1d661a291253d197da57905ae58a20ec9c5ec48a4aacfdaf748a495955209061e33ef994c2716969616930a655d5cacea25b3e1fb9e0e110c0c0c0c4cf46618f84e514e9a59d955bd338622118c09eaf3d7fe9ef37beeefb96f26e61eed39279c739b74f6494ed32b3d4a5728a9b3c0d9e09ec3376d953da975d591c60596892c186456443118d6847d7be80724a6acc0a8ecf7b29968f49d0d1fb87590abcfcc590d315ddd308e39d8047c6b46013f6e1862a487249c624ef1e5cbcc2930384e8dbe1f8eb6ce24b2725e30ab8104f79a17f7ae1f9200e1776cdb01462803e450360b12c39c0d0e3661bb8736d8cc067eff1de09d2f1f37941f7f468d7bbe38659db4eb6649ebf5737ebcb5b9f3e1873bbf5a986b0cc49d5aafb1c6e5cc8657d7d7b8747b4f47dd3ae738756ddfc1a971101870e7b60303eeb4793e343cbaed007dee9c9c8fff214b94a4bea669de8640f950c2dfdb10d4871225fd4aec9379cfdb53d29b6d19f84a7883ef034316620b2ea005e40789459837981feff226c2b11f2f0ff03292eb1a7f3ca2be08b0035d78e19412085df9d1794a09a8dc77dfa52cc3cf908cda4e9e60828a27a078020bc7814038e3720efb3413a71e136c409140020927b5561d211abc874fc77b4ecb3ccacc8ed332efa30998b9993b3a43cc99b9991bd51cbdfd4513787333b764e6c8ddddddecdcccedccfdde7bac7133f7637ecc0f8b42f38b47d572ea3cced3efbdeeee7e19dddddd3dbe777b7cefbdf73ccef75efeeb6e3ad9a2dddeed17f6b2b77522108a35b0f0bd85b2eedfdd5dc55b6beff6fe4da4831d2cbba2b8a2b8a2108da2186551645164515812a43590420a29be9841c5ac27d613eb49267a22c29e604fb027236b85155610c1c493f7b8af0a31586f6f5427c6a062d613eb89f524133d11614fb0275856f3c4a793345407ca3c0a03083baa735de7e1363f19977cd995527b94810f3c7613241229c695f6e8038fddc44ae9054e944aa593c9648a91a53d32f1c46337713af99f3295bfd7ff626c698f4c3cf1d84db044b8535b8a57337bb64f94f161ef558fb55eec538099aadd37aa13843207bf1bb36e10f293030e403a0c091a614e1ff0c361e6d90c35cfc75692b4a4305b58c86fdf82f48d32caaba1581216ee241ee12402960f7712c59b70283e766565a5e44f47a765a2946640759e0c3f35e2d9c0097346d8acc9b70c7f4b31994c2c6c03853a9d4e2dd0642d0b96b2fe2c99ca084ba68addadc3a9f7a20e4a47670896ee5caae3d3825d161549f9b0d58a119e65f84e6a6cc112ee96c40e6ac0048d2c10f10424262023094220c28f0c86a04409f46209030f67c1c543032a57e8c10d8238010ea0c878880f91201d88009520d0cc8129811392b04510860004168088502311d62c8115aecb58ba6f4a1128b8d97d538af8c18ceaa49b096b4261b190375cb79b8951d43899e8829dfe3033334b6666666666666666666666666666666627cc197ec439e79c33c61824638c31c638e3508c50881b18dcee30f06829eb4d8c31c618671c8a510adcde3f7c66f811e79c73ce8e71ce39e78c73ce38a38c42dcce3de7acb36e42628c31c69e7d7359df5926a8c0d46f7a183a126fc0e9a1e48b29a814810a5b1042127800852564e5313743bc87212a9840e366b77b4117c780858cd29b996b66de06fb80de47c5136154513906d6ba2624dc1794040cbc404208142ce1e3e3fd3b552803fb8e7023b082222ca105501a558ce1e3fd33fdb812aae46b0891201d7c23929a4774c1091fa4208c287e9270828b283943e0828beb72ce79d3eeeeeed3299552a858b1cc9055b0c800c3884bdef4d54489ce39e79caddd70596498716d9b10e66e5a8a112eb3664862652cb1691871cd39e79c424615ee94c2022a6778ccc0c083054878608512385aa021861298f0318d7027132cb38c26ae6a82248480041e10b1022bc4f8d9a20c9d27b6b866a85cc334250aa690924a2aaf1f2244527a5d65f8101f22413a1071222ae003842da421b4460e138a50850a26c68842d704fdf099e107c50923075e34e184215c71c5eaa78ca027c2b8a4a4418460c8890ea400a5062c50438b2b74810328321ee2432448072297943ea4696a2495b2460e4a17cfa039e725e5471f72d129a458e2cef99453f5e79b38c53f64e69ca08a1890f1021e4491441322dcf9f6883bb9b0c19d955ef4a2f26f660ae644f28449159230c41249acc2f031b3b873ca5009eeb4e2cead13127d880e375b0f426ec021871400f9bc8f8a27bab87d1f154f38e11c5b48ef76f87f23c2eef6a674b677bbbff710b6777b84afdfeb396150abf7f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f47885f1047d752fb1f0a3d5dddeedd6e7ebf7dadbbb7db6773b6d8b2f5831111d42f486ee9b019e0e865b0eb8a3df1697df153a502755825a5717bce974e931faed6077c5b4601f7358d66bd8c75c265a42243fb648a8ce51bd6488dfd1eb773c8edf4a5d7e014019e4f6e08eae0794216e18783d7a0894c1b70777f4e601bfbcc5d0bd9fd93bb8023c9a210818c283a0f6c8719c0cd7990dd6e90f364e10c8382377bc1ef1f94611b8017c04ada349c03938ca29c33d1d695838e15b000ef531bfc9dc7c65a19d943aa16f8ae2cfa1d81811a59c0a61d5c2cef9f3b6a32e4259f5bb8b6037307f6e91f71e84f3af6756b98939b6d11616b3ebadccae4f59ebfeefbd4fc1beaf69d78c4cf64c5539bbbe6a61f9eb14d50cbe16694bcc7b69998965468ecd88cd6a611042f84aabd7dd534a593578fd4a59ebadfa56a6aa6f5999cdb3ae4c0896a98c6098ff7bef3d7feff97bd9fbeca3a8eeac9cc131f08fba95a1bb32f463bbd2cad0e52f2de1d4aa94a484c329bf34fe59c12ccdffe732ed5ac22cad5eab35198d4cd689deca82cd6bab069f0eb63429b228a69665b960145eab35c17e54c2b9fc97f6222dc912fe42bc8f52128e81bf662adf4aab9faeb4c329242a8f125866735dd7c2d69da763347f766880ce27ac6af05e998df99e8cde16bd188e6c88e663f74524849d5a5c0fc07b6ddcb941dfe82b5df186112b53768cda12d0bafa07caed268fbb53ed4929638c70ce395fca97994ace7f1aa50116b6c484410c562961855766437aebdf0af415087164aa68adac7cad10420831138426cc04b11613f62d96c94b8f3d84903e49bb329b164cb6b450abfe84b0a44169d2ead734497bf14994a4bd0ba1dc486f3d6983356c41af752b6d1d8c10420e92482412c982d6c21cda955f81b62553d92d060b6377c4087663d46aad3faa293ba2d68d2ef2c70fe6ead7afd8129ad37714b32e2bb35979eb6be2d7181f5bb265aa68d1da39b596dcddbff458dc4ba59cdb59ced2f2d2a565eb986fe96bd872b73c6e169211501b9f623a4548efc38d6ee55b9dfd237c650db36026b0dd11fe97d5507a125fd2926b9b6a356ea527d95290d29362cbc777a6417d2c7d7c98d540da3059fa68c5ad8bd1da68b414cb6c5c3e6e45e293beba489897cbe52d98179701642a5a2a954aa512c996e4c7ec5d6b9f45a38faae9959598d3b1e4b164f9cbd1b6f2b6c8ca474ba3afbcb5f926357ffb3427c7b23ce96de417b1b60eba64d94ed69b2cd2d6b92c511c998aaeacacacac78249156ac15cd4b4fa966437fd29fffb212fdf9f3e968256a9d5f5b3303a7ec5792f6ae2953599256c39cad23eca5a4180e6cfd8e8a94d8f9a63adddddfa594ff7690d64b29ad4d6a2f4e19e3cb9fd1a547f79c95d880a1fa76d833eced947def991e3eadc9831ce3667ae2efdf7f0dbfcdbb8e047353a944ae3f6f98814a451791992164c853cc20e862fff741eeafaccd003355938c79cbb619ba86b9189f4c3183a1dbcdf8702e24589dd8eefd08891cdf76941667367f316a6d747b14cbde9926fbf82fd3687d0cc3b6ae6e345a7aa7352dcab64cfc199f462ab6b377333117df32175f0ac1ca33c078f18140b91b63eedec0fac7445ed51703e190d7035eb875631f99a184ccd8d6c18f2f8848cbf8d3ba75d45e5b67a516b6a397be3f4a3e8c846370ca7a879b3fe370ca4d9c12aa813a30c29c27ef51c29e906ed18987f1cdf7bcb8fd615c4a061ab73f42df7cbca7a393a82fa6a33f577e6589dff13b7eaf3ccc542c4fa10ca6977fbd1efdf2eb4ba1eabf47b37d676f45dddaf2f5515a3faee54dda7b3b5abea4b5fca6b574a3dbf2adb5e0b8cc95ac12f3b8973a7d7f8e973af5e95bfc743afde9c693fa25002ff10350fa97af24ec318df636fe7dd5b424da0bf13eb46d89966f7997b7f15594a96c6c31d8161b2dd98f775bbec2cce6a4ddf88addd0e03db568ce82bdbcbc3ccccbcbcbc33cec110da3c75025d3cb9769ccd54c52b316cd992b7ddfd03a784f5f596edce81bffdf5f4d376e7cf6e3dd1b5f51367c5d4aa5e7c16fff0ea3db9b28b3217e6f3cc05bdabad19fbeba608ef53fcc6c4e6fe35f6673fa7eada505ab2d1b4c90d3db781b278a04a7605e3ee5e1d4cbcba74a70aa3f7369e1d4e9e5b7d63bccc97fad91604efe0dad795a38a3e18666e3ab8d87281b4a5766431ca96c6c30416efccbbfdcd82476fa088000bcc3a0deca6c881f808d077801b075fda3a7990d2598adeb377d4db7ea64437b576636a7adc8e8e71731fd11784b6f437bb7ba609d4b6bafc7e8fbdf69a44932a0c77e18ad75b43e8239f92fa2efb82bff24bf458342ccc977d12018ccc937c92f69b00be6e4a33408241ffebc1e3e68272f2225167671dbc99572e8e9901f95b0a76ff94e0eb5682bcfa24526ccc93f69518739f976d4a536b5fd7ef868e450cbc897434d4d5b474b5b67477268658b39cc49122687e0578946ff10a71cc620f1e5903c4356793d5e90f84dd278809744d2de1d7d26873a54d53c302f3974651773ae7cfa73a4296d4961d81484cdbbf02b84453c4e7d3bec0f5cdc27658d3166ee9b5284116e1dd108a196e1d65d9b908e4a1aae65fca3101c38f5fc29fda14148d3704fc69f721032b14984781ff3e7c3948d5cd3506aed7376f7ea72238c39984bd926f42bd6bd35991bcefba074c3b61cef3eb1fd53c8608c1bbfe36016e30f6cf77eba1774e3c717e2373e6d1a19a70960627f3c006fc7c11b987321ccf9df46c2f6bf21ca4563eecf992f77ae5bc765ef33535d17bbb33b3b650e3e4ec100718716fde91032674aa849e6278989d0877c5fb526f28f803b4c3320382e8494524a19b611d6ad6f1c58ebbbc219b7aeed3b7be6acaf5aa6ba2eeb35b11ddca96d3df481523885c15b99b3d9049e0f09e13fe67ca34d30d71009e678e5a3a62c8e4b2407e6da855c88cde4c0dc8ef585cd8169504c2e95258c824978a43173c61be33e3072e02a581e3c666638ee8180ac2b582018ff47c513675c7fa8c1f8e6ede296ffcbde2359e6b871681a9b1704b1ccbb2f1062ee5dd7dc8746c22d0aa2be98f7ccc91b4f87fcc6e845a977ec186313466ea8d6c5586d592e7a4fc7252408e883b44526ec9b328534eef53370ea05ddebe5c3a0001e573e91eec611d48dd7035ef938702abe7c548e23ace847d75fdf3da094b52e8d6f604efea535134bdf0876af2762e4a652ed06e6b2bf341c98cbaeed01cc65fff5afaeb4fea5d5c78153ef4aeba78601b136678e5e4f87b0359de3ca1c36fb19183865bdaccfe349b9b2d630977dd52ae7e054f79796fd48b3ccc9176926e6e4370e6cf61f233f83d4b22c0c7bcbb2b61db0adf37bbd45e9776643fd0bc3b04aa735e984ccfd95af2356d0c51ddd37450541f791ea8b3db04fd6ce827ddff33bf8f0611118e10ea34b9fdfeb9159daabef661a5ce3625ae7c30f407875314c74238bd6b89806936d34601fbf08b6c10059c08dbf801b3f6e3040bad7907f045eff6bebe87d2f4898bd05f5c5741e743be27898a96af62208e1bf1de05708256416bda45a976d1d74adf3cc12e9c6e873ef2ab136c2360eecd53bccccc329ebfd67fabaaeeb5d8b79774f59ff9bbfd837aab3236cbb61ae3f66e42d39227dc3a9d78243833a1a640297409ce61e15a8c51bb5d0a772c54b71108fb3e2f5f0ef8754a00c924bf0641aca20375edd68282dbc31104f477fe749dcfee7ec9108b6e39d1798af6198d948e797a958b4e66999cec2ee6061e1bfbcb4fff23053d9fb02a3bd5b19736bbaee5bc75febc45e96fd48eb6eeee8b18a8445a277ec5ff696dd5dbe4c6e9efdcbbfa870f8967d4d5f1c5a1078adfd91d6f1bf5cfb353bd77fab22c709a77cc3f15c0ddbbff0f09d535dcc0fe0e1d609e079739ecd9dec70738b3090cca10d922b5fc4228701225ff436f245f2452f829f699dfc977740cc8b200037911200bc7df8823f0effed6bd43091d6dd5cdf60eafb4b98faf069460353371a908c6080d4cfdea67e36aabe3973f26faebf48ebe40700c63c7d6c1329b1743bf20078cf6c8879b8158979d156e485872fb7237e63367fe15fbeb320f65fd81eb71de9bbfd003617c076a42f8e1a70fcb675f0e2781c95c22ac25216002fca543658fb0a452e9f3ec4b17524b8a2ade33fd2d09d38d18ef475cd9d388f8ff55782b97ed7ac26eb4b4dfb17b4eee6bef09da9b4af94639ebe734a4451f02b0e1b70c4fc630ebef0236deb9da661f9a694651c80e48e44315add8a689a7c59105b8375eb6b54049f04e19f34d1d77fe15944ff42fd22f5315bab632fb3116d1d5fd1c73cd5baef865c0847d9936836b2978e581ec793b4c73238b6d146ffa4b1688f65b2ad4335d55e78d1e86f7c0cfce601defa22eddd17b4eee53d03823dcc82d8c71ee3cc01483ab3a1d63ada6a7d50935feb8d2803221ffecb449b08e7b34d84bd66531fab1a5f8afd53981fef56181bf8b442df7c7bf9237eb77ff9ed6adad7740d6b9a7dad13725ffe86d60db92f1f00adbbb92fec4a8c321500b618ac8dafd903905c1bdb11bffef5f100af7d9801395dfb30da8bff5c616180f8d7af5bfbd8effcc7c6ed434da4514a21b5c276bd53d35683cec3e33c5c708a07f71fa0fa5eebd74c559dceb7c60603849f3e752acc490d420861cc5b613be7c9dea1702afb7ea7c229ec2914b751b70afba6900114b78343bc6a1a4885ca0af20ac2214ef1100d07e6a8344c13961cf0f00270de070b8bf3b046a59f0a8b6817e3d03d66aa2627ce54b409cb86f33e4ef32429123b1d3ffd9697f0254b96ac62b8c32ffa16177e5a84be0ba552caada3dff295b6b8d016972b53b56c315817171c98739747a46986607925279613e9a6698628bd9295d2ca4a0f4d3384e995944ca513cbf7c355d30c817a252614cb9b4e2c27f92c7f7a96377d3fd4e114a5e91d0e1ec1a3849326a04071bb4f268da449d1cb67293f65ad486459f2cb29ba70652a662b53d148c5768f8a532982bc7595aa1cd6dea1d45a2a165ec83b4dd339b8fd3db8fdedc4edad773ae7b9fd3c4a6846883017a9b0d6cf87cd17ab7d02eb2faf214f877c7f7e7e9e96cbdf5050299eccbbdd88861834f164dea55bc75af3f44e23d149d896fb6ed73b403470fd7ba79178915bae6f41a25893040824e2e3e6adb33ac63825942ee34b19a3a494d2f894b28c31c6fa24dd226f476ea2fcf831c618639c52ce18f9c295e419438a7d728a1f2841d923126c49733bfb33b7672a55bf4de61fb079d7379b777b9bb093a8f2eb5b50b0392416b31cccc92ad231186386b1c644beb070eb2e5b62582e077372865350ce871ac7028be4be191154c065182ec75cb6515d3e3f6b6f04472317c1cce772d4a29efb19eef6d6f1b81d47843969c40ab67b423638d5ff58eb62484c22b9e8d630ca8504e18b321524225f6b6f8a50cec59e74c2d64f7d3bfcbd2ad29230a55b13d1271189688c4e5fa6e28f919932ea32a594d6b48c7f1220983ca0183395f53153d13adb79581a3fd5e2db78006b426e60ce7f44b1fd987455f6b08b6f0415eba4941fda5c4118c8d58f6d3698a38f69f55babd16660ce9df2a8699502ae3f296d99f3374561bbbfce8306363845b7982877caf7200b0a2d18e3be29453471bbce999e73fbe7ecd856d794a53e62005deba58f1854aef525eba58f1850924c3105e7760ea79a9c1a8b5a876192e6a4925a777777b7fcaef4a38d73be7398b3b622a522f4e55b1990d25b1beb3027dfda5a87b9fe99016981a5df59cba9ae5b27a7995452a6c230eb5f27bf48e9e957b79e7e7fe93bfa72a3d6538b96348ec29e34a9d39dd47949b72272631d262db0a5ef3aa7733865531a8d9e8ebe864bf1fa7d1910b85ab18fcd80583fda4a1abc9594d5401fbe1df4491990be2bf4573295f5d584751684bec99405e966d8a252896efdcd3971ce2f61b77a8c9607a6653973d9b30e3c661e63c92f194515dbbad2d79246e5088e468fd5169820f64b5fda9a9cde3ef6f351f65d9a9cbec22c2b61a3d1fc8a3a6d3ea07c2c114b599092361f93b2a3f1b644295b3220f1651cbdd4e69766bc356273c619e7fc181fcb54f2230df347f56f58d49af48666356d6acd84b9e8194cdc82c43b7fded177267f6a7e7a4b6b72da9208f13e4e7f7aaac1cca7618a4e13d4bf6c996ac226a70de77da026f07ca0369d66c2dc497b3e3a87b99e7f3d9df033d5a439754a6d078bb9d1530d636ef4f147a3b781996a56c66036636c91a3955f79092184107b10420b2eb92553a0dba8d4ac598872142aa20100000000a315002020100c888422b15012a5b92afd14800d7da65070581cc8a230465110841022c41043080006802120244334ea00c54967018875b6d58b55c0ae2ff8487cfd09755f91c47746cb7af41b2aab27080257660ba95f26053e1979baf8e32bdf612d5e5089d2bb5e053e6811384bd26e5ba3a5b5d401655f0e45422940983eacee2d41b7b37d72c90f7ba48d4c0f11d699580bed33415032fa4e3ac8419cd4c82435d957f6e97961f8bd82b6e190524305aa88417aea54436acbef9620b578ec713f3e5e52250e38ca0a0f05b036b45559ebf3a0d16c1baa7f45a9ccec4f2c547c4e8399b4d4cd131957cf50a7f721f76c88edb2ca298e39eacde01aa6d7a337300453a7edaf20d6b3d162fedc01020925295179d1aa1996c63a4b7d0ac70bd1dedcf2517ec8ffbd9980df2922c218f006506d3e254079f01bb2ce800cd1a370bf109d6310d6819b7c581a94250aaee90ab1142c727ca517c1205da9173b2524d0cf033b04aec17c814d89414fc224f059d3a7f40a2f5e664e24d483ad97bc842b8d32571e79c01e5321538435fedaf18cf12b6f82b59baf2e83c9fd687d6e63f0970344a66e80ead622558c5536a4e7027642b0b0d2fc7f19e8ee6e62e976af0e436e0e872bf4053ed814205301d7d03e42b95238b4b993b5fbfb16c37256fbf6bcbe004350cff1bd97a3a0b9b81a0224fdd0d3f3d9aec9fc7897590090eefd5d57296bbb14725bae1ff1cf5cfcf276de7cc28636fff3cf812f5d5b580ef8eb10ac84beb76d91667a185cb5397c2426f1a2f40711b7e18a6f441d2ed58dab4998cb01faedf0c9c192cada2e05ce34d6068c27e01d869c29831c37ddd6869a6f28628126898f49270b3a2018a2b8de446ce7ce4d904d46eaa956031dbd5341e3988aa65b02f38d0b23d4dd7fa24f4e2398560ed79b92f808260f2206b3496da311564fa0f36719eb5f34663de99d87e2661697aa5ef071ee9dde13a4d0976e20d708116c74d7042c5d6a70446bd08a9e8e025ae56ae50ee231bd084e3471a5103db0f34a1401c59d30976ba53b012de9d18ccc5510f2f011228427023a6b30bc27a4dfa142e22f1afad2d6eb64b98aa9811c31c87b338bce01dd83082070e7e024d2100c7352fb43f794552c4af56a8acfc4334fae7bbee76e191c12315e7cf86526d887686d70e36111261d46be794f04e7272e5865eca9c53bb96191c17c02f21055867d2154ea28979fdf9328d6939fdb2ab5acfeffb0fb9ea8e33dfe053f2660fb024ec6766f972da92a187441408978bce736c167398572f656a5aa3016c7206f7e5ff856d44664102e3e7b9b00ff22e06e2049859dab95400ceaf89e94700ecd7ee93f5771c5515542858dc4a36bcd49b699860f378b619541bc53427cea348168de0a093b574d3af0ffd4e26d217acddd00f273cb494a4cf9dbd285a2f4e02956a7c7a0ccd552c335e4318adb712d582565107251f9f9b4486b989399537768dd07c68bbd96b1e1ce8742ca866f4826a331f6ff7bdb45904abe09991a66fb0499b724fe86d8273d0bc18d8e0b27a6d4a0865981b540cd98ae076db16f4242dc86597d5de1434563a17650e02769f3b2f4051513f9d3e94369ad93deae9f087c507ef818dc370287a2571f740b50a540663b07d4c23d280f28e7b2eb0272ae253cf965281bc3a947b4f9f0591c9a6a3623f7b779a399b194616371df1fdddc9c16a47e93248cd0fe382b396a470ca71ec602fcf4a74519f0da23c6c1efeed8e140f3a85abacdee51bcf946b66b16e81b165d5c69fb87f03e01ca876e506e02fad393e2fd2488adc036e36847f77b5883f8f7c08c79e6db27ced74e2f93184113e5035d77d5edce9ceee79263144010a4d57dbb7e869bdc09110ea78efed83d942510dd64ae4979bd3a488e84cc7e0491dc31472a74113f87f402ce98c6308fda41d3af151cd617253699ed84936c55c07f630700cc5f53c9dccbdbced66ae7cf10e31e00402d6a42b852ac373ac17deb0606b61b10e853a05192ea46990fbf346db4c6ba18b584fbe2864a5a2820f225d72fb9a503b099470de36cd5ed8682630d8f31577106cad66e1178784e6f0a4ddaf3cbc563e50f1042cf3f2f4b021d3990e1d42fba43896a1452894cb52df4273a6e34622020461ea9660e502068b15cc700ea8ad80ca8ca4b69641c05a238c5be3fa542740ca9cab76bc22e0f7f14732da218e93ef22a4808c0306fd1bc77166d314311411268352e220ed19bb506eafa026b35cbf7ce1bc9bd7d687a1075c42553111c2aa4581cf41824b2f92cbde422364e174c8c0d5670d5da7bf3231862eb0771e51a2ee61dee9ffaa2946716739cd4239c62960081ddde2877b12290b90993adae84d3a1ea9b71c649b95d60f4ec12c7b6c18bebfdaa567292b0fcfd228d5bf01e6061148fb59e631ad869f2d8058468f3d0f6b49d55de77347059bbecdc2cc04493492d90a1fb80b68d46c3fe047406fdd631832c2fdcae33702eeccf1a57c15adc8c88ee098d2285892ef8440042e8f6e972c1ba37a971f03db666a3fa78ed9843050d3f12bea964bcda389dc5b4fa0a180d00bc5f8fcd6a2103d690c2fd9ec4aa1edeadbac80b8c2cc9adf39294352cda624908502e57d0e590b658abc9b57682857be52687a5e92c271fb9f72d913804cc0883a0fbe6f7e78f2fa790916cf869a7698c319f0e5f6e473855041dd55325b9c8eb099782fec920b83d44b4e1e0a83800f542a13b28532571ffb416cacfc957113b1a9ca79d2a89ab0ba24663091b3661d45d6ec8f0e78f80aaca69864cd2ac7926620a76f82ab95af8ca3a46373ef7642c190f42f0eee45be10b6f83474ebc726e6f718caa7185b8ea5649fc463b3d909729d6b834648ff504904abeb069abbce74907800fb7f2b5c6dc6db438e4a5e88d9d663a5511684a8abbbec3844dc525695852d8c119167247699ad8388c99b460a13b8cc6fdb05ad2de2c334af183c9862418b3553ef427a1d12253ac2e48e4d989788078ffce7dafaf4249842f63eb59a3aa45eebd5da61ee7d2c16a95425cdcb05dce1ff7bd209b5d6c581d6f8f647443696f584c0c07216c623eae9675ae472978290337d05bb07549cd5fba1807bef44313de98832192ef8d2c4d062e19968895451744f0edd7d548c6dc07cfe5f8fb0f572f556d1bc1ce5bf1d264a01eb40c6a10c4142a580c86dfa7b4d15de5a2ee9c24d164980cd2a5ba3af2dcc4e552a92f52d72bc6a9133dfec535b2a121ff6bdedb960b0964b2cc21f04470a3e9dd88546ba6398eee5f24af0a7b5c5e4438248f7f312e33e0051ab18ed7fd36b049b067b7554ff58852f37a55187738a543b6c2bdc045b49963497c534c87bc4ff78ec1afd1640da565de615c5e66af1b3845dc6875a725cf3872abbe6104107c8c0ad8e14387d64bc1e432cd49a6d11f83667cab526636fbaacae506212f438ea7ecce7f32466740482af21e2e900c09be00238809b29930cae550bb74477eeff559128b7476a8be9bde21aaf7aa109f0432d11c0d0aae69d64ae55cfa5e426b81bda6d16d40944b79007a0cac389ea5989b7f263d719c3496991eb8f0ad0672703620f414d4845b29387a97fd3a412bd88534539fe412d0d2befcbd7d120384cdbc6201440dec1dc9bf450567b8b033ec5e37edf0657783c5643b66fd0f81998d8b7cfa6103132e50daa29ec9dab9a1db7a052cd902b55fe139e912351ae631d6a01587690da88e3cc6c1f7765004ec0e218546a96ad8f0ca42f8d7a429a6c97a422aefc4ee7cdb42d8147b1dda9d0f8915d7b3f5927706e0626ec860fb0433be11f5b18c5852ad761a8f39aef58a28f39f0194489bea7e3b5579c9e9d6c57d18418ea94ff5a41523a77863f68c45a18ceb68480807113448924f34149a16c4aa813259576f8386c2490f3a8a202339be365b0184fe7cf630a562597eb191ce6c4acb764d8784db1e2c0d0aebcea44101c3502b32cda65fea9d284cae3cc2c8916d3ac9dc0ecebb39157d5bc7972190c0ddafae115ecc7ec6a25b8c62b478d7c86c06a73f53923f95a61283ea689d2635f10faac8150c9d7eca8ed81295c96fa418f4877890f525d085428cfa7f2d9a7ebcfe02b2ca5a6ff35e5b0495a48995af09c0525145b4bb9afe5bc8b8b3283a060325f5d95cf0e9b5d51a9c699cfa2b7742cb9ca14ba8d75317b30f8ad295b14772ff830d6c1f9109b9c36a277b06f7927a4e51ca6bf6498c4dd2cf9c8e73b09f44cc4b005f43a0d78fc1fe14cb0fa55a3f8dbdca2d1b353aef9aeccf949644ba3c7acfac75cc221d2c009e15eaa38ec6cd498dc0161f598bd65d9dd8383e5e65ce08923507db1ece630817e050c35ca7f3133124681477336ba317677cf321b19479b00329f0eca9c089effce413039a5f109eda055bb2433a767e4d1a02a30541df94ab165e87d346479ea038f39fd08a3e003e0ae10678a24649f798a3b197f23e04a87edc68302c60fd4b842b8dd221119aaa9767ac4415f17f53179ef1b1a53bc217e49950131d4957cafafb8ad26b8c23ada30332d386b553cf00098ee87e0f33fef09962b68cde36a3989f916d9c0c9d6e80db5d1247c0eeda6d373d3d4ff72c0aa3b34c37e770531ad280d10c1642ffb97a9506f0defa1d74ebc99a5c64e6c03caf314eb0bbbc2a16cf60e69092c34c6ad3b5b77931c44ee2402b8384ddeb23dbf8cb54003d86358688575c7129b97e04e6eb88b8d51681e8e390dacf0bbc2735bbefed0a03886d27c808ffee0014950b313fe874fca0f1159b3a97608a4fae728a2c03ed69b51b90d0fcabf11bc27c2052faa26810b8415b5a4fc08b4c78938182e412be58b68b8efcad23ae761c2c0c70aa4b82deac3851d7681fef3af023046273332e6e47133721c7d366c2a6215404f32ed13ac4446abcca0cdc9ee522079d1c5e66dbcd5fe0885d970d19a292e3d28a04719d5f457dcda6c6f9543abc9f453bb85c7370f9fd54ec2802aae2417f35c0e89f2b67c61e69cc9b37ae03f386522b8990347d5b595390a93f05a30bc117247b0fad17aae180a2bbbb6bec27aee90cc4774ef86c1e22b28d42df8f6e5e454f26bc2d264ff0921ac02fefac5492c5628d091002f537605256683de3634b3e6e0eac4f3930400de47115cc8eec7f17f5c5cd9d7a8e2b886bbb1f6182425be4c6aab484c92a9868af7049802784c1760cd9365a6be6dbd03dd176a2b6f7903471b67133c2dc86918f6010ae704ae31eff365a103e986bf278e35aed0c15379e318b69c964100ffd7087c3c8b682b136a04308c98366d9255ef416821b21c3653d1fbcb784996ff64ee160db2659872e4b17ea205bac9220bdcef7ea9d62953231066dbd0f243266a3880ccb1e7d21147fbaaa300c134493919703bb3c8e731c693b413278080373a04d56d5c539766e461ccfe77981e286932282705a3e58dd890ee3b4d30f089b0d294df409fe32aa17713991bb27ebe621e89ecf71ac86e182482e888f4bbe087a506fc94c7883d668ce10c49b373474d51898934fb97911da8734244683cc89ac9b28e4fb3f4e938302f36e6276b6d904479cbf01a0b94f968d51c2eb905cf9e582e434fb90e812b4d877c2db631a2028b2034fe33079d2898657b6dca438efc58a9a0c40fe4a4dbd2e01082e0712f2485569bc4a0117e52d5d2b00d6dff85573d95e4c9e9102f20d543bee16a97c0fe98c0511268e6c2758f189d1b7bd4d78253d5eb83177ddf0dd143588502e00fa27e30e33af3a820d3d02e100cec45a5c33ef01e63cbbc283ffad616203963ba49c09471928e5e006b0b4c66ea7b5d45e0980364c387638bf7154510032e0e660f38059fc1200660647b4f8d865ebfb4c9b4124030622df42578b1e610ab9d9ace7344080f6ad7ad8f0007748580c98f6b32123252835388dc0863b4f8648860934826210fa0cad825231b2d28c1500c87bb75f972406d81487027c210f93e7da31a38b4283a9a606ea35398bce13785e98ca948a5a59591fbbaee76fc6adb417f292f8434167acdb47438d403979d6fb74f3fdd2d4aeebf535ac6800095024cfe817eafbc99bb6484fd30c20b21d40a28688a4bb6fea313ec77a78faad7ef992b249a253d41dd63fc1e45a1b7ee1d4110f52bb2eb6b5c45e8337da067cc7d9bad4258aa68caf3f6f15a6e9313f1f42c2d0275267b234e705e171efaafe0dd7d8051ea85d6751884e2437f187b2f4dd0529cbe80d8bd8b8596b2023ed5978d60c664ea3a352e6548f8db080becb1a2aa55e0f8423e07356bb6eebee24a32cdf27758465cd9b6d04afdd972d6c15e74772b371ece2769d626c92fc7c60819ff89a8d0645a43a9a4185aab96045dcecb5c37a6c8c6b61d703f13639936c23864bcdd7d605761848c9556a35fbd7f6ba7a421c40669067d18ee6fc5e7a605640eb286c903495a17b993f27b14a9edd9d7694d7e284c4ad4403bdf785a674085505c1da95efe9e8c279ff1c87f5065dc3f98e72a7c23bcdc5c41687405ca32d7464308d9ecb8c7d54e011fe2b6047ba610ed305d51a54d249b126c6855e6870d5b0b0306eb13ef95ae5587da5f8a0a2d3125963f2c19d296a810d9a2c5966fe81d2f8265f48cb769d692c7c74908716b53ab775917481e7e0b1a72a0ee4ae40e6faf5176973b5870f83d928bad42ae6eed4a1a7f1d650afe3415dc80f72a3aab410ddb2a1354d31ae5e03600f34c8c5829927650ee46d27c5816ea14b8ea1aef340fa25e87ba59addd1242791826528cc4b6d1da12c98249d536618a269a10dc04da4b509837fbaa1db5414b52755a2a24397855809ab0a2beb62c8ab74998dacc52f297ecbca86eaf2698180a2a32fcd9c9dd3691ffc26689fdcf9a1d9ff1d7c908f974f6b5a0dcae04ee1f26955cb3a0787038b78b50cc0f3f2bf3eaa1673ceab6ee6eb2300ee5e453dfa370a1502f6521477e15e41e623fc9a2038edfe0898a49e0e87c379ecc96091e4f0c13020555ee8dfbda5713410627ebb2bee022dec82ef2e3bc05c86e94d53aceceb060f47c86ba738afee3a1c3816ef1545f42226e2a13e8e13828885c17e3cbd412da49214c11bd4965b982ee7eb095a4fff9b18bf416d8dac08bf09ba157c8bc31004b68f9c9883e763fa3d6bfabf16a8dec119748582b672bd8f4665a042b75d220a4ebea0d7cdd7da69abc1eb21e35241292d74aba1c21c0b2563e7ace0f073bd88f0d12c10bc61f9de6dc02e59fcd231d68ccb6a371013baaddf547b245a65ba320cac48c36ddac67dd62685790a5004019c182258d1a68e73ae11bff9265fbd109e711777245f9dc70707aa6110579891d7c02e2ada26b37c5cc65c18f95d02ac0decc7942c0837b9ebc6846e3467754cbf18144ff5e05d5aa3d1cce226c7239cc507c7492bb63f4d604b93a3b296d406e9dc8efb22d93bf08670eeba85d18d0dce5d22722149b8b1454de8a6184d5240fa764eda4cc4b1529b30a14bc896bc923d6ebaaec42230b78b5bdccbb601c06365f81107f2f9430b548ef3f28acdbe686bd06b1db3dae42fdd399c329a377430c74dba4ee8e67ce5269fc2f6f50644c5bcbd8cee92ff8abbd009a1280a3648bce3748e1a7db0116e9bfe78d2a9678ea546a492d486a12349c8fdfede30a073fb251c882f1b62700833aa6b62169c9934e4a4271e80d1b07d042c90065b1528514dbddd20cdbd731f7d85b01e561084827ccd888f6582246e576b089937900bd176b229df00b3a0da421f04151cb9f1545a812272c7b69129897765dca884e84f9e1b8cb8aa791df50522297312b6d92948e39b419e15382cdef54f4dff6846b6293681f84a067c8f87ee74a305f2ddf7ca9b3b371e946924998c42fa09eba70decad0fbf93172be5c3de95c0897aba78ac964be4eb8db5ea6c60a995488767569d8c754321a770fb41b640c2b3b3186d69a5e9fbc5256cf871a0c6974801af4176ef02b654e948a2ca91bf7e2917aeb1f5413ad4cd847a71711293d1075ab67a33a1004e009460327f8004a0deae85d7c0b5052e605596edcfcdb76cb3a1a065bdfd1cec7e687e8a73acafdd80f4957ea3882b99ce4f9a011359939b1050caa778830ec7b0a820f7417f096963ec361f8eef70ef7092d40f209dfcfc1a30ef1593931773a12a8524481728a70d3912f2f33c0ad16ff6f7fe7d7b8ca1eee994cc224a5190b6733d8094fd3a317bfb363685b06566e2430c1cf6193f23a6494c80017021a8196507990f88fdf02637194ff84d3bc02e745425e0b1c5a2ff1c684f61864a91477d4d000f4f980c5c802c01f3c49b2b388e316524e737e098b7c041510a59a895ccc1746bf44cffd3809e4260c608eae05ea5763c969c51f6662b54ac91a9ca453ca0479074d4b5fc44ad902291f53f48d505679df3214099511c46f41c6df30fb9a8b4c164a5e26bc592eab4e61bfc9a2daa2f1dfc592a708d8face44d1a5fd448deb6214eeef157fbb5855a406ec259e8c109b7d037b228c18ff82072474344fa9c896e699c5307a0282992b1ea0592740bb7ea9d4ae88675f725596fb1ddef0bd9e2a7463e984037cd30d0bd8887e114315d2ce5fe9b72d0f8df998ca3c1f04f446b50a2f665d9cfec307ea44e1ed5c81a0757c300e1b01d0655e26099c7ea3020d6d71b41f8df10b52c94c00b1d3a7dadd54c0347251d95d2c21a44a643c2f442d7e00ed887b0e87819e0081a9b54c663d54c7169b82a55a712b9591746a8c90a178066700900cd6f209801987d2abf6429d8d17b4a615e2399c4f7cd5721f4c1e11f246c596d28427cb0d87296cd5ae16ec68028072cb82eca576f044bc5007468917e0891a8f89e157b13c9be9abc4ebb601f920f89771fcb5020235d404bda513e5110add72ff059e1ef6bf49032371ddb3daf7b712ea42088cc73ee68a9685ca55c1d497417b1d8bc789ee075a1a25f1e030fc87bdabd20856363b156e5fe338b746314afd8443176320e2e094a77c7bd18a00153161e2c15caefd0dd9a931f43412ab44f568406c22a83fb6357d7c2b79d01828e7a8f919216ba78ae1b7eeed2bc9cd66b41c67341af56ad459f8a07f2ba69ea3bec7c8eb41fa2c77860ca2449124f4fe094f43cc9cd84bf06c1a713c7bcf46a88c457c80b62ad01e819793b3d2108935e4089bd80f105e1b4161a81b0c9fc402170914e308712a0ac238266a54d838917aaf3abc569715af9a140c09ddf1f09118a62c5f8898542056363722dabe24c92641ab471a213d50c0dfdbe19acdc4aadea731238a5157d74699470d1ac3d818940ac6418db62899581af62400e9150d4addd1a21522ce2ae12766f24eea144109aa51bc4511d20e546a8600ba41812578b4b4561f153061e97f2a0ec5db42fae6bb995c8bea078245e6a204c3ee4021604f8673b3efab3c5d5b13267852ad71cc7a809b43baeb3c1565cb41148c82720d550e45e959dc1b81cb2a6c2c58ff76408f8c04b00686691c01743d382ea1e78160b05bf8b76b7a101b0b3c22c5114444810d97521dfa068f4ee6a8ccdf0280f0ccf23b0cb039d18d42c7599988cc0ca0760c6e5d7d41ae725f08d8c2835b6a2efcc1c379df299fcb26a3790c1de9f7261cf6d8a95daf0a1b096ceb31f78c12d5d7e7a08fbdf9237abf7f201242fd15e9712e31cc813d01c300732c6a9ba88439cc3f8c9742bf5e497fb758eb044f4ab08c0f8289e2a76bb72dedc990062642733bb709065b8c173538e44aa8b2b6882198075eb2f08d8ad9644ce00b218dff486af1baa1e59e1e0d39b8a151ee396d8017376776c254d4018c38f0b9a11b8875818eb6653d10894292866ad0f43eedf43489791202786125325e90f3e4159c7d355765ced5e0a42dd9a16ce139a6247b0bcf8f68798417893433c5853e9cb90eec8c5e69e308977019989fa712badff54b827a67b8e30501620cd6617e19404bb3122982f9453827da7fea07c3855cc4838ed1384b3f7be54950d5144f6feb22cbca9b08e7d67a8f18b322afcebb8f800403c96df4f0ad4068ad378d8f9b89c4442ac95481377a7928df7ff037d2f22b1c0d819228f8a0972268510be8d07822792d4f66d8a61f5df007f2c48752ad4e52a9741537f6d8f5e46df4b49402a890b2de5531ae460bde28fa0b0092146a40a57e94e729d9055df199fb38e8fc01092cca9ff91776530e6c181f5b37dec5ea84241429884f3a6f0a8a839296574e37d135d927009b4cb26e5dfe00016dd166dbfb38928e18a3d873c918426f01c1da404f11dc7be600af12373b1224ca19bb233abcbda85b425e6a0a619ed06f4f101145e855db7e9df3c209974f4aedcdfa645ccb8d0b6654ef437a1c187cb72c0e8f36100a02266a9007a0eb06f8aa28426b403bb0531c639e33372ed5a8cdb3bba239c536005d071ffbe8fbfe8c1ef0b92a95591a653c84ffed872bf22a320d52cf6f04828b9a3f9a319c781809b64995f40bdd565ee6808123c9aa86573f74431560dae9e3a7184538bcfd82abbbd4bcccf7b383a867cb4340ec437636ef7619f6ea93cf8b3ccbd08aaf862c92df5e7362cc13a0248251800057c6f4da869f80a0a0f50d484f87250fa0599ec7b6e30c1c58c0f191b8df856b706acdf041e559d96ab2e92e915b4a3fa4a472fc31d36f23c94c59d0dee250611b6cc6b1f054c81c00636e904af21f5d29b4132b804d5abce6efddc62a81bc253069c6670431f3a863e21833b8aad2699650781cb596ac08cfbfe7e038c56d88a7ee1feb94d114aee76703af0c855ccc7bc013154ae0043c94def90643e4d5ca3fa7b7386395d0055486453a3a7714b133109b34e2805f740f74447307b88e37cb94782b98de9f087c0815da79976522a01c6f4068002fd91b7b7112667107d8074c8a5caea6d3eb8f054a94945c0bfdfbc153f02707c4f2ef833673662c735124d49858d63e7f7f3a14cc0a4bfa00987055c9395889f5484e184d87c1acae992be8e770d39027635744fbb6ab99fa5adec724e710d3d1ec8063457b2736b5557b2d722fa191586a7bf3e93dad7fbc0b71c95cef8175726f3b7c8eabb7174fc513cabb34e55395c6bea74631273253a9c1fb843386e2250d11ba3e868a05e4bd32702ed8c58f5dcba627e1f81d851571062c0c0da331711377e214246bb2cad851c18426605b567a574d1c0d83edc0e19f490ee50b286f15eff3fc610bafa6e6dfb1209fd4d889f02e49d8e4cd5460830ad7bf4ce08886ad69d85768bb340d47bb18510bd9bafbd50124c4669fa40c27a48ad0107a97352dfabd9144bcfb4ca790e86e9ac4c1da99ec4b85d71c759af9665f0334f78b89e5978332420e2414182a3f45ebad725984b2f82d7f185fe926db295dd386b48d20e059c2a655a86fbea02066e610c17701d400bba0b2c5295e2159adf2c63eeae8d5d5d835433e92825996ca2872414574e6e624d191f5541a178f98cae26b66f57c720865fd67d71a747cd9a14aa1a78af3bada0aa4cd3550b5084225fc146b0d2c72bbf74ad5e0f5c8face850545dc923d6626eb81ec1078d676dd6c310be3dc104bfc6b20f9f3ddcea0554f1c44589b26eaffc0dcc9b560cb45f3b0fb32313469f1faa83ee673dd408eff8c614dc02c612346e00bd72143b3461f214bfad05df9aeba2470418e0dd8b3d13146bccea4a2c3eeb00082b83717fd7e40a142944e8bb639915a4ffb578ce19694e0dbc2a572065f30807cd4edc701250e6bb1d0983d0e1ac1453e507421178d2bab080ba1ef48ece070cb22aaf0f4c5abfd8eef77e60e75c7734d21b06b059aa502f16c5382bde9108e9cd3ff3869775caa4313ddec4f3509d7a714a6f1c14c37d3f508f536aaa4542f04e3c57d6fddb6aa30f0764760e8e3b27575c54000d94841e5e1532c709a2bc146bdffe8f5b8d86312abe0221c693c0bed6abaff3f8fa6e5dc746354cc635e5d6bce324cfb5fe5f574dccafb67366ce3abf6aeeac118a90edc4ee3f5e3e176cfca4aeb4c25da02eda21c145f78a4e8cc6d1234ae8cfc78b0ad737ac0bdf79f063b5438fb6c734cc6d7dd8a9dca3cba3b4aecfd8ac7f4605788658bd9fef6b6659b0fd941d64646fb4b98b6d7d6e8a4a915d3472c467a95972934d3c9b3f365b640be16452950abc7e020d4706c6c4739ab2ca3d429538f5f23ae5dbdd78c94ce46eefe85ffae21e7a540c94c1d60b7f4eed14cf2718c2a32de72b9694332016892815e44d3a79cb93612206330c751d54e877fb626598e8c0780d8c358a1d4a86157e1f3e93d4ff3f8751d42e22f73c3d4328ab30e16253fa57094ac363db2ba6ec53429beea2fb174b0285bb1c76710fc4eb87ae279e6a343c3fc1e7ca5f20b7616bb877fd4b8f6fe88c45bf10f28228b7ad4017265e774a2bae2d7704fbf20e9bd1fb9af07791682b9cee5050ed99076599c62eb8ec059fed83ff8128d4dc1960204fefe7f5c20c1be7852c265e192cec5288bb22052f8d590900ae2938ffda217d578e5744f285e3bbd83dc85fca99fad2cf83e050c37d5e344c769f92f8ba5d2ad123143b9076d76c0fb22f71b654e2b759017182869897915459571a2ed9b3641109ef341282614c42448e25c8f758be4457e953c65004b5456c542e8fbf1575fffab46f32c1690d6bfdbd5674889bc8ecb95ceb891f35e7662f71e62b7b170f1b200c8ce4f57181a600d5d54bac359df7138b136c2f91e9a8cb88e3d182808bbb0cc35ffc32e82596d710e4d3ea25f7be393aab992143642483f7ca4b6c26532ec3afd33ed116d91757fe6ddd77ae6628a09da63915bfb860244588314fa88655e0c46990da1a319c9952e8b4cba021c62fed81c2a575fb0b0ea65152bb7e494c325e5e4e413ed111bf84bab20ed34d8020da0e4288f1d88c6ebe53c17f505f61119876e57b37d59114b84dc020150dbf1d8d7b417385aba5f5eec5e1635cf8d294138f7239954b8e2e0bb0eeb3eca032b0318327b37afb7942955d7da7319f1d5c25efc58104f8c64b362dda9b870888a92d62bf50596a2c860845edbeec4a10e88bd4b112c600fc9b6e1c3aa22162097709fe8c8be8814082cf19d2c3a62ecba8aca0c1de1c9bead5d0ff1a3ddadca7d83b355c399aa4e2b1bebcf2c9291accaf023bfb7c8bbad2a07530292f33815e026169381de3dae4e4f45705bf3bc50ea33b0a5b01c2bc04fff618861d088dd88f7279612e3477ddaae61fb4f13c39ab755bdc1f7a622b55bad55572953d73485f487a249760a35c9bbd47b9234ddb58ea0dae4db0c3972f3b39b8bbc3ed84347d2d0162949ed7fb4b3c828f44628a4407c7bfa25b84977a1cfc7a5e19967754dcf7c4459f3c3f1369434f506cf0c5409bae249eadfcdace20c26ba9cbfdbc2e452cfe7028e8b03a7950e90cbe9c30188da545188c3500263731ef372b292cd60320e91c405e183d4f771b96655b382b6eb45ccd6dbde02091800b10b9ee3099876f3cc9a265b5857d490015700a6cdddb90eeea686ac5ea00056e71df3cc045eac6c433a33e7b9798a8e782cf3a2b63326a48b0d6210339cf92b48f8bd60ed3a41a1b86ecb6048269ba2a3769d11ab356947b3d7b4f45d5e4dd1947c5813d9c08a5722665620cb62ec87761e71f39a6370e013c4a73a725316eefc184de4e5c3d362f955b2ddc70b1d96036a4fe5b9c71c23e9c3e88363969e35824881f82308ec1f85beea0326bacce87e22f38b61b8b6f03a5a1123a0ae2f0d96a834972355f06ca14960f1c7e6a9c28cfe3da98b2c5c9b29daf9617968d254ea9c8a300137b3731e2443e2dc84f825a4a209f63974478aa2bfeca6c91e19a586d46c3ea6fa9c7b946804ad96634cb8ec4981beef5d63a0d66b0c141101426d6f9fc6050f23f09fc6561c72dd0d6cd383b517731e6e9e5adc986641af61c0852e87d67eede089c6b4f0d9242031bf9f5deea64ac54d027dc0ba45b96628551c99a19418e73cba968c25ad639958eee3400dc298150589211be9c663761f99b294073a67b2a8300b008d9e3a59fdd07184a3346c0e351258026a3f8dd8f8b518dd653458ca34fcc3fc2fe159e765d9d47f48c3413561afab7129d84bcf02244d95d42f47022920aff40d5a464b57b8dbde9c1c584d7988a30f3d8ad9356c9e41ea632509ae9d7ba7812c2c58f106a7709d14289492afc03112467a95fd3878f012f062a567c68d92c0fed907a2703472339dc950c4a47fd0343170aa617bf701a111524cf154ec3531497646167837896f4e35644ac7b8abdd32b01634e090309db87e62d98a1c30a441291e581201537c5a0614228a43b7e242483a2f3b05836f5f80aca7ce7d1bafeba0284e4604a5583289a0dfaabccd92b08c9e8787716d25bccd05f449c1bfd8ac4024d65774fb145231a3ef217980bd8adc6852b8e25fc992059299697b498e4d435f54b99043c7bce0cd562763d1bfebed84918bd3a9a572a50a90879151b9ddaf5892bf37e6431c8936a8abd52800b63407cb43291fcaf625e3f3d91c8bbfcc946e921d5009822152d49064e8d41492fc32c2f9424b3623a5013cb21b3c43a2b8bac0c628deeda606b91e91f74b236e130aae6f9b1de87821e6145591b19310940777794a14f4ecdf61df6705dfe9820250b3f11c70580dcc25552bb3a0cd3dca0d7166c18de4ee7a1b16b8d7c187a5ddd06b9bb893764e8202d2bbd29c6831e1598a4488ff816ca04a6c82c24a38632076249367c883de42e0f0cb4fe382eeab016b4eaf58a17958447acdcd5a1b565b0e7163956d74a3676dc72af56b1acd63bb6a9f1569640c5f87ab22fca7030c775e0a96fc90360f7c7f16ffa92ead5fd5941588041b491fe5264947123ec20ca809826cb18b487411d74888e20c93b2ad427961c3807781a0bba2445a410399dba5151a61b930242c241a266297f8a838e103292ac4bd8825878e98c5456ea608da7eb00060b0966e1373fee327adb7db641d91f68c05a4729f0aa713bc37e6d3eff0c3359ef78f397fbecce08268072ee46f1be24a44c01ce45a6322653cc677156988fac347a3730ff9883034d3f14d938b851821f5df69e4217ddfb6c548a1eacbe1c9e971cb9f2be3701f78698a8ec526c3faf18ebad23943fecba224a1d4c4411068a954ef42c41281598b51011445d2c64233566af9d5ca5a4d1240d046f24f35d59a120d37584d939ec775c0eb31329f83660c557f70edb7bd6efbe806ae37b08d8b04201e6270022566eeeb02658c4e3d02b78e2e0f001d1b7c5b94cadd932c01f960faab9c3c6802787c0d0a311da550a12f9f3944001cf7788be17fa062034b85c640df14fc9c1a40dae70563c95ac2121af6c59ef1134ee13f8a309191501a62865a401cd24eabdc018392c3a9b1c6e50a3986856916f732546e30fc0d65032b079fc3a78c4ab167a6e24f4a6f74c076a93f529fe05d9121af3e0d317c8e1ecd446fd53d948bfc4edd7d0b0795eaf282680e180d40f83f101ed49fba576bf72e4f469eb45293d57471e52dbfbc5cdcef20eaa4779bfeb1af2bb79d1f561a62b10cb19fcf5c68ebeae5dfc1f8e70011e7f63f99f1e6592c4a3e8c3b795802bb48ed2cdf7938df7065834723e2fc4f8fafe224970ebcd4c4291d24948f782af75a1fac36bc3e5f7cf407b17d95067fb4b58d42f4f68d6259d87c9ffdfa8edf24f1ac8e1089013359727d0c9db1ae18650a7a8b9ff33ac479776aa32b9885001ea889dfed14a05dc8da350e3646e829b56672c134f97094aa3d5e6f205f8a4dadb56f340645699101ad78e224fbc95e633b9d5d7a470bb9cca29b98348f0a8a2383e7a85498ed91005e08d5727f07045f9764a302eea83189288870a60b4c1fbb267e6d102edc9ae97b0b62b854c1efa8cd217d1d3e8072fe234e4f5a27addf22ad12146c88d54f591b1d3d173f3c502e1502ae829c784080e12406b7037f3e9ad4ceaa0a9c7db5b011d06ef48f9a26b8a6969c7dbf21f0fb9c4d8f18655a17bc4e0cd6ae6613e71b1227b6c0f5be1393b291c806cf6a43c9114cdf6b4834cee402db59b844b9ef8ca3d872d1b185f28d54824ed539f79725bc7fc41ce4214ff9093575a42376ce6ef8f929807db7ada7b8e67053a3334cfb46c9476c0627d95c38532c53b8395300815008cc7e84f7b0328c2033dff905be38602a841af379de3ca9fa402a2513492ace5f7974a1950117a3625743a244dc49fa10d5a7c317a6e4dac6778b0bd57e702805c53bce5479d963e38fc7108fd903ee604e61f2f9e7d821f9c14ccf61810800ce57fc2ac5ad41a5f08bff7d140db2a50a884def11684617e631d746b4c246431e1af38cd6a4f165a6302dc9e70bb20659eaefd809ed3b1239211c30a5b0a31b2ce401a37abe8f36644e320b699e2be353549dade07c83a73068b5b3052276016fe25884d4330265645c7cccd01e004a182817e09d39388c0c7a2c62e83fe2ae340fc709ac644572de1720ae1426eb7430f0e15efa05938b9ba782e6afd638e880b1cd8aa1ed06ad19ffcbd244f1ab7d041cfc0a4aba50bef4862ab024d5cdecaee5b8a5bacda8f604cc8bd970ef2f8df6380f505306b1f5dbe5852687ab14d8fe04378b6ec1a3ea1b28a3272fbb05bda0e4a12ac6eb8a3360b955fbba9196044ea6e5ec6d99c3dc34138b9dce4604e4035f767dfd010b0d12eaa5674ecf121b8e1a27e411e9448894d424e1d83c343a3976f0ce167ba9a23601e8f92bd6511c115e74fbcfd67e5380d673754bb8ac6b111e21e4549be68605ac4c444ec5b9a439fadca030098d9092bdda64bcbf74ef5abd1c0e95b86c07e4307c41fd80752a60e204c4e5b1e0d91a9b821310f0c633a34fb6e20b6d1a7719c8cd2fb9c6521848902470c5db32c036d003ddc6c485326f6308b562867b396e025558ee525c8755a7ef35f619249dc4468f6c7d52b8a13f46c79abf2453a99b05dfa8a4d8117c6ffbd3a99908dfe2369ce0cff5056be164be0ba9be0b8c0a25e6f498d280b687bf9a698e5c0f256a99a2aa23c7acbeedc0784b95c2e162571eaade53917886c661d8b78091bba4cfdd266a3cb943bec7ed8b43793f2fcb2acfe8256a64595b0ae8c25f1551a06c1c311c6e917b1bb73a4ed0259de4f8bf335db850e0b4fb2456e8298f28db71a6ec91e40523787b5dd40d639c8912914452b81490740e2f07f445c763f47fcff47188ad5a5aa60cdecf81f0105992955a501287aba2c110ca6a31b9283637f4fc943aea3f29165ab21a1417c7fde3713f6245b06e8685566ecda7526219ba960d4209868bc5e8bca881a259c319d23899e8ef2c30e4b60d17e7d749dd7853c173bf7b8f43ab2473f2cddbb1b500f59ed74cba0f135fe13194f4175309979d9dfd82edaea2e248d22c13f6c5f7225328f7476ef2a051fd850a29a8e311f1e24d46772c8dcb455bafa53cd6cc1a1a9c449acc2719f9054f0bae394568fac3a4e6975a21db76a4fb95de92dbca01c3d87beefa2a450ed698f11481713aa289b47ea0da8a2b60cd0a9eff9c1782d415d1f940901e5ee323e6602bdff1d80b64c1c401f5790d4ec07bcb31695744c15f9c2304b01a902f257b1fcc8bf6dff560a5f2480c7030e1835f5dfb3715e5c470e2517453e197bd65d0cbfce8c0801f0208446687015a040b71cdc08ceb22f3a72975712a7e0d55f11dbf774da4eda41264ac7fdacab8fb301f83fb98b8372c13274b1a70578196ea76d56239369e045c6dd919868c6514b7167b4009eef77e3d35d178e4e87a0f5329170d068f659f99897863fdf3f2ddf050249b60c99c09bb8151c48ba256c207e744c1f3788e0c1e16ddac6ff04fa0cdab53dcec07757642f25e65732b61131def8824c4cf6619aadaf1b9228251c190df87621bbc1ccb991e6d52484ef05dc838db82a4efcf653d8ecd6f52acdc201218d7031aeee0260e78624757a07e86255be821afe2d1605358d625e2d4414db5e1f577311131a343f22fce888bce183706e112a075c628f387834e256630e782b56faf1b6f5bcbec01d614b95ebed23b7deabf8d76a3d98ef3affd657f64d0f466ba3591c6566ade30abd61320ac8f380cdbcd222ad206acd7a621118574d4a853256d8e526df3363251d4f44cceb70bbc992a62614b45fa75353762c52d035767d8b5f8887ba4dff8ed437bdb93177a1badb20e2124104c9fa62369293a017ebcce74f82454473457eb4bb2da58169054655f18e32110d9c3846e5c86eaf8dc9829bb6c7dd808c4117faae5128841f622098d5823aad7691e3380d6a748e000b32c13e4dfa92ee73c779f31ba31e4bfc542bc1251118e437b5e318963e532fcb511829c17d79191a9f2ee735070e6c118128456c86111c3efb672921b3e4c1994d5e36e7efd8f669d4aa58778f0ed597bb07ad96572140a106a38908c8316640da04ad2c43a4d888664e570c7e2c4d4e5fede8b3f42ccdebc686b189208564a4c5e38cf5bee871acdb5fa44b11b2c6902cfebae4838bfc905f8ab9875209badf81314cb55c85ff14ee8c496dacf5424be36a2a9c720955514f513b12cd75b30daf0aa6b8fe96fa87d3c3cee1350e148db10cf244d1c9609a5bcec8c9b217da2a45a3409c7899734920afffa98465fc13fadcb7bbbd5ae694a535e3382df90e787eb3a25543aebcce51490e83a7cd84f94702dbfcdfeeef118c591ac28a2ceb95805806ac914bb44f498b606393687edb23f747b96f650eb1bdebf8821c204f90187a4d6a2588f2ef51c4a8ed62526cfe0b4cc3060dbd311ef006f3592ff3b18f383260f92959460bd411548327941a8d01a9ade29a045401fde9a5a661face21339fe87c7f09e073f80a589d6c6ed83bb9d6429e60b0203d143a4330033baa3f1cb7704c752e5733ff6e95c0c4d3543d3f1192efda29d573cc7bc83f49d03754660568e1a2d9a9b24f4f81c389f0fd4a3709cccd9600453052e5e34ffa1fc3bb8922236cf66b47bc18bb36dc3af5c086890400279a85fb8fb6cda93626ddf74d5307c4ecfe0e9dd9521d3bf412bc13847b8210f1a17a29f7b70cee67d70f4b849aa9d0eb35ee2f04e7a364a1084ce29d029085471532d8e488a5b75f38be68a1ad385a726e96371ce3a4134fb1653e177290ca120dfbd9db014fada366e6fc32de8c6c5155de2510e647d4bb6366aade8d7104a9291cbf0bd8272e18f8dffb33fa73f8d74b4848dfd0ab5114174d08d6bc79173d5d9901eb0dd136ab891188da55f861bfd873837d7c31556c49ad1e42551ff437dce60190268e9c0eb6115cb9b269f64a798ecb5515ad02fe1f978ad63406a963f1e9ec55923a83f54dc213fad77b341c2aeedbd8f67709234edff52d27d6fdb8b04291f4e4f741239caa23052de1f826df58bc6532a386771a5d25e7d24a17fb074c933c6238062c319472d6f4812cce498c1b388f0d4daff123b3699165074c570688000caebf71bfda7db7fcabbaf8416f5ae545d4c388de86955a98ad891affc0e7148014355f6130c241b112feb186a2fc8f97b39a2b96de7a54c49b2911fc5defb55821b430f9836689e8b42d241e487414a486e7e58b92481af5d2a071c7179a3edbbb380719d2eb83ff940f46dd0e8d060d5837a39f6392779e3febcfa0d59ffa2dffbf8dd18331b87f4b6fbe4f674468ffe2877de2eaaee7790e5761fff0dd808dc61dcb8ccd20e044bb265835495ce8cd549ba924da04074fa04248c4d951a291508266a9c63d82da7c947f625fe9f37aec5e34c2224ee92dc4170d1a12c07d663944883eda92407de9352ef4264a33dc385c79eed12744f0a61332bb562319a4c528e8d37b4dfe7b365630ff370434feeee76cd77136a53c95049c467b2039d32ffa3a3761e083ebfffe08281db24190751b424f1157c22de3e5980e6b0c50e6f7022434b6d20337cc19cffeba0a599f5f0442e2acc8c9339d8fd6cfdbe2b641028310da8593cae05244cf6e99668a4e16eef7680df5fcb65498491913e48a7406428911b08b313878e2c26916cea5153bfd076bccd31a1eba0cb13fad4f683ce984b111298faf8448b5eb91b5104be3869c7f16484c477d590573e32688dba801db56bd0dd07b72ca1f6e95fba72870b493bcf7af90e8f70b59ce4fdea40c1c0e08ff2952060171a2cef4949d7d42fb4df7e28f4bcb3f07e3598b7cb0e8084c04b5a95cb60c48c0f9f14fe92602e643fe708c9e7f7ff3a246a0961fffe63cf14e621092f22db02b7b6c9a48400c6540fb10f4b1844becbed1eaa340d7c3cf0938b42eecc69f861b14523d11224ea95207087d12b263570f61db440f85415344d08975acd00f0b7318373272c0b761c71744aa3f6e90824e4101f610e1053050093c8ee62b559443a610a90e25c0edb90c5d230fb2b80ec5dae349751505892a2df8eaa5b74390a49404ffe35f2b40022b39b23a9df9cd4894dad96ec917a2622d69e87f7617b883f302ce29953c00dcac47bd71927c57215b84f8eb75146d06fbba31f398b18ca769f82a474a6ba472c7a15416c5ae2b347de9a79a80b7e2776652e35948d59947d93d5ba83d73e388364d37544b201e08379da3579497798ea68a8576261b7fc40b8e1de23a4ccbc5bda57970e04fc374446a34cf3c17b8048a0091ce8b61096515d0d83c01bad29423d80a4528c31a7b6c5f0b53ca5348a7a3f4081c2134ce1b2188a11182f3a414108d3aeacfc308a1cc172108074a09b9e5577a38592f7052203c0243319c022c3cdde4b9a34981e042990b47207f3167a7f84020e2ff85a5c10ece7fee3e77ad1a8a33d0e3a48aee831d50443239456c68c961147b5b478a8c9957ff090c8e0e4ce079f41ce44446e3db42df9cbc272d9f3908d0dd1775598874c2f0cb31ff13d2199ebb5d43f152bea84b65b2512c8eb1065f0a0f23f45dd99b52f0e02d393d14370a4c4429645e230241ea6b3a1611528c924c240c19dff44ff972b841e4781fbc2584ab3589506e283555d3caedead92b7e89a1ce0b9fd9f1d694c65e464c3ac1cac9f27e3f4105ac01457d17b1e4135371f0e28bd4f151bc8a377e5a9c62cf77cd63bbde0ec6ab21acfe5821ef9f1fe4db3edce1c843fb3907c09438745a0e2c79fdfe15dc7fe3ec885c3f0d1defff9ae5fe1ea84072bba820c56ec5031b376948e853093320f8dbb38eb954eb562a043995af08e317289ef5bf377891c5b08982b48c22794c7a8b632ffcc0fe30153254fd1d8ff5a8c922242df0876d5b16269778ec5e4522f303879d2faa45761bcbb4d4bed8b635da288f17b01c968b0747ae09cca4f3ee5d46bf83cc3741182f52c84b6f6fbab94efa96ebab660117e60f4c307d68bfad24fdcecfcc98651eee62d93a4844c200a76b92e531601db53050459d0615ef3077eded0e41a7cc8ae64e2a8805b6e84b6f3fb8c12bfba6b2170631ad573b9dbd80fab947c8999e0b2cdec188603a8a053055791344bebe04d262d4bc611ad6d02fec814044647308a57207f9a9c46c68e1fbcfc703c1f5237f3ce3e20f11ba8f6223cf8cc8841e0dd54aa285f9b096395da8aae04e7dda2c3ef0d338e8fe3d6c923ab7577987fdbea6f7cf203deadea82e11677b909a9ec463fd787bb5edefc1b2b256b3e882b8821b846d759c24307047e139825880a1e3acfe3cee21aea25ee53c8b033b82af6cb70071a2390d0b67a2c6a343825d42b86149775561a4400368fa5f1d23eb8c9d0409122a912e31e329eb844a2bcf7195d2f1e0902d5a6db56b423cbb9ce28ae589846e131e872c2dd21b6ead93182f63507afc49df81ba72201d705ed25e3c40020403cce109a75ad4408e76dee1f8b255b6fb2cf4fd25ee3613ddaa59478abb1422f0ab33dad434513d78cc3cecd908e850cb2a64e2610664b787d1bb91754e31da1355a584ad0a3b1f439520d659ac72de3fb6d1549e2d9a9aac36eaa9d4f83a408dd0ac8e6fe37fbd57997efa2160edf651c49485d822d82838cada2c907b99c0a26f1345dd82efb9c1c207771beff47b860eaf666d73b1c6ea7bd2a3dc2fde42ca85470bd1833bce7f305113867f09ce03ebee4e1be383936fa82972a82b22fd83e01de862be240e71a8fbd76a3ce7f5866adcec13b1d629bfb7f3865265cf5fde1052c35ceec1e04b22e6cfdd4bd2c3b2e383d091ceb0c15b21998222fe0a423ae41d2d099e4ded9409185c2552eb148a01a1a5a7aa852ba768b82930bcdc436c77b8ff286176105bd073adb8156ab4ae6159fee7ad032346bfb4f7ca3678f847429f08361ebe105104a2e299e1ff42370e7e19a8558026be26124f19382326d15ba473848a7c93d8e8c6de1d2dfae4db56f1d4839d3663d94b8c9a16835b0a8eacb5021c42ff23bbeda2a0e819947a4896fa83a9b45230261ec62d3d2a525b30d525b2e7771828b2b6141754ede4528024c5da127a04837328fb0baa005329ce4ba5c7a0455a7e2502b61712789be928af730735dd88202d2edb63b1c8638e4badc178fa280a344b23cb7d1538c5c4ec3f687be8f19858da8119751f2929f4301868d1f5100ecf47b134ad82d7a272d052f90796c3483365b9029e0d36324e016e6a27b422d911968671b15fa8a1f824bb09405bd032473558c9508345a021d2503e38d65d4d0ba3fc48e06e115f9c5844c4f9b0fa6d138849b6bf155080e6342437ab2c9629bb82d8d05452d915f8623c18ae6a1619e8e96cc51a88f1447da0aed8c64c061c0c236dfeb42d0ec413fa6934ff79544f977e77531cc1eb8d63d5627eaa75e0bc16143d88f4850b824f28778accc79b349ac8476e3f25579d506634119a7ac8e8aaa6cbc57cc1f30e2383d629f9ffb465e237edc8b7c254bd5ece4332966f7e47fb8501571bca81b1164564bd46cf4b2632a39e932d7a00a67b1f8c2ac24d3ac2ab00b982226e296c233cd734e8c977586c4a7a91bcbb3a8896e0927c30ef271ce5015f3674a045158d2692c9e835b8e61cc70a80905f1a1c8251dba5acde10b160c382f8908faa89dca89798c5ad16645f1d222a403902eedf39b98c92818c8d911d66592e6708ad735d09f536d99b60fb52c525b398a567f0fcb19bc83db44d374a5c52a4484afa4dbd51a904ec355cb02524c3814eba586a665940e0745e16658ce22a897e6c0c9359ce8b54d1b2aa12998aa69774c3907b7e48d689489898537112aad9c25c84596561ce6364536fbb2589071136f776896a5420638478977a3e9bcc01d484f5e175336d27f011ac35141d9100d8c4f2a79cf41103859bc295728b7bf17f337c029a653a86deef95c96aaef41fb7e12d4b825288e9b05672a2c4d99ed0422916e208f751c6b625ce807013cb911c23b24358d167e9f3937f3561b8e275f98679f4c8e01e739acb51fed8a90a516c9850e112a7cad57a220a994f37066da84abe3969aafe61537e3c8804793105b36676d85e8aa3dfddc99010b0801f1dd9d05c5a9a5e6d89d8e6653153f72004d0fdc7915c1e4dc66e2bc55c23ee08c5d9fefa9d32f45ee95a8b98ad444aa59f5587a2e554329af83707bf298fea7c0a71fa983c940b8f927d3ef134707a3de5e3c1557e4dd61f6a95f973729212e55e0cb7808f7688abbcc459169ed411c9b7b13c3f7a18fd60350691fcad448b824a0ca4c6333b1865172d964ccfa8b7fc8cedb0fd5ee7ff5a5c4776ade822db351223817f3e536e6e2f6fa3a87cbf493e66143ef849b80591028df7ea57f5e0735551b80b31a08b24bc250e548265c03f1cfd3d74c1e367a0bbd121a0dca77c31a6a2b030db1865a70bdefb294b6a370214d95d44f60174ae164828b0dc51f474d748a904929f42cd77f23dde477fad0818a53d348ec71cbc8066a50bd6512b0034bf5ea10eec7a7bb427745ebfc4a5907f26fab245a9f186b776787f54572111eda2a71598202ce9575dc2a89d7bc25905d2c96172f2c8888a961c4a7d4c47a2e20554582f250287c530d1904615939009edd634ca599c58e328f350c5fa4d595165701ff45033cdf2e84f7ef64c4c84b6741f1fe493454ca4a205f79c0e375c58ca04450115be6f99386cddf23902bf7ed7e064e9a90fa4d04a003f0a05ccf7c27a101356d873c416e4a5133e5889b1975b331cf46b8d4b38690522edf50f701f5c39ce418e9fb7de724078fbbfce5e9e55feb853aed331e1a92787a0b3fa07229516c748d57877db940f029d0947397ff733837cf386d586e76b50106ba2bcb774e2035798e71065a809d79fb467791aadd5acb29bdd06a5a0942d090ff61dcdadcf7750b662f212d43834faf796911bf6d2443a497d4d18de7c71ef970e6efca7c2b36c8db655bbab703e9244a6145aba807f9d0f195fcdead597ef1e1e835221b7384f146179376564484106859a9ec2d4b4e887ff5049223513f42a18aebdfbb29bbf29efab876ea45efb33ca72f53f2bd6c2abd65d1a883fa3d71f0b2e1d95090e3d15f055bafe928cc5c6ec2927af846e02946bca87605a0cd6b5a69c44eca755829ab94f71e783445648316dbc21c9346a37b98696ecb2327bf8ca82405ab3a537003512d5f0d1f8ac08911cdb72c2939c2d1b20667761360b83ca365166b46ffe5b484f0237c84ee2c42253fa52821635bdc04cd9f619465c733ae710c41ebd541ec0c2db17112686fdf3c5cfc476d58438346be6de40c5b2c1e67468d48cc4385852190710b66d02a56e48d06d8bdd0ec3b49684b3554d2391095fbbc540a1f282bd5f31a0a286d05a81769ec3f11cc115a0c3eaa14f661939aa2d4786656d442e415e858f8e56d22e1fcad7caf534fe4c56ab43d0fff95aa7a6336a08ff0ae168314c0eef8ff85a19f5f25651fe5b1a37020011056a09ada43a30570825715e5a2d0302c368b492805e8ef248d39eecdcfc16d12b800bbf4811850019028e3e6ba866cc98d6afa2764364cc47dd3efb4222fd79fff6d6b741cfc6d3fb8308a3a95753b08f76fd197ab3dc126ef34400f59e43bf289a114d859bad6adb7ef8ff3e0cd2b75c1aae56c83c34f2d1e667ba12ecf69ad42d928e570325aeadfc748c808ebf41a9856f4bc7e05121e288052698a02b32ea427c58a226221344e858c99b996f6a087dc00bedc1649a7ad35b976eea20c5546e2f8016b4ecce03063862ad17ff184cfdd36b44aa78eef62ab28a8c39f607c50340b7e8209e8d3b1038fe5eb4fe972f87095e901fbbeaa71613ba56cc9345f67622f38c73e04c39de10aa94525d01f3ebb22ad77ace514dce159b5c83a6d3a06ff058b197a6567560920c32e51db0f81d977ef6e630c5f1afb5c90778798eac13934ad18bed078b8d31510d2aa2a242313b27b401780335234568f428a8c469a7e392f644b4185de35e1452d1bfa0aaac5c003af67869ee91f50a409cd833054caf000f41abfd5ee8b254dfe755007aa55656299400b20efa9f8bd38c168dc95a40443b05a7a769f2305fafd3239bc82e304675518f1b3a19952145c9a53ee6aeed9cf7d8fdec5e4261a50ff3848c18fb80595672e26b72b20d904bc4e861bd15373e343d6bfbd2d2abd45897e3ec74ecd2b072480d1256ae6875d42a7f3ed719ca72a78e22d239daca34f55f00ebfc257e36371d4d555d3d346a445570035503903932d075f444198aaf9fa93569d8a5f4e3287226c14e71643177553cdc5b81a7707c8139f1a733d5382ad4506e6538337361c0d6bf9bafe92e312b80d4616a0c3cd81642cf289ee42e862d8f0599d00a36a838bf3b7217924490c9457652ee840880a357eeb46de2eb4f5982cb1c05150909fd74bf945393c737ed7c948e257373a54f9733e8b8a1139e69b6a6358e10529dfd6237c6beacb51ccae18bf3d52c1cd17484e711daec9c5cedd8f08a410ce9b8cec33b1a4332d312249d8df3dc4138b8639b4551659a4655ce503b54e7f7c41ee8209e7b98e01ec6ecd77685da0a17110d86d0f5a783e07735042ddd6a4f2a232aeeda7176384936e6c5a791c82bf110d1bd15beede48bd7d6eff886e1f3f271a35c353609c2cecbeeb4bc2413fbe46ac419770e7bc0ab5728f0e9abc5ad3d5dddf7ffee22b42be0a8c8432e74ed93ac86e13062133b288bbb97719450981089fbf727d91109f3b469f1da59ca24248d22d6555d2fc241c821b3d30f0b3036135a147bcb13a6670be6f36564320fdb2a53b5e916655560e7659bbf2b0602415b950a3c4ad4bfe48d96e374346fb83bb7b0a1a1e2488f6f4d9b4b76ac7da19c0098abf299e82d71a93248365b5e72d103b6c7fe9f5a34fbf5a96f138ce09875cbb4a2d9689acbf330a8677b4216c36e8dfafbe43d7a68389ef5c1c12e6c6c8bf06557676622d0ca7a398a802c2289f045738733d928cf8558d24e19bb128d008454146aa3b24bd7a53b270b10fc6292671f9b2749a5a289c687913ac317c559c061b2ff79f131dbfe2d881d8e197f1a35be26b0f529dd9ad9303c0c301a6476ed58ac10cd1044d52dd9db90026ab07e2827bba4ac89412ed11e7a59d10e84f732aa31c4996eea2d99e08a1b204bc80541ea2491c37ff43dbc1c3eea54572335053d7908fe79dba1998de2c3969cf8b54b41f0e8330e0d3743edd0331a8d40a31681bbc2ef91aed12836dc619a67744d2ebef0c43c7671d9a0c5f24780bd852a7b7c4509b3ba0b0ed7e0391d339864e931a5822571eed5d83fd33c4a2e06f8160e2c9f51194345152c4ada21f52bafd8e7f6fda514e3f72986796c8a67cad571535116ab8db64a0a2b8658e1f8a9b8ebe1267ac3073ce17016206374bb6b80d0b8b2b0c481c09fd4bd3cdc0f62e3b5d853d134612361e75278842390464b6f1391b51a927655844c71e7c918d26d3e2db5c3f860d548d7310871806955f92982570b1290d98f778fabe10033f8d45dbf80c5aa6b51063141ced4a4ee0d2bd3440eccf5cef4c38cb97a13ad199141038e21d79e2a117461bb1584ad15d0aa4b99274524ca989caf8fe8ebf3a07978a843d274311a0021b4f0a1180dac1ee3c22b27d288a62c16d04b12879a9e5a6086dea7904b63e59e1ada0021e7aa8b2ae493db18b68ed7df5c822f97e4dfc55f9115dd07581ee074302b5b09afdbe88a4ccff5950d310d2a19fb0ae49bd268076c7b26d1ada5d3d4d2cf6a7a5e67e5ab519388d3336b6fc0745e3710f8df33815f8e54b7a909df5dfdc9d18c58a47b079b6cff2de77045938793803faf0116b8dfc261790c78a28a57e833e36f9fd32017e73e2b6872130c03c2ccb736e87066af17714b5dcf9a64b8ce6b37f57e201bf0dabe8294f2cd9d2f1e5776ee3d800d846a93858fa040a12500f7c03e8ac86f4d3616d97a712d233815b3279b09149c388858a570b464c51a7b1ce8980d00f7ca353f0ed06192fd41878615a764c1627f31283390f709d7b5b6de59ffe1f75cbd969bd28235e0e48f7877a70b52d914ff43791d616b1d987991ccf15ca697101f4e02286e4d74a4df17c1c94e738096ee458673d8352f35386d128e24303e7ec5ff66fd6dc9fc73b182a4a001da10bbfa6f4f1b9427461b31a97d06d2cc71acc89e001e2dbb9b672e23b711943cb95da0e3fea8fc4ba6b2aa243da09a4d265e8323b5c4f3eb3534dd752337da9aa7e491afae0a4d95e3b6737f66140e364705358d57bded2c97570f3f1e4e7412ab7f8e6b3bd7b3e07a9400c4041c68049a8b3fba5920d2324e07daf1836cac3dee3c864cf64a4e1164e3e4d95e9447079d43600e9458b8fa701b03e99ade4cc0e03430d28108ecf31fb7dd990d1f5f5ef84cc079aa47ac36d47d10c4f72d3f51ce101112d2f6de7b4bb9e59629c9b10ad70b250be4f64ee898eb79dd15737c273a904f7172ebedff8aa52f1dd62ed8f612422999abe82a6f0eb14c6dbfbd7c1bd3bf3ddd7e73a9706a0c5f1f6e610a4e728f5470fc165221c10c8f113227f4d73eea042ee98c3e4d810a35d029be6d56f2062ef1ffba7498c37a7498caf5da80a43809042ee98c0b35a235677d4f67606e4a2ba5bf81ef22d83050b42f5c6eaf98b3fc15c559eeaceaac29ce728f2177d95252b95c0266bbb5ab49e721f73f51e68efda47f9c0cd353dcdb4a5fe9bf2136cc24a67009e6b25dfdc4c9edc745bfa3b4268fac05daea20fc463ab44567abbc91e1a6a393379d5767c712d3b1c883a8692ca7101ecb299b33da9a2bd25892e158fee8aa2599a93796afdae69cdccff2de7efa556c61da502630fd6d26d36d76a233b32a338a3c85c6e892679636ba0ce539644314157cce115c6102e915a60d1d6b415372d97326cc1176d6fcd3f7ff6a26773e890dba67504a0a4efa04d251b26fdbb69dc417e9492c4f4fe76fa5eeeb3f09b3c55190e7100d5fb20d4f4ea7d34f184ea7ffa878ff743a9d9e8a773c89f32b3dd5bf65377626d34cb616d4a19a7f6732054115f81304c13104412579524ac39fe21295495c35491241714cbb727f67a1e438f9056fe375277408ec2f843af53e755882adb76ddb92f8e810dddd64534a29a59452babd10ca719c376d6f223efa5cb2e8e40e87804e52203c73d953fa57ce72d54cc3363a522084a6ff747dbf1fec1beaac6c6a7b2bd6afa37fb1bef2b76e95cafdfa1e956b43ee3b5676d09df3b9f9210af3ed6fbe59ce7fbafb7cf7b7d6dfb164dab16902ec2cab9a5faa1cc833477f5b027e16f4ee17eb8bdb4fb13ebd47a925639e3c7901f62f7b4c7655277880d2033cb9315be0c97d9cf884e3e856ebd3cbb3fd1215482f0eb16cfff3d7a07fb4432af76b1478fbcf76a40281cdf5c2b457acadc9d5e7a1e7fcbab1384d7d3a769016b8f42dc569be558f0dbbf7ab16b8ec20dae3aac31eb5c01d867fc3f38460a6422291a0e49a85862ecab5fb2e1c62bb7bfbef492792de8ad4361627eb93c416ea2c5b5011beff99bef4427c927e89aa4914248114fc2c68e99b2ebddfd7bc49ec5c9aa0934ae6c55fde2224121d31eee924b17f442ae183e2d8509c86a640ff89b326ed59bfebc086a2a4ce27d77dd01927bf4a81bf065370d6a4a34a8aceb569579893b583be073d7fe3cac9dab0726e2989e50493eb6f22932d0525fd64455b1df47df825beb05ca91098c956e909b217e4d6af457865b461197c377886fab6fd36dbda3937db02ae562b15a9bb6c92330ba9e5609233573b25af7ea0e1ca96c24d6c4eceeea176d52e79c11699b900d3a67e9dd5ae004d6a01c8aca356f043fbf6b3a257b26665534e7a6f4515c9867bafb514872789652a7b317c3f69768ad749cf76e3f679b57ab576b5859c65bfb3d8ee76b7d6afb5d65a6badf7952c79c159ddd7b7dd7b5d2862d1eb2ec7719cb5dcf775d6fbeefb3ecb71334e72b36ef65d995dc17388f6324188d0069ca5c20a2ccc700ec618e7ac643aabd56c365361a53333418810aedbacd56debad7b04ff03c5f9e534aa49e0159c355568e2acf2b6b00167f9d75fe2ac39040650e6feeb9cf329f71f67821050ac5f4e23ef5998b3dffdbeb1f44623db28a45e7c2dd702c70931328d36159ef8fa77fb5a7df04d1ed81a71d256d12d79a1b35f67af846c12c3c7e2def61667f5dbb79f8c85bd4ff4dc50c86cbb276b565fca49fc9fa872127f23e8243681ff7d078246acf757049df4c6cdc96e04bfcf4e5ad95bb22d5319bf922531803f6bd93e2d7b18cfdc7de3d65bec7f9856b1f647f83e8f521f706984b66a9cc67e4eb63648b6368b1149a1d8ee952c79c1f3813f0c7e3406b87b67d1b73fd3dd7baff79d38e3e47dcf9bb9fb500cdf133dcffb4f0c474fecbacf13c33004bbf7feebae77bbdb334f886fa280671632b2647f7be54af697f919b2e4cfb67b141060f2f7444c5cc9f6bfff4a2e5021c19cf11861ad5b7b2d0d1d00def2fbc639bfeeb38c11cb02c893880568e40e1d00be83a3b3f06a8ef97c6c0a8e2c9cb36d2499396dfcb73c33c7959373ec5c80bbefa009040bfeb2c3e431df59e6ce06ba89196682f1f9657609cb0e0af22ede4a6172f992fbbb80c9edd9fd73cc96104a270b7c7f3b59f6fdbfc9fa5aa577d2fbb88293dda8228d6577101627bb55f22f2718a61e2db058125f0667959d6550a93a685cc1491fb76b9a71f2fb0e6a0a4bc149ff4f1c372c23ec3081a1dbc8a46f72f3f7a5cc7b900ba130822c23f35fcf3021bd7d506cd2197cf03ffb61e80031db9162a9d13e7d4fdba9949eb64ae3bd1446b3cbbee0b2b30b39be49e70e65bf535f92903fec354ad3ff3d4adcbec0f73b1a9e34115ef5ed8208df79a8efff50a857bd08a22776064307748fea1ef59f83287166114e40e5f840e71c63abc4ced2b26e6c2c2a51876c02f15a5853ff51f023bd75da99443f146bb592845c7ad9894c3a0b89711712f220275dc8835ce685b88b32a30b39d93ec3b5d50a819d35e99409a42b2950d8cf91814b0fa2b0de69ffd3b5434ea30ffc81a6825db0dfa44b17c0fffe0bbbb39d19ecee9dd508fccd7a04eebe6007c29fcbf0976e443a970d0c02fbcf0c0281ed7fef2ee4de4fb138d9f8857845023f2ded834f7d9840fc5db0ffc150ca0fe62e74c0f70ec498fcbdfbf742fc7ea05b3693bfc7e2ac2fa8af0b39abb14cf0977414674dd2b340d2969149e30f26fb97ec8f1a4fe324bb497663b9e90499a4ff08a29049fa6331c8a4f1afa20993f42f8978d2f86ca9264deff4bcf15fa9c8ec231d93bff70f06f0af6f4f60921d473b4e5976ffad2467b77145f0595885ecc20768ee5ec9fdefeb1e1c41179d9c2cdc421de4648d93a70fdf6b1ec68f7aa7bff44d8b2de46416271b14bb3f892a8829385980ee4b954a84ee3b08cb53186df9c5b0dcaf4484b1bcaab1c4373ec758aac0b1fcdec9f12599a9c8e07b9f037c1ce25006ff060232f8261f3603983460e9dbf4a8f13496aa6c1269c02789ef24188e33d3061ccb257306fef7578401fcd249064550f4c0586ee50884f2f71d160147185ca43b30a9977263d9dfb5c6a73833d31c7542aa0708fab8204e72dca43d13c80ce224f73a4e5681cb5bebfe7156b5dfae7ee2ac6a64c6f042131458299c307772dec804629f5361ee3b5f550ec771acccddd7f6c3b7813dd5379dbe3daee0e458aac818ebd83369b6efe9829b852433f9c8dc99e99940ea6f1bf95da399ded122f71f7d6d8bdc5f12a0f6cf69d3efaa3ed08d524ab7cd0a16d94629a54f54696032f20463fea0f436904a24ef826fc3077e1f0edf063004495fc201bf0d212e7d482a91ec979ef4a50fbffcb9854b9e73d6ac7482e4f9a54ff4eadbeeed576b9f85ebedbaf1566bbfbead5b912d84b86f7533fddc6eb64e38b75c7c73a63baac3c9e652d9da2599a696a4b2b76b8cc1c996a186316390c15b9367899517826c50cb8e25272a71b2dfc382654ee0de726fdf8e0d33bd0bf6ef92211d84bf67cee2e22cef9bf4fddddb97f0fb1b4c4b318da51392d8452cfc79404e3697ee32f6ac085ccea354c662d957727f0cf762ac52fd93e4eaa89c471d482979c1599dfb5e2aa592cc09250a6e649439817ef82ed0af3fb393fc6da0154eec19155cf62cf7c720c3f7f713d2e6d14f8134a6e064d85f5b3aae208393fd648b012c0297e411eb491d232938abfb7e162697dcdf7d97af2a02b70e5bcaf6e20f6c9c5f6751ecb3b3ff5f274122700c3d5d351225cde0bb01cae6df4685a3941b3f8fce25e69cdf156f5f7bf7dfee992d378cb384644edc7cc8555cd1d65d959d375816e244beade01ef5207b8ff7c806818fb2ffea7af83ae39b33650a2877108cbadcc88b7aab9ce5ece5c016fb76deb7b5f781613718b61008b6d8a41a3605c9bc8a03b9cb5f359aac28a863fd6aa0761db5530ad688e5a4cdd4d494c0d9f5757b3481705b85b21d6d6aa43181500c54a76c4737db119e52a5ecd88eb6a36d8cb36ade7f3ba235373b301090e97467b5d69b5a436d6e76d8d01d3b6caa8c569b9b1d363b6c64b4deecb0a135766b19ada9dcb5379d8d5df5f8acac8fcfeadabbeaf159d91e9f95bd3d3e2b7b6d8fcfaa723774878dd12633323aa16aad3db5a395dbd1b3dac1ad563b6e8cbb3b7a563bb89ed58e18777b563b385a6d8ca3d7b3b5a7db61adf5b1618dad363e3736f5e6c6c6566be37363537d6e6caaf5b9b1a91f08abb603659f4ce613da7c383c7ae07c3d7ae0801f88c3a307cec7a307ce07f2e881f3811f8f1e38d7ebe1563b8c62b6f3a9373630192a75848ab6ded5119cd5c5c1597db0fbad8ee0acee119c15ec7e477056b772b05b3f1277c4ae78d4881db53c7a6c4f8f673d198f1ecba3c77a321e3d56c6b9bc9093c9643cbaaeebd1996a3a6e470f9f1d9c8fcf8e8eeb76f4f0d9c1f5f0d9c1753d7cb812a671351d88c7b187a9e4835562b17009fb60957cb04ad807ab844b3e58a4231707e6853c6c8fccd5813d389f182d164bddc8a1a2e53c9f1c1e3e1e0f1e3e248fe493c3c3c7cbe1e1b3b93c520e0f1f8fdb5c1e473ae5581f1fb6ae7cac5661b892f958f95885321f324a0b4d3299cc8765d588df65e15c1c1cf0823116ce65e15c30c6c2b9313bbb14c4b118ebfbbe239f78e3b3477a6c4fcf27c67eb0233df6488f18fbc18ef458182a25c67ea5140c05831db981fa81048504490a95fa8104f503092af503092a85fa818474caf178b842938fae870cc4ac8b139b7da523b60726e6060e1d10b4608f0eab0764b17a4ca0a94787d503eab07a280d34e9b07a404b69a035e1d061f5fcf83ecee7878f0fc63eb21f3e3f7cb0ec878ccef00d994cf6e322b9484a624a312448c494624862624aa9582c86e4e6d4886197d3a3ebd183d491727a74393dbc74a49c1eddf54249a89b1386e17f1dfa08ef87a208e1f58173717042a21bfac0b93e70886ee803e7e65011ddf0a41a738c3e44c891a495a3d552e5502569e548d2caa14ad2caa1ca91a465c2a103b2280ddff8f11d919552483c1e6248a89cae07cc4b78f271718870e40842225d124e901c1c524e0e4e8a94c2099283430a92834367a454901c1cd205677446baa91182e4e02409437b6549506250b22449c4a0644964625022c864b224add6c9cb29d66a7939c55a312f27552c166b753add4a67b53299563a2b9d9509a6b3aab06acaa1d3ad7ed48825eaddfce071e3f1e071833d7cf383c78df783c78d877ff0b8f168778447318eee47e9e6eb129252490440a943d2a3ebd1a3d49568487a74487a74251a921e1d4d464757baa1832643a32101800c901d999d1d1d323a80ecc800d991d101644746870c909dd4084148394646281192843ec49c542d90e5c59443e73b428471fcf078946e20e97ad0c0990a9cd555a69eb050a65e2928f8a9c875996e4794a6739b63ebf125be8281b00b7a671383734c3112c241524a5c25863b9883b09a2fafac5f0c7eff1c01f83225a51aa560d428f532a2342c70a310ff6a1a4883ee604d6fa5f6ae97743b83b307344f090708129c1212243838bc9470e0c88020c129014182e3a584430604094ee9cabc942e0e00c86432204870766ac46a493d3b393da49c9c9e1b44a41b3db19d9c1ed24e4e0f11e9466c27a787646344247b43472c16dba93d41c2af112b17fa04f1e113faf0e1930a533e417cf884417cf86c4784a90d16c4874fc86db023422e250383c182549f24e0d7885efd1a709584b50259ac150a44ad92b0566012d66a530188da5c49582bb06e2ebaa900aca811e8e6da5c4956353fc3215dd3aaf9be4634d16f9e1a70f6ddb48edc7c478edc9cd8f84e37b4d6919baf75e4868def0476a1b58edc7cf467b445df868d8f9e44f06835345aebc89b6e4c5ff795ec54744a5028fb53108bf72651fc6fd6ad56a75d2fa9e6996cb9046136e295a168405fd7d72d8a368170b56e3bbe448d41d150281a2a0c30b84429533f2957f62d4ee35fa6a094a81aea08058656f357f632597ff3803ff40efd029402c226909af7077d98404cef25b825ff58621909637985e82c287b09c6b28b63796119037d5d5fb740130857eb3683fc3c8fcd97f84a760ce4256017f48ed7372dc404f2efe06c4b76b25471f12cd9816c80f0146791f0fe186802e97ba78dd84d9b7e12c049691200cec019d561daf407204bee67419c9406d3283fc449693623da12d33b740721a32023d762daf403408492fb8120c1a1c98ebcf48ef380fec8a8cb859836fd3ab8907c8a03f5c484887ac75d308bc9620dc6b4e99711a5e4fe206208c6874f1fd13b1d86c35eb096c1b46932495f99946625ba684b05bdd33330c22e104c9b7e11c4fe16158f88ae4969288db6d8e89d10f44dbf57c10d44cbd3a65fe5d5883bc44969bee81d9ebe9d53ba6db5725be5386befedeced3acffb3ed0fb40300c49a452482a953036994e18ac318135a7135883428135a91b38361c38a8378ec601768e1c60ab441841669391a1de3235628d58eac8359f23075823aa6afe538135a208df1c611b6104ea3d42d7b4ea927c44ba015103a2114ae39f01510906c46e41ec0b886d01b12b203a0ba227111d89e847c41e7f0a90131025b0822c023308143d80a68203c406f40f03fa9542c350e82a0be8d8091d64a465457a46a48b8634cd0451017dc4f3935f426009a852420c014141643b3320453f683a5e6bf911ebc7c72b078653a547cc01b4662c3bd76cdf3ce08cd2f88741b8dcc059f6df8ec01fdaf279ff2ba32d9bf7bf33daba79ff5b445babf7bf34dadac0fb773fb4a581f7efaad05606debf93d11606debfa3d1560befeffdd0d605dedfab425b16787f4f465b15787f8f465b2cfcd05612da42f2fe9f8cb68ebcff47a3ad9edf21a3c01fe0276d4de00df093b624b04204be003f690b024f809fb4f5801fc0cffca42d07bc0018f0e24fda4ae1ff276da1f024fca4ad057c007ed2d6090f809fb465e475fca4ad222ff393b688fc083f696bc88bf093b64c78d54fda52c0e7c0f193b6f2dff8d44fda4a40097ffa495b08f8208fbff4a49fb4f5e3c3077fd2568be523e72fcef7781e5f7f25deec10af4d8d38f301c492348028d399b2399b4593366b0210cb79f4f3827595008865c73aa8653deb225ad78e7e5eb02ab120d9cc8b9c068aa5d7fca8a43f2f5849ab943456cb2b038bb253d9b4e94ffd707200772a50f0af06a1e01c4639bee4a039abda69e3a10c97178be028df10f1a7ea6f4e6bb42da8bfa4335a947b439d2a3dcaf7bf8ae4cccb70b9015509c1f82de6e4cc4806d196ccdd8274b866a04cac47994e8656a3c315a32d142d16cb6144a32d124890d116094694c6652418c9b2c7c04789a52afe7d58bcf1a098fa2a764f4530cf09a44bf82715f0bffa65128c688b84234c8251f69f429c044ac251f62e7f47f7de3cc34b452f875f7e47a81aa5f13789281a6944d1288d7fa5d57218d156e952213d2876a9561249e3f79b152ae05bb1bc394401d1d6c51b50f6ff999aa35cd6f477e4ca5e7e47d9ffb35f966adb0f98b1b3caed27771130f788a2bd00cb04d116f8be791d0d1c45918e2535ca650ea3ec8fa26557f983750432f32b4f0190e07a5b290a1ea4d830a67e81673864e6da00a64a96ef6b109c242d5b8aba4a056d48843e37378cdfd2f0049b4d582c9dc06033a6e1103c964e66b6a52ffd0c49a527bd154b4f123b2e7d63b77048691442ed876fc5ae0804bbef41d17ed730f77c5b4a587ff36f27a6ae437c73053c896861f24e9e44b425f2c7c2f63e37cbdb930b05479960c2ac8a645488ea509d70ce27372adbde8e332a64059639c1fefd6b858ad02c4e6e7ff459d23b8cde8b313df2467113dab23839ab2a90c21cf61d905d7cbb5534e8c3824b5a672c7c046e284eb37d942b054fb1e2301c8f63dc5e1763958a14ca927b9302845f35bf1206814b0a83ddf8ed6915d36f4f839c2563fa9953bfdd78f008dcbf9d7efb7ee1df64f0cf8c2aefe97598e59a3c87749892371785519a4d86dc63e91ffed0eb4b1d23d22327303dba019639618b79b8c4dc7f4d856d4ee52c1448998e00983655866e42e6eeee2e6732ddaae0992a549452fa4b66b870087db27b864bccfd3bc975b78e69c3bd4e897353814bdc2a67cd1c345139c9b51def6ffdef02a594d23929a59def7425a59476f3aa9cb5d1adf41dbabdca5974a4e2969a197b6ea7a3cac9717b21fea40e4b9c5dd58f9d5439abc7fe928e2a9c3155a581cbbfe20a231e451ecbdd2c64eeeb67abad757b4e5c329329c569e023ac4369fac171cb01973a360778ea20b302f8f8f128037ef09df07c58ec14dc40e4e271ce5e53111e709979ab2c0093ed36961773e30c3f3158e436fac5ec2626ca0c92a8bf51ae56a56bbdc371305bc772ca4ab97418176a94a80b0bd03514451938745e33fa02a446173b842aa09a15586d082e82b801886d40532c11024da10595532804a5730d4129820952490808f0a5c58625bad0d2c5baa8c264e31ab2011443423ee0c25aa122622f78c25630b6dacc35461741e0622f1d70b9403a382397130ca69ced224c16d8ca1ab3d628d010ec0706396c94b3a5ff74cd5973a88b35727fdb8c0245b1b121338ef8f13ad7e68a01ecbe6210b44307e48311d114247eb0616dc8ca0cb52122c6101541c3055f9da58c99500d42d41bae19119618cc6a40d405c7558eb35ccdd56da4e5061718b121d49cadfee3ac39f425062c9b3b87d1970e8714d9020c7e2b563470a9535f086d9dbe3f06199ce56ffa7ed48bf0aaef57425b393e2c91fe7370db46229e7b331a92c1eb4500926b08899a6a48063f5b38a47546b8238c443c8ff0deb7100b5225f7506f3df96a424534816b42450035cf08deb5332cb245a942b9ca158617f26d98142098ceeb0471d8d1186721c0a55c1d93c6be4aac9934f6738841268d7d1ce29c3437c4396950223869ec9f52774ed2fe67c20a1bc8f7cb26442e912d7b230c32dcd15ffe73a50aa134ad93a9802fc431e5c63188eb38d9d3a89bd35a3be9a83369c010ca756c87d53a7a2ac0a54e6e9555e54964854ab52f5347229ee973af13a45f89b3504026386b12e1604b7d17c20198fe663970e57282c9cd534e59912d683067952b2067fdf4ceeca3deb13fa507b9742b9f185cead4f1469e435b6a0c6897c2647b9dbcc8651d672efde787b69a67fef4d1cf4f1f6d5a7ca03879ac07bacbf7e790112ccfb048976588749b169988735f15dd7f1c8abf9c24bb2677d93587b914b792fb3b8cff38142bba148721819b2e91d3639cecf73e72b275668cd096c3a60e6df9cfa4e9f71f9d539e44b1137455a5bca5e334fd36db9dfbf6b7fb98be4ac438f5dd7f7f2df771ef89b78a4b6672ca5bd3639f5dc014df9cf9da29ddeed3cad96b5f45c346b348683aa5f186e2345fbf3c355bfd013a77482dfb5b15fbd53f459e18614a7d28e26f72f3e91b465b5d45ac43f0d84126918afd92d829b1b3384d139cbb0926e68dff49fcc0cd786c2c46f87795ce3dfa7d547e2e4f0d24b4d1461b6cb878ec9b442aa8c7359050fb146a7c82fa1b9e07351ab13d180e0943703c6db9e46f125ba8839cf4ef7ef074320cc12f81a590d424909422859854a2a5b004d252e96be880adf4381c521a7d907078c2f68d137fa68e7a4f9335dd8e143e97b770482d6bee462e44e13694edfdbe7fbf6add36bad1196e4647a8844633d2515c1f7da6c32769ab999834fe51ac6e90bd8ae9bf0636fa48d04e6a354d91d58a68341818d9962e1dc67f84da74f0dbb6a654363332fac265cc9299fc1bad362ba2c966fedb1631b8ec996c6664f4854b97be49acb14697cc46961e62034beeef271de59b8d20f6cdef0c5cd2222eb9bfa44378e57edaa5298d82c9fdb44c0a49c933790e8d39ca5fa955291dfdb36defeed77dc94cbeef1d927eb0c09fef3b16380b4cca53280760f20c87dc76e5d5d098582e409e43637ef21a5b7200f21c5ac34afee617c6650666d20467ba8516f3a6ef7f9bd7da1ce7d65a7ac32261916debbaca15f169b3715fd222c7c2c3016f9e054ee549a4a58becdfed9edddd299d93a4352452647b17b7bc8545c62dfbd75c43d20ff6221e16a99654644e9bee7d2cef7ba9fe2d2ce26f9f727196f7d399b3720d3498a30177cfcd803f16a6dbf6750cbeeeeee3dd38e0b3eca30ba5cfec7f335ab406febedbf500ca2384fe767fac919809f71e68229ebdff3a719c33cfebc4c7179c9cb48b9398b67a8649d38f834a87f60177f74f2ab0f75f2670e9a4a281e7d31a8a7b0d6121dbefdbb7adb864266f9be74b9cf4df38d01ba11397388df79bb3caef85fb4a68abfb3bfa129fe52bbee0a47338e0eb2fc48df2f7e53ca27951f67b6d77778fd62ee1c221f73d51899310a03cddb8551942396b210ad7674a5ef86838c4bbdd77e8b30ef8cc8edb164e4a655bc408712f4bb9253e224330f731730d8329b592a9e568964cc79206b9aca8c85973080757f6ef2ecea28ec5b7f49770fbafddbfdf0a2c4b7c967f13671e412cf76f3fc06503653acb944e4a33cef7bec525cecdf994524a7fc6bd85bc2ad9bfb3e23f82cb3c4874a16d742c6678d9b39e396bb6dee56f8594aebd177c41283737ca5dbfd6b9bcb1289d746e354e367dd2e78cd3e97313dfc92cf0fc7e7f7df585b80fff4d34420606a234b3ca8de12095d0cbc819a599437e504469660bcef259d443cbfe2c083181cb982e355a460b79f3f63a29fd2936a9d9dd7f8ecdc4c71ec2abe92a4767256b28aea5045b5acde30dc55926ac72bcb9b76fc4599efd5370d6d462c3cf136f915e43687cc93e85b257170da4d8101a617239c71415d9e28b58448b2f62112d68ce9a43629ae0b2bf09cea2cee520444ec18d6cc12529bb647b7fa9eaefd7e64548a9a35394fd83a874d4cc2cf5e70c4d401b6db4c123aa9c741ffe758c6d94e99f3c419cc6df65fa479d2a045ceae84c37228a5c84b73c87ba00a30a2c5548995b0d09c073e8074bf67fbf92fd274af6dfbce53cde2597334fda881e18f17c638a6c01c6595a665d7213cf1ed886f0ccdfe75f9c3573112d684245b6f8e22c9971e6959bf17df3cbfed9e1e82404399166501c12fe570abf43229fc8a4c9d64ffb9d0271c922e4490454cb1f05492451e684f0491f492c8bccfc823ffd0ef8d3fc856249a433290cbd90f44d0a2b892412e91c3eb73d280ed9a8e721dd9ee77db5d6caddb6b61b67df5c3bcebe292f76276173537c13857e530960d9f4f5bf1238969b68fa8f85c3ef3f7714fc7df8df684414624218f8c32f97a472fdd26f6f826f210afda6a7e109e19bc6b27ef8db83251573e70e13264c98904a8fbf04bf49cd45664e71b9c8cc2a27b72f894d6c2e32b30e27b7c7229326f7bb198ffc6ac0559843d26952ca45660ee2e4f624910913264c8acc3c7bf34b7391999b6cb9c8bce1287b4119ff3754822a197cff09a4f425e9e7d73cd4af23f8a6c93df8dcbb009a3616078e269a4da66b1269bee2c6daa8b7d186ef84e053269de797e08763088ed3c97034715c28d6ef908889494f9bf09b6c794e1bd39b1ef4024601780e79e992679e996402df33f843409913eacb803f73f9817792bf5adbd69248e7fa443a7723112bcef0af3824ac26b133c924faf7df36c3225f49ec36b227962498c15dd9337d5712bd83a173d74e2a49904d6f828104df873f39d14519d3cf36327e4f94313de967fe7a84a14b1f3e497481448434ca9c50420ebf840c7e0882a30bfe20386e4e6e50640f387165500cbcbd0a2b388b0404fff6159840c2df48f0256fe5a4e56ddab80ce95d08b128431a89840fbe935c0ac9e048c4fb4fe68412325842f62e4b1f6e4bb2297c502c53794e9bf2fb2d74001e85d012fc39725fa22411ac23916ddbb66ddb4417fc3f14bcfffeb320f893759b8722a07f8728f87f0f8a32287c0f3e38cae0efbf7286e148644e9bf0e7b43195e0775f7a1211f0c12a92c407c7ea8d9d78c55b9dd47fa3f6cd99327c658765ee493b961cf8ab991344477c2770cf3cad74bc47d3c6ff8659054539954a99d800e222c4633299accbba68c8a8df5028ae668219e4d3e964a2ae4c5db4656926d4732098289070f16084962db678a10005ae2488bea032132205b924f3cc69fa4d26532a25e2acc3cc0b2c3818f1100414a4b0b8097820c12b400e36e8e284153cf4a0891c4a4229b0b44643c73de1217840224a185a1059a106948a9a29214c27d1d6b8544a8a8c42a14ea722be18bd52a00415d80c27985bac49e8f4a8ff4ea8d3e9878a6cfacd8403956c7ad05932f974011a40b1c58a34a640c30b1354d33c411183d349cbcf956c329952b4226b516fbf835ac87ad97ecfec972dcdd22cd7af8649e144b6a56cadfd157a5a50f2820fb2fd26d6f4f6496bad162856b245655b648bacb54261b2b5312229b6e8a45229da1919f51b0a8542a1504051b8b088028bcc65043c11c25a4e50944f5c2ef7831ea47015d1a084cbd5b2d768cbd26ced64ea93586727b8c17543971354d138a08ab0d6de10e92b95ba91126994d4f8540c37a652230a452404944d2693a98221a2072970f8c10816fc8071c690106e38038d1dd0e81274a09d5a5af4e52693c7052ee9eb8927b2fdcdfe8d922d906c89a098225b6b4ded03032228631c01810644dc4086145b68d1431821bc80066d03caf4a7d164b2358e4631fdc7994e7f1a4d237d611a9ce8091bb2fd91adf5aa30a38c2a3830ca810ffd649a84387126139113b51bb4d3d777988dd51bd5f4f59b563b721711b98a902badd26a2a48a8653df322d76f2ececa91eb77958aea57c31a48895cbfa7c4405bb7ca0a3df55ba8afe4051ee4eae55a548b66c85aeb0b8192eb29d757b541438c5cebdbd88d3136664c3e9d4ea73564904f9f3abdaa04f9f43a9c25803f9180650817cfe9741a0214d9f49bc9641a73826cb2229bc6f4209bb2c964dac18ce6e231e12f39f55b2a65caa20610198542993e9b4c4545680ce186081d643942a3284b1a542080f31245e8f5cafd5eaeb3406c3f65b3a0e1826c6ff057d0b25437b22bd7d10c5a20e4c59516d4109ea0b8c1e41ec57126d3585a6bade7c5dad3494c1207489db8e0408d57cd082964f4408315c2921a51e3693c8d25f7361674b3c03c6da240d3fe508518b25c2b98fadef778df82f74abc7f614bf63ccff36648ef573a429e642fcc1ecda3799ef7788bfc791fc3d0133aecd82f58bec0c2892672fd542d09f172f1545a0d829a4081d8041242434d8cb165084b138f83307820c5e5f98c3b951004172f4894f143ada867a8a6af64789eb596eb13c90ba12760be3072e204edda01fa4209294fb06c216ba34be2e40dd5808701c4ae944a8fc7c825542e959e2c954a440c65eed2da132517a22d1bab4276760630e30b22143021460eaee0299f8d5c92a51978cdc50679597811e607319e10f9c086356ac907998b5d2995aed8c07482106461cac0020a2d448ce93a68b4b1a0d89520eeda7925091c348d8e84a045500da6dc00c610c28a44168e8b59eeca00809090b92ed11520d4e75f9efceca043098a50230d357289d7b016288902780230228a9f217ec0e58a1bd2c825cec944560b5cda187d7d36668380d8428b20ae74017a094085069230b820220223053e80e22835c4142de0411720683000dc8169810f51d45e18838c159461440b8850028d5caa9ec44355c6589aad791eb7b3d990ad4be941904b9a5934c7021ae4fa5b1d9282825ca9c025d20699fb594e99b596f3e168841f7618fa618c5cb57ce7c488214c00c694305018c5408cadd3132ae20a4c5fd32688eb495f13086d1fbab8d181326881b5d6deeb4314a3a5795e008070c4123a90053d41c41931226badf5f265bd318a1dabb7915144aebfd56a2d098a243c9f4e4464d4904b642e956a271ba33458b624818234b860e28728c2e432270791b95a6b5c72c9c8e572dd5013d045098c5c33ec40831866d45a6364e45a7aefbf9257a2b48a46e67640148429b808c10599cb420847598c31c5cc52db21735fc3ad4a482891050e3dd0808ba32765dcc825892a9d8680e28d9656e3803c1a5c06b9f45ba9748119dc90831a30c1c3112f20c38404058289030365003430479e510a9e18c20c3a9461a5f695c63a460d03d0b2822a5d9e78d102e322c8676494db4b0f3df4600c2c3018c20d637c5a9c4e5eff7c7922229e0c801b4b4eb07441c50b2b683008138510be6a4414dea9f44443dc40e665a393128819c3041541d042461a3c3308b9549520f4829215654891e5ce521427d1d268dd40ba54b22207b9deeae406368010824d39418d053c60f2299b506b95c110b99ec6aeb5cec27c1551a818aaa28b212b66208298159cf183900d82608003318cd842c1c038c01b1541a06286452701e1113ae8e6a61093eb145464a1c11e68e54b5100bc2370f8a129982001ec186d595a293c4268865180ea99aa0c689e374600b280c921d71ed49ce58d5dbea99ed8c8dc68694eb6b79d4e624c21d64ce092840bb6e8e0831a3398210c2f9739d90a149506e68befb72c6204913dcfab795284d5c690d8c1fbd27f9e686b25d1d2bc2762c1d43c1dd8d848a38c1100cd8221911e9b91493893484f9248cf058e0a7af8a14505530c4035f3466a5802404b84041092b829819b60bcc0f37e10610a6d24714c11677411ea828a185780914b9c936342d60b239b7080379edeb4f4c083fdbaef9f186cd77d4f272b2207da982c38a060069e8e96bb7f818cdc75b48e36e3acefbb27bb5f75dd0b5141ee54b903ea80baae7b9c82dc756f63634c8d23726561ef4bfb9646b9d140bc22a969d35fda278956889728cc5976ecd2dfd9dabe3496f649237d519867ed486178cb257d591d3cad237f2c4ca38cf42835811499f56ffd1b13083562daf4d3236735ed056d64127d39b592fb471acd0c213297059119687c997b1c86862bc2608180cc3db943e6ae38c38bcc7d0ef73a42942865ee8d64c9dca7e02c9cb957818b0032f73d2cb4e0ac4924068dccfd069c752373af044ae67e094784c62c73dfc4593c32f731cc90b997c159ae1f1b32f70d859b44475a64ee3b0a511ab1cc7d4be1d4f8c91c29735cb54044656cc9dff77139007531d4239d2e37c88105500c99a0064020d95a3b888a9f1ab0e800085d0069f9c2448232daa0b06644163568e2e57261eeeff7dc6f41c90b3cc8f79b38ebcbf7fb49ffdc37425b3676ef93f757f7759ce5e5fb425290ef9be0ac9b2fedd2ee7d1c837c3fe5ac5337c670975841b636b01b7db100014334286ae51e3425bef0d1458c28ae70c86dc1075938b1031d846848c30c1e2fca9c2384e8ba56220812947822933db760010b9ca88551431b3ef8924bf25e28c4581b54ebbd57c4d00439a9c204d200b02244102ef012c6146a7491cb9c6c8580e0388eb3b68d1d43578cb801e64ac8a56a0910b468a2055860e122c4533e17b9242df74360087996e34a7fe77deebf2b46b9f7bbf1efbc1cfebe24a2e42a936bad43492091eb4c656dc2226a9ebfee6c0dcd40080430027ea4b189f9e5571d863b50410e3fe5ac30873f438663f82a6fd1170d42e6aec8dc5f2c8432f7e00a7630948510c8bca3b6ca369680ced620d62f6dcc5e69211b1bc4953773387326a8a04357ce9a4432f06216653bda201b93e1f9c3d3dc1017293336e62cd05e714f0b2e6f1467c1bc35672e97cb061efafe435b37c85f1ead46bf8fe8bbab0599be3f71966763411307579a5822882c382ca104cffc41a64c04656a69cbd2fac94fbf686b4ad1c61940f400468b0980e0a10d1425b36ea61f036d59204ad3bf424f0bf49538cbcbf45fc892e9377116291ba1ad5b85d2b42da234e48ab69cd8d0c5115774c9e1053b18e2a1afe3ace9834c5fc8974cdf8425b09081451844a8e0090ff592e9e32332fd94b3c04cff067d6390911399e31e0321739fe27ea0449e5b32c7c50c5907e9d9c6624652b298bd9f950c5cd25710e5624041558462b9a98c465bf435d27c6045ee7eebba92fbaebbf6b6be336a423cdd05b24063e48b45bef745a39c8c6e15daa2af5bc54b0db23540b696c29ce5422ed7c789227dd157e69e467112e62c6eec9acb954b6ea430fa72b2e98bb69ac716d1d6b545b97ba046aebf392b27d79bb7171116b9e7fe6271b21f4669b8e6c62b74839ceca0fc0aba4239e00994bd215c32cad7284f01b81315ed3ca88c2746d872c68e4ffe0cf9e48c934e3bd2493a71a892fdb79ff196f3e450a7b489e77e6b59d4a6ca2dd790b966e6cc2c5e33d3578676f23e1597ccdc2099fed6ab07c792beddc4254172df9f77eca7df294ad688fddfa693b7996bc1eba4c5bdb590e9b758be2a53b149dddeb76de3c6b249a6ef94b67fdf7b2215326dbca76239b364af83e87c544cd31c27bd1a27bd27673eafbbbb7538e97d11b1c73248eebaa7629a8a4fa52377ff7daafefbf72b815f676e94e9e7fefecd779441e17efddb2734769248d77509e6ae7b225db72448eef7be13b1935e4feabdcaf374781501aa45a8148c590a83da212201000082a0002316000020100e87c462c1344de344ef3d14000c7ba24e6058a54803254641100529658c328610203002233043e200b8924026032abbc5a554c12dc72a7b4e3a79ecb0decce720638e75506e1b43bc899edf780ea1b18597dd294619d032a09a5e9bc78d6bf456404f59222bf0d9920b61fa447aacd78f3642823ed36cdf4cb5b0db8eb3d7c8561e7e97e44c0bb1b2aa45c5593565f1a1e309b1f2510839c285ed655ed50bb425597b33d866266c0a1fc5ef4da63d7343cf4e150add20210f7f67731e97dd3b516794e191ae3bdc71662e3ee25915da493d050775be58acab87e90e97c259b90f45690b263ad3bef465b580962b2801c80dd8bbcc670a19158b73e13b21c9e3073d959bda28b18fafc951691f23b53bf08ad0f0e07df48bb050a604697fad1d451670baa51fa26881e322a590b052b1a3e87fa23c23c21f7b7167fe3947345d860f7f6021932d0909d9cbdb5191d0a03bb7c537f66490ff1ac41fe94655c23ca41a394c2dbf7a3f59b45847ea980c79213b4168a46689106d165b51928bb9c86669bc1a7ec9b3678637ae8aafda0d774481fbc2d1e67e7538b7184a3872e629a8c7e71e1969c33147e5cd3b82439f4912a9854b7fdc7aa553ceb41d9cf5f2e69ea643fe760838b159726a7cc47f2c0770622f30d6a686985795501c322ff4a23369c62eb4e86f61949f03236f54b8d64a26b7117f0254809df9cdd1932dc6dfca3193cef258f385a5583c774179f851a78129847ae9f0e9ba3b228496e288c2ae5809640aad910785774d0f9291d0708bd0958079d42004ab2c8a5a80d11d393a98fdd2056f293d9396ab39af151c22751eaa4ea32e0b8c0182067294405e64a86bfd69aa6e710404a5ce4cd4dd6c9c3aed0f9e97a9267e104d720da366a68d7e602ee3d1a25852265c734c9bf2792ecf19fa3eb0f91e4b025e4d18af52139c8557eefd8d7020bc63b7c98e996f9c77a1c263af5924f33eecf518cab91f033135f0921d94791db80448a03017f59d16e8c46250f170773026f7c120d24e548dd10a8412a4e687d31f169e62f952ffc3468f529146ac28dbc90ae4a9365eb1a0a864433107f6269eac89251496edc4ca24f7485185c017388ae9d0e80179d1de402621d2c0058e45fe1ce0300c953b025c5b828b343ab00667f13229a142270b0415b4b465b46c24c547057ddd872cc8ae235a56309f79879b551015ae4d5e028c649958c137caa22e337e1e17729575af85600d189f55fca094eb128444cc52b5eb15dbf83327e12964e676369fae507e83e7b37e9fa653ba3b2a0c3d311e35089e20a6cc22f143558122fdfd294693841fd703be7e0828d1de2903645c354d5e0ebdeea55ddfb78404fa2b9c149e879058aec5ee1d081620c1b137d1328b67b741997641ca078c09a5d1cee2848a5f30c01d289b30e09d809c0122b4be159f119aef4ca0b9d37cf58d8053c4ad762af9bed92dac07fb6311bda1bca462877b0540c17cd94aa1e2148ee6678a5ddd740c7d6e141e7e14ef39c1f3c30f0f2d8d0f01aa390c4a83db0472d3f92811c035ce197ec8d7371bc3bee20f4968e41133c469ee7b9abed126785fd9395da19adbca780570bdf71365da95341caaae6d498b55a08236c4c655d966dbdb97e666009523694fcc38dbba841f706cf3dd7d71f52158edee12eaf39eda08e8c30e651f1da3679fc0cb19468c7ecc09edeb72be8425d6c99e6909e4b56b0a7c52980176d6625a9bfcb3b6475cb5922754c3a85ca3a1869a1344e26f43d8fbd9bcd3ff8918a44eb745d7590386e9ea3e44d57b2bbe816eaa78174c263b8c50762c528c2e44983dcfd42bd0a7b932e1bcb7c244317748b64347ca6d9508f6924795e1bc40d2f30ea5b4d4ac040f343874f06f0622431754d8d31a0c8cb856ebb99024379a1b3f59e3d5c39c2a9ff8c6cba47e76f7396e43b817b8727f45ad2a087297294cb6cb577784a0640a17de482a2baee9d27f7549b58b7a7c83e75fddfe4f08bf37f9f8eb8470e39899b7d32ad18e41e479e1d63edc964ab6043341cd87b10aa4a61ceec8073286a8fe47ed1a4ebbfb648da727796178cddf7fa0174c7e6c38882c186b208d7f7b005158113606e34b1626b0907bc53eda88a1d7624fd3c9298aa1c2d3d4201d8c854f13fbd15583605c4a4ed87c9c0a70895566ba027ac804682b7216b59c55acbf8b26de979cabc10fda83c5d2fdd515497ca0d7d7bb70b09aa912837190b82aea25fa9180afe905a4db7067611bdeee4b4082c92dd0cd41e9c32c6f9a748d2f9746651743b8151c93b083d74dce4425ad08e9b540bb385fbf79fa55202def20359c199e2341034d715f8e60608906c40d16c7e2ee02396a37e4cd2a22324bd5599cc15116ec53abcbba72f39bc8073d3d029b78f5de58f01fb8c6a35d04913fe10642cfa4f7aa69faf8a2a89afa94d6a0f0e913e9a06bb5e24766fcc6a78c192c74f910c5a17596ee82c2cfe60073a70452159077e2ea54d9cb83ec3f0f0a146a0fed9a7d7429c6348e1074757a3b7080376a2968297d867ea7e23b141cc0d7fff3713a4a950118ab91d471c7a8361f38aa53fbf0e237c6389cb5f732e52068b8d90d9d7dbf8363265a66547744098504eae08ffaf26cb629d51be4809314ea095ea41a8574670f58fe0ea744f2d45a15288583211c461c81a8a7a7cb41eec0e06980d9c55b5654f8b91794cbfee1efc54bbf4a62baf9a08378259618ccccc4885a8189bc1bf78ee6b3935da64b8e2a03fa0c32ddffcb89c8ebb89f25b1b161b1a62e6309d2be55a51a2a6417b84235ccaae1dd82d80c4e206affa8cd4ee522040e369dfefbb27718d76c1d7ec2514a9b328edd7a29a694e20cb614dad8f430011c3daf6452f78d21033bddb11c4d4d5d3052a9e329e4db0460ebdeea113a524609c5b12ebb6c87e1744954d97bd23a367fdc7980118d9265345bd76e9506d0d1fa4cfae6c83993961b5257b61473a4ddc295b67a6fc5d186626c701d1414d034dc42750412d810b4ef6650f90932ab9c2bda43029599a8e78b504bec1d95ed50d5f710b5450b15b81f53f297a8205d59c22504cacf08e14a1137c850c4c1fc786c52878f3d990b0896da8d4f1fa8f5f79d7dbfc5afd034f25839a8be3933ff3ac200e8c21a782f19051b2a07ce0174da0566a3fb0c640605104a03c283d116d873f046b729e3da38ba90ac0fd95654839c071c92db0d781714b4aefd6705f4b3f587d6741de3d73c91b4f1703da4b1255771b1f315ae6ef942f60d887d2a45e0a909be0d4140f326848e9201dd11886d949cbeae68216e2b8c341a0aa6d08cdd0e65033305990e2da6179661eea2a8725f7da9b4316cdc2264e8b37b6fd5fc33403399ca56e05269472d806c0167a87a5299144f619b597e682413c2af5bbddba4c42d61d83c5e55f539661e1eaa7108dea16c43e1f3a4cbe602005f97f9e6bf64787fdeeb55f4b873142190b2444b75466a68ef052deb6b67d6a8afc08f850a019f8f0094c1beb39b5567c0cdf904a40484206d6fa8b3cd668e8c08e46a5f1e7a38b63d2af507202da4d6560e7509a502554e7d7e696c671d2f9569797ff44ea544f1f78e9b96198484b6c37dc38524b47f259c358baec7b4f8b61624ebbfff33d12e1296f5c0216747c6f0e01c497882f5a71ab49e9bc33dec34d9bd0f8a4c86bc0f54fd4252d1652bb2d106a1c4e96891216c665dfc5ab1e14e7551e208113008543de9cb59e90a3c795a17972d320a7ee99d6232be5509ff6548688f11f7b9fcad1f6771ce6f8ee5c33d420a1aee772ef2142eca31a70352483fb3ea346610fd5e686b9b3f3aba5109fcabf8f8ae8497a68627c681f73964c889bcb50fa178fc7c3730f4cbcf3fd89162dec2c712ac85a1bedf52b2583fcae50b02885ef9afcd06c848fb56336214b97d502fa2092cff033f0ba2309fe75f6c67724ce9e161b18294b8a37c33c62adf90c298b580f94ab9cf05a5c52b5573bdd4428f5ba8d36e4f5081323666f1a310bdcf07079a3d6aa4ba5eab09aa41dfdd015d3e1237ba87aebf61cd511a17314b63ba360e01b9612763aa5df3a6de63b41223967284d2f3515cf94b605db7cdcb36b63aad02211467cc8cdd47c941b0a72ebaeadf5c3a1512df107d3e30b863809899c3471526b96aacc0f82fdf3cf07eb0c736ddc7dcebb90a9cdc9d07e309ee36c5c0637e80bfcac16238da72254a3453a4201f60c0e52dcf88c0fa0b8e6e0c0943d83db1276733a450d81492050c77ea55cd342c995f876b2fe3e946d97253d57e9bd44cafa96e57bd299c1ab8665ba4c6d6f6307f2585a4e57d5134b9a20f7d5d390a1649afe4584c61a90886e19826408d2cdda2fe13a8696bbdf95c4f564e3fa7c4f88d332afee0e765625a60843f33308db6ff17662cc388cad0b1fda9d64fd5092222454e8f0f15babd817fa86257326ee75c12536600fdfbbd347dc5929f0ecaefbe4c5479c1417e985a9b2a4fcf357ca78383ab7607bd5c9faf29fa6a89448b6b575959ec50e089d1d849d4aa25d3d05b103875e6a6681d529eb9778c5f0a10d1b47e46a350135dde0f3f06989a0b59dafd7df1b5246923b624ca14d4bd69c87b244a0640d7b0e2c4eda600bb7e200106d87267e166cbbb3eea4b6c221c9b669fbc688722c1831610848c431aeaa6493d45887d3c3a09d2938c29c0d4b65ecc1a04448c50c765fa5c9d29080371a0f30c8fa78620f1c47f1e9f4297d854c52ff1c2e7d5b71cf8ae3dbd37c97b17be573cb10f5cd5f8e450f87e5b90a2f5dee34d421fc91cb58d5efdba3322d81bef53a53344052ce8aae7fe0d2c7db6d9cb25dfb7eebff4a05d3aa2840a1c29e69972bf65257a348e2d5999d67e7630270c8aebe44e8bc4c7c680db75c53794371a5ca5e4fa2b750efe8127a023e4b9090d68f8b60efc9e122d8c413c41ad563dc1169697910f8a204c9611fc48366cb5a7133d1ac91716ba311b5994dbe154a961219deaf00f528434c3bf8103164a2828ae9f98c54b05924ea16413c3d213ccaff3f18f2c0072f2fcd8873a34e328f60cf432ff04175800f9d2adeb6dcebb6455e1065849652724cfe6f5ce681ab519a7047566447513b951747627a1cc33c3418f6a9326495f97b49c78116b93a2ebfbe3f96aa9169e9d88235df94a3b556a5d5d777cf3e4638e76f1592615fee8c5b37db31a0b64aea23ef114714210987e2c9e0fe2b9f12e1814249d11e4c0b66e7d6fd60ee26c8088b1ea7a4c379d9eae29e1e6580e4007006b0b2b98b3cd34f42ac6d8b0af0d6f74ac8991576257220834341e86978e53c550f9615d098566a0c61b24232149e1e27af384c203b9ba5f71d93835b8c52537eaee22d6b6668bf9e30f3adfb41daac446299b0615d96c989e293ea491fa666cfa3b52fbf5cc8f4f42b337737d812fc89b7dc014dce37fab614cbada98f0df85fc6cfc5522924207e224779dd1f538e50c8f2925ec5fae80d284bbca4c3408977a9743bb8d3df923c753a92de0bb5438ff05b2221f3c1fc746388ca6f82aa58a729282904aaa7e8fb8eb7f00ce8b23d251c94ad5c988f0395cd87a3058c5a0527df02da9df2727d847d93f557e9fb68509be9d440b172d1d32345f72302386da537d91e861c9af497fafa3cf5bf9a5ede1627498302636825166f4c893b401f03f626991759f21988082e0e161d94445425bbf11914b2120760bdc4bdb8766c29b846b6360050de877ab092ddeeab981ce49713b8d5ff694f6c614c8f5dae1edc26e33952319620a864979636bf54b4d9b4d99e3f8f2e671a06fa1a9d68f14392dfa43ad950a82844fb29dd2f397ade16c00d25ff4458abdc4d66052cb31265b7fb085b8ecdc04469bfa7d9e0be07fb616a3411fa92ef4e9c7beffd37cb4a649808d1ad4b4781ab82e31c5daeb3af948d18f822b96b838029d99ddb8a7b2a6add118c0248fe69184b418a4548b1e4717578312289725955a071fd4c9e3f61fea25895460af366aa870265795283c9d0b3225e6a34c6384a0a086de0f1dab8d5332ab5cb969c364462666e641c3456c696b03dbe8258fb52f2354a93b351dfa90303ee200e00b711dc8758905b4833084e5e6590a2765a2708e168570e82b20522b89ba93f861579b4c280c8d0fb0ef711544fd4bd4bf261edc0058148ed51c6a4b7aa0db5c4351bb466d572022d612717db1d9e0419cfaab9cada3485844e982a5a1e3df15928fea1669877daf09430e565a430c3f10d2bd3b23284298dbaf552df40d5dfccfac73ca132a1685d99bc972c0d0da7afeb34e9fc881e5247273e8a98e9c090745c268ce5d74d5539d298f25da54b38cf9a69366f409af2d45dd3a8a288c9e47e2f63cd7eb60e83da7bcf065cfc0e2e4585a9b73169590f78ac3b51e53d986491342486fe4cb2123caf97998247d5b1a7184491bff3daafb60f2f0901e73b79d0c60ae57d60ed05c2619fcbf2cbd7875c4b7de43e6003872caf03932cd0a41d1f02e789071c6a8006f68358b56d5ef3548d10ce66d747dfa35be009d463518efb0361dde9719070c67b9d46e52f0693510aedda2beb08f00246e5cfc434ab608455926c9bede98701fd9d6110db387b97bc1711acea2eed5d4d261234a5bb766f8098e584c6f24aba801cc5c1cdc8e97839550156b80db631a2f11d142afe8a306e431042bda2ea88695e9574263127edfa35a442bf7561e9477ccaa32f15ae95f0fb167b2f429ebec7ddf83499a00750ee99aeb68501b66d331a54c028bb4c2a87f37cf8959c8fdbf23c76938340d4a5ee46a69c49c95ef1d4872e94658c35cc619b35511e83c927235c94092d5b95856a5358cd78bb15e081d48df8574f58f9b36d04c1d18cbf596db8904c39f7d0d062cde2e0276b9665bdf8df678f45e5cc4e9625de723ddb6d3c960c0812e022699b18045abd7ea027ceb697e5ff272d80a3290ce35fc8f9ed0711cfb204556e999abdab4b67e45f06689b6bb12d30d89072436af6a0a15f7c6f8fdf07913e887ce855d72b41a04ab370313d94d862a8befa904104e57a964ad0dcf48e9c7f1e6f6404fd24e1c0ea35786ed05a45c5db7397826e449a420f482a85b6dca2350e21d39818ed8bd81a54d9e1cd4cc14e9cb69027e9f63d4173b838068c2a82a72d4f02d7f5f96e6305e8e019681579d5f863731cf16575476b15f872a69de31ecc5df24d78564340131a69648faba8e37d987ab2e80980dd052c46270f9ef6f7d938523d1e33e9314aa478c81af5a0fc13ae2833646dfa8f28ae8c3b0f314198597c687cd2ec52fc12a4cddade46d918bd0331a9f307a0ce9579abcacddb18ff2637b0a17db336e0f6508e04f2015f716d82e22905d550de10ed58a86c4c89a43c47f2a253c5f7c00a5d76f6780536b9eca2559626005501ab2a5edb60ca86056e7cbaafb95acf8023c0c0bff82d061a69a2e8c5cba4edf39b22e839e135d2a93c4f48b17073cfb3c4488e7977dc121100822641ae5daee16de1cdf72124c219ca07f216aceeabd1689beb6909a95be6b9b3f4bbedbd25bc2ed1bc7e82bc0c92fdeb5bc836865dc2e0718ae76a4e77e5491a0daa4b7977b536cf2e89f3d2fc76ee242354c7c76e694c27fe1aac329f652f46e82630744e489fd216ff63f9594cc5e210361a537a80f8b494f7111632467c4950d9753c3472bb8ddbe5d5f85b7c0418bbd060ced9a2ad3905d831a4b6f39d2c9ea6661d09cd27e47ca1c0cddfc005d762b5ccef1d96112ccf1c4a7e449b7299d270e155d053947116455cc473f649d9e5391270cf343eaa9509b8062f6b6d02f3817999ded3056c5c435ae4404edf2ee576037c67efacc3d9041e1c0edd0ad485dc18fa6650598a68e66995473efc8593190236eab7624d0905fccc403652b6a5925da3000c316f00771b6321a4ad7072c208df35d4b717791796b4394046c5a1a8ffb397e7a30b02be5d52230f870a5d24513a11f0684e3db2240507e86c03c8fe68c153889b27060626c94f77c205423e356c340d2cb9b76b09bed60e3021011e7edcef6165b848d5846fa22cf3d6364f430142e0bd9af6a74da4494cd64109fe9a5703dc4e8223850bc491b4a96b22ab9923f703aa28f6adf4e9984b1fb6aef6cc8ea3efb1d8e9f546da55072fe98d2da3b90e8ca247d8d9838051d9fdf1e4c4a2c7f8592b1bbf6dc0a991494228173c1b56010a27e0649b4bedf1fc230d0dc8e1855ec1d5faee2ec7ebf48a24c005fbde12209078ebc2c6abd70723e5218c5016a805355ab82ec0771610c86c2bc8d42f4816069ffc3255d2813c91970fdabd3694abed54e39036f73829bfd8e0f2846b27b3addcc1574be0ca039bb800335ad758ebecae63d0b138b3a2b570de19b2f3419372e6dfc461d694c11b9458760c2102df9fc3c3a439228b750019d5c45957d0c7de50330cf85123e657b4ee209856e022178fca91597dc88377312dde94c2bc8c89f23ba91025e22994f4fa87871ee626c0debe4e0d8148288987257455d4ab04ea224c8964f9b8c91b8951c1e8627503f94ce62b599ed99f1dc8ae205484c5b448cc6f625d26a151ae9d9139274630ce9eaac3af561465a7ebaa259a25b0420af3ccb397a284fd3b9fd0149379d2f8d8bf964391b96e04a5ec77eea7dc5eab4af335227df1bd58caf25c67b5aa103699f3304328c5d3b55415575853fb87fc9410e4722fd2399d179a1e9e2004ca175df11ded75717ba77124c470d882811215b0b75c9372e64ea35c0baea0302b105ad59b3ca0c1de4af16eca53018b989b6a98a3673e958d772d9cbcc787e5723153d78dec4a39024431668aaff14bb4a219fdcbe765b10d5a342adfe1ae7cfa39ecbd4ce7d1cf27e6d05b809cc416db4f501da2b0ac3fb677c657b86ca16fe96c0d4a80a0ed028d65fe66e4ce89b50b8f8957858fb5b5e018fbceab62d9e5c1923623d2589d38f142a354a6e606dba1ac376363ce8f062223fccbaf8c8ee3a1084ac6a6321bf671c0dffe1f2020d1bae296a7fc7863c100333fdf9999399e6c8afd952cd18c93ef2a206e9b58ce4c6689549d04c45d7c60c2457bea91165a72f5be1b4f47665010b52002fc69aa222725309fc74ea649204c4e66f311c2243e6c91054451fc6162d8574e0d5089085a446136c6ccb307f1b156509cd8db2217a3eeae800504f059a20620f4275a30350f9e0a072c0e8c0d8e2f67a1e936e214bb12055e1d27be57638256bc2c805d626e45d4243371ccb60970b9886de53201ddd70ec217895850bf39961519764e200e18056f401ff030a92eb080314b5a1b212d4546265979f454c13df1f73a1cf5c93ce4b0fe9abaa3436c7f94a19520636f149a0ed889aa948389ba615ac14531a2f1174fa3b7f8a11981e96331b8fcafb9bdf385711e7914ccaa0a42b67e0d93171983efb57d6d063bfc05a45215debc314f73c543401b1cd9f1285754b3586c09ee2d8507a7a06f8d53b07b64a80d121044cda553912e875f42a68e244bdb260d1b3006e5b8b9f79a6ba80644f8174f4c2b181ef4c00e6bd068f8525a04aeec2e9173045cbaf0afa35d361abb329c10c66984de991afac5cb50f40a65d1c3212a166e10ad5793a35a45742db33828397dc97de72669810c61d42e93af6d116ae72f8bd086a6d2a71a7e0e24ba42cd3e626d35edf94720008be16e1531bc7e74ddff5e4e023b62b7a5baf8725c02d268853db3f23d4c93e1c9374c98984e4be389bd18e69a3157623538b7e538a8ba44e7d07c1607451ef560235093f880e21b0f0be51282bc5f50a9392b3331aa49161baccf42c1a593dc4b2e6441175871d211484160c971184d17a34686e0af675eb7e6973cccb5c0a459102602bf7552dbf9b2227d333ee94fcf5223743b0908552efadf77416cf0b2cb30c074a5c13c169a92cb0eb23dcc598524534d2645ee9ac8b46c4a224683c8b502ff3796cf21c59937629eba068372f274c21d48f9e4c40b048174cd57ab1b9b14aa8227d15b1367de62dd0115010134f69c248d35b60b8ac18bd4c3bf80069573884c93ffdf1854dcd137a4535cbc6d049553144a30cb48e1994d55b530fef64e3d2d421b016ea1564e2d0484434ba2df0a06d802e0fcd4d55c55e95181b58342dab67a491a12a131654531b1a395293caa68de93adb7264931587161020bce443ca156666c4053feda34c0dbca132b7cb268d823b71b8f92cc2319786bbc035cf762debb3e43c67a4c3c6c657dbb752c6329477fca2e879c9b45a8e0471e888146431d53b238c7af2d31819c20ac1cd8832a490a7c654b3d6407ace9596aa62a4162f8e058e3586c36ade4e9b51b83706ddd432ff71e4cee10838371bac512f87188fed3763b09164a1af6def00506e49b2f030a937513169646909f772e4d2bd7dad39b7bc72c4cce3aa97661e7a5df409ee81f6ab2ed7013201d0c1df7e16edf7087be9761b50be668f38339c684fa364f38bc75858e740ae8a134323369899188652ce7ef206ba69e565e5ad70b3531cc68741fe18859684b79f2bd998d3e8581bdb56212f1e600a3812c59882ecc8e91a6a1f21f713697b522d50116e1f4bf12f2084e1290f381a36c190dd0a4748e48fce9d34a248317165a7c311ed56a0578ecf2d9ffd03b78988dcad04114694c54554d76e2c74782f0b1c7b13e405a7916123cfcb18094a7043a2c69d82e75f23c6b8193d6cb1ef0de79f292ede738c70b8cc22a6aa6388ff9acc5ddbbb5d8c7c5b59277c65328bc3c34fee3d0188d72f5eaa06b722a84c979407f508e34d53927f3727bf091043da1a2b1b23b136c8e8a34e1a8990e7d8a60c6becbe4a7c1ae98ba0e221bed13996c32f85d76b82d2039006736ee155d0d02d481ebda9ec0b369a7028ce44243a35949565e4cf139ff5ec71718696883bafc5b21347dcda836b3040fe74d972946738345ec7eac3633517412ec369ee1035e788bc23b79d3ce594b0a4610fdfa3ca84aef2a3d65ea9f1810d90b660a8970904fe3ad9a96eb4735a127b13bb3b634d421a11deb61e71ec5e4f3e6be6198cade7f1b49fbf47a29a02cc80531b69ed1972e7b4b5f416b9b91f0806b60347ccdb01a51dd6ce77ab139857c2bf23471eeb18cdb607bc9594587127f7ba5c15f6b48d511d2547ae2da08ea5788a331d0d7713f41d9987a9a6825adc60aee5f79b45b87ec8b8739e3f7bcfc1146ec154ccd00f645636a15cc723ca7635b2a228d22cba950962334a862ba60e5011058c068e0d1e60b8b7d51b82548c4fb1239683d9b3c619a2a2155ac39d3b4fac9e165c90aa7614ca5f2222a0bf29ac08ca81b6a1392825ded915c128acc22f69e8873604a6eebe7bb207ca101f27a899d8ce57e2161ed12cd7d2d61abee85d83ff183e78d206c84ade88eb21b5bb8862ab28dc488528ec03bf8a47bc46a6880236e46f910f435be0ef98378583f9f6e295d7d63a86c65908b4e46d57a04ee7c1c59f36812bdcdafbc46514abc97029c0d3be29ebd868ebb27f348180b614060374836f07577d8e03a927224126640c5aedbbfff453cc7c5598fc6198151a017c0e014fd628b7bd65366302b05ab2438605c598df49c29a5e4833b3e9f14c2d7cc9816130f33d90a05826ca4026cdab1f2c7a2d36a8d3a77e842217eb0981d2e53224e8d7c04537a53ad684804d09c3945801f819c822139c5ad2ee81cdb70be121e5225393b93c50279086711158e0c476c07213015d6383c017958892947da00bd989217164af97989fd60a8f1fa52aec917cba58f75e8498e6b27dd7d115490653d28bd77216dc53fb4a4d4c0714d74399859bc823c102a055bb3bf444a9cc059dac470000e386f0ad19c8a05d4718021d6beccfee266d6517990e164bbb6e5a18a16fcd86d9889cb83116eb3c048fbf76735349017d1cb18777948174a12208edf3d6a46f992155dc90b3ed4957342dcac6efd944aec0f6c488526682090a602d4132e4eac79ff77f261151e48b5c20fbef867791b71cde115ad5ea30f84f6bbbf12ef6b05478b36041a6d5e26bbeb725a7152d474deebf1d8f5c93c5d143216ac8d19169953f3cf028da7aefdc8bf379833a53886def405aeef3ed59870547aae5742967371efd61d7629fabf146f94de48f85e78a7f9fe31eb71b4908f610143c7068eecaa9c6ab6fa85cd1ffd3f20b48ec196e82268e2bd1b3ae4b54d43dba8a57006cd5e70baa0d4cf9f00fae6e218a7c4f0a084916a81c153e9cc1375c973f8dfb24ccda83699dd695ae34bac902ebd80c99902560fb4652fa0ad510f53d1e540027d532a355823d36710f0a6e67d9f99d8e7e663a90f83b741673c8cb470682ac45457c90eb7af36102f5c2738ce640e1762689fb1c8f5e7d3c2ddb828c243667cd5baf33a91f7feb699f59bdd3e8d50226c6dec7b0d5dd7826684d130283d6de60ed5d7eaaa5588ba2b76bff52fe9ee044c595e207731c822b16740d49a176cb33f105140ac1bab695962eb83742b8a82002a1ad7a0a692743273d233357ed8cc0d40199a07288bce15a53ca22ed443e3a0c3a8d83ca8f27b1c1a2d9cea45688888d8cb0a25a9c98d4171283bf8950229aa13d9d20a232dd30d53841beb9779091409ca211a086be5425218a1ef4fcfa283adf565d768706bedc7a1884b253ae2f8ef9fd65cc31c2a5167151d0101d60b22ea88c3cc074ef556e52072ae90485adf995e67a489d729aa7d684a8b51bc8895612fe2c7ce837647926421e819edb799316ef3bf88118825153dabbed4517d3ecb7df35c117519535238fa4f8bb776c9b834677886be96230efea64450f525dcc69500cdb03fe8d365db9998b7a34b60ee232544137506b35485be5ecefe3756fa839a0456fc255388aa8d4b8b92f4ec1aae85de6e0ac4256168980b09f2ed99ebdeb683c452b2db92fa9862a0de36c105c1035f045a4fc89c2328cc1750d25950c3e923be4a60362e788d1f549d525e8a43d701fcc89e22826952544a31189a03beee929c4cdc3ab211a3a60351439af046bb70739b87cef2857196573e4294afedc6828d2b4bde7bc9a076ddc7b019d34b82ccad1c6c77105759fd4173242ce54a56d58b1bd27969d2fec133bda6ad3f907f03861cf4f7ba1fcf9fd0c1c70dc7298058ea47ecff79c2e636a109722832641b44d8f49856d053a3285b649e2b7bc582108610cfa7f9e237eb8cbbc26bcf14d269c3e4c9bc9ff62110b9129242a6b27ed64bdd2e7ba57b071e4ad7782b4028e9d5f00fb2021abb987e7e67610599d91bc86279bbf532959987ea0dcd5d09732df78170cd510543c13deca3a3468089a78fc4e4d9f8d2e3982d6a8f8d8b45d4cbf96f61f417ab758706c47d80673e8648f79d78e45c87057bc1ebbe2c014a56b17a7a84a11b725cb557cf9d6510f2c459b071339a8405efe21ff242074b1c3f1074fec221250326722a53edcf14495a2d0e55ff0368d9882f074d7279d0725968b215748cc0a9bedc71f8bee734b4cc8218de82475fcc2d7aa5295550e9e05b3a51a4568ded446ea4da21a8dd17fdb0077fb27fc00851e68ea1a296da2ad1a86fdff71465b7edeafa50bcddc8e38ad78972cb69bc1d501e8a27a46853d7ab7175fa309e11ab1296892e2b48b10bbf3c4faa6a0498a29a9b0a6da39432cc2a98f0b35db59798e174eafb5955c2dee241ea202faf958c742e60bf96c6600a8065bb173ebc927e7cbf6ac69d495286c35993e75c21b5fedff17280e2e817ee79b2c9baf36442c7265508a3ae32d3a83574ea4cdf10672d5bdab467b514740312d8b65502d14cb8846a7c2a11a3a7e55e6e782a896f29c06858456e1b74895da08d1ae3a118b6d0ca6bdabe1797523e2f671e96b2852e12747ea93d7d814292e523652ab4fa4e5f4e366f4ff26f868208643f58a7db46ac959a7c94fb5997a5ab2d4efd5447946be16cfe99488ed4896fbb5c188b78c2bd60cc759969f8206fbcec8dc266e2f12f6cbaaba9e7c619ee229ee58930c72b8e21c64af298357b385d0d06aab0609ad70b4efedf2d0f44aa4ba4f8334679c5dbde8533b3c288b0356ab8beee2da02ed141e2faf4ff99a5b4d67392fba91164a5f9d4d9fdc2ae28fd01090d442b746f649f41a3a2dcc4d320bdcce70bdd31ae17a8c1cd943f803521e98fcc3134ce00903b90b43f8012013f567dfa90a5c4c24d1daf38167a5e156771705aafc23ffc22daa4195a765dbb9149a897e10c38d04f883971c6a6230704a8cdcbac56dccb4eec842d145895373e788b8f20dad28e4289ff21a815658b4e9d6bb0762f6b95abe6fefcf36a880a1a0f9119dbafd822195171272dfddba80f03601e5e0c30fbc00a58d86cafc2764f1ceee61e5aa9c412352fe67a4ec000ac841a5c7a356142e485c861b4266be8fddd946359a8c48a3a6643008b17ead6f4004a6b4744d16428fe0f6806e992c8ca64285e8e79340e5808c5aa9bedd2e72d12a3c980c24a68f5aa29e6b41aa5190d88adecba21e7140a19eb7994a9675a9b83c5032d57d60653302537e285e79f4d49bedb5cf399b340b068e21d66e645e21f46be1511274d51c05fa58a343fe8b96c0c23965d59cb66640a4b7b2ed217ade0777cc516c9b6684fd2cfdffaf35ded76d817a955ae149d55b52c88dd040fd74bd7f8b4fc55d71289c24228fd7b3210a21dabb5bbce70fbea6268f160e4ede6f121323a8a1b52e86589ab8b078856ab7c4d75a3abcbafc3eca804d4166ce19bd6699e3d9e6f66fa8971374f9a71651450775792d411ec6659fb8adc5df5d8b4fcea2d553923b671ab164cb3e73278bd3d7a1c4a400b1059dede82ee9a5496b0993cd1c5676c0dc7e77404e87548bd764fa84a9c00cfd6c2a8c02d25e8a7e967c031e84e9d4d4747c5f8192a138c2a1d5c799ebc4a47de0df0db81dd4147be141a09d4361bedd4c935a8d47eb9b4d16e2817fe25e264102c5823e6d395d57cb688ebfce89a655b6b19f5613aeec8283264b3ca7b748d1737e2461f174e98990be9ac1d9fabad25bfef400ea00769c0c979eebe5e1bf1b0970b4384c034da9baac9ba761016bbaae6d87f1017da8fae26e31a43cbe406d8651cda3bd42a37ce61465725a0b9b436fee029fdd4b3565b97105274e659940f754c7c08c60e5a3d8944c25549d2dd561f9f9b167895942038394257cbdcf4833f52d49adf11570966a6b09c4cb646042278865e937da82bbf958d835756b4756a0e26657c33f2fbee7774ee83d4e51805d2b6159ed6eb7ace9952065719d1d1119f24bb4e3db5814e3322d401d4d0f3a27e1a302974a6342331a3f130fdb42f0f654fa584bdbcfc5e6a4314d6a99ff08a1a33120c97235049863c64c1ab6024d7531b02152f7b048e8c24620554589b7ca763dfb3a24e9c340d67c7c578aba8c5d0b068f0096a32eabd941ce5c026ce1e1ea3ae163745be12d00acee9eac7446154456268e0bc89112d95d3bdaf07b32dc36ba713203468d355692400b2cde2a84ccb45cdf267a432678fb8c289cd73abe0a2235aa7ce6d901b3e309f2e087c68b95936ad079e506d09e153052da89573436a02867334b0036ef2d7e91c64ba6b6726e8cc968cd3b8ec2badb912618cdc8570c4cdd0175a8d128ecced95b7f7c70059e88669b5150f2449718fb3e86b27b85ce404c60a457dc85e90f60d47b47b79cbe62db70f1807022d10ada9cfdec09c59a5e2e180774dac2a3b1e7a3c6eb8206487451fd37c7a2217061c6ef836637885ab7682ef50fb8332022618de19c471fca063fb72dcfb9724282a61527ec7fa327a782d85da6953c71572f19f257817b3fa4bf109a8158999d15b88fe393578a44c654ff588fbfc3a7bee6171c921f00417699e3835325426c1d703920b194c84be10d3462c2073f3c64187dcbec70da2950f4cdf039ef7b744caf9ee0f6d938aaaa358051fefe1d65ebc819c4f6644ed6ade906e599e0c89e5cf31c6383c0e281b87d62d2136603785be5fddcb206a9f4796c8ffcda33602937c8e1d783e42ab31e4f683a22dadaf449c4b25bce0fd99621287bb80f4579576fb0ff8a8a7e0825d3e3bbe70e331cc20552be47f9868ebe0a9a630248f85cbfd8c9c182b4b51ccb8b6e39176ef13ee3dced35051b58eab91a02ca8a6c2074a36dd0d5ce9be1a7b0cd8ccd55d13a79e914e57c9899b562d6ae8767355915c8c69958da65da035f940158a56b4171621fb1d42284bb688d6d7dffe39aae3f88c1ced9b967652dd6c6adc1f4debdadea97766916d42216a56300b5bb726c94a135caf2f3e26835f145b83ed6bdc87f97c40e3f95a1b9140ec8d0bb8c7fed8170905f7849ab930629b3a165c52f2ffec92563eeb3f320977cbdc2fa407a2001a7cb3dc7276fd6e64aa343970147cfc7498a0852d118ba5e22b76fb15fff4391a083e55df050cf0972ff2bfe3b97f21365fc868a0cbd0f11377ad9191fd9d999b8da80bb7b8ff3ccbc5669d82dbd36207f1d1e4b9d5e11174eda2814030a0b776b216119d9ac1b0998da14ead3895bea74fbf949e2e6843ad97cd0221a9d073df7fac0922fed6cc58d96c24ceee8a80e92b69169858e176df80d9d2b532c2c6592edf9bb4f3a36b412b38f4fd4454488ebc8a70812bb3d6d6801139154e0a32f3ad4d8a208dc243bbd74f9cdca51b270a1a32d66d372edd1feaadb88cf718c7df79ff5f909dbb3628f92fa8cbcbc37057f748f927efa97dce9d90dcba38834317d7e62f36d0f01f343ceac0d99444227ff04c654f1d497f498645ddb1d9357ef3d8a48091efea6ff21e9f6fd450c4434e16713cb092944c8c9debd947393ab4d7de4b59742baff463b959f9fb4fa6347aa18db86066a7771f01b898a9cb01ce8b2fd170f26d46597a91190cb384d88e37600ea4787776659f75a7b4bad0e1eaeb44c0269742ef97435251ad62cbc03a85ac1da38e4a1a8b60f6102740ccf6a1aac21d0dbf768a852a91659b3559b04112aa76517252bb830683e023cd82adbf58c80cac441a8baf82c0bfa23e868932a7eb7cb9e3a4090f2ee19e7e6b1b6532768d0ae38caed0ae8547c2a26a296c7d7cf98a40e3cd1a68a0d703d260580d66bafbc92621f41f278166e35b5e6d389bc9d3977011c9a86b58facc4456614dec3ed8030c2e52de638ae84180aa50847b8829230242e23be9fe82c3141518b666817604e73d3eb48d1e62d052104ff86c7fbed1ecad8ee2efad2ed02d52e4bab84f17e221df296cf245a4ddd5a690c970b3468de4fc7d95d7ae9cf5debfc6c9a6035bc7889b2331b3d9be2c08d4e6e52e0a09f585f1025275ef22a3cdbab16019bb3b9d3906eac2602c5d2a75fb54f5666fcbb0969b50449ba5e68f9444f7ca3decd2bb40c15ad2b0be603185e85e832a42ee2e74cee4e3164947c87a2ec4fd91d65dfba5aa1caf2d902630a0d3da05e2a8155db40f9a087f58a7aad270dce810376371a9266aa3aae9e17209d5c389b31ed144302ff5f6114fb337b47e1bb6e3a3820ee73ba3f112b9e6012841f919d4a537234a736ceb14ea876ecf2f1fbe4e7952ca4bf11a48b8543019f4d8ddb68473059d0309183152d82347b1387385d98c604e84a9f5ff73d4de67dec0ca15a0d5178e57618f6d226201bfee37ad0b616ec15cc70bb43711934a183cd198e7d5cd3be4388c25e2255b68333388448ea559eda4b826445b9961da52dcf543124f8cc03ed4149adea06cb095495f665bf2a500eb744a03339f8003da87ce2d515667140c8d6ca9d1a6e96b7383d25b22e7da6b8f3a299e0e254fbb72c1a25f6f667b493b2a0c7813d18cb5811bd81931d179061aa84ddecab0f2f434bfad4a2d007f2e9fd99effc24390e0a55cd52bb544f3b42326c75a9a38724901bf4eb4e71a89e23f13fe32e8ac73c7166169848d68a6256b0062b59e11e7b3d622d511b20bc536e4a9f110945f1582ad343eb11661d6241d9cde307cc95eadfecf4dac78d38c64c98879832dbeca470cb2d3e2446a7af29f7d712784c5e9be3855e5105194548bd5d6ac9c04cf7962355cca8eb950a756bd1615c775c3a364c0930d5a53e79180f40143b89d4b3a550e1224452d7d26c2f1d841dd535d13975ef32c1cbe68663664f1af97a96153fa4fca0655cd028a7be0bcd14a06470846e2a3941b676aa33de2cb6f289b1d151a41b50a4cf2c9b312e97e5c4ff48030fea3202224e39179a89445e2480463bc714571ec785a4725827e51532b86f2a380ba603da8590be29c430fb61c728e55c7113aa73e8bfed8a0709fbf5f9544427d0e0621984354b805e0422ddb44753a2821f25668e326a456aed00538043a0b2394d3d78f490f0aca3dcf777def9137a35f8668492147d560ce54e1531e10297696194b0599f490bf6f24e9069a6b866d40aa2931deba81a70575158f9a1160e5dfc8a6fbb0a5ac41967c614229479b327852fb7f021315d6d973bd15f686e2381b2bdf50bfd18d2cd33970d50b451a165b6edf46f4c37ef25dc428402935c42a5e5333520ad9b6e11cc884578c7012dfaa31c7ce891e74ac0f5cee36e596e435cff33bb53e15b473a3910e777d23f11979e20c9b12cef68a5375c2ed066ec04b85497dced128672b0e11acb4c60eaaaa81ed1909ebd6c625da786839f2b053ae865050e71923331a689bd4c02297e96195a71fe4b88c3632a7f0e6e9ec515a295a84fe826e2f45ee543ab1660c77c6bec1ff488aaad3a15851714aaf309cc2a405d667ec2b0f4c48422602a965d0a7143428f5ab5dc69f9f53c091d6233fbe1632ce5a47853aa38d4bf8534000bd35f7a20df20eb2a713cadf4985660823b088c832e0eea9f562702f0ee876e5b106947742faa37fe4a51dd42dee60f17089722743931967556ac8916b4b0993242fb5a9ec8d08a75911f97565aa56d30c39383158abf723242e872d052bfa65a1d7480ad517564cb5ceed8e2471f7dce8ab6ba0a5a621a657206e2da59b317850bb7fb08318f5d6d2ef4d714e815a7a23c6a88417575f92bc232f6285088f4a67a60f08fd55f25c3685f01e0ae75aa9e0efdd53dc5db21bc5e2e4e5332c06214e28c8b9300361214721aa7129abc210f005dfce3ba2c256359c8d726848b4b80bc415def1487e2b9127d736ea370ce53718f1e5a690c960f54d4bddc879aff75f15e54a8f700404970b92d3d532a8935695cf0c3dff318e72aba4ecf258e39d7d8be29d10a5bb52a082d2a4cff13906d8072d99c04b1f40849063c862de788ef5f2758ddc9d6e9ec1fb0ef6a165cb700b9e7587be7a14752ed2aa8386ca1705d5f6026416a4bf31346252724933101d65c45be5f9c624d2ba26ea6e889130fae8761e66c983b96de005ea1a7cb56bceb6539f17d532a16b716b9ec03a50602a90e257dd1725c268ddfba7080f5806a338735aeb97c397d3b395304e3d3a6fbc70d1176a68090adeb216ee3d37587fc9daeac84ff6ae49b3ea2c8dc639be56b88e333f5f13a5e97a714a8039c6026c3839de616c4bf4016f01a97448e2d0037a8fdde8f63f8ed143d753943c30a52fab567a29796b096813362bfb34a03ee37cf45cb9de20e4746902cb022aa29a47271001b7ca489dac22d8ec74b49c6765fea47b3cbb51927628e33690671cdbcd915c295dbf9889887be5cae3ff1fe5dbc6711998b6a822a40d12a2ea62f77498af54bbee7b24c7cb1279edc20ef2b30b6bb4ead73e3c4bb65b34016918850812bda9d781ec6bb6b6986e2bdbe0bfd4ada035c2bde2515312ccf141d3ab46fa3887ed78ad73afcfac142403fb92b8c61a75a4833282b7faa03481d33d89dc6c422dff03a99483663da4eca3a51826f13b33255a8e998a29251810f3adf1104c130b5d3ab74e28a0007d5ecf8d4368f5e848305db020fddfc8b20be607370d6e0c8c93edf3639d6bc4e3929bc1c7462f14aff0ff6305497ed39ac76bb528e32b1237c146ed02b614a560d0f3c44154abec79fb01fb710b621aa0a07441c7480c30d307e011f75b0ac12057fe96e7d9da2ccfb8979aa38710a01f39294410ed677368b2241bc1a6754611075ba8942d9e4c19fc8fba63355a4a247185bf4098ee80a870358c05232b146770a636bb37a7380ee0b712075ca0476d602e19ed3c31082c6d7b65b21ac2bf55f49dadd455fbaefa0ea92f3e53a48c0430fb43725e6bbf821cb0155e6efad17f0d59ce25f0fb74c5289fe7175f07190b9ed08a72fd2d15e3a283baa6bac786ae9e0771e20a1c9c38a53a9869db681724143e63f7737f64ace88ff77a6dd027690d2fdc3eab866d14e0f65dacfbb9d02df3acecc81b8af736b318b74594a3ec124e9e0dfdd115e26a8b5c70acbcfb587e182f396248a4fadcafe709d14d29b945b301dd579a8ce2eed89470ca3d7c47b4886979e3cf248046145734d34a7de3fa6c51707f11a1ff260e481a19f9e0c0abe70f6f9fe9d01488a38bb9beeb3f07773f0302461d047bccca4ebc1bc8ac32b1ad8bc1d0f270e490349d04fc3d60c330d9c385984313e40f9fc7acde6c0d163f4587339c6325e3bc81f745d44f432c7eb729084460f696e15829cbcb4a6b7a73b7a3785d3c07d857cdc0400120d81fd3773a80f63d7eac234c2effc128372647f62ec7d24b4215dc190d0a53566fed956e2341c8940b44f67ad2dcb2e9f2c3b78d244e1b7c8d56ac6de3ea861919e2608311bdb362f3f102144ff2349878321223ef115c11584d921d466295ca478c71c76d63ae57a168aef2a38f9e76f74c9fc89a197f539d3b11f109abf81e658be9d551106d2a8336581fe4b2fdebd1d715e1cfb0714da89912079cf616bce84b906c2883b22f2311847370f445a2142692296c7def3c704001e01617d654500ea94c59cae6bd187d1ec2d8e88556b96545043c67997982f93916224827e3b6b52cf3a2eda575b961d35e3d16c8c76df5601af9544936d8d6bb71e564d9f97305f758b053d5121fce23195e16a2c1f956c2a420fcf9ccedd54e4c016c6a0aa691287bb0bfaa345b1dbf448c7b35279f69ae9ce6991ad4510207845dcad639834f6da749e53ac22e6c1f8e85db048617ae6a8b100b0b40072d8e6410f056816e3f0ec54405a37d1917dcca7d702d74fb1bb3aee8733b9a7f5896db32ff8869629d0fd85549d448270e3110c4b22e7d191213a8c1d6d2c644fa41131ac9569dd6f43324e09d136d5db32a2756042a4b9c66562697d0746d6b93eb6cd4b30c26b789863c1bc50138faef8d8ec9c6d4a2cf3b22dbbb0b610aabdc47d04ebd0d116621a8211065e4b2ecabb408bf6708b90cce5bd74750e97fac2c067f77a793bfcb4b1f8858826774304645a8669da88a45ea2a55c13417643826cdca9909c3877a19181f13352be0394279fa0a093d882bd830a27013878a40de13169893ea6504cc225f6a6866d700f33fa9caa1fcb1418d049f2c270928c204855366a15eb055a168363204519a2b9507aea69e7931922311d172a620d5f15c9419ed2547e3f92d2a4bc807a20cf85d09a39085cf46d0487b6070248a5d1054dc9363c5d4048a35180010be59c230d185c1347a4e848b01768cb99f668b76599881951349af99d506768cdb2cd42368231bf1bfd07ca8cc0f17e54de77fd66cd90a25d3a11a1c6d87529c23aac061ab9ec5695ac2d4b11a65cb0879b4237337b6b211e017954c556dda20045f9af0285ec336b654947b05f26f6f2c3baa9994f4b049fc4d5b418041b48a4d4de9fc60515f11737bc54109cf4414727055bbd7364b15cf7e25be8957e503f616cd89081a4d8bba7003aade703b724000625ef1d935c806d88e103b9044e356f3ae7e310146080073b5c84a70af0fd54bbf0f3ef910ba98141172184f4bea7aecefc38963007ebc3bc0e708589fd1f8bed191f9be66ce663baec83371963ffb348d3d1f26838c2cd607b461fa9563f1daad85d25c3cc2668946ce10f9c96e14a3a9842e6bfff20751384ac8a2762ab14742a87b0507f1fa282b491bab321e8cb3faeac7107747585883121cd29b2b8fa6ba6700728ce149cfad02369ebc04e6997f06141ad0f9800c57df55862d32d2a47330d4fefeaddbaf28ea717367302f4b9485bf9acd65c383674ead7217b5b066321493054d5cb7465ede5764ac0486d907d4ebaf63920a219160e6d000ae18022fa0a87f87b8070b098bb0a874f957d708018d52d0f0eb51151381c4ae8e0e01ff8130e940569b609073c313638a4dfb18483d42c34382c054d5f976d3238088353348f200c0e19ef15e160b2e682c3aad6211c80105970e02508c2a1f219151ccc78180fe70f0507e3f3303974bff66dcf38d988b703051632ec1588e0a01c7c646530d47dd779ff7acda87debf7a2bf740a650df44da87229aef5d79a2b6a5252a3e05842f4d7e832136e8225a19471e2d7a69473395ce2c968868e2682f918e0251d82655dafbca0f49c73c0a20d880bea5f1226413f05ba4dac3cb58021f31acc149ed4e6920d36f00156cf6cd672efd5d35699a4210a5ca23ebd3f810a14b7db85a1b70aca40805d4ae851eb2e86015a2dbda9f142bf115408bf1027ac71721f99d890a0a094c20ba259bd80b0f3864f6680ffec5139328ff4c18601b6a44e66474bb27425d0a56dda184d550962e4fd54c5482efeed580e3025c5fcdf2e2d95e31efa92b7c59cc5879cc946f5157c84e10a60521ca63d8c9a82dca0100fd7c22288e238938b4f242467373441468da6ba2d4e4e1483192ff5372915a19ca03fffcc50a08d884cc86fdfdbe2a1989522f24e9199409d795581862087d8a31b32d53c8f940c4740bd71977fd13930ae612789ee7e258344a68d53ea4ebb8c0b323cdbbcdaf5c203e17406ec795186def8de4ac40a1d7ecd8efa3a3a61b676c233c2537aa8b569797da3192b3f38db374b43853aa739277ca9353992249d6d56666d21b6e835e21872df1f0301b3a610a25d2d2fe69caa719146ad9643c2bd50078e6ee4a6b8c31d4ae1ec1967cef230c645207f984c90e6528c893500d4570ada13b61e37d10b9aa7a00825be66ab36b76dc00aea0f120bddf5442b29577591e0578d094f700586433b6f69ae2656908a29310b7e73af6e566db494db580b06efd72b42fe11a4b5c36c260b811e5df2290b34872e10989f160699f540117fc4dd1e412e10a2ec9aa92f0e98281f4cdb08f13b56ce67dfc037b7ecab433dff73f607455551173ab8183b53d5aeff9cd66a69ad4af8b9a3c64a542904bbb41c5013907fcb3faef3eaae60c1304e1807eba4133c7921a4cb4dd35794b31e615af55c8e48a80665080368634a0d1c967939b4e8725bc242bc0ee183be52aa79b69701ec2379f55009454c870644b3c4471a6bf92ff634370956a04c81d0eb5f65c4c9d96144251ee098e7b2243ea846357896eca15af66ad8eb3910f274ac70136bb9fa1a71b2b6bb62cba54b6b86654d728fe76f1f30572911e8fd46ca6eb9dfd595f5a78dae6deac967a7207355094887690c5d1fda7296d6b27115feb973515615c4aa368b8dbf58dea8ebf6286d89380fe8e2ee04e8a25f4082f11567aaec12edef37219078e3b1e02f99e52054eb9f7208b453c0c63e640b284a4392aef74dc71f6b84c6d629d0cecae106fa117143063fb09b6116c38854e8aca5e1478d887cfb4520a98be0eff8b8a6ef491e136fefaf2e207b448f16f52bd312c2ceaa2a360c2606991c68ead2577fc8fc3a7e1f9f3088a5f6fdb48f8f1d71c55f32ffe070200c1034d60d3233e95a4c6dbb5c21306503aa51e88bfbae681734f03b31b4ee2cfe65c7f3ac15cd229702bf533e54cd6dca282771f809373b54dad008d4068a74e378b4d0b4c574434155f00ffa83a488ea87dd9b2a62fae1252049e670e76d26d592501483b09e1c4bbdcd511fbbdcbc84d767c935cdcb859c197c7a2cafb5c56d303b16358cbcef7664340623355455000196e20c4c1e0654a2d032d60703ec99de0227a02d91ffc18530342986f8ce8419880d2d4de030a4375043b2add64c7990e86859ff8196dc3eb5eb19b9660f825ef3ac4fc53b53589e5ba63e8514bc346bc2ee51e62c7777d1cd3c88a43ac52f886e77b95280c8e7e34a38aba8e6eb15dcb6381f603aa0b2e2acb3150cba8848c3e93c0cf119f882854858a36db844a993f3923b484ad728406f4ab42152b9f046644a2281e1360e354fd70c2734ee364d9fae00ca1a1b68bde66c41d6bb84443d12f2f4337654a98c9a57387296c1e4c750c8a9e9446a0b7c74b4173dfd500c40544cd5d15e0a4e8b9460273ddefdbb5db8102a3debf1f5b438600cede3d288e18bc97d64cad6681548ec079866deb5339644634f6736af11f4c05280b8c394fa2ff490d570ed09b4117b87903e8827364ae49502e195f815c3ef0d437fc5b9eded949f3f8efcdfed7d01930f2922253d69907f8cac204e003411be4f3f762144ccd52081b47b882371d79712f41e92a5c0820ef7997af49456f93979e5d82298c65d1e442b51cf3c52a26320bb2417a7750b7374c5eab9fd68b428b0fadcf8f40e50980cc7368676ba7e71258f4f71dd39cd673af37cbcdcbb14ec1cb193313e6fb23cd0daa08be6d768b88ed6eaa55ccf6b2ff8fddcbf5fc014f3c6ba588e2ee2981bce00bbcde2983212c85f294d2e06cb97413a120ccac402f5706556a4e1104e888f9b22aa5297ae82e4c906b299198cf91919e39d5304e43c46527ac34658b91b9480804414be779aeaef256027d8b0a068dd0c0203f0b53c0d370c22e2817cb93b4def82bafd718b353d5d67030784745ca722494df0af08be3f3de2e16a8b9a9692ce6dac49012f6238ab65fb6c57bfed031f431756a17416b1c2eb9b4c97fb6a7a8bef0c86d8238db585eb686484984ea44d7eb88620e1e14d794998144ba8ed1c9f52c8c11ba67e48d918a92f25ad5344b20edc4c7cce726dee2b7f4495bada9d8e6283e7bbc7538d01e1823bb1162a3cba9ecaafcc4b5c469dc98ec7d84f047df78877e44a5106164daa26f487e485e84ed5138b735a56064fdfbbc15bcb44720ed4a69c863db3cce9cb7a63cb510f4d70af2aa60d6bfdb6614e4d2d5d73297b3562cb4c2cd76044b0c61adb6454af6368ce89588d4b5cc4c0a38f3bec1e9b24730dba0821e2e2a12ba0f1a1975c966e8b80f5b4d40ebc980d79b7cfb443e1e6bc9681d0efa8e79a4a3e6338fb4eecbaeb975158f1ce92b6cfcd752369d876042c232d3d2ee72bf6a4675d99861ffb8c5b226e3b10f34806ab29a73798c4b3a4671aa606eca4d907aa0f36ae50cf7b82f81f2261086543c534552cbb90c73a8b52a57e6ce363d100543385f32d44aa69454688209b717cdd33c501dec16247a0356bec052671c9cc72c5513d7b6bfcb0134a7dc1dce0e77b07141ede89076e8c26fc067f8d9f0b26517b690d6935ebdf70e75c8d8c513880c931f86789f11c4d38949be6c4f11e8b71c6c324962d348c29e62af339dbe71b3b18bf61038eee6da134758567ae7d474b4e3000170e07c953274bf64104b5ca08c2c6aec1e6744f6ecec7ce4362ba7686b64564423781fbeb27b2c9ac1d7837e9a45cf1a4cf2d25b81e23548def7aa94ba02990af2c0406970d7a5ef242ff5954446fba5aad0f0dd50f73b5a268696316ccf3dae7def7d74e52909b5266fd80d221e5a9070ccbc45a81086a4919c53ba222e6da2a8d3602b92d08408e646fe352feed4ff5ef182296cfdabe50184599ab1edc441799fc4120c3caaaf8d34326c4d28cb07aa2ab68623cf711d55b453550488b120498602284128c64cd4eccdc3dc2201be552c29fe206ccf44592236914809e79d54efab489ccb2440adb7244c5f9f93e3b65c6e12ac1b400bae6089e61ce63724d4a1b6fb9fe14458fcaeef8fbe7daa2192d448bcba1c368f10377541663f5d6bf535acc00a3ec7af656699c832074070d02758d9fe72048e698eff829c4b18893995a6323b0f8aad5f0b632cbdc5d40de24c424dce64b4293ca6d8f8e30780d178a9a89f7da7750d6ad498d3a8f3400b714b10cc2f90b24ce51daaba0827f0a53ee20a56385919e26186cd64d05ed05ddb5b421fc91c4259d9e82bf9d89cf81664df440b992cfe0094b1b86334f7450a7e0d01d809aa28df65b94e115702bf78e9189b6f903913148b3b223acb550ad9c055c8682327ea59bb2e7d98bb37e96ebfbd4ce613935460823b5a5bcfd10e49ebdb7d18b1e2d9273b65dc200562eecda8034b20d382da529fc08da7e3cbe207ac2714f2811ef83cdad140262d0152097be5170b93842577a633b6c44874110b45e7642f4e5cafad1c81d0973eb42e603e2632c792ca91d8dc85878702f899eb76cda79198d67c8031752454f3712ed88d005bd39144672927aa58da4acce348917388aa8be77d0cd2e5a0b122a4eec0ccb5c8813429014f429421588ab4972e2d715b8f24e7d8cf0edd14307aa20065c5806eb36624419feeb91e03bc5e021a314cab3cce4fec6ebec78002331b293b200a8040370d1880907f31be7eeea7e0f93fe7f75197a84310865c3f71b91d94d8315e3010b4854ef62c86ede9b96dd63753cf07657ed914d16447cdaebb8b8d48b8d036f8fd04d46564a670912b4c9cd99cb722e8d682cc7c044386ac343aeba697680e993919638b78348109fde32df5696e7a064d91b9516341d61ee09aa7ef89222cbf9eb30e133b5b2c264f5a0e6e5750b53cb594fa1b0f7b817da44bae435fcbca33d4705fc6d539ba42341eebc8c9f500fb5e91e27ec8af68e5be592db603582529fa37213ad52c28953b23e17a203d3c7f0a0f1b2fc384d3e399dc3ec1c632bdcb96053d3c39e9f186419745daf69dcc097fecbe66bda196872530ab2262ff0686f65cd4d2541558df38b0805589d358084a3035ab70719684e676e1374d84febfa8197747bda05c82eea0ef2c8a167be65a56202152161b448de69c8e23f405dfdd86b22e390a9d22f900549e38fe2424a2d2476e800c7bd011a7b1d5395b27b6f93f8809bb05b8030b04d2d896ab8169cbf2d565d7c7c9e926c469189b2c0ddd03c32b13e80ab011e6c2c59963a65b4783d81463358619152ac59d246a0c4ad1ad9c51ed28495c453bc43e6ee5e90d455beaa9eec13553ca578048b0eb8d50bcf6961d37aaa406c7ae99e0e33541df13eb479559aa2c1a9e01d5e7c9f7fbda898ecbfb8853a4bc8e79a944731e8f56dbbf179bfeff7a78c671fa9704fae5010026c32ab665999ac5e4f40aa477dc848cce25df8d04883e81e8185a001f673c04656bff83779d19edb913b1d7b6265d90ac2a61f295ac44635ddb6f729c9ee9cfabf575401ac12ddbae9666ee8bed61753150ed46aa1b159f3475f445ab9c784bf8ad6385bbe821259cb4a69d62489ef17d8e5c64dec15d3637f1a50f96fbccce15c567ca53487d647055c7829244de8f9bac085cca33c82ecab82eda2aca53bae8235167b2a83015800eb53945cbb45dea2cc9669df33b15a8689a33850779b5774796e8daab131516217e82c01765040c482d32cb4b054079bf7472cd3f33e89126d5e23db64a1c99996efecaeb730963f84819dd51d2ad53d60d92c083c6cd833f93698753679e2bd8c9835568862cffac1406362102f6dbc55c15628b0f52589a57b0ba731c2a1045360db883ab09eff93606ab334583095543c420214a959b777581fbcb049d17731a5e7cc77154aa72e48cdc2e86bf6c89828f6fdeab38934c92ecfb2a042e15c804bccc1b9ad9bfd5b433291daa442aec5832e5f1a50019bc62284235c9d0833992d58d0267ec1c98cfe01c2b6c5afbc95a20b584e9ad8c35cfc66ac8e0e67d5fde83a86ca9a3398956cbb3a0c721f0b5d7fb4fda3a0090eed508a64833281a22556ee301172c795742f7c721c735d68d61d2aca401e9403d21286617e95286151c6b10d29d46cc7a9ecdc971513ceaa12271162bccc45423e56a110ca5f327fc5195e01303894a8450bfef1f0ec2cea9d547f1e2d8d897cb5d815188ea1a7d098ffd0408664026c85a90111bda314d7ea7a9f86aecd087a2e289eaddcfcc23ba0cb1e8305375ed924ec2606bafc8da399739abf8d3fd1d1df077d6c89b6adc39a9c63dbfde858c24633594be2faa28c368f44dfb157b526fe8473f89caa2980b651ac433434a63b129d6ce6549d6d16aa994a9ffb54178284e5cc61121b78366d646354556a97c7e3f2577dc60847d177c332885eee9f15d7cf551488452590cb6a5785286424d0d93cccb6dd4cabcd7b580f4ff420ff8c6965a073f8b201fb0542e4b0385a9613df693a23435efde68069300675ae9141462505fd1a50abe528ed3e99260cf8bcaa69f6894b182e2b42fb5eabc4689fe48a97da73095622ccf6f5a0cafff52ee8891ea0a3202c6d84f634d9b3509ba9381943757bb3275114a81950ebe1284d5da6ad2ecbac11e58d851f6dcb5535cc18a91bd83c54720a60c37d6ac06f1fbcc04f6498f32c992f141ca99958fbce74fc1ade64503e6ca566bfab448c88f1621e1805779264f2782b44432e772fbffcaa0728f1d406bbce60303661a747079a8aad07065aa8be6a36d1939498e8eb94bb4f2d80158fd96ca0898d9608809464844550675a9e9a2b4fce6a13565cc4e591701271de76e4ae2a9b9e42b40d429aac978b3894c6acf1bd861428ab489a8b7da7f044466a57b96bad2826231c41724ca23f6a88618ab9efbb5ee52177b36360bfba2be8b606864761282d24b141f92959b85c13486d253332ce969f1404d96a76acd748a6a577ceb6d5afe6a43550e77a2e3714d7534c51b8a56970c10c28cca9226ee36e4123cb8e45170271b04863afed31b751ba4e9a7a513f28c9a93d217676a29fb2afa2145004f224b63dae228e5aa611c343079bed5bc2cd5f6cb4de2053481770c9f545d3205a388019885c720317075c4647773e85a327f95ed015e2ed5cd5eb2d85c0d5e6221d55b6adb09b6f537f3a23dfaecccf056cc1a2256b61012a35a35ec09183accf292c5803182debcb06ee2a96937c0661269f1d3fdb83197da176a89906735de4295772a69bb215ac2db19561d415ba5f40cfb36cf5676102b4d2c3a5304a2b275d648b19cf566e0627590f434f48c10079609279c433cf21bac747a83d7ddc024ba25de8c2a09d326aa14bcbb6fc735c2c3ce08cd8e4a03f11986eff7c20f312bea9f8801ed0f4f058026044b9d7e68b6bc267c6b99f45886c6fcbeb632c4ab11149e6682eb0a564984c2f7f13894d1c898f6146225fb299c3962552bc2a81bd9e0c2aa23f341cf4c2ca8f58e11a0521848d92a8fa54e720ac90d7a8d4febab517b753723b1f1e803dc522098aa151e36afc6f2ec918b5e25ad555e51d260129fc195527344aceccc822ecd6cae73698206d951cfe62fa1f1af522f7aeab34d437b1cc1542a9e80194fa13d1648d629b2efd34cefb25485a645681b10f5aa37a00047a092dcdebb71de26ac2eefe62c488598132785d99c0db00626babc47b28a0ddc26e8a1ee38a91a24dc40f2afa89ffb843fe1d84560ebfd4952fdc45450b7336d623701db4448c8ee3fef151d748e0093404f2bb40c6a876f08a1452f8ea07fc0949c60678fab0a26c4ff5a124b04a2265cf7b2e33e49d1187a940013e1519da7f72bbe6071b28dc1e5538bbe8c370c56f21e53f4dc4376b826c9e715e8ad368125ba29f7e9c64fd67b5da57b64f05aefbb5148da5069ca89f89693e9c5534319e7586f6d3aee2c9ba2ff159a2fb264b08a24a60d97f2145db444bcb592e670b5f7f77c37ac256d85670af296f4538bc68ac633d3dd69388a9f81908e8db382f3d7a80974eb3ac27cec73bb318b08225cc8a0694df415e04c855386a609c81c0f905da47d4789e3902133423304da86a334184c865fa76ee1f1f9ae4a806c4c1660a3762baec1faa6a0b94ee40649643b094730e37d11159429bf378a656daf5ff948ce4595519a20c60e2160bc83faa3168e0b5a698318b418642147766965eee82465997bb447842364e537085ae080bb154dfa73aebf3985771e0833af7f782daf3540c7de15ed4318e123a1ffdb4f85548125e2edb134a78f3a7c67f506fa7eacc61e149101b5802c211c9e0b47d89810930c1667baf7a745133d329c73f65c3c22660ef960bd18c570d8dc8989c3b4064e705d3da54adfe8ff77ea513be081380fe65aa985cc239ed0c2f13d995bb6ff50decc6c27f3a5e6f29b4b72e87e7b029e5d4536e28dc1da1a8858a775078628f022ec70d3d3f5523a33198a74a14c68fccbb53116914e11c79faf37b130046835065b93b005ea93d22720e30a0267597f27cb7e65bea558e2105149da12c6104c64f628f79f804464333d861556a057f1e7e92dca3655a7be427447f432e6e6f8e1efef266906085540b646bd1059a34b932f6ccc2a0f625f08d50e3d1b2709c83360e4f8ca1a261c85a83d45fe242b5bf8d86772bd78f1726b12bc9cb6064a52aff1a4e2261b92e473acbc91d981c9803df45ef872d0f6e64c7a46542333270cb928a482cec8d57a0982c720ea4113c74a2be85c91aa329a8382af67980f817d585dbf10603fe927004dc0b1cef5dc827a0a80366139c7cac9b418a3315f63799a4422362c9625e8974780f0da7072a67810e7b0515dc409395c7bd0079f4373d3e3b08d849783d26517593eca3414ca58bea2f73dd18c2a6bff0a7203c13a77a23c08d780f8322d1be23eb6a3ad12014d68b40acaf4140074978e808c4002e6311f96e7f7b91498c9e5c9dcd4eb3e4a597f3bda90c2336d2c2e72f4d0c2669ab6e55009ed5046ad87086534fde1ec539a49f8fe738f7c702fd2e397a309116fc31ec9324ab37fa2633972d1aa542b8410095a34f4939063e9a9f26a580326c75fd03c757905b4eeb87d1e5705d49aba83f91e8148074eb98709ffb52cfe0319b2d492e641914a6921c4f157d89026a0dba895733c7a237eceb40ac3a9fccaf48011f64fc8a7f9e0926e1c6cb45a64adde3a7a55d8bc6e3cbb9e0e59a02b9eb4746852384c5873709fcf926531c8cb3aac0a084e80858dd7ac51d943b611896d2594ac593e84a08c08ada8756f891ea3d815925a3c0d90da0a82fe168276d4ba823fd9f5fb61f89078c5143262d542dc87861b209c1a04076d9d513610168c03ff9181adf240058223a24294bec3a975b214e0b2fb1be1ba1be5114a5f503f84dba339f50342bf5afc280f900543155b43763c05712dd07fb8a5be65154d085f25121f3bdb2b82c5faa453c49b50295b1ad9f458cbec88be64e8235effa4c9b912c69431d7420002db9c29f749b510041eaf6496743872e859e8054c60f999ded0b2860aec44371758853dbe38ced856dfcf031c54edba9398e205c4160f8849cd44887f0dd19e0008bc517bbbd8a6714481ef275a60c2dc0bf81174c99d7dc9110a039143af3384de4f2958f0ec6438b2f5067bfe98750565b185dac4d763e2ad060d3f59e821d4147256a6bd8788b251511718b66fdefe6ace600e04d33530cbe764271fb034cf711aeb2e0dd4e30e8fd7f06343c273341c35f843107e02a6c9b2ff22c041942b90eb3c75313786bfe9d444963f1655922a40ac208705f34417ffd2b66167231696e82757b11a66ab2b102fd30c55c5c60f3059c68fb22a00395bf46d39a6b33dd70d00c5a067d0d5dcb986f61ce22d72207e090ca7885d1273b56127123602ea8482aad352d8c3f7df64de0225414712461066229a59bc80e975594258082749cb72417715e7e431108a24fc568443b0d132d3d70fdc1eb364e043c4c2b277d05b05f1130e42f8cdcb231048534ef6971739005329b813ac233ce5b2a7b0a0f435ace129b29aadcfabd085e6e02be5e7553e555a9759342d6d8e6b797b1ed4c94856a98d4414873df224e7f284accccc62eaadf80d2118951be0247d4106bf7c060618cca87f5642b655a968b90cd274dd0db543c7a946fcc1d2a1412db8a6527a4b57ed11537d0fc330c78b956eb0f992eb2506fcc5d88ff826e713ba66fb5dda2f105c770d61cf28cc94f37522594a687d86ae55074818b7b471222683b4019fc9a1ca11c25bf8774ed103b9bdc142ead89182cca2229bef518e0063b37534e2a08b823579348118dc30fb7e3cb20124ef3376c24e08cb750ca9b29bc01253a622a873dcde188062ca447919deaf9fb8f5f15c8c3d3c7553b7778dd21fc55d2bf534994b414f91e2a4a203e74232b49d4fb0235153eb4aef6c7e64c55fcf1625f04a3066f6b3cee74a04501470d8d24f18004aa27e4aaf5cdd494d34112a501de61518642a0cd8b2282792ed64bd68303768479c862156f1d8bf0879510eaaabb83f552e67163af7359660a3fb5a76e89d21337ca5b05d9d3c3af9769fb3c6523d5edb7dcb4d4676fb4f81d68e9b863fa9e6c0db1849a4c42b5b85685ea4842d8624c910e5a6a3bc3971f4f7cb6adeeff6b446a19dd20703962b87bf0e0cdc1f87ceaceca2a694915cef12862ef6c53e67f91fea2179b91b8eb78c793016a061432fbf37a11677dd7e41531850f38a008e63d14840156e1a11442e45a8094840a9f0e53c7aae4ef495d1f8f973abcd3ea43ca2f16c82e092a800855870032e5b33edb2c1e8b2d41c690f964bad7e99bf9c11fd92665fb9ddd98934a3a6ea103c77e0b601dd218f6fd1fb40f3f263d63c8cdca68cc5dd2e2a5118b52065f7c90067a84f993381f49dae948f76340b357ee230175c4265e7b9f56177c13a2f94197e7ceed8b3749461fbf0b159b11af695a3fa2b181e4b58572ca1daf49297815dcbe1b841be578e89a510a8e7a9b075bf42fd3e4425070e2ee9cf465f71f41ae5760f26fc0f876d21301a0d97019ae846b3c0b3a376da3b219c64d85d840c530d315b1d50f2176a4f69930caf059f32ffbe58fba0f93329d5e91a75ead9579f87cf86400fa163c8ee6658a28dd15104326c1cb9483fa4f813ecdbc8c0ce41fdeee54294a52f5fb8212c03cef533423b7dfbd1915bd6e38c5ce42f501a33bcf26b85422e8985476f353ccbf6cbcd280d1564f428c2f37398677e574e5a093245bf9ca3e4a1948a2c60f4c567212cb9c58d312bb666c96425024dd6477b76b478eb92a9ac6ab5d5c52a8e18e14693763c789c88d7d0366be6215c2bcb80076306007b293ae2192dc754064a8f2f7b6cc19e9eeb6d8a184fa9bf24502bfd0a0d11a610193f7e924d70e84480f620d12fa48ecb5dd5739031492770d184005902b42032d57b5f3cdd04cff8bee86dc1b1131f523ecac58af7ec8ffdd0174c893bba6160963318113d9251f32bbf6f52951ff6efc72967a674deff1d733cfa921d9576327569876993a252b13baa473bc5047c54966200feaa0ad9b5ee2a54ccf72e0289303d66b82a8dc5de5869f391fe943a1106ee75b4d6c48a321901e90b3ad78368e9b321d485ba00f49401dc8aa5d1301e8fee94cec0a073c3e6c595410ae245f906ea219339c295646f4934844feae41090350df0c13741a4afcafbbb29b338d042ca2be044db44624056d5dda6dbba082dcc104f80b3ced169e36c49b9ddc068204ee5dd2049912035992eef4723409b34dc3973d1e09b6df10a508d1b29a2595d70b8033c0bf90f42062b8c26f6898ca248975755d8b636f4dd4f2e93d0117aa8d80d2f16e61e04fc6c38f55c2a11a82d2db9701512c95405bf574a1415c3b61eeb14120ffd7b95e4a16d77a60a89a67c013d851d0410aa5409959f53313467be6ef3a13063ecac52bd73f3026dfe74c8b8aa94492a6034280cf00eb14cae6f91df1caec61c5a4bbb617bf5b844eb1aad87cc9af2eef455096d9ba2b97998ac2ec244e9707d568ca6e5d154fbf316c32afcab62a7dcd46dbf7e05222129fb89a157210b90e1d046f2bde9346cea9019cb0750e7a4aa25d14a964e254249a5281e22926dab9c499962d2cd561e7f4428a8e632bff0c05d6e264f36fa1859699114905156b93515b2372c972462b2256b77e67beb67c9f67b6e18da850002c35a5daca918f1abbe22e88d82e0553f7d05ec8a2d7a439b086573157f5475a15b3f99612e93ecadf7a5155a4a7020a7cfc0fb64841c4dd041e6e84190e5b201232e27455e755df78aec480f618ce78b767c4849e6f72803d8639d7dff762723bba9b7de2fdf1752563ad5390326a553ee86e00ab2a0c0c8cf6768e8308ba00bda1dff3f815e5fff066a2dcc71087fd806fdd444444c8de72efa30e8b0d9d0d3b36f5527d3822c8b3632e52940e0be4c9b1729fd4439269419eb8531297d32afbadf65429465e402720bb954fae658505e44992b148b24aeb3aeb3a4588190c2bd31a37204edf589c7b7371362e0247421a6c5742262193ad82afa1cdee3c3a7b0f3bf19c4942bf81e76075b0abd329a55527d39fb505f3b3ba2a122a8e7e104a536934509a4aa507a5a93e15476391e923402b4057e4e9354075804e6f0395813680aab653fa4c696a9513864caf83d2d45ac5d107a034d54ac5d13f04c8f42e509afaa300aa124fafa2aaf0f438a86a3c3d8aaa4200a034f58a0daa4374d7aa5936d560235171f4bdd3251904379f3d13432857dcb428c8fab36948a834ed828aa3d2f44e0d1a954ad34930159f4ad33ca54f954ad34b5e2577bf646a95a69bc4fcec86d1f8a934edc454af74cca6fa335a9a8544a5e9292ea834b7053b95e64e41a2c64eee77924a73693c95e652595269aecfabd2dc2a4d2acdad551c7d9ca4e4f91299578e695269ae152795e6fe541c31bbba3a3da5d2dc2615479f06cce4842475ca9a5b5e1a9595a25a328d9b4e73cb4bbfada251baa9a4f4460b7e81c1b751254c592470ba0bbe3905a9a6cbabe9825ba2797aeb9a392effc1335fde95d5ec11c8354ff8071f42a6cbdbecf3e6a5acb400a4f7b8a3e4f29ac6274e1e9de52e25a50518e1dba81925d28845049a51228d58444d03ed843e1890b96fe7b86da481c632b783ccdd5e1c63a054640e9ff7e16becdd76b61daa437c2b6999cceef78a89d59233a3553242728d8eb0e820416ff4cf15d3bdc26a61e5ccc869955a4648465c23d71196230ae896c0676751d9796b82aa5c9079a80e2474ba2572ff1cad12b90f2a93e4227cd058be5c1d69a054e48b9bd6a8e6682c87e29d52693656cb145aa5d97266d0a8549aad55a2e253693623249f2a9566738daad42acd7684a55669369d8a4364a5d26c482a8efee602563522f75b583943b8727f464ecba2c00291fba59611cbb23de43ec9888b8c2be4fe08f7b72395460a2c47727fd3e92f72bfc1c87d11d6d994941b13ed8415d8207cc87df1ca14727fec30727f7301d5d14da03790549aa6527128a148766c11f7e2b3b71c7a38ee00bd69adba3984cfdbd87e2c63b8e7387badbd78c3f23ab9b027b749a5b95272df283a3707f4c66db2650fdfef061796835d5993b659c719706ede819691b95b7bce5a54a3faa8ed757371bcadb3a1454871905eab552738f3745a756eb00d16cbfdcd89d7f2906c4f405acb733502fae156866d7aa36d16c8edf57aae5679ad56d9538a4f15c75033ed5cf38605f2f4c89a5dddd75a25ad6986dd5b932dc910ae902737cbed64db6077b6c12e6cdb6954dbd57ddf961bcc6bc16ab0e6c5de760572a755e7f6da5e5b932dc910a68034cfa365da0421b4c0020c938aacabceb86f25c76dd6da99771cd02bf7aee4388ee3388ee340ffca1304da8101210e37e5ce6b6ba92c7bf74e3d7c0e79217bddd775e0b91fbc61541cdc3d5b76dcade56d27df2a1cd71cb81db4b7666d89e479e50d2d76e1bb92071f5d0677e872f79b0c7a357f3f8059efdf39d0e3ba5757ae1f7843a338afe4b8b1babaae4fdce9587ee599237ff75e9ee7799ee7e1f313951ecf1132f4d08cc75bd2a8fa25f486e87d658eecc13c8f244df7408eecbd865eefbd5a5559700887f069321d9f28540ecd844eeb38034ef66a0e93c9c987b793c31b0a6bbb8024358a6c1df2f4589eab551e26527309efd8765a75da4eb3f823b9e2d3d3e9645d4fd704d6a8fa96b273d2cde8763a98d36bbab3e2e1f30654097e2f9bbaa48d7b08c395300fcbd394377c8ae410548e391d77d0e8aa5889427207c1cd5c5747706b9d955cdfedd82a91cb83e370075099c6472954c7cdf51e11284de7a238ea3b09432859c291329c788259a1e40af38e0545c8d58b92abd7d30f4397872a728646f5b89427a56d358dda388ee3388ee366b12d47a336ecf29a76e900a5650e0b71b9cc3b5aabcad7872ea5cccbb224739773a5cb47a35c521fe4d133a5f1601447fde8853cba0b3d7a8e56d98f60c8a3d7501d01f8e830adba713e8f6ea3552d1fa146621e7df4d147f75824f660dc9602c0eb0180aa713aeea8f19a0ecf19549ec9762693ded548a47bef482b8fd5750fbdebba6db34e6c9346559652c9bdc7b2154ce2e27ed4c53399c3de51efc6db93ca73c84c7e39eaa5f3a959902f34bc546915873d604fb3b596b3364c262f0f5bca9a4d0268e1b585df286b9e615d2ebc0ee0032809700ff6d7fff45405789d651ca7e30e1cafe93054915d970386ce729d2d3b20a4bbe9d6643a0c796bf97be685bc9156a5192cdfee6d5b5beffb3c580b9e516291b72cafde6bb5aa9e545eeea4b25f409e1ecc83d955cc7ea66c40a3b8b3943fe80d4e548640e5c7e5e814e77525eeca996fe53904863c9ebba93c87cc3c1ccbb1b43b4020ed91b46ac31e80216ff51680fb4c491b858353722fbe81c16462310170a9a4f94649b30be5004a0194a44d714f95b729eea8728646710f407903bdc1bd8592ab51d246bd603c53636f5da3d777537a5532eb65ca3344cb1d1ec9316507509906160273ae73d2aaee05c3f2a384074faa30a50a54ccfa8ea755f5491e4fb987cf1c874f7b98d7583b04657560b075954d20fd80fdfc64518419fc80e183ec79246932fd5bed41e6de042a3237061252a6200421bac081b9612e8a1540062431934217603811c305544011a20a08c813170c8c2fb0c8a28b58480962a90a6050e1890b7e98d2030f9e8c2105f40129624b866022093aad1de8fc261349da6dab02595da65681565881c4000ba82086942568f1048f597590399418e282aaba9dd094dc0f45e9877afaa119d57180dc0fc5eccab29ac5b22b1c2198c07c62e00420f8a004b31f6ab5aa3ac9fd90cbae6815aee80192d6124c6062f6433aadaa39c8fdd08e5de1d800f672c289294c8042ccec87785a5571f06a1282f5434e5ad59141551e0fe84aeefaa01faac300b90faad5403b76459fb08412444c29824e0f53987d104fabea14b90f7ad99545c28b2a2c209678e104b30f82b50a14b32bca454fce0f52764c00c40ecc3e48d6aa7a831e2933d014d01154d5cd4048721f6404e402e9501d02c87d10cbae9a76825ab93fc6ec4a072a5e9044064350f1f9c2ec8fb256551be4fed8635794093660e20739d8810c7a7a30fbe3ac55b506b93fd2ec8a2ee104b32338310321aed4ccfee8d3aadaa466e5a73f5e19a7a0aace353ac9fd71c938c2a88e54ee8f3b76d53de7c893fb22cdaece2e6845c8420ab0183c31fba24fabaa14b92fd6ec0a003c90c14c468419f0e006665ffc69558d22f747965dd15084184cc4a00952687184d91f5badaa50b88eb44aa73f2211b9a0aa8ed5b1a2b42af4bed823cea80e54ee8b4e7a655da7f824f745965de1cc604aec081243e42c6109665f6cb5aabe725f74d91525c3a5a383d712586c5133fba24eabea13b92feed8958d2872c03a228c31624430fb224fab2a0d725f7cf5c526bdeacc7e4806557135ae165ec9fdb04a580b7fa88e32f7439a5d752cb6635738466001250cd70d8220e50bb31ff2b4aa32c9fdf065572a17c08478410a7a808211b31fc25a5597e47e18b32b983164e01346ad095450c2ec87b25655277aa4ccfae194561d41553d454f118661a843753cf7c197cbcf3027f74119d863572e4e6c006546032c787460f6c159abea0c721fa4d9150c5284410422c0c00751b062f6419f56d526721fac59e91568f6c129a8aa610003d049ee834bc01708a33a64721fdcb1abe6699066572f7c61829917b01d3029c2ec7f3eadfa6a7645a978828a207e5e57a0e008b3fffdb4aa2ac97d906557340b970f7400e3010dae7082d9075badaa32701d01755ad507917c5c505503d1407c5372ff8bf2f57c33aa2326f7bf985d75f7c7b22bea8513460ca18c2a4c19230cb3ffb55a556390fb9fcbae58bcb0424dca8e0e643230fb9f4eabbe1dbbc271a2021fc0c0c14b8c29e498fd8fa755958957930fd6ff9cb4ea2383aaaa18625ca952fba13a4c34bbaa3f36e5c3036b1595b58af648f16660e4be37c53b82aa2a175c784872df33e2b93c1daaa325f73d965d551aad259bb58afab48ad6acfcf4bb2bad9a82aa2a155438c9fd6e49bf3a18d5b1635755c6d1ec2a88125518e9a107276061c7ec733eadaa4be43e57b3ab22607c210428a608220645985d6190fb1dcbae282d49176448b1842ae4e00766bf6bb5aaeeb88e743afd0e49abbadce7b8a0aada4413dc94dce7a2703ddc8cea28e53e17b3abfa7a712cbbda80185e2c61891f253168c2ec73ad56d517e43ee7b2ab16a69441042b8a00eb4106669fd369557541ee733b76457d30032940d14512558a90c2ec733cadaa4abc9a70302d729f73d22a1119545557b0822bb9bf6db5ed87ea20e5fe46b33a3eb9bfedd8d54a055630c20232643010c2ec6f3cadaab0985de1f8708513265f74e1c4164598fd4dd6aa9a448f94597f9bb21d415535881a44ae9b91cdb5e9501d577ad5f974aa8a7e6e39b9a94fab686d0a2bbd0299fd3b0555ed208693dcbf4b5af55d18d511f260537deb43a9ebc8d5e95f24ad625145808b295edfcea80e30f76dccae70a0b1ec8a8ad1c44b09141b1c518203b36f5badaa48e4c6b981114634a10c2a72ca8082d93f22378b143ac869556184138430bbeabc9ab4aa6f9db44a9529157d25f7bb4ad7faa76976d5a3a9acdf2365d6ef29ad1a55a91492dcefb7ab759a655733198b2008614a173f689202b38dc8fd3aa3b5afbfacc214558f97b44a7cbfbe7470b02b1c25be3842070a226650841b98fd1c5a555b80b3c414a8d8020b4ab4769060d62272bfb2ec8a52010b307ce073850a267461d623b9fbf548ab42b96d3e4fb93e025475a2a8faf6581ecbcef0a37fc310597081850a9a90c203b389c87dd2ae68127e00230b5230618b2f8c60360b3cf0022da65c21c6c4932dcc15642558692bad32fdf874ed49ab5a643d335a16997b5381d955e7c3cd38f7d6e99de67921c9dcbb49abbccced70dcab0ff75a03b9778ec7c3956031d913522a4fcda92d8e7bdd292273a4ccb938d7e8dc6fc0218756dd18658ec5752c8ee51cc75dc171358e0b820a993ba97bbd6017fc5241926cf24cb16c32f9f858c92d2d2d2d2d2d3b3b43e820cf7021cf9831a3b2f28c191801e44d41135924b222056564d14c1689444678904ba5522c092e962912898408f8ec86790ca6afb130e51022f9743bfa7896c143c47c7a1d7d9c5e7a8f3ec27c92e1743a1d7d98f2792a1d6321a57fef7e471f252cc4bec63f2cc4be7c684bda6216d22fdcaf5a71f4ef486f74635cbe87b525ad38bed38ae3b4d9a1968193bf9bd3cbb8fc57764ce9fbc2af1442df390ce9e843e620b60fc1ef31b734c8fc8d7ae9ef7bf9fef25292c12dfce3c607d45ce3ab39a63cc97cb6702237d7a851e3df697c2fd5b8fd5efa4ee30d6b55e9df4fef74e10134fe9d6ee3169f0078c7fcfb287dbffcf4f20b3ec9e0d37fefc79467f816ee801304e8c1f751b48c79cced6979ea90e9eb48c3874f2fff0e9e5e1edecaac4e2fd8870e5987fc9d3e7c0a3c9df63198c851a7230da78358c8e92f58084c49e4668b2fcc5bf836ca50e33098ba8089d84ce336f00500266273e97d3b3ea0741af8acb9f4efa3afa88be38e006ce31fdaf0034f6f4bdff73a3e80e21b7ef6fb60aafffbfddeb0b25f31f23b8f6ef2f2f7505bbe9e3a6499db71c701f053cc3d2c8d9f604e1b558a398d92be549ea75152d0ca9cd200f337ea44a3acb9875dddd3e9b7bc9d3afd44030ca68d3afd2de0ffe5f8e53556062c694dbfb4a7a3056528dd64409987a741654e23acf197975b99c31c2c6979e290292dc59ca38ff9567a9992abeda5c79c52275cc2e0b792760a8ca17199b374011c86bea94c49338dd28e3e3a87588895a1c65f5eac7d395f1e029c6c1f96272d4399d24788e9635efa001e539e37f905877cb6f0122672f3cb6fb66fe1e5351dd2fc52fe35b6c607509e3f720b174079e2905b78aa3c75c82d7493bee30e14460019806fe30c38390098c8cd23a83e4ab9460b650c4a932c9369ec0919528ce401640a6508b45c46924c639942c902952aa2b892654e615e7a8d977b1feed1a89a0e1ff6b84326262606743de1ca13aeb818e1095662401fddad56d5739586e69797df4af3fde55ea5a17f91f9e981e0cd316f564cd92d26c898c7e06ec900be95dcd3f2444fe3347fe589e21868a6dfc1965146d3191a557fe01e8de2c61d4aeea9f703d2de07c5609f40fc0cf4d06186245926d7e7607968557dcde915d58256ab6021c9f53780b4ebb8a3e9c19ac351c9bd37cad0f8d4b7f1fe0c1c1312f7e82fc8eff627953d6087d37837ee50cbc83f2d85f4650010735a7a31bfa30c67cd3195fab00f87c090417cf647503348e96b9aca940d80b265517016c897bfece88d977fe5ad385e4ea3f42a8e9773f4c6cb6bba549e627e79c88935cad3e9c8e3f41aafe997b2f41a5b2af16b9434db2861cae3875c8d7204377fac56d9162e4fdd367bdfe9dec8e374c2271fe5bf97f8d4df4b2ffd7b58c6698b61456cd4e9819455665a45142c88b9fd64646464ee6b9a48ee7f1ff82e8788adc794a013907db08cb92d6f99d3fd7d4c64b0107a19261e1095dc87e0077ee0078aa60fa132e8485fd3df454b85987779c6d0febc7147f71031d3c3fc44441d6590f91fd211c45dbefc2bc353fa8285d0d75186efe1cbb3e611743e6d3291ce32b725580e11b3ccbff224833dc900be1c3c3dc9d042c2f7b34c37e9548ee161c514dcaf25343e9853152f255eca1e3334aadec554b694b45133f08f2c902795d1a8e4fa0d6401c9c3084e686004d318a44cab78e205df47655540e1c307c409fc1b665727109f6ad87e1fa4bb6751023a0e7720f7dc3f0cc43b08db84eedd86fb3d8e1986381c20a073d886c9771bf1a07f180869433a791cf3ec178e79cb7bd08378e77011eede41b8081320dcbd17019d0371dea979faf0a906d0b907019d7b119174f64b02a19fbe771f7fcbd3779228963826697496937eea902c4124e81e88f1d93120a26fefb206113ef5a9297efb570219f1a93f9ed6c5122b54d861b14cd24522128e2902dd3be81ecb6854e2982ce4efc9df9f4de298f714a49af7459800119d3c358b88f0e93b77fa7090d0b987b08d0d93d38fd06da0660807e17e5af085124ac8582c93b4a9fa569ba1dfb0b89fdd036953b7a97aeb44881a6491059510ee0154e298de29c83dd5504def9e4bc18e35cf7e35cba65ab17ed955efd0543deb6b964d9d7e7cf538665715901333a959cd93ca66ca9b3323cab40a288cb028b162a6553ce10416a5b4fe9ec00468450836390ecf1f36990ee27ef5bb49a3c2d386f5ab51af5635397d9f7d4ddfb3594d3a55ff95fd0ae306164dd59bc21ff2fe9e82dc0b96df57efe9c32a46c974e4f1e1935af183ec7be70f9f381f58522b7e90e55b9e827845eebd1b2e3e01b936a7efd4dc7ef1e9c33554f39e9a9c4765afdecabe4390af97c5642dd31a38a69bcf6e374421a4365e3fd3aa5353279490433af2a8546c143dbd0a539d331e6caa11ee3fdcf4dee4bdd60eb1915be481d508e87339f697c583b5349fda0df7b6bbdf300f8dba36b1dc34c7e5214ffac3eaaced300f75c6946bf350593e903d90277a1b65579587f2605795c7547938139074ac9722a5f6478530a4adeaf7d695dafae5d08aed8d31745c8e61eb446e8c61f3c4cee62d8670e4b1596bcb12a7ebc54218d6873ca80c4d3b06aeb9ee7bb790e3461e74a31ba5dbc55dd739f4c49abd92f2a0951ea7ebb60318152908a217cb7d5210a827cb1e1534d5f7786caabd1d32487b9a49b256597ca2b9dfa72a5ba3a8fe5da61669c7f0bc9f24c7b2296bc730e52fa7517dbbd990dbea13571541a871ac5b7b54904f522d37c93ee4368ed5aaf3cbc9ad3a79596c5457596e2bf2c919c9e7581ccbe29334e3580fb8f9cb695577de8e4db5a773aaa19af4a7201db59e6bc7ae3c29bd6377f079d1db597dad4ef5f1295e181b2ee4d3ebc92bd005ba701b2618523ebf9c2f277758c3eb43cf491e175de93b251fc43b898be0224c807c21d48c87f281ec0629f17ea82693d33d10efe0edeb874ff545be77f70e3e8877f0df8b80f73e5c63530d92203e55f0dd2b06f23d74da1a136a30a3019424b440428f499a3a32070cbd08e9de49cfe9fee1221df64e7a90efa197d40c95d40ce9a99e48cda77b20a277b7afb9a643e4c193ca53c5a78b6b10bd7b101179f0e48b7417bd08138b8190a18bcb83944a772961975a5dcada62b12ae939e8e0437dae2d9df498253d6123fd9458a187311c3385ca6ab65aad96e9c78cd7b4f80406a4f8fb7a928cd463572e3d5947ec29b972786ebb25fd945a34304906833def84398cff82512ea5899a3d339a4f26d54a2497929aa1d8a393fb3d76454d7176b128136321cd15d25cae9026ba42daa9be880d131ba809be0b95a78a6da0660e785a0f7a41ba83ff3cafee783a3adbb5d5d288414071051109f930140ffeebeefdebec771024c964e4ab5130b0be5e99dbc0984d7517bcb606f68831306653ddacfcbd7b90ef5df722debfaf03df755d49928d3fc251e48e204fd67bf720de3b5c840990eee08b7cf7f0c906018b7407f1c9da83f51eb1a0a723baaaeb47ced78de115c87a8ab42be429d28e204ff774c107091dc445980001efbd08f9103edd201e780f9f2e8ec1a4a615a95caf24c9423da2cf86459ac52d5ace21b1fd197fd89a4d5d81ac2fc204c877f045bc77f75ee4ebba7b0ff21d3cf8ef4717faf7106642769de8a1bbfcfb49ca21bd3b59e6944e3efc7a662e258ef99538266d1e929ad474a195567b67e4d01b7d9792e443da1f5b3382ac3884358ac7a6c2970f647df84c3ab5ab1079122e423a493a49be48e9211c3a35cf9ddaf247df6053fd509913620e9f24dab8e35d416fb472d8ea6e6bb66557336e3a7994c94492321bce98f15bfe988173725e1e7a8ecb4d0fab78a949b316ff28e1937d89844f169f6a08bd7420a197b00d137b9b97876e3110d34927611b979b8e63ae803c49329216d4e382f42237e909b94ffac92516086e11a4870e84f410b661526f233ae9150329dd846d484ccdd26b5aa49966bcb87c865d912d3fc556eeeea207011f1261f04544ef4ecd701b7fe4b47c86e92fcf21ef427ae9356da5514dea61e57e4be94223bd94d474214b6ab694d49c5152932b82b43fb616b644a71a44ef7e43e8a069491c8265f80a6195822c880b894af2216c53c225f23624dc75e5a93e741cd3a6e2530dddc10339886d98540c047c08db906c7c6c8a8e362821ef4110438da1e6530dd5ec0efe14047ce8a183dfbed98c67c6f3d5beb0f5852d2b90a09f24994873d154ffa348ab66480b59464148a2933035ed435bde4dd420eeb52459f99e2e49468ad22a5a45cf4f29a757346224293112e924b99c10463e495748b3dcd5d65a758a342badaa55649116d246f8644fcd93c53554d3d64cfb6353439022adb1483b05012fba0817091d3c35ef7843e8e02f39a3373a8333bb7ae5a6367582305aee19d5e1d9d06647bea66376f5cd6caaef7931d005d692a709e449929da02bf74d3c61183eb4b6d64a92511d34ebc0a2ae444f08a411aa12449a5d7d309bea77fe667605ce66a1c9147eb59a5d892eebfa60a2eb83891f2cf7ab0846b24ba6b12d6af9fa406f949c09288e3ec9c0ca1c2b87570c3d84459a4db94e5274894c26922469a08b04ba40504fc4cb242c2a8e7ec8f984a42be88de646111486e21091e403a292fb6395dc359215928c43823cb929999b917e406ff44957501c4d92d11b7dae05e476ef88833fc573f7fe557c8520b1e7b2a9bed8d36161e55045d62a90b564a44b4772bfd4b235928c24b335926cc6d672844f1ad5ae5c3ad2a93ea9a78424f74bad1c39666650a8df44aab56a7645cd66b55c3a3b24994d75280b4fd211f214c3580dd4044f471baad9916676656b9424b3ab3046537d5b339164b96d2d7718e3a434aa0f961c8f4df5b91e0e96fb5f2cf73d4e56ab48ab222db7d8612e9b0fcdc39b0f951aaa796336d55d90bd51e99567f6edfdb12b1a63b172b830efcf5bcbed13b3a93bcbf7f6d49f1b2bf7d643eed34ae37d5b22f75f3c5977249f1bcdf5fdd854df8b7d311d1d1d227484d0f121c34829e8e6446e9865e2f34031aa7cdbcfd0b5c303a734aa411a06678ddab012d04f70568ea132ca28230be6888bf4603fde06fc884f41c611333141a5a5e635423e74d1995d852c9aeabb6a2c7016ba587605c24a25920c8f805d704171f441985d81149c010184815462b961d682315006022177a8137a5390349fa12be7efa73dd224a33af215e84aa4a9da18b4ab40551e3d4d2de2d32aa143bd4266fa4a6b5bd03dddbaa707f9ec21f22bf7c539d8547d9be1ce76d338957b99424f8f072da0dc151bb581c29f82049390b5293e67f2fdeed775dc3dc5e7ff61b212416ea73f491a36dca351f742e8498dba354090fd1abb9948fa7b13a5ef92527c6ee7b6d3fb0d9fe47dbe0fc920ef9bf6cc00042601d3286b4df486ad3fb7514fa02bebbab76f1faaa3af2346b63b64646b4d90ededcb95ad75d9d5f66353f6b6fb71d1d1066bdef3ebc9b7dc7eec8a3b82a6ec61906d13d972506c3f6012e409b2b2a5d228eb43fb643af486bdfdc9e9641bbe68d98a3a3665cded0aa4fd19be7236c956992449baa06ab72074a73696346a494d62ad1dcbfbbab032c8f3be82a0376ed4daddfbba16769b547c61b8499ff7e50d1139d87dd57ce2e4dba4652f2d6bcb0b727b68530d03129540b2c7fbec8aeba1f5e2cee9059f2f8d443884024919227ef7528f0787047982564a28284d9b00acdd4e4aee571a25f73d500f88ec79511d7407fcbc91ccaeb8f7c524dc4f94282e119d3cc98295ec92e993325cf91cd5588d3de978ba259d13100804da46b091935193d19270c4037a81a00049713149c66c6aa463572c30980e4c0736d219e9c02ee2f148d0e4dd6bc91fd09429f9733b2bf2882fd18928036171a7ebba26b64575d03e9d7e88a7d9061c93033dc9a091bbb51808f711db9ceccfdd663c791ba869b219f171cccf9067b90dd4f4b00d9d3949d2cf99cda426cb6fffc3a6fa38a6589e2c060110ee3d6caa2f629b1a8c63be9ae4884f40c4731731130f2839c96032b91731137b7b0eb3b81fe26da0a6f820d524e929c8780a524deed5e43ec658ac1c564a2badb158792c2fcca6fa923fa38865fa8c076969f98c969617997193e9d4fcde8d6c4b692a699446fe905464d97b913f249523c6968f0fd2f2119b5e64c65bf0a97bcba919c47497bbe022e34df8d461137965ab426ff44d654bf912b1c89f468d66e44feed7f147ce0c2c1bc96c8a364a54b2942319a805e43d7905bdd1a7e70e56f1c1e06ca4e375a467b2ff463a2d05f2147774c4f7414dba84511f3e4fb2dcc3e24e87499874921b9b9e90217c3eca88a55cda14cff3c498f84474223681e5165f8de284a0ffc61d5f95dc541ad5a329b9e9682604d53102320341695a5447bd52404171dc970a384cc66caa33c5a48c85954732bb62f17c46b291cc6724f319c940e28e8fd7819ee436953553eb59d086a7d6da907a9e772b8e3b3c1ae8ede79d7adebdd34681fe5950c7823aa00ea86341ddea9a213e6f1e777821c560cf28caa986ca15418e7a46b246813a3216cf234993e987c17210ae8878eed4a4215716e981fb789b119f8250d386fb8865355093c3604c2c999c78b06914fd117746b2916c24cbcdd2f22c199a4096164b2bf73f96d6ccb36468026733118f8834dd8a7850f904498127f7efbdf77af82451bbc231fb5c89638262514033aaa3763e41a01708b32922c80d9f602d6671121dd08bdee8df57c7f37a35aac9859d1d0fb70292825e59556f13d0ab55a7caaa398deadfd78dd915e845536d57e20ee8755fe2ce7d815e3f76755ddfcff7f3fdd4188f5d7526a0a93e10de0aaeab3b22f76b8f3537d7bde2ba535837b76ffa8ee6127a20a506fae3d61e074732adc2064870a655e02049b63712b2dbc8c3e61a7ac35e5482e8f628bb2225401ebc28884d85c2cb34c9d2b3296b7fbbaaa13d3fac7dc86e8dcf211b8f6a933b0cbbf1763f0435119bc7d07b587e074b6a53df59796ce89ade5e63bbf29cd9b00e8d6a984a5333cde25c0e4968add09f2b21586935d05a30ec388f456335159f6cdf757fddbbdcae8defebaf1c6223575aa3ecb91fc8d3cbd6be7d383bcbb65219833465fbae753da7950561c43ec9fd1c26b4eba6aa87c9b67e35ac11d0a725cda8869df4fd6a54c368f390c1d7900a4829482b155a5b1547ddec57bb5ade4a2da8db68e9354adc30d9b086d1b25f17779312acea6818ee57bf48f4463593646bdf3d6d2d1d62a3090ac8ca03a3a58da96869618dea675a62eba4513d046961b9edaaea585827e92555e74a3efbf5c2a580084ec22a722920692602929aeb47eedad7d37bb551955ed5b5d5d6da32d46c2bf73ada7c6f7dadb715df2ec8be77edafadb409d93c64735490fdfbd06b15a5820a4b45b6ef58166239dbb56e3972cccca050bfc944929cd742b65f00e48a3d6b83dea84782ec774eb6bf6de6d063764fdeaa488370ab6dcd6a6e25a529cfb6bdb77617d13dddd33d975291e220451d32254b22b73d1a25d39f64be30642a527a923c181b99da74ca07363c1c611385ac2610ec6efef06d140968aaeff52dadb7f7f4dadbdfd9b2d8c44aa552a954721fa9ad4aa5526185e18b08c3a1803c4da7f7c39389e613bde172a2a9555405f3ec42ae2d154976c9d40a2b5839b4e2f673add85a57a9f9629f5cebc595ca59a9e4d1efbd671199ee724a57347e6e6f390e76f56153772f8a4429112ef5a948f4d03b9a72294127204d7888984d3f8788378feef296127402d244be1bbde575e421c4fe661316429a5cf0797325624f2236b3bc65cb5508cb4d1fbd47194c23d159b010fb2ddb91862d5b5c89741e5d846f4987e44bbaa46c3b40ca170ba9379dca5bd65c433ab2e0d306d7d896d7740d82a53c7132cbc53bd8cc22be94a5d35174d1ed39cb71b799e3ca7b2b956edc712f2a4f9cbbe3b29430f8ac19e6b62cbdbcb64aa5572aad7a79e9dcb8a3841140f6911c56b154bed4d147986dab481ab7c71df6d77e54d21c92afe30e25341ef371c708e31083e9884679c71d241ebdc68e4acf743af230bdfee577fba9a41986d6207adcf1821140562aa3d7215954aaa6caf2b096dd470fc326e5da55743b7ad79685c5e292c90e21557c6e3f713819be75db3bef1d2d0059ff92439df18097579796c3dce2f3f48b71c039dc5f2c84bb3df7d16b793b975aff2283e8f6dc39a4f351f1e9dcc95b9611cb87e413874df81c92eb497c0ec97674b25cbca257965f6e0432993b49f98e46f8d4836616fc3bbaa83c596668b9e8dbd8a3e6968f70574708d43cbaa8453484943fc2425a2ec2425c6e5bf07591a1bb7d8f3e5c309d8189d8fcf27b8b4f187c4ff7b5bed4578e03c718eac183a30f920ea40cde0c34aa432396079ca373b7d872f8e25b6fc5a151fd1c6c0e38d40e752743a4e8b60c99ca734836ddd2b6a39746f8acb6e4ea080193e9a3515933673f2a9546a5bb70a5b794f0b9dd6251887c8d35b19434240a8d422513f7efa5342a5d7412d742caa59344dd49b284cfcea5cff8a83c5137648e83099d5efe9d4af22465130bcce9a56545fa42a5c9bae0d3cba39b30cba824bdc4f2f133b8372e89c8ee24d983e3489963c1443a0fd9327910493e0438671d2140cf21a016e9d518b8b370079da53c6f3279433eb77378082993f65b285476af0db8210fc9db7168d5c51900b192ef1b41ed8034aa7f38398d9471b0ab9a1f4038527e13e449633d5a75b6e46e400bd541b377f2f660745371ba1b0024f80049a6508e40e546a650a880921b06b467603a34b022891a08c18ad93e58d2032af927f7d93bd94aae39477a896dba1579358f8779706dd97792caa29bc7f37d3f7ba76ea509c4b5ded756893bb6ad6d51db9d75e88b65297610d0890035d3860035933c1704f9de4135cb665a05144c40d154bee303ba2c4299c22bd32a328562c52787db46850eb6bf5522ae34a84968a5a13feb926c9f43ddc11d3e360141d27c9a50a8b3772a1542060197cfcadac9a938bab25ae48962d9aeab544a0f677400cee9510c6a911e85628596c1d7d86c89d8ccbd2b371e417085b55f7f85430179d69d5b8f74ae25ed9d46e5d81fc8b3777650526c695961b304e1dece3bfdf697eef5f4b52f840241dad3b252b2e260d623cbb48a2b3a2e645a454f12b946298d9d39bc59ad245d913374f523878bc8768e46d5afca2a2cd72ab349ae6dce56bbd12aab3df7880e76556bb5ca83abaceeecb4eae2aaaa3a221e4688d2a82a8e3b6a9446d59e930cde3bf082ec9de6b3ca58bcc8de1b0ae4596535dc3fae2e296b944ed56fe0ab8c0919e2ea69415eb02c6d4d8f3148ee349f34d680565dec0131dfd7efb4ddde4b3b7cb2b72ee954fd0c8f0ec8ca23a3e9a0877c569e2b68aa5e0b8f0b52f60ab3ab2ad3e106219f55468d90fdca236b2ce3a97196c509243eb946a6552451851c520790d40ad92bd7b869860bf842bfef05be6011dc1cf6d70d829bc317132af9a4331d4822378be00ab1e5cb431d72df5e10bc2dc19c4655dc2d91459e54865f3f43afbcd7d2ebb8e3f4f0fcbeef212d65be3ea9ec03f1674f2f35fe4aa734947ec242ca53e6949e43c44c83f609737afa1a4ba314523acd326529a63cf988793fc613e9c823e632f8ac5906e6343e2ca4f4ef74a4a1fbe574994b039f5e86b985c13e3ac7d011e6357d7ac9d2db7ed954ed615f4e8f294f9729fb65eb0b0c16523adec41216727a29e632a77f80bdcc0364febd4b8bcf6f7f011fbe9872ccc17725579234f57d2b3d9aa2a92fd494ca144a0a74322853284254b1519821c9df06ca85b7eebdf7c93db70120532846c6c860a65084b04215ba8ddb6f59b38abc140779efbd17542af9fee2d5eeb35eb6f4bcefdef7ecc3eddefb4aef2937eeb8d872efdebd555dd7955ea36e67ed8db4a0183102c58811284672baa4508ce4e4ae39681bab04d0543f07bd6102d29e17a37e6df4df2a6e092b400218d9661152aae32ec0872c2291bb14854e8053e42fdb9256218523729760f69e745ae42ec7cc21217709ca612776b955c9b7dcf2d511237769b240e42e59722791bbf4320d724843f0f34628473081636be7200c434e70c226b65ce1a6e05e30ee0656085c0db81a7036e06a40adb56175acab46b32cdaed2ee5ba4a6ba595564a69a5b4525ac5afd25a69a595525a29ad9456d007a22c5fade62383cd603fb7765b7bc9ead5b6f6de6de32af8d14a6bad95565a2bad95d6f1abe4472badb5565a69adb4565a479fe96bf966c04dc1c1b81b7036707135e05e5c144da4e0a2e05e1c141c1441845d6bc57589308402142e57a905611f4b85b66d0df39b4ca4b68142fd30265b2399c8c6a7c8bdc87a917b82acb87e87985c710b0a6aa35c9841c96eb0d6be01d65a6bed7dc25a6bc95888726106459fe4385128177aece8d1a8fef9dbb03516521b67157f43a328d0281ce80fb5922bf5e1c186480e436ea04067c3711cc7755d8a87eedb9b55f260731133e17e8417c21d7ce5bc872f201490dc69f6b008a45115c5fd07877f00e1b613a77af824c336829b31a9bc998ea4bd0179d29edfb20135a61cad3a4d3098ec8a87fae3ea5680ca210495dca700ca051828954d1cad05dd96446e264916cf63115d10757fa2b2fdaddf30ead49d2af91e5e7b0a4f33287ea655f58e6f71a6a266502e80be8148f2270ac5725bb2b09427ef5890227cf24eb392d64d1459be614a93c8847ca6818f0796a24ba65540410605fa8625e489aa443841921a85cad103b5a4964f3ae302c9ec4acdde549c6e135fd083c3cfcf93dcdfaefc004285cba9b17626078ae4386c796c9246edd81d8b6d9246b54d59cb53b1e5c176c7b33b9687da2496c7eeb4382524c7e24cf06353149f37f693dbeedc96dd996277664eaaf7643c82e31975461d1bfb496339ecca7ae34de18ce77dbcf7d13b6b8fce56723da14d551cb35b8d3abdecbd7fda4ecdd386518dea3ed3ad9c6ed9aeab1deda9b1629027207def7d0f77ddcadd41413031a98deede16b8b27d38a3a729b6f5b65d21cfeb6a2bfdd3354bc3cd4d391e9bba0269ed3d575bf1f2c9b5ce2d96633cb9bf3df1449828a7cfdea3abd3f7fdde6fd8c6fbbd4d67c9f7145aab2afe596f69b39ec9d04d3b2b6e5acf1ad53d6b1a0f69bb67f446ff70ac7caaef7c4ef5dd56cb5def8170c7364c2a0672dfe1d926b3a9de68b9b79edc5bcca628de78d0bc4d416f981bde5e36b5c572734490169ff6677b79b3b36756063d9b219141cf8a7065c369db8911521ca4cc43097124f75de831c3941768ec544335b93fbbd0c396d5554f71dd4932b36d272a6f77dbb6cfa01a857261e6525a7986806ad5ab9e2f3c57cff34c9e0ce579af46f9d00245b9407981ea71d69aa44911a694a7eab5eea597ae3898fa7bbb2f3d22a405204de495dc27cdbcf00426f7edc83d47ab6cc533395ea002b9cde4e8ba9f33332fe4187bd0fac2e52eb68ac338c70c1364d3f74cab785831a50034d54f00155774be33f446f7bb97288293258a800489dbdab4525bb7ad6dbf7fc9086d8f3b94f4ade8f53721f577c3a646d9ab48987ec5f76218db03d284c50321a438c8991eb4dc7721070c34ca0b3fdce4ca9a32c70e797a6d226b4b213921ae808217f9cc91433beea014e69a6c985e60dae205a62d68b6371b745b8ae23ccfa3a9de70a078ab78a651fd2190278de5385f684014ca832df269b22f2e87ecdfebd17c7ea8480f9fdefd5667ac8ab4f7bcae9bb39bada4f56e2d88d805c18e21367278503c2d87d8a855487baf4d2db3a9ae2941f6392464ff6c19a903111e46986c3b4b23fa594740662b3ea4657750b9814e4076b7271fdeae66db956459de1cb6e5380b2a3b8740173dec684804eae847ef428f76359325a53746216fec4133a8a459243ae80d042b2a2d0e52449de4412597c3d7f2bb392c3d60237f074b1f363e25dea9876f6c984cb6d7f4164eb640120b4550d0ec996ca05099cee09827694f99965c4374452dd541756cafdfa80eeef55c475554f5d97187fd4a0cd00b500b9415282930017a830395e6862a4421f725406ff4abc9be9a5ce82a47995b3413017a23875d49a052316810a090832a21f78370034df5ec0929329dd9a6ddf57a955b22a436b659a3ec7b7aecaa9a7d6b6b144e87bcd83382a49566c309d5917996e4202b2bf7121c14d0aa25343115c70e4c4d2a925e55994d7b39f4550754c776939516159394d593ec1d3c51b95b30f4ea33fd42ab40a7cfd1aad0e9c9dbd5785a632a4de5a938ec2dfee82fb5e0e072a2f16ed95565d528657ebb6a1e9b5a75ab063e3d8c4fafc4c7311807bbaa3e3c34f06982c1a7897cc127894dd634039f2692e57924196e1b5640dd69d5b980dcdd9e66de9e008aea50a0736501284a0179e391371940f84440ee6e4f1af2466b832a9ea1373ab12469aadb70c8db396c3b5c771a6577d0216f1bae495addea56b77c7c7c7c643299ac9ba00d45ee29b27d53d13cf4860542f3d42496d428eb84eae8ee9e19371cce664327b0636c30b002074b00c35a8f9af9b129ef0824cda71f39fd7a51ae5bcdcdca37fce97160f5c195d628f02cffee41419e95567daaf97d09992b9546815620491f3dac22e92316d5610fbefebc4d4075cc38f85ab3ab91cebc59a3c07bf93b42f2a0335efa366b55ed691438130f0484a915f1a905c86daaf4119f5a70bdf822fdf141c4227546d92610c78af20e9edeecd59e0c52532ca9c5cdea21832f954a5a374fde733c8f6576359284ab4fa3c08f70a581350abd01bea66b8d057bf42382a499e6f1a0d703099d6a10bd3e88e855844f66903e898b886f7cfa700c150bb9cb5afbca66d11be0bb5a770472fba986fa7e90fac6fd22e3eb83f48b88ef7ba56512028563d917cbfaa33390362b16cb6a86ef5733ace50f8e596bad51607d8756a494b6057da4afb44be80df05db6cba6c0d792d3214d8d02df61b251206704796fc3db8c74fc91933362f0dc7344dc3c36053e7c79fab852e7f45dec9d0c7ee181700fff3d0c2f621bf021ae3f3605de063c07d69a4d8166d89d07edd7b3d632786a03c442eceba6c3a91684053599d5ac5526dbbad3549da1a9ead158be33f9e21d7410f30e36f96e1bdec126df9e0b4413fd511db4a45d3821859819d624aca899612f9104ccdc41941d17fcd044672716860e94263d20821198e0318960c5156466f8d5bc9899d5080cb288417141154a40e123c50744c4e0083f37600dc2789917579811c46899a18807463cf163862c3b7859416686231b5a052498c0320bc0831f12a7842860e6c5370bc842ccdc702599208c9719d2d20c255e2ed3f61643fc80c7ac2a904941c71ce207495a4820e16386db1656d03143ce08193233ec84906304ccbc09f5749144113533fcbaa8d2c5cbbc0940cb069427bc7899612884235576cc5054410a66663842296206323304f508c16552295498c8cc903c02868e198ac45b76105f44d163b6eb0716bccc70c484292d332489b7ac41c8aed831c3927823fe6220e3cd769a84277258e34107619b1bf1e3bdcd4dcb175eb0cced3637e11330809922a68d009b9bef0456a0991b667292a113c2bdc3f9269c02899a7931130ee3cc106f499f4881082d336c6901421665cc4c5b91e08512570aca70f263d62154a0849a196ee22d2b0c9a80c48e19722f988266d229537e30a351a278f998408082143133048700851ff4a028d8b384292fd3d624ae30899937df137ccc4d095170c063de904c68e6fdb6d980e765de7c64c0cc8b841888c163de7c62f4bc3013e45efcc536550b2e90a063dadcc8ec98db6f4251d831ef452c621b7a451445b84cf123b6a9489600c48f29621bf137a0ceccbc1fb10d45821742c04c1b11df847acccd855c7ff32981655e4c03842862e6c5f7856dbe1e2a35261e1124354d631686e0b22c50c28ce39e2004cbbcf8be88d86167d021dbd75ade12440529764c9bfb9bae42851f9309781cf3b6f4fe9534d87b6559636d29c43bbd3456ce1c539baa38a6b5a5902bd99ee6d330b383cd23b899c8cd5d77d393bddb92da154704694fe47ae56df8b02b7ff4004f40823480338ca0c78f73487d65f0f6a15789b42dbdec8d3c4010571c7553404e8ce33ad2f3bcee2613a8223f0a82750685a2b24ad6f7eb25763d99d6f46dd2a88ee338ef9d579eb8dbe0982af29635399a204fcfe5b9bc23ad84aebc1d9aeaa13a44b9be9342e98a9ab5e6ce2f2113943a91fb63682753d1c3a2d85dc711c70c39f1b648eedc58c3676edb086225f75b796336853d8e7eb1dcaf5f88e33c8feb3ccef33a8f6b91f5a1b186cfbcb112c7f4460fdfd74965b1bb5304f7d37b2704b2da59aebf3b4690de7de11cb2fbb52449925d29099eee182a7802336b0f4718f131434fbc65fd020b3de8984f1083a592e9c86c5646d440c7bce924c844baa9a63802cbb42228de925a015bc28e49673a08e3c7a44368c968666d018f949949b128830634330c714680220a9ff0960ac889753e66570abaa01327df7b13ea31c726a21673610b9a793193930f9c41e22d6da88f12996973737f1333031ff3e29078cb9b999c22ec94348c2858a099a18845bca30214e165de743e266d049c241b1f42f7a72017dff4f07b1a2044c183326e581bbeb02b962a0541274ea66060c1729936ac94dbae05750d8116e0041bd44c5b76f65edc4de3f45585202b534f96fb4a53d60b0d357b8f4946d21849ad8fb52e58d7ea8c669a913d30938924375af81e82f45ecfd5c8b36bacbc037bf16c3e5ef771dff67dd8fbb7f96c9b8e89db5a9b4fabaee01fda46e55af1a9b5d65a6bb94977e4dc689b4fab3caf4f3e42d97ba866ef352b29813d919b95b0704b342dbeb21e9b6aef1bad5101a71da8a42c93a6a9a0864cd18c00000000c3130020301410098562d16038a08bcaec0314800d95ae4e7a561aa7491043c818420801000000000000000240d000f7a975f1ecc365b3a1d418e87be3b2ff676bb57a159c0d527a16b355916b6be1b82c7529a16e42e37a374dde9a508387c283942ffc3f425695acc825546e5f8e807ce6d06f20c5e41561993cc2f80044e395809ad31a7a259e145b776407fae05c7d2ac8b80141d6287fac1735cc06ecfcc7f055214dfbe810733c054a09e4b07d937285cd6581feb8947de3beba25ead8f2c02c601905e7eca45323fcbf008c236792b77f9e58a3b469d6e82cdeac44315da0f88ee1e7840ecaedbfdb3e1fc0eb1abab7f15ed7e634e93c4e1cdd1fa761fe4a63e2eb88fcca873b7dcd0d8d066f351547c006d2146cb09cac7d9ce1dd60838d394ce8bfd1edef808993b0812e1a36e0510452afab0dcf9f07567382466e9770332fe08d316c40f4eff9c3c2488ca1639fb9a4725c0b19c6141a29acbf71600dc3ee743d988a4255be90f3e9b4a496a3e7b89a5c2def67ad928a8a9660d54b2aa45702fc4c2a8ea8a7894857d73b7c48df6d4d105ce7b90e27a8a8f914eae6c3cd237c2cbfff5d035770fd59160daa5245871f2d472c5596dadb7bcc755fada132c7c860a088e42c51912b3eef1b1a681aa873e1fc567c39fad407ab67e87b3d2daf4caee6c7501d95dfb44e6cab4c5291ca56c9ece478adcc8fe2ad36d98bc77044b4a1f556059016b7522cab61b24d90810f86598c7a1934c4b99cab5439c81f5ede8f7ebdb86aef47e028bd7e1170b0ba39a1adc4ca09380bf5f76f3fb2f7f89e790b16988ccd4aa8c61e1ead3ec53644af2eaf9f30bda13caa5a2f1bb41f1f7ba77f3e009bbdee58ea1fbc51e85ce583d8161ac2d7933cd22fc2ed22553300ac54376a064735d711dc9e59b578701703b619cc2ee5cc57dedcdcd445d533fe0ed91c5558cad71fd4fbfc28bd0fe8c43f2caf28f15c05c5bf5c92ad3dcf916ea092372d6d97c224f2a8610d957595c6d24caaf405a3cc84c37c8257694ae55967939f347bdd419e06ef1811050b2b4439b17d6e1ea59d7243bb6798ed4a6fc0d68d8f2f8562b523284ac1a2524c0797d75d07b853ced0f2ec63bbe675bbf9f0096d92d98ff6b5fe7ad9a2f238cc1f0cb1fce1ef3a558e83f586b00f8fbdd6a05bafb54514a47a5628a2fafc79eb10f1eea959fd4bf31e7878bffd98e1444da1aad9ffe4a6d257dd96a36ec80dec17c86b6dbd27f489743fd44cc2c5f8b3c884f9f3dc05729feb6783965426a8896b2f2f7d901030e0fef4bc64a94d68a8252aa8c295db97c971235e811eab121c7263cb1e8b3d96ed3172d2aa26ab1173d79a9b159c5bf10d14fd41d8c74a95848d4b26762d42de5d36415c514a3863d79a4b2959c9fa3db4e648c867a9aa497b0bd0372ea56c5c36c2b7a29a1082bad6d53342bad6a777a16b4d672ec74060772554fd95bdc3861c39246223a49850d8c72d97616b09511a3896691fa953536b9c911b974d1f048e138f1bcf26bd50edf0a316bd3adbf7442c120dd74ae71ef0d7d234d68dfc54c696bbecef5213be2f639b6b3821deaff3bb71d8cbf8186f64ddbeaf5ee7eda7a87bf52d9205c266b4d7fb00bc4384703e4ebdcb1e389bd82a39e62c350749d093cad1ac7eef3ce9fb32ba8be09575bae97b01d7ebc5b0240019c927020856a9934c5d3ebd28cc5fa25a5a5f835ffd1c8a4f577faa8526e268a5b22e401294330cbddcc602e95dc8587eac1f68585616d2b448f9bb82755be2ab5777f1cbc7984ad1b63468a266c1fc5b82c195a0f4f93a805ae3ae8a37964409daca101464d5caef529357b3638c4eab247923a835abf327cd609bbc2d997c98c71c9ce7bc88d6dbcff09e39723ab4ced147e75c502faaf03cb07908790b55a709405c0d1c0fdc88a2925d05d30f17689143d39cb0db3cb92d8617458510fbc22678dd294af2aa288fe009f9060efba985b1da4fb7452bdb1b33b5c02611c9d9b445722e235f7d7446dab519245481fac2dccd387ef3117fb9badf54560007bf7b0b26cda15256aacb2afe0335b72fbcabe2770dc5aa12019128324f877dd81cabe8b6a1309232452d75f01838bcf8347c12f8da73196cf642ec0a127d5c41086a56b8ec6a0599b083e5452111694ee95de64872931564e596dbeb9bdfaea1be36f8a109ed0cd15e9d545a5b9b64259c268656c9c0b45d733df331dc773bf25f503f3f2a3ffec76170081ea21078669711727dba945597235d6966c0fba6fbc26f504cb296c94ac77ddfcfe9dda55e4b182fe9d060eea6fced98d6930d50bd17fc79d3e342a64b890c1b81804d54555f80da95f6a03f9df44f46427ad7ba6322069501d0a886dbbff444dbd578ec9347332f1dcf0dc6510b4572cd3a1e70e640ca55f50de4a172df68d01afecbce68771276be15bcdd711dba28ac8f74088bf5dcda4f0e219b189c0af43d9193460cc7b4845d5dff94e0d148cb62c855699adde08df722677169fe23219103a62c7f32076a20dc9bc6741e6b4825b7cc10aa1f2e44033ce9da338e55e72cb624949d95c6c64577c3f3ad6ed31b345e46e5dcf6f44b6018e03dc50c7476e700c139f6ad27b2155910c353e5ebe9f64116d75fbe80046f98d365172000a4ef67c7fc94e5810ce1e8951235c5790c4c8eaf442d2dd25b821536a13720230f7c15d470f884e89fd801af61d18a34eacb3a14127cae46c820d513fa710eedd790f3588e5a221b4dfc5bcf01f5c6956e1ca5f3f09e138d52e22e008f6dff83e8138736b2db3dd46e50ff38ca2690fceda2005c52b93b4946dffdcc980146c3ff6f1aa660672e66a00841d47a66884a92fd70541d2a796366de5ac776b64b11e43a3d8c36361aae8cd3619c9c4469ea448f9d06b06d40a0f929fa1fe599707231076fcd7c66b01d699e5c36259a798f37627b882875307400be0594668477a9be885f04be0273d23d7f9041261aed93a31ce038dc010a69e52b8c900a48e17f62e5f77c6e55b233f18615f0af89ed67661f0d69a48b2e803e28934dd57be19e8f1ec010620751fe9d5611ef140638a4ee8542410425008bf12a600294318ee806a4908e47d6bf254c52e88cb4a8b186dd4498a42e691db4fea6d1d39f30f17d3ac5b3e6396253f683ff018948577765cd220acd2cda34b031691db27449c74219092080f6f8f18a44cddb9077f4d20428228831a892221fed43880dec7d96de52754e88e21a79b9c155dda937167b15f14c7cb8a89d3e305e0dfb544618f1010c9b2adb2a9e3f2de8b7a260e9c95f07b36fdf084e8a5d9519938aee4919c8c7ca39578fac9ca1497ce964c639939ed567ad125e17a4d3df358698f1e695cda2e3620edab1f99a83f19f119a2e9c00a395f12c5ed4599dcecc8b483e836ea5514f70942e81306826fb31611d8e85b6481951706ab9d3d4a890b436e4a7a433c8dadf1dae815ccb17ddbe7330324da753d3c8d3d364e5dd0a41e3c864782378b857236e9f6d38eafca1f462536526826c878e8aa6e61dadc6234f4a82e78116808f6513ba763e84e8088b6115fa867c2023ac6f1ea0782584db9b1a7dee89bf3978f2ca5027ad4c8d67fd719abc27cd3e8e0405b1cca26edeaf818b169f4d22a19457320b09ebcbc32c9795b3b9f6b7f78ba843b56fbcc8264834c7697827a8901293a03883decee5794510f0785862ea3ace74013280a40e47a6f3bf096655a8998f011a7096dd5e4ab7eac72bbb8d5fe5ce68419f55b932328ecf27072dfbc847ae99aa6c6424389e66f62abe3f210f39d083076830e27e7d596ff81bbf72dd3168c5845d6dc4b701621851ecc7ad8b0d74bcfd7b2c01a223c0be1841dc3bf6173f9c9bed74d7f543be03361d4a7b219a6b02397977ca6e865c29d0e2093ac080ce5ed35827e44be7058d190ae84e09d9fd90282e5e2e3f74974b385e474d15abbb7850edde985f6c4959bbcbf7938e08466fc6cf99cb425d9d6662ed551b2247b7900a2c6e7add6801acfe9aa7be40a2a3d6619b5e359309bb0725e2f13b898896fab9888a11f4242c367a8ae11ac7acca5a8336a343d017c24f8c9de23ea3bb56b484f572f6a1c3a4f360688638660de022ea1a1fea26aa3b3f88deff9139721ae4a5879d111797d2ad7e0ced5a620231885711b3edb5b7774b184b7c1d5f54ad4f3d2bccd5835481509fdee2160e328d1d86cb1df1fd70e47b7dcf05c7693956d3865865b7389a4adef6ef4f3fecbf2fa7a1b602f8d72606c4dddb0cd509a1178aa3bed1fff8258cf9537f4ab3a2a6db9087ed3a745e704a891a9b5f45e7ebf977912866b8ff2cfcaa2836ea40f4a4d69ac598490d5c19eca4bc697ded443564ee7462d5e59c3d3113dea99fed7aafec4f565b3354b027f14ecebbd8ed9464f9648e1563a743490cd05f994787c5e47007ca6dbae6b58366cf04dc13e6211256adf17284d097dbcf810dd171bd7b923ec052c81c3c8dcfeafb27d4e60530e2c1124d555e145b4d52facc62040ca3edc7d58dc35b72644e0886fded67c7dafd09399fef011645b5ed008c89a2ec77c5fa84395cac772b6685ab65ff5e108a7a5ed261f505e67a7837737637a8e7a01fc2712ab021de2a43ff2b93974d8df894ce336ecaafa91d2e8b5ce4d3143557093ed02ab5781c4ddb7e2d2545b9f429006e5ae792a85a6c64e6bae80163765232c284d7defe346d5a36700ae13a60edba2f23b9df8f4b835d9ef2ad679b94ddffca1ab0236c889bcad96a5453cf19c046e450b05a461253f3cc13cf192c7c0d539b2b11a28bb8e0dd25d40fb05fc4269883e50857e4cfb78f54fdcb2373798f33ef9573d8b17b3203c6228d8ebc10c5dae270d9f5053234be076f7c0c35aa267c8e57d2c09f5b9d394ecf4ec7304e8e3db93af883741072f815055082406cbbcf3d7412d7c1f369e7a961fdcc61eae9e2383bb5937bfe11c673f244acc69cf4b8353c4b5ba971359a472e5d8eb852c46455a0200f79a5839f434d10d4a5972a1e157b473ec4fc3fb1754f9fe3be8831262477a409044ff6db9e3ba230229119869a5df46a7ed81fd4ded130c028cba8df8efcc226625e9bcba3e24a84e56ef2ccf0d03b70af361d97e5c0954131d54f312d41a610d7ff15933a83bc063e098bece534fa1e14129b7985f67e99bb4621157b7af287662428e4b6f74961605be3bf44ddf240ace5b59862cad33e432fe8fd51bbc422064b2e42000f84831914375f855e0e7f22308d5c1a7edc82e3e423a7259d02baeacd1f7649308a54748039d691ee49cc3b0ce86762c66b569aa1198370e468e92a0b3efe8703f6a1ecb07a7dedd4da218e8636521d7eedd48aca6a7f3bf9204a5f836a13cec04b071495270c155fca0fb6b6265ff395c14021ee3d6d78e1a98500c9039670116a087a77c9088307c8dabcd30bbdd4880da3d4b987193b7b64804786d8a3c3cdc77c3916b15c796b68f61d4358af4d71c3410d684cffa480473eac59c45bd2cb4fed73b6822089fc94ffa335a12d67c8d998c1a4d6fef52d8dfddd84364944f3064a739ccd040ba09d34c3bccf19700f27599f03927960cf9df4a6a1b8cb46b7e27c76c50d2b059c41448324dc051211addd51a9a7366b0ca5f53f587cb2e0a4a964f135deb89144e83d7e3f553ac1342ce9ad2c52dc26610f78c03c332836b4f59a75242c399548a28da8c59c691ae6693abce577a1917aaa83f8512d8b1cbb523bcca7e3f718da81d68ab60e913134a8b4cb7f6175a19913bdc42054315094e270edf962c3e8f4e3fd70ad172d3ae64cea499f86ad183ec5030f7861c32b3ee9a3a2aa1ed539d43cfd2b3abc4765dc83314a1b354a9a308a905c44de45ddf534d1a33b9a6fb200736534430b25270cd39800357207e7051f1615c08a5a0148db9b9974f2cd0a2e6bb1db12285146cb7f14f1296608cb8d97628a75436cd4d64be6a03f4876fb99feba17bd5f6e0bd86a1a70174ef9bc289c34239f2cc22b5177e52cc76890ebb9c5092d17586e9d5489ee16a217dda18a827f11a9dc0a545791cc0944ed22a3c2529fec1464e93a3721e30e90dec950410176dd989b3469c2b11700fa5d416857c512b18063dfd7190ff46ed2a05d0fccae495ddfdac8ee3516c0d0aba5abeefc2f84b0b8e179d713b39ad8b3a6322c8709dd38454ff10a32a0405981b9ca8d05bdc9d78445862c83e69ad69c4abb5c14b3dfe925c3ecbf75e187d356891fd0dbe3e77946bb94e5bde829e03de588931f88601be1ff958ca21e261d511b95097834120c69c24ac2a248580a28629ea55916263e62b87d55f40aa50715312ff044bbcbc016208a496d78fe1f3503e6631673a98572f252043870b928796c8e3eb4e69b8736571a5b1c1578817dc89fb4d4b44d8e4059b74da9bdb098ade0730516796639a2d968a49b214b1c0c79bd3cfa9e09586149227d990de1a569514a946ef8657bbcd7379a65c8b8f52061cc493518ef52e41c836a50c93ecf28abea6fd216e83d772cf92f23a4c1d7775dd431b6906cb5cdaaa4f578f83888889a7ced09aa9e0b9e846741fbc743b605004ac36197c231435eeecf82fa0df5b08b3091e5e10cf1154decfd6318f61244591e209a9a418382c481d2989e5c6fa9c19d024456f11b866cb9f3c71ec74e859f4844b841c5a4319b4a16a2aefbe8508cdb591df691be674d9e191feaddf587a572f3e81bd7630f0d43713d62510cfed94beb8f8f5fc51bdcc310f092fca35615e363b22d126720eca539aee27788711e3a6fe63e7950ffa09903214ad85314b52e49dd9593da5e4e26dbc78e94fa448b951f3398a0fd2522b7b79f4291bac4203802f8d3a23c801a983999222d99bced9d8d91e0c3be7a78795b6db590cb5af4bbe006f7a9bbf4cf617b19b6c2a47bbce12b66d78dc1d5bbf4b841632b0aa3304a8baf4ba1850a10b4b00722ff7b9045c8103a729ee9c9c962becfba199f2dacb09a2db9611100f0d9923b6cded354a617bd9ad8603c5e0df0f01c7a7e9d9e1ef20322f941a5d801c9ce5a85583e119faaf944eda3062d656d2ce300167bd46aeb6c7d03146a24c609c074aed6435ae9dcd6c3e57f7f06ceb0f0cf14a5b236ead36e3af0ff762560247aa0cddff978221d485ebc368d0ab7ab8240a2575a1104c277d745908943c95c364f672b6015008f466f5a5f028fcfa5ebfbc5e7121f8313d335be5e81d6eed6c1b9b14d739908c85e26218d7d1f23bddd9d4b0fdbbd8acf2d26fa0b537f424463796220f014e8f080ff69a0b23dde8eb5646e3043e7271ee868644513a10fcd8ff5132b1c3ff67ef970eb9d45105cd088ec5d299331ccec58068881dfddfdefcd472d47f908b9d1e5633aee4d3482fee2116d2de01b4a25c203e6bb9a634c0dcdbb8f28358b9cf06c0c5e6c4043a2678ab6390ba77e36b786fba2b994713d08d30891a62cf96274228c66f4e98addedd8511551327631f59410fe45972e48f75350e1b95bed3ead1195f5a9db7a06ba95e259b69babf02b36800a6746162603ddc7fb839813c3af20c5f40758cdb407b77e15ff812d5c1950b8477210d5d1c7d165a1bb816a3e3a3da6d75b9665b7a25b73ca9e2d6ad7878845fdb717e3b11f4daf7d1d05d3262f4cc8f248ec5cec38ac3970d8ce6265d4dacc993e78b691a69acd1279c21ea8e343600cd67d1153525cb261ce722a74762d1b63291fcbb89131b7db499276d0ac14213bc1109fb5c182936d78205af74b1ac69533d9482d5a8f42d309aed297aa37bdb4b1e5606b433ccfafe023a9538ad6f7f9af802b08c7060044d1c5cbd9fe64a589452b6db525df33826e3ab78f3e8b7912f1886c93729ac6f6032d4b84fa77cb34392f7a8446430f6d2d8c662343c1ed727262c63204a38941dee6575fcb2ebfb94335cbb04a6f225b6facea5d6b6ed3517d8d2b216a5cfe29d3ba32c3625bb1f85c2cd8c558facf4e3bbb7521d8c176b13fffda9c9fa5d47efac5a20af7c38366b2993349b2cba9288d375461c2d61100d7a95ec70957b774d21a81bc025d3a779938201f1ba52b91299c87ba6a633fada7993acb585a57802084e78083c3f4d96e91dfec9dc2d961eec1c8d9658c9d3d66199c1e447830090e06c23513eef8b8d924b7db917296e67d7bc6717c7c5ed860a2aa9c8c8268ff7fb3228062d38662b7621c605ae8803d168a569863f42c92d421fa54b1978d4552293335e3199d7729af9054454403ae8bd6339f7ba81c9514bfb7f88229c76e380601c1dcf23e04d9f62a9f06b582b106f060dadabbbcb70d23581ee5909978ab1350d42ea25e8a345206140888b65270c72ea73d601a81aaa6e6823382dae9320008e758a97cb7f0f282ae4b2430ccebca78a377d207c4d96ab112a678ff1eca86d1e445312009071a7c0219d969e688bce4abf33ba629ef8ab6255b819573c4f8c7e89c1fea41bd6059eeec29c694d39d35b7362cdc081430baf7b1a791b2e35f0fccf15947b6e3abc68da1e7ed5f39d944897f198a5b370339ed707e5a46b99d03c106e847bafa7b7b7390ed4cde937cce407f2410f701fb595604a8cbc9bb19a4b55b6735aaf26e554e56da21f5fbdf3930e7533d100d108607b2861091c4588ab3866fdec0eddc41c00947d6ce1b23dd113a07a20de1f2fdaeb36614812bc5b98d0208aa486af7111f40313f62533f7b4a31237f2315a83c734bbaf7163a0167876cbab215293ca997960bea9d82e91e44fc5699dc8be73dffbe086277af735366b88f96b61bb0efd91f06ce93ee24c439c06281df8ef9be8ad58c1e9b9a308a688521803bd25d4d155bd963eba374912aabb661ddb1540708d5e1b6a2b3f1982730ea302bf455d5b5b6f3ea864d5a3e09adc2c2dac9a8d63f9e20171b423a5e28116386f0c732d2a1ad2f0450260e30711a379cbdd9580fc4bb3adc46f2c854c3028cb2b56ae5509488e78e68ba063ef3f66c8e30a1d29e476503d5d4b50ea1e01b0c8f9a49bd1628367ca3fe4d6c071667620b5830f8146cb18cbba84d191abe45b977bba22d61c30885f3f70cc5bf79aea404184474638020e9a9a10932d7f042c4847a899609f76d925024ab2b35e977ac488cd0d9cd94b241aa6fb6992df92e256d727459e0ba44c187a4ec75a96565c0383dc94904c3eecd04d761484f4fc1409e06cb9cb766801e8b5ddcf895cb5459ce2d6c6a3db9d2de516d9e40a3b66b0980d1056a93e39727b78476eb5bb0a8e3a9757c566e6954e92905e70915b14de48c4e532380298bc60cbe3763c595763f38c75be1cd012cb1fcce48883a4682a8f348f8904199e7a789b4a3ab674388defcf957dd9632ebf29eec4fa80f44481d103e032fac7c6c9cdf24eb10acf81dd83f071eb172fe2b72153591c558ebf7435c174a2ac0fdb960d69373f4ea41551865887a62bc1eefe32b8864a86a116243159a741482f7ef7a285b1450db158df3a15bf800f6d199e7a44939fc549947ca90710e3b678b12cce2b7c7cd0913054685108e10cee525c42a10b3b6b1583d41f1b109a2dc5293f5b0ce3389a51ffaaf12eb53208cd285b9109c34997db8c7996ec2c61169811c1cba35539626b420ff540f5537349da2d9d2ae2b0197aa2a8f0020a51ae9bd3349d1fc2764da04e39bf82260cbff9410361249b7f8b4bd168ba59d16937bfb6a834fa0d92e27dc3ed751287ea8f49a89ce8f429210449b4bb507fc738983dcfed67b11e32288511b4cd87f08a2b9ded83d2d537539b5034d25ab61e17060d09b30dcfb57d9aa6228eae8d68972bed4abbaa29d51bd8cb0eb73cfc29a9a0b0a3a80e6d61ca17ed4fd80651a8ccf85111d50e44be1bb13045e1eda4cd4f4f156035a0b3a0062adebc53697e49a4628a6822015faf1d1c7d4820d60535b7081d2c9461a72bc42ba4a3332a558e5991886ae04ce51399d37aaeaeb134971479f434a5f91f2b7fe25ad31aa135fa448c2c4c7e60d3a6f1b38d4ec0f30ee5ba974a2ab39c3f1690872ab7b30c46603f1eee95267af0654960a89741109d9bf10a6236747762d74c566b42b78a249317cedbaad3824d2b0ac0cc87016b867cf322016df44085a2be8b38af11991bddada6f1ca2fb78ee1626e7fb2e019108430400c5136ef07e902cd994f8d9d87a18cd3d409ccd4491e127621ddf589af4ae6b0cc3a6c8ebeb30b0961b51bac4b7fb713fa6dacb392b8c8e3c7c71e86e2c81996962ea607e8a8b4781625d82afc18ad45a7800fcffb970a3ed68a100b9d1fa9aa9cde48c20c8073eb93bb97d3a9c744e3a8c07565723711ea4ef61631b1582b5b9dbfe0be3bf4300124bd5fdbb2515e7ae0329a9a2bbd223d188c46f3accdac86928eafa47c2a356a4716bba7b5b35d3b8980aae7cf257d248d4ba466578053a1bd46adc924b549ad14e22ae36e159979eec148157a0fb60306ac03745c8b8a70de5005c2c50a0869c93bda05a0e17163a44509541f02061536b6015fad7050060dfd92598a117351da460e5706d764280f81f56be12339ece7209daef937e81f7cb9a3a218e63a99c3b7a5283f86bb65c73997f96a2aa0205d78dec63e21870503bc3c0291fe8a2da5898d7878a4a93bd8b0d5de9142a51fd341c16231e5696c57979d704896faf7cfc0bddd5b9b4098c1fabbe6dbffb97e4c49ec65e7606bf51152cfa0b1e8e0be738194c2d92969988aa55139509f3f3d5410ae009924c66319a19d90c9bb853149665e5fc5fd9d9186ec9e670c1db86e7dd5798020d8d45437dcd975b42f541cd462fa5f6e439a968271322036085f2ee3bb1529655997c47d0d629d4081ed7c6c8401dba66c498c4fdedaf126cecb71f86ba1b8a9b4510d8b8cf30f086b20f637472874800e05a52a6c966c27b8273f8686c3b28f81b0467c83781a929284e5dc6bbaba6b2d8ed2e8bb07fae8625f67d1ced08d7881f877e35030429c2514ab96c5622be194600a3795af496c068851caf56340d875f3224aeb499a7b783307484a87e89fdea483bb95d6d7bdd8399ec0a1b47425b9b29d8bedb016788cf8f9578c0a517f3b8faba8d8a0df4c9fdd8df111447c4408b661255d0cde50223a36d082f4a8a7446c2f38721535abd6c6945090c6c56d3618351fcd681b1225259da63c58d2e5b0b96142cb254ee48efeaaf6d8f2cbbd6cec19ab209d590104bd1b12bc65319bf0f73dda257f1569c5c273511c42e4a3a923bc5a0f64243d704d839ca56b448406822fc28f9b1fb47f1033f9258ef5f053a7dcb83e7f64f18f6277995afb2995f7810cadfd92a16f2bf589a3481217aac4ca8b750d926afed169206c949cd9cd5244ca6878ada7e18458e371b1867dac803ae78306a7a4ab7dd9569dc33626de29ae06d87b323d7ad116ae1898f31863ba6f683cc8b9d0ef316d2498709f39717f2dfb0d154d340d660473f2ff3b57754f8a1476b1d2b6802b30fc60b1d4881463446ddb56ffe8991139e03d3cb854a6a91a1e9f1ba9607890efcad88aa25dc11bd8738a1cff2072da9fc2ca519319e8a11efdade016d3c46b2c91437fadfce92cd965650dfdfe9353b494133fb8f694ca1b06a84ac42c47bc8de842916d2aa924fb532ae7b1b66b8917caac9b189b6e0690e2e30dfd2b278b3fd3ba456f4eb6a39d38c6931ccff416b51967fba3a4281207b9afdb73e1200750d0e68d61aac3dec885f02dce2e05456541d296eacfd0c8de65effed5d0ad28504f97aef5fb1a03dc40345f3d88c4e6cd313acb21e5f6d3310d939c1f873d53547b99db198dc1b0e93d9119ac6f65df1ae819d9bc042de48246707bdb16cafb7f7de92f49e24542ca81d802bceb297230fddfbf3cd7e7021d7b7ce41b29544a33c592db10d9a10abaa50214e954a2064ee88ecbf1e3f63f918896fb4aee521fd222fa5ba513b59817aa05a93272e69ff648913122d5e17ca227d6e63928cffc4ea194f0c48d454a485dd6689c84b8f3ca83af32e177950f481f8eacbefd4cbe1c39fec2c208dd354bacbd9f702abd04815fe26868d00344cd52ad64fa4e9339663914c7a0e2722d697ec94004e6a8dc0cdf72e4c8d3e0827385ac05f660b6c16aade2c038c9d90f299e71e91f53f15fdbfa989b781c904a74590a03544f7e719a4c255d60056de70f8d5b5722afda5455e000ec965fc02a7fee20c417da3c6972d938bd790b1cf677c2c034d048ffae057bd5f1da29d0c0c845a0969182960a4c6ce39672821d007fc0b2ad79ee4cc1c0daaee4b6bf4bfcce3f84b86b7e52ffd913c46585572bc874c648528755d410d86d02070a204540708ea3bbd5f0f83e20d4f0908075d02ea75af132a492237b820eaaa127f445df2af45823eee084460493e2670601e5c24564916e0f824f37e49c8267c5cca9433aec94ae630eb684944161dabb137c016c979072a21039cb6be08b4112853b4bbf549025955fcdf3d892081ccbd3f602e8600141db59a69323b4bf0ca2fa85b462768a4651c5001e81c5470c0643db3040b38bd0a55fff27c86185786a4499ac81f35695c4a74aa0c0c4bf77a8f33352dbbc33c6ec93253740a97c21f82278c87268de28e2ea5e2f82cc191a709e953c0898f2bf60873905082e30b85eacd25ac2724910070a72b256a62adfca0657514e365c62b526ebec2414829c6e31ec6847561a5a7416fff9c80f2c887776da443d418845ac7755535bc285ebdd321fc0455bf5e6d0292ff0a4f408336005b66d83d1793de3ebb596dc9f775568812cc777f2d267dfb5ca7da978fcdf412e6ec7c20e5ff4a83574f85e68498b0b8922b806c7562d8a676fd50d80895f5182008301bf92f617c20865bd4b7043ae85dc3f9a85fc2f6c9fd68374025dadc037f405444aefc78b6a1ab15da3c49701b9d026e0b4587249c03ffaa2b27a196361eeb8079cb90ece846213363db03f220dc7d541265c3fd9bb7e8204d01b6285832023846db285077ca203fc842ef82ca98b519e2481e37d89901edd786b4cdfa95c5c440b2bcef325dec462838cc0f9fc95a638fc04175586ae07d0c37ca322b92e8f0ac1c3d294c693255beed8f5e35836916d6f603bfaee3d7b8fe23393180ec95d4362a928b056065ae4b17afa81657a2e345ff6ea2affa8977b0a00a1436d568cbf43741097085ced91fa390c2e3c0155b1d72b0a7b0f2e43af4db43ce49854816cff28f9c997bc8610242a81ac41f98bdd607261e831540d8373215d659fd40be08efd6365351a485f07f7fcd5d75c28205421827baade14f395b68a856c605dcd223ad3a8faec27526212779a55c70565e8e635a46236da95ab33ac165dc65a507b6cbd8fd8f29e07be5f62149ef2a20c5e867120d167ae288e72faed4a78961e8d4726c3f505f26e0d843a9a442c31c2a44b25758f9a4b333c0f9c6cf17f463ad1375659e3d89d8b2e42db819075bd7891db4e69707e55b50dfc57e2341c909486aeec7ff032538613403769e5ed720d356d38c66f44dd800b87f602aacead36403682928915fcf38d1d4a74a4c256c2ff57c83abc5893887a953880527f1eaca4d31058644fe52c2e387345eb95b8fabcba070fd931bc67047d4a1cb288e7a467f7a7b4e7388401ab85755cc15565120dd014a877de189d20cfa44383aeeb2c583c586eb1207960df4a2fd5244b906d564790a16487acaa639d6430972de7e147eace058c75d05ff4ca77ced5083d9673daf69b145d872353e404e8c483ac22fd56abd266ee7af2752647fe6b42415208ef5475788d5962e6ee0b1eff88ce685debbb67c30a5b7edc31227eae6d96cc9af1645cc62281effd844ca917186d5caaaf039c688be61a555d2035f449881e26d309f68136967ab17fece95e2fd5d7bd4aa18c69dbe4860655d709befae3e3b0ee14dc9dc1ac03625c906775386d8977122e7d0b26d62c9fcac768cc47a6da43c172b030b7339f567ede09786a82dab563306342ecc2d4a73a942e4e0e9ebf1a695eb68453e36484014d0ad580cc19b3a1c989ca0b3bebae8d15be4392eca35239a6322a9fb23cb4dfa810f0ae32259e64cc8e8884a7e4ee4fa60d8450610f48d09c4a347cec2460acbc37f5a412b8107003f833c405ad26c36d6ddc33671d9e665283a7109acd8e70774e60cbea65aee910b4987dfcafcab264854438d9af1dcaa6c60da106e4b8c2106e566edf04bfdb1a5fc5473e80f3d5e9b03c0a6c2b7631493010a9e37717b5e24e5c948505919da928bfc393d32a37921059341070868bb90476d9ff0e225c8be837065f01875f30a73dde51f1c1341a90f00258b0e1b489f4e317d268af86590cf13db9124d54efdc376821fcf2129ca7f2119aa321467a0d3915621786e71efe284f203767968c7793e0c3d7c5839e8ee1dfdb26b1be93af21dfbb7f43e2b232658cb1e19429b43940851ec020a03f5e0a54f347de7ef798d7c3a61ce553c2056935dcf15d5d292ad829576af84e082e673f9c5a76cf3a72f984296e5574617ef906bd4b2f310c46e04f2eba41da8da9dcd5441cd646867a26dd4601effd18d4ea44cf96c80377664b0fd7984a9f1bf23dc603fcda19b0fec2cafc67dcc19027262b1f25bffb7dd57c9400af2184b4ce489749feb202cabe2874affcf89a973c80c85c57db5c5193e4e0f56c8af6beb1d435d410c9e857687c9441c095b47b670c57487624182f89b88411d92391dac38a61da44023d670ee99cb8d3c92332035c97827b2243f2349dc5da26c5d8047e5887b1e94b21af9580a0e9623081c1b5b662736df4f9da12cac74de78682e4942da67de90b7111c66b1fdaa80091a19b6a32f4229e156028faf46322bf59ea8290f52b023f3ab47712e542871136c708952cfe5554993dd92dd76bbbca317092e21b0aea72f565b2ab4c933abff053055853733f64befba3bc189133aaa90f4360a91f1bb2191fb1aab655416b2f8aead6f51e7383845b65662e8e606710e1f256a63430b36c4f90d8b723c72a949e11a01992e8cb431b482cc1c450bef33806b2771a10b6674e154d93a9ac5be5fd46d239486192d7e0d15c7a56f166de14115ee97773ff29b2832c55a8c980dcc15e65755eb145c0d656f39688f561f5bda780592ffabfb3e4f6d3dd874714523d94773ae879fdb841174927340eef4b681f1399698250461b6fd9881a66f6fb30551afb3c35cac596e95f767ab260289b9d2534c38e09dc147182f33472137967664a241769c9e20dae4f935cad54a3015b174613d30928914ca8bee7972e3d8efed0716b47164dc95a4b3e6cc1a51f773dd20325fdabbd9452bacc5ce030a13a1d20d24938d34a371194c50cf6e1b4125cd12e41f5d324cb817a84426b141ddf4119f4033162a3f199812f265c0b11e7f5e3dd4fa43d38e4ddf4182168a7b0f9302d8fc18fd6046b9980dbcebe219ed38da2411f49df5ea67100a09e5b41bb9d3a23a4234a6efc26745d32486bd7ed1377203d53b9e4641d89b297805e95ec6e10c27cc4c9b023336f42142c2206998edf8a733235ed410e13d287bc84f138dc9dc09976489c624c2f46b723903cf15dc878821817db89fe17d2288dbd68852039fd223594c2368aca854a01cde024aa8013b9f82d6307e9bea766e3d2b4a79f91f538bb7ed8b2dd62db190ddc0359afcaba6ccbe71c56d67d4b8a32ac03f5355435d74b097ad7cc8b97470371a887176829b3b85b1b2f8a3730a99bda517adf7b4469e46869a6232c98fe58baf8ca1a0bee9ca7b84b5a77a8badb83112f541fd57050e537d439182d5c171bacb99af60b15498d3f21761a23c443772b7997666159b872b76dd2587532a0e185604e3c50e89b0ba8854fe8343c1181f29a6be4def67a704364491306cc207c4e0b998150761fb3d10633a142d0d0c1579662869ba2cc061117334c34b8ea47910c259b1aa9fb3552158d835a46f6530c0fa01de51fc5dc855f5d8435b11afaf785d52b7a6398253614351c0659b1a07275767419655297fb1218ff9cc9376d976c96549856d1005f5364843dc0c42a9a2a3d78c54506e6e46799f688d9fa2e528aa1bcab20ea229f1d728291045e99955b724cb01164de95603d480ddf2c59d8f8dfc93ebb20a9b996086c8ba1dcb3da9e9b3721c292ac2cb6604bbe7eedf68685172895647805f6d2e06ff23ecd9f0e2615663175759b59bc62cf1ec40bd75f14d03ab2bf9a0c6967dfcb49357a9c5ed82d03de6b902a084350c0d04bc9820f7eb2499e08d4bcba15536b8eb51a32a75d225473197ed3ae3aa4d446cbfa7f7dc7e6da66364336492efe646cdce25b4fc09a4c0dd186ffa9bbe3662f72a826b541b35f17668fdf34b2f095629d0b292c3b508ce45a80de3e3e7da3dc8e4633046ceba69c5c2f1cb70cd9d2631deefaac278aa300b0663935cc74c491a12c92680c66846f5c4a1558d02f7c3536f148bf309268ca37bdfa6ecdc9c16cbff0fba9664275b7e50ebd0038895bbd28d6453a4b20780fb3a0b5a116253722558d7f2e3bf17fe38ff2240beb2228c9cc207633c1b8f78f9c3bfaf480d2943fe75d0fa67370345295c7863572eba5877d01feece2ba2245ff8d708ac3a2077c75fdc4b84d54a0e11a52ecc01a9c06a236d8c89526555d37062c09ee0b5cf38e851b96272af69f5b0db706e307ed1064208509d72ab8747cb2cf0bab09b830a9e27a323ee213883b358a30cb4ca24505a2e1c67522bfb827db8803745c2bb5327ed84cc7e63204e9c229298b0a6a6c756a4cfea5333a2d3cb839cedce487780ea98291116a1e31e2900483568a7b2d0f0623746ef5528d5e25329c84000f05e20dbf08bb5e36b94bdf08be1ae940ec406ee9e13fc227af5fa04e5860ec2658f1d08b44241ac4f4befdb8afe86ab18626fa8e1afe2c1e144cd90706b01c7796fa392cdf6163834285115619c48528a3a19e56bade1b4b115fa103aa2325e4050bf7f3fd11f081677a486f733c3cbe540896d035788f6849e5e78f421d4c6b1264651c8e4a42253ccbc7abec426dab17ed8c6f876b1427fbe8989b6b8b45b7134d038a935b13015131132774e78c7333122e03beac278d0a874b810045ca2101c99b0a81495e3025f0b84babf2156c4be334b99e0406f5f229b49715d6c0ca8de9f8bbbbe3b66735a63d54ddc41c15b7de254a1bd0255115949d30fed55bef79b81c2cf383ea415b4091cefd4387eee09b3931ba561d70ea2fa37fbbeddf3e258c45db861b05c0c60ff3011315b284ef4d52a578a126e2660a067fce79e4fdd9b019b4a3398eadd8cd958461e3fa3860c397c805ac543b9d59287b952a98d5135c3f98cafabd2e2ba56c198fe30497f1492149d73cb81ca62af1f5b9b2cbb5da673f2ac71552afb60707692e0d3668b6dd1d13147c09d344e36c8e01bef3ede50ce3d9040e407198c49922a75cf26ef7ab44ad25d60b692c4980ce986aec1062995d48129f56c640e41e2fecd789ea105bde9b5cfca6d930b49a23e484dcf90b8a4a342a1d52190306c90c16a8cc8594142a74a90062db86dd056e1511a6f0dda7e3f0062c083226c18f19225908999252854f2bb111eef6b722e24a504ff57be9a8f007e2d000580628437d5b486296b0af69eb32f919bcc329cdca43106ca4f0610523f67c7e38fa2c611e0d28afd87e4a58c231a53e04ab87f6dc9a78f50b09b48117b79f804c6631f1ce780c5baca9696cfb8beb26991878292ec740ee095d89e461eee01f2d090d89c5f52a354a40110d2a6028fd29254620d5882ecdbaaf7401205313b17c923d9763f75ad57a3316f9b632105e14a0dd1c7be81f6f507a22585269bb0d1c82b74900e8b057d4e621b03604f5210ab01cb269522db7fa49c8a1ac17e5713d061460a917f586d830550e2c4afc19bd4aa532e21a358175dff6ac9199598c68d9f27d98b07cf98e267a3918aedd7fe953c9d6c26fe1907d9ad3bc35b984f2a9332a6d8dbfb614ba69d0359e38672c2200692251797a061e332721beb87cfe7741c4ba282b59655570a85932e3c0db4abacced47015642198109a39da58d9a14d833c6652f10e11961d5bd36ce87748f70eaf2ffa746300c3ed574a5778b72a3ccc6dc8c7d31ed2d41ee8a5b02df88a7b0ca0b82271c69a4050a862f378306b0e093be3e374111026b26524b9ff6bd2d80a3a32176b0c1e82d5362eb637acd40d6fa69a8adee0f70081d200ae580c054d907820b0210a47279df77e72ac55506cba2f006feea8098ac4dd4d6ec79df0ffc7d3366b82196fbc95ee971a52d17d3e6a45dffa4fd29996f5c4b2ae17839db4d3615bd773ffa721ee0912eaf165bffa83ca0723e9e90d42554881ec0ccb4fe5de60991f4d8da465f2776a9893d0b3345665e0e708e88684cc4f4f4843e41218e44e9bd6b63296917bec88923952a5aade34e3987253108d6e6b6bcfc0dc2f8f56c6c6b48fb40dfddff6193f7b7af60326553a2e8837f8e9e245940efa1f694f89334e62e7e6df8b256ea1440f63ba39a20a4612cb323040585c7379f0f9f9d0aa2b3f910dfe6223f36bdad9f4550c7f152187fd844d5121d6c10a66190e5cae798ca330bbd094fcf00a0cbd38ad237d3675499d4251480af84a1f55b47cc156b55b8b4c63035ddfcfc5fff5c403274af090c121dffc852df5d8d518f5f561048c71591f928459ca359b288a27a7df9ab4237b0ffce7d52b796719561cd5e5dd4167003d7862c3fe5eb1bff619babefe62d3b7743ff71719b7369b67116a43ee61f0ca2988b52f6a3596c3f999929a71de1aa614157c8507a811da28cdd8625022bc8e3d61903537c474177f4ebedd2abb38a1a6514ff6b1da8cd88aeb6985d37445a1ac7ed1405c33e1a8a3b3ef163a8d6468c081f5237b3947cf06675f2acd059a3ff1aa8c96352da0d4173cd3b635d52cb5a03ec7a41d10424923a7e61238654b32fa4323b2d2a9ef97dd1202cd9c02b05f8ddd93496babdc1bf647300c4d91c737320611fb0d3852844efd97fbb2bb6e61b0a5b7fd03336c52aaec4ee0fe162c16a0a2816cca4684fb56fa638c3b4b4dc2fc1b95ddbf0e3dc308d0c69aa8697d53c8e1dffdbe4f7c57e8c2d0bff24af91a7068e777437bd87cef99b2ce7fd49ca12770c86f8b96e72f626d2983bf5f2d072c5ba9bc2f175a1d3b2dd4841a2fc380238b593d819a9f3517c68c889bc559965a12408abe2609a2af9e9f206fd0a6d772dc0db63e70abf96f3f2d04e406c0e8431cd69d6600c8599d05c0c3c7aa2eb1a05a73c33fc55ade9df2fa8fe303ef92548653b91ac771e4b0f78d005a1248f0a40f1a226a0b7502c554eb21edfffa7d0d52c679d12eb07569f4eb290629ff6cf6cb3048d8eb5f9a55cf4a4735c8d1065e5ab5ed3a957e9fd25f4f07268468ebf54fc9b412a96159fc9f6d78fa8f5c3dba26f4248cce9299053ad2c35dd60a1ffa3338a1f9807f182781510f815e38da2f435c187ec0c8e9486fde0dba6a5589178941cbbc19fe6e2a4b95d4e597ad5903413e3755611c32019eb9de5f6ea7f89d1be93ba6f30527abacc9c48984f262e8173ac31ca732ed00b156c78837d1addf6c0a5908302e5fd15cc3ff175067081dc89c5c3a5318cbbaacb9bde0ba78cd258d4233b3e0a5412d38f3c56e91ed08a78609debfc46c049708397bfebbbe4df9fa47c50608303b19e226ffca76454b6081d1950e33f3d3d901104ffbb37733a216b4be6126d67fb3bff5025409756da0d4acf1d28a40d1a3b80b6babb400a526959ae9a5280bdcaaaf79a993e1e503b565a0587385a6662560ccc673328e5e474ee1aec432e14ea86914a6007af3123d7573ff4d1fed9fc6e4445f96a0b1649e6323fe8da8264ed4e10c8ae223e51c89ea1d868ca7ab4cc4e8c65e7c3940b460e728a4c22f8f644e948e69a444bc3c109898df932561764e84d028623867db6cceec5dc4de69fa24ac188042f42c9cdf449d06163c8c5b6e980364f8ae0ab07cae26cd490f5eb1d25dbd0d7f155599ca8191cca3f91f1b4037d5443d693016980efdb4489eb5dc1469304e242fdfd631ab12c427e6a21f5b41ae1d01b05301d2ef8000f485a4b134604f9fdb8c74cd7371ea5a33bbb7330a0f735f544ddd85e632d3bd6407880866cf9ea0944ac483107678233b36a0a2cae57252338d986401d7dd55368068fdb10a2a09366973ce563c730da7d8bc53cd1861c067cb98c2f5da9bfa9aca912e5e0184d9ec0211a126ae7fc7edfe03356b1f3c53b660e14e2b7ff797ef886c1053e589af9fa96880d13874aeae903359233c805991bca3cc5a01dfda58161993adbf0bd896412003abefd28ebe0c335c1a038a1dc357118b0571b086af6c04272c047733220def64634c4f09ce617382956491b7212592e222267610b40bcfc100fa20893b19e2e4335c9c96e9b8f1b47f578a3afa6d059d993691ea6f924038ac0bb3ee3fd82b59b30516316c877af657e49c6cb8c0629b87beb0ca1cb2dac4ee24e98fca6727ab9ecc22d3aa0f17e6b306461cc5a0fda26e28525fb7816d02316167d24fdc2d6ef3651629829d1932d69ceef3b32d133cba438e5ce78af8d4d54c5436f5c638a67d51a340c661933cbbd9e056a7eb123b42e2039199e0f743b0cf704b2a3553de859840c155c7694a4708394552af1b906af17651134992d07b019b70a877c01c2b11900d3042620551013e67e2b704fc617852fb20a9d097ab426329d73e197be9627f837c3fcc192f299c32a49b09922d5c98cb7e408f2e0a4a441bc58bc1be20b9eeef7c1ecfa1572ea6705ba3144092cab91c47fd0a516d50759fe2764033be5d8815d2623667e5263c107809a2f8706dad399650acd35dc547e258b0b060216b6fe14e3fa46f0934f2514a39e106b401e21bb13655d1e5ab3cce0127b900eb3d69ea89bf3ddbbbbda7ed1364f237a92cca38524f2e02164daf8164f23f0f948778f4c6629b887a6394ac58fd4e0ece1151efa65cd5c020a570457afeaeb5b0ce050b507ff49a3d206e38bb8fe0a2200666b5c47cbfe394834362063b15c32f885b4d94fee09afee0c5f140a44abad32b0cbc9ff66b7580f4d1833b94c98e9ebe00c10a83a7687c7e839a3c220f97a4d97a56bf2f48ea5dfd0b383a6e4a4ef7e9654b1a6ac24f59692abf4f7a893d8e7b24011a306fe991180d98ec79658bd68bc1359743b88d816de56bb656655063149ee7bc93fd056f80e0dcee3bf0ed4af62e56083255dc167cd02d22f172d02c89097cccf579c34ecf0cedf5b6c7f700cece27f482f9ff82bbc9a621ffa04a455809cb32162c61aa89fe3e935174954298758faf3b65f500b59cf524d439595f82ef59e146982a52124bc8d5b371c8ffddc34211fc88d7e525376221a7704610130c5a738eb9df729632ad86593b2678f03c693173d9ff34ba0df16379361b12708d4f959609a2a7126efdcb62191a8470cd41f1ef9ff69617b197c9f5cf673b3b682064804b91645aba20aaaa2f58b4809fea1b62e92516086f3cefed94fbfcef371ffc5997f5e415b243db4fff1192d85b2202413bb5b7968bfbe4378478c2d4bcd6913c6ea339c204be367454d8ec87453afef800416eab94155326c549a98b995544c98ab19d68ee0e3e6c18cfb106360b420a8143bcac0ae0dfb8b26604e4b909146d9932014aad0c71d5e1d9827ea9c7bcda5fb04320051f129e69222e540eaaa414bd598a153736cc642e885a9251c6e8b9b91a97758489610ce53482af84236c8e438493fbadf84e61f6080851ab96688868f39923dafa41ce606abcc6c334e55329d765bce30add94088d519dc2d1369de700f961ea4015276f8a64e857016fff32873036028ab09fc567ca82b7c5a1ae5920ec8cf5d8a7b89b2705a0a0495f23e9f1f5e7f8607316374926b72d846107f7ec01bcf93bebf4c841716d4b5790a6dad43be600b26e9d2855f05acb30ab1d51437da23d20d13e1786aea610081ddc6d6e295116abba9a0c6cc539cab892bc4787002862c52a04264aea726e08a807519ebbc1286a423c302fdf168c87126585c8ed2a93358ae1e90399cfa6c8ce40521897ce04287c60ea9797db8139f1cfad83309bfc9dc0ea9636a18b405f7b15fca7c7ffdd40115d4bb035617b7bda943ac47d4313a066236c22efcccec1606222217fb7c67f7d6e0044b3cd3c8cebc4d04316e1f3eefe5dba756cdc237a774f2c977b334cb40d5163664bbb774ee9f52493a65b06c252bdf9559d8ade1157a27d3be1d6889aa4fd65ac8639c67dea0908d131f0d15bbfb562617639147daedddc6b5ec928cdb7809eb22f86af0ac690a717dfa0437bc16aee48c8b3a4696f3e45d1bf45df9bafd0c064b6564de54d4fc72c1ad9335402a3237741d11073f7d70f678a7c6d6de930d9a7659020f0d73e881dd3181af400d75c1c6457c50294aa8def1c5de2658f6c397ecbf87627770b94cedc153a583c07b87414354df5ca75808befc27f2429157cab8ada142f3df4cd7085b192418ab01af727856f594d601b4e0d0c814fea8d3b8a4f4eb7ca6fd5dfd4bce03526e7005723fb6193ff6b32290500eac13cb09a2e8871b168045a8d6bcc3cf700bb87e7c1f29c20e9e949a5cd67c89ab5c88e0899f17eee51291c02aec3f2c1a53488095d162ba684a6fecbe1bd25069ea0532c28cd4d5e76e08220ebaafdacfedd603c714441473cd8733e2fdadf8a600231703c0ca39ae4c816b8ae672ac68a17bf26b4f477d59081cc59e3361e51fb1b81809343df3d8687ec86180548cd0650ae2b3d10ccba4a6a0851483e54f1dd665fc89a1f41f9cbce2849d43984adbd09828be82a86c5c22b9da22ae38b2f1574dbc9a631df0900ab4e778afbe04c68a8c121ffdb4333d7ba1f1fd3cb54059e6cbad1d1bb378e7ae3468337dabedab9f12ab7c7c57a550bca8ea46fd02f6a1c3269b5a28fc4c27efd9bd961b7bc5b042eb051fbdd6c164ca9be99f08e7e16e8e98eab7bdaca7bd7dc9d8799474435e5020a571a502b5f4457393ba18119fbb0e630ced9889ad76bc7f65f955a355c6d4f121eea9903eb769c676ae134debe6ee9c3dc29f5485ea6614fcde4b611733d4669a8356c52ed7d4d81ed58451e2c6666b110178efc13c460cb5c47015c716075b71756973b829c3ee98019cb3113d977ca87de8ca51082e83962c08b07fcc8a909fcded9a4b2520280823d6a1e65e4c8d5067608d115d384242690b1ab75f68af558bae5f5cd4fb0572ede726a20e449203a4b6218c482471452c624c49ff64916fd22d0064cd8c63ca0ababa7593b8fc86353a2694754d246c97c61023d9d080ff53766238c032a363e50822ccbe27a603bcebb85d695f045498b867acb465ac9168dac745dca08c8c707e566a1e166052029f43ef6f75beb037f62e035b1849bfbd8ad5f4228cf133d2e54e46909d3eab11d2a1960724ceb797e295119a6a2b0c6f01396c4da3adeef4bc9bdbd5ddb0b014226c1024632318afa90c18e2f06f2919f4fd177f562a37ba4ab94ea5520100d05fccf67fdeee07ede84ec81437f218684e905e4aaa6b016599f1bd13edb0e86d1a99aa6b30b340a98f3b5ba6edb97698976ef3b85677d36bc94f7bb03b931828ffc68096dee11456243cd7ffe84b95b314ee24d35c940ae12278813730c71576ec3a2c87e8abfbb867582c665dc7eb85925da379999f7e3492340f7b81dfcd3e62281ac187485e63c9a35483d371b3b24cc4c9606d1ac62d6e4d6c27092661782057984c6ce81a238e68048a4057cbcd25f3da66566a10e5ddb82335bf251849401c73c9bea96eb2bc02775ec47d1c92201a968e693b4a0a96eea50f4cb631ff0067ba22ae8a0370e66c9cf95b227adac4645b49365b12a9945932eb0e11fbda4a7d24bf8ab088f05747b2a5210adc732636f39bb8c7de1cca9e3bdf8464a64ab0addf2d3d5a4845d43077f7502e15663df3a5c39d3055c840fee6567f80187b26b071ea62f7ae2b2c65c799e4dc9d7d7e135c709217c9c6da159d38fd5e48158091c31b5888c65e3a1fc4855f10dbff64972213d53dc389d2ca1c688cd89405aff0e19011a0a5cb55424613c640375cdf2fe510f00077b7cbceffe39aed9055dcf7a6f1093519bf9a191e3ecc4ed8353da0910d63854387bed4e5210499608754ff4cbf7d97d36c7d18e2ba07b5e23e68084154be1d6c257b558b6088c6c5582c89d90d628024d6a086e56f25fd5c669d8dae7ccc20eac68c3516c18962546c16a767ee8d913768189e3f9f8a61d3ca088a66ca648bbc3e8395066bafbf5826206d6a3aea0b925a666fdb58a467e74ec028e1c49dc2f705399b0efd21af7162268f740e123c352d8dd88b67a7572aa4c93d61687d80af2bde124fe622baa6a98ace09a2fab514e03fdf11d01f00dffa68bb076a21c76b802ad1945da3741312e4a28891680882ef32413174d5843e13e4143dfffca9ac1383d3dd84206fb333fb9cd462b84f3d3a52ef96c2297c7ca8ca544c65be81508585aa951f17ec430df85b86c4ccdbbe525a14dce9f088d78d26a957b24737820b9b7af3f067b3d8d84d500e1a5e358bb6f26d6207491fa9489309c7564b34efba1c11ec7c2e6dd926c5cc57627727dfd40a760120f9305616832ddfc8c68012140c37f19a5d34a7f5769b09d81a8a28ed12fa43137ff348bf8583fb305fa11942b5bf491db77315b90242e98afe269c833e4518f552a935d388072be1c3611f6c409e127e5b0e45d0b438891623777ddbca33c8e182e41582606cc28521e6b72ac51ee7267970b586b3fd3ccea1d83c2615f6746816ec983f9304390a7988a64726f67cd2e990b18b91353bc39384e026cbc358e3c092c84e07e6596b29957440e4b42a6643609e3734a79dd7948fda9b2b981c2ec44b0219f06464776de5a7cd490c9ebd07d5ef3ea0803651eb6a27a67f0e33f3146580b8e44b958b32c2bb96339d8d429eb81dc40102e67d2495859ce22df82e7c1a83bb1290f16c7c8a5557e677a19ac30c39f32cf2fd6fad8a1e404d909a5d1d6d7b8e173540a3acacf73f10770af5a1f33bcb6dad046fea9c84a371435a9c482e1e96d966afde71c028fa0e13912c867d1fb69c557ae9f9622386a7154b084e540cd3742db6d3eef4638ed1830fba7a1480f98cfc022007507c3c1903bfd6bb75f50ce34be11656441b3b92d3dbbabdc5dbf4b237044b8025ccaf64688f66c636e8262c4298300ad9278c4b6d2a186b9115e4aa4b132d9e4992d0ae18ade97b260ba919b76bfaf9ddd2c1f06ffd1bca069d0b3e01866718e5678347da17bd6924d6b096ebff4a7bf912ec398dccf111be907e4b511defdbe1b02e3af35ef324e77494f1864c08f995f7d6ae9d9045a1585ac34cb0f1c27d02693dbc25fa53c9ee781101c764c0dc0f28623b75df545f4d065800cbc3b28a21f909b9545d4f150f5a818664d4fb96204084b293f55a1ea4f4b4a94befb41f572be8425d3b426569d43efb04d5892d1aba43f1e7895641a1fc0b1a0c04ec19b44b1306a47c110a19c3424b7173af0d02d85053523886cc02e8f4187091a6f2de42c84b08ba75425f728f076c605eb276052778b18c555e82fb2b2a4df7626cea29f06d1a58ba94b1963f2a31edce3d49c470ad3a8f1a37c2c3db61833a4c15bfffbf53f3c69b804711460e6d2ea6a5fb22dd473cfad0634d7850eefc152a19bf9471bf19185de951a5188601971fa1fb345719848ba0eba2ca4500296dc49055966f87955275ce042f09e01d8adffacbb57292f9bc89a810cec9f9ef665927443edfc2c3dc7ca803b7085b96a5bd90dafbcf155308fb440f871dc32e55ff4e9c4c72eb22e18e9a69d6331e38f36fed6115c4029274555e7a291e601b76c2a4b2083c86b682c357e81fa6dc86afe98b2fb9c1127db822c71ccba94c0d03b236ab4c6e18251d36e960e24ce97095b92fb1c0f504440a3e0c49136b9ab8b9c583cf8a74e15aa729862c19fcb2d0ca1e4c366baf9781e80972b283307f1e45e94c6217fc18e05c9cd2a055e2df2c9315a2782b14fa96b346d59f7568247bb1e7e43e5c2422337fa274fbf2de7ab265a87ff0a88c1cc82a2423d2b0674951da48f1cbaa8586f73f5cfc6a6fb9c792c63f1b9bcddaa74a1681a2adbdf34cd911802e41674f49036b4c353ca7f1010ce690e50d4d5d17f542c76640eed1af99663b2521b137ee5e4ad1a289c8cd4b1e4480d73a79ab611c1ed31788ca2dccb8ccb77c037595316a8a0d6a62a991b789b285d7dd7be4b7a8d1ffe1bcace69523d1d406afb1ff3ad8f9aee4f94600ab5fe3054237b03fc44655d225327013b7136098f18c6b28219077e4843397f6134524f65c61b43912431ab1127b8284f7fe8b7a038dc3a1c33282ca632eeae1488969d9af64645c535655b9f7446aee6c39b75d152b4d27037c99cb98e96c03e780ddf36f950b306a25c036aa30e0b11e1e4d1471bc1a39f716bbc1bae1fead620999ea6d69134ffe126cb76ceaabd2b876b68ae825f53021d318f4370df94d2e7b861f54961a46d6d52c06e1234edc7ac5c3b0e537be28e3e68e8504e2f34fe76a2784823238276661af2bb02793a827df1b13804b138f2ada97582d0351aebd3e0e86d95d835bf89e4200dffe24d48d007618755565abbfed064aa925dce750bb0b4d212af86e0fbd17e83187bd0bfda3c140fda808bf2fc35a4515a2af7e44d8f4c415992870b6fb01f5840892024a4fca5841f05527431dff2de503f9d0f57b34f40fbe9adf0991960151088b228356eb46a9d52b45d3333da3c6ba774624ae25fb0b115bc2e9cbca8bbc504719c43815385ec034c7fec0ff07705616e682aec1ef84abbd141446a43d03edb578b21f1f36ecd8078852e6a9527905b00bee572950b353e47501209ad2a815cf7e413cef10a36cdeb3a040137f36e930d2280eedaf6f7fd192869190ffaf60e25a80a8d82911c33c353df25f4c67f66e8606d602e2bff36826e219933ce9b6205d097173f99064ac1524ccdea03493c54b193989433809d6cb2d740cfbb39d3fcf14534f039177e74f011f6580e059f1ea1392dd4ee8665eda9117d8f13096ff145e76c0134ca49ea9aab740d22325bc0f4d23c39824345fc0d23351cd2b839e0ffba6be9dd11dad5ff48727407df009f1c9ce6043ce23c029de72820ea47bfe1a970f37053a86b27e8cd5e6ed39c6deafe4288a60f909aef25adc1c4679d140f3e02d39945f956eeb89ae2ab607ddf6a56a696ec2a5026edb5ee96e17db0e8ab6ba910e043ca0d6119cc83fbd95a60eec9c1b673771b0d1c83871b82632f208cd0c89176e70a9defe4151514e852bb06e18716933af83524c36674943791021f4b7b6e84550136cbbf39de1fe0a557ab377f8a6fd852e55d36639914f46fd1a92f41633ade6dcc76a4ea71c6e03be604afd374c69b7b0c306e929243c190d49f980935ed73eeab380e80ae29bee34b4c9b887230058d2f60a9a94fc5a219a645b492de664828a4abcbdb51cdefbf7b4a799889a649a90eec4fe6d58dd63ca02cb715d3818db80027339c18d8099927b948f84a45fc2848352ff4b843003ce05448f1d0f84fd7a5544a2b7d39773644c8fe5c788798b3f4f32df8a6363165df9af635f2ab7682bd8404cd61fda77188dc2466e167c868da0330798d248f9111f6de4b73dc10fa6f462d0d311cc89a9ad6f022d08b5e62e5316fb0533d76a589e0645249e90ce1e64af7b762fd67e08878f62ac70e87860d1a13f8b870d7d4f8addb8d00ae5319039a3941c1d4f051932b3fb4ad6ee7d900f500fe04d4849ef10094699ae4b3c9ac1be6350def9b6f60c4b88d571e4ad1020076d92f782f5ec3465ffd365f419cc7d2de169f43807f744cf573c4f3d358a99e0016fda3faa49f77226ebc94f35cf5ecce5405af3368f42f8c01733968093df95719359a49c3981231484423d76d106045a622d5718e37b5e07e9a11b6f6d1ccab00880a07c7369d3498b67b8bbb09d09114d25907b8da39fc39206cc77ee4c6b1cc01bd06737480f446f578527d662869b0294e2cf3799cf8a9548425e8a91c0c721a7609b311ae7fbe8962aa35e0f00503215b23bc6036cab290c543aca0b23dbe9a11fa329fd06b42920de5ce5056cebbca8ddb88a0957b8e391af6178f27c8959c64970b89c77c325793749aba68ced52a7226fc7d593d589415153950a630a1db12001124ab5518183af9ce413346e848320062f094e6e9a586a392b3d905fd8e22cae11a99fe77cde72aeeb36bc519f303b461de503f9507e28ec940b2dd232286ade82bafb1ce2da1245bd32f280b731438147136b65c2046e4e96fa0a2786821dd783580f741aeb8d10f84e5e0b30aa74d4aebe22a2e5773bf83434591c014d0dabbf93820b6ca10ea87fbf1f4915dbb4e6fa2e1db51cde32a0e313820f5dca645569a2950bad052868a53949cbea3bcf1d8c23d7709428cfc2def7ef516184fc429f1c9f4da6409f27ea5107b383b43b7e1b85810cecb1b48d8f23e4319923adf36cbe2f073b017a7a8f5827f9b999fbf05633c6a5c3953e7faec1d38a680fb27a0eed67254accdb94b3928ad78a5011dc67a02292f98d8859570b7b4a41ca91fbe6cb9555d862b34e52c5f93e3635bb7bd0a37db0dfe99492c47d96c54bec8665d45eebd4fb647962453e7315109930a720182b663634a220881d6b54f87420aae6daf548737cf4a7906e09bdecf4a513a5f501b2e99c1f375e613b5d912189746a84c9f0a5c1ab7822e1f24e38accf1c98ca88985897b79bd241e734c1f65aee6f200f8b8ba7fc6654f2675bcd7b3262433e67c742c7d147d196dbeb729c95d0d848c643c1e7e073d754213109cfb9504836a92343eae0388d3f21372ed4455140f567f0d13f7760c3c8b012f5791bdebc4f448da0f10c8ac621785c4de0436db71e2cad89965685b56fac466f335e2e6dc445230dceee851dc7c3f21c1d02ecab4c01a6a0764b32954889224ddbdf82b2cd30a2b5ad09b69589737fb0a074255ab4cd1aeef31bdb0514c9acc26628e9d8a55c45140ceb0377bc9a4ce4995c8a8f83ad54a7aee24fd01ac3a170d62b71c0f0293e9e3025c70cfa70b0d6cb86022dc5bd03b63611d844cb02ae285ed43b085c8e6a2f9a8cdcc6c6cfe051121c61d0054ed62d6dea3a1bf7f85546bb03087b9f2f9d7fa77e12ea79220cfc35d9982b940fed02798f1037434ee8364474254ce004627d152ad889c137ef8e80215ba1bf677a6950c283506032143a580756b9f8b190c6d459bf5abec01dd746a98ddbebaff85e0509e23dd3ddf4ace3dffdbf343681af8d734f33d5b26148ec2c13feb9c7ae746f886beaf84b451d895b3dbd62d1864848ab81a053f1636afdb8da66d1f8907309fddf91e44b79bcba53ca0108346b363b2ff5bf33c0b609a2e78055d79c63cbaf967a1d8290a99a5a53e4cf9f264e71f9b2b6e00805d115460f7b00492d85379987ba5066071247cd3e4351b4ab35508649ac0a32f118206777ce8549b6f507b010b0d45493a7480892d8161f7df196be510304d90bb9d201f67f9db2a2d626eb7ebc0397d2018747a023eecf5826c22019929ad2ff5d198f62104ef40a5292b8599c2e91e21ec271cb504883ea93c24c45346a4397bfa1dac76908a82a9af562a2068800c06c6d02e5d76d11577e975a6b9561c98d4264cf5e0694932691d543a0574b1e274c8e084d6fa4cc593af1d6477f4428c19d243ac57b14eed9a7d8f3ba91c7ae8cad34370fba02110f4aa085fe2d0eb0b49208345684ecdf2ca725428b74a17a7a6405af949d4125d40ad66d56ce1fa431525c69302d3eed9828b3e376ce4734388dd5a835c7079cbb5ede9a103adbf10e4ec8e39448d767d71add6f54dc56e5bc92836b89d987ac22fb9ea89e50efb6b8275a8d09464d678504b4059f009958a33a33ac78709029cb96f7c25dcb72e6b9702ad1a3e72f9c670a3ea07fa3e6ac0a5bb44538579d082bec13bba198a331b3c417a108f4df03668df248425b8271aed5793aa047091ff49e31c07f08f793bf5c2722f22868a0f67b5df07f0eab387ef163bb3badd9b2f5caf50fd1578104e06306692c4f949a4834a766b55ed8d9d93c4299edb0aa466a370050576fc889730aa5c7a83826745f84fa4843c4251c323f313a067de1bc872931963e87b71b06ca0b731a6ba8be777cf1a86f5b998e96c56380abf2e77cf50c27200b642850284f8bcc51716f27941ca8535f8af603b8fbdc11727be84aa815b6ef994c8d79d3b770bdf3492818674b7d4b1dba81bbca724ba1ff2041606933355c4fa24a0716ef8844d327676787f1bc129c65e7e677b60ccd391d2ef3a4c7eb5eaec5a045fc86c0ace70970169f4975a280598aef03917d000643b1eecf2f9242069eebd348dcd4ab3d63120c69658802ee49b4da787cf9f73698b1edea40fb2294e9e0228b05bb0252da6d073f312f79df265665dfd2f45fa1ec1cca3fd8f2acc6a53c7df8d48bbabc770b56e6058ac58d84884c0a71ef551fe573c91e37dd23b95911c2a3895937a531d5fa43c78255d263ca7357c00b372becbea8a590f78e407f4e1e6445b07012a4a0de7ceb2988f192041f824b23ced8ef793ddae83b8e1f0e1986f61e22a3ec904b2ca3e1d5bb02c5694aa0f3cab9737f61eb593a901a6fe0a770479d949f1eabe1ddbd802f5effddd8ffb77bfeee7fe62f7733ecd07f3f77c99b959208b41aa55a4255660b697a7047a8112f7bc5d02deff2a4f60903b344ec43d87b224fd0d9838141cab37e53b350486d1f0dde5a12a990d70bc551ca380e82cd8ebf42b83dc1683241b57b270218d23b9f892c593c4e37feb427c98a8479a4c3525c9e1462e562beae21a711763176b31f89159940bc4c6e4022af1106f076cded991e3d2d9e9558a24136d269e874675b85aa818e8cc797c91cd53a8e1dcc34256638e53c73ba2eb411270890f0d0e880ee0db1357ac96256e29b94f63686e98e462232cda974b8d465f3a0cf179bf171c6b6892f0daf660faa3d4f7a11b84ccff03870c9f11e02ac08fa3a1ab70bb90df4bc0b83b98b3c47cf6deb44758b0874d357e9dc6f709184300ec4a495387c00a1a06cdf225b76f98471a491aa5569e6a6964f0ab985ba7a53a8d6ca7145ab09afa143c4dc3e1139469723f510fe30a8be7a6822b335a9a0fa46541e2a87b1fd728bd035d497ee39f5db97fc484733c05581c0608074262df16fb20b9b9b145ebe5df541d5581b3288ee5d9122206a949c3fd72d6e192c34186c86d1acd57537b79a4494735df8a44499faf17fb1426453f58ce5ba773a7c03ff7639acc7ea766f2a7598e124aaeeead5f4fde8671d2a5d4e59b97864e984c7232e383e4369bda60bd5cf3e22cf1a9dedbaaa5d77a5ae40c671beab23298a16f9533fba852e573207d9bdba740323e4595472d2f211f15730d4d94f80a47bcc8ce327a24ab61d0a19ee9ff43c05f4e405fe010e024f2b536f553cea2a408b9f8e11e15eac70c52386496de7b4a45d2f6d2d3804c0a57463af9cad3c94e89e0fdc0566ef82794fbd3857c7d947f9820cfa34492fffe2c18d1161986b1982e599acdaacb57586ca1f1f9bed21147e111f1fdc4dec8c838d524f09598eb7c7804eee8689ee2c204d075f70af318e20109f833632e0607fff11f49ea0736a0553cd35102563b0e1c0d3d7a06f74aeb1c1560858a649f07a00e8737255f4d7674be13712790aff484f953469ab56713843fe31b0a6312301243ba57d21903ee2c63c8cadd49a9bfcb11da3472a89db4c966ba6c8a1c642c038b857102309e96e86d5dbd45582d61b16175abac08b136af41697046e0585b811de33bb8159edce3107de3cbd66cbe347f6096a1e726a85e2c00d01a2b49831e5e3236b1460a5ab887a9030856e7ad509c00a2bf262c144e2c9d671915b1c5d4a3a0f3b4d56f4744662be6397c387c5e2acc2cdcea744ea0de3f448f7a41c34401d8953bd01c644761e0c8dfc107209707fd05fd1640d5fa3cb50d81cf9e031f84abfd63dd06fa47e8ccc287a9e7d826751f068e8079e1f56e01eec9323a971b65841dbd3550562dfa1c00feccd79640ca9d24c133a8e3420dd16fee60bbaa5950303afc0a5405f89f5703c6aaf95ab1987b997bbd07c1e090d0dea28f8c74030626986d5983f3e38f37194323da1c64e0c90703741a8d01e7e0d85eebb87c20775a38c545a4fb5090bec4b65618de1d1fe2c3d585e75a6b7cc86dfcffcbcc45a17f5faae081710e3c26124608b0cd6c56069165b84fc4026edf13ee7b1abf3e83a0390a7c14ed5454a880139c7b06ae2a4c81bb32aff07981d1228002c8f2b97c151ebad79c2d802797f3b0e8b97612ad449742971c9a9cf1a7d74f66df67c3f68e816a5f5c2a69b06c7865c6d4efa39f26a84288218cda46383580c489b8b98d0542bb7edc7ff640118d828bf407ad690fd41af56dbe8ab8697bcafac61c017e26c57f6b0b04db7cbea90615d3b1541af837a90c811106b790ad64439964f6087409df0661f0a8c563014d717c291257264504013d762f69b2fe1247f613c4415b20061a2e1c8a6ae85bec835bf10ce95877a49624b1acd15a429a75632243cbd5c4adacfa9662e2c16967c81c5c18284d6ccffd6002f8759107a51e63d7eaeb5f3db6942f98d19d1feeec29a5a254db29d14cd34c7ef6f04a9cbdc45b638dc4ce166bda77448101e6bcec518541c66af6ebc886295c7daa5d2ced5acf46721810a6603136ae4e929fe249a9c99a08c3f58cc98d414720fe75cd369622ff061f4a12170ec443a1e6790f00478b90d7a957fda8fb9a39a07e11dbba0bc5b022a8d26c8e0d435631c1b8e66feb0aea9e739aae020f740dc2ea9ddbf848202e34fbab66d30190069131b8e9decd2540206fbb1ae1af1d96eb84b3c849f856befd9f9f5f0c03b666ae25b0e3a423a7e81ff79ce3a2923b79ba6d1937fa40a37980f6ebaf77f95bce8b0a5418d84c1275da41651828455e00182b1480bd9ae24c6881166af3623995c5bd327e8283b0021f31e34afc114ded53cd5816ee19ee297a96f92ae9cdf1d484c254946f95a5fd2f01c97ce20b1e380594821ea42879a2e62fbf911d712ae59f917479c302c69348715dd754420856f6a05ef880325528102e5bc9b22afcffa28968afd34d1a2821c6095ffc298ee1e89ed9b0f6e283b49065c38acd0f8f5abff3ee7005a21e68954118b206de208ec4ad58b573f43c5d99c82e2bda25a7a434d0bcbacc6dcc09328b5a513d252519241ff52d9e32724c332a87e60f0f380dfc724ab8152ff8069f82d222729fda293e86621899b5585967da3f0530b1409db1e9fc17837b76356d2e02ae4bc3e5d788630eaa94d371299a18ce8844d7d8a718be0f0d2f2f32274bb76124a3aedb8bd1f0507e23501cf4c98d0b5955bfbee239dce2d653857c3c27768dcbd8996dfcdf6d8638b2ac7def151c1d644bfb1fbd24f65f1226928ddc1550932d208801333b03d21345973b93f8b53dc90d21393570f4601ce0a598c1cc34a34afd19414186eae540a1f15e6579f7184beeba0866e4087246d87b272a33a746ee057743abc8c06748e6b362e6292c2e70d0e0eb423e2babaae730baaa1b9089193d70d2c1c91f857ba93994025d006b4d392546434b9d687947b237c8905afc7fb145c29ef9ef6bfa0f6460fcff27f838cc8030133b0fe3fd4511d466dbf4fe950c4f50415599baeea13e1f474cbcc25500fe8ad168d63999f5637794cc4454425ea68dd2e74a7adef1794513b74b478df59aa75db8c773fd169ce12eea3d003735eb01d307c0d0d364811a722dbab40f98488e848196e48c4a83f8bc986735d446e5218043670811c14c7742dcd00a591511fcccf96f2b5654f7d6a4e0b6e53e45a208e1fc784a23b19290c894178dd87142b7740c07effde0a9a61398dcf01cfd4e85ead4db0810979e0a7f6775827c33e8042005e62534e241c39d02de60a60df8db480e51594ecc15e201365e191b49fa50f49ec523f0ba83e5d5050466cf5b1a74f300e141b12d607d82d602eb5375c0ca641a277567511bfb3fa91f5c0b253c8d3ed4cc1524fe9679ac47b89aed3afdbc39f81f019abf297080f59b56b71e3ff36ba8e4e7ab03976861011b2e1461ca39e12c5d7cbbd30a5a7b4b759a6fcb10e3dda33a661c73874d7d77221b8a920962a198cfc3078054269ff4ef7fb4908386b43fd0ec0638849d8d6b328439c9faa5b8b4ed337722e56c6dc16f26232015c88080de63f2fb604ac2f5b00c9ab350505587a75082bd6209afa90bfaa22a580ac7ea33e52de1b486aa794e662d00cd7331d6731460cf4bff64c1924cb536d512cdbefe6401eebcd1d17e81c52ea50f884f915907dc38f7151ead777b3e74213deaadb10e7fc7afa23e23d3b5befdd0106bf358867a728d00f868910d84dbbb6ace22c00fcae2e9ad95d428ca5bb0d12a87131a2c1ed6c235b836eb1563615fa53de839d02158a8070d6408164139cee4c0b1c2fe6a5fc6a46519d8552cca0f67dd7455eb3be018fd3e4ddf16a18b4d3d3104edad93fcdbb32acdae3883c036e5490fc2ae2350a7387d9c04bcdf4d6bc8e9861b427c56b5d5e134e3a9f638e78c6f022c07421d243075e386a8d8b15e68a88a275b87be1454449a03789bb751fdf6d1f23d20ec5b19da9bccf894cb94ea4da3c6f33ea7a27aa59e4924eee486881ce5925a41ab266c9ab4ed73a84254fc4cd53837fe41046ce18fc5283b8bd25d1aae2d6edd78065411038044fc6e587b66174336fbd3486571fdc7083aff93c13befd6401ecf8d9560afe467b9892a98868bd1bdbf1833a6a7c9e05cd4f521cbf88c9668ae99a65d6ca64c58cbb4733207d58271b66593d026ae3823f3677f5269f24132d3063f3be12f412eaab50fc39a09834762255dfc1ac0c22c8b4e288eabe2a9da6a72e056caf8612ddb3c3fe10a9b101073730ae78b9ed054cdcc6f12b3e9a9d08e15904a9801797958d6bcb70b6fc8a8221b69babf64020ad832993d9dde88b7a0585f6d2c161d4432d2e7a0bef0cf1c8f9dc9f51f5728c0a39d26dcd99497a90e73771608b432708c81a9913eb5bec1dc8a69c65514e072ebce1952d83fadd4f9533c36b1081e25f3750ed246db037e55e5f97dcd7fb759364b669005bcf22325b71b1864bb2e94e0bc07759597cc7dc1782408f43964835bb9226897510fc7100e8e5fc96211b0f19cbc339b58bf6587b006199d04c22209569f14439216625daecc1f3b0509bcdda94e78f7d4552b4753f59843cd4fb8ff001e1a41b84945b3d962a1c7cf0e939871659f2ab4cfadb784ad32ac3e6f7d2724e56c7f54f03d6866ac53784fa4261422ad603d78ecdcff279bc48656fdbbbb26719c7d83b285f11b268f3e54ea78b3d237b0b4eaa26da3b81a48f7582f94baa54c80c58462ed3233ccea88b6f2aa9704db3f831571ded396d5cbd221a49ab56014a826297f12610152561599d9fcd27cab4e9e6822abf595a63bf3eaf1d5f10780c56b7e36f956b3c2cef87485dc05de40b5dfebc192cd9297509d332e5b2edd847e4ca7a59643bf077623ae79090a343705bcc930ca2f9ac779322f738ff8400207fdc7418842255a0ce941d1004b346d0ce6923ef161249ad2d3b2f02be238cbd32a95a8cd623f82b3e6d5a0560ee5f68da62edaa6a4ad554d3e6b22e833b13cc347fd3cf78dad3c753ec804eac56f216365a3816465baae504f3717d3c4b4d29bfe675731fbd4eaaa35daa790e4db48583e177bde92da68f46e1b9a9ed6c718f084c625a173da8eaf9899a1e0ad1e55f21df0690ce71c82fd62ae21678601be01cc3e045ad25fc357205a5951634d8b305ddd9dd4c1bc21121ae795e01a774622c06d4c764730a1de980c5f6fe9d146070866658fbeb80ea0141062014041165f5078daece8a60a1df0c1ccdb2c9577afe7f146d28d64ef1222f7de524a2903bf0b4b0c500c7246e5a4bfcea864295728cf52aeee8a46f92c9dbe4dbf9fa26f17a1bf6b600052df2c8df884d0df102c52a7be020ff17de3e8efe6cb1b7061994f4d515dd10275167808ea2beecd1b70b99f59ca718bf210370f49c949a83c254565e52932e53f5654fe63e52dff9192c5ba9247fd474b4ed5957cca5952afd17db748255d61d44f584561e838c3cbb0944fc799770f99f910df7f1387bf7888f01b478743cc6f1c3df306661706017ef41b5ec428b2b6a5147b9efb08f31872848ccd12f377b648af24b6cc39475324fabc688a44f3749451cd57a9a296c32971e013de1265494e29250aac0f3a5a0be8fa8eebacf78a7ba4aa8ff5a9b2f5e272eeb8b09e9ca9b4bab2ae2e67c6584af35e606e891cedbb9c18f753bb9c9b33072459f69b723fa7943929bd18c63f181d8e5ef1afce1d9d528f29f8b0412fb7f525db202674b4a0d6e137ef5bc3c6b9ee23cb84ce4c1b7b1b445b52cf9dbab2f76e5ea410b7f5b155758fe35634777bcef3384ff5af25e2b80c6f6eb8dcfabc74f1287fc112e53bb57229574ed9205b750872b4b7a76b9034d3556f6f7d6aaae64a9b31f6a9a3a42ea65eca55089265dfe25c14c45d65f29e5ae6f6bb08dded0e18f17f1cc8454104c06ba8cc7fdf91604844eef5bbfa8cbf321f4fc31b997f32404c2de3024b0d232373189c4dc62b0c2e877379d378cddc0f67abf75ecf558ee3eabb73b5de1fef978f57ddcb7000dc63c8dcf360d4cad5ba5ffee2ba28c2c6b82aef2f5ee564eec980f17a2f071a1586c7c5b828bcc9c13159fde35eeebd73d57bc9bb7295fbe16c9c6da5c29c8d8e3f4c5c7ce52355bf787516de1ad0acd7f066e5cdb8e7c1dc73d8e3626238d661300c95c7c1bcc0fc7f99c1adbcabca3c5677b1ca2e5e53595746f57befe552f4e2bd5c7516f77296ea3c54772173172e7e5ff2a6fae533eee17d18917718ee1ecc636260f27e8849afa91e66fd05e63b7c06c7a9fe82a5665d55e671efe233fc41e62eeee2de17954a05935ff0cfe17b95ea9ef772cffddefcfca2c22ebe52dd85aac6bb0b8cbbf7928fd02e3ec2f8b8c252ab60e48da35de4d50acbbce253cd0e2fb81f8e494a781323db10739c948324237300e0ce4797e381c75dce7f3b24f3dde57432af2a7c5fb037bdcef3ac585357703ff5964491fb912fef7cd44e47064f7defff1f8637cf36c4faae0b0580533f8474f1a1de3b779b925b4147dbe55414e2e67efe16bec5e1f6b7e79a7043b4956fcfdd68cbc54bb2d26a6044ef2aabb43a435f79dfebca34b9ca686b5721928eaddb77f63576ab33f776f33684f40efbb0dcb25cc5f2199795e53197926537f7c384443a89deecef156ff3d612bbae765d1772350f21659ddb8406903661b63f7545c2d2a6da2474acf78ee32810f5cda23bd4774977a8897a0786371deaf33e56751c3760cec3b33f60fef2287bd8fed0d1c75e40d773b7a3ce87b692c8ee928e33794f5b0f2b2dee34467b90d8c835b20e795fa99ad112936b8b93975c5f710e6dc1c87b6a18b7ddcbf70ad53f15a6b7278830bee996360329cd43a57aa7c2d6091d9fbc86c2f83f19fe30786b40c36817b576ddcb8baa7630bfd8058f1f46ed3a0a7a56d58d1f63fefcd7d418fcc3d4307ebc71348cc3e05d3ffe03c1131e358cd7d01a15b7ee2a32da8a7997c34faf21102a67bdce388dd7bc657eca3446c7987799cab8fbf077aa7787d597efeba2cadc3b958b0ff72f87ddbfa85efe922df7e37d3f3e0033fef21a3a002eaf0ee31c77568c4a770ebbf8c1c5bdeca27af797d77bd84575eaa2ca3b70b4eaf72fe7fea96054d8c507d57f98ea8751fdffcb251d5ff2d680f6ee6370335e435de422ecea360c62c6b9cc63c65f320fd6b95f5c84d55e2ec2ea19b9d6f00718ac2c73c84554adf2d3b9bc69642b938ba83ae6a7cf10881895bca78e794cc79dc3f343b5c4d5bf14f084c7938c7ff57a31a78ef36edea7ee84694c36b58c775d3ec9e8687fc23446471b04e6325eee61199f81b706f48cd7f046c6bf4b63ceddc2ce05e12266c68f592fafa1d6a7ce90cead0280a3efc3bdea327c26e9a8aeba31325e320f1987b98c0cf39a3a03ff00e3e5323ceed68b6abddcfdcb67d4fb192f3c5e0e03e33030f76ede54dfc79cc3156f09e85aafba88533dfc67487771117ede6288255d712bd58cdf1fe531357360ea975f2cf58cf125f3f00ef319fe00e33097a10fde613cef3e88979797fdac7a7939c75def66d50b86b98c97c3bc60aa615eba0c77e068ce656a1cede2433d775895e14b26e9882e3f549bed111ae6e3251d39d64756de381ae635f4054f2d034b0d8365c8c030de6d21f47814bc25a0c7c7c05b037a3cdd9e06298537ab5128001c2d8e601cc653301d31bdd1f105a53b27b465ed8d8ef6d3890f7ef97db97dc1d77bf1382f5b697de808034fed5367e8bda24fcc873eb9d196eaf63547f572954a7530bc51651b62d7712e3e745d06529a87775a3b8ea6b6f3688c8ec72fdf05f18b970f863bea698d8ed6488cb6aab61c9725772fbce1ee71dc2bc77119a4a3b5a7b121a4c7ea0c294b2a55afb6fe5e51a4ffae3e5088d2091a34d19c16e4edb91f0ee8f6dc12d97a71cba5415b8e0cda725368bbe78ebebdc0f395f692b79c2267ba242063e66ddef20d2999065192614b2ee8f9dd8d405beb5357b58984ced4f1a994789bb84944263e79df3a19f50cd1fbfea70aabfd8703ee9e71f763a93147b58bac823dcfcb1b476a9594d7fa14ae9ebb0aaee7546aaaca399c7295a75cb3c05345e55dd7b1f8cd8ab7c09baec02e787b3689b667c144cc54a511e1e94d6fda5e2505854fd6fea45034d69924beff187da390747b1952484ac2f41fa08974302485a487271dbc7d8d100ea033d64795e406894df24ed9aefb46af2bafe4bdc3d22b8174bcd9e6ce47949246d6d06e674687c3711398c11490d0614d5b1cea6f823c50d01fe561a2293e8d78c8608ff0b481e2aba3ad678498a6f864041f688a53f42732426d0a9f11ba001e01094db1a83f097e23512849478ce044538c5285da2f2353e3c6abce8cbc121091c4135ec0821da8800b3588c2083551e6891a375e5744a5646a007553180511bf1ddc20d8d81551a92fccc01b43f7040f8cd015d03cc1840d688ea4008a929702207c41744b9005af04429dc59dfeacad3a26d0148fa80e104d7128a5488e7ec020a1a1b0063d91a049688a43bc72240a4b688a4113c8a08f364aa22d1ee98f2681e726c1091e1434c5a42ea76383f74409cea0ef0d3e5112be204722d089242cf1c1a5d547cfb07e624fa8f46d755454aa4d454545a5da6ab555395d528b4e826b333a5539bdd784b652ae53ca5bb433cb836d8180628b68db84f67ceeb75dc1b62eb856c7fbb631a081f76d6d90a3fbb637d041f76d87e4b0dfb607af6d7fa0a967d3340d72f53344a5d09e19bc243ade50d579c1103445b93a75e5ba406c1086eaf686ea378adede909e3a7acb9a4e5d69192fd0f4771523694c54a7885e923944a36f1623169963746abf5fec370c4d8f650e4b1f63e6e0c4d4be3ef9a8a8a8a8fcd251e5329c43bc9ff090fbdaddb23cf5958fec476f398775441b24def04484b9ebdc46a4729573f8ee40d2a06fc177466dd0b3e06b0349833e852f0da40ef42bf8c640daa0f3232ca70efb12d1f4d70692e674fa5b03f9d291b1093201a0731b2fc70ee6cc12df49706d2eea079ade66847d2031df60333a09ae8d68888e2852c1d5162459a69208434f1609e6d3b936a27c51c2959492b4b1b3a6b15fe8f93a54a1d0f307c5e280477838d4966a5ff7afc343ece04ebf0365879db44a4bda38b0fa067ca7e3282303fb500850ef15450aa328bda75db182d62959f3338459217cfc90f5078cbb21e988b4c2bace09f1d2196e1c4d69f642d8955744a2e7a8f8e83f8a89804d5dad8e8fd5d1e16a358f463b22ee2a1312d2b75bad3675a64e77441491a6aef2f786c266a6f43bb277fb68b572afa1d5a6a44a51a1d0dbebd1f77aea8c37932c286c2b4af4aeb62a85ded546ab44a2e52b14b2d5a3a5acb57ab5babd1faf6b42dc5eaddbde9abf191d9bf07aa64b0ad93e9a17a46af94f487fd3270d9ae293fea80934c52cf457c1219ae216fd59ce092998a02946d13874ce1f5f6d22cecba368293fb5a43635eb8036344b1a798fa07306f946484c800b55bc01095a18788cd85828908c4462c7e93b7b32d11bdce9016a198f711ae18d8c8b32da122222a12d1b6de938052521fa8f1a514d8e8b92b0f98f1d6c76d861566792b8f90f9b1b9b1a9b8b9ec48effb8d921fa4d8da8e675d16b2efacda54d4267389a4592694c507973b520cad9269a72b49afb9b7b9b1d72dcbf5c7ffd62e995c057bef8f5967841970bbcafd7ef5ff7f5fb1ae1cd7dbd4678f3baa10e33d60511f79c8dac123b43f5757a79f816b5cbe5cafb75d4bf17ae3b55e7f5e2a1e6e810aa1f26c2bef2be769d5e1daea372d571e1bae3faae3a2e25e8487550ea13bbaf3b3aeefa4ee9d7e516f5ebf5ca5b47ae3b3a52e67de9ca957ba039843757a7d2180d425b950ad194037780d096d4a3d1ef0d6f786f0fd5f70ac3300cf3be1ffd857b501f1d8e684564f0c4c81c0dc9eb33bce931c39b9bc3f07e74efbdcfa3bf1ebe700d52635536357d78d3f4be02d3c5d97ccf1dbdc39d321ddf33080fdf33d6d257def4bd06ea4ccd576c94beaeefaaef559286e6f72f9206c7ef5f489a1bbf872169667e3fca56ebf73092c6c6ef5992a6c6ef67481a1d7e1f235b39fc5e074943e3f735248dccef6d489a98dfb7646bc6ef69240debf72e4903f3fb97a491f17b00c8568cdf6b49b3fabd8da4197fcf83a481f17b1db2f5e2f73d489a97dffb206954bf0f80a4c1e1f73fc856fe7d109206ff5e0849f3df1340d2b8f87d0164abc5ef13206958fc5e019266c5ef1720695c7ecf00d96af9fd03240dcbef21206952bf8f80a459f9bd04644be5f713903429bfa780a401c0ef413a73babfbfb4255d3dcc18fa7bf3ee416374a4b21ad3344895813b37f0f4275b9d41bdf2bea86cd3f43da0d8a60bcc261e94adce78b5ba9ab31943ef923daf6caba16ca46f7047d3d3bf5a4db7a5dbd31086a2c3ccd1849878a6cb749b31b53a73335d17e5f4662963c47b35af36673bb2a45bbcc928327db3781ef0d49c8efb1af180a57e8577077a9b21299ab84b333d656a9e23c7a74d8e9a1c3b5c54934980048a4d8e539bd2ec1eb1039e92c67d8e3bca346e78637a17c2a82e85791fa1c3534ebb3ec39b17d500c09c13c9320319e4380631485613213a4ef105c9f2c216e468d382646501688e4a7e24eb0a5490e314a4902c1f24747c42149205c5113936e104c96a8212e698042392858422c891092248163d0ecc15912c26e8fb1acad14aaf7d8ffab6da95f7fde668f7e0391a6ddd53f017d3e039411a2c350ecc05017342902cfa19ccb5b00d5c03eb80b92348167d0e9843821ce969606e0992452f83b99a64d1c7608e0992453f03734d98233d0b734e48163d0ce69e902c7a19988b813928e448bfc21c14248b7ec45c14248b1e06e6a42059f42f30f782b9249245afc25c15248b1e07cc5941b2e833e6ae20477a8cb92592457fcc31912c7a1798c302978539d2b3c01c17248b7e05e6ba2059f42e980b922cfa16cc79418ef42c9803031706c9a25fc11c15986bc20d49164753c3e83574465ba8bca70e7146e165726da57c7fa020eed2ecc766de9766a38da3c3d28c8e34978884f8e7061161f5cd08cc355665398cf0d5b59688641da51957a371348e8733a2b92274a41791402ccd680b7c89086da5d82a4e8d690b03cf8e96b522ec689396b522c834285522190d88a25f95c41bec015214a53574fcbeef7b7d59dea0231d5de61ee69c13c43dd0d687459fb8875d440f74bc3560e8d8c3770a7e7fdff781de47f273ca1e503ae848df83fcbfeff99a1e3e3f730f3aa60d7d0f4f44e944d39b8f1943a519c4a0a5e85b7a612a21bba0e91df07dcb2f687ab96516347d8d0e3a63394f0bba332267c6d0cfd88ca999313692451ffaa8a2cf0ee93e0b4a5c6fc4744d1f39d33575c29ce99a4a4cd7dcb19134930592e563527a920f4d3f75e414423c67206172a4bfa0ac82a6ff6414e413340b24cd0ec99a2e1d336606542ad154cb99f711326ffacde9d12f58f3e52d2fbabcbfb465842733b8a22510f73d62524eecc267eb11755ee0733940adaff536bbd8dc65970374f7ee71efaae5f21254bee625e6716c8ee0e69cad842b292452ca179e4ee14527a5504a5f3a0f4a293d9d4ea7d3e9746231a5c2b38447a5fee374d4a9e521dea26ec9bb874c6997584c29944ca8b2a2625554c21b862d60122c676161616119a5a04ea8952c733a0275a232e04562d027eb4cb5f7b5bbb9fec7d680de52d23a63b3e5c4faee3fec3b792b4f3b799ba5a4213f2da546d8d7734bd0d72ceb0a735ad22c8f98d3725ff8aecbb94f4a1ace8563f16f7a2e972cfe0d49a9116be84a9c4939f57050bda594af627af8897ebae82a510a87954adea97c435319fd894439059faeb8305409ef721e61181e0cf3102a794812a38f7e6af1d16578934f282e65f4e5ad8194d1a55c711d58d1a2533ea5903e1296d206f7931152eac0fd84a33777d1294b4983139d84a5cde987a945469c3e7a4aca1222119674747119faf0a245f8239c721a9d72eaa315a896a75abef21fa3af9c44f854c42d18e3fda2bd1fbbc01b467b47f1de026f0905edb9b0c8db05b522f28e72e98c0fd249701bd36c51f9ee217dc2305cf98fd4c3afe0150c05adf295549d362b92b52512ad920695cb3a935a49a93c45e5a3ff9072a5f2d37fa88c4eafbf7506f55108509e82e5c5a2092f615f12f1f68e7211ca12e17b789a031547fa7014671e61712ac8b282effb2428a505e4e510f21bc75e4a9987b079db236a41543b0fce9ecf7e73f4520f412f29fd067034cd1be8ee5d1ea42d8f7bcd43d8bcbd1bef204649969c38de9c60888155f4373b1c70ba620c5a2654292815f24a511361588253e71cfac454cb0adaaa97401fa55c57bbda759d8739bcaf8b3c0fed61179971f4aed154b228c76d9c0ecf37e88af71122d03547db537ae96b97e741e573687a99a5a452d24965ade293c7586fd93384e5ca7ee543c3e24b96a55410ed4f3f61ec98fa8578fb3a776a09268d0a1f45839542748a8eb202a27c2206324d3fcf658973145242424223f83e506f29ab9475081f773b91d0e56aadb40a69c95559a5acd6566bad95af978e13043ff1ca5a8720ce739503bf1024755f10e76b58adb5d6da3a2d290449a21b92ea4d25e0a4945216b1525a292d01a6ac363488f3a0e538ee5a8eb3353b4105fd0ef94f26ce4eca3a69adf4fb6aadb5561b869d300c71dce5aa8cbbb1ba92efc0e0a1749eb443f06cb752ce0ad5ced6b4e4385b3910dc3a30d82a652724ce7f4621e25a7b6c0eb532ee1c8f96928ed24ec14d8eab529260a044cb329c40470455eca089cc888c8217863082369c41b686297e9270058d23832958c0c38519f8a00290af9ee067064cf4e890a00a20a8c00a4c14610208b525b0960c22d051c31180a0e04815882034d2f209232831a48296244f7ee854f1b3d393240a267a660dc449058d23041640e1022ef860043918f2dd244220db411524d059010a64730a4f9ee8810f6f04a73304e11789a01a61ae7a624893cb58317c1df7024bedf49129c8c0932548c18814393d3890a2083a1ca535b72372395be3799e77d1a33a6a647a90a949fa041184a045bd65b81e998e1b0313a0887af2074cc117786ab08311d4a650820de7a3b92a08d1dc90e6445dc8257183e6b2adc209bccef33c09d499cb711cc7715ce7755dd7892c67028e8319eac114a62052862c68c1869382e67a3467042534c7759ca8076077bb6e07639081c8d56adc1803122b56470f229157451091edac04d0105609d42c206d13b0c0092492321cc10b5140218a375011852a8630d123b255e4402423f2ba70a2325df72d53e38697029c25b8400d32f081220843ba0005dd5d0c92c4099b85a0e3020e6091dc86d0442412e52d8ae10aa0eebadcc387829736f49c600cb32ca8600a243dbaebf2b62291c85e02a32a7e703feded76ba0e092250c1056950d2862cd874f309baeb9e284213bae36abaae3be20220e8aefb95c20e8abb10743c0049cb232eb881e6b43c2286266018913306d4099a6230470a9ae2528e2da7891541125c0e34c51d0f34c528274490044df129099f0442acdf77db36e8686ba555d90a30a1e97d7f8010e591254ef4bedbf2e8fa5bef053ed90189f2081321254c66dd8fb8a4899eb7e2b4a9360ec5d40b6ddea8ce3e845d202040406aa54550181010daaa3220204040e8988182d09916054281768e6021c93c8285223aa5e5112c04d11f0561404ab444185090aa39ae080a038ac18064403b404ae8c080249012f762f049d516ed6dadb5bbb4f2b425afbcbcb493b2935dd775d2fb44b5ebba8e9b1d91365428882118699347538c028204c88f058104c9278054d1719df7840b44a029361149a5529e4894770f997911b6c010f79ce8738a82007f02b13473bae9f4357526e594c5e98590342d5634097519a7396c49ca530e5ba272a96b78a372d89295af1cb6a496bad45c78933a6c090fcba5eec21b96c396d05a2eb517deb41cb66426f50d6f5c0e5b225b71a945e1cd8ac396c4585cea5178c3e2b0253b2d2ef517deb4386c898e8b4b0d86372e0e5b92d3bad46178d33a0ce8f64b4d0a6f7e18d090d428e10d3e0c4848d2489d2fb518dee4c3806c92466a1c2e7529bcc1e130a01f4923b5ea529bc21bd561403e9246ea974b7d0a6f5e0e037af1178701c1b8d429e10d8cc380c64bad12de8c8701ad2ef54a78b3bad4312e752abc89f19111c4cdd1624ecf15a12def3c4d68caf5e8181e74d8d0c0b545587d3ac9d05a06eb32bc61cdbc867a439e13cfe605794d3c9b17c412c294dc9aa00ca1a0040129a184ac2504a9a43328172962224a4257f4f2a6a233a6db53b4e5e2725dfebab82e6d6a3ec217bc2694780aa2b68f7e492d08a22b5b692657f4a85b98b389881371a36ca6d84f69e612c2a68621ee2238d3cc87cdc9c9c9c9b159624508c4bd8946c79311daba7948cde9fd8e23313c829acbf000624e4ececd27db2988aee8c7206e940d3554674e36b93ad5e48ade86ba9d4eb6534dd3d760295757df84383cba874abf7e714965ba996ea6dbed46a9086d5d7aafa8c3300c7f040d41fa5a1e410313b40c4fb6307cd1a14a877964830289c641cb2350cc74a9086dbd420e1c75e0e8ce6be2a9333b4ef70d31f52da3b78947efc837f7da88e20ea9548ebf661c4532aebc6fa06ca69be976a7be52b24a4450361eaf4f2dc39b57a9880612b769a6e94db13a83f289b9be4b339de283da27db37ca26ca8080c8644031d91282c8503c18101020d7a6e9bd3f75456b360bded05e5c397a4b41e84cd8535734f411e2ca1b44a2eb4c789341b135a17778bb3d610d0a9d4aedbc3d17c9f66a3789177465a911855667aa0e4a8d15b9571453a9f0262313de3c22297daf0552a0f688f448794594d0444809429d2d09a3774cee0d6f78bb1f3a1a09c3d70b773ea1cbd5f5d0917648a8be98ead1eb32bcf9bedd03949d8eee7c50f0e60deafb0f0962d8f9188d32f7e4082088b91bc739a1a34847a484a6f7769f887cd0f1deee139892a1a17bfddd1b4a8da395dce8283569464722e15d17bb5c79db307c0d8378fdbea6ba5caf3088a624213a46479410ca464754101d29aa89649540046520ed0b310884b6c23c4434d3f4a12844dcc16c99dc30474a7388b2e9466d089900303d993ad0d391dea69be82384a6414d23040ae2424b275e404483408268faf04f40626b1204a3e5112dd4e45138fcbd37c415854281a79cd1eba31bc674985f794f30fc61a4bf1086e3af9b6eb475c33088b6c21736ddc26c7ab2a3c36ffcfb4097cbe53a287370b9c0cffd72e5907980ff683c74fd950328f37b190641236faabfcbe44d5f375cae97cbf41a8d469fa339a437ea55728d46a8bf3e5fa8912bf3004b6110af1c46478120f89a41ba073802ef28f30027ea0bf19efa753f4320bed7c3bc5fd9c575d447a2acc675787dea4cd7fd2b8fee7d1df53d83f4e838f09e1ac749218cc66fe671ff3da481f7d4a38bb21a3364c0178d7fafd78c920c0d95f066e4c25383200882ae2fa35e8345cf018f5e5371601c35a7bf91f7adc9628dac43beaf5706f35daeebfac2bb3e141005ee7c2d2412b85e0f3f7a18ba328fd7e82e54de2ebced2ea2ce10883083d985b3cb77d447077744599d0177262a048fa385f403bc6bf41bc2c2f30073e91eb843c1bc71e46d35ea7374690254d087a77ebd5e7f5d863e70faa5bf8bba2f7ddfe87640dfbff09efa15baf29e4a68d471b4e9465b52b750476123660cd91c3163c8467431bc41813bd5f484ce481b2dd0b43c828526b43c9285271adc015720697ef0745873c3d75010c8057784f8d03bbccdc09d2913b728bb3b105997c1294157f440c25b10928e901d254498921b6ddd7c480d53f224c430201f46805dd944a6efc5f0e6c294dc604039148c697ac11d0d53e2c4270992264370a26d68e9c4108ce84fd210bf15e05532a4e4498e11f6f557def635c230201f2bc21b9812274a865c42989221254de82859b4dc9692213a4a7d6a325df7898847d2488fc6d178ea8cb4e17c2497120a6292a443a23d21da9be570b79c7b4531957a8ed64d28f7848eb4c98e666979840a9bfebedff857c399833b95965e7ae974df1993e9395c66a7340e1dbe458d83c6f7d53870fce341ea2ea7eac0dc101d9d608e07dcc5e0ce078f782f041d5167fd0074445d8637a8df68eb74faca1b47bf5cdf568fee68a4e32eecfae89f8df0663472e177a3bcc3f3f0595fd8868ed3eb10dee8e001eba023ca096dd9c81cb0dc900e6cb53ddd86b0d3290be0db81584347d46fd011f51997c1283aa21edeea4c4aae50bf469d46de17751d2e51aff11cb04847d46730e98768fa7430992c1d51b7214847142abbec9842f497a78c8e9f0ee12da577789b813717a4e95978734f7ad06c75ec0e1d2913da9a5568a969306c09135bca9684b6e690963a05c39624f959f941425b930c5a6a150c5b82c447c5a709da9a63d052af60d892267a527a8cd0d61483963a85614b8cd450b522b4359b68a959306c49119e130f11da9a5468a95b306c09119a892684b66618b4d42e18b644c8ac340b425b130c5aea1518b624884c9401a1ad29a4a56681614b80c450624ad0d69c424bdd02c39628b143da59e283b6e617b4d42e306c890f9d50e7096d4d2f68a95b1806f464490eb824c7096dcd202df5310cc8c9edbb35a1add9052d35c630a02643a3a120da9a5cd052670c030a12120931a1adb9052d350e1806c4c4766d49686bdab4d42a0c034af2e3fd20a1ada9052df50b860121f1e97c9aa0ad99052df50b0c036aa287eb31425b130b5a6a18180664a4666b45686b32d1528f18065484a7f210a1adb9444bbdc294265952c38084d0d604d252c7c03020217494347388a9614033c992faa3d5198e87a7c6eddc5ea0e9e5fe803c6181a65f0b5cdf1f0cf637832f07a8ef6f88fe7ca0757c7f40b0b19618e3727519deacc2f0f7de180f710f50cbb0b7e90277660cfdebf40df8c406794a831ce9417c32833c512157f42e7c9a429ec09dd1e939da74bdf2c936ca363a239cf9375f1e13a4e7844f9aeefa6c1cfc4783c678839a8cd0919ec566ea10de5c704eed3141b65e397efabefa245ba79b6ea599e9569a996edb7443dd3019b93112677444d9a0200a559ae1384d89228ea3522c259437e670888ef42853cd9a6a374cb51bd8c463e2311931d56ed0f0c94126fc8dc1711d6af8fb1b76e18ed26bcc3cc433f4eb37308c89c764847e9587ef8bb27d8633ff5e78eaaff4193c035f70a6f41aaf3cc47c830e6fabd4751ef2be3af2976d2eccfa0b4b1d1231758c0c8d1c36d51bdce1bc1a11536faf1603b644d663c21b94203abe747cc42841612800a9ef7a0f19fdca1bc0d14380dfa3d75d7888d7378e7ebd5edf008e7ee50da0c0bb1ee26dc38fee0b7f5f18e60da0c2df511e22cc436a6475457f886cec3f44b7f98f1cd9ceea8a7e87ffb0c936c7c16c79ac115a9dd921e7b85787ef934d0796ba2586a3d128c453df8bb820de22882650760324c6c3657813d6501421dad291f7d43aa4943acefaa703a30851145b14c4a9757ca3a004bd864a29c30ccae89812128e463da2fd467833e268212a8707332dbc2b8f3afc2b8761068158cfd64a0a57340f190442477a19fab0a2c12037ccf7550796da8489b03acc222ac4152d9da041117d5f35368c8aaea028ade31bd477e79e86ac697047d491395ade1c8da3c9688e76436f70872b32067187b76d633a87b6f6c9163ea12de9040d649a9ee483e534543a09c950e444e46894b3d1162bef381243f96680e0ce749d6c272eb040d3db780d3d05d1991c7f7d9f9cd47c9f9ae81cd9abd5e42bcad9abb142d7bf96a8630a9d8284f4fdd712efe5684f9bd6f110f7984233fdb9f0d42c25fd12e9d7b1a4b97fbd6c5e8f096f5ef767859647c280041d86275a1e210311bd515a1e0983903e42854c9fb43c428512da891ccd812e2c3547a323578443f2d3840f6724743d09855e2c257d455ace8cfaf5b00910af1c0a854e4441228f22a60683441eaf1731f5fd0b83412818a3a317c42dca68e548e00e1da7900ebf83d3928ea32a44922b87371b0b12a45f23b025864dee47e14d38a4e95d78ea17be01da1056e3a55f5cfa498804df089f84f0c9c68438fa8908e2166527a124fa65c1570ee244bf7e6fc320ee5fff5e58244247facaa28c8ef435f52b8b488a889ba309e90dee885e438788f23704711f11d3bbc714d2a3eb7828445b72df1f70e71382a8c4882e82eacbc3399aa4a1497e4623da2482781fe298f98d771c11f16649c7f0fabe468d31c3ddc09bc2601dd7016f9b04c788b6af3681019cac542a954aa5924a2412894422d1f77ddff77dcf2df9873c3398c74c29a594ce66b3d96cb6030c8920872418b6dc821229858442cb6b3943bbf1c6e8ac8650680af3e72dca88f11ff26c35a35728b5481d0197752645002fef62924675fa2e067246049377a924236f1696187963bcca7bb5d2bb8bed1069550e5be45446404ec902c82ff9b914fb21cf0ce6315b6badb5d65a6badadb5d65a2ba594d2da236900f1bd1ac0370ee29b45cbef929617c919025cd28c97a7b63a43801c3241aee88510dd204ae2007258b3e92ce56a63bdc35a5d8dbaaa60cc614db29810b7c85693c9643259b5d9aaaddaaa4d666d32ce56ea624c44d1f7893ed127fa449fe813d96e58aba3b0360a6ba3b0360a6b614d24ea62a22e26ea62a22e26baa814ab33f78a622a754bb15b8ad93ccfe6d93c9b67f36c1e27eb3a4ed671b28e93759cace3641d27b3719c8db371b63d6adbbde337125dc9eaa4647197219855558a485d6cacf1cc683c2b2b2b2b3cb459acead49d1a4ba552a91aab3b55a7e6dc84866e2c2d2d79d3db9090eda7c7e7a7a5a5a5e5c7a7a74667341ed18b172f84c0543600206e8cead01d1a73717171a131ba437568ce4d68e8b662c58a15b72121db4f8fcf0f0b162c58fcf8f4d47866349e162d5ab4e0a1cd625367eecc980b172e5cfc1702cfd8dc993addadce0071a1a12d6f23f8fff0bf5c081c04964340743f754688d32d7bb89cf385c0410c0008dcf1d499039c0271037c8f05f8be3180833ffce500bf0618c502e08f27c08d97bc5342a47ec85b0ce203c0b2aec6dcc580c013c716e0da08007f3e50bd3d30ba0f55ef0f8840d0853e707a1be1fdebc01d82ee9f07de230480b97ff787ff80a50e00def2c707bca54f0f78cb1e18de726807de52684f9e3d67371bbce7d0a63c9bd2e82c07ded4070078d39e1a73e15d7568f0aeb34aab3c337853a116de7488dea8ce0e8df54c9fa913eb625dac8bed2eb6bbd8ee625d6c77b12ed6c57ebcbb9b17f378bc1fef76632c78dfdb16c5b68867a7883011e2c9da624488a598a647b1b6ab77582342d45b14a33f177bf8266b5dacce489b2124a079946c3ad3e88e98f6888bf3c3d7298105b3cacf075442a441f45e0cc4edfdcc8aa74689f968ca6594585d51a1d8e781134fed31a123e5bc6aa7a494f3481b477b3f74a4afb6eafd50bdaf0ac7833a54eb90cd123f50a15921d187b3f57a5de5113b91c8c34bcc91cfb51608e2f674c4d1a8eb6a1dbdaa0041b2a8a9666ac2d4a302846ed48954802069a4f77badb6956423fd70b604e226f9785e87a54824baf77a6087e76834b217553be4bb879798aff8621f4b74dff77dd67a3e5bb0b887e733c2a3203a12a22325f9906cb46593d0562531b9a9266924ee52218765c543bedf6c3d53eda607682de7dd51d0ec0e82528ab839e79c72ce29e7e45eb90254efa65afdf184d0192f8f82e88ade7079648381e8d38d44076fa727f6308802b6c47aab2392c03ad22db1d6a16aa3239be686781f85371cc9c746f2912c6aaa55ef9e4c9b6a9ecc14932c6aaa917cea8c779a7d4cb54cf2a92b3ab2f98c6c1d16d90b76f86aaec39ee6ec1d553aa568f49da6250e96850e3ea9da3372746d319356476e1b9b59f9b63297ef6a6bb17cd7a016df5568c5eb0d09caf562465b52df224de9574b2f06e256a15999e7d9a6ebfb413589a6209bf6b40b667163f1848e2d745aecd421af65566b6d915be4c4c4dde2d682d6722ada1a5a2be935bc21a1e04ea7f01017dd6e1912b2d5550b91165a0b4fada5c7a5ceb8684173d10411d65a6bb9cb715c7893f202886c58fc9393ce39ad96e991ca9c2f88d055cb3f518b8b4b8b7d417369c12f662c5e3f318b544b44dd3413f5e65dd1bd37f589ab76c13927fbd0b117b14a11baaa5985060371b7a45e6f710af4bcf026e55e5800918df84f4e3ae76c69a15ac43e9620a1ccf456f951f15171c1f8869fe4acc05927efa8d0ac56a185a47f1fd811418ca13e31ca697883d2019ae7b305cfe73148f8c50cbf48e117b41788bb65d6c2435b3322b485465ba8d7b714a1adddc3c63478d4abb4e28b59e66969c92d1f11c4164644e14d8b1a1deb1444eedffca6aca4163c2d8a8c462d7852a916455a18b177c159878ef52c382b41c7fa1638efd415680ad2f529dc82a705adae627ab7d864ba7e4505b7b0c02da69e3a23aba947ecd1f52b72cbacae5cd0d382465b36487bef2e5b667404226e9596196da1bc5ea5086d918c68d337f862f682465be0953457d74ca32d10ccbb471dd2e159de22e24c84aeea3fc982f3ac05e2d4e1770e6199081debc3d3695b5c684d0df1d479465b2cafcf44328f666179b621d6215d4377e6d15514def4a8429a74517843ba88a54d0bb642a215d2a914c64015d233f3b04ffdb3795721929e2ddf2d68960cfbc54cd7995b6692c502d105937e88750acdf2183149333f2d46790b2662b2c488e98a72195a9b7b54211d1e855657f5f7ee169dad42d3f52ab43a23be5e8587b6c0d7af6059572a588e6e8a78141e220e5d53de5f92129e92652f62143b43d0eafd2551b1e97a51cb6cabd05a664458ae05ed4a568d6970468e0d3b1a326fa74e41d6a11ad4644e4be9b5e08a5aef8a3f859a33855a71ad056d8e6a1cbfe22be614e7ad4346ec783be2ec51a9e791e6afe90530226030989c13074f09abe321e1215179bc13549e09d6daa3de2a0dab686badf5b6a2a445c1b5afafb8a67e7edecbb2bb0c1db377ef14e58aebbcdf9c392ee71e6e1c6052a188f92a88362f200b414735881b9443ad2d8524a0b7f411e2c8ec89dea2a8735c70e448ad76e486463b7223931db9e98e0809dd6eb5a747b2a030e79c74ce49e7a4f952f094f04e1086af524a29a5d40859ac4a2aefac4cc8531c7848e87824b0413f440f09cf87e7e3082b10b7c7d315d144d8e9d1b4fcb67a5bd21010de6874596f3647cfbaaa4236df75a88e540a1972a4557f5759cd779dedf05d6939be2b0f00beeb9c9b0ee1f8a6b71bdf3567e6bbeab436a5511e5acbe19bf6501f996f1af33d6f33be690e6bd21d19df3416e3aa397b5e7c4f1f18dff3679c7bceb9e70e9e73d6627ece39bf65f494289fa177a923d719aba3639369481957e77dc59abcc51d728e3c0220eff1c64fbd57a4c95b4ce1c83bf51b797f26efb195777aeaccbc36f2be628dbcc554ea39e4fd9146dea34cbe31795f7146de628a9577ea30795f46de638c4c631d8fcc2a6f9971cc7b3c8cbc9f7a91774a7cc95b54e57b453195fa3b1eead3f1509f6e68262333aec87bbc4bde4fb5e49d12556aadd666a9eccd6acd9bd54653de32df3f114f1bbb53677c2c91f293cae9ad12b445c44da7b7275839bd4d42ba566e5647d2943ebb591d159cf212eeb489f4434cf97c2a954ac99c379b2f61ab5570133d2fd6a153d529584a96e984a536a570909e5fd9829e221e1ae2889cec914c37655b094b2d6dacce0efd179e0b6f48d9861866142cf58d3a6365322bb3322bb3322bfbf9f9f9f9f9f9e176b81d6e87dbe176b81d6ee75e514ca5cef5d08ea7aee87362f78a622af58f238f2723338e7f2a258add90cebda2984afde3e8cd401688f3a47fb25b63b61f4da7fdf16c7447cfcaf57043d4e6589e8e47538ea7ea6e48d3dd0d51fd1d6481e87920096f31ccf9db313ad77d5443531dcd65c0ea68eedbcadfab65c849ab63b344cd32d45be9c0ca3b77b4504f04e2b67ad251d44960321536ab28526bed8a9a4ac10a206da6978239e7153e5aabd1689d4c76df20eebaa367f7062aa3322121daed266bdd1bc47def9d9d139f54edc464331a4fedc72634446f393ab2198da7d6e323748774e66c67ce62d396a3b31393cd648646a1db523fd447fadc1e991ba3ccc7d4c594587b9010e7ad3b3f7aee1bdecf96439a5239d45199509d714276daeca471b17aa31df5a1361c12bbea4c9b89f7f56ced91ac795ac3269f8c117db40b2d8f5041d35f4bd4719a4b7c68162d8f0051a1bfae04a258a3638f87842b11a12d3aba8cf20eaa419e3ae3c31b0222b283a60769608db69a908141c98c8916a4a629b5994d330c115d86b0254d3c247446f48f2ec2f982f7ba8ed02e51086d491d5ed72bfceb77f4ba778dc2f0baf0e8217efd093c5494cd4422f78661884521e2ac465b74f4108f6638c235958637e10cba978a3291465b6178b1165e6a712444472aded3d6d4f20810114d47e19551e468ace51128986807e8308a21bd4f464c333d445b281b6dc923510439d1b40c7a9f9a1c8942882e6979248a9d244ee420475f4b276e30346ba27168e9040f72526cfaf5bab3c82442c7916d1434f21925d174c444c396d86802a496a8a44bf5b6a1a0654aa19101000000084315000030180c888442c16896e4a92afb14000e88ae56704a19e75918a31462c8100208010000000000302232d20000583d0b36df0f99cfac998599ab1ed685ac3e8644c2e6ef001d68853ef40aa78697720d9cf6f53f50b7e2d32f056906beeb23c85bef01bd2001700f060509a6f640384810d883b820814f28a6b69f3271caa4fed4a94c8a4f44e05adbce283c2a6b4fe02470710f6d5294df6aadad471165bc8faf40f7ed4424b37d7d0fa87b53535dde4a90d62e3f935f4f0c9ce260fb312516a78fd8a62f1f54f363ccff0ae2fb84ff77ef2ed97b3f2411e07e07ecec33aa4fe6ab8b29ba5b316d7612528a5558e4779d3fc3d904d6ade7249d7285ddad9a92c6b2735aeed86de3b9083368adda9a717f725403c83ded04a94e726572f9bdf2f76d37f6eaa4d283ccea36af51f7708354a44dcbaab369b897a4a293799b2fd92f0fd2f8bd7cb37baf345e31ccc7a8201c8bea69c9cdf6a03abd2375e1a94df3d121a7de508dded514115a7402a65e54a2170904ec3a327342d38f27427e884dc1e9e441b8b5da743528d0743468416f906e851274187b0b1efc123dc5e57c86fe2847bc8a3ee5e03c85faa9865a742ba28cf6f115f83efc869ad9febe04bca7cfd033b0dfd780b0cfa963c7612292d9debe02ce7dfc5cdeb5baa86ad79f474334bbc1b381c40b3415d5009f52b1508c5d2c98848b0fa27d0a0f75bd9858d27085094dc69677bcb084f0543ae52eeba43269eb8c0985b7cc761fe0a652f36bdf6373ef0c780e0e7a4b7f3cba67b853d3d686b765a65f2c0054820aafbd2b26c02c2ad35e4e129a79f72534e4f0452445852e63c3855dbea5b11c4c539ee08855dda5189ca6533ed46a27469260b8ce6d32345ff5ad2a95569d49e2fbf00de00eb6106bca7508e9f75c795b39fd32c2ba4b770a64137ab84b57f4823998135d6c1975d05b24dbc20228e94c60237f8041c8a2df0f1198b72dfa46be4f9307ef82b963c95e75a7024d75b3d4f7dc08304f928c02ac4ca07d556ad7b9eba2645f80590f32b27c020fec1ec4e845dd1a7845c84eb43227689a688517a4b905086f9f8ce6809ee0c916fe08ac9b458c4d47d395ae8d648d3ea7e64be44ddbb8c003717416281b03d683d96ee3bc6e94296463377cad607b7774314669ed25ee4980953567bac7786f10e2383f601af40e9282b71b0c18d72bb8443901633302765b23653d61709ffe158cf20e9209341702b78b75eb219d11a7df3d7e6ff7f1703e0b8f9008e637b3bfa5a92d415bc4b94b54d36c38fb759bddbff3aba608e2febbe071fcde357d3d63241f924569d5f6a1f193faf6f884d7d0e507ed049cca0c4c14a29dbe7012119f94406c81735604233599d9717778835abbf58c81e484bacdcec8205b0aa17926b165eb7e8f3cb0b56ec33ac9a79eb48c957617633d7c5186241f928d6ad9de83f09ff2f5f484d7a4b7d22916f546fe4324257a261fc532d789f89867d844c4cfc8a25ae03d211a9cb61be5b01fdaa83a1877e14f07b30077d292deba832dd69b801a610d28b0f2e4a88fbab951ea8660158883cccd46b53f7f939bac1379f6d48c7a6a6eb205386cce4dbefa52ab69bd37dd08a9bd3b459c34a6c7004f1fa2725b8446612566744a4d5bca4ca5e750eae84ceea705a7ea24612a321bef4d53bc1c3a19312dd1489d2005a6453fd1f82c6924a301d81254fecec7835449faa6defbdbe045481a7022460892ff5e6a47867b04e962d78d4b12e0c404f8efe46d459bfe61222af788500ad7b96210eda1e2d23e2e07a808dde0f99e03ad4e84734f5b20afe46e91b46521f05e45406ff73922f56e2ec5c830e218215616070cee4108b9b66f0dc87be2b0c564445c009ad837d38a8b0cb6486fe603a9fd0172136268ae270c5295830d33bd692c388435f5b1d0374f99d0fcbfe788d9eaff1ab45283e7cf1404c1970f9a89357f26524ebded67ba32b0ebff954ce9f50f21c1c9cb9047bc98e75d27ae7c04a228cdb4560976670524a6bc7b6789ff3b4bb6cd9f29f9f02c4b8b677daceb429aaa6722d8ba0a49d6a5990cd6b2fd4eceba0e736978d6b646053e41e2da4a69816fc4a09c8c2710e614620f387cdac7cf5378f46ba737e31b97a90d5400fb6d82385abc31a3423455c94470c0c078073afe3132391d8b6f7d5398feca8c20aa32f5ba7cf1789cf6c84954834e6a8c84b17a04fdf0fb32b127242be11f214b4f6e8b59f873d41832403cec5eedef8e2af5534d9c447c951f39fdf10b3dcfa3ba3f2ae4d5395315cd660105f116d8e732e5e1d2193e4133b5955b6034b02114157bc64ac5b8701905bb4ce31e6b05418649d489d443e3d22630bd3741e0723e6397a95db0d592bf6b274696e32748004b62cbd44c6ba1822a74495943bab2e09d4ef2f0f59c875d6028ab8a50b131351166ee1b752f69def8841796dfe801595031e594402a08aef3e42f6c18d27e2c57aab5d72d35468f650c0db1a6f947dd815ce4ba91644bf3d6ab1ea641da60790d1d106c619cf5d4aa6148800325cb4416c6faee9c631aa8024cf44f7eb1ad5b8c61a7a89b99d5d900a7066f0cba2ac3eb830cc1875006375b216b42811d984ee739bd6a6415fe4527fe705c5a390b3368a6d2abba47fa69332ce61ceb8e70163c32ca5d148e0f7e0f5e234d48b112839d069a9a64368ba5740f871bab7280225961b52a7027f8c0bbca75909e084cef01211e7d1b9d27f42d62e51819c84fe406c80900be88bdd0611b61fce8f6b3b0bc7eacf05dc91b0dc1a60aea98676ed8d5617266a176078c0ad8475314b43fa9657894e32a87f8c1f56435ec6a7c1908bb61a2fd1e0356a3a087e52d2a3c961660b73728120d1ea87a6e6f583e7a9fd99142ced849766261b5670488689bf8e3e2d21a7458eb2f1db46fcbabe34c4f23499f6f7a38416ef1d0d5093978c61e749801c99b24e3c25ffcf36847cfdb2c6779d285b78a5f676f7205e4cae0e119287572bffc5e29af427923480f8de0299d3142b5aea9617292d4eaa25bf96f9f91141090c03bd8fdb00cd870545ca772a0325da23e3a6ccd3b351faffe9df17a879c59d15f54432f09336e90385c2602dcaad2fe70a90b1e2dfd063efa7826a96a62d60dcbcea1e2ba15c9f96ac8498509fd02c831fabf4028e824ead09d434cd5ae0272fb78e11dbcac8d6e54ea62f536060f8f9f6862a1822ae58aaac50d6243c1c96c6316eb0419cb0d7d9b729ca6cb28772a969ebca6f77525d0722d6de821af90eb5213896ca2f16df1109baf14b5a31a308381ca5e3c494ff1ca829957441dd3e0eb94ba43cc012c8db98a5aaa5e9fff0b500bcb816c1bcedf574c545387a59ec0314a19654ab39855984029ff70dbfeb575a2d26c3631d30ca3b5ddf71f00a0081c64a34db07ab7bfe3b38696397b0f7f310f37db4fc3b950b1edc96caeafb2e5d8f9e9d8531f7d6647cc96a19d66fd6514820178abeecc6478fb0c2d11645293c15a9011b9fd868d9a14978555cdf7523982f761719bf049f6e2e0a997cdd7c39c837dfcc85556335156ffff40d647ea2415ee592b899d738c892a735c756ad1364bd0ff416b865610e1a30484b2dba72ce1e34c85a1008d25a261346b30413192c7d7aa4a4bc04090d0b356b028fc4a34d42bc2851b32e5531df3380ad236f3ccb0dad192a56b107f3bce687b1b2919b1df296ae8575848c404a8de81561b4226541babaccf80bd2b4d9475566f746efd4febd12e1c678b677321ed385a9f0349f6072d13f9281456f011544044cb16a49dedafab0845796b3bb9c8be341cb465935b28d3f4bef9376d7de0d220e97bf365782f377509b601484e7ab34ae3eb05e17e2530efd860040b5f00ef59e9953c0d1092717fc86de15f99ae00937d95c9dfe6e0696dca8a47e7c8ce6763c0b01103bf655d38622abbf405d09ec0a0ac1327ac5358f236e9e22c404afa82c78a4e00f7987c26de82312877904ae56f87fb080a1017bc5939c5aef68779965630cbfd2bbc411e904613e5c6d8c89cf5b818dbb3a58c89850affc00efe1b7f08efb7f825ce2724a9b3a609152fa96d52c1dcc85a6efbcb88f2df4200d7a6b37454be6bcbd165f8f5a20e7d912377b53482be8bdecb11dae5a8db98770b43797b46cb7de00414cd1a213705376d73fa5f8d825577005bc28bfa497efbe3fd150a8013a9afd8badb31e9766084d134c9ace3136ee062fd3f70a26291c463ffb080b05748b43dfd543a5c85ed331ed11d48756444089ac784811421bcd25956bf957514250f04838ae82415b3e32db20203fd42fb50fe1e9b5d6df2ac05e1926470b1e95401b8ab331cfadccf591013b2389c6b3ff2a2c587b9286a4a1802f1c2d25de429220d417c402f5d889c91190284174c8649cb0606b7e2c50b4acf8e13dc3cf0fd872e5ddc9cbcba140ccd08f57cb6c620c99caeac66e3b96d37954c8e636710258585cfcde6e567a8bdfcd09af4aad1127abe3833306a91511f42bc5c1b39db15196a24b722e31ef4a10b5253c07322efb6ed810de8dd379b787daef144d7af338180635a1b8d9698142ba16a9772c19155fe9c4f75e362ebeff429fbf4e0f9cfca4084531b0ab162888f8227b3b321779cd80041837569427e7761bd250249ca67d77563860c80401de14179932f77893584f90c8497ebf03c4f33bea15c3a720ce5f8f5975da1f6bea8e1725f709e380dfa3cd9470a041f9a895e11974d8afa5886ae9e275c2b228c880dc798aa206eea2eebb5dfd8b0585b2519983aeba8891b0edb56185d39a8b03ba003e43044abba1c4ad261063e6efab90488aff45f83a2e027a4b6dfb02459fff0f4c0cd528325cf3c92b49d06a57175475646762b3512009caa4fa99272201da01d7a108a0a6d76f181a254caf9537d6975a9e4f6cfb672e6307270555daf7cbce66f88c3d89fda3e8911b4dd368d823cb0b6ff963d7f9746e7f37516951c4920706ba5a338f2795412f7b025b3d1029c2f7f98ec1e722849441055a64d2f30bc11bba8911d1f15de09e49ef51f46cbc457bb965b1dbd6d6c074b611c852aa0dae67b39014c4566461ff42555a4c80486f23e89db321776ad75c64ba4179a95827868e6e76008f012f1027f76a2c62f7beb9880bb4045edc808dca32c10680997f327821d7aca7fdad7e084085428327c5a7e22767fb80cc624df19fe4b4dde756417ab88806de14e4a2da3562e2fecf2c1de217d44026b3f913a05cd7cff64c0ef942c0464d31c8c2288834be6ab8590c54407b29edf8f31f6fb3976852a67197c333e25eca44f779a01d67575c6bb0e7198bf8036886255a6311faccc83ad7cf2287c44ec8d0db6f412de383a63831c5ba74dcba81241db94801dc788dab6791693715f439f7be8fc44ed734703e959dccc5676510e5ecfc3e5c50473e8e1df9489b3bc61a4207a2916683bb8c7e23c22af446b3febef9b1ee09820ce1537559be375b4cc623d51fba12dfd1d3b1a24c698a5789028accd69d7586f4cb034a76992cee8dbf11e2b6184e38d1402943804cac4148019738e5840037b2a155d67318494783c3d8c42e3f6e34f5e4116e5669ad74a0f7cb29a7a41e39631b1843e85c0e79c2547cfec68c47c31892bb74f38bd0b74624de1344929ad6ac61efbc038650611bf7c309fc89c2397072da027c4e4cfea63ad910bfcf97b1426581a58d8a64e4cabc8dafa4a9959dc0ccf0476dbccea28693dd56c47e3ba998b9d92b28000d554f76c3374f2bf9df55d66b5f4a0be4d971cc80d0bbb7b91b059eeccbd04888a2eccbdad2eebe579cfc8124b069afeeb745b15e6508d1a8912336d9c7f1cc0d261b412ebc51b4b5a1738562e31ce8955ab191807e8db5513736b268508d8b4970ec5ae99cc8dbc65ca12fd8f9ba8a4625e9aae70ee3c173bcf1589a3ea044095a4b52bfad2b1585ab6e15e44ffe083cc5f169ba57760849c87918858fa66741c9f405ff9e9423952e242caeecff62d8b332ce34c18b7c2f5d03844a7e27e9802ae64b3665c3adec24b53f58d1884da67a9cae7282d975d51dcac6f9c6ae7d21df516193b61fe9585e4279ebd48f7d400420f2e6763d73175967bbc280a8a749be93622c8c53a34b43a32b2242c289a6d3f2115706dc70ce8b133cb57ff07724fe7ce277f345aadeb94a8fd6c09682fb9fe973b514f870bc8ee2f927b913bf489302242279dab63dfca8839ffc5e59a2e17ce59a62b256624dfe6afdb6c96916adcbe516a5e011d2c1167ca19d523146e293e0ff5d3583875ef460717fdb159ee96910ff3a00a0c7959beae6cafa5d063f610111926f864868769d3dea952f18b745bec7d2762f23fbe8c9baf21c7e789065169564c0042cf54963f4e5f82d981ea63919f20cb3f321f909b281e95455fa73539b7a82cfe5de03dbe50107861c0e6adef9e75be644d8727c92abc3de4710c8ff2c67dfe553c0aff284900edec1470f4298baea0a2ee3e2ea89d1fcc67595f21643501ddd0562da5511d49470ce6adb2e4c17e7aab33ece00cc115be36e83afcb20b1a74013dd6867026e374f3d008a3f21ddb565bda8b8dd01790e80e7455beccc9bb79c8bd2fd2b00e20a40710e9f4cbbf7c73a72ab1a8f5280fea760bae1dcc037e6f0e32bb385873534abfaebc967a51a605bc5ff2ae83273e7a6649563cace9a417f1852c13acb25e5b4d5fba02efa1464f5ae012d5ba7c6c85fcc13b46b2b33eda8257dc3ee8e05114ae1474acaf4c383019de2883125cf694061470f0426d7cb536781db0f560637f9915288cc9bce613a2d0210da7a44d1259a38522f16337c66534c3bf5c4bf4788d35785bae155bfc42816e6f5e3285e8ef1b986a56236579ca5920d45999f6e51320bb3fd0047f6b405bb4f502c8f82621fd06b27fe30870dd0f50f556087cc4edd7d7daec16a813377ea7b0e571386d11b2b27d0a64f707e9f36f136f8d961e63227c142fc7ac92385f8ed964c477c1c1567648afe4100ab2c8724cdaaf9fde76ebf80756084b1b384b8fc7ec98e52bb3320b94f5000123ab17b7f85e3726b3d855de3cd6424b7fee8c42a2679466402b3020a721ed9c6444042d2ce6f0744267e49e88f9616009a01b193fa8532e6aa0756a930fc6635f62e4324ad10e2b0acc525a3a5f8521c3146803974f6fa1f7dcfbdb4141ed2f49d121e8b2bc6528c20babce58461021bc515f804afe3ee855f9bb2086e93acbc8db9789fd4bf6f59c445c98e90ebb6fa3c311177afc4912e669852a84c8f0dd983750605e1166c7a0cbe11373db8db825f095e66c06d470caab7ce0989d7a5cb9853b1e4c7ab1a196b7ea22bb40eedd534b8108729099a004c06ade9a381064c7124463d2a74f4950705b7f95a5b85981ee1f787fb3558abf50d2a0c2dc9f68dd0e57d3b66c3a9fc51f080270b5b7ad16de82995f4c26f2dd688d6ca334fe863834a156b0c256c68ad64b611af5c433d1279a130313f7ced673c58a08c3aefb0558f25c33f54db69740e72358ecf7a091c49ace2a57bfc3b5b34758248a58b4be606d27ee1eb889a36e40be0c98f32d77021e9acb2c68f79c4126ac2d2ffe442e3cca99b3bb261ef48d646ff80b17f16d0842a475bdc1284a935e7890b4ddb7100a8adbe56511cba3e1f0d01600337d57b3001bbd270da3be018219cf4dc7384b2619f305a965091d248c06db0c492a6825b02deb32476e57fdab544be31344ba0932d28059e709029f697c57fd96d85dacda24b305c877eb3f98524be9f40cfa6e14da0c7e81faa5a027ddb2553dd1b5d44789c339f2757976767ba375c37c541137094f72ae790d711d09e840fb1550ddccba4624274883bf8e08562a2156972f9a08d19b447c1ba0cd2538c8e0cd46dfd7227020cf44157046173cbc7a48e9993247185704ddc2fd0a5bb13f26854fd0faabf02256184d0c0a8602e1a60dd6a47a11fb437a6adb97f66a4a18b8eb1bc000c0400be997a9072ceaa928112a9ffd73422147a65dff40ebe8dfbe5a277b595279b5d02bc220f4b02ddccf5153196b913533fbe316307b42f572cb91b5a2e7f22a4bd64ca3787885b8ebdbd9e349b398b3d6f2d97b4b80da6ef14bb69e4d83562a79299d56e679c26f0006e0336badf3716a2d8d4da55b696142c3b9c240a4252ad1156b69fc575a6b57d5a4d3e102cd8958b03728adf921e62e5106d0f061f3d196d7f0a0bd2de2ab848b88bdb4bff5f6025053f75cf926de8b441d5ec098db645719aa8274f0e96de8607408e85349906e9cb3625f2ba85615423c95d9302a121308bc9c042d0dfcca6215a3a02d8e96a02065d9e4db00cd32ecb5f44c674e0ebc330740958bd1559cf9c392cb4688b1a62b5d7de555d75f92784ddcf63b9ddab84a53f2038854da03a05771dd155a8819a54dbccd9ed9ea420f0f696363dac82e71b99ea15511da80a41bf04c2ca161ea806989d55ab0e17ec32ea1390c314a3f80c4abb8aa2aab6583c0c8b1b034d69bdf2813c21549a96b43066b6d1b84fb066aa07920328a6ef4ea1292ab26917cb9b481f960b2ae49aab79f8da262ccb203cc32c52c950c9ca64fb00416a041044eb80e06c0b85c696bb3c21427cb4d8edd4e2c44b6fd57ad7031c632a9ae519a18cb0910d57f7a04c5c6c813ef43121054d140d6bf64acee56f1ac95249312225cf5c22c5dcc56f1e04de1d1c97dd7b8e463d12dc796aada4c48dbff2aa1430715dbbdb78537ce9df978edb3e7c5ce34200523684d2fe6242f7c181935dec742dc1e2a9e6088d443d38081fa678478100d8da0df944cf13c22a8fb7c0a9aecbe65f2088918a9ba36815e8b743f01b0f01b6f90d6f6418a6dcc5c45c51188f6d859b1cdaea0b7c5f2fcfa879cf8d445cf8dfed40fc574fc1441b694687685fef04af1a530bfd07b3c422a0b22458f500f46e963e8dd49cf4f75ac47b0d4cd11c5efe2e96358d1399da8f9a2549f5c111556a7d588dbf26ffadce21b0632a08af7a838ac2f4be13154829802e819be13e8f87b557403e5bedf9cc70954fe8f8ac1de605705066991aa42a3baf355fb13ed5e684fdca0ac9e3d6120099c9ccd5e35df20704044be53ac530a6f0c6b3abe212382c0a2082f9c09f433d13b4c10b252e4ae47d77bb74aa03ab618c01a53314d74334319c67a88c9c0cbcfea291d847a2cd48412a49fd83c3d52c8f15466a95846d35b5c1a9f14001f898528cb1c04b2b930da0d70a7d0a1a9b34beab0b1060547d66063c1c3df19e8fb9c8d1073cf56cdd95211cff155c502705163a67900dccc901bb874ce072202259d184da3ae1f949df6b28ee4b746dceb00395ae09352fea439865fb9e8de03bc48ba062bda7290a50356991d6e1b56a31b2cae72a3c666ed652b417e6eb141313f671399de6985130801776a4db72b781e52bcb49c753aecadf6c5ea50cb62426b91860d1b1f4598fa3948cf629d51559e29b01edb632eb24e160c36b3a5aa147fd969b6857016f75f1868c1b250c10a8c02d551ebcf5c486beb340b8bad747aa1b5bd662f3cb75c8f85f896fa88179a3d50fa4fe352ed6fe57afbe3b931fa9b2e9def3b52bc6ef2553c4b4e18f6bdbddda6a67795087875f43efb1b91b7b9efbdce237af57abc9e343f101a5f6bf2da767353dd520cf39803bf762dc562bdd942ee8d936a34493259623f99c04da4df3c107a5962bcd654ec544a95f66c6d1e00b0333eed1b781a8b891c71a41a7b24591d0f3b02e771ab2e5e4b76459532a559b10442867b6c52454064cb3ac53934cc6d4d0a7ebd27c299c99f94e93fa80a641b4b552d16e4131b029dcc6ea1bb7a91beaa7fba7a4a3e09baade8fe02a523d45250566260b94371ab05eb9c922d043f33841ae51df3fa2c5a6c0d846c50feaca3d6ee6efb593d15bbedc7eefc27ac0f865f55a1902345bf12d6f1ecc0bdf0fb0d946111137543936608fb5df504b060fdcebfbf48cf8b01cfb8abf3769e0b6afa64d5e135d937ddf4a1c0a83d92cbbb9a08ae8522e7d1e1291c1739998efad40c3bc8ce1e258464374eb5aa6ea5d481546b30c9b64d62f3e6c08f2e71fd8bde263841ebc3ad7a474a2056912e3a4ffde44011c5fdb2b55f430ef37765c7902f63c602ed1af73a0490cb652c182289b1807ec3bc1790421a2f5f088770710d6e1dbbb19b0865ee523b6ef41a0cb139bc51cee61c8bcc2ec8a7b72fc824d9613040c349693fb6e4a4e9c5615f0072167448677f4f0e8094498ccfc9cdb53c85a9f382417dbee8fbeec360f262f1edc3fb62a0629d8203ad82b0cd121d3c111d9aa58e9d70a1d6f6612a1028cbbf489e61cf16a071064b70f64cd8f486a716e0ae2b53e3c62bb25b1d20d589d6ebec26b9f89ae404bcce76a7d04eb83f2147d03bdc71ea7f2dbcf65c0b1630702f9004e39f6528b27a4c5507796d4b1ae10d1a3a94bd2be15a53b6e85499ad41c9d3f6264be9d38feaec2f13d23c0dc55827a3a27cf2098f1f9eb644bf3e0b0e6ad77d835701d5f9b6c56d1da613c2275289157fb0b1d97a2873e02f087e8bb6113c4f2ee064a6cfaec30a4e596fcc29f6bdfcf14c4c7a025f9aa9d5f4e4cfb86961af5d13a064805c58d9246809bff9150ac134042e1df65b15fdb593e6ad3d806f6ef1bab559b9b5a7de321f22eeec06c5563a3ce2ddff86ea3e86d552ab1f24d59a518162641bbe1f5d50ad82421c33f6baa0e44c7e9ced0e86e183910dc5b01d1dcea0fe158a50ee590de0f2b3591cf075339a6bc308e068004441619bf35d0c267a3efc0d347e83e0a259792d69e23e80a61d01526fd2d28b90f513ccc596b6b0e282bd4f52cdc14b58dd517898272172ce48d10c4ae6b42528502ae77948f2990acd4531908013dcb7382beae573c2c738a423d610c9599b625ea6cfa39313b296cc05cab42d1d61236369b7940311f2064680ee9679aa8d7a1f7734daad9618a17489146dffa3147fa563cfb2321550d6ea2a7b6f18e8fd39f47d40f78d07adca15bb4ef993cb2a40fdecd742407648a321625513e0b957eec524352db0456efcc6d89f647d8c7f466db3fedb007c75313b8680e0ad7940b740ed7fd41cd4695d1dafcadbf602d0453c9fd37b927a189008a9498a724dfa0e330f938409aa5b7f002d953c7bcb386926bdae35dd5a9345efbea1c2ebf0592026c0044db5ef8bc2fa842a7ccdbd3900c6c796d4d734a79009364cc262a06a64b03b083e9c1c042b82b1a1013f08c8325ba667c0fe5bc6bdaaa5888766d498282c4388f9e1fb6ae834b5be4c25224d86500f3022f88377b53406f653fd502caf24f0649230e91099c9a7d6ebb4356b2b6db5f750459e2073a4a354461ae86fc0fa89bfda390c91802c0d801fbdb380d6bb474a8e46446a3c5370213fa94ed61e56cc8c0d5377251aa39f47d34022adab5b24f30a44cda6030147fa7cbe98cbe8cd84f72db9b3e6f65b6aaf70a9495297bbc590081dffef67372b105682dddf495d3a327e877bfa91b31b2337f48bce95542e9fd506073640a876901913c2eb64b8b238f00a7213b2ffd21ad133fbbadd8efe130c31c623310538e624830bec17e6a339c340fdc85610511ba5a1f8ee898287fdfc078176223106100e9f4adfaeb6b4bb5ace5e80c2018fe9d9c58e0303280e87431aa49890190055497af0146d60da80de185d4f750774c903e326963373b31ec47bcfd23e76f1f8de78a48bb61232e86d98c1e2c25097a035474d4ffc652b341ffbc013dc014df1d84e9d0a2e218d9a47cfa15d0d4b0a1a972d97431e02800147adb6d758f69994ce422f7809c9d0d733bf760697b80508c8d96e248f29211ffec52d4b53294972e1b0e074898ab00812d56e8bcb3a601ab031cc4b4d1239df1dfb2317fac265e7e70b187eb2ac706451a556ce6c87fcb1ce4d608b6ebe1bc34a37e86992d8a5c88c83bdd49e1ba2e74557c23a5ba417c2e5a0feaf3bebe97d825e265defe2b278a234115ff205526b0cb8ac2bc8b6744b2271e459bfb8c2c8a28d206485a5e201858fa5c7bc3b0730d5ba70aea6b0dca510ec54005b355827fe6712bdaed4b885e0c65b55b4b5f2b244d580774605f54a267b48bfaea18b264439036f7ddf0b50029f7744e2e0ed0a10352af166079c52bb86ecb7546d711814924f5a34f18ca634c8d4a001120d38186ac9a2cf7a1f2d6266920da1058d4c7e1a83d6b75eea7589fdb11d843dec938a129d239454453908be960fe393b42eb09ae02e8964957202ab7b445c72bfc858ec350a8e5ea943ddd751e8fe8c9aa513c61292cc83697595c25d750ac77e38f7017b8e283de296d997e73a9919096a790d7192470f8c4672086fc88e4d9b5f692afbd53f75e592073c2e083113fc65de8444864da11fdc327aebe2b1811e57232e4d4f45ad51222406b7ececb1b4abeb765b9b8465158063e77ad25901f18e6cc835e1648c881e0052fc459fda668aecd8929bcafb9d3df2c48d05e93fb28446b899c20dd3eadd620cb8abb679f68873de15b7f6be428988d58165ec2d1a928921c84d87c856c33fe310b1b2e19c568cc412cb168fc60a0e5b3547140ff495972f2231f45ec0606bad60922ba680d9da9a8800ad996618c066b63eeabc670962aeba10c40fa12d0b20198b976fdb7ebfabfa25cc2a6710ca9788d315a722c55e210a7d18229c6aca5b2e89c1fa5bfe9dbbda6911cf3adb01c1268f1b666806935eb97a4141592525025848346277ba87be731fba826d0566a12c82a14be425d806b4a490ebaea39cfa5ea5c97d1c7479c3b88ff602029d5fe636acadb2ce8421100df1d4f3fee3220aeb8c78795bf4772b25ef4a02881e47e1ff098da157276467450b1ba11fc1f45d1d80f5538fa72a080724472913ba9f43359d2b57403cc07043d72a5cb6f71363c0cda9bf173bc906e0547c17c9b0fd9829d0ceef851d91d3b067f37dc91238311accb6b1f66ec647f45be506c0428e58b01f6c3f78334463a39509466d8a3206ffa5a2a0c6e8b1e28296c8648601aac0f61c127bdd5b007f350c676d063c4ae10b640cc5e35c5f8ce485b796e2dca15c79bb5dfb109f2966d4683d51f6c40a5fbf041991cbf2df5f2b9231a5e47bc63b7977dd3ca1ab47bdf0ef8048d03da90b8effdc52ffe72ad4e7905b64a31c98fefc1f6baa648535adbbbcb073cadf99ed27986da4860bb783fc5d18f05d79a782635955e540a5204d2c200aff0f021cc33cc653a160e22624cf828667deb283211cd5e9fb5722b5cc55b52078bbb04ed49a33231e3bf08d2c0f52e38bedf1a9f7c02caa5301a0d58c9adcaf8d2122f65acefefff15982a6de33329f67e554507d52d964ccb19707410517f75c4405e10707887301dd4a7b1641353a60e36e58990b85337c439cc6821b8bd8f78515135aa7cc863a288796f7d0b6d9d5e6fdb982a51c5727bedb2bf7f277e5e13f5e6ddefe2bd6cbfd6aa3bfbb722f9f573ebef3956d833d469a129e3c91e5eab5cfcf950ce77035f9fc5e71d7b7ab0ffef54afbec5fb97cceaf9aeda75d177d20fdbb6a3ee472d0f8a0dcd04ef20b3deece9760335e907987c2779bcac1b47c6c308c6c7e1ff060ff749a6947a8e9396d5b24c9d9bb9a38580bc728fa61b2697bf191d33f52d12571d1d212066fc1e4375b2072d04dca48462541665ed983ab0ada53786ccef503c1edb1ddc1a762cfba9045d5d18f9d9bb8b69e96e8c234c5ed1f36341816b0272a9576e8084a152921e1517b40643e2dcfc2777aebaced1bcc2786b6b61340b3f69d7c7ae426047f8bd3ee3122ec33c9918109469f9c50e07d35de983f4c77a5deb154c03cb8947d7d470950a14b5cfe5a18bb38088871b48cadba464bef7b05274e8697b716e540d5a787d007918c8d87c26b0aa5e3301a276a6901bed8fc048188b78dc60d0d17b0573c2a2bf48e7761955619fb86a458d83ba7a7f1482605ed9e043ff89410a689dde7f5c6ecf92b33ef4030260c37491b3fd3fb924937f3ac3c0e480266baccf48903fd687161ff66a059e9cdc92b74a15131893bebe453c72aee4ca6131fdd88f152adad2d49850742c4f9eb47721eb0bccc11afc7a200c1d46ac86b1a30c519c7fa47e86b7c9b5363a98e365e6989b7303dfe0ff4cc64fd011c1f1012c2c3d7a91d96dd1717099b07d4048deba0bb0df9e09882ed07cf6c9ce88463f5d1f6cf72cc8273f1d9a7922af64c8558f025615392e474c972f263cfd10e57b60fe46eb0c01db91a5f0b64ceab6819e65dea2c676e316ab32b35cb37bf1ceeb06f4710bea3ae0e8320c281ab2070d4b8bdaac75adc1b4f3c0cb01d1c541a36ca289d5b893d4bb9b41f7f581b721d581a94a58f78cac4e20ba46991644d1c14a475c8147dfde6e2950facb588f8ee059e40ead4c1e75884a0a5ac05213aa764acc82efce846d45ec44278d81f9802e305bafc1f97d8cb7d2234bb63031329daa84a658372c55f48dcc032b403fc02b8536b18027a2d20d123c062a9b0afa5560262bb09a82e758d7be62e4f9fd8f696b7023cc30cbc7201ab2340d8d87cbdcb26c976d05f28abd9e15e877afea5ec4a1267e689aafeea36852be19f6d3410c970096ad839ab50b1a4c3c44352e2055aedbb51ec2efc618db1afcaad71f05c5cd575bdce9bae70c7454931daf8152d943a8777848d809cdc6b6da22ac634b72d65ac1d4c18375f5d8ddd8297b1cdb747359db07c55e635ec324b338b954b31a33eca5e13f3ceaa1b52e8cdab0ac86b64569c83fc0d59ac22676975ed64fa33531285aee8a7489d2bd680ab2227410573acd8898f2e2348ea68eb4c71ed65e4639368978ccea3800a0824b1d70e56576392e25164653b9796b024e8e6b640a380ba08b26164eea12cac15f13c20a15607d6c10977f772471c71cc05da277191e09ca405223e66a40ad983a1efdb3b6eb7bb2ec5d00a7cf179f9e7c34042c8e49ab10a02398342106861188f35febc05c1f1051b7178532b70855216fa54f8e84e8909657a02d94aa1e0e5455703ca60c24f9ac09318b41da329fd919e086499c454a92bc98db0853edbb5b4c29a407f7d4eac1a0fb669f27e09f33e82980e3e5da10b29da2cc1338944adebe591bb8704b594348c2b6022c1dc4a289fb2bf943a3bdf498751defbae9da35636b3ed7ba840357791e0e6ffe474c804188694603556b92a51703bd9b0a6681e3c7ae55956a8d21a893930f36fa190b1ea1614af322e5dadfbdf6efeee2893146e31dc6237333b7c04ca4f6bb12d477c26e07a7a0f71bab4702304a2fba2924f4fffdef3eeff8479dd7272c7db585a5cee45f5b86bfdc8ee12292d42f0a4d68680fd7fb53eab5290985f1bc89584e84530b4cb97a62ce674368bc67e5b1801f68968900b496dbe883689312eb9d66f9525bb657006563e199a36b692d46314120a9ab156810400da4789b5795431a2fd99c9bbc515eaa9610786a215fa51ca9450eade8b155dc163828e0333552ba98dcec0221481d2846f6c454a8b191990fe00b51d0db97f0f123f5318f9e68e40377e854dcb3713b45850fb21fb0114448ee5b6f96220fc6a77fd7a9c9cc9d8a709517f80a0203e6d5f76432cffaf7c7c72cbd705116ea7990f661df90b6928c50f8c0b9abb83d7770da9adf07aeeb3454dca3e9a58ab94d348aa414ae6e7f17a9a5e2845e2b5a3f096096216a779173c83348446e82b0928f058da7983eaaf77f41b70dd7c65ea9e37ff7c255a315cb7d11ceb68a7c5fae434e3c3f0dd6a0636e54a75a57dc3c8409b6678a07c030a9a2e9c05d312d2d27f30a5bea2df0bafa0eb5b5cb5b84a4031c6898ecccc236742667e94398c086aed036b5defced9d6019b0a8c2acfe690fb5679b1b98e80901f9a6042485febfd855e7e23633b8ff14b95358c7504b1b8858f03ca9c43b4f9e2a0fcb07a621eb27151e6b5cb33651c5d354be5c924605a516198c5ae5df1859ef2a82d91261a76d9b85d9c9b2e631b16a3428a4bfc8ef622633544826ec794377dbc3cb401f88df2027b7ab5745880e62967817ebe5a0f4f53e2c48c51349e0c015b23c4d8ebef96fc3e59f545780530df64f8f832b9a0aac908aa0cd55b7dcf57501ae78ecbeb178391ef0c4da1ca82e11f204530eb194b5f9dd6efb2f9e808c839977425043908a631c682257482eb915ecabc479fc2cf48b0a2d0d862492dbec1d73ceeb6189d1d80b66f2f9af6d2c0a28d8ec8d25e3c426033286aac0c39a548d2c521f998376975d1d580c5009c3f64bff8d97a6a8fbb96013340c401100dec7226e2d395860565c2211649d78c559088029114c23295307049810e0375e1a5e21cbf1ccb1ba480790be649ed3ace37c71498b7304e2254c3b2f12335ad718b8e00ec0f906b7de21a913112e6667e49b31525cef659644c879b9dcd2de3fabe68fb871257dadf4f7de460f1b55d37dc33b1ef779c660c4586834acdbdd62e28403e79cc63a3c83def8dcd07a556f86ab5918984cd049bcf11561923ab8f5c5c935fd8ade9e17babdebe0bb256b13112abaee8b708053894df85b5e3bed76706a3298daf2e1f6ee975552bd3ecb0c3b4d7e199abe5b0bc27935a5458620976ab992d8ae1c9e96f8e7f636a1ab5c32a1a8af3e519d461366552c417d946c8fd793d33b28015a704d7b371ef2eb54c7c571072ddefa1bdd864696c19fb1cf82a8f9952bfc91b3444a9d5618573352fb434cc4fb57efcc378bf9aaae22faa66acc54f0406aeca2eb1d596f42c74c0b8e16b2991055873358f66d41003625e90cd8eafd4aff0d3af846d4b1bc0d1bc19a0751316d541ec55f333a8ee144e0aa7119b45b4801efe9d22947b8114fa72261f541b33e84a00e0d4e17f049f35d0b781f32fd896402327e47c80370b2e1f582b06151168d60c730192fb205a028824e16506b75b687c80590d58e840651fa41d20ae108e3d18640f250fc8ea83c107c2fa20a0039035e1c383072f42c7e91879e0e61cd079132752bbea6ee1b07a4b113137f45fa7eaa3196237ecd9939924f96fa6b5d4ce68a3367570d609a4b28d4a0eaa6c37fd7962c7f769163daa2f680c23ed0fc20ffe74de7e1cd3b06545074aed1020a50325ff2edd1306deb3e18f0edc6324f2dacdec634851dc42f2550af65930ebb5022d43d35a60f2bc0bcf3071b6d60c11ce7d013cc869adce6d49c64baffcf5b44f2eebac1ba6d20637a0c8373c06ec5a0c4f44aba0e74cfc0a073f27d68060c828306ef7d9f4cc490c7a767b606b4db7b311cc19be6ebdf5ace1e4bec90d9ff838b6dea17bad573c727421336f69c7fb486bb0c2fa17fe56355c616b31881ade73bfefde5b10c207bb796c440d05a35a85162b989d5e51082584da20c58322fb2e813f4e683c251d15e192521c0824bedb3023b1bfb1370e70885dc32dc4a878a933738497b2c9a207fe49cf4e5a1d43f7585b3b7d3e677246017480eb19e55335888e3fca4c921762dded20efc8ba958559ece41ab2909aeb4e8ab03c00183bb75359934b35acab60a76b060aeb69db443f81efb667bea68ba5f30528735e31815a36a00fec540d6be30c3ea72a94d54c668a138957e0fbcd018e922bdb7ce2c267222ae4b28b4135955d614d51ada072a8d0521ffc611b3596ee8f9bd83d25623b107463a346a62d00962ab08426a505ab9278cdef5a9ee7d6ecf803ac23686404301e20488361ad83fb85f981c8603c5f590bae2c0412b16adbfdafd82413b5a6b0319259e91f5f9c01e4a00d3d648de84634f413b3f62a09523371fdb9a78da345490e70a0293faeeaa31eb7c662c0a467467f321cfb3a495154ca3296618f56c055bd7700ccba15d553a867ba7cd4b17c31577b4330f4e18832d5b29083a1b487369ca10bfb54c3d544a1efa4ce05fe75e8d7541ecfbfcb140eb898e64da45a80af1848288fcc418f2c54fe682931f7b3c631c9f8a51a148e1db5bdf8f4827bb583ed8dcd23461394d41bc937bd4260a425093dd143818f1419b76b3ecdf32611eb74dc45fca40aca43c2bdcf6da5667d9463a5c5fc2442a52b249b8633d24fcc9491b5105f66865b3b509d7f6268dc1cd289e49ef18b15f1d5dee29a87ac79af26d65457768efb028ac3cab159a55d84c6b5c09dc367ccc7d08618ee09a3a6242fd14b2587e122b8f98bd8e8a2bdf6e9b223003c3c793f3a2b97681b6c5202a2a7ac5048387b0c1f5388508a92db666165fe932d310adbbb63c0eef2f416ae7160a8abe3d56cbb0adac320f3acf406462b999452a895746f93341fc983a3cae961a6204fafaa965700994a7213d3e1aaef3aaec1e5d9c2658c85d63807b92c05934bbbb7602f358e123f0535fa1a07a166667c5061d8684609f1a1010d6ed407e8581deebfd3a72140ee2c66658eb09961e3c3ba239b8eda3dd73133e3f670ec254bd5d6ada9858346fd5c910fb7dc10778dccf6e351a9a81d04062ff5f9c177dece8cc38683483dfb158000af7818330168dbc2c601f30ee8d719830f148d312cd83d89d0b2e97ebceb2ebcdb60d68c7ee3152f16ca1f249b192fa5dfff9bdbc4ee74b372f79b83653120e7b46c22c3ef9834fd23cb497abdbd20f2781ae0c0e462ef5fff9ef3574ef46e6d9df6e517d1fcd01a7a8ca55edfc6791e11f8b205c0e20d9d4a600febf8af991ca7910173523f976dcdccd332796563c3539e18a3b9cf22f2cad096720768e8d5e300e08ceba89939ed2d630b71338e801209323dff4247dd6cbbe95e164e5b57100a7163f0dae0b4f2ed35c7af3b33d9f24e1eba3c919265e0c8aaa2b263a0939ff86028f87e5e0488b9181b5ebff0cf876a5c74df97fcfa4b2b28ee2ce4cf6c8a4694f4edc50dc5c5a210ca0468f860d9644f3a69f540f1a2f1e00372c5c53be2a78be0a170a2ca609480e20a1b2e9192542912131e801dd552dc0414fb27a4615373278fd990e70139a0fac479ad9127de47c550802dc788185294a605d34244ab242465024d3ec3d1cc1692a627beaf7c9e45a75a3e5c1f9287490debde0fe9a1a1091338ec4ca4777f1b31d627a81a1218b805839a2e6c366857e0aa3b963db6e759aef9da9276d75c2100592ebfc380d6ca4517d414acae444021e64d0d7e8f1f6404913144aae65684e4185d67cf3eec8609c5a77c70e0299510037d818e5fc0e358cd70b752e18c2e9ca01036e8753194894c79f81d3754ba6270ccce49c2d01d043b6462877b993efe4643ad71845c1e6d299d9654b6cd0c7e3fcd87d36d8abcc9e45f1c90404b4a22867912ff1389345b691f09077ca6555f5f3beeab8ac40afd55e69cfb869ab538685cab1ec3b7b0e0a390a9398087973eb0d9646c1d0e26764de9cfd082a7d73c4e078095daf91053122f45aff32871c55915f420527057dc0f8b7cc56b6661bcee81220eaa9fc8ecb074ccc54e9b7089c17e03758f62baefbdb801fcb47660d3eb395015e351f47bc4ba3e15cb24242ccf453dc094c65da6522d8d923ce2e334b056745773cb8f8bd8f67900ad68b123ae03b119c656cc79b385ff699c451a845d52855e664f074b325a6b5077c83cec207e7cc5f176aab6235ee827b5236e6dcc27868669f180d8b2625f49b980024c86b26e9dd7f01b8df13f26e9fbcc92454d45afcca3b52cf8af9311dd0f05a6a97e2a327d876035520fe2ad83d0d14c217ebac20f04bba2427c170aa34906c3d9500d800a1dec89226711a098bf2f996f76cfa7da2da06fff1f17f76cc39026ff0ec434c3aa3a5934d546cb89e6b2e6b0fbdb26992eacb35baccd722465fdb8455c86a281bd9e08088287923d725637acda6b6e71c6ec8f9c1e0534cabedbeb22ca6551fd3773d13b32d51780bf3e8b0cf2178c676f954b9021c04ed3bc916b32c868637ebb7ae5b49a2bb88ed230facb0e769c6f4a6410194b4ff3e96b448e3d69b90f950ff99b1929c63afa33ca596f0c748294d6c3ec2870ef7f15b04bcf7030b0d0acff1a256d8111945cd6faca7e512fb7d8ecfd646bc8825599fd1b9dfe72ab4f4b1478701c2f48abd0ffbbc6305818343be2036879fcaf036f2481dffe7a8ebf787482b098c2a21bd43ebcdfe434367a7c3b31e175bf00b0d0f4ee02c0a82f57d7f4845627a7685a68b53f4cd03323df433dd1896a0e437b4fcb84cf1deeab4bddebc3554d6609a8f1d07a6e83c01c00f9fb8cedbb26481a17964c8efbbc2307d5764eae49bbd6e7355858dd31d3c5e1813ea6ccd24a01e2fb5de4c0d87ce11fedc894d8a58a9be1dfdb281a9949050f714a1131563145d2dd798f4c91172d0283561dc82a1b259764d3c18147b0cd30f36ef04a3a43db73e653ec23794dc7e9a09f9dc3659deb30ee062facdc932599aed7db6efe8c655d148650a37976082cd9975884327dccc3c12d3ed5849c330bb91d0d728e2c1815da2befbe41e7859ba37cb6f6726194af8f3fc8f78af2f994c84505af5f2b4920bc207a064d2fe90cf17a0cb65c55660f37c9ce6b493f25cf929975d911147989592f08aa4c69400d4dc04a5406ada93d9b4629bfd54a62a04a8c066a468919e8c8044e0f985ed4fc3b2da0eec76aa62fa713dfa28b9541d581bfb801b1c4db6b1a548d2ec6403941e4a1df5a2fef52faa868b5770db722c96e4aa60f6bc9a6dd6b6131ca39a62d5f411c2bcf6565b0db413f181596adf9062363da74a94a17225bb57711569b565188d20744a5b35bb094095c36910994801628c5c8d93fac9cd805faa1fd82fc9541b7546e838a39a8c4b4dd0b8953526ca4b67042af15c5657ad281732a5fc3de1debe0624e91660485d8c12dd5f4578b097589ef49280c31f3e8812e7d69175a0e1fb2c29becb5849a67697a0f4a54c9c1639dad4e9233458e9f4c965d72e6a2c3dcd02e202aef4c0a78dbe971c05f57aac7eef05aed49596a4ce1ce7becccf68332e4b31c415db60c69964ff710b73a4b205b596ab79ac737ec59c6badc9e4ced12d4af26d68901468cf08ed7900235f4680181a8f6f9e9b3728ddc0a3c5de0842386ae4b34f41669c8de73686ca715aa2be194d93ad4ea605756dd0ba02a6a16e803c2877135da1fc9961f7e2436a33adb81d087d399efa564c31cd90aa7e21536bfe96a84384ff30e502150cb7f868d24fbe5392345ba4075382f64e7ed764592d2a9d563de8bff41ba2003c4ad6f2fa04afa8a9cfb72c50a98d6d9fb0a84b19c828a54722a1a183a61173ae8b255756b3037ae882e9c9e5203d6d370b5ba220e0f095de1318d51fca661839294e1a76a1b3c1634f6e36f9868e135e0db50b7093b7be58dc2e12fc52904d50271525a3bde64cb87f32baa2ee36b3e379e9e2fae026152a2bd3c8d3e1240cd3a085862f468e1bc88fc8a75d75dc39b2666b879044753246a60b1ffc540f5ab10911a59742482b6eea323cd378b811c2c1b8694ce806eb2376eecd323452b4fc36d2489722567a9c2a95d73265fb98dad431cb3f506ac79e1a5c2c4c39946041d0f70a8feb2994a05e70f4de618b8ef50ca0b66cec5503ffac56d68cde1814ebddbd875e9eb8c5e0e4d4437975868fb76c494370b0a2132ed05b45dc7064fc70b7a12469a7882f973c109d6951c15b67c757fc9d42705b1476f9233726600659495cb32c3289cc3fe16acf74775de81fa68fdad9aa8fd315a4050aceb20f7a39ed09f646de37f4bf7afae733cfd2a60864fd84b74860a421b3d35e796cca5506317b4234f4f7b61cff0e13568ac3b0ae61e5913b345d011b7f3b3dc7b4003ef2c2d5938272b55433878fd2e8a0eff8321cf08cddaff656a97870408eafb12dc0c29a856ea14cc82a3ad6be41fe35581e3240d5d19361b4ab6226c7b3f36abffd0a8429588c0e59e2a00901c553d70756f103eee28951edfbaed79cd0472d20007ffb9ac39cbc145089af50da1d4ef88b7cac0b239599851bfe90c4c9a48fbd7f1302180b3e7f7580e3d5697ffd24633ff357fdc9502668b9405e1e38895fc67e0156bf9d648dc1640edc0aab81881871b9ba1e8edcfcf667abaf830ee4ff2ae1425b7844a80497dd68bc10afc99334d29e88928a758fe53f60296d51992f117c42e2b5bacf3606ebd8a4c302602a469a6c8abb08c15f6382464709b16848cdb57e00220079796a8082016662053e3069a3185cc0db985ef51217767e15a11bea7082dd3112b6e80db442b712302677ba96ea29e97cf1d7d3a7c2ae5150e8ed96b44b8264f8c57ef1e10fc2d355494f3c05e93d5e1e0bc081949745369a91ddfd347820451b9ad140713bba236eeacc02d3f68a19701d5b2bec90207e5751a0485318db0947b15b4f43d455fe34699aa652c0307a8472b5fa6541b44cd6fca4bb981468195a07eb36d858b9c1b0daee31300ec981fe561fa6f9d13ea9822d9eca7ba937a55b84b0bd7c5f1efea8fbda19f4e37620777fe279688bdcbbdd33847bf747706071662f66d4767b8f3839bab60a29defdc0b33fc81e6ae6a5af06f3673159a2965f4db0f1a15d5aa8cc85f6acf1b8469aede9d1197a3d2a3be48ef0030cd4cda17a6a90cd932bddc43090fb22255e5b31c4b33ff8ded0a14e8a1178894cbc48dfbdf9f69f47491f45c347a4a1f286d255c308930cefd21f416f6e839f9101a045898f2d328d8f8c516c5205f9d487dcc4e2d58c84280c00983c8a06b5231caf58dd8d10f276cbfce5a2f2947fd5e8486601887fa023b6d80708d7912c073d86aa926b31f358577bf05a5c286c4452e6c956f51c9436f6aa987230c7c1c81a079960195bf4c8e0d068da7cd254ceeea852d1c8c1bc96ce0edf24d38c93b60acb9ac78a2579ba62f8fce5a341bbee099189be3b6fe2bc6cd13e3f575dfdba001348909450ea6ce8f00eeb61b4d25b0ddde58ea0c9a07bd3ed8f1a6b0fd92c9a2b873610f0a5422b74dd9654e991596bb5629b2dbdc1d864f03c012ce6380c5252601f33ac55e70d0a0d0c32748bdcd1c4795674dae1c9e2d603a052ec27e4ec64d618125834e3c85874ba14412a065b0db416fb722270a1e2a5aed39b3e798ec10f96c12d6e01608ccaebdf9cf6130b6e216052169039a3c0f8c8d224b9471da888d0a8289a403d61c77b90a45febd3556691e0b1ce18688646931d741b63e37809ed5172d8c2ee1717bd668dc756e19f375a7bdee9feaf125230714ee280b4c01ea157368603292c02e8bc14f2bcd292ead98d5b7116cbacd5b949ccfaab2e8a9092dd0c3e5447a7d78ee317bb88a9247cc56dd9be3aa0c29ce9d60290964fb77b255e8b8abf91f97a34ad92c7a11737a555939c4ee5da369ae20a71b49410ed319934bc64d0f6dcff0c77639cd30cac7fd72173cb64247b568ee41b7db3520997223d5c2247e28f5261953e4b9246449d9c82c65f3ade89055e97055e15c3128dd8d54d78b5c427a0ef884355a43170731b9005b1aa57823c0209054dc544b2259fe3202809031dc3eaec965e5c8cae709743cae7757e984e5d67144da311b898670983d1e1fd6d55e7bad4bf6868e69efc7eba66fa9d22e99147a33f0c57d9c251bb66706706fe2aa93b6847dd453643451869f6151b1b1bbb55b6c54e93e912d580fd848d1074d2c06d59a18e98ab1160fa73db19d6baad0f1df367ad2a8f148ff37a50efe270c7b15897d10434e19c8174223753f8de571db54c6144dc4b7ea0a42798620f395b21fb65ea58c2622c42c6ee001200dd0a5d64a2bf0944c07a27368808710701b723cab700c05ef5ed190c6e5a1fc8987ddd0187c75be7e1d5d1f7e91b9651fa5e8f5a627b0253d1eec475ac612b25a060891e1dc5814e63d3fa26b670ec52d3d9895a662464efa710e804443978d0be705a327ee4f97aaf3dfe707550f36fc068b9568c110a0a1bf96522d30adcb7127cfbda04771517d57970c78da54561b5b4f9c1eb0f65c4198998b0709b797982ef613a6842c7aa6ef1d9829451f900d1d1b34d619a5b27014913e67376ae1d4d262261061078b398621865452e495e24b501180916dfa47b2e8accb568da7d36eecd19ba2873897c8ef0ab0ba70b375864ff70bce80ae5538a3e91133e52665d0e24f3584407e3e846b47c39c5bb57d2577515d5183292f58f9314024902e7ed5985151997db3ce10c4c5ff48ca399a880920da2e81e9bdaca6bc1c541d4b0ac3043c1f176fee7bb58fadd4302d49956f02584397ef23acb0260c3b836b98f49ecca203e85e03bd30f856ab23d29a4118f16d6c5443add6d6464c7ccd5c726fd279f926726d3eac80cac1a82beb8881e5cf022e3149471c977078279ca7a33ddb8d3a5b0f7439da7cdefb6542b5d0d841f9fa1f51865523f2cb048c38720a2273c54f53307082dafdf12ab1be75c74e28c677a3a88d485cc8cd45054df88218295b5e828d1dae54ec46e1c47e3d227f18480e9fa09f33b8ca63c956a93d545c7b97ad575ee7c6e6be32762d7cef7ae9b744d8f051d0d63df8f70613ff50b37c885c84c1f0f371b9ec4f2c1c632540cd949f9cfa134a719ee6760c14562640eb41a75b4aa785e8701b832c4ad037fc5ffe1f3b91c6f5fa9f2add4fd3ef2a12a5cc022c6ae01639ca781c507e4b6750b13bfa3007f02bd48842a95c27cffa4cd63d49021574cd71a5f622232901f0f5b11db8918159a556cce76ac789c6c75ad5b591ce12d0fc09d3b3f40072a9828c0a86edb1c242eab38da52130de810167164f4cce31ee3ef6f0acbb7fd365602b6935e5173af5a4564d3132b26724f643f913261a9a76ca23c1e7a1316923b4e129580490c819e8301dfc73cb168255b007cfc6380696016689ff37c41f0fc0d18216feb0768b8eee2921475e22be89beac907d1cc152764043034da6399765406aa00100e1a0ee8bfc650ae2b04179de136ac74cc40fe9d0332cc722d4770221ffa05f51482d63de511a71dccff1417fbf471cbd28f772103529166e212b6a5502254ee69f29f5eb91fbf3572100364c0316a20b92d38b60fe0139c6c11c1e52f8d47ce5603bece820f7af89d615814d74f314c0361937774d705e15c300130159970c85410ab69acc1459aea9ce9d837cd7684f842506f58ba0312b22d3923c7097bce0b8cf8e94388ee7eb56fd5f611a354acc37849e46a0c6c0ec9bf2e08094520fc3fdf7ddad1213a7e051edc5407c310eb02db7445aa52a9cd094c1af878885447b2b6000b818e8f5cacc3a7c9d98284e652f9177ec8731f636a93b82d606143aed9fe8f8d5fedee7618c25df407ec00bb62aa70b5c4ca46d87df84062d481ec5acc7a9f32d7976d5079936344918fc458d5831b71f513f60cc01d6ab234cf45fe8f84618be66268facb30b3a57930d917073242a8ccacec2824a1af3dadce459654fd03a322101a4d6ad481e62be143653158cd061f5d8a550da86c28ad503b164e5095826c2247d92283c8899ac1ed8190d3849bda95ef540fd7733107c8d5a654142d7a5fa0fcc52a4ddd5236c0ec6ba63d294ab1eb136bfb627d81a220b0972fafb80060304001e3fe005cb050ac52a5b606d88d537009116cc356dc04d65070e07934f71f56a066c3bc2c8bba30d1013550f8733e78daaa79019b4c9b37a7881db48e7ba96bc214bb64ddacc28449d88a9cc2c6524b0b13a76f5d8e2d2d553f73db57aeab837b3d0d6d9bb99f90a84206873f0b0271b13b07cddd5b30300ca6ee7fe1baa250de781243ac04d69b3dbcdbf7258b8e8eac9fac575b90295ac6979824b47f5dcab654846a572e8d62103490758ace701b85f393af6ea69d744dacd35d29066c37d42cd13ee79f574161bb322559e69f5341ea4642ce851ae1a680156afc7649f2f2647a9af47a6cf476d075d52de9c92e1b9c8372a5357c60259e969cff4345123c1139a28faf4f358015c0c6cc226bbb10ef823b15fc12f4be0e6e9a460cb34161c2b1672201d7b1cbe67a9c32317824ca528c3be4ad75f7c8e850f7978d41ea04d6e3373f075d87e403d73dfa775bdbec2561f1877336b4be2f5f3f137bcdfed42e29dd659a50709f25b031b34e7418a6a723c480d7c0d6271d6929869c324fe7a630d49ba88d91d547c477b66f011f08dc884942e880e746c104d98a60efc9eb465a04752486df2f8a5c042c54b942592324fb2baf759dba84cc1a07be08199a85642e7d118be33a5a47c2c95813aefa8567955b3d3dae737a07a639de96dd0ddb2a87f6b13a7b442650c5fa5e50427f8f8671d03b5bf629afc8abc647090395693abee2aed785a3e51543790337ecf59f34e2dfb8f961d1eeac1252ab8bb23c00e9dd267f2e5c982ecf8818d281745c6e88eb6a8bf95b731b5d27f944106aff2849265941fde411c827632f0d8631312b7cf34cc88d968087683a39f282420c28bb809bbfc9ad7b642093d08f2ab7003c97fde386104ac5e2ecf304a2c048739088b06575d8e1f41ef4f4ea5088271782617b2b989a344f09b50f9c67953547d0f5cad8a93ef69612020e83c660841954ff0095cd006ea868c1d7011508140140a882969045d87e0689b30ee1fc083b9d9d13e38e0650581e817b00d935af926ee7b6ac40d27a442841b821da606bcf367c6c94cd0f3c7c18ebb3b75a321efb4b475a50e8d84003b639ff12fb88a8239030519de060640233c016d5177c87759fe4ba40a64240a3f529aaad661c602dd0990c23e98638e9d15db318be040225671f07320b1a7c6a80745fb1bfe754e04f88bf8e5c4ee90e0b168a6753379107a0955dd8cf3fa760705d7fda0faeed7ef92d027ff58283b941bd80e0ba50e2511a213b63ffa11b36a30261f383593cfa5a92d644d22c82f10ab851aec38bbcba51df105536e3530c2980f5e9b258170c2623715106d6a65ac9334621ae91fec3f5d307f2b4cc32e6da8b9bc552c29073da51b0b508839f1a7a0b8c819c4b162caf577078187c0c0371e48a3a64ec2eb5101c18b7c405eb69d5497fc5097fb46ac7558b73c23eabbadacb3ca6209561b3bec47b023522d1a07c3a9c7bf15a2656c330212699069446d1727525e228e452a8c018c36f8efd6a2806f9ae63946548779c41ba5ce6f79b27c6ea2382a49842f59a00a41017a3174eeb56c844b2577f206bb3db80aa02436abc3ad8aad35bc35750cf94fcd2dffb0eb4f0245bbe76f6cf66a817004f940addfba492c53e886a0a23c62782defc9b3970dbb72ebf3e55846889d72beb3775c0f3877f417ed794b1259e82f14d2fbac77cad9440e5c9e9a412a2f27ae77a4fe5a2cd5a4a41b8f10e3295092afdd33aba87841c4d8813efc9b4f32c81b6bda1dc474ed90f9e6dbca9418ab2cd85ba6f0ab81303e2cb0b810914325e0c452489951f4ee774c360b4f7ecc4b59fd136b71ab6986b0cdb7f2afc01af1228c78601652602ef2e56a29b3b614d8c07cc9339d56cebcbf3096eeab92380dfe842cbe17d32102a98a4090ac6912e59534be0f8fb1661659e949f0db3b2012cc11f72aa7a2cbcfc0c81a24820b4a8335c1d696cc0ad308dd4aa984f1bb8ef9c386524e9415d8403abf13c51c3cdc06462125b385a6c40f103df2076bd02c965b56124a02be1373755a9c08280ba2d91336d8f9b5140c1ab6499ad1d07cfd0021c504c25953578666842941bfa37be9b4b49e14e7304e7e1dd3d1fcea64683e304d0775159c823b69e87cddb9b879d1a61ed2970162112288246a98a8047fc30952fd001176756959d3790a023f40c0602950f6ce9fca9f200870ebe32ba2e5473a60d0890b58bc3575fc030489dc9064572bfa7a48c46ce38b430d8c28f160cbc1700b42b7e6ae4908a7c3935f7ddde7955e1ede21df56e619c3515299589151f160e992dca20cc7c8c6ebe7102f6f7161df5b43078ab65df97bbf7d0936f49511e8099360d5ca578531c11cb3ce512bc8be272f7f270f0afde4aee332b535eddf06d192f20b2c870dc3b2352270a9ee3d07691ec0a588d2079d00198fb149e8cb694b1bea80aba12dfdd8eda80e691782a92413af5d37b1d538aef1d83ae3b72cbc634ed8d407697f147529edb9d4b21f8d18038ec519713e20c71ce6bb1e0dff834c10a7671e9fbe325de07c9543dbcdf65043ce6d0b3f7f3a74a05fe109f91f406c04c29f7dc8bb09d2651b9a72d8c0475fabe4e44a28de9c31d3bb8e6d2d27b89881c3ade834c05188056a6b085738775dcfc9c79ef57b29951f0e5965cd32d916823401725c89a5a085f5f5938c606c69107d74552c0c459bd312ab375132c67dd08fd042efb91661cbf720af110673e4ddfdf61375377e19ddcf4ed5666ccf2ef4e38d78c31d5c19aa15947c1eaf5fce74ea2a82cd9369e594d0aeff03396a208140407d9f52ec10bfbae7ec80eddf2f474280b3e43ecbde1d5fae36487c2f0c305dc28e354eb99392f275bd2a2c7e073054efa04670d1ad3fb338fa6dca5c6a3157d544b91a9e9b1e839d552bdb0494d14b669bbb81518c1c77038bc0065b60b093a3a3b30e33c1380a7d5695222922b5d2070efe040519e8e44f344cc7dc284211a3ed7e980153bde755d9a5b1ab6cc57ff47c57e3a7430c006118b94ae3c6256dd864e54b7159fca456448285ac50957ebd0da9f46f23fab9aefc42c4fb2f1a973c8a1ae8e9c4d85516fc2904fee7f9360867fc0dee374849c77857521b1611b1b3bd33019b56ec9569ae81616cef011d1689e0e2a916142ca39786f3f5863757832858c130dd67ea32d0dbd46e62f799f0c7b408415db918111220b8a30563a36b52e360aaeca148f15fa028412b11b16fced79f11bb377fe307741aef35711bf66bbd97abeafe42b31ed9a564b6688a784ccaa6a0a0014ac8d57c1b34280771f944fbb7dd43c44978a581000e02380744be1f065483a9c11cf84e263cf600361bd1e4a08b1b79952dfab4a1aecc37252044a0603145ac1b31cb4ef0b1c01b3cea08cbc2433ded18e301b023b8759f8b6a9447f480bcda25ac3594a4a3c07c772a42f3923791914c06ae89545b8855ac9fe9ad0b34942be367ad21a56bf5595b672e4bcb6edd7ca19ba272dcc1d514cd6fb225deadc52a895901fbede20bbfb6c6cb5dcbc1074e5571c8b3166d198b2c509a53675b637c8b71c4b5e02f8fb57ba734cdad645d1cc9860e96f41c1dfc594d32279528293764b23a86f16e02ad915b23e0a8ad36dd76c3697459b908a052c3e566ead3a65e4454c251bb0d453cfdc5200c4ef4aa6e608926ba5af3491ff2e66bb146d7bb80d7ab8c301da4b35be1f34282b59a6cc4e58ebad3e9c1d6911901e1e0d9e9b4b968799825a2806cd412b5f9444756e837682eff9fc5ddb05e6de8035c724e65ed27bc9d78d52a02eaa59353f124c0e4231e8f7adbb1b47adecd5c89968ed72861c463fb2b5b962aa1e25109c093c4820090fd77cfd4691c407b77b34591a00140a178dc6592e7447ab1a9b82e166d2c4fbc275ff5cd0446728968ed3e6492917d3ffd8564369664703a26b4aa20e7c26eada9993857f36086bc1a7cbfd3591bfcb94bda38ce57c10b2ece85668775e24eab36c6a0eba74126075d0aa2cf55787df20dba9cfe7cae5d0eb7dd9cef559c37b906f4ff4c6a827e930d170234ba1e2c254b5c0b0d525f723c9fc5a666f0220498b7b898be3669e58b3107003b83d3f670af10a33090b38aec5af5b97b1e63901119969c72347f6d2166656b1fd7940a24b1618afbc9e79c0d5c8ba02d90591bd62732abe5085d5ef9d0eb7b5be6258947109d744df4863e120b5ae3d4340f8f2133006b23a120866290142cbed0824fddd562ed9ec2f310743dfcb6248281f27c69f4c3382e897406ec1adf6659e6cb69b1cefd26280d81b4a25ed5edb6d0e20bd7eab9e119fdfa7c271818ec6e37665a2ecb3ee195f722e43548ee067fcc51f7d7d613493473b358cab0a6780b6db999aab8cb7f5b43a84de9f27644a440440e766e4ec2e340a56f7bbb9ed6997555adda0284e39ffb89345d51a375bbb698270b78673e26c310c96df2c4abb29c36fac8ca35fae88e24a465eaf6236b173710a4a533c48480340faa596810a1b6ce73fb45d4cf4436363404d3d0646b66abcfef77ddf98355d65f533b17d99c25d0579eb96083bcd4f6fafee46933a31ce95f87bfbba8b93ad9ab4851e06ae98500e58de16ef49bc91760eaacaff708d69e57c6effc6d54566f89e53cf672c6957dd976bbd019ad0254a746927d1603784b72936dd644691568b78c21509899b3e9a8991b8bcda17af53e0c2433252432837165b22707776d0e30e0fce8ffcb8b23311223d183c74db9c4fa553a9df0795d22a71e8fb61a783a55f4dd21dbf5375918357e9cab4220a296a3b85750ed1a8d2a0e287651e02efcbf79ff3d351a3f8e9c396feb04485c84bfed809da93e439f4e593d58d9fe1d7d48a89102f53b905c70ecd7587a5936282605ddd4894d23a23d2ae5f88be6b77edb5a0656786d0193478810e74cf61fa5c44e93a2c8b45045320cb881fd477c81ce01f171a650dedf8e3213ea0af51cc087f02ed41ead681232b12b6b5a25c96c00e259132506377b65463b215bc0181ab0d3b02159e2ec386a898808cb0e4ae6a13fc55ad1bbad2a41ceb77187fdccc517244396ec2e8a23202afacece5dad10e36b917689ebc634566c2f14fd08596272d0082300ca640acc86a5ba3e5fe88906afbf0d2fbb0009c25cd4b9d49bd70788f2f7feff23cefb8336a3d8e0dd491c4e7faef308aa932b77b09ca66c03178aab984c997394e9c991b4bde5cf46c3824276a52dcebc8bfdab0bbd16b011c2735a4c43e56b29a6b084ff9280aec5cd906f6a0d49c69e0e1c9541b8ba3c3ef69ca705c91782d88d9f043031d99177c55ec5771d9e16381485426395bf66ee39058c2fbff3fd87f1b23441acbef63a39d47393124255e3deece2ba8f9fedf2f1b7d941726fe8a56f62ad4389e7e7d0209a19de508e6a0e2cceb6a24c50db53f37308466f1b6246741584eeb81d8058a513d1140f3ab69d5e5a1597a9dc691287114fa9ea102b54e3ffac7c4e754c57a374bd649ac3d9f1b02ad8c126d02e072415e83d60c3471506264a5769d95ab53bf093ca58b856d9aaf56d980133059a5485d5722ba46217151594e61a803fcb7909c68789ccf82fda97af4961668c3a54a804ca104fadbed59f7fe54c20b3c343403bab7c02fccdcf8ed164bb70b78e14f79f4b3e8e321692263ee21dff94aab8ef73723207200a0ba7355f8b724df42261c77402f214c8d4a1170e25f2b714a7c123f1eedb3efa04908c26b90a6e780888695486462fea7e039bb2a912d37a714d020d96a6898a45d3c8b9cf60c2eb95dd9ff87c6a6504399ab6457431375ef87494b17555cbb60e9d8450fea6eb15cb98a2514094afdbf13d337cdc397fec910f050409efe461177cc4740006e1f23d6156abd28fbeb1bd06214760ae2998dfea7ef9242b9e1f581508d324cc7602dae3455f5940d8d5a60d0484c03ff1fb0bd02b73e42eb1cff0d0a717a330ffdbc2a55e1bd95be96a0c174a6caa62200fe5def184a92348f42ad03e3ebd4cc52bd742868e8ac895ff0413223251c2e0f7356277439266641389eceeeeee1dc505cf05130634dc1056b164cc983366c80867ccc01b2c7a23da41daf54ccb324cf55ab026bc51ad1bdb3b5fd6de7883bb7a92326f73a35bdd344a699c734ecc25939d95b70d9fceb0f37c3284326a6ca4b7ed4ceab44cea37320032dc6fcbdb0c40c6b6204047809c231b202320635b54965c991c208bdeb3de8e957f9f1f4b68e3f8e9f8d7a70e77ac68b48336441b37f0183c3ecbf6d7ca0800168c3504d3f0f80a0043c7d4a14346a84307defc78dcc9d10f6dd3609493567b6987a185c53c6c0bcdbdd506de88f6d7f276ccfe0f782ca4ef5ecc93892a1da1c718638c31edb3eb120039623530e1f11330b3294044c3e3ebc0c0e0f1af00e4b8398c8b6a2fb6aeff8c3101da1037d626ffc5541869635cc42dfed8780b70c7ec3018b8c9d3f12b1ac7c11ded7047b9403bdac9513d59b452f14619151976c15c5cf265b9b8e00da67a38b25376c25437eaa9864c0afdcaecdeec3e5da9eb3a4a84c78794524a29adb5d65a6bbd4129a594e200ee981dda6024b28466873b2c4a29a594524a29a535ac4052e923bba9c40453e4d429a59452da7dd77dd191ba158d9b44787c8d524a29a5ff298548db0aa594524a29a5d4b29ebd103f91003229946144bdad0b9957b41069cf39e79c3f43309360ee1aa594524ae9a694524a29a5940e800019a6e69c73ce99a2f13568ac56abd56ab5eab6004693aeebbaaeeb2cab5bad56abd5ca860264d2861cfa783e423364a8984c2693c964ea565c71a4f7de7bef514e5a2dabc318638cf1bdf7de7badb5d65a5b6badb5564a29a5941a0073c9d70da40db95419416a21b19047f89b82bf9752bc9144bd2b8b7434ab1a4ec2f4de7befbdf7de7bef1245922889922889821205a515787cd016638c31c68d54ebcae71891bad07e1c3e52477b02f2b61fcf0ac8f0c96e761822bd845d93dcc12e77df853a52ec477aefbd4393c96432994c4d7cf423bdd3a0b5d6524a29a594524a056412dc919f126520c30ba3c9176fa4a19de917a5958052afda6272c8f4de7bef7d76bdf7de7bd792a4ad685a3780c74f81f55443a45a49a0185fe22796e24a8471dbf28748a18802d1b0ea477aefbd83602a95caa9d93d1d2bb39bddec66976232994c2693a95b71c591de7befbdbf262d2d1b782218c65bf1e00f881b7cd20ee2e1f8715dd7755d97655996655918638c31bef7de7bafb5d65a6b6badb5d61ae5a4d58aac6b5996b5c92f4a0087980aefb05f8ab6ebbaaeebba2ccbb22ccbc218638cf1bdf7de7badb5d65aebe3c53cadb5d60bc87043be41de801c63177109d108518b88057f1f8fbc918f58633fa554313233bdf7de7bf7915fccca8bf90fbd1818ffb3e57a82f594eb69a59e3e44dae48b941214823905145f40af751d0966940d85426d2bf8a3715956d2381a68d8fbb302575214ff5e0d0241bccd2dc01dd909da103f863efe6cf274fc47243944f3497f6d3bf21f9b09cebefc8a79db965f326fbbf21ffbb55c336fdb8fcd448d961f5fa9d8b6e4356b1c9c82c3bc6dc8eb498e70979de08e20d006c8e11cee3017de086bc2c5394c85bb77b1b5c9bfedc731951cc1299e08fe110e51bb888703fe6f2374d8d04482a719bb7befbdf75a6badb536954aa552a994c96432994cdc01b932d15bc4539422421195280319c2782368929446c94d691528e665b619d9655996655946bbde7befbd9b3693c964327d48e33a73ce39e7cc38479e73ce3967966559966599474a29a594b913bb7ea4f7de7bdf6ed000bd7cec97e69c73ce39e79c73628c31c678257e0c45524ca552a954ca01d925d32e835f4ca18b251881bf875abc114c4da8a4d65a6bad59966519edbaaeeb3a98a2017af94d4b4952eae5805de0f1b37c4b7a05f41fca9f8f5f69805eb6fa9f7b573a4cd2b82d6730cbb26cd3b21c6fd0eee9d83e3e6d423bdad18e76b4a3dd768306e8e553eaddb22ccbb2ac15edb59046d2a09635b85ac1155cb964148f72ced07310058fc029a014a5e72014fc4125f87b23de08aea8cc5996655996c115e93f1a77a7c0e397344e7f016a12c6ea431a1775b0ddab3508f4bf91b4e7441a070b261918f1b1888f349205afb94d77d82193526659e7b93d5b98608223c57356a0823f4981f678b82d5b9e780246e5031639c19f10f11a05cfeda8830e25c8ba1c99e0e3c35584443ebe469d9cfc5533b7614b6923e18187cf4e9bcd07f5f99514451a29d2fff45f3697361238c5432ae01430063f04066404afffba7883c487e7112d1e3b398235f8f891468e5af031898f1f6be448c84768838fd0f44a7c7cb94304664a8ee012dfc3c79f34720499f8f873254770881cc1263ec21bc81174e2e1130f61fee3531a39825040177cd4e1e3632a2c468ee00b3e3e262347308a8f8fcdc81184c1fb00a77888838f8f6b70b02b6a8a5d79d8f5b46bcd0db6ed61db1df64dd960df991a6c7ca2c1c63333d83825837d6ba4d8f75464db1922db9e62b06b0a06fb4911041e46b19f14e5f0f005fb49918fd7e1d5b8a0c74328707808e3f2f009254e6cd8c47e52e4808743366402d22cb125b023b07fc4192536346d213b09d9828dc43e6207d946ec22360bf693a21b7e055b05fb49d1013e051b059b887d826d825d824d823d820d640fb19f1489b8fd5a7cd8a5bdfd057369d7f057cca50d80bf642eed95bf662eed1b7fd15cda36feaab9b4b5bf30c69b5adaf95ff6c33c88ed895be935b09380e081d819104108fefa61472e02987fd81004fff222d042b0731134084a2fa51fb4976db9054affc30fda0dfae5870d39c45ebef44a7fd9fcb22bbf6e7ed9945f3867607be02fb0917ce0873db90636cc6df9c007b189780f07e7e1a520fefac01ef2e39df8961f5a929797efc07bc003da0dfae5e579440f6cc881d8907740062ffd7cb90184f6e2f6b225076223f9f11ad84984d04052547a0bec214938f04e7c4b122184f897e7c05f17e6c201ed062dc43fcc4588e7113900f94b4988d20fda06367c384a1f8406b4d267e0c703b191fcd04a8f81c84bffb2e3059e97de02bbf415d84392bc3c13f60c6738434b05fe7ad920537ed9da6432f12be6977d4d26130f6d9ad013f897a7c05f1bcc8502da0d7a027fc14c810df9c326f0b24b13d04a73f3a2953ee7970df90fbbf4d7b3b00d2784bffc4b6952fa4e51c62b608698604acef8621e185d2cbd078627d303f252dca20f1329e74d8630979029053fb4dfdce02a0a98788a348035500cb88a4ab2882898825ec8c00eaa2012600a7657ae16e364f9324193c96432e1cbc29665599665618c31c638c668adb5d6da5a6badb5ea544ca552a954ca5e1b2488655996655994524a299d73ce3967963bb93259c9d56ab55ad5ae49d7755dd7614a29a5b4d65a6bad94524a29ed7850138542a150a868857befbdf75a96655996e5c935d218638c51628c31c6b84a29a594d3b22ccbb22c8c31c618df7befbd97524a29a573ce39e7b42ccbb22ccbce39e79c938491b62da3f23f0c4aabcbb126621266c88c3176db1637b94d29e5155158546d3871498c596433cb648459863711052f486fae4c6c862bb85a555bbb15571ce9bdf7de7b4b0bc618638cefbdf7de6badb5d6da5a6badb566a88842a15028d49c4182743ac618638c73c66227bb4e1299d65a6badc518638c71adb3ce3aebacb3ce49e9a4934e3ae9a4534a29a5c4643789dc7befbd17638c31de346badb5d6d65a6bad95ce39e79c13638c31c6b5f7de7bef18622edbf60fcb524a29e79452c2ca84c9cc598431c618a394b2a5a5df7befbdd75a6badb5b5d65a6b95514a292791183bcebdf7de7badb5d65a7bdd8c6d31bb8cd65a6badddb45a6badb5524a29a574ce8ec8bdf7de7b6badb5d6da7befbdf77befbdf7d28bb964992196ff615b9e73332767524d6736e78b1df6de7bef530ab1c55a6badb573ce39671789c82e08bdcf1dccde65077704e9dd5a6badb55dd7755dd7f5de7bef53d2de7b87d95a6badb5b5d65a6bc5185b6b6796655996598c520ea59ad6ac9ed0ae86fef302a2417b7c2f4789069542add5486409e9f89f63c841d256b40ab59ab5c985d9cdae65765d76eab1cfae070992d513a594524a6badb5d62a29a594525a5db6cf44405a13e5cc9ba3349c8211b7483b0ecce289ec4ccfcb4ea007d7c44f448929d506968ce5853503a1dcf4296514686868045084cbbfded3a15f25453457ae5413a6f3dc2ca2a2929112039f9b77b4794e8338fa8ab84954dc644a7f3852ae8e4a8eec8c14c98f63c4c01dd713ec8c1c716ed6b81b6738628cc1e55f7a5bce9191231baaab3932526a9c7c6b85e6e6633d3247b2791b2a29b5d61aa7d2b9b4a1a2cfd5804a8991a294981d0089da0a9a93d7bbf2b991806a4071c498307a4947266e12ca4d27a6c305a59d18ad3b5c74967454714b394203a2344bba07a6c663dab61c27bd29a594d65a67ad95019bc74015039d3cbe3a9aebba249fbb131337c945bc0183d11adbdc3bb58eaa0bd868f31d2e3aaaecefaba8224b7ebd23dfec2149f2bd0fafd73abfb6a17a38644a4cca92b8d1305464228b8a8bc882a2b224b2709f976f4355034a8e362fed7b1ef1f318e531e682f27998ff3d1e71098a66a6f3f7ea1497f4e74e9189db84d1d04ad11abede40644d8a0fb865a3a5509a8e4a4595b2248a644a8c3dc284aba8a44a4c64c97ff25ca7468e5eecd0c891e7e5775672d4f9c8794ba486ccc989c601913429bbc69228923562baae11c3e547ac478d259f123386fc2a2a4ceb93bb21af111359b2975f634996491ace23daa8f10597d8e3cfe753f66b81455661e811c8955e69bdca1c5ecfd5204335d850719912439dd07943151586fdb58980998a0a7b5caf38ca63dcb5447e47a59f4744d9fc6723d9bca7b33b9f7fb2b989e27308cf34ce732de16cf8704ccd51c225e73862f08e8a8acb182ebfd680e2924b89b132022872d50134a18a2a661349052ad0318c500baf2b661a5dff925309d3b2a2dd43925cd6add73527a5d7d36bce6b5a3fe5c472de7b2dcbc2185ff8563a2dfa16e642bba87346b993c0b7f4af9cf3c573525aeb15eaa49948a5b5e25be9bcf295749fa84e54275c409959f47d0cc35febc5165f0cbb1ec35c2efadea39b0372a99457de795995eec7e1b678dd48f0b3e86ae5bd8f31974b45c516e30a37e6b752b8afe5775ebb392d10897c5a95686e23c371e0f08d4cdc4c72a461787c2824424b4306555441853542c57bef456adf5b7befbd36f00b37622e537ac1dfc351b7d0dce5efaf795defd929347c89e170f909327f717bfbefe54cfdf79ca4e16f55334d179c79d79c1bf23a2489cc4ff7256be494339289e6726ec825e472468e629c50ce0d570497da1422a515c215ffb228cdbd181fa538a21f21ad73ce2a6dd0dc06335fde88a2f858179acbc165c6410f39784838613884e1309c476cc1ba905d8ab02468ee724064cd9499614851f25f6828e39f4a8dc361c26112591260a7c0e906c988cf001e91bb30e0f1390678a1ad1438dd8501c74aa1e3731c4ea72889e27a0ad0cf094358c29f1394acbec09f13b4307194efa428a5b9ecf4b2010cfcf0f13325723424091019f8f8594a5ee09db82d155045160a701113592660811fc20447034140d30f2560139bbe516d38260e47c5e9b4498e82c8d1113f42e2e3eb6ee3e1c53c19eecd708f867b2beed57010867b0e1649e23978e2208a834a389812f21c8ce1a00c9ce1200d07571cace1220c178b70f1c4455454c2c5141763b828c3c5192ed27071c5c51a4ec270b208274f9c44b5e039a92485c4c6a723f60db2ef8c14ddd43dd5589b720114bbd648519d6962c8ae2829aaddb4710ba00ca014b008111803238a60c10a549002141071021394800423003204841102a76022890d6100a378c1121288800f3df0b0830e3f489b839cf417cc62432a84008487596c18848f4afe8a52ce2c31f8839f49b2d850084f3117a8c5532afe7af52afd5ddd1a1f3c77b1784ea39e032179eef9d683e736bef1e0b91c7ccb6440573c7739e8df0e9ebb3c64c50dffe4a88867f9274746fce8efe9a6e468878f6f676c4d7f4ef39523cf5dbef26fe5df0d1d3c77f90d041cc0000de0f18f1720870d6f8bc8910edcc7b739a041a38ae7347f23cf5dfe1d784ef3976c8227c0e31880000220fae7e35f0eff20f032a585b0b393163b33a26467a820ec2c0b20ec4c49929d11218b9da5e2161ffe606748885bc41df481c65d8d85c669104ae340ff5b0f346e833cd032193992287885267375778f68b06b51071acc81a6abd0ae91d8018dd317b76d1249bc44c519401a08f988c473fa88d741fe2473bbb69436921f0fa980013c2216a3b979ea747e93a3c9f977a242c991072545f1661e150401a1a053a7468a3c264f86da681e8faa456523317fc62791c07c191a12327efe8c8d84cacf788f69c67e5284c1968b45f7162c0ba0534643f9e419e291b1392a7ba2503c0c69a2090f8c498a7a789478db1637980f1e259e283ea70c4f14f96603a335c76ff1cd5f335bfcd64fac07e59bbf68bed8064667ef193206d6c31385a687c4adf2cd5f75e3313d1cf1371aa70673c19ed0f4b98cf9005b66f03063766ae468c6c77fdcf30aaaf724459b86e7ac38357224e3a3c713551e45e3244d289fe4e85dfa5ae334fd4c3bd1dfdcd39ea151adf33ca247761e93a70827573880b47985f6e2669fa3d93fd142160492615fc53ed4e48c14d9ffc8c2cd1b9125829eeece7f3e7f3d8c528ebee73fff64addac9773627e464932097ffd98f7bec53cc855e298af451e867f23b9d4fa19fd1470175fa1d8d0b7d7d8bfd4079fa4f3f0d5f35d049a3da109dafdff94f0e9ca79d1ef00cdcf39dff7834fa9fe7213bbbf3f621a0ffe479441d3e9f4dbfb3371bee881aaaa99c3cfdce7fbe6e9593f77c7dce5639d13ceff9ce73de53bf4339cf5b1dfd3c62d5364d68fc0fdb417f471b42ff893644ca779e6eae6a9ff2f6294692dff989e590a2bd50fd8ec6d1a04d9056294d82538f67c38b93eddf6b8209c32ff657e7847edef31df9c3a37d2aedd01c22a70fea9105d431c9e906f5b89de873209091cd63d867d95f21adf39fedf9fcc370f87c76f6275b73b0b7efd138da10d86f306df33c64f63092e43c8fd8f987753e13e6e4398ff21e8f76f228cf91bff9ebf5b0f94e8f934ff9cfe66e11fe798fe743a14d13f93f7be3849e303cd33e5c3e7d36ca9f647f7d8ae7a3b602c8397fb21f47d91c10fb1c6d88ce6f1e6224f99b7f38783c1ecf77a07ecfe6af983b9bdb3c0a8470cf73aece7f36a605dde9bc67633878fee479482ce3c0b160c539fb990664c2f0cdebb75ae3847036dc6cece5e7cda18086dbbf36c78215b76f6dee881a6e1f748a2c156404c315c01c3e5cbefd1c594810ff6a2a0325092824ce4f725d2c5a82d1f1806581033126b411b3473883376cb97bc2489a396910592a8f3fe79cb286f269829950bc117ca23927cc2c325f30a398503c16f8b619792c02797c3ade06cbb96fcc715633e8d96347e6897d39e7944f7ed1c82f9be586fc09cddd6bbec6412ee3f59c3d599d144525376238d0dc4142c57a40de31b22dbd9bce13dac4ade738327c269b417772c4b9576b10e87feb780ebee99e0ecb39e5313477673832f2b5648e35c35d235c87085ca7d3a9c944162b0acd793a32fcd990b2c6e07a37b80028e1f7b168f97c78efaf67d133bff71e7cefc1f772ce7bbe47e99ed75bf3c99a0b6ec8ad1e8f630f37f6134643082fcda2e78666096d034575b5ca46e7f7ed0f347efc1c8d191a3372149291a26b434bd1b558e8904cc88b78c5a0a85054147bfa76e62dd14229ddec87d28437d23aad8302c57e1691a3fa987decad0cf6d60beced0cf6b6c320c7301b7392c22ebb21af47d074b31ff781e64e525a17370d8c1a04168db2e2744ea71734fd7a043d9180b0d09cb6e2f7b55564a17f5f13a3e3f43b4aea862d9d941cbd16fa28aba703e3f451c4882cf0e9a3d4a498220b11ce114e2da7219927ba4f2d4e9fd39f8e0ea7ff3ec4435578231b2629ba2f84057edf2aa18fa02d3f82ae11a3da0d9a868adb1e68ee2455cda0391b43311f624b7d8bd23a1b43224bfefb36603e14923949f5105b68a0a4e8be45a2b90d8ded81c63e9b5a86e48b447f43c3ef3f1e684ed65ca77c45882dcedd997f6ec8e97befbdf71ebdfe5d18ff11390a1798cba5a1a85054364c77cefb55d298a9fcd298b9381a33fc8664f8dd2c0d452545f79da0391b267e9f4351f1fb364c015042538670bd1b9d0c075d0db21e7f4452f9bbf893af08de128c493f6fcc4172f4a2dd16efe4b5e3d5648c9531f6c42386ff6153ce5cdb499125eb14c3752941094ab0c2ce2cb1e976c679e3a8be7d1903b7cae494db5879d52c8c2503c3e35b32f5239dd38a68173467c9049ab4a854ce9704b1646a460000004001b3170000201408860341a06661928a6b14000b5174525c50321e120da491508c126294329200600000001000810119220a004b8f995f714cb180f0a05b8c2d3319398c7331ca117f563b5a8691076a73527f0e60eac859658f6a75b27cdac0f8963ba8dadba6852abf004c29a9eaca1dd6898c63885b68583ecd00323f1ccc8b4ddc1d96e3ccb21c3a2c4c265e2cbf148215055355a9b0dd64ff8bd13609bf3fe562c5489da49d118b5779bf24b1ff65d887e9bc464329418fda745ac65db0e44944ad04122d9b163e209156156a2822253d860f0e9a2f49b4ebbb6786e8c7a9153ed5c0f0a9e303b3c2c89c5092e81d6a8d88323b81b3be19bc1ad88b055b5fb00f2889d20492a8d03944f1fed363140db87e763b9a368e1dc5791dbd79dd527821911894032ee8e39f63db3b8b52eda518df412d02f40fa08c1e0a91e2059ef635d306ffee25c4687cd356389e0456f30832ec465b79db2680d20992a7494a539f7ba5606203dd70119dec3b9f6526b6affb9ae4d8db0369319d56a77bb5c663df1d5cee8628f0153e373b0330fda88d017176fffec027df5aadc0d40e8e2e2cf7f51ac93f6597e087a84d2acfeaa66ca20ccf0c2a756bb1f90bac5e9fe7fdd08b7ddb8a7bba08ac063210e4587ea32cf3b8f50a771ec2e420f06dbe8b47a487a723acf76d1db96adb2b31dd362f86e0cca03a58894190ec878c5df8bff250242b23fc5b32f58cf1b0d65a5176db22f112832bbb8dd3d89894d34278c117f83b0694bcb4276bf914d2077834366400e13647aead14cfdf559016578e16c1cd7933bbd6c99084c181a26ccbd8f64d31c70a46df6c214f0e7d87885ac62bf120115ca18c48e86a4342b1c4e7fc74ff49f71b718b53aeacf16143c24f64a12c09aa7292f38643801c29611bd7bf535d82546b1e22c8070b5894c829580c168464d0f7f165c9f1062717b51ed182a27bdd377f4abb3c03c3624deab84c045c5d0c19d1322f432ba9625394faa99b866b8bbbd0f933b1464b10eef1699406e7f2b1f2b2892424d6507f303e98782ab168bd783c7036242ebeeaa12e30704d4c00f98dfe539df7e36c1cd0b1e754d01aef7c0fd236acd78ab2fc5e80e0c7c9f4a4a5df7da8d31e9595b18e659e89f3391430f886eb7c2b47da7fe05aa392a91bdaa190143aa0bafd07ce524747b45c1c9040e9201f070b6e02796146c9340c68e291b53c42fae7aa17c6fd440f646046505cad80dcd2ace01d7822ac94eed2d0a0a2dbd5691e01958ef305bf919211aa108d442165e4f6efc05360e147bab516125ef759911c15715b221291ad2b4a9cbd099c76135daf25b72d02aace1eca5c8f1859a677e04a45be578bd54a00bac64951dd072a2eff600d7aee64cc6f58e91123ae21e32e570882b8016d8cd6d97b2e3ec28e9570632c19a7f7245945bc24fc2bf2d66227f51fa392ef928ead0981cd8315a1bd55019928d3d85adf7571d26b25487603ccc809a9e8eb1e92cdaa5e675e498f71d0d6d83ad5d6f1abb335345a4e803f0875e3aaf8485a769c0d1496ecb9a883b367fc638418e66fefe010d5ee2bd3b8d655bf4cde227927af48d09c00b21ef10ab1bc3741e9969cea197a764dc21678e7a6918a1acd91a07bbed2523bae40d12912191ab551fdec1c19a02e786827e6472354888d1dba19eb647e5efc5e83dc1354d46b457257f3b25120b075236d7fc6c605fe52dd48da57b44b72a43de308a1166146a4d878ac0cfe022a2566fdf55f22875682992615105b130e695120892c09893cea049fa9b375d44cb15d4a11f88ac0021051b10acf3c3524c331701735e73a84aa2d69d5696faeacd1ec3635e1d6ff818e95736b5d171404eb581403437a9a10d600f0fd9733b29d04a9581f8a8b2f39b337c42356110cd8c9f25a66b760403c76bb2880cc9d4cb19199323b6ca6d8e9deb7b5f20025d18b0fe005cc8a65a8fbb40f17ec9ef60b3f9d669aeacb05cce0bc7b4c2407dc6d631fd04d529dd459173fc7879575caa0607c366f606016d0870a6622b9350a70c28c9d43cdd88c94a5f5141cd3e5f98ba574429b6ec428eb2574b3a8aaa7b72bb7805122f031a47bdd0feb2d71a25620b95de2d021219bdd3d654b93b69815523e41558a0cb3a25314306320cf63dfa35c9e73584a9f8228994dd342deaf141a3a93fa1b4f68c9d3ded04086e4094de2d6c6fb28a4f3dfa03713d75f014985c9e7f62eb8d52c84c7b28c5934e56b9401e39f1004e44b1949f87591125b7276c8e2250003415298c625689fc5a162f52d61ec8f08a36fd5d45f651772e363285c02ced46a914f271df35594720d21c63cf2144502aeaa8f3c859d6f7ae7f307db9e07a8d4881352a1044566fe2f979ffe184e215121643b0d496ea19787c26716e848fa2fc1a2608f971f030b63ccb675695dce43c13ed622d615bdd3e1b8b96e88348493a13d9ae5dde9389f0a1837862124003300e09956ae7bfdad19ba37065694e9eacfb01caa58514abc439822621517993e301cfa521d5b84b397f232d18d8f9c880bc9c51b199d99c4e2e748dced14ad5ac9da0a76447d229173226218e01a6a51484948cb9224f531c09c5b092939856f4cc21c9c968e001a10afa4a3f040a1009322340a5e10ec7a0d09d1967a28580cad50f33befd1646073da7556628cfdd8ebbb9141168885a4e1075f03dca672be7cce66438012f72a24b287700fb00b8db8ae15d891d4a236a4b4cec93e464f0113112224815bea33609d2709822994901b6d53409a56acf5582d350614d1b886a746ec88de46183937b59470482baeac96e39406e656694b29558c9d996e95a0b9577db78dd83557d929a631239d96f350dfb4040020a0b633f6fb619d771b384e7ed04486d407d6f5745541052de5650a5e12dbba1b1cc4973a2216676cd572a3555a449505db672039a732bcff43aa6cc824d48c37c929bad773941decbc374596e0b7b5260393efc00e82bc15d104976a3264818c8a06b4c0b4e096569bc04112e854a65d4c1a5e85e85410e9491317110cc3d05b826730e03a051822c1fc8ba432e12adc6cbbc7cc31a2af15d86ac01d2398d33b31a8033825111f940009fa40b34f2a9650f144e673fb988845161a3135624153113ac3d2cc0fc937221480dca13c4c95b8a31ef4697eca32af2390b847048d04a4617acb98a387ea5350f1913cb86d454c0244d407a4cf973102070f0de43035305ea16d456f780a6a932583b64166ccf2a39dfa09fdb2a7767f5f37b2ddfc63f0e7a5f77e26e23c1f79ff892737dfef821e509068e0613f3f011de3a55dcad7544bc0299689c2dc91c821338ab28d947a6dc46481117f64420d76c6f595e994d12c379661063cdc6f7223b8a5277d3f47ebad5ac62cfcc4532670f7ad08008f76bd00a227124612c18a5e97963ac930a6271de082fdf3cdaf4c01673c6210c316d671498754d49349e2ac8e276e0f3eebdcf47035ed0eb702fa6fd223cf8f54d913f22c0e825bc032e842ff20ba49c3bdc7b16254b359200e550a38cb7b9003382c8f9163413279c84a93b886958c868d44ea61688159e4c373006eb9e8c67d2ddea7ab56927e0d87514dd441939eb6ace7b377c95b5ace274ee1c620b732ff708abc3a7c6090c49ed1a939ebeda518d824025ee08b1e6a86008bb3ef17d41e67f818b9593387bb4ebfded5c2773c1da5534f4a5caabf5c316493a39b8030e67ba04be9bae304287eb9b30414160622dbcef4ade05ec43b379c7b1e8bbb4f5d5a183636e024807a5aa6320ebc592ff7769823687ce4a53bfdf81932988cc61814fef881d64935da887dccd2b64f9ba2a38997416ad6d0d788d64454e8238fdb02eac67a4b30d3ac409710c76bef220444e342a463dac5a30fcacffb1e4f21abdc02571371c283aedeb4facc6084858a8e3ad1020a286a8b4270949367e913adacb89056b6b511bdda4508e2aaeec27804f19823eca571460f7d584ee06d8abcafbea461dc639f719f5931d17dd10226d3ba73da7705f51ad543f23d4add24930548ddfc78b00b14d6731740faba687128ee85a17250432cb34d648edc48dfba80a1e8dc942cb2056d3b44c680b925a285ce058f1b6c7d5cc6c086d4564342c767ff80f0a408c40ff14c6a216d64a3edb844a30c95c8b2f2c287231a0a82cd03e19567362b18cf26acc95c89b8c8b498ff2e13266efe495b57ff9a3fd764989d6b579632bb44f9dc36604dcab2582f9d382d1a2fdfb6da3f00b3721894695ea08b56459138260ebd303028d7d316406b8dca3132b26d76b09886ba5af80e4c4a7ff6b8ee5dbb38ef75d5e72659f4c894117ca42c647126a0fcdf732764932f387344fbfb205f50f59e60c0c6f519ca8d34966ef34be5a0af2fb308c6bb17cc2f5940f445deb20fc44ee5a248c4e742d139ef1d73840ff245e397eff0243f2490f8a727a33e102ab21f009a387426576f00ab9d296e76ba3a47068d68eed722f7aac3f15b120fe6c22a16d6dac3f2519fcf80d9c7830711204322e898a897747dcc0f6536e560617eaa122713f0d8dac291ce46bf3c94612a1d421767067d123066071b946216077eb391889545aa3fd5d9fa4470709cce7d4c8e02cb742f4278c68e528305d9ae741f30b4f550ac0f0c02c95784818ad4c5a3f963842907427ccd09521bd9be4ff38365985958aa976a85d0cc440e004404b324de1cfe30624bfe608e76c02c6fe9ca9179882592981b121ec9ec297ec163e4acd4510e8d74788ec1c677d6cda4f68563a90af8cb6bbc0b08d4fcc6b8b8c9345c06b8960e10680bf3fd252aa136b4119dac67aebf197278d0001b84aa28ea8685916311c8bac0d25b84cbd71c8b7ec31c44025938ae9b1a1d5a15466d51f165058d38ec8d40e9b53540697810b2345ed2ccef22dab076baefde375c3c9b514f2fd50aa824d2c832dc91a7163aec95691b3c395f38b63a8984a34b6091aa67a0d90f0d69429cbd6284860f8d5dcd33bd417dbff5168b3006be231c582e891c113e5c17991965c541cb6dc4cf5500115a329d1fcee0b555f6ff9aff9f0f26e34344cd3ca198fa6d5bfff983828201402a9a0929fcee83ee3ebbb586232214729c3cd9f42d6a077840d688d592d3850b83e01998ed1c66c6477ae6fff271420e7c756d67fe8b440a6ec294f94ba1799fa57261be81f59705eeb36f71c0fe1af2664b7f247b71ee59c0003128599fcb69a021b8674d543590b84dee93cb7f4d6aacd03e0c1681857a051982e0da11cfdb40430b0ac3b40d78cb59d4f09e16c01a79941433a748820600fa0aeb204e9f8e9e109de712b4e3d23828fa4f321f2b903b8a0e2c53af4012641bd0d91fa61a3cf5b53b8f82c1cbfa012e41dba002ea3b9b352e6f5cba1a55e6849bafc8688fdf874c407325d059f84165cc1adfac855fbfec9b99ad688bec0801b40db4e601f881414a4c738acc3951cc1bb06d40052d2d0a91783e969dae78dfb91b967026b5df803a8ab6c1167a2b3f0deca7038898691b3cddb8ff05e17b9ae7ed5384180e788dff5b806148e42d8c67f348fd2fef8062be1a0052339465ddc1e638050b793918cc4921643310b22f1e03dd22fd05ea3ca3367820073c89583f9e6b580351d082a63007b2bdd4e4c2ff57860ae842c94f03a7d071925440c8350c62f1cca5dbe0937a64fedaa1178155d094fd79c12b1d503a144c574582d346da54c45f9fb9286e32d53cc6f567e967b25eaa2bb8e47457303730224d4b25f844b5a66d0d4eece5dffc4f6932be212fef9028bd6c4c080bae49cbfb73a53484ffa15b5bf25772dd340d4e7ff0b4cf204d3b6b2eff87e36af9ab19a4e9b93e5075f46cdc9def632e709e59f5dca3f768b56f251d53455e754179b21eab584dedba9bbbc42f5ecbc4ce1b0a4f378804f393403e0877a0faa51fe6dcd3a2f07f018b24eba9e2a1978afdab50d8a0c0379e7c9805b67c463488a6dd708d519b8b6ecee534a21cae9158bc3a8ee1047104d6d22bb209cf4b536fc4a532fdb7c5c128cd0c18fd8708035672fa54a6e5539a4a599eaf9dbb04654f82d190047d5c3cd7ca1c4e9c812e686398b2d9309248a3ecdc4d7be490a79db30854a6293bb3866c3a8bbbfcd7b4334b3b199c0cf4963eb10f62ec277bcae0d6886c1af15354c90f9833ba6c47442af54a2f7ad5d0954fb0bc16d976d1925ceee5c9c5355a1a8dca64b18481d62a44a3b59432793682c7e9ce6bade906e28ca0d00a83945b5cba48d0c0a56f25f984972d035f9cce1e3efae090e38d5fd3ec76db4a04e3a6186d6944a7b5e9256fa6c0510aed58edd745949385a98fe9744e2908471422fcb69a898c6dac858c48435725bdeb833cbc8c90a9de9765b850ed685e7a6b088a4bf8d25d726df6f653017ca0c42e17dd0cf177eef332412698b4dbadd16820586190605d769105d846be91f8d6a0e7be64fbaf5fa2f3ee8df171f6368873e0965e4aace08c7319d4adca10218dcddbc9aa55ebb8c5ffe1f5c607244cbe6864f8dbf382459ec83fecf0c8745f6e90900134a47c8ffddc7545c7e80568a008b0c30a1ab191b16fe6c0536e32c5e9014c23cf02aae2483dd12295b6315f5d3cc6dec2ddcf491227dbc19bd56616ba5da762818aa1c99456721b301293cea2b4fa5a5757bd38b90682145f8a580634bb6a77845b23baa22bd80ca0927e7e97677ab188f6e88020272636213e7fde3ccc06471cc400f403fe53b235243070f1ad52e85fc5e3cc7af458c5e11de70c4af23be2aa0528a533c366044fb29c177704abdddbee0858ad9c7d6c196bb72ec87b3ff949ae93b0182ea570e149615b525da257a15eb21bab7f218c7f438a56066a896fd65d37b05fbfb583cd7d49ef73263233abcd29fa22e66f7a5bd2b8121dbcf9d29cef144fed79077551eb0222360693f332970872e7c49f34ca2e341ac21c4b46bbacd47d4e52c5190c933c82303ac9ef0c453a144d50722c647d852e65cfd947ef0a1762cbf3429c71e00a66985a1adcada0ef00d1a32d2431efe5e292a511b2f1e7068c5049ef6519059cd8c3cf60ebcdbd5dc3503a1b05b2f04446e64cac911043648c6be03d279fba56041dd5a27d523d7aa699d2d8f0a5fbc033ccf18c14902fc573c9a53fb195beea7d10a7a21b8b321b8a38758f78b52c9a514d77ba7af2e58450ac6248f2c1e229d61ac014cdb0f2893c535fa2a4a0af1c244eed8942388765e053d80b62baac2fd7a26df56cff57ae2ffd7ca8f88d773208c8c5524668f279370cf467b87165aeb5d65b8694dbf8f6fb17b83898e21096eba07aa189c3fd2f2674ab5a83e3ace39c2f03eaed29a832ca929baa11410d06f71a3fbdb84e8e2e48814ece2a693987100aa915f817f9175af00618e0f40ec29a1f60c391d04dee483a8e808c0ad061749986bdd349708a2c63bddb5687593dcc654e796112160661964fa290751dfeea9c802682a33461318c0a2c18ab090570a814c1e6a9185a3db4451ca810c9849ce32bfa77b28c48654f23bd762644220e8077ae2d60063393a5057bf0a46e9818475801c7642be0d44244821e6183233550c871dcd980449ae5991146f4f0082e25db203b2f0466d3ba8171eac2814e744abf9a3abd8aceae4815ea2fd68c12b902baa628efc7f9ecab5326fe8408eabbd4310072190aa8f0ff7e7d13049067bd3dec65270515a9848f85036e6f0094ffad7703ce90004410c8d2010038808c0e00e701781b553f482fb0080a9409c173d057877e44f432e7b7449220009601c227010b2a657a0fe77c02940062180014ffdfde4d815d1bec09c216acfee0dccf771fc391f33abf59fa75231c00c68c8c1519402a231b85545f6d0ab7aef4a2ee017abb64fd43549ebf0e27fbec582718f6a51f465a36961d53811beedf1c6b0a59ea5d449b51c6fd0e324d24c7a8525b2b192e41860f7036f7c52085fcfcaff742b4ba4b7a33227d1cd074112dcad8b0cef632d7713b0d33c905b8be2fecd17013e40130ec3545f8a22b922452d22d849fb64a9de4222992e19f228864276273bd88994419ed6b368bc5eba2bb2f38acab3b52c0965c5929451bfe14bb673a8b2312ec0ae6763d2377992bed737d50185e1fed62023d2a5278dfa84cc196027c6c6e6be61f4e1aa01d7b72738f9202a31764020a27531595ee2f1c8880ac797ec59ec6badc9d487be97f46b1a8a349695b6fb2facf4e2ac02f0ff4c34901f4b84ec4ec945a1fecd97c2a43d9722bfa168d2bbc55f1045c4d277ca8e1daab836126d28efc6247de63afd8e034a89a1e6fccbba8e7a19467ecc8070fafb7956676662f6ecf4dcc7135585392a1778217bf6caaa77a8160bb0e445bb65926d804fc46a2928c206eb73623b9f23b159d922b51c101f707dcb3d74bc10081225506e5d3393b5bb8021621de3a49fcf679785664abe0c6bac86600ca71d2c6055818e5b03a385aebf94eb1f1b087f49ce1b674b1c7520abae9ac5785400f98918bd80e5456fd8308c322a1c2205291a7539848bdd9bf88f753083e3df862caf992ce81c887c18c7a0434341ab02ff0cbb11f24d07ae45e58bfdc6e9d44d42518d34deb0f70a84bd026536dbc677a0979a46bf91fb32594387760ffed0b3b43ecd6def8f211a64a7a7993344dc6af8332b861a941bcb6c439525d12e19d06c6016c2de9c42f3aa94730cad07c97be8fef4572e3ba30166d2b094fc7543445ae72173b6ef97b37bc26572003df419fa9b854b0b7490c7d0e02c42767b77d22baea7c2fc3216a705d2559c2940e2e4e35f45c6c0fb992ed2dc75bc3856c4624a59ccde65721bad01f02befb783e374b3b1e88277de1f20f610413d3b0c56a01256f38fc5e99b42f327feda59bbd7dcacd6d2540dbe5f29a4247302c0f73c5ba092db4645847d8adb45f582220eca030df2d5cea1f64e246560dce0d6486e958a16a371f0f48e3af897018f73790b17f9a8ae06700bc748e23a0fcdb90670f2c19bf882d7dcd0196e1d7462f9b09483f22d249c5482ffe917e1bd21ddc3d8fa5457abc70a44b23df10db39abed0f2359255da431e94bc34927ff4f7a711aa5df839bd291376c47d20f2f3dc2bf74c1334c5f3fce742246d30b5535fd7e62d311839b1ec9fda68b1737252e74dbb4411cb6a403b920dabb303a2186d46a5a6156ea65cfd53d07d70705c164d25c83e867f0673868da382defa8db73d72dae539255c6b13b099996c280fca313ef0b2e5074d0b40ef403f31e7e9188375274075d2e651f480a9a80343f81b929aacb05508b26edefcf7c557c175efc8606f9003afa943396de8d6361526baac6df3f81a39f5df875f68412304c4142ef0bd9fba5924f6209e3e8cb07590ad104b4c2292e4322ff4ac24196ffeed1f72839236a97e7b6d614f003f214f394bc084ceb2d32737e43e7f937f9289d60f7f4a2f166fc1723eeb5725bef3f1bfb8d53fc180670b3699051f8c1ba8bed59307a7ec882c1d991aa5ebe792d44fa5114e1660bfb64faa62a67ba286679ac8680523da92d03eb2da38be500132bc92ded6444f2430e9abc77ca8bc60ef1d6b5122e8ad6ce20114463a3bd9929b6945c39187c80b0e38fd8934512a33612e71f3556c6bcb6cc84f8f1ce5ea194478ccd1ef10837acf04bbcde7469adb28c47958a89023079de48ab16b117e1e2b835d98682da89b8f60425213e98303a5622811e63a36d7f726c66e065d56887ba31ac0ba69d1fa48269673e35eaad955d955d11a466d3080fff8c5d145a34b13b40c387e84278069e69a18212edd063f6e7e4345ddab9e455638d91e65129a030352f2259fee18783a3178131e39f183a80caad5cc95b04b292366a0556b3ca5fab65e715781d21c0f1207316c03a050d02db53726f82cdcc83979bfa912ed8fc77feea1faa1b04ba39521a96a6917cadd4d1583a3f2c503b5c21fc542ca5d73c168382d888cdc79344e777509505f7c2d4e6375fa3a9643b66c6336959abdd82d4bceefdb57767fddf12e4fd180f87ca63fbb0a24489f40f56d5e1590b1cbdbcea9591375881e846ffd718d0c2deea8b2d43d16e07e01e85279a1d0fde32810ca973233254dd3c922172919b0cad548e510f9e45ca114ae131faad36dc0b0914b7581f1b76e3f0a5e322272e4cc764d4edd052dd1821c6802ccc207a3954eb4514c184fb2c2cebd92b530f96ba41587e51383f34b6e815cb88fa8df39acc7781cfb518eb486b4b8e7bf9794f6a67f9afd0ab9d4f842190f00ce08eced928a161d0bee178ed17127ec2df7b22105d7a5a7649a100a485bfeab7c830f5c6beb7ef6fef0d281296485fde9b35177698342560266f64dd030dcff12662202a23a9e9c9480f46328a3b4346a25a2272486c8b4444ef47dd140645198483897b2361982e7e45c6edf1d7d1cb0d1676b1490ea28214489a7d28514699ee5bfae8eda0d06f41cbd6d4101def5c3ac6e3a3b8a66bda9d8dd2c4848eda54cc8579a88b79231e7f0cf1301ce3311e2cae42f6a2f41c0c537c4678f21af37c8610585ee099e9c6811aaf5295efc806755145bf05595e864f3ff4426fe82d644feab13c4185eadb34d13d81f1c391a58d7a19cb1b590d94e89c0d45b8b3e82e7af3ee2d6ece79f9f2fecef5d824a06c5ea55e57ea16f092c9a67aaf86bdb038f94b2ab98d20d6f8665b8c2b817414e1e6988a83b9820f75684c4383dcbd37700d47dad03348369d65f506705347f2a44ffa5aa22ae9fd3bd5ddda139a9fbb48daac13ee1631f89e7bca77b896f30ada71c020f1a603b1e988a0be7f2f0e8e715bbdec0e50ae6e7c28b7ddec27f8c9f6088a842cadffaa3f2eb173350cf0296dd7b477ea5638cf71190eda540f244a17850ee97da89f15565779fc63b67ddce8fa95b5ef2afa52be756b3ae60dca30747a4b912ed578d18b15133935e9250bd031f29b0a2204880a4cb6540efb81f68c3f8e78f681b741e316081572746187c4c7b6cb837528ecc5271bbdb63f1f9d5784078fe8d4f998008e7f65140478f6caf2475e69e40c29fbf6eb4424cf44fcd5802a8ae82cbd6c7cbb5afaef832375277118c8fcb370f89efe21e4194d2bef104aaeb4a10cfc07fb1da6a55febf10f51d4a3974cd72bebc7707b6f69a8ba7799bd43707d898883c058958ed1752b551c390188bb97bf7893ce311ed9794b19a3c33d75759cc5f358f7eba1aec1c937b8a9d6c008ab6215bf86430059586bbdc0d75e792d6d0ea131418cf6d622cd22d17ba914831335e2a84ee4bd5a9725695aea1fd0b6f9c51d38fb67e67d185acff42facc0b9b7c90acd098ed6d672bdc5091902ad932aa2c8fd970921302e5ef28e2431de4dfa814d30d62c4c5d1f0348dd8c492bb2e8b7e0cbcb74108ff73c1947e351dcd37b5efb2c3f0970b4d0ae8668425457749528e94a2dbf4cddff563645633653b35d76dced86d5662add7ff808edd1534263c9b3ef202c0b43c686bd2ccc6e67ea641b5c4a80b39253d6d0586ab9a21f05ac8bff080b5eb29d33a8c5bda9158ef1f2c55878a15d1c0669b2aafd8521a4cf8d63e8014d03d6c61f37b7529390ede37f7323e7c5fbeb77d71db9999bb99a6b7bb7b76b0aefc1166cc12dd84e326b0979efe28c493b059aefae8cfa4e857fdf5ff04b6849c7fc2e376140a0ad77f67d7e52674465ad9f18f9b4058000898018162d2a081765c8e94e8342b042a4f58781660a305cf1f5ffcbc8d6af0a2c00431eb46ced5f8d4cf61b081a152280a86ed66f126e15569cf1ad0a86292cb62fde7d261651259ea05ef9af79ecca89046224086f3308d1ce0787b1bd77013c8fbe06c2815874f58265d616c6a38aa4b54ca69d74a3a50ce715eb7b3e1de754e3ad401246db83f5f119bd84f31524fe0343d89b53423269573c8721f1c486bf1f837b43f18db7e83fcb999b37e921365cd2723df3d95392584b4104fcca55934626fbb0155f0827a2c2be6ef2066fcede8b45a71aa23855c36b412122a5bde841181c37934a282b8dff71a759ae635e013234174869458c58e9619067558f609be6b78fec0176141cd2437b545dbf97630d5c238558191bd3fafc371a72e08b89ebe0f69178a3fc1c829729fe45d0084469a637b600e4ea3ad5cdf5c65b9ef95d58581f26286ea17e3cd8cd0436b49815c47520b2d79121f9f57280df176e82bc015338ef9391e70e04b53d2d480900af1dfc9e03d3d3b08a6f7bc0ca0032224372713a1bd11d00743ea06efd0bb7653ac8cbe5d982f3901d38fe563396ee6630890b35a9444221914864e75c771b7e933779d267f22e2db3be37541c418b9769dc2e65ebbf8bbbf550395484ac405e0c333fdb81e278c67a4d51c7472b383a95f19702d7e9581e76e058047e72b9d88125be4aa3105c04fe38e10406cd59781fc8d01ad00ef2db7ca2266d3b9f1068cf19276e3e5cfbc5e8d1b96c536f72598935ede064875b5deff0ef2d1608e0477c318a3f4d76897978e4ef2d33d3232a804b9e0a6966c51204ba55888481001740614182c695f9b9331f4293a2d834d40bcda28fd37aa78f25f6c5e63c74ea98d43044bf9b66fc2fdecb61efeef29777b0ae77874bcaee04e600a395f57f2f6f274b99cf6668a50b702a4cf8705c89da38294b72f27c1b88a014c44ecb69c3b52d0e2041f4c366462b90fbe123cae6010b00fcf95953fe9116fa181baa94ce8e3c6ec202e42c17c8e9f4bc26fe58dc66d69f6ac4b63f755aeefed47b6d8476c116824cac8fb6ce4de10dfdcc8da71d269c7e8a391b8f7893ea3a22f5e4919c93333dd31e3ea8c2a2faba90c2aaf6e8cbe4499b8c399bbf3acf8894b766830ee2244fe403e47ada55ad38abf52ba1066aa48ff44cad70ebd7734d3ad858ab73552cd701395aa15f26c2910ef650940a62b71ac9ce4e5d481c85e529c06d13c8d8e3d0be2ebf09431f986d727e35155eaccacd9552d5aacd661d3108cee356078de695175fd4a500906f8f81f21e162d45f753b72b45423984266491308a699d4298e4613b65835c2f855cecd72ed364954c217c0d154f28f8daa953ca7b10bd6d08d36a13c22eaf8220a5ed80a097d50f742260e0746396259b9e2d8d7de35ab917b2e0a7dfcc02786d6987aa3aeb86d91d574a2f74308900ce1b4fd83d22da3837d5de8d54e7ebc61299cb48364b2fa1d6ab2077356d6b1b5f8ba4ab03eb2016d6a6cf41fb6afebfffd9ac8a3119e7d44ecc2f58b11d33debce5432617b3d55b4688c8db9e8b12db53f3ab3d914ada1be09498cf0e3da4ecd36e334e4219e9239712967a0a2753188d7d9a7a4d264d64a56bf9a03c507b45a5a08e69d9827a497049371b9dbd28c73b50154da73e8f2341e5916f45dda19503e1c016840cd128e4dcf69157a08f10c3c1f1a07819981dc7b2ade85bfcc36bb165b8bf6d92f650103a50cf089d37b2848eddffa384aad2eea037534468660562ca4ede7554cb806d47d5509f10c5db4d685abc7d5b2ce38d9b001bec8295bacabf552f67635992b395fe99901f476355ffd3918c4d92b63717f6d479bda76841ccc9d188b6f369c1d37c9e1758e728798915e40975e85247dcda31a706b1ef74bae8dffa991f8acc09dff55fa5df70cd9b1cd378ec4dc1dfd5594d3099ce322de777bb1b9d94a5a36b30df14a6ea53d66dfd2bfa224c26b7ff98c1b0068cb15c5c93359ca335c8c094c36ccce411031ef78cb03dfb59b730360e4aba3fc49c6f6584f8af63bc09a1cfba13d7b1c5e5c79ab4a70bc4a32213c75442a0f69f061197ba49bc148336b28d9ba2433679da73b6bf7e829a6604dd41004a4be715c1ae30f3380da5500b5b6bbb06630fa06228ee197769452ede8d34dc233bd3a413e69091385bb0765dc91f4f3166dd404a4c740d7a18a9035e121049123833736f43036020f68c0934275a46b264dbbc67fd09825d36c7660a5fba92225eb211e19e45dc333fa6ff8fb5050410d8edb4ec98a96fa9878a58a8f6f788d1dbf4a31df8e9ae813cf31e61104d18af1ebb66cf7b2aeb78889d4e34d6454cd15437063e6e62931adf6de700eded50707a4860a0bd1ba886e9f864d80d302f0477c41adbc4bbec2855e8d973e1bd218c8ed865356d870136cc94766a7a1843b49a8f8eea2ee330c9bd63be64eedf3a8c9f70b0670498600b89e138c951a123bc21d3a9a0487fb2314c789264eb2e69217ccd7e43ec97d6604fd70698a8d9a5dc23e4b8f8d3a7de3c3bd0c8e94d0deea3d3b5aee4eaa06ff5dd294081a46ecb5343ca3e9fd86dcc056996c13c084fed2c11678186d744ea94c7cd28f270e8dc3aca67772ccc9940f1412ce90a1efe77f20397e4bd3ff4bf4fdbdb1916bbbf81f77cfda1219596a467099a5a67352014aca33f33e2624d084eee16a928b1f16291db16c36dc88710617d77caf03aa4976ac6ab56e0c25f75ca3784284ce2960b6e9978413addac9ac8a5de56495141e4b0fbc05ca6a179a2d341a13b52c363eb035997bfdc4379c0be7581e61609b4ecdaf831b78231ddac9b0c7789afbeaeccc877444ecf8851e2163e5f9e1e7b001216d826b84208f7861fc43810dcb6b96471e88a4975d9a5c0116225bbb4cdc15c9a7aa2841fb94b5f32ead54963a61bde6951703d318e56dce0ed7ea64a9f8fa1c52426cde126fbcaa9e866982f7aee91977e0fbce4077d17bec061b6418cfe4168a2b1fe5e10c88f206279e1de82e9a0859c2384bb2b967b8b7636f901a058b80241c081078c671e2c113081cb4a1a2d1f4c53897b44a52699a85a60b344c587850b7147db7e0d050badee5e9634167fc699fd23b4c53afa6aa4aed5ddea88c65bc20ef18d55208edbd7fd42d08275f165093e02962104d5303feaa22e5a8e2814bd50b8ded4a61e825d82c83b63a8f485875db3ef2f1b0b8b9f47af2c0230ea25c6b5833c643f2a3097b8ead327779a06e550d250ee912eca7da18f72a7751cd167d553f83db4c52d4d489026aa54135eda5013ae354c139adb5ae47ccd896ec2c8b2254b4b87bdf9feb7ef4105096c6b7eb3c178710b3b71c6d07f517a10ce9673451fec8e5ccf677100002ef2f9298c2e5674d26dfa46ae516693fbfb65279a0853d3d4a59229c4f2b028c98e9a110c63b00b5fbc62bbc863c23eccb7495c2cf1fb271a37daaaff7951932fa9cd735ec572642a817e6a6f3e84dc97c2dd20bc711736e55be6aea860afca563b200ee3122fcc5d3d6b9db05ec463a666cd1a69d4a86e5ef0161563df0c00c140551898522b51ce54e0131223f99435813ec5c2d8a72a55f869129e7e223a8fa5749c144294562edf88d81135a25951602a46710ace6d1b32dcb50a15d6e5d52a413fa11659400771e64dde6610de2c0afb0f589a273fac860c8f1a74b9813cacc46b6e94c29d37ea128464d8ef201f8750415f854104e56a7b9ce22db58c069a52a30187c1383812063a750824821116531a2fbcf069404e43f70a59b403fae5ff96be6dec82308968af52d9ec8cb123b675a480ff66bfa8e4d8af82793fe57afc61213f73db7f08d1782fdee58d8bb3b0b8b8853e95af9a0294db51070519549787ee04441b378250ed7fc97a0c145c1aa4a7fb7903b19b15a27ff39a6275bd495e25eba448879e3467122809341f4a54a946c9810042eff737418306b6291e5a251df65e950c7fddaa0808ed826eb28306c691b7389b3987e48d6e1e91a6ed665f3c1dd0f93da1ef7f69742843d162094cbd328125beffe2e58886c991ed66f31c5f4da90a45b381be8720aa8ddd5f66843da5f2f485d92616acb9b8c83fcf41af8b8164747143b15c2cf146a9d2a0e3e29376fe310f8e1e5e4d2fe595e89621370b4df9157e31e73b4ed67d6795ae4a8105f69a0d86878f073fd5bd776bd60aeba2e64e1e4eb024f11f1e1a4805998ca996e12a557774e7eee84e55145fe2355aa36bbc952fa120b342250b166ed70a207797b4765708a4775d1923dd2382dcc552c3249446ab64d20110d788862d70f4fd860234ac389cc19a6e6325017973cea2f57abb7f769e34d3feaa74f2c3eccf012799fa27ebea6a36ec2ca958011d2593d688955cf5e8b1a8c72b6f9fd1df4a7297ac117f89763a869899da3711800f0f074ed0f977d25c03a4c7d99d20a334e9954cd3373b61dc5c95b6f4ffd2664e7494460ab0b165a61e710d30cdbf0c4c0adca7ba1a577ad8a446f170c95d3be7e238d69fef447dd7ffd87123f7f171571d233445d7b166bc158b3e952365757b7936477d1d8c870c294ad5239940efe3ed995b79896ee8b0c3e5fbdc57d51adc65b98ed09d1a61c6374f10f77367edffa1793f6ee5a46cbaf9ba6973f53665e7a6230873621befb1387e2b151bbd05cbda612a9396170f21b4db96367cf3a9e4c1827add1ce452c2d91b43bb7963888337cee4da8d291efe7708db9123b2589096f8888fa426f8a93b7c04238e1d73fcd8e311b6132713602d35bec66040f03d9e44a215fa1eb14695dcda9dd1a4a48c39d2159a62dc76bc112eee77454dda8bd68b6538632cf4178641f5956b92c08adcf70d2d0c5ffac7bf8385c5dbf9afe4dd8843ac8b42fbcb0b14c2ce2e4c03a1a990ad951d1705b6556373253a496b10db34d636328f353bdcaa295ad30037e055c5dc1db4b38fb7b1f6f61022456d8bcd77cc06e0c6c3da32c5684357587e8d23382c8318b24aa8736c39bd8ced938a550b1d239dcf49792bf4b50a47029c35422a376cbdebbfa61b2536b6b4653317c8fa544f37fddeba54e64ee7405bd4b8015ea2328b25078ecec980d639f6faafb69441c4d877f52fa8503e94bb65c9e2abd5be71b77d14908061367313ea48dcb5de8cd7ddbb4dee11f07dd919440319519cc7208ae5621efb8d9f31f6cfc4aab113a33b0bd0d40e84071e0b048e6faf1298ae22a76c78ecd5e6a241628cbdb9b0c27e4049a20927363ddccdf34042014172ebb594c4c307793344fd895795f7d81a4b3251605e753eccbb0da9850cec594275297b194bb1842a007bf2b8aec0b0fbd2773b1a77a15673e38300dc125c06812e87e9608600e1b17b33038a68c912ecb4ddb2eb57944fd68bfd068a26d0e75bb5dfbab8cdb1e66a63057a80cc64dfa12aedacc7f99a1929e0302ab47c61861560a8f96b874a51a6c4696b581646fd95906c0533abc568cc205ec0a96ddd37130835f0b9229c246be2c202a35b8bab696253053719123db40a1deea51aedf08b7b05779cc7f78b767914e1c0b9476da96de84f008302ca9e5d1113ba76858c5b2cefff08d8a7b5c6bb6b9b1990afff225b0f84c932a5b52ee843619dafccdc8ec9407cf83871a3cebfb3668db01e6f4faa5824b907e78fdab41f5903e4d79f5bcd911000a930d53d91de98c260321183984249bf7c46cb2414a101f2f7f28b6ed339e62b9fee694374bcb3eeaea378ded5ef5b52bdeb6f5c97e12dd8822d587d1c0510a4a2a036db77cab56362ef0cb7872b1af96ebe40a2d1b9e03b075f714ddb52c2fb06e7aebdbf41e98cb481f19fa1c65105e67bd6270cdccee33135bdca0ea1a74c38d5bb55f4caa4feb7b47696fff8589b75d1f1b6eeb79ee9b9db12cae5900416de32869f28857e4911334b847b4787bb9748893f9ccd10d7da88e76b89df9489bfccfbd185f5d690c81810f593df177880963e28feab6fb809eb8bd2841cacc0e323740bd7e6242e6338238726bed2e5847974a6624a6b59b9aa69734b22286747ab63448773087f4adbf8942fe22e359e9c58b34800c1753b6dc6a2793074ab16a38310387eeb563e732a3960c0a6d8bcd8553a1b3883ab0367face3e831382239d11cc7cf0082232e7062e0e092dee6934c2f0377ae7ca42dc93d4a15380fcf7b2251f3a6dd8c41969d8b42964d89033c3b05913736153b15ac651c65a0c43f21eb14d2265f511d080be71f541805e1f47fede21b783901444076a9350f30068bb92bc08c0da2b2552903df32f291684babf07a144fae0fe4d8584b8ecb92858b44b4c4eb630ebf38f429da8e925c5ede4f26b7f60480b614cb866fd6a2e75cd04a774c44f04c2a678f8723d0c494799c809a845be679be513d46b11ac26067e6c0f8fbfc777c408a0500ce11361a26541b064eff0ac9f9fa85a050fea0770421e58c6ad30b513ce909208e12b85ebd9a2da69a90ddb4f186419693e774d9518ce2f963a6d228fa7e06e56bb16f4c813c3ed6afc7fb4517aed0cb2bb632ff3ed06ebba2c106c9d69b426fc9f7cfef0f9dd07a32d9da1e9d4a135485a761cc8eac06cc290291c1a509c76bfee86cc9ae78ffc7a3202f30d9ee683acabc499a4e238135e4f08943c7c2688f4f9180ff53ce523b4b602493ceb5f198b094ef5d617c52509bf79f272a85de31f0247c1f08133a0bc14bc5cb932b805b37cbf71737aa179799d64a1cc3897acd0668d1070eeb4dd49eacbead8faf054d3d368f3990fa1c59f9aeeadcde7426d7fe20e307833e67d185ac7f42face0a9b7c949ed9c78452995c3e29dafd4b58d8721f91eeffea51e441e574c133679077324904260ae1c737118577833e50e6017ef68656c050005352e2cc15edddc466c2e6f6b406ad9014b713106f053feffed75b15c6acf252bc9db9bfacdea422e876f412ba03888d55802cff03b330e2fb471180ac39ddece6b1af2529f598356ac76d3c1382d4b568b7cf02846006dbf34c51c2accf0bd950d8a42caa539adff09b5e57a88521d008da421e64b9a6ad2a489c6414fa3a53fc676ecaf46020eb5816266c1703ff83290b54e4f942528b80578f50f090909cedee9bcaeae6e9db49bb98c1222d9b0b361675913f69ae2db7a041cdf0b5247df87327e7c06fdb52235716e89fc83bcb77a5fbcbfd81bba00b2cccad0054b0a5d7947e884a441553e12344a9c829430d9b57fff20f49fb608d5924142abf999503ebd51e891b00af504d5cdbb396e70371b0feda3fdb4d7746868e4d621adc891bec1cbceb7598dd5bedabbb95fe7700bf6d016ecc1b6b5816e04219d040ebac6a67a87df855903f68f31e037ca8a2fac35f5f22e730250618c3e28c5da7019fa93105fd92643fa5a639c4aca05923f42adaf80eeeae244fae1c5e754e7c2e3b3edd23a273f08b0bc0c7352cb3936490a44d1af95ea74fc24fa74ec690b75f8941a75c429a9ab83dfa9a3485c64fc257042c2fc4198e3f0bd31445ac6d3725c113028134996bbe7318e780832fc6c56a798c8b0f04b417aaee2235ce0f71979c235eab6a28bd03593a65470e22fcae3a614696d0b96e3b0a2fa22035c81735ca0f79a3103f61c168bd5b166b89c55b0cbd32bffb83b19ff9028debafe885a9e73838f0b2cf18364684e76372939ebdf6b4976edfc3b9af963b482507a0c85301ccae30b83d0aa1f4c93614226ddf439e81aa198e77c0f738790608e19f4cb05d1d4e2c64cb0e0330cf24e9c84539647d0489c4b4782bd7186380950c869a0120ce4c9401a85d3558e11ace9d4c8194d4c8f6b9c50c874efc43140a6d3289ce151aa1081d3d94c773b0b9187f8701f73239ee1c03a53bf70078fdef46bb632abfa6377f63bdb374ae489479c39c8be0b4e579eac1a999ebe135cdd74214231962fde93814593a4cfc66f733a528f2299b702ce839ae40cc855285f038598297526ba9aeea249def002e5987c203c979719a554ac85c4651c1f15d967002647e2d161e4ef692a53106eb583c27cb6e1b80f8cd2fe5df0ef1a930a2313a50709ff89b539b2a143951f19cc2dd323e9b430f1a78d4edf86122fed3ae0b2b33554390269b4d9dac94273845e074a641194ed84d4bcc21d090c8fc92df87b94ea56175106cf4d8d806a69542904ea97e3bd561058c96a3ac207406aa0a61b9e65e7a8fc68a8d71019e7a7a17fb4c8948651c1e2804831dd44190000871fa0c35576db613f4b4c11b7d7b88459aace55e2b6390bd8d5166f03964b879e112fe94df6de7b6f29654a32c20bf70bc10b6d6484696e31f9cab3679a7b666b69f115ce57aec7e259dcfc71952d9b169c2b21cf9d5cf7fa2ec24e5ec7f8d34edee6e608a87f57f81faff28a489a21a721a299b9e9f32f4cc38446e6264d1337a7a091ef8b0338b5847cd5921d41572d26a8795f87956b09e0efb764fe57872dcbcd4d2ddec2d11dad30a8d91283b6c8a03b5a65b4d93aa3cdfb228f934dadb25a3057d97cd51272d3e60874d53a829aae82e5fbb57c59392fc03a382cbbbe73b3eb3a0a06814c06df855f647675d7759f80a6e1161314b85504ba029ffac082ae5cb88545165bd8b2dcb4e0c210839af7740679dadc6e684d50f3fe59330ece4ecee666a3c55736389b2d36391b326ccc307d304d6026690d791317b7a2d09cfbfd046ec1809aad19e056d29496528b8a3b815b4b48b8650514dce20135ef3b41cddb9ab9793f8576426cd1a88f250ce05b4cbe727d8b467d74462a73f8c9a165e81edbb5667ebfe5c4dfc771dadcfa094cb30bd3dc5030cd8d84696e2730cd7d8469b641d04ec850239567cd397fd69c42cea7f0ed8451e6f15ff6512b4beb467dbcfe7ecb0bbaeaa2bfdf0283aedae8efb7c2a03e7af6f75b4de8553bf9fbad27f4aa9ffc7d700402640ceaa381283dc13e4938c13e46b479bf67d8a708bae37e1b611f1450f37e17611f21a879ff857d6274c77d17f609f2811de11f4d6eded73144801759f89173f3a6325804f2bcc185af93eb56f899f7f18554eeca16d30bc85327e7ab9395eb749a9cd53a643a84dcbcd9e6ab548dcdcd1bffc20a405678202ffe38d9184903cb36469e748949c9e55b4c60631cd928976995222c2a645aa5484b6e61415937b8aa8ac9acf041888c581838302ff2bd0173570a99d11df705f05d9e3966d1bf00be8d4eb2bafc79872a3e99419e3a399d5c65b15e7f7eae3f4999d7a155562b7193ab2ca0bf8f03abac227f1f47a8b25af6f77168f7716af7717095d54cfcfd1d4295d54dfefe0e5a65b50afefe8e5a65f50afefe0e5c65350bfefe00842aab87fefe006895d52df8fb03a85556bbe0ef0f005759ddc4dfcf11aaac2692b1c1bce14f1e18f8b34706fea44bb44699e88de268eeecd8d9422deb192de9eca5b36bcd743b1b7776eef4980bb9ecf4d9e9344ff225af31f9cd719e8b9d55e8acb2b3ce3a891b5cd20d0e7f4de0cf05f86b01f686b0c702ecad007b2ac05d13dc3171614be06b93e1aba404fe6c49d0909831c14718516345e484704b6e4430a1a0a664e9044943d08498c570102e940403910bc2fd703301930fddb02524493dd07898ed202b0126c1087222c085e00602a60f6400033d6ee0618379878ae04bbbb33bc4ca55d6f72acf8f74952729f36f76ac5cb36c1064cbe6268157bdcd0d862f9f47f58f6c49239b801785a481e515bec5b4c29f37b83fbf9c673e777983f382fc9e1e5a59393d39b9ca62e12365645eece9e9e9e91142ab2cdad32324895a51caf76f7016e7e4fce8e432b88484a14713ff2a648a9b574948d21021b4aac26273d3e5e9d8621242abaabb93abacef2349199904fcf9a7cdcde6e6e68d84a1e61e4d84d02acb7bee8bac9caf4022c8939563e56e7051c8f306d7cfcab19a7cb50198af3a10f3552bf11507847c8583cc57ae264344bef2c0dfef81d483e6ab1cfe7e0f29bed2e1eff798e22bf06f063d80c3d701879f036edd5a38376f4b8b9b17073cd38fc3f77700cff477e0fb398067fa39f0e16f00cff46fe0c3d28567686e6571f33ed3090a647fe71a26f0e70d4ec89f3a39263f7000b9b9cb161314e48fdc8fa6b326374eeefa3b3957ddef1722813f6d6e41be15a415e44f32b7de621a59553dcee774872a0becb94f03b331f2bc433f34305f0539d1c0c46f6400d863cb165355dd3b7487aaea4ae0cf1a9a22308d0cb573001e17b28e8f1e03fcf0f97901c8b55ef546000543f134a272a06884e88efb38f2488187a1511fdddfb6e51c5eed8d609a8fe0f388571b957c8523df22f2a599a2d4f3270d957c6996ae58c9f76996a0b4053827f98eb928f93e0e189af8278d50b8c5cd8b67be7c763ebd5542761f9637b80fcb4dce575d795d7f82603ff8a00bb798dc04cbf3b3eb69846884a8ea3e589eae0f5f74e19bdc0d0edf6ca137385f857fff66cb4dce1586b83f77d9b2e548a529f2491ec18cef83a18d3698154923e4669767e70569e43b234f23f434429846d66f0e91278d108dec96343237ef9f9272f760982437eff7601823188636932de93ab10343300489203defefd3d03c4c330d135f19791a190d915f1add4c4883e4ab1386d6d108d130c9924f349a24251a2af769ac380bc646d3c457b48a2c54f27d9aa1d0eb6068be92e2ab2e23c9571698a2e4ab910acc92af2af0f761acdc6fd9ba6f31a580f44ebac4846782780fb3c5f3304ccd0b1f660bcc15372f6e61399541825760683034376f0b8b9bf76fb10ce213e64abe74299fa3adc5d4c2e22b0eb46cbe6a1a21db5d1ed5bfb5f14c903e51442f5414cccdfb332fd4dc3d0a15544f6590272a28df172d0d124f6490a3cdcdfbb7538e3c47db6843058d597c65e4bbff1c715df8278ac92ddf3fc72df98eb913058b2941c9f26de2fa134594af113c0a8d4cdcbc0fe2b1c938e4e67dd19e7a84c19e5803d8bae96357eae02a472237ef7be52813eb17f9198080be48c9031422f6817800fa5a52938769e6537d12cb60b23e10487a80de3e10487a8afce71b60922a6ba6cb191980de862702f4367cbf0de50e50ba2452e46f2877b05fa4c8ef501fa8047a243d1ff2b879bf086e55d57d206c83c8ca82a1519550658d36aaba7f9fd6322c4f9a59be5f37daf2b58f4f4b5575bfc823e9e9ae9c89407dfb4480be48b90394ee814ab306f4b544f2fa6224ed0182a1d108f9aafb938608a419ca9746c84d1a219a26f9fe690cb2863f69606837604380feb4545919781e80de86bf7fca55d60c11fb45be48b9c30db79ce9722602405fe467c0c0d79fa1c867a0e401e88b7c2d79804204a89c2172c3dbf037943333d4077aa092871e1bca935255dd2f529e3050d29e2ecf53cd96a75c55ddafe509575517286bb0003ebd0ae07384e5fb14c03af404f0f949009f6404f0394ac9f72180cf7196efd380cf6a7b00d6c1ce804fd2013944f0d9007cd61c03f0f9c9804f7bca2c009f16a6007cd2a52cf2fd18f0f90981019f3509c067650a82cf536b0708d6c1be804ff2079fa40f3eff07d6a1079fd5966960f93e0fd6c1eee0f38425df47c0fd03e0f373019fd48a967c5f079f36e6039f940741f96281056b2797efaff059710560e5f2fd1658c8e5fb2cd4d8f2fd15b00e96003a86f27d1ef82c73e814b97c7f00748996efefc06799adb8c1a70a2ae0b35ea1c2e767e2d3868c7cdf462797efebc0a70a02c067bda2069f952900f82c4b8ccf5a2bf3499798ce6a0500f0f934f83473e01307eb6071e4e4f2fd1bf82465f069730c3e4f36f0596f30f8b46142be5f039f74c908f9fe0b3e7188f27d177c7e34487c9e52e70d2edf1f63b0f1fe38f315ea843b295516ed49421acbf3943b95e7c9b6946f2ddf177167c61d7226e350d7643295e2c1a82083c98b55aa821aa2820c25d8dcf2fdf30637dae81213193937068e9c030032a53b3a77f7a28fde8f8d913dfe746f4706d0c6e7a5658f66ad944bbb48a70fa94bcfbb486ede121c7fba5f91578a9bf7bb7bea462077d6deeea81cea0700905f00c8fd6187bdd849232403d80343abaaeb619a6168f9de5955dd47f5977788eeb8ff4d417e5555cb99f0697ea1e6c6e2e6979b89eeb82f36754775cd4d591d897c4fabaa2b5fb297430ad92b29dd7196e076c4ab9de22dfc60b020f2ab6190014310d319eadb9287efabcdadd6625aaaaafbfdfd1b9caf6e7cbe8ac954a9eca4b1696ebad73fe379ddcdf72f91af68155d08e5fbb7e62b9aef5f2cce0295ee5f245fd12a92803b73e0c8e79d29e58bbb275896a67cde2bf99e9796ef7b5dd308d5869466beba4fc3c457fd847c9f46e62b7f31f249d3848628df2df9cc914f1aa17cebdfefa5cab25f13ca34005f0f8da4470f3c908c3d744820d04323a96285f2024a298580e8e0778f1801f0bf7287f0c1bfd8c7efc50f7f557547fb1f0edf6222df87e50e641501ed68f481ac5f3f5b1ae93207a5eede3450270932a53bee0bf7bb0731edf1ce23f769966c4b23344bfeebbe24d29a33c7b8449e32d9ebbfd06a5efb396ed7755dde1532d7e50dee47657dcc4eae65b3823c77725f9076e8f4c48993d98b2fdcb3d92300e8af0d1b36dedaaf405fed033d4d88145f254df1550d7fdf4a4c51519191d18d222615e806777ab19ace233d60252b974aa5584d3d60363799ee98ee74be5d80f90a7cfd09becb153e18bec01708bedef5e2cbd585ae8ee61be38fab2c00d9759d4c1792ad33d3b2feaed4c9b9f90387ebcf300cdf48e80abf8fb698a8caf5e08b2eec024c27d7a493ab2177af43f38c4e4ea7c905188eee4a1fd88d9d1c55ddbf948adde38fcbf53efeb8c4ce0bdaafefcaf30e4182ffc2e7919a6b1d90fdb66f31b9d9b275afb065c332f4fa7bbecaef46775c6aad1d7f5cdf98cc47f53bdc69721558dee0c29b2daeba6f6b2d2fe8fa3bfeb8da2bcaa65d6f83bba1b59858b97c3b568e953bc5221001294952a6c4844892ecd85821f0d459107871458e48e36ca4ed30c21a46e3b422c3a7d1752d5b8ba9b26ef41c89a0aa6e8e07753a9501824f86d84c43104210703bd1a4c910d8508888706238497060384138b1300c719234e1c07082706238309c244d70827062384938309c245d04e22469c281e124693a014e129c184e9232481f7f2a83d4e922cccab1d2d4d4d4a4d3d474836b6a025ff4ae8ec20ca03d4140d8af0f449107fa3ad672a74899532b7f305595bdf6765fe791de08c4e61e5bb4c71be0bf11c8cd0da43ffc6f0cd21f7e3782252a46cec0d03fb0943956aeb8d97d97394be58f1add71cb710852c7c2c621481fe310a44e97c5578d05cb879d4516382210e1c39caf1a0b2cbe8362be8a41490c4c64be6a289a10f9d864c8572f9c2438b12c320d4108418082f43cde34dc484f3cd1648888e8890771233d1d1bca0cd3dc351fe0a67df700f7ec9b07b8a17882bb27a310937194897587fe2e83d4dc4ebaee41b0c157e55cdfeffaeec33074a29d085de5d93d2e40cca1ab3c9164d787b85f15beaa4985fe1f7f9aa786b8df85db8993f244d2473f0af9aa8f8efef5fa367a5553ebd0dc462ac05e9f026d0c22e62ade13adac227f9a4b407f9ab5b03c8f9c9dd33937c5dc1d0bdef8d33f0a411ae9fee66ffc696fdd7cf52aa99b6179aa00cbaf7ffd7d3d4fed84dc3c9141baf027328000e1fa45b0bd2204b9936381c7793c672964cdfc4e8e4e91b334f3a74eee473d7772aca7ac9d5c9618f1138274f9ee99f91b5c17ede46e70edf2e74eee1485748106eaa8ced03db5dc01490f4f35c2afafd87b5a4c42967cd559f1555fb952f3550301084c8dc557fd831f08b1f9aaaf2867fafb8aefbf2fe4e62b508b109c902d429a6280c510e4ab1894f8ebf5c231febc6a3ef89ee1ee010fdaa8a3e09e3d7932ca7c45b3ac061428344cc0cdcbb4001bdcbc35dc314676ff729533324071fd0eafd255d612494ff8b4fb236ede77b9796b6c371cfc9584bc2f00588dad0637d6d8b2f8aabbd5e06ab6f8aa2b47a19adcc8448792affaaf8e216fa3d731a48348c74c074d87141d49a725a047a21401fb404fa4c80ef56d1124fe04d213fd64d64fbae88520613e416efac4dcf451f264867f34ed8c4090e70dee093e91b8d8af17887f34d92ff2250f5088d4b70ff4250ff5edcf0c012a33ad2a97eb5ff844925fefe3cfebc50e43fc05411a81aeef30920ce2d3c8f52e17ee59dff29355cf0ef0d459407f00db135a650195d45531b67cc93957dcbc4c34a74677e42cdde462783a7611ee7c82028924d39ddc8c753f66fc691bc3b3aaba37567e6e6aa99bd438e446a9aab4d8e0544f479b1b0e3c545577027fdadcc41046e6d4dcfca13beebbe43b23698c2fa4728d0e1d4cdcc4cdcc60677860cf13abaa5bcb136ee7d4d12fe8cec147f1b7d6302ecb003c417b28a88f8ef2f7717ca03840501c217086e8150e11bd6a287f5f147380855011a214051632a33bace0ee9b06b85bba017e59815fdf3ad8016ea377e2ef11a88d2da7be6d1650c82af2426c8e70549e35a790c223fd9993cb4d6855187487175475b35595482f8d993e0adf0cf2d5a993eba3f205cf7d6473b3d162cb2ff9be19338560473821df3765661367058d362647e4fb2691b3646a948a236af9be4d1f853a395a658c7c5d08f25537856158aadec5a65653d3398052463b711446d142c3addb132d9b9b364d2613374d590bb9bb39649ab01f33c82647775cd5d35186a38f0979eae47472e69f32d9c6fc93cc36e69f5fb6b1f93ec2e6909b446e9666131b1cf5d1364d268cfa789940984298439844dc24511f5dd8472aa8f0386e96aa54817b4605767d53c19d9517e4c831fe844e94397414a640c2016ea36fa51be0d7ef4007567c4b81fbc9b70d703bf99e827bb654a58aef1a601715df34c01d95ef240c7ed3b0ebfb09dc798aaf3f205d5e5c9147df476118864fc73e3a0ac3f067c0b65515f531030c822f87dfb265b969c185210619659c311340e740c7116e1c7c885be90652d860ca3714b86bf01d056e1a247dfd417e7db96710866118ceccf4d19175a26c31f92afc232040a040cddb48f81f480e081456e4eb619c7898f1a79d783de5f1ae43fa0e1ff16a22cce90657593ab98ff2b878054933f82ec07c75f6d1777fbf91fe3ce2d5c40ebb00d3c9b9798fdebb3efa332c8fbe91badfd2d56bd54e7cff89aedac9773f00c47ab2319206e62b9beff8036963ff7aa73914676666709c56643b791ce3cf93c731fef413271fe2b39dccf48febc5761f7227caf13ee20cb9d975476a0ea7899b17870887c85a9cd90bce909b38b2aee906d759047167f78220710c41d2bce87d3646e6482273e0c846209e6fb6dce4a020675a59746c6e9d103545b3d9ebf5fa7ef2a2ead432c0aeef1860b06836ab3f78bd9ec745fbe4c93b71b25a0249f317b9c1ede42aebfb7aa7c9cdbb03e9067793e381953b3937c3d207e66611ec13a354847ee4ae0fdf17e47983bbc1e5245506bcf0f97a9e2aded30b77111d5f34309a205f81344a7c4573cbe041fc653187078f01ac7012596061fce9a3d7ebf57af5ebf5ea17019e3ca53c5ef4213e8f146dc048177d3b791175b23192bcdfbaf19d19a4cbc9fb81bc40e28b57736a091d91c3ea812dd32a3c98651632adc283a4ec8280d36802f284a1d52a6b8648ade558abaa4b4722f52d4c5255dd8aed873802f56db943cfbeeb8e7af4e17618468a9b2b0f20c95dc24ce9aa0b2e7c40c0255d18ba40d005865df881018207187f8efe00e34f1ff5930f4f4edac977d1bff0297e439008f89ca59a4ae5d46a7d22f6eb0ef52d907da04f08f2bcc1e1e81e07f838be1859df7ece528e959c5ace155fd5f05648202b24be01c22ac0da089f48721b197d4190617db067ff2e24b98f54a6dcb3527546e780e22834325181af3aa37568065f0598111e85dcbc23132149a8f167847521e8d2b1b9b9caf3034b9d1ecb2e2abbe879ea0b3f29c2fde4e9e8a49ff493231a1879a29746b7b6f41dca9f0b0253caf783c48228a19225df0fc2c459281ba5828a50bedfba8550c8f76f9ac8310651ec538df1a72b63801b063546203872f82edc521ec40d83175b8a18621c19fc10879996e54c58f278cca9a560d7370c30f82106b348cb2e1c93c53e55c92e9c4216bda6ee59540b8b2a562421bbf08d2cfaa96110e6d066e490eeb8efe1481b9c07fe69738b426ea3faf667a86fdf3e0f45befe0cf679007afb94c76db42400091b9ccdad9b42522a968822dbd095002674c77d8b5b4c5546dee49420c1b265731308b76ed707b2c3b731127f5fb498840cede4605df430e3cfebfbc9ebbbe85d8a66af9dd38a74fd0ef83be30fe872ed8c403ad30cb9d9d11021dd38852303c09e1fb608214a9505f67c33a770fc492185146e6edeb0eb3af043b0468b9bb726cb08a4738d0d4ca13bd97cbf850511a88ff059c85555126c6e3ab9f087ee398d33d8073a82fcb22075722fa4322b17853c7378c078f8407d8414c78bf8e4d1aadbdc62dce616e336b718b7b9d9dc5c753fe6a97f1f6d7c8a02e999a05656ddc9ddd8c9dda095b573e33d1879d6d8729f417eb79ddcce0ece1174871135b61a5bd5315493e3648b606ad9a88f2f696708356a5e8c9401ecf991abaa9b23078eacaa6eb6e088256d479535378e10dd61d32153750c49e0af043e2ccf4f02df952729816f1d43344a55557393c381d59ce8f87a3db8046c1047c8575d548469bec1e1c06e70375b5c384138315fb9fe668b9b374d37391c184e104eec0677836b27ff9a7d39fef4ec03e0e4c9cce64403abac96adc62aab75ab2ad13cd1b18bbae8c125e18760832011ad9caf0215531d1e34a7eb5baf4ae03c2b9123f310223c5cb688b4e6a4369eaf0bf2bcfa74b6eb3c6f0276250f8f7ae6c85ea655a28892c54cabd0a0c85ad16d41a7e082890f84aef820092a4460816488308620450f6a2bb8011028a892eafcbabbbbbbbb7b570324a2d8a2480552d8a009576282ecb75ee7e1ee3d842b4bb27bdd7577774781fb09b28c1859c99e32a5a2083031444f0a499f7a240f1b0c0623c2480731b603290e8448caee38777777b7d5dd4b777777afeeeeee5e6fadb5d6b7eeeeeeeed5edb5464ea4f0e1c00441b9beb5a71378000c1a64b141c9010fcce8a93e44ae382cb956a14151aea5b59dd109de7a3528b96c36b894042951a2848992264a88942075b706af030300f6764caea2b6ef46f2888193f91abceeca0d7b6f0d3597cd06971057882bc415e20a417315cde79b348c4042831f3c312387051532724234c955084aae35dca229f27d7beb5f9b6fdfdb127215957d43e44c86e62a562622c955d4e3210e5144100e8a58528da835b64469c9d214af0ea1a1468406a64c7190240b53ad54342197ab134a45d31551b4e08c2368711284501556a828a6d61e3c5ae8418452ad4549e45aabf795a7b6dcac2d25336499e632f515ea878f2442aeddb5d7deefe25097a875024b828a104294259860414ff524b956a11f72bdd60eb98f83086eed706febadd5885cdfd65cabe72161f383284330396952fb01885c856e90ab1013727de150591f0e95895aab07e55a97dc72add58710a9256e852888a2d7100aa4afdcddcb76fffa383289bfba57f76aabbb7b75af34d39b4414a9affc4f4a2bb54964bfdb761b73daeedf3a20eb457d6e52a75f29ad94d64e3976baa3d6eab57af5a63ba8dfdbed1f1d6fb42a1cc9922686f8a10c2024e16089ffe0852bd9c2850f48c8200643c094701314a1bb4a6a57d0c8278feced400613040541064c50ca220a1ffa69d72d81a28a1761e589521528acc89ee77945781ebde2091435d32a5050c93632ad42a355c129f1805414a1e05ecfee4beeee5b94b85f112e2a4fc8c19228bc608b2087d996783c50e982de19a96e08e84364efb00fd86d0902797820154463789de49dc08cec2fd3953c2d1f2570c84988688c2563c020c909980ea26084ec2f0346769ed657030fe849b8af70b4c5043b805121832d7afc8cec4a4e60ca4ea365f7e7f1d2b6ba3e350cb1aef3e3f169097127d2924f5aa3b87109abf3fba343a4bfb56fed09487fefee691e4f88628ad21fc120a957a23aa526d5a54aa5ce2a51b5f6deaef36ed779def781def78160982514c13014c55393d3f8a1a8783a8d230a951a83723f0a864a35a6a125f72df7bb142b4b4c57925c4a933371211ff2260e6bca51c1c274cbb24445a99534d150d3905aa895740cfbcdabdd72af88ed5eabb5b7bd566befedeced3acffb40ef03c130144fa1783a8d230a951a51a91449d2a0e1e2f252a3060c8c8d188acf1cb95f78bcd438519811486711e6447350ba03e64379f655ca3acbbaaa1fe55d69bd28df711369cd0704b2716e561a40888094c3b9f9de0cc8765c6df54685a47f569bbf85752f21d29a33e6a32f3abed906d1c96084c2dda9a5d1fdc7c02c1186c81453657da9a5ca8a817d368bc2a1b6a072626a69c957f7e6d40f9a85c25120f2120a47041817b93eed54ec8b5c5fb437f24cd5dafde77641de2eb554c517b22c327576a559169956e14313b9f1cc7d307759b437f0f4734b18399b6d21cf1898f731b0ca4a255555fd90c8f05332374f4190349fa9a4dc39d76b22cf14514aa644aeef7d9d33c6d0bdf8628ae62b314573b375683ebffbf6c8298b0f96a9998853b41a293e929bf5c5ef82656ae6664dd14e5490676a66bd205356c69f23292ba92bb9b675544ae6666d32c6d07d58a686dccc2922171efcdbfd878ddcef5eb4e30bde8be21117f2f7dd1825610c931859aeffc534c9352676464a094f8a9b3595aa95270a9797baeec6c06260314131315f598fd6d61ba11061b9864d1566bb089bc4a05c3fccb98925d7b7ef4b6ed6d4522a2935c5cdfa16a7949420c3ba25b514e672fd54fe4e407a4b218eeef0665555bd598ccb116a38e6f77ddf0bc8fe1e2db4a0259f643e3f2391d69c2eb6ec36462691350a79a6c4a114ec963ad8ec2b8fbe47233d2d74f07ca660add3d945a3ec5e0a865331203743419ea29028e42bfbfe22131cd9da272b6bfcb13360b943f778e5ccf7b4c77b243d5f0a260e5155270e45518150763115e4a6a76229d813e4596f371919175ba601b8f6ee80523a8e630060f91b495fdd1fbfc638febdf7de7befbdb4ad11a250f6af472953c425ddde8f44dd1dd12c8778ec5e962f0d11cd9d67ef87d29739d97a44919e2ee075385b9e70630c36c2aa6a8c7978949234c5cdf0ef8f48cea23d3324374f4cbe6a09fc49e69d09fcf9659a9da7ce1a951a8f63ad8e4aed75dd38fad48514afeb51c98c18eca9010d1879ef45b2eb6e77ffa2bb4f2bd276acbbeb7b6fd739fe656ac8d4c8417a27cfebeeeeaefbfbbed3676135a6f9393e874c777777d75d87e2e9749bc8aeeb71fc39e28d3f5d18beed82ec9ea7866128f35d239592a991234592240d1a34da65fce9baaeebbab0ebbab07b30ecaef1e93d4f35824fcfabe52e8d787fe4c87bdfd87b232f8e35261a5855dd4b031b4dd0941a19e520da0017853ac22093bba411a23b6ce012d115bac2b00302e4f38b5e6d6e3323239fa299cf8fa2f77cd2298a8abe67a2ffc879d19d5aad96cd0dec5ce1133bb99d265ff513fe3e0fcc579dfbfb3c311e25be6a31fe3e8f90af7a8cbfcfd364c8574d46c953060f0f14789a789aa050c6b713dc64844f84df47d8f5fd0487654b8bebd57de772638cf1ddf7139ef0e0b718623c58b6b0cc7443689af802feb4b975b53bb99d5a1775effafb1fba5cddbbe7f355862716ebbbe83a19182003035e869d1556781a269dcdad766f33274eced7cce7c7eb3dbfbe6774698b6e053ca52c1d05fca893ab5df969214f9b9b4ecee6467d509b9b8ecd4d47c7e6a6a322b2b9d9e07ae8f4e8c162d9dc6c6e37b4991327b3978941268697791f8b00a1b84623c81f395f754bf8fb3e305f35eeeffbc47c94f8aac1f8fb3e42be6a26fc7d1f99affa892643beea30caf0effb10f9aa9b50fa20f9d07cd54e287da4f8aab7943e537cd5484ee0def27d84db09df4f7037e143dc617c23b99ec71b093714650be7a6ebfbe80976956d54b66ee0370ec704263cf8bd84257c177d838167c06f30be8bca169619b0a194ad2c1298397935e0ab4c89d1f6ee26e200220e78226fb3e5c726e7e69dc1464b18dae03a7ac3f7d7681bbe9f7479c003bed391931b8b2045162a8b855c65b1901322ebdb5109a91292d48517b7578296bf2f84467df4ec8b3fa91518e4fb42a2509dfe82068d247c17b86fdf332db70fbf95f0edc5edc598f1a7957053c2ed793ce6d697aa421c55853597c319b6d9f5ed451765b551b3938083ea8d12204cc20cd7dc5de06aa33bc26f2d4a282935eda967d8732b0163c9aeef2fb2c82e2cb26b863bb717b7ee021fd5b2da921032d11d61e752bd0bfcd0c79f5004d9f58d7bf62e97ebf5fa30ecf0418c13d439383037c37f3d1d178093a473fa5f2f4c731be1ce1d4eacebbaaf6945b5d14f1721e13bdc595e6c24e0fece82c7266e169d40b08e3f2fd5cb4f6528e911d423e6e6ed3a56ae85585d42f6b7f0dd10110b4490e69581201090ab5d8fa3be4b0748874e01e472b95e2f172be772b962c61f172bc76a4ab232142969553d50596d55057e3debad00354f9db4d12bbc65579e64ae216572cdbbca53a6e67b8a1bdc88021ecfa955561014db165afc4a072e8ef0f77396681be1cf9c1de4fb3956509d3642797eaba795b52ac29f3936dc5a7ce32ea380205b8bef6f2eb478f1c6f8d35c9405205b0b2e5a8b9ac54df06f6851562d6e8297d29af3d602572dd4ec2d6c65bd5133a8e22801c0ffa107584f17e1c5da365c6f7d040c822f371765cd424df045db5ce09a85ee00bf8d007e3502cd015fbc6ddb021fc5be9efaad05aeb7aa02bf8b80c1077f5442822e57152be8327abd304f2dc19f95365adc2c6db6b09abc47ec065cc3545534d870edd76a73b337b81b1c08161591affa456c68a09fe186c7c0cf00541fe83150cb1922367c91b7c186b7a108d00d279b07936964a7905e1a408840a5efd01d02bd4c56db01494dcb75e32441a42e3237bd89cb90cc53126bbe3a514cd9a3e2acee39bd2bd95f94f9ea749165f703347116ed711bce3862d34dd03aab7bfab6a3cef3bebbbdee12c7551f0fd4d72b06a04a64f7dddf8702b26d8d678e654d22c1ec9542de52657534934570efbdf127d52376a58bacaafc654d1df5a9d27778e5bb399635f5844f1742cf537a9387bbf762d3d1f3bab2876aabb65c533f833d34127b412bea7fa62fd6f66ffbf5766ead771b217e38aafb5318c415596b3c4957a49bb4d2b1bed0dde180e207520fecfebcff5defdecefbefdeeb791ff8951ea69976f7262d7da4ccc3cc1893f9e4a764be0cf92dd5da0884afca6c3d3eeb7c86bbb8249bd4b0da30ba5447209027d93ddd63bfa1192d496969369bcd66b3190e3c7226ee6f32b61e3d48992aebe12fba67bbe1721556635568369bcd66b3190e3d64be478f1eb6598fdad19294966a4c32994c2693c966b3d96c369be140711447711447713e9bd98bcb39cc634232994c2693c966b3d96c369be1643dbb494a4b35265bdf6432994c2693b5ad6d49b20ef6c5482119d90f99b3da2393c9643299ac6132efab2cef8979cd6b74c99ff6d0caaa31a11a8bc562e30fc89374b3dfc70c3a117cefd2f01e7cdbc4579e9d05c57c65a3b2dc4ab153fcad9210c440b0b8ad4ebb549bfc3b25d28f868c9b6fc47bf04fcfcb1a62e73f03e60041d3ba8dee69c1df057f12f4baeadfe5a03b426c6316e6a69ff6ebe77df795d655fe35c8ae763758e2f12532fd1cd407cdb576d77e8b79da4d6f7df7de75ddd7aef4aeeb6cbdd5ba00fc7ef868cd897219ffb332656a561bfe95a92cd09b794570bf21a63d21ee16de62409ee1adef89e4711689cbe12baae4c450be4f69678f7cbf860c3d2995c6c9f7fbf33aeff647d1ac5f18b556883344465a658a2660e323e9a135270e5ccee225c9cd7e99e266cffc782fba1f852f3e1664f7bc2c856510f9e48b22f59f2377b49789bc7ec4c7201409d97b71073a460a9000eb39bd878dd8a7d9472038b2854121c91d868ccc7ce70f1fa14eef31552c157cc767b57ddf5f11bc6ed9dffb6f012f8e3bbb3c8cfb8bdbfa9546eccfbc0d2f2d926c03c3d079e6bd93fc23d59667dececcbc7f0d7f1b3330fe36fc6bc8b48df7540c35de9f5a1a7fcb33e66d4996326e762d8d5cefe5bd1750ff3bab2d836590fa42ba28e0962820682e7e7951b43d2ec0cb99f7dee299fbcddc328808b27dd07e2dbfe7a91f005c6cf9344fc705b8fc2d8db87c2d8dc0fcfd23d5665d4a5bc23cf9778461e6efdb31084c4953e5abe61a4f6d4cf9aad9c65b1ba20dbffe827f8e478d411ce3506d3987ade16677d56df85baf7edd4977d3ad5522bdfb97975a997c05f3f72b96b2c6c7b878d8c6d7c0f7ba601410decb5fec5916a466dc3906a380b84f03572c6ede05c094b77bd22b6b69a47bb02bc1e7a92f30ccd4ee7e5f791ea9b697af0ff39e57be3cccd79907c107f252bafc874f4f297fef3d0e5412d2c6e34001f19264e33f8c4a42565bb6517e8f61fee5b4f129bc8be7952fb534721f9c79f03e88e41f3cc1f700927c5fdec3f5bfef5f70905ad2fb3672f7fdbf0d7cf610c42bbff248b565f0cf2364d9753ff38f4f112465f253c0a7089432f900c0e70e43997c3247575b4f0cf7a0dec720307986f690355cd54f0e818c5285e8332f3f4f08e49285bdd4b285b53f2bc5f40d79f9a2e426d3f9f2628509874762e8b61910da78d16d585855d1d0e27071117160d45bd2b1984c2926d2fe67ed8be2773ae1b04b0d6d91bd0fc3728648f8a847858fa4a7860ce9668bb9ca3a2dbd58e9947792508c2c662886c8cdfeb9ff8269be2f6f3fa10f565937bebfd3077bd88df225a95ea13e6aa47d1b93fb6d380e6286501f045209954e41930c947a508fa4c716419e2f491df5e1dfff4225465659329f5a4a31c9a0b21785b430efe6d94efe82e466bfd05e6640204f30cf66cbd299419e62cec3777f1e9575fa71f0438cfa8a6bf65e06daf30d55555bd189a03e2c7710c5c029f5a05e7419c01e0bbb9d62baff92f403f2fc86eaadaafa4fb8e2aa2ac734447a5790e7e7dd97a533664889afc0efff842a4bfc5622e4d548cfe707f3ee45351114ea3bc59cc4148d18991799effb3ea1aafabc0f046dd89079decbe7bd80a7b7f11293a2e1551cd9f23d7d2f34bf50c9fdb244643c7df8a1b822bd2c6ef64b92af62be5d5cbe20b1e9f4f74acfe6a677735b1af1f7b288392fcffbf6aded236cf9be11fbfec1dcb4309686fd86ec3764bd9bcdcbe2d9b27ba3cdcbe2dd4eb02ff60252cc7d395f9d60be3a5f66b9c94fbdd088895516eafb245f929450380656554aa0855d1a76c6fb6f8af53cfbdfd247f40d7d335fd950a21f16675126087d484c72ff47ab2cefe9f7ae3dc14e41be7225727ff590204f32774f28ae488fc131426eb64bf9925455fdd148e1dc6c23b64cd9525afccf9724fb2f577ce5f74e217a51f2950da697db8b1667059d6c64e4fe972dcea2600cbd50f115ad629625f7bf2cd56bbd7a12b97f4c6da13bfa3ffc117d333753596ef66de4d0d946969b9bfd588e4226376ff93225654b4a69f1fef4fcf294ea9c3aa7ffe553385f3912b93fb585fae86c53365f79f8921496a47ba7dcf6efbdfe3cfebef2effffebcb71de6e62d5d48fa92f4924455fd3224aee1667bef91357c3c3fdbd2c68040da1a397c55e3fbbfa1caea2648f025c93b9f6a30a5b29c293172bf0b1e4ae1d3e6f365e63d20ee1e457b460c0b7b5e942aedc1d6c26c908d5918e9d972fffbea4c31917d5a265f9ddf0172bf85f9ca06058525947b9b7c65e4bef7fd202ec55cd7796cd17c4b2b368939a7d6514d7778ce57a737f9aac5fc11b9d9fe923494fb3f98af5e922a8b7c494aca8d0397690090743d5424600f17097821d084d96da665a665966596850a273d60f2e237bc5a4bc9e7c89301bf275c6c0cf87549b0e86c2ddf5b877834d4880cf98e603d985a4bc9e776d6ab4117a71a3570c28b0f302e49a068109d485a98a20188ba62639cf205cc694a145cc42252e1100c1883f1cb41cabb02ec6c40041cd7065b6858206ed415c87835223218bd76dd95e2f3eed64a848609d068a975d79b47ad078f16bcbac4f37ae084157e04e5c113316c8d7c7e3532ad42c3e25a71ef469164ab8f47040aae7f5e14b5d4751e65d7791e93ae6ba222053dc059219302454fc724771d13b9f31cfc8ed079b612e9baeef360d65e6bcb4f0b92fcaf31716812d6d6400b1734016105592cf5d82368b6665a8506b41eba6d0543dcc1751fe2799e57dd93628bb0e3d13520a4d841ae3e4a437878409f215278f10da9d57cdcec245ee73384c8101a6a3e2d2155a4a8652fd32a5284914f1e9f1386f80e6e7435358405439505b3ca025a654192bbbb7b75afb319d440b5d0a3c856742bc215e5ee8d914a3133ac9022092f7c30820576361473c796924f8b96731585c57214216babb5d6da6aebf5662780e94e439468a811a1c105482e90e282295e1dc2d65aadb5d65a5bed3d3a631497a82dc1b4848d891741c3222815e509db79dd5118e3b5a1920d2ea32946548cacc86ab8560806830971448418d08603274db9beb54bd95a5b7540daafd6420f26b0309185092d4c6c9161a2e94d24a81959a820c9091090ae4411aaa2d65aadb5d6569be4e23d91e5092d4f6c79a2098aa05bf4d215c18a62454245b27bedbdf75e7badb5d6d65a6badd5d6ee22417ab7a5e4d342d282b405a9094a10142549402ceebdf726b185f65a6badadb5d65aabad3c3a7b8482cfbb56a9851e4ddc9ac035912382b98a666badb5436aadd5da6aeff58e60a3ad2d259f960ab2a8408b0ab6a8a0c9ab3666adfdc18b6c6badd65a6badadf676d768092e9ef5214a34d488d0d08221db82996d01cdb620c9b640e95e1b84cc0ee98cbeb05e13a5264b4d6a37885a951ce5ea755d39c45e6badb528a8b5daea5e3542ae6f2d585237bfb20637a9b88a5ab1198a2b324c10b084041751a8485206173dd597e45aa3bc20d7eb09304a018d53ae95861a111a94883981129780c9a2088728d1502342831146902128a3f231b15d317a3cb596114b5aa086d090044ccbe5693149928521338406246642b8f0b4924862e273a56c446ec8124d886e6badd55a990459264ac81aa597a844ccd5564d8e3a54242000000000d315003020140c878582d178248749a9fa14000b7fb05474521ac8c2280c619062c8004208210400088c00888c9046008a422355b1ed8ac5c436d0ade9c4081a17c51e1ca13e6a1bda7233ad1dc50e891f9e2a8f3e5f8e8a0b96d84e59780679ffe0abd9c1aa7073b2a51da72e3807f7ca60561bd5e96aeb8d29da2c890a49773a310a9931f3cb4010833e41952d245cc21d53b2853a9a97d4573ce53ed76b6c1b9b83ceed9189783ade1e230aded5a9850ab955d5131e0c4c26f2471d0b5220efb9f438e56e4d9665989e6557374d0f66e4f5b32c9b8a50acb3766c52c4647f5139d1a49f1c647d6aa754cade7ea7fb619f3828f120dc4fb4ffff33eb07b1e42aa5ece7677440f6120ef3a296419a6598c59dbbb564fcd92e85a8c96b696a5ece5af60304cfef468c1002986a234a3b0132f40e3146cea089410034d82f8bfded654666ae37f30f7b78dab9fd2bd4c038ac033e73c92da1618e46a25df4405ea3a4158471408feb1ff248e6ac4dff02c763c501a207b6d1fa63fedcba9951f264733db6e8feb594e6e3b307918dd0d2c00e5e8a9b0ffe1a309551510517783be9a1f8fcd8835b70f4138e04519a3b9ba6a8678b8db2b17d695b88a8a8eea0f4a547d4a73f45d24f51f5d114d857fc7623ff07529a5ec079d08b2fbe9f6790b6e750dd4fd176e698b0d259a3660e1715a43fea78991ab2106492ed9ad54f45d9b270c5edc5a1b50f3b7da21a6c0068386a111c8e0f2b38da6ce2fa065d669a0dc9a805d301daf8f81ee8bb3ca8a759d70ef9875c40f18827bc3258f62aa70c65fec7564d825a610f0bb194ed4745320a798da90ab7bf74dddc3ee92eb01979922d1a87ca4254fa4c1a900d9579d3bed8f6f435be16ff1c3aecc731379bac6bd3981118e0a2810638f87f70066052abf9c09d22da8a91f9a395a2b4a1f971a7d076271ea316caab6cf0402826b6628c60a12555bc5209cda5c8e5c06685950444f6a982f969245b314ae710ac4072555b311884615e4a2dfa1143e0f82069293803139e6b75bc9047a8d83a804a085712f3b47570cb4bb534ddeedff5f516c072dc813681c31370fe3b1f75abb22370604910d7266f4e4303cdd8f0ae312c58e6da9137e21b7478f9b488d7a469080e5dbeb6cfd107d5e6da0829ba946a41d280f969f1024d32110cd15e44cbb8b97505b979bd66fca6dd92b8eaf5eb712e2591eec1dabf3a5d07a397d0244a24b18a9cbbf68f10404fb72e4b89524914b0f842f541484f4c284d3e625e2e0ec86b65fcb109c7eab7c5378e9a4f8c6b93d36fbc1c725f32900299090e79ab5249e68c4824f23ba955e431fe1dd3ecef43061d785962eae35965c07fe1b0000c360c05660f904d10408ddf53bd2e02e11e03e35bcfea7be443f4fdb27b0f16eabe184510aab1806b62de8c1f0c8f98042d658979cd5d83eef80dee588391f9cc5f06d2df96983b52ba9b080907804b2370993959aedbff86f7503bed03a3571f966d3603db2d0012ac05f70d773b13715a1c216a4a54d0448a85850107d36588998285bb2128583f8820a4101051ba4cd0d42d1de18816e37d118b770124b839ede72f1b012f1eeb7bec29aa054981a2c6cb480be403f861f08b40ca5296cc6ad80da435415b86721b89d54dc6afac1d9e3a4bd01525fdade106c7b981c3d2595208c1621542f81206055173410340593a86431f4fd253c786f8b7e9b24ec6e6372823896f27c1dec73f048e2a83646a7ca33b4032de1c198df729d592a005f2f3e2c796d092ac98d0bc1bd4bbe905d9ac60c91ce6df86e4a76c7c6cf1ee9c24d001eab16669d09b4f920b344269cce14b8d78c5b2a448eae257ad9b794964863c8dc2e8d3fa3a885dc785d90da243a039e3aa36887c8c491e0797425d40b469f02c266c096b4c35d209f2ae0062633abe8677d9e493ddb04327725c51ecbab8980013af298e70ec00878e6eb72e91c6d0939f22e2595450150c769f2b33af23a8e39b83e61c193ef8005671cb14f41b20aa32dff259a4672b0040f3f29a8ec154d3cec16550353e04c8d7f8086bd8f8f85116f319fdc6c7ad07c7c789a458d43eebbc0f632dc17179de716004047e01dff027183c0840298e1ebc0a298a9d21a008f53871a2e31f98bbfadf2cd657ce83fc11d8b47437c551c78e77e83a601471baed3acb7c62097da1aae815d55505c2488b1585f7051fbf414ab6828caf98d87cc53b06d7a57149680f455d9a11188369ac223a8c1105f433688c51241b648c062b5f88e662018d7ce8d83adaa967595158413802945bf6af8c58ff755117d739405dcc6d06ea623a2160b1a72a46ded194776d52f983533db8949ff3f20ad5e635cc0c970089cbeefb9026e1efab72454c6d7ce46673ca5b1c1d801922cc689586b4f9779990495ae9b65226e4d8947940875efff1b1aec9824e7cce169d156c2dc82b6d3d5925712c5b9da9bf309d32d29a818c78145378c6c40fbbc5b8b0567712fb60f5a796982b2e7fe212e0138b8dbbd0f3a5fa54cd617d47f15bfc08ad6053b372823ab8ccf33aadf74fef3fb968d4ad9aa72b96a8d71423c8394b7204cb16558a50338002e83301731c22ce04bd4d1016c087353ac14058e0b00c092fb94962729b28e29ea077e56d6e19fbf68addef15070a9e2f093a939be288eda730058c5380c35bbf7a75835536be238890afc84d2db54227ce99ba2ea88e5b12396828d83d1421145e739cc51024329ef19c875fb5fe667be2aed067292990e03b66d2e2930c36bcf1a6e677911c57a1dfda4e6545af5c70ec471025898e9d870d52ac2d1515660e2c2a130601ef2fb6e887a6e9398737549b1f527512c1a8557450c72846d55d06b1e8306a6cc2b2d3e2f54bd8b999ed1cd9153b6560b03ad0afdb6ce3d0f84528d8d4929d147f742f0b9a76b1b4558a269a4b49639684496739217577dc2c45f2b66d35f5a88880be22544f488ad2f16e555da7d2f479f786af671526c62ae9d64970ff6c6e056a0f026d316ceb30315ea993ed93bf5d0be7aabd23ebd88b4f5f9fc0506f10e6860fff37a7211198ae9ecb2afce5e6cc43f363252bd14ee0c24f24e4113abd1b8bab02633798b8dc9f85008d5c9a78d0c8b005789bb32aa9cb2f3ec146a5bf5c7284ddb93d6e8729a9fc0105cabc89691eb93ee9cccaaeaaac3926962d30b9456caeadce34b230a205d28a63ba919df84d23ed3c52dbcfc287f951647b635677f14036d09bac86a27d0b6743e9cd910149c7d06835084907cd6cdd8a66557f0c3836dd6a209c79baf353620316c93d8aed890526b3e3ac03599161ae809b017db2f816caed5b88f71843567f2ef3892aa7dd253a4f5b8624d6fbb23fa4b1f32aafc54caa48622c257b573aca459b3449dbf0c1512f53587cfd821901123f805da5e0acd0d20666a557e9f4610ad456c8b810e2b4f2ca0f987015dcc6577f872bc5b32739daaa69541522fdc7a981bd647046691d0b483710f37c14713861de263fe01f846849dad91cc912c446fce6412bd09eb5a80cedf820315f826095e1aae5fc2cb8ff72bd7d21125833d98dc9dcf1d8337b7a6b4fd16290bc3d4e8d1b4a152496b9aadcde72d2c25fc7de2231c863c7c126f602a1cf56b446d6e1c6bef0d370a2577f02990304c2907fcfb491d708f9fc7c71cf421a21b11722687786473504ca18392a15207d15eb23e701d80f376df88e5dd2f2a76602935a21da0be0e528148284b45e6a77251c7901a76f438042669d43561e3bac5e987194333a6b7221e679e03115578f20637e4eede85ccc3d13b2ea5fee842aecb5c765eb1abe9248ee6a69d50db9bc6627d25998a3aca8b473041b05f782222f27740938a3536eb6c9093f8a6c14f63dd4a15892753127fc8cca540853f158b89c50a46338eee71beafde4b0b814e9afcd09880e0215bf5faa2b424d29c4d8ba3321cb525cd544ee8e869de5e039bfe4637ce8cae46c016701e82206dd408c08d9ec68f30f27aef7002a7c2e9fbbc3fb341a429676612882028de50e8b9e1bc1a6caf75e17e0bcd776eed889a3a753890fb99f138d1b196c98a8f3200b2e28ba154bbd7bf96dd554e395fc5d59f4422ba5ce58fd973041cf539b3ae34a1056fa8b72770d47c84cbeabf8a6acaaf357d761a23016122726567f667723f5960e14cccfd014ef8095c6d69b3a0953f19b1199d3725931b5f8df79e85e74463a72da47cf9b728366c928c303d1577284249ca2d1224e99d0883a54b14804d54b755683d0c4b8a1c8ec2d9bf3e03acb9384685295585587e9aceca3659973093399358bc1be1bd7e0789439239e4a59ce96be6125156365ce28e714ee99b2e20985514b8be6cb1792874203338691a2aad68b02e68f392e8d0e631db21a4a33f1aa9032e704d29cd8b0febcf9b795eb39e2e430c49265ced9824dfc8ebfd5870807b9ddb2d3a0a368b82e4fb4e97ee769de00180aad824fc341ce4b30216a1e6fb6623f685c5ed42ebdd5166d1b28bc0f81ccdb9e28623e9026f6f4b894fd6b14f117ffcf9fe4f0180c41a94ec025b1ca2e81afa7215ec3a45ca5e614945b2d74fc0d89bb28288e9953e9bb3d9de6864b14aa7b5c5091579e07960562689b799d26d3c1d3220aafd40c351c5667d414672f321aeb585d374088c177e83eaadfda788ae691d7f02b7d56c5802d93f9f67ee1d34b843f5b94e5de368ab772ef6fb7374c014697ea90cb178421cdbe70d7db75dc7ce8b559f49ac0db49d66ba8efbf7727c33d8020073374e01b02912b01c89713ed2f073cd5aa3758e6cf8f73c376efa8615a63a0475c19e70d05bfd9bbfdcce09a30d2e024381b1270f2c02fc9140dda36f2536b311ae9b219f2552f7a8a22db3903a9f56015936358e57e0321a65ae5a47f88bcb889f46a5bfabb5a1b00d614ed553907621a067b15f0b6ff01bf6d7d8cc3eaa6f169e1328e22275e248d37d6a504e5d1be6eb891e5fc7bbc7ad1823a13252df64dcbebcb4ca1a5150e5437a300f2ebd4266d827cc524d010c8ac791b5e380a88df077f729fcc9230ca3b31cbadbf01c372e6106a49623928c612f296ae00eb42f9aa92b0c71f8547229e6f130a0af737c7e712508e3547b84c50b3ca7fa3a348505fb7f0e68449091c1a3a06e3fcc5dbfe50facb05aeb2060f2d33498e40811bf09e331a686c78222f2e19439a8b5d80f0f74e402cc75a5cc060562e2fcf4f0e78d4a0bfec41b5cd926b1c5b82d3d92e64e21c1765e738afa70f8600096802c79ec42880487f46c523beae1fcd0692eb30e962e7c4fe317526233573c1739f294a67185d6686dfa5ba352352b1b919f484a8603b95c5b0ad7b3e14b52fade506b01d5049308db4b39b59c10d0b1885d090ee9657c23f5829bd1015d3309a5ebef0d31cb7a3cfcae1137242313f0553c04de6e3b02baf888935e47d7a9aa663387f1063b9619c7e74b9b61b50c312237ec613c38b94c79fda9a57bdf773efd9aaa9ca88714b2cceda7b3c415c16109acae7764316a812b20c9d771dd3fbf19de3153cce0ad23bd7ed5c9a527735811e5262d17ab678a8a8c6d9426b23eb042680ae20673627a804e8fbbc52fa910d601a97117b148d96356cf32a3c68c69ad4ce8d1bacb18d03c56b265f4a7bd8cc2dfe14a2631b72c560461b19612395938551c104757703b740b29c4a29207c51ecddfa6fcdc1be2df19bb537016929f487ce21b68035fcb256cdd5a0a1475258f902893169d36652b4890e7a857f3f1635b6e707d72d1a9248b3667e05c40dbc7fe527af04ac69b38302c51958081d7381f23507e9e3c1075276564f7c4df43d4f0e703ecc3cc7c1607565430b8ec52cee59d30cbf7eb4b2a5847d35142def32e90c0d0017cdfec11e1f09c1dbe53beb9041b55c01b49f0aae374c3c71dfd0de15cd69f61b5b82c9e4a3cd87648f56b8f6e08fa7b0b15d1d5600f055f2736a2ccca8da611c5e64484d9948c31bbb416c0828ff12c161f553ecf459b30ec30a9bac9c50da4a9b67e0915b0b85df447f334d1e3b31796a267d1ee5b550a18b56474e2e80492455f205b47f7d8a71cbfb83f9e3fa3c6f89815d7a160f7e1489ef968b0d4af6177e1a045eb65ceaa79ac1b9e462ee843d2bcaa1692c709408a265ebcc9cf51640d5f9def2c5f2d2d60d9404c0456c785d03ee86b60afb590fab2e8abce4b9d3d50a746936c12379daa3b92520f0dd31d095cc1270f05b9b2e58fdd7c2c5ead8b5523d7b7f8a4aa657bfe004e065bd6843785fe560114e86b65fc45df08fc653522fb4b10409e2aa171a84408103d40b45f8896132231aa0c19443ef477dd8aa22bf01bb8e49c78d6276b05c2fc8439195b96975bbc4482eefe71d399884e002b3ff25a4e3e8e296ed064d32d8e9e0e4a154cc691ae41dc79a36df2c7bee01f6c01bb12fc9657eed2e0da6b26fb6036ae6cbbd92e284e0ed4f336a37a27a8136767296cd4493843992c86b9323c28a1357d70056f5cbc537b06f7ad5123b16361911b4ba6134bb2760a27dd6b77986629e72aa7309032ee5a0745eb14c62e9c7b45b081533ac4a4a4bb3604f110009f850f637fa3781660f38288aee82bc9f31abd154d88d11c0979f4eeb543758174684963c5a337b045e099ff64043c6af202224082429bf87f65fbd700a2b4cc1986ddf38553cdb72a9e7bb801bb8051beb5d28b0cb618980985e65db2c0a228032298d92951d71edac258b2dc921685640559113768cfc291689ef0aee5879561d45b7851117efe02c1b19507f1d158ff6035c5834b7c17b9007095d19ba3a2bc9059858f857288adfedba17480f69e1145fe2d1c82519dcaa2969045a801e719ebe8cfa602ff917f27ebb3409c561d8a2c010046a7bf90d29a1b7bd2d59ce02cb95a95ae3bd781ac432426cd62c23b8a308fe5d3565d400fa3f926951fe577358b83ab54830e45efdfc563f584c99fd18c8042a22451e5929939d38ba50208afda328e72666bb8f09f57b325dc7b19379462a228d4e2963649101d4aee18ab9344c364bbafd46868b82c36a44c34e359415be47cd156996cf2baf38a814b0c06f9bd3e1951eadd1ef661ae77691f9d0cdf05230a3aa64f710bcd791cb7f0a23cb46f8e5b3bb4697ff923dddf209162ed744386d02b5cb2a067a0f53b69c3e037c46ec7ce04fac4cf6e34cf6d28b6b922e67b522ea8c166f5cf092bdb883d1a509b49532ce3b39087904a24bc6324110e67d466ba18e91f15c19a8e2fea0d25dcd93b427d29f3f8c45648d99f431d5b10b0173c95ad271ae8e12fc3690581daa39292dbe85d69c4f08ded8351a44d90f54f59b237895108315e518165a427674063b37fb3ca4b1441c0ef0ba39221e817334cac8a16d46f207a8596bdd5a43652d64650205f2da2685c9571a06690d2603f4bbc6e1b8269302f29dc600796d1381c9571a06d11a2604e86b0de1bc369302e28b86815ca349c0fc3b8d03c91a4c04e8f710051281042d4c173ac93cccd9130e6c72202660a91b68dbc874032020e6c36e1c06578e61337a68d402716d01d0a09f1a155bf3cdc3ecf23c8e7445509553f306eacf2c128bb46b850323eea790dffd0f95f648e9e19ff5f6c9befe701184f61f93f3d8bc9382bd43ff001192d1a2bcd165f3e349b1264d39e59cb2e4183e80487aaac81a776401f801659f2ee2165abd520acacf708854ef6c4d459631e4837350c67e1d4880094b3f0a7cd2eb6b5689e2c5298e1688827d7a794a8ea7ef9095e5d16d1a8f87d0f4cabcb82803ee29ce9d51e8d5979fd9630dff70b2d8fd1215aec3289e2632c975bd8fd1bc8b87c646396b7b4d8d93533e948b2e4146db40f20158175a83dafb0a444f644922216460a7b6829206e476676b3650b7fd15e046944a5da42a522f6404758f4734d4f57092fa753d82f1f18de9c435f5fdbad6ab363f022a8529e0e7c431176436e8734843103176fbf42d7336c2b923fc170273a2f308b61dcf98d5ad360011b9c5c7a69f902bd3c3d2f4840873d2f6e6b45c04027a67810968e357fa5851c6c2805590490b33834a6f9383a26ee61f05c5898c4a3215178dd36cfeb9e901a861059f5d61afcc9cd2015ca8a716ccd63c0850420a77fb68db17ad0d04324ca2e96760fe20ef08f924dac5239040183fda40462d9eb27c4ec543fe34597b8e8a9a7f62b14708e7271a6c7a251525e0d19fad2ed164223b92c31f1debb3fc2720fce04af5e84fc8b6defdd8b17a315b0f5d3ae90b21dd321ed2ed2be5201fe0a7629c166f810814d02d94fd055e1b291ff0fe7fa9a20586b0532a2594b094451ba6c3fb90680697395ce609d30c96310119b23a8e125948b03e00b182555dbfbab87e1de6b35d9920184867d5280e6ce91474cc2770b980bfc22b19aa12105be2b6dbef46b7a065638d91eca3539b187bf510d7301b94483a8c049e31a6a62ee0a59adc61d6cecfe434c4fff16ffdc7e56ed071b21b3dd9dfe4dc3dfd4d1631cb94e66ecf9bfb653c5f343b234fe95a8ae77200ad3b666e31ccbe0bca9c3901aa71548990f0e42d151e1b450a5c9a277c370923bf2967efa7e8e9357ca6d44e0f7a91b03a9a78f83ee7fbe3a257fd348e541dcb36f61515e3cc5251b1e000c3db5d8301a4bd9443d5e1db5a86046266aa16c89783099a279ab85fab8b02c3a46b311fddf0a4d87ac2583e177703d91c67bc6d770463ca949cd8da78c8e47a20df11f74e2ab0ec162c7be759153880feb80b4962d218efe4e5100d87ada712d6dc08407a34b392a4ec3ab0260f54c872daa071023a923f45febe8666a196a9d984b34d13de47659258ed5d64de265690c0bf7421804a86b0411ec1713040fca53c4c04a53371b0ecdaf195305ebbcd41c14dbd523d92240ee37d320ed980dc27a0ec4dc94b864f9116869502531e323c482a6d4c3b0161f0dc4f57c9b905e5f06a3d14dda90057488c0eee648b9e144b60b781c42fe66f4ddc3a148fcde6a260665df75e4992a3e57f677939574a63b0851cb3bf810ea59aa4f2328fb328a1c14a410c1e37f39569a8e1193ef0fc239a76a35bc78cfc3bcf6f128f9831f41bd8c69c75a0633d7718dca38ee394219aeafcd5488436a9ed76da32e51f15b8437a50eb4bc23f25c436922e0d7c76a2104427561492161984fc39c7c447c85aab228415494682acd4bd8814296796839df6fd58af6b0e1134f9e163e8de516b2d20f31f5fff64a4d4660fa246bad87d6918ee027173602143a7d40217ab54360f857c4abdad31f7e9bdd4052f721b8d6ed3f881127f446687c2457b431d0a466a9c364ef54a4703dbfe45b721877ccd90382a43d6005d4b9dc80fb44936581166178b0768c72a11ff31f0c3cfb524ab5d3fb843016f45792aac97f875471ddd184148ddc5467641c38b54be2654412cfcd10d9807197eeb527d26465398e8080c0eb2fd7566289df4f191eb23b326971eddcb2ce522d7f2730bb547aa5b884db94e744e4bc7698ecaba15f29aa09034e027e8c90454499430a1241b296a0d15e27428bcf0cb526fc5b60f5bcd44377a65d72b748c950eadc76bc39bb3e35cad9a8bac86eb86cdc6a6021028e1dcf9d7a30c6a92750a615a0681aebe8802e0a6795b0c625510eef4d551c635819d1220aac3a85bf92240ad9132c5a706a839713981c5a77af30b04231e5c23b4807671d2dee16ce46f805d24c4ebc1ae04daa70da73c9ee5ea2fba7c9cda763445502974522cb26a1a7df6635865f962b1e36b7e5a681b0da444a7d4e9648fc8fe9836cb1d50939cac4936bfa053722350c35fd49ff6fcfa41709d6113dd4fd03fc317fa335adce7f4374179750149119b526288aba64faf7f6a26a4cd207c3496c5956612daef34e17cb062a66dc6e66f1e3d1574a1c47ab1cb3d335487e4535c848f16cc8b7f60ab49eec18dae790f2a61a920a923ddb754da0b65bceafd8a55a2c19f49c9c2483ba6078e7edcb4f7705aa5870426de9f20c782005e2add0d72e634f18090a0b7f8b3bd3557d65aa9c67cb18f7d0aa432a2f7c5cdede222bf2b06fa697883891575421e925d0219213d7ed4242dd0f0cffb0449829bcbf3a3e10d9ba2b7146d46f214953a53ee49c87612b90bdcb43a22db64b29c86e145c1ac30dcd4fb69574bc3c12127e3347a58363080370b2d24467456e0ac86b58cf7eaedcc65165c9202282e988c4270113b03eb97042c1893913ecc6437539f4636d5a0491dbf01679cb20ecc041d129f100e06bbcca00b28b65ab32cf3e0c18cd303a9176b293b3ab8ce6dd1aef2f52290ec1e9129d623da330cac3c1fd0f9bec7b3f6ea5864e8d33717d600f37e5c8f0bd9fdf1d59eef0ee58dd602e6ea153fc5431dbe155356f2546b250c8b0f3bc0a7a8b4d54a0fdf2a28d6c075d171658ca23d4fc4a80f8b1c530cbeb2ad80862ed8f940f15c0cab63ef348c32e5597d6b72be30477449b32c0e21719f722ed8914c7cdce506ca9ed6c4b40e29892af239d2ccd577d11d537aa0b262dd5b5000d823d800c5321ddc51b7642c9c03566550771957a7dc540f388173143b300104bd0f82637056d9503a9a5fd3a087a422cc6acb8cebe5fdfd81ff5b47d5dd9755817b22a637b01d8593ba69a2b65505d196a4cc7c7f38694932cd4684339e47ab40b14601e7d2f248384209088ef3adf7a66599896e4b6d78556b724ecc99cd64bc04cbce219a6aa5a2c37a0b16aa001f6e30db84ce859e41242eacf1f05bf3590fdc51c3e5a42faf4e5251e73f4c74413e0aa8313a7e24b152f4d237908e362f13a0ccb3802584495317af68fbba5320515e0e17645d024bf406001019ad5d0ac1033e744619f2659d03c072a90f379439f3039dc0d8fdc0021eed0756d407ab4e87edd8c68d33d78ffc02bd9e2e59c8999e7d96a9087ade2297a669d4bcb04024ece4360f21dfd233d9e4d031586e627bd03ea53e692353371b43211c8b407efcb24dedca48dc4ed8a7407fd21ec1bd53156e8ddd260a83a887ecfcc538eb6ee04385f00e6a0913554133488b131e03a447b797547e17b03c59edbc103e6c8c87b738acbe6827bb2302f855aab72b7d2d51a30ed2e4ae9ceed0e758eef385b10beff76b9a57df5e9464d907e9fe8ba7d38481051d8a1ddcf5233c34133033e6d0576edf50b32e97a9d6e3efb3445bf01024e01c22a49c0dd3fa1590fc345df143b80b0240cd8acf1024e926273715ac867d4e79ac3683bb82d656834257907931efa5f3104185a9e3804d7cc40fa23284e485a6aab387588672e513513b3dc584c7b4b8d1cfb79715f6503a06fca8f03ae0190e7b8412e13da3fd5a88f3e75cef3536099437e9bc5f6a3f4210740037f3e97b225d3b943fac828ed0362134c1231c947843bd587556aa77e2250391e3d32af7a698506fe5afb03e7ca22fe7a98d6ba8dc041e1353703be147f706d2bcf2222218540ec642093f86ff24c84e39ddd165c8de3d8607198721dd6750112077a868d6b247e31b8f31dbf38a3a5bf77728568fad1d21455eaf3bea84181c287fa9b371eed0fda550ed55a6f9ab970a3d651a2cc20a6baccf8d0c26d6d61eeb1d00980290d500f1180a09cc48bf8606310b254b764d0b951d4d8b0babdf463a19a2cb49efd474bb8cdc8321b7ca1a4c0e9a502237e0d485238a20cabc473228e4d142e3556a9b37ee182b878dc22ef5202125ad1c89031fddb6c16d5da80c57f6e2fd36a2bb40f1b77179e74010d2306226b8896932fd3f03e2446328ea21a25b5998143814fb483da6ef9f4731f03628e78d220dff46ab066748f4d55835d8dc843de2537f1766d4028eda71b2382c23f5683c01d231184d1128e2ed2deaf662cf16247f7c403c066a5822a1dbdfe8c00b1cd35e5c70102d353c8f9a5d598984763317e2c1f03ead325a1b7d1d83d00178bcd1503b7987ae385eb7e8f363b43ad9dd890c973ac010082be373ef97f7118931dce2f1e6819ef046bb0cdf4f865ce4e7030414aab50ee042026ff4aa96dd40d6ed0f70b655b621d6761b5336a05c114cd155c95712ecc5c7c707a2b6fe94dcb2c2c225d2d0d26c370b84ab6fbe92ec0d0937a3d82f96554eecfa69a120080ea11d6631d775be92220508d3127cc98bc7850113703ae9e95a090ec2ab1cc0bdeaf5bc08c9a832f64f9418634dcc768517c24cb767050bfdb00cfa9412253f2803b0f8da9bf0c5d0dd654a18cd32920891d13546c3f5dcc4c528c83cc7f75a04c48e4dacc56615d6d2ac4595a5914192f1085a50886260a58b10251cc2dbbb2f89c1370ede962951312ee42b98c444a266841c406ed582bf4491f7c46cb6eebb9dc091924ebc3281b18b881326f58a9728a5462b9330079e09af75c396d4b441747f8ad267e4af4d5faf3815f05a3d916b642ae3b4950de53fd83f8c3e9e8f9daaed8b2a88fa9c483ffe5a5cb81873c94acdc6ee414499ef3568a55cabc0f8992a71831894cbb08244abb29401550fd8698122a1e83a6a79c40a112c4a4bd9d1e9445dc271388c158bd6fbb4afd833c73d066319f79598ede08aa53b62de7ba8b54f611fdc49d9a7f71e866d86f02ccb8d1cdd8702dd000f8959729983ce664af98fec682fa491510541dbb8f4a0f6b688c2f2acce3977d2da0a9e9e4b8c6100225fe9bc2ec578156a444e64afb0b00d51211f358bbc95c69c30ab5db14ba750d22b37ebb72c17c3c11a0711175f04c140706b2a1284391a925f07fc38f874ff2ff0c89318d26a55aaf258d522ec1f63f32c197e48c78b01485ee4be4b5350cf671eed4c23a0cd23ebd285e1883f288e2e2361a75ffcb91db16d086917ba346dd564cbbf915706c3cc302e29a9f2ef88f7e738186791adab91c6962058b82cc0874d7e451a2e59956520ea4cd81605e7ea961c60f8c17ee902f4a44b60c22de492150cffa1d2215c7d3e5229357d07c9252a0aa81e77a06aceee3611093e3a870d2ddf99077d67b51811216bbae888edee536982809390920a0c08335762cff8b0122b3a675320c9af0cc3f7ee926662b03a013a6441b3df8481d251f49f061d572d825bb765c3e11a0c6073cc63d0a347549908a9c3585ed820ce912242d8ad46f797b0f6f95d27ee478087f60a4670ad9af6924774511b67471d2e6385c6fd612e4d8e05a13be537f1621b952725bda4da4de749d54437565f1d8428e37f94f1f2f1e362db03f42a4a9f9de54c14fe52544b0d299b1d0711cd99b6343f29603ec31f6d57844a9556e0c7a8d534b09c757d01738df8e3c9ab956911587dcf856874a4b3107ea10f063c11ff8d544f7642cf67ff91ac8c79058bec18950cc31c233cf8205835a4230f8313d477f27717370f872068b13f84387032bddab6b1c8d981334bf76aca0d6e50e90dac82e5a1d37df0e81abff5330c651c06719c627fddaa326a1cb40678e14e291aa1af7a9fe045619197baa4c772aa059b319742fd106c395ed606c49b0961c3a86d659b186299880778683c5ea1969fec0832ba49a97b0afe80633f37cf851dbcfee4ba8a7ef0abf611b86682179766ee1344ffc0c77647840279cb293275337a156eb63663cc706674a195d4d294f8bb6f32c6d56b5398a2ba271597523fd4368356ad2bb4789fa7773e4e0894756eb4136f3014e0d28810355daaf20ee38284d15caa94b0a239b9ad365448dacc1577e972481a52810096415201b960bf4872bb68dc11813d471c704b87dfe1b570b1e5eb4f31dc514f925d11be2c4d3b4c243be822d8f380904591ac004675ad066f1ae3451b944cc651aeae7bc724ec427b0b1e5a73c2cfb476695389a1b464193c82d7b82ff20ea3daab12b53ebf3bcb084d8d142c7af375382c35d10fa28b68e5ca895309434fd8901e04eee2041cd26084ca31f0f8278490e1c7b2b8f76cb43ac5e59dc301bb2791672eac22a5b77df4f50452c3724c53087dd72e9f3e7a573a4e1f95581a406bc093948979657ac074cfc86c7c3a97143b6c2294c74a1cf1d0e8c2260d58ae4f14de8d77699dda8f84489a8452f73895ead6146c4ba395809a64714d1688ee116d13966416d708cbbf3f81a0716b8d44b8e497c020551205cbebc18b797dd04ab08b7eb7bc571522828d7ba55600f6371f49189971b4371ff53f62ec970e1e720bbbb56ff73c4986619487059a180d4a2040c7885b25d01b31b11f418dbad92b21625dcf5325b451956ba047d7cede4c31276786c96ff187c4b254b12406cf14d30914dae6ea020d8937d0d485ba3efcea83ce365a56e562b387cf098216a19d31484637d76a4e65f5a3d34e9d8253cda322ac6ff6ffe56fa533062d60ca85f44ef7de028033926346bfcdf9aa7b755e17ed5988c0bd9868e18e21f6a5e0b028d99d270d432ef4128640e12101947956e3bc92375663c91e99a0296632257640d5bb79270602f59ef205bf42517785f0c04faf7e6598730ee38fe53145d869105e3986db4f0a19064546cc53e1fb9ef684b10f87d798d92251f4d2c72591d069ccaeea7910406e5f38ab5a09f1b9cb1d15f2c2e9bbea35c964ee22ab360a9055100f24c8aa73e7e25821afadebb1c08bb6f20cd6640802ef2a22ffc59c3a78afc6b0143cef11c065e2174e494dbaca496c7b346b66aee0718afdc9eaf885ec480ba44b15775f0b6a4812b50f074b06e69fd19014c001842a97923d977196c43a8b6215001304b3d71708b176f2362ffbc5c1d7fa9af96784153c1db1d9488658c7007d2d1bab61e07834d681ab11ba91c9500b1baf96cc0050cd2aa69d20b839d74a7c5865f5eca13954560404393abdde8cbe4001a3e5564a156de1eb891227d9c2154e49deea8a04a78ca814126dc016e691f28c22ccc97018fbb173901932eaab59515302c0c8abf7576d505d86bac79a5eeb8a3858f0ea093a2212f9fef896a48575f5508cf0483c2df9d59ff3cf1b80758701fb80006a63603de9b2d4b913e61ea8e5b7f978ebb7114b4f23bdad8f56db13361a18604d1952ea57f48fab59032b63885f5fd8dcd67be5478b803d8438426479d441b20a0f53001004beaa95cab53a08e2249facad870e5fa73dcd08e786e06709c0fc08b6060cfc67760c30e340ede83172a2501772da0d88efca887b372d0b847df89fefc3821f8925eb1b008c7fcf7eaf60541f6c5aca270d3a93a025eb3721f51d9a09b60cc4e0f8f1a104a0fbd7c685ae0c818c8984554f0248b321057cf3cc18b28d83c69e6ab425e56e6195e4db3e27a5909c0999aa48a2918b53fd4ab9b30828d8e38b7a96a35fc7bf3dcfbc12710ca14efed4c64cba939793d425eb075e14c0100cb164ad5eb3418dab446fff98875c1d897aab16084a87765c49ee1206273ba5d0dc4f696b503ad0f755d11f391f6884df78aa61b529d0f3d00ffa2fd5c723c398910332a00679c26fb83a259a881f5aa16d3ba732e18a257b71682a54b75ce8cd6508e77a0354869aad9c58907892772b98b9d22754316061c04d35a00d4af09986c51b141e6a1744657dddbe9a1a29512ad1163cf2c6387e1533f59420a41957a62c848382f106bf151cd16dadafee609e74f5a3d123ff22cd3599c201402c1facc835274c4763b052fad92cb13c09b4f4bd9c689291aa02d84d60a662a82a403497af4f7952093bfde43082d547e84d8e0dce7c637d3de748c8380fb1fcd9a114c0443300f1b9fc6a2997ecabaec3d0b0becf824be67cd2b17777a969dc2eb35f86c8ba8a357b1f8a1a41165b21409412261579a345c79f174433dc7271b1df8e3c7930c6161f743b02664c7076ff90102354c1302f9d98e6989ea091e6f061ba73898b47fd1d977c401ebb4cf63beedd8c0499c558d504232969f4ac746a0cf365bfc73bde7b6a15fcc927e2707e4a366c8630f753a9cd216c29b2b724552b5c12843ce5b8906f70511d49fd38975a23c4141a94b1ff8758ef94daa03d6aadc056dfce29252246d463bf284fed7c23a641796740ba8debd1ebab27e5ecf4f9f83f386a303fc28fb9b13849d52e8e875fee66a9e4940e54dc6e7e150cb948e1a520a11571459452f74e6d6d259684c1a61001b2a7d5ba1d8aa008d96457a03060898c4cd0f11dbedbf8528d163e70e68e8da64eae210348afaa0882b82cdac21291b7aab52975163a911a1df3b12880e04b8bd2102212161323cef85e13b495ca4572d6b363f6d5b0e7d5dd1d391875d74fd91422afdd9922ee7f3cad04c29e5fda106bda02e65c4ebc36f38cda75fb499a7aa6f628329dd71a8176cd8046ed211bb40211cadf8e45a4cb125dbae20751466880feadf57c7dd7112b839ddd152cb68a2c68bb35fe7848b3310f7787c09335399c1ef273b680c17da36c091ccdb447ec0923b2a686e7f8dc254227d5eab99b4b0c799d417b7aaa391e9a32dd70f2cc0ee1af8b34f11cfb7a1250f8769c2a48f3e184a1b02e591af36ea4b0c8eb12fe1f5e1f04e366654c6c2e8921604c35ac417463e87f41c6ce3d8e3c7c4d753930e7c033569e28762e93ed116cb0a8e3c2f857dbad5d6c3d75664817baa2e36b82fe6bc0a23665dadf86a4b1e162a97085c8e10b200c7225ad6fb2d73bd40ecaa36d18daa1cdd0cfaf0e934de463b14e57f7c07a25d04514447cb09d99e6dd3f0808785148e40559e6f786a0465cd4421640594d748df725eba38354b3d254cb11c8756ffd1408316eb288d81ccb6fb43f81d566411e5c0c7ef1c92ad66d68b289a44c2079a8e9f344952c2b51a6873068f1451b019438c78a2f0ae200e45cea7ff10d0a5c3e490ea5dcd4ec6df1f55dcd1a1320127aff99cac9784a2cbe97d8c567c6dc18ceadd380f1e5d85bdeb1d29e8131ddee40a36e7608009e0d736f5eb456f978c00959bf88dc49e1a50948933ebbf399e9bff0d9e112f9411fc701a71dd8726962d3c43a9b617442c40f24be707a263406e46c07a25681cf93187dea2e5341bc3f6f12e506bac26612650fb385501211895528cf03d12447a15b88eee18a25142792c463ff31683a203fc137c4976f1df8fb9defa8e17c5297ac2a0521912bcb891d3880f86497b1f8dd4c5886038ede3f29865022c1921379b06a9dfedf1c72d4e12eeda9a5c5e1c967ce41af66ca59fa52d7c337bd7dbc24483cb1236977541444d615cd2cfb1a73abb96f9dffc9a82e612d26fa7ac62a5632c15fea2b662c6de3ef375a91d50eef0db8c114ae28ffe4a4bd488d2073bcd1ba81188202fbef7f998422e5b743607db6cf9d189397c76f1dd48a9d41684e5baad1149da01da82d40856a82c5bc2e777f6860cc41e07527721f1a5aa0101fd6d0cd428ac126cd17388f473606731c75ebf19357d6ecdc30ceffe6011bd9e6387bfee1729e8215037120995ef245872f8e8208b1461492108e08ce82187b1efe2b893c36e3cddad825cd951262b171939bc88c549a5030ae7d18e75b488a6b866ef8fdef2991e5ed42467a36ad202577270001a63d94a69901e2b049e02abfd62c1cfc19385fdee80a3c32b3c0eb57323941a3de487a837e72a8385531c9940848eda4837fb806f328d525115271c8d238c0d5674c782721bba9f5dc7777e473b345e3b5df801d150a72b0b99c8478d75720164012f511121f4804a41d431b886674601602c69faacc13b8ff0bec316cbf6c16889bcc990e91d6d0415cdbd265c40b76a6442f710cdfaa632bc092f47fccc0c48a2d46f40002b74ca89279cdf9d060fcf33550d6e1f64b5bed02ac307193df5c576f4d095fe689458e75e05672a6483accc6ce7ce2991849a36b3ad036601004459af7b3485e81cd995aa3c8c6de99bc0b8792fb0bd9e618c26473e1e06998b63195a9501fd5eb46b1b2d9225293b3ca45396c4b09d82ffd5329db28ba37fe99fe3b2b19cb87da08b129cee484d71146af625f73352c5df5802bf1401b74143083e0a2ea5a8557d145199d49369c766ac5e0e81a46fdec3ca5450098aa3012e28c4ea3e99a74513014e77ff333226990ace4a3d4a9069b23808119a0713f154dcfa00d9d85626bce8c3db8f2084faec845ca62c860a594ff3eae5c4e58465a3e7ba3dc32420c7aa70cebde3b32dab68c141b39a3f55f16f2c7557223a06c1d205bb06f8bc40ec2987eea40d8a3c49728cbc6759e0d91412493a003782ee0c83e246214440e8f840e858ec06072753b5a94a5a185d8ec33f461b7d34672b7c99446adb2677f594459b194a9fda80d3acae423c08d4c9539c05e0d1247b6f6f06dc3b09044b60e4ac4ff0a6a0a5d62267ff27fc025997ac7580079046b168591e74e8fde8037a3c9731681394ca32de9fbe8b9538609589c20dd91fc04afdedd4c031f99b0aee6ecc6cede1810ebc0e095b2fd510d82e4c24eb41b8806c0fecf13c32908e5cade1eb01959fcb95aef0ea1b3de97d4cb2b157620c042bed34d2c43827a976da50abb50140f92ada20ed32961b77ab17f594fc3bf03908574f0437c3e9e3e8f64bc2c28c580bc44d4fffa0307c0154b4d4bf047a45a127f1c856cafcca3a98a84c8a691bb00bc8a90906f05f29423ea75565a395b56a40d3c522cdfc1c4bc2159fe41e6d02a5680a2120fdd1ef4491d1058707218a3a6cf3b0294c3f6da7c9bf59f5ef213d5157f51fab734620c53ee63a690716eb0dcd654b1d5a2ace51941c032c352473013c22ae76beaabac5aa209521fe2f86f31aff1f6353724a8d7f68794fb20da61642d5910c408d60d18345e916cea82925dfe49f8f471bd7a03a7eeca30e8f02dc3ff86e464f9e3d8a31f3c4c9dadda0cb2ac74b6621f16afe6098a066ed306749a52f8dd6fe61259a324da19d6c1abbb0a5a9647684f154c30f294f3686681a31ad16c03f0065625a507be8021114a6fcb92d2726e31512225d398da8857aebcffbb50b27c7ee6b598fd035222bbfa2582cef56e71b5003e48c9a5b82df661ff0ed45b94c0d73f4a70740cf967e77d2e51fe75109a08c4b9b7a4f37a60148b80b94d509e28e4530fd0633db4322535f7a601f22640c2bebaa80e9ad063c44cd128ac4b6a12b792598a6aa3a559708eb1bb9f1a5d4946815e65cf50d20d10f7bf1e03dca88d192a972d01816aa28a4df838e6e8896a5121f3011e2669597f0a807d66053dff893e886f783581337c32d91606f66c22e197d92535211860df08db82c28c9082fc75c70662a0643684032a9d7c0d963e22b4043f32063bc108d56b37289efa78cb513982c4cbd4c2abe8dc0387ace74d3bac6013b980bddb7c2579d3e7266c1350e6e8f6fc98fb1fd75231c706725b96052d76d66f9bd452007bf3995ba767fa7836aa2afc787e54f0d4bd3b227ce5a8523ad85e08bd3f9ec07b0d797a9607f4ca34975c0749a2e34b966a084c1b743c9977fc0159e6f275839366755e3ca2f71eeb98aea49129a34d6c60229993696795e171523ceca478037183e437b884def14ae796bcf1bc0bc46ce9bb896487f6bf1dd84744e3ec320b567182c8a94e02f977dfa90db73a6843ce5813b4053213ec35ec16c3e6abfce9fb5178921b188560705839025436ee51ae1de270b14bcb0d4af75c94af61d8a0686742d85a8d77b9baf38700c8ddb0588d99a247cb2818c876b84fce48f43f76853b155b2b7378ad5775ccc64829e25950ded7c1431a32b1336b36bb15c1f8110ca7f704812b19df184da3990dd4ba14087f3c6c94e652d98f398c1dfd16cebccbbbbc94fe5c1591ab8b3296e17091522da1a1d0bec42121533ff1ce3e59052064c6ae1f66da42a2ae847bc447c233a74f8ae15deae404ab4537b797c9f5c26cb8db0a9994fd9f5eb7af70ae613a952499d7628fac666fcf3133d905ecc97d3a440321afc742bb939ffe9c0da49c51cd20ed6917a4b770573f80aec0462a4530adac7fa152162955eb89f053614971335ba956f82bd4a79fb3800fa1f14f4a38cba78bc0d40b82ce3a6122f8de449f0881fceea6d8e162f6a4808928b02d15fe4c439bb874a1559daa8c51d991cecd14b49d0234bda216e734b56982d029fccc4a3c03ad1211f130409a13b3c48e4965d51ffc016cd0ba46518c0f3073aa1b53c644d5c959ad95ca4929fb3724ef6e9a097799de19780d4200de09c13fac587820ea2792672a9b7a2b133384d1e652024c79148c9b7583a0683bf13fe8efff1f9ffd37c4d80f673292f9d995a3dbe40cec863e4cc621e4a2ae0592dc21b8d059352112f510419ef83ca8f77ae508884c2a6ccb47133f87d3995e2758e0ea40ac22667ade49826003c33e98456bd0e2d525b1fb018f4bd4159d979a0fa3f4b5c6629370bf7be8e697d6fce19eb6b13fe72109f26bf7678ad1c25061b67aa574ae4091d09b9c2a5bf2247f055352662b6a29d11956072d365914b389cd864bbb2d15a8c24669d997a0535ff21b3a804992c650f3d2041ea844fb14f07497a5188b5bdfc3801c40757750a8006811422e3e3602584521cfa54b4c82112520802712326772b88bde4fbb81700494d507ade16ff8056e0a1601ef38fcef61a561dae89c1f2c2ea34108b038b7aca9ab6d213b1904acb1cfb39b648f08b188801980ec20e9b2c05cfb640651e0520766eed41b426d91afcfcfeb1545c7eb6498e2f36e2520803be1cd98b370a451daaad00c5aa5950ad0392e944d9b08a89837f6385179d7a99bb35e3faf52e46472a242d9e784167a16bdfb5ab80b8eb82c2d7622dc84ff61616419a0b2b737462164625b727709bf108a989a18f47de63ff53b225629e01e17a3946f0f89630a513b7bad2838aeb2977661157e3d20b5d420502add11a2dc56fc1b50fa60c3ac9f308960c1592834d1c4486f7586c69fec08caeaf64d3bd74da5d78b7b8445c4bec22708cacfd5611f966dc07b37b045830a47248ea5699216d3e9be371226a1e388edd73a09a9c7ea6c550c065017d32f023e052ca0600421c5ca8e046f782b11ca3403fccb199498c41405a38d05b4aebdedafb75637473e149cf4702ba68bd10631c7a869cdd680f12a68e6a842c89fd168d5b80199682a41cbf34feebf53147f674767153f162be32bef76697cb290ac9cb06127501fe9f7bfe85ac3c85baa167b9651c62addc164980370fb51664756c167882f66b68427f6d5f34deace1011e48102cd7eaa558332d11664e87f4bc1819471f62287c19333180cce7af582c64b01443a49fe13a909c6cb18e0ba0287a7171867544a5a145623ef1d6f0d193c23c70a3a5910efebca8b29f6b4099369cf72b5db497910b8c2d1c5774346b2217219818f0e5c19a0822e9def8b72de287aed638edd6725b5ccb1b9585a49957c30b488ed4526689591e61007c7cc5d364ea553821b18dd6ec72f43b1becbb7307bc932de07bd7c1fc135256175d097e84d5d82da08042baf99d16f65b926edcfb5ed98db12280415fc82809690ffd98fbfa9dbca247aa7ebf3c207a080f7f3c982aeb7341ae2adf2e1291afea1de408fd9f10da6bd096705e9732f33827348a35af73473ca03938320b8c6772de4acab330333522017e93a852b6c7f4ab04152f12f06bad84c9e3a189061b1122fa360c5978461690b51ff2407bba0e016acac093416c66863c1ba653a64639c7555a1c5da98534348b1a53c7021f2b652fdcb80f88ebb3faa767fe8bd54a54f963029069a10ac3781fce046ac45a091689bcddfe272d099e272e3c53fa39b3caea2e4c2ea2843d2be4183a25ea723f47841c5821784e0491a794f2d4a1ebf1018af896b33382bb8c340dc2cf779b058bfe4c3cdfe2efd56b3dbec153a495023102bda8cee2504d3fcd8ef67b8b96e5fa6acfcf157d942a3bb56711eac30bfc815fc455d018c8689a33fbf28d15fcc72158e59916e6b0d86f70b5dbf2e3a927469ccd0714e63bb7090b3901244d198575f1f483d6187029a0ed5cd35f040d7a5a2cb378811fcf5d8189987728c1a75b26d861966a740d59666502903c9f3b79456f16d52ee4bd5944d44cc460296ef43be541768f44dde6bcd9700fce47efcf5db54e732d38df2294882b8ecd96a844d6f1dc15da994fa18c5abbf4ec58d2c20f301858af10789264f736e1ad4705d586ab6099a23401379c7634055ed5f4a4d7a2641e90c79da3775b38e8690d3e528f79d3e81f5738b7411c5dda319c64270426631526f346459ee991d154896a25d0253b0ddd9e1c7308e3e5c0684a69983d65fbbf983c59566920bb4685a74ff605f56d41e87ba77e84db4dc893dd876d6d1ee7d73d16b4e975c98a7c4bef058f57a229374ae80f9189647ca437a0356c69fb0bcd17d7a0608c88d75314c7290797eb0f9517d7f4cf6557567484e2ad06bc93b7d6c9bc3d10e522319392f35ceec647ed68e700b9af3de72c41176414290f63c8be3a10a79600c799067b475a6f03bb87bd0191ad38ff888a60ddf7db37f0de7bcbec62ff206aed35f137c550aea691a1682a95454a4dc0a819ad8aa376c67c3e84c2704058dbe56087f8c6f410334fa20ab104c69d219e6ec17720c15be6a857172e4c8d69c21dd9baa865730e4741033dbb08c950027c9df39c95fd42f1755cd20c2a2bb4b0cbbbccdd14545b68217908365dd169a3e9bebe6025c4151733e37b775188711e4dacba9bd927ecf6895f143c5a2069306e51f44f2d932411a1c4f3cfe1e829a790717eeee07e758f5f0357aeced7fe1d78094266ce32f499637cd37d1fb7fcbd5a3c0ded8400e6ca9d45ba09c1bade845fb912f8a963a405687c0079d3635c4257962b205fa3ac8e97cd8020374ba2b96b174a287df8089d17e7236078cc4d5f1b0c724905c98d6114e31b9e6cb409bcc5de16bc81f5bf05746ec683d5b417c3686f94aa0b6ed306fa62c0e1ba5e17b157d75878dbc5a65ba0cb328e58eccaf16eeb947a44476c9f320080a65f27ccac3f5709367ebab9c045e3c8f7ff9af04ae2114a35728811d1be12bc3273a513ae7a90111081907eeb772d6b20c9fdf6c60d6eefc303c3a62cdc6fddf57b6832d0617c8976a96ff3d67d4cfa51282e05a5a928749d04c78a5644274f33814a38c094beb6342ff73f45ca04f2110b783a160a0a42c321759fe21fa76e010df25ea13adbd135c770b691e6dd09e578b38a757bdf2d63ff268c9ec84e4e5decdd32a8a71a5032fadf7ceb98783a81c9c05585069bcafbae9f933df82bb96b6dea4c5e0f6c2ce08401ba98409b45e1981c040fcf5931ab529bbb843d915c3d10c9daafb054e7d373c9699cebec7fab9db58de34acff8975d58948d08e2827f143f3b563cbc3dc3b175fc80257429bfa05d6c8c6cd584547700720cdad628952193e4b879f79122c70c4594a1655593bcb8faef212283041a61c7bc4ff49e94d62bcfd2637d6dce6a4393108b795df5263f8847c44c2b19c5f00a9315e1b9006a0c8abbd2d8164b7e76e867eb912f8907b0ffa6b2af2e12d0d8998885ec9687f6a3ba3ff593721688a540c7ef52d6aa65582fc7e423de0bb182294db182c00e35ed175b29e4e02b20378c77c87c2c7e201cc19658dd31046dd1795ad74ded1930bce2c6f3ae5d0e997ce4d3197830914270900a827ec944a765da6e36024f5719330b3b831c383d64103738181ef39ae54f1e79d320386fc51095555341cdcf8f290eaebaf8f01cf80855c29188cbf877e31d336289ab4554599ba7cef80198ef1d1ec8653cef99f06a9eae1f4aa5172ea7c3d040bf95c20abe6eba04a8cb66a9fd60403534e44a007e6027f0a5e20aa0ed929a02b3a006a861ee218bcd434e0ab46f17e335aafeec175f34db40d8877b4d73afc55921941c161194ee1cf015d9957dcc6211044669617c534eb81d213d94cedfa228e04b7754cd56959d59b2221127704acf5cc122df041933874337c34e9f348c4aa25018ac0ad6ce9738f5350ddffb925a72b44bb876cfcc91c45574c4a87d9b71667b12d18688548bc6431ddeb0b7911cafa9f9e5d73ef9ae9fc3711f180377244012201e9c1fbacf995dc8ac78bd7da5590fb295cf4aac09d22cac7b5ed2638f515a9a35ec69169056d90f2995019ee38307d2903e230ba0ccb59ab181b68ea076a807f4bdd5b6920a28399188131655c265b045ce1bd1982af1ec88dd18ac50f8c0c8e11d874370bc70fc821d5753ead2053c894c105c44f56c8dc05391b6b0b53adc014c8aa81ebe724ad03597fb4bcedf99cc94a1026745f3975130cee3b419222530c741e0b6d54ebbbf215e5890b3d6e183f0dd3336ee0bf3a2296d3d771d02e65a5273fb2b33ec9dcce530182624e6f470fa5b331497a14eeb01543d4d724d673bb60d1847e23f986d28b03b98f7b5da1a7269052dc533e7bd4e52df67bff9c87a564a352c5ae0e2b0e1f7a400759a4b68f1e603267961019547543993ff2210501ab046844cdb39e44339ead118cec2f3615b1f3a8a644a8796cf85468acfdafbba57b104d8e132cdd9173407072d366acb14640e56cde088b198eaddc7959385ceeed326ebc0a81630480f395105a00a03434ca678068bbafb3acfe5b7dbad27896e86fba0d4ed1104549eee3b9948c64d3ec88a328c0b7f2fa84c00501419b513befa094698193ccd8c6c48d5fd766750ce528d742f2789d99f8daf39f0f8fda18575a2ecd4819c664bd01e2ec28a8076e2bc62ba6c09338fc5b9a12594a93998c5992b18d599d08e98bccfc9bc7ea0b31514f63a5382f6d2cd654c5baaeb60eed2e8947a9dbd96ba74a6b6a5c3ea8ce9ebf1763ba32fc86590390ad946eaed2149f154d0c8bbd10b81a2094b5147ab125434a845d4a7d6441d183090637819cfe14266ca170d04c547067de143e165ddbade01431137a927f6ec1b68c0005a93089e4b838bf078452e19ab7715a14431d7f49c68a702038058da51c9e028dbd64ae48b6eb94cdbdc6b3d39528d0be802ace023a28cd209e55fc5dca8fe8a6063aec20ff407d15cacadfa9b0dbbe8bb7b2ccdda188404b4cf043133d31820d384d1a805581a78b5d22493a2394041ab8f40aece6041aa6c1430589d9223f09a2182a973623f16862475422198029313eee11abe606fbabc6f3187280b6de847164afd9da32e01804c3c12df412c515044024a4529465532ad72dfb84aa5b78e8f5af4bb1b5c1acbcc97550d8af25cf92d8f82067e04c92ce25c48599a1904e318beb098a682ec0b816a0e7159cdd754469a339624ad9dd5e46dd7b255d1031614294b5bc32f5294a067181a44fd8f2a0e75ea55426f60717943129942cc15b212b4134367ad61cae9812b8c4a2d7664ccbe7533b36bce808dc485873e78336f7a308eb3d48d40d2fcdae7843f8c90521126a73f6b32964f062e5258829c01da07564e8aa3b914d2d1f80ac7074d3ba82dcbdad9486bb722c8fc820c6d08f4f05a2f9df4005324bcb0dc70113e028c4581e978742030dbc7d57c07749ab6dc5c050c74e2470b4af2514565325a403a5ab37732c71a997489dad996aaf0dc19662d1bb6bc6ff5213929593ba5f939d4ab88568c3844c337a55777c9d552d5c6e65ad9fbfa5520fa0de56661e9174bf6d73f9cffaeb30089cde6f9c646ddef105f85fcf1a4cfbcdba3f9d69863bb1c45fa2ece4c1e28516f9edb125e51adc3bc44e8401e8c7e6d527991cdc492dea5094c7681e301bbd1d0695564712301ffd036bc3c566cab552f157eb09a8d9261230bda78de809153445245240b76826a85f38270d592d8364d6c191cdc16600ae09e5b46db19418ce272f8de2aca611a47f27e2c9edc07e48f4da041cab390ea70ef8974e11a8b4862a603cfa9ba7469320f9024ae574a38c19521da48233cac6694cb3ffd22d1d7613392cd5e13c56c9791538da0c910ebf88694a27e3e51a5ba6867beddf646b2cb3fbd99a05a93be9dc3b83946e2d595b2285eb9545dce914dd93d3db7a009ae172ba1a2c142395d5a0ffcd1f868b243ad4e426c3d334d57d881a8a8c780970ce414e362db29c072f09dd158bfa066af2ad159a2d7a96fff8ce1d74881854375736a76c1d3488542a8a6f995d29e3cf528f347a4b186905f5430dc0725b9e7d9a55ab3b612a8fb1a8a42b31098d105acc8e096bca1f8924e5b392027298e1942c710a5e97830d240ebe0d033ea6b215ec50b0799c12bc63f6d4a1beaf61b4aa40cafe09700f133db954744dbf4232d38151e6805d7df613d73254171c52625a0078dff4c2adb1cf3db79313ee21f56c05d0724cad0ee34c5c19ed7383d6d928a5a645a177c86795e79c5835720d533f3d96b4fcef0dbce891ddfe2195275bbf6f5150ed47c116e00fff08475fd3a5aabf836600942ace09e90b307f666346ff897485ed761b04a74ec4ea58991a841a99fb933b4248a23fe36991705379b7f66c8106153645033106ec4697cd26ed6ade1f13e6b1873066fa440908ff9eff827d1f06ccf2ecb0fae82545d859cc69457cbb03130f0e916a7f36a38679032076af878a68936492c049755706c264d76e08669bc66450b119e09b11877e01063d0b89cbac268e9174628239fd148e0f3828d51eb3587570da9ad9069513d48db1173ea2a261257159ff866ca54b3125e70e96922058ca3ee500304b47afd6f71b15e281b1214703c40c5a600e168c66f0ba4313b0e9fce520554487e7fdf89cc76a7f1e8ea234ab72319f272551fdb576c230359513e6390992c3eb1aecb6e3d12691133d859e3d3afba19a85032849d324cbc1f5a2531fcfbbcfedb5511423be739a62daf21ce9c114756e923c45d1314d5e03abeff73fcb4bb01f9ebac70a68062b5e9b5d4a7063a9fb0734514fd0ea0509679048942ac6fd12c4ef774e485ea9f41acc56cbcb06d2f48db22086a64843215bccaddf2a48822bef756983b4713f34f1281d480cba39f21b946da5f97d332a2a20ca2b4012d6e0e262a2ce0619c3e9d25b87cbb7eeca5463ebb61780e0170156881f7fd867b1d92984ba4a917c046c32a478767db6e4861601db3beb1002b3b0f86b89702f2dc441c25c384138330a10b4bc49fc4e13e166da339fdbd25fdc1d1e0459b9ab2906f8ef6541b3113f8d02063f6d28889ff62f9b9f3615393fed9793566f971051ef17f1a47728f0a37638011c38ab2f991c3b6b5cb9213b9cc5218b5c442f5bce09cd16bfd5c70227b8c73297e00f3bf7246637476366971bd887057772630d7fe864874b74b2cd553a59e49ff02c3941783679233c3bf9213c6b2e0acf361fddc50267f5ec32974ac40297d154e40c13f428cd95f78933ed421f7b73aa2b43d337cda5658f3189a11860288b989fe23d32902a2565a3b68ad0dc1901fe66f40d8c5a04a0259ea722ba182384eb221e56f66bb0efbe4c9b8ae23d9e76870cf138327554b8a7673dcd8500c398113d338166e020254687f495a084f15bb068de0b62c1c751408fd4e11d392c9a018e69a0c3563f8cf2573cadb1528fcea141bb50140e59945b73f244012ab2d6016a978f6c7a67cf60012b188094ec668162d95daa15360c4180dffead039480fb5655164b53f5e879ba4e67e0b480656197531523bb00057b019c5b32b0e2964258122751f8442faa5fa6e59a367568f0fefb81369271d55f8e4d2f1045f5547db20a0296d8da31ba290d6d0f33ffa12f1fded90eaba92c1b5ef17707e543da95a146b05931129e00e9180b1590a4f12f44a63bbf246c55529bd5485892e01c12f5d58d9f280dfab3bc94b5de7f7f5eaa72b3da910862bac4de9e35d9bbe6da1d3c2bbf7cb80374133e620ba142c01cb0df43406b0bcee40a8aa13496d331926907580583cba8f49b3861ae188843e8db85613d51f26ffd0b2e8673761351713d0765a52719200c36277430e119089dcc408432ae155fa525b58803f3c761195cbd7e7c4f240ca9564b62516ad9e2a47b75639730a645b5efa5a6e024ecef71ffb6ceb7ca59154313210e23134fa74053a1c954c8f820cf4e2a79efc25a130b0b7713f5478ab2bfc308519edf86fd7ec0a6c7c15f34fdf6b556c820d0aae7cdaff72878063c8c139712cc518d22d25c37878f47b17ff9c66fb3d8d20cfba14e3849f705eb9e1e0482a4eda5fcc6674c1c8c23879ecf6a5c2a3363474990284596eac451dab9abb473f4e7d4247152f089c3791bfa8366f9b95c4224130337d2cc510cf17f189d3dc81c640a53e68904c0eb7a6109eb67560c8e72f1a94280642c5119830c5c13905f476b4aa9840cb01346ec3dfe38109ca8afd95e11d8ee339e0862165d083da24da913b9daf25523e217d5b441c2178bea0a2914adc79ecf844c5deb02c7db675db4c3dbbf1ea0a1828e7dbe717dcc3cc6564e61873c78c4aa6de1adfd59a21e05493f528c2b2c8873d51a4cf99bfa279ffe930b05ee315cbb30cd36598723198473c945a321e4f1f0e363254c6aa21e9132eaae38502bb150c0d3895cd442143936d4dbf0c49f29c2b5b1669b9dff54dc405acf1d0ce03cf81559575e2c1e28518e74257437afb4e9c4ddd842ffda7ff277a165dca204f4de7becc30423e4b553a2656264bab81b62cf088958d39d9963cc345758c3180d42e9854fa1d4353da4e526490ef0c9a04f43a02f82fd2ab89e4c894e0863290a1206ec8552816f5f299c15175921d732140b77a9f0d51516eaa8b6581f40f5e6afca6c3e7306b1a803f7aef9ce6fc943b67f2515f7b4d00b82e3a7a847264ef889152841135c00ef3b90ae54a6621b4af428253baaafc2639105b0d83a98211af15b3c9a66bb473a16440372a91c6a98f00fdf31a71f070dec6e353b25bfd21921a59d37730bab7d2460a6489e2b2b46ca5c5f2eee3a571e1dc567fbc16db0cfa77dabe49ceff7a2458d1839b0294dc5f2903c3a4f79ece495c44c2212dac7a1ba01f5e7045094e8d2d76cec738f739983254902afcd9838bd6c2a871dfcd67be1710cd70d96859776a588981372d65b0bb28d4041e0a25a040a341403feaf3af2c06e38e98b103fd6ea774c7de3176e265d050fec7abe544238d063988114392189bddfde31ee77c5e0e2278b7dd1c33b9602f98138c92ed61e67f5cb18971687bddd95ea5f52f0c7fcf6bc6cd840a82411fc93330bfca67598653d44bf6b56b3fdfbc86150dc94540d5c54fce80410b1b4d6f9124238927d2293a1372310b1ecf8f7d58f4ee886e30f2fea5866f58dbe74256a444c4415ec03fdbaa1d97becf6904fd9dc1e5a1508a5e7e2bd7fd5361fcdffef631485971dde3d5712b8e0a241ed8b62a3f9253a80a36e58d801f5622cfd93eeb61762e4e3fe286aba5881834690a20b56c229120bf96f33e199124236d803e8df9ee5978c36970a0d6f3a11fa6543158c8116ea7f38abd145a76c867d7da2b3ffb55acbce08d54bf57987a878d3ec6410f446c65acfa4611676939faefa32c3db22010c5e31866c1ef37177465f901f5fa2a6b781fc87254e3a2a34195ede33d5eb76fbbfebfca4ea15bdbfcb3c8a497675d93f6084936e3e9ab948c0afccc64770382e08c194bf6f33beeb7b02f95da7c46538f34c2bfdd8fa8fcbfa6564de5eb68ad0cfc6154fa50e91ebb847ce9af1be72b13209206041bafb56e3a7a78dac0c86a3f47019155da090037d12aed23fa956780f3671a5a0cdd1e16d735561eeb52da004faaabaad87e1e6af16dc05b6bf143284a680c00f4aef64d8aa4badb1b881a14eb8a1108b413521dce384550be7d6a9a63458c9403d876d1399873cf29ce0879aa6e3a7a2c7e7ff682f47a6610ed105ab64a5ba6199dd56fd8a385051f447b7695ea86b695eac49fb64d0005d62ced43bd3e80f281018b70bcf301d407c4fba11b437a1b304f51b5a53a64e39644a4343c5ea290baedc1768eb7228cf842d98494e42bba64edf28e369e6b08d3245c7c00cfcebf78fa510fca0dad33744aea0955268b8011207b444fd42f931df2028b2fb4502634d85c0007347236227d4bd5a974f40eb462b4bc7fd452f2e3bf58761103a76bed2bf4118ebec0bf0d74faed60a5e3fa0814b753cded62410e372488c50ae4d3d06ee43861899e061a31b2960e31f84fba7b5dfc8fb88d32b0cc48f5244713a5bb87ffa7bd381419e0275c9c6b0fc7050c8c580f52ac582387d256ab0ee8e9ee183df1b97eff46f194ee7beb17431c6819a861b429d7121d8700263a3384030a6aa516063352154e2f326fe8c612f1416dcd54de4e077c7d736abb200778c28f6fa52cbb35eebaadb1f304916b9fb29955913fcc33519180bbef5b83da9b9b6d002aa706df94e5861a44b8486d6ca85de17a893e985b6941015eaa4b57d8e00165325f96a91ccb0e50798d99e33a004b0489c937cbcb463108b82dd339e249aee82e1cf5f6389d0f0c1a8ed7a07f0421f8daee7c91d6745f1d81cf544ccb2def65536d02171cb2f74a80eb3b2c960654de7c3bcbe0b593b8f6d81120c7881502dd0ac0b85c5e62c07c70e74105a0e052d9d35438ffebdd4360a22b730cd53b5a290ae8bd875db17c67c52cb4f4470e1767de6d9c0d153371fdfe625d2df6b882edc57ec5d7db1d64030915bb44f1f1e2fcfa6a0c5ef7c978a045e408636c7873b18ce36d555255daae874fd9e4472a59aac2c3af3be804158dd4a896c4fb044d4f6e23c7a06db30d5cb66e4c43c51d93649578d9f8f1f9cc7fd4455c988268f7faee9bbfcf0cad97faba8bd99ea06336379aa36d5215a2d9b230ab55041b1a09f113f0f93c18b38eb70490380efcafdd8cd1b50157b3c8e9b654dce3b4242d51760857ad86a6870953ebe82b37f8c4ca933f44a64201989d7d73de7813284bd5e4b17ede103910922e20904a9fc55c844d454df5c8ca87837645f073ddf0226b3a5251210f197704fb9a8aa1f7769e5a325de66ebc666e3e6aa4cc3be1a7a3874b46c67a3dfb86c62a9d190262030ef5cb020a074d038c10d0fb20c8bcf8eb29522f1038ee0a56fbe850f4503284aa94698488193341dcc810c4c7e112515217d3c63e5dafd40af7405576968fafa9782d00cae040a8a6bae58309c15a70359f93e8535ca21c51909cfd1b7e21d8453e7ea53ab4b7f9dc24a83436a6ace214ac75966158b876f4a0f90fa9aac1ec62cf3262283e26886bedefd3a0636c72e151cdc60ffb1fc26adedbdf796524a99929401cb0ab90a150b1886bd0d1f994e69ea31a5a139194959b9adc68a2ef87ca0a47b7c80933d43577e15b0ef083e1892bb2d1fc10733c8fd1b1c83567fbc07a1901a5b0021ec3e82144772b765298ae41157c3ade00d2500a3edb76d9dc6dda1bb3b74082174082184eeeeeefde210be1cee34dc5d72c1a6e8bf1831061aec2352df51155b9947f4bbc7f0a84b52629fe10efbcefe713c74cef07b2e32f5e5cbaf37469ba4e88d58f92fdd4ce0a41de944792eb4ce8961b656dc515c71ec25a819ec9bdec976e9c53cff18929143efd46f7aa5f6fb52a5e7d210d72ebdc02ae2ecaf0f55bff1fbf9f75117e1fbc373e91f696fbef926767fbfc10b00319ccfbe9f2fb37be291b55576fc023635babda66334b2b63ef8f46fa02fd9dbdbfb61eabb39d88721fc0be32f307d7aa57fffe2a8f7f26247af2546b70cdf811623f4fffeee8daea84bf13dc51f5ff317c5d1b514c205d83e4108a77c5be0c8d8d8b14b295fd2ef963146d91237e1513406eb3fb25db0f0df17f13ec2a785f662bc0c4067840422bc04d46aed68f45f80f79edc6c85379d73038f3892ecdf42ba83d42d0887aa1b6e188dacadd5dad1a8ffce0fc251308b77d3aa327031da22bb16cf55ab1db94f0c779e4b9c81edba69fa044476c4374ef0450cb659140d481e92e821203a9d4b32462dd5513346fe4379b261b42fa673f3682f46f702450fe59d5ebc92c7b45b3c7a2efeb2940a0f7bd0eddeddddddddb1bbbbbbdd3f7ec448c81c5d8a8f3f5f778c3f6ba4313e8d31c618638cb15f6cecee3ed99893131f621a8e8235883142d1839a9f1172208227682f460e9d0ef9f9a8a587a080af82bc201cb56178a44dfeee2bcfe0cd1756eeaff98b150d76eb33c9aff704a44fdd1019fe2b49d92561c44c863d74c9250d06f4296298be2f5eb030885a5d306746d1cad1b97b46a80167f4fb07f1026f8866b0852cd8fa14a0cdfc3e07fab4a0044c9fb8945c91e4f8ae037d1a8e61e677302fe53f6c9f3d10db67587b1ed86f18088d47f61a7e6ea2412cf674e4a698030ffef02116d1fa393c973aaa6fbad3579c01edf7d3298e2dcfc5ff75c94efaf5a1a2cdb17d408758681dcced1e83e71247a2f8af4beeb14b6e3f3efd08853c17ece7f5f8953e794b6ab5b6be383f763ae4c69ec348468c4c9f69e2eacfcea63f78d9d7a51b38a17dcb8b692bea1376cabeb5e7b13f8ddf73f9183846971c53e50c132152710f6df21b3b90f71db7bc986ee94bfcc5e3bb3fd4418708a1a02262417b38c4d6288f8d4cd81b7de272fc1e5e0c4a8edf8017e31f679cddc316ac3f8e2ec56faa058bbd0e19c88eb4ef8fa2dc7d8eddfddbfb684cfa81fbed678cf4cfd8e77270bffd866740cfe1e798015d8a5fe30ecf14ff65c7379e4b043d8fededf3e01ef45d4b0bf4dcf3b0bf3d0fd073dfb5e4fec1fef640809e7b0d72a41fb6b70fc4f616cf18c9611ff440700fc233167f4c60047eb4297f216fffa5e607937e4079fb40a0bcc53c8ce4e0de3e8fed5130e6c1bd05dd97d25e4a8717d39ffff8e8e2d683fc5eba1473c83abc98ce913302e6e9b86277745b367789cf803e757c9a053bea528c4f99d8fe1811135155b047fba8b1ae40838179310df362fc1f921c4a323ec6a8c58ada2451375c468c96dc8944a2245c4820421444c8af5afb5e4f57929f808782506068f35c6660bb6a5f09c6e89f04cabe7e40a88235b0489634304896de3c80727b7c9d59f352801703b37ff2c9279fdc5e5e4ca33c17941c5f930ff6a7b17d2e7e6f0dbb83cdf14b6e8595df95b2fc174ba52084c8e1e964f9325e5e6b09cc43f25ed109da838f52c1c27f5f03e6d04edd7be81f318e201e86c9e1b8ddfd6110dddefe82c09123078e20de83892f3a3c1d74c01184b7cdcde406f1096cf85d7737fc86ddddddddddddddb0bb1b366cd87d9fd01e0e36467b7777f777c96b8530b8d4257f79ff203c3ef8e0d339bde4e893f4e8fe2ff205eec2f0da57f2cf6e7d269fc9f15f1239d62068a41c9594039b814c6ca8a0939ac17e467e0f23fd3e5215dbc97105b683ac22af3931165210424eea0841588d03113cc949f5c4b3c742345c810a34a98a85c574b0a9238e88d89769604afe0f122c20253149fb967f291a98226998241f08d2b72ce94210554a3ee9819033333508d2449592ff521d46d2fea54897a4e11f600ab2661333c8a4c2bab04c8561aafc26ae4bb850c44392e97becd93317f190f44d4eee20b703bdd9fba022c7e9c3f4ec21a93bd5e584edaa0bda806ee8a28b2e522b4fa37bf89c6c8af66874ffc7ef6c09cb819eeab2c143612af8c43bc11214c9f66934a6c43b41b70d64c121d0064316b4d9288691fe8675746908fa4374090ea163883ebda845a4fd5955510626b00c4e9aceea82620ad8f1fde7ed7e3e8599b6fc42d422e5a2fcc9a6788cb8f3cf8c58c0902cfb2cda184156b57634fa3cef09099959984dadd9534e26c308b094e2b800c8da8a6051be83583c141cd2546c71448b0c61912cf2ff68e4d949c746048bf2dddb494949e11ee56364c2769095e1086e0f352186702d6cf7761e2661081d42cc2362de31b3df8991e80b859845c3e9fdfcbcdac7dbfd4562e6f95293991892083c1708e3858e9c39e9e79330a6aa7564513ab408bc18983f346f07e58340790ae02022f05c7438aa867438eaa5ea0e4a8a922ee970c116d525d8148ce974a95e613b8cd5f2ac1fb5608c610d772318df3b667677c8d6e7623918923e518cc4ccf43f2d181f0a7fc6171f449f400f9f02117831365e86714994fe8b4ba258071cd226c8eab1d8cfccf4d04c9084554a7e8f1caeb0852a85612344f46fb64f5dfc0eda5cc8f280cc19de21734f38a451d84321da04597da278880e2876b0027b5fb2f6984dc8a65814bb43e6fec882b9abcb43b8ab29ae891f8da6f70848311636c4dbe5a6ea729405e0162e1f75f645bc644d7b1a1dafbd8f521dcf057ea4c2ea64f830669f15f192374c44629a4fc94b4462d2fc479a6f6309ab0f0da9c67975b0200e01850993ce8e1e9383448b272d98270b463a04c98aba1433fcd76df6ed54576339f3471887122edfb5a4eeb87638a0438820fad461393faa2b13a24db6c374a64d86d8902e410c63e5f4a983ac8ca44fdf514041a3331b56674b70aa4c3fde2eaa5c3d3aaf164fce8e2a87a6056b329d94520a73b2f67dfdb3eb43bfe30ee69713e9a493ce09fabe44d07f141be1b98319899935dcd1c83b66a6dd0e9923bec2d27ff4bb4f8d91903770f4a9db3149fd46d8e8e7a6b4419fae6052832014ec103a200b63f5a9abae7ca44f4b740861c40d5d74d145c694740936d76d8298ebcd91a80433b33fe6c274722ca64487a3a0c55d1d8970f721dc955070079331d666b186bbaac5148c82bb6af1863116ad2e2b8e80f1ea604a30579f66dc31f3c4241e322466eea1a54ba3d1e7e1f780b52e86e483b19c2ec1c7b09c8ca93015a6cab083acb793b5c0769045dfa70eacd8b2efe0866b74deb487ac3ec92519be25a8a0154a32fc1d2a32fcd7412b9ae40eb6a012a8654832fc47fa1ca34bacd1c6040b57c85d7571e04393dfa7343ae99c71a33f6f0e90e4e0484ec9cf0839a0419691d12558badacb7690359f6e43b01d065913632c47c920482f291837c19742b0f0c6513a9e097e75ed5457112caa2bc37fa6a99dac07b15d75d149673fbd1d058a8891a35f22f2e3950fbfca2b04acae3e35ae4b1aeb783b8ed251e1dbc176b61e1db3091451c9d74ef6c68d2e4126190e51047c21fa044b377a28a24d708824f0e5005f4a43f08c1e8f1fd17c67ce37ddd50ddf2ba2fb05db3d462927ed473d4a3927a5584f9413cb7a32addd6394f1bdc4b0dc8eab592f9e168e8b0b34d40619a321c8185d22638f3231c59b54489fe463d8cca2621645e5a50a68067de482de9e8ca97ca7ea55892e37a9dca805db4d9ce88a583cd447d78b81a317281873b94d0c6261928c7d75c256158d5a31cee180a83f71dcc402dbb94de8be4640877de46a80aa10cbfd9b3833c7dad10c83d51cc33868d030df81dbf80edcc651728929692a0cb8c71e3a69947dec270ea665657825ecbb120abe601972e0ab7174820d7d7d78b29c7dc8a5fc8c911ca1af782684ab9bb0c7404fac54a99752c2bbe82265a4bfab3047ad6ef0d527507f27c246ecd0d808b7f1f268e5b674097b6963e147dccad8bfc03067341f83385dc21ec2c0b024ba84fdbf9dd1632cbfa24263e2b8097bacaa8870676d484bb92f732f35711c059f893e9683d2ca18fd6eeae4946be365ed61104b0405d37ccae2d7260e530d3fed1df5523019c34a1973d49ce299b02742090919fbee2563930919fb0e266313e7b9607dc25e02c1260ef6938a3e7d1efb8904cee8c7b4bf3c3c2ce44c9b22a794a34fd10414ef62e487bbd1e717a394e3ab4bd87f2e74d225ecb9fba4aec076922663d84f1c87d6622f69fc3149e3c363d21f03c344642c48b10058e164eb0b98d426aa0baa0b4ce03b7d5259d8dded3b8f4643fb46ddcdef3d0804edfd142c7c0ce8d2cc0fc219af094a28c0c6a712d2e75774c9e3eb78f81a953519bb33c31bca8fc31c003386ab98220719bb32c3ab921fd7838ffca1a132c72722b1bb14f4b9be2f66fbf7f8c57cfe3d005ecc7c31bc927fd7929f7c75d59e46cb579f60ba2486779af14aa6ec11bed173f8f5c1ad4dfef0d62ef5099a26bb2f5565ee2a74f7cf5e8c12d93bdb3725731fcf5add40d733775f155334217fae674d6ef5c574f6d7287d2fa6c6bb49eed7288bd7583413b2236144043b857c45215f6e82a232615d509db0b40bdb8d62103b5f9b57d8ada74d91ec3fafb0fd5d9d47b0fc381bdc1c92fd274bcb30bae9827935b11d65bd463e1ac9178dcb97ec51d1c09733429ec93323a51f3919f990c7510980813c8ea1bc18715c9d1f257c88e5ae69ba1739e6f03223ede66a85cd15369f8bcaf79ecdb81f600ac64dfe2db0d977f295fdb7efe68ae6c5bc255e0c0767cb9774027a4779af23143c99c0d30558dbfac2eba22ff57eae56a0ed7e2eb7816e67edb3812e85f76917a6b68b4445c22231cab43661e36b763bd94861fad4343de39dfa04af742717d30ccfc57fde7986e7e20fbaefb97c9e6b9882f7e53ec17492fde716afe4efddec994f325565ff913d855d528e0cfbacb70ca61ef7034c4d979be68e9b3c6aa106c1e2a1e6ca4dae17036db6d022cf9a2c602a0b6c7c6dae1cf55236ac5993578eea259ec99f891a17b0723f6193bd699e8b4f57f6f7cffe5265bba6090267d04091fd1b489fe8f7ebd025475257305dfe10d3d050966b2ee9d34e9fa40f8f49960978267fcaea60b23f0b253301072626b15dd33c9ad3c37dcc0880560e1554e4e4e0e0e014395204a7084e919b2237313a00a8b4b090e6f75c6876ce9dc8f4291392625eed91f28f1a4e9f0fb713746fef94bd7f7da7fafedb3b61ef6f458d9aef3fdc499ba0d718631119a74919b760a3f6327a4f97dc499720ebb9c0f757107b738484d3272ab46769f16375df56197e9792fd1f8c34fe0d5151054d228028f862e29be0b7298b90ca1767bcf1c560d9375a6f8c301c45ef2465ff8cb3fd999774a44da49b23845831040f15528586846c4245321cc233c10f0d21b4654d545360bb18c25922f7c7a80ae14415e9a6f6936c48f2498e45476265784943da04a592bc24c397d895a1a6135531e21aa421a41bad0ad24d8630cb4b75324f260d89373e889371141419894940ba04e593827469153189a64bd0e3166cc88e4338cf057e4b8eaae75285ed4238a49a3e752129327cf8a4d0140fe52f0f918064d22a9382c097e2c53cf732bc5882ec2f255e3c819cb4467fdcc731005452c445ef7477ef401d68355e7b949362d816da33807d47b861e5527e474852840c7a651771f981b27fdd7d6b4d75a23651997808d032c4753502cd45a09dec9fa96caaecaf72b52e5e01fc455743c33b807f76352e1e02b49ee7e22f4b60bbbad27a888844b80669937f4d81ed913f63a43a2d5d72f70fa9b3fc1a43a66e46a01087c4c8fa3c8229ad8748c6725486e3ca4dfe108e609f624d5ca1c056ffba83057fade26f8e6371d4157e107790a702a9402a900aa402a11548ad40ec5720b43d4629a59c734e4a29a5b5d65a2bf71db4f97cf75ea0ef60b27d94ef6ea47ce763b57dd7c32533abb0a1ef7ab06afdd49a2ef5a8b1a1ed3c177f1c99e8693491ec8988f07353d763958a9595fd536e87adb23fcaedb056075fa0db65385dd66936d95d3b64ae4f6f561a7689645f6390b8ca6e4b9b9cc6203e8a82dd681c357a5a8fa3eaea997c5b65ad27bb4f34d8674540eca6c25a4f979c2e61412f1a4757886a889352729788ed23257d8ea3bfa373959f4dfb4ab7dfd1b2f3f6946edbe7b74e864abe261f56fbb5622871c51a6723fb28e387d79b794fbd9dcdd5c70cc7c908f2b94460dba7fe077732807c5e721b26e2b3c920019cc1bdecfa10e521ee3a638f82bba63d0f31f7794c7e2731d9411feac397a192f103ce80cf6109219536440f3111f0b7d744f2e1d39795cb381bf589e0448f552925acf0459293d134f8819fcfe71333f67979e987aef62917f428d73e0daf1be56a06e96bafdcfd201eedf520c63211f0e1571eb88a49d8d3faf4b98b61f9f3f4b5cf567b6eecd2a73e7d1924d85e7b192a1924989c8c965d50932ef5430821c4649000e2407185209ebc45efb954892b37ad4b8078383358900c950c12c0192f3be4647c0bed7c424e68f0487edf37ed2c17c2c36427ca17259d14ab980661a66ddcdb1e07da98704ff2fb4fcf07f47ee4f798e4d74590e4e824e99b2ed2364e1a48d3f438e971f2a242894e0e153b4b72a8c0813f1eb419f2233f156492dff74efbfbd8243f9924bffa69f718a58c724e4a6ba515c3b24cd3326ddb38eef301814628291625252514128954448f85657ba3d1f65ebcd81e0cd1066f27ca6fa5b4c2f2e0ed46f9bd26b0b0b296b54ff917a3fbe464ff19f1e663a64712a6271108112b54d3a4fc1d9d275dc97ebeecfe1dad494dc3dbcaca773ba4a66972a58bb801f4572086a19474b286bb4829eee2863bc8f19065ed37ce46fded5f9f34ed638cdac7774e266ef771329aa665af69ddc45df431d343db3a1e79fed61100482602f43df25cf9ed76306fa69eed6947801ff4a3461fb4f2dbd36895ee15dc75067d08779de9134095e3cf9f18b423763be28c5d0d3dd688a00f8a1ae601143109f4f2b52c8bda6f6f7a0267c4df300d87f11981ed08a0cadac6d960f9888988bff21a8b966571b26853d3304bc6d9982c8f4d2dd3b438e3b368f1ca0cba70524a9fc61b3368855ed3138883f695b331e3f7457978ed6b57becac542f713a5b374b2fff633a333c344c4224c698033e4a77c75547f0aa6f1354c44fcf9da6f506eb893df955a79be066cb808f9a0d7719f2f77c4ac7db723e6edb3ef4aad0cc29f11d822dc95b5df50aebdad2c9f7236b42762cb7e723e6c59cb5e1bee8a901aee3ae023cfcf3059afbb66a617e61863a6f8fdfb702ee242ebd7ba41a41de0bfb701ff35ec07b4fb033cc6c83d204a29e503e49c73ce074c4a29a5f40134155f03798dd7ececb44ddbbc5e38385005552dcc59c176b6a6e2f77b63221137b6e1d847069176c8f8f5803ebaab10caca7a7a28abd68a736419f691aaf529cb3ffee8d3cb9e68aadc95b25ee74a72e38e165142b14b6d021fa44f358ee26ef20340f5d1510134f50691a6361169224d6da2da80341a62246f11a34cbd238415a39e3f5996f4768e194b4d970d9ffcc48f188e589f662dbd3497a02c9ea95f8bdc4f31680b9f4a66ce5a83b0290aec7c0d65ab938e3ef5663a93b65a13cb9f0b73dc54a7e6dc033a5531c45962fb5f579a3198e907fceda03dd91f6d66dfb096c91c67a2b75e0cfd2933757234d00e15a8c6c950125822f5319792ea6437e6cac94cc94d013a79bd6a70d80d5e131e9e1a9a9c816de83c7acb3ce3368a024be9086c76db5d6218438285f493691a8fa3a4009dbc5e1c06c5f326b903ed845c2026219796595acfa55fb2b4fc435d3ab6030b5fb31125657b7dc23e291af8dc6cfefc1438637e376126ef0e986dbc0c619ce176686f886111e7879eca5633396a8921faae44802ce30546879c96cabfed2161b3e881785c31be5012393e0ca9482c7ba53c694ea6be06391f2a8700b961d00e16856a722a3919d16b91e381e6a8e2a2948fc4a230a5f7c341fea4da7c947ea146951a50e6c570ff425950401743f5a27d2700191bfd6ee600bc18ecdf479973c7d2e26444906369b13c01422c77fbadd969c6b4d7a5ec47937291850ce389e3aca30b97b85c9009dc89f33d1ca4dcaecc91def870883fb91d3a539f536ed729e56a5028d0dba338ff95227e3bc43cf1e36a5028d4edc2d7084b82858f71356ac6b02758f8f282b2782e578038f4fb08b46361f6acd229a36359e53dcc638ca116128cd76cd85ea33e36f73bb86a1e377cf7bac830be7b4f5e36bca02a378558be7bae95d1776f875311fdfb6cd4f23152be83c999311f89507ecfd2bad8de385d25b135e0950ac3de63c971e7e3724517e624bee22bcbb2158e096bb512fdfc274ae132255127eaa85c152d496cc516b6c59b68136da24d07da11e50d49ccc951b9a1fc5a0271d021e12c71e1bc7815283f37aedc4424d2b49060e0d015e1ae8e9a5052abbe5021e170714864a564bff14754a9542e8ab66d307be23d3d2ad766bfeec45faf0f8769a03c2f1235cb8fdbc317ddf75c267e1a8e3b68e23c3cd6da4f5eb944ec872e91cf8f2e119a6701edb8a92d13dfd951b95c6889bbdca572b7ecd795b88eeba85c2dfbf5242a9cb7bca572b315249ee3392a17cb94c542853bcb76b229cfc2c970cfc2d9e8ed35bbad5c229f0f5d22f6472c97ae42ae9aedf58fabbcc877b8f93564561195361c728d8ef88ddfbc78f1026553b9d4553d3d3d2f3c88af1a7b189c0c7d189c8d56b973c7e572c170d2af17894452b93207070787d44a5a47a7a525368bfbd935202cb41ce99b1b158c36d942161e0efd3504e955af546eb37ae66f44e0ab5f342f080bcfc58606d2344d939bfe0d2c9bca8539e512f93c57ef7b26cada38eee16793c3a84a668961931b38c8c3339f46afb0bc0721ecd3e706feb88140601096efde93fc813783268138f42739437edfbd1efbca3c3a6eea6f1285fc1e026f066d0271e8b749422e37f573bd254f490e30dd01b20c2a9d8e669096a4fc7bf962b27f3fb594bb92e59d4f306ef6cc9e939d2aee64be5e295794fd4e263b3b4d346ef2f0d050a6201e99a944898ece928d9b2e574eb9299943c2e5cc9c24b3d5a2ffc1b6948b92e9ca51a09d9d2e398136611e993718136ea8f870130787ded024700655411c6e9254120ec4c1512c94057120b5dcd46ff3e7c3c968ff892a22ee1f27b3127acd391b9d21cb0531b91a8ff75315558558300907bf48382c2dca626971a416a995fb41b308889b36d30664b91a7309426a6a86586eb226eb3381d04c9a205d5aad503819ed51b81c72b9585aa4252026f4e5261d47511daa439b70db0531d9b20fe1ce6a29b886cc117378c32f4f993fa66aaaee96e9ea49e84988933d3d2957cbf24a27224ebe526e96e5954d5438c9f3d952e41297743159e1e44ecaadd9af4cd26a2961e1a48e4ecaa579f2c838d64132e2644e4eca9d561cb9b9a1e205277170e45cc21016ab080c4eda682b5bca8d795ed00e880969890dc1ea9595c8fd1da90ab987e4570659ad849038595393723d7bcb1512480b2769244d0d35703274b4d15586c760e1d3e894db35c81a38a992aa940bb34fd50e5dd96003177b5c8ad833ffc576a99336f56bb407f7d017465fd409f654c4c9404c9dcce9fe104a2821c445c457971a4402d7c07be5497bb219e79befbd524634f05ef9617884833728dc7c14181be4de0caa0371e8874f27338275302fc77ef75c289fc119dbbf9ae9bfa73a7046c8456ac1191ba6372ff814a2e80b047a2e08cbc2f98f66c6197df161868d469cff0b49310cf7bc80b1bde0fc6144c8aa353535305ebce064b07fa1c98dbb9e210d54ed7409c4a44bf759d57dc1d59099629624e47e1289f36f218283033c43b4f8d7c0d9688e48fd78897c5ecb2e7d394ae309b9e00c96d6772157eeff5c1a30f1663661693dc9fd180639c9fd11b3b4727f0d9ff92a24ada55f88f814b65b6818f2abf2cda0af1861703062c0e0fea1bc3c2f380394c5c3a1bfad0ad4935be30161e1b9f477340cb99fb46345e747e7fbcfa7357032d80756b6b4b470a39127c91da849ee1a766c98df2f6ad85e9fe09b4f8337cb36dc70032743a46299d21bea7332492cfc0e442f27b3f3380cc4b365d9d9a793d20b004e66e3348e8593d134eec596027332d9c7fb19817d0d001b8c4f09ac54d130b783c41b57e1cb202692a74f6f4a22f5b1aa8151bedcc45c8dce98122400620ccfb29f497e00b81d2a04316953bf00389989413b300f80f3c19774214808f2fcd98120fbbf92fc01703b94b096df4267a558a6d18d72212a5289d4296d0a5f0e9ff910c3dc2710c9f6883e640fe8634a288519b41783dbb46eeb2a28d2e852f61f7cc34dfe1cc65fdddddddffd6ff4d0a8979a9a733ed89c610674c9ff86a332f04cfe8e61f78fad219e8b13a958be5b71f26700c534bae4cd007fe9a3b5f02a954a9593ea627ed147d9ddbb9f10bb5f60be146dad0f451fc35d9c2f7bbe1e6494f24697e464804f5c257eb2beb2ff83331e11701c3221bbc317f3ea1350881ea2883e511566eb372773440a727a229413a74f54f4e919414795fd210f64620722e9d3abc2084ef6ef608ec326d95bd9fd677cdf9f892463b87b095184fc91cb3b72933facf535b5d05e8c2782281299b016785ae47e5ce4bea41d1ecc3247c87fd2267709ec6be520deaa75b4a700ebb163fc1d32c37f7ec50e425e9f48f15f26f9c3fa025f72200db4ee07b1ad436cb4a25a035b6960e1c71c27e6bb6b0578a6f95acdc9d9c3bcd8dcfdb56dcf39bf7147ffe6d0a549310c7632580a61b4c8c94028ca14e66bb52fcf34dfdf39193f59c8e157f1bbbb7bcee1604091dffb16b9b3dd4b9e73ce79237e71828d78c6480eecb39f3192233ef63398112464ee6ec874cea7d115a64b737ea581eda7e34ecf506f506d509bb00f85097844cc5da539a718c445ad961819420674a9f2fc8f46b66974a906d661a5817ddfbd54a1bd185dc6cad88befc26c0366d06bbeb9f69e64cc7e7347c8704f9f93f1a717e6e7a899fa333d428ff2332adfc348f62cdfd994c672b323b4522a97250b455ca9d065c149d5fbcaf0822ca852598d2ba572392657d049852e482755ef0c2b789093aa35b69b381d805904334685682ba0e814da8056248d566560572067848d7ff7e5a7d15ae76ee28844d10ad115ade0360ec5739be70203fb522fd5491ab7e1e0e352b08de40f95583d212735d303a49342f91992ff8b261cc149b1c4800727d5c348f624ffacc695c2aea04a7516a34cd02568086870319930dac26a31b3f88945c69e9601be668ecf569f561efb591f7b1596d165b92af73d53773349c630ba22bab14bd8cf253d72629b30c9d8d71858ece14be3a6bb7332dc6b5bee260e7cd184e51c15aaa14bca51677832f6356424abb5d6d8c9c543d17013f6623a634f87bc18fa9854012d92b10d3040e6b61b0630d17845cd019613bbcaa99d6c9639929ca681b036109abc65ff66e2a1b0d591ec4f40a14462899f9b74681486a1ebe18c911cdc4b0e5b3749a83db96dd3435a486377bbab0ca7604751a5b0ad823d5daa3eb0af4b8e27ee74c8525aa86380dcd7a54cf25cfc3df7ed0c757474746a1ccbe91ed0c78cb4a5bd18dda69337ed81c05ec33ce867f433cc43f4187ea9d18fbae1bcafba49c6d67495aa868a585e6b9aecb70742d37ed33009bed48d8b236bb55e4582f3453ed62a1556d1e8d8b2214565b6404fa38990c58b09bd945864299990a544820d58054ff90a5de8c473812b16a36038c27114dc7153cd68f46aec48d6c825208c63f4f0b5e468542be8278cad56b57634fa6fbdbc68b55a3b1aa94a2f30524a88d1ac407876ecd3d4624b246b244b4ad9fa01b6301d8ec340a05779d852e91882dbd969a99ebc0961d8e252a4900b771cd5b55af95ed36f04097eef34cdf6929493b39333ea5e42ad02a98c809ee5d2fbdc645f74b9fbb9da88fb948b83c33f7eb47cf63f48bfc5245d8a3aa3fb522aa87158f6dce7c89ecb1ee21cdb732bb793349d5c856eefc08c5e76e4836e0760e8b7eb2a3725e9134827ca557dc90b53b246caff6cf20929a1c8524691a59c22cb4cea7cfe65204f58fba107c1d48b4ef26429751e868ac4a901cb9a4ab296056b302ef62f6ef6a3cb52abb52ff5e2be9428c5aa71947cc9236308c7158df38040ce03721ed077a38d2341f7fff8f3f87cfcf7b924887f78299dc6b1d58a49e00c9112597ebca28a28ce90bb9abba824cbf75596524a297f6e2495e7fea5e4c71b476dcf611edc6b4fb18649283cb4df3009e5a57e05e5262165b491358e729e67922f57b08a73280fba52880b9e4b8dcab25db48935926e550425c81add2677044945e3de7e734684de3e0c6192ca7fbd5e034a41113df63f583e43a97159511ee55554fef33e521c26a97c3e07f61f1155c11a9e6159b944b60f5dd1af685f3f87f615cf1851f9198a49a1e73eaec857c139b417e1990d934298f4437cee81f0fffce7fd3599a27dcb8e24e876de8219e576d1e6e578831373b6e7fe87f61fec335091ac462b6d35dc95b706fbdc8070b491ef485ae526f9b5dad1975e3a18995b722fbf57cdea1b99c92a677dfa037bedf35c4cd225ee4a964e965f5d593e96691b4e96ff913692469dd8ea9294f2e1aa4f4ebc189837d883fae81e90ce68025bc5cecf273c40ee76c5e8c4c5d9a879fa6717898b844562941bc3255df2252f26cbf4bde332975b25611fe912c510e773c88dfb29d481ae23f621deb2842db91bde748966d8f0c66bb576d4165bb54cc243d20f49c3203c97e811cf1cba749233fa9bff2015cf25c62fd56edbd58226bd2da190186b1d8de0fb9e3d5fd582846d80fc3286d560ab9fd80aabc156f3d6bed683e4b85c5b3fd121c8628a28a068173413bd04d4620b2e8e141902834020f00793265008056674a855c9ac710263cd1a04f196901e20bfd7a8121ceec5688d86a64210bc89ae51d023c80ec790dd6116b273195a911d3e21fb4788bb51900feeecc8896d529960b8ab48269e69dcbd960e10de2db764084752c24b731fc181b53bb0f07b83520a71e7dd6d6c947446a48138f8bf7fb5ce2e6c21fb532d647f0999647fed6221fbbb0d18320d9cd13bdbbf5483b60f06e2c363fb0f7e241edae6d985e394a1f61538dc3a2d79ca2cb7bc9ee18dbbe38ef379b7dcbd935d4e0d461769a67fc409839d4fdfb3a4b93588e12d77dcc19a0aa100b60a2da8b229bf2ab2a02467f2e13ff80f460861acd2238cf86489609eb96fb8c5479a2689902f23d3342dab15c3b6b72ec12a7bbe48596bad3034ba74eaa00a87924971ec1c5d1ab5bc0e2bcaf1f2ca1923e76814076ef4d0fd3a5031d53d26b939b063be0963a94f8e7b72371022835190190a542619c6e0c5c8ffd7a1df8a1e0825a4c2a2baa106d2c6dd60430d2d24182f462c2b2aa2500a8a057db8ad061b327def2e90ef8b372f4a0d182042650356c88be9d6691fd23f2bd05e8cce57d9abc70aa3782e3c782e3d80476ad6e8166ced24f6e6d5257742e34b6c29bdfe8352ec34aefae1347d6aec15deb809c3d055d969faf4fa759b8ac1c697de3a14fb8f2eb9d3b82a07b683372a9cd699b6b11bc9a1fdf66f267b0d63f026c32428e4b9608fbdd5e0e37c80d866a343c630fc1f519522c1a78ca852343abe23d03c51a3332cf25cfc00b9e2c0562d58f81e7d451b53ad72bce1a81684f005e6e505d6382a7e1e3eac819109ed23d75c68d9f6360ec7fc06f2846579fbf23b7eef382a63e59457f9e7a8178f02fa88425ef30277ad2b16057f7057d2522ef7d9dd60add6c27675a5e6c9b15f39764f8e2aad6b3c7efc9a6871af9aa65d11ba7254c2c2d7beffa522d79847ffd692873f87b97fa9ffbc7a63db3c53c51c0a6ce5d8583c9718db26b6ab5df1e3fd20fb20d05b4cfad4386a7e842d47d56f979ba2ed1a58a3c3139fc7c8031e0e8a5152edb29dcddf8d38d207e3704cfa60d207937ee0b8cfcf6839b6ef6f3c9319f9bcc6ddf9dba58ff5b72bc7ef2ce2b72bb61639f61639361739b62b46eee7e7e07ee21923283fe3cf3d0aceb13dc533eddfff328d86f9e5bee99c1c7febde05e5b68933de681f7f0847d178128eaa1f3bb81a71387ed09f9a90de71d5aba779dac5aa69574db682b147f5d175747393e76bf189d114368a3c2714ae036bdce40f7a203e9f074599c9d14b795fbc15dae4e48963a63d10fe9a066fe078adf9f2e65560fc45da58158a616b2e91555a8e827034b22ab8b33636b089c438b6aff3a64997e6e7e16b9feb0fb99a7b84ca1f417f385c59952a6b711b8d6a15d2a509218459a438b2624d9436da839e46cb9ea99adf4d26f284a0ef66cc1ecbb0e791fdb625d1a5f9d885aaada787ca271276c37ecdafd5daf93a8204b3f856beb52f3109b68ea3fac555ec47a3cf35225fdb3e4f2f8e0ffef163f4dcffc0de6f70f27caa228218478649f03f1193e0e77370ff19610c718e8a6167615f4547453cb3d1e883a7eb740066fb9adfd10847191cfe4cd810bcce732e91e76422cfe9823c330e23a117f28495aff214a6e6cb2ba58d8d8d8d8d8dec995fabb5a3d17fa9f4f2227b7a1cf5522a9a55cdbcd1c93c8e7aa9579e2a58b26ae64797cf6a475f124597e83b985c3f836e3e0fc23c40fff90c7f3ecf43fb8849f4df5b7a757469fee70ee1a6f9f1c61f76d2384ada3cd3fc195dcf34abc5dd5c55185d2af3fd562e9ecb943dcf85653b69236d66603bd9237b8e20c9073dca43ce8823503eebc95395a7e6d788cac5e1f8c70fec3fffa37e96923d5eabb529df8d32c6a161108e4f935b0c3294ef9f8ffc19ec3f2f718eac42ce081e605ef91f60caa1ec7113922ecd5fb9ad08fdf3fe40647149972e69e55f8ab4827f78a9d9848d3b2c38bae6b3b61be020ad7c24adf8afe01cda831e84679ce5a6f9dafb48d168af71d47c5f394aa39942d0fbe700bde319232b3f131f84e7afe01ca0d7f08c3f08fbca4d536e11fae779c4073d109fcf300fffcfd36815912a6b2198a58dc4991f59b126dac456c4893a314774bb5893e7873a6993a58da35eea0627cb9c3cb1ba7115db60d47ce5a85eb9697eadd68e46ffa5d2cb4baff2f4559e352c9b1b9c9c3c5bf62fcc5de328d0cfef95a33e3fbf598eda7e663fbf731c557fce396570fcc0be6acffd8fec37d07f6811ed73a7ca4df3eb4d9e8fe1e4f9192bcfd7eefc6d95e773773ee8d2e4d903ba2ff5b92f359bb0f246da7469ce9f416c7f276df27cd8a44ffd1eab5ca8146e1466492b158d0c000000006314002030100c0945c3f1702c8e0439f31d14800d80aa4880641cc95912530819630c21c40000000000000024610000c0b1a389590ae6f3835f47f1a61b7d2147dda83d2845a3f34651aeac01b1ac6d338f8106b2ffa6b89195c169e0579edd123b587cb2a1e6adb9ef04b7cd7cd87762bc5ea052546615101c91e7160b97e039ea9146bbe9288b64a77f9ee0123a481db4dffb86eb06310917e58409180a1b8e9287a0c32dc8ee3c7a3d4d00eefe280214d6debe3657cd2df7640a15f7ea0d4eb52e2c58b17f7366aa7cafa37200873d6e8ec75926b4f593658a3caf78b7c1c87b86fc3371df210b46d3b53ff79836cef3512eb1d6d42a4b208ca479c5b0333a134d2cebcd6048bb1d67410c579c4524c8843b4523ccfa99d18f736a36484f37d1fed8106e76ab72d913b4701d667703d433390010bef9475bda1cd65dbdc6340195ad3a8db5ef96128d07ba9448e9f94cd3c9281a20e72fc6769c674cc84c44784a72686a26ae500186f698b45cf3d6271c7fde840a69684c41e2afa3a015d3ade0e1b2a69a83a47b633902254c9f4c755e8ecebcf66bc4b4b842014ad3b93967350263d3fb1449ede1a8db237d9d66078e6a916cbce9c7da0b51655a9833d48bb1af313a3a59ea771331c73d027e657384f5bec209fce69790b1db3593a99135757ea9f35ed6217d64ef0322378fd6853662598a797ad6eee99f3d7244e891063dd9efa5e6c804a6b642c09bf7a8c043784ae64d36c1122153a184cc77200a335c665d1d92d0a002b7d132a9a4bd40c97eacb3b08f26285cebbbf9a4d5886194181714c9887d1eaee36113274ff3d5e117ca0e4c2e6fd3378e27009a927f4c9dd23c936ffcf719aee7c7fc9534d40ac8efea98098d90d84c939f0e7263dc26f69450653718145f376aba475d274b006a6dd600cc9127287926bbe9ea85a459fcb96c34c70c25bcfc638c74d54f5c01d233456f78e6e747b18741ae241121a82ec83e00e6137f15fe213898af1f559593b76cbaaeb7f920349d6e6e692fa0b6b076539c899b420ef9add52e967ec373e3b10b29407a432972bd58d78a6a88404949a473d5020cf4526db7c5048cf04c3b0938e0dbdaab88761773c186a02155a5660f04b7fd0751e04847ba38fe32ca87f495b64d364d0fb1314c8b7795269dc64d35bb7fb05e7f1fea363fd859ffd702e310a7c50860218b537e1b4b0ecfc4d2a410d62914981642732c55ee636ca105ee2ccd7af6e5fbd4417d40f7e1e136147818d127e9ab442917c3431601e8e83270188f29dc884b9855f40999ac1ff16b0a9913b5eafe98a6ef2b3448044ae8478a94955b38eb5deeb54b07e7b9ebb0ba84ca382968c258f8b09c178414b1993f80546be530a6dcf10f45aee494750b8cdafe2b9a0e9dd5bac525ab686a21bd822972e3e241146dc249b267cb267d17e735d08a8c9340b941c7d8de3c4aee6235947ba318cf70b8b8504513e52c64e463f295c7e936951829399aa4c1cd2025dba1164c98f64d8a43cf2eabc7619107a63319eeac39b0053d7fdf78d6cb4c4511f79d2f8e43d50ce204c610ee75e1aedd4843aea7aabe82d85f93f8f8543f31904510d092ed264487002fa8da4378df24d68868eb4e3f0c56c643abb763790509588b6ae9689c9bc8c28f0cb5c09eccf94dd7e0651ea77bc140a5b4296d7bfda03b01b646712b83c7b2908087d829cd4281c22853a809ee31523721d1b77b23ab23ff5f294e25bc0433afbfccf489228c31481f43ac4a53be518d20d7fd36ae351a7a7f06b71e906933c29c348c1804e47250b6b1b7151364f7502b07ecf38c7dae14be6729e96c4c87e13cd27b011f631db59992417639dc85c23de19528094ef9c37d8796083cbdedbbc008c35cec3440df4ea9769a8617f761700e8e518ba02106a60f0a57aafad52afabd12bd1ec34a2544d225b0cf50f9dddeca59d984cdbd186360578156192e989a0fce0d4a54adca1ad954889bb6d9e88d7393c7b44556ef13a4a0c10734451d016008394c2720745163cd0b6817473e0cdff401aa390112928c619506cebd734e8ca5cff8545bc1d872e8e462b6af783e113ed761c1ad4bdb220ef58747d3bf9d66ec760c0ec32e934be37f3ffd3e0f38c1f8bb4293ab00e15b9811d04cbe97f52d43a9f80ee1d6184de82bbd68310f975cc9dda2939ce887aa8707bf2f0356ec381333ce644e72563025d3441914ce85f9323797c8e4d501689941c440152e31d6b37c616e8d14b0de9648a82b2df1a03f273fa417c5f280a9f2917c63604d2f606396535c032a47fa90e69db59d79470f7aefaeb073787b73a3653182eaffa3db5198cc2d8308fe9c6c5d38a07fc0e6895fd44b207c58c658a8868e88512f3d8efbb969aeda6d221ab06a6cb474541f8719a00fcd52c41d2f88794029b6346a70377f3152b61ea71d22b0c5d215e83b31c17372b53b462789e53ce2f9b3c4a79d7f014eb14477a480edad0ae4730c5628389f69dfa4564616b91d689f27035df9c6703cc35c8c98ff4723d2654d7b09f609226d8fc5cd328a03f1361ae915f341c0c9d3f9124f05f3e3440f1fefbf456142823f747d694306155cddbd910d1bcb0703060cc8303b000aa3674322700072ad6300fc43ed8e85cd1c589027c6c90fb824844206421a7310e18512d2a841d238238972c995d6d89304c2e93a8e6fe2a70c25a50aa249bb4af2f31d4684a5b178661f0674789cabdf73fbf16addb9f4690055e2d8e22e32c785c4a1916d70b4ebc64fd4217c77fd8451adf983e04c8ba80d61d8a9e4b88ff9de17e882bd57ee99aaf34a5675e15ae9b2ab7e5905a47464c448a0b016b07a0441102a83d30556d48dd248dc88151409a234ea644ecfebc7216c189dc7b3379269ece99e5f56bb6fdfa0de7f051828da4c96887e7384ba35044c10db9031cee4ba17501459ac95f20c4212bcdc7cf10392e1c6960768862beb3a4b6b8910a6bbfea00ca43e9083fd881e0c7ceeccc1f89c6122e8453ef7b99c82657d6ce123119ddd42ed34a0c22bebd569a7520cd4beb94454ddd981df163249fd6b8c67dfa2d615f784f0988bed73f5bca24a262e64f067b3acc2a8ba816e03393ce888d5833d26b5f1151fb6acfb8c717e20c6ee270857f58e13d87ec7e4938866f81982a46d20f07a281dd61628572d65f3d229332c701bbaf7070f21f197190b36d018ee378e0909b057ff0703792e736bbb11c6022af19976be46f17cdace96011c0a59ec22eb8ac70e31c6754ac049825bd50daf30231000fe81237d9ec1b3886fbc514c8d5ed5fde4fe9132f2ee65734779e8e2784670cc97d47401ae2382e7548fbcfb89713264adbfe631c82c7a04f236963e070641d7d5388c015b7fae0650ef9c6a36b2ccc3cd79475763731e417ad22769437c728d78b8502b6b3928dd127a9db1a4d0552a2171cdce5fb341660ee19333a6780d62495aa0876cce5a2bc4c6a89458122d3121800bfbaf0b66d6d8901ae16cebb9072c50a9418310ff386e139d3c1bc5c018e8c23e4cf0b3b35c9a62e10bd9481f9a83fde6d550ac3f4bf39f550e5d96a8783dab334e395303bcc37c03513913f3c72d31efa64668759a03f5be1288cc4f6e8f82d2557d79236a733af281925d476fed9d3c7fbd91f7c6d9f826c08745c620e9e0c17bd990711ad094741b48ebddd6ba4c583a003a6b155621010bfef29a9fe266eee2d55466080d2ef382275fdf548edf371a7004d7dd5101e082004efda81cf88cbb96ccfde551f98d8bac9d8e2236122a6deb14731d5b0be5f9be5ea5b350d8e46cc41e542d2bd13a546d2d88957eb0dfa6860f6db30745e38618873ca26f485a74e0944db34c1c4edf294ac56993e565303568018f6af7287073a9cdcf67d07f20a2c1357c63ffc0e8815dac9fadcd6024cbea1e151958f4effeff8f28b6ee59c14a59172e22810471630dac5b4fdd236813f4b0f165019d8760ac5e3d8a81802ea25bf20268325c8ca50071fa3c998a9b4eb4c3dcf7e2941ed0885092dfd648876afdb26c5ac348a7c69755c0fc9ede2a8d75b3c29d97d628d212227c56054ab9303a0553adeaebbb7b8d3e2103d75bd80161ad8f1e571d2977433e71afdefb7a562c202021c2a3e92fe91e9c5df80e0f4ed03b3ab122390de11d450c8fd5dc6b89ad638a21210244bcf17dbdf1ce865765edede602354985ede6e57a3c3d3a28f074e751f51f8f6dc8a72c414dde0c9363480b5e3b035d59e11ec4005908b37ce73f6388a404cb3161c7e0bc360cb2c27af9e2c1996e1a64f2d2c97248baa9a1ba250b51a05ec3caeeca30e64fe7cf951876dde16700b6b88b7ac41c672c807e7dfa5c3e54e7a6b8feecf71bc323916614d82e2d1b8de44ae46b1aaaa130af1bf4d369bcdf47f0786bb23daabcb8e517b1c84f889827a4b1cd5460e74dc84cdb0b6427dc440f55fa75e8a3a209465cdf2a4dfd9c5d8e11281913b35c2c60a39ed3c95000ce8bcf7eda568a385d79c907878f84d1c5095392f2e0298cb5d0921cb0ea491c70a537876710a0dd8b4b2ec51b77db983be1a88292803afbbfe58da27aa5031621814593adace7533195f83222e993452fa499faa373729c9d77f4d3aa03e1b8f0347988199b84cc37855402070da12331c5f4929d15b806cca412d97413fc2c184aca91809612412bd8652525210029461d7243c8048f6e0e1ae06a5bb03efa0da6d69375670c45d97aa91b5ab0316845542134b96ff34aa21cd6eba5fe791b338e10c2872d1735c981f6837203ed356885fa8b3603225a20e76da32e436c853a8cf1bfd45820678c1737028d9074fb010d3366eab17d207635dcd2049314974df221e3befb44f087208bf469b1269f9815e67bab0c5f3f64562bda0d5371c94d02a6dc327f2877515dc0c2f2ed457ff051e3ab63f326007c90bd590a52c4d0aeed3812f3704b2ada8d01a76c8d21b37c5f1f8218a2ef981b4e88280e82e954ca050dc19846b1653889ede699ec472c5448241045381af81bce248b52e348208d42edb828a254776bc1971ab0c0b7aae1fda8d0095ec8196d66829fe1d61200115adc868aae6115d8bbf3b4baa691056fe7987a09b1b81cbc739b5564471fe40d437feaf6d690e5871697145d9357b133d298197bac65deec934d8119da8a2650224fa84a812ea35e7c6a8aefa6c4a99620aafd8755244ad2488a7cf03b54201015b4775ef3c0dc93b8dca490f0cc00a4cf45e8b348212b05ad4bfde3f9de4db3a09deac06410acf9c4e7c1c58d332026790d79dda9b982eee3db4ddec4252e3208e566105502069e24ee24bb6b85c77a742d8a5d64884c06acb5526bd943767e77534debcfea916151acdd9c9bbcad35ceea1fd73ae8dc0a3289f57d95dc0b988508c37b55ce2f32a0665ec90a009616ab0c4cbaafbe01d1a3b0ccbf543263e89fc908989b424132ac79db38ce4d44a570771c1ec4031324838c7048ae035084e24686b0772ca5beeb188aa7800dfdef468635b7398ec98a10fb4502b50311bb57c0cc7789446d920ba90727f4837e41ae8264980293e2a589d5de5278093fec9894174ed67507a044d32641325000e2b5dacc64d8ffb0f7990cfdc9ab1be34424c9583aa4bb8a45e2b2c1d4c75dbca797a5c20e3eb3eb763102413bb574ba9ecac9dd595f58ed8c914dd710b408e7e9ffcb139690a884f35d1c2833fba95f297b17c9311ee384f89dc9ad0d99cb396793c0aadb28f16d24ea1872da9ae587a2a4c151f3dae8cab0b12a1c64a3fa3c2658346d0b628ecc8766dc220f8c720c828be5a9eddc62e9b7192d45572a771d8268ee1d4af1008bcaa3caedd83aa0fc94c293b8f7cf210102fa713943a7f0fdb9b7c3fb1cfe5e8aca3ca47a09c5ddd5da889a31d8b695ec9c06f00a431810932e6268c8fd2dbd50bc947a76086968af865245b3cbfb41d010943ca8eec06d91590f7a24c4c1c17221cb6d40ca61f5992773a50cbf7b3ef70519ae2801802771411cbe7d297350e011c2e4134a3e329ae8a2accbac00dc838e1c63b941bb71d800f29ab7633bced1bd7960b2f088df1f2268b7ef452c6cbd712d2bd35616adcecc3168410434fa8ad065deb4ac1971aa33d00e5282108bfeea7775a2c2e32c8ae8cb8c097ab20423631bf80468b7f033733f027125f6eb8f75945e99df7a5878e0c0d73228ab5d086b9c08e679302cf63b6880047f5bf6c7590504ad3b11dc1d9fa5d78aa0b608292a50ab7a86a9ac509c343c37d985322ebe5e7f1229cb8dc793f146548114a6f45214e6d594b32892ea59191cf45f94a0cefa3dbfcff349a69b6c7a799fd1e2f1a622da649b2e0e0b60edb78bf7ac581b1cabf2a077ec9201d19b3f2119d0f47b0bcbc1a3fc4d7a59318861e99c0fda4f502d4039afea4ef47e71d79fce39d3c83337aff547356d410edc5d16bd749654aeb96f7bc442ebd3b25543f397dff1151c92101e3a81853053ef54a8d1309bda9bc036be00f033527f2f89e924dee03f1bd893e4aa4bcdec549fcd8cbe9bbb9f4d94e1ec27b0436fc20511dbd7738f061c66eaa0ad4072e2208c80044c052491fb2d601500f8bc9fe8b3099821689f6af7349bc3e8fc605b1b0ccc5a0c4f0c484d29adce90199cc1848689a726460496fbe322156ce0d65b6fa8977a10a95eab0d6f6e7f9364915e844f35e2e4f6dc9ad894511be66c55ca42e63e8d273f6a2ab89b4d2d2e01880e16c9e2c273d8bcec4f9187bd1bce137eea0f60780bd6699e30075fc5295f39381f9e7401bc6754a2c7b81ba896518fe6ad277bc69663a0908c4a5b8cfa8927e80a3aff9f3ea3114fef6997a62b3b0b6b4b86b16a88500d2b796c66be8ef6a74ad570f7e70baf1295b9e8bfc9e1ed1a2e0c23e02c5c9aa7b071a57868ea914bb972c14ec8856b4ba4f0ce50b7dd94067d8fd9864dee4ef741b6933b0fcd2ec310db126d7d8330ac952f2aa4e334ae60ad09bfd77bdc8314591cc27cfe93c3d6393f9d8c624742e7d64dd65721db706e2fc942eb924c63e65eba8559bbc6a97e36d5680de6bbb5645f5a75e28fb139a024b944707ee78cd1c46495b7066f9a6a8f3d84550a368ce870630983ff6ad2d1792e8b320fd737b194391438464a56ef2b2724837d5fae88533ff9fc7d0d6b539326599ea9110775202eff89dce052ed95a2d97822411ff63883c72e7141a8c9dd36931becee041da5bab8d2f4686e8e546ddb44bc74a854181262de30cd894345d26223a4d4d12afcd037b4ad3d356b119342299aba981ed67bec5f0f4ae000048976067887fefabdc4b313cf48cf96cd0929aeeca7b50f9a158b2e10c4a9eb574eab1fa8b4680beffc243d5e495d2e9b0d8ad6a340331278f35bc733279ec64b772d8667544614d5190b700191cb5ee4742e0d103a81c4ddfe9b82aeaa73ee1cea1c8bf94655ea7fde1e011c8c762649bd25e50fef96a0109525e5b01a091699e38d2cedc3d8b528b1d398017c74c3460cd0a5f517f0b452461ae03559d832e7408a8740358ccda21ee21e24261c135c1344381e83f031c1c2c670db17d551f6023ac4967065d578ca2d8e9b407187d8287c16429cf0830abf2c66c360249dba3e2303477ed9043deedf02bb886db8f327ff261bc83efa610200658fcba0a15594be9712d087bb202225444980738049358dc12332460b1d29098018fde60507d247d27d4f741e0253cb5b344c47378d37e05f1189a5acc4ad84e3b8aa5590de7be84b9f4bc0853ba5c07a3ac766c7697c1a627da7964fcb698453dc8efca4e094ccc9e0e4c853a1716203acb15859de15ccbcb770e2b66f4e15ab63fff80acc8da0189b904d14a8a66a3423fac576c3964bd89a246ecf54ba3804dcacbb90abf18704e866ec7a97a3595a00f05e25c15147240800b9aae0edefafabdb25e029ff17c3b334ab98a00a221f4d29b0a76263ac255e915327c040c39069762d9c95888f3a8e449fb0f093056087e99af0adfe21f097a7f57250acae1c5bf42d79a23e0ce7a6e87e89bec1365ebc5c6cb3fd8a366e08acb59b2f7cd15a7f6bb19ec4120509845d77c106f0bf1e217b261e6b65e39e1ba5cdacd7609e11e479dd3ca50f2c775893f76435557f42232c4f8e52146b3559b02dae4a1797a1a7274b2a519c2421a1b3457c6dafb927c442cb04392658d1b2e6d7172fc0d41bd7e7a30c3d447bac7c60f01e90fe818d6cc6bb631dc87ab6c204b7e47ba002514a0e901cc71812f44c253883329f897093458af1d32de1b80fe104bcc2f1307275063780fb8f53d9c670f57d2c8572584429430a3a00bb99c886fbd5fe7399b7bdf4e826edc46aaabb221634ba1fdcf59365d202f3fb4edc4ee58e116406ed02b215a179605c93a6346214f811f8d5e4a0601a7570625322041b22f0197eabc31689330cab1ecb2e6b1c4b6cf0ca19404b6eac69b424812706ca0a9db229f5b08863efe8682263ed00ec03eaf942611268ddb54f51012dc9ce32f04b7abcf3978324d0939cebdbed8ed461ca151d02c60ed1630fcb410ab8e83a22d5827d59001b122a02ff955e208cdb44f476798b0f9e91e2fbd9b402cfbc09efec0e97e654064885bb7fdf134823c53a4c898ce00c12f1a7a992d40b14d40d8dbe74c9173050df2fcdf46cc5ddfb02b981ae012f897848e8b92bc262ed318c9c64c9a12f3c558712da706ef77bbe09ba201028f8151d2ee5c424978a035721a44d96cf86c0c209a89d49a55cac88a67acdb7e8bbcb2be683d3ef890b3a96e913f5a7312d5798dbbda2d614176e2a574677ab1da5e44097af241b5c59d6da33a7b9b3e1ec9b0df548a32ef44381e67000da36e1edc481dedb2077f9ac725411ac170b6842997aca8452e020ea25a2cbc826daeb95ad78f5fe07d3137a985daf8867fe62fe158c4571f7e4c068a90154f67cb0cdd98d8baf35817851fcf9456bef9fb18b37ab29dd44e740eb4f838af8cfa86c3c6807ea02c3279b5219c5665462f3b351bae3d98bf98bd11687850d0a3f8c7d56ca88ec30e256f14487a0f4e1dbd77f1e6d458b8695ebf0f5e03e627616ef1c8d4c2b4e144cb955427f75cc79bae6f4409351886b052ce169fbe3346a6428c9c4ba026562f870b19c2e539b9b49880809b85323d0d28be20d89e5fcc300dec5cf587680eff0757a90ecb5b4408b969190a2196a6774f8cbb4509865000a9a9d6fb362b0c05be2b76619ad7f423a3aaae2574aee95315af4d26bacd8cf8daefc8ac24671dd6318cb36ad8d7b224e686ed1483bfd0a346af5d821e39f2d6255923204a96127d320d69e8405c965b495e63502559d9e0f6e762378d1ee2f52de5ab6f5f3d9b7d64f7398e557fcc0bd002b5903dd3bad07b9f2fd0bc714926201ee5c9e5551e9da7a4a8c92307adfa25306062ad70a09768b2bfd84c5e32b044d5186e07b12f8f388f69f1ddd73e275603b3900091c8616c56de2733b21908af69e1354ea2a031ad7e6b627f8a39ec0ed1fa05924a46246505c2e965d68eb25dc5d8992034919e9bb099790fcbec2d2693b00a604453bc382682a25c58d06fccbaedd40c1fdf5ccf660e09b5edf2822330ca9e395141f83355bec12b9a80eddc74b30662843bda2c0b5856241a5e995d0b6207c4743e0ec49ffc77138a79a27cabc0c5d38013aaa0516b422e4693333ec48b18cdd460ae839ee8c2cb96d2cefe1cb8782c95791cc752cf5582578915e6eb874201d62dfdb0c97c95ea5001203ac9de4878bc86766a483e2e0cd66a7c597d01f58e985ce32766a655d1c7e20bc48429a9cb80290f5ea9cc7aa1fe60586d578f98b76ba0efd3962d31175bf6aba2bfe6e36e27c85f8d2f04d25e59bff25e2699bb003091b9de5bc84fdfcc82d687d5da0635a6f3c036cdf779edb5cd5703f7291b099bce79dd271db86ca668f09b4452cf356d8f15c26da1db8be9f644554ceb567082bd3d7717c850c4052242d6bca229ac9b2b025012f9647b8cff94e618dc8c02a5554f47fee5bf23994dca8459ad6672a55936374c49e52b7ae28aa2398e0f8fde6949adf3bd89533a0eb6ff81a8d5ddadc8c6b4641d5bb922b7b18a77194b321300e6858100a07c8540762faa040b823dc9ff8466d7b1f3f604d90afaeb57912be23a97a393450c0b0ca55b2d5b8f5df405e2add25fd023755e65239a7dcc65258c1d8518277a15bc426d2e17e82ec226dbbd40e8d2630ba3cda5ced7426937d9adfb51fae52ab17ab510379e12d0d69d5c50db54487f2fc39d518590befe5112b18a3f4db702cd6478f4fc7ab4d36d761e2587626835993c6b107980c0277a7b3ede98130b828405cd269bea02ac77e1d0c1745a800b8b14c665c64d459c40d17ba07437f7fe5b9827a5c2701657ca7479ff540088df24c21460ef10091ee8c5120d36f8746c6f0ab3d675800659457203c3c25921f6a34073f1d6f50706e0284a972008e04344d345f540c75fee1bbb70bc51ae2be4b454fee2472e8064d3a7ef7dac24f4029cb0eaa3e222a6bae085c5971f60ead435759a33f5dbbeb657eed78d521278415e67f9d91243fd4b86bf8538f6048ea68970fb2b8f90d608279844c07eea5236df58b5a38c73800aa01df3f22f06ea3326e19ee3219b6117f1868397e470ec1db66c2512d0a8fef1aeefbf5fec1e9347f751c2f341e50e8f7d5ea929ddb739b18ee85b1f1606271afbce69eb6803cbee91b793295dfebdd26a75d76c473015f4b588302c6cba0de00dc9f79c017ac96e84bf2a097eb21eb658924491f34b71a092d77ef2f1ce942e51946d713e48ad29cf142f99ab0b034c136f7016f619430ec827fd0bcea7aec6f0deb3f401f616c586b060303fb99ebfa3d773db59df4f033f14823b83823dd4a4d1dd2cdd778bed576181d11433408ff12ecdd43328628099e5249e93b0d58228db6212f149a646a9bb04a0f43ceb641510d80e7218b5a67e91cbd83a0110a607f3beb8182a2bdc58ea9cb156a5449c695375e6514296dff52aa8fac3505a888ca092fc332ac2dc28b7a532bcadb00b7796255f8a7449ae1a042e4df4d6a101df347ae0f66ee36c2e197e869f898024b1121f07e516b03e3874cf4312700c52d9d0c030a1a2495ed2611906fa2dfc0a5af275e67e9d0a784e783430c8977173c6bcd407a096acfb754d435352497628f08b13d883a87a670926f89e7bccb03768e48c5663388dc50d5f0566464b842189a81b15d1fd517f4da562bed4ebaf461e79602b99f5260f56a00092bd9f0575e0cc4b496b9c5ed78672f4a62c839b834e204d78000848a6b9b29b422a466c2a27983f3017bd93afe7864e74d9f61efe2c5ace52953f9093b4b6da42a6a5c1e44ceb74f1c2a11e3f30b811f88f936bec29911984ad3d7c7ceb78e98e4fd2d8d609b5dc102fa9cf29990b88f5507aa9bb38baf17e84fa4f32837eae8f6844b909486c7671ae98bf996c72ce120f09f66ef6b00788f92fd4080a43be05bc5f0ded761e373a5df71547f9ea332cd852d2da9ac0c423b01a765fb65d205ffca956084f02bebbe36268f6cf5fb2c7770e9ed1c6ec520291c0b7ab798bb658b920b6175ef84f752a2aaabecbd4183d7bcfe9b074a9a69ff8b566d598f6eb40e343df3a1c68d96d657499b41502e695bd4af20df002c74cbf12ef1fddb48819a8058df217da99569d6c0274273b7cde1683e2b29d280fa9c0f83056d4b83fa45b3e61c9b8ca33607c1391dd125af76f841fab1ce2df791dd7064c64406a27f6c1c6b37c40aa3d737da4613b57b6b119d2b9544a7825f57d9410cc0bf936e1a3675de9b1c3dab9e5640c92ed37043f3018d9567738886d5465764f30eef2afae3a4d242ca1d132887523f25ed6991938862036e8f582cc92772c5cf45a4d33ced8153173dbabb8ace016d4f8af77e3cb2fe1d4537705ff9232e2a51c990e5c7ae3107c1c651b03b0a8153a7c6e24e58bc95e5eb17412d04b921f0b138022bb8820f6f0b7f4ae57d5d1bbb153ad99b93fd2d1c078e2c2658c91972f190ea33fcbfb1cd697737195123cdc5b234b1fe15313ae710f252d4fbd3d95f2950306463eb2024b78ca0fc5941e297bd92f0619baae817276db24f7c5dcfec3a3b57f20e389453b11b96ba4efcf6e386b4eb597e185171d74df0e3b69d45e818409b14509850a3cabbf788875d182dcca566d1f5cde227963fd7c0d6d7dd36ebd7ff6e79cb451dde27b850980ac4972949ca51762e1c0ab8fd1742874f9a83b452bd056ebad75a4198306e3edc9f1434967b8ce07c7520fa767f40503fbc0b3a3126809a841909d0dce87a3fdf4486e50bc11f4c1a165464d68be975e368649cf3400683872ea9a977618efcec937341a2b2c0e9f2d8d636cf6d0d0491baef67ea620d69bc58a899f080469deba7a9630c101c70c7885e300bc2ccf6de2b46e9f7172700c65f9c614e3748684a2326938670fb5105183ae670ee460faaa1a42188c6213277cac4037531d54701066160afb3eb05d2f451c458efaa6b40e338ea5e7cc08811c82a2bd3884673135f11ad5d2bf84fe70e4ecacc3a79d123f6ef057e5504845aac06de495be253be1eb9d54b3c854487b151ed443d2caffeb9bceb3769c271bf97962bfd66e20fc97b2dc066856f17f017c5421c99bb430ba3ce4c10f8e105f92b35baad41a5b838e6602b8173956ebcad17d9cb29bb7064f20346d22233605d9f91030386520d0c5ebdf933be50c419e8437fcdebc0303c9ea35b98e5c14052fd688bdce3afaf4e9c0e51829882049400fb6b601e6f762ff2307c120c0888299522755b576a287468f3afc9cf709dd676e385557588f8242e9bc2f19970c15d14101cefef15df58fbe7bc360f3820d40392034422352d088f095affd3c037d3753cc001d1a0a13907911c249dfae88420b8fe06caa8b3d9cd9e4186afbf85ecd0ae39f78af2a4cb59c5e0b34572fff8ea011327898d2260b25b3f462b34e1a65c5768b6509a1fa067626239b556d3f718840e61d433e738f0a9ea3f1a912b4c86cfd6356c3d1db66e9e223a7270efa20d7f2a9b076cdc133d07ae61b54c20d5a8318af2f40fdcdc6f047910882d3a6491c6e8ccb124428dfa1972f4cedb952f9ff278da06e9da200acdd087c5a38f4c9e2dffc9a8c4d791cd178457b5be6c11657a2855433cb0c7e62a19df60dcce7634f97f4315ec957909b46805e44b39838224a2c3b3d3943916a560d368af0af43b8634c47d47d8f542ebac13166c01e28443bf099cf677c73e70fa9ac47e2eb955e0e79634d221e9c84419a702e18336b0299853c4ee981d4ed7ce71ddc2702fbaa2fd41e4c8461e6b408311b5406f0d93adbd60b78855e7ad3510855ee737f8c4943e32308c4f3a4ca2c73de77b64cad903beb195307c5a327f3919040fb16c29a9bb04f93f0ffa649edbab6213db5408a8095797c2477cc4934e4a20b5b2f1d0022b91194eb648b3be512cfb68b4864952cc998b93f918ee11e87053b4003cb6d2379d0f82c2c05708f7828331641e71d7d618c3390583f24b608e53492fb7ce891ebb70dc841e3baa3c0d95c2f0521001cbe47da51069f5c90ab5cc7a28c4f21e83d0c4871e276c707010f03323290c9c5955ca9ee90e1ac67936bd69c24f2a1028eff80f6ac58d6d62aa21a727207fe8bc2a566451359658902fb5daa76d996d90f120993b82a09f5e501a9443db5cfb156c1bba9f43433d50ba8ecc4a4410f4e90727f98d5332d1bb1933f89e0e1bb66e3ea4118eebb9944189bf7c947932aa6e755c14d754e85c9b1047bbd49b536120cb8161e3698eec0337818876e758fc89a08a9614c10ba7be5965528adc3cf9c6a93f3c9a0726c7c9602fec1a383d8b05082ffd16191df03e7a589b000adf763215768e812001373696b8dd987bf1b0001031926626243477a9c553b87d9c85a7bff1e111ed0356885c4350446c8c607c1bc78b0781c243b8aaea012122fb3b625684bd068b88034ce4c39e489b810f83e0b5a5226a44dcf728ea05e5f90d21248a7859379ec4db2f427554ea88447789b27399f0e22618d8bcc4f02574e4b27c7bd6fa4fb91e951c481056e93f8e122efec59037e3b6cae0faffb3f9a3a53531e768a747cddc5345ac755d917482f3c13d39da4c92dbae3cadb8d8469b43605c6ef99f0e1fc49766f2cd7c5a4ca867f384d8707efc9fffc86ba2093888b5029ee8f3b0b5216abd118be12211a3dc3a17a1e36ee201a74e5d0cc3ae500ef00bedbe0d6749371e0477f870eff3c237f052e8daca6a807499bbb93210c79a10d76876d4177ac55520af78f6a2003300daa95449f3a5a17a09b4fbb334dc032cf9cdac9bb746b3dbf5d4bd275a2e774fd8169a4b927bf192887e1daf58a31b387d99d0d0cb94277c7d68201f4731cba3931ff9ec059b417e23e192e6dcd8837069bf8622b333c62bcde75c1cb38830039ecddab59a5bcc016198f2c0aeb5b0fb00d602cbf64dcbfcc7eb801866fcea0df4d33cb617c65fdd9b94427fae22c8449e18c1d527ae2b3443c5da1e4348d440c4c2a4d17979662b5d9260ab625fd2556cbb44ebb04ab645b4baab8d604aed597bd42603e161a292377ffe01505d4ab17ec66d5eb39ee0c93dbf80b8369fd19d5d931308b575cd2d63e674b1bc08e7fcfe06dd5510db9792ad2c995f1b801fe2c82d9711e49b0d706c3deee4a9a38d0cd0ab94ce7a4ecf043883e797e6214ff495f6c2de36a6a3877b9dc4f4901428bd9f2527cc0fd96e7920407c05ce56d8d9e60d9c2cd034733212a8b84497bf33cd728bf505cc1e6a4afaef68597a8f793180cf1a67fa1fe233cc6be1211091c6c2a4d8d5ff17bbcc5285837fddbfc81b4d72be6b217cc0085f4baf9dd1dbf4e39cf21a3c2e19c1aff3b9e5c4d5b2fefc848fe378475c15757b4b826e935b398254713fdc1cdf02a70dc7a3df878365fb73618ef70a936c3b300572821ca9e838bd37794c32451a94deb7d85f8d52db032645b63aa01c4a2e04d109ec2ffabf60d8abf7cce162f576b57048a59133e52e8683a0533d1b457a94c7c7edaaf2b000d3e7a5d4e1681a02357d0ad0c1464adbac7685ff69b3df839f70671d440e5ce549f048e1b68d2e79156505087795de3e7cf8159ab0b8c97836ce9562cbcef7a1435cb811ad682ed6acb5e45948b00bb6e3b340fae4d2f45fe573c84263118b3d1d012a8f6d9dc074e0c490e7e2a7f74548bc1fc94a118d75f18de2953450d7d01c07a85018dc667e411fd3c25c9806cab084fa0b3e058ba75d0eb91de4a196648d02f9e75f100dc72fb3dd47f50bb02162ef452d3bd140fead4be99f01bc3ccbfca9cea528fff03fdc50b594e1a0ed53a75757f711dfa55bdd549db48c837a42f9b174173a4c80dc954ed772815a9232488c95f8dd905644853a08a68f4172525d2b82926c7a7401358b8002401c743348c2f443addef1b8531946945d968977d1e3823bf1cd0248eac75fa9ce1602146a8bb9021b1fba36408e34b8352340f99fc058f549231592145a8defb268a276eea6a9c2cdb0c2de4b3a8f727970856d45508bb9406b9951fd80c6863f833c095f08ba2d23e38078773a1ca5fe6d7a856a73c210198097b5a88d789fb209bfbbb354920e911736733da99c58e90772a12771f0a44aa01e924adf1a54035f141b9c15e72f8a44b2519a7d311a834217a587890ab563aad95c89689fa68ac1328893fe17099f1989f6d4d4251e478847fefe476ed6f1b809399f1ddf64ae3c424b6361ef5de115476692b811f3400b50867c1b0b5b8e60e04125d12fac70a13df4900b8c4dc066f138480e87a856899dc67979a8f3945429eff00f0df5451286574708112c7bf945a2551d5d613f695cb5207aab68eff2c00b36a60a5e1f1f2477871ed6a0c136b991df0fdbe7a0aa814a7eebbe27ab4a2816074d4faa4aee100d23446a65963a6c791c6a889499ecb0d677317e55738f219d3ee5a61f85949acc237449cd04c0b002bdcb1fa0eb102abd21ecee762f2497ccb60ac5714511a0931d7415de4db36f0da26783ac11575facff457e1172efe2c491392c6d26f8696dd19f1f267ef1a821ba7b78630f65d4c1a38fd15946f75a36b006f6e0e5a748e117056e063454fc23459d96055070733d195f8200af9a749b21b7964c55bf5cdad626d5fea42fbbc7f961771cdb2e6d097df73374a75fcbc6d78b9a9145a19a910f6e1a3cfc8cad7508bac8f8308c7430aa256bd95245d998265fa3d7fb2811fff56a0c3ecee1d4ddfd0d6aa1016197d0b908064db5da657d391d7efa49a6f9577b12f71975712651e5aa40c3e58a8e3245e162c1f97beebd5176a067f8c03e7840cb624af0163227a0ea51b3b7bdd66e6493dbf5ed1715917a4f1380deb5527f3e88d7939ea2c00a902cd4e26349d8e11f0da4242520244b41d1cbf737a8f89f673f14a5ed51e035922c58fdc167b1ff83e3d3793bf0b0535ff4e90d3c2061787d828745a19efcbfd8c6eb32a648a65719a157c80bf6ad0d82302b5ea34739997d5f524abe4c4f307906845e572bafaa91883299f9e372687a587802004a624cf16804adfb3873c30c85306a284481d4bd7cbff5331c147abe89c8a4547ff21a1a3b8c03a8ea604f9fe54f1f009ce0666e52d9dfcb8f526b8a07a4f6a99d47e8ebf1525be111dfa1d968caa1e1a7fbc093eab583f598c0e293760216ac6b5b71289994e230a95e00a59434231aba089183806fedd7b71c13714f04a3a0392ee15665b4c898d95f72da2280eb81592690dc67c2cc88ac9181a56050dee232ba1b07f177e0af52cd850e2db96ef714dce87738e6ee5de42466a276628da974f03f492dd2b7e069a23a4f806de2a189e154b73e33bdf270b46a71c25a1f4ee5552fa6d997494f3b5e73786a4cb8e4f7fefd13afeed9cfcc20b0c28c24716545086113423e7b8aadef41a762b027c2d041af8de130cd25d5e5b5d294e68d4615c59541aebb2ebf3a8b5b4d1b4b3db75863505f1101cde7b615e0b6ae90880aa588423761d631f9bbb4907e3cb4f71bc570d7d631e2338e3e153a479ca71039d8946f6187d8dd0227186c18ad3af1dc699b67ea5b23e26384d7332edd1a071c6d04c022173935a357aac33e3fe9d5d4ca7f748a3aecf463e2aad17ed37507a87d47bcb5adc99054a6ccc021a75d899ea1d4094a5bf595cf44d811359a762dd5b5458dda5c9426871207317ebdba439eaac45e6c775050de2318f41a23529518b6d3ef989eeff633d22d6ba5969182992d739b4d5fbd71aab18fee594b5e31a62332adfa79d675913ce23c71ceaa7042cf15b42750fe3bdca38273e6e99173bd6a04002b71067e13d07bd30ccc85196cc6c616199644e8cd88f4e1047da950343f77a7b8424446f0fb47989cd71a44dd2d517268278816c216a962c71f3fc657ddc12ee56fefa7b01dae888e3106ac690162423f2fc014b52af452cc8e22d3d025538e95c5ccedfe4a8ed4e69390aa2d5cdd992b0830395562d0460a9ead7327879f3764b1d3ce9f1ac214e5e1b1d13b4654f228385e31d1843ef899bcd78b716b107db33249dff9ccd5b50d82eeb09d55c8d3cfd5dec381bc4b21bffa5b801a545a1f07d7f772067d61f33bcdeb95c850259789a7b101e478a6dcb6a945be2b9a2638215eaa824692a0d845d8ef29c1918c80f01d03d4803c759539efad1a6e6e9e4593a671b5c2c38f2e1fd176a24a8525b52876f3553911967996869af62e324e052df8820aaa60b810ac0cfe9973bc5a8cb77ee31c8e0a243a13697d1ab341a5cf68bb8db1f0b380371d80de4645191b23a82422712683c12678926b18e02be871c0f86f1bc48a8a0d88f80a6bb22227b34e3ecaf140abe45a79fd90fbf889c9f909da389ad1db2badc87525d024facc5cf812c0ee4b589be6aa54881b3a869786cb8adfac73bbb915bdbe18d2a841e1a3ac8e0bc20e59277500423646080e4a58156a2c3017a500df5d650f9faa14a78cc88eea2ba1df4aa6219532608023c4d4c14891a0a5efefb1c8024cbbef45dc6602f9913122163332623018481f6e25807459adb28de5ef17459dd3a90bd4f42cd5686d73287c388c179efce0545f4d5f1468403af27ef0fadf7ead4314c9b2b0b8113e2943a871c3a93e036b8e195905f22ccf1e463dc71bbefe12de54a200e0c0f93c52e0b823ea01f2c9eb35391edde58a9b66be90d2d4024c832b44c7c99645d534d35228a30a49e32047adfc597fa81f09f5253530d00a9de96e46db3afa4b9549520d1323f2ae73138df3fdde9a607ff3aac30e6e343180e853a402ea86a5b986606ff51d11aafec98f1d6918274fff15f02dc2730988bd306853bad4099ae1041a219a87f777b8b50da389565a3603f3649cab922feb7ce303b2a87c94c6794b2b5bcff5165ae0c21500529e2e2bc3cbe890f74f1589e0654463983f871e69af1785205b0ffea98779d66c0f9fcfc8e0ad7789c7409072587991cced99e0bf45e59922c1d7ed1aecf02893199b04e3d26e058273ac73550ce29b044844a505a726eb40552c150e399f8e67a3b15d7dff158dd88f35742b140820b9b7805eed61695193f9aa71ef181fe53f0ffc29624807cb6459071fd2a888a079240c53a949d1d38a6cd408435f21caa846223f883b3b31a9d85abf97cd8639449c28b6b7e77f1a06f794fc5e585b0b60f9e1e8363a476c81528ce051db1dacf71a85fea8ec96b9e8c16170f916955c6bdb80f3a9d479b2f05243fc312cdc225d19228c2df64ed191e175a481b1f70c029afac4cab5e4718de45f0232d5d4c53523e8fd2e8914f096cc6846387b6eb520433fa0f619b2a46cd1c0e1da17470b13aa4994132aca9518c5d02e98a71f0bedaea4027cd62cc1fff8bec03f828a09fcab6be1798b587add9f0de1db2447cb1f7b8d258b1d6449bd4c077d658350cad985b6640d3ed2041acdc50cf35269a1f0e98a11dd9de4092b2d9d55843e0cc5c7740b88ace799d9e62760efa1dcd796301d6ffbbd247b58d1c2fd22dd7fa5c57b24dd82ddcfcd6c1ee1d25b03e09dad45f925959ee0a0aab6723b371698d15102726fe33e4e3564623d023a1cfe6ae39f61a8cbb3ad498b5b5a9885121f97126a9de6af8d5835e591fbb97b7a05e8af226f90d44f5d14b0199bd16665ae6d9de8b50a30a49737dcf3a946b7eb1d4009c21d8c25c216851afd467b3352dec66ed94077a8d0aa0139ec2a534b178e3882dceb550e8009e60cb40ea76722995c8a34a72a3afc56bc6e54a333544e4929335ce54d8a46fd3a9499ddc7e77932fdecb493b0b450be4fcac3f7143d7203af3aefc395e81e83c297863c71f39cdae15232e00e0d10159f04a52cd51b0c1d0fdac08c131d1525c42fdab1a0d7c837cc4b6953ff5f1a21ab05878cd52165ed03db20de92780f40904aad0733100576149f5801f4eae046f1d8f2de7e473829b7b0a4bf2afc8476d283a53f1cecebd964f455f148c871a834438ed74f68ffb78b3e1e716188d3d92a5af4c79291daa004daa8aeddd4d9efbe199c15f07099eb540de0f18a22c64a00fdd9fcfde9f4eb1a4435f17dd2f7b0c6d10ab3a26a8da998498858a34005509d3e1cc52e727fc0adfa3eef1c5572c4da0575e2cff604ae35134f44269bc80145422be270c10f44eeb2e6f7c8cc3776fbf94821e85d78c2ca914f27a2f56dff1a61a69143eb2baafa75064c27a75b98609a90a158f3795ff414633703158a3ee34be6c828a2774f8af402abdb2f6645a7d8793441f2cae7c6d84978c15015666494bfe0c24cdee756d8059db2c244fa2505b7968619040320985ac4003e9060ccadcc3281a30aa14ef416a4e78f62ca9277b276c06c882a50929e831e09a1ac3bece341eae6a6aeaa23e11cbdf09c294057375eb15b9c9d27025c3f867f4fa0b95d2ae0c9e58af70349a2cf1b8aab974c4430c444a2b3e8774e14878baf0c9dc1575a20f56dbfd2a82eb85abe9990ae4adf92c0dfb51d5d265a2d2e52e754298a1b449817b5c75a2808ba152a5d86941e3ae97a63a3fdc09b6fe71f22ef2a4f542fd18f1c5ec9cfd52966aff3c0817113e3763adceb1b84f59c773a543d8d09768e5ac8e47369ccb9f6685c493d99cd38e232a085d1472cf99f121cac878c5213f1963908ea44734d2e154ac71f153f859a846f435073596b8074eb46eeb45326a96f432372198c40c1b26385850142d6acc3c42562203dfc67d57fc73b010433dba9246888514a4bba55ea29477a886d4e0bfa7644ae10fea55f10fed750f1f0e4267e4663a9323084cb96a351d2b5ac52bf20347ad695bea8dde6af091fee858c64cf0fd3be093f81a6696753dc9a0da6068a585cdfb201c8841d30e8760b3a3389e3887d66a77c70b5f2471afd6695094ddb12eb59f52f058b36330dc86cfb514ab1168f393612e3ab0901f1c3291770d11068daf6b75484a65d5cb499ed690b11e9b273b1f192488c72d00b38c5940f8521ab59157adbb8bd0e67b24cef9596271796874516904b402e0fe3a45e45d91efb6aebed5c98885e35e1f87f0df8fe7ba70e6baa3f6f0b4ca76e6b16ebc644e2905da9738568c582ba3e6b2c18d9b060c4468df1709f18bc6911d6995cd72950460fa949e755f9a950f0141adffbec6a3c200ce715ff2f07e2d0fcef8534029b8fd9fa29194551a1f8218187813f6ad1e07b3ed04f50cb6d623c22923d55ca01ddff00e8c69f20d2c148503788b49e325b1208b890b6215cd3e6fea0d1f49da2949066b5562b177bf62ce07c13317417b5087e35ec20bb5120e6fcb06ee6feff558e3cd1c43d89f12df357b2c2778d289771888e3aad47f27115c4e439bf4f1aaa6bc13665535be4e0b37fb54c7243b9997c4d31faee7d46950d2fc8f0730539285d5185b7251d214a4aaf47a6fb28f78c55c6ede5e218b504df5700b190c59d02d553bd12e05508bd99ab18078b815227caf1e79907eed00a3c36fa49a7388d09f867ac4a838f0e6d93ae1583c750182de7f4587b811f8b3fe31708386a6179e7bda9276ee9f8528b63350ce04ac674a8bec9c654ff9db01c4023b7001863b9e5eaea47fb08f33f95c741dd1684e6c8ca78d53c7f068e0d34071632e08b90f79f48f370baa603a08b8dce071fc9818daec2c655b53c03455ab04779a7c74b79c27c80c1e25d5c4eb38933466fad1cac05b15e6d8546a66aba0c3b10fc355d2894be0a048d3a178251c743a413e5d7f3c274fba27c2f5cfe5dfad19dd2bf57ffd4ead541062c74935ec5a8c5b1c446956dc4065f1acb09f1b07181c32da0c270816625594398209a05925389953c0ebf61830f1a8cd9e3f0d21bb8bb3c494b5e827483a7e3fc70a52189a09455ef4fc0044d127ecb57e7037a9ca8a45cc8d3ad6eb7a08d4a5199879542149c905166568e89856d646a504717b9bafe7aeda4e3bfda39252a6375525ccec04d7ac6468dc61b3eba13ef41fb4faa034e0fd799072f76dd566c5287d204c9625c4709631af31a1c50d959e68d5b8b63e2fa4c41d8b1fb9336f510831258f4c6b177b757f45d96f7569d21058cbdcd63bff2e29903cc3c7274b23c90560b56149fe11e3eba75c001226e638d74f71bc1422efe93f4a1589d46919585df871b36b97086069aab416080ff032b1afcbe9cf692fbcdd6f6d5757df5fd0a21e8a9aaeda48ec78684b90515bfed8e80e76422b1bc8eb4908e88512801c99d753acc96e5ebb51ccf4e22ecf1f83b8211edf0b616a42c36c7dab0df7218701e1ac004e4aa42ac6aa6e5552cee55f4ea01b641eaec8039924c1d069dd0bb955fc15caeebda98490ed1605e5d102db05854a1aea5845fc7d578fe4e9b1b4a64fb3f42e570192168e14c6e7c294e4d45ea65a87df723ef7f3ccbba0dab63aa8a62ab3fdc9ea2c11cab0574e0a351ea2714c372f04203b09918d6c77b1b1017982bdc8ff41fc926cb51d86f45c829dd1abf33599e13327340aacc26225389eb25e3b8208f0526be45603d8097b69ecc80e4e7a51557bbbc5ac8b6fa645f912217c3ef60b656b60a98b0ecc861b2d1ef298338e64714e1626e31cebe0e6ead3f00879166a4ba5da290ac3c4c69f11109dedba6680a273afdc381b4594e59f78b0dd5e175d0e42bed4240876b1146d44f9d116e96d27db03fce6374d02d055110fb62debabc144c9fa350305e5213bee400e2e33e2e311d6593a04e0a6e86e4225c5740a27837dbd8f6c953c2659003f25d645e613d28a3e271d8dc1d65d8bf1e468b6193e229d0cc4780e2b93043cb12b1de396fa6688a28557bca8224d18e0c2c1138e5ef238ca9040efef6f7eef05aa18f3bf0e6c1c68796a096bb6c53257d3594913af7ef9aaa4ea73fdb60b03322bdab82849797929a577b85e34e14b525f179a71802b9aa64c213f8f716bc4fa4ca20101ca8584d68acc4ff60739249e5acaab81dba87241d5cdd15e9a0679a444028c2c07868cdfa69057a7ddc087c0a54a0fdc5854406048a2215f0a40e698d7d274a710e2176d0324e394a3446af64ce1c71b2c37a3a263fe2f3ef9fae6157180cf192d6cdececd6c2a31bdcc713282fcadb25ef2e1158f87b5c08c3de7e1670680d11bfd42c57cb50c8f633bbfcac97753b5f9218ea9fd194f6c422480fb3d90a574394065e9a4c98d97141bfac26e6fcc4c95076f26b03c1dc6a62fe40f61b824408f496d6074d1c1af0b946c72369ebed99f40a28d665b65ad47a9b03d390347a1341f7ab2b6ff7939914ccbf762870ab15a6cdd807e7307c5060f2dc9db1dd85c1b8a1b74911510802a5d960e9d15fbfae7b09b5858000dff29c0544f3d67bf784203d6d3702a45f80c44658148229d1a2dc8b4327cd3c154f6c07ad3c0a0dda5b19da02567afe9f1c4b3c9c4f26e0abcb5a754c1cf83f854afd4ff0fa50f895e215f9bc1d1264c5db1868c9c34efb4c7b9671fbd9694442f83b134d34a5a56b6b51da16c213d32361028fe880411b281200ddc8c70bfa552c4640eae8e6a0a692d29ad5d2ddbbff0f426c4309a267a48ed829ac7f588209eac49ae4490b1d827b007db834d51d715328bda9a0d1c25a9a2424c162772f90de3612f3e3b1ab250c205663600a01aafb51bea4d5d9ce9c39d59f00fa1d3c768b8bde5620f8726a6438999fa357ee77dca04a9e8f707e9659e04a65949acc353060d05b719be7bd89d2afc0552ac84d0a488650b7850e43c4b761eb8b40bff16a3a1fd616a0124cf7a2bf49af87f0d0300102563e5c46833f7d21fc836941ef91f011b77f2f3efc4fa027d57fbe087c25f13b8bf4b4b2ed669af4ed6ea396c60dd3dac645e262d3b7f6b630bd214470e80320d8b88392dca605ca58cf8000e26e598b037d7e4711c66b85ae482e0efc4d9ac3eb8c051f1191f7bafaeaa302986049075d0d3bab0eed07c8b55f2831656a8eccf75f89059d4db5ea437ad5e627a89c078f5240bd81c6e338d4017a531e874a931c0009620211bf516f59f7df73b2eb3399dc1faea1c9068b4bfe9393b1d9e3b846ed27912a493bceca74aef13918f6d0cafaf89e85c05c8dc0d5d5026c838327210bb9b4c94d0219c418b9ed8dc4f17b5ecbf201eb6acd0819e3bf3a8c1fbcf506c87d0280c1918787f18a333e2817266519d3d50bd3ba7504a88b0e94015af0524cd1569ba44e79ab59195c423e0192c4a416a4fb13a07412093327d8872188cdf3d04911d00681e047b59fb063121f364e4d2cd4e1847e18a9ff60ebd7623340d29a5ffae1e48718a04b83c19601857d9a2d60969d3392e5d08713ad9e81f9a41ea1fb755afc508215e9a02ce0d67026420aefb548f8c6dfe3896c5b569963b0c3e042104495d6e5094629680ea4445810dd1b035eb42a98d32d8bf753023cf8c1b0399f0e76d4a8f40236a4af955fc7380d87b50d5871fd8bd269c7e00dd58751ef2ec2f54d143f612d283b9499ac8e131c4eb0d972d4ea31f767a8aed7b0853fb296dee9c21c22d26890f61be81ae7453658c3bfd7a709267da1c40acf002c53eabb86d91363fc3edbace31b2432c3e19935e4ad1d2cdc155fa6f6c3595a5056780307a2cc4cb1a3745bc2eb85360f9676e083c76799b8abd68a905942fe80d135d8d5ce1abb553b441cbe02c06df0c305f53c02c99b6f0030e6d1fc4637c44f13a312ddd140a1e143960f786cbc2a320c388120010251655eb7f340d2506984ecfdf0bff80700e1231c64a099913ed6a12e0140ff1605157d448395999510589c8f4ebf22bd008f91d8323635115eab107ba2ce03d0336ca3864b6102848236f511ba1e06433518639cf1d42c606b95dbf725d56b8ca6e2720c3d3774d66acf5313966e9196224c18d69b491f0c9f658f7a8f3322ca281b4bc37d437c47e4347f4c8c0826f81210716eb3b4dfcb09b25a0b56521a85a9bd467c841759cf0be787ae8f6f912aa7e178fa7e55c622336957063e6748721ab4a12fb26f90e432c4e791d3706d0ad53d5a8422c41b6a7e48c85e679d268df11a8c620f5a8eaede6ee1d9632d575565edc5765ddffd0f17c7dee0af1f5355b390cb02adacf63ae2dd2f37f940ad5d698dad83d9bcd3e6cae13d9e3a6f30c6a859cd936f949b86231a2ea0f8707203b2cbf8ca9a04bc0059ff0cd01726811993280a10f0d23b5a55c65f753f3ccc0e82649f1a9a38775737aab0b3cd678fa44162d432341092222e1e443c9c441ff5d452cf3ca0bbfa733e0f62b9363a1e389b5a69b81be8faab0a1b536b55a152ffb32f6c7f8de9d9591d7c78ec38f639804c04294ef754b0743a4081138e1b9b3b9f850f000f90ece8de3021c58cb062f173c3bac670583cb269d09e1a5b2c756b449a08a666b9497f852fd4e094ff8888e7b84dea928d3799fa85f04de6f9119c9780b2180a9a424d2dc94aa4910c9cac812c3c763778601ab4c0c6b6972726e8a490fceba0de690d69cc37e16448a6ae0c5bbe665f3ea4ec55700d9b0ce6485e25b57e60e8d6be435aa1cd7c6bb10124dc9a1c92f17ec41d19ac333217bd73bf39ea2ead376f466f44778956b96ea731c579f64ab3e262d1066290dee1d24c49e85ae9a7096148abdebfddc8f8cd56d688dbf7ec4727c2f084d578ba1f32572b36cef86f3db765c674115bb86bd8d6c9c241378e830e1845118a565da66c99896f75d878d08d73d8014551aaac8b1e05fa4d3f29e6c5766edc570e8ace197046d35414f6ca7bc9c7d3a5bbccfe7d73d37b272117f12cd7e4e27751899349e6e9fa4fdae779bc93da05bdf87f6e8584639cb62d98005f21035811e94076c8670dfbf46b2c138da3b37847e872ed545a6d3e9274043417d4b32b6afa34e834216d43946a716b78528a3bfe5cae3d5f8d9fac16f5cfda0e376401ee3c57a18631f1f069c47bf38f460101830ee1c75c94833dd8ffd664f8c5f2bf61eef766f2d80ab6122eafa849d8ab43e449094b7f110ad91a81e1e78ab2a0e9e75e30b7c52ffeb6d376db8e82dd155fe8f08e682536cc981a4fffb78e0052b34b56fd4541f0ac70df028795ee6f84883804825f454c328567aa10ac16992828f48fecc35b92a9419d139fba64cffaa8ed0d4c5253bab337b79a34313e3bb58ae1f8df1ac470119742fa769461b61ab64502e0dbcc890bae2864d8cd8098b7eae80113d07d874aaf94547ad7434f4442bda13ea2e696d86215607be4afc940069a88ca96d6d4adf1c330b9f978d3828fc5cf104f02fc5fe108b2f0a47d42a488b59bdb3c6cd65f1e0a09c5ba52d79eeaaff14cc03a0944dca32c3ec1e78d28d035518d755e0c364f7e817402e489e2b24023c182b4ab010fa23bc98a3b8072ec668af244941c0adbfc5b0d0d4e94ed0a3f20132346ea3804e8331e09ad04930f522df720ae314fe4cd8909161be02d27709ec8b5db635a5d9c16b1687bc497489612f74669cb85f3672bb8b04a0b5c158b5bcde355bc33b7f0930fcbb534974da38436d8950694e4dbaaee0b023b29e5c4533f9615e1055bc59e35aa348ed0e9c2c2f6cf5431550b5b99eac00f639025e08492158aaa469dc12f7583139b3efe72e263b9b59109e8bb971332e0d95d5738ab66ef2059effe2ab7471a30e4fca1e5aebd47629aeec0613ad3185702823e6c344b4f3709f7f068add1e2062e4d22c0eba62c600b9b3207709a6a47e1468844574e5963bda3c6d1a387d8103ff06dd911165e8cbd87292aedc6e0387545550efa37fd89d85c5c9b0a103e35084d16b7855282510c5e61ea8c77e27429f46e2d792bd3c32594b099e00567b1167f237934f5211294204b036a810f179b90a747b2841cda8ae9d187250ec1d948bc5132080ae3c01c17a1eac394e03e4bf9bb34118966ac396831febd8ad09054683acc251bfc8c9f48d4d7c5c7f24aed16b5b04741b38d9960a80677f961f24df8c6bc9b03923fb188d6aa2b0665059658399a913a3bb9646c330de39d4084ab6d848357a400665f1c5c2cb861bd990a1cfa54561bb42cdb809e1d29fbfeb03a175943818d279795cfbb84ea1be79c999ce7792407a38f079224789c58a21d60994517a936049487af1bee759dd2aacbccd2b5f3118e7e62fc71555ee8c40e86fa5f62ca7817a995b351f815ff6e50deda502a0f325c522fe2df586b7b46aa80460ffb056732669bf94c138db34f2bd981d9a36774eb130eb98a97715503df44fa22323209df6d119e72eb3617a096f46e8ee2f253b58fa22c619ac3eaa3669dd956ce7005c300fdb1bbba4c366b458d7344de73d4a0b604381ef1142103c41158249180cd9c0487b57c5abd57a9108e83eb7dc987b2a76e80c10200c6c0ccf41dd5c95728ed9559b6090340aef2134afddb6afb8914533dbe31308494bf3034c52e115674ab46a44293dd711785785ca1e8b8ff2e7a4aa9feea3293b07144cf94d0ee0b2a7952b14eb9e704c89268c21cb7625f8d273276a1c4c12be996fade71246e50e52b06239de97c83c1b5c3f999f893e6c781bed71c4ce4e30f8d5069d2aab6965df0910ff8cc5e68c867348f897ec4473ee0334f2d237fd41c4cfa211ff8988fc3870ed75a185e95266c0d5d008264a077470b008852bc8d2f5aed319014155d46717c0cf4981b14cf28a8eb5327c85f29c5ac866690994da1731b8548d15dd909d7f7784d74020bb12205f1e244e93523671f08a852bd18d343fe26b8debcb377966cda81c467df2382c975fb1d9d7c4982df87ec2e9dd4b4a3083110e79134d07e9294bd5e3c2485a0a647b27e2628863761149e5590d9c879e47726685575ebc068dc9552f0c99fef01aafa6e3539799aeff4f75a3d11b8e6fd3842e2e298bb41c9cf5e7b223af5ad0c716bea0581c1abcf6340ee8436ce541da85de646f25d2d3abcb872a874b6349255d7b517125bd3dd52c098d65ce6ef3077fb2ac9ad52ff5b67e5925fda1090d040b8e909e47117d3921c86e5577d27491860c29b073dc00806d20b1deaad1be45e021858f103ba2bc164ef12e162b7dc8d608a62f5067d69fbb988301aeb1302155200f44845688a42f3a160d790486ac3c41915e8160345daa382cb10e82eb0ac2c08df23d065210c9cfaf5dc03e18f6ac76181523ab409c30c6c169c537a502d3567b4899fde39b1b12889ef280028f9df9d66766efea3e229aaf37d57e36a626a0e90bbd881caefbfb370d58274fed6aa3ff491b07aaf95fb89588464ffb583148b3411281fa26c3674f00eaeb39fec7d934f2ce9a8c6cb70c48f892c2a8508e6556d877f8cca9f04f8cc482d5ab9376fcbe0fcce3276a17f68299e59742d0d441c82bfcf0389e773f8a4fd9eee6ac16f1a950c9ef90a02d2c38f529c27e20cbb0cc5660f3859d79b88b4668a4e34bfe3581e28cadb94131a469c4889e16154b913b2d8f5fda7517f2e83a9ec0f630487e065d6209521ba0ec10bc767c89344f6e29bec582103e0782efb2872d3878be70cd2152247cff516068272ad4bc677d65b7e40949bc01f954e057831dee2eb299ee7c4f258429738bcf0d14a3a982cc7f92ab94c5618325f8ddf381f01a2df4aa3b33119abf40ece629633827c73c0af000d4dd4db77a868b33b4c6740eebb5a65f14cef9f45e652ad60947c1847c6345157c3dd87ce04966e6c5c0c74c2197e8720ea380b3554d78c0f27e220ea0c13389d4e25bf49b570a6661c2b5a619282c502040612c9f1644315c8e077726c22cde6c46d2511b71d3a28faa0a590290f146a8ec32b16e8f08655527ff99ce9edd90757755121291b6e384e6c64401000844e5863576e599d3a9ab5fb8ab546bf9642df8399b8658a0a5a15e9433823c6b1f868fba0ab1c0c84b7cd414d3deca94058d70299ce817ef063159b0648c259f5c592cfd1a0e9ee6b099ad227d0de7662f4275f2615424080eb9798ef6b02275ff9b34c8a0e810bc670ea6f450f6998b3d5ce29cad9d2b405c425852988b24147cd61e6b7ad3b0d12d2669255ad322db550cdc18d5b156650cc9754d07a219d8491d56cd66dddf60b9553a0c3d2b1da3fd0583ab7d30f286b2ea0828b21dde136c6b39e3b2e35c80013fad60a99ffc32d2e4081a8555e78a0eb75032fd1b1f8ba67e4c673e1f0b3056a3bb05d2be41e61fc79c159968f5ccf4046df5bfa0a0beb031ee708b400a92b28fe7a6a6eaad1e4d19aaa8ddc22e1edfbc2e175f6a35a76ed8533a13d6429e4d3b77ecd6c62f41cd612b7ac20d5cd4707a46c7f95822e8ab35c1fbbcc052f46286ce76f6e2d06439585f761eca9bde03d6d6a58b65826c936bb4ad477cfbc0e2afcc06253f5aec4901510c5dd59cca000e00bd1e3ad82d6adfc06f65bc81e8a3bb6935074e9a13434c6bef0d6ca99d1ae14525f5ca424c98e0b7e401d6184607d3d9a00ae09ce4a1c5151ce45114e22f08292694a47b2c5d328e1515209ae8d733861791981bb269b780a8897800a21450902d049404be22dad76d7792944c0fd399f9c0713774ba3e87c401e68cb8c05422069b88282b3f40cf49f9ad69019b4586d818e042d2053b4e62c4bb56f07963d86a4a1ab5c6f61c745bfe7c1d0a7958037bccb877c9346035a59eed09a9b161ee51090807031c45f78410665fa7a8ee0449502a66808b32cffb8d8b61eac88294d41bc907764a48d7483a52cccf05fee503df9940454e0ad74ce508696c24265af522d577d43b6ec123a1c69dc952ed15d4b7b8886e61c4f0c2e37c6cad7aab0864c7cc8fbf5795a6b414a12e4893bf7bf12ceb420e59c5c30134ebc15c0767dff33a8ac86a7c4bcf4218e13fca3187c257e66246ea12e60a243ec7cdee7a08c50083df43228be7674dadb1ff266bf175b0282ff682eb4a2bbf6d11e2d5be1619ca7395ee9d1cc457f3eae3ece5db805e914a25ad4eb05902be0216785fc70de1923500dd7281dabfeb0f6b0dfb9bf2cdbb347c9f55e3342e68be9dc70c29b5415654c90e7cb59895256034485c95fedcb8a4dcaabe8ced7bf241fcdec3279758a71574931d37c9013c9e9946c5dfe1f6a841334f9286a641c2ce6166adc448091b1e229943d85ac715b6a148187515aaa6dcdaa58e8c7d11a44bda5091d6b7d2febe0a0384428810ebfc25e284a63acedb095ab05deb15c0bfdb75c3aebecddba7e76d9cbbbc4813a3919bf6a29da5c8b024c82dd98006f03765779fbf00fecae13f5c5e1ca7cf6c38fd4339d28afa17bca45732af9a5752b32ba1c76fb9d77d929cfce5cf8676138859825a01b437dac1834e0f47450c47722e80373dd5a521232218b43ccc4298858ba73c815834bcab5efb4284a437ba20683db3e89caa59d7051028ba70666340e7056c51d97090ca80526c48761755e11332c00b3d1346ea469fac38f980db6fc2e3cfa070978d3d9892ff074b001c35f74f4cc83d30710986c13000dc490e188844826f131adbbd44c487660f7e364655a377707b57e2eb7aa86273ee6752e8c7e4102901b7b0de876f00dc276d8eb4c9cfa4426b61491a2fecbc98226e8698df076c2de9a3db82f9af50da6a79fa8e72715d7a04d296a600f8159c6783c9e255a331a6818ca0f4e170faad8bbb1ecd28dfb91d011533b65ec0b725cfd7502e07f7cd57d7f9f7253dc856bedd433e102080dbb65d070008dad922cefc18ccf91489b76af8f68740e08083b3a81575a59d039899b6c9e6066591c64b41908154bf97e5d1ad09d6abae955b1edc1d5340227c087d7e2ef9235e2346ff2cddc479c00ec1d84a5c6e41ae1d2fbd60c1651c63fc0076a0137c172137ba6a7c2a0d237066c2adc9b83d2969d2795223e05aea2926bfcd8cd4f8371b80b28f3007767d009a8bc9061aa9a026137f101167f04b701fc8465ad19dd4cc230a7bf834e71ca77fa0097c87757f195ee500810879b8fe62af5531dbd57549f2b1fe82ec5a48cee212abf0ff0d715cea818aa3aba47859f0f95294f7482ca20413a5d4f8ceeae14e4fbfd75a4aa6ab73536ebb2b10619b428b0252ca2f74911e595477aef0c067f6d0b2ba16712509cce62d20a3c890a1bb3e7df5969a2167cb33f7e1ad36013a7bc3f10b174cf93bd0e5db4daf6b22ea57089d0eab3a06982e8ea864d0caeb61291a19336f99f8929f1869aea8dc5543f39e51efe2b2d006c1a016eb81693b0a25a359a3358288fd6193ef3f514cb6a803afc2b01eff2d9a9112fb5eb38c30ea842e97a69748d9a9ae54189235f3e11d0e501db68d2cb7d04f2e25e8575f5fba9e9c9c320df12a0f52188b12885c031e245bb501afaa84d1cc3e30da13e128015662419515f4229aaa7f6551449fcd1c7f63120e3a7ac0a27f384c26a88099ab5f0716a75b6a4d25beaab2a861d2e132b59ad1ab4bc05098a8b7609ce3fb32d95e4aa40aa92868553394c51de9c7c0c4a145e3253d7f5f916a500b525b0c9d783a10b73b23b0a986dbaa26476ace67d84084ee87522933715b1c3afee05397e96c1591a382607e70652aa2baf824c38818173e0161732a6936f19ab9b76926335bb8ac0e1e78f0cd8c94923f80b9da82c864236cce0a015350695c2c5dab638f144c9cb85dd3e7461574e55b464bfd4abbacf06bd0c65084f4d273601156f08a3de44351d4a8fec75d011692cf90f33194ae772b281e8a1ff5ed7c47a9303480f90938311c71e6b681a7e06cde7c0a5b508659e52138ee0efb2745f90e739d1801d702a0116860f3ef9451a9fc486c0a3d23bd7f6032b393e4966d50b472813032061d296802969c474056c75669926e69e66140ed322a0a305a27adb0416e60383a9d88cc855aef192b5e197e08cffb1109893f10007fb581dda565e34e385080ab8129acae0318a7970fdb00a3036e3dbf60a2e8836c0c384fea2cf79c3330e5c49121ed366bc2bd3135db850602a1739952b3b370e6b4af0ec93c159170c74f8636bf3c7c0d55b81c702e7b67f8ad25b31c3ea9f51ce1fac7fbd57548f1d34e2a7cea15e228d9de771415cc0e4d817b146b82fe0c02e11e58d62d852ac7f176f49c9e5a17c2b0fa51fd0ca787c82f62656c13f7f76ea2b0d25e4081f04b35b58d274ebc414eb1b0a75e1a7b62c0c898709a3f6f0091d57d6fac5350cd465b7a170cc5d9ab7e2e1f2d58cebbb8a4963e0b259b03446a579815aa7c34fbb7a0654a0aa701353c7b462186c810495904604ba3d5bd14791caaa3672ffc86eeb8cbff93ff907280e702fdd53e66f01e87229faf9639d72f92c1a37485296456f6bdb282956ddcedef14b28f2289e6dadd612106f054a986edb1b109f0c4c5d8e31e73d05ac8f7c24ab61bdc1ffccff67a3a48d72256cf51a77d03f1916728102649a6897fdf03dac3d345871ae307e3e738e42e4854a6c4b515a70dcde17533b5779c9595dafa0a630f8ab68a55a0e655da00e5b66281b3b2e070b3604384dbf5732556127127e14ab5253491600f907ed5c4df4a223cc4f3b7262700a76456245a8891bbeef7a441ec891194c6d28b23d3a7aa98a441f43e05a4a219784952ee534ff831d3fe899f2835e170352845a01748e4346a1c8349e14c0de11344c1a04d17d6eb2da16cb5a5954b1eb73f3f821cc32429006e4f3f0324a2101993f5d8719504e3a7458917f6741c22bf49b6845729bc803dca049cf048466a8abdb6479be70d23b7d206b4ea820cf2dacc990a4449fbc2bad9cd8b3923a76d159a1567d862a200587ef134a87f552f2c2406e280edea86640f56a860e4a8f3a55157cb81eab2000f2603e0fdb9b1dcb4d2f52dd5169d3fc308a4d08188f00ff8d42553ab2041514ed608eb9a7a035ddcc10530187f46ef5080703e97c575956595ce53a45ad52bd179d31597b3fc05f1553cd658b74a04feba2283177f4fcf4da9b0530bf33e387af92774edd7d03d6e5cea9cd182838471837571279a629257011694eb40ef22feb400ceb45940da635ab83981048a90b405d00198bfe8f3c32d5d4386a0988c8c368c41a5ff271f1d536ef4dc4de0e3531708d22c3580bd06c771f62bb1ded8293f85428636f0df6db16ad0d26afc6417fed7dad3a494d4c3d16615ac6f9291d5aefe7191196902038b730bb429011ac7acbf19d5ea69155f387d65b8033d88db8d643bd6202b7edc56a97349770dbce7c5356bc50db1e8a24992704cdd9de4ea4d772fd481a23386823c8895c12708a87170ea1525b2259315b996a054768b02c376f849a1cb5d8b650c0ce91c8975a30655dbda9ce34854808744b7cb484b8febada4fb1ea97c00f55e5f202b182852571eb1ea083cb669502c0d70fd776147802b16f7e07f1706ae0017b0fdf2014d9d4dea16dd3afc1a7826c9b168d09eadef5d53651b61ceb3412cc96c200c5b7fa1355d991941a982d9a41d80da2e7355d3fde36634051adadbe345ba6a86085bc77655f1c0c481d0494c55e59a47c65c1c87b9970858fb89cccd65a91645ef61d10654bde18a1c2eb7441bd6a730772162e5e5721dfeb56a9932187e6b528fc741fd051e2c4b14a35aa2cd55013d006de0eee5d1246d7432448f2d2e88a847bf96b73ed586ac02efa946538265cf7fba26f957a6043c195901fbad6bc93d12e8d9b8aed3c1898c439aeecc057974285f89e8a7fc0d25ce04aa2df73eab81cef48fa787740e4fed0a6e6e7972b8c3aabe2e8d1dd0a8a9654b4ecc6fcfcf83b18ef9b29b5714a36a374950a29e758e0a7d288aa1eadbb9eb4c88382818d800145fd691e4e1bb084d1e881c8f0076f45e3a8bf52ed2df19348dacf6367ee2ca9bf346f6d597006756fdbff7958a32ce54ff719560864820413a6de2bea74b3a0945c412a3fa72c3c199aa31992723bd7f8a5d13aa05337abe83daac980c1f76b969c9ff8482cb5f45681be48f9355c6fcf357f80460615f59687aa105bc3e071d3519940a6a8d8cbc94a1559fb186b9f0398ef17720c816ec5cd7e6f07faf35384a92368f1a4b8417a3870e506cf37c6dd54f976eb4c1c85632e41e6210d1000843252d28b8e33f6d6875d7391a70dcf6ce0937699b2df7a048e3c705c8a9b999936243a881ec54974f3e7a4d763ba46409658448185c859b08ce9954122abe2e73d88a0388219003372c14647bbb36c5d089164e506b0c2d6a31cc0c09b520f42ca36eccce8fbae6a35a01cb151f43f775ce5cce6ff7ae3a124b078a0642c10bc03c227859b7fb8b866ad16ca51e9d4d866c755116eacb2e1815ace285e78bc9fa182afbb79ba24032310c370f282acf064dd4428199479df3b1e0bd6964883ef06870837d19b9d0f91169cb644d4b7b1ca2d2250af07e00027511111a865172705c76c954c14baf011782fbe5a4961b0d2fcd1d477842160fc3017e42442f4a31d5e14421dfaf77bb619ca98b7267622e63c0e9abf2491f6aadfd1b199ab4b8c9223684d5066fc0969659f9a377421946c21eba5fb9ca1949a5092afae0ba9280d454aa0a71e2a17ac9f55ae682f1d5f404cc61d6169892552f38052e6e2442541892daa2255f59d2453fba8a4a83a21d46853e0c25860b91417c069a123504d45ad7554fd1db078aac2957698816c4dd65cb7ad7c9cf75aefaae63da64c4a99962dddfa1cfd51c158421c4db788338469d413bc25ed24f27670310002c312e240b96fde34c5a23a7e13564a19938e84114a3223f0c79203526d2b2191bf43388341be39bbdbba90593d9af08870765b2d4889f72a0dbc4ceb4ed7db1214e354b6ea1320728b1711a4f914fb5907c5c4572b7a9a5a12161924b1ce607d9aa5162f53973c790f6cde621e7dce3520907705c75da04ea5cc3634d74d92bc00606a1a2107522f9e842a27a74722e1be82d13f64d205791b4e08f4e2450ab5a0741b226c4387c889a14942a9c07e341fd2ab0bdb3cc7c1492b3b6004b53a575a889cfbd1bc98feb81c05e7f6a94f395af18c64a7761288eed0dd44a725a28a2805ec3e543eec3a2b3831975f804882a443553d12d6c2360e0634dce42582a64780accf1e7ed3424d93a7db429ac1f09d8aebd38bd38e9021055743940f44ced9293d7969f9b726c602c39a8006fe626447a6becb3f4074f5b98b3f33938008c307d8ad93a3ed216ea5bd2a978c7a82d0fb80227532cfd5e6fc097ae402b3505365c6fce9d6dbe227f37d83123ddd2ba2db5de37c6967c6ef618287ac0037a885534dc082b79e1821c1ea1fdb60f0ddebd450605bcba7d3d9c5817a4efc38f004a54f5d744b4f034ab29556fb6f344f8d30ddd1531a45ee23fd361d4846224d2f188b5a95ea206a4d4597dcbb28add904ca7b42a7b34c9b4baa94f9100ab52f87d2a9ba7da01d0efdaf4faca6efe187085e7b806d92ca4f076b42bf519b023854ec1bac6c6beee63578ea212e58cd4edf9bb8875cace982baf97b06133acac6779fd9e8c467d485268c488c4da39437661776e0b687c209b16c0b6d27696bf72a5f59a772d293ab2afd5522600071812f6a7e713a87c6c86b9e723bd8bb99492e026d1b5e64e1375ec527d77ad4f4f0a326ffd5b8ef48ff1f73928435c2edd9c48c40bd6d279f560ef2ad7d33b428fd76d516b3ef494a763d96f0e7768a9fe91eb106111966a96534acd0858e20c077ba7e220b4106510a01a347983ce95b6fd14b4f84bdc5c05da47bfe99a17fc2fab1444599f14c4d3a8930a2a52884f3452907e9895fa2d2be71c587bd271500ffaebc4c1f846c498e1004445dd53c58b5d11ccca36c4b772c066044cdcea882b5b34bf02a306922fe0471348919bffeccbd208f22b645cf934e039b17a5d2ec659ab1a0ccc0349ab9a87df7f561914e329ddcf26091b751abfb554787a05063e45cf7e7d7370df488d45fbefcbc975a348a84ae03720182d3c51f9d4b61d9a8572c9272f45a99c8b150400b21d56b7996ed81dc3f59b994d94241f2890d77e25207ba00063e33c033d620846c407e7550ab4dc2e0d28832823f4082e74ffab763652561c9a3bc835254cc051b2f472decc8b70ac07f3abe58ca19cd803e807db21bc563a8032c8c381076ae5fb8e3b392bd6ef94e5fc2c212d0f6e47fd29ddb57e06d32ac865b7f26e3a15400cf1a9992d0b54ba3648280d138788948244e4242aa0da628150615c14dad84610452a66d6800f8fcd4c5cec7bead5a258bf271bb6a9622334f1291d62570c48e6692067e57fe2b4de718986367e0a123f09da7a82bd7a9d5a26265abbd4225b2a30037eca48727a1a41d7916f65988e06d0fbf6704b55dd54a9e870394459d593306709589a371520ae8d4373c31774217f02f07867d13633b8c622451fa44c7f1126797b2139259d310bf7f0914ef5e8ccbb4a7e2bb89990102c9b3e792b77ee819810f1a72c86bbe3c7485bdf90874a824d75b80f824c3ce94e8575da00b91785f94e0b616bfa38e8a8d23db32fc6d19451db8016e30dccca87451186efac59a111b6f253774794661b5f0be6c324b6807e19663859b69b8690a3dd6858906f9fd727ba44af3c7d058534dfada29b7d07344aa0b719542c64788b4d03d6d8eac89f9eb13167c310a6329005ef7058b3fdc4aaa40fdc1bedefbc4adb367dffa8b3ffcd08ab26ad2d4a70452d06f7bf507d3612c5101b5778e87165acf6be13ad6f94f67a58d61dae9ff8c623e08624cc94eff6e2f682689e99b012399a7687ad9df224aa9608a69ebed5588ef9777f7a79215e386436af789fe39fb2b4ddf5693b396279b2c8bf2d5a6d08975134d902843530f1e0616966950edfc594678068c99dee3154522b17ccf275c874526d42738f3f40951c0b89a2402c4769f8d51e11049ae0cec1574b01cf2799c293ffb88ae8a9537621b94afc9d7fa721a96f2b5963f7398872001cba286a79546cba942e5cf96ed5917d5e893857194ce0fe87603b5a1ae849623386a2d47df41b4fc94d8ba5781ff7e517a7c652f6ff49be47570c93ef9eaf3f29675e3f882dc07d80bbcac540cda7e140d7cb3915198e044299b461c5204a13d28e057c1b9e64177e8e7ecbf01cb09cb95ac87bd94a8bbe4a06c1d001718bc6b7a25cf9054bd3c46b256be3bf287ab003d4692feea6795223e942ed648d70f3636c9b0a273aae869fe327d7afce2162a7e5517eb35d023fc31144eff9d47d7334b8ac407fa970ec9928f80708050a2ba944202e1d3a02c0e4207a7712e2398f72a157a845c15c1cfe9e6f3ba64502827a3c3066bd9c7889b129f974b3614009a149c4d9b8d90d539d4159183f5093acc7da8b856c9b93069a90701961648fa960c858c2578a64eae42b392bc90b49e4d4de03e38e07889c461ceacb0ad5f2b099da361e54dad0bd4a85d09f43407bb9c4078629eb659b9b2747dbb766d98bed2114c19ba341048825996393b79d994e79182009d466f65504284233b8d7f381c097cbd203e115308af85346ef900aee18bfb9f11f667c0b413f8985df0fa5780af5e3aedebcd2ce9fbc046ef4dd684583f2426673c78ef645bb52034721a79c254af05ab7dfe914140301a5f108e933751998302ee51a5f1cb9f9ae4c8d18e1043bb5e2c8c48a8669456458e42d8509f3c268f356f2decd35c63b2c190840eaddcc21d4f20cf1b78aa12278e23d1cd528055a0acff56342c34b09078f50c4d1f8390aa5853fd7a84077dd7e3cad2ee613f1a18586f873f685d4c3e9081203fe1740335a493971433ad4245d6c9faca6af642d8b250fa20176bd9eec5354a245dec560fecb4a7b13a2c0760dd70369192e4aab372ba7135bdd9b6b6ec31440ef82b13694bc7144eee1cd3bb2950ebb75e2ab65455b8ef8e55251c2a74a7364b1c410da06c2542f67be2d05ab2968ac084c0e47b34d88fbeef2e5a2f2f020aa5205279e40f31f907e9ed2876ba1d55c637d8d2eacc33bb57d3d71755a0f112ff10054e8272a80125b8b7e4f1c84c43d4cc6bf61c1a8bbea899d211a6f2bc0982e9a5f4eb941cda4324cc4f635e9bacc8c8fd93c20c20d99d290b8e621905ce5ecdec3c4897a810e4930db91a229da7add5406d3d9a8ba9d5de1890df93f0009eae44a90057efd251e2d50da34aa66418a882729df7dc02c0202486749af89dd5b3a4998851752e7ed715dadd16cb38ab181a921b7a66e2d29878c90983b8e3a40a14d2cfe9cfb670cd0be637c7347e2fb2b0cb79fec4919c17b44b74d9345eb5d4e7b819e5215d253bc7db85cf8085a4e6208cbcecc485dcbfe7d198bbd844b6bf989dc8dc2d43049d6b48df71795845661152b7d2202f91762e2fcf4bd45a265502c290685aba79e1bf50df631a9e29ece184cd47fa14ca960c9c2902696931d803163837ac0ccd1ea7096fc247bbeb2633002a8572e09d510f7015d23c7f660ba961c5f08edb75a3e46d18d453f6a09fb30f83f5fc3d1d54b332b5ae0c2c6cec6ab40a83ec693521fa02d4c123d8adee50c3a3e59d705ad8f31b8f3d4633b300a38c04a03548ad4151fcaf967c2165a403f810517c0b07c453cc10ce34f8616b20b991f4c5366aa3430c06c84e25bed95e607b3de4c045310c7a21c5f887e0d5d2066974f8408e71f8f2b55415cfa19e3243e1a9f36bd8f1c8c94535a2f212f3e701f0446bc012d393b602c393ed1c9b084d550c36a25fa3eeea947908fc6a1e30ba6e0c615c87a827b6cedf1e22c975f70bdbee48091916949077c7ddafe11ec5f17ed346a45770998461206ae04705fcde04165178a751989aefc29c0305c4dc70a8839ebb01f2d12b127ee37fb5b43426ea968cde536af9c02e54d39967b49b933451ccc921bc9188663f0c592e49d823471d4086ea7dd08af111c8cc98070945c04a8e3233c687676e38d2cc58fea116aa2b7e6dc0e2ef217e017711d4b13928c788fd178bda07b1737f87de33cc117ad4fd15bd0973d4fe883df77ddab6276210a01ba404034a4152745c3050329b0e5a34e10b1813ae1ad97f5d773061fed72c32a3dda6ffbbef0a42a6869be9bc38715ed9aee47b3ad37dbf0e56610844350015ca0960312c5914054bc78184e02f52c8b21651cb5eb95fec108cb2d1daeeb6a59432a524650d070f07bd07bce3455cb173a7016344bd5e5c13a37785dc4ccacece73ce39e7e4e9bdd109a5882b6ae5ade7c74cc89c7388132a4eccae01430c4aca0b47067072a5a5eb17358e08888c2cb5156c0d002387172819ccd112320dd80194206aab0664319ab568dd121cafc0bbb9f1230cfd629bee3b4d14f6450d8e40edb0c34b061e5ec10e3da1b66ee9b46ec05e8cd0066a55aa4537ef80b5880e31348794b0d4839290a51c64b9a10890ad597010a0a00ccc208acb1fc3622692aab85d8b756394242951928ee892981c83169f505554e19a68a5015538b11066e639416f16f88fdba0f31d5a54ba4195cbdf0d2be2668ee172ed201a509092174997bffb7570f3a41e25498555e5ee76e29a78c562f1a2b2b086b82636e08bb0521ac58184a6502498b0d3ce46afd70b062849bce068559a22cb65a21b19a733d2fd050f5bcf9f147bf7ecf57a15611e9addaf55d66e54aac193ac4d214f322094189941090a46a84049a6421897bb9bde7082288a84c080e50712941a9ec0804642fb0fd064f1c591f14317ac5c7e9b968c1ba1f410ab7165a349f9434aaa3fc7963ff539f85329a1d53348239f27f5fd44262975b8d58a0e36090cc4ec1573cca33c4c8b3864e6522f525a71f9fa9267e69f9e2ea5efe2198b69d3653220c758208d2ff5331ff7dbd73dc7e8c75446f2a99f38266b12944d32dad26dbf7bc5750e4dfd14070a81342fb4aa954bc9289f2017e1903e33118ec9a8285f35d0909219636d8dd5b71c33834343aa4ffd50f71c7f9187e90ceae0cf0aa4f1b70dd2b87da0d4db871981431d2f787c846394d21920f54fe6cacf53bffa1cdcb77c34fe1f8d833422ac5ec6e76879d6af5e868c6ff958bda271000d8fcbb765e6571fcd64b5bc8c8f6672385e8c4c9a9169611241ce624029a3efdf76e5e715fd587d0522cf0aecd1a3e5552bb0c7eabb8faa1ffb15883c16eca1040604e27efb1eaa4fedb07f30577eb6e847ea73b4ac5e880385f8579f4bc6521f15a33256a9e417c3d88869f453b4a3328ef14b16e9d8d139bdd1640d1544d933e79472cefff83987524a17c37379b31baeabe5c56f234b56899d1e0ed9bbbbbb63ecf189b1d5a3e3139b88e1e28491fd412ec92a9226e5c74fce386492335983810bbaed38fcb9c2cb71c6186d5c06bdb3315e8dea373e05638cef81f046961269e0c9c7c28bd15a168b3dc638eef39863bcd8751cc68e63dcdd06b25be2a00a9513eb328b156ff841af89d9926803065ef8565a38ae6fddf86b23ca6e2a9e8b75230ea7c98375625b609ba0314a830d6b63f82d1b1b9b0ba589107cc36a052fd278878e588302414bd95866415cd73bc170853dc2933c78f12b161f78cbad72f49b71595786cf5c99161eb76bacb1d7c65c8e76f483f95eeee5b68e7edee5521dfd5a2ed7ad2ed775f4535d4ec5ad3afa71377539976ebbf67230f472319d0c37d3c96075342c193468ace6c74a271815e096c6b5eed2594677cac38cbfc335fc31e725fb0db738052d6537962444ab5aea3f707917c3bccbbd7759d5bbbad58bc71c27ea9a26e290bd8843f61847b4b272f93923c671b53822ae8843725d4ed4bae1448ce3453a9f5f4e761c9113f9b7ac5aba7b5685a09a73ced49c3335a7ea73753bcc2ad573aeeabe53a926624655082b1c6ff5def2ae0aa1a59b73ce39e79cefea5e7ee5ef85fc306098ea1c8e08a481f01289fc7651648b03f85a28dd070287717655a0ce12cf15cef93bcc3e3bd51763cd4702449da303f7dda78394d78671dc27edd9cdf9f96d99376711e8bb7a2e5582f726d89bfa164a7d1c6f542a7eef93f146f5a996d59cfcdcf3739facb43945bb8438def84f5508294925c811854432f28a5170ebf34fa77fc3eaa10de354f0abc121b338e47ed072f82d797255bb71005bc330cd39e79473cef920441cde9db3e7a437e68d7833bf5ee1d9232a144fc175d7df8b3cfafcf286fc7ede88836fbcf1b745782ecb4888d86d629a782eafbbf3fb37d0e21a6e1b9d88837eff02e6f7bf7d097831defdb6e1b0fbb75ec00e38e3223c8f55e33964eb35707593326e35f1a6e946e91686485cb4e1b2466e03a48126de0e1e1187fcfe12228e78bbdb45c5b0b8f6e293cbeb78f9180d441c31f5fd3a9d23f3ad63e3ba746ed5a1d5aae40477c0bccc0bcd7ccc0bc13ceca8f3205ae6615e28e6675e48e6613ed28830f3319f63e663c01e4a80626a72c0b0ba46460371d80ff3e9744dffcc4c8f1e31a08bdf7b9807b00658373e9d9655eccba3af0435e05d8d2f7c9b7b6d119e4e68e47585c1cc85ebfa6891f0408837fdaa88a3e5f6330b11077f17b962408838e4b43acd52fac736c9638eb3ed7dd407a2600f250c02d5dfc01ef36b0ffbd487d37cfa42f6eb0bcda7ef8a563ae620b1550eb0d7417fc29b2f447fbe2b5af91cf3697dfb39ea5bfb93feb42dadc49b7e1b799adb3ed52f54df82b43bf280106f1c94350efbed111e73d5e2061b0c3eda601abcf83d351c8e0dc6517dfc30e268e956ffabefb7c10f3e87ac0a510aec08ad3468cce3408fc3fa29d07258b70f76ab8ce230068f7e1df26f1b15ecc08674e300e8dc62c0cd6e5326dbad56d7b45cdcd17d117131171764c8e560b769b6c9abb19ea23a668dbc23d67777cd3e7950ac0fbb8f2c922763cd9e29a4c59a5a4661ecbb69db2b4a66671e138b76bb9f18c77e77df420a8fde686661ada8b0427d549545f1733feb9aeeb61ca5555693966e63e19c18a3bac438118a9425b7ff55e5f675d5596daab57aa5d617e3b8c20a631c974d1daa436247bb72f9b8345a4465a044b408ad42a34c8c23b74babd026fe64f02780dbbeaa4ce20d1dda94f07fde9571edb36e012e8dfb77c6cdb9dfe56ab5bfc332b7bb5c73de3d373bfe52973e7fdd47bbaa49f1a6bf22f1a92efd644bb73fc933bffa225a621c39639c6ec88b573245d122134adfb5ddd9113d839bc438ed5499c40f5a06f1004c228e8c21e53aeb1c5957fa01791e255c552174d63bebb13eeceeb7d6f358acff307c92b6bb6bd3a876a7d1b4d6f358acff30b4d6f358acff9032c128138c32c128138c32c12813ecf6f7ac3ba7cabaa6bfd50ac37f16cbf35e336b3d8fc5fa0fc32aebcee548b793fe54b9d66c446fd73d9be6ed9cc8659332f5ed3e977cd9cf555fddc72e8fc1f82fafb0f9dce7a8f5b9ca8134ddc7b71eab6b86bcfa8a35b2cea14cec5f6d79f93aed4784488b328851dc7e6eeb5a2e106ec7599551260bc4a3293425dac28b55565f114765126f508839d50859d35f9d784db9f5c9ed7eae323b3d59955559955519f70a6db8d98d03a80718837e74f50bde0b948950de41d29974e9f805ca977789a22ead4bbbcfde0a86e76218cc1671c83c7d261271cc3c7dae41e248280ee9537b3b9087c41bfacc420b2ec41b0e8b66aef054cfefdf94fbed8138d56f204df7dbfb50bd05b7ad0381da6b1f443e86c9d0c535c80f8c5c1a79646ecb801c8b377c2b941703320c28a3bada75dfa30363fb50752e86d149bd49572afbe2e1a4aaaaae7409b80c7b014317f0b9ab1f078937f4bd8f85c41bfaab8f53106fe8ab3e1ec22151f7d1cb314c7e608138904b19263fe015540ff0715530f90105c23486d188e06f3f87aa0291a7a565c57d34f519b67d3435166fe8479e0ab5eaa1a47e0fffed2b08c47d8f7e8e9338a4df7dbd146fe8731fc3f8a86be86f96c63ceab13a678602c9530585438a816465de8cc5f4b4b0e9722d16154bbd6229582c45144bc56229a358eac86933a731398de6b426a7d59cf6e434a8cbb0ae8159222fc632faa31009266b6daf30eaa1584f5eedf2ac6916b346de118beb51e7d0a7aee188a39fbfb68842d8b3a23c28a4a7566d0a5b1fb29e3e7948b5cbae969367d40cc93ec5a8a819927d9ad4459f2eff74591dfce7b6b9b8dcb8855782bc2edbd97823fdc64e41b900a1545cba7394214650b27c4b33276719c3eaec27002997931d7d8ebb5ebafc7997f3aecae54fc6e5a68cb3573cfaa6de05595cfe589773da1497bf025c6e0e5dfe685c8e1ab9fcfde56a1297bf19d709282e7f3997db5cd0c2e5efbb5c2a55573cea8d3317fc307f50176a27bf278e5cfafcd1d08fb9db73b61be2f297ba5bb5fe821771387ba2c9f6c5f893712547a34feaab6fc6955cede2d3b8fee3ed91d75f6cf7b3f09ca846e34ed089aec86fa888e38b375dc41c50d6f4f702a0128042f4e0fab7ddb65978fcaeefafdfc79b7e6b83efa7793be785c8e6caed8f4d6bca12a1346501c07585aa5914447a7abb1c0be3c81ddcfee2ba5a7e0d7e37e2b8e0a20d97bfe2bb091bd751bad9c0dcba6d4e764dab0d1079003abff6dbcf25a7f7db00a1d48652fafef4b3815d1bd9dd61ff6c5e1c527aa9fbfbab8ad9440517ea2d1f5e96ce39ab6066669a440ebcdafc03ad6be25dc2c91830a74edd7fbabd69dddd3d5b9dc415d5e50d1d1f7ce8eeee6e6fafb913e19e9e84145c2375bf2c211db9bbbb7777cf9d1e28160a349ee877db4d935169e97e827a9418c9acc0703b3e3e485cac523fb3201a50d053d744cbf5e840c40466654c886c8d490ca68707232649647aa8bdf41c3db9f4e430633203979e244f4cb0b4747777cf0eee09e8567b0f445d132d8d85028c13ebdf46681346993f7cdb3c77772a5d5cb7c18af16c84369ee25a6e8c9244c8dd6e8c9284c8cce1851def367abd5e35f0e0a465f64e8fcf920d4c5ca65d2393480eb080725284c20c61786104832ae69cedafd7eb069ac7b31b3ab11b9788405d7ef7981314da9ab4d7eba584879aa555f2d38d4b32bcf8899999a348819028b0e5880796d082081841c660220adb3014437b77ff98b294430a6240e1e1296609c9d0e5293a18c2658964b15000000c9c099d1bd4106d0e35cdf6f6ee0984b53b3d3e2820754db4fe23e3a1d69f201a50d093a700e5b9c75e2a6dd16ee88861450c2731ae00f911c489d11843ac88b18591a5a1dae54aa94fafb94f9f73523a652da4aa4f9f598f4f0a30f71f19105bdd81825e34f722b2a4eaec308cda7d4e9f73323333f3644ab158669e313354d7444b821fe4f20b511a4d23d165708149111cf8904513465cf8210655b458e143450c706207238a3c010bc3098ffb00041620c068b96c0b92540b5c8b3a10770204918492205a9e4eeb46eb5bdc909620840822c62dbffeacce49001753c862b044162ab0018fff330e2bb9fea115d7df8671bcd5ba4173231426a24b6f84c224e4ba5ab38d099b1ba12cf1bade8d50a480616b08420516ed43dcbd05d7ad9442851b7323142958c4a0242391c4e5ff2697bf35bbfc3b4e2eff8f7c72f975f0ef600e02c213435e40b2028c28537a48526da5468cc2d02285231c825c611e8c383b867c419180e5c5b9b316ca5afb3bfc437bc9c9e3680d83852e45c1a56aad9577b8b556196aadf5052edc5a6da5b5d65a29adb5d65aadfd826c2a750395eb98eda88db0a3b2d0821923642415d9c40f5050069c07db0838c2d93074cc14a0629acae888da511b6107550275797ab70fbdd01af334c390d70c2b1825a4a3ee766ef6e9dd4dfa7243e7c90e9e98b9bdbd9b8d307315676666666666666e9e482d2e37384d6fa2f27688bafdee3d57508790828889119614bc4005213e7dbaaba00b2a62d04553124b8838cda4f4304b5ac910040859136fdaede303a3ddfe391b36673d5284ce305b56475e31b21b78aa276358e994805ce194521842432a09d4914d69e8e84789db9f5a100d28288604085a9584cc59c4466160826d30c42b4f703006143e6776eed07c663d3e4748b77f4ea7deea2e027b4aa2032f9414b1c083143114710484121320ce84b7cfacc747490824cbc213a522a2948a78c1e820489125623a283245871d9fad34a4e9f6cfd9afaebbbb9f6081e176f5eeeeee6e6fdee8a45ba55e10cd59844c871f20294058e082c28fb8c165d299280a44ed32517b7b370745126fafb9cf39fb882532b4caf8cc7a7c5ef074f9dd69b389f6a67553fae354b4d01a0314f444480fdded3d5b0b0fe6890d592eb391d501a55e7bbd5e3330f132e90bd28d4f922c21b5b77733333333b30a94c2a8478acce0edee4db4773733333373f35422c6a5a8a8c9a778f17c663d3e49556eff9c505b77b714b727cd7fe8a07386558b8e2747989a7e20e9563d3e44643dc60ee80adefdfa717bfa8f30acea86ce12a723b4495f33a8f0d2211135271729e77e82684041381c4dda518ef8a2f39ad2f1e4862bb7db040e9538ad3b3eb31e1f2586e60482da27423071fbdd7b6755775e709a3e6b73e200439fb8428bccec74c1102de2d499dc6737749e485912e59309ef9d96cfacc7e78993a7db3f678d524aabb4f213238e886a0b50c85c8801094813123940b1c2ed67b5709b0412980035db7bf2ec21283a5abb69dd5da9bc3ac6757777b7fbf4e9ae6a226e77adbbbb9bb8ddb3bbbbbbdbdb841aa1da6740e91320439466f76c6f5ab70e6621cc2c85081b7030777a9272382189e937106d4d992a3d51653611556dddd0894a4d58894f74ce540afc993f6d69402ea093915eaf570c3f516ec861b6056bec46252866b14b676c842e96a0f243101f8ab48043539352d314b3bd87d2e9519010e18a6a141cb278a1952e2111550312850b4b4934fd8d517288d11f6ab42854aab011b5d90e95146dc9ccfd04aae9a7735ab427de3b33286c6d71f8248b1e56e8a2a9e827088806f4b3d33916fc5961a98b297e268d02b56eb48280669ad4ea1395c6744619c348ca9b08184db5d02dc8b283295598aaa08291104144440dd367dc28450523af4a9bde524aeaa6952ea1cd0fa88398000a2909163216c420460b86a00df1843714a5174c1578c6ea6e01cdaeb4c965f2ce0a53be9882cebeae1a50725003568ef3f8ac2c2c9142a540d3053f5ea00033edd2942297eb07e432b89c5670430d62886a8113370471c5d214a720a09d9e16ad003742f1a288730255d3d151a4e8c0797beaee21ae0c8165882c440c11318488223a7d84e9308eda16932a97df9d2b1f5d661d3b46a88da0a373b60dd4d135f2a9cc0b5268d0e13174ee2d9f598f4f931e9a2c6992d464a909134daa34b1d2c4c9670eabe1048abb0d1c53a519d744264bf39a58b57f0aa1b8262a45316521880926a850810a2434a880053f2cf1c9838c199d40a942bb14460151a844a93991e14f5e4d5edb67d6e3139d2081a476a9cb44415244676de5f58799974ca63f5e394cdfa94c790b3a2533c3b82612c56646acd9d1872bc8306d3182b5a27ef1031df100f2a33061494db644d4ea0a1608f25a32848b283568c1c347a4a870d989142197778cf003e43b93eea0cd6a92c5254cb91280256eb6530e959999af245de62b5e70b92b4dc08d2c9838d9e0c8f4c0064438bd6c8d1642cc2006a71a6ad87305c90a1d9c60b09f164a646044189c00a08e6a53b06c01b8b1050e5558b1a2ce5c610115504eb8c8dcf082035dc860062c88d201871d6c98020c29a9989ddac34591295260834db5745a37b4a8c18a113ab7ee1db0d639b7a0210648b381762c182dd36299e1d6ba2445d2ad1368078a1558e84e1655c6706b5d8ac2895b69e4126a2b7c142986ac414a229ecb932946baf5e3b51ea3506b65d547726b57e79ccec2611d52fdeaf92ba17bfaacb2297b55d1e94541f9c4617dee536f81f0a0eacba7ca7d6a49bca9dd150eeb772ddfc1220efb55f575fbbafa2a6b1c5aae314eed56ef550fe481342e402b90c645f5de7ba050d7577d32aa6beaaf9ae6d7afd6561672eb5728af0594501cd6ef40f9545fa5fa1cab57a95ec87f355542fd2a39b347f46554add4be78a0becee975559f92ceea5c882af3e4d777213cf936461a33988606a594d6a094d2a842882fa77811ac414363064bc64c0d069953520040386e8b39d32c64cb3ce2c58f4c133f5e1b2b98f73782ae9f1b5f469062f1d8639cf821f0712318828e89381a3c61c6b5208f09ea10c45f05db35ec3389c7b6735cace76620ddbded7ca4d4990c6e3378d76b2f7ad183a1159f9f23d8e2ec112fbe3f833227b2964adc964ec82828b7f1b6b90c351f9236e7cea33bd30025738ecd342cdff0f71ba91cbcf852709cab4b01b93edc7ba4dedf47f52812585c976520b673224fa511c1e5530ff442532fe4df813952dfa010f7292ebcef7aeb0b3948b3fa548eed8538fbfd5b7dafdfb2bd742e2d2a1afb40fea907eae756bf7df7f613c13f05a6521b48337f7b9ad5c37ce471f997cfe1f22fdc6fffc2bd7ce411dade05a459810ee0ab7a978f3c912715c6554517d5e7c59bfa15ca9bb57c1ebdab8f935dcbd739fdb8f6ab77f58095ad32a97ef771df774dfdd4b7859289c3fa1694330eebd7a734cc6e7d4963b740a05001636bf79fa61fb48982a8f8671644030ac2016c0619cccccc5c6366284d2869a7f1dc002984279a9258c25aa1ee48d7bdb7ee54ae3fc7a5dcc720e2ba6a6623b4b9b9224b7d1b49a0b6221c0e286c33dc086dfc0d1d10b6d60d2a32505181bec0e6d54df1663e1777d84970dbddbd5afa5d67fb90cd74771b980d2c89e3b839674d148ee7d6baed3c7879f0b2fe1f55d552770f5ed703a4bbc31c9d5f6bc4f0e0e5c1ab082ae2d449ab7d6e66ee6ef72ffc3a2f26c6a61ae9e863f8e828e6fb09e2d03ecf1864d956e44120ded89f793e6a49398921307379177f3fc7df2725c8491cce6c0e833c03258f7d3efa1889432ffa034d70e6fd81be6b66644a06f7c0a14db15e0653c431e3edb31211078db7cf53240e1b71689f4b819c146feccf2ff2708c44bcb14f3f4e22ded897f9b849bcb15f7be95a66126fac2cded899ef97c1b37d96314e77ad6d6bad8de2da21d8b5562582f7343e5622ded8e7de07cffc68ea7ca0edc11e4a2a08e43d07f6e0de037bccdf401f3c6c34e5dab74d5c6bbf7867cca8501e0b64240eedcb00f928e6da972b90a65a90a66eef8142de6f1eb8813a5d635fc841ff1cdbbfbcbf10cc6f395ce8e51d8c3c332190b7fbfeba996799d7a04bcafc0ecfccd8174f026acf1449c5a018f04726c54120e2b01231b42e6f5fa773ecdb8fad63a3fc20da77710199294585d7ea9cf9f6c3cee1de3e573b1927d9ce19a704f926d85b8209deede74fe21acb47c41bfbfc31937800fb9c94599995321799fc8002e91787f6ed14af53f3559f63be8afa6ffeab07f25fbd7f0c08b47d0feeb7eda389f918d0017c9929ded88f5d13792a944c9dc2eb5fbd3fd0ea1deca124e67b4c9066f5312090f73d3890a6823ce43dc1a3e9603ec7f630dc0bcddf3e07f72fa0d073ef7523b87c7c8543fba9afb1c41bfbdec7b2aeb1dff2f1ea8bf669ccdbc1a1b54f69f0a47d56e77020cfdeb28c431b2f0f79ebcfb76ced06c53ee4363389ae3f17376e7321c6eeafe563c71d4be9799fcbcb9727ba5e3fbef1e3dbd27b39846b3c268fe217af1ce21ce5e42b55db6f2d782ee9abf7d4fb47d0258964116974fda7ca32bf3c80c695a0ad81d72f8770e849184c0b8fbfae38cb4d971809639c79fde5102cd75fcae412e7ccd46491153fbaee32e93a4f6ab33f8ce3721d8ce3ea801847eec0bf704b81e9bfe26c807825f84c8125db95bc9cc749fb2e5bdff5deb532aee57e87af2dc0b534aefd6b675c9b736dfdbe6b39996bbb6b5faea5d9b6af1fcdf6313755bfd4b5db6faceb35ae7fc7621cfbdbadb1d5addabbd56fc6e5d8ae4cf844f0a9ae4d7d4e020b9e7c57f41f119e22ed5d5b7f2be290411e0131470a913533ae4bc2581be892355c7f97cb75b5ae5bd025614855180c2661f1c6dfb97f12752f3facf53c162bc610f8709b0ec80f39f4f76d3e8f1ab7f86df4e7d36ddbbe9d8ee057f039a4519e3f0de5c7438227f4dd21011f36ae08f238a1ef8eede78750ffdb647fe49af82c63b4d1d49d8e9020393a32323252a28812464a1829115322d6b28d60c6b0bd5f7247f667f6e1522a71d1869c52728e0dd7707f583de684be73be8c1fb4fc7c8f38dccfb7b18b39f4a7cb3c7f808dcb735f093ce418f7e54db037e6753ac7876906c17c3ad05f7d3a46e01afe160cc41bfe0bc403f0c77c27d8fb024e80df27285e550674a81cc0f7050c6a527d4af54955089db45615c26a45adb5bd6d758bd936be2df4e58700a0dee5d361c87b20cfe3814ae6a75a542d60e470f5295508ab954da578c8ab0305fde5c9e738da2c23e7dcdc561cbd51a6c0c8e1f6b9e6b5a02b5ef161539fbb3fb7c1a38426021fb07127e8cf21c7db4538f7848b365cd2c8dd3b77c68992f5e435c56875581f92a02d0956082a8144c1ca201ec89285429e48a8c48c5a895ac90c1100000008c3160000200c0a074422712449125554720714000d63ac3c64603e1047e3490c83280c62108621c600028021c800609052905105006b7594415a32e045de136a09781e023ae2da0042e537d575416fb981aff879927b08f55f5e564701711b9583df37262745c28f590dd00ebf7873603150f5cbd01f68239cb0d921cfd659231c95c112672801044031afe425a635fa629011ea89370a64ea58591d2d10be0e241c45ccef37b7c898cb43ae0d17c8962ccf49c1bed0a796e551a2da6a670cc953a665b6f9a2928fae5a79fe4d04b438d77b71633b6acbaf6a5b1a6217be330cd17e52a699f62a5b778e20f8d82681f81cf39abd5320f6bf43a88e268edbed6ddd9212307ac665644034926d152e80e3feb794adab3dfe9881c778e95e3966a21b90837f8095d07c2b8fe3f8639ed51b2987207869c9cfef974353ec03ee0cdc730f46b7d46016aaaa731e8c4ff74f83e779560a98db4b9f971730b1c0843d37d499f1daf56c8ddaca0af0a4ce9eb19ab1365003ad9b91be8d868354703aab49308f3e333969dbe6a9c39dbe5c70f78f8d8bf71f8c196137a5de3822b4f98e3e671495172cd71a8d6f148be0465b525262f2c31705b5b505297e1a03fb4a1900d80b477991debce9dcfa96c1ea3a11b4b1168eecf6824d23c7a6293180e61d17740084b55f18130f7ee9688aacfbc9d437a6466a0af67836858b8c02faca2cd8d4fe61d28038ea621651c598cd9a310c22c032904f1be234a82d73146a8322b7a1907b6f5bc260599e242a58524bb04714335e3716c0984b5bb0e471a1c1f5e06ea3162c59a5202a53d3894d098a0878a0ea9ef23e2b90041cbe22a5fa920842c09e1463f2915bf15d885cafb85413a1629068f5dc11b57322069cbc1a003d2b28164b491821f01b94e71f5a15d53bf9dfd7021d10e85d6b49ba47d806a836ba02a1ea58657505d3273ec12baca7b3f2ee86f3ade4aaa3b3305d4b961aaa3e837e20d2efa55965088f135964e405b01188eebd52e4c1c8af60bba878f767d12cdb32c71f03c6cfb3015db284cb00fe6984f1d4e46d1260e613177a488efc74482a033cc71c04dda21c4fee6eda395639c3c9d4116196898b2afa5a257914aa4de0de6f517b8f41700d467821fa4876045ec290ceb75d9696df31e70afcb72cebdeb919ee37b182e699c77cdf19ca7159e3b2bac1071e20a74dec1f60bc3254eb04b2efdd2c47417c4e4a41836d97bfae78398c7e58791a579cee5c604aa27a42390d58a0bb042276fc03e4f781b0d6659061088c40f0f524b77f9dcbb414f7d5d9896f4e24e2771aeeeaa42e5666a8a27c913e2405292de811cd67170383b0fdfbe33d574dc6348d9de534ae1bbe0a9910e03d631a1a7fbea07d6a988c262e0dd839ee6c9bed181bc487271c8c5edbf7db46afe36e7bfdb95dcbf0786b93ff5ef8abcff6d6e901f88c0d6521b5d13be3eea0d0caa1ec9eea3f56ba3f1253b1a45f934aec8c599fa43ee7bece91fbabc5960091441a945f8ef219fd69416c50db08fe7b32d360ab466e928c348f789311f7ca795dd0b6f3b40eafe2249fcf7922c0bda0c88964a8b4ec125920f10e4c4f5ac3fefeadc11b0986b8ce532dcee785aca7258a19c33abff054cf4b63635579a42426286a763253ae5689b0db3bbd9c021f0bee7c8e46d62b9d1ef025c25227a944818f82cfc5a789c81d6fcf157d46a4c2fda789e483c85621446f332590912d222f12b8e96f4c59097d1d8a69a24e6be51f3887c54a38937c2f9cf026d21a3390dee600b38a76634122d08712884d852886236d25fa3afaba90d1413779e77b9336f1bf1f6695ac1db55b2ed1d6eaba524155ddd1fc8d45b29a9acd88f19c2384a223cac8cc7990911ed1da01ff22d27f14e8eeef576a456adaa893fc06d3cad300e3c05398f41f6b9b86abeef241260ab48be1fdcc49bf41797af735246fe87b3a25bcd3e29c11ec7215cee3ac70429e36cb35d097ebc94838b9b0b30af6f94f4d0a10abc95b23d8d475e703fcce91761dc6f7441e89be4d7c8fc0e06f9320352fabb13744a1569cbdfe6920fac21880c48759e68c749233de88a73dfc7441c144fa20ce17bfe68a46d3ade97628885c186be207f0e2910bc63e1b5627059117e9a47599dd0cc8832263b9536b4b78638e77716c022644c310570319438198212ee63b5d356b3b10ca02ba755cb0036b801b0e1f2fc8d70dd3ce05dff32f88d54181f9a2a74ae3b9a341e1e3c24af1a0238f91548e6e8fa81155e8d3366f37d4dba0122c099463c7c3cf54aa7458098d3dac9b0c586f1797a0128bffeb53a14e641e082ac1503aa0ab399ba0120929f544750bcbd674047d48ba4c48c640625cd8d200a7a2dff3b954fec9e5c413da4e5717b069e78a479d58d84d8c375b528b375fe90b54fa629496ae7eb032c576fba7beef792d3e1c6fe944fecb9dd8dd064a2bdba471e8638602e999fb87849248c90aac57ac3aa5392d3cb5ea76eab014f4cd78bb5ce1770825c81c0afa231ad4cd29d45d948513e7fbe2833761bfbda5fc84f0b97fbfe327f9853a7d70324b248a4405c53e91026ff52ccab07c598e7517ea694f771d801a90e829af8320247e0e1ec2ce416a289463a6eb8fb5c8597820a7520ec9e98b7cb86a16a4d039252349e281760e7af2a3a30fcedb7201bc868684090c834f0540078db1df7c36c89f4089184a75ff09197333a6bdc126876b6b411aa9cd9a054427cc936f824e474d2eeec297e3845ca2f37592402e53f07ff912f518b316255e235b8342867e2dbbfb134e296b0780ad29784817a34285fc88e1c0fe272fdfef192001211f5a21efa9b925b492d4190913c3cbc472e39aca406784c91114703a232abf6d601c7afd5080a41b09d3b5602ce63cd0f2f6080862eafba32e63869c11836391888bc6d5cf1a2ee084eebfdde852e01923ffa45e8e42cad4c9b07011968ad71624268eef54a3eb3bec5550e6cbf789768f70be4162db3b2ca3a3bd9ac4b650c73e42174c2e77a28780deac2ebc1713315664d2485955adb4c507052f4c0f3e63a1e78fe1470d5811d9da982d5e5329c07d9bd2e30694d89f13d14d5ff743d0fbe09bee30328d78963e342f00470d3b98ab5a250a7fc2aa6502aa3ba7089f81a22fbcffd088a44c84fe35c9557dfe0a6733186867d3a8e98c12c8824608ad7512ed5e14437323f2ea1d8d61f103be10490a42358d0aa05bfa07801f05442c8db9c966e03da093921bbf71e57a586f22b32a2266e519b63ee2311bda0d3675deeb0a9f80d68584a01c39314fd425da56e8ddfc8d07d494fab57a28d255642f5b719fb5f52e5fdf79e09b912aa05f8f15fe8d14333be19e24db1be50b34de6035118089a8cf960bbdb0c816a1e938663c6615bacee15897697923ec17ff146b59a83850795b6702895ac42e24fda7bed2f50b9357f1df74e9dc032c789c9c3e405c9ccfc983e391f1fe3effd1e456d00cbaaf656061550c2d61dad78cfebb4406706ea1e0984c88c715b1caef090df7181c4c414b6f1bf62c35c4d3fa31b35983c6ac17b083b855f766d8e8f0040e8cdd24aad1c086daf8fed38b71c28c6fd4f0056e52b02d8c0dc54964f407ef939c562240405f844bc42dd0c2fa94c7f1a8488e087ff1b334d1250d3c91b23907fd24a969e7c0306ad4095ad0210b08e1d0021de785083002a647147b5070316fdc1348354dedb06cddf0fcbd172644d6f5522d28f640529d7852e27ea481b011e944a0b07adbbe523f4fec816e4c11a69dc8080bbe00aae90b24a92fb0caa11d30e55434dcc483facc5d3e5387fcd0e82630203b576eae839e86c0005a0ad18c97e5d43b91634be44c19064d39d8ca0de1a041aff2e03ceced32a6ca7dd03b6c0341fd852524fc5e710c9235acdb20e273e0fac05c33b108aa96035bccaf298ca644b7e8f94bd54103db62cbbb67888345ec8aecbca1734ba499fd8e9491a4db18001424a68f3bbf66b25c2c32d8e5ca6dbb97c5cb658797fb151dd5574e2b76f47d0658b2284cb73731cee7ec5ee64f4bfa8d7a74335e44f16baad10dbb3c76d2d324e064120597ecaefce926c62f2c40023d1d00057802f3956a722eb789475bf7ff5e7c89180b06901936e1ae303541a0a763108ad2602f105a3e2e6228f5e62fa77512c21ab7445eee6dacc8cc305b92fb90891951b4c021e6f09764328022d2330596b24048c7d715763bf2e7ccd57c2fa242615bbc49090fde8da6891d8011bbd79f002e1c89de5f25e3015575a07c22da84ab0fbeb79e293022fcde5a8ca5589275d7ad831e460da87a6e2341e849b4c706951aebe23bf2ad0bd0c502c8dc282a78b5a5c52c883fbf7aaca45202fc65c7306c6a42a501a56355ae96dc3d26fbb05d12c9291ed3bff3939a7a98e268ef495d207c526efb995d1dab86d6209e8a81a1d400931cf2c1d9f2ef0ba5904a351bfdc31065b671098408a165111a3eda2f4f4a58401ff979908102341a468cbae11ac4c2240dce2f2f124bb94488ad1bf104e8ec44f041538ef0fa7386da444e3182001a1fe6fc80d971bd788273d7cc8eb1c10ce1e8a9c638aa5e48233c8a3c6b7dd3a010fd05a0052499b871d5e16635640f293190eb54b141665123898fced250c91c797696fda47c50a140a8941c9db029db86b7b13b00835c706b5be6c67c2b829ac7e84918d8b72ceb3a0a0b996a7a3c4035dcbdd3434a858c1f14139dde894d9398b850c1c09f8d505d22ee5c9a53d5afd5a0cf1b41e1b79cbfc6c9708488d68632e137de9026b96c2c33c41784c880299c3e9eb8eea2a497009063cdea4d7f32f10f0ec7c6a907ab83b4a7b42689e214d6bc745aac744d696d4f588f3f9cae690456df98b5543d46ef853ba269800eaa8867a875277eda7768f0d364c68122d4074169f7a5460ee41c8370788cd9dcbfbd26d2c5a0fc0fd56388320e5a6d2e72012cd833e38cca64146d7a7f0c32e15d987256fb79f1d1666b891a48c2861fc015820deeb673abb83f953d6662c6cd6d0ca476878b7bbf8fceb10388f66696e1f9e47b5a77be4fb271d25ad2103efa5558ceba3f145a8426435905c79ce319c42b3fa61e62124c42660a712bcf838eb61a68526235bfa5d42c6916f25277d7ec5066aafd0ffaa060943da57422c7f655fb78f4db58351a3a018990e5f504bf12bedc5a9ee09e35156a34441a2549142e05f6b8340d12b7ea0e562e5dfde3670a6f6abadcec380c86b826fc6d61f8074711790b6823a4921f8ece3a390bc3f670fecb8165de8aeb84c413ff804d631ff87a70e7eb7e8f1c2fa5641f144e3c4e3d9881cb2455df9cbe163723c6da8c558ad7d347b428c6340f1592864a1c9216e3549193bd1b4e488fd99d8a2d19bda40ddc71e67ba5080a8769a3ffd9d10c4fee51a3ec296e9ba81d810f3aeda326eee54783a4588bc659139af87294ac11a404d7d41e8d61f47521e2ac8e8e660aee3d9ab11650e0513765793d24daf4997f232c4633b71d8a52344770d83a7a61560f3a532b814935c8fe0dd2a116c7505ab94960ea227094a97ca7dc278a2944eb9ada2f6870076ecc27fab0e96ef05181195111536c03cecbb5949713d01998c93dd96e4e1a2f3a6160c802836e528c0fd230fd39a395a31b84e69ee3458aa96c34bf7312134633d60c9d03e3f577ab86702eb6f6ab8c386b96cd397fbe8e04d631f274d5a63356eaa4bf3ded2d2ec31b6844ba04356a8a186b45a4ca8c1a436cfffa5cfe2d48f884f9818dafd7a7b1e281d487e081b3ba225729c8e34a133bcd68a8e21af55a07b60d813440e99ce6808753fb2603c8f1234cb2c3392434863e77e2cd6a082556ce99831bf156d249b242799bc27a55b1754e955d63b16ad6a5370f90d620a948263415c623b8d545121abf9c8eeefd84e18e557a00dcd6d40dcbc8daa2f9a5e335058eb7b4e471ecbd69c07004148cf13fc741729b6d925497e96f580cbb59eae77032131ef521a2ab5ad91fe3aadd9f6c702b35eb20caf05d23280e65b7ee74137d1b6be073bd339f7a7f4dd499e9fb95864f69326667d83b3887ed94552c68552892f65c8b4228923822e9531274ff09b0ee97d3d40a8b04a3c2006c6a5ae19501ecafc875c3cc011f36a8fcc6550d45b81d396e309298fefe122b96f53cbb51c93712e5026e9c1c38da5d975cd19c9fcd50d17e7a5ed6ef7571314a75803f6b396448abbcc35b4aeca606f2e3af3556329f299745253c9572d8edd2c4795d3b772169834dc580d2fb2471c65c179cdcab870ce2fe1a0e0624054c2d8bc2e74361857510e239d9b0e71bc5048db8e9c3cb8f69f8d8143bad636fda89633e07de247aa60a173dea460880708ebd146edf8b97a2615afc0ea1aa95716b8f02e8e5e2bec4e393dce7113de33d185b8833c9c44ac63549ce6413565c1376f55da3896e272cc9cb33c50dfc3268c8e76c2263a949943853375850fa8e70be7151edde8cfb2409fb507df055733a9a8a2c2b657b072eb6dd24e4622a2d40fc732d72da757a03f2880ef3c4ca5b05262fbe05878038956d238862192b92d32926cec3a18516be352204d12f83830194039f80d6e4ca0c149180e5d2f9d57a60b5c47d96bcec337da0502ada948c93659d50cab7d75bee72dca5f3ee9039fd2e10ba1b8889e403dfdfa6e671c544ac113f54797204933c312d2238e5766ab193a29ce955e80a4157ef7a93799f15f7c4562d764ba82c543760334d3b8d239c45cc449fc7d3dc8cb65b7b60b66407b2f504f638c78fa908453d376696e535c745bef46e3f7a23f567b21c3fbb63dacf609d5e32f4b65f9337bce8f7063abcff5182111c3c3880ec8ca7eb31458a75ce7df102018e43ed1c985aa17367872bc2d4da8171d80ce93c0030311d8ba240d10f23bd464203e022e119d817c632750fb98f344e09761215c7c8b8da406292e8c3f5728189d42da8849f45fb9a1d70570aae5732e903ced03a271b4a10962e0638a40a5eada5107708dda5f2d08e714ebfc11dc474ce8703313475647cd73cd3839567ca58c691673ced93e264a8722290de2bcb084a790e0e6074479fa5ccf514d64c0a4a6e1c71876294c49511fb04c008d60caaa785f0bfecaaf934e8fd8d7fbdc90621d40a49eee6d3070aaf202e0ed899b404f66153c7a84a0a206922d6e9a1d6215ec814d0c70ffe1f6ba8af1f17ce8d2436e97d357d1ae3c16cdf06fca5a26daa3712c70195f56768fb3f9aabc04f3ffff97f9e3d2d80a7b571fa5692a83eccd0d3c9b851527b94d51c2356c6651e080ce3fb8c814d4af1c3de6044af8a87570cc771021e6134ca6834b322c995ec2415b0d4781ffb9637ef6c841250c5e1494efa7cbbcea816339b14553e5696450cf5ad1df0e7493765963c59cdff61d664d68e4417c2f1f839e5eeb5c1a64a8d16277abb40d6b494bebcf1a0d178db4ea2debaf2577a09dffb07711cf145532c4da694d6fbc1e5745772ce9012d55b59071392e972219a1e2e2ffcde5455de4a9d9334eed7e08f64ad604bac925db177a2c400def499dbf0ef7f15b46c66e7774a15ce035c574689e68ac6197312c99d2847123d7144566c61e1e699f47b2a077540d1041191b7361faa49719df01bf60a98596b1fc2b7b33882f3f0b20f71078660a54dc57719af113d74e305c0977a70944075a0ab4f9efe18f870eb9fcb5c534b3d43210d96378ee074e905913aca75cb8f97ef84cad316760ef51eb27b0ede9de01e9a5e49033d4f8f84f8e109fa4fa1d769c4a69141ce6dbfb86173acc707f00b1b666599d80593c654700fc0eef19b41d81dfada966f2c59c16938a5ecce089cdd33e5ae27d100c44c51eaeb1aff6fb4b07c6206a59de2a43874735a3749012502191bb072f3de880f63f8ce061f1b7206e420d230201e1aa65f8ada3c4e2dcfdc6a57b64c377213a335982a526f9ac5003b8b3d8957530449905cd853a6f6d19fb8707e847757bcb8d2c5b94db1b13f013de5eedc1b5ace246b4accd8571770f7c3dd74a503786c34ba6e63ffde8e680a9fd9dd0bf49e21797c024bfd8dd2387d4088b7e5e31c809ca629d8089884e2accb4458b5884a169fbbcf58a271b1bcaed330e8fe664c471fcfe2875949de21d4d1e2de9d8436bb3514ededf5211111912e4d05b3706e015b1cca8e9e5bb09a6670ffd17070090bd09b7770251ff5d228c1f05a5d1d98b3bf1ea211e0a0fa195803ef091db5af301283abe8a4f0893e10f4366a11aca4701193d21bd407acc4ef926bd631186890742f1ac0d9a0b39f583a41b841b97c77c44bd20ad69177f3bfefa0369fc449576411ec7ff986b5d1c6ed4a8715fd144ff493d65cfe46956ad96e3974fbf258e76bca5a3cb408117179177f3fda984e177e0340f3eea8f8ae84f1e72b42d399a2cb8fee57e2a3381ae2ff1a0e8694a5283fa8ea0e3f0ff7c41c3abfe019e185fe533c267df33563c1b1613a1d047432c4329f2b99d5ecd14a446b6b934c53a871d68d9b762b9e650dbc6af291bb49d8e6020ad23ff3a3b131656aa989e462825f4400f4cfa0124145a60aa472b6f37294a6626a7b738c011467aa2514ff95d0f669d64509eaed9bc2959e0b6a9d16ed9f9a3f49cdfcfe1f878295fd8cd108420c0506fcac4e4260051945ee2f3ac165d0f08f35699eec5e1fa0be6d39f1b1ec7e0574f0fdda1af55425b80b763cf01d14af3218e65bee9502cb1c85e1361721b236cccf72f767099cc9459974d276f5854a099d842303a7ab28c34617dc04d10f65b3c8c7da8f6949c2409b3f5a30825679ce3de2431b2826b7d321dfb1de3f45586f886bf0d5faff9c6708c2d3f630074f0354cb4ea2ec5a58bb31666711319592c10c1c65bd762c3a26899737df31f26410bb7288cc4f87961680ff998f1cf558914156119d9fd59231b7b7a636265513bf8a42978ffa88ad62624451d28a01b919c7364283c0bd351942373f39fd18b84673415315bbdc7bdffe69a11f1e6a30579f028830c9ef9b39b860430a869723214b1fd2e019d24f72285902aa840c42b40e02717b4944a411f12c4730f86d74ca81140c7106180da141fd6f3ab846ea69a2f9ba44f4bf6b0b8194d63e69a475a8e659a19bded9dda96673a68c0983b86b0214b6d4383df6c99d8579cbe7fece6cb2fdebf094dc1a7fbb005257798734b4682d287eeb00fcc3199e71aee4e0ee73719b406d354b7bce01a2099a24388b44f8f81e7a6161440e5b249e64118529d7aa722e8047826b02206a0048afd3e5b062a9902ba6a7b7712beb87df46356b909c96191a20f83af3383e137d1ad1a4870fb2acdb4893bd3628c2b71dcfcfe86b967dbe36c9d0c453e99214eebff4aafe7b1a4613ab45d68e1f149ae563b8d6edc646877c90156490b22eebfb595ddf3e1e25785c1c01c671d62a9fd88e23bab8c40833bd23916d24d842b2fd6d8a3f44d545d153c776e509ad83868e6c60f6d4d2fb006e4a5b00d5940ff9e1d1759e9c909d003c4e27235b41a386b20e44b230f8047d64b9cfa4e5c8ce51352da76cb826948801851ea5d86690c58dc22a4d9f70477e1808dac21e78f2183f8188eea45f5d80018ea3cc4c525a88ca73cdd73766faed201c30dbe38a9092d14533fedf840c0d7544d20dfadf73dc10f927e4cc0cb3427aca85a58b8bdcb22e8278db5abf433f3da271a11ccd3cedb25e213d9bfc2d7d0c352d93bf577a69076ca71122a6e5e16029fca43b3df8f0b78fe7d3553f9d9618038bd77de004c4622205dca388bccce64ad92df5b26489d43ed65736beef90eebfba067ea921132deb9aafbb4ac055e7d2d7640271fb9b332033a1c4df85f82fea92fe4aef7a31af0862fd6ca6eccc763602075d6b98c7345c9da299e175c6f441a16f1222c23cd29d849280ba9c28cddeaf63356f64013062f966b59d571d6b32e71af1be02aeacc60312006652147479ea602891513fdb603939fdfb3624d44d3c4d0ddc533d1a795c2b21ba73bfb4ce87460427506015e469744911b4c36ec725df5125c19d04187e09a0c1ea79ecf1576f045a4f4ce07abfd1525e60f8af973495460203ea04921fec886c017ecc9f135cbfc04d832944eab839db533c551fddf5bb18e1bc9f0cd8f57b438b479bca874b4557b8d4c766e33a725046ea2f7b6f4d6fb7c946bd23041c382e4636777f7f48739c1020f5bb8957d66085ef941d1e55bdcd377316a7e243b26edcf119801f2e91259ed3e321215d534c06c8972a999093014a18124903c98af429f19f9c69712678de0063aab44ad1022906766241291da5f73dc55046cf197a577aea44af2ca573a155a870947007d2dcc738cd2242970fdd8a3cae427c2ff3ea8e2219d8d9636539094c99a44d63b4054a81e004113ee88e676e7e1a05281602fb1158e0a0cb4a3f5c426a073a7da8c56fcd4dab5539e6fba0e1b5103240adaaeb724d20d10979ac4e2d634ac8fb854ee14017e569b1162d47f5c2153ff194364be4b4bc5009aa7044d4aa3e8ddfdcbe604dcb13bac1cfa39a4927e4f08112ed1082c5b45429e4c7dcf14c38a5ba2e96565b318e54c59be894ea6232ad7f500455a762a587c1f488463b80305d5a9514f6531987c45bdaebed697d4127588daa95da05d3231a356c006db4f8030399dff56122342c9fe464a7bceae2a62ace06fa199b169288cd7bbb2b01029efa79917a6791a72720c4e940bf2ed42255eefe117e10c394bc7aaa15ad0c7a240df4eae63463863efe04c104992c41ac86d4f2844af81b704123b698c586048a5dcb23577408f00efd664f9f410a29e282a14853fa5d80a855cce66b701cb60550788cf856d18c26d374cdf24317470a18cda90413d4eae468b8f0aaa7aa16048c2ee2c0ba1d667d2ca8b36a65b369d00e087098876ea7796072612fefcbcd2b31ffd88de83283241ff522aef5f21060814908c59b75fe42b28af74fb39e72040b88aabaaa576287857460560e7754c0c146b9e561124ac4a77869b7951c91c574d18da19c81aed9c0c3eef3fa68e0007bd9bc931b36474522edf32063fd481e5e4b8905f2b8164d6a76745b34146dead100e46af860a3600ca20ded5359bef985577f4643736376b59fd9602ea6a90d14bc3f143be06b95f1c31ecc31815eef3a5f6f140013c7a06db0aa380e5380a5ab33921379995f85c62f7ceaa20d75a6dcf664795ccf1153eacc5a01301ba400332c85b9dc609474acaca841d60847e0752ec228ffbe710c35fbd4500553394b59d07b7121015ae7a4fb76a98ad46263a0ebf5f79b5beba52bfc0ada0819c6eeba34b1c55e685992e804d97fba09680df41d46eb05593f668d5b10760703a8f92a844615291ca86cdfa77f8583c347cf108a037ad98f6b92c3fa5485a5158f41196f43c9c8f697d7b206341243a6cc0cc08d057010d8d5ac07089ccf341e47979e0e8c1b692167eeae5f20ffd76f0c8abf4cbdead6c38da670d2251c7da2bdd9e3fd6ed5dc1fe854b2f475f366c70a71b5e9b4d227bba0869e70f8c0ed07160dfd195aac63f6f3eb4ac65b3126d24662f5b1c6f3477da20f34c5ff64d2d80a1f8a483d974dbe62c108fef0f96d9a847485f1c7a7fcec4ebf0dbb04a280440b210a29ead013ff957a8fc7e28ea5508c6a1a818e03de6b7ddd40c1734e15535a53d276b21d38f21a90f587824ebbbce3abf4c134592e2400798b0fb4420c710db0202f5a3159def490a68a1acf52e73b5f4d7e05f6ad18c56fe0467b73214d3e6559f0bad9cafa9295f5a534e55369c6ea30e7b6809d0131fd1bad47a50a86b1db438011380d55b5a7f539d8f433d279dbf2fcd4c27c57389d7500f9f6bae93c3d3e90bcc6195db7bea5699025579d538fd59416b3428e09cf2b150c0955d6dbd20230be246b383630c3d43120fc43cd768311a3ddc3a8f896f4ece7d4cce2bd712658b67725381ff97ffcb5c7f770c22b5dd47c688d57532b5e716179e1779db1195945d849838b97c1f8a448226d4e92cd8ed6e2c808211856436749acabaa46ca44e9c851956490c8ca2812b333c951fd06295b97f488c34824f09b743d9c187f0bf52ffd325d8062c6e23b9fa57813b0d62a75a56651097bf590e12b09ac1725dc69b98a8c6d469ba568393c9b45258083b4a8a21c818fb75e45906ba7d56bf54b10e0b0d971cba5c2841b7c3c19928a7c107311f943260843a641f9f29dc5cbc6ee58896c5af3a844648db60929a60875e384fcf7dd556513de56c0b72d61b7e7108d6ae0f4cd376f09c755db44c4c171828f5b8c59dd931227b64d08a670bf8b36c1968438c1729be0ae73ab924af22693b5b651be4ebfe673484c1c5a0c6bdf133bf31d50d50060aad5d73275bcbef9bd4a39e1f82f0e53825d15f9062419a04626ef41a8074de3e98ceb29b8e5dc8c464761ec19d8d8e08d23ccfa2c33226e0c690c74cc05a7393cf68e45a9d62eb1001c02e9135d036824fa4810b855709818b0ecf5f1fee6896004a14c11a440bc451a9c62e73d15f7b78235f066938275544aa368c27dbe58aec954432446fe158bc41da78017d6dfa0877f69f28ab0d105a6150afdab28eaaf0bb9552f49ad1fc246faf88c14f305a2122e44eb2a217ea4214e4affb7d2cac723a31a486d9aa838aeaf1ff243a02a7ddbc07ba6ae1453410503dc91383fecc82bf5143b2a18eea97765cda82c8209d21a7624fbc928479d723fd805219d28245e8bca6249353af8f43ad11caf031c0747a8ae20beeb3b0b62d44eba04019037b2045d53a978033de99a440531e12b563cc909ab8922fd9960b7e1c72bb94a86bc81236b3c3411d46240640dd6a62c3afce3b28b794c19581fed34b47219dfc9dea97249dcce2efc32247992e7412dbc4aea66c5be27657e4d1daa5cc905403537b6264aa7247b117ccc3f23e6fc8856f4ecd9da915ae0001e8e44d3024b1f96d3829a53650832533f23a60e01aa926af381eb3f98f53f232e46b769a2a4dedfbb9b65638e7bc383a7e32976c2552044bc6b553ce2d55d91a2daa1ce4e7154ef67c42b44eea8963ee8bd4153b3531d35cedb839ea2b88afa0ced0bb7b82a40cf158dddd3a5e96807ef957380a35eb0fb6e37ef0031f75334ac203126c879ff113002383af3296be283b75b3b2a27ab3ffaf57c05691ec99778e25979e31d591b1685a5b2b8dd014c53f9af89722fcbe47f09a4821c0761239aa50d0abcc28e7a75ee9ec102bafc3da49dadf1667f3188fabe2c5d1d39102fef9143387467da39720461a6677fb63ddae82a79ad4d8bd34d6189d9c1bb1a950a521caf40422ec00c01bb593a823150d8e19e63cf8bf7b5f6ef532c6c918ba4bd609141bf5fc9630180104fedc1228e3eaf249d96ce7c8e5ab6b3afcf0efb00ba52c0b16d139a430cbc1516037c543abaa2ea6af71a44b5e937309b0d9dae103a8d0d3a1d063a7d3fa73981ad7435fb1cda1678e02afd4320371c6615eaa5ca23854672912e9c83971194640b524e206177120451b191be89fd8c057ee6cf1115de69fb99bbd60a6be530c29e17a0d18951142487107a9188941867e4fcc49b5380cc5ba4f8313d07343a15acd909739772e092e809cd08be42d0d4fc05ee5ca47562ac06900ce4576e9d4d16d4811e33617d017ea1594207b7f801398da5e0e5ce16f05de5877d680c5793853badc1c1a5a9dfc50f39a68599f1b9b000c10c39c66de4464ad71dda740efc207986ad5f66aa42d047252063e1fdc169c0fdb6939c2876ee2d23e5444d27c56a7ac9d2115eb9952202da13805ccafa578c252fc07d45084543fe55a6fc6d3dee08bda53096a06399c40e841c77d0075731ad794cddfbb0ea2d67bef1195b72140a5c5d1d1dd6eaf2510d8c287d791194e6f57a2d53cd64dcd686340c46b34f6e8880a559bf2078c4ae9ef405fb9d7a4604e8dd09a3623db5f94ce3dca2d93d9dac783be6e328d547a562c9ce6ace58896dd55642d7bdbe517d50e4e47afe5fe7de8e4818674742795abf5ad84da5de84a41009783d71d6b2ea8a183ef9f604ebf5543e2a179b0228e7b4d99ca32933b2d7984f54852398a54875d1ffe1a1fcdf50fd8ad7a56ddd5df524f519f33c95061d02b11cfc9ccb393910e5da077b031edc40a1c48133d9d713345e63352a6335c2b346f5b245d2044d9411acbb9ac9e9dd904484daf1351f8f9fe7791dcf62fced3ca3b6d6c766437ef4c43edbb22f2e93397eea6654bbd56cd5eb3a06698c1fb00f43de3d2991e8ec279f6a1c1bb86de281f7126ba0b2c8f0f64c8ca3c76eb40107d8afe8e8da8b7c364ee6d7f5ab459564b75630a0c31b26efbaa9baed4444dad820814aed114f3c46966d7acf10aa0db0bc10208e820ecc121aa72b9ad1fa1ec2533bc3a59d7322515040cfbb4f81f76fd5c25d0067de8bee8af287a48e712eae7fffbd1ed5144ad91553787bfd3f64568ff1fa629979a3ef222a75e262e9ce77206984d18716657b5980be8ba95bf5e47118e6dad22569dee48accf543f3d2c80e4fd2e036569c27e85d8fa21fb36a832c53f6c5bd2230eb111cc1a390be2fa12203e6f8526a2d31ea9020ffda2965b0b8306a896681919967484c6a51be2508e66a4f7e306a3918244bc226dbcaffbe16357d0d491d8c5a5f8b580459590263ae501558b8383b7f30ea1075eb0cfe29d5b4b92ac2add209e207a3c650c0bcbd695511b6e64cb0460c465db9539a479c10b59dd0d5ea07a3ae4749c1db0b0b5128d161b9277ebfd08adc866022bdee24ddbef1255fe902068b588e86711376db3ac64f41d36448cf0f332491c11ee62bd0ac17407533d769833219f9de70ba682201fa6bde3fd9e516bf1f7a4872a3417600da520ae683f9912dc2350f6aa3f1aafa7742803e60a2bebf472981028e6c1356f6a13b1631872f0a1d6a0f9315546c4481f74e644a0b83dad2c515cc8aaaa7152532f144a617e3dca76e7ba1a9c88ac58884af896b1ba3a32a426ff04ef1e7deeacddd003d42fae8efd9d5b3b0e6f8d91b3409ee5010f30661fa1eb422a99f3e41947cd424358f95732e9a6b450a91335c506f61e97cc6ab83d91128976c7ae54084801e0683e29262acb6068378b1dce23b89234e603042dee54577079da1c45364eafe47e382d355156232624d5c29fccd7d5ba94f456e9b444b4384cfdb7554f539d115f0be8bfd94f79460b15a9ba7b6d441de0f14e2141bde68b610fac1714714af54faf24dcdd7ad0b61a20785ae3c83cf4071596f79e253749e5babdd28699df32710c680439b6b92517e0d13ab37246d3318719dafb1f3d499c47cc565fd634e29a28abbe1985c79936582dd79ec42a4f7cc677fefec759432f7ec72be310316ce04013251603b9ea52a7db5d451ff58d8b996ed3e23b285e328ae58992b3fab31856f1c7084b7935f7852bab091812e7b5e0137173290b7c1b3b7e7371ed568d96a33efa2639fa1d7a9073da819af7401f1aeaf38dbce0551e6249910f24dd84e3786bf1bab23858e0fc47ae40a9fde2021fce89ffe99536d9732ad91937006e8a30c4f1b27223077bb90626e32483563fd0838e44e6d90755d57836458dc1b154c5fb2a5a06179377a5846f6b7392d46b6fd78029df54fdf24efb102d0b5cdcbf6ba4ae9407d342cd292583ecef283da565c63a6f143eb05ef9674646830e6ce8c082b07701521c81a0ddc879b188e11cac4b913cd252440d3b52cadeb67b8a8452003ec8ded5a96fb5b8add9b5543eb458dcbcf13ff4e24c95f23d1d9c3c3af518e4a21cb673b6cd90a91707af931c85ccba2d333fc7a0a5dc78185999b321d09d682564c680c009f5f2c8a060460cf7013124197e5577b2b56bc3155537da63b64baff052ac5ff15a4f68db2468f576fbd525f94668501ddd4138326009a9d6175d32e6303a06a053b496704934381168ce795d9cb7418b9ae23dd354c6915e69e3c709d68a7bac8a3ad4a09bd74209200ab043924c6d6df9544d8e5ee0c743e3c36fac52a18af831b87551fdafb07ebcee8735c6a90b663a6906e05bf2df919a90c1278d442ab1562f611c7fdfbbe3200061df1e63e1e87f10c103fa648c720abcb81160eabeb1a3cf561df37e72e689d1c4794c3c5199f734c9fcfa70ffa8b8c211dbc8e82d846908af5faf7e7f9c97a641f0bd4c5561ec2be62bd0eaeb7b727b1eb66f9fa901695585f4114d7ce09adc792698f75c68d8d1fda0d545bdf8141ae6e3a35e2dceb7ec0e028038eb267e3188d91217d1de49d2924889889b2f33150b9035a44428529b12b0ed9ee4458f943dfb94b2ab1209fac4d9b41bd866b9823aa3c863ebd0b76ab566cd69902ebf30112cb693081b9b3d4f89621c87bbf1f15d96dc51fc1d228726c157d6e030c1137d8474d8f9cb433ec1a4ca4825ad18c3459966456bfd5999ccdde467a02181058dd73def7c182e82aa6c31d22b03d8e0387822aaef1a4431f91fdb64892a25773b63336084708adc22349d59a3806a6d0762f33c8d0cead8789fd925fb356bcb67d9346dfe9c16cd01f83d955a0903a40d7a6a1eda85e48facb0d62e06d49ffac89ef311f7fc547ca74785f0cdc9e841d17d4436f089536365f92e7189b4e952eead9c20055ff830762120660793e265c063744e2b4305e07d055c1e45af0e9155ae6f002d46c3c13bf450f0c42265ae2977b7b222121849df44099dbcfcacc5e8cd61d862ec2a9f0649a86a1710011b59f9938bddded2903784c267353482f4ae48dec9a697562446fe406a315d4f53e53d124e53e76babed81c0c0133d70b7b86d5245f89276ac1b458fa1acad85d5b1e70040223e3eb3b2090c68fc4c728c95fb3cb4ed64f5064acf658418d30766c4648dcfab91bd345c05e2d054918a85c22ce9c421a548a52739609f090dfbdc2d29648a8a6ef4f52fcadde6c2c50470a39bee902eb5134426f24c93735a04cac9bf80c694e745c0ac0cb8ab5969172d25fbddc533523da7af670474c7b6a64497ef00b2b6e7c8b91583c7b775496c7ce5b14d8969abc36aeb4228e103b9a12cb0f892f1473734751d32138b2f491862befc8f61294dd50f9421887765a532a7fdd5d586f48ff9d6c10bbf2b25e28d9c4b15d0ded9f0d3e063c9ef03ccd8b14bffd1070c33659d76e95bd6c04ee796ed13489dc04c82377eb02adf51b1532456a1e34b35a3ab66d4975786d59bb82aa17333306b3359d8811fa2bb6691d32696cfdce06050d4d0f26141638badb14d161972cc0b2692468ade9e87b01d96465440a8cf09d6292c4f96215b48bc334c79f3d18c18a8bb65ca124cbde6677850f42575ff9e9a2a761291b75b302366fc8eb868672df5bd511c37cd72d54ac4a9248b6ee2261d6b28f8d35008ed35b85b83266928eb0aa9bc59e011eae673f14a161d03040ff4a1635559c2c2c97465fbed296a0108216cea7010586158cfff5f2eaedc735a1ad9c87fbd2881036fd02f7ce42f5c5ddf950c6485086f1c7060389fe3c72b1793b5235a3f776a41eb6e62767e44e02367e1d8a8508d14e21a08023bae121537e1da7c71dbcb8e47d8bf0a1936650b51185a61c958a7eb0d644b3d0f26d9e184735e5bf28b620c1a5f9745b452fdd5360443f2ea1af6716f4d2d66482cc33af4962591ac9726bf20449ddcfe8d3e746b3d8201d49cbaa59adab718ec9f57362a866985ded95f72a58803a18742311fbda1077a3e764afb31f71695ff252092c2655372ca90b0b7a6c02a43b111f44c91af1b0ae50869be62439e07c504c41e58899bffdbabeaa4b665bda91b8fb17bacdd6327a76ed4df6dddcde31d513fab91bd449beea82d8d74082084962259f390865fff800897983820abea72de84d82bc84da42a5e48fba4395229c6a5f9a9fd0fb1257e18d89dd1889603a17b1c22b83d3df0f5dd7385bf0f1fa197148d8b6c1ae1c8520bfc078a913e1d1037c8097be3fa1badb7791c5cb6bed5d8aa6161afa49a19a4a217900d7c1c4479dd294da30f77bcc8127da86bda8d86c98b841ed6dc2c4b5f83393bebd28a83d272be10372b415f85a142026a45187ae5a000e831b32037ed8bdc4c2702afddb46c1fa6bc0c98400fb2a328852bc11ca77833e0e55c812cdd0318ed8a4cfca65d30524e64a7f4513322c86ed7d07a367e5b9fb8a34b56132425d2b03b21cb9317134c9cdc685f56adbd580dc30ad1c5106255d2d1f7ea069079882e3377da59f313b73f83ef0238e4c72c2f3226ed132710bea812fdcc64e5dc0f36949e7b054053203e5ba40268aceed2e9f40fd5ffb84d0231a9c27813367a9c315953e8d22787c8529fe1c75c26728ed9b310985231cc3c120dd31591aefa3497a92b51a83cbbc66b46e91166ed71b0334d3b7a2910e93977a81ed14cfe54fa2ba47608c37c4f1f9118e96ff5f9a71b59a2533ca5cf3f8020d4e098510b48c36be27f65c3532cadac703209dd691be8ea83c1f52b4a1ffe5f7e35325488fe6e411fb237f0cff057b7b4124971ea9b794bf4b31a7ccf965e54d7347abb86835d707e487db4e95ad2fb7e1597f8dad95ec93f144a0528f58d37fd7c2baab581418b0870473b45c23aee6e674f37ca0bfa2fc404ae712d55f7662001fd465301fb5b3b1b86c9506b76846ede496842279775bca8fe4660772f5761c65a8818c8cc93cae3e4a31b22f77f79c3f6a50872750e8efd7d23a14baccfd29675314c6a6fcec6ec99d088d200e2b776e0a36e76d2bb3fb8f879b183413b2f59f636666ca8e90bfa4e5e5d94eb80e59b714d1c6bd22ecd15f0ed5a52104f1fa49d45b5b028c4492154c58d9540b1f5c839cd3e8bde451dfb8e85093c74fc6219b46b40ea9bcff495272ca2082081d6fe466bd49e560ae91ab30bf9d24f9e74385741239e021f1c20322271907e8bfde8ca516edefcffeece540aadeb4039aa682a1348780cd9ceeaa12393d5b421ed7c56fffa34ac7f7e578f84fd83c431294e827a8f8de867cd8135e3ce11843f40ae8a0a7399d4d8fb426646c26a2b2c0a34f04fd906e697a2db50591cf08bff6f134b2bd9d523624c2286d41a08bf5358384195201f903b17830bbda8de0615b496acc2252516d02d6ff01bc4e122f274bec214537a10fd51790b62621e20c85f776d3bcd90e44ad33b4aba80c502dd299ac927183755abb3f91755c2f2e31213630673fd70aef7aceec5e9fac906e226ef1aca57b93a7b6fcc600fc548a2723d93d4aaa7daaf2119baf4492bb6f650b747224b9cfc5e509c273a20e8aeba0f841901ec25bd95cf0161f5153d3b124768a28110c7772b4b7f510ca118f1cc0fe7b0363b690aa70c47a5d630f6360d8fe93295cf37f16140ac813ee1051bb38ad52ed86f027d5b9aa23b737e150d9b0fc5eeb5d040095a825606b974904002a800198ff08e466652183c89a69356fa7cd790465d644a141eeb33b456597087b10a8723d2d253d0209e85154ef3e1d390d674345f4600e3415e284a861f04ec902117d8c96089dc753c8a71f8d9f16901a7481872fb060d18d5c8f89a52d5e607e1e988ba8fc98ec45038184969d5b001769114872421829389a9b8f361bd1eb11fec016158c3b5c4ac4a4e1c2fae7df7dca9d49dd378f02a11b45db04cafd4711fbd637ba08a05545e0da8433d1344581ba2b9be6e1ecc8d061d62004572ebf43ac66933e483b31fc9500c63dbeb1615323b9592161dcc8ad9632537e07b5e241f9cea6960d51e218a58a7b49b988d3f91d7e7405277d24be58787a9007050de0f4f77cc5de3978150dfc737ce85d001d973be8f995092e3f3e24a74a8a837787a3318166c47fc1170c091c0c16452a5e66652a14102fbadf6c48571a3eadf4b141b5bd424115e71905972d8704aa36357292683a1189c2540ae40ad9059d9976ff954a6d1f54b8552794fc3d8210941ba4a34259441ae922f85575803fd11b484c7157a87f12b4e5172bc4b0509ac5576389f26670ef56e9ee39e75e903774fe7e4c9f863f0eff27e55e1fbcfc26aa4eda5070189a66cd2a7745d33f430628b622981203322057ef2b4950eb55dae39384508095cf97f3f3061a710360e4cbf1d6b825d240f7ccd444509e62c258f6e5b7344e830ab3b9efce97376cac371d826c12d0ebe083207be4c6ad34bdc965f413d41344f69cd8786abd1f0ecec2d03d2766e390db342ccb1c288a11d9870e75a9919aa946ba32dd815a8c0ff6c083704bd42d3d636bd2c57f4333e8084d2b84b890f1f8b0b4282dea9890c1eedad6c1a9bc0b189fddc1f02b2e14eee1d084c0fbc1907a39230c60a33d63c2506fb89bc883a84407da6a18224b967864d1cb2b848d99db18035208eca51c88802bdbfa2cd36a7e0543e9ca642f8bcd4fcf39c9c15f4ccdaff13ec10042e0d877887d720aa1f52a8962406f8330becec4a9cc19d1d4b642d254a5c5e9f6c11486fa3837786e2b941d2b837e6ef4c238a4fc381832fe8c96df40d809a2a63793e6b926833f838625611529ede0cf28c5849c861ec2479668ab4a9792733424c7d38788652d9a0ae701c1b27f3abaf84ede3c9af5d1847ff9f35aa0c656105c3b233c0e58fa42599fef6236fdf9b5d4c32e0cf295404dc34adb085734e1115dc0c73cc4774883a7c7ea644a45e6107ccbbaccf0f9f4c681e289d068902e345fe3ca25421a72f0934ec1c8cd6fc7e32a6479cca2d43020134dcde394d064265bc6d445d33bb429cb5bda1c736c18b7d8a409d2e5c9295a1e44d73f8dab1a0f581fa3d190798d14667e9af0707ff70a6904cba7f2bb5b6a4306a516419023092c1c2accb240c7fc50b046cd03fd8b83beaecb1fe795e4d43f0ab4ebabaa0995b7186ceab624d580366408d19138fc564009c75d8ac5ae4515cf19961b3f289a145dcccd6047666bb1ac401fc408d6ca1a7a48623ad2ba014df6e1be2aa15aba04948e848abe350e208da4ae5bdbb0bfccc8939b6549a31999cc027c19639b3a74d16244c949af471fa42256f14608efc86c9acd2787170b3fc1b6363084a038b8c49bf30d681505df0cfcf275f8adfabb7e5f239cf10b1f1448c255dae99414688c7f699ee4bc1115c848778d50e7d73c37785d3910e6f5ace59aa063321b7c56719f9157557c8ba5a4b6fec4cd84424403cfaeae9c607ea2c858c0ad248e767ff1049971d7dc781f3273b6581a5eba95590aed3d5bbf91aa0aa810323d63e295f54d6f3e5b6c13fee5298f93360bc9a2b592f12fa0949dd119360b0b18d112686d007641405b20e43f14476887e10c2a33d318aea350111278f62592cae81f1c884abb0b65a4ab5be3dae8df5ed7a661c8730ec90cd8276fbda2551e1a15968e6894cd7dc79f073d36fbcce58f0e88545ea88f90344191cc56cc19f53222c1f0775540a1489f9dd33d710ca459a3158de7821fbe58eb5a8a4c8d8539a6c446ac1f8033d56ab47906eb727e92e5836bff3d5e40e64c3fd34176a6e428bf6afbbb1caaa81e967850092182ed2fe11c1df535db346599457ed2e38fa5db4ba44b7cd9bc20be78837a53bd22abb79121039e96aa3269422f501ec5f5f2a7888e8c587e9f434650fca65d804a091b2e19f23b8123990725632e6c8dc4674f1bea7b899ec150e941178a080eba932b92620f617eb21f67880679aff56f76aaf0e831a0a61ca7f9f346738805e18a1ca5e0eb576105aba2158ac975a520fd744fa56e0a1f7a1522c117bc04f04309af545332228270c3904f344a74be82f612382343d7569f67e76488377778e41c48ba105134489e53b8dc984649137a5993d6640f464f517282fe914151f01f81f003f0eb7da05cd70ad7f1a06f7ad265eabd806bea7993a944c6d4d5cbf1499acc4e853043a0e5c8e23456aa134c711f032c7f01f6566942c7c3af138503f1ce0702b81de9d40742462941acb45ee3235ee61f08cc4ae00700cbaa13035348518ad997c296b7cfa82f4b835a28ef34e1be6c505c9b4c4d5f3307fde4cf39f8d093eab167fc307afe03f53fc2fef5a7c70e2a9f047c3fe613bb948d56ca55056cc052bbe9f7454b26c4b92e2f4534aba1f1326c5e61bb5bfde953f29cbe9bdede233f7ed217793db1322bffac05bcaadc2a256e371676c020e878c5734e10f35614bf0ead1a07a9e993b132af8910741433b34a46f6a2ea8d27c0798228e54f4be436086dbe6818937d61f60acc364fb9e2c39ebdc5b4293037cf8f9e2559394d6b53d3af2d2cca0ff6818c02e88769b1b4ea0245127c7a26db5a3135a8f63992dce482e61f937576ee42b2708d01a00975e6bdf7e4c7cc4ed021d63e575caada7eabbe24da1b2594db937ecd7a43a5a38fd9330d920b0d09d671b7fac9bc0e4416cab7cd5739f317af5360a6f8c095fce1f912bf1cbb8d0d4aade997d391c260b8cb399c1cb3d74a21d3e572c62684fb60d0ff5c5ce4a0df70c1967a79aeb3425d89b540bd2a4b86d2b01434b2e543d98eefdc48232b6ead5fc7dfc03ba656e128424388ca75ac9bebdf3903c33d922c91e3fcbfa4323fcbc066f6add67f6bb530eb4a25c915fca2b75a3412b60237db4515aa3a16d6d074d552b351aca18c28d4e38654a71bd6cac398c8cd421190a7c0cb5587add63110641258b2c64f8fe2f6818c16ce4476796c7a69ead97ea51cc43c8c61cfe5de51e674e6914a5a0b0f7bda85243fad0808b3fba3455a3dda071cdf592054fac509624e828a908361a9ade481cdaa14fce50ec11e510a911213ce21d52ed0312c235ab9e426c67a3a86b5d60b2515cf0b3c5438b21423a7b1f086931d299b1124d828ff36e73e250683b667a11c77d9e976c85736e0aecbe9371d26af91def22a350afe6b21927066ebff6ebafa81b8d000a63b04321ca798708731150d4f1c0fc5a35cfbb7f478a054c196af40d105cfcbb82dae474472397bbdd05b50feb977dc9fc4e1654191added6f8050fffdd565131170bca0ba8311d5a578b13c0543478b5fccfb897234ee2aedf0edb74b2ca672595f145b5b522a0880bc5674311fa7e94e824a54f189c45754e1219a22bd06a6b64ea63767e3eb195062bfb2474a01ca5a04267006a7b3b0722e5e5ecc4a78506171381ace49d4e6d928f07858130f406290971c0aab572b18488810f43b01d3dbbc21343c46b1f201c02db2b2558134e2f43aa339ede025eca163fbafcaecf832281cdcfea85ed983de6cbb4d9f766a433ad8105600c6e4777fbc4c340eca8bf721bb13f309132a07677c25fcdfb35f17771adf3b3ee77adf24706c5752f715fca5a4706b573c56192d54e5cb73ae4f167a8431948e15013054fc2bec7283787707fa798261ebc5235ab6fe1eeb8e9600a30425359322966d3f54b14195bb5a8119ecfa73f9b85f668beaa8725939a467d1fcc4df8d439189ddb5f7983ae19c87b43b465dfffe5cd34634245d90a0bae1de4bd9fa1b5e06cbfc9e8a32948e5a0b891c301158841c72ef515de150fb464a1d81eaeae33acda9410c7948bc1c42edf87bff6044366fa51b3b2b5c33cd16052b19f6d181ef4ec0e68e6c772aeb9eeb4e12344694679bdc1173d4b58d82792044244b34c294d26b24062a8efab1c173df416e7b21624195fc12093efb58b63328cdb102975938a5352b987b43ad135eb40ad83060193068fc41afd6bc248451140fddf70cac4477c47934849c7ce92aa9d426e4fd188d2ad1c1e35ba0bbc59683b06a36e046c153df4a0b27b8d96836bdba3441675e4f12c057860ffad473e7ce61e611b983d10571ec8ac8b12a0268577b89ea1785996ff1709311fa2d86d75e6fd80c8a9a37304d059bb2aaa25ff8ccaea9ca6c0945809c9076e52b0c2c708621b15c42ef938a284a0bf875c2f813c60b688db5e45d5690d9de5e010f595b989729f5fdb0e4c4b92fb42086383097be9eafb3c7e8c98d004c89442cf3e05a0637d897b4572dbfe17edd505216245f454d9af3f802ef27cd19eca1ec371b8cee06a35073497d8b2595cbb48ed670da7e5298664dde44d67fe590b149907f83a20e932975b91ae65ca03b754e63dd96e4f19b476aa9bbb447963ca9db262eeed3b6aee6512befd4be766c1843cbcd56f15bec39784a1ae3b79ad8e9cf0302699bbae253f9778182b29ab0569976039f585b974ec1fc73fe26af5057bc0b6926d748e3b7a6a168697b3be2231e36cb87f82ca72542f043527c13ac17bb8689df0b2bd34ce27ea008e219c3e2b4e4ae9f8ebcb73572f4f953851bccb61a4fc41590484b4c059f85215850a6e9375cc2572d54e908a338bf5d1f77784750c16a449de8e71cb6ee7403850ab6954d690ce2526a3e0023bc0755b63462762d477a444cd91b8703d4f0f40c5a2137a2cc040cca81d7de837615cf7e0989c9d2c8703eab96e8a5b405815511bf9d9e949e6cf889dea3d352dcd20a7220f4d171de2f53628522d22c3e252d3e11a6f54987b0c8b54553890dd71c3f17f86fe27b726a03147e198975bf61094e0ecef81282550455f976fedff8488705b4224b2bb7b07b808a40870083a66e35a9573f15c37e7a229cab5b81f55148391bc4a53f7beb5755e5e7f93b411d7ba5ceca12930c80ee27ed0950ff4b916e7daf88bb06eb54ada103d75f0874ef2ccb5b8db3e6058e7cc8c916b31598b6bcd70adf001a07d928a3fddf6f97c3ed3fea9ce89e7866727fba8f9e26e6e6e5098269c9922add3ff44d8c63107b1d0e9979468fb261a078b44ab46819ac9898eb17f52f1b6f9fed371ad19039c712d0ee7da0e39886244c099914ec522189cd9b8bdf20e07a584f234aaaadaaf8f8ac99e2e89b818595470907f9430b9c447eac8d8664aeaaabb32c6f69a2edba27827272e4e76ea167bc4225d94c1ba381399106962131b0e3a7d14189d5ce6edbde6624c84d51f45984ce5ff9a31361d8a8a55d6268b75fa1bfd5cabac8f83b36d0c4393090c438e8a44fe75cceb18efde1ebcbeddbbc38ab03d7ba703b1478405e9c97c146331169c99bcfcd6cbdcdbdac6f62c322155f49dd0a9f8840845a78f4531115686ed6e78eb980ef3faaf652caeb5db2a176ffdcf513ac66e5ba7dd9fceb99762b14d617e6d0aa7d2e5605bd13155847562ec5a6bade5630fa6debd18136130b1a7bb2b2b3aebac37ce7edd51b19fffdadffedabb627fdbd65afb2a5ac6f2114d51151d86b2a7883d74e58349848931ba1259dbd9ce844d253b1ba71061fbd260539cadcf599596e1fab4628f0a1d53b9083b4284ada856ca159345c78034219081cac6579ff38583f9a248c84d6e380a74c33ab04fa90ecacc8ffaf35217b594457f501725814cd1fb9b10b9a2339b8e64c1fcfd8d47b262fc7df197d2d404c0b624ebbe842053f4af0e4dcd48168cbf6f6924eb86bf5f659255c3dfaf33c9b2e1efeaefd79a64b1fe7e8d491897bf9727d5efbf48560b8b9b51198333c374a1292c177f3f9426b95af1f74be44ac5dffb97f3af9cb6f8a62e9aa29cfea029fa9c53978bfd0389142baf62793a43575d8b9240ae3a21648a7ee7f25e34758520575e0e64eabee873b3ca02639c19660c700bd30500dcecc4a72c36699bb699b319c98471da66f2f0745d37634635cd98815d666c54cacfe8bad287c4514350550a47b96a702a4253a7d949a677107fd014155b22daacaae80681f6cd0c11225186b1678d1bf6d4b1993939fc650debf2644d08e75b57388a4227d92956526222e6882f91469c115d62ab542bfd974e442f114c94234a0205a5a6aa86d0c852ed45afca72e1fd286a9b79336fbecedb36e80343188f6ca1285477538372c962301eea22c8dd1c0cb70dca90c54eb0138f0c8e4a7919efc26422a919e27402a348e1204df4025fa2203204b17c31f6090c669ff0bcd8273a9d105d6bf463e7aaa139adf629565514c6a35343227935259a1f2dad45aa2dcaa129d10ba4893f8234d14bf4e244cccc807211c2516c6d5bf71436ec93ec143bb1b8008142a24bbc51b14522686a4624a20169376c140c164893ab172974ba5c628b76940ba655dbc6c5a7d83618e60287e1bbd828d7cd0c111c57c3fea1aa5c885c8844da8602b595dc536c1b17afda36189ca9aa5755d11491f3c8c5b6bbbeb215b003ac010b883980871d99b20b9003cfb6b7be22eea4107752f600444d43b5c1be6d7c929425b6dea463c4d611d864d2376a6fd1c2944948485e5e46946bdbf7e56dd82735ec139e139d97f772f09132f5f9fca3974323aed8a28ba6688b08273009c3df7b94abb2f48b2db1c55f5e484852fe7462718bcc643bc8aaa241ab1252be87141a348f3c16db55db067f8a6dc38285e8d5fd28b6503755257a618e726d2e9b64b15129cfe2746279d48a47e998157fefbd77de7be7bd2c2a9ee56950d467528a6d837f658b2d30d6e9b76caeda0c61d9a8151b354353f4556c94d8e2fe72db559947db84dba6a954aaa464db93061a68303111536c1b955f51e1a89457795110aa4ae122b125fea02cd410f444c75c8e72f584f3514c6289641a894ca6edf9dfb79773495377eff154ab45084ff64bd4194f4ee8f45128576b4c99c4d6abd32f89ad1a843e8aadef23ca650a89ad13139d7e88728d2f7d44b9c69219b18542b9c69320a44694eb06f7f4075df9b0c17a8bba388ceddfbff3c8acedd450667a70b60735e9317d585046175e4cecececd4bab3b3b393842424210375e31c4dd560d21ac5a4d1748744382bd7da681beda660a3d19a65d5045d376448ed66c0c4cece4ead3b3b3b3b7376c01e11ce2a55f8e222b8ce73f5705dc799b0f6b91eef0a439ad8e96962a7a7899d1efcf8d6ca656904b5d68e062ab8f934385bb3355514c3dc973f3330e7a78fb3050528406126836fa6cfcf15569fabac1aeb9b6bfe6442de0fac4f9e208492527ae39ba15dc8526504619d7e9672a6b57ccd75496d78a04055fd505542c28f84f9d00e06e11c67ab96bb02e4c0a3801d1ab0009c98a7f50068e0e8689654dd3260c0f834385bf408cab2351aa456ebb40c77a3f6fb12739f57b352b03109fb21597636a342a79ecb739d80d39130f8294fcd72cfc5f1782ecf656416862128e485c073791ef048d0698d9966eb5a5bb3b5f963b69ca8ac2d0461576bdc10c2ff681b9329140a8d48741486229188549a5eb5ae3e7f846d10da9ae86da0d3d9922afa42483a3d50ab55158db1352a849208656d7455b925381ecfe5b9bc2128cb1ea12afab4666b3a7fee4b0bc2484bc8f2a7f4669dba535e69b265c68026ab4085c9fa300464596badb5721d88647e06abbc72547539765c2d5265db4eca84fc39a494d55e7b635c3a7b0e206697dc8e2167296124ad95dec0097041387fcb40ae5ba01447d782707e0832a59452fafdde97f84e21483ef6808d130af3250015a860f2d094fca993038e03398f46225badadd65669a5b4a0c9f4ddd26aada5b70a59fe581fd7bb3de6d2f6ed71ddecb61a08671f4150c2cc6aa3882c517d9452ca89e5a98f524a697340824d7dc418632bde524743b2db88f36c0e268db433188a70fe26ea3e3924db783e202e7f36b9e9c816b985b56631d618636fc3601f31c698e69379f2f7d9a36d71a6cfdb72648bc4bad230b65ef7c11fafe330c623177ab6264b19eaec4db7f6269c379be5bced3157f23a1aeeeb4cb6488c31c6b6269c8fa59432265be4e36ddb01f4a50aa5524a276410295f261538caa1640d5a03bfac81e7065ea8b5532e4185ce1e15aaa2fc7542f9e3536a31a520b8c2be01c6050058305c5e5eac5a66ace02d5835ecbd778bfd03891595940a003354542d5654b80cce65a864bc8a8c16147f197c4585136145851361f5e2c3f04321d69e3560ecdfb2c649768aa15025628ef81269c419d125b64a35120a0ac944f48255554e559d9cc0ec528b169b8484efd286f19c4e3058ab172f2e2da2d8828484efd28e218b9d60279e181cc53fc6b710c537d59090b4e0aa15981b5ca88860b0562f5e5c5a4623128d8ad42e6dbef2e2d2a2a26a1186a0162b42a10f066bf5c2054f6d9b16bfd2a26af12a2088725595cb6ed162abac6c9b169f527d3455d54265857395159eda36701d3d5add86df36ee2b2a9ca35c2a6aa881b3e09c058b7f716951a9b058a1e2c5defc5970cec2398b2ac5f22a2c2b5a50fc59b86aab734ed5ab54a8f8d48aca0a151b35831a22b5a2c29f06beb26d52bc4a0a8ee29f82af6c9b945749e128fe297cef473931399198c41269240a81c0afd2921856a034af07cc3e11daa751ade5b870b4cd570942eec711d837dee180d3f1e8ca87f9e242cb513a5ff34569950bd9562b53d65a3bbb8f3b2710cea772d622b85a61c87bafb572278a8c92d97afdadd7972d944b9aea52cf191925b3f5f9dc949beb19e47a9673eb3eeebcc06c499d1cb3b2ea7fb7f48849c7bcdd6d6249e967fb9c16cf99812c55c650b27e20c183762b370ecbfcf556e1c67750fb6d20b476ea1ce48d5bcf60478ee36edf5ee23e7b4a4cb3d79dc9011a8d4a1ab520d018c231352fadb5baa4564896696cd1a9c9ce7bb1bc550459ba84f4e57c49a98f3977a8b37f844cd9e75ec038ffe23795b0bc7451b6d09f9b860378d042384a1d53c9abd0d5b8c3f6140d1e1c40573b9831e49cdbfeb7471ffdfbd21e7fe82593e8c3cf73e7009f764953a19fe3fbb001f2fadf83e62e7d7d9a0ac3307c9328b4b3e3afb4c7f917730ed84625fcb53e697e29671f7da248a3e94f5ff9488239f8f5c1b733ac0fe200fdf7a00da142fe71f02bb8bfbf4f00d387de0020f8f6bbf9e01689be3e084e8e0afdfcef6de84121880a811ec4c71f7ee813f49fcf545f347198fee3394c1fe239485f7f871d4ddc92fee2afa8d1895b9239c1d27cfbe0d431fa037d0f96c00ff4003bdf721e68ea01329f0ebeddfa07d28f1e6b4ed38b644a2f692adca137edef261cecd7b083de96fe694a641259d1934aa2fbdfd3a8a09dc3dec0d682c21af21d367cf047b5f27104e2ffbeb7a407edf1471e7aada6d28bdb14f690a9c4412f6e13e8453cc4417bf4e18e27d51a6ed947dbe2fffeb3d68af60edabf3d7e0fe6ba410feef10719109734057ef834aa1ec1f73efcea7d90efb0a93bbbfeb8fef7f6b843bf9f3f9b07ba72808ee9f88b02f898af434ece63764cea78bb470867c7b82406584aca7161490c7648d534045a25be3b2c27b1b51c7e5c438ec318e30d7fbeca602b69c7d9cf5b38b2d6768fa6fa87da33e011a531167fb6db147a219ca31dddebb607afdbdf3e631d68d0115df9e085a60dcf59bdca3deea5d63a852c5546d4147bacad766ef6d383a4f5fac3d3f3de4fb5ff117bba0fefacfe2ad7b2b7e26bc24bf86a056badb5d6cfa459edc51f19de62b16ee36ab5f6de8e67fb6cddc675ae9bfdf35b057a3765eab37dbaad4e6c31fe5a6b15614ce4cab5eeb5976b45616bedf6087d83abb5b3b1f6ded96d3f1f77dbec94b05f676bad8b62a25865893022dc8e0657848962b926f6d4c0590d38db2c67419b707e0ee9f4d112634925d018816f77777e9d40b7f3e59d25d1d63931be95cede0d4194249f7ab74e87b0cd1e188e320e59290eb196f4f3c351ad326d84f4a28a302ec6e2ab43796443624f278450d214fedc5aef0e67229909791e109a994fa7b9d6b5dbe7ba3f1d9ce9d0f4c05965815fe8f4e5ec28ad75ebdba7db62cf4702e1dc6223b3d98c82961f7fb6942e996f41b879dfbef570d9aebd36b6cabb2084d8cbbb6edb9637357dba0f3783c071ad8e7737d878a7138a4cc81625984458683b09be15df5a31be557bb92422899f3908ce6aa2ecf4229544a31089adf86edd276b6f4e70b6f991e9a273a436239b919d5e3058d74929764bb3b3d9acfb715badcfe753d27c83e9e87c8ae44f112bb332128c482c663dab936373467dd47b60b0d11675ae5559a29891e9926b28148f91dae94724375403d2d0204123f690843087d114091f3953888f22910d85e24ea320af9dd76887badd96889999d1067924fa73d6d9cba01dc2ba5ca31d76bbed0fdbdab12d0cf6b97970bdbe6cf1789e9d08031da9d5c230fcba68db804f2a89b0aaa233611495461b6d6d64b6331b6dafdb5d8bc87664a39dbbdd95482c36da9f524f8555d868771dc3604bf0ecf0682f8b48db062ce9e45a07777d7d37a19b1b1146533d9e28360add5ca3d586e8e890909080bcd1deea4c75195153733a85bcd1c6b4d96c567f9c746dd5160a25f246fbc27878788ac84a4a4a6ca6da86ded0d75b6c42b6e49221544767245b88884d902df4c5254817fa2646d4d48c36fda88bb6f27bb415ca5b6c42b6d022687668f0ada33dbbf660f93333bf1e4799476a3bb59a4f284fca39e7894c26abd56666668e1ca9d572cd88cea653edc546eade86e8f4e6da5cf6daedc7476f2dbb711434da91da4eede258bf402822931999edcc748f86c188c4766258a7b2445855c168ea07d807f7b3498492a696f834e6e1914d8ee3c257ada378a60b05672823a85855855d5616cc484c679b628f28269a89622f1126f6b44a2213a29122281e7006ce742c899c1c1e1c717313e4f5c245d0601a236a766ab65c0367463a7dd2886b6d478e74aab908932d38a25868e35c4b2c221a691131b33323c27444780891c62e17feb153f73d52dba9d97d8dcc6651d07668765f22b11b2b7265b21bb3bc073d3018ce101d9dbbc4e5e1e14190d72b899c9d9c8b8d1811b9a023ca442f6ca1cfecbe46d4d41c71b37363b7d84353b14e4811343b34263a069bbc4d8757228492a63613224cf49d991161b44d47e75e9734d9b81fa11f18bad03668cff93b2b84f94793df7495c3e41fe6e4ef5b11807dbfc93ed9b39f348e7ffc8f3fb3bcce0a21d8b9ef6621f7ba06e1ed9f61bc958d848d1413936cadfcb9596b7fbf89c6415f721eb3673edec75fa271fc5b3ede4731e1a81b29cf9f7f0acaff6f8c7f6a19fcff275b768a79d88e5f07d849481eeff9251a077dfb37681b968ffcf18b5e8a2551c87af6a996b1ff6fb265af5ac7ec286f378fd9513ac95f8d0357f9acf253e380d2317bc9f3b027bf1fa5637693e761bb8e49ebf975803df3f9238de3ff84f3981de5451a07fdcc79cc6ec247fb5885a36ef04ff914ce73a0ec98fd790e133b9afce9c3fca09631c99d779fa36ea0e438f91db39b3cca0789109f70139ec3fefd120e7e5ac672d3f61986e7691cf08b3ecb6a4f9ba32912f14ddc6a19f12df7c695d1a45b52b733ddad8785d03e49de1fbd2a3b1eedf19661c7ec14d774213e86203e9a2e1fe911e13dd2ebe39acaba6590aafa25e8f5413e9a3e106220bdbec63545bac789b033dd15c21fadab7ef83442575cd65aa58c5cc2c7b0cb1df22abcf76e3dbcdc6bb18c539518e4fab9ee59c3f2ce48987a79a12f3408399bb1ae95fb2d73dde36d7b34f579cbddcfdeece7aa6dd0fb185f2e557a4c6844962ee18f3e1f07e9f5ab117d3e26a2cfaf29d24fba54a26648df8173a7b76d7fcf4dfc737fcf7d2a5defb17bdb7d49df61eadf8f2b18323d3d71081ffff739dce06ffbf39c971ffc10c74a0767d7efd9983e3aeac6ec9f3f7bf4bae440f0b07d723bb50ef8e7d43754fa7c49531cfef1ea80eb76f1cec1c7d97db4ccfccfe328ad3fa9c661c7ec5e67e9560875807dce0727570558bfd50817c53c227f74991aa2cbf1a50361fb4847d06fad15c56dfc930bb2e5bea41d114a169d31ed9064c6a3aafb74a65eda4ca5cdccf47ba51c41775e4f5aae56dacbd74d9b316a17aa176a1824cb1b4111a56f3fa2f4b1ee4d5699da5cc4be7db7fbf6a37b0d7c8d8e2381ff5437cf44d2eb54912916b9c25f5f6e7bc3d8c6735cd254bd9313830a681da64b2552009340cc97b205ffb83ddeb61d176f96521cae7cbced5fabc23284228ce8bc4b258a68f52ced8f3878b2edebc6bfa9cc5ec7fa96cbb795851a210fe9f383f4f9f4fed43adc2ee94b8e4feed1140b5dd567197de09f4fa3d23d7a747bfceed1721db3d7e7317be539e67cca59684a7e150203ad2eb3d0a5122d227a06e9f673fbf9bdf7720975604a6440d6e70aba540203333d77dd9c730c47a0072f68038160689995fe4253b47a12463ff876aebc079ff3e66a3ee83d37371d3fe8d75a07fd3068eabf0d4366fec66574bafdfc360cfa7243a56ffc456a8ecf06d014053fbfa5d1550efd5f080aefc3d77b9cddd31ac7f7def7de67ea79de4b2de38574f859d710ba9b85a39d592374356ecf4998efe95b2824ccfc1cdb7b3f5ada7ceeb74fe3f07e7a3fbf4d93a03a3cb36f9c0ea1295c299ef61b7d749aa38350d25403e80a147a3a7ee9496ffafb5c6599b89d5591ff68228d38973fb469ce96415333e79c4924b869cf734eeff3043990f3e6c85b317dce395495f37b5808f38f92a6a8e4e82af4e08f26ad731cb771bfe59cf3b595d6cfd2547e0e04c19c33f82017691bb6db178fae32979bbe317b38fb7808f20e8a70f41e7cf0479a93848491214d4d6fd30eee3cf58daf83b40cd841744b9afa3e4fdac70ba0646a0fbff6d973b5dfd67bb43df371873e8a5032b5e7af3df3b14707dffb0c7ef65860a4836e7c0f2ed1c10fb3bcf13d78c401c0f75a3f7ae881dbf6ce0aa1ecf6f3a773d638c0cfe0e79cb597bdd70fee4f6b194ff469cf5349d114cb2c1c690e4d22f43447f8a0a74f73248ce8e953211206dc3a40f0431d7c110ed0832c38d2410f822f3b8fd943fea13d86af1fb473840f3ea76f7c0ffea665420ef2fc794481d02468ce15c2d1c6c055ce4f48181d9396ffd321bff779f4dfae0f7a9f47d232f93dee7d38f27fef6d53094dcd8f83cf637690cb5802465739bc079f6efac654e20549f4efc19f5b76ac65bc0773b867d57b1267d2bd5fe9de8fa66e6774e6c916cf0a61f8f6bb2ad8a05dd2540ef383dbf6aa6f803dfc0cda5ecf25af2b128eb38b5e5785b02b12e6789acabf63f61c269aca5f4253f92dc9fd6acf2d1700edae872c2eb6f51b7bf411099d92c47e96a6bc07f5e63caf8e267da43934679c45faf832e21c2048f7fa08d11528725e85322b3d942f3b7c0f2f38dd135d14ba2874b2ee894ed645a193421785ce89ce09bce10d0bb973ce0c6081c5458a158ee3666cdb8c6a9a3103bb709c131d143e50c8396721590a1e0a4a0c2eba70c13591ef091f11d0099048f88493c889c00989805ee08088846ae02e5cf0901051144638239c110e09a78453c229e1882df8cf6f51830bcbca4bcb8a14e72693132424242c5c48489c389d4edb7612929292c239b7381ad8aeb0d116fd818560219b108ee3b60db7709c13dd133e4fc8396721590adec9098c1022bbd402e59a9e27446b222424fc097b7f444027402261ea09bbb489c00989805a84421f0cd6ea850b8e0322127211d222d462864242445118e18c704638249c124e09a78423da401422cefdf36b104d26d3b63d61b3606132919090b06c1bcbc8b2b04461b6581212274ea7fd271db3b76d9f849c38229c84c47094132952a470222525c5c489937d6336b75bdf361c9831e06db3b6d6f9e2b870c3182727cbd4bdd65e0bf4fa7646205669f2d62597b245c690cf75c9a76cb1b6da39011bd8c006f9da797be07c614e24cc23e0e0e0c450017397ff89c14d17ba994e35347291299791d4579dbe4ae8246158c896198365bad01f55954e5f744acad1ebcf916cb13f06a0531100463d8842334410088164847c0085314011084198f007f0bb01d4f169181f10da63e920bcbcf276e4cf8b2c814fe7e2c3a3e35a7413e0361b3ae528b0495c43a7bf4929a544820d90707f6a16bce06db3b656ccbf9a2cde30c514e70557a6ac4cd95ae79c38594ace081a00f0a68eb1e18549902b292b2b4588f8718563c8839fb57d49cb86374b5ab2a5be874b5afd8675420f7fc6502e8472084fd4f0844bd0552c9c8546425a18055d795f1ff483ae461fc27aed2112cac222bd86b5f048af23a8d5ebcb94e995d2bd5518faaebfeb182f2509fdd9002753fa4d2f3deee89e9529fda0e9f5a5e8f4fa34b40daeebcf363cba290d5ac39b1a07db35d76181ee7d0d2d63bbc74d4104a0636c4a1203d03197a7e4985ea6571014d84689d13193a3c09a103efe1105d6ebe320930204214c3948c9a9ac9087b6e8caf4923a7828eec65c8578ee941cd952df2e118e214f4eaf3fba191d4157ddf39047c2d0373d910b306b24a1d7df9215f248557d99d2835e7f2c49c991a9fadbe7f3678f5e34554d21cfabd720bd0b5c089fe03ee4e9558745902d9fcfe7f3f98445901c13a1137a7da257283a1f7df42adbb588cdc631eff44925d1447242c912936b2b0d35dac7478b6021cb1a421eb6a26ced367e87ed93d76858a79ee7c96835e6da3cb0e59677238646a02a71fe74a452a5b9dce9b1acb23e03a055d667f699d5d85c74b58940a63c2073abb2369ade6a05a00580564b464e0c0e83ad388d7bc15d2e1bb8cbf52c7cfcd40a3ea654704f56595cadb2ba57ad563399fe5fa9d7acd254d6a7868f2fff2653c87d78ada99f1acec79475f5efb368cf1a1f5a89fec7085d01f1c902143246ae34a4177d481b77fcf9f9dde74ff729f2e1177799b46daf22dc953eb954fb67ebe8d1a2bdcb5478a2e445bbf4e136251c3fc59cb465aff1997d681fe6669fba6f3495955b2d9a164d8ba645d3a269d1f49c9c0d96b3c1723658ce06cbd960aecaca349a2bd35c99e6ca3457a6b932adb2bc9b1b9d1b9d1b9d1b9d1b9d9b5a6579b2ee5559da9371354fc6d53c1957f3645ccd9371358fabe9eea5bb97ee5eba7be9eea5bb57a7dfcd2a4b7e6a2aabbebca452ff26531876338e0b4393e93f95fad42c219cb9d5e99c399b2cd3bc9b4eebcda579b24ef7e8c96c9fdc1e354dafb3f5bd5e42388695262409517bdc88b0ae4e72f2c1ba3ac989bf08494e96c4e463acb59caaa2535655302e0623d35255d3689aaaa29f37f9e8e5ee5141c2f008bd27640cfdf3734e657937d5934918f1e77b45e80af4a13973fa9cbcf462e9e7839ef4992b814a58e7207b89df10a8c7bbb911895419691413771dc5c44d3b49b6e82698104b241249dcb27fba37df9b5596e82717edaeeb9a0f5f035f0309d2d3d745d05549ab40c2f008350a640cfd95a6aaa88401953e247dfee898127f11924a24ee864aa34a03dab693f6872353ed252e692adcb29736103b42519f2fa5cb08ea537692e8edd6d1a3d547dc46c4650ded904bd902da52777a0bf7a769425d5359af3f9adb70a7a945d0e86b1a4dd375cfd539dcdfebefe7839fbfeffb1c64ff38c771dea7bdc76fc3f368683aad6d3ed4daddac7daa798f5aab8144d5a91ed30747b71942cc1813b34bcb00f9534ed9514a29a5b5d69744a0a09f658b8d1944cf2183745aab6dd46aa3f22d5beadf7a6bf53a90e9775f08e7ebead14ba957b58ddaeb672c27fd460b746bc3f2fd638f8eb2e175dba7d769ad75522bc064fa40e050bb9d2ef371f874f91c9d22c879154a29e59c9c874ca7c6a19301e954e3087dcce9856e350ece82f50c7d7ea542bf1a47d7271f2dc0751db3f3e8a38f6e65cbfc79e405443ed1398d63abc07c54ef348edb270775ccce4307ca19fafccd0cfda3715c20677cb3b59eed3c8ebb3a7b5efd461edfa5d3cafa6d9f8f39a991dfdf735ff763fe9efbfa7aebf8beeffb207cf48f07e175dccf393f4ba963f4d7397910de7cc933d731efb5f62f7e20f63e10fb9f078279f8c1df71f8562965b545e8ff4c4d4c690e1cfc0ee441f8e83a3e3f7ae0776f4110043f081f1de441e8cf8f9652fade579052fa93536ec381fb4030bef7f1dc1ec8c50fe47e7e201b0fab6a3ef740323755d5fced3fbc9bd6be9d1797a052ea810660197ebda1d71f6be8355c91aafa5d4baf2fc25e6588bdd2eac955f83f74d0536d000eca3f5ed0f83a400fe2a00fc24707f12074fecfdf69d33db83f6b7910da5eaec3721bcc39801fc8b661fc1bf740f0f640f07b0f84e36155c9ef1e88c74d9ff987ff7c8ee3363e3f5768ff8573d7faa877830de196e8b3478654cde7ba108e522787138d01dcfb960bc3ef965e1cf302a3df2b822c553c6e5769350164f7688a0518638c3196b287f46fc51efeeccfd3ddd55a2b1fd114f6e1a58f2f3b748b758cb5d6e698efc38b475755766f87239ac2f6727fb90d5f1dbab75fed386f89bdfc3faf6dccf7680ad38deb73bc3312deb73f729f2bac57cbd4bf183f1e758c31c618638c31c618cf994f1334084d51578dd11b499d9aa2b5ca2174fae34aaf2f4f2feeb25096f7f4476f1c7594e64f119d3ea64674fadb119d8e29574f51fa825118d51942579762ced556a741a50adda82d43962ae39c3159bb43ad9206b51686943af2e768c471616832fd57558785703e107634eed07b78e9759443e538dac3cb88aeb0cdd97a1863ece998f9728e5cb742d0568dab63769bcb3b231c5d4dfbb191ac64a6c2d2ad8b6eed8f72480e05d8c29ce990c83f849867a841c3ff48f1425433b46a6880abb142c3ca9e3572f568d8b2c6ca9635526c59635659d45555f66d177ec8f2fba00ff73d225baec9db9cadb5d6dadf0450c4109d3e3ea2d3c7a8c7f837fcdb6369ff4fe8e79cdf04f537053a5d32d1a5122830d255782b3c1628ff25bf4285c66172f234aa0d2e9e0d2d2c2ca60a95aaf4fcf1104b83be31b54c7ebb7d8a256713bb75803d9becd955acfdccb2015b9bc2fe8ab52bd6da14cbadb5dcda16a38a7dce626bed46d138e85b17da060c8f86fd63d648c135f03552fccad680a9460a6e89a02feee716dee8ef1ddd97f573ef6318ae19ed8c13620fc357f6fb28fa067dfca5cd63f6121f671ff9971e0f39fd7dcc83756836d137508f51a8ef255a667b6cb225aea9ac39d3df83355707a19ea8346c19ab7a562a1a11000000e315000020100c878462b15018e46132e80e1400107696546a5a1e8aa328865114849041c618420800800021203433449c002a03b660de055c564c7a9a95f673f56a309b3e38eab283b64f58ddc68652819279fdb83ad86c6bf884cbff452b23538286d3f5047318486df1cf94af480910694884842aa67a62450257ad490595d18712187099bedb478e178d0c677ef9ff7a7790df579d2274d1bcc5e576f4e7b67a7c2f18081486833022439747f112a6c4da1b8d674c297c99f4a1947b78c07e52c8db33bc2510b0965349c6ae4a05dbd748226e116d9cf5a2319e255e7e6dd622cc66c1b318e082d586ec3f28f9363ee2c5b1da5cae87a5cbb03f019a3ce63d1337b7e73eca31aafa56e63ddbd55831b65891cca492e27d1f41f0cfd5324052be9086342f524878b659b20357528aa6945bdcbb3a506fce5b752517bdeb6bd8a4fa276a40885435b387f8df8229f4da306ba5ec048bb37d77b95286dea6b18e5efdb30d7a6836bd37bc59b7b1fd94113b77e18c05ce50d4bbe73e70f98a09b8e847b1755f4c79717228bd56ea5d203523716569c33180d0a94278ba664ac3557b044d3ba9ed9fddf17dd829f05e3a1bcf2039452798938a2ec898df7662c424c4bba44196de7170b3bb4c1cbbf8973bc93683e063e2b9601e1c67644660cc4b97976e90ea790016d49c7e37be6fd147831d23a9e78a7842d425c6ba1d5d48423a7e405c0c009bb8f8da80256f5ab51d235c5f07c252f3464caa318f4d1a49df0ea653ee48842882b05aa3eb2e70b6ecc16cc179e87f0715a9563a54955018786256a44fa87320ca2012ce640fc339334264437cf22de88ddea53b6676828629fb33aff7ee947fcb22b7a85f054f0b0b3ea4743943c3cf232a0bf67664fd606912186a759df295a4de00759d68f789d882f15ab92ca6ebc4046d12c4cb38998f589373d0f952ec484e648f33a082f9d71db265c808d275da00237209f6eee919b22ed3755aa882607dbb6a71c8d7bfd7880c9e98e1e384589aebc4bd62e66a80c2f4e4adad156d220717b9ea83a55311a5c20882a40e38c50c0e061c162c08b99f491ad8b6c21f861498a1971a552419ac7bc002a4387e2d0ef016c132610d0dc8565910676080f355c12981ebd4b2bdbb2b0450e0010badea4b1491b7179113371bbd7eb447ef5a03ed068098a10dc0753221c011b67103ae538f003cf1419b02560020100b4c00ae13bae758209a9af8b7689cc9bd75d431717a05ae13b118fb8ac74edf598d00042813ff9df64882e01a6291c9c1ad1515766920b84745f0e838e0a505906a68ee51f2a65e4db5ea7ceeeb844dc77bb4cd20f1530680ebb47b10580b46670ab06c08abdd1dcb5881bf1bd2d39d812105bf1b420ef92ce10529da717f6b10438915040092fd0cd6bdda692182d752516db10e75b3ef6880ebe5561ea35fc73719e9cad5749d644c355110069a0544a8bd4c5bb2e4ccad72c2acb0b07d6c1829fa2b4e09fd47e9dee74e81dfb351e23af34c9225227cbdbb9243102343f3aec242b1047881cff97d45305dc328a7cf5c5760eb7fdabdb2a44c4d68c74c0d30c9c31ec5038bc69692c083587688e2b121986185ec6694fcecf1677db9afb018dc6d13f3f6d03e4792ec3a1552238377c54cc832b9bf89a3a4aba64817f145876c71f3bf46d1630f700f2705611f7b09242424431c5dd54a7490eab1dce5f7b09d34312df79cc8f70fcfd17f5e6c309b5da706459d6bdaeb58bc31de97c8f48b07304308613ac4705aca3b1d148720dfb7f4d4817354c0dccf86ae1f4f393ab23fc7e7f480a717302b1c929be4117aad3f168d5600b2ee26a74705af1faa5f7c4f9a3fa7f9d956e887ae202843879bfddbc15b1d06895f257dd2b97e488527fc3610397dbda11e6993b8679fca3253156d2933f567f725e835342202ab3ba473cfbd6023c048b28f42ce6bd8eb1066d9c04cfe6d6efef2d1facc69b265508a90ca1126a741c88d8dac0ff2b30621a125ba9d28b1822fdfc64c3dce0db8824f57b9c8a817ff8de5eb342dfd0e74f075c6318590bb65d123d96885a93a22b083fcd413ea2bfd1ed28f8a2b7237a14548f8671864c21e9ce2cfee8d071de6ccb393814603573f182d32b0136fb661211212dc6660274825aa93763f42ff83252a377214f4d5dcd07d1d71c7bfeb0edb6276660acbf16bd61e1e9ffda4d44e9ce22f2427227b1d6353d1f617446474789470e24b5480baadcc67fe3fef900ded96b23fde6f2eb609731833874b685fc08e7d352324c6da08cb658241545706a0a353d9e8ef86e875ca1f9fb13553784328bd57c495c8e4db96a730d6e0735a7545abfec373efe4482a3f5b7639d8d8329094f8c71dff3e75f2a5a7b0abbb21ea64ab7c925d56117e61e96bc1e970b6723f79314de51f594ae3690287f1cab514ef70c8f25b995e05a5e93d331f4070059f796e45858e5c9a741a3667aaf2e670314ded167269137bdfb780551058605d8e989588cbe240b000cd9b4f17075c01f718d744830d77db16e208b3d22479242ad62805fa9cf0d9e659917662edab75d4b19480252597708bb6b50b4c2d30fef2c25872cc94dd3b2980000cec287367da7ea09935fdff40b2276145a05ba5490bdedc70bdfad60850023a00e3d1ba528f6f3ed87861571d03636672c0659a1978beb5c65c939909e0df9e5e808a6fb7694fb83dde5c764ebf59a857cc988ee38011b2d881757ba4addb4c585e931c7911f57c34e8d15bbb61a62cda3debe7c97340b59c9704c592c9f4cc44607b1bc4533cc60ae8a2ad5b8b96e746d464f8fc75c45c41cc8df804a574526565e1a050091a17a1dd0d9f8fdae2eb40813fabbf5dd35228a3f7366aa025e7ef2e9cee0246e0717001f34f4eac51b3dd1e5974e4588c5281fd79c083aa984e4fbd3f70a25267cdf9ea8c8583384c96ed1c31a46c40323e8140ada594c49a45ac9504ee01b0af4f57a85c9864425308137f900718046a0de8cc5311d6477f04378512b69f0a090f0c8d60fb304e7bbf7dbee3ff50f699471368e051b494b3f335bc40113e07d8672222166f75790949f862b91def3dd3945c88de009bb9ccf5d11ce9b3f36bfb352d42b232b991213cf72b4bd7afd6a98993480bbd9cb99704c7ef20d9e7dcea8670fa30c4c970113f0eeef377187d2847d48dd7b4bef0211d490c6be4cd7389fca780c15d0a55a8ac8ba700d0eb055b537e7345b9164e1fd320fc3b9b179ddc0947869aaacc877f4786b069199e38252df415c127815638f4bc2555bc09389126db4cbe7720935e004eef9d46722d0a61a4769ef5131eaf0d1dff57d2a13cf128c17c93edf8e8375ddd70dc19ada0e6bd4addb4f6834a8b6fcacfb84dcb01a8dfaa8a9f5052faa1d32268688f2738feb579c3811edacaf6c987705d7bf0839b068202df4eb9d7db3e23c317744db9384ca521e0f251bcfa943df6187040d987fdaff72192ddf56c7ef5e1a9d6cb454fd5eb0cc3ea91942edf70b787afd92a83fc952740290b38728d6f1c7b118a69a1d7747c6a03a77f422003e9cd56880941c1ca2a34b59d7b3658311ad7b22435260e03d66ae880b74e3f391bf00ba72d5b77452ee111ac263d5f8d6a94a018b45e8e3a042315c5e311488d00f9183f8cda34aaaed760b305f57799a96757e0984db093a3143802b3a7379db4094ca9573d9c6d4b3f1a6f1b524231f6ba98698c6c524c7d65d22ea5a650ead3171d9d9d25d51a5790396e66bbe00572a7e8147b2ce6de19f34f46b9c41a2035359cf665daea64ec68ddfe5bd40e75c6b3f36a2a32ab6165d40c126ed0ca62b9ab44f128be6eca0aca72f8366b5ebbedb783542b7dcb19201d7cfb91bde531ea40a3848ce1fd94cee32809aef990bc53467159a63eab27899bb49c1a3322d81364be356d89717675b1051b9d11e26fc032ed9168ab05beb8600ff6e677cf31e7826178a2777ade9875c32bbe5e5af266022856adcd9d659f95edf79fbfa01a0bcf455b51d236d70e8db9d8259d761499922b94c32b22fa96d8173f504487578b8d5eb4d4c2bb866be41c70dbc5e1885ff0897999df789e9fd871151c666b8c947195d2c0d470ea14b86f39c8cbeacb5fa362680ae8e5f858e2a5aa72d62a4329ede567c2106b5d02fdb54af0f413618faae0a359a8d9dc64a7a1703c56f215469139957a2e3a33ec102275628d91ae96d4ee54d4e2e0ceb09b0403450fa655e353e69c32ee45659c898483dda809798fffb2f4dc72fdc809e41b0ea28c144d4f26702635c20ba22b9af6249746e20b4c1bb401feddcae792c9020af0934eaba7f83d44d1444e41be4c2dd3d30492b4b1133b202871655a50f428e209a551c78ea567466180276e716853ed64e23b0a46067d1e6fa69b84bb4bc1b4b9e621d3e90c26ff09be3b86f1d8c9bca281269ea0956dae3958fdc88397c1799ee7cd39813285c3978a84f3312d57e9264eeef1c522e44b036a9d44ac8cebbf4e12437b2aea6745af3801f348790da7461246c34d0b315a4391ab442c9d0bff3fd13797176f1c0d21af0d49e7cff6f42d8b992a70a01f57660aded7055aad028084eb08ae504c22d37e89a02e03000220d9bf94fb17219309ad5a19f248025cfc7ec0c793dd8bc9a32bed3f5eb27f6e896b51c8996c62822f059461bcb19d5a8365bf52e7488b7368d121448e497ebc728ca5ddfbf44b9cfc7c25a8162790b663160ba5b49e7fe696b8b0f8724d5cf97f58fc3e89c512920591ae1f5b8a04d6b3743b78600fde04a7a53fea3c4de377a2a3971fab777e41daf42a9570c2954b26554771dc492c3d6b906c9b606b25c9b8beb71d053804bba76a46c09f4c39662dfc83bedb7b9ae2accb3dfbd88803ae711210b891a8f9dc0bbcc1e18b64a2d2039beb62df19267c86f623a1918dfcc0485549abb1b55d0c9f694986b92ba8d4be320b4e4ad7a37a0aa3824e3685fe6723306b188e0f2e1e661ba3f6dafc517838253b82ed12e99493139f4b6e01cb0061baa108336a8ccdef469eac0123b828ff9054fff9ce0b0b2e99089e10b1467e5d02236cff80bfab757c7a34a64fbdddd6d9345120c6954d12936fdcbe8895fa8a7d676e505184f8c5f6c6b78e38d4755c895f9f465a7ad2114aa004a1e05972dfe59c0674b97603ce80df2e5696bd33fbd59be50fa5c48c3632832406f2db67265ab65e1f5cc0753e3af2de3ca43a959aeffba41fef065f1c09d004bda5ea35bec50a7074a0b48dee43a59e0ec0d1a2c94168fa6e7cfba0e3a34f80072723453bf65b1a4f11a658cb3e18126133898be3f26cfb4324de2f80c66a45ed0203580fe33483855a35161b2e678a9309b310d3d6ff63c266534655543c90367c7a34de6498c496814c8cdb7f8857b701f91794db02328bd9b240a6801d1c956c70d655675921d04e4c4df6139cdc999cdcb43398c0c2664c888e62e60080f8d47af2872aaec824131e77f465ee2e0834d12d60c0d649d937e222d7f2d3926e2c35b06dc847b139da1755b2187acc01585801ed5c6f71f9a3379bbff97f6f7119d0add333744933ae92596ba4e69734124c6a7e8d58b060432837258530a4db9ccb407c5c4f3fea92396fb21eac4f849f9af540a23a3d4fb41e6c4ff75777cf957f5e2e195773d50ba52b02d368276cb4b72b02537b3e4cbacfc51d39f9c3cca91938b37e02150de3b57e662cf4355c443c6a372965f2cef558eedc32f309146070decbc3615607db18a1679310f0fd91ed8c6951916f19f7ccde8b83bf53beff098dcd187a72a5be2bb3640d8583cedf380bb08c789011dbd03172d82711311bb57ff2a4d005e650f05c4dde7e99c9e513b2b517fb3563c729a189400a1f2fc92941d802e83a9a5f12b7b7bac7e6318d763e3b87ef4fe7b20ae8460be65a8aba25f87cef9202ad116947ae6852382bc84adbc2cf648c295089de9904e094699c02a1a7b3a821071edd32273468c84bd1e15de8bfb0218f16e164118d8838c8b577e81705a9c49a6954145d6d7fb78d060a68fb4cc2833a6d531acf8ec0c0889c277b724eaf62772e1f282fbda607d990e04d20582341d430aa3b13dd066a996cff0e14f4bc972482856fae110dae6807b856baaf00aa00ea37531f653366203abcd000c29484d095b8cc9d63a0694b840e0c457aa4295f6145f7fd4f490064ff79ec6cc7bf11c3ca2b7aa9539598144b5ea22401f0f8988924013c956c4cfb94616a272ba7415202979d508324620a7a85b03015a01cfa548d58b77102342ce594a54257b0622c0f889c0af6e321e9870c263ca23196739ee399d65e1df28d966cee447c6d4da33766b78076e9ca4c4ea383ada7e52701866f8eea3ccec76c73a979763e3a9b6113299ab43d9cf3e6f9abe3ec4fef0cc0200c2f3cd467244a4b99828b7842d3920573a9050c6c20ffcd9b78b18a8a4732830b558e2b8e6add51b7c4ed3a51a9ac0898da02d206245d2313ccde73673d798c17f69d9329c91bcf528c3b57f1530d1c1a8b3cd0d99e9f601cbd970909fba5928f6571ec478f818b32fe815ab41332f1caba88764db00ad36b10876630f3410940fd09e89a6b6d94521351be067aa327bf9dfaf23656ec40688f6f2bc08f3c62f6a2660705fe34038c9dd59c2b3698a29b1870ad375866c9cbfd672300fcf86f1a0d8d15b7eb296becadefd12f01856abd08b5c907ecbb89810f5a48d786cb4a41fffbc22358ab9cf278e7674cd05600c6fa2d3f088c0e8ef4cf5fef7f8ea4ff5c68fddd456b1a264463b6e1b800c9cab7f5e8213834afadf931d28cf7cae6324fdffecc6e5607e77fc4ca5ac928bb0c99edef9abe67d17deb12df8f09c46b5024232f70b8d314cd7c2abaf686607595ad774c64c52c883ed181eb7f0bd535827ddfd6dcaab5d3bca80cd3afa247de609d67a527ba2623234428f86db06d2823de9f512416af359801dac72413dc24b6ac1513815a9dcd0bb71dcd6f86e9d064dbde7c9472c225f15e79b1dff7fbb8db8aed721450f187c4efa43c7cbc4cf70b3b5b291f59afde7d4684271b7786dffbd0de6ade8cf5d4300fc95a279e4b98c91a61a773e091fb7a46968c89b6e41ab94a7a6e720586b0ae2dcc336ee96f1c65dbe6d79ce77b077284a8584e1e2f80324ef65de8c12d684a2ed8db0549fca610e24c5975fb64943412238adc66570e64e3ca8e059c536de876cd7108a47422e62e2d24bc3324ba781d4b1545237653c35c5b7cf4e483583f9d515fc5eb0563e6b85d806068ae88868febeb0b8e1224b85886eb874873348fa07cb98c9995c65d8d57baa85b79e81c3433f947987026515d3c457e7fe6d6b2912f7bf8b74525d3529472e69da5b697a25659f242ab376ef675f71c2f17d4b92f0d9a6eb0cf6ce211346dd76739247b03ae376d4d4eb89c448a991dc616454af7edfbaa029cd63ce17cc447a887351788180cca6f07a3a9201ddbf8256c3a1f627915d002ba71363bf3873ac30940f7f7bfddfd3c770fc835f5e12d52bdb11c90853e6ff443979de7d23bbd0f3b6624a8dc3be650b2193a26f53eda1d7a250def066ebf6305e90dace1e15b10074984eb88fceaa44def7408f07a27401f8459abf92e39580328f7a05fa3130e6bbe13c24a74f422e2a32702ef06f563ea0e5117e8b10fc7b1dcd9854ef1b376ecb1e7dcd851038c0be82a43e0e1ceeab35d544d70a406163d55e2e399d993fa16f4794d3856464929c8b97543f47a73478f443849df055a7fc0df3e6e33065757592990653ce918e97d6ba9455584b900c2389009a6316c48af5f6eb057c1d3a9099d6e68b6e82ac6e7be405e8676096c52bac9de19f486e660a56bdaec884437c7bb617c84e5ca9ec1f560379456efee1a3cae58ff19d756802f174efdf4e833804ea6e89a66a3f0cf9500cad798bd347c5b7f40ee3e011c51cb66a1c971eba7e883e2248781752db6aa5de22b0e777c9ba51ae8ae410708acc2798f87d434ecc33bd1c12055d9ea20849ed453957ed1e6edcfff74c6466b97284dac2acd51169ab23ef5d5d315064ac88529f355804a42205978b7d6109e445823da995339afe4e280fa3f96db56d1cd65c4c5d17e6e3df862826b1612d9405c2090d1d5354b1b7723d56078cfa2758d77a221785d254924d1fc7688489a6623475369d3625c6555068446740d1fb2a9d17558c72caea6010a3282d8e931cc794d8377dcea1770de5af689796e5a3c0c37afa9b7dfb0681f7b65a264c82e979f5797e51573913c2ca21c0952c314c6c13ee2874da4b8b350b0432546096902cd45c90134ff90bc05290b3811e3c747b19eea5ecfa3ae9fa88a51c3169e3f7753696717547ce304c11e4dc7914c844b1e4aa55af07ea6e5c8e81db720e1bd6ee9f721fb6b434ed3b8bbaa53287f248c0aec2a9cb92dc26572b6c49c6b71c3c25bcc5b933fd4b3c44b8f261d45394a83f0119cc01a024a53a8f74c7f9411aea48dd902307bbe70dc6d7097854c041b9fe19637cd7b8d2971e3d62b5dfef20a8661db72e975c3d7de0e50d40cb82e84c8e0a0c5147e5a1f923ede4093d9a30e5a53c870244c2090b737fb5a7e30995b139760fd05887d5383fe3c1e90d5cd6d6fc1b80743d9e85ec36b6a7da81765a40b689e675d88549fc56dbd032f130c0e11ba4590662e723f5524579cdcb3df6a18a0421dd1f5eace72aeaf847a3577f56638caaeacc9e52b4d6fcf1541f9cb6ad4483f937730f5a360d20a7e59a26ffba15534e2f8c0a65e87a6a3e287f23a86f68aee1d83f7d2820268876c75827d87d07755feec891c5c2c616a775fcf8e1c13e42624f1744d7cb117ae3dcb8a484d395f4f775b2d1c50b213610131930aecaac54deb8e3049fc7c32ad9b214e3daece5239b8d4e9dbab7caa5058dfd879e78831bbcb1d77fd575e52c9ee1b8aca523f273856c35c0ae9ac16331b9da25512f026c5350601728a874ddc89369e71cbc941488ae9ee7d70e6b85a36a604240309991ba666b96e6f32b4a53a955540602135b5136f43639597485606a1ce46ae719097280104a0124ab62b3ca3923f1a162463364361f19a264c6e48bd83f17ec0af63b13e14e9c85d1d4b9966402e47870b19123538cde340a2fef47c64cade79754a305d5a17e8e585a7b292677593f569f51134de568da4e7f5c2f5b45dd016140d96417be4dc325dc133d4e7ec4a05102b5936fcf65a5de4e18a22bd4a9b1a7940a8829f513d72bd66528fd334d09ec31641895171065756990ed0392aeb10abb525e532c2bc5aac1fa8d4156d93d844fa76eb5a949ab1abddb2c1ad023c67264ddc86b1d7853c737ac8e44fe86937f6b7de1cea869c95229ae56eb2c0faff5c7603ddc5f057cd4fc0f0f7dc093f2b770a499b499c6e3ff5bd29500b4266dbe9427538c782b1f03a93f97a75f97876a835712821b6d2a6966bf37fc9f93fec83515635bcb43758776c03d1afde66d35f5588ead5f9b1ac66ba5e757d59ceb0b530c1932d6441fe20b45411b10b575a6ec3c376e4da2aa82887fee9720ea35f09128cdf615ae07e5c22c9832aefb58b689159b92ee848bf1dc74eab983e64f342801c2d603a6295f25c2196dd7a369c76a9051897c5b66bf66ee4909cbd1db480395c4a1b196d69db4dcdea0efe8c78c76339ece10a15af88145227389132563ffef7461a90b5d354d701dccc7782f44d3659ad0a9b1fb28531eb69616dc9ffe6deb2116327e00fd76158e10b8e9c85c59a18ed2f4d6fd7d6baac282e0a8ee4c5b990e508302e0d67e8d5260311fe6581dcf4fe6f7a1ad45e93975f2422bef31f346afeb225f2d212406c14e1ac2584ca4dd937beb61187f73ccaca25912027ecfd5ac2da28ee593fb3a650d6623c0c489e3d3c1aee3386374b7277476e6a70cb041d50f5ea2c9dc534df0ab0bd33281b8cc1965b024ded0865ae539c89a5fee47c77ac6391637e5a0160273011efc2ff9609ce5a58cab08a14e5c1de3b47a901c327b6046a91343db45b7969733ea0d50a4660f80825a3e7099a6ccebcfc4a410b3c7b2fba9c6d54e17a5d180a31c5fcc63dbc1aa940fbe48238136a002ca92b0906c3b574534ddd7ae2a8c80929c7a3688b875b185515138f40cf41e6891f2d963c2b560ad2d75ef6764d05ff162ea60b0e20a7c95f0bfd4222dcb4b900ed6b5c8b995dcdb720cb217fa815108b1f5adc237df5ca82e65b39c082bf10ff89f450ed140265ae214a000e1da05d71e0c85f697153a2d8f14b8356741fa348bc86d547bbcd83c4b15801138fd149a5a4fbc0e302371afbd74c3305e349d1079db4a4f5d16adc0c07222ebcb8cdb473e659462d989f297a3f6538e9adba5f93e0fecd520f7f4d20c028500cce8a4efad8bbc5e0c0261cf868fc7405db6d8fe8974b87082fdf3cc083999ce84228e8936465b4d50a5f086bfdb09673465f5974b7952fc4e8b14053bb2894b1b53f531fd9bb8f2339f307e4a58f6177abb7d3f7a6f82bef544b6e9749d9b3812ab48117169f15db70ce286392f64064ae756e7523d40625bd562b0b734ede072e93ecb6b56b24b63dc1391d430c8b0e183f691cce0b63845ee7edcfebfac70f41298b400260dd09c6db1f862c0384164f0797b7e97d1e5233085c7cbddf6553b6acb71496e06b34350d2a0468ef3c3438d7bf767b634a68a6036e432ccfeeb0d879dc8c07aeb54e0889d9c9e4888b371f635349bca52e8968a7aea33f891552db369e355017d6a7743ce4f6de3040974d4021162cbcea47a4e36571e08b2f6a67ef18e5930feb0ad74a0e8b5f2477cedfd9af4f71f0cd514d9681556a5e2489ce376079a308d5626c6ad3300f57c972c474a8b58c8644be71fd47410cfb1bb58612879a0073df604d9da241047f8a05e7958364bceb62989d40d504eea2c870a70b7572eeeec197fc880ff36a4047d99b3002a7d8f874dca47ddfdb0af6c5625f38dbda9a19d3abc75b8cdbbdfb8fc972cbc1c85b0d5ec39c89e3825d7fec53f616626db2dbcb68ea161fedddf276f6fe51a103227d3e92deaaff46cf6e4c7e23f3d6010782bd7753a6c0ea7d1440dc0234882ffec961b451c241eccd1b0d182c99f11e3d9ee43c6f288540bb5007fe5ffafab12f6f3336b6c7ee0906332937628d26301e66b870019224c8a132e85db9ca382c92562c3cc572001fa0de67731be5f7c0f77b517fa663ec991ea56e439871b82f937cf0961d8f1d56bd2106988036f39d740dec3ef5d3e6f6746b4d8dae29737fa31513b4999f843bdd3169a297b7f227d67a57dd320a373a6c6e41daf56e37637fed260542de5be834e6838f826813337498a76bfb00cb0164386ef136ba430f9236efd0acf384da55e04761fd92b7d6ba4fef16e28d49dc903648543cf90eb581c173f865d8c01edfdb06fb45e09f7967d59a11bd3744ece3eafd7ea3a9defa57440e4346cc70cfbba9bfa413ad00f8541875fc7025b4adf9d489aa3783f752884923261326c9e9755cca51f523b68972ceeb6661bffe18a78aa2c4fff044424974420e387091a7b7e70e26ef49627ad517d86c6c2d2dfaf90a70eef4cadf572b80eac3fd494e894f0aa62364a28ba9e8927da30cddd91b376448cfd7fcbbba9c7651d469afd6e57b1793dd258e92cca9d03a2720ffff867064b74a1f8c36f055114c25314140679617fb4f7e030cc5ec86fbe2deeff69c35ce446a8efc2d5bb9c05c8dbc337373f3e8663720a198dc14b9e307198e6aa5587474ec0ae41eabb92b73ac77033bb9491d5d8de743b605257e896748809995677c4aae67666be89fa84c2df2d8a13c2cb107fadafe768129ee14288d3ea33cbc40b4ccf33d8b7c726611a4c30bdfc36509ada310fdd977cbbeb07e011285fd279b1f6f7f4712944ff16f383c8a369216c37b3dfa857aa81f9896eca34a656ece65f3a3b5299059692dea1a3ca1fe46662c09cafef335f2d2b4238d483e23f23d06ddb0b728b6fb138749a70978866f3561543e7500b760ec9d6994308cb7e973a966198dd3572dcc1a0d014868fcbfca3a69fc51ff048aba7388a452a1315de00b184ba356485cd4d8c5cf0b2453628da67eaeef2c35ce062292d371567a83083b5498ce5319824e28e2e5491be6bbe083737ace37b63537449d4c288c4e0832a94eab43bd733ac1fc7256e5f16d62364187723f46df7502ec674505263631bda07d31866cd944bdd3d97a63f65d27ebe985340682b49eb273200ff9c63f3d3b29e69cb719dc8978368ef8a9548fc9ded930632cae638221c54a7da971f684d37621e0c6faa8874ce33996db512bb57b8f0bf2b54d535083c6768cdcd237f361303de324386ab54d867fa1d0bfa0e06b5c6a94767bc85bc68e5be2900ce92d1c6821bdba20455786c1bc7305e7dbf2f6153b5fad607a8106acbc36484588ce545edf8a5257b62439781c56ac4c54ea65cce7053ca4a69eeb479b47c729858fdef1f2040716b157f2f4cc669b85f4563b3dbd98f138790ebd5f737a71cf96b546ecddca06b181f40d05d18d7e86c6e18da93134e6d7c00a051772e8f66b39af9dd56d5931d7dde64f735e3531e92d56cf0be688c7642e29ef7a19101a570f0d166690c8cd3d0c596749ce25a574fdc796e0b797ff90e75603589cffc668b82d860080f193141c22008b7f45f6774205de2859f3dee5ff2a8e91635081b31c8539b408bbfadd6bc19caffd1c08234af16885be021d1fc92a7f6a9ec4dd53db32659d411ce97b4f6ab7f8b2a164c8a16ba20b3e999c6db71bd97b00d3189fe32b40915b2acc0c9f608b72c47481a8315d8029238867aee4f586206b9fe14a9ec363cf98aa0bfd2f3888b180b624fee7ab34710b8f0eed74546e6dcfe0973b15459aa0109aea7c6fffc2333d4d7eef4e7689b24c17beea2c15418bdc6da26e06f280c524e0e61601b636f28ba6629272fa20a5e1e97b105060e18c10c440e38ff4f4b4c242ec977fe8b84f8da7b54dcc0f381be633521208d160865725c38817e83021cb7c6191a798a287e70d3c3cfa80c7df8900f368b84c1db299665cdb5db66a8d712b9b50727dc6868f49e3f7d74a889d2a031c8dddffdd0450a332ebf3224273dda2f8caf86147c4af267d19677cbf0a399dff8a000142cf847897654e34673dafc7f90f76c2f2cd0b3ae48f29072a6ca72cf68e80a9930203043942e93438b115825a537761d3c4680fbbb4f2261090b7e86bfaaa10390848796d05f429c0aca98fd95e8a7b84222510a00f484f436407f23e65eeb95858d075effea380a6d8727a4a0b7c88d228fe30681d06e42aaf1d57344611ad085f5ae13361ad9fcbf0836318107417a16e9b77309d2f2e5a17f343404f38206c4a189c68e9d31cb92023ec9a1c39443f8e4ed9365ad69b6ff798590405663dd0e79ed087d55ee3410327fa932196311068fcd9a52681a040ac5571e820f10175a803932289f8f36bf41271c800d7d467e820815e71aa8a7ce06fad1f3e6462b397a74804db49e338e8a140286a2ec9bc53de0aac83ff96babefdfb50d23fe5b140abd3c2e36709dd67fc5deb62fffb9b025f3f0506c298d51099b2e615eeba0231f0322e627f52e5b1f06f863d1975833daf63d4cfb148cb3c9986923813e9892572ab90d3f7af881141083626f2d0ad0911d4b8f229d907d07468dff264210a09da33ab4e0747007a3aa80738c0da7d1c78ef62dae70ccf23ae2d04210b5a91e3d4e78d20cd3ee041438c24b14284b1280fed122e6edf229cab239d9c167f0a9bfd01935f60eee5ffea8d465005e6578274d233432241e85b2b411114fc6da6ef9732ca95a41e3005585ada52c90257b11315231dd9cdedbd69ffd6a9282fc023d012444856aa43082625d8f39ec0b829dc334a3103fcc1d82eccb55ba67d20b2e74dbb5b08222c6f4640d383a507da198a27944e85bf3cb393b71b9da158bf9c19fdc55c57b45a77518ba8d6576b53d0299be67b19d7079587fc8c4e261b89c0078ad0c674f8956b55b53a93a391f935bdc91164b94add6ab4a9e91fd15fc800286eb6110a2c098dd375ccb04a578e453c09064ea41ded6133afad219c335df975d4bce5710a35138d1a6030e660322bc6aa8b6e6b04aeb84ee4b18445fe332fcc9a8881be7e76155c5e7effcae45b0333cd149294518ce8ce907fac98e0ca32df8388877d242e3415a2bb48cad414d006df127aa47b462226fd2a247e908a3c8c3972073e3885b0ed895ed23c3635de815ebb2984ed75e748f7df02f29397ea3d2a62efffcd8e5d3a1a26f0ac8ce1718f4d5eb336c33845d1782d8b7f7a1d0a08da02ede765ddeabe867246f416ffb978199add922208fbc249677290cf4a7e2a0c7f4ade52fdfc63093f68b5a03c214d2629ff50e50ad0b91b3014c389d8399e84fa9d1cc88146eab7699722e4bef97687d60d8169f504163ecf32f8a1468ca392fbc0889c56cd6dc9674b27b43bb87885dd86f58bcb668fd72c03b6411dd8e2693dad220b63c8d46fe1bc18fef1243576b63f1aa71eb4464e06ae32022e7cad3e93300216a258fd512e7de6ad665c210d5a67b3bb6521b4282664d86ced05cf6dfad514cecdf7bc70c26e5da8e9d8304a1417f53f271d1cb54dc6dd31e4b151f535b1e3e4a624f47cd65929efb8e0c5bdf609a055a923d7c77e3bf9764f25713f8bd2d24ba37168a4e3e26fa28982ccacef1b544963ebc5fb133477ec2fd45d10b28601d60705b2a8a1c93aecdf7e5b22bf5e9f9a2187505975ccb12a9ac598950fabfe511b91f6389c43c18571944df90cee281599143632275268d1403143966ab455c02d5d537f8e208f72be0d73e559f0980f58a2ba20e21922f15796f0c4b52f3a94e63f1c06b9e85cb41e2e67558898bc8b2630de93583eb5b05d7a1bc3878e06b956d09864a209348d00be833356ab8a2670e66b3e4e3d934dba206c3335d7da8a8e5d9bedc1b12bd10e73c047528f4a00e2e8c8cff3f902c8e9bf1bda8003a80f27dc9030e85a914dd85428c004c565d3bc4c71edb556e99ca8092392c33779422f1230592c34d199818f1af0188199766f144297d15190f2f51782ded57e86d4bd33eda277b18e9a7443ce2bec2068d8938435acc98379942089c58304d23de42df2faf3330bd768a06a9240fc63476470f547b4627e1e2f9439aa309eb5b250a50c6dd89e69a480964c849288585a2928650008f6bf9ab305f8bbab8e6485e0f1f6f09578201d2dc2a1437820396381766a6dad4a583949d2abda127b444c741440857e5b343736469e8e6824784425d88c51801b63342a0bc2f4af28bd9be868aa47d238ca05557c576d771ad81afcf578dd0bb8c2c2f1e6088705c66e9477988499631e4397e5975d1d6bd92c4fa3487bf86296bb34d81858e9f1d1206229158bbe10ef974e073990bc016e7f0982ab57ca649603e90cae450c3be0093900ab047bca0ec210da014223dc74108294931335eb178283ad6f6fd5a88fb4bf012008aa204974cf9656230431e906713c83a0b04aef3e320ad2294547617a1575e17d58483b67084276a27743a44b555cc96b6e81d21d98f3c60b9e8f18f3fb2c32c46690d3fbe903608354ae6cdfc7391c396a075563295ce70cf94990c44dbc0b2b65a08b7a411762b8398594b1c425e8b08a6cab62e2441bdbe57fad6ea3e1e1af6475d3bbab700e62625e50fddb4d952358a322bbbbb8ff42a81f2b0894832863b59ba903ecb81c48124f6b3c068068d3482f4ec412de32d98fd15842077ad83d4a19920856c5922cc6c154bfc0955295302a72d5fd31e56e4b99454032931a1671c57ca0b914cd16675c6aab5bfffcb9782a850a157a7f42924a2e04846efb9abbe7e5f4dc356d5abde23d779fa3258b9b668034a820db41420d906a9625ffa5a3b47eee568898fa482d62ab67280b170b57b4db956e694d8c10180cf9f1406c622208b8cace3338b4f6fb3b4d8dd811261c2831208b87473a8a88c881b1fc0dc6d734d538ac5f71467713fc262415aa34c7801cb7b3fc3397ccdc99977cba2984ea28a8b7e8faab5e966afc6503bf8524823dc367ef99765d4bd20bb86fe644b0d5a08d3377986da9d6d4c28327ad199861dcee8caec849e301a14a2644a107a0b3fb59fa0a7512090b2a8f086a36c5d3657ea6cdb488a793137d8f227d2f88ff60f432608daa0a089628ddda69a84648795ab628f5115dca4d3eefc5b339e8334a05bb434275e838e2d98cbb830594515eba783a11bcf622d046b8dae2c65e38ef17102ccd29917b157717ec46fb3343dc06d2c4d078171f5693a4eeef06fa428a6bcb7e97e01ed1dbee39ff29e75225183671919f4bafd807d718c125013ef595b84bb1e236d2efef9403dad3a0335926fa04fc4b5db33db1918d07e9f122d014ec8abd494314570a440698347df8e1e7f267cfe664426e38c146d5f5a90b13ba71b9ac7c40bbfd208eea7604a6e05c6d5b007b20b6805c8c377ef84760a02048197cbba039da0268593eaeab184ee0f42c100dfedd8f2bd2f501381b4c5074317a1ece3c8029d61610fffc29aa66520ce7b33fa9e918fa3aeb5d791554de9f3b34908711cbd5edaf87e5e38cb007663dc10a832ef821ebc96d0517a87c9a71ec0c56a98e42181553a915e041b2cee1ea3b3e028171c861df0e5727e0b9367a7307b586a343eb08d00cdbb85f1cae626cd33195b9d226ec396d818cf037d32b64070b744c070bcb43fcb7ba63717cadc00cbe5454635aa098328060e7c5b86aca4003cb10d8dddf66443d61f54d9060c996ff56251c93dc122c727e841a5be325d0c62500119a29f9238bc5a316cb84426db1600033c49cf9d07604e5ad3abf372ccc580fd4db88b918cc032d6d23369cfae2fa9bf0387ae4b1ea8a9aa4589361651e996787bb7e8518349db541a35b2d17dd149f158ab916db0ba00b7a74e762cdad02f8c8c455c80c0442b7ba3d734a1763f60789af9faac3067584b002b5c305f8423e4db655d5b9c8d867dd4446a09ebd58ff8aebd069ac2d051d5b45282703110c1fd6bf5b4055ab8827bb619f56abde8cece1a87df677c4a6556e3f65017b08a9647cf9cbd8d52f01917290590ea92b0759fc11962ffebc0d8501e5e54c5c21cb29248a3ea27b1a2387d32768627b98556694910b750258a5a363e69788d9bb5d8564d78abc044735edea64a34a646a729621e6bac733e2987b8217ec6b0b8a2b77cf2cab30c421c4aa48b5eb7be4a44cc6332d2b0deb2dfcb84f008ccd42dde1543fe64e1aaa60a7f4b939d7d563e2a3c317b300d7ddc19d80e5d7ea0515a49604e4d6320fbdbdac9358ff480137561331afb571d2be3763ae82946a2ec1f300834d0195b7a1708b547775996fa92ce58e10b7e6cbfd217036ee5732138863faf2641b41e4aad8c7c3113da3d994d0c1476994e9b8daa0061e4c8aec53474666b2eccf7bb6b0056916652fc5c4d5d8454907e400e3431289817f2e8b277360d7c0f5d97b74129b7464e84c6d7055f16b45329e588483c3360bac21f42c203424b435a6f8a503dd0308a64e6f9544f01c8fccba9ed87932810eb108fb3584e709902db515e9ad42bdb76b98033bc874bb212cc4cd8becf3a285476cf844fd5371c5ee3693e3766f8d6eab57b6492b7d9642610fb9566198365813c4ff712b575b5550b9fcac5660660a88df33c5c273df031cd3b488dd61ab1a92d65549c38f2f6818f49c5a309d0c6a4990ee58be58687768279e38b1fef786f976c71fd5637a7c27acb66ebf39cdf1a238debe6cad5ec920f3d2ed244e0595e5d6531ea2ad55d96e349f54555d94e3f5a4bd414022995f14eb83d7ddf30a27af6f83a74a47741b0dbbf53581b06e45685c1bae4505226f5fe4434942656312bc01f0876b6c76c1f67fd41a9937218af8a903d7d4688eeabe87f16aa0a303760bdfacfdad153fd459ab634cedfadf409af040b81fdfe8b0089c8e8a370ade8b27668241422393e2cec4d6306b15968defb197271ac3835fb1da01a9e3dda1a5f87ee35b0b8d0f81df889542761d18506a84dd494cab79efaa86355715d629665fc9ce3a4903fdac20abe4bd13b2f9a85ce205b560f527883cf65e92e538f01a58b2e8f36809ac6c6a5569539be82982b747bbb937903a63cecb14df68d53d86dd070b1ca22446692f624e7e972e019e0f575ce00d25354fc7fb16affd8bcacbb252e330d0e5dacd65a15dcb84b244aba4a0257607e02c9fdb1ef82c690ed7fcc561601b5a2529689cab178359d7f0f54706baadc90b4cb3a4675b66b5b5d671991eff320b2195445ae376a1c7ae2fd76c251fb40a205180e42cb72e7b151534d3f218d21379395276325db69e40b3019d29858a9085f95bf2c77d9979913faae7e422dbef069dd56510ed36751054ea5b78234dabce436795e0b8ff0931e7e1955d16b858d0acee76441fd123f3e12f6d47844a92ceea4ab59b8d133244cee165b9dff155e3da21bb42fa79ccbd1c10d98fdce2710f2b3cda88dd6cd417fa38954ef4278a7e390a2052fa3d5db5aa3e93a8493f7adc00ddec16872367bdf32fc3c32b79b3b94467b542ab881d7a3548417d6a19112a91471596e8a5a3cda9a18bf0225562a958d18b76a95d14c7cebe1d26bb7c7eea83c4686107e64c6dc03d70bccf56f297f1e5a44d52d1d9489cce6a7d8e3404910eeb12eee64ed99b0125f8f501d779f380f9237fbdc4def44ec1bf11302a93f3bc4c6795e25e6965b01407f62dfe24666693909332d34abf9e3ca471c46440fc1085cf4dde2a1f42ca978599a3e8e9f9baa7518bb5d7937bd26d470035e0c2a1b79d05661790cffbb40ca2e96e56d56de1fdd172dbdd45f34d1c47d32b4425f1a242cbd3a15e027c973cd3aa2d741667b1b4a546911963913b7f3157476c395feb9b49651f3da6dd68a1ae6658f2100bd7c3bedb96f9ab18c94b70bc6d4deb516c27c20315c7febeb2f86e56b5f8249ffc4ba70052f766274336f784852aef97a2abfd1a5e63528c0bd810aac9370e2e9abe38b4aae9a39955812c5fbc7d2aef9b5965690a2a57d9482c11585b3f6a434310247ebb97918628cce2a105904107f750f57056a62b3f5a39609c6d0e0aa704047817185e4addbd8130abb4642612c080197c6d25cc2ad9c2d3e984d64dfdf19e3478a51e425a41d66004ba8ae84550de12694634be66fc45725e4e6ecd846e9910fbbad184171f522d9caa9e63c54fb29c0eb12280417c72e11e7b1fbf777298555db7c80fafe5ef30bdd6f117ced6ca391d016f9050e784950408031666f555c72016d39e28d6b541f91f7561566fe5a93b85d358a09a061292a9e6528fb501e1602fd4114dce84c77b870d632815d9c5b35ba529f83134842c88f49c085832cbb010b526cc6a764e2a57b8c7188e65d70c66501f66b545511068bc320f823d75063bbddc6884944aed40e0c2acf6c0553b59f535c37388a671233c183455d238fc07087b985537356614d89b0547817576139e9cf02bf6be9b87e4c09fbbf47274e3fa1f90366156d5055bc217c646810f9eb721d354971bbe3881b1255ab321ca6be4dd43b3d710e891096499b0ad44b47422df48641a4186a35786cd1cc15fdf211a6490322c315c0f9cc91414253c63c6e13c6ac2ac4288e767742b1b9fec9a71355edf1895b76e8eb28aff0946233f4e0a321eafe79a59bc1460749cc48c41b2b8c749e05c7df0042157a0338900825742fba3734e4eeb97d3c54d6d0551944537fca46d3fcebdac82027fed0615915439590957211124a5dc0c9e089bb8ed1fe850d117bf83fec149e125bad75d4521c688f30fc602ace89a22b1c27e6bb3acaef4bfbf3f8e1383a00facd51539644cdd087faceb6c522300b01d20ee6545e40c4edee51f6f8404073de6eef0dcfa37a4e6ceed2770148fbeff603c397725abf69276b0940625abb7042b697fd4da1d59ad37563c81568df409fc38c2a7c923ab98725f13158483f73cf7c8aa8ec4284cc4d81932d3ba871ce3a3840057c5bca5b8c5086635b11291d59916681e768a2dc5cf77609620abb45d07a895cfe13c3ba97950107e0241567f5b0b66a26acd7d49b3ea7259d5ffd84f89460c100fb255ea3936cb0a11d5f2bc75d76e605d67bb58580cd3b5161a1df8300b8e5755091610f5675c7c7ae01bc468c151e0f2bfcb0269546925f212d18212599676c65738d677d91b618ec7256a0ee18a6c547ccad9e7e9373e569fc4b2de0926cd219938e60497808353233257b428f312bdc1b13a9ca58e62412fc292255b8ae1585d8add3873b19de5a22fb2f2ed2dec6b94796293da8e9c783b1a202d7f01d80091f52e2160321065ba619cbb0ac7ea1a54de53111cabd65a3ff1ee1d7e1e0d1d56fdc71ac7ea80d2440c21e6a8346638e62a9b08a1e804417271ace204c8720407fee11e421ab610375e2182ea55836315b8716e11b22341a836634f015a9ccffbf42a11d49ed416b895c4865491abf8ab0ca88fca01649f310ae4f75e0fcb8f1c8f48681cab233d3f8850ea05aba238db3baacdc20bb09139798b9c7b5995753102c1c3ef82522fbb5e1456855b540253e3e738d96f8f6395d4cd8347ab4ebe905a1730f442115cba17b8f5799fbf800e5665de8ef4d0e2583df83e31079c6b4c1f38560d097a58d39c47ba2882bce1585d226b79af2270ac3e8bde0b8a63b596566fe9101cab465a3cc3ee1ddabc93502c280a841468bb0fedf300c72a6ae2278ce2211cab97949983b91da41734b782dd47880c0601c72a35e1375cbcd4bc5eb872428229ab05789a332b694b9d70ace244ffbeae60fd86f075db459a389d1b66a68a63f57e503fae5ccd3ba68c095dc486a2543062904f62d3b5adb19a9853ccd88eaf9c89294aa4122726c777f926ac1cb466790f90b05e9298607328e956fb307c2aca1619d97bd732e8172c68209d69585fe32fd4063744b9e2f2608dd538fff5817d13ee6e6dca4dacb25fa3b2c91c38f7d30a2fb76723a0e4a846c00aab5cd68eee0946c311fd1aa860a7f84ef8dc4e69f5c2bcb1ea0aab4787bf17d6b173b9c16996d56a4e235c3a438240bc29d2dbd52aed17860658d5f4dc48f6563a8adc9b9fbd577bd86c54ad9652c42ae5fac7d44902e7bb49afe99d7d38a8f4cdaaf3517d9470d567b65a698fcb9e9adc520c6af913e1843dcabd43bc872fac1aa85b65468e2db5b91d0b412dba69460550e5a1d9bf2660b23daabfeb73c5338c7bbf7ce6e12f3ead001390ec6fee3032a97d8155c557bb64c2fe94b286eb7328471588cf554502a883ab90dea802ab6bc5f44b7e352bb09a4b2fb23a1dfcb867c5e04910cdd5eec03e5a3b8b3eedd331e8fd00ac56e9bfaccab1b92d785bea9f22e6ab1e6b27088deda4b752c4fdaa7cf205b224e389278eac499263dd2a8888d19ad577bfea49014e34aba3c14bd3c4578bf60e544b4ca968beb75c8231b65f55c1047b00b2bc0afac54c1e87b8f80cc51fa02b6d829dde441b7d36e91843eda55b047468cde9e052fa0294c4fe3926a7b8ff7f4eaac66a6ac4a429a5756b1cf08d44faad9b85397f53e7d10b15b5255b79c90231f57934d3811894b252f5ab922d3e61acdce1db0e268abc93d345c4baab5f359c7de42734c3b5832e6a2765001b60dbc4c43d64c8e6a13daa1961030953f89740f5509e7d1379a7c87c2b8ad0ab8f6d4340cc9a439162bb6aa24831a623101275a9080af9750c845f1582aaa83c1dbafbb2fda557459c53758684b95e670834209d2516a1040f1c1fc77c952725d985f217a97489ba987139b9600c066a01dd45f23104e4e967aa79569dad569958a9fb1b513e44c52629cea5c30a24ded844cdbf02c903a7a99faaee6d78f0c4ba885090bd2e4aeb3a2924eb96316ec50e8e800a05fb54ca4420ba2b8637201c34d7c6e4dbae8ad8d33babd759146ce9622e5dd547eee984783ef680ba48c9bcba05fe5809e7c162ac20c3e2de344d32309437420f68122ee5c10e9ebe4c8590af76bf547593510c342848f56da2fd6c3623b12987d318ac8367dc236d324e7da101a7351dfe5ab94b962d142c311f64f2dadeb26491e91232a637c8ba2f8d162fd01169339422c83e56c76f50473f82ea6ef99001d3d4ebe65b9ffbf1698ad662c58bdbafef47eacfd180ac230354197e5a7dc507401dfe328f1324dc320c822f9d6556a8764c3e58d32ebdcc11aa1eb395012a1a5568c5a1026c0bc9040a0b3b96e8846dbc098e359c8e6118b3c3c738b80bad1ef122cbdc01cd951ac76542627af22fbc38e1992d1df9dfc30ec4b88b366d5850f7560554d6b0435a880e2c5f7822da5473da8ba048d0a25d73dbdf8c32c8e0b04798f320c89e00853eb6bdc5d4f0b1ef4377e2395c4fa7654c46c4ac9a6d428a47f549dec4ef35abdb85159a4b89c76b780c2fdefbe6d87df8d2c58f1b15c39cdde1c30bcb8e669ac1d2a8c612921593c4d0941a7546f7445d784c393de92a7145647884a4ebe03a4b7fe28bac2f317be889035e531b7587c604c00e7727ed45eb1fb93f2aef9ee66ffa3719557a2bb78bf90cceb93dd61aefe7360e79e679f8dd6454b0e7e718551229af15bab1ade87745d6498c8a529bb43aa9f9f91aa9b10f94328c2a6d9974e8c3f68a28a3fac0a8ea5b0c92a5ac3dd672e927a1b98c14a8d2a51622614b5eb02d5dcab25cc0ec372cbdbfb373424201b2e3b69579eeb1fe65c619738f93470b8be6f68fe6ea302679704f0a132b6d49e133a1c156d583a20456b81fe1fdb221602ce1d2494d1a3fd2d8429bac788d4d11a041f2ec1495c21e0d269a52db282922b62fe5fc1069f638408852aaf2d1fc277003c6170e99a87099fa690215136d001626968d8199e2d08a8625ea634ed594a0003b32040e621d9686af1a325f48512179dd9a3543069d7b57de85ce4d44d071d09960b90103cc5d01b7cf050888078025d60c006a3f7adc70c2726455dbcee4aa304ac0500e08e0e0c5202afb0fcad51aa290c9f5a9b55bb99dd46f15e0d15bddc073c0fbae417f4043d6e2add557ad8f42e6823fcf3cbd0baab164c12bd25dbcdf84ab9be780ee351157a110c29459c5ae271e313baa6854ef244c5530a68e68dbc6c1a8a66ed3290f634324ab1b35c931189f271add95163b7d5cc3354960e5db5252119f10efac55b1b1ecbf0b22806ba853c6353697899357daeffb345aca6ff2d5986a979e5783e23dc4b895cd533d8929dbaef82bc18700ca5a4c0045f1576ef6e9108d7684cf28e9a57d1776e703bd5de75ecb5116af0a5ca98155dc5e1b88436a627ae9af6610aaef72519782540be666471f1000684b18caecc19c3e4d6e33aa187d38e4df80d860333ed7c8b8db1d349571df4f3f72e86144505e3710354010ea10e394597edf249f78c70dbd3788baf73cdf794147f94dfde83b4072349b62acfaf13cc29d00755d227e500793e3973d3cd61e0d8a0cfeb9d272298af9764dee660eae7ac31f319ed27509e11a6cf08b6be92fb18398c17ef057e4030aa4fee2f21c9621a0428be12e54dd6bda99a1c34d4198523b7db0e1466b96a7579e3031d011e3fdc7687d1058047bcddbcbaedb8a4d301a62147a8f3b9715a8c73cee85514c892601df7e6138fd25dccf6ca567082ad9113f80f5a148bfd42b9a774557b618af25f975ceb4a2163e0bf55604c52884fbcb062163b5855009a42d0d55d84176285c99f2aba239e645e3e5909d7d9e0662b9f7a67dbc22f4fc1f6e0b0e91ca7833717ed02aefb2bd3aa83f89948155d737c9236def960985c4fef174c8ef8e7e67f4a3d0bf1cb2e4ca1009863d4913334a45d83b6703ffa92e39373939202d7afe6382c40d8570aa0b42b6a62f9c0e5663022693b729a34ac7cba3685c7f7148897a38d8efcf6dc5c4629a1d9a6f5022eaa006c4e1c3aafe23a3bb2a2460dd3db15b2347ac4b220132ed86351b9cd993a14235f2b54b92c65bbc05054d8516897af78a19ae05280c9419386372f49a16474c1c6936a322f38f8020028d88f89c5952cb79818a7cbe1c6f2a7202b74fa650630a47e1984c8204b04e0d354440a70bb351aa91a416d16eb397b254e63135afc92689244e1aec7b5c5762022bb57a018d072de20da409b8ef709074883afd62a77e7f6007ba75a2cd09ba61ab26c2bf8802572da3500b1b67a3d0f9575a7ee97dc9266262f9ba3c36fb7f79891613d498e179c0454311aff94e3e26e5fef76661b17f7f5105bffa596e949298812371db2c223573bc91f79850e14e4997e05b442c018133d9488b1d5c13a1b4a01a942011213057874b35e536326b46d748c77dcf911e8542ce170f79c5b547d6b1c2ec4ed99280ce0d1cc1dd84913493686933ddf086a132d999d514ae8ae0a977d91f417faec56f787be2a2699dfef573acc62cf64b5fd449f9ee1de8d87e21d411374cfa712538f0d64b146592a3860d195bde0781a02dbd3012ded262f3cae85d141b7cef4ba024d80929821046269a8c640a6a714d9606ae9a2bac2c6f2021459379981543129801099cb1ffc93b611b0b6a38a5bc701f8487e2a95458588a50a609165cfdce8d85612c67fdd8ae326ea977c5ed0bbd2e61ca576afdbf9cb59dfab9d7784dc9d0c122e7b54c84f64cdc02b4b2bf0959a962374d742852ba2e12d064ac169a1965c8db4038649e9b0b21998745513856aacf4a47f26a2c4b4b15606b647a029375024921247134a73535737af80978f988f647e7ff0cfc8e10930db298eb01a3944998cdb9f2f386d2c22e60ddba66188804dab13778923b4cc6d4a53134646dd023dae81b209129cc0bbf74dcf00845813fff6b990f186f795e3c4449c1d62987a188778cebc0ff938db309ba9dbbfa80c974aa2e64835ef2fbf568ee8bcc684868a9d12048bc1e59228f75d1496f0270aa286fbe58f256e5fb24587c195b231704aee08cf4d12c002b8af38ecd5b4af16110e9c407176cfb755fc463487cd8b49c7dbb7ed413f101df450fe98c9fb3755fd02ae7fd313e7a2e06551db076d9cda176591dea7228d9df083878ce9331072f0972693ee40931918bb6977b7f870fb1576976ac6c13b8f238178b2ecfbd9dabca9cc32628acd311eefaad54c273f1ee96fdb4abb610a3dfc061f85ac022fdc485f8a0735958f4283540d362fca4b09bd903fb84abf5c9c253e4d17b6fc5a6c721c2aa7c59126a84208e3f032c3ea9d7e35e99694c63e02131ddad45dd94894a195b34e58f452f2cbf1784577618e6297cecdc35d2a8842ce60ac79e8ef1e931b8ae6f6006cf43bae5ac30b99509f48b131cbfc50ef4cbcb39ded8c8fb0714880a0447cb9821e0a8fa874043cbcecbab3ffb050bc55840e2163e8016c8617723edbeb149a1f3c2b80e039a1c96aab7713cb159242b1ab5f0a679ac26b37c351318b8265c6b661ad71078c84cb635510dc5a45d743c557e18d530b1506a5b482c0f8fac85c0b41a6d1c05a13d471e225306cd1b3ab14e9094bff6a1ea4497adeea2adce6c90b1221e2686e2fe621225f404f54eefdf8535270c34159ed9107d085241cfc4efca09d213d46c3d2e777434f4b6d4a1a3d1fb6555f4c3c2efb4f66378f61fde239217b7505b25089116225d58d5b92a2480810f8dc7a80c381402f3339b09f996429fe33661c7a0a8ac08c564717b25eaa6b6af6a67c96fe87bbb271b48c7013d2f9fd04c6b5aa5fc58f6ca722f03f486115b99c33c457419bed95c401e8f7434d6cad30df92a9cedc40a9d144b7f62603edfb001bd41f12d62a6274af832dc3c0daadff27f0fe407131965b3398aca990dfb629346c8f233ebc5adc15ed6105be44091558efa2537f686988769e198e7b24a37a0ed08e435b1d51422364010e41206f4861d1df8fee8cd0a3215381f813b269d510edd6cf7cea5107b764c178f065cf0d0c70b13e3b5541880d9e1dcd79c6519d3cefffec28f18048bf5084c2ad04e4586f9f8f0e3df8f5299322582e22ca17890a3c0963c132e31de6908d24ae5071a01e57a5610330f6b5840452f6f108507e8358c006b162837a4e75bf10d83162ac219db786ceb1da7c9435df534f5b6f6f605fc082764b565578462c1b395df33f653ccb50f4cf0cfea92ac8ed7d47b631e61421bc0ebad363e084612d69d8fc0c512a72fd7568b1919bcf7ab86fd62114a21038d1a0564cdfa4e250082de07c2bf1a16207c260607606ec30f05dd9736bbd7f70dc6e34e0ebdc9567d852911d94bb364f6e90100cd149fb818e5267de9f3f3fb43fd7c9728a989fa8fd822951bc7682c4ce2342b71614706db4868f0fffe99d423d4d909af10484c56c0250360b1362c44d758cdd5ef599949c12d751b449e4c84a2bd2df78044d8852e742d4dde6e7a3edf4d3af25c2ef0047996e3c1d7491303a611ba2aba5fd76a61db2dea51ba78d648955b448ebc55e84abbe74437768e169393df93bcf5a926987eff87b3e4c891fbf504d7ffc77fa6adcaff140a0fb3de1cd23b352d69113a7bb9e2e3f5013d74d784bf4f59eca5bead4449e405dc344810c8e975e4d4b5a88e9aca2b73000a4aef462e9bc818af1afccda3b3c8f554fe2c2ff3095fae1895f550801669516c07401035aa777273f0a5f3acf10831daff387fa0f4db232e3553bd70e1638fbbe10341e016bad0099a3ce91e7e1183e926c3a9e87bfb91fca90575e7a8fb24f80e25884e1163d6b740ab3aaaeb80c4a98b0f4d878078a571332d654ab469158bb8b4e7411363c4a25d243617eb17c70e8428556712d6cbd0b9110ddd3216e3b753785352d2802758cd3468adff05979701cc0b72336563d478b6cfd824dd31312d11961ce0f93225f46a5c71063f8047071975668c04481e29493f1e73ee3ac9356ab3cf10c2a4185ea61f63314df8b3a9021edc409f72886709874ed3c5856dd2692dd2fb9e43b2cd055b65df8de8db2931443622272e049fd5eae517f2c614b13ed9290086093547a2a24a062903c44869953cab8469ba6adf01e60265292855c80f60c3d17d24fa44bbc95591f9cd94287ed2eb188e9d0d00f2a722e0fd2fc9e43fc096f09bccfc333d6986d0c331de3cedea531fb909832fce584f1adf79c7eee35870dd8cc5afb25a3ca5f76a5a909183c26a748191e0ee59bf8b38d0683bad5e67e47a96beeef6a12bcbe20339d4c7192ec68f05e1a4a78b26b2a819915c05023660dcfb9553707ae8e71fe0e88ac62d59d0a69454a43b459438e37746c6c877923805674ec518984b74f891d7380e6ded1af5d0c1406bd9e34fa02e4b8702fd5c3eecbd60720458a6e782a35a084978520772110e84e394b63d304d974fec801c0f9bf6b5556a1797a97f08f10e79f356a6980c5c69643b8fab2554368e4d35e37fe35b87c4f2ce4cc9ef5b30c0d0cd02e1183ca3994d4faff2a995bb455d22b1d9feba754b3a5662c55166c125dcaedd3b8d8620e8bd9cad419789e17216415ec1a2f93e91a2a613fbe681ca6e4d1d66fc4e0b46be7a31a58c3e4704febc6923ca20d1ab936abf609c9378ebc86947b5f645bea577fadbd51d3354d0f8cb5910b2facdbac47e5326d020c3fbefee4c1b82c8f47a6351593c013cc189664d27e9c5efc4cf6009c12e9a807f70e4db199bf00275ceb4f884ed528d29d3464b1106f68cf3a32102d71e01a9a33326500e6f7f96b2406640da5a00524051d6dcfd243879984a6935a41dafa2cbc01b654a4e0d9b5ed56590420990866a6061f04c492b7272597fbe5602688aaf0f3b5807d8401319158f433b54bc5cb71a12a158de341d384826e610149b8039c16336afae73580c2e2352a5b779fd1698a28bf0620590bde1869a6bb7b980f212a451a5b22db844257e340634996aa8dad066150ef3180359ff75744918cbe8d2f7a9007427d47367a253287268f0605abeaf687c3cea85b7b5a138c4976769d6da2d6233ef783804f4653f25383f62447bfdb184fb157f3b1c3909121471d841e7be862095f428fdbd0e8e18eafb0db0124c4284633ec985429480b9cae98cf74439a740f7ef5b1ccbe7bf5eecefef4699afc814a1065b5089a43216d3f2bd6eccd9242a285a2a7edab2fd23d8f1b00a44c75cc24b037b352decde8acae7b43dfdd13f71cc70d82940aad94bc74983c6411cb0da5ab711d4b1930b4be723d68bf28804f44c8db96462d9580f1d0e601b8bb0ca4821cadd32147d285ac279b217e012ed5b50491fe5acc3f45a7a20f2f22024de0bbca6049a931bb95820dad53807dac749e1af8ac3bfc2db206f485a2f5a9aee3fca5cb39b7943b9fdf9a3377c64831fae6205daafabae3389620da58494430564d3ef9bb403c7ee831a76d2f3cf93cd828f8afdc6b7bdeceeee5ed9dd5ba62403620b630ba40b5a601bfb6e80898442274986736b70eadf109c7a347e962c47bfb22c47aab2f42acbb22ccbf25496251ec994624798e0eed255ba6ce9f284386acb12e39b04ecff9d1ecb51aff5bde53efdfe7edffb77eff79d29677a2d8f657a42fcefe71dc498ebb1fc2464f4b36c858143277e4a5d953915688105291c01a71e8d3d633aab22e074937934d546f9f63d282a6adba2ec7472ead16c9ecca2cab34445e925db645b6c261bba4983d138ad817183d39b3ff7ef0a5fea5efebe71aacb05b9665b94ae6894c7c242264688d7f258555459be025e72da789eddd872e955b2581615e2d810872500f71c741055617f167025c21059de7259c44f698843d3f2535a16c9f659347e124284212e77574ecb21d97ed7a5ec839ba8e2aac0604e5de532e425f4de2792a2c04cb29f3db4ec041cead3bbdf87ae3b3b664db66529c07eda0fe268f5ef7495a39f49362ee368d7f41870bac9ac17b0c7c030f42ab0ca8d2ef77b59cca987de4630c705e17943361f6c80bfdf08d021b6c916cbbefefeb68709c52060a78202783aa8a87511c7cdfda6a822c944d5a6695e5d1cc41292ad772096a3d6825816e52a502bdb8f51ba4a97cb099c8ba4fcd42524a521b87b4fdde7fefbedafd9b971aa8b83b6b4ac027fa1108b3f68f96be114c7402e0c5c89d09a658fe6ab014e3d5688b3c93c968a051f498663a557105e8a240347aa4d46928562a2503b2206b4aa2cd60caad2cb9ab0e0cc5067c31632fdc100849e0e421e8d0efc8463a1ee81a4ae1738f45d55722448fe4c2f7f34c0fea54944f4a0bd9fd9e52abacda3208e5af0844b2f1cdb64369849b63d949038aaa66c10d1a3e053a2d308c7bde79daee272e09c3b0077f6171ec4d1d914d8a63eb23bc926db27d57c27098717477e3b7de748c65173a4d2028762be19e08b6546e474069acfea526fd8b8d86430be71b1c96ac8ec540ad8160c999d2acd2aaa728797f8a9df7d08bdcb58d7aeef1082f7d3b8300cf11086381ef21ec6c32fd41336420d71fce45e7291669dea68e9e5a8cdc28b27d9333bd75ab37042901c323bd5bda86ca2a225cbe5270e0c999dfa84e0d4a329220e71d47e688a4f8836304527441ab1e5430c838b55ca8709ac0ba66093329276d9443d09c9f6c5b6e167822d8a35b0eebd7726fb13a012408cb9fefd9c9880ce35b01cb5300eb699b6eb8a314234177ea673df67c54d567e798a9b4c144b57e9da64da972e3fb5ab6e90b9ab15bfd7cc1eda0d451aaf88e7f28ef889f35e209ab9aa240754e4cf0cb3e8fbc40e0e2f78f87a1a195151476db5b9744545e1245493f513defe6b026fffa9700d2c476d29860374478da827121715b57d32a0a6ca3fe1ed434052606976ca47ad3ca2e142481e39514d23262a6abf333bd5a68eee43a78f1ec050812aa5b2a35a53778aaa91154aafed53f10ce52b5b94ab09255896a5cba2b016b874e1d2854bd748350ae2a7cff6b53334e997167de94cbe109da42daac97ee99164de2d2997fb37518876712cc09eca9a42a78f1018325576845ef4a2d343a747634d560605583552712fc0a56ba44a4b976f5713ef7366fa813cc4488ce9ef6a4a5405711fbab749f8c94ffbe2ca4f356c31d429b08aeedf52c0bde15cd127919453e653dd97e2d82d79916d7777df1a84386a71d4eceeeededddda5570dac1e2d039c9264a61bc2abc4d58ca0e1107e4c7cac6a3bdbe7aa640b59ae15d515015b464690b8f013498692b820c996945e4572e9a5648927b92a119243ca55c9124c3249665178490d11baa8c934722542174f6422d81cc91509b912a18b2f32480addacf907e9452b5fbe7d504668443d1921aafce4aa8ada77234aaf8aa2841c1778cba0074321c705ee0c7a5014725ce02e831ef4a1748131c2cfec74fe8b91cd709f816b4ccfe5686da15151de29b9675417ff7e005497edfb69a82ee0f7d7505df0f79ff525c4e916fbfd683d8ddf7f433d91dfdf1525fa36ab4b2dcd6a4d21b35a537b2f3ee8999ecba3f1bc8771d22c2529c14a5798252b2a8bfdcd2c05a1b2585025e4b8c05c066d8d63fe6d8e32a54b7c3785a849fcf3621095b5f7c1d1486541924c941155a419e0b414597e4a81883ff8a9e2ff29624c3f2704a738b6993de3e88a245b95ae6ab27f8e54d5643f1ca94acf92f1d4fcebd13925c940660f6d25144df18b0c9a9e3dd3669014dec739346b16335dc8a0e9edb5b7127e26f756bc15c773f9c9ebad26f1681cf55c3dc0fd453c570cb04ab3720b49a2595b7ba6cde0f92d517ab5f8c397af67baff85f16844552dc0c888914a9bc15e7a394916be157174e9e5ae9a914b2fdb6fb27ed94e8fa64b48dc64dfa3e9971215b5c57ea98aca6237f1c6157d193a5582107df73bca2f43a74a97ff43a543df9d3f7c18d9113a7f94dffd0f233acaef4e95fe940792fa21faee43afa3fbd0f787429f72fa207de87dac7cf74052355553a28fe901821f3afb07d1a994ef11b33d033a95d2fffde587636667c664a904d17df93bba2fcf1f467ea8f48bbefcee7784fecf1f29a7e8cbdff19ff2ff291ffaafc1504af922d24a17eb5644657b36182c85ede18a3d833484a323462a6f4bf97f11dcdc2f8232f7884f6f1f5fa1da20bd7ddc4545952ffa144721db076b084f78fc1ac418fc600d9b0d6e83b5d9cb41b662e8d16c69c9089b0d6ed6ecfe69567377ff88744f92d1d0609348e8491f80d0061b56529ef43bfe57ce1f2bff4f5a397f94bff2ffa417bd111de5af7c4a0a0f730329b3990da417bd8e952f3f24bde877ac7cf9a066049659d40f233f523ef4e3bf7b195f53f6493616a5e2a74a10a3ffdf91f232ce1f323ee5fffc6144878cf3478a8cf7e1e347ca87de888eeeff47a78a7f4d8dbea6de23810cb35539f6b18d47534df6c17396ad47927934d9faeb48f9d0eb78153f8348f9d0eff8ef54fccbaf2991a9e22ffa9a02efe85fa38ff12956f9b4cc37876d965e165553b0582ec9b255f918329ef44146bf1224e5ff55fcbbafa990a9e21ffa9a2a2151e9af26965993fd182a1d9c6c5f464eb6bf62566b22dd64fb29a60d8e5993fd376b8a64d6d48a595332cc9a1a9935a5e266cab709840f233aca4f397d745fbe8fd08b9e83012ec11cb59fbaca8bf06490eda3449535f911f514f68bc7f217883884f6829e75abd951fb7befbdf77a2c51f458d93ec812bad91927a1a24a575493fdd215af320a52bc71739fa58b08ee1cfaee531cc345108bc85c54d448658d504fe2dbc749a8a7b05f44557542b669e965476238bba097e2d8f7f64515f7183727aab2fd4e8198f68b1671a32928f797664ccca597c34a92916415b55d5dfabbb75500c51dddfbc0012715fa2a02113a61aca906aed1a255128511b9cf14db648b4400c20004e0767a66bf5fdc109e156409711071c000832c2c62ccf76e96905416fbe514494a41a826ce09b8cb3db496b09ca2745914690b27c94a2f247efa9c806fe9c5fdfd91aaba90b6181151512425b4c93e090c16690a23921748644b9255966f06830508bbd4c782920c8c524c0adf0b705a7a958090b3e897ad54452d5d514b5874514a420e3ae820c67c398809609203c6b14f490c6c723542ae4a6290440679e0418ce98cc4514bb271d4be0c7e90bf158ef95a80611ce421fc5890bf1560b09eb01695a575806334e28dce38d62d9c92649fe2580dc9c64fa42df39704e6ba484b5789c4517ecb178a89aaac59926d92b0336b2a0a18bf168aeee1bb398496bdce38ba294498c9af39e0aa64092159875c95c0e026b718f3a9005711e5fc52805d656b7555ade84886a2a7d9140077a1a24aaf6adaa2a248325b22813b44a4780cd982a1f83de37d69e945929d69597aa5743c03f4ede0f0a2a6e698ad5445454b556023f809c72a6adfde21b60e0e2f926c6e666ff3eaa89b1ce8af99fb2ab6e7213c13e934ad063880b08a38687c16a2ccfe1c070aafa3376f674a823c84cd35c28f888df0f3934877e270232aea55eb6c9f9248328b1aa9acc9be75243049568a65ab2de94d8663a8cc4f6efdc4b213c76258d62ee6aae4095ac82dde68db034a0f610f3d88fd27083c6290b355e7059c6a36db69bdd7d26b0ee12aa818b37dfc0472b4250ec1356f6f12c39bf4d664fb5e4d75e9776f0943e842b3b141bce1b93c52594a1fd416fb760a213915b16e0eb04823b61c4d2bac15006e6b095b5a6068849b09932baa0202e872d84c982ea71506834f5051daad33c8160678059926db22d9926020cd40b69c54e5e0d26fea79760e30a9d2b822e06e24b27d256e98c8f69dc891a92e55a6b2cc88ad0d8aca625fd479017b4ba82c36462a6291b33af31cc902a7a4ca4fdd172a2a6c89aab00c59a8278d0bf5d4fd82851036cec657d86a8db3100623b6c496d80a61e32b8485b0f1750720000cd8b767066a8b0e21582b68c34dc46a962781c160861016b6748053727613064e4398907ec9406da14175d140652152517eaa4045ed4fe1d748d8c22748c9992d492ebc90b0336c85b0ce4fdef30861e14d785e58b63c2c0af4b74fce2c0a3cbdce5ec4b2ddb59d1bb9fbd241071db81d9ca8a8100cb1f50559858ae261c1bfb956120c953443cb5198f0e642e1279b56586ee227fb1fb18b02f6bef393f79acdd5368e84f5cb76924e6e62abba68cd55a076a1b6c6852529a24f92adce0b1d2562a29aec3b91ad288a1a2c92071108f0795814f8f6c12667d6d429ed043815b1eecba2bc947d1bb284f809f4e499af157d81d0f775a9a82e5ae3ee5150c3fbd4f3f9f47ab883f27c1ac307f0d32fa7f7d5634eef0be4afca229a418789ea43a7ba682e9f0f620401ce90f27c1014d04819d167481921224323e57914d4481921225323e5f9541445b6a296888888265b110f442ef0539113e0a7a21b648b3f1541912dfe546424e6ac95c5ce6ea7b6298dd1e1c62f080a3e555b873494fd6bf3907ab23f698ea2b9d9109f105b2ee14d4dd5f0a63339866c53d289664336790961dd4205f20b3f711a07ea0c769fa89f2c6a4254837ef9debe4806d5257cfb1aac5fbe336c6d672a9ee9bdb0eff5f2f212de54170f6f442cf0615cc4b228b0cec093c7cbeb21c42284d9685516fb62119c92b9a600d0e2414c9512b1c85975a94332666226db1b9c44b65f536c44b62d4c44b64f4aa106c95686042377c8192abcb1a6fa856c9f47bf842d0b5417fb17a81aa8a77e7b5fd664af88754f114bc4ca56b3b1a656bfc074672a7a6778b3852dd186fb1ec498fe1e441cadeae262abed7d595405aac9be773bf775de170f7246ce341bfb30333098bbd6908acab340341334907b7dc8121cd6e538da4f5cd539ce721a3fb9102f92bb73720be99c7ee2a89a6a047426027218c0d10b041036e4903997cc7daabeece896363bf3aca80774b7a242df79ee432609aca91fc5ec4ccfecfad233ddd2cfd9ccbd564fdb73cf819e9b391ced1a4340b3486051fd9ae997aec1b6df73a617773f58d3ac7efc69f91ac3afb997d5a9fd5c57dbc7cec9a5405c8818d336f84c4bf24c71d84e72ffe62c58cddbc36c6909b807bbaedbc39c300600a289315c8fde3c5093e400a2fddecd033549e64e0338da7f03cbd5ce8289e209c0fa7546edeeeeeeeed30de5a8d6d0bb7e7f4370fd07807dbd0fdc7e86d5babbbbbbbb5f47f723a0860d2f2b6a5f3447f52ba8a2f63f13d7b0a215b5a8fdec5e8270b89d20f091bdb5b627ea68f7771bc9115b2b523547cdf0effedcdddd4d8357ae7f03480150a5bf7e91b5775bc3d15a611cad5fc3d15a6badafc34f8f003ff590ebd7b0e137385afd44ebfba97efd197efa5cbfd6af5154410517e4b4da541c9781fdf5dbacd5546bad00e89ebdcad24fe0da59d4aea1a63181eb776db3db341b065cbf2bda9f6ab65a6eabf54cfbfbeb595beb6a3a6bf5fe2e0cff4debcc80d31ad3686cdac96ddf2fc034b4e74eed69983568e41d6ad4a0c1699ba66d3476a8a1699d9bee896cb95cc504b41255936c65e40738ead52608598b716d0145d64c50ae628c667ace5103a7346ec8e9d3f0dfc193b8d75457963e6b0c57821cb59efdf434aac9564b43091148641b23571a346864500998e34c107674e37edbb61bcaf086765fdbac26ef4ecddf3ed170b9ddae0baf673b8566edaa86ec0e8e64323852f58b1d15515d3c57255ba46024037a37fcbe32dfeb209951401fdd875c471cbd71b4d4a464e32807066ce3e80c2bdb24b22d81f28c1942b49b428072f825c125f99dffb0c0e27f43d864d6649f4936e5aaa40957066f8ccf9d314fa9268e7b4e00992b2b0bf7305e969ee761dcf96b921c0982a01598eba442d8c89ee74a5629c4f39f10b00a76d402e04bffc13000bef39ed9f9760108e286014e6ff69e86776caa908fbfb368aa902ffeb8434e87d8328989a3f6afe8b771fdefbde910fe315320f9f3a015557ed8fe7b1cdb7f2790dc66aa99b40792cd213c9bce1cbae5d6f0d74469406f41a04e41d97bd2ecf183f8e3c7e0ffacc0dea79b4cb39e597ad42c6b304b560f1a0060a6428072f8a5df6afc0b02d6aec0e1973e3caf470396cc4d8604ab1cc053958eaad349420537c14e1c45c34fb719e656f301017f1d1510f0c54d706c0b41f99a296e9276544b4a6f7fabe99b4bb9f4d551a5f31db56815f8543940abbcccaf6654484e42a0650e3cc95695ed03c9403e20e0f465b27d991966cd251347164c80805392934c72f2518153928c247314cb1cfd5e24fb24272f0322a5249c265ab9d6e4aa44064b94c8000913ac1c7255c2fa229364353ce4aa84258495c499ab9218dc805d58c51f9a0356bc71ff7bffe18aa0f306e39edf4ccfc7f4f94d611f3c87e8ec9d31dadbc7377ec21a13d12c918c6456d97e3fc0de5bcf0d18a459bd4de8ff7c80bf2358c5df6e51a38424aa54178ab8c6fb1035695893fd4f0afcb1a0bdaf073825c9368fc6a389425471e3a7effa788053d07f3cc0e473677af308df588b7ace1a3bc069e97a27d9e227343a416ae474e436c0a033bd204c9e296ef239f88ce022382dbd3a35f515c1ff819f50e8849350d1b765cc9653842a0ca2b14ac029b609bd8c54b545d45efe4ba9891861f8859255b2aa146a172a3b2b164e714c8b01fe4ff92d2e182938d651a578853bd3d22c7fe925e3c4b195f3249dd59a40f726f8ca593977ab7162c44a3babf3538c933fc5391d15e9573ec537e78963e659ad49bb2ae759ca30433f32bb5f31454f32cb7b53329b1989c6a256d9be4763bf73db649bcc5aeb0fe2aad2a2df517ecaf9a33c55b6ffd05953660e138850ec3b37bcc4512d2a4b0ba7a5570d7aa8f8a7fcf72d8280fbef7bee54f1ef06224810d1873e48f91d8e5954b57603e24f15ff3f43ffaf23f42ffad0fba9a3f3517ea7b289a268c4e8881e38c66a49e18c07f1d707411904fb73ff4a1b17b95a2ce02260ef411a1adb80f7de7b41118747e368c5117190ff8d9f99569c3c7e7bf7787efe5f072a4eee9303df77c6510cafc77181b50c7ab0864ef9177d8aa69c2558892423c94aee0bd8cb690956b390d31293920dbdddcff4dc3255f082953241d8045587e6d7bdc40538255d13257f3509169c90abf8c3963795eeef24d2f5597a692fc04220ddd8920dc9a65324998fae02074850a54ce0bd00079fda0aa73866318e45891fce79954a4c5c15440738c5b19c277ec2a7a8b2a8d0d92d6bb216d59dad2f0738ed56761cab2c321709381da94a5719452d5d2355e92ac14a321b8cc869c926dbb4c424dbd22c5b6ff19e37fa3f157f153f47aad428889bec7f502c40a55d475cf74c4bb391bcfaa5b2e53e3b89a3f62d8cebe0f06248de72eaaa203e5221716d0796ed888991ea06965009bb398e618b0abd9f7f962ca190dbd2ab46dbbe95447193bfefa301b685d8d7dde4ed61fcfb88e0c0802f152aa5a8a87752584d096cbd47aa8f06f3c0051b8e6d9b67fb38a713c451335cb8c64f35891698649b621c2cc34fb00d109ce4cd3b01f50b503b02a72459e8619c24b3a8d07fa9d0597a11c1a8eeb70e9d519645ba2c52d264db4eca22fdd25de82f943bc8441abca13bb33ce2a6328a528aca623f158bc85ae02da78de3343426186b5159a8a8285c8436d9f722db6fac842ac3d546e8ed93b6a8a81111b6ec782459e83cd3ce68b5858d6351a1b72f165151a1b303a22786027a685a68428f8c478603820711c7cd3ec042fc946eabfcaa52541d64fb65ab5f729436788248b6ef676c3c9dc498fed3e742859febfeb6f213378e63100de8bc9c96adca80193907cf9b5953a08efe8e6c376be638b2c6d5dfbf5160d6b8bae6e7fa526a2a8b6505a1ba74e660dca699463847f2bd3e97a3dd23f102c1ba01bcd8b0e149a2e34398a3ba3817c359ec6638edef2266dba759db96a3c522326f157984fa02529149f85cd83180d2a4b2a068a1b658142e64fb48720a729d3c1cbd9f56d94db77d66d7015af701813e3b2a157874df91ca62bf57b60f52f5cbe783fa4d012ae20bc7b1956d19052703bd1cade240fb89de276e76e41ed48307555151dbca9aac14f5f49dc47ef906b9b6f6f63aae56e3aa551ec8c97270324e267edbeab7d5b6fa508b090dd0380e10e6106f741e577eb3b7025cc5ca75def90f2178c29c66c7fb9b16013fc799cee9b8da5cf0b9ae28ba6edfee737d2ed7a64140eb72f48b9f3cb8fb1d71d31745fda4a82c7645bc7173777eae26e2974c5497760204cbb66415a182da46d43ea2b6aa5fb695aa5f703beeb6aa5520d7cde202785814280a10153321e080b4001d00725516fb370a1081d034ad6469e36a0161cbb4ea3ed8c1e938f1134ac91a97e8d1053daeaacb7dfba3129e27a7e32a1c57dfb822c79536aeb4718532ae403e88a2fab0bd7d900b344575194992fc14a405e805ba02040365916d0a8a699f82a848414100090144846cdf2f37821fe9899b06fa783a4d021c179c6cc7e782000420c0c5f0e77ad956600ebf2629a93802e6b464a52ca1bad46cab8bf8e4d754090bcfb4a4c92e50033f4f033bb05fc0735b610dfcb40c43afa0da2b64fbee029ee9e602269c51e8c209d9920fe3ab7ee131db56b765b006726927111ee4f680908b612ea79feb84ef4f408ce99fc0e79240f8b9be282aaa648202a1a6445826c936f67d2984ea444581ca269435bea4c4a28422db284a2abac069c92a65652ca5a65f6aaba4b128fbe5cba2b64f39d22fe3db4f99e997f1e4d12df63f4d59f2694a169fa65c916dca0f3a67ad26f1d39422f84c2192edd9aa941a647bd69425a6a822a589941864fba5937ee1d12d658da3402ef14c7b0549e44e3922a7750a6100c1ca2f72936c556728c550866cbf96ac14e4022288f6c2dcb7caa2c69535d91c5dab62b52b59e504c2cfe5b7412e8b6a225a759588a94a56abca3bae728cab7145a30649e699c08134d74e8c807546aad2e4c69b23438fedadf758c5f872339772fdb18a910ad94fa3086ee6be7b78df0304dd934b5a4195b7ceadb90a57e31ce77f6717c90dd9dc9bdbe43ab949ecdf18b779cc4fa968432ef193c7e0847ba6d9e8008fac4f75bcaa2e7effe3979c91f2f78dde8a2aaf9d29e9b7b34f1a683932c9592b7cdb9172f82a674a0a3fc6197e4a798a674a633c6dbaaeeb7e3b4fccaa2cf6c397a3cf013f439af008087ca8542020814aa5e27e333f400247519366e39acd7d69336da6d9684c341bcd4663a2cd34edc25a381d5960c8724ae2681aac05fe7ede573fa769e48c7c82652c2a88770ea956338e0a12ce703086aa84e68b6c9fc4d9bc491899c44fbe84165a31445259905c974581bf75455c44c007bdf5c3069ee4176ec3238ea2d68645662966226b59896c3f0c427d11736acbcb4f1e45b61f22098b380a7ceb439cc64ffd612b3c029ef7b59dafd6765fb094e3b8f7f0c6516bef256730475f8e22b92f3f6d1efa29d56c6017899f349b9b446c8d2c2732091c1d7f0847ed7f007faa5ceb937b31ae3033d427d5a5bb06699d692a55798494394995a324abde6ca00bc30e6cffea27a9f2bc275adf0dd8a759770938bd2f127bc2f0230e115b8ede005134269a4d48248eddde5bc804ce28535d7a73c23721d9da20db4f3715f83693ed96c4b621c1f9d967cd028faf1b9816c7eeb932c5133518e015683996a688f80ec26491c8e58a80bdcea690854a5ea19e46f206f97ea1bf0229c8d6df05d96e32a85da89b8825b65862ab5fbacff1b56de14d378c0872de59ce5ab71b3776bf89de0c2a84cda6505db67009612cdb2048d538e34eb11536115b214e7833ce481b748b7d949c86308b4f14949c8aad0b54160cb8c906fd5281d00cd90908821d2f05c6082b16301503c0c05416fbad21b70502f50747c66255eb49b6ef5060f03d0d535d9a940259c9197ef0d35be3f9ceff001fff0fcf773ebd3541e0077f47e73d405216054574faf07ce87d80a70f233ac022c0a2b052a5c0d386343147ed8559144a9b5f532826ca8b7e47e8cdd08b42f851ce94c7ac2910d714100cf078a2b57d9ebc7193e39cfc0a837193e37c3bc996a3f6a32a42a56a8d6484adca626149c256080b93b4aacb0d79386a519af494b4c1e97d693318e53dff0a5d999f547ed85e7bedbc32f0f1efe87ce8fce179cff9016bb2df39ef0be5044f22308efc3e1bac1d1630e8b90f5bb615b6da741c472de9c44ff24965b11fc3dca7e48c5c2181bc8e0adccd17a4939c27a0279b9038f9cd0e0c9c92b3fe34848537f745c25a3668b5c8b314860f049c92b3ceaa33e327f23b4964fb1d55cf08ab45819d4a0223a940ce2a6acd9aaa30902b02ee22605875f13b04fcba4943588f0e02a6364c0d5b60d074c1158e417c1191ed83a2ebbec859a7f3b6637a295006f8e1668a2d6b35273d2dfc6e4786dfed3c4d0bbfdb79dae7ecb691ebbc4ff8dd91fb84dfedbc8ee33ee1773b6f6b6920efbb24e769e1773b920bbfdb79dac771e1773b4ffb68a1088adaedc84ff8891af909bfdb899a467ec2ef765c75b1dec86d1a89c751ebbc4ff8dd51fb84dfed3cac699ff0bb9d07f3134782420fd8013b204f0bbfdb81c2ef769ef6e1c2ef769ed6f2d3167ec810877e7129727db0e5069393301e3ea92e66a82ef7533e25cf508327b2c55760912d15c2e817910957e0821326fd223a11c3000531278b6c710d927e196796b0824584f429e6c1caa7f848b68f85d414d300cfc8f8d7113148511eb36c9c75dcf8a45bec8f61541652659f14d22d240d2a0bd9b226fba41592b4a2b29030d858556a8cfa695d5416265416fb631835e1cd58d38d37fcfec4cffdcaa5d81c7eae1dbf2769a0d9d86827776e675792f7492b98b45a5e0a09b3281a248c461815061b671625da58d3f8a45f4427dd12467511c35059ac45893942fa659ce9161a54977189ca925e19b31fb52c6a64599315d565fc416541d22fe3916eb12fca371625b65a35fd62c3464d0e6dfaa5460d9bb0d51a99f4cb0e3b3c61020e23dbb7f80ad5649f0bd9fe8a8d8c3315c53040c149bf6026dd622d0a67514d4b5831d32f1849b7588bc244aac9fee8cc51397378708f88e30faa0b0df2917ec142bac55a143ea29aecf81a734ace443915b164313196ed939509d5c57bfb5a17e18f9fd86a950d30f48bc146b6ff116f8d1a25b7c30ed93e28a583a101ab301afd5b488422ba31c28e59534fde742a59c51b36464e8c277e2a452c1ab40c7a73e13e0fe8d34b8a58a1882562895822562962cd648047757101d531582e549c2a866c732a18550bb50b150cd97e0c6ee340e427fcee38f393a61ac5ae15b65a020887e450b18069f2ebdec51e383c6c5517bf616b073825672d2c85ad225b58b6580719f320dbc734fd42aabac57e0ec4167e416e35815bd96215b420dbc732fd32cebac5fe2c05216c7c75d88dac666915447a9a8d9823b67242efbe0f6156b4e9967612566d988cacba45132e58d93eb943ee07dd50238725f7c72aac2527dbefc2f0de80441b6fc6cde806146db41cc22c84372311c7cd9a8d1478135565c8f60bd93e79436281cc427ef909e364c890e19a8dc68958db6b9c0e3c78e44d65b2831124f89d4f67bc8b0eedb9a33941b369248e762ed85d01d759cfa0ba746e184d9fda07d15211ab036a4f2a8bcd312eece5e8e501de1e8c968846e4ea6c9a678986aece00200440d3108a2dae08d86de0f2dda0a82e47b27dae2b8c3bfdac39dbf7054d61aba5fde741cd14b54423c0da0be972f07d59fc28bfc3f39df347e73d8f72fe30a2a3f39e53e5fef03c3e55eea91201fca1d781f2a2bf2f3a7d18b9a147e97e0316e5d466f00f233ac0efbce77f80dff9f06f26673e8ce8e83cd879f043af7947a73b81f03c036aca73ee00bf7306a99565ff1c04f0372568648e344c0fcb9adacaaca95f3383581be7a14fcffbcdcc9afcc6869c0caaacc94719e8d54279144d156b61c12187c5c401875ff9960751c4989693078c030e0fe32d1f1c6ec08105c5f9d1c814f1fbdf608e39238e35790ea81a653418d3581c50555d56de7ffc8ec64fa337d5f0fedd113fa1ef0fae98386a5eb13213457fe54d0f86c418d3c903464d66e791d9790584761e35c71a47fd6b304719ab5c5939eb3732c3fc269119238cc39109762d1bb326a77159d37847a69749bf32326f26999f70647699f42be19b2b3f32b9ac99418cd04083b6f2a3273d9822c6904e1ef0ca4aad2c24b3f3698e44628e9a57ce91b9e519e65732bf1bf334838c36ce83bf111f3847ebb232471d8ffe473756f62611193432d95f8639d6b8c9df343b18c91c658efa0a1738c52ba34ccba0281c995633bb9635f99f6647634d6f567bbb217eb2aef96924b3269f71431eb5fcd4f96bc93047a68fcc8e118ecc9adf2422e34966b722e3ec861081d3ae5563a494a2100ae8a3d2677a9ffb91f9e5166f5c15b347c79059999575b3aed5b5aea7179bb256f76aa5d84cbbaed5c9bcd3039decfa566bed642923d6d30a2d90ad3441037151072cc03a23c5aaac3dd8b566ed410f6b0acdb5bca92d34ad09f95e4dd3d29b93b5fb60ed5aed48a41fc66b5893f69d8b3744b986a35a9f34ac49eb74806baa3fbdf7a5bdecbaac497b2d6b7f97f8a92a29c34cd6fee678411c1552dd1a3f5525647892351a5f649cd39bef4de36461852ca717075c2929c3909cde279bd3f053aad1c0b876f05387216b36b2e644bbaaead259ab29ad5f7b8dc6da7386a3daffe704feacdd989ffc33e84941880e66adc502f6edad96246b1a1247b57727da3baa59537b65cdcf1b73542b82d3cf9af6afbde6affd453203abbe2a7c83a4d9dd38daddcd774dfc34bee7008603980d349adc1a14b95b732277bfc6029b9c823e591b4791a82ef8351ac89688c920372bb7c644eeaf7db23277416e4d89dc9d9fc96c5060a0d847e6f954cbd5ceacb6bdd6379f13a77a4eff8e9324596b7d2bc654989fec4dcc4f1647e6279b636dfca4a91cedbf81e1c45acb982449f2afa3e457b13e8cdb1bc7b1155575f59bac65b17362d2b43347eb8f62054dcfccb533eb66a69eeb6b66fa79d218b97628fd9501044fb856f0096e6b76a05dd94f0ef409c4f60540ab859c261302e1367182dbb67152c0f6db75532059eb96ba6d27cca1e5b51c9a432ab009b23db52eecacb5d65a6badb5d65a6bed75e738e7dc53212a4e76f47ade674d100c4371ac3160f85181fd64df863dca5de375c907b056ad95d970b4861566a33e1813da0f85084fb85a0d0ad8cf341c4792c4b8138a2329c68015d7dae9743c1ecf0e3568545078c228620c08aaa3a150482412958e6352c251a7cafef5c4c56a13b21198e46a6dfc3af6d2dfd11ad67471a97a19b7ab1a96f5016b72dd178695b197a1363ebb2a2c53ae9e85b668546b82dd189695363f436f58d6e4d7b197dfae7ec9ae0d9e95379fd3aa580d2f6938b632d654fbc5fbd46bade20f9d433b73f4465bf0bde71e845ddbf22ee5f56f46b88b7397d56eb61c586ec15ac646b62a63369e99b68c6c55c6569e99565919dbd2f273efde9845d55a3fdbb137133410bbc538d2dad6b5dfd2078b0f6c0c2a3f747fff9e1ce8efce1edde3fcc1e233bbe27dee037da1ca9c59cb23eecde00d9fdfb5da99ded01c855059c6159ad3cf35c22a0bd7a9dc6fc9bd9fcd77e47b7db26ff67df135f9907cb0ce3d311d33587b95b7e3ab9c63e75e7c566b1ab9911bb99193d91a354acd8c316e348edad4877c471c7d7daecf258adf99ef81c00727f611475fed72b4bf9c96ad4fcb5190999639e926440aed7369dfeb738dabeff5bd3ed777e47339d77523ebd3ca22a7258d4afff64052dbebd07edb5e3b75900d249536926cffd472f92a8f785984c6f4af4268ae2b595d79a4eb4a58ab7c95b1724959530e2969ba1c08d88a98e3ccc81a57ddf7a96551da779f16de8438bab5b46dd59da5908d55b2b621423623f5c573e33dc8f6b722421ca5bdcff8a9fdd41b0fb621d99ee3aaebcc7135b2faefdb3baeee3b2773f45ed639b2c6d53833aec6959f3aef9ab371745c8d2b3f8d4bf07cbf3edf477e007dbbbc54a93268c3bee655a9726535121e1e84fa82a2054772c51539ed6b862a55466982d2a4b2806440aa4fab655a261449c733232b8f30a8630cdcc395011472c2a1e8c60096392a0b18e33bf2b954b81a4e36da5eb0ad385965b17fc1d6ae159cac5ce2a7f4d31ae31c763d24e112ccc9c0d07befc5bf1e06496fb6a5715ccdf8a4f85cb783e1b464d55977e51024313f814f03eb969432173d8675c8e13b7650180023da733dc8f5c11b523a398eda278edaef1102893dbecf6d1a027801e4b0c3870a9f59452d4895de5c7e5136016fa1c58502471123e627951f7aab275090fba9f058591af4b84f04a9401a9c7eaeefc8f7f2138c07cc863604a940445494c985aa4ddb383bde07f52007e8d558ec2b8b7d2e895ccec0860c8d94f63e68ef3f9395adac9d41fc517053dadbafa2f712969e1b2f595ad7c3376e39ad31b206349b0870d301ea0f1e2c64fb5e0e1be09493c5b81a3f31c100c84fa1eafd14ae58a50cca276ad9442d6b504f9eab64895dc427b640a0f85d1b90ca3ea888ea020ae2272b93ed8363e82611f23553e6a6c8076741942d6b2a693aa59d008b376cb9f2d38c9fcab3071dba8c282090cbcb22900be402b940ae745c991d278e825c7d8226a2fab0a9aacbe8f26926b2f5d81664bbca289f760c9ad548f40a5a891663c2300c43313cc75565e9e08c4a5416fb6465f198b5b26ce312ad030ff6351e300e7840a1c9f6412314d93eb7a4bab46f1c57d39c4cfc2e8f1ab39917de566b048140285c0c6b4ae02e9b80b7d0e24281a3485b559e8ff271a0f1b5195cade9a339e227d0cbe527d1a2b4476927e8076db24fa3fb7ba6e805cfb404c30f923f675ad694a01f34aa04598153901210121ec404140a7da6344056c8f6bf941a25704ea8281e1c175c179cac5f402a8e0add6ab5e27894a518d35fa6e438404535113121946513f016b5d4e28b7c83f39939aa72745ccd007f669f1948f589e411409e78c3334a932558fc999f524e96553c36f0f5a08afa4951a7a8a7ee970fecc362ebb61c1dc7c938196cdb4ef8f32b624c58539e3104f2402f90cb412ed00be472b393e349a911ff1396622843e8d39418a43421fa34658a942a98d02f1e14a42ca91e9a94999aa62ce1899d212509cf171e2b54165b36b982e7e673444d02abccb7a33971f4d3e264ba0f928f1595c5fee7a389f161d22d1f285496cf2c25f679f209a3b2d807a92e88654135a826fba2b9a9a0b2a4c0a23e97357d66b84fabf5f93712812b61c8fb0f143eacefbc67e8193f61b83e4ffae523a4fbcc3eb38e861034bba63e214865519c6c48bf6c49804049e0a0fbb42cca53b6c48f15d5c58383ca82a45f3c43ba0566511e1a6b824275f128a92c4cfac593a45bec7f54d604aa41457dc40f0ceccf6551db4cbf1820c90c0ffb61b1727c84f48b0d1b1f2129351e14a430215b8b4ab96248bfa41ce9161cfc20dbcfe22e113d341695520325d565899ca45f5266ba256651e519aae98b7e299d748b15c290ed17a14949229672c48d459551a8a6236a12b2caa2ca9835d92f59d6e4b9b9c2657954399d9cdf92e8971add623f896c35275a8e45a9b6146c2aa82edfdb47117906008578c0cc460f97c3468d859fafd1ad1f42ad53dbccb6da6a6a5b6dabe631858eabe131e36c38590de1b82a9de20174288018d3a5fb9ddb009ce81fe8852297000cf0504035420e1e316c730c6b39ad331e5708b87f5c525dfcbbef16fb67d7dbccffc6da56dc2c073146e464d5c54f18fc1bc403e890bb0763c4186709ddec1b628e7afac0b7ff7dfdb93a71d40b40400e20bef32e0a08f4eef88939be1cae2c945fc8654e4985fc95b37ef99446e0c226a37c5a62516691ed97b07ef9b486f02aa5f0dc748bfdd0fbc0fac513bb670c36fad85a8702127f5b59d4e7fab4fac543f3697dae1c5de87132cf4dbf78646efc1b03a95fa8d4cd72574d2e19a21100000010002314002028100c06840312995015b456e50314800b7b9c4a786ea0c9b32486414a19830820c410100000000001d2a60118335de0586937248997087b0f6c46931923dd1c139c6c99903b456f3bfad5679029ea210226be4a5058e94d345dccbc9c9bf1fac38d30aa648af771077cd5cef7b46c5146361c1a2625b0bff06f623c6b139317cb85e41b8eeb4913cdac38682b7187f198bd0641253177069616c6a3185cb05dd9cb479de6adef4678d1d8cf60e4a4f3f3753b5c2ed67709410b6c318652465c0bd010951629c3e47e06b01f633fcb81ad29e7b57c2324736401fc37034cc5acd69045f11641c87bbb6ae2e44cdb99499abfee4bab8b0a2111739cae07071d30b597ccd5b6f3cd0edbdbc784c29a5d06103303968f506060c482f5324707059c3ba51fea54d7c3325ddd4985f32f33fadf51a2e24c9bf94762ce84e9225e83e53f285f002db6cf1600a762db63d985a444c6d81ee46818d24837a0b34fd70c00ed9a5cc9618b717db3399e4195075e68e2a2234c932db38c81f810de68a02b81603bdb5dba8e6e5ade7edb47cec90c2860231c2afb6071a2b1378d69924badfd0b4c4be93b6a3a729b46726563a5e460b142c11829b82ec8619e9f1c1b1ec11eb3b01d46050579d60e26becdf197185d3f60e3c4411b4ca9ed60f009f7f375fe7b71b85ec24c55cae7e85280cb8d97e6fad8055b13ee1a578d1306c9326e5d6434ebf536e15218301634c0bf6f1d952d679e9a6d0c1e00d665551f7928a560311ad86f9aeada9b94ec5390f75deb4adcbc8471f6cd8f36f3ce54d3e625d1d5dfb01e50d278cf9b4b00dc0696de0359aa416813b31ca6508a12bbde91c4e3b33b33a014152d98b33e4d87f829e0dab68c198181c0e4b6b93469bd8f1f6220bf4122f77b100a1e315eff78d199e59f22e42ec39cd0995854e69ed2702d570b36a0071400f23bbc5a068b1b40461ef69f814a397908a97ead56c9c1a2d3b81749a059d7a41935dd74d02f04c4f883e6adceba256091131f1e046fa54cb455aa34299b7b44ec51b48051eb3c628861999d273bc2c21d71fe7662da72c95fcb8eea9918bcb183437fa488d6242a918c0252c44df1e1a2b993bd9a8ebfa2b35eb4823aca9b883eb9216a5c39c2c21d7ea2bb039f9af71db17423c6f2eef60659e3c6be50e505c52af9870391e34828891008ac64f0382d86aeee68bfb8c1588c6937430f1ca45db8e08911eaec239f828e3e68658434eb8953905381ed141d28d0a727ea027a3d3ccc0065ccff849094e3dd109adf03da11fbc48573275b4f106fc5b9c1df0951c007a65a2e1f61cc817ee4978e0e94df0f346ebefcb05a5139c47d7b24c7c7364c78fceaa98f0e3e08f2c79632e98812c41baed0009243ec3d7f0327f3b10f4d8afdc3d213444449b0357213fb8818d71cb05a7585a74a8db8f2310dfaac1f043f9fca07c082d4e99b47331907fbd09588a6110a82c0906a75495a2f02906665442e15619179c63a17b93cb46c117f234f1e314311f14f1dd7343943cec427fdf9328d297db849edcaa5269909eec885b5b82cef37487a6e8178338a3174fe3650ada79194e2896969175cd5e7953d04e22a07b1c864bcd66edc4bec7c01da24f49627f45860e1effe2f2ecb2165a4c156f39eef7575d4ffa947972c33abf0012793b288291391eb5eb81ae9dac854889dc6eefcbaa0112d64e7f229707008de14c3c2ebc69a2002e7b0dd1998088c0e85bdd7376427bf20676aed473193a91b1abc668a3cc76ec432cbe091af70d40e9b829e2723673f5bbce6b4c801533956935640e059f53d68f50219790b8a0387b66dfc25f419d273f265f208e96362b71a84783f08e73b958671375186445130c1a0335fadb75d47dccff982fe81e2a5abdc7cd327e5f32ba2590b621b3dae607d96ed5844f6f510e7050c84a4bd70801d80d275e3b146dd43f8743d3ddc2b42b3800d33298beacb98cdb063e180c4b02ce87c468138dd345a511aa3752fb27781b48d47231d7a02e048c37fdb826414d28f703e99b91fc5002e68dcdd9264d4c1c06d210aa6855666908645342c913bcab557311c66418d99c81c0f14c955a3db3092de37ed474c62755d199de47578c1aefc5c3f1b40b826dadabb4746b8f5e72addef1055f88c9122ab7423bf92c59ec17664d1a35b7bb8cb8be2ae36065c026aa6a21fcd0143b7ba33e329ddf3d9a3399533197a1a32f661860c3d1a61779d31bb2db7b5bfd9b088352cf01246896fca2eebebdb1db168aae190dbfc7313657490677d936a9c06baa39b25480ed4ff55ed37c56659e0ade6236eabaf00b4fc531eed3a1845645964326ba4964508dba4eb2dd81c8fffcf798664f5d51ea3fd11f4e8a9b54e5055267313b6c7e841d6370eecc73136e6f1b801d7d33046da4f17b40eca20faf89ef8e15eb67ff67b63e543a2070ea0df274409341f88da81b82ff4dcd5f9c3f5fd519e507ba1e77211e234b486138931c619bf6e51a2d3cbc80cb6512b49672a58adeea0ef59b1f7eb8866db03b8257f47087eb5ef89982ca22b37d1bf0c549baefd7d66cda037827e5093dbcb7e1e5632631f18a94870aaf58f4a0abdca30e2fc9ae2b60b8285720ba0d135f9637032a8b10405079035304c63d78cae0ef69523eb326e5b69ab1770ca8f8c1002fa2c623d8b71a36ac18508831e9d65273589e375d7467e83e75e0520ffc047b0797eb2d3c1db09343e6a824e22ee8dd4647b6a7156afb1b27f99e555bff497f02118f41c44fc39d3bf4cf63183f10b0c35100a12c04e9c3ab3ac47b8a96dc232746490676c68a38f72727c69f5af9031b67bb1aafb0687cc2fd27eed34206b18435560e41f221fa7ad32be675e30b3a0a74b4dc6a3af3893f84fc26afb5af5eb9b3cc629054f37937c3531b867c2723392a34e43b5c9d6bd86cd0d019e153a5b5a2ae829fa663d3121ee5b3657b25641db26981c7f3b180a7a792c3bc07ef274d88e829eeb1f594bb17e0cc363893c89ea7a5008e541a91009053dd7d8cd7e36beaee8401c4a12773bf78cfb2b1a4623f95c2555d98a8cb3d9e7b0e448a52a9ffd3d8f5973ab098ea7ebc5e77467a8043dfd242913cb7d763f825832bb0125ade7755a8feed6245e5c3aceff201d16443b27225bf9216b6c3963aecca2f926927204c2f9bee00bacaf198a008ee6d7efca4cbd9063f9f44b1b201b5f8d778f40f9a605a648d6fde1f6c2f2133123825810a1cc47f3c7d1606b3ea88a6b9a028babd7943e8db791b9706926a0688ca17754e83e51f305886fbb1b46f35bf9de5b47ee301957fd3d781bc0bb298ff1362ed42488506827441e4042ce31fc826708645271c6fcd7f4c4ea9b6dc8204549e76f7811b87f05b132ce40037e4a698a9043cc1179358665fbcfe1f9073a13b04702a13fb496108e9e056e17b6a28a2a016c0ab0fd15b00dde25a3a8b0fbf542e93a904467a264973c0ddd5f19e60fb8ff00692bb440faa193fca7542d9bb0ce4c4ba5f933d1907040a952f01b8583481f5a15b860dadcc7eba3699c4938aa9db94999143ef498297d0befd22e63296ec81565d75b404b9d9a7606e98bf8d0b27fa45c29948b7b57158241cfd099f551314afc83182856eb7d88fe60e00c0aea132d9114ea1a7eb76bb251ef8f505161ac4a246e27dc92ca75d4bc0b886d0b21bd17a371ab8799fe85cc0bb97fc2a91a0f5195c6c22ec470ed99605cbda04027b30b10b6ff8a572d2116689a30bab7b60df6225d1d911e77c52fff530766a6673faa818885f5b818856956f4877754dd8d3e2267c017326f73bd3642eeae2a15378892bea0b9a176b7d4f14aba3e10ef94b11cca8a49f57d1f1b8e8b3a11c88605cffeed61ee80e51153044d2c8d748c1b0cf6b5a5c9f8439d8b77d41ae76458113c758e23ec552193fb133e7861bef475bbc19dcb59a808239f2bc9bae3494172f1cbcf54cd00a8552a1a93ca6ee905a3c87d8dfa5da2a1a4e010cb9d0800d47367833ef84ceba67b7fc7792ecf9d90791b8bc579459a23bfdd982ad79c98ce1b359f44a12d8f624eca3f737c7b3b517a21c9cdaae6547e67a5d046d634a37adc894ef77941f3a7f2c169497de78067ed4c6825e0c9f634c08fc77d186e5bbfb64d89fda0297311cd3c91db3b0d70bcde658988aa1c678a539d32ca271cc49e43cb7412ac53baac1117d2d785b6d3993861a3caeb4e349a473e1cbdf81838a391047d4f98e9572e410e7a1bd87d46029fe7423ad6bbef98187dcf523e904f2d1ca7947ab24f0bb2768938710fec9870dc677d2094cd3f86ea1e8a101475a2671fce61063f04f8eefb488985d6640a941ed81b8a05c485e6a67f66b84cae59a61bff7616b8fb72ff832fd1fe890ee5c08d16958df25a9290378e7fc248d56b470aa5b5a096b08db26cbb93e1b8407529994cad672d27a9f4e21a0742f38083b93fe073b646f0e8fdc1a0d6d1a6eb1fd9d91e648f8436f3297da5df474a4e926ccf4cb8ff02b345f36d9ac16cba1cad957f8c0ad16ff9ae5eaef3c93b33fe24b32104136ebde85ceea1d8e3493b7513cd073c9cf81b202f1b4873f03ca4c37b06d3de689e20c1f7406e33ad3e2c26402ee1c53653195042d95137bb541ca72f0913f1ffc01b71f7c834fd1ce12d04b1c06f036ccec4f9ed3fbfa8cfc860bb19ff1c8750086f2bddc09a18de8114928a69533a66c586f7190d6ba9eca5bef60a6f8cd3f07e238bc27ecc2d5c71fad4dff090c1bcdd0e008d3670646aa8d5ffeeef5fe30d6f42a3a33b8baa3b66786fb353b0e670793ba418910ab07644f04d0e0ffcc7b7c27320b6c62d49ec51abfd57b4ab2a1ca1e4dcd8bd85158d13099b02389008a7cb7fdd3b778dcc8196bf34e9acb5a5be0cfb7a188eb269a8fa8ca77b2bd938040c1b836550ac8921fc04845deb7aa7052bcebaa654c0fbface0f50d9bb32faab915990f4b042d3e9de2e4b4f557b9241a92d9a25a92575fe2eed9239ba475293a0ed189cce5d899bc006d6104b82effd43f2023289d3c87f4d4ee1fefb66f8d85ec66010e50defe50dc3b9c72d1672fe05a493efc80aaffe2a9a55b40868045ef7e0f5e09e7a4dc98d4a9e178bf08a6167556329ce1ecef5ded769e5132402a9345972a25d96cf4b41852272f01d4e172bb8ccf8bfbaa8849169240c3d3aed03047c8b43d1dfe871fb46644f70a1dd8a4eed1ce0860777017f2b08dc0ce21c6a604530441ba093af8f45f51a8f594c81289668c33d81afb1db24e117c6fb8089e70b30f868dc19126ad91ce224d33a66016d1bfaa8f2e86dcfc406d4815062a1bd2bb503318f73d28560af96813036be8a2442cd31e0fc97de0181cc7d6f83384bf1ef5b1db944c2db39d6fa6aaee2016326c22aeca45d7f53b4017d248634dcb34cb944584acbfe6f51ca4634f60be226bf0ff25448d95e8f0516dead77f1cbaa4a3b521dcf26273cdc2b6807f21cec4330c758f03ad8cbb6e17b779eb6afd5c762bf1d64c88256722dd5649441d79cbd6ee6f2f56dc7ac6a9778c75bac2c721d97cacb9782f87c74a9fbdb2e58d7741991dd0989be6bd430789d3b32a28446b8cf27d7579979e311417566cb551157ef6cc702f270cdd8ec82bc714002d4fc4d6f00c5cdf078ce93ece4f3a8ede083c3161aedae2e87305ad9f4c6edb73dc007664fac709000b6f62f2315c4296c491a836947210313639fadea2fff5b5a77d45a8ca1a1b50c3dc5a6343d17932d320219ca598bdff99910eb270307308ac1fd2ebb4930df067aba298ed12ed2f7a9024fd4f87027333e2d99066485b05999231792607a177e20e9407f5ff2500bcb2d82f0fbaf5b5d171f19ca91cf21c7d1daf17fe960a17a3b94407038d6d2bc8d6148254b5210a435a93d733326560de8fe0949c3076e347ec6104d61d3176b9c7928691095f80e6c7a41e41e250c3904de8c3f059d13caa538142befb876b9a76e5b847405f5915d9f9231a8c049d50d703207731183fba5bec32b220bfbb45353b5e18052b78e5822b344140f4d0fbae31d2e64bb876601e279a54da4f572ae776691515cd30dbb2021079eacfa16e1abcc648e125718e7159f9d1eaed3bcc133354f38dfd24892e6c519493d6075bd32a9aa20d9043d50f9267559055a257121b616e5615994873a4258665e33065d5aababca8abe36f4557da1eab310b4211519b165367e8dd015c21a5fe73bfe3e7e18509308d69072ea0ca7f780187e0a4af48285d2906e189c5e4a7222841c9f86f2f7b0e5cd79b1bd2784182cc7ea86254b23f08e03b332ea821e3876ac74512ccf88ea9123e59811b3b6273ee4c06508d62b50510e86f63c279fa6cce8015cb30ac1275b9524c50211cf4ceae638c02a924fe524fbc045a77033bc9581d60d7c29648979841d94d49b46552887279d5083c8bf95c0480a1d95c740b55a85811e4224b2dc2aa8380cb07b15b32b0faf30c72f91671805ad75ea7a1217d647a23ab2d79cc2ec6643bd0649f5417c8a80f29744315a435b76704d01f34fb91cecb2a8180e8a8040262ff78a5b1cfe03084621c7b4e648141bfe1df5a5630cdb85b5dacb3829ec831ce0f8716e6dcd9727462953eda02f7be4aad715921e4c73f2026d7a66a3c63c792d3601e49c8e7ab888538f7a65acebd4cbfbaf0c82650b20c93cc221c05349a8d2ca9c035f88c9c2cfffdb24bb74c7b365897a7ce733acac35e17cc610b4db09e31bc3ae445620cd5c7d447c70b22945d9f6985d3f79140680444c64a525d86ce0af56f5e89e161519db1160d1332341536bd58dcd4094ed61713cc70856291b24162a945f0fe5bfc332839217bf1ed0cc4c5aba1770d7c3bc506cb92e5567612e950688ce604c2c6ec2ae87a9b6046547180280cef8f597523ceee085c75012bf080c5a64a200a6683e6bae65816a1f80858808f833ca1501037b243b9e8501d12fc279cb7af32db048409e3aa0481ebc49c96254e2ab2e40e9f22443bc9e532f3ffe0ed776b6ad4fd100aebdc1b5254d69bb1715aee743c304315359aacf22841a9c68dbbce65ff6b18184cefdab7c7f55ba9d524f32e9a0ed745f3dac0817c41abe8c08f644b0143a8e95b05140c5c4c949b6db885d67141d674f61a816a76731ae269979d1aa786c03baa12343332044a93bf2581545999d5f6af0a70553a5f7f334bbfa85ce7055b33c47ea7ca5f158e540a07858e098598ae5ef31964eaf0bdd6e5ce95e5f5d23089523832525d26fbd0637ee3877935a69eaa7213d91adb7bedde1158be8636029af93e6ac5acff3d8d9d8a92b60924d062df0eb2d48ae9def43fa62e9eb0d2c7805dcfe95f4ddccb94bb609a9b7c5af921f97d980e70b428310b4163e0b1d43063813b381117f34f0ba99bfd50b3721f8d9cb7ed6aa8c86a5c6455368dd7c0153077ff70d4d663550d924c0bc686e557964565870a9c8f471106dd8285a7983a564867eabd452c9c07735919b3de33171f6efea25f23a2687b21e8248092290a7ea95166e620d4eb1fb174f39dd000e328142e23a0404e81f40a1b3ee438eb44926f93a8a81206dc37be1a0c7cfa149871c834f509fb044043c596baccb74078d089004081c00111aee292f855a8aa3e3f3911d7d29811942a8f4f128161e682ec171dc05c14a8e68f0e4ec960c22661d4e898646d88d694d798ae769e644973ae5b94664849e51c6bf8cbe95015d87d9b9730c9f85f8543a81daa98457a5c7367a36b06996d9fa63c914e479281bf688f245a74a25264a3267e51d0ae43f46375c6a89a18b2b6b1be974b5be3bbe4f8f8bbde5e73458d40f841cfe039af71b8126ae30ab3455db840467112f84b62d15a3763941fde9d710c5812482861aeb61b8f64523718d56e28412a452aca26529bec0b04f7b49ce926732a06ccea7abbe6c0e0cdc7555e1c555fe44afee8a3c7d7c926f433a1961bed34e3b3216cbe7ef540ce698af302e5c2ade63cd200ce67a28efb19cf7357368657f33df6ef37b7c4e78c1f8b07c36f14fc3c4e95db5d56fa54bcd9f989b7f71d644674c6df0391f37c8678576143a0a3ea00eee24cf10aa6c4fd7369331bebbc4cab279feb64f30b35ebfb765f91a87ec52b640827db5e11d07b16c4e391b49cb301b9a860e6c801ef411e35d68f05806e40a22d1e87ef58afe5c3bbce399af8e8eb4f976f107eb2e826716976a9515d8289e73085cea9cf0b57997072e5fe3d5670dbe1abcca5d5cafe9b8125c888150f7df389cca9505e695cc525e75d2e0c987544119e97e1bfa67a78006774a1d8f6cc53c1e7e33cfd47cec57d2944e48caeed75619944086d625a4c9701cec80a84bdad5ce41090f6d66e46a7a0961556616531c414e60e7c771a519d4548e153af74c739354757529ea338865efd8a4a38f10bda043fb447e4a974d92d9a799a26b20a59136e1cdddbbea8db64be9fd4c4527c779b3793f9a57b2dccb7ce2aa1a897433648ed6b11cda2f695ed9cdca4553381715f5ff8c3f8ab96e93e08d501721d9839958ecb71b65905cd5ea96869a9f19fe0e480bf024141a5eb04017f7c6d6343c5d7e88dd4f62ff8d016d2c9d8e1d77f21e686b1dadd76e480412b4f1be2856907b8d1f85b8fa7fb16167e2cd4e90a50d9b792cda9b321eb728c8382797321a3df88037f5a5d07a2925aba81860fd22137f30c168112b3b18b16ade6012f3f06a5693c2294e5b6b2eabbb815bc6b739220b03790c69434bf460d9fe31d06dc96e33525aafa25a2ce302fa16d1c7b7a787a6459bb63c311790b7c8b8a2d6b452dda7c5adcd3edb052fcd84ca21f84c612eea35ad29568e39db767b2412b5f488d74d2a7253e3f2d1a569b54198bd3016a11444e0aa3689fdc606ee4063d89b0d8eccfee34c48c458cd06d82e793b3893984dae2b431a1a3301f9e63b1497c9a36872cbca5625dfed6d93973292a45624bf83119b03c193513d8f27fe49862fd100d366c428897f26dbb32a88f3dbbb936476ace20289d8f577c04d9334692f7fab13db55b5246ace0ff9cc2916088cce7d4598305458139ded934b9a140e0617f5ea4b3729b30dcb1d8b530b21a1c5d1d5a4084d3409f140e686e24ab8ca1dbb72a84397e0a51a39433b01eb2629a779d7639cc54667e30d1d9a91b5d9104a18011df0e8a3eba9de113d08140756afdc0d5fe2ca73adb6fee74e38aaedcb47c8e73cee701c60a403c31b11ea3443148e0c30626acb96873d0bc51caf321cf90a0955e53cca98fa14b22f352ba444a1093985b6d1548862e6e5e62bbcd08ba19084923726bb69cdcf5781180ac9bfc9f66f37870ff7218e549799e005547c979d18fc9ea7683c152bf05613b26dbcfe2068eda9de20f7c5e205dda09f7c6f2cf5adaae2b80b4ae02e5b41de14036bec040f4e8167301256060f37c0142300fafb0abc12a80403d246a2d111fae68535f843681c3ec08d13e1025a197df0fe8290f815f4facb0ad6a95096d2cc56ea3830a575c0645c6298dec604655d337c62a033dbb2b204164e163f21f0fbd5b431350847ad6a2a145a614c8c840886e2dc5f7e4cb443d02f54fbc13799f6bf9933084b3c02726d66ca470786db9f9ace3b9729c01566cb1404ce7b8653d125d8cefc44f1d05284c3050b6cc0a27fecd3a6cfa7ae4c8f35e122af57a01752c9b4ea729e8618905f066653307d19feabd71c26b84fe110854ee25a8aa55393e110a806f019d02c76da4848a970295758f4efadd2554d066d85ef8ad8e71043e4652bdb3d8e7ffdd63bbe52fe647456274868711dd5c58cb6aeb25f284ce7061bb49359ed1287af96e2e1eeb8370a33a2d97b0cc5b078ea2d7b2c01a82108bfb274c817827a07a6e7c89a0e12aaea007f35736de2c162f0e56fb0967b923de8a30e344f1541ca53916be6833df6fc9b6844a3e5cd68f73e10948da383f910e51a98f899aec09f1201b9907ce630689ede12c253839cec9d6d2c9867f8e309eacd29675c81dc2cd626760e4620b7074a66a25a46b9824e9b853ca417d13231ecd4bb682f3f0468b1e79cd6c73c4c1cce87f3d53ce3dafba7da84cc46117acdac5c12f98a4865a3ede6d84210db17d25ff64df6837a878d22700fb8c81ed348768e64b47875d1cca86a29481607feb9a0481884b97a05d09ffff40d8150442b145be689fac905fd92158a5fd53dec34f11715619cc2f7fea070118939405e0e9f38937902f5851aa316ce8bbaad52a07b0a0513071950eb12ca9f46a8e2da2b496b94d5994483742f56ee1172475dc386358ba92a8858f087a8a8b7b0375a9a05380e87d5110bb52c90b3b3d02b3649e6a297a5b1d23c580a10b0cbda2eefc5aaf0381527691cc7563807c0d61129e24d3a5f5aa3c61fb5368b32a85e76773c58366ff554859e8915e89c092c4d9d6c3e5c8b708f75d07ad741687bcd05721cbf42fb0f3da9e4b9c99f8a2a1506377be5b9b278a24a0b3b124a7090665d6a0af316b42fecb3370d46894051cdbb0b8c55ab37b5445380b4ad3ec8118ce403ca25babe3637a9edcdf5db9495e92bb3d9191e15617294feca07e25e2f5e3f14a66e48694b8bb7f5ce4285be4033d2e7255ae0cf649726f6cd0464aafc05e686e36743686bc3c1927c019b7889b429ac00c46735b2007884b10d2436691677c85e9feb57be502648d5b32ae2f272452ec68a042fda8b5b99768b0aa625c4f4e45f917b1ae558831cb795d85e64f2bc522680ef5f69e6727095e54324c7b1eb989992021a92b5c2f3a5a612fd755180e5bf97af0c8f0e832dc0f1c505aa687d2e9618aa2bffad31136bb02707283593ff647aed4f829a83ea5544278cfb7f73b446c9a454767b29a100f48b1aca744a19de94f1f5023762d9acc5ec792dcbbef3cb528107b520748024ab43e68887aaa2576f71835b0d370f60bbd15d3ed3d9a63345899d1f0868f3b190e156e697086211aff4558571a8654d1e964cdf0823759139cfed2ab37c8ef9b769325b3084ada083db2aef313e11b6f2be1d383a89f9c76b459db090ee9e16276fa7b2b71cdb806d0bc49b372c920e7cd93aaece31c80beef44ccb82354437dd5aa1bb438ed592a3baf1c4ab3fd026ccf84f10efcc1d346020ab4aa8e155efd64244205a02fcbf05fa85920c85c6b7b0c2f6a977bcf5e93200b18f8a22fc0859fa67a7e69b65eb13f50cacdcaf136bf1f6fd7f92104cb16845312dbabc920d55344f09daa7ffac156edbf1f7f28058385bb379406490a24aa52c8d75a050f673f94b16580ec8f978ab6164bd9e2bbf50dc3b8859145663edd0c704035c050814b3ba97bf8d6261fe94cd9a41eafd84cf3e9e6dce57ed6e9b60432b695aefd114d36f159618d6540e190a2e933b749dd34303e709dd2ac4b455840faeee0fecdf1363766db43ce7c22b5016201b0ab1dae7cdb90be18e36ee96d5d60c73d29c10ed790119dd72e9395758a7e967d04a4515db66319cbb290b45bcad127be8105ad0a7768e044a41d80c02ead28c54315f4123209a1c246fd9148c963b0ec51d14eddd17dc15e8709134082675f4e7c6ecde3353940010a0fda03bdd6a1a6b19d029bd5a86682902d1e8ca743fccc84b0316429fe2d3edc8b0bfdc29ef64467487b63992d44cba11c50f3efee14ef47d9a160d5956224e2639413b423e8bb0040899dbb248473265626c3fa52259bfb2ff52f04c21e7b5369aa21ea90470df32585e132f252468944c63f53c3e733d0e8ca5411be6cef6c1e87d9f16937c9c9de08ac48cb8f4449b059c4e1aa61bc2aa17c6cfad0cec1e1fc52ac1848f2a0759b2223501a73fce9ae8d9f8d44a1cb294c3d6ac6591ffa487a57015dbb85be136ac79192f08a228010135fa0cff8d63e8ad5b097a1dddeea2fe64dfa1e9e8821ad8eb945de79a6c2bcc4c2c0144522ba00b59d800db1ab34b9a185174c6507b13e67fbc2303c580f3df495580c8f4398d0698853b48c4259cef3f3ce6a373dec1d3f69b1f1e67a61b0fb87e36cab5be637753233eadde5f82f4dd5af4ab0352c9845c35ae4eaa578db9167a4bf18fb8328bb0d3980752ddb8b3116f045bf72837ad85dcd87f8210ddca55130fa6b073c238aaa4bb26ecff70fef8cabc091d0bcb588a184b6a249eba12c69dedb4095f017f28215197ba07cef9a2b6e85c7aa2bfbd7e7ca50e7596c434c61e625aefbe77e4c723d0965d3e8ca630b9f9e6b04ab62997f371ad1000d6b70f200f98d83fa5a7e3a452987f228b5bc4a95c56130813e8216ccd9730a7284025ae3db0e46879332b5355d2e79eea537edb2561db599ea084a09cd7a38bd2be0fe12d7da7b3b8849ea0a5e423bc3eb01f3334e84a6bf40198c6b892a88c7e1dfd79c233188dfc3df9d6f876de6670c81134a41b6509048fc80fa96bb057ee60bfa31019ebab2f5c27691053b257600de762a89dabdbe36174740932a2ee58ae5c452e11eb4ef7440c92edcabf35e7611578c2a90d3d7458e5aa64bd492719f7075516e0df6401ab7a6512d8c74b13fccaf68cf5cb589b4d2600f4c87c25e0ec0b57cc1856754861122d8063a1afb060b1f3782afbb180f4e56fb4ad02351a80059d667284886f9d178a0f1f8db0daf961cfd179539e31a5bcae0dd6de05c21d7146c69f4065fe20e4f7a8cb8530f6f4a15e28d61f3470a5ece6b936d03e2b887ae5c2e29093a22c4ca91a954a16ff1a3a1c6431b645462caa3afe0b99e2abb2650137b7bdd0c87acf00cb63bf4b0b1b288e3114f3de85a444a9315764018b79b9612425029478bf1bb41b9346aa92ab15330d1c18e47eb41dac3e528b9f29bd848f20319ffc01e7aa97c91b697ae46a03cf2751614459f423d1a9fa9ee3f9d2092816ff6d4c5cc889e5be544c31de65730e008c92c0e3daaac190e282a58d4c00cc633c62920f00b6541334a8fba20938e4e064034e5fa359bee2da569a5bf221b57ef4cfff630e0ae5c147e4a66004a5a690c04f3827b2002ed1e48b97d6c661647d3864b5401d774af46d807d265948c0d8ceaa3650d21db425dbcd4d7e65af7a75bcad03c3f0a01c6ce982ff211abc437f970f1ac23a836cd18fe4b3858304acc70051ec21c9d438fc675fc9cd9479c2460a8452ca9d09198e15e2e8b59671f8d1a883ff4313dbd24bd57d0c999f6f7bf808785309a52de8da3137a6b4b2281ecd470016cf81523bed667d0f6e475a64f11c4ad29cbe2335151b1482e7c12065f7ca5d31e32b1246b262f514e59ccb713683aa08682d28c1726fada6c6e089fc972a09e5d0eb5ab773e42f9647584cf6669bd119bb27857f4ccb33f1c1d4fbc3e8ca32eaaf6d1964bc2a790d028b029a99271ad640a5f442cbb5ab5f155a4b587dbf735d81c46568f4e939cb40554bfc61e9088fb102135d15be2a8e31eb65c7731ff776cf0d62b0c13465d30c6e13c9dd64ddc2a214d97f14a574d452f58ada13fbaff4fffa4901a2e49346c78177e35f33f7025de5028132d3122900e3ebf78f93f1b1d67f4e5f4854d9d6a9177cb22e3f4f0a1b37167fbeb83ac2b4bfcf70d2d70426f68c27398a9bf7f31d9df89357d3f27941f13d565976d7bb3c0bb65380de2b1ea86bef4f1e99866e0bba849da7b46c7f8d711d72a7b921076152bb6aaf0a3425444b1002e2dfee307bf62d9af988ef2c675d7b17c9990cfcc423cac851b767e17db39c20e23cd11dfb64f76cf393fdee6bb2f4a1336f63b0115a57ee48586abd8e116ae3a4df4c4f4da4a8ff9b948978ebbf4d005cd258d2ae9a07db257b681281ae7a95474176602e91d222aba0a8bc965c747f74af2232d3434babe760fa8f4784925337c060b4c53595cb481beb4eaac0389b9e9283370254c0b9382a78ea44b181cc624db32649f6ef8db25a0d57cb45ac1284c25aea61301aa117b42959e09e69a0a01a87ce1725263a2b6a631446f09d759c1d31725fa9b0537d0ac506382dc94eaa82685374554ab9aeefef8e80f6d2027e9b673f36572bceb5d0945bed3f59ee813ff520280264e2aafbc078060b980e0d5a4beb18d5a918fdd8220e54a693000958cb26cef1f90ad4fda526909bbf8c3f5687fb192b65ed63825c920b708e68e3f836a53709373e9cb0b8e57907d732510f308e807076a519f0a61e5766a6520368d064e6ef2a0f70e783d1fa3d46326364ba12eb2d086c22603123d059b7e4614159ec08761021e7f228b63dcb86e0b86defd7d8cbe70186b1850078d6813ca5d9fc1d8806b88a449718074c24fd05970d825bd844c0843bba7cd95fccff8ad16a25f7715dbc22a2f31ac0f7b6d0481a6f280c909ee0b4282d3a1a8d32a06fac78fa103d55f51909a571eb194ba7aa2d448fbb7af865f67c3a84d82d9563ece93104a66abf38da66dba9872cf7efd3a5bd7bdc3ac4017c48c1997991af6182e7fa7cdff17896c75725d7d5e2d9809bd58bb01af1bb8008b447828fa56ccc430d0725114482a3181ee17ef20d7308cfe9577cd607c39f7dbcfbb7f4aeb96305d914196df53513048a46afcbe41782214b2bd55b6d7c5377dba5fd43176906611298314847301f0de0e28a6729ede619fd1714b3ed4a542b0efd2bcacd541f9a87b8d909f0de7807e2990c9649a8e5491d93a905566a52d7d5e3a79db86313ff7666f21d948d1b240ca5ab3d332e25e1239135d641f0798c498da0ffbcb9b7467cf397850c69f12df5af0efe9214cb20a325e8f0b19c0a966aec383ff8234b571511785d17ae56525678fcc0b3bff9cc5667c1992c08e3f081070a860b834522d793bfac32621bfe428eb229b860eec4496ac8540e6d9d92fc5bae3e7b6a4015e24abf0468e70ace4a1a681f0d34f975ce96a473210ef09d4ebbed4d782872f1b6b6d6d5293f3cfe3b3412dacb13cd4856a30ebca95e7af6a94530604a2d5ade596f1d1f1eba5715afa718501f2e2d7efd11f1464bed1ae4d9efa40c42875fb08c1c204013760b483ebbddcec24e8714e2d33c5888b1b2e790487fbd566dd0a470a4b1e67927cae98f71a0d243ba428fa30a7a56b413c39b54e0801bddaadadd04d177e30a3f37269761bafe731ac0b655d8d270e7b566e022887499379566863c74d17d5e9cb797dd23d8e515296296b8da230965b5568427ab3c2102fce51389e5ab525a3192a69e0fc05355fae6f2db0b0701f848778d9d887230623e5b7210e0afa93446b534102b40ddff0362ea3fa41f755307c211543a8b041f5966bd95bdb76bd1c43706107e204608981ee770ba68b30713870c4d7e24632c1b16110ce484e476e6b961eecf7862772fd5c483341d612308a2dcb178bd507ef8af9a93ee43a0da60600de91335ebfd06e1ce8c2b2021cfb35b13511e7620888950183dee77b032f3f55eb89aeed2b157f8db76a73a2bc69cba213b768b898cf5979083f42b6d3e10e077a36cf2dec81d33f60d27ae64888b2ae8ff20585910b7ed259a2ccd7e909315a1d4c84bb01bf2948a64582ee842b32fac61b9a1921bc00df703a91be18ac14b7351841081396615f25af5dafd18c15f1d40853a0de4640046ecd612851440180d9494283c4cfe7f98b637cf240f091afb886999d2b90922b3a4693f01773ce492961d0ce9e46086f8c8e2e075d14cca6726235be4af193f50967939645fde55fad56114082a75091e6133871fd52182e6dacf4f0157beb7dfc45e4a4239fdf97aa509dfe64a9a1a51477d67e704567c2c6dab191760e7687b647572e4d30ef93c49046be8c83c7c3e4aed4689de5ea65a89b3385e2962639af32f5dda0dc28e774546e0661313ea0739eaf42725038455869d524f0ea156c5ca0734b7d42296b678b8a9bc3cf44540fb0ca6660216417a020a1c895df0099113e9226f479cfccc9a4975a7f2071f9c3076dc7b5c8c79eb8f1b1b9413fac69078839e7f078b8a9f8df6d5b465795c01ad304f7b2c4112f9c6495ad2e206eb28ba890eee49dce16b1b9723610dc4cac92e8f8df84a3165fc9d29bfb5f19fa6a2079c0b7eec4a18f73bf8d7ef8dbc16c27feea028134ff776562fbb75a9c146d498f56d177349e4c72ee1ee3d03d6897c2d3bd8633e409a50e70825adca594e959a85013626889df3bba89107fae8c6a951d8a337103f98c75691e5b16c38b8bacf156fa93f828746da3cdf3131cfc16bc9d83838e6efa4472d50ba9b6ecae8c2bf8e481ca0890d772ff49aff02ea4d15f37d23ed0bdeb1e3594441c5de03bd34f630a461f520bde55e575ee7fa15cae3b3d3364b7c47ed6008ea07a8e76d5e538db9f96711dfc6d5c8dc5e34cda888d87fd84b6f11a624964f4b67b8d7cdeb5075c07d3f33ea6689ef558c34419f857ac812ed101b7afc1d15113b0eb5d26de14bc1f8b974963bd17c95aae708efcf46d06cd1bd9e4f11fc7750f262c2b5e1749736e4a0a65332f89b2d1a4d04e7f3ccd41b86a69ca01707ad74bbd0a5617f5a5acb8d685fa7ca6bc4f733a368b6e8aee72608fe0d1532b4d844534ed94dad8da92082354e7506a6ff9c01bf1f1030fbe9a9055837c34d19bdfca7918d026011bb281477bc327251e5f84a6232705da1acd8bb1383a3a2de870cc8f7fadcc30b7314cd07939ec8a659e16091a15db20696b643717770a134dd34003390fbf8c4bd99922fdd071052f2a99e98c4b77874f8625b2c6c9a88a2c1cd952b6a028241f44a6a7303aa0c1454db33484b0b1a47bec82e2842cf7ab5ce04c9b9a21e8ec43e21aa7d3139951f5b70b0e4281e00145a74762d83daa0f1d0494b0bd49f00de842e1cda1e2a425910d595ce726394fcea5e1e66641f56a9c1c640c42e6749aa627652f4018ad1c865fed3b8250c52710634108eddb7e39677a7c6d3c70acdb98d8b8076536f8819de94e3fea932851c67542e9175a65daa2a53f34fdb309e1dc2d125055572f0f5e38fd6123afbeda044d7e0f0e5edead1f79527655e355ad7dc8d70f0a91357ebdc7407b9b4e158959d0c6c1c881db41ce5ea67823b3818299394a4bd52853af9a9f6d1bbdb3290a6a0fa62b5f3ea4521d5151ad04cb816e4113a6f4aa4120be4b3c9a636e9a448d438b7678681dcaab0023583fe79dd2593b6103f5391282e13ee52eaa2994eabbac587561bd410c6582daa7d89a5ceb6524802f6e5681d9efd18e45296a40bdbed2eabdad2a3dbd2557f05ba6d6a5fe0383c051d092aa5128ed8f45072cbbed6dd08f236f6690b9a4190938e3df866c25b2039b2b28d7794aab80b3bca5f698b38bf373342d9ae704ba032a4d7011eb4d69d11dc8968e2334431a3d44f3c61dc7801a4a503a9d6ad00b5c0ccf656327f9427942c72c7d26e113155cb3fe8bbcf8cd492ddefef93cf75d4a15518aecbda864e1138b3ab794372d5d33f06c37131441cc27b8173d590742b6d2dbc50e93a798d00362240e802fb0300daddc782c23d5eb7fc2067125ea8562ac40738961c465c782bfbeece0a118775e36b8da308af09019536f470a18c7aa063e97c867c9f6bf344d28ba205cd9bede9f521ea97ef2b3fc3b0e2066a2227bfcdd140bf2fb5d11bc0625525c09c9ca367c569fa36a635313aaaa54283b09daebe4a7fba8a5e2b40761c63b2a07621e9514bb8b591ce2900dca115285962178d58da7264a9642f921692cef5a96c84d6e8f2e6c5a943ec2133365707832f2fba5f419c856564d539a1771cd88bf88fc996c72363857a4d1a401c80496272fd6fa825bd999dffcbbe189434d8b56af7c6d5e750fe3f50124787a1e50a7fa73dc3e08b2d4ce561e1cddd081483cd2f7c79816370140383edf6187ece1d339c6fd1dfb1837ae418870a3cd445ffbe34564fb9968e4d33d027d95de80b8ffc2545908d4357049fda98bcbbe8567e841f3766b46d41aad21af571956bdd2088a1a701dac9910f6484bfc058ea3794915a343fffac0f17f5e8378c67428e6cbbc3f7a69e146e18898bb8729be9450d1f6cfd062aca514e1b7a3d175086cadf5406c7616f6110f5d4e2cb0a388c97ae686af496a29616b407b31b09d332f5bb0aac4fc3a5fb46ba80b3d965730553c32204f61d54c382a3efdb1ebfe5a92eced4963a590c73347f22ca2a11ebf4035b8eea771c81369a4a06829548e27569a130bf32d18c9b7541120346aa65ddd7deccb6706415b70051e0a1fe490d75c5c21f7054ffb2d0b4b98dbbe36ccff142ca1bb08b354f0db22d981ba85947eb6555b7b883988cda5600f51791537e39448fcf9e617e4cae0e8b3c7abe5835b5384b8b514892e3f9b77679c875eb39662190fa5c3058d47e3462f889fd3119040422885eedc2fc6283a92e45a58f0dc291fde80202ff09c9d255b95cde2a4e26d21db6f0941536fb888251c955f25caa2f4af84317d186da414a316666d5a48406f4c6c41c8ded0fccc3165adbcf88b2644e20dfd1863ca7a1c29d3f45954ab82bbf151c36753a31a01464223b4c3af84e5518d53f26cb75256c09a83ef54bf187c4c41148b26b2517ea8068ec9fbec617fba984e802039d0242c0189ffc515b89c0c6cf206cc2002dad3d19e6ef007630fe5eb06760490cc28065774f2d2d97d3d0a95365eef6fd8d5747c630652ac3da58fd914a98ae912fb6c262f1956677f5a553280904b65e51080bc68d48c967d9fd303d9e0db9ba2c36213534b70e404d64cb7bfad6cb6e3d81516041052937e05e8c1765f30f90fb51c7636b3527ba2d694f24df5aaea12ee439b7c4a6bb166c36bdffb62899115dee6ed914a29b317c4797474aefdd31ea2f4578d39d7c228abb666ac68f1e141499d366f2b53011b56480a0d8dd199c8ac5eb9832d3ab14a91e3281e8a1a6742f56abdf12af2664f1715b01dd07d122c929cb64ee92a97a48bd811fc74beed7bce8f99a38fd16e0cd5d8eda3b8c92afec049af030bab47600794b7c6069fec05fb50d85e81eb4eb2d63066bded4fd13b1b5a3bf916b2c07d2848abdfd8feb99d043f5e405f1837a70d3c201c2e3084f694cd60692360f38781e00fc820c0bb302ce24430be6fb0bfc05b51a10f1778744f8c9864750cd4aeaa03061c76ca25959738e8a006bfd635c12e68f3993fac0ba14855928000864ea68f047edd0956f738c0d40ca27b038362832d9d468baa44866f1bf016632ffaf88d0ef232624111c3b98481260e0bb5802b10d5fb26e6f02bee561b316c0e66f97acfb3310263e7d50240c5787471422f4020808d78573a3ef8cc21b077da11878a09678bd9668aa9f185c78e634e90c87165402b60b1e30b83797bf6eee28966158b1d61e645cc81d650b853addc55c0273170dd37d072dd3f17807b857bc575c70004b8aee8e8aaf521a7f0f119f0b845a530a075cfbcc9922910eb9d2b3e6625dcf593cc1e862875262400050fd74e31e598483ff63ff5a41a0535ad282292aa88eb352d49d6a4ee591d9ef28756f19296f100018e5be8b8ec6b4a38638097e3f5f342a0e1f92b7c62e057a931df5986c51ef4d06215e2d447524132a6f0bb731904719ef804725c662deb4ea34f65442fb3f118f0156043c945924a2e6c667ec60140b215ffbea5be5d54d4900e3f67ca85f4d7db5d7fba2d8deb75e0249fefac68213d958e1273636505bda34e04ca97376bc8526d0a20981ee626e66898d67455bd85b5a14f86008410953034799245f714db96b6b52ff36f80a16e4682513b8f8a8a49b45c0ae3ab8080e21d722ca54a043f1a1097ea59c9be8e30acd94ba048e0a038225690272a8b8f9f4dadb26ce5682835cf4519d1e89c7488a69a3fda6f44bb93e16621a7bf60fe91a23bb887c623ad34243df5125a44c372582576ccd89bac57d8aabaef795227d1adcfacf5425c41394de1578928c704799ddb24512ea5f1840bc7b253a0b4345e818e12bbc6ac3bcf6d9047f211c74d2da40968580fa7915fade71e71198a67636eec834834c377985c33923f517d528881b63d457af8429433b03078e7cb84831039f07ce2a2895a708c1fd7bab18925353c300a1aa818950244011556233a5d15aa8eccc3bef176f73de02027642a66472e45cf69f10cdaec60636ea78722b3c4e178cb581e2d4171e1ece8c2c06f93ab47d0e8f83dfd21b3b0862876496f0a20458b45be4ea9a265666d22f5048165948c7bf8e38e9f49f45667d33623fa89f3e643ae7703f1e055a8c35128839e103124f681744b32cd8bc0e3c0656ea35a997a7f0510a6b84b4f8d4238a5edbf21fbb6771a70c6abfa0d70148f68f36551ce9ff38f52ebe36c4a1c9ea51c12d1732248fef739c7e33c9c15ab1d87deb86bc49215c824894b83f3bbec08c9e87beddf40fd625c0163ee912f1bd83faa6668d953a2aaab4eb8e6b26c74b8c6632a454a9b0413b273c9075922d6ccd2be155578a502db08a12cbe499bd483c1d59b313ae46450ba63792b40ec0d176f7ed5b1a586e180b1ec0a9916ec905041ef806a5bb800dbc5e0ea9eb7bfe4759e75db64d5536acb1677cb80f336416567b909a67960ce855b4d621e8b516221280825d114669b04cce5314d1043a265852b6a651f9d9461b1d35f53781fdcaa448e36cc7c0ffa40ad1847dfdb24410b655550a80030cb4176b690d6a072be773918f6df77c439b329258d64d818025dd4d6002b4d64890a65d9d7a3e6c0fcf1445a698f34d97af5253870d263b3764e6647ddade850d46b0d3c971863e55c4f9c79ec5808617840ac93e651e6ba7f1e9166a7211ac3bb06e0b6bd20286622b0189d4a10f22eee26d3043baec3321ebc1fa9aac82dc0e4a945c3fa4e75ee485810be4ba22dde0325c44b9811accbb714667d0d801d1b7152926f4f424652a73246a26cc07da7261e5843e213f3552e982546abd0dc06db92872c5f306bb32cd31e081ee01ed4bcf6401c0a7a72afeb3d1186d3a9e88631034c45b268497ee7bc2b19715e08d32768b84bf9f19ba66d813a1b8139e137c31a9c81d322c9b542332416988ddda1333c30e0691f14ab0643aa9e509d4b304fdcc382595241b1e2791500a8385c6ae82f85b56bcf2563e22a2f5656f0ed8a4b55dfc56fad170670dcdee6d89676037064f8cdde1cfa1ca4ed1a37f44fe372160edef045db711d9a845ff1762a872cb18b436ab209280919f8dc0f65cca4dd19997a1fb12e38d89eae1973c692612c3804ed0beab3109ea2cffd8b21c839f0400271dd6c27cb0a205494777f5b6c6f571c27829094c0fcc5618edef86c9e995c9296112d5d65142fd799a8b6a0fec6eab8b529e199b77097438db92dc99a52cbb30f77bda5aa91dbe227cf136e61de3cbdee4b0033b643a23e7af6a032de8b01db1d94a37eb2c2bb4fa06827b2dda53e2522a302d56f6ae20c08a7fc2264aa9200e2db8c41c4e7ab0ec66d6cc866d9511c3237c809ac63b137fa7375cc08754fedf726bb1f3b412299ff3dc6c7bb4c5f51c14fc78e2253f506b9dcb3cdb7d734e2a4f210b4dd880081499c609f656a52a14812fda86a7fd91a3b61827971ac3c99f90d66adb9da0207e10770f20b31ba8eefc94f016a7d9cbf0f62646ec7ab3cd3c617e40b670e74907e21069dde5b3fa048554a6067c6c69c203c0546238aed62d6f97f44604b66afe41b0134c240261398ffddb284f055ba1d42dd45ad7e3c68ca4577f3ac7141774ba4d865359d401bff8fa02b88f966ae658f915d3233a6793da1809f9ea91007841d566b45c57ddf40300aa562742192cdb7a289064e28cb3f4e75a6ef34c4a1ff2640af43cbd60a8bd820d18c08801a0c98f971404003687305df92e7a4d56578cde62a847cb6d51467a0ddecb3eaa3b1672fca70b5ae9ed839bd64f3fcc0d31f72e150a2ea3bb3a7980cdd93354ad0e1a9cefcf18404cf51184014d605cfb098bc6a655d66a8f2edc826d3aacb812c238c683474e05aeb9addc3bef3b7fd2102b967b7e9ed8f12e3d5c869051d6a510bf8ad970a00240669d9ae8d47a64a6f2905a615f6e02cfc3c0755582fa3fbe51dce40c310611f2072f1cf629dcceadf777b155dc9916a9309cc5d702d3cba56f788d5d37101c3b7b53a3a989825ebb93571a10996443a40ece6bc6897d33f242136ccad7a59aac3bee8a7da4f8ce022750b3ddf7c7c591ada7489939c3b1eac045bc2d10be53f0dfbadda0b84d95f3ff57e0a16bc64e9f9dd2a3e590dc7a887d80713ffdfa71b6ab422e191f21e6f8b135f86464dcc295c6803f8f3a9eac2d4b6b1824eaba4349a7a3b1f84be4edcc83c433c984d5b8bc5771c77ee84058cba0e6c1dec88de01c7f88e669761e634784695856867917d197334ab1658b6f1d884541cb3d1b52a435a7b77518f4e5629f77e6211e89ac185beb8120a5657357250da6347db1ff2d50d0cbff162e0c8b8634d00bc260ba83e4c1c70d29a40d52a57603ae68d30b51f627895df4fe69b2fd0a7d1eca4fcf66fdc52c6adb90552ea200c314ae0a38d5839b87798b85ad72eb2a8f5c4cb2ee4eda153fa524f69c27f47dfa30b3b7404d3a42e27764cc1194c7667536c15b021efef28051882a9d6d3a7854fc124fd22433adb38faaa60be644523190868972cbd843c685a153392b733c58ad0533d3f790de47481204af4599278e5b9f74474e4385d647d1ad3734905f7a32a9c06a9f0175c06f4e0cb7b90d69e1d76330872eada44c1f3ccfdf2bd656529ad16e0f7d29cec6247127e1d536154cf303d11400fcb4b076bbb5365eabc8685c6c6c21ed6477c367b2db20c6a7dacbbb1ac8b11d9eced819907d0e99de84b09a9387ee315db707ceb6e7587ddc08d37b0d1c1cb99d2a9383f71d0407356f68cfb9ef252a0afe2c2f32aeae264c9935a9151a32ddf4fda19ab3b85499a18b1d8a9b42a20b04edc997cd89355d04cd07b5380689535aa66862c15bbc5afc89ef0cbc630fd656acdedb2dd6c34e118622e1aa2f5ecba7e29d24015343497e54f1488e76a0160313ec4869fa0d1727e266924e3ca8a380310fb216f9ea1dcf1e5326f3f437c64402753402b7f67be6cbe5c418a5248384790e4c40c49318fa64f488e4dbe9ab7ce41d06b08f0769386835e606eb4ba47e941ac6b4539ba841b07bcad18e2d3d8e2b37e831e74f8492bbf85e6fb259c6aedfe0e422a4c01fa9354059111f099e2c109012acf85938f302844096d46326a17f998c9c30403c6d97b3dbc61bb05d7c5cb2e8de934473bc06dec224c5e1a6405ef218fe9976d0f4ed4cdc2c34876e33f36329e7f9cafd6af67e5cab1bfc3403be47cb275fe3c3516f07e8a9aba89ccf03afe51e46a99a374e864a35daa17e20fa68e33c285daa5c09c69881a58883018801a0fc5f65598010338fa852201b17822cb2dcb86da92c2ed13d082cb7808dda45e8088d3441518b78d933a1427189023d7c27dd9621940312cb999d12e49ab0906c3cdf93c782db09b24eac09ab422c66586a590cfcac763cbf39f244aaa4cf2601f8d99fc8a62d6b13ff2822ed68ddcab509d7eeb7a6d377f08c06d317240ce84e6ff027f6ef2d368f54eda117d7fb6b25fdd02f53722b47e5ca0428ec7cbda7f3e1f4064791b4c5504d5923bccfce6909338353634852a0b4aea43eed5912ca8540a65863c5b7eaad228b8d8b1e3217fe778bcf333c8f8a7387d0ec93163a2e1c3a97d6a14f3f95b92ec3089a0cc2673f7d29e87cde269e47368cdd66601966e4a667ad8ba4ae83e7cf05f7d2805ffc2aa11eb065791e3fdd6536032a27ececfc1f3e87f6386c622aa0fd1b5980407c63aee3a17b52b9cd7cc2d72a1f563d1e33dbba05f4896ee8d4a84cd3b7ea6f2ce3397202fe31aa4eaf2ccde2d7e83f4764bec71809733805e06227d4521561d20f23b17bd6d11dc799245d84b035d64491c2cd7fba4832c63d365344393d23056446f184aa51403aaea7b012c41dcc245a2a719f0036184f6a71075c6ac57d1c333391573cd76e85a3bf285f0ef8061ef293a5ae18d093b54a401499a0dd08f08e7567b1877e76a9d48ff1cd19fcd7104e23940e5ea8151a1af5ed530043b9433cf71120870d7e2071d34771a80a86a1e39e2058b953af94390512878e946c37a63206f37d461847561bb264a8baa1ad2dc32d2b88aa667d2f2ffae6c4dd30d8a18f5e8260c46bb3dbe08ca02d6e1df889cac992a9053cb8f1057f588167509a3a398f61f0a0ef47421605be80ad56272dc0920ad0dda0b331800da4118d8e95e7e0a1d5f77cc3bef48859f104e891beac88c67962ca8d9a76806090b85a6762aea5f87bbd45973adbe6146fd2978009c73653fe4773174d8878fe6c9f13b80359c1beb0573e32cb745bcfa361b7322929e69d8a3f0d551fc0ae414f26d999fc9c6aaa7fef72d9304bac0aa962362f839fdfcc115dcbfdd1812ca520ea4d69f2c824af531cd19e7844ba8190851c87140f5207a35a08466748defcc9be593e164e6a79df785f99cdaa39d80cc31c9991c028b13352a30ad02a89b4439ed9be47861c6f10bf85593cfce6d5712c940e319ec4e4a9b77885fc7c6083e0ed5ec1c10b42fa026d939649659ce049d88ac08797768d7618084c6dcab9c8e278dce230b22db289dd6cbac1643a970f6f75de6f70f888d2d43deabc07e1a52875bd2849965946a3d215f943a3c4529fd245b97e727c380f8310222b13499265f08de560380b309867c44eb2cba27b52393ffa3667275718d8eb636d61d53c7446f050914bea07a9ec97a511b8712ce5a7760a95380b63d253305f4b10d1adc1aa1eca8504ca581a00dcea33f030ea029310521b5984d345d14e972cf7166c8c488eea6ce4492f51210f0e0c318d67c004d46b5d64e4fe09aff7148705e2df5f4796c79cbcefa338b0613c36349ad7666e0542efda909e0966a82d5485e1c5a323e10e826361acfa3e501554070b0de8d6015f14d69ac462600b61bdfe140afa20ad6ddc01a49ca3ddd0ef5737adba2f6fda87549b5d1810fa82b61c17a6fab281816fd03aee94cf3f150ab863abb1db94d8af471f8b6aca6c7353664edbb7f113e0a4d4bb04ee790f60c975ce626d5d2074a0a52316219a07220ca506099b680bfdc2c72b91830608c1131dbf34e11b9efc9e47ff8f9e137ff1f0eb1ec8b7f3448119853e9225bd0e28ce562bc77ab684edc5ad65394ec689704f2a5a60fc7d8808fa20f86ebd57aa83c6e52d6f9229715e26a97c3334021e4c523e1659fde530e548b4b4feef32e878d5c09c52cb22453355c84dd0126956acf7f3aa11229178772bbafce6676026d21132971b44d31444f027104ab33c9a11900889aa24c05beb0b7a201b68572ce4731e3788c00bb49ef7749148ff741c9291d637fe9aa48e4007c9045b0cdaf40e315f1adada9fef2e972393a767b4c9aae052e893a88f8c76908964de9114ba260388bfc311fb188ab15750b2e11e49c02f0f71a791a3c34ee57c6e918c5db2f394dc147f53cb1868d08eb738192792b92d80f2fe4f4be15e8e4aa54d750c84d0a1886bfaefc98587afb7820ac575af560389eed159342aee5406a4aa0b9900f06a99d4c74aa3fc5d87ed087020bee7f76e85aa53d73ff31a0790d225849eaa683b30551d2075898ed5795210a78fe8b5bdc4a681c0eda635b1d0c9e66c7f263a15dc0f902da593d95caf935594aef9cd4d65ef8d490a451ed212a7ee8855c896dbc3eed3c98d7e8d4ad623522aaa8b011c1de159c294aa3e15ede54ed3762d952f102959d27cf7c3d00cd68961fd57ee26ef128e87a108daae174e8b1a0a2831b6171983818088b52753722cdb7c6b29946b456bb6550c76379d400820ced00b2d821468b66cea72ecd2c4e27ef235e5892578a91c1d7bdfec927da45f21ca4e682f0cd1c032349d75520c3a96548ec095fd16a458f8b1914ad4cd4918dfe77f79b30b8e9177ee63b4975ec2851ab412a60233710ca60254c8e9af5150bbc217565dc599dbd8b73118709a09bf07421a8862e01a5dd6452875931af630f1124a740f6e4e4a95858a57341d39a142f6438dd32f54dc9507573fa87374ce17cf7e0313e682777591dd56d6c3b89a71a55fc5ac96eff9c29c20bcc6906d8205993f36281364fe3773a46861fca8c2025fd5fbb89dcbdecb5b7b75c9897c49c691591eacc1658fe0d0a6da00dc3709e9830b6d88add12c98c942a36cc8739b160d87c8fa026f4ad20e6fd135ace4af14a30d2fd2469950bdc1ae0abca6da2045e4d47651f821e72b135c05a04df6667b0e62f4c26ccebb87d80cc61859895e0d1fee09b9d7d0a28c7614c20e862e94a50bd90461c16ac3d9f31a5c3d0665621b69aa9d42c89a135f9e9ed4e49b4f6145e14d77c2509213639c20bdeb4ff31308a0fbbb5a4218eec978d0b52c9f3b7baa04209361fc06985325c7b9a47c36eb5198078c0acb31d02d4c0ac3aba9e46d801c6cc699a777a00bb7d58f52cea9336645442a158ab50a0f98fb9cf0d89d40fb8844b5182261b7cf573738f03c775f984a5a9f7edb5f4409abf87208111e6cc05dc63f0d8bb76f659cf233ed554bcc3f965ecfe77446b9e0fbca074e0a8f1909572086ee00c631f6da68d57a72fc623d97f8f1a986322c23f5b2cd1d2ca3ebfa52d6a5d10b853771052f5fa72550d0a0e83b91210545c8fc9a431ce52d2ec27ee6ce26362efd85daf728392459ddca4bc60380dac202fd3829701c66d275d87b28a40cc6e0e118b4478152ed8e80cb854634050400c99869be68692c72d4d10cebf2f5e607dc66426b1a50d7c8428f75e4a17119b91e1a6bebdf0114765b845a566b6ce1b14b95a523578f7f3723f284256a40f38ff092a83f20ffab57ec8e3c8d2e7730f6848930aa94dc3fe1ebd737a525879d800a7985e14144166ac01621f03ab7d985b69afdc085ab2f7b654fb99511c6c789b587867bda8d20ddef5acd8f64ca195bb0274e3bfaa728ba4a8cf692c8d73a28f4883a9982681334070707ccc0b4658e02f5c7d2f0b748062cad9d85b3ca2387148f972543abad67b4cf2ccaae781c63ab3fc0a7d51ca349fbc9005305b6e5a683285fe6a421bdcf15c9c613af70aa9851756f377379579f814540fc97929d6dd811b45b06d314d244ee9c54bcfe22022da78d400a8fb629892c73a95fbd9004e387dbc030087303373f2cf9301faec5c719b9d04bc98ab4dcde54e1af640301c42b85f7ab826730677115ed2d67e42284392f7c37cef94d616b2835ec71ef17d0482e5590484c1ec80dfee89167f4beebdd037472858994de42d5c61524954871ea2c874a52969beb3ada6966e4074aaff56f3b1bc6e6d020c5e33b75c0db38e7113969fcd9bddb4cee3c7fa027f5d6978fd5bc303131c68b59da71e0666fc3954cff749c011270db0299894d049e57f01f8f8cfbffd6a30f4d167c4618f882de048ee28081c506b235bd6e6cf3e7a1d57b68f021a1fb5a0701a6caa8fddf3c986251844965e7199d0253cb077d60ffc11df2ed3757ff86af327a24eb271d430eb2330bd8c76868a2a6d3d237c3919eb436264520fa53ef628553f19ea5518004bf91f7965339810f1cfc258dd118ac940200c1571a7f10683a68ebf6501904810206ff50e0d08bb7fd84ff2c8ca94a9e5be69aafa205627c37fb285030416f613916a1e2b6f89ec2ea5bf9c88561fe125d74c2f04715b2beebc1d9e096de1d40daa7526c5af8fce9702dfc9940f7eaaee13da6e642b4b5239a6bdf7cb1b3414e9aa57153f6ec0f4f1d3fac673cb93db5e9b22bd80d0a70301d6f17c6452b68800b0afcfcf136de87d77d11ea1c3cb9ac30460a7578c797951aaec96a8c9510716d905e07dbbd345d3bf34fa04573c40b7105076fbde515984a1221bd3e016bdf21423ade0304ef4942b13a87c1a639756410a7d3eb17d8a8a1677f1a988be6b42a7718e381859cd61a7843cbb696052f72ba7c03a9487d6e29c1f222e1ee29cfd8b106388bd7c7970c039ab1b3a68df38402f19bd883fa2cc539c9091501ab9da589b6260eb6db0348cb87f5ad2d8bbca1859456687fd781642f68ea3469e8f05aa05830492ecc85c083ed838a166d608037c3e280bf2a0ef72f7cffcc848934c32fb8c7fabb3074cf9678d4317f718da4dc948d95cba6f651615541c4d5189f79b108dda212e057bcd2607049b933b7f58bb55b1b080cf53bdb0e377a053f39fa652c188618b752f3bc5d9b867da2940a8f7f8ef5c54fbc366d6552a6689621ec4f6ebd9e980bd2fa1eda29b2cc47ee8e18201da6ec68eb81229a9f5d889b5a57012f094399bfc386155c4f13c9def5cf105b526e10d001f0acaa0be83a3043b31008c7604661bff647bd0ead20849f5c803dacf752fcde80d0b31e09cb016bb2f605e44110776ae0c96180e4d6d026719fb89837cbd062f3c9e6f9267af7901a28de1a73aef47227f1a544c150cfb3aa8c5c9b7a487fc2e208274446d99e603b1e8bbe918e5d52b6c1fd681c68c9db659f78c276dc3af7cb11cda86195dfc022f3e5ddff1d52c5a306143d37851bdcaf636addfe219ddecc0a42fd3b6b162530dd1293216b613bb1b595338b2e7258c3f9edf5fb26e38e8890e4cbf1d2a0a60eca981e9fe936a7dacf908e03f8f8ce3e2973f1c49ad231a249ab6999dff63ad613ea3b4034799f74ab02a27f9fd6613b9cba6586736dd63b440fadb02426b35f5b321d323055f38d5727b2ae7c0d1a0cdc18f1909d83cef8e690896e41c5e635b3c9586dcf9d9834e828abd834999bf0cd6e0902ce5f5657e3e8e29975a2fe70cf1b5f94e3d12108dc4b350dd3c8c5e73e6498859710ff03fe75dc97c4b8b4ffb43e70c77035c154bf0609e95672da8020f510c9fcdc53038953e87c0b91f952d3b3fb7416f3ad303b1ba2ac93b45484981791e3f4d76e43d1b8d417f07a181dde869afbc9a9dd097f4da192d5bca2c8bae5a92b656f12035bee17a8535c96150d359e6b104201f10ef520daf16f1fd2f40a4da949f15d053b295d9d509abf4c9bfbc233c8beeaece976f488a76dce94566884ace2539a050ef350b00e2b3d836d4cff1f2ee0b02fc25b7b6061272017035e97f4455e7963e6a8cfcfe88770da026697f3c4a944cdd6d63ac15266349414a7d0be169ca0db70aec42238ed3003221e5c33b932718b55875eb5990dfa05b81cf833e0eded0b515a5c8369286f51713d8bc75f40e1b11811aa384932d195f683b22ec0fb5a6a8397c451c6641f36078c30d6d7c550259d1f7b5d1817d84614be8e16a10e45492b705173f42d93c1e5931756d7f25e03759481f86f76fb484bf28e80aa7828338993ebe3360a41106c581a37389a699567d36230e474bd0c843b884dd3904e3d291dd8338d55461b1bfe955aefbe200ef1cd306713a69134e65201b1c82686b427932599035c52bac2296501af8f4d123adf74dbeadf0a733c803bf50f25655c65413abaa410b16f18d1244e52df50afcec3a00a4b1d1819c5e438f8c3d909409083e5fd4121a52f8f2b8c5dc70a1d54d8a3f590e417a016dded1e2e894b5a477bbc3e17399d6202adf514116561b0eca372753f4424d6c669bdce7afb98f34d1c602511e41cff5a8ce1a3269e31b406ea105439213d2a39662086f114cb2d3b80ca79b85e50692e414d18be30d304ee236e3cb4cac5b91a4ac3181cdd7d427fae425848d16a514bd82824dd8e01e7f7b6841451cd0721de90e3b4642fadb0e87b2cdaa738fe5b3dc7b618623164e55ed75530b5860930f99fe9dcffa97b8a122bc124d38de6ce941d362ce71093380512eb77abb16e3cc99ae91201ebb18886308aa1291a7248e914369824dbe7935e2469099f6c9b8dfbf946d9b62ad56f9442372552d65f2897dcee2d5293c6c80ff50477871e444ea8a1f3b8d12886690d109cb492ab06b4c396f8a91229b3a08c05be477a44256511d36d68684d7d2af91ab0c20696d72183b299171b62d00be322a9e4004fdbd9a698603460f86abbdb2de81df7ca26a3b6b30f8eddbdf3f976e78c5b92080adca4ac5d6a3485a06caf356d9c561858f20c21494afc4069b77203babe4d0cb9745d8fd6713de4f4a63610ac1334829a4d9d04c7625f7784aa9df9cd7782828707d0c052f7ed408b96d52f5728bd747490de467a9a0b52d52c56b4f8229e5dabec1db18ceba7576991b0e88e0b9cfcdfc2aa871cd55954f2a535fc0f30970da25bb2d7e6026867c9cc0db9099e3f8f4480dcc09938ba95dbfacc8f04a948ae3cd34f879a41fb1f9bf170babe3c1b1fba54217c7b89ed466cf1d1b0294b165d27826ce3756cdea4f25682b94babb7c68a64c2815d0c62b1c39b7c5c1f162f73a1474cecdc623349106d2ce5a6ac9886a8babd339e12e86d3c5b5381e394c1abaa9c65cba6468b3f873d0db4e56483ca13fee3e0bfd8e50c21af37970391b482ead4594a07e353ea7070baf7114cd7d7ce020ba298200b1fb89ffb253a9582741ba8872c78a26a02165088afdefeb8a3feb6d82e6770f536832428939142f7391bc703ab9f9eca45b243e7c47562a31af5b89bdb463aaf30b71ebb18540546902337ee4ebd0c9394fd9c1e7099025250a5060e8da243f05b23331dc8b991a31ae43fa0f3eaf76df09a248c0860a001c606bd411c31be270d0c80c7da09bd598018c22e544325e32ada9a2d3ccbc35dc1aa4b32c46581f127d1d9c7e142ccc98fc8249a403bdb8792b59b07622f61fc5c47d64c870aab0c75b012d20793bb13b60fc20dab84a10f9a13d2aa594d8d275564bdbd79a5901be5a0dc5a78c8edf3ebc4e716a78bf347b86d89cca78011fb6f3e5e82d3d4e6c301f1498d843030b696c3774a28f42b15c5dfb91c5f86d38ae82c0a5ddd8540efb6c2f18d08c5efa5c170e76782fe5908df90f3dbcb8145131d8f421c3c907eb3f4f14b7ffb152475309be1379a609d719bb5593954dcb77a521e969720f657b8a6dc0a51eb5959484343f435f2a872336734cc98cf57de632e14997fa70222b191800258044c604d2d3fef4085a61216661aecb386be1cb892a99edf58fe8473485984a18c1f656202fe1fd6d49f830e341e39fedd270e16f69971c193623224ab390bfda6dafa6a1f8ee7feff10e9ba5ecb57f5e86de6e0ea7186d3be467dba5784c1551ec21f5f9ef84c90b0b75ac92aad8c43dc6377a83f6c26ead4f295638f6ea74aa775d4568deaeaa9a8ecf6e320cf1be9dd351dcf93e0bdb31fe8695e1a8db2acdbba0d7355e537050b5ba20eca64a107413064948f431282f97b7c435588ea9fe1d457e78d4b4beebdc9b2c8e909871fca161d2ef6585f6a012e4f42ec0a7ae62593fab6cbef9aa918291f21ab283f98912c20dec3023e2d949935b9c27d529a30fe61189eed7108f32ffb35f359b15035919ee27d35f06a0eb0667feb2353a4553c0635839f02d07150ccd3c1644119e2f7634dfdbc122c41854adbc056f1a074f60eea10e87b2e1cb3296b21f3380f515c9c10b1d09034af2380f93e3bdc7784a918595a477954d914e2fe111c3e695fef5d9591481065474d3a2156a223b2e288d3222476c0474677520b7ed4ab362e9f7088a3526790944c1d008878c3f1d471162a3967fc1a3921bc5df2d6dbc01c74ebffc83a657481477155267e296e75a89b8aae7ea627e02a2a67a6acbe235baa5a495a2010cea9de56b47fa541756be14ff02d1f78791ba35e3797393847278cf00dd0a2434a1d9aadc82e106e7d0b8af4052db538d760abe97a328b648d025f6665148471be668468dc5a0c786fd1494a78900071bf25acc49166ccf1b2cf0785ec734504ab7ed10064cecfc2021c1dc65d92c09d1dfa1f6551a76d703e2e5d57aad1fa1107ab2f09e811710a3d598333a4a0a8d981a5a6b6d613629f653c50bdeb98b18836f2ff05950d664e8549f8c9a6d4b01e4b723883b20bb9dc13736900613626c41e628cfca0f58b3a6eb71688fcc8ad8eeafd0fc822016ab036865e09c4db9b4fbb6a723bdaff3a0276360c42716d7ec4c0fac3c148e8c86092b4989335bd641da0032a44ad148dabf6b976b2978e73f25eb9fe9d38645d36818b1cac9edfee75504f772d1d47aa2170b3871e3232af09baa52c2461409585c3bf0675844a0b742c060c9434291079fe4457fb6425ac01e6c13d5b5bc9a88e7723a502dde4a058ea19c9feef5b6a6c044cb04cab7393b74838a0d8a4b8f88345d14ccd10b09202fee5af43e62311010ca016f92d1f2882eadd337febbdf67057be6213f42cbb671dcd20c7062dc69379faf41100401a1bab7e8ff294727aba11ddc370b96fba04ae984cb90b1400b669b40950a793859109969e3103227eef506c0fb8b3fda28d7d4d4aeb112934b0d0cbc224fe1b712dc3ccf354085f5d431995b20f360e0d6df10ad4a28345daaf0818ec6a2bdbbca1711c6da79975d91525b94926255a6215346f6786133be003a7b60fa8482edad4338b6ab9fba04d21d1f27c72852b8193bfcdc304d5245e50f46d3c9ff2f3f1d1213f4e3244c9f8179dbd93a15b45bdde26056bdbbd05dcb86066aa42e9f67265d5d7d6f3960062a1b87163b54e9a77a15297cc2903253cf61a7b1eae8f04519b660b05961fca01fabe92afb8c8bf95f71cb1aa8a055ac7fd160fdb5e81f5d96c5311df1c0d8b124335d5cb081cf29734d04a431a6b54df0c45156326dbe4465db2931e87abd66306851a96a99210e18b0a0406086c5d836e4050a906620f5cd0872e819e0f03516f971a2b6e5d0e78f82a16b6c6ca7f831c3f14280ca3d9d869aaf7b5a4c99b8afa2d26816188a16b9188981280193204394d0cebd21c7d8de6a51ea877c26ab59cc4770bffa72fe50bec1fea0f6435e41048a786f52ac68b1052dcd65f7173bd9bee0c8e79607868b1244efe48dbb397806bb460570c40d78bc664694aae7a002623988e530fddcf6680de9363b013c4100a5e10b364a785b1e816fbdd61a8fec2f026474a3f435d36c61960db16cfaac929d0578a21c09abebad808034d1313b291e0d1941fdee5f0b99b65f227924e2ed9ea94cd3a99367409000977989fb55f0db11517d7fa3dda4854a0301cbf1958282e0b1c20154a19477a97c6dc9e4f2a225fadbd8265eb9be076d11ddfe1660b9b00990f44a55755b8c4f36e65d2da0b1b42d8be3f34678d81518bcb4a7be6b16148a1978ab68c85940089e2e6a22252a3ce5ec359cc45d63b6611ffac733cfbcf155564b5c83730c2af121e263e85c1f920834966142095df6126490e881d9bac5a8881aea4b15d5cd48e9c2a72c327408a53f8464adcb37a3f9d731c89c7472481b0913df18733253116e88e0917e5b5a97a2b5d9cc0cc3a105243d90d247f594e857d75564e5bb9fd145f845daa16235be3298c01a23f7db175d6eee0c6748ece9fd921236b8cf81e4bfba21b2b137bddb288fcf8ce838a62bc4ffd9a6451a60827692ba5d679f27ede83d01b3b2162760e721f117d3af6e34e3c74c1abd1f11c24a13b30b19bc6171a3900a2135f3d0bfb165ef087119172b691174efba4a5d21d3f589c189e7052e9367ad378e5beff4208b0460ac87e038b822fa9c89e23dc114cb82ea418f87bd89d494b70d5e36b329ccadc92e9e4270299f51980f0147b5290e8fd07343e6f1bbba0a7b270ff8d05d652f07c940e1e55448c269b00a38ed056018df231fbc567c18e119df5b8a07ebf2c7287fa7120133c075fb5b0ae2872854cc5c0c2c44657e862c3b3a8a9ea7e2943ebd361da9f8f92a864d0dc212682342ac5ca6d7f955e5c1bf9c78b43a2ab116b947d229c1d50dc25fdc8e59d075b9ebd6beb3c965e76cfb0c9028e8235e285be8aa49f821b58198b7562d4068ce70051b9b28d1240921b03f28d764bfe3880d8eec6f9b32171a2c4d272474f573424d105f0ad46c00d88a230f41312ec4f4a8e64dc8a42db17bef404b57f56faf4689b8ca58f535834c4bc1972a666aa95606c4408e1283d8bb1b7b6a0546cc87646fbd2935e59e8e6c3e614dbefc0fec3f6579471ce486454197934cad62ff870246bb66b631e5bf37c2162a390acfc366526ff94e7a6284c6f72ad49a749fb8511e24dc9b8bc774e62a277b9804315196c202f26b470980df52d3d37299d82c640b96660c6eb07e412c6f78b40bd67fcc5c6306f52c1d4072918024599ae49526411e6a2f9d8fbc08ed623c53d82e572b318bbb4130846b812c050bb68a915eddfd4c77a287c468ce230534009a5dd1670bbe046387d47f7213032c6fb5fff91de601cff0115292cc9bbc59979e87f77ba843ac6abffd46190f1947e5bda454b65a3fb1739830febe37082c1e22e34b617d0d635cc7934158680c33f0023c81270de86b53f263779bfdd1e05779b306a11c7eaf6a4194755badb24cf3d61a0807b63b7f0ee86b0f7d08440c4f6478e77a7fb48852c3cfbd455a5a05eb2246c7ca994557cb0aa9cb73d8c53d87c7b73cd80820a3d335bf03124de8c55dec07fbff09530accc511925f8cda5cf82823aa72c3c0f4931dc91e94ce2e2ecc2b5593366011be134b04dc203ab2b3c04d0a627ab0b1938474fc181e60720e37f07a80c4a7983eadf0bce1fed81dbc9b618e7ab1c5a06aefc837c8801828734cc166a8b1558b2407f0667bc106383bea8f8880c43759af212d2888bfc74f59c001bff0d30b2e2f6c3e9d39ad56411156fa2f11533aab08f30ed770b59ff96b5837c0ac0643329ed5e80cef327ab65fef0b074acc9c0b9fd5b7f81f9029cae04d257039b9749241acbfc76b2005d46376db85cae070e8a64e6226a329c939b351804e94c9929abb1d32c6645760cc7aad6cd19f83f6f61b4f2ca0ead4be06399039d928b12dba300b16e82ba114f4d772750eecfd60db8488595772a873e929108054208de7289f5a39d9bbec1a01ef592a758da3fb1d8f7882844a668b24d5a40c1e96a74abd849bcbfa8af1486cae883484bbfe0c2f57819e618c1192c8f0967af7e46d1ab34186b5de4636ee9abb8c8fc602b41be94484e064211aacf2168d24a3ebd8396590e1a8dd552a022b976121314544e03150710e115e6dc4e1de49810b4371b508444702e4c01d88dafb5c0bf0252836f2da3652721e1e50e2471840826177b060c8c7d0c2ad259ce88a0c7f4a810d3fee19b25337fc6b82a010a6beb611e3da941881781059591069f1b07bcabcbe6afa841db2e4bffa0d14fd1ffd82c044f546cdcb7685dc6dad3ea637551c165b30a0185000b5e503b7f077264d54881dd1dc39e48ed74e5835398d02928f12ceba76b3a860a18a3baeb24a80acd0aac150cf53d8125870bb578d4885d3e13b281f3703974efe62b0e4141d2a64b28d8629d5d26ec3fbd7499b8ce18480213ca825fce935c6ad3dc387ea5b5d41cd240ae856b352841a1de3a7649666a62d6642b7f276b3443ed3dee2205033f5e5558256c0db0c0ae761c41a5c91c77420f519f2f7305948ace7f8a407bc1d6c7f0e1f0e673f6dbc88417c1b071755c5e92179cbd0d9b995f85e0f2126a1fd51a33a5a3f4e8f0f4117e2d81d96d54d0f87a7dd385a49bcb3ba68c91cc0759904cab4de8696e83b2d7c258e445b4e0d1c145e524a05e0b2e975ac202f51efc0e583df5566b3684d703e018fc586bf074d9f98852b1483239f1b021f2819f590b5c98c0566311c11d7fac0a0ec8790a206d0c419a2e243b01b3402069087d02068f203b030fb9382a2f209372487ef5facc623dbc756baf28eaced1e1acbdb4c4896de3282c9b5a526ba77ebd032f7f2ad463c11156cd1a7401389691b5195732d36895472d10a5ba09de88280128e9fab09d9e548a40ee6c1c605af45e4ef53440720fc6467e38c52c00ce100af7cc18d770481c20908f3ec99752f17295373c2cd4858dc7b9521045d6fcea5b33155216b21489263c564f0b863a22767731912630c41c24b442cba6cebed74ff442c1ee8940c1c6ebf0f01a8d7cf167b7edd8692e1eaa5b36770392a10768d616e92890a7ae9eff125d38c6d3adf5603a9593581e7b3428b8ff2c5c22b85eec3f679be862e81d408bd9f0acc9fad1698c0a661a41d93ae864eea0fa705cd69bda76b228e93216d1082671b151d0592cf4ef69e9e839e7ff1dc4d89e59a9c48e8d338df8e0e841976f9a15f65875c255b38b6e78427d2c47cc79015a02194609b5b6b75ac488c858baeb702b809f05a06b8f76e928c974ccf51dbd87f481c693ad7d8124f01395e34572b1461a36f98cda7c2bc4bbb5c9c0bc9b707687da1cf78ac7da987ab481981e2cdc4eee5846aa8be8bb6f9b916b0112eeb787a8af922f76f8ed75d6e59af34feae274dde544f34ec3868eae5394a3b628d712362cb3d60afa4e88df1f0cd6a0c1070fbd608c6c8d4081cb20c4ea0411409eba7192dabe92156d11aa6d075be895d903dbf8ad9ad49b4049df2651bca29f663d8b9dcb5921e43b9aa6f6ce0667edcd5a5f2462979cc69359eba96c77570b83bd72f15a6c128a87a3005e8e19d9cc8c11aea4d918f59e13f4ab4002ab42ccce8c886b8d03cbe89969b14e635e3b5e29bee5f3bebff29423940570cd614c90ad8b86ac549db6eec9ea847ef5c9acfc47b8b96dd7167b2ed32f1063a6f88b2176e0431c0ed03053e66871f1ac249241d775a773a9efb797a8613f08fd9cd7cf0d155a68bd93713e13c19c1506f709b59d767f71e7b57e86b8f71928b6280bf081f1e2354bb08ab9c9ef7a253a8be445fefa93de6bbe15a07602ffbc154d14a9db2612f34f0bfc43e984feb3f53f3f1b7c0795901534474d3026518a87080903b349e5ed1a9396497712f6707ebe5f91e19a0fb3e018a35caf0c8e393440ec25f7bb4dcbe574231db6931cdbe844d6c8db43401199b897109c5413cac9f7ca12ebbb1d6a46a99ace28227156c5f7e83450f5971fd2be67c31be118f2776446c25814a19f9cfd548b2f151a233944a12104ca5d34fd33ae8712118517468c0051f6a1f4df4636a8b61118d0496e3f1c481dbc553438c7f56e968e6046401ae64f07e3cbc56aa2b229ce4b6b7118612da82417d87644083d9717684f36b77039b2efba3f009ee64232b4556c9bb5e760276e2c2dd4b3fad1baff9330cf00f8844bf475254c99cc39036a7d367e5b3054ba4d0705e3bc87e7179dc061860cf39dab28b0fa414732f71956e157e9731fc15ec40053a6bd228a2b2154271a00080143c2193ffa96876e1e2dbf890e5577e3f7a3b169da23951b476add84961a09f9dd9becbda54c294919a60762074c080f9984876c1ff2eb9f657ac839345fe321e704e06d08c07e3401b871514f5321d790603f9c8bfa51855c63ede7e3a2be5678e5a2dec7869db19f56c3b652f65bb1acca7ebf42d1a78142d90dc49bbd4c667fb63f89feb4fd097e290bc4f7c8764f5ffad377fa0c70a8aa7aaf7e295cefb31ac47bd46ff58b3fb64f3dacafe9f3be844a12743fed3d7b84e6be768ad7647a588bbe54bf244eaef6b47e4982aef6a4faa570b58fb1e945eb2c94d1c3ceb240a333650391bb20a8f8845df1474fd0784591888fdd0d032ed41d856229704d7c9a0b639f9116a865680bbf3e884514827788961e06c497ded40687d20bb34c31c1fda88a859884d36eae789ee7fcaa8077e3c7aead0e1a3b3e3f64cb82a7338587c418638ca30a489cdbee10a83b2808892390e88e4131c80a8eb403ceee5793347e41ffd801e19934dbc717f98f0d4d6621d7cc971e83d8e5ee1fe38f3c22e1993737fdb396b0fde7ac5104f1c83ffe28babfe497d2e5779531e8c62f17c61d0fbc31c8bd23f4ea7de34b9cf7123e9a95a0d1b8d815a5fce9b2bf41a7b46e6fb02b3ecd6c91114e2cf1f9853166496290bd4076e7c7c2f50fba5fe423620e1e4622e688dfaf2506dd2497638510c2675716bb8a1166fcbc287f9cc2418e08bfbe7889e49c50407e53a94ac427f51fec9242e462273f2a89513ac7fb947c2e8ec2ac10e58bd7f45149a4d23d92ee3f7a47dd7fab3b1a3d9413ef4869913c0da87a563deb39558d4a5815090c83845facade361591d1409bfe295b2c2d8c52f537bb427e8fc0f0ac54e66402ea5659db0bddc1e5e0870bfb23b56c83e65e17b32e6403ff848f8857a11144151dc8192b287349f46e5768f7ce0bf3fb4d4d3b2fbe3df962ba5ee964626fc12d9516a84eabc159420f94ebedb0e026524352a6117c71564fd46a847b202bf94f00bc2aeaaeaca2fea352aa8e83f4ac4a74455b8d0bd02f9d580fff86b3f6bece0537ea19eff6451557bcf9f0581f881ece3431d589b68f526d508040c43630bacfef95c0afcda80fbf04bd41d8fc8816c3e2768c0ef8f5b2d88f247ee45613b3d30caf04bd401e217c3a123b09d14d8c56e7dd8c55d5e4c1ac62cf45128b4621e25413f180649e7d02941d74b0ef7a31a95cc372f071ca4e1873654e6c22c2b30e37edf01081fd6108b5f047ae75020469f142a03febe912f2ab0e27e364dbc064e24e2769afad2c6ff440fedb3cb25128966a6d977c1ed3ff8a2e7a0084217c759977d0865f5eaaaf5ec82b20c0ee6a070a5f9282234ba817e3066241261971158c48d1029c236b2fdbcadedef58115c6eec7bb79fcb06ca20b48ff5f371e366802b6baefcaf5ef99fcc95d2af9457de6f9385cdfef13ecb977245bb519d417cf8880fb5110b3109bb8fa069dafe8deff2eb0ceb8bf6bba6ab3ebb223f0dbb624673a1f5600d7cb6f1bf7e8f341d04fa7dbbc280cf4373bfbf1ce1d35c18af7ee085976ce25368df0a073b1e0c6c8f81d163400461dda91740a2c4abe847226b02c4c17f610e7e8eefa808bbf87d075ae202e37cb350b487316741591a93fbc530b9237669444636deb9f5f670b39fa460e87c186f160671307caa44c91dd501281189ea6773453faa95dead7e43602d7fab2c9f25bf108cf96d70d81567675e3848d30f7598d556d3e14abb2642a11d3e5c37b827e301fd9e7614a2f32ffcf8ad5671f63bbb1848ded61a0adacfd1db6aece2629d23d2819452cac3ea619c8571fe95ea371d55853a31a89385b97155bd89aa0bbfe8f3735cf08bf42cf2418b08b4e47059ebe1b286c3e5cf8c10bb4388afcc0cc8a3f4da0d5a0c433350192e7771e1720b3ffa9a9ebf0c7589a55c728a51ec5978b23176fda6a69452ce9879e8f35ba294d2d7d8451b0c7f87e17725f3f9e95366c8330b63b2255a3bd65e3a6e25935516dd68a2c1c5503c1222c2f83e9d137522112f638c12be4f0af123137ee544120c159112e6c6381445845f6e841548165f60121a30e6f13bfab0d5d805bbc0a7d25ab8196eacf945222ebfdcae484d4a8c512ecb4b23660985572ebcfc914a3c837bd1fe870d6192182580a5074bf8f3472b5c1163b476e58a48881f382bf4e386c6a8c259a15f3674bf5310cf1855e4e90bee48d65950d313ad7ed9d0d56cfecbb47047e91a02fce74d6efce73cd0fcd73112feeb2f03f89fb1b91f5f1bb1f5d17eadcaba3478d4aa3216764dabae6e6bd4aa295110ad8aca46adea5d4e1bc1eaccd75ac2db9a806fd5d325409df280a803bbe646e5e14e6929a09b32d3d4a84342cd9e6454683c9749e17919f63a7fef33ecf93952c773ad0e0abb355ed8c1743a98bcfc1c1376261fc78474590f79f8e587acf6012b0ae43104e4719f3f1302f6d079fe8c087e99d097df840aa14e8530c7cdc18d0f1302be607cf961558c1ba3401eb1c36454b2273415ea9050075015505bad87fdcc73311dcf8cd5d17a18cfd478bfc60b1bb5bc990a6b5528fe0af0126a269400f8446b55932aeb920d654fb2281db36a303dd45d6c322d37cac8f8e0d18363d2a3f2e0f133efe3b952c7e3c3eaa03c783c8c7d90ba1e787994d1834716f4a5bd8c5ab5741190b36347cdc9f99947c073a68e07015607cdc979182380e6ecc8b1826b52cf6068a2d05694d1c8c308ddf8c2d1815375e8f8997f3d77ea785e5607d5a1e361fc2ae9d081d3aa2430613825970f60801b3006a837373ff30778ceeb780e6075d09b9b87f1014c37341fd66b64acdfdeedc6da4c5f7aae544d3572a4d18b764fea7e6c3f7ad2e8b751d6b284da4c5f626d9f6da612ca7ed956dab2de7eebad1ad99af49244bf54e577764baff12b7ee947fc9af9d2537eb5bef412f6b08939fa4ba577c8037e69f52afa25bbaaf3d3ee47535fb2df919b7aae54f23ccf54f23c53a9f59e6aa5be65fa61b2a514eb53d3965eb52ac54b6d620fd3b7ea557a53953087ea5b2ad5c7abfa1af6e33b3f764056df7a884279aa47adbef52d0bd9b552558738545fea8440681de250fdb40e71b02c6497ca963c6a4ba52a1f9eb05d7a4a99bef45ec9cb29bd4ceaf4f461e9f490fec8279148be7a53fd5cd7f4a5faf9dc5209f5d3847a1aad6b92a95eadde353d8a86ccab4cf3694c934ce5ead7baa54f55c82e94fd686e09fee988b72a7d773fe22dd90dc44bbf3ab53ff24924d277de73dc0941bd497642522921a93f59efb53759d47b0fe3542a954a310a850a92fad3a3aaca6a3ca5520da2faa1d21e452be9bdd3e9b952addca9b27ea8fef4a53fd96bfa24175ed89d2c2b88ea4f0f44f5492e8c83cc94fd92dc94a96aec327da96aec2a5dd609f3e953d34f5b1292fa91b20e7194fe641de2303daae4696fb2df11ef96be04635a23a94a5945bff95ced89f02be3d1c842e11e762c78a82bb2f5619ccd0adbb9424759683fa4694d1ac007342ecc22c5062dd287345f5472f9b5f9dd6de1cfc7e5702ee7dc4dccf1dc437e69efddda37914c347ab8b55831ce711c10fb0cc7b97fff1a373373137bf86bd6864663dc3577daf64bb242ffb4893dbe0fdc8edf4fba7e7d2327e36b2d1f8839fbc3d5b8893d3ea0263d5fd277fddac9959ad6dd764e4efe704ffa8e927bd257ada3edfabd75cbf2973f3d954cdb2f486bafd9a6110303b5f1f2bb0e88f66d7ffa493fd2ec4dcc316554f56dd8e73a20f17f346be39f086722addad1c77e1b93e3ba725dfd3ac926e688bfbdacfdb3ca9fa9ddd7a8f3611d37c92d6b7a1a16b6b2dfcaa4b21fa528eb711f4d27d835a3ae11653623c58c23c51b48218594da0f487e9a25d99ffef91a27a1fda2fc706ed43e760de0ec4dcc119f64bf18e713e11e3669c5d99bd8437b292f47fa98ff70eeec8070ff43b29fec848c2ee92949fb18fbe1dc91bd893d3891bd99736e35fb3870fb3f0ff46dbf59104e4e163a0949aea680158e9aa385ec4a72b5faf9d544f5d3be7f7692ab01f19df626e6687813479e448b2c0507693e5672a3c6af5945cf357bd1188b5e62f149148ab1cfe64acc39d1152afaec230071c4e74439b61aa3c41b381fcdf69ae8372e72b09bb1df0a77e651d52dac85f4ad0f6314ea6766faced41a0fbb1914eb6d789ee76536588ffa9bd883857ad809e16e669965b3eaeeceaaf5bf2477e661ec33d56451b5468dcfdea6468d6f27fccabec6cb8ea786d541fbcae5e2a846cd666a1784bb3731078aeb11bcf2f9b88e73dd3e0af53ead4f9dfe26f640cda0503731072a3ee99c188bb1df6ac68645a1deeb94519c887ec240340f77fadbc41ef0ba6d27ec9a32ffb593fb01e03d12deff93799f3f7a08735c1f80ff68eca7fa548d6f7d8c758ecbfa04c05a211b33f33ed656cbb21fdc72dd7e40727b4d7bff28d436ecb69ddec6bf154ad51818a8ca02c99bb2613f9c568d8181d6b0407c53ff0160b39fc70ec8cff67e53f64765bf784f9fda7ee63f2079553f633f9c3b49b0407cb76ffd276381f8aabe653f9777fe4dec71b23faa4fbdf7dc9d90b2373187672d105f96fd925cef4fafb23fdbcbdb9d1079377b134ff66b27d7ed4dcce1a6ace33179deab6abc51c9ac32af0222f3b1cef16159b7dfeaaadeab9b12adc5b0a34fe738d7cc8fadd4e9bd1f323f51357b95f669f7a3f73b427345afddc41ef066df4eb69f757b55fd925cd5b7ea97c26d3de7ddf98df895fa1feff99e7ed6ec4fd3a25ef570ce39e79c8f4a7d0fbb7c7b51bc3e7dfaf4e9ce929949f936e76b2258ab6a147dab7edb6ba21ff36954a0b95df402ef8b6aaf71dff1709f1980b25aa2dfb69799df9acf1ab57ebe7f36f3367eb35f8d771b63ec6afdb4f10bcdf577fbe33deabd9f7e7af78464af7aef67fd68eedce636b7b9cd2d5359effde7f6a9fa79affd02665ee555076c3f3fc6aba9540a42dcb24eefaffaf9a8ca3a7df6286fa39e6759271b24859bc2f5dfbc276d33a84fd9181828ca0a99f9cdfeccbccafec8fcf65e3f943d427367a6f6b23b41f4db7b1744c6be05eacb7affcd7e36acd7b0407d5b0d68358065bf785b3febc7421704f5db735b456d732b72550df86ccb7e1f6800ca7a2afbf9e677ce2f407db7f718bbe29719e3f4c2ae081f707ad310cc7eaba657d52f5ed5a7ea97c24d7d773ca6e75a777bc8dedd46393ebfb1de0b22f3905d338faa5fbca8df6aeb5915f533f5835a5815f5aa8731cdddfec6f63eeef657528f92f91e76790fbb207db378bddf3ccfa773463faace35de43cf7b1bdeaa13226321bb4caecddeccfe98fe64b2a787754a55218cb337d5ed61e7d5b055e63f35630a000dbd5efdbf9efd8ed0c87cf6abf7e91a9635d34ad9ef69aeccaf32d19f4ebf0191b11f5f99a7f19ef728144a000020a1daff0f40a5a117f5a3d545bdad905dd57efff6a3b937aef73338d7fb968feb7dca7b9fae892f80325cfe67211b29ff3636383b7cd86c5ad8d86844984b6cdec66dd05410735d072f5a9061cb1029f04148059d0d4e182580429b389ac484c1c42517ce7bb80b373e431e7ca3d541fb2561d842031088c6c8be60d7a8e75bc2008104838b1fb6268ea085c66d36706468201045f9a14382b372039d543221384d023145c069720659091b8e309ac478176601e3cb1d5d98258c20530f2c30c59528a224f1a4092da4b8fc74f539743f7466ef17851ac7d96f7e36a786e3e3f26b96f932fccc427f1b12c2cef2a5072880c10d3880c1872e3abce5f2531c281c51b61b60952a4a6c804186a7db151894bcf62e1ad1db6c491959c0384373113c79218c2b2f8cb1692d0a83b329e1fa1759dcedba6f11a1a011ae133176f0020e4c60021dc8882289102e10a207239cb184062d8022ae9e6d520085137ee2c21f78810413347c01a34910a3a883963b812fa490a20a09c090520488e5a2201828ae0813831a9c3079a20a882596808aae1317c6aeb8428822ba58010bbaa0b2dc1e2e0071c5125280881501cbade9c287208680840d2538412c01e52b7702525e50832d59480122073af0a187022380a0041055ac3023062b53d810050882a862e8053f54e9818bc15d3482295c80810536fc20054d34d102108836ab59be1e71e0c4183cd80195218ed061211bd7855884e0c28db9104b10cad046d045bb476097ee320412a9045b70f9b99b7778c1f5774d66056638f172c546034ab121461e51071b60e1048902d0ca821c7280220b1d86f04119c5ccccdcddcd8c8311ae6fd15a312bd0a10a02306fc006b12a7698f28404456019b0c7cccc53bc5ceeee4e414d27050c0e2eb856cc2299688419ee2f6fb2c3cd756fe2448f551360cb163e2063062c96402206d4bbbbe18537be87c00a150d0428655431c21866e820062662dcddbbbb5d933dbb7d751ddeb043026ea022042a58bd0a5a8618a30466c4604b124b94e09430364071f9b511f556ada771ddb0298018556040c30c8ab0010918a48ae042c3922c68889960161ac8d8a20629aab0e10901fc033a0053c40fc020030b139d4f7bc1fde88addbddb2ef9d2c56526582e7791810497954586202e6670b2c50c3db8fc38fc5aed68660578b188209650b9ae91647041123cb0410d3f58a1a3e29d21ccdcddcdcc311081134397eb515c5f32c4edbee4be822fd7bbbbddfd85282e330c26b83c73991906a1cb595cce12430f9799358a4231edee6e61e8b20d2ebf36cae2421197c15c064110977370f98519601336ae24604b9b8e12babeed2a6ad72594d11dc65a0e7f8c9da459882ca9803949661881153260d103972b512811c302f990d9ca2ea2d056510a142ebcb8ee5d2871fd47fc325105a0e2141bb808411542e8a10c21c2e8808b33824c90862be5162fb84e035fd56ce1a2830e38d0102b42e7fb24eee7e2dcdd4570dddd210fc682c9954f7001001641787ec12c5da0b8f269e4bb7eb8f26ff00b0138fccac28a2bdf070cca85555cf93dfc8259b418c295425264c416ee2fbf420bf7d810b0f00208431c010c188e84efb8bb9427aebbd3c08a8b0639b8f28a2bb35cd1c495dfe297cc5dc164c20578bfa7c1121f24519432c5363bdbb29e56e4a035a7b0c05d475a81822a14d5512fccccf309fdfea1ceac428b29e8ea4ad716a70cae70897a1359176d0be59db38a2302408be0e5fad0105b7ce88108c40863c3183aec022e5209839f5fcbe42759ab622394f4de0fe73afcae892fe5db78c12c3f7294f04a4985935b008d5f7147eff08b5ffe10adbefc68093c9e1822a289214c81420b9defaf3ce27eae2be5dbf00b621143e84a1769a12ee96ea59452429d4c5277e9ee6ebfbadcdda594f27ed2bbb9687179c0788a26d1f54443f8715e209b13cee95e27470899237caeb19d40d84d46c31c54cb122ebd3b867b7e2812891876a2cd0929f24590dbc9ed2bd726e6e017c16e7ef95cbbbbb98dab40f1f2b06b1405fddec5af28ff657549c965f54b022bac2f908deac7c2951a949ae8b78736310714595185df09b98939e06b13d67622a58c10fad3b82284af411fc52d088e7b48f3c15119947f0405fd6c6033e4f16577fbed47abdf54a4dfe8a7a6f7b47adb764fcf75f763db509ffd86faec81a0b26d7626d36fa7379d7e55229d54bf9db64fbdc7d7abf1b22c2d7da71e9542499823f5ab2a530f53a9f7e748d5fbee80c423645965fd387df6596659414e9f3d905326843eeb49d57bd8994ca8df4caca7de0951fdd60521bde7598738509bb5f38478451f04eabdea595f7a8e544d26fb01b5eb24444d7f7a48df44dff47134020285b734daaaf6107ea36b325dd36bf0b5bdc9a69e23552d55a11394b4bd431eabdfb637fda9fe6c6f7a6eabdc1c79c7e31007fdd905916fb2a5379d40edb7fd064a4ffa5325fdc6435ad578bd8ec7fb110dbbbae3f11ec6df399ca51c773c47b8ef84a075051580eecff64746b7f5dfe8a260cc811a753cdedbb068ec4e4ff329ee7e94de74535c11aee96d55fa4d8992bbbd167bc0bba51ef55caaae50950e5128dca74ebf55d9fd283d6417eabf152ee472b8ef7eaed2704d53efd9d547a09fcded21b0a61fc626ace99fd4368c7d51c6fde028428ed9549eea613d3b1eefb96c65616cb5fa256179c763b2945ddb43676dcd7a1bfedbc3992fd9afc667d61af16ee94bf6e751bf55d356492790fe3485941ef53056a9ec77e4aa9e4bbde999fea9ce2f556a3299de543259169094a9bb20f05ba753f62708b320a937fd56bd3f55ef4b3583108749853b53476ef6a63b7fab24df9e1551cf71a5cf6ae94d75dbbc8bfae845a19e2b7dde3575424abf6db554f23c6f2b79de5612429f54aa9b893ee94959e94769cb4aa6971d0356bfbdec7a4a6fb2a8ef9ecb465b25bdec1c10efea67fdb6dfec11ef9a3efbee612764f526fbb3facdfe4455fd8e7859fd4af6887757d683446bc302f5f59f093386bb9ebd411cadf8341b8dbae78de6a6c8dd9bb947ac7536bffb06bbdadde3bf8dee9e479c9999e78da673ba673ee79c9333cf32e7a694c42bcf6eb87b3333571be76400bb66899a6edc7bd8059b33676666666666ff1a36e150e3ff20d489399c1b4208218cb0bd07c03d1b421f5cf811aa0071c0e93e99339e73cee9d9e4de7a6631c6d83dbfbb9d2b6436c22e38e79ccccccc36a6d70f36d1dd104298753b333373cdfd9823c7e9cdb033d687e4ba98db59764fcf76cccedcdd61845c159dc111d6c0ffdcd919fe65ed4bd7c0e7b87b464903251121a6a3ee3df29133b9fe530c2ec277f70e73e18f76748bda9db7ee66a16ebb653edd7fd4f138c7dc2c6a08218433dbba218cbce9c0aed1b2d61a42d80eb339bf6be05b77f7769ffd33421c4c1d42d816c2d83da3cf2c88c66e0d7661baf1409f50f1b6ab0bed19343efcfb516a639322e81c8410420821ec11b3c6cccc9eb9db8fe978dcdddd3df2e41b0321849063e49c717777f89ce2f6f6c994a431b7736c8e3472082d8cb00136ee0f7f3e6346ec8212b5cd6c6a59f61f8417e2809dfd9c73665b96f5dce6ecb9cd96de302d54a324db4c4943663627ac97b399f18c9a8c3615f64f86ccf69bdd1366a84dcba648d431db66776dd33550b2f78bc6b7b165704212bf9a217b37c786a6089f19d21ae3ee2ebdddbf7b92b8b2e436028d7fe15ff823888361fd11af0cc401ddf9b264c9f004210efe98188e453882bbce7bf41c3817cfa09851460e33a0428c293c84050764f4740e0cf3821b08510431b098c1153a3ec5f5f749815f3286032bd77421161c18c103a851eaad5ab0cbe2690edd7a5d935d88c5cb94fbd167225cae76c1a43bb9814e142ccb900959bab8bb7b33333373b34b17469e10135630c145936086cb3ff00e9a0c2e33333333eb2004eed423b4d3f34497e9a44c9a7c8650f0592226b32eb859820df508edf44011048550d62d5b761371f7273c7ae58b129444454ad9ddde504c31458c54f1e25574405d0425d9c5707634a1856be09034a1892e2b97eededed4473238836be00b35b49c724ad9dddd2d654684e91cce0e27c0b8bbbbbb7bbbf41e8ca468a7c7842a4cbc08598965f164ca6ca7c704a12197dd3de710219f21147cc264edeede2e85d412d4deddddeeeeeedece39ce0e27a4cb989472666d420cc248b74134e7c62660e942641487c47c8650f031c14a14d9ddeeeeee194b6e6666ce4cb8f2849999b965cb6e6666666e6666eeee6e2b41506e3737911a44ec1b6c490db421423e4328f828f9d2759926bc6006910930d0e2a43361892623120cac03149377098c17273a5e8098ccccccd2a7f4e1945158ac4768a7070c295c038fd00163092957dd2da79c520ee96e695dbabb7b7777777bbb0e22284912ce8e307890613cf1e9d3dd468718e8f4981ea19d1e1bd8c0ddddddbd3de63ea4bdbbddddddbd5d12f942ea880819891531a285c8943a74918d62371892f205054829bb4f4b5073c2a08c38a12f98b8bb6baeb5770b3651174a42b00d89f90ca1e0e3051322d9cc62e505a91131122b62048c4f994315d99098cf100a3e5d04b9bb94339373a7a7064fdcddbdbbbbbbbd7b309243847c8650f0e9e28bbbbbbbb7cb213223c274d789b56cd9edeeeeeeeeeeeede2ea514de3b6c70767ca1a56ba44b29ab700cdbe9c101956c4ee93226a574e9eedddded748999c96ea1ee3066c0d1eeeede4e46cff66e15da891c9edc6e9d1a7c7177f721dddddded3dd43dc30fae4fe71d3924430204260ec161888ac669d1658915222e82b80dd6d343c58a481b22e4e3e34507548a182c624a444d882075b4503275b2e892e97461c224ca48878b2e5b705b2811b5ce1643cc43252e42593469315cc0c4740906051fa12584aeb8941b377babc09449afc24395272dbbbb3b04dcccccdcdddddddc362e008294351165a7092a52b694526e5605093433b9d323a50a4880c06c1b374ba02126d9437c8650f0011a224385980c7ca54a94cb40448a0c614602a402bb6243606251c9eaca112f6c32c264f0a59b89109994411309830b6aa0936d70762851862b7106652762e0836d2b72c4104c71a727084c078559c2cc3cc2f02376a029f1644789284b9c40411831ce85211a1762f981134a0613246f6983b3030b93295d4ac9af4419626b9c1d5dc8e841d4bcd313e46333c9d8c133198570768061c2460491cd49c510326ec860578642d05dc1d2c467080ab01d1ba1981159c860329dab74f1c119236f2b3c744b1f8019b9b4a2649a202644459b488409f264125ab678124fba3412425eba66a1a0a0ae819a134e7c409300e3c40e2d98829e703df84002199c1d543ca1220ac581d4c59452732d86ad7d8061e53d423b3d5c8ee0b2040581a8cb28b5d0d0931eb260311123b12246aa1022d283908cc7d84e154cdc77d0d20eeb21ca6a2856445b3149899551673d3d61a628cd213e3e4c94c446ed12b6d3b3b345cb48890e6ab4fbce14422dc840e34b0b43cc1934d999010f1405de8e14515a60e2b41345171c9e54011323a284365dc6707684e91ab884d4c594d26b28814bb3c7be90d2c9f61ea19d1e26d33f6a0291ec21423e4328f84841a5b97c3102ce9bc8909158112341dd444697bf60127b84767ab6c4ba065ef95da4886848e7882c11666626a2fd8848162fc2d0de42a5bb862427a0a20b1d6ac002053598c1652c534ed1a408ac0566c8500c0730a52bbe909ea092654808a7eb446c861acccc1c450d1e85138f028815141a4076b46c712d56502e4d909e38038a17b886fef042cbf6838803a020a874ec9ac862c9101104000000b3160000180c0887c482d1308c82346eee0114800d6aa83e5e603492c662518e83280a62108661204300210620648c424a61b100b311cb30a6b4532c382e8ee7ba2e6c48180cb7854589bef2d015fee385e09347efb4074240f103f347c3e11605fdd0f548b59166d9848fd34196cf64f82be51aff99c3942cf9b3bf3848de71cad2ab9e7eea2504c6c6cb14029715c0132a3f0256e8df3b800f78fac22e2c2d1e9b67306a9ec5c7e4fee9a2e1ef3f98a9c8aea16471d4eff2dd4e566ade7edef7d859ee433e1f8d75ac5b8847602b529a9729f2072d8bc93e1dd2da5d2b552ab4798ae16ecaad2ec1a9e35209e8e6bf47cc0224cb8b59ac5708b798004af6d6c0d67d18da8062af1aa9b596ef7012a9431b596a0da0cd89ac78ce589fef29a98be3622d6aa251c2a3c120ac45c4e0baef9d8a34a3bd2e39ccf0a104df3548825b83d01b85b3bfd33fdd9ac896282dfa579e5846e9b2a76347870cb9a6652541abf37888ca206b752bbe872f2d1da7de7a6154661e09b968f8ab5b63a9853228059f75f97c3637e0fd5092cfffd174e752ae4290e63e4e076c3601d6f33b85fa97cb42eeb59ebc5b2b63e03152c310288122bb9a7841163d90aee194b734e1292b06bdc6af9329e38adb71730996382d9555024dc60a5d0aebcd30a5a18be948c0e5b86c07fcdacf272a137275982f5c50c380394d864f45f15598ce1545ed5d6957cbb1dffe59f54fbdf217bcb0bea9849fa5758ad6899cd73b68765436a3ed5b4a057b3a3f0c9af085b56180de2430f1bc509d2f29d96b984f5a05e884ee7d7c51601a8af5b53ebd6f7a60173f029167746b0d53ab375f4d11d0c08deb3c8702c8e295e6162e681058ac97a6a0720e3bc14247b1f2c674ef730b211dd83ca89a984837b3c53f61f61b356563d920f21a257b0c41e589382c3d6b492e529a420f2766e1862e791d74ebcf1ca34a0cd9d10ac3e91426741349641f14903a2deca6cfc2bfa71bd8b370dfc9d2fb20964f5ba0fadfc800e9de65e92dbf0b364d505aadb79d9cf479fa9e5418b6290b1d6b89d888f5eb352065366d170b0cbcd9bbe57baf08072dbe4158ee7d14d15c44e657c5820ddb19935c55f6f0a7c1493d1c223e188001182573f73739ca5298284a4e7b006e27b9a797cfbda95f537fe7d64d8441fa0df35d24c5f22bcf400bf2f2d90be2fdf95e4ed1b960b06fb4cd69412d28e7c988a5b362d8ebe37bab7ba140505f8187caa9c7abe089b57ba29d0eeb2c22378c44c0314db9d310a6de3f2c0a851a1b04360f6716f56b06f840b402d427c9084079c21c8eeb308a30ea2b2f2342908a1e4e505a1d00a834361d400d7591fc4232a87a75962a546b45d063f3c4714f7ce124294ce5c17b6a0ab743c782433eb758afec25a46a130cb8abd7df908845e87c1aed5e0d14c881533f0d69207fe4269d269cee11d4614a07b2378d5b024e89f57cf3144145d0cc51ff281cf7652ab078b801f26cf5131d3af04b0584987f4bc45976577e4141de3faef46e2cd5ad5599eaf8eda6b715d09a16dd68009b31b2a0f831fe49570274acb80628795677f019afebcaa59490d198bfd9affc4f4464fdd3dbe63c996b6c8803b47bf57c7cd8ae7c0acd7ab06283b1f5621063ba429c9245e182411d910e6395802e799c46ac07c649ab4ca6e9d39dfc7d0d5e6bcac80bf2c51e5839613b1abc72de15963afe180b9633a08a044677c0571371a0a8b83ec2a720cd3b750ec40891c2cc79b6d26d70904cbe1d86a0059ac3b637f6bb7385ee5ed8c689f9be587d8434601f735b524d3db0a475beb677fe49d87309d84bb6b9867bb9bb07873eaa452c6bc2f0c711da7bb4edb6dead1cd2387debccc17386573c49569a40d13c5d61ea0f8e4a90465bf80553ff1018f82f0fe4a67361520a45b109d1ff3569034dca85d66411d7e8fd5625c34845cb3abe204c886239114e5d276679bca26b77131b40436a61025ef3c1e82d7ddb7449d52fc9ed26308fd3da933d229fa43001d06bf4f534151a6cea84c8421581f4c310359e9a3e4cedaf4a68df493f2c46d69e9c05a08f3491d8a9aa4c1266ae0226c2dd57fe897a508a358c6018add14667ac8b0d2668eb6d60f690ce39f6959a220720329a9137668543d074cc9b0253053be5067e9babbb8b33095f04b8a48dccac0b79c6f5cee200d6f6fc9f09f269fc36be0bf7a67e4e8f71a03468bee107e749fdfa570d90a056b704eae2016902a95ea4e04a6e28aa2d5318c6baa81bf6c67be630a61b1e62aeadbf5a688048830355093799f8b387bdfe88ee93bc60efa08b9507418a3c25853b3e4e0e1d383af486d2995d6f437284886cd65e7df95967ce40a5643209e830b2e58b20c26c7a332f17efdc44744832e5fa027a71391ce441ee7bb58a536e1107c507e39b98eaf25f1ba5bbaba438daa767db9937e80b826d9c1919620d1309c6ff7114161f65acd0c2245b2eaa2171ac843a9ef27727db897fd5b58062fb2bff60c9a33f872525965f427a13418a24edb28e71ee4637311524904eb4ca87dd29ee25978df513d8313b2727b8c71d7a46629fa1025af1d977a7bf293b49c2a53a7de602cab1294c8c60b651b71301600b4094b211566e8f393295aefa9001d83ebdbaca348048ef67eff006ce7db7e600cb8cab1226f7365af6505208ad985995c7807251e12063d5d1a7045926b204582c84dc16be1134919a850642069621c1c0a650deb5207b00c19cf9fc53a54ea0d04822311db58a7b1bf5c47cf3acd17abad72b408e325a56436f0da0efb5b411f0edc1e9c5c56c1c032b03e56342bc18349a55f7eb49306c246ee8bfacf1754b2a585413dc3314bba31c315472bd4c076c799b5fd3aec803005331150ba86e1e626ad6921a7ab0a4d87780e56b1bfc3c6f926199a5bfc930feaba43a0b511b42c22deff29619a8eec9ba2d3570641463ee4295ed0ad947bd1157ded4a92f8673245e5e11bb77742b9b183c6af9b26c0c8d322ab0e39e1df499ed281f20f6c892faf5e2e268fdcd867497db5c97c9f78be3aaac1f2eb9ddaf4f2544519500a405ed82028a4a4bdcc5f894369dbbaea7b74fc7e32c3c2419780ca2cd190b571f1713876ff0678355fa18259e283774ef4d2fc891856f599d937c6f0343863d5366b1b5d1b8035252646a05b57c4ae786dffec14082d42976da6167fcaa6aa751f9d408060d302d66a01f37105540fbfefd5929739b0e3e4b14f3cf178e0209ae7076632cc66e0a7b77f804b9e7e6b12906ee092107a142f1af1eeb5df60cffc5de5d1d626f8e6d398b7420e938592efa69e26beb14a95e2e39e23d262159b62b3850efdba6b551090b301cf3d3f42b50ea173b58e7ce7a30d6229b6f588207e2a5e711aaabeb1c05de191c91dcb5deca68107d3ba13c0665b536c5dc018f1e36135f92c580b35bbda222c0993a3d6f0fc5767bf64b6ccaeda13111b3bcc993cd56ec395aa4d56c67c331b875e758f657169a6422d516182743f517ffb3a8baf6cd060e8ca22e3176a02271e9e9e953b57f1e535f444670bfc22a19279e7efb348215f980634237a2dc84cb76b60234e480097433ab1d675ed0f394d78afecae4961c1a35f0f153ff058164409fc6f588c48dd62771e8b306d4e710d7a7c9ac10cb58d0fb4d5258067b0a4c1009de74f4a1b4fece49b9a1781fb1f4a776bdb4c461a520cbff669404838a1602dc6d4dda10f606d501361b6fc8f9d71ced53c36241fdbb71b56aa65bb5f5ec579ced8e1ae0ca84ffdc4d28a4bada4371c0c2a651602eded161f483f2570228e50efb54da1809f1bb27000674ebf3b3fc5e192a65537bf2c3ec7d29ecb8bf30d434f32e47a4a5ca189b70818022c264e2ac9a01021297e713cc1bb2ff8817a70851e5539817b26851374b39f550a0cf7bdd8bc9da63205fc7642e99729c1ed0e1c69647b12d7d4f7c4e67f0020e8d62a840acba1fb42bb280b3b966c908b65bf312f7e7d3edaadfe48150f53acedcc086e2e8a79456d48e98b5a55e5b4f75dc117ddcc3b2eca71b57b14eebfd5d54ea0bdc0d791c364e9256dff10240d35d5d275280705e2e73a41c0917bef1e0577ce3f4db8a86205ff50497273287448185dc5c8908cb1b9fc20395c565895212c7b38ec9aa33752ece197cbeb29efe4d334590ce40fa69b640c08ca26be689ad28bf1496db199430bafb5ec4c5ec2b3b24f59311bbe0a0153ce685c33f5928021c24fcae522f37475768d72f212ae7dbb8a72768a2807fd375820521324298ac16167b190d0695182816a051e1d2f047b3e26769899272968007b39939139b2d34a103c6c88cbfbec621d4b4439dce3115ace1a39111eba0a6563100fba88530efce4a44e4ddc4a233847973df5b8f89e6182c02e6139a8a10149766c2ddfaaabb2cb90883a13a4b7d31501110055e8ae69be44c888b20313acff510ccad4818987f14dfafa94fad694bab0db3ef61782aaa11ef6d066b051dcd75c92012b9f7e32eb420a64b9f7ab128b8f57c89b73e947238a8e531664b3f23ee2cb1e77bf1e450068630a05676f721518c5ac4db065acf4b76731dbc9f124b14a1801e4baf4a5ca111a84cd657673b87629a9b0cb9772a6015829d9f77dba38e6419a9391ead0656c9e1a4912f5be1e21953002970083ab45b9f81af4b7e1e6e870676b91a345db380a791bcb10661ca4d177ed9eab6b1494f3360d5e33094166e148d728598cba626ca0cf68a9ce554b88a773880413d8af28c64e20ec4426b763ff067d3cdfd01d1a53172272934a24b49f8b8c6f399eb3b18376ca1f44599284378f3c2ee4f88086e123eb28ce48385b84a18654019bff1af78551f2f80321211dd720e005d7f1e98abf2ef9ee40512c53f9428f28e700e49f19ab3e51e1648043ec04f987a196a19c1da2c29410c649f4fecaa9462a6bc7d9d181ec61d4add385c9a6ac2b38a1155a14732b4a174f91a2829ca4ad2cf7d57dabff5ccc7fdb1190313b1f286269c0c9e9527b7c229b159a4a8b76471b1a6524193554139ac6d9590f9f8ce4e107cdcbd05e31b6bf3b9c6bf5e52e10f1dd868c82ae1413e36c3e67ba04968c3d68ec0892017c109708aaf9c7c3ef04cfcb710c8e495bde775f012976cf4209f74cc24897bc03ea99031c03489880460af4fe88788f0292038bff970009b8ee0b610c74a3a7c320fc363be3024cc20c9058dceb9b842b1d3d32cc069f44ee46d21f336db104ec775dd2885eac2becd4c320c6f9cb203c430befee1e113d00b739a085ed509d548c71e2086c151c424f97e4d8f1f0587085285b4409030cd321cc4feefdc087a06d138a04020e47cd7552c9ce075a82dead6aac4b76c5565158b07663fe71cf62acf8949e7c41eab2c1665e0d98bb842d7a97dac215ea58efaa4e80909db1305a459f0cc42691e00e5a7c465ac2842a4110607053b559a87ac170f6cef0d587ab11f494ad1e5c5cf05c6f1a40ad904701bbe5936606e0c63b5e8433088e7982f86f309bb5cd93450b225ef79be48fb774ada76464fe857a5de435ba55b59a9463baa36f986045b7ac6c2a6d9a070632b692de687ce1778ee2ac6888cf7b8872de16a607e55dbc0e543edceba6166300fa8f75a90c6b1cd8e1693801e952fdd10f883f5d21c2684a0c596e34514d0315d911da12e0fe13bc9863711978e2581b27bba52818749530621f15313a3654edbd98f89a2f2e208fadf2572437e2a7765e25a52c44c95294d9fbe232174a04df2929a854ecf921096426d9c8976756eaf6a76caf616494d876eb04f850d99189013f99e3a36e1a43a87d85061e9ce5bf069a657469dd480bf7157430e3a0cb3f07bf46045468d5df6d44ac5a5ace42d1ce1007aaae3b8708ad95df22cd3b8ee0501c84ecfbfc6eb70d8cc00b6967892c9cc820d9be9b1d5daf0d35c6b25f39bd0f3d50204fb12817ea8b15704c83f55addc546a35a81ece9bec86e68614adcd2d9bec0202da4e099511a1f70579a02840278f1732f5922b35add6d2bcc0eb7dd67c0946fa2fd466462780d0aa8439b2df557877657252f397c211ad8768a2f7ed2d12007f21db16515704e7da61fd9ce4127d36eb629405cadd8318be5b739c9cc249789f5356b62faaa4822c302476ca15f380cc570f714168a3004ad01e5bf734c65e6d530c09315c781a6838a3002acfa4491894e360db29020415509feca2902a7bc9b87e71c0180ba73639d8ce0b35910953dc5d77e63a8927aabc288f1320a3523c9d5aa96319244846c4e1a2c6d1eca61d02637cb0f8769d4be2ba32d261e6b712ccd9a582a470324f143abe9bf74a64cfc2b7abe7e1e35315edd9a620b75529e620b5a58ad8dcfae78d6747f82b681eb9f5fbdf3817422ed4248436e28a096768128f74aa15adf1cd049f8ba815b6ce30aa0c43bb0a8fa03c8bdf09e453f41e94ee5611d7925a3abdfdd7ee3f39e0a3daa47864e475b1c33d34999fd895799d294ee41dfabdd755cf09174590c817486c8edb4683d91ea42478d5327d29f4e9b58b814d3a077fd8c57a446bfde41407152e8c33ec090cb0f754a9b1807d121f0593cd622063c33e4776f7207042dc6e741f1a911fb3c0bc0caaeaa89b1a3b419e5d7ad83ebfdc650fc66d334ee2bc09643da482bc1affa19de956388facc81cf11e5b08017c363c930113ac940e0c289c6cef80dfed952486abe5b974f062793c9a7ed9bb9202b61eb6c1ad7380373cd3294473a4fbe3c12523fa650958f17ad066f1ded4e23766adeace721dd13dcead51a176652a1685539eb9154fcbde63b60d5f966a0ae79dee52a56ec82cd285881532b58282a558a4da89d45c5b3d6c52746631b93c965ceb6406a289974bb581049e1a060c9abcc423035685d19748d3b32712e445c2704ff81a9446c6f8173f4d047c7e61f0eebf205873653f20c0299c8f46d7534b5920a068b5b0d0d78ff2abfc03da1af403428a582e6be9dab8721584b5bcc127ca0c07642f00f48a0ac9f8125a23c7f2b50bdc1aa529461999cd61ca01ab372205d619c8d663f85532376609eca9a50a3c3ea3bc7d8e32bc624bce3558abe7948e8fc7beda78b62cc0721c935f02dcf37e0fcc0f9fc889d48519f82e2799eea13fe6cc0b6c46f03f17322f423b1418941313d44cb3928380fa3da1dfab6a1b82c70789ca7f51b52bea7c7319fd6d937022a5c53f5748666a7edd8f077690370454505f3316a3458cdf984f378968728a241ab439dc439751c220f2f98181f6acd24a520696d6c4e209c7aa5c2807d031b96521cf8ec7db13c97053d77a72cbfb106c228aa3bc1310327f1aa33886d205fa2b316f9c2e527826f4801bfebba779d4477afa95600dc9fd27de18eefacbba46a18894339007ffe0985a4d670fbe40d1db11ad009cde27945d5066d0c03e497f073d8765964359314f01750d226860f70bb1a7d5a1226a90062a3ee83b03a98b7dfb3263882341f59d3cd2e0e132bc34c35b426b1b1737f024a7b2090c1135120cff06656642f6cbbe96808b36299dbb83d9df959c94774d304db18bbf80ba3c746241c433dff5c83e60d5978b59c2a61373f2542d83fff1ea8dfb81e9f8fc12bd1de9131fc5479498762769f468354cb39eecfb5e126a291fb46884344d6a24bb3277af079535f6399d22e61ffc6364fca4e8d4017132d373371b5504dde810978f8ff30c70980336b655865642c0ac06837cfea5534aed4105568995d56837c5730ba22ef3cafa1b3d034b8f21d5be7ea2220673e4ee6815a9d6906a2bc187dc034b244b43c9207bee38f791e445e5ce20a7155a1a47e10e628b08c2f6c2e325f030d9113529dd4e330d03f1f787742f5f8a7bc8b26e54ba738ca5a1b470f819963ccc4bc011fd15e3ba5a351832a7c2ce536a534d54f819b4278442fdc2d04c5ec57219a967434a9d3b16efe601739abb55a382fd85d624c7ca8f238745a6fc33e535254520ed45e9ebbc3f0a25cd3360d3e69e488ef7e057fddad52c3be8bb75c2a6687d3de7e52189487166cbcd4bf3c5519ba9c3413709f1473ab986ec7a0bbb4647dd3cc4837cba680346862378dbf69a2318a9f411c2b4ec930c2a992ab105077ce3d62690a176a2fb665b40a6af376a7565f75db8e2dc12e65d92452f30e31ce95aa775fe8a02168e1f2311416553382de95fac0e596b997d0b754de8705918026349ff29e15143a1b7d0b7c676b3ce3075e5c865eb104d1e267e0e0d3657f3d0ca5b3d12cb6bd2c24e202fd11db425f71649e5a3e55aa6b71472354a40af349461984142f49d96cd23e878f8adde7f29b058b9112ec5d3fd076ecb7e56e908fba4f89d55907ab3295d9466ec5341ab27f01bb6c579f9889c92c9c3fc76ff16e443426c0a99fe0dc39ec7adb70541447764751862bc065ac0c807c1816d6770ade34c4209ea550d6f589a7895f99c1f02206af34cdfca9c19370fb02e5ac145c6c11c673576883c96fe7c45bf9a581b824e4eaa527db88c462cec3ad52ee2a955c8652aad4e3d14dde0b89b3a09869112c59b4778130dc6413869ef138ef41de60f58daa193cf53885c2862ca61b00cf733a3c44d4909f22e5b8fa34cc82586085efecb7d9a5145d1b43a106174282021d79b6791eecfcec5e30705c4f56820233edad23fcafacc60c1f8485bb6f40fa4d80eda8f63caa40302c8fd41cb290baaf4a7e5c7c82dfff4bee252827de8af724b61671e0f4d7eab34ea9b2b2e767865642f268011651ed0560d8b4378b3f0b159aae860728f589927fa7fde16552550b8cef0cf9ede55c896e4a70e16896b0234afe2b3a678b15c51717a3e5a11ef0ab159f0aed733b90060ed972fa3f6796e871e4d7c81485f227ab007a495b107aa3e35b72f02b97fc141fce268fe28bf4a650e8ce1e7a39f763cac2d2d5f4c739eb8e3e5e867386d036832244be1778e17003a14c69660f0480b904433ecca8a1eb788f700be2bbb249724d8b23d2fbb1c4db5b674d47936c43de860975a122bf9ba134d9ee9a6684a71e9a9f00f7956d119c6a5f8b530539a2cd9c62b76ed23a596e9acac9f1bebc0118d7224ce40703b48508ecb6aaa099905022c87dfce89c929f7f9c1815ed2009addca12dfe5cb48edd74b4d746a2272cdc058e215e3dc7954aea4811a53ca82e4dbc51f5db4bdae3072b760595c4ca25beaf2eac178b63b91a160f72d95e2b3a0fe9d60a24ca45db278316c5272cdb120e2e6229fbec0dfd9c1fb14fa125ad85751fe8e62bf147d8e0fe0ac7fd25ac1e001e614ff7df1ca9106791df15fa74d17c2df55c79633d6941d3e05582113e3f0949d381f43dae93fb21b2dba6970ee5e33ffda7b1aea09eb53af4fd969454b92f8e39be55cc1c1012618c39ff9b99c669fbcc6fba5db0d06d22506159a920fb266ccc66959f5733a7b2275e8d7dd5da20a65c977fb46114a4f5a24a11096118586c802db57ea8ce3bfc00ea792a15e21528d3d8b374cc8157052acb79b7928d3782149a8c0a875f19df26772405e48af2d509d981d0639990ac8725c9709ea21ace28293a980aa730a7bf948c9c02375fd86654e777ac1028ebba7a0a5356253140ce1feb4ed9a79701562685b66a1e9757e93adbdb0b4e659fe84445868213157f70ba2f3f62fc2e73f852c396d3f04fdf558f2e4c3b37139a1842232da22774839e28f3f9781bf5f0d989cd02ec0855c13c12e158b3a2a94c79cbb5774a58b456da4fa60de238142041fceedbacb4136582f7efc1ba57c0a73d0d1be65dac2e45ca776b5b4e493d78813321a55ebbba333abbb346d45eebcf27401fcf00a514d587ad8da3529ec349fbcc370a35a983d0ff36ef3687b782fc99168acb7c08bfb35bc9a9b555c18b3fe3ca3281032b1110f2ca4b4e7f4048fbba60feefdc186d8700d7df2faf8038a111db6aec0a036382a161ee1a0b1a9594c5a2b3ec2998f0f5e133740e5fb8baa39baf8d7f60d7fb3aac2e06ed03e9670b77c4ab70eac7c4b81415ad109f077c3235985d8fa02fdf781f0a691fc5378521c8d67e1c3159690a1511001ca4d98ba2aba743d43659c88f2bd6040f87ae83fccf63baf2d1d645713234ad5f4fd4999af43cfc16081110c1b0595d4350f84415a745d2c13c93caebd86d6e1e3c8029c2172c8ce38a33f8f183ead7263072e0625e585c95096044869824aed90e21e22be6ebb4e1fff6cd6f5bf3c10cb5532a620565840d0cd55c204714ce5c8ea49f5d25a73541c26e0c9f306100a05290a7c10ed20e36d9e1e2c449058564853a8a459f3cf7ab62faeb1f3233b03abf22fc495c205a9fade2f8106fd773231231cf0aa01f8946961bf330a21a69a03a3bf1fa55c4681d6c0495ef577c39dab16a81a902091b38848f0b193e4524148c66d7f3d092d8375ee8483febe2b74a2ba62b143ffb9acc130d419c1280481db1616db5dc1044db086debd57c291fe2288bf90477650c5a6007337b394e07d59da5c527d5402456832b59a9492db564f949148d448d02735ea367f16d0542debda2092c0605b350a2db92fcb70379a7cf22a8c492afdacd0931ae214056a2c3498d8376a71767335c85f1947b6839c7aef976c6b2c08623ce1be0cc7785678f8a5ec09d0b9e4b0bb57ff9f14027b9561225814bcbbb906b57511a23fe74c797dabbc52d2150d421900c4c9d634ce58831dee2f8d53576e5d9963a90248e1763f9bac528df9f7487c4b81843ad81d7c51a62eee79369ef757460a0db3a342c5a186f6a5a0db6690aaa2e798c74f8e46a1776b46ef1becac952e2824849d822aa716ddb4906257eb5d90f8d2e0d2c690e96d172c174aee2fbd1b49efa4a61136aa95b5a22f9bd99c30bb228c950857929c1ee4ab467832ca43a543f2e760c3cccb7719ac6814c50de7fa11e22a533cd30e70af5e8e5932af0f9d2f877eab9ae28f14f832b3bc57610989bec5702d087d8780b7edfe0b6f38ef9c2d192a75586d45a30ac0421551dd777ac8c5d8d58ee1133e6c3cca6b83436b0236831c6b36489c894bf97711b04f228f1bb76905189839f6288dd541be8cdd22c9c105490b6b67366c4c41051ca6143b334ac3907c374ab32e4e30a956031378e602de1bddce5f2eedc59bc95ba590cfb24e4a8ad2048fe44f85a416ace7ff140845680454d1d10f8f55d613033dc29aafb67e88f1095fc16acc5283db04f87c213056a731768e9bc189693c6ab17e5870f4f1e4754342f7a8c674141209981c653d7930c637349a8d01079c17420216a42fe5094126acf3ae6eb86e9ffaee61210129d1119cfbbc2dfcfab0ee3c286872002538f45827ca5d7b1bf1bbab1736541a013e15b6f1a34a90c6dbb20d089df2ad76987277531f749686561306fe52a26d0120c6e4b65360c8621dc6a11e2cdc4235a7cf2994933e81842e20b0137394491078decdb32a7ef15b60046a112ff4ba5e293912962946aee100a1c5292ec9a2fade2d2323d251c8b70658e366ccf2058c1c582ac76fe06e68fa3fe75368e36329ddbd6e843967e45caa3b4bab8eb67a48b825a0b65b5689d1835c3b3c6e6cfa06129b19594f2352f2456e6c698cd06fa29afd1b3440dd595cb6513aac5ba3ecf94715e56cf456ee3dfcd96ab2105adc88ec132411922b2e7c5166317ec9f11d70c84a2fd9e97a4dd5ceb2f8d08c6d634f53586f145d632773d75c0b95a4c83772afc13e4889f6e0b8ffb5fc5f663275db944aa463217a0ec9552d788c509e028f6da3ac8449d868640b80ba9c52dca3fa90c28023377d03ccd1862003ff2a61e9bfc5744161940769c7a5dbd0345647cf7efe83450225f60944cded96bc51b23c377cbe84f7a6a9a2fecc5dd17d1811e9d20ecfd53127731aa99308f0c2955acd628aa163ec884758746450a71980a59903d73dd49da6ab14fda60ccd54ab6205a6a74d3e9d7b28fb9fada911d30ff0da30e32a53635b663cfe522d28f98454f1423bdb66b26d61fcfe036ab81885746f3f0aa59d25ad194161a94861bf13d53d59e3a68352060b554a69035f3fdf643787f25c47b2af638947726fe80cebcb6a20d252c764545aa175fac03d8e27a24c7cc60490ebc94559aa7413188811109cc205b6fa4040fa5d20f338f98b03a72499b1e40b4ace3ce79df9a2231b23d808fd2097ef9f40ebf1c8fb40ca84669e4832e81badaa2b56b2a17c87a4380644dcfc736d7dc28a474a20cb412dee8cb813280dd4d615a1d79bc81fa833a56b90037469f8fd2b9b2e4455e3e76a62617f6d49ae9fc8a4891e9f7dceeb4b16b0a2d40658d364d1f9fd981f43dfa9eb6b2bbce7938099bdd888da90ba8a98fa5aa54043243a49faaced93894baa56e0478d50e794136d4ddc008a2f469dd6ebfc604489a6aea32bddd940e978d1ebaf2522511315bb49420b591083a80070c563ff9ad15ccc3fb89a3fae2ade074908ff99b9234a91dc202b4173cfc43ae5aa0d6a412dde10a43e23aafb27c6a84baa6f4c62f203be3900ed3f224a234cb9cccfb125598d4484b5bd3766b55f55282cc77842ceb28631de22c55feb94ae182d43860923546faad78889c5cd53ad6542564afd20b39ab500518fa16691d8ac9cc726ac46004ac01950c9b92e8a698401b8481e46b957e0854a3fa193ab15ff56dde004cbd529ea6aa37296e178298b50fd647e8cc9cdfe16bae09d6788fb3ec1940ad5194b141300948186e51d8125446f169f0db7960832936f6372c31e124c0467a039910408242404d7890fd1a8bad072c3fa0e1d91dc8305d2474a97ff77d40f21986de9182f001ed4a48b447266b32b57e681e7f2b4bbe05744a3854406d1dcce5f41dbed5263e1dfd149dc96b0ff7a4f78c669a1b882d2786ed82c7429034d910fa5448c5b935b9e11c19dfd85a41e8f534312431e6e5e7b6e7df981be296dd8b18f110ae85918099b2cca702659cfa970ce0774675e3e58c71a271bbf44a035e1f08615008fac3b71506fb6ce4d1706c222a7d5a718bac3472188b51dd131795d936a6a229dae66db395da350e62b6c99609c370bb8182e008d003a763ed730b9b8d7dc216c67dcdaa6400c798fe7589c042b2bd83de3648f7fc8f28ab59158c7e018d344fee00b82d7cd0ee62ed7543fe7678f2844d83199cef6868d85e29eaba36d3607dc892f33205d6428be626b51e64b82006eed88ed45f655df504c6386f490916d0e5fb38df8948d69c1dfefbda67764c3e031150bdea88ff52bc5cb14796537b7ff1d913332aca4da89ce772cfd6c3f9d4d57653fcefe7b29d8d4da6f432d4aced482d7b0e45ae8188a3eca9540e0a97cc442174f5ee5934c83ea0cb3d6f9431472ff0b206e093bda5223e1e29aebb90f767af111f60af3c5125b4e265582a316cd5c798f9b8e23692e754c2c7bf3b1bd7faec93858a7b5a17334cce99d3a61b9bf0e84fb0d71430680aa9698a2686aa67188c2625e00e2c53f0f534f0166afb07f57aec8abc113e4add39ffbf783854fba828958351f6e27d87077bddeb8808b2425433398e54f4135fa49e030df6836d285c2bb2684210889edc67222f2850db7506260ed9883712e426d8df0c2205b36ca07281144a3f55984db06cb2e49189ccbdedbc00540a5ec2249bde6f4922730b917cdf746ba548dd91b60913961042ab8d271f39e6b382f3f9c98b8464239d1e5a9f66b9efd94a94cb287e1204cae9c4a522525d8f39ae7f3cd3895a8f75c8e7dc7908574b0e59d4542d239d2b19bd660245cc5d122abd4c0dc55d24f3a922a7c8d74ac2cc9fc863b23b11f5b60700461e55573928b140de8351c99a3cb17fe03e573745f04076cded3f179042d2324e93ff2d44bda7f1f2217446e97e435d6f601a1549ec9f5e1b05cda419e518d148b66ab61b114f32073c6e39159c358dbb508c9e83eecace503882a868f174826fba24e0c8698928deadd0958191967014c2dbfe80c9bceccefc14173f05e27f13119d90f4ae9baf4a01e7606e13ceb9965eef8cd14b99d45cb8e8bc7c82dd33dab9569accfa5bef5be67de7c3f9abe22665b9ff9f7553a49e97c3f9f785e9304871e6c64fe5e014713c4e43fbccb391fdaef25ff4754c7b64b11b0468982cdf45f4cdef4546fd6b46b3b7dfed4b9a36789b99f1c51c802fb16d55f40b5aeecce8b95d49cae8c52d83b2c4fdbc7ae7c7d78f29883b24670be8b9d1f06d94cb54416c363f5b185dff601dc1a52a8a33be8a1ce7114368eaba9da3cb619d93e68b76000a2127c2fca59437defb1eacc60e7fc33e4a8e3e204806ea637a2f7d2fa8f48599dc3594c4e8345e4944cebbd33500ba5fa6c5a5b7582ad4a8e8f7c9dd283e135d1a9e51134123a868374533c4a2ecc74baa6786d914ee844e5d5f36aea51e63c369c17f7e49f7c1a74a748f74c36423726b21eb4063f1ce30ac5bbee678dbea2f6234197584646a09f0004f8cca567a263df2edf5640ec0d963379ed62f5563ccab9f47e1caab5afb6b2cccdf13e320f47a95c75f0939fdcef44c0195187eed0d7d204c38ac2fa2a81be191b17f90304d6af2ca68ef0d79c137ce9c9c3fe6a7a803360d578b795f0dbacd94c445bc30d3727939245d14a49140f8449238504ac033af4276cfd43e30c1222e62a1b308864dddbd9cc44be7f83da4d8788cc6eb3ffc3ad6e03840b749557933c21bbc0a8a490c73307a9bc714bc852caf11d67b130972c2c73d07a768adaef2dba5e83a50123d05e963db56ace9c4239461cad3000a9acba99c38e850381907e6598557b7af61af2c58dd3b2c3af08759a6b122725270e535d5690a5e2ea56b01c6c28fd224029abba2e278bb3d31fcb66653fd072b41569abb0b1d5ee331830074f1155da87bd4df6fc109670c3c58e73fac83026ef48d48f9f6070a3e59266f08a4ff16c8dcdcaa81cad628e8bea983430725f757686bd19cc73e2d483dd34d2c888fdb9580d3f67c753ea82e15368d7bbd62f28b56e4692336021d142878e0d1cf4cbf398138dbaf01f7d039b3f6f580285524729f49ac9718e9fdac0a93998b6d9cda554c7659d2c0bd57c220017f03470a078a569c94ede8b045b7e0ec4ef4515e0a78ae5e7e70e73613b6d0266d418b07180ef4042f8e2e6acacf1c1810002639d3671eb09a9504d22ecc5069f9118ce3cec8a1e9994bd2b7c3031753e59fcc29fa7cb1f29201c0957a70fdd32a1e2de3b604006a84cbbb6e59d04bb3e1149051bc2364068ade0c6ee559b2ba6e198561e9778015bcbcf421ca1fc35c488d56f226ebb6cb9a2c7f075b629c74a4272d1cc022ffb8f1fc789ab3fe1c84267db3515ca5efecc09f4b8b0a1c10b50ee573b065d9b1b1927de1542344cadfa73bb51837a94109c69191ae71997e1646d96dcc284096f96b0b829e443ceea4ac6e21e76ab673237abe000b40bebde09493b5a4e6d113fd0e060c0b45ebccd2d876314e76e8ea6271313cf8934961688e44fdf5ddde6a193cdefe4279c1f861c8914f364e4105a4903f009d5de99e871cf6088ea045b9f5e2112330537387388bddc64064e471b7de60c022556ac2657fba040bc549a706dafede4c1ce46e95bf5a132d47f9d1bd1f85c4cd5c239dd3ae973c2dfb9138092c6a8d29615c11e1520698330d0c499bc455bf1118861494ee2232b6724456386b5c84226c43c94ed39e31c863255ae2107bb77f2a7f9a012d2c08a914fa02b12aa2ee3651c0f6ee0bac12589a1b7650de2d63775c75dea4be7c1909a6534237f417d3ae872e43f1c364ffe8a55995ac934c9a784877eeae3da4b6b4878667e98f10a4462cbc9f6d043536d2094b0bafa843427d07b538a6a4620207efab69e4ac52b7196b7d52ab11199012a8c509fdf4545b277ce3b9466fc4c810d8b00465ab65965c894f7ac41b04c7dfa6a56eba043c30061d8a17c485a90990986b2a3b211d3743f1eff4cb107b69ddb584ce5fc392467ee414786ee84e48388cb488d8906ad47dc4dd6bb8c0e48cf57684bdf9d983fa161a81c030edd715a8cf41fd1a20ecd347ee820434a6969b29429fbc99ef8a0ef3e4898bc88377823929c367a6b6e98f38cbc58a08ab8f416ab8a31e83c96cce9335193f4742a0127dcebb0427cc7c8a069c97845894dea308ca39a46e1ef44f5c921a259f2a373c91eb0c8ae1782a3531c33678af2ccb557e3be9ec84dfaec7c9da54831b9b6b4aa685842323216bfd45cde24240560f034c48190ffa0722956ce350b3379b3ad370fc814293b7066591a40dca3f2c09b4c76295d5e7ea23ce20b5e0ff3dc143fb12807c80c7f76a4d5a984b8e56bd10cd23e3878d052473a64e112e83b2782a4fad19da505990f6cec8fdc3b03ad84543d128f7a337b8fefe4796b61cf006ebd065d32a47bf3eac5d96ce97dbfce5506ced45c67394d51ee5ba5df994f2434cd78542e6546b61c741d58c4199661904cf37c46fa52ac78cc9bc912304e94a3557771b30e6e74c9681230dcfb686be256fa868aef2b84b50c5f8464a7bb0b358e71b8f369308192c3deaab34e6319d07e8167d252886f3b81f637e6c845c25abf3f40ebd391139f6b7cd34f6af4439d4be428e7afa2a177f725a7a57a6cd5c119e752ca5507010250deab287320679ff25b2607df5c51efaa4d736f46c84b85d5967a10f6c194e840f1514bd12cb1b2c0240804a29ad8a520cdaedfb596508165f9cf47e85b3ce625454d72e1f77e14ec7fb49be4a69b20f4357297294715927fca946d7f477340fc304b2146c8e600e60c782bd2045e0778d7c78cba4a76b6b57a325b1128b57855922e6c34086e34ffc37c5006ff4a82083b49927f98614fa6fbd402b258b30205e91565038e454b0fc97c1b267296d392abf90848b061fe61fa2142365255b7f1e180b77ebd8fdfed36a2cd6e09180b9b7ca1f7b14fb140b6f94ecef7a131a589ef2e33e67b8f5943e8b83d9d1050c9fa745c07991ebf2ae1836a05595e31626f1aaddb62a64604db5c412f01fa975d2b96f4d8fd0f621397760299a74bab8adbd3c7527ddccc4af904d1d751dc6f7944dcefa978bac2af01668e760a6c621677b4021308cd2b59e659ef984812ac50569f9334247f760b4e977270cb16a668c17338f2caed96d9dd2a676c90827c6f43aebaf86c1da4e18918cfaf728db855710b69f376b45366a973ab8b294749a857eac552025d28def4bf0e86691311b4cab4f93ad8f7590bab3dfaa77366a7471918a64c2d5708f06a40734351221c5346eb0941b84867ee248546fb32f4478462bba6d3bd8f746c389503d321340af511f3c8c4afca4c22fc0021283a9bb016fb8e3a3e1629ac66a7633ec0ae0fb1cc1ca4691d7c054de8da10cb220baa372e3bf8a2f79307c69f6a98fe6d07bff02cc209fcc8f2facffb2e7a6a9aabae515635ff80cb81dc9d2133319f22335346298a32b6bf9f4d853f661de816d481c570af5ff0166c5028c723e86742e2d97134c937dc411c434ed242abceeac3c77286feb0b28a22ff40d9c6aea9800734e4144f4d56815e29d2e7995afb7fb32b0bccd1c6c074a2b084915ef749c89f0962880fc37ece58d0a7932adea73bea7b8052e39bc6b8f22ce5875f745d7f22497ffcca6fbf0ce63524f9268303106928c7801187cbace9618a641a445f00f034b35d71f10a54ebff6efe7c605958b74a4b506eaba884e36edf368400c960a0d120024e4ada4dfd9d52b21d25f76f38be7dcfc1fc8992f2f6c0ea1a0c83bb1142fd1e69af53d33fc94369dce8ddd2d44ac9be126fa803260fe40da8fe1108bcb3bafb6a86242908b1283aa25d9a13ce81089bdd4195bf3a2cb40b30fdb843472a712dcdc3995b69f7139702a04b3262d5fd0769bc7d46a59a667cc7a4840854d9581b953c258b2d91329e4dee6ff4023e995cf69baf2923a7a38a9118892f4efd660be6347adb727934dd9ba99e19eaaec61df4d094e2b78623fc254caed1c6d7033cba236d041b105d164939fdb52d7dd0aac82addb56bbb093d89919945a9395ec1e692614a050c5b177374936ee93ef6c228e0f28b6b92dae0aa04767295a1c4ea1ff17dde5adea4eaa7443c24f6cd9b5d1fc2a487748b60d125cd5ee69bacd8ad9f51ddec0cf7e00e1c72d3a784083cef520c09d8edf4d615a5a3b17f77851a4711b5d4feb6e1e978346eec4f027dc2b2931e301544be42beacc0c294f80b53fe60d9c08a8b9796413ff390e4e39569905513123e27d157e28ab32087a41dfa279a2bc7842f5e95d3702ff220c2c65b779bcf251f947351ff6b822a63fecdb7ec7e8e9560db57d84c11b976b04f16caff2158cc8f6c334b2b02962a034297e266011aa6a5618ad05af4ec2a6f6fef853d377bf9caca7f5dc2ec360c8df320ec1281c11d3c025708a72a5a56fbccf34467ebf2da77b21773a96ce1f0b42ca41203dab641e7837cd1913e9712ce06006f39110711c19404c263a8379124a53b5826e05d6007130a46f765767e5282c54e26ef10b7ab2a3c1faf32bcf9059ae387a7fc90239ea22fc295306aa426e3101088b337bc8b263ce9e82b65698217b922ec7d21505b04b2ac1a683c516ed9ec5c8186c1a4d38e9805b1e5c4cc32307cdb615356eb2c69aa98b9d1ae2e97ce1caf432638a050d045322cebcfdfa13b0e897251750553ac3d5f89ab10575a306412b3968176207abdfe75ab208c59c71bdb9328a70f1a7462dfbb21d67e2bd8d4a770be80c01167e96a9a6828359d62cc3519004cc8d0c31382109d15eb976b55e03022c711b8d7df464a7a789b45594a495fc7fecc9861b8060b93ad080a55952dad5c5cefbf704b7b3f1d919414e8ce9ba8e1bb4eea22abcfe91485594dece03e2887be9b73086b1d14161a525b602eb889f554b9424260b4c1cb1823a90cd2907105d9302081be470416eceadc39b294f09aa9562831d15f0f6b0e3207b7fbe4bafd82db3dabf50eb8ddb14319f3f2b70299a2a2ba6d306bc8c83b761d8b8145b303a8526cdaa49158306f97498496f7c2d6c4180da0b71fe3960f2f55ec09823582fa858af8b1f3686760629213dc00439f3c497e29728ec9263e9dfcc30f40ed6ebb2bad93198019dbe0a79170c2ebb0991b9cf48bb4ec840cf4f006b065a04384c05cbd41450819b7aa9d2fb646828c11e221430c03a71398183740377e73593e9b5a06889508ce275304395ee8f5eef4a10cf892b2b942929f956a7c87d4c24faf6cb1beeb580b7072e0cc020256bfb62417222640b0b582dc8d8a4328916303521c6d31fa5d5abad5413ffa503e7b2e915113da289780ce83b30a14621a141621a87064970df13c62fd7e5fd49c1c6cf82cd23a0d41c159324ce69741a510490f1ffb426f3307515d7651596289aa9ab64638550db31b4e1f507274f14a19ebca4a1b8bf6da8522ceb69998502f44dd2f9cc4c419a26c3adba8a7f5c2239e8fce0a9f18930f5ff1b22aa751c00960d342984a6d5e961a7542c9039936499c4e0f8e74aa1d3cc9f26c84dc841a8d7deecabb5e860ccec896a6c0cc31f4248d691b5e196d28ae6a660cdad909f4010e78ebe2b81a68c3d304c1f7a942e0cce47a07ce3a551c1cf75a89de52a9dbb44b2841945a1c02f738ca8c89a6ec6e5f1d425ef7e0b90fd7354237e404aa76781643db9091e40ea2217baf211dc8dac86fb246de09fdf6c73ba38332ed7d319765d35c4820acaea2e1915b1a7db743213f5d13aefcd74c1f032f7b5c505a094a7e22cb6eb246640c4693d5991d26f32a51024507042233d27c4720de3c43db5e3a1515254c1767506ddbcd5926480cda789b8c3ea5572a1c5ed3e9bbb07ec898e95c52188f3262b46d6091382c86ede257bc756cd2a98b0d4e0bb9859528090e80682f04e530a72ff01267831e83f452e02d01837df62e12566faf1e17ffa09d3984b47893a5b82402339c661acaddc166bf06a084b238cd2032b8c43d610cc5deec204d959035fe68c9d1b48a8e67e59672bf9a29573f80f1b16822912ecd2fb8f526b4f8ecb802739fb052fad80ad3514a188024618f4dbe40fd2586c1cceada58469c6a0b3dc87cf213a2cf7215db28c68df7f3d3833d4befaa524840b3d83f9b36111bd0b56f6d606496f0a412b312cd466f79edd30629cf7e7ac49ed4812d91e65c0e1e73742f16cf80a40fb4dd04a9d3c5d186a2d63eb00988fb0199c9dfab784e44aded4c39190716b934642adf44d13c488716daa541be64c69182abed92f30ee9b949b2a98eef9d1a357535934415e77a9266c910d601a2cbc60cf3d34a763a3192ca037a0a5f985953462679eba71d2410f784e0a5e51cd32b1f287a36a8b46762aa0dc1e2b2c30388027c3440df43ce8c9e457d60e862fc7f95465b11d72e2b1f6497abe2e558f3cff590ef7f2282a458b4a99d0efca9fe7706189cc292d3b82d39622ef74103dbef598ccd6c3c0e5382122b26f406a0b4522d9e86ca22ce628109d04fbfb079b2e9f4da555165ded19aceecfd37da031a21a64470b8b5d999ed5e7e6b824addaece40ac97d8b885e78bdc862a0dd8a91af4f568f437e1368a22bc5c17dd280e9b9e473dd41a3070fe2937fc33858e2b7b6a3b281d69643860004491198f111b31e2f7f50bdcfafedd9c7aa9de8505730df8a3c4537e4a7b7896171ab3679994388f5a1213084f2032fe196b0c92f11e6854395c7a2cde7bd389a537ad3b7763f44e38c6b678ba5283b80805560f16be3f9058e3285104f2ea55e3427a98819b27918e4ac53316efa69928c913857b5e650b74e5813100413bcac7098470bf07f67a290ab4bc21587cb7d6851cf1d6f3b0dc46e9c122bb9b56c146bc31239cb7db6918e72df789dc2b451c969d0d9fd2908b935b2f87b05c2b179a07fd6b6350c45bf87607fcb789a1e7396f6092c4334e86ccdb01431f258a498464184384317bc0a03d0aa1965dd4692a6b705e6a49213ebd1fa8254474e87047b3658d8b6bd668fb11343c828c6193bd3d400b03dd533e28960ca02350c9bd0e7af5d08ea012c20060bda89c07c9b25867823128b1eec6aa705c3a6b53a742a6e6258b219922538d03deb515b432c68aa53a168ad51237d9601f6227bb26cafd346aafd71546c21d25c6d7153101a1ee2a58ceb6d1934a84889f54d50e9a572ab09a393f5146e2d64e5af0e3b3f0e0519622b3ccf0870fc3db1f7258a763387b80685a902326e5ea9e2d00f52c6ca23d00e65f58695f8eb69887197fea4b446a66bb7481440c3acf967d125d38b5f7e23cb6782b392ecaa45cf84258eb48ee757d8c46023e8f6aa9118f4e1900be47693eda844172c45910d54d0e54318af6e58012770ce16bdcf663217f37146b424e1c0eaf5557aa4021bd13713855dcefdd89c0e1d8deff4ede51a53ec9cdae134b3776902d3ba4639e9004cb310c5502f1f3558c64444f002b96f1190b43aaa79074c159b10a291c278314dc1aa4f30c435ae412d3b095b1680d0bf50eefb73f684ababee65a35c1a9b86266407036f2edded34582fd05bdbf0ac77655174a45ebae661c8277edc7b53421b471d6e0d3e1fd5f96d966a0b900d61dcb640e0c03c25dd8d86bcd8a1e489eb387510770fe04316fcd2e365b5596878a9aaef9cc427d1099185dddf16040e0e3e416114607bf8ff279139522e0b11df48aa765482ccfe1aa93c6dad1c40786ada4e762f52e66b5397692b55642d70a98280381ad6a7e49e85e81c0bd9c6274cd431da11604b94476c329b283cc937c7b95d3c981455c2c35eac0f213528d551771d15c62de8b78e6470eeee425760165cb541d7f10b83284acaa8cb6b2b8ee18f4c60017161ccb2feb26481961c7cdd6a6175bdef7489dd10b953943279ad3a15cc9a1f850f661709f3fe802a689d843f11de801ad8f072c6f32d0a3564156909b6ac6bc06450a6023305b14c8e04afe0dffde2eae761b583e020d50dccb83f6ab5d0e19ec66d8ed39bd7c1b8ea67349e2b119d48a806972726b417d20dfb6843cc3de5ec4d43396ca125b6bfe84b50558076c86679442c8fc1394aaceeeb28521955d3ad05589034102dd8ca703cdf549aa33c6316fcb4f23217b84758a006bbfb0d91e9eaf550346bc5b1bf26e872c1711ffba34e856c09464919214c65c0c92443f30422cc58a789662a0ca49dbd0ef02424836512feedb780956e44f32d017ac5b54a23fa6b9072b38aaf827628e325cdb5dada1aa4ba8b71fff2a4c9db7b3f09d20acba079d22ad1bd0fc2ff66304405955a23edd27803607a25bad069664c20093dc993047ee72c25fff5799f5307c08b4d9f997a23354d4ca61d1574560d3e9d4cc3c0fb3529c3249479df43f2721b82dca7ddb4e4a519045503987129c9a080558065e3b93ea4f6ade47febd7277ceece46c8a8e6425173bc5a5428670a91c7ffd74c66671ca25af5783bae7299f5099d6dadbe8295c32da397897e34382eeff4ac9493b85d5e772675ae2711cc7ddba1cc703a83a8e7e254a839def50a71ae8d7e363820c59152a4d7eaf2de96383305a9d467c30d09b4b68d7dc76c7ac0a7d248c23ad9f8f43cffb336f944548238997bf70e0f001ab9af97202a32924e02e4739a8f104ae15f98c6cb02e970524929f1f91f98e86c1ba92ba0430f22ea00657e8523509981902fd77bd48b48f9c27a24d9da8bcace907d777815d9e621adc71d4cf15493d0ae098a87fca4cd3464474953aa5a2d443ed356709bb8f2faeb5a5606f9c2c92ae5fa15210e0a001b86f4b8be8c828590c086b545e76de10e741e35337b90649b3246b01b1cdb83b69c66333153b47b6d63cece3cc4f62a39d3abd53d40537fe3b02af5be9f296e93989f577933b30bc481a3373ba59323b407a9a89655e5c1fab16404e7e6f9be5a103f18450fa63157197b8d849d1cd56dbe78c48b9113209555cb1da83cdf9a38a0658700f848afa61d1f2cd41fad458d280b371129b326ddd4b6c7fe50e0a31c3057262861374a0c9a06db0bb6f8acb0c6f858bc60f8fbf13e557766de5efd37fe81e754bb6aa529532f67636d1bf1c5e79cafe45f1894911a42b0a2ca0dfad9f7c5f935e980c3c2686e2a0261ab1ad20f095d62427751e05c2ab59cccde3e03ecb76c29b281818aea553187f4dcb528f548550eaf4f03a4b3ed35cc1ccc7c4f1343dd3c15e975282cbc082084fae4f20d902589de2069a71d11f7ec42030072afc25d798b216548a1581e4bf3954edea31e2dea1e4aaa7b72a621ec8bfa997315d49f6e94638132f0f45248553d4bb3246522a1078cd4ee0628a55071f73163e7812779d413b54798aa193102df740faa2a613693b35c751288a7b9fc917445193020593a305afb97cf3915702b13c2de009f1056b7e12ab23e3cbf0d3db3db5330545276b4012aaf2413972506a7ec2a5c1edae15834e249e4469f8335c7ec5392f7f413f2569138c7634aebb6ac8cc7eaa3971b43b5a33224d61698371c654cec853d95971d785418a2c3880fd96642a8e1fe7c5b1193d94e5dbc41bbac034c17a846f4df0bce64999b8828a8446eba99c0cc30ca4aa1d10db051a9197cfb640d063510cbbe1c306deb5addddfde94de2be29f3e30ce8cca022a2f3363fc69382e6c7daa32e2ca9c7e7e297a05e83ad4d23f7f1c038cb13871917a021281633d860fe80a3da241ca409d8b34800466074b3e2cf7e5a90c737104fb8664173f8af2855b637ee16a4829c7d201eb8a5f585e80d5da3bbaf12860be12b4a09597b153872bf2cc7e69e2f92e15fdb62b27efca702cce5dc09f5040d40221e31ec81b14a2dd9c16d0a0838dea0daeb8c5546fd1a72eee85aaed669b48da4dddc8a0fa64e3c0dba3a872311fbec5bf6a12cfb340207a409e8864a2cb78d98d44268ee4013eb030da6272f0918e89c501d517872b3c1f21db0ee4b9e49d5d2716abd3e7f9a989ec89dec91b9ce8028287098d17f4bc0cbe8ce802c3aeaa52d5cf245b434fc1663f3a7a19b52a0eafb6c8c7395820da3484dfe0c2f10ca0bf604479520c7b50832ad45d4b4184acb83cbf3ae5d130ac27fe82cf824c1110479b4b5304ac16ea78a9ee24c5f97639fbb9f0c328c30d5a15b4029e13009d36fc990ecef0795ca1e3a685e12f5c20b049b95bb25a9eb3d40fb0e29667aa1734652a7d4bc01cb0754faf673f76e1fd7d052f39f8563bfb3a3e3b38b561d9d6c59067d3a0581ffd75806ba359684b8b3b9dc4405132b70937d353595ac0f05bd54398e3270f3002313d4ff42d8019583f4a9f4f15c04003e2617eb19bc614a0cb76c24fd54ef226e014e894c51edf1b49b23d06cf0230bdc867a3e791bec907b31932c463e94525ebbf26b9388014041c30193a643d897d29176833f742130e30b15a27f3f7a9a1cc18fb851c9ad3a9a4169bfa2b00e88e90db1964d94815319b822a389ed3aa30ff9981f817b4693f408846249d3f078b27de6584b421e2df89e6e5a33bb38e55edbd7dba15d4028ffb95dcc6a33271f8fda00e2584cfc401f3751d81379c4da1e082210234d19f8f971ad07338a0b55ed8f5c35073fb3f56160e4594a17fed5bf8f1d99462c2687212482efe08471fffe44280fdf06f52331e605ac8b1cdb910686d6133054dcde57a7f8bd662288992988698639aafb21587bf65a0e4e0603dbeee16c0e7e9d719c1a836260353a7711301b58495e5b57fcda9c03e2c19b090b3020dfbc22ef24fc81a051cee314aff095aff01d3abc1115486d9f4468c939e6ec32f4927791217301cbf4dd086e07b247648f84eab16082a13629e21f8b7ce0475bb2d3812667586290192f23c5f1a6d7a4e2204ae2e70feef3bbe98a290da0d8d2f3c0b1f19cf6b4b9ead4597f58d2cc9686943f63dd7d31dbd522971e3b9a34fc8ff55ea9081340fd4139467fc333e19f81a574c31cf7b5bb2d80ad6763d059549cda7f18e8fc646467ce0d7f8501fd13999b7041f2404bfc19a5c2f8fbafefa2e5487640238c1b8aabc54417efa93040b249414492e3bc8b074110650780dc16ba84fc68e089009fb4580e4815962e17979dc8cde3b04eab09fd6712a88e4ff5531c20b1e71db66254e03ea40abf2e0a6e86fc458dcdf5d237a95d5c666d803fd1b955c3b37746de90ac7ee370aa2d95485ac94083cd1e79b8c99a70e82c30cfbefa57b0617da50a0610af426e21da073d8c4530e190cab2c227abf042c7304af6a770802332a8d1215389e493b331642f9f510a5af0e1a2bb042299efb3b9def5dd7f4c259858a2baa26fbc94b31eb216b440a467773ca7568caf4fa174e6f8a6cbce905a2f8ec1dd76bfef53adbfefcd82afb58892e0636d2265141c1897a0027ce1378a3ccd94cfe6cb52327d696e25d5e004b186b57ab529cbf073932ddb2876b20961ce00b0d5c8169bb07b55cc36ec972682077b446c47c8da71b7b38f495dd7b401cb8a6fb0dc99c652948c89310d1dadac5a63dbdaf6e1fc1f75c1962e9bdee1229404041e18ef4b41491a0d75f5354d37afd7ca07c4f0e25fbbbaad1014000bfdfb1e1b58bca7dba8aac29d765529b2a8260b72a77ec8d680115210b2a5f223e75ca98ca754ff1db844b70f5dc71a19049ca15fe47331c249d9560c68f43917f2966e1fa6ed72368c6dddc816f293ec735acb5bcbc7d0ae8b894fc8006ca112f22a612ab487eaeb7cf634fc5329e645701b9656596a9692906a58943c720566e48fb2eff51c9bec5e613467deb8a4cd0871bb19da2d713d87b0e740b2961315be816219e6fd09b883329ac44713eb221e119f1aae6eacc896c3418bd03922600c282c05e72b7c6bbb20f103fbdf77b080e001cf9ad6b2e21cc60dd0048df4366190f8c2aab630bbd5b48f414823be2ce27c87d09d2baa7443c034a020d48bdc171413d96d9ddf09c1069c89d2d3e4ff451022a91b14f5c4052b24a07558b88b2c8823c736648308d497482dc6c2d191049155906788604e9553c9a34bcb4c48bebbc77212ef73cd2a803c6013b62ddc5d27b5bd3f31240a583ba8934941ff4e75eded48d1cad9b959becbdf79652ca949294014905b1049d04b6ba37a55a8f0f9ab4a966735baab3ae8dc56e97e97e304674a663e76398d6e32fa5d47a361ae00dfec96da96d685309b1df4694bafc1b12d6f9361a2e130d611d7f23acb3d1f031638770049a0b7f890391ec92050e2e0402106ec0140591202ccd80030e52caee29ad695d57cbb6a465b96004f7024b7e10841ab428aae18a2956f806970262e4c08a2274d0848b12b0b4ac54eb10450a218488308111c6424913ab32a548845c4abfd2297d6975a48b6b5d088508210544616be6b2bbbbff344fb692ca244d6766666677776766694d282ed0c29dd200fad1c5c0d42dcb81b8feee8ebaeeddcabd07bd214a91eb4e2905f271777777eafdf38509ae194bf58b212ca6bb0a1136065aaae1c94a83f9b166265f7e927a2cadd063524a2915a2afbe28a534467129cd5cbaadb65696655b70ecc430c35ad625a7fcb1a82629a594d26ecbad7e39755b6dad2cabad4ccbc1b163599795159c0088524a29dd02cb94344c76152830e7554b27505ca655c2095600ac80718229e5f4c262b2a494dd535ad3baaeabadee9632670c18d994d2a14b8f5c574bab65770760675db4a9d5d6161aa54b96756191565b3ce4ff5c4a29a5d4c75a5221e9a281a825908c22a619e8c72a484affa94cc8901cad1e4b2b3890134934065aada604fae11f342ca822839f26582462b73b678001ca119118a648410f56ae208214c1113b481998c91135e08063878404a48ea8185191e40321785c090a18442845a0200e31c790c1bde14e96bc8494178ae53033333333fba8c08387646666963c97a0722d0184170bc74ebd0107443cd821891e8e8081c80a19242104cda174da60bdeb0946259c30a59094521e7125a5964f8e0f31f467c9742246fe18f5585a413ad72ba64b499906a9c40f574a9f5cd4c5a98d7a2cadf05324046ce987890cfd3399a4ae943da527fde8e81e492c416152827bdd0f1ad12c21bb95c89c690e0e1007609860e504952bb254e169aee23614254e6eb74b49bbbbbb81dc0915239872aee6fc89c1823203a3217ca60a493c22a0830d9244a194e5892e78fa6b23ddee96ed4464934a29a51c22677a151facccd9c9c1b153e78a869a532586199e43ad0c11436b6ae588bb9514f8742d5ea45c72898394f2ab13294fdca74ffff159aa3ed3a73cf2c28a2b25cc4b29650f798394f2abfc3a270f9fce4169e7237390524a39039ffe91cd459607ca8b278ebc7032fbe68a942b6b50c355c3136354203cc114c4daac1c813e68020c1ba8980113475a5031d4c30f82b0c5d10f7ab8428a8fa06257a4a4ae16f00007395286288470ec9070252124b338e2e2041876e111172a286670a5b82eb441c184593b3938723ec7bdc0e1dd3c8e1d12aa85416d595c5c603938a0d0a20949859841851982403183114db0208829e02a0a91922ea2c8208426298872284d40120e222eb8e288890014145d510220a400862421049c1f6cc4600825242a8888c1122db8810fd4e34189d213261d2a87448748d1087eb801861e0c19a1448429757d104458918508988d943e34a1a4091bb02c7982861e8e58914518568d0a8c58c1448b2c624ae001082b8cd8a045468e11a5ffe5e05001912a86f043bda4fca1872aa628e1a18a2455872a489053f3020cbb8600a143e83d84e8eeee0c194877ab308cc6fd206408193503428690999999d9991de6c5a5c56e272dc32eabd229bd194208194296a1819a1123b3356119cf1e0cb7650f4698c1584138bf7073bbb0bbb7b08d2348def8d4d30127689dbd4d37ed39e79c3de1ec31b1ceeb8b2d860c2bd3997173e5e94d004fd2e9dcf574c009de79cff6ba992bf3db402f42089999797a77138b714fc0fddcddd9b9a5db6e40b01bc5cdcdcd93e99cd6ec9e3edaceed03413f9c5a7d753eec713786f1b8b0eb310cbb6a656955ae553aabe0231fd6fab24a775959fe6449274f6646e9a068fe2d0c8ccf39253333b39452ca2a511228684ee9cdccf1b44574545befba2b62ee0bba0e65b5ac9a6d20ab3d5276772f643c49f8e70b91231770e96f66cd21df8fc867ad01db9d47e443ed01d0e8762764b1484600fa9185f83ad8a753f76eeac8a02bb328390d58e0fac8ae3cc5acf3d8cbe93e751365026b1aa54f00f658e3344dcb74f0a5f55c5dc6de9439ac43f9a3f421a517f59f1e3b3b24e8884ea235b904f69881b8a01f43d82e61a76194cb2d86f5695692f707eb401dff3881827ed06e6676f1cafbb302cdd88bdf1d8ace2c089810b6b267c47e962bd049117307f008d75533ec07ec5b9e3fbe6df9ae24588dd446d95716d8af8deabf002ea08499990658b09bc011ae99a791a131436e7f71dd04dee82f212ea05f000dd034ddd731b8fd339d8c4cf77193db45b5a2bcfbfebdcfe388746ba7a3db61efdbf15afe9e7083852e6fb38716f7a2695d0892f070e9ba0e81ed5c93403f46c4f2c7ae8dd87372faefbaaeefeb338804fb0488937dec6e1d8e6c71a6d9d7c1a7ae56dbd1d40eb56d5f1b59df4e4edbb66da72cd33acb38fcd9775923b18ed5b5c535521bb1d7b18d6ec72ccb6c9c2208eb44a59bbafee3a1dbce38fcd7f544438658c5418450344f9459982121fc5e2dceba22330fb10e7f472bc6e8b73f22c5281dbf76ed8473401ea804916ed20b5ea98c3130788365d8ff0795e06b9cc57276bc9cf772e8a8f2f3aefc762e0a6575b5dbb91f34ca89f08d8c9c40ad0873178dc42048b10892918a74e5cfd48a848585a4181581447e8c92d494e54ac9c4aac9d6175b38b9dc85474c485c1ddb31b2f71e3b6f3ec92025f7d9fd1bee080336adebea386871def9e4ee68178b50ec357bfd10f2f0c0aedd2d00596628413a39a02723cc91d338f273e4740e0be2c8973fd8ecaf9fa1dbdbe7b1bda51d0ffb2ddfd281c03e109e582f7671b1abf0866c79c81382eb795a38102499c067efda8c4fd6c9ab838df3bdcd208fe520cf0eebcca0507788d8f85607e4c3e38725f3516a3dfd14ac6781fe601deca5a4924a8a713f8082d8932b147e80826eadd5a21776647b1dac753eecc939b78e6676a8d3c97a16ace7c19e3c697f3a9d340cb3cc2ad4b75ebe0cf69ff5f3318b53c1873df9505ad60a1886fd442963902b5fca4885addd91d4f35c9d334e7c7a038342d1fc671606c6ab152bad5f2d7b1286752250e3c8af563efc6e6ab522f783755c27befca0189d3d296f645b1848b9f0e10bb60346e766602c1e3eebecc5f700066fac2bf67be82fe4803c40a4c33a67852d0fafd5d2d2d2d2927d5fcb1da9bf71474e9c0661774476eeee5ebb5a27cb99046659b1fed669dc5a3c587e68dd5a59fe1a5431abcb8f3db1f05eb0fd9f580dd0a4fb6537e6603f9a5473b0d74b6902e53e9a74e9477129cdbd3a9ac483bde4259f5f47bf4593bcab312b96b22d81d0554e94e5366cb945328c64a4226224f6c2b29dee459138a124b31a15e5a048e8922572d23927a5d5aab5bad64297dfc2529eb253894d59aa454ebb34e5ee45a6f8690a7b7c5a42615e259f2c58900b0bd420f4d1ab2b2d2ef244eee5fae8d5edec5e35baa72e973bb12cddf84d415629a2db9eea8e3f4afc350a2c5f99858165d52425ede2539ae4620583375f0054b0c688a666034272ee1825623f9a940447d076d4b892feb70121399a4b736517b3823776f86256b72609de60aac43adec5d7d1346635a7441a7faec07e3546bd8386e642cd841ad7bb1a377e35469721bcc1d1a500a8a2c0bae10d3aa537679799e8c7a016bbef07031642e92109725990bcfd356908164443206415ab78887160150b7848a23495a6d2541a0e9aea6a46da908683a6d25444486eba948e61b5c89d73ca38e4faa59d90eb4cd84a27bcf4a75441a64b5fd26929b97bf56a29558b5a55fcacd352ba57ea5a52dc5f72f3e7d32fca2ca53bf92da539a77f7f5f91de20c6c8117e1cba31a6288d43337a0f9d83fd62ea7e4154c742990d6543d95066433674b326592ab3211bca8674c0e001ec0e2c82b08e0bace33d75c70feb3baec8c21ebc417c4de0f7cbefdf5d50bcb0db814510f620b445603108c3b34beb57af8f5617d4d6e9eafc5a5d5442db617df6fe37ec794516fb6c074bbf72278d76442216c5a68b3174acc8c6a2aea9c7af5fbc3105ecc62e2ab1839dff3d7f39d7a312b128470201d3b13737767b84406c8a4d1c9b18d0454f38e19c3ddb6ae2af36978294b439172c2e6c84cc529efa07ffeecffcfbc91327f7e6c2274f8a5c15fdfe291e5c000782ea6b28f47b47b50684e0f2cd1ea39c0bf5d6578103f5fd2917143fefd2c73c05ee7ac75637e4aba3e9573febc3bb12b61816fef5d4df3fcb32202c8b80e10816ffb462615c40bcb0765fdf19147a8c312e130bf58362c6b120a5f77b679877fd1aff92e242bc756a26f014ad2723622b2bb1f2fd2b1ca16b7f8d776a29d06ffacef53b9d9273215eafacd31d3b8b17130c1ac0325d78a1948b3d7d6cf317ea8fa18b1084871fde7cbc44e9a2815965710a7b7115e3d3ee43d9b88a514424a9f5441ac01c19e3c42f4e5123129d9cb150e4e96e86e74922f9c88dff79345a3eebcae7600e2e0271e2dbcf8b4aac7373254d166318ec690fa08f7d44bab6eefb4bcba226fd05968b341799f30382317d710a7b9053d080edd20ef2b4fcee5c8b4af3050ec283bdd040625b39f404c0df9b6880fe086304723ffadce7dd1bfb5b8c96d7383f233b13e2cdbc3bdffe76d23a97aeab7c75b4e53e9bfb791feae47df57e5e0b718c7bfde4388031fbf06ea6b2fcf0a173377e03e0c6ffe6ed87dd1bf0aefce9ade4940f75b9c8beb5fd99edef9ac5b7392e1ebeee730ed80e78e1b78410e6406c66322719ec85117e07805cf697ffd916fc3f20d9f5f2a3772dc4ee08865dd2c20e26b1fe7cd3d1064c498c3072ccbd03f694f598558fae49396763619bb9a5e0cf87a722adb562278d085332a4638c9dcc6200eb8c71e61c79f08711879f5a84cd8007d5f934fb0a73c0afdd0e7b3a3812d8f39debb0d341428b61775807e6b03cfed0fd8757af0fab57af5efd07903b8594c2a0acc7078574428f3d97d2d697b26e5b0af059b09e00a7edf4dbb69db20c669e559a03df7a8792f3e0c30cbef559d629c0c20c5a0e7d8704f8d321567ffaacd4dddd9d3dff8b0b7277e8bee303bdfa7c082b7ca020d6b1deff87d5cdd4ba027428ddfd4404060f60836afd96004b6666feebbf39d97fb23f0b73d6679e3c73b0cafd6066a04944586a10dba9feee14111111111111115c352d2925217112272575aa5a8b42fd7bdfce00b244b1d2ddd1d9bb5b7a7b7777b77777c7aaf5b453b1dddeddddddd6b6b4b4e8d81e1faef57477777777b777b49922484b29e56b80051b58786d50e10834972136a4a5b02dad633721444286a858c52c4445648d584291184162c488228f75f7a6da863621eeded36d43ecf9905acf771cf7ffef54ecbf8ee6b86e1312b319d990d4adc83624c6adc8366433b21149ad877b6cba6091a2ba50eae2e2e2d2c49e1476c6258c1e172cd465a5f9b83435ce2664239a79a86d2aad47c6e5a427ecb978b18e8b77be1301e0e30cff9fdb3cf79fed3e3e3699b0df96ba1d376fb52899190f59e63fefcec8b932ffe5dc198fea8a74481a87460d117bfcf1d2ef38be369c5092ee67781e9ba225a7d36953003fc7d5a8d8eb38ce06d76d2a1b44b685e3e2ed3ace29c7c1db71f2cabcfc17a354635453d43835326a8864c0d40c314e4dcac62a75f96d64619d15ebfcf3db088375bae7b7818575bedb86bee336157b42d88b9991e1e295514374f9c3c092715df8885acf771df7ffffcffd3ff7cf7df7cf75df7161b0c75c93e61393d4383233ffd510755cbc16665dffc5285d76b9e15e8a340e92c691e1e09561238a8d24680309dee0879a8f0da3c6e1ba608f5bb1c7340f35ae89bde76abc0d07796e38c8d371f4c2fc2723f4c235b14754f31fd7845959c7b5cb73dc46c46d43dca66a1c9713d2a6a7af03774bc11bfca9ea5fb3d1704d5686fb5c6a88ba251de57e32422f4cf79311e29a72ee57430473bf2d85badf967a495d9611aab1aa21e29a5cb07c8e64cafd6484fe7e5bcabb3108d790020802c3364f79ca53436008398a899133298a31322f55284c92dc5d3259f9d4c283b0378530284c0c557a2114268486c0ae882891db65e480b828f62217c64559b53e71c2c4ccacedb0985ca0c5855d17922256e540a0d89b73ce2cf32f866aad55d35645be11e194456e65b76dd5b49aa28ae2485594b02dd652a42fa6d48c88169796962a3eb8bcb8b8381d82258b9d71e15195185e605e5e54f4087b21068c0c18180fe25950475e68212346868cd5b502cf52bdb02266464ccccb5d9a91bdbcbcbccc9861454a3daaa27451346468d0b0c0c862e5cf5ca0c8ccc8c81459171e5901e3e5c2274e9098a19999c92e3cba3294d92cd54a91152f685cf8c4c909686ad0c01b5792ba632e3cba82c4ed2b46ae105d8ef789931d6ad4d4a8716465c8c2a315968719a3c6a6a6668504bbf0c80ad2bcf06845835fb1c9be05bf10de601b7803de80dd8525e74a53b4475f30ddef665b609fd5a851a3c67f4c14363636361c2783891e8ee3baee68a5f20b9f389104cec0ae0031601e6385c11d04377e9f3e0e506ebac0c0e9811b1fde70f9811b1f08bce15d8dceff3edf6940a526cbe5b711b20972990a1521fa7d6c486c4d2ebfdc8aa85011423261fcb0bbbb63ecd81d23c7f6eeeeee183b7677ecd8dddd1dbb3b73dadeddddddb1bbbbbbfba374777fe91dbbdb7d747b7777777777f0f34181787469e2ee39509fee3cb8539fd233ff20962e7737b76d4936aa0de90a1b6bb05caec1c21ecb6e0612786353eaee6e538237d8842d8a8d6ab3515d7e1d1d69d2fdb6ade8226d51fc624ed86f5b72596e4bd863efee3ebad403fbd9cb31dadcd8d94d493b623723de966c70041880a51547a6262619a3942de57757a6f947c1a060682aef80654b29a594f2e59c92a594524a29a39cb393b276980fa8342d1b09a9643303000101c316000018100687040291240972285b7d07148010668a46685a321148a2b11407511804210cc3300c6080010019431862cc295a050060ad57e22d488c9074d01618c367fa720f311d11c08d42f8e44381d897fb10c3139ec61b88e92240e872b03735cfae5a594066a80cb0f126eb4c070e9ebf03670e1c70ca75a3a4939da10209a97f7593941224da898c1889aae8d5328b6e25a1594c2d2bb4c417380ad068cbcd78612e094e7a4250729d77093ecddf2548c084a8a6cba7946758a557a543a9d43088522defb1de57b474b904a9a5464b7088fd628539c77ae9f03b253b90081b95cb4777f176497902a2c1faaf31095bc99a76eb51fd4a0e2f0bb50c7478bc68eb81fc67c64978884622f99cd5a78fb6e0b3cade41dd121a826788bbee11766fe4560fb5acda6db3ab31ea705e420fad04e00b46b50370c6508a8cb1074d4212991564b8852271765a981a57cba84b7960248c8a97e4b3720950e2ec6d49139d740a7181c279e4a75f27e5256e4f8b584de00ebb02f4ed2b7d49ac1fa64d9849cc87462c61e92289f83394259d80d71985c1651d18fb3a296cc9baceb4e844478e611f2fdca4ff9bf7358d26f22e382a1c6a51d2cec33332afbfabc0855c0059be1419f7eba444513b2138d868528a3e433aa255c847876d9d29f7a000fbe7662b691fb26a8c7d7241876ad33665da0c7f9ea1fd7c7074c63c93d53177001b12e19c06f4d5a6c2192d047d077642f591cca3eed435171abe0f71862ec9ee0ab07c38324e81b63446e3439193a13d474598272198eb2a4d66cc84a78f8c96ebf90ee4e183b6d3f26cb624d4d5148ba6917b4c14ef8f04bb8ebce52b6e59323e8b38130d1d7099e3426900a09aadad0db84e718abb117dcd2eb7e58190b266a84f79448d6bb5002494d349f124d0c37bf36c0d5aa03f460c3a654f9131466481d0f93cbdd1e620d73a97226abf1fe6f6056d24e2c9435c2e570169f90ad4690f2943059e0f1fb9bf9e275657225b4e18e2c58f19cb7a3c44f1a49e7d7d21e4b268197eafbfc6bec7d367bc700d644fc9f5c0eaba099cdf8f49795099249529d6e179f69b30918610e15a1a28fab3060f6a438aec13f6e152f8a55a8ae5fb1fe4f14d6d8f8f12a30b6d1fb2abd285a5f7e41afb1740d889c8657deb448e5c1516670784b40b9beabd3d87543a273e6b530462818881440ec12908b32d8e01537a1e3806eda05f919d15db9953f082c88d90c73c83741a51d54a754374dc16fc04eff8eb2423678ffe14201d80456f520e56182135ab9cbd9dfb39717065d7ecc2e320c958c6d870120ccb14b48664b2372e6a2a43741d38b6bfafce8f6fee40e230f8f5107f5d82560f14370442d74ee41bfbe57743754ca37fc17041446080a1d0f784745ca038268b3adfd3c1aaace50dbbc422d77e9d067427ba2264f34ed6720b2b79214f87562daccbbad6b878d3944ec6f910b195fa9cf78cbe72a25fdd30c0730b946e8f1301e772eb2aa3caa040df846d6ba11080b3cc4fdb229e098f37eb82a26d36ffdb390c820a4232271e30f4b0602df4dd0bafe8da2d136cbb7bf4b82c170ecc79ea3ced58fb3fa17feb040187cdb336644b2e465191ae63c9b7b92dc00d57ecdfb4a2c1a816f5523b591961aafb4c67ae7b7c1d2f9c8f56dc7b2a883bb1bc1058deea7fa1eca56a30fdf45a1d62f5cfc4d5c25bcdc2f3047c7e9f94916f16e939e61e1c5a78006bd7d036212c1b05d7c2eb4711361f04c4017765f56fe3ea32dc7168b6a9ed75fb56812060f7d866568eaecbc35795253411b30cbfc4e1531e9eb9dd7bd5e60efee34d77a5b925cd45000b7fc9dc9464ebd3e78145bf8a0512203e3933a9f3ed61d228001b55b558fdafe63c0d70567aa1ca3bec5f00bfbf1b23cdbb452775b50de96b3981fbb71a767bc251348f44031e329c94cdb20d039f75c6c565e949524de73c3268b67e1a32337aa379cf3512a66e45ca4767ab7e331d76ad4a8c03fc714212d108e207768cb46e5895451944732f41c7938f4ee01f1d1c2a46398684f4a3aedd06e163485cadae8a1c0dd313c017611210cdaf7b2c12b4a496e918cb3147cad4a1da68780fb9201b32528fded62965b1c83d56387349bffc9d8d7d6758ed1d057a625956186f3b9bac7cb7d4947f6d7950666e84d32d8c56ecd40280e8590c673491d2cd19c8b02f18ac230828d14463dd91b51ab1e9182fd8909efa05d6cfd2af1100064209b93d1576f846a8013bb8aa1c36c66f2c28d04057196bfbb7e466c4378627a15ae63f2e660eb67ec1e661697c0db911123720696e6d91512b9199f4329647f539995599545323feb41ca00d082658dd5cd82c83e0bd0fa1f8a98755f60be99df26b1a75e5746178f4e916d0fa17ad36c4df5a6c6f6900c304938f3e354ba2357bb752bc0465c96af36f6503de3aea74cb56cb2d035ee181449e1a8b83c37552c0a509a90b11416a738f1999d7900142a20361e8f49ff0f0ee31ee204855bf9d6c796abd3ba8bf880712d8c34af438c281050455f5a39e7e61ead2da9628a1660e9c842bb6dc5f3fce8c81675bcd8515021fb3499f64fb334cbd4d351968bf786c62800207b5b990fca34252565f8798df16a0802b8d6d009e36029e6d3f1971d0124b0ae34f70d5c6f9e6b6de7064c5fc234e6cc9347cdb8c1e1f48b7521efc5270c3b9a3eaf46bf9642d8dfc7e551d4e89900fd95afae90138a2513d92fe9e6ef1192ae7305ff3eeffe9eaeecdb9caa46368110f13e887935b14853d93712c864d673619d9f22b548dfb544b96dc5afaf5640ba5e966443b76c31959725864c2d78f80edbf1268bb2f16b467b3c57be67a90eb7a9b28f6160929567cc8c2895c4dc90351de8d298cf741e3650f80fbe96e7a1e3a012c36e6586b5831e833634ee8a0688cb1b53e0cd9312394bd150e63fc0b0a73e859c28a07db0b00ca921008763b2d613c8f842e254842cf532dc8eeaf5e1f8bcf219c8e001b0b9db2a17224182edd991ea179999a0b8465422c50c2bb346ba46230d17a1d42cdc3b531c15717b142ab0c52056a27dec9ea26f2348a13373030615ec220b9fcdb7886623f4372585d950a928be2815a856cf20cc64245b9b2f18c86bcca9f8d0febefb6cb20b9cc306f4cbb6c719ffeeb7088904a7ade5bc24f57462e86ef919e72ed5cb576c57d77ca9297f3b9d1ccd96d6857c6510351157aba0d805957035512687fe6a941fa452ebcebba91e5da147cfaad7756e19568a65726181a30f2ea0a52734a4266f39a768d34a3c94c22af1ad1de03834718554e82077a58a3f06aba20ad3caba2c040e12be3f6d38c97af4a3deffb7c3c7a588a9118e2c68c27338eaeb02b7c380e0feea6e9b7d4ac4fb73a875329033475de584688c38ac5e08cea9b360f05322abdcd34630f67c43db48be54a90b02fc32dfdefc00c82ae198ab014c79784defa01a0555ef7492573c6e8f56fb7c4a89019158fea30107789751a2c3f74cd89b2471ebee0c041b30b63ed683195e953f017c34d4557164fbb9a4b1718784d27889b8f7f125b8ee03e7214574ead4e56ce942b0cbace4501668c60de775512692f2dd378d90e75d84fb8ab9b62ac422e55fd5d55aad7706afc3c7eb4e7378e30bb5ace63bd4757a5fbecbcd6b1af1a79962e7f8c030d4dab44d62a79c32a80955b28441f302dc10a0d1f646245752751aba1c1da62edc81291b595b5792a508a6e7350b9071f48cea47c8e1dfb790f573270d61a5f85fed5e00cd495d0ad8948ae330fb1d5d9afbdc2ac0b22733f4481a86583bad6e82cc0c5844a167f2044ab2a346d2dbaf248430be850c6e65afd9bd2e19abe53e6f15741aa8081f33102808afaeb519378b92c1093d8948c1ef64e517b25bc9ecb9ddcd1b988945b37d6040cea2a947db3ab81ce163116738c51b9d05fb14ba241d439558fc6acb5d2436d6df336a18612da93a9ac11682357c817b3eddbe77d25ce6cf502c74292f7a98589448e46389dba0492be54d9a3728d4ef9d1a02db50771b67c2dcc2a02375cb217e29a46c4e9c831c3d045e5162d70519d764636fa757a963d9c4a3164fd3feba3c2bd190ddc1bebb3918db481d74a68c4ab7f0916279d4311b36e1280bc8ffdc98e588f0cb749d0263e3f75a9a61893c58ccfc78086174f6411a8d5f3d6050a8305cb21371843f1ce52be977f27fccb62ac5c7c389e63c132cf6d09ef7379e5fef21f75dba8b178c0e62b333e226c21f33c0d47fa9f64ff6b8f60341c21940f6a3e47659ee7df8a15a306b31df76d94cea2ee4c4c876e7206fa807c632741d04e6ef37b0be7c4207051f0017b9add527f6b392ffd540fe0f983c2548cdd329d195e3917877dec0f7d2a0582124b6677f7d4e6ab55184a7a4630eb7072a9c156db6b3fcdf2d3e1e5cd7b68d643516710f617edecf79346001227f9e5797646a958a24069a38b93de2f2177c66f69691ea880f09a37d3bee02e9b14c167127e1394f05ada8cea99edb3a0681f1ba609bccfbb7d42d30e99fa6a028a20afd8ecf08d375f5f98c04917353521e4f79e0aaf338aad27d82ed22446ab7d4c46d5bed93b866a8c26c3dfcc0dd8d86ec17d5d69520c99191f2aace131b7f888471f951f77486284989edbc2b51252e3170a3d37db82141e6fdd16eebe6caeaa4e4cffb9e4cabb11c6162ca42d3e53ef36e5cf7fae9cce4637c8c9d718bbbdb4cea91b0aa05c02ba9af4a8f710770cde228ebb61fcf0743c3294b9ce6dbf80b561c09687827c4c19e55508ccb649d9bf1412ee8e0243e9f37832a0dda59f31c27b68fe513ca773131d048ea74df70989134001e4140c3c07e491fa29ee91093488fe2109bbc1a231a1e9438e1aa493447bc08f787f5da9c498a1d5d54000448083f38dc3acb01df25a77e7d35151a2b252ba1dba9c6ccdd50f6483c705ca5691b18dfdb2e7d86fcc564aef70e05c0698d52e3b43c9b609b39440889676f014146e26761e0cb259fd0618a9dbc20deabee0f828500f74138892a2b1e541b0b0164ba73d59156fed937653377c8a2d67a44cc2571a1d4a52e6b8b94bbdc417e14c1049a151a6321355763157e55fe50e2477c5a6c980e605aaffa366dcea95a650aba0b916df96b96e76c1d3a86a08e4208fa54fbce16a0e5b7f921be97cc9b4b47dd7cef999325efe243f90dcb80c2406fa9f260a1b4a505a8394396ec60acac13928016608fa5239e60291533ca76a0b05dc0c319416641d5215f004e418946a1ad982eb20f1dbc115d9459e997f6e17cd355b270ad6d4bb82c59955e1413d73709c44accc8b49125fc5832930f22842dd0d43d5b0e4c804ff9f978cc98406dadc8e440c5bf44930cc8454bbc6efe3315f27fc6b1b7d1cd5f429c866587d2306185182b71fb3306199ceeac1ba363320eb1c8b8caaf3eb8714d682056382d209116a964e08ed40330b47f9e052ba52e471213a586acaf66520c6d26da9e8c89866df2dd1f7486d12ff9bce4a96e4c3f5070c56865d83cb4a33d303353243af73aec32a6de1d875e59ad1e65bff6a125e3d7ddda5a8b2054f8feb3b0750b08e9fbe9da44c24ec6ab2e174122a466dd7f73de1da0f2a1031dd6a1074c5b46fbcf1237f49fd8520058a3751390d0edb927692c661c54159abe61f702b5d1826c1fefa2b97dafed2026e706a9553ff8659cf6588b6cacaf21c4ef3ef7d50d961d8d23b03a4214e3d1e3284d03a86390bf793727a93cc7077b187550d2e5666c2ca11bef5f1f16b3a4008dea130a09c3db5ca4427aae7be4ed90de708d20f4832a6a0379f451b03cec4f55f1ccffbdb5667ffa3e2b65c1f9267e5bec3fb3e41f6aedc546a55cfb8eed29fde55275693ba83dd8b2dba4752497028da0c3bd1c7c085b34668e852207f9480d080b55805b1561a0879289fa6989590379c6ce72b416dd22aed33cf9e81322d70a78167ebb93a916b8857332e4125614e10ae8e7df6cc25a87f9c5b0339dcfe7b09495d8d60f120ebeeb7551f5dc177aeb1096b4b68370b03c63db1b5c91f64ca9f615ada535f2d4b9e8512d881551be98207bbb2617216aef3d94a68027b5668dd5acfdbf0390b902cc16bc62a599bbd6b86dca3b0bf0502d51fd008d3efb3a9aeb6ee7de5d7a8f4fef86df7ae497aa23aa02361694b4ebf38e95be71185814806f7fdf3cbd28e581600c63510562732d87cf0da35954d62a68e4de47706b59f43862423849bd22097856930321682db0ddaac1924a94ba97861edb5955c7b65ba59f0c758f4c0403b1cb88445e3f0e8b3e2a13f760ced77838642182bb150c3ec118acc76868d84a888ddbe517758cfe37fa0dc5b2a1bae27174b14fb4fa83b2eafd82bf23ffecda940cd91219c944d18e28aa5471b5cd6f543708f4c03f969f9f887c3677bbafe3fec7e30a5cbaa5865c158d29cfb52d2737e30d1d19d2c43745ea6a9ac7d5cc3eda5efb821f4ce1ff44e6fc4661125cc079b55b799b0c4a8f1583b7a3c481cf496a35f2e72210beddf9356d0ffe74ac90b0b12e571d4a9d07b88a0dc8ba44f9f697abd4fbdeab1c11b78b31c9145fb70b3724054b1208469113983cf46d75c4b560b9782416bf0743ab76dd47885512915df674b70ee1f1c21d64e3ca1d7aad6bc59297ab7d5cab82bf6744ea40e5d140df6d21ac6902b5173732461c4db2fe5d99ecd6444972f12c102d53d1a1be67edb55ae9c573530d1409c9b050bec1b1d502bd13b65a6d0cd3cccfb50843464026cd49e83ae4e4015564c12e90d86ddd05d60f196010964227d1eb198f6606043ff4c4739c234070fd8f699db789a12d3901f2bce6b82ab3313617916bf9c5f2abb3d79243636f329f4d4e63ae4fab94c88b799b0a21881024bcf514400d0a17f0118c2ab7a48a2e015deb7da4a8ff113f00a5d2368ccc990ed309a69b9c9a791fe41f6a93c9988e55009ebe846d7040b92b85262fa0e0a740c42323441bc0c19e28cd79e3527adf2eb82e3f5ebcba79dae2e5bcae07e67684c36f42ff9aa1419e7cf64539b045d1f6e0d3f6c30ff74a212ed4acbd9160406c936eaae439178338cfc26ba0bf35fe5555680d6be43b72d58bc1d9cb4c64044e8102012e812671a5f9e66f5b926f7e9657ded2e45f6b54a4fbac06207ba2e79073e83293842c1852603075db3dcf4ee041aa13799a7b0990eabf21136b136af91b415748bad6d9a888c95d4224df3b6a873626dea6ce0ffe27e647534aefb3fee8b7d918224848bbf90f092b1b182dc41fe842788fb0f6b813fef4cf488d7f6d827b9637c6cbe591ba75684abb7d0e682bac1e4ef784c65fb91c4af2b0bf66973dd1a911981d2da1eec8d231ce8239d07a6fbac46300b54c4b88902d9e0f232b61589fa0db4088ebfbb082d9a49f5f87359fb73163e741c38f25657789e19a8cc918b7b6d4ea50f3ae20f49144b7e2f8f4cb838043236ac287959baf5a01e6e6ffd99f60201a789464bc5cac592a7974532b09f1e72efbe06072e1c3cba70f9b561cde68af3935b6d425f6a93d500cad6314cb64b169acf4a724c55aef28f29353f40007f9842363c4d65819e7b202e7c0dba885ef25117afc207edabfc7aeda6be68a32f49c9f71245cfeb7809cbd0a914b909a7b5df2b228a4d57a276a7497e7c314e2aee2e0e0a5b266ed1bd910b32207670b1e0899e4e9551b15f8163328f4460aa86adfb3c2772189d7dc0b55ed9cafa7627e72d30335595595a53a9b28e07688601b70202c9c32bc858aa60feafdcbc286327923aad16706336119acc9e04a0e2f6116d47ab53f27bb586371d4b3de2e42c9b7fa44222f2e96e74ac80b33da58b83ff6056359a47cb8c43a9d36aa206144433c1da6bdc9922b748a8e1ef84d9ed5fd0b012d6360780fbe35bf5437ea5cf3f2dd160fbd19d9d05227130be78c6c6125af1acbc1525ac9ef1986465381aebce76f2c9cb648609a70645ca5ce8e2749a69a531de522593491de9084ad0c0c7dca81ef6093f01d521ccb09e0d1a6f9307b84c0b7b044c9cc321b704b63051903231f4e08330aa2af6d1077335399a2df62d990bb900d61963c40d63d191d965eb81fc670b69d55bcb344356b381beb117ff73b04d8e12491bb58708f639dd43ee4f20ba99162a121f17ac0a63aa35931c218963d1a81e45321edb19a8825ac2b400ef9a9c4df6eea899a87d89d5ce4e10899ace91759a9cb0983ac3912e993a58b9bf38082c29f67df45a1201e88b0d9acd02e25730d94a19cc6667f8f212a841fcac55926e7693dba72eab7a4d29699f296394cbdcfd75c0db68f9bf11109b27ea429242f1dbe37211cc9c584b373e2c69e138e992a4f909d7747a2d316cde80866852057b837a9c786d5ac39d5200f940d3cae255703e14585ee22e924372a45c54069088a9415708bd48be392551373406ede200b9855602417842299ec8626251ac413b84e9af21e3d3287d5fb678526bc55e03638c2adc366ab4b1959c834a9009f08e61a916ce9bae1f1d0a9b1bd49710e990085228d912118bd31cade9f7eb447185d32562e3ba4ee16f6eefc5a212a84e441dace1fb9a1d255d8718a262b5c45253c10c86c0c526346083bf66cfb62fcb7149302650146a4dd3d72c2592bcdc7409319c67b855187305faed77556822b279a1de88424f9729fd04208a3ab09b5822f75be62d2d5e34453a59f3307e7eff7a2bfcfcb5a9fbeae06da20acf12cec3c96009113515744371c30ce04aa8586728fd5080a1f91f82004ab344a831feeb76f2ed1c827c0a6cccb1c4ca68755adb50c2abcf6de962e911b7f8319261c1465c435af8043266142ffca32be28c1c3852b7094b507e00087698fe7b21eab4136ad74930819ef208f74b22cb4caf0754c412d427373c381f97e017d394521559ed34bd09c312ce75dee13c105f99b1ca4a5f7920e43100639071c555fb6d1d03348a804c812584a0b141369a4a1c9b93ea758025227fd6de006b74f869faa8684121e28efa4ac9d289ff0c0f6cfb81c06dfbc8a40b5202b94a557f9bc07cd0af2c0c4b158e1c956ba94674404ca7d545c070120be1dcda576a76fd73c92233fe6fd10fc96c30640912f5f987af8df15ada502395a04afe2d577874b1bee2be7aa056fa25d9a6c16f6116f1713848c022da3020695fba0d8a016014b2599da1a6d9c592c44266c0942daff216ffce4da0b0d79fa21f5d22268355e79f1b774d0e2a3d5dcb0ec45fbd957d2735e031244c6dff9633f69ae42ca264c69ed6c5d05b2996b8a6319c460ba75183328e69d9be358b2bfd27ea30c040945162aadf523f066654d768d03d9a3d187ecb47b63544159e21b205305d36764a9972eb28e8d22c42afc7613f8da71d3d8f7fc543e3358f3fd59d5a98455b8190efd13ea7feb00c1615fb5bb87f81726388bffa6f01277f387714c11aacc38268bfb51465463120da2869af5d89b9232292525a09e2b21b2352d4d7b2e85a8cbc6dcfebc2f69082f8bf55382abbbe76288926e2ad14df92918c6df6241a9d20b043870d5bd4a916552f5dab7a16d59645c90f43ee8e3b6274ed3a3cc84b80506fc61ab0ed6d8df74210ebce1106847872f0bbc6603a499d2686b0623d9f16ec23bb0fb193e239397a6090041d2b4c8e13ca6c3109e82b1736649a635e11d7846817682fb4f22466a8f797ea4d7d59c4f0dd07295c2dc6ef28e9125724f25c9b68c33175f22b620414204325c16ce69e26047e0efa34e97878d9f947ab8850ebb260d9fd22e3c95675d045e3137f9b84614df67c8c751965ab73a98aa1cc3f64dc0ffd1cfd842be826c6b9cad8ab70dcbf1165fb14a97534501a1b46d450c2366d0539f9014356ef5f45c89518d79140eababae6aeee9142ef16ee69538b585da72a2e3b73bdebd5feb1a4e7c58e423a6071231a586f399d91d28b249081a7b5ebf18f5ace42572fd3c1cd039b25d4616914ce8a28541b469aad9421d1b168d6ed235f99f8109cddd04a09d8e704efe777e9cf0cf601b87e31166f504b45b3527750d5d557f91500bc128d145e5f756bf80e38812f4080a9d0207bf1ff5401144c9e4772b5b49eabcf968b36da4a4419759902f57135e940a24126aa974106c4a0b934ecf5e5a7c5709f0b893b77a57450fe9d15257c21954b3a558fcdffa1cee39739180b8383bee348413f1b89ac6c6b3e2d76f58c304329e77665f14068e22a7a9fce4c8786cabf475f18978fe89fd1d66af2f6e1a9007526f8be6a595efd2fbbba2fdb889fb56075f0b88d148d70db6a0c0f1baa506248d2e3a40b8f89fab5ba2219ec959bb922fa0efa94039fbe65acb906bfdba9fb893268cb39419e15ff42560c88c32fb27afb82e909f754f94ad2644630c2c5ed360d7595d0c6be78c288a55a1addc51855186cea24a05cb584917907d40f81a1f7da5c3cf4b82e05d258ea7220ab87a00b0b408c965055d4202a22c6dc5ab9abef2f1571d2986971b36201ab22c64b1a15ac1a369eae324bc7d7b0590c84460e8c99eadcee8761e938cdd15f44d3c897baa71801957f8ced000663e9b4f2fd4f4903649e44474cfbf6b279c9a2341982e692c960aa959a59f5025751e8bb51a848e673339865aacad33bf8514bed0a0be5cf4c16396f8aaf73cfc8907755078927f2e0a284820b58a75a74aa5541801d4d7e98be45cd5f1877b907e8e416a7f65d65bd34d73d7544d90a3a79e692b55079999763b05454594dc95a5842141bf05d5c057db30905c52fb64bb120c9cfb7fe822b7b83a30f82894f6cd4c3cd34e44f357c5006ebe1d610354916afb463922c3cc5346997e5ad520a1ea9226368b3e60fd200504650fdb9b15874985da4924b433cb17b12a4c20836f9755c3dc393142aea1f4fda8c75f1c58bd6446ab04bcdffeb0f05ced4799298f17a076a47a85ca9c785330cf28b149fff20c3413e4cf9078a3b10e4377f73297950ad0b2d4a625720759cd34330500ab3ec25c3f975b654813a1e6e38d03369f7efe54e10c47da153b25742e4581e918ef2e93fd34f24883292ca07281e3a932e1060fb15fbacf96ffc48d66139d05cbefc8d7301e23ffddfd8cb6766958a20d6b216ee82f68cedcb22d0b617fa439eedbf759c82b992daea6c0d6a78022edeec31ecaaec54ff026cf92b101da426e28172ab0644a9c46168e39b495a283b3a541417539336d2d074625ffb15d15c23f49760e42c6c2a6ca1c21c30f11484540c652cce5680dd4ef3ee93c53cdfbfe417b76844c275535db154412acd2a5d0abaf9b25296c2cd4279fb0ec8548efd7028a98eeb7f6a7418078cd9afe9b1fbe17d1826452a85039da738a5db48edacea6c36ae610e4b745a95aa73860517cb1274d806e1ed5625ee8d326bc39fdc2451ccc4c0cf8b0634f2cb14aecb6c0dcab90173f7beab8f8668c1e7f2a7705e06abaec7db4da5d72a2923bea5d5526c665424180baa1016760b9bad96868130169deec22d32c51231f0b66c281aaf2cb34dd59bb2eb3b51bbabe3bceae10ef355eba7ce8cbb8b56409ac6d2d4072eca2ad6657c6852d33279215e1a2ccaa4f8f634506331548e6fb3b991cee775998b0e3d3853b8619ee8980d5d50386496643c3d614e442f2091e7f3934a677d2196df1483d5191a8453f744ef5877da253b941310c683e8602f345dad4ecba7ecc4bef5767970daacee6b66ac3899652a06ae57092f088a321ae5badcca44ff396daeed9fc970e39efe94d63619ae6fa7b68e5d0f93970bd79212defd68fae5e2adfa708f854f612ddaa7a42497520f98dcc87f2cf9c170eb31b9364b913d179afd179d0597206da47685b12e786688e54561fd277eac617d834eae16134849cc32668bd40a6b4fa00396b4f2ede3411b8959b80f23409544054833ed89d452c69bf0daef89a7426f39c0d6a80972857e2d6631071c84a1839726b0a2adf70053b5b983b198df80e276a0c31bed7a18a0464b16803bcb3e8f6049051d85e00698e2129c6e054a920d5995f177bc8682822c5c6c5937091cc777bbd7c00f92d7b48186feb4aa98682cb1c1168825435e291058278b448508d83dda13ce457ca1c18435209323b583045ac8a14418d9a087997e2e3bb4fb7b359f5286bb8a82b1d09f70c487ec264578923a296b706ac07be8c69c818a61d09b4e9b2ed007d31b07b3593f18c2f3c0aad693ba0144c931886a158323202dd3e71c338de1d3e59997c38d14961126d89ed47a365555768e7c52377fb28a6eba6238916ee6426c8a0ae45f3bce1ac31c0ede2df9268f810d7f3a32476bc29cda02b956492154377dd518c6f6923f28c291e94d4b05d1a0580312304e334381531910d5ea2d43dabc25537b5eb22a035fb0a5b2a8c206dd5f6c3014876b0ae020ecc0bc5619ea3be1cefd9f8a48ac83c3aaa0d5d653f6a595a7e46e1077d66b5cbcacc0e6478ae45d52fbb789488548fd5765d2846a7192ea44ef18984bb51cc3d259e2466f233143e2fc7438dee0cec335baecb48a27cae2faf563ec916c104e4f91b1e3698243b018d488c03440c5afbb11ccfbbcde69255b1d22a5747f7381582c85bd8b1984c3e3a168bbdb006fe932608e3d1376ca91b83c3b459d6cce21a00df1e2dc0915d646d126c62ba73692410597ce7f55b5528359651341da6e2bb131fc7d47db25d6d9018f91b68ae78ac5b1679be1d7436c44b06e82c3fec5597561fcb6a6ca973721b3d53c97531cf7a9187a1e7d9ad59c5c0e6d6c0c2a385c8c128e6b5ac687a21dbc8a3f55222e42a23338b74c8e6742a41740d3ed03d9105a2154bcd2ff03765dd415d7f62488ca9ab404d725163342513a28b7bc61414f24f2161ea5d7fbd4e1044cf851e7be06204087050b091ed929f297e3300d9c9b1a814ad09d29a821bc200fa4eebdd9bcc612d3292a8f25f3238bf8d45548862cef0a9bc67b3ed66d57d863236556f8820912a2876eef4ce14f9820b15f483dd2f6ae84d1157689d595c4a8f4e50fe8f67bde96c883a18ae1db7b286c31152562ea3aeeb22174c02700113f45a8cc1735895d874a0e76efff5d34a438029d0255f688c7428cdade56551ff4ca8efcba1fb2676fe4c6e0e287410ed6d4635555cad86ae105853126f0e3d495f92cdbc3141544043ba84dabd15722e2d04eac6241b266ca85b3444267fa66610411adeaa7fd56fad0d3ceea7a298ace68403da6a1ab61d3c0685ef166a9e62b5514c6526878c658a61f698d0c1d946a5e65821c88a83d766429e9cdb047666402d3677e6fa97f73f6517117a5486c9b4af513f5518c5102d1788ebda5f633c9c25e03f8b8be4a467aa01323484b943c7d7514de897ed1f5dd50f15126770cb7391195c169e0b894a6d20434efc156bf47c960b5e6c98958d652c750544917ca267e6aa8053d59bd4ad4f67d3a43422487af7167417df5fdad4bdc4a402a578d6c312cb764058943d61f6974fd1a26bbd065945315c6e3182ce46299e98275a83c4695a7d7299b88fd83e955778f191b8effb07f2e76d3158f90f861e5b5a905ed24016b97d9e2dcbe00d0bdffb3313742617118bf9cf17984b678bddd424cfd013a7bce3e5b053d9a1c116bc5ac676f74f5eca3b90aa7978a08ad597355711da3c2f420a5f41aae5348b333edcef839bb1ae9b5094a5b6100ebc2bc545893bd349a5ddef8a5b0213d8d404d60566258c12432c91eead6a170e5db7ace243d4bd76146663ca25d2da14b354786d53141632f8a87e4d82a548114f33d22fad6e4cb01a93907be340121811311915be7d5a1881a3aa2653723958eb4b55922d911dcf326786930fbef34a94b1f733ae9a9c5c06414f4eee7a56b70a04ddff415fa822bec935c2ea80d2b77f5c2a965d419419319109ac0ab648c173e125f6267ae0c3feb1d990681f96608f0ad0d577f1545f1ec2c717af7e713e2be3a32dc90a72daa26b694cab11c6e16d5c4931e4151a3824d2234947b6bffc448b448c062f9eef4f9c66b124c3f09b5be2dccdf4801ad9f4b5f2a938f98fd80acb505e969177315b891de3f33342d2e6d70d2d4d8e731c55442402cef765f939a4390589ca78033d55155fd7c22f236b27e78314c1dc7dacd066b95bf3adc356f01c502e6d85fd1492401de4c39f6d4b8b4960caebfaa03a38d279f323640db90a7b586ed8142aef8d445bb969804ae0614d337156daab5fc8a0aa9463cc7bc3b92eadd019d9280a7cf83c07c31b198d5455468e28d240d59eaac047723fffb6a89a3954104d0070217991bfe50e90112adaebcb8d350d81b706199aa03bfa398194d560e086a251823d195c14f3b50e9fcb8477d2396589c36eed86a86ffd3f4d06eb39fe1e141ad4c224e47f597bf7d8dd98dfb96034c23b14a232c8850691bb296fa29aa84b20cfd8c2ded247e3146179d4ff6e47c92f40d221aa743aff00682b0b520512fe0f5a4be5ea2b7ffe0031503e16da0fec3fdb4236d1190586c5630bc5be27d1e88aff3d695ac0ed165908bacddac51fdc557c7a9ec6b665e2062e2d163c2498f35768f119f0b7c9bcf7f6fd6c4cf5d56cb4e172f6cedbc82512a83218e6f316396684ec917f729d11893af6423259205de94e9dce0b0b5b59c6f1e64b674ecb1e2e5c0e29a4b4b4d4fa56de2d3ba1cef81af7c1e9bd556ff6794be3e42f4d1d3888b45a75e643ef718515bb4ad2d9fcbc1fad05bd0f735a689c0e7dbd16c271f05bb1a5a9982c2cfaf7d129727f69aac68133727289017df2385fa597d83621ff76b9ad9239a91ac530374532e8140ecaa28d015f707eafaae4e81321359f210c34f44cfd2df6036d89bf14da85a7215398d8507e5c3bf7706872ec1e839e33d378b648a09f75109b2e88e870b6e4ed83585f1c97f4720547dc1f8b8133c02253f40a425dd6c568312c3bb4170c6acbfd14bfda2466106c7440cc08302949696508f440cd86a923e2e876589be4f63a3afc1a9d475fa5abdb57e8cfa518a16d2535207cf67fe2b1b04d9d3565ebb39c84085dcc97d7906088c4257a538385fa302100e1cf1f85a4c8f56395fd4f175ba64632c5ff7d28cfc10240deb3b07201e3664fe5210006ec49b280416ef6b94dd533a7407a55f26d0b053cfc5e9e694f81cae83840a80860977899f985008962aa2bcfe84787a10625002202a2027c64db909cb392e2a615258168492372ca94aa855d4dc515d391c22e0a87efe4101c226c5c9405cb7a1a479de0574814687a1c469389228d100faa00087e13c291d685a1579cfa3374e86a0d810d1baf3bb16a4b0e2405801ed0ee8350e2d0a0dd4f4778815ad526e5a3f4efbd2afe653421cdf18a1fbf79b6a0675d79751437118e0da802cddcccb6fdb7b2fff9b21156a610e5d1d14388a78a538f3b018b1fe3fd89e5984a5f5362c8bb6c02b51ff8dcc00781c2d5bf560381cd5d83ff035bd61b355446a0e4179a2f6008c8b65a33d7a20bce2a0267cc938c60d1fec6ccba2b95ed777c7bee53b722ef3ada36d8d11bb8223ba92ac2f27ae8bfe46d6e8680fabd5c48f1c8c8669cb357fa46d46474b6360ca146917405bde830da988058a1df7408ce8d28d076614c90c558ee8ccb6e351ef74e3e17c22b313c2cde8d3288a4a00799d7ac3847ba3cd229a640c0e3978da77897b336470eb3cada38e80aa93d340c74953847c9f35768af552c3c22dff1e864fb269580a60a70fab37e523b7968a374d8713a38be44510e04d15b36bc40882be0078460c739a5560e65a579d1f94048cae5a2f035af2254277ad00624bf97694780ada0a1adabdfafc28d0fe240989a09c8f8688d5d10849f7c6af783d4a5cde6025c84e0f14c20bca28833e64fa21ee6f45ff62ccf65805e6441cace68cdaa82f469b2ced24bf1432675f425d518ae3635fc3fc9196903505730ac292d4f7e9a90ae1c03cbbdd2e36a802c6cde6f7b1b27de3067c62909366d115f823b8aaad79e28ca698011234debe0ad4ddb1122b0d8bc2caed863a9c703231077f6a075b6ad5e16b12e288d4e9e21a6b30c4931de4d7ee4d0e95bc5026ad0e4f4051c1f2e34939ce75e0b5d07549d1dce81fdb667d8f047a3ce8c4a434a5d4a672a4746008c183f5ee3aaa64a1a65aa01ed35ec6d0eb889a784a9319d74e2c7ba54e16c75c48eebb59a24830bf48040fb68fe11200d77fdfaac812dcd727a6a7e659d391d80f90c280dbae307ae45b22b17cf65e435f446205fbffb4436341c31639df3dba3558abbcd6f4835ae78b57e9ce19793fb3e12121d7fc0e194b028035fdd4200e58bdafbf5545aa894ff0a245b3bb049ec11d94753f1134543f8ebe606055bf5e9ca2782731c1fd54a0f1eb6a0a433b71c49a3339dd111fe919845b1e45aafe5a0faed0d74eade58b8a65d407a2809059437fa1fbbe9eee7e2c5e7f231e45a5c8e4e55d0d410347d7e7ef4675ff99ef1a9c84cc09639eace9efbeefb74af26b60762b22b93c2a16afe11a94e9a014aeafe5cd751e4fd94ac54055b8782cd888826cc6747e6dd96b7d798d632bb4c2c5281bebb1678664ae68fc2c5ccf174646e06d75e8649b8516504507b929e212082f94b629e121618bc282d404e0009b9cbf7de405bd782abd324dacd00579bbd8c32b09a6769728f3d1c4b7cde566b692c866d52b77874b47245d82a8dc05179e5218b6389c4839ec793b94613626424302d63b8f99ca1f06f55e0508c2aa9b569b10dd7fd62e76e5a9097e83f0471cc675a2014aab6aa215f71c7388a006df59cd8e4c0b39eeca1fa24a07e093c7c4e65001f16603e5af18fd0b9b521b266929c944ec6b1bdf941537092e106bc6e850351aff0f22791a992ab030756c01a7b2f52457de1b264aec09184751466d3ba2b94e9c595d1029e29ab92b7cddcc33e2a4ec20462dbf20a3f1b371bcdc1af4b5dfcab6bf6c1c949b07d0468c6498b90e430a2260fd74f555d438d81dc598ee75413ec8e9e2535dcd6a0cd5231c770d37315289c72a91483ff0f98d2d61469ea8b097012a60673e35ab5a6feb3923d09af9cae32f2f67e2bc23b6f71b1f1223e67d3e4946c87aedff57cbeae60cb91b6bf23cfd8a89a87d8a16c3f07249343b37154d46f18b9c6b60bdb9fb4412fc6cccd1501b9c383afdfe026f82dc6fbcf02e347e185ba8fa3c1c6d0972dfda78473b13aca8249793f53c81c8fe26e2a1aae36ff91ddfcf53c7623b05c153b0ea9c14e181574aadd85f6abded44be7278bc2b0a68bcc2fd4a651ae7a1c30c29debdadb5de900d2dc29da0b6244de3dc349c0fb0654e19777fdb55873103b3e5c946f7c436bdc8a017e619a9e21e1ccc72f7eb5127f9ba7a5687b55607954dee23ee259687b6663bd0f132bd441c4bd26137e3e33d7dca975952a048562a5bb0c8190ab76d958d06deb21b4c5999fb61a0a4e51bd207bb614ca2ac2e477a94ceeabe1e4a10ed32693c8424df0be2e0cb21d39a0b033009a7228dc9ea8c276319d0c26576eae55685a568938d8b2e0813776e4f27c3330ed7ea6bdc05696896b7751d184188cce23bc81658b931129b8dea07cb5b6fe61eaff55ea0e74bad4cafab59f0e2a3bbb846af121a8115e8fd07d1a89ca79cd16c0afb187caf95f031ab52b9ae6f134df82b9a12e6a56564be32c6e2b142c55680b3ce2fbf706e2146da10da3f3bce35a76648c53a1efa57351219f85fc1aeb699642a1dda7c8299c1390f900bea96860114c6afd86581600996ec7608f2177fa482e12bace20f55afa5d287e20aabf1f1b8d0702f6052dd04e95412a50cc2933d7143f4ef82c51d1ff3a2007b6b244addc04c0e2ce1c6b1d87aeb034f564d9b2ebe7fc854b91d43985e8068aecdf9626f0c694d3c2253696f9f5e5e97a7092cc7e9b7724cf56f37fd50cb53fbc97638d1758df6260ed3b4af3257dce701aab5878919dab7fedb1f8428752b98c9fe54a638e6a8a3f4843778cd1d6a31150acf8008be4538c3bc898bdfa8366fe2ca89b6da0369a743373fe594761d26fa7c4340a62abb078ef003b677ebc47e3edd2a23f9bb01e6d2385ced5ff7cc8eace89753f46194990f2fd67ed9264b9b47d6a55d9d1410a7c545e2d8b71bc603c518f651fc4d9b0841ae121b8c2e2d524502ca871a580b390590cace7e960a6c6c9f4ba40b6cc4095dcdc0f3669acc434d29203fd7f41785aeeade4c54b47f8d6b3a8823c474acba1822dee9b05fd066906b9a658bfa4e2a622a44ccc4b8a89717ebd7ba051a21a28f030fca8c5cd3a3f63e19d64d5d5ff4ea6dcd292b86147e82484ebc4797ec0b2e3713dceed49426e26acd69c1e1fd8774117084362fe62a2cd8fdc75968cd8925076a8492f60dd0742297bbf9681f226ba2c8646eb6990fd2b0359ce7430b44d29d1929199d9f7833d074810122a4707cf7c91190dbd09138404426e885bebcf45afc9ca60a26d40b3a153744dc481e2377f781b488f4f1d531a6cf697173542f665a8ad2de11aed010cfb525151107a439aef1390dfaf40202d1171682063058b8bb5c9e85f64a785e071ae1cf42092f60e54f671bfe8af0954ce571966933bbc32fc87cc56de6ff0b6c70c39f7af0f9ac2a52bcdd4470c779d72528dabc4a4c2bc7fcb946ba425939fa29953b5005952ba55097c180a847cedc14a53a25db41cbacda1c0fe1e0d70a4f7e04d588763a767303d3be04fafae1fe9eeb3f99ab1daebb77fe93bdda8b7b7be73bd95b7f3857eecd80c6ddcd041feb43e41e2bf2ca6b0862771e5d4ef86364182f1efddaba9186796a14ff66785f14dfbbe9488393eb8e629a1076ab7356365c684198509e2d691cb7944cc0c8fb97ffc9d48d37244ba31da496c4766010dcfec41a70d22d6bfdd7e09c5bf892ff8a14a10db4335c594d64f9dd72bfd030a45fe9e84167e4f333a79092fc23102836f8c5ddac793e49aa51ec91d20593af8835a97fda454c08b380dcc926930f00b2fb956ea57a1aa12b7633eab8bcb0c93d45093866ec055c3e3ed2c4e58b0f720f565d16603b7c259841f22561669b2922cb93449a22f4881112ee0ce3bed9d70bbec54597bac149f4fe05c50a816042a48eb0abba8a2aa5e21ea6d3f8fa83ac88d12c367b87c275b9aad2d742012306078719694f3b790ac6552e2d6fcf6232b71fe382dd5a0d122989fe15c21dc8e60be137549e73396ec5c44c76698dfa4a8bc9ed5d2924f2bdd2371a76a9c8b4d5947a29c4a0e8064fa5c58390a9c394ef2f0430bd0de6a1d74211f87be9745ad41f12a253b49553869901332b021822d79100bd2568147f9bfadcaa4330dff77bf49c44aacbcc86f4a61780249eeb553a5584e3d2421f2ded016731b92bc1b2b8466b1dc59db4dede0103fa8facfbd7388aff1040209661998d5da19bfe7a78afe55ef4090f07ff147e8943e97d8e6b2d6becb718457fa5a15f9b8e7d81e03fd64c56a6709b743dfb7400d7ec0280e3a4202f01815c58f6551269cf7c1620b2d96210d3cd9b03332a8b17f59b64ce3bc9e29bff52441e912dc053adec5a3c9665eb2606da20446b1af700656e376b59e39aa9cefc98ede342dd2174ead0f63b80961110690f1053185e241697ccdedb45f925696e76e7416f6be4dd189afd1da722e83d9388bd68e6041c5d046a702fac5a305a59493ad530bd479c9141af9bb41d18dc69c9f41ec0fcd49b63124a5e86e0dc42aa3a9ca80f7e410e8349326e4709800500de3616252b36849983b884b13d6b66ec418ae8eca5c3ae6c626b5b238d104208d964efbde5de01eb0a640a810adb3f6abdbb406aadf54814c9152351dafe4d79bbc30da7eba4c44894a4c44a2c70dd08865dd7b1ec462eec46ae7337926937c265df2c0d635d37f16ccf62d8514a35183829019324b92f9f95e4ad4684cecac36b52745fcc1f8ccc3564280f8390187e4572344226e9dce67396b52663dfd2eb636a30467c5f4d8aee8391e733fbb63c62fc49a2e2a5fc759956cc13e9d4173391f6a235d18a24f6c01a31c33e41107dfb4cde8fd6bba36fb196a5b5f5d22c2d8615467b124f0c352d4255346508e30e8f54c19bd823f117238eabf660aacbbe3deeb4b7e211817c7abc59af5c48ccf5f2d6673d6e96b89920b5e95096beb8d3ad046b1ea9c2701c9232f3d6761d0a357439ff722131d30e253f5bfeb9c8ddcdf751b70a9df515bf8eba153077f97cf774ca07cc290bd4e73314ea2e87b95fcca8a35030c35cd4e1b603f5b2e2a2ee90985f70e4696f267991298e485c2ecb10acd17922d96c2ab56499dd74bfae14913e17d9e20912f3cafda650ce9e493074d64d3bfd7864352f71dc69afefe9a7db74bc271c57a6cbbd993099b413745ff3c49d4ec14ed22ac8f3950b5df3441b31be6bbae1749846d7315e565185121f7d21515e1ff5f15989bed66a29e5b6abf574731ec6a1f8a455d827343a2a32fa62518492e7af66826eb637af95a09b7005a14cf2224725d86d9ac2a07bf646d2a9af5f3fadcfb708600dd98fb3beefd723c61e12a34f7bf3f59e204f251a92566918b68cecc7b9ea54cc387145bb62bc197661131c315fd8c218f3fb01abe4b65b107d09e48b56d541677d00f1213114eadb9f2d545a2216892d56b53e2b7555e87cd00b39eae67c8435aec379c11e96fd6e9dde2131c72a596976eaeb7f568bb447f787c42c0f613c22c738446623e22190f8af48a68f97e24ff6984814f9fa0da32970841ec4c4cf495970f864b2bcaaafc85272b22451f2127f3f6a6c64414769e461c19f8bfc3dafe093edf0e7027fa82c6572e491d6c620898231e4b7224b06e4c9023d9411a5dbb1fce0aed61db15dab09d1eeb4334289e18f489ed3aa9131d6d4e48967b4a6983b7367eec418639c704e6b9dce39597432fc63d15f8fb730a492d2d36d07c5134f4bb71d33d3dbc879e17c47f1fcac814c924932a965133a1b6f238fa494401148022520c2981c0f8f98d9a2b7d7deba6571a494794a588178274eac5c5082b99382390f33db044818011246308fd45a6156279cd3ba56670b07f98a314ba759f86fdec2f0474d86ef2bd618a43a785dd785bfabeff7cb5e57a570dad84c6459f6c9a40c8b3ad84594d618a35514fbf0874c8233004a8290929d4f0b9320a4039e4cd3291dec34ea9e076366869c9f8f4ebc223c23185242117e5c1084234cc9ddedb5e7c1780b547753a027f7595039a0c009e2bc2d5051749f07a3bb4ec12828c09363a529c8320863fc411ac172224b82b5428115a48c534a29a59452ca39a5ec18fb05dd039851d0e451f743cbf0303221e7843a86e4f8b6e161b9561b6d64afafb7600dee55081d578ecb421915cb6e8532eab3aad1ed87064476bf07e4f84120c74f891e9d3f257674ce7226616c8ec314c6a838e886278c5121f46a3e7efc8f213a84b8aaad5573809623ee7f4a486545410663203c6cef96055a57c77af491aad2e321f7128e3bf208a9e270f4917107a76caa8b3bedc523ed25a18bab1da4a0e8139f884c3e9a2176644d7ca265a20f09ea7527a451adc59146c551a7bd18590065e263b0b2418e910739461f18234ad1c51c9d4e511b14cd73f4b1a8e843145da09291890cf190c9a394e19c184829c30f56913ff9a6d1832c5625d621fc9c364a08e184f7474cee0e35afbce8c492741f24f28e40f2a8c494ec5c521c3fe0c158e0bdc002f9ebe6b4966ac1239a74d204fc88c90d330f6f866899792d07dde7d1785265a14c7c9453c64318235e26c6683f48248454794d44e45589ade894b645168425d02b5096419d4ae2659a95e492f668d6bdf4882455d6e96312ac613a7d1403ac713a7da422a6a40f97e13805c6a09c76ba710a1883c62318836a8fd687b8b0760b17b919e252463b676f7d08bb7222f62b78088c88cd6ecdd9e94631489f4845a6a7b10c99d27cba89499ae665da6119d41e7d094b2009a4498131e8733cdaf051388a64ad81827004530079eb08e85ff6d86d9ae336ecc2d4c7a31b7b616a128c410f6f2ca4cd7242e7c114c01efb4f3d1179fb8a87c04ea48f3da38de4ca2430063d76e351ef48197a8b949ba79bc15e7bf45f0c4137fbf45248daa08e33c3387177e9a94afea3d8c2beec2215997c4c7bcf5ade93d87bc3dbf4ecdc0d2483cf741632184345f7d948d4c10cd1878798087cbfc8cde7e568638c37ddd440f7cdcccc18750f0e63208f98678b0ba18c3ec4e90a8c212929a9870efea00c50727c172f9dd851c59bf8b1fcf04496d70511842039a2233cc859140215595e68849cf59327595e1b39939a1415c8f2ba90620559de1ba420caf2da200518b2fc4096f72567f6892c2f0032141ac211b2bc3ae40cc33821221cc9f2deaaa20c3939be48c7ce4006afa3f3011f73f207df38608250058472cc894ce4a86a9c3a5fef109d73330f8144a44c25fe96c8b208024a37b0c6570fb303cb1503294125e499fc158137e6e4796f74f1710372205d9618124108c258f2f143c8c75b8fd6fa89088c85830c11df95b803e9301122dd4d8f2f7223f1cf8780a8051a0421e746023008b021850c765045154a722c5ec25ebe485ec1f8c7ea6426d0d94899bebc4248991929d3efee2d14c2b148caf4b1043a7873dd16b9b1b7c88d76ec62b7ae5d1e325b39f6172642a48820068037400c006fae1c0b91ae9eb8da78b09e2fae3a66cb5a784804d2597bbcb1b72043c463980811ec188e4052a61f0d006f74e275228e41dc053a7813e18d76e3506e9c98e30ddc70600e8a445df1178f72ce94dcf88b463730a66b11b9848cd57a12713e5496a759e27f2c313d022a51a8185131a25244a588896e6646fe1e53750a16308217b2511b610423e87eb7c281ee4a5b4e21a9b5ca26b6188288044480065418c212a028bab0032c6ce08ff160bc891ec4c07bccaf4b60ce39dfe589caf007554451c5922be40360c10716f802188aaa5809d9501944679c19d200e441131a44c96da3e386d00d1b9bebc6cc142c28755f1603dd581574d8dc106208218890dddd9fa1992205a96ad341a6e840e6327432854efe662c2e187514415841a7914d5f51fc809e688896d45a629296d01095035478810bbe2005289e504110a6c8fd2e8a2515685a93b6d10d1d4aae293483a66557ea0466f54c774bc9011944c8dd5d69d790bb85701285064ab38d74ac4af1028ab03142c8680a52701285ce4a0d8e32349ab204275460a80888a8c50a194ec1888f0c9890842453468099900110b8c0046180b2a40ab97f6f86c62608390a15720d13304085109c90c00b7ec02225a7a8780119aad8d9c0159e7411b250eef21432a4828a27305006163491e4480ad946100ba224810a1764a1095a84c2092db0000aaba3a12814d180514e0cbc6044258a126eda68c6052df740090a2d1843128640852a3c00857ba073f0840cc1700111e0c00665a0022905f302dd9565d02ab28a800004206449b0d8ad1359122684766aa818bb5bfe9072f240e068f2e8603e89261de56eda160ababed424133979b29c3c9387c64b0aad787a7c80828472767a7c80828486888e90927276563c40414243444546393b2b9e1e1fa423a322221ad8c919b9a28956918f8f8f8f8f8fcf119d44d1486f86a6c887a66bfb345090d010110f0f0f0f0f0f8f8f8f8f8f8f8fcf1110a97b7c243d42e2e1e1e1e1e1e189463e3e3e3e3e3e3e473c3e30486888a8281af1f0f0f0f0f0f0442323a36814813a3086f5273af9b6dea28bb1b08f0e68457f2e40a2c87620d7b18fd2bdf6e0f6afaff5171717179717ec177e0543076f9f95bad459e9d6fb7eb39fdd4676495b617996a1def2f2cae230875971d357cee2190c110980b91fcd302db010f9e5c2acc03c6232cb5950f82b02945f7c00b9feb9bcbcbcbcbc1c8922f90523c1bd3184dee78281f437bfd25d2e5f5c6ef692f6960b2456f1f6e457bc0ce37bc1e11f5647024ce40d0f5991b16bd8af3b8158c5cd0f9422cb13216564bc9958082923a5544915a5d048075146e08dcc53293167a47b59a28bb4c46270599fd9ec7aebaf6b3fb15ff55d71c453db29cbfaf5f8eb1a75dd1119e5da45a9fdc32750080e5579593367303eb92125a51bcab2d26a4b4ad9a65ba673f61b936cdfcf56c0b4514da3624fb51aa8e68b49d8d68245f37e7199118b162bae5d4c5ef8b591e96ba319f96ba3af8da0900d8c7f312d54b18765064dfe6252bdcbac8f3db5a55c3d1637e6f0d7532cee93e3500752caa86334f96ba313fe249215f8933d2dd8843f5477b865bbe9dff60e85dad182bff8b2f5301dc56970eba1bdbfdd98b3161a7663b6a8d2ad5b6f98eb2db66ee9baf09117952c9fb8ac92ebab64d22dc9f54dc8236d147bdaa8a7a70aea18b6385291db48cad4db884951467d774b7662b930b7944e75ae32484a20e92349f04911d8ae679262955ccfc248d6c7a4d8d9985d6274fc582d298a557a9af4d1112028326922296d38166aeb617a764dabe176462266db92a4695416700a5138b15ce648d95997d7a06d55daabef1b93ac9f4e4ad28a92886a7df275935c997cbd24d7fafe81362094517a7dacd2aa235aa6be96fe350cba733fe1253912541347905a27d71f715dda7747b27848cc17fede7fa1a5bae64cdc0bcdbaa85fdcb12b73c5a45c910140c3aeccb05328ce64a77551df50e7509b95d19a43fd43b5bc6fe516b7ada53116d7746dd0525dbd0ddb8e1759487bda57acc3cc06cd5e96eceafc9c565a50d6212af334ed62df2ebca19c65af3e2ae6dac393d432d576a85bde2757dced3feb574c5ac1e18f436d3deca5d546edd5df85be1475a5bf8482ee6ba34d1e4829cb636f299d9a5522c955f6c824b91ed6afc09fb5dd0bfe50285a7bbc9e181d3f564b8a62959e267d7404088a4c9a48608dced85da6509617c2182d729337fd93ef1e6466966d87c44362def0c7c968afaf2ca739e7edb5edb53c26a17012b66efa67bdfbcab6c3c24362b6b19c724635d8aa366a99fa4f3362416ad14931397007e6cf7e35500836d194d0b5dcf44e6e31c9ccd77a62bd56848e5ebec6a45c2394b15edf46b046bf7ec50a138497f5861932731f482937b62d6dc56d87cbbb7497c32d87cbfb25aef4928b7621c762a2a9814228273530ca3764e8a4064bb2dc72b4bcc4b9bcdf2ed8470bb61112b32946e90a01c1846fccb0198244f47ddba8532dafb7366be51467e2703bdde9d96e395caedd6e39b4bffc05b56ddc3b6c3b9052def0af6f5b0fd3393c246614fefa2dd7b61ef61b1e123386bf86e1a1f9b02e24fa68c147b4572fa42186547a773f28865c4b58487b75c6768fe8570ec3aed1d3b696d2de9499d694d7570d4ae7a37f3dc8acc7b61d8d8744ecc63c25953c96643ad761cc4daaebc71bfb06c69cc8048c79c268812ca308a20f941c75dacb494207f13793a1511152d5c9cc985ab4374fffe5c839257004c6b486826ec3c214d006ac21df8749fdf5d19194b2251b6948e8be3eea2bc01a43ba3e8a36ac25b96990fb1a944efefa277730f9ebd6d623bbdc786497bf8d05d85ec8dd636889348806d1a00bbb39628e3da5bdeea32374f4dffca6516e8add2042ba7c3d3b0b0d26650d7ff3bad99261c5b0366c61cf2c2b3b76693550c8baacb7f5b63eeddb62cd08dd278f8eb244e2423eea94858fe41489046bf0b0f0bc85ed9154c5ae7545ed91d906344dab52a56115fb0405c514598323b90f5996c8b252aab3b304dba3919266c70b293218237f39238332ba5961a5dd75b9877ace4308e7fdc192219cd30a2c4e6262621ad546481923a40ad5751ef4a4ca7a5f875459b8011717acc5ddb3d21e544a20b0b0b058452cc088228a3211213409286201d902da8b2cb9d67afb1a518412ed452275eb5b9a7517d03291feba119cb5b23d85368e8832e22df68325736f9c715a141dc71d116d100165c4c3228844a46562dd70b69206815c6d0eac214466fbed2a21d459223c3a379e3046bf724258f6abff0181ac9dbb1f912acc40044ff20f2255988108a4c8558913e9546fdd42a43644e68a87c09aad4166616c2ec3538821302cc49cb9c2bc007b1696ae9bb2958032f1300906f9f39256b14895d718724411e5c485cf68a066a0e7c6fec63a7cd7a7b9c2348ef97ad7c4eb5aa841963ba1d75e7f4232ad95d28e81991358d4540e814a4aa59c924a6a5139e7948f57524ae59453ce5b4a25a5525229a59c544a2a4f29a5945239a93c9592522aa9a4925229b7532aa594f2544eee36d2e4434a49299594524a29a5944a29a59452527a29a5a4537eca39e7f419c2a6e386d3c247d64003d9909a7dc0f6a20721aa059c7047a61516a1e11272e3ce61f31bb1bbfb49ad2e6acc076023aa45bca117f69c2d82ab021a138c04180964900cd270208334261a0e30125887315f5cc125abdc5aaa33dd6e424c00a22ebb9dd23b2cc1d0c59d4e751677b27f3127f3ba1332730b8ed2ad8fd2b9f7a34edc91f70825be997d641732b3e5d1f2d2336b4da71b4ecb2db62fddd81db6f765371d06013002d6e14b2da89b2e4c867a79b6693a7127678a51cc8f221610e14d29cbde75ddcca56757c8cc269696c9be5d9cec59c6e1af48e64c5dd7f2cef4ec99293399745c4e81dfb8e09feed9d4e4666ae9ce52c23ebaaf7046baee2c9888672cb80a74dd612e1deb3a3c7102da3b5d22ba8f482ebd4b5997611a5dd66558c8cc1d86e1c10d99b98439bcd500bb12ed5d21ed7586617b611ded5d1b237437f5e688224a8f89b5b8a2535bb5ecee6e0be7ecd831c8225195b485c434a3f72d6e75a3a09094d182bacf5a946dd40caa51728ad5110d8a23abd5cece0e4f134df0f0ac562b272bd071b2821d272bd871b2821c272bc841d27dd6ae64162855f6fa0f5994e94594bda1dc14de9073438e4c951b72ba9b0e69abb9238d84904505e81b5954042debe8e80809e99b3b7665fbc61e755fcc0a6e06e81b59246524feda481a211569a0b38ca4aa6f3a069d2c92aabe696d25bd90d1cfae53aded684798e4e49e2942cab490ac448ef8a3b73f5851c9b04a863fd0001572563def06dd47e319a1dbbe1101632b62d31eb57b7d3bd2de8eba6575c6e40c22411a9aa67100cacb34f65aab68a095dda0ebcb0d749246fb818a38b5733a27f74eee883b47cb394248cb340cba7eb7cc913a1676d560a73823dd8623a5ecc71ab37f92dbb278711cb74569dd88b596751b6fc4b2aeddc8853bed7a56b16b4e1a332db043af7577778f20839d5af51b7fa56d76afaa55bb696b20ca9875f69128a35fe59c5dfb19daeeee19e567cbd8dd3d538d4f9dfcd0fa084f63d89ed4a20c296307b2ab0bdd373323678cdd506809198cc926a4d4aa47024659a1ad19066f6538ef0c6d4981504a294682d3662d954a1c9cf646aecbda5f46acfd76235876231b76ad6658bda2b4515a185e56fcd392ca0a65476ae7169f4569b1a08f39cad37b29a35503426286e111934d379d7bf411ea7c2eac6ab7de5b262553fcc5e4fa202953bbae2bbb321be86419193a095a922d6fe61eeadd4d93a1666d06618d1a6fe65e47c4ebd550d0c5a2a121a2a066d244f2409909248d6af2278d8e52a51a4f8802b421a34419b0c6f5e9721609219440526688e5c29b282d24254a9ef4b5dedaf1226bedcd967f3546d6761d0af57b7d64d4534c1a1145d2481a5dd2629e3e3aeaa33eea29d6a26c0b3aa5bd2979787a49ee994f744f923ce7e4993d924acb2a79ce39af41a1cba87ccd853c7b8abd7dd41e115266dedaae43a1a0cdd022a19b4fe4f993e7678e3757794e3a2fc30053a79a4f8e01f2e0d244b20a79b69428a3f479c9236d87faac67faf54b8b7d24552de4c915405d9eb33b519e6b0245e4e4e4e448550b4d18bbe75b4ab42187a28c792979be7ba654596984f10bfeaccdd85d69697976eb5dee76c933146d3492a22339948b8e52dd3cb6ed78911390ea662ddd5efaeeda67f77464e76c99d57a4a6f6f554a2d2ccba8454f3125dbebd58cd045530dee735e4a2126c95680aab823a70053d6674c1265ccc79e2a78c2b0da020df4ea5b6ecdbd0189805e3dcb4d0094a9efee02a057bf7295805e7d2c922a237440997aa422580f331c03bd2a537fba28e8556f0749b411a18cfa59e74eb5900461bd5ab5522cab81421583360d73ee22113376d385b1b74079499e4168b64fc41ff8e43f40e5204f1ae46974a51418435201cacca9030032fc0b79ca2c04d10ee488ccfd33fdf4ec24a7184929724a9ef6d4890d9ac838ec967209bb5cd20605bb1a1076337904bbd81176af26d8b5dd835dab0a766b117669092b613f30ad96f23591c018d6b34cbb5c1297b5bb41d9b27635202d6b379347b2ac5dec08cbdabd9a5c59bbb67bac2a56d66e2da24bb43be30ac6b0b42b33fca143625b8ece188e8131acd7982b0bcec8e9a7dbce3299369caebb343afb92e9f32c4ab75b0efb937d7d694aa9c664b8ed30dd84617674367d0803be22a61cb6bedede4f1a0589c93526679876bab03d13fea4119646edcd4fd1d55ff3d2a853522ace2ecd669b7661c670dba6a94101451b1b943163c63a5fdbf501c90e7b7a6be3614fede9e516843d0612731df22151240b7929d36717ce6a6ffdba1fcd8c206891b5ee07a390e76902e28e5425a1911b0aea49d744b5823cfbdaa473a2b4b9c434921745c04e066328a514834de8bf1676d3604e7527d829693229b92650aa226e385aee722313d3c53175d2647a69b98b75cb9275daf6acd3b20b4d379e4e2b5aa9fb89842d39999d3ed278ce64ea366d335d985d70441f214e896a5f306cef45096a93e44e5cc91064faac25332135099276d336994ddbe396a365961297debd246fba319b6ec42ecc5c5c5eb45487facbb6e345de9eeab26bd66428cd7471e42d144a9aceddc82447f4893e526584943913af09cdf5af064318438b1283da06d074c52058833b3d842bb2112d9767c1b03d164c6f6332fd059b6ef107894c77c1a697f007a190e94bdc853086c9c2a56777b933735b0feba697201a145d6e64226423a4ea9e4031e966d1b04b9fd1745b9094b139b97732a5d1885e4fe8fa4a344ff7276c2fe966d2f4d3a809fbf5182376a1e9c61533f7385daec871facab36832994ca6b7fc6432ad60181e2b7efa09af68b9a89d161cdcade9c6ec723b5bfad34e5a6b71acb8e9f266a67b32e1d3238b8bcb8b757171f9cab5ad87f5173c246616fc99ce3ddb7ab4dc057f26181e2e2d7741bde5c69d1626504494e8e181493073d1bec8f2625f725939b6f5b06ef190985ff027cffdda7ab0acb06c395ab00feef63eba0b8999e52bf774961b87daa3dfbe72bfc8834cb793f6c8a43bca2816d1a09611be506e4a994fc3ae9098ad46cab08696f1820cc67cb527d3ebf2c29a64b40748cc36474867594bcd5e487ba8b456761d9d1aa414053dd1469fd229996621d3fa8f0acd0be4086eeb715d7edb785c9775597b9a02a8b25086deba20533a033843a6700a49c953a5b43d878e9a08b547af39a193939ef634add2a95b1464e6249a512559d6483d9976126d3164243a1ba953f04da55349b006eda1f4b2f89b11cab015c32e5b6b0f5784266a902497b48ec141a65d42173f4824849c912814acd13fa87043aeffacfa8f7637947125f4ecad545950c6bedeb3af3567fbafb35e8e5743411761e4fa6efc459f2449e8726a8d811e0c98b2deb9df979675f8eea120803cfad6936cbdf2e8db1244c9f6b569d346cdcc7417644a3ca33d0ad4019901f2199dea7b4599de227440b832a587f0d321d319aac1544cf529b47a5899d520ac01b396a3b501512477631f9547df9e6e3beaede506244e1ff24262eec32932d82920f3b13f3ff1905824461b40d9fae9afa689ba85369695ee64492129d372d26ad90bcbb48d2b75a6d30a4b8bcb0b6a050b981633d0a0b9b85aaadbf1225f255f395d8d4a7b2dc73e3ad6aded88cf507c82e118310bd359309cddad673568f2cecc72352a485a958de7e296abe97430bb684841663e9d4ea7979f4ea7d3c9c54fa7d3e97409e5743a9d2e4fa7d3e9743a9d4e27d44fa7d3e9743a9d4e27eca7d3e974ea9f4ea7d3e9fae9743a9d4ea7d329fe54fae9743a9d4ea7d3a9e527fad3e9743a9d4ea7eea793fce92f369cd369458b171a60565cd030430b9815a713b7c274326d2c9056bc984e5d135e4eb3847a319d2687d595b55d1892e934abd6843e65d769d6c69a10bb8b962c52b56d6313ba993f69d462ad6da9402b5843b28e561d573baf484b2d983b9d4e996efdeb76b275246b5c97acb35877b9d6b3184d5e99592e9c3dad9272fac809246750de3e9174aaf4edb24aaba6d5e98ee46f369137986f9745ad9ad668bb84d229ecdbe592564dcb241335217a92b7cbed72d5aa6979baedf248a7a6b48ad2a642bb0a953a797b1f75eafaf61e6a15b5445d51dede4d3a55bfbd93b48ada27ba4dfbf6ce6915b5ddf6b83d466955b552ba29796bf9f618d4aa0a2465acdb6eab1649267a226f8fdbe3aa53dc513bdb8f6855454901a255d6ea878e4e0561390a8866a637af5516504ca782dce5dbe7761b369c6daea42a5b4919dbadb2f509348126d09c44528561139bd89c48528561139bd844ca16d00a6805b4ca16666dd7adac5322a9ba90a48c756bbbceba88a48c756bbb0e295b1710d00a6805b4cad62b90545d2b2963ddda1510109154592424222422cb12115524a28ab4922a0b04b4025a01adb26557965d0165eba5ab51214242a12ccb7a29c164ab120bbc02856d0d5cfea4d1dd4a78b348db86842195ae3689b655b6888888b2f5671710aab4597781556c5527b6dab0d5c456d93a0d9786542bd28694adcf60235125baac16200de90282a9f99346d70a5fab6b75adb275164ce868fea49145b2d622712c4a39b2b493ad520ed124aa444d745770545ac6e2aa640b85c2524a7bd63f4ba53d8bbb9d2dd0b440d50235104b86b28eecca7ae6727a69d19e7596f6ac77ed59dc2d0e7f9a4b67960b7326addb0e73978b22b14665486a48db0a8572d970c4ac212da1abc790302a9dd230a46c3d5b496bbb2e5bb551a73e8ee8eba674cababc9da5944e458e8883d229edd6b9289de26eb1642fb496db67b91c94f6acafdc8e8b92ad4ba12e09c52175d6336fc339611a37d24d07bc9e01409b9deadbdd52768d00a09cecacf8a43deb25eb8de258b64ecb220d3af90e32ad0b07995943cad6bf6cd539bb418b5b0301d690982b028c411437af3143071fdea226953acd0c55cd002e8d19335ae850e35c10cee339263808e5d084c6108e27344433a0d828ca11a5c648256587a34e7d3abe634aa73e1e9e913af5ddb80d15183076dc88448f725c6c07c78d3e38d7081b9bdfb8f11cc303ce7780a1aa89b10163c68cd3c4d0b0f11c6a8ec30edf9282a892c3e3b91c1c1ecfe9f0f0786e873ba2e3f1dc8ac6e3b926763c9ee3e190fcf078ae87e6f15c121e8fe77c3af5b1704f74eacbc10175eac3f1fc786e49a7be16d188165d493cf9c2f6f271e03810392e6c2fc779d0d0fc871d2d685cd81e8debb83c5cd81e0fc7e1c2f670780e17b697c3b7a04e7d3a1ebf31e9d4b7e3f19b50a7be1f1ebf35e9d4c7e3f1db50a7be3e108fdf9e74eadb1ec4e337a24e7da513e0f11b941e8fdf8a3af5716779fc16c5e5f19b51a73e19473d7e93d2a96fe62b1e3f25d7593c7e9bd2a90fe6423c7e43ead4a7c4be008fdfa874eaa350a2bc00370a712394f6e2612e7d7223517bf12bee45e55e48edc5bbdc6b4a7bf12cf7ea716313edc513e0067181b891c70f77c705a2bd781d57477b3cf0806122f3e62465b4a31e4f8f3ae5f2789a24619e037f2c38f08762711cfcc5dcc09fe703fe66e48f0e79bfc11fcdcc2d45692f5ec62d09e096a0dc12d12d3d692fbe744b43a526ed091149558c47188f2f8ff19d23552b0fc033fe5037dc067fde7bc01fcd7524550078fc852455363cbe783cb62355353c1ee3912afc98d3e00fa5c29f97ba8ea4ea8f8f2ba972f148c3e3a38f8c4134f00cbc3300bc43a37abc109d4a9dc68cc71bd1a999fe009e03fe5872380ef843e1701ef0d742c677c05f4c0dfe3c1bf88351037f334ad7017f342df057933f38945be0af486e7199abf3a3438cabf39303c6d5f9b9f172757e7c08c0d5f9b169b93a3f3ddc70757e6a566e8dff77711bb0cecf07c4f783e5a1b9d80104fe82380f9c44f703fe78b8f821c70e1d2e560800001c9c84b5810036f4b0810610367436dc00c2050d020471205cf0f80f3809eb0288d469b8a0d1037f34f047e30470818db8b8ce4f10f85362c38100000f1bfe831118d7f949e14f898ba768b8388defc0dfa1e3398e639f83e6aaef3836722500780e1c00fc468cebfcd0e04fc94fa3fa55a78186cf40430cd6f9f9747c386c0e6d061c1df8dbf11c38890e07fe72cc80c3079c1b33acfcf022c7e4dbc4d8c4f0384e0c0e3a62ba181b1d160e3fecb88e19721c074ec2cea02387e330030e3cf08703fe70f80f4666b8cecf0efc2989b98e1739628ee305361280ebfce4803f25333c071cf087c371300d3837ee030dd9d2e0c30c1a0680bf011c87066c8406252fee437e719b97ebfcccc09f121a3e6300d9b14c629d9fefc677637dd0b07c037f38f70127d1dde0cf07eca6876c8393b05670d4b083dce135b20687ccf12c39d9c99a1b160e9cdfc07cf80d4ec2623704700ecb813f0e7fdc7160d808769d1f1cfc2991bf51c34d0dd8c80dd7f91100fe94601700873fee1967d9e63d643bd8ac8799df64329e71125a369229a9e13dec50c36b5aaef333833f25d96764e0ef327edd5e9d9f24aceb629d9fcfe6e3c1f6a0ed50739d1f1bfce5f78093e878c05f0f96071b3538096be506639d9fafe635ee57e33a5c1d6eae0fdfe17636b7bb3ad858dd4dbe8dede13ce024acce8f0d0fa577d607fc75f8eb7e63c45ee727e34fc9bd0deee19e078c8dc85ce7a7843f25f6a50e7fdd77c0495859090f3bd4d8ace4aa711d701256e7c7860ed7f9e1e1dabe034e42cb46aeebfcd4e04f09be8d951af83ae024ba8c8dac5ce7a7f1a7e47ae38f4695a231630039e0302343005c8c7b3a8ceb3d00d7fb0dd7bbccf570e9e8e2db70ef5f5cfc987b5fc3c5b844742f2e154999f8dfeb2eae3d0df7fa0c172e09498b4b2d2e96bb5b97c04410a8e4d2b584b0c30419e4ed4a113031a485dcb76280074854c8302f67d1f2152b475d252f9848bc39dde52a69c144fae67496ab6405139137275c32923250287729a8bdc8fdb3ce95f057244e9cd276bfc7d9566a703b6c204a64ab08102b5bdc661db6e854e3219dfbdbe3cf6da5a04e41a11cb3978e6c2c11e5f852518e25a31c3b27c39c5dec0e75eaf3f2934e5daa361b4099781e0021c7e879341995b7a0d322a9da82a0cc905445222813bf05a186be2d6823ba5bd0dd849a74df1694630a6b9de6a4fb2c4bcc12a6227489b8c42cd24bc822bdf11843a651e9e2a1058548f3021114284f9e3c9162488a27523c91a289144db2528b0c6ab95492415dd319326946945008deda0a70bd458e98b5c65a64c9a6ccb22ceb084bdc5724a3268a762c1a8e9db26db4d0e23e2079ca39e79c3d679c736e5ce591c2277f76480a9e203ae8e44952feec378f72dff6fb494c57a9d127734836e96c716492710c6aaf9ebeddbafde677baada7f13ad74955d75d6234d9c65b78db59df6289b3ecf3f1dcd53237f13753ba9c91ce84bf2d961eb71c3ee267e6b00feef1d831fccde4aa61219d4f5848e78be69a611fd7391e1c8e50441916c6423ac3ec17f611238e50600ba1766b8cb3bd587dc463cfa446a4beb6a9d622f1747b7b3ab5a71e59b6384291d95b2d14d546da5b7fbaa6af488587710914f5945a8ae18d50c88c6a75a6fb37235b28525de971136202d0badcadadf59af032be654af8ba8dccaecbdd78630eec1977adc79bdd464eaba12e89d85b4c2114514695b9de39b3cd12d2146d0a6d8a76a44da161419b42bb8276854c9be2a8bb25ec76c2c88ac2064156cf483333c3aa9665d11612ea1b36332d6c8651dc608aa10cc67c7605a38dae40863572c06c1d7ece9861e5752b7de2135dbc303be8e323e640a70008a118b2b439870f7a98a794534e293fd05dd84a2963fe66ae197e56cb900818431e53411771645267dacb7625a9e4c027074fe4e0891c24c9419276a2834fb28cebda600d84d72256af536ccb713adda9f5514aa7aed30bcff66caaeadcb3cc5a9605572ccbdaa3fc6dd60a4bbc40b4617dbb5a58f0d7597b0bfe7ab3accdcaa856f1568408a604f645e08b48dbf5a17d895cef27f3f5b96df44064feecd663fb85d5aa7d2a1bac61ff7e68b562d887bdf68a2f6a7fe54ddb7ee1ba959e55fcedb8ea61dc8936ea375ca5506cdb72b068d758b0cea525c35cb278245396533761adb5d6c69d28e37add60a6f32b17b391a793cac461132ea29670b5ac6bad6ab7cbfa758168e38b186a5e67c151a0f3a1bdfe12223346b3ab6abfb45f15c358a7c7505246c60b5cdbb96b7b56b71cd77d6cf83a6abbdcf0f743abcfae7a4b3bed70db41b366559b8e59bdd7e65aafd58a3b9b61672fb7d3d96fab4264d6b2fbc5232d2567d6adaf15e850d8616ed1297a1859629db10b5bed7ea8498f8a371a0b27591538dff3555a73e21864b046ccb1043b05fbf0a339bec8f3f594470c8d4e5e6e38ee8b8d879cb7688eb3e925ed6e7a79e7298631b9088d12074c54f0e48b35e8b39a3dcecb6b4faf78b167372663f8939f57e7437e0601528231e4a5fcae0c6927e707db83108b9228bbb6192a7dd447f303f5b5cee984346aa2c6b01a9420d8f52c6b0d87ec4cc2d844b266da277d64affcf551a572483ee9d4d73d795ece1971a7459e278d93419eff56f2048a32e6bfab7bd193c086304e4e4342e775d65a388404fafa1a0528333f85e58218f2bcbd53278889d704c81b82423433520a914492e7a79c498a8a8c8aa491ccf6570aea6950133540cad94553d34242f6f5abb75e64d3539dd523792412ab45a1b3763b8a1509d6905f39265482aae8336fa38d16120acaf39f8b17cd5a7b3d88ebf6b2f60585b2f6c53ebbbdbc48481e89443a2199481ac81fa98215ffea5f9ecdb9f25251141593b315999099b51db59e02f1717aa79ea8348df6943d4c99a219010000001315000030100c888442a150248d3331dd3b14000d8ca04674521949b3244941c840630c32000400000000404040d300967e56b7297f9f03a9c7b93eb4d077e9f4ff93f51d529bd069f7f837ee1b133acc9af8cc57da1b0f0b846f42b7f9f0142b97c919aa36e5fe5957fac3df7c4f83b88e78f506712a0031917569fc3dcd274e0d2f9c64160724235c8d63646af1015f88dec2d5918193fbfd884f0811cc7865ea18a2dd32bf8e51636f0237e6e242d12b6b9aef294e2628904bd236e649358ac0773fcb7d7ed31510c0ba79fe65fbc57d00fcb3221e3dfc26e1970b8c1fd24904eac8bddca2eb0d8a42df3f1a0d129ea2f7bb280a9fa054557ed65e1e960cf3bf95174f4cc8247fbc4051b42c49f3f80c7f0de490b6b12845abd8378b6582ebd276301e3352fc338ca6f0175702bba36959e5117fece21d2465c076f50f3065786ebc03ec3ac5bab85ff6b8486a4a515ee16792e150e4762a90691523b8bf717dda7e698354ee121e2a8bedfbb0610b8ebe847eff6a36307725eb21cf046ec0be2d27decfa967d3297c68f02c4366f979602d53f82a38f4658a2a5b5288964e184ce431aac76227dfcebcda60a612c873a6c6a0f513c66e8a2bf87bae64bd1a881b03e81b714b44c9dca0aa9172910bd98c99d8689c5e09db45e7c9bf8e34a2fe3faa6a154654e911b5e8275781230d8cada7c280d57e1f8dcb1670c06972e1fd0815ba9b16221a54375e78fdaff1e266580139c105f9fdad8c597b076904f88b5b6f82c86e00455899a7d4520cddd5d0042b5194e5fd9ab66f06eb7ce30089570c9557dc0b42629463a569ef29852c62187c2205a24c052de2ae25d8ae7d40711c1c86d521c80b62d74630b1beb86af242e4470a8ce804574141dabbe13f855f8ccbc62f2e9397a54bb19f5cc700d508802da96ab888e9f207e1ec5b8602f2e31803ef2f664d7a3971257e6f002518ef962e86474fbc16a7efc8759ed99c4e25dff5ec948fc729fc67c47e7d5ab52ab2c9e5ee45662c103fa46d4f472d5d15de8801191ab3e4c092db19235f52c5b843663009ab5b90c78a9ddb20c2fadcaa3d0bd1192530a267ae228234d6c67c0ab318678dfcad4d3f8ec51c5724803b02c11050a82ed5ffceac664003ac1e15f0babb5e1d44622931c808aeb86914431e535b8bc87734b761316aa7e488de655407845c99bb853eff661c847f83a85f3352afb8552e7a8a9562565f85d27e59a8583481f8f85ad8411ad0173ef0318d9bbd9fb1cf815f27d175f2eddf145032a973cd7bb41d1a25c97f88a905418c201ed9108ddabf70363006cf7be1503d6c148cf72fc6faeba8f61f973faa672685fd53a7ea32ffbeb382ef2980e10a4f029e71f9cff9ac10855d90fe36d00d295afdcb33544761f3c1902ad29e322fec4f3f779bc7ae3effb668b51b1d230a76214765c3e2c1f11f9196e26d90004d833e2e2ba6999f4833f2a1bf958fe4afcaceb487b59da7c4354286e2c227863087128d003670e9421ce65f8699d64f106c2daf001333a5edbd1d93c2022cf3ef123ba4ed40e8b27531f88aa26f0d3262bea1a4be3e10ca25c86240cc4587713c06397b81970cc1ea62ce3adb972b6ba1b9c57d74c60ec0a3a9e11722f0c56a78eead7ce66e0539a0f3425393fe4b0a10a5c465e60be492047eec3727eaae416629cb73cab033daf2412f9a0caed1fc949087fc006ce51fc6204c3c44639242407438b983402616536929fb6af98ee172518abce6f5d705abbf2639e95d2671281a08f49b73368ed0e83b2f8069f96ef0ebe216328a6c644a43640914342f013ab946704d01bceac818766ff0593854a29d083cbb9deacbee0489426c1ad9c46d964280b3b61e3800fd254efea7160df99351552e5ba43ede255a06b53f35338e7de517765fe586e18d1a1d71996999ecb7c8c8a128f1507735fc158a89475157a53360e6eec3a67ab17e3ec3d0c001c1c53b19c290a91538b672ab623c1b4bfd824846aaac5ed91ba0b806540177ad0604904e0b20283d2c9bf7e8b67ad375523d0802e7b43445ff79778181b65e18525ae1b496170f01457efde6fc92a25178ab044473a00e9dbc680efba708448e506904e01b763bca904975b9d4ff40bb7531cd0c9b05d042f4dd7891da1af3d5d820fd953ec3b2c73b4251ef28aea8450367ce4fa0ddfca3ae062355a8b18555326222a1f7412e51c27f34a775f36d8b41865a907caec49d02c1f8c1c517d1dfc3c3097d2c7961c1fd5d4cceda7c42f5292c0ce5dbbbc67a91b9cf71a03334110bc5a6307b818d11fe4bbf13edc052a933313f09f3176ceb8362df7310996baed9ae3a036a1b31f7f5c1ce53a79d41e095984fca487e073b75eb4c9ea8a9de5213d854c2cf944366b9a7c598a3d9fea116fde86e32135aebd56f1e879fb184516991cb0994ea0f24ec741ce5f3236724c5e5b2c865a28a7d234d2714ec9c7a2e902a8f03bbf05060ad2eaa1c11b9087c06fafcf86994f3e58f5f6f05975b7231403abb2f0809344f1f77deb590236fe15be3e29d156cea7906e2d13bd8fa9ba81f8f833e2087fa6b3966516ded8100cb643efe9b35853365f0a67e6d56850e2e0d2bbed29439286f1877c1f71ff36d70252671a78fb2cbcc25aa8f33d3fc6517f7eb086fc14c7425f6e6054290f7154687e2451b4789aa57bebf40f7feea67579e9f62a33d9c92995aacf68eb4977cbd90d51e601eb2baf859f975b08b2c23b82de33c7ad7ec30806346b8b373dd561ee9f13ad2a1d954cbc28aaf123277bca731f04ae69b71db9257112fe0a2c2d869c425fefa0389ce3942df16033968cb763bd89021df10a3e2d3d255feb8c3cb373c5b89fd6eda1a6e94debdfdf6539441147b9eed1b9f8dd4a43e8c67fac9c3c6b91cb88204006e843c7219c5ffc253555ee00a0994099693db5ceb11816cae4a3a4f25f1a0f1a06449aa2d40105b0b5cfea026230843bad88f298ea7b597ee989facf34bfe628ccb3e9904f00e71691f13488059b842b1831344c6d59a44a1b66430146b8c897833918d6747165772a23ae4dad2e3dee850166dbc425ad2d65dd9318e02ce5249a2af34fda05fff2a16d6ec23b28c451bcde461101fc983b1d1540a8b633a79218e12d32bd63df19192a4a639256a627f84ece21fc8a4039caff759740ae470bba2d6d332415728ff2911c8a640694ff57b858c016ed36a979a5fb4dac48efffb5946f2d31d0f0f493a07ffbf6e8e2df43e4b04267c8102aec9d9a4e075b1c17600577aa6d1757c6253fff7855dcfec4bd8fa58675dc35f49be7540ef97ec4d8bbd8af814373135422c4cae30c180fbb407ace8ef0915646a8e2a5a760552ddfb6cd92370a8750b297c553eaac9a5b02a971ae616a1308d74716755f406e26e51a25c359020067e449352c16cd0b0e158ab87229c59a7be3bc589a2b6d190961baffd98f0ee3a426cd2b185b7a96837178aa591312deb4b8243b2483d72f6352b42d827e29d1a44794264e6259278fc21b13a3c3a571d47e3669057ee584a704850026e05acc22ed7cf67fe03b9c4c79f01686341c34f73eaaed4f7dde893ab2f985b44ca9b83150cfc7d1ccc80016f575d01b2e7ea43d30ce5a13ee4a9198a63ff77588e1d624048d172c983b5ec66ec76bce9a09c61671cf68186b663211d886d020586f669235fcfc018758edf5358bb5983c42ba32349761b97979ad107126853b871a0c02dc136cdab90b3b07e0a84be38a50ab86b1b1080774698a0e86159fdcbb404be68d780ea3435f00764c805b34b14f3f996e6c6a7a3b2254a3c3a62a4cd8b35cd02e0f8bae29cea65c7c0e52d7e18e72f51d528c214a21a409d7c7f691445f9e65eb7508051aeb7cfe62d8b0a9b9203e8753039097b9aad78541e894a9db180d4e1b20aa3b22b76e80642212da36a7bfa20a7ccf1bfdb2c5d34eb4d94422d965d0463a2c02d592ac7411bacbbe6f4304b66266a39e6bec87f5d277491b1e30fbd878bb7b8aa289340c8b2922dfc97aede12ccde061298f63c1b55e686202a411cf59643abbf68156a1d6fe9f8d5a8b04187aeadbc50a248a85e99eb96e53503a4a86b961e022c58f7ac56965933a3a1b489d586f5c35b292df91eb50731739a35b19f5685b1a69a26bf32ba5d73ed387bd73cbf58d2fc451b551d8d182c8cdc32b89069cbfd01ac39febee27907741a94303c2b4751a8c7a8ee4870d512efd693e33e47d1ffc25eb6314a41b881d2619f81d965616123300f4c80d9778a6a0f7298d72b644a2479bf75e9d6dc9c6351be9a7d4b382a489f52e85521496c360ce385c6387630390652c553e9595363911608f975b3829bc4321cbc24e0fe77e88c1dffb8c0d99bc08609dfbbfd9ec48cb103ea885151378f1a03150d8502aa3fe698b91497568d280a87534b28069e47752bf283065bc1c52a7df6d5e0b1aa827b685c154c432435d025faf993cc172747ab3c5de4be412f7337e02556fc033a8a1cc6154ba2d1ba8f681cda73175d4cce87d10a8661b98eaf873e8e28c08afb8ea22c6d2485564a25eca2d22d30dfd1cecf8c00cbd0ffa80317ab3ed16772b8c597795f14e8f617b541cd16452b070bded3bf7705c3d346a00fd72d45fb7a028206a305f906259e447c17e50c3caff6fd056d635cf50c4b4823b41f45e9c5c22cc929d41700ddd97bfed8a5423859745f0eca07d1023730d7ab0b80c231d08da6bebb1b0a2d9a25ba8530ca183c1180f9e40b069f69f632f574dc8c14297875a4287d6e4e348c9e3bdf0dc5c94106930e5c7e1942e1501c76d6e67f2ca67e8f8285fa3295a2fddd1112c481e026a127f182004fb16acbfb52be7547352916d0fe1517e43cc0a613b36916849df5437b2912f39631746eabc2b42011b120b78f518ffda3a02c37d105cb97f2e2a3396faa35a0309f982851e93061c5f3966774e52295fb7648d54d5384d015c6fbf1fb273df0e766f4f2f8fa5295af027d520e36c792bf3c51df8df249f58e0e298020e87263c9f3e402e3f783e8b51665b2ea829b408d1fb9d08e3af06f626d851d94475af329928e5682687c80aaaf05c065338c36f592366e296011de075a107a0fc6a1968c48f03ff881ecc373747072e0e4a57a67f2624ac7abc63395d61b0f048ccd2cd7800143ecf0518bce0aa3781c99c8690e6dbcf30e1c6c89411a2fb6cf0a80d7234d7e9a4dcb98f068846ed92e454a6981c15344df352430a2ac7fc0b0e0f1d19bf6783435f413bbee0de2a9aab07120d847dee66933e8bfbe995264224a70f728c69e7b21d4a2f50d0e5ea73f8b36e822fc9ce31b02979923dac478b033a57e8d5764d9927c6388f2bf1729e61c2830388fcf3ee2aede07c3161362b62ddedcbd93263acacaf6d6f743bd8c95207f30c5a27ae995e3a27dcf1b614c1aa052b41dd7e335cfcf80f166829699d8df621173ca8a6c375daefc318ad6e903f0b34ade91a884ca48d6ff9de1254bac2aa948e90cdc4d198c61afb9b330a781f33e00be332c3adbb39b6dab2410a63818681dbbeb9e7eed47daaad04181455d0ea462eea1aa1140e479c7ee308f3a36f4f283b1423cd4d93385340d3b9faa67a3417eb76a5754dd74293ccc9598a4df0756e80e9506dcf8cea357f1afc8e74f8a592d7c0112d2e9643327bc20e6a4b466cbf3ce70c196d02e7d43792a7df64e779f3d3e2330f5af28b149c7c52bdd98ec894bdc28896263f6e05e406d846ed5311be73369810c6f1590b6034fe53766c360b7a45419aa0b69c995ba720ecac27015263347c610acbe20f193e9d6518ecd1b596ed384da456d69461da15339719d1ea6ac64601f972b9459eb7f09b18cc8b25b79d80eddf80ead8678a865592d2e5a9daa65658442a226ff457eaf602355de38ed36225f55d0bf9854cc95c5f6c681a589b626eb3aa00ef802c22c988f05e55a6c494b68d87a76fa94a612e81a841ff7fabf5378540d6fa29c49a51acf528af23255d5c142e965a6086322bb24983d60cc3cd22b72a6421b8ad3898d49ae5dc8e18b8bf79ff0ae58ad7bd916b059f2b80ade508d6b06cb8aeed0b0bd47bfac4f3ff9a52d27241d8bf839502d4aca4d76341628ca28220563af1ba3a72bab1ef8a9a50cc44263159355ab14eef23d5cf46689c3f365510df1c62b202951d946a7adf2ae0d5975a21ffbda1bf2ad9728a5aa671f142e20d49c3529f6bdc033e1e78663ecca97a9e0a0319fb846f0bb39356502c81be24111d86139644e8101c6947eaf80a4aeb36075b71611dc239ea4067293c719e736a111306ad5203da69043cdf1538a6e59c8d90f31852fb64329501a76e51d771980da3e710732ba5b6854aa82297dd216fb39d18d0be38970ce066135aae45fba5af09bae414d69bb8d7c71b909b4bf48ec0241d74a77915e1b2deca73e2a819c267068700fa08674d25d40f0b200981256eeb3fbc03d8b982c4c0506fc2a20fdef39b22ff46a15e0151d4efafffac31dfdf23fa37e377f88e040ff350e3141ed632213b1026c0316eaffcfc5f3b34c4e4e7ace29d5745131258d62b0f35b647aca48114c1a6c0b86f1c56ced1da27964b4abb82ed91d798f8a50e37a09c7701cb2a36a83ef154395cb5c61947c86ff0ea7f73492a3361e2c724e558757d0792c91e8eeb8aef6f8120b73391ebf401d5031bbddb5fa25ce921984c8ad18ce697f42738a230e2eeeba43c56ca5bd3cc9f773b6ed54911b53b428f2eba8e207ca4160ccfb278193609809383a50f23d69dcfc40a9e7209b8db2f512dd34dd455a5cbbc4ca9ae8bc2caa7459778ec73ce71deec2e70b9d2a6b75a5afb82ec160f101844f6e61c36d0e59e75976abad50e9c5126b6a4309213f1a7ab4fdc69714209ed206f4056f3cbaa52dfc29fc281aa60e3fcbf62f1202e9926912f6b63d8fbc852aacdd2e81fdfae021b321959e723c2933ea429f263ac270079260ec017ec8c4f9c9ed0a1cad340ca1f3557dc5f3ecd7470d1a6028a1236a2e8c889734d92fc0f0bee5e8b91e580351489897629bcb7a1ef0778a8778244eaf8f23d5619410c197fc1ea2924f06227d1325a6683041b3cd56c0c319970327b147fbc840c41598da3675a62103fa67bd53a64a46a07a97afee08ddbfbc0906aec6fadcbc5457e5d7ba2c872ed1a1ad6b8671de8d61fb83287d621213e112cc1a943a4bd0ad24774e9822dfea18b3e5f580ca6c5a976e06badfa3f80056d9975d44a975a71a727045d487c459a16900f32582a3a23573291fee5224460920113d6224d5946b5ee849f1608bf3ec7f6932daf06ebf6e628e5a91b69505be49d25ccb236b4092411820257ed1e5c88955db4d3f8f901d648ffc09f2d9b160e31fa25611423646dbb7fce5e017a12f6b1d84695762e6bd24e3a87ceeb2b237c259f448da89d9de58ee36a82de51ec60c26a40f7a0a4a01bf653b3f68eded20bb4568cdc1cdb1cf24ee09d2cf4bea32c97558673363d0813b52dec2903a5200c047040a28d33cf93e5df50ffdb214e9d02a7a5e20ee7baeea38e7a09e475e29e87947576690a7d21b34ddda593fef1ead19e8fda0c14da5ab211034e0b72059792e6fc3ea17138afe1be07e6970aa51a211a2b404af86b873096e8e9308afda4d3fe85ef7a3616aad0a1ae334a3ded64a4fcac91083c5a9d30844f4d782b9a07fd2be4868ae111635e9d0f40ae9661fb382f60474f652d1cc0d9b974df80d5fd9e38f8f7462e7c95b4d18b26ca20eea8c5c93dc9bec6ffa80c93dfed40140c8a2aa972fe66051d1123ab97ece02d4879bd9c5f102c0e1906f451170b0606a24dbedee07afea5bda2fcffeff1b198972838ba461d1935f9f90a810dac5d9f1092ebbdb3a812a426b1286fad9e48817aa91a401d3f704c914c10103e7ef2d494de5c6115e23a97affe8a40c8c1007052cd5519817ef96ca07fd2631792e854a879555dcea6cb539e0be4e1f4258f0279d1b57cd3b3a367465e223160ffd0428a2077fd268da7a8d20c12b23051cab63289beaea02efb1d595b1648472475c2f6fa09a87b8f5026c04344bc4812847df4231fbec4c18e40becf37d087899a722d2f3003de8b128fa794d2193b5b1009454002fbdc067070326442527f25d162fe2a757d0c460b84f9e78ebcc21d8c4e3290b02529b3c89d083e9be03538066d1617809a38d3c4ba21be35d3c630694f2583edecc51a4c653bc8a0da0aad07fe11391806d42b1cb2113f1510e5e71d6e1f6479eb6b5e7edc6211481f6d8337c9816918eb8891d3f79b355fb93df094ac9ab5a3cd4d9eebb96bef642f752daafee45388e598a6aa19400e69d89432017628c6a7f5d7dd6e28e6c21e7dcb4ef4fba4b932ca3d570292d15dd4bbbd9856c79e05e0a1862eb7219dcbd84d2ee5bb6c42529dc5e3fb8f89e05a0801ad6ee1eeb65dfed9fe49c65c10979979572036248134fc75fa354186fd45516cac16944cb11f8abf63b836ddbe389989c1a010b9164132fd90cf68e8868633032f40162fca02f3b6afea8fcf2bd8baca2b90a9e7bb969c200ae88d388221cc914bd643619608c3214e56dd6dd8014024d43bab3d430864e47be9964c6ead826e1cc2e5d1e580cc7dfddea3184579aa93329140a50437689028fc3f45fdd849e4f946c1aa2454a7f3e94c8cad96724238eb54ec9fed2d672a239c46cfa4bd3795c18b1d3de874e3d24599aea302f1f60f4a66c289e85e03e4168db294d48d0c20ee80d3211cedbe7df168665b7716efd26a33d653b02de9f338d65ffc1e50bfa8d295abc4e97c84f4231a8d66242f7a2c9964e5d98c57070a0d9bf6babedf23b952d6001cecd2ddf026ee37d1305722a781a1dd62eac828727a74ba731eed07a48573d6a316a1a54b44c79884d9b678d6675fbb17afc581e68b757d020c115c3027180cae8033dac89992e21d67083356c9478805561e3acff082ae48870d609723d4d7b5ba72a7cdead4015f2fbcc65a5396c4df2415700dbc3fe8a4bff5323e5986409e8dee628288f7813213848b63dbdd2336f4e29943f3dc25289fcf699b9bcb023719648e0aa91196e22d00f7ffab9eb19ab1816fd2f84554a012187cdee5173f98bcc08dc1be5fe034a4b69e55150b2e1ee132a0ccb0d6625cd2d5a7c011be7373bcc20a6fe87bb1bdb78fb68e2401a1bc5062b544f85b61593134d56d3e931f84daf1fb51612200ecf5e74bfd813db67932bf905b0d18be72deef39e211d42f8280ffe2d2e2af0fe29e9181fa93020974d8608c88ff14666b322cd637f6c2cc73fcdf05ba307b04bda1568d839f37175cc8c45db691fceab57f5503a4fc22027f835abf0840a9aa7a3c11734e82c4e34b0a2ea770270b7d1200e32c666a40a035ea39a19d1aa23c38eb8d44e5ada0ae0cd24d548b0d3ed9aa9d84000be65a34e303dbefef35d9083518cc4d864d60056210dea7ce98610458431cfa4728cef7db4fbfb1b1c3e48d4cd0009d4b6a7c32e5a2b5a04454c475822f75f7a5311acabf4901b311b0e2706478d080485158fef2d98315e243c3ed51705c07f7a5d6415c5536938962a048ac7b8dc1a8d9d8f8ce6da12210de809238f717e91c8f31de18b8b1ce990470da9278fc593f181e8a662f1fe1258a4ef080e9c3fd1ac1655196a533cda2fcf35ab9f15c9193244b99cb9cfb0a4880e251efca080c904c1f4478a66bc481a6253c2376d7c1fa5f98013b42a15bf02df374f830136c545d28771534c0d8c03a04a16d9a394945b195b2e11bd8bcdfe1b811d544ccb204e8f3bd598b0cd7e7b7f42d0b31a25e9417160be3a05bb9ecaad748e7757f2eb9b13681b4c1f58e2b7014afc8c331298ad58301cd2a2b01a9b1fcf7544cfc5c9bf70b91e31bb4ffb05d412a44864ee275642f271a6aa6e478b622a0554994630a63b8585094ee4ea9570259bc3293790ff894e431c086fcea81289c7aca86f3981a2995458bd9d1539c32856097bba065e923c3cca6cfd17cc13fa75100eed938903c1602317ca03d3ae9e33964160248979278378b6d6d043fb5a18ee851ea5c403ff0ba04c3f10f4441453cf534d620e1b0d30104307097815ff13f760802a7f09020056d4a52a20a0142cdd39668c1c4029ba0577931eda5ac4889c770505ac323da3098c5cd9e24ef8e8de77195982671880334c33b126e05389106517fefcacb653e5d010cc12452395c8e66cefb632dc5c103bf70466abe716ae667b05da918172a4947d136fd590c8d4aadd2ff578f8b1e257823024f591a6dd81427ef8840e8a3922e10159202e7adc2c06b59cc4502992b08c639016af0fa83328c0de34df67e064072d96cb82d24723385ae1f0351f5730b2f281638cfa0631d80999d5b56e751217b1587642f224a53640c05de2148694f2b86d436905c92862613f0dd6389d20190bf799a0c68e62cd8c9ad5d7b2765d18a566efd794c7ab3058b4b3c51b1a3bca1eb146c89a57ff4a332844780cf0100f75f0dee1310667c6b5636f0d67d2123ea92b6bdaa1ca1177cf8a5b4c8a8735cbcb86881f7821263db5d23ebde1a64d6a3cccf0d568fb9718636824230c309f3f10fd9105467ffb9c79a63d4a31696702f60a29371196ad997d020fc51fcc0a9866c18ac4d6ef9ada633788bd906cfabc84a16db1dae76aa20b17c78aa31c940fc9a9798466375ac5772e365938fc4e75e97d1e018a5c83aeea99e0b56a9da5a3611285c095ab1be66afa70aae827f17c12a4f19fc91e7047fc41ff16a3fb303bdbad704976b6c8c2921b8758518fbafe13285d567c2c33790c4ab45189f87282fcb03741169b12944aa9bb2c1b67553ea1c0529a5e4cf347bac6fb9518b830514bd628780e374b222cdd39c2c29bb6d245d0de9bbde80ad77520ebca52d9985404b024a5af5e6d6327d56ed4a31acf267a33064de907394aabe8fc12ffb3e31ea7c70b41830eff9858781b54d6ba22e2b92f067245d2207b1350819bde50ea32babdf08dffc402f9918f87410e7c7ccbbaaa23c0549b90088aa4c73be8ccf9c971f6c1c025eee980ef16072742d3da211ea2d8821fe5d3dfef5564a717d190801004d1961b1c57baff4326ea24e2355f4a7d23856852874b14d2464a550a60dafcadb965d36ce029a5bc012e8384a58868b5af4f24a5f4ef2c73453661cdd0770d978e862531067a7ad51158fa1b6c46e37d40c88030242105f36477e82dbea1e089c1a14fdbc0931e74e56ef4e9bf243ea67d53adbdbb6692c2578474f36efbb339fef229127dd9176061b46de44ae3c846fe0f96817193892d34e418800521f10f6af712abbf0a356b333dc281c19d7e4088f371a68be3bf7d0809fb93db1fa0ee970d5a9a6c79ce4527045a85730a428f8f311e700bd8116cfe7c4ab32b9b3b1fa8cfc98b88e31d20ef7bf5b755d97c786a063727276ef11418fc0625e436b8a2a3e764fb9bc94de616c3efb8a9295026cdc9d1f9abf4422608a582db041a66b361bc95446368e0263f4c0c660fa90de59537b43c473a1dc5aa2ffc59a03ee04be7f0f3618fe63c28062723deeec0ccf137068139b29ab8a6ae19014d9ae54cff005b9984ddb0dc2fa0a29d8c0a4df4578041282445cb88b5bae8afadfbd8faa573af657aaee476a720fdedb54c515905564405c5b996c18cf8b766769406e549aad7325daca47400a537d82ddfaaa8251e271f9522ec3eb96f230a014ae122c8ef1225bb0f6e0f9a47d03710df77519fff764af073249bbb8a90504e23e9a22812ee7158911a3c3f2fb188c3a85e86dc0fa415b8033709d4c0602eb508f4f58750b4b14832c9dad83a4e568f35ba4ea8eb65a5b80deaf8a9763a44b46bd93b7958c1462b277e20a6e413629f02850a9254719cb68d003fdd242881a173afadac89b442e6fb3ec91ae3d0c032e24392597a7504f39d7b25a104acedbe6c8693f304278e5c19040c51b3a1004c6945db9b99428933f95fae7b34164d29ebd4747dbb88ff4154bae2b12f5151fdb46b0dd90c01b4288e529dfc7f4440580512d0599054c6edb042e2224ad4ab3e5c0442214afc0e1951c17c4723896fd5abd6f6ccec020d6f93f3ad89e08088dbf03701cc10ca4f95666ff78198335a8b388dc29ea2ffeb60a6a4567ef4059f6c88aa88504782267da91b3b8ebcacd18e87218d2a9600a330d02a5beee6aafeb86482dd73b8644dca93dcdc0faca5a42caee1bc042aa34f7b431c43ba2aa084d769432f30d9c33d0df05f93cb84428057dda14ceb7e07e708b35ea703bbb4f464b0f96707763835fd951833ee0baf1ab0281f491dea47d8671b0c0e1aef6e430d40cfb5f1f4bf6035dbd3f10580919d3aaa2194fd161f189093574372c5ed73b9bf4f9183d126f790390be80ba01a88782017e67f76c3cfefb20e50eff75772a8dfc4871410aad89a500079c3702bfc2bfa9a1e9423079984364e204e271be6f5ddb4b8225bea603ed0904c0a253b08036d54b0aeb82805f3a1f6eb30da91f796b6246a284ffb227bb38403c74662d013132fd1422bb27fb4d5198564f68bcebd2aad5b7eb19fe630afa988183488c425952ce1da3586a86a5fe8fbc2bb62fbcad27174b458dd0c941adc1313e76d40887bb2dc600a835f41f31dd3413818befb43274400f2ddb407ff48cc2d9f33322691d251018e016904a4927d614aa07d15df03b052bc6cce20fc8d8a03e95e51def73c918a4335901222eb3ca8624ffa04f924cc84d69ac88a13b56ac2d69ed8ca13b16242564dd4aa13587be2d64ed83a13586f22ab4ed4adce76e2272a59960e81974ab29b8e03325fea26df98d735c725a33d27c2892e6ebaf03d02325fa359519ffea8d72fcb8f7259f3b62a9d4d08a86b27426e928b748a49ba2c3d54729aedb95be56ae731de5bd2b2f155c13dabdc58b11f60c57cb816e4207328d12a5821b19d6dbf34848f3b439ed2093ec40fea93047e04e28caceaf10f5513c40e4b6da8448407c58ce7b6f9e19e450beeb4ef00cde283b0ac560f70dcaafa88a2efb5065c124ba16a6590fdd4092ff9a9c17d5ca584c391b413d3af81640586878172676db047b2825b58c6da3259ee96008027972aaccff59471da576a32558f92e65ecdac3febe560d9496232a08cd4d8cd716ca2a38a524d56972d9baecd2f8c28c9e2b3375307ee830654a0030da81ac93a903ead9872c90ae4365fa2b1a6f8222ef17bf7df24cb332e51155956b3d46549a759bb9ac8b2848749eb8e67f5bfd503591bd38c4992ecaf4185904814b4db394be6b2ac64c6225c562ae8815f26f7c61f4cc80a78578c4be3b22cc9ac3b5956ed1056e8c4209e324316017d215ed82ac5e318851da3791fb05f697b03125fadfa55bb9e06333ac857b4812e87bb87c1430d598170e55a2496a5a26b075a0e0a7a67cbba496f4117f8b2b96f18ec356405182e8a3ba35393bcddf1348d3ea913de1a32743fa6d373d9cac2286d27450bb57523fea83a81c7ff9cca4528d54ec395bc6b2c17554f01ed70b10cab189a92b9a2b55b819447bc8bba0916ef49ea4a8faa16549efcdb0185287a303a33d861f2474591b68acb36eb43fada2114348faf7cd3dff9599582f06951f6eea7073745d00da174f0cddf154c6004bb68c22b4b629fb4dd954c6a319c18ad7afa688794cf739ec05e47ab7891b4cb121564faee44462de74867633c3e0bb03e31e35e0386d317f834dd356c67511df7e0c0aee81def7c13f3dafb44c8371339b073b26a2e05e36971ea1d73a873ddf07082156e2718f970d8f454d711ade60fff437aa88d013aa380774c273b79faf8cb7e444e1b13e6effe1d21a7c478895ff02013793ffd1acd909f06cb2e7542f8b3eff1504568127b4732523a1d9cf18399679ff250dc8276955eeb40a305bd02ff41aef6c9254cf43cb7a56561377c9f6e22a4e85fbe8859c77ee9216f75ae5cf6f0be02d760f448f0d206b0a9c7e5f2c434d108d77c4d45235cf4b7fb500b33523d54c274994544d71f5006da076899525873889de69a0b005e83f047df309b42f7c1ab3216733717c034f66ee040ebe41df98543af0d4613082e26e4df1effa7a104ddfa3489ba3c552e2779b4ba0bc4b64e7b8e4b3f8cc5d919e5b1144bd5daec21689ea5f1edd502452cd3c74992c9b9a309c9c5fd80b651e5394817dc69ff144165d60b68518651e2c89cfeaab78d6123717eaa246436859fd0f84d8eefb5b103c6c1941456b4d4636da04a7a475bde110c1877dfd6f360b3fcfcd247f293ac268c2f9ff25f8808d90c761a1a02b68e2c54144f1c7201fdff4c2fe461562e13cc29bae678aa37cf5eb269257986f1c71732fc82aaa6dca885212874eaa6c7b30202f491a1d0ee256fc676c6287f73c4f1c2c86507821f429ae513775703c494be1cebd33e20124bd3039b4bf7cd815007c47a4dbb652a6a49df6135a0b0d194c637f2e0ee5f844c82b71ebf5c6581e75773c8dc2bb2bf4c3f7f2573dba8da2b5a56631dd8422028f2eecc9bfc7ed12a7559699acc230f6360109daca1a05c1ae02365c13832e3473710cf052f146309bde81bf9065c6a722bbafc65b01abf005727e12db5bd18d403ee515c8f44191f000a0fcc41d60e44c87b679ebe51629752b78ca670c7c6e574b6653c8268dda07c1376b27a8efeee8a2e8f02e877a2c72ad94fc112b33eba0301e823d22b1f992d05ef79a0f9ae50bca6304a97e4003ba9641f030054ed6a24d68215ca58f004f3ba0d89a374fe33ae72b36d07885d4fb6b0cf716bb32c7669b595defbcfd468459aa46446ac2a3f6dd9b4ce842b4a621fd7f9d97781894f7a7a0171860362e3da3ee7bbe95a2fb090f8fcab609d743a6e3fbd29312ebb974e3369ea2388a5c4fc92bb043b5337fb7f45d3d1569e59cd481bedcb65033d5c30309987ed3b69810e4a013b1450bfc530761d81a82fe3f80aa2e8a6fa369a9be79813bd08bc1e6539d5ac5cf3eff14bc1ff0c9d5a1f4d87527bbe52a7e2cb96196ea517fc77b279e76a04c0c0f867bbf5ebd42264ed8b8e106e2243f118e4cc1ba6ef32e32de8732d620fc6c054bc8f455ed0c9c5d46d7e284f18c9dcc466b6380198674bdeecdba48ff47843ece023e3ebc5d947fb00ff96c838cbcbd5fbae494014fb54881814881402777e3c5f5fd5f797f9420e792fd6ee4e688e14ae3c8f47e9e216f16d75dc494c7bcd25e107e9b02cc1452602a9b81e52fe5846625b1f9ee0557e79e04bf1598a84e8fee813e16df7423054cd04712af12570eb18e58ae1151b341a3b19c38690b02030e62663b4c4adbc99c59d5fa74b15211a71a4ce98b76f0877832740290879804c380ba67553f946afdf322f59152d2bd28cfbda8c64d497ac33295cf93ad8f781eb665806874463403d873635460d24ea0c995611985f9b009580de2b34dfea242d790466d850834d4b764c9f673897e6039b59454773d3f36de77e07038a082fb8873934cc8ae14a462429f0392551aa32a66bec50c50627defcea4cb7c31b781f313ad5d3125ed24b728c731d744be390918b53aec1008c76620003c9c9625d20b29784bab2394c67688ec12768c1986ddfb02814d6398d8f32931b84a3d352c5578274804eea4bd270292c519b70ac4e6c5e63bf14c87f761dd379f131ede7dc7f66c6651dc016745b33eb5ffb35d2c47ec42793c1ee87822d5fb19cc85767a8cab2da83973af5625e8a6d611be6321f1f303446a7d91fa762e7ab824453e97224e934323d587d71c6cb17df5b4b8ece1aa4661d5db19c304d364ab477630c4216ec60a7662ca16a13464a9db6ca594c775fe5115bc2b4ce48cd74f1ee60bee949fc4589e803bca60bd17cb0151ffadc0dcb5d2210d9570e3ba85af06d72e19b0fb0662df72da9645db0cb4c92fdbbf05dfadfaa360aadcb047a1a77e49faaa76419cd57e0c2f78750b21fb5fce6068c818ccb7e267d81efa6e02132ca2a2be5c0577fce184e875e45ab9716a65efdded16df55f69017ee76ebcf0a727ea91c16ccf16993bc81ec07aa5c0ab2848b471130c13575a58221b898539660153ff7b3e5e660ea460596596acecce0f40bf1abbc9b7fd83123bc24846d201bc8508fd4fb59c5dc3aaaf25d5f6214f350c157a460ec8231a67e089411400faf6eccdc692646d8f88fdca577d41c95eaaffe43f2a2d615a5d6119250b35b66d29a01af565a22973ddff4a2e14d2353c5455ba922e6b57b6e5fbaccb471c5542384c3998d9f2c24c1f1c0fd50b651309c57bfd13241c6b6c759a276b117e985c7a8e8888d7db48ce38c8889e29450c6d64a66711571a67bc820dfb224bad32d69cdb29632a18f752d102a1cf82c9377df219f448c8d695325e1740a0d7c1ac3997dba274b585c21210f64beb8cee5c95c401d0f2e53e55daa13e841b3107c4566a473714fc6cfcba8b2eca5195485c7f9537c9d2a3bbe38c276fb0f41bd99699ece4c1059afa433919d5f8d1107695d556bc014978cc35de63eb233552a2f08b7345d1c3929118659ed327951c6e4266d4384f1601892b2d80e384a47d52c487f253c24937624f01ce9e49e9cb8ba06133caf99e96b55a8a4ab850a731f4ef59f1d03405b70b8a5abdb021ed13d6b6e85dc9f8a4d17a87cb96fa6458c2a5ec1b154d3c69b37256a0d76c4e6caa690b6bb0a83147d621bc863aecdd4db58abe2715c99eea87c2134aeeae47de18dba8844e627e9f5420ca8f0cc3f24c9ae9fd35ddce5053a715859435fec9396b4b06410ecfcde9046072ce15962747b0106b721b34ad5ef8ec903881c7e93ac1bb04ae41c7f9c1aee2eaecfbe6b94360334e7df8128b3a8abcc9532a2ff66191c5a307f1e18d6ee3658dfe6f7a0be54ad70c34bfe3ef6064cd2a9ea5eefb91bec93404e76ae2c1b4001328131c65c9c0592ef0a263e758069fb9ddb8a10d92dc3190ce1f942a60467df1fb381faafad3ee71563df4ead20515a60a88f6c3b7d17a5f384a65752addd1ed547528a9a82194c765c83467a78c7d77a9f8631bcee660cca09f066e164fb4963f56fc0403d176a306b264a5c834d5be7151c1c5902e4412b27f6829f2ee3c4261292ddb6eed9c0f67e7fbc54efe956813d3fd76a985bad7c834edb30953ebd7cd8fb38061fe88f9b7584ca66c0d7c2d0b9d07e492b7ea69e8d8e0da7f38ddd104a0e78d146fbcd14c09aa21a33d8618af352992039be98bb30a304d562ec84fa8c6805c2d19d01ae98d88f167d08b7bd9d2449904df2b8f43cb2e6f239a5c3045ba37022086a4a0a8431b65df8d38f6e0bba855dc55c17edd1a59c8856a1afee4e28f75c14794ad929b141352940e9be02e46334716f437040be1bf224d541ea831784ffa79733600996f32721a8e77b47c97e7e3d74cbea854a2f9097af4b5c326505b7195b2bb8cf96e5d7e4491bb233ec1a89baeb7db76b8b910293fa3dbb7a34536458501b0e827347ae4e7af72fb6cfe2b153d7bbe83186d487a6415c6458814ab878ba40ad080c475e67629d9c0db5e0e820dc423ec473c9b4f5d54b3e8f1a7d1f739496ef68755420cbc373fe00f2625ee8e8f9b9eae43a7a0b5a887f96aadcb62f85a148e9e281599f083f076713bfeb01b2ccf714b9493cc34f074e8f470c7d7a640afb5e843289a5c0135bd459ad0458149b1028d9e2e74158c05e2ffee324cc6d9a27b8f6e98133c02041b6612a207721053c08eb68791f13306a34b72d5949c602543a349919d5f82186ca5f2173497d64a4eba31272e2db0db4237f84484137ab3319f2e5c0fb36b56abb80539e656e521c0c48f7b4a6a61936bcacb863aa4bb7fafa7a6c6fdf8d7e47bfb8ec82c1d477463bdff5173c862e8bf3efbeb97a945b4f2c978f11ce41a4bc738963389d336b3c6e935d366546eefde05cbdb4780064112435199118d66735c403a6fee4df00448559f85680e8868bb6e202ddf774568becb1da43355814b33c245d999e8b8369add5a15a7c109e477422076c0ba6680364a7bed95bb73560eaeb25a45619ee02af16eae39687d584081203401327cf4ead813ab59dd26e7f186259c70b79e38b396f514ecd33ff6ec957e6e01e7eb8710fe6c9618c7c20a19fd588c243e3a3f7eefa53075f30b284babed8f8f8077f3af92a9d70e2b4cf383b7c37b9707b87160c7b0f76a63392c0a9eb8f4fce3e175349f4a902662829013f46768225b0529de235ad50fca761f3410b9b96d1ef5afe6b209adad2f87d8b406e5c8da7e05243b6a3aaf8ac863bb298920965361db559c5389747864caf932872ea1f72e038d1e349d3d08ca0f55c215e83fef839e551617deb34080c52da99e25862b6da6b4a403242dbd7cee8a0464078b4e690e4a74ebd956dcc724c8fabb6cb3abc04da3e5df72dda1f7141312556c23014dea6a8b66d7429e8445b59db3a484bf89f6174409fe565d7bb86aee83e4b133fe4c35b0c2004cd1a1f3a7916b301f819c68351b0e2702045597c61b7b1e37a4e5be62a1e2f081a8185b54fd91e8f82e5ce77943128e1b035b99ec8bcbfaaca08be86fac5c2e5c26976535d08ebb9bc5e5581388aa8cfde679a7201d79dbb7eaa02717d8e764faf3ae9cb5b9d8d35bfa2a3aafe8bca7f786f5c416c5114e73399c803ee5167d9e7f5d77e01f4c55a3bbe6308216bc15f1d61ecfc5d509b2b94c9694c21e5a89c180b58a9ea09c20f2a770392f61afdd4e1e88b2bb6619519d75ac0f5cd4f6b4d04804e7cd069a362f7783a8a8ea15dd3946c03f0875b2098b4f0da197fea5f6ce3ad9f121e81402ac3e1a660664a0d0c61d49edb32f7cdc04c0f20a358de2c481cd92609bb3c26c9a9e6edf6f679c449f908e5abf9d47e989afc6cd43640f3c263c1a6cc84eb1813571818fd221c4187778d19f954e016070bade605e4c2aae78fb236d392c779a922b92190ce196f0e22c6183c1ceb34e098614c224b5d3a484256ef39f988d5097f18441c0b63779da15519cfd421dd0b53e300f723de9496ffc3a2f08e4748913f1820b8577edbbd9396f4e73e76cd8bcebf157a4a25c223f5b412433239d152afe0b380776cd8189fc840f59445569568b0a2a9616e75061759290cbcd9c01d254eabcaed9296d6dd6c81331d9d1c5d49c243a62585b9f7b3e853c2e69be3159aaf9c3e32b6c53681e729a84ad967ec59882d2818c2b9469920b9abef242ac64622d3706e4fd5db95820c45f5347b9c12c4bb7aec27ab796116f4ecedf519267cc3eb92a80eabb86361bd9c840a06368866c0834b86621637601810cf1c71cfc488d0c2b6664a42893f93d40b3b9b93ab868b3af41726df4b22be3dac9dc059e914fe6e5a29677674651ca8701ff2d97e113d24c0153cffa2281d02737053273f0f1de0f8433fa92359d8df800e1acac8ca5e93bf7906c16f1d9495356b1aa013c409afab48cd18df979b4ae1c33d588cb2fd0e35143d9919851c34862cd7708ac33bb5fbe5fc513958fc3b7ce58e600efdbe37f91efab578a66dc2ac4c9106e562e221f507bf45ae39ffe32cc1936713e7f58f6eacc8815622f3ae1359593c3261933733e84e88d70c2f4f7366e424bb3c03f89b6e34f3f9566393da1a2c942c812aa1a7de520ed081e8afc800daa0d83e00ee20d750a5a8bd9bd651b79ebb708280961cde23cb8a3fef0fe86b68a38ccb3c3eb8790dbc61977e6766a41096b0b9308ceb370c2c605ef799e244fbcea4a593e3910fe155b0329165f939546904a8a1630386566ee02740dd0e65cea6cce2c74e4d1c4cc22d7c4b71126035edcd7c9c02c702ec953583cbfe372fb35f09f0cb402179641c4f5f98f512933c328e2480f21f7c7a6b31c912bf7cb5a8fbcabc748b3cc8104ab6c3a59f9f944ffd2366e895b34fb7f994df8959cd7ce3dd2ee9a02c8c00627e28d2e25de57a1b97eda39213d2b024c357e19772110524cbc5de9112d1b5af589eef7ca33742581e451b54ecf6e040d9f7a8646eb6b2d19e240ce88ac36d0384f34dc353b1497959d99cd0936a17e5a0e151775f875c276efbc96fccd42df801e3e306cbec113e3a90d9bd64312a8f1e9d8fcc626470f4773f2c41eeef3eb61577da61d71fa6330baa6047bffc262a7028c7e514901327066b6c83aa10242d8142f93d20e3c9a6141fcc50858270d639dbd89110bc3dbea213248a345d0d1c1620ba1557d8f44905de4eb74085b5359e2ba19382937029c0db8817311f1b5b3ea266ea7415784c20a25816ee727ff4394c9727ea154a317c65a3a03e7bb123181736b944e22d525b834315022edab2e3e7d1dd0869d51cd72827ddfaf18e3f148bd96450c4fca8d404ff52c6d9f81520483fc02ba07a495c6958539943308fa2c98b3b08c2861100bc55571d39d43b84ae4fdcab553cc7cbabdfdb492b44e9a0aa85f797e41ada7c541ca4c50b69208e1a0e177bcd7c1bd880c6cfdcacc83986b593be7519c28ae925ce8de7cf72fe244e782959384803f79ba09cdc157a2f0f005756ea0601fc8d4235865f18db399d897adb833da614d5da14b63995148e1a902de0f8db0d9ff9c2f7ae005639209af7cc5e719e06cd90c04f8e9f4c6c243e08d77e1b9ab02a48463ddd022473d3ff1229da9f2b4891df6d2e9003d5e73fd3759008994116aeefd72c7d7473e3c140dc7a54bd83c532a89df3c62d8b6c53910c3b74329a35e203457ae4663faa7b874fe0901372ad7a3a224da720ec89c991ae16c69dc5728a3abd3e30c4b0f0bb4694fed06211cb29cce35507c075ab0370e0f33131823a388886537bac326923d6b3b2f0f01a367d8d310c1ba07051c7e60e572a4df5fb0b537ddeb325562a61a1dcaef10dadef456c584490ffe2c68b60d6d454a444fbc3b564110f944029c8a3c45bd2e71ef4c123402a2c493044b6fe555a2d85dd4a5bf4a444084a0b941ef4aba98f9340d7388619e3a8c0d41a8fc08987fa425487d1185c6674b28375c77d2345f267d4b5cec416f1e2c5c0a33ee82662a6ac32c76649226952da46581b97d2ab682bb020252aa243f577e1b5a4416a43a4c0a2df4b05680a29bfa8e4326d486d182921517c13bef32add474c0897bfb314c8c09fd9faf29d4781eff4738d02e20962ab4ebab5c49d3e1329db82ee11316a413d90070f950a5d93a62e0e43155037852a3f396ca1e609d66d136ec3998fe679f2cf36ffb5a09ee474c5de69ff62ef2ab92fe0501b4f120aa7be590638fae1ad23f790ea8e59163cc12fd4041ea0f6db2146e8214c4d4a2e7e3a2bcb0a21402356297be85c1182788735ed073e47cb85bd1e46a25d256b554c47a738c085d3e13af08f8543efe01ccb248ad3ca0b371a83f475e8e20212a5b3e8b506965c6a63068490f4d073ea9fac0fbaaf89136f34b2807d078bfb6ba8278f8b2d47914affacde57d2811ee53767b57a5b3f1428c8e48b5f47dd0841f84fcebc38bdbaa694b6ad9b0f1161b78c1a50b83e5d19fdea767337f001a5c8dd5c9185a4b525eb15a1c7e61d0c971a07a0b4a5df97aebe0924c91709224621f76168a42b01190571fb222c8007b975e76d4fcfbf1ce5a97c6111ffad7d99f222c1acb0a15b22a97f4c6cc0d1f39fee0f607467c3e9a9439c3807b353f043ecc5f3654028757d6364d507dcd65c68e2ab25804765fbda4534756d8593c143ccc1ee75154734cc03afe0b355b0ed4acb22e0b037c529a15aaf1c691ab9983e0ce9e28250070571034025d1ba5d14ca66b022dccc76f7582f8c218fa9f87fdce0e4eee9eb5a9aaa23a4e726a64d1130cc7865dccd4f37415f8d7f1cd5a8c84cba19c31d010aee2f1f38940faaca5f7ffffb2b407735c79c03ed9307f706a7d0cf5ca54065e9ddd4d23cce9e59a50f9db9e46e0b9531d0f7b7743bd11be31744096cefb3799ba7cc008b827c43c0d3dfc35c80ed4282670729462295e7d61755cf0da851884ebbd45cf6c94a060e99205e572150bc7fcdf894158449e7fadafc5e90911893ee28326750761f63e80c11c4d1f360c37c55c6dc4af8ea649ccf89071a21107636add41dce4024372e402175152e3bddf4975598451f57969ff9c60f7aff71d102204ea64cfff4148b4701b072e28718fc836a65fb65cae1a25580026ec8370e2bbe75f21e9c564b7f741897f96a52316a24d9f9dce900ffa879d45db280a607a6531cbf54d1473d08479a957c8f9b8746b5be0254aa7f603d25e4badf95784f4e1fb484a290c1efc18d69ad7f4d52c9bbd3287b14bc5cc071ffc88a7f8f438a9108f63efb96f062221c465a4f2dde0ba9de5e05a54cacf4f533a8e9fb4f614006ad48484050d31cba58c9610d826a2f23921b8671696cdf3126b6447c46356d1a65ced57bc84b199009dbbba33038b39771bf3218c3d3a23c087e740c28762d8ea12527ac82ff7e7293aa7bae69de938c07b48e28dffabf0a150b5f8333d8320d7207c12289d045e620083eab74bdba90944a36a9612eba751b39e05c9dce007b3b4078fb38908ccd547f350cebf9e865e881cf79829ea810cd2cb1636cc8866fcbb3f3802b3fa6a4a9db395e48c4a7a919ca720a9705c5b86d1435c5d3cc74e72a402e9933c2f455a27d77f007fa5e9e659b42b822586d3d6cf796ba807dac056fd9c4a51cbcff51a74bc5cb57ed2d90c35f306995933d3ee9da3fd9352ec2e20a2d66e1b8150b70e52eff34df3b1460fe761016b66fcac53907daf4a0295c20a1ccb63ebb82613dc5a6360837baed37bf42ef063dcaed0ac9726b024d0b8ce665866f461c14b2e5a01a6dae322289193538bc0d4f115d422b0403aed0dea90a9cb571076996b493ceebdb1b6eb040ad966c4e22aa92239adba1d28583dea10bfbef50dc750c49300b7bf4dff5e30c305e00f554c0099db56914416ad30d6335da7788e511440d2afbc8ebdfc83570231698f8eee078752744e1426d15537ca64281f3fa98716aa7a50a026cd6e4548641990d9ff524635f5b5acffc8f8ece5059d631f4cb159d53e012b40d649c72ee3d6f83bfee328a0e946fc052585a1b5d6653a4832b5ef95d06e40cd31d9abc5fa7559c82edb40a3d17fe23f6c3e13dbff66fcbcaf51de40472fa3b19b9b633bd7c8ebef49f17ac6fb56a6a26152a835aa3bbfa83c056232e18b3262163c08808991d74fbae2add0dfbe7e01cee9acd449499e3667e8994332171951004b59efefbf48b9c4fc20c8fcdd5eba11c316b8cd52f67591fc04bc640e4a0a6d441c9391c6f8d0618eee0c0c6ebb380e9ebf53adb5057cb55872d6b21ae2121fcf68c9ed78fdd3c98056460ac38dee13420e2cae17364f52c5111f2fbfce18c49e6a3dc2b642848db2cab24f38700172578fda4e8bff9d7504370fa8f820ded97adb80a9a50d5d9064fe51b041c4c2fae48b8c9ecef5e9caf1236072b1fc4fd662f6a8501f8d2b9d5e20d75994a2a0c823a420e0939b448ebf3246450143315658b7e0be6c01ec33305a880d2b52a9e0890af1b67782e4e6da9438c32045fe178c2d369aea530920ff46d4a444ad417d0e81e2c697df54399c49f2afbff45f1c0a2621da12ec034a70b544f7aae640fb6b826de68700e8d64d42a6a50143e3a57f6c01544479dc3f6e447445e30b40cd19b22e9d092c778cdcb545a9f3c55ffad025de212a3e5fc2d7e71ec393bd1d68d2842b2396f529ba236c445a68ca4134cb7cbbe406bd9481052efb1620b0a0dd3b2d6376e8ed2ca75f9a21a7c63bb2881ed41b5a3e8085a97a9678f17f830e011b2f6cac663f25237c009eaa7f05dfe8881b8281774be62274916c3ddf46d1cba9831be8a15ea91f51d6c8bdbf42d486a1bc60f42896271e5156d4ed176a351a21ee82f4ebd918a70235164cd4354d2637a5682103a43a7f7c389157503ea4623eca4309412119fa868819e581c8422c5a1a4b2b54281044e6ff14c8409cc51cc684d345647332d71c675754bc4921a0388fa94c2f80ea16de44b9e2cebc74f6a2b6556ae8bbaad85ee16dcafd361a5d5b71389b46979869010d593261c96de28bf143b151a3d1ad9b74234b7fe4d417933245ca4b75e0363ab2a1112efe68558c474ca5e5ae6aca0842c6553290e01544badd68850da57704fb359f5785e3612b2543e1b5d556fe24f3caebe2f82019af07e121c1f6a182b6559c18612545dfa2fdc57f5d0afbcfecff286d3cbde797d8f2dd5893d330b2d494240f35bd0e2360d109561706281476551e781d2e5c4c56f0d827326d0417c8163b498440e335c73f3060935e687a6283ffda1fa191648244086e247fc483985b484130cc9a23f92de0a3dcae5dd00102269fd838b0981e03a3e2d52ebd55120270eb9c41f0c4e63f5212820aea6b03cc7252f7ed34f2ac176184638b023961fdbed3c595934e691bac91a4bfb9050a47c616bbba7291207bc346abdd38c812b05716e9e8109eb2d18b5e423b8d5bafedd454a416d800b3a341f5c416dc14ff8892aec3b59aa29f0c95f04efa8138a370b1830113fb7de5abe8e3e9715b48e828150bd6402fb8d8e27ab03632f68e808b4e1495b00ba169c6bd77f05b5f18c8183e2c2a32a2cfb11a16d794f6f0b683f6eee34b413c6ff79f62ccd3f04105fc677ab66c659981dae5512149a6aed27ab934a67af5068d9da90c975ea50e821c7b7321c0624b68820d8060fa63797b489c2a59354c27f200285b6478320f20c816ef15080a9df82f58afd0c9889a22a0e52061d9736faf4511bc518a9ab135024b281285e325fa0d71be4054b9e4464b5f52b4d969d4fff589f8353bdd1c08565dc79df6e346a666464bb2cae6b17411df63b969c6d1585493aa9f424965503321a3d135e78599369926c320128bb6822a3ba56bc027f98e16bde1cb13af528c9795a184162569a5750f3c15d200e8a8cef54431f21cd0b887bb6c124d0c3a2fc752af735af2e8c9864bb561930dc26b78c3fd1f39dae0b27164c5eec8bad813e8a59c84c8f358acf64faf52c754484e7c0c141d07d1ddc71311340a960093910c03aea07efb30a4bd6cbb3ae5d7fc422a9f68444d3210386f519c9fdfca703299d2c4c91ca1602e6ca250a30da2725b23e25895c3e5ab9cc2d8b4ff37ce35b308afa874aec74e17987ae1bca1635b711abe18669d42b3d89278eb502f253cfec72701645e3301954d6b861d09168f1e95f5c97ba8b084c61e115ad1a307530b47840472cf311aeb9b45ee6dea217beb8a1d249a414c279d634e58f03c8b47eb9f2463dcb43eb2d9329d1eac4c9c9de5ef3145263d22302ce4be5fdc7511fee5b2129365de7db440714f840559886c6a2f1a9090b664f6f97ec2d64b68d0b684bfde0b23b4423f4c1ccdce980218f0060aa7ed6f2bde05c49706e52bc0980dbf1b9df2c9c995e58f9ee326bb891b8062ff476a951c308934a88b05d13c9e3f8e9cc51edefbed45581b08488f2a2482d87d8e7f786e8ea736dcaf1f42e263294271e7a456f6c62d57769ce0eea2443c6a982033cba8e81513d4af08606e1951c20264ecf68494839529fa6180ab6bd3e32923504d8ef3315f94a0fa14db48199aa5ee83a50bc59858ae642693ed4cc8f67fe0303f89c1c79712216d208a74cf09eb23338f7211cfc0b7cefa296f0832e219e7c4c07c22e782a1bd909d39cfd34d6528a8d87e27bef702862ed80392e7228db92cb402207be7cf9319898dece040f1368e47cfbf22294e62ccc8100f71d23125d757dd32b0dd216182fbf6695bbd8a89b04ad705867428cba11a0ab9d0d25e1e52ec4d4e2a85612d6214384fa4ec9ea3313bc7f209f42a6884fd3d6ec04b3fe4df6fe2f51260facbb0795a282d805af4274912fbd782b0f412537301c2d1515a8682b48d943e69bc824056a5442c991bec6a36d165cc1328b604b56f1855c9848d867bca01a42468a9a6dfff82e4fc0f6627f227a81c3313c7443f00de5d6c29aebd2bb6d245f373064c413d560add03a07c09e12c90ed3216cbe28348d26eac0b25dfd33af3c846ea9816526b260756005562194c8224cfbafee43e62c9426d0371b4bb39e5594e7502a9236579817a50bb39e9fd8d67b00e36084fd0e0a6d160a401163cf36c318528a048a03874839c7badb4fb6db9efa6eef865d76585434a1eb642d63af80b6a94acacf05ba8a8398eb616cbd9236dc8a8458d354b63846c0668011809ffc5d6cbfa9c6db2c2793e67a1cc0f6586e0685c6eb5285cb7e3fe4ba67fb8420a13bb673a571ed45ab9e34687fc1140dc3237ba4fdb6ee2874db35cebe70d9cbcfba0270e51a4a4cc2dc17ca9496fea4090177227d444c44e93cde37eb666cc3ff3cacc308505b23ed8f51565e365cab960be1e9fb71b0906673f7cc92e5c8b90b3f7d8e206f86d269bbff9912dcd7707e8f01877a23c2a718aef5d52f98d477a08874d331d06804c5652b45c2ed7489c2bcc70482a158d5251c08ed639a5cc3fba49063367488b451cfd00dd9ad0de6fe670c722baee5c302d77174f08a0db5e34a2a733b304857a2282e4f5d9e0d804f57205914676c1298c901f6b6c0216351a53508b2506b325f094bc298030217d670a21c41dca7be0ea34894cb648c517b8c93a6f41724a04ec073453ab5734a2fc87d73fd93d400d15dc86c5c0a121438d64711701517b80d18a986c2d14d33b2f69408f03b271055aa450ca8d96e698c45cfee7810d4860d0e57a5471903d335c62f824b74bb722b96ede3edf3e6bde78b138e94acb59897c5eb06650fae713a2f11c8e51b52dab54cf27067d29801410bcde28f009ac43bc1c7a3ca69a48f4973cb717b98b47446dc59566ce567addce9ee92ae02d8b611587a2f339e81b3dfde650d129b71613c8ef99545d7f5062c5e185ad307530218cc86e67301e8a3385db77c704970d1791c7042b9ab600a823012c942a6ace36b0c44a8debc4352fb328c92f5a66276d5635998146762f33eee1e90e050ed91a1ae6154eb78df2587fe93f862a7e26f203abb1453d908545e85379038b34a6d029cf4980f0c0a157a1a11eabda6b0116248d06ca1a6ea47b11ad902a6ca4cdb02cab0b11d242199d4fd09a4f88d3b4fa99f6318605c321eb137e4eec4abed31ac9fe203fd2450982cb39c9ce23917fc7edf27c6faf44cbca3022f5c7649aa160320b9e6ac59c653bf01583b27dd8ca4e93cecfb0802e6b282744233cbd42d2231774e11d82b1110797f3f7e2e58cf1a7be3e916a271500fa3f9f43a820c63197891c70c4c37ccc71c9e033afe9c63d78232009d1f50d2fea0fa283e5bf650f3a7339a36fbeec6124d94a8e24432f7bc0ee20c82b5e48316acd93a8d7ba6b436fb41f4379fb6ae93b4710bd98e98a0f156f1c24e15756f59893fd4b443a0f086935f5555b21aa08a571a81c20a9289a7af618ba92322507b93e803d61b2e05693e14e4522822e20d7e9f259a70045b0625cbe25c2044a80e8a492611043fe9b40ff2dfb2aad6bdc3f5751aa83aba2f596ffceaca3941b3a90ae45ab505519b8f931af17ae9240aaa378468f73efcd075cd92e9285ca0cf3ca4b88700e85ef4d5c82709477fccf28c5a9ff5058c7eb96807338707e7530381fe1509c80b323bf44d04df44723306511b0f281142f7c0b054adae8209f729ccc4cc75f26ffec6750f381dac965898cad116abbe441423a1816410c95e32c82751fea1bda186a54a3992ff50dd9e4af22db5e368042f33d7666d4c6991d9eeee8d1659684552660acdb9f63cb99d0754c6491de7923513db8db70e430d13ac15a889045d752fd9406a6d8518eabc32c2974d806faba78823f543e59a4cd7828adee173bd4951f780aad0410745d6b9723e345a9da11dee008fa369f7fff721c0af7be9672d8ea052dc4cf03d60f4d4833ceb0b42b820c6c898b2841897b964020b2613b4f362d7d62421311e14861070dc9e00ef409d76d3e77fd35856e906437f091ea364f0588a2b99dbd41f2cc76e46cbc660fd8ed7094b862f4ef6a359eee40c68931227b5f05e1177d642270a5caa967d9358ccb4d2a958242bc6897cea989badc5a3dfe6a366e90a1f6b0c660dc03510add8fef75f3d193dd5c88fa15b8274049f9c126decd8fef6f48f774867611e5cd56b316ab73dfe35290da335ea2fb68e5b333ff74cdd04ebc72662559b5b6b55405740826ee025382363c338ced6471c2e541aec7a855ff849d9936f34a01f922cc7c59d698884ee2570fc457216399c597694c04ae21e0f5a4698c437290536c64112be8ca2a3fb0d442ce234ba1eac9ee5007886c07e6c04d9401886b95a9d9374e6b957ac08464c61842e02441111c01d6d0228f756899d9e9162e80a0eed38cc677c1ff58232cb2abeb9103f579f21a0f6083b78c051f86c050bf6e04e888cbded328614bf62c12aa4592b9a79d0f287ba26d8381df806f74fa59f416a15bd6f11e215457cc66f7b2150f1bdd5690a8526c1a55ca32fbd6ddc135a75692bb0ae6307fa4718614cb0396b27ce7c9fa730426d9c021b10e05f4694c21c57c8de37ba19c055f8eff575dbe1d1c40120c7a3ea8331900abf5b9653204acc99f914726840b05ad3cca8dd53a5595cc6acf486e14bf2d94c9da101a310ee6f28b6cde751f298f5a0c262903a763f0db0f0757fd0576cf45858cd3f7b15b62f0cc5a32e9208ff57e93bb1b067430010cd1b72b307e33cabd84da34ebb3e2be8d4281ce71766947946123346a4fb743f27ed779488683bdff7f8e3c088c2532795871ab4740d21d214885fb1110d34f90af0937566572e55e5664339d3a3ad5242e62a2f4be16b3ee92112f5c71dd637b0be8d58e462435d2798ad1aff1102337d11e5bc813fd31bb1750498f71e7e82e3ff63c18a22234439fc37b33fb80731addff79c027bfe0bf9aef80cbf9e86670c059350c08af7c2fd99c5a7472c8347cd6d69b7dc27232a1c33f84f291114a0901063c804c257b9caf40e80792bad161053aa90b91af2be4bf7ed73f511510ca9a69402126de23e44ee8236ceb52bcd243464eb23dea52d612d015318699bd2d1572712257854a486cd5f44121c6f6562cc8d6e4a7432e2a429f64991763ce737afdbf196c164b8375ddf85a8e5929eadaa037715f90ccd703bd88e51afb913c386f12f3a7a5b9dc921a57d47549354f712085432410e6107d768209c5a79fc730c61d5a9237ab42d9b1d150ccbdd808800eedcd54570226d1ed58191b5611428bf65974193e28e16e5e5ad635de7be7310c4e6f8500904fd117c5f812f719717174fefbc5d9ba5a43de0469f47cf994742e60614df266f8abbf81cca5f14b025715e73212dcb4b01b70ef8f04dbfe2a58734eb27bcf5f1814e302df6e32a531eaaea25060ecebca6e0774010645cc1726dd0c991f8e0ccdf6a0b7d2681181e0c4272a5b59fdb97e97cdfbcd97e77548f3f37a1eac31ce6f353139f23ca952e3610179c3d5a6e0ab6398d70383080564ea8d26bfa4598a1fa7368b9b5ad3ca14d3e5615bd49168c7d99cb5a15baa27a2d02c24ab177aaf7742ff39cb2f63d6987905b50dfead39dedeb5c5fb64042644101202db9ca5ca890daeefa8b6ec5db8a5b4bf833f50c97ba6fac61f5d52a6729abee57cfad499fe8039196f60456df4455afbff2e6158e349607e13e9a3e797976f6e1b8727ec5b06d3675dfd82deba4870b4e961cde19b3e0b9d3e6bfce50fc345a89dc5a788694076f524620ca11e5ddb9508f07b3dd91a246d6db6226913f6c31b1c63c8a183a999fe8fdd9913d3f3dafb9e617d3eb2c9312012179c32b72164c4f1431cadea07cb0f700bc5b01d695c753db68995a0390dcf3600ef0e12a887681fe7e8521cb558fe352afcefc705a9c2a682c87b9c39535c0d4ae5da98997b33ac5f33b5360081285849ffa7b7e3365a4b82c035076bce51dac4615ee8c178ee2f5b618709f600934b8bc007ebfbcbf22b2889cf2ccfce1402ac07bcb31be77d5c19c47f1bd5eca783989d2ba47f3506d99afb411693212b1fe842506ecf7c2c2680445d74a7936d82c161167798337f02f1c9a0d74dc60600c1819381d221ead9c008f37de63da007945ca75e566c2416c4c0ffdbc87a7708fd0fdb4e071c9627bcd9724c7e80040f04042994fedbc13f0c7bc0742851f11d5e9f5aa2eeca8924882e2022e248e497d9b55f12270bd930215233755c7bdb7a8e2295ba477089c7db21cc80cff373a63c980da11dda1af2f6088659d3aa16cab6d56a8076f2f687d022834020ae279029c3c3711adc4f98bf3f6afec6830dff4d23941f88bcd5afa28d3b6487e8d467bcbf4947e6c7d040464030e4c0b996663044a7d9780e8eb39c321aeded2f3cf9b9b007e32ca0cf3a981046739dc2103348c048bb01718d8a2f76d9ee5dc08cb6db1807c09ed99d3ae5c7187fc725224ae13a3b362dc1e8b3d241f35f7a1e5ebec673a34454ae06eb3a4599e91b6c30aa4955c720117c1deac3ac0ee408716c6c73dc3bdf6997865d6aa06ba7304b50dea366a74a2ce744e6f9cba740b82e2054f8d7c4f152641c2426395a9fdeb070b7472b519ea1429daf50d439830d1109b0411ca4da0686f0fdf21176a2126d11366c3fc093bca6fa82bd2371680d5ddc10ed06052e1e54750e41d710cd2ec8091aca4fbf3a77c1810f1021eb5bfcbc80ef50f4ae22b1a56a7d35e40eb3570003076e3bb974ad9a868cf0e7704d74b2715c708c31d8a5702f54d5b0bd1bf6813e55e24b6e559c4c5b9a99c1b234804f9adc0ed5015d773efebffa87c3285da1fa1d02b6861b54b9cb50c69d5997e877a91d13906d11585a7ec73ffc8162262bcbcd35ad19b2580349e6a193f304357d60533f466f86100083a7ddb2eb022373204e02b5e6427c94262c342065e4764cb3994e2b6564ec3c8e0ca315a7b5d7556c3380e41082b77f61c7ecaecd2fdca1b14ae5882a78bfe72c83e24a80247cabecfeaada0e9b9f3bb6ed05c5273f2f173c0ffb3cc40999c5c13aa4694c94f8c4cc3482bbed0e2dfab7d5ae4d89729484e74e1657c5ac26c774a55ec87c573ccc5fba3f0cb3e7bf9083a606c1d05a4e3505809152fe4867c4171526a4c3621febc44919f2375f2eb50d82ceb89b99d7a31b99a7b304ac56ae1e6a190ea7586e14d321f3cef47897e611671e301ba990987335fcc3147029534586148c347f28d5269853bb8aeda16a214f8b193446e98fe438ed52f07a80bd92a1eef4849742487bdc60e75c8546807bc6bd5fac54a696309ae9dcb481e67e33593af05755ea250baa7cf5bbd0f43b10b3700133c7719cc3319b2873119f4dd9c18ce10b6781b08c0d23a27656be34a5f3e5443a7038d6bdf178e582024207bc017802cc7417721165c42461f39e83c3cf6b48967887e0c81dc800d6aa969d93cdcf5178a3c533d2819f05200f44e96c01e24dabbf3a7298ddb3ed1a6ed1d0ef9e5dc612345e346644b7bbb38c697f6be9189bc6e7848e2006efd692df7fd7458adb04449d066a6d1772e80fa7ebc752c98dd23a4969b53365b52b19671d5a3340bd9b18ea3af53b1c20c590b1ccd985d08e07ac6e194cf0b0f4535a231ea87a04f70d27b5ee1fd61d5bfbce070c687d4081611d6e9f1de9a90b2d5789c0cb92678f121a13f1d17cdf07bb9aa30a04df694d29cc27287b8516f64dd2aec9b62c216d1e5dd6522ea5efbaf38378e721314ea45f3e0b01d9e1a7be4b56385e63187206b840f1417978e4189bbe62e07a663a84517320f0b9b75781c5f851a9ffe3212c061a4a83423c3cd0b76b0a10607777479f41f1a44c58215c4ced588440357bc3825039ff5ae49870dd6c1493b27aa619f290565da2778d4f8bf0d36f9386b51cb660a03348b6fefddfe28f315085a88052678a3b53a29603c90fb05c98f917405c109af15de8c0986be80bde2d6bafe950d8821300fb77d0626b2aae8a8c59b0c6c9089cc644c5443cc85c037ecf502fc997c3bc4872426b6fd374e60ab3b5eca997ad933971c1d3979f90cc0af3bf94cdb2e5aef06af7a66de5f02502231c7668668fcfbc8330489b3334b38f3d3d642cc904b304ebe9d843e128a96afc08dd59e1fc9e68553083f42383f68feb986d62f8872ef166a3444f490f4a497ff59d3563c43ee68ac8b216e0e651e8e7f83b79923166b45641052822328d74f40cd10e97a0aa5baad11a2a087fb2bc43a17a24ab94c62f8eb437dcc030a6ccca215527f21d8210b70a05c693b21ba49aad25d75cc18a14b2258e63511a4480e17d41fc29e3246bfae83aeb18c266264337e26209deb16ce9e2f47615f10de0137f4eadc147b5663a661de9f4032531a8cf1ae8a103e682e816caa95ced80da3a37251c5cfada6bbdae92767836d4a8fb4b25f565c0304892deca7f9ea73e1155b12146a43e081dd3f3b70441e64462f1ca440c639d082de64d0b29495661878caf01cc156e1a60cd68041de7ad2f57d5ec24b94eac40ec47d2e1fb3e98e10037a600e214ad8b9c9a89065095fd9d8231366d81625ddf760ec5538a843a9275540707c86ef3f7bbe34449c91531ca4c846b240ab4c58aff7da10837afae9a37e3a3dddd54f231a656a5cc2bdc9076a00ab8d632200677723841ed21b23c3f617b83e4bef727ef34ff3c2b727d44bd84cb130307492465c2058f25becde606c969e48cad34c2033b9581288c19158817fd2fc90c08dd18cc261efb2b3acdf51e97e166e05d3822090bb76dc3cbaa94433acbf198b1b1bdbe5608460e261ea8ba36347f161348b3ad41277b4f3c44580bc8cdd74239901ed390f35731520a08999c022b031579f9699539b02c33f26c4d1214623c4b8ef6e445eddef0cb1fd28c0df576ed545035788f2ec4c647cf2d21e554c9db1f31844a429f4aa73e9877c2325861d3f76afab428460568c2b99ec19505f0a5a47ecb14f874b65181da82f32c636da036427a489f0328c37a87bfe94cd803ac4837eea7f549472e1123fc5e8dd1dbce4eb6a6483f4c85fc7532ffe6c8eaf5bdcbeebd8845853c5dafb976b75db6b216db4a3ff8fbb12fdba265af869da200613eda524c914a30ec3c20d3d4b9f3ad2f415f449dce2d22020d935da785ae54aa106cad64241ee54a34db56d62bbb853c8eb92b0c0f16eb8a75e50b1b17bfc5e527277fa2b8f33ca9d6c9527ccc6a388339a4aae6fdaef0c2a563d33b735b0396c86cfae875fb35927526cbbb4cfa131ddc580202614e6cc92c89ff4f9f211b2a9bb2065b9b48a0baa589201acc44fbfb630f9edfa4ca9470ae6076f4a685b33e3f3468fb5e377da730c7b782bcac85206deb1fe8332c345523c306bf7fe1e10d27b89062bbe9c38392199a4d82348081620b2a61f4aace89a9b92ba5666423efa4561ff786acecd486404d9720bda1259a32024c2b0bc8a8668bf1b12c52eeddd748b369557fbff2579604b6afd92b2867401bc5527a3485bcc39a1551594f31d7698333402c17a388839ed821d5ee14a3715bc0b7b02b690d13282b8683249b20c6df6af5e358d901b352f78f11132dc9857e7a353e722bfc71f28fd879df1b6f5c9d2a1b472cbaed5c07ca9107aad3d4ceda716d23ce3f261cade9f4454534f2b8ba5a25f63ba2657ea3faf66f50d6c2dd00345ab8c1f7c618e96c084cd175a905a926d11cc7ecda2506b51d4410b428f14579f6ae68d0a07cd21b5f8a30ae7c3b238aca7f32f8434e46ca486f408c1f6da8e13b78984f847fae8a88996b8dfbe9b56efb3c1454800aca6601e955945ffbee71fafd6ddb57322b0a596cd595f05ebb6f5a859c6bab6ec9b3af290361aaa384dc5dcccd6f1a285ed03557507834059de4aae8e3c25d140cd99e5dab0141f71bc0bcf400454aacad0a5a5257d481978b7c26a27fb099b9b74c1be25a36905b0fedb15022942a871ab49089f5ae08c07eeea28d5ea0d67f8dedc1cd6e7acdee75b63788b1c598df9d1a8cdb41f4c40b7d8b85e013f63fb670837506f3bd41957555c594025414dee7f103397f5102fc13d0f2f033c2eb1e724b612286dc7bdd548077d9212e638a6b1c91280c997e3bedc30d53a25d063c83b70bc9fb43719afe8f9cda139be319e0336acb2c2c6e0d9851455a28647286c64a82b0950aee096133715ca0eac3f87df0ef807efeaf3e0ca91648236e57d27c4956c757a69988a8440ba7ea02b016d383ac624214b52a754032c7e4440292fc42d246e0c0746df63b081112d2a0c298175c5f882f1ca654afcd7a0fb9b4701e6b8873df30bb943899ab4b2adbdef2d3e36ca27afa9e4ca86365b7dcb4830268a0048a40fb48f883571bd8cae80bd000e7391e0a079ff54311f5f342d4c544cdf0ab83aecf7a02b92ee7071bb190409f1ca21f03d218ceed662c8c53d675bd5ccddf1c24c29110fa71f6f65530f3c2390f609c40b9b368e1cd3f60a0c22285161a7ff147a1b062024b1ef8861e56cb74df6ad9dc2f33c76f95c75b0bb285278bf11960a805eb80f9a37857126c8e8edd3ea03c9c209250aa81c717b66e42663ad2368e7ca1d02658b069321ac05bb0babfb1b7251a14d82669d4c937708001838cfb381a237f3ace8d6a2822b4f2820deb981909536f72f700ccd7ccbabb223fc1d46ece10ec07bf3e437c7a67eb801962ae2e4f7a5c4dd7c3123a47ee83774bd062c15b824e42be25385c94b3c32548d75b6361f2da7d42247e4fc7698909c534364b0849b2be190f6b1a0f6a24f95e618c398f082df960a3256642420eb7dc7d20d36bb3dcadc8b2ef612baa54e0af04c828107531d9e044010b925187d4a1c71dff718c2fe340d05d6f0c02f2b300294c0e3771f2692709a52d5085a8af656fafaca7d60c8d01bcedeb84dbf79180c7d6d4d5e0249864a91f366f134637ab9df57ef983405136190490e8da1a99cabb64c0b52b0fafc1644e4836987c1fdff2b516e0ea01cc64038aa98e865620dc15a703aac98a41a0f11413f4cc162271852ccc38562290f178456a67366253ce004ad8ecbc646900aad0d0b18b8303cfe8d6aecca3cd170677b06cafcf9b63b71a4a3557a3182a6b0cc96e7befbde5de52a6246550085708200892a653267aaaa82f95c2524ed33b5e6ac5f48c78be772afdea7fa3df2808bb4baeeb36d2c01b3e77206383374a348278d2b7ca4b48bc051e023162a064e3b5875e72797acda80f7a79e82598afd122cae16fe8e1ed001e00313abc003e003b1e079902fc0e0fbd44f33a1e7a69e6733cf4d2100fc4432f19f13f3cf49201bef4d04b45bc0f0fbdd4e309f0d04b0878fc4408f1d04b0df81f0fbdc480f7f1d04b0af89a875e4ac033f1d04b12f8251e7a29029fc4432f3de08f78271e7a098a5fc037f1401e7a6902ffc44b2b6ac43ec7741d61b8e58724b80324f50e48eacf2d4ba2f86d5a8ce6a299349b73d34a1aa7d926376dd36c17376da4d968065a223fdb0cbf9764147f81efdf81819b3f1cbfff02b63a297e14d60239383e1415b0c1f1297083e34f0007c79780854e7ae26637e1f811b0d04910b80f40e1f80eb0291cbf01163ac989cb000b9db480ab000b9dd4c44d80854e027273fbe0f808b0d0494cdc256e6e1d1c93b8b977703ce2e65ee168000b9df4e31661a1937cdc1e163aa9e616c0422711e0e6363909dfdc2727117173a39c24c4cd9dc24e02e2f2b0d0493fdc1c7b4a37c796937cb839fa3889879b63ce0e57c7cd71073a29c7cd7125808be38e2c7452006e8e37387e0e163a09877bc34227dd70af854eb2f76d44c514e4813d2d5774432cb6de0c77e0ea474ea277074d1cf2040e0273f0f5d8b11bb0b1cc09a1bb3bbd627bdf6c06e409f70de2fff2f2e2df5d0f2334bddd07dd225b6c5f04f41e905bc43342734575d9de457b97f92ef43459be60d96999cdc67b2d2fb5786bdaf8ec9e4f8fe6b758afe5a4e86d9ff624326868738923f48a9abd1ea7f1f3bd2a9e8f173b6a4b1c69790078dff22200dd97ed416fc3dbf02d02efbe6cf7e500363ce89bb0e182be8996f7dedbaef6458f30c7a4e867d0d8be9f148bfebb99deeee6caddfc3d16391a6af616a6e325efe7c3f92bb9e2159e0d6b71b77b6b699a111abf7957c3711cf76d1f8d252d3fd3347580a669b9be72d28ac8661b5e2bfb9733b8db10e7951ba366af656a19d4b6d92a2de3eff9e07904cff90e2577b33c61ee573ea3dfdf770aee87d979bc4553ee03b7968d342b3cbfc7064f161e158e9bf3d80e8bca39e88178977bd005e23c4ee25e63f9a2472c3b2c3a28a8d97b961d972742718df92c5fd8782214d7f0f35974200f162540205e7e7e0fbdd4f22cde72b1dfb7bd700ddff7dbf87edbba1a1bd787fabd8def9bfbef3a951e7113b6f0c7fde4a6c49f752a7054c34e41b10bf72df688b7e00edc97800a134dcb6fce59efa9c14e41b18deb53e088fb4ddae0fe85e39680280de83feb3d4ee2be85e3beb9cfded2b41789debb1ad16fce6934ba8e86f6332eb2b0abd1b89f69ceb23001cf67c95e2b7b0b67af9585c853b599c3b24bde7325d0e7da4d6a52a42178695eab65b6ffc1518ea668ca6349512d6c70688a32d9b8312a8ca8ea3d08e4d9bc615b0bf4de67f72c0b8865c76bb9b7bcca65829a929f433d9a56d4fc6d4f535b4bfb2b2a77867abd568fe663ad16964272560a0906ce9ebd56e6b02a2df3d23334df6e5f7b2d8eebb9512beaf6796bf90a77eee78ce016e22b2c2f898ca883fb19efb8558b6507cfdf5a2d538533b54c5f2211d7f4cfe7502de3736be179821c969ffd526e5696d6d546b26b64037a454d5d51b3105fe13049313a326a3f4f97b0293d545a55b01f9a440a4993e06e9a2b4f2690276e8c3078e4e815b5e5c308fff3967f52c86e8cda2fb718655723a785f204960a9ca9428895a1e6dac1bb64fe4c17d1a379639cd45b8c97aac7f4f0c19f6968433da28dd5d08e1ef5530cfb2513deaf9622cdf710d332f449312d538ba04ca8f0b1a72693095329bf97ccbf3952d9f5a07e4929bb446a3953710c24b5c76041d8fce18d1c6ae1f8051d0c93f0934ac2176c56d8fb951eec7d976ddf32f623f67a14dfebe1dda7a5efc1963e7bdad5fce0ee757065a81183befbee8cb81ef6a8bb59e669117f3a536112c040454acc073011c75ebdb4473137575c6f96f9ee67fabb1d37785df7a018bb9a98875d4d90eebd2547b4bb45774155d4ee3b9cee21aeaf753555a765206686eac3db78201e64638b3a353edcf8458f1670e335bc647b01425f7bfa46686a5841cd1dce843c628cd0f578c9062f69dd678975781865460f61e97effe78afbc3f11447f1efed70ba9b25b6f7fb5b017033ddac0d37a25231da60632aaa228e2827c5afc1429a18ae061b696268d074385e2ac249f1230f5f07f0de0edffd16bda383b4cfa3518cc97ab2b9f243103ce2e9872082f8a1ae3a1e3428a1613ac38fd3c40f82c70f2dd332393343fca845cbc42a3f64d6aad2dd401e3c5ed2ae08e8dff8f8d98e97b29c1c1c3fe6e6d4a0e60e67ea74382b31ffc2e37fc87a6278dc1e8d79c47cc7e3a5238e7af223718d55573a42554d28032e09e0c664328d800626010c281cbfd3e1f1438cf511468f4c46a5653a0cd87ba814c1c3cdb40ee0e6daddfce124358b0111fd85386f5087f8acd5ddacd5d3a398f5cc9eacd532d027ee30a9a568c3ee78fad24426029ad8d5f8a04477e5ed9ec80ec61d3ed4f8f0d4429a218ebdffa2657cb83b3e3ee9917de95e88effe06fbd2dda933bfe872eaed30312a100ffadce14898a3bbb4479e078614ee5e07186c700d0c9300861cfcd204fc22b3087d130e2f829fe99859f8f4330b1f6465ae9010d6f114091d3dfc773f1b4ba81d4e90fa3a7ca6b8bbd9c8e679370b11826bb511773648f7b5bb4808d3203a7cc4b0abd1e1d6eac4fc9726a03f7c48033b25baefa16473c43dfc8c7b0f1662212c115327d3ee0838be0e36772c1c1f075b24d2c8dfb6ee576c072fc812e9af47dd7bde7d0e60dfbd87e3e1b40cc847881fcfe4f5f0f1bd213ebee7f1f0f13d8f888fef79321fdfb3f171c663d232f987e7f1f1bd9b96c940784e820802db364d22ac36848d421011db4425b132a582da4929a794535e524aafce58915e95524a4d9b6157bcaf1e8539c16081fd65666a192430a796899f7d7735198c0906493c61a9820a13bfb9cfa409c7cf726cf9de0379687f61afd2329a53796fb58cf6ce719b9438bd00e34fd782bb17bc0065c2d8a6bbf768d9cf787f1e068631c1208940c09c5418de60a4464d0ad4f37ea5d6191fbb396f06cda733eea42f3b1ff3b99f35d15bee3e29a8f0359bd9fab1da7ecfd6ef6cc661c271248f7438fafe241f88237d1219384c2d136b28c98744060e13e5ba14541c260ca3f492f2b5eceab0a818898c914ec3ae8d5c7eb160dbbe370fe2cc3201698e54e13de8abe89efbee8074177bee3a4f12106f9fd9e8237bec65f723db2ee8545f8cc87ccac5dea5f428fab8b0365fbbaabc388951acf3e158eb928018039daac4d9c3a09d8f6c5ea06c046b9b8d5889edb5cf7a6cdaf515ccd15d6a45c56e86df1312c9f0bc331e068ebf795448235a4b234cf792f4a7f5fb91ebfcc89f9f9f9f9f9f1ff9f3f3f3237f7e7ee48fc48926a8d3d1fe54d019a8096330a70963823932614e19cc09bba02aa409897633910ccb2cc3599661f9fe30486090c020a12639868d48d6edb2a59cdd2fedd52eb19ffdd88531f5c85bc2209112e6d4dd2e8802e5c8115078d483842798070ca320e184dde02c4ab8458b73bc59429b6b632e621abf493ea41f8f41861419e2b889748e9748671ca69e5c7735fdb1e37aa4837bb483fb66ec3dbb797b7ffa204ab3aff46622d20584c4f32e77b3bbb2d0b9ab3d77f348c72da88abadd2ce4f2918d04d16ef61ee7fb93c88840d01be4b1cb880dcf7bb14d5e59b0582c168bc562b1582c168bc562b1582c168bc562b1582c168bc562b1582c56ffd65e3d1d1c93a9858363c3636393e2c91cc3ae074683285f8c747016e22b8961df4dbb27c5dafda524b99c7235a5bb3b17769c6c37f1493e1287a94718cce125ed3bc69738629cf208a4d14959bc777559d24fd4113b5e3a184fcc46bac88c52c6ae0c3563989496992d237f623718de30e55586eb0b19aba0a18ab2e4098651702005ef8061942527ecbd00421e517c67416765841d21e8f4204707b84538b8b3285e74e3a58dd25abf4f747383635bc518e38ad25abfef9fa3b4d6efd3c9324a6bfdbeffd1c8d4e16038180e8683834369addff73f1ac5c4d86c209bcdc646c768f4ff7d15c4c383f4f0a51555fb8d644716f899c66121de565e9a4169addff73f1ab1a452a8142a854aa15228961d277588d25abfef7f343a994ea693e9643a99626246a3ffefab3587d25abfef7f3412c5c48c46ffdf57eb8d0da5b57e1f8da8278a884976898edf549b6a536daa4db5a93615eedf561cb7adb86dc56d2b6e5b71db8afb15eee7501c8a4371280ec5a1389dcee4214e27c4e984389d10a713e274429c8e67f24c9ec9337926cf84fb3b9cae1513331afd7f5fad2b5d6ba56bad74ad95aeb5d2b556ba16ee07d980783e266634faffbe5a5d644369addff70fe2e9403c34337840a0193ca0193ca0193ca0193ca0193ca0193cb89f8625d5342c3bedbdf7ded3844eb59eeaa99eeaa99eead3847256725672567256725672569e93d669423e948a7c44211f51c847f439868a6e443d5e8a89198dfe6fb2e886e6f85c613e7f0210f5e010f5903eebc05904b2c05d227fe5a505a4bce4251ddfefd97829e6fb3d1c2f31c04b4e7cbfe7e3a5067c7f4d79c901df5f71bcf4806f087c7ff5594979e909097cffcaca4b13f8fe151f2f51e0fb67a466e078098adfe1f397473c7cdee1c367a893e14ee9335c05e087cfb0c50388cf2147548e291c88f89a230efe1b39ee10e0735c79359f632b471f1f7f436ed48fcf9d32c0e7b6c97d7344f66e129f7b07b4c4dbeca5da0701ff409ecb9e6ae20190fdc671a0b05e01eb14b03d01db12b0fd84ed08d8d803011b1f60a38d93e03bc0c69393e037c05ec049f09db04538093e03ecc849f017605dc749f01500bf09f809b0402c02e03361a1936c2c61a193fc938047fc803e2c74520f5b63a1930a6009802d74d28c25c2422761420061e1f3b03f94ac8c0f90871d2cd461694fb3bc0e375396cf71736579989b3f7fccf202b8f971dc3c6279d2cd3a70d67a323cc254331d00abc2fd38d85c6dae3cb8ff069b5754b8ffdabcc283fbadcd334cb8ff6d9ea19a915383b5615fac8bad613fdb62695891cd302794bd546ac566e853b3975a31e55e755ef65250a76d5630fccbb6e2cb8ffc9ac552304747dc5d6173cedf77208f785f8cf08f1f2fec91618f37de931efde6dc06a706f2eba5608e7eec3b27550a99d9cb8ef08b1111cf34ec8ca038078917a778523da956ca27859952d82985a158762e1b969deb866507876527876547876567876567756a9d7c4e97e9749d4e17ea74a54e972ac7493834a7ea7c3bbf1af1e4f4c4dc8c6c5ef5a56afbe053c8679a70df384987eed4d5c7f33da31616dd482c266784f3375fb7971ac5fce8fbfaa5e0d649a146961466d9c11d5976b055e8843b740ae5e0f69cd913f2c11df211dde09ea21bf7c1549d14bc9497a2a16a2a4a467048e0095ff842376c786334fab7f1410861e56c6a7cae06e8cb62cbec1640e46f9193367bcc3a213fbb45a893fcb19d0fdce0eb63b7048ea0f60bc1e80d82dd48d331365c016510d044195b5bffd6b1ebce5d4a29bb39e7bcaeebba30eeea300cc330acbbbca82b9e9e960ff7b1d37176014218f3811dce73e6304207dde891539863a6bb063938a65436373839aee33c3dadf631b99f60c4c9d1d959f1f4c4dc8c6c5ef5a52a2a9a32d4d959f1f4b47c463b3ee61b9d9c429f3306cfdc3b988606eea0522995cac6e6e6c671608eebf060082184d0512a1b9b9b1b1c9c1c0c21843042082184f126e2f8984ca7130a954aa954d0064208757cc70a7a6ced308df20e8c8603adb2a13715e7cb799dde91b075d1449bd8d3f231a16ca6cda4893cfe3834a7ea7c3b7f459e3b53d680650f1bee7c3927934d4299aa49295fb3a550cfae4673ad72156abf711a57ad7cd9d58024c87a1704a216f42e41525ed949ce42ec9ad4a4bc2f466c126f97eb9146b197f44279a11210837a8a41a3d5980d3992ca2be3a46c819498bca6f46c3c1500b01d6c074f29e5f56e7a147360b2c99699c23959060876480a6c1043f8f259009d09d9e3df2fe50dbc58c10e86c1d08b1528c19bd7b00a6e4c4e8c8b9f653172110b3c6be42d62fdc62370556ae11d77b24dc942e0148ee368b6cac0c8a890adb2d5101a8b2ff4551b2dd35dd7752970ef50ddfd4527039b4e8b236a6318e5260c11ea445942cecd1294e0284b488227ce1f8ea28432bab5e83a2d2e9b9703602f1fc8f5f3b12be15771f1541f57f74ff72a257538bb1ae861f8686fef66b5b39ce59225599225276bb2266bb2e6c5ba5817eb625dac0b63612c8c85b13016c6c2288bb2288bb2288bb2288b66ac8c95b13256c6ca58192b63659ab737e8543b7635b3abf17a75355256acab997356dad55cd7755d59578361188655adabb9ca68b57070e8d6f9e8ef5e813245f612fb8778362f9188e38ddebfc532cab8ca88655c65984c383865d8d89471951171ab858373951123175b8f58c64b1110c7d8311169e47759c802134d2331ae2de5da1ac13ffc422f624c0313c730094d30421a9e48c80362c8a3314c42138a803f07638337b2b756dbf7401d7572bef24d938dbd3f84d7bb16b0fb16b0df4f82a494202ba583e8d6d9f8d8102a6216a9c7f99c1d42457cdab28214e78110927ae00ed877ee3c70845dc7d13a0fccc1c1116721be1a6752b03fb502f630b0db88398dfe15ef92ed3a8f93e895573682898139c198fcb70b2626e6068cbbc314e05edc0ddc365a66fecbebe7865d69a8994ae8244d3a46e9bbe3a017bd1cfb49f2f93975a6bb53ec2d0c6fa0ee7d2aec2f4fd51fb3a933c9f59ccdf5530583faf24335b3396d9dd957283d720d4aedc129e9917f4f6d79c29acd150af67709a92ecec68f3082bbedcb8ffeebaf9b43533c94f3d2c3f1f5a110941ea9a0e61014ec21285b9682ea38a4ea91f738e9a6e650084acb84b2cf21306c70e8c649082747e70bec9f432b1c92823d7b88bfcfa129746a3524519f3c1d99dff272c120d1342d6bf96ef92bbb5a6e8ef0c77677f7b7d8979b8db46645375b1797cf4c3048b277f9abab71c934edb339e2efa7af4ba5c198fafac14e40359893e8db66545a144593f4c8afee0ed297a67ee815b50ae8a45c05d672927fc8e4241f9817e0c89f658c8e09cc0b90e4cf320624f977e7c3713fe8542baee143ceaec6b360547e7a8455091de9d185fbb70b84f55c161f98a37f422eaf7d0eb9a4b4d682a65a2c8d19ba30d532599ab448cdec3f0bb1288c1a367b183428ca3dd302bb290b69bafabadc94b2abe97e481113ceb23065613211c9886444b21a5316d29445259221a126acfdfc6e96263c893826927d96c88543a62ca4298b9a3f602292e1d0672299c964c228910cf70f7179449ace50a5a973417df9a17dcbb768974a933c92515aeb756596d34459888644560a89331858e5255ff98afa8afa8a4a53cbb4bcbf3cd2325344ec3f2d2ddf5d4d8bbbbbcf196af6554b952e61539ae42f45ca942954a854c117e73f3de2aa4aa27ae42bff69efe1b97cd5b6c6a7dc18b0318d4c05aa9be92d515796829a250ab7ccf519c4d9f57eb9ffa5658d1b6f18a6839bcacdd767bfc10d762d3717c12d3f6d7fdfd9d2e2b845645d1e7622d1cf965d5f5e6ef6537467763dc987f483c3b47535d78c67f67a9165f96c84e4432223eb6aae16fb4debe2f2a227fdb8b8bce85d5eeb6a5c22e7624539621a982452551d07bbebbb2b6a90f9b3bb5aaa5a46a68c489b96e9d6422ab96a44cf7535df90c63ed8cf15f5ca80f7e0eb06a1477ae4117b5733e7c5a9288bcf16bb16d496bf422a89da7248957963536d9982af0fb54c3e424d3df2a149548f445fc81492a89671ec8ff9b40c87fd6037e1ed08769148d37afbacaf1eeda76df9b85d575fd98811116fdb6b365fcf3de41eeb6a84780fee9e8685f8ea6aba1afddff673be4bffd75fa3bfafe1afc73a246a7ccf9736ae7bdd201cb841a6f6a3e5fbf6ec40d432adc5e6ecb937008d24e66bef7de8af17893e764af47d69f9beec4bcb677fbdc8beb4dc2e49965d3f3b675f69fc4c872ea88aeafdbc41687ccb0de2f2f38578cf75afcb733f3b23b69f2fbb1f2e17f6a86bbc8d2b5f2e11c7df5fef1d12dff7c30e891ab73f53813bcbbcefba1efda0efba1f6d395095f4a863f96db6f6d9cfef661138129976559b88ab4df7cd974d8ffc2f9953fb73555525a167d93ec41262f9ef7bef6a58de086ef9ec353b354da3f1a2ef925496e77e5ed10dc2f221961bfa19ff208b88c5058444cb1d30825b5ef4357ecedbf23544db87429fb5bccb6bdacff9bd0ba88aef350b4252bd077f57d36a7ccbf72bef22fa96ec395168fb5028cbdf25e258881038f43342a1ef80119cbd689b3617497549eafc968754e0d0c3ae4b52f3076e70e67e5e21de83439f85780fa6f1dc773534226661f9ed67d84c440773bfc27db5b9480a735f552d73ddaa24d34077897c4d4ed1fd10b914ebab31aaaf3055f6dc675ff97029dae4b09e2c51dc45554ef2a7b4d6ef83ae7a292da301ef711e5f7909fb2cfb900a67b33bc208bebc87668b971f17cdd99ae3c66830b04a55553df277e94a50618f28941e49940afb6356da9644713da859426999ec60607f7faaa24ae88d3bc18e13fdbde710f25d0a89a59057a29ce4fda94454b49166e28927fbf348e7e6e9b1b19b9681583ee6044b0c074bfabea237fb142c3f73be72927ccd5e18fd993682e325910167c4b1c2727c061bdcb6c79eb35962eee5f512945dd95fd9cfcec77cfa01311e21fec418bb3dd238cf45b508a374828a31b6335122a59c1714274f300ca3991430344ddb3827559c50e9ba0e04ea020b5abbd002dba6e02489f4a28b15eda2099e85ad8b31502c7c00c107084e5640500204327c4c7ca850e9a874543a2a52fec47090e14b467c498f334eacabb92eb7979d525e9b747971556a31c21b2398181923ef0de736ed9a1cc6451ba163b7ce86811a1f7e2b6099b1523d50c76d5a46b16bca31bca38701001b6ab0f1e252e36ba1210ab1cc58a91ea8e3362da3580fbcbefe8aa558822ff4e19113a5999f419ba9009259243b682486612ff42e219f094823bf098f66528add25134e2b6d14353e6c2987d038eeeeeeee8ee38ee3eeeeee38ee5688fb60771f299d65bb4b39e7c5b994735e1716bbdda59c72ceebc230fa048c9d9c273c52729ee070f3ba308cd2acbbbbbbbb27776118a559a6c56e77292746699669da46b34cd3b68dcb6eb42d5a2edaf614ee29f107f7b74ffb91d953babbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb230ceeef517b0f185250fc9916123d5e231e7338210a59b66d14bba6dc36dfb69ec1766d191740b8b87852030d571527e86ef768a36c6123cb40bd985b13be4c0b52ca39a9747104c3304aa36c91925bb0608b9fa9640692b8a2ea48650f7c0b2a4d723021c8e90506052433a69c5975777777777763ed4d542bdec38ee9a939bd07f4923d6370cde9292d6b22048c6210488f302c872639187bc28b895d204d96a0b597dabca05713b6b9caa4d44226dddddd6328d6c591293bc677c4f470f975e510036c768cf409e4fa91d735a5bc308cd2c4a4ad78aab8ae39e709685f32474a79e5ca027c5d4f43d7350b70494aaf2414dbc2c6e58ec7e46ce1640b1e5c4fd8628c313239313912e2411519852656e86ef7c824259b4c81f0e19cd715c16822064a29850f3b08a5c919a030c9f9b813880753e21725284984d19980e1d1a330b9b911850b1b781c080402795e142653b8c83c1c6c5d4ebd914326dcb09e2ebfbfd9a6a9a7486fae9faca711a4369b669b06368d95a6ef6dbc7433bd1e73269b03348d763d2c55733d9970cb8ab31beb097b3cf1723464a23db71085074a68db6c504784418d1e903848bfff46ab93ba360e5a20c10db2882206121ae0999ee9cf2318c4e82243c3089a70822048d1424a0cd436d34da2904d49774edf0b9254018a9312ec80082d2647703759026ef746a271818a196e30842a0c010b343d06dc4d4c4b74132b64584e764dd1e6f53b17e0a94076b915a2243ec5c0cd199e22720a8061d80faed9e40c20974f5c80a70214c3b0274edc8561ee18d6326092a38324a0cee961c75c021639c0b0d913e3c206db85611886f509c3304c0733b8e6bc0208255c010823f0410c5a60021a4c0c188bc2c406635bf0006333e3628b6c3e81653c39d01c1ed8519854c1146798035b5f1a1ca7ddbb7df44f994a6b30c4248679470ccb400378c216e311b08780f2a3d8e53e6510a7a7e9cfa11fc23d1fa23fd78e19e2f43412888e3ae20783903c300f7e8439e25fd2db3615b2250cfa6bb753a63678c365a6f81d1e781d443e47075e00523c69c8efc003073e53ccc3063e53cc43039f2be631c4c521009fc348c81f91813740110f0f10e411603f02a08697ef880950e3f2f1a311f2f131539cc4c3243090800444f115b0c067279e0171e5a197de4bdc47ede1f5335e6ac0470740400254e7833a5047e6030fa14c08e0088a87748a9b69f5c0cdf52372f3f71db8f94752dc3cc2436e8e893b1cd88123ddc0cd54032a1c69066ea6426ea382b42adfae18b8b95ee066da51dc5c2d7033c5a51f0610f33ac07c576931767688e8d6e2056e72d22800387c7f289e13cf9c7125705403478d4e8f53fd26fa406197fcf01d57827f61bff3287f36a0bce42d27f9a030147609135f0407bce4c3e5fb6b7c2e865751a99a060abbc489bf80977c014b786986162fb8617954bd893450d8250df827bc244d4548386a1d2fc5934bd4e8ab15a268aa75a0b04b26f0457829a29c744508a04cc4028efafb3f0a85cd70f378a9876f1fbebf5b5e2a7d7ffb78e9876f20bedf4f5e0ae2fb1de5252188f87e577969e669be0bf0fd8ee3a51eefe3fb5dc74b3fde88ef47e25b89eff71e2f2dc1c4f7bb8f978078a989ef97272f29e0fb254aa6e817513155010a4cc05227c115dc71c0cd50c7090b9dc480bb00ab00db84854e4ac045c03dc05dc24655f431c0fd51840f7b6333c415c206619dc4e3fe60a19376dcec291c656e76949b3cc7556ee337231b000b9d94c3cddd039d74e3de60a193eeb5b64f8dea540d1b75685c918d2b27addc6a4136a69c24552c54787bf701ee6983dff2a21a57030861848e921263ec5e61414a39a78a07c3304a630f6be3344dd3b6cd25de4ce9baae03817cba506bad2b2b3da118435d7c18823647a2fce00bd6260905894cb0753fa8f139d7f901959f4ae42186db9c3550c2440b255840a981939ff8f40bec1f953cc1710a8987c4a799e7806e04a61d1233a35996a9c01187ab5b7e47ed27577b14af74f944e45f2f3b24a2f6d262797344622211b988737c8e4362823a24e2c76cf3ba1a7a6fe075f0ca78034b3ba35322bebf7f9645c785b4425a21ad40c9d7e28b8febb13782cbc0fdf243fbec7d6853d3b4f7cfeecb9088fba79038fb211eceb2876f04cb4e09f9da9d4289f8d99d22d22b3f5a618337302e62bfc95488d50c71cca9f49e714298037bc843a335208902a1fdc03f4c7be8935a29fd98a48938e4713dfdd845d4e27354422ffc99371ec1f44248dae803e91e7a14d332503efdf7d2fcede68f4a76739da2dd4ca57c5fc0a61f3b1f146bf78339e84b2974d7234a9f7251e3e70fdb9952d081024547272727479a200a92275190e44441921305094e142438148b0f6137dfbb4cc6a72f3fb317fee6598c9ca42b9054a76c26601896d197ddfc4cd3368febb66cf3ec11cfeb401fb1dbc9aeeb38bcd56859a669194631d8f5bcc1767c06d2ce97d864c1c42e09af2635e609609f019faea854ec17863deb189a110100000000a315000028140a070422a158284b544dcf1d14000c7ea6446c541cc9c37992a220638c22041143000006c000c80ccccc28093efcb76e8673b481808b1098b9df6c3280ead4a51c0004bd60d7c184664f221aa9aba56906e01e9bbde4e6c560b88103249ce91a15ccc810a23a7264550ae19b3d3be49886d6272272acd5dad876a247fab2ea8796bf2b175a4ea4ce29b6dad27e2b3be0507d9e4f430a64817c3a68d18bdfffb7c0e6bc05a7c677b8659b7cff7957d906210bfb19d57213dcdf1cd79b0946c52b5a789a210033b6a871fe7b87197ce185f18e4fd126f9bddd1a8d3293e0b317160d9939986b389650914a4df9cde61e0ebc1860d3dca00d1ee4fda2ff9c7e7f26c7a7825ed3155c37ad36724f55dee63dbbc832f4982229883b290832153279ffbf12b9cec25f441165f1aadb388dc1b6291d0f9916e358a93b912117467a138d99635acf37a74981202da62b662186ebd22b387409f4a207c2da33b113ca77ffcf4342cb1e8d9af54ac45b00d71f68e32ddbf241cd898d448ce3bd0d42dfee85d5171e61b7be79de6ff7fad9f279d34d5d187dc929644f9e8e27e370f52dacae375c5b78201888fd2a95ab5443b7074991b2fc59e0694d34a3aa916e3b09c6f405cd241c4947425b823e2673871f04c395cd950126abfadf60f19facf42561f5e62f97b493634c8077ac58815fd7c9acbac25dd1134e1a9e8955ba05fc4a7779572924206e495cc1bfe2dc8770729bf03014e2e1067b2d32644b5190bf89d45a148be94be1db30f0074cb6deefb63408de4d1a4832d9fb32761f3f51c9d13ed96be65bd4b8ebad59b7ab818fbf5d4b9bf72f070f7f9efaf0290a99875aee10bbfdd66994b3cf7168ea813ada644f83b3d231446e3d5ba008df269f1dafc7139218a9405420a2086578fb7f345993593ace8b1e951074dc437eeb11f3b2eb8d0d7c92d14b9c5d76126b61d1391599efc75d5066109da8a34ea014fbc717bdbcb9c4db46d4e3c6a97bbb147fbab88679e4806d016e3a073df633dbbfb4b3fe4e16dfc3f25d58bf03ebf761fd1e65adb7ec2dc11473a3a872ddb03773f8aca9b74631c53b1770290969ab7d0a155495f3efdaf7a3b45252680e1fab7760f50e2cdec3d27b587b074bef60f10eacde81c57b587a076bef6015211d415081abb311e247229506e2f6e690c24efc8926a06f8b8be20a59c1db63afbb2dc4fab356c382bf8ae82de198a3b77e70f918a1b72694a792b508bf6bfec3b71f5cc118fc3d8766d2ebe7c4f6a1959e60baf359432f5b133cc4528cff190849a948a89e4cf05f601b599660ce69a46dfa4b798b77091e9871aad0d2d0313a765b86fcbc8dc776cb93984678ec8d02b7cb7b0e77c7d4ed8edcb06c0e6cc6e263f6517be321d06c28050e52bc1cfd4aee99d73efa5a725dd27b18639dad96a9a6f2d8131501ad11f265c3309092cea1685b6d734ad3bdf48135c330ffc47c638db82f3ba4abab34eb3457bd2f49101e00cf386b91d64060411fee4df5b0651437ed64d0190a46263448cc427bced136f61014f6d73ddfe952053587dc8109374fbdf5dcd6d921f94b5097dcc47a0a96e9f92222906ccfc49cbe7f206ec793875f36123eeb07e9c25e20da0a963b60095534280c1d82c49a647a2038e2c6151db43e3d1de9f702b9e5ffa68af35b1bfe1ca942795dd086c27e8cc6a4274522699f40c5e1a29369312f8ba899a28fb4e5228b2c623982af87fea8fdbcefd4629ef230b9087b5a5a7afb04b24d865fde2cd8853806fe97548ed900be54beae0a0b60d3ed3e2ffe76abfc46e78a177e4a7ce8739f70b285aeb16cbb07613a59a870937530a14d5dd2f08d8e965aefce6c1f8ed63954525728693e7c197c3adfd2ceb5b0efda27e866f15ea053be3724ce858b7acdc8e73c630e176e9714f83404c448545a22227e1da05279f4e957aa6aaeedb2d42a1e3e7aca158db5bbac4aa5c3775f59adb91697555171faec29af34666dde82f320566c8edb02869b7782b186312323582439a23950f4f5a39fef3c9f94242aa24833555c2c52f033dfe099a5cbcb697de166205b5e7fb0ed9e236ae8504c9a638229ec0b5f2db3393ec4ba81a033d2d5766c5171099ebeb7ea12942d96c21b0fd02b42bd0dd02bfa26783cf626d720631afbdb54b1decc11b9201eff0cc0cda5faf880a93e02c802de9412c583bfc3701fb5d2d7f8aaf1e360f820e888aebdd8b4c874f2008cc10124144e8976521eaf18c432e8933e349f2cd13e11b088394fb0b97a06608506340108c53a63bafaa0d2587382461e9a4e51633fbaa7bf7120e98d5e7b6e98ed235fa0ff3094f616ae5fe6fe5f007156ef5baa6da1238934129cc84172016b27fb0ed70091d820c331d30068d9840680b416d612be23417c15c1ca0a1136c7b433c92ca222b387736dcc050111bcf8c467b5668d2a898458b80e9b07b767dea9347cb9dd972e2df519017b4386c7bf284ba26262aa44b9f6b9eaddb317bb4209542fadf8671e3c066aa9a34408510ec78b2e94cbaf2d77c861265d8e17b682e4555aba2d0b4b233d046a7e974096793f4e40deaee1ec24f3da208d4b1511de13781ee4e3f04e4605b7563a394cd986669c1f58e055c82bedeb51bc00efe43440ce8616f6a423607e96dbeaecd5dd74d450687f57a2149558ab2aec0c23841c208ec928323831669ef92ab5b4bb6ef016a61267b89b6a4b649dc056d30bb429393a75c560451739b5526a99f25336911fd95d1a309bf345ea7216749b779349e76d97bf33a2d2db4564db61657f1402f3e34bd3568c2c41263daaa75dce2dd621c876990a831f7c3ef0a53d9b594aa54791425ddd51e95fb0276fcd2a747c6426b59b21e5ff5441b1c9853ab155bcafb978d7d6586b152b1725186bb0ae2c986a010235e1f16315b5aca5ae7c6b55402fd5d831971ac729522790f917a30dcc5f337d478f348ad077249a7496648bc102dce1afa0545aedec23d0dd86263a195b20aedceaaed2fe9421a326d7e74095c9551a333d86dc61eff38f41f8b52b3e95638e636e07470210e6aa9a0df10037ff36296a4a4846d56bd1cd1d085cf8b8f0f976eae5ea56e5b0c3eb4b459afe6b43ce15a63ad284b8f5b18d00d561cd5cf0d5463066cb3c758ba9c691257b23f2a8553027f3b59582ac924c2d501f7251bd55bf21f134d99ac2b4e22e050341c7cdb532707d0c900a64cfe9b895edb9575222dc19fecf19bd07a66850c77cc842af465efe1bab92858c2777fa6068a48a01b78584c77fb0da61d33ea1e6358cd16fa8906f5d940479e08958bd32a47d376262dabbfc90b9699f5b8a628f8cf875af71718fabbf2ec356e516b2ffd740048880f23c0512ac31eb80865cf2566f471235b780ff1f6ebb177fb64fca307cbe066f41f2a642d4cee9407940c683267c567a773f054e072e01d9a173027199510af63993d3f916a5ccf0fb8a5b76da1eb18cc910f4f70359704f2289e434c8cfb488f876d2505f8197e46f70efd330f96742ba3f1343f81cdb22b03c26875397e5353a2463b024ccc5a75e6cfe06da6f1b2da36f267c09c10b43aae7e0873cb75c53939abeaab9ba0c96bef27efc2995f538f7d7393962a436f6c272300c1e411c12f00629295323963d439de10a334720be1a2c2aaded80a60b6ae1b6db648f08f94770897238bf96a5c595341be961d3dd445c52a44f4141ef7e94d64331931520ab9372373d676995b4f9b7d2d47ac1a081764dee23383e58937717b591e9725a3c0a2b3323d50e7efd4db70fd3e006cf589a63627687b8bf8362b99b65328cb066e139e132aec0251daa15b178ae5d1df24d8eb190ebdd91889fbccdc42c64629f4c808b6aa0a0bf1364e0bd7181b5f24f1bfbc05f7b64acf8bd47fffc9a30ad4738e698e56237e85e9ce53926415e4625631ae2aa8f0915d1a3b721c89a716b4366c2a48f32ac4b0032257de907dfa8605833dcc484501262a25a6198517ac8cde7e367f70286390208653220c30c0a45f6df6a1085b27b24878bd2ed98c1878bc2182772dd870abe13348d8a7a3735e4a37a5bd801be586e528a7e66d11674627cc87606b71e46c2082d350191d46d9e4f95b74018f40987bf95c7cf96d09e88a34983e02822ff5b3b79675f439682483ef2d9d5daa4a42803488de810623a5c16bb09a4897aed310e4b980f20093e648a27ff6708d15fd47f0771b943f05abce1d754d700049523e95d3019d20ff3d667465035c186478438b5cfc9f4ac0e4b94dcc76ffb8b52ac39b476f5d1ed3db3935170e0da2bdaa7c58bfe6ae54f07dfd7ed73a5a1e87baa89927b44ad227b27b90927aace7e8ff086c10b396f59d591ae79e938e4a29ad242ede8e2c963e048dcf883faee2471f868eb6c3812586fb1b072003da61eadc971e8dc84e955a412bc532a03505ea0db028e04cfac5ce0e870a4dcfcd5c4eef7c039679ee555d70d190883918659eccc2ff599d665690704fa1dd60607932463e6af82fe4617d596e93001a7193853c60ea6a0265b229acd0738e76a58cb0c8fd135413139c63ee5b08177c7235de4d352f761a85e1251413bbae910c752fcd5777b05a40e3e93be8d63f4683080ea8d89fd8ee364339c9958a3010862f476840fd697acf7b9fa31005a050285e4a92c9234aeb3cf985e0db14108e8289052fed0d615b614c8685f171f72f92c1b6b98c1b9e1819997e2057e8c316f767d15ddcc48a4f5df6e1e94047ee0495760ecbf4061fa1983a34cd9ca6e021ce324adb092817d4803dd046df173239144e10aa627f8c42413cc4e88a3b867bc5703f48394d8598ab125513a904598938f0c5cbc480e122e35fb88a98d84dace780844316e52266cdc0b73d69600b4292b167bfaedf7ff69f5524f8ca84f98b306b9fbf78b9d5e767298452bccb15cedc094f08578daa38e7d052aceab50efe546ca79831c0c83b05415b04acf3a6ba5e1afbd862776debe37044372d4a5ab2fabfaae2e9e8391d7fd65dde78e59ea59458112827608f892427ec63f64c2f7d349646a915b0d2d85f4732d1616146c521529ca4d90aa05fb80bf0ef998857ae170bdc763aff362d5953e8d4137c9965bbc3d462e5bd36904314f6f6244102c4af9bee39e6e4d4dcfed381e2b9a0e16a62cfd5b2c925e5105165fff9497dee7590a3672e94e71586b0020996a7b5cf4415cbc4acf5c1807b9fe2e6e01c34ea31c09b1f6507385312ef022fa24ed1ba485a8d55195e62fb61597e39f668fb8898513d82f4dfb2d2ad792dc1ba9bd6453fe1cd94c861c452cd749fad0e17c89fbd7e969a7ee213a6bca8c24da17521535cdae8f59afd5971721639073abb7a64cea878a464bf317942b3bf421f528a6a55e0ec8a6b107253053a9923d54d537446afa1454bb4ddda953e90b2ea96dd30e09a9bf6e1a2a94aa440afec9e190efa60ad0aa502a22d55e34c59df00026d4c57bb71b769d4d27b41c976426839402a52e88400b211344d8b1138876c225a6d31c2639b6402b4cae4c4ceda4c294b5eae6bf0ec6373957f36216922c1906c97f3a07c116fba9b396650f939c32abcf1f7dfe8e5c3e41ca3942c892d07b87bd095a5f7f5661cdef2670b3806c7aced5f4b8b5cdf148110ac279e8731811562f3a5c655755a93c3058c5575c7a10f8f849cbc3dbb8724f12cd852136150ba1bf7a53bc854e401491b5851aff5c3c368296e0d5b9cc1970d405c47be205ee9c8f189b03e103d0a6a6655faaf87f74252e6cbdd9f1501dba15ce4c7bb1cdfd5765edd9ee05965a551ee014aa003747ad686af99641bd5194adb300884feaaac358d970ca605d34d73dbf7a9d6503bb7c89df10c1c1bd68adcc47deff6f88928c2d505b81ed34da7000803b57aad990e3752e2ab50f92babc5a6919ca2b8637312ddb8f5a06bcc3aa4cc6b1c59ea0b38098a09a8dd6ce354888b0ba4bbd8d67dbfd15988a807fb42a740ad3735291092fbfb1301a7895b91f475821d52db17fd8e1c53619f29e0ba2965019872293a89e97681c4e141114cd3be33ddfee9f32ff3951829dda24c3dd064f8132c3669ae193ded1b78e4b000427c29c6d8a6018ceef4967ca91d8f7973fd370a15e2468f91284403898a1e5ef425ef649c3e2e3e88fa54582197023ee4ead4d3fabe73ea3c8ff54e2bf700dd07a59ca3deff5a6b918a00e553b8f67115ed0e1125e19d664ae876aefeb288dc5d3f103ec5c31b0b3cbed78fa0782c894610110038f35c122673792e95fdc693b011d6fcae096756fc521d9a3db27407a6bb0315030326a07f6c57d5cc8c3fc7432a0801f23add9f6ac0f0852ef5a2396b10c483127c541c389343126d24488d97457b605e2905bc2ee5febeaa99c1bdbf962159e56f912beec8aed4826e8080cc459ba130f23b7cf61214dde9486d3c0eedcf439b8bc585c91b1753f378c1c7e8751aa773ea0099e8dcf86580e9a8c391bf98d1a29f036120e12cf5d4c4308dfc21cbf3e8645fa79c190a025142d67ee4eacf6569757d50d70f2332f369fe0ccd1698233691b7b75a33e631eea1d8e52d53b521ceabc0961314501cf5c43bcb796c7b79816cbb02921f90b6c7d918856aa7f6c68048634eeb96106819c4cd8380c5a9870c75065c1855d606f40625fe96e696850c7d95d98ea4b0fb428c87eff4de3ca90f4877010c391aeeb3620148eb7d7356491194a7ba8bb92bd7e479fee02cc9db9579fe6ffa54a44d109898e0a3125871ce2e943e125c77e0222601a191c17a6a7034ac59c997330ce9553472b1c99636cec701f39b22b7e5648edf711bb3fc2ad6a77ab9bd044ef4891157094272352668b2fbeef509ca6be55db486d435809334dabf6f1f2e3ce57da64592abcc25c2ecef493f7288b66661474a66e0d9bb8134dac4541967ee8fe193a0e36d8e98a08b0f831e9f128339c7dc6cc54321c94ae96e28ec6470ff9c4ba6ffd029924ca61efb092a15934282f97742c1ce9c8fa1a6ff29ecba61284bc2fc5cbcc34cc609f15ed0cf73325ad7cdf53f6cc89c9ecaa0c02229d0681ab4124ce80eb2006abcf563890a8051027628bc38e62f09ac7b9bf20f8735b40a6b82b6d56d123fe688bc8b3fa1b21a99a48aa1028580cb0aa308d66ba3634e7bb10ccfeabf235f792845e8ea8f6a6ef87546afbfa796795fa3610873d2d554a2806848f518f3a32054cd85d2b910ab83f2951551e74cae84d503280d125289fa67dfee4e39ba2bffe123fc9c34a5041a2eac49137aa4e9575196576037a3929581c72fdeed9cacb99922832878aedb9c0612d03e980426788d13bef468f900b61c8730db80191c504c7ff983bce091ae5774a0e8f02d0d04923d161922cc7f767c423bade087455c7f5a65eee38f68272a14aba97038134d053cfb60e3bbc38407185692680b234eebdf799a2fadecc5050c5d066a8b5bf224ccac80d9ca3d981de05858875b21d67266d389daeb2da4229c49e4c2663071b369994b54aed62c579ea72f3443b8c9e68a4a586b46d5c5e698f4b6117e5df22b5ad658091a2c388d1dceb32b417415e52d65915382a2f678bbba6aa197663c35088993489a309253f79b0c2496a9a3ff2854223651a1f17f07fbf9f171783c97a40150c22457b816de88c33a4e961cf495aea4f13e32008f8f261cec45d96eee95bb1faba9bb2782687ce4e0a6e02aa99c53d55f944aa69ee79aff8abfa4a3f281f57cfce40508d463c438d6f5ce604934cadb8c9dedb502c5a72772a9fe3e0b54e3983e374e532d0a7dc4c89fce7a049e3f70b38229476cf854d7a06063297d0f290061cc46770ac95b4832dd7341d67d6f184e5805405d3a7b1529a8eced7ba17df0cbaa63528a4ff49ef913a4564a126704ee55a593828be998b6242542e8d52f937a8917739350224ebf3b52208ae09d21df482532cd28dad8df85ebf0152921e78071e197822d4ad99cf7367fe907fa6d336140ab8c7e55c1715cfe46556be98b468f3b118379aaa93d3875398ed73987979c7ff969b6195fe168d3394f303cd218f5c95772532085ef4cf2c180d623c2736bb33043c8a5246435b900c9f856d98b3b53d9d9a71a4015f08bfa1148a1f434d01239a8e9b566b6305f539a1a453e82b47d45163860d48a23f34aabe8fb4be10bd59dd2aea5ff4c9c1956a3731654ddd571e025fa197f08a6001d73af3be1fb98ccf1152d995ec3dfcd3fa69a661e2a876dac360e5c0d8362510233c692f4d53cce7007de840ffc5451df1a11988ff78416741e8d38300b1cb51686adec2eecf24f4a9b366e3fb901b83dab8d76bd25fdb7651fa9388900362992a377a0530574c3e7106f023c228be8ad59f596a89da03324943cf61c541e18512b7beb01f51fb57bf05a799865aecab8ec87a7d88ad3a82db9854b709279e49c15002772db405a368488313175ab72fd5ccbfcde474885815df40c306435538ebcd2d98c0426319c01e4df7f1a91393f9405be928c13df4e34fa0ddc7a4dfece1a25067b29e8f4b14f8d8deef0775b2e0b3b07d1781d6f7789d2de8934fd21c4aea046bf0b8ad384a5234cee4c922a333073b989db1e3a64e06ade838acd88a9a7a8c447e848c5c31b8f9c3cf198c7ae9f8d7a22373dbae008dc2ccd47b5af0d90b52c4d5fc4deae859ecebdd4515c0e756628a047b4eeb3922040cfdfb9be932594abe54c1e6df2785ea4a0006c3580e12629061582a962ee86eaa0095ac1be58ea3f5c736da16863ff0796694bb071a7f6badf2bb1f79c126bc36fd61e45da01982ae97258f5bda0a2f0d40e82cdde70784033dfb296055e7c9c3b4bfd6bbae58777720a3b5c7647727a62cb2ef11e2d291f85ff8162965ac5869021618ac3aa0409aaece77551ae01700bc0a898fa8d05a78ce7d5731da42aa98cd959578df6e5254cba06d69b9d24605d939fb3410791223991f3b420eb9e688d7a1a88d22485e438a5e55a3178f06d5d1be6904b891410d997759f756d11e3dd571d901f238b3d41c8eb1ceadd2415e942f5e8ad05d6c741966d7b41288d1664719f2b4aa4edc96527cdbf5a71d7ac42be47ea5c8f2960acbe5467c6160235eb0e0875f57a06198584cf4fe9d4c0b9289d6ab0c7d95e8325feb408959d34a5de9808a0a6df09e7d20da25637e5c1c359706c40811479d8a3dbcc435809402de8cbf7103f807ddacbc34bbf963e18ea5099370aff05a87c51be1e87bcfe9b2797f4e96795b0aba1127dc660516a0537078a25f025a71ae1c136ff8c8e5a3dca7ecd83bddab0fc6b3a523a9c15aaa1670ff2f2d5640b84da3c421471c7282897a62dda9c228dcff8fade8a0f67d70c16256b24989f9b672f1135dcaa8c79338a805d0aac2e499a6a806c67d186a5d6f297cf49c5156efa47f1bfc93c2755206cee1f1c688a9a4c28a8b1d13600796a8967b2a9f3a4cd9355a90d408a6c9280247bf4baaa173934851a8b9e4994e5efb1a6d9b31ed59406ab788f9ddbcd10aadb8b246b5cc5a6c87b6303f318f44afd4ceed8f7f257d51e9debae806d1e1b2de4e5facecf4df5bd9163380f5f185401b9e2fe1099e25dce0f69813e70c6364c9d11b89e7502618a6fbf21c9c24d800c88dfa3065f8ffa050b6826fc2147177e80a6748f842ecd215282b9c0172868980f63c9d58503a4509b04ba433612da8ef9a2c7fb8386f1e7cd58d50742a3163ad07223cede4906e15a2833bd9b700506052001ec9b05bcb5e03131b12ea8096dae82487608a8c5475bb4ac6163416b2600a6e736ad4a30e089fe73e980867922cb2c82bd990d1d7f21f85c97592ef9d0c7c50ef3a69597da26d3f6dc31e1c2d679c8902194f3539a2e30ad577cf05eb6e208d5f62499b90590c93d56ddbf0556170fcc78ce4c603a8d5886c4e3466260764d54abc8e15407274a5b5a5f3f8e2ceb574630c4ac9cf756c83ef03a19ad67268266c93eb645861bbfbc2a6f51f3a2657d8f44fc50be88335615be2f5df81018fc08bcf079b7956c17598de2b14c1165cc93fde4adf64f4e5a3d4016c2f79c0a688f3a47de807fa823e4cc61ec53adafcda57df371dd8f2639c362713ba8ffbda5c3c6c721c0b5c0b0cd3e02c1b825c52070fe3b47175458e76e1bc782b42bc321904b9a001e5c129b9221fe366d9628779cd556d96a7039804a1c966f9d8c688f85178cdb2d1178735cb1cab2c35cbe2c6b6c545cec9366e644b6cd32c2774725a8d3c6cc9a97cb974cd413edea865b817478b4c4ca096b2df650219199833cd8b10f9f299c7194afc8c4e84e935ab1af8ac592fb49b2f54dd1341b2e866ba8c39713c2d15df0a88f1f09496b62250ee7ad0ed2e709e6314ab5c5e80055aa5a055d98c482d07ac7020e5a75c644e5732710bcc9c78908c74cfaf38ca905751ea0121f7a1d673bc85769a89599a920139a96f80f4e903ae60fdd7d0ee7306762b6c7892d9714f01b363d6abd9d16c0a9f275215a4963bde6a459b53c4098909af500ad729de7d012b9284740da89e45d640c25430ac659d5057785bc238a6bc0c6459da3a96a2a7ebc5c2dba633b0a668f09be3940872a19458619f31e0f43001ae46c47822da000220d1da09279c5bde2293649b7e6cdfc490610695c61a664d44349cd56af20fe0c43a9a517aac7e211db871537d470bb3c8dbdc8ff2a84cd2577cb6f90f08ecaaca572c9e3ab35b1c6508bc227a5b3e251e06c2bb9f2ef8a5a5a3eebbff220205108bed8703460d7759eef982b2deacf380a17ff7c391ad6dc1a403643232790305009c73ae394708f6fdd85c83438859501538dd4230d56303cd62decfec807afff47790de20d70d79df2154198c449ebfd2492fbfa90ce82060b235b63360aa7111a19da121081abffc021d98c11501c9ea5712b8273bb02ce71d3ca9297acb96bd481de9cc5aeb45f7337516cc4dddd81a561a263f2f264ed552e3136bcdc19e31b7931cbc93aae56178c21a3054f7a544a18b2102756aca71825e52d37fce425ad207a24e1395486d0594d35a1f71a640f845a37fbda15cdbf859c0e48215976e5f8749328d534b6f6d43cc47929f9fc42b0589a34bc6b0fa5d9c9adb8fb44c2618a1397d9e4c86b73429b10abd6656888351a9a5c0e26b0f378efda25932caff38baba2fbbe3925283330b9782e75c051848f0f4859054a5221f971e26890af6f38b96b09ade0b2c8825d9d854a5ea68575b146d66471860fcdd88fa5300e43b14c3145657e46a212d821f36b42017b4ccb4a011b72d497a03c17aa62cb28d2501121d7dfa05e7432a307866a7b70c519dbf1a510bc9ce3e7e42054254519e96dcb94698a281c0d3b1c9854067eb88d3e6d276543511fca334a92c1c06a4da15551c8bba39223e86a62f536d42b2dfbf74d09b44172dfe336a4bb3a719eec5ed16f05250be08b7768a8648d0931e531a07061f324e6b8bc903613268ce6fcd603be6762829dbf45c2492c777a51e755626758cccad3c6a5ae1e5843c93b5ba4bb652d3800b8c429b69bc8aa19213a90ab4626b443331200a3af792fe44fe454f3c4df7ed692adf51f7283eaab0fdd69e243682477937dc9b77f47000cd46963befe8b8122fc027381b4119e26cd93c08655f224b024183b987d920edafce15e884399e306d67578f3cb3998417e918ba1c232512755e5b5edd9ca8a1f67d38b3890a4aebebc3b5876c3b4c95f6f54f5e5c403255c091490f934b890ee45377ac5f81e4d121ba3d1078d3e44422a34e8dd5e6887a52ae81b8dadb2b078f6de0be6f474f452fa0752a3c8ecd63ca2d184438bc250c349f109d226739acfb47f1a2e9a6a03774a0f51849ffea0482c84129fe66f2049204cb42745a2bfe18401468f1705113ce75b9fa0006ba637addfa0d6008fa501c3c0738999205bce9c2436af25f596fbf086a0a80d6399a9feaed380a22255bf79d595640bf6c6cbf3d77587f50329c215ea74497489015ca1419404fd4a1762bf752c6f36f50f256e8fdc504edb5281dfd6f4eaaf412458ae8019f1596a17c71c6bbf2bed7172b47774e170a0b7cc8e32fd5012aaca3dc6874444ca3cd1026be3551d37f3598dc62bf7ec6dd9499fe844cc9fa32a7cd647cd7a86efc71e0c03115c576a413ef0bc343fb4a9d061e08078ec85e75432170972827d3edc6240f610b8b82fd664e8f3ffc9f9997e32ef0196cab08691c89d5deeab0812959099ce4fb6726ab6bc849c93ec47c59157522d6d18c329a0cbe89b6d7345216e94ae22261c5abe8a34968e6581cac70a0f92a64b53a916a01d1b4aab719987692d42956d0d0dd687ca42ba8a3993af69b484331762f8b77895e6aea44f04cf9a1bb4833f32b69da5169602d8df20f6bb6c034633749299dbce07c24a5457940a02de958eb35e4f8c4d7c0ba402e061b7be06193f5d53d32c06d741c888d55472efe855df6ddecd81cac55225d1267c46088942a89478da5ce8d4f3036b68b814dfbe3943073d9b081db008fd559a807634ec2151bf16b54a977dceb92cd5c238972602ecbe127b1a1a5355ec9aa529e72366ffadb439ad8c0f86a4af2b306ca2604bf113d7d588406064c30267c5e8fd2d31a3cd050bc448638b1df9d66d22cd0900886e0188c47ed022988614a1a9a7f946807787251b45340057fe526cb71699c079c72daa2fe3e0cfdde365530e9f65e86cb66acd000a6b91a24d6d53df7eb059ce67411bcd1ddeb904563486de896e018c2ebd1cd8c3ca2cc3af50749896d1a49f4ba95a138d64905162f087750c86f1e25aa5119fd2d01acb74d82e5840cfb4e611422102c3093335127a37d2a5dd35804ac8e2eb43e6fe3431e2416375c9f95882fcced17fdcecff10f2f0a7bf270b30ffe23cd266602386cd40ec4301d6acb6a10a22da4ee1d3b905580375cb53c74e6c849a93bbbf0d7414ae656c2df2cd4a9699b69c826edc005ee0a7ae8f035da36bc31e2ab23a5392b7c6c516ac3ce471aad1dc9e325ba7e037729db6b87654d8d990da3f33a0d717c3d803a03fec79c52545bd61f6abc667c02e713607a233164d834b01f01c326a690a33721e7869bed3207c76fddbe7ff1498d2173968c67187ef35c011aa3f47b17b94a98c6b48e92a0058f464bd2363aa36f84409540e196165d3565f739030a7f7d51c6d2ab9cecb8d376f8066a82fb3916a957904943c58fdf2b10581ea8f9e106c9f3f5cc97b190dfd08bfda81f90d800b9bed71c1c7f6b8cd84b6be8baef3cde19aee8070434715a56b2ea42d62b0d3102fc30c1d4a2baa192785a05f50db29fa6ce03e356b16baf4e70dfe2760490c1bc44d1851fd70c30ea2f96054627b0d0926834d518b19ceda02141d32513cde8cf1a919a1daeef60d38417d2b135abe60a24649638d1f8b946013aef2019618bb5a9e72c83cbc457efdb173beb42916ec10518995afd98cc94400ff27a0083fc0625fb4580b4cf3ac40fe4aaa798a1db9c0c85fbfabd5189dab33d6037d0ca87c3ef493c767a13fcff6f75f3ccbf21bf6400aaa1cdc363d50c179a1b657f01accffa7847d711ce5e6f533065656e9d55110899d646d24a5b60f0dbb832c70c5d6fc9c556420129d3061c76fa8d525109a5f3f687630b9b64bfe66728af6fe5eb6348bf230c9ed465cdbb5065d615211b1af7ac9e5db2fe7c89e35d3e1b1f10f07fa210e1473202d64cc21517a6cd89823317b30f22568537a936ebdad9beb8d938a2879f89361f25f207ae3ba88265c73744631d165d1bdf99001371964fed5ee94e973ee86dbda069f0b54353fde701ec729fad07afc2018a8d45737ccb8201fed28d2561fa3d77837cb01916323668269fab614f963e4a258d7c9b4030af1e894ad72da896ee8a9a6d4d629e443514af939ac63caea9fde687b2716727ce6cc82cd9fcfc34bb3117797ddcd36f0e39641d453e0108da0ee90ed8219b7f3b03c30d1c357ce8a7b7ba41bfbe53932c60c467195ca8f9d242889b1f977ca8dfda02bc23d3bbe3eed6f91865b2f7c8f94bc6c0d6b28f69825582942c85465352ed5b90dfd147a66619addd370e58f529e6d948b9143eac3cbb329c87faad6eb7122deb9ef76b5312aaa7d64b899f8f60912d1a2af4791ba2c94219ccb0cf0533f392219a2229d46f98ea42345c01948ca70aed23c95c26c5b4472309e5c41a90fece6f51b4db0bbb13c78d0a11504397f6a6c81941e4279a712aa4690297241a72c10cc3b1ae435c97528861f296bba3cc6660b31dbe3656db24fbcd80c8c6bb37a75902f614f6375fb5c7d7e6747fc742204908dee9e162586ed31c836cab91192b43744d551378f5562a665307a8fd795339e4b08559654f5d90b4acc01ab7856279e2a9f6236b1dd2d6d49e68f16db436bce4afcaf8200718d444d3d21f8ed4db78e242ffe779fa8a52fb9a8519a9d7612777f9bea666370a533cbcab1a6ca5eb6b82cf24352295c0de0435c2d0b227ed6be2b7c8a5c1e34d8ee888769940db9e3a9a2ea383e687dee08b2ed6b3d8e3b7c6ae5e57aa56407ae1e9d3f1c6cb1124f01c3c65912f9f3b14c9c8852e8dbe205f44ebfcb8e7e9d820b71c1c1927ec10ac4c9325d7683c51d3d630223bc529fa1c324b395039ce38ac97214386ccac225b179bc14e819f534280de6df928be80b1599cd4dd8b3ae158d8b29bd58753a707bdc7424a99028f82dfddcca7486aeaa92c1d21d6012606c4e0a5ecc26960c668c0fc035be8f19fe5fb19df1d58526489f7f044a900dae1f73097f2d48549989b271c45c18563a45f58e6df560bc173dac5fb98fe0ae574df893a97cfc72358be8153410d496d772d39e7eaac66b628b9169f787fdbb0cb999383b66ceeed80c3d666502e82eb9ca63ff1e1e0c5f2fcb56429880dd1824c1e7ecd7284138c854f6e69f52266b15100e4e6d750affc094e5bccd2e4bdda74e2b34aafaf93f66d3fbf0804020e121900b6104484a1e3716189854f8bfd266d037e613c010699f34e30d2fa10d75fba35d18b2e803fef3ac181b611285b2a0e5d6323105c1c90b73a011305c74e0fea05782bec9e60f0d17459efeeba62082e24d55577414517e1deace196373ec668538b97ac376e539e3252970329fefb1f188aa125f51567c187ec2877d2f404c3a96f594b60be8d202574a6b66eb6a2339771187acf47bfeb429e5ed86ba6ef50b094beabdcece890007c9d2230019451edb37ebd3b4a101cecad21f466621f9c49b05619b6d6e81e2e869448d9f287a3e20e355c2d24be58a9978d0548c6d418ee43e2a23feca2c3ace9986312530eae50de57203a9cb6ccffe3839fa19df925d6db19fbaa816f65f6c5846fd121412ed6e7baa9d0c8f08677dab4196bb4e10d32707ea6407d0560ca11c4acd156c089a610504fd7d556807a811746c721e11a58b149a7d777d3971bf933cd291f5c46eb4f29a6d9a1fc10922ddc3aa705e11254382f4f124e73cbe9a2ca64aa4282c1c7b522f55895944776fd7aa9cb4905ada43d6e84f4c098e04ada7f8d3d663b8574b71cfa61c7ec54de7e9a1f77f3f4d61db2a2da6cf3e202b386cb60129c7a8a16c1cdcf6e3753c8df8402058133c644e87d5af0bee8d14e8a05464f64f3c44c4d77ab0a381c1e331a8de375862e447a177a38a58cdb863311218db4c9e54cdf50b5b110bd90659b84f244e71e9ff43733857bf40e91c12be5c034c5ecd293279b65a6cd5b895707562a0b0ad05defaa3e574402726e4b3e07cc210532409dc33d288b4b6cdae11e9623c9f0f0f92c1149193c82e224be91829c858c0f3ad8ff0070f9bca9489147ac22e590840c74688ddc499b4c96a90a060ce82b5393053cce0787b52f371e9eae09dbb0462332fc3e8705dd423c53f7758e782eda49d793aa4d65c75fa6258eb93245298ef488476e5f3c53284c9cd47e1c91a09b2c440e5349af49ac5b06f6a39c2ce3fc3552e184006204de61cbd290d1e1b31b62ed1e0514c8d43c28012f085b79e2990ac5001966f3960c806dc8b854ccd01357492c4563bf32481370ea958287218841167fde8a6f8a5e5d09d40a4f9b89343dd4c220ffaa3e5bb5110dc61451750538e4eb97a4ba708fd4eb4e352427a25e7ef34bfbc406331fd7848241bf2adadfdcdc3aca3e560f79642e80298b09958c226c022ca64b2edf1a035196b3dde5db7dacc4b2c68344ddf2a3d6f1825529e05c8cb14b38bac9c6fac9b16e45b36e9e25b8b0657785d220e8aab1958388491108a3e58ce55c5a3d313e2d31a04503590bb94a0fe3fab66711470444897b59a98f99073bad21915a156db8bb1e5bb93496cad3e5071a481f1a57d3b824ed502df7738e5d8d13ef326be6d82df5c9bf1ad72e7ed68661c9a900cccd9c1260f6430d437b63ccdf7bb18a149521c02393d732a2b3d4d6122315cf26d0dbc395261a6a98e88070781adf163f48482117bc2da36a702615255e08fcbe11a3a54e0bc57881b29b5fc276cc3efb0e967e359dbf1822e85cf25dbb152739b1900b4431b0d25713e302dd5600bbba19f32e97eb8a6591c864c10df48a6226a687c007fe5d031fde10dac520f249681b31cd4fde62b48afc3daf3c27e77f93e06a58451b40ea820d5cf37e38ffdd5050dd00f6a5d47904b48dde003f2ea91b407e563a0a6230cd7207b44c3c5bfd8455a3f8fa8fbd5d81bd1157a2ae124a66caab6a8750f96396d7fea25563eb1ccbf259392f67fd3c753a82677dac32cf84888416fc6f6147cf0b5f57ec3f5411629eaa575d5cc0590fa596a5bd1c9a9023a12569ccff6530995eec528480c1b49c2d7321dc7091e21eddaac48475e7c43ad1667a9de633f63280252c3a5d634994ea59e4bf85e1ddb26990bd5ecb3fce85837738d86c8c26dbdf7c3dd8637f986a7bda20ec871c8bb1d197d2cb4f69650a1b16410632f086d6af17d47e8800bbb3017b24710a5c460b4ee28bc9133fa9c0a715e963499cff9e3c0a9226fd6558f9fc1556d57897f0827948b31a467c38d6841e841a2ac2f0fa86e7173053247db72897ecd01b73b84fcd512c09bedec6802301265747046820fd0ffb1185358e16f4eb440bcad5d7880a92abd7b8361a90afb9f69a6b4601f21a57af72f51aa28272e515d75f73f5d7916bd2c0f33ecacc54014f9f50cc95b8dd5ffd48d935494c76f4cf0c1d8cb960410e5751b642877c1571cdd7305f21cf312d76b57c7a2044cc01c45fd126254270960c39a4c434278492f32699e1d8c5a236fec091c98e6aec02f28649af03b324667c043c4cb55fc8e4cd2f40a7ba7666015b9fd38e2f988e92e0130eaca307da7826dccaa88e2eeef298db6aa8d5cb989b40df7c0dcd4f9da0543d786fd4138317b09dbc100d1bd03fe59cad52a65da8ffff8c72a0b174c65acd0117e492ccb81f67a4dc81bf4f46ce499569b3309cc8a76f99666dc32f73f168e2e9e71568ec94e025b06bc2fea632927ca209430a6eb73181e426d6cd52c47d967c2da27d75d451f49b2cb87f93c047d0256f4aa49acf2de146a096daa47ff072701e846332c0a4a5a1c0ec36280d52288943a770c59915082c86ed0e59d61f74ecf383f5082c75032d3f95b7bb3d316d250df7565fc536423f5f1367b56124dbf04e3da65ba46182ab7caafc8628f7343f177e668913102cb194adeb6548bd6b987c5e1e86c2edf61138ba227b48d2b0be4253188cbd3dfd52f7b38d20e4ff03217bef8b8346ba423add4867558cde0159f2befe4d8dd1a35d2dabbecafc67a651624d7f941d441b474437aa091eec100bbb04b05078da23f09d6d0c197e74d6bec01a302742df9ca1e784f0bbdb037860ba452e88005a7f76a46d7b3ec07d77ce8800971bf608839d593d27b354a26f37170cdda58a4852de3a7cd0c09081ba8c39120e9841d7b7e0793f5dbffd0ff34b72820d1376154d188e7316f56830c9a4191be907fe5c82c878089cecac655e3825004048019a5e6ae330ee615e8202bcd8b8e889e421c584b50a2cd65d73fdcf75caf072388fb7dfe345424d596f6c211ca45d55c4cbd27791d1eb8290e6d0bd7fe98e4667291359341a9f1a6e91bf8aad305347a4f046da42b7a2048388a83a5aaf0837077b2fd9548843050b3b867b4d9b0fd52dbfe2f8ec2861b2b7b9d523d2ae084313dea1a84e2a1d573df992f502aa8d5876338ec09e8ac50d706fa9b8a4c1f65797393acca69e218778cc2c455c9c7d06357927938ddfd40caa6403fcdebe820789207111745968de6eccce494c7a0233b04a8d720ef90eb8d23bf012ad5b684559d0e42c2ff9b98adb3019ed6fcc30f86eea21c871b5af84529d23f2a109940530492cdde0f1e88ebadbd3160d1d4b2752cf35e74e435a9317c30b8356f7748bff9071d8d52b4e3c816d41402588c2af825acbd2dc75c127feeb616d872bc2d4e7d51a838eaeae955c6b1a71f2aa399c9a5f28a34c6b0e30410c010784fc5277880004d64146699e30fc5652a5c977764ecdcbe00d5e5a5e19ce776da91036b802704c19620e29a3cfb3a346c3c9c40f3595928dd1870653ff030b8d51376a183416158de6002813422c0642c2a386e41220241f85a42f4d679b97a3689cfe3a369231d2d8d72caee46914b9dc5182180539d000b23c861e8a30323619d5d6d1b75a15a8582b700a5681f73e35ff726cb45c889608ceb5c612c64c2616807c2e10c7e773d1775cc6b5555925d5b0f4b2b6ce76dd363397a79f036f750c8dc6e796b81911f09c106c6ec92fe68e1086d8e0e5b0817f84e2ad168949757e334840c37fbce592563db8c893248f0361a2fbee67b8d96714643f60e8934efa06f89db1896f8ce22d29e0678f91474f339d6db21104acf0803c4859e8fb68d9e2482be781f34d98e048ae7e1d4be7ecfffce9cbba977580f7320a1ebea022e2cb68b0f245562339a79a2f12dabe85d85fde3f5d9adaf0e212205e600c31496379390b24ef3e2f0180e4f7e9651a2ffc49bd1004f120c21e14fc6937b59869d2b7fc1bf9ae4d42a2072474a200ba411a61d3a3cd0f6a50ed84706fd65aff8bf1d2b208fdb0eecce85fc1b062a6fb4157d1308cbf9f8b7a478f86b19c72146d26e1942d41da6aadafa3da8cf45e735c9bb9e9c4007eff9d8ece6adc2a4527a96d3b4b7212e8d937775fcfe5da5c4eecf1f5337be6202d57d9abb5768d3de8c5ad1cff4b90f320b75c39e25a22b16643bf8711223e22301373b36f788c4be021acd09ceeb3bf7965a3ef0ff4b39ab8fba36ac2333d44cc87dc1f1afadac1ec50858b7f1b1c2c1b972cbab68c98841b58f61229139f6e829b8cc435f10fc72a2ba5f4fe2e07805332485a4491f94fb22ef51e0b2fa7ff4aba91c6893eddae1d7fb98e55f6d0b8ce83e12258892991d0b4feb3ce82c35dcdfbc02c629e3aed3017f9136784a1876ec06c8ca2ab36ec6432b9395058bcef72fbf7763d99ba10a4f4bda85e47a90d721a82d6a1ecd32d19951d93e7b126df11650789193d512042ed83a680b9ca2e1bceee65de09897356f3c6f0bc639751c3f2f060996a5b2e4acfc4b3b204257d362fa946e812a2dd693ac22b2f79f384dfd6c43bfb3f02aa2c7ab0d006d2659eb22fe81ab28d4a0966d1953e31a33e28ffb8ad08d5aa810ec72529ec229ccce4d8006631fd1d4156f29abc96d819ad24d93b99800b893b9a8035b53cdbaae5e30d703ac08b32f9c351c05bc910b606f9eb698b4d3b74cc22430704e4e1d53be0a5be486ebe1919edfe4908d3535969388f879ea8dc71365c08b16ec504c9c65514ec6890b1afa2340417fd8493180321c842e00934998afa2871f7fa003eb1244514b943543b8a7fafd82b8dce22624e6fa4bd82ff983d87448ad9ee1325845d6368f3cb33f57976a9ef37bd4ba2ac350e5f24f7d917d612c4866266033bd9d4e22bba6d038294fce510d8cc44a9728ef8e5522161fc25c7655a613e50f4c114cc1509f4e17e8712104d91a50ba915d42a34c495769e5d8a361b1454ca4bb2d36b504613d6fd2cadbcf190c164d0c6effa26e25b9aafcb573a161248074379b5d7fb32e8236dedcf3a97b29db905f5d0b2f9ed60ae8c44e47284a5781942cd6d45d80cae8743cc165a74754786e4424764eea4a80432334bd7b92d7d25259276608ad7070f195478e8fcc8c913b2c359314a8c3410280c84e440c500b460c8008f2802425c05130efde1c004a823aea8046c4d74d03be58779f35328710959ac19fb505afbeaa7128ffda491a8459ee8b6debfe07b20958af611cb08f2492c6bcd84d48efe0ef492d8de5a972385d1814217edb216eb95ef67cb9560d43adbd86e2b2716fd326465c9a8915428edd79f6536d72733c83c69c3c6bde536b602192297a6918bf523b364446fdb261867411d7c1b776175d6939c8d25a5d0a43efa259b603a90e64476404553742daa48705e215fc68fc4cc5d25b36667a99e1a5d80aabbe543fdedefcea4bc5212c2927792d332984d30ad2210290006508bfa6993be43a19d1f74b262d716212cf5d4815a0c408f03f404184cd4edd31c9003109a5119cc74b749e8089d22c83c6b23da92e34da127b32a6a3ac422fa64ca793ff4335f0c45e0c2d652665098ea6a700412cdb1fc56d012957ad12f4051ef466f8fae70212a7d3ffec0ba979be35582e22955ee2db53be844b712641f2f83cb99131a0c6bc41cbbd85fb5c3b001bce553ca5d932ca134304ca0ea4d0edcea01973c93bbfe5fd908495d8a4cd6e5c7c2485c23f1cf8abf6cd7f88c87c0a94751d2b04f16d1264f99ca961297ce60fb0db10f052ef9d2d52092784ecc8f280a2cd5e15db839a9acfd4656ff7ae9b39a315b676f4015e9679c75c619774ede39727f710b505afd12c4ab2f0c7249510f290c54d715c35bef2643a2ab4da1f958b04dc05b22ea3778b7be1d9e0eb281eba1c08c8202600a54f41708920a764fd53cb129e9140c51d14cab20e2c2f4dd57ca056a40394f1bb6d90fb0b95c242b0483bd16a1003428654a1e22e8fa9653ba19bee48dd96def1e6a412798371ee61fd2dfd73c7826c1adff57055ca693baee6991d98046ba19c31a3c1e8fd95612aeb6c2037b24a0cb1beda8509b7e172e0cae53edc1c33fde150d28dcdd6fca39d75959af161c4692b7879f743e7d40b95dbc8f2bb14adc5d9cc1f5b5e0db28febbf5d77ddb8a63b73e16701bc5bfb6fe6b659b88f35a3b2b588bdf09be29f20489af8e992082c46d41f58530c09081d4d22705d649374a42318c6b5607fe704d0ca556957b1361986b55200b630f5c486543087409368006928dd207505645c9962e220c3b1e3071859ed8a3d88a54efc335960299137fa8c49b2dec04090ac51a459f8e23febf32acd1b447d501c443cce29df4ebac7ac419ceca3c54221db4a5e27c5b2a51acc5e75413029d901938123bce2af19068ecd97535706ef7e026a9864af275a8fcccb18fac34f897686b2520c0a48ee3ff0226078d231798f89db13afc277f67075606df72cd2a200a329fe0f719911e6809cb85c66c8d9dd5f8e8b6c4711c0e7015302d26235737f5610e7455452ba6b52b72c63da7f8109031e540ddc6cddb5817b89aebf68aa27101de3e2ed7afe5b2f4b205ad991944d99f9d61a66fd2366872501e906666bd2b0fdb36cde39d1c714bcd3e9a5ba199012ee2dda3d880a506f53c12f84c60c0120cdce535ffff40edec497019757f82791895cee6b34e9e04b5a9baa2db6bef5f70d29b6a45abd19dba3636cbba9729f4a91677cbf7f91230de55b5a61ea6b7405dc2a6ee3d2aeef63366a64004bcbdedaa7c4aef9936c84ff866bc610186229d439d159a2717a97b222c615c85d8b988a76ac7363c606e13998e031e30e57fa95ef897176cc1fe3d20c8d9d09aa75347024057b1e53469dd23836aa3054ab5546dc56ed5201b1c6ae228f99a071eb2141805d9422adff8320a293386e52025aaad9332996d1b3f6ada2ca181c586310d6892ff0c0234da4bc2262e33468378eb6e141619797c48485b2e0fd082b4ea2183640a664975d34e18bae789f262468bbcd4c08af2824c3ad6b3ceaf4aea69ae9748924bc35689b646252c25e0bed5328e45693febd2bb697acce5741091d123e982a4591ba48ee6dcc87cef41ce607b606a82b4ac947dec7f3ef6578bc05ce7d960f3acc8703bf48906d80f18133f8ac10af31e37d8340aa1a9f94d9e860e3e9bdde79bacae74d47a5a7d917f543b7a1c4b7f5b7a051bc5ee44b7179c9c50deae68516d0e75308137781cc418616630d27ba40a2661dad0a6a8802230e06a0bc62e3d04b65e9aa2153e900207d391caf7c88a6e7661a54ab2750f864b97decbc29282d2f0e995133ec6c09341363dd57efea76f8f362c15bc623f91850d88a3a019604ed0b36db8bcc33774485375d76d3a0db153aac859964d18b45b842fc99c6fd0590140bcf3eab5d8aca284ed79cba3bbf695b2a0d7adc3a43fdcf4aa8189ef58fedd331c28d85bafdddebe81411a298560974e7b95d2f1519f0e05bb2517a69ed99bcdc51ddaaceb89652ff47f46a2a1278665864bf2b8d7232cb46dac78288c33eed6c4dc4e4da2b9c750ec17b3a1c8b4d25467314734a86d34c4f48dec1d7cebf8150748215dee7ad7a4ec1755542cd3c6df87ae9758daceaeb3c70c674f37d705fda2dc1d3738bbf3cd86060e1c25a03f6712768d57f54696c35413f5feca0ab6391291690b50704545ddac5fa1348cb5d6552d1b0780ec9c101562ae87ebfb65e1d06c389e250c91e8b5b18e5f0be76ade0d56c3caf6ff766ba886f533021873374df34d17f57157234e586369020de8a9f7f35a091e2708d49d37b2442be88d527fd4acfd967a627f2c793445d7eac0135fbf02b472ab88fe4e7e2c8e7e3ba90a1c45059ade23f139853932780bf81882ed01d29eaa98631dbae5dd04bc26d7570f6f49244f1bf3bf700a1788e668436d362b5c2b1b0dd6da8b523a5bcc86a21360237ac621f64387ee83f62f9ac22fa74f7f5dc3745e7e113398944ad62d4db2407fc39c199137086fda4b4b20c7b92e7e701c152862f0f3459e4cad215af0d998790da447384114221b33f2a2d112199753e884f226d6cf6db284db825c05b9013d9e0a5e28430d8c23f6348e633b675ce3b866a8464f52e5219b84984c08b343f68465e63b4e88eb28d42f0effd3b004a26eb7180693803e363f83d575ad01198bab4008f8623bd2f92f7c0d7ea52238439eadcefd049e112176e5c5a0537f18699f33e85c7c9eec3fa29dbc66bc1a5dda5fafba9f20d3257ecd3698f6131bba04136ad40b4d585e120565781d3e25af0f38b02e2e06a8fe9d2762b928e2a2b4fe6072516653a28485e1d0027138d1506ab2c3369de61dd394706950478308caacc065f3d8bd68610f4b6376929f63fd1d5d2ed46b58f2f850804d493674ff9e0c47d52609de53c922ee379a3da20bbbcaa39a4bec17ec2e9d276539d3aec03b76ea04253f41daeea0335722f9750c58f01dd319ad7e93a77c43086fbc22dea34d8d2ede97bd35c2351e4fd708b5f438a429cc1f7dbb2bba911398e5b91cd9253c21af489b77d6a77ef72e793609ec934f4c69a4973994d4224994ec6b9ad00251f0cad639f16d53c8e07f9030cfa3539cd2abf65cf9cbf0167228da28a72d2243a6c4c0043b6a35bee42baa4b91c303d35c8997c792616a9b70bd92ce25347064a3ab4331600d15d81890dd42d08c005d7cf5b9ebfe2818c472667aa17a1747f415ac4ff7e7032e9f17a9a1d26b890d01e75d87cbf721beba735645181c705c7081015451f441d44058599974188908b8d2ee5e51196f5ea702072988079cd02430c58b48bfe7cfda25d39a6f4e356b66985558c8936644ab27879ce679b929ddbb0dbbdbde771dfe660d28e290e52276c45bfaf5aa25e208bd27e6e41de43d4fe38cfef71e8d78303f956d996d58360195a15c29f8bf577a3ce8c4a38bf62aebd4a7f3716cf8ef4aa297a1893c72c8723009058d57988ef3ffdd52e7079924b7d95da55d26877a666694f29443a4466a46bfe48835ef2c98235be5a12308444f67388941b88cd141bcf91b0da3b360359e9aa0ce93c8b8e40a558f70a575391159564513d3f95b533ee762404a9243096aef80ec55eb2d5faa28f01b126b8c62f7332993526b3017eb29874837698724173514f200a5c7c3fcdd30b5469624c5bd6425d0d54f3e2cfa190206a4981fa88e4a3eb260a3000d9c581e8c38bd0c43b454e397a0882f7bc1d4636727bdb28c5c30c862ad6df303bfdda3a9b0d8feafdc275f122228f6a25fa48bb5c2896aea7961f1f86a5b0b969ec9ddb20a1f44b4e39ffd3e835b88565d131a00293151e2146331f9cc5b50c0449faa01bb0cc28212648441af0136949402f576f6348977283ea5f38d9311bf96cd3d8c0b378556825b342aab360401476318046445a52402a29f3f9ba3e39a966f46894e230dac317dd5c9409aa13a08931f04561c0f25d409881993521dd2cad8bc95d0cbf16e9e5330d536cebceebb128e1c5dd67eef21888d6acfb40dc60f11329873f1beebb0ff9f7179d4272425b40b6da0d582313a01642c710770d6e80693e36f765d7d08a04e09a2094609dcb0b9942f9d345ddadfdc7c9aa463909b848dd74c365ec45ce7afb43b3c4f18c956b0c1aa86bde50203db02a447db48749a62fca6230f25a6e868908363f80791a93dd381f0bcd680212d0fd824a1e18400cebbaf66855ae0d78a3d6e95a3e0bd27aaa9216cb4f7c50b6cfb1f05511fa990a1a9cfbabebf9f04e70d08f4dbd8323fcb5924bcc7f08ff711574744232d6434ba642fba17a0d16841bb984c11ff4f3659a451bd93e808ca9db1b0983d5d4e4b4763c6c42da9b16ae2ce63cf709fb07c0407ddf98ac2469696f7d558c858f0195b633fd0d63028be38936aacf88a89a7fc2f06a006d9cf0ed34e30c84a32407857a09b31473972432ab39bd5dbd525c8d3e8124ecde6d3b544db768e6b7eb20604fdc63557c669ad232dda6a3b00cb3b2d043c628190f0af7317f279451486ec490f5b105e41de3af994d575ced4afca9d685ba9d2c640974c5dfaeef7b279ab6bd0af3229dd133dd0b39caf2283268a8d9043fa6d9b66b22be7036a7c4b0a046632a82beedd0ec140f22178a79c48fcb018bd57eb412eded60a41291df2c284468b0c2f052f71eb69b23a4463cd317fd09cca96291083b1152b0bf6d9ea56dd66d344da3e750cffe8b7b9f97735935c6eeab0ee178af8f7feded5752e37d97f8981f0565fad343eed9ccffed383acdc98915878cb4cc49799cdb7ccccdb8aae5946ad7d07acee03a95f99ccf37c6f2953da47cd7db6f50c0a09d4c34202075162a7acb03fc7a2fc485db0ca0a5297b37e8b42a2d3bb6b86541edfd8c2e2970b2258ce0cf0d4e5d98a89d50ef8309ccce15a11d509cac2090f29ebc1d05f742453067e1a08559522ea107a6c2c0dc7c2eb183e8ce9999c41421b440989bd718b05dd3c4673494170e89cfca1759c79e7dc41aeee617b12e45ac76eef4853f7195f431c2b37e851bfc9a555bfa97b0589e610eae1d66d7e8a177883f15dfa928c82eb3debf8aaa470e3118f91e0844d1f3598066dc6c064d43875e13baad2db635b639387686f36a9fe97acbe453d30fccb3085c4ac52360e6a38f31389fcc416d7630568c5b703c26d6a1c410d1f68268dac84d41a1e1eb961ea271e665619f3ce588662ec444382ce751f495dec0f792d51ace10fa5fafae15512ae09dff5c7eb69b2f915b0c51060982fa74580fdfbb912b009d0c2d6706bc2ec0e0d3cea8efb21c69cf02bba019522a9dd5b7b498010a26425d22e1803112d87d7f03c91712ab5ca583cb55288c83f6ea24b9933c924d3adfdc290547679e52a1b016e499bd4f82a40cf41088010982f8fa7cde8262cd75300801cc515e1ff07f4bc66a8066c4fae901a10ab2bd0a2f794f1504b427f132cd5ca686410b65c5005732fdded7c1161aa32d6be4e3499eb8edbceb63812736baf97edf57500bc0faf4fe3d4e7a6ba53e77805127221286e27ae4c49561e0461c1627fcac27a3855d338ceb7d1ebf5cde0c3bbabe539b357896aecc4859bc90e00d894be49170e89125db88de205831d95fcf50c530571466f6f5404a245a823027cc1da09dcce920210221bc019f48dd6c18a131f47a0e91a02ff710d9e3e40d728b3b56c731a0a007aad55dc85c6b528c554f5f6949a5ac62664da05c0c55e8f61a1baaf726223f56e09ac81dd2cd65d77a24ca4d0b8fdd0341adcf7f51dc5d43331fdf55a3953629e15e8b1534f1e78511a63b6528a3a01bfd56464e9ba155631b39520ec3a8e764431dac44616e1af66c1fc7f85f77e15b1090f36136e40e5e740849fdb15b5b7bba91f8ec974e72ac2f571fa653c537559d4b13b95367daf1effb3016f5513c02d001d5175b146054170b3f5eea7891141d0c758b892b8061919cfe5ae7770423d269f5891510b0f996df6883c63b895c53c49847fd7b530a423415ca5dd61e1459094aaefbfb4ff87c1c5789679c954b4f7991182c67393bc04aaeae556de57c617f12c4e2c6b54780aabd6b5c72fda58d01f361d92463a55bb038b0e914d45ca8c1afeb8ef50e20beff485a442b16e7cc931229db322e7d20359b0c5b91b6f9d7f293d508671f8b1115e44ab8d1c184242f91d7cf8f21fee87c93a5e4fb1864e909ceae034dfe368ca681473be4da9f9ee923fe0e4e62cee29706a0f36dc18d1e9d732102a32cbdddf5efd436661917ffedd007a196d490b3f964704e1508518f4aee8579c8a0cbce396e70e59b4a363804557ae1379c2044f109bba502ba4186b7e7153c6079be86922fb9f1f1966049d40d8774ad2140c8c003faa429d9c28ad006d90ac0293d79dc6044c6b5dd9ec1f6b505886652fdf74520ebc4f116c22e30841c72b80369eace3ddc8b591b54c2d6e97e04bbb1b69396eb07c02986fd5cca32780b141be9d27b0375068b0aa9e9d2983b01f0f1b5cb4b27885f8d46ec6cab75f614f0ac37400447bba2bb7b5535426055edec44c105510588a6c3af883cf4cfe0c937243baf3dbe38675688876b07286df9e72f4951fa627890e895bca8e26e5664dba91b4bbc975d1ce95c1ea6d79cc2430207c46b79324315b57d4b84f2af869492d0000918808d97ba76c11ce0f820fa81398600a11d8f0810e4136c8bce0c24a0a16aca08a0af4f04307580c2bb4b0a8c2f8020419b0a20a2a263085140f3032a3c30674001453dc40c2ec07220c4104b28b80252a2d88c7caca8a2698f051a1c11916b00206d4d3820a2c2bac150c39b8d842e947a322001001f90181031480002844e109c10634708126488ef8f4e05001e582328e702428871e95958a034780a003125840020c104404200081258c8a8278e868e99ce035c16b0325c587e0ad81f28197462a4a878637034f062a66b4c4c073814786f7c5b7018f09b5d4d5c08a2105838b0b5e0bde0a9d0aae14522878aeae857af158522b9e0a8be5ad56290fd57d5da76a17982fc707c6134a8927d410d50eef564928a25581a754aa6575031a45a0a6c041b5d042050654483ca186a8b0b002030e013ca9f880fae1938125ab5a5840583faa958f078e95940a9e585d3ca9a054848acff70023b4e4e02935e529d5f2820c9e5ab20c184f2a385ebc158f944dca89272bb0b8c0002350493cc1c4c0c47c352e1b160ed714235238b07e563d3e98af078b8aa78f088e8d6a4575c5d3c7a27a01f562c1f93a540beab5022485c3ca07d50baa15d5528b0a2d2aa8e0506161e5c3f70423542f7c5818911ae3c9862554e9321b6240c15a60542e54f7d57c42a823171654de0ac92ac7aa28b5c24ba762f952a896effbbc6ff5b13e95151850dfcac80a0598a315d74ab5eabe156a076583ea582e7c398a5099218581a7972b8a70a95039584346a07260848ccc7bca1b3ea0c1192e280305639c35a42698f8e143871c7cae25c2106c74b460582b253f18154d69410c5e30c312374f3060072872300332c41001171ba8c206bc6101675e029b492882141b9811031368d184880028fd90c4a888072033c8d0020b5f78d164031a206208590c305c3bc34b0e70c0a47c9af2c61294a0a4a405165c3310e304231001175b70608903144016001f9018151191d18213b020044f04a9011a64b4400c1388008c0a5061800108a0085266608608c0f8a2034e9e7e24fae17291c20335728002137801822c2cd084123fca02a0a40409d10f1e301a970b192d40c1031cd084931f03000022203f78c05e5c50cd0335c868410a4ee00508b2e08005107000274b004094030f98cf0e0e0d0a2e544fe1811a3848010a4e60022f40c0010b20a0890328e14407b2254a3ad8806e3861881098971bc0c04412064882e446024a1820e794019529df1bde13524ef09ac0c200ea029e05bc2aba1c0fe7bbe940969a0f87cf5998c183a1cbb17ae173a1c3816aa1634125051450f85a2818979796cb0b2d2eb0c0b0e25259b1542b4fa54aa5beaebb5fe895eeb6a15bab21dd8d4df0c919cdb69a379b1faf58eda9ead64a86ee66756bc54277dfd02d95141ac79f73b319f71f2bb6d571f55c9d47cea426b5894eababc068a940d0dd2fdd525dd11d7acdd6b7e19cc673e8e13339f4705b6b3f5309d1dd2cdd5231e90e9d761d57cfb9d91210049574b7ab9b866ea97e1a9b201e2b499b6ccc8c43b752494845b135e31fdd26665a7abed6f1dfd169665e34cf8b5b2912a4aee8d17ea68e5bdd4a2531da97e956ea875410b7e59a7dd269d7ddbc349366ec5fb3d46c25291cd8044d9b587e69f3622571b3c66e19ba594b5036e8ae49774744773744c703201c0f72d33cc51d40403f403e403d403c403b403a40394038403740403f3f3f3e3f3d3f3c3f3b3f3a3f393f383f373f403e3f3e3e3e3d3e3c3e3b3e3a3e393e383e373e403d3f3d3e3d3d3d3c3d3b3d3a3d393d383d373d403c3f3c3e3c3d3c3c3c3b3c3a3c393c383c373c403b3f3b3e3b3d3b3c3b3b3b3a3b393b383b373b403a3f3a3e3a3d3a3c3a3b3a3a3a393a383a373a40393f393e393d393c393b393a3939393839373940383f383e383d383c383b383a3839383838373840373f373e373d373c373b373a37393738373737dddfdd39baf551009b6079da254a56685e332b3343f8101e84fb6be5b5128477df74774c77db7c47d804b1f92359cf99cd9b5774f7ee4e88ee2e88ee0e88ee4675975d14202a4277b774cbe3010cbadb856e79207058183a6ce515860ecbb427dd57429a6cab55d33dd39e9c091d363e59290dd31c72f09ce86eef9697bb1dd77ccedc717d5b76181eed79674ebb9ecfdbdd5fb73c1afa4b870ecfd4c76712aba5b7ee2ee7d1b86e90bb61f924625ed3fc81bba6797d74b7d72d0fd50d82abdb0addeac2e85cc91bf630d390856e75adee46a15bdd13dd246dbae59bddedd29d827537b4be29babb856e7547ba5b856e753eba3b07a71f6d351fdb8a4d70bca58df84d8eeb8cdb27bd87ffcc47f2bc36ec34dd9deaf6725aad063641f19b64386a76370cddde5077e3e8567bd1d8047349b3114d6c235e92a43639939ab34a9ad734df2df5f1ad79e637ddde9a69b65f3e792babe74acdec355b73a6a579694ebb3ba7eeeebacbdd1daebb6beaeece4675775907276668a1050f2a2d40b982860b140871740330926864ecfca085fc3113d3839f3252c0b1c0263cc1461159002a547e6468228053460a2e20017e373c54830e4b4f063001160c56345083a5a13c3dc5fa5bd920091616d6e72344069256bee2423879e23e52492a4fb9104210e1f9e744748e7222549ce52d23c411ee23252304112a324fdc474784ca59322b192254322999cfdb895075d68b798272f20425730453cabd2e25d3b1265f0780af539df7a152aad8ca69b552a9545f2a954a7d2a16160f1543c5502999a54f082162ddd764c96b4f799db72381a5bf0fb584f22ef5c5bc180ac54488a52631265fe705cb11dd1128efdc8b71f224034c7488317ddeb1ce8f40c96480890eb1cf993494d84744d72161b517d142d590eab1e2ddfa7c5a623c67e93a1f2d4310e1b94ae6c9f3ce3b1f2c2cce6259a9a05cc58b71827216ef62866079e7b15a504d583147e8e0e3739518274f3a1f9f1fa1438e1e50dee2491f4b4b8babac384b4a15e384c557582ddec50ca1e21d4b66880c24a978e743acb0b472ac5c8718d3e755e43c6f284b2d554b4cfb588971b2e2aa18272d2d324f4310f1b98accd3e7e489fbe83e971f3e6f89198288cf57649e3e77e9e173cf3b97a4cfbd169598279d0f1567c53ce97cb07c25c6c9113af850f1279d8f1567f1625a50dee23f7ccee2aa1827489af858f1ce8750716f889594ca111960a2436ce59d8f17272d263d25b69261aa22e7791539947bca25470fdf91e7aa98f6c1d2b91c7d9e42a9b410838ca71648e9ee6e6f1e96eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee0e8385d52e42bc16942ae6795ecf134c54cc8bb5a35028140ad57d28140a85fa505f7b3d1f0ae5b5bed74d8742a13ed4d72c2b368069c122d6c5566eb4d1354b28293e9914cbeb596a2205aaeb56abd5120b8bce9d4545ccf39515314f0a6fc65b6ae20921a3ea8ad05a9a010b1616ac2cba9881d58456e7284fb560b100159596ae8b752eab95afac7c2e442bce5af9d460b1fcb38137f3f1a08ab1a09ca5858ab1b0be180bcb577eb0562d87f101bcb88baf603ca9250393f4c27217992fca47d3c5589c4525c5e2bdd2c2f2adc8b008d062c92caddcf32fd5b11511a8262a1e8a052b95f7a9582c3f23b6a46a125371e17ddff7c1a4522e29776951c1788b8b0b8d1b2e2f2d2d346dc0ec70e222c3e47b697181819159daf104f3e22c1817189817d5e7d2d2d2d1bc41f306cd1bde8bb7a2e28b1243b5606068da80711a37607624d1828159b56068dea07903058769b5609ca68d96d3b8d182d99144b76496603a4701c651d8e184c9e78269a1d0cde414dce592594261d58251210605d7d26ad582a17983e60d9a37be2830de2a8d97efa96bb13e5775d7bee3a95128f7ba69daa071a3f3de9144d74dd3068d1b4b3b9c348bb5e389c562b5be335cdc43bda058dc8585e5c55d31fdd1bcb0c82c6554ecc55b322a2f2c2e2d2b321915531983e60d9a375658aca0584e48f9ce90512940cb4bcb4b4b1bada56f8d6f8dcf6755c6aa8c6f8d32be3594d05a5a95f1e22a2ece3ac3eb69b14114af478dd51a5ecf4b8b0c8d1b2e346dd0b4b10a63056535c60aca2a8cd5189d4b6a35864b01505f1b4f346f74362e322cd6125a2befa515942725b43a1536a47c48f8dc68e389e60dd6d2aa8c5519ab187c6b7c6c7c6ed0bc41e3c647f306ab4566a99359a5be3568de58ad3e96305c542d314c4b2b473911319598a52f964abda4fc05e57d2b2a322d2afef2f2f2c2c4e21d538179795151e9bca5454685c9177b592282c5bda596cfe5456609c7b4c874ee354b6669a5fabc974ea58594d88e588b7182306227c822d635116b314c20458c05a6d5fe790eafbda7957296cfe52d314badce512da896a597134c4b2a673911b12e66e98bb578b7c4742b15ef56beb2848a2dbd9ec4524ea48bb9bc8e68915942c55a9a084104cad5e22e94eff0a13a8f617af12f8642c125b3d424e67254e730288791d9e16be93c7bb116261f0a314b44c4985afcc58bb9601ca6cb2aab962f651597cc126e126bf197568cca8aaffc2586155b915952b98ae7f09cb59291795219c1044c8431462c27d66284e104eb537d9fd7c2fabc537d315d0cd57d4cbe58175b6a220411ddd2104b2f279852deb18e59fa629ef739ca73d4e7d943ad5ae59eafb8099ec23863c53b971615625e8e68a93c264f4685855a91c92a3115166b85a3a542029456ac73e9645a583103a8b4a8b4b03a1994378384168bf57d1d33428b69c553b12596142d2c29bc1e1667b1aef07a5458783d5d165d783d2d2ccf1e4b45c5ea84a0622b9d0ccb096fe60916135e8f13ab8e25c57ac2c5002c2926df9429362c2b324b4d5c8ed05a79b3ac703142ab8ba9aca0a4e896bad8924c12b12595ebd06a314640456c09c5c4124b8a2862df089e629fa39c405121f372d2d9a4dc281563f24d9912eb625d6ae5aa6ef53aa2b349c9a058505698e0841755789ef77d2c143420861765a854aad50a8a173e78f1e2082b14d17a59c017547c8145ab05060606a6d5520181185fc4e00b20b0d0d2c57c31a50598265a68618105165868a1852fc240ad106b314220850b2e5abc0043821c2a2e80e185588b11023442800431c018008e588b010604c0d82286a3a58b01a3042e5cb0b84861b15c5d8b174e62dfc201030e57cb5340bb08610241b481812c504f504fba09a062ba4fa6055076686d7184940ad58db1c48f173620019406404006611ce1fb3ccff3591d7d3e2b991dbeef3323f669b1c6d0f77daa1494a1a39b245076180a32e425d66270f124b674a37a62f13e551028433bb06a8089b5185ba8115bba8142464c0b22b0785d193bdf6ab5da2289d56ae5040a542b2d4cc0f26e56ab956ab55aad56ab94c7d28205a9151428abd50a56b116438b35c48872b34a65c1044aa5bad9f93ccff3522a2a56a9211456a92cbe58a19e34d9820104884006b0f080163df0610421c4e0db6108d6832cd850c94021804a659303954a85c552a9541ed0220a9514622d86161d88b9c45a0c2d28f0b284cef39c87947bde24f6b97c32398850de390f287f596af2797754b0f4e79df3f079e74d5e9eb43c87a573ef66e666a6861a8ab064563858be16abc592f13c4fe6e5494b05948c4b94560d387010b57bce43cb745dd7f08062c9ac64522e3ca4ba1c449ed7a95cd26875312e515a3ca0dcf315172294cc9458cc5bb900e9bc950f95ea56ada2f2e2f9e7c97cdeaa022c2998944b91826ae212a5d532e3f9d742b154ce02d3759d4a9572958a8c2a470f9e7f9ec47294f7b1509e7f67c47c67b8a462785011a97cf5b9a4645e9eb45a5a505eccd745179f1429df1725cae72cac96548c4b0e582919971c7cceb252c5279392e141955279cabb5893d857a4bb29b1cf8be97c34e9502d38f8bea71aa2a0a4ace1a13ab5fa5ac58a49a93a2656ac8e9112e529ca195d8c61852785f7e43121658d31cee8a2c3a263a293a2256098a33312856ea9d3aec71c16e64c5ac54a7bfbb3d06bc0199c24a19bd75f3eda0f69684070e6c85fd9be498f66729284fe33cf912415eb2d979d242b1207b3d3677bc521878519ff187a0d484428c929bed3fb68298e9aa32d571c39a3372adeec3f2b4f8c69bea52de7c8f133254f91a4a2e3ea35ffb4d152376f16bfc9431c665c49ff919663c5eeff40c09b9da4e225cb6bd21c939fd4dd47ba057b82d5baa85b3017ba415c7f564d11cf4efc38b789d586f39b1d16de5bc47fe6199f441c16865e03e6ea377bce52272294c4cdfab6d1a4b5371d9fee37bb7849a7ce84639992f7cebea96691ca70cde7fdb2e6209a9fd35f3fe78c95fd2c474bf3477b6ff84d8f05f83d2c0a7df447824d1077858e887f04d75b0cd71b6d92d56c35af2d9f94bc95955a99f8373cba96781aaf957d3533ed5ef326c34dd4bd834b0737ba65302c06096ab69a9fed6b8145f7803747b2dac46e022e0f7c313e13e771fb8c99c44bbed368d7474bfd2645042c516ea46f92b1bf19fd747744c0fcf84d9a7ba6f173a4bda23d69b8da921c1cff71b657749cabbfc66fbaa58a8a8aca8aa5fee6a5bd0fcf3d93e7b259c71fcd2bbee9b8fa9f243d327e8e92e63719b9a57eb37bec08170f69747710a881a709190ea803e6d4d4e47235e9ad6de820788674770ddd5dc453b7101dc4ce53d38c6db589b4ac19007952da0ff5f0e45c5cd23351d207351f0683c178787878787878767676767676767676767474747474747474747472727272727272727272707070707070707070706e726e726e726e726e726e726e726e726e726e72808080808080808080807e7e7e7e7e7e7e7e7e7e7c7c7c7c7c7c7c7c7c7c7a7a7a7a7a7a7a7a7a7a7878787878787878787876767676767676767676747474747474747474747272727272727272727270707070707070706e6e6e6e6e6e6e6e6e6e70808080808080808080807e7e7e7e7e7e7e7e7e7e7c7c7c7c7c7c7c7c7c7c7a7a7a7a7a7a7a7a7a7a787878787878787878787676767676767676767674747474747474747474727272727272727272727070707070707070706e70807e7c7a78767472708890349bb72c89bafbd5dd3e743753b77634c17c1bb19a6fbf66e49aff43cec72d2acfb2da4a0477c9f721941fe39835d2dd4131245f6b1fd0dd25804891a35bd4dd45f14c37a9bb73408ce251fc81f4a366f22422646bad9ad747eae3c973bca5d76cb595966fbaf9e589ed15c2e62d1aede936669ea2786dac36d5a1276794acb489dad3dfa45f477c963fcba31d3fd33745ff59ec745cf19f4cdc564fb20fc43569fe26cdb83a3d90fc18d3dcccc7c77dd1dfece39bf56462abdf4ea67bc9b765f3663abead556c4f2b6471d732592334b84bce5ca40ed6c09f71fc4ff32f2ff61cbdf9cd9ecb95ac336a89de3cf349b395242b6efc4c47ec239db92d9b75e6d42d754c6db8f2667c8aa05beab6faf82ffa334a3aa63827492a7a0cc4ff4dd496a3a5631ea5e3ea49243d99bc0dd320dd1d140de8ee9ee8960d5930a0bb5b4077a78037cf0c83d56ccde69dc51c1c3fe393da9cde73e62dbff4eece8916bace91ff27499baca82149e766328ce94da4b49a6ca9ad6535455c472f4ffbf8c7da74cd9b9798e2f00dd2dd2500675c9d10d004909aad5f84a4990219dfa478147f24fa5b2e29f7426ebee5cc253b4b787a9cc7cfa90493dff424499bcccfb6ca32fe5a1d4518eccdaf6612fe5abe24ce974492dd6e1406a3e64965f8c4f6b1bda2ec86c54acece23180c08878727c7c43f393846c677aa40546574b76d17901174675bef4d36be53a5dd9b6da5b83397bada0551450308a0d2dd4d7dcd07c273337fbfd9f3adfc9c6977bb2c752b66a76d3d6b75866bb6dab2ccfc1b0c26bbe19f1c9cd3699eaf254ffce6ed6e26ddf29bf199380fd12db565c7f849c7398a23a9e766de64fe686bf92636c15c673f3938326cfe8d7c9b58f397b65c4d6a8399c05d92667e93512e5791dea85077b704699a3fc44b92b146c110937a229544771b756b0699353f677ab33133b6a1893d403a9f433f679ce18837403a3fdf03849393e3d38383f3f47f7e767cfe67d6b36323667c9a3618a9662bc69548777700a2dc0cdd92618d5a772fe9960c4eb64c6f36b97c03de80383597666bcd9354c4363a393fe203cd4620a09c1e517c9c9af28ae0ecb4e55acb9919d7da9bf6c7ea199f451c67fb65edb1db32bd3949c660b0ee4e09d6d7ed9fe7f86fb92c8b010da79b6c1fbf79646f2d72e21b64c334480de728f9634eb47f327993263b9d6829bb95a6ed331deb68a9ac3ced6852dced74a2e5784599132d31496dad22cd2ee963fcf18af6472926199fdacf54b4570888980406ebee9dee00742b4707b009d61b959598e26c7e80c67f1a8fcdcfe7d0df799ed12787f6a373b35393ef4899c87ba3998e9ecf9baddd5d0be28f57a8bbec6eb15b40441d14f473f610ff48772f218991341a6d0ce7af993429db37cd532887cdafb49a6fd123fdd76846aa5522f6566cfe91f233d128347ebe9da6f9d912f1d0ad1792509b53b7b5fc5cfdc99aadd863dd9dd3ad177080d78e2ee8a0bb8d74cb0525ba7b89d24b89928324f9384cfd65bfa9d6bc666bc666a539edba8339923c69fef9c95b79c5b18e8edf69d747b65f451bc33992ed97397a93e1c7f4c92f82fba2eed6d12d1762babb48b770900166fcb5da893ddb6ab5f4bfe53275f367e569fd6df9b54449a644c9df96ed9767cda4feb6fcf9163938befddb8dda1c539b63c77d91d38f183fd28dec469673e4467623c33922e24ae41f48776780ee0e89eeae00ddc2f164ca942953bafbd22c51c67448cdd5120151496a2b901f39f2768bd56c3533120c26bbe12cd25b79856030f1c72b068932f36f4eb464122f392369be59e644cba01ef6d67c3372a2a558b1ad66767ad9633a0bcad1397b987f64fe1186c1ba0b7477d82d16a4c8e29be6153d5feb6f52c76e3aadfaf859fc9bd33baeee6f4b721ea1ccbcb2d06db9e27c7c1baeb6d2dc0736419c6b59c9eeee49f76f0211712d61306c9fe966180cbf6829497d20990d7d59b33d8be4cc9be9682911929a7f33226969de228c29298473f408bf0fb7089ba00d539b8d0d10900eadc767b4c1c9a1373e3ae2cea8a3b3f373f33e359fa999f1ecc436389f97497c9b68936bcde6d64c2a82364cb4deee8dda7c796d36364c6d305836efed7662d997d4a4ade0d49dcd6bc37e6fb6616a73d863f39bde744bf4b99ab891bef94f93e11cbd0505dd4a33488f1b25f26f26f92069b617886a5e5bd097b2b146cd9b9160b0af6696ddf0679a4793e22cee0ed57099a92cdbc7d9bef9365bf137d55ccb6adea27c1a8d8f84cf4c339225ca51f1475916ab99f19b32d997277ef376cd7124af0dbf69cbb2d1fe0d9ff88368c6af8dd59cc5fc351251931ecdf410ff081665952647e7f4578ece39f340542c1b47fa3699c8a4943129c7ee8e00dddd11b6529bd07777037042bbd73cfaf18a3f94ede3590c5722f9de22237d5becf2f023356b372323fd202213224ccaa107a222fdf9670f3631d31bae43394a7e114b742bcd2018bf59fb712bcd20dd9d003a23c8b796da846ea51904cb3ed38c65394abe0983959f710ecb6ca536919af496af0ddfa845fa4c3352cdd61ac5f88908810229d8c00c1d24f0031ea0c00a1af450b282aa094b8b1597166434e15e00e1d9236c01c30076d0850d300318d28018265c7214f0802cb2a831028e05e0688119161822e2054948e48003d594f173ae6579c526804c229df9f824794dff995b2a7aa6b62c526ca999ddfeedfa2deaee9aee59bb320dbac1fcb8e64a526b7e767a27ed356b93fd41331d72fad1127d8d1efdf92713d9ad1c65f94992de64f824cff21469a643b54ab35728dbf38ab26cabd5c799df7447fbe6677b5ea1afd1a3f1f12923e939d6a63ada2a73a265775784ccd62a49650f44c5f9bc393aa4a53c85bd2a578dcaa1eb55a75cddaa61ba140bdd4bc7ca41f9f4e7044a8695c762a5505fd7750b1ed85e773da074e87ac523d55e775df77941ba6ed5795df7a980f03aaf5b792c14e93a55b76aaf73013f4fa59a59f10ee57928263a54d7792b5d12bc4ea5531dcafbbeeb96bcaef35846bc1c5ee7a9505e1704aff3baceeb3a95d7f5d0b5d0759fc72a41ea5bbd742c74dd0aacaf93a253795de77db2ce43ada8ec782d5d10ab4bd5f0e5d0ad3c0f85f3ad785e4703d3d30581c2616980d7a8f628d0a1be1954caebbe4e29a0d341d75eb75aadeeba43755e37848ee5ede83a2fe5795fd7e974361dab6bf13ccf5309753a3c0fe575371fc8e202eb86ce0585173c067429cf850ed57d5d7b479eaf74a8f6aaaa3dec94f83aa6045def7002efeb541d6ad5b974df139ec7827dddcfd7791ecabd1695992ed575ab1b14ce0c379db7a262795dd775abae83759e57834fd5a978a8afa993f1ceaefb6a3a1516af63ad3a6f074f064f062f86afbfee603a95e7752ea8d687f25cf03caf5375285aa75243c792f2ba54f7e293c303808a45c5eb66ac9695d7f5d0b1baeef33a5417a48bc103f260f058bc9597eabeceeb3c166f85eabed4d7753eddd7cd742a5d4bd7753c3a19bc956fd5b1509dd775b0ae53b1e0a9d0a1bc2e85ea803c96eef364e8becff3501eaa03f2bcee056fa553e95828afeb3a581783b7b2fa3a140bd5759d8f773876b07a7c38a4baaf53e950383a1515188b921c327434a03acf5379abef5a2bdcb004e93aafa6577d6b24533a29486cfb9134d628e3c8143ad080119ac60d521a51ba480c1addc3142ef81e28197d34c5170f388ab94646692c49191223c311784803861ba02970d800d1170cf8a4e152834fcc4ad79346f7849e700a047afc8d064327c850135ae1bda254e0befc66070e52bc883043e82d33780b28b414292ce930d5443b4a00dd5f77774f41dd5da491740be9ee996eb53c81663aca544e566c50c193ca8ac552adaca8522c5f0c2aab2ff5add0925444910c6b46b5c2fa41b5c074a896950f2df973f95aa9330400c593eac55ba9a05e2e31fc68e069e548cb887abd14e1ede448194175aa1e2478ca61c8904b001e6a05358466094f519c7429986b861d8af0502f7c35663ce190c6d30c474e5680f131808f872208f0e4820a921615a07802b2c28d855794f0d423abf01022a0b552f95c524ca8022451040be5fa6a748af081045476c8c009ab0d06bc782ca91d5c2b2094905782851129a4665680acdca05242ed580119f181297830c2054bd8387111872011c613cb497380005c72603a2e9e5ce829626505a45a61bd7c3e443c7c31ac00591541e482c40a92e307901595202d48638f0f3cb5807af5aca86029b8a856587ec804a0024f2bac2032cc0cf094fa5aa94ed5836a25c543b523a603cba9a2831544b5b272c16548a50654914a0b2ac070c30b2cec60cd1415b9a1881516b8d271d1f1213a5ab5a0562fa4605f8f4a0b4a87efb05259ada06c5242503f3b74a91c5f4c8a851b1596f801fde08183b5c2828a4f1142452c3bac19540da81a541778daf1821a4ae1909241a506140c30385f0c463c8136dd47fb6a505f2a08990024e0da0d68a00c28586ce0025420d1640827cc447b310c80d20f498e18413a1a028020b01f9d991b6ca0c103b6621d43445eaff833242d0aa045d522a6852a8b28594491852d8b1f0f14c1035d74e75e48e8b0b19a7ff3d990d78438f742b2d31785fe0a694623d1915708c323fd22b321af0167f05865b96782c170ee85c06049a1e38caf187350c86bc0313bbdadd99e9e7598b7bce2cf700649928a347826f74cf9913c70ebbed95fe535691e205f1ee80e84d14b94c40e3ce9c0ad03352c5152a2949b7998cb26a6b858075e3850c612a5b12a511a39c0c412a5d7e31cfb748b0347351c68f5195838f512257fbd5e5f528bfb222cc20d20a15faf927edec0171bb8752f517a813424b53736b38199ee36af140d401935f06489d25865f931ce1a08bb1bd44006ceb8451978d2dda0793310fac800ab7334e3eab4a6da649e187745946ed03e13cd575cf1c415b941fb4db57645abbb6b68e463b308036b748343448e812d885c1b0e090c963412c16049483058905833cd3058528f0bb4e0024298d7df024e7483df54497afb67f257cb0a265841012b9aac98a10a31aac0550ca9024737187a4d058a5400a4000f28b004056c14d0810228501183ee0e4bfa59961f877eab362c0b73b4b4d7fcdb8931b55debaf30b446402a6454bc1ab4e704ee046224c002090840024a2400c3143d98a20153e09aafb3f2fee019df9bdfe06f1e398ff0da703e6623fdd1aff93ff8a8514b89d8c4b3744cbb45a460420a26296011584204ba88c0520482743748bb355b67b696d95622104803026140a01fd083077401e6c8bfe137474b730da9a8e8ed25a967da930f6889a208518c200a2aa2708ae2060798e1800c38a00a072439a007143e80228cee0e310dbd26ccc171e835210d066b1c9cf11c5c0cbd06461d07bf390e2efe68529be78aa3e479ab96965e9a8f4f8cdfe68a734bc5f3e62ef65cbd66eb49bb916f231af21c2d77cd3cb365f3fa15a9e7ae99f10f4141040a184afa49a3a5af0658d1805bf7b53dc1c513483c91f3c4c7000c30800806cc30206601642c408c05e4eef14d6cd2ee3533a64f7aa6a6f934b366fb0e8e0a78a2802014f052400d2e7042082768126046022e208004fc90009d04b0800029dd199f66c6b6da8c6f5e9ad3bb7d20aadb32ee9ab51af29ad95e11939fa90de7e6c5433fdcd2993074eaf9bce6cdf8347378b3e7cff49233bfb9e28bc461210df7d60cbd06f7e1e77356cd9ca967042ce011b093343e8eda4a6b147749b209349ab040134a4db87d20ae096406c49ee689eb101351bc495b6206ad2522b0049125565a0760c201ac3840020e1053820d251aa0840094f8e9f173e43852c759a48e6b08ab2969d72deeda2f6f36afdf4ecf8e6b48e4e4b5e17b33cf5b794dd196cd8bf34ccd13db1fe098c414491c49e23300160630c2003203b0206106124820413e52b5e7edcdd3f3e3d073b3b20e7130478ef6ab492ba90dbd06bcd9f1684fdacdb68634f649d07170fb24f825b533bec33fe77c987fe438c0287996e6a5995714a9c519b95100320ac04501a228801060383e11933e291abd685e2096d24c479abfa44f0a3d41e3c9114f8878a283006410000a02f05084231c7044d3114747b408e9d60046300027ba1bbc398f30e37be43c44fb356f1e390cff7889e4eacf44f363cc447338be09e673e6df7467f46b8eccb65a25f1f8668eb435e3dc6c7c534cca75f6a379f358c398bf2ddbfb4d97c800564e4ee044024e8e9cfc108012044005783d1c9f8c8da1f934236075b7f44d30974d7aab19cd6a1b9d765fb454c80827186186114718a16344cb1645505144511133c8e0498927a4ee0643a1d071aee58fc7374a921777c99ff9f8e239621ddf446d199f65ced2b2a49fb18e2f6d22fd37c791baade5f8185b9abbd9d68ccfb1869e9b0101ff4d9ae35cf3637c735ab327f53f312632dfe2aeccd652866b8ebcdd4e6c3e10ff26cdd672a4262669d3356f374ade5999c35f528b495a56f14719aedf5433adbd35bff6d956919a34198df657fc376b3f5e5ba4c90edd4b94fe65de71a444a841d2588b882c883089f8e95ea2247bf9ebda70fe52a2e460aeb8b7b1ee86756b0829bd444989526c0829b08e276735d35b79455b8770eab643fc3492106b803e7e4e12e289af3d599baa79fb4c492ae227492a24c4ad0a1124e7e434f2b18f23752156bac11c99edbdf945923d38675050520f9a910dd3202449859cae0f182c8949bca40f182c290815105800e144b779e6dc67fb25f59c1662cee544829693114e36381be03a8053c219353da1a98cee7e7c6db81c1edda2b725c9b2d3875e038a14e76f4bb2855e9374e4e0cdf476b3197a0dade4db7236e616476ff847b74e1d9c0d38914e57664176926b301b7df36b31f5e1987a68de2c5220b1d0699782f6661a1e395122b76ac3e49b55bc1853f770e6b806636f6cdaeecea15b260e93359830c164ec6ef03df7b6ec234d18ce60b3da4b33ce7876eab91911d06f5edccc5b9006ffff4e7197dc1610db5bc9d0fc5bc4fa60756c8ed207e512dd2dd4ad7248192b5b2859c82eba1b3cf21a10c3625e03036b401f2dcd22757a248785a27969d76924b5fdcced75eacf44cb9cd325e99ba1d7c08e401a3c635e5c040c65e34843201c571a922465aa0193049884609a49758b8986a53296a02cd5a515ea12ba1ba95b958a7a54799460b3a21bc76bb6127198d190511248b3d5c4e6e72fa9496faf92e217aeb8864340c06b3e10e3ade6df5cb4e7b596de84fef8b41497f1b974de9ce3d3dfd471de9c35e2204d6813339dc160f90cbfa4f8c95bcde4593ea6a2dbea2f7ad6eaaca4b88ea1d780d5e949dacdfea1d3358f42ffa68a712dcdbffd2ce35b92f49b6e4d183a751c864ebbb48e96fa0b57dc674b4d7ad61c571b7e93e6d42d8ede906c2ed44a50b3351eb51790e668c67c7c7e75bae68e1d60c69774928cedd8e1e093b34a6d1dbfc97cfce6db3b3aade2aecd5f213e6f99b3d7d2d07333bf301e8a888a8ac49080322499ff8c347fb48fad919cd3356f9f69edc91f6d247d9324a968c334080c960483255d9a25a231d10dc668b61b7d7389921225b731da8fbf94283948bb34b7b187d24a94acd15301de4e58d8dd3ebaf53cf0e8d6b784a1798542928af58748cdecf47eb38f5d94d48e4adddd35f3bcd9f76b3e1035b635fe886b808fcb3ff3c7f44df147dc2549f16f58876e895074f79757acb1d73aa6b61fab584fa4dc0b21c93a33ff284816947ba6a0dc0be921fe911faf38c3c02c023302b46645663a66ed48fefa6a2609b9bb8fa11f9c1cd0870667c6c82ff617d151ccc3d0f163230e0b6b9794e19857f4af26a5821ed1a2331aa48707bca199711c123d523884b001615378e342424ce28f9ecf2b63a31b9421408693c9643131744b86eaea3bfcc74707240abd26f74cfef60ac1b96722124214001c000f40abb584084b74b0a489ee1ed2ad253f96bcba1b24c993e6b8be991f898339f39b7e745c3d090c6984668c429f7190e69b2ab67f737a18ec56d90d878e49928a331ed220cd18850ebb393f96592a86b93a854861f8e31543a7dd502844721c5c68c668bc22ee953ca0c400a5264a444a9aa0e40a25b66e1cc7a1c861f87335911cf90edfd1f9016f9efcb1260cc3a3f0e833354f517c9ce3dc33cd4e8c4fcff9de22a63f12dfb163c70ed0a9d2debc51c7e5e74a92d449b20ae9ee58b794c0d0dde0ed745aec071dfca0054db77e4802c76b40269396339c87343330d7f299cc1afb4c94c80f3f3fd0fc80820f4df0610d1fa2f82083960f4fb44d0fa7c171bc06e9070fb123d951ec47101cafc15a90c0796e76401c8721f1c7d487d7809fab89c3f19a900667c628f49aa01e4e0378a36f73ace33d47cecac738367b245fa337a75d7fa4c7d476f498da6e414962bddd8c2b8d76622cd24c47da17b9bd68afa5e60f182cc986a94d76c3f95e531694cf5b50f99968a876c92023180c062b45a71e9e9c204134333d4a3149292649f2432bc90e2436289dba79c59a6979f349edf8b624245b2049a29728f99757cc27c521093ab2c611271a0c698af86b249a09a9d76c6da2b673f49ff10849920a854e8174eb880d40dd32c28691288c0cf5122577a2a5bfce2c527f65f2fcda789a35c73509094910481282e404242bba3ba95b48490d8e3ffebd35cf91333abbe6cd7e9335bfe9d69ca4a7a5441ccc91b38af1bdf9db323eaff9354b479a7cde9bddbcd5bc8df44d5af319109fb736bd79c3f533520e52d32222282245912545584d7b08a307287a187a8d8fa9cddfd21e5c476364f2b4b123021c311db1006589928ff5bc3e7e597336afbfc8db393acdd55f4d6f6bb6dac44c4bfa336a4400a31f8c50bd44c987885e4a9440dc5b37cfeb3797f7faf8b7db3547c714477da4b6581119451b284ae24a944092a4e2b5a1ec99680edd962b13cdb9918e96f65094a308d5dd4b945e2f4c71b116110d10490091a0216b742f51f2d758fda54409b4f776521f2dfdd9cdaf9749cdcfb8da4a4bfc771cbfa9bef8e663cf997f32f9d11ab205d8ad214f9628bd942881376a66172979436a0d396a70b4e7a5bd68df7cda9b41ba35e4cd1b390b9384f8a0258489eea65dcf519c5febd471cdaf2767d426d237ede998e284ec804f2ada8a85b0dad6d2fcfc23d641a45b00c0a2bb414c49f16da2a5356ff6e816006cdde637d9ea3f1bc3b005801dba41f3d28c00a0427777b68f89cee8ee24dd227aeaa6d1ce99486fd869d799444a3ac5376a33ffc841fbd86d759a6bded16f061fac33fe27c6f5bef9b624a2a306cdcf64a52575374eb78854e86ed0fecf7296967e6f5277e3e856901f74f751b78234a0bb419a11e3376f4e5ffdf149c59f89b6a4a0209a99a02092a442305810ce2139a69ed4a3472926092ac5244178fc1e4ed747d0901e4ed707101574774fb7802800a65b408e00b2d320cef8332543af01c7ff99e34abbb6da794d5b16ab3dcbf28a2479f38e6efda0c10f247e00f163a6c1372bfe118f39329b94885012cf596a7ecd5ed2af3529798a4e8b0ce9d01a4241e88beec6757c7b8b6ab68ea5e8147a0d48737b9aed8b6f7ac6b7ac33224249de96679e46b153cf8fd4dd3add120261e0030c1fb6960f97968f2f86452b26447783b93aedfa8e2f2fdec1c3de7a738ec41497db91afdd81ab8d3c6918bf289ed8630efb91645404fe484bfbb6ecaff19f8966da2da99767599d68f9b65c1d575b761a9183f6bead4eb40cdd9ab7f45b04e64892d66cd29b793d478e2f7a58c365e8e6dbf2db705eb3e3d8f46e63e06bfc1749fdbbbb876eed804577afbab583057638b24390eea6ddd2c107b26ee9f024856ee970b674687537f898da44f3bcf93fcd89082579e52c755af597d7c842af013d476fe5e72a93fdd342afc13f9ea4686ba5a34971e6a551a75d5bab6f7ed3c5feb66c3ead156414c4ca618d1c86c861ccc1eb71450fa2ee0640b7784ce15184ee46ea160f08b478f418ea16ac0d301cc297f810201844aef8de7ec85f43806010f6fec89d3e5c89c370169f467b7f0511ba3b11a124b46bafff705898cbb7f2fd67441cfcc7a7e744d1df96415b13d99e571463b78836826ecfd7fc2bf40f04c364b2222322a4223f8ec87ef0102b6294842493c1ba1b4777cfd0d031aeb7c133c9482ade6e92a6bb0f50805ec017b97ec7610ec512dd31dd4894e0760c491f3b2d72c6ba2b30d0dd4d811b71d00171409c1a92dac4bf213925c9162013914421624d677f39acbc266d7684990cba1d766d386c82324b45186c86a242e87698c3608f6f608323b411422374dfdc68c665cdf931be5133a9079a119398311d42331dc25fa347364c83e06cbfc46412ee8b40cfd59e3423d1eb353343bb38f84ee8b89ae6a5e1227c8b6846f934b244e6dbf302c9b728df22dc1d726f921325828464ccf4f645c6fc4819df21199f43e3e3ee687f0c71a244ca9af17b1e3ddf22071dbc19cc6f6fc01b30a7c92f529183f635b321616cde4a3a4873b5671226faf14d958cddfe8520d56ca53f94640bf2de680983c15c49c2eece3dd3cdb0cf94c42678a3a58d79336d41a95d4804d05f5e24c7b5baf4a6f3b8f120e731be0d9f371792ee6e28dd479ee88f4776e8f69aadb63aacd6ee90eeee0216c02429b3c134238cbb29c84a817ccdd224fc4c34e97191dcf835375223d93e52cc9e39d9e33cdac7b9917e11140e08506208abc80edd5d8a4eb2d13ef6c05077abda5564a6db6119fff8359ab1631d65aef669b6393a67f87210772dd3e340daf5f2718e69f7454932e620c6e7ad266d72dcb54cfe43c637af484428c9cd0ed29024f58ce3199f4b336636ab8366a537a7099b7a78723ce7992839cbbd10077135ff6462afdbc45274b2c9dd8cbc7992950219ed238dffe48c5a2344f916e5f2adfcf145f0487d20dda211a967ba97b44bc813dd8da3660e886371d79cd930b5895e0a9b60767a5b7f048d7fbb553363588929ae47774781dbbd4530184e936cc4266853538a4e36a5e8646fc5e69595a2938c480ca22bda61a3ad4cfe7218ac89d0b130a191d0a95c4188c024d29913405ca939d480ee0940a0db003658363ea6a4bfca8abdb7da1b6312ef109ae91036c1b2c629d7d860a72cab407737c58bf616e57275fd5881ec0716dd3dcafe69ae1f5174e7cc3f99fc70d2ddb21fb61f7f04e96e9c7b26d9e71f376d3e937971b21f2ab8d178284ae3a13186b0e8ee66b56b488aa127b7eefea1b0878674b70c5184315443778fb27c49ec72c225d446cbf072d2bdba9dc0a3c301c7877609c1d0dd37600f0e785393ef356bbe9ab91b053c680f0d3378e0ee2c3f12af8cf64e7049d19df29f35b757f4dbbd485456405274cf1488ca0a482dcd494a0750f274d7224377a7d4dd8fee66e85642f70ebabbb64bc8d75dc60c34d0cd34eb46a2b590fd78ed5733534047b7975d55f8d0e38f636c1cffa727b4611a24f45708d2f4e0cc80355fd67ce4448938edd2cc8038788e4ee8d65efbb624077374465ccdbf8140549a19da7d202a0e1db4b48be98c26f74c3318b4b776b3bf6ec6374ac4419c6fd193336a8d8cd6088d7ca45b2493c96436b91b39de52e6943b2ababb29ba29ba79704ac22638abe4a5d95a836d708d8d8e0dbe345b65b9dc57194956a66fba6599c55f7a7394e59cee4b37ad5d3f4a5856b3d56429e1f281d2dd39bec36f54948de4f51c72709a991b15411af9f84f263fcac46fb2c1e41555331ce085718cd9eb232716e1be08f7453eac6e275af6a8d1ded3046632696913edcfdc9ea6f3c04e94080c96e4418ec13b735f123a5122a1921f871ccc980e7190e695cbd59e6579c519f095b394c8bd4918f740ee4d12cab768fc7c8b5c3b4a70edb0a069f04cdd3aeeadd76ca564a5f9874cd0c6460683617b2bb69f9d5e4703ddedb091fac09f47597e3cda3b93e5c4fc324c65d97e137db2bb93407737051226f16d4246b091a1524c722bc5244842b76ac3feea615e20e48caec06032fbe3586db27aa3b21b86c168e4e39349b527169d9e7c2c336f0eea1124de6eb19b648a3538a64ecd33d663247a5b6bf6875090796b9efd28b35796496aebe1747dc060e33bdd190c16144433f3e4ecbc4341e68fa6114e4e538f524c0283dd348d344cd8cc3ba35e93b325d1386dc68d9930942881ae192b666cbd44c99528b96b666626a6630c1d377c6d3abcdb9ea6bfcda5a3bb018bb6270ed79a49499f5d725649d70d478d33ae75566dd7bc1db96e687583632db2218acb8625babbc96ac3c56e467ebc35b45183ab06216af8a18615170d4028af58d66adef06bc4b11fed9de1de3ad19286316890a2bb9b86274f43927cad8b869f76d1c0ea1e22f226993564a0f493336abe25cf264be49662232e9908e0209924e06d56b1d323224582b8646e986e4c1bee361613058c81d23152e0d315f3a4c19830e6c7487d04c160e237c16063c6b21b1e89da8576f91bde05ae2e7fe2f221aff16d22f619d70c529428cdf044b76b865abb6480c10a5c3210400625970c465c32bcb86288812b062a5c313c751b392c1c9b7e80f834bfc928f49ad06121f84c347b8e9635340a1d637a7bb136998f14f435f35633cd7468a41f64a4df746f32275aca6430a40103160dc313484428090c3b340c3320ced14677bb729401e63792c38a1c4fd59523880e9b63a6e2b75f23c5a420f347fa4164b8b7ae1780d08d9f14ede9b47b1414fbf21281c19270d7be80e30596cb052c5c2e8c2ed8b85c980107192e1c50e0f8e1c271d3dd60981fcbcc27474b6dfe405499bda13f13cd309891b1ceb8bd9526a4c19985f9918cc2190ffd67e151989bb9df4a9af1ccbeed46cdbf8dcf749b6c6de18cb667ad05a76e77b50073b5c052a204bebd5f5ecc82152f254a0ec65c2cd830c525b1808387f9a3795790d2a0793d276905280d629a376f39e3394b57b0751bad30d320f9a24b8533ba679e75584f72a960058843bb54f8e9ee76a520e5da580a4f7477c75208d2608ee2727e8b5c29acd060c695c43ded64426f4641413d5cae23b832e0723571b97468496945f1f61681423fcc1881b76a8a35d4ebf8654904330017cc0e2e981a5c309feb8507ae9703b85e96bcb07ab427ed8bf80b2c6becf557cdd696117437d8ae9604b43069b1b95a72b858d6a071add8151b546ee0520143c5c9a56283ca8a8bf5060b8a8b6500174b89a5826b5582956b1573ad6a5c2a25a8a6500971a95229305ca9285ca99a2b95022a042e94045ca822aeef09ae4f4a771bb54b48bbbe23ae6f87cb63c3e531009fe491d7d084a1d3ea8ce3d7929890127f396c87d3eed32ae938d707a2e2f23386790d18bed7809f693e4bc779c18c6c88bc06a441aa5dd2269af4b1e74c6a2bd293354e3f84fec38c51e8b47b833f49efed9a3724274a24f4dc8c8aa08748a12ddf99bf5ed6c86bc01a7b8d780d18d2902415721cfc07c7c191c257356fc52f2307439cf09fa44df5645204345fe1e3f3bc3923a39d710b0bf3b5e19c66c67135af63d15e27721087f8246ffeaaa1c38e40f3ab7965218ed738a555b1665ca9f847cc1bd4e3cb9a64df8673793a746df412a5f16d98925866deda446d3fc3b5d4d1ae6e0c77754eae2e00aeaed54b9488dad55ddc7cba3a49e37f1aa6382457b37a8912cd9bb4199f528229b97b89d225f3795f3f1c4771b129386f38e10d2bba9728c99428817fcbe507ed151f3ba63824dbbf4953a2e460bef78d99b789b8c9634f68c356ab36bf37ff912760d14f78d2dd4f08d24dd25caead27e0b071638df6e14607ba1b3b512278fc92da7f9326c3bd95e1deba3154041f38c189067f96c92c52a71f4ec869021b4d30a3095134816c4250136c9860039aebb6e219df017178c01b7d9b90d780e3b5e52f6920cb6c038f40877d59b30d40407489128ac404206db4d1c609dab8b511c312c4584204967097205bc28b12b850824c092a4918a39b06773063b3ea301f9f34e313000ed2e0cc18d1fc69e619f79bfd9533bfe99de6314969335e995e98da9c24a98c3e792f78abe29b2028e6f7d70b9b9fb33437bbbd793b6fee45cd9fbd681cd770c6f133599aa92dcb9e9c51a722122680841209311cc18d2398c01ea10523a86104288cc08311788ca0a3083528c216450840115c9022042916903293124304361a2c7d0cf9b5b61a790dcd8cdf6a52fb22f68ccd8bf317d68204bed303eaf83079bed6dd438a63322fcec36faa2495ddfe9964e1789234e373c8fc5aad9ad97e1119eeadcc5e180cf745d6c83336bdc61dcce5ea44f3390b65968ab2d06bdc6145c0d39dacad011fc9cdbf5df3f622a958733587bc06346f18fe0331c1b19e4c2a49842e88904483494646453c37b35408cccd9c0e210643f862081318820286f03484a321e00c2125841308a10821ecc00613d830a3bbc36bc3e1f86ba45fc4717070401e1d875521580b12780f0fe893e3b09aad35e048df1c9f3ac6344b74af19d2842fda5b34e3fee6cbbe791df79626242269be49e18971c52425c90a8e45c27f13484899c43ba408b617d337455ccb7fdabf4963e3ec6ef18f04e18a20f810041410ba00820884a106c3d06944fe3fd2f2357e582df5d74df2f214cd2a3a495226a3f00709f801fdc1ca1a5facf16bf0e083293e08a3c1f1859c4668c62824492af498fa80c142a7b7dc0ccf3858b3d5a4f69a8e2b8d08a4c977c643d9f8b06c69ce593a23c96b9637533cf3c10c3ee81e5cd183a41e7c3c88010f9af0200818ce4e2c1b1fbf727076f811fd8c6dad555c337912097164324c69f0ec246f37ea37fbe8e7cd8974fc9f9d37776d745673de9cd32c056bf692f44d206099b3773c1fdf7cfcd13e120f5a6a4401d57892a9b1431bbd032c7a8992ef20dc010d3a88a2032b7470d3c14ca7b1462f51f234b0e834721a47d268458922c3bd8db2812849c0dccc31c5c5a2a8d0dd3988410e9e6c2c073fdd385083663ae2000338b09db967f217ee8b7080e3a544c96f50c63944748327dd7d83b01bb437c0d1dd20c5d1aa0d7ed0a0793da887f847722f2428682482c19282fe1c896a30d6c0074d0d5a3560a1c1051a40a021438315e232f49ad0968e835bf167f812392cc4853470a2410e347839230467303103346680c40c723338ea6e50062f9081123208800c7eda7c8b33030d33ba30e3290656740c6080811a30b8000c9a6030c30b9cf002345ef080179060f8185371c679107101192e88c20540b8e0c605b1d06bc067aac1c173cf34039ab60c2432a690e101324a324432bc05515aa0821668d1825b8323edfa7dda8df1a8e15103eb010b3ec0022858008405ae15e860054eac20d3cc7c79b10c57d0df964f0f6bf69a4842b2525af8e5450a9d46245301115400450549d09a2f928222a4800329509202221420010565a0e0858214c610c118538c31448c2488518518454e30e5046784343433f64910e79cab9335e34c043e2673aea4d3eeab7c1ba66f3abe5987c5950707c737afad556a5eb7b86b99c06c5e1aed6b32fed968627c92b4e9bfc809564c300668022113a810c61961fc28c1114ab002c7b5043c4af042821c90a00a12dc48a0c208d81841142350c29892d78673eae68582032814808204ca4e8b200122f801c613c0f80018b76e3087e089100c7de1842f32f0c5ed0b18be78f1820b2f98e8ee8c69a6a3df8c75d4d827717d5b061d045f8080091014016becb54141fe1a7fb4e7f521fb37695886652f5a9ab1ad1f60a21bcc6575ac2357bfd85fdf54c92ce403b6671aff033f0ddea20fe000bd0b35bafb4d7a8bbab0e102095ca8800bcc45d1164dd862025b146d0143bf68d756a7b1619ab1cf788ecce29b9586a4967e9923497ae273c6bd16a861a8d40f4db7899a644ca981111900000002c3120020301c180bc76472c1689574c50d14000568b45a944e1e09447a10a41452c61844040000044044443448020030a9f2bbe739c689d0e70b61d452fe0ec6ebf152a5cad48860265954efb409fbd0d6b4788f85fe6ee9be78411e7ca2bd76a39b61f139a63b2c8393e6565942cb7537f2e26be2646062f27738e05008fdada743813e73ff25cc0f8730d245c2bd4ccda86be840ce29a04fb9ec8a7c3ba47083d713b30687c17908f27e46f85ab3e64917ed57397d8533815485c1ca12013ae5ff41c234f94b53c12f63ec88ea700e3ce0a480826cf219fe673d47b4736f0b3ac819d9b0bfc4d6d85d2bfe04d56362f2f2f000c56e6f114e25d2d00a2a620035faaee07758334f824ff25afeeb937a3b71e7579ef1a3c28b9fba9ff5c893dad150a8ac7ebad04e51a7931bffde399698617f03a58a495f42ac5d46a54e5b57fd9069e02179d874cf2a8f36921806966d00b08032712a2142640438fc13451d98d28963539c1639955511d37d316987ccdab86688df2b6b0fc7eccf6a94692e927d49bfde5cd77d41495e5c60d2e489cfd498aa6a1e99aeec647228c73ee295c1b2d241d5e19f4776c65d630343114f5050c6e22d04c2ba69c94721064dc42ca3a7158f7080d5a12fd28685b855ecac5d553ddc77a5d60f549a4aae7d68267f1f539b2042275aa61459ede1656baa3d8cc127deeae3a2b16eff5d694e4062a1e66e22e03ee2c7a7c3ea2559bd6b7c49c252534629ab9d27babe7c126a0062501ebddaf598e4c914af6bb164444c665b25f7672a74ccee107e3a8471e5fef54546f7f009c01d879af960ae218273e36f17c60b7a820b097a67965eebf5532ea521e93896970a58fc036b4c80c61c8ee0ba3bac1593d355aa2c352412ea1130051cecb37eccdbdff8592472675f3a0b5991b6bb3630d10dbe3d81173e712a04faf9ddb6de4bb8bf87139d1fe66b42bdcb02f6be8c2822c802a601c33195d62eb057c705ed2f3eb7c64e5ebb0668ddfeb744be5a3a8244747c96bcdc8535c58eb4758a8ef2a52d5c5a089655a30bed05967c760f5faad4cd9a6ff76376fc51d2d488d917298d0018d4d7e3c1278cab9a08286b84570043ab32fd4e26b5f9217c6eb95df16277ac523e95b58d4ebffa44f70fa517befdccfec6283012fd6192a8ce685a9270f51c1fa0b051d3dea932ba0ca88d40f10d8fcac18f3b24ff4dd61e936dd89637acdeddda0a286fae6d71c6e6c8cae4be02131cc2613d6995db0cac9f4d9ee52c66b65e2610d6ae0be1224723263f7b50dfb0f64053aba5cf1d3f8bf7898ec845d3b7476144d3bba604c420504307121b162365477e2c3d0fa1adcad675c01b8eac188b567ae4e9f76180817ffb71c1a1f439481f10d883a70d7337dbd257ff76412c60c102bc8422ceee0c65ce4057eb0d2a1d9d0ddece127e713ecf5f1dc8434cdee12f141ee18686969a12ada97a01ea32eb7e1a63655a0a17b31317a07b11be671e756a28713d421ee77f46fba27382260db24ae2b9dd94e3a1ed5bd64f003891051d9c1e644041c0c2b1f0f9e1599f2bc6ffe5e50b4bc01c7c3ef5d16306722694dc872304a4c9e17b0ecf1965ec67d6dc4ad155bd35eb219a3f632d71f9382bb24cb4b5c3ea9f0975793a33a23fec05970b27f72c7c84afcadcfec3e95e36f86115033cf2f2bd1e5a0e0e69a12062b628ab3ff5ceda830ea19152840e5161a1ec2f0cd67678dcb55c88ec917dcca117bddebb19e2ec465140fa6cefdb5fe8f0d6cbbffc524d634adb788f9d48dc1bb78143760f414aabb10ce03e972228df5859033c6867bfb10329bb5077e107033a80bbc188ba61c240bfe6fe02590c8167798d3710774d4a23baa66625351000cbeb4b52d08910a6fad1f58f616229d25c5f69dc44adcdf674e7555e9675b61ed851b306b2fcf36f0bd78d756aa1188d7600d82e8a4f1efcebb1edc01e4cacc00dd4b2283b65a0b59b5922efdfe895f46881130de14415d8b77384dce1caaee3e1711d9f6f9067e0d10b49481f1388dd7b097fafb5542755fb0d26fd7df3b5a2a4583c17ad32a69a0c114db0a17d6469435b18cf50b9311cae68e67ff0adc7b6e7aace3963c88d2a60e25e9febe50da53c2bac780178b1ce4774c0cf6a8958f675c4c0d85e4095d3998f5d12f4c352f0d50305011a3433d4ab6022d23113c9aa94c24220d8650d40cb80425e52151ce282eef265527f3702a605a03fb15d4418b799d88384aafc0f472ec2a495f62098460806fee0d16376f188c079d7dcef1e1a3688a6932570ce5954e61c20f50269451cb2966af207e63c9dcd447a3d51494de479923949fbbab6d7a29c99ca6bddc78077ec73458167bb00efd200d1cca2c4c85c6c9a30e9ad936c6750d30ac5502c1a0cd14952fa9dd84c17ec6f5965106ba404db505ffc97d7b7e28dc3711fe09fb71c2dea04dd463068a049021a75617344881f48c0b765a99b5e0dbde72a5931f1f87dcaeb27c37d011bbf49e047bf6b8a08adf40a12d91745279b98718671046a4c116d35cf140dc9f4b6f80b6bf8d7fb20b491645117784e77dce9e4272b4c4f450c5d5511e0211915519bd9d7e2f035e0c435ec23d930214b3033ad85dda2065762dfa381421df644720117e93be2fe9868a6252f4559a6bc84fa651ed81dcaad50a8b68836504d0bc7e57e621e606c6e0e074b16e1c49a47d74ff2083724ba31ead72bb006502e98109ea07f76b43ad8b6c4e2dcfa60df81fd7dc3ded4509a24de328172e30b94cfe862ea08daff08ba5bd66fa73ddc8538a41e96cb404cf967b9a1dcbb33bc41c54010e170546e51d2d3659285ab2e3a1d2aa80c41f7e7b21266f4adf3a889d5f3f0c813fd05b04292873d6072e745132341dd5ffa7b85427d4bf47888977332e28793861456b1caa0670fb282cfce384471458712d20c69a61b30226bf175690e972bf215c6dcf6dd3d37dd406d35fd2fec75fa8e075350703f799d1f24dc409c27f2866b8ff5263c29349f4656e5e748add305e4d77be58b4837693251351ec364410270435881841d7b67473eaf8af638570413bc2a7746b3c9e85f56212a9cbd44394f459533b5ec96c985880d9ac41d66fb25ba23f62421f68b1f30afc8552af3aeb7525bc70b61d64a3a68303597c084fa90308730b975b37e400e84c4d8677d07fdcb3c4f3f74ca5dfb6772bc03e78794ae5719690746f0771ae9b885b1038406a36b30728b12a158dadf02d56e1721dca9b5058439e74bbd16a2b1118a40ce416121ae3bb8483f9789b310f746f0d4055f3545516c12e4a6a5e97f034d8c074d045c5402688e7e380b4847116da5fa5ad3264822c7847acd4b18a60def6207c409a39cf9273571e441e85ad37e0f8cb4917b5ac763a6c8bbd1f8f1a022137c37b263fcb69dce95a0d13668323058e59e9ec647aa8bc42562707634e511ffd5bf66570fb05ce3b3748da3b17812bbdf8ac4f433777e3830659c1e5f8310c5fc8a0641402445ef2873a2373431614335477e6f44d5a530451635d7dfb24a5ffa8a07a5bca0e006b2f83e89b05b76c94c732209c4fe362f4b48969273e3a9068596976c0fa662124024c7d1fc27f0522cd06fb8fad8ad9a52e2b5535371c7ec5941164c5fa2d8529b4335c373b64f554f54e3388235520cf5910c2e28dfbdcca70fab07b776ba9288c909a08b94ea4317cd35ababf0f498713a981a63bbe67942e642a79e8e53a4bb7ecd1f692ba9324ad46686d1d34d6888fa80b8182255a5483f52cfdc9d271c3b6ef4a0c056ad830c582bb77199a5b1614ce2e38e69099598097680a6b3933d117cc578981e439925ab5e789f93b572b321cbe4309f9600c492b44702610006d4e990bf16a69d5918ca34ebf0eec5bc4629dfe64dfe09bf5095212ed7c7242303eb887f38b0c5c419d301951966f7683dce0d312e1946881c5778eda8ce988f3c1f3512215f2e31a1e69941ff6c0176bce0cb6fbbcb99b1ad4a4dbe603e87268a98227cac1ed68d9370c06ac857a1d5dfda12a88c26ae3aa6fa68394edc45a8160dd58989ae4de91aca11f5e2edcb8f53d30b665027b773c69874338ead801d74c5863113b0f2c8059aa606510387c617761fe30a05aa95be9743ff581d4c9b59bc9f24016f18c7c6cdc5762209f80473983ded1413865a9e251725f11784505edc8604a748206a429b221e1cb75ff80d722016db43502953214345d0b000cb1dd1a0bfc87d2407ff59585c04767f0e2df035322126910143fde7242f48d45e897683aaafd9ebf2a5aa685d178db12234d2af01e968605b6ab0dcee4e24db8f0640ec0ffacfff9fbf9c65b192667bd1e689e621dca6aa9857a26dcd69f65abc92199421b8520447745e095cbd50cc50b2913244ec3af21be495786fcd59b4fa22c75add0beb5fb70af96a4074be80bd3c33af4c51de0648fe23bab5d9a07f405775093f88a6249ba23bb664bcb1f1438d98a678eddd65749e1078e27140669f358d0338a163825ecf6148c157e7a2fb2194c0fd3948dd0e66d714c486125de17d2302b75667ca9702345935ecf7084e181ad6fb3236728bb708a37ac8624bf4c6573c9022a727b2b778306e61a3cc16790fc956c4133510190721c28c5b1e128b321c4747460f8bce1ff8b81a13783187192bec66a9d0aee62851cb1fd853aea245cb6d483d8239ca94c64c8ea38d931b36f8fc60f8a2ac330c1ae8f4cb30f93154a68eeca5028bb07386683115b80060e5a9facf19af8eeb94220822b165a8efd93dd877de6d59458e3aaa47df600230bebfc886ef68944916880f755fc739163ed4e15ac111135d0b0cffdf060ec02c4af82772f8fa45122bcbf000aaac888ca745b3058b27355f6b96d23bcc15d57fbc4c9539d12b1b37c916d694010604cc508447e908dffb0eb23d3cece01bdbe262609fe1ce02b0bcb8f1fdf9fce22b5f698d87d305f709f5a3d722e9549e29097a53a3dc55b681111510c23ce3fba806278640d797a612299dbe617a742d3baca209e10629a77727fcb5be69bd14a218b6dcf252db6f77ed7ce111eba48ece012f041ba3aee427b1ef0f24d8897095d78c0228db84d606c426ad1a12a1493ab8f03eae1347189170906bb1f9d58614ec8c6d01974145b175895c5ba727f12ed068c9f1ae654d96c50742123c84e9a04cb4350aa2052d54a2ebed53d563feddf1b06b0f4c23b7ba1757944343939fc062c88a17fa19c9b578437180bbc3720bbc91f3c02b46b0f173705a21b824a81d3c285343f51cfe72e16502363cdefee3f6aea16b0dba1af60ee2209ab93c928a5e16867cfe5e33debd1676d5e3632d6aa8048e0d79690e67320aed89f6ec048d4bd2d70648868c9e38f67707673a829e7f2b91e8221a27e20fd6361f81f30b7ce60b301b5aa4c58271525dbe864b6207550b32a0e773ef2e0c00360fdefa5af6f50b35dd856d4d46790dd12611910098d8cf6fe941a33ec75e26de9fd637f14a0154766bf9d9103e985d09350f1acec4fe46ee3926bbe7cc90ac7ddaf3766d50fbada080e1d97895e807b54e425849a52b5e45a3563c5f6f08e548be05c749e87e6f20de472fea854a8ebcde9c6acc7e2599ab1efa9449ecfa2d4796a91d04133b60957a4b52ad59e8db5f4a755d041d4af45dd62c55c879c774d0ef1943c795a5c02e3f0ad150cbcda170399f51e65ed03b18e31391bef774aeab870aa6bc5a6039e6b3524b940573f38e2c937fd977af89cfceba22133178a69214f0ba8695ec61a45c886842a0ee4858a3a830cbaadc7fb2253d7c8eacae22ae05985b778e0ade9ca13ed6e18231d21e351cbcddcadc54be81411b040ea0815056ae600669952a02a6c37356de319a316fa0c7a84f5fe6ed564500646e8575f90974fd53882e8a4b8fb0b285e012504b1f2a099b33c3e4166abe420df7b17ad2c9c06ff5d22e990c80bc2f415756d1de0f43f23b9bdf1103b1d5935c12625894fe675ab579018601aedfa4921c29299962dfafb178a4f8ed8b32672477e98f32adf56ca7491ac386ca4bd2f27b4eefaeea4bc3cd1f8eb333801fb604803a3093c11684a1edb3f97b2a41a29589f51fed4c5ad8cf4c3e2b0bbca04eaa5730632eb02b6ed70ba5d6d72e2f39992cd152e80eb1b7de9a6d084a8ff8220b191a8bed2bf8dad3d529c75cf3d7d14f6c6358d19b793d16ae0d6bcf2d84c94f433056870ffb63ff613a920967372275e6741bfd2de2d1fbeee8095b60e5f33b6abc365f9c1f4ea14944c0ff870890e1304a0c78fd2086ba11b7b30e6878b903f90e26e558c600079cefc1306f1b3d6cdf34573bd926de9d7f0c04196349e92e3eaf934b9632188163700d110071f883b5fbb8ecaa5383c22ee96271c3e1b48f6beeb6b5122f3d5b93c620e1f4f5405052a0bd65542aada396066de5918e86ab70d5bcc959d0eedd1ed6a4f6292a84030104b21b2b56c050a23cb8248212927026b97176884ae09d81cb37a30209dacb6b617b710a76dc6c45be3a51c257b39eeaa558cc1fa0bf78aafb706deaacfcdbd29896d11fbaea0226db543ad571997b635fbe143884bfdc1f46bb05271a363308772f544e8cf37ea686c4fee178b79b68474fcb2281f50f3571bf58b2cfdf74fd8948d2bf13d05197de548520300b6d07fc6f69469a1d156d3e763e5edd1fc96b4211aebf2d86b0954c744ecb25272f5344a2993615c91e6db4807677e9a054f3490ab92ed2598fa8910c9c897e5979ea2ec998d90b8761ca2e10d71e519740111c9184297040d072e48f41bb1446deb4a1e9c0d89de0de2a1a188d18803077972e398add3c1318fa247a0b7d2e4357fdea64fbb2f909e189e44f5d1a1d3daedb369c9b117aa9509556472475dc75975e2829d668e5ad022aaedd33ebc6f7c0dc50372b17fb76e862a8449e090b06f33d8f8c69bc3747a1c3b3d2593695612cd3f500239679f6123f23057890bab16442a024be2230311fe5c40595bfe5caaefbb842fa54be11415f5e1d5b3192ce5b435e1efa3eacf5eb73663cfc1cb91e963db185f51999886ce9c2b54df8907b13cf010313c8213ed58cdf4c670e238daaf14caa7152b40be4155bd5621d563f0414663174110a0ee5807735180ad7f1c22aa2a562ba61c566b0e9151da5c5da18226df952b26f58580b2ebc04b2b787214dc6628e81023a85ee5bb0dd167bf8d311f14751f4433ff75bdc948c521ff3ad2be4c43594cdc3caaea978042c9ca23533f2d412d4d182eedf045956f8b644224cf68a955746e4ed9c3ca5d894cf52b69b69fd6bdc7636d277b419624b494d5ed860a2199a8348b13cb9a589583e53e08c306f9716b56d0f5871cbcc805b3d23d4db8195fff65e3c50ba297a0ce999d31b2ded7fdaf9bff19febcb6bebb44f434bf2732bfe4bb9302e7930012fa9935708e6b738c1123062067fa0f65c96360b626e516d9beae04f2cf272e076d59d21a8b1109ae7adaed56e6478d9a7de45b42f3ac9c109f26df5727df0731c6628c25d8a01cbc8c30671826ebdaa77e1f34362e412ddee77b0d67fd5e11ec687e92b64c9ee11a6f0fe252c1ec1e2760f1e927d8af66a990646319dd278c1198560d0abcdbe461fb101657ed6c686c8a37a24dbc3a1375e6bc5bf7c30cb4d04aa22f46b20ef9318bde45851aaac4834f1265db2956f4f11a8e65bb1c8aad0107a26d1dc0e1511e28a2b19e4a5fed62fb95eed75a2be4c09a439d8795523314eec0b5204bb0abfe98a6468e9b58b4451446978a75abb510a89aff00e35fb09f491d48b2a702288fc654da8953a5a4469e2f4667ebccaabd30f35e7bab382247e2a6e6500e565d167b608839d07ea69dfdf8d3356bea5fd9e88f7bfdad435554df00ce54b1101e46fcfe3c1c2e212748c5d2a9843bc5ae780be6a1e404ab0aa5e3146fc542f85d64eb9999f747d8554080fbe43d57a368690f10cbf390fb6735d9ef982451298ac1df1665706b3aed4ed12268feb7eae5ffd0405de552ea742e2b725cc0fbbc14351aff3361be35e3063d1483aad357a5e146d90bba0cfe7b03b4c88677340c9affef70cd8de3c91d7fe9be92c4f66641108acaa926e6adbf0ea2aedf0cd9726300c1a5ce34b7969d29e6bf403aaa10bf05517a8176ecb04fb0a42633ab5d8983feb447f14938d3d5e8c3cd8a4ad5288d2f8dcde2194967b2816a27c0b4f1527b4e72e2e9b033db7cf31dc757496e949c8963d990b3a203a4521cc4c4c47faea827ac2bd70a79118f31b6aac4524330b4008b3e150c4218c824b1c842d218ea804ef87cdf22df50949a25190593c477c16a70bc6c67f30858a981b0c0d0ce8b5cb241907124242c9d3c00df41170b63cb349fff2875f03ce2d95b4498a224d1d3113982037c842a34575e51a67b14db603f249ecd5b49a277f3b44c89d372345aab1936bcc0fad3b3098f3eb0b9e80fc0071cf8ef78c2dcad98fb48ba66b1ecb56507c696be0a08778ca1a233e5ea6670118cf5e2d89d51c6f8b64f0897cdb39207a68a33a7e081dd1b9d751ac57791ccc09ac20660d6b3b339af9585d8322e1acba77661456f3d8e6f5c4d5aa2c0432cd7dfbefce65314026d85d49e0cdc4379761c6c063427da4046f25f5a353c26d866f5f04ed56a62a9313d82cd6ce1dd8ab3cf7ec9b8976d4bbadc10cdf6a4ec7e08ff21c0d69789a95466293a0d96912ca90ab0857bcc5a0bd9c8e8882a097fc0f261d3a066b0971e60419dd5c1755f0bd45f27a3845d770a4ca7bd5e6385205e01df957f7720564cba31aa83463d3fe2b162e3349cf781ae8cd99e4960ed903253e5803562035a6528907cdc6302e42454535bcacca5dde1b3a3ea473f680172641e935f2e0d8d451ae049ac05fe8d0f55571f7035de6bf265bd085c47b020892722dc3a2f89fa1d1bf79339db0f649c62a2ff0e8d8752b4d7918afca0d6ec0ee005bc3e4c9830206ee8f9cd6d61e55f815b2a0e757c3dd13cc995c2449a7d6c90e3d1d348e953fb4b360a04c8d3f02c0874134a279bd9be621357ebc735a9b0f5dd1baee74b6f84f7ba34726f5872249c17b7310f465c806ab3c0ad337671abfe9ec11c9189579042a6a524fdc34836ea20128b3169950c368b96842989b768a640299452e8de4a9bbe5bf32f224c5178b4e6520fe517072a961fb59d1aefaa1976fd9ea5531fc8f287959f88939e89320d0deacd67e8c796ff70d89338eb3b13e0b8d551896494d357da3708e353355ba96817e962fe17de373a1fc1760fe1d5486b07b81c779fe81c3c0362ea758629e5d714c14cc5d19e7c0dd95a793742fbf7e05a39af73ba78661bd3c90a379deda789670bb41d12da66941cd424368205fc956b5c74d13c8b12e4e8e2c944153b38a7886b696ef4070512764821a3206dcd596a905d2cf8a868c0c595974c665d38c8b7383cc73216a4c04a8b30b34f448ff64e07530a2e197616093781addde12e7a437edd4fc5611157b63f8ab7d8d256301201b4a0532e6092e8b7219afaf74b51b93157c69e3f207bb14d5c03099c14ca8d575978ff794d3ba346f9de06e1bc04ef5782da77fb4ffac741bddf052af6c85107e9c7617dddd881c379e25bbf8f92af58f7afdd4253891c91c27f4dac8f722bfdf8fff53bb6361f67dfacee30a979e53e6c88eb01d8c63f75cef8981f211205abfa750963e60e133f30b77cef21d1d599b1b14b0919af049a264b6dcd09d83512de65af54c7d1143ef4f6526922da64747285c193bc70051198e88e46a66f9b6b1cfe37c23f1044ccb044f51aaa3697b0967b1d0c8cad3d6c5bba93dac3b1f0d593e5a164b894b1520c6d3aa27e9d12521eb0f67823730f21eab1cda927914a6936cc10fe340f4c2a120e99002c14261f516d7ef8a4bd713b8c5e18cae510824a341fe86366b3dc831aee083319fbc8bbb584c13d9632ab29f024b23053f4bade7e6ff0d16a9225a837479165825090ce6e30fff75540137455b4223d1ab0ceb904c2a9a12763300c6cef04480a622b0385765a3dc6abb03932974b20c0b4c02e147667d94c6911824ca9cce303ebd73122550a687e88b2faeba5ad3c9a7c3cb4c08995c045767f6898f48dbd088ca45a878fcc41ef3527e220c0a47b21a7779b59cce4379b4d464b6f1cf41d08b63e47fd6c352a91febe9bff1fce9321fb864a191f890d6c75e1b85f0cb55d2c700a1433cc86a2afa1b95a6343fea861de3e448de0cc5619cbb4b805465152744b8bf20879e4101347ed01915abd425ba6d601fb6c8e1371a30d352d5c2dfcb7fcc2b46946e34124ef9d62aeade5bec241f7f044a491951bb62c1dc08edac59a9da56208d15c911e63d82351a26630589dc2eb498e725ec85d67a7f12f431d82faf58084d226596884cc83c8884d88ccaaa0581633f2ec9da326d7bd8347986d3cf0e08a3b37c36b566548c4495c2e6b0b4e06d7e2e63e4953489261b6980afc233a79847ab8a6c8bcf4c87b9adfa18f991bcbcce4def13d61b26414487a6a2296000a230620ae87ae5dfbce9724564228913f49bbc64947ec4db42803d22b3f67009822a520306253f3eec2882825cfbcda69b4099093d6566511ffe970829d473151e58f494b40df9da67a74185f6f43263348052558bf441c12b14c965e23f46901ec762aea239a06c3791c613206a1c4fe6f5ffc180dc9cccac53ab6bf93343c7fd884cb91c20fab65ff11fd5670be564508afa96a131523b9a6c24c6464a1c78efd7601c003d15a44464784cdfa3f7ca77d91fc5b25feb41bcf8a80c20cfda8e6353783ba7924b007121feb3cc65a23048672c4dd3d2b3b2302050bf8bed332aedb7aebdc83f50a5c76f8b593c9dd45805088de71a31467b7f3e83d1c616664967793d796f2b16a13d88835390b3d21fce411640782560ffcaab9b7374ee5c5def6e4e2efe069f4a7f1d83691a137ac55cb45f8ad45507721da68a82fe55c32225348faf5f9a9a281f1bc24beac6d308477131527a66a72882db504f29b04a8b19a5c7ccc722ca7e412959d0b6f6bc09789a3a59240466d8d7cbbbc8492a0473cb110be4de4f765c5166ba288f967fb605813516e66bb590ae8018857038f90a0e884f0c01339b8e236cd2f54268ba1f9f2e40210b5a68f27caa07ab526def05765a8b5bfb3d8ca2d753e1b20e4e9ad1a761676e1a64a838db5de3af21f0e905395fcb89f77976e2353ada10f84e07bc228d73a8c70b41af84e2165d396c27c3f7009d47f13cddf9722c69c919ee56e441ebe077f94d70990740807b67c5722afc3b3d3d825969c41780abc16059065c4711f9f635ea4a0fcd1f9040e4201129efc1eeddd1eb0b186b08811bfcaafc8c13d0357ff6d10a8191f61b3af8a2f12d1a52303f7a54fd144de0d2a71ff895c6d89d49f8856e107fcf57498dc07c3b8ffe1a2c6c0cae1bed3b599b12e8de59e39ab107213248cecac1d2b35870da364c43119f4be45f328cc8e867e07d4cb7d36dfc2fe2ed409410881a3071aedc4f8995fbcba9dcbdf76003fc652b7c566973ee28ad55b6908c76ff189c326bff01c31adb2f574a98753537dc5fab39e91dab88708ef384859786b307413cf22f06d497e8c3d9ac1c7630660d36f96827a0adb8d62e7cb4762ae085393898e125f5621e8b645e0cf126d94c91a50e252bf5c0af4dbbbf9d8955d8dd7c63b41af6c2ca5ca3a0be368a552d34b0c74c7cceff45f2d6d6a85daa29695179c6d5913c15a10bd81926c71d84c1295debb73b0ef2366e169c86b161eb0160bfc91cb2cf28fc6a6df9abaee2435b278ddca63d42fccc3040db90d98267096265cfd8a622a088a7a0e31c85f308ceae69200a89050a0a3096612154310f05423888d0dec343b02046ccadc08979887d3b856cc19fc125c63c704d0b22e61b5e3be6379dc0adc6ce96df028d1eb63c79ba7092981b238701f1bbf2358fcd792c411a254680069ea7e0203ace41d37cb08f2c8dd0e3a1bcc6c384f1382744e5f1cfcbdab510371b126e44f39fc66376faa1497ee031d3e3d0ca38d52ebc8c69face7e1a09b70607d08345cdd88ee00711fa9ffebc6f5eed7ed2c21473cb13434b291511ec6e1a94943d035e4837dd2a5f6f39ff4bd92b270e43bc9e405fd8c73b40767f548ffcf517e3a8d0ea16df7093a48b62068d05d3c1352e445b0350b47bc8dc04cc6e10ad831d43f8745655fa73a3bbe75bd3bd55e9cdc8275fb36c06cab8e5080f9e12cb2a4063bf7f8f5b5c48be871bac39a3bf8ceceb6483acd4a9acffdc73a2988617bbb87334d4fb22b4ef0735b3fb9cffe20fbec9655ff44ddbbbaff6d70106dbea171b247c337788fc56179e28c99fa09ad9fe38f377140306b7fd2097b9472885b679c178e4875ea16b545201201ad7204715888fefee8080a47ae9d8c8103560146be27cb180b47430b2fe0c0208ae725e007c6e5ecd6bc7e58837bf9dcf10db70a85c02bebbd77e38c109fb66bc487acdfb742fb5c26d92d114dd848928c17063fc2a82a5a911a710fecfb8fe12a15b828e5db8493a7b4a325d655cfafb618e1ddf2fc1be05d99b4871c6caa64e0f6391d94961010c931d4431ea2dfb4e594beaff2108ef396a4cd8db420d9b55ca26f40f9776ddf8fe69ac1e26761ed6f5d49fab37be34e7b8936a528d937164c463f58ac8306cb791b674cba1bec6aae4a0093566480ad342d862a5ec4195b034fdd031f3ac741c9c76653fb7e00c6611338cd420a7972c37073224622e6fb6a148cee76b23f361c2c1242e68c27f088804eb7369194cab799398a391f0420129cc2bb51200e8dd09861e6cec74255f6a31be49e5fa34b2b5bffccd7112eef8dd3062b81ffadb95421c859ea83850df158ff5c371bdede64c42f5934602308a5ba0a7242da05a4696fc7e3ea3c8c3a14b7b5ff0f80de19dab9aeee86f25c4d6c6cb0c10295690ea44d67736a2eae869cb02275f7dae2d7382a5fe59f9ca4aecd5e0a76687f9427fe9d147995e129f4f3afd128fe5e523e82153cfab0fcb1fe0f3098e9d2821f494916bada9d4e94115d35f4426a0109f28399846842ca237b82e201fb34d6783e6f719b2985b87372e56c7e746dc754eec157473de9b0b1622dcdfe8cce9a8fa6e22636c712f04ec659139dd193ba8ea5c2bb0770e65aa77771a463c9d436d399fc29cd9aa17eeedf02a6f65b63acdcb99f7d48e54bf1e61829b7614796fd8729eade4ef1d1c0c5aa94757e338481a2e68f85c8149d8b6a3d97351085f17df025e5afe69d2531d09272cc5d439b09a4244fba23b0868f98a31030a759c48e6cc33db1ae02c50f01354fca3178e35cae4cbd50a4ca456acea78bfec2645d4ba66a99528f59a8fbec767e9347e81f3e019e960785ba8a27aead8f0576fce3bfd35fa081bdb7ef17794dc08109430612b0521fd7d80ebccdbb9bf2eccbdf1be0ff87dea573d4e03628a4980a4bc498e39e3242be57c652db2d06a45f5df8a61676e92c5ec14261775081e5dc2a211574be86d6628164bcd19c2fe3ebcc34e98049f47780e92dd44b683d2d985b4501e05d235999754d0e3387dccc62344e72118654b289f2bd0dce5f8fcab0005c4870281588a989185662880caa1e8ba422bfc289b0cf0e0e3642bffa1e70f1ae6c34a429024f4b36a42402af14ede33baf30608320fb53d52262012e066ef47d05d88379caa2883db4cd44ee9775adc3661d7360a8d9e7c3647ea4c957e69ae5e545a871639f54c3d3bf764689404a4323a17d6dfe6c33e45d09622b94e712140f267a2c6fb8b922f65c708338f1c467889711c55f655afc9b196a39e7c60b5fbb2f3b54d7be77fc4ee3f96b24fb137af5d8bcc2141853c409908847601d19cf8388b7572bb94a57bdb89f93fd4019e4c360a39d1857662dc3bcbdd5d8678e94f742f8db173f25e7822afac7b97cdb73eba7cae20e13714a5cd03c1a2886dc78940157c8535e2913b30cb4e2f5f80aa2905e216a93c90762fb9518edc35e620c3cac0055e65bb774fb9464543df4b122ccadf761750b448e7718c453d2100727d6b4b35607d4f4eb2862eb0e94c31502f1cd11050d45e451cbf4f142f4b364ee2f67bbfe8355adeff059b16adf8ddf6dd07f8bc27e981e8652b682ff598594297f9ceb340054cf148878c922da2cabc19686cf7d1005e3e923db0d6eea6242d5f9c26b250c78125bc00a96eb046224e8e620e085a79de23062eed6c6e80693bf0114781097b689c1bba0b76d500faf94857d590d4ed4b51c20da031d47807fdafd3ce9f45ab9575c91ea4308c3e8703876c29c98490f37b00f30194e81749688e814d881e4f273f96c1b5937ff54167d7bc7312fcca4a7c946963e5f8f66fbc9b16111cf856ffb051e8011d6fe79af12c44899654b0636da6a6e2dfbfcbdef2f79e4cb139a6449946987523563d7e5880281c23c1015d432fce7dc0e1543b2ddde5deb167a6bc09eb2472197748c7c05a93e02202a872de2a6bb913797aaeac66b30eee11128d8983b477ea7e7e653a21cbae41190fa86698d9d8cecbcbd4ea9f2efcd6a6b093e4e04af82cc18aa755429fb599eb58ffd14fcdbd9498cbdf8f2809f1a127f23597a4e6d43d37ffa0bc8c55181ad20168bd38412bcd9b47a31a9f16cbc5028f22bea9600f3ef06ad29e2f57a591647cd1eb2750670d4ea62957e55f884ac928bbfd1e135422ec7fdc6e6da3d187fc9b2b25fda843ac5d0ee93ff0e235a5522fbfbdf9d5366746f9795056b0e03b0e107f3e09af1db9985ae342a47f1fc8279b9cb665ce695f5f029cdae3dc2a6eb363378052cc6554898cd4feb5eefec538fbaeaab52ce54031b2d79435b2e32cd461fc21a2e4fa1107fb3143547fbdb1da3dc0fa5da578981a386753dd978b0f4662e20ede55711dd2dd77b4bea9804ce7dce8ffbf6db4b0db8244e8e597955a388540b17dc75839d6dc15b1d90774044acc16379bed66e78ef52fe79a836c5c23d46b9ba1951b67f3418fbb0d73fd9608e957279f7579054744681cfb4822ffeee23d8ef31094ad787cc547f6de10eb7d454831c4a123ff0d21ccc88f06410697de8b954fcd8815dd3d2b91fc0bb773d0f897dd60a854395d18becac076cb8fd32b48ccb482247c82faba6e025e02a4a26a8afcd0010995a56f75543c94f8a0a31af4aaf370ab5da49e5653f7c415d7e2e82ee8eb46988d04bc4d40fa02e67c39376aee730d881b73f52a2cf99a4f3574ebbb02611728d4a6aed1e1c028ec32a0d5d808d2f64c5f2699678c58ba9e2c6d9e703ff896dee4a3794860e4ad333302e5f8be7949aac9a2a188aaf074be2a15da03f2680e02f28f9719d26e911d05797e7e1f417be5090cc891743a99a8dd96a3e23b5597ea388a08bec6ab5d792a7ac785df9e3acefd481e198c17e1e2188c2f5efb050511f05c43561787d4594cb8dd8f4e00928425c46a144e8139e82dec8e0841f59a7aceb87cf2d6a4add418b96b98bd77513a9d17fc202ead923785de054bb89e054ff7e1487aab91f945bd3c074b08cf51221825910d20bbfd2d8de3910ccc8d7f4b402a37218ab818fdd804d4c4306b0edba3ae40b3aec49349fed951819539ac3a7d2dbdf6162863061a16e1f1da4541f08723cf333e84ba015c72c250b4ff5cffbf6426cb7f1a2360920bd95cce68faae8fd8042013b5200126e4b25dfea439b90865ae206783e016727e75b26d03eb73ffbe2a86afb38199eaa34be19fe0c1ca99a0b6c17f118b9d872999ba6baf359b636844ed8b3487e1e31e9069eb1f42467e435d37707e0781d7df46094d9edbdd7a8f963a54fd301bb470f49282bb46bc2e238fe94ed036b1b8c331669b09e50f6ce9e9fb37af1d6221d083baf3a86b6a2e1078c935142f9cc34b436aeee150995878de94562411033a1ee4041b5effbaa583c6ceae139160ab76d31874362424b4f23cdebe4222239afe3b7495a50400e5877da0677f98a35518bf1f274d95db6fa4e762fc521c8cc5cbe2ea4309f3adf896b37f3ba9f5e8763dc39ef185e24dadee11ffa7d52d6eaf1358edbaca607c0e34ee37b5c8430670c9c6ab5cefabdf2b33913fe2d7ec83b23220f1d5129b2b79574f54dcfce65662cc3309c54fb0c038db16ea5b608038c30e40ddab628f742bfa2bd9f88b2e136c394caff43e24ee8835ed2d725d40fc5ca4bf312a13ef43340afd01ddddcee39329bf0ba9735820ecfaba4276eb03af607e684e77c49c61de3bd36b83fc5fcc9663f7877cdf80f4bb2f2227d51b2ddba941001ef2bb54da22f1ed0f6abf983f47cbf6d0452c0813ec5fb328ed0c19cf25d03044b98cf83044a66c854b34458a8dc06aeb7638f66f9e5deb2656f319f892fb7312164cb8618016cfde0c19e7ec2afd8e4217fb184275cb8f1d22fdbbc348a241a41e4f64f3cba96d5d709f1b160e81d0f36f8801b65c5f48cb904837434ed6c63f2489cb61292c7138d5230587c713a775856b1141370d7ed4dfdc42e258b4780e9afa308d3d3c830e81085d47e9bd15f21f4a64d04bc2c9caf4f0880d9dda9658f343c96a8541a4c55e4cb0c050e2e24988eeeac160acab68382ff35fee0af9147ab803304fa55162d1d26689a8ec01e7ed30c1a5e441b1aa90c9a57885a94ebbf183f3de540b28fbc9a8de1a54f97b52d8fe10c82e55ad90291fafda9bebebd97c28c05905be36cae0bde5a853283ae5b434f747f9dc63c79338b64d6cf640ccc47ec74d8dc194bc5694169e8f3efbe714cd6b2a0650212a5f9fa1bf1d40333e26db4a9df989b271c07dacc864f64d4ce1f19f011ddad1cb9c607afeaff2f7171d9d14231076ffc2b81efc3f82b02fff915faeab1da7972cd0c45ca633b9930514894c3e3e866e9ad13207069b6d9e7c9fe141721409cc53a4d61741704010e19a217d17148d93afab802962118f876784d2007be88e29a7ee11f6e44007153ecc26fb43e4e3f6424ca3e6525df20b927d00fe630596fbec728b74a989f039bc873f1801875b7a43a556b9b9d9a79b6390c7843d09e752b47d0e56a46c4374d6a9b1a12156b210ddd7f9a2d1fe82016d2b3f897953709d98801f3e1f2a33284d8b6d78c53ed91df97bb5891a9a55a4cb7059369276f327a408d37a753dee0936cf4e7884819a684eed6f31539c8f382b7d58654778a811bcd66eaaf72ab1332ad04533b11fb5961f4316d127c72afba121634e1444d24ebbbd1000e7b85ea7a6a497e11426df896915f1f2a1204b03fffa6603328e03257903f29331e818ed38760d5944569055777c3d534312523a48e8e69e0139852d8417a7b25f5a18a0e302ec805be3eb31425ba4559a5c7e1f2e2328ddf2f42c6646b75f78d6971070f80203218095f2573f69e220ec38f8e7a7f813aaf8e718237b5b37574a950c2436b5eb60c170381e23df3d709f1a0a070f1d6e3237d0904faaa35251a5d7728c0ba273b5f2195e7c2f487ea8bc6dd5978c70c6ee6cbe9cd0f0ad5ef25f939860106ea59e351700203d4bd1db021f74a5ce6e1be85e6c021e338c060713d5de578d618ef584a6a69df96c3206b6b5f8f530bfd880622632ecbb1ea4d56902d13fad5122b637aadbbc194776328acf8314413e6565596fc13b91a0fd5cee60d213b0de0b7f9230d68adb848fad952661c4a8598f58d4cdd545e07f7b20eb5fb83923d036b6da04ea97445ca2e8f2827eff6917266cd2649c91b05daf009ca3c496baf65088d29ac417659b91e6268769ba5f17f937221640d6fc6c2488a838acd9d2e8f8e2bbcabc54f9bb9788d6461d7182368fb1754366f88942c368e341e448e85b2bd1ef42de82a467aef7ab6be7743e500016fabae32b80a4296207ac76b7c46ae1382ff120187d9d3611b6754e8fd71e60571182d328dffc70f3122cc0bcc39852d2ea6e72260c32effc4d5efe0a37fa417f92844c4f790a0c4b14bbf71b5cf380260ed56efc5097a085bfa4c9f2b874049b680004518278689b6dcd1cb132b40ee584ab4420e95c450ce0b50f32e80ae3c88db53bce22973193c4a50bb478ea1b0a1d6852e3ab1c3b1ce77273f67f7065d6ca864b0206d85cf80019875a84b8bfd0ebfed5602920d5f14ee86dab61256e45e096e8f33f7f6e5fe6ad194b5fccddd05f38d8316f765b1817da72a96c063298845b11d37cc98533ef609f61035157916084b945835a31d2211bcad1ae71a5ed20d8c71ad3d1472439d7636e4fb6ea7a93269b9e629fc564f1477fa96ec1f9dcbf72d0759d4c51938cd4b19f8ff371c8a2e6c6bf8a287724528cee5eaa7ebc962481f4527bc7cff6c48cac4df49d88d1ca5ccc6f47d6c4c2530d67a54c7f671d2f72e639fd0a5c080df642093f1fc400057bd6c026c4459438b27021f163ec6a61c028cc8c441b0ee1eba2d10e3010f1170327c9938be89da8d33003e2c134a9f77665c0b18ce4bafc28ce42e3dca959fedcecbaa96862eae47935b1e04271f4bb075fa25ed91dffedf31a962fb725056ee0d6151b6e5a43961838d1fbb3a538a564b0a3595216c105084f745faedeee10efad4a192bbfa29c423b1b4caf1bdc9fa3cec82f2a84a28a4cbe388b0c70602424880b628713c18f18e77fcfcdd1f1578590a4dad498f158c12d3566a78293289c20743324b4e08b2bcea461e7878b4db07c03c387c03783b36392e10a349d91d2291d4631cb8690d402693fca8101b8238852001103468205d7506b1ddee7e8bfd6819d2f4e7ce68178b75ae507604186da1c687a35378a86575fffb516f778916010680fc3fb0ed7e116da6d1fa845722f76142aa4874c29a7ef1c5c91fc6ec2b240ecb36150cb146335540851c4882c8640db2158d85be290a2a5e2bae547987411ff7b07c267003a70432e99a72deb2a85ba9a81d1d41b8347a65383b9c0732fcbd5d33acc9274804cabc058f976eb4f5cc2d6ad7c9ed7f95b015bbc257d5b0b746260ed52752bd6dd8a4a35bd71a8f019c0f93f817aa51dda13b3d8135acced48b52109352c3a48975624ac83bed1b0e4d2044f46685a7a3bebe5d6d866bf4f7957ed16651f61196efd77429a3745eb9fa8518aaddaf97eb48077f20253cb13f71dd7a2fce7fc2332df9d0ddd41867cdc38a628bb27d6496c2c4416be30ff29aaf092e499f3305c939b0c9f4812cba1f417351968167fed28ca2586ccef530dd127d6ce951a6348331a4102fa326ee43bf4935c5d03bef76646ccde3f16d06e3ec0337e3736cad277857b5ea1697e0522c265833590e8d7e111ea6a246705a0c65011032f49927e0a9fc902c5748759eacb6ba2a9e91bb2272b23d2315a358ad859caf600019b4dcfd69968974dfcece990ddc3840b8e41a307eaadc4b8d545a2df9aaac81d3b3bf1b79307dec0974923a65bb964fdc5269596cddf3a879af12650dc4dbac7304d7212772828a354b0a0e39ea9bcce2f309a56f62129f54c542f31e238bdf68523295c82543557e4383356c5bbeee8923a7e9619ba45cfa9e358b37b3c48e916fec04cde48989fb13539b49feee5bffe8cdf846147f56119dbadbc6c31a05a58032785799175f37fe0cbad90be7cbf29c4c76a5f15899cbb2d066cd18731b2b00b4237707d0ca43a81d6eee232f7814aa4e47f5710f24056b87a5a1091766ed865dae155b8b6aa545c9629837ee1cb0037173e4c91c86887271e79c3041540651da8f37223046c6b6da2fbb2f49032b2310e03a480b390385900de8145054b056d0a2b7cf1b911ddd6551cbf36cf9833b2e0fd28bc55d1715c97e4c9fdf1397ded4685665371e1cdc37fb6176f47cd3fcfaded01ac55d8c740c7bf94448be99a0fddd020cb2a121f304abb9bf29f0b89e1caac0b409923cc1c3ba586a25a4a0f72e618a3fa360de3dab6c55d0b2a568e44b83494618cedcaad28a2afbd9ca04bd29add523ce316d5acc3f2879a4fbd78b763a8879e312c322e6c37d9df20a0d6d5c4a5af3d2334825fbb267c5c360329b8c1174553edd86cd480bbdccc5a17b72c90cd9005d8abf5be6c2e5f41ef3ded02dd98a77e251c6be28d1724bd965eea63cd58866d687d0cac9eef9e89c55382854d5467c97d0e2f70825c1e8ae44a70e9ed38dc858b1da01926db14188b7341a7c9df75631fdd0d71e9a58ef98eb5b5e910da3ae000cfc98cda220325e9fd0a5da5410be842f6ab02d6a45aef49ae4cf45b9941c19d3f70bf5ce769e202405ef39c1456e918bee90993416fa72cd87e070b117140490206233bea061024fd9ec86874e1277219eefbbde31ef6461c5d5d19fc8818f918fae076bb1b184f66c4da1fd47cb41dc24ca3eed9d0441889cb2950a13b8440ea591e0dbf8c69746e18d2af53fc3ab7881cd9bf98ff179dc9e63804e7cffbf5b99fecd7dc8a196338ebc3703b5285b74d7b373858fe82aa613cf54876ae7d30b8a6b9c42d2f909fb72f68872cd86a164c74704a1e1a22a7513bdcce00600bd38058232e17867fd5b76ba3e64d324e43f2a7dc144fc35c1461fb1e868be64799cc7e364f2bf42a4bc3f76f74f3657e6ed6a6393ac8390d3c3e6a8ea070fdf668a8f61266e98b16f659df1c295a408d0f2674aeb26d31d39ca2f783b492bc6b9bb316b4d5d18b053f262d79f1c4e45ca7fc78c7404f6ed33a8a1f354f7a01b2dd54bb11edd0c2cb4882c17ac9ea09e0f4a32525fb0360019707b8624dc53381da89376fb2ed8fadbe914207545cb7da8a5c1c3c21dc72781e1004fb14a8b159507d25d586dfd75ce77769d47c1afb6a5d8305a6ee1e79ab1e84f41b59efa91bbc7c54a4120b0cee9d62911140e00fd08a8e1a21da43ad89dc768530e7e9fdd637bed9ac92f0941909622e9dc890c8bf729c4d77c4533f8f8567680a545a16e064ca9c4105d91552c840e5daebee01cea32730de651064aafff6ebccaa47bb0c1dc78b382931edcfc809c1eb04e1d317bfeb197ba7d43bfce6c4f26138ed12bcdc910bcb4594195a7c19df5b62fd9d454967f2276b6c82e9e8e713e82b4cdf1ede300f6ca4ecba20cab2a1057d8482385b6aac72e2a5ff315414661fc52b698e6b1172270f25c83b75412e0045bef2ba0284a28c6d880b94c7239f99d89e6e7a90bc8e03b989c62671b546a21d14d31cbf30ba2d41867388d5250f8b998622bba3af4ba825731963c70d93538a0887ba08c191dbe19b10e19895fdf965bbe0b919463e63b4f916e815e7512e0520d8eb2dd90ffb77d3e2f70c031a660ab93972f48e033374456ccb78cdc6b41f9cd8230658104a2f0d62c7c3262e4cf0ee8afcdee6e43875146d5872da896e022e33c12b20cc8ef87f4fb4d97a908adceb6c3efb5d52e4fd6058dba3e7a1520326388d3807e903ff9448c2ad673e8230de6eaf87797cc899dfe93b170ba5f7346e18db876d82da8b92a2eacdeb62e14f0a02f99b18b2f6856a84ed386076ceeeb1679712c75a0ce2b3b39a514057a784130d9905208010693f9a91ec0c93797fcf7b05be2e8020ef7ce2a50d7ae6529fe1f4bad9575ebd8eeea45a12c7505dfb2f35535417e2c411cf67d123332453d0494c51f422da960dfd770893f708c6b6079bd21756b80664f030db5fc0ecbb1c32c6d7b51e91de95d1d9a86245098d146f8e889c7b17edfab693b1fcadf45dffd1135f2c1c6adf23bbd3288115b7122eae2c7ff2d980e925f2af9a58cc0c9f3513ea3a6b2c30e8af0d1c9e1c1dec7d14c795ef33c4ac8cec3456b4b5811de38f9e1db6e4c11a950d83b031d42b4e1a2919373eea19a34743dc5ddbae2ea1085b81b92558d6cf1bb7d14e44b4d3996dcf358d1a6e7f1efb12eda96eda6ea15c0b1964f7aa32cc27f08b635dae12ee05a73c9596fbe5ad682318369d410924b6e74cfd334c1e0c23d7ce504094daaa497d474c230313e82ce808126e02c0da58c39141c004d398d391a23a65f3893edeb54bce2e7fd266b678b977c2a31bb939e308a370af4b6415696ad972fbc6abfa8177ba621cc84e86d4f3405d933898bc30902c8f17645dc226e61cf59ee94b5f164d0a584f49046755deeb812b6fe12e9952394a0f8fc55cbb76ad5694285a23a9a3e4537d50f9dd7b2e4e54e68d6b4645e9cd87c48a7ce852c1322557b32042c976c0ad60000c7b07557974bdd71b82cec41b3bbf2227d6ec127c4dcfffea7554efb7d67a9cfa951c64d8de5062c9fac7dc56342844e8d2df598568199b7a3d9bc2373ce4560a6b2b7862f2dbd674b49978cf883ef3e89a34c93c63f41e08a617c430bde2a87fbdf5d0211125a6c748cad56f3928397edc7f7a5ff9ff7fbb1f437b888a4a797d8efc38d500ac53992b6faf171cb5a85e4064d24265ad2ba4688560d8ae07ad91d31f6ebff22027689a00d2a51dbb615bf04c97a782bff64f91b73cf5652afb9c706b080e18eb2d06cb6a553236c42df2283059b33058058cdf85df23e9868fff118830d7017ba6c874b53986218d70992371eff04f997ff497449a3553ed569183e68b2ab8588cec9cd404520a821308be784bd3dc19c12bf5ff4cadc596b06a661601231ee3397653c38d41cd1ad5fd7560a9ee90a0df1819cc24aea5a3fd29e1bad8be98f8a9c6f2a2def2867ebeaa898af3c7ea811525d88846f13da071f4ef12a81c0608f9c3a9373c263e92ce1e3041ade5ee6d324e81df0296c847399ebf848cf3d4e8dff5a01e4e98fe93936ffcdf6406af4519f7af640653c2f3d5d0ad155062758ab68e556095606e3f9975c1529083be4efd210e45b529aa415859fed133b92eb63b0b61b18808b64378a73ce628bf39b5c154bd08be6383af3383309437fee9e586d8b1e5696be57300da9e96434df6fedbd8e1ee74551b9180d139f43657c0172ebedd9f7da864851db883a95848a68875a5f784c1628ee923ccf6c09c4fd625a3bfbd7dac44c359e4c93026bed0301dca7675e45cb7ca44a9ec5e70ea71bab2628fd49005c7521f7af8faa94f24e64c689cfbdb0b940f6d9a99e8b9db5fdbe51c89a7587e76d0a60dc602ad3c1c8e95340330507800bd11f5714484fbb55dd33e6647c933c1b64db69ba689ae833dd12c34317ca7e32ddf44ad38d0d3eac95763190f105ca3f46a722776de39c6e1b17dd86c919da894d79193613498414a45d449a450065ae20caa51e820018a7e4a36311c4cb25f886e69ee3daf937b39aa4bd2fd0413f46d97291cd5cdfa619ab502c3168ae2aa25fd8c405ec56599f9579c03f6760d1f88fe6204a9784df08c7ff13d92f93d6bf3a74c4b280e28ed4d1c8d97ddac7d07b11125d35349773a0db54ef09be96b816a2fb3163a4c9f7fd1a150cf08911f882daff801154eefb53501acc8acdbd6383fa0a3f80e4e5b57658c52ce5c7a14f7b0c5109e6b69b9d2ca43525fa9f33c37461bc67389ce539de3098633973c85f0edf1aa2d59c1ae71fcbde0915f020eb75e9d181df933009c64052e2f45e6a9d08cb6616b65d814b799d2b047580cd1d97e9064628c4aab1226095db570bd51298b59c68b4ed04f442ced662d37864eac73b37f86817e04197a2d351297590716bd97e7f6d598796bc22a08cd3be444e42779aae8d7611fc6a8cf10d08459199aea8504e083451d399a1c8fd9356fd8c35738f31840180dc4ffb2ab760d0af852f7ff3b2045446a8d3e6505460b5f1bfa826beccdb6598c17912318dadb9bd50b2a350d6b353500c20bea624dc73180bca9006e346e7240bc70235dbe0e5e3f9bdb221bf64c4c804b0d7ce286624ef99021f0ee86c7b01a3fb5188fe91ac3093f22d6b701cf8d290df1a4b8ad59c4cd8fb1da206c45823ce0365da0b3c7884f96d61e81b144235450397a46b746ecd6588bc18721463ca8c643bad751f65c2d5e533ac1387ccf2e35cf0c0edeb1befcddeb97610121e6b4b1ce9488157b2a8aa965fff4dcb06820cf466b8454bf19572f7cfd14a09b5b5348045a171e26246e7d3db4112dd90e7b38473237d38cfe8b8774b3043f06bb5035d8f65a8031ffb02f5b26c4c8265370c1bde9b34e4ee3c7e0af338785711c896520f0ef29ca4c6c684a86e6b4c25c8e3c02fdf5f1bf786acac7eee58dc6bc09c1af10a4a783d78780e2cf9aa04e1de2a552da5c2347980d05533481e601fd07d25acf1fa10a111575794518181dc2cc3083bd12d9568b00b74c74a3782bd3a657ac67384983026753ad3c324a92bc5e4809e8ac5412ea580340dbb9874d054093e57fc76d8aece95178d14ee7af16a64afbfd6705aa510c0cc075314cbdb5b89c5a4b9ef14b19e6eb8e4ae95077e513f2605c70eba20744d2369ecf7cf8c53a45596e2d64dcfe7cad6e2e48be38113a70959e410a7221cab489634cf166da93ab67f437dc09b4c195f689a9d06557599a365da3de71559eacd03ef6e23698829d7c97461b23840de78f957c3e00d2dbcef51be96b24c687d0eb17f353eb76777873c37ccc9b3bf69bae83ae6fae15e61b78fac4e268cb82a165d2669819a809b8f07bd0c796c985c84f271d3bf1e5d9cfc08357aa78fbe294a871b1235de3ce3f645aebd0f5c7a654af8d4446f922800d244dbe491d382767d0896034f454ca823d3d6c886d2b41684d211231803e801d2baa5f106ca41fd2b0e99237306f200f7a144f2694bdb7d94d94a9fa73af01ab5db636912fe1e475bbafdca19dfe9848685a66240ec7444ad3e72291f006b40a996ecb06f3e8f9ec937b237ae7e49cc621f406f1a44273441f78cb92484e516aa023e1d61cb9ebcbc5b8c5107501205ff41055c06b458aef2d90d306e019f584d5f4f4ac676b1c1dc52169a63563e2c0e0d21cc27d4eb0b4880c205bdf5a4f7457bea4175b82e4a91b35671068464700385db88f5e30da4c44cd0df9ef29ef1f68da42214e0125e509bce1c8797f404db4151891ba0d391e14f9e6e11d77447316ab1ba65b49d461e24c4079d6030eefb819ed490bde73fa0c1e41ac40f940d9ba6fa8371b145fb4edaf79f663af0bfe19df0a00921c88ed2c0ace91f26d2e5475158d8372a88246a7f3b090b2aec83ae2971ad61dd75fb2b7a3f1d2b0af62c094f7d482b13f51763139f4891bc2babd93412b70f74c4dc0cf7f59dc7ee4ed15cac20385f729fcb1c33013cde3b6f0e429050df697799b78e3da8efe0d12d4517f3ae759a61a2950569d1bc37bff4c184b99eebdde1fc3bf005f724cd16bb35e1f2549636f1e8030399da32f580a6b6c02fad54de22938c1abbbcbe0e1e57a3b72fc5abb0c1e5eaeb723c7afb5cbe0e1e57a3b72fc5abb0c1e3cfcf6d395fb57b73e3ce7e1f2787d763a1e3e799d76ff0f5fa3fbef93d769f7fff035baff3e799d76ff0f5fa3fbef93d769f7fff035baff3e799d76ff0f5fa3fbef93d769f7fff035baff3e799d76ff0f5fa3fbef93d769f7fff035baffdeec3a5dead37207379f6d1fb45d920d32b6ac6b7bac6dace629b5a3c6385b3faddeac6f3d9c3b783dfcee7bf5ebf3d7e5ed8bcd07b38f5787df7e57ff78feb07cbbbaf974f6f8c5f08befd5afcf5f97b72f361fcc3e5e1d7efb5dfde3f9c3f2edeae6d3d9e317c32fbe57bf3e7f5d39555bd2222a13d2c153aca3635315a3e1a5d64141bec1b468aabb744561b928810f87eefa089c9e9321df561689a8523949c3ef0fc1dd67b2318a600e473c130db915be5f09788415727687720dc29a5ee1246c1dc4e9e51785a2dab47465a17eb6445ce36ae48541c81c30f6351b264584eeac29cc7fa12532ee837f365605b46025ad908f485116b9e3b9f23a907b17fbf443741e3f4fd3cf1c9351bae7a0b16a46e6e6d3f333f3b65940134e39581bc7fb0333ad2530e73f900d501f96dcc030ab88167fe98844c5469f245582c7f8621e5a089a9336d01c8a8b0252dfe35ce500d59dcbf10d4a831cf52a07e457c0de04871977f93860126b702116878c2c110e5d99769d826f8984132a10a40908331ab036b2093e9d356d48b253d2f8a265f116da688cec0b82c56e3bc15c9501730fbaa02864d0142f1d371a94a940fbacc47ea84f9d63c825915ef7c480fff30d2f9dcac9f27451387b125c1d403e4c0aaa2fea6d1e6d238eb5bea6f161991c8805a8dcce4286cab514d34a12e2c6442beb9dc93075febf131e41090b413dfbfe11ebf2937ddcc59fbd4dc52e9d74f02bc89693e035c640c76721ed783f2fc28618eadcc63144037a1f46cee0bb97a8a244945689c4359d2e343d61031a08109e260c61585ced40d6c47112389fcc0ac77f8528230ae79e61fff68759a2c1da45e107cf3ed3560d1b4ceedc93dbd2a38e5dcdd7c4c241a80f31c7133fb0c3eddea3653a8340dec133976fe8e657fbecb715c92082fefd4a4c3ef7979de283d5d1e6872128a5b1ba1fd9f44aa0a84de6dd3edeaf7ba536405db039ff641ee400b3353c3ec42c625cb3d0871166de0f64ff97d79647b16e31cad5d5801d9abe39239cd4ed5f0075966acd46093769128fe907243b37cb827770564deacb1c069f9ee5e4b074cf8d6301b8d083dcb0722a6bc7b39cdbebf5139b78a7a22aad4e06d159ff9dec1ef4044761c221e6762b0d9540d7228891cc72505e69494e37620a976f1204ec7aa2057a8605edfe97e279802e66d37659ce4c58d465fc586a09bb238604685f558a19b3f01a6f5fee2ddfae7654e87432ae90674449031a7c7bf32ae2c58a8d9c415f27d5225ee9ae93deea13cbe8620d31028fe522d21bc31b8412495d27a78fce718a1b1fb45f703e317574922c18117920e5b4e5f5edafb7d7252a974f1c6c8674e9e007df4ed207bad3f54ec682e231a2fe5b0e8e87f6f05277a469449c03c8412400540615d8947a939a8f2c58d40e3297a738fab34cbb8f0bfa7113f90746ec7087eb410dbc95abd8fac8c584c13821b4644696ff2e4cdefb60057f1b823a30971430d4a876a564691f801ab7b39659118d4a0a860d8b0677d85b122c27d55c7d8dbd67ff4ce716b5337a9e83f72ce7e4fc898af6dfb06c9887b68e97478219888623f356b0fffaeb37b04e6b257d3236e376fb3b7b63730085dead418aeac45160e9d11ec78488540fb6559cd011f4711d490abfea3dbac502f76d734554903c07cb87422886b08fb1a1c5cae8fe35d5634052ebf192a43e4d6b8c09aee8a6fa0d1de5d20e623a95bb069332af9c42c0995e3c5fb9c7c268badf2f0646641bffba154eecdb80e97d50757f94abab5c9583bce45b2b72603b9d7404fdd84efa2d16447f51df7b3621bfa23639beb0ff0d9cfe375288cd1a8d6d8082b0fd26fd8b9133feb3bf397f95b8ec97fad76f20c66fcb82d7771912edbf664dcdf6a5945e4606b4bec2b39a8ad79718049ac18421a8fdc2f5b664bc4dcc851eb4b1e90b6ab4867e2770351bc5d5702519b5e8bac03be0a7dbc435702578dfd7bf373c1439120e195debb7956293f2bdcec94f6f02a583827c3d66e8b3a04b49d98e38a0b323bed4191259abcd3b69f0c1f6bd920fce017024a66ebb1cde0c6baef1bffce8bea3297a2673c648cd22a7c411affcc084dde59fdf3e5fd7f98e56c719ee05745e0efb353aa3ed6dafdeddd7dc90e17dfd2db76070c005d5fba37a9d86c04b815eea56b7c5dbcfbf5db2f1f1e73ee24c7c2edf2042f31ec4fbc167260a0ce286f4af0825764eefb9ac16849ba3dd3676103c5b070ec0c2ab7f575aeec39f76e302fe6205e4402095f5930b3dc79ca5c7bb6131d43fd63436c966609f7f6ef87f677e60ccd85f05aace9f8424b80fc4c4f5834aeefbc4cae44c41930194c8a937a2e84d84ca35df7b21214ebdc9fb5cdeb001ffeccee17fead339f7b841d1740545c3d52fc56a0ac30057f39e614c87b3edc11fe8252231fd201009440127c0d690146a08f3b0421bbd3062e37eec57648e7e00f6e281fb0effc9d9dfe4239b278c49b8d1af97bd42571cc88a66f5d695adc1a25957b918d70ae6d482624f01ad5a2074859a68d0a1f0be5976a1515d11a05248eee5c0e521051dfb02055715e6911764cb82dca9dc865cbf53c2fde7270354817df4c69684f9d5bbba7019b4f05c884292e608a797257af689384765d25cdbb3917f29af07aea0c31a2a9d14bc4940a76b7c1ab14c099d806024730e57a851dae04a516ca00b30115158160a1dccf7e4f2e452768b0ed33d07619a28447d440a10b8a86c3c4c28db3b9fd946e8a3b38ba383008c7e8dfb8027fb89a0be50938807f883b7b9a70a43511e64dc328eb286fbefb0e6d740c49f2c2bff052beb6f179eeda5ffdec875f80e45e3a4272d8783dc47f9715aaa3389a15b7c954f7df4a829ba5e88d5075514ec43f031fdb5943425b8781412a49669782f9e5a1e0d281cb69dc34dbd75430782408358200d12b05d15a1830c44703470169d7a313b8c6646d06483e6df4ca36a9b378d8ad550b154216838c4266121888a85e6cd883e985a30f61a4a36e3bc0e7fb30117b79a1bdcbfcb856e1e746290b9d442edb5069d0a10fa3bb82db686675a8d3190657fcb3ec4dfe797ddaf2c02f8c22bf4bb69002e4278957d2fc18c32128dcddbd65dc2c614dbae9eed2654ac7838dce74a2d29d471ee94f0fc3acca484d368c05a4007c009a18c5ba51f761e38899fd6f9eaf4bf270e7f3ecd7576e9919b8beeb6f0c29113729d1d75ccc953e70d3933e49c5c67471d73f2d47943ce0c3927d7d951c79c3c75de903343cec97576d431274f9d37e4cc9073729dbf1ae772b86f6b4e3cb95f36fdbacd77dcc50dd7bc72f2ff53937f9ff63ab3f0c1c645765fbae4d109bdce8c7864e229f387cd39744eaf33231e9978cafc61730e9dd3ebcc8847269e327fd89c43e7f43a7b71cce270ded74df974bf6edaf196e7388b9fd6f9eaf4bf270e7f3ecd7576e9919b8beeb6f0c29113729d1d75ccc953e70d3933e49c5c67471d73f2d47943ce0c3927d7f9ab712e87fbb6e6c493fb65d3afdb7cc75ddc70cd2b27ff3f35f9f769af330b1f6c5c64f7a54b1e9dd0ebcc8847269e327fd89c43e7f43a7b71cce270ded74df974bf6edaf196e7388b9fd6f9eaf4bf270e7f3ecd7576e9919b8beeb6f0c29113729dbf1ae772b86f6b4e3cb95f36fdbacd77dcc50dd7bc72f2ff53937f9ff63afbb960e233fb27fdb9717c4f6f8d1b8cb9ccd41fbae6971b1defcd131ebc339b7f77b90e7abce798454ed67f6df2efd35e67163ed8b8c8ee4b973c3aa1d799118f4c3c65feb03987cee97566c423134f993f6ccea1737a9d19f1c8c453e60f9b73e89c5e67463c32f194f9c3e61c3aa7d799118f4c3c65feb03987cee975f6e298c5e1bcaf9bf2e97e9d8912ce38e241e8d0abd502503d4d18f4260b51cbcc050ad11b43a2095009ba7b74915566b5ecbff9e8cf2f532761c80f1264bce40043c46e4849eb2e56e08e14cb761df9c95fb81236c38e64d82cf0b184701e7b651076ada5fec4cdebccee6c4688b41e02d548e6aa72c3f1714d9b9f37bc88bf5910edbffea81c1285c8dc314ef7c17ecae4ff377e25fd28a63022f59c11c48e8b853b2867c48f9e9c278baec695a8751f812af8588ee1f2231e18945583ae6478476b76115a1fe5b7ed69be8f729fcfdf4e8a3eca331b61ee05cc3fb78b306131fbc8fc69149c475a60fa15dcd3a508119141638f523e0a993e8aea3927d0240e155819c9bfb44be4cf47354d1e9cb56f7204148f778a5d66e33dbe4e2832b9262f138f7e5fc4d72413d8389ed0eb0bb78a78b90e5f4eb4644b5ca2e4f12312058081d170766cb7b0b79d53e444301b04054573da3a12d9f4904bbeb7d0ee63e454ac4f2034520be4e0e3366846c037b3e4f5adec722ab6cf22d6f5545b00e22e334d5ef45cd4d1d5cb0e6e6155e95ecc7026bb16d1b8b644c2a18b39ef0ce8315de8cdf116e8b33369215c46db9ba6d1143a4e08ff2a63225a03128d5d16e8c6fc3c0421fe24b492d70794cc59d7081d1387f4a57dfb1b8f663649f8c2a888e40c256453cff4cdf90eb19cad4c54d8be3c5573e6ec7186f460fb0653f3c200f11f06a9dc68d96ac88addc2712294ac908147bb001b33fa7f27dd9c31026e75b2ff172fefd705428124c917c48f28e12e2bb6f0ea211f0f72e06a4435b47bd35dd4e5b4086234143d3304e8f81047aea891a3b3456dfaf9b4174c7b996b6744d948bc687700c2f8ac622398ebd2ea5b8ccc9de573167548a86a5c9792d86299e92a262760ecf89f726e48e990189f1dbcf2e91ebf32c7edfd8b138b1421475e1fb0936ce61b9bd53a1aa2e99fcce1f1e105de8fd960044695425c0e93ed42148f7553a445f848feb1159cb3c1449c7cc0a57e3ec245eedca4eb89f05a8ed8e0a3d9a62161f6560b361d4f54f70fb5c7994884ba51fbd72f179e15b1316f7bf2283ef83c830f82fa562524a4e59245893f8fed840848f7e2b21f1c0cfeb5e2684a8878608c44514b64f4eea6d41e951206826e02db25faf43d664ecd7c86969768f11cc2a4422f583c26b2113eb094240c8e64cfba1dc026a333d5f7c6243a9204c63a67ee1b735e68c14226479bd55c122d1ecdb4a5dfc3092d282639b808370d6481efc0e1312de7a4b11e8016dde5397953f075b4701de6853bb4f7acc3e288f5dc261841e647428ac3efeec3fb224e25a641511d068f5a31ba586290654274dc8b5d0d98b96f5f732ee8e809f72031def2aa5b25d150d440e5c4b48e7e9f3327e2ec8317cd90793fab119b1394b1b560661cf4f3189e5f6359166a5aae9ebdc14fe3cd8492f43dad665e82d9f990a909afb9f93f76edf4da1ebe58590049a73e788fec6f79a87a3ccf0714c197aa62d4bb291e61f9d0abc2b25dd6dc141599cd70d32e8c060e8f67e07cc8447d2e62509e9609d07c886b7d6e18c3600c6c1163d90f7f66fe05635140c722e42742a2f62e63bf4cb30fd8b3d0ecc8c37def2b466d9eff25ddd80ce9e91ca09a88f19ddca7ba12f275437fa185ea964d45bd8840f2818c6a22cf01d804d010c2f2d18ce075ec9c2fa84d11478702faf5cf031d05e3088a60330f28085edff472142104ef13d24f1bc0262c753a00e91fd715210ee1ba549ac6e77705154e2314812fe9caa7b6f21401a50a0ae1c5cb07a82ca5c33a4d0e3d0af90bd09b6c4c46be4efaf1c1a5551158d1e391bda1b75dc4744ad2bf549c22e41251ecff7e5ceedf5e1118912e7d8bb97367c777071319175f5407854a45292847c1415d2d483278b4efa270304688255ba212c75cda5925e6585444a3b0da950c7d4abc154e12630f9556c0f6446407c80102c713a5c40b409a32c83f25fb8252c5d097d1b4f253df50cced040e7fd8a5538a1ca47e9cbb00118a0f3ea8bf7d51394b7695a888566ed8f1540df1627443b0dca8ac6340e4772408a9c76be056daface6f4d2e2b1159343b2455d4269142a0045eb9a4f0eb6320250057f1f47ce9d7bf807e034053c644a196caad44199f34fe283e4ade2f13d08f3fe5057dfda3cfd7bea7cb34a4b37609066ba9abd43a09a8c6be6efcfa8e7c61a16eefea5c9a55cec8a7911840caea6b181f06d0f58df0f5b22cf088eb77ff6ad5e3793caaebfbbf1798a673af0a9d23e92cd6b33d4373722f73a7cc762d0f859beb8320c13208ef6395fd54888be22920b9cd9e75fa68a9df5157a0efa5c43753e6fa38937ebd28c12f518b1acb6a5a8816af2de8f083d95ee8acfc723735f427b6a84e52a2ae2ae787be453afa35f3d0d35c9dd6977af63099f019a6685d411e6de9d3eed7cb47cd0801efd61a364a877e89f21f196ebed9b957170773cfbd4d66a86cbb14d676e7233906b84f2125fe2c392f65b4622fa2020206f2084222014c80288cee143e5fb5cfa5e3eea4b56a1f27a39dc5baf99f3c7872694087f5f2208c1665887a2f8a4dc80c36d775ec09a561699397628d47ad138fb33f805bc52e91390a10875f2cddba972ed619d9aa6d52230a845a5468949c8499f0e3d2bb70f9716267b1206d137567f0c267507c588eee1bca9260dd7765c1079859f3e60fbe296fee746eb38ae6ce434533c06bc9487ec184d67027e27ee6ab33c9aa8ca977b896dd6954ffc69543b7f3f497cc9d39756309decd5ceaffef9a59cb4f2917b9bb9c1745796fc041e4d0702252a1c12bbfa10278da3544b25794c0b60e251e746d104a06a62aeaae792d0e726d63c58a38f35db21bb77be1f956a468f012eee719af22288e9a2358dff2941fefab7057da0e5a9a1bc59a32be877f5672d0f435ec40f7a625dee7d0531467835d14fd73aa4e8e8ae410aff1e582aa081e6df893ce52bcb4e27320afc2e002b56364d63637767029b46e089412530a52b2ef0226d3bd0b72f44e724f3a6d27b8a701d8de49a00e16c39c11c205710abb79441feeba78e8710613435416b6222f8e57bba385ca6ea162924a104358c0a01e6cf80ec8210aaa1fc9cb36128ef8317ab0456362b44e02c61b07fbda930edb39bab60822e8fe19ac3d0694fcc07f39ffdd8aff3bec37542c23ac7d59ecd028c5f0629732d19948d03e9579ff0d386172a594aac1edecc7c26394227806e6cc5618c737ea8f74d4fb6304cf131353dbfc5b724820ec4c81cf32202ef6ff6072ec14d4367dd8ebd28524695b0ff781cb3006025ffd1432227abc28be5866ad931f2d27f2f889393193eec4af737c00b966bd3ef18d6c4054cb995c532b0a0abdf2f19ca4e0e7755e25d4b3aa715ed9f5547b66bd75ae1f945ad868af09e1b86c9f75af61e85849c08dd022fab98b96c5b9dcbe73726edc682537629c99792001f82feb983f83029cc8199a9d447171ee0cf0cf8a58f6f99b91305fc20bb4060c49f351352f75f09e210327932dffc4bececa59efcfa0936ae6425d94a3685d5c89bd045af026c7fa77ff21a0a528a4ea98a839421a7294f999c1da03c4bac95748b899829620d2cb4aaaa27ff87f33a69e47fa2584ca88189586bace85feee583e871073c2117241d5cc7138b01e364aebf8a49565df36b6e33eb999f2d2d1d0bb3e92d513c6a564eac9d3a01ccd65640b0ee319d6d6c557e83cf5f13dd724e441bdd1570339b0499fe004dbdbbbe110cb5c79ffe714d34183d021fc452edf291a0d2a623d84289df8c5da53a103ff27825dbc27676184b727372a82082946bc3bfcdc13db18616fb8f5ce77a335438a628b474f371cf1f915b1f5d49b4d63129602d5ce6e69c3e5a97068e7d810e79be1db63994aff027fd7599531e35eeee02a6f551a1c0fa0c5f3112ddd6b35f1c78c94bc780c89f07d75239001859c6f36a91677c5f57305eea0b493b172d01d88b07f943e08d7e6861a7b432af43362d3fac11b7902fa2b1b0212927277b7ff096109c918e33f1bfb38e8a458e73835711d353a3bc3467f688f54873f0aa978b7b133b7ca555037e540c61915bb69c13f6837c50a1f7f342cd11bbb142f708e41040bf20e182335ea5005a5c8243982ef535ab2e9552d17b99d459a3005d11c13a5b593eb4e92cc0618d4e8cce52bee855789aa784f15b704214c2067b542678786040d12aec10b9da5eb372878f02ac5e86d087bf4fc3b732b91214dc1382b9a8f97e51f7341845a36cd361f464a2d2a1263e06e9d8795a4e5e90b9388b8cf02c97339ab04b26a232d18b511f7830d138fd126ad55390611d16cc46f52f748f56bf77bcfef141bd5fc59f8feb7fc00f5d291951bc7fe968195940bc15d6fe840bf2ff84c1e358f5b4361408c975e2445f26fd3e77ae2bc7ec2bfb26b4bb07fd919bdd02bd5c144b138a029356d33ea6ef40519dee8a24538ba68398b224effd64027ec3c082b0efd2e063346d0d3d5b24763183d42bf8b52258bf71e4e8f2eb0813677a4c7557379ab709a574a328d29482f2cb59534e13677918a02300b838b0c63cfedbf0988eebbe15a3ae1cf67bc01a530286124bbfe5a5d7d785184d0c40432d5dec53e594ec00aa17f558b1d57802a43f485f446ee38153fbad12565a7f1441394f52eb1b9c8d34a24691e28020448ea0aafd4954996df34bc2710cb24d525816f2b14521be6f8a3b1ea8bb2f9b4553539253d922aced0b9d8a9503d1ee9499c723b086206d2649bd059fb420ad8498e0750353a3f1834f656ad7a79c28ef6e6a3da638d8eb72a609757e8b5ba61f859340d00f89f388bde948639e1b0fecbe500d2f46bfea081d65de387934b4b669c5c6cd764afd7ec2b0f8217e1ece4a40f9fc09d5dacd522d4e145d6cca43756e29db063d631ee1c3a0e2802285d72b706efe375c98e5260ba37f999eb4cb6b00584cb082ed17344aac9dce67a4cbb3737f8929b084fc09666da2a33e41836fab3d065c676257c877736dcf4358e885c2017e9e30e2713e803985b7305b0191a2d008078b6e6041036d24ebef185410c3981e9666cb791897b18a82137246d411004ed7dc60c70083e82ba43bb8d0c6e1c981e022529b4e779964cc4698275056e257afcd79501f99bf5528f1028e92f9f17bbdbae848389c89cf09b37316af6feced1236cdf400391e25c037d7ba1d1e00c8096c3e64475b33be30767ae395dbbc246771530fa0828099bacf6ec99205e46849f826cee5dae31134b13e28a0bb5e57f606f583da8abd554de5f8729f7104ace5c594cac01d67332b76ba969462a37efd73885f8168adac59a9755a365afaa2a0d9f9e3401dec7574a73e5ab4ccd85094ebb2910ea0be87c68cdbc26c99f4bf7927a0ca96f6f5bd6f9417745c1740eea1e972cb9783f4d07f8de452064318deffe3022044f68686142ceb4791e1426e22d6ae0e548e6b5456ea3798eaa323fe824791e680d256d7edc00db993e43e5fbfc5cde04d4f87b3c7439161ef2675a2b4a54ba04e64477ed4a36ad2bb4e2b6f96c0f5d6dffa6109b61577b562ac51972987061d1d678882d8a93d58f61a9089d131edc5637e13263baa50e8ea0f76e4d0e9183542e707490b05e0b1e6ebd32822eb35dd84a2adb950c4f3dd4fa3bed4b28c8b98e17d48e4ad6626764f54c020467b98a92defde8d8065a4c42dd1e452992a637da1853f6a80aacbf27bce8b4106e873f3e1d477a3bb4bf4e3520dce1f703ad947c8f3b82415eb57247cb592f2298c4dcb184c07d0636bddcff5e44fb50454e6b7270d194698fc9710722ae858892fde49a43a338c051166c39fe0109ecabd4efce03af07f51f378050044fa2572774082b16d0fcd625809ffacdaa6ad67a71a814f20c5a501d6e3a06c828d96afe2f548725d3b3555121a10a29adcd9ad0416afe3da80e7be62ae3cdb606666d65790ec2f3cb84eab03459191ffe9b60ddc6afb46e736c35ff1f5487110c972b2629588439c89646ac4410736c9a1f3ba80e6bfe2d17fbff79fcfdfffdff757f4a6b2bc7d6f3ff5cde2b950722f7e1e669ef69f8fa0cbcfd67501d16c893967ae09c706fff13b0f13f2f8acb0f57cd77dbea68129b20c54e18906b562af8f3a93d654bc1ecb3c1b965909ebc1188dbaf630940d0141b68be78c81bd29518c8d026488dd1a658f4bd8440f7314c03a099be30665289809f30ac412420c741fea701d01130b501671fa33b31a67e6c0d805ec1b9a802fadb0b99a23166e47b9860df4708770d80bec401b61eab147fc0e39e170ff8da00af0fc0db9a25d663547bbdb0056b189e45228a0070847fdd16f85af1c770b3dfb85a70c1a07ceb8260c4effa10927801a57a150c9797a1b33d2b82c356db1284abfde106403d74f0bd42a23c4722fc627c8b960d1c01d1c37ba0a2b87f787649e281d9bf80872ef5e101c55e84e6a34168d0ff84e4337b9ba2ae5cad1ce879c87d5771d8c2bb8fc3c0d11287466f60aa8df5cb9f58e5bec50bd9fdf83700ba5f991c48122632f93f3eb0b0e9b508e2ff333800baf4c6d3580fd67d1411afe2d2e78e543800da23939b5e8660876082e528be5852ffe916eb00f68103fd27835089a76b5aca3a3f3c7e0fe6815c29fee10fff83bb522bedf3dfe3ddf4600a9c3ca345502919fe63b3f3bf1e51306041a4450831ff69e77f1114ffa391f44c045eb885b0103e10a8b44d0730333333333333333333d1b52c22be9318b54576b332a52439036ecca008860e0a040766405abda59452262923fa71a028422c36b3ff686d07f213920f620fdbecdbde4b06978a60e5d762d39f7347b82e42ce344dd3e883bcc91c63ed6d3c7bfa6b7e4f8b8b90f8ca1d94adb1c7a69c8fa1ff7b4bce6d8eeaf7b5b6bb83ab2dd418bb394b8e6413ea74de162f6c4c192785a3ef54b25db5c97efd1ce2e2bf5415a7fc87ba8e334dd31464da2897a2103a644c676bdcccad5f4147b4e2225f0c14c4ef393b6e73527eaf13bc54d59ec6f7bbcf9e69e2d0ca3485c00492b1d7e614ecf71c9bacb2d478f99c731cd99b6fa18b378eb80f955ff97019d3f42b1f0e89a0043d9f4d97b255b2e5ac9160c5166583ac9d62313a86c319c83405492342a820846a5b9d377634baa9e88c9b7ad7d82b77067b0625648fbe3d95549c697a618f9ae1a6afd6dca5730a3a8329429cb5634fc516a76be6648f20bd9ceb470817fe9c1ba7c9e3f906a38c28176bf55694adc135ff8b114c19bd35c56e27f3eca6b203c8e3d7f83d576d50a3ee22c33db7603bd6deaa52be1517f93b36a0a27ebc8eacfdbfc998e2f924679a366f8cd6b5e25acb41e5a68392334d2862ec8af19fe4e93d9982ed036134778c13368eacdde5e44cd3e73d9b23ef1f1c2280529f52ce2da770235bce34e9f0e11d67bbb7b339ae74cf99260f87569e5b5a8fe6d4578c33eaba17a172a6c93b9b1b2f1f1cd3f4f2610d414367bc3a7d3a84ef45ce34ddb87103baa8847ee44345c734f9775aa629f4a3ce0654369fce348546201efee918f9b86cb200437e5bafc9e960d46f4a39d3b4ce653362995dec904c32b7bab2b536f94dce34899c0ee6dcbd1fdf5c6d9b1507344ddf1f323e3ca6699a442da098434dc55e69b337a38a2ece09dae0c0c14ff1631bb599ab291d0492495ff998638ba94ec8c507deff49a5946ccd5aebe4dc58cc4513024dcd0b7b5a449d1d9e16968eca34b1b87c7edc788e7bbda5d68a9229b369fac29739c76de35cff76ca51515eaada2a99af9d9139d314624e7be1c58b0a1f3fa7de7b94ba38d3141a8936375e838666e4c2b20195698aaa3d73bb8a716c4d36ce346d4229514dc5a283ab6493906173a6e9479d90110cc0d94fa932b5fb9c999b9c699aa611cb9c260d3cd6ccdff2b6f7b0ed33ce34fd8726184e95bd64f9de4738b5299669126d46221067f30985a0f5dc65a8f8ff59f4f59c6932020aada4ac928f19f355ae4f218b9c69f20f6f403e4dd37403078a112ee3075bbabd20ab634f6363cd99a6954f87c8347d08d45bacc562bb6c0ae1aa66eb9c69da4cd32a0b080400a5fa7917dcd8be5efbc799a669625dbc7655c78da3fedb1739375296c3189b92ed32b6538e334da1ff70b19a83f341e81a64cb9e73a649e4ffa2cde857a6e94619d3b46101f987431c5611a1b080409b95d06603000f6c442ea1cd06021dd0628bcd28c4230e68b130c0810d0636e0bf716d7540031cc8c0033000810b74c00210d050a0020fa0c004b490c005221001085ce0011270004b0324c000cd022ea080751348c0119091110510e0dad264b174b359f9743822e6680e700103c0397299400174f39c8d0408a01b0d0c60b1807af3a10d8bbc7fa3445c5b2dfda20d68d4f212ea2700a60220e2001623100800ce1fd2e204c564f42b1c285151074896b2b1191df92d327a84592a80d10dc8b359f974568efc03a402ec2000730804e659f8431280392822030668a24e0b0f005383010840bac3222881436a042316a1884420e210862804210621884000e20f7ee8031ff6a0873c60f080b9831dae201dc0014490b268c4281303014877480425701c40c290009130afe071893984469fef425a8519626461894dac7c462cf2b888369e4c0e49920090c1218542600cd17c780b2d5a3864e4e3324da19024a904521695c08424b5300b1488808611af748af0293220d874404270e8701f242c205901c94805242d2b242420f9228b49508224f3805748990f603624aa30f29f1210b8e0630214941b5f68b638e21d2d46f3c598ca0891319a2f8646a3d17c4cc002cd11ef6c7ec57fe3082f74a1c409a02f6eccf7947cbe50d16c36ee01d978820e48c630d1c348e49a2fbed07448c443696e90d801123890de411f48089124cd348540a1d0d30006aae1e20b0d27e557fc438f4082f41f1a491208f1a10307101c3a342a9a23fef1111a7dccf0785c78708ef7481e817eb807d4e357d0097284c71081214918258c42a01650e8638697c16997e73102fd00030412d2c221215e4628870be88724654020fa74c2081284a5d3f88f1992249dc2dfe371f92149991b1ff8803a181fe87b3c372429f3857b3a68a84c323c1e1ceee9a02149192f2429337d5ca624652249e765d4f174242903797c403fdc872465dee843fd01e918358e4f67bef34092326e9b04d7295bec85432109f2e4d034561a2c8d4da3a5e1d27869c0341c910822a250ca4615117546cc11b9bc1722cd0f0d17cff246343c3d2f1a224918226ca185689d71883d48923a43cf60e9238bf9ba23ef1fb55e3e8cc6f1f261b8a7c3d1f1e2f990f132ea7838e4e201320a31901707e5f8ee80ce108d11e23112f18b31c2c102fabcb3803e403ecc11f221d018eee3c54139469d8f199284f101181eeece87d32fc423eaacbc181eee74c75d44e03e7ebc7c70485246310b8b5cc24801c6076cbd3c1149caa824655417a310b7485226850b94670105112252e93f63699169525a649a54911b5b4c93480427700af7c6e8452295fe33e05217e87202b5d6b99c60318d17d0458dc55cd840882d44a11406f2a1ef2149190f4852068b1c417e90e143888e1f66886093068e31300818040354e42249990e48920480cc16394c72b8b048ff4e68b4811c3620800f0820dd400b52508244440452188020842894f20ed211f48005378cfca7040b18f552948bfe221e0fb388a43102c183467cf10824184192c890243340e00742fc20c210821084ce0d492242006988d403012e65d1071d48d27ba4ec7cf8d3d178b1341ad07cdea3345f5840f3794f910e87465e78b8f30169248b4ba835ac1181469fcec63fdf9234032d388019c2a7730608086814d2803a46449a3732fa107f3a1a4e736b44a10f9232c408e83364886a3ca0110de182df3d1a9166f422ce4aa7070824c4dd434610e47006491a7d10ff3282e808e21fda81872e6081051601f01fa9a1798e102cb0c0220044a42cf0a0b0c02200295860814500b61071e11fe642d4052bd205a89392226a9077d1c5246a198d385a9c40a4860e2cb0c0220077688424a5f07f403e3c1ed631eab074c448497979222917b880060534d2843a9a11879ec5e5f31f23a28e66f4228d1766889c73bcc88c8f8f1da01f1f33e6f0054902e9d04c6590514619608c8e3c17a2d191df70c88537a0810c4812260a6784c1851c3a925403264862f4e9b07c422e32648439a3d18b443248c20fbc60e968446ca4333b0e62f1a2131ab580469a111f792392e8c5f309b1e68b80a48f77d08f1c3bfcc3d324595c423ad478031644a1945167f422972e3890851bf820795a583a9b97a2b8e82ff2c2a110673070010ccb29303ee081052449c264345dac225d7448c4d24736291eeeb0803e2f1e504b8a08346ae9743c2d2cfc4686780b8b8b5cd1808268525a3a23d1902143345e6ce1018d179a0e683ca0f99f9b8e169a2f342d9dd166f41e2fb668e98cb4680ff7e60b8d66f49e2ebad0a08c442ea121438668525a3a285bb474465a68445cbc7842ece9b07c5c425c8c3ea0d01c3244c39a910fcdca87349f0fa8a53362cdffdc0c19324413ea802ed0d219853a452ea0f9914b0bcb100f933164d4f1b8b0e0d0fcf3f8d14b8e142e42dfa2e10eb7fcfc20a3cf07e11c9cc3d3611e2c9d86730eff7c9094eeb0f0e7c559241a75d8c80804929a7fe182415eb046a4491135d69a037d344640a1158d68c8900fbba8006464a401f967829ed385fbf880422b2b1c4423650e2065029009002a4051862363e848830b2063e84803c88e1b0f0afd0adc539185154a21491219da20a5ac7c3a9e8e4893f22e2b00f5f8803a22174f7f7cb0fcc8c74b68f401e303438668c6a00549d24c9fce86a58f643106325034d334b1f41131a088c10362c8420c5868a6d06fbad04cfea12e3ea0f93b3822eee12c6584f10ed211240c4052c2c00109086c4182a47c461d179064d6a4bc8c427f01d844a20b34182488c67f14024d8a08e4ff7179f780b4d0b4fc1361d18c21468ac83f9368031a4d0a6748cb0b688eb6d042f3220ff3d0a40c19023af2a036a2999d215ba0683144f4a11ffdcf0e8ba8f3614e3f4b7368f445dec38546d49d161c2a13c45a68343c8666c80d212a43fcf3a34fa7f371d1bc78469dee785a3429283d3429438604d1a46c311271a08559b4d0883429a2e78898d3c263a0b478788b4f47a449d9e1a3859f333d0bffe86f09e2032444e4ff3fc00009d1f101fd0085be041fd08f9225940ca10a31e0889803fa91c5153a71854168a62db4e0e903eaf4910a48528602929499802461a2100a8141840c307440031458418940a15f81c7f93d1ad048333b1c111a5950e105926228582f2c21660152050f504113549884240d195244336408199a942d3ad0010da73b9a1fa0e1135050822444a194517b3c9d4924c42bdcb2691189462ea0176d38a38e11333cfc414240462050197fe003260212a6039d0fb568342f92b306294041ea84462e65ad14c5857409e304335840211efe2b9f8e08e4d1316af96e1c657cbe850c1d46fe470b4ba887ff0e211e02a5a4845c402f9a4f4723bb23629912eaa08c441314449312fad9e1a1491169525ea4c608488c4f670ce71cdfd9e11e17101a1c726149ca4840adc58c7019eee3c83b7346a31785f83d1edef87731e2a9f90f283388d14ac9165d1803c92252563ea09011cde8f346342922e922e2f48743394a1620913ca2d332fd452e3662b085162fa31696df883a16d082a40641986009234992966002499224a94708b2a8441a12171f30c0e0d12249520f4992f490c510a024492a902cf0a10f8784fce8a145a6890ea01f2fa12f026a5167c74bc7d3f2cf6374e47fbc8374bc8839403ca30fe29d1d3b44a21696508f9f1c44f4f261380e118bb19819688c409e201c11f71089ded3d20909010971325a583a8dcf8b21f278708c442c86448127488ac8e3f17858ba885240a15f81a853a4e3a17749145904c10d449824cd888ffc6708a090349366c45b6861c365082f5cb4b07804321090a4cc032429e30069c3054b1fe1900b17e984de3722f6787823fd2008076011b1911650e80121079254b2061048423fea60bc90320d90a40c032429b30049ca284092320990b2f8811659fc400219044852260b1f20c2077c982429730049ca18608824a54200a02f5434de611989588c10485f7cb109b9b40d006ca10511d046d449d942a469c1161b0d8a488b0db44083b279919b4d4aa61340fc3dc42deaecc0c1e30425f874ccc0e8c0010a8108f403041ad00a26623620ed4879941d9a50e88b8074a4f1f97456de488a118fa73332234424c42ca11fb1919494eef81761679047828c682448236223ac01893c8c8212e234bfa8c3a0110b68b266f4a2e774589ed3d261d1f8eb30f23f86a8a1f10f8b3a220f818c7c7c68523ca20e48f3c1a1f98026f4686852be131a7160d4197d91130c117544a10732440d97d919d279f9228d66d2801a64e43f27006307193aa669e3f1bc11354ee0f1745044cc056845f4453a2b383429fe1d8f7bbe337d68449f4e4bcb4b0e7f202b9d1c2090101ef18e33708c403f46a01f38403ffc63060c1e61810f8c3e5ce43d5f8606f4d98c7e65880f2cf012eac81c340c002049126bd41031e625f44534a9380526143b32e102247c11179c404a1185527e0c9b16d4a0052b92660a7d271462c9823fb0600b92e65b402dd27c3a413644f88d10e14743f49e960dc85d449bcda8f9f35246470a3e9dc79876442f2249ca1440923051682f999044a194cf26f4a3ce8605149a5df41761e92319026406f0a28c003cdc2311886533e28d246502200a8146192c2409e38323ccf2453a2b92845100c89c4892b40ad1ff94240915a9183d91ee8c24296322da48a7f04ea62443d200960e7b741c69c131fa203d3e88c8c5d3127209f2f916fd8e10bf47478f1ff900431591a48c0d49ca64242983c1bc429230ae90244c2b2409c30a49c2ac429230aa90244c2a2409830a49c29c429230a690244c292409430a49c28c429230a290244c282409030a49c27c4292309e90244c272409c30949c26c4292309a90244c262409830949c25c42923096c0504292309390248c242409130949c2404292308f90248c232449229130a335a421923446cad4c111b124a9b4c42e7088b280d14892b402298b5106faf322d16fea2049183acc4192307280822461e220e170f1ff98d15f64e32f4918384812e60d928471832461da2049183648598840908568316b90248c1a3c04ea2f63f4f922a0f9915cf0f261ac847084214912902c4266485d5880a5d3d0313a0206875c7070c805c707d401cd8f8f344812060d6790248c1924095306324812660c92249160c4100649c280e10b2f127d403fa4960c904092244c8b0330b2f3052814931882262449c260410a5900928035e0e1499284f98010d42003083968021b2449c2ec601315d82254a2b2054992326280f1814aec80033b388524493616f0034078e2084860832024492a514211508121c4e40a10489284a1442982d002561c61124f92241b4b18729204ce1e52f0084992308490ab0e26e8810a1a2149d2e8d36111bd7c1893b0b1089047a4198d2149120824892365f121852894c2c21f1a8936df098dbc80450dba307261f1972c9d461c3e2068c387249386243016404892c4e911b3383f0708cb195888200d3982bf8e699a261e847ec3d2473c1ccf0e4992349ad08f5ad8796307d10d95507f3a7478f1a488341f100a875c706842201e1a518748082402715a1372019140932212b98c38c42d2dac717150a845d3810eb091cfa149117d60f42b1aefecd0a460c13b647879221ed00c19428479c807344434fa159166d4f244be4847c40191488386e6e58968fc5d3a9c979a954f4723facea83b2ca00fa8dfe31212a249d1a48826081402e20307e8c7cb87e1a2970f03f4236cb5e6eb5a2fce54021b32980d4addc6a27267d357fc5742cfe2366210e53e93ae8f5b5c7121679a3cfc23d18688c7454e938e954f478dcc2bbcc5e86f325cdf8af971a6a90891cde4f76cc2b831f9c5403903250c9491cb18d3147a222166995f46460b1957b0b7dcdc28a1bf8dafa9564cf5bcda968cce49f7749461c5be76ce706364e7eb2418d3c4a13723b30ac518b38fcef7df3d7d4e46154c61b7d309e7e2e6ef3a930ad7ed29285745a7cfc5880ad98bfd938fbd4f7eeda770f131336d716364065f0832a6d828192e566b39e6e0b7954c299ad9724fc9663ba59061789021c5f2f6742e93ad0cba84a358ffb6e4af8dfd714de74cd3a72359402d0ae912aac71a976d543b39d3a4829fa61b2a0003c834b5b0740932a1605e0ae54a39d95bf505856a0e1976f763b199dd275aef8492a9d5cd4b4a4846c613ef543b833b97b2d95c7982643ac17ced2a8c4d41e5dc624e8613534dc7a684bb1a83daea4566136daddb576dcd5de67671a649138fdd622761ebab3e679990fd224b562f9b6bfba208131d7d791594fe2eb1de42d90cb9b9269f259e37d5b24db8f6b936d691a9c453cd3fca57dfa632c794805399add92adfa5936f126fc9a7dc52177d55ed4b62277b4d796bdcbd60af4834f673d5c9a6b3c9b90d098dbe7131d6267c6a953fc2c1c80baeb66f6d32381df1da29e856a754ffa0638d9891f775aae95cfecfb8328cf8b75e5d646c4227d5ab2db450519945ac43a6735993ef3feafbc828a229f416a1fb54af9a652258d753b0c56773c6b79c334d1944b8576d7fb7ee41d961640ef1dcbfa9628bad31d3769c698273e49231848373c6c7ed66f7744e72a6a9451d964c21d43da7ac31e5a07cf823438836593ad714638b3decc699a6cc201c4795eaad29bb497ee54c93c7d3212288f5cf53ffad264581e827a562eb549bf1c18d8058f1dffca77e1f5cd71f41e60f8bb767c70725ef2a636664fcc0bee62e654edfebdd0624d38707e7335fea49574fd706c9f08129a67ccaa5ec72f2c73d3054eadbd753b09bb346828c1eda53befad83b2f239387199d6ccf7193ddba0f34faf8c0839c6aa97bcf9e3a5deedda1df6caf955b8fcde2a633a790337cf0e0c1226223d3b43192b14353a5abd49b6acfeb23679a7a64eaa0d8d2b851aee7d643394da00e1d5cb58c4d328cfb8a397d911b8ec8a5659a3e909983846c9bb7626b9794fd3c193944b5d4c36efbbe696c15b588547064e2a0eda9436ea7cf605b0b0e51b5d76c4ae8bd98397b83b6a5cc2dbbf6fe1c25679a36d324068e1c64881182699aa64d8b2847c60df3ddad8def796bc3bec84dc1d974c157f1d90055e3f53b572ac88ca520b306e6746d3f73ee31fe283d1935283fe7a672ead89593fdc9a441364fd9dabdc3f5e90d0d71b2b8de163ffb9bceced0e4ea7dcf0dc225db5c66d89d8c1f64b78fad255ba60ccbd983aba5469e26cc0d3264608aa1ec658ab9ee7aea09c29219834657d8f01942b9de412219316ceb4ae8fef55cea1293844c18a047874c49765e07e59a819941060cca396bfdcbb154deef2fc87c41c128a7631ea5934dcde685d6e2f3f6fed9d87476ee02fc55f5ee3dd674990b5cf0211711c8d32c60c13415e9f88e0c17dcad72cc4d9b5bf9545b707172436f962e2c2fa305fee6a0cfa5dc834d9b39d3d4d2098d449e691a7d3a66ac74724cd394c9828c31c2d570ea6bcb7172a669f322372f9e161e192c4ce5d95c9f41385f639fb9c242e676d5f2c1d7baa98e69521141c60adada339e5123f3e8acb40892a942638d295ba92a9bf33e2ab4d76afa5c6bfd6a75e5d4253385e9da4b3657b9d71e593d20903423238575514209dffbb93eae8ac27b257f367b1ed9c95ece3485402d9b1666d9918102744bb5634b41f95886fe25344d20c83ca1ad5faa695cf1ad4b176ff0b8814325051927a839979c6c2383cea09a9926a86d6cfe54ee39c38415d7737dd03987bcf439d374e386192aa0d1c787cb2c616af4f976675cf2edc3d0077961344046844cd3480931ca953e9b2d54edd63837fe03f2e898a6ff803c8d03854726096ace071fb6c6fc296c67a084f1c920817bcdb8dbfcfabd5f1e237384b92fcaa66dc15e4ae5733ed374639a80a88c3a9e9620a1110a3246602c2e5d773b21bb096311bc3175bbf3b16f4d3a11fa4d6d2e2a0887c0d647d8a25255906583426887d1b9744d496d72ba4c10a48cef295e9dcf96f70f8d1742d440230304b7ba774db5eb5bf3e57ef062bb5abe5c6457afe691ef117a23203158c607dfca1a2eeb75a92e670d323d784aa94727b9b106d9539c0c0f149bec1d93d0ed9472361e6476a033ae63ff73bdd5ca9bd1c15af2e17c7eada9e8ab8590c981da55532e535e12f69a39c8e0e0b57d4dc928675cc67309b981529f6c4a5def31d522741192b18193be5c541d55d95a3c7f646a30e77b5297b9a55c1b7340326bc4f8da7dfa54cbf52ae67891a1817c90bfe374de5853a7462e2d1f1fd0458d0da8ecc8cca0192ba94abab753c5165c1acac860c1d7a6d2185b93ea57ad7351995f860a3231786bbef52b65b3b5aea9ea2b1884cde5b738b9dd9bec8a197baaa8512905d72aa615cf167ccbde6ca7bb8c15f169fbe950a52f39a17c016615f139271f53b61acf8f0cb3038c2af4f1749faf65bf069539d3344d2a214c2a5c32b7f2557bd0bdf5e228c4405a8041c56cae3b9739a971fedc53a8662b2e6f76ad59ec5e01c6142c3a082384cfa22f9b3b31a550713d1655ceefa9d83f527c934b293bb953f952ea02cc28a09bbf645cb7fca1bb63648011857ba878ce96ac8ca99b4530a1f8371d745246e6a2946e8162fd52b94e1f2a11cc273eb6b5cec1a6aabf97e44c53101c184fb0569d93a53a5326d74a01a613d39bffd96aee3dd8260b309c60aeb8bd8d2fdfc2e7c9f996cd660bcc269447b7f1274fe8cfee5c3cd36134d156998c4bd58b70fe47ce6232b1eea13ee7be31757f8fe41590181a1183c46801fd98a6159047056230d1e4aab5ac3dd417a5b6202215c65ce2a9d7cf4596ec0fbdd7118c25d6c5d8ee5647651bf545984aec3687eef0c9b98de9be88394024861291b596f06dbb6dceea4d023afcb64ce59a4f158b2f18494ce554bf07ddbff85e2e071309b73dfde76230f684b1b5000389c5b6d79fdd596b57b506e6115329a7de14aaf6c79547308e502fb2f772a69a2ff59a08d41182694474b25f7184fe4a6a638c980a365bee2274668b35246016e1d43baaf5122e966c3126061845b815a7ceb77c1bcee90d343f3e5c8049849cd0f9b536598b0cc67e0106113b95f466ac5f7c76b5a21706e282398474e9cc5e7c52b1f8dc4f8031842f5f0c5f8becef7645ce34c1a58588bcda3be7abf97cee3ac7c41062a9ca089d3ff63ec29783780959537117bfb52b21e7460f4d7f403ad61d011911a2223182808c5d290599373777b640b4fffb6ac5e07cafb913085143a5070610de6bf2832bc2c68bb10be2ff3123f4181e60fee0eea563cebadcb383ed07c96a6a53b7b43d4a6e7d68ddd69b5cc9945531e5033f854da926db2bd9f2a7e9461a2a3c307b98fd4a755c71d57b548f334da051ebc0e8417b6dabe8d89b7c9f310f10b2f78cc1c874f6938ac1c3f66e5b6aae7de9eb15679a30775071973b84cab97fdf97910e8c1d5ed45dd9de7c6eaa5ef20c943054a6e905983ab4c976b9940ff5497fcc05183ac8d72c772ae6ddadeddef881d243e5079839b8f7b56eb2aae9ff9adb50012307a7ab5232e4d9d8499f44c0c441a908a164efbdb67bd0e1d0ddfceff563bf2daa2201f306f6656ef9d583eda26437bcc852d552155f33d81cba04c1b4c1a9076343d7fa654b573644371f9393b5c7fffbdc0698357047f9fe9582d131a85c0d306a70d3e5fe8add51c1c68b334d129306b70a1fefd3e63edf151a969ad1a7ec65bdcaccd7c09c01eebe5451c2a92037a744c0986141a9525ffb55ec734ace873d40de413fa6e91df49926e98a29036b12eaca85cf9139b746cd2d2c2a443064f8c97c2a75e8d3f5ff9a5f860d306368b0b1d286aabdff7ede4325c70ee9606068801183da573a99ed6ccbaa18260cdf98255c50f17412c2a592020c18a4fad756e373f00beb177331bafc5dc178416d6c712a7653f19b2c481d305d70169b2ac99eb9397583e10263d5e65acacb16774fce346d36a0954d0b305b808d959acbe63356cc31c068e1a3cef6506d9c6fbea859684b417e12aed9cac55f5870cc1bcbf506db6bd622679a4480b9c272c7e484ed4975733629046305a95c59dce71be7420739376ef498a61e284154727c2724649aa669f323563182a942932be5365ee7a462ba383e1a4305a98ddb6cae79bd640e39d3c40333858fccda62c84ccd28372ec04801aa734feed6dce3e51904e50c9430545a788c1666819828bcbfabb2926ebd9d734d5363a0b0fce36aadcde8ec619498273c3fd5cca3473697da202b1827b8c872675425b5797376a3314d788c277496ecf57237a76babc7c605c304f89c5563e91ee4555371a6699a6e4c534f9b0d09304b78ebad7ff59e296d7241ce34b180423c26c728417bf6b75f12be6a6bb9f93b5e468b49c25bc79ceb6f53397310ba0f1a6090e01d99732e63ab37d58db101e608ead2a34e9fb1a34bde2d72a0e0d0e20c8c11d874f6da83defed8b25804d9f4a346e622c3b6ad39d3e403430439d92d66cb247c6cb2861902535d2c999563f6b82d679a2668c3113167314268efa6f2866b779d5cc7f9d0e63d928518e132a6c90887a609049820bcbb26618c2e5dc2c91208eb60efe465d3b5e796e34c1311cc0fdab17d51adb7cec65019c1f8a0b5a83aaad7b61a37d31e28c9609cfa5cfbb52c99078dc55ebadadb8afe9e77e0a683eaacd75bce34b100a383567da81a7b73cba91647981c3c8b91bd6e4ab1e5dc9c221cb8c8265cf75fde58aade80c5770bae9bb3a9647736908b1b7aabed76cf45981ab48d725929a6782574c1acb1e25b6cb2f7dedae27c9c690a6168e02a55aef86cfaeb6d93334d1dcc0c963f7c26216387ccbd71a6092383a8949c7017aa53a762e44c1326066f4926d94b65915be5628141d4b6d3317f3354fa1e679a4620d00bde74c951a9bbef9e7039d3345db0e4dc6552d745f82c23679a565ac0ce2da6227c51ea5a095758c0ff9af5825397a964ce99a6d18b7c05ad3acae6ebfc4ba55c9c6972fed0346dfe253aa7cf4dc6d12d56aa8ef8bf83abdd599bbfd4883b28e7636e4d7d296d428acc079ddb63a80c3add859981cbc3e6ffea563f3ac7e03a172123e99a2d86ccebe6ba8b96c9e9dc4ca9b7520739d364e43fd3c4198d5688553f3be3f68f1b95e280e66703031540d6bfcfbe59bf8538382306324d2adff222649a36de125bc357ab1def8bbb0ab4763dd6acf69bbdb3e24c1368f44111c2020af1e86f09324d2a98353eae4cb2c531427fef0b59d45af6b359b6e8d12dbde1e9a5743da9668cd3157322cd70b5ff6e5b50974d96cde73d2f2da09ea61b2710a2c68f143874bfa47ab59c3a756b2452d14e53afb6315cd8542e2b679ad6b96c5e14e216e54036a7b66fba5d2911c393cfd874fada74fca6e2280983d36dea1fbf17a56ade9c699a2050080c52f2fb756cb9e16cad75c91760742bb693ed0b32c8208753e205d6dd188491df53e7a69c69925d80bed6d9a917997aa99ad3b251e977900e952fe1822ad8eb6fdbc1ee9e8ea3b2a3640bfd56846c2ab5520b1e971dfcb622546e5295646142a6dd4be16bd99325679a620916da7252d58a6faa548b59c91576754eb76693eacc5fb482ab5a51676371b63a094baac0e0eaa6deae709fc346857f533216a37351f5db9b42b3f56b5f3297aa94db971229bcf65cf63aa7ce5e553b2551603ca1e2c52e572bf587c22a3ba57a5b3b7f9ef209aa968253aaf64cfa337502e4863e6774767199b909daf0395bf81d55d359c28426e774cab1d7569c31ea12665b6d71b6e9ed5cc7364b94c091b12755bd5b5f9204d85653a89435e9d6948d8496cc3fe3d477baf3d5119aae5fd1d7bad5563137829b102aef1957d792ea2545f05d2f2e66f97139f63a4d2c2821c26c0e9f3617235b5db5272819425c3a9b4b173b7ef4f93128110284b3b9a90dfdf562f2a9511284d5fe9579f17365e57da40408eef1dd7c8d52b1e8ebfd404ed773bfffb5c4078d3d5b4ebfb5b894fa3541490f9ce96a08a1ceb9145b52b506253c608e11366cc6aa72edf6a06407b297d57a4d45b71aabdaa8354a74a0bdefa9e3e5cfb8b5ca41eb36edd5ac39a8bac51994e000cae5ffe2e2d8dcfab54a6ec00ab2a9dea33e57d64e655362835709b5c585dc16c667ce34b18042f3c64b4808a8a406529f47a8db1edbe85867f323f6a2648d37754a277bbee6e0cf1da384068c672f2727c73757f18fa06406bb3cc22961f764cf5ee3dcb8211a639a36a2d7885883e23efc754cd346a4826944890cd8772e66acade37eb79218f0cbf9abf069943de17ac5aae5b62da696ea94ab24ae60e6eb913557cd542d0b01492b24fb84ff72999a90358241c20ae78c5b3a971ddf3b631c1c24ab50eb79fbb7e23274eee934dde090a8627bf541085d192a3597334d1f2049857c7123549341c64c2ed7021254acc7dc73b0ed8c0eb643305084a8a480e4148ac5f79846b5967dfd4d21a56ad538f2bf09dfa70b49299c7a8fa96c31365765ab8584140cc6552c1d746ec2c8d4938ce23dc2e6607ceeb9b7f9a270d2294f0657b2a8a2374928247bb84a9b9473bd07e7480b24a058169b531f7737368d2d05924fe8ead37e978f395d6e4f3407d5b5c7fcc1b7afb613ae9593cd29c773edaba69c7871dbe2f5582e7f47b28967e9deb1173b07fd39ce34958044134ba5bad9d0d9366b6ccd84da550b2ab7361999ff172498884f614a74e6ef7ebd2ea6ec5404249758a7ce616bebee1a5c8a334d2520b10454fb127eaffaa664932920a9048b0bb23725ab549129368384124e4ea7dcbb7f2212904ca21fea7a1e198b2492684e618a0f9248b4d7a2624eb9a9ee1f33ce34dd40830412d22d6b919bc6a96d9b23790453324eb558af922d5df720718473d8b1b9d2edf52ebd116eed7306db4765ccac9c1d248ce8166173bd3a32e8d0ed119245c0c5abb138275bf33143454826d9956d7cee96af4bc43396f0619c91796c879b97d068062488e0e6525d9f95c5a50e4320a408c921def9edc3077d898ef018282f1f064ae83922ee416208279b2929df53b2c912901402cafd55717732b52f2e219ca182ea562b8dfb22138264104d257bd8e6f4f5f64a100e9fea18a17ca5dcd4403c5eccfe53e113d9b430cba685c730010920e6c6c59cbd9552269d83423c6e40f2079db1dfb12b065da563ce0848fcb0af7197cbefc6cfca1cff746610923e7c4b18d57aab183fd3c699a64d0a091fe6d4773b5b64f74fd7e34cd3c623d9ff63460d48f6c09497ab6750caf91d9d1e1ab68f73d55c6dee3fd5819206491ede3567d9d88bcbe133c4035393fbd5eefa25dbbb3bcc19237cac7059c9365988c40eab6fdbcb8fcddabf5b1d565b1b7fe7628a994d25a14364fc1a5b2f5b8e3937e7d0208bacb12eb8deb0f7fd06247250bccadb297d2637a051103072a0fc40e9a1323a02460b48e2d02f9fe3b76f6f2c5749e0e09cb9d8cab97acb7f97c803246f80ac6f275352bd2e9dcf4505bf83c40d93b1d6095d5fbdb8647c098d5e4242be206903bfe6eb2d285774ab35c73272198343c20667ef0ac27d6fadaf1284640d333ef91e4e7d66389d24510354cb77eaae3a53d64fc3cab7a0b68dca2d8f12a2813b4ec8609badd71f739c1e2467f8756a418d8bf53f8c4ad50cb0ed379baceb53bea670405286e51894b0f9bbd8acdc9190e13da7e23fa5ad65f4df31b02a6d90716bec1c6f1303bbe9aa1d838f2de4666180bcb39dc5e7262b6b07c363e50d95e752ea58db17d455b6251d8b4a41a8ee05e51e7b3c1b3e6bdcda23e982544cddcb5fae1673ee48b8f06f9ff3632775495fb805d6a8dcae570dd5b24f2df0f67218d9742edbff5f48b200a1fbfc56ee92554b27c1c2ea621f15378cdeed52ad80e40a6f36c76daab35cacd4f3787c406285e94d294b385741f3e3e30a245578f97aa9eb1657397bb149a8d04e5bdd5bb157394b1f7dbec8149ef742a7a25a33f26a8740a110183f2091829c4fbec69335c6ccc1a92d2089026b8ca9a72e9f72ab3ede80040a73552efde96a4ac550a540f284e81c7cf3276c5f02891356fdd2a8ee3c9563ca9134c129d60921b766c293acfdef7466b7a252415084a8288164096eae72dfaab5758a29465141028912f629d51af4077fb5091f45a5082449d8c5d1cda87641f97a9a6e7cc840f14f270c1494239df921202aefe261161224b8b95e4a550ec29dab25c78c0f19d3b4427204d92673e785ffefdc9f406204feb6b139d36f0cdf8a2e2d45984c1d93f1ad4a771b1d679a6ebc47b2214888009b7b1b3f366f6ec93c84f677187f5975bf3819679ada0c1221f09c8c958b8b3987aa200a4882f09436bfa9bb66af2b55e47f9000012af8d145e5a24fe58d9c693a83e407b1411715aa656ddf24f4816af3dfbee8fc216c73a98c3e042b243d90af2793d149a87830795b946ded5acfb61567f3a1960dc8a7a904243b90af1aeb8f52aa65d6a6095304121d2c87ce357d537abcb3f9803ceee343c634898880409c2d144581a1854a0b490e9e4be6ce1e6cc73d75e2e007c90d9ce408e17a6ca17a0b2ace348d789a20890d5a9f47e9fe4ea16bd738d3f4122243e5060f15964e8385a4068d4d08e15ccbc5765235ffb84092355494efcd389db5d8cdef0345888a0f1108084b679a564868f0fe8ec9157f3ddcef0f836406be8a7da9e8d6320775ca60ba9fbffa992e7cf09f2406aedb186c6caa5c9f925f21db7dfb4577d90c2ee88affd5eb9f79b9352ad80a6518254be8f1b1c22dcb75e653e5fc17df2a5cbb37e7f2b56f3a564f15da9a9b3fdbe5a6e2b9ddeb7dca6db5fa72a6e9c60605c734d940c53fd894f5ab06d5d466a768a86e79ddebb6d47b69c3140a55dca9ec5c2d29df4bd16fb6d894c5f7a9a0ee3a52c4f9ad7e5d9715631f45e3e61ba154fb8bb9a888614314aabf6dec5d6e29f89e6d84a2bfed2ac9ddda25db16810d50f453d87341e86bc2e5f2138c4529a7736e6b35b59e2756ab8cac4ee95cac793b01d7832f592b5fb89aa90d4ecce7bbdcdc73b8d46b0f860e1b9b5873a73ee7d645f6ab4f1330323374cf29b84ecd4cb4f29b0e7bfe4af5a4c3045cb2573a3309e7dcb82ee1a4aba9d31583b1c5057d369fb7c4369f4ab52eb7f3fbac84b2c2287d6ad3b678314ab874ccfd2e6fe71e9f9c44bf5caf259c70df8beb92d0d776cea8dced572da69190713294dbfe4db6a27a482854c9eabaf4ad5d161fc112c605df2b05bbdd948e9091ad1597abef7bea6d2366fc5de6f8fde3e8ad31a23dc3b871fd5af65ec245e84ee7a6da7687f021ab2274be878eb9bb5dcdb14e846b3f99af92cc198cd31101e19acbb4bdf6bf4c290c6c1c62ca29277b1d77e1526e71d41052b55f0f597b0a7bc5e64c93bf8b4660a3103a55ef926d4ac5bdb809d18f2d1697f6736aa9ff20626c4c53966b56fe987ca553cec711624310ea7d3f5cdf51adbb77225dc34620de7bcdfe1d2bc72ad76a0d6c0082f9db666fb15a2515c23fc0e65eba26fb185dc7e607764d4d091d8ccab955aaf4b0d1877d5e4ec25feb4a971b1f5c39aaf53e236c179bdac33ae6e273cca7fbc872f5005d7caee6c3d994d5b0918797dc9c6c8d49b914468887d9ab3175d23108e77ceb0e72d9c36fd06793d36154e161c30ef259b355b0b9c76494b20e4f3294cfb7a9fa6f7474700ffebed8ae577ca7e21c14eb922f55e1b7a6665b4c0e103a5fe6ebdaf5bfff38688c6bb1862dae7baf291c9a3af658f3f56606d57a43b7d6ad29a50f36f8a689870d37bc36ff95b7d35f77cddbb0cf3d362cd54bf94e5673c9e9730dca18baa98abf7d7c72656043b9d9d8b75ed3d3a0e42e7eecfd636c0b2127880d34348e102a5dad4db9feccc619de5398f2da2e6518df2f5def35ce34dd28c38619de4b56da60e49e7342de81d1818d32acf4b7606c4d9f6d7ccf0619d846775fe5588bdbfc3d9bfe22ef386c8c815974a5d3cddfe8f69d11908ed0b4210619d5af6fd3495e4b361506e7d55832b5fab3ad5e68d80003eb726dd6a2bbd7b66be30b2fa532c5d163ecb664dbf0428b531f6bc59e6b4fbae58878f3f244d64617d4c3753bdd37dff6ae6d70c1b9ea5beddaa9c55e451b5b804eb6843a1932b93a590b12ae9bfb3c7b2ed9afa1c046165477b96a30ee54eacf9cd1879bcf28c30616225be717e1f6947255ab61e30a915d641032838fa9061d679aaca09473d56e7daa361a36aae09349b798d536c75839ce086c50e14d757236179ffc8febd99802c7f555f9f141edd6f9b121059d90bdc89e7aee35d59e334d9b1b37506e40174c136c44a1b58fcbb5760a1b7c704141a373fb4fb272afce1ac8c6137c49572bca6fb229b662c309923bb6bf155df5b79bc03aaa38bf59573b644a85096f4ddee8aa38b2c9f28996d0a62eb7fa96f27e3347021b4a70ec456dff166cf91246ce347d8c708b689a6e4cd3e8d94612266faba7982bfdd88f845dc533f6b37b330927679a5e42a3696a368ef0a67cc776be1675292639d3d462c308bead5ded940a97542cc5b051048610fa5a50e16bb97c114142a6dfea298c4f192b8e1095d107e1616308f2ed832baea5903d462804a6de3f29598c2fd95c425a6c04e139de656df09935291f107c726bde1aaf9eec358f875982f8b0f183d9dcd65caedf526c31e803f664b3f54af5e2dc680185764c93a805c4367a209fb352b2a57afd0c3b04367810277b1ed5ba075d6f836163076eaae9b1f58a51d963d6c1f72aa91efcb5ed5fe9c8658cd08f7ca8c0460ea436f8e453bf4bd731c9d978f81322e35b5e8488306ab08103d9eeea6b42d56c76eb1b48d9e642ed259f0db6b58ddd94c18e30be5703d6e294ebbdb35bed6f630ddea9a2dbd7362aa5d8b241831763537652fd955bebf3216e196263062c95fd0a6bb429578ceb396e6710421aa8bbb596726f1d006600db728f1f93fab05d330064e0a6f74a7eddbb5af406400c9863d9cddb1a43f8d1bde23538d5ba05dd4d6657f07aea1a3ab9dbed582bba25bfc6506e94ddebac68c5d8edeb722725bbb80aa8d66ba89c8baaa53aa98a159594aa637bd6bc5aa5425d8bdfd65ccb3143d7a8884bd9d79c52a9e626cb5330d5b0595b7ced56d74cf1f6bd776abee55e0567299e36665eea373eab6227a4804df152f6fc1c8bf1b551acd662eba51ae408574d513cc6dfb45f53cfe3921d8a7fb329b7df7d2d23645044a80cff5964acdb74fc0997ab5d6beb25d5a9e6279e9070b94af7abb313aa9d54ab717ceb4c2ac70925f97954b0d9644deeda848caa60542fee7bc3239c6882cdc851cae5742e55fc32b17ad75b7c3abfc929212696699b4a1d6b0e3ea9f4e412f1d9ea9573d7615b762796d065d9cfcda254cf155622c2f970b694cc99fd494af89c0c426e4af9bfa3da54e16412dbd0bf397ef1ed7a268957ae59d5b1e922c1df1a9ccc9a3f24a09cafe1742bba545f6dbd7c18282bf4faf261a028144e1ee19a5af3a95dae7a5fb5235c3b85fdbddcb369ab46a8b75585ecb962061923d85c8fcdf6f0e382d2d522fc355eb6ae2bcef5d43c51c4af7cd32d85ac4fadbf9344b8a750a5718288b8af57734cbbbd77b94334f6d699ee72ffb6551b8259640aa5bfe7f98ef50984a8b101119c1442a374f2d5fb235452d70921d46bba9441758ce1543e885510c2658c29782288d5765f7b709f922ab2c81f325084a81c3909c44ae8eb3f6373f3ad8e67a0ac3050340c95918f229c00c29952b778bdaeb673f11f5eb53d3a6427739cf861c5d56464cadfdf4967f1a40f6b7673d89a7b2b3adf75c207d7bb4fa5f6bafea618679a5a70b2079fbc1ac635b54906795b4ef400d72e6ef139d83a27d43c48d7ba5daf97f37937c78343f7e8efc9279fa97a9b933bb883cdd63bc89474aa393b30c66283ec5f8bfb58a51a277550733e29196ba67490704506dd3ad774adc3149ccc617e84d05b73ef26f477393cb73e7f0d36351536a6829338c8d56eaaf5a074fce4370a4ee0f053be7f72a977915f6b6f68eb58fe736ed55d33ba81c17d1fe33f84fafa601bfab94d772fae8eebde6c60add521d3b6183b57bf86d53aae7ecbe691b7e39fa80136275f944b9b3d76cdb59ca461a1bfa7df2ce57bbc7c714ed0e04ac6de085d83ecf8b19333c88e10bec80b7b4a19a7094eccf0715fbbc80b7d36fb9e9461a34ad9bb4b3d3e38219f9061617bba2cd5b579d478320656ce977c7eab9b826b9d88613e5552fd922caaf75afae783a8f84918d6f37e8f9fbeb97129f58213302ca66c196c76e6b91ae44cd30d964ec33f1f248d932f3cd5674aa963703d85ee85b854fbcbd8723d5515f538e94273d5c95c2e3bee8ecb9926314eb8c0f199b6f7d0a546c5cb99a655649a54364c38d98253c7988270fd3f8b629c68c17194b1c5c6de8a6c7f716edcd031068a0e14212a22169c64c1f1ae8acb9e54eba97abac609161aefab8e537d35738e85a6e9c6c9151c5c2ee58c132bf06f63dfd1a1946f14fa222fa191e8fb834325f4d3b431c24915e07bab41f8b62977d08e132af442c898bfe85c2dd75ed514e053a8a4001963578d57e3fe283d0acfcd979d5b4bc5dd0d85f6ec257cadf4df523e9ff05a3a15f79b35e6e48c2a3871027b0ab5096fb997a298a04c2dd76b25fb12a6da7576b7aa5fd932254857b94eb1e8daf9a772a6698c93243c6e9d1a37b276ac30aee00409dabbb0a9ce7f12ae96ca8393234c5da9afdd628a95af75628426612f29a5365b6db8f4a408ec57f3f51e5cfc9863f284084d5fbb72f77a32048fcd98aafaa60cb2b7d21321f46cc820bbe794aed7d64910f6293c01c28bb275e3a96dbd5cfa3f80303ef7facfb187cda53af1014357d65d6bf5c275c699a61e273d806e9df0e0b975b2839ef197ddafd5ad1b6c9c131dfc52b7af968bfbfabd6a39c941dbe993c5a80ac938c1018b1a7f27b77273c679e3e406ebd6890dd8b5afe822b7a9de47118f931a38b74ed6606d9dd06045a9a6f2b753a7afc738d3f4819319c8872ab219dbdae59a82273260dbdc72799b12ae9a4bc7490c542d9d709b8bce62e4a6afd067ddefde846d63f7a70c1357fc47f6f6e99b2fc6c6201a26ad908fa936d9f94b570d95234d5851009355b8e50eaae51c94b2bd9b2f305185da07b7e37aafcbd9480b4c52a15e7bb8266bffa8d0b53ad7771fd43823ef30398572bbc3f61864be1eaa8929a03f9f70a73f95733f60528a5db0559d52b7ec99531c11f708fdc887ca9b90e2db6a8d75bda9be96e328e25aad397d5faca5833112818070461d344e60228ad63bd56c6f2dc9946bea1df4c324144dcdb6bc975255a9b371a6699a6ebccc4ee84d40d19afb15ddb58732ba959f78deba4c65c77e261f7a82a96f4b05dfb59eca9b4927e4942e9bba52dfff6033e1c45c87aa99f967836fe526de6357d34df57eaec558c74413ec9f7674f5edb2ed9c8149265c2d36593675aa74b262e2e3d3673e57fec69f6f7289189b9a4cee7c763ea57a31b1046cb017eca77223ffc74ac038e1fbe68de15ab52425e47bba9edffcc74dba9dc45adf643737f7ab9ad9c544128da9f994be18f5634355c42412fcefbb75aaf5cdc9ff368184721bfbd73b089d1fec17983cc2b18db22d0961844ae9638189239cb98acd5d3167ff4c794c1a11254fffdfa61ae5dba54c18b10aaac5d8bf315ba5b10b268bd8c9d45227dd9b93a97445b48c51b2a50e7fa382cd2411afb239c96f2de7e454ca041112ce65ce4fa762ab2df8017538a38e9112981c62a7f2d99a7c5d8bc9a7268660c9ecd6f6375988b8fecd9dbe185bddc7533021c42aedf5ea3e2a7f6e55104c06b196adb576a9a5a03be904b1534e664c4990e803d27103baf008638c6992be790981589e45e5c524106e19329cf0d5d4e9f843a0cde8578e80727c7fc898a62320b9f9e6d0e6fb0302c304102b97d25ebd0f5bcaa85ce61fde52baf059b7e1f62f3fb47fe9ec3db37cf685441ad487e9915dea54b339a8bc558c98f0212a97ff3aae53ea142b8a4a0e4cf6d0625b50457f2adf3ef7c0440fed2c5b4fb9205ce85ecbc3ce397f63740ccee7b6f940d981091edacff8af4cd52e9513dec1d78351b263f57a49e5941de26aff820fb63eb8da12c3a40eebe3bbd92fd9c3b1811c1b5021c3840e8eb5e55517955cd6aac8309983c286ab62dc9f3f9bba81891cdc495eefa7f6ea5acc95c1240e11b6e5f5e9fc9a4ba5b0600207a62ed5934b5df9f26d2698bce1b5630599aa62be73b5891bd62da614ca29dd7ceb6fd2066d4aadfeb7c712ca1e266cf8e8714a65baae3ce5a481c91ac0305183d334345597628286a8ea523487c9199c0e1333c0dda529243029c35275292664505597623286a8d4a50c3111c3aaba14139884012a753e4cc0b0144ee6625c52fe2a9d265fd8367f75f9daa8e67bb5851628981c9878817dfe43a996fc7f7f5dd8b6b677a7ca0715648e0bd1edd3c8be0cb9db922930d9c206343f3e7478c0440b1c30c9426c4ca90916a4648fa18b0b3e35e563ce8f5c4cae20958a2efa732ddbfeb315369d161c40342655f8fe803e9b4e0b8eef0f68022654688d9553e776c8fc3a857632b2f642b72ed78b52a8804914d69371a7dbf60ce1bb9a40414dc9aa9eb725c7a79e600113273037e95e1737d7feba9ab04e6e8453be19df4a284d98d069c181061916305982f2f6f075b787bdfd20679a6efc88313330518274725735d89c539155e34cd366f4923049c2eb2bc74c41e55cdd3b24c009a3caf554b3d2f87f84f6b637b25fadeb49e8739a4c8cd06ae35b8f3175f1e36a264568fef1ddb6d52bfebf3621823bb63eb673ee19734d8e7e65f4214881c91058b257bfd8f74b7795f7487e828910d88bfb9a5bcf3775fe73a6298849107af995cdb57a1bced580b0b2c2423c60f283255dc3edd75c3f83a21ba32360ac98f880fde475ece1e3a6265b8ec7c39b0d67d4f2de263d1099f0a05b8bbbdca05cdaa6c90e1afc856dbd6c50f2be9be840417fe7cee56ae66e2a931cb04655513219e352ab452f98e0602aa9229bf0b5d46f4f99dce0c5ffc6dbcdace1fb37b181c6a406ae997acf27e57c0f252382c91adc6c327eb1753fe946604203f7a054e80a2ac954130181381eefe8c064066bbe365f49c5363f027dd844061130898173bdbae9c235a3b7e75e461d2d94bc422db7c84dfeecfdb84a54e28a660d19b3fe83102e47ce34d1a0a4156ab957c20ac7cefc962b952bc25f46f17858078aca34619850b28a8d044a54a1a25cddafcce692539553c62b49451625a870873ad5b7d80feabec599a6354a4e115dafdd06d56cd6375d85838412532ca0a414d0450515db3757f2b6c699a61b64e84011793c3850ce300305659a6450428ab89cf972d3cd655637507aa8106990472aa16414082811c55b55cddcbeb6a7e27425a1184009282464dee9d1bdc7e93a4a3e01db599f35f7604b8fadc4130928e944a70507875c702ca084134bb177d19fb16657d039dedf1244966c02aa35d7c25f8c1b5b3372b428d1847317a5f35e6c2e6e1b85f8c8414926de82dca693136383124cb4b6e07b6cb262961cfd86080b259750f3b7d594bf2f9bb9bf28b18474cf93e5daf60d279754e2e972c3b5aea29a0c42ce34857c534209f5ac92cde9b3a56364533209ef5ffbd62bd7a96c55680525925805dfa5c2c762d3a9be2412daeea6e3e5fa1a9bde5c4a20c10a4677ddf1fdbb28f711ac9a94aede7b6ddb3ba23de9abbd164ae94f3e909246f864a7512d674e3eb7e2fce8c32ba31246b466efc1189dbb19ca3646c9229cf57bdaed1c3274ec438a70ddf7c6d0cdd8dac6c79926f78078a0f85069e131543c258958ab2564efd6a3ba32558288e9babebe9f977946a88292434c39dfdac771c528999386604e179cceeffa458568b29b84cba43e6bad49510921d66f6bcee3c6f91add7eb3a7641053ad9f8c4df89433278819f5358f70dfca09670c046c521d43f7989b2fd99c69da885e9ec806342a0104e4764c57636cff309f74cf526d932e76bf182d28f1c3ceb5cdbb8f2753aab93ef04bd798db7ba5fa569c69fa4e48888a90123e3853eb6d2fb84af6d0deb57e83de3ed58baa440f4e3ad4758a6d7431b2e288a132721923c78e1c2579787e56bb3432d5bad6464bf0d0919b1dbfc52fbbd793257770a89a97f96468877fd2359c0fcea5cf6cc3525287b8ebf1bb74d7a754b71094d041d939ca6fddac9be9e34cd31cd63a8d91b1d854dbdd0295c801f28cbe34f6ee7be7f92989437c75183f7a83fa549b1f22257060079b6163a8deb264fe86381d2ad79a2a9f5141ef94b841d95bfe5642e7d84bd9446d78f7a6ae7b8c4e39a996334d2351c7f3a30ec7c866f42b6c702c2a9f3ca7dc9235b4d898ade5d66391f99a256a682f9d9aaee19aae99ae334ad2c03a95b6d854323440c952b96e9fec1a7f0ad140c919e46b775337baf6a662c799a61d9498419735dd5e5dc7ebed96a1cde64f46d7db913d9341fd7f734bc91854d97936a7ef3c99eaa87492e62381248861148320008060bd588302131100303824200f88a3f1b064561b3f140002566c5482522c950aa401511c895114c54010c3300cc2301445218294828e4a4a0056bbd7febacd9b1e852866222e09eed0af701fd0bb862786293ef74001ee6df4b242cdf31bb0f59d4b2b70e07b6f5b7c64a2cbf703d4eb554c2f5d116abdaa82cba56827e95d449557a88d584a5fd0748ce6afb1e7217bffd3c4fa275ebf4ffb07b4f5aaa007aeaf9661a11f3ff88708efd5bdb2aec4f326f2b3ec0db8f202f5d45e5fcadd03da8ee23f067d33477cf8dfa0665d17b1c07810fa1fe0c6f649fcf1873a2f6db89a61bb1b36e444ab22fb98b15117511760f2c4e00b5dbc09567c69c99313909f44cea162c3d1b7ab6b3d502ca5916245bab0127df076b008625eafdf7b7ff5ae76923da8f1423c1f8fa9c00366efea79f1dff3f11ca85c0efd3296eba810ea0af9314f7cdeaf7327d81a0a08d69a3b027c780256841418419e310ef75f82c19ca1d688008691ec2167a8161ff17ce221d8fe47449164015ed18964f30c17fae386891787cfbd476bc1d718d7fb4a08eb57e4c42c018a30a069d8f9ad0ac765d54a5182fefe8ba703a706abeea0822022ae3f731761af34cfee216b61e7dab06e090661c6ed3fa40f348876c4c1ccd9a05fd852ba8358c3afe40a699d348451032bae174ecab05eae2ea1454c23d6f46f485c577004729be4fd1ac692f065b379ab792ff424a153878461fe47d2f586cc2e7af10d977b4a2b7fa303a58de5515a1bd306a04eaa067fcf5e1184c6a9bf4decdac4654aeb5766e4e4be1485fb52b4f9a9a82caa3c3c9f17ccb50d20943fa4373153c76c6dadac29c2615b3728dfbd00679b71e836c39a146982af55d2a6c6363f839cba2fe4be8968279ebe806c7e5e9eea297a5d1e25e665fd7a4656e6a8e8c9ffced64e1544a67cd96e1457702a6d479aef1b3e11d0b9cf7cf0a35579751f5003264a4bdf8b8f554c84d32809feefb8059fe41a84c9ed2a65c0e1891dd2921d412461b0ec3d42ace602dbd651ef94f41a3fca5996201ad3d7a5ec2e4147c742fc588a736cea08acce850a8227e3bb2f4a2c5300c665ec4729183d00f52731f28ea0d5d7ddb939fd0e211038c860508a7d69afa67612bc61d426b55b959f72597aed7ef04fff7c1562a6ecb0f9bd307e8100c0d618cf49fc08666b348079327e2b304cde2cfda5d197afe23660fdc4d3576facde28e0c7981439eb750fa37a84840e8c69133c8004654dccb6e8000cd99340339f7c71323740d985cb02e9f2ef4353ba3a04f4e2c6e29c03bc9177e8feacada17a86452024cbe72223ba07f4b6d9ed832b15da828a9defe9d7fca3c64bc6ca54a6830cba2108b9bbc9f379ab084d252c04033ceea21f901f09e33efb919438bc2dd3f79d8bbc7bb2a5da1186990039fb7c4efcd8fcfc66415bebc4b4fd2a6a65c9ce9c11d03902e2454981e62ae6795987d2729958b436df56460d8ee96d5136a8c91b696b9cdf2f0630f46bc1d70514d0a96d7fe5b82350391020c2fb4ee67bf0dca11b005ed3173a31552d4d36986ce67237cb68524111ba798971f3158615e18294d2d89e8158b503e008ba684fcfc91e105c1f71ef8d7b2559c07342121e39b6a9c473b11927d16ed2364258eee42aea36499b9a4dca60de528d2e4e5c024f4950e69f43f818ed2627e0eea005adb311be44664976b3e1ceb8e1eaa99a3171fc8af9ead60998782296b419736ac85c4618b160791ed1a2777e27ad02bb54d971bd12e9fa5eb2f358d33493e48a351a632f36b06f40e9ea442aeec02561e4dc40744c6e23612f8c333e5a1b1bb5ea61886c4e2076cd51c14ece6b54710b150870e3d1252cd3cbccc40bf142be71a9ad4c605691101491f32b4fb333a67a626a72349ed579129b774329c518e22d9ccb680ccae10f638b8ed094367971bbde9547f368e6c1f1fd878593591820455b8510a5f35ad32603df2c5a48ead1cc0377b0303bba54b69cccfd3afba88660a117a107d126babdae7c3850b0cd95d7e5975db47c39ced3397c7c5675db929bb679d24733892c01846bc2e33cdff7e847150839bcc5ae0e9e5017a934a522d09ea249e11ac6f936b77503f362c2921ec28925b0bfbeeadb954a0ef400c95808d0cfd28dc56664cfbcc1a480ecf1a579efcb44b567f8eaaada24f49cc7c35844eda4c39b90347afd2d188bef65926c3f5b973943d7925966ae9da8bc5973d6f5b399f8edef9ed776a851b1e21e1197070e344cc59714eca9d86795ee6264fa7689eb22ec30e10de3161861307c7f27d2db48b1f69d15e489cf14eaffc149e109df1839762c97871c79ec8add105820cb0f7e7b624d375c305d720f42a8348522569d58e886fe66d356b8ceee9962c57cc5b946e8052356b387876333372f64582271b09731eb8571d6d565f58fa386d6df91619a23eeb05b355ff21bb779c9875beb50aaf24cf86021462825df62570782047bd4f1a53be225220085cd25b9bba87d1680aa1db365e9edd233d71ec249793e18d5a1c199c2bcc18437e369c3bcc014156c86acee170b3e6feb7ea5f435897c67c510bd59b6d51955b664c056b490341ccdd42b4271de07ececb3a7e97d5c81f9b5b5563a6ce88c38f54546d76d8e2225008efe476b333f0ae40d2e7617f8bba106cca27975a29493c73b7fdd89242cbb8bf2b280386a066f26da71a13c2d791d423f3b8719be8c01a6913b59a3eb543f67a66765c871263a9b0fe3f1c0ad4939b79359546260da05dd847c5aa2f62087844e7a82d8a95bba3f87b4da7ae68a34d4b58307581fc509c9d1cec20578555f852c45f6d2546d86afc197c6e32f68963388160111c3282b9e8acc17154f5d9a342f677bce02f8fab403e196882fcd3e941ada82825c21f600c71895dbb46cd4f2112f3ff50d7154f572591c26f84fc5b1634beb89e31bef8dffb578ba7cb7fcb7b7d20f3bfb7b805e8b2ea81c273665ba85127aa953b6873a9434ad4c494a96f6270a2e0b15608f6f93f7e4cef58465c3ce738535186a3ea536ccc25a01180c4ffa56044f32cd1c6778bd6e734efbc99cae188fe7f608d4932894b421dbe029553603c2df9dd0fe7a8f63757040faf8c4debd6490a9faf1d99063c0a45c011c8ecf2d3a50ed2222722d881b80d51557a10a8e7a4320aade4526eceec6be8d431eae24f0bcce9bb0f51a423d10b921cd5f5a29fc34af3e1f345df49396cc8e5deebd93ed4836afef689d8f37d69d9a26c33b2f6f1c6e9784ff8fe91eb69a0618a6ca8273d6a4e20c19401e682c83cb1780de9afaf38885563348f8cd5a520ec490fe4331de2db369d85cd5a55d7e14429538844da98d62516ef6de97d48d96008a238e97dc792e8c13a5bb02ee421697b2a7c29692a61b9a5425025c41f8c3f936fc387a29d90570ec80b9a07030450b2b7ba698aeb43a75015108b8e30d29f112e381fd3f924afdf0cacdda0d11920902cb30ceaa74b9a9db95aa25cc1b749d00bbf4ec97036c9859a02e512ab3f591a4240738b4882f029ab85e0506731bdd70b6b5e1c293ff32135bf9614cd57d3d0b1384061b59b6fe77fa0ad6cb9fe10c5f57efd27339307efb7c0bed617a18344bc45b9381e78323ae0eb8ba3524636c4dc3fa86c02ef20c5649283b9e13d8b9f84a63c86080d6676290c2002088a56666cbcd1fdd97e8312e420491e8ee1a05c820e37ad37c74a08ce115e43be29319e4ca20210be9bb91867524eba1b6f98261c4738b2db8595c5828691d075cd9e81e76e503b3f77dc8cf7777b5b55d3dcf62f428b8b68b7f0a0ced4bc1f34eeb9b9b9cc9e8843c659f9f17cdac5d3efe9ddc3b3d1243a26817cb6bc34a23909b5324c2d82602837150295bed40b52af9404cce4bf7b994fb250bdafdbabb856ef66c5dcc1b3663493cde51d858c7e3d4e0901c2980ddff8413c9f2ced965a24465bd05a1f011eb565de53c2a6398ca59ba2758ba137c3d9c6f4fa0d069b35c17795c0efeb6c5dce0a8a308bfe5581d20c4aa4bafdcdab1fd75a97812533fe809e991444183b0d9d19215600d855e4e3e0e04f2ea9a0700ae240f9d0e3bf64622cf48b7fbf760bcd749f0cd833ac13522614f9cae81e4cdf5de751aef9df0bb3240e4478fde17c97c4668b92daf0a0029419f70c22cdd05120d771faf2722f80bc4d381a1b63f12cd219e17c685605cea58bb624f74a28ccd3f74ceb618958825b06c37f81700ed54f73a4edd523f05de755bb5c80769c929dd001af3dbb079a1bddeadd7e44a645f36af8be659a0098705be7b305c9eff9a98c9ba98b221987c908039b65aa9a045cbd43a16f7892090c1d7e7ac4ba398fb8f3129fae0bc0622a418863a89103788f9eb777e3f8586fb1aeffb0482149a2e4dd0713b0886b6ea74f6181c77315a8a15dcd926983f2b80d9ce0b0cbc6abe46de122ba24f03a1dbafb839637e0406cba1aa1ff4f81c330d19ffca831758c4c154482bbce448385582e844757476f6fe66ed94ca74ace53769970b0c2323d0895cb28e19843d123abe0395de70d63f629c4b5abfbd38101a3cce2969f37cc0dc1299329186536201e29644fa107a5ad41532ea32d64d291bd7bfd5081e9a6ab184260733ad97816db48b4c2ac2cd89f080bbb640db4ef3abc285dd6ad62f9800fa69a5896a66adaa376009ecd3da35ab99eeed566050edc599998af0c4a63455e58f4a070fea0b428ed29a2e0eaab49bfb419fdc28ec350401e556058341a569a45d043b13eabaf0b95eb5afc3b71f28f4bdcb3e15c356280057cea55e70ce1d82ffa40b63c7a8399f4af32052d65ba0111c962c1fcf9c455f586a290aac5800e32206b705c632033ed14f82848288194ad251cc1132b4510219a2eb72893a62551dfab3655120597b945337b54a06d818f1fc2a15a88904455cd57c114bab382435723634f91b497f8d71059062e4f57ae8e1b2ff48d2e173adb130edd019155e70d6cfcac7fde4a99356d95acb3a7297fada2a27d53203adcc1605d58c22689bad1cb9fd42add90774c128fdcafae99f86f1aaf3ab570a3456ae87394132de4b8b9639c36eedaaaf7340e63d0f74a064de884dd4af480dd7d33b26028c9ed015688515222aa42b62bde3fa91dfb345bdb2c39e65d30b98e63f1bbac1cafe4a46382f6fdab4bcca9e23174bb8b3b6f467e82ca5565cb2895b6455a242650d9d0bd458251a30d9cd4ff86787e8b2a43b5073ce70e36653201df104a3222c85ce1b5d2865f4ab28b741055da304528d6cedd54f6f3406786e63451f4dca69bb2092bcd68ae2a5ce4c37bc2fdb6815528eb05426bf7ba4167e3fd64a73e5f83177a58f768bb6a4822d0df9770a73e5228670f52de88e4a442d1882f00b9d9bc1220ac5e3f023cc46385629359476319f1aa32478ade6be86e52864aed640f602dde32d74bcdbbb9012244bcaebc50904efccd9f24299c8c3fd1291ef9191def0a48f5e3df414cb5ac2ad3c8d75a03cc330bd58f7f43f1598f5a6b36db3483e803453b42b3bb7707a666f928ed4c139100d1cb48b6f9cb89b40026946f162679d61645729fd20501678ed00ac0e9cdf806bfec59b64fda986f684555c0a9f8f142fb6cab3ac4f2f52912ca75e6e844c33d783650cb60a55353885debcb018bc28c2de4a785461cda51da4e10fbef1e58742446c9dc3dfc0d3db95d010f692eb9e2c294deb344115b5f733efe051c299083656f99a9d8e763d7e40d8b09aace9ea4ae2a28cfebf2df36d4055e8fc94c10114eb64ed57072e17f752e413b2881dda73e018948aaf5324e4a1386c7801ebdc75862b6a91be1baddfdaf058f446b7cfe7aeced0b4ad6ecc1178a1c1d8af478f6d47f28325c0daeb4568ca25c31cd4e878ced9a58d85d0ee5652e0142b48c1188b255c4068f2db72e78ba62c7987ec609795d28800570795472cd92210a0f52c610c4ce0408450d86e32fb0c10b6084800e2b427981da9a204f31ad21805743d48beb93729df37af51cbcd850fcef3c2c9aa1c36b060d7e871d89fe969fe453e18927baa429ff92dbfc3dd4d5b3f855ea07ff6e35311aac5f4457534ad85b2f81d7d19750631698c04cb579afada9bcb5a55c2961c84c099715cb840ceef76429fe9e736d6a20a944b65e38b201ec12a2acc644c188fb87f2082f3f6016d760f3e5cefff6864b8a9ff895a5af39503278c0b0c846fd0ac30032001beff06b167807ee71d4bcc41309acf1d2c8f702ff336af96f2db4abfce97bf8a1e5c364499f6328a6c61df1c1ce57f8b66ea115a584d985eb83bce45a3bc9d8a038e75dbff354e56a542a414b5ff1861a68a42cf8624d53790fde1d69c6cadf8ad68eab9d14635d78ce496d54da9ee0001ef3124d0ee50b34ce8185443249fae82cc267f14cc6212643db05b2db9ca53134973c0769918ad513ad6fb21fc90d2d5f26c74b195a7f49322315d218d666a747b852deb6456536d7c0e2cd0afc96c363faf93a963fb8cf3f416075c58d1684dbdb72389b8319ab1deb15a37455b8bd369e43ac29c91fb9fe03cc682709998235d22d7037c305fded2f27e83c1e46b9775848ee80d4ad6037f240a3eb53f7276bf9f6bc089895b0cd973cf0cc8adbf0637502f0d321b8a628c3ce7af8f6d5f451a2925aee4bef24c6b60742b993632adabc9a49577c5e0add46983ad4eafb8a7b5c26e76408937ede32b3200ba9099cca4a8e9065b255dc931785bc76e186f0e126070c56de9c75e5c1f55d099adcea754541907c6e1ba7d0746c18d5b3c503010fbb0938022dc57b1b2b34700fe04c9b85b55d763706eb268de49c18bc79a17ee6d795ac1b59037495c239b6902944ff891d1bf3454f7f73dd8d8a2d5e2251d41a7465ff00eea572150be5cd7792e1db4d6c9f3c86148197289a0e4d9d0ca26bcfbb89b29227d36fcba2577422c5998b77368f9515c8ddcc9f27a288ecad925408dd479183835dfb5b32fc26773bca2f80330ec9f4c6cee1c206ca9d9cc36e495b4b1567ebcd23fd51fb8abf38699edb01d0461ea6cd961624201737d85e4d70c220cbd523ae30881b229ecdb671be1ede5b01097adef96f3a02de525a16744120a0f43c55a65aff09eddc8c432865eaa643674aef5c70f0f3276b17cf254af253f0f87b1df914d0372b85de9ddf0fa7df35e220cc2185fd4f6def230a3a1b3d2bc971514bd6665f0ba5a951d5039138ea7342743d1395193948f9ab4f50168c8f65742dfaf98860e395a9e5e5f85e3512b1cf7c1b836511aa23f5b4c706322a15b97520ffda2ef9b27632b7724435a8ca00d937df0e1087aa92c0d2919d7ae1924fd98481088ae4f25127352abba0ca52977e099cc38b29f04bae9df9bf59e0cd513fbc04549d733ea84f7b5eed4c03e906672948d2c895d9ebf9eda8cb698c292c14b7aeafca8480e772d55ea42100590e3ca51c45eab4751788400131edd3913e91171dfa7b6fa3b6bdad3ebf9b5cc0724bd12fc19cd4c6247b43565ca552b4b387b7078bfb11166af721f5d234389f69329372879172144d059724223dcca07f5269e9bfaceed9850af1c535b78a3cabb8a933107c0d6c2c3be2da5c05160981f70787a9244715fdf44853ac03297be4729f59e7753e317490f205487af383a10bb62cbe9e01ab3af45a5bd2167a691eb2f004aa655adcffb1c4b8cb393b3b7ab17e8ee7dbc328865f92ee33043d5da3cfb3b3f02739a9edf738ca86ebd1619be9fff81e4ac896877a020dbdedff4c5f01e80e21f204d630417da545964d89f97ef628a154ddfc057176d16c7c34d94ee5b254bc66e7e3b86addac472bb37ca967f6d4a286ba6c52341343bd169a2e549d7f23c6f21d1a5214c1ae84e00cb418a23a732a5f2d0fc982a4848b8f7d487b3e79b14f4d148870f1ab78a1ece61ee5187d9dd7cba8e976e80d4f476dd836f1bd30dc311db0795da0e68e753085a10881ccc4f220a3760452d1750539c6d494249821edd95c51894a4ab6c648fc684e664d1cfd3c04c47651ff6e075bae0a2bfe6ac811675f3b28762c6085403f97823e4676c78d16adc97a451e7e9314aea78cfd1a404c5b858bddc1d70761f879d7cf9f0200b4e53b036211128452a0ebdce5efa0c474d0f279baa5d00827bc0a0d372ba48d86015fecf2e28a3ba73817779b51474680aa8ee6bac6cf2612df43cb2a9003fbecc63706b9120e6801e3a5032a7c83b15dc55df6de60e1d7a961f54d8eda65641a21c6e0603c0610072a697a2426219c7e5914c2b1311f436923b9c4c61c497ace842c1211cbabe1b161f2b48b1a1b62dcf13db15a809cefef1e376fa5faa88337cbc2e58245772a5d7ac6096e329578a0f05428c87e67aa646d55a4208c80a92e8c7529cc295792d236e989e8a79031ffcc2abf1e3dcf539a316cd9a4e41b0a890c00feef67eb12ee1344adabf6279b18069e528d706842b673e76608710b4096108b71e213a0233669694b0421279f7ba5e8bdb2e0a077e02655f89512a7f2c9d72675b1197a333d2b020c0cbfbdb05169ddd5a3dcfa00d370499e1e32f9a44f4c761f07f103042b0ba4ada254576c384b4e4ce13a561c4ca23ed5979c4db17d055c3ef67855c9e42ba7f1f262c0304ad0ad16f1b44afcf3a965dcd5dc37af7f6010310b52f035594aa7cc443198a0567f06e929193e7577f08d2035ffb3f192677bf1608b5944cdcf5bf1b76afbf6814ce5fe980360c4c3bcbd5208164baa582ce20b7708035a329e336cff803bfb6533426d8db27067a87969c758639508b51c575619a04d4cf0671d1b6a6b8201abdb08e958cc2f583b394177adb02dcb3825fe1a79671ef901302dc2b5813cbc4ec89ed2422d233f8b508eed13548f1d34f0f6ca022661846ad1592207c0403475afd918d0ec3fd912162de16940bb0c66c00a945d6956feb6f71787832e10d8b4a99db98612b9f31ac16c7e9990513c455a300e98c5475be95daabe1a383f65efb347cf4d7507633b3c0638d2618de8b96c2464a35168ae3af12068071cb25bafa54813325736529647e1365402c6d42b76394a59cd18004ba19cb1be221768d5aefaee377ae0deddc5176723b1094da08f36664deba84d89a2f7f187e50ec84ebb9f82bf443ddffd4d38cebd2efe3f6fd0e3ff65643a19fc67a06df6676758e77394b5efa701ff779802a4a24acb96c609ca854f914f2ab730b6ba1cc950c5ab2c2e2533a14962ec38cf64e7b17a18a540c35bfdbeab1d1c9d6bfeccc77f8f6152534a06e1a39e011da075b24247536a83fa770df3fd870d6ebbfb3746d743ea5fb393e36d64e7def0a3d98a3ecf1f891ca7051c51a56bd86ac06f4210c491a6f20b15e2b4f41e9b067b609d38d85fbe64ad66ea8f8e4dacaf2a949026c3dcb81824d23b09f7f945c2006caad179dda954f0caea2bdabde1f2fc8721bb55362d85c880a0b5b97e1c12ca11cc851c039f4872c3bc1bcd726b618d04d490515f2f4832d861beda2b46767f7c78815a680ac6552112f4dc695cb68b31e41138fdac02b6e127c97230b43dded4c17a3356ed14de8c5944017a6f8548cc6b728e9d7ae93736aadd296e3167b6b992e77b620c4dd4f8f3c57ab0b807aa53a0f2cd58655f6bc7f518c55fbb904c7d775853896c5df6efb944cc45b1ac900a6fcec015a8cd2cf3e0b37a8d7cc9fe626b12409a515201ff2d407f7e1275b8917e615b23addddcf8335a4995ec96a4a4a8e9b0952d84a483dd0cb80ac515ef4b81e7f34ae82208d2e858b5e45a83c0721e6df809daa84ba524e797b7484e0c073e2aa92eebeb2ae77dbb95237700b1e51dfbabdd48bf3c0054028825f7f2dddc09a7ed08b351182df6a046d357e5b4484ef179ef54d1ec436b7c3217525c6793ad669be5336f8a204b252a830d46b50b782d9d8168c0b538c02ca689f747970be9e52833663a6113c81cb5a97bb432643faca119afe36846cdd35dd322a56ecb4d863c6b78f8ef88abee895a1635f6855b72fea7b5c24e0704eec11f9a03dcb01604e2ee685b6d0c193483c40602eba0f08481abc3875a64f654d2497267e949d2eae05163a87948baee49db8d0414bff971a6c07c082218065828d1e64bbf3527af6e4003f5a9e1c33d26e79a1411203408e2589c2763d554084281f41873cd2955929bbc74361ff557707d854d2e2441d33d1c99d6953401c83b7e8324e5ea13151e75a99f7623e4468e0a2d9d42bc021ecbee917f9497db9c8c1a8f230b231e9c9c3b5c08c989aef7ab11ff3e30c5e175c4d811fd0edea18913869383ca74ffdf4685daa622d4820be0dff69999428544c9e0498068dc8c74a780d4ec7874ac7e27666c90c143fa8cc634deb5842e046aece96b0cd4a21a351ac5734c6a00a7cecf46b09fe19e5a966a6a26ac9012367781a2745ff77f4542e5c3ee2584728700598dbb39765fb1ec38f05f3e58257d0af13f16f4614bc5cc232e56b91339e9aeda39a3e8776802e7de4bd16bbedabcf5292c9ccd8f2db51fefffcf1a861e50db666d89aef115cef4b8c08852e5bfceee651e4459ff4a06bb8d8adbfd13b9927297d9203c09384dcaf9b11ca2109bd15dadf0002a928b12313f5faba5975efa3f8b37a5a315950772668edcaaa00a5a6236f87c7c05e82ad43c8186b1dbf11c4384ed4189bfaaefac5cfdfa9f7f7709b4ae5662a22a1e691dca8859fa9bf4f60b3e4773c506a4cb97dceaf1065e3fdc36456dbb11b7785b7cf68d12a601fc68dc1d76c12f340e2eeb21c258f8987a90dc01ab0dd06200f0094a4be95a912621fbe22733cb1c69fac0fc0a3d78155f9d7d13b41a3316e6e5e726f9244f40719e5eadefa0208a4a5102f362800c236e6253e52b37f5f243ef743449994f337684ff413b8b4af488080e55d6d4d9c3c708c81ba229e8c9a06ce0d1e23ba7c870729774f3a8059c3ec05262090997cdc34e36ca0a98675009256f430d8257695a7dd32a283696ae6b04980508f68aef30bd0307de0ca509abb14c8f7b8435d20b8d62e5e58f79e3331c0b02404335ae2adc188f1260632686e6763f56bfba7b000931fd3f2569a0591dc17a0bd935710f0de2df26806a870a56cfdb20f21f59cc4dcc43b0d406ffe9344eefacfd38320b2f85b358a83ec82efafced0443b386f829acbac45f09c50a8d3cf7639052fc6d2fbd2f1f134beb57f2b6301f8bb6d6cebe236b705625ade394bb1c3096d3379c39d6ee0458243499f5b58e17983446602cc83915b4c4aa70d20dbe7ee46becc348f11123d4ef40e9431faa06fae86db6fda755a21d927bba2ac5581539400cbb1ad35e800737a84fa30b3c01a7af87d812a3e40c6bff909cd913976710be3fbbcc78066bcd5a0f7676cc9f6e2fe216c7e006f792f30eec70146d772b53cd51600e89d6fcbcf1eae612f520576d21fb6e645b5ce114568a7ba7e5bf56d8dcc620735b067321b226af2f74cd567a9064a0715bd8fa1eca27225b388093cc94d44382bfeacf7a9d4dce97605464059df76fd820c2c45fe2e227098f8030cbe9b031823b4d9f92f5da420303101d44ae81cd54d29b5d8b65632a261af0596d0f4e682239d4cc61b4fce0ac1e10b04248114b33328e143011242b504701e132b07eec412b611c30fd4be0b1c44f4040a7763d7690a5bd2fe3dc86fe998b88e00f578fc866a27353978eb49285b84ecd4052a01cb05a8b431afbb96b0552bf883a0dc0de90082d149677400907c435173f1c3259c8282a723b469168256fc66a49af9eb9e382f01e87190a397dffe489a183f0d4a159fdaaa3647291889ddc6f85fe89122db4d99052dc46d9f93da056b108e078bed628bb67ecdc105b033561809dab1cd9b1fc43e80cb0e9a97691e55422f49fc3d45f00b3617a4cd1444178004cabd386806e7062735141460de143da7d5706b0a22dfd3f2b0621a71390f56e75b1150c85e1e94ad2d26adfdad076d64ffaf38cca842013bfd6dbe1bda740d63296ca9426e6ecb67ab455d2e43f220945ec932840cf1221a1606393c1a3916bc0b0ace42c71daa76c146bce95da374cdee20129e2f567ed6ef63089bd277e1085ad17c73cd9d5071a27adb160aea31739aa1fb4025cd1f4c2c999dfb4925d3976ce1b925003d6c02865031d9c30133a62fbfce0483dcb9148d560293d9ac961767a4fcb9bb1ac30ac939a7df4641f74bb79d6d1c624d74e0ccc897c600620039923b602a65c531f7a808d292e07a06fc94bab1c1b858fec5bb19ec66e05eb0be96eeb371443b6d81e8296c200d4ac643eced375850cc2a3df4379cb6ae0fecab7e2c10f1c2e17d0450031dd6470d7d6fe60ddc8c5289215a97a01914c21d5bb6c7707f1e127f1a1e502b9a85c40972d4fbf8313de387cc0d9b1ba1eee3c32136a51107e2629bee5360afb8e0295d71f21ba65bdfb9d7c61be8ee9b960f91a13db1b2074a65208133e6bc49ccb03fd0b0517b854900d84252beae139edec5e7e3869a5b2dd3a5d3252d01e1f49941bccdaa5d8ca350c7d6a228c6143d55b52186c0293a520dede898792eb7ec1939db7df759bc6f3efaad591def6395d1e6f0967ae67d49707def65c55aced1d3a2d7ddaea04fe11a8ce5ce46261017ff41f2329340b51a79450ade3df4adf8dfce93d716b7e340ea4fb36fca262b02b11c6eb2f9942e6f784b92f056cf9f7d4e26ad1c8d0545d7074cc1c789bc380fda2d17b27edc63c9a91237adaa16a702cce2d3bb36640ae3bce34f570e379f50e05b4276a6677654bc98c93888659b6174cb97fafc1141a56be9fc05e48e967d64b3bad5fa28d7a0790fd296eda72a42a45e99ffaeb250108d93ba059988f85db9ccb886de818aad874af6472013e33670fd54412a08dd09eae2f9ba60102d9ea29423961521ceb490a53b3393f1771e7638c85e5c5e54909099b174956a54cff3fa3ce2015f4e8407cd24c28b6b7d9fce7e862712c03a8c895763d0f1ff25868162d4d58bd92cde634e6138f219cc7da15af60e71bbca00afe0c5d754ad54796768aa5cbe18820b28c77404f7d8a3c155684081338fe14557b475c353a9de52ed99a7a8da0230e96d728491638bf0c4efbaf832c8e1b3b274c1b18333f9a4f2b73110e786ccfc3d58bbb12f0539eddc9da23939f8344f16821c3b0a65ae47997c965f3ff592851785e426b1858663b1ce007ea4be385ed299131d329907f0e37be417515d6add83fd80ad57e3036e5577aeacb34c516fd31604c56fec6ff879cd14d1037c5944f9fd7d9f05c165e99e9b07ca6104578b26483b520b92455c7c65cd7a37b07ca99f7ae0a416e25ab49ebf78773dfd2a1c1a45ff812097880427c151f988c86e0044487526b309c85f2eee4c8e82932dfda8c868adb7b40bbc1c23856328acf15e26e269274a16990df89a4f2e060889e3c0971878e47698cc2e965521b0cb7907f297fa6190122a71493fdeea5856451ea44cc2ddb5e7eb5be2cd3a8fa06aa159c3ba85cfe132c871e3055e3dcf5df809ffdf85f968c322584a8001283489c75bbadae07cf0d63da0bbafa1d9755a1eceeb0cfc98f5f62bbb2e8adc804fe073d7e8879a2f674cd69023224249d862d92ec3ef44c131a8dc66726c69fe848d82f36a551c366ee8054c32332839e71727949f898957e9bb73a3d5d2e36d518ce480be419551bcb8b254cb54fcea6582fb7835941806ab86d22ac1faf66220dd70ef92bc534086a8ef3df3b52ed1495981633d1c17796851bedd0b31af9b54077c08940135a2a2024ecaec1520c54e4da5a1df762721014587d0f281023323a423f32a1754893e05f99f3b0bb195236eb30070516848aac5a2441c973618ef0f995973a40900e3860975a5e12387b4b3b710da17468221d7d2082b79003059e74410d3f1198018069ccdfb19d81878ebe3126eed512a8611b00d4110f903c2650e0ec70c1a32d1a3b7b04c96a09bcb320c742e81dce3f0633cd9408314535d08df588d66b6f0e1f6e36fdd4eacee03cf88e434b86531ef94b181ff509cf14941adc024788aea43004b280627d218d2d883875c2cad77014c72f841649b6f34ddee22583c6146791bca2bf8c672f8894dd92076ab9fa2bcd82f3ef735cff1318f137ecbb5655dbee15960ca2751699bf5a98c53d16dde99a1c79c2d31ccf381a79c3e58e0d0cf875bcee3caf37945af3562b6d5dc3a1c97081c718c2e2f0bbb8e9cafa5491c237c5c92e47b4ee8f4a2516f772cab3077b5f07d6f7f208f349419090568830799c0871344800f2788001f4e10013e9c20027c384104c01f9c5f8ed9d0f6bfe8dd7f985274275cf4d6b045f6fee61ec6ec0f58158e514c0fdfca85f5d3cd2f33efa07f2ad9536d9620f31a456559fd52f2ee847e46797f6710dafc50e271de6e07b025efc6b011361bc90e38f7af36c554a939aacfcb519f8b8d5cf75e511ea9eef9748ed9f6fcb464073f65ec73a19e9db8954343cd1a6cdc34dd35cd9dff567abba442c6378b03e5ae98ece207785157e84c35301e3c1a3beffe0d68603e5c9a93bbceefd5e72cacef96d90a1237eb30bf2874bab55f32c0133bac0d4e2468cdcc6d26123af5da7a234dbb7f732d60d129b4e429b8914179fdfd489766c09fe5fffbc807e6cc053aca9d0b04cdcbf29e0a1f8b2bd1f3cd722b94db1d04c6e783b13987f0cfaf6393ae70d76d7f07b6575ae5ada48c7fcd89dd83757b2dd0d5a570d2aa60cec28afe71ffb66c2cd267ee1e8388c7fc4f83e43fc5e94614b75fcee3707299f7835ce7f27d87a3231b864e3a741f54de632c9bb034630325088a666d54f84564bea4251a200286fc74ea41c10f6cc7e7ddf134b79ad84e41e02b76c91a397f316e7b9253fdd87e84ca1d11d991cde5de7d41b5d3503343e279784862d8182ac6d86ee9676362850eb8089931a41bcab7a6ec4a4e39b7a3a76ca3db2722ae2ef1d4fecd696a0dada2c46b9deb2c6d55b4881a4db4e4f2cb71df697dc3233d401680583b9d56d9e63e7a07bb49008b2758bc93a4f94144ab1641dc0042d1384a3837fc6775deb248e26f24f192c3e31cd17005fac004f71d6d8969fb9540c5f2359a37063a1d53e44a29b8592042df4191893a5e65d38d13001f2670f042d7e75bc9c7fcf3f47026e3dbc07a492281c0472509be80f2efbb5d67928dd67e8e7255ff14f1dfe74dea8dbe7f67bfcd6e26aaa78c8225262701d7eb344d818647936e2896c4c6fc6ab38413ff39fab9a09c3dbadca0e0dd80b1f85b828ad1accfc8df95f5710a3e6968d60c60bf18a49a3173f426007cac40b079bceedfe64984cbdc048fefde1ebe7c5a9cc4c7eb2c5ebea7b3cff992c89ae74f880ffab6d59f3f6fd4427f5a19f7b4f3f925e2566d62ec24611e1441645b5a7d4070f5689c0b3e6276904cdfcc9a9e04971a9b785ddefe9763ac94a5521129da60dbbcd95ba2fbfafe4cc21096d7ef287793cfb30cbb8133ec6dca42b5d689d081ad0c32525754ae953f59821ef1994e689e43733ff72965d4a33ca16864e68dd68cf4428b88e6de89e885d84b964d23a2ea5af3ae1fe724a5516c29bfcb16c8629ee0b539e2ebcea63bfe9f9e29656251b14d71f1eead34ef2e912cd54ebd57d40767f72dd53422dd60f273e7750a63a7e367533d508d560084a92ac4540de6ca395a8527007bc41a20ab286b8ab70133f76fb7321872511ffcf66457a8e1ab298b4a99e1c0bfbfd3137eefdf698747d76673a0e1bfabcae3bde724edf188d939b0ff4639f42b48e972216b869b410da83b00dd66c606a95e9faa2d0181e40c2e38cace8c298b057a11b40ab18b2b08dd9c2142f7171b36f70c63d2194b2b53707e688df949ca025146c89a21dbde67eb0efb29f3140c6dedec074a465cac5cd32c375472dc3bb8445b9c1237f9cb20df79e5a8ddfde7d72cccae97396d3b933e2074df1c967f782b9d14a1fd9fa9ab46660f1ee231413ee1d3b2ddbcd97f93b2588807855d05ac7e6c4a93d1dc7bcbe6592d45b12216ed230408372d359e35f0ba2643b54e02365dec4a42dbd6de553be7c1da0d77c1fcd289c7ae098c85ad54134dde0f17985a2f4036ee9f4df5c88011d0ac91e365b35b1fd8152e4eec2fcfe9b18461f32bc364f3acddefaceccc2127a91c6691ebc36cfb93d0b4b8e8a9c432babba8b51a303eb6329db7c6387e84e97fa4dff01679d60cdc984d9350787f8394fb7e7378a2de53b4712200022af07ee926a613372c3ef75b1fb031f5711cc7f48c3319151ccd82d628a712532b16ec579ac61472077578831b119e8020eb64d613161a5b3c33ae7fcd8594573e8fa030cd263fd55cf3f584b96d268514abbb3cabe757366dfc89763f1315b306bf4905d7078d5be78c2aca51ee28646ff9e57238fdc0835811ee1b5c6121115a617cb1847e8c05a26a81b61e8b066a207048dd4ec330d294de090ad91617afc19a3c8666639f1b56fffc18f5dc6010f4b1bb36d21000d09859fe4a31e21bf42a5dcffad064bb974b0d1dab554cec361f1e40584c077000ea671b5c678807ed2970fb3ee084ffc9d4ceaad4db908f0b12a15b4c1a7b67ae0142e3917908502f9cdc7e8e8eaeff671b5381b0e0e9e8da7e49c98307d10cf0f2e11053c7edb024002e95ca83d2411063b7b510238f4a79187abfc2cb2e31c8bcf0a818a8835853017978775df9c8a6cbccb00b47034cd4d7d6b4d30d1a29853a1969b1fb73afa4d6555ea42aaa30369c9f1074d0123ed3e23339fbca29de0de03aac51192d32a99cb0e64eedeb1e93b0f65f2737937a5e228eeddbbacbd45f35ffcc521994d7a46cee598f0cc3757af401c523a59ebc773cd07eb406d25ae1534ed87086b67060b2594cdd76429709b79cd7c0312b21dc625f311b9f918e566321915e2b8699c13a067a31c5f51b06289225d1c0964cdb7c5700b7dd0cdd6396ed76f330749e64321493205594a05de200933b6e51dc8e5a3342e5ab819318bd9fb5e6bd7a20550541ec447967862a45b16e9e2a295ea041745690e01c9a191031201a72fa5462cc2159adec621aa57f42ee3f5525c0eaf70d8e68d72628ceaf38c7e1aa548ce210cf5f0891a915ceb1e832db5ed6415184aa401871c3ccddefd07d853a3eac53885ffd186509c87e542a789504e4903ff155d5c8693ad10e7dc46170be09cc40f94ef33d4794498c546b307ad31e87d26a5e213582d034af8ce42d993cfc444eca6741ed5ffff1e83a749881894b72160331c46281ab80be07b4199308db2efe60c51e48d1a1c245d591795e2ac364d7e996b91294354ba9c791194ccfdcfd8abb95416f4a7cb89c4bb942c8656f3c9b20ee06b17c184159024e487f1eb4eb83b7f250f681952c9cae9f100ff495c72ecbd6a8059843e8f756918ebefe14ecf9a6fb6122056798fb52018f2751b3eb1a065cdf26f1ec562599cedc334592523b3a07aa41943b7fd9da35f40d2a31cde5cb9c1767cdffe983fe86378ac4808f0db927e7e3858c852d98487fc6822194aa70f7d05a5767bb42adf9e33df192b66df5ecd14267275fe15bb31d493ae51f3af6c508e89da03a1c10c72ca2dbfc7386717ef7ad5fb6d964f93f79896c47aa99004f0c1a1f407e40efd2aa145aa1e3d4774cd3d24fc3f4df55f9fdb5c89ec09b4182c8cf3081b304974f4170654ebcb8b26dafd6a36766c8f7a0db4ab662bbf89a4885a1dc12bc50de465d46c59acf54be84623ba45926392a7f7e773a995ec4ad024a6de64972939622c970e4982f1f70efb2484754f0c64be2ee6bfe3660973e656273c4467decef663749dc972984ba7d359ab93c83fa5d228388b269228ebfe5c0c1f7d0280119a57e53e1fcebd58c28bdee553a07b6beaeb2aaba3c3ed4decd0d11c7d85879c53f97aa9b7914284907ec986ae3e4ef9c748c912f2b492b59aed346242e68bb89ffcd345b469a0ab5e88e94711211bd0d25e6fe8263c144efd43105763a5fc566ef7b4f52aaa2207abf609ae8e233ab383966f0aa7de5a44cb32ff6ac5488069ace8a0fce854bb8372240b74d2cd66b8e5c2c143002156c016a2b8580b171a3981d7246663fab4a755341477e0ce1061fb0be78369364dc3ae966adff7d4d170439e53ff1cc069da501cbc64f05668ae163430b70bd23dfe24ce790d0c0694c98300ebd5aad5c0d25d4d5ba4f639b1246303a2b41d7d8fcfad9200c3b98d6d22a941aaed8f48871e195b83d91399f430ccfe5b40e680c2462345288dda78830d0f9212b3c0c1f18235f0127b2150cf97089eb7c0f22658b90fcdf163212bc07f74a13ad7617655f0c306866f80513901960ef64c904747936258d6995c1631284247296a92b659dece2b0ee6a7ed272ac5b8acd793d630c4ec6f0fd74e6eedc0a988db3e691554515b7258e45e9d87966e49caca146eb7b1afd9030d0281035531b70e3f370f2d1efdd436edf19de24fcee10e995f65b176a1ce83cea3155bcb5871fc9ffe1fd95444d580eb4aa9c0ea8c1e441f11623dec104cf88f01ed14eb4e16da7e3302cabedff126bf531b921efb3cd1583dfa6bff6cf0310b568fd8ab39661440085d643259b524d0c6fb8464635cfc5b605b9b8757ac478eec58db37c76b8f0d533975fd86c0f2c560ade2589244fc1c789e0b6c041deab2f9bffef57c17d3fbe5643db704e4440ba3cbf164f3ef573ac437fdb625fbaa889301d718443ab4a516151567c225a1dfa6c45db5ecb237916f8385bce11a553655db88545c5c448a08b72489265416ca8e721ffec7fbcfd3ff76780855758ab3657970ec60bd67fc976fe081387b164eb483bbaf5359a566464aa8bc2fe88c76aa05736cbff78c8e93f8dd82741ac1b825673750514993c59f552774c92a272176f7d9449b86f857835bcea2f5280deed4188649946b676770f13b8df3b8b59eb8e5ce2bf8fddf143d2613ddf71647f8c83cfe5d04ea3885e51b0906b0ed35cf2c663fc4acc138ff305baf40c09797c1fa29d1756f02f239a1c75e983a860e860d279eda5b190f469660b39caa74e43a484e2230e598135e3ebca8f136c0534ceecbebd9c4e075537ed12a18c54e5aeed28a6f7b882ad6aea2eef470351aa5a2ab832dda4f37a4146e46c7c4ada14e57165d67994b57969f53caf0ef135673a5ddcb295103cd5368a67b99d7985d32303fbc0342ebc5d24ad9ba04261c8b2500de496b2efaf1f632de1cd35248f0d0f05d23d5634632b0021f9a9a3f7ffdfeecbc5caac11cc2b0c2ce11c13701a87542aa523047abfaab5cdbca046feaf381575aa9507c9ab20430947f598b44d8b7c30abb6d4598ca34893c70ca5139b23ecd25465e2428b99e2df28e82f732ef37e58951727684bfbf6f767d297c322317e43f49f44aa9fa5aec32c362db41e538ea061553b39e8288025b8f1d2954460f13df9529e9ce7e9a9c40ae705e532b996022b857cf04ca906a857a92736d3d41b751390124ba31970218aa7a57dbb40cb371560a816501247a9837890de38a0aec480c20cd1189730962f126b38e26de117b8f89f2bde8ec44d01e9fdc587842152987bbf2fcb4abc4c98bedca82b82e86947291653678c949243764664a5bbff8bf221437914fc490d71606ff547c2ad590c81c2fe13d9ba8e20d71479ec91d134a4d884f332e8e98f96e7731992816a52429242e198cfee37d5bf97ec307f061fdd5e91685b31e0ce906a3a406f88928448010911dddcf66ccccc2860c4174805baa0994a341d922540e07d4e114ef322e1e79fdee8be3d63e6f716eceaa0bb68091ca5b999ce15a7e6faf913c2a8761069e921b7f50368c54f5847995c940a35219a12822ad76e908b65525a443e74f58d6330e6db2106f12aa145656852fe86d0646a3ad652cd186bef183ba87be28b47a82f4ce0eb95f31bd083098510127bb8d67d98ad00532d106a27c1779e1325635268ca425e181f9975ec710fc55024d89f0a97716260c76db227834337326a8267b58a8b8378a41efb9ef6773e7020e2538e756edf547bd21777727b6538eb72fc61d4ca0cb1a45b67e2e6fd17031abc23764ca80f5dfcd44419e5a489be7e315379144865f315361763f4d1190329e33115a47eea78ae40cf9744ecf72fdf116d6c196dc4d17cd964606d2a73f14fc3805f9ac37ef60588212a7ea6dacf650e4c9da5cb125a39b4da2a277b55f3065d65e1d0f69e4c4dae5076566924cd9daac20ec1f679e435aa861c68c7856d606f085d43110cfc03caebabc0a99ef09df0b102f01b260214315f794a2e81462c988e6eef20e389dfc6152598df0a1520a0a44ad8ef9742770cf10ccc32833100dc5478fd805edc00991a1feca0280a2a0501b973f44ee8af23ca7751e17a8a3dc055d5e1c7987ccc1d692feb6787b5bacdec01b07e4930b23e1e8b0a23241dab05126ee1de641831b4cc73ac86d2404f37809762e26f1ebe4aa8cee95695f7d2910d60c6a6d57afa3d9551df082b5d880bfaa7e2d162fb229c4813dd88ff353ccc403e66a03ab680f2119e85f1f2587cbb4f84eded450163de53fda4dbd167e94f9c50d937904b1b116a1038a48e9aa40132f38f04f262e0186470139668d134670f3e772c14d47d6512a081a6ba4045dca30434bce49fa911adb65eee80d0207eeed8643d6e9a6901b26d2607cea703ce7a04d65b2cda7f02590a82d2f738532174e752d6e502dbdd19f3582372414a992301d9be534857c2fe1638ebee389e0588be45caeda77a1f155ff3c41acedf6bd24d3c3fcd3f11c49ce0b9a7951311ef035e23e75c93bad422194e2913dfdba112c752ffab5d19ecf52bfefda8635495b501d6c48f3487f96a5169a19bfbfac390cc4ff89426d0830ff1fb4940a40f477ae8e6cade1c4b6e2ddbc61c8a147625f91bb61effe673e3d695f6e9fe1b74d6a0691c9de37bb0a7c77f7c3148757ba4b2340f8c3aaa4c69372f4dfa41246096af09c7bcaf03607fe01f16fe64790d07bb36b6a12248e5d6c69b513060d674c8cbe364a1fdcdcd1ad4ec8c3b7043c2396f1cc9b07d3ea2f56219f53fcf25a25fdfad7379e83dedd9ef5cacbe507c9b60d6413c27b4da6087ad3bba887daf6f1a32aa9f99fa5ee712894ce1d3fc4fd53d4a03595990d80160334a7fe31efbf34d9fb31e164e4ae98609149659713bc69a470e468a9b80071c6ef1d3c032ebe3fb767e4fa9a0dda18e88cc39df22111a9bdeb3429ecc989d38b2403b3bd87bd664c65bbb918c0ee799275dc47d52b0977f1a98ea480da39f8125c59288298f077d85cf1bd388a13f08aba4ca274d6e7ce52c07d8ea19f22358040aa3eb1eea30e9a1b817e9fb8c48ab875d6a267ce14085f6741709fa071d364b4c050a0f453eb5c0a9d13f20ae84a946ef00c2ff2d61087d24eede046644dfd52641272f04f67eb7b537a9f44b4e6d1d12ca643270119c317f2533e16b2a88584575c8b16052c688fac39b4793304ffddd5cc0e6e4a4bf2d39c593b0240bf762e5caf2a0363a84a8c99c92426084ad58e4f7c2040f8a863de8061e5776d7bec9a0807ab376374f41071eb9be6663ce4c56d0a261702488323bf2345604bcc22f186ba8613e193a82c14bd9eaf6ec1ce7b7237362fc0200b681e7c9ca39c3926fc78d6078408893fc5a79f4c7884bf7b656e021594d160a03f367d739679502dc31d40bd7f0f5986cb2ebef98a44f3d7b7f4d4f72180d74f6955215ae64a6e5cc9bfadad0385442af7d43059d9845df6775125061e7f389c64c700e40f2ce7b69fab84548a23af652f3febb04c6c756b2eed857c6bdf2c88b057ecf12e76e8398f32043a9df2c770e33ee67ca4d6424b1cb6874baf22fc8f12659a6f6b673b38b190311cf9b8931d7fcb44feb124493100daeb9ee6bb95c6637b1e89236ed77d411785753cca35af8f6ecd6d897ceefb24538194640c8bc0b8b2e81dc579f4d73d8f44fdcfbdb3f32ad2cc96119b58719e397ca01f3b0dbbeb609daea5bfe70e0ddf1bcf9e3f8589470a3c2b1e36bda5bc7130ab772d578b0a61e411790d0f5ac873448e77621ddbfef2b159feea9100c7450b8b960746f97ec5b94846655d46139558887dafea151ddfe88a3459df176ada64ed84a2bbab8c4e39786d25ffbcac62b2f2bb1f78f9befb5a3f445b8f29e9e8dceecacf6b96bc7161a9af486bad90922f923c49df37e8aa91870643b672070a75c4572e98a307438570d2422b941a54dd3e6cd5ef96be208697bb583281212f9c31a2d3bf011829c238960d3b0d98eb0240112e6db94d64bb0573ac2afa073be535f98b97cb8c7f617fbc572ef935cc3f9feedaa31ad031c18b412eed4460c1f38402c298f233d74217a379413f79536af83ae986934e5033ea11a20df1bb64c8a41ae51cfdbfba54c4acf34256acbade270a51e05e5930b17f8035f822083fe0744a8199c3bffe01c250a6628edf74cb3744ed63ba96d60a35afbf2124a5904fa1a6042f9bddf15a9e77698d6a30e14b645a41fcc2257b82f2e67b6eee1c2c0f48e02f82224fa1dcbd10a225100f9a0b2a8b844d7ed19744c45b4b3df1985dba43b2ba23e9f28f4f52913dfc4fd65834a50ad56ccca8462902a0845918b2e0f5d256838d74a3c0964a271f64ae1998ccea5bc906305a4ae276ec6488f4cc3f6848a70622a04b7d50c6656e5ca695bd99cb496200b016a938ebe0ccc9097a0d39f46f41259b0d61496e07bbcecabae5b4faed6b370fd974c1e6bafaa9add664a42367ddc07c05493912bb7eefa42ad73e208d75ecb0909efc779bab99ff61c5d9d8f65154d868efee81048b9a1fc26ecd94d54f2c172e04abc362bcdea7115fb1e6c4eea8258d68f2525ca0f5264d092097a44d43d73732a96779bc5b529e89dae383ee9a5575c33af3c4499eb13b0439ca0ed501ef5806e0fd6ca8642792be4ee5052ea66fc8842cc093984bd957c4bc359d68c486e090ba9c65c06268823a152025787ec03e554701e606da482330a68cf3a14e7870d0ed416241a24c35d2dc752ede14268792e0128d885c9fd1a9c79da46dc36b6f2845bf92c86156f845559913035c94230c35f5895d8e68e5c38ddeda5b819bb1cca586315f0e5845de52c7a24d4c4b179a3df94af2b95e28ad75dc16a2b539110c2744e6f069bc26183a11e87889b73009658def8e2fc88e3d49cc8106c244b5b7f9621da7cc90d45060dda8fe6149e92136616aa52bcf46bf704ee66292b134f7df068fcc060ec27fdd43cafe481c11051d83c172af838c316c2b0471ce2728d56ed3bb4dbe1b3598b62326e7a44c61350c47167f8de78691ea48d920baa85b8d523fae6648e451c3f8c57c2ad7df1b50e0a573063df06cba6ac3fea8c6020ec3eab0865b84f1a7ac1c4126258edae0e8095bb8d8895216ed72b67924658d502fd9941205db5202d36fba86365b289e9501fec182eb8311151df57bb6dd7dbe48d7487b0e26a888a0ddede09d9d6e444b8e80e63569e9a8bb150332219dfb3c454128adeb30198dbc5342d87a420ed22376678639179187271b713d69238b2ea1bf7366cebfbbab0e60d36df71f997f3fa7d608d68b62b1ffe4350e82bffcc7fa20c2cc2ac51da2b9fd67c9fac2be410eb390e1ea959ce6c627763ae73fbe7a343dec327b9699151dd91c6f14613fec5b920c15e3440238c067c60a85b31addb419201e129e6bfe9e1e77a46dcdd15a02f198eeed70719296a31b31c71a79e22bcb7eb38cff7ea4c4d929d5c22d16f1e2cc35eef91323ba0572d1a90c76326b824573f34a0de3bd5b3824e766d829459e202a49a49f8607afa93e05f1be3fd9f25a3c81a325d5287ecb163a2036ec53a60587cd671a8fe843d9e97c18951a4a6112fd2b0229848f07a0e25c2f66e4982e7773a0f110f2d0f0696ba132b35b5e5b4c42c105473578184646a4ee80e74f75823ae9f593b71e99d24f53c6420929555568a8d96cbc6c058e3c15f3b2352790866be0b5cfc61ba726d06e1f3197b3cf9298e971059711863fb03e22284df429014201216bbf08b52b2e817d4073fef47a58e4b2110467ee42518cefe6c9c3236fa31c207647908f215935e67947dc85b6df2f1576860517e3562edcad932b54abd482af1d49fe729be5392e3950d254ec358e7399e593796864def49da1d15d02955f962d5acc21211c9c827e34c3593f6069355dad54a65e40a2e88455ec70c52869aabdf105d873c1a164e1caf3012a2e0a319748b67626269fb7d8cc3faf23c998998ec2d99f2726a3ccb5237cc24abcfab959230e2de91291c5d9b4712d12c88d7127e2abbc2b406c76930096cff81af83b8a373dd8064975ce570ccc0ad1e92345d80106ffea4d0c7337a7936b074a73dde62fb4c87d03cb3e475d516d4aee6fc606a735e18b9c2b4a9e8593d9edc2449de4162a643b5a756da7a152589d2f4899e45fcae532ad26c7fc3ece1bbba4e7de3a9803d849fcb1658b6acd16b497fdc8e4cd5de3cf52c3a9e2af90dd2b959fe8fcef97a27c87b8a2829359b7919c2b1e7ee4900436a1c5e074da9ebe45241d5b1a7f49b8f254eb25bd5761ca2fa3675efa5e5fb76a6bd09b41e20b0f89be55b016a14380092eefc136a90c6e4c21c7409f00a47b82885ff40ca10e97e446dd47c005e0f1092fc9d79d1e3494dd1fe279b455b6ffd14934673dd00c0f3d4466130478cc5c81e163d274f508f4a1dc15d87415429258d10be8bd1d0583c07344ecf19c08ad8123d0dd0cd0ddf3f71426ef07bcc2e7bbf9e6bc43f5453ee168aa04dda523a8727d3bf88e66a191f95da66defcc40bd8773b17773a874bf927cdb33784c935ccd1a686cb0ec6aa6e9cc1dd539e4336fee89fe94dc4eb90c38d8318bd8533a8400e04e7736ebe6704f83f2a078e2d48fe0ff1f2114a46917cfae7f2220d4c74742475671ae18c43890e4261898bbaa02933e79fcad97ae7505a1d926586d00c1e0fe0239716fff32092dd99a43dd5ce0482040fb7b8e437d8a6e2e5d80c1d9ca7481547fd63253d00bb780d07855e72fb5826826746222170ac4c3c5674f14e031e56cc7d533bcc3dcedfb88d3a6dd37e6fc46e1e6575ba9f0a431112fdbc5e2ed7c6c4cb93b6fcc48fc6071e080c5e34df202d2f28822efea738c01551fada03d1c993d7a6dea9f93030a7da4a794aa1656d8094be99c3c5a31bbf624bd525fd170e85fdd798cb95d64fd5e16ae74996189b26bbe0460bf245fea955f16f101d717956a8211c2481b1612bf4fdb9f7427614218f3dd03a5d77d1fa70baa58c6e0b9fdc3894fec386fbf6ad973cc32179158616b4135bdcb8255a814a7a861175eeb1a9de3a026cda78f8aa7c1722e12c441b5c335684b5dce9223156cbbc71953a32681eda7312b811869011aaf802a75130ae331df7c1a2a97215976f8298c0c3c0c46c3279dde10fbffad1215f0bd71af41f491a5988f6d76923b8680e4f413124f9b1c1bf78085e40672fd45ccd7a6561a7ae1650c56d3593b8ceace4f5f8d1d410f1a9c6c08460dc308f893e778d59be9760cc908bff33aaa807fb43cae52d63d6098044be75c665e47e4088bdb56656e442ac5465b359c2356436880cf9bb10101ec4dc51619013adde01ba4763883450b0a49003f3ffffffffffffffffffbd5b56fdff8770832d444ad0fe7fdf87cecccc94cbc19d1ab881510000000020b6d6da64f451085c087a08b95fa6fc9d41a8d99599a79b33e68b20b6143f212de678a9b80e3a0241e9dc7a4e6838595d401464f234c79f4cf1fd0fc9276586e7123595ecfba138212cbc6649e944b741471fda64ad31f4464f4249f3a18f5933c60f9ff3beb907f63596a71ce7c4f34b0f6cbc5f5a959744678bd09107ca5d3573ea582133eac0837a51e6579e2449cef5183aee80e96f7cfbcb9e543c23222264fc18af800e3be87bd2992425130b4b9ad151077dc3b727d13b74ac8a0e9d5bc84c6bd95573df3187520a0fd50de39f33d421073c955f9818a43c961e07452bdbdc52060ecfa7cce932b386d4f90dc99fd44e3a2d6e70a91437101a69371555d626a60d6a775af093e2075531061d6cc845364f356b4305690d8db977a6ec93839fac1a4e626d27cb2afa9a7d1a94ba98e32649c3a524a2a13dd1f82afbce906a0e9a5df7a4986f723acc7090ec24ff9ce886d03aca50cc54572b0b1d9db21d6450aafdfa63c5c62057c718b63c96623aeff3f325066faca257bc4f493bf7a0230cfb47cb6b673972410603a6335a29aa65c68c1ba1e30b9d94be498c91d9734c5ef0cdc369fad02587eebad0c7b614271de692965cb834455f4bf246ef0b6fe14b0dd3b9be374387166e7993e44bce5bd091056be464cdcfd9cb4aaa030b6cc9ab4a9ca8e1044dc7154e62ec7f4c265983e71d56f0e42de14e2c530361e4e03b3062a33510802d745421938b0a96f44ffa930e2ab8a2bf6d35d561af18e6131a677c8d334cc7148c0cdb8e7e62b472930e291473793ad7dc7f231f143aa2909c54b2b2f1ab63eb8042d973578a444f06b99e70ea253dbd54992c7b3a9cd06ca610e9edcd7cbda309a7b7d6ec6f98a9e990d16f444448d0c1042546335b87ef8a62e958821aa35729ae6c8c717728e1a924d65df2e6fc737624a1fe8ed9bcbf63786c1d4828575c357379d09c3c51e838c21a5b41f4a3fc3f5a2c74186197f6f43bd73abdf4081d45e062c6b2f58caf496b27741081298fe32745ff303bc2a16308dc9410fb66f6c935a6840e21bcfdf91a7b9257399a01303000c605c0b0001815008302604c400130e80802a76977528a960e2058d13296e73771a337bfe8fbe47acf9d5c4c0cfaa21cdae6672ab580a3178b5df4978eb1bb2be3e04575579b264613e6627c17c5d8a45d255aaf9ca42e6c31fd30b569a466930b3c3b5a3871556fe36402072e7c4b935db54a9cc0718bc33a436c9262cedac601872dfc4cb7b897f43efee4038e5a70ef25e9a614ef5427b4c892a68f1db4cea57c2d70cce2fbae8fb99294e4cce00d0e593c51315a6c4de5eb6d061cb1b8e2c9a925f387493761e1645cfebb09c72bf46457d94aad5103e38ad2735aec708d12ba1bc901472b28eb29f91c72c3a5450c3268989170b0220d25e694f3f33568dc8000042800c604c2b8517ec0b10a2c5f9b770c8f631171a8e24cd7274e5f7dbc0a071ca9a03fc4d875f77f8911072aca1226e694ca633aa1720aab4326fdfa8d297f70071ca6a873cd7665553c0f9b1c709402cb5c62a6b875ab511ae120c51eb26e3a45aebde475c0318a3c63cea51b63172d15051fb442be854d3e65c2110a63493145ccefdb3bc6010afca4d113a34f3ad1300e3e29230b1c9f683dbadfc74c580f3d0f383c61c5c9713a79ee6ba9130936917bf93cebcf8713a71863e5bd93dc44bac943f3d2e33d2e9a783647d924a7d51245ce843ef5c9a492ed9844c5c49e7939e6905d97cfbb84fa292f69eada67fa705862f16e8f93b3c4764da9845762f5713473f05051e20d277bae7c38dfbf580d46c03109c37e534e71242f278b248ec14b5ba39364be2712cdba54e88ef1f0f80cfa060f3820b17ababce9fb7ef3da237af98b2be6edd79a3b42934c4286d7d41dd3a711e670927c5be173e379463419b296f745db37bf88a2437b58cd923ba744116f7caaecedbde12a9588a3d2e66e265a320922a2b6a8dd376163cc6139c431e794bf3ed77c9a4a3144b31adee2f474d46cf21c85b0c409f39fbace924c08915ed68a76b2e5133bb4038e41acc15b3cee09759b2782305656d44ace1d4d9c0361e6f4ce75e241da5340283627adafc5dcf8f94321530abb8cfd90ac5f5227cf664655fa905e124e8a93beabbaf960fe923537b5f764ce1eda4f9653ceaf269660e9611d950a2626c5886cf3c066138b19c2e366af38f05059107d1337af70d61d923a6ed292b0d901c9fb0c52519d3374eac05698a99e4bef490d5070d0618bb16f3e5a7e8dcfcce10b77c9d35d2a07b6e4c92488a59057171868e08883c9d5645bd56cd99385c325e529a6cc29379f7d8339bac73bb63ea624dd90d4a355d3f1a477c336645a267ad8f53831772309071b98b698530608ca8001c71a4a6ba2ae1f9dbbc4510dc456f2749529e652c491065bb39d244d7e23227e080e34f425e7e7ae25d9fec071865ae33003ad7194c193442e736bd413ff1a7090a1d964e2ce9a94a42439c680cd66b72bcfc9f76f0e31d46fbee92ea7ab54e408c3c9b249c1cfcb247080810c2f7b9673f162b638be907ec969e27ec9b87a461cc0e10576237457a7fc332ae0e882714bbc24b35a0a38b8708d7c5f957082cb47cfb185533383430ba9d6028e2c9c15b452fcee88d53b2222c281856b83758ca9223774d82be0b882d6f1e43317bb4b1a0e2b605a1512ad563e4ceac69d1cc60d9a040168030715ead7af8fbf6d1f56714c018d52498ecb123fdd81400c38a460cef9dcc1a460beb9430247149abace2586bcb44a2714f0cbbfa9b59aff5de478427a67ed196fd72d7d0a87136ad32a133f69b89e3047134ad98d1afab93dd2e0399890b8a2172e544c3b8b8f9cd1356e20227246d748411826e05842b6a13f6b4a48bff33894805db624e6f877b09b23099d7815cf54450e249455f1d1b19bc494e58888c81964d40841b2010d701ca197924bac67c734741c4668a62bef4d10b924ee45e8d267b71ce3d4e59939024238cd736b38d138e90c4299329b89339a7cdff20f2068be6ba1699526a30263c4466b60021ebfa8d37d9fbadb9bbce60b53e85a5cc9af49776378f4a253bdb7123635d5056fe0c18b66ece39f96490d3c7671b9d65c67738b1aed1c78e8c237b9644be3fb33969582472ed238a5b19673e6c75286072ebc926c2c6d9ccee2fe2dcc9692e789f789b9d5168b9f9826887a74ebce0e3c6a618a4f9a3a26d195b3d0c27c36b329c518ee7b99055b62961a2fe12b798e872c985c37135f57f7658ac5219ba41df5dc9d656c82072c4cd27ab66dfdacee9a577059db4ecedf5d79aa2078b8e2d416a44b125a2c45b115c54e93e2d3523789c92778b04273cf9331df3ff058c57d31469d4bd32b5951c55297379359a63df62d78a422ff2ee9cd3749674950b19f209a935e97776b1ea7c83d938955b91e6e2f5318f39db01ecbc2aac44a8156a8d4174ada8314f6aaca57a897a6d8f11845b211dabbe525a99f1ea238639f18f386d0b03423c12314ce7895d0b153eb78d2031455d6c87ffde613afc7aeccfe1572137b78a2b2cb6c6225ef2ed33a91cde6c5934c8c3db33961a66bab9accfc269ec726caf7143bbbc4c81c4d4d3c9ea4366ef82d396399e82b5dc9ae9d39c3a731a1e76b3d13d4eb347415785c624bf1e50493ba24bb6b89632e493b764c5ece984a58e91e9b438bef47ee41896d42a2ccbb2f5e8a4f62cd50af39caa204ef482261e73d5bc674b72113892ae577934e8cffbd1448dcbfef9937919bae7b44a75252a65f9ef0e97284bed27541356c574e7a34e28d5e5ea33571fa3f23f0bcbaaab9f3788aba7b2c02cbc1840f53cf4311dc546bc5b9ee91087f5ae2d3e6af75571141fda5c95f512dc68a52e07188dae424e8b5897c3addc31067cf8a9b4df84f150b781422ef98a3497f26a6aa4c08536c596ac87862f5c92012635cdc9568a779b5204ee72721e2a9ecc2e738f0088497e2965dea71ae7540f8f139d6a418268f3f24229fa4d7c2927cd248063cfc5045b5e0f37f6dd1317d2849f28987c9101f0af52674ea16b5f5128f3d7c27678e692c86d718d4c353a3b5169fa5bd4e8f3c249aed27b92b75fb969ce0468f8101119132fec68d1ee3d4f0c0836b72cea112357982642307df81323ceee08ecc59b84971a2353b78d943594ec916c38f75385708bd12336cf23c232222367e8ca40c0b28c1830e4ea5249e6ebadd9fcb1c4a31e5927831c9e391cac1fd641557262bfb661c7673994f392599af824352db7cb63f4b2f197c439d9d73528b2ae7b9e28647ea524eae2fa13ddf06c5d3c79453528c9c341bdee8df2badaef6d2c0630d27dfcd9f767552e7a941d3312909955e1afc6c275571a4eb4a424392187d5e36be33647d498cfbea1537ff13339843744af9728e7a97191111b141c3cb10a30c9fe87a1e25a78cf4c95086b8d70b9ba26f163dc680ee8f6b3e49deed8cdb10839a626c69f88a7f3615333cc2f0ed7e499eb6f300033eda3b56766a52d71e5f389aa855d9564ba8288f8894c0c30b09677d557a7a74a130d97c96c2ebfc9f2af0e04249628f2dfc39e4baa57831dec90e786821cfbb2c666379642129bf7c478ba515ab49820716b60e2725e14a242aaf572836d73acef2e8e7663dacd0a695209627a7517b150e1fd38f5992a9606713c39a9f78ec7b32f098029dc3a373ca165ae54a81aaabd37892690ad545e1ef3ca5312d55a84f43e1ac6c255e79b856bd4fd8d7466cd4a33ad3ede184dc6be34cc6b4c5e767e0d184763baf2473fcd6916ce0c18454b6cd2c622c87d3630956dfd5bccaa7890f47ca00c34309c6bdfbcda3191e49d03e36e531cb4d1a9e4186181e4870ec5bcaf2342cb34c81c711d6aad614b47264c7d00f3c8c70f6aebeceb28e16a14711ac8becfa2031b1a577c08308cae6701b4fded94fa9118f21a0ad31c7b23dae93030f21f8de6252fa9c9b728af108c2b993c57c5b3629d7914044c46b58c00308a5b39213836e6eaec68f31469bd1f18b4acaf0a43945e5421dbeb852a512fbcb2ffc676fd4e003dad18be3a3f46d8d8617977d4aad50a9a4b4cb2e8aa3ee2932fd06f14c176cbcbce1d51596d50bc02d3a72a16b6735f13f870e968f8888dca00317c538979ae544c91063c446036cb0831d68a0e3166619abac3c42804692b48808046e88d1354cf08b0e5b909bd2fd5d3332848e5af862495cc5757a4a41072d6ead246bcc9a13aea959147387193fb1b54cf111111132be041db248ec8eb2124fd74c93a02316b7798a9fce5fd3f968023034108609c0c0400742d0018bdd040d954f88efba348d327ee4068d0f74bc22f7d8e9a135633acf97e18ac4d01f53572be5143b15e86885b9fc843d317cf9f437837f1b1ae860c5a3ba163495a7cf33780fbc18354cb0828e55e8a925a215b3fbb8a78a74e2642a54cca28300197f6303222210c841d7a831810984114652c60d3a5261b418472a4474ec319a060c3a5091e707d5fdfe924a2ea151c30c1a376809749c42af2b0fc976d3ea0c051da650c2ece2bc7df60c33ce28e3041da52806abac7997d92de66df41834ce30a3060a40d0820e5250c2d4daf625f5d3cc0331e81805b22e57ae5e296a567dd0218ae3ed0885f1768082783b3e51783b3c91bbd9d189528eaf29d2a2b46309278caf9cbaacaeaf6cd944f5e995c435b54f5a13478dd976f499681265429397acec132ad7fb9828be74a2636577ae7889c44bb5b72331f73359a2f36092f8ee5c893bdde5c50cfaddf55282f5d4304b4b73f7c1495017e64c2a75558b9524fc0d729e3f998612bb487c7942a7b87976163c90f8f7626e93bcec275a1e41ea45137373faef891d716957de9bc86cd1248dc8db4275d474e1e432462426e589b7d86f62d28bd0bcfae52a4bd48a1f45acd3f1b695622fd224114dac6ecefa14e5c4b90311a6cf1233b7d253cfc921fe0cba31eaa456551243b0e9eef79aecbff34921ce90cb22e351b644b183105abc967cbad7f5bcb68670ec3b646c75e8901782f64daf41da4af09411a294713c2c3a675fb44106d1da87c9b953ee63ae111aaf03316c900122085736deca49fa927d8f8004223926979e186df3a402a2c850f2279352b89de41ff28b8c572eba4983ed07b4b65297897d1f4889f9c049bc874c623d6c12e7a18d4f41cdc35d56fb232200c1c3e952dd6ac6b6545c41ee8009561b346a3b06103b20fb1d2e7e8afdfb3175e022daf3644ad1ba3f74a866dd4e3cb2937b2073d0625ab64fb10391c3639ff9a4b3ec92aa8ac32775b62710461962f448054444c6008183b3a2e7a637d112276fe8b5dcf7b5e3c9395940dc9018db2a899bd939a7491b1e17bb960e9ab7cb076183a749eef4d81b9632a606c81aa8cdd59ca4a827859e80a8a1994f926c6ac64a1f4b43b27ac7f0615e3ca95a021034945a2c5692b6cc5f1f12809c813fb104d7d5be8be903628664b9301e5a2f4c4c0840ca608cf1e32759a5d28da605206470c5243a57d6f537f5460d3ea0029031747fc9b266b014a6f34fcc000188184ae1a12759920609439f4eda8f93df0440c0705ab63329c224f1c232422329a3c7681a65d400f982a1f5dd2cacc4a42919a9212202817731c628010840bcf058c4549a1e9fdde488880804c048034817b44d2776b835cd9b0f170cbae69ab72471ddf35b38f4eaecbea66841f110a7396747959759504ff0b7247b070bf5dd09db1f07b942add93b3d25a13a6c6a8547be2fc9d6651592adf533fa784e9ea2c2d9c47896e1bb26c617640a49b90d009182df277796b079a2590b128543738957e6c550fb0181427272b865b089c84d02f28472bf2671a7774caae384728ebfcde871f2c705d2844d3013b3987cdfe14e1026949dd369964ce6f9264bf0fd4c4c255adde5bf94f0a6fa67099ea6634e20494836d13f4bfaae66bdf8000409c87de64a82b4204740adad14801881b316a4089bb52044d0ac6dc00b408690590b03102194d68204e1a9ede4a104ffe4bd830061958e13194c94cede7e91663f2948dbef8bc2a36a0015a3ea648d9116638a7de0a317c634a6b3a7b932c9072fba8aabf4e1bd3eda3618c30c1b5f83022af8d805bab71ba7a5f772525dd09dfb1f3d76fe86fe23172531a624327d6c13c31111111a5d63e40317ed46d7eec5ac87746fe1962473c9c3faa61a66d0a8c0872dd0b308b58fb615aa05f93edd2dedbac9f31fb4386ed9a7c7ec708dd1c72cd8fe4bd1c4c897b5d8882ca8bd287faf8b00031fb13036964ddba59ff5cb2766f873e003168f478da917322f317dbc629317ddbcae69e0c315e6e66af1e89d5660314f3ea664a1b6555658d99b2a4929df7fa7463e56616d4e497ce4f2758c091faad04b6af5a0e9c6e492f3918abcfa7aa72f273c85668cdca8c104c018b1d11af84085796de22ef6272bb9fe8f5318f6c4503fe39be2d43526663d61d5522f05efdfff919fd3a4ad5bf0410a734a7a97aa7ef1931d057f312fcc66541406b3923e5fe593a45086e2fb8c972eb398850a41717e13c346b91cef84ec13df6c9e8952d2577bc813bd98c64d6b279b707527aede7c82775bbceb55051f9c4032a7d0953973aefd37a125bbc814f9cbf16902bff7cda46e6e1fe647262aa93d83daa5ca92b60f4cb8e1254ab6909d64f38f4b14adb5c46d417f262d9805d554a2926b6c63f6e52e4951820c53e26d98b54dc11ef99804de29ebd5d77a92a247021f92583f9c9025688592c42812ed871253ce15df437a90a823aa0674e0e3116f5c92834d4e07cb6147fc31e9a524a51593d03582933c42e6d7c38804cb113a9225a798e7459833c50d7b523cb794fd5084926a03129176927b34de926852ff031174775ece9ca1daaf398479fa9e4e94cc5b2dbb80051af830445269dae933fa75550873a7da0ecb6946f61a34f68310fb973023e2ed9a3355c1c7201235c5f6d3d8eeb9e605c0d8401837caa8c148096e8c51031b4f82197c08c250ea1b25e5b5f38a2319f808c46b3935b7fba2a221053e0061ca206197acb283f6079324bf8a07ab0a91dd0f068938f9c4bcf33fe13e90e2e15f2565d7b81d1ff2246dfc2739cc49af7bd02bc9953b69ee4952f2a18763b0face375b62564a1ea84cafe8cd1353031b343ef04099ac54b8182abd7746c078316a98e0071f772874b47039998da99b7cd8218b29be2693d2b689be19373cf05187c326a934d2426697f8063ee8b09ea749498cce93671b111129a36d50811978df28410d1a23f898839d538449c2e7d9faff21072afdf58a664807953ee2509657b6ad98b53f9d02160883021648defb8c12e4e03b60820f386c49ad8f375c49fd704396d48f36144ef80f29b1311b9d0f36ace1b36af4a73c97b386c3de758a77cfa19d440de6f46af269c5794f5e0e3ed290b954d07829e9a53a1a12d3bfc4a2f37f7b75838f33b4bd2f2a37e94950cddf0634ccb8911f66a8c41445324f33c9979601ebdafcd12b47b5b07d9021978850b1923ac12e36f818c3a6f79349ecf7ce9ffc10c3e92bc6287e72b8953fc2b0a68ebb78a63b967319e800181a0823073f830000e1030ceb59700b27c9f225957ca134274b9a58fe767fd90f2f3c1f5e553178d224653ebaa0cfdfc95e797e70c17482e4a624790a0d1b6d63021f5b48ca3c39ed82eb98a43ff8d0c236d5f1195e7cc5c4f8e0230bdee79974d29a246df8b060f6ab49295e5f3ac31e7c5ce1bccced5e9e8dd1352ef06185f3669492f8dc25f455289b75e6149fe4ffa8f9a0c2fa721ea332be07b5cff89842953c8a76b854abdf48e1182b4613cc2b33ff128542a553fee497fd52a1f094aba593528f4ff204a72d59ef55d809fc6dd7eafb07d97b75f0d184dd543e9824ed4b2735f9608271c43f5c92a3be537e09c5084f93e4d86db96b302e1006191f4a28f5a759d3a8a175c92494a327f5ef604936cf91e0863a31c36664d2944237f838c239f8bba678ef4c77a1313e8c906fa70e1a4efe68f129423f6e5bb952b892e7fd204262a513a37d6b794eeac71078cd31c513d7da946118669c8f0b5062401503aa50418002ca60003560b1019500bf61a306350810801c18068000e0868d1a90600001f818740d6250468fc121001b353a4e0000a3c17100259818376a8cd81883068d8e0324e10c321c0937dec611de06669041c6936180031821076738194f46010e500413e3c61823369a0826c60d1b88910cc1c4b8919841460d68d0e83880107273ed8f41ee54d41cd95235101121e36bd0b08118098de4fdcfb0212262a30c316ed4f831c438830c33dc030708c2929b5bae2c3c0010da4ed2e65b29493c511ff919b40944446c84fc028bae1a1082105ff4962d6236555cdf2ea417675cbc38977b6d5f8aef9a1cb20b3eaebe9e2c2597d81b5d94a35dce294c9c2bf14272b18dc8679a4aa33148b8b04f8ed182a6af9ebd426e71a625b17d2e346cbc436cd1c7897271163fa67412520bcc2a8e859aa4e4ce3008a145c153d20d7daa9f5313320badef924915474bf2284416e6b9f5a5cf3649da2d2416797429ab98ef4af82c10028ba5b5739ed87ad7db5ec17db8ce9a4e2ae1f27785bb9f7652c63a45f55c20a41545ac285bfe9e7a8c492cbd576185f4be4525898856159b6c26a4b4e4eb889c8a84347933cbf3329ee5200415c7fc1f2bc7f360d29f21a728e710d1e062ed235988294e31e6601e7f722cbb21a5f0af4e0c8dfda12bd51a21a4d02b468fd6e73966bde020641494689dbe664e88c9091105361637bff9777d4ba14073d4c6592e692ba311cf40082876a91ecf8f8bf23a6720e413fe499e5c3d4293fc7720c4135766d5003c6feae74a79c310e844f9ab3c2c8359da9e704295cb6d19992d87bf89d36436c983099ae4734d585137c5c7fc31d4d24c249c2464ae1b1bf14e8209effb3e34fa5af2982f516b4c3713d43c75b2442e568216ad1af0f9a449feb552bede0b42285159ac1a1032892ae6ab95248d2392d8e65d273c8c4491c133543cbe9be790c0ea3ac774f268c926fd0856274e56eda90c1b3ba2af94fd5ea6e7aa6a232c212b74e757ae94828c70ff842d7df54df7d52234417c43bd7f3ee5a408f76392bae83a5bfb242239d604d589280411cbff6f8ccb38493e7a8835767d253939fd24c510ff99145464ab422474095d626849e61f11c21ca3694a425d5e9720d1201c0d1d4c743f854ba26484084293c2c41d8bafa9e3099d11120883054b8d0e37100288cb573327cde8a7fffe81efdc565749084ff218e287735ad4ca41c53eed839b2a3bcfa53c1f3e13523c5fd6a718c3903da05129e59f12ddaad4103d6096f73b9ca4663ba7192179783ee74b391b2f5a0a6320040f9b79658fcb4e7ef8eed027e1265be27b2273217620b34efdefea7b366f444404022175b044db9d280d3971628f1181103a24ee315648bb431032072c787c4b09f6336fcbe1334d75294d2d765be2c027b13ac9ae7be13e628cd8a0510687c041ef4a5520e40dd8a5bc2764948c888894000436ca6041881b96d5cbee781f99e3a50420a811821d84b4c1b393cd366830f3fc8e8888bc18216cc0d7c3a5ef3fa4b2640df94dc645bddfb27886a8417dcd65526d07ebd8a7417d13890e52d12431091ab84e99133678863376d3e43449539731439b6c3b642f195206e32243c3bfff450f86904119f314d77a3d6de88c8ce1f9bb4fa984f4e9af4644446adcb011220634ad43938b67dc7a2161f8bc4cea6cf564100206dcb52d5bee289644932f30f6b1b57fb12a068b1736adbaa069215c78e4737a09da9a25ee2d509e223a9a925d496242b470692159c8b4102c2c15afa1be3b461b3be40ad966f824479ba6931262856ad3fce46f8e65a249158c1699d9a4b230aba171a38619362610428527a5bad77fc653e74c908190296016112555d692c839440a5dcaafa251ea3e864c02215138f5e282e7cc506b9f111111287cf24928fd36134ecc9e60ac4ed29a7b2ec40906db0f93c6aa3bfba58190262072e973d84a7f8d1b04214cf8fee2db5cdfbb5bb68435a595323157d8e85b88128e76a7615e93e6d5ee1333ca4842929c4992a5b14768a420040968744f62eac58c3f5ec811f65417638efe492a66428cf0884b869da4a52d07356e94f121082942176325a3fcd249c19c400811125b4a3c598ec828e19021501a5503428460d473ff91cc466ed828430c1191158404e10f5f27e57c6804025f08010225b4bee9e635e9d0b801f28b53eb753d2797999c474444920d80200c1b6fa3c5186302c50601e20bcc63eae47a627799d404407ac1a7ece5966ffe4bbc6a8871684800841785cb9b7f82892771d218c3c6034076614e9790fccffc194a7461e7ed72ff0f15d6aa5c98f7328c85e8a6b8102ed6d571ebf041cde202b9c549122dc3dc648870d516c6293947fab5a48c32406a91244666e712f33ecf474068419da417ba52d04c29194066f154ca1f2c89c15fad97052227a6a709b76c1bc5c2cea81a50253551624e0e5dc932d2011058e497f6a52fbf39f4e51525b14c405cb148c7a7e7f8165aabe4cbb8410802c0099056a81155b1e28ca8ce0059451a5135c00520aa2023905470212a1054e03a16a399def520a738735b788b9ed6e43f013105b79d4e123a5512e3db23222220a5704f948b17c326c55b629dfeb7c92e52011945aa1bca92756a4b72c98888c88d1a9c616306fe23159000882812a7e334cbf667fe7028dc374dcd9a44490b2e0828b2f08c39790efff7f44801f984a1629a5c391c887116c413e67bddf47b72b8b0f10e8074c2d02e4963507bedec73e230ad95724b4e8cc53661cb678a9db724a9f38068425bfbcc57b2b8893154c30c1a5f861863942186880804429009656bee6347e910128ed078104cd8219aad53c7cdb84103e41276cb6a75a8ce923a1982302c919d6c41ec93fdc56a466cb40618a412c7e67ab95f889e8f8350e2603d9119a166af9621c6054026e1bef6ca956fb81411104998fce4f02973874e13a3010190482825a69f684e8d695e482484668ad115e6349f8ff02b66c8101a11111b618800c411b4c6dcf93245b1f6f6133340d008272e7c9fecb6d9be61c4d1fe27896b4bb6ba8853ae0a8d76512a68a608439da8feff6a1da1264237edf0a2a5cf0004116fe5a634e99b53867b883b87750188d5a884d1229150281007828150180c0002a2bd0a831108204040220fc7c231b970b6d90114800140322052482622281a161c1a1a8985a2d048180e05c3a000180c0a8f84501cc6f12858f7067d71f8c39626e069d788b0f1f88121921e747e90f0dfccb66af763c091ff8f8a523561ef70feceef04ec375253b6884288004428a932a6f3ec4a060c0403555cb329a18974d3905113bedf5b3034029e25064a71867c0ed6dfff1d78a21839bf95e845aa82a367a9ee0d5af767f9887829c7be65805f8783d26e1cc45e2448cb0cf20ce40f11c4a2868c698b58fe17efcd8337e0447b9871d38084042eac00bae3a5c4be610eb3c55343ff53d151557ff30937e69c84a73a33413fea163e519931b7520e2f3f89b0be3e30cf1f95db54acab6f3f6efa941fd1815e415907847357aa190b3dad0a7387e8dfb881c3de21f26b8453b0ff3d2d0ccd1cf35877810cabc5ed3e18c637a771bcba2352fdaf68273433e7d1a04449cf334c9b537f50a1dbb021c932ccb83657caaacf92facd74d539750290318e43d49d61301e8ab5027f9d86d274158552b654186aae4a320544a0df7826231ed053fe73cbeefdb87bc49e6681e9356ee82f47e81bbc709faa18da2203e0365c7b4dbdce035b5b0163cc5efbedd94713e7390c06b0ee72751707d062ef6b6532724487415ec50e2dcb2c14a463ce9abd6cd169957f37ea440ae12cb19d6ac0fc60470addee809e8615381be8aefeac5068b109618247417383ed4bbc1972cf1291a9a63c01618b98a46bb0e393ddfd7c85dcde87fc42e944deb73e81f7a9ea45396dc7c654cab92ee9140f3c839e90f70659cd41f8a6706a7a4eaaf88730c2ebbe5d96a99ce2b95a0ac65a94ee18504133196f0cae4f9ecfb2ef770642fa7f992a80e81833bf80e296c7e0084d8f2a8089cfe9a200d10800c41d52636a399f869d1a04a67ad4c65ffdbcbcea2ddaf618c14b8c75f1f3039c7ecb670acf713947459b40eb27affa6d5cf2cad470fd5fa8dff9128539f64a271a93d40308afdc021c6fcb89a731dd99d440c22a370a02a6942de67b65d48dd211a2bd6c323ef02126c970a559fe065c3e1a5e0d5b2475948fc99e604dd908e616863d337fc516bc2061482f579b4717abb01ce2a00e2d7ea56909c8cba9a48de67b5e9d53e0eb0cdd6c081ead89cb226f62b52a5922d2bd013a5660dbc725068a355b73f80a6413976fbf731869a6e96793a38a1e7019e26470f6b4afe367d6048906c15229c77cc8c48762ac018223ad3d065016b34a666054a428cd5f3435fd9dd12cc160f83d9cbe9d141d7b5a3115481aee47bb2973d3108f7be24bf0f6a5c015fde991d11f466f451f09d9c873896e6a869ed3d24c568d0c3d8db8abff4365526bdca85358137e8d057aba2ec90820243f7221eb8d9e053e28e6ab6bf7fbdbe281e657f65b3a12a72ebcbb3ea1407e6964b54533720417610922b9b970d8e8e2c11b1f09f9e6c9c5611f7c9a4f271ab09233d48d01b110aa0d846018df57ce991f3e5389a9bfba80ba0edf1813043d8892f97ac45a6ecbaca029ae7502fda38df851b027e821ccfc1707fa8ad23c83fab242ea6f372a8de7410409199eeb8b846af57bd356d8b9328259558f11f851a90bbe298fd5ac3a74284f8b443e6368d934603db49be5beffc389612172e1762333a51a8cb78a6a32f45534c47d1284f8e32ed9a990119777690a0950d52591a006c36d4a2c4b1ce5a3ed34f72aa5a43029e5a683c5c4a3ca4ebdfb365b34bc4354ce18a0cffc0302f153b51e5d778de143f0ff5d4faa670daa0f4b2d59bdbbb9a91deb4078039f96cd455f1cc6cddc2949cd2eb18200631ffde5a75507f6008aa4284b281f39e3d1f4e541b9c76b35cb16743ff52e1eda5f824a313677cc281df38bc8191c9ebf4e34583d584b3194edacbf39a6c8ea286bc98aebf4bbaf9545c02cf27a9a6b3fce9b02fcf0f71835c1c9102efd95a50a89e3bd8650d59714ca42e089a0ac052275165a8f810f4a8581e03b75baa94321da2496821026d9fd43f3e24a74ee80f9110213c8719d1be7f15c499d10dfa6e2ba47279ce6efe34c2d50b0e8e5081e515385b623cba355be85f6186d1e5223f3a6082aee0de8d4b4502bb83b10c8b312b39392f4658cdb13bdf7a61bd3ad243c21ed8096bba375c4d72e09f04a6077b974987ce85c12f7cb6c61fb79a76cb374d3e7ad5c6ad6bcf7cec6be692bb39bd71fb3616b4bfa9d8e9bfce292c96348d39aea6b0c8afa8fc30fae852411d9363544cbb8fc691fa1a442e9f577ec0f8d27c312fea2c353fe5f85c3afa37307112fd7109c494b75ee45dd0d6e7fd2f1042d42bc95f0b7f3be0237156a82c5f4f39e5db07d5af89a8a41c1e592e2051cdf86946c7711aa94c93cdb1d11a40651afec86699bd2b6663c4d66cdfebeaabb0abcd5b848c49ec67e3a38545f47d4d1ebc38cda6102f64be1edc7b04fbb5886ba12a1029025c1e19c9016e4e9aae07771884199c54d379dbf810441ea808edea4bf064afb85d053dcde54d5aa7628525aabcfed1dceaf7858ab2c7ce6005d202c978b01feb9d96e3afd1055c05106b45850b81ad7c9786acc72e3da8e66312345f3565578f0263428477926fcaee98d386ae30b42f12cc97d5b69aa05a2c72cac1c8124ca2120728930fd5793fe94d90e1b5d6db2129703806864eeaceae2d2641f382460db54a975784c2c11d1895a39d448ca048248bcb3d3297c8ac03d733398337a433604dd356bbc0792470f05e4f91ca30c29c5caa0641c71d718312a315da70b55e3fd1de54b399ac879566c348e98c286eb67d5b556f900965d6926638c91869ba7bb2e953ce2bdf0ab856f4d903a4f19087682de9a981e1598ec265cac7ba53ddc10c57d6e7012938f653c8962c55538022572e2fe3618064f227ad96d6aa93ef555b86b7a9c0173e738fc3a13c10e7e8a3778e71bea76da3a693b231b92204373f186c796d6eeac1e09b13eaa7ded2cac96291f9a3945625a307d3bb8add1159e414990df7a85597fb1fb8d2e27c5ea88dd818f7c210053493cb736725e7d2eb72b8d9ac5519dcd1ff2ad48cae33bd90e0a5851f6af30a41e89e51688b1a8a080cafbb5a82f29f4a0daeb62e7eebc66b14704ffa4c9a50c432203adc739a433f99e136e41f48697b5463cf26a706bef9dc0666c07b4c3e35b830191c3f4aa885ac0305841c8640732226c2f5ff06316f988ab03109d13720c545646d14236453bd7b4ee29f1df40dd646dc7561fe14c0779b0d5b034587f67acbbba44e4679a006987322191fd133aa3eff83b0b6c633df1d967f65d457ff06b0b6f1fe8f7b000cbc914b10757fb404d0cda67a6f2f0051f244154bc565e226da68dd2b044d2918c8dc87d9ed557681987a55e0af82c2d6a3becf6e38d0430b01053e32e752a2815b7caac4aca6a895c0f0adc611f3529d4366efec8ba92882a2f1e13ab999502fe6caa6b93fd9ec0f348e074593d2e645d11ba272f4b87d333e5cbffea0ab3dbc7c4bf2cbdb4722ea73a10cbfe060bcd47e8d3d904827d87b0ccf2019a2bedb16fe9a8c6e39aa32ad52a59eb338a0c570ab5e64b30f1c8e3bb11a524f49b522af11b80f1c72ca9f97dc83140da3a2ac96dfad31835ed4114fbfe384c610b7ac98e5fd4f5d6d148eea1581d6fa8a19c372332c7349ebd41e35c0a492eea531d4afea858a075cc12a69ef90f4edc4872bc17b3cbb73a23454b6182d5a099ba2d4029fea3738a2fc41942f728e8d22ac1f766585732eb135d260c3731f7545c4aedcb996d9280639ba8f2f403c05ce02c04c8157596a149ec5690aa30eab01e6e6579da97e764a700832ac0955e33418d949596ab4033e4cbf312c206ddcf7429a671486d264dd6e37c90c4aa90acfa1fc74980bdab84c57801ff93a1d9c5b5c625e0c468c2465b03f1339a88e080da7eb91cfd742d5fd0c6bea65f890a54d4d4f6ff3e3d8116653253df750b8c43c8b55bcc89b9f1c787a2e3b68278e6837b7931a26e6d094f4b85494ff105a386ec5d2da7efb9f42bc4b60e9e3b755b296ca1650d19a2af0bee91ae247aa05dbfa476ef01cc260cd9199d3452507d6c505db5d0d9deb48b60b570525bdcd1282af8331f4e23c56874d41736792df239bc732aeb293441be383774fc18443b266020c0ad3c006918b4772abcfd18d0ab1b6c1ca01c2afb02aa9b902286ef763dfdabd570076190d352795018179de49d18bb1c0c4c0016a4189a70da27f370e24b8479a482edfe8c10d662a6cf8fe6b03589ce02ddcd11c11182cd1f3276f17927426c594f7b115f529da85c3a9e095122ee5c7c15ad87f1b87419a09a011e4b8ac8b08436ec1ba985b93a14d7be2e85a7c3a20cbbe06e79c5014f8faa503402f9984f909d46651ce23aae47a28ff8a594f011b2d485bc33ebf42ade231d226882c22eb1a9a23b8fe8c407e13260ccf19770dcc65565ed0abf9d55ea72e02a270dda5661931e997f566179b6ab7198f44690d99871781e9d2163e1bb85dfa82f56d125dad9292193002691dd33c381929dea4fb0beb8da0f45be39d01d73755bf75d4dcdbd22ab96964146f431d2f717d70278109c221d47ac68ae0571ba41a5503038ab553bc9ee74ba5e0ab0f7f03c8d14183cc68a1fd3e392e333c380b8f215a8ff7a4a40977da5edb7c04fc7d429dd8fabe18d0effcd6cf836b9fef177cf1431fbef8e6cf520cdaa35a7059b355922e40f2544192138aa823230486a4307ae61981721da0d9983338ae09d5a4d7f8a1f565b9b8666411ed25def838ea6c78ab60c245ca08cca23094aa0623206fa3bbcc0b17fc0391164a755542e0db7b1f87f075abd6c9287149cbff9d4afbe575e758231f733b35cd7ae0c6a8e23a8262be283c36f5a1a39a3cedcc096fa644d64e561ea65c644388b32808829ef6db298e7c5eff06185dfaa6fa8476b473c726f4368dedc108f6ec3d77c52e4f30236a6cce6181f6acdaf713bab87e579362308d6df7b6c5d9d7201555cbcabc42aac5a6abe8a16ef2511e4ad85e175b42e56b46c52e1525e9c6091993142d57ec4828593d66e07c50ab802baeb5d29125b4ae03d1997902505a51204bd915154b3ecf5b26322b75b585e524f97d75fc814de70a4242ca97a1984335ec8fc75b5e55cda232ea0434673f1960e46d191ff94caafba4cec8e8b751f686c15f4cd9d1a559c17cec63f7676632e78eaccefcd8a5c1307ca29cdb3eb58bc5a864e50bd1aab3ef0e340dcb68c14de2340727762e37cbbbdac75fff83d25bd2e700f401ac1985dd4ca2b9ce6f1acb07b72f8cc83f134ae9ddafa94588d6bb3b15a1e0757210c3a52334b883e11b06615b2c4c885eb0f77c96341b17c2829f1fdbc376ad5488e4ba97bc167a0ed99883aaddff5726c3be5bb082b34fe5cf6430f23c49c7053f4b39083b151c82bece6930507a7df30db11c8b8a270c5c107e6e76359304766dc682d51c74f8b013cb5f7435f1b8e7e77bcb64f7a3da04608bd2adc4ec7f5d7fbe8f7e4df35407845a7cb44796d875f26ec9e99fb3ccb9745268cfa51313cb551c5f7bbe5e325165a768e913b9891f554c8703a0c1231113b72fbdb4aa1a4a009f3719734ffe67296eb464f1daa5d85428509741777076de9d95e913b67823a3e0b0b8ff5d9210a28cfb0714e153f97696debebe3a69b6ee93594b99617912fc50a170a56af489079417ff760d67c80da88200ca2a992e45420e817308603ae2c0ee7d59c6755b86b052da6087bbf1b5a1d05419c0f3c1f0130871e1d4c7d5a9fbe2cc62c45b9cf3ccc6b743775f50c1f0d7f9cc4ed7367868a3b9e42cc87bd33b3cba5d29c7ee6777cf561a8868038b04b619917e33b17282b377e3a5a60e7a84f018ecea2e6d9bc4b4d2216388c905305862161fcd56890dcb1a3a818dbb4988b666603ba29b699e2c4fb20050d46edf7801cbfdced3eaa1e070802e02f05a7bba5c9e922f5e9bde84e22eea1ad03593a3796ba9e78bb10a46e412d5f4884c1b0d61eae40271ed83311d8cec0a3de981d151c39bd5e7381cd61f53a6860f119512fe473715e11b65597d559af80a7f217a77badae009758f917975a74831c13a8e0777e5869ba8f2cacb132d39b0c755286ed0fe7e08ecb35574f0a0a3b39dd9e26edcdc79b0c5e1bf0b01a067e9d0b5a6b417bea6ac6c5c237e854e9f48f38a1447d44a9dc80fee7308cc1fba276c6bbc0b1db8e25022b9d9939460489e5aa7461158fde775f69329b01dde4475375c2d9f249de0a60e11f9e5081a915189636a273e5e049fd4d78e93e143583cee8f546825058b48998fa9bb1aaf0ed5519459962ee360e02558e82a0589e1b830f7038bc7a9d5440e1d7b9494c1e9d42b5e9221232e17d71844e2c464ab80fa5e3add8360e76fae025e39cc1f81bddb1f2546007a68e943788c0657091b259ca98bcbeb19eaeeae01f62850999bc5d7d50d76b0261eb2428302cc9e029fd6878a220b4618e614dff239ae8696883ff1b7ae80013ce6cbcdedc8f3d90d0f097ea31b51b2907e007af6a9f9b1396edc89df150001228205c6c2210cf8c733ea3491a23e3094ff9b6d0d80cbdec47993ac2506a89fdef466b56c53402d465b1d5280acece96e0fbb29a0746ae19c571a4f1ddce214f72662d2ee0068140d668d98947642835a010d213674d9e133b16716fead5b7bf998dce77ec3e1ba70757cf8ab12e6dba4061cb93fa579a5fac8fa1bb002f5c953c41269efa9e973f0de14db66f883fa239abd4c703e6558208b39d7ca6dd33037a8f39adec26382495aa69b148ba0be617cbb2e0139d72a61321648583c7e6241844e758c6499c609f54d209b5989c747ef1dd7a391cba65f3c88d2d925a6689d479d6b3175037b26a67375d1ea2cf454939fa105ab51d780e2ade42481b64bf69232a1b7831a80bff776f06fce7830e751e752cdaece050c35b1c97dedd1b48bc44c6716f1e6f1d9db77b512922888189d38791f97ef54c629636624c949c4f1190b2ad6cf809cba4227e35ff3855aa471b8b5051051a2ffe20afa4266780254225a2569d9a6df2443b6661b0ac321e4153d2e196c1dbd0317e23a1bf5bb25697c7177e354c0918b9da0b4a86b87d8113a2735b5b50be67a0dea301f53d149190f6c87d47b8d4822842f3b60b84620f88e01f15294a5b07756aa02f7bb6e3d11ea79a002997f566501d280672f15122fe3ddfe6a6bc6506b65ba511634fadb12fdf89abda99e82cdc3e0e071f75b516ae4e7c57b1384e21f5350b0fe121d722b736fafa88f270f58e8385a30ab4f4f8af815e1bc60ea9d058491f8c9e69c07782301a4f4730a741424a43c35f81aad117fd182c6ce2a7c7c28db61084d41effec4014ebcd79627422cede35e25111373d8299204d27e0057b8c938f1ec4f37ab0a0779baa14a5d09cc499e1aed1a92660cf877480440da749fe9c4fd8b8c3c5259a8f190bd1ec0dfa9cfe471d944a14c552320962e0e77bb6cedfe614d704e7a9181783da1b14e273514fc5dccdb9bcc54ed87cb4b5d4749daa40682e578ed7bc38228535bbbbc691d5952631253856e8d50212af80b169911172fa45b5ef562c10813ba9a943cf93c72f0d42fcc0af4daa2d7104a58735cfd3bdf7d362103ee1d6ed15b79d12c62fc374a2825b51fceecd18f3ff14f21ee8731e85834274ad97a49445fc1d114a4f129d2a9f4b5586d1cd5a846680b5e84af5dfaf548b9d66ac86a909c9e32f3010a4d7e907e66ddf0b1641bc2a19b4d88430478aa6c82a9bb48da9c0d6e74ca14a2321d35b30c088db2e76dc3107227ccc74770a40e4dd21bdbd087a02706f20a1a91dee731170f20f2642ac912ceb4424c491f6a192184db263727188c143e528186ac8edb025392648fa0c4a1d4f8c36e2f85ee119fe1a0932e864c5e9465b72a1acb91c6dd90800ad0fd3ecc2cbc7159b1f7d77f8476f9bb00c590be8f928084c1240e267593e53aa0d7e855000f539a4f821fb88825f9407ed012ad6aa2cf3bce69fbf9c7a3ab93ceed4ccf5e0e6954a2878412d5352a5af699cc4e779c93c8f249a3801ec004e41a9088f3dbff05ceb335221d3543c0f61d7f17c62896461172f038c90a740ffef0b93f3c0c30bcbd7b475ae855080c9b18f07c6a0b60b14d47d985efbea1d71199c26ed43397bd519f22974ff23b39f0334a6013b7edecb71b5a0b94c1d21f639256ca6045771030179134e5f31b7c677f4fe899d707fe53d480315d94ebe1e718009f320c3fee33161b400e0cb6a98705d06bc65ce3f810535b9a43f84ee3502c6dce9a0111a6d62d89d56922591c0e62836c25e6c4d396044fdd08d708b848f85f41c8a39122547811eb1bac6998604724509b7548b59c7e5ac7e2d76d10334bc5d72b75c18a9bc4ca94cecc258052edaebc22aab005953b02b6116a6c1af4037de0742dd78e38b9017604d62f916573eb33355977d7439d2cc909b71c6f2b7ec1604cbe54bea8de1eb3273771f48b9a5a811683bbf457ffe5e4fdc126cb0cb9202e132a3a5f29cd96b69f8944c6f0893a4feeddcea4748cb36f34f22cb2908349cac07696f2f3696cd1ce3df77d2907b5b465e77472fa26194dca53268f3d368d24cde16938c6c9d481a6c1f6d37a1c3d41e2b758e1a4100d8123d5097b8d02a136e8a242ba362b90a4fcf807d6a9d2cf69a017472e7c5cfc94af6c69623886182a0831cae9d0094a257caf7dbe547a99a1df7b506103d43fdf70a0122324edf841686ecef81484a4f4b7a598db66427acb21732b7ac8c9c2e1d6d3978f9ebe6f9d08b133e567d0e22a2c01d5a4c8c72e0db0e6590fa0a68a6b0280308cfcf3fc3e4b62399e531323ea978e13a6cf7b0d94647321b6f7647ee3567c6babd4797457c3f5db34c4e93ec2e44c08fdf59b780c58c16bbd478652a6e73a74fd6862717da61e0ab19dc4a7785e3c70841b7b4b1717370950f4e157074d379763e81786af8a7e50201b4213ba57b099edbd24017c64c95381ddb261241a6f4368b6dd858d36a4dadb86c11df6a50c471577f736227571a985c03f62453ae8e4c18930a782842ee318190916183e79cbdfbc11c7dcd674e12d9408e2d6c882e286c293dcce93b61e77e3b9abc74b538d232f4986c44ae084667610488de0c6fb4a4f1494017bb1d2462c8c9e966c9cf197697e5d53c411f2a6707e9773188b2acd2ddb24938877c75751389f170d3ddc4bb1fd1fb0b7eda80a88ee3d150a9420db2acfa92ac975e3136724d4b0e94a001", - "0xcec5070d609dd3497f72bde07fc96ba0e0cdd062e6eaf24295ad4ccfc41d4609": "0x104c3d674d2a01060f0ded218e5dcc6f90c1726f43df79885eb3e22d97a20d54214c3d674d2a01060f0ded218e5dcc6f90c1726f43df79885eb3e22d97a20d5421c7d7d38d16bc23c6321152c50306212dc22c0efc04a2e52b5cccfc31ab3d7811c7d7d38d16bc23c6321152c50306212dc22c0efc04a2e52b5cccfc31ab3d7811c5c07ba203d7375675f5c1ebe70f0a5bb729ae57b48bcc877fcc2ab21309b762c5c07ba203d7375675f5c1ebe70f0a5bb729ae57b48bcc877fcc2ab21309b7620b2d0013fb974794bd7aa452465b567d48ef70373fe231a637c1fb7c547e85b30b2d0013fb974794bd7aa452465b567d48ef70373fe231a637c1fb7c547e85b3", - "0xd5e1a2fa16732ce6906189438c0a82c64e7b9012096b41c4eb3aaf947f6ea429": "0x0000", - "0x26aa394eea5630e07c48ae0c9558cef7a44704b568d21667356a5a050c118746b4def25cfda6ef3a00000000": "0x4545454545454545454545454545454545454545454545454545454545454545", - "0x26aa394eea5630e07c48ae0c9558cef7a7fd6c28836b9a28522dc924110cf439": "0x01", - "0x3c311d57d4daf52904616cf69648081e5e0621c4869aa60c02be9adcc98a0d1d": "0x104c3d674d2a01060f0ded218e5dcc6f90c1726f43df79885eb3e22d97a20d5421c7d7d38d16bc23c6321152c50306212dc22c0efc04a2e52b5cccfc31ab3d7811c5c07ba203d7375675f5c1ebe70f0a5bb729ae57b48bcc877fcc2ab21309b7620b2d0013fb974794bd7aa452465b567d48ef70373fe231a637c1fb7c547e85b3", - "0x267ada16405529c2f7ef2727d71edbde4e7b9012096b41c4eb3aaf947f6ea429": "0x0000", - "0x5e8a19e3cd1b7c148b33880c479c02814e7b9012096b41c4eb3aaf947f6ea429": "0x0000", - "0x7b3237373ffdfeb1cab4222e3b520d6b4e7b9012096b41c4eb3aaf947f6ea429": "0x0000", - "0x26aa394eea5630e07c48ae0c9558cef7b99d880ec681799c0cf30e8886371da971163c33bfa29130f6489d001e7a8a29c5c07ba203d7375675f5c1ebe70f0a5bb729ae57b48bcc877fcc2ab21309b762": "0x0000000000000000010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "0xe38f185207498abb5c213d0fb059b3d84e7b9012096b41c4eb3aaf947f6ea429": "0x0000" - }, - "childrenDefault": {} - } - } -} \ No newline at end of file diff --git a/cumulus/parachains/chain-specs/asset-hub-polkadot.json b/cumulus/parachains/chain-specs/asset-hub-polkadot.json deleted file mode 100644 index 46f3e0e4a957..000000000000 --- a/cumulus/parachains/chain-specs/asset-hub-polkadot.json +++ /dev/null @@ -1,62 +0,0 @@ -{ - "name": "Polkadot Asset Hub", - "id": "asset-hub-polkadot", - "chainType": "Live", - "bootNodes": [ - "/ip4/34.65.251.121/tcp/30334/p2p/12D3KooWG3GrM6XKMM4gp3cvemdwUvu96ziYoJmqmetLZBXE8bSa", - "/ip4/34.65.35.228/tcp/30334/p2p/12D3KooWMRyTLrCEPcAQD6c4EnudL3vVzg9zji3whvsMYPUYevpq", - "/dns/polkadot-asset-hub-connect-0.polkadot.io/tcp/30334/p2p/12D3KooWLHqbcQtoBygf7GJgVjVa3TaeLuf7VbicNdooaCmQM2JZ", - "/dns/polkadot-asset-hub-connect-0.polkadot.io/tcp/443/wss/p2p/12D3KooWLHqbcQtoBygf7GJgVjVa3TaeLuf7VbicNdooaCmQM2JZ", - "/dns/polkadot-asset-hub-connect-1.polkadot.io/tcp/30334/p2p/12D3KooWNDrKSayoZXGGE2dRSFW2g1iGPq3fTZE2U39ma9yZGKd3", - "/dns/polkadot-asset-hub-connect-1.polkadot.io/tcp/443/wss/p2p/12D3KooWNDrKSayoZXGGE2dRSFW2g1iGPq3fTZE2U39ma9yZGKd3", - "/dns/polkadot-asset-hub-connect-2.polkadot.io/tcp/30334/p2p/12D3KooWApa2JW4rbLtgzuK7fjLMupLS9HZheX9cdkQKyu6AnGrP", - "/dns/polkadot-asset-hub-connect-2.polkadot.io/tcp/443/wss/p2p/12D3KooWApa2JW4rbLtgzuK7fjLMupLS9HZheX9cdkQKyu6AnGrP", - "/dns/polkadot-asset-hub-connect-3.polkadot.io/tcp/30334/p2p/12D3KooWRsVeHqRs2iKmjLiguxp8myL4G2mDAWhtX2jHwyWujseV", - "/dns/polkadot-asset-hub-connect-3.polkadot.io/tcp/443/wss/p2p/12D3KooWRsVeHqRs2iKmjLiguxp8myL4G2mDAWhtX2jHwyWujseV", - "/dns/boot.stake.plus/tcp/35333/p2p/12D3KooWFrQjYaPZSSLLxEVmoaHFcrF6VoY4awG4KRSLaqy3JCdQ", - "/dns/boot.stake.plus/tcp/35334/wss/p2p/12D3KooWFrQjYaPZSSLLxEVmoaHFcrF6VoY4awG4KRSLaqy3JCdQ", - "/dns/boot.metaspan.io/tcp/16052/p2p/12D3KooWLwiJuvqQUB4kYaSjLenFKH9dWZhGZ4qi7pSb3sUYU651", - "/dns/boot.metaspan.io/tcp/16056/wss/p2p/12D3KooWLwiJuvqQUB4kYaSjLenFKH9dWZhGZ4qi7pSb3sUYU651", - "/dns/boot-cr.gatotech.network/tcp/33110/p2p/12D3KooWKgwQfAeDoJARdtxFNNWfbYmcu6s4yUuSifnNoDgzHZgm", - "/dns/boot-cr.gatotech.network/tcp/35110/wss/p2p/12D3KooWKgwQfAeDoJARdtxFNNWfbYmcu6s4yUuSifnNoDgzHZgm", - "/dns/statemint-bootnode.turboflakes.io/tcp/30315/p2p/12D3KooWL8CyLww3m3pRySQGGYGNJhWDMqko3j5xi67ckP7hDUvo", - "/dns/statemint-bootnode.turboflakes.io/tcp/30415/wss/p2p/12D3KooWL8CyLww3m3pRySQGGYGNJhWDMqko3j5xi67ckP7hDUvo", - "/dns/boot-node.helikon.io/tcp/10220/p2p/12D3KooW9uybhguhDjVJc3U3kgZC3i8rWmAnSpbnJkmuR7C6ZsRW", - "/dns/boot-node.helikon.io/tcp/10222/wss/p2p/12D3KooW9uybhguhDjVJc3U3kgZC3i8rWmAnSpbnJkmuR7C6ZsRW", - "/dns/statemint.bootnode.amforc.com/tcp/30341/p2p/12D3KooWByohP9FXn7ao8syS167qJsbFdpa7fY2Y24xbKtt3r7Ls", - "/dns/statemint.bootnode.amforc.com/tcp/30333/wss/p2p/12D3KooWByohP9FXn7ao8syS167qJsbFdpa7fY2Y24xbKtt3r7Ls", - "/dns/statemint-boot-ng.dwellir.com/tcp/30344/p2p/12D3KooWEFrNuNk8fPdQS2hf34Gmqi6dGSvrETshGJUrqrvfRDZr", - "/dns/statemint-boot-ng.dwellir.com/tcp/443/wss/p2p/12D3KooWEFrNuNk8fPdQS2hf34Gmqi6dGSvrETshGJUrqrvfRDZr" - ], - "telemetryEndpoints": null, - "protocolId": null, - "properties": { - "ss58Format": 0, - "tokenDecimals": 10, - "tokenSymbol": "DOT" - }, - "relay_chain": "polkadot", - "para_id": 1000, - "consensusEngine": null, - "codeSubstitutes": {}, - "genesis": { - "raw": { - "top": { - "0x0d715f2646c8f85767b5d2764bb278264e7b9012096b41c4eb3aaf947f6ea429": "0x0000", - "0x0d715f2646c8f85767b5d2764bb2782604a74d81251e398fd8a0a4d55023bb3f": "0xe8030000", - "0x26aa394eea5630e07c48ae0c9558cef75684a022a34dd8bfa2baaf44f172b710": "0x01", - "0x45323df7cc47150b3930e2666b0aa3134e7b9012096b41c4eb3aaf947f6ea429": "0x0000", - "0x26aa394eea5630e07c48ae0c9558cef78a42f33323cb5ced3b44dd825fda9fcc": "0x4545454545454545454545454545454545454545454545454545454545454545", - "0x26aa394eea5630e07c48ae0c9558cef7a44704b568d21667356a5a050c118746b4def25cfda6ef3a00000000": "0x4545454545454545454545454545454545454545454545454545454545454545", - "0x26aa394eea5630e07c48ae0c9558cef7f9cce9c888469bb1a0dceaa129672ef8": "0x08147368656c6c", - "0x79e2fe5d327165001f8232643023ed8b4e7b9012096b41c4eb3aaf947f6ea429": "0x0000", - "0x3a636f6465": "0x52bc537646db8e0528b52ffd0058449e04ae95c504114c108066940e98db59ddf6af6efb57b7dde0b64469d187d03f0c9208338b0a9eb6f31f3d0dab728101fedf5603adc13d96d400acfcf610cbaa56a582dd86ca95fddffd6def4db6dc52ca94520a3b115310ff106bf4ed568cbaeacc358aede3df1a119009a9ebcf35e2d7a3228081c842f12de71abdbaa558cb26ed8b1e4708e99b4ff5c2375fd2f34d0ec57cfbd42f3fd5d97f5aa37e47cd7ed70809d6d09020c290c54f265f38c2ab0be9118597d725020bb23c10d6c13fb7f4884c8fa6e0f2cf298c88f5f3032ea882fcf98122e8e0495e70f043fae5cb1e607e1299610c252b7e1255b1c232c34fa21498e115066390603046942db480072de0c1b39330226be59f572cd8f2e5cb6b10269b007d9542fc7cf21222f843fae59b5318103d628114fe79931f283d51e9f9a75d5c15bce0350e599606d1a329c8f0cd3736e7f89cb121edeb96bb140b32b45fa273c6829cfff4c6a947537879760a23c23bf8e70f13c2fe56aaf2ec747295679dbdc5c9bfde04beba1e4db182576c487ff9f2ea456f9f1762e0c5dff89df20e8b6fb74194bf31b4cf6e71746e291684a5f3c586ac37395579a61ec5008cc780708bfa2ecea26fde116788c342c80199fb2c9bcc686ffec3968b43fae5cb97f5c688dcf8f56db1c98c2f80d87876587c47227e1bcf6ef1a5584721f676c680b09344d62b9ba61e51a1e589f85b4ef626fbed7de33bde788efa1b89ac572f72cb62581ca47e14d3de2e8daa8777b15d2e3e89a209e751c43c5174b9f82453acf90f6b9cea384248af7228e69b0ce53c117f93549cb7ab17bee72d97077f9746adc3bbf8a4270a232df8f2e5cb1720e7967bbadceec10ced97a702c5819cb3bae506f37c352a18ff62f39fb65ae4576fb1df0a5a40a6fec34f54cb154ca86fc2df8125fb46640ac6ab7754309ebfaf8efa86b7dc2587b79a9bb6b6ef06cc04418bfc1d950eaf1810ffc31cf78bd6c91675372bd6be15c380acbd415920f692b6d8715d310664eb21b082648d4d99a54264cd8378e5e2082578d7311959c20b07443d31deede0d3a4bc72e7a62ae2086946ed3be3875ec57d1d3e4128974076a2f7eb166cff61783dfb7ad9b7bb95eb12a2f7eccf15233274837de3642095cf7daee4bc74f8e45cb10428cb49b9bea85f5191e14501234268408dc378e709e0d3341d41013ecdd20f9fa66631824ffcce7ba878e744b04f03e9174db37ccdcf9ec7a1bc9ddba558107406c25e79c380ecb353d16a18037eb8abc818907576c682d8dde2d8bc00f6f5f5c586f4108c9243d639874f943bb7a8a85fe293f3acc67d894f7a7402162874e796553915a1577152fe288771163d152957cc882227505464a37f51685d5f31210cc52f9fb8bdbcfe50e41666b184406fb7ba1d6c87edf6a98eb323e51052de9473a7ffc3941482eeacc52cab2f224e5e6e294651de0dd961905b1b71dad7db39e2b4b3536e2d96809f57dd31295f5f8c083be50d849d72c5822877d0895ee5d65eaef225edcf61f4f29e5771ee3f77feded07e79e85647a2f7ed2f4e76de73bfa154ddd1fec38a0171de4fcea27f4ec5d92e049d72ab31204b2e5f42f4def22543eac5c8e88966be72a2eb496e5d975fd77579f94a95a7fd8a73bfafe8dc524cc872f9ca2d521c32c0aff240ef38f9a13b270571de3eb45fbe72c51450f49554ddc11810e750b6ff34f55cb4dad917c87e7bcb480bad686f1378d1dc6ab1a41863ba32d97a49bb302ada858025a472e894abf3450a42f2ca7f9814f515aa52b1c5b88709a99c1449bece0ee3dc87be1810e815ccc961d3c6c626dd1fde5db762f62dc58274653236e5b0491b164492b3e849fed316293aafaad8647fee3b27c526fbce2dd665caa92a3aab97bb6186fa7180f4438772bf8a2b8528af9c14f59dab8ffd175d79d41b9f7a5ad0107ce74328afe415a36c9a39afdebcbdc426e8ea2420fb904d0a23ce73edc2c8e883788b8a9372e896a5582567d1574e8a739fe430ce206bf4437bf4aa3c2487fed3a4b85e45f61f86d70e352acee64f0eed3b59f4f645611555898296216c59c31e62500620c52ce5129bd63336ad13914ddfebd7b7c7afaf17c127f7ebce27c5d245caafebb0cf022d11beae3a2b85f4a8d93b2220136a07e2e7af5bee52f5317bde1529a07a67b9e6b3e574f2edb33242cff04e5269ee1a9bbb280121bc80e50b907ac7f9c4f77c9ea4a88aa77c3a79e7aa3f5485987a2445099e689f924a348c1fea2f5ffe492a4fa83b29c2c20b509346f3897772b6cfead97fba23106fedd5a2ba6216d02b44015220be9d6c11376bc1b2f42aea1ad813285ef43376656f47cf0eaf8c08eb275b571680ba5a961220d3a328bc703eb1b39bf8c4cc5164f1dc40cccc4c58eb1b3d094b5f7566f6ecd6aecfeb797723ffd13779185f904f731faafa589f3dd97e076909db635ebec94c8cd5d7c67eacc9bbb87c930b467d2c59a31f32c0afb32b46a4192d262433faf58b4ffa6cf4ab9abdfe50d4cb70b0f4954f939d7d7d36b75aecc9d89bab2b46845da84965534bf9c345bc10b0940059f31e3e4dd8834f3333f169f6bc73e744f0a9bdf3129f144b1c8ede790efb309073e553ff2ce21dbbf31a3eb53b777ef169ddb9ea3829a4474e2c2540e67c9acdc4a7e9dfdeaec327fe3e7a62e5db2ff661a01dcf3f73be5d779358ce5567f67cbbe5e2beb5978bfad6628d4dce357feed8029a53fec396c5eaeae284ef5ce374578bd01563398b9e7565544ee7cd7f9a237417f5b7c50c3a773596d59762413a6c6a5ff7b891a38bd3dfb9d5578b952b06e52c7ae83fdc98aecc84269693a85fd9e49ce4253e356fcf69bb72ae937cafec9d677cda8dca266593e58b05d96f6cb2e4b49ce41bf5ad48d4cf6e2deb368c8bfa5c7ae7b07da67020e59dd9deb92acfcc79e7ed3f0d63e5a498c509ff3963aa32179bd61b9b9eab2f1654499c21944387d7b3532f2a16e42464137b566a51df61fb342323232323a07693fa689d6fef79fda1a85ae785a53e991e4141c6eb11145d78bc1e4191c55bba23d353a64750a8e0f5f5d91b1340760445153fdbb3c37508b57d947766f6eb33fb095f9dbdf1c9b9ab433ee9ab5b8d0535394446b98b945b7b51fec38c1951f4945b8b09794ec9f9fcb9c558d090987ffec32deebba8cf5850736b2f2a3e574cd9346b7e2dc59c9c4ebc732a4ef894bf389f2b9b28ffe917f5a938db8bfa8a3949d4cfa675d5e1b7ccc5a26193a9ebb3944fed13beba6ed46f7c6257b73aea73dcb7b8e37ee3d3babac557c7758b47d65ee38d91356f675f2c88afc5580e91ad5b0d0b5a5facc9c62676cb5d8bad2bd652d9c4fec3d65e1bf71563807e47fd22defd81a500c8ac18d599fecea7c6a676754b77648b05ad2b16645fd9d4fec31b954d137e7b0032f6762be393b249bdbd864febedcaa7fd097f66df6eed95f149bf5db1f51ffe618e3843e0b3c367893384bd397b9344fb2b954db3bdba6242d6594ef6f51fe6dd24584a808cbd5df9344bdfde5ee2937a7b0e9fd6db1bfb2c507bc627e5c2065cbe5df9a43f6bbe5d755a0af9eb0f45bb412c1522d323232e2ff3ca05942baf3296ea8b2293af58d410c553af58d250c6efab8da5a64c9db5ae7c9aea2b954deaea45bb332c3d329af24a59ca93a9b3742753f7b400e40553484f0e2f0e0f0caf0c4f0a2f0c4f0c8f0c8f0bef8bc7c5cbc2d3c20be361e169795b7867785f7860bc313c2abc2a3c2f1e973785f78497e5e9e04d7956bc123c285e94d782c782b782a7829782878207e59de0b9e0e1e0dde055f16cf06af068f0a4bc193c19bc183c2a1e0cde0b1c196e0e4e0e2e0eae8b0ba36de0d4e0b83838bca3ae82c570657066e829382f4d856687ae8223833b432ba3e9a1e5c119c1a5c0cdc0c9c061e170e09ce09ae098e08ee092e096e0b47057381ab81c3818b81fb42f4e076e05ae8a1b82abc201c149712570460e8ab60747859be25ce0b0b820b83b70154f8b77e525c19dc041816fd070683d683c7839705f7062682374111a8bb6d244e821b410d6047c85f6c25f3412d80aec054b81a7c050e02a70172be5c161cbb057582fb60a4b857542103adc97a5410420c001258a68200318b840050e70c4c7007a00bd2d1e1326400197078787d784352a7242822746208210380182261f2062b264a8092694782089d044f2a83c1f382dab048706c7056705e785ab4283d25cb059dc145c96b68246458bb25e78667026682960373430da96e685b78366a5a1a0c160a5d05ed088d058e0be7065383db83d74165a0c0d466fa1a1d05a68366c150d0637468761dde0a27052b827ac065e037771547058705758315c1d96097bb45dec11d60adb83a6413b01a381c3d81b6c171606cb86b685a6a55da159a179c158ec969dc24661b95828ec1316cb6ab149d8256c1b56080b84dd01a761b56c95cdc152591f2c0ff68ad5c16a61bfb0536c0956066b83adc1a260a378c010053c23210e28c2009cc5dad76d68a8b88f30416203459a40e2c812458a58db4a283952a40849f748920d2041a4e4031c284294c4912548945082a448911b07d332502638a0044991248a30c10125429430818408892449983800511247922461e20041740c8890587244c9910ec4a6429984e088501126458e28c14412479428c224044786286102091326471e70a35fa02040d2c42f3922b48489091089ad023d42848412489220d1a4c8910f1cf9400320a0c4910e7400090804d129502642491c592289964299102939b2e4c8124a90781b2941c2011cce832681848912244b889c38522404499a680289224b8e289104c907808492602209500edf413d5004092224944082e8c80264d80e2240920409244448942099c17250a1249848b2812247883e90c411278ecc301c74091307b8645a0c8a8b2b5bbc16597a6464f45bd4378fa7c053d826966aaaaa3a76765cb75de675ccddda39d78dd9355e755ba3b9c66b6d6b40d7dac2d71cc2ca44ea6632c176bb37cc6d9d73cbed9cd3e61cb3e55ceb1acc4d5114e51ac31aae063b08bbc1aa2184eb1aa9c11a4e9d53e8b4e1ba57c335e6edd61a1031ba95bb6e3b07371cadadd3f961d9ad5bc7bc8dd7ed2e4376ce396eae313be79a73ee6a55b5cbcddd5c63d7ad21ec6ecdb5065d7bf2b9768dd755ce6d7330ec5c734ea606e59c73d0ed6e3bc7aebb39e75a43ede61a352ad78ed9f1cdcd8dbb71cdb9beb9b971cceea6dbb91bbee11b66e76e9ccc0db36ce8fa4976ea5e2bb783ad9dd3d6ae356ce7dc3676ce717371bb3599d69c6539c78e1d376edc1c376e8d5d73ccce3576ceb9d6989949ce39b7aead6bcd39e77897dd4d63c76e97ddf23a6eccdc1caf73cd35e798991db773bcccbb8e1b6407e1766b8eb9b5b6636eae612355b09fc31a356ab4d620bb6dfddaed6ebba1baabbb3674b7edeebed696a276176aab6c5ccc3eac73eb761536754cb5d66ad4a84151356a3c2dbc2f8088b9c9a9219404121b489284091d383568d8a07183d5204a0209264a90584254840889073cc084a946c2e03039d20125482c91845472a4892690c8f1001222251f5822613840f4011f8e2c5184480992254d14498209120fe4501eb0c1478e2ce14091254c10219104134992209143c4c907acc7100128e204132020b2d1012548966082c4125e83680912444c80186209931f6e7488234c981c59d284079848a2c892234d9848e2c892224830512289234502207412c0104d247184898fcc12491021b181224b3041a20409074a1c40b2e44893220308800004308412478a3041d444089624f1038f2448847a6c80a0314309248e2c3185e088501122278e28d951d301206834004c88982071e2888e191dc209241c38b2a4899e98231d40620913444c8a289104c9124914214af20124387044891d9924479a1c4952c409243c7023eb0013498a744009920e748089243731479838cc12248e2449a2881347945082a4881224482c91040738c0441122278ec8264a8e34a60128a28409244c961c695284880926961451e2c892234a2c61a2c84900431419e2881012493650e40892254445889c38a2a38992232da31c82254c78e088075e1325477a0793c2eac489132745ce4911171539235ae4c44951512b6a468ad6c916151515751134a24545da46548d3871e2c4899366c449d13a71c2469cac13274eda48d1aa1175e2a4a88da813276c449dac91a275b2469c6cd11a71b24e8ab8883252b445ce48d116ad112d7a46b4a8888da81615151535235ab46ca4688b8a8ada48104cc5aaea7a8009121a2e45e634339ec9f88c9ca20424858c1457907cc6657cc6336fee3d7c82debc08f6d929ba3375bef9d53e0aa493882a5d58f1e29b2bef952fbef9ae20db572c5628e3e74ef9e633517ba75d2666517b27266aefc044ed1d2c7aefb493a25232199b2e277947a5642e925436919c47d6d625a36cbaa4b289e44057acf00987e4ed243de281976f6f5ff846464ff2c582487288acbd622d81ae586193be0e9175f7c238a18aaab6e942599bab363961cb99bd02b19c259aecc915eb2670a02bd88b78972c91edef12b8ed0ab2f61acedb97f0b3e9c7f34951ec3fbc649f88d7c7fa6c0ff5d43e9bb76fce42cd1b9bb8c9d9228c2ac8f67581843423a3c684ac91d1b733260452de24cc1a0cd715043090b187261481065528e37a40141518210e586c610578b0bcb0f8d5b57d8a7090072b6ab0050da290c31740a49fd9b6c0d22332c502041e3cf4cb9f966f57f551a90fe80ae37e17cf4e61014216df764ac6ed98cf9e87f149448ccf1e5cc4537ef934bde573c7b74f366a30dede660ed658e972dcf6e8671f7d674f92d743b71c143e350fe23fe3d0954f323edbc326e78cbc641e06f79b0cc53cc9b32c368771ba2851aaa892c591175bc2f0e2ca8042c514215c795d5858dc7750f814e3ed0f1be29eb0a93d46ce1a36b5c34807854ded30ee3b2c6353fb5a914d67f4ed333b220a36027afec358d427a910f3f2750a23e2e42f38841dcac97f79c3a03b287cbabcbd61500e61bfe42461436228df8611b1e4d03ec97fd8e2b7ca0de6c973e74f8a54a038d073cb455ebe5c5ca0179fb01190091ce80ae816d52e8a9a0f4212e9a22297e061ec2f5f3e8aa7e47402c543b7ae0b4621e85fbe2afa4939143e5144d867d153ff54e4775810033c94430678e81616448fbe32fa6a8fbe92437bf4d01d047250f8b4df4ec57d20c5b8819c917be2a03c2daf3f145d4eb888dbf2c10e7616efb6206bce25e7cdfb8e7b78d79939333232820248d95b182c054016447f9d075b5673238a18b07fa9dc1664edeaebbd3a4bded4f737eef76046147d8f572f4283560e91ed2bf6ee90f92f63a1bd7c734bf9f49e663c32cad5f43c328ab9c1a8f2501e44253ea73c73cb6141991c227b71bf31238afe492a501c28bac557e6835b3f6cf910f7ad6eddba45f5f1fa297f3b05e5696ef1e543d4b76c6cbce4945b950d6563e3038e5b7d598d01b9e1cf2dcb5d5cc31b46a41b23527373035e54d47f35eec309b27c3b8e5b7aaa22458164ca0514284f73956e56298a4746e38a05cd70561fcd5b4f9437d7fdd1595688e6357c9666f6975faeead3557aa7f9e53458107f1ade55da67b37496fdd15eac10cd1be635e42cddc89939afa9223b4bfbb4969b1a8ee398b796f6f9c19bb717fbe3798de3b496e835e4cc7eb69698b7f19bd6f2cd7f8894eed838155b4d361ea3eaceb4791baf89aa3cf3c6dbb8f2dbb417aa42d8f866d91fea433f0bac483a6ad2130da77c879e6828e53834dc2687460dcc88a2a7e18a01f1a7e17bd5d0701b0f2af90f6771daf0cc67e29cd9b711f7df73abc6860d973ed8b081831951f4365cd288356e131b9b6afcd988739f86cfc080d4d4c0d4c849c333b7f11fb6665c8a01a10183d1701bb7a1c165f029c79bb7119f70bc793f81f1cde28596175b0a9b9acbd855b0a9b98dd8534a578c4fa29bc081a2bc02c73dc729b76ce0e0386644d1e3780c1694e35676311684bf24935c8f33b49f7993f6cf8762fe49d9643f73c580646ef90f635ea3864f37de7cbfe053c99bef163ed978f305834f34bcd9f0192c888d1b6eddf0c582e00cedbb37693e780dc719dacff126ed87d6cbe3f850cce348559e89e3ec1846a4c67d904df65dcee7377e6144da716493fd1c399f673724ce101b8ee338522873cb6d48a11b27daaff11fd6b76af0ea4c0d07f3de87a89f133b0a9b9ae3c4a6824dadcac7bcb85eb0a9798db85ad8d4bc26ee176c6a7e13770b9b9a97e282c1a6e63671b9b0a9398db861c8c4b92fe3331890fdcda23ccd174a666253731a9f1175d8d4dca2713d9f37994f191fed9d1a9fd553aeea2388be8c53beeab3597aa739e535b0a0cdd2bc464e98c999cdcd42237d4f90355f9f9e05f531b45e9648fbcbc227f6e6eb059fb4a80f1dd2fe669aeccff84fcf447d99a89f45fd98381d26ce0b8bb3f4575c427d732b12edf773929c30fbe7959cd937dd91d6cdb5182587c87a5eb13541f6e4542ebfbebe59dae76708517847ff670852d8a4efe4843f37cb376f2f3e341a4bb05ef440e985da597d299f3849e927f4e73c9394fe4518350d1974e781d23bf6e7a3404df65736e981d23b29d4bc65c62db0f607490aee6e5e2696ee50f5f181f642eceda7e7dac5abef936c7d12f1eada9c04cac1166cd25f37f1e949202bba00cd1dafdd0e4b1d67d6bc01da855111d890072ee82086190035a9bdc3fc904fd5b367ed5354042098a08a315821c615b000554364fe3f9cb1152c981a9f30f399c5f82c659ef934bd9315f421a664939ba732e3d33974c83ea9190e877e7a0625a94461e333b2448a91b3f4995b7ed5c8093f6bd2bf84737d1a6e398f4c888a931ea02b287f5890f3e70ff249a8f98dafcfeb5fa41c260e399f45ef241320927291469c4e8e9e862f4644c69f62ce3952b1f1928b4c68b84c9c94d3f017677b1ab28af388876ed9c42b9e53f126d6786464347cbf3c948d05514c434a2a2467cc490fd015cead261d9845af847aa27ee745cf5810e743eb7084b4770ebfbdbb89fa36518160d4a321548133e4b9f3a742648ac54a95cf79c56245056f597ab93877975079d0c31ebefcf321f8a404503c93a26f4259ed827c1252179dab3cc65d9cfb316e597ac150eeec43e3ecce3e4e139d774c33333e342ee3ca3e364e79f6bc042939339bec394d54de7972967c262aef587c4dd374199fa599653ea18ff20ebb1372aeaf6c82693fdf979f31febe3c0dff61551f33e08ce734e27497aa8f49f9d07ce2631cbaaa0f279bdc7c8dcf9821fd43d09908cdf018179ae1ae49ff124e0e419fcf9bf42f41e3c921e8cf29777136e76f86bbd85e311a52d534673835430ed5482a53d0b814334e334323a728014941f219390504920273292e9722d31d76928cb4d82f9742752793133ecb79c4cf243d2b14e36b14239dc3384cc4e215b3de61b722293e41b2220747a0410c9c508529404e744b153d48f145185cd8c31540da3b45275593f3f96a3c3b64cf9dcff6ee9f53fedc0971fee4ec7744a8a1fdd7ee0d69b2ff248e10f8cf9350dfa49f7a429a3b39d70917b5132e6a4e5a1145cdd4c052b6948be8eeee6e539bd844013665a66faa995a6bdddddd5a6b3a408aa2288a821445398c8d2493003665ee280a42485110420829a7288a82d0298a720821a4ece05a6bad396fada9baa8950c11179b76db16f639e79cdb1fea412c8879d9313be7f8cdc1b5d65a6b6d9d7bad35fde65ec362e75c6bcef16e6b8dd739e75cb342fdbdf7de736d9923d8047d964c3b66cf37e79cfbf39ca63a5eebd452befeb005ec530bb1a0ddd57d8fa27c5755576a53942ff5de5b2aa32245edab1e5161801042081bb47864d53e5f5f29b4cefe7caec41142712577b009565e55105655554158555555418710c2ca21845e555505a5901e315362f4781763f1c8201674b1c9f90f13f16e07ef38f6c59ebf0765729abb258d59dd733def4cbde3dedb5d666ea6f6294dc8904fcf9d5f7c627ff18d9131b311454fe5400759bc8ed7231d404942c6ef783dca81174a613fac94cc12cf352d41afaaaa32b38c12cccb41bc5275b7bb7bd779d5555579950ddddddd3adf39bcd3aebeae657a2c69df5a6bae8fbabbdb7fb835190cb0a972483de7ddcde1d5aa0823851951f4b839bbc316b0df606bddad3933b7ee6eb1a9a5a0f0a15c7b2a1a79ef39f7babb1f15f89c73ce0ded33297ae8ea8da21646551ee72f3e1904346f4751d4a3de93cebd072184ef3de7ce39e764b0bbbbeb8a0595d8b4cc4e0602eccbbcdecdcccccdccbccbdc5a63e65edfdde57d3070ddddfd7cc21277c3f51f6ed72053e1999939a69d5b5395e95957bfd8d45aebf6b0a0d69a6badb564ee76ceb9eef6d6ecccccaddb3a397477773f570a0ba2562ad6dce291ad2b1694c3a65e7f6e5558d0934364ee614614bdf36f6c65a97573d75e74aeb5e65a6badbbb5f75e6badbdbbbbc9b9fdd4e0dab4b5d69a3f574cce22271573ee5c9b8c116c823e6129874fedcdc53746d6ceeeda150beafdf6acc61bc3396fcd2d8805393944b6eb199b9e53f1614614fd3e77cff9f3862d60dfbde7100b7aef518fffb96bcd397f8fa27eda397fae796badb926857a281384414a18a090d1e58bec150b1ca6f058c090e5f548075dfc34fdf3d22b1630e0a0e754b97a738b47065db1202aa41a6f8c0c6748f3ca2b295439e5cd6725718438a7dc3925a940712092845e4199c3a6b7165f3c32ca17830e1dcad9a042cab5653236656ca22e3651bea4413e153de50d836ca21c480b2e5002991ee5608bd7793dca81942f3a41d7b754171bb20fe5a49ef849c42f81b41003480b2e0d2590165cd8a44fb9bed5fc940369b18592405a6cf1e7c23ea5de79ae0fa405186ff1c880b4e8c2267dcb7a62b6a7dce29155aed86c5fb1f26916bdb2a9a288f8a15311488b30d8a40fa4851841405a6ce153d1eb33566a1fd83bcf5fef4c38e1cf920c90165fb0e9016901069bf4f52939f781b4d8c226fd1f7e4eb6a8319502ab5dd9312b06beaab78b47d65c63412d87c83aae2fe6a4e5ae2613a02f053e35e167665f229b5956c32722fee65c7a6e11c8fa507ff9f2e54bfbf5f62b71866c6b3977bf608002c0bd7261c5150664d61415b4155b7cceeb911538782be65931aa3ee67b72160da9bee37b3e295f399dbcb28985b4535878f996ef8967d72b44b1dae77cd68bef3bce7eaf95e815a27c2b21c093a36f7944952608e1052e9cf816c20b5cc07cc72a809c93461ac6a5578842a252020d03c888004f8ea0105ee0e25131c2318508591a15231f56d0032aa6f0cff526348c37a231062ca25883911190ca27d49d28c1410ebe0045194646404d1acdf695b38987804c19c6e0833d3c31320252ff612368bed909176d534fbaf9b27b94f376caf973ceedeb911555386fcd294f6b662eb4b706d547731ce7fbfc38cef5c88a19b46edfabf4ed4b7943efe7edf039f5dafb79777b7bcf0a295f62d3f3e69e8b8d4db0357f91041eac0a648ce1a00c2359052ef5c13b074b8fde7973eae3458843793f3f0e25f508075bc240049b1c0ec8f81e36395f4cd7fb154b1cb4fc621580a5f6516f9ff621b9f31eeac39507badb815e45c83bd0333e4d1bd83e25de81ee8e70c0e52711efdc467dec3b0b460c7abf1ee1400c5f6213f4a1fdf254d0507b551e48458735e551ffe117f79d7051e3de828c67c741958f6129d4de9c6bfbee73f64d40a64737e8f2edfa8c29c049c516d0ceedec3ffc6263d373c8fe1423d242fd82ec7b72b63fb728df37db295f6f5188a2b021cda90540a7e462434e3c29011446bfe43993a27f726882200f7af8f24c544b152a50f0953329fa4a3e392977fed33f0ce374e21b3604cae9c437a7dca2bce10c69fefc7973c5829e14723ef4c4cf0ef26473c680905e95673e778d0535576c08f5cddbd779bfbd1edda00caf6c52e569c5828aa87551ccb090646fdac1a7f6ed597b0dfb2cd0c3eb023034b05e8f6ec0822fe558aa71557595b074652e36b51acf02366ffe9aff6b4e80cc790f982dc1a7e745f0a9fd730a50f1cf31c03e0de8f5967fdac5bf1edffc87ab88f2cf73f8c4ffde7bcf55e74921f5c262505105142d4a24d32328471f9800b25972ae71bf5404309e3dc7b4e3d95d2cf5eea164e54a0e163678964550810e1664b0c1e2c90c2b70a08184192cac80315b09c2f3cdeb51118680b1c0722fc0b8dcaae2147a5e393bb7f89cddead6bcf2f6966e8528af8050ee60b5556b18665d72c220528cfa9890cab7f295b372c68248be9148e524392ba1e71c2b6fcd15a384dab5cdab284479d5a817a53698155dfbc0b0d87964ea1c557754cec89e5ca1eb4e767db0b89039027ef8d4ed10d0f2eded3dda67bfc856cef59e687271c73ab9a3874f2b658f49dfd43d507d8ab698220d5970010d46356003507ba63e5a06165b68c128082cd07205a8bda43e0640820eb410010f5860d102a8ddd587004673d88210aea8c1152f00b52b972960180cac766acdfca3adaeeeaaebca6555f51d9c80e6680c4380af475dc0c310b43c7b73f629d47c9e4037810341794513d29c65737df66efbde62931837825553bbd6045bc073aa3df1bc2a44fb8bed8b09e96fcc72497322f8cfd9c98bab3c6db5d5d630cf9f1cea6fcad3cdc9163d6e340c81cb6b6b150d82b0071504e10441a042082f00828b128c6106170c360b2860d8320413f4e00939a0d802042880812bf010c6d11562c0706bad41387fb882cbf55e8f9f1e45f4681fd3eb21a762e1cdeb5f768516601a34998a60d346f1de7befc99f1e6cda71bd62394215debd1e75218b1896eacc4cab0a8785e33d28701ca9421dc2404109a2d803171c62f8a97200051bae84e10628ac808b34e8cce08a296f6a96ea8a2990e480450a585460e906818b6a39a27d7eb6cc4c0fceec3f09683ef508016c5aa720c0a61b5052401ec12647c92198a3fee85121eef0fccc4db6cb1c9ff0464ffb5c3d50b51c018177e5d711c0a7f7627005964a08563016a0600858b0000428d0000c5cf8e10a1424014608650801ca5b4265056a6a168aeab1bab002e747b0699d73cfd7df83c20b25700db64fcf3273114515387bc50203287ef6b87665e818d0200b1da6008615f2600617482148e148085440404f8f9ad7a320d0e1ad572c52b04212a05073bbf31572fedc79db38df66915555054655f56c504ea8bb1fb16cf1623122cf574ea176f6f75cb11672de74e562ed8ac122b8ad858ba3d25a12625e8f80808246835e7af4f3c40545b8d2e50a25ccc04a1662152c7e4086e756a06d88a20b3dc8a18a28d4000baf22841f9ce19900075214010c528401873c74e1061743308ae2e57a3d42c3916b81c9d43e3d660f10a0a8b8c74f8f22d8b43e86a558f0f2b033343658ed597c4abcb3aecf67fbd51ae413cb8b4d0b79675b93bd5a7ab7dbdb77db2d5cc9668fdf1eed636a3e7f1003bbab8f7d37f5389fa6dfc1a6f51ebdb3ee28b5c2afcf1ffef9f52fea8f05a810ebef0760f8f7cf618d9c49741e09997e8f22ae963d3d8af841001618b8e00764d8d6b28f3384081674cd39e728caa773ce51ce398a72ce39aa41e79c7bce3de79e73cfbdd6f36a3ab57eddddedffde7bafbb5d7753cbdd989919a6b17639eb91a80ac28a223dcb5d0d6b188ed9ec523e75b70c0c7659a40ac6c0dc288ffa4f666687de4ead79f94737af6b4ebb9d7cfed34cc4dfaebb1dfb730a0b72ddcdce75777773ce756bedc4efb52fd5efbdf74edcaebb9b4fddddd4a57cea6e78299f5ebbeee69ecc170956555555d5d47992e7b08954c32692bbf2901cb2c939e79c73ce39e79c73ce39e7a073ceb9e69c738ec4a4162dab9ddc7b569c24276141fdde73ce39e7d8bdf71eeb2c75ad956c3d8715c29494c7c9536b7eafdf6386eff57befbdf7169e5ab3bf06dbe9f10f2a4ea2f6edee313333e4062f3629e5cc0dfa74ceb9766aed5a7bcd39e7dc73ceeddbaabbf9458a9d7bcebd76ee39f7d8b9e7dc6b90b44678c1523eb173563bb5e6e5f6e95c73ae39d79c6baeb7ef60299f7e9447bd881efdbadf7bfd5ebff7babbbb75de7bafdf7bfddeebd7ef3d2fd55cddafbbfb7577bfeeeed70dd94475bfee7eddefbd7eafdfebd7ef75f7d3d12162079bd4df7befb5a9bbfb7577eb58edd49a977f74bfeed6cddddddded6c5a66cea1dc724c62be2ebe2ebeae6e6d45a2fee7453ce5a7d6555531735744b089f21d6ca27c8b90ad9bd844b9b389726bb97372de7befbde7a512c9adb78e5b7763b78f99e173148cf355e579937ff092c5829c0f6692e38a99d939276bdeb6536b66fec1566bffdebbd844bdf71e33cb0bbeeea13c94bbe7449e0bb17337b7c7ddeccbed7193667bfdc3cdbedcdea31cd5989979c93e8c334911df41edeccccc8f99297d563bb5e6e51fce9dbb7e7beadef6c712b2e9f9be6efeb675fbf75cf7b5f75a77abb540acb01a9248241289e4ed44fd1042087777174228736ad8a49ead7abbd8a4edd49a7ff9072f376f3e77775b846cd2ddddd6e25cafd1eb44d6673bb5860b9db7652f35a165b5536b7e22e61fbc2fb46427917b2cc8676bae35d7d65dabf3e68238d984ac11dc1963145144114a7492e87cf74622d601ba62bdf9b60e37af143a608723306829030cda00061b3847a8f2ebd96afbf5a32348f1e11a05c4a00439b822062d9e1065073e58313c32a6e46241975bd6fe906a1ef19687e12d57cb31229a87b75c31215a86b7dc927b45211a06cdc3be10c5f2eb17112dc3af2b197ee5d07eb9e2be458aaa3cd0190baa547758569cebd0ab5d2cc87228c4f2950e89587225ce7a23495513f4954210b63ff659202eb2b6e1608390ad3fea417fada749a1c00333d8c1080d4798011072bc7d1a1033a41ef37a17cf5e536a1f2579d0e20e5a56a0451aa20031cef30ba0f0cceca28eff20ab5967c5f2822d7e7b5c2b839f482a00f2832a55d80296268c9105a8c637cfccc085511768bc726174f4d72b174630b0c1b71b28b02e74810a1a282a2f40b1a000010575b002961fd4200f35b8e9021cba80075e2abe7df392638912836fbe834fdb93063885e6072150c219ae2c01095788918312952750e9820d6aa81ce10c57a8410f5820031b2a50a8d0402606574a7087279801087140821168f8c00c7388998119b210421954d8028a2c9630834a16585a90061caf473ee0c1cf783d72039426342aba10842e1061e6f588ca171b90a1044be0010f64b085156a5ae0ae63dae1dd022dc30e34788309a8c0820dd440e3032d5ba05a0a5aaba6b0b3f495152ddfbc864fd637d752e9f5e80b3b5471810b82116568030fb650210b6080c30c0bbc7837b78bcd4239fb8b42943b0a5eae810186bb944fab65bf78bd9ae7137aee9cb121429e94d6bee7f0b53b2fdef973fe84d04e6df194432e52208477fedc92b96466646472689c9cd7bbf6cf55cee7559c101ba2efc56042a0bfc626ca5f9438247faeaf184902e1573659fc3fedae924e4f1109808091244e3c89524595cd824ffccdad9a8b54526f17364451b0c5f702da9d850979ee324861422035e3523e09c18b7d66b3663e6757afe29016820d6977de3021cf59ad79b539984b0b5fb2f8f6a237e2c13be7137314627a42dd771321cdc88885584984046d9d97504e048114bdb79cfccd511f52500ef553be00271bb50dc5d21d6dfa573cb276fb16eeca5939d562f31b3b7e1d12f1ebcfe9403e55555579f3169b3f742e399f59d55ec9092525fdf5f9c9099d9cd977ce6f739f06c4aeede1361a32f51baf473d88c1cbbc1ef5a07514625eb1c0800e5a7e7e7e10d0d323e707010930c2c6eb1111eaf0fc8ae50427d0f2034b75b6c8bca77da00ab688810fa280431d9a00862b3261384323c1a02a4214d994f7de7bed3d3047566ed01e0520c0a63da27d9cfb387904470134739eb17c61e5990b28c8f0cc7e049b588f544b0dfbfc24804debb326e7f7c9fad4a35f3f020214c0009fd8e6154b0bf4f034af474590c24ff85c5a572eb01e1b1c1a62c8b0cadb6c522456105d5f5d1a53585eb6290237378d2aba7523bda0b9e69e0adc738f7900e55d7bbd1eeda08c2f51d7c6b5c197d804b5065f6293ba4ae5610a1b5a786d5457aca1f2b0d71063e33eec6824d3a31d80f1f37a6e95fad80116bec4a655eab9d6bc104695479d17638105958643d52acb6a4a390d0a194f88c31eae70832b7c90830ccb196e20a1ccd894d5c0a6595653cac96a625e8f8a10c6b7d7232364f13373aa4fa0a4e79768497a1e5271ce91a83f480e69cfdeb60b4628e3f5c808620cf17a6404257c4ffb2c15bc5cde6d15ef7c960adf283fc87adac79b9c44ed5a34b9963aeeeddc5d15f7099b9c37783184f2c457d51a8d215ba36fd7b7c80f634d1025332ed9dc28efb4385fa37de2bc3d6ff03be6b0c995b864b3e7ddbe73237c6a3d32c295774ec4a7e6ce9dd81ffbce15feece9a959b4f8d42f1c68aa185c5c150bc88aac7776dd73e79ba4f4943b1ff6b9e3d54d5c4431e5655eb9888205afd80c2cd79834402bcb74a05ff8829730aad8c216cc4087981e64d1832e2ccbb22ce87a8382222d52e0458b0aa020450caa00d3833af8800595e556154d6caa7cfaebb069bd7d48beae59fb90a4ffac7101d0ccf9a6f30198d28323c0e1054448421d809a433e61df8e7c20e59bcb2108dfe44cd263da8dc1741f055aa762a9864deb2e664f5c874fcdb7a3b3699da30eefac2f1599005e8f765083a7f17ab483273ffd29275bb48e7282a5eae3c6f9f461961a8d29d323e6f99cf949fa1f7085609f90f269fdb856087618e5619f7d826d7fa80ad1827876929cfc3df687ae107346e7d92b39f9678f6787d1464dec1d7fe89aa68d67d3c4f10cd7a2a13cececd7fea85921d8d97fece8c127555393f3e6d987675f39d93fe3d393ecbc5f93eb1416d45ce325ed67f62c85f4a8c330e59d5bdaa31480b9f3ea33bede340567f65af3546c11b2a97915493103c2cfb2467966e84e73226ef094707cf399bd0fdff6c7b64bfbf2092d9fd9df9837de5179fec3a6f6a140ef3887979c30b34cbfe59d37394b1605da2704bae31c0a2e53bc73eb8277ce57799c73dcdf176453b5bcf3a964c0d4288ffe117c9a3320c0a729f44d4deb55bcd4b40e2354d33a159b9ad654935d40e0b76739f4c4b76f526aefcc357a824dce9dd8294eb668fbd9c0521d664bf747bb74f707437129e563adef3216443d48c549f13aa76207b20ed2ae26b662e31de78a5527ca1dc99d239124113f49e20ca9bcbd6513fef5ca2d8ed38de0dbb992aba6e78b0969bfbed890fecaad6d4f2c600951f6ff7c5588e78c09e95fb778a8bf94f195739cfccf37364c081b7d2597544e045f9587bdb1a02a36e1afdc525e6d18d2dc7e921cea378b1e4a29b2e6dc60e1905c7ffa93dc22c979c4535eb5cf06fdc5381fc9daa08a096c72f3cf553e49658ae65238d79a3b75eb4d96a47032eb1d752964a97794a57a916b5058aa33f7e89b6f955728304a2645bb402f4a8672f9d6b3581011385e0346cb9b7812d193240946cb497109e816c9ad38042184de91249d1c11710ea18b1347cefdcbadbd7060531fba2dc8a64c993b2588bafe15f1cd6bc40b7a8d77846ef1c87eb8fda76bdcd2abb1a092c358f292370c488d9766cce4b8b558d08dd7f069f3307be8aab309a27fe2d7a8779a433923f0d1e711df3e21f0ddae7fc91dfb3bdacfcb872c9f4fdcf0d97eb9894f42d04d7db90dbfdc86bbbb0d97433e481d28b2e6347cee94a17de83f8c139707cad3dc822d2fbf66e340bf2c877e794718673b8eff74431bfec36b64e3cd6bc869f3738d6c6cdcc9095b4f279ee4caa71cbf71cb2dc823533639a22779130ad027b975c493e4d06cd2bf04c99d5bae7fb9c721929324c999143d49326927872cbfbc864377de4344fb6ded458aee8a05b90d771127462a32eeed4c8abe25931a32c90dd9e4e67d701b52d53471e4900f92ca1498c3600e037ba7498149189702f3cca5889159ef349771293219e3d6e53ba57d64a491de691e23715cdb07465aaeed83c91b572ca78d348e9cb0869cd0923323c99939394b50b9cc9d7213f4ee90dd780f9b9a43572cc88df7e8374676e333bcdde29bbee19b19d978077a2936e555d4b7894b1c8d38fdafeb29ca6be24c72bdf39962c6a5909991c160fb4c11e352c0c4c0c064ed3345e652c46431313ee3cd4bed33054daeeca3bcb30dca37e6008a4b031628c87e795dc8a037b7164b80bee5442cf9ee90e10ca1bca24205df3cc87e796a4a4bf9e6aaaaaaea00b85db87cf3dddd5d0750fcac7c6bcecccc0e784d86976fdedded000744f2a32bad39a03907e59b3be7807e5a648539808148be259b4d8a031688e4d675591891ca29b72e388b9e9254482dca37a7248e90ca290f52c92dca53f43f1ce4798f808c6f0ee59b4cd2a03c03e5600bddb68a60a9cebca63c5f6ce2dedde71d1b0b6a5833fad6647c9bdda5d45cbe796f691fe74dce240d8ad562d6846c2f3671a97d9a94de61af9c54b2e42c5da576c4ce580318c849cb4befb03729ed43b925a753959c196c529eb7fc6cd9fa4fb7e6f2134a79bef8a4a441f98cb941e90665c7c8ae298f0d96eacc1c5e9ed2f26df190597ced95dea1dcd5220684fd391ff189ab406df1cda924e889b35047ead3c39b5359d46700de9cbaa23e4ede669b1284cf66a43eae4b1ed4d43e1b8c6fde5fd09323834d51d487086fdea4a88f00bc7973519f1e6fde5dd42700debcbda88f8f376f32d4878737ef2dea43086fb3870ed71ef5519faa79a63e9595de691d6fbeeac387376f7acae1cda19e4cdefcd21310dee44c426979caf90a9bf8e80e195ff9de42f2119bb2f0a93ae22ae8a97a429545cbb7bb2eed7371e91d32f874796193cb839eae39a82908e9bacc67f4edd594f6c9a4f48e95f6c9744c791c95956f6fbe978f48798e18849b220e0722e2f0f73653f83484d481c39beb70abafea884fd995ea097aca96a0a6f6ec28cbb75f5cda87664bef78e1134d976b0e7aa269839afae2322f32be3d93d23e3651b22aed639349c9aac49ab75a6bef5190a2288a8215849044b22ecbb2ae0bbb1666b5616c74c1306ce990c15c4b876ce244a14396b90573e9449cb7666af094de6997c252d8ca0c8c0a57a9f2ed5676e9c41bc934302a0c85a1d4d4d4cc94281d4d7a99b974a2cd5b3468dcf0133662a3196f8a520ce9a506169443ca2e65b0a97dc920e3db651741320b26e4c923e569b7c18e90577a0773c56c70b16e2e22e20ecdf388528bcc226564e44e5c2001c4f58251d92e5dbe77a202e950ad41b1c11ac040398ec8a82a9256241269a6479447f28a0f3ed8b821e546141b64d8f062a38b0d2e36b6d8c4687303c78ae344f101c4d5b2597a470e9ba5b2b1457de0709c28edb37395b89472302abb65b7d490b1bab0b03d3abaae9bec7bc41c56aae4e454507e30da02b3050cb657aec4c4d4e091e1604136bc688ece348c8d2e6ccab978643958504e17363565230c31d8d4578ed85c27c6bc4f944757ac54519eae5103e78651d699cd17365bd864a305270a0e15ea05c70798b789d2353659fce0ca3e3659f04efb0f3e8098a347cc718a39b225645766f8cc8e8c24193e0188d24a9529cad34eb385060db7b14146ef74a9e4ca3e36b8788b385268b0204ae2445921380db655aae0b0d172e335385170a2e0d011378b9a1a6cad58c9c180f0db01e7ca1171b84fdcf153d4e13a11fb00447924af482bca23233373038a8d30d8d46e8a36b8d06034d8c48972f4ed345bdac7464bef34cd966f0110c1c3468b966fa7a103475c1eb0a99d060d6ca774f10103c22fbbd8e1c6f5a64885c7858839ac284ff3c4c47843d813b784515923231c3678e24ae99d761b581025312a1ba5ddf2e1d289969487f9214aefb4036113a57dac097f905d62f540c4244b74216ac2cb134eb45b372e9d083f4754c248bbf5c3453d10d18804b49b22048ec81131c0a6f61c18052c9d6b88b8847fc889d10fe1168f6c8737c7e13a18111cde3c88f8c6c870b8b24987eff020fc87ad20220ed7dfe13ab0a01d72880c875b7bedc0a10333a2e871b862427048226463930ed9d3f3a38351e9d1a39f4dbcda0d4607e58d721d38ae46e1b872441dee03107358c951a577da858839a6288f4f8fb7d3b4a19fe4ed345d48de964f1a2f928cde69ef8936c2e09d0e6ad2061738643b6e60a631b2f51c56d4c78e89134576699f1d6f3f7accdd06171b5c5c474747103a31e775e8b074ae1c5187bb080037c5201c8848b9107187ebc4f6345ebe71a2e8d854691f9e56bd8ea4b233e52b0740fc014aefb4f344e9a577da71a234d9800a6847ca2e75c0b103874e10140e2c48070e1e59109e030b4ad2a0bc0ecf8105e9c0e1b341790aca377f4e1ca1bd337b4b15df5c75e890e9cc27a47cf3f9c4946fb3bb7c108e23ce240dca531e440e2c884927f69b22951d0762c76da2b48f0d2e6d33c586077c0ac2db6daaf04987b7db08814f948e4d946f7731eb9d76c5a8c0de9143b6414429069bda7544e945d2814ded36b874ebc81c1890f673d8d18151593964ebb384e3d2891c4410392e9db83b760071e9447d53c4a1824ded40441c296cca2171a2c421e3e236c2601f2906f360414dca2e6c6a5f2fd93a006e4a363466d4d000312393c598726070b84e24bdce741c519547a7c91f6ca67cbb8c536ef9f618674f21bb11a7c9469c37a67cbb0f71ca247c7b4e9c8d05274e538d387b0a373851bebd1467fb6993c5b7dbc4e934e26c2c33e2f49a386d8e666926ce1e99382516df9ed9e0327b0a3f6597d983c5097fdae0f2d08ab3942307df5ec569fa29bb643f6597676fd810ca790b3ef1153e7af0156b549c2b466901baa2492594966f6cd21c5e5e7fe875c21803c4e0c2ca936f3a7c7b0e174428e3db5b3bbb2bee9578e58b8276b5582158751a0b0d9a003eb7440b28df9e917174842e3fe333de6ec5d4382ba6c65ae8d4c2d0f8c388b477e6104ee8336e913022ce639cc280143d8cf1197d9a3829b77c264eca17e88a3551a8aadc79e53171167de5ec307156de228e906eb784780d9f28af714b7fc6691cc61a9f89599c459f79bbc5d7e5397cc27c557966c633a1b74c4e8c88738811810ee33f0d331865e28cf1e659148a719c21ce63dc798cc41902e395c3c81c2a50a23000906a00485814ba64c6a628547915219ba6734ad6909c6c51b7934356b9624778a128b9ce7276762b6aefb4e6c0903d578a924df8294751158c19253fc0ef7ca8bf7cf9407b27a9c651f080ce0b7573cb5db4dcd4c9e43ce233b72c57d6f92c4acbf7e9bce5304e9d871042084f98b367723a1a2a9227804f938822f814e399b32340c63367272293892698a8ca83456593a9e62dcb92ae9d14276cca71b64e0a2ab0e72dabb59e1e397bbe61707d609c2f3fa21d3b4c7c71c3c86096917c9abec55943e49a5b1b86cc397faebafb7c679d72ef5c0d203dd0f342ad5c5e6b65587037b625d2539eddb2009045797fe522075decc0e87b5eb9d001169e8b2358e141187f5dce050f54f0a6572e7610c6efe08bb7de0aa2959c456ff9f3cb2d1a7f951331e9c9c0640b2f1a2bf6803272421839b33d2ab9b4dc91e4029c53168dcb49dec4d81fce49b379a9e1b33d97b79aad85a2654a162947519e7df6780b4aefb0571811ebafca2b2c880ebfbcc427f59c4adb1b9a972b96b0204be640997066b3347d9aa03cfb1ef98e9b1c08cfe1385c479b188d0e3f79fc6a6fd86101804810009093bdfc453967c1cb7bccd0c8c06441f8e49194573e8750975b8ead00c06d08e1377adc03e07108973cfc076d624c1e7f3e9b9727b98e38f775788505b920a987f390b36708394d301e00395dc67be42cd1b8107266330e8029048f04008505b95cc8e2f18711b9fef21ead3d43e32a63398ce5992585900b009ed76e0af564b5473b3ec3e43480709c1c7e83c36d74bce42e363176449207116bb80e1deea87d968c1d39a149ce0c08394b39e4741c7ba4b347cfbe64b40f5bf941ce9e929c3d524e9329cae9ee72966ec8996536e49261cdc809218d9c59562a6510be9265e3d4e27846c36166b8cc8cd340bf7c562539e4b2fcc959916c6e7068cc98612bed4323674f8f8c9c26138c9cee999ca5d24a2b94b4f27c2521e22d9f4988983d4f5ae74a52be3d2a8730cb4aa54ace2444fce599acb1dede703989e4ed0dfb439f042f08af2bbab7665ced0d106659a95455b3a7874c424412229210f130323dcf5d7a877d96dc347bda726a616424110a86bb64dce57117ee7271171277e9f9e6854756c36d70dce291cdb8459344e7699cb1201ab72a27c5ca2d1e590d9b48a5cae291412ce8826c22491229cef875e333ae58d00d4663c969c4bf7ae2abd2cfb81589dcdf346e6dd5c1585e72c5822c1e99cd0cff611b0c08f4f1c14998bb981acf5cd927c7615cf934777ce53ec41ebdc39e136ba2f6ce53c7a2f60ee55654e59191b3e62bc78995d788ca26183975bef29b5899323973bef299ca69c4525436cd883672b68fc299a99ca527a7ffecf1a69f3d7a2eef2ace4684904bb642d9deb042382fe5687b43f3524283e99d5823aba43e9efa703f00e5619f37ad0b51eb6632d854521f9cf36ed5a053521f69c8980c3e4db642073ecd243dcdc5e002343e5595b3b3158bba4aea837ae630b2997d4507cb9994e5cc9aefa13cec4590e2acc948ce979c4bfce5a458c5997d55795579e556b45e18da9c9dbd58995724777ec524a5af2aafb9c0c82c974ddab3922cff6117db67318997672759243a3cfba2219bdc85bbb48f11edf2ec93bd3cec71c5154366f9bcde923571b6b79e932ce7973fe7964fe89625dd252d399df409a56539cfdc9272ee15277fe6d69b44add810e759e6165f4a919c82a9a8607e79e31315280e84f9252749ce85c188586fc56041649c44aaf4adaaf28dc227cb2b6f2ca822c50c0bb2646393564e13493e1361fcc54a52804d587c52e32670a018b72ce8975b15153f6351b03fa05f42ce2d223372f25b4e434e7eb751feba1c460b3abc3087ce2d877eb962432eafe45ca2c681fe9c647925a710cb2b2296574e013e91fcf285b23f2abf6455cd20390d16e4cabc0623723de9cd908f5443f218d27b3e83e43448cfedd15b5574cef9bbf65088f5d97317170a4d842e13f567228c5b7dcdca5d7549214bca3c49013639c7e293183781036155e5167fe69388a79c0ac6575ee3d92123eacfa410c92fb77c566eade58a2de0aafc49925712e7b97358b99b0ac643f9c6c82651ffe5ce05001d8b8d0500e5246a9808c64fe7375810cb852e09bd0646e47acb929349d1570e298ad27fff6608de724b9719668ee02df7965744dc5bee2dbeb47d9a57be9810ca2daf2c273de5517e12f15b5ef496cdd5245d86f961eb923812688eb9039a63b2e8ab38617b925b579c953ba7a0ff702c7a52d42d5f11f5537251b042506051b03ff4dd4679d73beb1d6b7a0a0d27dc9c2c74b2456c01e5412d9285599765d5bc057d96deb262e21b23836e798c6f9cfe3172882c26b6878958bce26591620539874dae897bc6825afb8dea9e870cf00516c12c87b145ca97bc44e373c73f9f3daf3e337ceadcf8cc7975cdaa29ddc84c6aefd0c4374646e3303030b1d1449352aedbf364d407e522f697f5a4ea2d775111bef52e2a526f511715dfbbb7aa7ecbbaa8c86f5d177551aa3cf3e6d961dee22b531fed3be7619cc66bf844e3fd68e410d9a389ed611a0b42f95053dd5fc3a71c36f1e7f0a9c6dbb319398b7ec661e2d479187fafe61f8dcfd2bf9c7ffeefc1b88d63f18d91d1f873cca988c921321a8cc65d79287f11d2c838c482c8c8c89c3364ed242c68c6170302e334fca76762c96184e83c0dffe11a3ed9784b253a4fc36d6c3c475299e10f9b512375d894a90ffdf63d4356c3de9ea90f8a1dc65f9cd9bff634f0697c5e4fe334723eb79c8a337bca2d99b83ff31c73c582c44498388b1ec61703f29ce43f0d132fd9a43d09632cc892436424d6b74892a87d55c326f67fb149d84eb668a691aa7074042831f85695512abe4b398bb9d89447a505323dca828c7f3dca220effe48a751c99d7a32cb800654646464640ecbb07cb6a6f27eff8c3a649397421ea63312094439e45c00f9bb8c1e5236c71be864c1f3ae5950329fa1edc2ecbdaab41c711d2daf76be530f22b26a4728bba5cb4aab8a4b2aa0bba4572cb2debb965412771f94a0eddb0e2e4b7e29bfb503677a90f26fb9437365dad8528cfbab5ef044a7ab4243d7eb9c716babb9b77db17dddf60f7362fb4d6f44b16d7dc77bb5f6f0668dd2d4bfbcf92146b28e695676760e9bebecae6263e95d8739c8ae71c366dc6a667bfda39a425a874aa96e973450c3ac790a1119a49002883150030301c128a8603124d54541f14000f93a65c56210a644994a3380a520a19c3082084000018112198216d00c95b065e65fd3cc27551dc8222c2552c37d1aac814fe97141a819b4296c99a44d0c5570b689f0544a4bd23e18e8d1de0f2f00bdff97c3598eb29760dc5af787fd2b9959a729a1acd1aa6e45a94c3c7897b6f483a0f1010f2d64052fc3a4ada9e639b0da1e617bb9b42bf2eb277d1acd271d20b9556c18b948106eda9a18de22bcb0a15b194f06e10a61de741ad0f151da3b048c1c4b43df4099d71e353bb50854bb6cf3c9dcf7e3dd9dbba2e8e9e73fd634e960f2d54b9d128afcfa2206ae5474fe07b6aaa7dc04ede8eadd8a4fb2dfc22bcc7b6218ab771148e8007c92b763917a6835dde339e1a1609dfc4fefedf14b48fcae013c9bb39db61c14a2fceb3ee6cc2edb17482c4934700f2c4866012a29df3dc655ac9d9b371d56678f6fc5cda5524777c83b7f612634608a35ca2a35908e8fc83ca2d01143801a4d3707e66d119998ef43a1312ee7eaf2fba9167aec609dba9dd5b69ade8d889b1a839e9fc82ee392bf60daa51b89da1e95f00ca90a99f8f4508c8ce0e3af75b18eb669a12f06f03f340ca157ad6b61c9d5f6e5723f2377c8ca82b82698eb0bc647d64524177f027205d4762662f046bde317b77e2c8de792c9c6a469dc80f3c5d50139cc255d437e030ecddcbed9035a3addc125b3650ab2e3127aee0be17362517e2322e430d31cea3ec7fb2cab225bfd434b3746227fe9a3e9b94bb6ca7fdfc697e48d7387074b893b61d2aff82fe7c222705bc7ab362635b97278c83fb29043f44a20edae8718372c329b64f74c8712c1ffba292ddc8debc6a72bd8a1d698905bdd374fc6109efa95dcc98428ada3c5b048cc4803df212ae7fb7e2a93c2e12c65092f4a2d0113a06942f67f231246d795d697878791937e83ddaaceb8ed7c5a764eec98b6fa08a81eaa2aa744fb1865f170681fc61ebb6170689cf6f6f80a529d33d0aeaf7e85ae3f07582c975ec1f2796b593b32579ddc1a57e0cf17cb8b2ba56c660b380f9e7e40decbe7aa63df7b02ce0ddcdf998ee8a076a0bd8db5ddf8fb4cdae74573cac0d542da0509eab91e79a852d465c5276c92f23d3460189e68a863753bd0a73d377d53c552f4059583f133b429434d918a0a0ac5a71c269f1d43bbad42ed93ed7e2a4b3397227c9eb937a2110a748771a822cb5d68d3430e271100e8760a0163db5e10783e00d16663a580ef36761447b7b8bd40611fe14a60fefba6b509d07f98b45cf40b246e5f967b3fd3e61d94cdc46c54d22eef565e27eb21108d8cccda5bc934a2419020efc5ffb40d463a89f09d03b9060ecd01b890d3503c279f1e0ec57dd45d8d3727c45a1475e9492a04678c1a5c7fba5f3c3c79bdb2be78e775ac81bb5299db2f8aad78770bf84080e0d4aded3f782dff3558977ffee8778f6be59e4294b1c6432aff8ddfe8538d7972502f7faf038f20423fe92fbd57f254184595bcd88267cfbf783295a5eb73efd4f2071f87ee7a778299c8a5e030295f31a7b446c182d44b43ba612551e4409543513253198f101176dc37213d22e54f5b7088b84924c0e4364f1fc2c4a1426fe562f31d12f9c7eb48f2eed985b879d096163cc379a3776f723f23470bb1ea7a6b7e7c0c897d1f1eaa1806239a600e00f716493fba261013804acfb6bf72eae4d19f63a8b9d7db623e93af8f9505208207081e2bda73650eedfa9208f9595dd773cf09a5114e44ff43e785eebaf893f1195500c4bb8b2071213617f0f1939ff25d742fcb45e0ea2c246821a9039513c854bb410ae2c2e743cdc2bc4e30f21bb287d6b7722bbe98cbf2ac0a344b0cbd4e955321e0875b00e752c4b6004988b6af3b9e5638161b9965e2d939410ef8e4c6da6326deb54dd8a4882de02961ddbf50d020cc0a0d2dabd2155e43cb6d29033751f1c9ac910250413f763be3221926e8c201d13451e81c79de799e9ede865bb874f062cbbcb3ae51221105a7ed6b379ba2cd2962cdfb7e1bb0c622d8e8cc88ada46fa45db7d59165720ca69f97b99c791e92ab4508c1ce288290fa1e20367841ff2ed32b8e73c94531fe7eef51dd680000716e1d5d8e881c742e112f10b24bba22972bc0005a0ac761714af9f24629c5a6e3feca756901ddbad75f8a42eae95dae7fa4c61e6eae4e89209e75cc028abcb396d6c14b75d1069d1c70443fc2065093e1679e0422fa20f88b8641992a139f4c956587c48ac870cdfd9699b6606ebe52762757d222a2b0b526101fa775e9ff5ffc7673a13837ae31461a5e4ae140460a6c4c7235097ba548b8f43e77d49c1c5641cf8b9f888adecb8bfb01ea0a033a7d43d3ce4b67754c5bc90094cacf3af48cd2fdbfbaff6c77313502ff851819791bfa70c2776341098c06d3ebd61649ef8d0bf317734afaf83a21163073428ba0c2dc3e6e888e81201972d544e0288dc4ef4ae3d2e78b00604f60b6c014a38628c3b958647318ba032976c4ad903af44a2ddf153fad3967005d58e846a4091ec827d20527e1e36dd76f57ee4c8dcdde9cf8bbdebc8e78e870124da16d1819f6ac93c01a58e456dfde329c5311a1af599a1abbbef95024f36a3e3aa600df54f67364b7c7f457c143450ba0e448af44558f3059e0df615a595d11f115be2b240670fe442a47251fc81ef497e3d478518a30ca0be474fc1ec000e6044205a2312b69c8c011875f496a8e316cd95c513dd9a11db7619904c666dd14f8ac6430fc82c896d95169f408364e923758985fb4692e6a50865371d35deb7798acd8a4110c96979ca6a1fc0cef3f1429345fad6c8fee0a30eac32c72b7968b8ffdc8ea684b5120020e05cbb77e8e28c3c4fa8582d11594d7f60ba1fe7fa2606334069c82843c748909e34e6a5dcd36f5219053ef6227d229ef220809aa18ff7cdd05d7f442cd688e8f46c0dd5404639b7a2b5dcefa5a5c044f68a48d35a4688e51b7681125b3055f971aefe47c648f5669c2925f6397ce1d51ab2645e2e0dbb87717947535e30dcc852264e1bf4cffc90a1a88740685b008b7d0268b577aa56e8ece9ac84962a11c4621e0310f14420da3bdfbe2e2ded15bfdb33c4f69f382b4ef740dcab7c03531a83518c56cac97d60cdc519870c729234911528c866e2929b33af148a66e38ec44943dee2609b72655b35315f2cb43625aa59eb9c70eb7c8cf617c9684e51c933622f87c2312c695881800c2211b9ffb4888b2ce340c401df4c087b47aa738a33092ddd0f4f1f4080c634bed35295050684a98dafc419048af85c6ee267ef94cf640aa02a54a641555ec9b7d245ed862ce6931000e8c7750a2520403887711d6a798b42be5e5e86181de50520a24c1e14c8233d1d4676b1fbd5de487d756e615dc7797253ac84d5a621958600a7166902ec23c657053d3dd189fddb7bf59181392c5c9b02f685e1784c8e5dc120027bddd10d3684462706aae145e52798b45f7e7bce1afd65c3ccbe9cd16a14d78611a3a60617e570819186b17c87308c63bb6df3f38cf3f0fb5bf1740c1a8c23b3ca5a3fda3dad681c8459d00310f58276fe0cf3e8501c32b87bc8af436d8c56005daf7897a5a868853dd41c06fe59b76082af400681235a6179a516607fa3aa6ab15074af0c444bdc846de40e746fe7673115a3e49441aed21ace0eee69aa4536aab617054c3f41af2468db3f4eedfdb972fe40222f65c0511d84e4983e7f793c6effeaa93ea06bd613232671ac02f409ef430e9192962a5b9359531609b4b384aa846eec0f662574624df5968013ae8835aab275586f64ac1de2f12e0457a1e76f851de4b015bdfe559d787501785218b923550d87a09f191e2b4f0ad588d80150510b9f6de8bf57cc108ba1588bd5cb9e81a803a1ad1e0b7fd34773b40978fc6e90653a0ea039ea01a2b53710334d1febde6d5765490b36000a5f4731e55a74d03cf3a967469260fc08ed094e51fdb1d9b667be2fb28108b3f04498e27e4f5f672a6ee52c0e8d11420e372aa6907418c18d55b984dec68ea6aeaba7bd73328ab26e9168b6a31e93d7216a01d209fc9d5fcfc051086eac9dbcd8879bc876b724a39be2b08f27ad117f7d2053267a919fc3acdc70002c15590ffb60a2487b0e5a3bd0c12efd5d66a2bc450c03ce000aaf97d2da5f9c0a2ab897a1e029b40ad09ef8290f7c4c1f594d3481a8f04133c49bea27d9aff27261cc3bee8c73217e55d22af784772b28d180ed6bc50d76779be2460b21e8fb10c215f2207ec98e94d07683a5f07396de7962cb9cc3bd40ad8949e9c2d24f1bb9bdd47eac0c4430963300413fa5cb1c18ba4d74b69e5d745de62c0afa8052cb2e50053e0173bcf1397d289c4e7627891144ab5226d35c1f2c02bc2583d77bbb368d11acbb6c2607f8396be26c9bdaa1ff8e0fca481ca0c956f2b97c224f66c9d93a7438a63a80c9e9c694310eb134c3f12eb6197080dda9e6b6ad46b6d06bed7c515fc6107eaf98b59f5a2e80518c2e04cf1248a48b1ae2d16a090562b54e2d8792cb217a3994608e68f9a78b08dc32b0f7d8ae284460667f965a5ff929cfdc9c5e0b3bccdcde0a1fe53c200c5e36099523e4e469c6580e751dd83cb1b2562cf8e609fc22a377d8c293c1bb4ad68efdd634c12254343f635131eafcfc2910e1df08181697b2e9cb2ce11ff651f68a67a89d5afb941516da95854959d2aa08890b91bbfed95c73f5f15b5d2fa2be4d1fcbd9f0193420d196f75141673c311ff6a28d599693b5618e73f6906046f2d04192eb46a045e8410b45494fd992b5397acf5df0f5f3db052a86762845184f604412402924e32ecaa18aaa80e0939d70be740c51672381539c9d33825759df62df1af3a25ac66dd4fafd9aa3ecdfa786a72cd0e47e662969d16b0aa1565d08b81834b7868fa037514cc3d6d4e637922e36cea616e632dd964c622cdf913a7e38cbd823146e5649caa83f96818ddd0097dfb1627125ff0aeb618462c218e2d5e53a912e0c00b157a69d97e01136431f96e2f9b9802a809404ea9e63c73a76acbef12f9ffbde0b3be1085427b4e6456a3ad3feba1c7173bc841f5c40dc0ac0f109160de47726a5b82a7ef9b0f21e6244e08404c450a6d6a88924852574889d41ee98d84b17150d222abf629c99b95e83e72482f09a3ee4a1856e9b9a3b439e0175d4e1dc9dfdb843ee0932e4a1607ecb5ea63380731946e1019d98485f0686e9c194a87972e5fa6f63392dff881624b96969e886c65c5758dbe4dd9a9d854b88d0d31c9a482b322f0bbde7655ed1dccfc59e1dc09f79880951a1ddc463bc0c0e07f2a2f78621c1e83b2a0c8d7ec916927267f652b82cc97d4a097910c89f020ca1ad881cc4c1601d52d63874b36efce62d87a55c238a61ebdffb6d25adac0329ef29688ecd6272283834db18e51fe93f054cd28d298db18e577da81524da2141d0cc9b9e28b250e6b7f2a1be7f410cc28f71f41e64d31782ddebeb2d4a3f695474aa1be179d9c4971574702b334aa00f1d4541d79a87e3fe9e7b3f358f0de1f347264226f9405ba8fe9af2c090c7479aa736cb74621bdf65618fb656774c38b047eb8c783d6fa9d359d74da4fd82383e6b6c7d7316469bd79786341b0db05a863a7af0cf299c600940cf010bc39c201e778b73ec8634f28c478470d9512d9c6d47e0a2e3f9ec306cc3d402397bb3d3479ffafd720adc480529777b07933396cc5d7ab10065efedafd71932603990fc284112916a92dc7d32745a477c17faa0e7de3db592d92c8439ab364e5cd4309fcd34d00d88b8b89d9d0293092a057addb393014f73e529724e5039485b370ca8baad5cb02629974c0adbd11e06b0258f84816bc6d4d9739aaf13d42365da7264cf14d407c2fe01da8f598cdbf5cacddc99110814174f514b70c9e3fdcf92e841d97c95b8d9a01da7bcf61c4a83fd91969177b099488847579ed9315056cd824fe5ba453437f5afcf6a967bfff076c3a4bb2ca150b5401b9c15eabe193ce7156842280a28e13378ce048a0971f55e7139b93a0acc0918dd28dfa4a84c06a2a51a0005ad9eb0cde939c37987c1050c9e0956de52403d37a4e92143abe92950f6d44e4ea3355b386230a549dd59d23f86daf9d6839d78c30aac71ce5e62524c81cedf922e9c76c5e2fe91546189694da853ec5440cbc870204203ebf520834b1841b574d878c48052217c6c90cf2c380a82cb03bb8f81b65c626e0b0b06028bdee617b22e1138401cb4d0e47d918276180eff010b0ff1959c813db1710b5328f5c419eb61f176d54b4ec01f6777cb8dbddf96f7c598e3704fb368b0ebb202c8438f0a9750060df0285a261e348da01d2f1d6f6c9c59af9bcabc1aa4338efe7a06ab64d5543dc20ba1fcff0e4e38663401e49bd4953dd61f9fa8851cf7e30a15a0223caf425312306165c06eb5efac732425de3ee9c51d567565ddf87b2b711d2f97c5eb542f86ed2b450ab189fb8b988749db7f89a2c2603bee732b80c338ceb36cd7fae73a61e1d407a04150cd62bd19d03f30371b91a6fd16ce71340890196b10abd3763bd1901b7743f8f59bfded775b1c7b499e7b1ee3a49e0c6dd495b58e868ac7f3b004be129d8920ad9c701a4a1144d78ff83816b0780ae73324c2ef8a7b3ec9cce297407bed7d268664e14240cc68f4d2af290066440b8abc62148f390175d54401987a48b24c1f30565ea180bcb8bf581de92ecf280c321eb32eb7beba3b5afb827b9df4415682b2fe31146f790b0bd02609c44ab8954bb8e38e8b6cc3a55630c6242ecee2bbc193e3b0d1f7c42707f769c37c060daeb71510c666a09f8b06eda9cac030d862b4c818b262df0cca22dc4a63542c7ed937106a09b54259c88d49a55c6a39c3d34a2296f71014a7c07b571b35c1f4f9bbe428f2ab8fbea54379fcaa6625677ba5dd5db57421b5c14a9e3992b35b8110c44a442caab50d0a2bceb7220af96eafe1e5a4137cdc51271ca34605e10d29ddf134f8088dac5cf58bd852a2d4bb896f8f012231b298602d3125a4f999f13a7519a2fc013e9a53031c0f30f570e0b3377a4bf5f043e232f3de763652e6d173f0a4720c917a617c63a785ca3617a23fd13ee19190d61152f6d584c19900333098b9b6a4e56ba0e4248fd97555dd7292565f2aa10ae56275a2c3eaaebc2e463e639fec58471c2a7786046f5ad9f6eb4f30d41ebc58f04c6c51c35fe4aaf4467d5a9f8759db3d949614e4f358ac0ba591a0184ab5ea7afebbeb72cd8ea872d392b0fe93a8086994b964a8082c50b7396c38425739eaf46940cb3fdce7a20b97f79a8966c9e29dca688c7c9b1f3ae1fdba70b29ba40e7069f2f742fc4929ae3723f607f4ad464182d0b8b43955e1976f11c9a0f9cf8a7e2eaa88cb17c51c2a80e82ca594e89074ca6a62b156db132738ab2b010f728c07fbbf3dac830670b7ec3dba647032fae1d3940e9eef7ea48086e33e02d6b6ad9824d47ffcf70ff09d332b9294aaa260f4102dcff9c3c6944edf937788abfd71cb69f619966bf191db8b80961755007a685d995f1469564934dc7f50657548834d00705bd0210a1ea937bd3524443b7cf00b791c6b8371911ca86205a51bc0117ebb4cb0089845ca0976337aa85e6e84df82ad3d2ccb44d290446fea2a3b619be4067a24ed5198642955080472e7049bea65a1f5ea6b725e319afeec4caf683f65dcf0781433b68cfdb7964e541f9c39f41a3b04cbe3671fa037c0f3d30c485dd45b056306e155b82324e189f3ccd85a2c741e1425dc5e8918b0e70ac6063db82ac7e202e84636166ee5b750d5f3ec43c496a7098b94032e4d9cdc127dc9252328f20617b3ba095de6a0359153b835e63fe830af1cbb8b520e1e55253cf70ca9f465980718e4aeeb094f1ff06bbf62119ef80feb24b66ec735cd3d5bc16f6c0c453805af24f9b6a53903fc9da9b34f5ec1d51ca03482b7f07b23aff95a99ab46619b50f30e6d06f7590f119e32d7bc6e6b6e4570c391f43adab8189ff73b3ca291a251c2a66b297a64ab577462243ea5bfefb60d5b45f98bb9ca476504b3676157e40edb8174c9153426714dfdef2777795c8fcaa0d9dffde27910993b7307a5fe1d626a28a519dd70ef2f36d21d940a0780e272dd5387606ebca7cdcc4e8ef73ea60dd99fdf72ba0b87eac0dd4c3d1a508898855be3f6a1a4beec30a068dc492eb3cd1b844c6dc4e14509a99e980b18b686f318567097c22ecac9907dd88695864545e852c7f83065fa276107c4a82902b98e0e163bb23062a094c4573e8b756c097ba22e94aadfabab907b908cd81699c07ab628d25a4b9dab8cc5da4ba41d10c10552f0f0897cbdeddeacd1fcdd74d24134199c45e6f51e21adac07c5046501c9bc0b582c31c6760013a72c65c2087fd7da7c40d3ec5741fa1b493fa8b47993d0525816b1192f28cd7023bc9496182bce43f639856a326f359b704ba992dc2906febb9849f8d5490454db87f1ca8cd83ab7ce0d3953349a7ef2d1bc46ad970d5644166e6dd075394b370ccfb8734c7c351e55f14cec14ee5d32fb7811aec50ab32ded47b5b4a75c2689ce8e9311b444466d2b6e0d12539d922035afd61b585035390daa4ec55ffa5321e243dd6f2d8d5494ca2d2dc0d77040203ac867967e2a44788ab7232119890d07103b2ab6c1194d5e7c3b503bd8ed91491fc803b01b5d05861eea051f96514b449a8630f1dd7ed1b07539e5cbd1cea27319a6f0cea5348c3d94e3a10ae69f42e84f16bf922fdd2e88fa0e3642dc039af193b0dfe5089cda711dad2cc4c543fa07aa7f2de933bff9d3f42f8c8f7ffa24ea4b335f5eb52045a46ae36237d097d13ad68acb7259f796551ac7c2518396210765bce2e563d73eb338ae053c33620d78629f61e9de6f85dc0ede045bb7b23c2e9ec8fc46cd37ebd4aa1c853f33389764d6aa47dc6a4dd6fdfb1691b2ada1dc19c655fb1e71cddd16007727eef77de19610908e0fe3246088b497a1029f469160318a45236358f769f65164fc9f3ae08b84d790f70364095618eb57fab490904c2aa01dd6ff81f5837680c6cf730a55861e284f5f518ad6e85712c95042489ef787cb1bf34d2923d3af601f2e09ee579bba0cdd929333b5bf8665a76b6cc39570eba6a74f92243b36558d38eed95bee1c14de21d43aa9fdbfbd32bc0a4fb80bba4b07e04835eea4e08156e315a20ebca38ba5b6f949b514848d019e3cbf54aec2a9bdb9843d5e10d4a93046c5d1a6dcd6000e14c44bc6089ab2d606c6c30169778bec65ad2c44eadc30e8193f76546ac966dfb7f5af83812b5cc53d5e5e97eb7eac16654ceb069bfbb56a1c15f3b2f5cee784c554a2024e23aa93bead1c59d6df34405d5489aad2b1477b38bec8f8ca9b43ca9087ba033166c30a6944fa667e83f72ca3c55f40193a5c63ba4b055fcc3b09573e951d42a73be8406e80d80efd97c37121308997201c156b31611e6952518e9c4d9ebb3f4d774a70f06ac31a2fc25404150f55ec895bffffd387d92866d8bd21af67b2b509efadf4963905dea68a27b37e508b6c365e6946330aa27b9192ddfeceaa21118bae8b474c5142b447b469bce34085e56ae2187d3ec67844c72bbd130e27b4821492dc84bc58f921d0c3bf65e5194f1aa7a559c6e8283b0bcd897f9861e5274f628b3d2cf6efcaba27ac44c487f969baf5d8674a0c921d532028a1e4d7abe8e2c54131335de02580646bfa72fd33ee3808d3c88cc8ff74ae744096815cded3856e4c4f183098e9b9d6b86d34cdeba517d37a2abcee5a961216126eb2b7e20b11c0508b9bb98531576bc6a3e1d19ef2a5d476ffca7568759b0c2dd313456b42da93ee8ff3f3b4d3ea4eeaf27b7eb25bf6e09d2a676e1a42f860ab63ec2e4179418987261e6006bf8a6847243d3d7c2271aabb0f4ab2e6695ee9e5b1799d6dca4c1d071437a784b842179c637004e2aaf80428aa4a6246aea02e0b6c8aa2a9e68bc9b311ba2331a9d6bb0442f257a2386f3aee7dd6e2e46f952142c9db8d82d50390c2b1e50e4ed32a1ca48b643ba21c71242943452829158403ae1615a679985a74fc5ce68be220f47499cfa58c109a1421c2acf9984e85909df51e847b05979f39f0b93043205469278df41a4ac75bb55cc0da143f94d590d62170d9295eba13b54379931cb6cda2a6297c76e246f40eb9be01eecc145d4465dbc720d75d2a2b3b62e2919afa76c41a9629467a08e324f53a5b2a7981dddc362a52d0e73a125812e66711652834ade530da041462dc9443f9b5c341e2dda10d54420c942bdb88863b0d12258e9a8042bfcc7a41155e84c792bb6116477497a3eaba966d492ff704e80f609768bd5835bec28f2fab00b013805ca6166a9eac6a2b6d770ae1f21fba62cf2c548aaa4cf9f11d4c0797364c4e50e0c3983866a2a89bb8a711662020f6ea0b5960dd1c42df07255046d2bab3f2965cba940ac2c3ec5ff323ffd292251542e3ca9270028740a293125a67c584bac8613272fc895edc8e7511d3a1eef141680184aea00fcb3f4ca86fce79ba57060c234a9cf2c21da3bc6f98cbc469c542e18bb3b543ea7388ec1108c207f6c4902f360702057d6055f059c505c88890ca63fa04ef46919698a2f4514ae537472ae108231143b98995c9084848ab8c6b4314fedee23605383496b64b57add89f18e2ed4f59d524b05abdf7c2d96068175c91d120a29a0e7eafd71a60e18a2df3c783a314a68b58fb53197354e1bf68cae8831003c1bc32c24d8f872ddf01064adc490c3d6102850a0eb15a7a0147cc37ae856ec2a36b3853595b668d0c4caf6f88af85c02cf230e8ced70a90aea08ed2d992db6105a8be15b083e6676a99ff8dc0a83fbdc002e69933e4b49fc09f9a3fb83f312e61dcd127e47a266dbf506a9879b24089efc5a6236d64fbf56229186e812700c0ec4d10d48b9bb3d814a363211090909c73ff8427131a67ef226269883cab2cdac8726926255bed597cd4f17ad1b8ace0e870b4f4dd19f3167f9d324c3dc4d6e7d3f9a84236688edd07044cf06583661969e81c9bb7050f9e5a702a087c118b5d4e573df4f4e804f0e9ec1705e88274397f8e41eb9d065b1a0e5dc3c783e15fbedae7620bd3d0cf3ca3503c0e54a73dff838f5811b8c0a4b633410ae4530a41be3598c2ddf7343357d3e22fd5f8016ec71cac219730a32e41107d1fbfc2738fbd52e5c2d203e7784b623ac5f5669dc6b65e6359abb1add5d8d66a6c6b35b6b51adb5a8d6dadc6b656635babb1add5d8d65ae38ab8551a44a5d6d3017dd0d2c2ff004c4f7306bc7e716a8f969700283228cc228ab3d647cd7abce536dcc458b0554c90bc7b744c48119cc1244f07ef39913f8c29d4c6f0b627cd617f402b12b2d768ced8a5e2ccf43aba650ff831ad0ce4e9f1d6f69f6c91301083e16b9dbe81c7d41920d0f48f244dace56112fb67ef8c17e8a8ffca16ff47ec89afdbe7dbbc0611849270ca0c065de20005e16b0f461d8b2dc65d98c32ad78dfe982ec607dbe7042a290a6f42a70abef7eb0c244d080b84c864571fea23a5afcd7b70381e731d34190144fa05cd179b10289f950850ce900732b616adb10aab63525cdb5acb9ee281a3e8b1a7d6b9749ccabc059f77201f352a19b7598ec747096ac20bf73ce5a1527256d0c6f8826d8508580f98348976756437d414911e4df3689ca63f555deb130f77433f66e9f778e13bc7ceab0429d6d26db87411b1e6f30de307d1ddcded3ad15d68df205668f06b734e7efdc0cd710f787212c6b4ab7ecf7ae8f18f0dcbf3a051152a9900bdccb39209e9f4f6b0f2e9d8e4222433b085009f3f449d81a360fbd35dced8f5e26bb1ec286de953f6811e13a46147943b490a22d1a906cd624ef85c09def565cfd86f08f3e0b7fbe0c743e64bee3b5f555ba62173faa90d3981e92bd6627cfd4ef65f4cd676ffa21dff84a2e4b451b8f1fd6b05ebcef5b95724cdfac9ee9a841724af94f4119b0055fa71e27d03cadb6e6496cca3ea1c9b08e06e2e3b38ef0dbd7b5abb4a69c8f98ee271777b7bac2ea9454aed8517cf39bfd37839218466069f3eccf2934d150d33aa4aa6e3ccd624dd40e778d3216a0ec7510a3c08448426424e6ed7a6e95b3b76dcf89dcb2612a82263697666574925c2e68f2d6240d8de5217f9228ae77dff6502d9efe8f1a4b1a5a13405f4a058eca097e3fc480e123f6e4639708c88974b75c33ff99661cd86f234b6c8585385f688d8a7d2b1436e0053622ce715069cdfcbfaaf22f23344c91e20d0d5c90163d325532901a48ca10e2ae2cf76c98362f519f8e502185ca36019ed4bb8b1193fffc1d398c51a3b9123cf1b1124aca1ed38a51734809141e7c7b6c4fbbc41fa41867107dc04a4a7b3fe4cd0c27d8870ac0b862d813d77287fea071e82721bb235f49855076c73aed4ebcac06927621bd866bcecf81c14622d00128bf44001e70d25b442bd4680def4136df25c7bb498cf46e723abdd4aa06c5e5f3618dd95b4733b0a96cc0388f28f2e645c3a23a4277cdac8b01f253a080177760c23ee2a7b8d337c9462cd8457b637c6ea7c683ddd47487bef47018e81165faf472d3a393887b3de67ed0103dec253fc24e5daf8f3343dab3a96684612a9e3c3cdb620ced7d8595ddf28d565fb27cfe71086835e70b8b98dbcd9ff022de443f345ea2dc9d358ae6ddc2772b7fd4d9e2f0b24df170538d0fb89bb45e09c92b8e5abffeff0bf22fe147f7e1d67adfdd7f356f1bcd2f88206f60b80173099fd3ef9ca3aa535f4d8c8051cd622e355aaa59b148683e64e4d1f56c57bce7689cbbf7565cb275c67271527074f27b1b4e52d6cd48d773a71021e5d877ad322d261e0f37c2f1328beaf0bd4dff7b6b44f4da8e3f3097f88848279a5d64b6e4dcf22fa1a91d0b347a7db7d8574503d3ddd17cba3a633c1cc857b902eb2baa1aab26efd6b9098b9caf6007a5f71b6a5d4b0f1075f65d2ec1da4644cad4937723127a0cd4bfb356a7f83e0f5ed1664e3a75f62cbe8e5f78f339c0f551a56b0f8bb1885970052f8411d3fc35daa23c15cab16ea7e893a3648e76e225796fc2003aa14354940fb94711cefe1379ae383e2392242bf288710be4fce2571a5f4138d88a5145b7248e7fe9b357bcf0baf739cd0b9fed4b9a5f6be387aa03a633ad3310e8ef957c45e1213df8874f26b5b64a9fa57700b2c95802b0cdf64bc3df6f1d1db74c26c51ed1ab8125ef0b17f6ce3aa42709b2b75b102b1589913df2204cf230aba77393b18b68cc421132ac29c44412bff8247db5c91a3e73303bbd62aa1469098931726437a7c34df4d6b74d31ad46ccd365e334dbd465a9b934cf1e22da9aa69f424d7ae9e4d7dbc6863f4265decfa1368109479de0881dd0bc024cbb5fea7113eb071b38af3a3e199be7aa0101b5f3a93cc08980dd99e34829df2204823cf42535854637ba67ab976aeebaa7fa1dbd3a906e6f4f7978ee56def1b0786a2b66fffae818a63a501e193ddf3bb11b8fcacfa26b832f972054c3552ddd618d8981a2fdccd9a5d2281b88abbebb3d1844f860883052838778d02729ba3fcc3756c4d6fdc58a33bd5e6611e293483333950a63614442b7faefc989aa5da3efa8f83c9e20a28070d2fe20f7cffb4c834437c0751b9f72f3e58fac8da379dc8b80546e9fbea5e53dcbb172aa4d11e1871408191587b76b01752a68406ebc783402fba05060cd363cf2c03490c8b7766191beca700669bd981b3cf3f220afa9f4a8e2477536de347e14acffa0ca7fd8147d8a9ebc48dc16b6176ab5cf819dac48f20eed3825fbc49fe0e33675c39ba7774e65beb945da4e89d7079482a422c436dead65030103748bfe8a151ff289293d209310a5e8b9fd1cf458bb9621a46b4fe4924e39207bb73e5b37e7a84b34a883447274e92b24df7d5072a4bed8449f0ef1cb565e3c3f1d25c299588859730a66277278929a999ab070f55c6fda4be8ab97b168b3ef0cc2b9610111f85d2cbe7db22935983f60d9dcf2a1be2eaf565f6ab8ef9a58b092a0568239c36b0773e070d5ebefce22da569f66ba73164a342c75c43ebc6b3c81f200ed014387d57285e53d7ba143be9c1071daa5068523c9c6338e96f43cbc2a2391e514759d1e0ed9070abd4d128a5d0ca4c2865f69490005d85fb0c07274c79c165f3e6be1d2607c2ecdb332cc463dc264c4c457872d3aa23e67571fbe4f6bbae9fc5b3e87a66674b22a273f6e824ba5003fc73d860ba1a5685cc0a90802bf72335a1f665dc5c6caa3841b8686f71f07b318a63e62ce44dad9931315b199c1d9b4036b18e09a585bfbb893f37749ba3757556404b6dd9592c4c610d8504548ea4c62f4aec5314e18500e1328b1bf44ff8b080f11867daf6783d01113d05d0051e1a00c3ee106abc3de5dafe6b7be8874e3230ec33652189615200ad969b74d622544093b4397e9818560af21f2af3771bb9b54a514d777815982ac8febcfe542288ac17674241c7412e29038fe5fbfa3a44a9ee05dc1a67ad5af6b7b919a99446adf0f399dc49972b1dac3ad5cbc7641d8c1684e9ff80d1dc023e693a1772327de496d43580e28c76ca01da6752cf82c461410071ba19ab8849f7bbf96ff064431f881e28fd7674eea742896fb3e058fbb0c8eec882ed6950fc640760e103e66c93b301051c7cb39a2a24770be34332d5d7a777e6b309409fc7de7a95f992d840fda36e88e663fb981dee270c329f4ccd6e48d4be5106e587f3dcf252881b7eca0840542aace17efd4123358ae32e10f19328865248cdb29216b4d48a241deb697fc5d662c0cc770444af16f551c9f9fdb9f51c986a5c652aecf58f1b99b1b4f04dbf1b49ff5ca66b5c746442e9a7ec09c79b56bf674030b8861e0289b0398976ae7788b9fd27249e3f32250fd381cb2bea9284849bed6a444bcebf82da66b91649cb1aa5124b49401882f09d8f4d594a0bdcb5933f261fde9ef109947be8c3c90e11b5e3b08961df377a11b5cca56913884de2846e709b79a79420a01f081d1d3eaa7af0d52aacd8c62b1487eca7d817e213f02b1b508dcf9d7a9b6c058f4891f9bdfa17afae3fac3449f51c4fac3ec352e1d01593aee61080a6c34cbf80bd00423faa90f18b8b4900065eb016ca78066dddc38aa000567cabe8368846ae763aeba90c440f9aa339eb5d7e339e5043c84f4ba923d92439afdda28528f8694203cdef868a298a0235be4fac4d455b5ee5ffa6182a133523cb5e873072a84fd67646a10def4ff420740753387cd20c5399a0b407e18b8512986be4cbe2bd538d4d16fe8e156e1c28a2123c62b1f56ed57927e724946535cb425203dd1ec5a948dc0d74cd660f2e9453175974812dc1595c32e1832eb110415898b5dc17da183e62a7befe549e14d1ba7a0c54980e1c9fe6243e5ce0d8e5b4c885eb7b4a9be6f41a3efe27a21397ca8ed6cb8bfc07ddbd23f2d99ffe00757a47e1c486f132f30a140ff5bffd14eaeec74a26274185a89ff2f34a6d1c0bfe2076f0ef7fdc87385f9cddb606bbf8a33988e3d7e7e6449142c9e104f125d2b4fa62c2e567693f13c38e635eaa44e7cf841d86b3c877b76a3ee53bf542bd5d15b6c3b2b68cd58febf1eb92c8514308179e9a5ce872a05564fcf4ab0ec46650164bdeb90c8cc3c1bee82c4eeef82e04ef94d1582b1bb3156ed1863aaeb17dc65533ee90974bcf29b354dde408fedf06856de401a421db5d62efdac88a4a47bc97bd80570e96b4e99065d4e04a776464b85a175c58734486102f1cc5e73c709a1b94062bc3b7f3eba2ebfff30a096e7838c985f90904589f83e32fb2a810a92d43d4daea3e87d6fd8f8ffc6c331f4de087274111feb5490ace1f97f9e2ed6f77f70f2ffa7f8b0fdf0fb79cab72361bb5a37c3aee7f83747485a11e0db7e5eaab44f77403a439e3b600cac894124cb7b411a133b8b26cc5e9824b66e1aa7a694136a99c9738c317a514090bfca9343cc96c02c54d2ac6cdd813ae73d1722a5dd497e6b870b7a7bb4b53ba9723d9631f7a8c4d14a6a39bfa808beb5bdddcd5a618013ec3caf2052ff706b4ce17611e649b315c6da9edeae7c6cb65a8fe2f2b2e564010d3e8d2bb700cc26bc7e98ee0435fc113d62b859e9a3f09de1b8abb3ad3483c6e6c8adcb210f4825e4a1012df401a4cb8c48dc156fb5f0504534b309f40bf498384f5e876017c85d95a8f882d874e2808ddb180650a4e19f231ee79b8981c9511300fbeddebef5c4cf59ca48d8fb206a01d74d5edde221c815c10452de7a8057b2d2853eae9daa8394c0298a264945524d62221ec6aa8fdce526ff7099410f36f945651d6cfc9df932d71b8c86dd239cfc6a39e770913b76c857aa23a08e6f706161e88816dfc5c096cf43bef94cab155400d6ce587b3a51bf8ef8c4103267d6e8d9cddca95d260550e955d9a6c342dd0b8704b84edce4d8b40bf93d20769df94656b45d011b730129f6f1b9cc8eef55e4e48427a1536515a04592a5c0303960f4577d898ab324c0a9f1d351cfeab0f4c4439008831d02ba4246735fe2e0aa739e0d2a572604261f4aa159137d8a3308d9683fea759ea11eb1b70921e69250ff45fa3e96af3df2b878beff7c970b0f095cc5f952480170e27650631b1022a4f4392ffbeaa94ef01a1134a8f4e789a22c35fffa6fabc7f9dea3baf6bed127507ab9d28978bf70e5d513be3f47cbfce1b269f5f45ee3eff945e1b703fa0bfe4d1c6ffb57763f6d452dfcf05ee9784a97fa1c632d5f27e60cfedc48202f421582bf38a8607c821b82ef38c8606e821b82ef38c8606e821b82ef38c1ef412200fc17ad976f67936f09758249ef41e336354f3b5433d89b682f27f2af694073d7dfea9c860630053aa584e7ea0cfc8548081efbf58238c4a6599a0676998f7a6830c8ca04c73877457ee4d30be7d6794350c517eaa25d11908d6148f3a93df7f3268c998cc337c879e14b9add235252d0c0eed8c03d326822792007a895ef60a5943dfe70602572cf070deb5a262e84c55720c7c47735bb2ff671259cdb974cc3d012c08edf400c4330cc30f26653ae1d7411cfce82b3fc1cf617e2460c792c6fae29a1defe33cae4e9865f0cce2ea6fc897250d9869855645ec50c79d814451a24ccba5752221c16ff5315e0a3670f9e5d19608065dc59f81544d77b6108a9ab9fcf391142c8a6595c452d91fd978c355d2c229fffc1ed19c34cf817e86eec6aee7edf9de30fbb822cb0def7a2b0d18f5e025b177f2afb72473347a954c5140f9c2d38fa8caca1d55f8d81999dd2f792a51b6ed20f7a4301daf2f95d8499212b93757364d6e354ac317b26f54b612b48d9243d91cfe25995a21203db99910d3a87678e79ded2182e57093d1c71cbac035acde264ef78467417412160e11e89c9f0f64baf372c4e1989be64cec9b9f7a292fde2193943e456502238a4877fa273b468265956acc5d4a941711b438bb77942aac9885e2b3fea066e1586fb62439b7e2c8b62b3357479728915f47c94063a26b441a90b41a26e5141baba5949c7c2c59517aee95a8a275f262dc808552bf079e98f0f085da752e25ede478d9d4d7e82e047c8400490f354f6de122147ce18339467834d34a453b8d109964b51a2a625bfc79cd29fc462a0d269f5afe556a9f75e33c4b09dcf1f51a1f44cd8716eb95086ad1b1263533fcd130422e7c5b70882497bb782778dc6d99f7d533ff4309cb9473a03b303a733b6c9909bd929325da0346cbe38bb475fd4a93b888ab65673943fda2ff81cbd0a9f76c60ba6fec6809886466fcbb737a2e9762bfba19a86fe690c67ecc1634d583a26722920059a9fa30fb99705984b65e19b76fc3590d98b0ccd22a7c0e60db92cd8221bd243eb998777ddc63e6be1ec0033d56e3fc1fe102c9b0804509dd6506c5c2900632ee379dfe538d6abfabe11e44b89093402811b0c2a93fc1293d9ca691e8359daa560417a7cb3da7d37855b4f1c56368f190dbd195a31019be75d87384428b1b3dd73c39e02b39918e059affa544bf030a19fcc159b9aec36f0bc5a21395fadb54f1852b61fa933f8311f4ac872e1bacc6a3a886ec21c493f6788c13ba801083222d85e3aecaa2a092c22c365994b83ea1a2d701027fedc93626a506f56f3ab87301dfd4c2dc64a54d7fb6133507db69895ee0dff8925e644ff10cf38e8781d2a0a91f12b994b5f41994a2db0787728b3d0256556f9d008133609f03c7235905184e85a5b3c4f257a3afca41ec9e1a748bb2911429ee3ca714a79ea174b50c98fc167ef0d7c2416bf1c1390b47d753a9327df6ac8a95ea8306f968b5dc5d5edeff0e95e24b64b89314173b8ddf8628554aa1ab9f8198eb5659475db6d59031fab8b6c8902a4fc9343c4d8411cfa0d71c7927eac46217053f322f9e9a5dd75b96023d518bb5e673b7942f503ed94258f8c6b6ce9ca7c2440ac3777663d949580302203326792e5ad3fe6fc8c7ab612f1feced835f084d31bcd517c4a655dcdac3e0084b1fcf651fc5a64f5254179079216ceb14d64cbc82edb5ba14716fb551c0bddde2311ebad461164737237a303578648e3caff54b13c7b9fffc21de5082132bcdb55e78c108ca3b3b384771797425c8391d1abeec24a0c04e77c398a31f478e37cae4e31b243acaa179a3fea6db9ef3c7080307efd9fdc04d781c14610257327b74ba223233237be2e9ff2fe4d24e47924e18f3215bedbe5e6099d0f8255886369f92f359acc0e8c185b22854dc423d9b9685ee643c30dc61bd6d681086e97a09e0e02607e95cdde5fc2a39d6e6d2fc4add9b0c81925663bf11122b1d640b2d71bd5ae1e2857a18e93aa4fcc66aeb63b2ebfe50bd9bb5bb1316d1920b4ff4a3f583d891cd704520e8caf22916757f45ffbe3b2eeb755d18092a69528b38a024428dd9060e20dee0d6ab4e3119234c93061494e8a9e8b7110967d74b0bbd4cb208d6f430e589df8782190836a2771c823439d56e09650d4bbe7504b41c227c0332021b5ff445fa8bdba12f8372a5340569624b9a5b62064a1f268f06651547cc32490c48023dc36dff703ac8854d9ccb4a80a8aaf302e70097e267fbcaf8c8c62e099669c4741f7a8d56bd6c90f33f284454ad7a87aeaf055c765abf9a97d52f5cf66963c11ba1e40a18a6e5e29e2b54f1803d0a4161ca43a93cd5be7bf7d1290af54f1440a2b43c11f0eab5e85ea80fb969e5f89db0faf01f74db8d286a5ca3dae65d1901ac0a36450975dc639b49d7c89224fc187bfc22a485edc512d346dde5bd53599b79afa632f5f0bd90bf987684021e8eba99dc8de4e51fa1d82a5e474794e66bf32fd0d1f07a4f8a3012eaa53a03eabed51081fb41a8323e2971588ffc382535b93f5bcf3f827dfee5b785743afe32f6bd5448072aa2579a79680efd34aeadeedacc90865f382ecd393caf50d8c13f0af58737fcbaa6fc941280b280fc397a68c69f27be67dbc8c63f6c111307c63b6181250d89ecaecc1744437b4741aecd3d2d4a231cff71417a92dccf9d084351683cb5d3a1edcb49fa0bf66bdc998e1f0c4bfd01f8749b631b720040d8831e03650fa28f81b1d6d5785d2368b37bee619e52030c6ef0394fca86201e7b50422df196e85f0217096753aae8f5372c14da7ccf447892dd2b1382050b462bb344fa014a67e2f4cac275cbc475bde0024f8830be0b45713488cc4b79d463ba1735f3540e7d63fec5f78dfca7d8aa72d93a47bf83a3b0980aad19a187963e390ec4e05098d6058a73cd3bdb284ea66b671103155321441652575d5af8627a95cb9b6685748632843bf6ec9053bff60865abd5d0f400bddfe3b91f046cd6f385d717c08b89f8028338078f783755da5e610feef1554486f9b2dc972e3e03f85bd0eecbef52c7cd9fdedbddf6fb27762eea552f1ecac088958fbf2593e4da5d12cc11962067839987405ee2cd651045a7ff08b020b0e5953dcec10627b38160b1c490c8e80919ae7eeb925cbdd22926596f007359104de868c4dab8cf8cea13134c0a0c43908c386fc790ec3f95f3773d64f7b501070e7b726f5f742692da2b3c4aee51a60bb8ca6d5779cb7af11f7f7e06c82955d88c5bc5fdb08219f0322e92b50bc4661a953933063ed611265258222e15c75524b23397d8f87b5ae443244ef3c94b7bea9e8e6dbb25d61f0f74a75edcda65aee5eb6c9049bc581c28523c0139f9c998b0c8f825234e4dc3849025809452dc7214fe03006450218d84c7bcba6ea2035d53c46b24e09cc592cc9c189248aee46af958a52441696ef0d142f2f3829f4666612bd95d99cfbe60d67f919eb0a7582ba9679019cbf6f2c20a9d7bf1cc29ec92efaa1e05cc23c86e503792325aa11d9bd54fa66b204901905ce521ca9f65c405653788648619d83f11dcae42d91cc3ac1f501fdd80b6eded079316a26b8aa099e2b3639102371478087aa50a222901a25b67346a6c6951c1967c2c81652b6f1ffa5af80c761233ddb66d747fb0c5ce0d6b1a20e55a525867358f2f4a01de5b5b49de5a9199d8d264cf6321c726520d09d5a732153d01b28c5e3230c045d86c29643807463fc74c55afafd3dd5ab92d9bd12ef059a39b4073a7a8ecd573d9145b63d063bf17835894da6eecb753189fb1ebed5d2b302bdecfab84b3b3a99a0536ca04e76a82140fc7eefe1f97d17046350735d75db8bbedac8d5e69a230198232a57a4c62d04eaa7dcd1d4fa47e480ea17e10ff502aff4df0d8814e62755143a6816a75fe5347a14a5df8620e65a1a444685a8f3d705e21957eb623b4b13b42547dd495e00b3beeaae51bd2e7bf80d476cbba8fc929e5fb104c1745a2ab9181e21378e737129062dac5abdda63992b2e7cf4d842c1353fb39729b9d2c273a5a41884b66fad18ec49f78464a7a62bd503dbfd34af07e42160c6fc034bdf1a75eb5e49ca7e9902b21cd23612cf8b3d590ffc4db3b07210e962e267a6adce230aded3c977119efce5bd356c0231b8d3831b24f1f7175b4d0cd24b92c9723ed47b46360d573442d035b8be82eb1f471efb5b9a406602b17d0b029a30fce50b2ba25bd05d0cd750ace9ae2a572020d8f501a7104d887721eb703ae99f155c95f63399c1d3b0220484723cf76010ef707d6392b06ca529017715f96bd01447db7b2bb4a97ca1e5c7aee0004c2863c00c48e0a23163ec5e393d9d38153ff38b735bf875d9d904222c47da20982d6fcd858e2e18b4edd82bb85e0fdd003d7836486dd3af8ade1fd55ed6e900fb5c4d303110a84f03a3d42b5ca0a8e7b98319d59e5b15778b07909fbe1500eb2873a9a74558051a5bb8df25f230cc9bd240083a9a2955c05c71ac0b4b2a04cd45b8cbc0545c094def6d80108152282a9ee4c3f5344093447bc6677902e7805281b5c6f031c3bc032dd27a5190de4d253b6302fbdb222a377671deaf997277bc6c9470ed7e037efb7920d517b40390195add7259c32a446db9c2e0cf322a9f5790bfa96b80ee282ee34a42db7772420ff29f8806bef1a1f5c77e62c561a6373f8fed949dbc3e1d81da3ac5d9c981ef8f5b57f342e1325f9faefa8c608f03629ffb22783b8a30c99a47cd7e6fb357c51eb4904fcc7ba9cd4c3bd9ca535f7770637e06192031b350fb0b493f9acf4ff65049a930e7117282bc89ecce8c59c7ef2010e3e964adcae55a9d3be8de83b6fbc2c6997845d77b48cfb97fc0355b53a0392e0b298f7ad354c1f900ba76d1e7757eeb929e1e701bdaa436d1aabd7f53d68ab2516c067f955f83a605e33dac3ebc8d82c56bc26c02ad0a70e4513414007174c7867a727079a4da5827010308f2e3cb2d90b1d732e178003f9008ec529d32dad8e38b068e5f2cb65e49451eb997bbbca2c7b956dbd6bd785adc2c531d666e11a326d053833098210950477ec079b2ba037bc42b97625369ee54c5bbe289beb9c17dc0cb824824331c61cbcb310f786abb8b84ce3bea14f7f590fb40f0ea069f1fcddf6a86721c5b169e0da9570bb60c8def577d7d0534ef33ac23f93c679f0d1d05b8c20deb3e0fe97d2aa2cbbb7ace0f8c53e5ac520a2c80f6868b433862298536e59af61d2d4833ccd2f98655efc55e5d1338c8422b9f765629d3147b7f02fcf5095cb4716dfa5365280ebebd8a3fd80f0917b959a612c9d0d95ca811a7b75c9826765e80515d263827b857e7b5ddaa4c780abe59f027426793e6682ef8195af528935b464e0dfb8bfdeb7323aeaa84ed5ad689d61d31855960d34b2929dc8c5363eb5b01aeca89809b19390d5724a6c9c537fd8115ed82cde14c01f37a182dcbb328dc5145219a037c1a6244b517b8188bc12ddc0a6392bb9d6822a6356dd069ff1e960a205455bc9c73dd6bf57997807410456c6fdaacd1e872b384e25b6628ebbdf01a4fba287ee08afb134de7e00f9c06abe3595fa398df17a0a178d4a1ad3ca5d1bb6f84c10734bdcff08f8f7f6aef79e8c8d10e99d74caebe2ddc6939e6c60e8a958723c14e9a32f99de88276ac6e87a8df35dcfcc6c6ce3524bab8602fc714733c093f1a8f0dbc53dd6cc5e73b7c45e049d71e362f947c0f4cb176a72b821f8f19ef910f277665f954270cc10f72a3bd6ae7b37fe9e5cb009cc49d683b9abb4cbea6fc0f62f64a2e3dc90b252ddcdfc9c29d32bbc83e75560f463aaac7538fc1191e0a8067dc90b9343960e5378fb95deae0e63c5901181f06845b8f7169a021671d36b45d25d3b86407ede780af34bbba4de722ed666b39db04bc6067c10f2ca1fe41d4213d6bce1605286b22f05681ad522d11de54dbaf2399dca346a80682651cdcb4cc12c7ecc69ea21b4654368082b5ced2885881819e8fbc00843e89701161d0798dcae303deb6bf66efc9d95e35c27a7e978e2b1b418efb9cd142cbdca6d883c16a41aef3115f30cf87d5ad4c3420f9ec7e119eea0bd24b186b280969ea5e0990cb77baf2a68331a17ae01d7240c0d2fd546bd60448bbb1fd5d430107f87e42d4cf6e622c5044886e5ed6d11de9cc3e9732e9a6efe31ac00e9470830b4eb4d29b3abcba5e07b46a4659cf0d239e58de4ccae4b8f1ca27a5301325be43b4dbe006808dcb0c06f34348e46e5e215548e9e2ddc472c0947c72439418563463ea894682474dc66a4d80bea3291e3b528b70d60563d2c182fabbaca0a0c96aa5804523bb739a9ebf116c203cbeffce0667f9d987ee5fcf5226d75dfdd3da207f5024fbdd26e5e14e4d2cd92f3036bfeb5c593f446d3383463f4fce5c945be5fbdf726dbcd34d228a0784ed5c80740ebd0d3f71743426148269553f8a4fee349602c4ed8cf029ea9f0f6bc5f43d995861ceac159d3ac80fa6e6d40380e9ba730bc2ce9e4df929db5da00cbe8b4ca517d1366376828742f7f1aaa9956a4ca025096a629e004147ed4b1ec6c5a0496558ccb8c107d166c9eaea7ed093aff19baef24d6261d603df13d4e18d5e1deb5df99f0e7edb2ac58563b852bc2039982fa8af99211600d519385617edab89b4e8c6df1eeae030cb0d6463ffef23a7e4810c37e91b57a67cbaa1b8c9a54d1650b02b66cb3af159a2be67a833058d9d2309ee546dd2df7038cbc86582ed2e42c0cb31324a51959b6930103e7f8e795d8ceeccadf08b46087d6db56dd2a8cce632010d182bd05e2a4533b97e7cce9a48844a687d043a7d5df4eb901232ed481c9870765393e12f7e3ef92fad5feb282ddf9cbe9e977adbd788f0980e02fc3f5cf6f54f5aa5dec6d4c7cafdc6da7210ecde5cb6858655d77ef0dde0a09c20346a61e713632b193acc3d8edac4247b875eaf0563aad96d855788722d0be13cabd7cde927bfc9ed2992da658abc3a1537bc4b991ddb7710a7f36a385ac69cfaac701d188f5e418390c99980ac1f29a372d7bb0a41fccb65cbacfcc8b3fa27baee451541019e0abc281b85deed9b03ad372ab4fe361b166490ac2b06b0e148468273dc9675ff8d4f8206ac6ce6521ff637d3c30d478ac3d6528da7214ebfb662b7fcc6b13637942147f7cd414f9f52145d771c31ab24138aa5ef521472e5da3f184a45867cdd6e200dd0f10608a0fe47991fed2ba9800acbf7514e411b67280562ee8b9a0d1cadbf65912f3f41ee0094ccf8a38edf75fd6bf5d4133c150b044fde160835c97f233440e3053a80d74986239dba19a3ad727265553e73d0daa191495c29de6015ec6ab8ccc7cb86574214762c80b5be9f0a3e6c48eb1113997d1b4d0dafafef00a5137a7bfa50803057727ec37b35e65cdcab581919b0bed77d09673bb0bb2b5bb24c978678eddade4eb844d50474c772e773a4684e0812519437339b55d320fe7b4c280addb94cb03fe8f60db9a191a9b911df7378f5d26b9fc01ad478e211aa3b06bc2811f36a082b491c04d732cada6ea1ef9b8e226fe96c3283dc335352e0e909b92350c021858bb3023c266cdff9a0a1b6a7f0359780dea2359b5098e150370090b59acf6fc80cbf6d8c273a509c369e2cca9587ef0f34308ee9bd1310150e55c5770d8ffdf5ec17305257ddebe396ef4f22dd1399bd3d28e6ef9eb96d91fffb15f330bd860095b030f361d0863768248116622872e186e7dcc98727e11d04f289e5aac2ec0023f11a812659877bd25441ca9de8fc8315f0d8419488be480b776916b21f1c17d20aaa31245dad0bd86104de080f9ffec8ac5c3c52ab224348f56da163eda4aa8b3b5a0a16b0190a788978fea424c9908f26068d07b8ec257affc0333cb3b41d3ae4bb87db5f3a9d226aa3f4cc163181cb13f90da5bc14fa18c5aef9bb74aa38bcc266f9ab75ec02d35bc36b49efa9b3a34335848b265b293c7fd0a483f1a2063d9cf5dbb900c9f8afd933f43bcea1452c51195c34262e07aeb790451e63c2f718a02847a968a40a18bbb9b73506c2b098d7b79737185afb5c9528ba8dc50e40e1961a5db340078f09352db5b9d9b752c9bdbb5073bda7ab9437ce9205f2290ef489cee3034622311959fb4feef9bc9279f12f1f6fcaa99d43e55f438eedf298968af6e5bdea9dd9312bdc8ac028e01883e762867e6d1ed0d1adc4f6570408e4e4cac8824b817f2f4d57623d0d87830e336203aa3820ad95194039d635cc8cde6eaa0f8f2a399355b055a926f7300f718c641af6a6274a579424379226dcc8462086f204d2803b30f22a5755b272fad395c10cd282f5ec0ed3cd7ec5cd58b615accf297756098bc134b89555cb71075235b49a3a1dc8fec72cbde65512d571f5e518e028903c9968492fc32393cc9a5ac7858665f6a8a292849189cd99677a39ee34c753dddd46262810465b727f904de44dcd8739f06499793c0f03c529ccf64333471493d2b0919491929209dd8db4b1e195dd83c14bf9b62aabedd4e128874bce750652978078557ff4933c0e0dabd3e846a132d33a0bed2e490c80024910085233eb2bf39e11c25b24e9e8a1f71381c88079eee65f278aafa72c4ce5aa71722fcc60d94540bc434c1ae9b6b3ae329cd2cf34c1996679e1dfa2cf447b5000fa22ae205262d428975101d366fb12c183aef869b160294a716d31d64dfa123f3605557f4cf018db77cacdb416f0a35c0d90d50a9ee207644d9cfd3122aa5bbcdcc5496021f2db2ddaab213fabfcd81b890f77a384e406eea2495f96f7c7f2b668ad0da5510d55c370b13c22fb68748718e6426b68e930528e1e1780c2f7e90baaa326ef504989317e1a1ff6093bfb204c876c944b9eaa68b217c32e4d9e2b275fca96315165f2cfdbaae42a8d8decb9410bcfebdc3b2ac54bcdfc888d21d85f49fb713d978ac813b389e466e60defece9130dc55647bf7498e6bf5e7305424f96aeffc4a2407d6fd0197b8be1cc602ed26d7897808a5a54cbcfe18e49142c331b70cf3db00ea5976383f8206aa110a3d0435a141e22540bbd32ec614b72165d8fe6e99e5908abc6f51414e4180fa377001153a60db8db31c94a77f3dc52872c09bddb730c0097bd4555d7b6bb43af464c7c1fc654a7ad2294ca0f7b3a6ae94576d88bac0f26c18b822f96ba0018002abc60c299561ecd83044c0b008e8d0f1de6cf1b661c4d0d73bc22a4d47233a77ecb935ff99ad64122d09636bc226ae0c87db9238308cbb83d599be7f989e63ff88fdb190521e546fcb9f934579a79f61e18e199af0c4cd0c7bb81922940735431d447981c5712327c716a09d6ccde76d6525f12c7208fc0776b9a4abbae25c671d39a0a42406962aaed383bf1f433462b9a0642c02d1a1cc74aa805a5f7e3912ce3caaa7c0195393864986af451fbce9cc70e6d0df21570f848f09fc06800fbec686fdd7c559fcefa896bb9cbbc2a04591f4cd5bde17ccf7319867f42aba9ac27f3a5e7fc20ea046ddf00d22538712851d7008d72d81316ad0b739974c3d963ca8e8299b48610bbd65dfe0f5f391d0ad003bd005209c80a0aff97017d2d42a209beab8caafe6f89728755d6b9b86d89e817988eb3de6c7e8eb9edd9b5c8bf8a7ef785816c7fac944d02e609a4ab0a907f4616f34681456f5b9c80e7c1d9b1c49b6f49904147a0f4981af89b9b1fc535f6b7ca165428896e9e82fc7deca99b8897cd793791b6b4f8db363d8c938520748f7a83f2a9d697e9588c27180a02cd1c43e2fe2c3ab565cc3e870eebf754ff6800b15d3abbbda36cff9ea910df27c778241dfb7e811a42626815225fa6d1068ae21cb2e7d0dcd2e29b96bcc46e371a852c75b1c2ffcfd30a000716028822357ecaa66d4a9160f53a564976a335561c6b7ff54291e5b3d2aa43c1b2976c358c4840a0a2816d2cdc3e24a793be592325ddb26471de0ac3a3fb582c95f5254cb372f0910cecc487e75f663350f9143498c166f19dab59ddb23ea61a134b9377153cd76a9a7bd39b2d6a58fbef16786eb191e5238e7d6d4f3d7ccd6c414114213ba363f59150906d509fc3d179b9cde2236d65782fc4b7d95fae3741a32369008271c7c835ea0e6b6d427ef1ca2cc6ade97e9c03447d4af29253d6a59c7c01c27495ce11cce358b150a7c43688ea0d37b490f1e72368b5569f79dbf09dfa002a7b7731270455b69e06e8861c06d743fc6091ce6dfa2fc0e975528984cc6e462d1d705fedd390b07d1c88449751f00e5fa9d3efae8cd0e78a87bf11aa2327010101e27b3e668e49ebfbbdc25dbc0eb25e9432c330b3d4859f65cfbd35cf859261c93d3b0a0b1bdd409e94873b6b72071e31a9e940e20e03eaab1187015fb1f01778dbd0722c0f7fdec67202625d771d97cf7df55b66ee5aa20b009530b40b8e777196e2b4ff6062d8e02f5fe1f8906dd00bbe41c99b737ab50eb28e81b3bd469098d4634ad68b5b17030d156f7226ab027a6686115cad97046e77e7514fac4442c9046108822a01b97e0813b8f50522e8f31bf10ee2d5265810e1df5d429432a0c0fd061ace752c70deabc28cd28131b0892901b03edaf5cbba4d28d38d2df110b02e8bf9aa16eef6580186c8f59db72366f387d01ba8da46b7a05fad4017db6c45910cd83e2477fc046a644e4aadec170e6e2c0a3603de5a8a82f24014d89edb1b56da418d97f97b39acb0c6993f1368a01125b1afc6520dc273dc7de5cb66b45f992c99fc6dc8f09855ef42f22ea8fdcb1ce15ea9f47135654b14cb6e9eab9a733163761516184f06ce6f03e24b2083c36cd1efd8334f14ac27efc542265b6e01216e5338bb5cb7f2e1b1fc05056985fce8d5a2b31a55671019c282c49990de758be38de7180b3948f0a5d089adcdd06e3321999a3130d9d64274dc2dce4f5181cb4a2ad0e3e92a4ea19ef82bd512c0d89a84a41a8353443540c75cb9faecd2133cf03edf5bfee36644257713a033b8ba8bf3176cb89ac2472367eb9f3ac4b2603594416bc15ac4ffb283a0a93c87370fe9eb639f708ec8d670cdf521aab75513bdadf321e4a6d0789bb301ee84df465ca206c7d3f1463d95f780cc7a61c620f7eac52aa8424a890145a62cc90110adb91ad8f3ac6d4107f79d946f430f40040609b5ff12ab35bf7e4b068abd0aab09ab52b0d6cc0a17c8e3c246f8ffa2fbec99f4ac8d1e9905c11609d6609cd0d65d44bd63fff3182d7df073704e9b427528b96fea64978ff4926e825817b7f66006f2b70e34a4aad5ca2f07e3deac062cc7b9aedf8575d6e0c5b4e74011aff618ebad67437e616b5624b48808917aecf71f4cd9f6816afcb4cc79a83b262534729433c055abaf6aa7fcc92ce49249b1c247b1ada53e87b04349c4bc11ccc271a617b6cdafbb917abdc215652601dd157133e26489d8872f73a8b1f3a6688fd4c593645e7f897632219b71aa20db141a6626cebadf72eb46c40009a1f07b01b79de9f31f7f2f9b6b3c46c7ceb786cae4d02275671609c1a0cc0526d3d62117e34b6f50f182a972fdc026e1a7e209e65209d1c2df484e4130e26ad84b533376c80ab141d10c2532028f6da76beecd8c6553e3907648a2f720ffc3f9868a50f08f4990d5c0cb6d66cb68dec1f511039f24417ea8b76dce9bd3790b290939291108db295a6198595622d7301d72bbc856e74f619268e25d64c0c4b6c1a2d4c5c00c67141406ab099cb2b069775cccfc2bf7190453b11181010e7cb23f0510c7f36bef7d20504ae67cda30c6a1fc50f412cbe002435403063d0aa0fc07465d25c35880ac53e9f401e415089784a89479c9cd899fa93cdc9f67bd0b7d7f7990bb783fcee782530c283da29cc0f8addcc14bd5fdaccc461c459ed399f822eb47059b3b4373faca5f499f5653702f422038a0b179c55201e555107b96918e506631dda351d8a1d4313f549c619d6e66db8e2803095881966df83ac54d2121ccc4314c34c52b4b927ded58821bdae757f12d38ce7facff5f97a4b68602a5f9f6c5d4bf66eb2f7de52a624659e09a009f7095f4f3e4940341210c988092605792420d28f46990d1fcae48f461939c25f2e4f2372e4d15b7cd63990f675dcdaf0a16c6d09be8fc2f64f987c1326fd08d7fc237f7f7e424e406ddef2f4e32f399c8a9c8048e5e927c9c9f479dded4afd1b914f1a512a432a47a348023a4fb8ec2f2201653f4f3f2d1a76a363699676e293e98a938ea837fa2be111d65abbfb48ae4235ba4ca9cc3b50a6f4e94806f27424f7deaeebbea15cdff32e19c893fcbe4fb43c29d08572fd4b0651f8e52ad691fe38ca6859e140daf2298a444aa156a47146cd214992a552c934ca6c984619a594526a69d759dad1d7716affd2b7a578329d4ae4e9743a9d50469e4fae65d7efb2dee86ae9090b783e9e0f1642ca727a40b93f5cb5f9fda9367f3cd63bf4c763e0d777208f7d5f6be9939b7a3f3c5e8fbf9a7e08e2baf36117f29e196973e4f67ab2975d080abaf3610ff7a0feea771c59bffbba506717ba47c8faa70be57ecf6fdcf62542ca7286b3dc1f52279289b0198716d7ec46daeca0363b09f2f420a06bad87cb9d3d5c9bfdf7887716fbd59f033950c38c74ccfbe1e13c5ca53dea3e9c591384b4da5a5b03ddf6bba6a96fb17bb5b56fbf4ed77c6bc7210c472018a64e4a23d00405e5ae5a759d8a451257dd7822ad5d71c178a586e6e5826752c4dcab62c5f7a980b958567c2d30a6c994f382058b1c1a33f20b16326aece0793cf8f0cf030060b4f0e15dc4d07979e93ceffb40101489c23014ad5d71c1786586e6e5826b52c4dcab62c5f7a980b958567c2d30a6c9240a43511cc7713422914824e924d99592d6aeb860bc3243f372c1352962ee1d4723128924c952c964329d4e7e3a75a5a75abbddddda7b6f672d89244b2593c9743aa150a892122f29e94a4bdc45e28834a14c4652e994422a9d5aa5537962697111c30fcd51367af325da90e0bf4659687252fa1046f471f430618c6843a63e6694a17c0cea4319199791e94a65dc5142d5285bbdaafb945fad54441f57af32ce60b158ad96b75a5d69cbda950f554699cbabb0441b123f6b94ad7cd8126dc8996f8d329a6fbd3e7cd147977ffc21166dc89ac7a32cc5e3980fcbd2cbb22b2deffd108fb2158f4bd186fcbe5c116d48d8afacb0883eae7896efc396961617177771e94a5d4ca616d186ccf9d06594bd7817976843b278d728cbf9d0146d48196f8eb2196f8e336ace1fbe441f5ffc8bc5872fa20d49e35f46598d7fd9e14318188781e94a6160441b32f661cc28bbf91819995116fb7046b4210bf033a3ec003f33cea899001fd2883ede3ccdce8735a20d9980af19650af81a213e4c91c253a4e84a53b45aafd3df4e91d89f0d74f3671b11c09f1d44803f5ba8007f369203fcd94342fcd94912f0a7f328e04fc7c1803f1d0b40fcd950e4f70100fd4343c61852a99a19148a245326a218c49f4e0bc09f5e1bc09f6e33c09f7e43c09f8e5bc09f9ef3d90e0316a080042040880318a000041880000270130b02886f3d007c68c9a0c15299a959a598a444950ad1ddad1d653c7c78451bd287bf9787d6879ee77d2f2f2b44ea316fa779f0f067db7a891efeec1bce873ffb472e488f901fba067d83cc22e745963163071a355efeecda1856ab540a8522c906ea20a121e7f11cfdd3fa01c77817aff330de876ff13dfc3f0f2cfdc24276532346636707173362c8809175705abcf89c568a0a25459e745de779a3acf5e127da902efe1b65305ab4fe65e745a32c86ce87a1e7e920528f753b475a7f56a1ffb322c1f9b30eb5f8b3795cfcd93860fcd93974fe6c2576feec598c3f5b87eccfa68d21f6672d43fe56c0feac41ffab540a85baf9b36d2cfeec5bce9f8d7bf167e7f29fddb3c39fedd3b517d90e3176b20e8c172e5ae4e0b0f8d64dec7a1f6cc58949090a0582a048b421557c188a36e48a0f4315de87e3388e463e1a75a523930926528fdd1d1f2afeacb81f367fd65ccf8a3fab101f223f4574a83fa841c878c5e53543135393c2f4ab552a2534d43c9da3674dab419e0e18e65bb0f9ae5ff12c6f833fac82e53361994fd1aa798969a1819971bdcc92c5e55bf150a7944914c5711c65de8723d1866cf9d12873fd689c51338bf7995e9e1c65304f9a1f964a5e2a75a5a57b633b34090f8ef2cf9a83e5cf3a6bf9b3ea70fd5969e69f75477ea93c64feacb6d69f340e993e07febb150b67455768fd89f9b302d59b492606e6e565ba5c5a58564afc79df2ac3dbb156a6d58a442291e428537d58126dc8d5974a26d328ebde34ce389d4e2894a3505d29cada1b917acc77589290e967da4385a4fc497d68110a448dd0207a44050c47259313540ae579c81ca9d9d3cc5ab50d5d157cc2232631e9572f7e0aeeb00ab38c2cf89527fdc9fd289812c96d2acdb13ca990dc7f82694f6e5279d220b9bf44736279deacc8fde1fdbfb9b961c10247b421c7c71965a4c71967e48836e4fd9c51d67d4e0bd186347d8b5176fa161fba70e12e5c74a52ebe110d9a33b0ca45ac5888d463bd43a2449425533353f2cf1b90e6b0549af6a71415d3667f09a6fe429567cd29c684699ba592c4a4119f26689a2c35e74569fa61a88c4bee2f8d32c0ec258b104724c954eadf346b4e93fe474d2ad3afd3b708593fc411a9871f088eba074547d41bdfca02508494eaa84ef325da6f997ebbcd69ee3b327d771d38ffe13e7c0664a448112024434240468a24f9a9b5480321f1a14cdf8580ac914cdf16714fd279d775a5ddcf8f1caebb7978db7ed85ca66f716dbbbd44a67f9b474f10cf3daf2bf5ba2684e4c8112121244782dc8f1cb1428de3768e4cff368f508724d3ef8ef4cc6b1d99bed74a7cfe7d5de9174469f58113e2d3e3fec3878f8b13527d7a703faa8f9faf48a6ff11011d04bb52b0de8c30c2086b87ee1d67d46c048f8e4ae3a93832fdcf885aab3cea0e918b445da96888d2daed3bd8aedbc1ebc90b00caf43ffa936980427668930247327d5104420fc3ae34fc469952b14d4a76bb8bd65e7a3d4f2459c07146cda251261a67d42cda9035a38c7e38cea839a64d17c5ae54fc46df37a22b7ac26a8d3069ecfbf3f313e5b563949cca27d645c726b924d386b9bf6c495139ec44c7a71c7aa263530e3fd1712987a0e898cca148744ccaa138caa1283a1e73388a8ec51c8e44c7610e49a263510e4ba207e6b0243afe7268121d7b393c898ebb1ca244776c7368223af6dc3944111dd71ca6a854a3ee65ee9d2adb98f7e7575f2489ea184bbffadbeccf5da61fda91bfcb5cafb9ddcd21a41e63c2631d7698090d74be42e460020337790833dfd8e93ea4638def3150a3c85e761847f7493081819b2cba96a6f0eead3ef6706a4c80cac3c3c3f36d80d6f8726d4c00dbbdcd57879b6b48ef082c35d04cd8f17aff7920fb57cfd6c323109e9d897bbf882fdb977559a9fba8bbc480e7dbb6b4d66e210c6d48ef3acfeb3c120d37efe0968c5b5ce0161f2a13cbef7f7a42f8fea79ef05d7c814b1858c7662b69fef2f14d6ce39bd8c637b18d6f621b3366e9e8d76cd602447152bcbf4a952b691e9379d68c357b1a6fc6c5a4797394d1982fd33467fe35e322bee099bff8e66330cdc360ef75308b878171fe05cef91a0c7b1738c59bd8e69335b3794c953be1694173ec75f8b366c59fa6cd9f7fa6485b6e51f690f9c9e0e7e0720807972cf00a8e36fd6f7089abb5c923e77fc2e3311dcab346f42bcad3b429cf57519ea9577992a237cbf393294bdacb7cfb295e268d37e3a27973e6cd5136f32fd33469fe4563be8835d87beb3906f790791813208fb166264226481a46f3fe26430d9b314d806870b9630697351e33b334471936af4106bf9bb85b5a4cd1c4d5c585467b8926a63906ab82c060558f6b94bd94aadc4c959be9e858b9c345a399af97d79b5894cd97695df82c73647f177c7a135a54b9d35c51e5583e780cd9ff4b1a8b35f326ac5439d68c3594fd51587fc29ad594b066b80ba4895693cf9276d2a17c96ac59492b875aa690fd45342a94cf92766bd67544bdd12509f020b4214b40da6603896b65c17f5efa68edbd6437ca2aaa7390b5768a56efb6b66dbf97dee779e148732192d64a2b4d9cad5cc082eb93f38fbffa76de078623592a9528c5194f14a7e4a3ffe10df8eb02fe52831069ec51794213b193381129c511d99f8c86548fb65441ba50f651c69889a8e26c04ee292b115c80103f117800900d0ab4d91fb45211ed4780207c5458967ea5e3cdcd0ea85127e7439bfda791469bfd210bfcf0c50ec7fee77f5224abfbdd0541d0a47bac69b3df3bbfd69a749faf6994d94e825c8df6070932c6feb4194471c2ef9ac7bc6fd1fed81f7087adb5dc6faa34fb638b74ece361fa6a5fedffafbd5df8a7ff78b3af96e28c0d22ff50045a4ab1285618e4ef2b8dd2f4d3ebd77ed816e997570fbfbfdafaa9cbb27c1449964a2b2b2ba5d87d3ab1b08c321b2ca3acfb303c6badb57aa5d42badf7adff0d59467186839c15c140f996f6e7abfde4feaff6f1e898a8a35ffdfd25a3cc4b7126542249e3a87b9227d395ebad17d8a046cc5ca8042e842428ec14926eebfe5524a4a55ebfbbbb6b5b5bdbb6079d362a6dfac9ba5940f6eb38499190970cf4bb170009d999500984b2a5df6712220159b37d8b06d38806a11108095921fa0909017981053a28cb690a656fd166d8891bb8e5da392ab6e1f978af03eb8186cb6c794b6d2a7fda19cb81fce5f8eddb1a8d95f7df9ea8bc7a89adc058babf6953a72b756834ccfbe981c23c283c20d1c72acf4f0528fb874a7892ecef792bfce5b09320bf9f868d823c28286c54066afa8f3ca0ec2f12f29889472424123a43259a3a6d1fb9bb60fb2becf9b62cd1af165bc95049928e611eb8d6eef65a6bdda248d2ededeebd2eb8fb15bed9855982804a25534fcd5a5b92a45f5e32b4f24fa9b4d84e5f326455682bf8f52bdc65212d3c43285409d0cfe39b898909ed18ae3d7d208aa3f2feaad4abd04657e585cd51067e1219e6e97ea81b8378a15a27a1427bc1ddbb6095c7b8f5257e79f9e21fe231f1a0a0bc890785a4611efd5229714d049dca77abd7aab5eaba3100bdc33234643b1731ed60096201c22c3f54c67f94f2fe23f1cf91500e77f10bfd90bf702db4e3afe0161b6eb97da0080441151e2ab6363b09f2fbb08695fa48a5a6b243a5eb56ab6ea5a2b24385870aad4d4f823c712db7d81a89161b4b10c5618d1ed73cd622fd89f293fd698badc546c14f74c12adfd2fa55910cfe69da91fd59b04aad4dff15ac42f3d7593212cafe261e8fb5d8fce524c9c433cba23f4b8630c6f8316eb12db6ecad12d758d60873d589700dd7ecedbcaf52f01ba9fc6a655f65d5a5e0d3b3aa3c59b08073a8d05c483e4d3b700eb3bca16408fb9c2c5d20c2925a6cb866f35932847b700dffa8f050a1994299aef811f7068a679280d2ef1704cd813cc95a6b14e499ea7677d2869329fab743f0b64691a3ce81a4afe3165bcfd22ccd56cf88a5b5a5e5fadded58087db27b90d3fa0541d9ba7b3779d61cf4a980743f55d943317c20fb7bd80ba232fe4d23eb576f77f7200f0a7d3c0c37ffbe0fa742efbc5028f750ee8f27e8cbe142413e5e907f2228d62848d18b74684f8f1b7fe15a240ac1eec52ff526f509c25f5e0e020a9ff0eb56d484a138cafc7b90628f40f8df0ef4624c531cbd91da9a1794bbbd207fb51734226f088adf17966238bc4fe277bc9209f7b73f1a6bf8d7d2b6e97faff5a7b97bd13b17f9b52551047ee2a87bf1362a83cf32fdd03a415227ac135f0b854e24fb4fa6f4a3209bccf4ab5190e7976df77d5f58cb3002c1d0e4a4340253282857adee55b1c86e754f24f15b71c1786586e6e5826b52c458152b4c261530d35b618271b17cadddee6eedbdf7e545a775efb5a2ab56f7aa5864b7ba2792f8adb860bc3243f372c13529626cadddee6eedbdd792ae5addab6291ddea9e48e2576bb7bb5b7befb527afb5dbddadbdf7765f8995b997ec582c56cb962693e9b5b4b4b858989d980b173b31173645cbbbd889bdb4745ac480d12283c68d0b062c40010940801007304001623ba2dcf202001f86c47668b8880143864e8bd64bcb10cf941a4f241352ecae150d796969d1f9cbc34b8cf7bc9b6f7969e9b48801e3c6e4992c30aef16f478a2792fd44435a620f23460b1d1f5adfc3cb4b8b28df0c89edb8880143a745eba5e5a5d5d2f2f2d26ab1e1f82d2f2d9367b2c0b8c66f91ed106327ebc078e1a2f522caa309b66288671a4f2452ecae150d318da3f9a10ad338dad1ff68f24c1618d7df8e144f24fb89868cad77c1b0982b3c6c63328da2fc435a2f2d302e93c5338d433cd37822916277ad6888c91b4793c91b6d091c4ddeed48f144b25fbd8d3231302f2fd3e5d2e29944d95ed66a88671a4f2452ecae150db9d692dd7dd3e974427d6f6f478a27d2271a62bd279d4472d5e1147caf15e56f88671a4f2452ecae150db12e40d1101a443444344474573642c083f2bcee3d922453a9f77c28452281b47f92a8d3ea10b387247f7f5a1d5f0e9e1cdf97c3023e44a67cc88744da3c6e4770e27363691d02f2bcb96931be8ecefdd3854efef4a194d5dbb739680c25f5f6579886bf9cf42798fa8bfc8ba9bf4cce551ea94c2754c9db4f5158c9d2b2f7dd87fe1dbe0101e9b9d3f098fd4ccaf323c9f2244925edf11f478bf3d8f77d246971d93fb4f5a2b0c99f30d959c827048c823c4940619d037992805498f428f87e0a9fbc09935efe6cdf47927ea6f2f9d9b2bf58824940fe2a3f40d69070cde4934827a4b7a3b72f52f9e5911d6a9ece844923dc05c9221210aabd3100e0cec9f497bf37f6787ff977b7b74aa5dadd411449ba48241292cf4f4891ec1f7a2ec1a71f7f759ee78d32f265265190a748cbfe61389280e24002058e1b1aa26968c1124da0c066e40c32a03d4b4c8127090fa4c083c48efff5d1a67fc59ec395a8c235f728bb2dfcd852b39f8eb7244286cd183022dfeff198e616a63954115517776ff706de5849a8c10d2f108a4112206cb8b102153ce10362e0f1a9dd088002361c99810db8700338bc40c115d6607b01146b00b2e3cfc27e93b449f398db7b73dcbd619a5368769cc7e84e3e5d0a34f764f75c769cc7465bff7932da3c56faced2ec249fa30d833fa032fe2a180442a5f15f61d00795f14fc1a010a80cd8447d8150e8b1845a76d008b4ec3f845aa6b9277ab20e99e69e08cae08de274f6077f4071fabb0455b7766b3cfa05e80309d2f2945eab409ee06dc847c3c0200dfb91fd2cdd465b2efb68b3f9749ce31a56ffc6ec0c28e8810e8204e10c5fd8f12fd13c269a81086e40c30bdec0630d3b3764e005320051a24711e600851dff92cd631298c10daac084190fa670841dff8afdd6a6a3e0a766fd145e51b3fe094e51b3be094651b37e09ea642a757759527f75833ec4fe4c73363092cfeed27f1c65d40cde4e4076f3384fbe79ac16e997ff2a9fb5e7de8ee42a92ec7fde9ece01d9c3fbc6017982b70ce2c01f0dab44bcb74fe4727f9829901d3e007df40bbc350ff0f6dddb924c81ec10baa51d2778bad276d9a24dff1b12b9d3848f71b4e589eaf25ce52692eade40daaf3de38cead3a6bfe8c70f70fca1e6aeb936e94e133f1ad6b5dc69a2e787b7d3c40f1f9e8f86f90071d97f342e17a4cd5a6b2da2779ac8ed34d183f3d18de0cd63f7e62fbfdd5b76dc08d71bae3f702e48f6b7d5078fc72a8f7ef9d79eef23c954ea7ebfcc7cd69ed40cfaf2c734a6e32f3f7f00d4f447a1b020daf49f41bb903d0103a0b0234134ac02f406e4597f641f17c8fdf5fc72111677b3652f42ccb5da1097b84011ddb9276ed926d31c4e0eb94719ada51d27686dd2fca34c81c82006e38cce18a851d45aebd766a53254a659daa43f394c89b4b4e3444f9b345bf0d6b0ced64ab5af28de87698ee803b8e62cf6fc612668ae0848e43acaa899da80fc9ac76e8d96661eb3387a7ea55997b534cbbeca14480c78e4f3d6b21351bf773c4c776cc82bb3f65299c6f5b2d03b3a6fe412d5117ec33ca26fd85bc510e4db742090a60e2405a203473e6991ec3537399064ff160ba859d1b057ce7238e2df4e615e7863dd9f285f69fc4b2ae37fbac91018f4755222d9ff522864ffa64bc8fe25c5794165fcfdbfe6b4a834fefe37a4b3a484ec37b90545abc5ca028ba582051595d5cf6a95728594149515542a942aa0a0a488a45227434e4e4ca860625232859212940f0a7592c2e9648a82c9548242a9440a2149d21348a4911346a3b109e328f68862c88430142d4124029500825f90eff392e0791d12baee02b9373b95a91606c571f7ecff82e274bba038f5a605c569d4584b92dad28e13b52aca426843d6fe50f44598aa278b69664a6bfcc6ce4966233bb51d7f4a9e27248a63ff7efd4b71baafdf511cefeb7b14f6c1688b19c410704003a84c7f871980174065fa2d56009599007da16a8e10140d09a03299f69912c26395c7a33f2620eda75068ecc671299fa92c7a0450997e4a653a01350d540a64c85d5f27f542eeffba467e9d794c085a79fa3dfa93ba95a794291018ecc84d03929429902ed8209fb566abdbd17944f692de325db921aa1e0c42ba436dd83200c13f7510fdc9e2540163c5cc0c8c8ccbc59222f79f2eff2a2fb9ff6ca1aca4504c327dda245349ee3f455f18fe6949d4ec17e103d0573f8807f099e47e57c9fdde5591fb2d8bdc7f001a2488f2d4219fdff7654b85b0b6db4b639e8751fd320294533205624409998e407cb987f73a4d7acc2b3bccfdb57af544b6f3dced519caebf6b8ad314a7fba6b7ef105ed051587b6fd70d8116aa4e2655989212ae4ea655c80a5b412e60010b5820caa10515d6d593440209245ce00217b460051d453fedae21206bf9d5ddda7bf18cecce31071fc29fe7894694ca74421ee441ede2cc5e8b047b6dcee63e9bcd5ea76ec8c067cbe5c22ef4c22f1485611886a552e914a2e850ae240cca3eca083311359f9fedb3a5a0a65042d5c9a40a5352c2d5c9b40a59614b059694741948d56873350e399bebe917d99c1c6c10db637336c762b15af7b3f9ab6d2df15ba25f6dbdd4ffcf4291240963fc62a92cef97a3ec7eb5ef1e7eb6137cb625be5bee3fd9927cb610fcba0fc5592d214318865eabd75e0159abbb7bad5e6badee5eabbb7bad5e6badeeb5babbd7eab5d6eaeeb57aadb5ba7bad5e6badeeb5babbd7eab5d6eaee5eabd75aabbb532f29f5b2b082147433f2fbeec6fbbeeffb3c4f241289a2288e2808c11169348aa108e441586b6ddbfd99a029a59492f6deaefb3c59addf2792e2388eb25a5638905da24895564a92a59235555a294ac90d2eb5fed166684dd0b91a3dcc80c964e41d1a3bb8787b010a7bf1f68ba031186fdf080ad3791a4481e80ff549414f9a9b69f3754363df6c4561353533c64b0ccc2d08381fa02fc0c4a0efc763a4dccc63a41af353648af22469ca9f3c33cbaf9a1dede730bb1c837bdc87c16f22d4b0ce6ebef74f61601c303e89df815132616f0d236941a0303206359c8fc74e38a0869d7abe4061a727e07cb2ffc92728fb93721e33b10d79cc04a8a6c634ff532992b4e53269289b18954350247378cc24477ef161d7759e088a429148248ae38836ea1847dacb34cd978e1db3d188245624248da48344a2bd4cd37ce9d831a391aadce9435234714a0e51a24a88244332318a0c69626282ca69f13538e6030b980e2b6c54bc7c6891c32206d361858d2a97ca2a5e5ec9289b2931f1490e5326a7c6712ac931b8dc517b294b5a2b81c248647808050ba18c41e0201d34d2d391354b116558e69477c0250f1e72a1502e195c7764bc64cc9789d2222412894c353016c2411897ac1e568e6563d55834d68c9523c5c5256525a596c223650915904a084b8b2ac7c2c2c2c2c2d2d203c8ca41715eafca794c8666becc1b95495d892fa59c28a6d4c02d403f54e65f84bbe15aad56ab4566f365ae6834951d2aa38c5563d1583a582cdacb34cd978e1db3176cdfc4a44c0363a120a01f2ae32a2a2c96100b092b09ebc6dad13ab166ad56abd56a9d4e709ce46853884795cba98274acdc4153698d720f3566f050e248e2776a7c143b3cbc3f19039296fa93acdd6c34763006faf1c1a1a0bc2ae808ab0666cd5a079b0e5b0a102925252525258564b1aa27882af73ae159fd79c2a3caa972af991b8b467bc1afa781657ec698773016c2411888ca380a55c262b570b489e3c1d2118359339313928989898989c9094995abe13c76c2539281cb9c0c97b81d7059e3e1a19933e68b55d2b09863708f9b77815b80a88cdf984cefe5509904070fd1272412894422d1975f33f365defccac4a14f2657785670ac28b1449b3bda2c098d4aa552a9f42759faf31bd156c00cc38a61bdb0b068e22fbff8b7dccb301ff32fcf3202615ff5e27fac61dffcd0c42ffe6594bd7881c71ad6f4f0c53162c468797d0c4ccd97895de20b9e09afa2e6d090e62eafc035bfba6fee5eb8bf6d5e21aaa839ae4f5198f8f55714d6f2f54b688ec5551aff935cbf44612a5f5f4461abafef1496f2f547d5ab60d7f2f6cd35e5afc8aeaba3d2f85fdadd01da2a8dffebbb52559ad5db3fbeaaa62c8118bf755c5acdb13e7747cdb1446c35c7febc74749766cb1dd96b39becb75b8be069f3772cdd35156f33a0d13ff8c69f9b306e6d65e2a7fb6acfe64a5fc79529a95b9b280b74ae37fa6bcfe44e59a052a53cbd3beeb5fd8fe541a2ba4d278cdb13e95a6e6582295c6bf2b59fe966797dfe5d95d0ff7bb9f71bffb1bf9733debbbc6d7dfc816d3fcc245741e4b1595c6f52aace33538e65d18e643985751736886f9184cf36894c1942a48d791e908f33a6d858cde9f8ebe545a21d93f65854123545309141482c12c983ee0fb5b22adf7b73fe683cfe293bdf5654924fb9f3772d3baf7faae3feb9bafd7f17a7620d7b734d7ab749596d666cdaca73b5898e633cc277803916012e1e5b3342bcda084830c83697ec134575caeda4c15813c2d4d6646a61c6d97661ff2240d7b2733050283388caaa7630d54567dc5174065150d62e66bd31cd227d787f17703795e2017e1790898af6fcb93f5c3ccdb9877f92eefad1ce202e510ddbbbefb767d370261fe6dfbf744657ba280a06d8e33babfa53dbb17fdfd0ebfd47285dd727d980f6910f6657299e6ed873dbcbceb2bbef769f77a177efdc51dbee60b9f36b28b8e40982e1bdd831f7a1d7ef9b08e00a899c64bd9b581bca50dd4f8a1d78d3cc4bcf9e12776d83e1d015073cc79df96fde3d3b146ccdb72889837cb2164deda409db7b481ca31a595e98146a6a4acb208cf33ef52da9ab208cf30df305f7f9829cf9a61fe3c22d78bbbb187b37b1b81ecfa6efcc17f388bf00c539e1ec8e30ffd43995de5d95f847fe31a564b2fc27fdc7c5cdcccc71a2319343f53e3c9333faa21caf7ed08c40d6fac517fe675bce28bedd8039847a78d6c69cb3c6d188cf9f2b45f32e5f9654bbe9016fcd1df7288d1cf7c8f3dd0fcccd7b1c6e8671edf6f7cda18e1ceb47f87b83ff3615847205cfff2757cbdc5dd3786294f1b2f3ca37bfb263e6bee2e9e317fe675fa05bb3a373e6da0f2ccb75c4fdb345db72bcf23f2cc8bccf2b481a2f9469e2947ef34dfc2e70e36b2e8efadaadeaaac066aa6f97e9aaff8b491eb3711c82ecfaff814229fa2b781ca345fc71f6aa6793af680ca34afd31f7444c8c8053b776083e08d06d3fc38c8c81121236d7a5f22d93f6c7c6d68c0e6141e6a9729347297293cdcc8f56f0c61cb5b5e9f219044d81b0d3e6ba6f9c64df37da599f7687b824ca9613f053472442805047f8ab479dec834a84c833bd75156a2e1c813bcf5d4d202a85c5ff4358ba8e8bd2b7b78df8da81d26ca941af553ae91234229d72703360ff193fd16c9fe37f28d4c4719886b1c797d1a4669be3fb25f21d945233e6fe4f1eb281bbf45a28a691611e127532299e6888023e78680245b9aebbd875abfb1fd1f3a1b2db22dcffa1aa8d93ef9b7f1ca5bbcf295b6b95271bfc5b8e2ce1bd99efd4574be40dcafb8ffe2eaa33651696a79cb14b0a761aed2e6dd3eb529c1db57965fcf408a7ef4d1304ad21093d8731e7e0c4a2086b4a6c046a4789bfede6ff4e54ff32739f3672ad7b45ab9c6c55ddcc5e5431b5ca2d14aa98f4a331b4c77da0952c5b3de59df7a3acaba0992754dd0c73541dc689a7fefb709c8fb3a6e9adfc3e6e968dabc10c896e7f641b6ccb77fde9b6dd3e2c05bc3ccf79507711eb3b9dfd9069774f4cbcbd2ec4d5c834660620a94bbb7c1a5d9697133f36de70d13532ad3a0cd062ed1b01f1ddb2142deefb7b497f2559ea95c67d0b9d71290321f6369e58b346d8a3f41a0afb73cbfcf7a79a6b28f444ce687f93adef69857fa85197d0a4c7764301196756b274824fbb7307892e0ed3a718240b23f0c3e8bb02a708a79031de02007cf4e8dbffc3b08e4599aa1640a04062108df53847f6b18e9a3612e26680e68d301857539a8391667830abb34a039b716030ab35f73eeadd2c080e2f8203bce6d0d766ad9dfdaec2dfb9b1f8636e4bd40202fee06de720d0383340cf6bae1a5a1f73b4178178ef9f44b8a433efd158a739f9afe5df7c44f2b53205bc0e57bf31808fec0dd480a040aa0fc7382371f10c9750f480a040a1b981bc205fd00c9024eacb866d0567328a5790268cb4e50d33ffb5fd0084a1092fd2dae8248a8559008190814076c82cadc6a0ee8a3d2f807018b90cf5b6b0d69b5585460b154a6a0a2b2f259ad52a49092a28a824a8502051494949054eae4092727264e30312969424909aa07853a31e174322dc1642a29a15422839024290924d20809a3d108641cc59c288647084391114422b00820f8fdf83e8f089ed70da1ebee13f9e6fae0adad7582e2b87b1314a747a38c6e21509c7a47cfa1c5a5ecc234f70349267197616010400fd31d4a712a18845e41f69f51976b24baf0f571834065fc497c81503613e409deba27df8569ae086cc824f632fd4c40927fff2ccd280eccfbdf1fd0fbc405925f1e66b4790c04427d39d884f10848c8feaf21647fb3ec1a09ba2c0eb374a428e6b0a49fa0e0ede69a40c12964ff5e823cc1db1361bf6badb5d65a6bad96beea83b852ae28b9fe794d4872bc4f6da9be509b34370fc873b479c9965d066580910fbbef7affb0249ac61f689b2718a477409ee0adeb488c5d6267129de2bc695ca24d1ff2242d2cae55c55e0e6dc85bbb3cccf2439648c78abbea639796667734ec77b860e8fb48f2f6e0cda2a44e4c4a5027d39ff5415ce9cfdb0e2e04e901716d7a8bf166d301798e361f6d8eb7d136dec0db78b3efb5fe686b73bcd93f479b2d47077dfc35dac69b0c9000bf7b7bb3e6267bdffd798364ffb691aed2c97b33dddedb4d7dfffb9d7f3baefb9f6a4bf3cfcff527992d88036ffdfd5d09fab0d5559e64aeb6164101710dbb2578c3200ebc95448040faf4b4d9309a55aff2a76321fbe950f8bb908e81b7d389647fcf35ecd6dafcd1b06fbd0fc52e8f0e627d80c4dacc90fd291872b534d742f61616cb63794ccbe3433ee4495c2eeb7299ac9667adacbc4e7b92b63cdd3dbc5f8d2b1fda90e563233279ded4c09c4fbf2ce3aaa1f9fa5dcdb15fcbd3468b5cdf055f1bbeb51e64fdf3d6f2e5d1a683b7174c79a63ca63c3fe63bf056436331d844a5f19fc1a00c067fb419539e264c79fe4bd95d9a75832920cdeffeec59108ad3a36d08c97a57597ee3223a5f1ef65d7e94b9b8609b57de872db1e29b55f8862cb18eb21e47b4d861a26b0bcb4adbaf6f6b12902881853694c1e70a6978a0129c4009212620811076c6254a8c316db3ef8c3cc1dbd9b3db78bc8db636471b3dc1db509e5ea8b4a95c8b82a064a866460000008317002028100c07846192648920f914001472be5e5e4e180874184541104629640c2186000008010020232334630200e2be49081a17149bf9b977d42c95346061a08395c868b7440a6acfdb077563f534a416d5e6e3dcfc5ef89780f9c847d177a6059e8b5ccf2c71060e63b1c126e55572426b893563aca535238e53666e03047f93e23b42e3eaad378327da4c87f73d769f54aa7042671e122422dc9e6c8ffe8ae82a9857a0909edfbab23ef8a9b66f29464be1231780e7f459819e3d3a0be2ef2c7928753cf1f7938f0c4e527875511feebdb86a6d69433e058636dfd35f905b91af79bf44adb6d44dc154193bb6ba74a476b701fe8241c0ec8bb9d59945b500062f1488f6b00d1ee2a4c9a3346c8a488ec589e7b5e5fa53e3d4b94c84802393214ea9937eae22620c322eb6c8658ba8bd9f4318fb23ffe25a67279896da2776b6bb02d73e13770adfbbecc1c887a64ce462fde5e2c6cd7c4a48ca05a28e414b37c67e56d3a31ece39bda6f7440c4ec787cf3b44a6eef184f4ffc772e971dd7ee45839544ee623ddc7624711bd2114a3b871895f9f28d9caec7940586d87af3858990a8e4fd64dba61c75781112205b666dd2758669101050481183cf6db1b53afaa70094ecab594c2041fade5a7487b540a9014ce33ca2679d1c84f00379388aa7b77bda2b2c2d9d4dcbaa1e7d0dba10c13039002b984dcfed0d5ef4dd3f2156b798b7dc50860e408f2be260af78cc48063a909015273cf1757f7c82ccc36288e4d476b1d7761740922bf4c662f8aaf8e66e7cfda00843c7980ddfa20c24c292c5bfb44a879b2a7e2210998655ecdd2c826031b7510fcc885718948454d51c40d75cfde34f06b2b9e1625ba56e1abe47e1c31a82cb348319dff0da691eb14a2e6c1f9418c33e14cdf7b1928e556e4f1293957955d443dd5015f2cc25e792e4a5a9de1cc1490208ad23bd956702af8e676656ef55c69e12a8b2616390bad83cf09a1a8b92f4e61d1586fd09ebfd2e5d94220f7ffbe03705cdd8d83c4070fb01e65371abbebc22ebeb22f4e82f1164f2e1c70e3d1ac2bb4b1580e39e3719bb6da0487e3d2bceb147a89227388b434a90eddb3772407311ea508c16cb592e47e61a55a1e540c79a32d52bd0a40127b2898eab5243185d35e46c03d7bc8161327c7763377631cbee06b812dc4cd946c09768554622ec2d9918d256daf6dd260171c390a431c00a08d5486eb5edaac8e096f813d1bcd9c21f3b3ed347254ad2d07c8fe3d8cc9135e76655ece18590c0299b9833f8b378e7b41629c22c221606f8784058fcaf993ff82c8e13e289710acc0fa8a9cfd156201b29085b115e414198160ea6e2c0ed2748177edf774827436364f252e41583486c0409bc65350ae87be201fb614729127a9b9d2e7373b964a8e159c10549cb915590da2a570b1d76bc5eb7049ac3e989d4d917a61c9000cd9429529c9b948885e413506974758a7973082e2725c39ca3499e4a30879d2848040cbd79694fd7121b1fbfa8d7f8d72363fb90817f948dac04b5ac39e522fbec7aa748a9421deee95cdc3907743be6d8b5882a48f886109f8b6a9ce4910d3be87e3a43506b31044c0fa7c15371d15c2e4420c10cca274c102cf447949102b14534096397fa2f7f713770c00e2eee911c482dc4ba2abcdb3b6b2a5e2a65a603fc1c2e76bd41bc7b24830cc61c916dfb678e253a69a47377a26cf4a798456c530c55c9708e0058e195d54443f34e95d73e542b173036efa52264f7b2a21303d1e92d338008d71643f8b286d428def02f20c15fd02f196c6f14f8bd689b17a851fbe06d9074549b34c9badfd32697b3911ff10ba74b2d67c006dff5de3039707c65182391498caa0bcaf32a75ad4e80668bfeaa1881dfbb51fb986b403839adf832cc7339362fc632aed5b19ba0eade76fdc1e03bd9198a770ecaf0a47184e9d51c4119185a93094736e31c14cb5205e2b87f4392809c45d0ed7a29484a5341716dada8379116ded46ca52dee31a005357c9a9bbec387913a04e3549517abd8037257fb46f808dc4bb08e4db2f479c2e401926cbd9d577feb0a00f77e925d84ab917e8244c4863ae579c8c0cf4801b22227dd6a9193793d2fd15487843e8686481e41b946e94ea918eaa36ee003efda94a139aa0a606396e4888c148c04c4810b5f2c8769dbfb6f70e9f89b26861d2d482b8c8882ca9be8aa118c93b983afba4a3bd9d20b8d851ffc0adade76f991b8242d666094329e7ee727f7cb1c21909afd9932c1dadb02176a92396dc30661c6f3c8923b8cb38ef6e5233a7d07bdd1562391e53108c7fc78f4c4d25c1bf480cac4131ab4058da74425721943c2e3084b48403f6b6da0bcf55282520eb3c0d4e810c0a3024c2cfb54769a5ec0cb5814291840d12a2cc095b1f2696026a41d0fcc8ff783ec31a5f24783307dea8baa0a1df0bf217e6f1080371cd20cf8dd8734692c0736d9bfdbb7873e6fd8c6633eb777b2cdde0c10f6a9e53af6e42df59881c592543fde89eb12f78bcab78c3d8139e3bc7eecdb1607760500d7c8aa91369a7c9f66ab8a11c012ba15d51f54a035d97089e85dbe447a063b42efd60aec43d4ad0f8ea6d9dcb52491721dbdc6a3fbe4e2f1e1f3c0bfa3a60c1a4cdbc32d2edc431d63e2e4b495aa53876f86170c0fb4b0dd35f0083f5eecbf0bf4571f402e644738f5648a804e5ea01fe18743f81d89fcd48d1272e0a3f68d9a22aaf2e61bc53edba86b008374f72b611a3b0ce6ea514602dbafdbfcfc61191cc340be65ef02914ee61cb9ff6e7b398481a455de3f3ec89dacb1c43c255fc19a184177b76e0796ad01583ae1684a2c072c9057b0f194d569d7892b478299613eb4ce33679752361452e0ecc3408c924923a7470b8d0375ad67c06496fa52a8b5e130d8bf7c6323d56afe1b69c99908c40bb09647ffafc98be5ce572f3815c2022f81ee92550c999829d85760ecb23309d0ee9ec2d2893a3e368ba80115d4d94deb397b49a39913c5baf298b1d59bf917d9765e0150454b1402a6aa87d8a6c9b4fe16c2aa335403fe43255cc408ad38bec8e5c04f43609b5802370f40a3baea19908a7debec67d6b022c71bef38a313ef20954c54f869e05e57b01f51356534f5a5d3681bd528abad2bb1966560f6e777f5a5ba5d12db28f2a05ffe5ff5505bff7b96648b1800c407d544a4ae3577ba0e802fd9dbda122ee4774701190a7035030600e8b485d4ee3e2b17c4e81ce731bcf9031b7e79b01e333cc4e1c02f31e0ea20f13e864d0cfb67e0e69c54451bc81b8a4579c014b177f456bc8d9d84e7919b1f5d5bf2dc9c3f31b96116e2f00bc92b6fb3285247ffd604e5db99ef92b6f6d1bf0d2f19a38d4e6b373a084218b16174489b366ae5e0b6a25dfe980ed9546f128c5fac5b4397a060f8bd84dab765a166d6fe47e1f3a5f48fb2d26fd2796d4bd84b35045d926e6b41fb5fda7067e12975e1dc1e3f564df9c6539ba1aa6193b5acbd949e4e3c7b9a0ebe2c748dacea6e2199edb057e6d5762529fa70eab42ae930d39115fcbc63455cbcaf9b3058f637e5a1dee02786736e4a076691b72aa3d0af7d7163c87c19544a5494522222e6d954b9aea00d8ba669cdad3db2ca5ac2655b17d88db2e5e4bbc64ad34f3b945b8b519172be698b99a2adcb34000f46a2d948cc2644e137d004c84bb3f0a8d5121249ee72ccd809f9298a187f8fc3bdd36872ec4c359a6c9eafb0ffde1c70fa1f75e9683ece70eb53a18601ba6d32a936ece38a9530c9a3634f7a449df5e8335880996f7b762d4e5858339029ad26cb7235e3eb7c6ed97270188c4c6abcda10a301f3f1244af05c6f41fbaff9c1e6cc2f1b415edf0b6ecef703b5cd28b945f7d02d7f2c6e9b9eca596e35098b7392d6f36ce3b03819c2002b36ecbc8660ecdf69e8be7e8204c71c575dacf26446716a3f6451d37c2a42dbdb92888d10e7c49a676274769968d32b2e18842888895f4a65ea5d5db06f48ead5bfe56f1aad94ab6e9cd6b075c272578a250d69d4b00a4440329f620d64dab6d31a4407744198970c08ec0224bac204ea8efc8d55f91ca6df5a88b47869b827279ba71f76cce10dcb02600d81bd9c35969e18d70bbe9eaa96c06944fea8b5a8d71b684166dcffde5d95faceba683958dcf520e0f89c06ada0c3b07ab8279d03a453b21ba9b87174312dc4c8ae2edb0917cbfcc7d3ebcf093be5f62d541cacd917b48e404b30e01de613a99c10a8ab5b13524f42b2c44d8ac10a06e6e47d88da355cc6a74e89474ee9a167b430e05a84cd854c2c118fea367f6772124ef4aee8f67fb7d8d16aad29ea93e73769084162c59ed09c561d3d3c9c5cf32361b92df24a81c61e08251971c3d349470fc8cdc3173fc08dca165e240c0076ab3376523bc58b83324180f91a1959659866c8467a09da36677790a2b217c5f0ee06f1589ad96776d058b49e22af13a8114ddec9d59a67730e604284127c8ce7a6122c7f86a1030cb4aef0244395961427c533bece3556435fc89275e18ab93108d63cc975b97b583aae0cda1a930fd34808c1ccdf2a344991b9338144d626045adf174a0191d7da065316476053577bfc8322ed2cbb568cea93e8b696934adf7ae59df4cffaed4cc524b2a05579a3009e320858ab9ba4a981b62a8f5254215605f83226851da8a2e45e64852dd41105d6ffff3ed31db3617c660033b8f84e8ba28196dbae7bc689f17d8fe857b2970d49870da54e8e401d254ce4d3bb0884fb7f9d976eb19d694c24f0a1ca314e6683eb15a53fd08aed397814ff896244ac0d0c2cfc9bac889f0d50147e2c957cc9bc37bee50426a1b6a1786b8958895f978a557ee66d3708b2ecbf9a3b8903ec25536bfdc2d9f64a82f477b86cf54bd23556fbce4bde900658012a63d184009cb9cdfd07cf1a770ef0980fb6263950842f3e92bf9cc08220923489ca9510151cd36b4b8c4d6d93a1a5b6c17a0da3b4a553cc88f1440eee21310027eb7a47c0e5336471d9f295680d25ea0e0f663f540a1eaf99cfb19bbf62a3b556e75e050cb1e777b413f48da4a8f7b578c50beb0a898d0c3cb0103299ce01c238b11411a7d06e8c1f25d56ce6f3bebd3f5e2fd4204e93587acbf7ba251cbefade6534794b5c627ac9182069b9ba57f7fb7f3797b8973ba429c155e72301ba3361245cf6f1f9f33b131a3ff1c5c2c31b611fc483a7612bf995ef1d0f17d96319c849e7ee95ad9a4613b4486037dd7a0c4e506dd0ec9162d30f7d013d0cb6b14134788ed32204a68cb4000af6ad6caf81adacac68a3fc00c9ef874332a2ddc669a2ee5b2ed35d82ed74b0013d223c875a5dd6544e9b4e0150cd8c2df23ec36a1e9563fa415e0c88698801f0deb6e20e756dc8b43c929f14fb45ed5e8d4a7cd307e151e2c4969927e80a153607b8937b39d3f147b0123886b2f52360288893bba91ef50e4e9dac770c3f927d700248dbf92d2eff4aa5585085b6ee6a55d2186f8d77675de92aab92b9e29df4f88d1fd9964506829eeb8090ac0d02eeab520be43941c65466a9c553e5d76e1b08d4db446d671154387c5dcd6e53647dfc0e6fe0df337920dcadfb0eb66245ab9a8a8bff32398029a718fa856af5414cc7d8434fab2318caa6ba709c25a9b6b11fb4dfa8edd864e9832a11561f0cbc60a6caa386f0844313ef4aeb31557fb62bbae093a929fc2d25cfc5623614fc465e80a7b9bcd3f1ddfb56aa4a7855588930a36b860f0825aa93b35215e50ce86d749674972393629b1e1463927a09f36907fc24bdac0baff43ebb5d200d44ac46c1c92085b26cdfb7e5da5212bcb81a5343e8003b8b8c234932bcc1f385a5c747410f7f30ad17d748bf96554ad97afc129df5f1564751cb96586f296a218dcad6a38b1886e7905d4134b4ef2a787b8daf5867660ff0fae41dbdd245320eba0e014805efa09b925d0a6ab579ed9294fa7e7d575282e154b9b81e6d93a8a6429fb540655393a4db8a881d33e8abdb65019778703071fbba9e627d1081fcbcb1a1a32969f09257b5ed9dac589da4c8cb5f7fef93e50bf77043092e4799ac172a0749c26b1354f0c31ea3ef5f690eb256deb1b6a537b17f7d2c14b23432ece0d6b9ff96f16a44005a9b3a1a20c44daa33690f8979f5e32aafedd98ad69c5425f3ab4a761ef52beab386470ccbbe66013812136fb09ff20700f26c1c131de8a385343f5137b18c27323d109ec3c8deacc163684b247bd1662caad3000f6a88efa0361e95c57a0f03b6f60a7916b0a0a0603985f71706fb49a4e8dd355927661ea4096a5337fa365e94e0d4f4a35eb2e49a6a4cd0964c359fcf9ee6b646f454ef417ecf390c81f588ce1f522197cfc8b63660feaff30ca842a0ff5a1b492e85173a7e2e7e661977f15b8d6107f060cd1add887b65cf75c69ef7b8fad10140179bfd35ce9e198f025665b0ab8ea9514289b45a2b12d7f4988e04ae263107d676eba5294603bec57b0543d616cab6ce74d2978a48b6dad13ef2d54ccc82ff179ffcd5c2352f5e9430e4927450f416eb0d8363a5eb2a9462bf01c1ba697e4b0edcc9a91c4b06d4a0af68794374c4d85c9e99bf9e6fa34e0622fd70463649952db89ec69a4769a31aee8b3c3be3b9029e8756dad4a49524158fa1862df5e10cff544108bcbd7f138ed4f45e037c61605716bb6f0364a0471d3ed3088532141b3d71dbbc69d22ea1815496998d9ac9c154d4595a489eb86914d8fc5ffd6c2be03cf4a6c6b9ecb78db9b4745d181b5f10ef35b7040ba9c275635e7912e2793fbe63ccf512bdbb305334a73c2dd4ccf7ddb5492a563956b39779ab1a86d2e815a6433ac8b5087f9a4fed8fd34f5535ebd5c817791747af8c778ae7d3b7c62535b236ae666c07e8248bc4d631b8d957d60a74e5e4ea5fc55b35aabfc6a82f45a45b767fbacc572e12f99a59282c9f66a794e7b100376becdf71ab206c82817c9250688af8dd2651a6156f4e5194111669366ac0d8add23c4223316c7318055b0d18f5e89de6d2eceb712aba0b8580bd34f8a42b41ae4e6de7e75565eec95cffef465fc399e868cb5db1447d435d826970783f08d7823ba8e3c9992d99acaf200122132187bd00a154e0466e4ba05cf4f780233d17016147cfef24258a1139f5b041223b35cfc0bb14394919f3f1c34bd10aea658eacc84e295d15e97292a05ea1f9e254399fdd45a0525b859e723f62546e8d81f3fd86adcbaa796ae819bfe8b39ac4e703a4e38f1867975eeba042841a8bc85564924494d2911e7d1b9f9341216dc1950a86c12090e88e2e859a8fff2fef49f28615b5473e12574c845c973b3acb9dda8f6619a5ad0d354327176686949eb11eee1f75e60e223eccec9b488fc1662f5bacea3b42fa2ddf55253b7bfa0efea77129dbf82ac6ef7313c9bc53c7a7f22fa3bd7747cbf467ab2d711f4b7b636265b9975edc7b43c779bbde587244f41d3b1c3f4e2ccad95f8783c8dd58363ad5bd0c091c2ef673201fec71f88101714adb6a418b7063e13918c84d8b0b87d12ad24682b3d5e820fa25c5a36a4dc1cb9e62d1ebdd2cd3bf3d34529b57cb4ca5ba2e94d5aef319c8975c099fc55773364d62ca51e5fa38330f1e8d3c110046cf4fd30f9418ed0fd03531d0e8cc6681dccaa9702a3907c82497482bd6c2dae3646da78088f379828042b02082b0b16bc3405f9395ddda995dd55fe6662eac66c0dbcec86ad8a3ad41cdaf9a63ab7965b65814645bd73fce6e73647138b70469771a4b739419d4c0cf4466e2bdc6855ff159a928a8ebeae6e2261b6154010c773b7472f1390cbda018fea425213941c2cc38088ffc2add409791cb25788a59d594fa14828509b97beb5fe6b09e1e596aa6abbe5904b5bcd7d3ac584f2aea7c929db96339f6892aacbe2d2e104ff4f7d404e7fb57444e464d95f47f31f0944f87c374d7b1ed817154e7fd2169c3af1448f3eaaad074fb60f59f45eb307c2bf8406dec41b50586e7c5b190c639aed21c423d2d1c9d2f72311aadbc7b14efd7640ad61749b52ae6300555eb8ed66aae199acc87dc78c9f08985a2b1b873cfb94c6190a561bdf61c756fb59b6096755fe8b20dd06742c66bbb49b6cf4c7e667644f63937b2855bc4dae91edbadcbab1cf07836cb75a6ca370208f8d3c975fa20b1101e85bece5ccb0907bdbad7d269bb171bf82344f5a5aebee838d7cdf363e075f3b33f33382e03aabfc7118d6f15ead3a816209d3ea0276085173c32dbb3cd3ce1025c800166cbb75dfc386fcdac17350fc4c3de7681ab4854b24f7704537dfced30227da9a46929c79df33870115a75756b3aa384708cfe5d08b2848cb120ec537df24186cb4b9fc1d6203354e4e4034993cd26056ca242066ef9759965c40599bd0034a1d5811a658e146622be991795f7c05ae88858b218fb2e7f70387920e7669ec2d0d3e14a5082e52e526ebbbf8b37f7e45324bbb2f3e7ee1ab4758a96e347128766183494bf79af8dca7944014a9d9d3332b10002597843df86fe8e5c6f7ec0b6dbda14fef20027bbfa782ddd495b3e0c8aa46848735d0d1eefff9cf7d3d7bedd9ebca5e3a3195f1be405713bb3f56951867eab8a9cd7c33b095a139d2c46f681bf7379b2a4c9c76dc237b3dd39be1b5ef4ff8915c155c66fdc01854ce91655390dee14eb5763f8544af6bfcc813b0793c036efed7d4caccfc8dbb7b072ce1487bccb176e87927edd3d62073d06038b4e451c9aeca2d383aea58780b9e3f0164ac85960e16307d764c42c569fb721eea9ec76c1425ccb62f3fa4643a4911cd88c6962f08e6f17ad3efec79d8f78945ed0e74eee0f37292d50261756ee861e05374078b2b7c1e76ce8de785570332c3c07dbba8ad25fa0f9199b00bd7f75e4cc0ea331edf378b0bba51d3ea63b517cac1ea7b957f0f3a45f4afd339927f0537e9a87ec4fa2afffd37bdd04cd3ea5b1f85336238f4e32bae04a62fc10d5277cfd5a4058a5e7f2864d960fa2adaff986bf1b9c5ec019733169c3ed20faea60cfb9c6418b14733bf61075922103ebc83eb3d21186fba397e5bc52bacbbdfdfafa9c81245b5ec122011b7af3aa0c14ce30cbc06cf33af03e0b0148c7f97dece0eb02cb12ae13a3563c6d1c21a07f3488633e60a1ea2c40787a5ec01a0e810f54102060cbd2b2692e5a3b6b8e86a8296f15a2ac7222752acf05cff260f0a7fa79edaf0d5698a3c93660307fdebf6a2da2f94b39059bfb57e96632f53d229fa2ed3a432d6124b404c28f95e5489c17d1cb69d92162c677b03f33ca17d0273ced5b6cca3448d1fd6dd63d36eeaaa6d684ee60bfb1ae3f666a6d3aea7dea7e4bea4cecc36ccf8998324fe9142eb4b4f9207dc3c0bbba6fc2ef672d2e92bea1dc145d59a6aa882b092a1a49daf04c6dbf53b367d35b8953b4c6daef04fedd96050ed95cc136e552da1ceaa06caa06b40dd0af792290a2de49ee90da173a09714f41e4d6af7b294c63905e1734caa66a1990dcf2ba21a15986752fb038268aed1d29b124e04255ed4fee85f8c115188f7d7da4b894c4f53cae4ebbd26cbf3377dafa25d86c6e2bdd8d9adfe8065f0a9442c8145b83532224b522cf5d3c31107bc925184c68fb159daa06d531d0e83e4bb77eb23c0579cb565bf7db03d913c63cb5590bab849209e7405a716d40d8358e99e91bf845896874cbb70bff190f32bd1caaed03a230b8dcba8dcec7f39614c0ab5b11e1ff1d70e2cff8b3e2989f98d8608e3c08acb98f27fb3590b60b930b1af49a53c62b65ed13be8509e52c8fca11252518dbe8a1c4ec4a3b4e33b53c5dcd85dcf3c4d0a4adbdce7d558f755cccca9b3b74d11c8a338c39a0c16599ae443a02661fb6a128fe89aba3d109f95561796d191f1e820afff658a000b1900c914c926a5aa9326d57c8d7df94cb72ef5b1cd19a05f49da4ae898522edc6d0ba6740ab526fc1e8ee298dddd48114d918d52c1b06a24eedd8ca5174fa598d21de647dfeb3573af4e2a86c9a206d74935ea836255ef6e4cbd6647c1986d1594b0ea00b2a7f1f3b7bd9b3ab92e6e9791dfbd234c4b31a4dd51bdb74d564cea2da7739019416cf25a677ed3c005701db800a6b5d6cdff9b5ed12689674aa1c1a73194deb2d85fc05cd50fd5205bb171f0a85c0b4c43b436283061fe4d6051dd27b3ed139c6615c02ae28275e69aa0e1b5cc2da8c744f12b34f817071a537d31ae872cd3b77aafe5ccdf00b51995c80b2c28a22e393ae84bf57cae478de7fe78aafd95a022caf795ec90b33dd1ab224a717ca6d24d0cc2c9fc8aa87dfc0a8f7b5026ee3a5ed8607278e3868d9b6eda07dec3f6a8ca773daff7fabf29770d610d3d22507aeefad63323ee0078e7c170951aae3de94d5058afe7423359c89f5836ddd0683745bd8d8e5cb7b046ade014f913c4e9ebfe1c7bce4674f0fb257fe2daeab7ba6098247eb015a0b22c92384328d2a1f50778feb88f1fa3fed60f21cf586bcf25bffb870a5292a8b286f8829e46ac793c56a8a898a64ac19fbb5752d2f5df8ed330e8d54aaad46b034d335ac4d111dd32dc3bfdb1d86ff38ce69ecdf32bd7b3e5711772f03ecb783ad9c7a5c32da9f2236daa30e47d8a364f5d2274ef9c15851fe1e9c4b7690469316e4c348c45d2abf22d44f0ee37e9b3bfc694932a5def450e00796df2bd101547e22c7f8f70192b94eb1e13055222e66c72dfd65848753df32551390bcfaf39732687ad00780f3c798e02023afceba776fd6255d5e7e2050f5584476e0124f05609771d4491ce9472a9dfcbbedcd3c9a212aca66fd34726ef451621819d7cb527dabf81c52417259ec9ff478e99c98e65801a84bd79e15b6564a0798593770675a595d77bb54cf5bec1746027b2bb0dfb029eb4eea4c1c1e4b9ad9f6210e35b1df3b5c5c79d75522a2d1b226cdc4cdddd314d4a3e287851e561dd8e75ead054100cda02ab716340b40b21469bb9c09bc1f723378c2f91ceb23f89a317b7f9eeec593bf9eb461ac8c0fbf3621193b2382545234aac3e09527a4f91ba84e41ceb4950c47c84f154a97188109b47a6bef945311d9dc5ffd71c33f8f3d6276d74a633d1259f30c1213a32e552b283fdc4902f0afb62c25ed04d5d105d329ba9fa66e50aebef68bdd953983bb54aed0278ba8c81cea2c2cd0580c7a8a83b5860d2bbf96d21d74cde3f73e205a65ed888e968e4e1d52039b7389cad095eb8573e04fe572add6f525dfd5859f4afaeeb34daf9238fafa374a52ac5ffb142f503de3cbf98eb200f0c62567b2743146439c2208b8ad16521939c5345b8944c39230f45f0cea13b1b97d2c216318310561daa76839137b6b37f272ea54cd0c4c7729dc9bc9ea7d2e74fbf974f41f9402b768ba9345284534e29408248a7f499017c50ae89ff39554d56d41b140fc11dc7e505ccee89d500bd36ce090cc89ae03d8864114dd9ad295b51f55d2c38375864a7109b1294981a908b2280a2acfd15e6a12a0fc7eb4789e977dce23cc636661314eacbe1e0a26a3812836025c23adaed11693f3dc9def0adcf235baa6d39e788fb2d0b72d60a4b452c446c405ca66a08585e7f75cb62fa4a4f62648fc8d9498a7a194aceb0d3837f0150b004b5d8d8b8fc8c0da428f56c52f4bc4a6e9126113c4b4a905284d95d8d4e960947c3bd681aca8a9b590acd0c8a3119b79337b5ef1d635ab0ffac9e691ce665be3b95b2a17872401bd474f45dc04c83d4f918849565cc75174264fafa37c6877dafb263802661ac447fd44b182a615c677ef144afbacfea7d30439f3391d62052a265043503a486f0a93063375e8a937cc08b6485eefc813b177e52c63d69e1bc2b85f613b9a4cb91d121a0012793374dc4ab3e179b9cd92fe553c33df00bc98b24c7299bade13c29af8af93082823ffbe1ff06b9725defaa51bfb6c2b0e67931b492bd7b441a8cd0a42412cb561f26c9e8724452c4c92cd9037997a9cac245a45436a43c47a48ffce21ca807674157336ae38834b8488415c9b02a3db290f4e04a15e94902cc28ca8fe5915e3aaf8d893191263fd253387c53003e3322250a8e48d9122b7a4b9e1f8c485132dfdd14f2247ef22eba0ccc54f932652dbb4d3965b8910ffc2c6b616a33136ce958dbe672180d973a3105e64015e3458c3effe124442f39e8b013c1c19a3675d26e3517d4a2fda4db200a6182da5864173209e5819720b213924450713363e3820e09001d82e597d6d179b22b5006f1008e9765c4cd2b9823a4216929ca8969847e140a50e78e32e49d60eecc006292fe156a3982709413ef3c38e916f521b14ba50715e059325a71122b66fda4a6c54b44431759b34004bcd104760f3747be6aa1e776a3e126a18199c46150e00d44d0717cfeddcccb345ad9b39697577ff11227089db9f517ce9f3c99918681b370603474870dc0b18dc90b1fcd8fc970a727015acc75cbc06f70b05cdcd71762c4e54d02e540ca99fb12137c6e8155e3bd54993ea221ef16f5a3f026b1290b11de7bf7fb243c1282836e5f002671276015292522d9f94df38a87d0d23df81da13f8a05ea79c0fb5effcd8c57e9d8d8f784b8b20d63adf0292c6a8827672cc8bfe0ab50d5edeababa45dc5a34de6a0250663c0ec4bcfb4387ba6591a431ea67222c84bdab148a3b5698f1caeeaa16bb81ba0ece9e786ead99439450ef00b7e9131eeb524183c0043e30c17363fafa822ae4c5447849371083774f311825a4cacfcf3c0ade5b6fd0847a4d31356b43b201e6d5cf442394730ce8ef7babc448a89ac345ada3639030ef881e5373ba0a5c3f3a2b5e8026d93e27c28f8f6a1df81726432104c3a71a5fc9c47691e867e6b48a94047b8573742f9a1a50b589d955f88cb4435c5c7607a7acea67a225aa12b329851b4140eeabc04642a0a2357e247c14a533a602e0698600de401dc63f80a9f768b01cd592192e0e930566d4eb67d889a1241d6353d304198a3ae12f31c8098bc80f8d385000dd1eea205998a5c7f637e3cdef5aa423f3ac57e3522230281d2948af566519f6ca7a50a39959335150c9216fb4a4286cf3014440ac1281f8761e299c4eb8c63d7ea08406857ee8c394cfa894640f093811c0be7d5c7ea12b042eaff1bc9a82531253eb09d00265e21034bf1cee3c64c6b2db98a80d78dd5021e96d138bcea0bdf7d15c47069f614247ba84641808ca4a2444dd49011244630797a6459128298e82e0c064be9326915e44cae319b380216dfe6d2dacc6e9e47367b74740a3798454682518faf64050b1ab63e1491b715bbc9963b4c795116d1348d9c0008aa59a1947cdc9a072b678fade3ff663e093ac707f2120a26932f2accaa1ec2764dbb1636dc87bc59c919f01a2bae4a221ac1ef6d6a0bdd009d392f383495aaa5d48620d2cb38248ca0c2cc422df635af3908224fb9f1878b0854c34e4b2b2786d24874e3953c7d2df1cd45f8111eb746871285b432b4aef3bd3984487bc110d7c8528ea84f7b124284c202ad17ba5ca8317dbeb821c55b0f8aa0d673b0db42b022a24ba5fb346fc5de49ad66e0e43d4b4b33bffb2a50d7e4f6254dd99f221ea9548658916dc5214b203f5a51d29e59759b34e24a5557548945942ee0e90371d3d7941be8715ad7de1c85648d2f70435573e6008e3a1ee05d2711b9229150200a3fd374b9ea3e2948f13e57c24ccea1b81ec4abc650aad1c92118923edddae77a327ba687f91fe03fd072de85e6b0d1c89cd3f794dce0f60d77adee284bd5719565d69500afc75a7938455e3121e1a60f1c6bdaca315e13cebd15aa6dad8868f56bee008b4be96a4d6b72659ad3d4ede242c3b1ab16efd8dd87a9aebd682bdc2de6e1d3e1297aa6e3c9e560961400c32fc8832fa1ebdcd5a17fa9f5cbf1b81d06143052f7f580aa6ce19ce38c23e78cb2058f80c9435935e834c8fafdb0a2cc847e18c0a298e715fbe4d15d2f0e301f9dc7add2dd8b9dab2ad1f2126bedd5da72301d9c7735bd9a87315655df2e83c592ee38e9b7c4c9447df32e39e0fcd417c93773caf01b771bdcf527c6834903360e71f60a7b53c8b660b8e71f6e724837950620ba1aaa9d5e5a05c72255c0fe32ef04a37abbd5dc43cb440fff253d62cc8765c065307a72078abcad8648be2432eeea3b82ee3f5a16a9910e6a4a7596dc9915b1318b50042bd5fae4527e9fecf19e837f9a3f0053eae611be02f04b843af99572c974685168d155f15b0e3ae55eb9fe9158b95ab714e0ea915bd2f3643189b510bb455cb72c816b9104b2839e4eebfd22967d9e192e424bf57446d219fd1057e9c3e8509aa6e438ce20d1ccc2b0a7a000ab147238767ca2fa20cee3c893987228ae6a76f4a082c471cd82c05552fc5af655ee9c4ee4b418ae8de2048a8a4e963defdcb1bca78bcc84163b1d0a702dd9634adf44d564df6153aff172f5b103c8e0035145c71be007ab61858ead72be458be238220563e672eb57fe7e5865958f56b8f7360a745807e551aa96511c319a71ce2ec559afba56f6eeae03a90b2625f6912614db9a234de0b01758181ed045dd2e2edc9c615c549e1eeafe4ba1b58dc41d6d85f88ad53a8041cd920a51426d1819b3ff6f7b179325a83cb089b03f3fef58c7a5d0dfb8d905475cf7caae640c9cf811dc704d1a357c3710375705f191dd652dd84cf01d1852576af21d8766e66fbdaf548d1612d18b84b23f738bdb6d2e775194a7d1cab13f81c4ffcee7bbaaaba5297caa7738a4f47ead369666c4e1ae3a71344e73cb72bc1238d28def03f4c1787247f5a0b62cfadf49f5ebc805ad25526ec46ee39b14c20f20fd43fc35613355a95227acf6522573657101c6123893c034df5ca09e7f5706abf2a8d07c3c9a07f4d52c00815e94f0b86839a04fb973bf63e27f891dbba28fa85940a118448dfb83a2328b448deb65e80c8c23e9159f352e528457bc311a48d8679958a22ed76e57add54a13311f6e6640e3628b8e655ad5f773e7990d100e62655ced290949cd5c8b9df2ca91fc024b43989a612677197aa109e0eb2e11c86b7e10d88206742c39ce5ad5b1f4687e493eef280b2fa6c790306407608db23843d89ecb67803d5f3f2f5ec7fb0c91ba8449b790309d6ec8c73295560d44cdc3bfa365e2eaa71be768ff997c34cbb967c55e26b158d8b85f28a19c7935e40bedb2de7e075e507d0c2d6436316c5b5721adb03a1c68bf218141c94453940c3bf167e22bdb47a0671595049806072b2daffc646301202fb6141fbc694d8c665214b4b564b05de72b929265fab2f51d7f434f08209ab920dba5faf51bd2a2c2b117c28a0aa40516ad6696db65bb5d46a4c5660885ed276ee79b54a067fa8b8d5981d1547144a79dc0ec29375a17563e9a6da8f3a98ab56aaf422c6fbf4757ba2c43ae5521270fb43d1d0e4c010e7ce0de6f1c15880ec527acc8b6b502bae83ffb8a9c6ad361e36606e1eabf8ef8a42e76a304d8c0305e9c6e83e51881f1a4c0135bee5b111a6e00007bc5e561c5fe8eb79d28e1478e9d48ea68c10d569e361e1242d6ab8878169a4636ea13b9ed40819c3628174eda31468dbd471c74552cdb66a2235bf5adbf44ff3e46b1b7c5b8d35ebb3426212519d8fe3564771b972fb1aec77b07765c6bd7d8e07da24293fa456a4e91c01907b72523572eea1c6eab7cf30c6a0b4b83e88073d99306ae05b32b747345c36532c7f5baa878a65ebb20aedbb8666007144263601cefceb17252ec9af8a3f8097cddfccd374c8c1d3c30da0ceaec22e9842d3a8fa3c3da28e8cc23cad28c3523b6f224b6dd1b020af213f8b9eef149ff90faa6d8662a79991bf1ccc88df2446fb35357ec83768fdca50263382b42f46ef612e64558c32a576256b9b1b4a356288ec4bf89ecc87b8c1c3dd26790fd6e92cce696c8010f589e650b91447518a59b95324569d2d0f55d096151d091b57d8bc11d5b7507e7032d93e59b88ce5547be379dd26769977deff0895c92fca2f7b2bf8b410032482ea90aed3c7f45059e7623e02f08a3282abe6b6779fd832d7d1d88ba6ad449a54cf162a538e66f456717ffd48bd6b466e5077f0a5ec1e496a5b24bb83e2c14a9204d250b4bb4363623f992a29ba15c7fb145c25f978c300d196e228c22431df80166923b8984fbe4d8a4e97f13e05b5493e42534ed2521c659e24fdac40606d2ca8139e384e800a251f0c677337331c3e667c2594c4322be10e5a29fbd847fa06d0fbcf203dc4327fb1874809bdbe3bd556cc610c3e8a07aa0ad67e332da610bf880ffe41bca914efd31bc2d8748f8d7241037562df237983813ab1f4fabe9b7a693d3d2184d1f92d941774239addfbc949094727c5750eef086793c2ffaa49e92d79208c0ea52bc70e9d93f447e50688f180fb28fb43f17933b9e3a07b28fca1545f75f592b0fc9430887a32958c91c4b8c741aab5bbc29758b073bfa5d6bc3ca240bc58ef91bc51604eacef49de5860a26ec33d92bfb23af629edc16736a55de97403383a5016cb2cc21d1f7ad156f98a715895d0fb5e415fe70f01ceb87ea83a5cbb47b598427c119ff7256e2c705fac35009fd414e6f3d3d9cc7c2e8bd495e8458d9f5669e028e1618dcecd8ec1b8eae7d75bab0473001f5223d0287ad44866135089353ef080fb28fb43a95e71f5e218cf9530c22a1e58da2f6a4dc69420d47a5de16b0cecbcdf52695e8f48205e6c6fc538a929cee7d3d9ccfc5c16292bf14bfbdaaea7bc5246ae24478468b7e60040492ae9c321e724fca7b4ea8a5c2c8d6e02bf3beb54dc21c010194c95a1da62a0c504e297f1898ff845b53c3d9fcd4ca73369a4ee890a1c1ff1a46329c5c4d2fb6063b1d3263dc7d2a688d7fc6e1a13a2478fca6c02801817126b9469e94e49bfd196343e8889828966a0863b422de36107bfbdaa7939821b5157e9696958e0e7b7766180a650ca6f69a951c455aaebca0b97cccd1e655b05a186bfa8bd3c5ab203f8719e2aac267ef1563945610a83302b4a4b4bf2711f282813900fc61647bfad1ac043e52c17acd2f2632163a34170dabed607383ceb022b788ad022ba645535ba689ca6ea11995b446944af896093ff2f37112797a192e6613c4074dde509d1a392888e7018bf9d53086d44bfa824fae158897ee80f647766389970aeead6db64900498d4c93ed674ca8dbf429acd7d9ab2e83462ab6f76447de1a2eafbf9c73a82471723500464ca9f9c7d10288f1403cda757228660a06b41e6a160b3a94904dd3cc31e06d609b1ce417b91f9048bcfc39b6b8a9b16ab2e268459630032f38b958498fb4e348d150ae15825b02dc677a4c5710e5ef1c6c92bca899748f889de6d957734897af16ee33f986d1e8fb8907b22ea635ca7fbaae171055a8d478aa1bfc6fb73a73a41f2256021a432850758c5729c02049ad73e28ad6565c893f35583911116a8c0d4d55c84188cbc913aaa67654d88cdc2451f47e08bc130c21cc0074822d75280baf7307a4adc161838b27f9b496820edb6f661629c1c01b1aa2ecb209b56df5469a2a656d5cb3ac858f176cae6652c818e57aa3bce95d43df4c0b14d6f29b9ae69e8bb94ea48935bc6ec63995a245342ea7ed7d5d7b2e2619db03d622f638c0ba960d6e0640620477931d8997e4d848f2484771dc89478b849e7c8d7b7eb0f47f08a07a6addb5079a15a6f0ab851f73e3d66d74590a34ad4960ff1250a0c5dc653142f6edb8d8354c095c3c9caa9192baeec9582b7dcccd84dfdca42520f528f8f4c3c469f4734e6595dd95580131ed82346b94ae1b6456da9bd2f8a130051bfdb6232c847c0016f0b0edd626b5589658ace0a10b023e514479d256c7307b73ee0750f23c8f24a5d45e31dee9242b15e211c693ed3e5deffc8219ab007dc062dc9fa2fcf193b326b884991e476f25ac292d02b1c936a5d0f029e283192d2feec251cdf427eae5495c0017ba1c6b53ecd730b7a48a74e3c1a8e5629ecff18fd79f355018530a8016a01c2fe95b0c1a2378a994b948a0ad2af31a169fa8f3d07105f17e009651f2e2efc0712dc1011fab5a756439836c55b5c3e752dad6375a45b7c89e5c15c748491a117dc54f2e38e474c1bf5fab93d5baac3607bc698e9253ece78d6062580437b56fdd6fc6cbf19e75ecf6651a7011a29544aa283257743f4f3aa10c0acb7155455a370439be3f4480d0521d152636c910e2beb9512266f67611266f408755b91cb1c2292fdd30937eebb6849fd20adb5ab19a56b64d123db0c204429059a898d7e607c18302e842093163524d1b86677ba256fa89feb0a6f5f6bee15d6389611d512337debf26460b7669372e2b7eaabb1d4220eb5f3e12c402836f36ed52f51737048c59a005717ba16caba573620d0732c5c68e437972ee2ed3e2fd142b171d81a2528c06c4cfc180990a0de30e15b4a903abc2353591d85c47e9a1db7d09593865e44d9b72dde8b1f4fd5922e0847cac3dd9d70f77ea1f3e4da8e69ad7f04140b4b6c84a85ac716a7e50959e04917f5fba6590e3dad8366cb40565193a0f2a545e02c2dc27eb51abb9e6212feb9cae31389e78009988d995a7dce6a440e5f314d84c41ced9463324463ffbe4d400a93984b7582a68f115b1cafb00324bbfc1cc4ae509c90ff1e6da10c4ec72b25cc2d9531f70936fdd7f641b8a7a667ca0b0129deab856d177edd3b478e907062c71c8497ae8897266d868c07e1a51102ddc4c18cf8b0dd55b72afab5ce1b27ba3b6667faba3cd392b2e337217fabef61386d6916fe89f93f647f0e05fd676822fa2b100dd4e1d7c29a3ca3a62bd784cd7591ec03c8cd9f7c71cf9349ca97cf2ea329891374c8f591ae26692564f403a50f20363cc17cccfce9e3d89196b4cd5fdc7b149da6c3977da8ca79cf01a67f8fa2e576792f1a2a6f67ed1c0ff7c5f8fe296c9bbe58d5d410b786d070bee67bbc562a4d0f089e54fb558af24f7837674028feef51f9e56b7780a104a37909a1710dc0f958dd820fddf50bc1d1a10c60ea3cdc95102b6c6f9b03cb0f90caaeb90ed27ec5ae1fc18db5bf6544432ccf581b8df35ff7508e262148bc3904b676a580989f56327f801f2d26d8acb5420d859df4e2d751f54f38aa8afe5b2c406430026962572fc37e7ffb0b43668b78fd581c1804d3f0d21080a2ee6fff88ab2f3a789f83f17d8255aac4deb56191ba9af475ebb37e8eaac675272a4a1e831d4c3e524fd41481b43087087e887d442655e5b13aba8c31b1800ff8b0f620db41bc37fa0fcd14989d985b768f5d280efeafa0adb9d3184790f98dacfa8e137b7f21f25494c825e05794eaeec4eb2fda0a43d6f15a6a51d4dd89d65fb05586a8c36da9a2acb313adbf5a9d25be4c463fe24005c2c3ab9aa9a4505b1562940ca740f485a4e54228781f69f659a6426c2924467fcb34b37d70598893c8e08b42f83adf5bdbcd5329e7c3b0662096b789ad12d67e68a60cfd418116b8476650a1d459c4f95de13e327b37adf067ea549bdff1dc8856d73315867764b04d223dccfb3c6c2349a77aad176b287f5c7de8b4a903fa60e3eedb64eb4b8cf1e7f61d30dbd0e7e4e1ee53ac00c27109fac9afd36b2901ac61c61a9870dd20d3bdc1a5de0670d86d3a4d0994f934fecba7d9c184444242c8997ebfb5bf3728525f4797b656bdfa42c3b4f64da95b2925b78fd29564e6e6d98bc142bcda6e9acdb42d87afc22eb2e625c30aada1163487ee3b698aec2986d1cc74c7aba6e3b9f5ffc05c1520be40f8855d77e1d889828b871861e360d2d7f5b11524830b85e99502c758195f19f42d74ed5ae6a5cc2585af3031a8bf35c9e6b8d136be42c5a036ac678a41e9bf35727b0a32a4858fa549c80bbb42c3e08030e9d239a29dc8b27a6019db32c64318eb6d50d319d9667f8a5bab3e679a9b9fcbe013c3ec867ae35d8c122663e4e87927127b189bb8a94cf5150fdac54d9fbac01f305ed7cc43bfa610fc6fed78d0c67f820a2e5ec4261607933e40896a2dd32868925503aa25c45af1c6507a66396de23460e78819a5c5a68acca196853205fba5c1e8d24ce832b851606fc510526e4c6ab109c6eddc1073ddf599427cd8b5b9459c996ff806de3fc6d6172460ee01b2c91856c5e076b7b00daa45db1b902587cf9330a4d3209171ad9c7727d8ef99694af61483916438c3b5261d0059ee9e44a0239d44d7809f126a9831fa3acabcc25dbd65987d4952c6c936eb1e453ea65b17fbc6785834ca459a502672877b7f90fa17ab9e151aab4e46a73b6d43937223accf32f5b586c18d666f19838aa4da0e9bb4df7d135866668f05228efa45605e0ce44efc39862c0bf958b1633687f75089b5508941bd10310db7c43bdf657968522eb9eca6e5f6fe0ee206c36e8f1c925e322ba5cb9bac74861391ab91d5e4df0f37b6213ae19d2a14af9f46b6fd3d24cd3e14535db35799bee0297d1259a9ddfc54f5e4799d64b4bc88079f4a594aadf74ad507374b32380dff106c8adeffa3e935ffe19ba567403ea3256662be2077071a13c77dd486a58ea11af6777e567cc1df2a2e60de05012e9a19f44cd0b76d06f3cf79fecd0d6b3207e2deb6c623e2adf154371f13fdc561590b08558832c95753ad9e59b9bc2711d8cc24f85cdf467656a8e82af3fbef323c4f959c67670f867d6eddd60190a5f7e5bb12314a2497fc5acecac8b7257eb7ecbeedfb67618385cda6a09fadfa8eb33dcf88bc724aa311cd79fbacafedc90a48186262f05504db556cfa726cde5c4ec5c02b8bf3068236e3266513d15a947678292fe715d74ee56c401b166d5536f5d7693221fd77b3bc7675c4437f187481fa8f07e782169d5881fef7da70b20a7790bcd9a09427623977625638a8de65f28676aa617b3c387f7a88238e41e17f379857f2c775aaf7b78523a5f75785be04d6a60fddf36e907f7934fe5fbcf23f7226a063ed144da1d18882b041fc052ec014ce650f2c2fad57f741a8d3d0082522bc8e7b7ef0c2a4112fa69308db53fe223c4325a32199dd3f563a59014c8fa23a6622aadba61485e8a3c58dba39d319a5e00e16be5efe1b1968252ba57f27ba219496fb6cda7966da88c31e0e645079f6c6029d74c51ed9a8c4c9dd6ec8ce39b77ab45b7f4439811d57ee4504788778cf1ebc38eec1ae9cd90669d15f5ff59d2b3fa9a9c4ad70421f950d2a5388095723737733146ec0c1afdc139ab36f8f3c9d09ca55bb95146524622bc2c840ce8d10037e093cd20e65dd6041a88eed4d49c7a505ff23d1596edfb50072f120d507e33f7a3632e45f2a6bdd1dac9a8ad43cdbf0c995c665a0e148dc8506327088a6ae7943862c337893e939296bac38c43836842277b11e8c11885c41c3035d4e8628c8d1d91b651af2865b29e4aabd0366064d2a86792a16b49a284d2a26823c86c30b3613c8391ae07d15d8f56f7eafcd430dd280b1c0a53eae51102d2b216c41c6191cce1229905e38c62fff714d841675fb1c1ad185b8696b5754c486cf1ee61b2b439593145e1ece03d10b6ae6d9229f66345eb6deb88b655a60dd1da8c69d3bf5a170c8813331614832649e65dc57b28f9d4a4cea3f1a2e09e468816b6abba66b842b2f69ca73d9b7e5d9986af12a5b5562f34f15f98ef5e2d706fbfbbe947eff53f87c1aa88f550b5ba94837ac487cc3229749535facf3a6e0529a2f2f7dcabdd0f7d7d68fd86c07993ffc5638fd8bbb396c61ee6f01cf5da24dc8975b70aced81da6e02305c6201b2c570c54a1206553c7fdb2c209b56c87ded65f53929e38ad4a1b8a8a46e0c2afcf7e9932c6300f453b82f58c53d50d87d9c5c7dddcb98251282f0dc08b27880d886e6dfbd26d60295a05e623c06057247d9c7c2050eff60416db8cd599e65fd2ed1312904a2fb22d493350ac68b4bd8fb3432276b58499217be25f99c50f5fdf0014d87236caa4b2f10794960dfbe4f7875b49b96dbd47b3d8eeddd603a9012c6dc325c2b32497346383d46fbab0db3be79084664ec8c5fd9a96d90d4a3b544f8c239415e737380796e561ede23ebd0b3ecbe4f83d23025e9255ad80ed905d3bdc0748e57e6228ae822c9afa7d280b6688474c36f4d00be98f7bdb6104c8e60309d9863ebe521a6469a4f4d305d938ad71b9995d55c4344ab047ae827c156209c59a5034d38b21d9e4879183f4703cb71aaced55f0ea86852c569589a983e76de5c05ae071411fc581b8151810020ea80cb4f9c2f30ddfb9269998391fb8f9029b06c2bdc803615dfdf24217b6f42f69652ca9452ec0b890b4c0c56ba4b2155e9d6eea4905255e27594424a25f560199963585bc14fe4d4920dd90df4259b9ed1c8ccb29b274a2dc678038d3c79218aad24bd11f4a352ce39b108b3ccb8ab60543033345e171667dc55302a9819ca1c7d68bace677c8697969b17a234d660da88fe028dae45ae1f656e23628c6d448c31d296e8b2f1bc9012060c09e3459cd327f7c1c03873df75e4437f524bb0458386d0128da804a1873092883e09f483417d604b4648bb0b77c109e1c29ba33d3bd07713d2ee8213220726443bed59576c45403f1a441046d6ccdb82fa32f0718706517b3da9a51687918484ff388987cedcc21798174f2db51713fda341a34a7b1f8ca4870e6910b5277f8b824af05a120d25e834966860814e638b6eb948a23145e9a1d33882adb8037dca0823a93d2bedd928b5b75d596a0f4b7b353c741859606cd15e0d3af0a5c22c156e0123890651aa49522a2825f430fa0c09a5aca490dacbb81d164c910a82addda972e2be541413f7a5801e3a562312e8478348a9535252477f80dd894feaee6cd2da0c893f1cd65e8c5f1701fd2e25a5f632c95246b902201391d1cc7f97522492c1d20aa2d8f9aec8348ce20f527b5f049af98f0691ece20f6c01c12cd0e18a7627337d896a30f4d16526c743fff44be9bad2de16b1e0e7a1634f5ef840bfb0b4b7452a107a488388c9c36b09fb79c84b54aca007ff61400f4f3e34d822163cf90f83022fa59da1a1ba13c594ba13c55177fb3488681cd190d25ecd43a76184e33f1a531efe4783cac39d2128e052e7b07503681b827be26c85215b9aaf868f14e8f59ec1dfb5b97ca1b3842e6bdc8de7450a19267ac59ec123fa6547cf47d12746ee88be0cf1c8fc74c7bec382291a89243320f732b4361c59ca4021238484e8b33bfad95f82da23625b2f4370c5fec2c44b9417277eb02bf60f7bf94126c3c3c3870ea3b1600b4616aef0d981ce575dc80bfba4dd404f534a79f229fdc45836ae7772e8d87a2687aead27bd75396402b1f48a1d2ec12954668af684a09019a2d93c992a84578c1ad42636e1e570e92f5e1b1a434d5885b3ca30d15d2a4acc07ab4c50772c13f43ce7758492118a3e7c297d900c13b14e30d0ebe8bfe873da361e663efaf480b2cb3c69ef7b9142e6e74507db824bf045a6c9b30cd0f391ebe8937102c3b02b667f9142420ac3103d0097602bfaecaa03db8abd8a20d8dd21f3d0b3ebe833de86725e11339d36146f28c8eddaf0d27714f465e8886f8f3e3e5b7c198a3e6bd31e87e82723f4dd3242b1c64b1239f8f9f95982620bb4b3d05930921cbbbbbb7178e8a851edf08eacbbab87ec7bc48d822cc6a2b2e84b7035ae4d03e8161d09fda7adb6929399428790ad0128f40fdba21858f918638cd1972642c0e83fcc8901e8164141e83fec8b3260f2d0b16e8c2540f41d9390016b1013f90830d9756d3c2fa042b4873991ee80a8827ebb84c49f08dc2524ed61ee268facddc18f325d11e6b7480923f4125f92fa4c8eb9d72f7aa8af7f497739997fa7d3d2e599a39cb53b2eee5a723992eefaba5cc992f6ae2597a33cbbea1254458204b67827fafc40d21ecadb952c696f1fc5e5a0d7a5f9a98528f5c3e5323d608e72146744663ffa7e63573b916d347f50d2831f49cb205eacee5a47778dd35d7b0c0eb49d7ddafbf60849bb926626dfbe80f67a8984b4b7fa76960e255b7c23692aa80f1faec811e9aedb757668cf1f7b24be3dc0e2bff88be574077e7da9c316925db5b320b74bdfac47319522bb816ec718b6bbbb2d97837a051cfb2074083dc69ce99fdc5fe8132a59b8bc32c2e616835a644c613ed50ccdc7adaa66aa2f33333333b30fde493a8957b2f5807d735f1198eda09b2add6ebb8ddbc1c89099bdd99999378e44cd7d3cbedd442184ce70b77b45551f23c7b831cab5f954df3054c3e2c6085732332f33f3aef73233af942c659432420eeb0e639392c94dcee3b1e81f005efc5bc1f857df857f319e39a6509be6e2170c86bd50ce79fcf4cca5f27b731fe627df7a4cd7695a5315436d5a85e9aee7338f1b4f264d7eaa5f8ce7f1d2759a023cb0dd08b9863da821b8a7637cc283070f19f6b5f2d19726a359f7ee96caef1a0d595fc00a69cf875de78d3cba5b9cee7659edadafeb68cf7f9dc296ef6a7d5500b457dce03fdfd642b6341f1f3d7bb6b1253a6cf113e8514aa11f3fa9827efc2463eea0f6bee8fc84a170100775c7de0b51973f811cd4defe74b90411bc753831b94acfbe321f5b40a5f7e9b708ca0b8ab4c7cf4ea4bd8b93e1013ee698f773c6cb8e55f8d90dd489ee9885baeb983ef39467266287e1295188dafb78484a7bab67e7284ef46750c378bbab392e44edda5c3c278ea174c7bfdbc5f193ee9887da63e729daf39f51380aff3ce49e2841036e01f51fd8e2284b608b9fec8a9d370b940efcc7519ebd5740e76fd11550fee3279cf1c908e99c7535ac3582383e7cd8a1bdafc3e1d1d5746b77bcbd4ffafadc7e488f1c8dfbd27407a5841e69fc6968e051e65cd7bbf656b8487ebdb72a899867d8a5237adcddd91febbf23daf41a65d679e859e9753a5b2e8a0837b6b713422bd9d2ecba5475075da5a3d3d1d5a866bab53bbb1df4a306b292e3976807426f126a2f08f620946031ae847ec4627c1b5c6046ddc1294d24e586d33997faac45a267d3694d12638c5c92c935c7f8dd80e2a17ffc3dc543a129f0e889a49c601e7b8e3737aed3ed83dd7e8b5200069f953b2e2d15cf0ea53c7bc492f3393c7363a0ed37ea9cdd5fcf6ca7de75cab443270fa53cf558597c335dfec8c137d3f7757a4e9e1b4e9d3929d41d1b15d14f0ac92196526e77ed4c9d52cfba727733bbac2cbe89cd39f8a62995e1b8cf35740a27bffa25e281d243273d1f3bdf2de6e09b9e1eeb0def2a69fda217fbb9bd65e79d6750a3f58b2f87baeba49472480e5529d41decbace85da6b28dae3a12c6e3ef4fc119aef7c86db0845e9ce891aa7dcc7e3a9778c5d51afd8eaa903e0556b438554aaaef3d56ad5e1c0d175ae0357d506ef680d35b84d0d3fa0d46da8a1a686531cd08d4bb1381b2ee6b748892b32a8edd603e535ded51aac86c92aa09f4968b5720601fdb0efdce4385a80600d1cc7c92ac3721bbc06cf3e25f2e51443b589e86712dac170541c6e53bf9eb771de786c3c83da456fa0c11163f49ef7286fc8daf3ac44e2701cae036d2a0dc7516df8ac3c365a8066784dfd60be73564dc2cf6e4395e921f31a3cf31abc7f403b8fdd75ae03bb7aa2513fd3c97be3b9f1cd092841362a8e1a87ce36be9cdd405b805a9cb43c69016a0182595a9cb40f36aec15183f7a83ec3331cb55b7af474f06fa7e4e0df1e6d1178ac94a522c73f1d3e871c1cfc6b3d7f1e73f16beac75fe3d706247bc6b61e315e83c359dd0e9db487c3db4f1b4fb38b1ae32f6a7418150757d51c8f5179b80f5507ffa1e610abc4a468c5f4c48e006ccb9d43fdc175a83e388f1ac373aaca71a8303cd6171e535db8e71d9fac7c3720379cbdc7d7b17fc67bd5ddcdc999996e8e4a34492c9ef176ee87e9332bd3c6c3dc8dbaba2263c9a315cda3521cc3da5c59e21cf913c7d0577ee969f02cbbe12cce991c079ffcf7c3a5b3eb740eceb9e19225036486fbba7f42272f5b80288bc5dd902c7696ef36d312a5bd1d1c7a8b13edf138f41616aca7c3a1b728c15e8b436f21c17a322d23f0e150864b1597afffc5775f7c77c7d70f63856fa0c3fce06ef80ddf6d86eb41fa9461f9caa34b26515e47003fda99c539ec928b2cbf1e7ce51f74f2f1c7b8e48c489fc9c137d1a59301ece0485fdd7002f4c029e9bfe13fe40d1c3c6e40b46f5f02709f8e5f79eb07f7c55f49c7c1a3c7e82e369ec8e59055eecf6755fe39a7ac73b27e643fc3e5e09b15c731896fa212df40e7b0b036d07df8b0f8e686eb409dee51a3f3503de7a939f80e5507d75179784bcd71998a83c7c4d4d5e958857322161a5c06f7754ce29c98856fa05be19cb88566050bbb4372606d943847fa60e11cc9e49d062c0f3d6ec139b209dfc42c9c237f04b0c543971cd81d72046be3c33912886fa0eb386779d83b02b0b556ab981e80efd8f100e0f82683b581de5af95c750cd7c3e472f04dfbca75ba39191d7ec3a34b279c13a70c40063b389209b36cc2392d4023802e8178873f9300b8cecf6f2e80260f3d07e74cbf21bf71fcd3f1b175a8aa1c78d496edd873ea693b761c2adc8edd088bc36188735cece0be4605e0da1bf667dfb8af9fa7e3702daf6e77319e83737a3a0ed137ec4597acc9ebba1c73e9d9bcae1963ac49909c1c6e3f9c4e3fa29f78a04b4511462f81440f423e12c915d98d9d74d7279f279f6e04154618bdd4f6070d5fa4bbc63c3332fde45aec0ecddb33edda7e4c3ff9c749529f99b61fa69f4cd9a995ae98aa745277b005f4eb25252ced2d71cefe8fe8adc5ee4892fac632dd08731ff79269fb21fa0c720203fccc3113cd7123eaebf9205aa4bde9ddb94749a4bb1957c908fa6491452e66a13d04f7707797d06bd88cd7fcf63a0c4cec5667e9553b46a90a96e0db3f1a1ebacde620d99beec2b77f370f7da5f64bdf5b742b739a99afb39c3a4bc6359593c9cab7cf5e7d7de5dbafc6f2ad115be92cf247fa481fc98408f4bb808ca4cfb75f417d057dfb0524bdbfdd076c5ddca79ad80e8ccfebf425f45b6388d8337b3e21db9ae9597b3f81f69123ddcde93b5dab524ad98325731cc50a2a69ba6b24ca0e91b043ae484572a4bb8944baac48ba9b7ed5223dbfd949eb5396695a912348dadbdf3826f140d27154634433a77f304bf41d6c1581abe918f5eec3f9afe328ec4477d38b401c9c13f7b1585de74e957e7a3b817eaa9faa19a7694fe38d775b2847618f32af29af753789a6489aa72bb0a58f7261643d36c68e1d320d5e3d5b1b280d315e9963780dd1716c57fd53d17f3982abe82fbe5b0f780479896fa2c378e53e1575eea3321c106c492198e8bcc439311e39ee53552934c3fd9ae13cc3e70c9799318397766f66f80514e36ba159cf9dbdabe16d5d407015d95f361eaf130c5486cf8091214386c3c858da1dfbd13988caf01929193ec3bf0b88860d97aeaa9fcad9b39818671b598b0d1b36fcc60b1b364e366eb8c4c4d018ee9be1b286b7c8909142c9f430c36b788d199894f6388f8e19b5573d3a36c5058d19329ca8bbe8372a94d25d741b151a75176d547e1975468d2eb556e760d4ea43cf57df8d87631a2c1d03f1d993a49e3954ca751ac63de682d21e0d8f7e05b537c3a35f4cb427c3a3672e367cb71e366a7856c3db5134d06c95abc1c9f460c3ab571bdc8b86d56032270dafe1996ae3a95143db7ce8f919329c999341532b0dde5cf524a9afd5dd511b10e834d048df3620315e390cf073dcc72ee33a9079647c8d1e323823d2536e44c695f0c7b84ed7a8fb198cb6ec5c8543154ed15d7c51194be52cbc45fbd0a8cda47f64d46ec24154c663b4547997e830eac70fc337293cf50f1e5d406b133da65e49ac4d7478062ac341a4eea2c7a0d25df4cc45a31b5f401093e13eac0352c5e0e0d1c216adbb9367fec1a30b05ec4fe206043a035d4eae27bb637b80aec200bfca75a0aaeec3f817f57317f5d360eaa77aa9415c2ef5eb961a447c5a83e8ff2ea08f9eaa4ad8e4d351dc876ddc47b56e6beccec4612ad5ca89cd1822f6348451946d573682424cc5391a0de847658d7169a00978e959724d779c9a471e83d13ee558dd8d0709ca3f1c338982b20f93dda6779dd8c4362ddb6a938871dc598c312e9c291e4aba63ccbb6258479f28d7e986289467b389dca6a32684ce4cdad3aec8db278e7da8877a08ae4e9ef22c5591e88066aeb991ccfbe4df2e29e98efd34f4f1d033a4e2e2fce2ec9cc45658e90a43c13886d25d507b5af7c6b3411490cc99090eea8fa178de6feca5a2dc65bbbce572acfbfaf98bfb8e3876b53631c9db8f8be39fee7c9874473995cabdeb582c25ed510006497b29675fb2dde223b8624ff96e3ca9ab09ea1795f9d18e39061d7a73323ffa53fe0df1d1f77b5e6e3c7c9403faf15ef16126edb17393f632d79c81d8c97f0ce5850c692f955d3df0c6836558e657c56493c77cc35a0261327212eb06fa26fa4ceac0d921e09b20ed49ed080e8ff6bab53bd2e4ec4030d273956737355003bd5f550762df91c58a008d977bbbaa3b9ec1407ccc9de3ff7a624d7c55cf609d65ab61dd7d31623e1b68ce0fbb26e69777c5fcaadd846f1ac3b80e01df3417659889177d98b24328e887edced26f8d14a4e1888c999959b294bd35cca6642921171b5298a18f1b7bec58ddf0070c9dd923735d044c09bbdaff52bf4515bbdabfb80f9b3ba0307ebf25f0103e8c6ec201748bca80e52ff79726c9dcddddddeef3da1dba93be03136874e84184b4b7444cc0f2d287c0160d647bcb377753a1df26119135e849a1d432530fffcb296ced8ec67d58c67d34760b73291bf3df5c7e54db4c5262f425852be9df4ba01f355d30dd4917a2043a840bd249a02d2f236450db76c822d85dbab20914b2942c36126823d11ed1142f3df6a7cb65c9cc2b99a3cca09432c628f9591c5c01ffd1dc68ba2e533c395cc5ed4efa894342807d9d3e6d1e6374194d3146e7c83531b923a617715d73fa5504e645cccb8b98ae791198c98bd038155c71a73561d764f5c02294171532ffe830b286c8308ceeaeef73cd47e949380cc478ccbf75c96b9a2e7d9a4c26d334714930bf38ef4e5241a34fff58917be6964b72f9c726973c97b34b13c75c128c6b02fae5aef56abd3b18eca3b16244318b6c69be6d231a44c802daeb791953be017808808734948685383cf4e53efaf178184f29475df3d3e74928a5d42dd0f394b3c0c97df3ad5ffcd63588f2263047ed7216d8b6fb342ec9724d48ee08e945cc29a5cfcb8b90d38b909e79111747e12a3ae645649ccac461dc856193935ce4a2cbd8d3720a45cf16bb8840bf751f3abe437bd021c6c5e8ed52b029cffed1168f5db1efcc64e59962a0d059ce103af43d8223c83a08343acde0357f5e57162f87575f575f17b770f29452cebf2a4b72ee71071f7419f7e27677777777b70ad063dc6cc6685a6d0ec61f8edf9a4dc6efe59de698ef7a29ff60fcbe7841c37a598e36633d94afcb6c0ee528c45f9c11cd2f00fc0ddf4e311adbb5a36c7c7b66a343abe16bbcd81d33d666866fda615e6a0fa9e6b0f6685cfb073dd3b6fa1adc78807ed2c0ab98db0e73b8fde08c44139c1242e9d8c623e5e4201769523c99c8b6864eb971e1eece5d4e721ff6a97e9d8b90653c99cae3f04b0513501e734d8b928b3e3720d3650ece397974250d399a18e3c9cc28094d3386644efe70392a6a2ccec11cf2f8eb939f8ecb772f2edb80643fb91c5b0f93cfe99b033ab92acfe4a8cfa69d3ccb5cd6e8316aca5705c35f60cbe29c0bca199f315c623e51a8188c9a1b4a439d50280ee5a84d3bcd702c65b81e58621e89ccb88b2f7c71f1c30f7609647250ca78845b8f8972d3068488cfe03e958c249fe13eec73c8f04f0737e35b0f7623d365fcda8068cf73d32627833b796a26b20c8410c3aeeb42cdadc77493bbca690b8c5f95c537d26365d7813115c6a829095baee23eacc561701ffd7ec17d2a1d0e665d38caa17cfaeea665dc75692d73a397a3fc53d2580f284e93d15cb571449cc44e4e2186f22ff6c0dcc889db9c3720da63ce3ef044b9140adbe0665ae5bf2094ff50ab2b77db330e3a63ec13fb823e3113d783a469190c030bd9d6409887f174e2647e9c5c7a8f13d7f358fde2c78f39d4e99ec794f443d7813c70bd8d7ac6d9bccd9a39a093269ad79cf28a17fbe408f91be2796de2152f6e7d72230142c82c70e219ebd6c2c87d47601ec3b893cbbaadc9d6b8efc84b8f1b0f98679ef50624fa6e3f26ccb87559bfeed74f0b5b266f8871d742c9450a53c05d2f6cb7f62ed6bbcb7337c9fae6d667b60b355eeec8cb49f6dd80ec10dc7335dc010c0c0c0da6b560bad5d8c57d1885d978aeab5eaea3bd7d4c076d6fb7130f1dddf1c293b377acf6a64b29fdbaaeabcacb3923996b2ee3835f3abfe46408d0f397f7fc6544e33aef8e9b50124d7e399fb0bf2a0f7d3d17ac1feb4fdc77447b2c064f4e7e55291df34b5e13ab0c05df5c7e9297639cd6dd0c37e3974be9d952e89315d7b5d6c1c4adc7ee2e8e39aeeb8e610deb825817b2a5f96eec5a51b272e58238485159aef9494d491d3d4119832d17eebb0355402eaa4c7417be3b596402fd6850a134886010292ab122e07217dc06da2fe7faa5525184904140bbca55dc065c78fbeeb818e2824b4581591a66f1694fc50eb3b4f7e2e2d03da5e4225348a92add25fdb4c74e83284583a85b34887a053d955aa25ce94f10f5490505c1968c101742b8e05241b0674709b63675e5a5a6020fd89c206b855f6fc07a2f7c9d019b23846fda15b01e0c5f4fc02259f1bb4b5800dff432606d9aae107e9d67737474d89c1df8a6bdb5393ef8a63d0005c8e103ebd77fbd165fdfb19e8bef0d5dcd77e363bcf0a0ed9f4b0eabae97e5e8584ff375189b83135381e8551389319cf322ed55eee32ff2cdbc74986d2181ab760cd0c7fc832fa5f3e6602e3dae57c3a563bbad1897b516e9ae590a5afddba41ed5751a09cdc7cf79967535fe35a34b1bd323176dc4e9fb36bc65da98a9e9d7f663c2559d6ec3864b1b97bc84e8ae1ff14d1b1b55c375da460d3eebcaaf1aff46ddaf816d978cf2aa107b6931c1d0cd643299dc466de2076727c661b61f2618979376dab0d4e9743ac54bfa69fb113dbad878e67cd97ce8f911b919a952fd88df440cc74442d81d97070102a15fcaeeb8bc9d89ae996d3c9189606b77ba32a141ecbc460d22099fe16db812ec6f00c115d0b767b5091abca3c1676de247b513e3372a06b0b7c141b004dbe2172c0bc1176c8b73b042b0c54a3007db622dac126c75935e69e1eb26366aaf60bb761a6a37d1a4bda1b487797b07752bc69b86cfd0f00ffe8c6f7c19dd6486ef077f86c754c62a4b29837cf776cee22e73a1369e8962d911a216354d281a9f5f83a606dc782eaeee57a28fa3f0ed33ead751be5d46fd66ead723f87699181810ed518086489118b737e9a7183f6d313128401383a361300451c178e142c810062c800ad249e7c5a585a676f051001fa84831aa355d77ed2c2b1e0adfce42d0f808cc846f3f55d1f1b11270b8083aec0e0e82f3e01c96c237ed548cf0ed385246871532510bfdd650c91a51645f862b8dc3fed27c100cf46ba1f62e8750c02129edad771bf594264ae29ff63e5f6aef639fa7f2edcca4bd24b682859b6ceb47d8e84d5b87187ae8f563a3b7d2a37fd786c9337739ac47d8e8b375acbbde24e7249f9662f4ed0bc8965983d1613d42c3351196af8fbe89daa85b4a7ba155332df7d975ec4ab6ed7537f769df9ec420f6f07a23307ed2fb88b6717723dce852eec29d2bc3037f8d0eb8ddf6ee569aeee4f6765cef0e6641d7b9af206401c56f51164cbc8edf222b4b9fb5c6557e7cf8fdd99ca84897662b903131c277a24bf7d138b4c71aa471686f2d286cfd148ee06a9168924ac997ba296461f9c0d527fdc0d5fe51d07fd823b5fbf8f9761fda8bdf4740df8df33b4350706b1042395149f80cdf4b547e96f5949d288edadb22259fdfdf191a6a4f06fad050378c22cb6ea01896a5da05740ab39278c4632b8fac212f8c6bc3ad7d3b54a269b4c8b34a93d7941162cdd86226d4d7f3dca85d2bbf2e95325316f4970a25984085124880bf5428310536475411596b81b2af769918a90a159389c2682c1d35271310bb36d2a4e34ab635598c7ecd0823fc758cbb62fcfadcd5baf4862da5e4608c305e41f47337cf397dc619218c10eebc164e6e5d5e975c08a7dc7558674378c9d074d7edb09579c38c73d8a62dd0e841ba5bd6472fc2e6ce8912c208619c52ce29a544a2b0e717a317e1d53997c7eb82179c10c229328b1e84107e47b48f1ee79cf39a978c1e43e90e23cb295931ca18655ca29925969288c0162b8816625c9185c3d281d3852974ba2025898d4811204a004407812d1347c4081a44ba63161124304135a18e0fa21d7c3ce1ca13b0c80ec820916893a4b47490214742862c216df1a8892061063126ebf820dac187164270b5314e2c8810218104aa8819bdcfd15581e88e8b10012288109d2844458020d21de4928aaec0c27f7bb48435f5c117ae2d90a6c0d2329f405484267d88929011830c39123244670b9f1ac44022862491d10c32841b421406a35e6d0c025b3a473050fa683d9323b8da9712b682e460e9940109c220425433344d187d4bb49581c57a12e30e57f4c08b0c6694d825d432a18ecbe4814d0a2c80c212260bb6744cd84c91ea6ac59d8610c2092f245eb24841162db8585de39b817c7c7c8eb0e20583cec26129584ba48535fa198950419325a4d0c2480b2b5a4d9881167ea0129eaf204443575a1ce3f649af36088b42855443bdd2b90251aff6bfae0ae9aea5044a4b5720e267dc0166cefc0b210b5cedac4384b08830ccdb1bbf4447b8f2f1b7e80a2efcb744291ebca884bae0630513c430052a3bde7f34044a9012855191157a708422e090038b455aa445aab9a205a95fc77a194acb7604ac03318ca0d4041a2184f00a1dbf91c6142a38c1083bb08172608918d4221cc18a294df0a04b64c145cc8e2270600a76042ac609385418258231c1910992d0811644b002021d3b6ab052a5000c1b634430a25311b5ec8bd1176c86d0822190214b01086218e530da418e4a093250205d188a0116249f273ce10621dda251085128c1a19c00c5432e18019524e0c00b52c01c104208e10d14fa90cc317a8adc977143ba630fd21d6326eea318b713040e09c24f0e41008215425081ca937c7c7c8c803285960583101328f0200c467881040000820fbe3d621aedf69976a7e970b0babb7bc9c7c7c703b1bb7708b24ed041135ca044132e5cf140b3babbbb83c4f676e0313cb4e2a1634b7897874e61aac8e221141e1249217ae834ed75354020c1e3c0c1a0d8203379910a1b1401e3f14a180106a7bde8588f07b2e042134135c8220c2eb889310c384ba400b52e8aaad081b17c7c7c3a0065c905bff40ce8e7cffe03304821dac11381a8888900688df41903ac17633b76b846413e9887bf4390ab7aaf98e17ff4b9efc85241e3e89020422011df1eb12abef341169e8a1fd0e07b088fc19e0871ca107977bbaf296377ec8edd32767b9b9b646c4cc69e8f7d4df6281365227314a9a5e929d0e93ea0d191b5f2db9d7c018d1eb3ce414c7cf46c6e3ccbe5a0d8624cd02efac7fa701e932ea0df1af9681f82606ec25ca731e938bf2c8cf38ddedde2f0610f570a74592806215b9a4f0225e9d11ff4c9b02a454095fcb779f469ef72e991497b2d2e3dfeb43856fb33de30d7e91ab78a711af491d8e6b465337193d3811bc699362028c75adc949ad395f4d69ff2594da914c5360cc3b0944f0efb817acae4d9a6b54c6fc13e2c3efdb09f1cb699b61e97cfcdb50dc35c6bd2dec6834d6ce3d92276aa2617cf1ce5d8e6da0fe7d08dd380a663aed3da073807e5f3744a6d546bf213a5e44ab94e9feab6f7c2511ebbe5c251a8cd3f94a7b81e18757293b7b8b86c8e71df8fcd31c79c3720db74ed876bf14f6bf22d7e99b61ed331ce08e629c7361717d3a6daaeadc706c3e7a632b9b8565fea346d304c70e369e172506d8acfb02a4f959f52ff53cac4611ffbbc8bd3aafdbca89abba82f0e535bfcba745ab6cf4b4739b6f974f1e913634a29b7396a73978ceb0185b90bf7f16f322e7ef281a7eb29caaf16ed29ca53fec56ff1de7a503782e2a8cf7f4aaec7fce2b4971a7b854a51eeb340cf639eb5b4b4eccf77a9fc1ba5f2a963d4457ea6699a928b3ae69f92eb5b1cc34e59fe833e3e2f27c61dd1de08758d7acabf23dab76c1c10cda9eb744bfdf86993ff4e593582f293cf16dfeaa7e43747d5afc7e7514eb1fa69ef63dfc55b5a6a8f961f2d2e2d3e7d7a0b877587d1cd759aa638545df25b3da2bdc6691fc856fb4056f7596bf2270e9bbcd207255f34493a4a3a4200dd222c4c7eb7f82df2c2cf67a9ad3dbfb025c4f4e5240e92a3ed2dc5b63b3ea27a1e897dc4648f1c41169ffe591b761c448e916a5bc718638cb1bb61470ca354a5d2ba8b44147a8f1fd8c1ec0661777707f923ac6f181ff00455aa0bc68fdd41e660e2e6bb71310bcd228f8f351f3f9a192dc6184d31c6e833c62c0ad3b3d581622ee3f683865775377db539e79c2847b567f2e91426bb816addcd6972ac9e5c4a082184ac87ce30dd4d0ab02618e87784f5987f41fe927e5d521a61c7341853d56885e90ec21a533e5317b73f24e6d96e3f9c20c3cf8877275d09bf115577d267ba8bcbb0a344c17427dde498ebc06bfaa92a4971310b16bd5b3ee06a7e2b85878e9f3534188afb607ebae326dd4df7318d3e1c1c56d7b9ab54d8bc3823763f32b5f644c6447326999f7c693ed6eaee6475774eb57d765841417e9d63d48eb03e9a6aa8163e4b4bbf455ca8f2df2249ed547747abbc9355a1871ca5bb1883dae30df408ebd763ac4d9c3ceb248ac5c40cdb7862c4e21468dc456a290ce1a4f6302bacc46a6f17b684e09d85ab6b6ede5d6ca627c7ba8b11a6bb250257d0672db280ee361efa2337c40aca50baa582ab2747d03f9ea2928233050b0a66e2a1671c050a5b43bc6399540f9da10f81ad85dc878383711f8b75715fd77915da1eb5ee966598fbe83031c675087d79e96a9a946537d0ee76b3200f594758cfde6c8422945e7a11487ff2e83e31ee8e934b8fecb14bc7580bbebb63d7e6dbfe63a417fd4cc47a26f0d91d50890d9600ca6fdb8f25daa22ee27fa1f29e8273ba4ad6538573506580abf22558025b2aef7e92fdb75976a569b0a76824bebd4530451b21e50c4659a66871c43958f8f61fa22642ca188cbc30e5af1c4dc109d011df0ed31cf8f617327c3b56db5d5aaac03954f827ec0e964223710e57e19b2c9aca0f013c64a4f6bef81ff48f91802cd1438e91ba83eed24297e819a9c5751a426fa1d9a96e8ef5e69b4787cb3793b9203339392d5cc90216aea064852a6461850a585cf153904214a69cb0caee90de534e08e5e6bd01d97cf3f5b8fdd836dfd7fcb4691bb6b9dc7e6c9c2637fe2f3c6fc10adf3ec920062c5dd0c2b767e1db4fb00adf6e25080ca83e725ca5bb7625d8430e89cb7ce399f084049be54ad4e5ffd75c1f7afe02aa57a2fae93d21350dd13d2e60cd15d9d6b052129ca8aec02850a87168cff60c55c8c2ca3a14ea2e8a5b591ba1f696fbf8a1509b817e900a58ac4d3b5f21b4d00921869c0c0ffccb71d2f37719e807a3c028df5fa09fea7bc9da3494ef28ab8235899b52987875205b9a2a80200944d0c2ceb600e09f3f2bc70d8d0f0307aed8af0a6d5c5ca74df5eb79939665d0e79c734e2927849a63365cb39149e91042083597366c481b6a70b84e673515870e1e46bf990d2a48bb1d779ab39ebca69e2e79418735f5633df40cbaac9867529315fbdd605c7a19f4279f9784326e816f2edf7771f1abc625b8f1d86058a7cb2a671dd29de61906793b7d004208f44cf49963957ff806fa694877fc01be818ef5bc062b03b16eeabe1337dcc77fe3ec524a29e5119cbf719667acca51a640f9e7c609c79ea9ac0d3b637153f965ed4142690e8e02382f5937dd2c168be5bdf1b024ce0e0d647e489f3e8bfc6e3c60cfce58501d3870380ecf669558c472c266957eaaf10adf4cc7b02df00d0e3f71587738707032d37908c4b2aa551b75a6faa99ae212d7b805be7171592f7fb9352eb563355ba13e7647dc7c87218f39ac1fc5b213125cc59333ccc30b7aacdbc57d9a9278a4fbd40e3caad0940711ffc349f1684f6220fe8ccf30e5bcf548a55cab6c85ee0e24606bb178e24a0f8060042da8d060877d093bfb28218267fe699f3e74774178b94e5f2c1fbabbfc729dee2e974716e9729cee2e4ea59ac0263de48ca8bcc533556d7118357eb65b8f165739ac2a7ff1c2857f5bc5bff0df9c207bc3fee285d7f40b7fe13cdac3fc85ebec0e1afec267daa3c15fb8b757e32f9ca63d1bfc8577edddf88b0fe65fb8d62d00f80b7fe1b1bd197fe12f1c0900b8208f5519ce325cc6318715ae8dbbb384dac3fc844924b015717026c7819ab376b98b8b67dcc2d5053bccfd546d5c5697310eab3bc651846a4063fce32831ec04cd43974236f508eb63228490668706319ed950f96fb819ce36d4cd68a8fc3595ad501aafe19cd9a8373cc88bf34b0dbe42face717844ece49341ee5b241e2f6d749285f39295b90d36cef4c62fb7c17d588de3e03e9c2ce8b7416cf887791ff6330a5ce5a8fb59bcf11c959fb5473795add00f07002c67c769ef268703a02e5cb132d769cc86ba6bc34fa2401b38326ee17784c79f3c930eeb6a898f0da8f415a23dc85180c79f3c73e92bcfe229d650b7bbd5767b8a92831c4e7790861a5ca5d57da843d606fa8c2aa342192a3138558551f75f54eab0b6bba8479f5b79f6971a44bceaa772a9df6ef1ec1a0f7daa96fac106fa549d40f728cec8e6d06166b809455881154da860a28a13769808cfdd6fbedb0e210159189145e8055798c2187636c736252a0425458108289880c9ce66f4db1546bfa17edbba09d013ef20d87a29c20559c080084b2cf164a7bda3b4b742c0d1e40826b2e00112507061a7bd87dadb20c0560f122520a20b2be882154e6065a7bd8dda5b201c51416aef2aed9dbebd93ac746b77bcabb3ec0ef8ddde8d04ae386897da79687708f11659b0b4b77d3b2f29213941a90fed4376c70299f2032954014516a519ecb4141a466520a2045f78820992a8e21b094f041511851e7cc109293bedfcc340ed75ea79202188095c98c1123d88c24ed1bfa0c11542f085282c2185043b3d424a4f8a8092823338418a1d015c01657e3b8e01d693507e3a8864cd4b9a3ff58afdc35e524fbaf41da4079159102b8f6141dabb1a0b9a292dc1d656a1083f36288114aa90e2043bd0394b7b3a3cf4f6d9c2436f26ed9d1e7aff7413e8eda4bd27ddda231f1f4682dc69a887090b9288020faa982245163bd0d9a8bd1c84debb1e3a4731711fc642dee5d08710815ea43dd3434782f4d095b4877ae84b5a08e8cce447034250f0820b9e30918520ecc0a02a3c7466a23dec7dc0168e773d98410665d042951c3401cb4ece43d73142f6d055b0a5000e80810959b8e20a3bb8c2ce0eed2110ae78291dd328085e1e210856bcf41959248417bc749af666badfcda9e1352e07ede721d842b2434020facc637bf5b3acb5609964a474b484f4ccacf41c04b6d80c7f3a9dfcc44327ac484a0c1e63c263d8aec763c841e3e3c0160f0de19ce1af1afeba98a8bd26f2f1f94f569e423ac6f114444b3e3eff498e89b8a145b2545445117e4e5fa524a42323a2a167178ad241fda481faa77d9e3dcb92529223f1c7d200462d244ba44b57d21d33115c2d41d21d2f92eda09742e85ed2ba676608ee8126215dc036094cbe3d52181a4d768c2a557739987fd7453195aa3be6a80a862955c166ac178766a5d47437e74af9b9009a0cce7c4d77d3997637b34c42c87dec7c84c7438f55353908c3338d3323ab94996418618cdf111adf78920840127976583f7f0855bfdd7155221f762f1b425e8992f2080eb3d6de10420877f019233347e60821d4b0f63a46d831c61865c718e31563bc628cf18a31c618638c13cb628ccccc713233333373ebf85d9b0c42f60f4218047f33841042082184ac1be8c02c7a117633d7ef08646666ae818c03da1ebd08679c587bd3b1083f9c871cbb0eccb2e871c723381b8ff4f6628c9143f1d6ae7d4a1e72dd0e7b0cf4a3365478764fef7a84e6255322e8fe3eb4029511a2f9e61b2784e63d3b9b84b9acbf454bc420d502de2c29208272c406862bcebe26d19684bfbdb1cb532d804850fecd8288382e111de18a0c82c212ebc4542f75d2134f5c444f18dd608b474f386118d4040be051134cd88b2c1f78a7679f2ad01b28e6d90d5add3cd639bda5b65ba65a3a8289c9649a31a949d1114d6c684b473c0123e9670bd36493c78728ffdaa7cf125315a24d9c10ecd35e735f73ecb34b7c9aeb2ce378e8cfdce4eca43d262d2484d1bfc0d6ee303925114581025d228a429499e6ce10145f90bf9220f9cbd4a6ba9faa1bb7dbae990810458864396af10e27f949884f22c49b4c3a5897c7b879139afb5f1a2744af7aab9aeb40ad9eea92eed837b6ec481125768c1846378beafa2dfac9827f6c6cd378688c8356d06fb3b0a6eab728055462bb4ce478e88fd397b4079f5d88f6b6e809280c45b75e82b60807505e303f79ee2998080747ffb113cf71369122489c73da03f0df6239da9be917b7417c0457e07cf620220efbd79cef0eec798797b52bf67ef66dde690bf04fcfa6fccbb72809e837ce6cd67e664e42420408de81a523eb20ed7d46dab9203eab9076f8a3856c3da0ebd8b759368bb396b05c7e8b94e0c17f2c557b3df34b2effe06f0ea6d1765577ed1f8559025b44dae457cdb2b53155acbe8447681e2683353be896fccab7d3d4f4d1d3b05277cdcccccccccc6ca5bbfe38c9a79dbdd5fee3a4779d5e9a9593bab3c24a7ce5dbfb522204509ee6b708892c3fe33334ddb1131a7ed2ddddddddddaed3d0fb63a0232494befb2d4282e8b1a058d027947cf0bbf140ee63711f4ba77f7ee6b7080458f8205537e1a22642bdf4404f988967ef25d8a270658506a1847e43c10a5ad424e967fc163521fa6c21156893a567ef2adc4a7d656a340f9110fa1bbf4548fc7cc61b0f4f6f3d9adbb591d1bf468258c02ba8f47ec2043778ee2a9f7b3427bf79e8d123c66ff8104218639c729b62a0edd8d6a39b5b0f467dd0d79b8333959d6c3cd397da9b1c3bec004da23a0d3940d72111949ddfbf911aa997189584ff1aa997c3b428bdbf40bb9b070e42081ba90cf46b24a3effee8b0cae85b5547d86869c9ac3b051aa377c3daa3934cdf1e0df7e1113642d2dd6e57e94e055b9cc4aed851e02c78e618f0ee7007d14e6aa4eea013e8d7f3dc59e8421f1741c8b214d323c4a52b3ac71863e4d8d9888de0111f5b6996c25660942d601418858dd8888d36c258942d4d9499498b1088ee3a4697524a29a59452ca2334f506baad1877e1df2ac178a9a0a8d42c76a5494c992212001000005314002028140c0805a3b16040ac6aea1e14000d92ac5672521b88398e52c820630c01000000000010001098218100208371ff2fc93ac7f3f252315e71ac01cca79290e62a604498accf2dfbc80d742185055b94cfacc7ce1912aeb01ce0638b540ddc368d8739004ffe9ff0d7a44965093e8a9654ead7512d79cae817950721717a39d74e16cbbbc08e3b2583ebad0ef1daf19f853be30a24759d125b692ced0d0dffbf1f2ce565e3829caee38324e3e6c6c8cdfb26e968bcb41df399a82a37876a5252c0e005e9b4b3fae368c80620886bb8eeb100266bfab90fdb519e662c2a2856466f6e30a7b6886cdc4840ebf0abeb307fe2110401cb57b72fff849f137bdef823518e582543f7833bee29eceed08c1db37073fb995e4aa578b7a763cffc045bc1295a97c1144108a42366f560344d8d9c4405c1fa12a52082e437240059a5800bd6da1d3e50ce9c9b243ae3ffdd1ddd75b740d9c9b35e8b75a26a4f4fda238c0ba3705e93b47d59f85d7f607e1fdcfc07f683ffc07ef41f9a0ff6b1ffe03e721fbafeb83bf99098d3860ac8c60e9d5c3af186d823a507e6393ca8b85ba0eee6edcda894ffc062286a64afc4ff869ccf83d91a082a768c3500950799e6efd7e060320d6bce1a646f579b3de1d62dbb84f3da1235087f993b8150269983ac9c6fd9461158b2dbc4aeec490ca4ac248fa184be9864155c38f3c494253e45dcde8d033a5feae7e9ef0982d1b2e7f404fba55c5fb6a36d473d171e22761a069928470998074df3c4f4feccdc6c95ce951a9471afee219b32b92ababb9b93792f113ec8b6922e41a0cbe8e3dddcb6889344b6a648f3d308f5ac8e193f45f0730007dbf4225200c7c75cf801b013e5a43fa706dc1cfa5be9523b61fbaf2b9c1810e16f6d6b7b554388b0170611086cea34944d646fde50c6a4efbbb4b660930151ce61613a6530ce52079a2c0df913c654f0e663c9d91bb6dac56e417f4b821e4ec8055c16a379b889b77467137b60accc46ec5faed1fdf6141a38d601754faec01daf80a7bcf3df2718ceab20475217d7b60267dfadc4fa438749750ca672fdd586d3ca510a60d905cb3c5388cec77a5b388ace77c9daf892f15f6d76d62007029ee2112b246ea82bec213c4a007a9089bfaacc16077bdaee682823fda97477135575841051a435618dc67b224a37f70546ae25b9c21b21df10f796568892f050eac1a906fa6b61209cb9e9b9d29843ec69d1faa63f65d242f19a16befe62974c07bd22dc60f6fde6d001cf2fd4d245304d0fb53eb243fb4f18cedb62a2c3c2511186cc96f2027806651bfc0041470ea95735870eaf15e1f0c621860ea536263b6ba7485070051b6f065ecbeb2c17d472220428c79cd5a2350f95343277a078d87494ca88b6a8fe98153a50cb728f6b8b67e531e251793b3f9e6fb3d504164989726b840fb4c0139e0c68b01682011241b8b86913e548defeae5f3af5253c26ba5c0579205e89e66d129feb101c1acfc6e0ce0155ecfec1c00f228da819d51c0e14fd77c1984110464afd6e4d86febbb837b13c42b78e3f7143b72bafaa2ee6d05b3dca948426c999a5b2ffc15e17df1fc293a3389b9c9a99f1bc0e305faaef12a4058e78c66543944b3b811bd86ca1c7bf843f83fe78ad5d08d69723f75276da2fb771a0af1cde7d3fa3249fc210ebb66720fabc17a3948a96270cfab22601bb9872499b2c8751cc518af520b98206449461a17309f47e10174b6acc0473baa703730763c4d4109eeaa2ed926c760817bdb4f87a911c81d81b11cf51a355e01bfb3899e24fc83df97cba57de979f0c7a3a72251bdefab0868172330c1b776a3180604f33c2c1b7b1e88a62ba46be8df952779884548b991141c01267f1e05a38734824fdd8c7cb6291d62a333d037c1e33d7a6935886865453d697390309317aba68fe2d0a5c35d07481d636ad9f0071dbee5e79dde3143c944beba2ee0d623cb165f83a5d526969f84b9e6b6624e9d702c242eb668a103dea0c72f36aebbb7c92ed4ccdae5e7dab9010fcdee22717312ef68634a1036dc508b3e73d4e0850b35647c67c38059d99330620d68b3595c2ef0fb0fc4c057cedc631602a4cb8d6cf0e316bb3e664af2b60382383660bae0afb910b0806a2db243c567d78dc83a773d8881180268d5ed547744d9dbfff12637da1a895d00181687ca86ca29bb004f454f8811082d75eaa5db2e95593c832299ca895bdc975f3be995a242974c01e315f1b3aa199554e168dac697b6e47213a5de549ac743741b3f1559594b917b0611df478127e48c39f0d202f82e87b0836fbaa403e44d77d10d25a9fb668e5ec978e1bae16e63649d2b512ec06c5f4a9aa0903489f68c283f68370a613147913f56ff8caf5e21c8a3880381f4b4e3efdea9540eb5f9ee3911c644955ca3aff420ec694805b411387258454ae0edc9461a9ec90caf17020308ed3f67477e297ab687e2aba46e87ce3bd3ed4aa67163c8e580c44618211f401ea63e9468558deb4d127ad8bcb5d062f437eeb8b5b14e5f8d59ecc94c090ca9f792d031e4f54f021424450c7f922f145de02d52c5e65f309ecb2687dfe7aaa551191cc95f81247d339732428747f5cb35d0750745258283648ebc76190b51511d03f080bf0a1042be73f56b9a87e043cb8a0127937b677ddc72710421840b8c80766a09e6f2ad059b30c78e5504d67d692ab204045397ed6b8cfc8ebe05b0a045b639573ad19e5aa5005ec206656b348b72a86dcf6b23ec14408ed74bf3a366ee50b82f8724698571140a9b4669286d000f08e6e844e0453950d176039592ddd1850710a372ef04aaa92a3cff407feb8e5e9a8f9b576dc0e8552e01c0c5781d227039685c777a0989d1b58ad5f3d693dd8f37f353d0c9b679a4b11715904b30254765c02d836fb7bf3806cecd432c58be3c17be7b1ea9c3906da2163dc480476429ef0394009a0557fb2d03680a4bcba0bd67a921cd681d5de6c35e40103c312ae20d0deaba44dcf4cda28fb2ec4cc254119bf12a66fe38e93b4c7e58882a4920ed63e24347c5905a25367f419512845e6a368c2372f61a798b58ea4d0030b5f19c1d5474b0874525c53bdb5989c684d3e87a300303a4d61a9d7027020c78289b91b5120b895c67964fd1b6c91207cffc64c276097bea458f8f6b78e02af1a9499367d7c6c34d3c22df09af560914abdabc72cc70f3ab4857c88cb0fae356a05bdffc93e7106c628c45e0ed8f995594f7c2ad02402961a4d6b1be37c19ab31b80aa08880ebfd7edea9a2f3d912705bcc4c5e650712d32b0745ce8376f819df356750f161b6a5d4ac5dbd88a7bc24ab7d2fdad60da6aef19a7aec0492a9d64838229be3ee77dd5dd68ddbc7d8e9d294955847456a3a61239b0ec15218797c1377d9184aeefca31b43b525ca0d388a69990501a429e97c534092891b6646445613e84e2b153d82890fabe4e429739b7c82c347bb49a4b6d24fae3666e843d6a6a2c31585ef5ca20694d7e444233f450ffafe71e4ea15ea0d79f0fad9f6cf6b2e4fe8600904cad223225e62588289b3722895994e76d57f58f0673d961570229c99d1794adee7eb35c111c7ba5de778e7f6869206cf08b3a4b56913526c0ca48eaa23e3cfa5581468dc29184965a85bde7df49592ea06c5042bcc2ae484e90f925302e965d0ff3e340f72d4041cb3a7f115edee3797bc33fcaa43b0f1948ad4397f5ca99bc85feede58f515024c62833509d6d9ac0948688449b73953c7316a678b5a8cbdfb927e2160a01e3cd4cbb2c06493c96b73c8258583dc7724afd90809f9304731a91973ac987866eb51ac9936e23b346bd9858387230f3c26336ea335cfe276a99486d8d5a0846f423ae149a43e04f1b3e1f6bbabe32f1d57e3874ca046c10b71f6da33e224761e440b85d831c65ef60c09677b4705fd2dbec273e350c5f18c274d00ca9ce8142ac7839f507c18efe1ba415d99ff888492691b870ea8f06b735d287d3d007539d825ed8fcfee6a990dd308a5cb3e95a50b8d9257242334ef5dad3880bc58f76d34cf8e0b5d3634cc6f5c016a4bbbdd3d3ed92ded10e045f5fb1306199ac4976fab3d6e253bb5bebf43235e283733d86dbc9acc6d3a0988287154781dd2932e2ee1270d1a28c9340dd5415ac132dc600ed237ff4521555fee34d337815e718bc93737846ff64d6662b03023f9aafec3659262dea610abd5f28047f76f20a254430de20872a9e7d4ac44b93f63d30062d101f2e50a62a17da01f67ed3ff5200856fb064d148a3027ff915a5cfbfd408abf495c050fd8becfd49faa86ddeb08483b2eeb80e08f72b4087c651d09fbaa7c03a8f70fddc867e4c8e7769b4a9edf3b129c560b493095facc28ae9b87220e429965497dc6bbb37f9861761fdc438d3df896ba62f0b7bbcd5871741fd4deaa25a5951774535a71c13dfc85d415111189e432c3cdc05e5aec41bb62c56a963730615776380f6455563ecca96dc60317892612aac68a3a4dd3f010a853dff920605e26f2883d95860588db52229f14236453323e050ca6f73dd2e7bdabd9aeb09f8796f52f8d6bfc15e04f8c2615e1e00427253e3e1d220c4427751c6a3ca333a8ebccb13cd8b32c33b73a683a28230d2ba83577fe95daf6f484273a8ca613bf60b090c4cd0f4fd144fb1c327164bce200b91780070aa3664848917142bcb1f193928eee96224fb0cd123015f49b25c50cc5cbb3165622e1ffc4b04a4d0f994f44c522c74b8c52305a99df21d2c4f24544a89d69a9d66e6d58b5d1ed94566abe11c6f0e38e9e6e7022c253ade8ebb8a64f6b4cf0508c91e9421e70253d204c168122e37abc8b25c44474117d7dd6cd81f63d307809bd56673cfd3fe49d90b527ed85c352862fa91648687185dd1712c5f4829240bd16ce3ed72febf0fa17c08b4cd926d2f135d90012033d4a7502f5e59c16e3889556f0db2bf894d1ad8ea0ea62169c2d23219e46a6e2ce167789d8c4718166bea6d78ee08bd878a603965514441f0098a862f2ecd910d680fa3d233c385fbf6e9eddf8057b70e9bfcc3e50744060821498830c32d56cf540b3e3febfe2e7790ba3b8fdef31c600efe32f9293889b26ce3b0537074d89f956c501f14c6df2e2a3a3063d1037ac33bddf34fe6464c0256561fee02a6814355f2818b6eebd1f59780641816a157a112ab880318ed4509171df33e70db8bfc1a5531e1e492e691247503ab4051178456599186e60dd7e05e61c92b64d8b917358756ddfc6c77638651118ea24f2f77457015290eb8a751fad7f971116c6d9e80daae2a3337be303ccaf87f2150e8945648d0a5360ed572031998097b66fbb02f29ce8112490c9a111b7e8d342a99adbe46f81e9e6a84b84e0a53b4d18487b68321cae18b23747cfa4813d8487a89b057ca623e95e39cbd0692ad440e6f8b3fda31539732494511f3a2e69d23661f5bdbab46feaf199a7a890bb2ed06ba37ef640552eb179ac0bad08536fd01845ec2184e1537d02df40632b642d485fda7d6395a0dde6e214064f5099ef1a4bbc737ab8c099eb978101d729699578065e3e9577015603a485584787603dd8357b36447233abeee6e7c8446671521ac2d6bcfb6f93aaf5c3e1f60da4cb021f0dc0d4be53d8c3a020f8b2537aed1d734a7099bed9c4e4133143c04794d5cec514815915b928ffe66b4c3122121607d1d8c22561bd604b54511b88b24ae501ab6009cc4761767e1bcd7d1aea9a84d50c2009888f363a4bbe92b109c12e53719a0ac0201fa93164ab57383469567d9cc0460ad5d5a0922c158e1784d0c8681371fa24591f45ee11bf6ac34f139e2e93fc8fe36c263699c7535b8b4ea52649a195c3b4c70e0598f4ed5ba82e7ce080889252955c3fdeb44c7f6e75ba5810e130d22c35013ab54450a412f4c81209eb0fdcbc87810d0401ebe97abce7839155c74839b95db9d7727723c9f53c4f0009f34f3cf0cdd48cba5524a6bece72b3000549b5196f0e79f293d25438fe899aae6077e4c9977ff1475390f23ceeaff6e71f38651fb796ea3f324a860d1c51f097291112c4b0ca39006b54e1fd7c131f298f3fdb2c583e42844521bfbf10068da56fdf7187f70d1310fb0eba68d1f3f732f340e6a2492c6de93500425a2e8b4d3f218f987c020fe8314ad3cf0f56a0c762e7947cfc0370413d231ab42ca9e25125bd2e53119d08e7ff190d59ea8176b50a1b88d4d23381023f42ff8cedb83f24f094a2ba6d429b2d13b56e0e9f35e100080189a24e3911aa71247038236e8fd2fd7d4a823bc0ca9c749589a4e73070573943c9c964cee691bf4e650ba4a0e9435adcb164e702de00fc1f9b2da19e18f8b684b600faaf3c00b6636840f223e9ba0929186ab1f2e5df02c8f9fef6c58a910be0b260e0a4b8123f6e964527000c2fc7a7f849b37e5b0d3cdc9dd2dc39c6a132004da5b5004a32aefa49576f88be1214c454fb6145594e12ef546b5f9f332399fdd786d253be7dd1560598001e5b0d59bc14de524d3a70a824d9a61bd77ef7a74bf00f6ce48f735a09c21683dbbe1f6320638f31c1a7ee88b39cd21c766e0d260001b9293bf7527f9c8a7dd18b24b103a1f82f13cdc1bac749b79bd86c800bd5ad5406332529fa23b04fce613e131da3bf5b244f4610c948b40f42d87860a941dd4120c89f32394a76fed97add37049928f8663c2ab8a4499c23cfc2a38739a67398317ac67fe4e4d31dca9fb8b33a34b829a7ffd1dad9d14b26b38248cdfc8ca1cf6d6f9a6f84b3ae90014dc5014351ae69472a05fab684cb3d97d1537cfdc46f508a73185957ad1e7498a44a4183a59939536880b3ad5562099669e790bcbbef4483d8cafca900db6fde0373105fc869e3bf6945392538c547883a1d163e01ba4fa111efcfcdd3cdbc58bdf264d7804d8422466356a883942ac18f529d62110f0dd96795ee10423d8b1fe03e8820714cb9a348b5d87600b85aa9ee578faf94fca3e497c9db58d1c6d6a797d196c840cd2ed67a869ce49052a07f6ee236b2290723ad2314929d2f2890fc5ad0b1dcfc934b358cdf93fdf4216a39a02ad83322a2416cbb2a700ce45d71ec842b3407434a636b7e3c180f5dbc311f5bae996cd2af8d43995d2d42f586ba202a52a7ddfebee520a1b0bf2cc7ebd164a599eb6385083e0dcc40ee16276cc3e3e85d5c7291b5d6b41ffb09ef632efb8a958700c6531da06f5eaa77ef86b013caa3a8c4a790f52508d688231c07d2c54ad947b8195f2945fbce0ec7d84c13d754ac909854d5684ab4c4a67f03acaa46d4ed44d66e020b613721e23eb6e091260d77ffb2a2f09256626b27e86066429b764d8b0d5de72ef40b08269b3cbf93cd9ecd84dfb187fdf5e60f7847e47c77e99a369facbeef368f1e0ffe25f8b9ebd15d57174fb48fde55f5e24c9df5112301a0279de61a5a0a6adb9ebb2a031276ee36d73387e1b782502ac358455239182c1bd199a08f3a6e63d256a0c5e85b6501adee961af1408530584d25e4588b9e0bb320b9b99429bc39d944cd71f853cb34a25b0b0d2a0d0d36f0200c11a25d762571c89a41ab69983af23d17dd0e3c2769d9251842c52098bb4e27e39ca29e1e32f9629c2b5345da0d3f2658bf6881efe30d6c372d532247195119679462407e71a012e345d5d344cf33bfded5f96c83f4e6fb443793a762547c9547e5670aa13c30bbf2c285fcb31c972123e0dea503fb63d11cfd95db8d4759bfdc5e13bde05f0a359e72df53bbe07589484cb0a76e5e88af9121d96821d9c2d0b9f48456d9395f5509e9dce8477dd98fa23c3a97c4ccce057ca8d3257e6bd1ca2253496a512f740cebd6b79d0f43dfc8c20c04b3fdbb54a82a2b574abf0e1728698bf9765893c2e57580a635c7ac738b74ed4ab9741b1aee89835953b963fb5bcdca1ea397400d4c9561e9ef1709b552bd2bcc61e61c90a8afbb000905535932e2f1c431a88fb47596b28f2b77e2e5002599894e9ebfcc57ffd90cd66fd0046c89c54cdb4d5cba9455af5f75af6b4bd9fd40b2e611570b20e016fc696e79794257eca8490544cf69691fe7a91cd0c5766b58e41b09c7aac2efa6e04d4d8d507c345977a41f85139109db972cbc019c7884124dd8fac30dde3d4b04f20aa5f7dfe96d8bf1a689ca3038a268853efef2aa42a16c7144ea5bf52515d417ae7c25306ef4fb5331f2c0e6786a20235f502928c52cd137f3942705938149d778b9fe1ef332bac476bc79c30eaeb4798cd4c6cbeaed99412203aa680a3c32cb1aedaf21a80fc7576aefeb6364574851432b96f5c781dbcc075480827ff236b59b5d112b0e0aab609d5a3f56f33e5f37f44551020c098f46059a1f12600b62ac0969f0ceee551a1fa422fd024bbd73842b44df498103b3d3f6bd413f05db6a707843f3d529782515d35a89bb6371b14009222aa28955180287ca638378df71b40292c7c7975e47e863b607019b7bef6d8f8201fa340864a551783707c326a42b08013a6623738fe81b0df7154725ac842226a8a702b4c5b473b0f3b581653d3140f84a2e905085013943ec910704fa73dc50b856b84c7b7da5bf363aaa67c5a53ea99519696a064ce4868e62927d222606a982162a6db051ea2a0dda2006a98a36cca178225fddd61ac8a386b0cd27281b5e8ab53753ede6ba1fd7c226035bc4486438ab70c7e2f7db34f68155a0e9f72f5ee998a11a1e212280829b2a875b1ac695f5891184d66528ebe23c1f1bf7ca2331d5a6d7e852d394f59d30453821cd2779e19b27adb3913afe4d3eb49ac39a150322860e1302cd48188dab687824337b179d408ca5c62ec109a1164a67dafd702cf74c0fdc5b5a4d45951a7ea7e04712a721eef5a807240394117d85258c296019a1ab601395ef2dd4158c6dcab0272b0a75755fd548962c395656c0a0c768be20ec7b06d3ff04e8196355a46ce5b9876d78d0e1903629ae905e017f5750ef3329c4c91a676469850df96d0067a8b52186e6926384507b6431e31743357dbcbd2de476f00fc8e0280a8faba245c22708b12585643b3bfc4d831f14fc67d2ffe8d5f531471019b2594d79b86b51f720e1e3249fc628234f8784c3f27271cb23faa5b3de11ba8e4de4269d28c22b429c99761cdcf12c5af5b212e0bf07765128082545c84484d485f18df1a884f8667ff17088d171e8d146611ec288bf6935a48a68071ccb702f97f8c14c2b479b6cb966a8188f74101d106e5c46a4a58b90400519d5eccfee18a2724464ff0fe1cf64a46a4a6f036d4207aef125877ee0b5f77283454737cfb374bdf3778f2d6ec075ee5eaa30d3a6b532379fd9c87f1b15a354e8e747b4f32097abca7c804123c116efb877432a9142271a7321486986933f4ae98a4ca4182422d028dd950e6960f1d83545963b056a55c0ec94ed8f7ef9c3450133b87e4d62076ae85afecaa7eaf0466633fbe4300eba9d457eb2cc6a248caeb21d70267f0428646c4df35f6dcdec2dd57188f3dd2ab5828d9748689cab26cbd25ba5b68a8ccd2f9992714bc43c5e74cdae9a5876dc6896f5b2e3bf05a9c50e46039ff6ff74b7da68e8c8b1cf74cd30b2d086c1cf2a12277f78b951969b7b2d44c4cb90c95677941ad416a45a34eda491b9d1bcc3db7a7eda3f241161e6fe54e1c1182ba83e8b5d3ffbfa7300a8178e35e6ecec1a836115371eba3849a4159283812bcc19bc83983925a711bc0c74c24b9fcfdcc56ecea62ac767388edc0096db85603ff8dfd0e0f8eaa43bc07606ad438d571026e21412558b60f4c3cb8b39d35860c9897f302aeae8e845e74e0431b2de4a8396e02f61bb9686269cc18bbc2379de944abfab7a50ad2afa3711950a04d3a58fd253da6e29e02defc1595e2b4e56c31dd0738e64f7079e78a6f07a62f4c3ae8259568d06859d12e826ba13dd0cfa9f6bcdc269d61db438156a585ad373809d3d0ef207ac2e72a8fd28e711f83060b2ad177583e2878dbdcb00f4ade57bac4ac288268a5690173a4dda46f4fe1521dc9c70f6f6becd5ba191d4553b6f6d1b3cf32cb13be7908dcd21a99d833690c01d723791ae77ff9d5ea3fc9b3510b5bc8333a5fd854c7a6cf0b2ec5c3c9b18263ba59ee4e59d31b90548e67692efb8c75086259b30572fe1e736e2fce05c10213f9871a0ea9de9e6664df3b5e3329502dc416e08958c58f87bd150088ed60db305153cd0863f662b9c4e1f1bdeceec780fd6781b13205b2f54337c760861558ed1ba58486d643cf77b51b5dd1369482a245e22cee8c52152996b3da9fea36d898d494a6a75f58dc1b655c3e84c0493c565f4824ee666121796a1e5b7e48e0d6ffe57160cbb53d9059f3c7f9e7df29bf898588e0bc2035c4f044ce99230674f139c3f974e72c86db78811082d657724828228d5d4364b6c4ccbdd28d7d7f218b61a15063d00e41c3694df61c6a5493ebd99648cc30b871c1b6ef7af763be22b3464a3b2915c5f1590cb93ef82ba33e7df3d0c1f6d6caad4db069abc4ba2d8e75767b6b6b389dd9e9acc7bee2ce8f8252076c122125472355480e466c6478046b907e48396d52ff409bc2ecf23b0810da212fe0603d890416804e745cc9ac727d8082c3fe22f9a16a74132b4dbcd20f3cf64d7ac058dd1cdb205a71363370c7777beab14c67a76c72bf1f9c4a94ef2525120b951e09585c12b7aa617642475a4a0a125f02347e44196abedee1b796d6e25133fb387bc211331c3341f1b215b2cfd17f17aa840801eec7a81dabf5a24a5202b7ef11e5321a0470ae8160af25a2f839179ce58042b9bda0872b8f1120d4e2c525cc19c3e101542a23b55c5171ec27b11de4201a8b147c5caff5435e0e26e7c91aba3e467bf52fb84a40da31644b83464640200a87a8b56e7e7c66d2529bb091048c4156c47968028fe845d4a1f9ed85faf352a0708c557e478f3d25624f26ccf33a03122611b95733416ca80431e39a3c31686c14a9be92177d83d479fee0274c89158afebd197abf7b227bd9ae1344041a0986bae79a5c4794821a0a3fd24e396a6df105c474a8d80c5a380c215a602a0b581aa4ab563e8df2560a6cab580c917a651214ba661a3119835c6327b9a841a6226b14da0a1f46d0fe27992d4814fd3ec6d9abfa7585b130084876c6befc177fcdcac5837ee12faa080e02be856dcf0809ca5c4e8d4fe48e3d4f0009931e1f9f419215552e2e3738c51315282b2bcb26f0e44ed0cad2ab671022f39e3c3ac3490fb578a85d3eba7c3b8b5b29047bdcc95f7f3f5709714e9abb739fc23e987c16712d884e487d4b86055f79e34939bcb25cfd71ae8741ca29ac4b341251af4e95dc059d6d5719c019c92a5f69351ddda19d55e819971be757891d7ed5c51ea8e99d8f1d42064d535f68f35222e50de90a5d87cecb60ae584319c9562c0af4f8ecd10e3a70b4a5e4f117ea4ac27b9a0e8c66aebecf507850a4512d435a89eb84aea0f7f1c6341a3c2a01a11f285ab96894d806b50b1c9b0d054f257da2d5fe063c6636c496001ca07a6f962042d452a180e7e30a97402bade149994e162d66ddd89b92aa8436445585f7f0237de7d320662a65c55516330093f450b85013df5200a211ebbf2f317f094790bb394eba2cae64d0029a702242a6a6f4757384978647548416d10d720298dabea33af40d0c608416b358c054b86ea56b447a4f914ff987b2a631c037fb188320d8232b3c82a11856a85b9e0d0afb02e5b4293de50c6b4b48492be1d1867090d1552019368fb07d0ac29a1bab3e5d28c969450a74ffbe328a1a84292db50773f055d1b93d0deb696844e8fbced29092daca1adaeee7e056565241477e15e3eb32812ba0a198d446b250a7a60604c245456c841ba74db5350b20509ed8d0a48e8e88d7be74768c4723b911b55b86859e8b9e5bd2d5dbb13977bd4d75c743deb11ba5e1c1ea10b4d2f37233ed38125b4b93dd211ca9e63afe5b0952374b73b3842df4f12d539dd085db1f6aa052a5e6d6d50deaaffd8e9b9321621a7757b761ccfc5cf5b798174c751f287534ddedfc120e9ce34ae1724d214872cbbdca072454a6bdc877797e41ea04cb3b99cb42b7dbf874274edba3354c85439a95ef28677c93f53b1522ff6ac76d96b5ebe6b67ae5ee7b61bc8ca623e954d6c37c36bbd97236140156a139420c994de88636dcabd57bb2f57e4e0a01ff1f96039a4a3bddf33a774af7fbbfb4328bcdb69b724fb3e4f1031c8f63f3b8fdf15dc5f3ec1e275ac5149f928b84733cbb5fd2d6069fc78f11d1a26cdee3420351f5a55897768924236945d990d497b1642e80fb56a123ac3e0fad002847eb81ab2f0d88d7bc64cab8c411c01734aacc51acffc7e414604ab40be7dbc09778683234f2269896a9268a74b364608b4cac65e1e2103aa26695e822c2fb7ce91e056ea7e77635c34ef87636c361544a72fbc402e6e35372faf6601a29483fd143e31121d105f3b7514d69e58201a0ea0c7daeb6a759205c5116b7efed5031ffd2f5a6c2e7248b7286bde509c93fbfac50a6a12724e9ab265f661cde0639c916f8cad718cf54619e27046c0e50b636dc70818055e541a3959be128b11c858f32cf81e7506aaa46c18ba0c23209fe88ac476ed5266909c5c01887a4cdb7848d245f5cd999c2a71e6023d919faa3c2302b4477edaf172c73e605dbc56dd6137743c3e7449d9f6f37c4b94791b5580008d94ab168f5ba03cd4ab1809c42ac1c431c7fa8726f62caa2eef6ab518d910a113edbff55645c79b3a290c97d3a33518c9575a6ee9ffd4fcb0e4461b640c7c9af0ccdee03198ee9404f58bd8feacbb433af489059c833768b760d8da7c510b64e43c43b9c05a83965e1876d6f06cca0d428721f91ba5c05d0e25727c53e45a1efae588580d6a62808eec7a09c42e39e0d1720c621792e6e791496e4b698cfc12fa6d1ec05555a91705d0c70edafed69161c5b18bd423b4204be7efbcc660313d2f2923deac76b0270d54e1d5c639159f4b0dce7f65049f751ca48199e7facdef8eaa12d97dd5e37776d7b61c45555644e86a363daab0a3b242c2d42d555afcd0b708c2c450e2c6eb5b73c953b13cd4dcb6d6c625083bdff58c0b3816ddefe023bb13e2471ef8d592a4547ef161428a98fd4f9b8e0421175262f63a891e4515f5b2c30ed426ec511b628b9f67b613cfd18fbc07fe489eb1bd984fcbee3e827f9ead1324e981e47c78aaef5b12d1521bfc82a72bd053b2b3817102bc6b352e3811c857cfef8d699d0abce53f4d942e00b92fbe2607a8179f3c5e96ca9a95bff45461641187054b33486f99b1a2bd028c2382e9f6bcaa73514fac563cec8d76f9dbcd55f1b3d9cfdd40211bd393808653714748d7ea0cf62544540ef810c3356fe337968bcc691861cc87b6ae78edc74bc05fbb5da37dd70cdf5e47d7192b7fbd7784d752fe85d32c6c035ac28943959dd942ffad0d949aff8c0846f38d45642012f81f8152e4b7111b9f95b3035a1f7ec91c3f20e457d4787105c2079cd583d083b97e7cb7d1a1034322c70ebafa61d05d9d9c7273b8d2a1c0dc0432893c1987b0d37698ae4434073267b887b34cdaf8f94e43ecdc62ffcfa0c96023a1920f74d1e12defce9c8ce8dfe17d61ff1cfe535df28df0c76c33491aed7dd21d3bc893376667c38e91a91b975995dfffa37eae69dc1439c9db2d8f6924c8c0b12b9fdb55d2fd6ebd93cfd93cc04bef9174643d799b2f2a983892b9331e1ab47da28768004aa50f3475f8c34f282d6c1630e15b85c33229a37b512ce24c8a3a8e062caac3d1a948f20caeba89a6d9b63aa7dfa78061af8d6ecaed9729e7c9c849c19818c5af6b57649f5fa6682b13c0412486823703259b47d1aabef558507293f6bea334172221cb6d3e2bdd4c121c16b58ea107bcc672b0ad0db7959ad5ac03d8c4e5dcc5f5c9958d8efb40e87fa4c2980415233a5570afed5be23ac1398271643e0cf4fcfbb2d858ce728dc9e8ee535a8dbe9660543692ed7e9c44048485833a84d507cbb24dc21b135276d8b288d21678dfcc22222f0507a28e5539e3e374d226bcb87a659bf559ec6a1cf7ee98497b41a0d5154e86c840cd54579027accb0bb68d70887fdc38ab4710288de6c8d1038235101daa0c6d2037d62ef8a6bd79594e5ba16df796597c89736b2772822a37b8370da61d5d6eda9e520087ccec9eb7f2564a759387795efb6eadf606fc14ea3879d962756e664a11c0c83bed60f2c90dd3f9b4a17b517debed14d8fab6aaaafa417fddac7738ed09ba51c7159e00096822e6d518de3b4342319a8b1704479a4893bb2298f2e659dce0764ceaa84c88578998f2ad3365823d2b6daa9bcd1fb09d465b2956876b60931da9581e3919799a0cfc0daa0535fa7e50accb2972d60273d5e49c257a5d2a20c5370c99213b5a051719cedd194bb945d9e1df41c5562b08cc076a02e7317038ac1a195376df483bd56c2d846ef69c54fa051577bf8a937b1348d938bc959a9066ca2eec663d23108e54839d080c6f1f44d8fd79c9df92e218512b15500c621b0337bad62d661e379e07ea42ffc3886976ad3691b16c516caaec2b35d6dd2e4d0aa8ceacb796cb0f7a784b244e074fb3e638ad110ad39ef9aad73ab065fc26acc9e7b6f08556f75ccab843a47ae007806005c9462cb1a39d1b302f2655e8494d7e6de77b9d2968c2b42aa4da1ed6a20cf999a3b31274e671fd3322bbb3360239495c62fea4d3591c286641c17546345100b360ee5b630b3df11ce552fa777a33272ab8635bdee5f3720aaee5832ce0021656cdfc295c0dd8ffdbdca877147ccf3e7b1bcdac2c2c0b94665b3815b3aec9d8a93622f3e8858bdcac3793a864eaf05f8fc92521f823524c0872f7e963eb053b4597bc9bcb714e2b6830f91caaf7b2049f8cc51b24b96749c226a6a9e0fc734043db674aad4c83225ee57691ac97ec69c24c59d838d2479ec136c0bb6120771a59e0a04af5c2efdbe8c071466416ae2a1929ef18e6d0558a288b1294ea90183d3498dc56e0140ff91543439fc868e6e1248e46decb63c4f39b586fab4b218158c8d868013b67b0142242d0d74147fb10748b1c95ce001d58338433b7907435fe2578d2a0320a1482eedab7d62bf594e231bb2058e44055d06bee78b8c97e2e6a775a00dd25eae193c3f48e3b7049ead8727dc23ecb1d0ce12b657b56424b6ad71d246c01236aaa7694636e765379b261d918aa89a9b6b8ccf44fa29b889e2c2d7238df51a1675df84334242acba0b5a49de1a74ef81518c37a0e05e22979a08c465305b6e850701fdda840206e5c161af9fdd451291114213c4227ad4c7409b22f862571424ad67f5b6fd2e76e7dbb190883e1917e132a1119a99b5c60285382c34d7ca6ed1d7eed9f96704180110c199240b04293dd6ecf6306ed5c6e785e9befe0ef80be17f4ffcd8e1a9450777fd694cd1a7e70f14c54e96da2b6cf5c19cf11a84c1f789444fb8c23ab96b58709ed908e00f0c1c71ac91ffe5fb2bf5af5502a6b48fafb62314314b0ff4b76668d54d4ba356ebc93d6c33ee7e37aa5bf0c2e2805ee4cc53586d059c32fd66cc7e6ad62009657e85ee34f515a3098888d50952fe66f9cca949405eea3ddbd74d1880ed979d2deff11e6f7e1e0c89e3fd4ccbdd7d7033ea881d08375c8428c68418fe721e5c709a8e0ca7d2ee833c5bce236771b03dfe292d3018fa71e44049e43127ab0423eb4cdd6e2e02e5b98ebec56344b18c1401d6d503f671b8fe35394d0cf2970594e1a0e51ac5210ea11b87d178e77958d92462c7abbac0365964ed84a1e259e11211200520a80a410077c9a82fc0d053410557304212bef298d9d26a6c26c959ec60709ca09e0b97aa9ff82177a248176653c0d3614a8920624a9b93e68244f1e5007275b68c240e0b9a81f5deaa4a3343d39ed7a5c873502a5bcb2616b8f2dc593f5c96aa567ce079b81cc0e94a888e680c94d1640c8f4622ba0bd23da6a63b0e0779c10fb292eebd965fd7c7b3909435111d95a89b56cfe3bc364e7247b09c13b64d59a7edf8d6037bed26449427ebb70618524b8018f1ab5c92cc8c3bc1ba673506ecf2b6da122f5d56c5b9db80ec7481a128ccda0b3a489c1a08967128493c7f7b80eeb9ecb556be79e91a581862b38820968896f1830e73751233130c54493e150312efd40b5e5ec49dbad661d75045725709e8eaa91f114a310d324fe215dd8bb90e118cf6c6fcef970cb0902526d62f43524037c580f0bdeff2364286593c737c1193190645e514a39bbcdaef6e1a4b5d7508a42ee6c650382a3d75d5198fa57ca6438eac7cb9774c62cfd97029a84f0109bda17834eba62521e78c0e81141235478e7f9c8f4d7260b520b41c771f8185ad74e61c6777e506cb13aaf119d09f6cf1aa7308975791d320edb0990e9e9471b81703e57a8df4f4da1a88bfd530a03824b539f0a6debb4a5ca10781076dd73badc1aff31297bb04848bfcde4c015d04359d06dbdf1053042b7c3c0e8970e2c0eff86ea8dcb2bb67b8cc5531dfceda526d6e1b50842a0698e4c43acd8ab794df658d9550eb5438f64a1f4d89ac747167bb88d09f50e58a44c7ecf9a028522781b9b77fc666375da1f214513de7aca12284c752f4cb3b83b2d7a9827fb76ef76bac041b7f465997da424c813fa806df4de7803089be0f70f245a29e30a7a053457cff9bafb96511376794fdba0f90e9444a9a69ef34a70d3f4686e190001edf29a8a3616332e0f751e727e808986d38ae090ab5d4a1d89aa501ca5345b6d1dbfd28c13e8de57d3d2867b3e7a3a122fa916a142dcf2ca6d7fae033a66012b93abba2b14558e3a6af80af11d0af34c226bdfceae3bb90249edbea84fa4c21a7acd0c636963d26148df51e780bcaeae93ba42a631c7e21ccc2400aa545560ad474ebb26b8d0be7d44821a7c60cd5b3fdc8ccfe853842becf251e62bdbceb4f387de35225bf9ea574ef15fe675da958636e05d39381f7a720ca9ad405111fb337f135e64ce20cadf302463489802d927b954012b9e2f9a41457d4c4e60327daacd1f7233147b7bd2d245a3da81a8fdacec4548a4fea61c31f11ba030f199b6b82dc01bccb521079778cc63d5d1884288c064fec84f7596bd3296e9284a428ad7afe54724c516ca29d6e5e563e5b46fe99f57b2ea68840454f6be28ef43031098228d4517c568360ebf8e2be24bf12a2267f38dae377ac7ebd9b25391af46ed58d21398610f1e8360eb61fcc9c6368118c5ec6d82da7c32bd26fd2a296985933ddd08c15494ad2389aab51572dc91b5edb0d4544c83c253fc604cbaaf6223174e8c54abea6ad72d883c4907ee11136b41760f157620eaa9548600802821adf88c4c8632e207d293a0a418231d5a493e4098af707634ff82ee06ee5b44e0a6824492eef940b721f9a2bbbae517ec592f3696e80013dfdc35402e044ec6f95e0c2d196cda8cf1ccf4fa1ddc5c9fbbb8ce67c3d2859181cc6e81e4c64af9e0fdeb85c1c1779713a09151e6430dc1d29ba9f4b26e800b1edb8b3a18fe46a4ebed6d7f36d2fc4472872ea5de128dbdf8f77732ec603ac40b1843bce4d4de7843465e9a07d44bfd293930dd43558171a1ffb2673880c757572888f8ea2ec23c951b44805e5c3b3b0f8e3288a68c9787421d17e446b9e61f187a8be8ecfc7aa23d0cdadcc230e15ca9a26a70f14ef4b1469c60b7a13023c92f01452911a3a97c17e61b4df5ef4c0980d5abd8b8398eea5cb08238bce7b72be43a673fc5b2617e8b5327f05f1dae85a7ea1f7d0ec6826655ddc56230f550da93a018b163ee31d8ce8534a99478bc98348a66cb833d9b6eb5ec37115c585dfa86c8db801f48b1a46790dc01dde3f37f1e4ba062d58f72127c50ae229427e295a6fd8614ad4f7ccb526c403b73541eb9c4b201c72bab23ad9aa3134a132916491647ac3f1087764d2af00ceac4239667ca62a8483d1b7d1072707378370e1ff46a17aa71b740362c03024868c9e554b9f9d9f695d4a0a65dc1733baeec6b2f5d42305d6b1dddd296bfcb5a5ae7a1479626196f1b2b7948dced62e40a3664136e1d2b6b7cf0bc5e3c31f5ca0fd28ddba703a2109a1752ebae92c3d9ed6214e40782fc125cbf80aa4a158c9551508d4c99569d668c8d7b583c91c2e80e9b8523b71caf234719fe8ced941ae932750a140bee88d35e0d76a2d822952d370c7b503d95999071355c8ea238e1c87b71680a4c728666825b8a7829229af00d431b11cee8c4e67d532d74b8b4a647a09e25fc87dc53acdfec98f959e67bad77cddd35b9e2c02f68c80b9e1dce0224483ed5aaf863b8e0a1e6afc1585e5ec2109ebd86c2e0aa7e2a9785f09a97ab7991bb63c7d5d9c5dcc6966b0326946bbef3793e8175040bc4dcdfd08e7d287c184b8a091316558784ff126fe118fa12978105dbadd24a98c7f46a6c29caf5b0992e184f971a386773ba188dc77ccb2ec0bd99c8503a176d8535b6934b65fae3c1da73c5f6f087b76532beae45970de61532aefac91868783d5eac28e4e37822bf1e7dfb718db5144fba4a7f7340c35be09f9a466f735d545562fc2f58cd3bd8c7984eb31a0eea9af6f8f3b8d3918cbe30d0dd1ed046c11e1e6f05153b86ab6cab39d2de3f3a11bd7950ed2c55d87545eacd43a9cc787b5315f7eb7c7dbc2e38a2c7a9007a025ffb0c9e1a4511296e7431028ae8f5fa6d7d56093a295c33d2797fab2c3ce7b79a52b081597ac1f376c5af084f1125608eddddb06de53f2c5943f107f60b96101b776fd9cf7951dff8dc4e0ae482eb6aaa7e995d36c262916e2106710e84425fd44ba3e6dc40c3d695675086dddc02bf6015b817b91ef5f3ce9085cf57bcfec6ccabf04f6875e0978bb87b89c8740bf31284c1678d41ed985a27ed8bd056a6369e90b74dbcd331a0f9b485e5699d63aeb051beace7f99cb716f973462c4678f1c4827ecafe890b5084799386a44760ad037b041a863c52982be70bb4efb3a4d045b40e13b5f8d7d38c1b4237b7c8096e44549d79ceeeb259ca93d6ba4984219c0594dba8edcf8e0cc9177f2d638c1e5cece4a85a5b05af4091d982975937e201dd7119a59d03893107213c646ee662ef19baaeb645a7918da950b72ec968ed9063c84a6285c75bd6dd741c437fa8d83a633ee690b3249b0e08365d72c5ef5cde257368c991f7a0e7a62a5ad74c835bab17f1987f53589675d07ad771b2681970b4e82202143821e64fb42fc473dea581dc00f3907a065e871b63b36893429bd261ba1ecd946a5c6fd526cb309285c5519b928798b92c1f073a795799be1031bb0ae3b6ac7c26a61d1c2ab2c7a816a1200f6cae1cfa3601db92732421c28fa0b59da4168a06d3925308885707af2e405a0d5101e98b1451d26cdcfce8d8ae6c7cc47f84426af864282a4b9d34f140b6f6841f9cfc8b96eebf073a64d63019cc2a95f25a29c10597eacd0db3b5124697bb0fdc17e32db65be5a0686ac5c53b3f128db50f6773091094d7d2c46cbc812efc977908f94f4f592e3b612552b5f17a3c48363239a4b5481df1c19852816099d6614a3bc566c35303c040e44abf83a53dce99b18a006a9d85711b240de8a8867e371ccba8ee2fb7cc4232f0046ab09a825791328a28b28479f6e249fba1300afaef3c1896e0b55012da5cd955d50ecbfc691893932c6c1cb11c17500839d6f2de8d440de41f05baddf2b23332e97c8a5bb8e401030e4cbb46160347a7987fa399743f09ea1e6ed009174e6ce4e230f9d84fe9e37669a8ab7cc2c51533eaad960b74a05ed1d7f7d015eac711a0085af0859872c524775db8b5ab01a9b0b98ce89d732be0c151a71d0b4cd0c8237160507e316f3ac92db457267a05c84b6103953a595ead162a50cefc1a87321c18777e0e1dd16fd9091df01ff58e7d724fb89311c3176902ccf0ec7f3592abdb2183692523c494e483cc9921a4addc1afbd8cfe459af415f7cd5fd6136985c04732bbe81c41d9488dfba1fa3e8b93976bf397d975732a5d4ce846ddb29f423a39abbce4a8fad1c0009dda2a45b60855d9df0f95650670cf2d69b2d8a61f983de7588d6e0589d29eafed6ff59e25746084589dd3fa5102c2130a0440499dfbd844bb6920909742c038a0d303665756c98a4e01739d45103e30b0189299e1e48bc2c33053a1aeb2d86848e13f2a541821c097ef91373c827966f870658d4034c67fe532249801f3d65217d7475d3572984f31cee826989228eef5b22c5845491849b6660f7c92e2ed4ebe0c9c9fd7b95bd0bda38eb0ba8250d6a79b9b2ca0b37b1bb53a9e9d404155e1b8303e74ed547d6a02e1c48d6ce8dfebca0a8270c418864e081187e10ec25d0b97ef9976b8c8a4f53bc3a4b846d853b5938d109bd8a4cfb215941cdb9b31595362788d5edbc366af009cd4df28662ba1cba000b3a43d841b40356a8ac581c7e197dd436811f99206112ec7409465a7b5861a594b38193f3d24305368ee0652d263aa33902f28ed7e6ff48b70bcec2d602ea9028c28eb05a34f420a130744ab4bcbc89c6b8cca5bc0b64f8f05d08c80854d64810c9d9cee36cc9bc2b10f0604cb022c15d063686e8722450fdf8735833e706a96845b6d5b48e0b0c684f70d5e39b97cf1fd0c81e08ffddc46f595aac8ac4b8ee1d010be7a4791234a422f9f2e3df424ec4c46891ce9c0f2f116883f4ca1ab02a63cd68e3d7adc22457ecfca918fe5eb25ca3a38548e83b638524c08d0f22c91086b542012a9ff50dcd107cb8190c5e515968764a849529f84f3e550dab7a8365d7e63955af5671941e99e29a01f2b6a66eff0b157724779b27c7bd05252e9452000e3fc6dfe14cf44f4caa6408001a6f3920a8d90c411a4f6a081432f852a7b35f54cac322f991d2411a46ca98daf415b10612f45880a7747a8900721c43c9172162ba6f04b711bf589bb1ebd13a792f42244718c5349740e9efd2021122f1b9ef2389e9c0971e2299fafb3afe3f52be8f9a85561c3671de78cbb03b3248d9e8c56e03dfe4b8e430d6d2f99f95e50fda1dc69f08c6e820914101ae48cf3a05440803f98725d74c56492f88ecd90e07e409aa94cf67229bbcf9803737b7410fb61b0f6c91a94ec1bc6e1998431056ef4f40185170d30f810692ecc156a1451dd9ef252a8b6426aa195c18fe9e237a5eef663aad210e1656afe1ea25f19b0350b1e7e488583659344f2f38756d48773818dea120998a5f3d0fa15954061a500f278ef43c84e5b28771f145f4120b882bb1124128a2bc3de6557898ee670d47a2803995021f33d984195f8ed40e4e2471030674eaafc3453713af5cfeeb1d475b85b00c5d8d7763aa5908272f19f3626a54380cabc25b943d999a18b6f0585d3b0769f64a0f8dbfea14b49a0c25b43d74b0c4d8652f690e2a91039bec5798ac8a54e22d6c2bafa03fed4a7cf649adb6c9697ea00ed19f9df0d2e4161aea097a3f9663a2a43e445cd12665d26e4576b0348935e99fe3e9ccb15a4ab083ea86f8a90cba53bd66b229b8ae93d6bbcd2d2ccf086af932498a33a4a281af1b725d9874d6d70fe38e315c5ec59545913e4f83cc6c2c21869b6803bc2f8e9503ce97d167bf8fb9e7a1f0f4f08b232191d8dc0542370bb953d838f0b3230f63c32eccfc82b995bde6a343b46c731d7479232c986c1c60d834c34d7e87c1ff860d6e994f4ce1ddeb0fec497c1d017740280c542093e6d27d0d673a8eb1a40ddb0d64e0fead811a3777a8f75e087d881f94bd28a278617decc4c410e275e81a7f06fd8272ff955d9ade9d281c24fa82062c0fa09863e5bfdcdceb16fae0768142e6fef3976ead0f0cd6c0beca1fbb41dfaef4aae14eb86a25a0fb9d2f1d70c09bf167fd069215c36efe345c3f60299d726dee5cd90df37f42657c69a2c6db2cb639bbc027be6bef959f5d708574ba312710614ad6ee47f6aa2b89791e8ff134607f016deb88ad3b100c49a065f6062e6ef9cacfc28097c3feac7cfe0592b642815de705bb178c88f54567aaa3cb76b6c106a3a1ff04b4cca2a9bafc3f8181172dcc72fed7f822760c920290d1a06e15282edd559f0af037d4aae632db830bd45a0cc130aa13d5a4af7ccef69a880e5ed6febfc5ce314b900eb074aa9770df3355ec9c9519f1810ed445d686a1387bf355a53ab8ef27b10ec13e45b82334af3e41aefdb0181218920227e95e7034f833b083195bd78636a9575b23998e80444fb526a0568a57bb20afcf4d584c02028cbc1d760851def0167fbcbae31e718052b1df96d6c7a01b927d10dc217c398a738b43595e8317d1b295cd507299800b3f73236f1c6540820fea994acfa1e142466197f632a8ed7a166bb1a288a13d52b8c097460a35dd8d3543a1162fe38c224dfe04a4732553a72a7cb31d4cdda6c24e5a9c09373c97fa4294b87edd8424969e1299e3ddd2be3eb10739dd5c9f1c7646131a62096a7f2cfbcc45d32ccd8aa435966590abcea105985331de19cf260875123e48e036c0d558e5170aed318f13b70a28ca55655e1fdb85c777957b2b6e75f10d442525dafe839a46ae12299c0cfc4694c4883199322bae0d752d8f20cdcbad6cb8b00053c333964c71a69dd5f4989ed422c6b512b6ee2be78a0936b507c1f2b05806adf76481b6e4856396c9994b1f307ecf631d5e2d4c7b3fa4adcd4810efd789eef1e70b562472abdc5fc77690eee9e8d1ea4e0766f4e56e007640da223fa6f295e04087c16f4fb9cf89e0b2d446bbcd7d2485812ed5c1db21e3dfec3f0f747c09d6f163f41fce474172fa2359fe23de4d5c72af14d57f826d5e16a2b23439d6f983336f2b076b07251cdd082953dbd97032a440167c4ffc539606fab913904098a19ffa024b560982ee9f8a3c93f743f857692207a4f733909fc07277e64a11c000cc029d6e4185beec04964c202920f7099bdc2ad82b76daea8d1029c90ea46a9c61fc096b202747f1576f1dcb0fccc1aa9b1a33d7112807c26b26dcaf57eb47786ca0b0064cd9f9a0e833125ff97fafe6a5c23a2c565276580f0910430dc2e21123d74dbde11545ceba84594af207f92d2a1810785cc3880ad3be08be90cc1821aa3177cc1d0e0733d078cbf3a5cfbce975f1fc899688535fb132401c264e81ad0c38349234f4c89b81cbca97f2faceb6149576fc662b70253ab4da8a6319a50faf74123b1a8dd2faca311355ea75e5d5006bd0182fbb7724ca94b8b8c9e8d0a05442862c8f7566cef706af56613e4f22195783f41aa329683448f6ef72f0b66c3d44408bb319c5e4db8e85683ae99b1a217e8e0140fc353b3da378410cf7af89a052763bd84d70863fe49335ff7021cb823f02fa4fed52c2022e37d42721ef60fa78a10411fc5d0a7bff3e6d8ef432380a2570f0bfcc3befad8c9ffc8655f18e08bcc0bf6d371de3084c287b4213e8b9cc81f3e6436f8fc039018a654057a68e3e34efc1aeef476e4454d6b53af27f1c0c7bd0914ae62eb68c4f487e148842a62d91d728ddb8f6b140b28555d67dc73a05d370215d293dfe47523d00e81d06957e52ad79f10b0200012145b47f506fea40f3d8c5f33c80e81931f2a7c269ef8ce03677a3e17e17f4f03e879d421e47aa64f0004433ae9e8efcb4ae29f8448f77f30c98a3261ca838b92ab01a36ba3765fcb1b964a7bb8b1cc62e85cbe0d61d64c5a27053d30f3378173e933244aa570f1cd9197480ff0fb2ac3a083cbfb6d55b853750f64e82adfa3db7a2c00277b6b59c782571bf26ea655f2a12c602f7bbee9d43726d7b30d00d4ef717873b2a93a8dc66d2a0f86226c99eada8ab6600fdc21b03fdfb2af0ea5d330a023e19803a0c934e273184ef7668cf980f294faf24af6555abe7d9029cb17493968617e7e981eb4e8aa9192c7902f0c478fef9f31a59a38777fe93037c5146186210b12abf6b8a7c13b8ef567b63bcf47221dbf1cf3855dda4be09f2ef18ef43634d002b5e1468194cabd9a4b6e0ebefe5d8923eebcf9c0ee17504382b2ff125e9dacce5a5feee9c9449a01cf9eaf9c561f91b760a61265a0061ffda06fea7f8713e3f2e62fabe212fd0262cab3f57deeedddfa9e1f6fb6e3444f8dd1ccb4c20c2d9d0ff53434371213b7e2e803cc96b20cb15207feaa7c60d97766fd93d49f000525b2f8e97826e2132e9a75f259229f7a37c34438bf12af7084dcbdd65461eec374a56b3ebc7e3203904f2386c01bf365f3f5b6f80ce8ca51450e399f91fbdc68705e28dae31363c8a81e29857a268a1f967e0baf5d3a18f417b0c5a265d2d2b44c7ae327bc6212c119cb85376a51099d3e77252115b807b9bff3c7ea4568400f71a0bb367cbf6aec3758c7bb4987a0d9264042ce08b0970bf92b622b1e264c09c0ee6a0fa30a377871a025c78392bf5f223432c5d1a67d32ebea96e66b7dbceace4802ca6dddc639f48904ffcd243ff07f001145555174a7fa6321fefeea1d20d53313d1fed47b475420cd49215959b7d82d1c3abe1ce20addf1290ab28571d49b4d29ee1f4083be76459486f7ad6b8ee2a77c128e7864c5a471413f50d066f6e7887070ea48c5eb08d099c1db4a3b46f008ae5a4f90d817d961984ef9f21e4fb0fb30d534ca11e57ec16dfca1fa3af94be9f705862442217200e26569296a6c4c9eb0d71776024cdba6ffdc5cfe039e15584a3b8fbada53782a31e926fd9c72aeeaee0ee575ff51f80148a5421f81ef6ef85e884d6ac93757bd348079d05d9744e1739324366ef9fbb53e2d19f5ebf26bbdad2e1687ce33958f46d87ff441467453b0b2a6b76856a85eea90a848e470f29cd26cda35f128eeabdf1108f6e3fd243a698b5ccc20e21e1369421ea1ecf4b9da392f0440c9cfb5bebe9938bd3b7ac4609710bd1b9c2a68722fcc09d95e58085420b84afcefc51048b4f1d509db83789df5b0239eaa427492d501b7fe1d267b9d13c2a1e114441b6909629cbdf9de2cfd8307610c52a7897c6f40593105db0306f8a62141454c0c23e3663c39127ab9f9ef5441c871096d853a31416b226ea5f72b034c86e9004fd14898286e14df57f46ee8b4dd25276aa9f8ac3b97f0f0d771be6352057b289dfc3a35b31d9dc89b7059af3b1b4db1d915206d7bc120dd313f07aa2fad46b0d652f4f4d276350e9bdc6a7b1668c4aeacd50a3f74132eb511665d3cf2dc53efa7f9b584f977df84eb57ede4a676bf79c323b35b5f9312a8d530fa932137d4dad5b6102b87462c656c3a6abb402f0d624d39d47f54a9f2ca43e364a757f270bd8979e9b8bef5aa999073488d113ba466918b8f980f117f48aef8edfadb2fbbb1095f5d1829fd486e200562d1f1aa0d5cfb120ad6952251ffab3f14c7ede4c0703adc85bf48129a8cef4835124688af1f6cce730c38a0418b16f30efa7fff581125dc188b89c2c9c4f7a15062548b90b8510aae7361c320c2aae17e33d22f544bcfd4139f06c182963ec421f5c34f282f9cd32601a0610af2eba62825f2df77d1b2d8ef779c14d494920ebc1e2e43b6d179fddcfd52acf0e7f613cb1b0ec620f6a18ec2afef53b6dc78d1dcd835bb22c50b9d8a1b7cb8b87484e5bcad3692011cb7096003daefd6288529614fee0c72af470cbada7b99979f50c6b38832a132c205e3fc6e671bfd6234c71234cd4a178d7c3ced167683722dc2cb734b5b68d01959ec35fd6c086527321189d887e7660444a1a957ad35bf7a29a83cda16b2150f1adf979c7b2f62a9263bc8912c899e5fcef41f6e02bc16a5f8fe507de1a3b5e1baf2fd9234ed9d49891341f6c3b0b01a01f5f453d994c4629572f89f8da8300be01e7964c322e1d43e86e7838cc3b08fa088786b98e278fd36d68a932e002c454a459884bcf9538e39e2a645a1e2ef8fa1325bb460015c5c830914ade9ad1a4af3222f9e4dd0aa2a0ed10281b246392cd2408ee7b066b221f9ad6b1ff67d1206b0d5db70b2dd39c87d61d962a3a170a591c59bae753c24e87c147faeacfa5dd5c5d9c6ec52f8976dc71c55cfd7e9f5c093fb92db0ddf44304cfd56bf3258e6a329225d19c1d91d0814768063a97eac770fe37d60a80859765962e73cc0551807cc947157fc52867d494b167e80ae6ea84ffe320c9c617ef4583791f1f746d6b0413fe8961ea7aa19746434ffb52eea8a27cc2f49f57e7d044beb83f8fbf7c0c6d8d70db5ec16d9fcf9716ad5317dab2e60f1855450c9f601871abe81b330e40ddb2606a456792d91bb3ee850eb36e1e3cd102bc1caeafdab95be1c466c5f52b64d252067eb7230b61959d29c6c9ca8416458fef1e95eec9357ab936f4acc073f02edeb05b0e2ecac65d1e3ee68ecbfd6b6bb0dc95c3eb53b3469f4292bb594de36eb062079eeef1cfc5c669b24bd5ebf1f71be6f1ab4c5e2ebb299117c460ad3199b2eceadf024e2b8eb4688c696fccd8d8bde0eefe6d0572ea6d0dd856bd655491ffc1a5e1dd5fc21b88af9c911f973d1f6e327caf2338953972838d5debb62c0d84dbea1acbbd57b1961388feab2c8581d0f4e711dd59aa0ab0b2bdaaec4a48fb37d34b44dd9d23c6d5aaab0d10ca3698d397ce18b053122e0e2549ac6fc6048ff0f7c57dd773b965313d2d8415a039cabb401f22da46bf80086a1aaac3dbef99f500bf40c296e4602f4b4ca2bbb9fb8b6bdc934c7a5e763949e19ee8e0e606f1ba66267182f6813920d7b2efc6160e68ff95b71133a2417bcaf7d26ec3a1313aa5566d7512038a7202046160c042732706c834a8027c97f31840e26b096fb329390fe30defebc9d688b7b56d12bf1392370e41abe274bda4e3dd6b8d596fd5cf9ab804ba429d184d6a2df4e20978a59634e6622c23efb1262635046ddeca1146cf0046fee29fb531800a8703ee505cecb0a8b7300492c2f1645125b7dd437dc841e584a84a306ec8b0648f777565731888269f30be29f3f6f40f0306283e8c38fcd0b0df3521374bc8f1ae714f915bb3a264c27ca531ccb27c4f9974e97c7153a75cc76b5c533f248119f0c936f7cdfc5bb716f25465689e33753bb41a724672630a3f34221770bd0e43d91bf2984e8b6592e196e985cda261530306d25808975b095fc761434e064e43a24c07ac3bafcce9800637d79068102ef869ab2a5c6385039746df0cc254f865c281fc2b18e9ce282c502d82c24bd27af47e8e6a8ba06fbd32c8451c72bc9f18e4d25ee5fdce3bcd362fe2e20eef677498cd78a87cb8cf20b43af3a322590dbff5770d41fc3eb33e917443a639c999b9dc8f7c21a72be8c29d642f7ad8654b19aa1b9af90d217c83246106aea75669cebf3bc32e0b56e0d6f9f53f2f2004ef19f53a42e13ae0d2b214e68fefde72fff8d1992766f4591f12c9829dadebc12e53c8a7dfa9fb151c17a7d704dcdc50b7453bfff4b7b1ba75d781b3f8ed14889f2e455ad3fbf0e5a318ac132d19735be1ef4d7232ef0aef0c540a967f02a8160ab01965f88d439d851cdfed1b2185d10c515ede81a5bd539910069cdf012db4170e7684568d25618923b70ee4db38a00562bf3373889674ed91a812d0729745547db4a953848022bbe7fbaabb0ed75a6e38d605081ed0aa60cf21ad8bf50ead25eb3a5ad470c68545253d2ce7894cd4ed8c2204f2d67ebea9d6e3c5f2bae72c4516c4a3259dca9579e685920ef64a3aa342e0ff00aa5523d3286ea31f50f6ed169947890a3e2b00c0d4ea5658513e2f4a972faa9dcdfa9e53a34dff194cd40c53fbd35efd4afcbba7898ffefdf1809009b32f95f8ee71ff6d3c3b1ac141a32a7e2d44b4e135028a127c4508721b7b72430f6df6c3f782651a12e8959fc493dc282a6deb2bc1588fa5a5ee451270323442af3ea7a7a69bb37f7e97fcfcbf61a9ba7b8887193af22f0a5763d4a454c12c21a516dcb11c0ebe24c07860f04194005778b3a57f610f73f2e1e809b79d16e5e9cd0b381f4973c8fe4b091766cdc50d88fd69deb6f8e06d7d2a9e0da43c2076ed295bbf395348946f45f186f5a9c1152d58b49d836e4646a2da920e5f761c64c4e332926203ad608e0a6338d0e41d1cf28b36128e2c12b260044169b2184d51718f4e9759858114ae00e0b74eb4547a68c09e5efcae8f92f100f44ef337a288084b1e1d870d3a50f51a832fca15dfa0c3671067bc6c1c5b833c12df1e016c810823b567becec469f0b4686b13bcd350b87432b056a7e03354c7bf21905a670caa4b6e7cb5bdeb30a3315208642df66d2e35ad33a1ed8b2da5b55855d359138c90df2a04bc2b5a4f5ed770faf381571b5d3cfe2cb3249ec4902cad3c6afdee3c1dc42254e27ae8197542c522572968f10b0de9425262627d3db01314ed712d00269a88401134254ad879bfe46a67a40b7e22efd38e2d45ab2032c2a39ebf1b69f7d137304a6e0f1a8faf9c19f5e4cf6f01f83ca5ba828c5f9303a16346859e07030a60972ba9fbab42512b7b9d985a13777839302b3861c91ecec4482c7bd20c74f3450c45635a20f1ad21c590ea378501333ce504164bf7a1a5a23bdd15655f39efa147e62ab05cbfac89a4733f6971bf4f4614b0bac41903eec4c09811191102810f045c286ebc42af132da406bf343ea07f3dd2e7ac0ee732ceeb53cb4542fd8d30096b1daff2f804ecf35a8b4243650ab3b289c7bf3f44951cbf89e88cccba5c300de287100af90ef48b875cfc7787ae73bd312a147b23354d2171d0b5617fad8091ab2e03fe18db81fcf115ad55f181bb15afec19e9375eee39638129c7e8d99e68ea0d29be920a5167fb0ba1e55f89468088565bb9e472179a680440d653dab8a802504daf53e1640fc072c0eab7a80ca7ab9c803b29c087cc253f0d4db110cda794e4d23cab100e52a90ad48907fc09fcc1efcee8b36b1148ee13044da4bb8606efab0ff141d3e9e98cf8a5217d15014a0cb648098ba18b7415ac8f478212815903c0ee221370cb0a610dba88bf8a27b230efc657494b4120781a08d4fe79166e316ddc3777a0f0563430eb78b8f706797302d26c0fc5c44887542812043bbf0cf3ebd6454d62d79b3f96cd0c4c93ce550c1eebc980075a2df669129677f58a2237f17db574934372c76106667dbd430e91a85e4eb3a772ecc210a9fc05d0b6672d8cd85382a28ff437a8811f22dba975a7d5862c474fe52f40456923dbadca57412698bd1d1ab93ec3bec4241fbd5c904cb310515893ae00edbfca1b06692bbc68fab07d9c5327ef66ee174fda49450e87e2a744b9d3bd56d1fe969789f80fe98ba29615d251fb29193847a65a95aa8f8f3f4045a5ca37de0c68ba57e81dea95a2c882a04be73f904fc50104090c0481248a110721a06a06387ddc37a157fb3b750347db60ffc775985dd9474a0f3cc8eb2e4f2291faca7ccc32784561a7ac5fad3b6b37cd38fa27655fb9e6cd557d14e46b658dc86bd97f08676d445e5026f836d36eda9c1174e3f4a32da511b75125bb8ae5c91e257f83f89aa8001d180ac0069c4edaa4dcdff8c165c314f2f68b3069e3fc21301ce74d3edfb01f0eb75fe27f6e0e3bb3f40adfd7c75e67c5e3a1c327e1a321933991801d142d3fe8a0d9d7691337210c421fdf3e85f893406a83d0c623ffe81cc7928ee543e7544f16bd0fef95b4668994817614458d059e94ae23f8d3376ec7ad0b8e8a8ed7bbb46911a941d7d43fd2ad06149798576b431a95e4dccd2c717f407343a57e93881cca40455a37a4cae093e7a800de1acc1f1b37020ead0def95f17132d15d60e6157541aa4c1a5d508943a1a673d4feb7360a2062e56744e875f258e1dda0450819f0ed25c145b60924cba90f7a5e3a4b28cee58e8bcac936618aae5ebee4527879fe95b2b0b22eff59dbae97aae1223878037fb5d825aab5e7705550a9f647a3e41416f986aa7197ccc2f837ed7e60953d3f602019ddabc1d196facc9c580571cdd2c0205e9cbe6c1e7c4299554aa20b3797a3614b4aa12d19657b7847de99bbeedf5405fcacdf1aed9290978450cc04f8ff30cdfd111c217495f7082aabc41ef4c2a1f170da820e8a2f2ee013413fe98c81f912b35ab5f84a1e3e901efc746d42e6a8b204dd09027f7bcbec1800f4117984e98bd4707b519606e01c7681538387ffb2666c4eae4658845f021712bb79969274a0f97d1c982353807231e1bdd4c9c7e8ab7387a5412cf1c5c8423cdb28e890af78802cd178522c798d2bde8698ffb6ef426c79174013ad269487a06fee2dc0ba92fa83121a97248b1b216a80133cd5679f779fd1b68f0315c63f8222cfdecac176c24f829d2f287ce93f9db4a464bf66f73fe021e82594eb3e401d28fb1b16334382434f7187b7b74c280219ddd1fee2b889b4381716440755da169088b3a44ec62198504b0608dacabe31fbe8192eb1bda4f20cdf164c965c34269eabbce991c099ce1096a32cf90f7db050c726f68688d2a7f7f14615ad842079dd48601843545e2281c986b1a79e056865c7e15b2635f0fbf20c882aa5972c25c08d1b4fb9aef39767771d34a408842592e02f2b368d3b7888c7d11988ee8c51dafc04f9443a81167e7a01d686f19d841fe1ae52809b8391c426f960ce947a897214389d93e93a3777510355a7f8559c96a7b1a7cc26f9e76d67ada3c1db8f90f9dcb15727e4341812b74a32e5fd6b78a9fb294a9ab29d2af034c96d303fd34255771945bb0fc7eeb238dd4ede69d2d0f50ae73a6885d0b41318394350ce9ba33afd660ff76df0fe06bd3fe2a6f7bb65f9f67b8ed259cfcd03c337e03e0aee1d085139a33c436a402caa23a685db81f743ee932178f2c45fe2877238468f639d1885e9fd3c93dd66c2d7214cd72c3dc7f66f56a29a471ae4ec35b1940a5f827af286adeae98d0ceb0429722faf94534418eb2e44d6356fdb592d29b1a6a86ed1de06713701d129ade08c238996ff75f9c569014283927a479fda624f2379aea1bc4bcd9683dbf9e42e2560cfb8fd22102ba030beeb8bc1948fd54a2b74752c9bc770502b6ed4db8f6e0fbc6543eed5bc6f3de4c035773ed860db1053106be551f2852dc514a3d1670f5a0ddf2e1eee7d3590ce6b62ebebf5888293253a95d0636f2eb28c354224a00a85599187d4ee06bb314ae573b0c3a12639abbe04c2404e8e566919e213bd18a26e15c9bc966960bfc8da7a32e374f2e1dd35f78650d570e678c9bb65d818f34e4f1dbdf2b816dd08a51535324e611a8554d2250258e4b750c75e11d530e6443fec00526984a9759c56b2a9f3089fb3ce8f2612bb5d388731b404930b0fc64a9db1f8f65c07057634c71f4eb70bdb1250c4fde6fee0ebf083e2590041128bcf98caa480311f73fe9ec3e20a7220ae1d2d5d2aa921cdb5d33806eeb10f18b837a71247310c2ea7f9bee8fb1bcc3dcb90e5758292482a45f87f6c572386c6e3701fb824b840260178dcf12376040c086687a8c9af0a39f8f4b1ccdf3a74d279436020ee031e483e0d9674e517f53d382776044fa98140a04435c65660a92d7d3b58c2553f90e84b9ea609a6093f60e0a9a891f014ab704cc581c85099a248e6677ca638af0d60e5f2d9da5cfe6dfc918c055e64760d78d85ff102ae4f54bd2fa3b67dcfa499931c7946455758d9a29006a88b139e915dc51bc7e16060a37b7b0347f4a89526933cc28d944cf826deba6c0ab24cf87a74b501b7cf6dd4e780036b2b6c548c0f5098e52e9a036a7928b2631b240caa58dd34b89d8688ef091a6b0585b388cd1326464f09809434c216d1f628e2f21c2e0e10f78b8403bf890acfde8f0a1b38755ac5e926e708dfef160ba87983f010a654ed667d11ef6463e1ec921a2ae204df4a792da6752073b6716eb215d40f5a1b19e68353fc00e4db74c3ad9ac8a38f158690305a196b75ecc2339f27b074ca64a7328d68010bbc75d9c385a474ff36b8dd9ac325fe6d387515fb2dbcd76d576165e1db47a3ef75cc4cd3398f20da57a0132edf9be9a22a74451d4649959dec7be671d219099b0566501f997aec122eb3d22c34581c141cc818b53a696db650394a2785afdc725ec73d379111ebab0c1a292265d3599e5d4c87fd2d571a0cb563b5760882f20b048f6e684059a379d13b31e6b65890113748327897d3c1fa07348e0c3841f99b44d64462f496bd6eb4bd9159b3ae7a318df2a06d96f80dc9302cebc0678d141020e3c5a0caccf61a9bb2af58a4def44f01b89f0d619d0a43ee455f4bb9636ba2e1f6fa2b6dcb4953fa5222fc0ea08dd36ea9a5ccff18dcd48e7ee2a0a8577afd9d012ad1cba1a5c0c26b1b546d411af7b22befd517523b06e4a173eaa0a4675d1675a884f9ab87d4402f7abf22218ee42e5ce040b5599ab7bf52ee1d74cdf439280026e80e3ec1240eef68d527ce6ccf6c97ceb8e796ef745e092996702bd74a27830c3aa0d2ca1e9df0d97e0be68f1f9b42397a56bb75551c1eda75c6c03e40c55b4aa3f30115bb1ced70b5403110dfa02ef1d1c579b1c11db2aeb2bc94af949a824b6215ad260bf48eb0c9fae460c8e85ca0b4bbe927e8e84b879c6d91943201834d405786e6818d00030dd30267b014ba3a4d592d3c0ea842c32a6484612aea1ad2ab6bf8ed226583a65164edea9f7950c596637bd5850ccee4becbad08d627740787d48233b06c6df21772225900192f21d7f525deb4a3c43b13a19a41e70682632e4d6db6396febc25c8dad39ae2c165889b7d60beea3c038f7fa974390d970a36771132f1bece686dcb47537f047d6c39d4d513ed0815103f4449df05f0d26798ba336077fb1179dc91e0d93c02f4762c319f8838be321fe8472ae6a1f5c9ef619dba1825f72cc6008c808d60b37c7b13e80ae5e74dfd190fe0a68db24dcc7a3e1fdb553c9e5b0af587cc67f608b34a508617f753ff339af40dfc819834099584fb0029cb35b6228dd52b2313f2d83acbb12335b583cfb16dc85a7ca0d07e4aa47f4c8217f5a3bd41e5c41d163f2439579406c9c7c1b3fcd41b4d9198c515c09392210b782ea26d01f4dafdf8c016162057e6154a6467f2eb3fe90075bbe98399fb7d0fb56b593dbc947dda443a30f02171522cf7d921e50207a95a146452b0f4c5c13911e9e8bc496bd60f47589d7af8cf2ee196ebf128eaf16b05a9525d2d8edbeb33ac0d352d18b94835a9a62d727153f8ae1ca733fb8e40f6016aeea7488212f39054a3b284d5ea0b3cb900af1718068da06d4da01612f53c5125d6f7b386a1c5b48c778f7656b3556645ee3e959775ed656bbffaeeafb39d59baec1501118a0670ce6d819948d02fd3275a1093e613754c6ce71ffa03e98e8e49c0d0c667678b52bca684425f0e1ba66244a1bf730fc3fdab78a6d4e179992609a7458c5a19961d3a264ba35d01cc04e7a52c29b59527eb458d3a446b69e07505657c1f13facf7c34a933e50e18279cf7d7a7837492dab88e4bcb7d28389b6582cae7b5e0e041cb929c0ec7f0685706af98dc4a0cbf33a7983555f06712ccc37e4be7dcfb4a9ad240b522eafc38852c303456a02b40a2f91856976ee5845f81b38d7e2cbc1cfa512016fea9daaffdacf6896fcda6cbebe5e173494df7c77576118ea0b0ab65460c1f2378195fb56911e65c37cd8bf59b857bd488262fb4b5a893c993cf4de64ee96e9eb6a0be70fb4eccb545a0b244bf1a699f48b54b9c82b004aa48612bf2eac713f6400ccda45a6ba43bcc7a6e9556962f15671862548d26d5cb385f82eb7433be076c06fc80025dc040f12853494941735613d314d165228f61a34014717cff7aec125a3f255f2bb08301da5274102e4a7a569384e8031f0324dc3927e329e0440c48a1056033c0f4cbc77fd481c0eb57ef215aa85a376cf34e9121c84d80f15a449fe26b8f13d2acaa5cd11e5d42e3495188f72c39de16009f476f0042527f9996eaff2136a3146b1c9472be40d4c3790efdb8eeded3a810377c70507ccd3451db0ff6c5675728c8751e1e621d76372e5c259c7310eef41cf6423d89a93ef5327bcbf8660e7d762a55e7dbc2467cf2629098fc5f723bb3004eb8e034bdef45448ed694fe58b9ff933047b20059982615741a5eaa4a991f8ec0128bfcde32d6a7c37d28365991f815fb4c45c918ca1518cbea30dac226bd272baa75f36a1d2238163ba5c8e6b18ae82e42b8d520bcda77f8e27a0bf06e683973beac56cf7317c31ac305095491d2252084eb89549fb015cf4ea33b15ff247ccb8cf0a8fc54640290f94fba867e66e2eb3367f070b99cc432ade3fe18e00351a2b2527377acdc9424d897812d3387d3180f1276bb9856cbb1e2c14df875a862cc3e7eb5f84ac1aa40559f7a21292f90d5f3df01b737a8789b97963b4b2475faf124d8edbac2f465863ae1f59f7d57da65a9b2d8ad397343a1f05c3e7d78e193e920e8688d57341f5b16d97b71d200a95c87e5e2017799e64e492d53321c3381ab01738c4f3fd067cbfc406206d2e07c59ea18e1e22f0ca1fb8d7cf8391eebde8551150fd3ca58d6f768a2ca08047ff3c87b57b03aac1dfeeabcc36559928fa58bb8b2e9fae422f53a028640bca6af4ea8e27adbb23fd52813d86da478652e7e704cc141e66c37522ec64707a4fe82cf1d94ae712c42d6aa6291907fa02cd26a287359d0352fc7d6193bb3c04ff483ff8ad89755f205938d52ca43f55bb3e6f8959b91789149afceaa116a774b4ccb013c6d7e31f951ed705d6ea87324f2ca991ba1bc9cd889e6736dd725f7ba60b191ca0d15c2c95bb1b97a0bfb614b7b7d4de369aae742f65b34436490a7cb24330c585d0d7096e3e192a7a242ea1182bf99aba952bb7c1b99715961d550586310fdb1929d709a167aedb3fe69fc2c285298bff0e642c2b5546fd6186aa34df5e4b48154050b1e4a7ddbfff762a7421f6739dde08a4cba8574606077eb7e00e311a2094fbb9f2abf63b018864092a6594b595075ff4eee357eea837e38a8d72a3fabac7182a2eef2a48a86a0580db935605c44b57232aa2aa80892ad7a4097467b33c2ed31cd404dd03867f63ef6491990322196c0b2d0badc990f236de84071ed8e75c60ec78bb016a572f1645853a82a6e403dbab4ab0e3a6acd6c2e1186de1dc4aba0086c7a9291e0c9cc52d37216a3feabd26e6192600aa74b2ef783c25cbfa619bf741b9e768f0a546afe7c9554b73a574308fc69d6e58305746fea774d7e85a86be24e48d428353f8d7b725d6ad576ce3c800cf11ab6c5da4ee2852f5510bdfd3bdc7024a6ec7b239c9487a76f4b677fc6b143ef2c24a39a7aff87375a050449b2955bd3f28f1ead218580c63d559510986012f2402a23ac99cfbb82dfcea84ad0a8bcaf76e56718e345a4bb8317d258bf88d53c3dc682440e40dd57d6c05ccc3ee3763ca581c7e3279f5946bb9c59a0acd94f7f5ee8887aa218915704f5ba4c6c30cf2c4ba76adeb4cdb81adfe1d2948d988f8c99aafaaf0d2b3609d349af759239636be83753e3b560a518b54f70d29133de5eaeedf6c55e0c041176de8b803e633401fb9210bc530cb1d0c48f68ba874141bbb6c3ec5eda20effbbae614615ca2df7b7fd089394fd21990feb414b9fca47891b1e6bac36f94412d08e226ac8102b907b2dc9f06590fa16650272dd19bf8462763c55445e1a3f4b568f911609f5b204da77da36c3fb0f6b74eedeecf6c9e1560d01b1109e72b0b15421ce266cb4b494a88b7923c2882fc6e86bae55402fae2281326c2edab9ec192f6db9020211bd4e497b9b940331a8c84afb70bdf0396a496e6bad75e22bc07f7ad3f51944986c04f1941569dfd03f001e34b09c8224ff4d4b46e9c1cc7d93e9181394ca519d67b925ddfe8845d54fa298c0bf45a84d6a6d0cf3b74650420360a939693ba1d9afab123a812156058e4fd0d215752d6b73b9766ce650422e2feacce56c488eb88e637f93a9d60d0b8bf10d08474d0d6c287e09acffb9f2e1c27fcdeab72d979c1f84440251818daa09e9f43ae16077128dfba5e6aa14cd55e4b25fb41ef40208e523ea43d6f024a7adb0986ea9f17cb35f58c291bc9752d41b5d1f2a2dd16e4f77c49a3aa2bc8a8be126856b1dd4c27e2c3248dd8706a220e0b060a4099d2d9a4c3c8b1422f10ca7a49cb289602d30a0ab55c4552925bc9e3c920fe4b55109b25a4f7850b964a97c662b4001ac00bec815e08211c9b9887bf1779a653f950fb36b857b610d0030e809eab35c91889c7ede961d6cc76564a02ed8021700eb47940d4097361ef412c5a2e562e563e351993ed9fcf941e38fcd3aa7184318fe293c3cca26a83b0bb1c286dd1fdcce124bd587897081ba762afd91312265fc3b174f45974c58940c58fa68a46656e27ead1d90e708b20fce15d027f173fab9ffdff117bd473041cd90958aec82326e997efaf1b96112986d7f9e61c70c2256efe3b22cab419caf841a69357589d69c601599348354bf4675cf0a85ff7f43d9997312e29e45a0659bb37fb299e479fcdec3fd1a8520043dd94e8223197a03960baeeb6635472417c914315e039802e185a1de02441c05be8fc4c10e56105086b63918d6c7c60eeb6363877547db62a3bc4d3cddc06f798cd1277b3ab8db727723befffe3a7af11d025ce47ac3629c399bc8b2ae54efaa67792934a7cf97975a45e156f05242aebad99aedaeedeede52a62403400ee50dfa0eb623487c70c004ce661fc9e94467b3a7a521f961a2019ca5d5240ca10752b6f1b36f2dede7055080b2b5b8e2a88a0d095865ab2e2385c97d2489eb081503741248f0029ccd7e8d016cf6ed8924885a0c94584114487076cb119870b6fb5dab76083252b2776d2f12c6aa935e778219e248206a5d42aeb508b5cacafa87e19582c2518b04f39b08ef94328269d55753535252566dbb565c726aa16ebfa00695e65230a8b39e41eda8ae7597ec525dbc2ca1a4b25b79be5db255149cf0b2cb35084cc85e6d8b47ed692694547b9bbe842f5b09909e4992f742d0bdd049d3c3210e4cd4a79829d00bf9ec73154320d065e071f48aff1f4ecd30147a1af1fcfe3b871cbd0ff403d35f04a293bff799f7e99d5dcf3f8ed6c47751bcf9c7d1cbf3f3133e8851472f1a7edf87f2841ee879df1982de091ea8ca2e7ac3d0f3c865ac3c26a8f359ea8139307795634a0294f27dd54959b9ec6fc5ca94ecd67aaef6a45dfbebaf27eae80f4ff7f9e34d76c94cd1fc6351479dc7fefca03f55308ba83d3d3dfe3f9e437de6b4b675ae4e30d3f0aa88a51ad4be547d8aa83dfea3eb6c8d01c237df3c3d29213054186af6ac6a8f7b5d7c96a66e25e39ef2f8a9c7c551ef62b9641c08d62fdf26a75e944735e5681747fd5dd8abca99f56b76995e94a555294b33b2f97b53565bb2a75e14e99e7328eff11c06ccaba55a7320b287578e7aeeda931a74b34f5927661a5ebdc59e97634a3253d41261d6fece39a61b5e894896e6b92ab3342fca0bafbc290be6d0d03a810ad95d88ecee6e65998490c14fd11c545a3865657edfed0fb2db2264b74bc8855396165eb9cc3ffcc2aba9f02abb877382998239d00b78055ad51e0f99f214aa18448b4baa98735af8fe602e2abb37038f0b0fb27b37c8fe22113f1095783a88a27a3508a550833c1984575df3b4b48f7f109c6c41caeed920fba72210fd5e94cffab4ef7db5d6ec79298aa6e1edeab6e59985eb4f5938168e7554bfe65b6bad157bd9b272b9aef83e19253254fe25eddc76083395712b97e17f75e57ee528ea6d873059df99757aae663b8429da38ead65a6badb5d6e644d173ee61e7aa78f1daf47dff0782f65a2539f762656bb55fbfd3adbc50b9955ff917f7d204b732612ed5141eaf9e617be39d5ddb6d470f57cfd6dc5c8dd05d4cff7a866958b1648bc562c9f6eb2effb09eb5b61b08e8e70745ade779e72e5f1bf9c7bd9ee779a1cf52986c6152dcb6d6faf09993d65a4b86b5dafa83dc1e8f23cff7ec289b47e557083aaaa3dcfbc20f64b158e5df07c151243560ee706fd1ddc1511f4bd2b57ce148d280acac86d5ac32f52bfaea2c4132ebef65e1a29b6f47f52eca843d0dc82d6f297e4c817768b5583031d6a7f8919582c52ac73216fbf2c732f6acf2168b855e79de5ac2945e8a1bb252e0fbb1ee591343ab759261c882b1ee0b9b564c4fc127e21d82f82cc81d4911b7c0243fad5564df56ebbfd6dff2d66a3968037a0ac6f1ac5df30e3e13df1f88cfc6f70f5274f378d6c4c0e2e1e6fb290847ffce1d58600271d4adeb50f45f46c68176f0962aad9904deb0d65ab97855e94df2b86467ba48de4daa954b05c6bf5fc3fab1da214c2773f8acf5fe361081ad91f597c53ad3f14df25938bd99f5faf1b4ac4b03ccdf9ff9d7f8459e4d183cbec693848df89ae585fd785ef361a3dff11ba96be48f974566d61973c933ed568a928631c34a18547c0b4c6a2eaff27673a4f871acaf37f1ebadccbf84f97bc9677db3ba2aa76452d7609e84d5d04073a69e3a8c4c43d809037b180ca7373fcda7187f987fcd87f914e692cf3ac9b306e65f3ffe8fa5fd78cf1407eb2f0dacbff7c9f3ded7082b61a8f97bfeb80ffb57cdebc686ac21c99b33bdf9f5296cceb495f2abe695c299f278b19761602e0cec759aa6f9437626e655905f8a37ef3d491679599fe2ef99c2c633edd1922a70cd5eded3b434f1cbf3c7d2c47328f63267579fd15c4f9e30f26160cef4e60b033b7f90cf7a983385b9e4c37c2d6760dd7fc1dcb3e6f5e68f1fbb6fb2605e050d0be661e39b250cacff0173a6ed2a692033eb73388c8a33c5195364f37d18eb7e6c1cbfc78f95b771ac39bf706792c5f2f2c55e663d2bbf7065e148f1ac146fbe706af4434e3e4ec93cdaf246de3753c018c1a468a56cfe906dbd89c177e123d749e57e7535979c83353eeb5f258efb25f9e38f23ebba2e7971dc9165455c43bdd1394705727f481a0463a2188fa878ef9d451103a96788a454ffc54f6d7dfb6957a9a723d9d1cb5bf5af4121aeb536a4b36d2847fd53fb0d55a5ad4079dfb58add4121e5ca825c7725d8e5d14b01542d397c3bc4d9440b91edf3705a23b9cc3f74db4df6c9b6ba267e4a664b25dbf76aada9549f7ba6e109a4a3b27786675d62d6b4abd0200ff972ea48559490905ee0623d00380d3399cf2f0a6698f67b5f772580ca60f86d94eb90fdf07df7bf6757b1ed50aeab52e5892c561cc9955cca9521ccb487aaf8771524abc4547ac1964c360966fd29aaaa1c9f07b4f37ec63bbbd6baadf556f7bc7aad3675aff551d38618a8b2c42e572c4b34f1e48a85045e72356b1daa4e348ca08a656ccdc82fc2a94af5428d5cbff6a7b45cffa7d664689f4ae3616540e98a6c1fd75a6fa933f5a6ce5e6f65603e7d65cbca293ea66b6d05d6ae1a42b54fbffd01fae1b9112307ec6367ea399833750f10b54fd770e84f71a69ea36bb0f36582a20d4409c0a142b1a2bc71efbdf7de7befbdf7de7befbdf7de7befbdf71e3552bd2fdb1257df388bad3d53f0ec5d4389ee32475db35d6b2b00e85ae7daa76bfdd43edd357b3e91dbb3076a4fd720f76fc9fd2edc2ba8687f0b97cd82dc4fc62037142fc84d78a006b50a6a4f77adafb44fbf96ec442e6707b91f24bb84212707470738383739b8b9b199b2b1a9c1414d0dcd0d6868666c30332303858c8c8a1aa8501143839898d813b1188c140c4c8a19a4480193010cf68ac1eb656a314d170c5caed60b5aadd20565494691e4d8827164b180c5129d10c5304b18824d80e0c7c4f77958b2777b97ef5d410db2d6aaa0063954a7e046670b22f9cb56829da37dc5d1de9d0de5684d0cac472244667dfdc202331c712afef82979bff7c00fafbd81697f7cef26dcba9c297e15dfbe1432db6fffb106fc9a3fbfb93a855f43f1acf1d6133f3eb3b4f07f2aee0809d7501d7545cb4f0cdc910ccadac04cfb29b7cebbba4ad515ea04a369696d822aebc712ba20f73fd1a609557bda6c322dd0e50252505566698dbb27685b4c196b0d13f6f66f98150b0670d905738bf957fbb2dfd93f8bb68a54b803af22206486596b613058ad7e85d5b7150613dffe285a11068359d1dab6229daef88eedbf88d317fe9e608a5f21401e29791b15fb495ce54d14ada5023b7fd887518100e9e4ddeb97b42571ddf7b395305f2fe2f465f6ecbaa335d63bcb74346c3fc78a4d47c5eff2268a40c86c675e2634557c8c9731583c3a76bd88fd2d4e710ce2fb59c6e0ef3a7fd411a79d79f09c1ec9459e9dbeaf58141dd7c440925fb3ad89a1fce174bffc9a819019763a7d678d7fb5912eeb1a7f5b06aa7466da566d556764ce34cca6795aa98839ad62478861f2e8be92b7795f82a75c77b9ee9620421e9db4f2726515fa94dcde14923ec5ca9b7c967ace93b06a2fad14ef250ce9689ff60866eaba9691de6c45d1753e4bc5777dcb78fd10bfbe23591a10b5a5d0b326d499aba2fdfdb6df6f642e04ae020d14526426d4a016d93efd2b868882e8ba3e537fd7a7feb0af46d987dcd4f535387272fd9c5cdf75f5ac6697aeb33de7b3b43f57996971bb07ccc6595ad8542db655387a476a6eb09ef53506b83f787fbfdaea7b6f64f3701d5f2cccba72a6378bb58441c435372a16a72c597c2c4ebbdc968553a3cc12d2b96271ba922fae3140f883ad9644e0dfb3c6867ba446fc6af3ce1ada76bfdabe37b219d9c273c8ed10cc3434b19d32d3de49595a5865fd4d5565fd69ef9aaa2f4095d3f085c433b216c74afdcffe17c7f03e81eaf9837f8080f04ffdf407c867f5043a7f6238ea9dff07a80254dc16d1bacfe5a63099303a52bedbfdd65a6badb5d65a8ff4f0a77319fef6c84ccd244198ff7d498030edf7e7d4ace9afd97ee71ad767377d2f18477777777777f7cfbbd6bab5d6dddddd1d7477ef7eadb55aefb6351cab8ca3b7d7570c3fadf56d3dc1cfbbd67b14433bb692f9171b798b2d18ab4efa59d599f54145a7bc5c3da9ec6f7de03d51a1ec0080b0533ebb67cd06cc296ba96a90e5627f506b0d557dfcbf494667de5cf61f1b84f1533395f128f4a632d9a372d4dffb9a6bb75cc9fe1789c9699d25e76fb9f8ac6221c114bfdfbbab94fdb39e47f9acc6cc308e7a8d41762d8e84f93d599a9dfa7496e651764ac6f3a87c9686cefab186b67955accc9f704d0d6d13bfc600e2b39e758aa7d764651e1797f9933036323a3c39f5a8bcaf38edd359993fcaf33a3236264c986d11ccf48bb25566fae9b27ffa4565ffefe79e5fe7fa1e95a535d40f8afecbc898a6134c7fc1e92ea83dfea3b51ef81787f7867f311032b75785cec5bb7c5e3cca31604ef994a350b527c465ebc44c7fb2bbd75b1acaa12c959dba8159f37df57c763f1b475d06a97f5ac9a360507b5c507dfc1b7b5413b33fb553afe3a84dfaac5e5270aa2968c9154b125c320bb93221821364223508f62e92304cf2c5f2c67ab184c1338bacdf4bd49a8c0c54086acdc64604df3eee81984fdb04b9760a72fd76a20699ad447f20571d0d1c516b3aa8940ad41aca0325d7ef226a8da77dfcbbc94f2bf505728d926b3b69a41e22d76f216a2d46fbf87712206a0da86b135a0ab5fb41183fad564cc8b542a14621d74f6b1572fdea968c7baa0766cb744dc8a66b43dfb51774ba0680b7c9791cb46b32b44fd772b48fdbd03e31806e501b9e9a991b36db17ea1a8fa1aef9689faeedd03e40dac71f0bfd2ee74c1de794a16b417274ada87d88b4cf54fbf8df68b191aa8182e69cda32e4c6e2d135bfe2a36bbedba16b9e0548d73caaaf507996aa28ff205d732d455d73a9f6f1af39145df3a9f699ea9a9ba0faf86bb1723741d6c11813b8dc39a61ddd8e149fd1e09eacccea2a776aab526b3592586769a22ef7c398d50c5be38ff6c7a7d6393ed92fcff129f799da44d51efb2cdcb5c7be88435cfb234b18c26c86d97fa8ac88a48dc0f00789b1eaa42c72f5bd233ac64aea8252a014b8059c82e1267b3338c2f3ce18ab18ab8cb303a56a8f8353de8db102b7e47e0f9c02a51cc5d9ddf7ee89b3c3d981542c7249c6b1dd8158873165dababb5f6b43bf37f43c128ab7fa43981163d501a39e6afdf41b2f6e5b8853e42f392547242b6b6a75695965ffdbaacad1a2ca39ea9e57ab55eeaf1888b5ca5fe8c1f2775585cb9e1552f63ccf7bd2627ade077edff7ca61f88121088252366a973387dc11c95199e75d8fb457a699478f0cb12b731975d9471dabab6dc13047a5f226e6b287b57a5ef5c27a8e4a8efac8947d4472d4736d6511b3acacec7b82699f720a466507df62990b3ed1c027f029bb8f4839b553585f5c863febca5177e5aeb2bf4b8acfc2cff98cc9753eebf06944cafe212e338864af72385d0e53b02987e76dda92533b25bb7775aea6fe5234611c5d892b49cd5c6bedae5dabe7f5bd2018dafccbc0c8c0d8985d6bedaa83a26ff3363a32b5d65abbcdd39574aded4a5c49bf109cdce7cdd55875521955b2d7b6019f683bda2b26ceae0685ae29ae27476ff2f53e65b1846d72be670f55ed418119669c5ded71d793cf5250ca7a3d545372ff536e57932b0339f72b032c8b25f08994c552f6b4076797bd21dd4375effdd4d574032783382730db9ec04c5d4d6d6393bdd3d5547bfcc6d5943d5f57151955ac8c55878afd5a5343f9ac272a4fd61355fb35e147adca4636239b8bf74cfb087c163e62fde7c51452af72b5955fe25a5d84a7a3df596d602a93bd8c0146fede8666fdf5d9f72c6cde90882cb4e0077ed6ba6d6b6d2d5be3c983b58da07fe18b57c4b5fa781fe28cc3e67b5e2adf175d6ba9f050ad3d85d8fc799f57bdefbbc0585b307f2c8d75374d776bed597f4e30d61bfd2007bc64f0cbbf6389c791f5ac1f9f7502c0d121fc82a3b70593cbafaeaf8ca11f7cafc431fef8d765dffc71f4c6d11b0243cdb5af8796bca607f3c98036e18b3a2c74e4217fca18ad0c43cd408ede2f7265186a16ba5230d32ac5c3f5f7738c3a6a50cd8d311d42400d62fdbd48b2f823eb6f79135f9e287e8d2c72804b6e3d090507b2e4f249337b67da1f900cc2f0250dad73c88e3f46ef4cc7b3ff7b16f6ca770c04a6a63c6f944ffebdf7de3b8af8873ff92edc250ef24b277fc8c3ef49d6dfa83d60bb7ec4a9f7adeff286f7ac16c6acf24beffcca5a9e178b583860257b4f852db9e61abef7e1fff0eeec5a6fb7a33dc1d0b3a31d4f1b86ad4fc9af4a660d8ed7d7afa75126dffef8c2a6896fb57e2d6fd8ecc243baf68c5f347ec5e90ff0bd2f5dbe6cc9153c6b70b857debcd1bdbe2cf9ba515f2f5c83a3feeb5f675ae37dcd691be5b17ee98dcef5eb8dceafd739be896f636b2ccb1f9d7461f259cec29e2babf4ec8aa1a3f0ec9f90ce9f90f6568a24830fa6a11024d9fb11a7ac07bfc43fc81be4f835b2f7e378fe08fa7b21f63faf0d1dbd61bf55ccd25873787f53249072e7ce588eb83aa22a7f34787fcfd34397f9ebd825f89beefed77a97f67d7d19cfd90f1f0982c3e17036afbc796fed7f58c9dba8f4bb131b6869c193f1bec04c7f7e4cf0de5de760ac3aee2ca89ee7e0e749c06180eb42762d6c1ffb5f48f39dfede8fee7fcf5bc45875b298f6ac325d23a9989ee95d26a018258e9d6c86f776770ca0f000978ce6ca840798727d7da3ab5f03a6fdfac3fb2224ccebb3b4060971dd0eeb0cdf835edf8ec27d7b4bb206d59cdab77fbdefb4e50cf62f0f6de47543b51266bde0f7fd1f5dbdd04b32ebd75df6bc33fdbea845af6b4fdb7ccf113c41e5d167c8150b0932837f9f46fe3ca4d10fefc9ecffc3c553bd4f9e2ae38d91af9873f456efd7d78ced3bd3ae62cf6a7b9775392698e4930cde6738434eeeb375fe6dbffb610d7e83dff6c57426bfaa8c2473a57595f97712665bb517a7e5a890ee4dc2d1dbe46456dbb5cbb264959fba2e27c5674e811af4fdfdfedafbde2a67e8cf3f6f91adabddb7764d29c9912c827de74ed8b7877797bf33c443c2a2ce20e8ead3afec5c1f86a6e9fa54e6b2de7596c63adbcacaee87a169cac8b455edb9bf04d3fcb4ada4d420fbb7d614f5d54de5a1fd21ef299fddefcb1fb2430e56189c02bfce21dee7c2433aa7aeebe2b3dbe47f3b177ad93a9fe96030d8d9ba10d7dc2f93657ada3926476feb1cbd2126bf96ee6ad7e5fb7edfa5987fbf99746368ad7562fd0ffb45edf8c787a31f14e2cae1b3ca19fa41219dad6d11e40b759d5a4f6b9dd5654f32df9ba90cd9495c187c49bfb2be50e42b9e66edb16dfbcb80197ed6eb4bfacc3a954753c5c411520eca9589245a720d1ad25f6b8f91fbf5bc7b3d9d7ced5b9edae33b21ae967cc938b932b1644bd6e57e0f29e5b919fcb16b8f4ef6f0839f38b3c94532b9f545379750d97edab99f40f79e303b7f0bd7dad3faf24710ebe4108fffe11ae29074146ca5fdf7c9af89813584879b6bedb95f4f7b7a390378ced09ff7e10cde8367dfff7ef47bff7dfae1cf3b3d2690bc274cfbcde368fda2ce4db6064c21aedcb5a73ba4c1e82bc81230c265ff7bbfefbbdff7a537fce1d5dcf0dedf28a743d96b4fadc151237b8dece7f5ea5eabcfbeefda75ec28f2c5291220f2f57ca3c8e5ed5aef9a1b7ed6e0a891ebd7c85164f7bc5cc9f6ef8fae4ba373d67286fbf60c53a35cd3eac5bcfde51ea101a6cc42ae5890a8ca9ffff9c3cb9b7defeda7457efeb8ef3378270c45edb3dbb66fd8b7a1a3357c7ba6feee7e1e61034f7945ae583670944757ff58a56c54becb6371884978c9250ddf8b6775d4f14ffd528d8e46fb0133d5c9fe0133bd1948fdf2e368f7155aebd3ba0417cda7f507b93e510d6a1a7ce4886da8d386f005e3e8fdbe37bef70f1c657f99f78097fcf913c5ef3d3725dff7803956db01d36ec0748f32bfdfb538cdf5dd54a8473914b9dfb17d32fd6b7632492f9d5c3fe49603a6f9a9d54149f159cd14a841f77f8867daa96d6a9533f8dfdb227de7b3761709c3ec2cae2b666d4851f80e55d28024cbbcffe827898b3a93e387c91feff7664903cedf69af385aedcb6ff5566ae4d4b23a4b6b9d61689aba1b367bd406ccb4f30f982feacc4ac24c6b55fd527c9a93af8ce956d66ac01c913053abcbfdb6c9673fc467d52015df6f295083b259e2109f058a1f7b15b833ac9c417cd6d7f2c6436798b3a16278264bd4e95135c83f2b7fd8ebab2d533c0f611662ab80cbb60659f361d8ca2acd49c5189cde5d367f6c25ccd47f74dff9cc65644e5c73bfcab01cdb8dceef1d2a75281fb2ed954798a943595dd71c88dc6fa538945ff1dd78a636f380c3461145fe9c5cff83fca2bef887fff7fee387e50cfe1fc94367f2c71147b5bebff23254617badfb43be031016ee9d8da3a5d559b917bfea5a73699f171eb338daac1c32385a557cda22fd3c8eb171647df9fd360d75badcbf83a5ed542d2d725aab9c781ad9df6cff58fbc344595aedd03c53a32ad9ff154512d5a03ab34d66da5057cc6e2ffd25f7d72cad4f4d13d49a0f14a4d54bed92562edd5369457d8bd364705937972ee2a739d95f45a50d595905eb8c74555aeb63efac4f3dfb6983a3f563b8561fd69936eb434bc3a1cafc0190e24c4dd86b4459b8d61eff9b5ea02a54d12a5465fe16bf6056595869323ebad6d5c7ff47067dfb2597279719fc3f9b0173fc1f427e08d59d5194dfa83a290ff81587601a05f811e59d1c99247f87ef47f2472ce4fbc4f7efc92f6dc87ea640aa54fe51b391bf1016ebfb4ef24cef0fbb4f7c2f59effdd86978a65dc1cff57aa78edde5bac28dcacbc2152db4370592c51fbfaf8e4fdeece58f977cf28867f13b6b0d3fd957cb0018e5afc471bfcfa1103a2a031e260dc6d145422106416281620624962186f014b9eea0e0e2d6dddd1d0032bc100a01e0060016b887d6cdf75df85f6efc5a6128610e0179a92272a4bf680720404247beeffb3e0ff4f011978138daf869f8b1fe03df718eb6c0043fad57471c6d1e3c7c8447e349e57bb1c4f1b1f0f704f3c3f1f9103fd657e2f84ed2070f1fdfc9c347f6fffe45d1fd4e1e6ef601633ada95ca06990c009fa532a8a511e9ef9f5c8180720ebaa05ae5a8cafe36d42de3dfdcfaaa430639828bca22b2897238da720a67399c5c3f5a6b6320bd2dfcd1c3dfdb1f229fb5ad9888c85133dfeebe16fc91e8ceae6d2227b2e19637f159f8263e91cffa5b6ca26b0391e7202272d4df06475d14c5d3c6d12a95233cc3f7208e7acd7896678d28be9f452edb2561be5566e10ba3334d234c900ccd1c9616c4b4d50ae77ada99322ec3df3f60a6285a81a26cff0892f7a4d2df65ade78ffe8aa3811c2d71f40b7de5cdda6beb2964bd556b8f053a532021182f77f4fdb9bd1f149d92fd796274bf3d7f78258ebe8f7e7fd73ec9d444511e98db81f06d124cffd0bd2f4cc5bf677534fc9cf02714ad98be288ae00f58cfeaa8d4a3c290064cd99f8cd2b205c6e6b4484171c5770ee5a8dba3d0caaa6aadf5b157397a7adda1cac6ff7e1cb145b238478f1c758be391eddb7c3bd73ed3cff6742b15985539f52b2fd95dc9bd7494a3956671321930c55cb130b140e851b60833eda8a86b6371563644484791cb2f0a73ebd39b4332b75923bf929fdadc7d8e2676fd88bdfc3dc1747dae1f9b2c5dae9afbde3cba0d3f3b62cfaef1c91f451739822e5c5f6f3e89871499997cd78fac6ae612570f475cb3896b45abc94398cbb356d2faa442540b93fb4cede32f37ebed159fb14e08e86428f1b613f80dded7526bf5428ff29e8ad222d504d3e22cceed91cfdae690b49167634bc6b18ea3f5eabddec5a9ad46b7ad134892a471b4b3755baffd2e295b752bd505e723049dcd9e546a7074b6b02134059e7324c779268c86d5d5955515d52e4a6a6a4a2a6ad7f454050aaaca5353e31aa973ad6b5de71aa971343c134655e5995f84afacaaa862343c332646c3f3ce20b8c70dad0bebf1b1f7743c4a84e6fea9f1931b4808904c910c8d333583e06a651df33dba86228b3461649ef452e7623411448a18f1e1fd0120430ea21e382082f408da4a93a0972801d4bb09defb04ef286825fa4aa74005bd6b2ccd4437f19ea59d786741b7a0a356d02e787f010c3a062d839e414bf5134d83f71a341436682d37681cf454eba077d05b9a07dd83f64153f50fde81d03978ef203497f7170211aa8a6084237469242441093d04ab253413bc38e109ef0f85ab2848610a5f9a40852a44c1023cf463db00b707bea1c00d821f3b073813d1c4c9d2932298a044516292d4363f8299daa820b83b70d4f446b82bf048705be06fc0b7ff010bfd11dc48ef036e23de08ee23be086e249e08ee255f84ddd683892857b93211a52aa7f608b932c1f4258722ab6bade43d09d0d3fec6ecfd757c26e3fd514bbb7d0c18ef0f3454837cde3fd7a016dedfd6b59ef77fc1673cef0f009fb1f02b64d97b10efcf43881ee21510d4c3fb17a94132ef6fa46b30ef7fc467e27b03f1deb8f76fa37724efdfba1fde8fbc1351837c78ff16410d32f2fead44d78a1079fff6ef2b435ffb59d0fbb7d48cf717fe5d55835cbc7f17a106fdbc7f1ba16be87b0b16bff3fe7de5389fe9bcb707dedf57bc9fefef3a4bf3d15483f0fbfb1135e8dfdf91e85acefb7b123ec3f99bf7f7293eb3f91d5ff3fe7ec56734afe3eb8ca511d520cf410d6a275df32d4da5464311f2fe4a489656d44aba0f33bd20346237c420097d1b815401a7172c20f4d788a6a3f7ca01b4cd855e62496c9fa83d34681f206c69d8dec076866d95ed6263600b035b1bbe3ef822d51eff16f05d527bfc7bf04d6a1f7f1e7c59c077057c33be327c2780af027ac05706460402df281cbe5a0e80af11be48f02500be3fe07b84081f8c14c1570aede34f04df2f2fece16ad80bca616fc68b225c60af0aea41b9a703f674b09703f6569c3ef063af083837363b6a68f0a7037f4833444d9c2c3d61aa01258a1025fc4531c19f1647a592f09783dae31f047f3d30d8c29f0eb23f6c4bf637a9b2bfc725fbd3b0fabc64ff1bbe2b107794fd08b8a97c4751052a7c998214a27005852738c10b11f0d75485bf238a803f248c80bf24bae06f0a12f0572509f8835202feae0c017fbb25e04f0b13f02715dada0a3bd9be9bc084255829210948e872042314a18a083ac05ed50eb057842dd833020fb0d7a507d8b3f201f6bc5061efea07f8c301017f4741c05f8e0bfe9884803f1d68eb2108814b1080f0032a1ff480075b76a0831860af8a0cb0278219604f0929ec5979027b5034c0de951a606fa7057b5237c0de140eb0b7650a7b549fad73c0227b0a0737b0011435a0c113523390410c76f85e61c1370a4ce02b8526f0fd92057b3827b077d402ece5a2b0c7b402ece95c80bda617602f091860efc9b3b51692ec2bb843f00d8317b820aa052c70224b134c60d9f508f0dd59c1170b09f06562097cb39400df28287cb598005fa913e03b85027cb728812f550af0ed82afd5b5f50a5480bb03df29c07df47d0577d3370a7057e0fb04b82df06d027cfb86c242df25c08df4bd046e23be4980fb886f2bb891f81e01ee254308f13df004de0877108f047795bf012be07fc03de58fe016c1fb80fb036f0477922f825bc913c1f783e00b656dadc40bafe46d2efcc80a5b4e36fe08b38e9c88003b09f9ae829d6a7c0b819d88be91b0535fe01b0a76daf1fd043bf9f80e017622c03708b0930edf54b0d301be9bf41421df41d4f81e82e8852ef01d45c737d38eef251fdf1fc8e1db033a7c77001fb1905c867f9220dd816f269df4ade4be0b1849c6e6c2b712e6c1cc9d743ae9f84e827930f33d9d72f81b3e4ae2c280947f011f25e9286c543a895712da5c38935410c9d278b0a1c35ea4fb74a32c8d86f7bf551e92a50dbdbff76469395e87f71adeff43b2b4fcfedfd3176569b6f7ffaaaaf835458b3efd4981847c5aa314f06995aaf1699d4a6b555aadd27a953652dab9b475fd947695b4a13a2a6da9b4a7d2ae6ac0a76db5c3a77de5804f1d29fdd4733f3e759d0d9ffa138f4fbd0a54013ef528037cea52387cea5308f8d4ab12f0a95b2de053bf62c0a71609029fda5c043eb5ba219fda27097c6aab58281bb607c09eb1d780bdc973e0a6c24d00dc34e0c64d20073ce463870e1eb0dd0d89000418b0800420008701f0b0e147ea801d1a0023e6f1398bc9b8c17181a88602843411459deb2270b5bd0483b92f70bf8d6823928c48fa2f9f4bb097bb02b89d92c04efd747363c0cc48a1ad9fbea5e021f78520c1e596f2635b00fb133e2a7a256f2b3aa974d2277d33f9766aa7a4a41ff276c29ddb02b87333f9924e0bc8386a81bb010e6ce0c73662031c680e6c60031c0037709a46f4126cf3e8916d01ec54f49d047e298d81ef0a9c321ac047543ae9938051441185ad35f02c9ccfbaa933e0b3cec0fb3712b86bcffdbe000eadec7e6300572b3b02d7f6499760ef246ce270b8241ce270b89c81a61f59e5ad9bce176667a033f0689881f3c7d19b541d4dc232381c2e8f1fd94b96603137063095d67d5f001f51690abceec79682ad14ec52704bc135c3e09bdb02b82b808dc09e11f81a81ad11d8735300878eeabe93be29f0a3abbc3505ce1766eb743fe44d01dcb98dc09d3b09873218e5d69da6a3d7085cb3a346e02f8f5d857e090e97e09ac7916495f7fc9c30697c7f10dc447c0381bbc9370eb793ef813bf746b8971e09ee277f03ee22fe07dc4c7f043794f701779437825be98be066f2447027bd104e3bd358d248df3d2c692542bc1de2c74bdab2917af84e12c47b473fde6f6c09e928987cd651dedfea7cd650de9be9fd6d93a57511ffa4972cad73efede4fded159f7593f7b73b4b6b22dedf3ee95a2bbdbf5daa41cde4fd6dae0675d2fbbb5359da8f77171026eed3301b7d6a6693458baf96268047df719696f6aea92c4dc80f9f9a3906494c4c48153bf26998633b3a2bbe5a1ad1ff7cb5341defe25f9cf89f88a5f5b0f1433ebc7056e6463e3573112a2b732242395f2ded85c7b9b1a9a1f96a693e7ec6574bcbe183be5a9a0e5f7b3f82e9df4bb08d42c256cb10d84e29c1768b10d8521d61cb2509b6554160dbc551ff70e7df40ec32d8647146670a4259997f88e44cc31fced404a58e9c2948e5c39986a09595f99b46ced42c72a62191333585ce74b481bf1b6ef82180193e1c6578d106f68204618561c862d9c0f70007f0f43d8600fc88c306b60a50000f215296e680bff1230c2f02c006f61e3d5e68dd7678175e1ca3c2f1478fb481db76b15351d1db28d034411b258a55749ac004de46594b6bc00f7d8ae61fbf5a9acd06066d173b11e07b20c083394b0b9baccc3fdc41599a03797f6b65690f787f1b6569367c4eca04a16ab0513968f8f14129ff10c91fa4b234b1c9caac2c4ddc85612b447aa29232a340ab506c39d560e5b0c9d220f0fee193a50de0fdc32a964680f70fa12ccd86f70f77961681f70fa32cad00ef1f4a599a01fe86f70fa92c2dc8fb87559646f4fea195a5e9d8f1fe22ced2841ce01d87f71775968680f7179b2c6dc8fb8b4f9696807705bcf3787f71676912787f31cad216f0fea294a531e0fdc5294bebf1fe2295a515bdbf5865693ede5fb4b2b41cde5fbcb2341d2cadc6fbb3902c6d02efcfca591a0fefcfd2591a0f7802b8084b00f318825b086eaa20d89b22801d02d8e21e80ed0e08b64d3fb053a5d81d8077c08db332ff06e88073c0d5ca82de07ee8119b0001eb85ad9ec158013801180ab95c5781c70b532187f00bc03ebc044b85ad9cfdf800d800b806dc0d5ca7a9e0078005f03ce8169c002c033601970b532161f030e00c681ab95ad78006018fe06ae56f67fc32fe06a6538ef02b6e18c87b00d5c6d3570b532bf2a626230297efcc8506ccd7c2d854e1a58e887ac10ee5cc34138ad52698d4aabd50ccbc031300cfc02a70e957a151f9cba540f4ead2e5ba4d43ea5b60a8a5be0d4ad52bfcafe3b5807a79e4b5d8771da52694f21754e87a63f3338b5b9d4a762ba4a5aaf70da4dd977d97143caa6ec4fb2422a113724cca94835c4cc290bd73935ca4278e41faca6b3ae40d2fef945e246620c92194642e877a582b1eaa433566dc99085ed16500a940262bd22986e7e0d9b1ac706ad05a168a547b2f8a08841a9ef03cb1b370b21f3180542e1a8b3a66c06bbeb90bb725135883616cc95834d617107a59eba5a07c10f6ca546593c419b3fcf76ea7e6aa7f297d3fb3320d35875d214bbecb5fb034201d37bef882b230b938e7adeed8d278b75a640ac551e5f4c323bb39ef59d59b8b377dff03e3da2cb1fe935a298d6641f6168e50e3f05a3004621a9cc7d8e55b5670933754d8d55aea9d18e55d96f7c279962d721105419f6749f72bdb98b34465959d76aa966349f5a2e339fda2a9acca7d6aa8666aeafc7ba31cad2605351611ea370786b8bd6de2fe6297baef9abcbe67b12339db11a806853f1636d2b1e2e1df32ffb3438f1664f2751fcab834d591ab8bb53760adc02ee2c0db6b3b2fe7037c23098613438940ae5825a59197a5583db664eb4caca5a8693e5723f2cddc9c56431531e2aace342ca4a972b314df32a836f963710a9ab105ebd78a87257c14c3158c67e144918fe720c76b2d1c243857532df99c23b4c8e4a45c9743b13ea46ea46ea068a9b291e2a4bb3a1c1f150d520da6c6cb02ecb90eb331609c31e599665d982e19b6968aa3ce5fe1432fdd5c2683e854df150c9a4b8acdf2c6fb11f5fafd7bfcadb4bd6248b61994ec54b850a0c53a142a686323232310fc3b68a95dc3f2363698e5cd6270dced126cc7427e77d4c18133396640c77861d5181c59ee689a689664a956a652a687056d66f9a3c545b727facbcc17e8c89897d4c798bc5c4bcb5ef504cd8c76020a0d48f0f6058a69349913531f1e30397e9f27e7c5083ea8d544c59836813dfe29a9d9c28d3c53cc974352a6a6a66ac66ae7ce6fd1d674818e64c79b3a2a9a46dc1306b9ea6bc01a1a9cafd8a796badb53136168bb131fb43d6d6fcab86878ba330dc39863bd740e57e9a9f2bb97f06ef78bae4fe1436c543856f74b91fb6b3b498a7348cc176b9657ec8776ea472bf0cdec95959bf0abca3b3b29d1d54ee8f79daa992fb63313b4ffd164b544ac343857524d6ede476260d8ee68806c967df954cca74b95fa69335f9ccfb8e3d787bc5c4bcc5a91b61dad8c7589e2a479b87cb8d06577bfa6398876a0566ba93cbfd290f55eedf69f2594a134b37365fff851a1a1383f9cb3d4cd3849922699af7bd997c0e0e76bae1c771bcf61302c66814c5680869314663acac91d5327f88a041adc79ec4942b3bcfa2e5c606db2795498f196bc5d6c076676539a83d3a689f2d5f968460a7b23217ae9345cd9960425e9190108d1a356cd818ca34683499f136ca1b7e1b43e54de887d033c75ca2597ac1c286a6c50e8ef7433e03058a8b15333f3a37345058eb821e4589c938bab531211913438e24ab6576f91939a7e7494cb9e23bcfe25a7caaf66c71d4a9b87871f48bc54579d23e96c98abd62774d309ab36951b32206b33adb9469d0807d8df2d64c5ebc8df286f33686ca5b33fd502e6f2b3edbc4eef7f2d672713a8162eee09998a4efa49bb751fea242d7bdbc5d1b1a3aef95b79cf79a94372265ad3d313f7ae00541eb0d8262abc3c63607c3dda5bd388af3232526137b128efa14bfe2bb2caec5a77c4b52142ffec5e22c0d6cad143bc5516b25075b1c162d273b4b37b79fd8e8e46255b5f4cfc9a1f92f6f373c8fcb5b67791c74f36779dbf973c50a1daba3e35d7574c496ff8f98ec13b5e40a1df2c67082080bf22bdbc9c330618845a2e8b8f8d719a205462e9e49ab856bc58a1649a2645c2b5a42f4c028c160cf82c50bd20532232c600fc36c25325688c5fee7e715fb16626f832d690364c95bdef05f5a0f3f8c30dc4db6488f6c164946a1d1427913fa167cca5b3b69f13fe50dc9ffb8286f42ef8289c5bf286fff2f2e0c0b0386778501a385f216fb5abbddddda7bcbdbcedf56faf216e5c50b18e5ad25f431cadbfd18505a2fa3bc7512932634b115f33060c4286ffde45f4679bb2f6336a3d1802c1090770502125bfecd44e9dba3bc8fd696b7d68cd25ffc5e79bb792fc9dabfe347822ede2b6fadf7beefc98fe1c3307f1e2c6f3a0f36938fb920818072727e4650508e9050cccb5841e805c4cfcfab84d24203f133fa8047806a139fe2ebdb27b5167e7dcb546738ffe4535b65f6c3a7d6ca8cf6a9859af5f0a9bd92ebceea72f8d4365911d811e4146161c287d9129a9b9d209e1a0b484e94488c2230c4d6955d47b59696eaa34f7b6ac70a974c27f9d48f1cc99584e8616104caaff82e8b12193ee55b9cca53afb2722f7ee55f2cce1e11e0538bf4b1769d822b8d82af2768a82fc11224b0f22350d104ee3cb6c8b2f4bee57299a6399ae4eb35c260b0f1befdf7ae0f6384050b7286cc080b25325668a209fce51c9a68a2096c730e393c69a2091ce61c72c821c9063714283fa62061a5f7291a0626168b758c8c8969152a54acb02b5678d715dd72ad5861cbdb8c8c6b450bf15e79eb8101411004892002c49e9b8826e2c79004979ac035cf70c18f32a48ad27b99d8cc0c0d0d0d0d5953debcafc9b1216d6c7c88ddecd0d0dcf004edd0b080a476a2670c22280cb148ebb8f8d719a289918b3fc2b566e076c133cd44fd7843da94dedfc070707272726039e43f0c632cb332997795c17668686e788276685840523bd1330611148658640677d4b713274e949cb4e0c793c4a5f7e70a72850ea9a3d3d22177765a2c58b4782c0f8f77e569ddecd0d0dcf004edb080a4d6021f3e7cf8683171e2bd6721cbf9162b34138f9637f3512cdf5164e5cd7b5947e1215bb35f61858ee2637d7cbcab4fcb091d3a74e8b8597e64816c756e2759b030b1c33905d8f6820c38601e3e8010e92bb848a3001b39d1184560887d02dc228072e1a3b54081b4a3044bac70c91cb9121309acb03042ba6005194b2350f1837d8b537989dd8b7fb1473687ed52ede90fb17d522d9395629bacac1f08db29d68a3d00b63b560e26798258d041c4091da316f451540b2173a816a010c022e57e1babeba741cd6666cc08aad584847068d0701dd9d9a12d39b2336ba107a1574f7da51ac4d7771dd45a0fb1a5ce6e983ef5ab2f3c9f5a1c1048543b3ef5aa284c21850a9e9f999c153f3230173045aeea175c1f21e5a204c97e20baaf831a81b1e4838fe8e46c6124e3533f42120369e7c511af0275a587590b5dc41150f8b1c07224957c4dd242283935113fe69038a5f739ff18e31193e739ae58b1a284a15bb02db4e05d5b3082be8fe8c36d513bcf16329a189d319090385152c25fde81ab4d494909dbbc63079312f6bc6387120ef38e1d3b9294686c7e1462c2e4471d7245e9bd4eefecb06051decc67918205d9a2bc79df02072551d4d55166b0a8910535fa0f63c908fa3ea20f37278acee19cd013274d96f85146a2a5f7b2d80a2bb0c0020b3116481e9e584f4f4f0c1b2386778d11fb59310353c4450cb3a8a9c15166b0a8f921c88913274e9ae05ee2db891327509cdc2512fcd802d9537adf820fe9f343c23055fc4f7933ff27c50fe9a2bc79ef02e705f9e2058c666934ef4a8b32339323f3330353c44593e0efbd4a51acfcf88284517aff4206cec398a948f1777661982cfcacbc35ee6737c8060579d7a09a6f14dc5674e8d0a1a35b77043fd2ee089c6e78154182040912244851519020e137835f90018711601e3e80b0406ce488a3b83e0a92fda0548e8fc2f04184422a398d642071266faa3d7e84103b47684c7ac09ec5512d3e1504f61c0c815d07d5a7ff06fb16a7722e8e7af12f16678f8eb0c86a9227e70746c70c2b443a4648e0d342875e22c613f62533a9dc2f8cc4429016e5cde66b424236356ae8d47456b8476ab2253e2cbd90f9d4a13e9b506de1eb3b12b5d6f3f53d893aabf928333ef52c1e65e453d792ba943f117dea55b03411a4837021166972f33b46301648829a266705104c7e1a47a48573b68842fab4b5bc7af86109ebd47438b202922b796e49fdd4753c2c1c013d6d2623c657183e5f7f1472ea227eec21794aef7b5a68c1c7a7bc99efe343fefc8c2e5cb818ef0c3b6386779d41e4a7cf16383827d213570b9c1e7e78b58484f09789848484b0cd44442029843d13e13124857098898888949cccfcd84b2f4817a5f72f1a068c183162740c52868c9ecd66425648c8bb0a3592a058ce8a6ff7f29603041374050d8ec84f2f2d2d2d2d619b75d061097bd6418725a6255cb3d013253fd2c859e93d2d06043463c68cd80c32282856abd56236ac0d1bded5468dddfc8d116ce79b200962d16ab55a4f702bf956ab95e44721b2567a2f4483460d1286d941c06043e5adc80fc170e75827f9ee308fb116e2471b24ac730b01d688f9f710d8e986ef208a8a8a8a8a8a8204297a6f14c5239c81b0adbe20030e42b008a2cd68725630b514223262e0b4407afdc004c3a7cb91157c60f2a616b01fd1831d094fc2a7f815df7916d7e2683f0f0b362e8adcec20d9817692d3d54a7ad0d1e1ca6cb8ae9fa84a6e98fe2e424a2c7a51ab3511a241a3468d26366c0cd9a121ef3a6464068b7b83bf6b6e7e7081ff1e71bd68263a45ea43f9b4ab7205e2ebb7116aad715deaac9dcc567cea4a443ef59c33b9ceaae8d3bef225cea44910d90ae70b9db1c9a97d508b2fb8b491723e7cda4c492c8cccd0917695b6d25069ef5a4bda544648be917af8ba44e6614428b87347c14e3afc0844d24aef8166cc080a2a6fe6070591b5f2e67d4d48a8bca12f54c2706bd81a35bc6b8d582dc76629a8c5e30809f990b483236464068b0b050afe7211142850b0cd454550b0e7a2222838cc4545450f05d7ccf4e4c7662244c668d41a35c818ae79b441c66cacf0e39039241b2263998c35c964ecf5a38d8ca13632d6f9da2c2dd5726c96825a3c1326f8cbe3259b09f69830c136e7900313ec39871c98e03043799e1f4bb255debc6fb95ce58d86f9660c77e9fdebf5b0f2863e2c76b3b79b77bdc5787ec78e1d3ba230618105d90a4444444444444182906423e1dc03b6d51764a8611c58c03c7c007194c81219211a1c1f581899010546acc16d25871f5eb85c4655ede922d49e3642f5e92e8e7af122d88f5cc9d1fe1fec4c584482594da23339413b767874dcb8801de9ab7e22fd3abc8882d084849668d4a861c306bae2669bb377cd2cde263643d3a4c97b799b9901c3344d5eec9c17c7c5a71d65ab5fd3ae92ebebebb712b5e6fafa6da5cefac9d759cea70dc5cfa73da5f3696f51fab4a9a072eddd1335583af2c30dba2205cabb9aa546d5b4681b167f3543a303cf809d2f76faa916e483912f42e46be756c24e3e7e64d1f871ac24399634ca1f7e6c99477ec8c716e9fde8ea251826fa26d9e38df976c2c4e4a445d730b1789bd88349f8cb413a097b49f826619b8304e924ec39081ec31c24489067f251a06418ecc7b22c5b240cb397be55de68fc0fef2a6fe6bb4a183a1fa1f16679f3de5c42ff55de56fcab611606f3aeb0b015f39daf976fb659074e921305a843c78f2179719895bee64ec23523f9b17db41723f9580c1c45f1c80f3d76ecd8b163c78e1d3b76bc37ba5cac56587b3a866bf6016723d8c624d40289cd2b1521828d549f2333b871337033bdc0bd833b892ab5a7ff855b04b54789ead3561ced2b8ebac0ad25073714bdc5076e2a2bebaf056156fb902b9cd4a861a103c388fa29574771a27ea6d01d33ca1b0d1a4c356cd8181acad9666d36ef6a7bb20405ca936fb2f417ca8f9e57de6cde83cd9c9fb6ad5e05b1f8fa466a6de7eb1fa9b38ef2356d5d4bc19f7653ae9d443f35ae919a026d01a61f174e706ad29aa52e4935f92b946323244667c5a32dbefe18d3f1638d1a356c9030cc661a2261982e7e7ecc24d38f36128689f3b6f256e324e6633d62d88bb5622c56ab936ec047549a89d28f637f356ad4a831921564b5fc7f5cc41011c5c4e0cfbb644c0c11d147c6101111bd37c2c010168b415b605bf57941068c83f3b0c14088d49e7e16b848ede9dfc146aacf11267d74e2666a291877d30dee2474566056fb908ed6f49328a91c9731d3391dfd8443542454de626758a386d2db286f34707ea884a1f30d8dcfe5cdfbace4e46de5ad9fbc2dca8fd705eb820bded585b015fb232a0de595bc8d8ad0a775aa52317d5ab934e9a56aa544e3e6d3c741531e27fd2405aa55aafea00621d7209baf6fabb59aafff429d35938fd1ccc07ac0603d7a9030ecb9071ec1c64e357e0c49180e738f1e3d7e64892c562be66fc047545a497f8333c670070112d2516433c6f3138346cb3c26a97563c81806f3079231ec85640cdf3c8a640cdb9c2858640c7b51d18f2319c361a6819d84bc37cad49194f1af19866bb6a9c1b6eaf382a332380ecd847d2c6120334a988c8279fa09be01bf95f56828b83ada4d6ae07682ab0b298ab164cc25633e320624631cf310e6d88f2019239231ac3ab25a4361ee249c6b4f7f0bdbf00b3cdc0706e2a8679556a96ca36a0c1eaa3dfd9f3efae3f5b8e15399984f59c8b506d55a33f9fa649d75d2d7e7a931aaacd662624fe3eb8fa363307ff9065c6da3bd79f46ec04972a2f86ec037fc088e20e922ab25c495633ecc8d452698958449fc56d6dfc23c3546457b3ca01b686059f5e98fe1fe2e63ceb0f6b48ead5fc32398eeefed9a9eaa404155796ab2388b64735667753667912c8eaacaeaeacaaa8aca84ddd60ee65f84a7a4a2764d4f55a0a0aa3c799367c2ae7fcc914cd71561d705acf7a8d48a986b733dc91822110000000400c314002030180c88c4a2d180385265c90714000d95be6064248fa320c721840c4184100018000000000000040620d0026dfc17e3ba7e998cfc5bb0d9206f2d1ba68892286bf7cc1e0f614896aa12fab3d175ec582dcc987aa0750e3f671defc7a92b7340428402c25885844c40c90597db4fa43e2030021bc5e7c63ab4556b81a001f222936bab07729ae185997b723d55614a1a76b84076e9c9b0aaf5672361ec58597606512e2dae8cf5c99bed5a730ae3613ce4b54adbf64382e158722d6dbdf01d9fdcc9fa5d580ab102ff839a04a55c87215d1ccf6a6582fc756b8cabdec363840e0d03d142ef6109d3f565f650b0b410226b9073d31379ae4ce4ee3ff148d6280d36d2555c57bb2e0589f469bcdae362818337058c5a38e942df8d071a0141ebf545e5ed3a94efa877418a952655b3c4cecba71a51c27850d0718d2f87b3ef6817175728a3c99065e00a77c02a10e6687c5ba66ba241bc9ddcf43930b1538a54b4622e7aa6c1141daf4bdc5005e21256b6fb3fba25dace6890b55b3ffb564e59ecb257d1d61327f5d7ac13635d6eda2cf476559b359f501f71d2c4fc7d34917d2eccfafd01adb67ebf6aa06d73c5c058c4d76759653eac00d5b2e75f47fa14e68a67693a4704bdf1491f238dbc0e8131368b1c9e46c737515c24919d5373ef04434373590b63f018e3f2d67fb042689ab0e20f89b7514ca97a6eca852c86001f677200c163a98c2ca6db272f7b354666d70760a1dde29da401496ee6f6dd9479c23e84083e2a31f7c833b3f108802b0350602ae7486ae8cb902b17e0ea0509de43c2504e33f2ab1dc923075ff83792dc4412df10ac557fec578517dacab7de705671303db21b000b2a391ca313f1b8aea0a97053e885d8229241a1a12df298114200a615f4834cd0d8b78e1b29dcc9e8787bfd52250efa6a387d1814ed1a68b64070531158ac484c1f89bc6d3f84b96cecf666c4878604147f8de23de33114dfc6c5247201a0df453f7771b3f25de8d18a17e9b1dd92668aeca6614199c029ad0373d48d5225f6eddf1fbd3e51ec4f5b4913815af1c5ca3eaca559a1184cbf79b4433cf7cce57ff7b570f434f94f7e3fe37fb59e44ec4715cfaed9ad925de2c500e137682fc06a4241588629a48f4aefb4e8660f67487a1d1e423737487be8e77a76230acb8ddc869556948e54a99326538981d0a7fa6add4b237c7fbd465244750b4b5c72ca8151eafa3b6cdd2fcf69c7330814e48b4834aa9ed4d2b978ea9299e1ca93bec0247d92fc123a84a12b78888f1779e8f1e1d08856879649874f0c952de8c5b7c8b4fa8d58455b89d9f733ca4dafd614ea87e95a59c2be22e1f5828c455818e606f0855a5d57e6a2af2e8e6182c3f959ce3725e698621d78375a38dfaa06f72c9b748acb4b27272619dc02d395463139f8b0f94e04293e3d4cee0533aaa78552cda212fc56db37dcd8034b58b969ec9f724e6346f7fa9dbef6fbdca34dbeb3aed38aa597295c04d88f5bb4b47be3b0812b9c511b61f76a9311770037f83e7bd36387386d9516c5eeb72899868575e52bccfe8d75715fe8ac726162d97c1d7f92ce70a7e1eb6558bdec8d1fae24540546e4c7f6e067d43085fe4b75855455757a117639c04bc88f4227bfa1e70db766d494af01226440a2abd6882cf69fdeba386d593be5236080168f957fe9033838577b413c2c47438e357714817d67da468b797e2b53060ea04c0df7ee1965fdbc8aedc458606f48f62085c963e4783e5f7c448079086891373e7e9ab1afa9ac9553bc3b98520596a02b81213b5a153810a7a6b214663afe24f093009c19bba67a87bba3756de98e5e560fc8365d9f153dfa3f47a162ea704874846e7492b814a6985dfefd20a668553d3f0e0ede4b1711987896d6196f1018535e7dab46d0f22709300724db564f8b764b4d4598d0d6f8bc9f588aaa0a36a68fb3a038c498a0408d475f50878467b8bfc34f0533a7eb82e00ba3d9d58987beae7f11a745d23dbc37258965dfa5e4a5e84ebaf088d36dc6e13c13d23d1f6ae24d3d95ac61635a706479db20ac927c9a5a8c839be7690faadf52764e8a49df9ec8cf063a6c1626a99401b329c8ce7c10ac35d01ba374097e62cd4e2931c58a9970b073e0cea728fe0c908595238850afcbca9761bb3b01354ea8065ebd35ded8aedbbe6a9cf14a7b5c0bc493b651874d36c437e046a07d040de109f9b58cfd6d2307ef651b02a3a766bf8a2a2f6c6b19c79a41fee1f7a8946fa85e1e51d95746818e3d8d6d4ead40cf6ceccf07ea0099f762f6183cc134d0b3fa939193aaf0c2926cce2efd67a09dbde147ca35e92b63d0dabca85654e3f96c641dc465decc2a1335a49006b5cf81113762371dd5d89f318bfc9f7d49d2043e7e28b4cba3e65cf9a1b9dc646fb4ed74168d7c07528311e3efa85fcc64de3058d0c4672e35deca185e0b9c5908c4219da675cafa2f6d00185649ec2c8f2fdb845d2bfcafd03e75100a654ea2ebb4a2b82e19faf1e16211e8b244ba749149a0f06114aaa4fc8d6240132c11c932f57d750400a84f3d53103232080ea8af68e42dad862bf2b8dad723e3100e81d905e4b3702da400276001795e1df198b8824b497bee5aa9ba6cc1766e311c83541a6c5ecb9ef9ded1e4d792ebf53d398d193388b0718cfe73acfa95c336cb562dafa478094b5768549dec00635fb727af479d4212a88bf9356ece548b5d829e2cb40ad643874f120abdf89f89b5dcec302d46a90f9c3a3d6510929e3a84e3fad1f9f342b818d546c8bcdaece0a6b1372f7604c3a0572d2f6cf3abf33f8c022afc9af3f41413f5b51eb08fb11d60beb995cb92ef47c954d4cdad2afcec74280ac2d9fd0aac5a2d5779e65d2f7b927e715537765f4382a89278a559c9f427b2e983435e988aeaa9940e6e97bfaabd54ec22cd91d74af633a3df3d30d50423a6ff99ab5a5d0e584ee1482dc9a15c86a972a70de09b78c162012cd78896e2d43d9369864db5bb0ce3784a1910d3702dd1ce34430dba709fe6519479564079383394a34c005c86ed4ef9a980fc9b85c789c29050b53bac24095ca8a65368e651359b6f2ce05ff406aace9391e59cc27c3b8cf99dcdf7038a85bc4a04f08e41d2e2a26c87190d8476eec16d7e4cfd1fb70b19329d1b1f616387ee3f2c0a74c252fcdd95c6a9aa10f7f7ca45db1754f3cfc9019f01dc96e644ffd4c70503e5cffb9a515c816b37aa4d0a90d8722c8aed08b024ee32f1dc0fe34bbae851f30b225e3ee24627ec7cd33640fa2c1936504f45eff8b9c5b9c6644072dd864c7957410e54930a6f8756aa5d255e0aa16323a7a102e519ca90880c0beef58336107f1b6bbfdd58311e742a161cf737e0e58bbd4155518039dd1d17d1d484d8d2275b031363c61e85e25a00507ae7c1606c022a77a9f3b9f46cf9310b7aded221092e79d7fcaae768b31ced8da35d385af86cb4ef564da42142ed18c0a60462f6dcea4e50985e06b182676eb3d9a8274b1b1f2a998ea9c178e6139cf1207630e08e82b5dca2988c4dc604513445b0442b58380d2b7563eb931d441508e2a157c75ac677d165141b5e7e84e89c0794ab557b2b9a46758a8243aae3fd8096b1198e5c72c0309884cd07b120593918de152e22f95e1c20e02fe8616f2842cd1ac532241a462be92b2c51157215efc731c5edaedf0efa9712ca20587af92e3c52bc31ddbdafe50b980a36594186c9af91619126d5e7e2c0d464341cbb68e3e0e8cebc1f870eeb5f00370e863a30b05f54b2480ad787e027488df40b73c72fe2582dc6fea7a02cc25860a5bfd574cb1de57dac7065137c048617c7810725e001007829c14fecfeb8008f2214c011b96289b2601f36dd0267ab9abfbc485b2084309e503daa724a60677cb638d04c3c18b8ea65f0a752b1d4cbc321080d93d94d0d8039ad0014d788ecc217a5c2ef6f864aebe438a06018c4ede89b266a492068fad6d1c9cd494169167f6d283cd8484f4c8a75b251f910deba48908640db65e321fe7cdcd8f1b42982501d92d0f8bbafc1d0d37f4c4c157be663eb98d931824022ee67e0020b144a8cafd19c074f07da47bddbca76d20d4d598561cddc08d5c2709a718631430713dbc36d336c4ed67bbbd91a335cc0e336d30c690882f1918c8c78c24e229661fea7f14ed624885b2b65af18868818b8ea452d69b3b0bdeaf5bec9b70f992cf62802b915c13c3d3082d9f08ee7f23ae3b6a03267e03927bed2d2677307d417dd12b58474d20df88c9035764394967b17b57447d5b3be302600a6f91f027557df1cc0909f19a60d5ff205cd62f0da572635f67fee960c7a8713f7ede103e5d6e2085c728b887cb731a105264be8b07d75c5234e3377c5fe6f2a5cdcc95ecafba411db611105b41aad951e93621f095a24520788e936326bd35d19fbdacf3b28317d4339c3d0410a2478771e10d099e99351baa2c6677e0338b3008b211df4e7ac9c24928334dec0ab353a9a3a3721ffbbc0e021b55b9cd0bbd81f7cf1d6471b1c22ca89d0c1de020b3b4f8161f77846e20753c3803a606258c2a43f0e9c1fc74ec474e3a40a17d1457b148b63661b7977bbc6578f1fafe848432429db922653930af8a0c4981a2acdc28c7f5b40cd25a4ddc582ed3168d20dd134df25ce3b9ef33b85158beb3ee7beb31fb9637084a875846b68340d2dcb876ca24a810563c7dc236457301e5bb89fbf296c17fd9c034b3113c71309f41db0c74f4150781732a078ccd11b041b1b0fcf8f6aebfcc426e1e43a3e7117a318e12909079d30bfe99d6a1a424274159e873867d2de3f393958bbce1e7ba598df1bbf67403465ba499ac02e20e73d7bb9e3d8802b6096efc8dc9550b9960769c0109bc9dd9140d256ae18a8a79e0dc931e0926eb1ca50a093185a5fa9adea00ca22748b95f9d28a10f8cfc8f604c1a6895969085195aa35e62683f173876374955635aa5b8b298b93945f824a053eb8f92d7b12c6a4736758a0f3cbd60d160930298a00c37b135d825105f884938bef1449fd2a0a6b238422324a19f0f49f4cbe2b7a844e32d53c48b4eddc2465a7ca8c24d6b7b4178317701c814bcade2d73c4d4877e9958801ec59721b1aba03e08e53dd652a717af65769efb722a0e3ca2d7b6b7ac2d9132942169a109a35995556f9b930b4a817cab4c2b006e43eb0abbbbab9874596cb78c104ddf9600d1e6b14fb27015199ed452d05419cc91529fbb48f0f719c76c5574f952c5ed7b319112a97d56d24c2db1e02c4abba7d4015a8593d9bfc1f860e431f8f914b33cc600fc8295e3a543bcce9b12adaa4e1e3791b7401e7986c6a60cec89ea4247d96c8ea604b50f2939ea2c4590379cce4ffda28fa87c9c82f12e513d49c6573f7452978c1ebf148d18c300f983708783bcb4c54657eb205651c9a5189190c2096c66a57928f533bca7efc92794d6ba875460eee3eb4a9cf785d3772aec60c1467ae601b7a439e62aa5ec9e15bc6b16a3317d8568d48072c7ed2a868a23c7234fa82769b1a9608516c56879dd1b2bc771fd74ff2d25a2eab9fe092eae6d1066b4340c3c522a764202707052e8467d426a4c3269f346aa41b64d62a939f414f0771ced54601db5ff4c0c89954463913f6a831834baef0ef84861fc27a08d11d85f69ee0d95a01999516975be59c9384ee20f66d2cf5ccde270001f3962c4bc775582306b8ab42b8dc636928f2f56f80da34d7809cf10a34815ebdf3950b61790d3c63cd880ec1215e07d5c07f5149a2a87841ef795dce5aa61dac947607b108e976cb15281c79a414e4e090102cee0f47e8e9f569149cfadbe7a5f7588232534e0c97f275c4cd2656cc1a99ad855a72f65f3ecbb64c6ccf4e15539c3af583281025326442acc99f9b29d9189bc7989fdcd26f65f24f8d515b6ac934d9eb11e84d9ba8df033cca89cd02866d3284b2910466b732d9c7e1c80467fd53295c9301ba611f819bc65fcc7668a874f4e0b80c27ab8e1db5abc2de03e564e7318bf272cbc9a65b33581428183044846ef5273d92af7666852c63e94535b305f4ab8901ebafa41507aa83144e1c05b89d97a0bbb8fcc27e5df43f355a865d30e46bc8bb088fe32cfe3e035bd4e82598c63b33eee5d60c9ded42774c0a2d6b67624b67d6fb2ffed653e637c297c78b3f2c295d2102e686b2c1347e587f6cc6c88d4590f0bdc58228448de9560d2297168c11bafed83727ed328f2ea481d234f83515e8f3cbcd035517441fbc276256a60e3e884390ad67d142092b17eac448f2e3d1dc51939b3401b3b94ca8f1df362986ab15466c152c24bb89b6eb25342ce955fd401a19c8bd379b5ad75c90bbb5c8bbec7fbbafa156b64a04be251f5f94e97e4c2d001ea06f9d4d296069621afbcf7d9b6f6aff8f6cbf7b971e1f64d58a9883022955126bd2a0dee5b98691bd82565af9a59b4afdca8351aabf45d225af64a8503a9293ea10303eab2b5ecb86471953d1b6d8729924b48354bafb767db8c65566536e5bfb34f9b119d046781d03d72ac8fca6b32ee3821a0d96f54e4aefbe860380fd8b6f0a1d8927b2399c4b8126012e79622304f82c283d5d703fb547b9f5bae49507c2a65b96bc51aecb87c6ab18b96aa9486fd352cca9dc5cbc3ede9770bb219326ad72fd9aeb79773051f658d275b54f3e7df703df9926de50675662a4496ab3aae0047a5cb99a3f924078f0ace49ef5dfc4ca555c637c72edaabd7f4f33442716524e19533bfc764393fa53218ae9f8b1b56c29f8bd419abef825984a61f545ae980e5ecdeea2ddc35f85a88b02bf2fb6d7e4728a49a7bba0157e8ff7e74ccb9eaba07a51be3052b6972b7d9b5df42ec3b0cec4a6109f84d1c4dd30dad16c00882ef575051f69e488b19e67f281472961d79b22e0dd0021a0b91c5b414d422f64fe04ae5c64fc1a75aea31012d7845ae7cce577cc31738029327df28c13e61790719e24c00ebe26cf650e385a2b04c555503e1366d5ea9f89a639d727866e1ca55872c05f83737700b86c7870f01d094692e4d6dd1355d59f155f2ea0e08cfcde61f015b0bcefb02ece6340a53a4cf2897797d71a048f6c128e53248c06234c39db8e8e749fc431299b12b8da4fd1364f86c42471f640516d3aab634fa0e0636c5a3762a92967f4dd1adc39cf708e747cfb25f7db894d2b12435090a26299dcbd33ae984835095e9a56e0d5b94c88f93c498d3f5c0e9100eed93b04d2a4f5a15cd5002a509791ae98bbb46a6b143a68eb9291ae209cd61e34e28de5d10f440a870fb48df98583bf221bd209cb8b0a8cb382591835570838646b4a39d0116132a85d6d5d598d24d718ab9f141cefeef0d2c27bf34f7afab550926fb53e89be3412b1fd8a8cfe50427ab9b04a829d98a661adcd8a18b27f84284cee32af1d852f197f41d349295b15ccfff43c64fb6c74c35c78cfe19d5b041b0f33d2d5fa2402babc10a114f21a9b1b7c80b1196b3a48f62a6e18198ca3cf90006ee701e1fb90a91951beb6dedb7d3f48f77720d48db95c543a0b2b0deee906f58d29b9ce80a447950ef9584e6b71f606a1a6176f70d2abab0f7e419f1ecaddfdf6783351449f2cb9e7d07cb195c836f79c11f1e40d6bffb5276abe9123d329800e19f7570ede026477e2d8b740a3fcc99c37615b3d37c345f47b3c6a875ed78dea90237f3988495f90b38e97cfbf66d4f7eae6b92f6baa2390299af4659cd8de5d5e874a39b1402751488d640a3038a79d693c9c4487e6b4ebc7a8539b2d01f67b89fcce82af1d9560dfd73a17b8040812e8085ff8d16c0610c0bce9ceac9326f24f913db2a6db13fedf9dcd4389c9e12ba9432befea82cdde810a49acee269456ba9002865d3a0db76cf04490abfeaecc1871803ffdd6c1a089e57af4ce646f06c749ae6d5289b59633c1b9dd6e88d8aa08e4aa219717430504b27e40249f3916e4d3477116e42723882bc638349f706c7e166b149aa04be6e8942528f8399d46f85b7ec615442c6eef9a6fa603a77fc3f92d758adc306352270927fe80217de19b012aabd9e0b9265d4d6e23648dcde23444a5db364530599386c1891ca3708e073150ef868db984203495c83b8bbbccb0d25cffa745a946086ed9e9424312daebfab6b4b36a1b4051cc850d70df0431d00cf2804293a887b0dfe320634642042094bc17b33bc457059d7436436e496425652b1d8800404d3a6610728c8ce4658863af90216776e05e2a22f485c75903582201d486f00310dc11f8894531d015807007bc9ff282968f610713dee7de751707828ef0e276287a233749fe8d019625db01c0288e3be5c70540854861871c3716d48181bb75a63e5d4c0461a9d647c3be71973d599e10503307e320a660c6d89e1046188198cabf862cf5ee0d04547e6420b5bb8d68121240b162e5ba69c9e36b2bd79450d26e652514535223c1576b97fa778e96e2144b1a8dc163402a84b7d242465d5501921d65d1694623099b50754a0a8ef32453647eacdb33a211849bd9586f1079774848ea4128b5ddea559ef07814dd7a333d285b555542e6f14ed91a0b102ca9e356b8c9681cd74c7fb9fdfb8a0c9667183595914ea1e1d2c91b5e6c53d5dc14e19fbc8e0cb422fca617c032c82cc52e43590753300149bc9bf6744ce4c9e920ee92478296d3c87a575af49d1e6209352688d0f4cd43243f19e786a5ff4ea0edb3c3a6365f9b51fd592c2525471caef80607dfe1c06c2614c45a2c398c04eed7ce82aa162e8d3f7739eceb379ea1e749eeb6d9ed0b35cc69a0d098a68dcf9cd8707ff6b8a3a33a3344f19cd939bbc6c6b6eab68bf5938d2dd34e5eb12bae685dcc06b6e802d93b46316ebcb22ae6565b96c5b0a59b590c518b24e43163964850f590591a522b22a91f5f4843faf3f801ae480cdc57735823d7430438364090e18180df6959e153adefa5dadfe6414424565a9bfe757dee29156e3072494d7303a5d60250cc415545b2cc45fc263432a6b0a58b2027a0ec0421b2063222d49ba7156b7ecd8cdf315f01878d562d47bf6da7656cda752fa487ca98fd559b5e960ecd22e6bcc7eb6c92df0272b8d20185be5631781dc086c0632238657cd5f4b7133caafc931f4037743c02b823cb4ebbbed94cf8c22e98ebede457fc703784ac373e2e249f89168ac023f7771dd318fbd626acfb2eca5d6127eb8a4ead35ad29c8face77939e8923c2361ec570c575095490c8efb6a4756b3fa7abb446daf73b4fd07d0fa06d41d0fa17737a7b85011d2c8cf6b41454d0fe90595642fbbe5b0976f34190894f335ba9fbe0781aea2bc8b4df7f8d31e9330b2f8b1fab2fcb64ddf772dd2fcdbfcddba414b0eaf42ad486ae7da3131c0e327a12c996e2c3919970de3cacb97832ef75d1f7780f5a4148947660db6758d98eb8273b97258cc402e321b0772582c59a299176961dd0b12be47b69322456c7f8c64828a56171c1371a69c71ecaa6706b01f337b73c62bcf0abebb441e12d99c92c75209caae92f75b0ab2fd13ce4ef6df131cd6a9710d0756abc58147ed0b345cd4bafeb1e97d869bdcd2fc8711ad09384a0d187889ec96d4e84a3e37625bc0fd7297d50a0c65d2e59ec5cb115b9fbcdf3bd7d6946a60fa8b14b9d4141a4ad8adc23e433f9a2abe75766d377b17a13f396045d0ab0ac63fa5f602e3c7e0f5f2208faba7f0ab2b34c00a327e259df8a38ab945332e19768c9592c3b784fb7bc6721a2192eb794d55741a9659ad20810b3b633a1d210939b9edd3e0548af85f68269584864e175dd65a072bea88700ae4a8a03e847d43331301a03184b46b83c00f2fcf77b1fb3efdf05128a6e291a24f4e7ba0300fce61387399e69af1bea3819d45d1d9e8983d6ab9466253f666f0c64da09f726381ae1347dab8b635cec5343e4a987d4fd3430e937a987c405fe6380ea1c91ec574c91dfdf59b0ea82bf73f55a0386e62013b9a93411ca5552048bae857951f51f513344a4539ac725a51a3716e4c44c3f98f65fdbc8041eee22ebae1358b2e5e9a9adfb51f1e9b2e997a3f34eade35c9ae01ceb59ab79f39ec33d84f1a76f0684af020d7bb4ecc0256501ff5cc59989a7ef0bc313210f494e0f3a4d2193cebe7af7bcbdbb072cbd0ef91b8b2af4aa915d2c0335d904e4515d3aa9105ceb4e3dfcde4784935dcaa2ea30fe69831d96182d3b1dc93f6c9a0a22ce513d13380e403156427803de79cacd53ad1d305d829e42c0fca1149468a12604ca9bdfd4ae8649ff29e78e6676dfc213d2403c24b559fbb0e22db7e0b1a03c1f32e90b385cb5ae19e5feb0bfe9ac855ca5eaa210210945af7ed370828d9617e5041babaa520576af81c18b5fe4cd3e6ecc985ca82bf4944744a0d0efd693be24fe3ea8cf164af7ad0e419427c9e1b8a4ded9082c90c2fda8923578d099edc94c2452f973828746b1ee15ea63a2b379ae5fba134fb8063f1f55486c854ff21de7b2b4ad3ab48e6b2a07434d61fc1db16e4b64ab99518e8030b52637a21757b07c57daf93b4e2371cced9870c57aeda7abe2bc91d2e8f560dddc51e51f9de2d09dd76b22a042a5d66c0e48cc78414e9c9a28c5cef920a6050696de90a1c4b4f5009114be764797e3b27d3c179494d68f3564fb24cbc1d5ff2e2e1238698126810ec55a7e84418108999124fd5a6f81986327dda0d576219d4a92da5641446ab90b8d06aee5d780d8d274a273c76bf1b9cadabd82312903e1f5f9ee37a07ce4b10ba758bb1defb71d3e6b5c054fc6f20b2302d71785178031c175c3c632bd259d2d771c14cb02de9fa2ec829c9c42d280e1600256a3e7c663b7b9162cff7ae98e71f1fe0499b4abb998079d7668e3974b23e063503f68d7c7f3e924dbe7404a9866988564d572e03d3c27a5904d8b27831b04479828479d7190b6f4dfe9365812c5ffcfd83d0a261bd6ead1d9127e871d8442fbcea1087ebbf5e35d53e9735465b4ca72b8ac0aef6816fe4c061be96b68639f8306585e96d16534b03356c6137cbe914c270b5b6fffc8b5416e416903739e71c2c50af2f26e991807c3e9add68f3de7daa21698bca21001f39485f5de76a2fe52ed31490276945bad451e6cf252868e777f8942eb1002977ef3e0fe13fe01f873e0ed060ab7ede5414be1855e146d425decb059c988a2cb326f03edbe9cb8225d0bb4dfbd341e80bed0bd4408c4f41151255278b2d0bd50ba42c192a7b1835e9b5f26c1b88459d092c92293e705d1d12be17783111f40964801ee8f876d4af1ec8cc6b0c607b1719df130334f4eb63e2e7133106e81946ff89a5f6559c838455a310c13a8642a78a991544e43733006b58fa078648766c63078c698c891e319600b6905ac92135c39e8c1e2e264827aa55cb27c861a4ba111f9a79fd1f477c5cd225e0c08b79dc187d6ef89149ad7f583f0ba97bbadb03d4c486566d2128b63296c7aa4ebb8877b4bab41b33d104995a20f2c437123edfc838a4cba5fc820ef2525b97ae277c689b39042f168ef18de4230611431434bdc9376273b5bf88d81b719a97578d525b13ee40592827c2a76e329ffa5c4f59042cd496e7562fbc4c3d29cd2f303d98dc5c9bdf4e1a71a71122bfe338a71b7e22046bce2ff3172fc6897fb7d91cd1cc3514b7519dddd03d72983b309615df4ad0e409b9e067bf13c6996253607cf8c7e925424842256ce26dce9a44ffbde997578db380a6354d5f04403d3571a24c824af958897acf269e79004e1fbccf528228b5e6e1007c7aa76183af237fbad06e9f09fd81575ea055ec7a7344846c536dd69a50c9f5622409fcf59bd22e79fb0f1ca1c73ccd20eda55a985f0c220894d045659711196af4fbdd8644c00692c529f885030ab654a7daf29a4c3d3bdc53de31e9d2be29a43f829e86c98b505aa701d178adc073ec6e73fbc31acc88004888f31ebbbbf1aa61dfd24d9a4ba75ff44c72a4245f4b2220ba75a4fb8a670d54914e65383d8c4aca7167d23d411e106b808ea4f9bbddfa1b4bb661b3c806226fb4a461ff147a86897e2e6b9883cdf1319947c52f7eb8fbb8d0b78c987a0a1fd32d2c36cc4f9ad7361c848c225c490abab15568d5dc0a2186b13ff0d2c22017cf37c08480d976078f4bc478162ccb168150a312f99c5e2952aff99d5c38dcc2cbbaca2fff79ba73955bfe45c25fb494cee4dd00dc110e6cb9cee9ed47115ded5074f34a26fd6c4408be714ab2e7368882eaf8924551a4d17fa50c34847b32419842fea9a16dd31b42efebe57c9d762b6058a56a5381e4c9884c07b146574d12cb6e68783aa27cf755b1b2d503625a692feebc4039304d5e376ed3e3f1440d42e126c25257c5ca38d7342fa65751c48468d8fba9dbe53e262cddc9e4ea24a31ebf7f70535365325bfcf66d3447a32b60236c35e644feef3c110a36612f0d257d89a1c16b02ca3b4c8bcb1c84a6a21c00b7b1db214d892e96f077d5f8149653bee3a2ba0cfc93a0c75a8c9f27335ee3ed4438231d4ff439305a853d1428037087834aa6a3f1a6daf6a4bd6ac6229adfa9b85019c03e29149dd97135ace7aa23e0725b6271c30c61d5a5f56116baa0d54b6140915d851e54a1815f43933bcc6e94df2a44ed0f8b188dc0d7bf319588adc68a13200410f4796dbf2f38fb38250d92046d35d3b3d5bd6818f345f07fa983d6140aadfad08b9f0966aa2ffdff094749651fd87215e2017b2fc57a14d9d30d73602f5806e46e6c00d578ace76579295e38cb6862f86ddf96fb45af93a173ccebde8af3c1a57f4262870fc4dd84000db5e2838a9ccda8f172a164dae66ff709a308c4ef57c758434ac39639a09610acbf55c8187dde7c13cf7a075b6709205d414e6275e95109652a994ac28966349385aa67b28cee6844f50f59cd299cd47668fa9059921b360f0682264eab1918078dbc2bda64dfac285762ab2f73e458e332f54eb36c64be1ade53f6e01958a962aee7410f40e6061a467033dce577dc1d403f1dbf4c3e6aeb3808f71322b7f470e8d9e45f7ae6309317107006e6c9303c879679006243cfbd82b8a6b7a5c1a92ea7baa2f4a72962520daab48bb0e13c52962c64c4c57469d55881eecd340a89162a8d59675a0e7b8d2fb9231fae5abb76488df937824e444d384f085963254b9ab82075e29d371ce05b3cd2241ad91045a9f8ce869b0c2231dcee45b9ad765166d137472f6aa9468fd9257693bf053acee07d7a42fb5b8be2f7a1474b2e210c5422572c8b08d6e14b8554173ed1d398490826c75aa1af58819b71794f2d21d4696dc04a7c80e4b8ea5668a5f72ae0abe65febb08d16c496ae652d41a0b8f9562101873b7a13fabdd5162d1f329b773d92f7b6a05555e5573ee7b85310a61c49fb43ee86d5a8e5ff39e07cd734e91b48d463c6f4a3c0dc8e62b325baeb6ca6fb60749a046ab48ec7f8c0759e57abc27e5f8a96bd86443e0529808a5edb5e2cef6014276428647a9550d3f8fc735bb985a52a6a53ade1b178dc4220126981660a129f620dbe1061945e63a73c79162525c0527dd45bb14950059ded2a8412e832ccf8ae68cee58b94222ce387e2cef112fe3e59a3128e4847cfdb114aa7e6bfec6080a911a95358f654f3269ea5da080ed13a459239270f2332461e0fb007883da1cf44f3a9c09c3302f304db8fb62d75540ce64608faada2a899ce690a3728397952d6271c5ba46662f2cb7ea028a486e2d4c2f71d17205fa75163b84837b2061fdc2f2608b861ec8cdd022d6129d91a570e78a0c7f86eaf199d738fe9bbad54bf7a2764a5e75f047a5baf6223ce03648b283ae55150b5230ab3af3698cc7bbed1c039aa87874f867516d06614ae36c72fb599f7bcde502b49989e4d62d208cdbec1c5c8946c6fe43d05246adebf8aace1ddfdfa8d58b379470b55d95a4c1b49b53a4fbfbd4c47cd8fc8a3c0ffb1ed2e5aacaf29ebcf3645278a42dfa568eec58e32c4c1f49b9ada464cab89988d3332842f736ead60074cd962f939c68d31c07c02bd7ba405a0fccd5b780cafad880efb1239654c8ad70a6788726814d5c713b7712e2a532008153e287c12211fe42da9a592030c15643241e62314b0acbade5b5e25afa119461b7dab121f8061f4d12c6fbc0565cb4dbaf55d75f15104414a5cad9b4f7ce8f81877c720075a966d252cf29c66e263500c20484ac826a80fab96badd5d8a6151815c704165d80411a9b4ae2448dcea7207a913b2f57494ce1c335390ac71d5e569093e72f27724fbe6062d395ecca1edb833ab36bb3ff5820f603e46c8709b696a38ad40a998dda145ab4700538c00ef0024d414ea7a6abe9c3dd30af0a01e8c8eae19d0694617acb5b122ff8e750c79ac2ac9a25da8a1766ab2c32a94989203e42b4830cda11126790e3323dfcc67ce0245344b27e31c20ccb35f7d35cf3b076c4b476efd44ee5f15df58eb5ea5c8c4777e94e23990506e567444de878576b72c9936b9313012f7942acfdd49a803fb8946ec4967420aa207c3e83317eb701b08e15dae713404f031d2c4dc076dd067bb0f23c15225a63ab7eef18137072d6a0023fa3061cea2355d29436c413cde6c22945aefb34ba8dbac456b7ce53143a629a8508c28a4429dbc45cd5e6d05916876367e553dafadcf1885367e01f7291f12cdfc3968e7d6b58c140ba03ce1b6dccc432698707d6182345aef5c5adac45f0d7ea3a9aa3f506d6a024e00e718c530b86da62e9434ef35f5bf9f8e83cc86e5e0329f506b81661196478e22f1df765666edb9200edd4fd2acd6033c5fab8769361e6e1a7904c1569cf14cdc629e1831278e50b76a3308b7f7b0688563124bc82cc9d36832aee202a4797c7d3526810de0da63617df35f4b57d33375ed21f988e8f7252621e3e8e6a3e852e41734f27eefd8c6c02f5765748655d3e5f23228057835c8c406450651fcd92afb425bba61fe04209a554206567f9546ff6b4b3ecb14cf2360a4480f3b0401914fb11300b90e0b58f6ff177f07da18b5c16394447a30e800a60e0ba156384dd97b7c66b5b44e72ef63528d9f65fcb76ca07444067084868aad3394c14e4345940ba8319e89878c18e02b5390bc6aa81687a0c45e039700d7243bc25343ab52ef7827535ded4d8276c03cf39d5a8605d16c30f844e30001f24f2126d21fc907e844d251d3b3a3986c3049419f1baa35975a42e3f810bd48ba14fc52f419ef571104bfa182b7d6f11622a4fe463397295cc574a77d12aa773dbb4f8329a6df13bfc36692a6b7fab7e7365fafbf79f4b5fc8b47eba5295f112b99809ee3c7b64feaddb86c3e8b35ac3f56668833467629d54d037dcb268696544b68d293e7709a9b067618bb220a3ee6de4a3e4028d131aa3e66693c8d04317e92a884b4c70bde512248aa87ac631c3c0988596c720528e4074d0f2b0f64470a3779c99f4f403709f739b15dc25ef2d7bcef74d98e024f3b3256875b4892644f08748889a714e8939cec067801a8e070132f046d4f046536b68953cd4819c2edc476e697b452b77577a17aea43206fd69067f516abf690416c9e75d1324778df8f2c75a0251fa008ab6fd8affe9d9d3dbd03890cef33dd43489e42b672b34a152a2a568ab6883b276e09bdbd05cb303af17cdbde2a6366647fd492f17850ad3d80c27afcd3c7f5a834ec83e0318d6fa3fc978962ca4955fefa1ffe7f1144e42276a77e5bf88e1026ed590ff37a686cf1b86e77275bbe64dfcf79a40fe383d623054b2c7fa248c235028292b619f8b28828a6f207da75faf950375853f9b32d3a3808c728fe4bb33b81c36c5391cebd16e560903ff10696339b5efd0450bfad90e3345c192046f120f356495c291fe267c74d7f7d52b33872e3ec3b7696f2a5287fa64872e21f45ccce23836efcc9ff031ae6732153499096dbaf975710e6061c77897345c5cb2620ea0398750d2130860f5c60819d52a09b1f78be8b7630c868b7367121bc52bd2686bc0ca49f03e0344d9da361aada36caccca43bca38e1db8488e5846728ccbc4f9c415fcfe6374f01b596fcd403f64466a54e8a5a52a765b819f87c2b55b3e86dd80097d49ff93ffe0fab1ee2fc7bd4b50328c26814780fb992b78ea4d6ae8b2c864100058c584c37fc2cd049afd85b28a0e64a9ad26e08167880194785c7289292888b6edad055ce91b4b2eda59eb858f7152345fcfbeb84e34ce0dc173ab75b9548718e1a1a0dddbe95592ca74247da243d0f933c30f90f0878dc21be3114ed50d302f625a9af2bb6e14d62212f124f67b5e891256b011d287b50d84a153695cec013c6b7554f30737b63a807d4923ae71c4c4090094d854a34ef6a1ec35e3eff1448406a4c5d28ec2205e53b0107384caf82ba396d8e852aa828a4c4afe2b0336d6adf5a4d1dcc2a28c88b198482c8ceabad8fe89260c64926faa33bc87c9020e900369590e374ba5bce58494673e9a5a2c32953eb2d4e58d705d5095bea59f539c4b75ea99f757c53da259a1a8a9d0411f83ce0020b517ab7b61c34e74d56aaabfbf754d29e1e1f201144ac2b5b345c3e4ed4f39d2a47b125d492fd6d0573c6e42e50d0500c0bb00a0c7533972a6a43e5011598ec0fb3120f155f4efd82388018325ed6ee5f450a5dd9cfb414b4e9a8104c6ec4e81c3f9e111eb6a6f9830cf94aad7a846cfe895d450627aa921860d342e35bc7f1fbefa2f40ff3387666b40f35cdc4cb3c16cd381bc75c12a3ef34ca3680b37fae4a869d07a6d5339fcb39ac1dc0d17e2b03ff383216700c2ff38f5483556f179ef9bdbe6fb610189406aff8a6ad4c880a3b13269822386313c23e08e55491c2f3aece16f82252ef52ddb5b35e148466d2b8ba78389024796d88170ed5f3328680a4cf6f99436ce626ce194fbeba12032c3e5c884c2db2358198cb12247a4dd7fb67d7a6b53fcc26f082510f1cb7bb9fcc7138e9c1df465eb7be388d29b50aea3f0891e6f99bae38a563e9312b551700289df6258bd538046c264c38e17697721607ee72032ee8e54c1a9ceaa2fadfce35407d4702d620ad7037041658c1992ebd86fe0d2443940a205f701cfc44b7ffafd1e22e7fad99e7b4e741632c663b083febd26d76c72ff757fc58e1b5e063e5763b8de034c233e6ddd353b720babeb1f16132e6ca02c81e21cd87785f1a68622bf67e75e3c1eb0cb6f1280c8332315c4189871ac43b00186acabf51ce912829384aca0c822b6104d7b7f566e1ccc19d1380ce1656fd11828695910191a04a85495d87591638b66047e987db4c7c217a1aff97ab17bc06d6ad08992e9b426e2a08df1f82089380e6ecf76c307c9ccdcaea8c7f2565a783b97ef3500962b877de0eb054d3f40b84934f9c6d7ccc1e2ac0fc4295b36386eb1273e6c5f543b170ec4894ee2f887c2359c0bfbfb8df68284693ec0a712ccca09178b13129eb024d9190d0cf47ed66867744345da20331f8746668b3d6df4be1b09f95e02516b1915cc1a7921d91bdc47969eec49100bfcc36aacd4e3f6d42e5b39a7f10e6816aaa82842bdbd85cc2e5d0c20764443910d3560f529b9b0871099377ef10754979b93c97041a1d6066a178a4d69e6add81f6e8e915d7d0c3a19bcbd5672945b1a0366304862732c0262db59d51038365cb1fd086542888c4972ecc8759472000428470b16ea3508b20f27921a855437a2d2f44461944186202bdeda8de39b948c6a808989ba43d3b15a04c9ab4926f13e95443d45614c51d5e7e3b024bf332c7c875ec3490067c171a3784ede565a2fdf46269a0b3c3ed2ac130afe0d825fa6ca0e6708b6edaf4c2fdedc3d5376e28f82a8a877ccd5e309aaab4379d73541f08f2030a4da0ca5698f64d814e0f1dca502c605f49c28722a579f15565026cb408d7b46612bf5399c65425a4da80be4f7a63bfe62a45a4b0c3031fc2cc419a8889db5f24fe85ea816ff87113621098003253e00444679b1db8579cc9240c89c5cd461a0e2bb9ff1c77a9f20345c06de8c0fdb4baa86fda894231dc9f12fb8e102394125ca99ff233c51b76d202ca99885be0496581f289ff0c255e3e8526f47abf6c7a87d2fab06f09008a31cb0a27411ee16d221a6ddf12ce1543fc81193770bcc0ac0411ed0f89331901eeee63da64532328b412f580b30f848ece912a65365a4ff4aa7ca0595b749084bc952da547f806350817b5026eeae0006e6a9e903ca1bcb1e2f6d91c6f905ad03b80d922e2413d067a7bb900c2be2f0d440ec6d5b53eb0cf49e3cc0eaa3ec23922e500c30e976e30e05c0fffb32fb734704e5a6b8090a9528f5ef9b0e2d0800ff1b55899cd82fa8a84091ec81384329148696cc99bb6cf5575af993d0e59270fbc10661d9de54ab96bbd559bfef1bbd1f63390fc8d29891893346278bc4d74acdca88469fb975670282cc53ae972bba622eee5bdcdd2f423b26970f02cbcc7e6d61507cbae14d3c1aaee71e6321014037c4a41349d72384d0ccc8ab846d44b5a3eeddaedd02dbe81462a24d936205d86789fd4c561c897f55ec45c6948cb9c7a5e0f540ad2d46136f53497912b2e0a626693c527a9b15ff6bf496c8f1001835c3e273ce94d0dc4710f9213714d1fd23c6f39ce042355557d0af770468a1e7e31c6df820980811560ebb100e37e5abf27cf7520d81b2b433b2860f2923238b38397c19663baf539ebaaf5b2df1cb95e4418d7a53a3bd17a926fc31b39d244794fc0d449d0956ab96950bbfcb7a7c5a5ddf80cbdee1f0f71841e8677c92df0ce03cd8cc05c46e216326d397edcdc21bef998ce5f19893e883a08851dbd95aa6d87dffaef7da4056fbf1115a39aad913ed44ea77c42b1e903e11424b4f9b93bafa8c059d379c68e907e775a44ecfa7060aed8ed3733462ba9498c9b079be7e9b0178a4447f70185547a4f9e93861a883cb1c263314899e4b61848c86e078a0d2bc06a29d832db1ec3c9d1426a9cbcba29d6ab04df23e161584d39817e792a0f4205f066e60910b18eb8c29ee3d4e9b0af1d95c218bb792813a478622705f4abcf0c49e189e7b8704ab3c120c7b8034c495d4ab1bf5eca07fb5c70866008d80c63b6bbdba1343f6f4fd2d811c927637180796456c80247c25b982b085b094ca8caa4ad62b0fce47e50349305765ebc2d682ef718b205553fbd3c34293423678114ac0b9b0a60cab22f51d5746aedace914c33be85ebce46a5fac4825885f3880b3b2af683539bff2c4b37ebc9368558fd099c59e09d1954ddb7f5dc44751e2e5c3c8f736d138eaf88549c414dbe4e626ec6d2487cda72409bb264067414d97b3ad71228b2ea84a5860ea595f66fbf13ab28d8e40156b16afb8b3dc1dfe877f16818ad1f8a18895537503aa8eb3848ddb33e35c807db4c10b6cc4927e1f0ea140b0c52a6412f8c146a5a7850ae6e0076f98fa8aa5031beca975f92a08bfdf799a4cd4bf922d0c026523c83b33659ea6475425f21ca5ddd3278633e057e64810b71e1cbad074484ef89554b0e5e556c39da21fa9eb561a24a42c76192cbde08a5bd5ebd02eab89e18fcfcbf45e90eb379af373f772610f7b49c6dc200715ffd5b23eef607aadb0fc0a60cdfc31bfcee251ea7ec904190c7f8492644d4e3806593eb8e20ae43f657dc381f41ee002a2f2572a5aca99d58d3c57896ff1e82a581a4ec5951ccdbd35439f9c19796824be0ac0c91bee12ed96c16f15b7c5bd6197570ee62963e3bcdcc69a978067236f5f8205f6ef73cb8e489b01f000e9c8b42eff11680de68ceeb83dc3b84e931e55cd221056f3c3a160ab456ab01eb9e7198c2c157d18f07e00b88dc8e425b2697ea45e3746c78dfe02e181664e48ae460297e87a26d17f3fb5ec1a47b8c184f519ee6da3fa34319bdeb9972dd3f4243d6b61ce0eed72d1394c422dce64bc299df90662e3c24d4df135b52c34aa41dffb17c43502f4e1fac803dbc3d8a1984631a06f6a274cb3814b98d0c8a7ff377401733592e86048b8a869e6a5c914d3f716c40d0d2721e8b892ced8d422d202162e6081421634a014214b6b758443054ac029b489b61a911acd2e84f6ef41dd88253a33d3c1b3f781589db0cc431d7ec37760d35261f07df1d4393be05e0ac3d53fc11e25ae2d9c08c3d292204052925172201563533fcfa215f604f80418f63da92b7951614d201d3ff3b04b7b6a0150eb13d76419478aa002013a83f1101c7cd2c839900744a5532e85cac6be3265174eaf4121f3a2710ce52d12ee48be1f62903a3f7fbce3ff92709ef5bfced4f915c56fc9d41a72d81233e977751a8f45ca03d7a91df28b82527e2cea5bbf682daf78e27698aaea1da710a1e3bd7148a151a50b81ef0d2ee3c39623650d291e6ce14ea64f49c8442e197174df9a70c34e92c02b5f15008aa4d22a2126349050368edb65206bbf15b3ac711bcf0455df0362e92750a1a4d5355156267e025804ba4f10c6d3a5d87a213a4befb169b4e610c8016ca9c912a8aa803c16b6a43678cf4367d4728775edb6efc91daf240911f93c6a0da6dc8f292551f181431048828dc4eb86c6c456ee1779593224caa4e7ed9d700a396673d55502857dee06027704acee6e32a8a7951d58d042003fc86504899f2c31d0542731995ee9a09f1920484acc0b312d000a8188d601d37e1e43785964616107d43200f57fc68f0ee82c8d31f8ef28f39791ff8362d09626923e036e1a74eac10bad62ed2f53abca6d32f54e45b86da4fe58d54b21d84c9826df5b5357b02e8c752af25d29c9ae7441e495d6290cd6c684a53aab28961728712f66b308e85a14101553483d4b2a8511d7271896905e7318c5298b1c20296bc761e14eecc76e8021d511c4d36043fd5bc373027ab8e8126d823cd47395d4a8060cb51fcc15bff717574691b4378cb219029a37e628625ecb1ff5be7644dfa192204343ccf7ceda091040d87bc232418a9c3809a8538bba9d5f6c5fef3fa5a0fc631841b15d6055cb804e5a9ed93925f74b680479a1cea6ae58da1d95f93ca14dd7af161afb9f986bdc04c6ab67d1472fa238e4b470b84598b93af5aaa2c7125e17f6a472c654f1ae1815854e28da98bafa9b8914de4e80c1fe821ffb83011ae3230941f421dfb05f8d851e6aad667bb06feb45cc0c47d5e4a838f27e5868368c7f3708a8b9d57b25a372539f3da43d5b11f8e71ed3920583cb84cc99a605c21d24831f62740afb4830145ec445996ab9eb1ddc7b361a63c7a07508c2d32ae870ce5c3da3baa5176c10b512a0c691bf395dd35ca3644fa0145f88e6530e03264de976b45ec95591639ac2c67fa46d582daeea4bbd71acf0ad93e6f8ef9c2bf4432f5620dac7dcc1000aaa5f409abf4b5635b69367a02bb977e817774273e549c3211666306281b64f1d88ad1999d5ba026fb60842761c7992fc85b4d4526ed19c3015f4f3cc1671e8ea54cb3d41b5e1b6aa93499ec227d16668c0829b8278065b180bba0904cb41137dad440a20a98a8cb3e1aef5f29337e972440e7a94d58b12c8b7ce0a5325d776adb9e4278916de933d67bfcef2ffc45a05ec758367f67e3cee28b092609e5d75dcd8f4b18f981d8ca061ba86696e786799e4e2f8490bbe5c241103f44f433651803851c6f8c0a70fd7f540011c77fae446d3b2ee52cb660a3193f04585570e2afa664132eaa804f8783a07e051018dc6708c60baaa0640a4034f196d4bfa6bbebc27b50e99c106ec24ef05c4815dc38209ce364d0a8808e61b1bfc4eb8911820a298ecfc47b40b5394c7302f1744034166482ce7201bf7b48f3fcea0ca8c0c50b9a2922d064392b0ec9309fc3d8d4dedfc620abe4f9eff4694b1c75a61895e7131fc32f5df3824bb9d0fb21ba6cfc4f03ba3127e508b441b70431b36db5205be68576f48618fd131b0ddb860f2fa244c12cde62fe46449d6917e21ff24110d203cc5e8e8a2a8a19c66299618947d63d75181e2cc257302ff3c0ae5e76baa94c2893e0b960189c01ad74ed273b7a27e64f4b9039e33fd0fe27072088da9c071057304a4fe77fc6ccebbe01c7dbe18bfda058e9874a94b0d5dc090e786c5c4927f9e95f0673772a15137b4ce5e2459870bf0672692ddf46ddb63a204e31d07648b8bc0f7aa1e33ab5ef79ac442e08409d893c58e6a5cbaa2847c85d02adc44c91098f409d3d30c126a1c1930aa691b50b0ac70b823fba749ff8fa6342efcfc5dcadaacb9c7abc1f4c7d83b7025b36090fe6670ef363d03b9943bd61b812d455316f6336b1b3379a2dc998378c2cf22397b7ab545fb924b2980dbe28b4a0ccb409ea5d9098d8ec4559dfb64a273c30eb6f172c7e51b36af6f3acca33238d1d1cf925b04a4386290df1940aa9f5e6f515d2889620c1799ff7dba19ee4e9bac35f2eade63d5d48127560b34257faaa251cc1ab6bf94d75c16ce72ef621de23bed81fc5a7cb87251edb843ddcfac2395dbcacbd0272a39993e151ff3c7d1c6fa05c03a2ca8c318c1edf205e5a5803bf4250806df48906692dd2c5e7aed27c262c67d6cae3230597d9c34024ba5cd95697345f33537e3aecf2491cd7001bd3c005810eb24c1f69d6e40a9087f8ac313536408e453be3c9019b7c92c71173559ce68c00d0d7f1c17a2b7dbbde3aea4869d2df33400edbea4cba0fa524bd08d8d4c51368d1d5a27da90645eeb877259d698e38431f780a5a03bb9e20732cbe03ada648d2bb8a6e19784c7591e05658e4da41273fc42f0be553d8bcb40c2430efa9c3c06c19488f013251604ad3778a9911012ddc66da37adb11fc2d74ba38bcb0d0084f1f023a12340bf38b088a68a85dac4c55795eb0f9ff4a9a00d0604c38380bd3c124ccc52fcf3e7070138575b2d0c1fae53f0d0418b9a3df1c701032288ce173c371496dd821c14b450d40590908e04e36800a6df3f55eef445128071a10504403b9798aa9fe218bf30b103a3ceb3630b676eaf7481f190d944e0184d7a19ac700adb67c426749834c0d44c020fdc7406faeb8078748691ef0ea1e9ddb75f8f9803619a1ca2a60bb515f997bfb90708d4e506026cf21431ac97bc86e0a1a65a768dc83d5fab9503f1386aa8e61ea00e6a707b102f083b401648469fdbd19cbbe6ce12c100623745acc54274d56621285f2a9b3db9456aaff738f6d0fe75aafe4bee1918b4afce61d9f307b40dacf0841f19538f8450b81dfcf9d9797ff7380172bfcd7254b97cf3c9d6a02e675a9a0b4995d97b847dcc468b785817469e5323633190ea64c52625f033d447cb32c91dd56011ba2c9f4a663874e16a4a4ad436c28fae819e8549c7654a079fc3ca995a1514428c2bfb78391d76b33c1e9228c5a7ba9c62cbb4e8c0b444b4d96ca188f4b8aba736a8ebbf09d45fd625bb6faf0d873eeee060bb6184dcae77e9595cf42c6c4876ccd967f5b2393f490330c90eb598c66f93716054094ffc5e34f4f51c18016de499742c395aec2d0023010d742a10b07fd1eeecd891eb66d29a0bbe5f28786abce83094180eedb624a8fce915bd1be809d0ebd8215e16bbea0199bc790e8f28625a544277767a22dca4a16cc3fe3d346417d92e40d2aca4ddadbf1ebeb9e60ec645a095de486a36dddfa66483535c42d3a6e784d358a58c9fa32eba2abb11e1b81189a4fa092a033435951c17cb577f26ac03a1900b14cbcca24fcf075f1317c0d4c8d0b112fa017d3c4ebf7a5c20743edb1e1771751ac75d69e36ad6de5cd74d087c04be71d3e4d214abf2e65bb7f56e36b047d09cb0723b8ef0a7f504e6340c49f5e1e0e512ad561ff2b68efc8d7b456cb190945ce739f3f9fe07837626401018e6da29b9807e7054eacf2b5d669bb25e5382fa10cb28226d0331985239fef9621534d521c3fe54f080cdb186790ffaf1e070cc95fd29c5a2512cd1fc06d570328925f27f5142b25ed4aa8cb5c1ebddfdff965a4f44bbca4fda705284028fbabc04e338729817d82a83b2f90b03eaa3fe2be57621a0a100c182b7647f7f7d2086d9f6c2fe8bd59ed396ea963e299e9d49792a9f73a18688b639a62adffd9728d778a197e2aed79a769227d7633a742871f784b48bbfe87bc8f29c339b654606999df3db3bacc3cc67c2bb25310a99d1c2a81c4fb3c8d934a4289781f0e76896acfde1c0461929b1a19ff760e253065cf74d00c9921e7ce4577109676fe25a64c2c9f1151239156b722a0233db3b6fb9f3554553ca86ae8fab787521436abdb474ca3bdfb921588e29b4280c969329833d889bc276f0f45aca3130c249c5cab77ce26891f2b6c1598155dcc5d1bb0bad861dc86ed535f281d88a1fb4e170e2e8ac328e7869d515d6d52d0ffdf4409a8dcd167dc0108ee9d4fda88cd51e817e1a7838b0104c70214e83f8169cd02a1e12c6a42956759ec47ebec762c1af4df42efd4756d8659799d6967a952eb246de1906c28f80b750fa44c38f2358a56edc331816ad4e3afdebf51199855c884c2a32637805628473c793f366edfef064e4c3d808409c025a7b11f443eea834bc22ba2350d1b9f9c7c6d2f3d02b26ef30098a154a40dc4cabb2cddfe5d6a1534085e0da3db8ae44bcfcabdc0fda745e5047f5d11e8b71dc1b64fae3aff5f40bf8d56ba6d854d149c43e4ea7c611ab754c664ead9fc1f31802923499f7a06edd8aa6aa480936562664c556df646e45d5f4ad0f034ff16df7904fbe8f082f161c4d800b804b365bb0bb62e719a2bb06965e857d08be3404140cf4b76ba093ddc50d1e3ccf32a1016519164e8000760b79fd0bba8dc4ca2d20c15026b04af4c3e6d16fe2107a78cb451d19f0341d4ff35006762d4eb8ba2151acacf43f66655e16f04de8643b596c13a23b2792bc636687afe7e115c6e92ca3a82be25fe7286929f90ff173ef959cd65d0700470c0f49718428e2a5fcf23a0cf5580ec28b19f708c7a46dcb7e624ee49f1108b9a2177b744468c447d92b787506a759ddf4f49d482af2340862d65fae4e75fd511d5e6fed89e4b5cde4f4289a07f9996fd90b883caeab2f90b31f04fa0117c5148c80ce22c360e8af213fbb25cd309e61e1f3a4f8c5c6f89585a06f81885f1acdf858a8d4660741853cc59b201a07935942aebd336bb7e1b4eace4914635abab0a83e61b38a6e1e275c4f155d973e6283d1df03cc95e3630fbaf96d9c28cfd5529eba442675fdfd417b50c4d0cdc970d934914c487fceecf79e6ee465eac33305267b89e4419eb641c7880f804284da67146fd3996e5deca09ebc6449c52b3cf847ba1777573953367a2b7ba4050ebd02b6c3a2fcd4dbec749cf542e43baece4c5a075a393c4d5a27fc9cca1d0b5baeb2d3d67d3596e446cc64aa7fe7539d3378f64a75bcc9e8e111a1cf94293ea97b9d9ca8c161ceac8435e019b3939a1cb1c72f747c99ca61caf18d28edc06f0c93eb74d7636f4b42518ea821b12c882e129c96d55d4b2efc5dd363d2478675772dbaf94306ff6f6e1667fc57ef25d4c036a06e43b033b1bdcec073de9ba52ca6c9835a9c006ca3665b43d23414f24dd4216a9831810c7d17332470eaab8fd4973190933a48f0a5586863ad9db8ead4bc4ca7b3194612653f3acdb75e30999696cd3da132f83970265222edefb2f233359ea2917053c29d06f9eea7ea8c7223f29328b2e2d2fe29f1b401223fb573013c1a48b837498f790d1910955fde648d661cb1c56760762334f4d87b1891b913eee4a27f62061a5b3a9280babaaec7dd554ba640d2e5d46009e85df4fd1592e60d4b51987dcd8bf14e6f3a42e8a116ec95b9389c9642500a380c484b3f5b2f906ddcdf43d5629e9bc6e86700f415b2411fbaf8ebf409cf2356a109f79eefd105dcb1acb21f752a46e260eaa6ed42964cd34c8f05b3686034379ac958d38a376ddd96f41373fc5126f6f3d0269d7f4fb5e3201945722fe23b4fc587e7db33cfff9f73cb68d5912374ce86c12ce3c0f8700f8a880d132b42b804440f3a11a129bf16815f951923d0f7567d519be8473527fc16fa5b4ff41df7159c5804c4ef7df74d00f403665197aa7e8290b6a587c883f057bbfa37bdcb0722bc44d796d5bda4f0a6f33849ef4a6faf580a4a0fd2bbcde75102f7891a1f09a61fb112f3a86211447e8a3bbde353b41a8bdd84438c0055f273f9c3d1974034601083ab7f6369c1e795a6dc0887dfad16f891d9a46d831500925731881ddb058f76dc7e2241d26731a348cb6a3e28e582592c35247000c01afc140584b2f839426bafdbc0c46e05796dc2d48698025b4d6c11aa706400db06768d9366ff8307428e45c40ada0dcfa3a6e487ae4c60801afc2bf161267bcd327c57860499020e9e4a3e963788c50f36fe50d058a87c34a00ed5e6556969293742ccbff40aae3605ae82ae600b5c53b5252573ffaa641a4d62a315c8ea02a49863d8afff288bb800cba9fff792d5df716285f03942b9c5b1df916651555ec34c15fb727136abc603213aeaf63a5b5aedb5953f526a3a49cebfff0813b8d172ad7d4e31e16ee9bcfe3652d82bf57b0afd075b8ebbee5f6f94e5f880ec7a27e08f802993d60b3695aee70fcf639a4d6a6177f9f0b0fee68f65965367c9e336f98ca4c97097385bcabd7c93d9ed9e1f0ad96c54cdb55a52e3549fe82ee69d4c88b51b0bb236f3fd5fdaef1bdbe007be280081183df237f8c044d3692df706b931cd647e4295c3e122849960e2efb50ca6183028a8ab48741be3f7f2aa60085dc3496069dd3f97dfcdbbdff9107a9c795b1cc34c4948e3423ca48f4d430fe4c39ad451972b16571b86875b2190264fddae84427aaf9c297c02e19ef2e505060193bfe0c94676ad3e262b31106a3150bcfcd24291afd9ba2274525e4aeb81a26843b7f1838f0a844b086f94053b6882f82a18eb3845cfbde27f2234f2a572bad7922f6893368744f05fedc2d65841bb9ca0f6f99cfbe0347ae8b2ddd97a2a4b508d82c929ca06c28b3f275ad8e1f99c85f79201803310bd863cd521cd701708231e17742ea24f30c10245b4b5254df8406edbb5d810351fdf84229e91c3872081d1824626c85890b781641d57f172e4149a2d0e001a23e4866b03e2640180fc2a695cfdcfb2db3c85ae63d68dc92c54797f06e18a437fd12bb08c598796061bc6f171bcff279808be54de43be1bb585ad3c6a67e681ad919390df075cef1918e87cf348578b29562a674eda21bbb362856dbfa7f6256301a862237ffdbacde0d95a3ae33673a6de215e4f8915e49de02fdf88f6155469a2728cf9957586074550cf002ced50d6e4a189ec1aea447096bd0563d7845c005151f2b466fd949c44eb90302724b99c6759670775ba7cdd3ec15e1f8217a692535b42151ffd0538246ad11baa9eb65ecc97b52fe1b862ccb07070dfb2767aacce74070cdc38c97edd58026bab6601e58164c73fd37e5f6a5002645a2dfb0851a5ad6728a50c4678ccd7409d26621b64215f5aa38641449009101bb1b7adb96bec496e1f8fa510e853b442844964473c3ef1514e84c1521739c9fa67c0d384b2d7fd1457fd02d56606f58079de2e6c57cb6fe23148f656e5fb0daca51387d17452f10424ce8f5b6a6e4e25076d80b837db50220f67738312eaec9bc77be471874af78423f6c64b284ba3e172f21d2161426b0e5b1e38ea244718d2e048b5c181410535e7a2a8b4010fc92a9fd2203506cac73c8a1b7792020d7205cb3ad08c116ae64ed11e1fc95884a91ec7af580e90d22de45703d5e5f9dd794566dcc136abea204497eb77f8a0b84aa6dcc3d380236a0fc9a0281d222639d0c5f2412feaef7ae49417330629a6a5438333ae3270d56d5144cdaee3037b246f6d919bbbb66862d4fae151cbb84a0820daa6a07d11965c0a568ec6fb4de53ac11c88b99a8a4404242a10484a12f63843160d7904f3836367ccc583e4d1a92acd5b3412846eb3c0910221365b6e1a88390206e59661e18f5edbaeb820f4e4b95c684d42f418d37adb6504eaae98961f77520fca10bf2598fd69ae1c82d0e735eaecc24f33464a95638d751d4711ce36d3787f6ae925e7e3cae7c268c6e434bfe48b222403059682b92f79f36d83360abf6039516d2055c7a15a993e084e255955a05f83185ee295e92281639a63c9a9fbb7c0dccf732a34ee78ec9d24000c7dd0f5ab1a02d79c324195443468f54755547c2493c232a8357976d3f0cc4af4fadd69282b2c6fb5aad67d9920e09424bbc66c5efde181e80cbfd27394eb3a88db93aead9b5c4a89b03d4be124e78546ac4809776f09441721580516c99cff3f7bac84f0e8bead3ff0363869a291d56fd71fdb10231340ccefc15842620d826ec805e62e8d6a5fc977175cabb78fb60a74ddd27f595b3627d77e4687da60b4ad0e342cd70984bbaf1d50547788627b9e6f6b8596818cdf20a2df70a177b8106bb30d136bf16ea4059cbf6473a687bf41421ef292b4e643526a426c0bc984ee6407c57fa58abfa46757821f08a5e9e09e081336ef99d9d69662bc26e54c2082cc21e1672f2924e412a0e3d6b733c1d3e4e70d7a40e46b72a7f284497a330c002478cae2a2ed27a2e2b2d04263c061cb280b7a78737f521429fe408be040775097e3493eb2e106d14ccbde8da700d0d85ea9138e39a0af42773264a403c2cfbf7b09318446adc83b03b616935956ca1c6bd5e7044ed07102eb29ca27022deff239ca518480477ce40b65c55417443a263c1d15d293f5d1b3edc1229c92389fc71b3a48db4a869e8364e03d1eb7c354470cf005c642cbed53491ac322c670fdce1f497da8211a06d4a1c82d9a863910f8011a951800d4664c7c279f497ebb572ae75709dd14df06c43b2a548034c92626ec5772182cf4c80d60816446a9d0814cd7973cb50e486c07f98b281491001135a00d021b5faf5742888daa9aeccfc6af9933f5e8838277ad53228e11c593018c3b08c5443902a87a62c02320c94504d6420d51f27366e456fed3fe947bbd46bb72f826db9b33dd873046546905e6ea66a6ce2da9a00fc25510faf2fa6fae4892ab985f83cd0a46add4547de02c4c6632b4fa7ee597f45b58502ceff68f0d7cce04a5d7936f7b3fbc6ad13428d60de3c41d51861f145beb3d7a8156ffa718959115388c5bc8e93bab6847cc6ad346328c1a9097ecf8db6aec8f78a5ec190cb5cde3c11fd7e06aaa9d7a16adc686ab62c211e288eed8949890922602fab0753ccf90f3ba2ca93a59ac9400e2d66d5676c284d798fe796a30b6e0fc3bb6f55acca958c78a2dd5801c65e26f881d22719cd347bcf509fdc138031c8a8a2c54f1a45823934505878c6f659a2f5cbd31665729b9ef03206448679dcdcb7d9fdecb24a840299fd1dc13f6ae6aea20c2d17c7ae3044192b1462a1ea062f09b81cec2344835a495654bf3216854655df87c2ff3e71f9b8b2986b06d4761f17ccc20bc6f851bf31a8b031440fa10526601c8da84eac80af1a839caec0941fdecf24c42bd0c1cc726abfcab42e58380e844c3554a1bfc5892dbf3efada3304d4502e828e65fbd0fe9cf6f7b3a66065420bc5166593a664adc72ab0cead1eead7a1e03b4d266ae6d62926ec06427173c3593c081980a566401ef092ef8f7019c3f4dc1b077b082b15c2f18a704782d5415560ade48a62c2fdd51b0314516b0152794feec6f6fda89b963a19da63a637c9d567baade7a23cc3dbd04ef04c8d71ab7238cc5c172978b948b05ecbdc74a57b9818cd9bf29ac0187e009dd0dbbc8d5a85653fab37fdf515931d4b97d4f3d1b1260569871825e08c612e2763942141ba4cbb5f40f6e9f30900035129028a7777f9ff8266bc0b57f00b5a31936fe1d0238833cacf169f0a7ee99a0e4aa8506a234ddc5003ad1ea89bd1ef6edcc544416ffcbc81c3a72e3901242b290d3f8bd58edeb293326cc5f866e887bb17a22deabec2e3a2eaa74c4285728488746ef4fa3efc87b4c7ee5d640f5f407ba896a1a41d72491bbffb5f3d0bde2fafd9d2c2801648f5c616161b444e971890e44b160b134578189bd0855cb3849f1391b2e23a22918994ea5302cd30e9d9c58c203f7d78796b26cf911e577d236476b36f9819522a83cb33ef40cfabd103f4b8852fc525e179032fe60e853b01005258dc240459731c96fb94c4b4e6a40ac95284cd0801ab03160e1aecda3fb744bc23e20575de3efbbc831b374ab77411f089f698950c41bb18d499d10038da82c30e27f6e9155c8f4f2cf073dc9829fa4b6f7c91371d052fbf7ad7af899bd9e011f8c195cc7888d0456cd102225fa7a84ccf7a61af256a3fff23caf49584b852f38d43be7df1437b788590dbab6b7215940c1bc3285fe9ea250dc92f113843c37c29848a6d808b170368bbdd30ac805c5c139cdbe2cc566e58a69941816bc85c399248a29567ff816055a7b079188866b876eb82087898043968662172dfc8fc2d927c0c341dd4f1d556a427efa3f9beff0c409e3d8dc059e1571e408e5d8faba91be22e7f03977a2e145f79730f207611c1ce7535ee1c12b6985cbceabbb6160ffc0fce719e6597cab9a06ae41d1060a606ef513996ef18d574909f0573e1829c658e55f4108357097d1150439ee503ec7e9ffb7e9f6a351ac3ff90d2fd405977e0611ce706753c44bfcc0806bda7a0927772d068a3f47d6a7b45f49c54cf019f2f0d2b7b0d4954eef1be400690b1727f5709c5a674233715bb07a821703b232bd40735b0278080462405e6157b09b223f200bd12f29baa961e860d511b4a6f1558876d6bf1d640c5f09adeca19f25d74043e51d5dbe8fc3c432f5152438bea59997234bf1f4b2ef634c61b8b46f915487f375a0a4328f5fdd3c784003a715d7e8957c0b7c20528b4bdf08e806eba51202d47d5fc893c89c018d076f55383148ce936804610485b772db88b9c117185bbede264dc95fdb0f424610762c748657e9eba5d0aa5144d0cf790d9bb8f3fde03f1c15768e0469057d05f9d183529f1d40175f3f7bc2e4cbb934c123ae4934995a3447884cd28fb62079809df3ad5e41319ad8939f7ef3131520f2fc26a79b394d42dfa9cbce4ac758300e30a88103c284fa71f0683580ee9df05459364827f66d88619a58f59cca59355b9884a07ae6a3a08c9695b8bd52cd447d0bf0c11d10e698b565fee08199f5830991efafebed4b3684f382cdc2e673638be9b41b5d31934d9531cf4de62eb5d81571b5e15ea0136e078395d9ff207bd785cad54fcad54e1110a3b6f1e10f3b158f897f2632e136b4451e6271602b8d7b40fe12159b4b11abd89f727a1543d1587aa7af822e82e79b451bfa2cc3d58c2b29f984b1480a1b5ea2f37b9cd16131a589cd7f734320c0ccbcee23ebca7a7545f88615eb5a5f1c2a16ecd93ab69903c7d5e419d16a6c6040b1687df645df4914e03f08a64611d2198c6d213c5553e9911776ebc183605b86fcccbba06810ecdc7312893716358c733ad3d8c29a52bced5f9c7b84d17efe610776d49dc7f93ae05f3997235f7f8e8199a86ed5e4d83bb3114baa9f5f5ef775d36a96b8774c6c47c73f02ee9a3a8175951daf2982aacbe520a382ce976a25d35b987a8c13b23aede55cbf039571f96abc797c99ba4098d0db4f16b3bf16df256652116088ece3eb3d370b15e3ecdcaa7a233f843ede2b678b43ac646997f588c3fd0ee05a6311be3b56fc40265be22b9907f50180c48a9b4ae425c20031ac90774babe30443b95e54ee8d0ecd1966cd3296eba0513ae38d95e0eb7901abdbffd050c4f39a5e040d0982d4726a344dc163f6d52668d5239e48e5563703de72c59873bedce5a452f3898bca27041b4c5091f1bcfea65622cf70f978b0d7068d2005cbbabefce420d96c388074d905c986cf04a638a71c9e1d5ca550aadf852470dedca8b0700d07e70384e472f9e3b022c1250d02b62883c453ca15f1135f99dc4a9b59a313f7bcff14229f4de222263f6f6f75d945768ebce7f7700d5b9fd7974d54c0e129b9d55ac4710418450d468d2064486d4b29eb151b452ab2d0307ed427dc512fa68e8bf2fb425dd4beefb1b6ad0263137c8a0285964d69d429b1f2903648826be0bbe09fd0c1e6a277b384a4aa805cb2c202895c0d96b91969fca69710781d29dbae9052c1172e8e26f88bc4a8460186306dbaafda0f6dda11a1bfa2dee8d24bb13d30ca9d03c1762c9b32b7c40ea898d41223bb43a7fc083c499571a579b9aa97c0948e299322323c9d605e4eefd44f07f5d65eb889a5bb6fc742df62c6334d56a5de6c8b2c67d7fd2b699b1a444b51080bab93f6814d755985a57094412bc6a545cd8683b119177941d161bba84ee3bf3326c2a42beecd8669dd2126533673e098deab96394eca6b8f984c45cc6ba3515f26d9cce6ef1c2490056dd4083ab68341d790048ad1c97102b985dacbc95195f1ebc93bd388bbcff4408b6696f51064cbe9e82a23332dbf8eb9c4a27aee4ec724d87a25545fe877f5504a0237dbd9298aec721241e6d486d228c4690822622bb39d95dc934b4cb6f4de05eb00b9d2088d82aea561c8ee0479c6dab7ea953c7fa9a9a190a04a2ee7b3bc8b41e232092ab21a39b67d5e2ddac59001cb196085f6005deeb7074938d48f40d3bafaef8eff2a46be875bd89e820eeb0eb25dc5459029ca15fad641002c967bde0afd5202686c50423bd239f98194ba69a1de34ae9eab042566cdef38f8be8058685a8b2c3457e6b15672c4b90c537615d4f27817aae374e5c245dbb6de6bbc6e61b03bfbabf30ac6a0236c4b76739d1ea709e2a62b2883ddc26aa7b0797e0dc026b96f8d4e14892dec95de27a0edb93239d18ab4ee7100e028a503a97fc0228df24148c827a8beee9708338d4635e746310981d8f2f563f82c92a9e208d42b0c77d4cdea8b31cb1091f533fd224979db31bc186e566d4f1847b44d6d42263ef4bfcf91737c0c3f54ee5dcc6aa456548b5f39b817120013b9dedf08a588a00a3d6320317e8685d54866fa6f63e2e73c6aa46b4ed45c79e3e9da9c5bb789987357f0dc62e8686e62852be734888ecff0be60fd2956b1c45a6c633196d8c656ac6289cd58c5526cb18ca5d8c52eb6b18bad5862195bb18a8dfffdaffd53ddfefcf77f41fbf15d8b57f311b78e48ccd40cf62a3754a136f9e06a37b45db9eabf08d7e624f46f983c0240aaccd36c318285ea2c3dd1c2518d9b1cfe447cb9c7cadd18ac47a1b21e9cf7b424f6e6a5db6d89aa67953348a3352367f32f60eaecad1451860a85e05985730c3b3c260f1e6cde05a3e38e50a76d5569529c1ba035de710f5068ee9c89f65e0d8d0612a7bf7afd907fe2f8e7edf16197dfa35e26b32e896bbb435580e438be3b0d598abd15366c175dd9cffc62124822bde21592a9a663fa96395143c8ade2edb8954489134bcc081f0fa196354829eae48969ef639191528c6a41d0ebb80744ad306aab507d2e3dd3b5cc111b42ee6b6f458d248ab85862b65a1f00b59480570d83a276d7cc412ff96aa3d0b5926fde0476736dd1454ec6cb4aabb4516d0b6be6a4fe0fa8bf9e0de580c902fbc47d96f4cabbb90f9ce45a0b9fd374c09ab58d42637e2f1d0f1bc061c85b6f7d7d307bd36a19075015dc32601f0d45dc2e1b8a0111c16f8dd57dddc6119aebd39be42b30d09311a4e52d7e5acbef475e1e40b4bc27c2c0c4b2535ca40e41951f373660c011893fc8299920e45c5faf0879a0b78b7c195600e548a98a810aa416237088a1c1b2754597961b97f9acddf1ea6f35d13fffff7303b6ce2b7c6a55623383c6807202bd5335e465862ade10b67238a28d8b4f0af112388c85c40f90319b71e7ce76e2d4e027c3afc455512817c992329a45402a95941e0742f4b1197a6767607f5fc30c368cca1f57685597fac89ff345818d6bff33f70b3ffb7b5e71eafe7a9b127cf7fe8fb820c46ccf44b999897e4383adb7ac0117890ead20416f623163ca1ade2d481266306e6b4830b9e6f7376a14f74199f578eb4e327b8c3fa478be46f97383baca4645fb80b9e382cf29df570037c747ca6f0e0a02d711f31db0ace08d359bad41c5bcdd7b36af24c27123deb7afcc9c716b97b119cc1ac084efd428b0c1571352b088632c64eb2a4d0956d8f178f97054415132c7c62eccb7a961258d584d5451ff31698a8bd551c3cb9eea95afb0c77f582a803bbbce581b42fa8429482e821c17778aa29757a82adf64ff579e4a758e928d81a20f68c8c19515290c73f440fc263895a090ba2c0ca24aee182f05e52641d39a40132c8cf09a3527cb817aabcbf88d506078d98cbc96eb82f411adebcaf81f271d52f7b6f542529e453b76819ef0f8c80e0940e0802b3e861d28dd39656e8bee68ce5d8c82676ebb8cb8c1e4b29e1a43ec5ed80cda90f53f838ca3e98d167c686e17225090fee818f4eb9731137af1e9ef789710845d68a24487049c94611f0c3af72dc16280cd24fcd5dbde0268ea2d4d0e4c10a5f3662cbb05a13085285c308279207caeea59b4d6fd5fee98c3e74d1cde4e416c32994b628095f088f0a2aabb2498b065c53d9bbed54db13d2887b9c306efcb996243d19d50d7d2fc7f896774d15154fee0e7adb1158fe260292f60194fa88410e0dad7963621f22b13bfd076778724101962246e9095c1b13a9b9de51f011714b66194473ede2e5c1f8f975981db21285fd6912a665dfa7b727d515550fd0f019058b0b4200ace7b2c0f0ae225d722058967fb4110a0661c63bd71f0bbf1374b8b4b100532d0e1166f2d4f33dea00556754ad71f6a0ce4baf4c901a14e174cf002e99c1ba364d5a7e5ac5c5eee23f6e657a979e4510f1c8158fc806e8a99e53e37cc9d7592bff835869d389a268ed98f9aeaae19e5b57a78b5c0db7867152df3f84363834b0a1def7f30a1cf1f2abc11a2425a8d0f14acc08bf794ff74c9fbdf4be7be2e38c8636254d929d910050cd546f05f767aa1d5883b504b4082dd3414d9f694c992d381bf643bae02733e3725471ed4656c775abd2cc76b1e24d92d1900f0a16316b401a110d0f438fb786ee071f9cf0db523f3124a3bcf834b02a4d29d51085f36deb854e63f5aa93a112383ce0387a81641039a58a810b91db338123b82f430e572bf2b1e89f4b2c4b1b6494329d24b28027e38e612cc79b6e81dc42de0b3763ebb801c3accf8c88ab7a96e9e858b5aecaff6ad8611a416a06c1bfda61b6ef5b7589515476a17433304942a2a37ebd0b284602598bb2633bf8d303c06fceb2fb0b8585a03bc7b88628462c1619cc326b170dcc76dfb347c28833ec329c5401bca53f99578e6e115418319f2f689013998dd9a4ea78f752193cd0b4cdb26a1b4eab14b45b517f2498ad83fa184d4cfbf1ed18b372139233b07b821e4d1eeb3d202e9bfde177ca63e1683dabb27263dd58fa79b69abef3c8c13484378410d10966bc5b98c98cfccac6b948a6150bb749fe3cda2ea40255cf207dd020af7f8fbe16f1a05cc5a89e50a000df584a9a610c214b35cac52dff972104821306e62bc4172c2d56c21112dac4ff55efc525ea140f27c12381af7f134b2005803f428b0c32bba55f39e6d6ccf055242fa5632379bf47eaf5b075c5e57784e1fbd3fd7d898d551ac220cb85d4d8d3b48d612757b6b2346a5a7216e25a46e14019ca01e37238e3a31459b271502153a9416cbe387fd8826a4adfbd738dd3c2c356a2947656325df3a349f984ed20c72a4340d44b66a57a2b20d93c3320472f9a45431e921098a958a288e4e04016d10dcf6dcd8582040bbce8d87a757569b061d54f7ff6131ab81e15599f8a23471f09fbabd67c42e9ece680c41b59971619eab318f06ac67e6f091b62c897dfb934f550d080b71ac3c89b84e137739b9fc388942f7ed39732de7c0a47ba9e3cc6dd418191a3f79aa890433fa4d070ab4bfd4d5bd1b49b1c6ce63a6e850e0e8fd62238173b03416b439e05b1711d35e7a3b31449921b023ee833702378470e362e01b71ffb5c2d47829360640458c08cd49e1389476b7326dfe84cd78db427727b76e7f3fbdc7282e0f6cea615cff136f98921f49fd43157f07c2cb4e182fed0c4e4b554f47e5d10ef43430d18726f767114e5ab3569efb1fe9374e165d2978b9a01427f0247d293253dfefcd9384de45c9bc4e6ea568cc9c5cd358c7234fea4a96de607cd393b87912b66c42540eb0f93126b042c0fbf62fc08d6b3079e9c4bcb74874a0783f68c6114bad9cab60761564c3b3545c5ab91f704370237463f006506edc01bb49fe9968bafeed45110f33bb4b23286e8f9cba60fa95ed6d0ba1a9236d433b3c3154a167bd38b36be82a10ed1168a71fcf2771696b91776ec2319a095a3a96e5e40950e34b49abb55bba76fd5957e3570270e97166d76de329b005ce41247a5d7091878a25900c06306f2e033425c35c03ef96fc52b68d28cb84f66976d2553bce7110f0b114f6b1d2aad7f4c4c3efb15e91207f92c4bd434ceee8d87bc846c48b77ad4b5a462e984bbc408c586c28ea437287376929a1efa51ce7d3d6c743f1a15529e8b7da9448e4d5819358892700cde802517bafc064917723f13ad291b39f3de0dd47dba4034e12dd170c2c1114b7097ed2b7ef2368d4d336f7aa4aeb9ae3f0f03ad1b812484a871dcbb27b534e5960e8f953c9ef78f00ade1ce0476d1972f53b13b76016a6980029fdacd5ec4a66542ae4ac57456ed7751e6e5083d2a8dc851039e2a461e3752c78cad50ae335932c70cd6127d9f03e5d926a9bb73437c29ad7b16eecb4b0ef4b101c19775ce6a858f06964d51c026c3924b9715fc53e41cdd7992f9373d30dc437ca1e0a0789412c579bb4fb5607e4e7bf6912f75f59fd5102aeb626dc0bf3f005cc7eec71e728c7de93b4b459c242e1b8e9285852a8162f69304fbe91837867e8434eb7bea66b7a89e6ce39ba03f9ab700a89ac100e95b11630485652f4be58efd7df8e820fc04bcb2dc259f872d7fa58ab2c30371e99471442ec303b3f1ee74bdd2cfe996f28b5697fef2ef77b86ba230b0c424becf4cd155055603736bea845336ca73e38d27881e3ca2c3133c9a6fc5c41d3d10fc7e275c708a59ee5a565fc2600d8648724bd33b969e8a053ac7117fbfd295128d0ae4b4b15f6e203499930feb9b572b37c926abef594e66ea80c41120639f090af4da637d210267a40f0eb63e28d21a1a9b395f5d5f8d140b5764fcfd007304f20d655fb7f64040c2b3704f0177e91d22ee060c6d9601b0ad6ab0a8f7e54df95ca07e55cad2bc07a55b924f87413887672bc1b198c2060151e5ef2bcb9a830e47f0bbadaa1e40ac3884be6eaafe3b8af24c7e96b90b98810c242433b5ee17b6b85f9e3ac62af78de77575f2ee4bdd0a4d26e56901db84952ac3c1011d2ec0ece2ab73265e46b4e0c5edc1f7a0497957134336e6736ec6ab424971a15c9c93189f94ba7be568d8cfda8112a5505538364fba101278e7b034c03369550f7d0cb9e45113cf9566ecb3fde71223f38255bfdf641b62f36750b1adf054e985e6591b0f8c162210e241456ac23c8894fccc43dddcf2ccf6909642cdfda3663beab060cd3ca351a536e783d5a2433f66527c0d8c479a06c4516caf2396660d1d1ec4fdabe5afc6c6ba72f0bfdbedbb76ecef25e96c4ea2309ab7a834b1a477c3bf71ef15b4951e122db1dc4e675dd0392f3d724a239a39d039d5a382c8cadc92c7445aff78f8b67b889b755d8b179157d4df078e41b769c47190ad4db82fafb171c109ed71cbcdef48dc6994fffb8d3239f03f4440234d0035a07e39d5b30561d710e69a0fd5a4fe380229cc0977768965e18852881eff4a000dbabe43ed8e5fa30ca403691c27d3082ffad6ae7bd92a3f9740de623c7e903a915155485f4172fd1de7a18a08f9bb16fffdbcfda77e993d0d2922da59449ca900aba098509369bcd368e2d961071884389b2b269e2c771400234445484080f0a45a6522ad56a457b924ce95a45a2521959ad860005d1fe8e18fb8454467425b4da84955b10908f102150b75464c88d112f802455aa95ae957ec56209f1afe4bbbd23f9200e9188994a133e4384040d7184109428f8a708cd49d779df078261a83dd13d5d13752dbca1d6b5590e47ba16532a954a25140a85e281daa13aa16837cc3412a96432b59c74edff8442919e58fa92ae89ba860aad2667aa18d24875025b30d82c8634529daa378ba9411ad1a0b972ce61d775b318d2c80b3b4d7beffb401004c330d45acf62682f8e46e3389248a55289b424e99592356ad4a8417bd3e98442a1c8542a45f2f0f0f0f0f0dcb8c1c383e3c5eb7baa12217cd624052c961d1e6270cc38120017b0175290518fa017560831c411423ffc0060082bd5cdfed83835861620b6d8ac879be9430568c860d80193830e128fe746a9643a9d50a877adaa1093e984423d49ce4a93ae8d2f2e249952a95eab55e9224b2c564bd76a904bd74aef027abd60309f9f9fd2c6e7e75d2bb717675d6bf9ec8dcfc2327ef9e2e234fc63b9f3e232a3060d9144228de3972f2ea4902c85a4c9743aa1308a2453a971fcb2468d1a35be30d456d35e1c8d46e3cececece38eae8e8e8e8e8e8e8e8e8e8e8340902f48a312a67b60afcd0c4edc74f9092204260fa28c120793c0cd1d19283c5adc78605478c0eeb53d4b47654ec9801abd1a2070d1e590e60ec756dfc374ddacb55b2788cf1a2b96c25cc715de78d5efd3e10a4bd5cdf799fae8dff8561a8add65ea9a6d162c48811c3478f9d9d9d1d1eccb3338eb8495dc2c8ea35fb09d29143089a128b0b0e529123416e85454b0a54000493c5e879b1b1669830746ec468c4ecf0782e5da3bdeba56b28182ca66bb48ffd934662252023b0d66853d616d9cf5dbd4bbc4750b4590c2ef2628d48828c4ca149d022588bc57c7109758df6a10eb528eada0c357ab17cca250bf8181a490b5d890721c410479486b45a86407f7ccad5b3984558318060361c6c66bc784ca6130a4592295d6bf9d47d213e3e3647ec2d1224fefcc0708831a96be593b194aebd4ad764af2a7f1563e95acbb35ab6d5f24a5b2d4fbc3f968ae09f170c09901157cb87b512853cec65b3d96c369bcd66b3d96c3756b2bc982d4248a248092b41acd50f12232f73c1e1486988e7744291642aa552adec6ae595ae5648622e1b14ca88a952ad740df62b9627e220244882ca179298cb46bca531fff80809f548879dfec46ee323402c7305a30931c411422e4fc29fb8d91f5e64a4f5414362a805984cf84fba5642a14812a774adf5a9abb22a9557aa527922f9a3909185a40aa1b956370624a260364738b2092b3f5a4e13f24250a278125ee44a5881d9945e2312d70f50a9643a9d502852d7723cc922e589fea69a0b195a9d5ae9d8d1e3038542a150281a8d86a2d160baf67a584cd758af6b29fecbb2ac7953d7666fb278621502d3355a2bb65ab578bceb9a8a776b752df6f6de0b335d2e988f520bd305c3489121438ce89015c9c1a2055596a6aebd7a9e85a545a66bff321a9792a96be2832c61d5e2bf30c6586cd8a26be2bb84578bdfc35b965998f50dc74cc868bec060e6f83e8c5e60e39364356529ab297900b55a4027242d569e0e1815058ad5bba06bb114ba5657f0296254e81acbab589d1e000058e189e3bb9022aca50b005684174511305c588459c3f4a0b977765f60c18ed9fd17c6159e8e971ad37c0980113e6acc9e2324c9a3a5857c1e2de457c008cbf57ab15404915caf143ce028a14a65bd28195d5bbdcccc0b5debf9172e18306874ad7c9a1a5b53e395d6d4c8e81af994d6eaae6be3bbb5bad67a0bc38505c991a07aa4452ca8e5c95558cb4aa36bb4a7a9d13554ca448b11c3c91d3a7cf488751c51344ceed0e1a3c7c58a01da779ef77dba86fffbc2300c533695f24a539de824b943878f1e71dcd9d9d9d9d161a869af457134d235fca351d7683f9248249665b1bc5256273a49eed0510a499af625d2643a85275dc37f2251ba467b14499224f9b2af9757faea4427c954486adaa754a16ab5d235fc2b96aed19ed56ab59c245ba14bd3be0573e91aeac1d84bd7f0bf60652ce624f9e3a74c376e504ca3a168281acdbbbc0a3a891fe732234a0f1d2a4b3031dbf1820e2f0c015d21c4103e3bc2672e042588911e802451a4849527644a7bbbc0cbb533040f56e8c70bd80d341610236605b612461130b21a2c5841e325071f2e6020f2834f0658a4a0142ef0d4e81aed6b62e81aed63a81e06187c2463663b789c3c2f955034ac22c798198d1a30ece09183a3c293a63d8a2453614ad7f0a752a14ad768af5aad56a52d4bafb41c4732665662852b4d7b56abe572e91a7ed7eb5561305827fa8f64cc0c0618608081f631f2bf2c4bd23449161616f2c5bebc78a52f9de82339923468d0a0d103ed652d2dba867ad02574d135fc2e23ed5fc6d96c446151a0f04a5174a293e3f8128e65dd22499215488c1816a817e0e1b9e1b41b4eab4c9c87a7f4e3c5908fd1e34263ab4b5426583c080fc1103e907abcb0228922259eb037fbc312b145ac111ba4732aed103a329043070f9f01519508d102c4476ca787db0c93c6a8023560d87173006a81c4bb81b241b980c206470c0beb0504c41ad1ca1750cd8c6cc556ab160f1f97d86a07cd0bcc74b9603e5a98ae1e24183f3a84783c0c69c9c1e288add50685c205161c312410eb558e6835b3552b36c38587cfcb0e9a9d1f17cca4d1c2078c1ea41ab79e870952811f5e7512b224071b1b940b2840161616f0b6d89616afb4a5139df50202628d68e50ba86646b662ab558b878f4b6cb583e6458810214284542142901829f260fd6109495948822d362d360fba84644896147c09c917142f2139b3f91b27713c0813923021c9f2375efd69ac1710d08856be806a664f83c64f908a07c3d006e502398e248e27e95acc93487fbac97bef55f1477e682968658a183162c4700145b94447e706be8143493d00b471c45a7f626d220426485999a0566e3f7cf613a42404311e2aa24c392561fa80d18344c41619528447470b8b1c52d0535615d45a44959284cfea508c1435b6d60c971d3b345a946a18918939461c3a3784368a060484f2817ba068403132987fcbc686a6f517860b4bac050e529167d1e2736b0542d17af8c0b018196964c8cae69a955e2f650c56cba4195960b8f8a886c70e1d397c3a0ffc803e1044813e1e0c71d823a401c5c83ad1c9212b234686cc4aae959197f245d61b376ad083201886a1aea17ca0c43ad235d98f604e2229f5902449f63c59da6dcbb61ee59205bc0ff79d1ddfd971dfd9f19d1d14cd69a34f245d098fd283d8517a088c1cf12a9108c1a645c302c3e50707a948d08d1645582b545356262a2cc86f436c2e7f8931c31c7562228b1818342d5ac0d0411ac1a0699103478dcf8b65968a1c295d36fe23fe8dbd58eed6deab6b18639cc39ccd52e91a6f6eb6aec1d0411ac16891e363d0351c1f43edeb8d891845c3a3592aeb0c1ce29c69cf755d576badf5d65ac7711c59c4e8e8e8e8e8e8e8e8d0747494f83451adf8ed87ff04cd8670c44811f3e6d282e467085bc48c20a88a10d41542402d18a41c4ea56413573766613c3636b418316080e1e6c6e7e7c7577eefbdb5ea1a0d15b3f7ea1a0d63f26180a1c4f15bd758fcc6d1b596c719bd00748de60510838d2106af3486184c1909868bec6f4d8b97a0d5583262039491a068b0183e32249b362107aa8201d5873eb14feac4f677ea84ed536e28da5e89d411100bdba77daa927cbdf72a61041bdc1489224535a0538e588c31f6809c5822882a2528c1ed08911220c8d6fbf138175fe7d9eb7eb0d96f66a0423178266beac49c21121b5802576bad496bf8b141a58a119614e140131dec8033655022efa80ccf9f5983cf7e5071d9bc89e17a8c8b0686a0811324424d0002c7bff31fa5b0fd4f2aff771fb0b0fd53b84c18a3daf4890f43d8e1a64f7cd0c13e63beaa770052c71d0f22b68a0fb618638cb13b768c31c6d81d3bc6eed6b1c518638cab63c7f83a768c31c6d831c6d85ac716638c31c68e31c618e3305b6b33768cdd3c6d9410e088b69b3ad41eae96a40052d9e95274cb6a4723d895ed573030e233c56434e5de6b8ea660a2f11c35d9dec467fed72cc240fd6a8ea3281cd10046443122a3a1d1900cae1d1bc5886c277bc865a28ca6d4d114aac2ad0bc69190cb9ca326234a435d8a3000d2b7f65e0ddc6bafb5d65a6b6db5d6560bbafbb5b6bbeec3786f775dffaa93eae4ea303e724dd96cf6ae77c954d65a6badb51d47c41195600052d96912d9f8c16d65f4284db73137446758ecbf85bdb5e74966f5b1b73f5219d5a7feb435a2137405a5c96f4f6ecac6e7f7c4c60f826fdaa858f9ba6261f0abca32895a59544ea12af0672da324b230b01bf954bfae9465cb3c7910710d8cab6f95366c15aa6b18597fe3e595ca52529c5c9636f593e9643a9d9ebae9cfdfa7d936fd39db27255138aea35cd775a4fd3abbfd728d5de7d1cef33c97909326a4a7de3ac74dfa5c8e9b95ff4a0c66b59229574b568fdf55be7e546ae244a8f4ad122bc9f8af2b2ea3cae5682b01fb010b4241fa59f185f1f5848d9bcf706d7dce39e7565ead5a7995ffc6e65a9e2df3f584cfb009fbe133fcbae233cc4a924b71b394af220b833f56fe2082a564b7cc92e5c4c2e08795ac261606ff972c26168695c4c2e0d71555f9aae233fcacf2d584070097e68b8acfb079dbf8cf17958ddfbcfdf018411e87f5f8cd202e533e7ef347f5e5e36f95af0f9f95443f7e16133bf38f9fd5c4cec41e3fcb899d813dd6e29faf2b3b56b21e56c6de2c619f4bbd5949f6ebcfd2958d5d0f869dd8fab25cc2facf1fcb0fcbff2acfcb646797799e76fe5649a98afcac72a5da1d558173aa3c452c6cfc647976a8f284fdd8f84f2410364aa93cad124a8cca9335b4f18be579b5f8c439db272bc9c67f92409cb689f37565e3ef48206c12fb149f184068762611eba3f6a032e904748cbbfc61fdcce960a41b2788237430428023da3ad83ff9cce6603c5ddb5c72ffec5c76e69a8e016b59d0b750401946df14090d684aef8cd5348066908b73ed9f3408dbfe0e31db9ab6d15e72ffeca1f5b66f4975cd366e6b5207024865df077e1f86dabcb16179d623b699fffb340ddf7b593f8f87bef1ebfc69ad31d65a9767ccce3e7e1e7e6d7a06f0c76058f5f75a3bb1e78beddfe8bfa7d7a33bf4bcb0e685a3696762480fcae0dfbd87a8ff8cc0a7c7e19fccd3f1c7616c7636c2d3c73c8732bbd09fea934980d0f43eb3d5c5d8991b521886efd5226a8df79fa9cfd367fd234fcbf0bd67eae03dfe2ed47fc391fa64a2bed3e7f0fb48ee2d2a3c654dc5dddd1d67d31bdfcb5a84fe52697f548e3cf12f68be9d11cd189279bdf00bbffb2f7b5cf8fdf975dee7cfd37f6367688cad469c315b7fde995f65dcefbc1f99670cf8d508ef39b31a5157e0d746d41a9a73588da835dabbef995e28e36af37b2e3469e0fefb1bef6e2ebd4ebeac9ffa8c98627be6e9bd6886e6bd7150eb97c15f7fcf0ebdf20cb7a74beab3d003cdf3f6d8088d30c2c9aeb7f3517b3e8be2c1bd97de5affdedb7d750fc711e4bc191be1e6b87ae2ba1f18739d97e33da76b9e876d675d2602a1bdb56a1bee4bdfda5b041d220252d9291669414aad52150e41ab65e8b62db4ddd3fcf84f4ba5b33055beac5dfd985acb8c6dcde50f226cf818fccece58dfdf013c1b4a99b26d12bbbea552697dcfb4543abaef8de386325158d6edf5da2b9e38c4221fb7c75a6e0a9728bc43184f8a67f23bcecfdd6bedb5f839734990c7c9358ee2e41c8c679773309e315b7606b98f1f8cc158adbd41762d3da6eb3ad90db2a93e80e35c251626d3603c3bee9e34f4126120223f8cfeff83cb67d5962a2746d5d9b32b47b46be9e76c3bade50d55e13118fd4fea1d115b04a432fb9456776b816a756befc5b8ba6c369bcd66b3d96c369bedb65842c42020940861e3430307244998d846ec34870e1e4028c1e106aa26a9b656bf97e56eefb5c1d8b51262edd5b5928b4280eebd38678eeb3a9b15c699e3bacef36c56b534c6ccc81b244992240f0fc9c343beb804190982b584b4c87e7cca95cbc26c9c4ac386cfa6d42025d1e6fe8b07e3cc715de779fe72d96c369bcd66b3d96c98765bac227088222589a21c3a2a0f25364742c3b689784b63d10d140d87055c6b2fc6ae9ccb97ae912d9ad16cc17061391254a4c891161f5484454b0ce3cc715de77926cbc7aac97271ce1cd7759de77d1f17763e7a8020582af9e8b1b3b3b3b3b3b3b3b3b3b3b38323870eba82c76af65222848e1c362d1a1697ba4465a236d12268e35498ccd5636399238c2337441634627678eec539af38ce65833127c4c7133f67aeeb3ceffbc0950dc7759ef77d20b8b27114ad868af142d67b3ee3388ee3582a8d331d5c9ba880223112234aab45f6b3b2c9a1a3aee0f162e9043929c1441cee2771ced3b5f1bd1f100c2add2316d35e63a9542a956ea954725ab964010f629bcd66cb369b67b37558837a091f21413f41ac5511488c380e31806c576ce2c64f10c6610138eb1af9c367e477ba86face836a0dbc2068bd82a027562a567091ac6b2e7c8e71bae67a8ee63b5d7bf9ce2f0b6663c3da91a28505b3d101c3a5d57af560d1e2316a7124c8081050500e23386258681c87a4d3b5eae3adbeefc5ea3aeffb40300c3b9717182d4030d4bad6f35ad4b5d58b235d2b7ff41ac191c51ce99af82321a3ae3949d74a4f2a0119b9e348d2b56ae44b362653cc656fe6b80f85225329956ab5727981d1a2da62cc7079d981d162341ac791542a955c5e4aa6d309852249329552a966cc9831c366b3d974747474747474747474747470e40062bd826a664d52a082d80c1e2f343b954a5da232416b1337fff113a48487214574882d2c6e3d36346c1fa3e5a26207ac46a9070d233cb2219dd3094592a9944ac5623a8b49c3348c693c761859cd5e65a55297a84cb4685c7e70908a04899f434785c5c8765c3d2fac19230c9d2337622c68f0a05229d56af5458ec45c956651367f692389542ae9daf82593c9743a9d6aadb5d65a4ba57b4b2c62489224491e1e928787bc41ea94a8d4252a13b4fa8f1f212e2d487e4c212851586a11ad18319bcfaa9c01d341a154ba46f3291244fe90234046ae8febf55324a8c512b2b2b9e2bb5e369bcd66b3052a9579eed8f785874b8f161fab97511a555d99678fca7461db27cb1305cc39db76547afb3588a95472d23b6954a39837d4547ccbb3ef5b1cdd585e3a134723f3e45187c4b71f8ae6c95d53078ed35cf8a1cee1b8a73b6c317221c7bdd6399c19765687eeefdb325761ecde7bad733adbbdae795ef737ae754e679ecc1a6584818de23242dbbee8c4cac83db60f9242af994e1707e3f9db76dbffdbf4090b7cb6bf537dc220f9b13c9d519ceebdbf717faa1fa499ebbc0f3c7b76564155787d3729f51995f9ec6925853ebba68c08f4517b3e164780325b6b752f6a42e6325df8a3c538ee1befbc4d49bf6ba514097869feb36ce1805e76f4fa7bebe2b206eea9c9833e67b66ee7326eb6ae79808a73bad9d1da955cb653c6f3778c9da16f676eac5721ecd609a11328b1a990098028da54e8043d6c9b6fdbfab0eb531bbae75e06e7bd0ddf7b2fc37baa6b3bd86c003fbf8cfce187660ff073a83fcbc826f82d19b74a65d70f6b15d0ac4416c6ecf1bde7850f8644c0245f13271e93cfa4da86960ddc7bef993dbae7cc967dee7b70284e4bc6f7de531caa6d08a0389f29c3336be8be2583470f8e0f1caa6b685953c614aa757874a659872c51c55376c5c165cb86fcf8f1d0ae9ff3672ab9e80ee1245809918d99e024bb16d919fcf552d9952bef140b63037eee39b3c7c5a1383519556ed1ae3cf2df3e9c6c5ac0c78a202071c3b9e5bf445470d1ae393f369b9c77a8c40f566d03fe6c9e77080115e70e5d220bd30d39e98a441af4e006446e55a80a591e48e901945b151272f259c98215a2dc70ec532243496aadb7c9ae6f89d8993b5422d28012379c4a71aad00db2ab1d222aa252855e39edcdde76b54ec0aa65b0db4d4a55dc5b9e54a80441d8f60eedf30aedfa6e85ba9a1ca84008a7680a511dcab74d597c783dd7c51e2efdbff5f1d7d70177d5a494721ccdb4a3b4a34f29a5945a4be9e590784225cab625edc106eb121fd8b6acd9a037c1876d4b181bb44b0861db12c5066f0fdb962e1bc425d8601edab64c6d9063e2085d28836dcbdf20ed382fd3af0947006b13b4409f3421836d4bfa6483f489136edb96b15db92d68e1b6ebf77875a09f2bfbec4a604545538c97de6b1d7b59ade5329ed54a6797d27bff6b356bbd17bb9dd18caddfca899f09c001d43d1a290796467a6fa330dcf5bdbf25c6f86baeb17fc1de85efa754b6aec2997aa3528674a1aa46ffe98aa570f1c246e8a450e8108d42b3aa119f7e0ba5493d7d1714b4267cfa2aa8cce9e9b3a035a6a7ff02a5293d7d4c6bea4f5d41696a2db1a9aeeccdf79a3c32c6713757562894d50adcd79f4ae3debf56b1f54aadb902a5b1ef4c0cd99c6981b0fdab942849d8fe2a236cff5511285dc10ac2fdcfb39f1debd7f1dc60b15ca08ba03611a168fd18635df2dc0d134130aca5ef7ab333dd77666d62529f552526ecc66efdab3cc7fdfad7ab3c3b9ebb5f5fabc0cc4a85e5fd67aecb3c282bab50eb1ff67ab9fc0bf6b207613218acf5fad8b75ebf322ff559eb5dfeea9cd7c71e8cb55ea797cbebf558e7bccc187ce61f33afcf5a3742b19618ec5f6cc95ead92aec9cc16634bf6fad6cb6c11e0fff5af370ba067187ab5fef52cafdd7a11e055d6c0d7d7075d6585f26ab56e77637fff9a27385485eebf5c0ffbd777a5eb49e62d731546d7ebff573ac7f5b007612fd7d3fdaf75edcd16a3eb5dae67e91c97c900f3faec65520d7bd7eb5d1f2b299dc14cea33d7b35eae56885f158acbb8fe05ea1ae8fa1bf7aecb6c11a0d562e91b5abae6b1ca555969405588382051e5c9240452ad45e14bd3f0f9f5bd0f7e5e16bade1de53bfad1e3bf2fea9cd16393455d3a677447e068e48dfea57346a60d7c5ffa011816c3a4aeb142ea32985a7a415c7e956571cba6a55fd4aeb7339e655c49b9d5e55c57f7c24da8aa5d1fa66bd57cc0b65f4b1b2a91db5c59a1388c3f8baed9bf2e83bd6f08871b63fcbd7d500806e397f1839ff19b740e7ed0bce2bbcec19884453cc26f750ed6d95efc259d733f9b6109fe059fa46b2038c232ecb7ac42da001d149789806a0b0de1cfdeee762a1c2222a0dad767d484e959f883eb6ecedd4fb38bf96fdce66df12916ea9ab5df9ff2eb71bca7d7601996b656986bea9c6e5bdff5fe48e7dcaff64d9d7347ba66ad66c9e675164d7159b74cd360936842100fdbbeac25ff4ad76ea557ccefb74d597a603ebc075b008800f498187c37bbbb7750c8dfe59c04103be3eb3246d6450d56f277392fd9d9f318da0319d90ad5d0849cf3931e92b033be1e83a5de75b72a37c40cc137dff080221a96c80e11141c29820980348107406801be37742cdf05f2bd297c565f50220349688009459001117e30028f9ba5b8e112a1c839e39c67f909b79d77f6cf5e7743510a235682c880107c60420a47888293a53c61c21362ccd90846bacf19c5f12c84b5a68903022a332754c10954f639a3f2e37852b98ab0c54d9f2061689fe357eb4beebd17e72f2d724901092b1be0c110309002cef5818f11b8bdc3122a1a68c2480f4131c0b93db89fc265ee08440c7a38b281162401089cfb2f5c86f260dfbf49c2f6f6fd19eecb70196a837d9ff82c61df6780cb605ab46ffcc6679b3ef1316297367de223c4ad02d2a732dfb5d65aebec854d7d17b556ea5efd07a4389da5303ef3c725c5012badd4134f1cdb86a3dbd774285e073cc5dbbfdc5b4eb5b9e7cc93fb6c826557524a29ad6faf59e9ef6ac6d4188ca78bedfe2f5cb850d1991b0ae3af87ec930a51228b0593e9e433bfd7f4b7b421dbda548e3e231fb427f7eca23ed1997bfad3ee52cda9a321d55aeb9818105495a62f9578a74ca6af6422ffea1cd3df07afe9e926ffd335d26c319a4853677aac734c17a7ea06cf09eccb999e3399678e7d9fce469f75cea5ee22e96f5c55b6de4477ea6e3b9a54c5c8f45e324f1fa6b25215a3cfba467acb954aefaea95c827f55e22825b003cfb877a82b5426cf4ff98308d3a8249fa7dba99baeb404f52bd4abf0a74a0a749bacd1190550190aa03335288cd72435e84cf50085f1231cc6033ba84138c27bf7af443e834fbbbba7e7fdbec7250e0be37f2a797ce65f8908dfbf3229fd2d4b6f2acf9e6dfa1b2e53f23fef735f32a938eb2e99e7fdd1877a00f7497f632f1856ecd78634cc9e38fea62e53c79a58d2adc7b36260fb94ed8ec4955d77996cdf6cb13602e8f4de4ade50530cd4ce802a00ed011da25162464f3f060d9511ff058c176cea8ab3c5ece5bd9775295a33ab2bfc4d9b3e4db1473b738385f1f1861f8c55463663b833a4b0498b48d4c96457fba445dce392bb01bfc90e00ff35c55817b5a68617d8c6265bae441a4762c6ba0c65fce9b29afd19e03230166aa05290b2fdc3b2fad0993f583a805261d32704fa472fcff0c177ed2f3e587e1f926c6705b090852d6cd24ba067934c098ca68dee870578d8239302abedbdf8a249e9ecfc5e9b9f69f3381353cae2a439a83a16c6fe356558189b851f543840ae8e9d01325a18fb173f90fb40a805422d8c9dc1e66861e85b53a5da66aec298f2e13d6e4123409a62bcd6da5bca36577eefd1139f6135bbc7b5e7cccf75657dfab9bcb9bcd5f260a4760620959df8b6731ea5cc461a259c510da55432b55a7bafd7a5b8efba94cc90fd52df79cf21718129df73a4ef1efcf085d13ff07b610c4df6ecc2111c6f38f7e630f999b8509222898cc8a6f98650f2bf7e6c09f3b7e89c96cde33312e7852555954478b5f14f95ca34690f94e6f230125f4977fa4c845bcbc4fa56c284c8724d9a34b14fb8b5e2b609ab842d421d7298fcf608368999948fa282628bd8d956bf2b75ce7b38da99daa40e5d69325ec157c03a3474495788fb71222076fe2286d8f9f1a8635df59c798e2a13ecdc79f7dd575a639974e3a8bc3f5cc6771e4db944f7bc42f705e775c1e90db1f3bfcef1ee2dbf65a25fa51a4f2f754ec3f7e02c9c75f7461dba1d2bd695489d506833a6ea908b14b70ecd3851765b64239e9609780aefcdc2e49fdd1b91798e9c79761d95cd6083481153ea134aa038959f2652ec950bc449d7fcde5c06a6338eabcfaf5387ecccca5cfda962fd39b64a2d935a9699f5009a44d9f9af949d1f659edd4d62e72f99f7f6e55785a52db9f2bc3727df895c2e52c8f22ba94a529c9689bb7ce68685392d1317fbb44cce173e8385c98f7acbe4de6ecc6067ee0f87c94f324f953653e6fde1526f1bedd47bf7169ae73de2649e578834cf0e6596cc8f04de3e30053eec95e25054d310be779df7c478eaa73b9b5d107d6fe2481c8961e86a857ffa93a94389645e5387afd4af4d17369c57de0dfe78c267b91cfd0f2244d3c8eabacfddddc3d27b554971f068bb14f7dcc7bdc7c46172378eaab7964993f1ed9fdde6522d9dd39927f71d0df6532605eafeccd3ddfb30c5bd529c534ae37527ebde7c961f9ca53e2c8cfe671ddad95edbd9b78db67defee7c8fd8f90a5d283b135998ae1b47f354a93ef37c2792cd6083481153ea134aa038959f2652ec950b044b68af6ce7442e63fffb1dae4ae7d8931bfff43eb333968985c94f0245d3bdaaf22b3b9f3121994c2c1326df9ffea069fcefc1aeac6527c4a75a86512783fed37b894496fa759421229719cd7ac52476ce43bd92aa4f7859afd42b1ec493e40761c254f93d57826fed06bd14f5522051e952a86099d4fc9649ce7f79a03395c2789fbbcfffab1589e4fde96d4fc978c6ecd3866cdf280ddd19fffde13275e7fcf4bc4eba4ffdd93d49e77466d7791e67b62870b7f7b6d1f6debd52d3e03df7208ad02bedfec0c7a972fc6efcc6cee4a9db336f178228c2eefef059fe50f563abbbfbd99867fe3bdcfca2ce7193027577a635bdb23e217265a3d8f4099128fb6a19c6373d984bd483a854d7710f7adddb46bbeb9e7c92a6e17bcea440dd29f3f41f7fd43490be336fec8d932d029c4acf537518df64f2d42a84cb7c9fbf5492c0cfa379e347a5a8cb330036dba9133b7f3c2f4e17fb3a8c7f5885cbfe9e9358a7b76231e35bc91300c48f8f3e0eb884fbafa438b4b44ac6b312551ed04a44ab10b6ad48b8dbda3fe9942b65e75b56a22ae50aa367fa77235732c061569ea9e333fba44a64b3691f9705f0192572a24d59eebd40beb7dfdbef2df7cebd73efb79d2b2dad92d0a710055a4369ec675bc53a31ba14280d05fcb385c1ce6faf8c9688ed0668dfd339f63fee7d0a74742ca87aa0af9d65a8bb56f72ab6caa5b2f39f96c8ceef55f267af82daa87a5e2add3eb1d0ce7f4bb762ad30e2b73557b967aeb2f3e94976fe3327e1c09c3d0f2cb7af70e7b8efc107b9f2f3429b5d41f3e386fc2ee9de3bd356613c6d959df3955a85fbd33ab1abb80c67664d03f75ec565f25b2bf60aa5c9f1e74cce926e3608a52afcb9db0583409fb8369c3ef14000698a5b7fa89c58822261f440c491f875e1030143101cf5030975288ef48fa3d723f307150e10110811dc8f5efcd1eb3f3f53296e8bce14369bfee8c5b2b330f875893f8c79efb9c725e54821f72f8cb8f3bc0e73dce3e7e8131228d9987bd7350e575dcb165bbbc24fa9b7f1578aef6fcae283ebc9ce21c107305224800c6da7f6b501dcfa637c73ec3bdeb5744fe124a8d57b9ebaeb5b21c6fb76a62a57e689b767118cdd7fdd0e5de6ac94863bc1e77400294da53ec3949edeaefb9ad73671f13ecb18e37f407d3097b65a6bad6f4b6c9ef6beadd5bfbef52360cc4c48d535d9370a4ef6a9fa0019b065dbe29f31fffd4a3b8a84d1be0dd9be3238f378cef70601a45fcb4e8c5fa5dc33d89992c2dc87b1ef2df7f954c5bd4cc65b3150975c128c6fed8f96885b01043d6bafb5d71619eb5b4ae9bdf75e77ea36de9dbabb67a7945e9fe57a6badb4d6ecb5bea58eadbdd65edbe18ec36567619c526bdd1495b8d984e109c6be67cdbe2cf60d800a001785abaeb827ccbe2cfbded3dcf70cf7ad91d515f76c6d95cdbee5d8f9922e3cd59a99aad6a48871f162a41abd76e927853eab3535d015312e5ea0cc31c528469be20bb31c7d598eff25e96365e961a5e95fe5698602c8a8218a0d5485ff9ec17b7fea7d03e8ccbf55e65067feac120274e6bf52953614e07bf03bf04f477d2e51a83ff377cfda28fdf55328f31c407e3287ad51a4793a0075aa50e6f98053793ad9d87a1c6f94ca30e421955d8763ebaff52f8fad5f34290d776baa04cac4941d6e046c76e6b8ecd96d6caef7bc7cd41e6bb590da7d7f3f2f5f4628a106fef9b273569a94c67bfa2c5f771d0c2fb6dcadef3ffb52764dd9ccba39f399fd6abecfeccc65a8def4090b8eec5057954ae53395162fae55db086b9fbbe38a77104723120e8670f082ea84ceec5b1fc1f87606436b5c6fdf054ad37afb29280deb536f7f05a521df9ededa774169566f3f00b446f5f66728cdf8f661d09ad1dbafa134fac5b74fa335e1db8781d2806f7fd31c3a536f14c6be1d4d1f8407a31090e06ab1f0f64fe5ed4fa24edff62fadf4f65789a6512924b7afb6c39caced418c67bdd59bbbf59bbdbb76a87a82cac467f6eb09a84c114c5ca6a68082a6d0465813bf7b5015de1eaa05a80a1eaaad37aac2be13f1329fc96f4ba2c8815f6fbb96ac4d350d768fef3d690107762d479b6afaa488c806f1eedeb5ae894bea0f87b11f82548fccb3678f4c417c86f42ad3971e34953548bdcd6034d91f7fe3b8d299f8a452e630f6b5ceb95b8563df540e5207eab5ae05a646a8d40a5f27319488460400000000e316000020100a05c341a1280da51c6e1f14801170926c6246a58b9324c8611842c81063000000803100223030435a01d964a9cef42787c22f5b13691c0500ddb7af0f08af2c48a760e163c1923fe9364e380cc641c6fbcfe55aee5f6270e340701eecb9ffe1e230a81a4cf2b528bcc4f5e1e03e7a3d3a524865c95bdb3cc1fe1591cf7642972703fba463e9108bcd60734da82346d1e1473556d16019cc144283df5f2222df7dc9c056dde1b11c111e98a7093db154f7ddbb469b6ae1e8ac85099406a3b5a28230a53ca0e709bf68e7c92587227bb206cf925b376291f27171799694d7864aaeed4cd1146bb9078bbe6fa73c958072fe48680befbd225efb947a9ad22d4f24301124ffe935bdb3e43458eb38729e0b8a1b12ae18a23663229b2ef5dd51b90e8285c4dddf41d27a4e9285eef202c4ddc7a78027e925436798359f3781ab63eecaf6a99af75e71e8f28d1e0b2bb74be2c4eb0434dd2805a3574ac1ee10d7241b09942ed47c17e26b0790b37786e1d7463ee3f835689bdf4ddfd67c74aac3e52eb5c4868616619c0072a09067d624308b74e1781694984f6bc10a73dbb101ad7098f9ed59225c70a98a64670831348ee0f844a15e8b5765814a7028914382704fa27c9d3241c408333526684120cecf12629f3ef7a82964fbc732bf2a4752912799206f8c60a7e1e08c89f0c26f99929dacb0e362928e3f784931d5b2d64f94fbbd20120cbd6f10460323383769ec5efa67772798ff89c96be920f1d5773c9db689d94f1a874ce666525304717ea0cbc86371e220f4649e2bd0292bf964cbb9b24d0be1707560558683061502f1fe8f8fe9646a131cf72371b3e9bbfbc419f3e9b7eaa0f4c5eead13506ba171a6e8697a6d864c3c31da250c32a4e5e7cf6cf8c5106f9a3c8bc4136c34e06a88aab5a69b1e89cdbabb70f8b8992f2f390fcc4c73adf6dfbcef00bf33ff31be00bfa18056c8a37973584675170ce96e78c7a93d01c3d8fd29a70241a72aefef766e4dae34e8e588af10f32ceaf643bd7fc181c0bc3de7133cca3718fc0c7ef43163f4a8a1768ee918b716a527cd7d3d9e86802e058fc81084d6148d0da5c58a2c821aa5850e1edf1fe5d9b416eb1df046973cda39de45c7e632540f94a19a0c079837043b38985586601715d2a0815a650e3ddf3180f4d93005e1e1090775acc92e699698e5713400846a8fd5392216e53720d8764442eb35bb8c1325e2f7aba2ef804ada3fcb17b4a1a249c782c02112b36f3822107952d015b21b4b30867bca0267229678d0248f9942dda436aa3e2b694a26bf794f15b4c82a155081a0a1603d6094a43cf79183e8ceeea8ad0a189d4971eca2ae95f798a831646a207a2e41d349c9db3e18636afb3cba029a26dcc54f5dddb37467d61c46c233425d67135e84ad9a81658adf3fc43b4769b660906dde11c3235a189ea8d023664e411a2e74cb9a4b488583d32576ee0756156ea3f3c068098ac4c9ee6d08608bcd1ab176c830eafa11b1ea000bafb322bc0e59de5ff014ee60bf5b31ac4d49955a82e10833215bda869639724ff3e128b44d760ad3f35768adbf45323f46fe11c0a4013e9ff04f547dac004cab559d599732db7cbd01deb85c28e31b305bf0657ff3c3e82a8a9500bc50a584be5482f59a4bc13ac07ef48990b92bf84c0afa3b0086b6b1c88b48a6dfd91a3440f9a7197646924833463a7deecfc3247ea1aa204a4a7bf7219c6147d70407ecf513bf27de7efb149f86deaa0a6e5c0701fb21e549cfdbc2b3a059db46fb4753df5c0c62d17022b04fe02c528126bab6add93b74e3de0f2890f0a5e9025cdec73a8db438a8b26a29948728072b08323ef760c71d50627d285ffe1a697ce7a4c724a39bbbdcf7ce302e4406929a68250a4e5ddc0387c4bb6a5415da595d5f1306d0d4b47bddec71cfdf4ea3038473fa8912364afa58e398762b3de2d5564c44e8852906edca22d9a9888fa49340a56446c23f48658e8d4fb5996eab30dab12a5da92a420155d611180b1cac69e52d6cea01d8fbcf95e49b9eac70d354304ee4ca67c9af8d3b430525c1615c9acacf503ce30b09463b6eeb12fbbcada250531f5dba85f99f6f239881b21b7e3f857a727371fa616be045804eea1beef0ac128380eb302cee9681962d9d03a46dfd8a1b4f9d086b3d8ea0196e5a952f38fb245efa787e52f43e9bd971c526fffe044838a08a55446eaf2be5ba7707a39c9d98e89477caab9367a0b8278f57e65640eb19f46f0cdb67434bb24acdef7d2a7bd79d3ceccf1777f941cf3f1be05ab86c3fecc096a6db07373b7970277ca05c3ad2a65e35c50aa4d7267495d9f8a5a4b1a4bcbbc880f23a45a2f04114ea27e7be6f00196b3ead4754606c98f53673f9d7675b98734a679f67429cc580ee3353868dfad9858520e9d5e0e8d44e410245a0e9b1a020003d922ad93342bc51fd1fd61868a1a0cd3459f5b9cb4661712fbfd357d358b2f5e7e51c46a03a3374cab3992e8ff31bb2330c62a7d07295c3d99576d3cf6659110da618273449a7d14bc3b9a8e74b725ae1474418a914c5491c1037e3b1395d2316dbf037376616e1555748cad8827d0d57ee426954f41af947f4a5424b92431dc5ed548787d5198690162b7502581d06998bfc374b15c534a39ae9a753e4775cf4683977fa9890de50b2c6e128dec7a291025591bd645bc1dad28f74fa7d59e8aaac4e7ecdf30564c23608926f808188a0bf20ba942b5b62052c9a7bfb8017466b75edd4ee92755d7c377b2df3584cbc15be51dd5a0b4fbed0bc4427ff3ba40629faf1ec13a57b86f7378159f8685636dc013dc0b43ba0e7d6a52e4b3596c91d2dfb1257506a59a4a6d6b9f9347bd3a6e23183d4ed8e28359a7f91ad99f7de7cc1da95771838ec354a6cf1ed1e295d72c73dc17149f2d3979957cdf7196a01fece4f1f0e1c18f4ddb254b1cb1cc7b244a003ab66308087c5b3d717b8fb5e02d8405a66400a0d4e66305ffe5c0fb85f4ac55b3ec3a1945030c6386a5d21cd88b0d501368da89406a213ee532c4a0819fbd39cb99cacb7ed7a8e74c9785c5947f6fe4ac93b76f94978e248b1bd33c7e008b3f9dd10998dae01201161540532aee8c31de74645958b9e15518992ef341585ebf1a5e532b85a22c9c936e90962b5d5fc529c2d2e2421e46f15ca6284439841a492b53503487b1952622189e876e944bcfeb694838ed1596a942fe4ef14423b9f69b232e7f17d0c2e656afa185721b71658faf81b241b54ee9b577017834330bbb65c843f2fcf577d8f368a9ad4fb0a314d41d99a73943bf3c18211a62804baf23c4dba7f0017ed0793471c28c1ef20c6a8d09687b2faccd4e3fc12b4aa0e0e9c59ef03ff930f148cef8586c7447d918372a04db3d1294d231c7137cfb285af52c975dfa9f7b1667fb026fa2ab491fbba61ed42667f37b823fae2eaca4193f62ef331db685ee392893c8102edaa2f1bf8a8d05dafc805ff8dc4d443b41448be19b45d7d3164351b83f0e3baf9b84e123b1c635e0d178098c6068d3a2bb2dfac9366733cdaaf3f680d001b48171799e023d9496dafe912d8892c2539a4d7e4e75969fb4579c01dd0ec0c6d59fe73a2b725992d799d70aafa7427dd8143c15aa3f4bf6756342d3444a0c9e78de027090419ab6102d0cb15d644916205378d4f7b21628b5fcfcfcd7d2720cbd14361018e35aa9b2078148b029c489cdf4b917ad0d0c2e503935c0468bd76e51ff0fb20751cc0853989f862d2a51ff360c8421cb143e01026c301a02597469541d4e62e4ea8a0b568e24e3c87eed8b755e8db2f9ed3de1bf6499d38520760178c33fcb1b92ece6ccd7fc7d43eb73f8269885dcbc962509e92c5fde53999bb0cf35347f080772db1cfdaf4c253910f12dd06004ee8c81d2cde1c125da7c8325a299bb847694cdece449b6d17c7b27f964af73b7999bacead3c23efdd2a1e98396c358fcaea78d31baad6f93d0dea7acd0a6479d04dd3dd84141c223b527d2f4f7e56a0129ef2f018e5f3e1c3510ad0ff791fd3bb20fc876f399d7bf327fe843d73f80626970559afc437913d3baf09eda026de4f94cae7789718ae3638ece85429e95ed90a0e3df38640dd55e4aa49c899a3ea30efa57d404267e32217c0dc1ff7dbd76e8aa3bfbe77bc4986c4e650d06cc8dc0c2c9987742e6a57cf947e5d453ba338156f5c4a5a11a1a15dca3f7a0d0715f6f9332ea225be84c5dd9a0f3fbc90ad9ff0dcfbb2483b10a42152cd47670b93d056bc9439ed4cb2380d320d44d041c81d9ac885c70dac87d80dc1aa1bb33ae682debd8473c792dc70ba189ee83e58a129ae7c6912ba66c7b2696b08982f667de38a13a9e8e30466d33e74a6185a86ff54a6e693e3eaa015e19450c8d0355b2517c7fffc30f31bbf9668df2a61a2488b1ea69ce70e490d959c6b83ef3a5126a6d27050e3e1cc64c229b6d931efcff62c8fcdc4823db1817858656ecaf942af59825980f9f76571856c03832cf81ad74ae273ab4b218a22af0add381e862ae2ec3e11a2a0fd8ce395238f1355db6b4368cb38de2cf621c2fd17495b9c6b0b9d7f0c311f3e1f88a2721f8527e9ed7e13368c6ddb1bb9f5003d4f93e83b8fa36cf99f71ab03a70c642d2ef3539e272010ae4dd15f33e1ee9081d3a5c5d69ec605ae254549c2e6848b64900867aee2fd0e59602dc806c08f0b06f5a0c346c096bb7c63e8e4a6e8094a04e22d8718ac9c5d9e18dccb4c931cb62e1fbc147752c6b9b9969965c1f65c25fd9a98dc2687c21bdfaab2c3354252f230fc7ade5cfff94dd4ea076d2c72a83d0490a6c68a6e1afa66325eb83a6415c94c3b4b26ad9babb3612c916b85d4332cd31fd251293422735742db1f209c987205130a3fd2493827f7e3fe7c692d622ad2ec3bf1e5f1e2f3ec931d6e6584c0d3df8524325ea33acb92d24a1f3802c9517faf937fd3fbdb4fbb2dc986042729fb22b6b5b530916b3e0706cbb21837cd9a49a517dab8d27f25cb647b6122badf616e223ae96a9df9a667234e5d9848eb76e2007b92a201dc1102435d6369d2741d78d6e2c44087f6239fdc3780a61584f360ba45fb53d9ed27f4c3c954f484d1ea9db63e57a5ef3b1032f8c9d96f2286bc1325802fc305dba2e91ddf0f061d51b824d7418160a1b9d03a5c07c4f22d2f78b0c05364a8099a3ad90ea198b904ea4f376f88a39565d99e9af48d0cf7aec991a4b15d7a836616a83fd58207f797545b39c00280f913bc63dbe02dd794e2f77ea041f6717b51174d14c618c7173e9ddeaf6037fdd0856b11d3962cd6a71bb4b4b762df56c1864e9f5685d1c2763f77f535466bd11a15b5b922b5ac0c4ab8f81946e807113c765337572349260b349cbd9a4383a2bb02188107828565140a39f0e4328393b02087e5cf344c3ed9e3784784ebae0db6f6a92fca0e04700b153e219d373ce00b190ded04f91afa5689895cd57b5487b11168c9a5ed0bf1df28b04f561beb6a4680b4e99b7464f2c136cd745ef886a6e0a148f60a09726f08970b01d2d2cd292796b2f83d43db337a910df51f719e7c886c2841d6a6ac16d0bf804c929142f94c786999cf031de8a5e08f60b16631db2c3b54dd4aec38a980facbf78536004f04fbbb0aa2ebd8b826be699f69aed999ab7143cf25d77689d738a9dc788156a2e736bdca1840b772a59ef1a1f4ed82b0427137902e6370ed00d0ca1eae1416388fa150ebbe0cb09915348ebdf04568256e670ad3a4a1c4f45623abc1ec47497e6caf440667371fb2e141f3e4a0e0c2082b083708fb4b6613c0698305c53b530af62f3f0666d2383677d7912c2e188d6c50372521e16e7fd3ac4dca7d2949016e7fdce1e730d87474f42edc4424e13451ebb1c088dbdbdec265ca11c78cc74031ae0082c598533a191c003457e6ccca26ad81e15c0a9fd46d69c1e58aaf0186620ae857c3f05524c717b9a4a086c36d4edc1586f86fad7ac66c1c2cd10d3ec867258913be810522b7d08292b0a3c90edbc9c8ba6881a4302cb668e6b7008394f3a7a80ae8aa63d9e6b8b507cba72fed356910ac5998b323cc0d8fcc1bdf67530cee03948f36fd8968fdd4078f3a8a0b44390814de06cd9418d7d1947a0808cc94cfbec082193a1311119fd131b73049a668898c79a6e2ca0cb9818b7d6194769871af00c60375f6d592e9b7834105999f18a315859d891ef87b413c6f5c1fa6e6460a3f16c7c4181467700fa676d430eaac2f60d8eac0cbadf1c8bb684176d1005d725043ea914c5fdef14abadc8d4e4c6a68f2883d944a3b5e454b50749c3103f9644c5fd74b14e74a3568fe940e504cc9eb9b0c33a38f06e1917fca9e9d092c5da750d18c7f656cc3150868f842e6b23812f0a1fba327658c7d942a9674a97710987962f12443fcc9334fbb49e06002275d66ad9c7b6d772da957bfcd2d8d47a713f5b5910fd7b1e106a1a093004d0f087c79fb675d3318f7391022d738f506ed6d44fe1d11eb1ffad4da404811dfc51d57d35bb12b29db27d07367c4e4915cca3fddd9cea35bc284eddbfaecd7604dbd3a1a432f0d97840fbbaf9baf82e10cb6f08890e5d7557f49f972775526713542827e802591d809c175268a01dd217fe8f2b6ccb6dde466686d3338f93ff102cb31af4bf2a21d4e61be23bd9945d3fc407ea543b6396f3e216bc880afef3271a1e5b850b6324219964a4710e0f5bac9fd75ea82798362b84b52e609de1b057e98b042be6ab850a1fd50fad85387a89c6f4461e68ac49cb666c12dd912e6e19c4fbf0e815d610bcfbcfd2846ebaab6732ee169a256bd5be7a34b9d10e1a58eba69f64d9b159767f20f879aa258f26eca0e2b0cfae001fae8473853545d7814d3d102e0a6f4ae85f4ce545c35520d167f1ac47cec8fa38b7d80d3ff7a5caa2bb0b2380616b51a50d63348a913c2c2827a926a797bc22d1b54d428773a63d21119577a41464dd6ee1e3f940729c3cde6cd6bf78a58e94caacba25180e96c2cb64b3302e1ed45501e417724a9d52fba17c12150082a061c199bb76ce7d9c48884cd975f9415219e850495d6189651f5c931a8bb1b301b15060054187c2a3257fd4cb4c5daed89660f775695449ad572a1dd89d5932a58c01516b4acd3cd9dd311fbfab191afc8a325765607a3cedd50c724f41a401753e5c553caf31d61254ab40d4f44fad201b4f3c82adb7fc4351031e5c604bfa12170d66e660ec1f72a1482e28ef805725683e00740eba8332119f00981ef7934418aa0fc5e5937024a993cb3862807570481f422c5cd17b7fb3523c75e786f4b896e6bdc07160bcc50ad97795d86d9547a8156b206fdab2f4fec9e981df2738088017a840f8f01dec2100715f7d92bc0b39aa98b2bf1bd7383b4a78ca0d7f7d747fe45b18b5e9786bba45bb17ede9b974eb270eb8da06abeede102a404bd3330fcf660eb843d5bc7158a2de8c20f1db852c3855929dfe7395e3447cb98547aee4349ed53c045760ad0c334b9c994ed45e4ce836c65244abad523833d83bc6f642e1c0f49d3bd27e53a40a390a21294f863158a7971e70d48e6429bd775a4daf5c34e733441ce7115af3e34fe48f959bed923264c38dc02f2de8baf46e5a64986bd3b81a87ebb349638bb5c19acc4cb2dbc5e9d1ddd69d853efa97c8b13a4f0811360998f39abf29371710684402f5a9941f0b7f181804693f1e5c7df3dddcc6d75b0ed505e394326c78900158049029131a7bb93c6011b044b4f2b18efdcaec70542ab9401703bec341dc8b75db18c17fbdd4e3a361a39aee31ed39ac50ea90c0987332e48340bc842b007ad330b26c913dc4a46709e63fce31c04472dc98090e4a7a9bface87cce10455794ae8dcb1237201bfd5c28f01e1cc50e229ed8795ab7a6dc12bc8f75444e7090814e84d1918b30de41d389ecc07685db1918f193862cfa816b94470f2b20547296f16e4e5f1b90facc20f7fcbdbba284dfd67e30aac9f5d8c96eb2ae2af22f1514e6edb6615687e5a5d0f96b7c3c682ca619e66e58693ae2f4a4ce429d1ad0246981e1a75357d69ca8851c6572c0ab1f10a22625fe051ae5e4d6f1975d7632f39eccdf813235ddba91a18b9ce3aeb1218e745b3a23e480aa5af248fb82fac1553415c0aa9cf989396069063a654949aa6be9a2e74b4fa8319703537a962494809811a7c0fd0613853ebb445204e764b98026cf914943b1925373c3776c374737af4ebb68595abd69530b294c459c9b899f5bc2097c3b88f7c85bf9448bbb0c4264c15afdd008d90798e558af7c05688b7630fe68133f49146c3d16592e14ba796eef145a760dc6ceb26c46556505294dbf4205168ee8cc39ba33d6a95fdce7820044738ef6d7b4b65d1f90ebeb9e6481de63ae8f1bbb2ce23802ad40998606515b94d4b6bc80f02e9d1027d4c1a95274bcbf126d4bd1cd8bfeb238a4078bbb0e27b7e3723757ce9bca825ed92a97e46692859851d32beae0fc20c529ec0a8a7817c4a425e85e8aeb3f6641b71b46c5c6413c003737c553e59a93a85bc05a70b98bdb430a0bc39d292ac29b3aa75edcd904a203a30cc2c96f5d09b164f21457c4cc080dd0ef3ba42130107784f9200c87a0bf8f482868bd6346de6b9a6383f1935b24ee386e5621acb9eca73ae60c62fffd324cbe300e02fa652c04122fb3151704c5f4ee10808651e749ef244a3a2f79eaa3907eca72040adb0a0a22409397197b3913e3208beb87ce2ef165323ae6237acc4ec38d6a1f57f86f1a206dfa65e484c580d1531f4bd6561928ed2a4b62b26a2b0348c6ce66db3b14564cfdd6ad318a87cc0c58bfdabe8c0e366030c9c99969fa65c24324c55ea143f91a4e1fdd0c42de450c12c628ecb68b63d591f033cb6b8a91f99c726d87d2469ed2885ff1668eae18a6a40302fa04e8a3b4426dc3a6ee731c4af197416e5434a7ce72d5d1c792bb473e59bf6c1fe7fedaa5c408e704c5b713bb91d69ad15964468addf61941e76bb019b3586556fb2adb802a841ea82cfdacde9de718c6d8854601df55fb60705c866af4fa0c9964b11ade228ddf10c255a3445d4c221cfeaefca6f5d9d324f534c68438587a4160c95d7c55a952f01032f4b3ce4d73ec30983772fbcdb84f0e51924b24d6b3bd517090cb0b48a8605bbf153d68121597dfe8e20fa2e219f77831bd318651056b29f9c959b6778dc98b8c608082a5a4c6511db69ec8e53887b14995c104535a188bf8bee7bc85bd1747c4a7264fdaf1950fa4858286019e6fd2c7d0c7509fdea02c321f45e94be203b8c7c59f77abc4062d09428bfcced5dcdfed8d4a084bef5870a18f018dc4998f8694d5411ac5be294bb6b6821037895a2cc99c55a83a0befc7c8622c6a209cca6cd92dbae8327018021274a6ab972e5cd308b019f9810e72e37a396ec7a9388b6899e4de3d0402373183aa9465b955713d6b29c05b7e13812f9d9337fa4bd98fcb3a4fb4d650ef1c80b86f8c9da8e71f1df0991bd0fb58faeed02b49a68254bb84f76ec067ddc345ebfc938a88250262e86b351850a650d0f744510593b5f2918d965c91fa4104401f15068903078e0ad090164d7f410bce46d9454590c6f5e29631177908ece7ef88db6f0768fd82161da0e378afdb7f19d909e85599782730a5576292b7baf9ad32429c76be8beec90918a4dbaba91dc8d6de5e62f65c0699a9485b94008a706d0776b5bc00282d77a6caf9d7e769d6687311506ef100b03689b2eb9268268094663924043d3e99092ac2b22817f6c7d66ba3d0af07ba4a7bac2f3e7542a1679569c13be7dd2f5e0bc178d4321dcde1d32656b25be85da7d392e33e182e93f32d4e01475632aed582bfadc6630eaf415dcce37e6f54455bd995e82b9562a796702aff536659a2d65361548f6f5185f98a24e341b1375061c530c7d9fca62c9b7624e0321601950b50c30c2971af6ef286f716ad5aeb573794f713f38cbb7259815abb887ecd9293d62b50e8705713cd37497dd74d84115a865778bc61f5266042153be31b8cf15f31ca856b393471a5512e3a40a21c5209665a65e67bb8910b93cd021bf5dbec6f79a52dda151de1e319e82879587ddea9052000cc999ae99dc2c993d0ed0d8855f028dd282829127cacd8be24aa2c1ce67c190df6d41de7ce76269d19b74e0d846f49c26d0b53e2f02794fb4bea492a7a9c29c7c844ebb647a7c80b938c7728be37871d9b295d7c0b229224819ba866d7db3b568230c28ba911651588347671dfd0cdbb1afd88fa9f208a9076b4ac303d4c8f8477f24eac4841733bd07af9506eca8abfc7c99a7ae70e1f27cc53a368f3b54672cd692488179365427db23a22dcc6b10b9bbee6fea44ad6deabc62876334479c0ae48d99a960ade877ef44e8493bdcf9c5745fa395e0681a25ad731c3cb1bec65b8ac208a91c26af773344b91ae0980c34117c8aaa9a22ecd8c5976f692832ab7f896ca80980f23f95ceb919a417d429862123c196967225941e5631e573c53639ead533007900afc73cd535c9af08c316da0fe51b6e1aebb478300a1841d4d514b5f7ad6448819cd4dafd046b657e3f2dab1ebbf2a4ea17f0befdfa363d08c0c9868752726f0448a6535d5cb965420a14e461db1522befa980f099e17facfc43f57c0672de496f5d76290c8803c72896c3176986457bd7e2ce5821606518c0a38d21af81dbfb40fb9a1f864dc5df2ef847d57a8629a916c1a1666c2ee0849a63bedae2a92d1e5477cc4bcfd0cbc685aeba5628c81108a2baf8c3c0eba7d072691327534922c6a02ea621ac423be686413173e2bc4b3180371e142d5d4a4b8c618561d9cfdb9156255a0da33527a1c0c9401ab0a3a63f23c7f574acd3716b4fed3733509a6d6c2491d023b5dcd9c1f0b1646d5e790464787bf4be6dae20113c8d7ee2fd19855cd61976c2eb27bcae9be42145ec3383234fb6c3c762080f12f8c908d0b5281dd6d0381e4100dab0127d82cf5b1ea8796562b350af8e9716bff86ef1129486469ba2685c671fcc381a31b9665e588e79b2fe0fa9035035e4e40fbd05dc800cf996fcbb11d933ccf7a44bf795004a9d6e957b8e58a205ba83c1abfe3e46d248f01fd175a15410b8f00212bab1f57617ab80460e414d97107a8aa04bbbe988b6acf8e5f231bb2338fddc12cf52102360749903c076e7742837a34ba36b8109540cd6e46ae27b27dcb3a8c15181e7e159967eb013c58caddfe5569c44bec58ff0e02ad3474e7891956e4c7e30d61c9d13e21b5b51f7bb489ff15dc66d5df340dd0b7786346969aeb8a19fab6140c98c6829cde27f979d10c7740391969eaa7dc54d30c4f074216a8fed9691ae133a4dc400f8fd6050d51d2e30a532be33ca5eba3848e62374f98a4383c3cb8be0d4d0274adcfc1b73f7a9304516d746be8ef664864a7e2f40031900dc168a38156b680360242700bb95cae94b01a0fa0510954b80c0a070c538340c4480208e140518037c93a24a0623c76fa5b4436221a22d111c6eea8504cc109bb0c9f2858b51fad22111a3ad6e894204990045ebea43e86629366724152628641bfa9f41461595ce35d6db12102be5aa3e07248ebc6a955d36a40f23d0050a42225f9cf39b611bac354c13addaf6c3b4f078f4ab159b516267a9be49505664e480b1174fb1a673a079e5c13319d72d2c6a2dd81d685b60c8fd54634da93247eb07e5dc63ca8e69edc0f8fb306db11b9ea07ec87f34071f8f25748d4b5c8b9ee31a82fc5f660c9f0bbeac6a57af018c723e7f0f9ce9a023c4dc5d7af2b90ef6a750525f55f7b6b420f159664eb90d7cb337d4fce6452d0e438049ccd839a8b927142cc1ebfc4b18d577e1758bdf903e01b7cf6b1aa1ffccb6254de65608e3962a3290ff60ad5df7b98c9936df20683a55833037d0faa3146f1489cd2996830fa195b9b69d74b9c6c45e281b32148a6f94d3224775d6205e79b7916b6a1235b567f234c9030a610a20ec2f661b7c8904d7343582768b8b0ffb53a265672e9089f9fdf8a708f50fc30dfec143ec0f5336dce479461044b8f0f4e5b8aafd06b4c7f8ebaf77f1345e838415b94de0b273150d3ebd635590ebe7a289efdd9d865228c29ed2e85dd0cfb148a650623fa293341b9bd1f8cda844aa969aa48e94d986a49cf1f936c18552492b5358cc9e88d69b6ad336bf66214e284ac884bf8e7879c64b2201e3dd8e376e20ca651b0260ef98843531b6c4ba0a4abce08115fcea63fb4c7cf951c4cbe3739514f997bb3ae92463333448ef301caa8780f3f5c5147d851088d431b35ed92f43dae73eb0061b3cb2f207f5d7c1076b881f95d3c055703f41bd0f630619cde2095a1e6f989aa7c2244000dc9dd209b5e8e885219feb27dcc2a900ed1c1c9a3f65b2ae3299595653b9ce822a0c9af19a458270a534003705e9643758aa0048a3e6239f44e6e4d12a1f03ea21e3c58aeaeaffeb03407cdb2b004ee6f273826cf8e1693c40ff7feec1968c0c2dd90b61c082f17b436567842e5a0414d73bb78c62aa3f849d885870102ee8b862813e6a0174ecb5aa7d150254758db38c67b3c8ce3a96c845c3077e3b28fb50d1426fa3897c6f09828187f588c6ed09dc10c613810c642e02023b0ff050d3ff1e206638b106d1484f04fd0175ff40957036544e33a9c2012392aa2f3ac29bd42782265a08af66fa5611b71d4ebdf4e005aacf016c24198738c99a5c3f781521e796870e467ad0136f1f33fd4299ef101939022b5ea62f595bd58a6ae93731b6f0bc2dcc0cb5c55fb2c4c131b830b6bba1a085decfe78a03e9e5e2feb33eb3970adfa659a5a8d07881b6cc6f250f8c54a258e13158e945067df27249b220deac2dbfe29dceef0e1eb5d7e3baf120d1db540c070826f71311a16ed100badfbf13a1d9c2fd4142b7fa66e2e09f1024b19566a0e17a66e8a6f68641d0802fcb451f25388332e2a87a3dedb35aa0818a05f808af2ece500911d166ced27ca994cc3cf47a32df31081056d5eb96ca3e077d83d6e7408d8e184ca076f5b826ec4697f21bf9d9b8eb5807fb430b453f5f3742611a94c9bcee11f1b821882b45af0606522999e3bf714b379332537bbefe46a98a8371f3634fea7a61836bf7ab050b7d5fb6568c5bd5bc84d7a1a708c6a7c31bfa2e4bf199138ef80112521fa265bd445121d3dc62ad9b88af72df1604360332101d457973550dfb92f4d4acacee41a88d7990fa947e09cd6dc26d448844977c230c73622a59cc6d660db5fe5e3a3beb9e12b0db0a6914bb5b788bd6425d564bf95fb12f7c3d2d404018b7f686b29f679815341a058683199f1a9bd55d7500b8b94d8c8faff4a9832331bf4f989839d37fedf34f0f1c885cd08b20b30358906bf8bf0addf07a05572228ef6d5321fe17b8bd45119f76fce6fbc8208f04c37fda22c88c6dd8bd74ca4055b78f0f84922c0e40180c5fecf61d8c1d92b46f3b250cf28870b9f0a4e4f447f1c8abdcc6adfa4aae76df26047257aa60d7987257badc87e751e543e34d3da0b6abaa579635a2494a78741dacea5f2b192f2e34d6f5c5360c9d4c211e6cc05ccc7e3f4891aedab198cd7ae1831411844b9cf7b22225ef712f3805cca9463f03a70c00f0053b0a6b40ac95db0b2fb801e4b66e5dbd1c697a4f43de25655856e3907414d2dac8ba71c1fe08581ead1cf33a0d4606cfc29f75b7300916123d2cdc103ab9bee6b8a1ff0f177451d11023e5aec46537feb75d7831f25e3f2bc3078fc6d1c70fd73bf89363f6c22d4ef2b4c4701a378ec919a3c8d70cee3d6e71523e94290fc3fc537cd1cb5c366e1cdad9cf1e953f5da601754f602f95cfd0e34a85dccbe99b2c4b1af7a99c47ddf5d87d6fd427cda8dd43385fcc0b02237b477b7d35c84cdc2b48918baae5011cb381b1b7c874defc9dcc5e6a1f3ae4f03f785e0eb134e94e3459728dd435fba0bea6ba7722f039e4d5ab16950364951d61da1f91d76af65145363eb93f37155a6a4d554c7f128b04d2e4979816870fec3283e342e3b6f8229f1134e788b907520836adb838b8bf3c59467bb1fadd761cf2fef0a2452afb138acb8068a4de0bcb980b84f49d27af28b11def275c16bdc05b60a0ddeabab306fc354e617d5e81ce80e178c4e69132f7e0b54d56e80e443bf9504b6e393b99915d171f5868636515738dbc823b3a0bae008dd7fb6847930c89ef04c9f18c61dfc6a6bb3f1485b92d3358f74e78a11e00f6c5089f2ff97f9ff6c0f9714000ad85cfb73b50846b77474877dea4d00125c23b8f13f82b79b8773e11132061e0aec14c33fecee72471421103062f7e4828d7269e238cc0f521046abd73dcb57ace5244292b252115811274802579e710e84f8a406dd249681aa77837f83c82d667bdd190e061601a19b66181d8a2e716f2453aae021e5499e71ce7220d6072a801bbbbadc9c648d9680ae3d7e5d89690ec3c33c0009e32474628832c2fdf8eb2c76c8b189d578a40eb9c61d8fcf3aa2524593a1acf9e0d59da1796ec567ae236e3b0afcec71a176d4538f3aba37865a56ccd02bed66ee76abb02c5f71c8958f0bb25786d5b84964a0169a065873d658d410f07b5d324d59e432e52ad7cdf23d5d2a2f2f146b108ced1b21fb0ba71e38b9c314a1c57051ae18d5614b0e4e2ab4458e74851a32cf75daf637fe8ea0bd33139b82c6c141caa423e5d04acd7fe369244adb246d771ad5d93cfd0e65e90cf8bc854de524622f918aa10e1ff818a70741bfc0542b8525b403b7b790680a2bb4545a5d6295517575f8c016914c79a428c776663220643928873a7502290e0f40471b60d2547b10ea8a7e081aece5ed3bfb53108124ecde6e7aecb1526448a36e116f4d040161ae3666b1b3ee82bbd1f6821332bf46a11c051db72c6c0e1128323b1ecdde01300ef58145b360f0d873bda069ddffc0bbce4cbc0bff6b267044920308583d527c36d034b91494307c187d86c91925c92a6a000ca92fcaa14d50deac86b72f7dc2e4356e006d0aa06b547f6d344d2a36534830ec764d19117e212bfaf396fe88f9dddaf30f1c22852966947fba363a581ab4c5f52904a06da57dc92417811afc641de7e014c010e579628e6463d14405a83b56d494464885fe5726df145d008a80106fdf499cab42f256f2f70aab01a97a2e044307a4f0dbf23d07ff60ad29bfaebc804c0651077bbd1532a08e4aeaeea22157925d9794074f15c245030825a034191d022bc6a2002ac54d794deb4f6bcc1fa492cbe460343c032febdf070ff28b46134c16bd0f713c6b45730185906adbef13310bd2ef6519e9a5d5e7b56b8cf4f0cbe18769e3250a62594be039297509b9398e2a01e1822729bf05efd02ba829a33225fd89ad4f040b7ae5f92badbd2c7eed7213fa0633d43bb27e8726ff1a93599f1102bc1347301c1009d00a56788fbd73689367da5859a8a8c1ac0dd96f8f5ceaad89468702a67dff410409268150ea9d81855855fbd01cc2822b59eb1c7d8735410b65d299525c570ab56c11246faa84670ac4aa4631b33bf07721cd03e3d2cadbfcd877201a30266ac3124dc019c3e8e7ff5c566c28e4830de6a9b45313587f4a0455c1c33eeca2a0aef7ce3534f7033925cc82e66626838a53e84d05fc86b1dac1741c0338e089664c357e8539a9145284b48ba53b83eaa6428d031e065ae64867445f63208bc0a6eff9418b9c511ff9f4e9a32820ed871867e5619c8d94cc107a7a5671b88c81f9942c85e145e4a8b110701b9cb25841628dd154b1106076d89b0b032be95ccab12a1550106c9e10df08c3103f717678075764f3a234333cf7ec5cbc4aa611256276dae3a63bfaa23b445c0a856d8240dd84e5972a3907b80ffe6254bda820f19b194f73aeb60f042f26e86ca626ef8920f81ac1a17185aac448341268c692bee8c4b15ed8f1a5a5acb547c219945e6afb6f02e83e0ef05f7f5f2f0202800e4287219689c66523d4cfc1872070110cdc976008c94b3476c5995ccd9a5afec1322b04dee56ac03b7f01782901e6ae3d4fe1ead6330db934eeecdff2e81c202d21611fef0e682d822fa3aa84b08a44550af70a3a9eb69ec61c6b042f5dbf1f59895800116a052cb1536d44f05c29b0bccf7046189e8dfad60fa49e8371488380649d28d730ac4c54d2d7fd6ee182ae691c4ecd2f2ea729f1c303205ae1c010638ec63ce8bb45905a477273732eafd44c10c8a72aee55fa1bcca0ddb2c21b9bd57c98e86c81c4698641ec32d58d8d089aca6ad2ffa244373d339e7a3071f29d753d90f5d2a82fb2f621cc2dfa46479a46b3720dd238b5e0305e264d4cdbaa65f7df13d26cdacf957f2872b6a7a43d60b06c29ea6753a0a9a957c227d63c4608c20dd8ecedfe20ca42cc2e224303b360ebb768e9d6667fc81ade3041dbbbd0103fa92bd6af20c59dc41e812a0909b140ed6447ab0e05a2908e82b7e1fc9eb60d37407c3a962774fe976e22033b2e3f9e012398bb9e9c72164367b8e0bd0f4dbd8faa31c124edef13e3d181821d8f863fb04a76158f044489096704985aca12587fb310286d390d96fab15837289d91a8b81096796457558480919dba05caab20f839241803e144c10b3826fc4cc84dc238616c9cd86588134c30cd500d575fb9f84fc501d0e2ca371215deaeca75b44a0500f0479d5d56b0ceb20040976d6f0d8ed0075c9c45609f7f4eaa8a80f5de5207853921a83582855e8fd3e8864e3bf21293c0050e982709a20ed32a729227b0c18d7572f30ff510a910128fe993cbf8dc1d86d0427b2b274e1cd902b8b6a9054698fa040f6c127cbbea131944a94502203588ed01b5431e0ff78213b8239f334e93110463daed1bea0d4fd88f702bfe8ed1888888703a07479014fe88042414247fb72a13f1d2ce64c9bb250399344b536710c1548e2b0eddfc809dd8119415864bc3f1b409d34dac0931971ebc3fdeff717682afe05fe1a2403b89a055bb561e7dc164177328d27d86c11921963b3e03fc5910cf29b76b8cab120783f14b737c3fe6445cd310c7de2b0be712d2c3626114565a7d0839055cc9d0697022c745f32706a8079b745279607dedcfb090653218e2f16b3f7a70f820a5129ebe7f52f2291e4703cfae064778cb13be36f5090d7d76e2348b17dc5b9bac25d6b00fbbaffde04ff1dfe270ea6ede8a6a7b799d1765c081eb3559e693fe36c2297d6875f198a56b1e3bafa33cefd192c4a91b0d85762c7a51793e25d8924c80f328c42edfbc40e1a15b0a35e4181f042c4a4231682f8e88a5aae28ef196bea40c46182a65877b456de0878950b94adb7844a5b9bd27f0a4e81700e6b1e872b650139b8b8dc0af58cc300388060f252fddcab97dda109a86d7001697f6a3b6612ba5c2e204bd1ba7c2693c0af921e2ad285b3b311fb5f44c29e356d109309341e705569b111ae13025f2fdee98770e37c37592b4d70d6511fbe7d2c446b281c6cecb1d83166f39d31b39682a9c7ca114ffc5c26be3c7d4c82a4075b38babc07be963e8ea1d06c20187839808105777a1783cf32470fd528148a417b255d5e10e4c2b5f25fd12254a9684d9f1375749ee0de5a4061b905931ae269e4b2db1bce13dc47fa008b13cdd63b21e7f1c2abe7e8d0bcb10f89feacf46340a5cc4e9b162223de007c31f2a70147b0773f256046cc66e97fbbb86da512f414f4d31dc20296e5bd2c064cd5d28719ad08b87d8eaa5f99cf132d465aebb916fab3e098001f70100acc7340453421f405f4534f174b9630e1b5476c6c8ecb6c6de7676a64b686276dbedd08394f81cf6dcdeb84d850b61c191723a40530e78a8cbf9d27328cc7acfc4586952ee0ad7c9adf867fd46cd03bd236030893e57138c73a88a8299b2edc05420845245f78888f25095752197d820c306cb42b0087ad55fc646bc318e949870901b8017f47f49510cf782603bba52a09a8a948614e086d723e9b1bd6e2649bae15ba66a29ad7173f19d1477f3ba8531dce0754c95009fa806f377921053c24a0f612598f1da56e2d3e51c3a0857582a40136ad4570e3a617f51a93a365d9a908c9f545eb589b584d0d832d69556f10081ec1745cc9daee2da686e15d0dfb04f736d453c32a3c9ac2cf6258a79a84984be5bfc0abb2f1548297bdded19957dfe207907042e75d51e00096bf5629547258884a91ecd7f7275fec6c7bdab976fd416c1bbc808350d3a693caec0b3f865c41aba1437239f4eb3b1c0c0ec109bad46337630415239b5b932001f6474a141500ce0e9e67282e6761dba9a0b6ccdf0af3ccb937fc801e639c3bc46537308364e7f1e5b667343970ced291c1057e51e9fbbc0005390bce1661d3afcf972e4a473bd184a1cb900201884a2b11613801e6764b1e073231f94a6c9fbd44cb1576583153c1d5a58c67f9e15b8944eb304fc2cdcc2df30150c8e08ba23845553f4f6cc807b0daa35671f53040e17d09dae4aa1881409fc51fe58de2001f18a7393a9bd642b2501a4d0aad71aa0f96c4cbcef7af34e402abb1d00764b3c90064644d820eef22b72251a7eb89d4da2eb0ca97c5e4bd954cc0ad5e8b3bc2a961f60e087095b1947f5517a7dc331347207c5edf228474c3695cbd65042b0a46da07061a58466301196693919603cb535505e74c49c01f58749ad53b61f63401884be77d606b940c01490074cc093cc59e237546fe8715eaa69288f0f7ec27a7768fa3aa634077e1bcebf64102818dd675bf4722e095a8a906bccf1026c2c56476698ceba92525e2c076fc0ba86d0f59daee86dd880a2010d576f5f61fd19bec6f0d7cc65d8fbbc3cc2eaf4af6a1f39884e5a0af0b9567c459f24c61bbf92bba2b9ac31483938f8b81f4dabd4927dc6804f84ce7121811362992283192253892200be22998a648c0d9405623c2d5442c515cc6dfe7484e66d9bbe9f34b8490c6b32ac222143deed0d1a2e9bf814a3aae783eff399e6712c11af8d907182642bb6c9a80805393447c765559ed7f7f126a7c1b595d02647f1f2c5c4e05cbebf0dec13d1c10e0157901abfe3aec99b3bc42f1752ffb1456b983488abbc725130a08cf11f5d21af47111f750a163d52d216ae8665ccc7c767d80ee80fd295cc41df2c37f983cc4dfefc423d3f502bc1ed7e10ff0cc481d71170f9a18bc73a1b5ed102274ec2364e8c34c5b2f84f878ef821281e6c9546a9109db2878bde5128c4b157c6d32f553417429051224c73159131e152e5ba65f7c1e06bd074094cc704111a6916968402402b1d1ae358c9c6011cdf2d4520f03ce99b866a482f563ab7b54a2bb677f7f390233ecff8785db148e9cd20641220dafb7c52456e4e3789433447c736a53824402a6b25bb1d7d215abebce6f77245bb0b0edc399eb7d19043d98b0522ceb71a27b846b0b0a8782f71d3b4dabb74028e2764dbc81cf3d0522c5dd7233feec3293114672a350d1a15d2c8133cc47392599a0c36e792f914bd424e45a5a3f938b8d7a81fc2f6fd18b2a8b75b57b10b0f890c46924e0942ba121853b5ec155a26c2fc30727766b9c25a0c4c7200d334b3e043bd7b4553ff89488f0ade705cfa8d5e0ab0c136ac34fe4739a2d686170bf9ab6b9bae6a0c9d3a7df3c5340a59184d66dbec882306a1352837a3c3315c63628f56551c8bab2015a5956fbb74a608ea36edba74270bd9a864a47e83aa8d9e4a03e7166abfa718a17b7a61a8c741e3378d962b42e4ce052eaceea7a5fcac2d8d8d7241fa30e861f85afe42f07d791d8e487dcff22392fc8ec05cf7e52427bbf240b7bf8682f5bfbe611ba65dd57e456dbd07d8af2bd5ca5dc977ca95a28e62004b55c095825451b742adbbe5609a2e00c608f78a9f839b9225b1cac0e752d0ab748ed9ba47a3116e01056e9fb75cf48c24576a7156cfa29fd65ecae94e08742bbbc611e262d1345fdc1fc635125183978250c56c05b3951d281e871d0db8a55683c184bd5a0c4f923e4f6a328eca6e5430e1a6a87a265f8e92ab2af9ed7ad76c868ffbd0a0e53d00f56b2b0afaf9da62bb586974408ffc4f44eadc6e5c33fffb861e038cdb71a6b61382d22341a920c700337c69ed5981407e3dd90250b0f9d9c12e404c9792a6bbb29d887a8c54ee13256198b670baef0fe9538cc326245b42a1d563a0298f61d5b3ccb7a5a805dc12400e562a0f62e1d757444e890337bea3b9333b823af1e4f5d3f90cce296245b40b4d22af28bf0f867ecc74ff45b8fded05b234a70e9c2ae092214e2da79f4b49244761c96ec67ae8ec224580ce275d8cb5d1c3ae64099f01fb6b548f6cf00990b4c1c09a373073c06bd94aa255163a546d3ae1fdd7c66476250c99e4b722b17b9b0f3d1df70cd71bed9a4973483d716eed4e0c0448b1e02877d5a7a2712a3be4063409cf4c0ae73ad85d406c7b17a5c19cde4f8beafd8f47d2ecd342f5ca169c94a677473a1194b346ff3b3d9322869727becb528a95c9a93ab8b36528d07640b593bacf66dcd1666e6cac8804b9b04bf542efcfcc6d24897db371ae74f36926d9de5136234d6e32534f3f193b85d39aee26dadecdbc83ee29d769f442442211de1ccb5486ccf47935fe78f64718649efd64eda3e26d5830241e7c04a9586e6f73f362f80bee42f0803303c141ba63a6ce965c993561db695a1e682cdda72dfd3b2bc58e068fe57aef48414551c024dabbc611e2254044d7fc8f92369ddfc8aaa260088270f1432c4e8e5ac458a5b400c840e16b06c6787950ab2975970f29fb98ca0ec8156e7756f9e5c32616d1188c4ea836fd59d34f2882c32b5ee209a56f296ac67cfd83cc0e4fea999d47b1b21ebc7584e00cc15ae195214bc2e7d337e3a9990d0b32b43d3057876bb81b632c471eb8ea2d688f3635c00055664942a49f16863018785a68d7974f843ff67d5fe7f18a896549163742bbbc45baa5854982e18b2a6dc8a82503afb9e397c85103d4e37e6c4201120e6bf89bbda902487d405ea74b481df8dbf2777abe4a38407094468508e5fdd49b6ef10efc95e02501585197a2cd4c4f4f722a113c23d4d08cd7cb78b49a2b91e002ffdaf9f3c1729242fa6269725a5c94bdc2a3031462502244dda5506c0914ffd8cc0d2c9f1d448807d28257cbab1edbd93ce6b4f7a1db2e2b630b28f2ee14fd21e53d89587073c9e49ba2a4868f11ddef054e1b38e23c3c97d93bad23b3c4be6ac14339057061e4e67e599e7627cb892bbfd10189fd6a1f44232cb03fe6eec19e622550d1fb3ef77607c15c446caa1bddd12b0e115dbf5cd9f0fc69830efb6dbf4c2a48c8239bb60ae2ef4d27cace65298433aa81e64b615f727268e656d4a91fa6ee18b66acadfade271937c43d5f4df925c1aeba18d6eb14f82e38036c2cd22a031f0d102e52c053b09bfdc77da58ef4ad23728120a9a4895006403a5c73ddc103482cdebd700aa2f55ea92ba34c22f73cf09468347fc5b5505741eeb44ac062eba7665f791a4bb8088b69444185d648188a08ddf3a004b67e415393e2ff07de4f3f1d20a78e61cb80907b40d32cc6afc9cdd56b8bae65385f2e4409e053313960795151edf8b98baac1691b7f2056b60e8dbb7d28e5ac544a787d0574c2ceb5ec0281647220a640efc4aaf1473c68e78da17b0c136e5e81d2f61528fc05607c4d2effd7ea591d6415b3c83390c4efd9084da16947c2672f494a5a1729e03206965a358f9fabe00088376c99dfb1c78592c43983520f5c36cce714433680a639c6e050eb96433d1731a4047344e055155b27b058bb5370ee49f0c4d2bb6f162b70a47e147d4237794989f1791ff940ab3b9daf7f7789acde31fc20b4eb9f5ab216ee8dbed1cec6859d38c4e4d1d0256078524be302884b01c7b907d72ee222f09fd237d54e2cdfe3a9dbc0da6595674bb2301045ef324f60f4c4663d7154eb101258615ccc9d29b927380337e9a05752a9b3f5df893798e4567fb2e85848a2f0863fbfc75ba1df09a09c1c7925495109ec360756b26dc1b1c811a60f2923e21c30280a145176332386165e49709622ae8b0ccbbca36ca0a1a6a3b0a692885a7e2679cae4e39699c4926af0d8c27ccd69ec44ab9e81a17a51636f2b041a62fea15c988fd3a9b3e5ace342a9376b221b3e6906fd567a8a3f7163241c4d5188beddd7aff489304aa5936f25f1291586347d79c50d412febc03c31d7d8224949b8a5c0eb8a2fcc12a42f1c7a90d0460efd84df606e4605dc569ae305d7c6bc5d8fd5adfb343303a020b267c56d8f5bebe57e316f8abd3b69add1a9268e5a8ffa24916062c5a9fd10e6b26a4cd74814e390d284a71bbcb44f1239ce3aa5c315633fb46aa2482cb8e4a32424896c456e7809568acd6d4bf0cc6ef89b6566c636d8c8fdaa89bdfd2d09ec24910df8a85ab624a2f28c89dd84013739815e902846a5d1e1c3287483e545889cca22b947297a5dae3ef218b1e7fa7e95487df79ca0c49d1410391429b0162b81d2992ee6af6c46a4db1328814d64974412479d5228feea4a69d0f5f1acf18914a4ca5562e9993f4ef8e1dc332ad7cf503e7060b250400bbdf916ba2076eee36b543272955ce07ba96ce0887c84be0b0c7dbc3b66512ee8de9ed4c79c00bf8ef772d81299df68716fd21a1c38557bbce80e9a114b831b1d14bd66d2a8325cd6f18dd52adf1614a6f6ff5f28cd3b007312d3a8ca8c3e8d23c6496006e6aebc06477112690448980d447a9f003102f8c746c0823d7d136f49a0d86cbcceddf092d6e461449142c98036a1b98053e4dd237919e5ce0fa5ab06cef68acc802cb0d7711d5b1a582131fd38ed580e98965f9fee90401015a38d61ad7c702484225e2779375b5c49a28a8e9b19128fe023407f740e52c1f3bd67abebac165a181a3d2072666f15970bd5daf93383c375fea1864e3d14348f07f7f3e020d71ddb74a86f51870e313382ff7d48018298f42307974df04ce845bb1c0caf618433de5143c517a1585a8f52af3e9c90c9b1026ff7daa4a6a43fb42f89502de936f6d519faa553181bf237f4c8af81d5a98c2c72d8c8ac6211d59f675c109f2f6e7ee1feb45615747bc0b8c89c895678048b79c2a7fc1bb858ea085336feeb17884ab3a7434998bc99e9206b48acd8fb0714d15a1e0be6802369f616860ef4417308d88ff6d2397b733b07bcd0b69df0f8ba69ad0fa9466c11ab3edc23e9926156a2d1ac94b673313e739f3e1a68c278b4a4c2557a3186683883103a8844ce01ad5515358aaa25f13ef37c1a64d892e8650f0fc819af8bb1a7244e2f6ef4492fbe1468b055a8febecb59038a9f5ffee08b6b68e9fc94f4e61ed8f08ddec2c317bb9666e8fd8269edf5c1162b40a41e54ca01c28df58de65fb667e5abc0677cb3be337eb698eeb18b130409bfed1ecac8e6624205d863bd60a8572fa21d3d8142b1b690f7fcf66caac43ed4acfacbbce9edfdc0c9ed7de8acc6199374573b098373c0165ff58587d2ee3205acff31f0d04be4bb3188008e277c318911c8f50b6dcadb01bee9363e8568821608f060d6589935a52a8dcc980ae5b297db25d5d881c0d16ed227f3eed7b4fe8589bf1f03d1a02c89f30a6f46a0c5cfdff494ece88ed75e1d00f7f13495d7d25eaa60838435508837a9019406e6e2e0b5c0ce9291540946437828edd795220dbe189d023707f5be3f8bc74d059d2fc2e4609f3850af5a05400c94e05bdd991b96574d8c3312ee0da39345d323b657d18fa37cd073d4eabf813813842025c00b6e8fcb523402a76e8f85e90029203cae631ce20bc6b8b8c0c839d8392990c4e8a8d8124efb885229c674b3ae2fdb5e55c09d41e2fc57ab482d51958ea6bb00fd0806bd43dc573cf5119cb90179fbd161f3fa3b63f49b4be3935aa79cbb75dc539d5af3e2af9f7aa6e2caa3cd7ebf73b36ff0329ef6b1ef709aa4f0c6bc80fab16161920bbcb47317bbf9ca447086e3029dc04d6af619745e0e9b5352ea7b45d4635602f38433c02d22b102b511e34acb110ba50c8407aad88147a8a74b4563c3fd8009593e73800fb2ca621bbb007ec598768c08ff0018e207467d7c75767764d6de783b54622530a288213d5f246c05cce42ade08430c83da7f663dd8cef4537bc1de491e7769c317a2840b0215ea11e49868b8fa85c5968596290069abe93d765d2bd0df35f3ac54420cc566093c3f8604ff560c6617c49e260dde750b23068685e24f38d4a625a0854e00a4f8f4c372099bd8cf4053a3139641ee2f4e0da829f582a0342e3d2f4c44daa549335739f041529d98da68b39157b9f28374d8024f7782df9709bd611251d87aeb994486e32299745568dcac4f71b8fa52dd3f7bdbd699310402a60389a98e87f8408825d1afe8d328db9e427b0a8cac7012264354c0417b6f79bde79fc245d064782bd945badf6a55c5bc28b4a7f423e07213fdb82f922dbd739bc76d3274dfe9e01070620b85de0ab1caab50adf8878a65c14fc8477ad21b521dc96428ee1189cd957341dd71da6fdb5cd8e2ccc6adc6d4b938de3ea8d5ab9b4a68650bbc0c39af4c4672eb3fb7bd6504ec855dd2bd70a56ee173b9ac60013a401c9df8aa9f1d5cdf6dcc68d01b5363e219f6b270d23ad3e6fa5c0fd92f2a5ced1b5761c02bb5119d718a700362b57087f951eca2a4dbfe6fdd400de0f35a8b00d07097a49af69c9d274cd430407ce43633c9198f0356f43549b8a1b1ef7ec8bf59825db09da1e2543c812467e1a052cf9385827980512f74baf8e99b26c25dd187ca65bee1457841a1ce666efae8174c3ec8260b51cfdac0869700355dbc6b2340f4e3297217d60727af370fa53749fad8e6be5f1d2ef46021285075fa2850ae7aba1c58361297bb00224d5ceed734dfb55c5024939b6e151de9d58449babd151eacc749ed4ce8d72ce6ee4ac744981e7cd7d4d5190ddda336a7d4003b91deda494d709c05e966ab61bab20cd94240c65aecd9ea83fcd5c8848410c2ecd3846d8aa74c0d6607255760d469c617dc5a7f1a56cf012fd5ba6236286a5f25015240a7dae59e2631e8b8e45695749b7fc439f5ce9e506dfb7fdc0f8b641a24ffa04ad588aa06341ac803d581998c7e9f043140ee45c49a5fea13837acf628272dfa2e3725b22dc68447b6f3417dda8b6c18c0c841e9d51d2ed9902cf8791d86f0b02d36562901d8f2bd94de5e8dc42a1519ed79faed024f37d5b594a99e88475e8e696f331a8bb11b3b08ca3c9c83bea8e9317c6bbca50ac8af5895695ca0aeed4c0e46251fbb42c4c2b443859ab7651c485b6b5c0fcd2522013d6c67a71aa2f694cf8181210080d17ba2d09350b247f1542733da1340e71307e3e65455d919be39b1c0c89a706abe4c9071d4264260b0741ecb171f50ecb4c7af719725c814f3b659540dfcc81635ce002a881953e73ae820a3f619735acd5563317c9ca2c9cfdc6f1186cbc0f3a0049da9a48251ec4a0a0f184a94f284c4dc81775ff80b7393d55a9c9718048906ee3cbfbe4afa98d04dacf34c1f6ae8178a1dcf4dc506302a47db215f41c6882fae30ffcd4895c1fc29eea0ab4f1e408ee524238fb89fee159a4b4689c93bcc996bb84101e2ae384357ba12ea0a385ee8d732cba454e2e2a228fac4f00885ddfc8ec6b41b71751f54aad450c9d3b579053fc5e2ca63e9e218670d03ae611b95ad2e0ce99d121e838e8da19b4661891e1dae187acb65e9e736a933a69a2007d99d0800d4f8d80c99bc0104f82cdeb74e5d87266f338620375ea0eaece3e8f0c947bb03c242812390ce5dba87233a5616c6ce4a4511b521ba01a94df9d09b4797cc31618fd31a6f580b459abbf2b85a9cea7df23f83c7b7c1022906e3f1c732c55892a1c05913dd8a3f978479199306af9909094559ceccbbc9b478b803da226014acdb0f7916cea6a3ac8cc245521a55b43dbe88869635a32d3e888c2ed31e57e7ca58674f04a0f0c84b2b44b2ed303fcbc786f5a87ef621f54fa3ce627b43f9ba507118ed287fadd4a8c178157eda2bceaa382ed7d0fa34540f59398f6e5383839dadf0b48894c20ed87b7ee5860042244329e4c808ce5e415e5544f36e6519634ea9cb989404966d58ff9abdc6c1bcb192efbf8644daf695f67126e35bf7044338a521e6043e3ccefb4a532e0edebb2afe324fc5b881435e8aba566e074a63a80405365498bdafa7d65224dc872369d3303ed1990b663c7c121d982954b72d01eb2f0ed1758c33e128de63fd98ad21ef4d3de721718ed38b7da63c2213c504585a86d26f4d9078d8e3a0c2955720104ea0cda5e0b2e17509313d95e4b6c0178e7b1099521d60e2a0ca77dbc45267d0505c18ad7bf06fffa50b9719fb06ec1570abd83112420b56d8369932564bec6ea213653f0b3fffd3653a67384096945d6ce04b20f045d231b2137740d1b446251bb59a77ed0f6db23c5810e716901eae9d66d09517edcafd61d6bab50649d469bad4a12eb7ca782c47f4e17d91c357682b01613cadd94d3be5b12ceb853f5cf90bb4388244f5b4e27ffdd5b8ab7e1846c42b03a65b95ea8dac8af66cc8a5e03ab523fa8f9ef7a3bfff729685e6d01f2e1a8938b46671fcffa88036e3d8ce186f7dfd5f6ad653c5090b1c6b05cdec584a9ff3e2dd854986c3dfa8f96d815bd065294ca7fd73ac85bd28abb277f003c4a674fc09c0df03827755d81ca4bbc36fe40b34385e09a147cbd88f4591018c6f3a05581a978dd576e92cfa163c07ff09c03403d0ab6df6edc01d1a99a77b8e9f5e7ae2c3fa022035e545ed8b272cb1c61417dafadbbb6c90aabdb0b71b04216ad1af0fc25e295400c5128d3319be35145e22de31f8d1af06eafc8416f8dc7bdabff8cc27709b3a82c164eebdaece5ed7697860f9a208b4df0d2d4878de9ba80a7fb4d19d42a24a8da5efa11bf4b9ea2c87743c06333f05402ff0d3c46d35a893683e0f42338cacc3794820018585e55eefbe0da44c26e327a0a231a7d3b0202a6e3b6c0023da06519d3f460356ea1201e45bfb04b0155db5a9a6ddf9fed77c31b111b4cbcfbae3de8815786ed0b5a5dd1e5137469562f46e83c69a7b2fe48c652c50a8d989c7324f9692319cf31701336e86e9cb1c2dae7d49838f4bf155a563ce1995b22499f63ba1095b9d11abcb05581a963158c5cdf7ecbcaaa967a478933931ca640100faad509c258d287a80015961659c9fd6998a256c7cafee841ee0d07d71a118b583f4e5a72b9c741fc7569a51bf22b2b5629364ae0c30be3761ce0d19de88af904654cacd8016fc23a1f263e5563f39444302dd93f3215f707c437b886850b14afdf5907783a5c6463719a77ed6bd262e766b5b962f2655c336de6e2ce619299a26f38c01f3db9181d50f6050f50513c029d1803300345b732c5ad8933137106551307f8e38ff544ebae485ab5a1a1e1c635e88171a98ad4dceaa58aac42a4fadddccbcda132f5775cc50df07813fa27ad3057f58ea360b8c46c208a29a76b21db7d448084c3a4aa49dbb0c7afb078995f832786c5e3e93eb6756a677bc0bb48004accb887d4e4521f91a2cea4262bdcf731c3b013298b6c48a59352cb85034ac57b6b0a2bf9dea9f1fd28be2f3e75268973ab27ce54e71ab90a6d55d5f7f8593144207e089462213fc7e70394e3f210b5891ac145862a9ca86bf89ee4c5b4d5c05eb2a4ef39ff4b8bf28e9ab13809735d454458590fb96df64cf8fe493b912f6cda05964a9deb7c8b6c52bced696e03c1b0df14ebc2d38253d3c9c6daf02e0288449316efd99a91538205bbe77665c2ecf18cf9d5b6edf725d0d2bfd90efebf84b4e16a39cf1e859914ae7d8b374e7d4914a4e81ded7a81a76d8e3d47102327254cd5488ac3d1301a68942abf739db645ad2812f483cdefae6ae1733191503c180b6dc0a00f317302d93c90ce7a44b2e7050aaa8b8d7e3787e2135856fae1df7c2a1c04b205c35545ffa145678d6500bae8b26e50ff566066bd7323a6c38576ecfd22c8117ed612e8583a8a888378156b21b9e309309673b83b053152f554a5afd7d396b7dfd53469fa65d7def613c99911c7eb9a9feaf0b71e183dc4f27b40a788ef14226ad9dd8f7306e63e1156bc19b0de370bf66a2e4b42102a00213f0f21312a73b012b16f9fbf0343045600009f07d637f37ac9152125777daf4ce9f9ea26d322e97e155c5cb994bfa74188b51434122b6028e1aa76af94060008c6c9f6f739b30554340d38b95b5b7910c0ecaecb9f9145d94ccecd6d3b6d7d7db348811e2d3b73d5da3de087f7efef63347c99d4ff02593fafe4529743c9ee9d3b42f39a95dd531fb4991b542a2f8f87086ab16e1593547f0ed2e6ac2b38aaf415138e44deef0bd45370f8587375bfdf4ead5317317a3ba70f96e2a559aa823f2333ba2f4166632ed139a8f44de20a2f9817baa712dfbbffbc8e91ef0764a32be47979cff998f324053f7bc5b521d52e3315e561314ebe8d9b181af69d25a6e761d164c43c0bbdacc8b5c569748f168c4f46f30379c273e9d57de3a510483e119156ef605daa251f13ceca2ee56fffbb5e582ed5dad167a9fb794b13ad98860fc245a460c30d84165fe65754089754675d27f2b2206f1be348c398b0773e96b4db8a8cd841e163d0d6f34cb21fc8de95a320c12b43006f94cc088407d525d3f90913d93b3f610ba758fc05ba2bf73f61776833d65d7ca4310648c5864024a8c81415c3979552b27769f6beb1f7ff58165fa53bf0fb3ee5f212d4a5baff604c6ab46ada9d329c30adddb3b6fb4c688613c436e7f886dd3f45cf4426708379e34dbc185ff6eece357820ef570ddea1bb44a670235224c4e102529558c66ed3af19214bb09eca62098510bcda95323126dc870ba02b6c270f8f32b4c204d5bb00151328c3eaa2d853a511ce35f6ab68d73cf6b922a7d2849690d4f2d14b899f33737ce9b7dde3874cc95827c0c93e1cfa5ec2b52f14c275998f6810b903db66ba750986d9a9397114d41795f2cb7c2f0f29d29aa850ac051c737bd706049d4a37983293eeca7483fdf38aee9d323736dc0061dc2cc90c4fe943afb8c7a6c48af1ab174469dacd3e2393255ce016dd96617dad1cbf192ac3a4bad9f5130e76bab322100a21d2d43e3ad0d872d3c8acde3194edbf22bbaba2607e22001e9c24f16834379a8adda23fd14a5c89d2c4a759f3ae21b8738ee441f0631498a2f65214f70a1a485039a5f470bfe8e9d2e6677f0b014faa2f7a8df5294830de7c6b15cc96f9180ff508553b6964f6441966e33c95f36ffbd733d09fd1852b9d8b350a716d583d263af396f178a5e7812bea04fd20811acc53b9fc3c3b406be7b2c0f3089289a16f0155de5cc9de76b42914bda52b1f59bc5fd6758dfcfefc3ae4f93daec8f413bd23562d81e5c148f4e336c6d5f0c5531c2af5909dee8c638e040801048a2b276524549d727392c059331dc7980194140523d61cc04774b6288b06ceb38320a62f1398e30292e58bcbb64a6e6332c3f225111418fde9e026587a093905dcece4471844aeb97fcc3337f496139d9518628c362b1ad792f7e5b874bed837ec1c11b7097d0587b2977bb675da3b51ee19eb30f51be963ae2d10390b0d1d7892b7a360dcaa5fcf5dc7d9e90d801c0ab4f121a8fb0dc1e223d312e4f705f2e5c1008a74623840ad6b009476e7fd13438749b1104628c715371f6a32238945b11d42bc3a11304b15c9ced4cb07d9ee49ce98495a9f9081ed122374f19ba0285eabb18c8121c8123a0bf40166e3c5e7236e456eef743a4492b5b9e93f481e2aaf87295c3580f621ecc0d4bc42fd9ea42ba62d1477044ac177ba5a305c15271d994da5d7ebf57abd3e778fad63cd49eee2ea527711d793542aee8b7a21250b13bfdc5f3ed970c0023080c381011054cfdc0d73794c1f56832d58c4df8d642b002813e6dc07a2bfadad19d9468834b237d95bcabd03800bc00b440b2dbad0b7cd062e763eb0ca068634dc41dfbe1d5996691fb77db1ab3da66338fb68ae3679f4856a0f6177f942b42b7571648d2eb6f0674ae559d1659c3bd93563bc9af14e95cb55a97ba9fef1e20d27913b6f830d5cec12362719261176756c4e264c3870e78f3bb387530d3d486247768c58112b92e4cecfce07be31c62d79e7fbc793b3639186f6f9afb3dfb61bb80da4b2433b0a0eef6af7ee16232b0343151f4457fb022e056787495c1abbf1061a0fc714b6a8128dc8f0584295188b745c2ae5e489425c0cafe4913b9d846cdf981b6df7a1f4582ba7529a4d7df4f19057023417e471bd49e9a37b42421a69442a71a34f725f8ce1915e12c3eb2e647b6409d3c3db0937fa646cba9d70a9361d75ea982ee9664aa9ee46694b85a1e4a704490fd7c07aba0898ecd98a80692c7786e8150d617a30d513c830d6a49e4c86084be7a7c0c8aa148c663202c3a8139d70e9b716dce8935d412310f4eea76fde923642e970949cbfb5e06caac2c0c04c18cf48eac867b8973c76374ace2693c9e96447a7d3e9a59bac0918f2b597ba1ca99f4660c8a6d4519cfa442f919e9230182b61301206137de44eafe8777cba1ba04edb4274c99b91d6136968a7a0873749dd44de58100ce5908cca215cfacd05a7f5d52a9f87e83208aad73eb241f6f4cc908d301f41c2d4157ac87530dcd62e984e35e5a7ea46cf3d71a94daf44f45e8fecb91972e941305403199c3ebcc36097f6a5e7222351e8f31c37efe893dcc7895a76a2777743bbfd06721ddf548a879457047a9cc3452c402f7bb8d59d5e22e11677ca973b1475eda7f7ce0dd44fe76f3b7d25a7d34b523f629a1c743b3a0fd11d8d6e3aaacb516f021e216f0a0c4fd77eea72943e3add7b0988f2c3e8a8a34a1f813bb4d227bae90b250d2e25bdf4c921aca2a28744a74fe9d08cd26f37b08cf5061ae2eb8956216ff1b33de4ad60db700c0b64d98c3f46f4b0577bbf7f40209b65d916923ddc4329f7f49c6edc44a25068d467f042eee1420f7721ba28a5d48ee136ed1b5cfafef1f8f666ddb90e071ff46dc4953a7688a79cdc213ef5e1e11e4672016fbe251d72e96d26a7055db316a40769599665da41df32cdc60c8c399d905a7b2ea53e34ebe15606d22e4776fecc7ab815df48da27d2c8b2ac87529ad58470360ea685e88155f330ac9a9a5741976010ed02810488ab1957cd741220aee64150827216c1aaf91e1630c00ff338620d1502441af43d1ecc3ccb67e7559e70e57f1e7b6214ae7c98c39d991121224bde66aa842daa84ec73e704ef7c584d9c72a39d37b66b029735a48e6c999f5e9c40bb640d15d93253150c539ec737aab21a556c8095bcb24c4525b6b2f3559125b6e8393b334f7a9f9bc447e5cea9e283bc6ca50fabd0e0f5a9ce953a7332b34fa60629c5e59e95b91f5458a54a39213b0753183c516140e472d65990c7c6cd3b41dac6795782a15471ab8a3e41dd0f2aa108e44095950f853e1e9d4516b79ebf1e0810c410444cc0474d133752f0116ef127af8a5bdd0f2aa1e915f443052ee8077e0555ddfdc00781e11155d69038bc7b3979c85b63943558891b6badf5dbccaae5326b41b5ce7a813009256efdc671f5db516fb3a0b973de3b6bb5d6823c64ecd6575046c5adaba85a03c316559eb225144ac8054ae0090d755c9a4ad11a73297dbc26df441f0f1f51ec982f39caa5c8e40b2b10bb26242127d4e40beb4d9e7de1bc26e0129789627e3b293131e9ce1d9844d439f19e455689b2ecf42652113763138b42d99309f5fa1218ea30fd7493975cf4279f350143eff4454e996a8966e0c62cf23c91492a95ddc42b79e8a5ee7d47cac424756a9212a5401e25a0900c94fec3740b46537ca12f812a93aa575d02dfab265dc725fded7a5fd52ed34b25d3f652c874ee3f4aeffee374d07f445e4d30b47d1726ade861dad58161cc258d4e1fd3a36f87e781d92938bb2fd52b3ef7fdd840a097d124284dcd4e5bd8625cc5099cf6b3ff989f608c979026cacc2fcac88e63e4217e2271c308445fe6b7ab2fff8377e72afe877dff4736e77f343841af57f23f625cd5f77f54302c2203bd7bf948ccb79c6014fc06b71879d2c8497b2848d24ffbaca735a452e6d8217f822dfa30abc0c0cfadcf7c983a7aae7d36adf5bc54eafd68c4f464643ff05cb8c543ca68257844d06ec75537e7c5967ccf998cced975d62ec7bc7df6c95919bcd76e66de773fa85c09ce0e87fde411cf1d0e06e70e0af690778299123a979ec814a3da3449d4665e0d594edb403b6c2fb8ace3108b88e5914696e4954226eeb4a1b4921d523a98bc386141e126b7b21636f477f07674ec3dd58bc5b2d281484faf28bf7a455f3c7edbe1ab219f131dcedf54ba19e6de6ee026b74c3a7cabd55567f9964337c302c2f0562c2b1dbed5599ac562b14c67b1582c16e92c168bc5b267b1582cd69bc562b158a1b3580360098025c3e2ce625d560c2b00aced2c16005836583db0b4b3583558345833583b9cc58261b9582d960e67b162b064b07860b15c582f2c18ac1767b19ca5c2ca81d5c26281acb35cb0582c560aeb849562b1582816ab9ec5621d876e86350001c8dc980000c0460f3568cc8071b578901103c68b4b4b0e2ae05da49ca450d26463f3448944faf89a4816bc011c795ec8850d2e4020100804028140201197d222856f28b49da09c741ab703aa04b5e9c07707d00b5289546badb5d65aabc6e28d3cbe2f6ce53a2eabd96c0d748d71e070b9171f5ffe84743b7cb2c74a5bd33161a26157e3d9d7cbc76b878fcfb2fa22abf815e4d2bf5ef42cd0b715795fb00eef1f4f08e8da8d982fbe79a70dbb367be3f5c9fb8d05bbac0f0fc8a5fdeef70ebb36cbe3f5dcb6825ba8f75b0a7681ec14fdee770dbb403648bf81301276f1cc434e72b110409f7bb865dfe71c76b1cc43d6b9317d26c22def7d7e825d1c00003c64296c9c6db815baab7b78c8b01a34fa120b69845d3de3a13c2291dcedae8ef58a5ec6786831c1ae0e6513304209c50eef170f252c94af1bc61fd77cc5232ae00dc0ae69430401b8c50f63cc458a8973cd58af5a2cef6eb66917e835038676003602b0b9f41c6b97169301437b633120d55ed6a65df6d52bfa0080a10500f3d8609e1ec0d0d678d178d9196068616c5ca0cda535565faf7665b11618a678e8988c8ec500c3148ce679691e9757cb4b65d3aeec156b178dbd7a459fca010c539e0a187a1968933a18a63c1760e8c5ec0a0ced0427cf6bf26c381bce8693c3898d0db754a7df9ee0d6ead4e6aa423e38a47258c981efc9c777db5edb6b7b6daf4baf8252c14185878787e7d2df60026f001fc3a68f2feae3bb8162b158ecd283a47f7f0c835eed02d9f4eaf502bd4036201b900dc8e6d27fd6850d2ef8923ebe5aac5d9aa6699aa6699aa6dd4b69f16a97a6699aa6699aa66936844e504ef87a1f5f1b6b97b5d65a6badb5d6059732493d86edab5dd65a1bfbb2b12f6b636dac8db5b9f42d365409ea721fdf1a6b57adb5d65a6bad356507d3a9beda556badb5d65a6b4579412abdf8f8eef0f1cd62edca7878623c319e180f0f0fcfa53fc9bc51f66a576693bdb257f6ca6c329bcc26b3b9f4261c128598c6da457978623c319e180f0f0fcfa54fb170aeeef4d52e6ad32b7a6b5fd4e665633d1bf2f14429fa92ce077943ac2f94e4e5cd871bce862305b7f8b4ab696b3daf53ac8f2fcbc7b7d2eb40dff4db0a33f3d7b3b9d2d08b2fde15bd8a7e853e0722971e87292ebdca477f03cea507a1b8f4df1397fe1fbd0bfa16402e7dca073bf9e84dbec8b4a427f2ca54ca217da31ebc4fd4a970df52d84a1bafcf46d0906fb8e15cfaed05273b2dd268f046a446f00dbb9a904f64d1675f280c9145df59847cae8eb4018918c33ba1be498e06e7f2e3e5c090e5c6ee3cec4324baabb8b583bb8a55717bf7d1b66ddb48bbed7a0d5e7c7de43ef088be0fe8383046969041dcbbc730c8c39e7b77fec2d9cc85baf321f592773713232b44e28e9ea1dce4278fdd8d94a37c33f9427a4dbe49ce44883b7aca02eec8e4281fea275fe9b1cb81c345994cbe50476ac46374fb928f87cc221ee12696d1171ed1f701a36f277d3c460f69ee68863790877d3aee8cabbeb0883b437ba89b81016178037836806ccb6c501b361ec302f862aceae1960d1b32b3f119df667c95879edaf88d7a8455f3363e1bd3363e79eb974111e3d60ac80282a12700f08879eb8ccfd71e1b9fbc333ee3965bf633ce714b7ec6bb6e6606fd324a6fd40aa2e05879fdca69ee56ab95d33ec668eecacc0ac5693a84e914dccabec9092b72c3fe99b076754eafe65bc0d05acf638161f760c1ad97ecb95f23e156c83bddb3154186ac21e3f36d84d8ba9fef25c856eb329f6f1e6ed9f87c1fe1160f311e6a498835625c216bc0f87cb914628d97cf18e6e17ed90ca26abef5653890aa79992feb4154cdc380f16c07b2653e86e9990d62cbbc8c4f0691359f41215be66dbc80191551356f781684d832eb73f84b3d0e2ff52a8f9d0f2dee4b4d41b901e524b2eac197faefa5fe2ff536bc4456bd8b97c8aa6ff1524da5941229b2ea515eea4f5e22ab1e06189a3c918928940a75251d175995db501be804d24c9a8dacfad15fea4b350365f725b2ea43edbe6c73069146bf3c9341a4c19155fff22c8a484346567d7906c57ca101d218a650744ebb7848afe6ade5213187def012bc8e0d09a912bc151836099809deb652c3ad1618cadbfa8c9482618ff9f24d5810aff57086f43437664458f5f2ac4837f372baf22c8755b3f518deea17afeb5e3773bf795ca7c00be7cdbd8f612905ab70b6e664778387532134687c520a5ecdd74fd257a4e1430ee129c8e08512677ed6ccdacd64200caf6635a748eb6450704bc6e7b39b4823c6adbd2f8f6c93c896f997cbf8a88f189fbcf406c6e73b89cc5329cf6b992477d25764cde3d0f8329c5ecda984279f3d9c37d4751918df0b0f5f6ba6f518be1f8f18f2eacbe9bb9b99416f839e071c6ef1f018206c9cdedb50e601b8054300803c8ab83beab35f7639609c8228f21e8aac2b0fed4591a00f34f2050587fcca6fc8afbcac7c059cf230be70e52e19f436e879c87e5bcf7e9071dae5a020cacbe9576e9f7d282f97cf603cb4282fa00f34f7e5f22bafdf5e62bc7c28385e0ee3375e0ee3343776315e0ee330c0094e56ad3c2c62e530049057e632c0ac0c5e057b645d0164fe22655e2f41994b7087cc5fc01d77857e61057bcc2b737f683dfb05630cd8a3af8d07200400d8a32f0faf3c9c0261030ce5e5e1f43c7c61129766b754de0211ca67618fbe3c8061052e7dbd54d6f7e8d8c530c5c99e81618fa63c85470f05abe88c9a8b83822fadbfbc7c863d2de2d6cf2e078d0543dbe1a07f794cc39cda6f868decaaf11ebef2c82e1a87f11ebec82b1860686fadaf41e38bbc5a0143db832f8cc3bc7e77ed98f19773f743eb2f971d8e197f59f9a4fdc222aefd8c2fa4b933be7157009abbd2e5c8b2d7577065c66318c6d783efcb37c9cdf876d8bf7c83f1fac9226e16ef4a0ef9fad8adc8d7d7c30057ced9efe533bef817fbf1cd5e6e3f1402c49b5d5e9a8b82a3de9ee6d6c92a5bbf32030c93b82f77dd65e37d01677cc6d77aa8e3ba0ef385455cd7e90db7281424ef200f7484bcadd6e9d728f06a4c8743dcd0f51ef3b63e5badc7b0eb9b30ca7d31876645589593ad7cf16e95a32b9fbc5c3f5a69fd6c952b3060c4589141c10c8787674432222b60d6fae4e5e13362de309391ddb48bdef46a3e06185aef86de641308b78e9813c6ad97cfcf9a974f6ec1f8cbedcbb76ee6a5c11ef43c621659d0dc8d7e1148dd1df42b8ff1455b3ffb6c63fa08a4ee0ef995d3dc182fdfac05b91c6e51709ed4cdd8d39bca7535a4b9dfcb17729782afd9ed512f8c182fdf6a566be56a6e4839986ca9b53e7639380dc8968a423fefcb638028f4f6561820ca0b788d98940814ec3abd018bdc799a43843fc5a91477ced7bdc96e3228c6e0c59a5073c3ca934521b6549f672b48de426c719f671f4ec2ad179f2e9f6728441a3a7c9ea9106bb07c9eb3206bb03ecf5e88357678cb43aec2f52618ee7c953a95c7e5137d209f2dc4d8c28a5fb87c964f0b97afc31723ebc5c785214a95ea0a97a58ebcb11f078455960392651fa701d942296c050c8988476ef6ba72f9b892add04fdb6115a59a911bd6ccd6ecd3ac902df40ad942c109a24829e67c0e5f9819e1cee3f0855911eebcca176644b8f3377ca10de017baf8beb0459862c317a2b8f8c293165f6892f28525285f883a997c6129f585a4922f1ca1be5074c3ec260cdd30bb09bb5276436f42cefbc22aea902a716384bc61767373e7411336a45d51a6553f27ce9d1ae88a32f393045e18633d7b6a3bda4eadf5f6d3aea0af9f0c42c12646e085f1d5a7695aed80116847d838904d192a95cb80e9c1863bef9952591462075620043164600640f0c9a289580c0912ca05976c0925842009cc0a4ad80c2183112748812a01052708e902fd2185076c40050f8450061cac200a5700218786035988e2044d6080091c74000a5db8f3a65457c5058c20796ee812abb42ef1bbb8c880e921ce0d5897ed8a20e091e0721817192e9e8b06d39c10842b58e0b2691f8ce67217fae30a988b8b0c95ca5d5ceef426bd3307044dd85c64f00a0445a09a13364dca6c5bec14a0dd824880ae3d9c004e10f620fbcd726b9f7d4c4b22aa0e03319f813b28c8de64e9c34718421840f053869f199ce109718a40480d3860831c5cc08923c8cc1d2740e1049c3bc1f0ac9a9d1026ca8d547801e7ee6089ee8e9fb4fb737677cbee29a482b657933ed415e86e12e732b0d160a7edcf4d7ed1d6befcfaf4eb31af04e337250d656982adc4c697a22bc6887265e49e19f0e463c7200cef57b2121408e2810d28a1020e402104324e5009e76481b1aa1bf6eea1cdacc3c1b2846ce967f3eb6f14859e05765986dc18deb28fc5876c99afcdf2eaadfb9b8f5d0e962564cb7c463f997ab10f07a4b87d5a05078888e697b18c91a572b34f7bd33e48abdf8e186918c1437463644d56f51b0ce933edc6a6b9f4ebe8b5ce1655421aadcb900e813e80c56db9918a0fc02e0874eedb69e3708970d65acbfd24b1938148180f176a3764188c63200c63552739c2ad20220d1ecb2261122644af4a9f975c0dee7c284350a37164cb7ca831ac5d4d8457f39c6d10d6b1791034b1458e51ce50487381d031f0f85d87a36f9804e9313cd0b7185ebfdac776853bcfe035cf3cccf399371336a72994300924d288371657f3de4629dd6c9f4eb625b7dd0588eddcc6711f3d9db8184779933020dc327d5ed6441adde707ee7c573184d840881d93356064cbfcdb09777612ecb50f857b9f7bd7ddf4a170dfb87e710de3b8fb8834b8cff78fd8af7ea251d022680e7099e9f4edc4712527eea8a3ced56ea6a4e4b69b2981e171df46dc68b4c168d65efbdac6932d6f38b3cf6f57b8f3dd0d03c29d313c49845530edf5bbe70f2fec57fb2042911891d89c73cef97abd5eafd7ebe523c681b618c78dd3384ca48030f57127161c1b993f38ec0cdcf9067267fbe857cc5acfb3b190a738833755319f4efddcf9ba2a0abb1348177ad64d24d2883d6fade7354fbfe699b04d784fa4a0b8f32f96e2ce47c930564d9ee6c0d05acfe30ddc79585c4d582c06db352d8687c3e5582504abe61710591304ba06d248248ddbb46bdbd370374dfba66ddcc6511269e3362ab558c79a48e7441af69308777e563184e88201426c81a60e15729c709370fb49405efbd087b27dfb8ca0da77e4c66d0191c6f679064421b8a57d52018b1d32e878e1cec6c28c1189ac3983105747a820859d26e8cc23e418d19d471197f430f4d2b7d27679e70fdb45177ddbba19ef5c37e3791f0c6fa3020450dced5991fb1babc8000caef62d08088050f1012457e5462a3e9073371bb8ede3db7d3de6ed6e6c17954aa1ee874df4a9dc92e8d35edab68deb6e6cdbe66da51157da385276ee5a97637b76dbe1c8be6ddb6328019adb43725fe4c943b46936940144f669077de1e8ce6ffbb62ce360da15040f56a48a10715d9eb7d385a504e38946d17277f48952e27acc9bdde08efa66e26278a7d067e8a77740a85ced7207753f843eeda84fe56a0f15c1113a0786f286420f9de6c61b3b1cdc4360282f77837be81bf769dfe44471a14f3bf79d3e23e80d674ce56a0f7d2a772be14e33477b08e4ae06ce18ab26169ef6fe2462dadeaf5d0eeddbb30ec7764dfbd6751b18ee28bd87ec8f44129dfbec3c8ce66960e880ab812103aef621aef6d9f9b0dd82e102ae06060feb902b5f779ae7c5abc6403c896c51e5fcc59e4e78f4354cc8266ce4ab57d2c666ce9aee51d9e67b3cc71859e30ad2def1b31c358ecda17c62323733e3d0257874541515bab36e06c416235c36e9b0e9e679811352f0041f34510407324d85db8d84db3a82d0d11144cae8862a190c893a625ccc08829850ab43089d20384687471be20b28a0b566319036b2f5b203ba7ea0012ad0820d82208405361a90e12978c1090bea6055bb622a38022666a5976308101b0001621bd05c605c64c02c21b32350025433900056871041e804b15d3e0ed1ae0dd4f101e698042440d0021a6430851b1f1996c2e5181666906922108388c707f3100e1822e601ac6a1ec9cccc0cba910a11f4dc30c64c5ea029e2f6a5d43e3fcbb16a1e31edbc735e66d0d258c94aa8e088e8a02fe46ed74e4e19782051bc5d157da0e66c94380085de9eb45c8fc0cd03b3779763bb22ee6e884e7feb6714de7c28034feb92c8b9a0ed0b5d6e26a770b9436e0c4b911d0743b825bfc52b4f67e48cc2934364f6812daa1851dd2a822157e5462a44c0c4f571e38d777b9daff576ce09ea7c6023acdab80dc7166dec268efaed5b886b1778fdd03c833e0f024320eab7b95590e596acb49ba931d630e23dacd6e1a89fa07db5df36d0853002f4f9edeb21eff6fa85aabb7d7b0dbcc87539be3bc1faac5e64b2c9cebed0861e8808d5e5be498e3b7db63d86edf6f8596b254b5943b97ddccd6ca0dbd86d6048f31869f4fc7c0c831ed3a2cfb20a3c3945603843b6db3edae198afa079fbda0131b58c1e2143b2e3413cdf8b9ff173143f636b07054320e28f90f4936e1dcf8f2cf0e4ce7b055ee85de69697c2314f4d1c69c8196b6c9695861a0c1bb7b871c648a3bca5dddd2de2297673ce1f7e3bb41404c35473e3e4ccfbe85fa0d7f092e1efc89d1a15584a267faef4e9559665974658958172e7c88d9734e3d8531c18a6bccac5ce314929a594524e125d9c94b7b1181301a910c1cee57c489906b7b96df472475e959049a4baf4d2081014943ba03c92d32ee97311981302c314b871905ec910183e95f23822ac92e720670e62328a9a8bc31057f25926931de472ededdd408e4d18782107b93248160a692e115c65232627f9417429e84d19ee8ebeb318656298c49d32fcf14ba669647348a0220b486ea4220b46ee0e37529105286e0caff490e3b4da76638deea147ba117563490bfbd0450dfaf032d2a85c64f54b5f175bfaa44f1455dd423f2addbe67ba7d11eaf64327b7dfa1dc3ed7209055a1fd58becbb7341e593adc061b5ed8e0c2c5ca458b16aa1629292b29282839a09c9ce0706262a262924add902a29014b50a80f753afd6432d9602a955c9448a416a4d12865e479289e4874220a854c425d97ea38ae84db36d406029d409a66d2ac2dd95a4935cb46d96df9d0a3f37db9234bfe5da471236bab1f5f2ae3ec908c2cee9090c9a0e7b1280949231b0484910ff286bcfe4972ecc831efc0e6ca679f3db3652b5895edf06ded11721e6bb7910959c3aa4cc2260dbcceb2aa23e3e1d1e16917bf3cc97365f69a9d5f200da4df2cb3057db71fbfb9ca36abf65ac66cb3f3676d8c2fb6a94e4424974d29cf3e19f6b8dab36f36e1d96b1f11dccd62d8727340b2d70930125f83d207abd8f4137d8ec0f3a392da4f273cd0466b95e037b3ee5a6b6d597b03f5476f069ecac5cede096fb361153f71e2c99a770dad198e9452d33e419a94de174a292e7f03753353c6899efea8977919cd28a89bd1a4949a3581a76907d96ef91a7a7f5224afe8b309b90c04aa19383f29a574cacb83aef56bf64c6add8c3dc7ad08a4bc21773bc7ec92a71214d29d76f6f292e646273c9b559cacca197923a1b89cbaf2e686d246029913c8d4be5aade4805c6e8acbc1a89493d3806c999f1c631a5097d0404545650b5316894b446a1345d09bfc662b6516d1944a71cde51803e10ec816f9f8188e5c03929d8339e79c733eb5b594da4e36a976856c61fecfb412480d902ba700128223b7c68d548440c8b5a067d18705e2311163928e3b37ce9c768181893f118bf9782927fa28eaa27bdf184582d5b4b1d45e294b29b95e72a5af9ce8a3b75fe8b10bc22d0bceeeee1afbb06bac8b6d74f9fa2485160c2dcbbbf89ae7eb23add3afa2b37cdbe08028110ae8496e06e714cc53caab5dd3344dd4b5cf547253edb39b01452055c3adeef35a6bd3d95cb690d263090788e66e956b1678dee7356e893e3f3baf6de6e5ab5dec8357f3405ea5cf12d8437a48f7cd23760e61d50ada87893ba98e4ffb50b07d1af4d9668dad49cd29d81579e24c22bd89be7837edd376421aadcf22d1b5f717ca2ba27dd1b5afef7d14c5bbb67341b01bc39b48f3ba35ed0ad9a25df4900abc18afc4e2c535a003b9edd3493694129444496951b40485f4d59fbed417ef76eae4fba33216e9217d3ae1a1d807c37e58758272aef9c1695b71ea99d61e42bfb627c927c952a27c210749dd50fe904ebb99fec9576ff2123e9160eaa80d55ab949251cc2c254b59b56e8634849a2ea5949e6efa66fadac7c63b9d1ec324898222bb197a4eb9641f2de46b5cf4100b9e3e795b7ca659039a803525e0ac6196cc2cb7669a8e6b77b2f254f2575976d27633a47712fa698a9c62327db2ab4da673dd8c692b7d2be120d1dce98417ca9f185e6791451659c8b015330c726c3f7eb18f3bb1e016ffa787b46b32f1c3169c38ed8a6c2d8873e76b9fbb2747faba1a29dfa9cb6720fc1cfcfa2de3f8e3aee676b16bcf5f0744b6b4a45dd701d922e94c81471fd39476355d4d07640b3dfd4862f18a52dee05cf9275ef24762f1f18b6b50e035abe8f9934d5cf9e624bf47c879f42382bb3dcf40ee7c0c9361e7b2dc480519a0b8db16b9ede3807407f5bbef03bd3ff9f36295c4e263907db06a327165cce6782f1e9876b9b8a854e1530dd3300dc3383d2f7ffa0c3afd30e66ce17a5e779df27b00fdc683524a2548bf9983df343b0d4160968572668267d5104344567fcba6083cfe42f9baf33453b9fda9b3c9ac20954af5bd4f5a2b6fbf0778df78785e0eee208f7362235789e4329d4f0003e88834b4ce2be9ae7d03083d745b724397605872c3c7f04697dd8c90d23dd2ed65496adb8bb8db91d8b66b3779bca98731c6637b4873b76fdb25407337500226a9a3dc5a7b2d25a5c527a4e429d6821240018598c00c98fee3743a9d4ea8ff309dfec3f493ff4095fcc709ea26a976951cf5d09e1e7aa687a91230461418638cabb8d2c1a40f04e5e3a5ef7bf61ee8035d520a8a9de80bc5585482cc3e7909d0dce89d48706a8fe149d02635edf29a7c949a263f65539a11e588cc39238bb7fd07680365df3260ffa3da5abd766540fb0fab59d0539a06da40fdeda0a8e222e3c6ed8b6d7bd5abe67e0c8f8e26377337c770129586f2f4e96cd2f948e93b9bb31fd39f9335b04595b0fadc5905bb05183446fa2140951529e5e3cae5ca57246863b77e5adbb1a56aad1e3f4ac556f7f894d87af158638d97c750acb1f295c3004fb1867c098c472a9fd81e10a6aea5965218af1f11a94b634c677bf17112f6e12d44d5fcea632b48d5bceae32844d5fc4b156ecbfc8ad7322f190cb7653efba01059f3bc235be63b055ef61901e32e7ff98cc8cef295cf087bd6e56704fd0e30be1eded5e1d9d7c3bb2db75f0faf877745f2865bd3da5a6b05ebb329563ebd977a0b862b60368514ac9aa31730b45e064e29389be28688d4a5bf3181276d9e9037373d4be085d9cdcd6efa2b60682fc130757b08abe614deb39b6fa7210fa98fe14991277a8ca2b981a82a42a4413390ac918113265b26e81604bd821b38351059f3a4d349e90cc5198f02a895c2a8b5c62a915a79aa4e8dddf9da236fed6b37632dad3ad58abaf3b2f28275d8b88dfbcb4a17eafea2bb0e2ca1959addcaccce388c0f6600b39b71dddb9a715b36543030ad19365af7ba5c36fe72eab2e1d2542e970d57066385c677b3b2a95c9fe1b2e172b95c2e1797cbc5356386eb8bd77ed2e5fa6cb87c61ccd5cfc56377a3aa868c70b815573fab35c81af1d29217af3bc291a2e4a65d164499b7e17fbf2404a24c10e500f6a127e0a00d60f3f40af410187b65c1d8530a1e88eecc2a78f5a09bd0bb998b8d88deb92ec0d51a64cbf6ec0b5543ee567758255f8db04aa248c1aa1e8223bb2893c7a3f4dbe426153c52776ecb28cc4597badd0461f3f5baf5d937a7e055245e77728fdda4d73e9a3bbf1edae5409625640bad4758257b5086b4cb471429ef61ef491f450a6e19c1a387bd28efa3e0b478c95168106bb4700152d363bb4447d118fb27ae40eff9baa0d4d748a22a05ec9ea8025df4f9689ff802fa059278c988be71cad73d28df11f69a807d24aa40dfdae4eb2391057a8bbec205bdab105b40df66ca27c4fee41302b332f629b07b7a05bae8037da35cca97fafcb28b92fabcc94fbe23ec4d7d4be9664c40185eca24f5183ed21980e6a6c046c22ad0b72cd650f344d69482077a58cae99d5e818e6283db4785253b252b6edfb453b24758d53c36e4a460579489239cdb1f350fd7c311f1b89cdbf7b8d8ed7b9d0ece1eb13d968743c2957278d56faf095ec8ddb064a764676a9a565fca291581e2e6f64b3f261fecd27c4a56702b5601c591dba59e862207372cf970355030e186252c6e3ff46e95ad6805992152703ddc32dd7e094fbb42ef97ecb44b54b2532ac2ab3e85b52b047220cc54429982558d12bb8d32e4a2e0941829e129d99951f0686eac3b573ee47ab80505cf88a923087679b364a7eb6626d758bb5082b00f3d04228192800ad8871e65ac1016ac3193a9c4d59cae497c7c72a23d9dba99931156b5941ca897253cacea921d9d76d9cbe7d857c5e2ca5a89a85fc58255d2fa28e5b4ab64a70e69174a10a18b2e0291a83abd920f8175880cca043d56f553bdea9bc894724a764a39253bf69ec8933e95cc2478f22659f604af450bef66377a97d905e74293b25659b5739fa1af3e37bbf64160c2ee04430afc5c2226ac040a567509ceedc7929bc8eac74e47894daffa455855d26155db1b96724a39d6f2f0aa1f41282090e5b1478cdcbe56a335c12e938d45c2ad58850d8adcf674b0b87d3f6334c0c20d35d8edae268a58450d3270438d89db329af474b815469d1d6e8514e659c1ad5885db3c37f48cd0cbadb0942333440a588996d2b89e5ef535302cb9094b76726e9feb6957f374b419d7733b2cd9b9fdcd062e66549b73ced9c49d555622260c012c63c1dee955f6fa6507d06462b55a8336ae0b89bc51462a9950273969eaa44589898b981242c191440c9a2e89492b3bd1c4b68928f78514ab58caebc4aaa851c38dbd8adcc4c61de4468e31ee581eafc70746f582619b1bc619127d62d12727fae8dcf4dcf8dcfcdcf0eb866191a757cc13e3c9913c3a926747f2d897074bd53c88ca2688bc71f151f59c27b5c331c70546e57255ea1eeb34ac5f6532192a33655a8665a48c9599577861d75c7918b6893e3d371247f2fc04995778a18545db399125dfed481a5931b2228885bdb18a0e24b952015eaca20347ea8d5574200a973ba7bbb18a0e20410c928a1dd8e5a9c98721091caba467f24c9ec94696fc1ccd7f7615bc21e24a874bdc818d97314c45eb63a3fc43aae1c64b32dc78e985e8b29f12494b232e979a541a37e299ea58cf6baae3d3d67a3e6dade7b510ed319c9dea509deda34ae8db76718d9c351b4806afe8b9a65329aa53a343333993f598f06454a33abdca3a1b59f3b1035d5845df3e3aed334fdf4b8834e8291362ab4f4f9d105d2e5447d660a160b8f431522d5c4aa97069769776b50f8bac613d7b416065b9f45bd7773d8595dc4aebeb4d462ea912552cb195bdbb7edd33cbe2d53e1fda97b88c0646917da3dd4c8330bcacb36c569cd929b14516af8a1f412e7863153ec6703791a453ca7863f217b38c6783f48bf194360babbc209000e7c62edc48c5088270a9cd1663b482eb61dac870b95125bab8c6a65df3876bda357334303c67330a84bcf3a75d5c5cc99b2c07fea8b05c098644b88c40ae51656078b03ef4d0b986998834425f78aa930b558ee356b7dcc621e5b9b886573327b6f0fb918b791d433f127a288653f61b88a38fa18f6fd794e0e51384e74a14dc480509621787e86a5d0ed10db1b45cd685645665a699b81812792352890b854221b0f361de39b9d5a10e8788f3ba6f235257b2a693e5341ca252974374fb9b893bb1e4100a0ebe6105faf2dd4a9853b32ff74530d47143225c6eb79c21141c7dfb7d1b0c93b8a1cf6e15162fbb68443acfdb2cf0e20abc906b98a0d9697067eea1d06be51eaa620350dc50096caec7fdb8202658c562f0e6c3f904b7f8f3865b3beab4e156ff87c801c13df40e477de8b186b699d3ae2eaeea4fb6be3ea75d51c67a33876b16743ef0ed8772782ea1f7c6719d715cfdfafdeea16f47fd81c351450f891efa26e2b22f74d217afe8312ce248a1d081085df4d8cd84bc4ff4edc81ee21e4a819b889b44f0660bbc11d74d8a2c49a47edf0d87d91c0a2b704d39b4884d2496913443d32564d96355d8e2865c5363ef248266d2916c01826dd247ee7c30b18a9952f9801bf689487137b717cee66969d3669af59412b8116f8337e26530c34008423064c810969e9b2f08a974c2a1c6343a25f9f9f141224f4c2614ca8432fd8405c94c32e7c7d2639a730373ce1a9b5f109e464673741acd9e1e243f2693e90709d81a7a4c23941e23a6d3a9449aa69e76a1f4a04c9422a38f765dd7733a15199548a72153c472e69c467a4cdf4627272258d9b06ab50a3253a9d1d7f734648a584e483262ea993da64fde911d9548a71e2986c4727a78aefc098542753323934904debc89450b76c4a205162dccef74ea399d8a24f9f139f9c989cf952793098532a14e7efa42224e925cc982648ee43dc588e42431d2d36342954828530fb766cf9ca6d7d32bcae4c3e2c32ac982c4f4b1f44c21f4142991e69c736e45e69c52957134b41bedcdcae0cd20d332cf8d37b44d42d264b66506b247f6c81e8ee3faa77fba7f9e100155b7eaca37ab98e0e2e242241623326113f60466666e261c416f77cfb76c1fe47904404706073ddc3ae2cae0e008b7e28d323838d2c3e3f87941941ff8603c83f28a2dee000ca74872ca11218cecf01840a7c89471ce504873f94f99f3292a29943eabb7d7586a51d342214d6ce9c5243391e7a434cb6aadd65a2e06253830989430ace2579a5bc170d65a9570e9d72d322232c22d7909a60060ce24dc100097250f072e4b50c4135941f0425528e229c1995e88514a5999abac999473071eadb55a6be93cd7787d0acba4949990fa189e31c6ec339395cedab5e76378b466598682a1609a06d3609aa651a69f10db26f0423eed22917e7e42efca6cd22c9bb47bce466100054301a981a13030511898b09a4d5a61192c9b9f10edf4138282a180b0cb724bca6a727272424249494931d5f909a9a7b567f79cb046c17a4e1da06074523e0a56b3af6928a7a0618b71da94df90b7654e8c524ae6988517b64e901aa4045ebde46aadd6da181eea15513e2e007a6d9bf668a794b2a3c64b789366f3614a7e548741378657716ed83d5feff48a1f4a21f6d92724d4cdf494a49ac8e24f1c7821ead573eb5ba706e950af209f2623937821a9e6b443aaa1326463b35be7a7c9cfd6db4b785dfd26a5340103ea85f28182a15e2660300143a4116fb5a94158d504abf8219b76d983766e2e7fa3a857eb5c9e968235480d721d4e7ef3d24f88a61d4093b1ef90b443aaf94841423635a8972642e1be2844bbfd6097d1c0d013211b5290cb9f6c72727242fa244a4a4a8a697e51c8d34fc87c366f3f1f51d4b770e16226a354047227b23864c3aad013a19b2a6cb81582762ed730c1a420a426b8151231831cb413694494fc502f948f2ff404aff8a86ea6c1900d10bc306473f9a49a5973f9a817a35e11646ba699f8740b18c8eca1aec6ee9deedb688c517bddb0078362a7317ddce2a9c62b2cc0d50fab98be792cc7b326d6844df7e58df69e40affadd0db68b6f64957ddb3737375a070427d5d5c4a87d5d79fb51cbb61ae16195dc892ce983553056b59474b34c33de6c65cb9f76e617abecf99c51695f69a8b1d58f1156b14acef31238ede2beddbe77c29e6dc50d7ba79bb9412f7cd41c9dcb604844efdcba5a4305bd78dd17383786575880563fab35c8160ea863a804ecd70a931a65aa66040000001315000030140a878362b158305145b9fc14000d8da65272529c474914831432c818030c0004000098010081999248002e3302ed9ebd577decbb15e557dd765d8334e0e23d9cfb577cffc74ec4038fecd5bc35b0a119d0c930f272a3a1ae0558ee0cc100b274c5eadd9c2cf8d029451d1fb675b716600b8e69f4b75d0bd43f911abee1da2143d85186648d5dd10fb59df3ed902d147c06747aa9d1fb85fa822388a0f613d086886f137874304ce61c93e75878a9e435b2c4a0268ef24a27e3d9ef1d6333ba599823b0595d1bad0fb265fd64d14e395dce27807770617ef15dd9755d37abf41bee59875acb0cd824d71b99b76e296b41b06210155196441e8367d01327210806aca417765dac381090bd700717002141f4e8925dda174e7d3cacf0997c1d8c71a8f2dc131216d2dd3757f9e18efdae45b4386bb5593e47679ebefda5aa6095abd63c2fe2162b5ad9c6dfd2b11ab819b242206a59d241ac6986c2729a963e9f1956e81914faffc6c28cfef7db1afd67bbfe4199c52f38435fb20aa8b45480eaf1e708b9428864d6add5f457d0e0bfe8b034cfc9f875e16f33d8648960695b19a74ac6ec49061cbbfdc6d9aee2c5e27c247caea0275414ab0c5b782e5d309cfd73312864f532103fd6ee7a4b5e9313c1fa18e7fd6406da3aa86fc3db444c63513c8ec38534392be690663145ac8b948992546e5c826cb52f63231709594dd4ce411237198a65b2eba253801e660d072257c75bdc74f09ce9338612d9715430d04b44ec11eb3d857b73960ce27e6ac4b668ccaa8b01568e92123e6262123f65bf9333bb0b65f0991098371494356308e6fb31f0a4049872e680d66418dc590a136f06b6e09a0a1237e39934cca2aab107469950bfd0fb62cc0c8b83f9360a609b79d5f5c892632ef63ae9a4d6b91e823b978309499f5d1a5686d2ef3e2887c45bec6efb2a2eef32daba0c7079a7cf0b60dbbde876a64f34f43f68868d33a881ee6a2e7339163a01c0d640bf985ab66ccfb45ae8da65570e59a5d468260165e996ee2b38429f3afdd7a12c738a88b1f4c56bad16b5917e932139f5fc1b02b4383a9fa3b3ab336b9294ac8b3a298181720cbff68e80f825ff870bc665be8d22fdc824059e8e1cfc61d23c67b7e17319f3702e7fec287e36fd8914d09d824a2f4e80e4bbfcde40c9877b23bb619c8b57a0e6b05f1c12be4383522c2107e9a49442903e371d2369d97984cb0449d76555e8cca3b2ac6cdcd95371cbda2b89ab872b06abc07b83a7bad16065fbb71e46f4d30558f36b29d3b0d26e967dc96234930df2283bd5f35a72ef569be5fc0883155e7918d55b009f5ae93e9cd079684f99b47eb985c4006b135ee4648632f3890b870e11ae960a70c79f32999ad2bd0e0b55d6813a60ea742d6f808a6ba741acd49e7eae1bd6f4c103f2d4e285f281678ce89d834ff2199f82c280d2286aabd9d25118870572f3e04d9a36a0547751fa260a3e0f307a19a32623463fbb96c73da88f15dcbe0e8748c720ace0a813d2b16a7acf39f62b22a6ac09d53ce7557cc1d5b31aa7b402dc8465824e5dcf053cf44cf7253299ab061c3c247785b9712bc0d79457260a4ef24c6fe8be797f57def745b0ed6c80e0fb7b42742a4168992876fe1aa2ab1991dac4eea23532916a58a0996849acac768b469e98f765342bd10810618d20b2d96da8944bec79d4b2b0e46caac9d89d932ea4d2f275f60d89cb519c8437ba4720f4ed59504fd25b523e4edb31f63a7a82a4543b8b3eef05ca583487b95878712d3f4da1d88b93e42d54f9af46d6f27e72b113cf9a9b774b518dd0a5450f3bf9edaef17cb7a8bb66c65780af482ccabfbf81d76c87fb2fd3aa51ecb069e5e9ee5923ec52d0189c3b98a63f218dd7c5c7329933c2288c6818df195ab473e732d1d7fe1a1a85e43e25d01f53b4b1021cf8f88817254c6cbac4dbac77584755ddecd60a7b0efef4588365ccf0e067ee0a80463bba5590ffba9da832509f2020ca3c78bd81320902cadc084f4fc5427633354a5dc4f934e2a740ee782ef88e8d66ece1e6d4a63ad00721c3d13500917c7f207ef43435274f33a278fc010e12768e47a52b7154a4b94107b50d92c2e1dea11e0dc11260a209b81cce254f492febed7dbec2212446fe3f22e871a12c46b47d83dea917bef7bda9e72580563eb5f3c4d80e2cb5f5ff1c53eb0d41a43aecdfb93af44f7e36fd72bf612a70ed1fc92e44520e436ccfb65975675cc1f14e28087b6f9f5b26769cb8e6a722c3a06ea18e1e7ec38abe30711b352da7235e23d10c4364f8c5f9bc2bd61f4f52f3a75819c673d8f77b176d325f3a4815abb26dc9bc5448dac62822a8a3d74791efe857a53403cdd3cae98b9cf26baf4a4bcb6059a6e4c871678a5abb07c8a26400c03f2493687b4b20df12e4e3364cf5107274b1dacd2c76765f8b8e8123ad02532404e50166eccd88b6485e2eb9ece1e1989a584cb7c43711e08ea619c1d102a5a5b6561908c884cd7f2b786b258273ce834c34103f4430429a21913cc5ee6ff448ee6b16e51a657aa3500ebf76a55b8e6978f15f141ac857225223171ff6383e08a47b2820c38da23b1b1f0fdbf2ca5c7cd1c055c61fb2e5bb78e233c313412819be9755a071a4d44e6eee334f95f720261aaebd5a6c8ee6dea5834a515dfaf7463d7fbbac8729d1448e522dc1d3582b361f89830a23600b537d91e6a755f8be798e54dbc95a7e84acbfa0939d71909b559d1fbbaeaf05f645070fe0d10b34a1a8ff5d70783b0cf2abda80994588d1dd76edd93933b600c4d3d8336d4742fae7e2369872bcb6e3fa2b88b2a73608727a8debb48d732f587abea9ecb5fbfc2cdd56b1d3362405e78b34690c2eade68c32f68ec88839b7fa71ce28838a1ea142c0c065c6e173b026598a7d24310368f50ec9f43f49844564724e226a47c87e11b14e34566521d6388326052d4c9201b6d91de1c51f8e9d54fca6bc5907f8096f2f7bf34864db1d39cc95cf6b154d645f0be1d91db2d9dbe328d542e1bb1b33c58444d6eeb789fab2e3a285e1ae9663968b1a791fd8ad1b6dbbe9ba105880f6f9b87a254612e51d6b41a0551b40a49ae8a9e87783418fad8d6e5131bb578b2113070cf15d7262b2a8133adb85e840c7bbe8777cfcb2bd0713e2df0d8761dcef7e5901e02d36eec894485a2dae60519e4594689ee33ecf842d2103de151bf02f639826fd3978396c0e9d01bedd9c27a7bc4c25b8ba9d4ddf8608302e80b7296d63768beb71009de8d3a15afa21566d06a8929ef1c5093097667eb6ef2fc97130a1c9c6be18ef22525518629f87f1f1874a29cde7c5a6d254f2476cd2838640810a1d2284b4cf86b164dacc4346d4434c2327b1c16c7607695a13a6edd3cf33274aaaa542d9d85c4bda9bfe00d443ea15863b10030c3cb6c738dfff79ef18f4b1600469f8f8879e62a60c381e399f17b51d311eef1ba81efd213166c06c8fe2704d827ef594a36396bfa3ee2116cac554c4ba488ea4f607baa2142b3ca2384a4d0ef88d26ceac3b9a3d8c7712805fe3adf18e82ba5820e236f7f903eb392520649cd6b480a3028dd2e912a0b44cb3ec33c5c6f3273402c492b3a0b515b452b28a4b5c59fc116c17b90d0a0ec82a448ed5bcf5f4ded9f5224993435bc63152af1b8dd74279f4c175a82ef0d803fc5845e25ee0b549a098ca06ea52875f5c481fd5656daacb4d6d9f2551effcd3e51bd12703ed5002a27a48e0d3748c00bb8624a8189911449ceddb054d02f795b8f5df09ee1b070e321c73db961d61980a2c72023e4080fcf5af51d5cf757c3e788836d921785dbdd59b8c1b4671cf07335aeb72069fc03ad6f60cf9225957842627e442809751c8e0b978529897b3763d707c65f460b9d61d1cb911c24ec114a47d1cc4eec6fb81db4f530abd631a9733536887cbec0f2ecf4b10220ae71de4f900339677aa49ef3aec47620c2e57c1a08ca997907ee99d645e3af36dfbfd31bb4aa06bf15dda0d76f29defdf4fcbe1ad2a917c90443ca4d93c7a2f517ef6f745f9ee9532d40cc76e5bd9114ed209682fcfbdb46b6954fe0eb9f62d69f76726209377e681c619b2b60eb94700590de0c5a38a408007a366f5ff88e5c249bb7af4c16b6348204f6d735ebaaef04ddec718bd3dd6d1fe3524a055b39c7be3eee550ee09aacffb4dcb2f8d90d4a6b6f7df60ff505a6d73adcb22417ce490fc7f0dc4a3d70585ffa438e8a17364246c303818c4bf3dc330d0a000c80bf36d94853bc3b6283fdae380048566ca35b4e55802a95cd906ca9588da56da31418008d6fa32abb626495117f81ed13012347558f1ae270c7f1eeab679334c3b9117315a3b288c40ede70214b15e6c77b580dd9766d36d3950af564bb9c9224b3c66ed7d211b97d3bbf16ed832148729f3ee4cf1a63153f21712605d5530eae2f53b18a96bc67dba2fcd570eb7054a65d872aa4031208aeb135282600c7f6daa950801456a7d01d8d07a9e5ff606b9d7053d22f3dbcb6d31b62f773a5882b0464f3070c8c529d3642165f17e629995259e9b094992f26f9a83da40940da25fae73c738f67eb21fa4c2e870800169c8883e3b5c0442266470cecbd397409883beb04eceda7b92220f370335d8deabb9473442989d3bd784b0b737d2b887c90746fc0dbc0db29d295ba81a9c9a568ddf7acb38e206c58c6b8530a5c001acbb1270c7903f0828961e6b40fabcee8fb05dd94eec40a843620e4652f6635e77d0601a396f4c89997583ac5fe71b1ef4ad4b52f3c271bc9b400a1b5df594db22d978967dbb2cb1872c369653f71255fbd429451ec3e8ca1efbe30a572ee68717591bf3f0097ab070c171f3ee11e6857c654601526667da0488b106476aefe63e5ab23cf9adb8f82eb44ce973784416fbdf3a62cddb258059b43d0435528a0bf841dad7a9118508a04fedafec935ab78e4a2cb29d57dcb4dc4a0ab133ac9002dd5a621bd63531ab07db64c2e689568fe8d1ab1b6700973379fb9968f337a57bb02e120fc16b5d59ed33917e72cadffc80a5320c80193c9909b1be42491afc06a825ad0880407fc1d8db9b6d11f6be3678b2283f3a4db0d00ccb66b2626b1fc5a7d837b4bc921ca5904b63ae4ef482317f8398afc2c4619a62f57bc5602c3eaa3290139f7c83c10814c453bfa48d4534bf258e44b12158661c3d3794561ebdfb223cdf1ef311ff86a9f3637fa2c1b74398661c815583e1a642cb340d00ee8bff18ac2dd499daa1d688e9cff0a5463e9d6d28f32075be51aff268c69181c146cd423fc71324376ac97374f4c40932ec811fbb9db8633379a758c44a671c6ece3f59b957b1fff1b79f885128b1c6ba9a71e8c85e1c8ee0b7592a342e9b6dccbd74f9822b13c805d53e0741bbb1d67f4420e96fcd38d8cfd49f804dc1c80dca97bfe0468d39be6e771a2f403ce8b677929bc6e395d185661c3e5eec21f5919d619a71e4995e245402986ccaf212311144664e6d51692d3a18eaffbf16359154e19568a7cf0defbbfa21e0ab2cde56a83597413a542d14f974330eebced71a72b6cea14d763144dba519473805bcac2336bb416364446da00cc76cd0f8695cce4772b274634e9878654561d5d409e3699f1ff8b8dd1c3e8601cd38f2d608ddc03cf97e00c4adf01e1f2e6b0687e38fda2376fe48b6837dffae8987ece72733008687b41402cdaf4dddfe452fdfa9d80f7732aba49ab5779a71f4e6b8ab4235a83e259d549b3620ed09f9c44205eea6c75006b0e731a65b822a431f658c6ed494b50bc5746bc6119f47a400237ec41cebeaaaa446d4f440b83de30885d67732b617f7b9f26d129a2033e0fdb1ebb66d65aa83a6b5eb72c631097d3ddb587a2adc9da59551e961bd99b3c1f5301516089e6bf2e5d4520371b332b48f39aa6e21dc19d19fea18edae7271f86f6d2878b257a2352046b7280f03b48cad4af38315ec142557748945fc52ad3434772fe2136cb32036abd87625bf107d45bcc95a19f96269b2aa3351a2ad2e22d5ef64aefc8f92f703de1e5219a6455786cf1d688700a5c169f0bf25549cde4e3a9d241f870962eb6c86fe4f6f03ceab5fdbc467a5872970d23414bdc4b03bc175c14915b2497c4c8b98415604f5ea0447514c86cb73c75a4f724093436627f4252bfbcb366d88eca72955b2b2a6fe98bc6b7715877b634b36ab6977a458b955de284ee22f1f0ba40cefa48887f073107bdf2c5152692402e711cb7195ab18bbe38eea8a906b89213f8961304e32ebe80af21fa52c2000676561f61d63022ee31fed75dcb4c6ca877392e392ccfaf8afd474c5661cf6f397b037d200773460cb6d09884499ae486c95fad26a0fc7f2514a09720e0b5156c348adfc90799f2eb86efd4b919ddfb5be12f875e0c00fa10009becc94cebc818a56b75d18e09ae4b9c0427cc49c71460560d1d82a6ec779ae86a6e6105522f13a4ae8d3afa8d0c2c4f70a4f1fce61b9b0d4399d4244edd5da44d18b872dda3ee46f0882c7fe5d190e57cdadec3b216c6c2754e89c5bf932e88ed2c878e8b0ce25e98a154dde6791aaa0c96184a43aa4da2b835db485f1fa4f7f6c29bc5c9e24e70405ac120f44e9fd26a91ad114f6e0e481136b471c683e1db7f1d6c38f08e1dd729de455239042b10e34607fc560a8f03146d227af7229ee3fd4bc5ad80d951dd84e748e29e8400ad43f09e3fe5c9a6ffb402de3d1641be69abc9e28680cb2d2c2b0e324f9a7ed579ec935fe3cc4076a714aabd7c79623176f37b53c8641f57fb11b2f6eaaf04013e7cd68867e09c13bd9bb28b0b60f351703cbeee3ed810b7e7ba161a448695779464ee68960936cb2ca59e8b6c8fc643a03356d42d82aa91f0693b561485ac0f58835540d17c6ee0f1af6c58d35d586face8ea0b162acfe091dee4c46080fc5563f26b0db9736cef9bcf9a72f415eea56b739b7a054281d7b268c9733a9cfa148df2828ba3979946a178a446f109ee2c06a290fdbf1a12038f937022f94e3d7c3341d3d4f2aa8d50ded7630821ba6b4503c692c4779d60cee4660b6f3ebbbeb7ecc4f60476768f43a252650fa8c1730396b8f651e39e86b4e1e3c728cc08e90ddbbf0e090724b6d5e5b1169f371197e6705fa3aa5f37a5b46420e38d018c8acc74d7c7f9a453c53cba4b825ea4d604fc4d1951579de74c0a1bbe9dd64c8202611f8ca9b6c2345b363137c1d88e3ef67136941a3309ac9f7efd7912cf130eebffae2092e3c2e1d2ed87fef4e7425d36081e8b0a5889dbc3c2f3a22d1188d307adbbd0e288bbeec422126f48c3159e3a015919b3e0198e4c618fc889e89c896b0a2a552c4d29b81da6d1846ba02fc9ac1b5abd96f1dda97f12ef1bed92d1e61c475a3d611f9b945f459cf6051a4c3962f70af4d525a44a3106e96ae58b28780d0ab0570882472d7847f465692c34c165793e819688383f182e7d4f94eeca3fce276f6edc3c042b8e45a3ab5ed7a4dee2e01763012d13a1f4eb904808569327e1db50743821af3bc32b22c2afc2829dbcc1b67b8c574956511cf4efe0d519d4fd84cb56cd7b2c2648d845814494559cc1268d64bd0aa13b007b6622dd26415a26ccd11f17917bfaaaec38ad3f160876cb6a6b385b380b8be0bafd51a954a5411ef5632a5830bcbb60a6c82a479ce8595bf6f00bed385e895bd07d238c68c958c537f0f4d6865bc606e85c7a46f35b9b1212a0f03328361d144bd85bc148103e71a72dafe2a70562e4a0d59d924e3bf3837197f333cd5317f0ce5154ee03e6488669b5518bb140bc4d4bf9972f0af14776bce86b1d1b73954de37e62b8003a0aa4e5628bce886dccae018b19ef4f504696d156822d4778f72165b9cac3788ea211d2d048650a07947e94af77d621b416a82de9bc4b8138364c3ad866712cd461c827f819a93f0c472da152a761b58590e1307e83e696fe15791018420be5622d9ab4c31411ba9461ee527f28839f5068835eb08f74eff2214209a4b281381962bae835c776dc52fe88a00914e2297f7284215e0f01e9af60a5df1a9fbaa1ccf9494c2663db31bc57d66a932037a466ac7b10e073e66111655296f50f03c5abe701f127f4b07f1a9dbdd4fc861b023de0ff6be66a25b03467c16d0f258fff2dabdb90ce87252b43e75f928bb6e472af96f1e07cc7dc18003273b928bd270ba31b41a8dba814d764b157303cc8a60fc355392e5c5de170177d7af4847a0ad5da9daa9d42d5a00e30a70aa89441c30e22531b67ecfc5fb2bae5dbaee4256af265cfa76594e538c7d2c8327c7c4f67d347fc5813037c81c30b288ebfe2d3ac68cf1de49673f3c17539070fb36cef801b6cc2d44aa7f45771ac15d9131ff3adbbc71132cf7142d207610e5cdb86e7db35394d757a6903bec303a7adec186d701a87ac08e0696904b61c6e32a4e05cbd5c4f5707107b5278e0e89ea8ac99daede145549d01f3f841b12f467b32880380d27080be1ea9d8373c2b36115595df383a637f48b9a09c7eb65d1f578ddbd69c685c38b8e3e40a85c0bba1efd3cca764191e1d84c0447976e43f11d0dbe61141d240cb051c36d12552259d6a10db39ad995bef9ee14046e70901b0a860d4a3131b0d8a0d1140f09097aa540da3bf9aa9990a8fc420a6cfb64d6330b3a010c114aa638cdb669858cb4a3140352876843b3d8ec59ad8b5207193e09b711f1e42a56a9793a9680ae9954572ded55662a815109b6b858f31454628da666c2dc289ae9e781d468ec30d9780fd6e28326a4ac1ef2d22d783f5d311d70a5e16caa28f0239e73ce2cbf1e4bd523cf9d2529ae58f27f96f3608c8c5ab2adb80ed1c426e9a2a4950390df790aa1a2365230fd60002a05fb333dda508f0dce5d792af142436dd7fce0c97e35bcd59228bb5fe7eaa235b49a6144489ad98aa0e74e9cd76fea1b0162edc06e96d7aed8424c48285bc54e0640854d5d7d8fd6ae76190c50f81270000361aa8f248fc8a1ee5e9bd7b9c9d984ccebbe61003635d967d5355f872e01b0e0e0c03f715fb59cc38af5093221abf5bb7a0138c2b6815548ea35f4f701af4706d41bfe02a48d6f3439295a8ede7f01fabd5471abbd70e55c3f7fd49ead75503ca77e35a2bb419f675d0ffde93c5b4be1beb8bdc9185e9283285e09e451e8d894ea192128cba5fcaf07eb5e2f402500570d2c2abeed44a7f70a24eaf5fb895732cc93addd30e9e9ee746e389f88e4798c73918f1017f8c3df34ceec50b873f50a98829a17d46ce205dfbeef8e5d79ced203a91e75fffc057fc5e873991a2a6342b557f8af8eec5831c4854c2fb608c99646863bf952c5feace752952c405e2f4fec2bfd6a2b838afb5d6450ec3978bc1b38d38b9fb8e6d7bd2f7390ce7c54c4e543ab548f2e7ac4204b013467c88631aac7c9f04352254177c792169c34a51220914bf11824bf09f41e2c6fbdce380a2754c0c5db7f801d7209a2919b0f9253d0ed40cc71ca84d8e53491b793949396e8932a464e48a7350ec8378cd710b408037f82e41c0d3f1d01055528a9e446d60abb11c6df8f617e3d91fe09b847d9e812c4789bc885f67d6662ee5eff09095a8c2aa307411e00172c4c7a8051234963d76bc3b9fbf2ac3e7cf7b197a5a3e6d35292a87cc34553194b7d6343ed4ac8c7128c5bdde4ac987c07d1055530ab0ef3c47acbd1a598993bcd9076a5eb1ea46d996fd06235a003c8efa44090061b1a56284d5f9856522a824698d028592c40286035d93222b2315842eedf83c64dfaa419ea7d3f88839779fc5a6a66fa89f870a79a0552a9ccba0bd0af9b9254f78c3fd3cb5e70b424ed7c299583b9b28217a232aa078bf68d5b5371e6918fc3dfbcfd227f666518abc0e9384cfef8c95952ae79cdc8478fb23f09f77346945dc7c4ba0b69d3a6c301e6c637a33cd56e310c403702240717a5cb0fc01117eb4e8b19ea71a58f8023918501a375db8d55db5944fa9c82fbbf1f44c0aa411c81d86347b62e92d0737cf646e67b12d3396a3bc4b924ff1af4826b2bb559f9da9c4c1afc1a99387a92aca2077d38d49232d13d9f2f13c91805ee2d389c72c676877b4831d2b640813525b2d7e01b4a82e7bdb31b28ecb102fa6db0fcfae2dbe5c1136d16d7523d966695217248a34beca6803638d6aa387d15771aa0cbfef1adfe2973af6e63739ee1d238c0e5e3a43ba4818e626cf3828661d440cc9d8dee2b644469ab092158b90438cb1e626cc9ddbb504d83787e6d13c978a2103762f14c0afbc9519198d04591e65c2376e480c54f712ecee46314173dde3c7e758b222b0f097a8e220b3f62feeca5874dabd799e96089651e0c72775b6011745664f1572d4328697197ed04b2bc3472391d1bae0abb1ace14178f4ce4859def01704a3dd9e0603888a2ab08e2b2f728c970b793eb4bd7e370debd3f306008f287a360ae2182735529b464566cec6077f241b957fd8f99406a02a093ae9e9843f50795a3dcecc234096b3d27da1c1362c30dcdc109179323761e8acd63fe28fc563f7da4a41de6650dab33b68d275d2b4135a2800bf013e803113dc9b4917549301cb9219bc662d4a192b3243d8739bc758a68adfc09efa4f34f0a0187cf8da87d7e3ca5b440131a25cce2f6e4453bd070a890fa00d3a06a16eb31bac39370ad74a02ebb2346492317f3671c0d3e63ae529715c32ef78b4f5f844780f179a1ed7555d2c64e68cb917ff50d0b2dbaa5d19b6b7d8adc402597eb75600518710039038b5931931b763aab718c8f28e21ae1362cc9f8b820774cc12f8483194b04afb51fc8fa539cc2397f067c517567808559282e5f0f70741a58cc8b76ced0319d70ae500b15297f7d7b520f0985f4dc85d9fdaf5ad8e65b0744c507eaa2c01f327f36cd418c10947ca52217ca75a0f4603d84ab8ede2c2b8a590d9128a63cfcf0f055073de928c98a750ebac670d8279892b14ea1849e3202515bb04780eecc7c44fb462bae69e80d6dcf308c119b941f4b497af51773fb108a97b03c4d9df490b6188d00977400ae22ae506fa22b1248e04841f290f6d39b6805067ec2a10020b3824f8129285ee8f1f6630aa2369bd48845900bb4ed529977633bcb8830c9194217fb024c3228f89571543ae80567bb85d7f2f14d7f21d281398d0aaa8af297ebdf7cff385e9a2817301907cc4757b1947c98ae570cf099560c72792f01b04ee7064be2e185656f822f16cfcb620ed857c64fe18fe8adc6bdb7273ad2bbe0c7cf320c073afd5aefefc89359e30b0d78fb853d514a6dfd3fd6fa832ab6f5d79fca3d54a4d36b4d16ab46f44980d42a4512fc2d86131bdb0aed452c61c7b0cd2575b158a65f3a1c3be85b237b8aeda9d8ef0b73235ee68ba43e89c8aa7d5cb0f967123d7e62c7329a46c3349df91123cd6c8c0151c50a0436e104b52f95697a6e7c3054f2431c574f8e9fa0cdf5aab4f94ccaa532a345f6b04fc63e883569920a9f0c1b95b211d9b64bb1c15f82c4a1002c4c2bee69596153dcd452d897f58f31d04db8eec9db5ab8578be8a4b35cb57470a4eca89fad8df3203b11ea0f30e0aca9600d54cdad1b11620497b20b4d5d5668e17b6171418de5d32cf12bd1ab65c88bab223ccbc06ce570542f3d356e41f7cd9e9e78a5b71f660365b2b7d84870e89ec6fb6c9de18525e12f94254064450df0cf837ff9fc6556fe4014c09a075dba1a43edb0ea9f4fabf56ba1358b9ebc301d2ba792220dd55bd0bcbb8b9759f44694710bd3097ff106b6d11c4adccf4e613d05dbb8c10f6ab02b94d83e83bf3a0c0dfa9f28d25f3aa4d7422bc648f99c6ba5be9134958c77fb2f97acddffc66cc99765147eeaf9ea5d9cee3f460b9a4b02d75cf76234acb905c478c08232b3deff7c7bf25df6ed4b508e4657d9bf18ff86a61afe076f9b6ac0fffb7a5a4fae9328c0c91e0152aab47fa147690cf6d933d923df5a015457b176b2b2f2fbde115eb87856649846512ca0594187cc06c0abc5e331174c89e9daa6a07afefb5999cedcfeffd0c0714dd02f5964464326e5d54fafc5f44e7b45c3327ebd51ef84a27d5b5d46fbc4686f23303bf940df2a4479b4eb1b96b3f1453baf391310f7ce27df9c278065259b34ffff453c821281ad939f0875ce296d36d308f1821982ffdf2d1c0a9124d339cd0373cdab1e1ab39822150b29f9ef3be2d99d5a39673b1c9abce0cb064715d0b011ce90ad8aaf3652cbdc6bfca2744087b93b1762fae0730f6289d4bfe64698deae84007c67c15d60a89829b7316a43cd79a9a147a802d1a108a5df8ccc7a576276cc4200cb12b6fde43cc43da4620b957362912cf6fcaf9962701759d48c55beeb13e1941f11b22853d25675d0759cfecd74043bcc32da78c879bd133ebac523666a9d9adabf6e6f0a99af3637621c5e3a36642756f980c3b9ca7c3884e9c86eeae042031cab63c880695c95d6ff72d6f00c8c629da27f7f20508837c04c51b1ecf708b2dcbf536f4d7c05b031072fabde9cc47d11d49c2277a9bebec0967efa72c8e9a49e7aee74c11693ba81491665118ddd4958084c89df49cd1c92d8c2bc0a933df5f2592e6a3a3c5097963b3d2b1d4524153cef46e0dd1142b45fa70798d1cabc660dae377f5be74130476b73b224e4a460742e985f14f5b52294d0ff2fe3a495075f74d904bee48562e65b7981c384f1247dda918ef777e3be6b45e5ab61f6e1b249b0659fd8bcb0c813c0d40e9a86d9820817185ea09bb55832f1db9af5531031f7f2492333e1a823b19e7762c701a17170a1e0217fa7360ee1a511fbaf8dee88ae53eb49d9c8574807ffaf3f1c95704042286df338f089706841da6fd50f4e8e6f2e3c42cca26b98fa3c5d273aff3871600c21a36e4497d92b23a04850ae55d7abf5a4f42664d36c7cfa6b9eff4786a1fe44eb4e25fb8cb552c920fb6483b491b80d987956703880c80463932038487c7e5e0c216f7ec44f7c30b45353f4b4d68be5ecb9274229269b85f66e96f7740c4f6c529ba129de3d662e7aab5ba2e4803115726527b13db78e1b9679aad883b4f848c9a1db77a23860ba33b01189726fd793ebda07afb428882e1f06c788a4f9db59c815ae1c7ffe4c28f9a2441919465f5501ba17d88c34162cffcbc8d578ce3dcd902074e672d41ee0cff969826e2ae0cc4b91b8aa852a8c4afd9a3a2822f99c43c6d6f75d2dfb160190ccd0ea6de18373da16e109ae7147c6d6c6428619c263f3e99125861bfb76cc33cd31d0de7bf5795e8bb8a71313935b094348617ec4ad5657bb78b3756e42081bb8657f22c30e4f5f51495b2c89923d1acd044a3ef97b8aeed1e92d890f637205516584ecae84234c2be2860a159011d175ae6adbd10bd30f2110d10d49b4e6dbb9b3129b8b79930c8033b8369994e667900393295f4411b5142ceda6a7e761f701baf47f6a3080b4416bfbf0226a884db4748d82a4a6175dc082731ac8d76b9dd5ba054a9c150254b460440f99e515bff489a2cf9e0a3a7779c6bb0ec882d3ccbc75ad492a855e4e58f3cdbcd4bd219aeeb1ead49f46301013a0563e4a35b6f8ac4e5d1600baea1db625ac2f928f7d13dddd4f6dca4134dc924a2306030932c62087d0e5c6f1505e4fd2bd9bb59bb01732814030aad9a1c494e6298e1b1c2402af2a5cb99af4a98869b4a23b025022b489d1a85a8834814e749229d830a61a4840b09a461b8054ee000c89522d25f5e4d562b0d4c852d9ed77b316ad853803c4e63248e0778f4a03a13d3e45c5e51e3565ae1c904a357e5b8f4044914bb3753f637c2a0845dced065b470a899a6d5138333b285fb1379b5859cc26a73700b5613ff7cffb12c04e206df8f7fa36e06b7e54643332dbad7724fb56172c00068693ce26b857195d2328a3c15d0f6942fdb5ae7b4900f6fbe457aabc0d574678e3be16f238bd691070952f6a301ba7b416765f52a7b7ade7a5de8593e4a071204a60fb8b8dccac986fbbe68cc874188964330f7f13e707e0f05781cf50423e3f6728d0e1b03be8d56443a3fb5f89aeebeb9dc1b271904224af8d39fc2f6ba542b89de9c8fefd97f0ddc0ac27be498deb68af940e6ee13897eeb469b577457f72bfa9d026d94fb2d4aabf576d883bb85535c97e593e7306178b37eb676ce82f45fa78417534025a7fe84f5bcadffa48b9a6c75c5b8c5df2fd8b3960678e35c8474a65f647f34afe9616e112025c92034951506ecfbfc3db88fcf381ae4a076195a17d54a5554d3ba56a118d009e5a021ee959b3a9ebd4b239a74c590c15afec000fa7f25f5e091754a2f6a925828f409cb51c5a0e1b5e9808d559252380ac7b95a0c3f3e004ffab5f5740bf5c3ea7a6e2f79514a225cc170d95f6154b37247fdd63fbe3c38fb116fb81029c798362fb21a3714b75b34c4c2037f45a635ff831c512b70a98ed2e4277c61945c9364a12cff01b4626ba4e0bc2af77e571b05726065414a8b6876d84cf191ee1c35c5d571f9949818d583a5781874103cec56e64c268a670b55841a873a24bd8ef2987e7527fbeb8aa35cd5ebf1399caada5ef15928a06c16ec7703abf85fa45c42554d36fd98533fa80e13582d8a1bc793d8a2be34c347138f682842ee069e26ca9489be0e3ef19d29fdfa598c5416eabbdd5e0571963069b001acccfc1d2728367c4235928663814318a10f70c2167ba43744d553b0b7bf073fe29aced95b3bf2c4222e5ee2e4dc14272c05e7b59a59ac9b73a90a8e839793ed3b13d88086d09b68eeacc35fe45770e1dd0858dad3200458b2ae084b839d5e66eab58c32d333b8b0453a08462c33a372ed965221dc9478d8d5c4cfc865282889dbd86480ada62108924e95d6a281ae30cf5831d7ce560029f22b6c3ba0a51b1e872fb2662ab25798409bf5b48f04c98037cb87246171224af2e8a37160b540c07e8d5c926ff113a60eb673f0ca9ab6b7219ff281a9534fe1f9e8fc1380353ff45ad7619a8bf4745760c3364152bdda821fa97297dd82806052d1d504fc9574692aa25b2e4e160b48e65ccc9573a4478ba742d8ddb8007435dd581492286fb85a13eed4a08d96aa0d40b82837088f8c456eaf025b910d2733b14abd5a0575c5813ae56b1e000c4a0c87f3ab681792c788621d08586bb49436395d046b066e86f9ed2e113b82cf30bc44561e01b44ba89ff779c802b201ef778d749ab42aec97a1c74af81df7f2654e32eea6694dc2ac39f0bbd1087531e9a75851a7afb162d7bdbd80343cc2814d10c45b04051bb1692aec32d8841147066eab0dadbb848f86e9dae9adf2794e9fffa0c0051143b55cc373dc5bd63fab5a59ce8264891a79ccb9091a0945fc83f59832ee345107329ac43a92bd5a5fa216f57be5e936a28bd006375785ddc75d313f23c3ac4e9980746b6b8d8eab9850f1ca46306dd5aba1a8ea79de6f334b21b6e4d95332958a318e3daab2425cb0bf7e00caf9c8b39fd77da59d9cdf1099127e067bcd87dbdab4cb0774f3f1ce992ad79451cc4f36f94e21b4e00d4541db802d47f2242c6b929c5df512b3fe77fdc455014ed90a0d2ddead6fb8f2922f9db39c12e43749031bfa9561fee61b3723b997a23de9800711fc7168068954d641cfb319e7c2c95662693bebc8cfa67fad26ff58e43fa975fbf2f0d110a9975877e139c3fea875eaf37bfabe9434740444888ed0efb5155818fa3a9a2632c6250f106db1d7a90cd0dadfa9b8f1d2234c1fd94db97bf78b8c93c3198c078d9d92729b09559b1c124769f2909ae4751b031b9865d7195124edd607ce14c620b54c3718f64d18f90f28ec363eeb3e94612b5857fdea838fef91188adc54fea9bd6bd16075b62662670a490a88f3eed222a09775bd9ce501d2ba41fada5db657ec4b85410335286b120051a2d05bf9c1e18243eead860c413257997840da5bdf8deddd3905ae6e9ff3230d0ce0f184483bfb3866b02b389039e07c83856eeaf097efe96f1055cc53434c9e8d78fc37bb6d3536fa4b03032e9696af41def658c05786c18282abab17058421c0e9f800adf4fba34a467afa55e1df70cff12132043a31115d75acd0b94a53afa4871dca75efd738630c4974a3724785c91e17aa0e14837f732dfb849cb0d6141c131c252a6e31eabea3db1ebc5a54a65a2798df059c4c54d3abceaf5c9a0bb116e1fdd40c2d57600a2f4d7ef1b7477ccbe4d86ecf3a5253e151b8f709a303e303467badd16ac4a18854c514673746d15e44590f4682f4d8b3df92062f84e909529b4481f4e1e637c8a7e06b05288feaf715c3a0d189ef92efb4fa6484a6ca48f7c818c4de2e0c6a2e072255e916c3c483127201d3b1619d4ca8c05911949f54337ad357f5d665a0def6ac73228606ee03c22a4c215567df632e4c1adf1f34f68c917158fb514ee57c52f76cd1d3e90528da3eedc630c380058bb1fa5fac644597ff5000a204b97ce2890be2fba3702be6d43449ddc21cce6d19a0408e9f38090e9e6c6c9503d0c97b549712d2f35638991de5f7938b7c9a1999b6f824a0eadb686f4bb7035ed124f389967d3764d6982098f0d28c87a702f14354d03aa69db9a3c048fb8eead5b3ffbcd21620e610dad556c1e86be88298105df471c938e9edc00444cde3b3b8720779d93f95408903be91023b3ef83c6592277a17059996206eb2695b675ae741830eaa1f78ecdfb9d9661f8039b2ae823178329b1b9412ea6ba4f7b5bb0075e28590575b1b5a31ca5a96e5b4fb360c113f679b3bb7df8d46465233b4c98e20672695b141fdd3f0acf6af4a71fe5c790137bf64c9ef3251fca61b2319cdce3c346846af39ad73f1d267945fc4c695aba5b8d91c5061d37ffcefb75115990176447687c19be2b550cb444653c610f4ad0cfeeb774d2bfe7a981a21b176784200546cd919d6e88c89effe6f3bcb65b2e461898201dedc881af29cb1e24877dd174885339b7132d6756e2d9c9b987eecad04c79e98dd8af42063b682e00bf42be8707c6654e914fd4757951da9a2bfa0fe73dd4f9eaae128acb6318e522c1c20eb413dfba0bcb46d0743ec4df030f51f9c4ae0fd3cc13c20eb35fc547897a686f594ea684a51759e1e5d0c4bf7463c28c6c75e295c339c10a3f55aab41540c77086822a728dd1254179f95d4ea72c458da71c5ffd99b74ad94c60ea1ebc5f70e6978566e17bb1e9316a75ffbf097b678a4a9e1b8ade66b44b7010138bb5920bd604b6568cfadd6ec8602f92e6b65ef72b88606688bd06dfd4be002a8a132af0b98504bb33e68429bacd260675f48fe1497b218941adbc285f39bead824d15f3db35653b9103194843e939ad60ef12ec18627c49d31f571fba984a05ba50fe8c25013b0ec702391bf3f0831ee13d21333ca82bbc42925aa32c9e366addc4bf07c6e40510e293bd8d3f79e43e68cab852accdae9c1f49ebd825186ea267cad88997d8002f4da2730b44dda7d9d76c652f1c6b6e20aea846b4bb09d04bbda2b3fa452c6071fd1b38f41346436175618d124ba5d50807241077bf5f06f1c16b7f9dfb4f2e103a86e1ca1d81b86c1cd503f25f5339ffb53492b0c6f3e3c29aba46f4a378d786e90ee2ee7c1cacbc1eae718f460aade1b1b1f6ab0b1e981ab0eb4cd0cc14a17a19ddf6600e8efc69a398178286c6aabf2040112a6226632a5947555e71db21059b83837e7f5b97da2a77f3bdf70470be4ce4ffab0482d8c394aee88b590f97a47d3cab03ef4087b579463e380347ed972466ed7d2118934cef58a431434754e128ca286c70ddecb7374507ac64cf7ee876fbdaeaedbb2ce4cf801e56457bff28b258c009dcdda0b87d0ed68317e02cb4fe945bf69b6dee6e76aa1104b24a097656efcbea7ebbbd42ad8e5df60acae4734a9281ceb6941844e2b7345a382cbc603c1a62cec99608e7b02c6b6e140214c14ab06b2097e99b8b5eadcbc93749c359b99a33b52f6e01fa5f5e76d1409f7135c070d10c4596bded43c2c0615f720346730adc01a903e5f7ddf4b3c0a7d26427a7b9256a995600709ce55f84dc45224f53062ef3a0a5b285890d237116fecc5782982040829b5e70927c26d192772af26507aadba66a1c263e2c2fbe7a099562cfb9b07cae0595b92d7d3d0eaaf2fe9924ca39d68ca762f991d0a5f717960c1d9f924e891751becd6244dc792a7be9e4558bf061001d981c40f82e246074ba7feb44b4ae33dd4e17b59175317d5c001a2bec8952eacfe735b318d07a79a47fe523d17c33b046e4b16fd0d2122c8619549d1a064183d6cbf983041f8bccf298171392aaaf99a2c27c07ace33002f8ff2b7b650bca8b025b214b972f638dc8a3926cef14d6ee698db033aca18c80903a33301dd9c134844971a0a41aa6442984161d8564c408286db8acdc1b441408bacc5c22960a11e687534f6537a4d25851d02542092145d2ac10bf597f2b774b67e246cf35ab1dfcba6f0d67f0d69cab68dc2eb5f050c6a097f1d8a0c9c98b02cd2d6c1481dd985be99d4623de43cf592b4d83c447dfcac0c62f610a6e72360554de5c8e7f6f26c840a4071a229d4222e1c34238797b04738065ae7a06b5c607eeaca55c571ca94d2edb4b6129b8b536f3224d04d0a8c94158bc03d173f62cce4f222cf2d25a49a6291e18f24e9a395c28e0d0e1e1dde9c82a886c6ccb57dc65b6b87a250cca9e96a52849c260d42f16dd1298cf1ae93cfd32120a30909a78ad52d40e8c922b312f6a7444a50ea2c2b25a9abc6a9ac409aa5bd251f919c5ac23dc1e9ee10779f59fa35146fe3635d3cacb816201f9177585c58664f7a0d86270b3d697a272024a5ca2b0047fe0335f3267a7a82baf01910c97a3bb147d6c86a97a5c8c4325bcfd2ca5187cacd9d79daf20b925367d1c47708207ba4a9362e8a0ca1a72d310484feb88eae896de41d347e34160496fb621c0204bd2160de853d47650391e15ff796f48391e2dcfe4693c4f516eb30c2ffe6d10cc54390caf452e54c1579dbd62eb8e0201d8ed43abc2146fa38c1d00d4a1aef500985b9418a005f114c136225ca0b2fc0af7d6c3da0ba23efcbd19a296e7d18a20faacedc8e6888754949febcae025d0f88e52deaa24241d42650d5749c136273b50cba80f59172022921be09551e095242c56898a20175b3e9a1b4f29d42aa070b20f676e797758694f5e53625d1dd2c00ff6c0b3943939a40c62b95016777e13cb1b4a3646e9dd80460550906081550340de5da36673467660ddf92da0a3d8ac5c20ccc436b0f631a0110b391a29170bd099a9d62dd0efb02cc68e0aa2dd2d393cf94774c1d135d7c139adaf3bb55a7dd4f1a4b408294f01ec5d3d6186d0158a178302526b2ffa40b609f5cd8d722b1596c7fce958231a56bfe98dfb89c0028bb78009b2cf0dc1e0dfffe6eaf765a73a6fad71b58e74e130956d755975457d010ae9e07643494bc978efdf38011592c93d3a151f17fbfeb1b3c73218a4fcb7708fcda77d6508fee0d0fd27c29ddbc186f2da9a06e2c25ea7b4698f19d4d2d6d74fbf8ad610b4300296e150792f5dd312e5c8cc41cd0cc72911d6f753ab84df7ba30229395509f72a6da0a07312667a961422c05730f6b320b96cd7dad5ab6aebe5eacc8bf07a6cc510ac1cd426db52e548c2389eb6604ecb4c2f459580e109d462be06f3b2a3d0a30c1d4147ca938427175b0e2ee23042ede0c02526ba1eae9643437b79a8acc4d4dc39c33e3432758c03657a046805ecc89c56a441bf566d08f66382f6f6e5422d54af56577195e932faea9d2683d4d59d85b3264a40594559f524ae304137cf16a89181186224af5215388cfd20d5cc4be970255371a31770a95c4931e4a804caf56aa867bdbfe18bee9eaecbedf7c04d07923564582a2c9ce7fada7d39563a073547f850dc2c4aebdadf2ec5f1d8e1ca653407c27aaff7807743d5dfb01c2cff23f101e66a8933a867d2200932d8d0f5461cea1624771b42144f5074522476eca02fe15e1a3a245846f8a1c2f15030eca53d6e1f8a834c69234640941d0751b0a20666d5a353d5698eb59a16ac88b2ef173386dc88524e8c19678644e9a08c19008092f89f318f39ea0d5435664c67a234187ef81dcbf930c84c1c73e40845617d8e1978386de3f914d8c2a7eab5c75f8b43dfc44d613574fbee170e59c44b2cf2d3086717855d1ae3d272098110d027663532cbfffb6d218f6d94012aaa49a2b790188b14416970c40715e681adf0b7eb771800f2b26d035c7c5f38ef23a99afeb1c852bda22b7bb6a3d12dc6175c26954b323a5d68200eb3ac64302bd36083b46b3206137fb19083745ddead774fd22e11e474f6f0bba0b04cef881683d4369e6729b70d1ce05eb52357b0201e010f6cc5ea5a15e621243b154636098a81d4630b6498ab54938c87e3602f4d109ef293d2473c0a2cb4b366d2deebfb7f9981517446bdaebc5a6c70d910c6b13a63592c26a068575d1fc2a98b4e9ed8ca34026cd937de8ec99efe4b3fb552dce3e6ba52607b126e66e18f51ecb2fe02850aa36b31dd9a1395093ed2f43065e99a697264ca7a2387766b51381720bcc1d6cb54c1cb84b0bd93f8fd6058f8398eac419f52ca4e3371d845f25c3c208e0ac619162d23ee8c519f8caa3c42c0aac332d3f2d5da87a0b18179511a6511a74a601fbfc9d1f9f695bbd828a28d94f00e2330035acb94d26f64fc4eb825070dfb8c1216d8a5f3b6350ae0796fb430e80cdab600840a640f94ac3bb46da733dfc0ec4879ed7049f99db8acce9bfdb03dc5f0a1c7ea6eb59c2544debf9ecbf78eb8ab9464d353fd991bc304fccda028cafa5e937f0a0e8df4d1ceac493b83f8a484a9d283ee13f6a65df0f02b70686ad03f464963d0b56d9119c3beea720c326b2ad50b86e2c828ca55492366df369ca826c47c2b5650f19f421d2f0f2b4d91e8cb7d4506deb12d61223e5906a449ccb5d4e3266fdb55f022cd99fc3d987f50e78cce58b51729f5130b05944da63dec208e219106bd63cfcb9da82428baae272b3ee29ab740e2a9ca2f0c16799453baf2b62d824c8a4ec961d8086f3962ae40799e90b76d0b152baf1996e8da4284a13edecb6ecf607780eca07b5b0262c71e3a402a4955283cf2c4cdb7de106fdca2b248a09cd2ac8fc696a0fc549f7b28403079dbb281cff88db9d6348f2db5757a4d9c3dd2f3410d49ee748961d06d5b61900b713b518da3cb44a54511e8ccf6215b9adff34b82acaa92ab70234d96387ab8b70095b4f21456dadc64bb0c00085a2b24e46ce17ab1de3c9a0e50501a52658c737f08c58d94fb861ca42f23abe2dfd59ba36200978cd135ced5e051b169a78b7f92bebc1c49d6b2e030b169e15b501f263aa7f5d5ee5a2369e95b00e6c8fdb218009c6a71ae6ce65c2505e1985fc8d243e2fd7b18539e230902fd78289889918c70d3e3d1430995bcd0abb5620d715758885e3f2950a9f82d1c0c518bdb3691a8d95d5b192b376ef908a59ae4e6afcd52cd84711791b77ab55e96e521a66b7f6f688a3be0daedb4cf204acd8ea5c8077707561fb6021856b76306fd85a7e1d31229d9e3c5fd9ae5f0c3e5b3af32f5069db8a3af4108e52d1792a56dda65c6cfc539ea87441fa4f0a0920cc97e6524a0cccb81daa5b14fb34ce5668c1ac84b2556078be8e9d55f431f60d9b96974d72647afeac0db65ca97b6e0fb794797654f3560e135fbff54072267b21c57f27d311b4e790e888d0e7b56ad294bdc21501e08e2880359f05f620554813f89855407deeb01228bc44c279e5d6dd179597c96470f7df6c30932d3689132a0791dbc49f3eac7c4d65bcc80a1b0f3e19f594a4ffd3e2bf1600c6539223e33856329b4970335e2e4747086716ba46376762e984dfb4c9d0677f6ca1527a7426c818969010b81b575ed4adceb8a9c64d03e8e8ea56d67aa66ee0681da3b37e7398f551f00c122e610d9b7041a427b7ea3385b71c0f2c3b44242bd46e6ad84fc656b823d9ff849c8e9998287bb6d5858fed93ef50acabede20a7c77ef2e5f5bec70f79c9707aa45d81740135b815ad2703b043291b3f40e3bdd3b664216e230fcb30948abafa1a46164c649665bfddbdb29bf817b87b572a797b4249e22a29d1ed528d6c935c334baf0406535287c9aac9bd3e330b6369e10b49c3980ae9e33fd7016bf87205c60f99ba1d2528db8005fecbe733bfffd4a54f5343050345c784abab321abe5791e610cefdc5f512ee907fe1744523095202eb132ec6ed5976f839672ae8d4e8c44148a904409104d91812205fa5efb0213d37da532a9839653b98b8e9a8b9528ca64d524c8f04dfe645045e3fb79d2d7e532dc8da9f13914a98af93c55e89bc757aa421eccd02fb42c2bba308aec3645508871b9814c2b5a34ff6f8473e3783168a146f6b2037e3f8bbb438cca98e9992955dd35e74bf89c4c4ac1f7fa5980f5bda640f51ee227084451a708dbf3b35f8b73626fad0da56589149b568a0b9fae15e0e672a08bb0341af252d0794bf14f19c77fe86785ed996161dcbdf088c499644386259c4a9d97a7fb2d8a00f947f7f2d937e69c8c9f971a9189d6922e5289dc2f453d6163bedeec3816dc32a1db3a9428bbd99f90140a2dfa715a9a57a6f0f70d365185c601fa15fc21f1494556891e9c0f4d11bb6ef296868262232d16dd2c7150f3ac0ecf30beca6baaae8340d40ceb11beaa49fd36e3021a45cadde4fd565042efe2e48fc8a3c0539f0cd17f024532c86fedd4d5ad8a909deaf3b2c2674a73e73a3540bbc0a2135493917596d701212dbd43664303e8125c15837ec5883f6367c7dcdb7ca8dfb59d58b15b020cb7644abdbf6132f55e882fc1ef47ad02f05ccae2a747d915737cea6a2dbaadef8a2b1d14bb2e6b10b10dc9f1daeb19e8bae0f20fd205521f2c82148440e350207216dde6330bc94b0a9f32ea5f29dfb6c393dd170c86497f1f8321667f8f34bc1b7839b581bc82a140e5cdfff350edc1af77f4b57bb085f1adaba3c6f0a4db2397c8ad5f4a3c15b841480a046b8f0a8669b8372ef389b1297e71e6c92374f0d55178d6f0686ba889ce2f454b309af46ef8d0b032f529e9bdc9053299612727b06dfd4d13f1e345fb1b5fb11d500de0295b2d0d8eb56a4ed70c529286314aed2d27882023d66abad1c4e0657092f54eb2c2fc10daa913669257808d71de3102a0e620c03505b76842988ccfc67e9a84e4137d34c23209751d17756a05a17fd4c4015c8b61a80388b01e4d70a9bbb40149eda9b56c7d0419e830fa394e5333731081a72fa0071183b0a1921e0c9451b70e52220ce1578b2cbe379d4008956423d1edb2f88bb284fdbd010dc959c6c5bf525ba2ca95462a9fe958f8d662627075eb80316bd50c30b8d4b974fb9235261572935c472a9f2c3e1ca9451b8d4c7343e380aad3cc05a09c27728462f0e50056028700683461d50802feb87289dcf49e5719e0f446e3465a011116aad2b6e4bb044cc56cb5841adae2b180044f76525d449cf6bc5442bd6d9871252510b088c790bc9692390a24588c03db06979556e0f72048225d4294956b025477899bc1a953bec653f5edca47cba4542109a8348303431dbe5f2330eede4e3ad2710bae318e9d1d3234238645c4243c91c497b38326c9cd0085f9e7fb16550798771ae2162040c5b131136e8033e48e8145a57c4313f669e9819266a5423f783805461ec6739b2629837a0d25ec54f75c7d4032968cb00af6bcf0274c18ab5c5bbdd761ebfcbcedb197dbe7641cde6194ae58428161b88c305999045f98eb48d3ef4585b5a505b58d0cab5f50bc2ffd29fe877da74b4f636f2196d0120cf640877dd5fa3d8bb95002c90556970145c4a18910b4e08558f9854c20c570fb9a46a7a4fb3ae835919999448926292986a66c3b3b5201a4540758d758efa37b62a3f4915c0c23f198f40c1b914c3525f3ad3298d1e1d272338ff16569bcf0bb8b6b3ddd9adc19b577809920f17049fe1649d44982cd6ff5e738b16a21327415c3b5637aeb4e957dab7712a8dc2b4146362e6581756ba53d4e537bf2f724d8864b1c8029aa8c2dab43639d2262e084a50c98f08f15042ab76599fba8b89d99df9a1a999d5f5966c5ba64f57ecc2771eb5206771a86d78f274434be63624f4b2b92303dc5e47a4bc9c25407d0b85ec203dc0ba815d85a564794594b1cb467c0c11b0dc4b04c5cdd61fe60638edbe4d70ff45d7a0aeeb2b45c528a2e7b306bdfe78ab5140922f2b1ccd344c8d994a22a4c623dbead08c0d8b25deff1385e1cbdf862c8f753103ed32d0a400a0356b4a13ddc3a0e648059bd7d0dc02b5da5bd2540ae1e3636492aacbde2263de4dd778bcfa6ba9a1c4fcae910c17f54be33b41d52e5cbffbc80df01c63bbf05c5eece503c859ce0e01418261245d8f6cbc742635f5e0d2400a6a58361dbaaeb817f59f187b90797efdad29995fde39d9196e67d080a21d5412e889a8f47559c128dacece4f003702f27cd8c984b1efde3d0ed3adbe5eb66c17cdcce77676591aa9fa0bdb54830b13756d3becf749ad20293c0d243853857523c8a96f03a7d3a631eb5acb4544e978558eb55cf10a3aa0a9415562e5145bed1041ad7cc00c183ecfe0c5ce396d3e96b877a4f502bf3b41469b5f9658f6ae47d139afe384af8fd42e6b4ed79815e13d2ec4c6dff02f79efd835ced007b08213961aa974996d19f911f10fa765aa5c56f52022769e6a31e35f62a75e2b569bc93f52a3590262ec06e8d4795840dc638bf8e7c974b26f2050b3e48da089fd0b0fce41730646c9e5a452c37de82e6961ae1a181d15b1796472c80d9e778b8847621f55bc241da6c18282aaa2135045683c8d67bab4153034902765eff75ac3bed9e2fe9a62e2d1b00086cd7f2ddf29974d667087251c89c86425979672ca16b74b74f8c5c95485a4d526c926e2c1dda6245e4ddc461070a9d5fd1ad666e4d882698fe7d37d641f9b760091ad6f4f24bc9463bdd187e860877c73061fded036bd49f8d95620229e7a9fa119919ae1004935cb0dc5349ba12ec61351878ecf08efba3b840017fea813bce1b644fdf061f27a351c544775d5611df213e5bdd36e3aabc0286da9507a8cb576f21e684ed7ba860e7702559521bfa9612cb9bc5915d63dc0bc4fa81b12d4d08a3af0013866ecdda2e0c4a867a5d3f70c2e369983ce5209bb12a9b51b1cd5ae43c18eb24855db5b5f00b262d0fbc7c2fbea378c5d205b785a95e8e20c0a88d367e6988f270de1ed5de10ea1d0c73b1edf2dbbc8e3499caa55495deb4835e84b11c4686f13c04c75010a6aef38029bf58efe4b870a6602f9c2d383f149c8693f797ed4692d37b59a41000075c70879775e0f7da90ba6e2995d21923e5f5ed7b547e464a836c81102fc6fe7afda0baae5a67543faa53e9b23db43c6792601e884191666e8c01f330c0e7a44a0965281f46c3589a8cab922a1c801f9193af851cc410c926d6f9bca4c6ae3217023a94627aecc6a2592a1b60d6fe9d91b3dd119911d9597dd5ec85dcd5da63ee8fc349d275b6b49ea319cd31ede314cb5cd6b5129dbd8553aa3cf04a0af03720aea56a95b51a6330c1f40e6fa4c1f92dc00bf14608fa28c3ad030e919f01144731b70fadf8520bcbf1e857795dd789953793e3c6bebbb0926fe0d3efb223838bead63f1417cab514b56e3a1f49fae21b81576c1dfab3ef0fb5f8234aba6197495da03a4f9e2d35edcf7319884d95658800414d7425ced812bed5e686a5243a2acc0a62afcca20806609e927d6cd11d6cc52aabebe343d2337403fff5bedd95934443d1dedd79e0db008d90135b0744e6d740eeeeb990b28f6d7de3cabfbbc655fe5412cb76f35bca29c5efa3eb0af269fcc3fb9ebcc79d5d5d4a787d577a33128d4d9d0afcc810cfbb401ed2affb718195dc97257d673e4db10614de3e9aa6d8f0e17d3d93fc7dafc369e78f046301c4976fd07b1b036bc67bbae7f72a4dce6567be049ab648baa2986da477e1718ff9a96df29dc231e6f857e40638eb65c7e72f811633cddc7d9ab5b1fedf9c2453dd637c18ead88f704bacf7bb123c2da040ca4258c40581530e462c22a11edbdb6857e41d431e7f2336ee26a7177442a19c6108d382db730950dff38bfddce27dc0ea4b9ff944de31b66a33a3ae2af4e648f373bbb6a78f66441b56a19e98a7800e2b2f1b2f16a69113dd33e136f0b61dbae88bf2d8841f715cfd0b73618a6d6e05a0e1ab9898d16c2aea5110b23a5b6034c6bf7ca049eb0b06695962beea3f192c55ead9b1cb569db89ae208498cc6644d73f51c214e4ca3faee6428fbbb7d6c0a13873d109c1049cde6324dc4e376f89ff7e56f433e97cf9e8ab9cd71e318b4b5c34706348a40e5ba800401c88116e88f71c9b26e75d63a44d63eaa159d20dab3c398dcf23db48f7964f287f1a8783c877bea0ef4cd0313ffcfb03579b7bc1dafd7a3a17e5a55df6b90940ca1443ee1ea35eb4e4accfc07eb98a4d9fc02523df742f8ad3fe8caf5a4bec2505ae183a23488181736a83db66de23152ce74e637b71f22624678764b761afe1ec76744f43723ddacca9924bea5f9eab3e53dea7f62415f240bd59117b2c5e2e2d5f53d6c9465f408f5d986a2b435dfa389eaa72c09df3d25990c8953a437f28a6011391296634158fc5a33a10571f1faccf8e6c349c236568261a729f7756868dfa6ecff210a0688df618f93146ad9bb8087d2a95c5a08d3471b4639777f544db145f0fbd34a505b151553ba434b65a11c428426db704a3413f180bc801c5ffd587ab57f37a7f25122bf3f1b08b3f66f65c053544834b25c623b88443a616f708d98d8b72015e6317fd2b5321192f8269d47d9279e51fe21d222fac114fb0fe70fe15947a5eb0582770c038ec2ec345a2f2a463d3bad027438ed7fea691990b6dee5ffec11ae15b36c2382dba55d4a55c78e2b719738e9d39d5450b5f53034edb96ec374a9fa810cd0b68c0366f17d81fc9066aefeb7b04708e32b4b48199956285085f70e0fcf5c3395b5182561a7736e5a4d17cda2cc240d27c318a3dfc414acc5e21cbe9627003d2c7a4405521366f11cca3a1185fa508d2bd71e860296926aa41a68af50ddf2b6aca89225c03462b985ad472981c52ac96de38b51e0cb89ee2ff1d064dfe070bcaaf62581290c15b1c9f05363a05e74171892cfc0b19fed8e8b0ad382313ece7ddf467f9e2a4fd44bf9c007647612ef610ccbde8aca832504226ac6cf794421d79fd93160187352583377d946849d2a8809827b4669616b4870140afdbda3aac212569b5c7e526a7e57e7d358df0896f8ed89d3ef53d6cdbd64abf054c8026992556eab4460c71b182e539c2438b51c09b73bc68966a97dc1d68cbf1cd6480d51b9b06f256cdaa2f88377fbaf8e9cc42ce37c6515670426d5cdbabeca7dfa188382d777094bbcb4c911f715e0ba37477c424959270587e48875833603d1f62bc98cd57cc85384766341fc6513bf39ed940280ff9a66b9163574a6c87e3b95a4852e663bb65bdd1ca16036c5bec121c6ba1c009730f4a06bbf0e97a1203fc1300860252e41a40604039f65739220d80c1c92e2a598e46cc8abf219ed172eeb4a8286ef4a34b2998bba67047b317566892f3e800e97823a361a69f48999351dfc7e59794e4b0fa9068a33945ed97503edfb4a1e961d451fa551338c7c71eba9ff530067646b8fa4f0b4cd0a98b1fde7d6730e06e3e84317c34205ce3f6d50cf26992e2da42524168dd98088122b9130074009d8c70ce5ea053d69b53c3b5fbd0f08655dab06df4bcd422b7f0877eefd534b15ca577d0b11312cef6d64675509bfe43ce72ca37fde0ae2577d3b2c9a97172fcbaaf0b6b81741004a63e2e8b05fea33396f6fc91f11546d02df1e9b85f6ad48480c7f9c19b0802ece9d2cfccdf8157ccc0ca6be995f901ebed92185e657f17d25dbca4f1aec2f12181ed121977d561305e129a1a0b89bcc4543d893adb874511a4ce454eebfa0ee542fb59956aa60859a6951e274d4bf9dfa61ae1d6c2d13ce38ce8c7dbc9207c58b8323187e1e51348b4837c1e0599f75287cb3f417cd0e81547685b0a53ae3a4a133e7c152f9ee303e3f8a2675d867a646767d2cd4121590718f8f0364f8435a4ae924aed396dd2447b1ab356e2856531dc4daf232d3ada15c9f18f3d9dbf8df8187157f0fee5f004979f056033c34f54ff3572a8c592cef6bb2e74b7cfd19a9525b81932cc63e57906941e3ed876c71e1922e700a306a6612946c72d1a961400896cc99e88d409926bc4b14f88b986799d84611fc368068fcf96fa4822116bf3fcafc8024382ba6c4f3f23671fa4854cb24c5c6b0beeaca3592306104b8f33ea60b0c24d681b2cacd0cb40e75ce2c8a3d27e81ae79dfa7ceeb0e018319a5e9ecc75b193e0d8b9f3ffc895650cf7f476bd0d1ca369569fd4e5a8ff5c034308de8489b0717518b53dfe91083ddb1fc90c99c5ca9f39db0e09d8f785d790a99e7d712314bed60e8ce7a2a6a6472741b61b2383f7abee214eb0be6656e75e6053355791a7410cdf9b4a39de2c5e54a7a6e4d2baa740f0144d4e4b184e1b31237ecaf819d2a33e79fe5f4c804a2037f51345e733c27bdd768540bf2a75df52c0569c2adee029c370acbb98594b5b064cd06e550a5bef6409603ad272c7abd29bb7463b86fe76becfe05ea39a66db18be14b91fdffdd0a70a52ab09b15e3e3116b22f9329ef38c085e0a2fbdb8b3dd183bc78cb1c74e293350c1944373ae1492ba1ce378b581cb330c9aa458801cf551373d5ef9c76d7312b8e71e18bdc188fb3ae91743dab2241e5b00986bea03adaff001303a529550ee18ba72db63c9038c2db5fe01c09e76d5d4ad6567629af3782d2e0cec6632c6446877f80ca1345c3c28a949f54d52263451f36082506482c160c9dad92227509ec984490f3225f7993ac0af08c480b8197788e0a16c6db2f817e8044b62ba1c3a63beb1fa2f8e3379acbc5c9760582664b9dc6e849872f2f53076f461e8188071612c6ecc3078d382ef52ca2017b1efc6b00361b12ea9345449c7c4e857e7e30223d0833dcd75d4a5d02311cb12bc62b7bafb1963b0cfd2b5ad40f3250ae0ab435b008a6f1681cf89dbb2b4a333b57cc9a6c73cf42c847272218340e996aab089252c14b1745a49f3bd12b2008b5ac22bfe6a88803981658395e0f3e3c3b3b5ed2ac132d97f2cc0faedcab670d339f2683c46d8580d8d6248d11eeb61f63d0669b12b8e65e6b40f586a01c702df925e03247f31260a55c4b19c08ca181a259ac3679b1eafa44bccfc41504aec279617dd7bb478c6b1444cd7f2b2e902c557150b146c4811ccf6bbcbb18bfabd008df6b218c3aa123451a649d764e38cbb9eeec60972748652395a3d89bd9b3dbf77eeeae3cd3f2e750be0b6bf856c269c60b4462083d1a231c9f1e976a9db64a262974abcb04b0947ec4262017b008204288fff542c99f50717ae0d29607139ba6a96116bfc952671f4ccbb8cbb2a53659cabad65ec849f3da0f733a0402002c4bfd17db1e48f6bcbf5b86c28b43d57c5c216a106b5475878a17218c4a7e020600586350cc81b9c5d9ba315e1e06b10bc672b022e84144ba1ef8735b1edcfb77e828cac260864373502d949526cb710bc27e65d92a5a0d8bc61d52a45df50cacf7e2bd0affd6e11afdd28ad7229f14b39eb23246209c960b579840c9ebf9a6d1e0305c8356bda44c7b08b5e5690be98c05a02c40444f94b42b1a700009f7651bb8e009a7a01eca607fe81ae92f4b84fba8960fdf328f95b9d7101df1f8eda1b3d1dbc6486a0252a26de3c352d37309f3c9d495abf046998eda35522882d2937ea59f04d1b9339eefa00beb5c3d149fc945f73d18d3b72fa914bc9b7ac1401fd6195e67ef0707350dbf8a8e98678fe6bb4370c306cc1833db7f85c8a0845296d12e5abca7f98bc684f53551f65eb0fe3a825aefa142d01c66eff49dc43ea8dbd1971640bc71bcdcd00f03e2de7d9501337d88d0b0f67fd380e5b8a1d84824cc792cc946508babfaf1f9aebd22cd57a5fb7a56d7d10b45499a309515bf6f94e858dcf5a4e08c755a73f11247af666c1790cad53db202e5ea94a230b721dc4366c5ed7e5c4071e44a5908711b603c49d2d8a7150bf7b10a47dd921f5decae06970731936c1575798dd4b29d4f85e48e7ae0a6eef2b3ace5fc0de11832979511b8df77eb3fd883cb1ba85be8a286aaae054cb992719b3fcd4d54005b527c6fdd66309d5d7cead4ceba9a4a8f69ec6ba9a8de3ecd2ada19e5be8f952b23ecf94dc4373e7e79b9dbe2ee260ce8411c784bf67452da3528ba19a4eaa2e70214b19bbabb9e07957e398696a803988ce3fadc5021b5c94c9ebd0b8818841a90b4715729735a2384db4c0c4d1e9d386af5caf34908049dc106b4d7c299fe2d8b02ea10ef39c25e76aeeab575190d31646775630e66a5a2120309075a79536afc6528f129d5d9689f20a0874b5649f96bcb7e66a0c1c9e2db7aaa60a01ca17950790fc2329a95bd7cbcdd590a96184d6d90db5b8cdd55c54fa809307d92d5ab7359ffb401c9488179ad43b15743531b4a0a902d528f78d844af6d978925ac342b17799e68f0f8c288a37afa41edda1cf9429067f66382c4f79137de65a5c27edf1c637dcadce0bd222286eff2e67cec58b75772334a2ef99774537ea7551f9cb5cc852d3ffc49acae0320c7937b74adcba6986ee6ece571188312d75decd0e38690bf72f7f8eecc01638594e2eb57ffbe86c56a091529149ffc495f26e9c7ccdf80adcc2fe5fdd93bc1b6da950423ffbfdf86e664001711838bc54fe2d85bebd13a1c1b86420d4e8e7a76e03dcef3cc2e0a4049fecedb47d0a47177637c9a04c4a3389403af9e40af87e7d87dfd40def9997ace56f35979b4673168057ef1875cbb35f0ca4ea66372392d6a75c2800fd35a58ed7dfa568f8b5ffc31822f211aece049b011bdf6e2230c45238282a4c2a5bc400c3591b1779edb19d25cef553c74fd22f6f8b89529a890f2e64dafe326b375154f34051bed27087651153335aa6996a89b2fde30d17f3bc996e70fd24fdcb217b428e81a1e20d2a7759d01a94a22ba4d417dd3dcb24ece626f00935e84add505391606121a8b26b5a8754917c9822b346cc157d24e7177f67f8d1da162475b34e9f548bde50e9cbd1918fd00ea36454edf72f30f15a76e8d6dbaed3e1e800ef8b090b48a43d88c6c2f9ab69344730d74ec1c66342f6797075f1bf2b712486108b306c561fc4f05550ec3e9340881438554e61809e9bcf9338e6ac74138592415eec7793baee10553a68e457bce35ef2811a1624abed75d0c113b85037ae306fa2d4033b6f2d014478de91c12402384ceab8da3a631a4ad9006b5866171c68c7a4067c1858e6196102d5bf641855a3f45f91262c0574f020750715b6e15f31f223693a3757397aabc24b3a8accea14538a11a6a2f05fe6bb240bfb32a714448b9511cd5823cbeb44ebf2dbc0fcc313614b6fefdd421a8f1d39a623f8a27b040f987a6c47f96076c401988c6235eac50945a57ada9c620db19499bb4857746365c58f8331ad5f6d2e5d777e09a04b76c4358eb2d6fcde630f8f4a6b845b9fb03e32397f6280079e8e0c14689998be5de70abb91118a8df2f519670c3356c84d5a93b9da1c183dcec07db2a31dbf24a6d017479358e07c811f538de75616a3f4d58bd3696ae37f83d2e8c55157f33e6c456b5f903d9cf00f73ecfe54275a8c56500c360bb58a51fc17d1d77589b672a0a83001c7051f00cb68762a8107e0708671b2007e413e06b8ca75a82aa99f0e6ad1e99dd56008a26b2a799ba40fe3a85fdb2e58d1fd0b2dda2c83580447e2466fd02703d55cf68875ee16083d9e4d4485b735b29a870d49c56917a1cd6d45afe1b14268725a216bf3ad9128fc2c28951cfbe8dae128cb46ed424abdc63e593e91090602441d6d44e04edf8add207e63caf43a7a4cba6e54e4f6ca04467c9530ee5f9c29b6d4e8e58d96da12c61680585997e2d8eed83ab47f617f05efaa2ef650e9c6e87e3a8fdeb8a2b183e0ed3a1f5d205844e4a4dc4b124d04532546f3eb8f9579a412e95e02632af3c90a4e4e28721c849a6269a9a1f3a0073db399da4cc422d6a65f263e2bdd5946e3b4f49349ac45d87a8a78cf7dc740ac9c75c78b61c965c30a2bda91e73d9798b21b325df89acaf7e4500725277aefde4358829d4a82eb7b3f11df728a03cfbfb0b88c56c32dd1c2e4651903bbb3a47f0b4e10be031578de13d881b5d8811f98c0052a90400d64a022e6c00e3cf0811358600512488a6520811ee8c0061e8126eeec29626b426d69b43bc43efa3c6a2ad64dded18b62a8b02dc8de4dd46723a4e2266fcc92e12b688c4a1b05f89b3e2f96b642daab46a24df0fe89e0c86852c05f9b2bfa2636acdb2f5395642f61e9f3dab0c0c67142fdff2b4bed0bb40bf17767e9f3cebc8c715cc2b27dc00babe682b78579983e5b04bbc2dcdb74a29fe8fe69a0486b54c8f9b084bb076c587be08bd167a9979a57fcd1d3f4d99b221fc6e1b6a694c5ce35174e4ddbed02ebbdd71fa9c22f03f6c790df02352880dd2968526283fa28ba5b41929305ec4bca1046e1a480e96ade69c17404509c7f5785819e2c2f49045e8fdd1992999f5980796df8704412216c97285fa9e06668dbe7ed0091ee335a14948b7a5e396f16ab8ede34e05cf36c89167b80afc6acd02c2664b10a6fe49e25687748339c34b008cd3b3da5905087b8f153f08c071d829ea34e54f9929c1d4f0f7328fd36a3766fea63270f2758ae44ae7ca344e22f2fea3fcad6e9aedfc80e01f1f4daa05cef247717bfa6d6a48dc013019f4bac0dc06f082dc754a2112723eff81c2e9b0c023e4011b3d67794133fda76ecb7a522c23313af16e8301cf6ef92f6a27a9c283f5ae98524132c3f60435de5634cbca69c956ea33da46852e0108a7d41ca144cd4e0841144efcd93cf6da341bf50f32ff5af1e693f6bad6230d6c12f4560e0ac63d9bcd7b779a442860c3a518d1a40f1332690f34220bc308f337c2e08a4331e818809890dd9e0a781cadade7cb9cbdfcd97ecdf4cf8ec49ad7f49f2017237509b4cf06e044336c7746406432af9d5a15127f20c0bad0e587cf60aabf71230531fd5954dd36b2560e3169a001f0142bd78f4c2c48e6ceab1851822dc4a9e9cac84df1ec3e057e20971e70b8bf4a2d73e8c87730034d1feeb45d6f8d635ed9480e9d769b392addcbb8bfd7212adb196aff5c213d2771ec1fd46f0c15f6430e37651dfbc754ea7d5e66a3096eee202f1d94e2f4d5759c79553ced9d8c9878b30a1dd0feee0fe2c0846de1512a94d1caf97103c8f0d8d515f37f15d486040a3b95d2949296f38ebf8ba27a53eea7ff0ade981cd6e5d1c1605a236b3163d8d473eda968cc6994a08f8d979dd6d3dabd24191b43c8409d2528fa2a30d8fc00decd65ffe9e35a880163a8a5db846756f56fd87636b12a9ce2c015d563c7ab6dd315c84253c287f48dc5b621a0627c904fac5d5e159985ec966f247108eb49725c37a1b6e11bfd10203de7beaf6868e5f31d081681b2a031bd5522015bbb480db17331ecc663991b85d4055687f412e8312293666c27d5462a1bd2ecce1b66e75c23d64fa42db58d0c6393db855a338d7f3d69523917c1063388170f7e0556cc7020e4a4b16b33619d7768f7d4de913d92f0988cc6e21b62f87b3adee92de736fa46c62fba5c246d27e41bee33aaec4db322eac1ed632c527b0571228929d8507bbbed63c024c380c0b109c51f3edca62f22d02fae1eec054d8ea02ae0d96e0d9b557113870247a651ffafb270322d52ab8246aef6c332f353dca3ac513bd4f0a2c725d15ec1d1273a907db645c68bd2d3ac54fb8574f58a88b0a352745296ad7f74e82843a8d5a1125ff34ed0f3431b897802a6a7f610e4a39f099cf5564a8f1aaf3d0aa299bf07d3fb9f058e524f575f4949cf80998adc7edbdb6180e3f896384b2e61b0edf881ac4d8871371b8face84f4d496e03cf0d80182a19e7ad24393d1dbbc14f758525c6df2a4940e33fa759be4c593f69c537feaccbc91bd90917921d910af0e09840f2402640cd1796ab6150cd9ac2061152b02c40349c0b9e45f12f4d005b94feaee80c5623d1616123836eff6c0dc4f0a88b17bf09149f20e2e42bc55846af837003db608da415523245b5aa4a0501f941d56471a7d7e8fe3e0abe264e87b18bfe49f64056d7de1bc37cd287889207107dcb54a81802d8a42c88437b81e20cdf6b56ab9c90fb272b04a84b30d5703c64401324cc19a184577f4377c4ac1f81144ebd285165ec621d19e805f5a33aabca220645f9e9b7b9825d343f9d2fb9db37d9c815f118aea6d8d3048bbde73ceadce552994073ca30c1effec1c8212231310faa7faa2d274c709c54dbbc53eeef6248a5863d23747b4d9b2da291943838a8ec7de2d5e21a56297b9302d56762d2a2873a49a8b22ad3742831bd2a90bc4c8d52a4634275003692de7ce04f5cfdd0d1e7b3a57a15837e5b842ab55bc3cabd0b26f7da0f790a231bde6e68c3d788c4e14873b4b8bc910a3c5b262bd0bcae2a96cece0c49cc1661d9321a9b5b232380309801a50db60e1ec1c637cb9a5a5d2a30f8e87e1ca7fd0cc128a9b2b8ed68bd435ac013cd11c315963ca92985cf384b18130eac6cbcb274c8285487455cf99c929d5e7cf129201f44d04da9bd3b65720dcd5a803d2e58089d1a5e1e268c0a1e00b970f0602c680c084af7be5cc68b818bea29325461881c6370a72451e0b327be5e7681dead969b879d68c71006b1878422d42a9043f9e6f646b96ec267b37d97bef2d939429b50bad0b110b935237a2088ee328a51f781f6534f061ada38c114568e0882d4240c2c0877352eaee45be721ce7ee55aca30c06b8518688213050e43b2c32a0450b880fe7a4d47d94b940101cc799388eab15880b04018415ef09f1df283369ae3055600a29a4a800153ff83085141698a9a2c4715cd78d3215a0e2bd51e687f7c61d13fb508129a4b0c04c153b3c4184c80e505080872788f4d0812854baae23f2de28b30314ff8d3214f86fdc31310f3b3c41a487f78c321d788fcaa78c46294d4c0008c7719ef789042847294d4c0048ca7b469995f7e8f0e128e3c490177d0efa7dea8bb5c6d1377cc88b46855c1455ca264ce845a39485b8e81bfe212f42aed78409c5904c985013d88409e1782f1624180786fd4349264cc849cd8409c9944c98508ecd920913d2719204d76025d806eb2ca9787a611ba3a82a74436f68558807fd32614231ff024c98509326384c98108e3f02264cc8897f8e091392c91a30614239390e983021084c98b19d40113911e188706cce789580fd2f13b07bad6c1c13bb290bd84334d318d8df2446ab2a8ca2bc55d5058df237ad20e0f3d9741385681346c4aa348a7241ab2a151a75695fdcf0336ef8d00d55d51845790542a33cf464ba78a8365d3c0465ba78c8365d3cb4335d3c749b2e1e8a325d5cc4ea625455caca2474e8c98411d13ca94d18514bac41993022232114db8411b93cb69d09233ac2eddc268ce8f5a2fea12813468464ba44c1fe22d68411c1a60b155a05c241a3fcbdcbb21db3621ba7d8c623dbf806db3122db981669325dfc4d338ac241ab4c4e68947f935246cb24d04c185192d68411d5189949686a5a4a8c607f916b8a8e4cd16bc2886ea60b92099b36ae25476e5e4c906018f6efa255622d0ba623d8bfa4e35f7a425573049304ef5f8a4255b304ef6fa2a1aaf97a7f93ab719c9e039f4bb4524d89cf25db129f4b37ccc46713cbd412a36144494a4ec0fea524fe252554355def5f62e25f6ae25f724255d38bf75caa29d904f95cba11f2b914c31bf85cc229c992f85c9a61ff120b1a4654f3b9e402ec4f82e24fdaf12fd150d534f2fe2523543543f0fea5231af84cb2916e457c2eb18cf0cf2557e985c4e7120cfb93c668189192e9e2e1675216b03fc9060d23b2212da1aa89c5fb939850d52cf2fe24275435b3787f520e55cdd6fb9374a86a6af1fea328fe241a7fd211aa9a1e787f1212aa9a57bc3f2909554d9a173f93708081cfa41b526c88cf241c223e936419f84c22d130a906c467128bd40ae233c97581cfa497109f493052cd67920df61f91d130a22550a86ae6fd474fa8aa8af71fe9501515ef3f72425553bcffa8095549f1fea31f348cf73e2203f6d16d64b3c0e751ed87cf239a0f9f472359053e8f704437d3c57fa445c388988c96505507de7fa484aaa278ff5112aa82e2fd4747a8ea89f71f19a12a227f82cf2320e06982cf2310601fc546373d7c1ed950e0f3a88687cf23d8e8b5c3e7910bfb8ba0505513ef2fdaa1aa21ef2f8a42554ebcbf08090d238a4d17ff1b1a87e85da4834534209f45b5097c16d9b08b6e79c41ab59a4c987642ab1abba809f6ef254effe3863b43cc822849c725c1fea21a4f8d922b5282fd4536a20df6172d1997607fd18d888928364f704537d30457c40414c542373cf0de3f14f30f35f10fe17431ae89c749281373c619cbfb8774264cb70b8d0f9d88b2318765869d46488786cddf18d89fc5669005a0189e2eb00b218756843bc86117b21803ec1fe2e264c59a97159194c08a474860452323b061942336dcf1c2864f4460439d2e6c98e3b261132e6cc8640b1b2a09810d9318b1211210d8d0c8076c48a385f5ecb4ac074a16d6f3a488f5e460613d4e68ac87c915d6b3c403d6a3c40aeb41c2b29e2333d6538505a35061c11d8af29fc2825258b00316744251fe5158b00945f94361c1272c48c4824928cadf090b0eb1a0118af26fc2823414e59f623f9bfd6a36c0b03f132fecbf84bf12620bfba74416f6e7c00dfb2761c3fea81af6df000dfb0b9961ff2035c4b03f1237d89f061bec7f440df6370286fd8bb0fe00085dd85f033664617f1b37ec9f01226ad87f081af69f6186fd3120c3fe211cec7f63d85f881bec7f018f0df60fc25383fdad0786fd81f0bcb0bfc9e3c2fe204f0bfb5b8085fd7fb037ecef832d6bd8bf0234ec5f7a19f6ef810231eccfc30df6afb1430d76127c617f1d5cd87f02b6290a086bc5eefc9851cac49a28f6471bfd0425ad8f71582dc5140ca50ef63e8b702a45559a0964634538502873a5d16a13aaaa4f3ccbd5288ab37957acb5a88a62e75af56d201b07dd6037cd3ea29969e65e87c18f03b96eb6ba0be5171fe5020777185cdcd8803b0c2e8c6091105a84d338c0f72c6e2756176e63d8a4501303bb090998162945b26f060e4371ee943b400c5ed3ab6ff89b66d5c5a5fdc3f9ac08c756fe5079f92ae6fd4d0c787f53cd570d787fd3cd5732ef7f7af94ac7fb9f6e7cb5e3fd4f335f39e0fd4f375ff178ff9497af1ef0fe2937beeaf1fe29335f41e0fd536ebecae1fd67bc7c1581f79f71e32b1fef3f63e6ab1fef3fe3e62b09b08c37a36a7c7ef9cf38949f1bc77eeed9fddcb5193eb7cdc6e7be01e0f36cd1f079ba6af83c5fa8cfb326f579dad8f079dedcf079e2b47c9eb21b9fe72c009f67cde5f3b4bd7c9e37da1ac067ea22c067fa2ac0675a6380cfd446f599deac3e531c1c3e53d9013ed3198ecfb406f399da10f099de12f0d95bee5a80d7e0cf6e83b3697683a704acffb0eec3d208589a83a510b0b4879db407d8c9c34e98a7e63bc0eeb042786abe0e2bd300cb00fb796a7e8c759c43011601b61dc6e2c0c1ae700c600b3007e07ab12ed3766376830dd65328eb291a006063069ba72cc8b6a74aeba91a767eec0ff1e6efe411e18870ee874d26c02ec2e91b5c28f34703ffa3e15cdf2b3dcff33ccffb7e52af21873f5f7cfef3d4ac60ccfc901629e7f718a55833cd44382bb7960ffdba9507a3a9f99e0d9e9fbf1decfff97200b261f91ea769664d3393cea9753a627a62da31cd4eac93918f66823de6388efb195cab949527b126fbbeb23c9dbccf626d8296dc30a1aaaec66423c2c9094331ec6c6051549db5ceb0cb91f94a45094df92f9931a135a961577162c39e039a8174a2809f4db352a44566e0a0cc221cafce9c3af2f06a9d5e37bdd7c1a09c19080a0541c15e2f48465134c61f6473f2986634e5eff99a83d2f3dd7cd0b3ddac5e2a4ae7a56e5d7df032012d714255a0076463aac120284fb08374b083726a0c24a3aa89414eb0839a809850d5acb0538db15c58856da1ac0f7e16e13436cd7c65b269a1ec5ee484a2bc1cec8966221d116de6b6967d2aad3ea93578f2a9b54aab4fa6070739a026d8bfa505624251a0d80dc49aa7e25d1d147b624d844283fdc7d79884ae42e2ce0d76469ab135ba4624e20dfb7bb356588dc1a82a7fb4eae20e205cebfbca926bb58c6bb58c6be18085fa34afac5afed06187ece1870e3dc379453822277436ef27d2c1fe4346031ddc61d0c0092600ee3068f0c2205aad730ce5473355286516e198eacf7c4351fef5826c280ab46466d2111d61f64a84d32222b4276b1c1e5c4549c0fe2209c35ccb57624dacf9caa423d6c49a1fb211088d51624351ad9a85328bb5ef2bcbd3e91f857a79e15a3860816be99835908d0c68c29eb436e7cc09896ca3ef89a886fd7b02a58e219ba9ea8765f53f5f953f415f7f445735f6116ba5cc63a5cc57261d9a721314ec9f4b1aaeb5b2544219fa9a5386f50a22af866716cd30946a85b2be13baea188f86a708c757209bcbc1446faa61f9211fa6e16f4a726a1cd3f3296f6241c378de69a238fa4ed5ff6a95e62bb775aa569aed66b94e6b94d75a00f573cc629dd637ea9fba6f789c80ab8b81ebc42cf68bcfd3f85ca759161bfeb41d3e855f7f7c1a96c887c30f678415023338bcb3be5167ad429962b33b0167114e0dc4c47483fd2bf8d59bde6c31827305bdfae0acb785356fa5a8ae53e18c70b0efeb93327b4ff07c8f8b950ae5f79f07d9709f45389f6d9fcf89d37ade136faa8c50074fd17b6eae2decf9708e3233ea14cacf7f9f454aa8ca94c45443551ee945382e9251557d277de65a35ec7f7e26a67a3a7cffb95380e1fd149fd7a1c67fffdd29beaf716762eacde0735f69e5ad5228bb0a06349f9f54ac9136f064a4460d1afb77652f1560e840be7d2a3e57c5fff3e5974f2f15e455f1ab2281f23fcf03bdf9e3c1dab737c5935203153aa1284e36431ccf5f7441136c7187e10218d601acb3798a4bf180dfced5b8f9f33c7af3e3eef04fac1656f9a3c885bec18d469f43d2763ad1fca9e54e7f0805c19b8780787cfae308be5310bc2b3477a54551dc0a8bd55da1cc24174634a31655a9f837ce33231655f5adf194d6185fac4172a171f4ad5028c1cf1e7df1479b2b4e196d0b8d27a54619e2f88ac6b7d3685f7d5e953572d752f263afcfecf734ac6763a2e29067f3c908e67edaef4bf639b1d2c85365e6dd3c9bb7f3b576bed6db1145cdd4ed438e1fd27f04535152b75419930a25f99fcfa71a7f625195ff0c13159f46d286a0bbf81e2b8e4fed388ae328de518ba258239a57d542391ad18c5e2e2594ddd79c920b55e31c7bd4cfe11d2fad1cdda98fb6854551748a23088a20288e9e07c5d1333e0d69cc13abc68735c21a618db0c6e7c7a1e7a37efe288a7b9b67f08f589e8daafc47d3b365cfc199b4f9c4a2317e3eb142908ee253f1a9e7474be9e8e2f81ea7e3f8e2ad308ae2fee97f7d5114f7a3ad4828ea9ffbba85924342553654d52f6acb158ae2be76a1cc27ec6df314d72316fdd0e62bcf16da6ca10d73a0f7c438cdc3af61f30caef17394a9a12201fbe4fb60c9eb437b0a14dd669f552950fae183352ce9434b6de3d2ce18cf56c3dcdf546c372c8a2a3a14a542a328eeb959df001d0aa5533a6b7c8fd4adf8a39dc1b486f8393cb4a21755682adcabe85015131f5e79ee55668d83c69f5e458c86a1f1dec8447e68acccf06c9c67ab3885c6ca0c1596cfe743ca426365060d4abe0af929e487c5a63cb51d5e4979fa335e25e5c3d02833e30ea04c999142bb14fafdc96615276456a5a8d293e168cc674f145569651e9d5854756251159d22f879f233495a958f0a0d73ef2c8ae2beb39599b4b130f7a48daa3ccf3db943de9ee4c6f1562994e3e7112bfb6cd207c3ef71871882cefdec1bf4b3a7a728eec471dc8aabacc267c01ac5091e8669d3d45665f50dbfd94051147def8c406b30fd1518a6bf32f3557d95bf5dd77d2b2fbad219a1ccdf0b16fee8f31d7eb1588daf4ee2778aad08e1e8cacba472aaf1152dc5530da6a7d82886eb4e34a71645951d19e5f7271a3aee381919d15014c5e2cf710787c5b123a32c31e8434fc71d158b2390ee14e8bb53a1f771876371dcd18d027d372af475dc41b138cafca0c1028b538be529daed38b1aee8d637e8cf390299312b1ffa0c3b45fd950f0950aebcc0d0a1beca9d42e5ebafd82966fcca97af98e8765ab1eda994951f2bdfa304664cfd1cd474f3d5ca53b1fb3a4f47ea5e9ea2624c64f3557dfaa29baf549e9e6e2e3169ba4e9f2cddec35f1c53de9e6cf23be5e626ce57277fc149b4f2d4c3fe43490cd27d6c995dd76bfd1576a6c7416c3f4bf97afca17a6af622bcbd6eaf5ec375fd118fa3dae5055c959256a0b971f12a05c41425760c3fe5d90f1e7c78e4a3d5660f47b6ebc392587d273e3e9c79b4ddfdd95d773b7b682743f821ff218bf7b3afaf83c7755c8e71eecac0af9b9fbd0aa909d25df2b7de393fcc71ee28ffff97c37fae0ae4af83f5a95f04995f0eae89e7cf2bbff3cd97139fc10f9dce880893d2f5e21a00f3d6e7c80e73b4b7e8f1198d8d33d79bb3094dd83ef79f206f1fce70621fdf89de756d27bfe2329a5f4dd8f27d3f7dd57fa3ef2c70fb9b147067fcc000e9f1b73f01c32f8e48f971b73a098fb6ea682b474e4e13dc8f1c1f0e66eec56602b30ee2b6757602b2f2625f7796505c98fcf8f48fffc38faf060f1473bfaefeb46991189f4fc68c1f1bb5107f921387e9e9024c99b85783f8ea3fff018ddcfe770d2175acf01c4e28fecf83d8e20f8642786d2f3a1276d90b187f318fff3244992211547db7824f3e79b98c1e48be3f8a0ed96508e9f4950142df9e1371e795ef4a1ed51c713369cbdf75c21b5853f9f471feb2fb2b9891af63ee4fdca6b05097d2f9dc8fcc41ebb0fc307cb0f39eb192ff89c25491de37f7eb63017fe98673028fe98cb17a6df63975fbc413a1f65beef6c27f3dd1e13bbcb24c155bf0f233d19a17fe82e777577379dc9cc39298c524add9dbbdd6aed461997e99837ca90350ce5e3e0f48d7e2884dc16aa11bc5ae777dd247b728d638240a795b7e1a067e3544f9ea29eafac0d4af1ee653a0de90b9ed531393aad8874fe290cdd72b862c761edb8ef3e048d32ddc44e7698f6f7e96e7e556861d1ca289515a5b2be2e0f01db5b582d45ba96d6c7bac20cad0c3def71de79baae03bbd0d3751df87d077e1d48eb0a66778d3ec9f9814cd614e52a342494140965778f324b843db095010fa93f311d7b9ce88794523c6372d5dd41b0fba07c4f444ee4c4285dc59d8f669a7d34118ef82117be58ebf875941945ae082d62abdcd7ff5aaca34cdd2973d5c1f2e0871c128af2bc2337283fcf05c1a762cdbb5f2827f72c3687cf09a92d2cbe694615f075d7343f2ffc289f1bbdfa39ee3a65e0a4ba64c0a414c96a9c8d0cac80b3c8f661cda00b9c4551c0593f9a6946fb6854d579df07065317ad42dd20c4c8111c1081114f2bd54ab6d22df5e2473c20441327353644505183050ae050f4407381fc340cd1840e009820c061baf8cc0f5c5c11c4936e62249c19ad8acfa41a02dc07272610050fcf6a616088059263ba7812403c211bcd76a8d9906880164e0a994a3f72fd08b632b2b9f93c8ad1388920305dfc3da107765c1547163094a30e8ab9568da238282a3c90fffd77a950a94ffef7e4774cb53e46391a116b229428d84716f69146140376110cd8451b767107bb6c86703f795b6663c240a06d4c2f4c5d34ea88ce939d521423acc9d537fc8318f1368ce067165e08f9b9859123c4704212254c9a3811e251ae9f5a04792244f05464f13564e02db0050b5c006587c6c891d6059e060f14f14d84e075d082082ac6c8c212264e72747e781b43fc2c02c56ba0d5c3574163031c8ca2d01c41926402d38a209af82157e8303322634486264e749e4089620a1f3a5005059c30722489922593c80e4f0ce161f4032d80000251941d1c271425eb1b9e68860a90ff58ce763948480207725c677392c1565840c019256641059c0b80b358133b30c4450ba602cea5cecc869a00837080a4f404cf11dc1294e9c5cd259b909b4bb914651ab9d9944d3447dc6cca2623aed36729344c292b5101fb772e29c1d3757329979604b9b9743345704b4d6616b7e4240337977229676e71736966c4cda518344c08496906d8bf3369074f0fdc4cba61274529e2e6126b86e0968c4c2d6e2ee5d211226e2ebdb097905071730926c42575a1614230d217b07f6712130bdc4ccaa42643dc4cc281e26652ce6c5d924e0f97f464d2dc0bdc4cb2617fd20e1a269464ba380fac689850cd15d8bf3389665a7133c9481037935c4d5c129279c52525d1e166520d769292999b49363fdc4cbac13e7232c5cd2319f6518e0f378f661db8a32755dc11140adc3cb2611fed3871f3e836819b49426898909251170d13b2191161e44514378f704677c484871bc5e7d19221178acf23254fdc3caad9e18e9010b9443e8f8e607f91180d1392f9ea8617e12cc249b959a4b372b38806e4aadc263e8b7666dc2cba0df95c009c4538a29b472c273e8f68bc9b47ad79f3c885a226c02624426ce94909ca11b6c4016ba23105a9e199c51626234c2f5c9202154a4a4a42d852939293521136252d8828e1607f2a4aa519ad1483d20ca0b0a41e2c294ae902b674c49690dc4a2cec3f44132517f6d7a1344150aa2175e10b3396f483259172483a4158d293188924c3feb3086986fd354022d5b07f15d646da010f48344e58929109581212120f96d422b9b0fffc00e985fd31408261ff212492cd0dc90ad215b19193510e1076f4640465b4435123d96886fd276b44c3fe3b8c6ad85f8ad1e846c48e8e8c908c94d8d1123b624251a3d7685483fd574636d83f65348ae18c84d02efea32edac59f08232f46345644c38a764439322f5846ae71c4c2fea2e886fdabc826aa617fae03672231dac5454e70c281111c39c201122ca1c4088e30f12a41129f5d5c7091bb1012c4c5c506bc1001122e2eb8c85d0809925d5c6cc00b1120a1810f67ddddddddddddddddddddddddddddddddddddddddddddddddfd7d20e8f17842310c4531013608dbc64e39719e6977f7180ead66bbb15a2e5a637313c391cd6c3756cbf5a2b0971a8af6b3930c67ced80deb6b95aed3eb61a89a971bcaf6b513ad9ce1f0827af76fc678ab5b36a3d56caed70b06aba9b1b1b99975db58edeaee8e691c7c45fb68adbc793138e080030e3828e1ab9acfa6bc39d92e46095fd96e94d5f21a6ed6d4d4d4d4d4f8cd172b714eb2ef268dbe7c3569b4499b34d6d72ae78bbe5e99be64beb2bdd450b49f9d3e2a6bf9eae50585fa3f9dca92cacaef54fe09f52f287fee7e51afc7260e3961db58957ea69ec27c95c3cf20fef3d5e8e7e7124f2456def37d172a69bc4a8a893483adc172430d002040035e0031ef7203e600dfbe7ac0afbe7de580370003f00212f0edab1f9ec7b7af2af03b64be7db5c303f9f61506fec747e0db57403c04be7d6581f7a1071ebe7d45c4ebf0edab215e889f3be58ba941d4b80a3f7f90ef0f83d8cc55a733c68bf97c956a01748ad2cf264c3f041bfc7c513f880571b65f18f18f7ac101899b8f30c27e9ed240068818c20a712f60db53415c202ce0c3adc0a5c0dde1667ac313c8fd717dd8f654042e042e8fb963cadc06d8f614036e8c6d4fe19b696b013753177dc1dc595b5dd52dc0cd3326809b27ce94ddb837dc3c61a959c305c0cdf366869b27cbdeb7d3e52996a97267d8932ddd40b2f15a149edfcd2f38e019533bf6f9a43f8c5e6829922a6376b7f7f7e8c3bb1bf064b8bb4182389de9e6dc226c1bee343afef059fdbe9e312da781ef19dd4685d7e7c32ad2cf771d37ca749f595b96eb4ed5977bad05e03fda274e6b94e3ea2fde6e5477dfe01cb4fd85e7f78bef7ac889a3ad1fda0e835d18caeab14b54c1c2f5c350ac9c57f73ba73f0a01fd14f51d535f54c51de145bf7b9f5c9d5e9d3315c5fdf1cacacc867b06cec719e40f856a09a30651563386be2000f7a9002d53f4ef45ccd9c0fade3dafebca78e19c9211860428bfbe4998dc788d2b498283a793260eabcdd9c273d21d3ce7113c678dde541cee8632594275f09cd4e6e62cce455994264a123c67f79c945277afb5c66ae59ae0e87433cf6b32a1e03939239d91241eec88913995e0d9c2b37b4e4aa9bbd75abb2ec7cbf96a60ceec9e9352eaeeb556cf5b1965e68373dad831714c669263a51fdc2f36f5e9dc87de99001d846d238b688d6b1340ffbeeffb6c14d501283d1c7c5f91d45775813507251315675c391989e3837206c7aaf000bf53f23318b4dfe7d928aa7e2e8aaa9fd716764b71ad60286ddf5796a7d33f0af5f2e2361287744255df4da2b6489983efa30c48bfa04fe90c0eddaaf0f0f7debbd9dd6d14555d14555f64e3293094d9ab929a04d78a04d79d6a04d74a43a3e0fa6eabb5abdf775de6819e67f31539f3929c7d2d5c3f5287aa9aace1fa9f58ca3c551f7c2594600b2b4a94cf6b618d350a652667df27361543dbe743db27b4e5289f7b7908e8f9cfba7fdef71ecfdd7bb7dff779ceb785d25ffcc670e694f343b79ff7d9d4cd3fcf73cfbd0f3defc1ef3ccf3feffb402a94a10dd71975a7ac367246ce3239a336b481e579f781a3587150924fe68cd42169b5a5d532eeb7dea09c0fbedbeffbeedd7eef59f0f3ce1ffc3ea73b74d531e48cd4b1248da2ea572d94ee0aa05fc959a597f442e933116da5060128615fcf9622e473a38f1077640972a112ec3e5dd8759fb0fbb8f243e58365e339ca900d7e2ef8a1af7bb27c92f4bec4654b911616f92d4548b2bac85b8fd4d715caea1f7263e0f96317f07cf1c359b1470a787e38c618ad1283ba6d4e5cab358e4ef41daf950f02bd93ef1f7e481059426006939f197ec2e7843d9e9b5d0c9c4b4c5b8a746d61b5d01469695da16c69c1421878ae0581baf153419f4f98be675ad0cb5419a2f8e5180afd0702813e047d17ba79625088413dee008126c8bacd7728cafd6685b2fa93f663eb13caf1f389a2706ca041e1d8c04a95315dba5baa0c1b58a95baa8c4fb4426903abb242ef7410d20f4916ebe6c66b6a6c369fce798dc1512ccb8fc78296564b913a85d29fbec784aafaabb70457ef06576f7a57acefb9d96960fb8abef75e0dc3f7783eb4550aa5e7f39c1ff7a0c7f58c794d18fac4b0fb1353ad1e08fef7e1e8c37b0ebc4328aef50ea1f8f36ea6b8f415ac5fb220c7954acf3df8a5cf41c71a7e2aca84f13ee45032dc71dfe7bd67dce1792fd57d2a8a0dac0a7ef79ef53c67c1272bb68106e7541913467c8f96483e463753cc7d36b0b0572a5daef4b9f43d9a3e072d79e28b37cca6db837bcea6ca982ede55111ffc8e246bad9f8a3261b8f76eb68165030b77eff1984a13d78e24b9074d5d773a716f02fff3b837bde7b161f23fb62bc8bd09741b1c7296c3a2f87d5fc562e9b3a928d3c57bcf83b67e7e64c71759f1bdf2a7e5c4fa9ec779e2f59c8e957bd2cafc3ff49fafe8876ec5e4e721b5bb333a3194427c86c9db7d57bbfbdc8b1e1b0c7bf7dc0fa9f87bf26f17865288109f850f12c99b5138f5837c57ac32cfc8d5eec5300c9f1b65428ff510b4b3c3a09dd8ab5c579fe33a87eebfebd92c84ebb84bfbc4aaa033a387a610aaf0f09fd55f341aada13573ce09e4a3d128a59402f1dcdd1d4867abb502e1388e0352bb0e88378e0784764c2881cc18cef37dc1ddcf53f3fd7ef5fd298f7afd9601f7b8e34312f69c30b7a9dd5d83f2e449ed5683f2844669adbfdeba9f7bd2ddee4a646cba9f8bf577fd5d77f7dfa2ececdc6e51766cb5f6735dbfd7efed74b72dd684099358ce4c166bc284f644e786e39874314fd6fd1f93eebea9b5eb5adff7ea07fbc1eeee9e94bad7ea79b26e998ca7bbbbfb44a97baddfd78d3ac984dddd08a8a161fa61c8f33ceebf6fa1f95a8c78461ff5a73f4769feaaf538cff3ae87600e5dd79e6fa16969dda837bf3beef8fc375b582d455a5a54e5fde77dacaf6b61b5d04c98aee5bdcf415b8a4c98fa3404f9286fa62d2dec2055f9e1ed7e76efffdebd2af5b9ff7accc1fb79330fefa7f7f37bff169aeb39686e69e10f1c77847ede205fe8f3bce7a1efbeefe3429cdfe05a6778e777b6850664c72fadf8a4adfff9b4b0c8f08629fdf97def7d3fb91ede735785cef73c04f4781fa44eefbf9eefdefcd0e3f9962213a6b1a7c39e372787bd9f2d4526ccb3bcf73cf0fbbcf99e07cfbb03dacab2eee9c8d0af42a1fc9e35dfbb3904c4dccde1610b8baa8ab4b430ad8a39e339a80a21fd9052b29bcedb747e772a12f0be7b201d43838577bb8b05e7a9193cc71d93be97b57e0ee8db9151569c5d0c176307a9c283be7b5df7d941afcfaecffa467f7f0eea2f8871ef2f588dcd4d0ca7e59ac16a2dd70b5663f382fa53f97da7f24fa87f41e1d0f216adc6865372b68be1626c3506a78cc129399c922bb917adc676335938e587cb22aefea982678349e7fc15ac600546bcbaab20ca576f5584c241019f4842f03eb8c350010f3e1177182aa801e8c11d860a5ee0093d1e10c9b461a8a0083e91ba3086a2f0919125498691828a49b8c348410cca1109480c230521c0a7695340239a818511480c524aac74aa318d28388948bc4811e10e03090b9f1a9cf111c7b042c330a4392845d1399150247e83e9bbdbd4ea4930fdea48382698fa8b46a9d76a1467dd6a4e83290dd377772532b40917eb6ca8122f07d3f79c604a6b6c75e766e4bbd62dca0e7d5124b65813264c62393359ac0913da139d1b8e8b7939b219a3ff31a1b4eb683c9ad6f7bd666bd2783c3309a693d53d27a5d4dd6bad3219279f1319f804a4c93c4ec2ee3929a5ee5e6bfd3e907a50989e64c61d1307194cc130fcff1dffe1531b3e1d75844eaa3ca12a4e4547854655eee44f2c5f59f264ed89e5294eac5183734a92fe537c9ed4c1926f6fc7d09bc7174110fc7c2a51379e14f153b75419356ce36e94116bd41f01abee543e91517aa7fa6586923dce897bc1fef279d7b8ae6147f9eac506c7d9a028cf7a40103cc2fb107c8f5dc2f33cef2e01de5cbbafa38fefabf75fc7bd0d8ae2ba23a32471bdfd83284b708f3c483c5d4cc2b651863297d84b7f0a8421014aaf370441320c5b9cfdf9397ffc6fb193193f74b1ea701cd6faf5dd0699eff3aaf478fafe65e4e014dc3f98d9e0d07dfcd8aee3e76355788cf9f3e3cfe0f063f38ec64ad0f74f823e6d4fc7c4e3eb98e3d531f1e77347dc8956c671776719306773155680d3e6991eb30c98ebc4d07e9ed73d787bba7cdeede952ce8cb3f341d87d48eea8efbdf793fb9e651865be6eb6fb274f7c1dfcbe2a442aee5f82c47ddff333d807e5be2f91893b4f5f951e354877874cccdd1ac467c0494b10d6f0343414f9626a7cdbc8600d35ec8c0929c9e6ffa1b1309ca5cff3467f49a4eebd27ae230f920d92455154f72512a9c4228ac052c771f9be534afa928d8f5883ed981ab66368b01d43fafc82bb27bdf75d131ba4f4349ee5fdbb1f348e15ae867e9df1b57e57bfab1d8d6721b17c37e36bfd41921cdc48c0fd83241ee0c492e57e857b1a9f83b2882b760912db2f59168e23558ee3dec6a5aed107fdfae18d1a345c5c5092d87b961a33c6c71d15352305754ba4008835589a1943c32df231347c0d5be41443c305a37e6843a4b092c23e257dc3bf7de520507f1dc8c2fe2c9f3b508b568905d2802dd2d863ac79e2d17f3b2aefffdd6c54451a7bf48c1c667c7d128fee6be9bbfe649e5094f9aa63be43f1ff45b237dbc0ddbb0bcafadeadbf0489eba7a47cb5a44b5d97c8c4dcb78c3a0230030bcb8a7d50d9750e5fb1d45b50e62e86bb265415fb41e3c8f4ed07a197c6e7ae8b81687ca5f1245b9fc536a6f1214a64b14fb2a51cead3f8ff94a72faae26ebecf8d2c57a5c70c7ffffe0c3f471db5e6da5861795b02c08fa30f1acf72894cbc7273fd7f318703c0c655e9717f869fe1de20ff4326a6f13968a52a7b33a92aa12a1a370809fc461ea41a160c1da0fffba52752496f5f8548c54b4c1b8df78c3ee8932e91894b171c7db07cdf5c7fe573b8b5d445517f557a8082acfc9089591e7483703f64be88356cc754aa72fc958c324655346eee5779961ba43b1caa5ab94f515d8f193cfa9e28aafb7abb0f5dc43beee07ec8c4f455ec0c5b52548ae94fb78e3c4c5f5fa42ad3155d700500ae2ca42e368e3aed82126365dd51766217f3d5b47de9e613e9e6b27cf07378632e6441367f60ccf74f56defc91275c759460e75ee6ab0f8c4ef907e1d4834f86fdcbc17c82c1aeea74318a1a42e95ffd3fcf1f664255dfd79befc67c08c0fd75a57f8404e038ae56b0ab62ceac703744a141abc31d060d587896180c1b184fc0c8c11977186014019fc0889960091df5b9d73175d4eb65a9a356991d7447f783068b7e2c66df18712b2b366c9c4e75dce112e8beaf2cebb883ca646fecc828e953aa83eaa02139b137eaf840efc4ee6ecfb747ab615a5bb5956beb73792c8da945ca6cc3e5b7b65aefd1bc5afd72ace7c3aeebba9b6738ee3f9b5132ec75dca92c5d98ba2b07a55f5ae7d5ae725eed3a6e7ea247bb3084fe6d23936878ee94d97b956ee8e2628b101801c107b4686551040b9a2b3c60056ba60a2aa690a20351dcbc26bc219e131e11ef098f892594e040121b10122423718411384af93373d17087c185007087e1aa01fe88d19f59e3287dc845ab455a11b2c8b875c13606ae49410788b9f8fc6df1b90cc1e79311107c46e1f981cf2f78865a7cfe5a9fcb2c3e9f8a7c7e2c68c42b3e7f3897d873c29ec71e14f6bc604fcc53f4a928a5785c51507c7ec14f7c7ec1443ea3b0e78437c46bc263c2bb2df1f953e273c981cfa7243eff063ea3847c7ec141320a89cf9f4f461451fbc0fe2b1b012e0f7ef8122717afb9c56b86e0358dbcc49f20b819353f30b5b8a16cb66e289b59dc50368bdc5036b19834e4bce28aade9812bb6a615576c4dd6155b33555071c5d814578c4971c55807ae188be28a31289eb8f985c8cd28276efe21379f9ab8b96462893bda2871471b0edcd126893bda6ce08e36423eb0f183dcfc72330a899bff889b4f46dc5c16317e60e307367e60e338ceb14787f30c2ee2c397af423098eb05e3e205dbe2050bc10b66e4050381cc57a1ef03377f65793afda38a84323cb1085bb1ef2bcbd3e97fb2c4d68cd8c225153797a7296e3ebd14373f0a15c5cd2fe28dfe68e3abd1cdcb0bea899b514fe4e63f3971f3a91c7273d98478fb98b8f92b97b8b93c2971f3e93970f3a392b819b5819b5f701e6d30fdb1467a1172f30b2ac8cda8cf37ff09899b4fe5113797468cb5af3cfd07161313827d3eb00fec03fbc03eb0cfe717fa5e4c68f67d65793afd8fde452e9274912ed245ba4817f95584f37d65598a70ca2f9f1bb1e8835820168805628158a0cf2fdde886f4a4273de949ef8d6cf44935bef2bcbca050ffa753597afe72797a77c19954d371d58bb85f70fffacc3e345fb93cfd4fcd572f4fff73f355059e3ef9f2950f4f9fbc2167e4cd57403cfdf255de94b3f2067af96a88a70fbaf115114f1f34f355069e3ee8e62b0d3c3da170689c96f50cd536500d794e1aca09803c657346dac8d4455f0ff84c6b32cd9fd90c54f6b999da807ca6372b7e669fdd26fb8d06ac67c03a11960e6129062c15c2d20bd8590bc24e20ecacf154bf05ec6c79aaff077b84a7fa7db00ef0547f052cca53fd3d58c7f1543f0578681a407ed8f6940f1b81fe1c7a8547efb0ed291d2f63db5375468e05d8f6949700db9e3ac1d8f6140e7b805e5995017a00b65f6c7bcac572d643137d006efe6edc5c8abee5e693e86ff0d06cb81925fad4cd2e387b68289bc918492b5925aca48160a01888166261fa352c0dcb6257ac8a9d6153ecc99a6cc992ec674661a2cfac6f387f66d306e7cf2c86e97f6ca633d0d5389dcda0c9b2654a03bdd76786a3c2a30c78debcc42c0376fa144fbff3279eb73fecfee88c329f9dcf8d7e6814f5c475288a92ac5186a4a128fa8942516e5dc635d7d5ae733a3bcfe733eb1bf49bc878454a1e9485737d951edecf9f3708763bbfff28aaddaaf4b841bc39e79c73ceee7ec1d90fb7af42b35968460bcd6aa1992d34bb85661e2b34f35aae0ee6ea6a5c9d8debc61573e1b86a9fade46e27d6b730ed5c229ceec5e26c5837ac180b872563cd58b49bdb0dc7bae15a379ceb867bdd70b09b1a9ba7621f4e293bcd9e86aae151b561ee3373358efa2f37289b7fbd3e33d4cba34e5f7e66deabb6bc182e3413b946acd1cdc8e6bd3eb34abaa18ad54caa8a39e35c114c4079aa3eca5178deea2a7e758481020ed76f5982ebf79001ba2ad1ea1780aa3a8c254870fd5a5f6aebe01ae3b4a4aa5c4f2f85155c6de05abd8bf95f111fd4b9cf41fd43ef3329f3ccb0db915094085697886ea80d07931125712414e5600c014a514c46549950948b48197652e699d9ca0fcd57e4cb53fedf5796a7d33f0af5a17d688dc3c320265f950b4eca7cc5bd77cc6765b3fc617a979865f84a97358ea63028f34824f3ce08b4bb69777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777707a916a8442c17564d102a44230000000001e315002030180c078462a1300e0359b21d14000f76a24a724ea10c8431a694318a18220220000000000000081200eaa783925cc8b116f54a700b934c688af5a58bc9c0854604435c07f68e83e428c0c16090d859095a1b4aa5eda5f0d935ce861c41baabe47d5d9aefc6d139f4020b82b710044fdc28e99c361fde3ad45d154e19ee463940a847658eedd754064271d47fbde75857528fd37d04ca6e6c81658a1f8a36d6e8574954e3ebe759ab4765fa5efa21ed6732cc5c614788e9c70578851d4ff61174cdb2817e3cc9c5fd484395403d8d45cfc4d5ad32df846a2ba10b936909915dd34a519647f7f75f29504114c3e2c90c63034e3eac9ef59e2174936d0f2dc650f71715cef910082803aa56fb1f6a976674b381f39604dff6788b8b2a56460c31fdcc6339baf7b5b8f642a96ebcc1430736bd56eb320468d18086f390d0bfd0f5708661b0223c9ef45af9eb137d38518bb0b9c1fcbac76b1845738327196ed2b917258b36dd570fe30cd007e22904a3b765923bc2b4219bfaa4dbc02aa930baf0b6134c682850026f31307b04d549dc4e1fa467710d73fc5bbe0294deb7cbaa13cb348d6d262ff165c5570f374407130b58c65698fb192fc56f9b59e0a0a6cd73284a2a397b5a8af913010d8f107598cee9ccdff03560b73578b02a44720f626599ca248840e69c6820f88d8ca0b3f3e8a53a3d3d86adc12d790f29ce0e2a453168920fee556ae45fa912415f3affd85641be258c7ec14751c023505acc994b1ab88d6208710c4bb732ef0b1f8f8ade30cf9ba9c42fa0983886637c93338d0373a5a5311570e55d2deb4df4701c92d6df732ebb06b848d09fcebdaa89d9477fd1ae5745b95ddb50707e8374d3168765d5644ad39ea26300b91a3d3d1681320df03c65980e2a415a49b35bc1e484eacc8c2f9085fc522c09c79754cecdac5e8d1889fc58f4ba5d14e568cfc6b5a2ae1875fd0da966d4c3f2a5e2aef8404b378abe8927a56db9c2daac7b9f477b433767e975d248393fc9ba7fa4c5fb9cac968a3b1bde4da134eb29beeb2a947a9e92270904ac66671977ada18708e064433c44458cabde84c2449c2f72614b362f1955481006671213e7745690782dea77844608ee0b223c956c4eeee0d57d04956679895da6748e20815cf10319ca38e1998fa4749f4ec6486f1b18ab95b0a1cc217e6223c50842c8fce95b006edb84cb4a801055357613edaa642ed14be4ccfdb7d6098b6a94c99eaf003e13a5186ddab8c387bdd28b1d4c7cfc1bab430383be007a64a1bf08abcdb73874dcfe7c435964a8c3c468187167868365d50a2f03dfefc5511b6fb093573b77cf87bbbd9cfd847312dde97cb1e5492fed7b60a52d44889c8af0408301c3a2dab28011a65c2e87b2217996a4e160d622553df19129c7c279b7a6a2c990c3d8f3b3a635b95c74588b7b3ea11820dc12c593e2019e0bdab5a6484c26938567727c2f1fe0843ae0423595e9b697df10a6ce46ca0cbdc05f86c28246e61999f7cd41cf8a218a0c75b060a711d7dfc247baef8802ba1cf9fae4c225493abc9892a3dca33243029f254ea05506ca068917397acbeefffd2bfa4f87032cee319613d0be3470aa183431509a1ad004ee78d223c80b4441dbfe3e05fe68a6820aebe3805118e269e6c71da25896f9c2778b642a570a765b005ae3709d52cfd5a7bb140a2ecb15a381a8143c45b443cc355d3f022935f984ce452cb0bc098744a91a47f62747cdf88c9dd67521d50dc539ab04457dca0d7dea6750e1077270b51137d37fe50c5e687179fc86c138ccd49bf90583f7a6598869534a49bd1856782d7d93dd6713f2f3e9f240644db4c76e684b34859d7b1fa418235c4e2d3fa068de93d6b5401fd84e1bef6e271a3a719973eaaf8cd91bddf109256b308fc015319c581d874f35ab47c3c44dcf04f849746545b968583aa4526eb233f2266ba29d075775fd2084151f79fc91b9657c17839c784384e9013fe3afd384bd098e364fa75c5c43d4e7eda6f8fd425eed8e2762ea5624383817d5972996cbea05bf7cc00fbf219eebde7e9c89d5f3836d0d28d33e1b6b4a0f8867cbef1a21cef483d3272fc08125408fc173c86a5e3179b57b56c918bcf8443aecd345bdae0a2c4b1d6ab24de388ca1e314a8fb6f876771dcfaa98544710641e817483638c77e2ca34587441ccfe064461d6481b8036dcff5eed8829229114d329d8f40b50bd03b26e4da738f7eb2afce72b00007cb0297917c509e945db4c52451e38878579b69a1ad0187ef76aacc8c548ead1212c7098046198fb6961592755ca4faa018dd3a1a2c1704d2e6aaafde000f45cc9c5413907e4bd29ed778484cece3d41b8ed845d341f24e6939f41acf48cb6f36bab296262e5dc298cc03214446f53366a80d8a5e0969a05da876e2041a70274082e894fdd09039c90ea6311ed135d399336a04948261402421b30df2721096864830d52986d5b9e2183b8267b840d60e5a30ae0b5400431966009083810cf0d5763005a95ad80325bbb5ea34e567154def40d1956590767ef41b1beb0d9a894dd23e278e70debe7a8a02baebab91a2890e12349d8c35795343cc57de41ef31079a4cc94c0e845c160cf3d016f748a03ed204413d6074bd4018297d51ad56d7a061e462de21ed884d8ef492d64ee3fdfa6733581876a077118c560de57dd0dfb105e92f4c12abe8addf45bee96ee8baf2428bd78832d608f3f2838390c0849569f6b74ee96e40d2452edd4c423e23f961ba6e9a29c98c257a2f0e1ee588b077b47510aa1a362d1a14bd4142c04887032c12a08859a15ffaa6cee5dd35d9a3325d00a1b25b0a2d180c3ffc89a0b286a5556efcff643344be66fb4d3a9b240f67940ea5b522b7c1370c15fd195ca2df85a61831211808f0b7025689458753583956273f4f3fd8c28f60068ee1ab81c0003877b4ec977feb44bfc5f7c451dfb060f1ffab34ef70fda776aa74f06acd45bf9b9bb276635ead6f25f92e1f79aba445ff75e41cc8cba003b8077f64905aa1561d7428fdf03c1a1ee0a62561da016061a8787d5d653e7b01cf04a1fd1fb549c3c84d84d4ff8a715618e200b28c13f727f73edea6dbab461061cb3001a56128797c620a71b4c36b90bb5e8d2bb181bdd13afdf1ca5e66f87d817008e98107c57ee587e84c359f7abb171636076b8c25631c8d907fa6d25a192a85c10825fadcf36f05bea5dd9c4d0cf2439f0a426528117a24ab57007301f4e49281f101bf97cc3349c3968edcbaa01f7c96c5be052b9f48ff59f7f68516b981cb135e29b52ca803eb16f6e30b4e7feba9e4ce8c0d4b19586a8b81ffdbaaf8f175f31a5a2dfeb53030dfb70cc479da02ca634e35330066911374c7427b02c9799de12dae203d61a4a20fae26efb69f577c66a7423e1a0f13c9bdcb4c7633b302d20eceedcbae1b0522b3edb7ac0617c2a13a37cdaa9eac446cd1a3712caa7239544f1eee9d23cf42996027322035970ec22b32821575117c2e8449030090ab1aa61a954c0b42cbe500b1816b4246e20a32205afbd40b8cdecd10de1606012438be4fe2f6d2545932466b2cb8b93fb406c5144584224604dc0a4f9dab9257985bc8b9f25ad1eacfd737e3b604f379528de2a7c7e7c3ffd48cef6b78fdcd1eee62379b32406220896d46044b6821d1f0b434a3af31f669fa32efd614ee8984872dc6a058cc3a53195613847a04cbefe899d6540b116a8cbe5979e82e509d6a9db56a09b2aa60f4d330e676365dab51cbc1e82e04f50105cbc627f60e5fdee81a897fc0e5cbe420e54b11f2fbc42c31f169b125c56ccf59cbe2efd8323586a8fea4bd93cf3daa45c6a3d24545fc4f1bd64ff3cee92f1913897a48ce3b7a46b206a49dda1ce92e8bdb4fa1243404b53899f9df77ca80c162bac62788415c0504871eb029b1d642dffa4f892b9be4eb061642a832dab10a672adae7c24952985c5daed43ad397742d82bc6b13871f1a8da35e358c7d8a1b071c8cf30708712f3e2e7adba40acdfd09f30959b78bc1ca737b9066ddd9888126ffe0304925a805c9a7ce04b703397c237b6355c0047cb4552dc888fe0e31bd57dacaf8f21b2443e85799fea4045d809dc921805ae3ed04a6f5663a7a86d6ecdc6507eb01707b6d3f6ab61c1638a9db5568521adaa73d67735878cfcbe2c9ca3d140f1ad81dc4a913b37f82a93e361ac5afa96542c3e88337fd7cf49a5ea1acb7d4d8babfef792cb880afd3aa4477eeb1a2bd6ab5341b4a6ce598f7026658c00a8efe9dc4e8275e9ea784698210ef173893e5d5c6f8fea7931b4e8584b9ef41575458067076120dcaf636d15c648b21a604e66f4c67ee022fc69c0c82c3527500c47793856d7703474df967076f8ed24ba9154d45dfd414f1752fd400b4478106d04e75cb468bee32a2ac9ed1b408c2cdec5487cef4b7ac814c13e1985e5a44194114dad2fb003b9e6c8da39f5186f2d730d4157fa1f92d41785f226a23441ae43b5a3833269b6e33255981c45ccedd3af73c4ffa87e50903827da4f7d8967eafd789bb82be1efdf13c3be78ff75121cc1cab68ef712f91ebed8dcc58406ba4cdf88a74b6137194ce9391194715e5050669aa6c68c58d152fbb911e897c18b423da60ee8dc40e9c4676cb4a0d687dc5b4621f98714e320df5572a94869e2f188854a931969ac34d3946ac4a2a71a6108285563439504ab6ac4aa63d528c36bd578b898935523cd1c920259d3ab710660c9007dcd1a4b0bec19ceb935463d264a396567d7b8deaff1e08ffe89991c85fdf4bcf76f4a710dcad9c75d88cdcbad87534228f6a1d3dce3948e452c0cbb89ed9e620e1a4197b1fcc7291be9724ac5c13fb647f8c6cc9abd7ac4979408b26c659e77af53be723a4634544f699898874b6720a12fb06e93de58c270255612a3d3a871c396918ef1321175442cd0e44017e555b09c1a4bc86fd1ec629e0e13ee9cbd601db149c61801344d55ac5bc9156524a0258c22c854c4a1b2aab84245cd2de9a54a84a1fa992b124538dc0ae15d44dcadcb18d37146bcb8613e31db9a0848d24c5d1d8c00c7713ccbb876124d1deaaac51d859cad98ee96710a72ad04a01777b47eab8b11016aaf4cbd38682e1ece984d2d060071bcf53cef31a5b28a2c2638ab223053744eaefca4c895e1499380791ebb7bd154c4b9d464513004ae338154fde448b67c0755cb67ae7d1eeacf8228db452f5582eefe0aba6aa1384c4e7f650999c8a2eb622f27e3e14f7c66cbf1118d6e8b8e8f9df82374c8c75ab13d53137a8f4c02b5e46a18d2af6c822b39b3ed0e388d9b010709d25b55e130552149d2013b2334af614a947e45990ac417584283e0e20c10d1b27c3f13df47e4461ea1a71fd45875d6a9131821355d3279c498321fbe3b8fdbd5dae6511ec7aaa37224bddfcb913aa8361f984a0920bcc6675c6a608e0dbfd656192b4ec150baf301ebce1872e050c4e597d61647fff8d66a8b0f908786e37bf4cdf716d6db718592df2fd80d42a9e28b6df0443c42227aa6c4f1853d128ee863feddec4992c1650cdeebd02683382f8d678a13beb5ec48427c23ecfe8a4d341a12559d6d181b86fd28fe6b674aee5bc1a13c132f652df1d3c9f4426f64fef970c5934ce5b0f68a0be9a110f52639463e823679905a749d71e62efce31cc386559120f226cfe62a4099eab7cb1bfad13a4ade2134537736f8034c0a0e20360a693630375815fe24425af1cac7bf4708825456e784cd3a1e5522ecf25a9639d304b11b44bb61b4fcda6148d24e9ace44720ab482ad90160764f959d9c6238a332c21d8c197e9a0a1ef183260badb4c7fe86768c6466a325aa14734b51af0df8419e35b55826d40741c44c55d5582d80b9ab61611569540bcdd8e837dbaaa746274f3b8a7feaab2166751038759558e648064ae934e2f569606e4fb87130dbe19ff71232010263a2792aa5407277da883d3e1cd1a3da1288f0bb77bbeb27aa18396730b567ec8e133836192b5b80a57c327370c7c9e1f1c03e9a91ae13e2bde7ab9462f15f00eb2d61c877b0f9e7ec108eaccb786cbd6979e089427f2561d976337ba4f4ad5868bcb95f000c0919664e8f50aed6fb5752f465a76e1ccb2068efb2a127c7c1c1c9acac109edce24fdc427ec0db328787bae14622e2611e76387d693370409525e7dce42d4f610b209258600b3ae3ebc9d5c358bac8d98605934a5600532e833ea5c5360a0817b537724d8bee104c606c31b6d2a012b99702f7852c5d010e01d3040dca86daa03336f7dd48461cd63686acd438535ba3d3c52dd481d9e35ba73074a73f7f97ac327d9936205abd9b2a915de79d1f1310ba565bbb23503d4e14903d10fddeb74ff05db00b0a789355d5b425e099bc07bccb9f3267ca3e33446947bde0a52c3222143761b169d507ad97117438a697e7b7b8a4b9c4293552fa2dfc73d0351777b71c1f4cb116b56d3a1a92ee27b6afdf83cc132ce1721006c2dd58c1997f139b82aa9fa002b2cdea7b47046620c3ebe2aa91ac80ad677fa633dcba274d2e7d0812b7e80d59e765ccbbe2a4fb45c14f00a1f78bdd71ce9b2d68a733d970254d107aceff4c77a9645e9a4cfa10357fc00ab3dedb8967d559e68b928e0153eb8fecf01999dac3fec74d7ca260e4d44bc2e9f0c2e090c6de614f0b15a2b20da4bb563c6454c0eae4aaa3ec00aaff79a235dd65a71aee752802afa80f59dfe58cfb2289df43974e08a1f60b5a71dd7b2afca132d1705bcc2075eef3547baacb5e25ccfa50055f481fa5f3ed87c62f964d1bbd437733811627a3972507968b8315181c6d55861f13ea585331263f0f15549d54056b0bed31feb5916a5933e870e5cf103acf6b4e35af65579a2e5a28057f8c0ebbde64897b5569cebb914a08a3e50ffcb079b4f2c9f2c7a97fa660e27424c2f470e2a0f0d37262ad0b81a2b2cdea7b47046620c3ebe2aa91ac80ad677fa633dcba274d2e7d0812b7e80d59e765ccbbe2a4fb45c14f00a1f5cffe780cc4ed61f76ba6b65138726225e974f0697048636730af858ad1510eda5da31e32226075725551f6085d77bcd912e6bad38d7732940157da0fe970f369f583e59f42ef5cd1c4e84985e8e1c541e1a6e4c54a071355658bc4f69e18cc4187c7c5552359015ea7ff960f389e59345ef52dfcce14488e9e5c841e5a1e1c644051a5763e53f7f4605967a86b8db7f2d54ae1aca3a13848cc9ff5e26fc5653bcb0e836471934246725aec2c9d9f723ff5250c1d86de758eb959792f53213676e93440ef915cfcbb2f88d8beed4678cc661939b4232f4d774d503ad4fe1e7a79aecd6746791102751c283ee864739d7c689b526cfb892ab55b05ca8fabbc9c30e36138ae7a2a08911a3d3e008b212ef203850ec0ca84f121a358be45560a90870ced6a7b329b8d5f3130f306db5d7f4b45c27f694a48b05ebf41062e80264ec463b441a9d623f872f4048374583cebcdbbe8000b28a4e688bc3816eec3e593db64dbf0782f692b078738c355f5b70778f71ba5d7d0aa5944309fd0254d32faba07d1ac581166c46dda2a180ea39aeac5e34aa729dec4805ce3063d926d5607bdcdbfe7a51bb8f1f6997ebcaf8811240b194b887dbb8070d1770301ae921876a93cfce4e36cbc10f2cc74342fa18077cb6d4efc3c06689752a25aa23630722c1d141fb800a9f0af7d393a12149e730ebcae9f5fd5aaf22b22709a7a8adfd6da6a8b8b8b30dec8bdf7d1ddbabdff7341fba89e2655de630975225780f38405e2dd92983b01e962a255e7c710159ed6cccd4c054b11a410f7cdfb09e5f3e5d76ac85db5a97531f558aec9e2811cf1db85bbf4779e8bb8c16c47b29df7c84522f24d2bd27732b11f46bd91006bc7e95778dd1dcaf2faf3169fc75820893d15f9f63300bf737aaaed1c95f7e2d362e4c2582a70d453fa2ca6ea323cacc60dd80875f36e623e0702bea35250afbacd3da95ce47f59437b9ddb1c0b04824dde93996c6b96c21966523a465ef67b90f5e3f40be8d62a75e7891c438009e9bc302bfe023638824eb81293b09a6742107383653d947bd848dce29fe9aaa51c19923207c205b92c1a15709e5e31cfc400208f048a94c295c29f9bd033b68e653bbcf6edbd2ae956c1f4a701fcadd2769a6d00e52a89e5491c229a0f2013850b66b04865f7555458145bcfad4542451930b76908f5ec81e3a7ab9b8cfbb6f811bb0a5a0c325aa8c6ff431d8e0991c433e0fbd4093588b32bce42339bc4cbd847829206a2a6a2edb478c1dd8cfe20b697d93992c6860aa199dcbb93599888c5bd7c9c30cc51319a1090d684307a18d0df7289b6fd667653a720460b81f48e2aa663d074210555e8da05f112f8df61af7f19aad42eb8d417cb685656b53e1d3519107defcaa4a6a24a1577e2437bfad92cebe1bec3a16182029c402899a0ffa8a084454c79001cd6ced891844100bd174aed2297a1150b51e43d927fe6d64626017288f7783e545a88062534af4591385acd8a69b48ff0651f1e57f7467045a696130b8ccf60018281f351a7326442de4b72251439750d301006285b2a477344325b6b81f6fc0a9d47b031f50d2e096af0055464d6061aefe61272e8b14c60fc8b6210e04581f44073ffd30501988eeb76b1c93bf2a5a18fa6c0f8fe2c7e169848fde7d6493d2e2d1495bde93673f740f4418f5ae332778312000dfe9916fa9ee13f5d3937b9727f3ce6006559f05678f5cf4ec94e7b96ae659a3f2f854f564c1f4ac177a1e359136a183a8cd3ca92ee598500cef80cdce8229e06ca1c989dbc2197fcef170fe4014984fd54ced2b673342ee170c376ad37a1983554f10ef3c8973e8e54b0d9faa891f4b3de4fec02f3e79c5c3c2370d8d240cdaa0918eec0d8cfc70c3211ac131aae2b018a12aba716a93dda791dfe016445ec0a0d23c384ffed6a58bc5408c3ee2de7278031dae6ec1d2d982a207a4fcc9f36e19777e105b8acdf6fa0a975f53a41277e23fb7a3c7d67192aa01bdb037c5eaed2049b633e7b4f347a8852665a6d7e2fdc98abcad01f05094ea9fea0fb8d442d9bb1e8236b5b00b7bd2281a6debcc80cb6b5a826640e5b4afc10ca83a5f3c3b530be7f9c543d2a98585f36267137b6271d3843a011a75f42c91a73d4b9d05e5c7c62d96f51a556797b0f39f5740d36bd5483f010d35acf3cbac13ff41211ad53abbdc5be7f8739ded4b0e9ae3072e0d8cc76d08dd20b093700b3b736e40e5de46dd59840d195e260fb5ba6672a3903fdb571599cca9d788871873a9ab3c85f8d28c8c78a93675ffbfbff312ebfc19519e7959e7079d45ec32baf1c14c24e64a7b19a3b49a8cfde6aa21c75c136719837c1f2a7b6188785ec8b506ca1d49dffae9e68637a3e7bf2bae36da2c57d143aa6c365fe2dbed4f458f256a106921099c898963eff3b8470ce65f2b3d300e77fa6e4a5439449e0e68b8a1ddad5608b434a387cc340539614077810572b7e5ddae6c903888fb27c790de26f13ef440afe61a66cf6aff59443825510db93ec21cc20e8b8a321c4557f6cbb0fda207a3f047a42f77983537f5745e15c1e89dcfac80da89acbf14c4fd1ddfa0747893108cae8eed6af22fb3032ed860c3e5e383a7d2b490fc7ba89e245d3d2d88834bed679c20b58779b0fd0cf02b286886f4e04ff895b37adc0db049c7f16fa16f8ac8fb7f8c8db8bca582adb3aff1e4e6d741e5121c2e337199043492e3e6b4c2a8a1bedac120a3f64e636b09a74645ddcf1834dc4d7db71c00b5ca509816c2fa2caa1166ad252daf6912101dc2365614b1612bb98f4d0ab48d06b77b0b5d082ca5e3f1c508e78d003bc370d821652df4eda49505fef8a662d7870eda1a04f3674345a521b0a2d1483f533275973d2a454f0c392ceac28e31f635f717d3ecb31db734da55f59f9e4202a1da31720edfcbb2e416a15b8b307e3f5b3381a48a11439966480ef01956d50e05bf485cabbae61aa80df0ff292b0f2e0484d1f4ce9a483acba580588b6a46716acfea886f79e4035dc7405aa5f82fa53c266f04d339f1625a8812c4c4124bf81ca2eae2d8ad89b0a3e307f8334e593f50c62089cc854ccb100f74a921899b91411140e3191033d3c9766766dbe7750cea74d3310c8d95ddfccabc02c7c5fff278f1c5e5c082e34aff787f22c850e320b2ed98598e69d11f856366e164be2f168d4121b2a8f607ccf7a479825c7134bf6a9546482c89e0c3cfc42021b973da107900304abf08006335de82bea2f618e8d832a85cfdd513e60da859416e158ef58a789030a3cbe40f97857c84577499c5682a185cf00de6a4ff8d4c60b930b765ce1f967c4fa3e337e540f4913033f2eabf0e1fe6ac88edd68ada5bac5932609d21ec04d2ce755f5f5c49568a334d5b32ebd0cd30a83c0569206d4741b794130fbc9f8a6bc00db7c80755138b433acf8a6c5f53f70195479c5531ab6df990ba65a587c9b86fd0700ea1d32064b2464407e18dd604a6e1419ce1aad74cf47afc9799c5a3401f97f16bb08a7fc00db7fa062d69eb1d329927966952b69073a443b8cadbe75460a8b2e1d68f2e6add4ce7bb0b237a68281fd1766646b13c44d88939093c74d48c624a86b4825d53b0eaa4501a40e6da837c5d012e5e1d38029d9583d6f382bb7713af87ad039c4e01626da84eceb635007cced026127586da1d00dc6ac5c732eab7fbec0e48d53e3d99417e8237a06f32dc44946181cd400e6f15e3c40a706d1f41861cfe16833479a8e63cf35fcec37f37d37cb92a0ad446cdc35bb54eaf9fd879f78abc01c4d2941621bc87372c146870a0efd32df604b5d5447512f123406085af571163208af18d6006c3b0f3a9c88c2144cd75dc9d649426dd20f3f9606d67e118ab6387c125ef8bde37df0d12484dd1409793ab428b1536c73167eb6ab45fdb6096a8731a69e53cd3a5a8072796ac59a438a5820c112370464edf98256a6cbbb0d2fd369be8e252b017e3719e57a7d4d04b6ad3a55d57fd652106449a60a03b34a2f21e1c9f89daad270f9a22e85f927f5a6e8beb65d452ee6a4974de927b6f7bf8d45b4a3d32e136e2592978ea0c3203fca58bdde3330584306fb0402c9aad3be9d68ec9f05acb9e6feb71fac984f73daa7c1ffe0c41257100d77e10510883d8724db57a29d2606392a332cf8895b43ef540d5f19e0c288109e1e377bf561dd67f2e0474a4bbf42c024001c76db8f1b7e153b20eedc67f0e3986503f37fe0c5195e7e1445bac60a7e31ce62187675677d33e3eb1b6a4a216d8c75921ad58c15237e54ba522670cef8ae2f490afbcf204a2634a843e6ad43c3accfcdcdea683427000c2f02ee2e71d42a3298dab2357aa1697b0f222872fdc61499e611702180a0e6f5bda8c3ada403a69c8e3fc8f70fc1a313f5a01f8d35ee89b21ea7f7a4844e414d2d2f9b3dd84d1450c0dec45ecd16a788e9d2a8d0e7b0774fb18d2b30b3aa70e14103705b89e20c812a09a770afcc76922952ccf6ac14826d06fc32fb2258a616aaab895885a9a587ef1d71d22c37ae257377cabd77f5f5db095d1a006a96e5030757d8ba51612bf077aa1c127be0222d0492e9eac9d54202c974ad2ed4da5557a7888bed54aa4a60abfa21b3575fbc5898dd79ad8cf6ebc808777e251e01a4979cc13883ca0c50658bd9d9428e2958eafe5bc8c54e7bac5eb4847ccb84ea2f11aee30a8da0663edfc8892b3ab528a529d92a4402eac340d7d9d057bd34c1fa16f54e0d38f94c8d625c96305d89d5e423de05e78fc4ef11875dbed05ae8cf20dac68210c343c69710781d2fb33bf67228e5e26202f83b07a9a6bde1c122084844a08df22efb6e083b1090e1c01355d6c8521dbb0e0fe603825f7f621c17ed2f560937aef022224ee6228a4947d981f49e13060b04ad163c6831724174a68e57c0ed744b26b4ec7e67b8c58d7e80130b1f083a90e8bfa00d75cc09b3c1424273b2fa59d9f05cce062a87452780115611681d01845aa6898bc41adbe11c7d157631e37d9ae16e3adf20339c79c7528f28b22318dcfc0b8d18197637daf0855410cc037b4c1002519eaa8e8155f5c0aaab387a7346a76e0dde92cc052a8cab8042d3768db45afac78697e958fe1583f182a309408e98736d8c03416992623014715962891755f31b35a387cc40c175a1160eec6c340e410fd9435ed9e84a28758203ccb0060a9472358e8b53144d38d773fbf55b4c2aa9b45bdd7512d7de9f9e0fc98dbd35562518b850bbd0bb4219bff832056ad0f90a3b9fc2c7b093c4d3becef0f4264a540a371554cea7f790a3b28bbdb6302a177b8c2181e09c5a842c3bd504e7eaf3f08f41722cc947de28ade01608625d2ff1080ac2e115e200b159bb7b2c80dd037d5ae2c37e4188843703cf38da5c28bd2439e81d10f94c81344b86854a74c908c769cb53ae28bf23ff0184214450d6bad4718ce37257440b172f0133e4a2db3629f7ccde186195186f32ea47e19c75db9a6d1b99c5dd467ae4ed3474106c29c00d48f3da62e46a06508b10fc479b442077adf68e33597b3b2baef3e00da08a03b9f3def11dfc02c070c18f0d61804da56cefe6e394e409163edf73907fdda1c21ff9c7e5cfb6ec07644b0d71d04633b112c975d1f42b3fcedf9ed453a75acbdf9a828db57fd284c2640eeb976ccb12cc3028bd8f3ab25751a3dbaba2f9fb26405977ae30d2f7e5c3bbba26de88c28dff31657b9ecff047a7036687ea04efab82de6c10999ad65030f7568c63d511700805a8ceb5441ce94c92183ec14e4226b0c34acd7dcbcac7070f9ca2ee5e4018423f41ddbba1d7046674fec79cc94d470f459c35d77609622130e6c6f101274244409b211fc6cac2bb0778440c6998b13736a21d1f0f905d82e6b6e036ef9fe742e8053fc2f15b6620e7ea8a6dabc9e340ee3e9dd88fc4381ad854758abdd480c58866fdd88758c2b698daf5111ef67cc59ea6816034257ecf81d2009248e0d81eb34c3ccf6ca40ec89d7bde6123f7f9b83e832a1e919a0cb0c523942ef9d096e16d7d9714e7f08dead8e5853e631124c023a5e99da36ace6de2901aa49b94cb5a01deceed19a6d6d76a4549b96bf1217227ee5063fd1748839f5e9e61036b916775da0617d4f762a000a1825ce2e938affcedfe9774001d0ff1b4e60e5b98d2073b37a38bbbf67617d0df21d1f17b1d63c730c07d5679c82677e76794e675fc674a7331add765874ea32474c1a16d1c09382bd848e93eab9eb5a01836721c82811a037f330e5cc11e838453d5a32a0831d17b8a94dde27210a025db458201ce24f832675b1fbf71bd84787f7c846e3f62212b04e5b3894a8c92f5dab241186f51e3b958b4f309421e35bc287e937a4b8a93d89db9673386069d6a23017661bb99987ddea1c6cc8eafb58177ab3dcd3902bcfeec81703c8af6b5042884ef0bcdd9183658dabf912d07421a6f200ac34c8cc16b539025addde5aa02e7bae349a79b01ddf69bc8ad528b3f953ac6de0808fe946100ec6b658f555765c4d3f0f36dc35f20123abc7ebf5b461180e30bd21c65f58c9378c1a3429f78ec1d54a356907aa6d61f7a0d2638200f4257ddb799c96cfed6913456e95201421dff067d2077dfdf4417beaef34ce6781073411bba1684f465d9ec43ecb69b2629cdf04442393f93e6b05d170399e63f34f3ffda703cd39302b563395ce40285b11ac7704ced03be053e44e808e9cdb07560e81a45d055a54c60a2953f237aa157b685e67936d7a44003b8d75eb178c2c3678d943c19e19009ea2e46d81745603d58758257c2b7c997ff9d82d9d9003ca274a45a2c4041198f7d22c6fee1878a2865e5e3751afc640e1da112bf284b59b3456a21d51c7c677ff43a6c5b428a4b546b4933886c4e8efc284af5e4a8eb7abc4dd22876940a49d94b5659e98ffc7a302fa0ab6d7fbae2ba1d589ba4da7bfb28e087afe06f4ca9cb18ee8f67becce9bfafae3325ffa99846e62c33638d34f18ad0f1d44fa4384655b859bc2ffa62390033dbe2301b025c187340fabba37a00dca5b7808f1b09f8eb99d6d536955efcac370f2b235078c8e78f6af7b2e92fe36b978223a5688c2f055cc9f6769a0e08ba895e4a9031890f31633d9e54b58b754d1f7627617f02d052a7e9749a9682ecb54da79268147d001fce4cadb76ae2e6160969840083daf30b1efa28bc9a40d8aef64bf23ba7dde063ff8aca1275310e735fbbde6a3a01c0a7273803fa5093c74772d117d75cb1c03dbb010e5939a2c945716fe455634bbcfb0bee6ed39ba01652b607eb936022452e209f3d0568bb22d12494cbbfc1b5cc4ca2b1a39162c608dca8532d0d4078771f5c1bd4aa1463bd46e56b3058acb13dec4e3be22a3226b64d770ade759c324fdfa4a1231fb5b7e232072573da28100667644dc39366f4ee995d7fa96c30c595a648bf2b0157dde760efe0fa01e7120422815249c36169ac6f8932629ccc343508cd26bfc31b4520f98998639133fcd4c3a4b747acdd92f90e0c8e0a052f6904b1d92f29163693032070e174e008855ffd16c5e6e9c1e6e72e33a24ddb608ab0d60d555a81e9f6019d099efed1a99fad9479d3b6de81d7fe0488e442e1bead09054505b9a114bcfdddc5b8f25ba11c8fa63754863c5d22cb7f7eac11dc17438151779b3385f2fe012eaaf403d497a1aaa83f4c65bfb7f3749b0e357b45c4b9e25de22ea6730b1d1b428c0fcb3adc63f6df19095ad270981c7b3cbfd5c7502fc05767e99fcaf0aaa9d90b262fd2028d95cf0008020c86bbde4aa900979f29d18514e5dac38197a46c469ce593b45397d40be60facb9d2a34897f4fbfe6c89d4294750c5fd6addf1a0ea20a77ec75713498d418c3675588900e454ae7865f79b1f1b3c791182ef84b3157611cbbff667162982c993cd5514e590d328713bb1d85ce960794064395ccc314ed5acf1facc3c69ad24a24afd3487e26b5a31144ca08382ba55e5ac9a15e5fd1af627116bdf3d60c8758b194d22e85b6cbc0daa3b1606a1236b1944bc348e892e79268ee3208a5781f60bd1268ada18583aca033ae87713f64d86437fbda16ac02edebba3b4b9b4ef32f8b6341e2d4f6d17d49dd24857a14bcfe1d85701e3138e86e71b1777d61a2d659f49f23f36356e839ddf1ccf86118a8c221298a408480caa521c635540259aef9050177b9033f0a9f30d20f0a34a260b4be45fea55f62fb8312e4f28b0a2fd7517f099caa33f52aadfb6fe291960af597b8b999a8e0e1168b7b12b57a477abd02b8b23bb762a6067b8a6cc57b6a4b0da3583569a0e28f45e17bc8997ba7dcd5335c7e4a739f4945ad094872a0ddc6b4265e21ec44f0949a12625f051f8044a8cd40972bb0a32cf1e420dc620d056530790195cade34d7b8a86f6e6982b2493018c5d1c213513e1a56ce1d4b1859779d0eeec03f9190661e0cb298133d623b796f17f47ec8d58cad2ce05ee7e17b676ff3666a760d1666481543479ae3a68258c130b75110392a0d43c27100f3b9a232416449d7a11be4316cfc52a636b88b05891e645b877aa9f653165537eb6619452e18d54b35309bd0b5c8ae155565e85261b6169386a3ddb934247fa647c48154f02358008903b64f04534912f6f950d763fb606cb1c50e40f5e8dd5885b94af898daa666378da148fa24d28a85e6a462ec92902f7a3ae13096e58d74a528d35ff5f4a9fba7c57fa7e3c0b4441d9d1e5f4b7fe4acb82220cde64d288a8a219bb847d15dc7d0df7c0e1d408d1a50e9b2a6469e5379ac5897ee98999d4c7ff2d98b60717bec349c5737b7e926beeb029bd597fb43ba959b6da5da3f9ebee30d873917d2576d4bc1a6fc3f92c4e2c275a272654b642b616a107d118d48af2c774f85e7fa42a0eefbf2c97b86b38b20795fe87511f16ecf98e697a2e48b405feacab52960f33854c5b34abcf4159f7a89ca35c98de9f92449fa6db94dd6237c3b011604b80a47fccc0cb4bb639f37c126be8ba281ed0c408367af805977fa0018a88d78826996d9b94e0db692ae4081e62f938d4237b5eb888c4f8bc2591593c864d3b31163416e3481faa6d2a300488b4f56df6979ba90f16b456ff2572f4235935ab4fa39ff2f5303afd49bc32789b4d1e5799c299d3d90b9ab40b1c38b3b9d4592a2860912c328c8e514ffc0e5698228ccd5983427d87e4519f7fcb27d64143f3877c3e24fbfc6acf0169a35b7bbe5cd192e2a91d68bbf27749157c7751369a9f3f8b1ffa2c37f3de52e45aef92ae2266540987700e3dc6a7dfcc8b2211b1c1a085b0cfbfedfe80e1caf4756419b982eee91af58dd5327bae7eb8fa690cde97b4f1c58e971b04ab9c885baf7212285a0b4aef200d9aac35d19d4c2a23105305d8aa9ac95ddf23e7ef20e9d86a1eac727292257db7752ba071a430ec77d0c3fccb03008f20a6b0cbd81f8ed8a703f0ee5c24ac4f6d2d5b4edf52b378b11cb30efd134e30c6575db02ddbaa762d546ddee956a9997ab9a744b3f94ff72a01177fbe3ede6db85c7070ce00c9e69d2f877670571090a5dee02f16d7ad0bcbaa60e875c2622036321c9a48f81e27cf7a3f61b5ad160126a26490d1d5feca1cb1ea915e19f824b45dcac3fdfb19e433aa2768550115eb3b3cc4643c295b7092e559abd50a2f717fb17e62da5551ebe760615edf430d6fb25139371da090f478bd600f4e32c7fe1d6302ab44ff2f31e4749aee41f7f6d87f5d6274be83fd319bc045bf38c349ced0db6ce66c6e8f2ba7a0e0bba78346f9208d6284c01ffdee4bd0ad9ac6f55063ad9064fb92e1b39c2479bf16d8d2e9d4edbd2f363c5142e40fcbbdff9dee57807059d355e60f63802727f0883ee09c433dc2bd3b1b27e3d12855963f6df7e7a1fc5cacb68cbcb9101989d7041bf138496bf86235c7b41bdb094d3f5e7fa0570a69d2c59b04f34c39e335b5f9c886b6117934c7beaa4f766f17db01cf00031213c0685e1c3aefee35424004a73250180ab5eed2893c9f8af800b710ca6e63775e03cf5e944eb2088e2d1545122e7fe7c3f6ffeaef039b3885a1e83fa1a8e0e5e27e835730f3bf2948c9518ba5df08432548c70fc9545369964c85ec84d9e061bb6e4d1d607d20d5dc0bcae2260ab9aa01c9f86e03e145912be8b2d8b18646dab1eed1a831276ae34ef317eaceb03cb7cf2c9c71ff341f8c0df5a20e0bf1cdce7f1f1139f7ead07a7b22abcc0951ec5ecfaa0f50995a90801e168071f8c219d5b8965f718ea5a7d71f2b83028ed446dc9bdf980fcf686a98a7da488f2cb635b0d89efe0f8f105d217bc72246822fba4b601315e2d2bab45de92f9ceb65201b1a69c5ab34088daa1e60364e55972f54e5daa7c006ddc732994202cf1a841ccaad27b7165d61062f26abaf2e3479eec7ee334a25c526a5946e7936eeba03f0c42692be04b29d9fc20df07ee775af981ea0b3739b9753add7e091801959e1200791ff82eed2e700d4f0151123448c5a71f04766ac431b55031725ce618269cd0a3ef83373f2d56c87e960ebd1e006191f8fbedf30430a26685663c766f9070c65f2d06f859751fb8396de5c47d1a58465eac2305dbe5d2a55424d530b7331d9e5960aca1cc5d3f8c03ad2e947e825ea9da3f937018a8587d667e00b5cd7c8a740618ff4f8e8c43584c111a986e1575d3858cd8b3090451f9fbf26069f10e1337a63d6b0102c03ad1da936c6e1b3621cba016a0cae63630117930a8349ba1ae1fb30ca610bcb959f60ef28f5f6e761a17b2fd0bc3d5d9a30d474f747e850fdf361ade5f74a6dae058007666585443eaf858c99d33d85488b53635506df929b40210679357967bfa39f3ac8594a5a77d561b2e0f347ffd8b7ea896913b7c1d5379d820f3fa3216683c611ffcadc001b9f5f7c161fad169d2c693970e559c87cd6e2b72c4aea58c03ca22b6c7b91d6b1a47654902adeabcd5cf6ac76b4c560c58d017f5d821b7abe21f78db8a705dd126e2e2e50f43be3cb4824284c13592c6b20d09064a28a132644732c0c37a59d6ca80f5e5668c2029e208fb043c81d4cf40b9297549f76f8730a37f24bf272ff0700a7e17d16ef2ae55983483cca59d66b0f255a1ed0ed4186acb21bf7041eb2db085561c42132801f093d705d4c4d2367f7286025761d2a304e499b703a7c599bd29bc2669d04cc2187e7c595037d015834cd41dacda32b55d8448b2c5979595f43930aab7200cae19f9d97cb5a89509866488da1f17b8d65b85699f943aa7f47660c946df04173367e12c5847f8cca58ba78427281fc2780a5e1fad2dc2bead183c834ce5f3cb9f40063d0cfae7727245646ee36eb347c77c9b7d65acfa9028d46e7790c4e0b565260d669d80f58a96ce0b77b22049e8ddfecb0fcd67ab3faf8aef979467e10904e706fa4ff3d6ce59415d15ea994a555fe44807f3f0b01f92c118348705da1f6daeef86c1bdf25d317d0f0a08fa5e217a9217a76080f1f8e9bf78d6aa64575c237baeea12c491bf9644ad833005a5727eccf57f419f609a93fffb99fe451fdc4d6a7cd81dfe468fd0678b06bcd4250aecdc92ee1762904522ce222ae850841f21b40bf5f0e14468466ba2783e1fc5b2c8fb548b23eeb31d2ad96b92f452bed4f818e8cb406eaecaa8c98c88d1bbc534e5f4b76dcd2352faf819f6f96df30140491a971de2a23467bb6fc3b77b590b2de2e468992c39fb5315548bd159c5d7310e9f49da122aaeeb2f7982755ec09b44b90ff4767a0c674455cddb467a8a898a3f460eb8baa826ba834004d0636105d2ae594435a2bb5084e061ae6ab5a397893b94ab0abccc3260d2d2e41cadff8c6743732c6b35e76ed67d54fbe37f256af1bd7b64e6d19d6df187c3b063839e4ae698d98d8ffba03477483461d287348656c2df11c93936aed88d819e0145291aae2df0e6f989ff2287742c0068817ad67d8e901f068931b3a052849b426aaf04653a548aadd81e2dede22afb3824500043680653a0651dcd9b812a2442e6a1fdfd000c70d5b84aa8fd66538709ae38f17026d6f41e31cb1423627a7a1e73f4f137dea6d813d72d40dcb7f47d2e5cc666f45a107e52c458ec308636689a397a873856664c0ddce8d207533c19b97f85b95d98e69258691a48b2a2ac8d37a02020b03863a80d365fb3faf59f5e8aee6bd733a1b5103cd55744c6f7627a1d74278ecbe05413cd47ad006f2842a9ba906e17af17b532d03726611b797006633132d1da86fe46091a8e2969301ec8de8d43e3f3337d2e9a65b812a8467d30a999a0945adeb35069b4f067a5b4f364e1f937b5d20bf4a49d91cd937e7b97e82b52acd0da959ba7a81a00ab520bdb9566a86cb0f5b9039589d9bd68cf44f4ccd8a2dd917ef76b530acfbc53586267c888ddbc6f0b6b1ef07387f0810afda43ba06b9ef4ded20643b9a242ee1426b7219a9983259315ca2c24dcf0e7c15a48c71cde13d0d4bb1380ca13074647d56b9e86af7dd2b8a6bb520108d3905814374e765c57ca3eac32bad383b5454106cbcef614b02c4ca4824a2d12b1c2c905760ed9b4d20120c472ae99e742eb9ec1ba4a8e8bea3653f784b9b39564158dfff163a6326de2b24ecc74cbf9b14841df10cde47815f8b3cc09f0bd23f238cfc1c205f5cf617608ba790f9b783cb0079c43b238e89e4598ffad3b64227f7404805edc9aada58bba2f641e60540e714063521fc7d78cc3dbef193db6c1017952db1e70116abc01641954fff0d697b8600a12b1571c9d8290d64754c648fe50e0be41a7bfc7a4f691a9c1ec55824ed610b6f3bce1c3827e20bef117c8edc0e3fa81a7674d22a3d9946d8fde412f8fa9476ea15afe70ed65ae0d3a7e18061f7ac1754178ca12cc6a8b8cde65c7791678a87ea80a635257c4fbf0ce2e5be48ffe43d827af2b184a734e3154d0cd91c32fa8547138b1a0b1f0a2b1144523c10e75a989f418742c86d8b7caeccbc02c94f411cfbd2e563e84caab71cb50570ed673bfc4ce4fbba72b492ba63bbc82c0fe8460ee24ab14379ae927437d3e5b410cb01dd1ed590bd836f8502dd48c990618274aa39586331cf1c457d7a00f0d59a0780b5a652628ec3f787110e603862ccc30d828750a1637c720c1404f24a44faeff7d079429bdf214c802f527f14ac0d36ebdf1bed1c9ae78b4aedbac82f73c4a10a530168b24670801bafe2cf770d78ac316d8a05c2f6c84a213376e3fd8a9efb1de313a8101910a4412e1e7576d630954928f1d4209854f40a8477d65bd4ac730291488acb127504b44fc4fbfc1a7654acefc6a4f2066e66cfd3b1684512a0dba98e8fc99d73c357e5bbf6863b3ac156807a9aff99b34463c392e282a01bcec42d0344c9b0551b8c1edb538b97e83d26001165da7d8d141e6d3494ff6d009d50725dd54133c6c25058a2b611d576692ee2b63c0771e9f0400c944d7459a061858a5ed477c59a1b12b8d4e6d2378c711c0ab6f538aaea99dfc682a849f27b553b5ca139547a359b9c17878056c1acb62e6d09a72a9c7e83c73ddac93f72d7718d83cd441dc43c92379fd8fec9f369db74d20d0c8c17831a0fdb4163e1ab237c0d1c2eb4c259ad24e8740c1870b5ac20d1df7342b104bb36e99184eff5c787348a704884a03d3b789114922a5eb15c13b042d194df13440aee0e5017c9ee8f7a33f05d41da6f81a2dc3fb9faabba0d13b30983b12be0b6a78b89fb2eb31cb6317e443829c16c1ba3c26d7936ec84de4878b9b0e8f27daf15037170e838c624e8a3f836f9e06b76c44b8151159c5d50dc06e323e741d0665b544ec1e763fe8c17866b5f89086415f760630c666340b8b1a92c41a813177f96fa602f0c540e667bd745c476018c4cf56daa9a360908816d8fa54b10416436c3ac5123ef6455ddd0da899427173e26d9dc5609ac944d1421384f568ad67be10ef6d07340fe644d00236c24c68a69b01263ef32e63aa3046c09fce533dde600c037eca4346aeee56065475660ac02c2ecf46518b3cbdf41b1ad27e27bb4129cb1cf5a052d3e61c7a7d668455f90d2a483cc95c644ea1f55d5fa75009da88275776a402fddd46eb3da3611e8cd0faa1d89d3d254d97e9485119ec603ad5539cbf0c817dde61e60d1aeedb4990a878e885b105c74d261b986b7c82377c26b2ed5b2207bc3876c431a742fb0a0c72c832af04644c53c6bdf2c90b04dc7ed58b22e79c6ebd25a5039905d5ca2fe4fcda193b2a93b48813e70c50b116fe6099d8a444e77371aa6309db97a2a2bb55fb050379d3d5289bc63fc020d2080fd8af56a36b057b8bb09a28e6b3cde1470df4f392cbdc8afe63fb2c948f80e3b7f7f435cf0f6596fc706dd89288ac714e0b7ef75eef9642f1ac96d4032aac6a9d6a3f9f0eac5bd220d37b0691fb3be586cfdc1020d762f47d9a718b291e0345353c93d4da9b51a822567ca88c3e33c0acde75d9b546cf4d67515eb4f2b0b1654f77ae96abeac24bff92cb9f6b6747f13623dbab70a9a659bbed322a39c9cdce93446f1ab49b7537bf23b5b5b5613e0bad31507f3b3168b442c607fb0dbe7cf5d3710be9bc6a12c054e4c49c01a3145a85fd7af4bfb6dc633b019abe881f2ab0411569363a68749b8e3acfba475b85f003b88c1cb5b6e044dd29dd034f15f75cfc8b04638e620bd66f72423700892040c656f2246185d4c5d04638d3b017309df39c670a47ca8941c8e3339f19cf43abe160bacbf8d173ec4e9554bc3ec145fa4b4871660a478c55e926c9096a993bb4a660c414a621b3d8565758e925d2d0ab574baedf7756f117bd6492089cd058601f9f2346769f1e123ec3880a9ed562d39cf36212ab53ddd478dd5e4be0aa7a4af6da9a1e90c9760f7976c2346e3569a1c0aa17711b66400b6a4208bad751693b87c3b7929ec0c058433f4b4a91780c7377239214f5a07cbb5642c1a792491780d97162af43d5927506771e6013680d8153fb4c93e7adad0fe3a79b807641e3694dd000e29078734ffe50a6bb06bff25cdeb64290c420b5b76a6ae72110a4caeabde753a2efc3ad32173c0bf60b84a935b5def787aed08d2f4ec75bcaec4b1025860d1c7367ee08271daf49764a62f12f6686eb01881b94e83a22f5826957f62582ed14e4d19c007cef8e312186b5d1bd966f59c8a65a56adffc526d1a06028d28c5dbe291ca0a9de084725e5f262ee3dd615b4b0a797a5d813750a325e7abc571cfa84e72d7e96ec198aa28ee9efc3d01383c7cc7aee117b4394eed94bc3d1f57abd2381e2987ac0189f0baa0e23a631846839bdaddb697e4ae5e79dff770c49a9636223fa8dbe8b2703bd730604af7a437520781fc9ecf3f2c77890ac9d3709fa12b99858d5785e38092ba965122d8e071a4750b2bc2e253b08c902304780f8040acfd01a2afe0f4000a4eebc4da7e838a158f255021a29f855a738f5b43ca7ece0342e8a4259bd2431a2265bb46970e16f6b72e37cb4534b6e13c8c136cd54631b8666075bb7a6b7e7f834800eb380c6dd030198a6a442ed974697271fc06011d1468d098b93c0f2327f6a030569367a83f9824e292a7bb3e3d5baa53bc408c3b70583464dc8023704b4dd3650be1b9201008cbfc50f94d958d5d2641c0ee6a1eb30dbd035f69add83b64025aecd8158051a3c5c3b1163e1b40b89333ee14c27ad4c10e8db4e1eb5844e5a644ac6daee1a876e627d7163a6e941b59ff6260a429bf01cdff912f1f9a1b56ce89cad8905746e3eb73aaa33fabdba582e49cff51e1c690c6203c246b02ada9baa0d58f2fdb367fa710b982ac0d146af92dc85a367e241ada40cf593c99c989b285de88b810a44b0a0e45fc59da34ec0a808a2634e618a29e715f5345539d55edeaf7db4c754693d29462201b9e3950858d7fc4394840ff04fe63a75def7fa1f464817b223e0e67a1bd483cb9006649ae4581b509c06e378072d98bc9c3b5a7c01071878a01048706085320b1e9ee6836137bee51d018105a7da87384407619a52c806a66e5618bc0097560c0dfb7adbe1091ee4eddbc6b61d2ce06650540c299f4d46f667d5f83098b9c022505a57059421ced88a485fc03a7826823dc5300a7a78bcf37d069478384472cac0c02cd67c38f87dc160078091913e08f5abbc7fa55b648a3b2643530cdedcb9d05da5ec6d365d5e0483a044065bf1810b5ef89ba25dc6971ec41e343e23bed627e3292b1199b46b3f98c9516923c338804e5a525e828b684924ead05b030a2e26fb5600ff486068056c654b3b0f70d8b6bff66c0ee32f7503342aa0a5cd2b7f5fcc81c4a3f46a9e2dd40495709ddab81478a5f001206b28cfacb49195be0f4140025e0a7b6375d4ba245f9a9a80c53f97d1070e50b376a1413c4add6c649c4e0bbaa4aca39ec930e482ff1ea36a0757cc6c20673bb352944a1a27696a6da2726e94134f36720473092cb6f0324cce185b324ac229de4d2ab14a70a13739a1c890bdf6ba1c7e35b5229449330722e35c299366d43af6d40e566f9a7fea1cc9892128dff49806755e06d93a26f1a988ea5cb7167933d0c7e96a116a47bb21af17399d5c51b5cbb4418b60ca89d776af3249d20df60f38f43af381c12a30e323636a2429359aee60a16161983e76a22cbb5825d1687cbe64add3f817cbfd01e1504b4ac3c79d8aba682bb63acfb4b5f4cb627b74a7c89bb7c07e38f8c61ae2db674f710f3d1a1356e2a3aa4089398e86611cef0117821cbd38488a308da53193173de6c601d38b891b825ed244fef6c6b1f3a1dfd86e4c00109ba0cc9d3482813188f657da66e85f45549d4188fb919e86f89fee77eba431220ae6e9360a28471aea75dd9da2892bddff49636f9481347afcc12d69a15fe20c5e95e6b017512705181f1451098a77c07ea85877b85fa6fb4e06af6af660ff859ebeea6280d147613d21bdbe91f1d34d2c6b06f2bd469451d60522ec448f18d4bd8ab700e621488398163960255bfe5f561c101d1556697962111b482298ea895f9d7be0fb84fe5fa2b3709195ec99db1482cb3caaf94dc4f5881dda33134a70400fda97e3cd5a453559cb3f207c50b91162bd3903ef4a333cdeaa752801f347f090d4434c1b97a75fae63074ea4b1e5cd93e599138855c899aa6ceac918662bb584d8cf06211cec2b927b2918c2827ce6653ecc6d81b5f49ee1c753858c2c8e382810a58504603d08c4b88b78c23ce5ecb98d740a5ca5180a480224d1baf97b2bfeebeff0b2adce55446955ce0b1b9073e84753da60556901ce6cd6ffbca803ad585a42c3532c1b494a2c1f8b6adac0627e6eb1b7823f98106486da9cb96608bf9f2709eb88cd38d1210a955006ca2c3d83bbd833a85ccf5f0221f2f9afbf8c907044f213da16122190059c4a7ec8df7d26898047895154b125ac7eb430ceb58bcff24b58eb1431bf000305720c323e6f97887966a04556fe73b5e3b8d05ceead3dc8c712bc387083c96754210fd50a2820d686d62a4df6d29d1de784ac040d84bfe48cce80f0c3466b01fa177dc7b8efaebe4e569bebf780cfcaa66f254c15f23e265d630c76b5cae029de0b9c963a8e01d2800924837b989b32a5245bf31e2ca92de55894c4982e30d5188082baad63235a7cf573642c78476bfaa08d3703d7a17251b123b4dd10595e20f09b5bde5429791bd49ef044e7f1b28a3badfa987ff5e94eb2be9ad6b783a7ebabde0477a5169561c5930e1b375616d122eb3be7188c93232cb9faf4158e59be2122552b05a547fd1e9fbbee673ce39ebe979a635038ee22fad68e3e8003d247d0d217349bbe45e0c828d04b9fe392be99da14d0d773ecf3a55e7dc6591fe8d953eb23bd456b5d01a5f8177f7bf80dfa330d773cf13ec9f8f9fec9c31d66a3e7963fbe7717f4f8093d290ebdd744cfa9456ff44b6ac7fc64952bd096efbedecfb74d53a7f79025bfd0d577fae6e35a7cd2de7b8fb5e707b2c6c49f53d037989fa7b3978f225f9f6f1c743d279e37d43075e14f84defbec6d7d6c3b9fc41bdf0bfa9e57d495c4d82f1f7bd04c65cc35f231dd5b276051ef9bd84dd2f33c57c0f133f28d128225e91b8b9cc8a7fbaecbf8293e1cf2123ec93400002024b59e4d071f319a9ea6cb4cc59b200e2bfa2345177eb845f058747b106d275c4a34ff2714a4ac79da48f00bf1cb78bb56909ca2e6b6b57c9362a19f013fdf840feadbe3d3410993cb0429405f1f7b312c9ab256c1a2ac3d5d380a296122f450b7ebbe10f8500860bf7db4bfb50bbff0922899484cbd414fd35806b3e13416e5ae57ce4c04dc54d0830791e0e049335a3a9e4146de2cc13187a03b983ed4e8b79cc1a131026d0ebd6a8fe551ff694e680c4153fd17a83c58bd3f2e60c96a1563ce86bae7d23f1eb74dfd7605b0146faaf3adf8bc689773e167018e3398726209e210f70038cfe426977a503bf4edc9dff8a5e638cc737da1fb9ea583c5d3f80ffd61177094d2d99d3bd4443b6b70779477b081971bf194913725f3940819dd02127a93a9c721f63adcfb037cd08be1137d575aabae3f91dbd937f2fcaf05f29db61899d47e2dfdfdec3f5802cc2b03aa4414c59a3c827a6bf5aa056fc51509613df4e4c2196b34b41c45db71f2f745ac5c998f8a7deb5ceb2eba2c1eee9ead180048df1542f8df08c3e2ed535cccbe20455c167c44f19ca9a4f37af397abed1e63a43468d0150571995d0ec208f46dadd92cc023487bb1b4cecf216d3660ba8e7391bc236d9825e8e07c25d2c41a1f10393c26cd0969303738e4b54e89101750354eb982e09251756353550eaca2e63eb2c1c69b5506108effe1b062e51a30d68d276d08c3b806ea66e3a11bb94b060f80aab2b06a3c319f79483606766ea936aa11ac4837ee9b349bc19129bb8f0de9d7c6cfba62189f6a6c4b8ba8fe28c6165b34d0c456fea1e8a3c7d60c7647b34f0e808ab67240031fd81c8725c125982191eee72f178703ca31cc8911be7de3e05e7e00cac3eb6e837337a4787947ab810d56afe8f1af14a3647a517b7c6e3341495011b637c6cd91c1da47214517e6a70ac3af547512d1a31af805c950ab60c663b5681721df8447f5054baaa65b841228544a42ae41ea382c98de95ac6ac8d89b6aaf40b86cda5f041b1522232d3048b645c1372dc878b8e2a14185f7b48c49ecc59cf9454cf64b410663a59911f056b402d17d2f36d4a82e723bbcbac5806d62c792952482e32cbe4e8385871fdfc8ccd452bab7d8556e81df77ae34f0cf84fc7b553ea4c54b61a55705c2e2fd3d868bac900d97a502278c8ac301330e4fc8b589097e0a9d96237afe58b27ac6d3dc32017471b058ad0c1929146d1f68126c3124d40cd3b8ce89fe4a826b6dfa671e669d491f33bc1e6bb4e13481d67a8793e1f54a50e2ca0dae1356fd446236792d4ca131af19ad30fc62ee3e8d7bc6f410ee1cc26a4c1d73cedd9d608fd189a082c8645026244c998da88ba496269c159ecaad3880aa5e9cacdcc83a5e7c7109904645422e81bf47f03b8f6bc510ebddd9c8d1a905b4d864258d44617bf4598851534395f3654e9f2abff9055c6bf2bc8f6a098d459d030fdaf25e95fe6ef12b62554a2766433508378154a1f159802414d4801a6ab48123a88b1b9f0adbd9508c282835264371303e86514c1c3445b9a241272e7d2322695ac9759a6980962127045b3626ca59d4b890930f4ff15be4e1fcac590be4240e757d6893b284d73065a13776fd288843a0198dfddc34091ff4ed733d6d01b89db5d44ca61a81c06b7788bd745e195d02c2d35d5183bc4a4e715d2e9bf5c1888935e22eced9f7f9e176f01349771adda6be0acbf68435f760be957521fcec2ee9bd3703e366e03f21a3072a96d033a81eeee238f0546b742d3dd7be9d95ed0db79216a9864ea59c3b3076aede77e30a8b3e71a316d0d8e5d996d93773def1f23868cfc88286c723aaab41e9920c94888008229a576abd018a00feeee37853e4a3700c1fd21171f7c2d227977ee01a0cde8d9866b77b3399f5bcb758e6fc620bcb9ef35644c66764a2fcb9a80a1e06d2de29fecb081dcb9815dd0f4a59901b9df463103bef6866398c31604f727d843b19575178d8dfdf2d38d6aa7be7d881fd617132d687f975e1121b357cd9452465a6d2c93eb18b57421e0b14513baf8466420c9b38a85bf424dfa4e582ddc1dcc3d053eb54792d1c635d708147e4b50710b5eff6e0b28d4cd18a71adb0b386a73fbc5f9d4273f5d3d1e56503a0d60a7adbd003d9eecf0871a45776aa00f745e9aba05c3ee95bec6946c3f605630f8e5042de83e0be9c7e538d22dd184baf71da5264e08e553491a9489ea7d7f23dea95b1275d5c4418a01f923ea2a89fc6b52568a580f295fda99857cce4ee5caefa5753ca1710ebd4ae06cd2095c16b2bceafa17ca04313710f2f433cc1bf1059b8a52c0f5b1b4881038da545012e7ea469f066bbe465994bf525f88b37335669ea782b1e05a9b92fdbe4080e710aa226a91df45ba69020db5096169b32f4c469d4c0f12654f5be93ed7c7a6c96e585e2b897855b20e093b28bf4a079bdbb9e66e91ac4ae811300c9a0f3e521efe42a338c8703cd76982034eb189acbc62361af7405c3f61e36fc07962b3b3833d3046ed77a4582b8a51a848bc6572e68cfdb9309955e7f42de508692872c4926b8e69a7187ab71062b89079cc7e74b0bc0e8bde1e30deeb70da141db6f31772488ead129a706424ffbc4e68f8c2d36b5e8b9ae2b31077735fa67540e405e08b46433d7d451b1436b107400600b958c280f64df11bfdda356c9a3bf6147706657468fb8beaf06904ec9951431a4b9af90b89a20f53a903ef547f01d89e420f1ca7e7c2235329c75a4190167afa4c7a8e39069d2983bd6be9eb223643337ae0aac186aa77f5e7cd717a98e994c4e269850ec9ed070f1df74ec7ffd53fa254be061afa26903cfcd5fb1d2bda3886ffe7f03cc5dbf58a067313a5d843e01056a640f8547d67e8f092247991eadaa7dfeb64a12d5d06a42708e5c7f87e3a6cd6c33980c3a8bfd03814fd2ccac3c2e0fc4e3c04d7ec7dca8c88be153b5eb0b4e559a212bf49e206538423eef4ae41f0f6b3182c0a58c2c1b7de41fb9da84b17f25732a34df14b805a242ca0917983c1e364dec1274dd4f2cd6e132a0ebb5972e9530e490a6be7d3deb16ef07f04df5bbaf79c0908fcb9664392540bea87d7e73d3c8ccc2e1cd577ab68eb7f293cd8c302968b50444b1ff0ee97fd8845e58b184fb4721f6ef46b121d2db06ebdb4bbec5447a8682fdb22f6df2094001889313d9fa7e4090f2338db0efdff06f510b9d291408878882c6f57431987cc5a931430e6f24942e1a60fa6f9dc2ba0c1c40a8f15ec56724a6ef955dfb9252077a19661e41380c6bb4ef435094b8e9314862a2a251525ad82e6002c48544d01828ba32496a3edf791b7b225e6ae16746df1a98e596d607c720ed1e1c78732b43e10aad657965cc8c502edc3b4ce932f093af16db9a588a8c97342848f27adbf6492ae6b4919ab617c22191071ad022f4abdfd361e9b843cd95207c166539f68831e33f202c343d86ff0e3930615ba522b73d89ed29b4c6ae20764221f519419a54b453c4d1276500e94d0117c5997739d01ade73b6f1b6225c82481d94a0880bee5d2a9118d14295abea10d0a7ae4a760e48b74c1b314083a29522748258d7dfdc350eed5fd96b70f6fee62de6ecf8ca6b69c879b65a52bf11a0b4e92389c612c0ac25fa16e53081f622af84f2942208ad1edaf6799b7e4fd73e255fdef41264261dfc6f0cd1484e7e5999756208bd905ff3ba8f55fbba1571b45021ff178e44ee6439ed601feb37cba3f4d7bf22b3dd25037fd8fa26484004d3aba2883c6ad00b82060119e815c61342a04fa15a43cf3c748dfa3aa587f175105c75c20403291c8e1e75f05eb291a38d0de6921c93af5f0542e6e2c6fd09e71b7a86ac8920d5d4e2eae19dba90c7b0c466f34dbfe3f12841e104bc9ea159626a0b5ffca717bf0cca474d536868c8d7cb22725ab186900ac40589691cbcc22dc96e1f8154220d3dcb186a244b14934d49b10885773a9b3ebd7396a05f5c2bca700bb5649e7a3b3b97a0cb5cd77b5b0311cdac2a20346975a8c4add1dba2ea0b7a6b8a40b3f5120f5ea159eb04786efde4d65118fc086f4a5457bd0d0576f25dc047cebd70e51cf0eae4e96ce38c2bb0c931f7f460cd9642e57275e77e4366368627677ab19c30fe671a019049f705f93f50d77f322113c9c3112336167dcbc89ebbe9d1262a8de74ee34250a586e1dcd53d29742ce3e6b014b4372a953731f3168505354bd01e21e65a25356ba495de44e0507a784a8fa07b23524ae69a9da5c254f584a37db1f62b015dce38dd851f78fbb84d0c3d574eb981c740bd5147b64ccd06e1058ed8bdbbdde03fa58700a6b0068e8b41e5e873a9eda7ab3079dcec000ee19baf98ae52d19c9d412315a77531518d5a9c6978e36b6128788860671838717d7a8b91b0b3b1ee563b26f88518acaa9cbd1e71ec55563bf7744d46d7c302c78278b736998d93c25c93f55a2e0ea32f280b82a59a2b9cc161c65a507822012fffb6c3203072ba727081e54f1bbb6be3ad2e3e7ad5c4a5f3f0cdf5e103a10a74e187e86381c8a344ad6d8dc357c8c60de518e2150dd8610d19dca38461bca289d84b5e01b8443e77ba2a966f26f7c0aedfbc1e2a60c84dde040db9cd9af27c76c9c46615e912d6f097cdd4ae016031578668a388b3c4c808c9d8737a03c6a5fcb3bcecc886baf314be36dc049bd37d85c5f94e75f340b4621094f490e04ca55de39be99944767df5d262ed0899f3a137717ae986dba5bbeb2fe115d2f1b614e1d852ec915de1af4a731f5c0e37ec7a7987a2718798278df804356d85c0064ba127ef49b4347c34913ef0268d7cd8a7ce9ad7f98eb2b1235ec8959b9b0b6db6c69a79a1980c5607f824da17510b1d5a639242c597a4ea6149761b89d622a61c766412d806785f4eb27c8ca408317019decaba9111f1bd493231f6552a04b1acb774b3e5bb375f9342cdb50013817bcb3261fe7a09f9b6bc67b81de49238f5dbf7f65aa6b16d43539ed8353390d7a08d82df154e703ae40a48f222f64fcaabe8d85b80e0233efdedf2a3ab50dfdf2ff88f6415965e8bc941d7a332238f46f0640a681015b17b0debca49ff114c6561dd9279a6b0bf9295a40e24ddc6c8b91bc6c5fab96347318e6fc0159b9b0725da829e24d37c0f19398be8344838d06635fe9962fd5a38e713636bb204c0fc628addf3b84f5459478e513fd3f8205ed439a288526c95bf850cc166d1039688d10a3ed14fe0923e85192dddcd6fc131c31c058c10f4c3bcbdbc27651bd3f570da1faffa4399d4a501114744376100c2f5723784d44d46e2edacb9f0bbda283d64858050fcba7323b776896b118b20dc07ad610491d29410a421540dac6f2227ad232ee132a2f3ccfada0d25d0eb3cbef4c6ef7b68b357c632164bab0e584c89ebdb7570d5e223ed6e1531da2ac84f9c415539a487d0062e97abf7e44d8874675d327616e55954edc4e96eb2ae3ae1b0d37453dbf0c868d5d5c1b08b5e685a9a00467ad53bb94d2bf05159a4527ee922fde35553c74ae277d11dac9f9f2adaf18316231cd394db5c34c236adfffddbe67ad53f93e2953da2679f45d8dd2ef6aed170559b48a650d1ae683295f298dad7657a87ae49f7a420531d2d65664de6248c2cfc93bee46ca884e1c2e18d299f1c679729d328dbe2e554bcbaa48f4c01c7d79adb1636986604421450b0984397a4c252f57f1cab05ff38cd5cb8e4eae7cfc919c5dc74013f4b6b32227d91b708f81ec5427b6df1bf45375247e233e95d35e56b56388a771adc9ee2057a2998f69b6768e8b6c7cbe848c09d0a32a450737de423a1e298e05ccd1ebc9ac3114a2d708e48a21066d737012ac4312c9d5948f375cc996f67ba0ff9c7163b6296d45a938a38944f5675c4528feae9bb66734c41ebf336770c121c0529a410a08d03c8bb05b5f1841570ac56f3d15960ce7e18b82736417348c741af45bf00117d3f61d934f5a0b2ba065bf70bcf701a2379f5b4ab0911d9f622ae615f36bb85889aa6a9579df08670cf32642260276765b1efa3161e49e80b4d7c72619f9d65063a7a29b7ad9af18826c49d9bdd108401006b19f8fc1df20be2be1de6b1d481b68c8eebd7dc00b9740d7b110c1b9c282c1a4113d223991bcf9f2d1630c6141681f8d79e056e7b328a546c8da54477772879f705597c20857d6ef094996a20b873fa837fb15a80081ff11c7063f58f2032429498cfa1dcf664d006084170dad90eaaaaf1d908bb51b94935d87e3f4c1a0770988459fee53331d441e77430a19f7528591c5eb0a4ae39d7b37dbd87abfa402a4463c1f6dff8f3b0fbcaecd1ea153eff8f1727db6227fc374f68fbf2889de93844a1c54ae09420c6e64e453ffc80149c3d99ba98013fd8890d521b60861ddf5c8d7ef7f12191925bfaa5aa5cb7bbf145c1593349dd26c95fc5ce2c78771570a2ba9c05260a3f8db0dccf32220a47061231d6312a19457c5dc552b31090e156db4b987c6b0ec59cd6f2aa09f8be72edf59ee4ee87d481f092d7a20d9b06f309f98574ad1aab78a080b0b86e4b88a95a0b0de65b32d80c1565ba415960b1dfeb6c8a9ef01cce47ad7d503d69f56938a81b4577a1080646d5bf05a95f6fe80b9631117dba983a2099829bc7d3e8bebaf41e533ce76f465d327a8674302577a6c6c665114d8032c2cf0aa687b19911c8c3aa3bf29928a3c16fc80896ea15a9d188410c9834ba7d86a75621a0d13da8a2c84a30b1a881244e3fb249f0ee5460637617c018b4cd482198fe3f20c5f9d2ed059c03537ff118d02e9c1f6053361a506ce348a775eb55f4b8fff79112b4c9763a58fba07645fd942f4e31f4c50cd235f08fd05cbd6b25191f569272a121ceb70dd0f1822178fcf5500edc80a320dba4ca885e5df37c51a400b05951804fe61117c22119d1c3656e01d45b62a36c1397c55db796f8ae37fda39c18dddf9a37d411755cf0013b6c8ab0fe8e784f00ccf8620d4a1974d4567d3bccf54bd6687c344583d1ad7cb541b222959e3f7023c509e1bb64f1a688544156f5e3181828cd44661f07d472c39a049962dc240402a0270ba4eab9e39c89ded66dd4afd090a4a5feb4c5c3fccf460c86b773c194880e598c0dd6c73f0f81a6776faa6b0204c1fad554401369b70dec0a9e24036865e51e5ac3eb3d9d5b24558e5e46511dffd218aecab5dcc0cead763d5fd65e430cf1a37d4f4ee26de9d4eb723e60ed28ccf549b8a5f3187b9f3ea5710c2abc5679667a291bfb36aa52bc526d127ff641d767b3915476cdb0554d12ec1d2ba792c287ee53e2515c099d4f699e0755293a3baa339f2c67779ce26371ac91d58cbd110f42d79965f92b7fd5497add91e601e344e956604a3f4788b2453fabd97c05f488e0d50676e6b10be7f8e75c650df159300a31a4dadcf20f1204ae00867c25d4de1ae5e5b788413bc5963f09d8f7380971390e212f5d6c81a8da9bb15ba037dd4366606852c3b9622d573389adc304a6b85b60e91e565ad38f0c359a100a5a584393d3d57b9b4e2d2c940e8ac478412278797997e9709d3ab3928b0c906b9e69cb9262080853e1c8d0a856f9d3d571f9e48908e8a930a579a8c52314eb82e8d5e1e7662a4aefccb7c447328226aff9f4ca67e594ccbe4b38e0a6fc9c24459067b3cd839081e538b305723f4ebd37e38e73e571c9400bf9d1c73ae9101ed95a6c112ce330ad16e4a1933e510784684b31f86da0c98e335f1faea06964f9fdc8f109f14e89be56763c14b2833892d15bc97a44355adadcf0a624b73c69ff2a523d00b4caed5a22b198c3020d338ff7b5b079d227c074c7e3557ce0467b692aabd9112a6e4d2b2c8890f0e697838d629a6190a0f24dc74f4bf1d7437a2f10a6ed711437a79a763e4cdd3cba2fa8eb28acc2527b9c78ff9acb08e1072418ca9e1dfffda99bec6e0bdbdc8fd016edeefde8db653ebc30178dc5f8ceade90e1c091c5cb92e059bf22664775275c1ad81fe75e70f675fa528e1cb067f872bb0952add0ccaf385395583885c71139cbfb4b730280913baf92d706aa28067ff7b4cd3c3ea2e75dc42a6c9b6d1d0ea02cebb16361a8dbcfe9ebd73f901fccf040adf33c25520d65d491be1f5d7aef10f6581056dc186a4128d9a7d5b4f7b4ec5464bdaa95c7815ba2deb154e9093946a6cb502e0127fe986cc6b4fdfe86ad548fe595966f2aec2c47caf6ba7ae44f6b746ba0959da422b7b73cb8b0b4f0bc70c51272a4949a3f80aa5392037142ae42b08f7e9f455f395e94f3f03b74e534aede5cbea9ca44f29955452ddb9c964a25a13ea934a0d884a299d3399dea4692217e91395a2ce91fa92a252fc222464914751c75dd1b5a9fce5abce8776fc28df399977a8e2ab28857c954df11596e2ed50d70bdeeab600ee50282c80ae023fc15b99e08ebb095e0f77b9145f017593d4e49534a3d7e40f835b5e7de68fafb0186fc78fc078abfbf1e51770077201aeb4dff12bbc95e9e34b25b81395e00e6985d7235ae1688c236c9d546a798648537e92906a6053a6d1d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d05c147551173d72a74773a373a373a373a373a373a373a373a373a373a373a373a373a373a373a373a373a373a373a373a373a373a373a373a373a373a373a373a374a3d38fa60876fc79c4d18e6fca520b8f8b8ff3eff89afc62c79762fcc09d077774328cad24bb6085d74366e1e144b823bf4028db0b3bbe520d096a6a6c3061c3460c4bc410430da01a356894a0a1a191040d1a3390983143f5a352cd1c3133233302191919229021232606660c189854185229941828d4f665db4e60389d4c61984c180c8cb5254dbb5fb837fb22cbac17acad5e6ac5ba8061940b94ce2dec29a5d4c2eb1163ccc2ebe1ee58783de00fcda4a1b0a6599ba2b845b118dc9a3a7299d1dc1575a04ff4894ace196173201f2fc2d649156c7e84f847a28efd9814234fd4b15a2ac59baa958a52b04d146cf2670c1a944a5ce4c78f01b7fc6b704b7a7c4c89fe8cfe9e4352d7b68a3d2aed08dd9deae71c7d59e534c146b54a6fcec1230fa7089b4f39b4df0d26328c884c643442c5cb9c73ce095d62d0e7933edde7f439e79c73ce391f36b1515ab7397d7ead6ffe9c73ce39e974edb9730edda5ec629b0082920bb647eff3d594af6916da9e20cee3f0e12cf6d820d6da5ab57dfc36de12ca9759dea8e96bff3e0c1fcb5deec916f0f6b50fb34cbfff61bff2448bf1c48a65b899647006e13e1b9d1b31fc036318d5608c50ca5c717c35cbb28ce21fda6b4fb59b7f9278d67d1a0e23845aca85af4415618c576bf1a27b47d967b895d58b4d7cc36739becd1e730d3c9c938f651b9ccbd962838f278455014cb6bfa6f5c0209e69d9bf8771363dcc9c73d16b3817a3fc9eb73dfb37e9ce664b1d31635821841056582b849826fe83b807e21eed637e5bd352ee6b5fab9e51bc1ccdb778490f290503f9ee65c32124e741fc5d4ab813777c97af879c7bbe4f72f7e8da11734d97a579bae0ae33686eac38eb4fa32d40793feacf2db8a413aa23e3a37432e79c73ce396974f4a7cbb9a893645fe7633848f655573d839c8b3fe977ee7306f96a4e2717e31686decd4f923d0d0a728e3e9d4f27d5158a2dfbeda78b6edbd3ed793ccb343fb7dc3548fd4d7710ee5b357c1cdddbae7f210e12f7f6d78588637cd9f5a510718c3196d40d1f0e7d19b59a39e0bbfe7d55bf8743b574754ca493a0f9dd7caa839cd349e667b2cb5eba32e992aea8135df567746199b6afa43a483a19a2076e89cdbac4270b368899629cc35edb1896510cc35e9391b32c7bcd4a91f1769341b187c12d4ccfb0599ba5c890218320b4a3cb5752647cfce8240661693fa32028ed4eba60340c7b0ceba62ba599708f49462661300e736358889cbbd68905992fe79c271c44f6c8c7fe426d4693d8d70cfb194de64edb99e65c965d95265df283e25f2969a412d5c6249e317b48a5135fd160ffd2a5a71396c985fd1582e6ac39975dfa90e24a1fdb8ad2554f3d37ea279e534fd4cf2c1f02c11d6b53735a2d3578714fccd77f30ff64208437704bd60cb7647ecb18421a70060d0d1a1a8f42e94e8986d210b53d7e0a21fe8fc91dea339cc26f69ead7392bc401b76dc35abea59153afa21f1323374c43d4c36d460a8592337407231e82a2b4456d955bea65ea6bea9b54fc0eadc5a9b9c1c86c0fb747e5b7336e6d305a3a072337cc8c8621965ad65e6a52d77933ede11e49a5ee2c1eb2bd9c91f5537276be639ea66a4c0cfd6e0926a19438d88f791e4ffdbd9af64f0392dbb6750fb97b56dc23f3f5797c255f9352bed6a46a1fce6931f5a89cfaf91ad0ac5f67501635e35133348fa3ea867a38e6791c5567fcf6d27554d6feb432460b99d2a23ef534c87c3964be7c0d08eec89732f53215f7d498c7f090d4a4e9999f64d31d9c7888b6e7d3a464d4d4a4916ad12bf3b4d65afb31292da10b05f3aa2ce367327d1919d4f378955e5f563ddf7ea7444b6921566b34d9a35ebecc43ab53ffba29234bbfb131557e8a090db7689665b8e7dc2feb9610e6b34c2fc19660dd126ccf87401bf551befc1a03f331f36386c07c7d18547dd4a772c764a3b0257bfa6c2b65f6b40707c9b63a6b8ceee446bdcd44ec09a33526e00e148f0f5fa15ebb5a131ee734ad6df8e7c46ad69cb0698fafd4b29c42054694d2f56ea2ccd9325f48efda78cc9c1a5daae89a2ee99252da504929a518a55677f94d8cd23a25955352576af274812526212521c5f9cfa6db7694ce1961f38774d27f72734ed237e1fb8473fa43a9e39194aa0d618416b832ec16bb45165534bf41dae4436afdd57f1a53482ba41042e86e02ec51b0bddcc1a4188c12db0264c9371f7dd8c35e7d533fe9121f7938d1e30ceedbf7f46f3a5e00ecf1c71e5230369a20fed8fb3ffaf3ffe54efee03e1d5b0da2ec6754032739fb1905e195d4d5b92dd59de53aae46a8bb2dc69bdf5cd4812cf99bca68cbbf795b065080a77a46cf39c7fed5a84324c61a6bacbee95f22b56e9b148c8b3a44de8dfc5ab74d059bd834df6e0459b5cd572fc9716bab4e00d714534a299d26786e04641263fdc293c902f9dd128f790f5b5447fa9aafb443edd108c9a4d8cfe085b875a396d1b7ffe07361693f232e28a97c25c5fefc1a56a394d22e530cf764126b23542c2ad83fd5f60ce33085cc0d85cc5d2b74f78983c0f777c71aacfbd137e979297d2f348918d319fe841a9dd5085e4f1066b8a51c723fd34b7cc359ab5ee23bfbab93643f9554596bfd59ef09eeebb089740d0fb9bb5edc837dad4d5c433db3cc5e7b1008ee6415bafc99803bdafb12dfa721f1a43b9f5aabaf4413e20f7507278df6f26fad0f87d48740fa4278718f3fd49954a26d976f714ffd24a75a5dce2b5906a7869fd13765fc36dfc7f283b0d6aaeb6b42340de14f4bed4bdc937d120c6a3b63e241261cb7aea66519ccb409b1ecb444fb9be1eeb97fdf2918fefe57d76a99804cc0269e99c0d313b0e8653d6fcf3c1cfa4c98b1e1669e082ccbb22ccb52daa1b0bda22b4945457c459376f6f47ddca01aaaf11994eb834b881edfd967dfc1a19be5f9c4b66477f595683b7b228a803e0f710bfb0c671955c439d3677907e74c99bec139d3d32fea5f99650f87ae5d82dde7ae7eced9c7aef45596b1af36cb32ccd62ccbb2ecdea7f1e11cfdb783af34aaede01cf5c1571d9cb2e9532ddbf43cf46956ed4f274cf4b753d69ca3ef4ed84c0fa1c0285067534c0586a6bb0dbb1a53bd1b8ae56014c32cc51e8f8d15e5d4ba512eeaf0d83cfa188659ecafc56cc69aa6d98c5fcb40d8bf42586badceb256ebfdccda5bdf7e56df39ccc639cce3c322cd4d45d0c2cb3eed67a48514f643dd379b6c8fdefb3477ec3a1632638cee4ff3e37d7c04ecf83227799a26c80176fc03d00489638c01bb58c10bf2134cf7e91e638cdbf423b6a95f8331cea9242ec528837694414c26ac4fc0f7b21d6acfc697a094c86b463f024412124a2916e9a45a32a7af094310c2128e5064832934c19253903a478a8d6a1dd9c33f127532cdc51bf8524a2939a83b586d964a29a5941e4192740409162ed8c1c676c759b727a0c2e61b892f7227f1b36d5697a32848403ac215479002162e70c211998474040976440809291aa194124897a02e50a691d01196b14ae4e17225462564132578c0842248f1841596175c6820e7c532f7c3c205af24242245549d0d8dfd8ca4bcc05d4a29a59452ca5ab15ab35a6bcdaa75ac62f48b2dbecfe884bb75395be6d427e516a896524a29a59452ca9b65d9fdec667fb35aed575be5bc72aaae812df8c09c9c1a6a1134f41f8bca7ce9d2397f88df399963bf3d709187e3cf13fd7efc1a2f0ad531f17851f7c2e8afa5aea84c83c1a121b86dd74375a883ae5a9fc7a193d7033ad9554322a8c0d8b63054051d38147390fe4815638c9ccd9678036db2acb5fedba8bf40dcbf2ec4bdf7def75c75275128ecfd5e0cf5f71d156f4445faf2a7e0623fa329b2b813fb1951b9b2b140140af5b766215028140a8542bd670ce5140fb9ef28f928aae516690d6dd35d7cecefcc3cde7bfd33edc6d872ed6356a2daa76ce26143967d7e807440b1cd2b9bbbfbc04421a194521281014516c12d63d0e9ef918f79ec31bd3dd657e6f835dbc7f6310c8bf263263f6679a7c4b2af4f62768b2897b6e097735724114b94bc2487e2dc8ce2dc44d59a55999f6cf279a2120d26651972e1dcac1a6a716e6e714e4a1da340716e4e29667c4d8faf68fa2e067de4c2579a1740106d10e68338323f466b1f8a412798dcc5a46250cc8e4151071ee9930ebaf3bba8657814af8db162d895b9ca192516bfca39a38e49cec52e5b221751c020e7e013288bf6bbc124069a6670e73f9b0ebae615e8a3026373e8d01d3a74e8d0a143870e1d3a747777ce9df38a61980442fe9d42482925a63bf922fd29657cf933baf4e85086218ad2be27cfc1f67607a3ec30aaec67b474b479ec67b4e4d23cf131bb65c6a983a7729a126d0f83d3ca9d556c99dd02c21a5f8b134aecaf948b69ef2fd5aeb47fb394fa595ee2bb65f5bc346287d8dc58c6a6a4d3dd3fc97cfaf2e98c5309095fef11ab8f7d7c0c9352ffbdf79594faf06d20d51cf760da088d45853e1ceae00b56d9bee77b213177f015e57c52cad7f32e7c79cf2b352aaf4cddc1211ecec13fe299587c3fb3aa53edf778e27b3fa1f69e7c53bef752bef7b4ac99c68687afe043087fbeb60ebe12ed3a7e33c77f593e75fab26cd74f3bc27f7e620cfce29cffec60f3efe097ad677ca3200055d91e05c21215271eafb3e1c7bbf3700ec20dbd86af608435ee496ef82edddd1d4a97d21d42287586359c83bf6916346cb1c98fb3d3584ac50c903e470451ff4d8a416c3169c3fde73810eeb3e920fe976113bf992f359ce115bf990f4b4f1051624fb1d410c8b9b9e7852fb3d882903ad62022d4f095c5d671187f12cfc24f034619a56029a594d18b3da34c815bacc52dfb6ac52494724278058b73b3de373d8cf0c63799200563332d21c2b9f9f7067183983e4c88357cf9cd4bda7ce0b179f9eafe7ca9e00bce28b621e4869a73536cf2a304e33e4bab8cf56ada57ed4ac17fa7fc7aa5604cfdc88fe27b9628edb52a6925d56ab6d23eb5d6d2b7bae21eedb5a9c9c71acd566bce254569a1f64fa355b6fb4ab46d67c5aacd6ece2aab3558b336e77d4db36fa5977da52a26f9cd95f551ec049693de373dcd597d556327d809b883fdac28d40935e70943611886a9362d443ead3e843abdcc9a66fbec524a5ffec34de08efca92d7675d8b5ed84f98a87d818b97442e92b3f9bd8d3743536fd4ef6cc4f82d1ec7e6ae9d2a7a1bbed74b3ada8d65a6b3d690ff7d8c74d2c769299f0902b93b9fdaefa86799b3becda198cc5d94b6dc7a478735ffe53615ae2501f26264d9dcd37c9b8ef43f7effd19baabf76bc64de00efa5996cf136772ea65b2951193bb989b63fc5beb49bb73ce39757dd4cfd34fd4fd53bd9ae6f4f4ad133f7a17f530df79936d2fea377b3f096ade87d1a86edbd809b873b5b72653f62ca75386bb5a5ba73de5b7277602eed098a469dade979262aff92afbfa9bebe0af5a894ab5af490b997f2dc54ec01d54e31cbbc41bcd6698d5b223155b1793ee777e849db8f9ed13765d6b3f72b9274a35286352f4e2345d46402659cc23b836d3a34bf920c4fc3d3dc3864dd95e739dd7a54674f7d7e3de6a83c18ac7bdddc5bd1f8ecf82294ea49452c297923ea42dbea4704e0c4ef81e841305db94d3f6bc3da558d5cc0f90553d227c3527e5d980706ddae317824e1e1f40324a4d312ae7eea55f6ba514088ad9cc3e86518a515b316bbf52aa65866573764ca08b4227b38bd9f789983fe79c4e6cf73bd59c526c3490a0166a31bba453c36fe6cfa943e5dc9cd813617f5afbd5d2aa594cbf492955ed4955ef66523ae9a4934e3a298d94f2504aa976efd5ee6bd7dacc62b4528cce0ce225262c09a20b1390901029e203d2fbf8fff7c10384e71521212111e10182540489c812228240ea52a7431f2810420861ad7fb36c24be7a7fc4395884c7c70d72d6faded6f3fb6b709dfaf373301a36ccd28c52dd699a474ead5b86599e38710bcbe1f18a64cd3ccecd4702c4112fc2067ffea447dcec9fcd556131c6a83bcb45c543e0cbaac559314d4a29a3c681be76b166b5482079d281544b8cbe945b68b6affe7dab255a2e30ede3f3b8dd02eec0c7709471d3e46f76cbc6a4bc8ffda6837a08a5122112fb88699afbf5678c117bab05eec8c7f4b45bf6cc700f562106534db5664094527ab56a733c3d6adaa8bd70a83d84f1d6aae9635f35ac8560afd578b1ac69eecb9f9d92ed3b08b427fe4ef6c44f527754b2e9533665e93755774aa2ee34c0c46e61b7803b6fcf1de3dcd8c6ec167047e879b193c49fcf0b08e445148a8f4525dafc2a14759e16dafe53db2de08e18e9da8479729fcdfb220f4b1122ce41f964f3413ed9a02bdeb87625dcd86f99b3c7ba2addab2beadc20a2ced59ae260c3fe8873fe98460214751e104a7ce55dd5b69223d1fdfae0abfa6e8790bb833e49e477980c4273dd622651111f6a8c1ab502c2ba6463efc5a864acf61d2fe06d1c35edb5d7aece34938d69bb057c760bbb654b2617c2a48de53887e59eb7913c1ceca7945be10f5096af07dc32d8bab71489f05597b3b13a77ce0e40f8ca1ffb0b9d388761391bb3af445b698f7d0d3c7c05e14dc53887fa9b55cea1fe694dab7f65b5f5de0a0476b3ecabf6cfb92b9db3fa6aedbec6133b2635b3b57e9635205bebbd99aece699aa629c239ec1f74f90aeb8ec9c61767e8720e834ebc48e52e66a39e082c4e273614928b9a526cd8d3b05f1f22412d1babd57a94adcb893a9adf608f61183663b055ec8bb88fbdcdf48bed7ef6f6af5f591ffb1d7ca858c52a56b18ad55a91fe48f58a361e58ad58cdd918177588c88937d8d75ab3b7c9f23b574d18e37fa6c71988ecefe3373dfc4308ac336b6f9669d95ffbce551be7eab3c1741298a441d31086768c71cd94614a712bc37fbf8b663299b437695988394daf6521e69cd344dfe7fd89f57bbe54c3b98333ade94afe844dab5d955ce45391cf63fb34d11cc3d3bf1b548a4adbb67a398f7b13f42ebf6d7ca4d886f62eda959c8b153f7d932b79175fbdd8fd8eef3e3fce4588143f9bc982c595a494524a15c4d34c8d07e171a6a8e344783726ed479d1f757ed4f991ecb25d3b101e4efc2e5a61c797514a698a2dd84ea8e7712fce41dc33f32eb13cbdf84d97a2d7030bf4f9712ece2e148a8bfaecf854487bfa148aafe8d390d2459d380df2d5f3958dd7037f8c2a8f7e95eedbc8110bce7047a52faa6d8bdb7f297a38b18bec2245b09994dcf3e9b7dc45a33804cc1b4c4ade7719241cbaf86ae6695ebe631c54efb38be169fcd4dd0c2da76b1ad3d3985e6a9ac6a47f30d9a6976fbaa6d7bec7f4dad55ed3524bd367b9d3fef432dbf057f9cfd4d86cbca6b9efaffd7c9a69ee9b9ed25cfd83c9be6f7a0dd304b99f7dcffd0c679f691fc436691f638ae16d68fac5667a7f98bf18c50a88e1afe91f5e80490789e14d3a490c7f75921a5a0d21dbd3afa11f8dea250dd7dd8c999733efaa99f7199f6efaa9b9e9e9cf197fe95afa945d7ce53a521a9562971fdb5f7db7bff765e84be93388c7bccf2c334dba63b283d8707683b554ca7457bb9897f94f4964846c4164fe9a5e4646a3549bf493c97292f9f76ff6329b7e4ecdf4d264cab499efcbccbff3be8c39697ae64b2d657467c4be7ffad3cb681999bcbd77447610fbf451c957910b8dd4a7f412d9e397c62836e970fbe9976ca84ce99c74ce39279d94ce49a78f73d1579b5e22f746a16c3441361ae579fc9ab27429a594746e196e29e5944a01357f44103f7c3671909aaf7f6bce7a86ad26d7d4d4e8229508520eb9e68f640ac5dbe15f24db4c75c83402993a71ce7f0b639f82a2e95d47e7bd53d029a8550364f30faf4386c017c93e7ccd70e7c0fd35e5774e7746c039332cabe1446fa018c811865bb5e61b906b3e876c73113be4f7b89c6fad21006eddbb613e6a30cc535424d76f40ae9f43aed5e70745320fdf80ccc3e790b17de98fdff85bdce2e12f0f0fe3780ae4ab0c54a3e9c8f0cf573d7ccdd7e88e87bf99874c7d76b0e5efe84f4dcde7a8791cafe1961255abea9a9aafb5561c5f9395a876c691a98f7339ea5f1a362339bee6251e52f339f49c92e9175b8d91e79ec72f97e7949a7fdbc81b00b78ce8193423f80626bbe61f0e52c3e939a5e6fdb31e72e4f81ddcca9143e6d59093935b389ec7e94fe5e1fd29900e6ef1c0439629193e258336428543b571681b78f0784076c0670ed03f327c910c770332dc39647a376033963db06bdee32340fdec6a597e3ae41ddee6077c91fcb603f2033e874c7703f2db5783cf4df963083ccba65680986b73f1bfc43d64683534ac5215c90df81c72ec38b06bfcddd4c73848dd38fe62ad48cebe0139fb1cb24f215f25a97fdfdf01f5ef49bbf77ebdd9adb93536e0d6bd33a6981a13deb622397f0372fe1c32dcf903feb8ba71fcddf21b011f0e8ebf9863f049537e1e9fe22b1cda3f47edd6e839655f06649b27926ffc90ac3f8514752e5210dcb15b3c553fe847dc4f7dec16b8b32df974db45aa760b03fe4626f23a0ff9cf710fd1d28fc3c7e18e3c823b4e415c8e6d29fb5e40a6581e4e0fae781c0f76f070aebc9c23b2f270727083c70d4df1706c4003c8cd40e8e14889c1e360f0828703e5897350b0e0e1ac00058f737282876382269a3c1c122481c4c3f1c721d39f87e3cf68dfaff96adf5777f5ffbbfada3bfe51bfe68dd8f9a97f7e1b874c45f070fc6fc874040fc75f48a6473c1c7f05e4209902c9b42753261e8eff8f4c49f0e8130fc7df47a6ae87e39f804c4bf070fc59999a0072fe3bd31464aa8287e38f804c831e8eff01325dc1e3fc0d9069140fc7df864c5bf070fc773275c1c3f1ef916901328df270fc79642a45a6327838feab4ca53cce9f0099d6e0e1f8d790e99487e34f43a6541e8eff0c99da0072fe03c8948a87e39f93290e1e8eff8e4cab3c1c7f01649a83c7f9e364aa8387e3af23d300646ac5c3f10740a65768d1c3f18f0e45fdcfef5fb3cef68ac7bd278fe08e7da1bec39ceeaa57f170fc73e80cf78d6cad789c3f0eb9eb4ef60e93edf0af32ddcedeb58c87533f06194960626ac42849c1c880b9002a1593c2c086a24165e0b4bd3ecc1684697b7d1a2721b069330d517f06d6c0d54cda92ece2bb019b691907eac7d80e60dbeb775925826eafaffa885b17f3c09edbab8f12f403536e4f6282403e9cfad4c7919045c4ff09813f9cfa11b7f25f8f336a38f2db36d977fd24f5332bde154fe747864fe25932682af5ebbdf11207c9f28de7815b37f40c5bbd5171903af111e7fc7164b86d7c77355f3fe7ce889da4e6b3b7563c8b05b45abcd5bfbf45721dfac43f5314502720e77f2353251ee76fabf0b72fed3d2503e63bdf329def99d4cbf807f332313ff3bbe66faef92974a37beae3ab9a1bbabb5fbfbbafbd7e9ef839043a7746ecec2f161dca374df7795cc857af3b37023e9c8a15c0a4476e21de18fbfe14aaf1bf7a0a39e7738a7331e48eaa60fbd7c89d0c4dee6068e40eb53bead39db62a777677d4a7c376675f9d49c6ee2cf5e952bba33e7405fbeecebea80bb6ff491ed128b6bf467d8af0d5d518804744409f9bba1fae522c3c6251c1003cda738a5e128473fe5388e2a1ed43819c73da643bd5b2755348f3394500464026358c804cb00c2aa105153ef701fedb703a70147cb8b7d94e7b0b32f633ea828baddacfa80b2cbbfb1cb9056d06edc1580388981f734f23cc79e7a532fb80875493668b6022cef963f2f5a895be1ed8d4f9c178a3d90d1888dd4c9447bcf1c739e766afc7ec31ffe168788896f65693aa5de3b5ef6ca884a931b63f955143dda37b4aaa1d35102e65175fee6bb32cd3b497da4b2d88a6bd7635184dd33a24c7659a868768c5d7b07c55fb4ef5362ecca9c14d7ffe8c963232c6c4a86de8fcc7180fd1b28ffda6d5ef6c74e4c8bb53f0ed20813bba9881c7f94d1463fbc3f7c5f6b7c0eb818147027794cc903942f545296ad7ae96df1c426239eee71c0e627f6a1a2fda9fb1999561add666ac4ebfc249e73369f2dd9396f5c8e075194ab857d6e03936b478481a6dfe75701cc5626aa85455d36ab5f415452e3008e17cfaf4319b19b6f9f2f51022a49b1bbe4f29e5cb996d767c8923f220077b9148ccc209768c5f63a49452ec0926501475010a2e40780212134b5aa862473969d2a51c12a5f4664c3051a2891a308184164869810fbea08521cd39872149dd016043ce0777265541459744a43d62038a592de6943a2a1d818d4db1a022842c36a5540a1ddc112ca2f8b1cee5703ae491ee060cb438e79cdc4c3202912866949c0e8877c79db2c8911b112d8c2a362713929438429655c1920748910f204b43511675811da1414623911d908aec4085d76cc2842c62e4d1c205573a105db88e441d9e986404a74e440bd7098331c60806a478f3624624ea64fa48133f588209b250820a2e5040c2174c88555a2d7cb62805a478f36a13095089e20ad70cae80420abc2085a2298f965257482a229ac14912d901a9c80e611092569060669452ca2900cd9973448e9528c410e59c7336a1896c8293263cd9549b48d4e199483e34a2e40152e40348185c78c2f03203110b4e710a4853d8128f9032a0295a00a9608c2f584102172fb0069b6f624828a594984bc99313813807a116b6a0c10c9e90042f8696ba904455f02be7a494d26a55d5db8cfd8cba88b2b1fd8cbad8418c4a74493aa28405cf0d9aa0a6dd2ea59454488a54508a54e812a9b014957ca212500e9d3973c8c7c78704515c5a7378e4d4c0a3c80947db1fdbb29faf30cb83a772ca29e9113928728215720a69180f90221f40ba787551d4c55117485d6ce922a90ba52eba48201a5d4ce9626816494c56e9e3e3e3032465952d6324911d908aec3086cb6f5e5085b209a986fec515e56c1fe3c86fde2e6a82062dc860c9670a345081185c088318638c805e3133798014f900f28a92b0e414c67d0b4988c2f62d6664d19296231e242cd4c803a4c8079057d405a1a44d331239df51d2911b78c134eb0ef5683fa31134d9fed83bda741e51338224be90133b82ca39e774f9cd0baa50fc468a2146e5a812541ca18fbc228c1ea162896c3e9b3d146fde9612cb487608d2e2a58b137ee04305cbbb2041832e76b03d22215284278b251c5cd9520b9f85160a60042a4350c11550b08417ac2c3cf1aaebd4c8022a4f3201c21ecc408b000a2daa28a51116453d50c14e6d7162b3ce395b00858c1d73ce2925168e307757c37e4c5e3e68820a0a9e70820628c0c29c73ce39a751d07624b8fb4d96229ce004252041d214aceeb73b141f1f1f26585c76c76dcff1953f0f1f44dcdda5bc32853d5fceaf3b9862cfd77c8563cfdf76a0e585f62cc27e463c00a3007b7e4e0d3caea062cfb78107893ddfc77c20be7a46455bf62c7a485264ab2b2f016c510021be2b643145280a4488d203a12bf4780167648516dbb7b8e2823de39f54412b269de8620443480802129660032bc85985146c80824b065513cf39e79c33d299d158851635e2111446bb7ab20a25b088305892c0092975f022c200a04891032d98600a1d78c1624b022868d8667635fc146b22af5edd6dd9d48109648802697b61b11d298aa40bbf0a57a862092f78c214545421562cd6fa82a26767b3e79c44629e1461cfae86f77e03bf561e73ce39e79c930b02d87c3567f8fc81972658d1831148a14404168fa8f3f106fe1076a752da5d0d7bc29c2b6c229d92ba45619bf3a12ee21c7cb90311aa8bec6eca18895e3d2a8d0358ba4fc7a6bb259bbe126dc76a5ff66866adeeaaabb61f2a98aed963fa65d97b26f52cc2e61fa53fa92d944c5c9a22b2084d13691e0043c07a2f9f094be6a87f3ca31c4c810ff7649a1fcf2807429b27c6dc3111021ae520ca36c299b84321c8a7617befd5a3bb76af51cbecb3caf59f58e0f693324af9f1e6fd5339f71cbeefa48c52460c42973427de3c191f7c3146ddc5f83531fe9bf1a0bbbb3f19a573d1dd9d4228dfebd3524a39253dd5ba6defa17e917a7ead8a37ef7d8c0d9af6fbf7dac381104238e3e15c8750c3086b8c5bbc795f1f8cd5e18b31d65021e3bbba6da88edb36d3507f378d1f8919a899c7afa2f1a6d3cc8ceab599bf19896cc6cc8c4945636606e3b755db76828989e1f6844961a8192afa3130a7146a464686fe8c0c19999919999f9179192d840c2d6589984702c6b4f98dbf96d2d8514a72f0cfc7269dcfb1d41329a59452fe7bac1a619393ce79edc4a00a52ea524a50d1f645680a2e4210570187a884a1c5cbd2121884f6330a03cb33dacf280c2fa84cd9cf88ca93dd411fec6734450b1195735ee405765a696db4d6ad85f6d96ab35c881d00e859d83f1a6b36e10ef9dd69c713c0c3f1a779c2bc03618f02f0d05911a0061a6618c0a473ee98908b37fedc8ed763be9c120a206e0ce7f5b0d8d5687c28658c98aea19a11623632ec789d0156db5f86d743000f47c70c991ea86ce0f62300c7c9b7715a8e6a276c8b3a37efc6ff710f870518d6f17ad0f7e7b8a8f358a91a6fb697c2302447bd8009b59ffdcc9d06e10d4c6ad63029f15fd4d5396f725f016f6b1088dee82c853be2c307ff419b0db7efbe9bd1a12c176f68aafe01b7f6f7511fb74fbd09eb1753fa4594ae3a52cfbae5aee6943b9589e3e6cba284db561af9dfe77109775e8dffa0eef286f24ddd416ecffa381615ffd72532d1661686f064d7ec67240431f6a56143f20f572da68c86c0c5c6d9cf6808538a8e20b47fbfa22324b1b40493ee16a8f9683fb78bf6b2ef977dbbbca218e0dfd6b8658067bda61ce0dfceb8758067117d41c0bffdb8858067bd9af0fcdb35b8c5f32c222ff6bf6d03b7f6b388b8b0feed18708bf5acd79304fcdb35702b01cf22e2c2c7bf4d835b3e9ef572d2fab769e056eb59af9f1ffff60cdcfaf12c222f3dffb60ab77a9e45e404c8bf3d835b409e457425c8bf2d835b419e45a405877f5b066ee1f02ca22937fcdb31b875c3b3ac7811f26fc3e096906759f972e4df4ee1d69167113589c0bf8dc2ad083c8b084b0efff6865b393c8be86702fff609b726f02ca2273afcdb26dcd2e15944518afcdb18b78a3c8b28cbd1d670cbf42ca22aafc7dbfbe216f61e83ad9b5eb6df207656445797c82edb93f69d5c38578b2a963a54abd42b75a85641fd388702da969cdbbe54a972e54ad1d111cb8a46f3ffb60d9aec655fb6675efcc63f55b46d5c2755a4f215cd7c243f9f66fe63fdf05d8d27536fa3fe90535a720a2968bb5f4d4ba4b4e4145294ededbbf1b75b2cd2cedc055080817fb175292424d48b65e5ca95a3a3a2a32bb01c6d4b4c6a56c5574c5856aacc2a555cc7a4d4a5ae6c8fba432dd5ba6d2ad53fc7e56c4ba7201b248394f88587221eb24bd00675d565a3d42ab54b477de2ebb565fb979396edeeae72081dfbe29cabaa4fd537ab1aab3f2dc05e2dc0ae602f6ca8cad66151b6ff9531b8e22b0c8a7355f08b89dd820539e7d81325da954fb6fa8f6ed94eb56ca7596ee0a7a3eda72cdb4f2f796fcc322ccef9e9e59c9faec04c774c5eadbab2ac24f98a6525c9b9b75d7b1b4afb193961cbaed9cfc809af6d97a20eaee2378eaf6cffec9d2054a445cb26c07e455aa29873fedbd9ac794e9db3bf8187c4af36dec6c7dc69da86f6b8957d54025f813b70e32ddbdf46eef0d0632edbdf06fe01371e7262fb1a5cf38adff863c97c6616201d996bcb606359494ae2c2b2c28565c58b2cb3ac70b1626359c934cb4a87aa75085c76cc6659498a01c7c0b2b2c5575b585694923cfb7a6fcdb2af590d9c428a3a78480b1734f00d6f578d7af9aaa33e577cd55d245491af58565058e0cee9ca69e9f578d5a702015117145f0d615f7c85e485e86b2862425928169713ec09e6055bda4e3fe3a19e9aa39db5ec1ef28ff6feb489af8cbc3f75f9ca46b5ed1b396efc9554b6fa459c9b4f818f8122cd3fea82d8f16b7e1bdfc92c7b1b997eb1656fe30220b391334db1f84a6a0eb76a06e2dcc4e22b0e485a14f547dca3f55cc2c6c3db18c9314138389d4373b8956551cf873371641e725703cdb2fd7be8a893a965c6adaa65d10b8aafa06bbf6d80cc7a4189a28af212f2157c62bf7d80cc7a09bda6ccbca6102df90a3ab1df464066112d117d9121faf202f2156c62bfcd93592fa0571319af2649be824df6db3bb38892bc88f18248c9579004fb6d5666112911718121e2f20af2156462bf9d80cc7a05bd9ea45e4f88b6f80a2eb1dff69159445b88b8401171e1f21504da6fb732ebe572b23979f9f80a2ab1dffe91592f9fd7cfe9f5d3c5573089fd764f661175f162f2e2f2154462bf0d24b3885c4eb09397afe0cf7e3b486611bdae6857907c058fd86fe3905944485aae1622215fc111ecb76fc82c2221a22919d1942ebe8222d86f0bc92c2b5dbc582f56967c057df6db4732cbca92952fd5ca17205fbd31f6db11c82c22a0265893225fbd30ecb773c82ca2222c148b8faf9e18fbed09641691cfcffc09f2d5fbb2dfd621b388829ec827507cf5c0b0df2e92594450a2c42847be7a61ecb74d99457494c5b33c9cb7594443be7a60ecb7b1cc221a72ee6d165195cd22aaf270ded69062d1162d695b244d491b823bb64aa751b1351c106dcd8aed36bed3aed8aef5e065b15d0bc28def3422ecfb9d5665fbfd4eb372916ef8875b373c8f2f31fd8d3cb378383d78f38a69c59b448ff39779e2e071738a598387336df070fce794ac44db42a6d0a481b5b2fd6f0ecce19e1e7ec880efe3f19b23076e09818031c61863e3f03f70fcd4d595f1f0b2ba6a09de2ae6c891e323b6b12dc51bdf96ec1623f6c9db90279785a2d1b7312bd55d7d1bdab664f3aa6db3d996b42971906ae32d1423168a916c836c907d62a118d1a188d56cd8a06102d9d71c22166d501f237f5d5b23a822e76aadb5fe0070ab62eeb31c81af99fbeb5a5621fed1c3672319c9db205f21797ffbc4dfdb6e703702b93a97730fcfe5b791a2d6378e7cc643750d017398800e457c77d46708595d38e414967b030381fbc6135b477da84fd49942422d23df4da19b3917b30c17612cb88a7331872f61ab7ffdb7e75c87fa0000b7aefb4b9dfdd43e5167a9235fdd18554be6be7fe4efcda9a354d1952d5594c2e2f4bdce342e724e95f10b6371cef11105639bd99ac6559cf39738c8ccc65730e8a68ec9ceb412b6fabe659bd9cfe84b0f7645b2e1a8865d4f453adea606d5b7c1ad7a0ac243f5a7b4f11d8ffd5a773c78e47812b6ee221d6df1553785b6165f3d23171737b4a219af3a87b64fa1fa3870ab4e256cd4c78b7c7544a7b0b80cdccf291eaffbacb2fd65c0b3ba5c2ea834a71811049576adff3a98b4352554d176f2e4bfbe10b8ec2d4730fb1909a1ca164294fd8c84e0a4c67e465996f6a949d5ae986f7602824fc756bb2baafe8b7f6a8243d427a0939397945a6c102f811bbf9c7329b624f197c05dbf4369b175a88caf64fc7a0e619c263ce49cff17fe9f38479f083981b29d36e999fb3997fd603bbd3e05398771c041eaffdfcfaf230a8b738e7a0951515e4cd9f26739e7bf3b342459fb877b7a189a43790a492cdbfd6e0add9f539c73a5dde1a11a6c1dea35877c75df8f701f967d1e0fda9d12a8b4af10704bb15ace603b01e92d5bcd539fd7c3f7f61f63ccb9d11dc6384df5b56c1cdfd9a5ab05094a0e0a7c770afa1bdfe121eaf3704430c61633d35f249f0349e321c8c5eef0d0104e81dcf9ceb9d3b6e96beeea36bd91dccd9f2e67f720e44d7f03a06919c93f2ce4791cf5f2d5159417be7a1bc9d10ff6070720459d256478241e20c3031eb025ea2c51814742860ac8f0830c6fdf97b0c02351010bd8afc00ff607fb3fbcfd0abcbfa5f9e33af6e537fe2eb91cc92f3674579b6cdd6df3f564fb0ff52b505f8607d47740adb5565963fd5875e0568daf03b762cd02805bd9ef2df2e5abeccaf6a2f8b3757ee49fc557f11d89fafc68d9f090af1eaee2abdac2433f4280deceb2afb5d65a6bad357e26e5b561e3ff73f6364cb908e79c081b5577febe74cf8b5724dfbd285821b8c37f70f80e2271c377300921df4125827c079b00f90e36d1f31d74a2f51d3c818fefa093047c0751b0bf832ce0f90e428180efe013037c075fb02b84c1ce77300605f80e0af1f80ece40e73b4803027c07a7a8e13b3844c377f00603f80e5ac9f90e12edf80ebe70be833bd0f11de44100be8357dc7c07b1f458c077d00700f80e1609e03ba88319be8354acbe8335e8f11d8c7280ef6014acef600a7e7c079f782b057c07816e7cf7bce861f33c7cf7b8e81e12b8da3d1f7406e80880e3c2b173e4bb1bbbda40db2970470e456aec9a4de0abee9410e19c2fb1d5efde12dc12757c8b91bf5a08eed82124dabfbaa20ecae57255978b02d54581e7a1baa6c01d5bc5067e1475220fdf430f6f4477dbb6437027bee00e7f237feddd6a320ed48b43bd36f714d09dceee5055e04eaa08eeb0f27aa4b07838a9f8823b3608eef0ef41c7231eb46fbb14752e927da5b0783d6c15469ed39d4e0edde53c0edd7159775fa33bd5eeec52b54b7669bb8d8f5517e19c7f96d5bfb5d6fab3abb6f1595662e3e1967e9b7f10b7ae3c924030a23b9d1c4e77393970e8eeb3ee543535fbaa1921a9f643b60f81acc3fb908bfc9d4096c04b20bc1e5b180fc775727238eedf54ebd52143e0efcc5ff3100f793a29ebc30ecef9cb5d244b0152b17ef86dc97f0bc35f872c99f038ff1cb20cc2934738f29504de5f66719d1fde5f6a711dfb7efa777a9be90f123892290ce00e281ee738be26e3f89c3b26ef39e0cba1bb9ad7fee21f35cfed9cbb10ec9abf9ec3b6f9874aac78a8344c582a831a32342323000000011315002028100c86c442a170384d1459f10114800f92ac546e529aa74910430821430c0102300000000200813430003bbdc2bf263da8a4f0944ef9db508f2d0a90b7a8edf14e0f181c42f4eeab7bb0d81bb00f311372a7cfcb71c1e63f3bec715be85995dbae38faba3a5a1f1010b0c429d8249db05d3dc1ba891390b5c2bf68057c9b201021e4f5b05d981314256a193e4821ab1470ceb4dc6be3b0ab56dafb7f40b9231db0ddac6e2837ab9baa9be54677633f37cab50c7dc28701f887801ee1cf6ef3cd25bd3a2600f706fb0317f04369d9a2a003f8155d692c5b876c848436700cea6e37295897554fbb730ab5015804725db67320b2a1ad73eed44ff9b23772e1564812ff648b1cb9107883a80a23604e240c3228af08aad907bd1a0defadd77828ac92223f76415b3f3bece3c11c1bb0657bda4ec86c76d84aefc608afff5bfa4864265acc3809c65e68a71742f4ec110e845ef5ef6c5e91aeed8c776a5edbec3f878c6b4def036b7f7cbad6f6ff677a10124a38773bd7235d3af7edb539e1f4b930e7e95ca3b2ab03dfb5fefb69061c9e7636b82dcddcc2e465772f0e8fde2b9103583505e073bdf3d46d3f53f73b484ce839f5c9e68a9e2906b55be32cc7b0bd873a54cdfd5791da4691cf61418c4377a6ffb137c13f3c3f5c6609f43fe461ff256f8083e3d7a524da26936a924c62434dd4cc6dd15ab3b6d31a0bde950af9c08654c2fd7cac444ec36110ff8368778369dfbd3df9334b2e97bb974744487a74a0f7028c0a65a51ff405e7d3ea6f29f3d33a5b8f0ff4639801e648dd22f75192e74b5440000642b134bfc9bb83878202170ac0f0ad11d9bc1a3616e0e8a785098e5e8666f61858d3c887da1a121af8be94efaf1278b880d7c4fceb8b70f2cf071ef3721ad44cd5346a2f44e3957361d03a006e3be836b291836a91bdbd69dfc649e8322355b5c057614a759278520c1f2039cf4e4f27187e75f1ee10e6f6e0ee1cb24b0344f473f0556449dbf96f23a9b3702301991256727e4f082e7358a7f2842ccecde1830c76169db4e50bbfce42739fde4858313bf031cba16a76758375aa36305df0e63c1f9b73d9b49b349c4148abef7eaf13747a7d8bc89bd3716dad7c9683032b90d2255426b63a4252aac31971d5003220bd64e7342149886776f3bdda45e9f4b1b5ba42224c182d8bd4af6c5e011eee6a2b2f31f166771a8f0bda80926cdd533a22fe869d95ab028ccc332cd3338a2cd7ef10a3aa53d1fadf172c76749f7d07fe623874cb7f2e28cea638f4b8f3a7637884f00fe52435d33689984b124ccc8396ec9a0c9cf6552fc627499e81c42627f672399e22c8b00ba1d72aada7a64e312cd900160359fa74d704130e0fe051fd6f1d1b3357e9b55202a9a7f73e0ddda122e0323f3ee401e128556f7a6cd89cd56fe3e6bdbe1a983b7b6cc6fcdb6f53e6f09e9b9b077c68d25ce26743e6239f1a37a7f9d5c0bce86333e6567f9b323ffbdcdc1cef4393e6893f1b32d7fcd4b8f9eaaf06e6bc1f9b316ffedb94b9f7e7e6e6ef1f9a3407004eaabd0ee692b908c825a3df98dfa7b67479a4dee1212749aa75680d0fe07988ebc848702833247543e52220cbd8bd173604253ae8f58dcecc389b061e32d72a4e595a4a8403fbeddbc3a1a569bcd55ef030392dafc3e05a942c3418ab35f1a144366514a7e6c07f67040b2eb5deecafd7f9e2f3a3ae13de28cce742f011c4a887a9b510239871510c37a761336762acd94da37c8d7aa4e6f9b7a0b77b758c62e00b4997f04de44639963d56cc133bea67d6056961c4494450b8de5ce5fa6f22c8f7fcc3b6a2dc2422d05d0231412b02d64f4761c2461586ae5fdb89da451e62d3a36274ad077f7891e5288816fdddf033937c6e67c7757830414c091bff0b8a72b9553a6cded2ea71fd63442bf226374f2a864badef11bd5eba19874749c78090dcbb355ffdf7850016b5b83a35755198c1d1d4849ca206c1cb3ab60f67766c1e87fec0b5f1a08d6cc2c5e48d7c94eb1c18aa0b165cd3a6d541756413d201ac569b9c5a6663fadf0357bbd8d4102159f62070abec258c97da55b01f77d31722b84fd8f4e2c2588b85c0f4567a352b72e1e02bf90530b02a972ffceab64fa8536e9aeea2a753c89ac1df576e3432062fc7437a6a34023712120868fe2090287a49f64d3f0708ca70f1c7289667a5876df86e5ae683e6131ab678653f2341db8a23cb26195391c69e86692af5cdba75463e6e12decf6faf8dbc08c76018db2cfc2c06be6e90a269a18d18fea0bec998a2514b3afaa4eefc5c86928c9a9c60e0c53b2e47f12f4a8f2c4ac8572c2e86b36885fa9825f79e8a315f9585587419fde7efad03f8fe23740c9db80c24deeac228d5469ac33456f1df0ad03265cc872455db094c31000cffd7ff76f3342a156cd1c1d132d54fb8165bb619d7c38a842629cbd275c1788824de3d5cb6f03aeb09907d6e4cffe197aa024997a487a3670172e16c8e871bac742025181ec49e15996b10a4b8580d7575242d3f884cbf61588df7f673c5680dd36ccfa1301ccddad086c02bcc1d16ac6c159ad4ef4212423950290e29c89fa3c27aaeff10adb88e33491357d6feafc4559ab0ea73afdcd377d06a020b72a3f6b2dfd567c239cb484f7aa41d8c5f5f09b4ab111a22bf6ce94c5277e136c302acba6e28a6805b53a362a53ed6710a3333a8ea44c75464e959c7299eaec05c248e1395591098861ec03525250c10ffe67ebc2954b3423786898df7b590b7009ce00682998a04cfa6adfcb5a418c77e16b5d6c0f6e902eb8b999e0a1a15759dd6d6edf8414a6fab32606e0b7f9797b27e4f93ef64794dffdaa00749cb5c5ba21d905457aafe9dcb7d65df21c05954add4276fd8861f0af7dc235345245bc0f3006370b89501b4ea31bd318d6aed1429985fdaaef02722aba434320d37bf6cd337f03b45310e6cd17718f259ce60afb0aff3f91541881eef8f4d3ab24cfddc86ca69243b77c6a566bee266e19d4e7e1423e09551ec7a115122ab587b02839a24c5f099e2bd93bbea309affd02c30747cc6953a89737f219d6eb4620b26c3c2ed6d83055ce13f0e7c2fd9b48922d250a65d7cbba9c0cd15a9c1aea1e931c17d9a6a0d198c20ec50b1401ed3a6d4f92b0b1c6e0db8399c59362ab07fcede430c5b5091c5bb0ce89a678ac1302c9b6cb44138cf7cd99903ca94b64d6afde7dd8492535523c9adab42bde0fa1e62a47064f80e2827a002323bcc470750330ce1a610c03b4690a51451fa26210519fd53c08021a0d906121ee3135c3dcd74e9d56ddc4fcb34bb4bcadff40f6f3d32a7476d860ff43c8fc46d32840ab89ef8fe9d35e8600541883f7a55a4e2aa06cbee145a3080f173e18a1150591490f9e216cbdcba22de66a96c0151eba83b197a22599b97582c1d49a925948058a3dd1e6933451ecef080fe5dad21d299b02909abfb4b09efbd3924e180ebf409408899384ccf3ce83d54c0976125fb64a966f5769366efefd399e571668f7a31f466fff988cdfa71c8cddaf2198ff99b04663bef9447790ff1b8f3a47854b1a0c7f9ffba66219fe1515e4dadd97b4fe091e7497bd4fcda1ef7cec9638e25f568c75f5e5e62aa10c03f8d8d0a74d493d22023f721a29e9bd84545059d681cf7c33f056db59d4e7399a3b3baaaa1c58870169945f5683e705ea0715d0a226debfe781d31991399a4e60a4252fefa8046ee5ac24a3352013b154d119b5be8ac6af60a4d26ea8a2813e62210d088f7947d59b687a49d263767fcb09db4810babf18f1bc9e9fbb5bcb482480b623610692c90e66f373820b3ab68a147deaf8ec6f9c169a07c7c60e0239777fcb0ea6a836372d1d01aa6d260d9a3ae347d3dd343335cbaa64bb3c389a2a8d2dcb1aec781aafc5d38e6380e8e0bb047bcd7520584ee6e7adaf245141b322963c7268cfa1092638cf341f1c18318eba1f57e3cffaa255d638570e5d618c6ea7fd0f53505105c1140f54b7365159a164cd9c970a53bb5bb6b3e17b142d79b54f2a8f9a5a828fae2ed59ab3a44895bc0c379094acf27fc85b1235d24c94d3454cf7b7c672c8486d6a5af18a0a5e984d6ef7da93ff49dfd349e2ffec34a642668cd3eb7deca62e318fb019ef54d5ef70112f0d574b831e0e86bbc0ec51e8ed24d21e261ce64af1171d2014df672a1943ec11bc25f318f8ac2328de8debc1ef243e24da23d6238fdda1c0b99bf6b2cdb4c79ccb03e8c636d291cd1eeb183035dc4f243340f69417013f8a779d741b2bc866e0960516938a24f6906722ad83b24050d52f5805045f29d993820168db13cd4ab14647bc36cba17b0926dc86c1136957f5641088699ba210aac1a532564bd48b2a85eb5097dc66a3bab0826cea0d81ad917a13b29612a63498cb911c467e2a1ca92787aa4f4f42714397e6d9c0588ce5170011c078bbbfb6ae689d495a26dc9321479543ebd25eb4f54d4482d2531ec0712a8abb76298d460c32b6164435820f8ada15f0010dabf6e204151dbca90735ea40e8bdc0917ce1cc2b787e107aa51d9aa39412693121b1a402b87fc929b4f5ea6c2d3ec448d49501689a97f484071c65a5e7dc01f0fd546b1c266b1f6d4d98ff1c241450255a8aada08548123afcf1cc00f2b55805b1f699d40a1bcb31b5168e5ae490b8c54cc302397ac5a09fc3e9dd401a694bea829407025c6d0daab8343bb7e8e91ccf64177edc1e2d0b937fb1e6a6fe5f41d95adadf6a16ff2a40e80ef2118abb89b56d087ea0a51e7e3c6695cba8b5f895058f32584a5f188d566b471197d30bc3c237efdc6917284bc8af970e8ea99481783e415162ef71f79c93fe2bb69d60f6f268fd841553bdc7b432aa9317141490cc12c4d3c03a9571ed50db528cee52e58be1812fb6ec0db835f78bf8edc5437f4dc07d893e4fab5ae3797a9c50795198e0b39c170b43ca685cb869c06f30c644e78151a8b99ae5516adf8a7d7e83d8880c7aa8a60fee4296ac279e2d70396afe25686f239298f1b391317f88f61db7bf5491f26f6b47bdb6ef2fd9aff89a8f377a8a599add1684e705432d3988c8ad9a432b0f380ae7480130ed3dbc5b96d5dbdbf61d1e121515cd3169d46c54d1fe7dd446905c2b7668b9a0b8faf592402f3318bb81bd1ed0d183c6e86db08c83c68536c4b9ad1d548253098520e1153a3ec20e4bc59709cc6854f908ecb338c5791b2e8206cdb6490e3c3b06449fa59fe7efa9b6c691a5135c0c37bdd86d2a0504d285eb9750853c3e9c4176b764076e4aaa063d803c355f8658398d4c5c2fb77415cf5ba1913e418cdc81ae41ed6906eec4ec1b070b2426981b11a174488efb637702a2c0d180a5d6bb81dfd631de90a4af364a837844d1c5706360a4c03b823db02c5df14f214216fd671ad15570741554cb62569925fc1f4c523a8a14f52bab558e10d4a8ac22d25de43ce1a1dec68490095dc3c2875f7e557bcfd783f8a8583370f76dc83bd795e7887605ce7685630c48f4f6e553ca2d0003a42e8c1809c178812ac04bf6d17701e301b6f79fc46ce69ccce5bf169d86a2d97b0cca02f259e52efb54eb0c9809c4f31e84e294e0e9a3026ea88839c96c6b1dd9db0111a6c1016a5b2a11dfd0ae118fda5a40c31ac86389a332d2e84565966ad5a03f01597ba0017cbf723e35d77eac690be25c052edd34d69a474e0cae1e46897b4a2ede78e3f62c31d10959050831ece719c82af5677a871198347bacc53343e0bc61d8f3bd8c87521a769ffd69eed79735f42923e705a62b0be9a27f14c1c449d4c0bc222bf8493b8b0862244b4963d9bef7b709b76c0cf5a2cf9f7ef9bef9fd929c426062f95d38e135e38a07684c1ca837faab76c56be0acf9c718de00c05781bc99212e2bbe2e1adb209c2fefd298866928f2d1067a6109bca07022ed1ca06bbb12464b9648fc6963e124278648e07dfd888a62747111c114159e8a25582c287da442c2fb46aec192ef7faa2049e77ad0e25dd5c36e6d03950f4408ef727b8a2d2ff81f049c362d18bb1c64c4957927b4ffbc605af8d05f6a87813baf35642155403311667a032ce149134f6d4f37efa149128bfaadbd4f7b395df56fb558f852be5fe1caf7d4c38cc2d1da8c60afaa439971d3bb5c207bd73b774def5d15b69d4ed5e5dd949fba750101dd41f1342ba21d6b845103fa7c1527609066c58e6d1816dded1797b53257a0f0b3ca1f3e08fa161cdd546fd437827a0c5ead3cea69ce7e5fc84a22332355cfe90ca17eb41f942d368a31c20bd45bfd0ac70764bfcea18ecf805f424332f22678b2eb9654d1f039075c67bf9f46afcc50d92c8ae97079aa291a413e820ed971516d6c4cedb80c34844ad2e66b53750a3691a18d3b48136cd971ac3b2e1fa469c9c26346d585bb3b59aada161ad8c6a6eaa476d98d1de8c868db5c4a45106efde45e2585733e2d62808479b1943f5bc4d0c3df3a74540b2ec119d33c099720e58bcb2dba109e80a46f721857699abfc137f832715f98722c8fb125244c1c965c99216ae6580366b13f919d0e0cecd3ac0e5ee15a8b51d4895e210e58319bc93c54c4926cfec773608c320a85504818b84be397dd64300b04a111fe0f1eaa8315bdd1c00abc9ca1038db07803299e6018410851ce4a1d846acbe8cd2551fe4eef018777b272d19cd4c381c5d230134517f0d3c2e700b7f2e2431fa1ce4e041361fa8a6fe645a910084b2706866a466a8e5e93b671f8781331a90310e840ee893ef3d829b603f9cae580ffa131ab5cde4749744485925645e89e69690f2e70bba28ab4f4876fd553125ecb272d3dc335882e6f1be8cf2d5770bc5053dcad832fb233d45a1e001ee960584850143e9318e8ef033689f44a8ace5328d35879b2acb67aeb708a920e99a7bf3d042a5b32304c665d1739a8eeba96f0c8a5250204f0efd07970f8e411c6bdf09d70495b5fcc5900a3babac455dcae3e224a94f64600992193b86f7b5bc4e19d1cd0b3f3c9334a27c98f086cd3f87a3217a576adef1f2ed27590e071d99c5c8034ffc9241b5091cdc77eabce8f99defe29cacb497b6e926687862c2c4607b622c34a6459b5f23eeb242f61a235b5e1352c42b4aca2bfbb67cd01f8e1d084338bab2563300fa3a9a02117b50be545d7e82da223705756f645f9a04205a87bcf26e4fae0cc0d75eda2e77766a682f5c491206f55b1d29d16051cab198ce1b46a42cd7a04a2f6c8e06b10913b326e1a2ce465e8c54ead43fd02bb25684463811b3d4fae051a809341081aa368f52b7f9582c7b2e2c7d25efe6e6d94adf7454c289f6db0ddcb4b7d3fc3bd1216a16f270a16401e6144feb287bb3c8349ea24196885c953138fa42eec9fdfccb15e63d90da5b034fb63a3208f042f2538e2fff03bbc93397662dedc228dbc6ceca466f5796a6221a0920d8d28b9750c7ad3e7911778041d4aa343b8293efeb8e964534b8bbb999e6c500344bc007f0d2e629e873a43e6546efe180dfed1f98afefe30c70b97450d4590adbd436be8fb097ddccbec0aaf76e6dbcae878b01f4c0e0efcb620b3cb0e361a73e7eb65d7789349fd7044513d6f7982b448f473c99a96c1928362219f0f31a9b2915f83b051d94aec7611273e7cfe53e41ea5f4edf415b17a4bedba9e22eb8d67500631f25e27ec5f21a3b73beea26478fe5cee2abe719f2942191ad433051b78e1065393c3d8b0854aea9deda8267c205fda7b71fdf9a1ff0c7d239196938405146973f367ddbfd89c237c6364eec0de1a70fdc24eed48a9f5ec904c1ae06bb57e76bb717bb813b047c114b9e02799cb749c003ea1288cdf4c486d6b7a039d0f0d7b3e46ad7f3ba3a2bac4156347ae0d3c88e89eae5ae4bf85a5668e94912a33e0908c9d9380a74fab95a9ddfe6d48b729d5fbd43add9a56671823deedc01b9f49bca0e7b006bff7e3ef39085ffc92d889f607234187fc7551301f225fdd8cd698c567c48dc7052a35298bd440b3c4d4a5b7dbe996525d7187a9e4742d348ea71f9c29aa532a0cecdd54786d6b61ad950d8d61b320b2234e961202cf3114bef60d5762ceca506938e1c484d283d2765d8c1c1f9af37bfc1a705d08295d238985ca80d3bccdf2617d1154cfd4271f00080057e6b153745fe5a7412881f2e31d35fb45efd39b99e4911174b87668f908bd544be5ce3c43c3c8491b67ace00384cf830e0b529741bf0a4027b0ab46f428e054c92e11e001b4ea804404f539831902405e201c0b8844710dc01438b004636611d4005514824808e14381118d209e52890100c424cdd82487d08f30178c19b024a071cb72a34fef62ce6be35c05601273d94bd69b961bd5b87e2ea3fe7eeafc43e390ec068d6c3a870e94c2c7ca68d277f758731e6b6cb57000c8cbd047c01f1be581c187b5b7a52af5635d5b97a1f442f5f391e87dcfa03cfe8902d9de50c5948fdf02a2164782494a608d37236225cb440344ee430e3e54d01426372d49b9bb65726247463e370ade1caa09090d42f946b8bb399e20a65048f84f96658df2ae8a0ea2086a65d05f2fcf9078d80ee9fba4798d6c6d7fcbeab915735520f13cf2d6dbd1c033e7a295328ac300190e9e84ea051600a98b4ce6a65be524732166ddb1314f208bd5f9f6a7d006c0472e1ccf679a4517e800991828fe5b35ed68473b2da4c96af2cab404264759930264b4007ab983ccae3acc2cd01cff02d21d448e79929675397ee37eb2f39b1db796f5cbe08d637dadf216fd96068f60e3de03c720e4e2f6062ddb594c9790009ffe0bc7ed45765c900c613b31f0576fbcc90b0ce83b6fb3d17269123d9d3ffb470cd53f91af8aaa10b2f23860c9245aa9fcffe659c0c3d8c0537fd055d1bad01e526a9abd3bf7b401c80b871456f9a74eec74d4d7065ec751a43fb6d24c36734be41e8d0f53167764cb1560302b0881fe80e01c70924e601060c606b914e9894532c4a3e18b757aedcb68249573dc629655d83f9163b961973b623a530e118360dafa18e04c26f3061058391e101f1655d2b725161a0ba1df17860bdaa2c1aa8eaeefcee6cfdb17e565081f7e372cd09d76220094a0144d7fcba5c7d50e335ebcda748e535afe4d4e5cd7acd4b4c299252cde94acab1a4efab6c3d2ff611eb3c276fd43085ee4f508458ee107287d44ac0b027c5220a8bbf7506f8e97eff22318df01ce8a20e4e41e40a35928e29ee6c4e987d4fbf0ca88ddf1c14397b22f35019f8d05b106ae2534b51c9e806d003d8a5b46dcd9ecdfd55511b4415c018cae9a72a9e7c262287453621c4b8d5a39db7bd187d4689a87d386782aff9c5c89434fe8c7650f0697c9fbde1ab4b415fc221cb8c6aba5122e87109a69c216bbe36473d75545121f30f1a87c35a606d32ab06c35ab1f8a95a1e12eb8f0060c8daba066438c23434b2736be98484e05d165833fd5332a061b919b2a463320cd090ae931a67045a266181543051a8c515f55ca1038ca2c9a5d4b9adb88177c82fd8a2b67dacadaf317dbaa9958320c97c54625f604d391bed1c5efd1959082c857cdd44845c24838ac934a8c55883cab6006855aa802a8eaf53d24bccd256823f79ea51b07e5a7febc20338d6f70c1242ef90ab820f00e788a73d2e2f2e208cce0e2f4cc2b981d756d7b973feffc9c4d83484d9e2ff7f9e41e280e8279980b17d545e9ed9632387da35dc09ed98bc84d432d06a525329e5c3259a503bff26663eedff7789b74c8bd499666e960cf8b9c3bef906f8be2d49dd67406e645cd090ce4f7df7270fb1d27451fa30934edc42a5982e92a977310d923b2a2275811b14f3b74088855ad34797b8e1ed60f4cf99fc58f08966431ec66a12444ab03cba6bbdf3a1616bae3f7975b0300c3afff6fcb8ea7a13ac457493cbfc25ada9e32e982e1a6cf76da627972722514f83e817900435dae3d72f0663346b8092411396cdb8ad5de5b35ea120dc26225a0f6380bde52a38f989a385fda7fc51e5ce41838418216ca61534c145efc09cc914db67080df951602d299b203f23edaa1393a6ff19b3f95a3d815c4cdb5e12314f0c7b09106c5628a65f358eee9d96c36367b087be8f5afca30cc6a22970ab120575ee0a7a4ae1f5ee4c6e8a7d248262d3c073d3033285c7c7222d28cb0cde4c95f5db05f47d78c7ca98184c57c4ee38dcccf2974f8c401930c595ed605fabe148ab80a091f705a59d008311a68817f7fcb459f95cab1addd7a66f6cb9208e8804a4d9f647aa425d8ae34d349d0d7163a50f6d0034a80bacb6e3e297d2c76b67014296f9b611af19d33a5f7ac8b9071e59f24a6380d231ee724addf42918256c435e158408f0ad16f65af1c18a23af345141dfbb101eb248ef7be32887def68029b296f922bd8f931572e3134023f61ed74d7e3f88e47a3c78fe32d7b558bdd4e572fc48744320b3167565e5a052149bfc88d45a2548b5b3330f4481cfdcf39b08057a3330927b9c31eadeae3afea070944d1a98216dafcb10cb62330d17b60f1e2efe4ecc34bf40f54302d4fa9d1835cfc9157ec4b8ccdfc3f5c53378d3a9f3121fa098d0964cf51099ff941633a722e2e85e7cc1b32e287ef56e61099faf9f76af095478c6cb2e79b30edd3f1c8cfd215a8c6a029929676539da26511254ac1437087ae780b8037daaf49a5d89efe1c27010e95e20b2b039713502646cb3b7af3470dc553cf16c2110ff22754f74cdf6ce0497ce69123b09e44de0ed16358cb7a21836171041c028f87be00cfdb4595dd519795d03c20da7cda46f52d7596d49b702be94c7a2f588ae2b64ffa83ea6ea5b20c7680a5a730ff9302f5ab7ff67f9320265b1545a079d87c2c55b6075df09b4d8057c5681c659cba1c2e095da5980dc9a796a3ad5e31aa20b6c03819b1580e42e64a7981916c06ab03564b00b2bb7a144f4fa48accddb2d5e7a243a14be950c8f501c9452523f7c0542ad5b745d7d5fe421095e970a3171858b95fe60f5f1455530f64f144206952b18306c9a684485fec05d654a7d00c812181757d3b9e149ede3e3bb882f94de0ebe65d687667443d16bd1597bc4b2b3c5d868115f44b96993c17732fc40ff3d153029454b282701d726ccdc1291fcdd8f780b67a32edee3fddd333b55cd12632696b16e544e5cdaa35f3f62a7a2424b01cec9ab44877472458568cc950cf6803d8c4ff9bfd1f91b56ef78258325e56f2b4feecfed251e6806e13ae297ec29d846980502f4d2fc1575af51d711cfe18fd9f0600a00ab20a566eaffe73e4a632c67295fadbecda3f88630b0f1bf05c8a4d4e432235f8088397b3c4a70c1e68b0053a6aac49d0ca0cca0667c806c1563d906ab359d1c73fb00e17cae3beb594490345015ed3a716690167de40b51b6d0bc5424f0f359054fb99c085200df09281a48e85436a1887d7cacd5cad86ca884c1dbde5d3b2dfc18b79409c47fa064d452430d98fd2b8a410b450afeecd2416440ae8b37ef7fe7c15115e15492dfc732c8c3b634a077e8964cf2a2e8fd041418f1e0f455d5d6dcbb4faf9c404fdce38fc9c04b005682c8718433db8ac3746078043e38a6cdc87c4d0eed863f3e83c4bd5c80f71f11ccb031760a1e51f1e26dd72117082532602015ee03906991902068f8e20ac22dffe2a4dc379f427b517ecf64b441c12f170b107d4e764e192b55c50751de7d08693ea8ff5a5ba5fde86a900073a364c59f6e1ad4601df3969148b778992a2eeba4e16fa534af4c1408ad2557a01cd361056f387fbc737e796e6395c55e4a32fe015394d2b1c8e37c62990a53180efd96ce5787e48107fcaa059d66bed6259f6adba40791b40f1b3f747fcd249f0e3f0a200db5a3d4c8c04ebba1bc104694d2b423210692d271625a956116df84ee3705105d25ebf579a1bf7e65371696e9fe48ef51940ab04260b98faec806eb5e13ca18b14a15cf428c42a509e13923b0f91af07a1f45f6440c99c1535c2bf2ef405f0b3610ad8008c55b3d626c115826e84529c88829a4e39c5f5a35426762ffc7e6aa96597c7f0ff9561507138fe5f9e09dc34594860021f0573228de54d93479887fab4a1878421bc3043aa2656257c602c3a2d76e668002c433bf47b3bfff559ee59618fce5994f9bff3dcb2298ab2254d6d6eec3090fe0be78b4d1ca3a89dd61c1bd577586de639da21e487bcf03ba7912ee3d9e840a2532d5f23132ecd9d551d7246edfc90889be915813cc841818f69638c14910d7896b945206808a481587dd08358b2113aed8967214f4794584fec412547aa5dcca04f4dea2073783a70f74e0eeb333324e1120c00a711005ea1621811fba200411c97d288bb18c75bf21c1a8dc93bd0979837845020c5903de7452a59f8179e66a46b3d42c70ed784d14c239ca8fd129ca6326d5a046b69d31cb056e846058870ff8954f7be279a85e0c6d5172f0ecc96737e32bfb83a2f79af3dcdb57bd988f2e32739ae2d04b210d530a24fd1701d03fd58962ddbec80e05dda843323f09b8995a07a49115e7ed34861df6e30fe0f6c1926797a38932a1d07f9ff2f83750594de88b5a0125ddfb38fbbd1b0146156b1f6b89efe2f53295888290456e06c42eb26b9a7560079128db79138d7cea7d12530dcd836da4a1e8e6ad416b26e8af1a45448798fd787fc24c5973428407de66a82745e049b40c391b0b67a853b0eb3b19359e1051e42aa8bf47d1889c2f983fcc2cc6a6b490fba577073517e3c2036c5ceb83c3ca0afd80b1492377973e256ce08d3dbb49373be673283a03af25518fdea09e9678c1d9a7a6bac0202de0213d7b30958f575341c2f66f133047eaa49a413f327dab6f176663bb9ce1205876ae541a429613d99894e08296f9bd3235f7387264c15f549e28cde630dac9649948d0d95280fb3a043f8d25a336fb351d6d492994d4b89ce46a8aedad30a437e16608d92c5c176eb4de9095fcbf4b29e053c2853c575f73463983eaac3870509b23164fb3ddc871195e157eeaffd8381036a8726a9b1b208368bfccf0dc809a28039cb2fd73dd9d4bd30b7aae769c3e4d9356892d9ac6944224f82802ccc4bb851fd6000df4f52d286fdc1affabf6e26d1bae36b67cd7689fe1d14c51dee26e6682a89a40d5516cc0c0c68b171881bfcf656bda325839a2589465d4d39b866dc4926f341f69e2aa494af9f0597b09bbf92491f92302161d1a54c9428ba0c2ad3e1982d06b87acd00e7afbd45c4407f14aeecb8ba9df46be7fea5b36ee42345c9e8c140ee5c7e77d1114721cc08cdd49a2d64a129dd816270bbe3ed244716433f4b1b89b41e2a37be71ceb57346f3bc79e97539fc8484066f4ad1a6d45951d4583ec0437a44a8dd8b3f4ce7ed4cbe2ef150d68a712c8f6c391669de52856e4c34e5a6b780f855de8778296ecc7ec524874343de43b1d1ffa6369eb56456c45ceab701b2246a8b13353651f3d17dd09f0976763a412512c38e5ad86683f05d2a913be0b2d53aa3b18d09c8161ec2ac9a8b41157a4fb8b905ae1410c61749140a9610c2523cdead96810c6f20ac2f43494536feff6fd5e0fd95cd488aa9acf95677fc7d6a64fa8a5f43e7ed891f157ee0ad7ec9031e6fe58b215f8741f92636242e717c6d44eda8b19b27b420f4c659892c222bdd1ea44a197813f57117396e37196f4d1fcf3d892f7630f2cabfea6c807a8caf0c47a888e71c9677e81c239aea5224fa147f350a56b83a5fc2fb51e10e5c3c1944f8ebf5669c448391130de8c27260315b57cf0a9ad393c58e2b48fc79a98213d0d63eaa7e960b9f76c2e7831debbe525872ffbeb6a86ed33889c568d2480da30768c3fabf89f3a8e92eff43f0a1ee6c6ffec023108e2a0c87e5a08f2bf19ba9071158c5507865ea3d5235f61bb0d0d6a3a154c7e7f2934d19ca1a8ce5226bd10bc683b49f4f3ba259064056317abc448153fb688728fd49c1dc15050a668f2f069e0c302508f59a32a8bf80e4aa2fa1cc9435243c789cc67f48f7b748da8e4ffcaf6a9a44a62e28f2a0baa0d90614f3a281c123d8252dfbcb49140f18b0505d9fc0dab6be41eda901f29ed4d686724333b18639bf0d4e53228ab4cdf7c8bc87d739d2ad3f4622a223c76d6d15b336c9d2b081b3c4f4e6e9112d90e31fc88a25ae27e3888d143287f6d4c133b240635cf890f8f9532864d89ed28942c14115a8129f284146f75f1e8b8be2b3fc93345f40b1d1988dd1b8141e7048d7e18a179cd492a4514f632c831b71b5cdc5d2c296c08e3edc4bd84bec9c46ca631c77735045e9affb18f6573cfc25aaf1d50822dffff4155adb9908befee8466e7ce31f3bad059eef0b93c72b9e158f06a87b77e168b2a67ef910fb84e5b6b17c7eeb690b873af404114a2a2be9f46e8f8e1048425c746f78fefc731c1ab83cd6d7a91fb08cebb99c9a56ae65739f31f057be9f46cce33d465c8d65f478b99604e176b6aa2a09b1537fc73a924ee431cf7d8392dc43ed6ce01a50ba7ff4fe62b53be902e03ce94f0b0e20988cb3c19d00af70bfa220601dc23d3bd6faec1de96ab650f948850246f3a8a3f75810dd8fca430b89150fa43e40aa42a8b21aac22258be0bbdc95e8f78b686e2f22f1d551e667cf2addfa3be4984208f5eceb8ffaf52c5297deae7f811f4c22b197693421a51e0e2e8356c9ad14f2b93d7b019cdc97a4d8725c600914448eac91911eb45c9eb44c352ae10d1e09bec9a80f476476dbb45110411f44644636f154f6eec5eb1629ab7d38e0b0faafe90ccf1583fb74c1172eb03d76546d99d7f9b4dfd1b81ba571050775d56ebb638056d9e2d0c5716c127e0ddef8018d47378e3c7762863ef7f87f030558f375657dea42808145802ee36c5bc16d1d97e32c4d4da1c970e9c2bbb66df29f5dea224b17b98ca9eb4703b51db5a0a8859985edde10d9ff757272825be42cc0a8109ae62c2c801a004c7db08bbad20b84195068d6c4191ba846dc1b9a7603e0c2c4b37c49d0fd1ffbde116c8a191bfb42595fc776946c8434bd0623078c6fc214f99ef9ea6ed35a5cb2e693f074136431dd27a8478c86eb3e50088e0abb26896ca5907f4b1430f8c02126ab4ab5a9b8104608f4e051702c98a216f14a207ba881de28c8540b88fac4d55fe1093dbb2a82c135f117f6875601b16692cd7d14382f926b8c8d1be349f8742e7462c78470cd062897ae19ab3ff359f9166305c51f99eeafec212adc67aec7837c15f4bea665f8f0afd5088b8bd3424b2b611da2bd47badf46609df07818b4d0934e8e951790715d7a601fa4ae010800dbbc1d00388f0861732e8c682349b0c0f49e65b407e21b0a08e9c980b70d32b47ffa798461895bc25f500ac3e4d5fb51d741e58b1f9a167bd5b9945a3ddc09dc42c67353fcb54d1319db3aa3df8c33d6eff9746dd3eb57c776d973ee434d337b9686121737d61ae79f760fe395e8e0c1f4b2bffc23fe3f628aeaba0f0abf686c981aab278e60c908d99a56376604defae8499dcb9743ec28bdacf0067557d11081b838261ef177d3cce8f8952f5aceb93ee5dec05a9b72b0570740849f14206f0f6592decae6798ef6ec2981794ead1a47d797951e8bba032fbe5e5fbc0c48a78764417561a9d163abf62d10749a9f8c0e5fe97974c43a3e22fd9b183d069094736543af9707fde8c3f3c7b70e27886391ce6a50402115338b572028b6780dafbd73c757da226163d25e60fcf33dbed867e44c71837bdcd48fa8a048a412f542044b1a57cae3f193ca693860d8c5a99ba178a2f9701aa638706080c7cdda6d30034eec565b8c9cc0a2956a98c6cde78d379d830ec1de07b796e29bd05fb3ef194f30fcf95f4a014b4648ac43335a442574d14d28bcd5cfade8b47f3a04528e3df87fc40eed310c05c72ba1084fa11f8fb00d328b4a598d2e1f308cc157ce34e372dd4a4ab4daa51fbd758a694c0b456faa04b2dfa8fb62e21578df94b8f5d7c17ccf69a7b1e78d5b855aa31ced252b4d8499dc987cb814677c6a2e1d5b0144835d35d0342391b2c9fc5675e0539b3624e8b70f0985155a0e926c89262b2a0dd9de344bbb12de55f4c2d831f8ca57ba3d7aafb0de8760ad4c2fa1dd68920c5cbb781de8f50588987d9ed8b9a5a31effdb2c7c48a326a925fca91fe34e81306ca7840bd5ed530b2d3da00b7fa47842a40cca56172c4b75e9b846e3e68b28ff9bc93b5823ed0878aedb3b3da7ace3011100281f4833bacd9e843274d8c61106431cd91683e8fbd096b0c8dee8ae9d41530e0c3af3ea547e57ce92dfc137d802ea04c069f1c7f71befb8d50398628df008960b26a1a648986d613f5575b3956c5976a3356b09810a4c6e98a1cd103d5f73bf68d0db59cf20ce28757b325444c563096dfe339d3c639d752b700bc14db2309410451bc6bb7cb7e49a24295c90a4f4942d1361d8495008e1e6c6a82cbd267a1b17a6d8884f0b3caf3d567dedff845404e6341615c74c9fd3b5d3e00f4f755dd580a402494d6241a86fd491401b118df523afcc24b24cadfc49654c1eb0cd113b1730869b3c3d72755c9449ffaaed01bcb8c0255944f86113b9ac94dc00141556b265b584924ce444eaec4baa44c4f52adff27555cda04a242ea2c3bdcf1dff2d3c2b05d4a9595ba1b2834a1315e7c06ef39013708bf2c36ef52dd5d3ac2c4ee9defa4336dfc5f1d637d300009a91ce147c742580f634c27fd45af1dcc4bec61aac8736ad200ddb153d459eb993179a5762271424842978cc607b322c03894225825b5c87dbb4de99be1c20b1f5bb5174483e64180c1c8e100a345857e695434ed0697c127aed7632bf64781a4f42efdbfef0fee4dc4bb6aea5329818334c38edfb5cdd376dedc4b68787d39b085c29912b50d5442552a62cb92041d97c954670b009fc6506502ae4988727d4fda70302c2f52611dc5874e682b6a216f0b2428a871057df407640aa4cb329d0ac730880b9908b7b4aceaa5f92edc6d362b0d4aa72f7ca1731c177aa3080f93881a6835cb1a1be1ba0c9750e2bfc10c57d91e46406eca76b4de8b2e06e076058f06c02f30c46b0af71d01560bb03729fef4c465afe1677f13172efc1b04eff5272a84e2b08d92e1a9f88179191b2842fea8b0d5b776481aa73cb297fbdc4664afede8631dababb6329cec279fcb415a1cea4b146159c24a3bfd1448a4dd15e7dd9df0614cccb864cfa7c68e9a1333e2467f9e4446b03500edbb57404a0eecd08f1247a8452c697775eb99af91c4c799861c490c2401671896b96230ec50762a6ed9d311146d9f6b5678b7ef88fb463d1299e8ad3e5c814405600265d4d10c244c1716db39659eb5f105f1a6376d9eafdb48a02d3f3c4d6e45bb207ae473c55d77313548aa64eb97a49bb58159f5fe1686bc7ad8007c93a5035804f2b05d7ea447865845c7c73f6996ee168f7958ef301bf4867a275c95d8d4c37e7f69986ce677822eb54894886f12ff924968ce47cbbcf7b25228c6ac7a30c68eaf14c9f7faf4458d6544c7564ae0909c13e0382ea518979c67dc96a73a64ef07aa354f7cb53aa5583732c54389cd7ee0dcd894b565ca96db018139a9ceb312b0d7e66775de1f9003c38b4c68210f6c3483849466794713b3c3c46be9001ddbec50c74541c8839029b8aae8912564278165c0fe124b87577cce30079f8e3f1f73d2c22b72fa98cb0baf48e27a1ea176ed20599414c4d12a3dc3e1c21d584527a4d2477c5e0b21a94d102877761815a21f829aa012f652454e14278246f284bf5ee96ccc780a986dbbd1bd150f9c564503ce8aef91b05e60e16d926fd59e0589ff5bfd2d42f9dfeaaefbd2c75f109271d1068f71c57c08f675d4d56837530ceb57f5e87294f951c481424359620220e867f95f407b2f63d28dc14dae1a5d4cc34d0f113da080207531035290ec9ef040bba745d148ba49962f854749a55e45c9788aab6fead516736ad8025a5fc63e92e4d8c69edda99e098a9785bd0ec8d7f21c024e29063abec8c5345c73a127f8cee6c020f4e5e48a2a1a0c6fd2d8b7ebfbc17e5d2e3846213f862d357b5d063cd20ac64f11fa119e2be4ecdbbb573ef290cae652d6538430ace4be6c901973c571c75d3fba6e0f7599e04da256b534dd821b4a0ac31ecf1b2177888bce6f74c796911eb660313b1bc6c741008acd0c088535da93bdc8c51a0a390a26c9c65ac70e5a7afc89b388fec086a419e9c08bbd1a5ef627f87af9ac6587a1988653fd6a2e4df44ad7fe1c44bdda46300ad05f29145283270a4504b87083d15ff538a804bc0fb3b18fc46b5d55c8c4d965a8ed80ea75980865979ce4c69e0020e78050c149ab007140e5c186525a30231dab690c92ff9c5af2141cf5811f87fd81addcc09fa12852fd50f3686df41d1c161394b00b87586a67e220c2b0b3ee2dc82f31e0ec0b0d1b31a7e6523edf4a69eeb54ca07c6d91f1ad384d18b0803169a1212643237a0a01db65fc0cea36a2b4f56192db3d1b557c56e85cc3f8fd63010ea5979358093a0842388f2f80b9da40b8f70f473ee20f44a899e13925f358303e603e6978b8073c6a5263ff649a8ec2c06fde3f988e5982168bdf7178be974766b516d312c4cbc5c3fa153c9d1b941d2c10be3fed8130ec820e785323d05e31cc68a0a5ddbe30a85a830e831e1f26a0133d6483300ffacdcbb79ab2849de617fd0f9c6029fcafa12e57bfe420010560ef8861906530e589548c69127b7322fce3bcdd899da7d1e47b7d3d0cf093db181c9c1096760976ccface6dbd19e57780666a5bd7f51364b731c5b08cc0c20c2f85f44b2118ff6dc6bb498b35b2a24c354df54bb2228430b2f43dd09675311392ab753368ef1c5932296cb7c4f7b45a5b2776012b9b52fa943b0ea6d7abe09f478cf3207b567c106a988e357705229a7ee1714373ca9f1666dca0e8bf86d70a5bc68168418d7aa561738750ca38357ed2e9c7c5b14badea0cef976453fbda87c491958a7bf9b332bfeec1bf65da27124079daadceba65fafda170a0ab00f12ca8af929c2cd95ce502a32ecfb7c0a6b7bed49c7fd0ab1b8cac78861694fd513354b6592defbcddadbbfd8cdee8e4184fd73cf9ef19f230c6e48899b91688f731dccc91ce5905971ba0779107da53723a7130fa3c984623ea27b3e7164f4409918dd16a3ec41bfb32211967b01b800634280d01aa92ed734d8f277c2031532567bf623642866da29cfafd38015e2bfb7fc6507fc6ba80182fa7af191b7ce470dc392a50219cb91ada4828180ad2d34741f83a8d1687d3b522fd53edfc122f035c689058691b8b68c28e3e2feb960cc90b5fdad2cf0063454c98056fb15f762d40ea5dd922b14222d574d4e0b87ec437e01010b8921a26bc3483357c81239004ad834996ab6e6072de1172d13b3a314f8483f731105c623213a5c561b2e2036cbedf334ed7b22f221d702a727b40c27b04162623be80905e7cc9a4d651bcc7947ad49b11b2b945ebc3c366ec451411304206741d38732f108a3d4f6c90369bc1b60122b88f935b1d74e5c7a6c501f7dc74e4030bee3e1d05af36e55dc58920df7354a602fab0d5c382c221070dfdae50918a263294749bcdd39b831e9d814e143667cdcade992ff6e6f8b5561c27448881b27fa8ffc333e1c5e62762fe753ce73f26a2d793a11c905a0a86741a82238117d246ae47f8f42bf65f3111c40222a8b89962af4259d12b6a90656c9cd752a1047a95f7614428fe5ffac7f61f567570c5462279f2180895c0c1608962c328c871488d8fcafccb37038aed4500a23396fe6cef0d42c25acfd2f2831820bb2f28367c86da23f582fdf99e80bdf05443e3cd08c54eaca4285aad8e413c69d8216bc4866384ddc42a6ab965885a083d88d21283cde1294dcae04f45487e52b9c1aea9d7cf24e8b0c5a108f09050e6e59d1410d6e7b4168ea0f7a2853c891a5c7d431b50193ad1b08ba2f69d9ac9fa57b7ddf5641de14606824d2d133d47a641d2ffda4fbb265139e28733899a45631446c5050eee5b2e8a7df90628f4334652126d874b6ed888e926d6174718dacca2a47bd9a766efc17302746d16914733c7b529a06609a1e2511a1c73cd79ca22bd62f8651d5a3f66a506accde7e704b8bf771c41e1eb04c061f364189c4b873f4e6a186c660b858102566c91e83f409ddaac4637e5e314499d009188b7b41be1394e00c7f7b3b18157e321e6525dc3d08adf567363a932577de6aad58ac56361e4c412e5214abedb7132ca68c86a5fb59e942a24b413305f8c0f6c4a0f52eb387d8fb1796a1da74240aecfba0322c880cdf72f1c39cd22c770e4cbc0b363c3c1157263f027249c500f1eb004d598da55862781a4f8122d70ddc53df28ac61da37b17d52f2b274b86d4f2ab15de37b32db7a2d97ba0d21968d9c7c0efa2315f79ce7d14a6b904446bb3ca92c827cbc4218e9099fec778799c147f6ae37083f74c5a7ce9a87885be5acf5077e3f093e6f8c24c0fe087e34af71572dad2ab3085465397cb6f0291a61f97ec23c9703b2c22d27d4b99d6c9e68f0f8740cf3a0abb434875d1111d5c7fbf86911789f053d49f3bca44652964800507de02473ce59b716257a8c059f3da51415652668b879f482db041c737ee41aaef84c3118faebcd7f2af42adb9947d13a9f568255bba055c9b7920fc636508ce79a9b98de6a05de4a6a506fb3d8b620d1002b981df8b07aafa22a099a2f84211a159374a871ca9728348ded20f3b30a49f5583d4208c42c1a9a0ccc3584b001602e2e3c47308dc1a882112e3b2cf6ae3843bcc06d6c9ab2417067ba1baafb4bb3fa623b3281504526718c7861813e1ead418eed80839790296900505adba06043d95efab3ca0a04a7e37eb7fc99c45070505a8017dac560730443f961a8d18f1de924ddab207da8a05328f7c38a45e3969e44db0c4314e0b9ce3ee404ac54b44ee800473f4b82b065f68966f982088bc9cabb83ca7803aba08e38682b20bf497c81224024f812719be280061cd0b4d15cc1c74da8362959fc19e7d01fe12fb02196c6d072622ba9d838f115397e0163f7ff490723bdd74591f12513a39e9995217def063d14a2b8ac78955c0e27c078a4a4e09414d39ed9096751032ea0341139d1302e1c0f1c55c3cea4bc1e2d0711d2c8a218305be3239d29472981f05faeafad98459f55cf4f2ac700db31cc5dd6cd6a0dd3b2650bea8222fad010786e4a8e2bfec7c595bbedfbed7561598294e2dfe452adfa908884c8b13cb5ebfdae5df7c0faab7ad5bacec19b54e84967f2a09d490cb4892aeedbac1603d9beb3b30bbe46c5728e26968fbd36be8531a91164c8edf66d29a97c267f1c241eafd97f1fb5105ad589e4fed285963dc09a45857ed6beb27392b040d1680ca457e0790fa0e0891481df039a147c10946272d7e48ffe9cef35530a2ccc969b5106d90d9d6abb0690b129cb756f8b91b3fdbaf9c2da6add27c41b20668813cd288da71e1b9335e638ac34ce12cba045d40280e6872df8a8f7046ad982c7d54375f3184ce14ddeb07029144e719917ce1266838053c6ee66a1814de84310b64ead62a96be17a0e7a10af48b2133012d920f36d652eb2faae56e715f1f0ab5c3b2d482371fbea69c19b9993444754d2594ca29934670408c81bb27115f478e81f8724eb999067937b5915555485650ed5ed7ab2576e97e138ee7f164411cfb50fbc2fd9480edbc6fc1175a2c5b7eb78a6d98a768332ab1da19e0041170097b2d9082195386c13893cdc9149614e29d3b7d9cd11c583d1669b0460d594fd919bd425616b11d283671b195ec69a603401df79db7732c04eb8599fed9dc5b62ec2d5c006b1f1f2d83dadfe4a7323b40093b9246717752cb7e65e90f62243747fe2987e856b7daeab152fc039fb6f26564833e6abd83a76a60ebeccf0d0bd6261e5a20139efd21ffdab2408860de85f0916287044d259a53f5e18efd01a2fb25d5078a44c0245000204e33e195703b8701e7bcfee2071e242ffc5fef1b18a64b6846569ac04a4347ec80fc18b374b720e3efd919dd78c2e8fcaf7e3182b4d8a7ab3167fdfa38af4d8b65bad2f82a8a60f8e9da2553f9e67e23572bcc447c072998d2118fa4787f5d65376b777dd27f698787bd990926284850ff3c5dd7657d186d4e4d3b2e6691da462a84a6a2c696c07d7e98f95629937534d08a6cf0652ad72ba6b64158e18549e183c274916d3c9dbb488b8ef5dc44b982ee0457b640f598c4065cef04ecd8cff4f9c048155231c75625a605029e381fd70b720abaf3748428bddec56d56d69e6d8906d32f95473717b571d0efbbbc53a63cffcc2e787f52d5b7b9d9b72ccc46766ca8dfa0cba132132def3b12c7132809df225714d2b5397be90865b2187157faf65fc07d9e7e7b402de36b258c51aa819da95529186bcacbc452977d3739e71f8370e65732031ee68ef6d6e6d74616df4e36a08a23ff30ac03536c2c60124438bf34a2826387723ae592f7f568f24777967fb9af202da9925a89fb58006e3db283dbe8fe38c201b9b421da8b3c9e9055c98bb2b4e9df5aaff21b4632e1dfb036558fb4a2b4669a3bf56cf60bb5c77b3aa117a4a15a518d13239e2206d09a4b53840dffe00091520df8d7e75dd39295d95882b21c454b4e209bd42b162830e8bf7f96548321abd195d698f371f1ff3ede47c121524228726f1c78a2a6e6b62316f5f400d6ca85433d2264441645cba220c317a7e9f6bdad69e29860da2d9ce801582d9371538fb0754989501bd20bd5510cdce6261cd1bf951f03fffaa11a541825e982f3d419bfc6affec3d64c9622bd93dab1e80028f7d21903a0ba14deca99079fcfee047be1b454fac45ab618ed190391cd69ba0f06d16964281e838874d30d674a05028418f28f6d4358e0ad2b3e187691c83ff119bcad2168130ac179160ffb4fafdd42a85ece6e0ed3836f8284c9fcc7badf5cfa08b6f8dd8c7de427e01671dcb9dfdfeb88efc756fad02b753f485d27fd0f10750384742e490811a0df075d8ddfb9f89b91db84317fa6a9f2f3311b441bb90d033862b2b0c4c2d4225b3a8e506f02d9a6809916169f40bdb1a2d3797a945a2e3035531ebaf0a4e5a22ff80ccda01c75bc80cb51a443ccd8118cba8f907997d1b6838c4381102cb7e118d85eb88742ba2d4a0f95500c28f3126532fe8d83e774f707a7ba15c4d572421e531e1ba9a48e30aa58f2df2481f4681d4e7a91a8060259610d72f3f492b93d817aa1931d83c134cdbc2b7cc210b0d8c59b39a1189c11abbf2fca25d2e4c9d7d5dc0c592970536423940d38adcedefe4dfb82eac5dfddbfccb4b87a9324ac25c5e1ee053662b7b8ff77860767065449710091edc4d29ddab46b14d2a6adc2941b3cfbf00da915e2fd80302fbe13439097f9c1df4fee84031a859817fb5bed1c0c059784b4dbbad6a6999763b10d92c422db5985b15f7371fc32185a012f832608ba05c8148322a76ecb4a58b305f8ecd5d1b754ae39015f3113d2217d24655704c9ab250d70d087e61283ac9556943440e8b9124e5528f6b1a95f9c8561254ad127131b99de066efef0d6e158e2b43eb83ed34efd80a36722e349d7851c3b4770ca23e7ecbd013ac9009c7846824896987a21aad29f745b60b826f636d467fd9e0775f4eaa3958b8ec6cdb55f3d1578625982c49e87ae04ac8a0de6bab2d6675200e91757c2bb587819e55c2d33ccfd11ea3e2f1ca580c0fe9156e49430c32c981fc9701e50e40f282de6968b85a51e2ad833d8a66dd101c8cc7d4f161d4e9b811329462e4c6ae3a2557d76fb94aaf870ff7dc450c59341956d140c72e1f0f39fac1a0561c5a5f5edfbe8dea88096c18f88fa291ab005ef4b2216aa29458a68f41baade82ee2b2a82dfef8b9e49f62a5649a069f27db03f547b51df5624b2d3bf161ac536a895251b01c5bc9c8ad48eaf58060d61158f9ace219d50c2ca508a2d24355a03a956a402a454aa0e531e032aab8939b72b92547547e51f27b532f8ea8a0520746e50db58a8112f8e2ac5e1459eed3ae78a16e36e939db1bc772f1b8ffe340df329d2dc963979daa1385b7f8eaf73eb4272ccda1860647b6a72e954feef0220216ed1ccce8e9bc69457002a777af9f22ad7bda26631d7eea35819c02ed20440d77cf196e08df6a3f2300efe61f79ed558f064d3f0b9321395a27e82b79f57306f9eb39d0af7c76e422602881804397bf92d2d44a7bda1f4ba809271d44bb70ae909de3994fdbe8b545444d99c14749e5487d8b050bb470e6075685859a74b31649786abc1ed2b6d4a391a6530c41bd959f0b28b98c60d631296d7e781992ea2e1dec56dd8effa14451979a531086b8a4c5fee084ab3d362512bf73c006bf11999c04a32c8f4eeca2ec226beaa6a6836a4d1df9d08f6bb0e674b95da4a1440f3d638a3455745610df21123aec08109e92333edf3a5ffdbd8d4b8ba265880616b8cdfb851dad088077c993e09c6a95cb2ac3ae40b705b141d088436924f5573beb879f80216e1141f172d22d4c1e4ea62a490644357b1d64773ec29d9ef171c8cbb37b23f265057b15220aa045525ebb81e9f744b2cb244bea8edfbf125fdc825232d730473366749b317f2387dc0274f1db006575d6b99f6c8aacb091e4fc25e3b773f9440751a52909a9949ae55ba77b6d4d42c9d0981bc22ed5e9b2ffa44230025ae146493177d735f1d22b9957ee5bb1f403b06e97018836f367281df1b48f3035563564c26d9b557e0547e2095fa815435778fd84c691f8f11d20b0e5081b8fd003146b9c759ce04f997e6b777e3d398be554d060d6aa4b37131692530c0de72f01002fc0154eb6c36e215a2b9ba11d78a68df73fcde1f7da2bb35c9318e8888abf3679812dfada81adf2a1b0acf9b7d6e473ade6bf448e515c282d6422ca9c4110020fce98f03311db4bd3e4148377e279ab0726ec545387e8ce818f0851ee904b87919cce6ae9b8772003e695dffeb83346f239bf4032c4a0ca4b165972ccee7073375c269b1f3892ba1a688052879b2972feb050b168257f6d7312f7430bf385664a798c70028f8e8d94ed3f18f30a09b56d608a366511e23401846c0aff18fe00902be637f440d0f704f10bc1f0c65df0ec7b99d0d12bef4a071e141b4f108f2f4d4b6206d81ae9a765b4c82f284132dc5abcf73ea1952007996a811fb5b4b6457023abde199091af2064132e320431942fd952c3056498d64fa05f51f22bf7316e9386603e4ca7219c2994f7b9845f076c62216b2c50604c9eb1e17c87927dc2893cd0b949164b79d9d61fd0be48d688196eee8b37907d00266c83d60b634e77b260b5fbefc8a0cb8442b1e118049424cb87af41f1c72045d7d07a20520ec027b11866771f705a6730e1e43751b74a880cf76bd4296339d0100ab47eea986981ff52e25b2eaa703764946fbd503f59667f74caefe5df9b697c35ee53c31a5007f6ff02b369c32f376cd79eb8638643e1505d9f516f0f08a10dc31d2bf0406f717a40658f9d85f8a74821239cc5c94368380cd22104fe216c1986c8cfc41e16692d7d038fb162a10492272c2a6d49dc8c2b8f0b2502dde31f63f0d5fb6166c86b0fc4b2208aad8fedd0e63532cdd22c64062926946040ba2d08a7492471c78a65a31fc0f14133c208f19214117ddcbcf057058942fbcbc4161e03e7322d4dfccb0aaf22b5978e5d272c24fa137a7254519f0edb52c4dd60e87b3a46608262dd904a925f1756d375addd971cb4f2a1c6a4a7c12daa2e88ee9fa0143f685d8ef0250dd1d607e87875c94360078bd7101c3b4a12c9278927a74848eda0ab9372818e7204fc10fdb7cc71c325af0cc343ecd59f3bd1a13152fb7277fbba9fe19c2f73f1b933e903102905149a4bc2a788436c2b70507fde4d05d1bc7fe754b9d37cd5d281030333aa96fb66d55aecb0cbdd3f7da1b21a365b6fb9d3bd64176dd31f02a3a4a206cf4007fa9c9679ba1a8568fb555e0a33e34b50f79b10d7be6cc7410c664199cd95bae9a45e56578c940c1b1dbd09f80caf048ffb6356e715935457c5ae1aeafcc326566f9de4cc490fe7de954d81056481e01d599199c571d3150e9c8126713dae268046af531b95619d89193a60b2d8ab5805b2aec567736760ddca112cbaa16e2d4759e4cffa8f665bf477d53d1964f6fcce8530092a21b9d772f013dc3aa6a0206f39f7baaaa9cd2b65956de2521a6a8be45c43d0db52ecddb49922b660b5604a1cd354cd91b836d4d65f58089b317bb44d02a9f14205b08b76188f868136d1b23a506fe4f2056489b403560d70052ada25d43b9563294bcc4abeb1a60c9abc093ade24904871266a0ec06e49b03c1319d7fb77a0815e7dfcd18a41f980105dd181baacd302bfdda9c7f0300084e40a23b1da504a871aeb02f73cd97ac9c7d95204101360c8ff53e2a8764c9cadbd090ad1adeb896f3ef8fc7129e5a2317068deb551efa5d2bf42217b55880c45009260c53f781af5b7f8e64a60eecf0db05c6892c8170089045591fc704d5f16f04dbfe4cd96a197352be4330b0be58e54652717f30a42eb86d5bac1742816a00473cce686b577db435f7585cfb5d466ba0477a75193da25fb4f50339ffeeebbdb9689192bdcaa6ddfcc73edaf9775ae78bb5ee6312d8bf95f90ecebfd5e69ee8ac9cb46e0eae81e67f958d9a1081136dca708f48c3cd561a0c5ccb01841747c4bcc58bad051054c5b03ffb01493d39ce3b6e2238ff16b5998ac60d1e461f2c37d41562b52b55fe72feed90c5519f284f863096b14ed4fdabc4275db3d389d30607a634a8cc1944cdd6e1fa911ea51f9ee97b54f3c7bab1dad92986554e8ab00c5b715c14253ca2b1af9ec9f910befe8163d522ef354f7dfb3bdf13025f5be44cd3f2e2843c53ad033c809f382f06dcc04c1e3395008e3d2593b9f16f7febb43bb7be8ee6cc7db664a6d6c288dbdfb79513b868d7866dfcb85aaf81d4d376065360a214f6cada5885b0f90e547f36350c20d8970680177930925522389cad097cd5c3b3eea7c73310712723889a4330fb7c17c069f39e600e0a26a0bb9a314821660aac6318bf907d6a3462e03bfad9540431962327bc34e4e7e36b017cdcf07f1663a89cb790a4fac4249f7ee4b8ce74b428c75dce83b65d8b3aecf96b50942ac0ca0c10fb1f83a8d25647a44b3e87870c9e97a16fbb4a4b7f55cd8cd493d952328be1f32f03ea1952b6a3270cd9ab0262904f02850e1c48daa14856e448205107e4f0b4036d3ec66ddce3cfa6d3cf339f980322210a43db702445fb8a4ac600b815f80fc11d951c7f50c218afce8573221f27062d3bc48cd9df9a76cdc2afaea9e7869831841bc3cc6fbdd93299e98a6729151657b83e6f62875e571d98a4b3df092d01dc80b64777cd0c8e119bc30487617fbbbc519250aae3e74ecd785a87605ff383ee08314218cd8e8d3c8619d6d0b25b08b0f7f78ac4108f59d452879e949a8290794dbe5390d15a8204d0f58bd450f30348b0914b78c71a4fd2ffa14c489a2f84bd92882625b66fa822540ea2c46964c857bca71101327f6b287461e0e523ab4e3298c52ab66a655f3283b16d5d613edc00adac5c64c54939f1304cda1257093071d2c378cedf910dd05260d4788cb129442005c27dad3526a7e3b39a7d2c6c78fd6eefe48d61d7232d0faef1ce7faf1d81b46c6b9ab63a7f5cb4c798e772c49dd557a1d224485286fdf2839b5eb50fbb5f8b60d090917e63b4d451924606885fba6c736bf2ca686fa384c427a0013286beb4c47c21ca6c525d1ae9107b7599cbd77b8ac45daf7ebc8ff9d7512cdec520cc3e38072d253ca9496dd868c95c1de7bcb2fef3bd765c239b84b42ef207bc75b62cd67781b7406e107bc6a6ac3650db599ea0838a17458810cd818b5a64137fa27afc622f06b188492cb114ab58c42c76318b5d6cc4109b18c428a662885d8cc514733188254662f9a0faa036bc2e2ec1cef97f3134cb59c6fe9dc2ff40e18a8246adb35705cfe3edf903856743f7c4439de7b9f9c449c56bb079eaace771dc727253f038da9c3f56793ee84e3a54799c9a4f9fd5bc0c5aa78e5a1ec6eda777051e63cdd94385e7e3fee4838a5730ebd47503df390ecb382ec1f962b2aeca84bde8f8aa162e8e5a87cd1eea8d975f3a26db7e6d87041da72815c40b3e1a71f838b31e40e51f49555ac5a164e4a22d9cf621658987b8f4650154c30ba4333cdd4ab8986c6c3d9bd20e9399329afeded505233b75e80f480ddd09ed2d8f9bc172fef3a7f894eb6a7f5fdfc96b1e5175fa3be79f7a85ab6a6ef9eecb275dd5ab68bbfe8bf1566fe9c89f015fdd25d1b040758a5a70e9c7deaedb79c0d002d2734360ce82418f1e7e457f6d7ae12502bbe999d564a520863d10c33a1d80194902e2629c72533f21c4c74818744a1190f9bdecda54bb784950b7d1c2a9a9045672314686e6143ac8850df6d895117ab103e5d57411292316b153d4b2fc9ec906870b2e4089ab15c1dc839562ca68de93ca1a5728985497d21586cb19edf551d354ec1293db0e5a32e73173801c9c28988209caa57f27576eb651c4c2f4e010282096fe0a63708f69a3f4a7b692a9fc3aa204faa4e051ad85dafbc563bfde7a11a4e7070756c638773a9ba8ae13036b61f6002f6c551e28b67703dc033867b0804f22d60be3af4c42635009c2f59d48de9b6e68692b0b838c2ce52c70d7cf4f16c695b3f576732876d8ab0c90dfed4f09dd79b3d28b5208d67c614cf83d46fb6ebb84a599c8431b181e06ad6ceb7f8e0ffec11f463e48276a618854f5342a8eee21e42ea568630a56e384003dcd006ab40f957585528357f434526e81355c1f78f8d3613f0d2c452121ae9ebed33d41f35cab4081531eb337faad9e569ed7ab6cca69c6e6690a28437fed56e51ae2f5e1a3fff5b49e119cab8197d476906169743df3d2c85037105316e55220531474bfb0d27a9a7e74535895f30a3605708e12a45a5c608a99441e198193c3d448a3d713e972d1aa98375167abe99b2c33a65c65f16fb62a188b9f6e79a80ee63197f93593b22eee50b3e97c092de008e2960ac6da655558a3194982bf53920174ca53615a3cdcad745310854554c4d9b729f6a5b78f4c79ff2c435211a0310f16c06b2af31d1f2ed06f5d76b1a54f215cdb4dc7c91d2873d690ca928dd865627c307cc4384d50d41c0a8e16421644f13dc163dc23f8843718361a6d411be31d8f781428c637dcd9a99865634f07be508abdd2f51ed85d69a688be5d85167f01c7a6a76b431e611ea646261e5cd05eb6730a85f09ebae16c7e03b6727850265e150a6abfc092a1023301c3c03d2caccfbfd58e6f3c7c00459af06ec694a2cdc843b597293b5de503fa919671dc3af8cb944daffaf94cd6b896840fb92dec6a598c375a7596b4bbea60ed9f79b5d8f2e76d775c31ad22dbef348572da344f76e969c85757b71dfaceb615e56ddb122f1cd9f82a6c54a278c00799b91e83e10425d5f19e7b1e159732d72ae72917e66d8a0ee66c0ada6b6b7e922375ed4d5fb66e82ba1501816ad6ad96cd723d708800c19600861f4d1ebd7e35ac8e6a89b992b4081eec28c668723e148c387735caad5bb76b8251c7d5e2b568ab44871f61f0359094efefe76e1ee50d17978ac0687aca595c73926dc39ce7abeb8341d974d45b6e21ff4478b6c2afa2c2f046e363138627a889314dcc8bd3c0634bbec5c15a1c6b83fa62d559c06f3113700b7253d96429bcf3f1584aab5be9cf596603636a91fbc1caec3bcffbf636aa8b4efacd7a68629e33de05bcbc484b660a31de6ba371423fec87eb16091c9a817103e71fce01707274bc1c5d83ecca0f66ee1ebc4aa35addee3895c058464194845d1dafcb0c459e41c327331471cb2c2c701c6d08d8cef4dc8912d717bc29b5a93d22009a203520fc2cd30c781fa7cc55ca2a30b39e7694e681f32c603ed50e932ad5b66920a485ac438cc369e6558ff914efcdc090fd8594214b9f3e652fd15254421c558efeb45568059fad1a16a815642a04a3e02aabf601c2d552d4091db70fa17d5c2b34a09e653bb759eb4ef19ab34cc34f446fa1bcbb5e5b0af34526d03525308493f37343f74a41b32ccdf406758e8290620f949966fb7f3aa909d4166858f50355b0dc034f20f74ae00b2772d7a4ecbaf294ca3a843ef432a899c17d766e379d1f8826684bfb993782166505e5fb2178a5888b0806974aefa33fb816cdfee28e99502a095fc6203b905bea6e79dd83d27197236d2842282f458d5a99763ba828a9d1a18bbc9a3c6c1fc29e93866e16015c2f66af753f47e9f8282b7405d177708b9b5f35cdb38783239668b79916104545e7e94a0516b12320451022ec1a6d734bfa0d2e295734d5693429d8ae316ac7f487e65b4096feee83a6a385f35dfb44cab51bae73d82db26a01d4bebe5ae283f5ba9898e52b83944c8eccccf1cd80c57471e690642d59a32780d5386ecb222697d6ac932786472acdb66aca4534386ab997080e23898a3c27e5dc566da879a0a9360d1b3c9fb8759ee801c5e4f15c5b50dc628cb791187e6288894b987ef2f101f54a9c915576209afca34f10ea5ae183525dc0146b193e031e4490acff408fcc3651e7117c3eef2ff3aac8f2dc8c7be5c02bc68f2634f143603893d9d5ddc869e89b76add8067f9762fb7fd8553bb56433851755cc75788acda8dda23ba7e6f1c69a60b6edb932cff09cdf411f45bd718c3ad034ec7a7dd0ba0c09e7d1b15a65e5e0e12af7bca2f0533cb10c00663bd80887eed81f7a0d1ffb6f8da899d65d62779932fa20535a20a688d20071b2a241f642a0709a77a875d6f0cd161bc583413de01325bca7ae0407f4006f5b57ae037fcc6ad0ceee78041b3ead096342074f0c36292cf74875dd0487164e4aef8e7a30e4fb1b311b8ab5433e05c7814f59f7140286fc13b63b2e6e5c71720b3c278d67fa0d59d2667b7ae2678bb70d651b7b0e79b5ae61b3703c27341885c7ca07e0a726f66c6263e4fd504a1b1b04bba7b8a9765fd4cb1b9edac491fe75d3cb13f287273c612d62037ece9f92a94d6efb73d6a74d8b878c36192342b40220ee292dd88d3da049616162429a45871a66e22186f2547f54d7374c3a39829889c0e84911a6e634787e94f92d7086319197fe8d021cbd8dc54829be543948cbe2b8aacec34202c541e2854a4b6a30074bde60b1313e65362908f729efba3dc3d92c714ccfb2a2131f1a9039a6d93946a4b04c24e7a8c5dade7cac4503c965d02476816d559c31373000786ad66e8695f53fb483607b91caaf4b169c6df68d6d8ba3b039132b5188479ef17c16d0deea0acb4a7f961546d801fe6295e069a96e34b9bebe6fa91266ada1fa212ead33b1001f5013249bb947a429f68e1213c3e1c85029207415b75db32bb1842fdd768eac568322a691edc48c728763b9fc7a17c5f71f48d9c669c648284e6df56aa47bd84b712297e0342ebdd31d07484b5e716474a71a064fb838bd8dd5391d30e1a537c1445246f74d4b92eedc2990b8c40ea10a857777a08469b9c8fd8b256a4d6da9827d13a11bbcd49565658e08558db8811474c0c086bd1e8a25c100f51c1ce9dc0898285ca6478d56e734a8023063239f4a30645ae0aba737fa5186d9cdb2580cc54bc20058d276dd099e59c904ffceb2dd13f8c7682b62f9e4aeacb1d434b22762707683a50d46715b63035284f337c0bcdca6b13cd4b943d24cfaab738de42092c089519287fea91fb40d8223b7116a4a0a2080bdd7dbb2f4eedede146444ac266ea2df7aadd47c7fa3ad9b9832fdc966710417ad6028bb24ceca791ff22ef5e71c57f98a2aa8a20a6b8ae88881f85f489eafabefa7c901f5910e958711cef1c78742a288e9814b8e87f0a46e45ed94616c4a0e14b5f1857818b959ba3aa0ad396a551c9e86bd385413de9a165989cde21bc5263cffa6f2db55f99d18ab9f78ad23455727ea3ffe282753397ffbcb681e103d1cdcfd5b0a6e9cbaa1bb35a14084869ab427dde546b793552df0d217a45c6e885b9cd344b972910370c6130b7bdbfab1ee51af35e68f54207c27dbe106f527d660db7abdcf05c653dcf5754f0ceda6c2f6a530684de50fb8fdb27058db71b3495b7fa061a22da7c68d02c004ce048e861253a0537156899625d67685cee75f2856bba9f8540c62e01c3ec1f5f927527d639330bd65485abb652a14aed4c6d019e4497172183ce7196056f4f98f7ea348cca50766cef58da64849e0cc30249c5192a8ce86df5641e5b1bbfb5ae7d60f5962c1f5d08a38f9e519895633c129fdb9313a46c01b7b018a2eb0461d5d0ea377cc922d56ca7698016c92f2ab43a74cc6cf49cb8efa4ef94746ca4cf543f49ed0522498177aac8e9a43e330b2fd2a4ba5fc201f576e6388e055f20c722a7659dcc29f5052795aee158b618ddf62ab74d0c5cd1320013f4d4ee186ef20852a0d6056111cff4c4eb9a8238ca97092cd2e65fb265335d1001e91ec5b456665a93fa852205be7a472f0932e199794bf2d0249a6ea49a14aac1df147ff14713d02373231c21bb9d2bf3a48a9d3942c81884bccfe2057a338c869b917adf4d4af062665a182966453cac1a89daba2e2eec89771621df36daa7e2167eca18fbda0d98cbb51e6bf0721e353fe3dfd194cd2c538c1ae3d39f22c089e96423cc5ce829a7c63d3ba68371cec95333f25d44d0dbc0e9cd950c7a140090c04599c2faf5e139df5f699a035b86e2f19840fbfc8dc6e139fa072574bca5c8291615e1b515670880bbf72a8e1a36a97772a6a090a8608bc520df35f6c7f76cc8576de4d452d8b528be9589a82769df80584939883c4dced76abf6f8e932f0c0448b65eb0207d1603b09e36129f2e10be0e41466b75a4b8328a6eea632670f7a35aedf3e300957e8da8b410c98fde0d1dc43e3aa08269b33320e694b4f25eca1b8024d6278fc6cf4aca0b53d07302c3f87d0a0a1d268585b41fcf2dfe033d19c3fd25ab9170a784739de3eff5bcbd4818bce63116a98e636f5bc6e2aae8bedcde5bce35c0fcbfd535591f0102964b91d79206005587ea61ca1d5cff8f534946364d7735171aa0bd9fcc951457791bdee3c80eb4a30bd1ebdbc12ee32c0dc2a37d23ecc21f94276e219b22a634d571eab448a59078dfa105e0ad08aad2aff3bd94fba4cbf8cd4ed81057ef11609048312e090fd9402579ef57494cc29091d810129afa4a302cc855325ce83f940dac4ae195d849d00df031cd4459885e3ce48b8250e18c441b3366639939f6901358c4ce274165e9403512220be273320ad468c087c91b406114219f00a1d1d5257e4444304aa0b8fb2708c43c0133134880d9604a017e83b4400ced98bb4449fb5ad1b80fa8138814cde6c07e67c834e1f228c4e846b514c59990b59edb4cc6a48c1e7aeeff1a5cb1962fc47f8d23e58b4222dd74b1bb346a5c5e7fac800b9ae5172cb754e331e704b7ea4d134a8be13c5332742ce79f47f21e15583e70cdb268cc0bf29b4a3220acf9ccf6d3712430a34b54f1968d5bd386e5a75964b9945cd3cfb89ef4b3e743e669bc07a61965eb3f8261043877dcde449358519d90e0733bccc8cde9098ebe03e6e0b1a41bb028047b3e9868e4c0b448b2db4763be205d89f95e2bf9650c5fc17c825ac12c319b537e83fa3805363d9b47c619518ca75d91256cdc4afd8cb316da1208b35b61dbf6f89eac053a833bee37bde98f6533eadcbc8351d893e11c85e32781ee26ed5fe6d823fb87a21274bf199f1520208209374185402d5182b2a81a9a271588e2eb8173e2ef03f96db2610503511db9757f6c07a5b0ca3862ff5202f6484eef6f4c716a85e839b02b11775964babf2fe5e8bae8cb38c91bfb487f8ca6bf34d63b1090f02cd98cdee190fe884df4fde817ad8c68cb069ed3c708e09b337b884b4c2c9157e24be6c3e502e7172c7a4ba8fb302f36bd11d8244650e1bef94d7be548dbd59ccc55eb2f6d40b2ea3390b9d33d8d9184dba8e9b0a5050555964e88d304010c6a35d2aa2e6f01a94558c75592b907fc6f82c9c04a1aa71d2bb6e4c8066db22ace1df8d14304a3509809a5efd5466fc0664106f1e911d6204eecfe18a44b7f6a1fc0014b6af3f01ed6e36e8dfde4a52189262090828c08e2c953994d9bacd5d8c134f944903af592fb94cd6540b0e3dc040c6e675125156c3215f6074dd730eab6b1ea9e238b328a2f28d336675f95f8bc0586f8315b32bcd8806ac66af669dec8c8727577a93af0c4f482055913c7f2bf4ac85763482a11dd59255a67fe0b8fcb9a0e451922396c21305adae3a8ca08d9de20e75b5563ed1146e78ccc7f902c541ceb382d045faf7c301da460333b8ccd077976cf59aed8ae75f8d8b8c0230ae6233708f6d03a0d2e95ca77d8614018f9eefa54f39bab0c73b979a08579ca1a04921b61e566773b43f70894ef91cdd27000f7ca1078ac3490222ca4f265ebaafed9d05c1d8bd406cc37159477c4ccec90e76cc6891c9e004e3af655f4a2a2328528098549e043d168c46b743ece8e94ec7797cd32bb61855a9f9261240dbafde331117037c88e4923b4f101c4393b11c5183e75ae23c9985cab1c320023c14e837e6ec5ba907931f91c528a1ceaf1f15e0450a9f1887f3e6f05161d97306e1e3fd77a012ecd025c77c23f9918563f1765007b3deb4a3808462b458406f1b182a2f168b30a8e4d0985219a927c97ae89fe29dc9f9f145b6c51539c815c98d557cde01d5b1a55fd41664fa9ef4f347d570343053045842c028bb3c2257bd0d888fc099109d3f8173c0dbf0c2a63f54a3a08861960603d22db0e9d547f9656b66ad7002cc40ebbeb4a897aabc17711074ac74b6c2a39cc19cfabe474785d0db0befd8b6301ddbb8b225e10b851cb170558361223f95cb1a06a001e0710e734b2d33618ad3fb50a00e323859f3b3f3d39acb2fa69e9fa20498601c41d3eccd79a9184285144321db3c472655c1b16430ac7f3f477348310d40592707ab5362ca77bfc8e8e0240938261dea5b51e1936be86d15ec546b6741bb02a7f2c02f84e42211f99a11b2fb24e6afa348e00bbba1a5c67644442b83437a08dc0cea55732e86409e9d0a00ecb8e63d5a6b41ae8b4c4a387cc069eb459065fe3a0ddc27ce177f30c35c58893855037ac46e81e69f64d65036aea0589f112d5df7309a736091e436c8c436ab7d78ccea01147bef111e8f711d5108776c32cff83587533b619c3ea38bcc5be221950b5e364c970fbfaa1aa774d6b710b8567de204d00b6db2c250ba75cdc61efa2c9851ffd3a83f2c4e99b751b9f5582b2f18ca3f4ccacdf93cf8bafc03f47365becaa738534c1fd2409ba614250c600f67e9c5fcde4a71f5198e273641945d96afdf4efc8cbcaefe62c8237931987bde611ac01c8cdb89c603cbff4728e37c528984041095560aceb56883624745101e72840ddb48c2b500800878a89a7007ea2b0c4056c8d8a16d41d4383b7200d78abfb175b1ce373163dc2fd49b86c7a38f9725000122b3534b6177d489e4476c3594abf088d5ebe3f1820cb135e60dc106dc381270bf225e6d26271a324cfc02a6b9a385c719cd0751f4b68a70a37ff43d06f2d53d0f8204676f433073e5351102c1ae50a5064f9d747d0b2414a0abca0eaeaa96e475925a0b22bc3e12036032166af1591d510be94456b311640681c48e2bb4aa16584da403397f658ba6a188e5bde202a3040c78123b96b433d88622d5dbb4050d8a7afd91b71a1ecca1c5b507006c4c585116c5f0f915ee5ac0b33da68140657e665a15b13d80358b5a323d09abd59546502421456b8672739de6554fda8d9ba3c8bbfd2992ffb5080ed37d74f82ca8a83479ac913f03656736567d73648a62a09dd8fb20c97549567ec652c4d978419246431e4c862c56f89374b47092584b4933b9e3a37653df8356118214e45d727911859a1666709a0a866768a919c6b7f9d14be9f1fcd4c165521956dd5c7aee11115d513bbb2d68425aceb6594a777fafe735b5706232990087a2f13ac3bccab356c287908da53faab829b2f5e48cc0cab976191012bc55cced1efe80d6ff07f7b56df8510237193c6c17c4a4fcad4f2b624332f8a2dde1e45ffed36d9a3243c9c2ca38828763d9c41e9b3763cbe522722bcda31dc4ca155f37875e13a1cb33aeb442521640f9cee068cf57ac507710664cebf527c3e5a36ebb929cbeecfd1c5871a78e56f2bad4869a4968da52a25c5819b4f46da82124888b7c03b6f8e40f5c696ca8b9c4bee281f43e2e789927277198d4239f5457316a0c69afeaa165aaff562622ec08de2a3d7362aadffafbef4b5056defba6b9ec64dc45b9859c150e5a20eefcd5765a235a15fdb25b1a25610c9e0a819857cb43a8de43fae5a0cb4dbea90d153f6817e336ae04b8980cc3a49fb30794a9261ea0018bc5996e0ed0c2d076ed98522898729c89e6c7e6bb63671ad847ff5e67206908093cd1f6d81a944563609aa2a5d7ddb55652ec2024d58e6a18ed0cc847cb950b434cdd1f552c03b26a106a061c358e241606c9111a2fb54f605a3899b05ebcc01970a8b659ce10e19edaca1d904122570ceddcdfd80ce805751e9c40e314106dae6dcfc99ba2e509998d5a3b3474c4d95a049db4f2003decc7d80469e2625e7a59e7c1211f4a1b9c7facb2655825ec6a5ce29e25d84dc3fd8560efc93e256e0118352eea96ddc250112353794ff03d72eb79f96753f073ad48e4291e620389cdd3a1b00d116027b8142218d2184e3703346e641e3afa9e52034d035467e5cd36bdd511bc663fba7422ad34a922622db258e1b0ff213bbebbdea14252699a3e1bd4d9f0cd080860c75f430fb523e83cb0913f9408868a4292878fb39a25ff75b2a1e1220d422abd9a64c3732fe8af434a560b295c6d35212641c66b93b7abdecde36fe941dd080287300522ba6f1b75be209bf5c9ee5153370ad5206b9bdc73324b2f05dfda2c3d1cd3e15099ba148184c4a69c1aeb0f3e2bb9e4d17daebccf99e6300a0197a6acbd561df94dad042ec887f9811623bf70b00fd4436794989e1e79a4d413f215fe447090efc2851fc48fd06f279a8701ed45c3b57e5fcce66fd6d95479503ab60d5bb67f28db5037abc3d0973f9345425d11ccaf14e2c27d42265f8c40b57f9ca88d4f4f500071117daa5d92172e6df97cb52b68a58e0af66689a4298baa1eebe79b714809edc426bf93cfad18deaf5c79dd20c3d2506bb01952cc9f6e85cb93c1233e0db9069872b8adb609f4c8b0d211416436677a789b9c58650cabe94075d8f77cd998964fb15cd002fd8cfd9d25a003951aae13f41cb69d533cb0a048ed8b9bacaaa2ff941af186a61d741b356bc738898229ac56c6543c4640cdb4c069ae31a2457c750e8f9a6f280fd0a1f176b20f2e8e3f399648c66f1457b7f7f634b2b26dfc931ed80f53061d9a50dfb3f2f4aa2a5e720d1786b7805ef5b467f5c16ecab2aad4bd77c82e25d7586999633dddefd1cffd01736e88473c5b6f1099574538d5a7738d6b1cc304539dc008a6ad76e246a951bd86a88d0d32bd6c1c5310a29212f7e11ca1391ab441ae5469bbac713a5065862067fe697b15764acfdd19fb4389548aefc457f27032c6984834cfa2e9d706f6258d474d725a20f22a864f49cdbad164112d7dd79af522e6197a8d1a9e0a4816ecedf400405a656a8d6fc6932ec1f88329d51afa66ac24aef5cf9e61340f4706d8204b2846db1b73d1ea0e03b7e4a5ae3479a0aa03d7d0adc3cb2bfe78148c2f324e5310fc32167f10512a4e3e6f4ed4432362957838a9f14d74cc98b4a1681f98c276618492c310f2291e2b458f159fab3f3833ae869fbe91b39985403f86ab1d9220ab6b85caa6f2650f49c6735f560bab920dcfd2646d83475eb3e077221100c84d6790786f6a21228ed03f12cd977cfc3f9248b53a155a3886954bb0aa03d34d92e26bd235194bba6280e3a7f3484cc2841e27a2542942021569acd84d7a5d418fae89fe68f88256014c5e049e4cc4770e56105887dc1c7a86ca1fe539f5efb0121e47b58385cb3f3cbfbc4abbdbc4e91c0820ff610f2902ff188dac89eaea2d7a31c3ce29b909c204735c736872cedd879806a2bf27e9a3a41ae7caed4f90f5f6b6d1922d6592295d0ef00d000fa74725f1bebbfe8f85512cd15bb74d3a78e4e72d2751b76f37297233781ce4657d6f59de775e182eb13fc37f477c2dab93e0b7a305bdefee5f7192d377acd3cfec376b8602c324dedff1bff7581e26b16f2249fba8f0075ffbf7efa902f72f0ff6f9cfebdcba141454f183145d9288420bc25808ac2e98ebc4ca5bf8bb071e45145c740085194cb1842dec037cc7b29af45107f6ebf66f78a4490be67625f0b77fad13201450d084329d17d24dac8bc394873faa0755a83f791e089e7e428cc14fd18c28eca14014ca031fe58148502fc4432d2e1ec41310fd6bbcc036a66cb9de87ed191849de9ae2ad2ab766694bd2161a5c7ce78452ba1e06c118321e63ce0be9364e178b0d168ac4a00782f75eae0be74413de72bc459ccdee3de2fa8e0dfc4d7aa382b8963c538335c3648defa371e369dcb0a81bacef67cc907283068dafc19aa1aa90345ec85dd1e8505cf8e385a71a0f3e88ef57c3060fe47d0cde8bb778d8c3d7f3700dbcc5310d63d01b3906884a388f8b0f97b0f098fee0ff014110630ff585d7fb401b2fc43d1b2c0f75f21e3cb16622794118e4fd7e066b8622ef8c19bf5aad1ea4c13ad5b0610cb8061e3f95d7248d197f5fc85db17a868c8b0545c2f0241734637b4b54a5a490e065994e56098376c9036d10a00983d756b138a607b1c92a79cbf4971504fec1f731c617775e7ab052448e860dc0279640865cdd08435a2ac87e62094e20417b599e145f22ddc33ff74b3d07a35ba562d1a0dec50a3481a7cbea93c913bde518e3d388576f31b8fa136b85df84c9ac6ed0a8f23e342c1632f8c6f79fc0bfe1cf0dd722c58c6f61b9122c6fc2bbb83be1355010c1774ebf833d5cf256d8cd7025ec346e8d1b061c67b8c6384391e06a9cc120c171460bad9c58a1920963102f19bb292326d32d21ce5ccb9de28af11d1b6098301472675248d6c9b5f4abfd8ab7b0f811ed4b7d040e7fc07055e36bfc0c04b90888a6074de3cd491be3eaa4962aef43e39f80f8f14ae271869fb622418c4156dbc0644ea71bfe981e34996c8c356ad4a8710abb26444ce6fb6eb8c449d383a7f4e7f4a2e9c45a79ab3b9417b6b7ac89c6af4edfe1cf8a06ebb4024d2cf0572cd6699c391612371eb328e32d7fce03a23f6ef7fff0512ede65b0660ee6c54a64cd60a852a811f458337caf8731e856c0932b9d4c7e59bee4562c0e9e4921bdcfebde831126e9765490b734e3da6041a342d66c45862afb1d4723a2ac901b4a114de112eeada36c87342fc4395688e242311cbdd329fc3089ea4f8fa3882bf1455fe29c1b43d538b3e17fa1111c7e7fbb92155f12c39f9063b55da17e75798eac64fc8b079f267c57b23f54a15f21bf0f5f883fa7f299f558335f3a9d1efbe9345a7b3a7d873158558ee7348f7af18f5c9ea15be3bf1a658ce1db7186247cfbe15bee5d4994f128f11b9fd83f85e16a062afc1926c54e8629cad72b6fe44c2817ee45a552a9543427d4683fe7f2ac628c2f4657121fb3faf2b8f89f7d472e8f8b71e88eae0a9f267c8b8a8146f5a85035da40fdf7e20f5d1ed1fe67432334279a8fa27a57b9ca94a21967aa14d145944aa552b9950f253acf7dab7af0ed9852fde933dd500018654319a490347f7af13d8ce1f422929338b6b7c47116fef7586419119f7b4ea4119f7bee454f153eea55a990b622c1d1ad589cfba05bb13fac2f911fe6f065d9548c2e7f3aa1def4f83fdfa1a16cf79c29346113eaf1698667a8204e412805a1aa8242a1be300c8308c3d106113ef760db204294b7eeaafb8088faf041cf5a93352da19482a812849213246895ba0f8856e97613f8ecc7323da89aa1c8f0f4f7041a39d95314f29e4623a7ef1e87484edf8d34f2bee7423cb4627156de8792f259079345ecc40f95c4f08a182eb9d28baef42b95a74295a85279ca5722195a09ad8456422b5916c025540a9742a5f04ab8e44aab952bb9d20a7f28d261ac3e55eafbbed4f721abb10883fc5cfc54295f8556422bd7b30097702905830b969488c595520ffeccb960b93ca17fc8c2aa7126c220ddeb54aa7186223d0586ac952bb9d26ae54aab556825b4125ae14236005c8a2c2f5e844ae1951763b8145a79f1a1d28bf0ca8b70c995fe852bfdca85f833172f6e7c2e30cd2ab4125a09ad64112d07c5182c478c5c3ed4873a5914136044181d105797c78201b302b35a8181419829c45c316629540aad34c1a50b9726ba7069e570e0c6e3b069e58456c22b1d13e2eac6e3b069e57040fcdeae6e3c0e9b564e0b0c1818ac6ed8845642a515182ce4ccc1d40003c60a0a5402b37acbe534ae422b63504a60f71ca7e25e65ef673a810fa2dea4528dd704be09a50adf640a416f168657157e2a35863615a6b00af5a9ef94831fb250415c4f59fc032d61b478d182454b155207d95f3030c50cdbb7a3f78ebaa329895f93c9e4f5e9823f0b8d3c71d3173efebeef1b69524fc36aaf498d334ca65cf5a22a157ee0f899c69994bedcdf15378ab88a3263c816c8fe72812ee4970b6c217790fd25892cb290dd7b4dde9e617275f2897d6e6c6fecf0c7fb0e61d4387dbb674abadd77e098a57bf7995dba3ce2771fbe88c9f03b150b4586e3ec43b1da6bc0ef587e1aef9b460f8dcca43cb9e3ccae9ead72c719f6c627f6bbe7ba118f33fbf76639e18eca170c4041e620fb0b06b07cd99205698720fb8b963124a8fa6c38e859eb7d0af5296b7a7b72c1bd1127c317e252c84fbdea51ac192651a97761df45ea512e1e358ae30ca544a63a511c5dfc283e0d0deac5ee2dcd37ce30e9b950e1efd48be3ec234fefbd2a35626f7d286fd9d338ebde64c3ff1b47acb2dc04ac921dfb65936ca031ea6451e3d580f8c4f4dc8752429c89e2fd8fb4e2898b6dc27671eb84170b85ef74e34c8ad799469bc55b374b12bec36df19d6f039cbdcdd9b1fb2dde6940b4e44ccc80f8bd1561ac6ee0f8560c2039b3e4ecf40503559e8beff4170c24d91055c5e2701c9e39179be5d6dc4705617fd87126c59ec67166ab7069824853a598de66f9ba9305b1384211a92f471071042d261509f00ec031dd320215607704223aae6b1de4708404a0301450b7c3410e474001e500840fc886304140617490c3182f0c50d089ec278ec0c584839b83c4beff6a25055b5b44989c1c2e0ee26c725adee2c2e82007ccd958cbc37738dcba453220da6fd900057155f41067dfd730b0ddc79e01dc217ede7220c4bf2ccb91357a88b316992ce40c07e92b8bc3ff06aa4c0b6263900571e56ec700882e04c42136eeba0e002277646415b1e48b34e00a62631552b861439cb24453799fcf7bb80ec7715cc8755444fc2871ca1298fb11c45aee83a23d027e8700f1247a3f6509ee1fc7c7c4d44d11bf14c02296f46c702cdb4830892f899f6beba316fbd8da2040cf365680d8897d6b6c14b1a41d3fef3b2a62f7383c0ee3cf77ec8ebfe5461b782c6239b202d8768b7b2bc57770d3143b2ed17d0dfc6077c31f8c2dee7620efe3b01bbd91e0182e471a2009f7de38dc73b83b4037a6ddaf1fd9b8ebbc6eb47dc3f570b5d817e23709f08adc73dc95622d0da08b5396f01568bf71b0a0b83efe0d83b42b6fd9f71dd40c063913510ee821ce5aee45024d90fe36cee33eceb224c7ba7185ec2d9ca0010b18e1074838210b9f46d1a0bc855b025a2c793f00e215685045ca152666300311dc200b1848800807885fc0bc6004099618c10d764046050d1022d5046922fb091e60e165b62a028b2b6e2d16537600851d28c13ac10b05aa9c21bd64e981972c4ff092250b2f4c2c91ed858924d205d95e38300412544d5962092f36916cd68ac953f358416c7a7ba3bb65e8233dda6041fb20d864e31dcbbd65d9707ace5b4650e40c0441d0f41ecbf4f5e4bc0d0e6f591bbcd516c738ebb7c15bfee0cfec0379cb06dbffc48e3604cd7a7c2b44ffcf07d22d105140fdacb5403da19540fad3ec0f1816c777bc6f2390ce83dfdf89cc774cef7d04b2fbcffeb0572c8ec502c3feb047581cbbf4a1505848d702de407510c8212cd5d02d7f2f07a4fb80f4b77d65d6589058ec8f1b90fe4fde22d12f1aec113d701cb02c07e43b76d6ffbd0d8bf47bdfe4294c77eb1b57dee281ec1e6f04d500d928c4d9eab3f460a538a7fa8057c57f4e0e8f1e20fda2099c80a0213441053f88514111587cf0103ffc60058a05281fa4c8117b7278e49868b200020158088c5bf821073f0081470f902f409c804c91fd05082ea00ac06e8a58437c61c9c6477cc1b264bbb1247d818019945b0b013210c0e28a2f4528f1050b1457cc172c4d903314f9054b07c822b28034563364747ff78b41cedcb13b86f1c2058da84a8528f064fabc8ec3d76d7bbb778d1a29f1ca294ce75d8771bbf707c6abd25e157cddb69fc2d8ae518ebd65410fd5a1b5a82efcf94edf07c35bee71237e93f7733ab9f5c66e0e25aebafbbb176b0182aaeeeb6fadb5d671163c60212d0f59c83b629f0282e0ec9a21bbad7bf7cd45d93362f7597fda35c39272ad7f60a971dfdc8fc2a514fb893059c8991786a379614818e04fecc7b41579efca052f5e5861c60a32e267bb8d08f3a99ef8128132d8881260115c7cef12e6d2dee26e6085186bc6082d6eed1723923e23b22461bb3fa5cf0a1558b7d6afbb1528c020b06203e48ac3d88a2c5cc771aa212ccb8a29e4eaf3bc2ab2a882cc521562aa60c167fa3e0fcca7f4a14a603a994c556ce0049e4e3809339d14e20cb29fa842081005824f5441a58a1f4817a958022a44a170d28a0a2cc2541896a1420ca602cc47050952aa548a0a2da41df35171844a54a9a850faa6d8429c4209342e68684c51a03e21b810e3e2850b174f4c11c5135338f102c68b17282ea829b27c532c4da18027a4280303150346a8833d63b92bc5186c032c0514e4bd2c299a90620bf984145962c88811438aa54bf613522861b29f90a2cac3c842c60c19327a00d6a09302d360053350ab1933ae9c9cc8512289276870e5091a287d67c0158dd54a461068d4a04123c614356cd4a8f1c40ca0c04fcc0004e4ca5b369e988105da468d1ba9ee9b1e6f4a90039b455b6bad756bad75d40dfbdccb2ccddd31c61c57a5ebaa785e95cffbbecf851420b6edde472cc900118bedd72df60e984c9fc9143e74f4e8e0d1b1a3a3870e1e3a76e8d0a14347478e0e1f3a3d3a3c3a3b3a3d7478e8ecd0d1a1a3a393a3e323a72787276727a7470e8f9c1d393a72747272725e35d71bd1bf6a66d9fa2f3576de50a22f427fbda1dd2d01b775f7b7e840bd9a349bfa436b39e4e5cc68d14aa0bb63b4e8abee2839769a4f2ba1a0b59c7677d8cdc5609f882a23ba5b468b3601ddeda2457bc50baf9aad3f33ed817c26fa18ed86cad4af8165286aea8aa1359cb5569453148643c4a3a8ec2182e9e8e84104db9179720f0f5151118f1e3c3d652682e5e410f9c821e22182ede881035bd55b8aa3a6aeb556d4fed3ddab16edd7dd4774b7edee4ed134cd7f961fcb677a5b73fa276aaee57ae65aa6d96ae6af6699ae6f749aeb5ad652b4e8cbee36a2bb23d0dd45e0eec6d2dd2fbaad93ee8ea145fb6aea8265284247658a034b551c184aa395384869991299b4eee6ba7decee1b2db60d862954800004464c33bc2851238216f000848313041545c1230828da4f8bf5839e302f8e3ed713b01041094d0149987ac69a09e88479412308d7b5a94470c030ab82000b7c527808b880ed252989eceb5dc480e07df08edda4946b0500f6dbccbced370aba65b5146b77c0eff29c9e872955de87e381871efceff7601f7f0fa6ffbe471ea8bc0f37f2d08369acf23eb687eebfd11b7be8ec732310aafe1e3a7b5a1615fcf69d35a50a154bc57e97c7abe02955f0b8840e305059420718c8275596d00106f2be0eed85bc36303105132b20574800bbbbfbbb876a87683187fba639af4b8e24dbf5e5c1d884393cf36ab6e06ab4e830c6230c480f437a60bc2eb7c6df1bd30d419c7962bc2becfb7b633c31165bdc1f0ae442360038cc753981dfb0ab31137e8d16618e29a12a47922af5dfe5a1f9145e57ac7a1a560aecb8bf1e82355bd46c51b3c5f594e3284e35666ab4c89154a3458e29399230f6662d30aaeec3a713f8370cd99d5e9c9d5423ed8a49a5c213eaf4e0699c996ab6a8d9c23361ee0858146bccd46891638a58b3458d19f16bb410734c115de448c264f72e6868c6998bd98a69dec5c360f5a54989355bd46c51b3c51da372ae0ad838665e994b845bc68ea622e014caa6503e109f98bc3046106797cce5f1c278612e192f8ce83b5e9830be13fe27c67752578cf17ae09161a1fefbaf468bd064aa3153b3c5e841e12d2fdeba9e170f0a0f4c118870cd24d56cf179607c202611e192f1728950e666e13b384cca91f47d5e182f8c37c525738970b5a8d1a2c60c1994e9c4b2a66fb4974ccd165e991e5c8a774131297bbd334d71378520f737e5e3cc7e8a158e36546ca8d850b9770c78bbeefb3ecfce56530762d0f47d3654441c021a94cd140fdb50b1a13205db28619b2a268fe63dbc9a52e2987afc36546ca8d850c14945808d63f679c16fa78ca7206094c9a23ed30fc427a72f8b10c4a50f2f99be6f8befa094e0f235e13b5d58534e6f9374e2c6efcab7f461f996be2b1f16b00b02676f735b6ca8d8289d3e2cdd0f3a32a2f7f65b32fd4ef7a74f02bc5b6ca8581c703c9db27c59be249678ac4f1236542c4e6733c526092fd95099a952ac1d6da87c427c4964876d926ca6609b2a1f4e6ac26a3a9dbed56432996ca8d850b1a1b2721f7cde37abc64c8d169e97238974af7377d1431f67a7377dc784fb9e377e5eeac12b86fc5e35a35d31e0a3c071b662f29bad98bc3f6b81b962c8ef671fc62d30f78a21ed7f63cd16355bd46c51b385c72161003344c055c81683935ed0e83ae0ad2630011733a894f1945ec8c066f01783e338cee380e0beeb1101460e522f5a10c3450952344830811291b8c04985c411a61412546484488881d2810b308cea24810cc43049e088f09380102acf24841a35a0f14263cbca8810c8863041406174f085010a6a01a00320bee2b31f4d5bd18832e490b8ba41d32f4b7ee21723c6bc3bc0d660051552b861a3068dd50c193160bc704123aa52210a3c99bc0ef8132f5cd03801bc17f78d2a15a2c093e9f33a0e5fb7a5d85fae5cc1c2438421dd41f7eefb1bcdba2498624d692f3313093e262fd9e037cb933a04711452a9d403a1e2418a4fea410e95624d113b6c8eeb514beac30e0adf4b205329d40bf1be82c42fe44e600c697a1bfe74d3a0bc65329964908202b2db66c6fd7dfb9c89d55780dfac4ba6c2243288e0830f5e54c81adb0824c8a14256278104af37c6b6ab919a1d91601624f8b14ee09836ead7ee34cefa4395c13ac0407edd87e9da91a8c763c81e755881d40106d276a7b1dbe6bbd79bf9df915c6116cabf23f4370eb00572d623cd5b345bbfd21c524bf7521a09418fffc3df8ddc3885ca8d0ff7555ef8e0a7f90e0c72462369def2cf21673080a67044e2ac89c043f7ab5b23c5a7977084082620022e6392927c38d6142aeee37d95203ef8395695203e3c2c11849f071bc4f0b04490f7dcc8c3111e9608e21e8f3cb46e8d83692624a0055a8a60030dec8006dd12c4f691e20018980009249e10e30125f8b44ff73e9895843760c5023f54c0043e53a8dcf8e0aff2828615ce9cf1c12d90fe1dc66315ec839f1ba75001e283bf0af6e1b8e7cab87b46b4bd230c6fd95fad6e8d090b1089aadb5afca63782df649fc3d74d636804bf8f7e71636febdf6fc4bf2daa7bee83bae7bc6e1cdbdabee99742ded008c630380ec481e3c68d3b8e3682bae79e490776ddc9ddc81dbbf0c7472fbca311246ecf9026772377ecf7372285f442f74015eaa24ea6cf3b8b4d29bff79404aab807551cd775defb2df39121e3cf5df1864630fe3c6b2dd979dc7b5cf78d69f4c6ee1bfffb419f8f08f8a49078768d74a3167f6ed482c59c61390eb9116585b5d65afbf9181fe3eededd72b9cb5dee729dcf2d53067398c31ce773bf4b170e77491d777d2e37bacf7df04371acce0ad3832a1b48bae7de92524810e4462d77fc8c78df3dc7a47dce9003b03e78bc62ae985be323c55e1c4eb16d9d68c2baf524bc23fcfa8d805204a614914567040ee322c690abceebba22ae3839c176c3e0fb41114edc1be0c009452c7d4554c16206633142378d63f9016969fc06244b8ab53f58c4b8b558c06051a202b88a7577777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777f75ba5cab52f5ce1b37befbdf7de7befbdf7de7befbd66fc0a50065605579cc0f75e514410388caf74e1d2711ea7006bbbbf5c99805b7b05027edd1b70650157a870185ff181882b88d8e20b1144f0ae7c5340c19de0968008100c810825dc5a228ec0442c5d772292b2b0d676eb60cfe00e1bd0832938cc35008a06785935a009aee3b80624b16ac095ceebbc064cb1597c196208a4e3f03ecf1b220c14a6ef1ba2892f437021610c9165882ba924c0ae055f8698b21485cf2900368e998d3224eafb41140b9c71af9924f28efd2896fbcc307379ee278aa771c637ce9eac9105bc662e8f67e6d698fefb44d1cc35b90fd8be8322bf779fee970d995c1ff03d33974755e6d698deb4f2cc90261338ce00736b4c2fc45565aea97b6beaba6bfa1765b090a6bf5088b3196648d3cf5e94214da01633cccc402dba088a6c6f99c68e09e2375a33b31961487f0e8fa8cf4699ee09707697987c3e7d6bc4781632968b99f6a29a7d23cb5333a400b07e859b9aedc0c20a2aa47003a7660668e1868d1a34565c6ac643ab4bcd0e50e381393e1772a4ec4bb1160701368ebbd38373e342cd8e8fdcf1fac89748be828cdf9727008fe3fbf2b4f02cb49ef63208c0cb91314fbec9bb5d21051bef961cf2f3d6cbe5a9f1762503c6db3197c7c8db8f54f2ad442467f8c819be67887d373c01be2f0ff7f6c55b9af0fff45d1e1cdee6f04e0a507ea2b85afdb76cef18a05b9ebfa188abf56d52cb26e590616ca3fd3ed1d6bcd0c68fbc49fe3e3a175176938c8adc27b3b4c0f0b2cbe3638e28a25bad160200809fad324b8b901fba3c37e96eb93549748b02dd5aba5db86496162437cc6dc18501eb7db652814990911aff347e26cef8d9ea22e166d1adccd272c3cb2ecf1d43467c178f8fc04574ebc5a7ac4f6669c1e1878ee06e75abb512c5ccd242f4472e8f5d528055b2e1b64c6083c92c2d3c7fe4f2f8787f9b3f90af727cf78e67d12d7724742bcce5f131d68c9309b32456b935378c3573c558337ec770b9fed7ccd225936549e4b2e4586e0dce2c13e9632e0f8f1eefef652e0f8f8f1f552e0f90f7bf4b97e785cb038390f7bf5b2e97cb43e4f21479ffebe5f2184112c39277a0f7bf652e0f93f7bf662e4fd03b0def8fabe0a5cb63c3e5b9e1fdfb5b5581c56044acefd6b4981c461c0830da50c30c6393118895448618048084d5b7e6c86884c5650b0cacbe3541c6998b01c27a8d33f7d233ce2e969db107eb265d2f37cbdd72b9dc2e2c8c01180130b2585ec5971c0b8dd50c19b706c638b362fad6d08c335b4535ceec12cef2a287ebd77d006395b62c7042db6e3130b06ead0bfcba930173f1bd2bc01cc666a0e03a8efbe2755d7b692b4e18019a42fb85f65b077be68e77498c672163a6bd5851e2b3b2a5bf140c25b07b62c56dc799896c7b258823c856ca42690af20a91841264ffcc92412891de0b3185b48f7b40deb74a5090de5b283a78a4fd3b33fdf4ed15fcefbb4fc2b1302a4ce2a1442801281a94694425cd2ca1902baa84768b6519acc98a2a218d4e53b6a2a0bb4fd0dd9f09badb89ee2e0109ba7b04dddda5bb45d0dd21e86e1074771337c89a8dd272fd175ef8f406f33335ad27a8906aba6ad4e7a146e86dd4160b3cbc4d9a6367565b48f989101291900c96965915424acbd3247299babd0737d46c0d45289adafeff4ff361bfaaa8cc36e90fe4180a7bd91de59fe667d8893e12ed443f96d73266bb7d26fa55bdd5be5c4b2234ac598d9d5915426337359677305354b6de4aa115569eb9bb05d0edaf8e651dfe47b99631743d67a7f92a5279442b6b655adace5bd1f3ecd8a163aa486a27a0bb73b4582bd3ac474a3394fca7f9eb99d59cda3e133dbabe1acbf9fc2fd73226b466554d5d679ad7b5b4e1a4abdadd2c4e08c7a36f0cba7b498b36568db4428b35bab4dac4e83455d54cd2dd1e40b296361ca435c795e3d2b9418b4ef326d34a988ab343470f2cfb208af9f0a1630706cb3a373514e622bac956d308295d55d328a7dd46dd1dd4620d547777a0bb311635cd6691b99e3966feaade98bcba9eb96694d597ada5ed6934f2f5dae9a1e34877dfebaf661bd22a44e386283937158d52d6846cb55466a4d6f25ac6ccd8590ad56e6794b2b69e371486043bf34d879c16c5d2f2c876138a52d682c8d4f2489a896a37254f6028cd07a9a4e598d02d86c25e2f357599b652a8a69647383d884a221f3b3a383d59479979e41e311e1d453d3b7278dcac68ac7c42436d3cba6768714696eee652ae65ecd79bed346139860e39451d86c0447773a0bb973873e6cc99ee6eb4e8449263656a649b61554b19ccd53c91ec60d2cad32cf28344b3d9c828652d96a1a459cd6910a134dba2943598a99e66ba46c94f60288d4828ab25d10a2b6d3574c8eb05cb31141644c78e1b90340345296b41809ca8b9da96d0ca155d85a29435a3d34cd726af97904d4d33906a3520c6b0e91596d31485fd8a9e9fd3f2d5a34fbfc8fc585e61d91625bf6afe6759d0ff18124a51a1a197ade6d1c7b24c354fb3e87dd4d4a5ae66cda475b71276951999b9062222b966aee78d09528aae65ec2c93d0ca34db96d0ca5a8a2a51d5923644452a8150256a2680db5e5354a63e8aae32b594fd2bab698692d33f91a8a94ba696321c9c9da21d1e3b787ae0e8e828737876c078c476ece0d19393796ef25aa6ab4a745371d4f5863e8165190c67358d70720d95dda0466909c391a9a5ecf55a53d466bba942b956a645228c0e7477accc69ce45422a526953d59206cbab991e050962aba54780d8ca2439a7413eb4723dd11dcc1495c54c5a0925c88924d784624d5eaf6ca6ab904dcd6bb9c6d2f2e83c428918a9b5b5145acfacae674eb3ec34d50cc55ccd9a99c6ca2c1382e95013d2a116abd1b1e3f6363a76dc5a79075315cab77cd341289683d4c4b251cc4c89c8b7892129d312a805049669506142e66996b221b9bb37d0dd1ac83114968914a1680ab49e5925227f6cb5f448941c3b91a86a4e8d4e24b65a7a24ef6036c9b77c1b800cb69636d5248254d2329358998fc07448a2438d88915974a2435694d6443593ac28caa4bbb7c840cbe759ca86d86ae9115528afe5aa0a2195b49cbe5eb5bcaa48aad069963258999636a135d368a54d48bdd16eb51b6c4565aaad3c9be4b55c9b189da651a9aa39090278d025002a04c850046b29d4e1000934d1c44d12560f58c9808a0c10e981064141bc9083aebbb560e04cb72b96d7d5acd550d8139ec04aa28f651a0d4d3f13fd59c27e2d652bac54cf325dffcc36f45125dd7dd34da445b48a6bcdaab99ab4f24cf31a253fed445313caf9d3dd17103a8d4c5a29947730d5f586229532747712a7b9aa39f632d85ad6321afb9a56ceb0f486aa2eb428fa1071b40add9f8b8f86aa4c77e3607fe043e7837c9ade60397238d5d89c5aad03fc01badb02dd5d81eea6c0c9a6bbb374f704ba1b89eec6dd584e06f8b77903bc9aba5219ac966b387d438f9abad434c768e68d0867ad1575ef6075b70ed5d7ddffff6fd3420baf2b4421c6e4208583feb5fc587e0233cfd2b6de92a4689afe1ca1698afafc6b68e85f279ba1a17fad4599f67f1aaa59654666fabf16655a6be85fb14c33cba234ab6ad9ddb7c5d402502da6a4a46add4da3c55450f70b2fa8e60fbdd1699e5976f435ff02906fbd00e44fd32813a9a9ab5ccb9850770ddd31747797491a6aafe6356eaf391aebb5ca72326cca7e3a304fdf2b5805cfbf8fc3d7daf6b603c030d8f67e70ed6dadbd7ec45acfbab5b7dbc1ad5bcf6530b1b6b35ebb0d5dd7bbae757a8bddf192c5d6fac92ec1ada9398bfd666b676ead7f33b80db7de61b743706b3bb703b033acbdfea580bb5ecacab036c6776d16dbb9b57e85ace3938987a36c90cf7238ee8f3bd6b93daa1dcb052cc21bb75fc0e2dbc29cdbdb9c032c16b6bd45516cdb165bb746b09fe7b0d639f76bed0e8b633f8b7277ef86d816dcb1db9ceb02697c2cd8d0450d8780e59c86c5f6da7620ff93c5ed66d73f6485b8cd4a816dcebe56e0d776167b36b4178bfbf7bab6e75a77fc8e32b52c67ad978361a0c9b17eea3eb7d65acfda9775bfc1edacc9f18562473fba37d604bafd3ceb425c054fe1a670fbb655d9cedd8658bcd869b8bbed2c2eb2261c16e4dc7236c563adb5d6860ba0034d6e893e94e77600f6b3f6bac5f6884dc17df80d07dd73ce5eebd641f7b0bddcf561af6d599345596b7f5815fc743dfb61ebd6beaced64380c8bdd72d8fa70d05e57c1deeb8e1d5b1feeb6869facc97ed8adb52f9b829fbc6bf187adb53c6f5547d705ce5e6bb278654da61788830d152c00b075efdccb568c91031eb1d6ad5b6b6fda6b5b777790ee66d2ddad16432e33a0c09699c1d51fb403326182288005119a943bc819c00ec63410cb06bd640733c84b584e48400905d0254aca5919015040052514296fe4f860ad707a7690da004f19e2d8a1c0c9ee94360a3dc69c41a247962dfa660c1454b019b3c56d863080ba902527870b6f730415c63c4a852c335c74961739f41037443f06a2fb76c7cebc96af8a279f934daba92bd388caf534531b4e8ea130f3bc75534e017841528d175e93e7d13079dcbd3150413e2819bf5677fa7a300a06ca23006abde10d3f31404420a94bb967c236610a3d1c483ad1808a619b940fcec3063703b61d902f492fc840840608c7272c438d15498d00cbbd6c3e38ae716fa8487201080131543e08b8467c4840120d530d281811482a32e3fcd41313928688103dd30db92758014a3e7c98e6eaace043132a60ca51c594cf0c04520e7242683c1f38868c03971f5e70ad5391130b438e73783e7e1801058cfc300306e04c7122082892c05b911140843a5456044934767c38793ebad397ba3c488cdc144e453c1f7ca4d0e43b62e3a7c8c97404d52406c44b92886d764e9e8f176177027fc6026020e9f41d5181680149dc1539db0da03b713fba1c240ce0cdd4c277a43b79345243542a6025a619306ed090e36b2961c2820fa7cfe5ed0877f02001f250d8abc1bdee8e09855b78219ec93b611c2e06dc23c472362e8b939163fa60d70796a4ef24c3c4e3c3529205797c2d8c03e3e8349094238589702e702a9870e01b2a9d9bc20f492e1c7b8bee0dbe9c01c60210819e304062820361bc70614203490421e50051d42745193654002737d840c30c4d806410c09157cf8e160b0100c0e315a800862001186bd0f0b2c400065a3030801f185e29c440811d144e9060892d5a92b00005b2486086560b464480e886231841086d0003cca2203f4ede962196784c351093812d2f1f3b336080a7cfbb614304217092634b94080049911f24ac2820012ec6f43001131cd080941a68e0d959c1c03308a3041a82bcb063f2ba0920810403962809f2a3059485823fc19de0667099378293f11d7063ac0ddc0aafc244056a0a9f813be14feecce2f852e06e84347c86c7b030685e702e9cc68a38e5207772d3f739b6d7daaebb6b84aa6be39e20090b918465e872b4a288351f682e90c471288f051bf88029a08367a092d84017441296c124e374630544928900f886ab02b876a8afc8d7d39d6e4f8e17247d5d926038f1c1c4738598724323a07490c49d49e25035aa4842ad371f4832ad52eefde070b82b5562803420f003564a52b1c4bf373438df8ae6cc0f9c0b5f8f07e4aa2e906fbd3758061858dda95322e9825d0d6c03ea5c8b51d8e6548473c1234057a33b7533140c140cd30c308647801b851fba1a97cb0f1c98a400cc70ed850290027ea1541d0db6f7e60ec140610ccfbd1a3c91eb3c9afbe262a46c075e0ea3eebd7ebdfb5dd3e906bede0c9e0b15d089c6eb3c7b3dcc03e360fbd1b86392c0568f0d24a594f081a6c3363e223f601dfc300a7d9fd9020835103383302d0073336a72668b21967e7c607881073d8f60049c1644d5e7e170c312256764f084971518908305024222a0032ba260010a44c084161c170b42380fb8ad0c50d32520a1cc15544ca1021048e9a1004e6eb06189122345565061868c273851022638d0c3018452b8819e2ba8523ac8810eb530e9cc164d6082131c66c8a0b182052b7802052208410718604501420520400d4b94208942062b888109b01cb9810da290010b54808213602089052000082494b1820a149cc0090f4c49ca31243f3461191ff440072d50410948d04406861022c76a40f25343134621831648c08821a6e458010480a4c8cf8f572ac4ed831e44210317aca0042468a2031968809529390800c90b3f5e3c3c746a5cd0e03ee3831ee4c0052d58810a4a40820e64a001435811620a162010cac1090c382e2da020430caa140e52b8b1a4b4001b6ac8a980100b408ab2449fba3b002d9a98d0a633770b1c050e0afe846f0358039e01d76275b8cecdb12ef0c66dae0bf765ac6053f01b5e8d4bc357dc0c2bc3f4c2858b2b625598124318281ae08d138de9fb3aef761dc75ddb6aeaaaddceb45c553cd4dd30ba3b77b78d1671daed7275b7b78881f4d017a15ff36a5e91885aff3966aaa7f9aaf9abf93f90d2322d65b02f7f45cf57cd5f9188ba16f14d777f2de20074370b2dde33a110c4f007dd9d6a3114734310e113ba1b6cf166d139b85c2e1c5eb61a9d99f645e8679849533f458b6267fe6c749669778f2d5e5a778b2d5e27dd3e7cf4f8e0f1b1e3a3870f1e3e76f8d0e143c7478e0f1f3d3d3d3c3d3b3d3d7a78f4ece8d1d1a3d393d3e383a78787876787a7070f0f9e1d3c3a78747872787cecf4ecf0ecececf4d8e1b1b36347c78ece4ece8e8f1e3d3d787aecf4e8d183478f1d3d74f4d0e991d3c3078f1e1e3c3c7678f4e0c183c70e1e3a78e8f0c8e1e16347cf0e9e1d3b3b7aece0b163c70e1d3b7476e4ec085084d6ac0e7dec348b8674929cde686659d443ba817cfb682ee55ac616d0dd515adc01869abad628b99da39965d14f774fd147b0a0133a0b3575c5cefc0456129da60c56d66e622d66ecca4c328d66c6709495e4183aa449ac05311b1a89884654ae6769a62594cf273a24d6403d3d9a349141759d66293bd72765edd1f5d31c4bd13fcd4789ca3f42cf27259377c1b24dfd18d29a661b9ada7eece9a1aaa36af6e869d2e46379cdb1168cbceb2c612a5ab3aaa9794b6dbfaa3946435b6fcbf949ed93bcab76ab9951cadae77fa92cfcbb64b2a19ccad6574fb35c6b5a9f555a59e45d433a76dc86866e695011fa43b9569eb06c5387deb5aa28ed33d17f363232d3f57c743d51d8d0907a9be5a32f323fabb71296897ea8c6e6f50a6a0d7db621a939cd6bce456a09fbd3aca9e659ca60b9062bd33543c9b49b556664d25e4569307355cdd3aca579cd311566da4820195d6119ca9735396dfd9749deb5aa26ed878204011952cb9c7e263ad30c259faf9ab17c7b24da6ac24c5a2daf66cc95e658996536aefcaea1a14722fa35377957cd6a3eba7e14b505d556d65aff2e35cbd4525626b1596f365a59f3a7a9d2ca150d7a17112445a789a6f9861355926ba51258b6353991a0416a2c6725b06c6b02438386103951259c111c110408d3dd5c64a5aade5025ffaa69957f03126eb0a2bba5e897adccb2d7d010941f1a5af2ae9a1cabccc8ace568bd4a2bcf57735ad26039f6cf802e47c812012cd4d4457403ed06176ec0d1dd4666edd1f311700416ea0d01a6348d661609d9545568bda15915a2d1cc2742b2d53c12d2e1d2d171e5dc9c47684a24534b19cc869e239456946628b0d256c2fe656a79c46de03ef015d0c095559406fb286bbead67999646ff3614adc17472a9b17c669306fb1355cb9ca66811d3c9a5aa2551f9242d6b32d899893e458bcea2a795262cdb4c2a66908f90d09cd6100601b51edd82b628eb24a7dbfed8155ee86e2674f3402cfaba3b8c151d86030d02a220fa891428badb033278208abcd6a8eb99a1e0f059166432994e331499b51874d42693e9e432994ca71a9cac9644d928966947e8f904e7cc382a0c8de140c93117ce4bb5adabac95838ac3d7d055bd0d31994ca7ee465b6c12a665d0dd316815e7475b1b17daa21a0aaa90d169a69d9582bba67566da0b403e66d652452d32e9d2dd308012cb3afccd4933cb1f27fa44b55b0afbf2d52c536fb6cf31f41442d7d3148a9d19a6e658bee9906342b00c05473d51f3bbe9ee02b43880245ac7e7785b09138ad1d07fe185af69d94a98ab8896d51d1d57cecd8aa2a90d0b3d65002b3575e98082034bd51a2c8a90cdbf6cfe2594665aec2c65423638ff8ae5d8792bca298e7aa3d9d2dbbf5633965398d0690ad56051804220224043806a808e808c809c00b174ec98010d8a759b20cba0d268a43a24cd4064b99644981c6525ab5acab0aaa50c6a0db65a7a44a6964732cd66a6416850cc564b8fa8ab5aca00b321c7d0214d62269113fd5962ab1161a2a62eb32d0e0cf0412da27fc432d123d188caf556ab99aba99a45660cadfda09566ba7e917943cd22f46de8ba9a51728c76438f64e0a2e6954664aa2a6acbb2352d3f434189cacfb215553f96735afe8a24c750253e44b29906a5b0d37cbd886ab77408adbce99067a095b9494e8156146592cd34a86d0e6ba3ad79a2e66ac64e149653dbc750d99a6ba979d321a756a6a62e5836775c3a74b8726e886237d94cd71208c0a6bb5fd0dd2ee8ee160489659bcd4c57f55553cb23200e4377a72df2c0a57b6845d1342d6d7fa4be8484942c41d284c90f0d423f4648264b829a0809bd7e62290acb4ccab5248216c9d4f2080d317035cdc5d0c10d1a7f20964ddb0d0643bf482896d55be325d6331f7daea14ddea512ddd447cf97c1ce32f5e99b54d3425a6db52ca49a2ea4fc4488658dec4a658aee06d3dd2c1852724407caeb55a2a69aba884c1a14d309661ad4841545d347822b462408a2112090d20ce5737a5bcbd3c86cd25601302320b03818b1e9760195e91ae5e7f67ac1cc583e6790a9e591273094e653ae2591a05f4bdb2d4dd121ff62b28409939f7ca3a131f495d792662b6b3838b6b2f67afdd0f809f26376ff2b769a4fdee65f2f989aba70d4d52cd39b1a2c0a4e0d16e5444d557dbd5254a8068b22b4a619ca89c288c0881ce9ced1a163c751c92486244a8e9da5b9d26eb59cc662a4b9d26e497270f236eb0d7d9a1687bcd0dd3a2d0e4175b7cb767b1acd2c7a1acd245bf4e9d2a8b996a9aada441f1bbabbc98f1112480888fc39f2e8fa3a3d7278b8746c6596bdda427e241a512dab2a49946b20a5209d2093201b4006b59a8d4a9b102f48e8fa423620c4869d1ead578790202942d7dc44888d90140c4280214c0771c5b2517ab3bdd16966a2d49661674e73514e1f4df30e65921661c8e96ea3d3cc34537664abe57525bbfba7c52063da15a44bafe8191464a8cf5b1a3363485a0cf2f5dba4689a661c9cbceb85ac963985e5d8114aa3bdc0c3bb86209de51b9d261afbf586be70c30b1c005a0482459116811c612b737a9222909e3e6fe9a3ab79a49aff67699496b42742579aa996b21b10d68f30dd2e9a6aa24a7e54e96e178d762b7ad5cce95ac3bb90d20ce555138946b379d57c576c488662aa67b645c9ffaa0945e8f582a966edf5424d219b3af42a8d56c25a3f54d3a4b564e85f436b5685ce1286b49a51326da8c9d090a126efc20f89a130578b3f96747793165f5abc88f07ac1eb04af9af862bdbeee1c9cfc4abba9397d9b58566f42383871a9b78fe57cf4aa8f29a20f1960514e14a6965f0ea0c59e2edd64cf5017a1b17cde705aec69b52bd75058cd34531b9ada6ca5cd0acb4545f973cc54bf7c951c1afa2c0b72ade859b422f96c5b616594fcb1fc0485729a2e918709dd7da4451e0ef0ecc063437703b5c8f391218204c87a66283f3938f998f9383871251962c3efc4768874770e3d2ea3134d8f3e9f68ec8bccf48622fd13989922a9657ea434d3f02e9586c2d0154d6d4f2b6ba9aa66552d6d484436eab98379a2a90c76223579976aae678e9dd99663a759caf28a2a71a525ed0633d7b4b47df927fa6a8a16d9b901a687da63051e60bacd2722fad5ace58f9d657e5226e151c4c3070fb13ba7b01c9ce0e084147778819945262cdbd45ab923891d43edcaaba9a22bed5616e5d8cd899e652ce79809336f4dba1b86167788dd9d8313b4e8347170f22e241aed56a4aa1906bba91fcb6ba6d96a28ecff24451d62babbd1a213490c493e4da3f347bda967564f7408508e8effd173c3c1fc1cdfc3b3c38564e86f90f293cf271ac3d0908a949f0c7d113a842406243a3a9d21e84821ea3820851675a20441ca3120e527aea1219d95cebb00f4399ec78e1e578e4b3d51f3666808293ff92274086868a806c845bbc16825ec9168792dd31b0c563e9a8f3e8a59245bd31c3b6f7f7b74fd5f5194c9e747aae173e478fd042d51922387ebcf0cc53442ca4fbe546b793569b4f2693433869c21e444912382eede6931c7871c1dddada4459c1ee064e96e15293f21baa94839861c436132b594b9866818426143345a09337f5c47f98495e91a253fba7e91eef669d1a5831f2dba92e8206f5383d93004488a16a1d1ca21b472c8eb757abd56d82d5dd5138509a93976a3c14e53e8ccb1982913326da5904d7dbd8a6859cdc1894c2d654236a76964a6280e4ede15cb39fd9b13fd73897843a6656a79e4f50a8a218191af57500e4efe7170e24a730d75a2bb85b478c383ebcc9908478b3747ba71803c00bec9db64330d1af22f35af665ac3dffcbf0f91bf5141f0e57b7474b878fef5592d7dfea646a7b5e451f56d9000913f141b7a35ab33fc6bc808a509ada68ada726ce8d1f569b412f63a7fe3aa697d5e332dc73e453faf667af4d9a8d4f99ba11a9dd692a1bf0902e401e0ca66babe9a8d8ef2d9e4c6d5dd352dde70364ee8ee558b363be8ee1e2dda2861e3830d926883b6d0a2cd916e21351b9da50c16240866dad0554dd534d76eea89c282d4f28a6455b39149c408a5ad678692a1a036a12865ed2cd79248accc4756144d856a592d6540592d65b6203d3720b04cc3eb05cb505eafd8aa0ad9d4722d63eb794387146526ea7a6613661615dd5434c34ef45c4177aba0bba1e8ee1474f797ee7ea2bbbde41485adb7253ab06267f91956d26c397d744d83d4d4956165519ad7d3bcc1517bba9b01624d171b9ac6fe44ffcc4fca9506b4e8348568341426b4c2328d86c26a6cdd693eb3510d500d8f4ef393143daab92194c59a6e55884cab620b06ddad26babb552db68e28d73256aeb9d6526aaddd2d27dd276aaa69861233a1a0a9ed4b9fb639b22851c2b472badb6bb1154337101433c3321335964d9acd46a6e8daa4882b9f686abecdaf513291d35ccf1b5a2bd51c33d334434187d87096fff9682817c5ce52b69e37f43ccb4fd1a2b5546fafde644767567fcd48bfa2a7ed693473553fa7e5cf507e4ef393b4aca5792d8f1e28099323efca37a45899535af9e8a3e71799bf6655c9513e8bd0b4cc34d867a2582e42ff5d46a7594361a7f92ad1c7b299a625ec5533cd6b51f9b10ca5543f7696b11c2b511a119a8f3e5666d9bf2b964fb35c89d057cb23d554f3998d6a685af4e5a32aad7cd5a4113d5259534dd9fa43273af4a7f92e23577e9b22f4330c4d6d4ff43639458b722a839539d75e353f46cb66d1aba62ce85d69b6bd5a7e7a3b4b289996d3b5a4e534d750f58bd08fa1b0cfb2b53c8d4cf5f3d1cb60a6ece8d7723d735ada56b5a4c1805464aee8f9e8fa6b566b78976aae59fd1c86cab52412cbab6aaa69061ac24135bf7ca313a5bd5afeaa9a5132f9ae1c86d42c839539cdb2155d8f5c67b6d94a59961dfdf96b799ab11445614fa399479f66d99a8dd0f56367492b73fae56728a52c87a11c4387189d66eccc404338fc9965ebdbe41bad84f2e5aba5ec57f38b90bc0b8966b3951f3bcb5fcdacfe99f3d16a5353b4e88ff2995374551f5d3fd7f0b17306d5e8346db6929666284b80907c627935894c199a0219993e01a23ea8e40b57763d4b32a5d0cc0888000000003315002028140e0a458301711cc489e4f5011480097c9a4c6e42174cc482284671100621641421800042000c0001a931880023ebc8a4f917736295e480c3834f10d4848a3dbe44f02cce07f03d76708415f8b2620584da6780e7a4f0e72a51f9d7b84188c268546307c5d0f082027da03e65853aa8329da77b1497e9f22b58f1b2845c5d9eb4d91d0c22a5575109c9c686815d226e668247fe8671c97b579a917bda400fdb4d1b4c3bce7b79835ef30a34e953bb2d832e43281028a78b9f2fdb7332ed61a0cd3c949ff53069c35c685e9d45cce5eaa6dcaadab3202c7ac5f1b436dc114fda13352b78410281b1c7ceba56e2e07e39847fa2b19d8f62f106e4d1c97e74a3414e8c5792adcbc9770e22d4bff0543aa0b8c2b30ba1e0786d5f56da03f1c609187a15cec8632f5ec8cb5ddb66fac8764c31500f8adaddc8b0ac2963c0979539a7d2a631c8cf00b5f25990282debd94f19292f94a92b253353c164eef03288dfb5e475e6ef973440579a5b43b6a0c989e8faa7cc4ff012a2d5b4672c8697042be5a81b5f1f583088eb9db70088a4e1793fc4cf8b0a940eaac2deada6b0b63eed129bb1bd81f7aaacd32f4e2672bf853e9910a1f5e4e44863a5c2f37fa908a302a5ecb2dae420b7acc59e9f30a2dac25a7e9b396e0298168747718ff7f03848adb164f2bbeb01610951a1647df4a5290a1c722c6b90532a25fd8e8868460c0228c9e21440af44d1d350586e9dd1799e2bc69e3de2837c5f8ab19e50ff08727db319132038f9fbd512c93db2a099538d8301efb0044244732259fbe53d656803b09cca243ef7fe54f81d7198d849b839e20af443ca940bde86103c6ab9e989db1349b418d0304579a1f27df42ec78fa90b45a3f02fc4203fe669bd5044a90c3218f8c0849fe8f1b02dbf97cd60b4e183915ff51ffe5dcc2e0d5d653beda23b1ceba39d9ece60903c1386e367133c6fc1804e9335058914964b041564eed8118f65b96e94f98f6d7d05c15bd9c596498426a87111998a5ad2cf73d236f3f7b1503d0001ce611e9a2d0ef44ae010913037235d455d1e3a3dad8e15e557bd2edc79ba4ca4ba050c8f79b3b4b1ab85c360f9b5c1a04cd428b5eccd10ee79675977ea61194d52b299cda55c5eb80c49734255a3cd2c894803f81b62ec7702e57d54046091feae5af06a6fcd9b36c1b1d1ee08ac126b2fcc66ea40a0e3814c7d473023be4ff195174679b5a42282320cf95915a8b2a6ede9641a55ef4ad45cbd91d43ae0d924ecd54c310aed3586b17f76765db96c9d8452e992472848539fbbb2f7b91ea3cd7c0ec82fdf1cb0a56bc2c07a3c25f83ce01562598cf8d43871b92aec3fc17f6f7677193b264744e1695e7c8030e6b7cf78b71dd3132a98c1cb71064326dafb6492b35ee5f288503020e2f9f57e2599bf0e7df3d6dff59c55e488e6cdd350e749669c9d7bf98eb0da20707bd766a3fe1017f0fb30a4be46eb693280a1243d98dbd18d7c5341632fe7ade366f40067f75ffb9c96eddf3dc5268a9160675c787b92c6e462de98ab993cc5462364cd6d2b3a23ac3741a711914151520348db9e6a880ef719f2a11928e4b6d3744327bcc1522034a56a80d6d3c5efc018c1cc2cc2c72e1d67f62dde78fbeb5f3b75660136899a96d16c47ad1f60ec994576cfe486ae81c32be3b408b1a0b437c64077c29d7fcaa4f0594c2a6fdbaab23d760216fbc73d4b03a70dc05cdf79f0545890c74678e7c36e8e989c97259212affc9d1d4efb264628c3d6c8e4f7c9350270614028c7fa2d6d9289e758848109305b76c6a9967ac55b003d4f922aede5e008ce296bf2c6f52b482e28d9c78fcd2087aac33ff8e5f3cb65db9268fbf2c472f3ad74f725eb6008e9eece1dc048ac1162ff228cc05ddaa4ddbab7f9da1430c3dc10f98f4f668185ade23b507093b0505c767188b8192de3713ff3c1f91413b2d6273d7b0f72574b7d36b744c6785f229964d857ea391f509821c55af026f496faf583d73c447a6c9030e9a3c55c64a683d387971ee6e1d6105aa36f770f27fee7d97fd34fb972aeb096f1c7a6ff35b3e189d34a506e8f47a17dd1ad66138fe3bb1bb8c7e40982b0068d727c06ac112d2cd6a338e19343f525c573b07b7c6d7b32814e8102ff82d751f08b02a52bd2b17ae7bde45e1cd77ea4a5754a5b442ddc7bcc2bd1cfb193f0fbed41aed1c9790af5288b53aef36a17b837d646883cbf110e43c7b39b3963bea3a5d12fdcdcef14a8cd39cb0c8555917e30702093fd19f864abadeba080703c0aab008d36b1a823868b891463a3f25a52e31687e1bd5a5a1487918518b743095ff6ad8a545008370c972e4064278a0fb083c32b2bd8a42a7e7119fa534058a3c8fa7ba999eb50a893a490f5d4b10ea4e94c027ed466e34e66d28ece57d1a2035739d206e1aaa1b37f3cb3e84119cb039588a635d795240164e9fddae3318d78b27f90b5a9149034edcc8480785fc34a0e3b8d09456961eb20c23414a25234dee133c4990ec78ada8779bf7d21fde590b48af7fddfbc31abb94679029a87bd4967f0315098fdf60167930fd6b5b5710a4806684879d70894ad8192debfd0269be3c606c6f97f689e359f10fddad1b391437e1d9cb681fa52e8a0acfd63411142b3364067b63b786eaacd10e9cca6d5f37e229ae79e2e8af5e83a76f4d670f253c9b88f52d2b390c8dca3f759f0adbfeab33db221a4b4d11945a8732e78f70860d22848d7afb92a42d233159ac9f3283c2e0ee78d7f779361c2d6d40063f171dab81bd6b94fff2182ae21b1a38d787a960de8fee426f38b3475d5faee528d873eef395d8419c41ce2ac138bf960a682c2bcfed19ccda40256c6992cc677192cdb76df223607773398fbcdc3ab1ac289ba0e7494c165a13739992ccea553f7d58fe8be44533d17eec37dd96d9f4cf490486567c29b03fd1c290cde96bfe45f0291b07cb2755d9336c39946aff671a67694f50921761c151a8166721bdf8fc34c850183a24e00af223e0acc9434a505b115211d0cb3df2d489ef3f147f016a7bfcb19c6d973b6c3cd335f931c9499e70ad2d380aa2578786ae98e719446cc5162729d8bc6a9b4132407f926868fb395557ca773537306aa2a86c48480768639c2d086d5622b2e5f26464d1992e6a6e5a4aca12e012a5ba889d53e461d0e5f86fe8693e3d2ab629100398c503c6efccf98bf7d8ff2c335748643e8db39aeab9eb4838e3675e55224b00ede60b9f63d08264fe38bd5357f6a8d727f60d8f046bbb24075ea302c9b6a345262dc7bef92ff89cfcef0d9d1afe5fb81bcc920fef34a7e9f29e15a16ffbee175b5bb823ca346d953e76667a276b021336c635631a3b31814f0b69c66919907f6d13e383a911a451ff33b2ad662175ec0037780961bd69609cfc0aaf627a8ed5343037006a6a2cad7b6595fcc6b9d0fbbde03fe5d50b548865b8144d4b7465981fe973ad2d661b9e87b9891bf45256af1ac5f6060ae4afa4d01db75d27a0c1fad49bc270a03a0f52d79c84332502ac150840b5259d06b7b43694e4972b16743ea3a3a551eabbe64155f75e324240cec434e0928cf7c03cf9f07acba32330949cdff426c7d681abfd6191b300de39578ee7ec880660223d5624523a7c0618b942d40d89d5227efd251f771e23619f79c74be5fe9d1a7dbbb8f1de2c8bac5e181099f533ae753e8fa69e703d26ede1ab3d88b8153ef204959826a2c65746156b74f96de4a229f9ad0571dfd05b2929fc327f02d8f90cd4a1b1322a95abc923d621c63580ae964d6c57a03044dc1c7829cc041fbb9b5d221379b4c693e3841118f184b253e770e9314f6de2288fb9bf188dbfe0a76141bd99f3f4b286d1e98c47b16ff117f5db3a8a9c3edb61ecc7701b67d1afd05233640ff7d64e7e0c171d93184215c41232bb10617991b4d085c7df7f2b81e5f78d747db783cb96c3cf7c56000601b41c3d9dc6b01e05307d8e5f468168d5896061d17d3636df256003fc5666b11dddf62d3c520b78cb9db0725312c373f084082f34b7325369f3ed026f3c088d18db3f13d6dab320435c88b032736a22ebfa4da3fe240ae2470c883ddfc09053305d0c3e074de804c67f09a0ce53599e0685851276ae3e22aad0a80c037d9e2d4e651c91e330cc2c9761db6de9cc4983cbde0f71bcbc89b312dc7091833f05361dd03345d85d623a1405eb796b9bc68f87a3af23a0e6c6e52c05b4950231102c7b43b9f393f8e2332142a051e8132684b80c52f81e2fec9c8f2d39bdc70f858ad175033709d736115c50a33d6440becb009574da32cb3038afeabb088dfa4e93cc661839554169288ca930bdaf6e43dd29f7ad5cebb8cbcf52e83439cf60a222284ad977adf9dd21c3539492a600e929b2a792a213d629ac9d8dae626badfa5d18a6e1c04a4ad7ef27c2d9119a5c803ccf40838dca47456843943ec8e655014eb8406bcdc4f79f4d722a1682fd98905808d16c01cbcf376c68725357ed1be9c1ae630146ff10f625aa976ecb5d67b9b3ab25a4332c1a4ad57c247ed5be980840d8e2878a809b10fe294f3e60bc459ce9a8471e405a453acb7e7a10ed69fa7db5ade8ce2a712c0db87fc9919b75dd5afe8d6aaac9314e3635f2efaf606e83af39feecfefd42ccf0bae9f028a7f5586613bbc9095c52ca8a9a16f43728ee4d402c005d260295ebf0ed6c89ee350b03ebed63537e2abf27753e9a97ae125d9ac2aad801ef4e17f8de3c3ede27baf2b2e7d8ba86439a5ade1cb69877f278bba35d33c31f1dbe679b7caaffd7739d37b94786a66dba3b3b16a71745ef54bdd93f517484876238a1c62a16cf317dcf14653f1812800c86f2cf2ebedd1d6f3fd7cf4787840719340fbc925ae8a78ef2b38f710f1074fb6da85295e5b168c2bdf253df8737458ad14b4e092752ba2642bfc479f0841264a5b60b1de6737037ffd5f14d3b87cd0dd58131c8ed6978bf08d806b47570ec8311cbbb39f2a77af8e70b01b99f79f8e7dfd074e5264a8ab42d6f8ef75b01aac17fced3db902a9a9dfee3b0411ebc189dd5f5e8f935c58aeef4f87fbdb43c6c3a70c44db4b0ec5b046ff68e0fdb12c66c5bd64ad629516c45647a38c7d4c048ebcc20bd4b0f664cbb886c5defb56e93b6ffbc22dd26fbc91bb711dd34289ea9f663e5e4db65736fe52151b0faea2587a5944c517d966fac48912dc48c1aa21edf5f33a2be21ca375b0a70de06362e210a97b7af071b436daaff2b4fac97b2385b5d123addaf81c707470800338c8e2b91c9f25955ebc80344c7fc069b1d6099c1914f6e0dacb3d0c14cc5e88e11553585d25340a84f50317384b08679e6ba3c199712d74ab63470cbfd179406afd3a929b4110b6eb64775f4d43a44d25b2d706ec5698bfadcc946b77d8f4cce05657cab944af0b0091a1a1e43df054403d67d907a35e10ef2466539aee5f1978dbceaad8ee871b3659b862cb4d4b749a3b7058b1f105429ab4873d2d08cc3fdf95568017d8b3d6207b6e10bbe841df9f04deb20cc67ca0549dd5a293628335dbdbb01a935eda5fba219c2ff9db5e910152079642e4ec320bdf06816a413990aeb538a647c5e7962ab4a9d2247435c9e8cdaabd56ab8dcb100b84075ec8dfafa943fc89bb85eef1cc1ae33bc1759c4676bb9dfd3f65dd267ee52419725c5256186d8f31cafb261d8f530c15fef6f5f8279fd312faef504f89df7e8c3e3ffe5e46a7836845a675b9c66787fb788a2118203a06e4158307f281d39df1f09f06a1040fd837c704026810f0fc4ea6f935ba2d3a3dd058c64b019a055f32ad40b1c741906280d2086f319722e9287aa9c2a1af9ec9005811b52f323e1b7c7329601945f5ddb7d16d79264ddcf3e042ba5fb3d4e0f78d9dd6fb98cce4490f2c225aa51055f05a20567500fa86020c6a9a1b2054cbbe1fe595dacbd73998592780405cb6194f9139d1e373877ae4a6f85aafb87dfef427a9ccfa14bd4774b2e1ef4d0ba685df58e5d7059a9083f7b3b2d61ff1cad13fb432191b280aaf813a94f593f03a5616b9b67eb552d14de366589506cdae7895f081614dabb5649d7703563a24911da4ff3be88ef39497c3840311332ed596134acac5c6eecc271bce8fb81ec31cc8fd4decdbe93e9b6e8367e1cb4ea7b137f4ad1730f37ccb17d34c6ba58a4bfda5b410dcba06659941e2da6b9a0b58fd1b3154f8ed5c50e6544e11a4cfcd3f52ff3c34448c2f5fc12dde6bae13a6aff49ddf4a5b02ef3d80a4914da1ebdecf05eced1a36d801923f5fc03ad2b7dfe8798dbbe1892c2f6b2ce6ac12565800f23166266a34b28dcb2445f33e423b4e5dc72d33decb451b7aa77a238c9953f665b955952699edf8f742754ce5372f905929cd0d3e667eb0045ec63c18cc97ce953b2bc53c10da228676deed336d37131ab160da800637b29c45499bdd02620a7c149e17e65b2c5e150ac0a0d31fc2f296801c4281b79268505cc980038e32a36e798439d1a16463fde11d55f86a58555a22eda54487c67e0b529e00d6aee013e709987c574dfc84fee2dd5c8d7c016ff079d08ceeb34c7c162f72f4cf810f576aff437bebb5cdf7612f6b0eafc862864a537cdd85e195607e91ee084f9243b0396f24d21e2bfa5bf55fd32c804af4d2ac9c8efecefd14d48c37d436d09937fe44f7ff8b71f8cf44fe2610639a09360634f5f7194cef7edfe43e63d9417b5e8e340332ac8606e0f13d37b642a768bbb3216c5e1022c20e4342e84114357af70d09a637a0d6707e247ce891e0b29bea2152942ed6a5c1bbd9ef031842e34f597666062039f082fff5f2ef876abbf8c210e12c68dc31ff9442b1c31e760f1ee58ea336f4070519f297fd17627adf6953e97dd35b7fb252df1fa86b53ed7cccc16b5620ca6c2514ef61193ffab06fd41659590fe9e43423994e6e9e17fcb6bfcdf1074dd1f6376e7eaf3faa20c14f16f4b86c4fb418eed02d2d9f4ae63def65bb2cc1d9da7e86c8f2cc7488791dfdc86ebcb6a797f8e82fb68c6ea0f92191af3f87099e49ab8b1828051fd8c92d4550f6ea4c7b9ff6a0dcf2beef4cae9ee5513e76a9372ac0ee17aadc0f687b5d40ef0f8b6ad867282ab0ef04eb05b9a82a08c6eaa5aaab9e5cb2589978012ade419fbabf88c316e9d393ee3b9dfd1189c09a45fa4e40dc1fd787bf6459853989c9551edc9dfd064efcb4f637780ed0cb11b7c3c309679dd6c56aca2cc7dbb9c2342c6036c34dc89c57c3f101f8d85f9d6d59cf0f66a30be53af0d677fd4f69f89b2dd2ad299527ca25bffe9cf43f8e77de17bf93b1459bd9305c1d55f7ff0704f087ff32eed358856119e8719f760036f7fc4851233b6b3d8dc1359dd5d1184ecade4a92904978a3a43523f27515a5ce66bea03c7cdf1b600f41916ff8ba4ce63d6879165367b415cf5c097e38664c0be38f46933a063daff05b0db8cfc265bad8742612f50ed608fe52249ccb8fc4f6a2f0b17ece81e8758cba9398eda40c0ca35a1a179ff32cfd7a10b8389a7c2b5166239cceb93e82070ccf97d596d7579a20a62d4253e8c16e32499f8a38f8633583f690c64b81016a9781f6fc80a07844ed897fe72449cce45ec09b7c5c8eba63d66a2045e24ee662980463751a31dc745c954545342ea31ba987451f70709300b79063d4d3e46835e77298be462a1081cf5468cd040204e3df669038cae8fc6741d994e34b85a7bfcd11280dfa46085c74eb2d624e32cd09fcbcc0d0e9fbd45e964af7c6a02b56c671293c48a5a82ceea17e14600d6ae368823941ed9fe0285fe88d808eafd9d1bab0fef601aa76774043dde19a70ad96f52585db3617bc9e4e1bbc00b1a0cdb8f2ba780ae73b80615d3f46c90131ddd3a306dfadc334e56386ffe8ada1b7cb41af9502578bcc2812bc9188c77635755d840f354cb965345fc3a28b6fc0b9ae048d405171ef363dd0c1fc39b02ac129360d1653b80a685d80a8d2320cbc6513481ee499d40af7042c497753a25b900932b194b1d685f6982a4c2796fce0849a6f2fda0e92689db0c68de313e725409732391a4a0046a8249cb42068f410f4b96b9c261972474549d415e8dd39837e9e82bfd9dad509bfaa4ffc079207abefa4fbd44d2e26447ec261e34504a8b55c4ea7a467680a4788fb70544b3a3ae8e1eaba04e54d34676476065548d7dad0fd190e1ad42e32d6c94135d3bf98f8f816f536a30316042cbfdc76aa8108190369a52b8ccce111771670869d057d8976d1699c3fe0342a38d7418063ec59d9099f6e4521832cda1b94c7c086da557c22804bf07bb301719dc571811c99970abc56bdbea7a34cd8b18326e03d00974fc48813eb40e203bbbe72dd05f4ac27a9538e608d326adca51ad3cd1aec1d997a74b3b7e9f73c0a067deea051d9316684e3e191cf8c2ac8cb4f596e832ba6831715ab40b09d5511304078918db121e1330805b3d95190a3e66bbcb4a34db6244868b5bf3c308538ad2b300796132f9b64fcfb3f4c00ff13f8f4caf8e8c8207a6c6e1536ae879695f17c061eb6bbba0be947fe075e4d67763213640174ce645b72a434f4f3e0c6c1ed3d937b3592beefe7695db9115fe928372fc8be17a587433db8b5de59d6ea7fd80a24e04f48b0e780ae629bbc4a3ec0f0b79bfc8f3639cb7e3bebfdc31348870fee7f0c0ef573b680e80b647c6dddd165850b7b34e07ff6a4e00b36c338e7c3492f4784041937d983ff97cbc3a08bf760c00d7ae37f41d9c8d6bef0161acf7e2a8af1b2afe7ca92b140a5ae5a57d531fa656feef083190788ff5975780d2312503e11ba792d921b0accaceab9b7e7537d522ba063f18e7ab543174b755c2d6fb70a40de667ba6118918221758f0e06dbb9ecff078edf2a5d7005449d877fb553e087c22e1504f3896bcdb22ba8630889c3892c0346c536ad226b3e60217341107b7ceedfae870ff8500b047b60ed60f868b6d27227b83b68a3d7055d4507e79e4b1997becba2e6c17e50dd697b99dcab7c42d9c5f4c39646e714081b77b26a43f3502da129b6b0f59bb3a0b6508e0f9d50ce9010268e2b24201e4521cd71c152b4322b9300c3c05518bbe4d7c93534c385294011c00ae7f8cc68432d510f0edf4aa121f24a3cc5091af801280c1c536e928ef3e3e4c4fb22b3be74996cfac519e7debb9fa2b54453cf86a62d85bb6fb541134ca8161b5e0129135033a0dd9c5288fd50f5d331b0c20dc093f73c29335bc7043a45cafd136e5b4cccedfe6c8355963e36bb8a6333ce035a1ce2fd57a05e5a332c3e9a36f8c3f5c019fd84226147b864b3556ccdfc4bd520fa483bd57c395e8f91e8ca56d1fc45c4217da54ec92539956446894ba89677bb0445e9c9861268a71da8bb09eebb0fcecbeb2b909461010e71f9a48874b28268c7a1c7343c38579621bebdd160eef3f135ed82ab42183f9318f319fde41e09b0eb1604e5bcae2b0ff6996415098271db9db4f58e15890e15e0bc16e08d9575cb046d2f5b545740cfc543a60380630f842f3ded9ba57184a54afce5f9bcfdb3081a7ceac8e8853d31a886148816ed2d3503b5aa12d11520d17e62594c19bb3805c7ed7b0e488639441466e61885202d987cb9dca55529d738f77289f093fdab7bc958e7c9da35a38ad40157f77c11b999b27e75331e86d21eaaa165355f4642335b2b921f98e7a94d5a4cd3fad544a522840ddaa6b8487a4d6f051a7d833fd1a02c1dc5d33e5b100d3395a0ee6ccb49af4d16ee6f17e8e704bb17d828b3d812caaf5d0e61a5f105fab1a9d22e5b0d1f77a21b1f15427ef6513d118adc17f92bf215cc05a5fee8f4fca48a6152c40c948e59462bebc010503dff0294c37407be705ea82f75174ca2ef23139c78c2a5b9fe5e4025143f3b1bc6784672628733f229b2900586045d055681be74ad1364688621c912a25d3468c42ae54ebd32ea8f57f10a1d92384790e5461386e24cf4bbdbc854936291c78a94918a2a98d4e7495d359ce3997f9bc4dedc51b0cf471680c8c06227b2a69ef6e3075e7d1eadac7e7c1228cd73f82d75c78783ced002948a6d321774badede47b7715e9f5d7c574e4f00eaaec934b54447cf60b0d5937281200c10f93e0ba34c62d89c99fac6a2f72d50f5ac1c4735f1f7ae3dcdc0b9ccaac4c0d6d559b145043da2dbb7601f9a7c81c919a14a0c92ee35cf0eacd07df77e37cfd1a78c312f88ef9f95bc10f2681d688fe7f57e0c126505ab2dfaf830e4681ed997fbf0756d805b646f9f88dc00f8340ea18bffd3dfd895faaf8fe0b5030919e4d5b1438494fcf260a46d27b6a090ae9582c6578b5580e0581ded572325f77b10657f3b8a27ca74b9d360b5a5b93c77ff34da8f240af061f462c35b0c32f135316b33f172cec77846dd10f1343b407c6b96ce49bf871eaca36fe6fab71c2c217d21cdd0634d5ef4bf1d4cbe89a9f33f457d1b647289eaf65af0f57522fdbf6aac23b6fbfe5edbb6fbff5e6776f7bf3def7df7aefbd37dffce66deff2bbfef3dad1cf128198febc61a33feb5feff6d3a3e2b7f8bdfe79999166517888ec6c8163e1f39d38783b1451e29ad229d75567018bacb1cc0ad6ac65c92ad6596289d82d9d5c1cacd138c062803a091fd1b508846b8b0ef6107e832045fa54d64be2347509838660e5de50adcf4262c744ebfd4987c5d7dab1e690291facfcc5e72d09b129584e89bf807aabd84270c0ab7a188ca64b3f211bc27a20880ca0e61ed380ab1c8020c977cbf1b33e4a744a33e73c890cd689dee9f5e9a34462005144c96a574c3ca9c6ad67591e257aab62e8a591a7dc1cf1b17589fb5b30230945a24986d5d8e1c3a186ed600867e68567a9352478635f959cd8ca2683ab4d9d7994cf4c0ede6f9c511c75e6b18912dd5abe9bc28a5bf8254a34896dcf19c26e4c51a21fd5f45e29621c66aae0b985e80a18faa844db4fb73ad4933ce2c4e88e53cace2ace9e94660666941d4ae4e0651a11930f1e1e84245c60019b3b710f10a8b6dd7fdfb1fc62b993d7a5e2170658c0400e447009e8086e6ab8f35c1b184b4b51327bd345ad2be9c47c5ceab2044a33ec9d75239fbe084e7969b85377124d104ec810947831710e7cd073f695d284c7263abcd0f2111d3919cf1922925ab6045dd1416e3c9ae84ba671e27a81e9dc39523c3528dec0ba5ab84c3a0a204570bb3cdcb87fc373ca835a288556c80ca7cb0becfbc5e00b505f9d4f04c32be0e614d863a5354a2f4de17f5f6275c373477792d6b58b19483fa1b1a80efa7534c722eb08cb696769bdf28e46f183799fbcd3a4e2dacc4c0431a3ad1f6218dc2c92e40f6c6170adeb0b6461a0089a17d66e5426be8092c2e0c896601a3825f04cfe80c16d0d40ef7eb484010d95360de4f69c8504c683c3819ca75bb2667815e0f2491883893a0210ffaca92287a98c1654df6f3317694f98777d65178e330c08c46393d02018b9e156dbae3ce3535f0931a6358cac87d839ce79c8535b6f01e706675944450299ee94343bc17880d05087fd3a5c649be4be8f5a777f1d500cc6ea45287f67d530be24996e3e54b45d4ff0a6b260474a483d7dacb2cbf3749530a024b45d0aac7660ecd7644d17001c123e675481a98588a691b3f2386834280f59da60c233071e9194adda5d23efd03c718536c42162a1cfa160382b505f14427a383ee66b4368edd27a62d5c915f981fd4fceccaba288b5c86fbcea310bfe7025b69f610b2453824d9ef1c28d1d030356eeb3ded8bbde5f405fe3898f5ee42c9b2c1488279b3d4f53a97c2e765aa5393bd305c4f7745aca31a26a4a36d64255f06e64c72e05cb9f3ea287e7c8d445a3634562871f46e7724392689f81e0dc9a8400a9bb125123ca20072b36b558444e5eb2219e9f433cf43d6caf40f19ba36cfbf86fd370299aa5ddaaa91332f029f2ed44467fbdec42ba4172d1e9a2388b99dd1b6738e02f950bede874d173b6b1305b58757a8664cffc953ce8f10175b12ff8dd329b22d4452f2b072bdc23128df3a0fff247106fa362804875c030000317eb706347c08ee6fc1e84d1c085ddf60d1f734a71aec5e62e2704315d87f8570b9a2fb0ab29bf820571524bef4e368fb9795d1dfdcdc53b955cf9c592731c02d9512ced812504e11b0dbc2385afa1d075d45e7b61b06adaa47b227e0ff3e309080799040d1aa7783d0a038509b1b0dee0d54d03d9fe259909f4b34b4884a18d5a933d056a55e04fe3529c317883412527b7ed5ced15d0d611aa8556c1805c8ede821d3cae944ada5fecc000428db07f176038d6f63a993704864d9c7e30e1ea112af8ed4b59f90360be3f255c9ff000ae9d98fe866321b087a72fa2b159b5eb3ff2070aec6a4012add92f8cd00119ffb2646d235ca16606ddfc181ca012fe609c51620b2c55c40ebebd44744168a4db2fc88c0fdedbce47f73dcc031ca8211fe3ab0e0525a81309fb6ff522364ade80ce35da76e79e2a9af00557154742a004c3e354e1718b7d231ae11a354723e560a9d69b81717d0875a99d9213f119e7cb23810af267d18fc5c57f8b6bbb8068015f605ddcd7328fe4754c404d5a8ba6ebbe9235954f6922b202e3e4e06c210445cb14280cbd9f66ed3a1bb72a9cd0a1745d45f34d704addf6ccdbb56783c3b9c75e0c8a7b227fb767187a3e000b3628e01d8fdb3f892eb5ea12434a9eac4eb05f5d86298197f1bb7e49106ea9b890f66b7ffe5d30dc7101c7a82b684bb4b40801381d533e305bb8771d8760f4bb0012cab534e114f50b5e6d3788f6c70e27f92ee353a4d8f50db0c557bd23d47a65c693bdc4ef78e191c0554f0962dc25dfe45ee073b0f44ce2aba78931dd926f72aff13b5c7a2571d5d3c5586ec96fa957f81d2f3d9378eaa9626cb7d4b7b4577c8e96de495cf53431a65bfa5bd62bbeea635429a6c34e576242c20e673721732c893344b2279602a6c6b57e103505ee7a1b4ee6fd7055d1dda0359fb6bfeff4895adf2c77b4dbf497144fa1c58fc95ea4dc35aa08eb7dea5af64afe87646f52de1ab588f136752f7b29ff23b227297f8d56c4f49eb895bd967f2d3c156df31f389566fbd7194095b9cbc58ca2acb365a159734d1f885a017bde66a7e93eac5ae83ed8ce47ebaf775d92d67fd635ea66fe49c6a768b147622f216f8d5ec4f49e72977a95ff23a99728bf422b627b4fbacbbcca771d3e9566fb179842b3fdef0c48d55ccbc24cb1ec99b5a0a9b1a60f46ad807bafa6a3793f5c4d743b68e5a3f5f7bb6e52cb3fd31ded36fb25c653b0d823b99728bf862ec47a9fba95bd947f0d2e956efb17988ab6f9ef1c4895b94bc50c91ecb9b5a0a969ad1b445d817bde46a7691f5c5d743b68cba7e9ef7b7d92d677d615e536ff25c65364f15a786adad63f602a65ebdf39904a7397891945d967ab42a3e64a2f88ba0277bd4d4ed37d78b5c87da09d47cbdfd3e488484d43c96673ed51d08216cd59266616659ead0a8d9aebfa20d40a9c9b2a293d9f4d2b953ccf8aedb575b6ad66bf43d05abbdf5170155dd3bfc1edd0d8cb70c7edf4398e0c65de942c31f40c3610d3f8d7bf4706213ee3016322c1c9c3cbfa975dcf37f8cb90381177b897125f93573825a6da231640720901e9434536df2492cb35e66fd51771b5ca510bd471720489b9854011eecea57dbea99758d0cbe7018a0128507ab4fb0a627d1f83f806aa3cb4487257a1b858f21d66289fd203c2fa57994c67b4d86782ca77d2cd2ba426c5dc50b70df9a82ecbd6c00d89399d2cb1a261367e2808b25755ab11a7d5154be0e944d4acda4757c1d7531aa94e2823a06c09f61908a0349f5268df9cfbf3b70b97afa0bf35768eaa4e4938734cbe2dd68070747b2b28b02c3d11d68442f705f1478a8402e1bb5c166cf8857add440afab5caa1325aa3554a8534ec4f8276ca2b21081e03c413546a707b5a60cba4b3adad8db1c2632b630a31c58880d1f86191b354b1b5b0c44a0111901140f0dc602eb90932cdd63921863490334bb882534dc68c356bd79d2232091538016b6b6a0d5a7ff4d309ac0f69eea74c0b4e720033056a6c734299a4d7ea7900269861fa0e53ce775dcea9a94bc343d39adbdd17347f6fa603181b28e08c47014fb183f827cdb1444cc9c0b54a6a5934b981fe1797612d2b1ead2b7c9801c6953a3e2b97172c71afe52df5b1ea0f12d6cc798db5d6d691c8d70c6e10fa4c04450108991e5fb13158ae054070cdc486d47c4a50200c9b4c011032cc7d45c6bbf7f0675724653dd82e07ef0a419aaafac59571896eaf248e80db7df95b4843e81256c00b6c5a73af8742ebcb672d1b7da70e5d41a358b588ec7d341c2a73c0643c0bd307fbbf779aef5ab610b20e5c0177a9007d3b044db7cef35f4ffc4fa01998462e244d47e2145be31bbab98b8357fea9c0999c1c84e5a7ea57701fdd122bc21865a0940f989c938d8ddcf22bff032b41397340bdba126334fa1861d2d821b6aa1504cb0b4e2ab82878bb9cd151b0756d03cfa40bce9d06ab4ce016ac687381be8740e57e3162d9179cd07446dd38b90bb85711685cb585cc723f88188589a5b3ea976cba3e81d5fe7084aed9288e4013c90e01e0975699f0411c5e13c4cf62bff317d35916da2f191cd78daef965e8140cc39afb13cef616d1e9a196c7548e400b576392a57342d22c1292e642489ab442d27685a43f9a4c0730a898ad425604db8ff9bf73b249c6cd181a732407f7abdd7647fc7db8ab24f989dd66e84a391e66f4f2ac9a5d08ecabee96d5bcfb14245f3457a82468a1b1b2aae47858737e0df6e379aadd0559383193a80c589064f754b11464693624e98d97cf261bd9cde4a367818981470a0cfda9ffe96fb2547f98177c99ac1db79620d93f6091ecd212d34352fa3fd594207f9081e33d58faf843a301d2b7a662a5604180c8507d88144e90b1c77b0813f16e52381642e4413a9b95211acc8f362112897744cc67259bb97b84105ac930788f7819ad641ecc171a845c9a05f536600599898e025b0d8d66a5f9ce68625d079a951728ed40e5c5da8a062e15149ecaf3583311581d7769e11232676a6957785d32a5592900568408f7f84b83a2219cb30b6ba15e5256528279207cc41b4c8e95a2f70e314f3e1da0e29fd8397e74708f6acfce068a92db8e98fad0ca7f5575dd1c71112ffa7a0a6e6574ec7b83969772ca8413b1436cd75dae1373720ebdfa8beec3de931a21d971cf8f58233d695f0e59519914db3025e67c2f598aef8506f813389c79b8a6a88d4d338e4ae45cbd792e4661f5c127381e1795d0c5c3e7629e74dd608691d8fb5401261674cc38c8f3325ce8c33f6eb38f931a5c725d68a03eb9bea0c5855e13b09ba6caabaac83135c13819d156038850d78753b501a19bb3ed4df02041bde9b9be74b824057eb5670e1de0136a92baaccc637971e5616ff8e7e9cd7d09a5c1416d7efc39c8f92c635b2b84508ba6f438bec09810b569409a675842aaf3ef0886fdc74159ef9ba84a15fe2911314e3d18d1553ca8925029c4fa555cc4323130d8d34fe0fa7fc8bb4a364b9cf1de2d6f60b9288529a7a4d9735647ac4bcc46f0c02d97e37facc228e908e596e6f694d18ddcd6a9df4d7253a67f4ffec04e919aa54a18a2815c495b654e01e57f622ae6dec4916aaaed19aacc6d2049ab6a5d2eaaad8b93815a62fcecbe04ec3e3a935900fdee12086437113c9bb3711937752f54aee74921fb1b6989d98eb86c0edf64513e35c38f6ac67e751765564dd0cb4b4e9edfd6a89a14e7bb2779e36db233127172e02123de3c208cd83d84cd893fa95e9c236bf6c609acd9528c1f26fbcca9bf50af5237ebcccb29d192da0580ea719c7039fb455cd40797eb2e2b714398e727f13eb487d637bf05f1ea5fc419a06104e5cdeb669386911995dd6c7c6e259ff066f8921a26a25bc3a449ca19c8bb6dd8a8c25f592acab722a6007db8bba0394c01a62d73855a93d5b48d14ad18ed74da8267b82d425771e3a488851c3cc1a2ffb02bb977e29e14f153ceef59bbaa376f9e8681007493ef37e3414eb72402c3500e1f7513f163e2dd70c1564f5bd9ee021d0cbf7c45ecd93d7e6d9d64c478d6a2d617b02138168c253e059b686e2602a62586a247841e1f68259efbf874ebf8fe03c7302ed090bad7d430b9b15efef421880764a98d244556a9a132b86c4dac3032d01500d909fc7800c70119758893d968f0510696c6dafa57d8c8ed016df964a07ba00c62397fd74a0db015936b48efe2289c7ee24e2dceb6abfdc15924bafeb19603cab1891b0d2b24fcf6526d62d8090628655b0047ef13d720f7eb55405cce0cd0cae5c1311111fadb579eb1922a8c981e310a27ef83705537da3fc6c08b90bb42584e655238624335b594bb66cf75e3d095a1b97c9ea4a36755cfa3f73bc2908deafa2f20d025f3f82f50508ceec1bf780987ee332ac02432d602673eed0e711e58860519b2940112d72c955a2c127e8bc5790425c02ab3f6671a2a38931858c652bd77a58d170862d5c3387a24d5efc193251866598be6b43209ef339299b51b53321c0877d2ea084bdf8fd6e065cd7d796585f0a7256e8829b8383299960e98d82a51de1ca0377ad3d4c4e12d46a3b3419850d0a6aed9598da48b7e12cb71dcaa74e8572ae71704904816e2107e690a9913a98aa2dd87ed69800dc08c7c64553e344afd59ce742c1955005af2b1c4d9d87be514366f7f33fc1a4abcffc01699eca3777b10b4ee4a9bb10f2e794db3f85afeaeda7e01ad1b269b07a6766e487c2ee24bf4a4db43183e6e69021bb3f667f0801b0df7f1d578dea61547130968a17fedf37a181e4718668250fa42857258aef85e48c6a64691a9a460858b4690a9160692844e9941411d2abdb2dfde444d1c5ffcf0069aa3f8880c60883807db47193f6aed0a09b4d2bd9145dbdeeda28d80afa034a283b26743308030b181163ff50d7d96b675df072286dee075e3f64b284209098d6ebf5e8225845da2251c4a66a54e56de58a0165e42f6ceadab3aa2105a0da292e2d61f92598fbcb45a6c8b1c396303e9a12839e64e7ac931e60e847d1fd866bcda5d5c4ba3e581fe10ba99b4a45f40e3fcc00204f72c0f745932d052e9a56d8d524cb62230b23cd079f744b5389a35825bb9d2a9aa3fcfa197a073d15b29cc197191f5a9b1bb353b584328f6ae8712b41db5bc0e3dfe60fc746bfb01c855c4c7914267de9a429c5fdb91326ef0d4cd843e4c49721027db1655e7c099e7103168d42f3ae8467e4d788c1d0874294085307499503473c9abdda33a6a61a32aa0867d8fdaa0196db6fcac1f127ecedb00d2820b514844a52886bf6ce3c4d3c47a49dc6032cb29c953310160dd615038943434a478375a7ba90e99a2f8c12611e7ec13850a1ea4a13ef60c6e290779e657feabb185669a835311b6c0235c2c61b0790adfeaa8890ab762ebad010c10db58f84ff0e1616485f87f5609a2817a20a149f3678ae0580a581965e39f562705da09882fe6433217f54f8b64fa31a3480f1e4c809c907d9e138e9bce4404ab02bc55300d93224d12c1c53e3e3c65334720b880a4338904f3f2b8b5a70630118309c8cc6ad8f649c409e1f5f94de664d131a1f3eb724d1d55a1e818e4bcd530729de090dd3bb080d0a45dee2e09a84f5474a03a36945f1cc3ae34baf7cc706649d2cd4a9de4f65c7ee679ccf78a2d5ffff4bf4b595f8e9d5584a255279d0d99fd6efdb0b5c71292c927bfbac515341d83896401f8ec02b4e22af0dd7fb6ec79def4b7321f7f7245bd6b0831e2dda1c9a42f6c7930925fc612bd439afb201b32458555825e085aa69119e11d28370ea8b62c4d40d96a7990010e6f07ad0e9ba6fa275d108c0bfe4df7478be008a7438aa3de44d5348b514e034934df6d4980117cbc082aa112fc260f4bed08f7206cdb71964a971090032d7bb4652d9fceb7bb72337d7ac2fd32436d6bd209aeab38e5d6fbd479e1cf5b426cf59364e160b5f806dd8832917ff2c71cdf9f43a87c2b2c65942e2b13b0df944669a0eec7422c4e94587be9bcd00e955ef4ad1dd324fac0d2584393249e9a9ac80c67ac5b205aacce72154db281c1c554a3dcc3412eeb8b01303d072968714d7d656b9d0a180ee11df4a15bca936c8220849fad013931fd3a72aeb972a0fdf2aa45a7ea1cb83b69e7c6d31bf1c622354220536823a20a72a529c8940254b969179b44a29ec5a87ace8971fe31cc479cac16d575dd109205c7641d9b50ad5e83adb71c4447b8eb6ed9a6eeab69f8d7ff281444f58c9074d029dba8e74efd721c710609b7dc60f801d216738163b888c35e37a6480cbd62eeef63e0933da08f5591416daf58d13701d20530dc0a2b3c1c91c6b6d235090017486b0d537056ad70b178612cede01c81f03e5acf1e802e775e74dee04c0483b28b5e71605ae95565d94e29bac16984e78277dc5115758e48c5a79f7701736aaff7ae9e9d68c7cdfd738c004e4e3a2cd5b66c6c8453260205c777a3fac2596b397e15d56cec5bb23685f23255651d8c0aa4005d377b7307a2306de98222560f449a4f16df7a98caafbc624589f55292f8d95631cf571942f8218cea79739e46c77a8247fa669d52bbc3eea686abd5691ba2f13a61cddfdcd80a9fe37f481d08c6b3d60c75cac448e3605fa10fd053e68c0059ced27e5f2798583f84372cb7d414a830b06001a5db0cbd44b1c19c1c76e0cdc9f58082aec25db7f9e35210c824355565a1c466fe58825522942676163f166c86afa0bb10704aa68ac017fa9bc9b16a4e0dcf558a5415ceec4242bdd546b4ed9a0c3c23cc036ba02efe26911a9da67b5032f61c1403868f3db50f2b29c7f120bc0ecf0350f8dc3400c16e48150dcc70c80f130065ed795a419bf197fdeeace02234df4a22503be046c2339d100287ada6be61f210f7345f1e986d8925e1bb0b88a663872bfa4095fc3d61cfe665fb0b395ff5da3743bbc9f6640dbf135d77976ad0474c24817457d5868a330a1acb13f4bef7bf7d426eaab4a0d8eef32e78c6636842cacd731ddabcdf8f40bd50512cc16d42889e9df9e62d75ea0157e56fc9dc063e18b6c8fbcdab952ad67c978746fcc3a520808aeefc8c170e0f5e8e645a74e864a489f700d180d91471758050ed12a75c410c701ddb434190ba8ed9ddcd8b94f5d29652cbd96eea36290159c8387cd44b98be07502b7d1e9ba95fc7eff6509b398d99324a5c45631e4989a18d463d611e43200d4c2661702c0f334f7ffe3018cf7fa7c66e417bee5b9f2df30d516cb8fb70e53e0e8dcf183dd57a858b1ef3e8fc080c04cd53642ac9efe6a5e5388484fc277c67458bdb037b836c9131d1bb6c9c77b603e72b6894eb7f00690a96b292e6731f9af2566ad8829aa61706eddfbacfcb99ee88b86ea8373ca44330185f995956119da8921926a61c0274f06f6e501da71013ab79cd3d1804fffbfc80bc20419fc2b17598d5ce42fcbc0ac83242625341257809402557da8bf374da655211dddb51bc8d56c4f801a34d0ce795eaffb2f6257937fad756009fbdc686826d6a74ee9c31ebccbdab4209adfb56484bb67d30c4624c8ef6f06ec11557ab585ff35b5d7612726da4f21f11dab75b48a3c9fa2604211a8aa6e6e8a02fa22809a18af5e0abd27f38d6d710446a85a8287f94e2d053ddf6a5ad80a06fd766b154d6ddfa3381a4df327be2218bd4b18a04a475f0e765fe113eccf7bb617251167e6d5b19aa1f71997bfb2bd3c5be744281cbdebc48cc694d464ab60415c68f546043b8d4a047df3d97f31f9c40ec081876101c0b3a8aa21334642939499f6b1cc00fcccc2b248ef229234a42bd233d61ea2ac5982c950c41d9fa207545c9f7e5148df6df1d5197d401bf543905bc56c0cffa148480836987c5291664289fb66b6aadad0a76ce4d1d21786e6c26e429e80683f3d03f5961ac8905fa60d8281108740a48d211240f1c46d163152d5c7f22d2b81b9fb5d77043422f897680ed15be9e9148de15613611ce201d5a961a9749231c1f47ae07ea38e4443a72d30c67731abe7f77e50fb37648fd334f1438aa027ebd92654b1480832a62802e92520735f2ccaa2825048364791cd452470660f08c0de8f0f118e99c9a77122beb5901a26a341efcde9b81d31f92d973f9dbbfdbe49d595a578c31b49e93d9000da3bb53401b038832c9c1b88747706900fe43a244f7cd2e4fbf23f9aa6415cb25425f50b6fb5b4d9d951bd05f3f83d46f37d61e83e367900b9622864e7a0bb3241359494954182740e8394752c7519829de8672e64c3c22adb754146283f8f250b95239f2921e04721d65ca566f7e03cd06d04fb7576303d3dec845165cc38c381f573991e91541c3ff7f34ac5ec87971b68c51f9becc568c8cdf934ba7c0af4373f17f1d98d3236107d510ffa61eff1e07947bf270a15a1c3d22e439173e21bc3038fc0a82a3896e3d5c849cda46a089d744ccc4f5dc7c05f141d700c6c86e1732c56419fad4ae3445b3899f811393948827395650342e36c4a3d3f8815c93999b71e273cb4a194f7a3bf0355da632cc3c636de9db95086f9d9bbd3a948b26700d0dd7180ef6848603e451060544ed20901a85edfc04b1910f55d0d3516f1cd22c96c13c849fa33b5b4c5885002e407a89d275de5aac37ecebd2a4c2e5c016b837020f9de936e7deff1cd4d656129e7282773f948be900c52791977919ffc2e34b5a5f7c87b5f3b7998132ef958faf6d817747d4ff9148d704c660167515fdbb54a88ad5bccd3a9390d440a908b3c278229113e6a30b2a6372171792d57293a5fe056fc96505cda410735c530d22cfecd2e178c5af61482917403617d5408affe89ec58496b80fc12348e08c18da8caa976ddf95a86c6d43a94316d0d60356849595649bd88f11abf4c8e76cb6e0843b8fae5de2d25e05e2e7a1a6dc0b18ee91b815d64f17f938a05715ecc18f8ee136a8bd098fec477babe91a88e496787c7fd4d8a435c9a6931726252363aa99f55d0dad11c2d436d804a2df826e9410492aabe2abb2c061513c426e55cc015ee486e3fe5d2f35b8f977de98d0f1e41afc14a568c8ea6dbf23c81263d76f2114884a18f0eeaac6468577b1b9c5ca3ee4e0b013fc95557009fc39d04463f891f10b1653862a8c99100c19e80c4ae3736a4943ef74cc7812feb13c340069e0574d72e9fbace026ede6d22f836059b51b9f80270c7dcaefdb454dd4baac6613cef53d2b4338dd1f4c0f76774c284da00f8f0e08bee02357896b01bf6b2d73a09a9e98b256c1c0f8d70826d283b6d69e7bc6c97cf5f87f6e9e7a9595c2323f529e342bdbc2708299ed641209b03234c93c0097338293f8ae2134940291a309fa4b439281a651a206385ece16764de1e5886a68eb3efd2f3d1e5bf2592f917272f449ef43e3c3357885545a905982ea058ab204c3b310a018718bf4e983c156a84e94fc50d58ddc566bfaa0349df2101f02f64f0e149e552077a033abea414ce3193c7024b668ff57167037882976b501adee1a61e464a7ab48a160050f1a92b8be29be63ac97c4983b015888daaec9c773fd56b9669028d184ef8e1cca35df8b3ce2255a24ee6f9b72a4c1561b493abbb5510a044efbf84664c2e862a756732b8cfe4e015436508e7c6a6c6c365592aa697f073f70dde809197a894548d47765c517275e5225d8148381b2b58ef866ec477b329985da4ce4c960db3bbbdb4d4f5648032bd9b619356e1a2de3245bb753651d9648ae5c3dd63d536c7854a28fe08fe2234ceb0f7b50d881630fade1cdcf1fec7187253fa5efd8c0ab13469656849288fdb8f06a473031471cb288499e4ce6a87ce318f5e989f12881c7b071e440c60c32ffccff0cdd1e8b06ef509d1a7f1730fa3125bbd4b864e10f208d45d553642f0f2962b5087ee48bdfd5d3edcf64223ec36c3ebf2d9c652eed3983a2287c4673673114b24cfaf99ec3e8d32f93f4a0249c5505450439081859c6fb86f14ceb3fe3179e7800eb0189036698fec97002124724580b027abeecf20dc90080a2bb32567e09777b87bc60d240fac2311883b84e2687b2c9300e9a709d9a24f582db0ca6ea67dae8fa0ad5ad1712187a11e8efb0c1f385ef5c897a117710de7e77e18512859c6046f2b4a58dbbe856f6ce35d639bfa538c2d9049c59e04ad33dcb8e495a87bb38aaab4992f6dfc5efb13f00ecb829f40ebdf1ae3d52aa92efe283b42746826d62a9c88baa77c1a01e059d88b41b899bdc771127896ca7e658b12b1b8c40829ff8b7a6ab6a9555a7a07711773afd282a32ad08047d871b73704750f583f882b5144a3fa1e9d91ac54f473c70e6fccd46861a98b721df2c3a53831ffc6d54601ade56ae3d3822a9679098800a7af13282887078451d030d9eb38fc91ecfe35bcd8643917b1d66d5be28bea303137d04ac138280bcd0d8623d7c480908d6bde33263dfc8071f7b87cd39f8bd8602869a5054477d87542b1499e0c487d56a3398839c195abc43a55c278ae594c90a766eb63283c6f1f0b0c5bf7c4ba1b9d4f263062069d088ef3877debaaa7de3561fe2463fae109eacad45a26fa6b74fe19184bfb361fa44cc9ae29fe2a4bbc7d50292b2e21ae12e2de2bbcbc3465c82540cdc20e4a54152a4ad217807197f2ac9d030084eec584229a1f76d8cbeb7be5cec18c206018f0d40837c1893ae3ee424d650f1e367334ec9bf0dbb22dbe8a3eaf61ac5923844659970745e517c79857031547025181e0bf71e569966ad0e5b065c547318e581f22c8a9e0698a7586d1d2d5420afa295cfc24afe34ec4e0f1c84181260f1ffeca482f82279cfb097d644a487d0dce3d80b7d3264a7903c4187db4cb680681086ee323787b3520084cb121ca8efb5ddb7972454f980286d3bc985552e3fbce2ec06d24261a00c80411b15e40483eeb950e051438108dd908c80dd0e9fc6c2dc1f18d9f07568df2fd51074bf4fd22f07d0628ac8ab3850d4c803dfc873eacc853c0f7c65335c4f00e4d13d79cced8aec43d2ab4630e4b3b347ba728b30402ca2983f2c4574a5fa49a57e9a0baa8bc46ef340962542e08e719049f6636939e93312afbf0303938b1333ca941a345ffa537a7d13ca1441ddd4d9f0dffd85e3b261b09fddd6c82320d6f2cbbf29a484e5f071c20b9efeaf76a0aedf867fed1da6d823218968670a225d9afef1ec31e7aa6ddbd095c6a9882348ce9570bda81c788465f04e74087bb6583ad9313e085345c63fba92527cf3d71bde1ccb7b5ece6e1b2a6d0953e8e098d671a4f64543e336178206b9099422431520a9ac00f63746626a11792d61756148895c06a078dfe988b2a14d2f96e6270e89881ea2c25b481f4c48b1d6841e15d5c9766c5106cdafdde7447dfee522be9d819718313449f026d2dc4dc40c916faaab289d921c774e85ea7dbc28d21180c172c064f9923d2d0115a118dc6ab93552212e0f05dd9a540501445721e8fd4fd41dc447be645704f65ba5356188943851c84739ba4d26db4d59539819afa918b18fd674d614c8dfa75812344d5495ad928f50ba89c053a86082c0d414ecf18c8cf2fe567b39d8cd438f1ae2a2a0511905aa12cab31b1bd00799051a3b7796a48dc1c501fdf044ccbcbf98caaa55d7044f4adaba44e9bab458901e428ded6ca215409a9aa33678794aa0dcd7cbe0ebc7fab7a9ecccb0e7ad3a6e89d490d9f7f9bba4a2d617ca1eb6d1c069561a64ce764e8eef6bdccf7de4f60c735bcfa51082f44bb0bdb87cbb86e23831bdf0454270efd0be66faad605d6888d1efb772e861764b3c36edea9711c3af0d04dc385b7b680e2a5f028a957c9341729dd5b826b71e7d31abe53808b81ced989a748cb027f92b810c81d7adf6b13609430aa830ae5331d42754ddb8abf53c6a88ec4dbbc51b10c05870768c91069cc3676ab4d21c542facf204a849ed831615ee164d8967604916515b75ad4cfd7fdb831101d41a3f7d61143f8a1e2d73e3beb722cabaed4bb5ed97453156443c9f31f50e0432aa49b54fad215c34aca70d46cdd062f9b95eeb0ecc78c5a8ef1437866f2e968c3f5db238a81c050dc0c679b231750b6697216acf4e65d33c10c4fc316a4b11012ff1578c54f03b6a2bc8fd2312d8782e6a7d3009392289eb9fec04830dd52b3ce7ef407ad37f49f6c9813e2e4777961f653e476fa650f358cd01e436fa788c0f9370c36c0e677d19f43830f0c1c78b339da443aa4797686594a1a657f6e35cc75f551543f95e6528c8e75aa18ef80ad562666e364a030cdf82d272bae8d8a78a63561a70a4f67dadc3bce7097db4f6f9419e9f82cfeaa44ffc5990ccc3c1f4c5390f3e4ee8d961c0d8e781afd57c7e894608c733a3392b2df40181a0e66273deba0d962eb87dba75195cd647d32e5d8df1de721ad766cca79c1e514e1fb51cc689b6f8ea811f3c41eeb60b5685d8c67c545c8d4a4d63f04d3997d36024df4a200b17930cc3be6bfa5349768fe6a44e4c956aec1310b8c79e2a62265051089510f2ba5466df1252e3d29c4cefe875025a0dc73c3ae11e5dda46957a1f01554c04c48de29c18eed3b602aa937af486a7a43ae1da6b919a165a30455fd643f8888b556b759264d70322082c32927ba2b87f85bd221426d30dc6b15f0c341c4196195658a333ac5c5980c72468b9101f6156a59226280472c5640a53b5fb568420e88e1985ad93e70d63b84036876c2bc98c3820ab16fc214f66f82c4e4d38014bce6c726422096a2554d5ea2e0a9a48d66b0208ac41c0e0faa3dd55f37ed022f65c2bb953e672f0809f3885c034e9a8f478896970423645c226472661f078a2aed75f00cc4e2fad1162746d220605a95eb3ecce0cfbef5453266e34460c8c297298d82abeb1ccad8726ee097dd5d1c8d498d7d2780d6df64899e342f14cea831cf4d7adfe57c946abbe0cf6beb317c176f4a373c612356821a9588a21fa2467ec0d140fb3c05de2a418978d004cf180c4de05f9631bdd561edf01043e374bde20acf38a7568c20b94383f6fd055d1cccd251c1f40f19b2d6d9bb50c2d2a6a6f4135d0a67bc2c9ee7ac15a052084d6dd5286f3e2ed7008c2d97053d86897a8164efc175361a5de81ce48228b9aeaec7844f1f098fc2e684578ce0e44174f58409c0b801e6a037667244a59c3cbfc8539dff1a27369663ef7a6e5e9450ad6ffcc356bf502365b01b0dafec6e4b7e2e9fd538b04ed6614ed1cb3f6dea86c20a41cc23c0748eef9af7c420620ccde82e429e091a328f539875274160e0667a105542f23813b504cc761f036bb0048728223c34b85123d7ce6ace31880b0e1b69e4f093a95503ef70373f085a3bcece7772a3d8e726050245fe19a3fe0e4c3710b0b0ee10330243b2e013d31c4f60d379e45c347c98faf2124a2b030d35881040bdb8cc8641890cca51910e1813399c2ff9a03efc25331eab88d83fc676867d496d5a8ad73170f80803e40f34ec7ad900d57305744f8ee679107fedad6d056e46eccd6f7995d66ec99a924f10e8757609e5a0aaf449953c225c07405c7e3ce6b8e01c41bc9dfd3152442378b6e1d128b064b3ffd1a1614b95a3ac4d53934e5fb7a93e750fc50bd78411367eeade14718612a582718d335e5ddc78f940081b826596b3dfb3a424f4817b44de80582c0b544ee101ddf9ae9d2c78be9f23178b04370d62aa15caa7a3000a24b5f3dd6735c51cd0ed03df33e391274593155f44a8155f68ab21de62063cdcb6a0483e6cb4f948f7afac3b39e279e0437cfae008fd2bce69379f006032d48b49bfa2b9104594b2b3bb0fa020952ec82900e7c791480f5357fc34679464b4391ac0115e05ba1768250611c16970336bd206d4be5fd9aad7f1264640efe4191e0042e4c947af12433c4a7ebe16bf899e2c629dd26c2b30a39ee99d0210fd33b96c7693c5804cc8b934a94e848c1beca4f32a1d7c988f5348c4246f1d039c49964244e1fff38141d3557199fb253a2111855faf437ae013fb983f4d75354bd721e6f020ccf2afef0e3a97467361fd0fa4308e94e6df07c7496818ce0c31a2c6777fc32ed012d9eeeb435ecc877d7640102b9259d6932c6e9468bc69d50ca1550b1c9135d7c628f6c4b468396bd7b94738039d331dd391b3895a44244ce967a4add5042401b3aecd8218aa23766087ec7bb4af3a14ffbdb8376eca40e95fb77f3971e3bae4e387080dea0d731dbcee095b55e72e3828ce085df5b9f93c9708ec850c551ca1bfcddccc5a9cec7974d66579c6192800b6b2ceb353ab3b76315230e187461d30ce0e0e05d6ef2ccdac58b971e0001f0eb23cb78d85dabedde21a8cef41d5881def8bfab36347b5dc6ec724eeafbbf978b7abb7eb61bc1cf1b2d4b04d9596cf9111ea4199412d6494ade48de3086b5bafd4abd8f23d2b8c4695df2106fd582425ad5c7c8b10ff6c98357dcaca9144e1df0f211955aa49375dc626c3b722bd8d745d88b1de278941ee7e8c38d355f452d2129cd00ac607c0671dbf7ff7bd473e1332b7ad84c53f2deee9b3948e3792f1feb08111d8f72e744cd6c9bcf03e9a769a4c303213a1beafdc66c27a749702aab8575a644aad71d09c671166505addc5c42a4779e61bd8eea4913abb46a0624d58072407c1d27d88fcb28297d0b1dab744fac71e5eeb4df3acdb5ccab15db3054d8295122ca4419473134d2483b7db09c1309d8d8dd412592206fa23b71c42875304a7f59cb44251c53367a2d575a818c13e3a14689ab56a785d2229807294d8e447fceb5f075f34bd78180acd48089dd061fbd84990f0b291665d8ee1d7499035799a1a3a03bd5da4ff23bea40cfaa9b08daa184968da92963251bfdaebea13eed885e127b02ae48e21bc8c830c968b0818d10dc617e785fd454692455b4bc976a820784aea0c9a3f1eebd49a1d2568ee4187c49793dbba165dc5c2554335306fe2a5491507cc6038dc45ea037f103ab1a8d3d80b4f5090d5ccf55e5812475132a90e7c640bd3f26e45ab2666be38e3178133090b80579ec77d7288622e2470b1fecab8809a2b50db7a28cd79544f0f8d1e4f519d98f66b45445a05bfaa8ec6d7ab5df7d26deede736fe218e88d400ba117cf69855ea1be52f5633ecfaad1975c007ad88eba8648d290e781b75c80e5fb82ebea3d29adfb3baff97c844ce928c70d9c05e1a49513f50f18212035ea128c8e8893e54043aed4ab72219c9cbde17f563e009553eef1afbc673ab3c31063717c5358a9d74361c4de0d9286fc804138a8374a21c057d22ad1a94bbbd9b148efb0115ab8432a294e41668c415b984704b68c5aa585a760b74d2aa2829ba6534b14a2a15ee62a19ff4e3205e68bb5bd9bd4852f378d41192b9d206fb99cd2817f41e9954dbd21d48bedeb5b26d422ad180f3fd24b60dc8779c315518c4d0213a4dd6665a05c4e1f755ce1dc747fc5ee2c87ca146b12b104f5c473d7d2f6e55553fafc276846c092bcbb24a2e368a859989f268fa3c8a8c60ae76f6d3a37ca2d9b14982ea70ca121a30596a510143baa35427edb6d60f1dbd518b5a764c8610946d19fbf8afb62c8d669420d79bfd4e8309e790cdf46420f18c14c181bebb5b87bf225892f6c4ffcd88442057230fbf25a6cf48cd7b2256e4b8f9798d078b91149aba8edb290f99936c5743103bb7730d9cdb8ee63e192fa143c68ad9614041a82ff7fac63470264cb35531dec96b07498c3bc16d53e6b4e409c5a56baa4f5061c06d935e18526a45f0ed9e924824edd1b5e6a595549ec3b01418d1909cec184084e6dfdcdf4abd05790fbc099193a3e1a0f199affa652802a26ab4886c8fda9bfa1c11e0d3f3b43b1dc89b9cc94ec963c4fe78b1efe2c86c18b8aea56a8c3a2cf4d5d501d7c774dda59bf19a80e5958011110df98a51088905cb514fa3d97e39db052bf0238a9a23ca50f90ac000a0bd9b01938c7a1a0a6f56d8a5391904d4843f82d3e7c6f24c28261cadcb3346b1817280c30171f32241e01a04eda3830f924d122421ec2192d20968f6de42fa7139fb81c5adcc6572cd9f0f60efdbe2e6ebbddc11b6b8977401a46ac06a48086bd5a317dc50e50c2c82960b60900b2052b44972ce5e558c6c015c8fdfbd3dce04856390899f4a4a303462c18b3d11f253927ce4b096f18a28c79bfed7a966ba320fd684f4ab800dac06f371edcd625ff5ece7aa3f05a0dfd995e7325d9941351297c8a804f466dc8add36b1c1df4b2dd38c11e883c506dda02e75fc54ba3dad5d97da4b3544ffb3323161ecdd51af3d19f3016be372644ed7ee6376d8af751b5c5518fdcc0c2b2a0029e1991e5b87701cd0519287585c20712d1fbcb052506a36c061834ede64e228e2430de9012ea70801eda59d191ded38006381144e98cc47ea51a70a11dda385698a965c1521a7c43aca09d86452c7cb14134146d672f50424da030b2e1694c2e5ab35ba088e591e1df194d2b526ab743112c1c31ed0d1e7f3c622642bf73159959c3a5f27d1125a4a476b4b192ae735ade3ac8d73d111ba95e132eb889c1e9c3bc706b2e389cb310743e55a46b5fd7b216c9a38e0fd4dc4ec05ceecfc92b97ed8b6e416a3413f485cfc6796d8a5befdd7b9a9031fe2b6ad06b73ae5d9801ef533dbf7f9f387881818a11235c611ba4c43bcb4afdbf9f631331768dba9e364a1ed31dfd6099e09006ecc2ff3fdf48cf07c1d2d666d33e146fdb9f799372cb430eba0f174c04d18a40b0b1bd7f3cd9cb8ab322120ec5b708bd1b070407c8360c2aa3aa03e53e69c39de422bb1d6c2168e3676f08789e2904314c7c9bacc62dbea9fb2813bfd192c520e4bae8315b245385a0d6e1340e478a73c2b02f72d16081b2b2d3b4b78ae5850b9bd6da728630173ccb5d56861067c10cd8b3e4bb9e5296546c0bbf64bc48a45169dc58cd94e40b43aeea26754cc19955b51b9ed43f8d583046bf580030208bdefba4b2ac48760b64ae47e3f405a3156722db58dadbde02ad78f73e48dd7783c55bcaa5ae2a4af0b2e8fae333df1a83256adcc2269b4a7909434fd0bea7c1c4f14c81e96a408376b081e484af0c05648cccc98887317940bee0cbdc3bbc8a090083e37170de6038c118829f91ae9018a1f8895e3d36ad4432806d8e526cc3132d59760b13921ab49b73d4d41de89199d2fc8cda8c57ceeeb5fdcfcbb8418939392108c1ede87275fe910056a7f2920e80f71bbf6e86985250bf7684e753944e0a4307a2871867b1e1584882dd2da20df820f579054188bbe66db57b3b69d91f68dc321406ab27c6e0a1b3cb3269d1258399f73673ff45d4338064bea03a307f763147487dbad7b9d5cac3fdc3ba7fa877738613f418f9b633dea744c4d807f5b7f25e09a31e84d687292fd6e5ced23a92f5cbcd8c4e98cad4121a939d3a0a7b6db860659cb0832c3024acd071c7883cf60e36b1461dd0f8ef473fa3fb330c7d2038e8ce0804656c30a9969ea840b98322d74d6f146fe22411c9e61ca079e0498fb8c868713c15e329c1b48f4cca62149177d10038ed444d80d3c10b8dba403fcffffffffffffff31c2f0a325441b914694089229c94c910a55fdca1aff541f151f7fb2b5424a29a594522623cd5cd11020d6d62cd901b80f3b0d3d0dac4fb6e5ba5a07981dac940c9392ef56f25daa8911e443653e193976b4673420d6f07810e833981f6074a0d6be92721d4a95ee9826c695151f3e6c0851c9f19bcf901863ccb480548c6072b09833d6b4aba06a0caec613ead818c2e2f9f490df222446150c0e303858ec9915cbc98be5ea1e82b9817727a9f239e5da69490d17396ce0d8a2e56508286306c606dedbd8d7c27e724ef89aff649ed33cc4089311a311fec448024c0d927b8ab97be8abad26c3d0a0b5cda7e07ab2a5d7e61699417be67e95d47ba76fba11194cc9ecbb9d327dea2d05c5c0ed43eec96aa5760bca356090d8c2d55ecf7dd204d9650d86dfee39f84da92965d3c4c8e16c8aacf102b8e6763ff95ea1bb4ca197f74d31f866c3f578a9f939a25e53ded3c92477264f20234ae75b4ede53a143f5d44829b57a2fd36ca552264d8c20179eea5fcdfe9dae49c83431ba84dceaf69c62cc35976c5f13e30704e554523e3307254baf34316e3efe7e5bf9a7af7a8e5f13a30b1ceeba73dcd263c59cd4c4d8c22c3d6caa4df5a4bccfe281efedf54a3f5f97853c9e0eefdce476c1574f72b2b07c96dab3b4ba1a2ed3c44884b312eb72c7667bcbdd9e481165d5dcfcb4cbcb3bf4a01640f8da9baad7e76ab2d7c4e8fc9f1863ccfca6d3bfa45ccab42f4da51a5fff3a3de6e79e092e915d722d55cfdf594a6b4df5a5d69249cd7dce09aebc7b3f29f7ff39a9abcddf9cce3da5d39d4b8e3d964ce7392f2d1e19e3ca0a86a420887ca9bdd79eb9e78fa5d43431aee69279d0875bb6dfddfcf692f2949ec1d5c41863e885386ee9ded7a77dba1832f99c169721308dd97a7972a85e82f2fb33db2e695b7dbcd69c8fb100ba4eed1c36d953cd879a152cd5bc7ed35b70b57aadb9a10255ffd2abaa5a870f7a0a58976a123a94d0a5b65813a3737e33631412512055a74387f2bd8570361cce63c428e404ac094ae77fdbd0506eb05fbea552b7e77e86624f4dc956932e9f6af086196cc2c91e9b0eaed48d411f65789b6ff6ea53bc1abb152387f392c790f5abddb6f56bdfed4e17221f1c2a3b84c0c4aac1b7efdc75b553321cc2a4567fb186cf5dd3c4f84cb0df4faab66d6a4ec53ee3c5189ef6a7543753fb6a6fe21023b11bb0fddbda995263b82eff051b101197fe3082bcdf9676aed666e3b9aec9803631422049e74bdaccf536f5ed9a18637c96d7b4f087488c5f84c1deeec1e66e2d93ce4d258131e7949d1c6cca6a3147c4a57fe588ff5079221d2623c6129480f55add382597963e093ba0927ea4c51c4aa872f779a6f5a11a6c351564edda9b8d2f5c21f35765e9526de7399923ef9923ef9d11f478c5a694f2a55baaadd99a1875f0f05f95eb27b7d9effd343172f843e4b9a507dbb1b8b9f2f4d43ef90e932646df64bee52514e3ca4b07478c2f1d1ea2b23a52e25fbae073a56d2ea689716565e5b9a87c3ef44345478cfe9b96cf875ad839c6cf87361d5079c99c964c679369f17c3cc64fc893c33b1b231d974c0270a85773bdd9ae977c5d4b13e36a2e9910cb0c01099c3384d0b129df74cf5ae3c970382c637cd911a3d323c618412d1e3882a59e9874afb1a4d8d99cd393096d382d201c2badb85d33b66e176b565d78c19e64eb7e21b335d96a9a95a45c5e98d302daece0b4b06c54626c61d9c4c8e2d209a2f26652cc5a7f7b9c9ef2185f0d0fcb8a081ebfb7bd58334d6caad2c44fac1072fa9e9b56394d8c1fd648114076b8ab992fe51e73dd9a183f215066e58c943352422e2c1d50894f3a53eef7583684b3a126c6cce786639b5482aee93bb76c5b1363a6350675e963da4dfa92f035317e68f331a201b6ffd694ecebb5575d6a628c31c43263e4c082fef8d919fa27c68c3531fe7f260f055bbe67df991cbae4cf1223686642208f26f3317e915c136339b927afb5463c1f223736f53f5ccbd635afd49e2646ef7026e3f118635cc16163888a7c338c30194194572f86ed8a79fa6ca68991486753848b10b066ece9ddba6cef746962ccc4b86eb0783c01e842d364be5029b8144ac63431c6a86cf493dda494dc9e9f7cae89f1f31d102c56357f4ee7ef94a5d4c408f27f50c6ffc86666424f24c69514100b212346168f77f813a306c41a56017d80c5e3c910f9643201e0220372f9643212d8c2031e88400738f0810d48400316c840043090b2c50532608109548002149840062430432e1588c091d7643212b461a10004581eb099ffccccc713620a3860b50a34e0a5cd1cf11809598001443a1b0d8835290bf0800252029c16198d0c716710a08103283580070a10f27808b0c5006c0880880702f001002445e1e2e40226473e02259b4921c1848efc07221457986082149867e18e8909265ac10004741181362d5c002e0001223bb0810c38222eb6f0400738b0010d6400032917a800052620810840e0010e68000316a08004445a3c2025d2220894e802090d0810d9410d64c0114551f48128c2bc02f4b9f1f209753e042dccc2c3097488a2e83b9e2069a4a4113da1141b29d146ca74020c9c1072821929469a208b288a52a247632425c626d8a1095948e3f3e191464a87533a9e9434b8d8a2853f463a2e31a601d2845ade534273e32911f4b9f12126b251833b92090c6002880951282362d0e746184be04411c6074900a208f34544a413e22fc2a10c0783c1f0f8783e9f288acce0c98440cc017d6ebcb8b412d010b1c6484af44f097988803e373e1fe26ca6121aa0851230ef1ec9ffe9b8a4f8c74c442786400217a2774fe7640231e8a8c0868d152f52b838e29b2d42f3c388647cc408cd0f23252525a5a38235528ef826f344fc3345247fdad0031e9824c2c8774caa80041cbc94c08b95f99c8c733c273fbc5001414ae739998c733c5fa204942c84409ee2851729f263b285179ab2f20235a24de9c28b14cd8d27e2ffff0935c98608a838c1901f3a708c8143478a4aca11df04a0a4c5c40c9331809884a1c3849944208ac4e8fcf8908ea4468c2cf2480e278345a2e19d32a2088369e1cf101e1ecf10d07f0f229d4d103234d20588c733c4f3e99411fa785a76fc0b36428e301090ffcb233c9ce3f1f19ce690274814617a788678c7c5d323e409c2399ed39b1f214f100ec7a5c727d429c3bf53c67b826078ec2083c37109d229c33fb461d9841145911930f1f32097cfb7b808e910d9fce7d5f00809c222d18822cc4a4a47db1c5184c1b15ef8f3c1e1dfd9ccf74e19ede1e488224c23c108a295ffc88e474714619cc4f19cde10e9b8f4e8788278d17199518451d94c31382288224cfcd0a6b399bf238a30d0399b33b8d802f4b991518c247ec08328c258c0059b176c40cfb2f1b0a484d8c8773a2c8257c393027a11805a9012a48b147f0ee78da4f0e43c288d28c23c353621e68036443e0c0ecb4d47237f088fd0a65306873772e32e250881f8c308e1e04f8f50e79be581bcdc78cc60f174de593c1d4f8be73346873543fee3011245911930ce9f8583bc7470300b835cc070ce46a3e385d311238a30eee5c1c0b42fa2288ac5cb0e87409d1fa1e770d8cb17d1f4f26060563bf2dec12cf5f118097d27298fa2c80c9814fa704b1461f625b4e1f0c78533461461d484c523e43b9e20abb9e41012448c1f43740429a3041934700049e91049f1745232a0cf8d102c46013b6044146142104551006e44118b0b28e531281fcfe6f3a158b484e1d068683034161a0a8d84c6a2f19ff71145982e1e1aa0cf8d900b4bfb6f3e21941c390c200403443be8800e74e0052b38a1887b4a10819103154451b42608c2091754524ad65831f21d7763bb90af0687c32c208c4651e4c5242211456588410220390045a48407ac20d2e2069a288a8220e1080928c24a9128da18204a238a7c3ca77bd351400a222d6c008128fa7ca7b34911414ae1404ae7399ae20506523acf1962c4a3a30504071a582202b126c4633c0b778874e49b01dab4e0006d5a98d3c2b2017d6e24e5e2348001e8379fd08a8a7c3332a01feee94411093e1fda9cc81978144504f80426eac1ff09817ef3090189a22fa228ca445ac80006511463047d6e705a5836197743bb90afc60b7f3eec81288ad088b4880124223b10e96c3e1feafc1e0a41064c1a305788426488960f818a480f27a5b3f9ce7f9cb3d1c816cf90d8f981430a1820d18d972fc221d2d9d810800004208001e448b9117ad04be8b3f10fe3f816313c415e7103b4e1cf8e2b34e14121f0d7811a1e16010ca0e3f1805a5a3c1f0f81f83929214e7949e9e0c0810315445184880078668dce26251e31c4914d4451c48af062124535a0010cd688a2a8232d8c8022c421d016bc5386e7f32878c9d1f16c401b35363b3aff02cfa7870e1617964d6703c48887f3397eb3c3392e9e3340de71e9e109d2f9229e2163788210e96c3a1b6679323ecfe2c271710f9030429e8e2624060e06b9e4c1c3391d239e4e914e19a11697221e0f07d47149e93017463c9c971de6706f9102fa9f2fdc12da7036cd9d1fff7109b94c508a73a7843e9b4ee9704ae7464a87f99b39386e80fe8559441045181b63c07c60e5b9c448a4b3097d3c8d23c58535473ee5e5e3617996144c1491e185e3ef1ed9f994ff803e375e3a0302710b17a228d2445a7cf01045180b843adcd9b06c3e12b4f1141697cea7f88605c446401e1f2481007d4a1a41d248f93f636fa81ba90bf9ee915dbc84361f6ef187cb58fa8018e4f23da19697cf0a925a6d05ac715e8de770588d4c6c0171389bfefc18a0cce75b62949bd0b368429b0f675a4062e888228c169ccf8787f4703838381cd6e1df21b21102daecf0ccce8f28c2200063000c02a208738028c21800d31b2f3ca5b8c4113c114511e6079fb800179f13952f44514412068f1164e2071ef8c12aa2282a69c01008218a2530010e8688a2e8c409496005061151162488a208838954140106b058c2255c1445254f4803004dd0fca1059388a2a80502182d5ab408416404086788220ee8c361e95137f6c676c161e7f74007f41e27830d1d09a0a183830c9d8e2221f4a0b34614451088a2688b48035b78c009222d3a8288a2480ba0cf0dff10e83b99cf87361916cf67868e7c08e4abc1388c4387288a3c9f7f41ca4ba7bc6fd4d8384778d08208694411a600041800460042425f446e422c1be6e838b2c1117a213e5e8810efb8cc004451c4a0fff9e292834867e31c8f8f1f9f576343e4080f00648e30cbc7d382b2a3b321b2f988f1e1e7e8f87842443a1b9087a323d4f94dcb46fec73fd4f252e288cc1002bd8b0b9e8cceb788a1c3c8076961f9f88822cc09876508e461c984388331c194b0c82321d07b144569bc7c782337f33bdfa0d08340fcf9798459a20843f289220cc6379997cfbbb8e0411d4f0be8c978f9bc8b09fc431f4fcb737ec88e28c244a107817018e18f6b429b337af391a0760175cae0705e039a451131a22892c5e7c3238aa23462018b57b882155114ad228a22554451948a534451648a288a4a114511294411455128a228024514459f88a2c813511475228a224e4451b489288a3411455126a228c28425a228aa4414459488a26812511449228aa24844510489288a1e11459123a2286a4414458c88a26811511429228aa24468818334026efedc77ac5f82d086cae79ddf07860924a730c5fa395dbd5aadad96a0d4c448520a5e49dbb6f6f518645e4d8c3e484851009251f09acb7a29e7c4d4aff21dcf69178f3b8928946cea69dd74fcda96f2ce060c151c24a170eafedb10f2baa9dba0f8442b5e572bb54dab1aff16483cb1d059377ffdef4bbb13aaa4f27b4d7ba772f84f20e1044ff6d5966bf02d4ebb4e20d9c47aea74cd36374d7ead9a98ab92ba337d6bb29d539264e253534db197beffea1a09269ad3746ec9a632a5105ee2adc6de5367abccf15b9a33482ce1fc13544d3a645d70b94a4c5f95b01faa09bf156a280193ea5f4db9a50b5f5d13e34ae82731596be61e7c505f4bce3531c6184f402289f6f261d29fd33531ea2089c4b2b6e07a6ae9737e5d99ce6b4219202490589241989e2ed6a47e530bc923f6db6c2e156c56b6ce9ac692c7c8902fc29c1c2a322071847cdf6ffff9fb544d2a22248d60497a3f4f73364c5be43f0c95cd6748182a2a2720618464e8d6b3d4ba5f53872b61a890806411ce5ba64eaab7a77afa2fd2e9902882674bcfeea04be76b08074812b1eb98a5b9af528e1d2a3976f84b6e11f2f260a80c214104b7a4166c0dc2f99ab56796e4103c934bec7cb29373e1d3a480c4100fc2d4fddc6bcafd5ebe48c6ff478c2b24859012aedea4785d7aaf5713998410ee9653c7acde6a6bbb577ca8bc3c181a10fbc03c8164100a366fce4cb1e4d6254722886d8fddfb5beae05c2b69620cb9b06476401208f80fead3fde6da54d69a0c8841386e400208365d4ad9206cd8da946e06247fe8956dfdcdf65ec1574c08891f74d57bd225a7af6d9b521323cbcb80a40fabd53fd8ed3c2dc93c8d80840f53659373b2a40b57f3d5ece15d6bc6a67aaed664ed80d81862a30718367ca8e4d80144850c123db09d70ea2fc66f3d768d01491e946bfa93c1870adde7e3f087c70b48f0e0a4b756f8bd9a9f39be83affa5de57a32a73c5d1348ecd0e46ca8baa527999ceeeba0187bf0594fde6fe94e13e3cb27d4e111eab06433c820a1c3ec56d0f9ec65af10c22f48e6e01e7b4d25985a73d05d9283e4f9a473cca52bebc548e2f0bb5cbb97987ada6c190e3d77b97bb7f7dc0caaa6b3217943cf778f1793ef0e195c6e50f7aaa1ff53ccba5cdb007bc9670bddddb7dbec61a30c1b3f545a184888393d62ec7c28c49ca9f22161c32ab9b83d572cf52e630d1a2f0292352cf85e9d4fd8acde3fa118fd55583c9f1e2f9f21d143a2864d03091ae0d2d5cd293bf766bb75869d6fd5eab9da92ddee9a1849ccc072a9b5d85a4f5df34d246558eef7584339d372eb960c29ad4dceaaff41e88bc720135bde6bdb7a6e9f849a2511834ae62b216b6fceb92d6962840149181abe526a2e9b2939b81c0918b4274c8b25ab6dd79e6a62d441f2050697b25debabe0927079619d84ab5677f3d589bb074917b43df7e6adae909b4a122e24b6ef3bf1ae36db7b690b53a9fbfa6eaeaf49b12f86a8bc0b87d520d102eff62ec6eaced9b50c755e8d5f610149165eab5287ea3e35960eb1a08db9874f49e8cb25c5245778beaf7c59314faaadb3022f57fba64e7d6e77b526c60ca7b953468c1c0eeb60024915d8d2e4ab49f8d85a9fed1d974742852617dba9703595a4eed4c44832857e4f9b5cfc2d2df95e3531663a653cc6062452e8e51a32bf73bfa22346154c1348a2c0ae5e37ed7db9ea0d6a627c8e6f321d0fc77f74c4881154c4e3d1a48038850b1bca630b154902855f7335d5d6bbf9d292eb096f77d97fad752ced2b151f244e687eec2d37596312aaf5b409fe7c9983ca1f4ed654a93241613776d630b1e6d6722f4896d0dd7ed373fa4d719a50098c75927071823ba7f4e6628b1e2449d0d5d26d6a2a95154324b8e4d48d96ae35ed5e90e911dc99d5dbb573934a698de0503ae726177a6bc9a916c1a95b373ab1563967b3a7d2adac20052c202142532b79a996d27bdcd21cc24b50c9265d32a8ce0c85909a5b377afacae78eb9996482b3e3d9fc8831a5802408d03f2dc74e3205753910d872ebc6aad4ef6dba7d92e1531689c60fe062385d652f9b904de683b51ad46e6e397debb90a8b4423c69d243d788dd3ece50bbe6ea84be5f3fe1123c6334878a0ccd7fc552fd70e9c7be9c60a21d181ec9654aa255f39756ce6003226bff12eb94d3ea84870c0f82d73a9cd65723566243748b3f75df2c95e17b644620387db0c55fe844db59c243550d9f259bda99fcf956b0d4868b0d8aa1b102ec3a5899d7bf13e0d1a9859bcf6dc7b6ecedf5bef4a13e34a46816064017f366bd59cb3d92f5bd5079858a86c269dce7e6eb9f283059c70ddc3e4782df93ebd42beba6d726e820c4ad6342b2d9ecf8e185b3c1ff781718583fc8a2df86e539a2cb562aaa4d6b1e3245d3ab533c0b042b66e6fb6d9da29c8bc470e30ab78add8ec36d936f892b9a454d1bea162e6977aa5648cc1012615abdae467de8fa9d7d8d3c4b8528218836050f1de9a9a9e6a6aea29753b1e738a7706df33a85c7b70faaf668a7749c17f4bcea55c5a0eb1dc705a5cfc3dae0930a5604eec3f4128576aaf15299acb4d4aea92aa0ae76a62ec3c27235f8d8ce3c08c42bfe5749ae052cbe95b93e1705c7e7cc498fc619861030c1b211716961ff3c9980446144cf53198da3fe7143bc6c516a1686bae6e4a155bcfe04a6d41c1546763cb67f3ae55fc5c84603ee1a673d58a5ffd5c0927c7e3e932309ef06d6ff8ebbabbadfbe785bcf0191e2343621401a613bdb4fb417fc79292e9710226973c715adadc796a9b78523ae9af35cf953a77e5c7e78b7c982583e9014613ebda9363a952d2f53e9e964c0bb3ecc064a23599feb9eaf64afae73f64c448020c261e365c6b7152a5dacad6ac7cc7c3d111e3773c1c89c3460fcc25263f099553eff1eaf96ea5c70a0e9516602cb15eef6abb9cc276df26104c2564e2d59abbb4767bed91efc4b812e3182aa10da745c827c4020c25d6ae76525f92ceb5b927d1a46c73ce55d7ef498792785e5df532bd67b9988b44af365d3dc98da94ad5209160aba41ef3c7fa945c8f9070addb67ad92c1d6c9118a49c77465729adcf220292218928233308d6877df744e3667af299711ae4d1b32d656ce26153bf23e3e6fc41386c22c623f2565e98f2db6560301a388d7ef0caa36f76cb29289f8b750fd924e2af3d632473c46423d308898cb97f267ac4a3d7b4b13638c190ee78dc4b86a940073085fd6da995abcafe1274378b7c2f7f857399842b0a770d35be8925b8d6d0f308450ad20f4b66d59277f3b043388e494cdf5566a5ead1a042388f9a0ae55e993e4d5328d81094452aaadc365f3d7b16517ce6c1840a4a5f6bbbf9bd2b6d2d22ccc1f9aa5d7aabc4d06d7748cd34cc413c61321e209a3c5132446221e8ecac3f8c1c9349d5aefef17bbd9402a8ce9034c33a99c50353ff5dc0361f8a070e57a5ee709d56ad6983df084dfbf53579b53613b82d1837b0fb663eb395feeb679f84fac14eb62ea57555f3078586bdff26b756c7973abc1dc61eeb37fe57dcc566a0c038c1dda659a8cc9b69e4c4d360e3075505dbdd09f5cec4bc13f82a103e4b4fe947bd5a54931508c433073988e597bbfc9d66373ad1f122307c66037a5d69b9fbe4e0c0d307150ebe05a4caa35b9f9aac6317048fee0735d8da5d7da6cabb9bce17193eae782ac6afd6bcfecfc8801c60d0abe061fb3f35d925f9301a60dce256475c6967f39c79a18635cc1d11836305fc89f9abfdab76f0d0dd99c6c7d5a4d552f03bdf01820178c1a563b359743ff6d658fcd505901260d69a55a757638536b4dd190e4620ace34db35745ddff232e425e48239034fc7ad4da9da33fc5566780ba75b0adbc2d6b4189031d6aa11e3b3f067627a8029c3bb05a5e46e53beb4a1cc0a86a440c507860c8ba72e4cd0ede495528de15fb6c6186cb8ba1faa1876b9b7a6b6ecf952590a4373303d86adfff5aa7a302c0593d356fde4932c4d4d8c3188c17f5c401e8e5c638d18df5d38ff69f9826aec1aaaee9d3df79917d8e1afe76dedb1bba69a1855305d589b18b25ce5f39d6a6b860d3054629401860b93d7af67493687ddbf31c06ca1d59f3a27d5594e55416cf8501902460b4efe27c6bee7eefcc71ce21d58c06441616307ffa17afdd2312460b000df54ecaa57b9941e5ea1f164961aefbe5cc97a458509182bf4337399da648ebde75a157c5535a5aced6253bed7c4d861ce188ba182f29baad327e6d3212f9522982974626ecdd27f4367ca7560a4007b395cb33df89f74362460a2d02afd642fd9540e997250706e55ef544f49f8e44bff7103cc13d253eddabb833331a70aa3038c13a4ebc6143eb9cc7a629a00155b9e16fe339652934a0b304c689341f92ca1bea95cd9fc1d32c697900ecc12761bff73ca9ae3d77f221825a44ddd64ef4aaad5d24d8252134a574cbe7333b937468c9a10b7c4f8124a182424a74fdd83caa5a9ecb50c260f9823b42a26f51f4b4ffa4eae34967c805c30464872b1aa5b275daaf9ba084cb683afcaaadeba6c0886086ce9b3dff6bed6ed94426c9861030c951606d2c22c0f3304a6fb9c74af4c39e9fc3b3186382424468911826a4ddebc98933ff5d6c4f8031384768d575a734dc6d653100304d59a64c92974f556aed5c4e899185778645e421b34544a80f981fb7fa74af9ea26e7835f3cd753d55c33bfd21589e9c1940a197b93955d3b734d8c1fe3bb27488c31b6430c0f9eeae41fa3706d6e36de24fb41d95014abca57a765b8547aed11e96c5e769884a2997aff5663a7f22907353730018554fac9b909173b255d73d8c0a1126367c31af989a594748b994dc836ada562e28996939932e58b5bab529a18bdf342dca413ad2f3166cd4d31b99e3e1e8decf07f4860c2095fb87c996bdced716f42dd4b703275de1a4ef934e1cd89a5ece61c5c5e9f89f565bcfc6ea5836c35cd0e134cf074ed958b69f76f9a2697604d1b3bc97c26dfb4890c134b3c377536c554cbfef4d6874925166cf046ebbe56b79cdbc5a94d28e1d4ff4afd6f5b7bee5de885984c82d784cd96a5934a39bdc63f62ec309104b7066792adcd0d134c414c22d18a7b7b7d1bf2fbdc1d269070db9274c57cc1f61a04f2c2e4116f3194ae5bfb3793825313e3e2c0c411aeee3d25fb3de9d41f6a6274c1c7b8e2021e63c4d8c222cd306984db6d50a6d69fca4d4d8c78acb1b5d3bd97adcdd44c16d16ebe967edfae4ede07c4441153c9de4ed0fd2ec90f13f1e07b72364e69dd7cdd10f1de3b7775cd3915746ec8172687504b39dff932a94a6d394d8c1b151689c60f134398148235e7aad84d351532bf092156314eaff4f53567980cc27127b99a2575424c04c1dcf4799a6afe6afe4e029340385bfe891b4b8672bb57fbc204103fe19ccae7cfd4d6faf4875d2a29d6ce3d6650be663e9e8c11fe64424fc4c40f909d39a926956acb96a7a50c933ee84b093aa74e13ea6bcb62c207d5c6cd15af74a8dab63db8c4bcca2fa792a97dd3037bfd5e50b69f6c425e267950edd58dd95be7fc70e2e139b6aa29d91672e375877f3029d9eede3f9bbe1d649372fd5cce6cb99eb20eda782a832f973e7edb74e0b49662dbce3b95399c03b74badf9a6c75a72e7e4e0f6b525e59cf0675a6dc5a1b1fa4ebc9cf436a12738bc77f219db769792e27d83636be206985882ccf5b76b43394ddaf0ba1bd46736e1d2c9920d0bc2e9f337bd9a6c2a9335b07bd7d45a4f767bad654cd4f0cdb972aaedebb676c234b0326f9d1273c552da4783fe73f6e7269b26462e6cf88f2d9c6072863567eac76a49d58a1d3483eaa514ff928be77cee32aca7ec7659754f4f4f01c1840c9297522d59b9b97a6ebec9189aa92735534bdb94746b2286a7cf165407dfdc9e92352ea08c4918ba17fc05a1db872bbdff610286b9af3d3fabedc4edde13ca68402e2d61987c81a9e6b3b596be4db51233f1027c0d654a4db125e55ced9dcdcb0eabe11ce38a8e229243423e1913987441dd635e6c1533f692ad26c6344cb8a0eb2de7b72e4939d96f614275e7af935b139caf89310c132df85ba9f17c2fb9a6724d8d49161cd3d91e6b6d39ec87c9040b0e3e4c69f12bd654a7da5859b1b1f25cb6b0b1f25c3e3b62617205d798fe4ac92a31365f32b102930ebeb576e7bf572a995461d7ced5a654f66a99950a4dfe54af7ed52b7f4bfd309902abe9529b49269602943f1b74fd268490d9d2ac7c3c217e814914be616396e073dfeff44ca0a05c21cb965e3f053bb9ce863f9e3179829470219b922dd7b049e884e9e0c3c9d4724c597ba789d103ea7874bc983461d7cbf652e2c7ad94a9091364b3267fd0b172d5ee352b65982c81b99964d81cf232574f235760a204f6784de59c7beac136c32409fd7eae756d7e2dd73f132430b7b7986afd3d42fab71eee374b4f95731323f854add7bda7b46fe5dae0a1c2625284a95ef3768bf183d075a97866670d1322ec3ff69e6349cdb6e06f58362b406ce8b0314405e41d174f0eff239b1e317e3ec3228f083119823b08595255acbd72652204b70b2e57869339f4a53b3009427af97cb7f5f49eef12174a860d35c1169c16975006062640989fd6ddb2af9b4971ff80a5261393ab1c848ba99af8805b2ac6d493bad0a9f297d032e981a6c52674966c77b55e334c78f09ecfb92e5b6bff9093c90e7cd9bae6e072b7ec206b31d1c1eb345bd373b5ddd4539d4db3786432c9c162ac2d7bf796716bb834311ed9cc678283fea52677f7be5792491e263780c9bdb135f549971a261b784b2efb41f8d67dbf167201f29bcf9021263570e98f57ba43d84dbea789f1e3c97c67c3e96c625c11c38406f3a9c993dba92f566f352d99593cdd6750e16b6a7972b04416ee75eb4feb57697694c462a54cbd74bde96a29960ffd8871e5853f1f1c38545478c4a822df0c0e875984c4a862a404169ca0b37313b677e75cf97b425ff28ae9fef01f530ab99d95182aae909f145caae9957db71fa2127a211a10fb8025ad988df93d742d9d36f6c98ad6f6937752aeac494e4d8c2da0ce8647c92a5c726e8c9de2f7d6d34896b144154d993b259b4ad5c418e2cc4a492a1a536eeeeebfba316e54b4d9dfd8d437e15b394a4ec1dcbf32a65cd75b9d821253a85a10a67756ebe92a2b8582da2bbdb3247fd98a8d2e9490825fab5e6e7da576ea5b8c2095314a46c14efde47dcb5cee6a86841251f03fd8535572eb99c7b8f232379f37a38c9250b4b6cbc5cbbdfbf9ea12507c6be2f4df7c7b954a9f80eea91bcb925b4a327dffb56b4b3cc1d3f56b8ee563b02d4f4d8c669474422dd5e07acd164c0e27e444afb45a29b7f64b19849a18f9133af29a924d2875e8d69c4aaac79c743f5442ff852cd104dc75ec8e5bb71194644232e9bf78b9b4e02e6b2bc1c46237d35b5dddd479b3924b2ca7fb7829fda4ad2b35311e794d89259e75f9a5c6e6379d2e6962f4945442e57cdb64f3fc65a75c13a3094a28211bb35cfbdcaaf53b46c924563e742e29b69eb37f2689d76d6aab92f03597e4cb9248f8ecd5e0f4b752d2fd2652028987c96743675f3fdf27969247f4c20455a7279b9b4b4123943802aed65899e3091b2159a92ff5ed69fe72c5085e76eff5d36f2d2d7d8b90f3b9a4bc98ffd4e5b3855b18880a4a14f1cf76f73df8e67370be4a114a129194724e39c1d5dae2264b10d190f7a76a4b1def4f2f39446ad031974d17f34e89211a634eca94be367d991d79efd87095269414a299f3c3a458257fd7241a258448cf2777bfe652fa2b1ec44aeb35f9d0ff137c3071b1450a7c940862ea532e5f595f5b53d7c32909c4af6c0bd5946cf95dcabc12403853ba1e4c6eb2abfa1f20dcc92ee16a2b534bca0fcc98f2e79a42f90e26ed8392cebba77bcb565a2ef928e183ef2f9ebd5c7aef9cae3d38b79ce13f9838c957b2440f4ea5c2e9d682ba1264b3240faa95bec94a4228e15bfd82123cc0e5a95c7339e1b7552bdf0c2094dce1217bbcd27c0b726ad57678a76daea57cb66e7a85d141491dde33de6e6fae63b89e3b9b32543ca1ce0f2f4ae8c0164af65455ae620bb9640eefaa70b2b24fb5ea4939404e4b533f65b5e46fc7613da8aadfd69afa0fb294c0e1c1345b6349e76bfc98b694bc61a9edc79673cf746a732eb6b0a182c941891bd46aa96aa5c53ab9d4c6c3c60f9550c74523a448491b363d2ba666d2a7dde6beb42e256c60f07bdfc24fdd2e75aea139b5a4fcb174b545891ad284ce92fefb2aabe21694a4a1e5bfb4ca9282b2798f1234bc5f8db9aa656d2c695341c9197ca97790b1cfd70fba45a3c40c497d2639a1eaf2f65a65505d1036847397901232b0e64bbd345d3526dd1719256358770d5d4b73b919f70f2911c3cfc46d972fa598adda0c88332fb905f4f24542615095493e96124f85c93fe402448c1230a4b9aafeb2797aab774d8c2b2aef9e202a28f982522eb95b2fad722b5bd2c80e7fda0bcd3629d636795b6d9f349a922ef0924d7d3f5baa0c2a6b5a3c9f122eb8c470e9da86cd0edd6a625c79b9e108d902439f4bba3419644eab34314e7e4e8c2b3e546489165462bccba55227d5934e13232804628e0a4ab2b0d0d95b394f06a1dab0b08481a3040bfb9ad49b09b227e76e5b3a66945c0126d5b7d8316def255f9a18399ce11857e49b11248d122b40c79c2fe738ed324becdd13e44baae024a7a6dabaf51a5366ef9e202554d8fef496bffae4d2db19a30b7e878e9229a8f3d5349bf53d3515865c80c0a0440a2bb5fffe93ccbdda4a2551784c9bb5dca5dcfad78682329e132e3ba66f9f73c9139ef972cec15d8aade598c68c1227f47450727250265fbbec3f4a9af098be564db25c4fee7109133cb1bbf5f978b532e896a0040c942441c8054a90d02bf1bafcb4bcd34c4913e3f4643420f6b14a8eb069c1718618182831429249b526e7bef6ddbc4a8af0ada59974d5a9ce5f2582775a69b165ced44d6599d01309fd17b364089f1cb2f595fc0e5b2995e7341791afd131851221402597a69da9b5264621254100c20ffcdfb5345b3fe89cdca989b1c4079325c758da09d33ee659d203e54dbdd4de521743090fa074b339b9ff3ec9a98b4b76e0e4ab941c7bf5e4538d3d253a00a594e44032fffeb6ce9b9b4969090ef49f5b4e299996bf53a68931c6151394dce0b1326c4d5bf93e98541363118f47c3f18d0f4a6ca0ffa69b4a5d2d55ceb025c69597500b0b8f8e1836bcb301e3e5f32e26b061a30525359840090d949c3bdd52b29f6baf0f44320b4e4ba9e98cb5753c9b8d6f38ec051259f054faa6b636df9bb5a689f10624b1504bbdef730725536aa515fe848ef0b06183c3611d3654ca88110305125890bc42cd999aee4e663f7f2a3214892b5ab198dfedcf275f5d3ad3c448c28a0690ac82dd4b9d2dfbc9b7eb5cb322860e1b200e07870d336c848e7ca8e3d161e3d5d8d4804415fb3c257d9f2c57737a9a184940928aa6a9adf7aa72674939092a1e6a5cb8eda269179b34a56c91a23714bbb11538c1bc74170588422017324c304f845d887498130012d0e7a58b7b3e2d020012b5b0c836416945e841ac78353c2c2ccf02009455bcb448966741415185ca640280920ab509713420ce640480820ab5097d34204e2623009453706325196c8eddfb2917088a29b8d93e6bedb9df1f27cd17e1213182c24029c553b8eff519fc9518dc8c18a498e9579ab0f725c76fe9286693df58a9263fadc44a14c949b59a42a714fe32170a35d76c133a3fd89e540b144dce85df3a1fc3c92b3ff1e939b78ae76b2c392f4fc097da26e85eeddcb5be130b3ed45e754cfe5b2c714297d9faa9e0eab657de84da6f0535419ebd1a639a504f296eacf12f6eddcf842feba5ba789dfa3f63c2dbaaa7ad15f357cca54bb0d7a48249e5a6a98aad06c512709737e97213833a57aa84d3e4524a505b62c8f629b1a95f6ba558fb24526be75c72c7eff5845212cc0d7a7a8a41e6a0ff8b44eb6fd627593d4848a94eaee92e5d6beaf688c476f9674b72bdbdb91cc1fdaea64f995423e44af786f355ad5ad766a030c27bf683ad6df37d2dd317288bf8e5a6d6b9dd54a689c14051844a10ae94ad74cec99e27e23905e17b72a9ca04792162bef4e483cb9f7298563a84520b4ea789e99b3e1f33446bd2a9f54f4a57fd7c1642766a8d7f394e50f162427837db96ef9f1a264e8370cc31e8d237e8d6b247114493fc6e55fbbf9b2e3d9440e892ad4c3e5669654f06847c73e9aed4857f68eab9e96be17cfd6f991f1c3ab9647aaf5c2e65fb03a50f6abdc9d6cf6e727943c987b54ff152cc29aff9aff7c0ee56b973effeb83947d10343876c4a9514ca5e9662f402250ff2ed92bf4daea7507d62ce0850f0b0702ec59cbd394d4e7d51ee90927cf773aec54f7a6b767829599b5c704162a0d441cac94ae1936b39a81443a1036cc75aa5c46687e64603caa0ccc1b1a7cad6d7af279b7b463c3a629c287248aa966b49a65733b173287170d2df67af520837a54581c3d4e5e44aa6ebd4432551de00953fd7d2f324e15ad30d492e63cd35b65c2696300c9436246f69e12a08d54d095307850dce4165cfdb5bfbcbffade1c1d9b8b56763271fa3a84136e65232a6509f42222869980dba7a4acd94bea74b1434bc2475cad40bbd49b75c07e50c9d7e31d896ca5532f1ca7ccbcb901c2a3388467ef8411837a098012ad8a63f5d69aefa2ec35cf86eb27bc8cf1923837c70b6a70e26568c558fc131b83c5be2c5dce2b46268d35db59accabd62b158605593967b375ab2519fc0fb7a4810206a69eb36ccc5baf06dbd37c5280f2056fadeee562eb586305353172f843a04c118e4ba300c50b89d5f23a5567069d883f91cfb310e96c72384a17dc196cf916be427d6c6a6254a348c60c3080907801850bbacbab4d28a5dc750735285b600a273ba86baa5ad9a644d102e34f4bfa7be6285980fb2b255fbc982646100b7fb845080e142cfcfc9f8a3d98f413db47b9024ccdeb93520b97aa5b8d15bcdde56cd95e3535330d4a15dab57e6a8db7d9eaf6c440a182842e673b66e94c4da9384250a6a09493b2dd757e4bdd93c2e46e6faa666f2954f281a2d0f6dbf14bb6ca5e4287423bd84ef539b8ea2d7d423763cb579bba533de63a509c00d964d8ef9c7b0ba1a62f509ab03df535d98bb1f5664b4c902fa5d6544a69ade90d97b0debfd6b37bfc74ed54422b6ec834ed27f5e75a12d4540a2183abda3fa6bc0305099fbabd2a6b9adedfef113cf95cea395790fb41453102c39dce4ef957a63715175ba8284a11b8296b3b39a957d8e62302744bad7bac5ff2959e030da19f9a2d35d7c4522f9642e84eafc1c4e4eaf9b4a104c1f542f7bdbf332d5557060a10a4f7375b0bf71d9b50a1fcc07975b1c7ce57e14b89e203d91c4c337d62a8ce54f580bd74fdeca1ff83ebc113a0f0c0357409ae6bbff5246b64a0ec80db6b29ad9a9a5a2e569e50e7870e1c9b32a56df61c48d8dacd6ed656a5d75093d9cc39e4478f1e2c2036f2d231668ca0e0a0dd767ae72a2937339703e506eef9b34dce2d9e537da2d860eebfc9bc925bb39553941accf9a052c93b95746e8b42837d955231e5607a37ddd4c49889310c1c39c408e38b18fdbfc52341394e66c112cba65e49a9dff3b12cda3de59ce325e17ad0cd9358b8c397562d29d77b5a6dc1092c2483ef25297dad5ecee9e4157025d9694a7dde0fd39eb822a5d96fb9f996f9b17e1d25386945f2a64ab22a73ccdb72561ce064152f555a2ddd7450aea4709ea8626eeb245bb6675eec899ca4422eee991a2f05f777424d8c6a8071820ad814cad678f1a7967e59361a901a6bace1e3e414cab9c7bcdf4de55a621f7201e24e4ce1925a4dfd7a0917f27a9a183b3df4a414fee43276cd16fbc3e9a458707d3a7fbbfb2bf3289c4ff9d4bf753d5f4aed4414eb9aea3eb76eea52705d4e42e11032cbc44b290c4e40f1942db9de6a33c67ee7c927dabb37b854b5f6c838f1445bdf1e3e95763536a79e74e231fbe9bcee9413bdfbcadb4b5787eabb09f7563ed99e41d6d26c4b13cee04b6eaac63a1389359e9a94af5bdded30d1ea9957295e8ba5e7e4259e777ae933b15dce0b5aa213f3c66b429695804fb59da17c9468efdcf926d9dfbca99e845a6b4f242177baf5dc635dcbdbbd934848c64e356937b92d17ee4262bde5cdd96cc6e6548bd9e0e4116bae75f716640a75d7114eae8509b6b657df0c9e71d2886fed9b5bc95b72b3b13c678b13464ca9ea49b67465f393ade99345b8afb9543db9103ae7d689229e9c2eb9c2c7ecb9f53b4904d4e678b6aefae670f90411ef957bee7d5f63a6520fa15eb1bba9feb5d5e532f4e1315edc93e3e5c410abade19c3d7f2e36590bb1ee75976a7777c974ce1342a4a5a0beb95a95ba5f3608b9de0c3ea8cb25a594b99c08629552d5c5cc5b3fc81c88b756b7d5d649faa6b69a1340a86fbd7057ee7a6f7193c1c91ffaad9dea9827f50fb5854efcc03cadb2d458a50999ad3e34995e2d766e4e79c287f6bebd606b77c3c46ac7c91e78c96549216b0ff67ffb0b39d1c37bf5a4b24dfbed9ce5b69ce481bd87739553a88badab1e277880afb1c4d83f97eddc52179cdca1956c2edf41d689a9f52776504fe792eee1943b1deb933a249f2c556afde69b4eb917277458ce264b4e6aba25994e4d8c7c3287754cbab92cb55f90b5656324732287e549a5723dd5f4d68919f9ce9fc461aa4308613b93caea89052770f096a6cf9fcd2da5dcb99337347ddc92335606e57c5005276e58d3e173aad3a7cb491b94b6f94c5b826c504dbf3e13379f0dced7b09335b8b69458793ffca9aa6ad086cdada5eedf355c5013631ade7c53994c6eae5abb7c8c1334bc6350aae720a757dbf8431d26123a398363afbadeab36b19e0bc889199edc76ec6a5542674a65ca905aa9b5bd60d3397da91f2a9d0f754ec8f0968253595328156c5f276358b834296f4fcd666f77c18918a442a7be95b34efd260c83ab739f89df6b6ccd76203038a5cee1fc9d2b77d51ff40526174fb57ee7744ab2f49c782149e6e042e66f49a76a764ebae06b4ae7a6eae7d6cc05b7b43d3974d8e4b74b5b78d3e5fe466324e3099d68e11f4ac91a5370a74cfe4eb2d04ee1a6f50ee7f2e5ef18e116d00916a073b5de4cfdd4c91594b2769f5c4befe17cb682dc6e76d93cc125995a55e0097b657a4e1364c593e5840a3f5fb55ade8abd7f29a7901a5b6b3ed72ed5ead771f14821b9f66d31d6e65b69b56962cc60a2701205f786eb39d77ebaf3ba26c6222750f0c7eb3d872aada758ce969327787353d01f9bad3565eec4096a95576eafc4f45de326ac7ccade42c80cf6f2036d4e98305933f898f2dd061d36d0129c7d616b70d564fc2468c3f9d0466324137a224ad877b572bf395e8d2de6719204864ed7b69418ec954a9e20614df76b41d5e58e00dd635533412657a5572246902e5b7aeedd63d94d6a11963377289fdbe452bf3b21822bedb94aeabef4653e19425bb22997ad252ec18910bae77aad5bdb77f8e623721284e91a4a6deca65b9db3e500424b8d39bb07593373d3e3f9fcc90fd65466a88d4185ea2df3ce084e7cc09cbba4d4b1e41e6cc73dd84daba0aaeaf5e69a4e78009535b8a4aa36abcb79b283b9e633c9491f9b3b25b7e044078c5d8213aa564cbff1cb41abb78350b59554d7aec1090e52ef93afa5b3d7569a930627375049a5e75cbbb5ebe5fdc5890d54cddf9d4ab2e7b58cf138a9c1926ae9b67aee9eb576384e68f0cff96a572b93ba63ad89714563328bdfa593f9daf950d79b9a18631c81892ca49cf05d9f724aa6f63a16bce6f25b6f9dbe3575bd9bc0425b63cacf4aa9f4de539997fe8f2724a4e3d980402da020367ca8848ef08081c92b5ed792be9a63cdc1d7d626ae704ecfd4639dacc9c4b82224c81a26ad70a6ad94838b1dbffffa3061c54fb66f557b9edeafff55c8ff5d6dcd97bb4ac90dc34415cce684ae50e5b76489a542bdc650eaaec2d6da739a18a1092a3e39e6d2e3f7948685bf6324c3e414afedabe9ce3da589f1e51302bdece050f97c8c1925989862db2ba6e93506bbfdad492918538fb5c61af3df66d6c4e8384c48b18b4da6e4aef489936a4d8c992fc2a11841018fa2a844108623792410898281200642103a346604004311002030282412880412c18856ed1c1400025560546c4228281847439238200c06e3288882188661188622290ca2304529a70572ce17aa34df4519b01c7adfb7a2546be4a3f3edbc7e5df3f2a5cb5c3f82625af1a308da8ef45ac6e2ca9281651e422b142b0af118ffe4fe7dce3eff7758cd82664f96d21aedc3b7bd1a40c7d563f4b8c66ad0d709b6cdf920c3418c3db5712464af9c3a446db762b4ef9ae2649f5043bbe3b2e48ea356d0e93b19e20cf1b314592739d84d68bdf9a4e07da45aa4ddb8bba8843dfa6cc350aeccfdf444421fb812ee2287a847cc2c42237aab22c3ae98a332466e88236025aeceab87ed7d51205fa935693d03f85380d9b4b3ce38af92271298ab3ad2638e6a0c52f39f1fe77ae7772f384f4a694e838baa0fa71923de196ff15e5f4ed185847fe982544d99efc9b0548b3d5111ca71a546fdd0c1af0500053dcfd5a6c88e28e375ea961f44c2478065c30757cb50853b41d5453af7f38f14b8ac24a937da2f0569a62d3eb0af5ce8acdbce017b1774040ebf3bb66ca0c6a423ab648acae421b2872ffe1f3d6158d2b544076fe58e6242aa1e02ddf49b7a637a77601261eaa95373c43fc2e39ddc2eacd3f66446bc35bf0c6ce50df4932c7bdc0dd5b0754f66894c89755d4399793072c70c4042f44591636155e4922ded81a5698584ee496a54c37ab280bdb3cd8640642f6045dad5102cfb4ae6ddb9390cec444c2ed2e81c011f9d2d556c9eddc81b66d2bb3973aafc55dd79b9c56557c6f6792ef0a74482922dded87ff2905c5b4ed6cd3103894808e49f34e2c4d1f9d6730792534f0ce7d7fadc58982005eb8f80c01635c1986b983f03ad3b43c407d83e2a9d837f4d486f3b5f5c49ec17e5096715031b4ce374ae1d607df1a17d931e0b27965d2502d5d7a401db378d8705c8a813e20bdd078dce4cf4ff12e782a15686e7703399257342331d1d3c98c89576418dd0b88e0a5af0af9336dfab0caf7691d9f6fdba97833008d831baf3332694a9c6703876acd8638897d37563ac2f3e5c49f65b1354e29bc65fd31e199fc88c196d59a8c79545767810579a22f2e1e002bfe2c45eac9472fb1533ce79dbad6d39f44bcef35969e80742d34ecd995e0a7e34c00c87679431633b4363bf33d1207089754b495f55a1c0df1d574184a1d3ee9a99e425c4b9be4892bd334c11b668e0c1889db4108e3f195a1427a26f0f1e0f9411a7ab343ee214c0d21bdc001a6ae6a8cb4afb3d686c7575804c1c94990b7a6f09f74075b765d4ad92b50f7c4a9521f3c0bd986247c1649379dae0f16822d8bda98c42418fe714ff3a2cfafd2fe734b76f8922ec603493a8e08860963359e4644486cbec2c4d743292d60b14f97b652aa4a6ac6b69d771cc4a7b1c9c55f4e3cdd45b79bfc7dee5a00a34e7e5b0d92e7410dc8127586c0f8ad7f9dd53fbded2cbc434aa1c91cd50dee6661bb8782c97138ad6faf1fab9c73e63def36c0d7844095eddce8670aadd46bf45eab750b0e299c22f241b0f7f5c7f9bf90a3de24d4c3ff6ae6b732811b752c5b5d16356aa35edb4c404be84428b63d5644db51f50965ab573ab97b79c9a052017857df658d5af82df9757f0d14c5089af0930febb69dc9eb2eca574dff70f6a46bfee746451a2b6890210c2365f969cceb884b265cb130f4b5480d56790326d5aaad228c38db99221f1e359288b7809c4621d315a482e3ffdd7e284c0328a6d965970972825887ce6d3d0984323753b3a72fa8f8e248cd016135002c0abdfbc153e1bad27f9025149573b14fd6f75e9886e08c58679a1bb45a5da05f4ddb9be7a512f04a7307be432c6fdd2d9cf17164cc392a80db8fcdfd4f551892a0d5e97e0d429d8e020de8fa2b52df40f480a6ed52381d9424b5e91c645092735f4611e42340555b2b7c227b5b35da1206b881e2f5ab0ca69aa7cac213713de4a9c46a1a7e3e060ae613a7b9940faba873dfb07d438609e918c17204d673224fc2f5a9f8671dc1da5b96d58ef4af83e54b0b0e9394c9b2d645ed9fc6032cb92116686052ccab9cf8b694b6414063948b8cc30cfdb03ed62137792afb881640e9aa3d4422224973ce345216307c9bd51a2f2958b6da5d27f99e47eef114a105aaa5395a176cb6d1c092ab6bcf53a7164f6f85249cbb508afb9dcadc1c34a8299c1d04b1dc52da2ed3aeac41460cb23fde5ab4fedad4fb351c14f0e0959312cd4eca21bb4bb706e0c781854bdb804b014b405b337df436c25709112ac9109c11b3a451bcab6bc756af8cd5ef7c4577ba2be02161f69cc2fa0a83537250803d39a98a6cdcf238409cb54f86cdfe6110cd34c213fe254d149b45a650f436b1d8205bd18bd132ceb9755d0a37789e403f91c7420f59a0dcb78ab7ec39cd7ca01b63160a92781619c713d67d5adf91ebca97c87135e3bf535615077a535ed50365dee072bd2a470c6711252ba0da66433fdf56cd3472a86a46449db80c0aa5b8fac194f1877d0b0a949cb962b830c853feb2293a04ca7f7762e743469f8e62ce300869d2b29c21541c8b3e500094a026979cc12ac26ba50a6b212a2d22cef4ffaa735008bb4916c2d5a72100108df57889e377b5c8a5b7d88a9996f989063120d3e3dca0fcdc73947a78fd4e738b56771c895eb4599438fe60f5f536968f9e31d9f61a99c1ec2568ca6c6b525b9a22b36e56421e7c43af72e14c93e8f602c8468dfec08f92170225ee7057ba84259d6bb38ef84c23779ce8b00bac43985e2a1f10803b9764f066da14abf6549830e6322323a11356553d5f1c2a17a08eb2c1526751ce5ea3cb97f308dc8e0525226bc9512846a799a743faef154e2a42c575a0673981f24c81069d77f1cd6c0b4d9f800e670bad9ee8db3ac6938d3a40b24d5c5633417de31a35efbb203a8f6bea99837235b4ccbe3bc578e6d605fceafd2a13f2802d0971e16c177fafc47e602e68caf3e2ac89e0537b20c7193e4863508fd7f55b9288700227432d43f12b6999443d7a2eb3cf26edde8b66dcb0bc56409c61f1441065ec13ff381fe48de811b136480fe4ca6e4235b1aada71396d102730f3c5e227daf1b183fa16609028cd27490727066c9c5cda5172aabd26c62e547c28a5b84d09d873c7607b95f0c83b8bb09e2414269e3baa9a18a67a35ec9f969d6ff55589b6729a01f5cea86d97a06d57e98556c78e0dedb1ec30be610337a6a35dd0c78a8a3f589bcd078076243f1618e320b815a39dc8b8aa9e2a028ba96f2aa3cd1321c21a26df4f156bcd080307975da62ddf323b1c6ef38f3857310a142783889a543ac016f0d5e67b59be56faad8950f4a96e811f9826faf696ec73b3efbc2e1d44e4be062f13f5fc4804b7c5d4e0f010bb98b577169a3a65c730d9cdb2b1c32151166d0d40bb07fed5f6489ed66ea2299a90b00b9c0a7e01e6054f0b71b384dc147771945bab1f3629bb6d6729a946bf39f5e30e5688733872a6d5fbe8cd99652bc3400b9630dad5c1272384b978269b9ac5b70275f6a4936d366893957bace15c56349f0afb689f23b8027e670b5353020fa2b19e405332b7dbee0892700adc1e9c699263e074ce6c128732f036c4196c408fae6cb07ac2d1449b6aa08c271cb168eb9ef6e6a75cb78209a55c214e72ea18dd3beb4e436594c12ffa76b3cfb39deeb8ef7c602f1e86034f88e0aa9a7d46449f45d41eb0dc4602050fd748109cac9641f56b2f1fe2db6cd7fe41ecd61fea3095eb7ec6b2cdb74bb6474fd85457a3b635dca6bde52d59c13ae210afe6aa57f0ee3200e564fdd0a336506e500429ca783533ff0888924d0a5689996b087f7a3dc49251f728a0abc53748402b640bde320b5fcbf536ef6801c53c4764e8338ae54d04fd13b0e67b8106aaeabcb86ac812ecf678da086169682411115e86741d7bebda4cf396b7f7bcb7f8f1814daabac88fa967f001e3ec331609e25f8dddb04ba1bc9548bf5a959b9f434231c0878664481dc9cf972d5fc8dceec45c251bfc95df6ea161baf3814f4944a45c7095c40355112e1752519c587f58482ea89ae834c669db1653789dd48929cb46d7894455671c94b669d31c47fce0d85d11a229b84a9a0197279e2201025ef9176b95a1fc9cc11507f59ca02c8752c272bf7041909b11611fcd8d2085f1f222c1f582ddb361966842f8b08921f122d651b4314ca4dd4b060c118d45ecb944fa391f80bf0872f4ba6735d5a83a685796d0b4f7dd4740689796db0837cc614827b2200d171705528c23e3021a55c901152048d51eba2f9bc72b7c445f0ac44c6c38cf25bbf69399d8450804beba8eb4a9d483e300e48a9036f8b3f9341d41448fe112c9341e622646ada5e1b0db2c2b63d4740c7db20a591458ee091a5d2d947554acb010e0a3cab7b808001123b4ebe1e5259b6240d57863f1b5f0bfc03aa83d0e492cc1eaf17aba0c6ed33e9fb936f53d10bad33880a66e4bd9fc65665a3ee20b3be7ef568388abeb1e3acfad81b4e1d5d06e18f5b8c30d392fec4813e31d9cccb1f02852800a5abf9dd9ef1056ba2c4bf6f941e225831234137c7015bdd30743278817b87a0eb0638587a34bb1c5ef832ea5f2901d89d71a076f282cb4ac9a855e30e1aa054f147c4b8e2d9b731f667aa873ef05946596f35a158475140d1f2218b9833b0cb1e8792f805e93feae199bfefd4224b2eab02b61587e6da13dfd42b2169b917d0a5e57a8701087abcce6a0868f281f633c0ce74d29092f8cf5215e10cf2e0997499940e28fd85e9ad1fc9e595bf6f765f646caaa685291656e594f742ae45004d9b6348ed91cab4def32dae565bf52ba4d282363844526f2150bbd3c2b4a690895fcd44ff5ad116084b2890d43acb2d7a11384d06a97cc48147484d478497f11d5500c78a680341f5ffb4ddf08f6cefccc5e686983e9d9cc2fd2e8c7c3e4aa8bd796739500dbf4cdf2c293d0859f42fed39ae0384fd506c0372bd3ea10a1d99d673dd3df1a2fb5ac03dafb37663bc3bff3fdd9ef446b9fa4d3aacb3f3d0417bbe36ad6b13fffe9d8245b38f7af6611adac30326034592038dec1e0d05dbe1077d4d44d8c6c0014a9fb9b78f31b6d82815285486d283dbcd3f00515ad73fa6f5be50b6aa9a0cd23b646c2a0d0cfe18306866e5db060e6634fe1f16c00dfcc19b99010be6e4697c10f1d594563d7e0f606dac264b45be437d637feb66388ff708b587afc25cd1e0072a2587b389902abc2468fc8c0700f058ee1e45d198fdc6de79b27f5db5a1856cf5e4bbf3400e010f811a7c6027e8002bf8e7548f96152c49a6c0e3dbd86d6c369e64299e3922a1c17183f4a16fc8c65e7ce14454dfcdd7145c623486aac4e9716057e78dc2d0e84bd7ab75d61fd441353ed323621c48df2dbbaf6ebc379711f64e001f445b56b4858cde9e230d00d3a19b86347f66c5ef385a812e394703c05bfad87890ffa1b02a6fc84f2b382e412a5bd0c6707171012ae0c9ed286c24b032f533828652bd98b7e894693f4e5ec1887485bb7a59498fce48467caf218798b5546faa7f9d4dca2f6d8b76c6d583c7a9aa49e0e3b146e29ec3641b3b9e97e81ee1b0666fabb17d42bbe166e0419f61ca7b78bc3f4a142c9e81fdda7693419adcf4384b0113f1cb0f60f4d70f9bf9ec5cdcaa26b6f85aa07a1ae24851c7c4870bec2b4bc498ea04195fa573882ca9daefe25d316c7b6904f0cbb1a7da57d430cd745f8552c1bac4f25affd0c6498f4208a3cdda45871471f1a03023be269ac423b263b0f616a36bc085a78cdbfe2fe1395ec96741fb03a0722c3d369afc1a01633f0d7498a85c92915cf3e40ec394a47ff353432f05f4660a95b80833b280ea1f5f0300f41b9aeafa0a65bda0cc15860c80868c96a4f7e14441cff6f6a5a00b900762360a722b6a41e4ad8ccc2c1d325d3629f54cb9fcdce715c835db41a14224fde99c6bd88f7edb9f2b052bdbd03f8136f0c30769b33228e0d76ac12b4b700305b976ce6a40f3689a1ac54582601ab69cda93bb9a95a8b4aba71d3764f5229941b8680551be0055d55876f2ae36fdbaf27f9b13c6a33d580518be1fde5fdc854ecab05bc05c10eb6dd76767a1aeef8d778c1490cd7674ae1d0da61c21dc6cbf7180658fd1f3db6d55bb484d0db6799e99365ad3e61675af9742f3f596065e6bc0f4687640adf3fbc78c2e1e42c268816d01fd8590e4625d68be2c798aaefc68d2ab34ec39df2bcb0ab0e52eeed2ab74728199efbe0d42a36fc3c598178d64851279f9374e2fcf2eb1cd54513b6aeb25f96c8950a390689acfb50f02ba1a8f0baa23acb770e7de1b8be13746aa1605e50f1fea3a67e6b31f73857a6f7a7ffb1ca8d12a5d70828d566938128909b27dd007845c8d3569436027eb44c5858c42212d0a6bcb20cafec1b0c8043afbb84c9247661aa33ccb2d6702736b10b0fb69796c9197bf7205582bfd6b91934e0b7d2e56a67c4ea9c43c30d4083e49e387a8ecf2caf07ef0733028d48676503090e102d08461a9a0e4ab233c5ff551bde6ecb2cd6de4c23f0153d985d5b922d17f6bd3f82984eaa5739e8881fe5e9903104a99bf795780a4c2e558b8c7e6c25fff1870b77adfbe72bdfa648c1cdaa0cafdaa95e206153f06d461c8ca88f4c393216e112ccd54ba7c45f031eb2acdacc6a7b9349596e29941505779c19042f0fd334ddd6a8ec00a434629fd48c8f91b17c85b2611b57980061250d3056b5102c310434d9a33c097b293d55c3070646731b3521a09fee4882c89939e6e27a7af08ed0306ad5c8e5d50b4fa7989088165452a9dd3f4ad8eb1e151f6d2c79fe18c8f6fb83d3ef7acb3e2393d08c22663f05360c573140a82d11ac324e65564a5f376440dd138bb201ed9410519e0e0ad25078c751c9d9d546cbab26c91b279a172611dc5e26e4fd32ab2bba9891d61da65a87bab6586678e38e2b0b03dc621330f08998a0934f0a8499026ada4ff7ce5cd6e19dd1e31334624184761d7b5e7783a834594ddd7e70cfef32236ae1ca9d4e484ec3061a02130fb84de88149569aab587f3bda442139b4dccdfac4f78084ba93230740de608bfdbb449c5569dfa877e9d4f2f8d7ac0c6201ee6848a582505f6d78923c88c41ad0154ff3c8d310c63d9a9a155fcae7a793076a7769c54f6724e7ff42dc6205bd476ae0d63b05c5a479f9369a51546540b42c21189db637d99a02882b5c19c8013a6c3b2f85853bd2c9a025391017f0e1f525707074f9a06e607e501459a307136166784d74928416c8ea9b1b62d8beefe1d81016fd4b17b305700231ac429da782011e080d091191e7c6200ea81c105ae2575a9b682017571afb64b9b1826a5fe256df33e834d006a08cf8b52354ba18e1457b23a271876d77d987bf03931d371e9c50f8f92bdf3c0792d63618a37676dbd9687e14e31d9264c324a56b92628b84f59fdc0c2c5ee1ab1db73cacd6419e30465d44e3a243b669cd803803b86fae6329e7e19ff916ea4cd338c3034433c9aba9f58a66e79b18eea0d801034ed90bf7e3bdf600be8aa5e8eadcc063000eaa7b20d9b84c9602b04e6ed4cbd0f8bbd5fd5bae48fce32f78c9ae393a0e7c3474430813ad810aa4341b5aa1768bbd88c27f96c4d2bb98ea35ff727593609811dbea5baf8fbf3940379b6636f3e81b09aed4d979c3624b7637a257e6d07f944fd1eb730955dccc027985a4eda25be282f84047ad234ef5ee2245590fdaafb50bc92c0ca84e3c9e20c905cafcaa8ac9026eba8c4d24e498296d7ab55a498ef2e10b0a4b0e42dfb8afc3bcb578f1c83a23bee878830898b2f865e4acb25dcf28a50945391205cb3c28081eec105914de4fba31c286c6fefad6908ff69108f9cb6f668e767ce0745bd116231d2c4cfbd667d66416b049f8ea9cdae2a123a04ef66161718b0588d299ac6cf960a191bdd261c870264dcb3279c9f540dfe50d2f586754de0d5fec929d61501caec7b3a9896c720995011f4a26320c60b4275b96c9d3b2f28ffcc5fdad5cbb90e1652884263b4131a76384427909f8b211e8d10171694fed5d9776601d5e442697cbad52f87ee79c710a421db0be3441ad23c59636434e670d6b5bd7a317a197207f36e352d4086b1ce38b852613d00d8843089a73ae82322a7214fe2eb9d29625a269c3481363cd2724df05154326807c4750a530612db45e7d0a33fb6755542d090a52bb261c580ba5b17fd8f2348c215edf06f4312a0181da597367a063a4ea0acf29544ec38f19256248e289a9f2ff34c27c4ed82c00f8789e3f7b6bd8e33f7c4acc6f399d8a7f5f4d77dfa8a5099f79d568357c84153bdbe8b5d3185494cc7aee5e45a44b63b06116cb18205a832e0272c34c44fd0583bbc3d05a7cbe2cb05626e1a9b607546b90c2dfb7a1dd09c3785a6df261bb76f867b1061ac3d313565081edd576fa1d7853152943603e8e681d5ff9bb6fb4893b93272fde6efe74056077f7fd622208b200cd41c6eccdff36b011fe08ca54d20a1a4e80661ce5a4c148d5dd5c137d658f6d373776ec21c83ad929f59a4df868c80be216c4cd5484e74cc74d02095689c965ad134b5e5da33f6c04e0077a8eca494b3bedecab0e03c75bbaf28a26d46e41f3f5e902f9e0a2feaa78e312a9325b45ffba866e8c90cb91bb299fff2adea1c3815c2d430495710800697f7946988f2c6f664aa1dc582c5ebd22fb121ec7c488fc0cbf47c0d3dc16214d5545b050739da298779b42a6dce98244d8bbb915e9c627248e141a2a7092fa05565ac7ee96028866df311b312657d62b948a4cc6f02ab5b1afced3069b1c0b658efdc3365f3ee52aaeb232c95f5e97065d62e02eeb9199aab3246b4331d58fb792f8d342220ec6ef8000b8c98d878ec668472e2105b21ab03fd288e378acaabd51067dab3882570dcf07ad3a299693ee7fc273e9d97bfe2d26f9710a75b1ba04c584a3bb0663d01c63f61ecbd81236145e2ed9fe84a74494db4b56ccfb8d5a02c8a72e097bb0bcd260e9b78fa32091be8c318cdf76d949b423164277dd6e5bb1a4b7bbfffb3083adc55956723878d0e9fff2456d4b0245d32c32860a73d5a9c5ec84f64eac7b70bbad085afdbc4e7bf5cd86f1affb7fa217bc6391703dbe5254fc0351d02279cbc0260a8400d6f30d80d88fee5be6b334b1a2bc3b885df127760c0e3beed7e139088ec912daf319cb31f51121acc55fca45507a21b746cf662074c11be673fc1eb171202e6c70ab0dafb90d8f9f089140cf8a2472857c73ce5a1586f9888a137b14d0ce89feedeaa715b0685229cecc1c5b2452f746d74e4c9ccf4cd211c92d5da6a9606a2b033b647bce0dc1cd849d30ba49f7251384700a6aa77b89f6317cab26d1fe2041d34fcbe0f481b332644a6ad2eaf0b88fd6f2d42ce82cf3ace1b57afe42137ca1cf4ced7c321538a6f7a928e4bba45920f46b39134738be23bc72e65a3dd1f714d458e71535088a5fd2d64ad7f203860978b5ef2ffb9c12cc9f1da67c32612b0770902ee39865835dcdd797637b4362fa22c748b97a1a36b444a40385b5ab83cb87470d04ebef5833667ba88ff9e5a0a9a586608c89dc190b892ab2ee40cb55fc06b632ee660e7191006b8f7323be53b0551d8feb7b8d43a1835f7fb936995ae38745c1ed57894e58d580334cfd01a1b14b937282e933253e1b8f31f05639e38886c434101caf629f7ed6343af136bcdb4125301569fdd6f5e5d7f046e1430569c708a1e3eae322de41d37701cd36f5b5663ec2702972c6b6fc8888bc78146039e117c02535108205431bda2b8217829f4de6b3bf8eddcedb4515e6194366c94b72c9898846412e5a35a97b29071d550cb4f8e2ea286731acde3a38cd38fc75cd21eaf14f21c4e36a0c27aa0ddcca0b3636662071de068b721d22d00565192cc89f4fd57f39632cde06ae28c39f50a5c42779e4908f5b561973d85a510fe9d60075ab066e6651981666f2b739449c561464d93024a6050215f6aeb4b5b88797001ef62766cf7267194f2b1b0cb6157d202b5a751bf9a07a959af7ab5936450837a940750deb8cee160b40ab01aa9fa103554919a4910d48722efeec2452f0770690e95a791d89d1013e75eff2d885dc8a36ba9a1234f937f11bd93e2705d176ee847931c18c440e04f66cdbaf439ae1656ed1b881ad1b575394dc330c54751fac88ec26aaf252560649ba8d555d93b6cf636aafacc688af067a1e2e3d99fa6624d838c3e2fea61f8eaa3df0e06b0ca22159f5833dcd93902c0ce18a49e619bc675b03407563d2ec0668e2636edd8cc9761669e9acddbf20d6f08d988c33f7349c0a3de3acb84079318434411d198720cab68eaea3bc09154eede78c81c3affba9d9b67c2bd4a2425aa22c219b2adea91b4095b4e1b326d154819227af476fac047d9055b829bbe9fda875140368d6649708a53efbe856accf62a4cc928f808f2ddf309759825564f96f146e86e6f03ad5c4760b110cf03b62991e1fc2eae83abef253198c5f4a034ed42e8f0114bf93c69884c906103503e86d5ae14df8a3798cc45f796ad744286770f4623553755ad0bdd48c8cca866704d1aaaa0025d193aa1e404bb25416d5242b079e37ace3f03507c9b787d15e309a2bf71b57e8099e5bb8772926b0e9ae66b77fb92dfe9fdd4fbbc52e432a08cc7aa9197f400547c4bb9106132b28695c7091324eafd8e922d69831488eae16db5452ae464271f5ebf6fa3036930f690bb00e31a884c03d9a80a1229b9958d82193210c234b4dc06aa1d24feccd34914d60855cd32e3b7a5681fc82f9d0333603234082f1538beae1686a4d264aa3fac888d4ed02fddb465c75270f79dab7de7990a2e2165158a041a088ba0da4b327e48a8af2512ddfe21b4534f9297c99487639373be6fd5cdb510ebda12d7d0e57a50838bc4d714fda7d4cb5b0ac089461ae196805ab21edfa815bd7f0ea0bb52c5aa1f009eccf96c1dc6964014e33e616632181196b17c549374bd0784c04ddaede20be2c628d7d1b4ee3d99ed7ee2ae21f034b8f51374941df3b9c181f25189b7fd02154fffbd3bbd67e6a5379ae94c45c909f096ad27da443588e1fccd3091a5c7dbe483581a8dcf675e462f30a9d073b73a0b89f164b7266adcf503d6ae0cac932430eb06d0d67a6d19ccfa6c3f29e228d4b76fab91d0215a222a81a8d49f096ade86ad33ab72e0e7a1bb762fd26c09a4e19131a5e25e9448f47b12515e835c02259e7893d564860b7f00396f3bada08a8bef4fe419e9f64b066400ee6284c66170acb5ff3822c019b51cba00aa2be32b986412ef6983907734d43138162770413480332867494d033b3d4d437d5851b0abea67a4a19e8cf783b1220e68800c1a0674ae0a1627c08f4f8b2f2fc7e12877aeb007b030fa5b72711649d69888c4586b6988f083169f3203ac663023a663871431dc51225bad783014b4006ec44223fd346d6fc600c819c90eaa132ea209ad6b950d8db41bb6a21f340fc7335a9e9d0c2ecf3b819c5121c63c7c421ba843c148db4b4b323dd148eb2b28df30881fa43252535934d2078bbc8eaee920db359e6b502373f9c466bc65a4cb0c8d46ba842e206aa3910e458575991bd50f70703c0312baa3912e1d1f8d549e96ff5c78c29978485efa422ecf5f314bf5386209760d2303cbd27b5305ba67cf6ca9e857acc6cf40638847914ec571b4dc327f84c4e01f46e4528d64f1823960f84e466c5d55cc068957ba76c2443916ae25e697cb5b65c0b9dce3c80d21dbc06065054d2f7eacd4a99ac9fe9245c9af420e269b0e8c035320c7549f18ec5b317f047803dbff70b18f8bc9cc1324ce36b82de2af91fca54d0d7ec1d614d244542eb8d711e55bbe5816aa6af9f4be42e4226d552d33e8da12c99e0086160b69bc0dc20ba5b99a8e7ba344ff354309e516dc3c232720912142206742f43eb1e75b627e75331e73bb57e3ea816f792a311aa5e8d8554d90ad4826de721bc0dd7c73450646dcc3b044cfe1211e854ffc5d20aacc4ffe70225524455760a0f6037065be10389f86f30b9d87166080c70c7898d868286150c7c0e6cdce3736c2df62226354fa9f6a480686af2d9013157956c4191fbdfae467c435afe39f4dafcafe70be9d763080ba84497a54acdd5fe4b32344b0b4ce4708584c99a52997bef8b68f12ee7034555530d955a517203ce0b91aad2ce1da1ec712bb4d7297273547635e07e5e2ab7ef2a1b771cf3b3dea770ccfffe25783c45ef63ad564f61e7c1c6b6943c1a1538d41ebef6658e144c64da3d2fefb41385737b0c9c0837daa2da11418d455d29f1214d9ba566861eb2fe2f1dc1321707033e6beb40a87a02cf1e408a1391f7d880bd61edb2a5fc571294f47d0e2c76fd58bfd39e4c7530df0182fbf8fd08967b58fa0fb8af62ccf0ee824374785025745c7ea078793cdbe02db29d391dc777b303ccf4627e3537aaed9af522ffc456a814cef60cfcbbd71081077e279edc6688abec5faea056429fadfc51613df7d6a8f9bd7a978842371f552be1f1b37ecef5516bffef70909187ebb9c71ce5a7750777fccad05dbd2096592dd1885b1a8750b085b5594a8052adf6182f83d63547285d10d2e0d43cf54342c7382fa8c310e722b2b5d361960ef98e0108ccc73a83e3da11ba94a53995f7b453e4fc00e8ae354d84449fac7de861b3048e22237dec99d527fe1f8e803bcf9cbdd0714cd244d27fa733b9c9c0cdb3d979cb71b1c8bf439021945c5632054a4292ec6c1f74465c2df9e7ce4bc4f66837abcc1736a5ae0af5d9e2d4a4e7593a900a10d02c6dff7ec2e25097a0c5cca624a2e67150889e2f837b2a6a4ac0b420faae41c70f0cafd4b991ec23d4e408c0cca6f833ccbc2d3e5b4135d7c968e7d1166f56d6d821608416af3f489d89a0b8792ee000310fe3b007b1f76d8f79a35fa893a37a17aff71d683a9490a11ef35b46d46e5ee12d18756d48f80d2020fcda722df6600c69d16cce73ddcc9fb5d058be44377b5db386f704e72892e310c0b21ee610e114ad2d1bcc43774f7007f58e0ff4fd974b096fafa078e4f975548869a8cf3233a0c2fa09590f89c203d7daf7afd8f68cc74c1472ac441a4819f950f23cb5ad3edd977b363ee819e74b19baee623b73c0a753ff7f60e70a4bc6130d9da33af1c9c370e7a109bb84e97d906f5e91ec33d37de93656362d27b78df150d2434a8f736372cbd76ff5d455fba73fd25ff3e02cfc34f4d339a64500d93fce8ab0df118247133b5eb5834e3a07b440f7ae8d7123890b0461b8c84a1502b4df6d6c6edcb9c6cbac7bb9ea0b8eeaf7120bb5b005f8514718a204ae4d57021f6f34fb85b2c3c3d8332e846dc992d7e024ccd78b2c7202b197b3c3a67b823906eed092724128695769763553af540512345e5fd42929c22b872c0530ca20082553f46819139cee1c7e8cfde432a868d5449623311f9a9dfddb7a5e0c34b07f2a93e5eb42c472b23970a4eea3f9009c062a711d38057b67930c2f7dd69901860767bf477e4ee36e5a29f8583702a737ecb6ded4bf498676cd1119aedde656b9defaae6a827adbf9718958b50d6cdfe2819330a0ac95246c77a2abb1e4f2de03b18b2a1edffcd21b629694f6c04d5410c9caa196351bac8c445ef094efadc71b1f6a1cc926ec152362cab2b336f93c152df3644bf91ee6bf9b4897b13e6941f907bd78b4660be062f4bc0d5d0934ec5f7afe828f3be1e2e1fae1e9acd1a2dd9fb13df3c151d9777d85e4d7b9b6d8e8c6aee64b6454ee31728336c9977d69abdf58920680e60e8ef5b1e6a83a302f87447f3de1549ca7dbf5f4a32191d72ba0425270bb7bf6f17d282b3a172cb4287b954c625118da112319485a050f5cc97c79871098303bf669d6e8903fd98dc464d6374a24de1f8eb479ffcb2a901882577f95fe9a721cf4b48fce8c3667037dd3c2ed43ba138331e13dc30be40a6dd07ea7dc2b78f527f0e866c442575230a4e3152525cd3225a9280912b287502d9c24d0fecb9f0f8ed52f600a5cdaa157061e270445124d4960c0060e2b1c210c7f1ef6294924342b7c9c033dba5d3fadf6560b87e9b7616c2bfde253b7d2e31860d38bcaccc6699979696c47600bd6c1d8387d25e3b9a9a29d15dcf63d1b9a10717a5aba28948d55d353dc2302e3ee97a9315945d07caf75cf13d30b4c4b7881a0b2ba198336408db7eeff1a72ba35452f2229fd3392d264c1e046109a6a723f283fdd0b295067689d026bd26cc986d97e0da6179199b121565e2455a6fdc4b408e76e13494a23ea8b6ca8c438880a25aaeaa490434f660c58dd74be371b083b4e14cf1a029b8c6d5b7a3f8fb1994df0628a8c0567c43d0739da80aec11785634f9aec6d4bf7f7267ad42b74d0833628cc871718424334368cf24c9c980d22531c71c6329539926d1e3d33df6df9f24c1713a059a704ecf34927c4e4282856a38a0fe2a1685247e6f03de067fa84fafc8ecdf5bf62d68e8c49dafc3c2cc531a75db46bbfac79ff77e32795e2cbb45d2419bc2ea9ee37a2b4ef05da56daac9e55273dde8292e3bfde07d48c6fea5f6b947a8efd0ef5a0e0fe263fa229d1032c8b979f1fa9fd8420eddcdb6566302cd707c662bbc3c3efd024320814b97edd27fe60b29046652381948c605c66d4360dc7f915285d1559d27eb491bf6c58d400c4c2451653e522209f8c7597e5c375f32114510a522ff96350c0dd6e0527004432d4ac2da84a032c86a0e8b75ffe6f1348b4deaa238e09a8ff7a2cf2ce82beba3073d428f6361798ce59cdfbb347c55bc1a17361168841b072cb6c1041e27d0ab3de0f891b8ef913e4c59b23144fd1b84d06887f21a646b2d96bb8894a6759791c1b243812abeefa16a114d1f14ad5a5dd3834e3997cfe62d397371f953f4256def55fb9b88c783641868c5ae4fe4b61fec596ff97ad3662df86cb0b85950bb11929d4e1815247a60c37635afbf45f0ade00407f98f41cec52bb1b73ef2fe81fcb23a6541b8ea233abfea3ebb714439d54ca433ec96d32f40e762541cf9a67c750f7a643101aeb6bee2ce9e69a27f540db51fab67f55c5bc2dac4afd505b6ec7ebad2415cf3c3b311f0e15b4be4a9b1df76d14dc00cc4927ff8ba3d00276d8166dcf9a7c01ee0df2db64e818a821fe0205eeef49f056c3ffff051f94189c6bf6c7669402418417af5447d3b237c1eb9504cfad72fea840798d2077b66fee5e74b040515336957858afb47d595ee1ca3c7bdcf8b4bf477ec1dbd687f99a1209f885cc13c087ea133b42197edf66bfd8339e1f4322cf20b9ef9a5ef8938ff1aa71fdac3ba0698ffdbc3246016712e0e1523cb10bf7f1d0806bf35552b9691ddcd4f0710f6a2ca4a003e6409", - "0x3a65787472696e7369635f696e646578": "0x00000000", - "0x3a63": "0x", - "0x26aa394eea5630e07c48ae0c9558cef7a7fd6c28836b9a28522dc924110cf439": "0x01", - "0x26aa394eea5630e07c48ae0c9558cef74e7b9012096b41c4eb3aaf947f6ea429": "0x0000" - }, - "childrenDefault": {} - } - } -} \ No newline at end of file diff --git a/cumulus/parachains/chain-specs/bridge-hub-polkadot.json b/cumulus/parachains/chain-specs/bridge-hub-polkadot.json deleted file mode 100644 index fd56b61115d5..000000000000 --- a/cumulus/parachains/chain-specs/bridge-hub-polkadot.json +++ /dev/null @@ -1,90 +0,0 @@ -{ - "name": "Polkadot BridgeHub", - "id": "bridge-hub-polkadot", - "chainType": "Live", - "bootNodes": [ - "/dns/polkadot-bridge-hub-connect-a-0.polkadot.io/tcp/30334/p2p/12D3KooWAVQMhkXmc5ueSYasdsRWQbKus2YGZ6HDZUB4ViJMCxXy", - "/dns/polkadot-bridge-hub-connect-a-1.polkadot.io/tcp/30334/p2p/12D3KooWG4ypDHLKGCv4BZ6PuaGUwQHKAH6p2D6arR2uQ1eiR1T3", - "/dns/polkadot-bridge-hub-connect-b-0.polkadot.io/tcp/30334/p2p/12D3KooWCwGKxjpJXnx1mwXKvaxGQm769EM3b6Pg5vbU33wbhsNw", - "/dns/polkadot-bridge-hub-connect-b-1.polkadot.io/tcp/30334/p2p/12D3KooWLiSEdhriJUPdZKFtAjZrQncxN2ssEoDKVrt5mGM4Qu4J", - "/dns/polkadot-bridge-hub-connect-a-0.polkadot.io/tcp/443/wss/p2p/12D3KooWAVQMhkXmc5ueSYasdsRWQbKus2YGZ6HDZUB4ViJMCxXy", - "/dns/polkadot-bridge-hub-connect-a-1.polkadot.io/tcp/443/wss/p2p/12D3KooWG4ypDHLKGCv4BZ6PuaGUwQHKAH6p2D6arR2uQ1eiR1T3", - "/dns/polkadot-bridge-hub-connect-b-0.polkadot.io/tcp/443/wss/p2p/12D3KooWCwGKxjpJXnx1mwXKvaxGQm769EM3b6Pg5vbU33wbhsNw", - "/dns/polkadot-bridge-hub-connect-b-1.polkadot.io/tcp/443/wss/p2p/12D3KooWLiSEdhriJUPdZKFtAjZrQncxN2ssEoDKVrt5mGM4Qu4J", - "/dns/polkadot-bridge-hub-boot-ng.dwellir.com/tcp/30339/p2p/12D3KooWPZ38PL3PhRVcUVYDNn7nRcZF8MykmWWLBKeDV2yna1vV", - "/dns/polkadot-bridge-hub-boot-ng.dwellir.com/tcp/443/wss/p2p/12D3KooWPZ38PL3PhRVcUVYDNn7nRcZF8MykmWWLBKeDV2yna1vV", - "/dns/boot-cr.gatotech.network/tcp/33130/p2p/12D3KooWCnFzfEdd7MwUNrrDv66FuS2DM5MGuiaB4y48XS7qNjF6", - "/dns/boot-cr.gatotech.network/tcp/35130/wss/p2p/12D3KooWCnFzfEdd7MwUNrrDv66FuS2DM5MGuiaB4y48XS7qNjF6", - "/dns/bridge-hub-polkadot-bootnode.turboflakes.io/tcp/30610/p2p/12D3KooWNEgaQRQHJHvGDh8Rg4RyLmDCCz3yAf2gAdHZZJAUUD8Q", - "/dns/bridge-hub-polkadot-bootnode.turboflakes.io/tcp/30710/wss/p2p/12D3KooWNEgaQRQHJHvGDh8Rg4RyLmDCCz3yAf2gAdHZZJAUUD8Q", - "/dns/boot.metaspan.io/tcp/16032/p2p/12D3KooWQTfRnrK3FfbrotpSP5RVJbjBHVBSu8VSzhj9qcvjaqnZ", - "/dns/boot.metaspan.io/tcp/16036/wss/p2p/12D3KooWQTfRnrK3FfbrotpSP5RVJbjBHVBSu8VSzhj9qcvjaqnZ", - "/dns/boot-node.helikon.io/tcp/8220/p2p/12D3KooWC38TZJA8ZBXZgAYVrceoJ56jNNLJPdpk3ojeFkTAwZVp", - "/dns/boot-node.helikon.io/tcp/8222/wss/p2p/12D3KooWC38TZJA8ZBXZgAYVrceoJ56jNNLJPdpk3ojeFkTAwZVp" - ], - "telemetryEndpoints": null, - "protocolId": null, - "properties": { - "ss58Format": 0, - "tokenDecimals": 10, - "tokenSymbol": "DOT" - }, - "relay_chain": "polkadot", - "para_id": 1002, - "codeSubstitutes": {}, - "genesis": { - "raw": { - "top": { - "0x0d715f2646c8f85767b5d2764bb2782604a74d81251e398fd8a0a4d55023bb3f": "0xea030000", - "0x0d715f2646c8f85767b5d2764bb278264e7b9012096b41c4eb3aaf947f6ea429": "0x0000", - "0x15464cac3378d46f113cd5b7a4d71c84476f594316a7dfe49c1f352d95abdaf1": "0x00000000", - "0x15464cac3378d46f113cd5b7a4d71c844e7b9012096b41c4eb3aaf947f6ea429": "0x0000", - "0x15464cac3378d46f113cd5b7a4d71c845579297f4dfb9609e7e4c2ebab9ce40a": "0x105ae18c05a78be70e49f4495fdfca8389f99173d7f1b4019e077e24e15abd6e2eccc1177642b30456ecd401c75684a9c1cc1c529879d65cc65c32766fcd6b8a3d28d22cb1ad64189d654e3a0270dfcfac27fdbacb78fd65a11584bcce1f01e656d2a621a4e8851a00566daeb02c845da19f19f208f52ec456d4e77600fc41c314", - "0x15464cac3378d46f113cd5b7a4d71c84579f5a43435b04a98d64da0cefe18505": "0x00a0acb9030000000000000000000000", - "0x26aa394eea5630e07c48ae0c9558cef734abf5cb34d6244378cddbf18e849d96": "0x000000008253c5660a700600", - "0x26aa394eea5630e07c48ae0c9558cef74e7b9012096b41c4eb3aaf947f6ea429": "0x0000", - "0x26aa394eea5630e07c48ae0c9558cef75684a022a34dd8bfa2baaf44f172b710": "0x01", - "0x26aa394eea5630e07c48ae0c9558cef78a42f33323cb5ced3b44dd825fda9fcc": "0x4545454545454545454545454545454545454545454545454545454545454545", - "0x26aa394eea5630e07c48ae0c9558cef7a44704b568d21667356a5a050c118746b4def25cfda6ef3a00000000": "0x4545454545454545454545454545454545454545454545454545454545454545", - "0x26aa394eea5630e07c48ae0c9558cef7a7fd6c28836b9a28522dc924110cf439": "0x01", - "0x26aa394eea5630e07c48ae0c9558cef7b99d880ec681799c0cf30e8886371da95d8c4e0034bc36208a740f371f8bb3b1d2a621a4e8851a00566daeb02c845da19f19f208f52ec456d4e77600fc41c314": "0x0000000000000000010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "0x26aa394eea5630e07c48ae0c9558cef7b99d880ec681799c0cf30e8886371da96bec8fda58278126c5774c03718a23c75ae18c05a78be70e49f4495fdfca8389f99173d7f1b4019e077e24e15abd6e2e": "0x0000000000000000010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "0x26aa394eea5630e07c48ae0c9558cef7b99d880ec681799c0cf30e8886371da9a445791c00e77ce0bb8202f63e548da4ccc1177642b30456ecd401c75684a9c1cc1c529879d65cc65c32766fcd6b8a3d": "0x0000000000000000010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "0x26aa394eea5630e07c48ae0c9558cef7b99d880ec681799c0cf30e8886371da9ed0583dc7b08b990b14d4f0d7acf521928d22cb1ad64189d654e3a0270dfcfac27fdbacb78fd65a11584bcce1f01e656": "0x0000000000000000010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "0x26aa394eea5630e07c48ae0c9558cef7f9cce9c888469bb1a0dceaa129672ef8": "0x99924c6272696467652d6875622d706f6c6b61646f74", - "0x3a63": "0x", - "0x3a636f6465": "0x52bc537646db8e0528b52ffd00585cf7044e24461913521058e928e9f067e98eb48fc7d6e6b3e882522660f48debd62239d1e5d9526d1f6bf05cebc3fb7976636c99b8f5f4e957d7f6d9bcb9d2f74e65c61ce9c74947b8a92c36484efcdf486b84104236d97b6fb9655b14de113b138756e0156b1d995608cbbeca0ce4c222f90417cf5b111c0dc6c67afbf36c65f703b9d8f8d9d146c1db66d8f806d3a9f958d90ce472038d1363e5af8d8560ec85476672d859e79546c193c2c036c35e48350eb6165c9800ce4886c7f460e763775140d688d85dced21f948db17290be4f365abfdcce09e640ec11c505d6056914fc69bee7af9ea76d119115072d09416e10aa71a89b329c3003148f91c203b3cac26350c063784c0d380d22b252692ad80c9be131d819589cc1631e982b55f8c4a16c3e7673bef927df7b4f7642c039b9b811b1e8a7fcbc45abf5ccd2acf396245e9ea733d9c546cd5b8f1b110b5adb9158b5d8a8597996891b91bee46c4e60f4639487fd77f8d8c9ca6fd8efee1fe9bf1a1b052bafe07b3688ef8a85b45194725ca3b6df20daef0cd96f4e6723fdb569cdc6dff0cee9c442acc7c90373200e369e725db8f84badc69d78e04e0f30673b69f59eec3d65277bb230e7d2ab5e6ac35878ca476dadfad304f77e394c8c31f214a8c6e1602af2d28288838def4af6221bb0a784f30b52c63234331c0033b9786172995cb44c2d785859e7117d631ecda3c9e56501b36572d1cce0b8b2812bb7c0c5f3c0ee7eb023db8f5d5f9385bf0f3bb23172e162dcb1830c0ecb819dbf261d2b2b06c60cf77e31301818ec8897308612d8118e2b966158c5074f9071290debf3199796c0b10e5430859d978f52b39c8df764638ce7e91fcdbecb19bbab59f9e4ec8480efc5c7deb9341ba30cb8c8756a5e79faab8ba71b12ebf356bc7cb683d218698c3eb2728d7a51e0de2fe56c4e1a9f81c5195844cdfa7029789133d6e04684528ba99c1dd79d600e7cc699a5f166e4bd2fbb962da57cfdf7295fbfca7323d235561b1a86db88f433f98028fbbdd8d18b8c6de062eff4397ec6c3bfcb6eca78f8d9ed28838b672b9f41ed6d49e06517ad8c975b0e6c63951b92d7482050dbbe1030be2746fe9c8dfcebe44976f7f63d36aae9e56457ae13821f779a97f2b477aecb7a39d99db2e0e42f676d643d5d9d103734348484ca489efac85b7f8fdd0e3238795ae3b31d3bcae0e4d9c65b1b91283f3707acac7cf6b4d83dcb9beced88ac5aa3e0addadb8402f73e3b66943ccbca4156febdb723d1ca0a7923c2d944a068e57b43a28037de78c34af9beac44441badd05bcd9650645c0347edc4cc3ceb576e91545cbf320aec5796c0c6cb252e8b58c87cacf74772e942ca639c95bfeac9ca930f2b6fd5ebc35e4e16d92b8f8258f8de8a587656ec0b0381d7aee0deaf3cba180fb27e928b8d7f1b92878330704025171b3133966158d107b950e21fb151d0483fd68bb2f13c4efcdebb3676ce67b3bb717697daf80c3e668eb0bbfb6363e73be346c9f346443e935d26f9358c246620fd6b23c48b5dd74e0838ebd3186afccebdc330079e9fcd2ee3adeb5dd9beb57eb91d8639f4f7b2f1cc42e4e31fef7030073ed69bc5eeba828b4662a5dc3ce49c4bed3cad9732a79851b764e7ad7a4b166e45a49515c540e0e70db8f78b9a5d95672fcac2f3868436ea7d764a3e1e9ec64ecd7a9f7dcfde4644f69603db597f6c6c7c6f486a88a20c27c82e5ade62c539d2b14eb1b1b151dca8c747b20b4457ce50e95f6a213c8487107eb1104218f907d40008aa78a7fa7d54a76eb4ddff01022b3b50d531b4bd3c6c9ffb54744a471c1f7d600acb4748b4612fcaf66bb07c84c491e58d08c7d31ca7758adff2969fc98e2dec9ecdb806eed90935d9cdbf8d089ce7cd012b3bb3b71d919ff5cacb67bd1de1ac3c6fb151f159d460f76c06b5d9c9bf8d1b756dec7b96f136eb5dd979d85d2a0f6177a39de7e90c769701163ee3cdaad7086b1d76978f2cbcec2e37ca082a519ef460e12f37ea2ab1f057e660e179a0ecd85a9d10f08d37de3863e5617771b0f1d9d360172f3bb6bc25b12c9c9d109695f53e0bab10ef8d37de78c3de95858f1d37ead5d8a8771dcb30ace68b20c8b8260858c639a52e1c1f21c1c5d24ef111125b2c5feb9da7e29f3ac54743672c9f87e5f30fe6c9f806ee9dcf579671a7f8d9777e56e24e71ec549f9fbd2c6adc29b6975a6693113155348a2d8c87efc38d48577e262362b26814db77d871ac6f23421b05cf5b0ebc11e9f3f4f341c6b6fbafbbf2ea3d0764efaf2b1971474363ec8db64fdf2965b8c39d7339fb7e391bdf03023ed80f9ea71f8410c277085ff7a9ed8a83a41fdfefc87bd7db87d5e70f4cc63fee6d3f631bb88c6be0f8f0bc11e1bfad88114343434858aedca84b6d3f6b8d3bf5de296e549fa761171bd5a781bb9ced7e76ea14db7ef634ae537d9b4ec1f74f9d7ab6cf1b11789ee6e9d811e1c30eb1a2f69dda577190bcc7bfc70af42cacbc1179f53efbfea3abcf2dc3b082ef012163cb3f2e67fb19edd4ddb1830ceefd6ab67fe133d8c9c0bd2779f78195368acf8dbad1f2793a7b1db4738c254223654f7b5db41a0ba9f2cc58212c4b048d7def6f2ca4ca1bb24228c012a1d9f73e89855479435608055822a67def9758489537648550807deff376240e0dd9779ece5a6316f27ee1b9517cdaa9fb2c3c3f831d6d14df001c3c9f3723b1517c5869a3f83c9db5f6bab61a0ba9f28e2c11d3bef7371652e50d59211460dffb6f4bc20dd977ad536cfbbc1d7943f69da7799aa7799a3b6e149f7f74f5e12cc3b0ead74cc8b8b377eed4e5bfca8de2f357efe1c8f868288b652be314f7cee76b8715cf0924b081ed4862870d76bc6007d18e26762cb143043bacdc607123e6b4849396d3166ebc9caa3871e106891b2e272f9cdc38bd71323ac5e0e6033730b889e204c5a909a7304e699c8a70dae29483931827259c907033c68d18a72f9cc49c6070cae2668b1b199c64706374bae294849315272d4e29384d71c272da72c2e2f4821397d30a4e46b849c18d143747b8b1c1cd0a4e2d385171bac1e98c9b2b6eacb849e346093748b8c1c10d18a72e6e6e700a7393831b2ca73127346eb2b839baa9e2268c1319375fe8b0818e2e74b040070a7448a1230a1d58745cd121021d56724c21c70f72f820870e723c91438a1c53e430418e15e44022c7951c2cc8a125870872309163891c45394e90a304394290830439887280204712393e90c38a1a266aaea8d992a30539a0c831829a17e4a0a2a607353ca841a3264ccd979a1dd418a1a6083567d444a1464c4d126a745043468d979a316ac4a809a3e6a826073538a8b9410d18355fd4d8a0c68b9a2e3550a82953f3841a27d4a85143a6a609354ca85942cd989a346a945063460d116a865023841a30355ad418d5c4a0864b0d0c6ab0a8c952b3821a2a6a5850a3a566a806099a27d05881860ccd156882400386e68826063423a06982a6c8e405531a2625989260129343095319a621988460fa81a908261f988c603a328561fac204860907262f4c39303161b2625ac274c534025313a6221314a6274c48706e988668b8e0dee0b67033e096e0ace0aee0ca70643822705a3833b82db8257043e0bae068c07dc1d580ebc2bd807301a704970417031a2f252d94b0509a42898dd20f4a65947c50ea418907a5304a312861517a42298b12124a3028e1a05483120d4a5c945e5012532a53b2a25445c905253325284a2d285151ca526241490525294a29284551c2527a22c71a39a49023082432a42890a020c1b86981bc414b2185208330b77091995c90605e0a4820d0947858c834ac28e218ef05d40bec8c6d08db147678710263133365900dddec407b43e3828e14e87081098c8908a623481ee48001e90425296c5694a2b0514152e30941cbc2037331a16dd15e8065416b436641c382a56563827585a665930286054d0bb20d8905ad0b1207528cad0b1b173418685994b850da028d0c342fe8a0622333b398d4d88a484d905728898084055217485c2831417aa3648252094a574a564a232891a0d404c90b252448674a4a90ac281191b2504aa2b404e90ba51090dc206d215d41d242aa82b485d210490ba50f948ab62f6c6f6c5ec0cec82e110b9a313824e830c125462301d7028e0a2e0bc7026e059c0ab8293829b8147051705838147050704f704e7027e04cc09580bbc291801b01d7046765fb624282fc9265617b02cd1539aea8996283426cc2d6846d09252d6ab2b84470b540da407e41aac23341a4822483e2e01282cc813ca24f5836b0bc985f985eb08e60696115c1e26219c19a811503cbc8ca81c585d5e55db9c06c417825b096b0426061a9816273c216856d8d130aa41b3456686e44367264217d604be202c26b43d640d240db81e9035710b42f190ae812b4c804021a02698576665251000294b86c65302d4432da15b42dc4274c16c432a51cc8323228a4971c2ea0e1010d0ba40f220ce211221a918c588337021a324848481d9c8440f3c635841a159c88207bb08560e3c13c7319c134c68d9653960b09a6135c689c68d044f207a72e27179c707085b988707a6203739a028d12d7112e334e5ee40e6eb6dcf4401b02978593179712e4183749387d7115e13ae34ae30ac1e9cc9584e7c48d0ba6164c37c8518546849b2f37594e4edc8cd994a0e9818e2c330b345fa891e22aba51415b795b785a78675e17bae871a197786ebc2f70629e173a0a09048c079819580fa20d4c6ec42f3427b414684fbc275e14528bc4426e79287858de092817a635280d62112212a2111e1498179818980da80d30286052c0ca6c576c469b969a12d47ce02de18dc9d6c8a4f086906dc95e9069c9b0c8aec88cb22c1e99a7c66bc273c263c22bf39ef08840c30553156a96a0d9028d174c44d20b19c6a606c5723aa2516c44263126166417346ed074c1e404cd0c1e094a6be8009921865217f207d9b3fc3229ae863d4340b980132a507aa23871923d08c4941e274eb09213a4e9841f9c04818129477e7e825800d00f3d3f3f412ca000538d28401998d2f343867b7a30e02408202740513220a5a7889cd9041ee2470a14a01e209cf4f460600093091c0406a64871c2812a3d1b10c289142a16684a8f06380045c9e712b8e78729414c7102c589142ab6e7872941400068ca0682f8e107db638e0122881f7a80f031d3e02138d0e3e364882138d083644a10528618a267876e2a818b9042c556e9f1a912440492743309dc03040508293f508870d2b3819e0d2c6102444f063200854901a6181ec2e7879e283f208187009ad253a527ca14299f479822050338130dfe41ca1053a4540132a2c709077ea85081e2a44a0f103f5236a0f2f921881f158f198635e0040a101420a000f53cc0348dd001293f50a40049992205c72c02fbfc10c4cf059cf4006de0871e237a68e6195c25880568d30c1ea2470a90942a414401da00949a49049e12841420285536008413a0207e867022858a855265031607bf9e9f0b40019ab2010c3801faa1a78a1420a64871e2e4e6249d6099d98198352caf323e1a1ab26f056fa6048204c2a3f2ac88923812070747a2de91ee86dd1d734ce6397bf69c314743eed9b3bb27430821cfc90c19ce397b3237cf08992169428e1d61dcde9bf23dfade63d28c0d69e4394b724e4a699c909b21ec1821a531b69cb05b36b4625b1884d3a20d79ee808f61f784b1fba2b129166928256dd122417891ba9b27730e3c4f7342ca11ce3927ed86d1489c3c35d80c59ca09639cb39b526eee860c3b36e59e936384b048c3192343d81d3936ec8eddccb479ce48294f9e10ca375f7c12c639218c33468a350c1677f7cd6c86cc1d69dc48346234d4b22c0869f784118b3c39ca388940d8dd9372c38e7332604e1f944208217d4f2e40657df8e091a539a79c73000a480094a528e99c1b9c1300b22d1863c4228c11f2cc30e6f81ed3664a4971bb8131d28e50765318692643d8734ec88d31c72e6103d010d00db9fbcd3609a071389d5a46192964861036ecee9963486dd6b85b6be68ea6863ce764c834326390a1359b2d0819c2ab27cfc973b62c45481b8370cec9b1e54629c5688c0c29e58ecc32766bdd0280010880061ff39c9342eed72c0446ee788020da0ebc98999bad668e23737ccd29c81a37b786a3e164d81036842fc61f74ce3921a5944ee6f998bb5fbfe6d8b1bb6733b3d6ddcddcec7ac78e7edd3b1af67b94369c0df975c3d8527664c92c21378d11c39829a594421ae3b6c56d8bb131ac1b424a69a411420a61a4146b18e86c0899b70dc36ee6ec6e8d764b08219f206dcab01b2b71cbeeee0c72cf39fbcdf9bab5eefe0ddd0d4bb31bf28c5b376f36c026f160e6e6594384104a4a298d108b588c3132c7d90d9b69f76c8d069e0c1b3673bfd7ddaf23ece66686b09967f79cccccb079ca66d8b02184f0c1ee9611d22863ebd0a143070d0dec66669e936173ed1c0d9b1b360e1c9ac675942384102bcda0c3cd1d238410461863bf6e085f776cd8b0bbdbea2827ecc9eff50e2b76688134dc1ca81284067a34306500a2a74a0f1055827092ba81861e2955800830801b00ecf0f901ca057e7e8220800176f400408f9b1a0be80728434c815205c80990140d682008944dc5314de9a14205cae319340000eee9a982012755820082f243103f3f507af00c1a9002346503552a8701a00df4e889e204688a942a549cfc3084140df0b021d5c388208a000240ea061a6a82d03083131a7a7ca0fc5cc04906a6488932049428ef21a2e7c789115034e00307cf9081207e9c64608a940c6420889f1bd339237a809822c5c9142950a2fc80010c04516bf8f991e2a303648801c4c03400051104aa003c03949e2a363d3e4e808ce89912830d504f0606709e6108a021a418d1430002300d4648c1404f152a3aa62a507a7e7e70d29301285582001ac209103f52a2fce004e867035030d003448e0554050ad01003a001861c9ea107084a959e293d19a832440032a601889e2186e8a942450341fce0a44a0f1141fcd053c509942180f8a1c7c90c3ea91b68a0f243cf103b57941f80a05cc0499421a44c9182011411537a200f9ec1c99420a40c51a58708271cc080942a3d443839c00c37dc4003103d4e8200a2c2812a3f380132a2070622a6f440026c62f4ea09f14a4848086e4f566ff54a4f566fb512128a500ad1d51412e228b45acd95d06a459fac1e26242424b45a594f56b09f08bd9590905014824f564f484868159fac9ed04a28e395503f5909bdd57b22f48456504868d5d71316c256123e117a4242fd64f584de8a3e6121a17ec242efc9eaaddeca7ac24242ab557c22c4abf964f578259f303f59bdd52a3ee1d56a059ff06ad54f566ff59ef0ea3d69403cc263e6a78121a0708d05111398c802460dae64f9284b18b109eeb27c94a54b190eb37c9425065e705844127096e5a32c2e804c803e60620b32381e968f9818021926d8e823703a92c882c331451177dac20a67c30378020e87e523112401be400456a0e24bb47c94a58dc844185844512d1f3521848e82cec9e2fa072a864edd9f1f9636eab51738cef291095860efe1131c8de5231334615b0bdc66f9c80443f6a833ffb1c3f2d1125c284191bdd7812678325a6c79769dd4ac14430759acb4328c24d4b0f23c7a878f86868642a092ff81823bac8a955e58706ca9eabdc71acb475874b19be5232c60c0f512322e6dc171184970b126cb61108d41edc95ecdf28d218865f6f22c43940d3c9d8ae75b61b877eefdc4a353f787bd56fdf9614f8d7a368dba42828882a3c90213c022b98512cd9d6c4e58ba44aec17bd65fa558b240863bef53dbb9276b1da1600c6b3d5a5159b7390b616bd5fbf3a35e6ab918706c2fa742411998c356727027aa1e4f0986600e5b6a6d2c3cbad2848527cb75346a709de5a326ac5869f9e84a91fdf1acbe9cd0ec45e90c0d0d81600817a8e1022f90f8428b211d1d1964424460238c218821638422605154c0c5901a4c3063884c14f69e8444fb3e3434f40115147a600519bcc0a88c2b584145ed3b077756336802044e30610844c86204aaf75bdede4b41c6bdf386868686865457c7b2ea06e12f42da06810232446950a1093ed0a2e2739db22c1fc5d33b51c5e72519c31dd8e7736fc8b308e8c212c0248068688baabbf8852a6bad3b1c267d785883104074a4eacac19cf7952ae3ee7eef41c817e9ae2ccb6004318654ddb14aa8dffb0074c2b22c24f1f446e2695d59483b093f571602b59595862743afe47b6874bf779e6e8d3ee3adc8b3b4e2e4c096de085b5a7784c1517b9f154b0fbfb256f7acf58e9790a7ad95951d10b4b1cf0357f2bd30598c314b8c53c48825462762bc12637d567a3ec6a6b45efaebea900ef9d8491d770e56b58ef99a66b17ae32fdd4106476b76598f96f269736f48e8c4e8bbfa58168d334609392b4a79b2325add8d9a8d562c122fa768d62756fa5672deba489d0ecc81b326d1813b605801c3eaa46559e99475cbb2ac58e75714e39f15596fb41c63dc215d07ee90eaa3accf60c0c1df07d523d0ced859898f973c50c6ac4946989f5dbae8d285349dca739ca9ded7459757c664e2a28b2ea62eba70d1459757a60bd2bc3a96ded745d661bf3ab69cd5c1d59465c42fd04b1f51302c17b4be2eaf8bbddbadd3dba7f5be2e347ff566379d8fd1d0775a6f104bdf69ead5b1b474ca5ddce97558af1affde4d3f9a35c57a75ac75d2b1bb3dec3d5a53f5c9aa299b5afd6dacdef8ba78434c26ab54efaafabc575f174f86d9c5522a356c3e4aa99435764230f60c6a345dcd67477a967d76d969ba9a5bdd65d19ca7b38c7e7674d23927bd655996c55a8aaea2394fc3cd083de970237255da31ed9cf9acbb9cd5cdaea63b46ea68aeec57171b957136a336c39e65e73852edd4a8f7c31d1e9df36c1a454fbb74d1a58b52d370991ddbf74aefcdf728e9a49a8454efca924ebb49e7a49fa593ba52bd2bfb2813a18fce47a65393cef71e139dda4c9fef19363b29cfc436a0995ee3d959cb58c976d647a651f23b7690c1917e1f9909d49654a7e4be6134bfd94be7e00ec7edd47cdbea8db6ebd5ec56ef8fc67d3b4dc79cb355c870a7a6c26e07191c567f348b69955fea7690c16515085aec7ab45ec2aacf55b133e9fc12e9a57a9f1569b7ea433a76ebbd21c1aceda46dcef9b4f346243b4fd3cfcb6ecadb8bb292d2396dec94dde4adc8fc75da4db1b13ef3d733a861dd75cbfae14ecd690e9f6595eb68be75d6b7f346440b779e8e9b0e3537d146cdd774349dd639f33c70eb2c9a8e8339d7a7a9e3cea139ef3c9dd10e3bf6d95d1bab59ec6f2b721da3dd3d118eb32e621dbd3a8d47a3dee18e4de7bc93b14ce870637027b186bde523a22c36e3ac35de6a6ade4d4d4dcd79fa6d446a4cd7794370dc74ee94e9382e4fc31b82a326c151efcae2b8a9a3f42613a5a6d3c38d08bd398eeea6de95ad3199fe3622a68c3b5553efb3a63395a7e1d0894ed14b53476bbafb6ccd697832581a33a517876b83a5f5ca781d394e3544e4e10e8f8e1c27d9cd7bb103b07c148229ccd81bcb472130c36650935b6215304b4ff1acac58ecd47943d8ca0a9d68d4d4f17779a3cd71f98b5dcaadc8eb711ebf146747bda6d79c3b85e397fb761eb8d3a33e8139f03c2a4edd5119e6f4ef894f7ce6ebcc3b7f227faaef7a4f5cb3ab5e1cacac941e47c78dba382e7f4a43af41aa9de636f59eae4e3b7d4db7830cce5481a4ada1a9d786addb4106c755a0b635bf3aa8111ffa686baa8fa9d6fcbae9578e0ad417ab9bb45af531bde6350f877653f5a197166e49a4a59586278326697832486965a5f34684749e7e7f9b11ebef5af72c5f5836b76b46b6cf9d273526edafb360767fd8f927702776cebc466dece4c15d64fbd44aa42e6e9dd6a877ade33a1bb873ea9cf7acde130adebe203b2fbb6ad1f06490979fdd5dcd46c53aa4a36ba030b513646cc6e39dbacecd1d1cbdfd755b0629a514763e16462984936218774d49b07adb5a37d5db163e323a0defb356d786b7def447a748e7ebdddd661aced9fdcad83b1ff7fbc840321d23fc9cb0faf485d1ce38fbf47513eac01dce8e3dc0eaee02c197badf4dcf03291932f6226d464cefead3a7df4c5ad7d068a667b186a66fc23622971336831ddb6ed8d1c2ae9bcaaeb9eeba4d8783edd6cdada5cd63e5e08e4dfdf6d7a548bad1d24aadead3df4eb3fe1161d7fba375bdd1065a5a7dfaf3d76cba6373bad5d7a7dd0582b65fbca07dbf40d06ecfe626372d1e0710b4f45924d3dddddd361d734ef311d7356148ef59b13c3ab55debdc73ce29df9d4f6b734a39b5ea13d962fbe435673d50db08e7a4cf9e3679c68b9eac0de5d9597f9d75263dcb62a51ddffd17df0f0bed7cb40bd9c859778cf48f5686b1bb8f7ed26ba53763e45eaab7ad76aede7e56ec24d54b2d8c1abdf68844abefe1683a70e7a563313ec6f957f486c4cf18adcccbeb56b76d46488fd527beaf912eeca558ca26e9d89cb5546f8c275d60d88cca69b58e2d8d51eb9eeded48663b76fc64b02ebb9875d7796016b5c7c41bc2637efeaaf759c9f66d117270c754b773a762e546698f31f389a7b77e356bbdedf1d16e15c7fa75f9c31d1dad9e5e6acfae53ad62b774348d3eab8f1efb755dcf8a9db1634b3b39add5b18d31466bcdfa987832c8486aee0a0f422f1974e20d5d9bcbe3feb08fc6a0d329eb5abfae0fbb7e765dd7f59e753e257a5d5986f377517a789e7e37307b0962b4742c834e3cc9eeb3a52bdfab4ff6d2e5eff52c6ad1864ee1e0ec2ae8c1b3ce83597c2e08a1ce1b026f412c0ffec6a2bfa5bf572f74c2ce377d15eea015a86df67e4b15a82d3c9571d90b0ef69df9da30df05bbd7ddae4f4ed7741ccb717aeed48e7758efb3d9657771ea554bb73e4fbae93510c2cb779d775d17e7f3173a61fbfaf63a1a9e0c960dcd197212bef780bf3895c7b5cd08bccfc379b625d12cfc93a755ac5eaef6a8d7061e10a7d26059c7362216f462b3ac54ead8665956ba74ecfbdc8cc0f7bbf91dddf69bce3a0f84af19ee1ce6c49feaa5a6eba897ab798e7ab8c353fa85c3a6de534dbd279a6abae52a295e34c39e5d192d3dc32a7dd61a0d6fc87d36744ade061cace4bc582ec3ca7a81e4cbae2cfbdb8e942a0d4f86ebf25977813adaabe2d05b9fe7813b4f604efce9c4711c4fc31b727d4a694b27fdda60adefc84ad97d4ad8e59644b3d99f944e69e9972b5d27d56b839dbf27bb75170d6f48761dab3458d009fbaeebba687843966158ed783a66e0c56a96e66084c08abdc1f2911266d88c4b5e707ca444151665f9280937ec91125cd8ccbe6b566c161b9f5d6ec7089b4e712f9dff9ce8d476fec3d229eccc3cae6efb76ab9bf046c09d1e8239f034cfa029cbaeeeeeabf3a19c755f97d55912edef3cad31f186f4ad2b49d7ea6d4b4faab7eda559b19694b25a96f6af9455caae3ed7e9e5ef8fc619d4783302ed9515fb9bab20a167dd23ac7d57c362ef3cd6f9f485acec2eb4d0c2672b6bfd75127bc72a374a6a57ec056ade8858550868efb330c96ddbd9c4baedbb65d5ab59b1f3d47aec14e9d6ad6b59d67b57b4df579422fd3e2b769e3724f28d75f7593be08e1130073e805abf2eaf77bdd15a10be87e00e2cb2394d0f59f8807759ef917779f9b7257997d6b5a23744deaacd036d773bc8e080daca0bd457b362b16fdd7d763bb719a1b9ac3ef2fd124d779f7d1884f035b78112870dc9a2f96641cbc201b15887b76c6a2a94a7d1c0b0d9d5b195f2ba3a79259156f693e16a45d6fadc8cbc6f9f9d3c0f2475a56b1df7acc3fee6b7eeda3ae6464dd8c51b017760d1e333a74e4dd12969a46d291e16c11d8805e6c4bf7aa97d37758f76d7b76d74fbd56cd69ac6c41b729f7d43165ece673b76ec8003b2ecf50b64617f3b76ec80fbd1ec55b15fcfde7b8075ac5bdb3aa7bfd5bbfd6d47dee5b7ee46fb2a0e3df679fb8a8d8758e28558ac4f20cbbe5f20cb6e27fdbe228bdd1fcd6ed77ea3c54e3723ef3e5b766b4ba2d977c65e6ab75fb8c5c6731d376a7ba98b8ddaea05b2ac7552bdbc3d7ed3aac6c41bf2ea1d6265ad67c78e7d6e4430cd8abd3a96d3d2cb012b9ff1eb265d0f586975f2bc1d9156172d3d9259ab6a4c3c196695318b651856344f0751c6bfddddbd80f7deb3d7e1f0d9e2147996df6ffb2cc7efaf08ac9c5dc15704dc813bf3aad931e714412d6495ec9e8ab724f409f50af66322c26725c88cbaf0ddf780858fcffac0ca15d52d4008f9fc572f3f42c897870c218410c646f1dbb8cd4a383e18087f65d9f206801e3c7076dc9c74e4c061534363e24aa44dcbb08b5a5346d88f81f07913e2bd61b5c0f334a57c4f3bb032e7bcf3edeb84deaabbc964cca91861a37848fff2cbb8a35901d796ffce1b92677db8d227037ff59e91c7d164e4086b348a6de418638c31cef8e980d58d36561fae4cf757362bf11f0be98e19c8ed2381ef276b91eed8aee22382ebe55ebdf35766f25dbe65a58d6a0b09ae7f350baf75ea55e694fc7da7342be0a27d48a0f581afa38d028af69d9f125ae0c36d818dd84528e59c734e58b12f9a1547180ff88b07ff5e8c11d688650a5d06e3d20133f28a8dcfe4135c0fcb0ce4462ef24adcc2c6472ef20a0d22177b65160058592f30399059e216f6ca2c5776f004105cb118171d88e9d284372ceb9485cccb5f2c845a322052424745b90679a2eb4a5c8561560a61dde41a644ba1b6b44a0622a7954fcaab63be414acdca33a2c6cd865848fd6832a08c9a9a9db463ce99d408faa3695c9b699ef2d7343f2039521e403a611226d5b819502c3413a2fcbb64473fbbfbc44ecbcaa4263729ad5fd7964dab571e7bc6591b92785aef9138b1f27d1e885df4a23ee845adf7ad4a84b4b3fac85aa115ba3949a9654929a1203baa71c55cc39292ce6bce296fb194d845ffe4d24e1fd39a550766510418502bb913977e5156927e75ac9440d38b9aa34af5a27448f5ead8cb05d9ea0dc25dab979a389a6357bdb74ae04e4da5399d4cf5725cbd94d2eb97b3f4ccd7efc9523eb2f23abd2aedeeed6530161e6896e6b4b10ac5d5d6328d2baa10058ca512d7a954bcf17143023f0fb723f1b3de7e7c26a5f48915d6b88336681ca2daab57a8c8be4b1470f761b9ef8c8d46da320389e76d49ab18e65c2e6363ed9f77c6c6f73dc547813bd6637d59de992f8c1459f97bb265eceda22c4ba0caaa6d460cf77ebb88cdd8db4554e3de9978458ca277260e0d65f20c07696b509e610115a2788c31c6498d1025fc02185f322bd2bfb7119987276b71d6a2d63ab3552f90b4f3b1ce2ddc9c9c718cf135ab7cc20333a9c9edc8edacb151f2cdd6e3b46a04923ee69cefcf4a84b4b151b23e7b3dd88694724a292512a40ca6946f763fb0a372b634c2a41ab78594524e29e5648294116ee18863143b1f67f773b2932d7a7a414f942483aa12ed4571a427029c81c519a72803ebf0590bc59083f20c77b4cb53b8935dd6fba36375b451587096759ed6ba738e7cd631e75c94953f9da48e95546cfc7b3ccb279fd29a96557f7490e0c0e20c2caca496373945c74628d42bda300a52ca6959cf2ccbb2a49c52ca9e3840bd6e31aeb082e498ca471632a195d288931b92b673ce958df3bd118933d61b64633c3c95560e6c65058248a635a18d95eb2a7036f1fdf778d8878a36b663926825915927c742a47598036dae38dcd18139f0f0f3daec4e8dd269143c0438ed57c7c2b39535329068a307acb711b1a255d972dbacdf934f6641a719aad50bb9d8be0c4dbd703ed9b56326285c9d0d8d82dc34d67b7f7e6c76eb3e5aaf75ec3cfd63c35b11edf45857b55bddb5d17a2362f1b4c5966a5eac20c632162c7b41e3cc75ca7db1f4d6d4783b922de976380f1d93675697430e8d823c5797c30cb88b0145baf4a6439fc97bd3e17d87f7a603ab88963cc9b397617f36e09ebd1808766e54569574414a9ee43a74413a7c49fc01383e82628b65cb585aa39dd28e69f5ae2c8fd71b8968951b45fa5675743a08a625021d5bac665db2d6b0ee59212e3b86a54b1f35ead7e51ad97d1c8a2f36bb0f2f5e10636f2c7bf182190b4591cdbee0f8e8893319d568873d1b7a1add925c563bd6d16b9d10ef0d225992af544b3a1c264b2e814ba0062df94a9575e96181f800772670095ce7e145ae31034e9a91651a45abe02af02bcb5ce7f1ec3e7c1cbe025dc625760a47fbca6a3f5bed1d778c02b75129b89b71b15ce08e0f879765e04ed053f95071b4b3ca876b3e74180b68c9f2185830810540b7830ccec7b5ff19b61179f5f19acd012bebe3bc3da07b769e7ef72cdd9064f751719064f7711fd5a7ab19d191584fb03c4e493a1c2649eec37da84149be5201c094e1f8d0322e16da340ac7472dd2d647f66c0cdc2182579c08c3474e8479f6264c56668d1d0e7334343484840a3ef3f205ee3c15bc0f2deb8ca021864ba7ae2c63b9e894c9c2b72c0377322cb2ccd643934be0bc35e1e113f8db9a34e012f8db9a20f9046a9605e6c04ba0cbb63cf8de6349ba3ed80c0bf6f70577c49237f91149cec36fd6e5facdb0589815e1fc6d45da66456964457688a7b18e7e49c7aa24384d76d8e1ac6ad2e13461c2e4acca2ede32220cab59972adc8f46c1675d7eb3210bcf03b34bcb86e033224ceb2d7ba6694bb227e95895bdd64ed4a9acc2674319185b8783fd59ec11e870b02acba8e41a9d037f7d81cb8e6ad6a55116131c8f7a5deb2203c12a372ad334abd3b4243df4831e702635888727f90edd92f3d6e43d08025f5283967c88023f62c95f926e88023f8287f7e5b6845514b895bd6d499f87efd0bd33e9be4488219ec55ef2516fb43c7834ca87897dd4ab591ea78de271de7c9c3be5a3f2388f8a9dc1ea12a99265a270c5f638ceb32e7027c912a94a5295c01cc896a405d75d5848662f52ddaa4ea36092ac06e1e92457cd616e49303b37260f384e93d6e17d56cd8d09048ed3e43dc993d42394fc9d553c7049c72a1e3a56f5e870ba4b01d05dce52a00b7a2a075ca75136340a5e49c72a1d3a56bd2d8746c15be73aabde6739a05fc74c8f5b127aeb724b42cfddeaa874a139bc45f39b75e97220c3431549c828a96207314db425623a75a7e8d435234c936c0c0f58962409d3a9ab4587319dba5a941c4ba7ae1626a77503b365e9d4d5b2c3adba85e942e4f019180c387c76b400d5e1b3eef0d90f9ff9387c0680c367653a7507f02287cfd6e8d415c08d98e9d43dc0b7326d74ea06f9b64676c61e3e7383674801440928c2ac5c57a813d6964eddd477b2e8d4b5e13770a9810b1aba20000c1c0eaf1d0d39bce645c8e1b52fdbe1b532b4c36b603433ca74eaea7c86c36b6b74ea1ae0321c5e3303e4f05a1b311c5e3bd3a95b7378cd8d4e5d9bc36f439dba380ebf1175eae638fc56d4a9bbe33d0ebf59e9d4bd398fc36f573a754fc739fce644a7ae8e6fe9d425c00b70f82d8b4e5dd4730ebf71e9d4fdf1001c7ee3a253b71e86a0a8eae1f046ba22ddd685a6639bf14653efcad2dc47d73939edb00a3ceb360a1ca7ebd1156149e0efcec31f84071f44786040bd9487edf532e03e7808729c5a04c7c30070360b643c1c004edea41219d1bbfd00025840bd3e544d007001704d0e7022231ff50ac06240bdaa1f80872094870108e03e78f0e1a3deee00e0c107004e64a4aa570b0f3f4093203c7c004d0e10e4444602a8d7c717d0d50b80ab7e0b34d968139c0c7bd784feb508ad49772d4d8e6381adc9330b0c40002732c2eaed4e84d6fb33e0577725a1e1e27ca71641936c2732b24978eabd4e9360b44712fb2d090d3cdb311fae7ab1d324b72a702dd9f90d4b7abc861a149000cbbae135d422b8252732a2f5eedcaa4558d452c06ba845505b6f0d344902764e93505a6f762b09b54e64a4807ab524790296d490e434d422b81a68a05780f504fcf221bba1de9df32ce94197dcb02dc1eacd7e2dc1ae1319edd4ab65c96ff0a1c792e3f8b073c3898c6c56ef759e6b9da6a41219dd223786cf508ba04a7a9cc8080138d4ab6dd90c4a62a8d7c87b288901871edf26a0d5bb3d53f248014d874a6474117065a0330ca937bb2624c619ea9de1406438915156af10abc881d422a8917a81502543843c5392655149164f6454a45e2d4a3e4407204a1e830e4062389191907ab30f8917726d0208380e3acc4075c04187ad5e9c6b3a6cda898c1050af161d8ec30466d0e1324c6006194e64d4a3deed08a8573b0ee711811d60a845505aa4003c7076e8819343016a11dc0e478af4a84558b6de1ec7d9e1a4ae08cb6a91000f2695c8e81ab9390f402d821620003c72904805c8a9b7000f402d82639283532f0e2b87e7d801861fa945d01d72e038ce0e3838a41d70482732caa15e2d3b3c004c60d8e139980400861319e1a817e73848cf711eb508cb6a89808d116ab53029006552a4e6364c7ad46b731eb508cdd624888c7af0389191917ab53079910814a05e2d455731794e2d82b34910191520e7444635f5f6788d4dbd3c6e731e4884010b50591e05240001380c117280eec78374f53b5dea86ce86a7eae135743f4e43573f43a72343678056f57020dd8fc7d0d517a023404e870a82aa1e2a91d100ea36a651f04a5c652480ba9169147c00ba1f554b040e43572350b7323007beeb76fcddcd7d74a703a0d3f11edd8ef3e86e8ed39d4eea747ceb765ceb6e9e75a7c74ec7b16e47dd8efaa66e5efa54b72f3aea5646a3e09b744bce4397e44cba25dfa14b721dba2575030373e0957449ea1606b339ba8906123d68c3e2e82c1f141d4106d6a6835120f1850d5bd34d118461460dcbdb113eb23475ebd228787953c7d32878ae639b43a913221e8b5867a46df66a75f72f36859a65d15fcbd25f1ed6b2ce03a9104658cbde1515c2b2592784dc885ce70da8ed911e1a1a1ab292beb175e9d476b479d9be74ea3afc5646a7b0c36f603a951d7e33a353dae1b7309dda0ebf89e914e9f0db18b8c32ab895b14396edcdba7499178c82a75d7603cec260143cd66564300a3eeb321e300a5eebb21f300a7eeb3221300a9ed46567300a7621b1d5d8621ddb8baf35b8db2c70c15e7926862bcb58f8b911b12aca09eea232335dd605e6c03fa0cb8e600ebc03baec0bcc8147d26561600e7c03b231161e4b82bb5917ec035cecb0107024cb6364018cbdd9170bb32e16ee18631906a11c2b23cd802d19ffa0b08341fc0d19c31de61e0f9391239cace03898f38e43a77090549cf808bb5e947d279a028eb3d23fde13b853a3faaf728dea532b383ee58ec29c7e8603bfb2b05eb691af2870b77d440331f69ea680bb94c21d7eff0807f218866118c4ce9d10f0afe3672f8b4c1fa5671e52453b10b5daf91a8a85f490f8bf21b12aa92ce4551d18887c8e26b82b813ba4cbf7007756aaa8928ff2d3a9edf254808c6021cfca1fe114d5b1a153d7e583e0d0292c955d9e019d8297cf81855897bf4c658c92cf66f72ca96332aaed7143832ec14a86827d4b3847fe7d6e449edc886cb637250c44fe720237c6be478ef145d25db119f6b1ddba48ea58d59b116a99814cd801354a3e76511a259f75541a258f753f8d92bf3a201a254fbb278d520273d80d2b39c028792318086906b35e06631fa98b377435e592f17bef0c0ec2282584f00cee6a963e195a4e6d0b955ed983f04208a5e434cda651dcdd7bdbcc82835ca799c1c1c88581c09a5d508344608d316e469ecda294b3bb3118698b62206c517a75971ae98c25694e4b8b2be04e9d82efb662527d08ffccb0fccbc3be30969f43a3b80c0829508c94fbc20cc63ec15d1ca846a9764506c29645350821ec086127ab2604b4b9b46b6ec1c17a350ccb324ddbb48df42c4aaf1f98f6ace0eec932675a0c969fe9d87e907457963210b6ae79c908af7e18ce910c1e5a582f076c5766207c9d13998c7f5cfade29c73a3a36cbaba42db8cb47f785b9dda5cbc01dd2e3db0cdce16ef32400cccb928572271e16b2d9f8ee0277a8c09c784ad94c77e92e6ce685813b6f0bcc89e7e8e985b12f0bcc890d0577bb4b986682bb7c6479870ef1b090f7131a9c1078d03d4b87e0cec7d8fbc2d8782a70e7a5c139f14fa054e0cc7408b0d847592f679f65ad3d2bb8ec0d8167ccf2a9bc21b076972a2c84d6b60103898fcfde1022a8a5bf97653e6521f47cb815b9d4e0e066845a250ce49dd4b58a56690607b3a8bd34f83dc1c647051b9f166c7c6fd8d821a04330279eb61998135fea333bdd05e6c497aed58bcaeabde957bd5c171a8e339d4edc5faa17652f9b59d22a52ed3230279ec48583ef5f063394a58b8d7f5928e5b87bbaa715154f87283764b77a98f36816cb3008cdd5d5a52eb2a73dfb9ee11c998f9f8fa7973130c3f2510cbcd802583e8a01164b352db6685164b3a859ddb319dca4b66307195c671604d86612026c277d337d6421539bdadb8cccc7d9b1bb93a74ffeb03847daf689c8c05dd9b692ccb7361f6777240056763fec08b2189cb126cb4731206333cea2c69b919642e86ffce4f82c1f9e815cfcd8698de21f5676fcd9618f5d00ac855d1da4cf6227636520ef712bd24f221f273f76f3567725921f76fe383d3f17703e8fb341c63fee1cb2f09992274318f37cf09a8b0ec223e4087a0146c2e825ca24c8d98420413af56c5a4038fdd660f93358fe63c7bd215d4d2c03ac2ca4460c591942a64636cb0ce407dce53119d52865d9cd4314dc413d818710c2595b9575e12e8f3923dde8d465305662b12d0faf04eeccc3f70077187292a9356584fd86ba4d5cb8d1022f2d1833c60bc6581e96c7d8e206e462675b1c25da4ac5e7d13f501c3ce1c43f7bd0767a1d58759adfbe525d07e6dcced373d7815514e6cc733588d6cb957e75a48a55a4cfd7e1c42b8139b38a0eaccaa106f1c09c796da57a06c6ceade230d14eafd5a1edda69359aa2c2e98a3301faec4c2eae06197565429fd5a0a7a2978f88c88a23ff2cce9178f9a864ab384aace330d16e5dbbf5a7824b58a53d8b5df6981f2499d0e0fa6868c8b61a60b418b25af7b0c09cf98aaae02e9f89e7e952f704e6cc93ba792a7007fbbc117047fbfc05580811dc9337a4ab16eef33ff00e911228d5f6a2938afb7c4309283a49c1ce33e3501444b5fd3215ec7c86754fa575ef0a7c458d9ad7e94df61dab122222eda413652f9deb70e2b9af545bb76d8fdfb81a54aaefe841a4fac5ce6b5fa9b2acd33a2e38f1db57aa2e38b1e22cd19e3dc6ca24fb56b3bc2b30673e688b9dd71e163bb557047326f62ac740e24d0c24c29c78abcaff98d50772b10c8310b67a7d29915511e2bd61f940f496c074fdd71141ad10d61b5f18b2fd04a704eec8a358c80e8bed5c9f748c951065e52f7fb1f2bd61bb463138ed38b0e24038ebe532f0a41af404e634776db3acc3e193c0e0f0495fa9c258c9d99960cfcecf6a90115726d949354807e6c8077d91190ae6c877236cab9c1848dfc4408e3d3bdcb4ac639803735ed6e130d19ebd3ed6e130c928cc79c7381d9eaa9bdde5238e73f8277a0e65995ac9a7dcb55575600ecbea53a2ab6e6994f18f2baf582ae3f919c31d232670673bdf5b3e0aee64d8af8ee5be62e97d5d1e372409f1deb0d6d631cc391f597aad6398937538f32b15d6e1ccaa84a8cbc01cfa151c9a4d6451b1cae89dbea68863d566c6a80836f8e2cad0900afb610ebd1193fec5e43a5683b8aeb7cb30a43bc4e058a563d435a87f55a3abe57a93c7060d7a30a43a42e8fa55856213b088427584501d8262a4e0c490aadf1587c9f5fef53ed602eeeafa0ccca1ef24b8db652ca5d5475e896864d6b3dbade2f31bd24327cb47593e77fdf291e5ebc01d7a3e3f08dcc1cecf68f7545877d14659c76ac0b1c55142d47f37d96771e483b463a7a73528fbf5950a6e4494101161d7ea9125ba9e551e9863fdeab04e07473efb4a150447569c25d8af33c17e5dfeaa4146b232b99ed57330c77a9075ac32cc59a956aaec6958c7aaab63156f4494509863b1eaad80e31888bc89814898233f7f584272f51a3e818b7556f133ab0be234b4201a52050919f5ad43fb0ea38de531b6e0040bebd5b12f8646e934eabd51ef3550a3dea9342a051c978131e8c09d383434349445f51ea4539c7dc78185b09d31c6eed832d75feec439ef10b33c860f4e60bbad8eb590023586546d6fa3bc212db98c8cd2a967f9880a3016b3ef0fcbaba277b42c409de2a31380619feabea2232a8e60efbb22b350f1057bdf144f75f98c177b1f11112362ca6c3ab4ea30e79da7b12ddc9f1502bef186cdb060e64895719b6c1a85d3671d14ad61214ed7226de559074b88b1d1beffe8141f2d41c6e6b0ef4a7ce89d8bcbd0d010122a3eb2b2867d65ecfbc501aaeeed3d51bc72f90b513c32e2a3268cec65334e6f481b1143a633824698ce081a621ac5364aa72ea5d2a99bc3884eddd34fa74af63dc71b02df867df6b21bf61d76171bdced3d0ecb47231063bb3234193982157b6fdb1a1153a6516c799a0638b0ef5aa7aec7257b0183b12d7fe9e520eb704ebf65bdd4f6ab97b37d754eb691f8b08f38487cd8f75bb66cefab38476ee16fe1af8eedc7ee8deaf70b7fd8a1e07fbc0ed529586fb428e6d46cc21243b8c24e54b56530100966c2164fd4a08d1fc0e0095e6c626c6164a5055becc9f2d112597061644322d550ccd31d3f63ec67ef4d6b77a4fadc6814c67520e06e8a91e36913c755eeb193f5d279ee9dc3305895340a036a141627376a56ec46340a7bd2280c8846615d5b6914d6fd178685f4b13f319dba6a5b79f1f4534e39e594f049f8d7b58b1808768b0adcf53eadb451f17123d259a9ab1265772976d855796e58ec567781b6ee95d15d1e63b1bf35b0c7fac0340a7b56df1720705f2cf62e82d8e4fb279d8a167b50a7b0637f449dc29ec5d8627f5c3a458ff56909a2b0d87d54588cdbb018968519ec716131302cf68e2ce6650d8b31198b9d79a78b96b0d82f29b8ab63b1d83db65dd445454590d2572fc7550cc3ce3fb0ead3471c186bac310533f4323dde61a63d0616372c7c3ce9b092a8c0cd67afcf8ebbb022cf629f5de98cd5595f195463302aa39b3a10984e03af127b7f188ce94c63fa9c26d361675553c7d70343365aa69b2c49e5a4949e018da25614564a0005fbb624d663a5cfa15194d2f3f4d482d36e4981a3194fc3ee8979b19b341fb722d0cebf2d2c248b4e61f589c91e1b9cf69f4e9675db4a1ec2dc5b9168677d611808bd45050efb3cfd5569a3b0ecb2abf2b8b7a5cab3a5eebe322c3d093edbba3745a3e8b5eeea58fab70677bbc8d2c3fab2348a3eab0f4ba3e867191cfd0b0369b4743a152dbd033af54ecfa4537dfa1e58c8b3f441f3d79720ebe5a070b90a941a1dd14764a915fbae388183a536581a06e650fa4b0a8e622f0ca4b469c7be7275690919ffb89dc5c247e6172377fdb8ebd7c99650c2f31661fd508ee5035c0ec3f2dfd01b53e6004b98018d1ccb4357bc78585e18cc037e02b9b18c795470ce982d2c7c57f8020bffaa559973eef3c2c23734edab2f0b0381f782eb0a835848642f29b8ce32b564cc396cc48c974fc27a0d33dc95bdcc37f00d3728febd67bc21e16cd74bc5f639092a9f44ac72d29a047312cc39978abdfcbe557b3b62b29579067e6f469e4a227941f24b9c5449c4cfba04552521c461b678210933c89cf105235512b21af56365eeca4272d52d99500606616c012c1f61e183ee6ecc62a759699465a966a5e3814258165ec8eaa2d464e527833cec8a1e91a7c50e32f1648097cf6ec4081cc208db6884ad07bfc86eb236a3c9583e1cd36684314346392d1a2985fd284f8b5ef4c2322d6a1aeca73196691b299248b01f8935deb824753412890bcb2f71a9c2f2394ee3eef616cb37751534918606f6a3e92c8de29f69a3897aa88d336d98f9e2c50c305ebe78397a55bc2ccf8977a5dbb07c68069291649ed8d0ecc5f2211f591b82e8348affba218c51ce3827ec375f4318a394d38a9605fb5951ce6959945e58c430d80fb3e875615896695bdc36d86fd35ea63ded6d8f54e222c7c17edcf64a25ed71cf64d21e4d4daca981fd6aba1b2de3c89143631da7783ac17ea7d7dd58b319799dcd66e4e1d88ce0c8b1197936ea883a74c07e3a2809e7c8f5ea0db25d715012ce116adf87b00da651fc67802964dc990d3e5a84745446f0560702eb948a9d3e4440aba503d6d9caa0956a655b8955adcf2ed64e76f788212be379d3815516bcd58160357494e54a11d10790185225b15231cca93f6c7d47c1657e90c5473e81e5ca9181f433de207725323816630a57220b9126ed5926838b096c7f1963fb199bb1cf320b19e22ec7b190aecab3559ebd1c95fe00771f18db7f603a75a919da98315e2052a60251681acbcd7fd23b1cc7fd54200a44cae8b090d65808c3c3fad7bfceeb57c4059505b928761905e6f44eef8cb1fd1b833502561497b9aeebbae845e9c3b2e515bda12229ab116f8a2c41cd822cebb477e559b98e7036451c67c446a4081470ac05dbd7fbef4a112c847934ea74fac128fa1ce0ce2b82397d48ff7ab0f20f09b4d65f11dcea3d7159bdf487a53e58c98ca2e7edc8ad25eb2baac2fd7845870217ed614bbc291f172e534af939e79473059c11f4fd288f76af8bfde914ad8f0bbb619b8b46b50a28ed226fb3074e8bd2296e28a250028a84a3f80437f9bd37274b79ee846007f4ce09871d14e461400e9d9a7f59b2ec0481397dca71a72041187575ec4f731b51b250e97e1a2515c0698d6a3acb3c2efdacef2a3ec1ddc785c8d3c209ee72192eb60fd4a9fbb488f2d329f93e95a7050b61dbe71a55867bbf5c907e5850a8ff740a62db04cf7a161819ed143377e228efc4c3ca95ac0f8cddddddddfdee6e276cb15929f2ca0b19b4800b1a67ae70852c5438f66181843dc13798a1a1a12754ef271e19111060ef0f2682bd315c1b7028d9cb5e387bb90c18c4e0b097c9f01a16ce70d90d7878becf8930f055e1022b163ec2531730c1c27327174cc1c2bf8a230b8faac20b165ec70a30163e08cf15592c7c0e5a58782539b0f03d3c6182858f7285162c3c952f2cbc116b58f83754a4c5cc952d5eb04861e15f964ef1d10baeb0c5366f445edc02772edea079dc0c7410860a1ce4a00a5880c28e2a4ea753a3deb9a77a3f5d29c3888c33b4f0c28425acd4e0e64c1653ef4415b57dca0ccdc8f8c7b3828befbd283007a76f7da5b26a50f6f920ec6499764aae0ea78f7dc1e97926d73c06afd35b0127ab49c52a5a29cc812756ddd35908c740e0f95c947e828bf53e2cf61d1e361c63ce09e19373f28f78d91142f8be519ef405f7ce0f6599cb46c03d08215b249c2396857f16d6db030541469fd5dc8c3246da29eea0bd1042389b76aad27b9a57a0d4b23e507614e6f039d8944b9c31669a45e914ac29681bc9a2740ad61448258bd22958532871b344e24c92b499341a2df6a6459a1a1b1c16a523b03ae69c2b3fb50d097c7cb62129e2b2f1db76845a1f1c5ab6119145645b564ccb6263b2312d8b8dc9c6b42c36261b734e4b3e46c9b3072cfc8bd3b29ae01c79eed42bc2c23f296f90f5b3be94e4c05f9ef410a90e0ac51324f2ec387a2da7b906f77e4f734e4b5ab153cca8773e43cb0f6adca9d6e4e7cfcc8e0acce9289b158e73a811d77684da2cc3aecab57b055bbaf11e674f756c8a290e368a2bb8f00528a690031cdce0940530a478d24624dad82906c30222d8fe468b5462568046161518ad21850e2c98a0042184708755f15a67af66fb08b64f592003dbe730b69f6d449ab3104208218410428875ff12c203420e7b7958a8821958188685a72a68c3c2158861e1e9396e8585145f8099811096a08412e438b34566218410d232b8d94416d57baf0747695c1952bd2b81ef3d74eabda121d5454dc1866d326cdfda8834354307280b3f2d154c81022b8385976386868694e8eeee264df0421562a08535d22843d5386c378dedeeee8e1b9136c35ecda608f6f2f062ef0f31b0d8c008169e96c0c27351a861e14f29f8c2c2bf04161e497186859614dcfbfd7b1b16eac0420674aa0f6110b873c8504cf14498343e60460a2a0bafd329781b20847f95aa1ee420d800d81ec351c1c5ce6f4f70cf0bde29f5b0f0f30f0bdc217dfe65813bdbe7df96c705ee649f7f5d58083df6fb84207f1f0f76e2ef0bc3cea3e04ea9464a2f5729976d9d3ca9c39e59ddab3a8d52691dabb05356b14eab56c7e3c5ce93baf9ad43597a7a288b753a25ce99a79d0e0632ff3a94959dd6113d95125445a4c455444a702a12cf30afbd1ae669df30ff8ae0ce09d5a8b9a1c1c9c7cf47813bafd6cbd9323df8d0af88856476becf2ee39cf9adabe19c79adc3e19cf9d7c160ad8e001676559e05a2b60a10673106324f9f0cf35947a4c455cc33dc01d87918f806eb3174cefc9b31346a5ad6bbd5fde8340ad5a8280c649ea7e70ab887e5fe4c2ed8ad2700fbb46e7d3e0a0b613b2d98032feb38572dd2f6a27f459d8a573a75e3a577180843938f9e306327cacedf57859de767852f6aa13a351f43a76a1e00690f38f84b392eb1b1a3ece8cdd75c77b2c982bb25dbe7670c6177e260ff089e337211d6538985f40c32f9d83d1870a7394f9b8efdeab0eb3aca5ecfaecb84bd642a5dddb5b125ec3c7d75a59b30cc4b4976a58eeb6cacc09d1a25339b4b5e88e335e4afeea846c95b4c70a4637fd229edf240644eb461afd33c7b9ac9542f10b4a567a5ee32e24ae74695aa664de7699aee466baab786e63cfdb624d3061c5b8cb3366fedd9bcb723d6af6a734b0a22d93117bc53d8f51892a0bd2ace75f1b49601d1ae8e526b323d768a85b035d5fb63634de74cdde90ace24e54dd7230bd97ebd3722d775d34b9dcf75d3b3ab8ba5674f337534a58a83a474ec464a951b65536f4dfdb1b134f55e27e2d9d2b963a6aed471a57a6a94cca8f6b6ecd9c5ef41d25699815cbfcf5e35ebeeca2a61d2a827c1611fe0987b94084470c3c260790c2258e96744c4d0912429703e3f9aacd707fefd551feba45f2a81acf5f7f9ec91eaa53f5a91eb59562fab7b4f067e32546106722f2bcf0ce4d299b1755da70277b9ccd5d146cdcb2ebbb6974838a55aa46dc9f673f8d1a91bdbe7813bacea2b61d2f7a1775e91997e0c606c5f07877e49231d896fc8bbfc7c43e6e5e9f64bada6594d7bec14764d3b37eaca82d34eb593b4709f1dcef679b6afc3d96a91f7c8f30d8b1d21cd59df2852dd7aab6f14532ab8f8362424eedbb10e87f4674918a9722a9bcee95f5fe050f58d6aab09ee3d8bdb03de85806fbc61d3a8bed69d183e48e23035b80ceb2e0622ffbaf864909fdd7c324879ad08bdecaec32c6a57c7f651818334be6e9e37396d94f13d58c499d9dac8f8c7955c3ad596e18e16eb5adbf40e55f17974124b279d68147c555ee182bb32cb150b2fb354d13bf430764e3f7638efd2bef3b37e3530b1775ac55b914ce21ca1369eda5885786fd8eb63a3d63b962ceac242a211ec8d5bd8775a85bd9a2dd22376ce7be4c2427a442e0ce45d72890dadc862fb1c5ff72c93c1860b2c93c1860aeca51647feb2d35ecd32dbc7bfd73559beb1fced25c13b1ce7c460fb8f8885bcebb787112ca487ed1c58ef63bd2815d83ef37d4dd8be0d8dea0d1c6147576047416cc7f8f72ebdc0bd9f6943a31a07db3a3938a0513d34ca87465131b8dbcb671e8de531b430050bbb27f43c1dc401ee0d55231ad56fe24c94ee47eef87d8fd2a87ef63a2a3ee0e4ab9246f57dde7f1ad53934aa4fa553542e9546f5a358ee47813b4fd5a732df10230ca41fbbb7594fdc958d87376207419deabfa14e5d36c3f62592f864788f753e19ded1135d2c0d968f9e20b23d34aa9f74ead5278d7a43d8c67ae533abbb64c059bf1cc6880f8dea5bdd05b2f75dc257e49dcaae871fcd5af549a3fa581177390c92772596c9bc3f38645093f3489ecffb7d46de1bf25c718ec0d31b81a73f385859ef3b116f65795afe3da2ee5969547f76ef4aa3fab27b4e34aaeb1b6a545f4c9ffe80bb3ab6fb4658085b1db84375c0f53956f8b2685c603373ce869452319c2605774f43c53c2a6652fa863c2a46ca77022fd79818f888cb097e602f7fb9720233f6b2193a38502ddce532dbecd80cb501d71707ceac8de50761801216f2388c65de8263ae34153b55000b4da0858540e0f8dd2b88b45190399ee37d38522a1fe9af758a045a3a23968cffe29f8544c7186384dd1fa8e2307677331739a6fa10aee46b2d1977ea72b4cc29f8c746bdee73a39eedacdf3342c34bf9956dabbb672df9193724483c60e5bbbb325a1f79f8eedab6ed7a441ede67a391b6abf91e1332d212608411c618638c379eaf4e8cf1952865c8273eacb7f0cf071ec27377e9b3f02fe37e0c495a7098b4aadfaaae4147a818e6700bbd8e3fd04117319d621d74e962e127999e663ac53aa8411616ce36ac2b4bac5fc789a7c7b0d36338b136b17eddfa757eb68ac7deb31a14b432e24b0f51340e934389cb7c29c361a2e9d8636512543a63b10e275e1d4eac384bae636ff29ed523b2bfd7f723ee3cc32ad38368d8838c986c37d5a013cc814cb46f3508a50539d1128aa22cbc4eef1c9b60cfea11464c4acf7e84e9d89b64dfbed5234acfceaa1b6402da379c68ea706265ee58473acd57aa7e5d6a8a6c6ad0db82a5cb96a28785862375ff3e2c38b6e4f8e92b958eb38a045f5344f37706e6c03fc8884976d3838cb07fb19049e93435e83131bd54839ea932cc7935a806bd2f2f0cf6050b93bd77c6c293baabc391afc35962bd8f236b13eb7dfa779c26f4eff4639090451b59c83234a4229de6464cb85fbfae93cee43ae9da62214d0dea2298037fd5de82e5faeda2abb16c814565cec0a2327de6d4e9e8668e0e0756a6cf646755f60b8b6cde0f320a326252f3eb41f0450a50d19c54838c98906e53836c4e62c29d54836c6a736182baa62af15434fdc57456997ebb8ba9e2c8af54f34ce9ac2a551c59951031cc89f5523bc7c01cf8956a9ae93016e23479aaeb4f75dd74ee464c482fbd54838c7096946e3a93d24d35c828966265523a5783201698035faab00b9c636099ae0cabb05f8805ab4718b1eac22d47641587c9b76315a789f6ed5a0d32c251825d075661b5c93c03851454a0822f43432a1854d42aed42d937ecc22e167e87178e55300cfc622104430434000210c80c0da958a5d52384b23a74fdfa85612c3ccd0e3804101d59f681bdb08c85c7bac94505dc8503c6c27396c1d81b8b2c8c45f04c47f3856315a67af6c23316dea259c5b6b942c63fee8e31162ad1e1ccc38046c1633f96763e3f3636fb8f8dcdae9d27a517a814ea152a84891e05195368686604614002f3144030381c140b47e41151d4851f14800f97b2565c210bb428c85118428818638c21040040000660301b34003f680d704bfa50027063e8cff5db507277009cc9c05f7560ae491eda01d5b800002e2dbf7ba603d6cd23521ea4624119cf0ea8a57b2789e61d9500c181efb96acabab0d501e79ea0a303d6149dc8ee8eaaa953ae447ee14e0c41f6697726d546cda7cb5c21739cbee00cf93eab013bcb5b29467ff1a3dd5f41c8da3dff35f6071990d2b49af561bc2c21610e2b70d2675800682c56e0706f886b5ac0a384847156ab35c6a89e6c40d53826831fa2b5b99d00d63cf186546f4e773da70a595a19a2431c032f04d8ddab0d0888214a573b574ea2dd6358b5c343c850a6cbe896fb42e82058d241b6d75b9c311ea06a7d23d75f45c840f97b666cb4ed7f8564301e903133c679d52053ad4eca121f51e1454b15f5fd6914d967af6035cd83d9ec000287b165cc35e4ef804f5e0ca19bff552a6e792420d8bf4a3d728101c72247882bee00a6382f084b811972cc71bcd3cc900ebe13b9be4eeca2e8683e9c0f573e917cd0a2511ef5c9aa99ea9c910a59786709d685270e34fcbe56e297af7f7e3dc2f534b4decacc3ff4e982038c7b8681693349f314be39939a3180330409ffaeae5be80941eef2dbdcca6ff4dcb8690363f5e5b62f52f249fa5fa1209df95f86729051f4816b014c0f8bb479c52b0a05f8ad8fa93e28322206b94cb647df0cc9231652b6106bd7b181324dd0d4051f0733b04197f02179ab2499dd0c148194fc7b878da7544c1bebbfb530034545e5fdee8a98e46ce2b7b03147c419862fb52473edea95024e1ebd10722f4a20a85da4a41992e40b9df2f20271182751bc97f413e4b5067a6c869181fc2888f5a89490a9e9fa6363f8994e8c254b459169a344ed8385f52bf4e7ffe7c8b14e44fcaa20f32c348463033267208264627c016e9ccd24711db5d62fa0d9f2d50658d29c535bc57893eae92e60b08bfb08e9ef440f10e6f934817d83076fb3411cc4dda6f4cf2ec17ab89b3ce5a113a7e1a5ea7a3a5ab09f6580be055cb5ebc7d0b0648fc69d13696054e89cd95b5eb48337492b6015eb4782acb5fd789e334e80ca48d362b9d03128074241bb79a25588384e927deb53938881a655cfb75c27e60dfd855ca6c259fc8afa394252f555fd02d6074a4ab48b2596a2712805dfc8770ae80b5d7f1ec5d5de568f8f4d3e52efa02a92ec44bc6582bef36ba8c805abe75d10614d0745780250f5d45cacee554fe9c60453099a4d8602d3822e05931eb0aa715f37921c380a26c3215bd1e39fefa99e15a3efa78b48e9c56a6f6ec716c4250ef4dc26727360e0ea5f7e5624af42ef50ee38bed6730258bcae7f4777946b751df2768ff2ddbdd502c36868c7639af668f6bd0dd2d91a68cdbd921b90662f42ea16181b22ce4060648e9ec2a16949ffb528622a1b694fbc2064ac9db72abf847559dd44b521db857e82d141c40bca0751b16adb7eb952f282a8a477504cbf0fc4d10018f843ce21c2889ba009ea79cae30bba2fe4dce1adb5ccc00d10edeedf20a7b5235358f6a1c1aa967bd4588311a4bc643fa5cc204799ec9c88a0a844529711717e85bd6eaa1a5c646d8aeb3f042c55f5a8838db162c1f7ea18741744a7e5f82eb6187e105442f2d89454e08408834d9231581fc987d542468904e8656c7e227a6fca31588d717ddcc622cdcac18a98f0571a1ac7feffefa42be9afe3137845c1826827bc8cf5426a55ab67999af134e156786759880d88279dcd05bd1cf546a339eb653650a973daad21b283ef1698249dd9f275da39f1ea0bf264c7b112bff1524c2dae999d389ab998d5d30323add8e794b794526e56965319ba422ea131cf3c2926be78ccc56ac4dc110a5d5efe85dccfe75903c45b032c506201737a40f6980c9f9388ee0fb264626e6db85b97af784f335ce74484e4b5a026e463cb6a6b48b8105e4c79ecb8791d959156836cf00f1b12c0816d37092be98a874a68222dbb4e2ab544b4e9ab42950bbc71585a4e56427061fdce9ba4011986d9cd8db53acd420317289994aeff06d5f4a9f63d89b46197ca8d9b094d286e5832297f118d428171d2efc7bda1dcf866d635018d78072c13c31d23c2bd5c8d5a1f6e20049fe9d39274a59204d0436e3e7304408993fa7bd73e29d2128daf570c61d67c487f89ce62ec39950f292f95add8d2852dab2071839301d2f81227843da7f17f0b171b9304e09f1bd68c8ee14b9c73434bed9a6bfd254870bd467cb65e88ba845d90e57e77fd4eff19330d3247fd9241ebef21c0bb4e557084eeeef3149e35672fc4a34b32f12dddce15febee50c988ded143d3a8c5968eb429e2ce8ec128d211c09c578ff9c6175f98b801f6864cb1978934b92948b29ecd0ae71753722cdcee437f8a01439c46a6e27a10150fa8b6807c7da623eac3beef70f1d2639b764c3b3203894f4b67760171fe4c23158f27bec5c55f26d4b09891bcb402204a7b9bbd94225440900289034196d935e481c6d38c3d54a7c4508db9d2e4d1d90b52db3e686c65010ab9f731cc608811112aa782fc34cb88926bd733a0e512d7c8d0dc3115e134732ad09368367723e675c0d83b5c85790e5ee2996a6453e2d8bdd8d6baa8fe76a4eb3c0e9d4335597485f1ac1d78188fb6ba4c3cfc9f672b0d10d2186039920281b767387ddd257b3127791d128c590be20e89dfbef2a5012c58b0aebd61f495cc0d826e40b7b7840d99ad7703412d45e04e9e524ee0e9d9f248d0e46ccb6b49aa6ff53b92f087f5ca10c805c8116290777891fb8a35ee7d7be988d854de8158beb67dae16adbb94c47b5d3826936b5e467cab23cb08365b322b2d48674d2f34e1c89bb4fed568f4cfd6bd76246d7d692eb1fb98a0be5a032d12c08ef2d9bd31fe46b4479e7583592483a744d86fa4d7c5e30d55639834992778e8abc8e29d0ae26cd0e748025bad7e5958a633e58b65516ccb94095c6a8f49e476e0e30350dd29ad46e1ff4d36b07c25f90494a2f5f58c24c51095f3a2adf3bba7266af0c563d21c00345b9d4de8965dd5c073664bbf2b15ea65720454cf1f3f9b98cb3352b7b09ec0a37ee0ad13234dd4c4e92c48c0524b12e44564466d421f7b810ad29592d243262be8af59b169811ba1853830c2d134668c44517867014cafe3e0327b2e4619ec1ff6e65753c498453b693183661a97dc205c6f957a834abbde7219d1ae758ca9f483a2281902b7590e495a18dee8824a4f6b0336fac90fcc254bffa11e33a1d90d85472e350dc82cb0f07b6b51c1f92f3a6a0917e51761a6997c8003d822e07237e7a286cbe309e9097453daf4850f81cb03234878c1bfaf33f4a191ae12020f1e87577531d59879080dfb4279969eff7445b17138c32050b1d6f7b8c6b97d9738ff8bad7b3269d463cf054b1848d60e908443354d40072a37b13bcbaec6dba94dc1d333b6ac5c4522a85454e0b11b0011089f2053917eeb68a84b1817bf63e91b41de1b6110c13e68105a2983117064606307ecc4dceba134088eea89a603c01a20050786e523d55b23413d2572931c1d77804996c8d538b552bddb3d66c5229f2196343f807d6bafa34f93254140cc90c65c8cf81d7ec701f4c15998cc47ecdeb898789f05d40495b7a4d85f6332e65aece98e8f9d3640c5dcced3d3a9b0d3faa2ac5b5e163b5bfcd23459f1be932d79b4faf26f013801ed4d045d9857b25f8963be1c6f3c526c80a5362264238a0abd8b0d1a3f8d1286afa430faf0e6c6b55d1e10435595f3e30e7344a4da76d04e678e6e89166ea940bc0035d3ef0590168e5ebf426f455e10adc7cf03412a9a1ee96a7308e4fcdc8017d1aafcc9060573b37ec1122b73f9ca3437d163f492abd432a88696c0a3b0a2304b40031717c231d6c6f308387744958ecdd05816ca2e68643375f7222622559cc45fb865fafda11d70d8b159de15d6e9b19f9430da32e43a5b1b5ad263342035d4567de77d81f2cb5da845e1f7ab52ed03c4313cb5bd7e555807eb93c304833eeb45f8c043fa0282460184fa15d398dea08eb745f1ae8b56b4d9403094676bb34c34a6a306ccf2dd93a5978719618eb9ac0e59cc28b99161145d6c7f111cd2446cccf99f12bbbddb913313573fc9c73a131643254442dff171cf3b397de566f08667d7193b029d45b4d70acf1345dfd8a82d095c6b9f2b3e19d682686aebf6032a30a54bb58571c86b1851071c52663e5ded1325e8df5b47838a05beaedea35116b26f4a642f59fe551888311a373439ac14ee16cdf2adae83af485bc14c1d7d0b5a7aa17d37cd5d25b000d4ed9d9002a386d58298d930c0fb2fab7eedc0cee8b6748fcbd18bbce6668556defec9784131dd4e7943bb500a55a793440f0f5569d47056fca3bb6c5a13d19ed7c6fb2256ff9ce16bfe78e6c4413e4488545717b330b3d9b9b6891c581a7a347cf6e21b5551af78b1d5a9324effc32e5507a3edc9ee95b3df13de191568ca8f6e8a89f92619c3dc6f81dcd9278317fe19e906635d1e4b1ec12de7c25450d5834445b86b677ac6bd76410beac2e32a72ba3e27111afc047f4ed5c60d6e639be65385deb2caf7ba8e91c0872375e394dcad45d0daca19d5a7d8ca1e9bf346b066bd0a912a90cd54ce4e8e1207c39a460b28655c957480e889be4676b3072444252ee9c377ffa5109eae9ba00b566e82cbc0fad090350b59aa61c346f0f7ce6102051975af835b8696ed3e719a19bbedf2e105f2334593f2d106ed455c9000da6c58062a63485a0ccadb1588142743730407737e9be6e9be76391f3cb309e68687071908c27f0e6810346f57753dba90301adafd81a4f78d75ef7d51ad9fdd1e99038e6c900097c3174e6355477e5549757a237746954fa6aa970970e0e3910d1a030f4cc78f584f656ec58f629542fc380be5ce335dd65e9b259c1574201b9afc95318d734b0aa4641c80ca17c62e5f673146f47bbc80223cd5c733d4a35654beaae3127ddbfe9634ab9e61ebbee50b1c26d74e720d0e34a6a8d6a16adf3fbd0251827377a3b9e4f46d3884c2bb4a7e91cb59b48bc8032b9430abdb9c01e158b27b2c009d7b9cdfdb3f5b3a5c289b1d52121bd84d0dd81ba1ccbb288249455125b58ab5e98ec8aa162526d35eeb1e6fbebb4244a46a41d294af321eced0e482179f474dd1f9d48ed767f8bd4dfe51f3ff737bd7e927248f059fc39fe489a18e4bf221e05477f11d005abd9a2be8ce4af410fb1316127807e2f8ca8e5f228aec1b176684265f5ca39784725455d79178c3f414fbffc0be9b50bfe1ac6c9d2467c52548e03a2da23df020267a3bb1915797c4fa3b3bb6f05c69df5b1a2aba3924c29a1ee3e3498a95272a2adaea659fcf22b9718834b4b45306b45144b5b83395d5e5584004db4a03ce774057b467e23ab15f2371d7cd3118fb5b309884f8f0b5b6f97878b9cd6e57e598246ddf158a1be7a33582f5046534ac3b7c25cb0c6339c48e1d3c9b8bdb6b0dd45447844a727c13a0347d2853aaef95774c8b76b48022401734f82901321b105e5c17d25eacbbb8318a1947a8a198f268d88977a7a9e981197bf562d6f9904f7256a1e84ecbb4c922386603aac07633c40c4ca471a42234b87b254e24354f21b0266261a62c9035bc0aaeb850af58a6c1dcc75004f9bb688538a6dc1990773f6cc3970b01e103ac191aaefd058c900b791caa6692df7cd09e51293c62424506c9d7414f0e9fcfc1f6c9ba82c054c7932f4169a1a051b55020fed3e443b4a8a846f9caef5f30c6540d2e274a042f631d071bd7526b4686b45505913e5e628a5025f94dcd0c173ba3513f50387fdb7c6887803ed1db61890efa92080af4b9a06461fb0f089afc01a85219e37f22a29a705bb6bf9ecbff049b73a5971d392f98610e3c6cd04ae679d8f3ed865dc343572eba637b06f90ee1ce7be0969fba1284de86354481e68d34205392ec0de2f3f9455338c41f4a2e1edd5d8dd5366df2eaf2901849ce8807a262b261d7890830f75667f569111fc252eb519ffd907636d3266d98e1b6ce34b18302064a166e25361a667b4badfc9e5b6cdc5ed883e3d7753f24788b0d932b0b862ac51b0cdd254b8241ca4f1d1b07007fe4ffdfdb4dc00c7d797c0ff5532e832879639f177a2041cc306caeb6b288dc539c5bf65e90a5ab1e5f95a47fe5d16875ab06e03fb0bd9dfd7a4e790c3bbb0b435660ad380c4320c729449bcc77acf260024d059cd904fb71bfe549e55d0d26afe5b6c9da203a55f3ad3bdd18c9b270c6050ae1a2f3798ce16158a15c58de9b22681a0795b4f32fc158008c45ad20a3f28e36a09c4cdeed415fb112b146dd9a59fc1aa9d5038042abfdb4a2bc542862f4cb88f6b24039bf1c05021c2ef560a07ca97cc846d4812d7d75e1370f01e992748e2990f3dd75e1b9ba5f5f47404c475c740649d35a3dd9037721399dc360ce042d9f0e944c0b3b308bd7d9a975aa14575a82b019e424219047fd0986ce75bd9fd2896e66eeb08718d9802e01930cae93b9198800f8ac5909ace65be6d8818081d26eeacfd531f8159b3c7a193f39985cf0d18a8b37374dca10e64ea61219e60df10d9e9b6a3c4b1bfa580487279cbb2df8103e7b33a699ac4e7340f41c2830ce410aa33a39364335d430f148d1a2dcd285688434b040803ca86ee10e4f47894cef36e59f934d5454cf1d6596211b8ef5c76a9a357d7b1e1e6f6b4f22b875443bdcf511f7d73d1d73e307f3ef1f1baf94b4e09742e91796797d448844f545d1916a5199599521ec6ed251a2a275559476ac52e512bcac66ef30a08964b60b74f338028a0438420ac6f5dabdcb726505f0bb0d8956f43e415c660b3a5b98feecdc00ba26958756dd4a548cd71f90a2b733547606bd613557204f94d5d14e9a984eeaf076e87ae8d2275d0dc45cdfa22d78e544bbecc94beb7d1f86fd54767b8cfc395ef186e75cd1c0d8d70ef718d3c5c6ffd2b43cdcf77e0b6883dbc62b3acdcae79238f35def9a4d96f5a7e4fc5b34814d1ab26071e8b13ea086266347a669ba7580dc5aae067c7a91a2ff3c61bd3e5f3b9c74ed3e35d0b9883086bb7174cc70db67d4cc5ec45f89675d65d778c8008f99fa48b47ef828a1535c19f4423827c617b09fa5d4d80e5a14129edd286a70bd0d802903ef333875941e3665986eeacf49dd5e78862b166afbe5ffd94fe75b9f06cbe0e4bad01d2d53d801d423d8cdf7993cb420674820ab1233385016d08656eb75c0dac95e200b900879f8adff6fb4005c4ad46b36051f06e9d9842a95bed6f0916a95095a5ebada1812018b421dfa680c19f123584bddf25fa5fcbed5a6bfd4e6c54f3c0566fd408d3f27c2d6788039c2156f5b1f4ee74b658cf2d2a558034173cebdfe5aba599670cc74449cab6485d06ebcd63a8b610fe19da3a8cd9d6f1c883068688094e6bb28f71b76e91797a31fde3ebfa44bc21b5ca873c1a293722b3cfc908422a980092ca0a0feb5d8d833d99bf4c33637f1298a4404227dac306a2c4c805a81a087bad4971c01e5bd6bb0ef91a65066a68036fc1b0490a347265889c989c9e8b4b104701a1f2ac54768c1e36398c2bc39ca7fa1d9959cbab5aa57b86e1bc38e8d4a8929c342d6cf230fba4c096dff2c5b268a9f301d9dab93010e79c54c2e00eabf8a6125bcb1d8715ccf2a0b720185bd42161c6d4292813ed30e590fd7819206016285059df073adc5712cbfdd0722ec5716959695846590ffdce589e6fe8998e3a2c8eb85cabb5a91d96fe219167476fccc107caf6461148da957456717a43c1dc7d118563ed27420aa6bb1f0f6996c34d2297f64d05efdb7e70bbbfeb368460301f705dac3297d559ddc255deee3921916fdae8aa756d5b4b3d9b84ae5b2d3213834e283db4a949c18c3dee091ad998c7ee578b53546fbb2e8ce362480dc092e4c00c8f314669bc10e4bfbd222ab58be84f5ec6004fd24219e093ae33c6b77114c53e0373d121a15e83ae600551afa9db56436b2edb455336e3ac1f5e69363580afb4baab66a75087f3e8cc592718491f6884f811c53130da0e2685d36fa59b1f6dee3402a22630d47a131cd5ce999f30f4e9f0cbc03e2ebd460554d496841164b393b1165b32895c6ce3d7bb2c3abe6902080eef9eb4ff02d73aa49524b4b14493389ad0539721ba0cd56f1ad45bd1952e2725c5617b0662b9a4e8b368cce7453dd55e81f98bde6a6c5dba7b8b5ec4fe2ebdcb34e0a65d59e974315f55d40faf27f45ed12d61ff54f93c8d6a88521d229908bf0260e1e992fb899ed42360d52abfc7b0875fd9aacd548f2bfb72425253e3b65029f822c2a6c0d1d38ed779a6c91b00e923c99ec4cdf64906dc500433294ab7fb61cdcbff0d0d828f1d99abf2322fe020bf8e5aa5a501617dfab1bb347442cd624915bfc3927b7eadd33a31ac64cb9b768433c9f32a08d92d5415b400c064e7009111892f722984580e1174bb7569eb43005fac72ee169b8951f8d47f5fafbb85345b893882a0a0c2996ea7d401c6b8b71a73fc87026ade3ab25bd9e285b4354b60aaabdd542c1c5be2ed456bf8f7ea9e2dbadb5578b78b165ebedba518784a13de4694fce952dec7f51e9f8bf42e2f36bb0fe9fdd0bcb317a9d3598acea6c91ea73ce7f67e4c81a0542133403ba182da9bce15c1578eda7b9b9877d1600c776b5097c74f0d8bac10f9def9fe1ec4bd0f9bdfca73c70318fa835995ea895e6f3051621a8a0a2d2575a9c9b302221821d6b7143fe55ccacb4f4409710346e2414ab1b88ba80374d92f788f756100d9e1128213015dba963f3e61e78c8c051b77edc29c801409231251494ec2909ec29e803c3851a66a88d5a5c433239d9b2985004d48a479c3924fdaf1f22033ad5d57153f2873284ba17dd921ec25ca7c9b65319a80051f7910284aa902c3d3ba1caf0654c3efef148d80d17fe9f1cccd2a9e18e4de97d14251c012a162e52d52b69e05500e28697222944730a862feea3133d98459b8223fa138d4e34610e08f451403fa06bae9c34e9cbe0e27f379244a3812b56198a4908172d46d36cad2a8d09655bda74b47f4bf5b32a130f0bb4ab2dcdaa913495eba56f5492e1b80046929603ee6b010013a6b34a1a6d48aacba0bcd3e44a9d79a40335ab97e5a8af463e2b6a3c185079749a20d0d499c4b8174c8a2a4ba348e2203cc84e2c997d1b01dd25c1a4a3ecb0efd406af8c19794d0513e036445b8cef784f022fbb9dbf41220b696a07d69afbe0db052978ae96520b0df6d502f22d70576d74ae0ec60b3f3f75434621417ddb87a21def0231e8c51b0cc9cd4139b5756c237d2a6e5f1a0966c2ec82fd13ae1ca0c08d325d0d4e2b1e99ebf74d0241165b808b3d2588c9dc419107381a6fd307868ca7897226680d5c8620836e32dfde8f2fa8fd26d1c8f16d6201b12c68e3996e45f2dca248e20696ef6bfd87a8c4d7e564e338c8a9e5e3ab2adbc6703e19f64cea79954cdfd05f4c78ed908ce22371a3fab3ef2f8c20a6aa766d33dd806cc6c1da6bc80fd0dc107a166173435f1722aa18c04f617f819c99b56aa40cb7948852f7f61ed3721b2b0f6ae86bcd06683501896d0f3b9359d726baf070a6018fb6a64e629e721acba93c284fcd9cd08fed2147234053e2f31bc7c76ecf61f43447945f1f1db6903135cb41cd16f3ea92c1cf424d3df62afdc0f99623dcf4d8ac1d337dce887fd205928008daf2da2dc4c6c2db0fe9dfa0f55dde60c5ae60e7a35414004d369185cb8012b0d0be020b61747b3725f5a20e9791bc6fbcd87bd0d2a664ca631cb97f771e76ddfce8e0896e589a20e9199f07ea92b5068f1f4dbb98d09c6e969b04a81434aa6ce6f68128ca96c26daafee3bf5d8c9a17b6aac9239595d447944ff71ba5273f533f36fa6749f66c5867156aa3204d84f94919de34e3ce97011d70bab075b858a089f6e343a483f4e90e7ea8283e0302f6d72d6e461b541707fe7a9fef53fcda5d876d1da82360de247912ede4e811f82d1808a46b9690a4f3c840b7d96c60b6ab730b53ba32b325dcaba60e0d157c9f1be6b565daf40dcb8c1e1488c345d804d041b5912ba38a28efde178c26816c11e63b5a8bc4ab9660576e8284b821cde8319e2ae1d80c26e272bebd95fd324084b211cfc621bd4726cb176cc176db5155376068da07e682aa3213c0ec44087ce5ee86f756d66f40f5cac1dee049b4a2e3b46f1b1e6b31f24cc5ba110555882e01c89803961876a55b28f1ecaab3aa2ac6c8d8467788e7aa6e34e9c3c07c7e0743466d08d94e929958b184360d24d146dd1c95e4b82633a7b4c2c85ea4b7a09b873620331872067dbe5ab7f1208fc043bb4a1ee32f44fec45321a1c7641fbba40cf56c153b46da715cfe113ad7111a66c8f9ed326f74ef505ebf0af49647f5ff484ce9cdd92c41171210f2cf3cec215d59741300b20749ebf61c5c94e7b7c7dbad2e61100cd35123bb82f59448a2822abbd938fa148b9c07bcf332c2bb05f4061bd86e9df49c904529ca2d5c41ee4b114064a2be71a0fc0db9ccc9c8090db768d03ca1ad8022e106de4545a5d6983d3c20b684284824024e9287e42c6452b6068a4d4f0a47259a08d4d018684b55ebe4a24c89e648dbc81d63a60634ae0deb73fe17c083d442c176987989eaa288818b8a601bce54591d3a362e368a33ca6e6d94c1ebf55238dcb2a60cd494c34c0bae32d37a9714e29d1bea3d50ccce80159d637425d0a5ba95c64d37c596676aa08219ad871844d8ad69a7491393deb666293520d9d3f7c37d12b4fb680ec8c6fa395dff09d11cde30415b8415c2f0e6caf8de40009ed404d15f16d73f628c47c47323d93a268c539c8d9b6ddba7f78b15acf56d20071067e0e648e2af0b48c62eca2d7e683fae47585bee822b9ceafc3ddec2ebd771ccdde4a9d6b660ce42ab636eaeaf645e61ece7e762a43135f18b26ad0c00c4012ba24c7324e4585cf98382a8d3333970cc999cae9d3670f4380a604baf99b9c5d70ca06f1075e0dd6fb901164a9bf44cf92e7a0d6e121d00686c0dca027faa6bf99420e2a622e748af06cfc07a70d05c6e2df217a98483b061b6747e37a468074a9bc92c95f89d019c332a86a687d04a1e181ec91653762d6cca1825e3fdab6d0e8400fc6264ab8236eb2ca09a71942925b44a5196f54e5ceb9f0b075a39e23926b4cb109cb4a46ca682ab7c7692ec100fd6c11444b9a2795faf2c838ed80e3d93c5f5c9e6eefda77881bf84ae55105ef2fe00e28cdf6f3b1744e8c7752cc8bf15b430d9d3a04cbb9c2c4cf928efeaa2055ec5e3c37fbd0ac2c3fba290de0d0872fbdb0107e216a2f5e8e6205681228ae8557550de02a6b76c28cdc2198c4e2ceb4a2ed8b050b995227e13afe76c5acbeff0e40cf247f7047388d3b1e91cbbd87663e456685c33916c8c24bf3814467f4adbd98daa50633c3daf83b83efcbf877dbcb99fe2593854bc68c253f2d15c9f787d0797d8b736695dc2fc95526bec0d05720b8d3ef1d5bb709740deb4e1a0a01289350228087cc0e76cb3c4303e5f8535a1afe60b309a83c3c110337b3843ebacb462d620f3202f4b6a57342e9e906cd13b800d380f5dc8f98cd72cb07b26ef368ad09700aa31ac17e1ba290c25dd3d0a07064fb2e54a98197a1144f29427a6693eabafb6ef3c7afe9ec80016f5ff313951c7030935efb25ce306f83e9ca2de1788f4b2458e954b675819a49055400601cc6cf81756bb62962af0d0c9229b48ccc58665acd36625451da580e3bdc83210d97df402a7a1dd6d3c0a5c1e56edbdb4c904de41220555a9c22eb9a91815bd3b6ac432916e666022be718695a9f7019a2476eb92da7e3feeedbf40ffe7782c2de9c13c4695e095e5d5e19dbb8d1a51676ad84722558c94467dc15a73ea51621e21b071f7400ae4c422e868268f49362660692cbebb7d1a253830d8fba7660be6cfac9cf81923611da0dbf69717b88245c98db8ce4ea8cde5591372b22506ba839e7504e184f707aa292ffe1e25bede5646d95d0ec3771302b981b5867908f276ec2cdfa408df6a96c73a4368579ebe353ebb45cd09392e510cc7e8cd0d62288368302c1160a2c8b81c0bb33b80c3c26e97087ebad8f2834ecf0204fa503cd97220364e8b4055136aca315e5b50093538e3081e6085b7f6af582d86631a1e4214ce2c98c45fd0f4b6f63efdc148dbffec40d36df27bd2507254bce1378a196e4845915e0ca1d95423835758c21a05cf5e606c359c82e19aa89a44912c79d05be1cc30659a7c0f6c15e1f14a6bc47282ba2c1f0cf24fd81276df2337ae2c7076d2500411ad9257a4e5368bd51564af3ec47b3f9a17b8bc79abd88f07a26cf38e734037213d216bfbbd2278e4c7e23bed671502594656687e4f28406dd2161a8a59ca39dc9c82356bfaa76baf2227867b14941d852ec0f68f49a8976df0fcbd7c4a1194e4ed3b0ef5538bf11f4881246376aebaf255ebe29041f03ce95ece2b4e878f0df75e3923e06d826bdf80e6fb2b5893c64e797208b8123df3dbe3c818b2cfff1a143ea688920e08ce1884dbb3cdbac55eee5b70f6f23e916538c48c2f3a6ee60d0c16df12011f6821169a5d2642ec2fc361cc072b0b8cd82a04d7cb011297bb6ce54357a10dcc3b27ed9ecd73f84cd574572df77c2abbd2b3fb29645a802cd431f90d7f2cd7e691317cdb9e20e45f9343848f4f3416bcd2fb5f0e0bb0bb0f5cf0aec58d36c7c8e7177fd1be09cd868983132c272b8b9691c1ae86e5f07b3f1de5b40ea5dd521e42b46705cc4b57091a3781bbfbdfe1b5d60b2ca354d9fbefbddc2e3505150102850c652960408960022d5151a0eac1793b16dc73e3c7b2f3accd820f5dcbb4a699fc0c2472a783fe064891ece8bd2157a5ca08381cc658f31e558a96c05e712862baff81e19b7cd8098ee18250ebc258e565b5701df9ea115448205f98a8d9d3a8495aa6e619f34ef1e428613b254c4b75f05558ed7a6b51ef2b93149eb89e78c70982caa86123ac7292872988c36031923c14efd0855cd0e4fb94ca0123b1d888fc64b889f17a5bc60d45c481b30d2742a3ec6504a7d25c8e448c5af45eabf159ca1a48bdfe3b85b4060fccaddede25c1801be62eb04096e586a95e8a7e3ac8aade53c59a347dd5c10e459f06605ea3768a90e228ef6c1cae42884da1b0e529f510c49c0751bef13da523b74818c65735115d12427553af7c6e9152c59571325d4b5c1d49ac76132bc4ad0c6ff8c063b5aecba07bc11d1a0c7c632f350718c887095c1bc8a72372c989254e28ea01b5c00eb163a7afe78096147749cc809486a20c57f04905e08f7217e416f05fc7e91ac1011afaa0d337fcd4e176a6f271c8fac82c0643c815baab91c0a40a9f35620243cfc99e98c61661913b824e3403c61de5c33990011cfe04a8499d5c7cdad8033a0939a944042b8f462b6ae0e55149d35d5ee0212f407c9a8e6ab868768b595f38458841845f077f1a261689ca66c013f7341935697effd2b3af7abf1fce57b8b54cc15789242bf35e9a9f888883bad7464896dbfeef23abec196bdb4cb9946d9111fa172b46178527a8e0f2d8a6a6c45420737447938da7ea42a8129c322d68aaa6ed25f28ee11b8c055a09791309292f641a4434d0ef2efaefa2cf41c6be7b29a7186c9a0f35588be867b6395f55783e92a0bbc0b86d4a465770b7eb99d93b4fc37378cee5e507a280e994ce6d7499b3afbd5012127f6aa701e8502725e4e5fda11fb030d287a3b3b24cab154b8dcf1c09d416b8bd9e0973a291c2023b20f2c9efb6f8d13d63f2afb5ee59a042ab03172ba10c5d181144c4b0bfeabc6bcaea20dd3d87a1670244f79957486e3ebaefc3af4e15eab83e468419a789cbe2189c18a493637f029becac0b6c10f53b7e68a32c158c0f5e4df4c1e3805083374cb55e51edfcc7e625c058fda6ab4bb5cec0e49f70f648c67fbbfcb4a5a2060c720bc852fa90cb46443483974b92641f99f10f461da7e63871c3c1106d7e0cf18e68bc0323d38c20e5adc98da28a8ee26f321ff01ba7003cf9e842596b7457b7cc9500aee96fa84b180035826515c0c718cb0fb40961b4612bd461c2ca83d49453763798569edddd4d12ea8bd93be05c5f104f3930d41ffc8226861922f4b9a8759db680e023ec6f26f18ef970dd7dbc953b8ca992791d4fea6ec5187437f960c270b3aa239c3adefe08e85cf5a6318d4b195e6177c50ac8df605608b09d3b8646fd56509e8fbce2c88a016eb077cf03c55b0ef10d3b04ec769dfaa5f69d41f5ab6acca7f6982df66cc0cf4f7b57b61009aa714815986123021427ccbc0e6b9925b9c568c23727f8aa337b4363b74768fc7e7756f92aa2bd79e7e20dafc90607a11618cdd908752c2ae29d052a60c3ff95e68ab0caeb5ec4f64709001d746750571573466035eb39dec3ce445d73cf87ed2f3cf8d9c97b49ae75090da37f99838e13477c8adf3879f72565944cf4606ca26ac95898f4d62f657a43f3017b3b7e4511ed470df8a7a4c0ffe35aa2a3d73a7e86d1f4cf681d1cd296c1d6d495d7fdfb5957bce96723d4f856f4e92cacfb5bc570700804f93f0eee46d53370f1c3ec5ff6fb5455bc0061c5322e6216596d375c827fbd1dbfd5b55b585d5830956eb22bbb5a3057907f6500417525ad34a0427407397da22ebda95578f0cb120ad73871e7ac0d8dd187ebff978b3345303f8fdae08d2253d7c0308c50423a8b216e9dce391590dd705c1ebd4cd8904a8532f462dd0907c3b5214a5f7b5ed3b8660f14944c8ef35c98e37e6feb54c526fe42d00464393b74b39dc4a313d52e061e3851cd41d84070bea280a47b710c95ba274f3969fe71a0a2c8c3591ee57cffcbb4e9560955d400a810159a838d15e0d36c4007b1a2ba58708e6dedc18dc6be25e796e8954be5805c47e4cc4af9003323cd595a471b4ec23beaf9a4413e85de62b96508f2ef3e1c4209c9e552d93dc55fa93f0a29c7bc27a66a64ca244ae58ce51ded150b3f524ef8f84d3f51c277b6575d14d8052caa2f45ae549aed92683133ec6c86ea4761244f40cb0e4aea4d5701fb82ac5ab3214634e9e6c235fbbd071d0b71fbcfc76abe9a7f3bb778f716cd3d69ed048722fa43a76e207ca71b10010c89afcce6d23f6efbc90993bf248a2c2dff5833a84ceab7ccffbd40798f44c0b1342b0fe32575d948b7100bdb719e0540f1096cba158c1d2cf64538d6385a490fce98ec3cc23ce1fdbc0773bec6af1c60a158c260473648491a35ecc32b0eb06ec875d18725f4d7935eba66054c8105bbd4cf1de17ad74fba35c004dc809cd6ba4a2cd279102d967b2512f8a70f354d59e4130f50b2bc7c39825931522adefe8b0bc2a655dddc80956e231c408ab6d09fe6229a00a7421a2adf5b4c37ecf74cb660a8e477ebaf6f48795122a4caf9fec701e3b47c684b0641ea51892d902f600b93555cd2c9ab99bb443a7e585fa633038fc4f1f1b1b9187f5948dc5d9936d8957334aa1aca065a325338be996f8333ef85ddd5c84f71a23f34489fd7cf75412263b06b7f2d9f58fb9705f0d2f590821f5e9b060625845c89a44952220e008b54e3ef7222995c4b602d5d1b5df24fdcfb6f24585a109c574bbf896eb45dbe3984ad1bcd2267e6b9dd237350e9b46db904c672776a4dab94dea8f18425139d30742b278990c740323e47554fd378443aa5fd38b4afde4223b74d06251f11f4e4ba09c24c9c110ec10cf4d570ac2d23e8d1aa623a3140bf6b29990319a59d3e903db53495907a798c4be01c77bc952478461f35a36653a8d5fd9faa338e7b32100ba62f3e39439da90d8227ecf35fd2f19b331cc76503b9218d60e94ce11bfc961ac86c3e9580b57d0d5314c0bc33b246401f6f85e0bc67814082ee34e49dd8e5869fc3917c66db67e791fbb231ac968c3353d32f7cfa163f7472bce1b3c1b0a8f0b5cf03f04046d2ab31b05742c7121e7862f76899468866a8b01726d04379726acc8a04cee04299f27032bdf3e233c5618043513e9a0ee04c817c6c0a239444480482b8587666f96b2514876b247742e9ee4c551f7d4d90c70dfd7f3af7c7cde5a4d014f74ba158730b310b3758bd77a8c0dcd55ef62e39d36e2f9acff746842042932ba39f50afcee96c7a5239ea32ef6b6bd6091e4c8e815fdd33a7b1af0dd6e80700c4cfd662f5167145baed292e3813941dc8e3f32196ccd86c6ece9d9a511e552540360c5269bff484895ac8dd753dc32558859119392d0c16879e114ad335e29aa20fe417bdb358d93b9df6e177d1e29c5aa266ecc810f91f0b69beb694f230cb960f833b1d4ff236654a04de8343b8a2f3e1d7be0538676ae729eb0387c5ea36a313b910c5e0c5536b482ccd808f42c44da298235348b3e4e5c3841e52bbf76f62e950e14f42ed327d579fc5c38992edc67cbda74993290b1a20b15d1d83e97e116ce4859e2b90ce0b7dcf631e40856944d330b9912e00875eb9124d289de611cdf9fba42e95ce671c0ecd0fd9264030b0797ad475aae86d13a2d8566dce1c6ad098d9b60099bb4b955d4e0075a074cce51cc4700da251e7fda195b77d24abac44ded2ab7a4b54642012a233de1b222954d979653c8c07129e58bf4e2c343628236d3482f532cbe643fa7cff548ce3ae19651d74a2090e4455c8c1792e7400e4d307e192ccb8dd12d2a6717c3224635dccec97411509d12cccb313b9ddce210f36ac44ebcc61477601679be24313ae77f4ea8d66a342ca3fbc09f2ac87407fa6b663d246f9b86e383573114d0ed7d86bbf917946d2f70d43e9642e5eaca8ba007de2b47d7c09e26ed6076cc0f2a71ac916fd000ba784b76346e08435dfacb723d8af8870489e4653b7c587e545728c4af49532c8fd6d2e8c6c8fcb324855a8f0d243f52becf435327fc1a6a9f465783f0d71dc59f669c590aac721ec030711036ce188f11224b28b36c48d4d2e8a7b0d8bc1c462409e61a9fc2c768e3f5589690abeeaf98ee6fc6db460a2e2e2e99ff2d02dac45d5b91b6b7591b0e16634b8ec9a47673d227b0678011310e7eb5c14ed0202e477c5633777ee950c1142b82dff5d417a5988126ed98e98666dd41c50bed6f903764cb5da0ae0d3bbdc234ef93c4715ec277afe0752be56bdd305c7aa7112c50b17d1f0d2fe5b4aa98070553dd3dc36a07b75005a0ce769f5ae91c554556b985ba3f605a10487567e7e8e3138b92cfba9481c5012b4034bcef2d10b4261b73f3eb2cf5990cf1a5eed96a3636d3f9f7c3fa3637cce1af68a8f99c1b28d5af6a1dbf58e5fa963580ea49beb6313328ee473dd0583d36954c98ec5d580e0a758248bebae0eba3e437e29054cc64b514f04346416bd7b8fc388dfd5c6c489e6277acf423c16a802e849629d030c93fb3ab2e81ea689f225407e610e7f490163bfc2a27f0b467b3a9e93b8f8880ae3273f058a3509a430e4eec03c8b281ece974b2c3a784c52a2707508f3f0b3fcaab2ead7ee63a497891f05fd36d0d9a0196e338ff2e56616f8c1f1a5aa43ce5c876effe1177955a855303cb0edeec603f9aa6d372dea6248c432271c79bc67e22e408ac9df500d5162893d3321fec8263d2a77185a511bdb3da5036dea6754b15a7091eeb8367f0390d0bf3d6d9b672892e39cd192eb34d8af3a54074630b3f6a930e69e13ab2282db9def9c67a8438e11d4c82319de7311af3ce18e5e0551423a0504fe0aaf64dc890214ff89bc9dfef897cb630c0c8735785ec2bad8d0fcc8a3cc0efcbfe9f5ac7e5368c98359f6e518ca1c9f182a359d43ce7aaa3b52d56a5d05fda721ed986f5174273c112584d594eab757190bc233d7f556607fceb2ad32ef0f099fb599c50da497fad41e6a06cad488100655d01367925f7499d9a5ffab270ce2fef2f997e8705f24522e0709940a750b7bc05b7cb1d19d307dc617eb8eca63034f994d8c45f48125bf3f05f1fe086e6efeb96ecf194a19d87fb3cb5cbb4d7b8d1123e91f930e7598344a227e6996f21f31bcc6ce57950eb5227cf0bd5bb56ae0b8eb9dc6d9da3b7eea800934cf886919eeae8d9aaa8f00d6a6d117b96c24fc0b5d2171a16eef7fb7344c80ba2b91a4ca7f12ce533a58f9a6cf36b2d2bcd7ca512edfe547f80f703e6689e58976a6eda5761c89b8317ea33c2da9b384b4576a81b8b2e5935a177f94c8b4484b72bc4bfe36018f1228198bdba715efd19e90d96ae134006623ed6c17f6d91e57d956b9340f0e178e610aed04a1cd795975557a18a7fe5260e0c0aa372da325b1dc2944173d621d1e56f18fa0530424764c6bc2a0e701cf99da61a1220e2cbed8980edf7d09a91e36c82c0a5d5fb87e3d2fadce05a8b186409e1e4eae493c58a62daf333a2c8fa4438f23db6e910472a0556a5208d4b3a3ab3f8b62150a512cabfd73bb59014aca6c3abc6818c2c7f4db6885c1958549eed54905ac2896e1c7d7df99164a06af9a291baa966fdfb9530660daae46672b8b285477e638c342f62c1b9074ecdbf2a92a1c4ea8f28118c023131b425055fa19d79615466a5f57b27be25edc79ae3f75cf7f0bc414841d8781c5c2cf4bb91cc301832efd86c605ea64f28542809889d2962338ae208ab8663c9c4a01e1effd8a62fa20048cb13f40a918a1d195cface52b1709acde67372a807700ae21a9d2248a21b09b14fc6df5b0455ce55f047825ac6f4b6c4e9f7e69d5bdeb79570d991806a1cfb98e1df20e44a31d4082f9f8c94184325fb8e6abf22714890578820fb05046b61c55001c2bb352eb94496668ea1e8f3d4ff81128355fb86f829d3921705beaf88b414e72ea46db94151f27f04a16e30f90b51bb63942f056880b811939080c868109d8f3c5a425c5e067ea53c2c0a226e2e43c8038491fc20185688a5660879038893f8035e7fe65c1ce475dd3611c0712671a960ddeca76314931c4f9c2954c973df9e9ebbcbe1d4e1368aaec578548a7f74c8a82783cbcbed9b74f0807d1328636e16d071719c4c319d8973163870a29c411f0e6634f2558eea5cb810c503f712f16b425b433fa3b15cd07c756771207a579483dd836156f46f20d66cc2cd4ed973dcaa42bc87a68dffcaaf10b552194061c676a91c09cb38431328c76e1e7c44b508af6a89df100c2aa6c27907eb7728d8d0f6c6ccebb34705300b8d7260d8e81853a96c412d03623d71cd714f5745bf6f3117ec53609048465da9a5ef6e779c89763485adde10a24d7487405b3b6a52a9d4f1d8c946878d3e2996919dfa6b25adbdbf28c534cbe369944d9ce827ea1199946c8f931ab4b0b29b4bc72b9abf2fb702c6090bca3f94b62403391d6a1e056dfac9298ab854e000a820464bba7015cb5c62d52edb28a03f839f0633c4197f6134c8cdec42885ee4631ba919b6e6a09362c6fbd5167274864a6e15925a6c78f21ed359dca3a6f2fe0efe8317f4c918a1be6b1eec8622d588ec7abbaa9e8a0398867acba51c1ffbbbc396f03f296c864551a0d02427571633186ab6395c6097a3b39e70a05b79ba6521d4b1dc55aaea4d17853a3be2ff8d4b59c75dc7cb3c2554935cdc00a2c2c4cfb1061e5a25314266afe48eacb7da596db45c7e9940b41dc0f4cd9a0196ca16f5dda7e839c588f168364b970942ede6c2114f205fb3007250c82a23bfa421c2c382f7962c1b649766e975d6e18131c004b6e1c128de7539fad5335e3ae4c9bbb417485428199649a2dc38d374f4a3715cc22c8bce5dc40d4e5cb92c49cf607036f969669128dc92f96778ec22e031e5b4962c4424a0367cf16440086669a69b9904c4eb849fcb1c3d28f547881617ec4c46f4c1efe2577b128b86d617ce2f0f34299a386c95edd7ba882d6c0ee8450f86a0a910bd387d8eb99a184e3e6834e541ce3c0d6d3c68b37d2311d308a431b5cb5bab291b311d36a67d869fa0022f201a8f98e60af57baa808b3308e69af5c005613a2120ca4af5349cddb1dea9aff804e775c13ee72b7b7cf3b95562a38496c483fda1c0d35a38135b743943b14f97a51e911d8ce65d78b25416623c2209d37dec793078be11bded716255f89f8dc8a9c297fa4ea7f6ff88d973cbe2c56bf243632f85ae6152460314156d965326052a9442d34ac54b2b68ca351ccb8ff93757bcd69838633a58bc253dc20f681cd5a2181ed5b3f8d9433d72e07f3dd3ee1ce5240d32465adc037fd3dec4d4933d1b8c0f14ee7c3140a95e1ce724146e228385c08ae128ed91deb582a355a53eb14753ad30cc90cb391ad6b496c783baa2b19aac21141e4fee30691499b74b4d41ab1b5192cb247e3ccc634c3945b3001f6cd38f8e63ff08a2a694126c58beaa652f91d8e1be3e83bea2cf905cfeac5f946ad253115839d7190f2a6b4846c43b9a00f79e05354c617d7bc14993e40d1477e61887dd7103dd86e7f4c215ed993b2d2a068528d5e1b835df4fda9664f7d1d26b9739ca9260a020c3203dbd7217daad85afbe95b4c085abc60c5b5080765c4ed41c875cfac02eb9a262762764048f8c7388e2a0bc2c8fa7b010a7cb9d150095920186742410e8fbca129673317c2a4579a1dbd7c52ae5b18e410855bd4af648458d49398eecbd24e72acad88fc0b77d276bf621f68c2f7f3d1108e5057b47bbf9a188fc2b5f4e774009e7761ef8ed0900118e0f00915c7c5cd73709719f216287ec17572e11848e2d8809d2797c3f1a97eeae6ffecfe26323add60fb272a029ed3fe06c8345f732d8d0adc106659a88797d853780a5202694fe3ca47e4aa4c6603ea2de37f12181c2abaebd91cb467c68abb0aedde416194ed22b1ff8346814805edb7c0210d0a5b8e0b7af5f87001de60d7d0fc7f931dd8ed411f7bf0b05a00658bf29d05e3b4d87aeb8074f1b72e546fe30f31732a90bc67dffeecc2d645d8a7ece89276d1067e4a732248487624fffa8ecac5275fa563dbc1d4ea15548724233eef2d96b5081f099fdf1c90e1b5916952aef5a08437e1cc7759ad400575e268a8cc8d3bbb8c676e596113352cadcb472527065cbd93b362737f11a71be494f6e97dc68bbb47622c599e0e5205c5f06f2342c1788a50b961a4bca199d1d4b5c3dfc817c0dfa4a4cdea358b22a646aee41905e1c76279658be21dec2d83afd55fb65b1d604c7ac2bd2354a80243aef52777abe9e2d3d85725e904d39aa87a15c1b66227a94b67f5e320114a30aaccf809ba8563d50fa4f13cb22c3d6c049496159e5e8b3282ba1818891b365f2b42c9a83fd1411cb06984f805551e25cb9d08f927987e42b322bd274144093d20400c92e46976e0968433d4151a367c944ce57e6ecba6f538351cb478728cefc62d802ec7c74ec550ee76a384387aac840a11ab07d987f483c715309641c3a9947fb27671dfa327d6d3b47df5fba1dc408a5e6c0a221fa433b26b8814341915ec6c6a7d56a4fa3b0afadfd531deae6cd30f98684de95e565385a7b75baa152d2bb0306ba25acc31cd87c2fd059d3cdc99ba8d5063a6ee40b3c81ee9f1e7072597e0d7419bc52a0cd96d1a4ff39950f1f48d77117066014b47a4102f6ebe272213d93d6b59ff8c574820cd452f7ebaee3a1ab807613959791f1ed76b8a7d8322e71eef62e6bed865c4300539faa457a36027df27793fa3ef67df0ff9181000a02f5af6514b19ff0bba0359d2f0e3f89cdc986f1b06ea86ee072b456a6b136ca3662f0b78611567c6adef7fcb193443435380e3605315e9ea5d4eba382624be346b61787505ecced7ad4a90a5b696dc74963ecb53b8b1b23f219aacc2c741242a7b127b58073e4d7ec55b4961188e7b3db8df60a94ab3b9a50548ffc62af3d79cff79acc6cea86fea966639638b4028b46706737a161f68ed3ca815bc765ed4836c922078e319a035a6658c1bad897927abf8e43d15bddce039e894ce9291884970ef4b633ceaaa0f749711409cfbc5fc0918228288f22cd680c95e908cfde2425ff522a03692ff988a0de80232366ba87734165a6d9a3f253a50403037c4788545e15e25fa41f48f03db58409f819e9b18a33c9a9520ab01177ebc8205ded668e8ac88d029e9f00625d99c19edab457f37765565335e21f3addde63f57c79991c81ef12891eb8055d02605cbe19363082a95aec6e1c3ab796767d62edea21225d1eeb98958baf56b5b664e97b1bca42274b4436940571bfaaaf65544aac7f2da9d102bf00dc71a4c738f909f31f7b0c28bc572d83287ecc5d373abaf5e92a76706d9d6fc8372071cda75eb5254e8a80410e9c2385cf03a1dcc21b3e890c2537af59717e9a83b0e7ce531e396b36dab599e41242482a1bd886d2dea0dcbb1d4f086c022acd4e4257206e24b7bf689dbd6f1f195c371db4677e652a4323ea37a884e35f3866444e1ccb94db253ea7d8d5f4dd6834dadfb3120a31f89b458560b97a5140eb86664df5a2ceafc3f23a8d1e2654260842c3bdd872665df793ae5eab0cbb08691de22fe225b83d4ed081df30e2dae98c1d4edfdcf283712ba1ba46320be48fddd54ccf5964e99ccee9764d68055d3c8a286e7729b8514aea38929b5236777e2e93f31c707109f0f88d218089789f6cc5cc171921c9dbe458e96b94599964a3140ec266559e784db5b3b2ea0eb13d341b98c4518aa7370b0f93db8b808a824dc97c09ac1eb8d50b3a9141a77abb8081b89cc2470ba3c613e4ddb74c218f12ef423fd3a3897738c5649d608ae4fce6a067304a05ac18c9ab35408450ced8f7f66f33e6b0bb7f9d1cf5793fef96a8d6aaffc7b136449b2826ecf2ebe6251a6d700ccc5b8641ea47871233c425b194e5bd7119789e7d34eb2540d912a9f47b0a732ec3d795022fe454b76c7cce1499d6f7fb55bbf05fb71b591baf090e32f24dce1c878f69f288f7ffe4766e9f2e9804f87c9c47558da6800070d6d9fcc021c0da1c2a5544f0096eaea8d7d110341eadbc4a4dd0e58c6f2530a6c860e2fbc9bb87d4d9a969b531d616b777eac8a23ce7210c8c63b0cdd9f9e7a0f99481c3aeb284baa781ad6e1d67708f9df4abd9831b4ff079e2730fcc88eba803fbf0d051e1d69f426f9be322cb540c55a9a4992cf85c714740f3ed680273be08afc8fa8fbc688f28cc36749eb4b3fddd1c940d2fd1fae735fb1bae9eb7b56bc803224661ff9576538359e796ec11810d357dc5cff320bfe857726890864bd3703f6833361f6c04fb86d5fb70e5a313534713512778523b033505384084c18082d5b64e368810e62ed09c2b3ca93a21d4546bed18adf09cba1c26c5dca571624af58e6bf835409a0339f748cc4dc9800daf11b510ea3207e2155a624183ce7d8478bb35565ca23daa6f16cc6f4ef679606cc553f40787868713c5932d0eb9fb2cace1e8ffa72c0090e6d4fd8100be08a8952deb60d0c89f91fd1271bd7c4b8902ecf6e09c3a52a54ab2fff4cebf4e372a547ea7aea9883b6a4e7c5bebc5bdfe50a85fa0475bf73a7b5cf32e8995fe1a55f00c47f93a78543ed404f35ff50b407abf3fa1012777968d327874b2a7d855cb030677cb8d1da2fea4f47329488725f2c0ea8628c7df95155b614178eafe26aeae77545a3288dcb805d42d28c524b601437e8eface67831fb67106f4b87a459c1917a561f7a49a1a2bdce4254e9a16bee8c34b83d9b92476823a844dcc6d8fbdf4e6d27e220f30cb8a71660e51e19aea9c46cf996e3d78c68754269fd150ba0c06bfa45967d8de314a80f92aae4d9a6dbc17b1cd20de2418a3205af3217ec8d4a9d6a0f27bb6dd32d7a53e3b6df5be28ed2c719121f96023efa6dd2aad89391d0660ff93ad12bdac4773507df5e2c6a00b5207fb0efa7498f0ac31a009b1a4aea76c43b818b1841744ee1ec05d4216a19531fac06eafd65927eb34dc440c360ef49cb791c37a7cc4e39e55f080fce67fbd50cfbc52b3b57a516856b7021f3333def9cfdd331672616bc6c77128a1cb84de7625fa2636ae83bc952c3cc6daa2e97e6de5b04512997d055ee4018f56d45001912496b58830166e4024313c71f972c2cc37320cbeec7d2925675a607c0f14f5c365c967a4174ba03b437d203ea5eb021c69793a6a6c892dea868402ea135aa3469947b7029a00861844c05f545470c4ca4d1c2074685cd98a02d139a9fdf95aeba128a2daa9dd8781e322d23951c109ac5e36aeae5905afad8f1be7b3a123da347159ec4dae71d6923b45f93f2b9faee531403e0b1274078f7e95f93dd9c80547c91920ebfe249f33b5ac20f6e78aafbf378851b317c2c9dfe03cb042f0e11320b0783f82055e01a2322d709132f9e503c80652121f4c5ab3019bdc9b02bdc00d48b3c940cbed9b13acbe6f38727b7d9956fa0817a5c9d74b52610a057de9d0713c89287049a699d4ab46586e5fd85c712d0d11f01d51696c8c49722643df9ba822898112576052b556f032cd30661815cbf66e4c43a7ea51a9a26b9bcf696912fc05c8fd704d0003864e4505800811862f00a224600b71cc14c8a02d86da204318a82410f449d6bba0eb4560bd3980e0f70ffeccbb8d6033b2eb0abc2b75efaaec61302545263dfe54d6e4864b8ce00f97df970631233c4224eb06c50caeafc452a70f1b6d10203bb4cf7fc852e5972f7752f4010aa82b3fffcc5f2e0b83aafe7ce23187d447d426e8b45c3b4645bff3b1fba6501af18248b076531e4e00df3e6251224ef906380b166c156361212cdca1c540e19787a41e32e5d423746dc245617f00421b1bd20d4811be166961eadb6d9aac975ac360de38c0b57b9eeda3ae64239e216d92b5f7509b260ddf756f5ce9b3a1d6563235bc265422533b105e91039816d49d6a30696ea2fa1d97f91dc61214553f010ff80a3e1989c998e1f108c0d7b0292206d8575ea5884a62c5a14a2e9eddde515991d0835aa336bc49bdd357b9b3651a22f67d213d39d9eb2efd0d8200efe9cbfcad4c663b6335a9ba4e1baffbab58f04c9237f9c2c0f73e15d1c47456d31369bed6fdecad58830ef75f7eb66619c29a8df907f52bc74b03d4f29f7bc3ce852e8c5ff5363eff08d3d4d2a6a0fd6529a427cbd7b3cbfa916e7c4b83487a301f54d84c5dbd54284c61ee79e0b458431436f278213fa45f8afb7dfee1dd2f68284c908c923308f4e3da98c7190292fbf26c780cadde4c30bd2f701ad4b2432a2888e7164abacebef54ac323fc6600299ee5d025e5e54ccabbcc51a1219255e0ebd6813d452b51e966cc1162979cd5e9f2ebe8a9eab1be61a4da1de9d4275c9479c36fa542999383323026f030923eb0e8742f4291decf1b72ca8dfa4456356e8df559e2052146c943fca05785d413a757c40be845ed28bfcd8e185302255b580ba67aaeec24708baf80c836be8d1d1251a45e9da8612602e155320cd7e02f46bf2fad28bec156b317b995f06698a5f5a9100a32aa84285715f818b2cedb843c2fe2dc6cae5a50ce667311c103418f04eb4da53efa976bb94d240ec4b0c69fe75e60c185ef77ebab95d9a7d2b8a2d993ca5597810c234dec0688e5d7c901f665553d43e163b13e10e97dc22afbc9212e6b6b19d8d2078498a4e46afbc34afd62449a22ca1fcab85cef09746bc5f5c461f48132e95ee0d165c9c1627e1ae9b6373aa0ed3bda7de2c19fa890d764ac506fe28df12f5fc90f77b9230ac6da5a2c642509ba12794286272c4b7eb78b85e89a8d7ff75eab954843b4e4e8618d4e69d1f9d37bef2e8ccd6711729a14a2430c0ed5d934bda4577279fc5c734c4b082ee68a40cfe213e15e402fde77d6833b0ffaaa94461d3ec37814f6f3ad3ab441370cebbf1c8caed088e2a1b4917d58177f29031dff12a70bbc053446b7956f1ffcb389ed07bb01e92d3efbaf66f9120fa2f027c17d3fcf5ca8b882de01915d971b02042f66d11eb845e9c3bd7cc6c447df57244654f62b075aef9f643fb7eeb7b1520ac696bb9e09204eb5aa7374e20309098ba2f93d99303ed69d0aad204add197dd8c7d5224873c53c20e3e04f9a325f1ec7ea7a5188dcd771aa96730c31848cc1dc04ad40d6e0ac6ffea633aa8f7e8abcf0f6d50814aa5f7ed630eb6ab16c88dbe4b628b038194e88b071ff8e8b347028084386914c58bb373ce8f13621ccdc4d894d9c06661869a04970dd13b94cea56cfc6763ea7a0964030dcb8721dcfc5a3cb9f8abca49c8d8818ffa578ba6f8538031d63ac4c45a8a851626058ab183527d00b921b320630e50498d50a5da6d0b83b40b70eb8f35456f6bd01aa3afc078f8074f988fd6285f6a5ac8867e85b88ca2b54db6e5c929899fe836721e2c7a22a22f1ccbef0046cae01800b4fd803041be7601d8176359b6ced37a27610dc337a6548a4cb9055a6c1ad0a86353f990001edca34c8c7f2e980dd3d4a7880a30aa77f2db3e0345c17a8f9e139ffff46ba802031afee31f1b68b4e043c1938d5384bb68a1ed7057a7209115a122c7247bdc7f5de31a01ab19ecb29f006a3d03aafe5f1470f20e7c6de66c1fb2687bc1ef7a7aca397b71dbea870b4891c7458ae05e3e2b09d377644bf58b0543236e9f8329812c908e23b7e408aac3a34f43f2d7a81c57987947fb025b683732aec33ac4fd254249fde6d9752e9eba578f95929c2d648d8cb626ad75b8706f70e5516fec7ef8519781f2470d0e8beb4e7dfbfecaa9260611d199b3f37ad5f36489dee75e73a626152cb6946095d2e745eb1d5b5a6ff67e2d69083d8a489e56efe741a0fcb2fee1a7eef9396b8194e7b1a6d4da1659945fa0aabcc00afcb82b52012eeae0725a4a78f76936d5da3cbd41f22542da9cfcc324b6ef7faa8557ae1636e6f0970df6edeca6f11f25a04fd24cec0df696c79654369c086286dc2993fac24e7dff965e9a4af10bdd771810040bd5b56025737b3079e18d2c7754b99d360dbeb4924dd1cc7a01c558df1a7464f093de15120b2397ee05a611d1d51a3bae71c08ea6089fe237cbc953cc006085754eb400c1ce50b5702c03e7fb3340750bcd13980db914c41fe4a8fa4cf6207d542c13b31ee087a495474f88e98867c79362a13704035a15af701725e87b341f9ca6bb6dbe38f7fd2f04201c1f122e4803f1cf3244b6569c1a2f207a9442226517c0837d280b384745113c3b59a531a809d21ba715322e97d9ea74d8db3aababe0a8a217dc680c2b9d72d4bf5614cfb9da81f9154209cc9dc4c31a725dcb5ed85b0d573c9b2fefe7db63e715936edf082b75b45e1e04a8b34e7bd0e9b395aa5dea7c163b455c3dfa9f9ae13f80f8496d543f581238ce5ba7969422188b3600d82a1c4da4575e20aadbfe49a2d6a5a13012f112d89a28afeed61e339799a67e12c6f22cef946d1dd9ee220c7987887949da7d98247b90fdd92cfab7645dfc6e5db96e7a17541b172964cacb9e867425df4451e68a3e8072d4b5b3501d650052d42664eeec237f6433c02322fb105a19bcb7d7f84c33bcc09494628fcfff28b8d8adb6949a0b65b4a8ba40f5c170dba6511142668ca8f9271d7db218d97c8b67239c3b36091e642f8b445cb3a40dfd21dca80a432231dccc56a7ae31b7a4fe9241a6c9e6f7295a03dcfe1ac242f2d7ac850b15ca74301f240b877dc930e61124629384db2e9655078ce8ad30aafb40828f81816ab6e7f5c72b3ea27cf1ec1de02abef63fe87d822270a87de1a95de274ef431a9e613938396975ae62d19643e7ebccc93fb78f49b09fbb46c5a283bbd6df14d31185fae10fbd8e42b4e4d353ca1c133fe193390fe9077023cdc215b98e0852947c1005135c793b48bbe2908135ee75c1cbf252d5e4e091cf5a0422f7f0009a5accbd0ec3da4e33506957122f0a23b3a295f4b63883205993c7f6b835fade933a11c4b74dbba6797f95701c808563a6dfd8a038873803bb064dc2027c89b751c52389f3fc89c6ca552ce0c2d54589fcb01642b9904628f1f6413fd627d5a35f81605a1fbfcfeef299898cd1b681b1a097352b0bb58e98b3b131b620719c65a1d698ca512f0469167a3c052de2c8fbe96234dfc03f5c112af7ecb0b8f6ccc3072a20b90a1501065529d3970f4f273972397476ed08e8aebb716c82cbf4ca90b646e0769fa5637a6c23bb942bf0331e9dec4210f06c6605f326e78c838faef8d524ba0612bb642ecfea64b7cac69357d3bc2b889bd1f1da0cb86fd7b70b167e4d49cc889f3b4fef68b9cd3aa1a6b0c3a81916938ec0b995449b8d1d6557475a15fc8602404c530da465e8803ffaa555bc0555dc6c630e84f95b1a4db24a95c72939c6bab721bbea22be88556603d2adc2ad99dfa52d90d30fbaf2c2d557acdb082855fbddbf2cf029980a1fb9be8c76482b3f83c924322774f4b55c6ca280dc44c88d90e9479db9236ae4da2f4b8c67d329309c6fe4b9d9b58aab3e6ad3bc76d32911aa766d13a7c4f59a730cdbc97131c4894a5965e4ff7a97682aab9074c70fa222121ca50d7e5551c94d323bc09db58e7f49ac71ddc37770b8f7a777b8714f26be20665f87c799adbc81cb1034636e8e543475102252cd6d6324f42a67d24a82750204959ac4d58024cc20c71e67ce01e577abe12ec82a3828642ca634af58be3a2e0f657ba274fb5574ca172e47179366e9a9a6929f4ad7cd733038e607f13b5da541290b7537d02c4aa9511605f7a9241598389d32dce3c60154e81787ae8c72ac576c6a290fb4560569d0c00d37e92a49711fa4fdc83eb5f1e44ad74a78bf6230508147f60ea2a0309eae5270691bb26dc9998381413663d67c10a152d330381e437a55f83b79fe4d0b18d26494c2461406f926d72e8e05c5f1fa36575f51d3fd6c13469c8f43a956668be6f746259dc5aa0e7985417ccdeab7353e2b92a8e64fe77648d7ea2050f8bbf93dfd4c0abb1fea6fbf8b4013bf514e63095d5919f13a478a4ff7139237786b8550b370c48898918f8ab45f3dd944a1372582e08eab0c3c649f572c2207aeb05e1749ceb3714bca6054196737f40c6e031e8bf3a821b25e7b0ba53546d60fc852aa9acf86059e62060785ecd325930c3a3b76ef68543c9bb52485f4b304d0872882992ba56182bd205acf2c3054ba46123bf989c7fe0397474c5e3541f42e1c3d7482fa279b692e1e8b91ea397a82c108260f427ce542111d090541946b9a13076392277c92e4ce1d7ffb51860b3cf4efcc0a79a11e30e20bfa463fffbdb37843d62b5945762e1334b8d2929a7cf24db00bd1f9298d7a800cddcd551ad84d8525f70b8cf303797a6fe1574d9f02062c52b063312b2e6b51a3a6abb05cc51abf26d858a4f84f27faf1d84f7b0f3a277410cf3d91236ab91740d21df4637926cf1628eb5c49d12843e1f8b5f2ce0d53a5af01e8008ec6ff02e53dc4fbc12b0f632d8a91f37aa79003d11257f36df5a36d61b0fdf7faed0b53c639fafb211019538d9361b45313fce3eb3e44c7c9697a296f85ddc9f666438c4a21540cea64730287c28563baad30a771cc228a36aff90465f9d1961f16ce90e602edd890aedd7cd8b59e140699763fbec2b167c43e09f8ac9bed2b346989ccd73986c5e5807598428e61f35aaa14b648e67fe5fa96a6688e363141c7b74dac0125d8dac15415938dd210c78ddf3269113a484e3e7e30830964bef11d47d40cca51d9448494c664ccfc3ee058b161bfa52e66f2f68167dc38e82f82cbbe644509d6f9918feeb34934cf7d88d90cf4c77242ae8d533033b63d3d47da3558407c64deff59cff12bf42888925af0fc3412397dfd586b94c331c9ceab7ef1538db3c10e04fea0df4d402caa7228c5c30d049930ef92352cbb8d98365ce3e0b32b7c99db35e7b7406b287eae5be4ced27acd61c45a45106ac0c7a7e225b65f69683f7f19311a70e8028f7ae86e2178faa15b6c3eda420d962b9b2f6267e4208d972efbde5de7b6f29a59432c5070008f60822ec6fd95fbf7ddf7f34dedf927c0dfb9648fe7df2ef7b1b7c9ab28774fddcf0c5b2f5b052ebb2f256d95f9bfb3ef241d2f5e1bb1e2c5b7f4bf1c9b2c3e0e3bb4af0c3b2670c811ccbee75d963f06f1c7ff718fcfbf95ede9e57d2b7bd8413c0e0b3b35788142153ecf601b909940a9122444a4d7531bde079bca2883129e2325fad7f1443b2ec306e384197065b7f47fda28bfca1266dc6cd2386df2a7b76e9b0f5fa45f8bab4213fdb909b27ef708bd9f53b55975d7f4bbb3edc3dae27770f08e3720de3729706750dcd0bf67a892f318b2f317790b7fe569dd678b5f85576f15fd77d14e5ad38f7925af7175cfc298a5a145ff0f0318c1bea502cc350c43455431173eb92f7f5e2781c77f7012d203e9db6b53b393e8af1efee2f3eceeef3123b10f6d2afd877b0bf5b87fa6b68bed32ff1c7171f7f164318f91714c1cf39835bfcfbe2dfcf4f961dd44f8a9f37c6342401ffdd36e4dfcf3f9636e4833f8a9a8be4ce0f3ef8f9c5f173d97df805b31ec7edf3e239ef1efde4ee097ff479e9308cc16a685eb0d74b7c89e3088a3fbec47dc1b1d31aec34388ee5f7adb2fbf056c75d3fab4eecb3abecaff167c51de04da678d264d97a11c5bb5e7cd7933fc9fd12b5cbb5fbeb05e671fc198ea358761f2eba5ebbca5965a2f8f85194b3e2a07857c7c56f3d8ab2e35d3ff7e3c85defdadde7c5c79f2f96fd878f4f82e2e312fc165876bd7d5ee0383e388a8fcbeec3f18b25fe717c70f479813eafeef3aa80077cf8fc4e4f2d38f478e2f3e226502d38f47042535b2f28819fb3fe4bfebdb7cb00eb459dc1f1ee8e318935c653044397ab267cb59ec6a5c1cf5aeb7f85e35f12bf76217e7efd20b979c49defebbf0ffe8ed5a5feb1ecb9f5e25bac41707c4c6d445cda889f1f3f69236e9efc19bfde5d0658fc3e999fd32dfce3d6bba7f5e2ee79bdfe9d9a750b7ce957cd8661695ca1cb05bac02ce6075d601641171f071f97df932416aa2b5a8f1f13d515aec77bfc3c8ee3d330048dc52dfe8e6d8d4bfcf56249be2ec39f21cfab1c77c7465c0bb94a4c5465fa67e8a2b5f587c4f5ee3ed808c424c620c6baeca2f8ba145f6bb2f562d93f70f760fc7ab074fdabe4713df82329be2ec96f95e358564e96fddb3ed8082c737e16e483a5f85a3f59f288e0e3b2538e7fc43ed8682c7b0c0eee8e8578f833dcdff72ea07241950cb0786c8e27429cfebc26504e733c09c230aa8b72f8afb2bfe0afd66dfdb8bbd67af717fcee3ebef83b36e7d7fa5bff55a67f2c5f3de1dd77eb7bb7fe96aeb270f71f1efe7c95938b61d97f2a881f1085df0791f0fb349f597cfc7e67fb0b0ec3f21e9abf8f77474102f8b7e62ff9b1bfbbc3be862eeea6e9d156e88f4d7cfc1a2620fc3ef879660cce9027ffc5a18bf1f1ee2bd0dc041bde821f1e3e7e5d76cdf5f78eeb70dbbcbea7f5e1bf76f82dfd3b1697e1e7b2b74620fff5367cfdbabceffaf15b657fc15b4f4312f4df6df3fafbf8c7d2e6f5e18fdfcadbe6b54598f95ff95f9ff72bfcf0cbfee2f6d67322504e76fcae9d22890effba203fdc3de4bf764fcd8f302e1f378ccbc9d7353fc7a7214fcd9e28360ccbc1c73fee3eabec7e6c5fd8866139cd6370ef549ab2c7e0777cfd5997fa69c863416d02deb297841e7e876139cdee33e0f7c190c5f7b7ac7c862e2cbf248cfbeed6eef86158bd3b0ccb710dffde7bef95fcdf1f719e8f87afcbef471bb2f85edffad6775527c5b73eb74620bfa55dd5453eb9533ce91f5f2cc1d68b9fa26cedae39b6c00fb711bfe77eebc57dbff577dffddaf37bcac3ddf37dfe2fff8e1dcb0ee34e123c1efe4ed53f43fd3b957eae31d1e0f9f58f252efb0b9b177f569d142feed7db94b3e2bc76eff8387e8a72569cf1776cab3481729ac765873d17ee1efdf9f3cf90478b50f33d2e5b4fd2bc6b6c3dfed6e3ff76f835654f6bdf2a7be99f7a8b3f96aea729c9b27257d9613b2cf3e70aeab2e76fc10f6f7d986d5e2ffeebc3d2f5b81cbfa5cbfe82eb7f95e363d79e55a63f7cb1ec19b76e3dd92a27ff3a8c4b963d06cf36e3f7e0d73fee144fda8607bffef1f50ef7acb2717718978bbbc7e0598629fff2fee8df9e814e82fe82cfd956cef0624a7faee005874161bca6ba5ac82ba0dc84f93489cfd045c7e7ee28cf356c5143c0d5863c97f718bcb3b75e3aefbdb8bee575f718f0c97f2aa539bae76ef53a6fb320feb98517e87eeb3812b83367ce98e15b0d5d7067ce9c79a2fb99224512ed13e3f7bdc721cfc6f1e70ee4586c250cdf8e110b43a8dfd5ce2b7bc731cf16dccafa75c3fc62197fd29cf9d3957366bd210bfa210bef6f6438a5f77d9fd7cdf87296ee399f6373eaa4967e39e7cf9bb54ee1bed2ba141e0bfa050cacce8b1d999d5e92eeb3667fc7e21d8b711611d8fe7ee7bee31e7fc7755dc7ed7dabac5e1a101983e118f02bb73deef9c1fcde831904c1bcb90d533239f3d5c1ff8d0ce77e3962ea7b5f529ea99da113dd9f0597dbd72ffcf6be6531e7ee7efbeefdb75324d15e0d79bcafdfd790c547bdbd6ffd7963b544dd30c2ed7f6fc75b756ec5b91f3ad15df3cb82cbefdf7fd5158f628280ff521cb2a0299ef453efb9efdfe7dd7dfe1af27c6fed4f9ef3083fb9a4fcdb7796dd54611f97de5461ffab11798e56ec951f7eafcd35e400f7db8e61d3013adb9eceb62d04ceb817ba331adbd7e82e07ee8cdb3580c6d9f675b653f5165ea0be7d1c86f0c32bb7f5c70c6c7b4e05748bffeed4fae3eaaa0b96124a78f97275d505abc6bfeffbbea3e05416db2787c7744c6fe5eb061aeffaa7f2bcb949da036f45a82b2aa722d41593db113200823f68dac1d4c15b968244d211a83660f159b301892f80cf1a53162ec204c172fb3cb68675040ed4155de601ab93e3844443948f1ca08499d94740a57c8620f89d0a033e210158b31809c09acdc901bc6f9900ac3a4295591174907e3e9358a1c1ebf729c5b168b547e479d32b1d829c0a9afaa6a8d5d4831e666ceae491cbfe3fc8f1b6eded7d3ba70aee62304786f3a5f876f75a03af5f6178990c33e1ed6328426fc758e0f4c826cbdf1ffc1e0b413effce15ddcfefa68ea7136eb0ebf29e16a7d6ca9aa5e2d4a74af563b15ad541ade2f56918b3aa341b8bf5926f6f47c0ef732ccea962ab2b36bcbb7c8de866a5f550695e6775bcf7f87c2ffc2a6dce1a10af53c5d745c7ab34afd2e6d7a0a943952c4efdaee6a82af0ea5125aa54654cfacb5eeeb8bce17cb3add400158bab240ab9caa832aa8c6aad3db3bb6a2dd6f48caeb41a1bcccfca7352ba3bc8619067a594524a69ed513fcf09862c686179473da0df42f33955d08d7c5559576593520a03e5f3d2b7f46b7d4d89303345b245114973ea66c0ce2916299ef42b95bccf2c18581d0d4c1cfb54685784ec97bccfa9ac0c4c15b688a949ab15e754412b8de3dd55d97ca2ed7c71076d9f36a1edcfd7e966f6d6a4e40f0a4e4d8654de20805a009c68ee11300efc6a1fefd65a3b67fdbed0d086f9791d97b9236a11e0535f7beb9212573497858aeeaad8269da38eb4a6e530e48926f9ace5e0c309ddf1596b1a13d57485f7d748344159426f7cd69a9a601b3e6b370cf1cc67cd094a4e931278fe3c6b075adf1b2e769d2e4114a1caf08b175f7cf1c5ae11dff8dcf8dcc060ad97bd367cfd61b9b5f0f83874417efef06fd96ff815af78c52b5e91dc793ffe2bbeabece1ebf35b71a748a2f5dfdf7409f7f1b6191f7f7e5dda8461f83dc6c5f0fb733124772f81ebcfa1f872bdf2ee6985a5cf0d171fdff0574b6cc5c41a1a180ca65ffc2cc2b42866fd224c8b592c818f1dc06ed5d137aeef37fcfe4540032270372902598e2f6a7cf16dc1eeee37ae7de373e373a34bb8792e3ec71d70dc01175f3feb8a98ab8c71dc5f1cc3fe3596e238b65cb017cbd7c34a9e97ab04576bfbdc94e073e373f373f4e354c207609090baf9000c125130a4ee69bef97dde7fb1ff6afe83fdf7fa50782860b0d7eee9ecc768becfab81795ecddbaf81c176ffa129fb51ac660b5974350088bdbe039b1ad793d955e2cf35e70be65274b570bdb4b86dc61d82ebf38b5aebefd328be85f73010b4208acde33dec3d58b67784d78f3f772a69c5b73686431244d893a58dfdefc956cbc6ee1060dfdadd87b74010d4a106ad4d00be458a47e172ddef2dec5d01d83c291ec5a7803d8aaf05977c7b02b7df02b6ad0f27ff87872250eff564d9ef7b3b45126d3fbb78bddd3daf1f770fcddb6f952f0b800dc3f2d877b0afcd8661790de5355f63f3e75c669b6dde3561c8a27b6bc5dc7d9e8b8f7f5f63df5d1cf6e48400483da80f83fdad2b6a1ef65d5d81e2610fd615340f7b3d41783d0cdcb0320cc30f79f8b9e6bc6df2dbf0903f7e0bf2c79ffce3b7c83f8ee56c9129bee66d29a6f89bb70dcf0ae819fe7abbf55491df82ef02792c087b2b73c576afb05b92d303d7dbd205dbfdc55deffa5c53de2a733d4d09967aaa70fdbdf7f3b7b87b4e157b4e153f3c0cbf85b8c3fdc36dd9bb6e9ffc5b76fb35ad9fe1b8536b4ad793a5ebc7d6e6a179fb34aeb7aebb6d785e6fbf05f686bbfeb5b57efb2df4b6fb55652eda853c3bd645b7fb8ff71efff257e616dfebb721ec674892246cf37cafffd3613876dd06c5dfb19ef75dbebb6bf10a40002f0a60c7729f61dfeee9def3baf74280d9846fc3e37af25bb8c83da70afd3fe193df227c920cb5ebfbb0a467f80c5b2df26febdb3c990cb70dcffdf05b106e3d55907be630773fbcdbe08f657e5849fe2dc5fce21e8b71db8cdfa2b5e754d17ad7fff071dbf08c1f7e8bf1c3ffe1b7cc613996aed286faf387367af3847ff76ec1b8f55491ff6e3d5584ffc367386e1b1ef1efb710c1dd6370ef67eeaeb7bbaea43e1eb81600b59c02fe27769f3c43edc3af5871097ea2057d5e2f2e64e1bd32f96326cbedb32eb1684317e393afcbabf5e77b5f2cfb4bec2f7e497193f7c3b2933f9fd2fbfaeffd0c048323bec0f7e28fa50f099a24c9327c31244b91fc9d2a72dcc9e7eedf6f7b7bf3df274b9fd77879f2aeb9af7124499718b2f048d103431eb2f4f4f83704bdfb0f2e2fc62ec29f378451bcb86cbd2ef36bab13d318bb421721dd5cc8e37d98247f8664d903fef7e48f657ff1d92a679569ad1f7f2c56f5eee2cf6f7dac1c7ffe8ef57985a50994836f49b21cc9529c618b71e6992758431ef25b3fc3f075393e2e5dbbfbccb2c5f89aa705b8c5ffc8ca71477ed8423f7ed98873057c2cacbe965c6587c15da47e6bc9177707b938ee0e83dbddc56ffd8efd7e1c9ffc58958d2f96ae707c3d7edf23beb867958d20e82a276f95dd070471adf7adfd6c1fe6d9afb0b77ff3d3bcb5bbbf7e862eec868d9f6f8945f169ece7dd7d4017e2df1fcb0ef271246d5cdf433ef8ae0d3e09da11fcafeca40bdce3e3b1b430c6b7dbc6f5d6c6f5e08b4f7edbc6b54598dc26fc9eef5d1f7eeffa6f770f826587613bf91b2896fd82bb47bf6bf7d090a52dfbdd3e20d720a711696cfefbe2ee35fbbeaefd0c83590b921684d9bfde5b0b92bb5f3bde6a6d77f7acf6abaddf7b1effecfa5b57c0def55d5d01721b97ebc998de1d7c91f7c9fbf6ef8e95e2b7caacefc3cad6f7d827bfb5ed936f4990dfedfde77dd3f3be0fe4e2dfb2c3e0f76e974b0cde9741ae03f3e7751c0b92b8b7de7a2b77bbb9e27ec795d8f2aeac1307bff7f1560a78c8a3f956439ecbb95957561a15a73e0e59dc5d4ba0b1b6b8d289f90dba6e7ae9baae86ad9238582c7df9ac393da94cf407a58ab1e2246584f7cf39f2d128bf659d322c036e9f6edcdeb010e575fe759a531d9d01c1bb6703af9f22040070ba3da6a9a27e68849e2ab0ade2452a8db010a65d8c316d73fc5404dc3eddeea65345e5f829fd689b137cc3107e78c56f4190d250b5c5c1324c3d75d75a4f1521932ebc807dfc9c9265a27eae1b9d32fbe266413c44d3ead96ab7de5d4aadc8ed9bafadf85e5a62a32132ad41d3b76f8734fd9f53c5b4d6dab0890d07ecac3ee530d47d420c2bd484e64c682e8b12baab32437f50ae64a858545c74eb8c12ba1b43c6f60099aaf22704cebd4fb20bf62867788c83a62f00fa1480396bbd566034497efa3e2c3a863268fab56610e478dd1d0594763c586b393e6b4e31d0a7db71b06a8a532d43412ce9329b4f02d1530affe18187a126ca0c3102658359bf4c4a9cc9eacc2b2a2ca9d28484872339d415b7c904e1f214c8784fadaeb0ffda5e667f2b3bde3e328edf5e27bb2f539535e5a0ad92056297ea0a92d36b03bc36401cdec16b047630ca550241295e1fa4599d9f1d3eae5838e2a2a4062eb30a0a91a0c3921ea28e5ca11065d6412328bc834800e07143103060806898753008dec125a626d0093402860c18333d5ff19ab164bce7acac5c252b0baf9f95accebc32c4a5061162a8502531ab79c98923567a20ddb8818959cf4c40f09e9d086043983040927890c18559cf355e73d6e1663d5b2ed972c93997bce7cbf4e5fa5fcdeafc0c4122091352419854113173c2fb27f553f483460e423821840e49ccfa37d584f78f8ad74fc2cb98282b22199c66fdab62c2fb67f5617d6182f88804f119f9867c4dcffbe7445571e8f72f89d7fe01b19ae2e34906930c42c43c31eb1ed612debd1144d1a26a1c7d890232eb1f4d09ef9f1014de3fa36fd6bf23221e15225e15af891785578f8ad75a35c2abf590f0fa1ecdeac0b480a10273038d2276cca478f7ca90f931450909ad880d66dd338ae2dd43fa711233d5448f15a0a48066dd53eade92c7a49367dd6bb23dc8d81e66aec2f0da652975544a554a56bc7ea764753e10c3d00eab281c969499d59fbd5be255c9081c08297383285a66bd63e2b5732aa207276a514d9ed821c8ac77355e79efa478eddd5417854cd7834c97d411754731de3b244bcba2599a90149515afdf392c2e0c158e0815ce0837846baae19d73aae290aa38256ec92a8b13e2f53b67c42b774464a34264abb235d9a2d0f0be51d536a75adfa478fd8d66757e928420e2ca8ea11882c0ccea2674822c4f84a961048796a659dffa86940224459c2829528647d2ac6f4abc6f4b1b13c7fbd6547b90a93dcc5c85e1156729612aa52a2525abf353e4830d8890310450971a6614e01d2f3de1610490da8f18ccfc9875cc3401deb19306a0a410664c0d4f2f9099755ce3154bf1fa1d4f91bce32864700f32380913e1a317ef18a9d2b26898d6b1901495550e3a78bf58bcde304a2e11254678edd769ea0e99ba4d5517a9ea2a552d592bcf87a82b4d48387834cdbac58a00ef36abf66bd4e2fd1ef5b0547a54e1958a2a35e1360aaf4cd6a956dfd2ac0e079ac2d080ca911aae8e6610e0dd26c1a2430a443352003364d6ad1108bc5ba410b0ac8478a981134e9c9875abf400deed926de232c8701966ea55185eab90d59253959a8ac2a5f25eab68a0f6984124f1ea814a548fb8d009b2562860cae8774a842bc008af4f6b56676e01631565c6142c4b9e661ff04ea5a8ac2816af340cafb34e87f0dac42b75e21fd0a50f2c0efd0fcc1574cae857cb3badc22b3da2463a42e480c20b3ea05003221d669dd256f03eb314304350104e8424d18264d6271677002781d561c0d0103b4431d3042dcaac8e5075ba58cc034db6d44007252a2c2fb306f0ea24c8cb1324559cfc8065563f565730c0064b99188a98c490d1325bc0c6eb7f4c74bf4696ca525d254e9f4bd2dd5271fadd6671fa36abae30e383172008c0ed635b65a9f295145c1cff8d0cffc41feb0057597103d8b9624a1192c3411e9a1ad1dd2a71fab88bee9646d3bd5671fa9d0ebad71aa77fa974af4e74af344e9f22d19dfaa03bade2f43f23fae3815ea68b71873b8ecb60e118ff0718cf2abb97a95f269e855bcbd419d17d5271fa1d0ffae3a2c318c2250d56f13b753365c4ed676f4b77676841470b3726d8d11b8b009b43125dfd9ed315504940217037393dc0c2edd7ec19d984ea8a3e3dd0fba229dda191a6965fa36e88a6e9d77b6fbd2ff2d01bef5f55d07d5a71dbbbbbb1d1545131de27c498d55a5b60e2f5733e42c18603f7f1e39fad87226d756ce84f303634a1349b678488b09ad15d43657680a51983ee1de740cf89a64c6e1455cd382fb33a2540a3667538ab999e20d079e9b43a9a2ce72ce3f28459e312e4c62cc638834ae9409ac5c849329334c37fcb1326d42cc6fc6186f70c36f47f38dddd5639c29ac5f0400c93232e124f68b3181ee460c68f8d037119b3b5c3e50993ca0b54b318d6ca6c5607f417a7deecc4fec3afb286aa66b7b45f66b6a49c091fd1d464bb41d3150f87eb83dc814f6badb5b6566b6d190a66def491befd5ced4f3a9b15cfb6b73724c1c5169230ab0c46e6e8ac56ec3138586596dfa9c2c5e75411bbd2fd43e2f52f161a9144a909026c0373b6fd2d85787d2c6475b6af9f69b8013a031acf9c397366c6fd0c3b5067dc3e21c66cdbd3e28c4a6068adb5d2244e5ff693f2265eab0eb98e96cf21b94aa08906cf338fd8c85a4a2d28b3351cae78fd3a43169562234be956e3f497f8fc0185307cfe400348159f3fa040037e8d2608d46aaaa04f2b120984eed76873b23af509233266fa319393d5117f80b2c4a866756a8d2685a7ac8e0d220a1424b4197d4c6575e6148d4675abacce17e689314dacac0ec5a2d166f43befbf1b8ab55f232aae77c755569c3e09accec51a3716a7210577a6bb63254edfa3bbe3258a24c5fb35e2f42fd375aaa28fad8cac4e6b4a852cb419fd8b846575a8d0e6749530d6ad599d398380931b6ab36d772c44bf5f238c6477c7b4bafbcdda6a384aa6db9c546e07fdceaa281f414ebe2089a186d95500bf4b96e0f7f20bb5440cbf36cceebdbbdb78ebb66ddbb6ed089023438e341d317204c99126f846f7dd3dfa3e1bdbd1e760ac8f6224e5c955121e5752d881a3058ee3b8325715679609d39531a363434537b0aa68341a8e89c5e7930b44584f3f8070909624cab84003902d4374e810ba4f2e98090aa27788d010a321484394862c0500491332316c53583b5359b49d2084bcef70f041c36a8a46a3154d2b3ea15c48b20273d4d84a641881a232909724077149708e0b02e26e50b352c1eaaa7015b4d124deeadc998ebab9c0b7ccb79cf16fc6703426161d5d86ae2e0f23311b0f9a0d8ee3381b4b16677615d82104840b423469821add50da82e078d9dffc1be9887a102511dbb66d734aaa38d3a973d231272026b015aabb64061ad45052e4860d53dbe17d357280040b8b101021ab17680ea64e8750ac88ed6e1b91100200414589a91b4ed4588a0187922942205010036048822161f49c1153fa75e3fb2cd1cdc1a9e2cc9ad414d59de550756f0d6ac464e4148099240a125e6234294ac5994955baa42c3a46f5615652c5995940baac213aab29f6378a56f86ec36297a58a33999cf04e97dad380f27184146dea870a4559422fab092afa1c7c0315138d461b9ab52548a8744cbfb4b6e10a0f4846e0d071a60a11e7a0304dbd128d46bb61e71391a329ce82c6c091103a80388281c80b1d22e21581da31cb34ed2045a94b15d2961b3bb66ddb3c281c61f8b6e50863a1728cb18131c6f85f18638c8500a938734893913b1382443686c6e98cddbf5d7ddd7bbbf954032b7e2f8dd77067d4d5f8be1c3e88703e6a463e6a44791e90e76d405aa4a00091b141a204a912244b90ab20616e92292aa09089bcf130caa954b2fe66bb51559fac94b95b8f2c281f522e6e8101da8c9428f23c3041bfc48911175ab04f555438221b903e22000cb1309563956834da0a768acfa72e49537ca776588802609c829258a1b2e50bb52163862763a807d0933913cabad124648408ea0612efab0e1a3a883acd41e940c20999b1411f04a0a01c7529b9221d1b9724281381410993991e3678c84185a288d8d1022786aae2cc2a2bac6d474cd6b67933baaeebbace46c98ca0dad4d15471e64c87912e082101942069092b288799235034688814a03cf1c18212f5c1cae2cc2e8918d8d00e29411b10514ab8909543cb41b3f8ac21a992c57b7c1f13d9c7f7713e9ed03c35c9b2037b099a5d8a3c6fa889ba0d0960a9c8063598aaa10b121cb3adc692238e5a107aa31ee3388e13e2f3494a88739c10dfa91d8e39f14d4181c6f7dd23a10f0428264bb0902300d544871098121a36a41e731b6744a3d16c701cc7711ee7388ee3a4f8ac6d4992e23bb5c34c8296c8d9fe860c132923334c154d39e24616029210aa301c61aee336900b908a33873419d976b820d9b6aeebbaae9362a3a887d1891fbe0c71a1e11a59e1291a8d3603b5e2f3a90c0dab8f869397291c8c0491b14451b844ac58000aaf8cb80d6fdbb66d58483cac265e14cf33810b2914d1524311962d94068d1a8eb82071b832d168341a6cdbb621f1f9240310be6d489c470d4a70a083c9d298210a542408172162c1082b3ca4e0d861092d5ecad019f70527442f2c1531a30895419d1852b29c47960a4c10dd2e451b96a128dc86374c0351c599474940bc190d433c6f83a2a1c95601a5902703781e71c76ddbb6d58c549c89a46ba2a3c4aa7c16d955c5e16a612acee4fd8359e33bd55b01ecbaaeeba6a470c31ee5c8b15816677641ba1b3c20dd1b44e2acdab66ddbe6930dab59c58f380e828ab04aaa00c9c191a52e4e54a1b4a316726818333b583474cc4bd0fcbe2217aa1343b187718ee3380e28a9e24c201d071aa2635c97a1a2022879a2a3589c873dcff3bcf73ccff33c2746156722754a7a29c654719c38559cb94591816f9b0f1764dfa1508d2ace44525ac23b5f9864413aa65f5a731c571403ddb69a141af0ed088fa21870962ce1575125898d20989078a274866f4f925841094cc056849d18aa1f400511c40bde21959be86d83b28109dfb6190650835a8f2540aa6c192a22074a56d061bdf07044de2b9dc3711cc711c9826744ae74184bf4e1008ac81822221b2ad265a2d1683f6a45e2f329074848fc6f90f86acc20d48113921ce0c00c9131403c0165bcd2c2cbfee69fc7061621483f9088326586c64442d19e747cdf07250388578409e873382fefd2af2129dabda1392e1b0fa3106c288204191f9a70497262e88711cfa3128d464b61d6631d35e2b356cb32e239766032a387a61a80be9401a7e018e2a08840dffef0161a9ae041fb21680832445b0a3dbe8f89ece3fb2060658b9921c61471030eb22e0e3eb82f28c000d12c5236723a8c31c6dc638c31c64ba62acea4eaaab4550cebf992ac8a337997718ecb09a55ce11b513ffc887a42872526908cb954474fc4a05b34b9a82f40469fb3b140f30304881e44486a5c258d1163c46d78f37edbb66ddb6634a8f2bc6ddb361b758a4cc9d456140119961cfd900407961c9a58f203d3b8212500412c51d28214500c4b2c11a669c78680a31f47f0b87203ab08269e8864b9524e2bbcec6ffec1ac40a3e306401ae0a2a50b0f514f2021b344d40d476e7c0a8dcb575494ab868ee997d63f33a668d972c316a11f3c8009d2013109d26fa750ae42d56472b442942d51636c808485441422f520f261c204114d946ca8c1ca17a41744241c8a66d8249e500842483b60c98e17a058c8a188235e529004161f62a8f84094d4850c57c404049516acaae83022ca1589c40f5716084a90952337f458c2e9052d5f9478729f68d08a3c6f0540322cb14456161dbc70894214c5c368cccf146afa559b3203d431fdd2ba0643a5209583966367474e7f53653a8c355ef637ff5b78f8e852e3fb54a0c2962546f4c0830a4492e021f4f148c146b76d3cb0f8e6f10d48063c43b214021a76f042840e23926c6095c4880e2a090e74bc289203092d3b66a8d1c4161e32e42e3530b7711cc7711cc7398ee3b82f6faa4c0a070815a5815ef6379eb7ff169912a44c0e2398642da105a9c6568b5205f4ff39970c8e1050542b7469e1398eeb20e77d37bbdb7122a4b057eaf255652ec2e410840c25709081c24191ac4d0a981bafb732b6ddfbdb7f7ff5360021b058b1f1e586171f665c16ce3d4dc9c139cb3915ca70ee86dbeebdfb65d0e4a11944335c2923e40c12503f8831527abec55cb8db9edb6fdbdfee5575ee6ceb806fdbb66da58f95223770c1515464b661e1db6ba02e7c1b9a6ddb86efbdf3e6b290e7cd8b30f7d65aeb9ebf5369d68b2aa359bbce5aebac77bbdbdd6ebd3349c764754537bb2a9b4dd021c8a921a6be2756530f6ea02f375f307528d5c8fbc40aa253160754214786f3a578868ee1349e81431172fb0bed814e9d1713a7be0aa5100a9ad582a943a3541cea83065743340b0572a2e29891d1a92aeb76e0ba7cabd0293a75844e71ddac6248a7341562aaf8ae383a45a7e81053e78515ce7da75b78d52faa8c063d8ae398265dd719f1beaf94bd97ff20a7e7d4cf84499f7a5e6743d7dd20997da8b4ea198b731c54cca191010400008316002028100888c482e1445213ed0314000d69a0585e4815ce629124066114032110c33008c300c400020c014831a60da32000f8766f5fc569e37ce1860b56be27b07018554a9ef36ad1b87b81902dd8f6c31186433e4ab5ad834cfc1d9d6d09cf5d60fa0cfcff8d9c2e1db5e032dd6ac732dd1673fe72b74333b4c49fdd04ab14fcbb065bd7d313e73ac9c0a8b6fb3efcf7c3f7f1a192a79e1ede62dd232cc002ea4c1b34faa935315a2a46dbd70c6776217288024a60d5ce3492e5afd5793c731bcbf368b4a71a71df7a94d0b68f4d8d56cf08d5e6291d05aef62ad45102c1e3448686402aefa37e6701dc002bebf260ef5cca1c71f6010e4e34284a0ba87a009f5ee2ac8a985b38a3f94ae14cc515e760efa898b62b56e92261dfc6f5b75b796c4989c77b88228b662bd5d8670168d1d465d0ebbaff4f04d35f85137b41e08ed67bdd58e373524c665792879578e83e57a7a086603515867b5d7ebb15f054ba8a6db1753e3de0155478c5f2a538a9abb215b4b7708ba50662c3ac20dbaf02abc7cb71fbaba3a6cc999eb33fed1374e8e91910722cd748440c6363860955c0dea69e6f9204b8bc8ca0072e878391138589b7b7de44d5321a8327a3000b17a70ef52e6b081781bed914ddddabc8992cd6c1157dbebfba2585c2b9a7eee29e840e2c5d3f031d845a21bb4930bff784f3d496111c5d19aef8f05f82c25b4fea79a1558f1d50077d1f1d131014d2cd25a4ff5177c65768b59e3b187884f2adac07606c1fc2f69d9d9cd2437e2fda1f44a29f0229b1d233b2fcee8408bbc7cd1b149d12249e601d9a4328ea809d2a917e5314bd5b924227597e2df10df63af4350c82969f6a0b89c2b107d13f0b910e8155097b1e4a9a71de3f3850a8372f3ae180152fab754af28f7b06decfe42aaee060efd5aef59e3e08a19f017ff1be01fa5d66788429544bcff8640d79efc1b10713fef60aab5eabe68402a6129bfe53063a78b228c0a8ba73023ce0930ba9d15de896828e15f4ba1b3dd7260a5791fde63eb54e24ba6e8f366556aef420a331ca300b5dfbad6a1562dd2b9e6ae543b3106deb13eedca9e8e4c4c2ae3d72623099e61a7879acec90b0b1c4602ed3258520783fb1848befb1d0fd8bdc5d9ca159b42709f71d4a1152fa448f78370c7b082c587d1428e70462f08aa029432c5fc0090cc0f7448c3fb9cb28b5c4c8056a12bdfde11746a281664e9b02ec55eb58916e00ef60bb91b79ea8dcc1fc494255949b33e8d0e19d9de975488c156571c65b4e84e570c0703a56cb7a6af1ad0ef3198ac21e15be6c36dd62927b470be64f1d5d8d6a47ee1387b01f4d2da0a4e11a40d62ee4d837aca32533e5df28cefca097df6052ef764c1e571b308cf37a030a75eac18ad651e39b583068a46265d1507889c77ff1cbedac98b1b9464e32186eb1cef04cd57eb86e37cdb4f5c187b0931832624eaa2d322811456a470c51573b77e2cf30cd7064fe03a76ca54dd133ea65c127310aaa0853f43f4a566c2f32517d11e88e63eab3164ae3ee365a3fb2435e70cf826e4d68619659a2804554914064292a230681979643f069916fce8ba6acdb82cbd60c934ed64e8b45390a5371d16f897705ea1bfff44d6839b8f3223404455150cdf3ade55707dae7d088754ce2c274c9594654918c5143f89450d1a3ec3a3d2a0bd46d340eae2cf49f680d71a55101b424a920eee23b07a1063477388d6f4aa46e72095bf93ead51a549675d078b18058876e5e5001765175630531a592c8069ad489a5474266c65967d0091355aea7b26f71d9fa19d3136944aa297665507095243171208f6e7d9ac436a506b90f9912f9f187ca5d041b7d9e8059cb4056d2c45bb5cb895a35835332cf71728e92a5daf50b25e4e7138db344e0ac187628f4d6caed0a2f9bff895af93df4e042d22c39a6d2805c24b194e786f1d2b819923121f828d83b4d7606548661793f4d9d4261b27c6f278814432b1f4c33b0929501040a3314f8d12500e82417c3abbd7d0cb01172eedcc3aa3bba4fe28e7495837cb684e2f7b44bf2bdc4823abd3ca32b0c29d4e5f3ca7045a9699e8c5d52c3ceb0489040f8138da2e1fad67c035de345dbba2335c4fcea9a395b62e095fe28e17e1785bee276d323ec46402849b74b52d58ed3b5a4b9afb8ce55349485102e482b1f0be9e972a9109700519198cffdcc9c434a1019479900b22c7112a22960dad2e6ecc3afb2568f991093987bf03e1e352c41d96bee8870836a5e4b67f0903cd6de8c01e4543d73294af13996fa782aa5b099ce7dec6e65ee4d9e5bb35a0730cf9a838de53371e0711dae30ce5d97882609cf8b43956128a43104cef711b47fdd332852e6e6744ff44177e5e2ac1b49c11804ba39247b3ce7f986cf6546ac87027c033ea128742c50a7b6ea88286fa84494982aea98cb5aa49ab63847f6356422ac22284ea42db37456976b41305efa520921625ed73588cb21aa0b1bbc2cde1326d8479a054e08d744b7d882d66f3f6c71649071197175c18900df60e7edc3fa460a453b629454c9a11c59d8a063a8c35c484d1cf1840c2d20658ee55c06851615183dabec5e09c7f0cf46e4919a873afa623dd59797db490dc6ec478a4940e00ac37c28fa9c46d07d6fba9acb5c6825c6ef7520bac313820d4976add565780e12095bcec0bd8c2bf73f5b4a104060e5d491f4f07caf17728a69332134183de20d818a4f4bb840e8d89a678ee23a49dea57cc35a8a5d2c3244e2e58a98a5e9a023097009e4bab922243199031658f76cdf28a886f55f91387f00fcfe9a9131d65c71b10ede54d6b44cf41fa486551886d36f5e07bb6351925d1319669914cc145e4e3fa84f607acb50ba3ac75525a818e560065e3b6a60727964c7ecbc3972ad25a6a2a83edeebaa4b250aa0028ef43cb03227280e7b00abeedad5630069ba25c4aba27658eb87702b8ede192007302eb2ef7e3edd04e08f97ecdee2e520b713d715162d7f8db93f612673eeb1c9102520e949da82d9721ddaf4653dfdbb531dfc7f2c228d4fe228d4091bfea6a2ca951a6d5362c66f9c1ccdcb860ed11d4f4084a4ac0a000663298cacccb3dfdf29fcdbabf4fa5fdccbac99719f12ca8a39608cbc30173d5cb0d149788d37b41641d3277a090ab0a88b965e26cbb1cbd5fb9e361b9255adf6ede5540199fa528168641684fb1ed381dcade5d3c3730918a8fbadf9f5e45e1dd9786d04d61bd6870d4cfe4d065283ceeea730e1085ea40668149e3943321332ec4a407621da1fa9549e2d59395bc3dd2160eb7345dca0738c41b88eafd99f7d9cac2a1b3830650452226d2572944aa038a8b62eaf4556c80ae9c89a72f246977e09b8efb82808ca368f8e677033e4f5a302e1571532e380eb1fde703674779b397740e7b840defd171191932ec0260ba318ef2bd0ff930007aee761f11676a54d497ca50f7eaa669d5a26e9fa7650a5ddcce88fe892efc5cdd0c0ed0a25289f7cf929f4cce6055cf21bebf2c6f8d50bef163106bf87518d1b061491816bd045489a5a09f8ac457863724b8b6b05452716683f0497db2f921ec487bb464528aa08638245e146cc18541c1507ae0495951235e178015d8186e9041cb278943fdcce4bba8db46413995113ea170089d871f04c3ee575622679e3d1cf4d39abbd902a3103b85a2833200e40f22067ca2c34f6ac990ae8dafe66ea891e06379065121df41df5f29abf94aa24a3d389140abd2a6fb1b0d7936710a0994422710e12169aaaa27b7a646b771eb623b5cd7d481253314ac9df68503bda77700426c1eccd368cc279576b53f9b890b05764cf718dc30ec474c092d062861e8a5c500b0fc3a98e4119a506dd965bf67712aa8e947505bbcf1e142c0f50c494f7f92e294fe76850b2a8e08b040afa141968d002055114175ab4d0af0372990dee1241ed2b43f74e5306f06a1397cea2e296ad34695d8a0c6bf615e99bad850bffe6e4658b856239e3c485c6435ac59e9fa466704cde5329ed11ec7de88072dfcabeda0565b96835054ba6d55d6ef95086cb9ecbb2ab9390b38837050d4af539da454087a4b79eed39e709de23fb92f7e37cf4dcf3a8188ad7ca0bca0355fdc937c57c41e6d89133ef86e735fe9bf40c060814e2b89c6386614e2eb7c7cbb08ee9bfafca2087af37d5167a9c55201102f930bcf888d3e74272bb94f54b3cb61e914c24ea708ef969bc024a90959a1b422ec8f207d6a930d710e5700f6da25409f9cc55e0432723c92c32efd970eb8b7a2440a7a6ebe958addb7f855130d812150e6a6a401815826086dbe0afb1e450995a2f85a78ba636ed7477b852f640d2887039f7aaf8e5534db96279f5c51817e6812d97b892fbc39aec7413f25437a48b99a25d777088216031e4ac63c55066854b8b0fe03ac95cc8817009bb88c869aac2957e6b3e732852b602c2d5bdc9ca12faab840b6a66f669e7ca85b2d6e5c4c5e53aa2b01009642a0b494e02c1a3543147b61bee608e729b8a74d4cc69d63bff4cf9ba606489b1fa9977dca6055e96020c1de2cb086f3a05652cf08b1391461592db95e6ebfd41cd5faee909edb89ecbb6798b09742abd319a93d62e6db7b2f953f1a35586564e6c63acddc341170511435e5795aa8cac8a0e463d06499400e9d38d06cb61e5a01cac6c57a6adc0e04116f780f063628c79c6f9f441bb321965ed8e07aec1f40e4c54a7418ce4ef4ed31a2618520045646b4f3263a8600096bb58c2faceeb8abf09820bd62bcfd514c6062d38a9d513257202558f745dcc8fd77c3f5ef244b8ec3a5b7034c226d5227f7f3881fff61dc1acafdb866b6259b3e956298116fdd72ceeae76154832fc987a10e4e96320deee18242680ce186d0d713b1a1d7e0a4d2208241c4873c516c8722af9ae0d42db350a258b2f150065a14c492b88b662313af20a01435ee398217ec038906de85d228d75d0c819755121edf3a4c86db8f05ad34e0ba58c5064d5c3d7a91a862b59b2a0786fe415fe120a5fa2f9ebef09c0d9dcd62a33c322c730c12a00aa5ff3fcd9f351168a8f6aacac6f2afefb79bc4b8e2aa875dae3ff90b91be94c5aaef5ab7ccd41aa971a35905aa525b7c0af0936ed9e5f379655006dc7f488c4bc4d7bde16d4a3e6999a4e350ceff08e63394442ca264e0e57aafc2d14f2c39a20e69c0c010e2599dfbf42f4c4f4507749301e8c03b2c6e9265cef932d1aed0b8ef0b94766f06e49a74faa12180718452c19edeb8af178481842a4abd709c87e6e4e1ba7506059f27ae998db27d8e114e4e33af1ead7c8a9bb8564af17afe70155539f942f4dfe04e091170b840b9df79c625194889f852b379a5f2be1763681017140845bea9547dce727b0223aa90e1a36d88831839a546ac73c5050ca1ad9c1590887d5d6f12a654164829eaa24a523e4221e835f2d13d4988a8f7432afaacaa3184dddaa7be09f4884acc9825d75482bbd1da79ec357619bbe779b5a4a3b940502b855a6033695942d223d3a7e68f8334c8133b8a3b3d384e1a3b0c3bb0aa9322914337d516e2ce568f7c3aea8750faa763141f094d7291543217a209202cc988ad17eef06407ea68d467aeb996c652a720cf1aa705691d53bdd50fef18b9864c992efa88510374bd05e3e6abd071372b8089b2ead0ca8916a0234db48f2ba174f42008ef744051dba441a7f403cfff5c9c53d7e20b3e10fc86a602796cdb3bf0a8f1e7590923251af79386ac30be5b730904b5900d2faa94c219d354a3d64abb20739ceab54edfb760040f7c4951e3bc430fe8af7c415703173eb46a63e61c69d38519b7957518ffc98248d31005db91090744b7458f99c469850b1a9e322784dd0b6a866fd7c141d8417f2d833759244196101d65d83ae8ec1fc1a905f692690196afc2fdd629e8a77e34e732e861bf4d9fde34e9cbae89d2c1835816568b3721a8afcb9dc1a47d631b8a0d583a208d01fe181e1d488b142d04d8859e9e9245307423bc572705fa539fc449ae631f9e25dbc0dca107e9d5349378b2ccf3acf21f2da63416d99d9f0c68205c542c7cbdbac37d49dbccc81a85e4397349184252d4c1efe636f79f163d15ce75d13c2b98890bb36d0f7a845a9dc6ffe6d36e5cf2befed34e5513964810b38524d7c1821ae33ae8f17244be22d1825a48b7d1669ecc758f998d7bdf96a6cb9496c02480308e6b04fe024289bb48cc629c83e81c4d69108f49f4ac3c9a71b13397dec1e4f44512fd4844b73a11fdfa4fb50be5900b6d49106b77f038164ef84653a19c5c0b74270d61f634a590510b1ba35852c070c3f111f9330d790edb2b06a2e67540f05ddc8aefff3d3b1291bd6e4118263e915045e9566f1ad31cc6bc8d6fab32e8a246c62cf433e4225cf6ccd10e1dad86a09bbd17bb1fe8dc67cbed8eb9085bc9e5690db52435c38c520563db2a8f1556ea63b5aceedc4ef50bc13649d509aaa697be153979657cec5409aa992055ecba8e31744ef0f6c78cb0ce9b721fbe167991434735457c61e437a664d451a868b7446114a988898e59615bb676569ecf389261f418944db42369ae9f2f89d1f002534feb09a527470f03d1b38aaae1af331c08f7a2008932d4c6a952ce51b2fff206585b76574f3a675b4e8808a9ed75ab593979fdc72f809a85dc1689f9e3cc55b065e0c584f7893cf7e0966ab96f833599d3aa6e0077919b7706cbefa95d7a0687234637ca4d4a4dde887b21e78fd417c1af858a7a8c444513f0426cc780c5160d5cb3792453afde6a5619547ca63c93155f8db5e8a38adca2f551c2d499005a5606d6504656d2484c26681c9aab203e4773216b4d53491d691d2cdd3ecc76dd5c085e4a7f261eef816d12ae07d41e24342168618242e824f08ae81addfade4cdef2a5d71c325235101aae34b5075ed826466e2e7bf3b2af8b7cf79be3b1c0999418b61c7086fe11ecb0aa80f3b3224a88745f9a00ef9e7509a5506d9e9d2d859798a78405112fc50d1b841a490edbb9bb9a9a0a6d223d269e55a60adea2bfc27d4eb6da0ed2c9262cae5cfe5f08e224e418b64b4b3ecf4a034729b3aa11abd544f2e36195fdc379d7c561219277b7611a7a2cdc764dd55f4f763dd1cf8efdfa2c84b8c5a730b8332525c05e2e48a1eca8fba0f56e9fa0bad5132d3e17e703b966fd96b4f960cbc72a9720e698c355a884f8ff169d5fe3e22aada50e32630eacb9caf835e7801e165927bc8097e220171ec58302066408dc13167242b75b8632a1bef3dc7dd122e7e320e6c616587eeebf618c82f65f52279aa69c7c7cf23e2a425f865dccf5178b03df3ed47e2682590fbabc161952690c74ed71cdc94dcf53b81e34d111ed4285834592d0e81e0620cb4f698d579279a23f36e9b85df581a142b3e5906d3d1428401e0de0275af7c14417e2cd573f9f9bd26421a04b80aca55dcdee8bfff98d7c8475730c71913e0c2eb8027e48b1917a4b9662b2881d4e35285587f48de268555a8594a016304d308b881cffeb12eae7527938223144c88d9b785f2089c78b6d1d9c0c47b261262903f9ae5b5814268647846e693d8a2398b0921eef46a9ac303f87121f47b5a1dd088f717cdddfb84427e9b147239b83bf7a470c7ae3b9fcbc58edc15d3295ad18ec9ee48d14a4dde89e85b04b3696f7ee1d63934ec58dbcd392a80cd233bd9c85b47bf3dafd2cc86a8bc040f809e5ee2cbdba454eb563d88679d9d7c6d361a9c61af9d3437510e93468cccdf28164f531a976ee6d7582c69e52b0144dad6cd7472ccbdb13ef9eb6b450485ff417af1a86aa28b4a30cc2ade4daba49e4b9360c37c9c72b99bf86562e94ffae9fffbc36413e822255a34c6253cc3838d57d95db9ef5076e8ca94719e4c4b7a05c94d7b15d347046a02452769125ba9e4b6d170a4f4b22dbfa3ed7faa0806f88b65cebb304bb90d07892ded64c8601afff6fd0f48ffb265c59dff46ae16d8a250b4c3b93842e3e3706bb752aa209315b95325b1bdfd5d67d33921c43d0e5bb73c972c5432a095c80597fb4d0b84a7c50460f0fb0f6da38a3c502eea0b8a18838074d477b2996f8f3137437179e76d422cd97f1007a61e37353ae4db253635098e5eae471260f910b9acb4a16c2177ed129fbbfae728f78665b7053b70bd90c8cc9658b65203bad064f3af22c05df1a4853ad2b1c8d1949383e47d340dba3b2fa68e5f83834638d2b14ae286daa4ba3dbcbb41c646c4ecbb563a33fee1a35d1ff388809121bd1172fe3dc908707c3726eb883c388941191bc4b990b4ae5fb186c21dd86a8f03af7a3a9e766cd14ce9443985f70b682f949ccb85c757aceb3a799874ae98709326cc1354af6c7237f6ae51b34a28e21429530b7aa67aac7eae04d490bae8bd5dec07c304fda25d2d57998907df870f2fd9e29580f8eb22a8787bc7208f3218cf62a0d08c3fb1d1647230b5657ccb500f83936ab35dd492fb875d320c8dfc6a5c6d8d910fbfd72251142164841e257dceffce8dda3063e398d405bd1e808b1ab8e342011515bbf63854f9c3078ea3f8e8428c032f7f5c3e196ff0b0a140de18bccd31c9c9a0c76b635ccc5657010119a5cbf50ddd5cab972242587d1e7ea40743cf4b0617e1db4b148f5910469966ac5ba29a98923c0c9e4ccf502e3bae6b985d1eca64a6e3fbb21c71563790006f2c95922d698a006aa0197ed3b2a7d0606aa475838adb521d56c873354639b0116581e5a1691bd4bbf1dadb2befd27940fc0b285e5e642af43dfc265cc27c8032a3675c758a498e9e1e0c005b8ebcac27171da77190e019791134dc84fe513d9012f10d814198d44c6204d06474138772841082f0b45282a678e1ed794832a18ca1b241b9dd2daa00510557e13831b44f5cef359679605f16e84bab66fa16e3cc6b4da31dc385766494c246e10208f7a538249f68776a207b1c7a0aeac52794ef2daa31aac14db56890851af53e935014bf843d0c172f9ede4f2e23947c222c9d3c9d7b0c4652b46eb231eb4c8b34241c3b1a1e80612a5634e7fe6033e0088204ba2c4875290758a34a529b5d9ddf519cd8518648c379300e868304810b6db4d3a6d4644180c3c47e941352e9c0fc9a227abd78e681411af88df499b3e3c954d301aa7f247bba24e6d283019b025e503a306d487b13a9e5f41f550d89a5b616a25f3f127400cd50034933adeb281a91b62fb3220da33ee5466e54c5f94b1457ebb1fffec7de951f46021f9412ec7b184e8de0a1f2ec961b6103fce66d848537fab5fd023c37786573d942d337c6124051d43d8753106369e03bf57add8c5a8272464a0f05253be3c735a444c0719c97fbb30d238ac536b212156e0af069cee49a27603205c5f55fc419aa6e7fb592f309d9d3fd583cbbd0c0686e4e9935e4c1a9fb14dcb1b1604e5ab681bc05c8737c30b5160a0562eead05f32e4ef3cced9d32dc2e665c9969b52a339b445afe037b228e2b20ccea21133e0e44926b52445d83fabea2e2afea86695d23f4a37a095d237be062801ba1d29e1e2832c38654112db75cf2a0bac99d54c75f3ce7a1da3fae907e92f2d76676f53defc0b06a853af642371c43f30700d99522450ec01f163ba088045ede3496884b0280adfe853df0b425c64b40a3dfa74c1bb02bc4238b8be8f531e93d005395fecf0980bd189854faad5df8f709945ad0d96aef0737bcc560b5c807791df508a2fb035c684218a1a87b3a8b05e779e993fc459dd875581339c763556e032ec43df012ae65fe6820c68adc9cb13fd11fce1cd75374667deaf6281f02b088fc3d2310bcbd3e156c262ed6e5dc2348ec83fcda0018ef6c6fb13deabf309e83931b7cd1271a8b706ab3040d5c29df1abc691ce3d62b80a2752f4b57f18a33a7d49646ba9e4744ace2d1ff61cfffc5b3c2cdb9afd3609e21085cb97539aa3a9b20e25c17c644b759a1780bc2da320409abb197e35f1d3473ede842fa19eefd2ee135ae4702b75ec7730b85f209583884df6a82efe1b3f5f5093de809d36ac7a596b49d5335ffa0804efebbb36eba5decb0537191edd801cc329d00e0cb4a2f2403df1a8862229e6b89d612e0a02b3ab922c7909014b5e4e49e3057eef8fe34d8747c89db93b384f53d0b96923a2781fca95f3ccc28fe5914b13b4a352676a418267a43300fb0cd40fb421b89789a9caf20a1a8b51abf691b4463d57cde2e5e354e02c6e85b08e709797f7958423bdef071fcc1b0b9b19b43bb07fb86e278043a45ad0d087da47bd1064fd6242cfe3811e21166481eddb582538cadbbdb30db61ec21c5bd84183674a5eb20945a0f298af232bc7f1be0fc2c7c8296977b2ae383d620fd5bfc13e72655a92d44ce9448ad3035727da8398963e139038d48ae55362c3e94e01f6c6b45b2628f2e1aa3dd8941d748b73ec5e8fd2a40256d0504e5a9c05eb27665ad7b45161c5f065388360c6e22ce82b937e0ac5f17e6c1ce8474689c80574834c53aa9d8910233b4c838531a23ef40334390fac3a19352b8a9265791c46caa3e48ccc03611ec8e75869a4a3e945dd1dcd583efa0348de1463153cf964154a7b3763a44e8dd821fb2aa1e0ee404b650c376460d0531502b728c9412cd4d5a08faa8e80c2ce47683d0bc039d1d364ba74a62a51a46f39fefbb7e501945af109e425a97407254ff2b81d33a7896285a78e93a1ac288bad7990b9e817dff24f3e4278bbe49179ee96acdc1ac9c2e5eb676b7cedd738ef7d3a108880744b973fee3cdde4a891938595e530fb41048b636a34dca556b91082f7e1a4cf9f77ae828e131cb69bb4d626eb40499b6d2eb598f0375e1bd43e3fca521464bda743da5261c15bb1ecc9701d1d0710daeccc1fcf63c1ea32453ab4b7c8cba526045da8122a318a2677a9ee5d355ead826bb6cae3328706e6df711fb81bee9dbbcc858352d14b2b89ded88f9dea0e55a6980021802c5153ca8227c051a745955194071229f802c28d5b02600653f9bd8a3a55f992ae98913a0fcc56fd7e3c4ceb338b4b59c16a5649ed9a9aebe523fe0b949b02c67b8f6161e92853ba3c106d0c48e1d07c2c567129213b1790a2eec792538bab8a59abd96a912673f568c4903736663c6c79de4fe14d620c3d7e8dc9984174e7212b312c90f30e6ce09cb7d16bed888a6683d65b885b96a62eb7d9c4baa2d28dec9f2953d8b9d4183b02085c3a0ee6196e6bab1224c76328828bcdd2ea5789f0de683721f8030ac25ccfb9a7476368731cc58eac3ebc08dc4d601a0334fc69d2f9e11a155454314d389ead58986d4d8ad5ec7f369d14975363ff1b2f58cd144daae9fc0d6e3e686859960a0fac10031340c68cd78349b77f628d23faec5881a97cc61cf9966b56eb17fdf4ba1909e79120f9bf2ad8542edabf7502ddfef63a63595ce0252026301b0082de2f7279de62eeabea8ec8e4171feada6d5cfd570cf6c8b3366ca096bc9dc87db76dbb5a40497c58b8583c70df0ff74ddcc576200f3fd003f6dbc70e3d0a6888ce3ae36455051ef08c068935c056875f657c20b0529084731a76ea97e8f813abaa1a75766f1405b65a058fa68fca3f1175eed13c2ba80cb370cdf98179519b340444c22ef125f2ea1e60bb361c7ad0ecddcb0d7362056a600247bdab4fba653241857e7974f76969d0d1a335a462fd5f7097a03392a9d80cab01069c2a5a01a43ce4a10af372f583c4c4e8e1ccd005953924aaa5d54b5265290ded2c551ef4321b75fca3d20c537364584cd29f1a54d02bd614baf8caa90d3911ee633cb177e8f2e0dc3e82798013c57fed7793a0674294b56d1867b142c5130ca7bf49541cd02202e6b4027be1c4c51d9eba4b8833555b6b71f2a6b69a0f79eab6dc8800d9420eaadf884ba26ecd7aaf210f1fe2fa8d9ab26f63dad2f6e3938838b37e21c88adda57ee288de3bd7cccbcadf3f0912cf7b6a38c2bc6c83d0e1c0c392dd0d2619e0bc1ff91d2d73846023a0ccb8ae6c567b2b7df107205834935bc7a9632c84b331965f54573d6dbc9f51415ca65ac1fe198ea2e1ad91ec5214b4cba92997bfed4b045783a6acd9bb19b94fa8b75d5b5b8979886e775a2076a6176985c2fb87b2c1d94cb955ba1954b47a78b55dc9fed8ed05ec519e972b5daf77c7f9c56f37d2e8957c50dbf87bc31cc26a9d83d3b3d443b66c68cbcad9ef1fbaa365e8f4c472843e6038fa2b244251a78203dba834a71a37188815cc54cb92be5f59a3e21a89dcff42855ae977cfc16a9c7624e0d3fc3c90e83efbac792aec796c217d2395a2a9af94ab31e8cb9d18d4bd2eb4207c9d38c43dbf863c87d5d6d64e40b51aef8b21ae705c8c9b08898aa230b42c252a815b03a46ca8851a063ea6182a1a3cfefd9a814b76588c253a288439c711995326a0e5c8fd5a532e25551b12781ef5076ac342acc33da3f7fa062fd513034982b7be6cb0b047c3551451e76b903a9a207544de271ed929cff3fef25373d41b24500d19a7ad925e0bbced14486e886aa92e6841e040846cf973ccbcb3a5e787b8cf62c6d20f592a21dddd56c12020dad7c9c30fe4778519c4cb52edc38ebbc39df2d801370e67bd617af8bdc91a4fca0deb8a873ebb6ddff7cc299575d3b17c771b101870cbcf691cf5dc08ffc09ddc049752ff83159eeecef0e6bd300b94a1f4beeb2c9cbdfb8a7517aace21146258342a5b03ab1399eae0adea8b5ec417b00540d73ee34af58db9af08779d5f2d6383ffb5ba3c0580af9cb7f9dc8ed5eaa2e4a15dde714be24350c685d255fc37af13a8e0724edd8c800a4ac3877863de63096f7528dd46446cc03c740e4d00b5f0a4dbe0a352095055d63955ebefa6cf242a3c83f55ce4379b5b6eec3c156a39b2aed09954f20ecb18cd778587b87d2750b2d96751091c291c5946935b3e284a5c7539fdf3a6b6e35bdaf61b979ef4e1e2feb5cf6247c196cb763717f3feea70d23ca68233e586ac7ec31d45d80a9370683c27295c14692ccc8344d4941c39e3e28888d66b0ae0bf2e546c9631d67b96c84ab95848097b671c11050ebecdcde27bd7d186f7039c7ecb1f1b53ee7e127d5b81ccc3a399ed973094d76599250e88980172b36863282642541c0a5a8eb060b08edc92a7ad12173033caea6b03e2fd77daf075a3dfd50e6eab32e18e5b54a2669502cf7d6806a450d26bfb45c23b77bd69b64aaa559c12dc5a33de8a08c6461d9a767464afa2b1cf70a12567ec7db98b8390c6d16ca4ed23fc6a18c74c4816da1d0901f9b112fe6bad093056d232636ca94dc6d6ed18c4da385c9813801cfd6342408805640326c99b7acaaee5387533eb79c78c023eda4e59c39a281dc326f86e2a3e9158c625d67a97da3f83606568d40f205735baa519a5c82040b0dde0da147fe0e933f78c93367e5d4f12144fd5a8dbb1703f11d2ba5ca330edc4ae95f650cfd6e83e3160e58c571e8c54bc6dbc7923f36e4c5ab0098cbc6c426c7752dcf2690b356d69b9249e64eeb8dc49b1d630798d82d73c7304390b7443d4ee88ceb41216cc88a28a9b7dbd98752d02c1be8cd9c55503ef240575f7c945cbdd72880a0a3c258b7c09700a580b1658236e63bd510c7988e1d0d77b343e4e6a71125cf234f9a69504817886f0189faded90df981ab2a660cfa0046f52710bec352176eec2e4c32a616ef6d0a03d2bd84c87826a213aef697ce4a787d9e435cc927759fa2a395347161fd7f215744e6ccf11adb392af499291d5a27514e2d26d1414305a9b69c89925b5eca6da3c47a49e9f4dc52227173879ec55af3834cd2944b2e329d8714c0c1d015049f1efac3f03dac6dbdd8f5128520562e278c8be7d97e3473c35f30375ada3c80c225a089a7923de0eca1a32803fef099dabca4bc534df8288b7fd0bcfac6a2f867598b9bc60d4d8a650c56041d810dea828cba9e738d05163313fd6a3d3ad54c868009bfe73ce565283821e20bf5cd7d5174471e9e663f184c7460e253f43e9b02e98a14c8802f21d198c789aaff95735558b580c7c0eca2910c8e7f794e8f6a400bcc5954161756799be18b7556989979c0437e412b42d0a1cd5eccea2689a46ee8cab46e3b6ba220ae9ed1e1a5f4dbe267283160d01df75c7a96798c807a610157e07e3b38a880534939e7f846245089bc916c1e28951f365e028562e397e24ea307de1f5f8e3d337da4280f3d99ba846bf4733e3692d0c826ffdaa4c09eede6be094269c73e5ddb39930b372952d7c4657e61e0a094c7cf86885d8decdd39f18936539d66e326fc6341eb6bd99d0f30c0f06088f87cfd903953b0e0233d4b9ed1dd0d2ccf341fcea5b7fef9a868d43a34b561e1868f7f44b8804e72009bee806890ab170effab69f14ec39df0b4d76c583511edb2718d3e295b517c6eba6ea63516bbb6540a3fe84f32494306e83660f792dc0cf50abef1bedc96cb0cb871dff81e33bad40f8e06938851575fcf7f808013a8fb48614bc6fc9d83cde719db3d99d5e161130c3362c20cc3c4178caa973e4d53c9710a99811163a769362a9b93506d87de91a3c9541921cf38e2bfbb42c71739103d470fcefae45d87aefec37a3504faf926ce2c5ef4ed30de23034b107a5af8cbe6e3dd5893a599d4c79b4d7210c9a1babd92fc0e93834aa6a5f17bcdc032fe9640dda001b884427be17389081fea34fa64a1ba7bf36d291cfe0aad1b55f5cdfcb005c275780fa211b2e982a995d2eb28beb60e2e72697f6aaf77c6e7a26a27e72f1fc7cc5eec8e4def776aafac7213520aeaa1c251b640cd2466573b280365e84cc52e81f6cca33e4b55564ee2d86fc7490ee5f217fbcc4a33883e49194673a8a70daacb2161f71161f1a3e826e58b7c6eeaea0ba58a519e1cea495182f105e8cd905d42482027565edb29065c46682191122cc2057993831bc5fb51e61704d907d3651e39887478545768b42b99f8fa58c5cdb82156ff279a14de5f2a879913ab99988ab7b54cc788cdeb83d6fb4099acb6c8d3b1b0bb4471b281fa21bc7899d0d6165c3a79a26246fd4b9bb7bca094dbb0ac789ca2073ddb57d53e2fedf94186a9217e391a9f334c24d1fdb94e3eb32e1e0295fecbd2bb5dc8b2c21e348b8271672a980eb4ac2f1b2977ee14aa0cc4ec8b260d05ac57e65552e37e79834d6a44e6db473162868029e42e552a4d04026269f262fe4328ebb1708bb7a812f9d2a66577707d43037c1d14e037e969e14934a36340d6c1b84519366793e125e85af4d97ee87ac10b375c3ecaddcd6e520ed764cc57c388322dcd6bbe4e61b697f274037d1e802a6707e3936fa48e01de6b110eeca6791680324c409808ca9d0856c094419facb73bb9029cfe1753f34c1c79557afb5929635a0fd4b2e3f6d216ac302c3d69f11afd530cd54e967dc62190a17ddc59d1f328860720d525331f263be4871cbab01aab96994e97237c81ad2b0211314f606c969a8a5584377c81f6aa9dcf815cb295b25082df9757dc8a6c700e0ea84658b824ca999fca94ec39f2c7096f22368ad625372fb6b5752ef6b9550aa52734b3d54b82ec8b5ed29f06b43d61d7330e2e83a0f3a8781ee68f1a8128f5a754fb86a9ebab9e333cadd01bb4288aa148ffe81aa58eb64cb4e9ad2b113bac3f7728a5af616a5075377b0849c4f8b713b1d1b5fce50a1a091baa71cc8c91cd6eac257c724dc79534e21d884f5f72a67088281b7acdb39c31676904390b20eda36f35543e93c8c6b24240b78e25cace0f91ed9f5b925a69d01a4bf7f0bb75a7107a927f54e2cb7b701698d639217bc40e20d23c8ffa27123ab493ceac89c6e242588e71bb520541efbf6b17d49ee68fd02415ff040348f562eb576c5cf94dd8951d48e772dbb9c86c8bed3301f38f99a4f311414a30b8eee734cfe1898337ae09976cea01ffafd661084f996d7368ec9288e171c1c4e1d2c317532170440eac04a8ce6d766b8f7cbcdf2364345f39b00ddb86410ced4b4821dec75a451ceedc09d96c95505b46e1984e09a210980ad6a2d083998beaf32c4da6f39acd3ecc555fe2ab23a604631a54e068519611b9f3423132b83cef4e890cc920b3313c29961b0eb7727442ae0af7db238f42b082b1d1565738024e8aee02a140f66c97488923920fa2fbcb49f7c69b61a71e1b18e715ee683e50ec3d9749de75ec452423aabf22f287cb1413c7c88328d781b32105238c65d16b021505027f818857046a2a4dd330531c43c3d653216002b6d30fce668ac16c217f05968d6d016a8a58ad2cb985da744b151167af2773413c5890c538cb948a29fbdcc61450428b9c90fbb784686022a76bf30b62ee129ff8b370d49856a24da48c0bc547179d93705292e413a49f41bda2292913c3a7d0a413d88a6f0029b396b66eb20c5ed0f125699a2e0bad4c6312ba51760ded4cc06672079ea47b4b9304245d527aeb5345d74d92a44ac0331348746c29200e011cba5ec2d1f7e07c4ea7dc15e8bd3f4605bcc93f808d91fec790c982f6089877fd467654bac36e0165c227aa8a6046e2f210f56ab83858949f830da32736b62eacdadd3383100c17514edc4b88f5b675d25beae47b1386266b17ee495e8f63433facaff551954093c7701b98f688628b65d28a166856f8c2f80e0b782f0312188747d787c157854dd195e6a77cf659a1b3b87ee258e68ae464c4fd23677167c65b555c0977978d8da283d02ad10d2b1dcb6ce00e3b01c05d8a6020763a427a2f6e144049a84a8093d698d0c6a2fac9af095d2282f0fb15032ebd328958a1948afe896c43b239312b34c41cb0a9a5e42532fe6133d0a6ff71cb8ee4f48432f6cfd7c8499ce30781f1d071f9859b760bfc23509519c00a978e7f00851cf36cc0e8105166769f65f367c85b33f2af6f3897126d612abc3c757946870a557468c65fcde9e3d5f01455f8dea844f4ca275b2f041f54c19d3db3e2a2b7eaaf7aa480e6220f85b58c49f3383b922745420e01ff708f4ff0e3c645fc16234db3f2943ca3048b602749dac035cabedd1609ccc228077d03afdae580f6fc69b793bc124ea95da9453c1a2a903dc86c1103027a3c0cf2d9e41f354980c8b9b38f039cebd11481cc9c883533668791407a57f0170fa717f6034244a9adfbfcf09c2ff2353f0264700aba1e9567238ced94e93a110ca62fa27c95fec0d6d40f6bcf94277ca55c362441848f2585de3ba89403f594fe391ac3a5d07521b8ddb72c33afab68d2b02f4dd284563b517b2c6c08b142ba452f8633e445ac5497305a9b19d8d9e4c3ada07092a883c0cab9366bf9543f1a2329d51da799f30ca454e824e0b4bf9a023262b7b38c8af1c00d5ebb6f470707e825a0eab740848705bb880d8c0e66c4bf7de132213d1b8d0df13f735c119b6897313d6a1b546ac79949c4cc1b17a3fb713954ec6ed7d5358fcd10922cf280edf7045126d76c6aad513aa43a031308514333a7c3ef897c22ae6b6b3f0a46599d3d46149f9f7c10ce5971ab7cf17302517107baa8fa86994ef6fc600ef477b6a57b9ceaaa59c4e2b96d2b81b0de22ee6f75499207dd5d52ca08735e3acb8d23a3fd993bd764c4ade3405131cd65f15a7f565729de2925d59cad152cecd41c2e287dcba3ac57b70e0ec2694d9cf36559412bca1cba2044e5643316ad263883db80d454496358e23c10bd8b7fc89526ead48fa23f45f8f7137f623316e8398ae7c1066e838a00689829eacca95c8eea6f1d1dc441baae8d3a0ec85c7966a76969ae8438dd7c07490a4d1b2cf9b49a840a6039e9e6f14eab94da5a9298d51680eb508520000a3884a4a0c582b6281c24394c3fa003b2733a78ddb1170da9b6cdc9855c84eec23ee0d188424064d8d71afc033b9ba3a3d73d8ce27fb14cb08c59d094a0749cdf48f87cc53ab0c808d0751a238fbe4f6ade19106144d72e6c9a62ef965b82705051b97a631c08fa563cbb31091d0522c89be2178406c671824e035182db0ff3eb9c2ad135e6aa3c3bb2c97b2f85cf17ef0f064909cedc25fb4b20afac34a754ebd42772099b0c7339da47e0c9b4d16154bcd952dd039072377c3ca7ae2167f1357d0f1281696035bafdfaae6625e7ae7941e5bb65ed4db52cdbe7fb8938750ac6d79013e0355ffebe7b7f360f84b4b023db828fedf7f92aa4cc5727569f6d685c6ec0f60c3bff502d129ae20cdd82fd6897461bfcc36cd1ee0e0341973714851da96207f9889a8d211badb9481e9a6dfa3efb904b566d74fc7db4e109cb545a8382c9e9689e4a5b834f4e6369f63f2ab941b4d8aeb764793e76cec416800570b86637f52fbc3484d1690e5ea7df1d8d86b4949b6f03a4466e17ded5c65cd58bc45e87b08ebf74a8f635283ae6f450c99d9bb21fe0b7722d9a43d62514505e51e6f64c86e559d89d7fa55fdb1a57456b9a859c658f381e1760408f10086977fc7878793209234a2bfa2ea5f932c7781dceecaa048dd3f28dfe5418c187116b25efa73b92294160b5ebc973a47c448438fa56639a41b0c8526fd0fe73035703f369f2e4338922566e547922a7965db4fd5ba3c684a1c08716aa61cd82d940de11263ebf33b080bc47ed113476c3301e4b7d18d9bde29136b0c64e9b9b942d06d9d4ab6f71deb9279fffa3ac694fc1091e12d25b512033e285d14a9e29dd045d740cb5a06bb0902bc9241bee56a79646380865e7d4525bb7816b0b31929cd339ac4dfba6e887cc06e2b3c724be8317099aa17e3132d3bf53c39c95370d602fc9596eb0a354491e589517dc8358756d3fa7fb5fe73f60896171c1b4c8155a359d8423e3a19320ab8e50c25cc190510c2752cc27f180508deabb02e79b99216605a933a3281f91a316cddb4688519d0da379dd4fddfcb40908b0fd38a860d60a6ed8066dc7cf46e4034a2d2944d158daf5be9d0bef09b05f0ba0d36ca7779fd5bc402fc7b7f6abf057b8405f93c455324109ea4751b928075fd472381c7a99883b7547e4625c0ca7a8921758000b3075c8417fe4b76e4516566a9d1cc40780dbb28cc9438bde8526c8f3e25e337a3f6a58957e5b99c4fd66ece30937ca9612af30c8873b667d6b570246f0b23f796d96d9076972745296188805a0cda098397b2f1c137efc0a45426963ba1a9b484d0ca44d4f696a65e5df7814480fe9704c0944d224481b305bb0cdc40fb9ce61bcb649e5517c5b30e9a86ed0c604353914ef1aae4577998b53a97aad748e7d49e2ed895cf0607452a671ba40bac941bb82e19e237086262cdc6e96097bd586586e755fa3f2b205d6791e4c180aef12ab7f59a088b520101e61fa81871314b47a511bdec1fd17d048c8084a8974b5fbae1d2e450d66e2f9613cc73c938bfdfb0c939ad9193606c64921697bb06efc5a7dc0d22f8c33db15508eff12556f6f3430c626ce9c3d4db410112171d51e47fdbfbc886cd7e8b7c93d7df5eff61a22b124e9bf3540d976e859d344dacbc12a8cce1e4fed599bc710fffdf97590bb1ee0594be5beab33f35d97f933a5f0c674f847128dbe41f23bf83b14b9bcdd832e2aa3ffa130baf1666e215b2843ff266a34c4e225c4b6f788d5915dbb3d6df7e8515f561f4683bbe27d216a967bdd1182a8b9aae5f9c459f8ea4dbff14c1c0065648a58247503965e69877738e4294130bf4f01df0e61b496348dbf4a50030179646ca46c3386d80cd9a3ec76d64f2186afa27c921733c3187954fd510a821694fbf27de4fc12545002fecf7f24b5e82bc37b75857c82905c80e5e9b1a98f77f6fd5e6fb3362ad28ab93d999e88cb8b2a57ca4403e56db04f4b3624ee15a698ed605d87eaca0408aef075a8731615a6e6260592eee2d8551f6f84cc67c8b1e1e8582cfd1f87a74ea3e9a53492fad84e153d80fb0755054856515b7f6d0ddb3b382688fd8861d86e11dd1b1032844f702ec28f47db1fb6059a2c14e96c682f1e2cb0b5f1b1f857182765e393107e24fd63f0ede65eb662dc46fd4e79f3cef45ffde623d136e3087fefaf52ad29b78a339eaa7bf57919e84ba21c520b83d7c3316b6bfaf44830a261230685c4a0717c816f964b79267231fb34a01d41603da6b3e7a5c4090b24a072d36e1e5a613849c042202b4a591d4cd90add1829704d8ab240bd0fbf6c2083f82235eb0896871b6e6d71e5fcc0bf44f8c5d96e4049bd6bfe01ea305478cbcf4cf636784f7315f8488a811b237d97b93bda59432a594023f0867075c072d1ee2674ea2d5abf500e78a19f26b69b2b8cd91cf91b157105b60aba605b62e1974e1b6949a159f6fc456ab85c2555b60ab0605bf5a60ebea2672544417ee10ce08bd936ff02fa980903d7b336bf4e92f8fac8dbfecf93e80a2933d3e51c6a90328eaf8e98d8459e55f6e238fec8cbf92ea3b54973f7c6df9a416a0f6cb2ffc21a54449e9a5c58ba98cd49da930b37b94d2b3cd5a7a51ea08aa3a8a2a4e474fc74f83b2371d29e7e3b4947146df063f2453cec9734e14e4c048fc26ff76721e895d28155177a51554f75f3925cac249ddea12291d11996afe9253ca89460e94a4c007072e433de44812542965bcc2cf12450dc1eaee598aaa3fccaaa683a94177d525ca3214255bb7f198091e25b4e4b4d737d892c3653c61c493d3de44c112390a683ac3282773cdbd1718008411567260d8a2f850831cfff65ee017e4c0f072831cffb619106a95e34a052c4521e5879160a158c31f5affb4cf7608faa77f6c909ed6b31a12cd4789d0c6a8fe903d757e8c578c524699e3c7e3b797c3a7f6cb1c3d3942c0377ab2bc38c74f839dc35d3af327d101f9cbccdf7a614d1512520209258468201da87a958ad3999c9b4eb78c0e14a3021c483a909c1c71e0404746645a01406474e11a7d7bb5e0480921315cd0c30f56da93924a2924a97c2ae9b350e5a48944f56f2add93eeee947a4deda654484a2aa994920a492aa712934eea990b4458a841a7525e41424784442584c468a2bdd93e379ddedcb3d65c4e22eeceeba8d8eeb5cf67a4da4072faf6c94dc79bd2ef66243aa946db254f2f5e9ed62095c92e19a9419fd2f98bdf7ad1bb885c3c8f905adc0383144627450b4ab632e14626384a6856fc0a76f4be41116ac20680d06073dbac6cc4255db80a6d8022d4d8885a832d29c21f524a95df34d218594750b7873a802a7fec4da73f1d3f3a72602f7a92488c2bf5007589c29052b3d6a20deb08724f4750f4666f1dd5ac8f4a9870fe72ebf5a194525ed785ed5e570843dd90488df4e5e4f92ddfb85e7af12f6f252389bb1f63c47120b4eee3f4a45cd7a377bcd2aa9265bbfd7a2191babc38beded6188ff8d403d41dead9a9dfac13d3cf3e95a9549cce76eb4d67e7ec9e3384a1f6738d48f8c6beafc72eccfd9881d0daf5d7e3ba44284b13acb73563752f3d103c18245d08426d19508466d580d075f4e2524745b74f822d7ca20482e2a7a9621a8d31621f5f669b61fee1d0f177538ad3523abf5f9bcee49a611e1016b613b26d87fca902144050ea8c40f45440aafda5d060f307846b0b5cfd631eff8c76516b368ce81aa959e1f5a7efefa466f5f7d1de64dfdf5ceccdf48070f34f7f79d909cb65d12d144a7afada311f08f778ecc3405e0b5caf29bd25c7c43abfc6c244b70d82295c606fbc0005f85fadb64783de069141640dd7a8b67f31c3a1eba5139f6c9074524a29a54356f8544a591097c06cc1b225cb16a49f6d22af0946916ed5c174db514a690d2f29a5748aa29ed9d61446dd6a7a130faa8197a873ce30043664054b0f6a861d1e9c64644b9688d125d8249fd96b2ae9600ca13186c6287ac0112d4e723043872a5f0451e43f3b3b3b3b14d56d02cb4f518599dd043aa5319446511aad39a791f6c28529247812c50a2e9c68e244494dec791925b8075fe6bfabe148ac3e3b329072461459d0c027053c400821a124794a29a501959ed92a57706880650a233c821d7258222bce50ea1c257a967c802cdd80071e807e9638837f0062244155b04bca2e50ba20d1854a972a5dae4cb0c8ca22d7ca60848c39e744a2d433cb549170e1f131f25106a09e59264eaa0c5058533851448d231d1c79e782c445890b13172ef27b4e27234bdcc867f6ead9818a93cfd7cc28fe830e66060c3302b680054570a891544a295bc0a467d6091424a8e0b4a00aadc90137a9f4dac1862b54c9ce0fd3880b29d26589054d413c1ce1430b66a8d2e4a293664a3db34d4c5713976ec53d6001948427090f37a104171fe40c46a2163f1e021423e0c1bb4285164f0c9083244048240798528080a704cd43ab0618c81048d1ac58da42860d5820ad20678aa0cea8c4a7a786193f3fc42574cad94350cf6c9327393d4871308a3003885a4730cd9e39e7ac01dc160c8850fa41674b08764ad0d4aa011526433d5958d1848a24488660220a5e8202113899734e2f50c06382252e909498c23c60e1f3c3fef8cc5e5be44043723a519fa794d2249fd9cb8a114a293d32e99473ce395b3eb3494c24c1948c78545cd104180eb89282218ec44c0c30543b4c75870b4f8dc187062aa30f4f9aca90a2c90cb8d881071c9a96605133d1e0d233cbe303b4fa2864785006233559ae64c122bb1a5071850a9c28028d20271c3483aada82a9c89c734e1f2cfe460723451538d050e3014456c460869452ca23788ef03902e80826473839020aade9608af880c940c82f274c4eb804c113844f10401fa59472ca939e59295384ba2943ab4fbae8a494529a44a9679649d6245c42c0b3faac093a43d0ec6186288b04c5876ed5c1749d122762031420f859b2430c6ce841874b498f11343a3832e79cf309979e591e1fa09c219880b3c80d5d84500c9a734e1fa6c1c8c61273ced9c44f4f9db30b23974c315161aac27485090b53964b4a294f52269973ce39936891318184004668145ae0f080a619dc400436b482b2700e60d028988ecc3967154858154a58154c58155c302b78306c87244600a58b2052a054844311a9170cd900c45bf46cf1d375d184a45b75305d477d7ee89473ce39736861d89c73fac060ce3989a848a97332c00826a410ed4044182960a0268a90205269c2210bf32065ca2cb2ada61e223d3198a1092a579431c50e3704694e6a7072290d291529b5948c948e70b88c9c9234b1fa22491a34bc6afe28e9de61d066008550f402172cc528557ce892a8142519a38603423e33e433fd97771aa2e326fd970e5dd01714e4362cb4424242f3b752f991ca9f9f0f29634f174918116165890bb468e584febce3dcd3ac1e255a80c1c36ee3c1cef47b4533bd5a9a2b5db8aa4dea0a00062732fbb241173e5c64426f52e58f15aaf6d4cbe88f55d5fee837e312fe58d5f9483dd47f5dddafd0a07c26d27ff350ef71a5b3ab9a16447f058a0dd1d10f37e907fd58f019f9d86fb336980f57353eec34ed0b5f3e290dcaad614ba135be7541a85952dc8673e473907c3937255dc8413640d0d10fbb499527cd63a1a591ef82db7090cfc80fbbed0b57f2b518baf8610fad51a52fbf87aa1435ab7bf9dde25ea65e7e1f75de7c6df3ba6edaf754eddb9eba679f65ee5aa6795b9d6a59e6bf7dcb37e6530c4ba5af7972d3718a5dc137e86f8fd3da17ba50353a297d4dd3b49a6d9e76653c54e563f2b379ade02ce0903c567690908f2de9d6538cca4109294be5ea12d1e0a8aeca8a142995776cb8a2ce87ffae1529439523c031d4fd42dea9feebb510797075c3f8313b4e357e40b8babf30a83535dc2e15c7dde3bce89a01fbbc01e9aa7f541085e153b1c7fc99480b127589b43869d525f2c28a9a82db68f49bd49c9a74e162317ac199c490f3020c2f30c8d91e069812e44499df9f82dbbcb035980196a51c18568a2a538472b62f8a0fda636fba766c21b2621e0eaf468aae86027940972e5d2a7df684d03e7a426c3836afe773b47f1beee38717ea0bf94fcf79bb3bb379fcd7cf4d27c39e85c88a9dfef4d9c9f31dbfb3b353c256fe7ce31142972e5d2af6352a5cdec9882e5ca308502f2afd7034d8af79353ed33f79e8566856bf3f7fc81f4e833d4283fd3d9a85eaa9fd28342be6ba60ba12cce8aeb0c6319c42b3bcf6abd02caf3e600703cd5a221a7487bcc35aa22c9c845f87a22c5116a07e5628028e66b16256959f544c8bd1acebc4195d2a7fe1267d0375e1d76e119ac5dfe4d4585190d39f7a78ca2bb799ffa7ae27271d0f763d8fff107f3abf987dfa44724e5fcc5edf03fb62f6faecebe15f8c04e65f1fb35f8ff9574c0ff9f4e5532239a7cf2e6f73a8b739996b2727dd3601cea1bf31fb42b8c668dfc31ffbedb95e5eccfe9028d90fc1de7f4894edeb11fffa21fed8532f66bf18ed9300f6fe3db0f72f663f27fb7a5c1f7f48fc62f65b3578facfb9fe944417933dfdcd89c9e857007bfa0d89d2c3fffa21f1b1afc0f5f4e937c4fffacd3909411fa74f7f9d3a872243f1f0be93b049144ff4dedddd45f174471c649dbbc7e67831f1e85d46d7de7c637997cbe8f877dfdddd7796a09594a247a9812419331a9b8708a80692a8bbaf0c1ee3e717a681240c5ba217bdc0a060c418e7082eecc4012da798456d04f14f9b4ea43d641a07b46871db11ec8d50fe3c611b8f21de1b8a035a5013db76604b64cdec309109f728a50efeb1bd2313ddd18b2ed4d0983e655317bf305e9d3107864e4324380d7dbbff88daec5a674289d18bce8bae63c7eeeeeeeeeeeeeeeeeeeeeeeef6eed81dbb3d46ef18bb638cb373efeeee6e7a799c53ba77ecd8dddddddd172653bb4fabdaddddeddf2e4d7f5c838893fca9996b91892ec451e3fcd5aa067439258cc63a9675c47a5ded3f757eb2e533ed03bd5c631d5df75b3e7f86ed51e58d3f90adfea1c57b23feda2ccf84f28adacf36b2c5332bab60d6362863504283fd25744be7e9e8ca82fa9c73ce2c75ca55832858ead50c3a18599768063b35ecdeb1d4ac6837e59c920a23536cf01abaac2e111622a8d2617589b078e261745b5d222c8cd8a2937589b050c183395c342d17435477da415d222ccca8b12e111741d4f06b5890ad4c7c9d167a47dcd9c996c61fdb1b0ec4bb70a9f179dbd13b357e41e20bb92ab634aeb323f6872de8bc494f676b7b2d34eded0497cd8eeadf0f88d7f8e9b0ac5167f79422210658640dafaac97815596c2c2361ab07258cba6a30fed41590882d0dfbb534fb0171922655ba252a8327627bb3756f56a6b4064f7589969a6a8f514daa4e2461e2040d4695488ba42a80ba445958a95ef8a3c2380144939aa3ae134048a95b20d18262d42cfec6d22cdec249e7b410fc445a14556f356b89b46052f91d8b1f015546aafc118c2ef4b05b2ddee9290a3b1d21b2eec7ff1ab6944519e9c24e4ae56f28cdda4f88f9dc6a90b134c83244d99fef4627295de8ad9dd9716dd31085162eea2e18722f4d27f10fb1549977bc1a72939e287e5c1054198bcadf646974e882c4267bb35588f9d213a2e76de67363e919e61fb7e19c6e9d8a74a1b75a595d279a6250433faa5bafaea1db711b1f729be8ad6daa61b7b8d4fdd05b95ff8713b095aeb1709ba4e8826685f2a8facba3ab8b38240e1087db5c8fa3733227ba1047cb71446f96da0db4abd37caa4625298b5ac55113911012524248088c4cf6b8cdf5fd7d60a5ebc18e6afccbc648488c52f626003972f4e4c89123478e9f9a23474f8e9f394686547f2c52951fb50bc382196157604698513df5604698911759fbd4f85ff863d581d0acdeb66ddbb69fba6d5b5376b5cdc53eb52f2f66dcc5488c1446b6cdead736d6766f7e7bb1bd7d6aff6cdf3a7a36e764a6e22cdd658cddd18bfd537ba8e2748cb1bdfe69307a777bc72946b632a15caafed9ca832b263b62adf111e6551ed755f61d781dd4a0f3f62297dca68336e74a7de18abff0555f08d20af33912139dea61de979a55c3861ef94c7fb0bd86d42c5afd3bc86de891ac353eb9448f3c458faa7fdcd2a93e1f2faf7a982f7cf9d4ab1e025c776952bb15e505899b5c0a616ae81d1424d6d09742792508fb532f08d7e905912f6382ff8a2ed988821d86dba36f27f0cf8f070827b9f2069bd5dc4e6ac7c845f6f38998aac85937d4ef0f8150e963df55fe420eb58b84aff23bd6de4e9069f0021bfcae168070955ff39a0694d043851f2ef0fc307982c4d01523466a567b7de2d3f7177e75fec627c87c21cc077636e8c2af2e758290b0f57a12b8c6aebb37c2f9cca3790ca9198fd3675fd8753e8fd327d3600b5c43ae930989da4fe9f3531d2c014be31bfd8030d8a07f7b3b4b54fce92da0c121357e354b33d4bd4cb37a790943225be9a3ff71741b0484c88a49e1ee4863ac608a087aa8a8b2c3173f1c21240b28498880062bc2e822c78df82924d0d2430c94d20023872c588aff94a225a1ba446048a97589c0681229138f3342fcd3c7f81a8e1a6b6a046b64a13e3b7928b9791b1bbc4ed83688612fe311a934667e5d6d3991c5e7fac1c4a1eb5f9bedfb35181d21b68fac499a65d993b035fb62b4f7313ffbe66bef4fa4b2176a5548c5fe44a4621eef26b7aee2baa84442429240f80ec6d1a0db2a4e3455ecbf62d8e914e309a9c1ce38ee37522735d87d844617f6522f352bbee49eeb7b77fbb491f015c3fe83ebe367d969b300911c0df317427bcc1362336d59a7dd4c27f6a673fd09c3b00cfb0c85711886611876cdb9c4d4b4b4c5c867fa4acf2c31352d6d51f9cea9b72259231d359636c22235e62827659e4c2f6c66f4e2c79a60cccc7cca3466767ed63614c7cddccccddeeccccddccccddeccceddcccccccccccecccecfccd4c4b454a5a80a965695a22a430c24f9879bb9999bbd59056ee6666ef6e68689d2b9dd639472ca3929bd2eecc2b0d329cbb44cd3b60d85e21aa535c769dd755aa7525aab18a6460d8d3be840631bcecdcddccccddeccfd5cdb99d9f9864fb62164dbd90050a835959939d654fea6e2a73a33c7df277a946a7f4c8cfc2bb0e0373f4ea4e5a8fa1ef154ffd12c678fdc2a342bdc220c348b8b388151709bebfd4d68167d7f1e7bc3efbf6375ccf72f616ffadd3f167c8675cc4f037bc37d2c4db855361c3a206bb3bbc2dec4547f16f62656778ea1faa251fdfb5b6169cae8f8db9d053362e6e72386fed64c4e14be12366905bfbe4fab15f6ff239b2ac9b8ba4fa0208dba0221e3285db8aadd4eed07e1092182b8b24744edd798a7a97f5a083afe30524aa9a44f6964d177a794524aa74b8fee2e83e8755d30bdef36ef335dd30dc5a11da1c1113aad2f29fd17942b2ff02bfdd91bd060bbaf12337982c9939099d4e69e12d8a79f583254fb85b44de77477941a3250ed5eb9bf721b1c0b1061ba8c3f2dc1673a309bda7aea6ab04783fd263ccf6d87fffc42991a7df84bba058f0f7409bbb259f1ebfa4aa131d0603fa703fb882f9949b3224c832a271d35facaccfc39bb33b8524a2939c65d9acba78b5c7777f9afb599cf5f28a5947476f56a96ec5879d3f1f5bf8448779fd1a3f06b59f02eca96b3024953761ad9caccf839766d3c3690ea4e595f34d332a0e5d2a6bce87b129311c4d0a1ea12290179104a3cd1a783a94bf4c5525be9baba445f1c7d61a42589c809700023082a44588ef882a14c00c91225b88105614c611348592405554abeb6f8c000a84bb445861a767f44b75a92ea42892d6773e2cfae85002f66204a7a41ed972b2f23e5eeee3a51cba2863001e8ef9a6c1083dad7151d7f07b344f52a6bd1e2848c2533e841871298c1c389c806486a770004537c5c5085184b39c8e121ca786203a12edba00ae0b1a078697b59c90193f224eb42063a5c453c397531c60dd4080301d0945274ede0238968a241fc18f193049222865660a488a6277e8a3822aac1154a72a424d1ee76a69c537a0e9d5697288b14527435ea1265b9a24ba7aa4b94e58b1fb2e0201ee9527589b2b8a1060552851a572bf97d083be77e41628d9f1059fb190753c61863e470f7978679798bec6ad6ee833146efce666dfae31772f426c23074370d59fff6f6e2d8a17a59d1f12ec3808de8f63b363333b3d74c05707420666666de9531cae89f51173f2d049d7f18310cc3a4d7808a7d74c73077c73e8c3162f11dc3b02fbc40a73538f663942a905dff642961f405d45088740c3b11c130f90ae01b7c03fb5953a78e02a49472625ba977cd19575ae73f646afce40dd717eeeeee15bf06f9ba3ad94de7d7b1894c8e4b744a4e31fe5ef1bb18e3e31801851863f4a07601a57677197f2158f7b7777b7b57a7b3e8d1a34777ffbe69defdafe1b5577fab15ce85e336cb3cbf90fef545a04ba38b5d3a193f1cfed59c76bab006c352a9ea410dafcad8cef02f0da6d47d53173c948412be980271fdd9a989185b86689223421939fd1cb437dd40ef31f4b7ce0eea9f265dc8423fb59f85e2a535c842b18170864e4a745b7b38077b9e220fc8c1becde9e19c18ff622ae059beb8a14b0ef615b8ae2fe6f4bdf00210404a3b39d817e31f0aa7c7984983fd0128140a8542a15050b82ea5929fa53cad41ed555ed7a0a66ddc87c2aaf6a96aa0cffc27f985a7df06298f215d4f9f3d7fa14c90f9f1dd13c2d53f7afe59778de4242723d7f27a1120e0f5fae8101d7dae614dcd0a1ad81bda2f43580cfb9a05e0909f759ed6e0f629af6b708b0d6ea8e79e8ed3ee719d41b87258dd3e6d665f74fa4d7df446fa21733f737fd94a5e47cd66a6d29d4ecdcd1d03b747c7d91baf8ed17861d7633e2eecc22eeaf9b8be3f5e180eebe02a7f848b5e912ecf6fe3540eb0c418638c31c678852028020e994b03619873ce29658c72ce39e79c734e2a93fe9cf3e79c73ce39e79c73d23989b218af06e35ecbfbacf5c2ec4d5f57d7ad56ff20585313e2a8cb9fc6044c8db5a1c0cec4117a267e6c400318c0001a9a010ca0460000a046f9f5589a88c3d3f14715642b13ca569d9fc5b6e189e25fe49f9376979ae68275aef65b5327194997372823433ff4255fda1bd61aa4ef5b809ab597a31163a8f377e3913a45a02254fe9691f906f97ba34647a7c8e347fd85d78c3b4b6ed3ffc5d08f0ff6604c3d337f3a973affa47dbed4e00cc2356ee9aec71e5b9bee99dda4ce0fbd3abfb083e637356fc276624ff5e7b5f125a75ad4ba06e7778fdbf892cfcc5fad967aea0aac7ec54bdb742e9e8f7de84b35cdc27cc9c7d81b329675faf97ec6e46c8450af0f4398cf79747dc1ebc6f5281bf5fa8dabd7bb7779f5830fac74fed763980944aa63dedea6e3723301025f31ff56b6686f3f191946ab4e692578b06a40b3b6c6991a135077082312737d831a87a9caccbbc594d6e07cb9f2199d0546494dec023a194a297dc875663989482aa994df3b5a46ee90bf5ffefb608fca6d69660c8ff651e977c89479693a9c4ffb275f4d747bd3354e39653f8592ad2a95e238d5731cc771dca75435384e95e2388ee3525c2ac5a5b8a9751eccaf525c53a9548afb58398ee3388e5371a9944ac5a954a9544aa54aa554292ec5a538effad4cba738eebbf73f81eb3a95aae35ef559a75275aa174ec5a5388efb6cd37ad3e1a206e3855d3b7f69d42c5fee61bc1a2f3654355230a9ad301d3c6f301da43e4ba9388e53715c8ae3603e5698974f795c6dd4a85123c5a5388e4ba9384e954aed731cc7714f371d8e53a5fa25f52f302a984f2e35e8af4a7d3eb8907bd5b683fbd4679c0701ae196b5cea371d9527539e56b9ef069b7bef7460da0697da71eedc39e3741b46744dbf9ff7c67fbe8c2d708ddfa5d988d2b1518392b75b4ad47e10d92ea0db02f512a9cadf98ead7f97bd3f4f70bb75f1ea897db4b2fecba7d463d858a7d7b415a08574a3f9bbf1f7c6045d543377dc4cbabf3bd4af95c6a5dfe755dd7757d3bff7a205eaf6fb9725eff002bf71937f781f6210a3545973dead7072a43793164dba88fd2c7a874dbb67ddbcc72ee47ef18ba8e2e67844c5d2232802a0f9614d6e802591ab4f1a4f3333a9c66c5b47ff5974faf6faf33ed7afa3d45c7b5719afe698300eaaf8fdbe3b4d644b71f3eebe07a8a8dda4c20525be07afa8ceed528cdebcfbcaf9c777a218c7afad3f381faeb33cc03c255faa8eb7a9427afc7696cfb56c3d202d7d37735c804d4b91331f9547f99b6e11c9f52fd717caaff080d53c31dc2e9979e8ff94238c4fef281bd7cff1781666fe8fb6714a31f3daebe9d405fcaa7d80efaf2e9d5a08eccd6fbe295a89858e587621829b2a2bad5a859dc36d87092cff4f3eae81fbed1ff719678f50febe0bdd17f7de1aaeba5e9fe7186a2b6bbbb0f393bb136b167a620a1ab7c2a4317f2d0105729f2f9c5376a56fc5661d7ec051d8cc437fcb32ff440951fba50a5cf382b3548c910aaf4637c1e727f46621dbb374ecf7de1aabb7ee3a1ea5d4346aacd92ad03f855da6c8efcd919bf613dec25d5b38f93964686ae7f583f2cb75121911a84b124ca3ff9b91a3f366af0b3c8eb8e0a61f08fd5bf70087f138eb115d0658d55ffe2a9aed4176fd597d08feacb7396faf2c29eea53cf591a643eaabcf4e2f1d7eda6a3fa56e095065db6aaff163e29952a054c52fff26330d54bbb649316c2cc9e50467bf1245324a34b2115a9de571e74a9bdb0972ffc0156d5cb2b1178f924964f16d928a2f32184ab333568a388ce87ea85707d791b4478933335e844cc8d04f9f1572fff6282eee5e55b35584617fe12bbc7978ff5e50b875449a5410f7d0902b4f295065fbef0072fd597ef88d497976f75462793424a9168d2dea8541e57eac509a994eaa347cd4abd3f2a4ba9542995ea3381a97b59aa7ba37affecc5bbb6333a985749a666bdec4deafdb394c755a2b1374078e9e56bbcff09a91a5e0d0ffc52de56b9b46d3b5e3ef5598d942742839eaae1cd148c27b3782d704d7d2634a8f2b64aa397174f6e599aa5a521a3231a03a96e7df94cd33c48d5970fb1faf292f3f2bce9bc3ce7855db99746324bb354fd1de7d9f8f8f2382d8d249566c1bcafde5f1661a7f7a59943a77ab9b4375d3d841056abae0b5a7a44919aa57ab7a1f2b6d6f062b5f1bcd5b0f1fd006b57b394169bf5f272e965555f5ec0fab2e4cced2e5131019dcfa8b44c59896a182aa2110000a020001316000028100a064402a1581ec839e20714800e7194486046180ec38120876114c4300cc3308061882106206300524a51941451d97b1af5afc0647bac3f331645aaf548e0f0907503a70d546511123178403d9c6d78c9c21b3416a5024236f73d9ebe24ab74fc98ba3aed114f40c783d20662df65521a48b544cb57b3120bcaafd63a0893069d0b4595cba8024014ffda334d17aa87908d8c6ed5b3e816305ae3d301d48899e0bfbeff6612bff26fd713ea918d4b57b7b385444219e4806f39744209fe993b0def4a1aaba6a5d9e21fca548787b6c98b3d3e1af5fd0a1b6b19f19f4c81a05c86a46e0c3489f4a745818392943e743442a1da186a31bb8c165a4290494b905575a6362698dd08fd5f8bfd1dee909ed7faee7c8fd732a9f1f93b575bbeec4945329d294af7176022e3160d4af49183b5781c80d86c626ce36389a241f665cea6822fd522950f45a9221fa657e50cb29e862b7d5dd8cdd502a3fa83249f6b652b26e9b6cb0433639463b57aab1b6d1f501ce1e9403b8330d0994f74dc959c792cb14e2c64d3a746c1f803846d84cb78321029141ca2eb6ec837e9baa2adfefc6f9941b89489ec13608e431eab07701669a165a52d62b961a3b0646ca741872763ed8cdb0ea32b822612a52f8cd45626b2a824166632f1633f483cd2b812707d433d3f16b67a64a2a2bacff4cd5a0ba36b6a0f162fb1b84cbe552e916a34bb7b639610d3d2176da61ae5c3e2a3ae4b606b0eec7f1f96b1bb893681696e8b2e3ee1eb78f6a96cb9ab4fb008dad84fdbeb1887daf02024d834b05a2cf9c363c3ed6a6d75dc4879a0470f6c6172f4c71127481218961a77b00c2ac025eebd1866ab5fdb99ba899e040d2112f0838cb73dc2f9eddc3d42740e88480ff3f53a274b1ce86c2b22e49d8953e597ebe8c9a20978277c22e6a4451aa8b9ec87d41e71153b4d6bc62956f2c5f5a4c7186aeb08b746869329e261606364ef0a511be286511c2c8f2e139a3bb07b73fc62739f8bc63b4b25aadaad61cc02751a0669dc9ff67807e509ebf2d33206bf617274d87596c7f59ebe1fb90bca2e68508a8722b8756c967fff573000a7d62c4e0a845cb40f3fc0d9085e2f378b0b266ea15c0a57abf01d5e1bf87d8d8cf5c6ac53db04e7a49d89b9e41778c86ef002398a8cc89b19ae41e23043b726790fd76fcce0ded03329953380547982ef383b29c61b70b1ce66e5125fe880a0888a360ec713cf6ddd72a267eeb6d11439478093548187dbe9dafade91bb4d37ecbfae9279639fc98bcefe31270dc551c616ef86cfb792fd50745a771f1e9904db5c87fd81d0df2c6e953fcabe70770e4cb557d93cf8079a275a4eecda82ab2cb1b4aac41a9558262265ca70af17e7ff240dd2fb11a91aba38ea8d13b3f113b02cb4a3f089b7885c4c621278d422dd50685c7462d2b405e55bf8e284cbae4cb44206641fcba8461c7750c0ab1795b9402991db72cca8615f4b777debc816af9dae07df415cbc56ac827c90ff28b8005471ae3e5b11e3836f1c74b9df92e8bcad2e74b128b7e27df0cb367fe6093af31388e104eaaa297649a08610abcd607d79c0e71901249adb01f33108cd6de278d6b5890b3a8bc920548068248985579a6c1387057b143a5f61ab8f61990acd6d17f7c7b95d9ab4726f1bcd4a55219c446e688d831cff66372570647fe0033d4bb061629e1287b4025d045be26647060bf4559ee585dcde6e50abfaeb7e653c3ca0e38ac1e0326450a0a429f20068765a2a515ee2daad8fa402344013a98a3eeb3b1628535e4a2809cf98459691d5eae9a7a8203783eb35b3cb6d7e14d9d5fdbcc9717665677248581cac0927ce74253a28048ddda87dcc0782734a887b34bc0dad1c1fa849c31015a6569d6882e31e5a0ef9be47a71a3e08c75268397e63bfab6e89fe08be08d966215ea5047de2eda7e3885ec11eeb3953f2534c86e626f82142fedb2b3c70ea18b364699b03308db90bfbc0e04ee0d4e22a7258bef9c44d92f12e0a000c8981599cf427127c3ff86528f61eb4d789168eca290b270ac37e59e898311e8d8514bc0cb81e3cc218bb11b5d6108eabe1220f368e0f976cfd4903a600025e9fd30625d79ec152ee435707372a613564a1ebd40f7bcb86f41886ed17088f0bc7faaa8bb4ca65fdd40c9e2e2d5c6d530a247d68395d9952a0397b6cb1d034a20e6e4ff614dac67a20ed637a60ba03f7a5e78acf594e9888f3cb18aaa9803c60cf039d96afa7f6820b6cd63d1e903484a8196ea06dd1a07c4794d8020bb2135ded9f48588bacfd20839a7cf695561e1756fae4613ccb89dab8eef1a992e514d0defdcf29318c1417b84bce24df3f5444ca021c45834079658bfb60c9d6e402d729f2a2b8912e771f9d33c2c9b389a373b7c8cf6e1808b929b47f221ae275a08e9f5a32dd8c6395187cda6e14d8d851112b01fa92ba9d1b1e0b030c7d50ebcb5d5ecb47065105be3d7a6c69f0cafcefdd45da7085741cefe4c612d932f55779f694e3ee37bf4fee68d7b922fd5a87cc7fd757fa1bd421d10f39d2baa0e4694ac7bd9820ada5f2d8947f00847f57eafbd7a24a18fdcb5ebe38323105ef96dcc58dd472d41efcc00dfd3ba723d0fcea052fd0360c9328215705f1e2a2bfbd1883ca3c1fd4e6705892d0bf61938ece6d3986b77d37d71dce75ae8f0f56c02793c110942872d03749c69525ab062f7a287c0435a04a70bea4b5d8b8efa2a2ebab4e4cec61a98676696a6daf72b5fea55b34a17fc38305661c42ca12e2322d1f8f502a16b0337d482564641401baa08e24cd4249175d6def2613acd30a8014b00e05afbaba8ffac109e6dc8000f38903269839d7405f83df28177ed1b2da341330b206c5a66fb5cc622785dd0e747f5135c1d0f0ff5d36727725233ae32dba6da0f0fee58264784f64646002c2fbc7c84982310f45c6f14b7a932067c5a5cc2f4c2c43d206e41794d8bbada83a2c9d5f7fd50554d5928bc12f0e15cd5d3dfd4d2895f979eb32f3e7da624de3e2967631086b4d70f7f1a52acf4849487dcb02ab0b8e950c1ea829df468df5d87cc43d95e139b5c9c0046d222a6da6c40d6cf81ee37695bddca6da8651aa1de3b76fb200b70b06983f3085c743f439ad1e95ae57556607f8fdf39a161b6c5a6a2ffddd5e2114a3d03af9ca2d68f4a99fe6f6324e7792cdce6f80fd03c343ca44a5072d286544618d3654ffeaca5598c08c2990d65f5dd18b700e421eade3d0be941d000050ded48189ef8066002274fbd7b32381e5f5c0a7c6d544ddbdc31875f8dabc82c83512978a424b52c3636b2efc141309c93cc1c7a78e74e4c50889278fe2eba843c1eccdf12922c8936fbe6ad0e60094631044621e8fb509eb8306ba4401397f047e5b47429c593603c869fd64efb77cdb3334d5220e237c17a2c8d3bccdee0002aa6961e4d4732efdb90e0e6dce57b3bcbb4147e78d53e58c676da33db6ed805d7676f3b224100cce296003992e69ed99203cd784757af1d7b48b2859ab375a1655b6486299c02e0eca6affb38251d4b3c41d8ab64a227bb8e10a648c634c62e2a014b2692da7e1098a0a816e268735583361427dff5be0cfb7983dc189f019692c29d7ffec66dbff076cd017437e9976fa6d380140b47acc4acf812b706ec8bbd7636777e8f893fea8ad2a4181d1a54027677bbe5e20d2aa31012245bc4ee8e59028a4ae6c751be654eb28c1c32860c5b206eeee2bbe30eab4e1b75a56fb7a496c2acc869d3b2b965bcadd4027a27eddf2bf887573c4f5c4406ba40f5dac46a1a0e256fb5bcf4618e87ba0c9b513bd827d8322e912b6fab18594e121ac5717813d171535d903a577d8987c4abb5a9ba1e448da5018fa5ce033af7d3931b9cde068d5d1dfabbe860483e86d0331330c60ac811ff9d0fcaec2b637c038fe619249bc94f268f72ac9030964a81c9b2c615944fdb5ffcb21246fd6830ea91e59148ef56ad6ac6216ed113b2d41b73ffde328846a09a8661686be44cd686d376dace324ad5638e01ddfcca746216802abc23c546f05a32cc0ac4de65a95e0df9bb9f398dc3672286dba17f6bd97491d9cd1ee50d85e01858ab84b288bec9a02b043c96d36b121841472115d67af07f312cd16735f761674cf748cf8e06a88fbbcc49627a700063056ec624b6a75a8fec12e6e83e064e65635380d559b83a27bffe9ee0fa2209ed6db3c68e6f857001e5bde4fab916baa13bec66398f7ced013915e6646db64186d1e1d65a1a2c91e5b92bf821ef68a8970d7e7047d605802a644f53523d0ac07d750146688613f6a456b30216fb30cb54a81e5886dda06d9ffb1742310508d20cbda0e4a6f96e9c66b80fb084504aecb828cfd9bf9c4072c2b2390d72af544466baebb4df7a589e1a11846e38746c3949545f229a3131c8728dd7c3521b345b77dbf1cc19c9de563c5d9d0a5fcfe8f78715af4f3c3d8a9ba9b15c83bb865234061a7595fe0d7c04457bcac58ba5343c4738d498e80300878e28ef3e28f7aec8e046c64c7a29fd292501f007a5c959f431ea11316309a3d7ef2cc52066bf42c3bbcf8d44773c6e462dbf3791e40fe22254d91bf93c840e5661ffb36398fe7c103c26bb44057a4ab35a4359b47703a6c6a6e0fa08c8d6f890ff20568e627c55a6a9b5152d75546a51126d179ccb9b005fda0f88b207b56341907e82f162e92d696f13ae40b5dab60ee790750ac6416e7b21d956518cfb7b1e8b512f06be25287383a82b8e28de3cb00ae0cd66f85d0aa3afc74d7312e4412a4f2ac735e24110bd50e01f3d1a06e427a2a7e118348d10a49a837898da665c4967ae7d56884019618a103dfa196606b0e1b92431f888d2db699e1b08526a84536a787de1416134d51f5e713383bfc6c2f5a58919ff18a3855a8d84daf7fd7d40320b96e53d6a9e4cd6e74fa1199374c19fac833347a1ecd73decd26ecf4a6d54d0a18772e88b28c51164952a538ae38b559d056c0b303730782140d14ea79a50c74d73b79355787b2e3163b38b0cf6fab288ac53b8b427d2e14b8c94f0faa681a4561476cdc9b2ffb7f6ecb529c5eaa1aeaa2efdf8af003b7ff5755d60e93fc5dee667f953cc8940c2087b3ba63973c1173995f08156ff755178a29d8a689cb84824d0afac54c472e557ba8c0ea3971f8010df720c69a5f7a16a0e1c03d0696f021298afb7a580e3fe0ef0a14672fc841c0a40800989d697419c8bac4eb398c1ea6ba86039f410f21cd33d2b1a074e8ec6880d1f594af07046fe0d222c29b5e83fa8880a8ee142fe136f26cc31b86e303707365d2b82f3946040ffc7d7878f061e90bd557b69bc6f3294018a92088427d89d161a0f3bd2a382f9cd9461a15868e231d6ca74b91cd57e786e6793bbcb28284828233ccb539340fed8e12fd25f2719bc2c7ea8b46bf5a3751f99ffabb76f72eda5863ce0df6af5ec5428b26287bf840eccd05f87a60e9953431e7a20ac221f2debf0754027bd08861dcafbfdbb030b5b9b69edf74094388d2d80bdf8e0d1ddc7f05176be7eba94be2b50ee0e986460e970e599b04c71fae8378249bb4ec5f4ab98cad54144b420b20c56b87e916360e0c9c2c1149def9a6a607aaa54eed25efa66a07909730aa9a6eb6293912d7c545a453d6b69be6101b6c040a57c6ed3fa42ea2a9a3ec4df553dcaeb46eeda5d798b82c8e89da1b99d8e6887051f1bfd86390d57e0b58d36488eb7bf779cf1d69f7e6fdd11138a725f434975fc4b2424a254ed02797250408b7ae6f1f0092679d81ac0a20160e2f70d452927db62f7a5d17e8571a3386530abe332271becba5e9b4fc4aacebeb12996219c6af5b31f54bdf16b1be092c186da36cdf1f02c8d24044e9b79df1aa264bbb53f37b1c281d01198ffa01a1a830197fa505f74adf2a80a5fe3916fd324910007f0158914316e6216f6c22c2223c82871761be88382447f6cdcdfbe49590d0151145121011cee42228fb14fee0cc09c3ccce5c9dcbe5b05ff9fcdcaf8340c9e8d2c687d7aceb7b1998e675e799bcb9d0a7134904e69c8a286f977cc56a7b3b6a1724ca517eb2b48d2be989abe13229404025f68dc58957c69d1634a0efd11c991c268ab6eccb5b85f8fdc3062694deebdd20f026eb48ed8d99d6015a457f8190955460b783585b76b08fcbeaaf56729d77a3557f577344d7a0ef2a364e03226464ed775808801fe9647e57eee1332bca2385093d5f4fbc0966aaaced8a77f6c4ca15df3dddb5deb0bfb941a8b7ec1af2a0a547133be48abe8291efb62fa8bdd3a6a1811e9c69f1047ece70860c3df65029bca476cba234b800ddeb30acd1973593b195287aa01718aa7e37b5e24a7bafd03bd765d395cb0d58b7fc81c3b5230fdacb9d7cbbe0d35772102f57a70d740dc8752cb639e45ab0fb293cddf43d942633d5bbc2f6e0454d18a80b030df7a2df788e0775a403e2fd39f86bbbc70eafc99091585b7de501f51af086430872e3efcab807b0e319f603de307eb6aed6b7de53baf30606fbcb5dc10947ce520d082170923c42cd86ae0d88b5326e31f121046811231c1017122a929dd81754d7deca54f283eee8a2a030bc3ffc62f0f55a45cd0b0edc107650d3a1bdaf6679de50098f91a40a3000139186a08373e3fb39a560354edd4c75a948e756f14a078593ec047fb81ffdd13a14f9a860744e5f14dd5c859887be419129c5924536424d78e6978d2e16b960b9fc36b841102562ad938c8136231b4560ceb6fdac4fad27b7dddaef1b2b17619ace7e5434c014fac14d038d7ebb94f059033ffc8bd8c1a2b0c14e6a10227c6297f1c1c5f5915c5d70d9323377aa4f27c360d5ef8c08e76c3b3df402ad11e8ec756ad3d760f251ec8c4734cd66f12fd2daa00f8c695ffc6992ea3b0f37696bbe5036cac7b8c1280b5fe0ad9640ae1e2533aa427073c79870cbd081534f7578ee1170044be38fa65bcd734771cc71e42245a3c2ba35854e1691b46a963db9fc15ae35acc70d65534f283894c859f39026f0bf691e3b3925342ed63833920657aae5a44abe43c9b8ef9dd571c063a77b467ba069fdf0d30f8b017fe6548fdd4bac60a58a3faa9016090e900bd4160412df345f100019848ef7a10ee6b475235e1c69ec29431a42e5180220f4f028d49d51e7136ab397eda5d33e74de76045e6f71a8f15d59bd1b0ad9dc876de5bd14414eef65aa10219fc5efd1e87d75f5a99316acd334cd01bdef80975b49ec2acafff0b28bc9bb3500cfb144be3cccca8e0b06e5f7972527e8cb8e1b088f5fed7bda96448185f1d3f80d096d499bdb22a8cc363cee8ba02101f71cfd03213b493619769d0cb6cd1d6e222262482e6b2522c21f94e1e6fc6cebf59f6840b7b4b380d080eb9450df4e311aab74f98a669d8647525ab691f268a62507d254748b2e331c15123a18180205949900bd0158fc796c2f976058f69725d78c6618a37605eadbff36c18125abd574978b76fa4a239a277bf55e29036befc71e7275546cace99fb5182203f56d8bed13699d6f5399a90aceff5951544ddcf9a6c728f96436a84717ef79056cd0aa0c462f6438395e9e278dd45eae8bb74959b9cd469c698104220c036cf8dd66631a9e396634c9c7d0b429511c66376a83c145bf95d15a03e6cc50df26053b0a410024c4676a9b4d90f2aae5ade50a1fa963c4bcb552ef261aec3017de336dcdbc54cc5814b25f85bc3d4e0cd77f8acce1d92c93dac978d8679598b04f61b960bc466330f05ac361129cef6cd8a090bed7e084c64f1e4f327decbd991ddd39553a38de3b15d02c193564c0a9186026cef38542e5a864b77a5f4a5273db94a21e8e0eaabebfe48bc2a7b13b54f0eefba5dd307ccdb93b9dfab6b0d58b3b9f9466007b54f677eadb38392f9686fbc76e0c64f54c1910f298f36851bfa9667391938c1782ef5d8c2829bfe95779d646611f3763cbabfbea2ef058430e49b0f8ff9a3f4e8d7f86d5b65e9820252b9fd4b0f72580ad8ba87f0d02123ea5328d9820388f4a53749113478981f7d7f137694454a23cfbc21ec483ac428e57873eae73a9a88fc160a5794609d590ab3ccf8c4505e9d6f0fd07870d8e1d5d330e18abbf3127cf183df5a703f77675043b3a743d535262dedb40345d2c5ecf78443b5fd9f88e35d75bc3b3e343cc6696871ebed2867d4369f8ec010e84606123c1f439c427f729132ca98c0bc97322d2599bc0eca7530ca929e1196d3062df8141b80b3c8dd9821ad08be5ab3f9590be965f4d886d4cd7bd5fd9bd1d3a0e013b8ac891c9daee42c8777d28e6c17fff844eaefc4784e15bfb433bbcdf69bd925316e7a8d146db536be32fcac544d8de424631cb73d8a5b56ea1cfec221a306331d398c804ca80798c7e5d31613a3dc3b8b610ae4798fb2c3abba4b1f5cf5df0bc59a1c8edd3fa334b713257716bb1ad5680d5ac5c8841c3334fd2b8aaa37a09cc33798f04f51da93c4d2427500932da7d3cadbac0a89366a79fa2554f985951d75055a2572380c205a49d37724ce712159151d3920ebfaec8af60a1f438b76cd704845d6a4062ae8f9147643249e718461b2e500f58062213bfee43ee40ca4b21e4e6818595adfcf65de8cb7df845de70ae9476b539022ed5908a1c4a5c922d6ee5a29bb6ad121f715261e57bc6dcf8105c1ce4c61e36f642db5b1c845fd11b94323c14fc7fcaa80550a5770b5cda8d8a4ca684807f079c2a69c10df0ccf63e73a83c87ce0c0686229425b800739ffc4b70529cd96144bde05a216b158d5aa57104dfe6ef5f2755591df3dd21158c9af213d140aa6899df54ec171b5ffe125593461b0216e7dfdd82dc6bb2a1dca4398a9ee0dfe169096a8cda48640984e2a8bbfcba2f779bf775734e76e58cdb8cd67da2192420247d06435af675eaa16cd0ba666e675daafe561ec7edee3fe70da0f26252f816cac32602c143df7ac29e26d401ef039a7c88a986a1c302d4c98dddf0a6b8771920b1a9b43d8112afbdaad77e70c5fcc78b05d0265c2e1e898a0571667e331c03738d69b7da70f2ee3ac82b93f3a0b329b3e0e3c8238569b8a06199dd46ff48c84d5248906276f8ffeba645d2579d3a80cc5de6d9a32cbeb16ab1ff09d233ae2ef55388d9f5a1e02f50dda5f053ec3884fc46a32e676cbf68ef2255e4d3cb6deb72369f7b438190ea369431cce602dc9f80c02fcda3a58f3325467bbe009d01617971471b42e6e5a95c5c66fc70c51c99f03ad92f76e2f9d361fc1c90513164463a48e544562faff2e0d65ae07d5f02ffe029319be7724503030ba4c9bfa1673654fdd20742e8a6a02f0023be6f1222a4c07f68bd1048d9ef38be47e0e3e535933e678023d3491e733004206224b40030753bffe5ffcb4ab4aea2d4885e9ef2912be9a7c54088d3fa011a95a67cad9bf50649f5f00b2dc4b2fccd9986b3824804042de0a5ae802d20380efc4b078a5066b1f81a42ef16d68a9f73621d91a7c913349a5d3ca9839c5345f3c20d15b63a3283d6f7bfa321aa0d52676b3d0632126a64747ba334a20136e1e56db84215813c6b849b106c66ac2ecffae16111e1520784831188a27d88e604c7fdf294733d90ca125a8bc6c2d8561a2f32fe8cd04f29e31ce42185d341694e14c0f8a4b556ba75319bfaf8236f2de90f317668e5979889979a12542f87f78cba4321a117d95dce817130d6a0e3bd3f1b21d6e49e703aef04cee6f0a7a983144087a4dd91010772af3260c33986e3bd67973a70466e0338cdefa11ba18fd423bf9da1309bfe370e7ac217dd637373d8a837332e1eadf62efabe363e2a8d0ce105110aa934880ad7341093ff9567387fd70641125ed18738ccefa533af0ae470348718c486235a5fb98a828ab5e743b6f3693040351c48778f2b76d0d912b1e5715b079ae12c4d953c7a3bad5f110d40628a17905b278a45704e9b06297da1cdde40c3ac1856fa6f21e6094de3f02d286aa7056242adbf81860128772d063241c68d72cbece7315a44427eec1e17cac1171d83c7dcc78512914d13ea299e01e1c33885b89fe27ea576200f12fd75fcf354c0989e0100ba971d4f4765c3d5ecc13a737751c7c77a9ca44897423192fdc7b18311ed8a388e8928b3c4bc857b9156883b5f4fea93add594cdac567a7bf6fccc1226cc5c4a8434ea98483745303cafc492cab9ab599dba21961c5d2e540e1e584e60863115d615af5b174678e15789c072dbba1fe8158ba96186bec508c26deef2d7a4150ea928b87aecf27e62337339e7cec44ed1858f8bd34d437cc97042edad052a348f6b109440767ed206aaa92261910636ad58f8950737b558b8ae0f249d7e4a2a033b0051266b27461675dc8cb455d9a08207694d868eb3ac71d2665a8d300c70e9574b08e12cfddcf5c2b898df2a1c49256090f5cf6f9d4d9990aeb50d06fdd14e563910a6ae91179feb1dbaa0df48843c2ea533a840ed8e3fecd1c20b58d3804605cd0e384de809c6226526973fef26cc54263a7a2f6b19c63fc320fe9cb682983361520903058ae02fb9502765db79e9de11ad923cf44eca28143ebf39036ed9ef8b03f45611b8a62e71c103f76c5e522c1226dcc6cc016ef80e3d73671e922706d140610a9fffc1701cf06a4d2dd1a7c5aad1b3e4fde6d40d7decb6b3091b1359f38c0b359d848fbe337a314c518ec952796f873450f721fb0e37b38421ddbef7ce07fda743968d9f6343f532ffc5053c1040c8e01066b765e74d027fd1f61aa9e323eba3627980de3547dd97d486fdf7e71e8960a3e5ceaa8f7cb1b78d493e0bfd687605c6c01231ff34ed88257a0aa35ddb91595963545e46f36b8cdd78c4c481b623a073c04c0bca5531116dfe643cbb8e63d5306a88156555a66ed20627d0fd6dbe0359a1aab794468880cea4f325448fbd7d062d6e40d166b13398d8fd1929b67485d467e16d955548a45c5db409a1ec76d7941a85d648a78c629d5c0762f7859bd25835e08aa28455861521a05f30201dbecc24897ecf1f9d796b254ff497aee1e1b2980be4d80535b96c99df810f0bad718a66c832b839470a954447637357e56bf5e2b34e429e5befa443f0ffeca409d7ab1fd90e2bf721eb35975d9591eeeb2c2f3b0ae6f19f2e3bf266b391f7105d38184c8c18c9f37f6e2c3cf16a7358ceaa05c13782f1c8203cf09ed903e095ada7e50cabce09d9ba8f1d215a32af8b1cb100c374e53a022599afb107ef7dc99e0f53acfb236856ce516a69a4565ffe017efdfa46efbb045134b67e69092513633f0c530be02c53c9dfd956d4f94e7d5fa19e5cc99ed239270f6061aa08ebf5d0eb715af3e6cb08c72efe7ffd113b4f9ab06272235f6999fa9dff1765ea7c94a3c9afd6867765be02e02d65dc036081a8b47ee0d01d0618f8b0cc573c4a0279672763fcc768bee2078935651c7af515a0e9ffadc91a27313ac56360b45a9fdf50927f15072d471e0b9a9ae469bf5cc2a51973c71e8284064ecde949f9191795e6fa619eb1ca0e83aaddb1c3ddf8bc2caf76fe6ce07b13757fd84173f70902b503d5f34b8507b586ac0756f1d1d63310b8ddf1c10bc39ad7c244603b9e6eebeca1c7a83e882c23c49a65a5952988f5ff85863a0d1f82cebd120029aa8b3b7c38028b2eddfce825409ae10728eb6662c96b42d285d10eb3c71387cc260e9a13fcab15059104d314ef9a19840bcb413e6d24175f122e922fac597a3c9b88e6924112ffea080a50a732c6675ee0175c768af871bea4c36c68d043e46c68f9b52749b1870a522c03414a7572f9ece45cf37c18123ebecd186d56e5f0207f4609a76660c691d44c01d11d8c38afb3300042ebbf3f0aac8bd61f7bb94e5e8e16a4ea4239a5dbf6545cfdec6b8f299ddf8742ab408f36f87c88c3dcc216a75de946ac74d4dc3d62898e2d0fb58bed736e084c2c2016d9a45a59d016ac1c7952e596dfab665f5482f1739444873830ca784b617f0a10e678260394d38177f01c95859f99d0da38434986c0b9d9779d73d8a6acb2a8863d8a0e3ebba149cbb0070f12a84aa258d9128a44b958cbd46ade069e756bfeb0dcb4a9b20a1cd24c376e7461009d9cebfb230021ef7aeb91755114cda143ad4e8ec621a8048a962e96ad7a319e6227dbdffbd17b65cd912b4a3e2240433a0c46ed092eba96996a06ae288d7efbf30200842607bac2c2dacaaf543058c4320a9f4837f9d3d09b41ab6ac6d00045217dfae708f982c425b70e63f15b0a9ea81f3efc647f31d1e7df0f0d3e294a9929e8efdc2ff59a48ea3a89c893a16c66242f2dd79bb692913159adeea5a8edf8aea6952d31cbf1e3c32e61102e6255eb61285c2804426048ad61153326c87573348cfd05d6e98e5111eddae794fa85eb5378e0afdf00fd096e9211c98668f3309c35907c4ab69173e00f29f6e410bc1131760eb314e104f3833a072b30543aaf4ce7a08f9bb3dbe4efefe5f89c8cc7502be0e9a29cc353488e648e1c81f247661dbb117fb01bf2cac73988e3341644ccc0b265c539642eab291931bb8745acfd5ff5a8ebd3785487062bbd8ada8a3653d7aacbaf7f9b20e70a4d5d568033c2049cfb9ca23dda37ef3acc71918ab9d0ddcfe3d81053e1161c9b7512c1b774f31414d7af44578f440744340e79e80e7d090918a729db34b11e4fcbb9c0e79c8f9fdaca844c5d746dd3451a26b9d2f9855a0c991afa5fbf29944f864540291426d8a48512e5bf01250ff7b09fc75dde5c0c185547a440e48b38623f46393744661ad55d992f570fc0264c802ad46f7ae8ccb0431df68b5c680f0a240943f70d88499447d3389fe75f3b20aa1a61ef173a846a02f2bd762aa30ae007e1a189fde9598176cfc41c7f3a4967dcece58d86f3dabaa1b61670e31a7210830f916ad95e0693d361ee79b773b5cd6751800823fa4a0a1f05220881619190410b1992e419f971537580fd31771a0c1316cd4a9c699af89d7a497ee54cff40841b383c1fb292bb89357794ad716eefb480fe128f87ae9e06526a3750b0d219b262d37da245856e2077e021594e705384caec0c54e3b1289fe4a57ba7cc7fe49176dbc4b75ba600889d41a2227751d71608ae9d4498f8e87d903ad4bceab4c389d598f37604ebcc8c2a345185374508f4245f48354241db2cac2375470ec19073db80985d0cbca811b37ee78b14fda4fdbd6e469614ed8f1561dcdf68dbc0c100eee08926c234cfb921bb7522cce99efa0b2e82f263b4e6066cacfaf107ba87d5a8666849d1deb54684e72254b6c51b0a16d067a6e00c1ececd8f0c3f10c3450809ef9b6f8017fb578fd5d93072f48c0e34fc872f5c0f8e23256a58b31a43d6901726ce1c7ca9444906f618b714b41bd48d738f83d5e25ad368ccae479250628f78f6ff6779a96e5a2285b6f6b85619e71141cff4df568004a8e5e35b11ced185781804376b791a826203f90f9709d0442ab5ca4fa052b21d7b8b4bc467d98f1f26c0e866948e5bcf61b6428fc1925fa4bda7c9ec55d5d0f0c940e43b5d804cb5e2a46d611df4d908a26f9a200c36417730013cbc7f8977dbbe229e3f4c79b6fdc77a350089ae89ff337c8733dae21528614462c552cbe88cfbf7642eca95cd7cd7887a550db7bfe982e281d237c3e63f69fa0a12b654977f15d09754f22b881b8c6d36de6382a8c71692da916c1b32899414cfba61d71ace810044541463850efc8d4d297ddbbf508977f358747e05adacdf25659962a297e08c2360df915d381dbca22f0ab93c4d50fb4b9fc8f8f8a113c2e8bc92becf74c90dbb798ca7f8a4d0f86aee569e8ab16bcd31df5a0efa2f5810a7732aaa6009a339d96a5c027ac48d5d2d29982802686521d22c30c9a6f79302d5788a065df62227800c6e917856eae1c12b81782f8d1add432529387be00bf71d229c3c491fbe72bed65172c40fa00301142d445b12ad93de4be9f68259e186fc20670653f488e297f79f9d6d9b029173f1f90bb0e6a1d48eaf3247765048c7414dea6efdeeca6ed628750af399b5273c2cbf3e376d3b78fa3d618f584d3e32f40e90a8caddfede3651c1ef5f7d19f8671ff0de60f8324c10ba607dc99611a2b2465821e3662f7497810c23ef59bf7238fc2e6dcc03c20034834109e9e43ac7ba16fe68c234973da1dbb2d62708f636f703af16244b34ffd7bf4b985325418ce627c3e779af384a09c527030257ea138e956efe6d66eedd9eb41dab2d3e303f32dfc052f3b5d6960678aa10331fc0a1685a72a06fc90a9d8aadff5e0a4efc82e1c5a613e614fbe14973e36bc8c86640c032cb90648da02a2324a912a8e222dba4858436868d02e6f3b8ef588e3c075fbe0bb0970f43e5e1ed4dcd6755bb42c24efe9d7e8ec82954590d9f109d99dbcd60045f41a369f1900c778af522c162759f043b8b8d641b27f770dbd32e272b8712d6687666e8e524d9104227170f54526830f309fd6337947e1ee4b7092a61a43d0639c8ce620176a82c7eea803ec9444afe9a668d0f1f20eba263617c9851bd03da35808477e714fcd12ca51ec723f3aa5c4d7a3c1a9f40426088155800e8d7fccbf2c1380ba5f2d1cb831407d53cb998db9583e56fdebaa03894ba7e3f1762ffa86069d51db4f9c4b2c61331dd3124344d24a1526371c68f3c60f38a19c6934ce9735d70663e711e07fdb7cd5b7b523a98112906265d11c04a74df6916cbf74751a21c04b0f7d5d018b85fa204a16aadd05a5c119b21124fe771c504221a14c6ed3c5ae06e970e9684d95d576929d48c8f2c6850991c88f074299eb23ee5f4d7b0f169305feaa99c50e00893f9cb048b20aede8e34257ac0b62ea20964083d8211b6992deedb9f2dde3c0ea0a74c49e750ee694c73c2d1b4296d11da8e074893885c2e36d19f1fa63ed223d4754e4a2547a5e3e05886b7401727ff2ad22127dc03e60defc4c1779385b63eef0170d7cbacef684704a3d74ee1f3646fae33dcd538cac07b4a9d56c3ba7056a3cbb1ab8e55151598c3dfaed3afb4b8e8911c0642bb8343d61e7446defc93b5e67190d722caa795c8cbe46d7fb4d571d9909e828548acd76c9d251e1e64d0032db59cf1ac8a748b79e38aebd42d1488baa31bd26725e45098c142310480a979e40281eb7372af8c4f47c3507da115e88b7c0df525d210108b3d4dd4ec7a063359b33cb66107cd9aa3a0d4adceb937f63266fbd8b6c61ad2c3f5da143ebc4f0399e31147a5f99776807c2dcf644fceec9616d50b6ad2a77bea89f25420cca4bb1b9114cf362577fa630ede49f9fb1736dc61c1cc3d471b902fd044a12e1dbb3d041740aacc15f3adf9dc7d2937367375609239ebf1338121e409ce82c071ba39941b5a2530973800c4eabedc36f4e90f20aa0db779d495ab88e85b65f2cb223b01b4c89cb74ca73dbda6196ae429611024747c8f77aae641c51437c6161a38b58ec40a6536defb6962b9918cc5d5932f187d15c02341d684f833e06dfe7e03ca40e1928030c5c00521bc49bddb692c7182262c8adce5c33d7f2440b25ffcfc15def498ae83c27e3d980f2f55f9104b9faa515966f25421a51891f5f845bdc9dfdcf73b219890954f738a09677fa409356d9f2a2cac86d5eab4d99f349db2d582ddfface17a3258940683844f1821b9278343fa1d9f842bcaa048f8604650e69673c0e0e94bd854d3a157bba60fcabd27021d34a3c6594038f75fcbb54ce24a2d3e4945ae2df09d2d3cc7b652a6d8b449c15e2db6bc8790b90be4f7cbacc086077d9f176ea909a149e03564cebe31fb128770a7c3bb170321608c9beab2f665c81f7c419d8f6b9eddd0b9c1b2fc0b1c967fc512cffdc93d1dff433c4079ec7db5368dfc071401b2f479035d01313f90b74ff70d7ff1689abafda132a1fd13b7f1ee1e80751d65b220ab6b72c461340becc1122127d32c9c62822ebc3b679e2542b6851158f677d9e2815865895e001789c2feb394a365091f81b264038603c6863899a591b1f59c40bf47215ce9bf13c5442cea94ae9e4c61532905bfb0e85cfef6b6258baa6f51eb4b51c482529ac343cc807f6584a579f822c10ae5b45abbceb39ae80ca4081c31e726fe52659d7a1d4c63c43bd6a4727cb2024f8ad7a1ba8d3ce2af96f166f30831c773c8f54541776a93c7940a59aa2375ea8b968db7addb74d1450cd2c713adf2ef398223842fa28a1c34fcadc2e9886e1049bf90425c2d45ed92ab071f2ba2fa5c45512d38447433e98b272dae383d0cfb857748b13b33450f934fc7de054df729d093cd29e36b46238b0dc9f23afc4613e6eea0d591fca0d5fc448209a5ea5187c498eed0d83ae49b3420dde5889799d6e8042c246cd387384a94204050eb765352ee20ebc435e997b0d615bcd2eaddcd8d7f14a56a38933718f5fccb4a01b91e94f0d11c53fd5d0bab1283cb3896bd50bb31823c6ec268edc2d8fedfdc5837e1e76ace6c8a03e5380d75a64e76bfd701d9e1aa9208134e4c5a0f8a36a88f845dc854493a6349c05e3270104f408f6240077b8a4c8cdedcda45d64544e7294f8d13bd4b9372b4b220a3260f03ab7e75b2e68352baefb9025e54b340097a8229358ec1830a76a8d4e6a7d7843fe96ce369eedf40a6345c087efbf80a7a35d3f6717d02f215a8674513e652db159d5eec4862f35813722940ad7e13a485a74eaede6d942727278c52b5e6bd75731804ccb962ad09992faaa9a41f684a444c3fda48a45640393e95d93cac98c457796d51e8b7d1b544f279b99ed997f1686c95b8604d1107111fbb322e5497541d4401f852c4b5e8efde62dd665dbe1664cb240729e626ead6effb8402fe75ecb52e6162b09f3a1c99e0e82d7908751da4216a6e68e00ecb1925174e0fd3895b0c69a9c64ff777f2dbcc3db3c312ded549149990ca12f9044b3203d72db67d1317202468746093bc2469b691cd61ec7ce7645e54c512fda066627fbf7b5fbaddcf0aaf0a57e11837668aea376bfd86fae6cd83a1aa10f1b84d7e88f40e96568b6f6dc49d767f9029e3d09c439a1bbdcc2f9e22a489e78a8a5cc0c39d87364bd9fb71ff27fff151d1df7cfd8c442e703911b95cffb133701c484f182d0411075d4183ecfa1cb7d1c0040f853c83eba28a4af7035d26467e94181480a5c5b4f8a380b6f7e5da5d7bedd2ff832f6208aab49e277631600dcf1dcffd9b04128ab4eb487641c7785868f034db7e4ec269abec4546301a11649f96187930d0d4fdcc615bec6b166d8c8d8fad4e3e21274d3abf3921ea81db9f90c2fe7751e1cf2fe28fdea484d9a3760521f4cdb6a49b95736c3f4ca4fb6467d7bbb0be89c7c651dbe6b4bb2994bbfeef4b4721a54655fd1be7fcf6e77a7f7661a3f4a31f068757e90c2584cbf6410d8137986e3b77a4952af1dfe9a166944ef8f71c76f81054f1726fb31b92e9c60869df7b685bcc12b9d2083125f215d459dcd155337b92339e2873316e0e82dc1aaeac284a42f64a5f274ad0d20b14b3db55fb157cfe5e7fe59b792fdd5bff95dfd62659f895d3577350e0521da1ca73b96b3c1140454fbc16be4927ba354ad48470a2472e1302ac1c0ad255a27567eec8eb58a3531ec250be8e9c3cff6f7ef069db388e6c4b4abeab1abdc7afdf3d188f073edb5e5b6a2bf76150838d08f0730c1e2fa71249fb7816193b3617c91b4068af744dbe809acc386741c2697dc73f2a29bf8128f5fdf44e584c7a5760f689c0820dbd0b7000e40527bea681e48fe120a91288c4001fd117ce55c33da362c0b0564e23dcee56e4d1f7e02afa1bf508c725f5d28659b009f5beee8a5bb097d29a2314cf000760d74c664384b9d7de3fd5c0da2e499af67bcc20aa393868b10c40df3682bf7e1435c7762f365ed1bf6a5adbc6c42f7e0e01b885bf723d5406c01be80b6b3acc9021f72717bfe315506b8aba1250463a964d3ce0531b12c51fc5190e1218870b73a05c9c6eafba04e02a87cf17c86cc74970caa6ea6de3dfe9a8b1daf931a79d95e9abc01d702218f21ba3400edf922696c6be170a0d4e60c8dbd06ac8cbd639b1895111f7125acddc738c5f3a2a96a6d5a51049d8bd64e73c5ef719525611e21ecedbe4db420b3c64284572f53be731e12cad1b3c9352717f46b10fd1b5f19eca3701931ec46bc01782db6b9ae12547665702a7ff20206e175941a0e51c01e45886795a2a87ca3a8844d22693e2205ac11c56bfec52fc905bdd7f35ee58cedbf93ec0dcc963b4a6106142aea35873bce2ab6ce10f53086c3322ba8cc30d6337dbafbaf2a96447de48a22340f03177c2cc1cb6749850c4643f265b47a40b2a3b80a24fcb1dcbc52368900527a1dcc2198aea825252db40a4053d6d50d9431a1a566c300c836dc71bbe615434c7fdd56b44e813b255f98ddc98c5140a3affee03ff6f0d797b4c610bcbb74d05afc7f36882f1bed3396b9b8f1ab5e9a82bdf1aa14b4bbce4c851a48fd1a7e540a55c58f741b6c4fdbb5dfbac51934cfbf63c106e516c8f12677888e97b6f615563db46daf0c67fc79a1010383ecb3f960614aeab0293e5631ab76790a316f85d2b9765258e2639a6ddfd2e1dceb23360f6356474b722a572e9406e18578c41f1eecf10cf4ea402e6e290e1dc9dcedde3c208f4ab97e6c38a50d074c9a223d83adfd966ee5226ed194a85b9b5611c692674973b820ba75026d7c1e4544f054c2db0788d02dcdf12877b109968e7b0071df69ec1be55bc0b8d51d44f56bf55c55a490defbf0f2b357c7544300c257192209b0cf604154ede4bccbe952c493eeade234ded76dfb0cd47cb95e6e9ad5569817177b95cd7915c957826189b772882d391b56a831038419b942742e38200e42569e6b3f84fd348802fb0e221d2903af00fa1dbb8b9c316b55a745b039876b7eb302d5984be001bcc75fd4997fcbe3e605e7f10df6959253cbf4c1b7aec9542373c466dd37f4b0eb4caeb852dc32f1b5d683eba4a8c3ef2f4847b2b51b5ac13b50258b94cacdc87565d6464bff3b9b15ef6824e8a94a270d11c6171693e0f256c287e3de293d6cc1c9ed528e9691513637f2b558c1e4cc7ca4406a7f3b53b49b486af0bc85b8a51638ad1904b382b07b054596e493aa03e48710df272a3970de191e35f653e1907e47dcc609081ed4abeffbd3fce9857df195a000ac9b8daa0efcb6f60e508e44ec2016922b70b584fbff284581f29d8db356f605f29d2bb1a2f7ea3a3692a4f4d02f2279807838bbe07db34552f445ef1fdef3fc642f0e00b7413979bae753b73be3bdbaae486ea773e48cd9c1c4d8219616853be0c18dd062b2becdf4aa26eea8f3dc2923c3ee6a4a089c233b96ceaa48956dcf2e0761f96fdc3d994aba92058a6fa44dcd9b2082391fd214320346a611cd25d3e1fd17ac3896ccaaf3eb255fc0a886cec48090a5bbd8dcc06e1578524d6fbb709d0fd9173c11d9a1912f458cdc6c0f98061f8635b9a44a0a5d539d5a61f09b9d2f571e9e4cb9f2df25c2f2578f105323d6cf0640103cbd1b60b1366d14aae4638618e7e6719c7e88f715f61a27ebef60545fffff7e3d60f8bd16d89f11e775f7962da246ab2b0c06a19384b140b67ad2d497e755b39385b578725b846979ca5ee79c20158e9b3bd602e9f8a6a1ecddaf7fedb5e51243e68f0c67709009b597fdfb5e829c7c485c8f7c936b0838546e0a45214768a65e519eae603bd6922a4a3c07557fac549d69b4fb516caacd44d622c46b5e69ba3a153a7e0eabd751912aedcdc56d5e9a48999be69590600e4dcb29be49cfbd3dcbc662d9179f3cc18d17fda027ffdf11a3bac2e1aea1ea94bf6621d08c476b3797a1f8a58420bb72c4d2d32d692a7e14a6639d81036974f4c69cda9cf69fc084d401dd3d0d558f511d45aae05e7ffc8e59cc17a631476efcb251ac6311b80685d0eb6698f9591887f0514b2ca3e832df08ea0f8529dd4b3965ddbec7db9e4272a842f47d2a19abbc8c591b9c29f9471df0888f00681d4104f676d1ae8e674c90d3f079de6213fea7c4047602ee776d3ef1b9fd56a28ce28e31ffc10facb9cb7e639d5f565bc6a7529bbb91d940836e05f12af18a3524f8763bc19117228985c3a07c8e320614a845a5ae7035a4322d4c8572cf23e66653d06d68b817e9a21b5a700424e6fa31114a78f6eb10d412109b27dfbb6d1f7967d38ea49501602092d76cf4e491e124937f947d833be284cb70a531212bc5d8963e0eb362b4de191be093ba154c6e3213f6d533e6b6834af89e12e6ca810cd9e50f122e8dc7aa9c66fb4e0f595fff30047602d5435f75523411cedc59e60960006097b3c754392e6378f12e8b80708a062fcc042a5efca4bc574d6cece1bad199f1fc6fb041b415b37dc1da13e8a98e5034f43bc7c9ecddb9d800f2be7b17376ae63cd26a79cddafef3c7ffcbbdf6e387b230d64e45cb64e445e98732e2f4749b3ad6571d766ae065649adf961389620588468471642717c0001a7de8d3eb363e4710527d8028573c3a961dd8c0880bc699917a5607707a28e97e22fc49d4d79345dcc5891bfbe4f60ec34a1c5252a60df183daf4167a58254cfc5ec8d253ff293f07f0e0a0c1f7d07e11e5b23e42fe80df87954618612c88585874ee402666dbb388de3450b6866e9b69d545147b382fbc862f953afc8f50361c3a7e969e97d6e310fd7377245e607afef0ad806cfda7848269efd690976a83b51fdd8b621ee4422cbf8d68fcd3f0700fab41ad7b76c8b004620e38bf8a56c616c5d00c091177353a760dd00fdf2ec3ad6fc203d332eb7276304601cf69a531ca05338a7814dfad478d69f53f992b2d94d012665e74df7eea86b9c69c669c2cf45ddcdfd2d4684adaa284df1121c12a7a2a47d37a4c0b2b51d3d1076356865b109a06bb442545b9d518cd819a7d08facaac907380a149b1080a61af08a29df851d3145adfcb10d885efe4547c43db87b2db5e92e971d5986fa70e0d0cd5d4a207bcac9923ec9e1a33cf64182da1ce7fee2810ac5f1084996c81972bfb889661d338817b43bee00ea58c645d1a53d0818a844210f63fa385b1033f3f63bf5481d6d8fed1e18fa133878eff0def7b1cbc9558e83739c7805460a11a67b96340659a0852154b060ec7d4534de451e7f668cdb8f1ebacf63a750e1704ade5d7dece2c63c254382c7a0ff02c0f03be39a3b451de3769593624ca4d8ea50da52aefe752bc5fee2ed5e0d486c54b01edc9fa05fe7eef5b55caac8c39e72bd7b943e9d67c3bdf6e210558f0bf494123f0efbaf0efae06c1a9a5dab786c6122eadbf8932c8e7a3eaf57ec27f8f3c87d902b052c4b5b147d0398fd64b8d639c9ecf714561a3bc4a252593b88c8d16b1f5a37b809d50bb8c20defb96f5ecc3eea0ea079981674567a4172f38f3f07439cacf1ee4e250ca64484d2db0d8905ec0dfd63a9dda28ff039e0e3d274a4d7366374649046a40628504452708f20adb8e2056e70e37e5da035f8acec2d25011f227b08d5b0945420702914a715bf58e0636b1e5ac7099d57608a639b6aa5a80689baf8167c87e631f580ab77d5aaaef9179982c0d9d75ce392f609b8121195441c6c9f5e38655e4891589acbb5cf4dfdaa07ae3bd7e3a54862174b0093caacd19bf7ffea6e3057026771dfb3862e2899633f42135e7c34799965b313603b6d11a6c5005d736739045cb23fa5b4e96da02eeb869413db98eaafd9648c5963da5aa2cc72b0c886a1f1068830123a0e9c6b0c280e726e49db6e0ae86c137bb98c994933a7a1838fe42e490d4c96e742acf8f1aa84ef0aa081a5ed10d5b91dc32bfa75f79276dd5e3e6016e77e6289cc9e2c8e938eb1bdde277252ee149720ca0b0dd08d5596eb63bdeb4ee4c9471a42b478799e59723da085df629a76e9715e270b8b8dec7229510dc661869f2d85f3b9f5c961a206a6d595fc5838fbf441da984d1736b9aebc5082fc041095050ddd6e6a8ec5c4f6dd887d068141e6082bc8a8e2360897a291acf7e9c8e72bc279b63cb2443e1e2a7a0b3f9477343504d51d5571afcfd62e502fe14c7dd6f4b2af27b5f5f3ab24e44f7908a091afad4b1b46fe60e274918872ca06d08ecb81cac6a05ad723a06cf13631ff2b8db274932c1eb09a901de411dc357054345cea55caf36ff46b9032484e320c416342a0f61f05098ea601f532e9f0d4c1c59869ba0d0d9eeaf0c427a0932bcb8e30c431f60da70ff5241f4d20bf78a15603de72f7c3b6b8679188e29b10a72e1e0010dc91d05dca1d2b4b6cc4e1718454b6586378747d9fda14340f193fbfe547fc925b779f644691f161f17a8baa4bb1b796abdc6c5ddd05e06ff9f8317f7c544e6ec6993bb5b17f459cde43c3f39a5f9f66493edd9ddbb54e6563b416d8a0a23fe1d0c26db60929c85187a0c97c083db0f10117309afe57021ffdcc0d5c948a00451f16c984c7dd221d25e68eb88ab13eb96f80c66309089e1d2ed7750b9aa33d55e18e374a1cb4e5a4ed93efc60b88cad0f21b6ee366abc3db181d85f0efd3f8686eeeddc03312692b5128579a58b0b78ec53656c2750b138d76152fee2bc40beb8e7614dae26be0ee81c3dda23b578289fb2374f2d15902a80d8fffca3c457df006aa998f1e3753d4b4174cc278d1c42b30a98f7d791d5ddfe0037e5a374c5d64b419a08a291d5143d8422de42efc827d0371c39aae8f339148454307ddedb1bb3480e4e15ab5fc150086fa613a67d04a15b948dd883ec3fca40891055e99c6a81313db62f2586a441cd0b3b0e5a8c0e81ceae206f84f1316f5a228e196f1b74890092b9a4193497eabcffb0fa6ac3224b185fe9c78b728a2d2cde4023e6b0293fa8a9a8447e13d9fe527603fd278420778b3ad2d15bc5bf3a5cf23c23ddf3b79822050efc783e5cf0444bb68d3d38c6e4242f341ffda11ed4535ddbbfce9db0df41af688ce0ebe58dddaf95612b2657a5b2e98278b3417c1d996b9589fbbf5daf74e250c043c650d8472670d69ead0c36e024776f553044f7d721942d91e84578948ef438cf84e3b0777fb192a3942ddf4c7d7e96fb815aed2dfb0fcdcc92cba831d386522fc8e99ee450803215f39ba8389a211e3101d4cf8c70b8daf71ef32a53032865a01616d2f94d1e9ac2041fd5bd843adce272769f597b3eef717efd51380e911926983e7510922ae2ac53554f9f8f6ce370947d6d29b0727c311e1cba0c510e9b4e96746fa92d7f0c2d9e373f3baa885cb6c31012a2e9b4ea6d5cfcc3330c23fd54409095afd1b26b5f7f103dc5ac9e25e05c8bb8c5f497a70fb60005a938b73c969855caac6cad61a9294216b271af0dd156eca03258544869a1d06a2e0219e31f07c4fd6949d590021b40ebdd85fc95a8da53c228fbd70c3a5c13d3a5dba399cf783c6376af26dc9b1840b2c82a390b94011d460e1dbffd56fc13660c240d45dd5412cda084111465edb526e1f87332e2cf062dc2f9dd0db7e48f7f5ca51ec7155e398a5cfd8493020db325a00b56a5a2a93e61ace1f47a7a0e93dfe64a707b2dcd40fe0745243675606c136fa5d82818fe6f6d6053c20466a250c84f54d8c7fd7b4f6cf98c24d588ab30c63019f7b0dfc1bf33170ab7cd8c5738da395210100f6fe156582f2d129993c6ff55b049ff17870ce5cda07f8d5d8868259921184b937d9932d304d1e8ab6cdfed1cd030a9596dbdd7db00cd6e75c6ecb46227f94afbc3dec066abd6b604d48af000e34c015c6dcbbd2bc2151de509a47abd6e6d9b34b6f71a0b6e8871b9a7c0d973f7a44c07fc4d998371a884fe81286d451a73bae28dd5fc7c6ae16458b23089363c428ccaa50b3879d84203b39b66ae55fd916d72dfec992e7f3123f16b6d34075c7defa2b05bed8d5cc1540fa9143b07655322254dd7d5e3c9563a2bea7d3a01f45609a170474b57578d4ed8987de064afbc0d38513e7502f45350d8aedc0c234c7b0a379d8d55c859aa9a152ebc2b38803e59536503b4b96c0892fe29854dc4f79c9d334d7b418f5c06443e66356f40f8315972b9b43c245831f2d1925de2c038585cef29017baedd319e2f9dae0fb452f27656e35db7677cbd8dfc415353cae4a3a1674db7e43b78e1379ee8a63cdcd22d6e2f0a5d8a37454f86258bc377fe1d78958ebe1a2eec95bed18f1e10f78c97bc74c5ab6e4c2078b62e872c0b5baf5f43f3dc5eccd373fba276fb973b544c8454d3f143f68771467ec1ccd7a7bcad64b1c4ba956d6d0f39ed73fda327b9e4085a45fe5c0ec7117bd7e5e944340608d6fea2c720739a2e6d18ec005a8c4d24f1c8d5c752c283a24f8b0e1b5716d68171202dcd58af981c64211a0d0bb692a638f223145a18928e10282cd70098098ab77b50aa279bace1ca291f004a7eb6e6a63099b580768b73ce3cf857ad44606e370ba7668dbf23d6124f133b18f4f59c78d66980b7fc0a031d59694ee39c6a07d7880f63ebe0d2696afa6976ac404260191c7f1edc9b93ce13c4035a00999b98ca66000f2ee2af84691ed8535ba58bbf92160a8dca1f5eaac667cbb6e1f4d80b3d9bc6411e4fc4d57331e208e46a0d4a0c9bf902e81d6a09c3faebe0fa8e97415700bfc2e0d58efe2611af042b2220e0a14f9a1bda28369e08b01645f8f77c0b47c8f598f02896e7c34f38817162553dbc4ee03fa59abac56205812a9030ab9cd095b2bbf119f20602ecf0ef4ef2434b4f501641b1a3a37a243c0cca984bf982878d0da5c65bc6df3ef7f06d0f3e4c7417bfbc52e6a65c140329ea02dc12bf04fc413ec8590bd7713b9b794294919930af20afd0a241269c78e911ad5254592cb51dc4f52174df2fcfa845cf9c9f2a49fdf75dde827cfaf3d528725c51d5fa5953a2caaecb16012f6c04fa4ba9c4875b72c5b2cd8347314f7a49f1d4c3247712f42c11d4d2cd69315c82879766ae4393b1864ee47d412f947d42acfb1871ae08f3d7ef2fc5a6ae409f3125f648e7275219be409837922cfa789491d30d3c8f2fc91064a9ea69f3c5f06039b3b234c2c4f989e3c615879c2b4f2645922cfef6252a7cbf35954526725cf1f5956799accc8dc4bd12493286ebe4908529ca9998890b99a9a07f24c1754f945e6a2496682756aa666ea42a666e6d84293cc45926ba6d62912ac67e690295217f2c4e5da43efac842f4dd4d43a359f7b1394e77e079ef971144772b93803e42858a766ce90a42e48ae5c4df022c22fb299d9eaced4a40e29734fa37a1a99d4f132f734506a5c52c725738f9a499dfbdc6892cdd45040d9b40226ac3e713fa2ced8f123ea2773636565d34c8dd54b9856509fab3fd2a832575fe5d630e6becc1387faa3c79d0dee878f881e89cd5fa895395a1e852fb33e712f50240ef71f3e82e4e61733240ef72f65c817b8779067862fb29717264c32ae63756ab402991ac1a08b238f5f2b73ef79f87b107b3ff2e77ee4ee53a4ba1d18aaddecc2597b4231a9e33df7dd1332f5b5ba1ea9f33df752a63e2ae489fbb12ee9195d89ed913aa1efc9dc7b21dcfdd7ea5455223f2ae492dccfb592dc3fced446d217dd290b99fb7154cb5c0f3232f7e34c2d731fc23d6412e7c8cca389f485492671b86f2f3cd5240ef762ea3a72e88fcc1799d499cf79217d499cfe0ebb4ae2f4874299e36cc8a32671b8174d7147932c733fbec832379a643104655963444dd2f58c4f171b05e5ede5cc0766cf3f0e8bb2ec14f73d872f75da934aca8946d99b20157ed889af0d2eb6fff63fb8487f7b204027d706a9b3236f9fc30e2efa38899470c71f79fb51c3c6717f3be53e32f7392efa73ffc3c520a9c323735d2c6f5ce6b6df5486ace14568439fb651ca46416d9cb2e492b8f39d071f28809ee684ea2bd3ea6aad482629d1836f4f2b32050079eaffc2da3af512797e3f0098e4f9ed1aad741488ab17d695c4b1f4b7d04f50080d617f8bebd3fafa89c4f30dd3075ffc6052f71dd95ed329bcf9de9c53ca39e79c9544676ea154fe58c3167706774c9243ff5c9ddea250686170b9b06758a564dafd9c117f45e913fdd1a71aec13eef8233771c71ff4c71a06e913fd1f3d77687efade8449fa2f39b8f5c71f5674df853fe88f121ad7860d0eb9594a9c233457557d72fb6be8a966624408d9664896fd2f37da9e2d22c27305c14c463293bd9668e635c592e3aeea22a1f2a25dabffaa2e123d72fbe601d474bbd967aa0ae469d2ab4493382f64bcc0e47bd792a16826717c884ae2c89f81cdec40a646aed115f2e43fce78917900491dee65545e2f30fa23573f31baa209fdc29f5079591ea31a6497d9814a062671fc05f6cace853c80248e7f098efbcace85b1ec3d5d2b7b8beacc35b412c7e98b177df297d80bac4fd605b09958080bdea827cb9fb12c6d96b0ecfd944e2422903172328d32f9656a9d7524e373d63ae79c331ce9b71bf1978ca94f32b2eba431f0bcf94311797e464e794e79afcbf99d67383620db29d0b9a9ae92bba9362577536d71c7cf7eb58e5bb5b8d589bb4bfa7d4478280823a52ac50e2e3c2ae3a8af51f3fb94bd53b21480ecd37f66af1527cbdf9eb8e3977d7c2ddad4487221cbaf4feef865db29549675cacda9ab8734cf10f7568b0ea9151cb26d3d3d1b3884cbfede68bbe28ef4f5a2d1b2f41eefe958c78282aeb8f3e50d361331eba81b6767163216c91e6e7078d234caf0cab6d272be296ee83de97236157593d44e924de9a45ed3393b28694c28354877b36c3f8dbc7ddd41e993ddb6b95551cc0d5ba6df998663037227eb93f58be54e63b9c3d910ebd26f1c335fe5b7bf38668656bcb7edc0a60d9b688eb272e762b9e355d6adf7eddbb45c5479fb362e17ebdbb779b9b83dcdf66d96903a1f135227f4159b7e7a06fb3b68d9fe6632cda2b8a3cd6a34cdb21d6960a4a076e28e362b1a18e8c3f62a2f411feadfd066e5286bd3e3e48ea420abc5ed999f0af2cc7c66dc71c635e39a79499defedcfd440ea84defe0cccc52ed6c9b29d715d599ed9d8b79934e6286bb302a1b8a093cb729106e628fb9eeddbf4d0c0469b5738dab8b2a536515cef6b933bbeb4e6cc0b66aa18fd08fbc80d791a49193d01bad1e1114de2d810a4491cebe48e1dad47e2d8f78e10831ad97e0c3f2fb85428e691fbfa8f333ffe232908ac4d2e11b38edc7d55919e2053a6190948ea746f5fca948908f28d6c7fe6678a6c9fc4923af449413b9e90edef00923aa3c722d3ac77602242e745b66f3ff404bb03510743ed20db1f677ef269896c7f24059d5612a7473fd2c07864fa16962dccc16cdf8649a7444f69604f03ebd4c4dc09aee7d1665503c0235b2b6ebfcd6a026925a34d4fb63fc1111037bad0b2606d72e78f2fad21332d8963df8d6c7fe47146b6cf632675466fb7c8a3d7e005d9be4c4beaf8834366320d81b27def7321db0f0160ec68d97e17b3f6de2ef6f198491dfaf6675a96d6208f2fad6cdf41213c320d51308963bf04c7a5810de1914721cd5fd93ec5638eed937d1095ed7ba10f74725d60b9d88f823cd2c0b2fd2333dbaca44e673b7fa4f941f712fc422284ccdc852789635f888fec8556dc777b436bc3a4cbe2daf4f4c97e17daacfa74caf6ad0b6eff68b3caf66578d9e63187274d238b2ad3ca64cea67db556266aad3b4aa7365a69e158dfc894d61f2679fcc1448a550ca986144b8efa913a5ea6358d4ce9b829c9348e4ceb1332ad6ec8a468bd3c5631321d2d0dee587fe853bf354a13b0095aa7b6b0d27efa447faa4ae254da8f4e8d96fe4b139652982eee587f32ed28b4b64fbfbed129eee9d7a04ed9a731f6659ed2a94dc5a4535b8864669e9e4e859efed6647bd2a9980e6f087f981ed942cba2dab656f6f76c002208b44993d9301b8d2725df7a589da27f5aa9723b19fec31a9407f36910306a1b3f7875f3667794b42935bbd168342080a0d16840d068341b4ca136ece0a8c9591fd8d01adb924e758aa66e9f7eb0610d59e7843b4a5acd459aec445b8b65069ef56c0aaeff487b8e53ba4b96f7c211c050cd1e9f39e6c8a7930f579e9ff303065a54a1c9d02909061656619cbae583e9cdb030cba38c9267a53e6ff2fcf93713c8ccf33fd304e24fca32a71f799ef20442f6a63071e78ea858b8db16fa09fd0401e901c26242c38a090dab5ab78dabb5d64a43cf941b0f2a133d652f019934936ddb6809ec79816c2a7ffb3a1c8d94a078dbe6df1bd9dfdd81a0797bffb1c16bc81e9321a7f3f62799529f84ccbcbde73c5bdec26de33e26dfc7c45379d2d485b697af8267c9c9a55de8d62a2ce108ac24688156ba240d20cb71148b980eac08c309b5c331440620a50ed94e284cb2d34e2eed938f770b85508721c167a788ee8de829c22863270bff243b5e087758823cdcd7df42388648e8bd1822a10e77618c1716f1497692ec04f18d8e3c773a23a53c9fc3444c909334d94eee464323a58a6da6d8660f87609f241125e764194b028b3cafa0ea3e0aaad4ef401dbc0c765d90ee441fc429fd98b8e10bc799bfd1fe7d8a3b2c527951e82df8743261411cba0c8693097008f8dc7b221107f2884425f9e3055f24ca4184670671f7417cfc7233b17456bae44e26139cbfade1c5f4cbfb7d5ddcfe29d2e08a19f33dfcdc867e823e742fa92cffd0a81eedf859f4de86a38fefb97034e551a6f1351c65284b02d1c050e6a3ac71aebcd0479e79477c38955a3ed01f47f5c362a8cb51fda290b21cd5edf9207d071188ada3c0ffc050c610193d9864e77bf0c1b008f047a105898cfe0b8bf87e14523c5258eea7aedcfe236565ef25c8c3dc11852747491cc451f241fa791bab556355e6610a84658e62b9e8d6de5b2afd8fa73c5296abdf81727f2771c719a31e7343fdf9358c21e51014ee6b410779bc79a4b22cf32395e5eedfb8245c8357f0a469bc76f44b6ecfc0bd12bf237b06fb8db2bf7d7dd3f7131489c00f4b6cb1535a29ad7486c26f846da3b89f967b6b6d18137a991de409853f407a833bbf659f4e7d9a96e3b8101e891822776f432fb950380ec161fb121462c350d29076ca86b64f1cf591734ca606db4241c7a7ef2f5b5c77bc99d4a9af34bbd429527bd8031f59fa348145be6bdc64e9c34494ec9941a90b59fa3471c4ea8b69843acb38f938238f3f4e906779943327a4c8a3fcc9eeee8409b23fa9e49fe3e21113bca4c0ca011a6cdc60c7df0617239082237ed43843a684133b7ecad287491b7947963e4ccac839745e2fc2f52c7d563ea0e376963e2b2fa6d085d32d4b9f150e7a8c1af470050f1f0f324041162ba8c1b105255e662c4096410713b420852bb0a8c8c110ca5840cd18583c5132c612516400850a3e435801122a2b684258000c527a8049c28b2862e08410542046108a38c10f8250042220e18c1a4c325e70630c2678d14411980003190fdbca150324e0a019a16702410211790219ad21a81184296c3006106cd040055020414610a21023890eac30e30750a86009256810c6023220041390718413ab2642f079c1620d348410052762c0b133c1f864eee1b37467cebfacad278b071b3eab9e52c8c98df15c45d9ffcd2185ee0558a64ffe35fb9b68d9264b7182d1aafde4b106f7eaead4288385cb746a3ee9c49de0f37cdf7ed02d3d59bc49d47b566ea5758707c59d4fab94acb16bb9ab6c97b36f7421023d12ccea8b8afaa2b44facfc7da1ce6179ebf0f8c3942557fa6ca7a8d7853c28ec8872775339b5c4b9e36759a5d4912d7126fd66eed6514efaac94b8f6386ae5b5c80f483ecb463b561e2b2bcbd9f289dc90527a0b0b696587ca1d8940171758a1cf0ddbdce63571e7bb7cd9274a43ead4bae1eeb465caa93fe1ceffa6a5d937ee7c2a4396db6ad7dd169ebbd75addbdd6cad55a7d78a21bea3e914b6749239595972aabaffaaab472d1e20d43e545eef7a9a24dd5e6a3865a5caccbd7cd714b2f94042f30b556558ee7f47f215a1bf1c1e4c4c061e1c8a1aa0ee4716f0dcfa50433e3305fd5e2f2a8b45f9dd2c29d1e8f49a76ad24c958b958b575ebd5edd1cf2b56305ddccdd29a5ee4e2975774a69ccdd29a59d07ba7460cbc7327aa9c194db64727a6ab1de1f393236e469dbb61da55927e852b29c833cfe52b9e913e6b39df22ae998446546f562266846a8266332b27483803c5e2d6dc3965e661c6626e6ab5a5ca777dbb690cae8b833c6f278d0d059e7cc273756a52c172b14595759141c62943502795c1693b16818aad928c87cf6627872ceeeee396bb743d9b3d6ee6debeeee70acefb56728b7d94a78cd79558b3b6a014517a6cbc106d97d1995e40eb9d2a34c83488732ad3fb4586b341e7aa7d6da38409021586260622c37e594f9787cb65394d6f0a34f49f098f96ca76af5683ea9e2bfb97753ee9cf9ea1697460a9c1486a03c5494841819eca47b79e099af6a71696e4ffc81496add16eea4afffea2a37e8b35a28e08f861ffd1f3f71ca1cd55ff3c909ce2973b14e196bad86842338fd0bf2d055aeb59a6c267bd8b9248e8542ad734f15f3036f4e6f230b734ef972b27127b779fbecadaadcb0726502191a2688d1276e294b1f13b87c8bdb92a58f09a020021db12b0a721b20812a51020c7fe292b2f451420b874209295aca65c9d24789237c0a17b4024de2824040499c01fba296c41667dc952c7d927832e5de2c7d9260a2856bb3f44962c9152e98a5cf122c0ce1eec8d2670913d258e246d36e284b9f253f4b6648d0aa0b48739372c3db5390a752f74a9dca2afddff4e1f9e1da12f2c297465d39aab990b23cac3d4a108d46e4ee6fa573829ca7fb1cb1461119f547714c91fbbf375a546939c8fa803a4555644d624c60e092d794dc2aae4f0e9599d7ae92bd0173a9cc1a521e59a5e562a7d151545a8a4abfa1d272a8f414151af6acdf674b202179729a3de47e3ab9f529388447f6f7a64ce2d40771f023486c6e89b37d689b1267db8c08cd6e910da5c4d9421edab184d0e490575571e45a9fbea48e7f5599e55abfd36871e42aa94347b2293139606fbca48c3a4aae1d6b0771e45e62665712a77fc33239602e0f43308e471eb55ce4a234aa5f8aeb8d971cb0dcdc9458ee25b2dc75d5b158f216723f69509793ea38ed3993905a2425ecb55c6d0179fa8b24568ec03206931db417090d26548c505b899282cb46d00e3aa630a201a9d031071322d94d8209481b3df1c417c40d110c4ee00551020b7c35d125a19504d777bb6022a406cd13c3097b84568786135c9457a88d136c6bc0ac1492a848e0c0a8830a2c0ab4310185075923a83e597590365ab48a3ad558a20693bb45135ab0d1c3c66833123fb666e973441b3c9650ea53a54d5c17597b7169b2f43962066dc6fd2c7d8e58820677260a3db82f683815aeca17de73391e5028ae0b151dc71d65e9a3a4499e8fc6a559fa28e9318092958fca077547a659faa87890c7fb60ccfe48a5b6b4d66de3381baa58f0bc68aeaecef33e4b3f101459fac97c258ee89b78fc7846e0109aede8daab32e70c3d951d20cf0eb0bb5b042eb191536e13e9595a5a660b69f2b8b0b8b8b8905676b8b8a85c171797918b087471f9bc2e6439971ede14de0b10eee749d348a3caf4b797ad2fcb31ee38fa19fd746a46a1b9e83dfd11d0e88d51d0480ed0c9ed989027fa54764e644a69ff480d298e5812f5237558321db96005521cc9a8c83f51faf4e48e23d9cf08ca68d6a951ac4ff4797878d47214fd0e8fb0c0a3d7888b116ce4459fe88f5c7da2cf1a3de9131dc94650fa447f341bc94031ee38928d642359a6aa6d7eccb6d51ffd8ca27091e98f689d0233fdbbba4d5a9c5b04d11f49a1a38a4c47ac4c7f1cc951cb746621893c5e55a69749a623a04c7fab73c4ead4386a9269ab53e348261b35e9d45855a3279d9a5fc4f238aa22013e764f64fa4d271dfd64fa1e10ae912ed6c572cb1c661cb5519b5c0946167a32e5d154956954a11974ad391b1ce279dd170a755f37b3cc22d5ed747adb2ccf91ee45aaeb59da0ed31027655d856012677e098e3b43fa9238dcd755e6beaebad686829e73ce399ff4a96bab4f5d597dea1f65afbf0eeb8f0bae37290acdc5ea4585c958b24e4d2831797219052c2a4f81274de30b2d778c562cfa545f7dea9fc95ff6e8e718cc5eed3a65a5951355579ffa47d9a39fb5e29ee048e7b1834d20b36a91fb29c51d6ce22e063ab91d4ceaace4fece8b4ed1af501ad52feb535756eecaead49316af7498201da46d1eab2bf757978b313b6cbf8545cc9d1ac67c921d77c1fd3c765f963e539ac8341c3b596e2e775ef4a9832db92fb4281e0862350bd74817930df0a4698c212873de7472fbfbe5e0101ed9fe7b1ea67d92b256f99efc5854d90555f6ea37738847a4ba76e5d5d4fa5433a54fdc8b54979a642632a4f82233d54e7164ee09997b931b2ad97446e6fec50c7b84db46c9093f85cc852f58c8dc836b5c95dff12abfe3612c89e2de7af545e626562ee5f105e6a269658265ee54933af647b5af8c2bfb344dab13f73b54f05cad3ac5a4b91e5aaeb5d67461bc4aa53a6267ec646337cb55a5d684409e4a220516dbb8244e7b0e8d8ac6956f0f88577a42524ce2f477b40ea80bea6ab89bd2a7fee956a3a051908b236bef1dcd728f82dee090b8dd8fa35927e6fe163cd2c8723f0b26e1d15746171f993bf0e84a5444787425796461b1b0aa123cdace322e192cc038ae0c177d02011e42c65107145a411a7472c7d015aa6511c6d5a88671e5fe108b4e792662080f08d1012345460e04b1010d64000317b0400580a0c004241001083cc0013f34c007061059400f3ceca083021290030e08b8c1862142780e60809d9a1ca4000418400d407468f821a66690210601c090f3420070c2c73e00e002abe57ac17ac45c3cf2fd3d649d1a7d7fe8923a3e0acafd52021905c917faed7b37d8f43698e64ff8e67b609b77019f1e857bbc0fecc20300a31e6300fc631fef58948fe025ef3d9ed9f1e6f7f8dbf1fa7b0cee5c9608df2658b4737b1e8f769c060b9a5748e3a2710d81977ce0911842a552a97640f0446024ef014cc477007be085c0437c11dc81378285780ee0223f6223bf01cc810f028f9f01bc81d7000ee22f8033f018c01af80ae00bbc0530069e02b8020f04b6c04b0053e0278081780860097c04f004de011802ff001c816f0076c0ff801ff00cc00d781ff00fbf00cc8027827d781ef0027e069bbe074ce475c03cfc0eb8874f00d6e1158077781c70023e07ac80bf01e3f008c039fc107cc3db8011f03c78c80bc136bc0130cf1fc1347f002ce46bb0017e071fe083e09acf78e70980837c0170fe1a30017e00b800af836b78207800ff03eb3c0d18c8a7f08f17310d2f034efd0c587c0160193e063cc3e760013c0c38860f00cef917300c1fe2003c0e7ee1310eff31ce3bfe32cc943ef51886ae4e8d34aedc312a981a14770c5d234ccdc599efa779b988bf9f0646134382efcb51fd1fc017d633dc178d8bc6458345e8729188ef0f5f2e0ef1fd21cc450f7c7f18735188ef0f652e76e0fbc3998b46be3ffc71b1c8f7873417c7ef0f815ce4c0f787412e06f1fd61cdc50d7c7f8dca450d7c7fcdcac50c7c7f4d8f8b18f8fe1a968b17f8fe9a968b16f8fe1a978b15f8fe9a978b407c7f0dcc450a7c7f4dccc5097c7f8dcc45097c7fcdccc5087c7fcd8f8b10f8fe1a5a0d504d504dcda432ad4c3d2696a96572995e26982966929966a61f13cd04640a32d56c542e0ab1e9b161d9b46ac22548cc3a76b2005f09bb53f3fd362f1b984dcc466633b3b1a1d900d904d9d46e5437ab9b9e9b9bd68debe67503bb89ddc86e66373f2e86e1922ce82b6177c2efbfa1b9e8e3fb6f805c04c0f7df04b9e8c2f7dfd45c447d7f0f958ba7efefb172b1c7f7f7e871f1e6fb7bb05cb4f9fe1e2d174ddfdfc3e522cdb7cfbcbbe3f77f1f8263fc673ec90e0bcb3111989f098b903e6eac206807c6b3bf07622b8e3c11387485af1016c64259380b7f425a08140685b51a55cdaaa6a78655d3aa71d5bc6a6035b11a59cd0c0235b41aa09aa09a9a6ad5c36ab95eb0986cf643030aaad9a86c56363d362c9b96a36c5e36309b988dcc6666f36343b301b209b2a9dda86e56373d37ac9bd68debe67503bb89ddc86e6637b41ba09ba09b5a0f558f558f9e1eac1ead30f452c6d0fd8d1a72867e1abc04028f8411aa1d9aafc12bbb7324b47195e0b863fd1902e7fb2b908b01f8fe1ae4e20bdf39df307cffb6725100dfbff5b818c3f76f2c1765f8feade5e20cdfbfb95c4c7dfff67251fcfef1fd5bcc451abe7f93b9a8f3fddbcc4520dfbffdb858c3f76f341707f0fd1b908b04f8fe2dc8c5027cff567331c8f7732a17f3f7732b1777be9feb71d100dfcfb15c3cc0f7732d1779be9f73b928e4fbb9978b43be9f83b968c3f77331176ff87e4ee62202be9f9bb988c3f7733f2ee6f0fd1ccdc5047c3f07e4a202be75f87eaee6e20edf6f552ef2f0fd76e5620fdf6f7b5c5cc0f75b968b44bedfb65c64c0f75b978b3e7cbf7db9d880efb730177ff87e1b73d101df6f652e3ee0fbedcc451b1b964d8fcdca4665aa99824c40269ae9c73433c94c3113ccf432b94c2d13cbd4635a995435b59aa01aa01a5acd8fa36a6635b29a584dcdabc655d3aa61d5f4d4ac6a546118140285b4f0279c85b2301686afb0040502b8c4923010815986c02c1ec02c4260960e60162398a5086619310b07304b10986503984503982503980503b8e502b8c502b8a502b80508dc4201dc3201dc2201dc1201dc0201dcf200dce200dcf2036e69006ef101b73000b710c12e0bc02e3d60171eb0cb0ed84507ece2520076792500bbc072c02e311cb08b0c01d865760376f9b101bbd08660172021d8258807bbd40e804b2a03e0d26a07977a405c62499cfe8c4bad20b8e42a002ebd08804bb001e052ac065c9201c1251d5ca201977ee092884b295c9a01bfc8805f62c02f02c02f30e0971cfcf2027e7939aa3f00f80507bff8c02f3347f50300bfb8805f688eea47e197137e0972547f0ffc527354ff0d86b1c130260cd3e3a87e1a0c53e3bd94317c5f9a42ced01f621dc818468a83fc42869ca15f6670c5b8c61cd5ffb8ca706561955830965c90290ef218baa80e6ce81a7b40197b782cb8a38c4b860b19988b3cbedfe3a24f0de390b89e471997dc99a0e339bd108b0be6fb4ba6c7d80b7d216eb5ad42524c018a5acf9d99c13d5e8eaa747525ed2a5c7d72fca3f519fcf7ce5c459f3c6461f589e5c9063e20e661c21822303ff3336111330a25ca70edc07c921d8f6b723dd34ab3eb79ac63e8eaf18221d2edc8dcfc481cefc96561b9f84ff3a39d6161b1b072ffed71f1c390c6da993074f5e47e4e892bf318ba441d0f0c83e58e0c8ec1aa6e278439aa4357eeec3058eebc60b9d32d711b06092471e90600c193a6d13ad00442c30a9b2ff8fb3b14a4ce0c2b0f248e5b559e2a598eb57705448fc52b17278d2669b452e95ebfc21d6790ab835cb4ef403dfe63d72a2cfb5b2e88cab8a02dc8454ee528ffdf2a4c968fd03c7241aeec52dc0a9b40b838e40b3c903a5c15248e07896c7047aec66db56dabd570fc531eb75af61f372a489d3c87143f890aaa824c6141a6e8079190c82ec57d177d67fb200d461e4d2edc3b961682cd5a1d2915c2fce63871cc0d54a5aa374c952acff71ba615ae0e6ebf4889db3f9af2fcd01296640fa2b6d3b5ec4f663bb78538078774a8d622b44fd2da234276e3bceb426df856f107c4f5e6b1dc5e6d102e762f5bfe102e5e59cb52faec9951cc26f3857eee2b388487dee9dee3aa1477fb181c68911b16c94d933aa1ef3f32a78c35594d9b406618f385fe0e23f737c1bde3755f102efa4eac2573cd5efd336169e49ef5094a9f6412a77f8631814c32e40bfd2d0489d33fce3172bf479bb6c80a6fc70b8b3062a70bfbe52836ee4440920c82524652ca95085947aea194381ee3562317c28afa44781d53b21129255be123451559fa38b1fd5f4ff087f98056edc850455ffa30ebd8a9a18a86f4e70e2d811152ca0efdf9345449293bd38729a5e47985285e4fc0f24b963e4fccb24f14ad2c7d9c54917d9a84916de894f491a227d3cfa1532a99be37aa6f85cadf082b6276908e9299c8edd0be8dd9a1bf07b9d3a174940f1e961cb5bd0d6376d83ea607b9b385456441647b6b3fc687b9637feed8b0882c7a903b4b4a900511fbfd25f02f810d4fbf3d185cf803668c2b77fc3b8607fff93eecb0c43d4a149aa8bafd0639395f589bc3bd14c2948bf87ffd464c9ec5168ccbbdcc5db30e219879864298f21616a15f432134ec26bc6f8bcb7dcb2ec76d61911a16e97032f1fc816c59fe6902f954a59d49411f2ce8036ad62f65a71f73c3f6fd1dc694fcc7d2ad7476cc61e075ee9edcc903f7db4bb087d0db1258174bc07d08c710b11f7afba190c33144b60ffdf6a110b62187b7d09a6a58e4ce9e4d50e18d2aa4313af2a9f2f63d7b1e4ce38e54760536726cca7e2a73f1adf552e93ff383c15c0eb17414c6accce517d2b760960c0323c625fdca97deab204f89f41ba944927d0ad2f6c73072e84bd8631e469ffa49d8652d78eba1e2ae7cf72d9894372aaef72d78256f54dcef5bf08e580b56c91b1557f42df8ca6fc1a3bc5171ef6f54dc162cca1b1577be0d91de6652387e2093be0583998514ca9e6d20cf0e7f39851c49eb898d33a85b3dcba3c73e3bba119fbd051729707f8fd1b4ca0b5e23084d71ebf49fd8c8d69acd80badd5e74503cd690290ca8951f71264d9a2738bf7c49f9574295b0863cf3dfbff76f38d2b73297649f3cdcd59f747c315283ca2a0c2aa87b6cd4940ceb9ea467912a7e32f2497496643c5a45342485525cee4c3bd5e0947b8486bc2c3b9fd3279538f3edcd1f8944edb574fb6c4926876448dc9cb37a208fe7f0d1a74d43a2981b32b551d854d95f4e29715ace5aa7a80cf2f044a5b8a337e91e89d35d7354eb4073ab6a79a42b1e7ca78634c8513509776cd52af7b7aa534b5a7c952ae88da020cc1e1f205e0a2a243508af1a94570dca4b8c076dfef6db7be1f785de77dd187766effba58767a63bbaae7b89e5ed8b1df39ba11fb72f64f20cbf2089a3bae34a2b28afb4a4ce9ca12f28f7afb478d0bc598dd04173c9fb3d65cfc9fe63cbf50777e65aa92867ccf9bc90e556a226dc71ce96c83097746a1b6d5dd775dd297739b9fb91bbaeeb9f4b4854ff173f724efd8239c57ce2a7a80977e6a294722667a5d968141402c21657669bb76f8b2b4417cb45ead370ec62b93e0723c6ed62f98c1bb23935b41fc43f14b3a1dd420987aa543af990e131f0d643deb9d3df72825092995d98d3a920a4942333cb80814e712519b95d59a59d1c90a8fea9240b311947eef769738260c21d67cfec716bef2d957a3e2bbc93f442d993bb42eb6538cd5944dededb32edb621eebd0e674f9fbc54b2e1cc15e764c7e36c72809c9c7e538b970bc7d2f7a4ad6c836c32b1416091bb8adc4079d5a73a6eb76d1be37cf4ec42cf0b47235d2c84bbae2727670ed2928642a15145c9a7c515627be522968e3b7633a923937b7b0d8121cfee074a6acdc9338c89491c32ee781313cb37aadcdd6b666362b99f0b3f1faf5a05fff12327e774b2d45a504a1cba85a31123b9823adc398bd0f7a73e4c40c9a365228c92ccb8fda02107861195479c27c771dce44690b71641dee868251d9e348d93e55b4497b1c4824b58b60b6ec1b2c72479a43f4d32e57db732bb150f9b78b858ae41b2d9aa9d72dd3623f21c93d8cd6edcd685a3117296ab94c92f688021d71f51a75ff9d183efadbce4faa34aae3f8672fd29c5d2d797a470a4c9dcaf84230d4bcbef08c7eb520a5d422951371c85a36d09a5448942306409a5447d21478411d91231b3b59c8f3672ca9486c8b8f32995b31ddd99604e2654c6689db4d639e7cbc8b0d427eb61e9332571c71f3f3c9cdf24cdc6a53ec99733bac69432ab485a4ade7c0b47239f7f9d4c6c938929a549e6f0cb584751d3a7c41d652cc86c7b9a9489146fa3e45329d9f15706fde9d9cf9940426f7ff426348f484a506a08471904308184dc4301705f737c0ac09b74ca2dfe2183833c5d439f96dc1ddcda7ba5481b2543a66fe994610a60029999520faa419325190059fa4051cb4dcb95fb8aa49964f9f4e548c78f0bc7b9813874996ecfd18f898f49a7e873f3c96cf5a97f5681c41da70c36651336e74f97ff24f549365db52877b2df3e959af62486d328937d3465f746eeeb83d824c2329e7f3844bf6e8242b64a5fa034818bdcdfb653601b31937ced4da0947e60874cc54ecae7dea5fcedfdadb5361ceb7321adf5b770bcd9f60ddae7dcb66ddbe69cb252296715e6e62de734f22d51cb9bcf3a67fdf9d2b271b7b7b3ce6964d696503ae794b2d6496f9e35e5954eeab3c3f0af55764b299174ee69a594544a2929a5524a39463592e94b3c92aebf2465ea5bad5b2565ea50f0a8ac63adbed577778e1af9720d8550b9dfbe7e11eaeed56bad95cabaf16c4868a6a157c1737a49feb2535f3ee1206379fec0c7057278234a29fdec4f5dbcb0d395a4256952489a9c73ce39cdf0a47cd9547abb682cd22a6fcea64eea4629a5b429a5948e9cdc8f524ae9f755e95ec1c293ed4929479e41c1c245577489145acc0b7fe2ac9a1c69cc5e5834935e01490923365bf3c9945a963f32e4cc9f210d23cb589fe4cf39922147e288a670c79c1b6c4453b8f22b386486943a756f6ed29ba37986a3119906f54905c8f3688b3e9952fb49838b97f738933780646154d1ad564d89f203e36236c9b327c8888462439de3ca3e99bc392e9d72ba68fe0cb9198cbc9194413bad9b7b16dcdd662114eadcfb4077771f8944a3da94d27577f7d1ca9c73ce397bce5e2191585826cb0a69c4d2c2d2d2d2425ad9d1d2a2725b5a5a462d22b0a5a5e52b8277e76c90a7766738d22659bebbcb6f3aeee82c27b56e74b3f46b5daed271adb59f75959c95e5573aee68ab1477fe07f248893383f205b76d7be5ede7f6d5c91dc98c7e8ec02132f95e15956dfbca71dbd36d65c78aca5d595959597919b7579661bf91ed6557ae901efd4a190975728d7c13e4a9d9c3af2ae1ee7d856c8686c463177b8386861c51cac69d53d22d92e0495452c71f468c5b59669d61cbf768cf4f963e5030c93064e98302206498db9238fe20edb6926e36b71f3b25a399c4f11fab92914ae2742529d73e6916c4ed6d655a83d119b3acb3fda8ea1ad229672cb445e74f39e794b37af56aadd5370f19b1caf2eb9c73ceb03ef7d2525ae9104844d029fbf28b98aa16bb97b7c3481ad5412eed104622823e3504ee2d62081120e953bf6809db350aa2f418acf0a3850ca0308213171ab535bc287924b1914719931358d83772ff3d23b7cf09b2c83e2868229f3c059e94128693d2a5941ef6a94f934a2929363971e587a2b8f2bf77c9bde4a494748ee1d94eadcc1dade2978eaa6803b9cf7aa1ae0b79f6e3c04d5447f4ba4aef98332489c624b9f20064e2ca2929a5a31d2d9074ca2aca1d4a8933a740bf99db255cff4ae96d77f749a54b770f05def6b3f6e43a64e60d4ba5d7202a2975ce0c4b29ed597fd65984b9d95a6bad9f1541d360ab75be9c6fe753fbdc9c2f79b839b939bb7e91ba71a1f4e60475a040ae034f8eda08859ee32aadf2762af4b3561087ed436f47b76f411e4b2d07853b71f0e7be8237d46dab75ab35fcfa04053fc329f597eebffd7cce39aeba83377848792aadb2abe049d308c32cb727414adfddbb14dcd0b7a853200e524adec222dfcbeccd482ca88009337fe138f327e4f4823b86ae1eae2be4a97f44e3b2b7e7e647ea802c2c9b1c0f73efd87b1a572bc957b4abb277f5c306c10fd2aaece02b7b38d20f7d10f76cc3b12aa95de822415036527b8af8cf6cc5cbcf0029c306b129050fad58fdcecb87de7bc1d5d69f2e8aeb33c74f1e43184d862e71e6dbbf4ac9fd398df2f1e3bbc79ea75c55509f5a0ef7db438a396e2fb258420f4de9af478397d0b8bc47434353c2342f174c83050d8d8b068f767266725abe5b7eb4b996591ea626e39279d1c86464649e867edb9c2722b860f68d72084791050a5434ae9c1f49dc91859593673e0cc3e894f7fdf461585207fca6429e605a30ae1799d4f1177d892575eccbb83cd28f30b5fa23c30243054c6bb4f2238c55d9f1234c2df707a233a8c4ccd4a6454c2aa5660000000008000315000028140e8ac56291589667d2de0714800b7ea44c6e4e1acab22487711cc418648c31861060882104194043531a81007177226b3e4c1122c786bbbb0bfffe329b9b5725f86d4a61e0b675e1b6006e4ea3e39d20d2618913217dc84be756c5ef1020ee77820830c309efa205f52ec9b85aeeec3b19e78ac72540cefe04a5cff25976e6422b2b8adca413d966ef098b9b3f02c05bb2ffb95a4f0778eadcf4818001cbdcd22bf7721b24f3ccb3d98bd10c4d4ac0fe0baaeb0de19bd48c3e13ab2e5da9a9215a34232a5407cfce883b6f42a3811c1ee26f2e7582e425b99c66127696ccc10c082e5b94ec797c0ba10e4d4b2871c1a36bca492d1db9a0e5a816732a88d606728a76bb170d641629138083350be6f0782a762dbb95e331e37fb72090472f2a3ce0adb8eb456d78187f82bf5eb6ebfe2729786af2801b7fb22cd8893111ac736cc909904224eb3624366eb0263b291f47fc74b9cbc4fe98b76e2fdf1c4efeba471ecbb7d313d8509a654134f57d53e5f11d3c86aaeb61a87e93b95430d313af5035b6712b959fabbb32c75a0b584bb1402ea5a412508b7d5a25fd754046be2a3d065a980438416af6c0001c47106b49b04b4c759b886ca4645cba9283027c3150a936d1613aabd8de04db4680b9747da939689c6b96278b8cc3a04f7bd3cde554df1c1a8090a756129cbd895378c6be2b1617b760e9f65d8ad9ad222f1be4d505facc97fbea44e31d41c5ed9e1d7675ef4703e347021dc1f0fdc1a8728de00f7f87aa2d9408349eac5c54e5a42facb7b0820577998d353c05af30b5851526bb8e38fb9aca040c5ffae7d02dc0aa30d47843f1f1bc7a84f882cf29d30771caaf8ac6af3f19d2b419e4b118eb796f377f90180580748fa61320fb37a2c3d01bf4ec41201c8cbcfdabaaaf673abaa8547d7046238459b51747a97180869ffc72524a6102c1808baf30a1cb0abf8419f99cc161615bc9f5391e11019347022707385a21eccd386753980b8d4744931a5259955177705c4743da4afe65c9ce671a6043cc8d494d6142887f2e9da272253df0c1400a147633370be1da1136106798879e39325f337729d32fba3cc2a5fecd0414f61618cd2cc89a45dc7ef6c07d5ff4ba4406e1197e59f440a0b203755a51a3cc4aad4a2b4d49da3fee403d34e17b666730b62f4d9ab8f88bd1a0a5ea0dce9200bbae4488a56cb7b5318503bc9761fc6c9e76174185f98a13b2ee7e7669d441f64920c4d1a1227560e2ad57759c9a7b0e4f7a453be7f94c0c13b36434fa52e311186cbdb19af307a20f96e4bdb11c1b301d86fac7844475403ef98b347513c08acfc38ab4d2317c0f57a24b3eca814978f5e8c8eeffa76e04991b941571b8693a4f5c92580c42de44f82c661c3e2ac5de8143e158a667a18f6508c1bca489fd1e47184b53dc7b01d35b0dc3c70a94cc3c518767b6cddf9b406e00c5b14e1c962482c92b888ade94e3c2bc759c997b7231d61b781259b0d4e50cdc84ce02a2c21cb200b97ed0a41800c14a57f44a3dc568dfa7439204dba40e1a12e305bef40dfaa2fa43241deda4762d85cfe3c9b1d94b1784cf8e1c8ccce333091e50db866a9c7d3d7d02d5e1e9e59cdc4e6ff67fdc5f367017083c01cfada28b9d3779b65937e7a016a7df1b447ca2ee609a0474d104e32fc090335b8cb70894a69a9b1bf266fecd73129b6b97bc625ec46e6ca7fa116681a07d50e86e6ad0c3045b6cd3126232e6b0e46be726595c5fb585cfff2340285dda1394e87d63403a1df3090693217750cb671a5b5a20b50e7e05c6492f4d0fe193bc826c5d3272405f734090fb900366d34ea3c24ce54b03c9d1859b20c6aa500aceb891bb90051255457f86fae054688712c2ff2b852c026d53392417a213e67b2fa3e691bc455d48715b47f9f0f67e0e007506f6dd1ee810d2b7163f9970160e0527468d3a9e0f53312e6745f85f105b400f2347df2329c52a4c2f9a4011c93abd250027c61c227cc955888a19fc08c60ad81028e997eb1b9823f6df63462e5b93c50a23d30b3e09cd3fbdcab1c34002d230801b319a291dbe230554143e813f789d633a62217fa16664f8b4bbb147506ad78dc8496771573f421f3a931008b05f32790c1c520121aec842e07f4d747a6f9e361f8ddf91ee836a1713b1dcb706c68aee0323d90eae9041afb69436836b0342fdf60f3954b0cedf5ed75c1351e9f6d84aaf9071338fefb30676284ca9d9f5b158ef06b2dac7865bbceac5421887a4d2af3dfcdcca00fcef314de63264a0f8d65928f12dd15086e31647b079c4ab1f9fd4b0c3e17069d2ec3da754390342f1a4c97d32b14e41c8f48829fc81e613b05119e120b835ee15bca61c5b7b35242faf1d0787a176ac96cd506c4803cc37944bf33d520800d1a577866cb74d0deaac64d18978d49b92e803f1dd3514f39f8de72baf7fc2aebc0d1aa03ea7a189549bf8b565f13c522f712d16e5d875d83973310cca3967a03a8413d36c36acf96e368759242326ef6feb841a9070358e889f30b2968d368d9ff5c829eef08f2d20b1374a1dad8ed89e7386f6c67623b5244b48db7f4ecdd4fd9f0c3de894a036b277c20bab3d41c76d43a9cca172c91e98dfb9c5be2b475b5e2ecce6c3d7b90f0cdbe3defa7566ba91506c498a7a31cc353c8320d60fbb98b1c9c78cbd16335829f8006fb75d9b9e7d6d867d5f57563987c5a04dec0d1af162ae4bc568a6f04ddeb9f30515fbceaebc372c331ea2c48a3c47b054c21a28d26f6c926451702330039413114767ce1210cc57908ffc408fb31de3f943350aef70f4dd825065f56f112107e354a51977072f3b5f3349621b5aa3360563404f1ab8f76c390526d43a9db028d10186f0f181c1ff51c68e4f71c9cd5e5c5d40bbc70019f1abb5142eb97a557fdb4813ef8c09dfca26b280f5273058ec0fcbe36bbdead870109eb1a2d4e01cb9f1b597b1fbd8113f68520571c82be31e3c5e67f516420e09b6141e2aab3e92f640ea0d95529f5c6eddb5aeca494dbcf5295c651665c292111eca3c120f2c9d0a5c41fccbda32a4e9838947bbc851dadf45dd087c8e7621c6c61576c6428d77adb659db124002ea0a3f6998cda9355f236bd28a19884431461c9fd37e7346241ebabfdd2433ba262856937a6e54e1056394f945f7777ceeaac0186da46ee12763fa1f373d758710ef3698e3022cf592f406a1379cb19248e908215f98c8b87179d99c95bd5aa3add6bf568aaf02fd8130c5afba894164b22d1352263edcd38770116d5cf9fdf1dd83169974633b63baa9dc150494e5ca7a87038889271e75ebe16491aec01269753202f7750b0b5ad4810c042b976940aa615283af121d8f6e8514e0ef2a9e39a00d612c2169bb75caccfe956b69fa0b08fb99b9b680f537e5fbc6fc14831f4832815c884f8f58c54c18c6a50cbd7ea92c0d8b7a8a25dfc161c621aaf285860befd2681b71f6697c2216a9638c8a4998e41cbc9578c600de0b4c499069268af71389c039d225092b638ee64ffd7c753b3d331e51e7c3dbbff041fc7299dd40cdb50afac11e1937aed79209ca673f8e2a4a3795b6a2dd5a9a0d71502d4f5d6404c78e2ec5f2aa184f6544545ab92d28f4eef7f1c00b87a7584669d8af085dfdf06b336ece40bdfaa0501f6285d8b2778dd264fe488b33ff6119956bea30a9ceddd517b8ddb679a2930ca266d6c27875c7cf6926fa5b9f5e1cf87690b9420a8e1a94cb4016d426f455c3e0dbbd035af83c495222b2b2c415bbb5ec3ce51ca7acddf401fda3b98364ae3c4504b62a59360c57d767c44be34cd92839b33afb1fac6e3c09609c4cf1cf02da11628d36572b56ca76f89a944c685ce591e608420ec8d2672a2fb9596c76519d62ce767d15055b422cf78b3bf7f32bce23be5eb5435de961b1f32c0e0f3482da02a581f877b79f0566014c37493b9d1afd1c7b50050953a8b5e6d1980b7d743e94093b94de1ce2ca3de7818d71da00190c39ed82e34ea6b7d7d5576be8e5faa0f3fa83080b36a024cce7c37783ccc17b4bebc55f284624fdf551b835d193a1a86ce1312b6c017c367aeb8c6e80ac3b7fa80852f60d627f2ca78a75490ed4f8bafd6904f9b9d7ee400dc9f72ab9fb8de6476d57fe1a74004b208dce00470f90cd062ffa1af0dab4ca4493e2e8ed49dc440144ca2a6ad6891a0e599e837c78834baa4de132bfc95d22d038ff100e67929597ef6ffece75f393514e70611da8681406b36386e526e70c325947d673bc2958d9de40fc04422369113a2329d894a47810010e181a627a1a1c127715d794af1e43630b7bb8dbd55aab242dc6a9c1580d179a9cae42a622e52ccb6bb2b7376cadccf4810c6043866727ae90454e475ba340ce36a64b34db5694cf204950028dfe88efafc441a83faad514117035f19897b1a1991625d0e565f3f6cae016984d96cea3d40fc6fbd2c830bf16a064bda3361f57b8168a1e67ebc07ef53ab9bb3ff91080e845106189f0889667ee1a9b24aace8ff176d311ec41d73d1e5af0a9408e528c29cef4862fdb3df57d3c752c0b33278fdcae134b68a090860135ac616fdf3a5ac95aded0b10443da524153c30a168350e6ef4da09ce34a861146ce638ad9437dc28edc7a081aef022a4e0e4e34466f77124e76de17a3cddd5870b2be814929065c921c103927772667a8b0642b960f1499f3ca14479a4cf808e76067ebc24f0255218523f8e28439a228e8f124d64e0ba3ae71990fdd431c534b60e3ecbc01bd8a03793000afd7588201c84401ce2e73ba3b4acac023bd24da6f33c4831b7e25ef3a915f00a1cac9501591a6800281ec80c8a080464f65a29cd334dc9521da8821e6e4875be720ce35e6a068b7976fc61baf836008b5100a103c910ffd205a3871164dadcee095eb67b8513242cd446e0631f9b6273203cf741681de0220a6bce17ef601085bb0148557883c6acb0e349cf3671c6a94054a9dd35729e28ddc2c724280369af95681b3807b1abdd67152db23bc147e5ee925c59d304f3d9edf9232a19d8423df8ce08332705e00f40dd59d05b1a4c1d107d8815148cd55d892948a195d74f0a0e2dd6c6ed0cf81c09ea8bd1e6e1155dd20a6d5c212c57e7f21ab937bd302c74158960271aa101ac072d6f7d7585675d7c94b6b7296c776e3defedf4811db44adaaddd276292bcc1b1ef24d85fab660c2d7a996af93d7b457773f8473442a14d67c5288e8fe7d36c6cb669747796620452e991e9f71b2ba7a56f8dcd1003997cd6527d83bb62533ac56d4a2a4f41925105123a1c7e0c76fdc3c04150c4144115e7343c6d3fb517f53c7342ad21c989c12592376ac9e93bb34791f590ec46da672cf2bf39884fe648c8a1d2c259b1affa21b70cb25a21bafd3cf64109d12ba5718c565551907f10c90b13130b94d0ad6b57495cc5737b11ea2b62084e38f50f1f4dc42a064fa5291cf54bbfd2496fcedb8f89dcf30055d24fb368868ceaa9829027a22f1555759a7883cece0b7dd470a8aadea0222ca2c1bfc4d6407270aa84e4c18ae49d4e2904d3b4cdecd54845771948bb7acadc6c84bf064fe9a922da0fb37e0d3694e0e43f5988a5188c35be0101f4c7d1ff7b8b8982b5d815ae0ce2eacd1968966ea453e367477ddd7514d817266f126ef8060308ebec3fa843d59031bc900791b8ba40b2861e2bf281f27288f0529d8406cbe315cd7865cbc861b82d4218b8388acd182614a9c009cf80410ba407ff900b7a7ed2c7223addc200c518d1ba1b5c26c1fcf6a13ebee3ec40d4d32b3564150ae8ae8348f1f1a9d84a155468b26bec5a9ff8b455fd3806822be97ca7144e3f134249236f71b07c572f6256b4666d262a88205f5823249a4eb9cc3483f20b571d51f9ba828274d4d0f8ba4fcd6ce89e1782f0b988dea8362182cdfcb82358da82d003b8952029cc004319c68d21e409d0fef34c3837ec42b1f92c526aeedfa87571f704716096783fa02dfe335cbd24380298b0ac7adcd768c61e53513e5d90589d10b8b9fc40ad454e1582253e0209afaea2217dac357f0e7685538e680f5960b96c8d1a0370df3df98c260682df508bf76ce4ae88a538ececf6d9dcd91ea3386faad768853899c4f514f637132a572aea7c60f3000ef011f385514cbdc5d2be5697a37f1f4b646eb955507c5c742362ad1b747993163779c3c160ab278ce9f9d2cd73f1337c1701cd29d6e686296fa696c15475189138935c00d80f5b059066e7959946856334270a3541f7228a0309b0396bf5d5b191189f0efd1f40997519466a19c7486225a657486e57b1f0d512111a989f22b3bb8db6a9e410a9fd242282b6e9e423c6f58715e08c1ebc12996fd22c0a5f23836f2596d8d6f24196d3f3ecd802166069d449de27cb8f36ee214182c3e26ddfdafff7a4b1d12d177ea50abe42f065bce1287e2f31aaac15501c03358a238774b3183953c2196b97f50c9bda2167f4a383c41726cf68620a7efbdb139b95574a1ec85fc199df4b1251d93c2fb828d0bb6db09f28e164fc3f9c913b6f07746890b7fc4f28e61adec7f46c1455c52d99c219230e58542763b801259a5249b2c87b29a9258a7f49b2487b39ef258a57cd6a3f426d9e158a76456a2c426d9e1c4ba60caaf718ecd78b4b91817b5475a062d05968a3c804a1438a4d4ee8230182d1df79fabd580575de01e72f9f79f8056c32c43394a966a229cf8568d9a37261c4d3cd80b56bc1dcc73bec2e9d18ddcb53d941614514752fe520de18a277801eb92558589d9ad20841c4c8076e9622aab0f567716dee937dffb3bdff79b69e4acbdf377beeb37dfe5ec63359fbedfefbef77f8d17692c0777efd5d9f758e18673a9e9bc52039af269572c92c7605b5e8b73e83a68f7522b8581925df8add71204e5472079463e0f444b81c3bbf4e23d43577c367638d41974e33dfd72d6c402e1efaceb0bbbb701b84b5d45b9174b6ffd6155f94c786837a5965e10e1bae85cfe4bd959f924ca2c5ff74196f0a38e8da1791ef343858c0ee6580330e4ad70ab12e6bcc6d15862eb6d3aa518dda9c47487869b672ac8b853dd17d20feb0a973e09b8b997ffb018b2e45b09518e2135a96794ec09fe729adec29d4ae02d8c42192ae49eb97bd33bcbc01d6fd7883adaac07ee13b614fe3b5acaad3e705a6579e3f0703ce36d42a5f20b4ee36d7b367960bd251a0f06934a5f1263cb49b77a4db198807829bc0de2312cec9c5a66cbf8fc69798abb938940916ac28e8889973c0c2de320699876afb8c7439894adfd498c2ca5a6998126a33cea1987945d44b176a538d1e77e9fca7e55c86545d5bdef7ea700c1b84bc4cdd28fd936057738bf747a41137dd3440a35634967ef7f8653d5a715efdc546d32b2894d920c4b108b8d56e7bb9d744c27b3ac94794dd83c6848efcccb3b286c7c5dec5ea75d4aea563995bb863d9ba4f42172d3b1fafe20719c8dbc2383f8552ca163ddb4d4bcc631711060f8a00ec73007b56e2221ab9fa51ce2882fdb4d54206c8cf52070e12f8903547bd06dcde4ce83ce3ecf7ae0a0a1de3dcbcb85db19df32a434f1d591e20f7ac510d1825645d8f6ad4c465d381dd763f580232c8d1832718c494841b3da75c5ca8a73f7e84065dc74cf8dbda6c7140fb6f0f170fa88f6182e3ac5c329268f39610bff48ef7028b5ac87e2ce74188405f0d070cf69d43570a7995e67c3dc9dd42ddd9c207ad0393bcb8650f5e48135669aa37d2d42af7aa2f1281f747f2f4738cd4c2b46c453881b2ba9a27a393e878f8a03657cd9edd30b67a48a2e271eadc34ac3bf7a53547fd3791c7a49fd0c468c1cfa9a56acb95050ba22b4a90cb949680a7420744733f0342b34ec23051d8e1375e80a45c528b83b53f5eeda04907e05873db983048fe48e9db34e9a2b01a84b54ca85efe676b098425a7378dfda0ca5328d52b57f1e1701c7b098c9b55b3a3394e324091b9b3af326207bc2af786fbbf6479d0c9d25e4c82d487f3d5af8a4b3178abd48bda11817885a2f9ae1edf1c940dce33fb8ce3dc352d5d25505be410a1d10e884fdbf0773322713a0fecde381f7671bd41849d2241742ebce7d5eb4c4750fa9b1f7c45ce80f884d29b582b1cd1591f544c771b7a4431bb275f96360bbda64ab5f7930928c4f6c1ee965f897e0b70639ba7bd07f007e5378f3238c21eaa872aa580c41c8015e034cc398e00276d930179aadcf25952e0b5e95083f8ba04969c1adb4bef5e43b695c8fd9557e2c960f847e918246ed48860fc88367d0aa7489d9368b66e14cfece8eb7e3b60a11b699297f7dd05df4f7a575e621942120085cc52006d835383f3f6e2a87216deb493cda4e5965266db0943ce541fa67605f113ba00daafc583b5e1869b70ec1e84104a1f5c43afcb26893e18ad3d1f6a2926d0cb173687fa3b1960da4ae39b842bad60aefeadbcd7d96e48e3e2a1e55126e8382e38fd9887141abc9ef848dbcc343d92dfda6a01cd5ddf02cee476b7a3283ac4f6d432180c42d849b0ce50149ebdeca40e76c0e98e59ba9fdfadccb83b8e6ac50b432340cf1f60592cbba03baa32ec59f625f00c29e0ba98763cae95440e55e0c761fc48afb7ec696746cd48d41c5287ba050dcd6bc1fe3f1782a2b18a6a22114c268dd906261541f522198560e49108645431784a9ea5045c158394462182d0d5520ccaa6c48387d81d057cb42462bcc35fe4641fe25e1da782791afbc5f6b56ecf77ff7dcc158ad1a947faa7117e9eac9c9f9a14f04770d73be58dac2089b1022001621d53b197985a56be7f0c9af6f9553bc6a8a2b6360ddf4d573da8e4e82fd4930a7fad75dc953a2b53b9776067f04ca118c089c7d6d8c88d7fc869b0cc846db042308a26a34f1143f82e6f60e2687f8a1bfff4c5a88ff89731856ae8b3d3bcf86e46f576e566449992b0ae64eef9769a8be4a83dfb4950c0123599539b87eafaa07733f8a2f62aa9a41dc24390fffbe5848619292acda74f35fd119885a3815f32efea97c0cba94f604591c142eeee8e0f911029d193e03999025c488b3ee0934542ec5bb0e1d5188348db0113ac60ae6f879f0aee2e21bd7ceacb0233a9954c5adeb25bc893e027dfa92297bcb15d04f9b2cea4164b4f5b68971e6dadfb1a325184bfd253cc0bf863389814424856aca2c0333d503222c2069fbd71188c21c61c2f74bb809ccfa902b3ac57005ec4d4b6056377332d7d457e634241e6de74c6557e1b35db4b9a5d80633106221d9dda40d8b29643eba2d28c9ce6b56c7c03d2fe6000664f1853ff3b0eac2ac3da1011161dec030d05ed3ae1ad2dbdb4344b1bc4aeb0dd03105e7a71cad52038f6198c91a26b31b9b5766839bb4baac480f3dc45393eb120a04c30c241d18116e5cab031764bf1f80c012266632e8b2fc69b18c778d6fdf39d654f54b7749f4c789a09fd1f24ed165a4aa3bff9582bb15ee45a2656a054d2a235e069fac79797435c8dc6a0855c3b4f3fc3c9caa1b2cfe658ccc17ff70b84809a457aa3ace6579450f2813b8c4ddfd49396c64ca8a46b3754dd303547c5728f82c0956b27dc58087f48bfc5d0f41acab90c89c2c2e66a3cdbc16f8fecb2a7226e544ec71c947b68cd0a585d647a8229a1db655296017fb154dda96439fd9339b29518eb14715837b69f24d88dda03d2984b7a2a622e6847cf65cb6a549632db97de4cbcb3679a1ee6e9020b149f1f941668d1e2dc256236ecdb207e4560c03d56264d32f381dc86e6fd761580072c1f5faf56f0665698823abf45864163c41bccd00b250cc19db42e5548e7082b1688a3f7153cf7cd078ec724c1a734bd74e87c1b33ce1bd17e9005991af6048ce5081eebe2baada25a677840d34625c07bf49d15bcfe3d2bba1c047e2bff8d44a14e254ff07a33670d8555feb24294484ff6cd01b088a9d024754e30b9531e160cfffafe1cfb8d1c35c950f361466938ee0a18b97356f37ae8e1f1ba040aa6123c7adad3e89cdd409e0088bfcd489f684d9828cde4f82999568d8c1068b7a9c9b347b83b0b0d085bccc4b0915eb43159c30ed20ab087af25adf1183cc9da4c4ebd3624a6b5354e5481633962af93c1cf4814fc9ceda15460dae6054d8317d81a41d7ee745a7114ba4fbeb1cf96a750947989f26e98701badd1b8e0076b54bc73f9e698ca76e83b34202d9849184e40886d91d9700e1873cc7b2f1ac94394e989d1142d3b0150da659b11cf902281c6bf2703fed602bece5969c8abbe02ce6de953f6bb929efda095eaa8a5285d18bc5982b6e9c40353f311140e1c3af0ac6042c44330764ce4203602cbf2cf3ffc951d012e60e01a8408851f914d18c34bd8388806bfd4abba80322902d9fc86a347550ee9588085c55c23d0f6621ba9126a31a8a14beab90b685a2c3e28aece6b5b0c4d8648e61f46f67e5a06af2e1a932f59f9eb65ef3e8e28049f3e6561dfe5fc757d2ca37f6cae479aa49b322e7df2560b8b88606602d73aa4077b7a4dea1a0219b6e584a87abb00fcd10050c50c6ecccd0126c80febffa0a55554aadbd63489c8f1218042136a19045af938c8a29273e8507b801fb423f7ab9d3fb4c2d6a0f63408fc600708dea59dbb3501c6542603bd005035d54e9083995d3884fb3eefe65d5afb652f99a0a02cb4e978ec4fdc1a5e5471c9d75cdb70dc37427cdbc667f67632021723341396b7ec8ec413402607cfc2963946fd30497b251d2aadd748f3ad08b52616eb5b039f82c844d0ec2afa7c3f8f0dd94b3b4825e959afa74765ef4d64fe079a46e5eee72f4929002cd071750e87c09a9a573952c983e10d5d270cb886cad4bd6c478822876cd4d92b4683b3226d6cbe06b2b0efda35c7ed75e676dee1754796b9fb3843b3ade3ae767fc2718549c648de0b0dcda15e35c19e4a5e818c74f8342fae536cc54f2356a5b99c6953902da8aab00994c046cf37c022a0ce42ea5a1436cdb4e0763ab8d11d8d558aa2126434895f0287085b0b16c719fa863fc103c2abc2409745494ad48ae164e16d94d2f786312d84b91e08239788c805b1775934095d40aa4522351e9e0423bb94ee095194d95c317d9bb35025262d42b1cbbc05ed707a8f22250dde8e2babb36a04a8b426553bbb0a609057865cdbcaa6e15055a53b0b886c1aa10a5082025e0a11b9c0ba0893e60260c4b67a0000992680332311c9d030300145103c47430740604c021885c00c681cf3d78449b20747d38a96ca9168923503d0d2a2c5e7a0771a4897e5d1129984d5d5e198fe02941f0fa402203e74fc04afd42781b976df4693bfee86c51415aba28210ee9eb500faab86f231caa0e5691ce29e1be75cddeb86f28e59bc9280dc6c67427144e958ffad04da2bea993980f9a4cc4876602f34991c17cd06410df05ef2026e7990a473ff373673631dbe186992aaeed158ed4671861d3f8a25ef46732a198f2439f3a7f0a88c6545acb1c39a6ca2eab55c586db26e7ca9f52f7d82c5435e17cd0a551cd2eeed96fa7cad826e32517151b02b98a68ed4f8d22ff1bf710515cbcc138238c8640b2156e11936d31079b1a1a0c1abbea0255c21247c8f00420b3d62571b6ec00098518cf5e3054b7ccc9d3246704457222118c4cf9ab1f403508232c4749e11621c9062bd834cc0e417343cc51ddeae71defade76e3cbdc391aaf93c60d37a41abb15046876e20139c5e2a27179125363844e52eeabeb788afb03bacb6dd1e1ae469366c821f6a4fc20cb423e762b100c057abd0d1432999fdef8b8922d98f51661c3ae06f8ffe36409190960fa4054f251976939eb5ab0bb009821513f7128f8a68a397fa8aa0196a2433e596f236c9a23ac07c7412a62a1e84e8de27937a9bc6ce0eb149840072a6ef1d5403dd5107474183a5395af9a98472e131a14c27334992824c0466055d3be25a3abc95dff5cd81358558e3ffc9f6f0104abb55f3e8c32162fb173f2ca5eddb9593b0106bcae9a5c34a1712ec0528234ef74640aa425b884dc778f22834406ef13443a86bc1a2730f3d7249945893552f7d55bea36848599f9381c32f2be72280e63bbc6b5fecddcbf5d9dbf40868e100b6c4a2748f3a647e132aa607e92653ba6777c896f06a76727b7e4c96c0563320bee75ca466c554287a7f592a1d6d84dd2e9333cb2165936552e341d6064d8736031b4c94f3b695a7fbca2fe017425658bf7e4ea11bc316bbcba9af24c2b9dc9ce20e370bb174da54277c795b0efae75ead387113bd3d413ed916989787e9ecd958959da38ea24aa2169b5748156c1e52804018bc09e0fd8ee2ec62cbb68ab9de6f4100049577d116e675ef4921d9c71ad378c9d0953925bdca133b6003d299f3e3a131ae2697ad5b734e2acb24966a34da17b9dd9460a800b8a3b1ad6caff5fea8980f3655ec72446f97ed73e457e56bbb7409dacd74e7e12f089f1095e0036525100e794e7c887d3d613778039430514f72941e6dc24b03a81d1e199f3878fd137145bdf36fe8333322448626a2bbe1ad5aa0aaf5af0ca3147430a702ff67f24142f1f99977ee3dc79950191151855e279371f6df86928e8fecd2390df329d8c1a21abcb8a67b1733b4a8a6c02b608c87c7ec25ef07ef764348e4bc0b817e0f01224c02f2f6aa3728238d8b0c1d634efd5c52328490475d331baf578b35da1b24d3c2b84672f2e25976dd8fae850a218f8bf698627c5cec20d15a3c25e945ee08c413163929539dc45454d0984b42776830560638dcfac48106b8c483a1b96bb2871271b5414c798f9f4147b08659883a6212a3a06e88fed157fd955279e989034f00063bffb50df3bf299e78f283b9d4f234163cc833b006b1185e1e5d060d209ae221240a3f162814469f4610de188a450d332114c5ef35ef5ae3408d767f2546e8dbd87e0ee5df60337e8e0d5e9a97f6f3f0c1eb9dfdf043791f6e59423cdd9cb398862e2349ad28db423ecd61a6f963d8dd77d625b589ac8fb3af1b667fda4de7bd149dc519a42e1e1fa14b32e08dbcb86faadfdcead9fd8b44db9b1da22ee8386270b0d923c625ee1b62db5872e578100424b7beef2b00d3a29dd10bb158b34a1d3157f4bf7823cd18d30a202bfae0108cf16087f52f34f735083f5924e2218e17813c72e86ae3c33c5c2035f21d8d0608d8a859a4901e8a5244db926db8e147138f50c174094fcfc0490f68d32183050bd8273ee1d045be8daed1855a86051dc59128a1bd96f11be57074b13adb55f101ffa37b1f3e40c0ff225fddddb7adf1ec3f08e3c716ebececcb067ea1eca924e947ef13f6048491e1c61ffef673bc038311edc065df221dea5592716440d9e493335e8c7df14a75412f30fbab654ebf21fc773c206e7299d81b3443f52facd23df15830d333cc60b92ec895bf0fbb0b3aa21edeef5e4672d6fcf97c769eb847badb39c64f118e294a13b7e7b2a48abfbf794ae21be25260cd61489641ac736ca6375f41eba50b29cf320845eb36680ba03895a377f8930fe4282c52702655dfcca53e78f77561ed7e909123d9fb45230508713df1fd39541796b225882c23679fad5720a70b5a89a78681b15e28071dfb2e7e2abf06205e597eeffeebf7e17b6ef1ddcdce2afcd82045418e84e62d6426e85ffe0db32ac2273dbdd57365f5e6f709c9c2d3590b599377b1c155c9b0fc7f08628ee53d19bc25878418cf1de0e3a08b2c64f240ca68b729fdc5b3b7262ac82e6c10a87b174bb45b243a14954d944aea675c24c78955917c37a39cc3f23cf33ec484ca93e1c539d2dab7408b4082aa1c22f29512d34f58a275f9107e72173fb6e25129c5f09fe9a9178a77633b91b21a394cbf1d9853eb507368b0edcbee0d6a99875bd51fa5aa4e615d3d320da9f89882f50487f2dfc8d3e922a66512faa8611e60dce728822330962d85f98462d57453eed3a54b438e173812be1c36a149df630f570dda7983ba82a02fc1d55f43a0ef4eeaa21db688c5fc6ad137478a377471d1b08a3c19badb096c317d6b3de5db90adabac88ceafb490b46fc30a7b37902631aa8a68c1ff90379cd94d1501bf9c1fc706a9e12a3613c7ebea13d19cec1f9b32983429ddd8a0fd4000fdf31fc57730e2c3dd1360c237bd752e1f330b9d79f617e9559df21190fa919e71233c146238a624d717225811fc3392a60442027f34d8de3924abed2a50e47838db258e869d8fcca4ef576dcbe63dc9341ce88cfabcbd854f48aa33556b34e8ae54998430edc99fc4505e629e446eeec0c81027f91619d9b3d515cc7e9aa38c264c2521a632d9f63e4eaa90feea8d6a4759f3619b835d30de958fa6000ad33f5e34c88d497d428ea1a7b1976de96a12eadec3fec791db5ab18c513b2845261faef80cec37f04da39e317d38bd6a9712ba902ed7441d2fa1018918c5d1dd89f30c4a4912704986e53f43b74bb5cb16b663c91cbfa6c05e2b8843c0c454a1a23413764ed985b28e6dd82e87d821f698096c5b800795c22a9253bb7a462a701666d1a4a8a5cf2e7b3ac41c8a35aefa82163dec1394c699f88ee6a68f5652141a5558ea6d1a67f01a741f69e6be1eeef62ceba015b5eb818cba0be228b9a9db7ae3eaffafccb185e15f8121be3a71c1c0182fcc700552a998d6e6ed05a085dc0fc2322bc83aae657369a16041ddc894a612b24cd1c050b2c2e9efba5054d92eed02a260efb76d88ad72f29f0e8b441a555ed4ba65718bf00b725581a3a24c98dad144a1455a1f52fe92101724e787b9b9d809662621e1abb839731a18aea2beb02cc58939d681eda3bdd036aba89e703551e84044bda185f4f44d87e40727f7de34d01d60f1001e879eae6f737ce2fbcd51ac1cf97672508a50b83c4c3f5523cc315d504c7f93898b295f0042e998bd85f2b71014afc4e80b9c70522f7f049f4694a86c6b331f2867c157f3761676e585cf957d46a7a91c8f99a0539cb5ad87c423d34319ec5ed168aae96ec40f41c3ea1c8fccf6e3a96e9c0d574b1e657d9f1b36bc6ca47e86d614cb5c3a010a24e1452677c46ddcafbed505cc77724ce81463144d346d033c7588b379ee300573362528a7637191136f1b027dbf4d3910c62d04ecde2e7d8417a54e765434cb9907a966a57dd10f432155cde645f24e8a010f6c30eb8de9bce98641bda493ac0b73e526cde24a9d470ea7a95245ae9abdeafa4b6a8926a68b3469e8c3d3e246f6aac0498f0fd2b424561ba36675bf01f354e24f630edcac0083c170b26f0544136371e72b60e688212763ffe271e3cf6b7bf941a4c7f0d80ed93413b9fd26bea8d3100e6915604dbe531b40faa11427abad46a4c2cfead4bd6f5d0d0bfbe714dc97b1c0e079204b643e1296b69291b4aa2c54a71e4ba4451ef65d9204be4d3aeff81e89cd462d71fcfe150916e7c63a8c8bb0b505a19cac8c32a2e96f73bcb8876606e4f783e49aea3f6aa87a15406940bcf36dbb231ca89abc78151bebbed7e0d9330294c8b58bfd70d4c717ecff6289a3ee4668ed972a76c18dac63b553a94f13518d076e4e20e85bbdf88da1234a5cdb34f5b6f6da3074442dd7dc823d33111d8997662bb437bc9c91161124ee8427c1a6552898b7a61e2493fd476639ca229861b224a52de76637fb90b97efb6155e304fd6862283daf4179a5a750ecb1d69e5becc6517636fc95d3e5a30f2f161ed04fd7c73d1afe933c3989cc364d1c7ffda39d036b487002759e43b44ac1b0e7d12f6401883d5d5f05479f3407b2b75076a8852c003704598bdc53238346de03dea3e1b7168f317fd2f20128d909e62b81778aec42b64d822dd013b11f4ea91cbe27cf6db5e6efd1af9fb4e58c1d805254e413b1043619a50273558364aadea4035ed78cdb384e784b359e351d76812272c403933ac82af808238981c69887dc37b6c8db01b7a4ae9119b1ababd004f682bd949ac49eca87c53227de518eeba256dbeb5b49dd2a7e4699345fda66ae3134a1a57a715e796d775eebb084b1b45e9ba78b88111b31fd5095864e659a0cf55d4329d76b37e3a593d348c3431ea5907a69a43099122d03dbc64b90b353ef156c4dda24e88db6a410700c9ad7d649312b31f33e8a65076ee0856b855a76db56399640a15e68a57bb4a5130c9145a6bc892343bf9366c91bb27c86ba4311a33f863a45a3d4d75ee764cc62092b4d862cb6b0d226c3f6faa1048c911f1f24725517316b0779f395db9557a1caeb2b0937cb3834a58cd10e05a222da9cba35a9a86e30aeb5dc65442d0b1a6b30318c210ad2a994a7d86056207db5a87271c83f9306b2c6faf657ab0c7293a2ad1182a396e8eb1afaea2f988d655eb6f042df9759932b2a3038ee18be1088032adbe693bac97946d60c668464860300c63bc6f9d3f1c4a0e84260b9235e5f74868fc5416d48be18ce12fda2db96ed7bad9e3f2c3e7ff1d54712da19214dc6a313d6babfac6109c131f59b0773aff925e02b33eccb21f7d2209a9b981c5b7757064782f20e77ccf32f61df37f774b11a63dd1f3101479e2216d2306ad358f766de988547c2fb1b8bffbcff35b916148f79335d01b69cb3dd45fa3ed54697cf3eced0e4ee931b3b33c35d941ba883d228bf75ca0c77b7e2a331c9181c7e32a867c15df29617a517258ae38ec0a96588e36b55cd69c2558cb4c3591b0ce3ca12eee001d75e3704a17f44f1b859fc0efe84e8639787c5d29f5138e3a623e93ea01527a579ccc1870fda9864fa4fb86715d186a86e58ca2145dcc588da1a687e3860e0c8f0572db4f5da72431386e0d7b1e8da8cfaab08316c4ba0123eb0a35f02c41a065f181327d0dc6450e0da25d40a0ab266316d78a1151716e8b3859257e7d231affb4c80021992ca5d4f1d943fe091fb77122d95669a4bb17304f2ec98ed8ef31caabe9a641c9b09f8c1ad72918bae3e51b0005514b8d97eff7e4809e3c465f098498eb47457779847b1c87145665cd9a567519063a4e98fcebc9649af32497151c736f297f8277877cb7b24744e983b7f104c75ff61628ec528662166905d9a24bb1d3d603f90fa41f1c280d460cad3012688946ea818cc765c0da12aeb6474b0a4f68277ba918343a1cfc9b5a8b83491ac78a98673aab54c333e1461835e8940834f7905572cbd9b654366b8f215b90853b278bae856012763d44805f8500ce69993ef869361b204b5059b51717e4c7a8ddf49a41727183bc4a6f710617f4ceea5d8e9d611b4eb0ff5e4821396589c831878c2b8d578182d35f7aa218b59d390fdca0215d9c626f96a5d9eabb7ddeab558b77412a911500639c3937611bf59c113ba8c97c4173951142dd23b2d2a0a5816fbd5e7729be630878a43f4ad905efedd21aef7e28cb515c29dd0b1dd0e8a733ea2265c5b0df78f510314a7959d81d96813783a3264c93eccb496cc7ade72e5c7ecb4e4e0c24c835903ee77eecc65f7fc7f65d4699e40f82654bc65291c44309aa8d95d8adee182871c7abc8953a6e35afa5bae08b8f9cc005cdf8906df3f29dadf92a2234ec91615a081ac19952fe2d142f01a0b44347511908649e42c3cd5483aae91659442474c7177db61c69299b10f1e6447da032e7b3520046df19b1274fbf36b1c55df0712a844f036779755123210ebd1997c9d95f5a11fc379aa080a0ec172a60aa90808f20bc3d0bfef405e00faa5216a49827e784a3088f397df18051e0ce30785c337a261f7327e48648f4f389af37599040de882355d5763d48d8d9d036d7ad7fecfa288065ce0ba0a4b92ab925f825e3c8eb86322642ffb60b81bb0403063f025a0e379f9623378099a50fdfcd248c7947a55d0bfb99d0e9ed04abca78e0ca104b3e6235984ed501fa3a9c3e94fe8c0f3df61db4fac7f4cf06b89f68fbc4f044540dc40c40a77cbee48bc0468c8d0dc23cbd2cc89338d30d73b0b4f90e8aec816b603da4ba9347aeacd60ed79ec853514580c9103b6b2a4c3466524b612a0589aedaa945a5241faa5e0cc36b3c60188b44d08a183aef4686833d4c5aa40ba71b40ea821517ef5d3c08400ebfd7cdc7b6ba9c396e0ce3b3d92f16cce27132474733a5bdfae9c48f39c14d0446f2880f5a79d6e7b80862b7c9f95c553b7955b508cce5bbbca305437aa41413423a8df45088e2311440985771bcf0098f0432c53f48098a53f8732ce177c240c4966be46681cf7a582c942d37ec4056c6c76e668bf1ac8fb2561601f7316b3a176bc083f9f3f1d9ca89ad87de02af0c9cfad2c44cc1c46de31e17abdb549360098bac264d77a2d8793e0b476bcb504dadc43331b9f405eddeea110cadf542f26ec3ded2bb2b99026077a8fd8745b1ac965bb5bec333e4a9215bbac72267303bbdb1b978e50b60d31d04105764225f880aaee4f3c0df4eabf99bf3b106a610fedb5af4c9b0cf86d4c056be6bedd199a610f10bb40708c5fd1ff2c2ce05da8a72192b7b6beb79a2b6aff3ede6b3c59a3df474dea0f1dc7cf08610a921176c3b0e27aa0251b50fd33a958467a3f1d61f91b242e2bd1a27c1c3956920063a5a7a57b126268460080042e69c1da60d36a1aace23d9e4c89e4b563899e7c4c211010670b2ab35c51a526149c8120d0ad687aa922c5887df298f2b48c6493414cd57cd66b9803f825c662f04e5d94e47d33fcfabb48b593a1b83760d833272b1c1435e98da70175837893d710ec0280e5111c0f60152e95e8f92530acd8df0a4fed15703f754b77a62c97c0e9be7400bda3e99220418a28ef3718010306633b315531b41941c3edfc01a0083164226267aff7d334db57dea3f34e3624c9be272c9371320f253f0d2c763aa98a8e8360d09e6874330643152cb79fdfadcba709c078e0b0184bd884bfff9ceb1dca0430b793b521e2f1f97287aaf8bc3b2ddec0ced00f2e7398b5652bbc27932e3faa186cbd7a7d82410c8a1ea55661f02c4ac29aeb68bc3c48eda1298cbc027a7e1948bc5900b75c35045f83d554dc207729c0a98ac355ffdbea66fa1298844b31e475b3563f18d17bbd45fee9f04e934dddeffb8136c3f006928f7026d82a799d8070e0b3c93114e7a52238228efcb3cd394b1968908e039d5f5d6f64699065d1841abea96ad7b768c15fbce7b101970f403139f0b71e29909f4ec03a33e7b77113cf55d003ed33147b5bb40a07cd2698ec07327215facd5758544d1623f56029ed41b3cfa85eaf18d1bdca9b867de49ff3229d58a9a3032cd47e2a811e9fb1b9c098576e8e7930e6324236ff348cd53cc9583082f37715b472f722c66681194ce38ff9a546477d779a329e60ccf801a4cb29443a808446d1e2155e84593ff0cb34f0fc54bafe66dae627015e60a887bf1346ae4c9b674724ff12631a220bafbbff0e84595ebb1b36487658ca2c811d87935f38a555daf1f55b9b35a99bd86b2fdc5b1a55a2d55f2acd49212cd62f7f69a25c89153cf6a96895d33625c56b273bc836b67dd8b42182493acb3b12a21546d3199eea5a302b31f3cd740fd752e4af7e51c28c312d751f81e48f7ef540c3874ec63c6ba2fad44f5b80900a593ef1c293cefe25480254b38913e7585596ef050df56309e6def004bc0f01786d9bdd2c636bba046acc0e0e18782497bdb427c5e9fab5031d52d4995842faf89e1c7e118d9d443019b70efd0ac35f7e41ddc18cd9c5af4f8f5246e5d5094570c3d3c1946828ce8b9d97c4dc6d9da683d0c9ea056579aee0e9b095de5bd155266af83a9aea62da601482e744f010f604f4facc2851459b57e43d20bf5d6725bf96a0124903cbc6ce877b4cca0f2a90b502dd676f20f5f6eedf6c4ae72d95456ab09965bb9f04cab52f34088fe7adebca3365810d39186f5fa6e1660453ec439affc24b58fe9587c919c5426a5d281311335dbba4b17746ca9155731f17a42ace5a2db1ef69adb53d4a11749dad2f935bbb20d99e08f654891c2f699126983dfddee4deffa21b8384807000745893a1be45b4b39ca35f1168c497208dbf2d50d1e9caaabf4b7f24548070a86044dfc94656be9102ead399d3c908e6b810bc90e797d00f652d5ea4b989440910eb0de7729917ad3f95190dfd1ce6238817c5c27dba103a4ee2ff8cad596500a167fdf4b1b1f3829e28ca97b60cb3905edab72d65f8ca4530c81fbb73064c97f0dd0704e2623c733209046c43bb8f6ef2ba1c98b6f8b1ac9b41e35473a17cdd6b35739d8d0f2dce2b479d5932f8cf75919cfa9d21e5428ffd5cef77878c23c5617d6cf41efd9a09febb96b8d9342681770fd6fda68cf32beb50dacc434f4844e3372b9a9e3c89a0db35547951eab4a886b125fa97ffc302c90a00b634dff9d5e36805baf090b8d0817a32291207c4aa01b25f3bdbc1e119f60ef8740b3db7035de16ee5b4b53e946015747e47b98243977279ae53804e84185419488287a9e275e648883bc9485d6b08ab9ebe6cc4543325a845b432f8f89c743dbec3d62298179ce2d69bdbd494229307032ca9293ea5fff73be9029c5e0a0c27344482c82b33b8bf24701727aa8dea2c1b7af5a9bf56702f96ac35ed58750e9e6698ac75a19e9d459ec28e395dc269893b654b545b42107ce3b822dc0eff91f9ca13ac948e14ec3212f5c104b3e1c1ffdf5595f047da1471d9f4934d169e6f2c6b87b4dadfdc465151cc7bb8458eb5e86f9e9366fc0a7857287dfb99d15a1d4b9a06cbe013256797e9cd96b62fdfee0f837d6487b258de09d102da1bd2f29153304b276633ee2dff1f6808b422946c3c90ae24dad5b352e04a88e42b6f516b7a0eb0cf24cce84385b68319f7a7a45568c83f1126514fa12641cee0a6f811c6889699680da1ca11c11a11b7e658bbc5e6d48cfb0c807398abc27634fb3dd81b09f709c798cc1c34b0b712ee7437e49368761aae2c8c20704ccd8206d9e96b0ec813acc05f40b01fa275eb210e6a4154605dfb209251cea397c98180224a0deff93e7efc8877998c71c4f0af22d443ed710689551cce249824164825c3da1e7050266be23e6239586643af9684ca2ae6b67ad417899287878442d2dbb7cd57731030e4d67d7e2289dbbfd4353f91a07d4587c39ec18221487dec76244556c1deb516413cff0d0b8cc387e8faa63fed4d7966e69f86b1a93c434e60efe3e93d54e04b4eb14d1c56f15a8ef3e382b2ed1d1ba6658172f8e5ce620759802c15ab96257850300bae07291ef344604bb04c859ff29d3c582c546e86da8c0d4b8b5c1951caede42d13dc64bfc8b7642352eaee307f2c8427b22488b1356c39f21a656622288481f84a09e9ecbbc83bf27d5896ce001e3b0348f16148cb238b27bc0e86953455020648287a21a694a818a45fd5f709dd41146ccd55980ec90e731241e35c4b854214d4b27901ba752a83ec199d592cc9ec9383a4311ec0f4e8b1c9274de2ee3a3609f446be7c24c6d3570c0594ae3b19c20a96b5e04200e7895fc18ef9714e44cef9e44cc52bc6cf6f1a05a0d67d98ea1dc057aac1097b44fe26557dd708a7b348aae448be7feea6c387759483524017ba0958acf3034878fd49f9c00836e9ac8ae14af60a0ee67e56c192e4579440edf121948c5aa8bb01d4ac0e4643749fd22418f4c7f743e344e6d83c4fd7ff5ab9f2a88e7541c4816ddae967466926fecd3dbc2d7a8721db0db7fb5986f676dd22b6be91ac5db432e20c761e369b5bb93f4c64f84c7001690206ad4c6f136dda3b199c98364f348f3bbd1008f3601228e6b6a413d45158d73e42978d3b1b6a740d96318a160a88f11d16c063f338a08ceb1b0855a08e20900e3eac2628d32ce4e27ffca56d4c8210be16a36c4b654d598620bafd62be2896720ea2da996393581425eac7f25d09f124bc31b0db36ba1189846d1b377ec5792e189f2efafec688ed6fa0eafbea203261748f624d807e08bd043b7f9e855518aa69eabe404c36dd724a0de142960410a89b68c0b0c297fc5b56381f45dfcf0b4a98284558d30a8a23195159cd0eb591476e1ac972cae787537e038f048a86050bd0c817d14c8e37af6adfb39f93eaf320564d55708619b555052333f273c5db4f1e3fe0d7ba5c54235f103a53bbb62961a9e26b7b94b032ef11c6937d11b07592de0d5b5453888428619b0d1d79671a7e00d277df51d72052d477a28f03e1c0b3ddd9bbe595362c0aaa5da2e6114dfc61db06622bc990ccd75a945ac6fcaa28ddc5159103cec84ca21b6d5cd755885ad3ab25160a90c28e183ac251c2f1851b933613028e15cb8305c0575e9fc7ee9bdb60573b1bf12bf5b71297f1ab889336dc359d78bc2b29508b9ac98b729438a33c63f85584957fa01b2aa25679909610f0d79a65223135ac0ff3830b32447f3d99a54aa83e2cf88ec49046b002d3f77e6d6d0392f822aeaa2517ff1004a3f4eb252e399650906852c2fb6da16bb2dec31f69de47011c8e8cbf98a8d7935cfa7aa1b598ae6c5a770053cc78019bb1283e483858035e5e7c3aeef233ab4c80bc7186785e5ee67515d883693ba3c5315e6805d75e6da150748f1c1b0e8adb6512832e358f131494b28136db1155aa9b9ada90291465829c9e87e0e19e5bd064bba3cc4ef8c8f23c2be8fedb235f3e3390f08379853a19fe0f701364afc89e3153dda4926f78d40645a38ee4a4ff21131133358f8d3400fab3ed1452819a3dc8590e30e5917fab2d150114d5060856968d11555bdb7aa255174df81647c40492724359f67e5747527efec5df039d812338cdea26d2dd9dc781343a884713acc4469401c560934c3a32fd35b3a83a76d1cea9a2a5c73f857b13521e8eea572e6253fc4618309e90b59a623b1ccf2a678b6017917acdca1dbf519d3244b346575d3b7a8d0fd49f8560b872163f4929eb6be61e6e2250b874db26a79dee211979747da99b93c78ea526890aaa1137c815705b5954e5ad7c70735dcd46b8eae3b1881a0d136093ec8aba2caf7640b0daf5a11dc2172da50bbad64e5a049ca0b44a62b783d32a6104e5f4e8107003a815c58fe076f99a2c84a113d67a1e64a45ef16db4b516135ebc5707dcd0846b999e247d889f25b12cb60235eace9f4ef7fd50e2ad4821f1b6943539a48750f77bad9b771727303bb0b7f19145f9c4ce66f62a2a367bece286cf5cfbe60b5b9ca45dcb2c345e0eaab768de9f4b842c0e9b7db47fc2fad3c68db9d2309fbf62796cafee775f391198a0a0b3b9d1be50bccca775e05b3059b420762c01e9dc558a8a3e2c2c3075a5da1333b374d07915d91d75d72277301e3564fd0eed2773c30adb845011137759ca5d3f28d34953b0526e582143a31825ade33e7b3ba9f7a8990c7c562f3019999fa3c36209caf0f0ac5b3b20235bf787ad9eebc1351b585b41f0a7b715076bc3af219bcf41b800d6cc3737b344f4bb157de637d88e4855a3ac0126d8bb55b369a561a68af9cf6ffc22937bff5750db97a371c68fb3eddab0348c75735a636922215bab597d2772dae0da4ea65db6d3e7defd7104f9b716dc09f6fb5486d1c71eaf1345290e18dc8bd547ab9d0a39840eed599ba2d2933864364eba85d5b5f3a12a92ae33ff556ff581e63124903120a91d5813dd779f2cf11e06355a8a8bfcb47fbf9d3d3c11f50f5731ac4fcb3f2f9f92762a9510ee01484bea2319b0eb83b0562544961a76f5b6a5947652d4dbaa5583c3792a4ee803c976e9d2c1757424ffd40460c4c86124adccd43783d25051cb3d1bea0e2591c3db4c72123f5638a70939a52d6920f044da9b747189d5874c00923e637b32743e65db6b86bd0efefa67d191cb41062e9871378cf71b4b18c30a1a6ad10ce822b00452d80986bbea83e755977e45bb5e1548328454c29ece273bef88a3739cd9bd3d85d07b1e217c2e32daf1836f474bf6218d424e49d447a13c1217e2255337e8157a598baeee0329b823ea9d29bde78873cbf0be0253686d80ca4a5978354cbe32b1ef915f817a624d4d374a38babe84af0ef552b2e406b50bae97012b0de089b9134c23ca400b0e0c5cf6c70e83ca08c5602c056219dc4cfdec15f5e40ee2403debda22ff1dec255ece8b6945e32da148e1aa68dbe06e7651a0fcc4299d31418e274a57f0531345b9151c278982d30a8e5678c7a7ae82bcf82badaf6041ccf8e2df2bcddeb77fa114d5bcd041f944b06ca82c91bb3d91e808859aa127f4aa6a6c92481a74414e04fb881600a5fe22dcd222d4120d9a4bab264514f060761052ef8f2b723ccb82d102e73b344fdc8f37314a075477eac49c3d381cf6015b0d02eb37f16a290566c68f8b2930ce773868e1606e8a190469e6d1ee2ac095b960050be207d72e8a2a26dfcfb7b5df77011f7fc1d257f304755c60b62628aa619460f134e081b3d20e6a24e06b3be4ce7fcef31164b4dd78df04607e1f82d9819a1f40b6e0378f0e0539fb41115d00e3f3628b8d471737e0c6a1eb398643950df100fd186a80f50d00d694c068882e7e4570fed53972ab75b7fc25b2254af494e30088711d212ab1d123e995963911ef1464a5d10da4d1784824e353f0da86d99362aff8517ef4455634b8bd21f29cc9f7acd06054609e667c31df6a91747fa84718fcc528aa6e7ce427be15b906f8ff586de0e9c14170f36f974c27bb82382f366bb1f67e6eeeae473987f416779d5d11ad18c00ba0d6792863230adab59aa31464c9ad0148ae083a8079bd4511945cb1cbb8a7290ab5cf2b729911e4c77cead6f98f82ede9f876fc0c64b7922072a3fa67fc44cd4e82f0c03a99c36644bfc167d6cf1a776363e555b173d46310b257281db683d73d31815f5fc70dc0eb76338909004c7ac51abce1aec1fbc229b4b010ff35102b9afc307105ea56ace8ef6f25ecfa7c05c4e9b49729d123d0539f35aa8bfd2cb55c7ff936a6132327a092623a19355e296667d1f731e583860fee4471b873fe7984a6e4a7303b515482df1fbfc0bbd64c7fb4dc8e31358e5e69fc79074c2212073b21834a8342436d3604f4b1e99c0c9aa4e62dc3c203105e94b4b5deef06057047e3d0fc6788a23b7b034ac14fb8a89b36c2cf5f64e07772df3717a748c836378ff856e430314ec49f8d4411bd0c21445518873dca6b971968f21713260b7257e9b22434e2466bb51026daee753656c5e15330ff02154d240122c16cde00eceb6f81fc40c426385ab6cc522ab0f49cc6f4d10a59d01f49c55db168c0bca7f9311b7bdf881ad0552a6e3f333e69ace51aef89364f23a2850982c1bddd2c44d711a897767a675d985cd1f1aba7557062f70d1c8afa69131ccacd843d406b3a21809c886ceaf18a9d338c4af905af8f673613a2a62c0615a565bf49152b98c647c649453c73ac85ca32e489132c29801ab3ecc4280e2c924c10e36378e0e13ea372a954c86507d21e423e7652a528d71a6a0abc833c3f02e98ae950044705c765147cbef562bba2d9c66a9abff0337bd4e4231340e6298d407b17da1cf92753dad4bd8b9e8d68671ced529934480be1c252467bc720fb9de12f1e16e093104b1e5f080b6d178dd0e6c57c657175a7afad5e49a20d44c59d28505e77942f67e74e0b73af4bfcae508ad0ead7ac0d499d897a8c1080fe40a7970cde4230fa89730883dc5d16420b1fe2d6e6f42348e6e5d568d3ff74ec2e3cd98020fba10a2676ef399fbce121ce71d4b3225f7209bbc9adbbbccb3ddf6ffb31c729074817d0d65bf3294d6cb69dde2324bc9b971369a2a9e88dbf61b38a57391240d35ba2030e27ad6c5b65f0281380a70bffd50a78493312d517b868a2db2ce5c60b00e740a624d0d87381ba25c67654e1f92e008b169377c2b5f0a00ca5705cbe6907e74a9a46b3843ec3acdf1c9224e7b6cc4fbefe1ffffd2919fc6a00c8383649fa0ee8c43ea0a4320957d3e2e8010edd9949326477ebda1f7ccd9dddeaaec6236d7667300bdea321f5a2ff51d33e414deb3e0d2b11f5ab27891ad2bb442b56bfc98f6c3404e5b6987e88acdc413757074ef4eac0cbeb619efa7da730ad9edddc8f07fed3bb2438e33046240020669f2efee05ffe94f2b78714ae880307d8512a4866d8f60530d565944c0de5fb91c7d384bdddb41eb2f2663ab666e6826a66410c73c1d4ea559f134204e0b5d320b8ebea9d817ed22cc6f8dd044d376039824467c2cb684983ef6b3673ddb2e8d16487c0d488bf7241fb36fa8b1159d575fd6de68eb608a60b1aa795d5cd4f2a339494b649f5ac35f503ccdfceeceb88bb7ca0f790a2f66d91052ef01150398700747d3fa04b8e4e5dd55d60a2a1a2fe099c3a99642afaad6317d5bb41a14bc59d459a8480d865395a5c10bed4d87563405c70b87987e3b557243cdf3903c306ec3974a39119298687b2e21ea1818fd84af4405c5f2be6388dadbb4fa9e4cd30aebbbe81dbdba6d83720b8e6c9ff9a92ae255b18c90e4dd77cd18753dc3633ca862439325e7b6f32c12d0bff3e3940ef972beaaacdbadca5d12550bb812036e3e5f6e3994def36a7873d7a2d4ec1dd9d8a38c68cb376c19b77d0f26946357b33c3c2e92d753253205d396d39b2ff5454e4c9e0f51164d1fa32e39cf6385c9a54de9378757f3216d397fbbd508c5f9d11135ac628050dabb155c10f30f575656cb0d8cb3322b89e18fc271e40002d34d1a6c2da61e887fe5f1b8833180fa152d5cce920102ebfedb59314b760da771db161d262d66b870383798af90f22de34d137285e8f83dd00c4c45b149c9007fa05529cb124a371edf60407005e7dea98ca1795505031bf0176311f6dbb6cc2c8219c398ea171d4c1c4245a64a989f829ef2449fb5b8089e6d1e727e66c23ddfb6ce217541c505ad92e8c49f2cd81a79c8ae550cfbd1edf2a06ffcc8e5a1522b758e79f20be1cdd589cbeb381c760f7b60c1d7f3688d73cc02ecfd21e49690366db0785897adfb3bbe574f45e77594883876a7ad37f0d34ebbf092b58237805af3048683b6b101d785d4741f9006dbc448b146c438f765a472baa5633061247b1758e0b663f1945b79c83f0ed39b5273f4097eed042ae93eeb6dfb0f37c6ca92cc4b59289f0fe58fcc28966d66b22ea082572a3a492980218d0d71595ff4d7519eb76e1d6428a565ea06e5ff4049485fd1ad5e9ade58045db954fbf7884145111c7d7adc42ff479dbf9b8765417692191d55a034d08a1e6a6c196daf7ede2ddbfe91a49d6d453c902331308706c53a7bbf458902770aaedf85d5bb14f2845324c305d85805aa18c8259dc1176110207ffdff016762b601661c632b79e18c56855b18f80566c230344ef09ebe4246acbb4a00bc4a6f12ee49725b862fd675420e023c93f2c0a68f370b5327c51031db926187d072f40a204b8736554b7c0fea6315458ca92dcb2d07d40b114b37f28e3c78a682fea332fa7131136f3a53e3b2e2701127e1695a0ac0a62ba4b6decf425de0cec097dacd19df35161334fbb97077aea56d9b586530f650d5d09dee7874fe6305cc32e36663402cba6f7815c015a01787a2d5c63a99e8cc380669ec7b651921b6064bbe37d040051e1118928aa1875b1b0dbc9c79d817363053a7873fbdc9db54128c29ee4745d11e402ec0761715b87ca2ce3eff076f783b2103375d62ddd2b1cf2b927acd3ad88cedc7ca258d5619761079706843a13f5a102ef76f33a744f850a7e69e285f96ed93adf3a61240a57b9d8104893fa28a175366ffe4e8dcd8877de2c28e050f4c3c37efb114f26c0434754a06791e66ad6ab833d8fdbd03d74b3d88741582eae510f1c8204a8c8357f3514ba661d4f1f56898a4b956a6480ae6a5128a22c04136a396d2afbffd8a6d8eb8d2b37ee2ddf7a4e912dc592ed7a2ba33b0a7dbd51679664626f44a4c520e7cfa2298b8a70ae3ab39d0250c1c30cc0d2f9484805b6293822ce95e897225c72751c75fd4304956781e5ca0a203d5dd3a87ae52edc7c1009f346365cce6de71dda78f5817c6a304dd8dd9f5b4ffca910fa5c7cf312f4817497822b0aedd914e0faea0faffbdc9255747ef03c6b7bdb7b63f1734ba7c1fa423fdae91f6096a69b6dc226eb99b6c6cd16254b028581388d0c1515d585dc4bb764f1d523e496b0c188d42de90b1ae04eec49f7f23670a21257b734ebc5a32fe3442edf1868541288bff763a561e45ca4c5a3bd21cd630e579fe3d08c90ed04e10d6349652ee8178232a524c149110f0f5641ab40623e3f374883f10e95f733565077eadf7c83e576c4d13337048d51a5c9c84a2a8de0ac1b1c41ead4c7ff99f12ae7b5798e5941b9fe16d3a3f1c5e34203bd1caf832e3a249de6f3bbb1c9611ceb38a892a397fd6c46753ef935d0382d264d943e4ac2538a13b3ec494733f98171533315a2936774aa229c5bac82209d3034ae5eb938b1d3f50c8325668d6df67f17403b029001b350435b65d175d338627f690f29d3459f97a1c563b309e9d9f2430bf2a077a8f67e762ca60a067cc9227b878da7c622476d0c692c5cf2baed0bc378ea405dad01a770c4fdca6bc555a9017b9bd4eb69cb7c3297e5b9519c9c4149ff3590b78097ca66f6f3a67c3d6d111f4c43b5e7fcf960a13f6cfcdfb19f01f17be7d7340df96e690daeffc91c3ec03d414b87240f2ab3f5d37e401587d449dc2b71adc094948f8dc671f662daa6af501870ddf609436653a8e6e85226d075cbd997012f060777c7c114f42a2a4d4d8469022185e3e41ab2dca0bf4f8e04d2a08c4b15ac1d84b954fb2a7bc86d68562065e1bba75f2ab8e83a2ee41a60d6be5b4cd958e2f9bf63897996b9b43a98523d9b70dcc69aeede0e9619efba9ac6905a9d54f87b65cfbcb8436869f61146260de5a6cbaa4125782de8848f41eb8ffa2eb0d218cff7c7608cdc9fc7bbaed1e252263f461c7b72a579c15113bc437bc49e604f5f610e25515d8fe81329f6bcceb315468d3ca8c66db471748f40542f05f2012d08846d5cb63a28bdd6cf4ddfe1093c4b8986623aced7348cdb3986b9f29ce60776b6d79f8de76a031ff3280a6b7ad1cdcd8d4322dd0199651e68b1b06fc371a46954a6205560569c0b5fe806fe243771198c6b0e5be0cd85fd0a4af29348ab23c16ca5673e570b5fd65cff91446db12974d70580bb180053a42d961e6d848082233e4f95eabe100a5e172b95c3bf1f9c54d3ef3a98b14c688df82377b927554ce6fca04895981b06a9054770e323fcb38f9978b3ac7a20a974b871c883f5aec536dd5d80047e54ab69bc162cc3b86656924c9f59307c411e59cf555beec575a012fba0d94dc669ec1252a9d60b01d15977e9bb3675c26cbca2fd5a60243a9d6a16648a5b6ef1b49ee35ee110b1e4463b496439caa356e5ceb44ce878c8366d6df97d8f179115317050c3a3021e4397292feb2b496e21343e1d3913b70fbb6d797bd727085879828a8d4530b2f0e04a061eb342a1d63cb1d94335b7fe1348229416988e82826db19f22e5a4d644446dd4cb34b522bf8293f4548d0955f7161500ffae461c181bc8784785dd367c7e890783a286ecb454489616049496fbc89d6a3e4a51235bd631a35eedb83fa5a8ed651d4801237596a349fc15517340f44e45630274c38477224e6fed242a8646a2fb5fe79f7392a5614585e7f864355bbc059472914e8ac2d1e06db10b22f36e425274a0938f4d69439c377e4696a4ad77a38778d83bac53b9d14a0d484d9546183a8a52340a0857282c61a4f403332e0f2a044b3a24cfa2be9be232664857f9646063ddec3bba4bfa73b638e7901ade35b27e563daaff24e028fed2ebd547dce914ddc6a75641445e37f20a83428b9705e98055041952aa13875f9f9d0a9b01fab3cdfc7267469591ea0369fb4c739121ae5b405c9476f27575869d0b127fdc2dd9f65b307f7df1174816f411049a025b9557301e19a7039d69d932a2a927ab26b7437ec29ecf603b25741b39d0c4a743b085a11701bd4ed4dcf4cb32fc71dc7daf91304b4e3d1eb9457400a70eb9cf1ad0ba32ddd9eabde4b98c1860ff437edb7bef2df79632a59402470940094d096077f7be942df7eb21db93fc916166103b1e0db2142850e5e7aeb02d4cb8b52a7f3f0ede51710fbcca2fbc40ed15a10758b5bfd06b34a12117693048498806596acc9f710fa6b3f38ecc846850870e1d0df2c7705b69ab9a79e15209b7256caccabfa2460f3b8ed2e131fc3628624fbcd3208ecc7114b77d2875aeef96b1bf1fe257ba51fb2bf50ba9ed956c7ca190ba5fe3b76f3fabca3f84f6f7e5d3b3adbca0cacf36d8802a3fbf0e476d2cdee9d3c69b50e5f76ffb41421b06a6b29b80be54adc503ca5b4b2b41f4c199610c0974874c0cc7b46cc254cd0b49757d7c3e2a3fa1e7214d3d4f448131f53cc1051c1e495092fb704ec8393c4854391f7db01f5ed5d89f14501c3aac5383c957b221ff921fdf7c417a601deea8a4a74fddf7f3923e611c03f5690ad1e0f7771ef778dc24caec9b1fdf34d84a1a5ce2d3e0a86e5ec8446af306cd492989f40f82a18cd7e801479fb86a9ac7685cb2e11f6b8ff8c590e12f05aa2fd070839aeca8000f7fec5fc8ecf06f7da8000f1d39d820100c670de76a063162d735eab8f1c2300b4c2fc3b64222cd34f842600e44b9320dad3140b0b1f7678fbf1d1a9c69b0ff86cee946f6b751c7f8d7eca3591b681928bf8733c6c79e3b6c4e2189292851af77ccfb2f7e2a6c1b83ca2128cfc9c363fc657c6829be90ba83460c1e42a4ba3e345126c68cfce40b600a4950a1f237a90a600a494c2196f885800df610349c9546880ea921a794d054cf9e75e70cf3b13e75f617a92386615f383daa04cad5356cc6488b51bba17dfc8e1aa9665e0fff18721d613f3fcecd83e9988edd15526e41ee6e5c373e10c68a710dc62d4c8fcb9a404bf385d4a973b33537bd928df9dd775fd8fd0422be7c0cc48f9db7b133f3fcee37ef6cdcbfeb3eede7f4686ced3e7633ba76dff4cb0b696cedf143fc30105f7a67e33cff7acef3f123ca17aa5cb90993a0ba752b7f251b51763692eb93afaf8b689af3b0dffad45d370f856c9ad795eb5318021174aac4bf35fbcddb5ee3ad33bcfa5c18fc99972d0cfee9611ec7d810dbc2842b545dc74904adc067876a1070876a903e85a010a0ece1bfe6476ffe0a0e0a74a5b53262a471e9f9e0e8cd2f74f9b5aac16e2422918adb53fc261ad04a7b722d4afb4ef3286965857636234a0aa54aaac29596aba4124a47d248e59735d8d3cb9d95113f42a1f2c7d5caf0f71adc982410a46a63fafb650f16b52c5ce609a971912e9d8d54d2604b95ecd94a3f46fcd468dfca504de609a911a180ae44f1a4ff4a6b65ca509fb6da4f77fa84a451d90a953ead131208d51ed24e48b0861a529dda5c8e939b14d4901aa94d53b53f3a92dacf52a8ed48faa4a4f9dbc546f911139599b5269547ac1534d45e696d8c11954739957788891656e5e629c3a2a8875b5de96cb89b31ea3866766ed3bcd639c118706a36149ce6b514c630c4aa66bb81d3bc02942108ac9a2d05a77df6d927c407746ab46f5e7f655ebc7e6545f1b1ce865ff384d46cdb28fef3f7bb68903fdca138aa41cb132dad853163c709ea29a9625e6939ce8a8a04e4a985c15125ea6c227b74b6b867a5b53224a3478fd33c21355c777dcdc3537b04cd835a69adb4fa84031aff4282c6972badaeb329a18a1061b54215e3a649eb437ec04713527ac65d324e299bc832223cca8b7451c6dc46c8bdb3c1d702584e8e9b654becd58956e8ae29ae889a47b4e3b8853bc545c1b44be003eec2d13e5db2bbe17fbd96c9ce46fca2942b63471b39bb9cc0d43047208421c08422964f9f5ab149af80829eb0a054cf846afb97fd386a4e4a492f4873fa4bff66745df95f892851020ba45c9c0d1c6a0c6ad0d540c36c28fb9922a061f643ca86a0f854ce868af868517090acb6293a4b38d60d0fd0ca688988ac8c966a982f9af4862489f8489cfaf3f3f353453d2eea11f5887a443d50e2942825c628343e0651972529bf195d7d6a48ca38035a1953b21f8c0d341bea5328ea8922d4a730fba97d0a39284091f543da61c70d0f10b788f4349494911f97921395ac8c965919fefb31629d935212e93f5bad6161f44ca3b4540156872c0d4b809ed1570f1683221479d3a7ad2b9cd0d8aa610c923831c851d9f39076a84e4ecd8682b2a1a06c28281b0aca86826aff6622c518ed157e8a25547edce65e8a24b4042456ec8358a9d8d72d203ef601e1eaa51bdcc377fee01ab3212a9a913e6d6c7914b16e50757d5167b0f25c4d96a3b66692be82456a2432c4874ae58f531ae53db1d5279752a47a8fa3ba261dd31fa9d470ae7a6efc67480de7ca575512a9e15c799094ea23d670ae587156ff3a9fb90a02656779944631cb59dca8b21c359ff45c31eb499fb0da506afb37570d3e41e7aa3693983f4575afd8c6f8fb82cbeead70c21cbf6b4d2e4496cc9259a81584047c583024e009cced2e33112f4267b3cb417095aa627f47ce8488911a7223152b83b432c01ac4a3f26f06f8dbe36f55832b4a98bbdb638c1736316e4e307b815d204c83dbadc90b4def85dfd9701c735adcb62d6e9bf7c6dbde406773f746512844e5b0ca5f78811abf1f9d0161e39bbabf31d72fdc060eb57d2606496e518c85b1c58ec60eee1f948b5be4330b839f6914cd9061acec1c4bb039337f38f28ffb071bf3effe00fad8987763dcdde524b6fe6d6506f78c118d180ae13e7046949189cc9b64063d861ff4988e01ee4fd3eff1f3eb6968d51930e331fc331eb3bfc90b1bcd741d7fc338ee184083b9ee18d0beeeee2eb51adf460334b42a3f1a5a8ddf9c81e3a60425981eb33478614c0eeb6670ad593703ece516c5187f5b09b306acc74406acd3e8b6ebbaaee39ea2f87361f02f6f9a48fe8ceb93251b5a0d82abc42fdc40f54f88e4cc89cb87667d666664649814ce68f33faece064da552ceae03cd67033e5d6a996042846b3e1d87a3ea59a77dc8da873e9fbfb0f3dabd4894893aeeccc70aa7fda675dd0ab74d8fabd6893c1fdc0711825415fd8a154e68f7db67afcdd7b6ae0721b57bced3b8d6e96dcb5f9d9d0de698d7ef23e9d20df002a0510b11f1b503d368a5fd3ff40f1da7fa90cf73f9d08b00424f5099e543bff961c1367dd8545e3eec29a50f5b0a8b0f3b4a0bfe45f1ee434a114e57798cff17ced9e20b2765f185b4f4d597cff4a9f05e5ec57fde4d121f4170956afa128b7795a3dcc7635ac5c233fd0aefaa2a5638a1a677f997dfb2cee6c5f4d3f462faa48a97213b959fa7aef06265e1e994bc9abc5d182a5ebe6db0e46dedfae20df1f183d6131020f42254785b57785c597c252f8810a4aae93bf27d1b868954943c15bfc2dbba051d6bf6db6f9987fd57eeb1eee6bee96ddd98619d8df91528e1c051351c501e0d5e7fbd0b687fb8ac6dbd60f3b1ff0386bdd28d7decbb7add784545582ed2a819b2912a43d6217f4e4a49a47f1094c1584983521a6992a376788c7cc948269d24fa24f037082491aa94b5823255fae8d07040b967ba80ca5f1829a9e0851248c121e1509709126ca85a5d263620e2252091fcc811310075991cb1810d706a48bfcad6a001291870adcc1141d504be3062a886a423846a3849e0f55b7374aa267bea28ec310f67d65c3fbd9b21666aaec7993559f6cdbf3c0c08037ca1ee77a4145f88f5a9e9c0f51dc0e2297affc7ff70601fbf066c0df6c5963fd81626fc1ab03215d06572c40f931ad4237c6a20543b47a76ab05fc69935981fc1beeb69fc0a52e3f6f8d1357e40bceebbd4ed6e04a0ee77a403f114bdbd4a95ddad52a5e67a9a3e72fd760f4840cdb511caf6cddcdb3ebafea8524587f8a1ffb8b155aad46dff1f5db7ae1319824cecb82ee3b8661d1e0607ce4b02a415e055aa54fe5e642f1e06872ee6d0795b135738ce8bdd776d36a802e68a02268d5e8901a2ef5e87a8e3e84df7eb315b8da8a35bc3c2c271919d99bb9b998cd6d80ab6854932b9d6e636e6362fc96e5c5659324025e76dcdf47244de1c648901dd73afa3fb74ecaf70020d628756a80aa91152d35152ef86fbf5186d850f0d6287ead6ec16e0e2bcadd9bcad691986a0fac7abbb61808a61524a7fd9c59f7eb94b778fdd9cd825a3fbbb4fceb63049e26f8e98c30776fb3e3e077ac8975b85d439378ddb368ebb1b5ea54a9f22f6d9a67d105ca5625fc8f337ef662b4028e727378efbad6a5977c3a562493266d6a428fb8074a472b5ada3926039620e317a0e4ea552d9c71b1363ffacbe655e921823c718314f074e9220666a0fb00aa9c9fcbff026fb21920431537f788dbf5b802fec6808a91dc310c41b2ef55a80574f02a431779f52343f202d230b64dc22cbbacf36fce317f6fbf7f08f76bd32b62e8c6ec1b630523221a46eb2530057a9fcc5e658870de3a6e4ae30d0c8b5e5ca987f3d76bdc4ae777ee9915d24afeb9d460f8cb06d9fe2c61cf733f6b563f1fa1fb31240f64b2e02e90bc3be20bc5efe35d92280f8fbf92b7f3eb0ff316bf3b745ae5329308c42440982589550c492ea2fa47a4743488d3f3b057475205db1df26e79d8de8cd2e9aefdf2980f9041bf63b34d82fc0064dcf3ce3a44b0222481868483532d0190ce17c2003de05630c0a7b6807cdaaf6f300d42929bdc925414b39be1d1e53c351a51cd7cbbfbedda1c118ee6a26c7cc0e2927563f3b64a004478e28ac9fce210a946f401968f5e3aa19d018b4c4c2e8b8fae91947adab9a0594bfd05971573fd5a741d5fefcd4fe1a3d44564e54559ecea13f3ea18c042ac323b3d360bf0c0f8d0c6462346980d7788ec71c4143107c1155cd861d413a647053fb7d989c29cafaf0b37b356630e7fc687c6537e27a7183fdf574f431c6e7f8eb05b132d41be26b4829a07e4369e7d0effff990f547ac320d3648d31be828eafe853fe24791d09d93043258444aed7f11a3f691eb2fb9bc719bc0cc1459812f764822c3af3b27a5fcf20377bf170d36f88e82a9e98f30754edaa0fc10acce34ae4064c5fa8eaad0588622aa3a135b358accecb04026183af2dcc699ca19ab0eea1cfab7ce045c040d027bd55368185bddaa90c6565cc2c6f443a1f6c7b844eddf56452648bdfa5918ded39d818632317292e01d57a9a8d4fe11efb01125a6e6e9f9699e3e31cfc73bbda455cd1306caad42c2491606fbd72a9e061bc9c2e86f1e57b50d68e82a57398a739876112339b491f88086b34e4e3ab1dd248997fbca777e50a673e8bf86d07e7793131358676210057cb14305c1177ddad10b30c28086d4444767489182fcd47e216ebe66fec284ec9fb3bbb35ff2c22eecc2aecb2ff7ae8f9341444c68383732d07072ced076235b435e4c750efdb2091a766a1b03a591e5a8f8acd3a9c689387d0a3b9552d5febef121a71287e8dce0a42227e4a8c89ffb502a7eb19f8e38d98a49583a82e1489d43bf7bf40634dc9f1a2c49d090b60efd151336ae599820eb1efe10777777bf1f423841c36dd5184408c9a2340638b57f04c40fbe59e9eed29ff9e28b2f66969f104078417e887068c82c5694463d97c4c6359b18e8649d595b0767c8e44c4ca448833fa0fd9daa21eb94f8f7a34033330383a0dabfc3360161986b7086a673e8efa440fbc319251db34b66130a447af2503a66697a10a563b6dbb97004e8063ce10c0c48a61723f90b73243e4d7fe7d01fa7408fe07c4dfc4afe5bc3b536040d49201b41fbfd081820a91d92a0acbc6049ed8fa3da4f6a0873c3297f2cb06a5c88c90c88d41f5d351033161a509634b8751095ba95c61250fab44970c2a201254a9f4a34a044a9456676a801e424e7679de450699c3ead132252fe57e78028a0e18c4c9fae6b07a823045fecd0b02c7af41d8e0ae2317d751cc6f9a6614122494a3833333353e7d7a139c49dcde5d7a3800e35d8171268c8383755fec53a7d92bc33e4a81daca18e8791d8b82af6f18ec74458a748ab419c93911dd0feee1c8d0433ee9c736211c3e60da16543e4b68fd11de334ce99c3b089c5d7aeecaf9f73f2e4aedf6eceb804ce592efbb9b9fb17663f9110dd31c758734c032bb7d13427ddbeeb0b7da8375ad860a5868c48501c72fa552348833f3df0ff40f268aaec8d28fdff27fd6793dba6b99a3b19ff07d25f9d0dc7184dffff8f11b131e86f3fbd90abf349197fe1a4f13b8fc3de3f935c6693691976455a37edfb47d13b1b6d3ef69af6658cd9641767ccd8f54d798258a37f0411e2b34f02152975a9d44d821a5a75d7a329f10b89e102d1200648b547f641bcccfb41838706b1893588693f7060d8fc1fe6363d4c4e89c5c561aa9a17ee144a57744557744579a831b3df2cc6f923d60454a952854b361803a4da23ce08a9dcd9c4f8313c9fdc691b8c311aecd0ff07528d1fdd9311091ad223dbf3cf492929a5edf6557b0f671792ae9f4ce011ce2afa4252bd68bdb88b6e5fb115f2c1f5f9b9663eb88624ceb2797df7f5956e94ae1752af2fe4caa359e447552cea878ef1f7e7c13705a052fdc398eaa157fddd3d2ecbd234e8cf123f2e4706ab49c31f350a817993c9e4bec12ed0af733ef6937bd63c927f17e8d554e40a47911d233a8c735d3c846f96a5a34f1c394a1c4c182805b4a3412ef1cd10ce6990bfc43acc467234c83faadbd97cb82c15108e1c3a96a276c496cd2aa0daff0db2aa96604a334062ed21dd0334d6c7fd7b6cdb18d8b665b7c0c65cef326f3eb3bbbbbbbbcbbcbbeb4ad8dcfd223dc76e6208180f68ffd6ed1de3fa0e361ed015d990be0b83bf11ec604a5d24d465b20355dd301ed0d055335289546e6e867c3ba02107f5c9e74e1068385da5ed38ea7ace7980beb99a4f1aa5a93ca6fb143595a35c89a67225be247eaed27ce20b364a5a2c7edc2d02db9999dc61f9e01078746af6510946f4d40ce3927facf21a025de18472507423aa20258d9239aa3e65532577a411b963441ae9987e24d92777bce743b9e34a1aec6d9036c8bb2b775cfef5a1ab78705017907d943bd208cfcad81bd9c7f762b80d4e6f1bc496d8b01cd00cca12dabbf6ae5d81f2fb6398164443b036866198b66dbe3977cf971f3ffb17da63bf6905a8d86fda566cd3364d03c255fb5ef4e029780083c9255708dabeb7efeda1d06df002afeee645a9a8297440e5ef123404ebf5a0a3e6b7691eb7d63c59601accb47f21b3320a50af0765a7004f5e1fb77167a37ffb4d5698ba7d0b84ebf6bdf07af062a7e0c15e520b4aec54edbf6ad9f69a767536daae54641fb2641f66331e93f18c77bfbeaefd3633b332ba66ef038f03649f6559966559966559f6dbd96c1fd860263f046bf633d9775ff673fb2ddb9e3f1a5fb5edf9f76d58d3b4dfb4ecebb12d276c2417905e80614e74a6822506029ba6651c98da765d97a44075f96bd8b2dddde6ae3260bbbbbbbbbbebbb3b272a3ee831fcb9fbba636df076f728a5740c7b678ecdee2ee375c5c6769743aa7dc0b94c0acd2a4b91522856590abd2a4ba1b2b2141a2b4ba13e3d40fddba5d01f2ea5d0ae3c02ca2fa5504e4aa15b39f6c4bceb86eeeed714ca72f73d8ee8c865264ac99befeeeeeec699188d541a1a7fa075d8dd700395d402196c661a868941db386f0d73153bf429e939904dca728302de6b9205422a132e23664dcb8e18a18897c7ea28c080020c5efd0630dc0086cbebea29c090020c17090c2aae0b2c8cfe511704571e0ba33f08cd508021bba16bd9a1b172fc5c5a4637a4c0fef236128ace06f6f10b3fecfde98f3a1bd8fbbb6024152d5e192e2d2b4adcf49189f999c94ca3ee468fd1c8a5a5648a994b314cec721a59b4da753384f40c130b6e5706f6fbb3550079e52a57c94496f26977830235be543989b1232eadae8858bcbca0e8381544a82427b3a8ecbbef546ab214b813af1a6ccd0be24780708245458c27800754ef8d91ef9d8dd780cc7a651b239fa580b16c8cfc96ff4d40c6d831c6187935ecfa21664df61be3d5846cc26bf47aa8f193034713abe8ed3033c3034d133e1e43a60919ff9ae8cdc103f5fa38c618b70cc51533ed3312e909126f2838913b7f21ebe0080d3056c1e887d1c4ae28671c95fdca544e712ac5442c8a577ca47e4e605794be7a56b9a378c53f0da6dc79d53f29e93fb59ab1d54e0dc1dc4daca050a1f841a66973aec466672c356d53c192b1b6f106dc8e22c80e0dedd00eedd0a8ee0b5914b3f8486da601c90554057532112c6661346049979b24f2879835da15ebe5556007eb071e425e2f2f070e1f7404f5e5f140e3f55063879919cd1b825493e407109b03d6bcad89e4b735b1b359d1c2cd2223b2f3fb96659a077a47de63c640f9c3e795b1cfcb897e64623c15a31f46d9c42ec975feda7b32acd22676c9d889a28c5757c5cc76d418558ee299b158c562152b00356415cb511dd8987e110815d11ae21ded0b4283216ed12e0cadb2101bd10ae72b0345dddfb42dd3443937dc40880e80d005160f157cf044074c2819d500c7cad836714109430c5943116660030b87253c416128620624f0026b8147896c758825a8ddcd82ae387868d4e6b0820f9a1084223fb042ab2666a1c6fff8609fb81a5fa64ff163f4c9255e27a0ae8336825a77567a724a39b729a7ecce66621826fd270fce91a1232dee6c624783ebae1298d82055934da1fdda0a68f6db4520fbac0aed6c68ded65c39a0e19cf2e3baa33167c8c77ee588a6a8cc81cf4cf6fd52c751daf7cb9d6f3fb0412984e6518f91fdbd687076472e2768085609ca29d48384262e238250e5fb9046613e3d2ba38594b01c49901b5979111f27d29a79020947b88cf0e9849004fdf8b45aa14cf59189e1e3a88e4857e4a733b2ea900429612d11f2697539a14cf5918921e325f7191a1e3f78d82168a5ec8f7c8ff25ff878cf27589ba33f1ceeef9f4307efae56479ff6ebdddd6fc33c1d387234d8bbc2a1233a8e1c3a643c870ef7665d4d6c0b43fb293737e7ccbfbc50fbebfa4874a4fd7e987dfff585999cb10be3cab4baf16edbd351a3b60fa663fc3b80a1e08abe82f803e330dc9561870ec686d070593bfc0937a66918b65d97b65dd7966ddb36b52d9bdba66513bbdc3d8e8139eef7c78ca021a93679c2dfdcd8a3939fe3dddde79d73e5ce52669641f247fa34b80a4972d5270f25d0933e79288124509f56eec81d9264f56cbc7dd36378c8e1187f38d8f7f7e8e79bcf2fe6cf27fb7b86e371aac19b063df36ca6fac4b51bfb74d4a0c1d160576075d33c76b44cf5c4373c84c5fa1d6fea53ffd504fa93844dc20cd661a4e482898fc518e36b1fc3185d732d6e8c32c618637f33e0cbd0eef6d1e1438c1c37536286e17aa2294167838e0df1a73e27a52760c1c4d819f0651a5ce168d2a4094bcf5797f9c921e3439fc29f1a2e7599f0e8d49056f781a3e6c472b02460414a4e95bf1941c3595f244e9ffabf7b248e64a208288dc27270b01ebf51613cd80ea6b3898eb0822a3b2398e87216867cf67aa8f0e85c9fc86761c8efb080b1a8588ea3b8281d235f8ace942a25952a6577a3aab21bd2536588f954f9712cd1132a3fd472581606b7547e8981da2f2fba30f833506995bf49aef2298ab64645aa34e2a40d46586d00420d77a89254a513364ca9214c951fb957728eb06282c2dfdd3f550b31babbfb35fee6eea69436edeeee9e91c9d1f3a397a0f2e9c0d1604b0968c8b1f4502058417ee01805512a85fc050fa730f3f6bafa3fe4cf6283ae69dae7af7de16aedf1f5d568d0bf418f6609b4dfbd4feeeffe3178a4d490aec4b0e22bd47dd3cad81a9d1dfbc6b0ac09588d39b1b931fdd826bd1a343c7cddcec68eca57d3f0d0a708f68033610c1ec24824064f500d4991b5b9bb6f8c33bef27335f6a2f6f2e82b9cbc4fcad3c9b67d8a75ebeeeef62682493d88fbc302342459c317c83005680d6c05355461c3e185900842a287b431132464504bb55b092b311e19411215f598ed7eba856dfb04e4aa3df61700dba27e39acdbb20e57aaee839f6d7bd23eccb2acb3de3e9b736ed97396fd66af79a190293b9b8c26aa2a3fdc7254b4fcc2ae0826346f5807ed8709209f44c284eabcf1ba22d4db94f4683facc3b68325c0b6aaf2371cd5d603f9a46e46d7950f6342a3a3ba1ca1da350bea93940ea54f1e451de0e57745ba9dce489f40ce7140f09f44a2d47970706674dd36d5a664ebc171d40654e586b335a91267eb8a31a19c26a409695234eee11eedbb9c4680cf18ce79721cb5519a33e7cbdf563c5fb05fe4610b7613a07f53396adb987eb911c1a5f6a6a2f1b5cb5942e7f7e7f4a93bc0cb4fa18486470ef0d967cf9f8fd811e9d3763a550e8093579713dbbb9c01446f1e8014715fc946acdcc7ca7d9bd732bca6d231da47f9001e2fe918f998c74ddae31f066a50765d8ea3b8c763e44f12fbe729e46f4a1ae53c1ea3e2ba510d375595ef3cdd0df7f854797d5d4e95cf895a319a71a4b06d67f3f25bd69a2d1ed2b766a96572e18580ba70e12531fd7efbad08a777366c7a9a668f6bb6ed967171dbb891c8568b884ef3ccd93c8da479e6cfe66924f2894501e1260f0847b54a3e26659445a0db60bc49fd35278a37c6b4a60f2515d387a3367d780d91d7f7f2897fd93b7dea9f320d5404e155443572e954d3875791abb3f9de04b2173ff36870690667fc5ec8d5343f98064d4fd31bb68c999e337943b225a7f850ed2fc9327d2b7bd945df7f8d836a229168665acbc4e2e571b00ed7cb6f8003f684b918c18ce668f4d835615c98b4392925b59ac7a7f409abadf9262f34c51b2ee2c4544c5d3857cea523a95c432e2257eabaa9d1a7f0fa1a5d0bec8a29eceb1a5c592b94c573e1d1d69cb1d5ea717d5f83226950beaacae6e1c178688b57f12b422eeaecf469c5cb8f3c71489fba2255462355e654498425b698f3695a73ceaf060fd727a34896118cc7512e5e7e6bcad0fff5309e6f2b2dd6a7060f8da4791cd53a1ca70c55f92dbe8ff5fb421054ec3dcf851a94d231293edcd6929ee9b592d67154f37ceb609f4f699e29b54b73f996979964f1a5d2fc648bc587b2155bbc6c11d1e9138b222412e977491f3d5383f223bde0f018f993d2160b15bf220ddd942191a8d5a76eca90887b93c9dbaa82e4f9e0e6e150c8960f2cf37c44975695dfa2e1902b34d15b6ff626c1d54b8354aedf22cbaf7cf4bf7ef36dfba687728fd3cefd9be14f9f7e117bc7963013d7939ae027380df5fac5e2af78ebc5066564b00df3628340b83c37fa4d7b14fe237f176f318f976c0b0b0fe95b3696183aeeb383692c329aa6844cc5de9dc7b66d9ce34f7fc3304dc6283f40f149841265e5a7898f48c49472cef5d7f3a0cf7ff9dc36aec5e3250d5e2fe328f6f198eb9f44a2574f1168d8388da44f427ebdcb5fdf44ba489f8cf409fb15ed99d527fa2d7fe5d4eb3d6c9d7a5d5f6cf07a170f636d5f38bb4f67e563f94252dd16c4588edac5fec22e0c7bea4e9f7e0b46b11516f71d2d5fc84fbf170d62df833f1e0d7e1568f0fa0e7b1117a54ff3af4b847dc82c66ad8c9b3e61ddef76effef9d0e0f534bdd2ddbc44dcc3e21e284b5ae1ae9ae4fcf4296422ccbafeb43262d6d6eb81f0bfdc775c11c7b56a55d72fdb6fbb3147e93657fb707f6aac8caedbff10a44ffedbdbd87efb5d28804bd46ddba8d46d6edbb287c4a7ae94ba4c94785237eee6948afde64da28fcc159bafbde6c73abf300415fb626b7b9ae626cb8889123e359ca9db87fb33d3a790eed0a7a7f91aff2447c58de1e7e636bfd0b435f753b76faed1e0f694f473afef6b60bffdf60bb35d4bb6ed6c5870cb85b1a39ef4f15ac1da53cb875dfaf0aa2baadb52f78615bcf9f290a300f04ffa75140e3ffa75970780c71bc3c21c5ea92a6567336a29bdbcf45e0e5da9eb66e3df520c81863c84613cc4541a9491a3c743ccdf0c0e5948e5d1f31053e913e939b2d0065bc07423180fe63792d7f2db965e76d53eb3c3fa6c93fd59a05d790c994c09168adf0b50d358084ac5bee5378e93f22746c126505cc52731284289ac1865fe34f1e9ba88612dd8b77c40b8c607b10f8685841a942fb12f0740b5e54b7f618e955ebc7789309248f48ee0f0301eced7e010ae0fd33063b10b7b2afdcb87b209ef432986ff503e7172f9509aa1ca11e93422bdfc96d28be7bde7e2ed82387844b08f8e7ef4246fa8f23725b644fd034c2d05c1f5e581c4daf241acd496962f7d40b8be7c617cec7bd120d8f2c13428392e4512947f087499e460495d26395052b78ee3183fba57ac91dff342ae5ec496d6ffddffe8d1c962fa6592032917e52167b1108e3ecd91fbaa699ca63d6fabc91b35d8e2dff3c155a84f5b77aa7cd217ced1175297ef63aab25a3c5e10fb921717e47ff1e682fc9ec72dc8ff1e5d90dfc51b2dc80fe3913686792fec69da06fb5a7c4b16da20912aff08cca764c714a524d27f08b6608ea58f4f1b25592f1f9f7bee6c58fcb30e2f2fff5b19fcf25decc97b392b0a2a03c5efa278ef05f370f060bcf8e2ad7052f2e20de8b65cd89037e9135663c90b4bfff2ecfdabeaf75f379164f1100f499664ad564371157370e2879d8aef1e49b0a08c44c454a441e74417344e5441a7e208faca914c2c2aa670641331473e1175641a2e22f21af2614c61a43e852f4f6a50f6f8c135be7c2990a0a9178f2babc565b57a7959bdbcbcbcbcacbc55145e3cef5ffe5d9a6f9071ca8be74b1a94ef79eed3608cffe2f5f0de07d7164c90ac5c160718009c62ca5100f89c4522e1f0a5603e960e0e8509203fecea0bba7867390adb18172e5e0ea5a82e5c54170ea57efd9cd7b0a0fc2a0b8575e02126807ce9822115b4aa14aa520d0b437ee859a8321ae9d346116caa081c23aacc794175f17d18917cefe2431e7a799a7e19a188a9988a3792eb8a718cdd03fb460d7adf36e87d8bef07577ff2a5408212e9d3bf84f914d8475f795f38e5c378bea463e4bbf0fca741f99fe7402db19b717d0ad983d4a0fc1f5c471ec5598e62a1cde56514e9d1fb58bd2f04417d79ef6950f254d287db431ac7eb9b06250fb5f86660f5e5f3260dca98ea13f6cef218f92d2fa37779675d2f5f38a5e9577821d715d827590dca7fd36f1f4a9664ad0c697a39e987b4aa50f1bb2a689a85176fbc88d3a0bc3a96a3de63e44f1a3fd317530dca177d18534df0b3faa4f13bb3641429b43218c8fcd256159e0f267921497e0a2fe46ef0583eb0eaf98823c9aaf25dbc70d41253a48de167f9e81752a622afe33c3a6a30ce1ae5d703f369d1347e600303032e0c5e1834baaed8ac38028d0d6ebe1c856d577a92a8b16d8c3146f9b10a71661f04a61ea8642dd655412d15cd0000002000a314000028100a070463d1603c9e0bb3f80114000d839e4a745a9b89c32cc7510a19648c3160c8000080008060044840007c2f9d51056e5634599f5b72acb5dc99baee6ec9bc6490ab4c9dd8e61060a620f196311adba79d2fcd24fc25212a55f10ea33403f91a090d1028b284cb2aba747e31c17f532e685972836cfe52f497218b2728aee28d6791af87f0f714ec7647dbc93d0e4f0ad20e785f4cd94406d4f5d3b3f1d7b48cf131f370e0735cc0a28837b13b8c121e287aba46a8bab1efaa208572ec62350f64eb3d8dfed23dcd851248af28ce0f4f7d47a240b648dbd6b132bc808cd5b9da67d5dc3d3846227803d4c2dfd06c890194dc9940e273158984678646eb9262f737f046211802d24ca9996163f030df7dd17710ee56d1498e9868f273cf005beae7f32201f90af8dfd867a5a503c8cdd84ff2eb68f958fe42e7a676c10ce940b6caf9bfd05a0cd72d76fde78cb31f8baed7c792e5a50976539526975a07c2b1d61cf09333b514df400205f0faa7f5f0800014aef6081a904dbb88a194c3e63087a16373dc66c408db3a5405dc445e6dd72e9b34ff98f39c3ac46cdb714922eb73f2bb59aca25261764aee5fb9256187a257c0ae1afc723a6cbcc240b243a24919d933c8c5dc716e62f82a272e68395d77ace4838b636680908f048a17602f730217aec1db7b7f7dedc26ca2ec4e76e370566dff1ca25df0f17e1eac9462efdd685c234311a32f4259acdd435996b604c67e83395d58b3235d9fe8becc4a3f6f5a47b95898ebbc3cbc31874a32ab2943851f7237e50f4a7f5835877c75518413e5b24f0590e5528111afa36875d8fa2314bfd84be064a55106e150185c327b7e7f0b94bcc26906c83632265a3b14654eb58094777bce4b8dde90d39250557de773df0ecf363c3fcc11ed543d907aac151d501e55f78962f63c2cf819e250ad28c31041613ab120df04b3448ddb8b6c13e3a7d3c5a8e54b30dfdabd0e8f0c44c0a051c7ef040db1c1d534e45ad9194d9be058afe1cc048eb0691979d8131471cfeb7bf8500e3a46d4e3d8b543ff952a96d4a053113f8596672627eb989d08670c11a633942c0f33bcbc8a0b6a390e412c1561ec8e194f4a17cd6831734dc60aa5fba6c869490a06b78d77c26bc071054aaab96881661045cdcb0744bd753819a2455445ba0133adaa64a0a529ab953fc7118550198ab4297971997b04767a0334a005891a846ba3c7f1a3b8d955d61a164e98312e6967dea3cb07aefdd47b953435b12b03669f7580667d361d7f9c6c2d4c44bec4af738e9d32d9181f0e084559673e402e25326b0b0f4ade32354a71e4d8272f24e7570b1193fc696105749ba70c4d240008c27d140a9f5a38a2993eade4287b6370eb46ccab79df54ec0e6d0ab0e8c36a5c599f06df6d32e7e5b9bc83797aef933bc8cc8b648fb74ff1d9117732534b632223a9c50baade78f285c1b9b8d7df97e90c7a10b21a1442f0062d04c9ecee65c2c7c1a5ad01b26b52fa560099a8199e64cb8f7d99d911e78c601f6432487f1c7be6e94158b29eee076d1de41c409e82d5195f429de739f1e27a73065e624cd4d7852b4b42ea85f5c4ed49ef6fb162ca3fe909d57c7362185ab44b7d2785ac29a3ad276a1581a04645f6ba47ad60bd2044e46f16138072688fb8c0a6b5530a19b713ccb8af327d61e4bc52fe0520238e06f300316f3aa4911a4e9e61c3a600660b6577677754430cf7301f0b97b3c9a6f4efa48bdb053dc609c8aacb6dfcf5be19032734486111490de101ff8611a6b75ca7e8ddb44a488899e3a53b85430e15bb605fe42d5b2ad0056ff6efd7ac0533df5c49b13df62add9fd1f09e7c6e78c0e2c8d03a8d081e85f6f5073b8c99020fd0d0b17df06253817eefcd9698b80d052caf0c56489d8d729b169586e906ffe8170c11925c21299ce3abba9f38d33c6844adf3d8ad45ba76bcaf2754f82ef8f5dda5edc584049a39cf1d5a1bcdabc1ea02c9e4d93db292c2da9382f36f096bf8dee98482c1d8c0953393cbed5be83487abcf1e5f13bc402840e98c7b7a8b41d2dad2afcbe6d88cafd725183a04cb6949266b7f314d02119c89db07f3db5b2c381b62b24d7b07aed6024332f1f26b52752e02c5e6262bc087d728062f142df0c13cc1096aa6dcbf2101da06ee58f4b7c5f63f9c9df2e3bc4cea9fd1459a46f5f285c4bc34bd54b8c434d7af3981d0d1eb0e769da4a1362179684f44d9c70f59ad06deb1d7e5db94b0f56ed5dd3277f681da1ce330bb9df88067c0f2885b07e54a596a791943475c1b634e659ab32612a8b204c6b16c8cb33011057c9491ab02ce4083fb43952d747efcfa36bac85f5b0c99b41e40b71667cf7bfef6041ec459e92a649ae742a6bcea678803c14753848a412b8e05c5358ffef9f99f70ded12f242751f1f1d8846644ba8a814486165cd221a84f8870b436a45b2abb80aa8ce3649d1ad3d8d5bdb5bef1704c17aa6bf5aac2beb449d06ba7b355970c01e7cc80037f856cff0a80b3cbc0071a5cfb57f295e7c7240a5a0aadcca002067dceff1656fc2f6ebceb1e1626c33c7f44b2cf43bdeec726775d53e4f17ef9b5b0a8d2aefd949099b9d0c056b451f3b8c3d468463e074a0241e52ff9104f2c90582e8a6880d7f18493fe6822fd9232d2fa4c4dee0c1d4013eefeaef0e33e20ef7bcbb62735dfc193d8f83dcf85cb665f0fb818019b11fa887d3972d3f8bb457fa561fe96f72b5ac0068b3914220c4eb927eec2da7e3e16c8c0a77f9e8c96615137a043346944a6b7e9d6217bd15aeb8b11c849acef96db1739783c1827d74d6efd8d0d36c508393dfa4154aac7c547f5da22d9b7e91ec2415da3a8088f80f815f0766950847c2f07e8d520aa7d695e2f17610fd84120b9c36a50941422f27cd882cc82351f68ab80d2e8f0710e30daeee4de7ebc43772541e67d308e5c13ea0f488089abd4280aaf2c9ec41316893ce91c872c48627048aa4868f3413a1baa6d4dc3804874f88e3566ddf49a7dfff137db2e0ae67d61d954d9e62adc1d58d3b3b869560ea62624c8aa389afcc0a3f41527106152b18c3e59c4bb0ed90fe9b8359028c89a802caaedf2ed371c3da853ac60750cb51d59190879058c95273307c4e05c103b48017780c57ef1c1cacb6f105d6325c16755d127f356ea0b20230335dd158c3ad19ab42ecc5712487ca180687c2f0c341c1184b9e621c1d3f6d2055e8159b922e2472e0d9265e6f5fe943c69614ace3cc670d70d48113bac07be4c0438594f048a38d0bb49b0cbe7ed0d7f503c53ca8c17c441343c2f410ab1ad5655bd380612e129a924e4b567f449572121ce74264492500222f28e7579de7fdb16cebcd908b52d8a69395012244a550386d65beaccc202a60c208e020cc42db0eb5b32a4a04c2b6a39c1af08bef110f6606791392dcb28a6e322cca85eba07f19eda617cbc44eaec8bdd8d9b5d4fc682605ce124c2d1a6f8a4db7fe7fb6564a870db054b98252556f73d41768a9445e2df8e0040a881e263763a1a80235ec7e9bb086b592034fd7186a9c009aa48e90547e4bb004b31a624e6cec708f44f9057da108ee90934c5972652fdd58d68192d3adf06a8909cacdf493e6c1c21dd149810b94331e16a87afbd798519c37d61974db59fa76c5c1d5d12821d91351af5ae6c0949cc3545b8aca38ef366aead5925dfb34e40833fcb623d9be545a03a0f18c081d6ce0294ef9c1d2c874b4af994330388c60f1e4158e900bc00c3ffb77b2d80c013091379e868dd9bfa32715c6bfee402256ee0503244e512e17f97d276caa77789e091a24d6af96dee771f5a35b0aea3ecb67135fadf42dbae7a99fe844089dc334bbdc1a178a92f0343af693c99ae8af2ca74c2ab162fac42c4aaacce146a6c905e17b855d0e33c02e591aff2773fd98b51719e793b8d3a53e04f5e446455f8af745e56df7359cbd5d945fc55812cbb2a988c54484f7741318b86d2cff07758432781253e5cb31d51b188b3bc8b376c44a3a459be18dafcd116b3976f68eeb24a403f4892847b8a4ee7c1ab7877e54120fa6f105957c1b43650eb33470a20ed87f5544081378a6295f32f7a6d4813e90758c6b454818b445efed278d5c9c6b8faf024c936ab8af30f896611f921a5b1cfc4d0938bf55410a9652d67c1538e675932c4bc4d4a6b472830de15a35e6ba72adcb6e5e27d2a6e95b90cf1b6b3134607914608ef32fd75d36c062c05b142f378136c0ac5c49ecfa47b10ce68e5979ad4fcea1fb168b7678662ecc28b735618de1fd8dd8aade87b15e34c2c4781ef8d7f3746e9b231bdb056eea34e06c4b958c27fc39b6551c0dc6c1a60151663eb6171b6c530dbcb9140f81c9d618e03ea6f4c032fa2b2f1fddef22b907f6ce2e1631d054e982fc1da5e1e0e6520fd7c882362d41c77631f0a430abfded8dec8ad479b1b6f8d9198374a02ec0fabb991f64d446125c1951d0b13f38ee762c79e547ce08c450fce0da21c4bdd9c53e3ea12171e0d2610520bf07e6d9b33683771a8fbb5361aa541f052fb1efa15b2ad05ea64fe29d716b3693859ee57bb55c4eba5c1e2f63eaafe840c70503376c7e7b49202ea0eb69dd1fd7ebb36e3d0f6da1d10069c7d9fa6c68a219069b5d4fbd9d6cf5e0f5baa7d4a886193dcf5d8cdde24f2262bd96ab0009f2f4df3e824a56f6e53b757eb4d4105f4000f20d3ccac8327d7483657df9051394fcef35b71e741c69dcd130c52fa5d2df6bf76fdbeaec6021b08a607d2b9896cac44ea35e930ac7292d02837bc49345c659e23e45a5e1e4a98a176e890cf42a2f7bad19fa4a5a6aa08a11f2eb43fe16dc6429e64f0fb2f742503937f0d654cda72f87ae72df7ba7b00be8ca907c71b68326497c5fceee1fadd64cfed1f240925b69ce5902a3812684d32202146a36fe65559fcf8cce07a3061d033bb0a54b71b1a7b05cabc2638db2c43eaf56921f47c33f9f064fc5d763a37ccc141a4e43e6440f9b69a9028f7f2713d344ea847d7b7de6786fc0c47afec14cafa4339d6542d3464f10230f513aae2401a7c45901ecf129bc050cd0f41137cb379af16a34135f191a88bcf3d8b7893af030e067f75c66a13194468f7379e5bc3f729a4a13a7ca7928d095a41a8221590a9cb196d67be18b88ab20505b96a0562c1292a404f0a6625cc0ee52f6e61fa838f46ce737a3eb3c575bf4cf594c714addf4108b4567b5e19f6b2ac8333909d40733400417a0c8efc88fc421d9d26dcd2ae806a9188734ea21efefc45558aee8e023d1b7b2e764712660e6852d8f60a8346a987ba322222e725050a30b8838494d9e8ad486216a686c12843038380e8c840f879289c9dac98c6bcf1c7cea3574c78d7f2a2029a33eab3fa70fdb2ba12fc2951f5c0e70637686c09bafb535ad580df4ee65f290a2c7b71e7833e6f90525c18b9296da0aee1e163b52f36db5eeeb01b1c748514629ca24479df7b95f609235682eec354470578518589add9bdee551520b828faaacb3ff52add9ac26faa7292f178b0ca3fdb7f36d2f490e15ee064a20df076f8e1008f80aaf4aa78e567fa6376ff56804a884d279fa98efe943b555f9a366eaafeaf50460fe81183b9a77fcb5ec3cff97ea7f472c63d28d8dd17d7ee5514a1714598b78352a80a50693577f822d1336268639e50be1b57f65fa15f98913ec1b105c4a54fa48311f7d7a2cba90b16c3347ae0f9dc3759480ac0961c3f9b060fdc4cd5e9db199e36ba3438bbad88f7483d8ce513551f867b448bd7d151ec614131293e3206c22eeaf84e0817f2e79e33a71351f03885bc82853535676c1da24d5f7006763c589eb156a3c9f777aa85ab0bf1529aebd65a48cb66e715453181fcfe8d094ef09233001fad51e6ce822cff691757f24b0bf125f92219a72e65862225c70875471e7438982454915ff866f3825f51f779a83641204390093435069c39bdff2239f4f0a9a1ce60752cdba94ef5085f96c5ed34dae364c72b086286ea6d0c8885b2a944236e2dd6d97a2834da5ad28f148ec22516f25d512560d5adbc305a128e9eedafde8060a6b93ed156cfe8e6f9d5ea8366c8c5fa2e8f07426b97b523dea0e85fce8998303308c1712600dfc8c1cb8680e2e9be2c648981f7426f112c7603cb65b70e313cf4b081dec33b8b3712077802d519827c695136cb9a781f6d75438832ad0721280ecf4c513ee92b0841c75388b90751a8d5099a0d7695399ea1a01a11a463ff0288f3bb9adf38c9c4d900a688dd7b9dbca041f215a0c1ae9623b450eed584bec723e7f9408385618221f8c260d57226f360a71eaf2c4dfd3630e5379872e55a0211280ccc1b820c1c82a184f915ee041177a74bf7af8ff862c77d46b37b2738cd7dd039a0e722ec065d0a9662dce7e92bc48b343a2621298c3dec904a03a1eaa59d43456ec55b1066d992e5c7e3e9c2396cdf76cbe6a68769d897f8a19b6a613278de8dd055eb97acdb0b58759dae5c700caec2f2b597b4919e17efe6f6b02e93ea3afdcbe884141977437ccf639de8a1b3e272af04b39b382e24dd67e17461013557474385db9cd6d324b51e00e19d110a08279449d1211dfc2b6d2323c91c97d831c4b1948a3324ffbc0d391c551e3499ca0c1218687ce84eae6e54b6f52a07803184dc40e84933ff7f0e4934898e69356432e46cf2d810664357a69581573e9997a1484e032b8c151230c355ca66c4668a096cd0dcbbabe54e0eb702df03452d603ecc1c8b223d16e84a8f15f274732652e640c9232341816c24f13657a2da87585a29ebb6382b762c3bd4222175e004fa841c093d386c8eb8d4a780109aac07ae36bfd155f93e801e8e74ec9fa78572c7712ca0040cf963816fdc87c1c442c0941ffb3a7f897d040132d4b91beee33dc977222fbd556571ecf50ca926a4d56efe769d397cd233700f1fa9f818fa5a3a59def569a9883d9435b11491fe5e56aaf23c087a23cf8e9c96d1c81840c46084b932d0010d0616a12b7e104ea63916ea22c6f7360e7fe2cca687cfc74d130ed161b3691c44d1fd80b7bd8e2e286419df544edf0a9c377bc187405ccaf4ede5ab045c602a2317934810ab02260d7343a37d2909a5e70d1e93b74ce0cf048fcb88ee6bc4033fe44eba50c9e2869034b2c01715293f6121a2ef984b3a9e197ddb81864bb7f5b340ebf28ada9da2d9d5760eb08d41496d370576a976199f6cd179e8630c9e342e0a446225f7703871ccd41a094ebe5da0ac50e0f14a06524ea04c2874b1110ab46fa985f4c618720d960251c7473a3bc60d283cac30f18921dadbef7594718695caa3eac23472b5dd7850704a9db8bfabbeaefc8c00cad1d225c5659074d00f1d33430ec0d1ab23f4f9f3ef2e4ff3bd0625bd736d054fb0a07098f16212ec43f9755d1f042df7e6526d5f004e163be9e5cdbcaf762ab83ec61861d34dcc6fa2ec82df9dcb7dce27d463d33c559f5182de994ec36e733fe007e8d468c44944ecd1a61607913724a11a460c832e2575bb0ab9dfc2151ada1654711d1ea4e23751f6d94708206020297e9dfc9117b2ce43c8c7e952fc5cd50cd3ccdfb259098fc5ef1e5c64d75ed03717ec1b59135afc5ac2d66fade5080f67ee77630e4972154fbdb02c462011741bbecb04122bb49da47aa01da49270fd37ddae2c1607d4ee7d5e63a2083f27a2da86078ca9e01d3b67239636f8b6e22ccec82343fd4809f0388f8747d1f7dfa143ccc8c38688b405eff02c7da4c6e375e26b3852131c1faf7f32c21a74d85c9a68d86bfe50a96e48c55e41073bc500ce16ed28f507fde744f42fd8ba5dfe44ed45975c79b9620a72f7f71de4c6ed6e08689d5f171b1c02787c9d190e5bb19ae41f9382ee46b9eb413f01b25f15e1ae3fcb8aae195f964887e220fc4a43d756e80599edead1ef8e30e267bc9ddfa8e46c53ab8878f0049d7c04cf543d05a60032dbe7fc3613f0b5d908399390d559ffe56c578e2e88ee6c16aa6303dc78b36dfdaa2ea1c92b6f7afbb1fbd154565490e644c29716cd14245c40bba1ec7a3927b77347b747f07dbdb799d9dbf903e895996b2a4baeb05addd18079188f70fefc3101015178e8928030ba173680e933152df037a06e16f10632b73f59e7fdf4aafaa4038e4c39ed074a84a9713a1b69af43ff649597e717e0bfbcc3fbad4e5c10f09f84af91fcbbcd35e0ff4479231114ffdb552e94879f59a04dc47639ada15cb9fd4cfda8af57a522a5970f01da6d3b1895be8d4616641d3735ce65112728f1f9955e6a9e24ef70093fc72f3283b66ffac09be15dc97520c9680f0018839866a26c5f83ca1a7a2f0697da190705d1813c2277efd0d621a7195bc42d9d1d54c035f12de752adcfb24824996bec71014369f77111c8c5171aecf288f843d9479969cc96b85cfb3a0f69e04daba750dadac888f89390d2b2277015aec8a842e1cb44ccfa9ac83c982854e7efa3901a80b91641dfee736812080a15db123d35fba4b0d2ee66e97d10f5e062af96dd455f79c63841fcf72aa85ad3a46a4bb96ebe60a8f2d54fe74da16af2e2e9ad6838478feacaa708a308794248ab66f2f1b7bdce98de130650be8f6dae3bc022b6210b0555a86259ed596e49e1d9f31c2230c2c0ceaaa9542a7aec0b1a1b5ce3736d38b30e2027b54f702a19848ef84814132efd7b973f6bc4381cf7085cd209c95e4f0d7713a4a5acd6fac0d574f7b9c7113e8fb3b01c237cbb007e61f12181496e792ccb9c4994db47200dcfd0fc3e1a05500d9c472601ea645072d6e7e1360b10be6f1565e5a398c9f12dc120652b929d0c562dadaabbd5d3c96f80977c86482f32b5b42361bf34941b30ca07e7658ca77d56f79435b430d390c67460d2b64239d2595172f45ccbece6f5091b3783b3f332047ff5111f1beba14d282d0c7cfc548723f75711c49e79dd1b01599d03819cdf3d20888f0c2c662fe2dba6e0214b29b0af4a3702c4dbbcd5c88a530b8c06aa6cc73aa06a0d7470d653c43d0bf3ef95862f9fcc0fbd1283c4f94aed61e9d8707c160bb0421b4802b1a1f993d62b7f88d0e98af64af17c1c0b50159f5e79ac7f6dac85561e9c5b71af8a1516c7a5ead6d37046fab9093f8d0152d6b02c7faa514d8559f505654e37e1edc550e43d82ecb3701f2753a531c6dc7ece2bf783891cee6a8d76879ad31736c2cfaf9a51c2029ce2075c37cf769441150ce1282da40c3a0b2688f09414a73f4f2de1dc74dd09681faf222f329f4c8b871f4d02556e11a20eb3eb1eebc96326b35fafa60b27b4cf0e75252432d19f5143b96f5ab980938c24398f0b2fdd3c7231ba73fe71d0340b399ea847089ed98b3b09838a820aa2e6c23aa9c28b1fb2cfa7c150010390a30214360ef32939b7a13d641e0719800d39bb6ff72ced2533b3fee322aa6c1dfa441a018646fe323e06a71ca2884909ee64a21f34a76002daa5dcb31e30e45338d055bb6cf367b65951a12a69f04ecc5095cc13b0f60c0ee1437001f175ef2fd5eb563a44150257b80ff2af10dbc915bde41fe04f7eaded96d6e3786211628f551288da64a0a5419f887e77028c6bd8a0c75fbe5367cefb2dfbb9ff0924ab2b2959947bad721147c94f6b52c2f552825cfecccd41e91142b913bba3dbfc31684a8811f76480651cf4684a5282f9a0c1b902c8f179f323e46617eec5fcb6381b751366d1a33d4c84bca12efc01e955f9c80c973f95ba4b85a9af3c11859dfad4e6a50e30f61ee1c794ca8a9aab6ecac8c663aa738de41c6ba744768fdf582ea8d6efbae43a7f898c5f90be3c98e4ebf28e24251fbfccb6cf273d85d274ee06f0c46027b48f239a58bd9e70e1b9270bda5a623683809a5df64e94f16710d0b8354deea5c3f81028763bffeda130d7a5a298e90838e53903d93f129a742eb3be99794b243abe6a84891a6f3e0fe4664c16fd051a15e5d5cf9a5e3e4b62d8af367f4e15d448bfe3894762f568d246f73ebc4745b11e5326e974bf51f35ad06efab1d09be7f608df6e7af2d65c7c392e1a53ebbeb89158c129ec814615241b88a1d399f8e4a3e826fbe77156318c86bfa94bdb4f553e911e20eee9a4e470ff14704ce341789e7f1d149300906c6a05edf425be19a61607267e4c1fe985f000db8774995b1f34f097d2b692b6b7e22f87a21982fc88fa9db4d1130e7940580fbf1475c18f5ad5aab2da4fd3031210a10658373b11c5e2ec6f16cf516a68c60a2a84e400e3c932f95151030999becccf81e1727f59a7925aa39428afb22e3daa68b82618c9ffde8a72dec83165a229abbb1af92bba80ee5de384f69d0ab493b5e3c35b79748314ac057a01a0f839f8214fb83f3950dffd092849f44b36319209c2ca61af4518df802a4d2a813e0a3e83f61479b6c7b0e67d5773d569a902a88323dcafe576aef4ca976b524d5151556279da178a73a625dc3812c9d7b8efff099858d625bd6110273516575be35ef72adbab12f0baaad8e93e2e199e66ea740864cc76b7d7f2a6f03fde53cadd888aa47222c9f431294096fd04775a35eab4f9b032b477d8f38139c009e8141a93fd2d157fa7720b8c941113c63b0e51688920e72ac46934221f88489fa32d287a9c986e4e967763547429a5b3e2137910c430aed04cd903f53a1842343ff5cc8a0e13e92abccccc605fafbbd9a4ade582613e9a2b1cc10052b19a54b8246829dbaa45ae0ab1cb1b706369a30724a682035628bcea06037e8aaf509d7c378dea29e7a2d43bfc913cb1be32590dbbeac296867a36a78bbec95e74880321a841f3f56635fdcd0ef7ffc360e82471a283985202f448a374a0aa31785b2922112df7b4c627fed9cea6bb990a05db7d7d8d6f8223f1cfa4d1a7080b7de3beb89d982b7f244c3122f9958c2b740a3aa3beba7772d79a79d8bc03b5e8c513692b831f6d61a6e9057732c27d34c5f98fd968cb823674d987795e7ed42aacb4ca5ba11afb7e930a26d932912f9cceea7ed1334e8562132d933540f73ecf0e6a3c3ef4c9cae303d218e82d21c14acd3842b0959a5508001a2cf8bd475f2d2e6c3de9f852addb9653513dce7fb895adc8cab072e2f587792918c884e01b70a47d4b9e6a8ff638b4c6909ad2a0b519e695eb434989925e120bc4e6988f351748aba592d2c11fe85b260d72856db35f2a42ca689d1d12c5474aec4d593667f2d2351046a3e20c840575da57a8e7d99f97520e0fda995128c32729e928a2706783b6ea746f4b355b798deacdd3353bc1884cf4f0184cec80359fd600aae2b73ab89b27abba1505b6d51c1b721e8d9b4f81bf5c42a377b0e341840fda8be131c016206a2618378cab5c420ff9ed9c109905143aa578a4c69404087c7cda98de09ea810be3e4e9a1ff1dd70f0c32438e0c17e4faef8295835de4067729841f0621138246226b6b4b38ad2707042fa09d003c16f2dcc9b77bea5f2a10e1b129ae7695720b58554a333193c70b4a100b90cde3902993f4856547cf655e7632c5b840a2e3ae12f4ea0a56f32421310ecbe1e0f1ed7c703cdde8042c0246995754d25ca8a116464108c98b10d8487c1873a24db4e6506c45afb88c5af09da3b82a7404e52580f7d83c075c0372aeb8250942206f9ab158f38c3f531d1cf9face70038da36d4da6db5a3799aef3dda088b488e8d159ca260284b800e520e2a0b209ecad1411be14fb43d86f61106e820db809f84f7599d22212289180a83c48e3a67f7b5ccc7de6aba5b6daa140ac5e50815a3d837652aaf7f2115b84e1faac44c806b82ec755a70e5381f58a4321b2c7b7b1a58f6c22cec718c4984ccd34d3144eaa92e85ca238ae3b7c95907508021433e416a20c8a3fb58df760476b02ee4dd1c01407b23d51b9dc9e379068f9f0881038c822d3ae31fc3361499069c396f92a336571aa66159c57f0f2e50356b6522bb612182bedb295c9eef1fbcd7db987a39da8a80dee4ee964f69b709b5d78f74ee19bf0d5ba7b61a61cffe0462b5a8dd5b1123082af915bf6111b0ea8215ddd962f3575ee7c001d6392d753941a93de749f8c63782100bbb35162b81b48053d174bbe96b36fcd832db8deebd5e600b0791f52cbc32ee3b723bda22dd0d104adb68759ab6e1d187dd9c1673556f30d342d87600b103634bec1e861b78c8a276d37bbacf97decaa7cec63961f4fdd7a6e60907e6e9f7e53989bbf419846a5a2382277bf2c08f99cbc796f899904bbebadd5797bcb1a263e033e6beabdad4c92c030ea39e44ed9a10485538137de0a0a5b5ba6fda444d6d4beae0acd58e1496f97d9ed812ac6f6dc89f128e5ab4198844b327a1684fe88d182dc2a10250edbea64382c71642258af5f2a70c250aac0a181696a1d6dc6974f8fbb7c45c188f43a5d23268cc356568a2b90479f611a8e5e043f5be9777bb84e66ce7ad00e9bb888e25382d950721ac982a065e97fd3a115ab1018824fcd9702c504a6b22f5124eb633baadcc58f7167927dcae96ade0e8fe3586c37425a04f4be9fde26bd9e2132093df2275e7834dafe21df54c624f2a1828cf44308e02cdb3145f6a38ab4e05bd4bbee8d7890a173ba481f0bed5ecb820990e25889e12efabc750cfd32f24913a63c6fa5899226928a53377ca2b7ed438e691f0db3cf342a3675102720d8678399c1cf9a05cfc92b2eef51a6ea7397470d971bb3e5ed7eb7a02d78d49ce27c43b5e93ec612b30fd569d952a2cb7537711e3a332a15833e96fa4212fb1dd9965f4574483cb7f28d030ae9919138976dc855672c19ece9efa2d309f5417aab6c922e8ba3451600f0d96f2afc8159c0f32ff0d6931ee86c5f5751269bc7287bc76c1a650c3b48c200d71903e74bb9defa3e53bf81e7eb7cbc9aaf836397c955e3850a186e7f0b6ab0be07fd0dcbf94a6f00bf13f16f61aa34ab6c87ba3ec6a0c3fa25a3b6eeefc3e19a99623f1b81bfcd087744ab7e3c26638c485789d487ad2cd898e679bbe0aeaf6013a9d4aff7d7bb6fd49f9bc2529b407d6478facd9d7e0fec0d8cf9c0a60f8be6a2013e3256f3f357c3620c6e35c1e69b9d87283158a8194a471118ee3259e20b63381ec45fe22d37a234554043633e0b6d222af2ab9a35a48a1b29dcf4edfe0e155b8c0250da7ba77624d0881bcc30dee663e1bee307ffe7ae9fc1b128204fca8d250cfd5a44c6e18e69d61984ae7b8d35cdf5893189cb00008b10692769bc9875832d68024210725d278f9406105d06e449dbcfa667a393268a94aa2cea1cdc544c0e894059a1a86b6af08a7254700c032cd71f85673d22728cd38d502aa0ffedeba2ce2f4ff4b803664fe413d41d51e743c62df7737603c5656d6848e88f49f9cc801658e5c62102368a63aa2a108e8c3fb98db355a5eedee94c75838cf0360cf9262674a06c4c814b5ead62bbe5131282f90fff6f62f4b90d320730254a0a360db745f19a4bba79f4be4e8213a33a563211169541cc12679646a23c5b2a7b26798098685e45f86cc18526117bb625e8aa3bec00b56240f821a562bc17d3abd9d9e7f4028862086a074ee332a1376180cf0b3be836d8eab3f7c0d48b63c9ab86b807533181888d03a14ec891f7ca014e0d0fe40d67b59801f2d7afc38c9ca454aa41abc1abeee40310087dfd2bda92104597bccb8e9e4212063dc64a81d7fbdc4c8c0af8133cc4abb4d27a41165d5ffcbfd5d615ce2c609b817c92bc242b8cc4f64234ad482444af04cfb8ab15ef420685f06657357107114e0439fac5f6495ff086f104241bc58ef8788e9afb752a4b82d8a627977108c75dea2cdb47275cda4e77c7022a00740e1b93e46e102554d37f16f9a1c421735830c05ed201c8ff1c4421b6188da9cd84c8c910b6309f24a2fa50448ea7fa4d6a9b3c9fc8a39db6dd24a50bb8fa9651decd4a7069a68d79c241fbdfb73516f4b7b642128183384511b16e2ee179494d60e95a2c29381b35c89109a8e363610ca03e93400e3f85caeae9efee3afcf4391934670a670a690bd13743299cc07446aa6e9f74620af819a15b108659db376f7b8349013db5dc8592aedef5d2b85ed6ab66c2959dfee10390aea6a49e36395380690b3aaaad958bfce3a321ae972f0a731204367bd8e69b8f8e815b93c85b1a1ea32c4b2d1891c199b6fc814e028e7fffa8faad2114507876a09bbf641cfd3b66af7e88e416bc3ee6cbb18151200ac425156b72f84671f1d50123d1fbc66b3f8a2e70200ed2894844b546047409926822ca79f1af4a9292fba164a8b19c34c2a3da7a43807f008eaefddd3254b7db2d48b33f4f9e9e47f6fd4dcd03b55d8a46093d474b13bfe43d92c7589bdf1a990e7e8b4b243133bef5e1b6022996a9a85f20a4ea24fccab6e522a9f7406139de5b67003e9f5bfc8a89d512f2dbdb3fa2160661599d3000b6bfce0a69fcd1224aefefe6313e2281b5081da9b21f3506869d1e5c2430cc3c69b98c5aa7f4694089efb030d57610dea7f4000328435c22733730c4599c9663f7671e453cf9d1f6ac1b5c2202cd57013f429df79aab7adfc2a8e82ce6b8587dbfc414e0056e73ebb7133d8eee195a5dc92d27c7a3e9a0bb9ad03d4ee8ac78758d4d4b4adbaaa5942ee2304333ab6d651b4e0e228be1583f3173a92f609a3c769f99d27b5d676196711dddf82bb4542d8f1a8c9e5c9a15445e15fdaee20341304a3d6bded31a1fbcbe74d261747ba5f831dd00f8707bac399e81c6da3fb0101f5741fa08a4c0e8721f0ba4d2177b8092d38f3c8cef56ea232b4c7ce8dd1908d6e063461e01a1f6cf0f88466a65f465e8285aaafbc304c7437e1d7f8b177aa10f7b2ccbc19a7b6d34021112fcd2e1c5a9e1020c1316e637921205583698b0388d11054117eb39ebd087b214410c6cd530aa4fbdceef1353ddff24018d7867c2d85121a6f3166a32e56d340225ae1685c7262a0cec70b790af447f8243cf80b0e064684ac092fc2c47aec0aba2c8b6d5a9c24c1db8ccf15d89aed47a7002a6a332439c47b6c17a5d829ff0a4e4d21e04563b2e07e8c7fc3b4b4dc7cbcace99e33e76972310136cf7a2f4b8cd42134e6aa45904b4388ea4313be9957c0134e1a4942fa482264659b948b5101ac371b061beebf531917cb892dcaf64c0cef28fd90218fba40a9eb68dbc39b8ccb9256f985706f40d4855249af220c8fddd80e404433feecd8fad33b8ef96def0a0eeb4546c6a55def1b65eda6e78cb0ad09a56dee02db9c5eef26873d854f6923fd81445a39e352ec74a17495b32ea4b1ba7edca3fbd8737fd6642fa34f2a977c13f97523766b852cdefd3e57be24b311796dfe7dae2bf61d86e34297c9efb0fd22e96da253c054682582f53da29cde6bd663a9b8a4564b5418bb344b5f38436c40d8a2570d4c571e472c57304e202e90c8e28bcc0c1dabcda7732426dc3ea34d3ab10f658180930fe066fa9edd46a096829803c56515a3ea2bb27e96a4975d89357b66ce4298b7e2d60f9317449fbff78416860f22965935101b14dffc41bffa31b39c5193a4060b432377461ea9250ed77018039790ccd1466b7015e34154f77485446de7a6ebdf414d57db28c1be1bedaa3c04523779da3d4f5ce7c7552face3998974590fbd581a6c7ae74705148520147c969c3181680166e59b18d07fb2098ad3a3ce89690548534bd747c7f741680e109257e27343a15be5e169b0a5f5c640515cd6c9563942835992a84a19c0360a2428d26bb23bed6792059cf8b9d3db9b010654e17666ca4573626f2fd11f4ef162ed51c72d4300029fac47d6dfce8c0c91a81f52865e8fcbb1232792303708203d68e63cb99a4873391a284301e4720da12ce9fbda4131f403ba5509ab6ad0e0302a7aa34de5fdb8538237000a00345524af5e248d5c844e6fb1834a4b7f4065f2ab48f79989c217b7f99c34c61a1d1cb2ec0308e74d7b11417ae180eed07f3c25dc52393867a97ec800fb63f6ef13eb8447ace3e656dd2a58ccafa7b97b145616cf1369776cd4cbed00efdc88f311919b8a1d00824f1a2d23671980d161ca969d1bf35d23417097a56a7a12c3b6277dfe804d27439dccaaa80a63b2b3a709009dd6402aa9723b000092a61fc4f070782e6e087c13e8c3e5a0a1677b9b8dc0b1e9acc59ab46552b7653c52f838ef05790c38ac3f7a36c5d8d994efb1047827fd62e45e0ee57868fe551546dd0504f236d72dc293c0370828bb2864f594a658155181ea85de9787f0ea1c5acd38d9d0e76b6b5c3c7c124479647aa6b0d37228b771d43313b32083f3e13308bb96f01791744170b6ee6b81dba85e05abf4bcb054c53cc6431671d73195a5b47464cde405dcc728a4d5454deffab733d6cc2a576113cfa6936b7665e49ed6ec34b00f531d89ac2a32ba8743c71980feecf9e25df3b08d6cd0a0628f03e655d9c288b9b03c09058033d3fddcdef39b473bc6b49a9d0839ccaad41270364c425563c3153c8fc2926714b9ccb4bdb0a7efc6e5cc031356f7998f660f196e9f85a45dc0b2071cbe30d0c5496f07c68835b2ad18e1b50f922c12139dbb72ebcee18bc1a5a435b02d861e7350036a93056ae266d172a7432435c82852e74b9bcdda916003aa03dda731051c240f81a9bc709b0dee28cbd27752a0d5b2add29747c1b82d0bc7aaa9cc14d41fd6a5b9466677df6c7bcb69c110c2c220e39919f63c974d4a006e7237cc5c0c3005864a6f57996a843253801ac5ac8d71701c2a335e8323c1b75b219f4d05f4ae26d69dd442adfee03e25547a53c95251bc6c289cddd88f1f2a474c84d1ec059b4c4f439fd0f5978efedb79b736975bb6a52096018f4e9b078a1dedc50c080504bac1a899cf741f381f520f8ae06e00b0420c59998e31dc8191a694c32a577b12bef529ab6deaa0174b58349f852b67d69ad947549aaa41fdd542b18e29fbd125ad1f0183873115264ebdd26ecee15a38d27b3b856ffdb0b124658e674e7d1b18ea53e756e82923057612a410613fea5dfd0f722fc099fede9290914c40cfff2de3efa30f3e1900f55062ce411abb572ddee6fcd346dfb4b061f8984f9903d2c2d40477f1bbefbc218f451035a0f041f1123aa4dbd38a7c84dccfb1423e4d5da182d3539cf3c9e94f43553c0da786762d5c0dd1135d9dcc9a525f06157be4fa3011a4d7ba303213eb352489301fc9b34fd5f12c3314b63b4e76bbb8a3f88d2b8a670081a9db137688d6bc6c662009bbee3cace7568ca4e6f0af4c6a7c69a899fa4f3fe8a6cce270468432831d6836a348ff767577c611c083cbf2f466bd7c18a2b3666afefed49a450087f903b5e0ada2c98abd2755e9e7c9e0b91c34c4f252c4e8a8514d58d0ed63391cabff9cc99c9c15ff1f754b56a394cb6f3e4ef84096a27a0c019663f48dac9b0e863650f2e1efcd6b4452860f9c821e1a3d79897fa9d6c6618be4c95517c42198bf77fbbd7817188161ec98fca697494f995301878752f1c17f357aa20902d66994c9b298ea703a39d556712fe1869ccbeb3cde66d1ce00f8a0abdf8140da477262a9fa546a9f92198f3e1a1f2e92418e5e621a7ef609f552334b76631506baa4c540dbede5a6a6cdfa4c14088d1fb86a2571d896ffcdcf4e80384b0eb5f4f0b2321edeb553cefca4dde2eb389977adb25f8c7ac1d8cd2abae1e466fa9b43de66d702e7d3bff0c6c30e0896cbd1ae9a9b3a2aed536ef4ec0bdfa690cfdfec0fa66a2217e56d0d2352c218a4a2b4f96a8107ee8cb18870a332fbf6cb31f2308dd7f0431058c34680394bdd1f3486b55754963c3066b024c08992a25688b2dec96545d36db8234574924e88f1c196af776a9dec302b8573865608b0daca80e25c44029fde815f543ef0d1f9bff0636a30cf72d62f4829e5dc6690c7c4d0a566360328bd853a14d6cfb1f8fe2f5d2a3c18c622bcf1bf9ef8966692886078e2dd025c766639f5750f661517ba7f373a227c12bf0c920bc4dee67595f055eb7d8355b9b7a6b8ff4fc7014336a5e10e1790a1d1db9f86694836d8440c94fe0439841b01daedbb9bb33eb7dbb51cfb315a15d8517fb6f4877148b3c5a92e543b6d28fbc831638c53ee644d480710f55fd033a3ac32fa97f87e40a1e97b7f299a173856e51cc990ff49b95ac80da5b623cffea28807c862837920e0ef79377e6860bf6f4392738e91b1603b1750b060c8772939565c6bdcfe9077ca153511ab28bba7f29ebbbc19c9f393f48270dc81ba68d5e2b23e4dee505d4d30e96dfe1f1ed02384765ce4e27168f3d58463e7974c807aef7aa897eea9871edcbf451a06fc771c5e28b25592fd2798c2197a1ef599c37d29e6572c5017f333aaff33a7178bda2b093c9c13556b362ad8e9dab37df53e3492925e6e3caa81b7fd07a62274bd3d70e192baf3b273402f76d732e1596de387abd82b0aae69e81e2e1cd46033cf138faa5ef6c632b7f26a213c86a652ae0b4a4e67a73f798a6cdff900cf18828db225481c8031c97fd5cd467ec2b2dead12f3cc66a4314f175bcd75a5debd1728da766ed36939ccce3276d5c615c3a22cda53a17310d7a3606a5b48db3d6e26090d76a138c1e67a27cead6ba6c905afa2fbe929b125ca3c416565c2e6ceac6b60724d02350176fc97718d1101673d01a6336d6e38c9f8b52714cc2524213d74c94b2ff7eed3851af1be683f11ecea6e05fe9c36789f4915c659bacb8120c4c32daa726639506c5b0cd23c8921669d0fae9010716e7d862e42df848e79f25018bbc2c7e73b5063ba7059f8d74a87bf57eb3b8a9e7ea31d195a54bddb6ba1b8e979f54ba29988fe93eec1607da50f198f4c328245c60d6c34140117c1861247a040e39c4eb9d582bb060a2884f4e66750a79d516382e9c644d6c26ebebc06fb62c817f73b0cb0e0ddd62776592bd4ade03c46855848cb19ccac8a747b6c14c701256e591e51f1935289def9756212dc0fa3ca265ed7997b45be745475004bf1b9fe68a674259580f8c86e64fa8fa0d01fa1e4bb239c492632727a5061ee65d8f21d2663909d3c6d21b8140bf121642c12839e6e12f8763afefd1badf81e14094f6861049d43c85847e9dfa4509600a61808bb76832cd4e70142c42b1781d3a0e39d9ed7662aa850d904811cb82fe9d68cc2cd02c1d42041990c958176d39ea82204fd06e6bc61ec2340f823f0e778c55ad40c2520985e1953509de311e6fa26e6eba209247f86ee5c57a1029a52e293d85e9d3b6f83d47eeff6778f21aaaaceff014f13a54befde39a6b7c9adadda285a8ebc9863e8a80086e59285536f0ab3834f88523a4adb697a5e0982c0f7e68af6e223c2a8343c0ad277c64c5c644561b46c59e126f3cb8a9d413257814def7d94abcc7e1d28423cf62407b58f174775fe98e8d4da8908c2420ab92fbe039c4fdf99623b313357faffbc36ac92d198e8ae29ed22ed29d326874d2ba448c162673b5897b645e62478d17d0574d0952599518abab3e46f8af2ce112f3240207fee34a7e5cb75e4da310bafb015adc297f57009f1ecd3915a98b9b5eb726a2030d8c99a592eb272b4100e792302f9339c39ed7c7d62718c96b959b7b14b35ea2d45edf1ea041a8124c5cc0735e53efdd2b2e8b4e9afceff953bc37139d87c645d8672c9d0a2e176df916d14b492a0b07d1f726409e69bcec0f8355ad6d79be2ec8e9559f9afcf48d688360d67e062f2e0922065437e4540042643568f448ecb38342d85cea515e6ce65ce00ce347c0a47267ebe8eeccdd4972a4707f3c5500114db3efc20d40322fe9c617159f31e497b0e9e6850a590dbaa8431b4e838fe9a70ee93c583e6c0763a6bdd9d330beb5c3c8f2b940b83462a8178233f0be533c20120edfca154417df3c3d1b3238e88fe8a0d71438f06631b85a894bc2c1215cc63d146682145dd07d9842e57286571efbb7e69126b6e00f96430baae0bf72ff9fb7ede072f32826744f4064884a43d9259fb0c9b8e05377c680327fac47a0048434374e5a365b12d26c988a45e3806be909382d234515506990b7145fbba2b4b9094715c7c455297d7d6b1c22f57b1d4d645e5f6324b12d5c05fbd6920182e97acc63e6cc001451d8753495f998a01d4d06f0043b78ed62f35ae13b52e17ccdc8e601fd3333867a4addc1eb4dbbec70793892fa7081291ebb55006bee9a2005849453b37e8c0dc77555281645a9d084b3d861c99278ec93b2a8eaed4d52ae31dff6cb7d81de834a3e3016b157759cbcf679df0d59d8b49c679bb2478ab6cb2460c283287f8bf44afbf8adfe53f86f1a76a5a713af8dc6cddf73fdd4fe0a038b0fd2792ad7f1120597647b5f456a4d2fd9ef71d79b0954cc3ee5a5d558b7a80ef937b57791b2e086e0f9358ea1012ad2e2410c2e8a8c19c3cfda8761dcf11f5329ac570d2ba7a0a34e60ed91f912699d551bea72a9110d5fbc8afcc54649a9896e18df2ae8cb55b532293ff06bb993c682295bf79e4505a7723f7846880d4cf51ad04f265ec6c1990746bb28deb667e5cd434488dc15a1b22748e8724e13c58e72be6288885db914c9c3fac41214975936bc75b1b080e1e40d8b489053e2422ba48af9ce415f9c28a2a8206429874c1b6cb4255be051b9f013b4e928a4d7ebd428d221605f92bb88d64a2f417dd85b1c154255dda2e074e6869138523b8331f261c128980ebc3cf6199236ee3b3b4c4c9b8168ba2de84c57ae39bff670fc2c09a6f28ddabcf02763f0990501ae20a5678ceba577bad7453a7b6e77d2018b29b4533520faaaaba128fd3c467b5562f6363aadfbdfd21deaac5c36d36cb1442816dd62cc9930cd2edd21a8e479b79d949a57de00413d6d834c7560f2621984f0ca548dc203817262aa60686a741ef362cbba4013d2aaaee0844b844f0c481becd807c6a3a0033b3e8652a903626b72ff83079b0e443d9bcb7db677d4707e9ee033a5a2a4e09f9a7aedb3b32498895262017be921e39156b08629a49d378c1ad16b10d891ca1cb31910d9e1e093c7ea4c8a456344770a4825b1367d782dc8bd9a17a20fc6d84530814a6378881d6e63983771ffe86246f8570df2a0808191c65f051b3e77f9ad92858e90c80edd4f838e603e1877aec24cf4a1d309b39878f3b6a3c58b066cccb78685baaf1e3781bcec2521f9cd5860fb5dae810c9c3d8417905fff80de3e572cc6920cd2cb8dc0e0877b81b6b8af6b4c3142fa9afb404516de310cc9777d85c52898cdcd319010cc506b3c3746fa7a43c2f59f4545f15c253464342cf2a85fd28ff1774688e72361337715f83777d53e887ce89d58a5be3e7f09c4779281f2c0246a65951d8eb96a11ee198834e575efa8ffbfc7e123920a725aaac51cbd238c94446edf751211508017284dfb8720dc5077a73961418132d4dc0572c5fc91f081cae5e5e2848aefa18b0ab97003eb1552bb6d9bc55dc8f3ff05a19bc13931465d50db0baa6a2058e8eb9718cce408348f865421d94d4e42a80d100606aac3a15c731e9589895f8e9d9707bfa321a347f1f8198ef27a4e8dafb679bd6305ad7045f67dc6989feb37453c2e1a2e69e8a41ccf6bd6aca780700e6c020903949d03d373b9dc84a9ecc6015d502a0838e36ae616f253aad0fde65864bc391ef736a6b522beaa6bb72de5618237d6ecfb2ffd1499b71ffc04d3ddda9f1578bbdbcea1309d2cdf39f1c5e9beaea8a21a2dbd315f589a321b6381da9384658294c4852711cc3d79dfdba6df5e1e5a39b997e0fb82b836296a572e92fac9de0f3c0f84766370c10cdb4c1bc010aa884b1e86479d30e9a94a19c24cf736b776895c551efa9b145f712ca47fe7071e72efa0f8ebbadd299b50c72c8c8568e1a96db689c11969e65e210e8461171a7911f338708fd49671788005032132b45b65d95ab47ac3367e19fa227e680384e77b9bab625ab627c0159a89842c561ad6ff910bfa464c6f4ff1b4d7c06dbc405b7e60a628dc43474830a6fd785ad95692eb4fad9938ce2006026f18bfb6c0178d8ed74c68f9709cc10e2c02109bb754f64971f5aee55381f72fe315044b95caee39b76fcbcc6a47849063d1f0ff5856d4420890e5e68cbe2fcbe15f4e6b31a88b842c5d8b9ca9a77cb873046da66f090978643b35a54d31ef35896e5355f840f99956a14325e8fdf1c91b6e1fe3b4f4e737638ea09a9135dbe2a0e786c161616b774e331220f48e4620aabf686834ee6868e3925052c33ef04eb8e47f2aa4ac4f5b4ffc96edf1769517df6909bccaee73f3484bd02290d593e38c11e2b4a9663437de85d850b48957f3cbea5cc4326aea0b78289201f4f8dd92a31afb65b2f67e3bc70d6cf9fde6870320d10662b9b07e36ad85bd93b468ecdcab55c476de504444b244b64111c781ad0825ab5757af6a62e6072e560f022130247966a31ef5a9a0915a5300f365e29f2eab824776e67a6a690a10e23982e5019ff5be7575cfd1a8a14dcecbfcbeb5eea75ade4c59e01b5205627df06e886b80dbd3d3b94967b3ee165149c7e1636f4f51154fd195203b279078110b89e5a39550cf5148ac79a42378546329a8bd6dd84761794592571bc64cb7bdc7eccd0aaea5f1794526434fadc0ff96bad622c92f6e2d951fb2b4fd8058fce2497271989f5bcc9a98bae417e4598a98a2f958614b3cb9b5e7a7c59c3505791e6ce5ef948fd195ab85c31fee812519965450d5b0b471fcd81911378e2711cd42f16ab9e38dca7cac51b2db5421c8833d5a891d4bd2103fce5096a95e8372bc8adcbca7b3ff82e6d665e88c14dd3b29da9aa7292b6addc7234754ba1f72b5d49e5cc5edd854a3d9a57b5505d4d596826b65ea62a42fb4b0b50bd932105f5a71d1a19105237eaee23645ff0e121bab6635c5c045a159adfd0f883004b09e152cc8feca5837c02baacb3bac4878adadb3ddad0853a50224c3076daa9fb96f8b3b48ad4648f2a21006c5532732932e10c5d58fccebfa80e6226a6749ddb8a17de0bbf28675156e2b57161ae4ac594ef58d43f7f221edb64fb3b9723d63b320b26af9875c1321a228fffe0b1db31bed3ac7501028bf5f7c0163a67363e8421b74559a4c32c85521235ca5e2ff2b2015bcf9d0210e3f02564a22362e8561eed487f5d482574146d0412ca635f5a684096f49184f9181b8131cab661b2dfeacac3c7df85a9c7dafd2a50901d3053f80e1cf17a113de67c2b1abd79b924adeff4831558ce167fb16fc81615bfa1764fd40944f75c9f730671e1cf7d05385fa0d0526dcecebb6fd7c5f695a7d1cbf522d594be07a6b53f13b8e5c7cd5b5b30daa0be8217685381f3d4872c036a74087c480c139089cd0b78d73cbdca8819771603c9ff49765de53a0b6d114e0fe626e4ae1bb43021e3075a876c1ebb1d5402d27e93090cc076a194fbb4ecafa69d5396a96e469784f73487ad758bd0591494ff7771179d7efdbd2e74b51a229eb45d929d5778707af1184eceacb3ad0bba905fe9fa9f53ce1273e4dc85644945c31833df1e571b93960c23c9c53d1d9caa80262e340adaf76bae26187e6f3559d2915849a81b9af8a3539d099e90b13b26317d942d3f4876a407e32aa244e00383800485cfb1ff224f039dddfdb668d9dee3b5c96162f63ad6efd30f0e44f03e8652a31b3d8296b927fe466959ec3c2e2b34635d05b50eb2fd9330729b87153962ec2dc3d833400fadcc708570a804e2a4da717604e6a6f53424b7b2fc6b081252ea91ec9b2a277a4124f208b71fd12026ce01c4e908cac440b7454fb532904388fba637d4ca45f9cf8669bb5d8e11c8cfe19a623601688b7f6fe6d92150fec951b80ffa2b6fb7b02a4bd995ea5e1376c21e94eac66082e50a42fb236a843967b0a79da5b6ce9b85b6b77bf73bef2eb2bf3734728cd2b010548668dccd48c9ee5b6ee16532c5c4526b8a26286b9509794d77cb9dfa4af98493f8a78535dd8a7cfa99e1cf1cda62c19ce026bd3f61813b796b95cced538c543b025a16e617526c118669fc5e2e34c139989a192fd130c653c74ada9641ac2fc24ffac25bd04516d5133c385bdb18427864ac284f7ea0e352ae1947733a6a9c0086c1b005527601d052dc0cfdd840a62c142b6d3f08447c3932e286b6724040523522630dec4bf960873efb513931cf1d883db529a9d802295dccc62385b92a7b3907793a52d502f83b1aeaa0414724811d50edff726a4d30a5fbb8351299952b4b3326ccc0094924d112a1181386c36955067e46e12e88412756c32ffe2a58a788cf8da162ca28e3114e8dcd0693ba16e3a43dbde04bbbfc3d105c78861bd96e7d5fc985f48c212babd94a946658ebb857e664cffc48ec77d3a3648ec28c780f551c6f9202741248bafbee1f1c883d88446218c670e7f7bea6cc9aa0b2c3207d5366766f2e4d404898558f71389541f06a6b8b0a000296b1c4ef6f26c0903ac2d14155c67fcd2a4fd90c943bf74d7fc11e1e1db9b0d769fd9ebc4e32f93bdc1e6759694f464e6683a3cd8ed16c13b56c81fe54042b0ffb722632be1da8b5ebb31a8ee042ea75f36900facc3e143c241d8c50023ebea7e0dfad52cbbd8dc5d061ff1af2c3ac0efce6294298319c92274833ee5d9dd72edd8194dd97b7abd4febefb93cb2bcbefb86a83376b79321fd05a7fa2001b9b0565e3bc0491d29074c59adda35365e31bb1cb1e2e0eb70a1c46f86e7d583742ae1d60df4b6451fb18170528e586b635c5aaa6991e2d07d9d3a80128f3d38335c081cb19cc609a81a13cddbbb44fd135063072fa35026189f80bacc32cd6efb71c039a8ab77c484db5dcfc7ebb139511c5e6c5644424be529341536acd300ab5510cddd1d36471aef6279eca02a01c0c4c41b46a8180f2c4d140a8c7adff686bbe8288352a1ffcd6c2b4c875e00a95b3732fd259efde7ce9fe131eedbb11f366576f1f68ac0ec7ca7f20c3b96bea4af8e199ec8c0b6825092536012791b446d63c7910a959cc14ca95b7e1f81c09af48ebb3e40fd52e4c088664cb51386dcbe90d3a280a716f1b3cf5585c3c82a14a8273b4c22c27536093d30fcbd0728eeeb7d9be80a21f0f2686804aec87661e99dc6fe01590aef5e810a6604f027c471fa8a46c02b451fa65945a60778fb1dd24d3bdc05c915456f4fb8c2bfeef5a4b9356ba231f0020214632265ed9a4ca6e68bfcae39be9ce60199f10c6b55361a9a2708840c3c4855c7f25abd6e6187f1f5e9bc246fa877bcb56452e6db867376cc5667cad6eeb84ded5b7ba8288150376349c46a06f8baaee57ab0e1bd6f6eaa1df9abe263b30cb3c7e1b744fdb8646bbef3bc31dd4560ee8e1a9a10fac44e1b15482b0fc273f22af07d6bbea8670fe5b3f593fab1b56870b4a5d8901ff0b6e7305599805103b919b1cade4c56e6dffe7da21b6ff4869f97d34b898f8c60b3ff9da28257b227c869a60a10a556e512342175b4f58fa4a8101fd2835f07d7e80e6f921bfd61397da7f1b5f0fc5f2cc976c1025e711fc92d707c2a91d5f9aa12a38f046e472e5c5b448b3ebe477003656999ebe7555f4068feceaa64cd55f22c275ba66ec38e52002b66f5a0d0c4ee8b94cdaa9a6c746f2076cac50604be7c230cb5d867d3757cab111deb05ed1c9144bbe2f1990263331820e2964ab0827e8b9aaa2797e74b1fc6a00835510ccd01c3b07d8d24df72fa90054258f20b764c3c24712796abf09ede4c66dd53392981a1e9516cf98253c9f9fc578e1806b1076386731ef151529988961dc0266b86ac16773ecea6bff64eb33c93d4aebb2d28c10cc7a83af43b0c9704c62a63641b1be5def597f4f15bf6478fe59e352eefa4dcdff2970371b1ee8246e3546eb77f4764f2f5a7a09e3d2403ac5d696ed30eed4827e1ee1e14db2f8bb972fc993709f0f63879b0bf45dc158e29c74dbfda0f0946b4287558677ef5a2a3dea05bb7e687980698a6e5629c31f0381957c529f2bc91d761358b3b1672e9474d2fc7e89c76dfacb2bf8f36e9f149602ad2d433e332eba93d630a5ea128188db80ebcc55c006e86d71eff8aa8c1e38150971465cad99c5123940a7a5c9be5531765e5d4368b02ef4ee9f173dd15f94e653edd0b208a033c6dec37298a9121efdaacfe4e896b6362f12e88ce77d482c442814439fde1caea88c0d39eb3c2573e018a8eba3779adf9c8641e63c1009c7f57652a706ae7aba373d8feea4bd4c2a4e3593a40ea159535c0b229754a338e69f163a8b187defdc84240f1a0e9c2ad63c54333b483c0c040c70c0c0eedf5e77a1e70240ba14902d79a855057d18b378f986fa90a810c1256988b53a04cf5b9a74e0ab5bf097ca295806e2162666590b842ad810fd374345b7a9cdfb6d92b5a49949574e549c83dd43219c05130ed98e356d428a0308a565cc7185a3dac1ea3df615da7eff637f1f62f6e72dae294fa9d0c499719431182d78e5f9784c3ca6196457d5eb3def0fdaa932759517a976f0f0e0ac04241c03aec895a22c6ddc1e37bebd1537fd45a1caee68e5dd59c551e4b6ad453ca17b92040637f79c3e74ccbca8c14d6c2a9c989157b95e0ac9c617f9dc9cf2589525b3de0f21ce12e9976a0ac6568d59eb5fc7d824d9b2855328aeb3f4468880019e3ba1c9c352ad47506118da5ce64b5e91f4d5f81baacbdfac3eb44f85657893cafc8c9669b93817d73aca887fae0cd14e2b87372a6e8b5464faae891c5212d102e58293177c4359aa2f6f92d2fa6e16254f36aab29609546cdf019731be11e554ba3de3390a545ed556fda788f92d93976895e170a30ad743a04b0ee04aa9d3ce543406f69de31bcdb4b42e4eaa1578a44a085e818dfda5940ef88d3d086a79d859baf5d18998f088a44510f095656f82192124f8030a13b520da9186363156f70cde1b65267f2068afdc22d2ba9e4f2116858c55b58b1ab47cd424b520869fd95e8ed87cc0c80abb57efa6ff078eb3bf33043adaa91c85efe3c3dfc3176d8535492005499491cd5f1baa9000d31afc7509c87c5cb5114721f4de152b64d43f68c3e5c83bee1b9328333a23bb3a766a65193f93d6dd40f23fbb3adaf2b08e1cb009b0881d1990d2c09ab6c5f87630daaf59c4ddde9d5c1d07f4f2905eeff24e9cc7ae37cf7c093ca3b56107e0f1bbbe8d3fd82bd4f452881d95b211b8654f3ea235380ebdec954dbc90e4436823a19cf134d8a649a2bd1a27144a2421f4ea1a0af3dea00cda7bc58aeef45ffceb1b2e6d81e2113a136771d90860a0cf870990b2e2337982ffb3d92b9fd379305e423a4836313c23e76ee21e3aa866a68f3697dc45115419746bda835f942175408fc3e09fb3ccb0dd2ca0196995290522814d02df4f578bc800774cc6b80610a3a7c53a7d85378a41eb246e8bca98990ff7f60c32d64c9c372dc224538a224e25e1ea7c85cb16c438500615f6ae3e5002c9cf343ada3d99a1327b38ce723e643c0fbdb534edb614480c3b9f9a75782f3976ae5db2ec2ce995a12cdd7e184d647912a15bbe7931088062bfb40131a2b30ce1deb0bd374822f83ae2ca4a3aa6f01563c8e96a180d4b2cddf65130418091f882a00004f277d1c11f34f6bc0ba6b6f734c0dcec8c3c22e740818b2efa26da1758785597312f7e6cf9f08891774aaa59a6af24aaaba816a23145edb362e56b73726b8267031210d100774dfafa27f8300540cef40fad748eb0fbc67dbf7fa84767eb57763e3db1c76cfee37ebd217d777b60e41b8f9fbd47565ae53fa20b65cd143c1ed8b05dc8b3379095c7c73a60e0d6dd3206c67f1e6dabfba3e446317328f0471376d686f954206ebc24a2ac7988351fac9e1b9e8cdf69d050605f7b41ea6ae13e47a89364e7a0dfbe4a03ff35c9e075759ae75685237b7eec213e45b934c60a98c84d3979c353723947133802933b82e98413e719e7930673c1b419cb3291583056c972980e8d538e31b42da9b4d2e4832a7761e5a4ed6fb47b94a506ce11e57c079d09668f15d06be6d0067d89a7921e03e0b9c5c5f8c107babcc24649170032356c8e9fed99db46287c2a945a2fab1e2872765a27be6280ee038418a3294d5d5274710d2bf2d3cd744fc7558e073d0ef9eb351f15ba494ce7f88f8433a019b7d4bdb131e309eaef129eb7e9cfedd19965c36ef3b303add486d2bceeacc0f3f8c0a409a02c2d8c380dd209257b87d9c37a767c75057efd4a58fd2c352e4f3d61c616a9268899e7ba5c66b78eae161dd52022d11f3cede7701be6d360a6871106a5cab04869f7c7ead40b711d40fd27247d47d2e3b544452f2bc57d0a2874ac672d37cec4d8f75a4ede71ea4e9b64ddacdb0f9a1e404e554cfc44bc92894d48cc0dda78024a06cc72330ae0260ae83a970fccd5ecdf0e118812222ffb7ebf10e3247fe6653a0d7dd063b6ef2619d06e2ed20245490bdd2591b25a487c89899d32cad3b732aa26885079a9df30965ca0b945b36acf5b964f45f8bd822354884d0304ce28499a70dc20fab89c442a2b131cf6fe33266d4a31c0b8d30faf9376665f632f8f71ec4e25e5637e006b9aaab385fe1aecd903b4dae19dec6ea0d93b467d25e7b25d56e4566edda8ff4bf572d27d67686d07282bdad6e4f8540978dc07aeb98f9479dd47bcbb3890631a0f33057212c16365a5a81ea8bae8f7a89db7a6c302ee81a3a8da20747d1526d288efdffd9eb10c2acf5f6b9b9f8fb36862c83f6f16d1b28cbac4f7ae5272705633fd03f33498514e6760ff32dcef1a85f9c37a582243751f30591c103006518ae25c7a6d0112f4a0d69f546172a5ee65583f14c1c74d787359d9c7419f53604d9fa3929989e6105789f1f255752820005ba586623296f3aa9c3a1e0d18cfec40b23a52a9d11f2021f327ce6da0087dc9819bd19e67cfd0fea8d8fbe5442d50eed5ce97cd3ebd56ed3813a2bac3668d05fda746ec2c8dad991471dec0b7d30a4344eb539bc700de052d2cfc0fcd47ca992d5b3f28688f45f2df15e9b293efdfe008b6336d342234a177f2c3dfb5c8b4781090f99490996532d658f64e0239b0010a2163e7cce3016932b30d8dbb0d8135b19b261c6a9359a58e8166a9f09616db506bc86d0184965e3640f533a4af4eb26bf6afbca890006844d63eb8e528c50412b92d87c4b8dbe49c94f7534f402c742ce548997c05a709b3a48312a636a0dd0e2c9a09849441506caa798c63e41a331866dbcaca449807d39c450debbc852d928fb7b2931255e53df4496bbc52d064618ecb642bd55e54d8f9b8e817559476febe42ee9ff65c6e9d98d778b01972a94e7534f6c5fca8913e3cfe3af718364353252d4148d9838ae6f69e5c59cbe5e05614bc6960b30142baefe9e76490199decc46eca160ad85b9d96ddf20b2ca546018e00d9a80c5d86045da7bc7f6349e6c388f738040f907fc0c4697294acdb7f7c01411bfc02f72dd236d99225cbf2a4344a6fa2d11d46a2866a54add624335c0a060c8d57c167a0fa373493c2d5a95fb2ba3d4ba5e6dff79050e502bba74c0c75543d146d9f80be2ffe9de44f4a2a2969951fd806aea6aaeb9ef0278de9cfb6c22be36b18ac5da8691ae05213bb062eaa43b0100adff51dfc0e712bfa07fc59f6e30f50756ee209413cef7604e1d815911c5ab5383ecceab74a7911a0d1df35b4d386411101f8a9e7b13853144f45cc23758aa943bb1d3db453d9fcd34bb609a1f028e1b00e50eea562ab613ebb6dc9cfb22bafc859d60ad6c836dc93ed17347ade25dcbdd394b1c0a46f1e9615f2d6ae234b53eb9304d626a298faf80f5e79f72af4b873526ebdc672be9a55dd7b4b7275febdc40edb307c1c719c73722d95d5d01941f8581d3e4de14c31232c2cdcfc152f6dc6152a5f27dd6944bef446d59dd462323796803af2a4331ecfb43a30b468a80f5059f31267c1687cbe50315059c6c106f4b0bbf01916ea0978cbe1501e7068e438526a7bfd0dc444565a0b00971547f83d9c8ffdbe773c2f21f7c68c877efcba7ed7c5e9af8af86e63bb95e547be5a2ae3b88c88c4154725ff9e3b51f91a2d77b756bcb9fb10979cee83d2866e18afce6e67e689e6eef9ae92a82d748f16a7012a3eb99ff7cf457997c07babea4b06f520a5d3e9e0d37f5fe96a25b3103e3cd6fd5623b86f09e4fb58976b61284b1d823d54e3449af933fc86fc52d71f7b293c5b416a1826ab595044adb356e11e9e77f2ff4bbc5f957e580c1670f4cf59c388e778d06c7c74079d609f2ba8f0ae6ef4474057cd3f0c7b568b4621cc411e2257d151fbdc19ad887ba65bacb586a4327edcf3c3a2181767192886f59f45b50857c027c9a709b663041231a650d48a9783ff339656951573833990e9c64b03c67733c2173dc7fc98b39cd1a2b4ccd49351f54d424c79a11cd146fd870e115b8949d9d486ac043be6306aeeda1ff3a87c66c8e133a5c7073b5333fc07b8f50974cae166c04004967b7f93d73d4bf9928342aba412142dcfefd1385731df822b6939a8ca894c313860a6c66d8c3ff85d7eecc88b7c84d1e15e3276865312d4ff3f86161ca4745a66485701a1c4d26c7aaa788de313f27c1c3118bddb14d8c3e8a873c284247339b7821f9b707fedc6cd76e1061b38f5b11c9c047a46dad36c8a5d3a877d0a161ec7048e09944f680b992af4aa220310ac2e5a7a0c78f7936e11448d01677f5973b508318466609177d6f2a22ba3354e6184b1404317a94419c53597316386dab74214eadabf9cced945a763d45333e5cb702d057bb6d9e07846d6a9c6755c6fc5713533ed4013829c4da717fad942af0c5039294113e9d9202545a10232e7f4efa3aff8bda4d67eb7bbe2fa1c1121eba58454e8bb99c4e7808d805363fb0a3bf2f69d4eab86eaea93de9588155512075ddb21aad4530512334cee73ffb5ef1f3d7bea2203f83f8eaa958064861d2fa0cce2f95a8cebfab6dc187e30f6331bd585b75729fc3d9a6182f46270915b7a55350177aa8e4a6386742235f028b2cf467ceb5b81efad3ae35e146ee72ade5c4b1d9fa3c9345c7df0dfb88272a4cb944b74951d16d95c2a088ec789f41f8f0f9bd9d744be0aa1855fc8b9e13f822ff1470c64d7a544df9eca5bb89126376c96a3197e23438eb8ed0d5e0e0d7e2d3ea15ca07ef61de8ca80a2900162b6a99790a5d0dd8d8a0d2efde3c6e30cf3a86923de2199d2ee34c5f7592d4975bf95abf6603fdd84c591ef716c03738e0ef4ff6f89ad2913ae440fa6c5a161fef60c6b23494f70ff006ca6ea78708767b3bca64700c2171347d50075fd89565116114231c523ca46eefa74771ca433a53085b4d7007c330062ee39d1f468f9d35afb391eeebaec2e768c81111561bcb82640117a92d00fb2262336b80b963c7bf2a0277eabcc58f8d7e1d6b33929329736233699ab8dcddbe9af8b16f048619962d7845259344ebedea84a097694f6c3057520aa6fb860b5624ecf687e9cb33bf9d96212ca054641d4cdaeffb3c6f74c8f67874475ccaf35ebe44a7fd664a55e207f22232b69409d6e3789e0aef5b5fc5459feb08a03875ca6f55d75a5255a62256512082bb2ee07488430975eaa8a86cb5d0e1d54088f97cb57a02767037c8ce217f0b9ddacded90528d1292dae5287270b9e1ddb8753006c350193d2ebb8fe1c2f7b9a103fecba7a8164c0220537a4345b88a6e6909c7c50ef8d7e1694d1ff484474e6c3a0e6a58d5c60de81dc8bf780bbc5f033602c1673db46de0a299955009937b5ce686db9273fd4bbd77c3c95406a0d2b90b45e2ba7b17f3d32742a301684d6c7b94689041dc96199dd7789d98c001a5a968dd15381b5b9676981195931c812d5a7a150313e78047d81e9989a0e95512d00c21e26e1d4c0064c9fd14d33bbaa8615d23049543f9dca4cb43d067cad208ac485ec121e305938077f0d9602f09b4cd9e39c824fe014233d91a5faa7fa3440b8a446ddfa5714c0157a979ad2fba1056c41b4da7a81634648c3cfb158ca10490a25e260b96d3f9c8c857e7220e781f2cb4201b76ef0c172691e25b70df7c79b811c2125d6e4aaa0189d980f34d8b8de673aa3e838d513da3f934ff85bb14b7e49f9ed4fa06a2f39a3cb959cba50a9a16ce8361c1339b4b501f063f218d30b0f27cca2ac2b66ae53dd7b972c6d7142d2be0923aa0e527cdb3de253657ea56ed44a0a20663d632e6d6c7633ac2ed80015bb4ffd931c9390da9a87c3a60f334f9cf7b6534b6a9f80b30da450e156857b6f45f2edd7832c29e60e60cb7040c6f863145da5912deb606ca1c76216a89fcc485233b7c4dbd6f8315524c6f7d2ac7d6a0bb395457f12a791f571a9b4b15e3afddbb661e21b5cf65fb0bf37e91fb768c8bcf98cb72aa1b0bd21fd8cbd0df7934a9886052a99e8d9eb9f68c31300edfed291905facd2e6b4c5d8a2297a6f654480034c3bde90815556d4b38af883ad7799d0adcbce05ee0164aa09e1635c3870aaec5f612858f33d913515b0dab5ae95d58410ae03c04cadd73d736b12ef65b21b828cefb41b59d9ef2f838ddc951885dff8453fe24894b8135d154ca63ceb3a1e9a2bedfcbc50f9fc220dbc76024ed5bda18cf088e2d2092faee12be84aad64207e7539d78eba2a89a1feffd794642b05b72c81f3a494524b3dd018b3a8ae1514a9792da5b13b8cb3167dfd946dca2262b313354776dfa2d2fd64829cf8df4c020c79f0885cd2c5cd4f20fe91f2aed6b44d09b9a6f6b7470961cfd11653fee84a65d86188a97a757a90f33892aeba46d02d9f0bd5d4658ecd8a1e2d3a8aa1a073af2cfd8887bfb2932dabd1d51d07f94f62da9d2fd0d2f1a207adacd8b4cd3279f0337b2f0ebfb3cb0bcba0c688ad7a8df98810c16b59377dfe8e4ff2b1004723a433baeba1686b2d750748ce8c9b3c94ffb07144524c698d3c90f09200776326b403fcabdddbc353870c4e5e83e8551d62ec632e1965e425970367b0de8bfe17f06d418f68717431b757397fa3a83fa5452866a1c0d8dae2095661bced14e135b0524b4a3b5516cee1b9e6da608f00ce9d37eff2806cae77c9a86b31a6663338842b2f038210417a18621fba875409a57eb1cf19266af46e69c69240c0a47a7cbbdddba49509a2cb2e6cda628825997e221c8e10249082dfb30e8742b893b0701a33ef5a2d45169e2d3c3e1c29206cbbd105e37d2877728d582257bcefdbab2e9bf39d811f3e9e4298a5810c59084c240a6083a924ca76805a39e5b2c7944bf7c812d5b9ef7a4d16bf71deb1fdccc5583ba07e5d8d81d6021b8930d82f666e93de8cb82b2b1ed1c9807acd408a5e868a80c32eea6882d7bbb2f07360f487d51d88cb334b576d7a826c667bf10092d3297c6f0254042686fbc61813e9524a55d67a850a9721573c0ea24022ee75d344fd2ff7212c9e98222c4e87c1f21e8f3fc0552da8cf5631e40ead704017f10984a3533ff019be0929c6e7fde15ae9a1c427b3b54e983cac16f6192370c5952492ceb081f20127d6869a58107c31d6fe55982064b6eb37a57043ef03c976ab2fa8e43c5887494b61585eb9d461690cfc9db84716d764575b254bc3559b7f53f24d695893e14f3223b96d9245f1ff27f95568b028406e490702314c5029a579a745c505a51493af908642f1c38aa151b37806ad1d1caa8ed16e05d21c1ef8a30369112f4d72028548e4e62af311445f4d39ddd29c2d783d89e3cbe8b04151b219d6a5bd494a1e19cfe214696ebff6385f26d2b898d1042c8267bef2df70e720729070907df01ba6c0dd0650e77f239745945da9b0274d912a0cbdc0066ec0d968fd165152b48a6cb36a6cb1c0e5d2605617918948f34593ea62edb5297b91b7c7cb0fc4b903459281bba6c05d065ae860e72e9202c2f6fa4c99a81d1651b802e732d37d60c967ff149534d491620690240972d0d5de658ba4c4a6179efb33374d97232749973b1d265155c4f9265479a688b2eab90ba2e93b8dbc9bfcb56b2e83297327750baac82a7ceb592265a2359e44fbaac425ad16512a7a2cb1c695a932e5b2e4597b9922e5fa3194ee2e68eb963e4da9142cae7fa8282466ee31177d95c4b5c3917eaba091204b644a08b04d7e99a09cac911ddc6dc670555ca47e69039604bb43741d0c941ad56b025866ee34c0bb228b035f664677878608b8f1656aa54dff40d6c89da6d9c61281f3b3a395040015ba23563b5c0b2b16aac532a751b63a92f00ad543c78c0961c247c3b3ab106b6dcc6b59eea0cea4db5a9354fdc802d51154510d04a06ae3a4df0f97656604bbc56b0455e01b2c863a71b601b408101cb2d6079cb088de76dd3b5922cf23986853b583e9b30bc46f242e6da8930e40b8cc9b3bbedb56a1ab3ebe68ac0f557f15e2b181c2f7fede41a707cc666b0ec28e10e1096360cc1c564098e6a2f30a60780216c0243d8936f808981e1b33659828bcf145b400cc2091f44f8f1e3c78f1f3f7efcf8f1e3870f1f3e7cf8f8beeffbbeeffbbeeff3e1c3870f1f353798c11ceedf628283edb948d28d1ff359436882b0ada6e10969c0f7228cd957428f428f7ed2493d3c9508c2d276673bdb032eca1738464b09ee64078a61be4123765d631c1ac0d1e2fc02cfd749bb786a6f081168024db935bd0e5d7bdbe158b6b4ad03ce17982e89c81cde4697b8d77c96e348a47b265913a34ba1cb969356cb5e58a66d21114e34777036425292c284a462c5094a0a0b955ffbe3ac85b6ed98e1026f3adaa32b714593286b39ae7280cb5127f6e84c064de6c69464a1e76e54c51e71472787035cce4ea72ee568938c4e9693e5d45aab0caf9586caf25a6badde6b85a97fadb55695d76aaadd6badb5ded75aaa28afb5d67af25a6fa82c5e6bad35e5b5be54d26badb59abc561bea8ad75a6b55f15a0550495e6bad75e4b5d65053bcd65a6bc96b75a9a3d75a6bc55e2b8cfac8a3561d01a8b5d65a5b6a9dafa257eeb5d65a5fd45a6bf5a14bd9ebeb3d00d45aeb4aada1d7babdd67a924d87dac2c50c30a6d20d2f3608a0061718016879010019566458a1a184c59b4106172b2d46aef25177575fa9ac4428dac9f7f3a17c271fc7228507e5448464f2d00a1524936eb591d891efa7fbbe4f4b6195a078483a5436aad809a79e4e586c82a3ab5bd8dcd999dfcf57bff9619de8e2386ed6cc364eedb8db38b356c89abdd5c6a1104f88be6e3b361d9b8dcc9527c94273608c9c386d92722621278f1e785bf9f679049499342ccfb30578fbdc0163bc6f9f336d9aa7d33c9d66cd69da40d1a519c00065264ee959862108c6a80869d344a17e504fa086a4bac482095066f2dcf02c9b1004c65c9d36cdefdbf9be4ffae0ed924797feed12075066febc3c4b1de0ed3207c69c7cbbd4d1a6b9da81b35dd67469c5b7cb1140194a63c3b32401de2e73c09814a036d1d329e824674ef2f4449750ae0065288e009e1b0b2b186302a44d14850a821282faf9ba94a2092843796a786e1f3c304605aa4df4fb723e9d8df4eded0228437f5c9e1b06787bdfc098916fd4e6c0dbaa75ecc09b2506285369603cc728a0803125aa36d5d36975023a0509e9128913a04cc509c0737c02deeab7c71e6daa2854e441014105c19bfcf6a80494a93c11066d798e4be0ed91078c197d7bb46953fdbe78f3a136d15f3c4713e0edb10450a6fe14d1a66aa1a0c10078865ac0db2900652c9a0863bb05ba847dfb0d186357aaed40b4c93a49164ac3333402de3e03ca583811063de4e162bce0ed2fda64a17ce8d2f5ed3260ccfc76af4ba1cbf03c03dede3d4bbcdd0594b17856604c7fbb6d93f54916faedb34bdcb7472863fd7cbb0c9b0edb0e9ea7162717279c28932551c2414953769a28148a27ca64a81b783e69c256ab6ff5ad3e4c3f7fa24c46f3f28329f67d73f5cdd53757345106fbb181e6244d180a75429d50279c2883f108000753ec8442a178a20c8653030fa6d76af5adbed51765301a17fa83e9e98aae3ebaa28932d70f0c9a93345d28d40975429d70a2ccc513001c4c2f7b42a178a2cc85d3c283a95dadbed5b7fa307dfd8932174dbc5ed41f4cedf7d5d557575f5dd14419fb03001a4c2d0a75429d50279c28637968c0c1f67442a12c9e286371a20c3c985aabd5677dd697f1f889329626c2985d971b67eb075fae2e5767e972d34b4f6486a893840c9d8b6ea56bd175591298de854a88c50945bf72b7af321a95158bd52aa3c1f42d4eb415dfcfc9b7e2fb7e307d9792a160289e130cb5024361281e4c7f4db014d809c331c14e29b0d3869d301c4c7f15176985d198ac52ac56180da65719b1d6f733f26d9ff5fd607a162516c985e219b950db85b23a140fa64fa9555e17ce75ba4ed70907d3a38ca8c8ae2e9acc6795b3b2ab8b06d39ff070136799b2df8ff57ddf0f97d59cd88d07a63cda43f1585c87e2c1f4d9b562d20dd51ec5f684f3933dd993d5e1609a850231da6443b258873c4041d88a33d83afdc098e06c934a20b0c5babcf28b025773abda09688ab77e152a4422f996eef28d15acdb661a59a7e53eb7cdc0de583744d6451bdb451d1d6b624dd4116d32dbd6c62036a409a659fa3bd64795822ad56575a0036f33b6776744dcc13ef4defaf6866e11116fdd04b61bedbec0967e76b19b6fc01d63bbd96e8e48e064989b9883a2b3b2633db3b49ee992f53ec9b0f560dfafd9ba5457abb2975d7985b89876ad1e9c04223feb76e36108ee76e3a1bb21b24e88f6ac171131d64dc044069c8d0908d1a5e8935f703fc3aecdd109d88a41e28d34bd344b3f86e5e180902c2137d87af4919a6d14d2ca5fe0bef5aca46197777e746d30dfd708eb224dfdd32cd62d6bc84e4381add360cbb2fad68998fd6359d83643765c7bd6bbd36ec4b64b3327eb22749430a3f0f141c26725cf1a3c63ecc7c7f70e4e585a4a70d99c87db0e14dbcb1ed2c6690fb396c0f5658f36c52021a4201c10a9239780312c904a4099de11614ccba3832c063010b1e70edab61fb6502773ba3423be56195fb427bb196fc50e4293cc812cf33ad70e9ef2c33d44bf6fba46c1ee8e72800bd291375dc26953a84b79eee0fa7a88e77ba7757a7409fbcc9a80311a0e91adcbddf6437c8ec7b619f12d25503fd1411d64491550ecd852a51203973b08ab6e0a5d86aefc691699832346816710ca91a650079ba525c74992fc3d38c7c00dd1aaf6a690f672a7264d9772a7f09c271803779ef8864081e74d505cee54af525d6a215d82aa860d5bc75a8e6b1d1210c9237bc81eedb9c092477b51feb437f3a4c1f33d69da9b52055be6bfc00d215f4407b58e9c72a64b43740735145da28131d6e7a507600cf6ec58867556bf57db8cee271ae8085cee1c3ce76ff07caf807ac89d2c798067779287fca9ff0a8ad4308f9e52c8574828dcb45ae3ccf78d0e6dddce770e8f2ecdcfd71b79a28e58735da92373240fd832658fee1d51462a0161cc4f29e4414840381e3ce712b0653e370bf07c6682032e4b15ee529657c11827604c0f21571787087edd7ee8c7f8eed651b57cc59a9e5148975ec81c393fbd93b879a9923fddb16716eaee6e1cb7383379a0d8b6370dd034b85d7ee89770d4e7d05e8443386b081cb2abddffac7914a45bae9bed8180a3a79c9527c198c6f53160ed645c1f6474e984763beca0017aa794d1257815d05e16584343b8c10ece39e19c73ce3967ad4ce480a6be5e46a5af27496b390ede138b33e9c1cdf88cc1073cf042b7e544977d092184f15167c88e95b8c967d0cacb43634b83198673ca19addd80c1b20230788878d865ecda332983e419a6e0afd78031f5a378513c172ff2106489df4e62a1a65d5eeca32bbaf9783b77332974b3c51b4c691d090506c3ee2e1ef40217430063620d8d3c30cd2e323694127e621879d00944d32507b447bd9f448a2fe0327c7c7c84d90fe4222597e0e81261e0a80361d0e7961a1b8ed7604cc3e078d2fd0d50ae81a8d35e0f1875268c3a325acb71d366ef12416de7b5474fd25472ea537dac77692870bdac1008ae9f9b0e55db76685cebb3185beb2a65ec3206b0ac157613a8bd7acf72a43961cb3400fd4998c0c109670f43af460aa6e03de9431867da83926b11901a20c1cd39e79c93d269436bad95564a29a5147e949e524a29ad95aa000743267276c0883bbf4b9f36270843267280706f11420cc7118e2b5c622ec8323fe77c77f0b3b065dea241bfacc0ccbb38007694214abb296d80f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f400c9ac9431429608c4850cce47ccc75a61c8c40d54386b8d240448863cd71064acb65ad5e080e15f60604c18a2801eed006429c1520438cacd87214140ed01c124245d9e283c6970d068d465a9c29f1554299f1e98e3ba2c6df090cd470b2b552a1442f9d8d1c949026b5a97fb84535f005aa97e3086c51dd852451104b4b256a7093edf4e854130b571c12e52c366b8150ccbe70cc3934c191b61c838ef34024402f4e25c829553d5052c9f5027cffc70bcc4709b3b4740134c039e670c18f03c6db080e7a90410a3f72518a0c9068de7b901053ccf10fcf03c4be0c34798004df1d4c3b38442029e6515663ccb2cc8680e07d014737878963cd8e1590a418767f9030117bd2f47004d317580677902033ccb23f0b38c410e1dba0234f54c019e7b0b04786e300ce0596e20c6459a80a646c93c774fcc73330187e78602cc73fff0c018edfd760134b58fe9b991283d370e6e786e1ebcf4260668ea201b9edb030278ee11d4f0dc2770c1de8f4e8026792359e4613c472702f01cafd0f2a233ef390661798e3d343cc72600f01c7f80fb510968929f64912bcf31272281a30b66e8c712409304b2efab45f4c07d8662805dc07d0a4089f20c5729d0092afd19d034776e9c3c439e01a878be01770beefc9267157d17d034579245ce4d87b60de8b26540b7800e08187cedd0e8b2554097b91fa0ca872eab5c363d74d926a0cbdc8cd36583e5657459c502f1d065bb4397391d7280b03c02baac226d3b9f0fed6ad8692308893961b3ecdaacb52a7b596bb32d1b69c7b0918665f24aefb2f63a66eb653dcff33cefba6ce3393327acb51666d676766636b5dd387301ecd608c206041e90799c344dc0e7dbf1bc1497e24e574d8e9e91f2937293df83808131f5f238c4a01bbde473f6ba659d11d1a45df2d895d85b7139d96da3d1244509c948a494dae852dcf12060600cf6f81823912496c414d124921e633cc9244509c948a457a494d2107df6ac3ddba016ca4ee98e68a3fac00d6083e972ca3a4bbb89edb0b63362e2ec38447076b9d50bab188661180c8661188661db85d50dc3b04b4a29a594524a29a594526627ac8b39b49a1aa9542a95aa1976c22a8ce6799ee7795a289465a16c544324954aa572d484b20ec0960d4018a71bc9826acff2ced9ec9476f124a23d7ba6a56accc0180c5bef0dc01888d3275823b59ab12727300ccbb0437b5dddc4326ba7d6c59a9803cb518361588d542a95b298a66118766d685d10da765fac86590dbb2c76e7afbaf5704cedc4ae2e882e5523081b36c36c86d979e5373fd2337d83757b8b88b887637a3d1f6f0726da931917d343ad2f2024832b39de44d263afb41767ede03cf4893ba28cbc36c200620291603817201c0063a0e4481d6187b20630a55dbc199259cf6c972ccaa1caad55b1c7ac8a29024908749a49793cf98aab28916ef2148f7f974a1e49461effa24ba3c7f8972e718f87d91e8f00195dca1eef03100eb88cbdd1b0d6c6682f0249538b182d204d2dba58d3d9db41c962b1f8098b9f28b1c2240c9950c20767534bb92a97d7fef77ede19fcbaf5d9bdaeddecdbd51ebadb456ee81cf7d11591dc91975c92a7b82537b9294eba265771495f7155bcef8a9fdc3eca8558e539744e8af57be39066b1541e73e46fc9a7749964a158275db696ca235e711dc1d9a758cf320618c57a0765293762162747f9dc68b0f8c9258b9f3c6b2da507163f790e9d7223224e790be9d59093e7d02a19d5fac6212744cc7921502e8b9b726d7b29976294ab83fdc98d43acafb0aee2f64c7bd649d64d6e9f6ee768cf7ac9eddb23b76d7ac76deeb6c86d5427d139cda375ba477bd6ebed9de669effb6d20dd4122d075a933ad3671cffebc4e9fcd0b2d767543cccb524a435ae0668431cd914cc17acc5ae504b6de42a8dc68d077a75a48ab22909496dc51d1253599f54c063491248bf50904d1a6d1a1655905c0317280088025ea2259ac0f00ca742731c345f60cd6c6c1d837ec1af690146c74b68b707d19b787ea7ccff7b447e1ebdbf5eb211b6c2f2fafbdfa006543821596c19badcaadcaad9a9112c8443d95e557234f2f565aa552759d5d71d1aacc86b63203cb9c59e8f9dad6d2479a52dc9241327329ba92ee094bd2c166d93aad6b96ac9bb1cf16cbb6ed1d3ac6611816c22e8285a00a23611876180cc3300cc330ccc54603d3300c13c1ae699bd675d857361ad8d665fb0b371a7dabc93b9f5d8add88e5f5d83fd8b5e235553d730ac1fdd643cb0bad5ec9d3d6658e4ebdf20808c33abd1247deb4b743daf44faf5a80ad2774e418a292d207c6487cc94b7e125fbf1ea18cfc220cebd7153a0e914cbbb61818661cf0b67ddb3691eddc26925d1198f281dff6185dcabec9e0ed38c0ed303046bbe7728ff46ddbb64de4dd4663eb607b22dbb6b974c91279e62e227255b6191c16d130ee6a91aebbbbbbbbbbbb5342d7467b960e68300d1832918314ce5ab4783b93b4a9f53c716f34647753a8ea99fe71d15cb4a883a4b79d0d956d46ec8c88987642c05553c1894c23653568b3f4d39ed52a284c9ace6e9176f4d4317360eb520cd0ba8402c66837459f28bad4565bb7a4902c83586bc283cba15beb3108d7656b83457fdb61081b889831481c82adf7e190f62c083b1bb00ba38f4ff4b9aeec17766529bf3e8cbd9f95b478e5f7cfbb8a8a25cf62a331df3265eb61765325a38f4fcf705cf4893e5d06a3a5485428abf822085bcf2f189aa28f9c575fd7652df60bb3f75cb2174d08b6feb2cd70816390f62c6b092e7bd1ea8da31b67eea44414c16109c016eb118030ac693d955bd52a14d263176b4cb619b28b36514737848932d0a5bd58b128134497e64fea95ca62b6555907fb67955d66d41ce8609386d58f2e3480bc124fab69170cce3848297de4d7dc0b0c8c81a579fad1b3cb084989c9e57180323258dee4caaf59aca7b8b0594a2e6c920b7be4c21e5dd82cdca562a371c5909fc875f91c7a969f756dbb4cb1cd087546442cd2e5d0b55f276d34ae6f9d1111b7aa3d2bb7cac72406b6bbae4bed57b7dd8889ed718860fbaa49ec570f38c9c3cf859082c4b02e3d977b24abad1da9bd64a3213b4de2589171a386472a4271c3d3ab1c3941768c361dea49361ab6db6c6ee24dbc91cff57286a6a63deba26d460dc168527a3f89c4719f25052e7b1651da7344028f361af67dd325edd6234e44894272e338ef461dedd968f2fb3e7bedb9af75b166eb42db8cecf65976a3cd8d3a7aa667604c69de3a690122917638e6b929e7a49384a38f1236742805d59d404a02f74308384013cc0c8973066aa6d63e307d76b1d65b891c0c03432678a8accdd1deb3c3c7183924395c717872b87288725862f1bee99b1982ae6f64b56cbda299a35a3bba744d9c899a497409eb24dae322ce24da25911c834421983ec71fbcf21c57f189c6e924308d36f7b4bb557145ef6e6e244456b5f1275661cea8523e7424c479f42ada703673c6763626279d745b985c9cbe7934bd1ee2f91a4897308847bfd1502439283a7167d47d4e9479d24499f07e965a7c9ea44bdde7495d52f17994afccbfe812f77997897dce92f679047469e4f332ba44f2791fbab4e2f34038a04b2b9fafd1a594cf07d126179f9f4097fe493add688ce69c47b98bdb379265e5a2fce4ae7cc53d39c95df1919b5dec8a70dcaf1bba752f15b7bebb2adee27617dd16f65e17b7719a4508c9423fa238854597544e9f437777062eaee2ce40089bd52b83acb7b82a1ebad776b963d8b32b62efe823575b71497eaffdc95df1957b7217570249160a9349dc2fba2acee2aa3ce5b2f8bda2a3dc94af5c94b7b8d2c595439a858e60a4498866996fd1cd775de6e66f9749f3a37b27d0debccab5d141b4379f726bb4378f721dd0defcc905e2fad0de3cc99531721190c38dd1debcc885797179e1adbc51a68aab01491337451f4f1d8dea086e8d433249115372faa882d88215c0924d5c22de803e8ae668ce91ada3519d236b91eec9e8f5a39bdc93d1e7ad94404672c75ef2c098d1e96513d0d43b5db21d841f1d28e4482634aa07d3873e0a7d34bae501e2eb99cd9c9934d30313671e314f30029b955c1c16c0f674fb81085ab719a387224ee8a3c78d86b5a16b1482315ccc28b31787080efdba9cfd68746b3f7a0ecd5d888d88f8ea1ae8e606c3a8eb212636e08c98184704c297090eb83c6720aef31479ba04371ad1761f7dee2871237a157dea60085ec190091e3438b35a8a518f2028a163034c1f03227088e0eb382c8031ee196747b73a8c469d06032e8eb67376bbe5b66e05c71770a3d7a7b8111731f175c933fa1c8d4613c83ebb720361fad9c99921d636472f57dedc80db04044cdf40f4063800d8c44834ad393367a28dece4a88b36cfd146b37e3888730301d11e688a3002893b1ad327308d558850c0f4f3393201539ba63551d432bb7ce37326e21c6d60ccc583c437b26ffae6ba6ee8badb75b5eb66d7c5ae7b5dd75ed7ba6ebd2ebdae1bd72874082113303ceca9d5ba015eb4ed908d6823231954a1accc344e7b4fed98e4ce8bd5381228fae8341bdd24301de54662768d73a3c365995b0b5a8031dce9255097229e3ada444a82ce991c35330450e625c2a01739dd4eb592081a08e8068823917e201e3ed8c390091e289cc18630ced011dc04327ba469ceccdc703ea99d3933fafc8430064a5384a259e8696c0e4e87dc893b3ca0af4839dae468836393e078907a600ac48369a748712021daa3a28b6edc717782341085c21bf227483f9c909dcff37e126d208a455db4a90227da5a747bc814b8dc374098be6fba84d32818133a7d230163383041004df2a603b0341365640f9d16e4a000d3a3482072b1f9a15e54459648645d23963522b2aeeb44746bf42c13dd21989e083a0a8928004d339c5e881b304674fa95145c82335c6d38c355dc015be84777862e1e0159e86528a971b1e11c6d4e3225d4e56983e90a965d9e2dc0cfa3879ec52b70248f30e0222582bb240fdd88136d88a038471b922edab44757f0c8c5f1024e74eb3006e21691a88889b9df105df4f96beb41f429127dce9987107911119ff4b082b76fc7acec314f6f208ce981e92b77fb92d061eaade53812a9c2e03c03ce3eafe8f6078bba1b2b98c3dc15c171ee802df62298bba1a010e6ee1664c3dcd57234ccdd4ce6c83077b1d5bd782ecc5ddb371673d782c2c2dcada98ab94b7950ccdd196b26e6aebc214362ae5b812df633e22c721762d8cd86812dfd0d77cf8c03ee935e36dca7248fb322b85f309d2b5634c1c13a7dde1110c21080cceebfd088fd44f7909ea4f91f1d04c190091acc701832810410b6e8ed4a083961d6227bc5180288a7064e28bd6181198bc065172cb21e4370823149c412e01953806774c194f2320a314528edd1f9789a9576b08a48edd1e03873a5542a2a701cb78df87c3b9e6731ef9299d466965dcbbe3d24a576911136356a33fa8dd26bd8e586655996456e6256669ee7799ea7b2d65a6bb5edca306dbb32ecc2b0aec636312b33cff3bccdd33c9589c546484a52602636458946b28d60bf346dcbb22ccbb22ccbb2cc66d961961d26cbb22ccbb22cdbb22dcbb26dd3b46f5d8d2ceb82d06c6033ce283f1feb99e7799ee75d33ceb85149e72595df7a9897b74364b782b021e9dcaeecd92581b075f9433eb18d7011b332f37c3ccff354d65a6baddd6e31acc5c030e380354d44fb4813496987ad3d87d61ea34bd73519ac1d07a86dd7344dd3344dd3b491a669da88d34635469c66336b6d66a386bc9d613e1e36e9a4129bd84c494cea20b167d793a69a74a8b4eb584a93a0543403000000025316000030100c864442a1440ac354740f1400116f8e4a6858349647d324c84218468c618410000000000000000466ac060050c945002ef2b4dbd0cd57278556bd877d212ab2ced019d3f0c979469a2c9e100492e1a2b8bab158122f36d3231d534d0d9ecabf491ffafab4c3be4dab3f20e7f8e9652f19ee87067ae7664a8acf7780141890481526769befd8187e677d4cee8e4a847fb8d99ee226010566c061283b1acdaaf26c6cff183aadd804d8c2fb6de6884901cb5314500f3060555055675abeb630836a8804f574f994a3021b652b078a0f0381c39e26260fb5a527f9b85daabd603ddba00b8f391120cd542b0dab4b8e062fb98342581b460a5f4d2a7fc64478eb02b23098b3dd4f1ac4e0a1325823e2b151838f78a8d4504a3c626b305d15b70b3c647193e649ff2598e3acadd3e63a237c5bd509f7c1cbe729b853511d19d9c12c3c1b3bfccf26d9fdbceb3cfd2f282dea29c879d55210a0967fd97286e40026d8d97f7402aafee1285da2e2df079b6bfdfa1162e52b603465bc8241bd5276ad48e0b366309547302bff3d1dd30b7526fe3b0cf961a96409101507ec251169c0f50ce70771c90d19374e32a5d311ff34769d39af53147e8023fb02703603d075c245ef3cd532038785458ddf27a16f9eaac7f3f53493ce382b33f40ef2c859e792139435425807d4d04506246076f9c8305d6b9d906c0440f1ea3e9c44905b44871227dbc6460d9a9d7238957e1581c25dd69b48267ea733aad9caf397111e7bd9214c7a72209efaa3fc96a34cadb4b56733a601aed33a493b1bc8d1d348f4af7af9029c146b9c1221e66e2822748a997d95baebb7d61633ca918612c82710f737de3e641a6559b1f07965cce1ba00f4d9348d04d2fcc7ddf051ce83fee2555f3fdcdacfede2d64e3859b36e69a2a19d528089219954ed5f51f7ebeca54aee690d9a23484054a5490a807d07c73645cbd82a9c6126ffe80a614f7d76905f8f32360e7bea4e31c2c2a1a689f6b7341a0001e1f423b2358552ad464618b7b7b04eb8c8604489413c4b7b593fc3204aee60f88b88d9c0e5ca9c7d882210fbdfc688919f88840cf4b0e9a0ccb269b2ab373aea790a522deaf601bb99c0e5346e72d382708daeb6ea9f67c0776b0951e9d9b031c91a07a47162dde11fc1526656a46e31e380911be86269a61b0adf654c44a0c3f1810ae7fb1b93fe829bd56dcbd3bf46d91d3ce7853505309a8bf040111429bcb89c9718f851172687bf72a8c8efd77ee65966d47d8a93930533154c6072484100ea6a080b68a0bc4c50bb0828e83d5fd0515ff4c10eb6713f2089f8af6c67ee2e98f3ea6e39f6a1603eff3c55fe923b9859cdc89f3515be379566d58b778f151c9b02c4ac87598956ef20244d55712b9611ac5003545519ec99b0b4ce211f742d3b531fb97476cdc272ce1a592f4017f07d90ea4834df0d28d8ca4ff38fa688d9c053a112e31df5a45bf721d19da7305cbfd518ebadbd5d746e43166486e9f02a03d46db966e73219e0c198be1e0d13082529ebfd9e5c444a2bc7681d8a24cc1a38d82999c3cdd1c80a548ae77c5dc16847f804692be1816cf4ba9272e1eddd560934e6c903686201d88cf1bbedc55965c1b58879786bd6cdedf1c51534cc5b36e363434154ad4e16a0a8cef2adf4b0bb93c2f9de7a36e079111eb6b2eda4a160f5c56969218328fa2c86e0b377b392a03b02a07351bb12db022d0b640134282201ee4481d133a66137c4e0e0c2b1a53f203e506c7080f99f78154fc5e00540f5987c6cd282253f9790698c08109dbc64820feef17b3080355da3e380ac79c00ec09b53a645303af0e6aa4d38e9cdc4e78cfc1d0c15a0639067ba240c73cc7b0e61d1d920f6956a9eefb6715f6231ea5edb9b712a11215ce725c2a727963c375ac7dc381fe297b8185712530c5b3b86053d2f7fee26ac89662ac7955068b55cee479be234e6269c726dd402011615a99d78cae783ea17391264e054ef743f7def448a1a341b8aa3879b719f5b90bc91154b00333b7a8a6ef7ce8702203ffbcd35e63de10bdd30fec07f00374a92d8b220c4d99b2c62778eafa817db25e429dcc717ca4fcfdff4ad35f2554e918f03e6888228bf6c2173c9e10057113a985e8748959baa9a2387fec120582e7731a2e14bdc5cc561fcf0ca21275a7b00b21092c7971d328a2f5151c033a49b06c6a66e235c48817e44568c4b20191ac8c6969b277826c791a1073c239873d05f10b0446dc8bd82cd18d5b93c14b55180774f5cab78aff520c2c8e2020bb52247756ba9ffbea9a245edf35e0d8fa513ed22909191aae3f659ca236595e96b4bbe3c7faa3987fdfa22ddba713c45a3b6b4329e5bfc5a8f30b7db392b60c697588cb7c88a280c39c68699154babb7a71bf33f291502d26ab8cc1dd45ad3a4c7034c25b68c6c63f2639ca7bf020a7c756876d393cb84b16ba31b56f66884be36c151fe5988de1589843bec0f76ac7967b691004eb74cb78a0033797b72050a620a433c7b005f82059680f29806dc82ef2d11627ce2092dd5f88a3271e93f62ddf75174db036f788ff2bfbfc7bb7ed07bd1944492a9a3293e4138523f1df9d978a9a9c1f10f142fa37b57ef30962c4b7309fa96a6737ad88d1866919ba671746fd858d1c9e03f5f694ac3ec1f645ab06d4150cb7d64f4368a2e700a6228451550952a9e75097a6db5c0ad1ae2bd961674423c6ac71e072660f9461d44160c023dfa112a99e06f1380209c9541386d3742c8748142a4e83b8630ed1087b0e9204434d1398930da618a30e9648b68d16118e16671ded608e20638825810d52ed50b12f38ac4c0365055ef3ddaf4656accd6336a1325a16fdec0c54f1011789c94dd8693eb59c5a511b77dcff33d22783642fdab1078e93cdcb34424019780feeef7d77e2d2f7335855644cdba82a612e8af58a5c932b140a6aa7b9616f028018d576e65b8055a42fb0efc01500cc2d2c653d9c6fa1ef6e1f1014a891e1863d6fed3e2489a4aa7ad6dc7b2a9a74b74ae03aa97d1568f7335370cb8dc714bd697e3a32ee360cb5fcda054bfa682c110f89c0a6776aa616fe33e882b9267cd27370d446b443a5d3d102d4c185d4e557a03fd50891bc9477411bccf4ba2deb76a9d46deeeae780d47d476db25a7e1cc85a9442404c284ea03b6255254358fc785c9cbb01ef6b99795e28130cb06a877cfd4d3fd3647eee0bfbfbb1e7c637a6059e870aeaf030d0dca998c6566ecfb113dd113ebbe3dd2ff0c0caaa1f3d9b8c7dc9311cf93d9767150661c6f4d859dbf10dd7e5c207e2f00b1b458337f55ff64305dad5c4fa3bb5b45e6a28cd026dc7e0401290339c6467496f3abf45d53e0a384b1ab04f18c4ba65d6ed62e738878383404e4f53af709449220ee59b676cbcad81344178c5ad1cd88a46536f6f344bf52a8ebf1d5cd337ae85beed1edabcb1523c9f8d666dbe3186cf19dd5d4bfd9577c418bab34d21ead94c8abe5d41817fb15c369ef932c0481538ab882885e0c220123833fc1a7d9f48b69d5ad26f05608ae902e902bbbb1e6a28829419d63e46df176198b8b2bc29bcbd9db838f8fc2907a5be2cfc67b6ae32d5331dbe255956523a5d652df993444f383696d92c62b91ed686d817d24fd7cff605bb12d818fb3357add6d3fe42f59be4884dca07199ee0382736daed2cd994bc65fb8bad410f4f1278cdfc791010c5d6b0cebfea01ff687712be401465ed1dba1160236cc9cee6455546335b080a49a59ea5a52ad064bc07577a875d521e2d4238e0b331f0509ab6be71b1e3c3983a41bb12cd8216049a3b915f0d48a5caa5ba6d96206e6be56be722cd5a1cc1bf4d042ba58b93929c0e439d1406713d2e8ec24529ef0273c12b81012743c9c47d363c391f0edd8e2cd01a1b71c98c5abb2ea25878ceccb9f8e3cbe05688839da081a3be9511cb627420fc89133d08beb38ff9aeb684480e1e98c141439e2c1afaf814f9a4e5ef1fc35567c08b89e4ff38173fe962b4c43b8b04c99c7661fe4c5488b98a842475e260cdceca8a1aa9b4666b5db8fec58342f694b653c0e143d9a20bc487665654ee946d3596a435e7aede421a16ea210a29d68b6323af0713b76b22edf6e0dbd4e7961777a18837862465a0e827afee1b49a3d91d742e62570f4db741aeac9c20140d1eb68fe67848d4b6ed7a89bafb5936c49719430dc38d9188d04f9c8beb2eaff8a69f9ccc88bd3a8aee7d45be05533e9e98469dc371c97dae7d841dcf81b0d36074574536d64ec80d914ba825a3180f8170f4fe240fe5a25b52145d36f8d56abf64af0a2e7c265fbdde051bc69043a78d5c428433a656d564892ec56297b92fdf6419ed775f2ca7d7a1db71f4c982edc7e7bd183de58dd789fce106d88424155855dd284b21bca1375a743b77a9915a74688fa0c4753cda8a14f837a0ee8e8f95aad8c4eca7f27d57e8a58cbb6e7472db764ba3e29b4bf7001360cae51bc1af5f297d3dccf42e993b21e76d0a0a515ce7e56831d23dc944c25b0f96612db61c2854919529e25cac7c65c5ba8d9099ebe613ae912e92cdac266d22798bf09d89e3ede74b17c9f3ca76f7292d8020dbefc53149641ec4148f2502733e3e164fb50b4ac2c0ccdf09910cf2b69f8f252196001ba33ccc8a4091388c88da41f4a7da30a4a64e46feb65c963681e83010ca541bb4164b11f8e376bf82c31aceb48aff84995a2a2ba97af667398e616aa58c254ae997265fee00c41ca69828e57a8a7722db7d6e9c527205d4a9e4a380ee5fde078be9d2cf83302e6a5c7f81401470f88ec343c878bc560c1349e4826fedb95ffd5f39b7b94b9e2cbe7107c73de795086348bb20b357c61f4bca1f783ee4717b7893aa68d7f5f8c6a39de900b98989644f813af1f521271ac52d4f28fbc771862b8844b4f8232be28cbba3bd656a0142d482e2f9b60061e2ccd9704b8e44554c8f681484a5410041b2e99e9f8f62ecb824b1c09002938c5be07eb630b2fe2854be29315bc243369943e552d4c60349bc59b15512969482bcd6967ddbfdaad06a926e6becc9b1226343f0ff4803fd64be71317c36412b94856490f4c1a1cffb3509a821172cd04025570e7141015d02290e498b992236b8b0aea8f4a0c49fc50c4814b500b0180fb032b5247eec7663e2046b3782772dd311aa59d22e9efa75371c847cd255f91311a5a4f1a94df6e4edaa62ef8bcfac8178b6079c751a98419c67dda38efe94e44a6460f578110ced8c0aa28da1cdc2bcba3caa51c513ce7128ecd8f0db0bed1b71efb6e4c9509e88bd712e394a6a2234b9e3a2d09ffd282ee4b80c5085cc1543c1ec35f83f6c4fb82db4ae2d419b82d177920ac3a4d2cf9a9789206630f589351b06d31bd034666cf4081c42cf937454fa3510cbf15e603d5dec78c5dfa351391d5f5e565b42b34c131553007c489961c0f514240b08855e2540cd3aaa84475733ae56d2a81dd45719c9661dd41d4ac5e8e250e23a2423e62d208b8ef0fa990876076bd1ac986401c604e0236636788804a60cce845612022f677382b8bb9ee9ad397e1633e15e7f2aa6984dfafa0a11b232c38e986a3e844e1d28af19216b6250ea2a7e8bf7216bbd30ae0de0ecb4fb76d761d85b35b92a4616ba1cb3a46b54c741408dad82d54c812f33e7205153242168b4278cf9780e155027d7267afb80a293db15186cecbedec06b7e8bb3b46314c11380fa55548b1571aa8c802462d270c55a17d45bdfdf70ede4a986b0e3b286393a02b906085805ccd3699dff8fe3e19e39d0799202529bfcd6aaa1599415c7d41b12036790d8f4db41759a0dced6916b04238220665277773428217e737ac90bf30a3de9e2fb9e145d721c6be484f22d69299195a0fef0c2436f924ffd5022d54d67f694e3b8d690e251040b8dea35e7c8bfb0752e218dc39c037687373187dfa037e3a3723ff64836afc6a64ac1e9447a50cf4be5fa77899494fd29d76d5d0ff4991687c14055be7de433beff35af77b4f6b345deaffb1ec3e2b71ea30c747e4c8a76cf79e48ee27ca40993a7e7a9c7b4618cb4f933e4502d52305cb741cb4983b55ea56d72a33b11a498bca3ada7e49a91281245c339407cff76eb6b31c80149fa4a0d6515b150f17dc7cc395aa2c53c598b9639459886456d522c8dd2104ddded6a79692aa1045397ee1b5c8c13b7e94cc26c92630cac79b4515eba514b18fb0ceab23ca25dc080b4d65be810086633207c4e1936507b8b120a2bdb2e05e7dae6acc4554d9a23343df972494576611af114c08c2e28a62bf70fad5b5ebb85e76409d9cc3b6ab940f8103fa524e342e0be2f863c0ede86055b8c3ce7244731fa7b3f259543f0b48362baf705c9ad20c74498da55ffbc7268ee8a2c552074bad62737cf244e6242d3fe6f5a5394dc932c430861d81c78ddc17f89cd8301cb343b670b132834f327d6a1843278ebd518a95b4dbc26b63140a8e44a528b52f2a5bc181d0143b3ba74dcdf88b702f1c4c6ea2f1cd2ae772e1ac649053b964d6b1ae75d6c4be05f35a25b137b81b0a36f52f8d344c0389be313b12439069ddbc659216dbd540447df5b47c16991c00e37432ca241975cd6474e7016facf182b8906b4c5575a5fac5654d4dcfccb1cfad6261496ececf85004e2ccb442876ed3851b2918d480ec1212df4da0c69b0d6be0e0e36f02dd3d59a3ea92b6c9399231a4e59f4003c94f58d0f834dc5911e000e196a6d070a9a8b6a0fa483c6237888b33abfeed7194ed6c72adbee45b0168d25ad34c41659e79586c94a919a356e8bf8e89aafb06d1f2a3976e7755fe985a0f3fada55cec614d3f89bbc0b56cc89bb4d234faf3b4bce22aaf2939118db0cda9f1fb569bc5a7e22cabb6fb86e4eae2322372eae1d612e7ed4a051261d20ac93458db259518bba5b7e3385c216472e96fc8d31b7e34d84c0062be3eb69d49ea8fd11443e1a4ef0b78064e2a3ed71d2384e9c7f2660935ae8b70eafd69275d81c2da7c676e75a4c3f3550200b860cc1b0ecf65be808d0aaa2833706443e78dc38d3ef39f9b6d569c318db5cedc7626058ab5f1e1a513c41857568020504c5c42b49e10e08c4807df04db86e8be7e79da6df68de55cbf68153ddd68d9e8790382b319e8eeee4499d98383fa049629ab44200fbb5732388b92994a7716bc68f44c0074c28884618039ba292c32231e713de0969ccc33b173408f8eec9f058484cfe067cc54bd7809c567870b2425b40ad01c14e4060d8107566d1be3eb4c581387e6257061a4038a3c5c8af54c39293cb02d212617089a71b5d90b212c61cf7e73227e1f7c4532e2c82aec214070eb7c6069e08275cf479104c582b6c956e32ca327a29a87af780e8a6176a3700a0a68479bc948b5bc0843a81ea54a28bf6e351cf5399dc928a78a02d2117390491bcdb3cc9fbdfd81268bd7fbd56f2e6d5ecc85184c3381798b304afa04f8d69f38a638391e0c236f59aa8e88f292b9fcde2413cbaebce32ca70091c61252c2cd7ce4eb56bab295dc609a2740532ba24fa166d907ade1eb6006cdd5368f004b519fe5607f0a8e7fbafab70cd7a3e8021580f8b96b4ee6dd9c70f2f54b57efcb3a2d86ee58934810fdd460abc8f34979ad6515bea9ab2243c534d5c8a9ddbfe36b421b28a0e520bcb1211ded602478d1ad02eef3d2c2ad97d8f5050b34f60a12a79136e40b4e6612cc19538d0cac91e1917197d9cb4c2baca2474fa28100c15b234e80692f84f2d6ee590d8421f871cf82126da4d9192c0c5285c2da85fed32732a7c010199c180eeaa0bcd8aefeab325558fc5a343cf4980922bbc68b157b870a595e3e9faffef2d486189e94491d7b32c2e6d363f190084aa84cb0bc861fa80ce3a284a20659e446357c744a6e268d074eee28b0a7f06e009baab61e85e5407bfb8a143d10e48b6ad21768b583a6f08838095c66c09d8c8cd812a2edaa549e8fbe833cf1c5bca6cb2887df5aced6959eb69d8e4a7449e2c427625cc5e7c888184a92e7cdd215bbe1002739205fe137c5218396f45c8451f189babdbf771f35ac8cd2f62b38f8b61183a7814b417f40bc6ab89026ccbb4131d93cc7140497e7dee4d0f5628fb71cccf3e8e0b80988719b8ef617032a66af195173c7fdcf98aaf1927860bee8d3039794b5b5431984e65df1ac67bd6b08cac73a1ecd04b704243941f0be8f346354197c0851f909348a084d7d7e1aea909b67ddb4f7161b4436e92ed94b94c5a3e25a996536451b219dbcc44938fdd7b7ab4ea44fbc96b7c2aa5182d5371f3d3f72ff4311741fd78690962f908e145d877c75b615765c0477bc7f77dbbc9aad83dd0890a2e235d1c8c046927ded1d0e963dbb845159076a4462b043dd84a62a1fc0086d99987a51b6c47553f375cb9a51f12f24504b4f8788d35c3db92a51aeedd8238130698c33e0eea000fd1f2b4f0306e7276ec97a4559ecb565591caa258b49db4415a88425673f8b082fea3e255dee8e6f59c57e318d9d565cbd5a65a6879d68214e4cc56b8f967ec4672d1449cb37582afa5efef77a18989c0f66e212127e5a2b568d36b417560bda09df5d970825dd8596bd19f69c55997371d75e2bf547bff0b0f619a81fe6e84054767bcb5bf06e86093f67260e7c4877767e80b558bd7244490a7e18e2ace38c76aacc9c78c8e5012faa68eafe7fabb2325633936997607fd2532ad7639326237fbdf9174c2a7ba91e0f500cd14381e8c3577bcda97c01daeda43c0b4ff336cf831c7465d110e1cd9ed9384240eb0e0c98c8c286e932878931259ee7e92b2ea47a4c2710f27d611bb0302ba181f13f0370d584bb8f1596299c73328927ee2c86f507e5832c40219dd0fc4ce26263202d56726c3dfc85345129a6287e4e503f968d46d3d10e92498c83dd6eda20752943b1869f20b0443b0ed316221b27812f37c5ae0d242e1fbd53705f2447dc0df559fba87401798e76852684f40f71ee4900e57d81ed6096ed44106d20bc428ff7ec509be0fca633d5ccd3104daa5571076ca12700a75ba00e1a0db0a05e80939b191a015d06db848aadd65b9cd7d5fc19374c490b24154e3805689efb36aa706ff398036ec9766f2874a8b37d27dcf494192d531bc6bde8bb59d52d942944dea9c3a0881d832fa9b0724ab36278da5c6ce54cc7aa6676f53353afe59c9113a9315af139a7d81a5d8132302e3794ef922b09feba73702c3c21e0417c56adbc53ab0cc5b07fdbeca1a83f3547e44434bc3fe9832c76334d0cbb042ba98a3dce1d4c528178643c4d9cf80f030d2872231d3f3a046c35fa1bfb0b4703c5c3680550abd7e93e49f0dd7bad0128375c110d9a746e3048e4166845963531b236adebb950abf05cc9d5c289c2697890a4d1ee81d00ce73617a627b53e85e6d56566315a9c3ba7e661f6c19a73352aa0a5eca9852062447089a5fe23d2e13e888e7fa4b60d9b5563965a51a9cc7edf45b743cd29ecba4e3e4734999b4ef89f34e8d21cd6fe4a26f682b533a055cba38714096c308a18fbb4c4f8a81dcd8a2e35f433c009091039001da6abce7701e99d81a2a635c1a290e612188fa03331dc52b2dfdc40b3754f2cc0782abcdb9893623851e24886e99bdc150a5e0656046c35e05ad3197f9e567c8bc2441824bf5fd5ccb012291a03632aa0f18e4b76e339d60ba6f46aee480c4c97ae0b509f286d18a67268c02d956720364c52171315b081ad20120a394e7134a83abd557c4a8f31c81f1581fef31b62617b4cce47535ace3f784e2edadd4951f55f207688e29c4414199875760de003f27da4cf03d2d0ca85b2fd22050e8e086c8061ac51005b18bdb4634cf7aedb0222a08fd42152ee9d722e2c62ff466dbc06d233170c962bb275c0418fdb23fa79bb0c0a51dff7f50f95a38c380ca4d181ea58eb20711331e079d4c76c5e72c521c3e7283fbf86db6ecc6dfdaf9d37cb15b2d43e8469334b46f9f9f6dd58456e0c3d19921779e830133d8072d53a63c0f90a90bd369322ca7d15a43871a585be1e3d6448d2346d2cd6d3f371ad16cc04ea71521773c9aa7ab03b270b7bd65f612882fb33ed0da6cd696b2416e52e0de6ee04dcfd2fd124a5b9c4197799fbc2b44e91c1e96b3cb783156316fad335db38e0f0cd0d93712297666d6fb4e6f37318d3da610f60bd84059002ee49372d95a13cf1415e1b5a503ce7efca82a6e481e54be36c53f621a614b4c9d01cfd506ec189daaea575cafc88481c3f531c65ffd539d98e66d29669034ab660cabdca0c6f679e843da0da8339a91d84683f181f371fc48dc2670327d0f9d2e89dec7f2e44635c7385539596a49c5cbb27195ace48d0ae82a719b75a5c7edf7706c4cc602f519e9d1a158666caab9b5d4f37092a8134b270127618a452034587ca3ba7281df4c36068c527673106b4195681e59c01e2b03981574b03c8655398a06736291926d2add1ae1a2ce675c7a782cd6cd578a9827a016a4fc30d6c03c0a60ef17a4573676242c11e957f5aaf16242b5f88bc28639bc6d2d3aca1b0cb507d82dbad86ca049b27b218617c4d40569be2063194caeae07de424acf236cfb2bec32a5d0f45386b61d0ad19801241662bb9f9f964681ec420ef9607a2060fe0cd46a2d30e56d5cb6f87e107dae01b7112490a2bfc0c71591b3cffb6425adb1a783ea319f6e497f4727440b42b9776b8a3672f45dba1556eac63bf120ce60df5e29d448591e4f8c243e83e5efa7b87b0a320706d62ae08cea3f0d481f9e24ad8228e1523b4a1a1e6e02c50a17879df3c76b0ffdebead0efa521029dad262fedee0c28d384119bc1e136804fc24bbc5afdbcd3633c6732ca0baf68c515c6de24c6c5b5b75169ceb2611c3d29234e8a9767d1e7dec2c27f214470372ce390998d276f847348da60f07a31d5df5459437d6a79cfa5035ff780cd41fd1a6f26de444c001b64fee29e9d70486b058774f27b19ee820c7e153255d3375893de3c234572201c080d9511a553a77981bf61e6317e8fa487834a00fb7b56aa2f1b989a49f3f1ce6b9f9bcdd0265be2fcdd918317662d2a5f123f22217e602e5c9cf2f699fcffc82159f519f7d5e21e50ce405c7f2d13c508741f52d90859a3ad1f3855814bcac826ee0781ba64372ec0accc995d6000d5acf38109f08054b244de8296ddc76831256767e19054321ce9fae319edeccce1e7e282ec2616bbf162ea7317b3fc91dbc4631f86cfdda50b46e7657f5bb72ae946eea868b30c7be9f662fc405cf24796c958cb9f91ca2515875937b4b8c07b749b879adc06ae7824e16416f422ba8982a2a053ecb343967698d521a1abcf02a002a22e45ea01b4c9bfc1c9e0a84568d8017615def0a084c048e82601920c254914a836817226b8b72ba4dd577bbf80ef56e7bd257d42c3851a407bbcc4e1d0beee03d0a80806caa7ff9c211a568ea6daa9adfe8ea19761c384d24078b1206b08044b35f0baeef2160ca56530264f780dcc9f93e68df056628a34dcd02f4f62e2667f09b696081cc36605391838896cac176536cdd640533f28c526eed4390a50f504360bd9611fc58dc01dc13c8080f3bf914fb12dc140fa1cf692c1e90c628af5dfc6312e016c23902a06d22658f5116b1d40f3ee1dda6a4edb1c56546143ca3a55b3c436a6b9e24be80629e04d730ec3294e39cac01043e6d8a8f8a15a72125cccbb8f3521e5b129b0d06ed81ec4f2745d88fe77d1b39c6527288325bf3406c460c8e36d034a4ef104e92fc420fc25c9c071ffaea6fd6b6ff22eaffdee5bbd1d5239e2312d460d4c25b4a1ce12b032136417e951ee6da885bcdad3a3cc843019fd6c6ff8bf5d73afc5959e6dac68769718c2a97b7d0b6ed8fae37f4464ce2a4d562ff4a1de910b7687da968af45e658a2be267a0e7aabd314e5ae74a4c64a1c36c7564814744646f68f4ec6758a161bfbcf072041c36e81a2898a5cf6a6c0ae3214a20a88f6be38b9edcb39cb7ae2ed53cac1c176028044f8240d47ead17d0cf132a9f85410293c71f4e8e75e99c948f506293f54ccb78509c66856846e685e31098ef24bf7b0a627938f394635e32727e1cb49960866991351f1b1f07733291be289e790973e11eb244b1cb80e3df41024feeb63abb0cd89b7532afca1c0512de4f6d91d4dc23c8c9ebf118f343fc45afcc462f8049f370a225af8a13fafc5a4ddca9fdca2bf751a71245cb24994ef83c533956f4486657b210eba2533c90043b2653a4d99afe8b34808bc325a42571679a56a38d9f605d10cfe72351cbf2d7c76302884194e662c59a63ec002a6e7560799c29455d69b5030fd9d172a26a90f22841d8ab716ce21d8a84db4354d137e59caa969ec068af2d3037d8e677bc65a5c51c610e8a3f1543298686cf669786f733809a341b94ea4f2d33e70680573111800248b4eac4f939d19c49a1e4e65c8e256d23fb222287c1a4c5f99dca865d2f650752704f2810332009d35970647d59ae020debd1665ae028df540abf9ae85d903e5ccbf202d9643b09a206bd56359c5e14eb35e565fe258e86279a0809de5427b4c1309bcc5ee0391e087a08d12b448f3789cf4d46080b6e2a6727f4e404ef0e11a3b124a483b2afaa5fee84a09c36b99bed8b495e31ca4cacb91ca6bf231fbf95134fc2222782f2e94ae344dd862bf18e7a380de823db7790fbe7d814d8208d1043af735c412733a12d1a5f373cd6feb1ad30662a8f76628c389a50ab80611cf868b23c33e35a4ee4f5f2567cae712dd3492a831b38cc651db2f2282238f3baaa71085ee3e5f1bc9e8707f44b226cd3cbe0ed9aa31c2047a68159bf7b0db3109c66dfe1bea86ff1345e8d68059f55664b7d65a71198721006470b10c3d1f284793414776467bf4ef8602f51e7048b2b91c5d96f6333f8625cc33cabba63d202a50c9097d0adc4d352bedfe6ae01b4c42394923fedc1af71d9e715b4bc9e6a220c1b0548eff0ac5209da2c81498a86e8cc658693701e8827bb1b351ad7c4d7949c0b2965bf85e270cc2e985ac5c11ffb413536a136c22427838e1982975c0642e7428751645675a64514a9726cb6f4236a78c14c7dacb49f30d999a1adae4898a19908497e0546f0b61815975198287482ee58e68fae240260dd82709e0c3d56e6704e56984f55d50f93b47eede8af250dcdc06efe12fb2abc56cbf6fa5facb8861c90998c6c3574b8fc656cdb1d4d9aa6d11fc092acea762bf37068fb5f5258f890131f111a28b42b74abff690474a8c30d8dc7afd5869d17b9f08dd0dbba487a99ddf5a1a60275719b835c6032917eaffdf3e10ce1dd2213abc490d560f73ee1c2fe61e7ce0d561b1c5f60005a72c484c8edc807213d4815befc6cc3efa1d4418bf6d0e90f3027a1113a1d499c0ae8c2cfa7f424eb4ca1125e48c2213ec151a490873ec9fb13fe16caa633243633ce8fd3ee62c4d11ba48fc4724d79651b09650ac3fd48e2bbfbdadf4dd0381fd375fb406c96f6986c06b65e1a62f9f66e67ca903dba265e90898448c8a4d3f77b63cf1b73a14744502e11812cdf7628820e66f79f1cf4fcac6df9ba7fc6fac68748c8c12aa3160e3585675837d86208e88d47fabdc21df80f0031696b0fbfa76de1061633b7d94e6a825c4681bbed0bd22cce2f404b2f53037dec6900059f4374d2f3be690c91aed9fe5681987f277c4de22f3ac46d9145df13c0faee65e79cb9503597c4bb9d346c7ff5b2286a6ed9b23eb12e7cd948a4a4c619ae86739d540a13c4bee0d608fc61dab0793f1b59e9e2ef2b5aae37bc092ca755bca6e7e8fe78599dce4f8ef011d7ea733c9fb0be8ac714b1acecd436544eeaf783431c74212c04275ce450251d71a793bbc852401e84b94029ab7cfb874cde3e9d6ccd5efee20eb5b2cd99bc39471c7b1a18a84e98f058a70722b7af6ca6708af116ce5e267658e5d09a396e6ca71a018a601b4682e603d8c93b425641f577fce9266c9faf1b33c30bbbfcbe7846ca2abc4401636235123b0a9cb380dc81a8a05b0f9fef238b297f1c74411b5a21aa2ace48c1781138a5de5435ebb611aee293a85ae9693296aac42ff962defdb4237c855cd5518d54c9624c0a38ab44cf310828a82f6ff5f27eafc493b64c15c8c733f210ea87f066f571442a7ffe1ab9937e1a0ea558fe91e3db047dfa10e2727f6cb79d54f6eb1c27f5e0197cf80b48d2457034dc025466b8829a86f31afd1b08518f9ed0bcc50a4b2a4577577b1e5850aa042151739d3843047f9fa459bd0b48f258452de69f5a14db4ed0f80234ef803fd35a669d445d1695c898ad2a9e11303e2398f5829ce966ddd9a0b45ce1f132f38f1299eb4bb9c3deb7a60ed07ee29ecc8c22d795ac389f0d9bb477e807b4b2c58d5b9f44c55da828d317c2f7bf75b898c584ff4617e98a40a20ea44862c4e6738c8ed8098d858d07f1d8b7726980002dcc7781bc7074573afd598d51204a673b91289f24748ee3de369aa099d43d3b004c62254ab60e3f779d80e876220d9b4a3aa4810c2f0e3b6ac4c48b882dcf02a94ee814b430f47477bbe2414f9add5e0116db4bcfdea397d9b8c994df1953e4bff15308469eefeb5df61e0efa9206da41d35bfe5dc02f83af08872ef4adf6c4d60f49ed556c5377a629dcd04390df554d1d7ee6f85e93705fd1684c0dd8251af5e33e9f9e76945452214071dd52eb63cf266aed9ede57b2fc8fc106fd7bd37063cd5e109558f179f380c7b1f84f86ceca8b2fdeff17fc155e4a2242f2aff6113a76e364d92cac7f395b5bef28e06aec3f50c4afc29e5717a44c3c11e177dd94a0bef8f8481595354f151900ab8a7225f5c495802695e20a68eee06d877129f2a3fcb6947a59d194f4cf49a74ea39ba9f3f871a270e67a67aa39ea084016c4276cecfd3fd1ff463fd107dabbe0f88f606ba6142b48b5d831c392accc2950862d984508523c8491d06c05f0312b1ba8dca6c123c8d4426de4a6dbe329d295ad5a68fad4ea436d34427cd36ad2660d90be70d887bc0ab2d06fd6324cb8f4a64e6052f324150b0524471a31b624089691991e36b256137c4114fe861e5cc02328c4e2ea23870e5b853c01edef21e1688119a0661d8b000cd842c20e777d5c46416312f3b2fd57bc61a79d03f5218179703ce69e2c422676301b94d7662e73b5b72e95e27fc0c1555e3f959011c8e840c82d143bba66aafb462b6fe91a3721a78de2daefa68a5736d9cab73b34a11174d14470a57193b48b654da7d0a720801421dda01d9dc82f063f1f7363565705d88732408a16adb4dce493d9f95da3343cfd9ca8b466d0fcd60e37138622f590fb7142bdc7b713fd377dea045d83e62b73860378cc9c7132902268928e7db82093ff8ee9713a626a8b3d244f88df2436f45d6903acf783cda90ff700e03a8fdc663249e28047106dc540a9410a4b9f525f52caa9ef20c075428848bf2b1ce5fd3e6de92eada9db861a35f259c595d455b51a890bd11841ec5fa558156d2e09867909b667ff69ecbc9c1834c919e267dc88920340bdd1194fbeff55767d34cee04f639976e3ffc96271a645ee4c1fc690021c75c3f47e59d28a8dcf78ad3fe188a128a10a9ee07a1431b31c32141c40f61d4890c46843762fc4ccf9aa5320b0f00a7c65237fb19dbc515078aea0e47358483e0f616b2f8716f4b91353dd04ef0a45f9d163f3cfc883c21353c5be2c599d6bc3bd01c90e04b47386482ca6844559ee5ff7d1368426da28889640325b2ef62a3e02db28966f4541bca264a4127c04a1368e80d05ca9d90ad61f7155dcd54cae416ca88fba68031c0d42f880288034645612af2e65a851d80bb07a9ba13804675e3123a7826421ddda4b908994ddd69968b0d810015ef73038e30f612beafa4b05224a08fc68bb5ee1b46884197ec463c3f75b713f50afb9fe1e5b05481ffb04bc61c403d0639f806f7031407aec07c01b2e06901efe016bbfbdaefc25f7e757ec2efd3faf627fe9fdf115bf4bff0fab985fa2fef0ee7b216a3fd2b778292b02ee9e12daa154f0ba513b49213fe7a86d0585be20b59080eece3f5aab1f0b52cdee4a2305c10d3f2f8114050dc6ef77fec1dbc8d73e4beab74734fa82fe3b90cc7c403e741ead1d88864427e03f67a7f78ab2769fc2744554df95b6aae03d159d316e6915516ba9d44d83f62bc87b8e54c9834b6d1f2b9db496f6c3ab6e702d1dc0552acf093da15bb5e52959cb9de3790294dd0c738a2d2c8f6867ba80e5d43d36196c9c0f83b176c33ec388ec4ba2d36ea62b70be61a475ca19bb156e3cd04e90f852c8fbfcefffbad46cf0e940d1464b2162e97f8d93a55a5fbaa1067658294f4bc1ea88d13bfff07f556a4afc38e03423a562b17f77922f70159233d803fe08ac423c29c579382a88dafbfffe674daa84f86c60a9252542b49be01d43ce0fff2f494d8937e0fcce2718c748b11fc4af091df845bb248f83980edca5c88ef9a83108fb84bd24fe66e66af1b32552fae428d32d928bd97f4c460d0e516cba582c2d8aa540adbf0a3157f984990c9826b3046a570b8cf1495827cb01780f28b58b1254482f238dfeebbdb9cb47ec42e25de6d43fe91e8dadd216295e688fa897a52241096d60baa56b439dad702aa1adbfb8da1999b0159f6e248e1dadf3825a9fd0a4c488248c5fe31ca5cde945c2f20a99565aa501f928ab75b1722c3c6e56c4f0a0ee031c5968142dee5a0886ed0bd8cfe9b7a06195dbe2d9690c9dd9e764dd427ab9687b1022e66f606f5869882b032f0aeff4273b1180bd077a687ecffc6906bf00493016ce91b7b306e243bc79fa49b41d8614ff84393d34a9f0032451420cf6648c2be2a17d891a78595d7eea974ab08421390addc272a43e914f8e299cb54896c4a091d100b0a1566748db8972a5c874385a52a2cf2c0703e628c59f6d91130b441b4edbe03df9c0797d218316232594b27475f80631ed421b706386ea4b5aeacbd4ad1e0a6c982d8bd7518e33cc3a72e77e5056533ce8a50371c697c1c6014a353a7777768f03d832128017b539d346d9b6da7babf483ad69e87a5e78ae6da95ac75c7b2b701473e8d554c7feda17b8fe12a2bc1d482bcb873ceeea10a378b668b2c90d800c2684fb7265ce8c3558093f14cd9fb3bbdbe1ba24ce02a08010c05e9da2d7bb05eb17b667a1e71b12f9fa4c41fb1702c01f8f12985d88ca2282969bdc7743c48d8f861feab2f0672d00977c57fd3b6dbde1c0917540d3c3dbdfbd5d50e1bbf72e269e49377661e453fca1ff2ea54458ef69ddb7b7d912e9157e02bbab0b67e0208b486621f20dab9250c3892067937fea8ffdb01763cbb2666e39da0683b052159b0dec5b38c23aa74ef523fd6fcedad56e95eff0a3f07c0e14e60ccfa19941003423cbb5516059fca68cd0cab7f69e281b4baeb2504afeb2b6bbf1d6cf0c2a17245a06365847efdf9cbc3f14c675060db1a9aa79ade99b1d5aa0b360bc351b9220aee030059493dcdd897521290450e735a74332bbc2f2ed71cffa01f29c6e1027f04afd873c6f901557c7db48250da50538d7ca42edba7ab64292d6a4b00d5fc32a8a6e01d5099d32fb7eab1c3e535ced91780c8d401a9273da3ec746eb785bc9265f093ed8ce53aa53003542afc666836d732d9d76ab406ac81e03fdbe06c9a2c44ca99b0d4a938d0ac3b7e62799dafed8885f85dc4350f0db0c27b9b478c09885b2814ff8563962911fd21acdb48837efac463691b84fbd52969fcbdf67eac13eb1378905cebf0a9e648df5a2dbfa28580424bda078aaa5a8c9ce7260015aa0f6b65095c642982397b2546fbdf9b0d8109915da64a02cf534f9fa6dfc04fae5e98b182fbfd8062b7ae9717850b3e9fe637a0268fa44471a3d47b7b4a0972d3b83b4d305080ed6dfb923964b6c5691b4560e7aedba7cdcd01570502eab53357d7f8f8b60fa4d50853fc419f3e9a666d195154d3801b743945773d4fc6dba093188591730b6b86a071891e883669b93de2c6d5a0854ab31e5d5f935cd0a4824d624cf401c2d5f347da58e6bafb414094b8fcc5b65c8361388505ddcf39fec695487da29ee52323513cc4211804348e6ceda8de2042d2bcd6be68559bf324b342ce9881f855df33fa0ce49d194dcc94a91124399949c0bab0e553a616d90365b2349ab91a0285be54abad37ef24100511302844a2c150b9a1f879867129d22dbe2761a5651e0c611bd70153f80757331b62036324681988818053191630a6344c64e8c35500fbd7a17d513580fc67a1fdfb7ce58ffea457affc7e5fd2bf692eeffb878ff8b5fd2c97563712fbcbd58daeb878c8f9542056010fe715a9dc1e28c8187e851df68af1a5973953f05661d77912dc61370d817294837d6dcb85b5aa5f6b9635e83aad1fc87bea5c01cb4329003f6bbeea0737865a21a032a737f181eec784cc7a702d8d43050a15fda4cad6da50961c3e44506ae216f52f2839019bcea4074dc585c337ca8c1db2f3ceccccecc8f1fa1aef4c9d87f7023ba829799a0467cb5c9ec219a9e4d34a0a5733290a43337d07fb47a5fe9df3270a0d0c31169fd840429293ee725353b51bac92c1a138e98cb0c5569036f21e0f8fdaaa196df6c8994983a07820ad1e021d615bea13d03f7692db4fbf18bd5b2406a0f02d57caf722d40defc4eef8cd83549d54c9e18a82907120b8ed96899cd73319aea921a0f67f829d659df21aa266bab8a88008bd4221812bbe347960903e1c3836a6106a41b6f692031cdf026d951489d62c58bfcf4c8161af066ca393785a11fb3786604357a6b118c16c00cb553c2ebb0ea3a42834306cee5be3d2a89501ddd99b2d8fb0803c08012d8efa791d32e4754d5f10b35d0308a9c724f6251a609acb1d2732c402f08008ae5712d43e0552fa262886357c1a1cb1e74a1a2baee29eb8c63497a1ed775aadbd88f42794f194bba4893758cfae2414790e2aeff8a360d18432ba8d8b88856ecd35b000e62cfed1db1a950178bcefa0b1c1afbb01549a0f5317b66fe4a88743722b719ed852bf4d85bf4bc109f720e10fc4803dec737a0fdfd05dadb5fa0fd7d4880dadacf5e2791170ef20d685f9f80f7f00b607fbf01e11e631f99089c9dbcf7029a507e66e328e9e1d61263bdcf1ec8ca5ebd479f8861fd70983a70b59bbee56df93b436c329cdca998ae80015c78fbbfb3c77222d1f8f47a5d0e7b8df841a9fdd9271d6e872a5cc5eacc4673ab12b6a2a1a343c48a678304ddc72623e585b0de3141e7cd74c0ac390bf552d3d1143bdcdb5ef4b62db42fae34c3c3f1bbfedbba3d40bb7dc735c707281fb8f2bfa6c97c03f2357ac9af6870de026d254df22b34dc37415b4297fc154d8f1bd02ed0257f4d93f906e46bf4925fd1e0bc05da4a9ae45768b86f82b6842ef92b9a1e37a05da04bfe9a26f30d085fa84cfafba84be62b2a0f3319210af7ee7eec70d8846d08a318cd47a25fd5e8dcb59af5070b08a2a6e37e36a15eb93485ca6fca82cf3d3aa373ac8d536129c7e8c3df062d15fcd74edeb73293de5b57d8a5f6c72ade2eb13f56717689fd6915b34bec4fab989df90344e5e545976b8218336d781fca5e87905c13cad1b4c8c2f89919f2a72c6b189ddca241027dcad4f4870e02b1f8863892d0c13fec42841d369b204ee01b17ca9aac68e3b669e6fb525ee4c76c79bc8ff5898cf495b0b9e8b4a1ac4c09feb17338e5584c94049c6b95aea7ec4c87ac1694f0516537245a3632ee316d88a6ea16523ba44f4087723731c3d2e329f726612e2e27d1448d303a8486542b191ccec7137b03f892c7cfd5b145a023b0a3a9cf18c87e7bca263cc5a7ad8a80c84d03cd671767ac1803c7980eafcf4cd8585ee24906cd6e84d64fa5615e8aa87893e980b2330d12fc9a4c01755f96934d1108b9c182e23d2907e25b430e31b7341aa13b3a34369209f25e347191d7443328c15e00667f74e6c6ce18f0cf2df3684236da85a447789b2d579a08d1113f42be06a2bfba1cb73660d681213d160635b16653bac25d878eb0d700b0888e337f455a94e82cd375cb268684f057d3df01f3803017ddcc75d00dac19b7d43f942887f3235e0b21f455c62e63b1e7a55c60b43774df4957f25d015374549e2548081d4fd9b50603672b08b4eb224bce720e2493aeab7a21fef6c2222f78b5f7efde672cb7158ed7c96a3615595dec7279f167e5395e36d9e6f73f56dc3305df28165ddcc5367d4a08fda71f9db077be4256b56107deb3cef674b4ce6693c9c9fceab7c98f1f3b2fbce978239bbd75d287fc3cbded797c1101ce6ea71f19c865d7802876a7bdaa88d8f652119dd5baa9a2002e30f6a8981fb90158b8b2f4fb02b5f48fbb1f20ff84a3b95e9061f4c706078b62ff7c612a788f2685baf0717c799e7827d25063479862c72d069fe0509ed8833f8832ee79f8856cd16c850e9671a65c62c4cd31ac63a4f8aef77c2e75bddeb97adbd6863f33ee49f45ab4c63ba6d284aa9dde4546ce90a026dfe331243a382def27812b632c33c9cf1c1bcdebdf13a713004ced5d75a66ce25510f1cee0009f1ef5433b6a5bdf6a2258f897276db1b739192185ffeecde4a3742e0fa0ea8099690996ac31ed15b3ef6f11f1bc2cebc5908e08b05ed9472cb47e25555a91ecca046abf30a705ec5d7f091adc956c612820a338b826da1e001c9145df079aaa6f6dfddd21770b52d1b26f8da72f170e10269c3d66d9fddd054fb57174b37cdde234594acc1c8592f09f4492e43928632337265083bdf79799690d5d9fe7c2a74fd9d3f318c818aeb5a9e4994346d24394a3253381458e8079ebf347356501130c5a28915e4d1d7ef543279c9be0be9e48df59475d26b09dce01ab656bec5e7f408181616f5407e366bf3abed893b1548ed080c7d8fff10657f144674a855961a772c2a57d49e9afb582d3e8e53ef5f221549f2b35a074acda3c6d48690a2600611f15102c2577ba0210d7510f9984129bb94a4ee13677bd9ee54f308139b371118c4859e0b3be7a7c398e55e96c96fbbe2af42117f68c99e3ba94715e07f7c0a9cd278a61f8352a4e644c8ce0ebdac615553912331de6d36af941e6323c88479a09db56c9ed27d9a365fc71118b11502ad3a2c5a825acd4d791af8371c930635633434bf8a4ddf2abec0d8610a36cc0ebbd990d4f31a537aa5af05fd7f138822559acd942c842f7db6938efc87e201f033668dd13018e6886c9e92b2413af2d82dfb335c8ae4993c57cf0465d4746134d04d5d94e7ab694c12de03dc37f81cb0c4a030881ca1af17a962247e1d62aed1c63a56cb6aa7daf353d822411742d2964dd7fb4847a35312e60e4611240e9e38b0ae7679a8341531683df767537c8ef6ef68c32a79111fa83589daebb30df42e19c0a53114b3471db27016aab76326681475cec6016ea96e522ce3f149326b74b0f0104e502ca08ee665b40d6554d079930d6741a0c486f6c9f63f75cd30faed5dfa40bb69c023e260baee07a6b9880e8e0de1f226cf9c642e3c35081774749772ee0d7c71dd016844ba3e21939fc9dc5f113d55e07b7b666d3c8a41bd97b6fb9b79429a51438067806590637aea8fc8c15a1f2878b45c5321e98fcf8f479f543107e508289124af86ffedb672e93039abde997a4a3868dea39f424c25c7ed973a41a3ccb3cf3f72cdc2199238c7df0aa9bac7cb84fa8ee3c7686ebe693ee0d5570d134d1e5a2edf7b5db77030ab55f48e92efff6ddd0e0f6f26bd7d7400d7a8e0fe4f8c092cfbd19b8cdfc48dad01e69ea5436147db8243bd329d91952e949a4e7bcb0f4851c75baad51674d911577bcaf26ff62637893db77b41d51d4837ed447ae8a3d3d1915b4a7532d57ad7cdc724add59879dd81375a2ce919322a326aafc2c3a34eac49dc83ab2b2a4552bdfbfb890077193250d02895ce468635807cca4c3f6dea98d443bc33d7fec6267ba25d1b085db7bcfe6f1c05f333779999306d9bd02e91afad1174e0556c597c3f010101104957f391a51d9a68985e17fe21545188b2a33e148b167877acfabf2f34b219d0abda772142a226f78db7a3a8504f326ee6a909d49655fe2a4fda853d9ff0bca859ec2ae2e69b9d1bfa05cd89b34904bfe6c08fb80af77bdd8c81a658f6d9b6318f6d2b7edb96e9f0efedbb771111b75914e6dcd5c7ae6ec370d32db3418fd6d6a18abefb6beedb699c43e1e1bb3df12c3acfd3fb2ca83d7ff9719e1931adde3506634d8bd3f17756a7b7e36e223be51e3b9cd647a1cbd79d9779e0d3334b8e1006a96657cf3b35b31c778d67ef906cae90b9f05f5dbf6295f0c2f000bb33dcadb9e6501757b189e92bad108778aba3da9571dd36f70930f63b3018627bff4bd6ccc16c4caf7e003cdca4b6f6ecf5b6fdb17fac05af9651b56be95df3cec5bf1dc1f876f10589a950f9906207fe6019175c59b7585d0aafed1fb9538d28753cf38c1165c6cb105175b6cb105174b58021296a8ca8ddca56d1f1b23b948dc2eede3e8fd3c2e7729e4405dd5a6527e1f8755a95851e5873562765d01248e64fafd6e67509c39efa6c715c56b92e735c6e8eea677d3bbc9e4421e9465414366a0f8281f3293ba916a307d6c750ae581766665307dd4818bdf4ae824ec0dea425aa5d243495edbcc8d25520d5c4a8a0a4aeb686736e274aaf4ed6d25f1306be9771063163bc3037523ec0da73b53a2a6e71e8543c970404b1d173235ecd7174f287516f0a196fe9b1536ab592bfe7297ff3a8af398091793289e682209879a1ed76635cbab974a26520da577194aa592d7ce631f262f878879a9c59162609f82a564de6a390a4a8b7e212ba1caefd287adc9bf66f5e04c6f3918d17dbde52d8f383dcf42e9705e0df7fe91a5d8982896860d4c6f7a2e762a1e0ff1549437c5ca5244b13496b410ca054995eff25c76031af26647dc91e988368b25091a7aebc52e57abd5da18f932bacee39ae2b98f7bf4220d23dfc80e8f9b6069c82f799eb331de424328a85c58314495fec3175d22e59095f4f56bb9155ba59df1ead2158548a2ceb21892a60f9b8b6afa52483598de5f516865307df14dd3e5f22fe41c16114a08e771ed7268707a5c51a68c7cc6e121a47cc93925cf2b97f5ec52d881ca7d2db4312f25b47cbf6251b41abaeb6b8c1aba2bccde3f5e18d3a77ca6277d47dc7714361255964c261e6235fd0ea66afa7e9fe4c51a4935a07cd124a5e97393bbc9d43cadd5d4a12c54cfb74c2cd6f624afabc96b16cfc6c856dba0d56a75500b610a94922a7f073974f097077deeea140704e5ddc47513a6af79b8c52d6e71ab59dcd74054c6556e848561d124cc2ea81755ba15a2102b5c1eb431f2252907e9596040a50ed247e2ca4ef8c8f4b9abc17518eedd036222915c8b2a513e0f6a50724f105a4ddfac22553e8b75040aaa7c3741952e57e5d030f2bb69e472b2af23b9d2cebb224b3d1a94df75e5243bb37d39b42f08cbf8459f52c7c0e2f625fe56f71cdff1b02f661d71aa6c81057769911103c50263e5a49282424d2552c76dda7c6e6eac05cf859f5e6bde91ffcdd39ef33617afe5dd7379163ceff8c66f6eda1bc755fff23b87d4c5e9b3f3e7dca3bb772c782ee848f6a2728b59f076a80047aa81858fbfb1f01163e123f6bce342c7233a3565781bbbc4eda5ec31c982c73b2e1ef3708fc748d88705c68ac7400dca3f79dcc463578341424344dc796cc447eca46dbc16d230f2a7b3ce10f59f8dd3476d94437f83dd9dd7ed99cd99615a966933c37808ebb0241355a7533a9d5ade61d6ceac0cf38bb371e4fcee9f3db339334ccb326d6698dbb4340c255b20610b246c117baf9b4368285f3a501d0d84c88c65856df343f9e84764fabe6efb3a9d7923a4869247eac81d998412214b0bd6616404a0734f2586b704049646c6d4825850b3692d27278765357966cf44327d603a18757e9395e3aa9944cb899f9683ddc823cc460e79f2a50d69af1b5749a22e729556e4309a4da7b42bb42036a5052d288de62ca21e5792004a3004e80840aa918fedd0192f74d3eb564676bc8ed560f3d8a0ea170d692e205709add40c3502a9b9503d901b564d1e6f0c3769ee85cebd96cad1e8dc935137ef88ca4bef880c19df046a06d018557a47543e7eb3009d7b2c95cb32ac26a548839d01a010b302c51e87ffc058292bcd9582a34e695b57a373ef545f42a62e86142b24928e59b54f8b31050d5372725c858272346de80d2a0547be34970ba9a1e6120263090d53723056c5be70ca1e15a95249598191806e124143390445c23e96957ccdb5335d0c232396154b8c2296957c49a156a960da2a48478845d463e4d312d2802611cb4a126939aeea763a1e6dd521d172ba241aab5ba2e5744d349f2e486b75421a5026a3d399590ba926fb345736a7ec368d3b4057da3a89a02e24ec4bc9e96a90692e2da8552a3add4eab5856cdb2e2a148505d926e49abf6735fd835a9cd02d405b1b83a214d68e5aa1351c3f49f8c744e4ea8909e21b5595647b0b4568a00d51523b53f6471d54e3192d20229074bc5bed3508c213001d358aa8a9752a461fa5d20d5685f4a4e0fa8f6d8632f2bf751a9655b023af74a557a475a3eb6bc6cd22a18dfdfe2b1ace6cb9b2b1f231b32f2255f289eda3bb57f55c38fe1c922154f1e799dcbeb5e0e235ff235d4016d4cfff4ba9cae48b7f23a2355d8d46e774cd66ddce889503628d7d1563ced75f2b421520e54edbe4e47e53b1aa4e4744375eb8c3a269ca0f6f7775cec0d2d8769f4b3186995caf7b3ac543c0d00a41af969aeee0af3fb3ba2aea853b2537167785ad5ed344c7f50909010119191937e174839566a5c7d5be6abcacfc9a75eb7e5b44ae5cfe94052cd7c90a42356ed0540d2b152b9afd31901953943b59f03493174a6c9dff86584a89cdaaf496f7a19cbaab9ca2c373af7340574ee4d6e019d7b59adddee8c0b35955264bc4003066f46912980010e5003012eabba00e880e6034a5b40098efbf0a56e78d2342c6af2b34e88a7e9fee3b86ec68c7a24d12053b5dfedbb4e7a2cbb26c92053e367dacba891dfc6b20588cf7930b600f131efc434226bbf7d5d83fbd1e8b3621106cc1d5b3c3d4eb22ccbb22ccbb22ccbb22ccbb22ccbb22ccbb22ccbb22ccb32ec67d6cf39a118866118d771dc478f7bcc0b5f2a462b36491f768dbb375e9846062a86a13c9755816e832942305269737b29e539e55b0ce4c87e3ef8c2371c00a2a8e92b7d5dc317520e07dd5194fac62e851da83b788ddf8e1cd0f8e1b61adc0e8703e18afd78699181d6ec69cdbefd62838e1581a98464df12d8af12eabc3e6a28ff07aa4aace321e0682a04c7719b227f914c0ed5f5e6102ab118638c7348763abde6eca68e8bcbd01cc2ed10dadd1b61a211f573080db11dca5fe8a2c385a270f3bbc0104208539802d68486eb9273528a42fdcff678b334fac39800842c547ef5c4b02cfbedf8366c78c4de194547d00eb640e4641bcbcbcb524a29a594d279654bacd41203e6b1a8fc1d60d4205c8fdc4c1aedc369c3f638ba46a77880ff2814c5c1e36f39efe683e02734dab711113be591bca0d355429600c2fbfdedc664bfdecc6cfc9381567f2fec804d0de2853f5eaa7bd863fb88c716c3324a33897dd6e0c68dcf34fb73a598a2faf02c7971fbb21f7f69f877b8aa65bf9607c8c73e02fef1e3407c7fece3c01237c477ec39e02fbf965d9a28d0f02b93eafe48e1277aee717713c1a11a942e279b17ac7685b0ce0494865581bb8346953f43837207015665e300557e47040db7b5c355281411344455f9d8d71243f74defbc49aae91a945cf78e19862aa9cac740a784b48a85d50d9dda1f23aeba4243429865c48b1a6ed1ea6735855cc6421b5562445655d6ae3a828648346044985483f6d873ddcf39b0df1e8763ff35d31efbe6927468df919ba7e1be16ec976646c3c86fc19e2bf6810dca9543560aba3f37c8a9d807c16a3f33ce148212ba659687a4edc36122f3c70b139fa170425005126bdc2635bebca1c19823e6b031b107173494a9c00f1de253606fb8300dff6476c67b5da2b750e34b1c8c88162f40e2a946c59ee9c660157cba580e1b83f5c08286b462df3a605f015761ff83027b0307a681cdc7501846310cc39e9b1ee378e1c0010b6a178831c4686393557fb934fc675733393fc8ac7263fcb150033566cf4357ed8b1bb30127e5883546d94e38be60983f86f5b27364676f991d33b8bb7b16831ad217308e94cc8dd3a0fbca48b764ff35be6bf916f94bc3f5ca55ddf6b5c4cf590da2eafe183d31bd8dfec5154ee8ec668cba3f5f0051a3f378ce6ad07ffb81b2a620a446ed0af4695063bc01659cc67112999939c618a30ee3304e17abfb7025e0dc334c468f913a814dd153f7678950ed77a1eecf922475bbbb518beaba066b4c2f88f95a8cf3b7f6e003cd9cdffce8f9174e0ed8d4fee9612f5f24b69772355831de61561320ac544cb33f37e061244574761ac43e09f69890ac688a16ab533054ecb9e52aa6c19e5d9d5a9590e9b3c4a8aa60d8304fa7f607084215a3c1de3b7a4fa7425f39924ef113aaaf5ce53798e3c419602f21a34ef563f1b196f87593daae6faf811ac4686caed8cf14ad0a43f58e1dd44150ec33ece325d40a1af6cb7558a71fa712a02e144d60edb46a694e95073ab19342a8fc1a0dc69ab830f15d6a9c4103ca2829d74f9817bbb8717b59c7617abbb918dda5afaf73ffd21d28b1315237c9158ad4702527c9158670e2c889a155f518c1d875ca874e0474c3d93518a46b40b119b7533ec45fd2d66ab01fc9c6cdb5c5df6952c4438e1b6b10c95babf6c72fd3d1866843b42143e690690433b38eadfedcb14586afc6af5f7624d504e9ed9a9777b99f4f757ba8f15bfad0ebbb8b3297b1e0410e0f6e769a40518b70a67d7107abf4a21c405d120d5b95df6e4c24751d0c9322d73048d774356cf54152f7a70a271555f7a70aa1caa418b2274fc28e9f3bb987f9101d55337d880d720dd993274f9e48964ef6c4798c526258d631efee3233efeeb2a671dbe6eeee5d477277f752a9c499ba6904dd654adddd1d05254545e574621ec0ce224837a03e9b4f830cbe9c60aae3d0f54150921afeab53c2413040311b3301e08d0de4211fb6918009862dbf06bdc120a04e42d5399446750738d842096ca36e8b638cdfb28c6871a32a563aa8a288e3806e757faa3062abb801014b9541c3807256c8a1a626acfc986841e4d4580821082651b40c9834e10465a9fbc3a405486042821e2640b810b4abfb0324851350aeee0f1013420084458c4041a8511569368a62940f01f4442b0124834e0288045d033aebfe0011e9163d7de143a02422f701256511040a238a3602153cbd032a8ec4f054978a20b2ba3f5490808a225a0d320cc33e1a838ec04a50a495e00b207c2e812243d5fd5912832548286989400bff0abab9099beee6eef61370fbd212811e78092c1aece50bc1344b48207bf94cb35fcb0b45343dbc5044b3ad80bed7fdf1e2c7695d13133dae9e56dd9f9e9e98ba3f3d20a8146565c89808ba3f3d40d4f8eb30dc32fd025536c331fe0468fce623d112c3be25a494d2a3cbe718a38cedddcd930323ccdc1d021aa3a4f244390c9b736a9a46aa89cf6ddbc671cc35dd735dc7dff177a6e748a41ad273a512f65b439f3375d144bb8d349f43e92611ba1e374562d9d4b694dddde5985432519418258d2bc7751e574e6ee56467f2b8d26e12a1fc1c0a69078e07af2735c83ed725c9e083195999237e080a13429d482319bf2f873ac5ad7648c7553dd4e3aa18bfef3eae52f97dcf7115ea97e5bb0a0bf617b1a93e1ae2429cd8ec3751abdcc6f7dbd541fd6aa11e729d8defaa953f3d90c3b4e977fbf516c60aa9eb52ba53373bf752aaf48eb490a814da91af940f278a4c6bb371184dd3865c5c8cdd3af736468769eeb1e631d675ee754a91941c4d4697795cddf3ad498a0b35060b865c451d861f5574d40d9d3c1929b1ced4b9176b96916a66a6699aabdb3d59515e07e4721819dfc269f0889cae48178591f695e7ecdcd09597c308354ccb5736b96d9abef67671df644dbaaafc534ba19d7b5c2d7927a25391d191139c99e29392e3303dac9591949da982d24deff43a099d884e4527a386e93fc2735258293a2939614a4e57f734a482dab83a5795ce3dd264b50c08fea350527ee1e491c16cb01bf9924345a8d7c6745dd775425a2cd8df48826a83328e8a5e42444374a0eacca66469416d8ddb8282fc0bdbc82855dabe44aae9bec4cd215cc3cdc73c2e05635901636def7244e5b97659e1ba3be3e29ea9ba564674e4153c8f72ae85165ae828ad5ecd86611206741ffb3af7502ad739b1e15d07d6507369da1cd25c9a6bbea64e833b2c9e1ef99a5a4c24f2258f64917cb5265f2c46fa6bb47f928e203f8ee65048c0a24059829c8c18dd22c3a507a0121367d5fd16777769911103c50263e5e452fa8e08e175c67c409b3ffb8176f7d749e6cf2ceecf6fe3675f0ce2753fc61823dd985d26fc3829399df6c6c6f88e318d1bfda1ec2ae51799c67e7cd73666b7e38cfc4dc9ad458cb13fc8fca1f1f7475799638cb1ab43e0ba9bc147f5ecee6e1b0d6ec7eeaed1df5e70bba9de95372422a47797aaa0fccbfbdddd6d450bccdc464d5499f9bb894d037d9db75d0fb5ebe40d15b5c77fb8c97a9c642ca34c87285b096539dddd5a90707a9ce8e4947ca2777777777777c7e6ee80346541609b29b87dd9ce5b9f27ed09d44683fd32cf63675cfc7967e47344980a4b546e870d33c48086322d1836a61f2b426536186a3800869dd1b135fb7eceebc10307ad0ab4e3e1aa24346caf6b100712d01db2d7d11b0efdaafdb7b50ddbb88e808a5a433e2f1b9f9b568ecbe75be0e603e3f0674ffbcddbc1852012abd887a220a021dd3e4079e030b4403f3eaf568f4ed197cf5105c2c10b6ac832861d7b41436c59c2babe9056a07463b335e9063f97450852770a5d5a46a8fed1a360fde003d57f80457da188a69b084faa851623ea08092dc6183da6c5aafd1d63f4e2c7638c31468f9d7a690d8944a8d7fd690227072f58829452ca8e316ed749e02496852ea97046c5917d3d1ca67f9e424aeb17ce9a1edd6b638c182986af3a48198b9430186576b22502174c56455afc3044118d1b55ff5fa12494a0a8fdabe40ab5bf9bd41fd5a9f722a4e862ca957500b57f955851fbb549bb1590c48d0b6a1084050f129a8ec29107babb87a0dd898a1abe24b1a9fe717a9255f5244ea8aec409b0c609238a28c1149290850a180a545822b351c3ee0b2a7e50475e9024c300010a202880a8ddeeee6e3483ea5d757777f7169e10aadd4eaa1b5d517dabeeeefe037555a4e1aac485daa627420c515f602302215cd0430222ac1620518ddcfc3cd1447581cb6128cac7073935a4af1d1189c0c1086480831434c007383f3d48d2440f6aacfbd3039f1afe1594a06cc38e067b8fc0feda0fee4cfc7e9855ed6857026a6751fbbb520a68fc91818de9dfe12a0d304c7f179105086a3f03c1c9f855c0478393091aceca8b82e24e34d0ce90ba2ba580cabaef3894ba38f2562fa9fe19b36c4c5576dbd424ddea250f581aecebc18355daefbfb04afbd849c3788abf21fecbaaf9792905d4eb51e5b131febb43c83929b56123b264cb39bbd9c6c6a6f2fc07842b8f8d61cdc962230d3a6b63fc995818ff28504fd026fc3522ca3abc6a70b268c82c1b95d5ad11b5ff6482fadb585f5f20315069c38cce475e2769d0417fffe8ceefde409c92d945b61365b22ccac85a50fef07fa4f0b1c18e4c1032bbcc1c82b983b3003b0df7a4505e0d462201f5b1332cb5bf023be3b5bb3bdc27d49640b6e53112ee69d5f5e130fdcd1d5a8a738498019477447bca81eb79fbbdecf73e8aee17ce0ffcfefd08e61dd1fed42aed5b7bf94d16d0e58f25e0f6654b5dd0fefd9091547e46d263a7327ff4a6b7df23077e1f9d32557ec6e11cd68f1c185566de1a6f2749dd1aa296664b82f6472712ece343e0b865d6fe7607f3a70b9a5bb045cb3fe7949e8f0667f021bf1ed2f321df47b78f0673e891838fde1e3e6cd8d160dfa03101ce49515bd403ee39a45dca971f60e597da1fc19a190c36d8ccccccfcd2a04b6587e9de8cc821bae97cdb0ae8760eab0a3205336806cd293119df012da339e14d7ceaa3f8f3af4f8df3b2645f42a486d493e05afcf7b4a86fba80cef93e3078e9acb3dd7f99193d63468907dd6446679d4d1910b461430a2fc2c9235ffe72ce89cd29e363534e89c9084efefe25424cdf82395a652ca10bd437b1f9631bccc3300cc3f886bb6d84dc604ed3cf37ed836d3ad5feaace2ddf20f18d9d61d999583d8aea7e45757ea2eb82c6e71e540e9dca9c48b8949b5403447ef61c8661518822222caee49e9e4e21e9d4fee4c0497553f5e721366a158300879320d9a94e440df955dd470748d490895ad57fbd396fee1296a4ce2ffc9a838f1f0dbaf628d73c94c3f86f49d0f8d18904a52f2b3426801cb0e365078e1d3e3b58b2dc1d381ce083c3013b70ec001fc70c3244384286f9893f3bf3fa6783dc97527ecc92254b7e1eccfb36744afab7ab988617eca136748a39b4e13c5fb1883935920566a79a144394fedad2e882548969dac603a669df9cdf8239668d75871e6a5c71fbc201a1f1c349833f7922039ad8a8d42d1646410a118d000000009314000028100a078462d168240d1459f40314800d809c4472549b4bc324c9519032c818030c000000000000204034180e008e7550c1213828a81ce8d819bbddb2257e300bde7bfac3c0964cf2ca1a8f42b0bdbd68e5835e62df8ca06b8701ee45c21d1cfe7f1abbc9c1145a18563e79210411346bc7414f3f40592eca68bf5af840f21435c7ed337ce952b4bb2667084a29359287a4f3fbe567d631e234af15dc2b79a240f9b64c9d225e0c3cc532f23edf8600c308ab788ecaae496471831f67b92bc5dcdfaed32120800f93f2076a9671f59b6bd96ac1207635bfaecb0e623f08cf3959a2f22548b82f3362df8fd7df631490ab2da57dbde1f621b5ec7a468ca648e36a635848333b06278f6341b24c80a672cd649ad63da5c934d1707ada02c41e221223447af3fb4ee15efde710e9f779f0cb222f7d9e4c858b615eb6776596aa0bc4773eaa655fd3dfc0af72cf3e9487b1014926c2e12278a96230a03f05229a6129006d37e3685524fdbbc5af702a58b5341cdf6a262523985a80f2785ea9597b816ecce51b08173eb13ff3c0183ecf5d3cd5c681d1d55130633bcac44464b4ba7238d2e2c754efb6534cf3db5915573c07623285854f8a05ed893e8c73e20347332a4a6f6de09f276685715a9aecf0edc642edfc1bd90e841790fd49f478733284d04d05790285011ef1e88c04cf68888fdd07795d403f3c2153069ac84ba39792968ad721429af5bfec9610caebd4009d6255f09bc909387ce04f95a254197acfe183a8c2c2071464bb65a34b9c197b846145c698e1e301c9885c69844f1ebaec647c21eee2ce6610f7d21278e7cd0258018e1ef62550e7cc020a1a333ab4bf9c196314208b361635cac7670ad1ebde6d9172e98c7c73ce54b09a5bf414278b6665e5d53c8739c71a1750d1129b1853e7c49d652d4117d06624ffb60d1e10e98824fb4ae13314771a3d3ad6f5486c978ff39ce9829fe12aa8a5171a25c9af3c95bfadde035b932923c2f01257a27abe1c17c417c664b373a65d4c0c07a233c72e93f64d9c391f0ca4ef9186700805c4eacc764a96b43358a9c9635aab614cfe57d6309a9e3a33b0bfd00ed1cd0e228f7bbb828665cea1e807164e3c872d7f0569c1ee870386f77dd31eb97529c1b97294bb0ea4620e17fc7776276b58914ad65a44a31fb9e105eaefee0db2aa243096de309b6fc63267df7f3d3907a562bec040a7853d0731384564c89e88b1943a77d121568dce8a6e2ed46887840d0997f01b5b8056664084dfac2ffe0a97585e92931a1cde7c2e26e931bc147c17748fb06e059e4c0fa29153aac39b8afc36da2171b04ec71f70d999effcebf2a8717661b5a3fd1cf54ae1f2043ca4ff22d39c2ed85ed604759c946d880896b092276ab84b7d0c787e701c7940535a810bb562c13c553c7511b5be76214ded605aea0b8a472279569f419b7ce4b127320eea4e0b214248d1bdc823c5a69f2259fbd0609d8a31f374e1d1a622b633fdfe924f5fe76840b47ac0323f298e5caecc864aa0e188bee449588652699a560895eb5435f0473307b73be57044c3d3dbe49b06229c0b330bfe958ddc670e4ade679ba444e34a0521e953c3e5148644ce26dea1345d2f6656659ce340da165e9d70eb25f7e1d88088f32703ea25489cf5467b8c37668827109514d178cbe58d4b84b79c88672ecb3dd861cf8318691cd570349d643b29c3aa7cacd610b257c85ff8cf5de0fa5a031d85107aa9aa768c61cc0f19ccb2a9667da856e65f20d07275411d3496a5bb0700a29fdb53023014c5b1b7a826b0b748d6640cc6eb2df8c14e27e01e979d85d210bc235040ba3bde75ed081f0689c01df587e346827d66f0d80c9184a85d90203671e4a0ef2047a523285820be748301442f0dbd73d7378040a09b350322c24bcbb8d84d1724d5fad0dcf8f61a4592bd0235a422128a914aa54e512b7a2c641535e4459c0dcc166f2df0809a3d0f5bc3d60b5d2f3a782b713a2e569f2cc2ad673ec34cc61ad0d95c2dfabf23ef46785ab9a9986af267c90abc21b75b6543731ce6bcbaa74aae850a6bfa2f03256acd507215d7e58178c6718a1009300c5f008a3af1dd7faa0362edef2bb77e2c09c8ece14bcfbd7ca2a96286f65d54a1eaac33fa675054a994844746dfc497d2e71ce34b92c531828170c0c4f2999069991de8f36c0920ff516c7d538769e0f67cbacb62863d340f27ab228270c526753c97303a774e3c95b7ed8ff2d765679fc1fde9122377325a273001cb32725eaa32ddb138bc455aa1040dcc260bc3ce26f73868bc6fd90f24eb77c06b761d1451288a978c43fbd42cb6fa33f64cb54e2fcef43f11c39d6bebcf02905f03d0075666331ef4dd196eea38dc6a4fbf14ac8d5f3d4dae7eb14e6f170c4aa5a574733bea90ba300846fb8f77652a0f78282080d1da544284b27b0fd7cbaddfd00f9ba8fe12877213a02dd70051b068a1f1e554082b8cfdb3c45533aa3c191a2bad7b54c1ae2c0a77af7cb1a359bdb25792684d18d68fa21e141993859ef3d851dec88a7c88f477abe3fbcc8e0857c01734dd27e83b0c5a0f325c0112e18061f2ac53cd2ae14b50e433e8cc6df0c01aa6ae37326866cc2aaade568b2efc62709807786464af494e531a61293702fc78ecf495bdd0a3bb6802b77009f8b850134040a3ace5b4541b5458011b84d6c8e5a029d98848c3ddd058bb8c256bdc46fc8c8c1eaaa68c5c2bd333ea28d2c4633067d33e41fc0f2272d230fd3a27acf3da5dc8bd1e824eb2b296407b94c63ce1253eb82e45271db8e8419c61068f1fd4cac657330cfa294988e5a5781d44f635aa165f89b114a1bde67fb8c1842428086164a29d980219880deabed9ac57f3265180886ac3b5a6b44fafc6c75ecc9313b2b1d506196232aa78d59b683d141012f1fa9113b3380a2d2c1d56bc75722a2e2599dfab1511d5dcf429fbc8b49dbd6f9306cc1581a509866946afec263b8c22e0e087422726e84d3708e3c86ebfd8aac802d7179bd6caa7d86086e6abc4649a882a3e78a3d94964a6cc8562830911136ad1d5c89bf75784932d824976f83c222cd8a9d2e82259dc3fc9c6a22447be0505bc96cd41b735c27899e55a93697109b3eadb23a7a5e8ab5ce1419aa101a7bf884197a918fdb74b069fd7631d55abfcba2df4d64c8f8dd8369d76c49743ac06c9496dd1f47b962e95a4b6366c82623d96eb81053cb24afdd06f0bfc091b33b8d6436d44630162602e60578eb7b9c00e48c1c6180f5cbd6c870dad1efe85a8192551ba653c2d39885e3eba06a46d4d3085d34a9aa7809e685c7a7203381689ae895c93ebacffe1af3ce3586e391861b7ff6a5955c2d65fd37c15ae3cec9fd3ca19be764562e3c5e40a676bf1909ac567e71812be714fc2533943145e7d84b411d4e6af598e490a92312aed362e32253690b34167386103c304bf45a3a3e80e26d02d9c776c3e231dc35db685d79cdf0315d4843ae9a18fe88a4669b61c882c484b28b65f23a45d73af79c9518476e3886ddf492e7943b7ded0e7c134a5296e630134b1e0492f3bf837eac02298bde0f400378185e33cfc9a2887ba63dd6018d92c7eab7c5ffac4f4a08778a3dfa5613c12ed7954fec3aaa8d29ea49ac835c8b1dad456711dcf96ff2a4823db9449eaf5d47a2a44a030a2845bf4332b14bb78824bb4551e1b8ffbea249f503954235ffca5b209f3898ff226099ce585187704680d986e9841f23fcfbc5d788314ac5628ee714154a3536647fcd3120c87e3df4d709bb8755aa33bac549de404d582f4844be36a15bb34f532a861c91c24efd220a654b4821600f314fc3834bbe1d94f873f78297daeb4818653a38df5c334df2e49ed8ffa8ea180dc4e5b39c1ad49e5d3e4bfaef386a703b581a7c0265bf28b3c0536f6517ebe5483c8aceade15c0407c2e626f519c9ce160a4d7e7bea9f8b73d347dc2a1d4ee7290044c261ff73381255a9c8ab86c76bfa1a5335697e09046a024600c0c5be72d08fd324b1df323f34a0b3213286093c6c3af4ff1e16b3e65e033e8ef780c3510cb1df98c3f184dc0e9189eddb6ba19a4f52db58e827afe788de6e8a4ced51c427698fe33e43ca08d00ab90d9549ab5c0a4a1dcd9b2faf214c2cbb30b0170f1de8d535d4f14401eff118a47fb083117f7089ccd7c1ae555259e2725dbad1aef30722c4c12ff61e56f956a4ba970fcfcada26e19ef0f01d66458b41bd757589dd0674e4537a14b603c42dc635330a09a9497a5181272145142b5075f7842137c2abad0c20b674d9e75ad8c9fee3264ea131ab893e8110faa1053eaa53a0ea381444490a682bb19808f0c92d7b7e5dd1ba2d1b83a466482a0062f8d82a177b0d9c1d9e8c54b15c14284c54200586aef61b07a42521872fe42d366df264125323464579610c9fef5af34d22c45e3132fa2f9a7b000a2e61ef884d47d94f035e3c458be62c70b17042dc762b24a72bd0382abb1a5a615df1a1510087185ecc07c8e24714029df9358870b73fca1379f1fe4e171c47bde3a7302bcabe5afbb0480f36dc53483b24d70b76d262d79a49fc5d6bb100ac16f7ef77453334ce0a84f319382e80f9c4b0b321e539ec12e92e2792de6ae3fc4471e8ba0c07914dda789f34f011ed4e8d6fd4dea5e6f05070f798101a7237d09f0d4002698f507a942714491c20227883a943e08e1c0a5bf897c478ba38f5ee9b38cc8f2d20102e2bb49b10e1e481afc3fe94e1c1883a27af45c6cadae6338fd74633c89bef49c768f281b07585b762b49462c45c4342c163939b3665542255b26bde78faac7825d5ac0db5015126966b9dc0b67a2d74eed66191e647a201ae69d83f16ba4b503527a5a901614528a4db50260829aba72d40e3c41d36c49078494b0171603670580d881e3d6d2ca1059df8f8020ba9ef80b6764ec6a1f74f0126b21ece5b537a4472bf5d022b8a758e9d59c244666b1f049f1e24b906b15234997c1a36690548aa432528f2b50200295047c8f223afc4697228e73dff7bd2842c41788ce498b3cf3e2e6726ccb6cb4d96a4d8436deccf02757071c5a162dbb707b26e7a10e02b0628a37cb776e40439e233238b640a5e43d3483285b1376398fc990e7f83994b3d7d663c8661b22534e0b40f3bf8906d1f473c792bb1009ebf17bfe59a08007de648b650e2690b4abce39ad0b6ff86e637a30428a68e91d8447eec0f53f6411b251f2763b05040f87f9c30cd630e83976cfdceb9d90af9de680881e26403c142f0efd941f9bced930eedae7688c8399de6be8a8384f36f63473e6354b61ca38ffa8747d6ca2a9525f4a4341afeff79d6e1188ac8b79f91d075aed7c5b4ec8e21d042353672c5e120b309ade504fbb83029b3e58877a924346ef312d22dc661f62d157e25561ade5357e0e3f334d50ba0817a14711447f83d11f1810f87ca0e0c5b6233f98c8b3e4e3cbc47128a65c54bb1bde1432b4ce76c95f9b2444c637a521291735a135061f86ca48e7c466a17bdd0f7ff63b6bb7fd74aa0b2ecc5950dc0db0cbb0d34612d251b052e68708e466ba31736de461d1da9b8364bc69a0caba6d6491cbfc835d898ff6fe6ba558810a7d134b47b13f1d36072772eddf3e94e230b502707a9e65ab70cff17a553247a5010d8ce0f33b9208f167e9adbe42d1fdc7e09835098e837c6655343e3b3f2c99294cf8048bf587c52d14d4861f9641d88cec39c10b21a42a6de8af12826d5f71a8df0e3ca12b658cbc0fb579b1052461b153f14148a339759fa403ebd2428120ba7280cc8bd960c3ac7767bb8987182c619d688c51a8d995e2343cd26fd10a30fd282bc98cf788a296fa98e702669c9d130f239bb46111681ad5481853a8243f289d15e6582ccca09eadf96ac62cf4e13d55310a008fdb2d1674f3584e73219488bbd89bf1722e3c3342ae374c2461c3d2037ba56fe80ec68ca78362448ec625dc1123fcea9982450435b3a1103f77eb858c86965ed76ad69f8a5c5f1d6bdb0263fb3f4a5f9174aa3272aad2f8d82958c0351102d12045d0601b2b8c68df1cff5ad3ea5295200554b65b82c4454f4ba706d16a102502a91e45786f236d2f04b5280b828eb5ea454dee3350c7629932fcd609e2d3eb13441b4e9708d9ccfc5e4f4021e5bba6f9951f6d66a20de992e7eb8230124bcddec3acd3b53cd8ddbb67d3262aa09a488fc154f511baa126bfdb01dcadc1f80c665208b2949b145daf8857c64ac075f08c8c12db71ed7646d0ccff92564ad7363df5e8c9f1f8ea9b444d1ae77ce38a9811d4f182c57b2885f40e05cccac93a01824bb01e303d80c631a4b37509d9f03fe1b9c24205d4b8a777750475b23b45187ef10b050e6405f175933d0c0aa9e2c8d1acb2a48c65cc901f900507e06e2249804b593b415b3f419901d79dfef3c6d2422f30b7634b0e36602719203a76ddfed0ec728156ba349cb2dd5d3621736a27e0efb599550c188e72395601cd899391c6be909e3700da902b942d8381627e560ba8abdd466d8c0f9e3ab5d6ee29db10fef38ce091d999958e203be91b441ebd4d0688b358743e18b78251700ae39ba034c26fabd13764c08a4bdb2ff449e483f1ebdd38c9bd0fd7bb21736831e218f65e28818c4f126b1f1451f133cf22a2efb121f38416eaa6d8f50071064d142bc300042031aa2818d979a68c092d62f32c42892383068ce685de5f43730a9cbe33513684b6a2cdc52ed702769f4eb4402509f98e2ef847a896e38a167d29f2b6b85c189c101d87121da5fe5a325ca9873bd0ad6801cbec09db8d8ecc6d1a8f1761de52df6eefd98d8af58a2715fb4ecf8d45d0cef5199c937d3d154acad1ac100ff41f459f3a8615566f840288597a9f2e96004e79d776c7a2485141d92bbce0471c2ce8fc77be40b46f594d3eb446d5ee2ae23cebf7655a603b129374e00d2cb87aaf756df33c02d3817867010d9bc92191f25a8deb612737a195951c115a596b2cc2b8052f5cb3b7706e9eb0c6ebc5f8636c513d88107409ac388f3a24628f5e396b4691e18140766012145c98a22221d53d238d7da30da84699a544e98db704517c66eea54eebac5943563f20756390ece448a20dcd61c420e9ae42116e1463c856f86610ee547ce99c72a227aa9168f3268cded6653efc86618fb4135dd0299d7afb8a890e00644655860f3724134269150f55d3a967f332196254414f856bb5c06635a25bcce443d920aeca1d1775ca68e57ed63ca48a09602d6941b1a4f4b7dc5a89fd4f46889d33bcd8353dc8e9464078268d47750acb3a826f092919d70ed97c8968038486c9e2c734264c0da9ffe1b83015ae67fcdefe38f9150a21d577cb23c4c3d40bf692b3ed65009350965b6aa8dad51fff51bfba4533f7569837b737614b263501a02897a4968cbb441da9e6bd3df7563671dc238ce493e089b48417cfc2a16e4314ad2d8a237ede199dfd5698900f7b64103cd0e8d3400a34fd3c4fd9c48ad053316f131a2fbba339ae39f3174c51c0c098a5851579b698513ca6db497f86966b4eab53870122ec8cec2c9d351121aa3fcb3c5147d589c4c94e5cc7f3a381c346120acbf9dcaa2992d03938bd0d9d2694bf781ca122564c6b1e00cff8e6b510144d6f470912a7724f7f2d421b2d31720c0554641413c2465d1ac034425c93ab52e72d8850feef83c5d428310e72507390e3f6382e2d481389e232f90de72c219cf778c117d2c97996e1bc966b83247321449e13821023fcd44015a5f8716652a9612115d8592ba010a7ff62e6ca091dbcf1210e652f7907399d4bb1a9ee5d46361e2ce4dc6bc8a0d7cea6390d14c0ba6c32adeeb228109d3011fc605296f0a93c6b04c6ec7c6b8066c5016ad70e26e599d0c6745c295fc6c2cfe2869c29ea9c6a035474140b400061ef2bf88d98dca4733178f72e426001ba4bf761894f6b997d1979dabddfa89fe359c9c7d9a95293c747586868fdd6e3984860b0beec5ee4aa85b9be002f3a46dd1a7ce69ed25fecc09b735943a835fa22972eaa801b139131bab0fe6824296378ebcd6fbd99fa36adebc4d513b704fd263a08a3f00e2a4aa75355ceec6387b07f431e915e4eab4522e04d68537b94154053e03560e1cecea4305a6ced2c8782db9eacc98c7f07ef4a702906fb8457429c2b071ad8d598963c369cf655225ba2e7a17b87afd01c10e6e67cb6150d3a67764d1dd8fdf207b0f6dc8666bb610a376fc17a7884767480d63f28699d2406c01866d0604489fa6b2f188c783fcf98a6c9382b158dd2c6877daa9690bf85d00e71d50d65f31216c9d4c6640cf9250f96f6dc43647e90ab33eb4bad8005c7965822572724d5b6f94d680177f9e597ea9df3d0e893c645fa6f907b027c80c2574967fe29545c193da01c8a0a3bff8ab13d3ebd0cda9e9e5d58f8d29dada931fad47ef1fc47839824634afc1644a345f03c51010732df28109e5852e7f8282152f2709c6f7de5b5cb465490acb91c08fd1596259c743c56719e73511773ec1a63e0023aab8d60d7db98ed2d15940d9f98b171ce576e9ba9c52bdcf98ac405bb6cd1f8d108f3ebc53674818970c50a8df35d2d312fcc6bbca0ecb8cd4b3d8e485f78043c7add26dd25097270e7ea0d55c81fdbd2798621080d6068d851afea264c81c259504b04a66b7ec0ddb4801523cda96865acf5c51b97343f37f826afe5f5cc9130d30fca0eb867c040f7a0e48af804c449881720089fa00614f655a2978d04327d9a5e97880522c7a9fe1f44ec0ad50b1f3d600e54498c9d2b6573dfe403be1e2c230782a1fd7ecbf008aa57c6b3c36c1f8ed37448ffad11260fd102c12c014723ae6fa2881220cc4183d3ebcb8e2d6fa11d515b2832dd248c4c79de156c21ba18793a34bc795e19beaf506383455e9f6a43ba92dface4a73441eb0434e38a756ddfc60ec572f8d6e57165f68377193dd7c40e1457d751c0a43fc12431f4b001a1575395c76a095f4880f54149aa5d2bf33589245831ef1efc61a9afa04ec072a65150e7dc1675935ffc7e3d19cd0a88b92fd198e2c3f4f7166e63ba490275db3e0fc446f237b7d23e010ec8801eb003839158a2657543471ff9bd20252a31572c50a4370e6e5ec63d44898d6253e1fa10ff92f380889b01e7f73eaacfca9f44238f36b98cac286f8cc837241b87a69bfd477c804cc9424b349e432150ce3d5d0815e7cd0e82768672d3e2b52820bf6cc79bd96736f97195e0152bd2dbae8110ce9decf52566d87baa06dd23f639dbe7988383fdfde71c782df0d8699c044302b8274683d30d11a2e4462ea138fc49f326b4a0f1f340110ade96a347370fc4fb0ecd420cd0811dba5a1f29ffe89842c1c4f602668ca7164ac2e83a7eba80ced458f6bf2c571c9148df042c2ba9ef46f9840d7e48f34a5413f24b9f3aa3f02bc3f2d4ba39b0edf19bc50893755e7facd7fb1aa2c882c9afc89cf333a711030fb73682ba9ad4f2a08cb700c1f6315045d68b8d023fa200c0efd62f9d33fb0fc738f06b0c1d80960479e3e00f0a556a4183fc57cd4636f61f08b67d335dc5cd64fbfa28b2c985131b8c8d548378ea0bf6c0b47d0fb8fe9a69ebe4f4f0eb970d923f497209c68a6c639268a496d60a5c3a172466be82a46374b90ee2929abf8e779adbd73446ccfa5fd3f9c6f18fb1fb9f05295dcaf706779e1622712c273e35d0b1cdb7082eb63a3ab88211afd51e1286a463ab1125b33330f5407d64464bb9580acdce7e8ca58b59cf2917afc35a8be8829934a9188e6dc3cb4561f2e769a132409d7f921340268a24c19a5338a7554504153b022e71ddc946af4dfff63e4b0d72636488e6f91198d6f7f3ee00bd5525d2817eee231442489e89f2936972a69dbac6d89ba1d8ade84d44b167b130059178d59d53cde754c73a0c1d2785910c90ad1c4ffcb618ea33e4b778cb6ec3d7cba68babd1b45326323623e267f2c5a405f23b09cd09d156b79f6181a7ef3014b69cf1705f2fb12a5c9c6cd92a8010b84effdd52789deee373cba101960a507f0d36c9b8d0e7216d940d64438d919315fa3312fa2d5b963241207876986dccda3cefdc8c191eb07b8fed24f3bd7d7b0f5b7a7d373ae394bd20400611211aea3c4752265ec31a0603546ca65ae32cd5fdb600c0ecd5c056cd919563f0547439123797ca797816cfeed5a019f9297dbc08284cb41aa35ec3a299c0ca5c2156ba427067b7d9f147bbd14aeca49a90c078add2e69acd3ac46076e0e1d0165073c4f92a74f6f27755a15f53af33e72fea9815112031df1bcef4aa978c4b6edc5bc1536d5ceba58feb74147942b7138d96aca4f0525516f85afe6f155c39b824f0e00ae4055e409b430f2bcc6fc455dccf776182f2803ecca64390377629f76dd7ce2acfa815ba458afbfebb8822c84dd783ff7bd31aa50cce27e4c1d32817f73658e500455645c136bb054cb23c4d9f94a002808b6612d2f35afcf4e6091101f06b1b8ce6f6dc06089bf0abb97349697baec6b784598cf9a4a40dff3ae7dabab8ffc853c1a7b0d6da9efbceeb0c1fd85be611fe4dc315269c3d338f39710f67cf994a18d3e429386c7b8a3e1d911a2536ed049f9369342b2f798a4b255f811452ad3b558491e5f40d2cb6e9c4b026f8a946da49bd0bd5c06874c508034616a4007c31e1aef56398292887d716aaa1af550acd321653559fd86836288598af17486f560da16dc821f4d995ade621f566b0e0ebed8094d53608533b6068787d8b62c9777eddd6c976fe24a53ea48987220951558c7da4e5f9c8c9d0794c217cd5e8c991ecd5c72eea4b29a2773ad0a8ebf047a903ee35c20c4c1ae309ea65c91c4bb6fc8818a220332cc57bc6a6908bfa29b5c22f7e1599fe7894c09c5142efdde1010fceca628620338eb29b388ce44f8eefc6eccf04f6561aea6bf56033c5e39dc2e31bb129d31e4e69fa7e8ab45473a15b86efb71b806cee62d0cdd42a1279f027285312f9ef453dda1c06e8866939a89dc56566ebdc5fe3084723554e89afea903e4d6b79c016514d780d9b0f0b8d1d51edd406802f51176b3fbca1c2f0e9dd0dcc84e75a52f562913d0a8b63939a7a756b146a449bf17b78963bd0ee3fa3aed62470abd8fb211bfd4369d487b9059eb9aebbf20c61564142ab091395da951ac3784b57aa52ecc1197cf25f2e1c1b2e49ded0a46236b631b3e1edeeb09d70b94e46993a2cf79d0753105c45c5df1900278705c1a063f3fe6c0a016d9e7c5bcd09ba684711166e764c9a43c136ecc90f9af10d241afbf3f7408b0eb6f8e3b5b51c647a3171bb24108fdfb6238dea13bac759c8df2233f4c8a8222ef2afc5e49444dee67eaa0efd7eae862904475ea4558588ed0486752d98402992b128c0fdcdb535cfbece150f7bc570123e9f84f20380d69ad2b34de0d55d0a2c059700d2c0173112c9a03a7c91bcb0031a6841ef0231e88dc04bc6ffeafa7a0e8b9871613230cc420583aa37094b987ac4cf3eeb0490287e1f8f708165aa7e8c8d4cbf9c195980181bb50c42e39b21937131285fb6545ee161014b38a9f224d9053fae3de53d75a44fbb418d8d65ea08567b7acccaa63c179ce71f561b36febb4f3499b3106e97fa79c444ef3e92d064c31b63b479a963b228be266c066faaa65ea512228f53e0735568ccaea0773e565439dd8fcb49841d543ec7f90192e7d34ac24e4708b6ba56f0f5ab2c11abd88db8b176e6fbb2742dd8bad191fd8383753b0298abb53252877b6d2d2ead57ad352777de67a24a3b3edd23b908a567e3d43c2c56cccdaae32f558f884a01d5e7886af99fe64fc834c844cbd8ce74ef716997cc531235e08e8c3471953e90073e8954616feae6c92d44946e3000131fe74b0bec96b6c6d08678285f882074a6281abd7195dcdc16bcdfb96637908e8ee4b4d7e1c171bf83e9833820b7d1ba8b917a89dbe313115d04a6f0e9d0f1fff85804fad979d836856cfe731f5e085ddc4b5b57b93b15cbeac8a5380e2ae9df6470b1a98c11b1159d63c6dc7aa61598f6afb1a9cfd9086578ec1adeb2d1f2d43dc3862ba511bc7a5459cb2392b1fca9d471e983bd28e2cec9e1b8240f63491ff609c57f7c25c0cca3e5d9d065352759c03bde531e9e8530364a14078f526e724b98caa67fd32f89cad7f6644291076e148da0d59067fdf0d59f1a0a08d94704a61502fdaf16a9cad2627f02ea3bd5cd3cdd9a3ce8e94151f36319e96500a2325c88d5300241d908909623bd2346984a97cc905c2cfde79a6cbe4a3873193885e7ae618d82f31b50fa72135c8f1f61407fc3fea34c082589052ebe54908c63da09b4d1e2e674f038e3b2c53a563d5501a9090d71b5d323f1e61289ad4e0e30aff5b423e6909ef9e687fc110886c1e118389a1f0432f1bc8db82c7183f3e49c5873d1aa721bf9e1ddd61c306b8de40594c325089864f128b5f029db1055986b4bd9de4a7f4834a5d3630a497901817dbfac889b69e934b8d08ad39843c07cadb68a577890e53c605b90fdeef549501b0d16bc5e6d3c0b3d1edcdb4c78ae4a746e7e84a1ad1f892b7996767b4375ba17d8c29a680f846d626e5f322a70fa02c3fecd79f72233ca4f7184e5f890f54a49d056656b2fa9f20c1a706e01cc7c507667e379fdcc23edccd735dd41d7f88e51ffa51d3dd6983dcfef1e76847b67ac620d6eb727b03af048fa53e0146d4c93831c4ba83390907b07384d46ad53568356b565380484b98b925198e220cfd662a3c3a4ae826c3ed9bc66cb50a543cf96eae21d609d34dbaed10b71e6ac10ed43511840ba07cea6ae951cc11252fd038138134bc8172093f9c0da8966c30ae810d1b14c92222bdefc357e76084896b563639248d1f6fd2493f7131c5adce13f1e56040b37579df6da5e1a3243d9224b47c3a08126b94e4c79f015885b288f1fd81e41a519d7f2dd97c526d44614a3962ca0869a501c830a7c8e043e00ad50fa1d820721b3793b5f9d33818de2be08a6f8c9ed0ca3da3c4d6eaabdc873501cc49639e77545ba6eee7ee337315ee840ad9109fa883032988a822291a5f3cc48249b563898e11a89cc6c388571b50a337f19cf6ad2faa02eab6a5482f0ce772bbf1ffc2a57456c045cf5206b11ef416d08aefd7c3b70b1aee21c52e9c1218327cf18009f255acdd0eb077910e2bced328b9425174cdc9a81f169733f7ad8d4460302a28637ebaf2ca663c0ba734c7c428859609c784e9355b17959f30245c72e124c9d71062d67d118fec5f7fedda7dd2547ba83c0ba0bb88d80a6494432cb5021f7d07019984e4141dcb7ed7ce400cfede431cb9931419d93a1f0d606efde99d929db314728685642e761477ae863eacb915e894f2a3f6d7607644b17200975817af4b23fd1b20d9923df7430371c9979f87a82feac8794eb131222c166f4737998a867166ec765d0fe77eb4703ed1b6202722590f02dfd4412e7ca3301be029d42054385bc7a7eb84ac049f4e125165ba537f0b5f9c4064958bba579b0a75068251bc52625dca42fa6044bf32ebcf68344b22b1e6a8af933ddcc593cdcb4b94b774d3fdac6521dc565af2b94ede2744cab848bb3f02278f9c77ff0a609ea98e970302d42a482441e12c7cbe33ba1f2c2a4e2a4e016d80a2c3e1940f109e0b6dd1bfed61927d655a1aff83ee4285563db7c104f7c8191c4721d5cc8490c6fb77b6eb26775dba189ff8730a60909500447278a35efeb97f6185a4da739baf166e134de5a6140d478b034c38016520311edac89d10fdd13f77e6f7f3b72e513d21dbdbea242dd015e3b08fdfece6ede32346a00b5ae3811237073c838d8b21a080c502b65233cb547e8c99f58376e05bf1f42c997d9fd904725f0dac325a69fae5ca4ac70b215ed64d4bc706dc29b0ae8e498280e4a2b4d09c7cc88afeae8685244864c6523f4d98e94ae241ebe81e427071e519a0513de945790231162a8f0bfd2acbb0bb9a83669a493676439e82cea6af08e1d153db8ad6c94a2ff639cb71d85ceaa12b1a079ce6040d5e21778bc5925f6e36d391319da0b33396185832a29a2c6dcd94b08c32bd141c801007f33310c296c969c4ec8c46b153e74a06c93ea1dd201652188e7407b5a8040c7b371808e3210ac10f05f86bca2f4dd8b065099e4291c950437a0d8dde5920e4765a6144e4dde602a95d82a8dd017dd54994312845ed5e689e9f6bd190a1f76dc7cc468254ff64976c0ba6d01f4b9f113f57fb5cd48c713d6be7c5f945b00ccd6adae184066e040926f2cb0e504bf0985702b4177629d2e45493e040939470dcaec27b2cf15203bc79f3902ed405675d5c6a7524900c10293f9fba92f24dbaa8e99e83c2ef23ccaeefb2bbdb5f231a5cfa8f640597da255322ca53ae57fd00fe85b188e5a508e00916f50ec7afe930b6c5eae6e18fa2cfb98db3e02ea0f5432e051bb4eab3a91ce3f87fc98aca4ae023822ecbad8bccc9b2eec2701490dfad96f1b6fb1d361ff1a7ed6022e6830123605affcaac8cee828379bfee511e36cee0cdb003ac553c4d10b3bbe23bc2f95fd89f3f85bf9d80572ed53569da93f6e76d81bf2ae4952b21bf1b65ae88aa621383734f30e23365e577446a5d20055832949230f8b3302a088888e94a92bc2e1bac4de2b1938fbc4fe78c6f5f0228c08e367532a698f2e6237393b096058275bbaa5605940a2346ed824fada9a68daed565dbbc59d1509869bdbe2bf6a3e1b4b8529892aeb042cb99c7b3f4589cad0aa36fac5617ad43943cd68b55b8d77421c92ad06588c0d4492d64569d019d85eb8b7cf6f74a38bb93f882dceb5fe63871df50cb1cad480a8c8860d87c0bb2ca32e689b118151f544df225be5353aa1de14d24c96536194076924e7218934183900a80627fbe9d9fe7f499718bfc4bbcc2bba843431f2c0de6c2eb13bff6e8e0cb7f6bdec7c38fcf4ca0667691c29435928d3e0b6b5c1332d79680abbdf832698a67a1b23fd74a1216842db6bc44429c928ec71ee2dc7929ea4246622574c43ae8b4ee0168a819b3e62ac7e15f974c97a7ad09be45d7465f43289e032e0304b64076dc3e4414b472da59768af9a83dee48635d19f00ccd44766b7a3f1807b7782bf9f3b60d43ae61c55ad7e82d01e93c7b96b32587ceb71141fa7c0752fcc424b391b8e7f678771be300691026bebc513c47b26ff9218d994780f401d21dc038d1efafdff810a4e627c2e976bd403baa342706083340d13046edccfcb85b41dcaab01c706e95e7c835abb75305dd387451c1ce258a3a1be1b59ad287b5c9e444f1f365a85260e98693fec4bfaa95d230f0b6130a01f9929bd5cdbfa0326ba426cdd0e10c96ddf88dee8eede5d1cc5243ab0aa98b15eefa4d28b45ea51ccf28d12fdc30c536e9225458cfa2cb8a4d8fa937029b1c587e4aec5ca27c52dc4949f9abb42ec67e54cbcd6fec467fd263ad677c26f7d133feb3381b5f61396d51ecedc3ed4d19c14eef6277b8b7d4bc99fe1addc17b0ca13dfd6f39e1d6db58fd761af7e315f1b62c97a20d9a003de94c84e4dbe86cdf784f841e6c46304142444104085723ec08f0d6be06c0ba03f0fd22d06549c817b6cdf8eed05bd0610840aee09e464526e2f858ecbf7138706558cf0698432d9235e2d51013eb31f9ad51171111de0eb557ff09d8968690b2331fa5b98f883790ff70d2d1fcd410617e9693754629d5662b99bec04bcc472bea59950ac8da1efa16f07d845572145615fb21f5a2a5483020db3df268aaae8368e2ec9f6b4aa3cb8ad7144c0c67d31ac7debd521864164097237faea396533e2244ade3acedb39ce19c2a0f682c42e687aac79d9ff4e30071835390065c3518b4293970045880441530377f352faa36d25077b4650530a4b1bd453d8001d93b3927af095c30448899782f6ab87c3ed572cdc22d6097f00c9b134db28acdc61927a79fcd2137f3f25f4b403216768e27d24dbe77e1036a9d744b81bd06172c76ab8492de38c1568901d7852857c410c479e0332d15cf4bc366f1c7e1b66e337b0d91bd854193951002e19b2bbdb97178adf807f30521be07da1b1ac415979978c4d10b9711f6faf8ec85a2c055ada88a198e161829ca6d4edd362edbe8c50225a53c24bbb88aa677dccd400acc8b4d0b7e9a44c118bda93b0a81de468d03478ec0f2149f6a859317bd4fe770ed7a86765b4c688acc82988f3d767de3701e976975766c044015354efcd5342188b6488691d6dd1681631ec761c3ce9374861666518908b106acc3ff1300952d0b416522bf275d6fcdb12cc8b486bcd7ff4f1fee0f368a22cb013f91ad70eebb5a89cf82fee015c2c1b7facc1e86bf8eee2d516529ae67a7e4f0b2452a092b441d9a9ceff83dd168a649fc1a5459c59bc168009405d06f18538ffdc2918b0ef406cd8e1e1a63060c72e406acc44044e5580d409d944f5808dfb69806c87a7a90fd800c3145bfd0cc5fc144e4aca07ec8a83d675d05f1df84f409d09acbe4e6a1b20a88fec91d1070a3ebe1bb3700fd41dda0476476c1c24e0d147aec3428b467c89127e1f35119b185680179b93152b2703228bc135345519fcba11a7abe099325348a8173e1c91ffc20c19eef901692dd166adb9013b6d8128d8a6a341927c49065b6d86c876054770a2f55467e91df664421576a81702e1b9a6ffae545110acbb8808b73c262e3b03d2c41c3b1014611e032ccad58d3562747468ffdd054bdca0833e180df214e283086806d1a2715850061a7e320a6109b8a4f853935930be8a4eefeacc2a4c7ff0fa5cdf9752884e7fc3164aa6719920c66e5034db3ed678a57a91d355538a838d00194fac617818e051ddaa179867e528cdda73285e616235f7f727814c06b37ade05391a9f1ae3c5cebb6c21c8550e2eb9582e43706c4d49c482a82bbb22244525609e2ffb4bd00f0423c01bd709f9233e70114c3f922db37a5957db64d6763d2d281280ddf0c5882c54849f361129bc8f429e64b318b4407c3c810dbec7426ede59a2b2b63dd4b7e945860bdccb85fc0980aa214e9ceb69a62cbf143483dea9c81afc2b33e4a6a9c53b6232440406b055c8d1ba2be47a1acf3f7c15720faa78782b51cb4baa90378c16bb784e08f4a8a4b07155adf3badf411baca9cdbfa7fac1fff7b74a9e623f89824d39189c3306c3703b73e3a7ff3ab7b44649013fef3ed2bb229ca010e93c34ab8ba722c178301ae01a2560c5d573f573927a2e33bb57d7031722fdc2335d4ee7a032dadd9cc206b6e6ed293c699b2261fd85d961f60c60c74a7c6cb31644c6432a80c9fa92c7870da145708d165792e77d9f50793992f8ce8dc635ad62a37ef91fef8e655a376d5c3047ba89eea57d9773ccd446b2a3c3544a65998cadb9b8c2e207ea8a78d047d65e6efb17a89d1aea5deba05261b1159149e273968fd12862ef7b25efb43509d43a1801984cd10284e50a43da82a660b8d2804b1bfab92515924677771d03d70bbf1439f643dbde489f5bc11431d9751e46bf0abdd54870c63e965b2aafbcb2ce9a14ccf2cd703c7d8d9a9aeb64c22289a0c4b1ca4db8276c5918d4fa83c9de5014a6b9b812605e9d05a2aa9c19286e37a041412af2e244c58368e411cea200b8f8f1086590e5e56e5634dc207c6e9d4baa0ac6a2af362c72c7f0bb2d8bcb5e37a8e3176fd46594e67494e93c7aed4844be381316edff3d2e57cd884385a165bc771597f95e79ad5ccd1bf28c310181ea9b9a7339ea541ca42a3fd191fc2f10dd2d4feb1c40bbc7d64ee5a6770edee30268e8acb6c91b137bc631769ebf38c89b81fc5dd29c4200f209603f0bd53e317101e51fce820d671363a55d8c112d82c68f590c83c8e2bb717425390fcec42e26580d9028ec4561008cc34cd4b130fce25e6fa923d7533cf3548407cb2489d514f610c8076f40a429fadfde5ad95f3cd3832df15302d47328a71fc40f0832f459b53d6da8ea94b8407b6039984f45ebf6c015ac4be68c454d93c801b3585a00b241a5fd68ce9c7db9c7d2dd395e97e24d169d9d2a4af86734298a06d62bce107737512070c7f0776c5266225ac852474f684a8819755d940cf8cb62da4644c4f43da286f7c4a2d401ce332c9016d07dd4c1f56ef58456594b016ef817385570368398a44edcfb3101ee6b5c27bf5ecb5904de5fd80ef0e46b3da4aabf5959882b74f0387627abb72232e94db24545725a6cbc50dd948b82da26ba628598d55c822863ffe50ea7882aa9e1b21231415c0e5fe261cbeba62aa918081659a022eaacb63614c7fd754577c75320e092614af74d892c5f44480541e712415490bdb99730ef54a2168921446e35085ecfa037a083806e1d2674e02b02f8f2e88daedee537f0abf051e3c3c007a596b81981e6c11d94169d8527c1ebc2ddec9f58c037725ad93542d8d473cb92d635adc42927ed6d5dfa9cd1a04dc758e93cb091318a21eca19b635e7b9017336c614a09ee815f9a741e90d713b090446ab54da34b0e0a3599d2604644a396c4adac5f5f860dbb6c958953966d30ccdd4f009bba3a10b308f5a68c85d7ca1efb94416f7c83629761ebb6df3d943ff4c1ade00df0186665bd7ac9fe2c53d7f08c38b154ec562ca892b521622aaa9384a9d175fb320ffb6945665f66635e3c84db562ee0a2f458bb1fb651ca8b924c5902f16ce29c67cd6a85e5e98e96960bcbfdda2367bb96d3afb5b1da08f22e9b7cf2e47f46776f902e6150b394afaad82d93a31ed6518938942f1587776f3a01dd99eb8f3832afecbba4c4d2f357cc7aa80e351f95632f9ac559d3a441e8bbcc51955cff475a3892bf55f0af9524672e6dec163e48b429425d988d3765ac0f524deb6ccf06a18fe7ac44225c49e2850e3856a7c79d7975998ec807d229f831c773009d959200a8d0b59d77ce90e241dd4b7420deb01287f1a5c2a68f84dfbcdb888fedae194b3a6efb9fe3240dc6581ab27c3caf2b6880704202eafad6735d1e499229f901a1af1ac30109edaa625dc05f237c6a85bec67551d1e550241603fea4e3f9dec855a4489525dec3a3753841b77fbf9f24e7dddaec1ddf8670639ce0e7f4c8c655cc7a736ee0c2323fa6406a0b86423a76ed365875f2b5fbbb681b43d193b8d0fb704959a46669f6b80550e393f76bbd7fddc937c5fd5a61ad2dc6cecf5aeae6a039312c5ce7ea87da34a77401a9026cd139691956ab7682cac8c1212bd37a9b070433a46ef3b62e6af9769a0e0ff3edbc216459ff9ef5ba677f2986b171cddf1d3a22185952383c68d0bbc7591025591d8531780527b585c7d1f541145cef6e2ea009999a3f58653bc2b598baf14338a2e9dda00a03af7512cad177b358433b1b758df6e41f3550df490d9be1fe791411114bc8fab979907ee31c70b3e6897abee9287ed393f3627c87005a4c8dd4c09e4be359a4722f736f18f92276e94155e87b4890460b31d75570e0a10b1b712fa5118715ced2773c6fab63718f89244360e3c9d0bdacd0e89155ab95a8604f56ea48a67f2feec26c2dade7e6f8f68b8b5b6d9b9f538042634b9c068bab9e9824047e61f0a7c65ff894fc88f4e00382bd6a8a1d0163e336604b9e73939a4a2f793aabd51f5f678f3508fc05a6c9110bcb495926b350dd31e1fd2ad740cb8ddc5160f05c548d45656abc0d5ed8a0a8443c1b22073df34046d935f9e040d11abe4a0d4c803b04d19a1d7916e7178fc8f0f27dd8a3c4dc37da8128dbdd9294f27dd9e147ae62f83527fc58cbd65572734a97716fd8932640032c7fd5c1abf2dd493aeca87346d162ecc2a121b486f5124f74eea1175f2f11e6e3d9051d72d76761826467df20a302be8cea2adc87244127569e87fe509b6d86625ea0f42579e30ebc613366c23fc5b86582855cef1f29fad2226fece119f025c2a709420bd3802b8428b95dca6a79b7670672dc31fd1b2ee007e96514d7cfd0f74d74ef85f4aaa1e00b6694958a22e717f153e9420178a50f8c635a8a2fd00718dbbd14b86de38833ea7f6857a840f75ed89e8c3fc179cec76935ca97af64573898c09f109fa38174388b8bafb66a02117bbe8d327afb217c9dcd7217ddc4237f822485474d00dfbb5debb7614a050bfb63cb123e1e9fa4e0344b85ec28766316516cbdf82fc1d483c4f07b6c9c7e20c4f7eff77400caeb25d06646e3de0f157646cbf0268f0e22a2fda1bd5763f1315e99d8345201fcecf50d45676b7aa4b459c58a71671aae2c1ede3b8eb395c3b1c09fc8b335cf8f7591d7d9e7d2de75fb783681cfed77b04cf793311911e08c9a21554dda07a60a482797eabce4ad38456d1e11557a6961dbdbfff3e8a841e143e502dcd6bfd24a4d7fe97192d9993a3df5fdfc6e35c460379523e9bf2b98fc5047b93cda22671461a19e3ffd0d5b5678b34d4b59149ce2a59b440b1d89b7c111675ddf68e702f31f6e731457d81f079921e4cffc9bb660b565a92de5dcb79973143f1583ec7a50187203c2a06f02f93d915d362df25c0b475162c451dfaf29b8967fb12005ae7dabc411a05b937d442e5b1ec1b6509e404783120a086222a71260a4d8eff8d20b25f0a901bed2f45a59f8e0ea3db0c0df10f87d3cf738eac916f562f23fd25a98e76384926796fed339af542ddc27a8013da47f88dea6277251d52a803065794746c41f15d213e59828d3abff3265f745e6451e4c03bafe3a023834a1a12c46776f3504d2056f0abbba64a6568512bd95e57e1cadfe67b4dfcd6c91bbbb7a2f508bd0ca98b39809361e3ba918551e2b2aa6f18d41c57867c4dd98653c1c48f83e1e6bce26882b9684d2ddc00e19abedb90a7347a8c9e9d5f76cdb454e49aa9ca06b7837a02f53c7d10cfa311aa356d1882a25df5415e4b860bae1029de75a56ccc9e4d0fd17b503387620624f15d229b9f4c6c7df828e53c799831297a099fbc3a779bcb16c7aec6ef79fc019a0dc167bca67909be1e031c4106f2824ead828237740e860aacd0dda66bac833550c009236c69b2d82663376ed366460c75287d12396ccb59b58ecac4ea172f0c0d43c47b7ae1d08f31a9ba8979fa8fb7f17fa6074909f0cb75650ca1fe9ef7d308132711fd7da0dd06e31599ad46f2782fec9426908154e47b8e66567978bb92b96c38339ce8547584b4237e46f69da2e091a42277319863e4379b7ebf931e9a9b31942a0e2d19050f8b80953135c1f1ce15170360a6345caa806d5fd22e49f88211c5ff4d9afaf8330035a0865657c8d8b2e42626bacf87bd7ed8b9a351dbeb391930407c25b00ec79cd8d1c8eed10cd55e0874708aa874f8bad03788abd25e0a4628703d88bd56896d4a0eff3f3f8672ab305975c121e94ac25fc3ec7a82573ea826734134d80df9895a9fb89087b29c40be02e8958b6e88e2a4691989b8ce92087044969e7a34667a1a8db1f58dd2aa69ab6a2be720e9163a179c61dde0e940fc47745372e6c6c255f4149d5f4dddb8008de70779da9e0a1d5789dd97ddb825e8107d5c8bcaa29e62a1bacda0a147637401fdf21fd769fbda8411afcb46f7124162376c0dac575e3e2211a860ee3e977f778f26b3e89450ec85d6b07b21f2925bd594e9eebe86838b19de987faf25ce601bf1dede291a5ec882c5f6b063c4bebc32216c13ff341e9ec1ee425e3561916178e3100d597a46b98aced87481141800c368c24c6bd16098bc50652dae3c0a31285a9037858ffc0ff634bf2e914c8b4c532568189050f868481b4acc01b54bf4ba62a82c6d5bc6a8c1c0f79575334b1e25ba7edcd4e50a24db520b85caaa59958595b5b8598553c3ff6bcdc416d2489141e26a120e37adf91babd5921b5210c83a102d888676b7b3a6df2f1aee4903212dc13cfce8c0c7aca2805ced29ae968432d5a26c0076930e04bae3279146729699f2c908b31824ecc07199020e02d8ea4f325f1e8523614e88b8a6ab4c6e6ff79c7f40a8078b19e543af1db1dadc9fea51ea3a7ff62447f2bbd6b9b374395862d8e19f719861a99d09df3ab1e157ffead90bf6584f36a7ce6d4450ff72b5a9a4ebb851fa07be437c4c7f0be23582981979efe085b7186bc46feb42fba1984d0dd1df198d213afec93a8537c86beb89e8686427135beb289aef8711d086009a89b2c066814909c0858aac9797a9a1ecf6000241b984392491209585f8fa3a929c948dd12b92672b19bd496ee6783ddc034f09cf3c98f6ff3e0dccd8955eee51d6bd623151e2066f983d7448a895f105c6e1fbc74f586d178ff27d466a1df33f92c1d37b22a869182110a7852025978739bcd18c23ee36cedde897ab34be020cece7985b7ecb088873684241f66499bf213729aea9c4d02187cf35f6252eda976d90daf7841576c1ff94bca93c5395f25edf73a04a30e8788a6bb2cc819dbd88b8dd6b6f2cf62d2b692c338e75c817113f49b849c3502c87d7198dff100826d5adc0cf57407780dcec17841d6e91d8fba455d438cedc20f4e92be9fa88cba175d2c3b58b20bd7c4cb2e4e98cfc164c974cd7e6b68164ae4c400882d484544ff419321343822e4aa68bb11d647de8fb44ec5f4cdcd75e06acc5475a409da2271c69aa06cdc8b4b340b4809494fb5881f39641a45a590ef4e939a048d8f002b7300b17ea914427e9a2c02e78cec2d043ff5dcc5c26256e71dfd4123d918f9ffb451bb67afb6b46367827c51eb53e25d994cd3a59c6929e167e4f93f2685b48ca55679c375c505e9df0d563673c818c8935650213ec2273a62792e1c4146d862618e1a42c08d10119082feff8ace3101475b3e32b23717ebfa51afc38cc0737264eee55f4f1417ba76a2672ae1525065e47e3732f5f4cdea775c9fea615c6cc2c847a18458d4df84c0ce6502fda61f11a72f9332c0e6c428cf43b92260fee29d20c0522027a81f6ac82799642587e0bf834ef510e157a8294d73bf861f332001f295fc1ba4407fa0836250f36179079c1e34dbbb67072cd80ba5129722fcf86411dd87dd71d63e18969c4a372bbb1925f8abe9288ff593e069607291166958192a91a44f918dcc6fe7f61b567cf888873b8dcb0e79d3ed354f1a6b0ae94bf9547f7039877b2cc11f73fb84cde5a4da43e75f98850a2c7021965ea3db29902d6b91b459ba251f8f0c3b990761d22396b9014cf231cf60688623de622e253a5119387bf688b49fd10e7e8f26afeb062e526e65162d66c7b7ac62670c7732fb0504ca3cd95017d2dd1c2429b53adbb7e321aa426e25ab706efab1aa9a3da705c804d15b1dd1ece9176a0e99fff7631b87dc860ae56426a1bd23c1661f8bf220233147deb50b3e144014608c58549c5b66e076edda5e1d52d92f3edcc1ffff39d630f570f3d82ad2f361871d95fefa3af278a529321568479ed21989533c372b908cf50da2564eec91a99d1148e90318c4acaaabacfd500b00ef1beaf57eda26665bf9115acacb247264576a03dd60c481ce93a943bf1f07806803db0bd42cd3d3cf597eab12272e6b1e84e5f3e810455a4b03a451879ee765e0bd3e350c5727518503a7c0b92b7579d568112f7ff106cd8409802b1c1c28da751a602569a8748f388d054d38b8d9370528efb88121199199d9df4fb6c6dbb9b7d70734a852bd4f639c236980dcdae34fd6c25d9519ea133b45b664e2f9f341757fd2033bb7dee0c186230d9d17195b857fe3754afbd3f9dcaa0738b105731f4f1f2dac82d28d013ae0d9720a89c1ebad44345f40d6140527e3885b5986913a73f424e668fba7929fa7924da2e91a266d266cae4f432d167e9f701d40f2c00f6c821f82057e448e46a5d50dc555db631afcd135a860488e97bd50fcc7d7b256183f14c2fd179427ede00e878138887fbbf8391b34e8671fa77cddb76de0f3d97300ba21bc5aa441152fe4b76370e0d5ed682f64a31ffd7916b669ca392e1fc023fd4512f16930aaf2c04d779ef5fcc3840a146d8668d032cc91e07d5862fed95cb6d6e1e856159cc35054a376a620e392107a116f6caf2853d26d23909bab2a6e72a3bee9836793d736b17f0e53f34400e1357e48418e3f268f301101d98067ed3a79b67389b5897408c7ed397909b7600b66b2dd0a0cc33ce172cf7f0f946bc455bcfdd5e772f51eda76ff6572afc2bbdf1a7c8d210154d302fae935625820d8594d07d5c7c64798dc6c085988df646cc030e94022de03595b2935ebfafa18b7777e1e8da7890042407a06b2bec70dd7879ec020c228af3abc836d1842f8986b01716d22dacd131e2d13db5aacb5dd6dcb2da54c29a56d06f105fb052ec593649cd080214a5945464a8ca902c34a8a150b3a8d244823c96924052006f7a418a0b392202bc959493839d13909534420ca2863151ec2c1ba27e6414012c7e8037477cf21c9915ea4a29430aac42a306862ac42435363938a31134386cce4828c191fa58c58668e5230bc286515273352a24c159a9a17dcbb9022e3c426c68d7b1752649cbc70e36e45c6c98c57c1e05d48f12419272a0f0697e249324e68c010a5ac222325c654816125c58a059d4612a491e434920210837b520cd059499095e4ac249c1c8f4f44185552be059c9c1aad2ea4581180006ab45c8a5ba9d18a12baac029d868b08a34a4b062b32cc6065061aacd0e0edb98083bf3d1c77116241b71bb53ddb438f52916c996c83c964332f526d04a3897a49c7b0e8180c9a1e6a180d4d8d4daa8d0809d5bc8831d344fa154386cc3216bea2c45764ccd8607fb4c1ae584ada82f277b21658136429190c4f366bd204d6c95233485ec44734352fb8c4b89962d6b2248b47474746543c71f482ec6683c106db5ab0ae9e6d42c866dc475a3c713463f62a188e7cb6c1a6345942a6249369813d21537930b88c8a254a4ba6d113473464307432a221192a8e6231a72236c2c20886d5d106bb028a6cc5da98c8eb654488c689610188210810a52b31446629f1a094f48375f2a1b48493e347474f74f8ec02bcba97c2d96039355a4753cc36d89428d6d5b2964991c964530b2db096f5122d565a96ba253a590e9d4c00271c45b265a946ab09199375b52c754e1c4d232a28bba4d7507ab6c136d876c46de051aa216b4597ad1e8b97b92b1e4519d213e80e8c5351abd592a16d52291966e0981968d8edc806eb64b26e8976c529473be2110daf17b0bc9a48bf8e38c22606005c68d08d48e2100c0683c160b383a5dc2509b05ce38b46b54d431c63c0aeeec5a6dab533e2040c602d5857bf5a88ca1d91664f1ef17201b72eb439bbdbb35e7560aa6ab6a77ba41528774f4ff30d3dbc2407ac41ce1e581da89080eb6c184a5c0d6a50a869ea0f1599136e6f7a65c4e19c45a9cd59878ab191a9a1a1344935388a18e9cad2524d77c4339ed9d8c490918a316366460737229140f8d582ca20c0c4a4c7326765c1b2d8cc1434372f6c742a6222268275afd493d49217a7228ec56c6200c045c68c8e87a200a09b28a034e61473b6ac9e51acab5f526a77af7ef202eb48fde250bb114c68f60bc9d0d09317ba9bee04ab0b610c83a5aa96847a328dd00e888f5d7ae145fc6205a0f3a17e71887bcde0b5510420864d071d473bec40eab13af180d3e57470fef4ca676bd8d9b1814796430c271ce42ebdd438c44a68ad682616281ba1353a2336757d98db43d615855090ead75c42cdbad7ec84634249426598a1f3a17b2dabbb21eb9a331454a1a428733694850cddbc02fdbad70c73b5ddcb352bc469734ac08c1a89b0a0fc5f1c7a2f4aa566a0a169b0c13606d0cda0f6d0b2faa310ebea5edbbd6a50fb9505e5ffba57ede7066013c306e53e43464b4c85457733c1b9bb57c0bdf60af797bbbbbbb31494db9978c17ed8509ad5dddded4501637b438694f1a5831ac498b3bbfb0792dcdd734882dd04ae06a51d4abd04e61474eb861615faedb2d1faf16e76d4175402262d85564adeaca480fd80765d2650a8a0ae5eaa6ea0783d61a5a378e8eeeeeedd0968fb0d34bdde31eeeeee3539aa7bdf05eaecd552e80319757f53ce9a2b77d948004d75aff5036f0e4d9d6153d7d5c18042bf14bb707ab56346f46698c4134eacf374d7c18f0834a0070240ee1648724740121cd232012a3a5091b177c04c2bed8ec900edaf87da058edbe1a43555f7ebd7929daae52c67f99c526082fda71450c7c24f45a9b9ab6e571048f58f1edb7bd0d1238e8d2fa5d7ffab1154c8a3390bb03927b2e0022184eedd4738259c229d49a060437a84202443865832040c882526b818426c23ba493cd87a278d1e9cbca4b5b305260802c968498a2dc4aedc98a240bfd4471953087f606104265b3c010b4330610b1acc9db488391858010418b000ca910d8ed0027c1b1042788214f356f80f7f0561c798a040db79fa87b0bbbbbbbbbb7b647979797979779777779777779789134eb8fbbcc1134eb4bedeb43fbb774241f47ee61bcdfcad2b400821430821840c216466f8b0a350b34bb34b61384cc117bb52c6194d4a778fd96597f91208b375528b28b5174d4aa3c9995c3aae839168e6a70e35a3a8137577874628a3baa84e0e65819ab9c316e9cef1eecb06e35968db3a1fe4cd912f56cea498b039eeee2f9c42e8ee1d4011721028fe07786c4f9fc7668aa6f8f34ddb4398ed4d9b07c475dda7ba9749bda8e89bbe53d1dfcaaf4a3df826d3b7a83e9fcea4a47bd39f4e3822ac31aa8f13105f3e3727a570ca3ffdb7fa405085bf3d10f71f900abd10c0a8bc410f88fb6f6edccfdf1eaa268f43f68a7ea0799a8781a1f1661e0606fc175f24f54564e46f457deab9df9ea7e59f64ea85aac88c0c4af5f9d493d7274e35b91855ca59addaf8260e76a71cd35d41886c17b2f4c0fc1021ad67bd6fbe69fbef138ecdcb211f9e1a207368156a1ddcbc182268cd02666d4d2d4ae8fd0c72696a04a5bc5af9d4c5a9fe40f13f20ec85004685aed2344dd3340f487ef4a013517706e2eaad0714ffe3f930beeafb76277b40d22b9a1fbd77d776d7acfd5e8f46387e1e403ce66ffd82ea57d4831225dbcf96257499109a55a9fd313ecc6eb61ad09d55c6523ff6138ef81f70f9409a7b218051b9fff8a5d4fef3d34bedfda5fbc93d20ce2bfae1f4a7d75e326065e03ffd9e7c5a52ceea166f57866f9ff014d4a7fa5377a14edee95127faa86f39a13c9ebebd160f75c261eb2ece17df832a6c1d095dddd398942ac6b3e91511b46601f2f9e5ac3b83dbb30a6efb8d66fe1714ab5f8f9d559cbada036dff01a90cb4596a91ccaf5a8707fc150a8542a1501ecd2603ba40d073969603cec71e841f3fac309e0764faed35c701555fd7fde93be66316705369c37c90a01e18f8dce6c47779d4cbbb3c8752a1fe45858a15a55aa9705c54d46b51c947edce2a0fa0edbfd3c3fcd6e903e3c17c91a01e18afc8ccc77840dbc377a8327d976553cdc87842307a60bc1f601e265635ef03806a0867e951021fa6a3f7a4f2c378ebac5542e5e72968bf7b1f0303f331cb5f0466534562be084c8ce7a55cba43e2d65d6c738343635a7665a84b6b4caa2e8ccfa77640a6ffe687c06b11fcaddb10ff20413dfe502502ffb89fef271c3e26e01eed351f12a4872c495c71852db6c0852c3dfe45827adc2b225ff33c20d39b543745f1a5aa07ee19b2597a8460f444ef077fe8feb0887b414c3320e20741b8200927887ae017f12fe2a5620fb1e310f007f845228cefacb9a2f007ed8b48cd934afaa1f7ddd4651776e91af60a22f52f16486aff36df3005a9575b619037ac82fb21f2b55df95be5774bf9ab829edc95d261c7ac05ee624c693a05e38c115206fa1277f91267b1c37cc889d6e8a881a852ca6c3772d651eb3810bb92b23a7e6457b208faf991ca0f8b4104410411f5063780410451fb397720a0030144651f7297d450f2371391f4b82bb208ead2251b492367f14f2218e54c36912d8919c92322a3d812996c2267f2487a942ea58cf2793aba8c2e647281940ec1902811ac68088634a9514c794bfe38359513450d463804b5083dd46604eb8cf606fb33bf8c42bbe4911cda1b4842fdbab28425a9f64b2479e42e0e0b1189d419914947e4121279a508ed9544c861b2082affdb8cb82bbdea6d28cad49da92f6abf2ca2f2459d43ee3275423ee42c36cd17985ec1ee7a45a5e953271cf15f70646952a554331d6dd76614a511f4a34ff4a273186c887ed461ccf4cbbf1939ab7d93aa22ee4daa213e5eafcdc85d0e33525198f7cd108d8c2a55b4887e3646357ed7e87d17a8d073554ddd541346d3306c97c386aa2ca20eeb6201a802378b817971a12d2d54dddf60407bd63aa70d42817c057f28ffd40f9bbb87e41b40ce6671e7dc9a1c827e29df1bacea1a4293cc08932c76b78c45294410bb1ab87b90d97aec9d7dc0ad3e45a516bfd32b9df8ee6ec39b2a151608fd216fce50ca067ebfb637ae80041249922041b22d45f898403112677c0dcc9011c3a6860646eac58c4c0ccc8b0b6d419d3aceb44ded055c732edb98d0272db26e13494ca99bc34204d086ac4008380802109260c216881c890110b32b8a72807402ee420926a01862b2c0dbdd1d42f686bbbb703ac3dd8df0c5b9922bb9922bb9922b29790c52815420154805528154626419b7e9040edae056ab861dbff17f9c55924d8cfe039eadb98431c25de9bb59f4ec20dcddeacab8b989632a5c8732d2b58ec974ea8cf4f4f0a094f4c387d2924c3a3aa2825d9d4c76f4c4c98d11bae8e225c593649ca83c180241827a52ce822d674108df5538380bca2a3cbd807e7ba46347eb7c313ac4f8df406fc269bffdf31fc0af7942b6e79f9e10253f4236f5cef2efd4ef7057cdfee4a1d90ba264bd1ffee905d99ee707e16faf66837ae6a605855efc9ff995a7e10be99f2f4489f47eb4e71732bf7f53d5ac57133d07f4cfffe99fde0fbff64234afe55b16b4bf051b5ac1adbba02bc1316be4d7e67014da1cfed813c43d787309b8bdf9342217cfc7313e72f1128f75f7734d68ab22ac573cc4441c0326ea23d08f634d5a8747c6440ee0898206ceb339dc13e8c731d9a49bc562b126d08f63da9176b1114d888f20a92e24b1b4eb47b31c0b916e1673648394e4384bd5c6950f56a8117547e05cd64819bbbbbbbbbb5bc69deeba3c71f4f4017742d09a8e95bf8623662abb5c605362df42d95962326556bf458a444ca250a9df56d1b921ca141d1b959f752a3fbf8d8d1b9c9d6d5299b64e0bbf8490524619977291a6498189289254187599880256b996ada657ad5c737373ffa4ccbfa7c95b15bad3ea150ec87422a1ee15d5fcb464c992254b4f540929417cf941b4975ecd03e4cf9f9e10cda3aea4a6874f3e719db54596faa5bc091c87b355abd134f93c36ccaabf8f20ed725915ee38b40eadfef05505929f88ac78554dda689df6a1ba09ea5743ed56edae387a37bdf22f9aff6eb34447043993f9482e824cca5a099944472c5db492c4dee0cd611eb81462ae55b338491112493cf281324241bf9d1981dd08b92bbea649d56a6733199d40bf9d7d521693baa51b2199bbe2fbca2394314a70bbb45030c018c0a2f667605dd089fab98060599bd35444a12e1375995081a4fa68423f6ed2849fb40ef3151fbd6a2a8e54c845c834b9a3025bc3df35cf070aa6ea1efb6c4e13f463a179848c67ced4b73896e288d9152ddc348b7142c00480dacb6dbaf0b8abb523e351795c835faa3a0a31b94412b58e2ca28f48a2bdbf0e77c9f707e22e7ae555adb2999352a97d8b52f7943b9704fab110914cd23af05d1a710ba50c95034eab1f4435a1b33a0e73ee8d75ad364d9563737058b94b01ccf277277c07a0a2fafb32e16b5d41a27e7497aa9fe05bfabbf6ef54556e3e6d53a070ad142905c1031e18e1421276d0458e50c4ca90c9acba4ca66c1105090b553195c6c04076777718bf7aeb2ea51110f290a990476cf76d4a804a94a66d631429e5461ed563bb7b40294a1991f03b7b30b6bb4bb75a376294bc3760125a1209898ed1cd07ad459458fdde0a1aeb3289928329a2dc8088fa7d94213a26518eb83cc252bb252548e11f1cca5ac1074f02660448c435238eaa7c973a4aaa317ecc3fbbd211158e9c50bf6f25c1cd284c2944915a025b6922184dba478a0d71a4c4155982682241ac520c80a04270a823747f356e617597184256d9fbe1753787570677776fe725b8bb3bbf3b4729b0ad707777776e247777776778857323addcdddd9d1b29e6a6e5eeeeceedeeeccdeeeeceefcedd2e05f614778682af40981257ac20a221618111b1425219a50658c3944532498183262c522c66458471135420126156ac561d7f74159d145d157bc42d6108437b64854916a1f4d87929c2490b7aec4cb9b999f2c3bd8a98d6f9015706abe0254803207ee0252b5ad36b0e191c4891833a25157ba4a6fc881c7fc4283236a3155b113d62aa7fd78e313c85ebd30edcbb6bdd3e9f3c772d4895f45adea492cb2dc79da6fa3e9887f029945fcbbf3ce71d8dcbc7007d406acbcbd75a5e9337705ea557adab26f32be3c5f8f0635e7e54a11ee2f02c2f0f04e57ced5f3e46f5c1783dfc5fe07f8007275fa40704ffd36666e06bfff2f2b5f87226fe4bf480a65734f37046b5372efd2defa2fa7af87f20a8b67ca6d73c7942a97278fd82aaff49f54120155090ea6f52f1f00faa5b13549b99f1d659dac7e9e5802f1b005f7b97daf3f44b6b51b88f3ed2254f41fd3f9fda114618bb7f9d7a2967adc7ceed52b8a58107bf5c9a27743e67a99ff65b0e0d88877f0ef99af705d54f7a45a622a1ef31793d2881afa46b725458638c310419f8822a07b4fac381d889e0e0c3d93a3cfcb5a7a8a72f2f2f2f2f2f2613cd525d9e630a5d9e83757395d7d927efe3364ed5c36753f9d43e2580b3d48d337d9f43ebf84b87d0a507217487be64e505dfd3cf75c7b3037358e849af4883373b6e034d5d265a48692b3ca3b806ff67aafbbb3da08e6202d02095dbdf87930bada5fac318213325aab223b2a880a7949cc9a857497ac5a69851aff8a5d44c466e8ab5ce6a71685b87ebdc7e40bf0920205157759bf8811295f3ce34b41f54d7fbf88b42714846dd9a10f989010b858f7291eb534a097cc29182826ab0cde1d71e72b1db7e6f8851370fca3687ff5b55647a9349654a42a7c9e83319558e4695e3504bac083f41827e8204b11397524619dda7e64408f2ff89ee0fbd20f083f8079d604e4a53a9ffd56aeeea47d2eb4524868411242f2122a323664d845eafd7eb63abd729091448901e3ce8384adaa1f5d39a7571aa418fd69994a6be551b090af187dedce86d0f37f79b86a0cdfdc4a7125405832afc7e541efb3dba0a7fb9c627abf6cb353e18ff7b7426219a026e6f705aa766015ce35fb99842ed5abc84db9b9ddcaa8fcecde199334654f6d33add8cfba7753ce0f1349deedaeee91ded3273b73b84a621facd6e85b3daa9847e36db667a13c731d7cd3699a0c9e46d62d3cea0f81fe9062a901c81ee5a2142fd5a66755b64753d1a24d016598de20fe3642d6a1ca3f6f139c272ac142a7b33fa983e93f0a37f66b0a1225a3c2cd9a18a0134ed7b2d499783e802babf312882a51a7fa78c461894a9cb640b47fc30c96aee335380fbca526a9aa64108fda18c30080b5b53903ba49452d334a9ade70158a3f7231661c5fddddcdcdc7fd35bc8ea47f917ba803233ffc321fab5765a367ab7d70a16b6c03b7577377a1fbff45e6440f9e70721845e842c30e122c47fe58e317aff37beaf5af5ea791aa7b2c73dcb4d98025a12a93dac31c68efda359dc4dd8a8aa4387e79c83281dd1d33416026ee01967bf2646c8cccccccccc112ef316498fdaf48af7278c0732054468de4fb3fa7bb0604e4a53a9ffd58af7f5eaf956350544f4f75beba331915e09091959b2c49122846046312416691ec18ee94cd14f09b1100bcd28f4e319cff8194aebb417a4573c5cf921dbf13ca8dfce568624a5c4769fb5acf63edd302b1090eabfde38b4600234825d3b92b829e7d4a626b7d61deef2e1010a23f48a36dfbc9d97ba4cb2f0aa500b06b82875777777777777777777f70edddd3b9a87d3cd5f89b8803e5a3822bf7f7b624d8c707777777777f723f4dddfdd5dd6acedd9d0ab95727fb7865eedee7631c5e49814dcc6d7f2f97919d1415645873be5211bdc7be5ef01faedf88e57a47d7b385eea86c61071c1bd8326af9e6dcf47fbede1ebd5b343af985f4c2486041b596224424446fc32421f409afc98ccfc6d120f3d5aa73d1d7ae5aee9fdbc0d4aa833680458802e82a8df7305b42447707bd339c026adf22aa5dc0186a4c76cb1f020dba775be950ea39f6ede953f07315c477591f63cee72e6baa71a264e1728e0580b5c444cb0d3335f68f6cc0208ad7ae67fa71a84767ae67f2d740d00dd3bea2ce8156dcff9c95fcaf6ee9e7336aa486b69ab56f1a86e7018a2373791082d954ac99f968d9d1652abb5b384845464f27197c99b379c6aea61acab029b4aed8d13fd91bf0325543f945055e9f0416a355c24d82ba4cd93de97aa744e4a53a97ff9f5c0018da7056854a8517a3b36870b0a63e5a6ea6b49d5e753a54af3668f568d1e9d75ce84f473ef2a214a7efa394f883fc7390b71a821ca4539234c457715b7e7e938638c73ced89c0741891099af3d11d36fbf271f0eead8e12cf89b6aaa92e09b6e40df4bf50afe8401f56fef08856b9ee0ff70d1c78f24411808f350654dc61dbc640786aaad53a916097dcff47e348b1d40bb5ef1f3b7475ed16c6f7a3b367cf42bd32738ad5bae80c6a07e8bb433cd2b724d2f35577be354fb71e20f20bdea8f9e8f9d6d5bd0f9db330d4d1374559dcdaa1fd50495f55bf9540d87ffe7537bb42a4ca5229456e158c9b172fcca2b5ba9b667aa967ba6ca359b2eb647017d7b38ee504354bef6205857ccb2f87700ad4e7cf8db431b2e54f8316c97ae03b6673e777201adc0ee781d7b034685ace56253bdb360a38ab6e7e9cd0b9c08a8148d5a6952c9680602001401f315000018100a874342a15818a6999eec011400106f88406c54389606034190e4280aa2288a10638c010600430c41868a864a00cf0f5a0a3349fbbcdb4d5a6e806b8ed81a4ef68b40c89b55bf3749ec8288431a22d3ef808ecdbd238f992f973f1972bfdf31d531d1655bae4d8e8d574dfbeb4540f69a3f76bb130570dae5b097f0fd4392517fef156f176e0d6388886ae47b375b0208175479754de717d81783f8a6e0be701737ab92642e1c183319e6f0199649a6e5b30ad025e2974ad03500e122ccd5a67c8a298c31df1ff41ef6ee14d9abd2a9a99822fa8b84886330e961e26b51e740b1e292a24b4af35995912bb81e58a70acb32b5e1d378f683fd0ea27c1cfdad7834c041605e269a5b84b6d3ae9cf2b6bd0e18dcf13b0913c315913ec7b309b70dffda05034db9ab9ab5d9fa7b822841de2e7699b94e3b3ca76ae6a352405b427e9fcc33b7fe5dcd3c69e6f7974d3407c66b3994cfa89a2dffe73595d3b544333eba540ce9276384eb50165148162f0f569ea6ab249ee0cd5f3da01c8aa7039833d1f25f65672e11a69908b0f52c86553c706595247f68066dfbccc4070d217c558c485a4e973b55db003e3cf8737e7142cf81007d3402b1183b54b2a38c948f0ca07541c161bf411f50f7a865184966c8108f32eb5a227fcd333e1d68f76fcf1824290e91fb8c1efa50d21f5ce15d10e55f081299d7115632ca04753d8a724964c5ae73934ecb92008e1d9794c6318577ade4334040d21101e0046a41c0610140a7cc6e5dcb5769650ac36512f5ba87163c1e7f49b7fbbace045f668bfb2616db24566d37d92b166505b0f9572c1e0a919e6b54e104cb049b879e9f6d84e0daaa178d0aa05eba4a590ecbc7e7e7a81c0e929401788066fb797869fdd20fe77070adcc8d3118c8ad7645249cf874c54f9eead36b69d7a301cbf0a2b43db634a1df54aec4b44e0831e0e7d57aca92c49b2490e9982298a4c9389b38bb47e5bbc90541306c82165f5a9880d46fd839ea3aedaeba8ae879064320de18d5ac2f451514ef003e29919cd010888fbd1297defac5b312c600919dcfd540d928e597ede4e8e18544776deb34586f274f64d476b2c95527df18c882e76ab550a7c1374feeba824030eaf5fc4bfb5dc4ca6680532b76c0162073c297c74bef58c3f2264f262d3b900f29f0005eecc114b7035267fb2c3c4fcb509bfab4fd1b0ac3650bc0d776f7e0dcc9bb6bf79370042f9b3c5777d1023f78b817edef469904cf81959f9073c7bbb02c04225ea6a1e37522e12a0d2a21269e3538da01629dc3ba7de5e62fd358b1720504cc5469f81c9f9879143c05ac6df49c9175483b3527be22458079d79049d8232dce29b973e382540e903eba5a462ad9e5a21749c691fde857780225a3bbfaf2ca406d685c64f64dd706daecafa0a98dba44d416a3182eca3d4ca546ce90587e93e8aaf01e4353cf49ebe9297647dc8063f36506b6895ccf664d178010999c1382346967e7a8f2d61b15fc8ec4e39e5d83a596c54ac9e947628099e79818ee4abd45032c7c5caf31cec046f278c94ad8189af8b2b3659403f13716950ff3516f5e91783070b088b808fdb9a6e6fa4ed992d080b77aac478827a172202ce53e2e5313d5dd21f2a78edf7f9c904099338c6fefdd1ceea242e8241b27d1bb5f33a04a684650203da28550a6537307ed596f2449f1de326754bf74ae4ee386809a3e5954720ddadcbf652850bd3af307d41a162dc18c67fc0762bb4c89fff53729145810f119c3b2ad520836a14eaeec6e2a1f44f72483bb0b48f5e4f478029cdb6e7a069894ecb4a30e79d3c0b3bc9f83b1f80673a17762b935e4b60cb9b421e3f1f6e8ce1adb5c49debe47e306e211412a0a57371854ecfd9ef440d5c570ae016aa037dc2bfc0c81c459df5855265e044c812c02f444f4ec0676c3d4806cc763d668eccc87447b487bc3615ee64d3e0571c1b367d07ce4431fca71e21eea00d496d4ba3a3fb0d3048665a8272b40d7c3ca6006d192470efe20c7d8a07328f79d650052cbe9510a347b0aac1ff3e7b22e1ef82ee37e996a31bf78e502913dffd05a10ee03c6d49d88271e8df601b9fcdc25e85be025772b1eafdbc5367010c011f2214c425145f976a2fbbf2d0aadcddd0609fc77eecb9ed130e6eecc6391be29686b359892c36d6196f33ae7f3c7c64db05d25a9ec4e419712ddfe606da2fbe135af8946840cbaf71cdfe9b2facef8bf667aaef924da95f9bb975212094559a8844b37c1782bb431501aba15f013298b58193434ab62f9ca0e26aa43429d1285d57fb027b25dd06c573526d886251038bdcd1d14cb872e75228028d767915a897ffe127a330e95f6e4506ff590ac894b56392464035c31d8f1cb74c51b6076ab4f0346f3759fa1d0fd9426209a1887ff6b25f415517364db1284fcf42482d06d30334a0662c490b84e22223e5efe6941d457226892559094e40fcbe6458e27074460761e2684d63016fc8ee6efbc3a3c70feef45fe16ff9a1cd16b1e656be0e2b90cd58e605e50cd61368bf44af7e6aab62e84e16d583d2493cecebff470e05a91e8acb35fc867ca9ea8addf2c77ee3bcf3812a1e0c3a3863c0e2991a6abf7f9ffeffa63bdb79658f4a77c315e908777bd1612248124d708899e989106fb0464b9480a318a8144dee1697f8b9c2ff24320298e1687b22da357079b02628ba030ef0c7564e37682b93f8be32499d9f6d05a117764bbcc8d45077ff07cffe37449b060ff2ffb632e80230e60e7ea075acb7fcc4808d9e0ecd5de0d622a10e7e063cbb572c21a4aae71eacef55b56dbaeda7fc18567200997c720c30c005ffe62d04ae9ab37134e9d54fe9e8a632499172c9bd5131486770932d38f5b1004e9ee1ef52a456b446b23d82e709fa6db51a2f116c88b8eac61f7ae09884459a50982ee05c27d6dac0d5a5d3a4a566e2122cfc41acb876c3226ed2a151a8d46101f79f958506975ad393f4854be9bd7a900c647de668fcb6e848f76dc9304ab19f0ab4b685f76feee97e4f55612b276fe2a9ace8da7b3447aaaf5b0f223392814b13720a1ad8bf51e3466a0628d62c7e915ccf57bf650866eb56c59da4758a3c56c451cda6d2c4285e17b16934a5988808730de4462c6700f51696f1ecf34756944e18107382457092f8e35f0d6ca0e54c554be5d9bba35b879b413e96639b818e506fda61cb260aa357504f421a156732c1872cf683c430cbd5c4ebf7815bf1b51d5becf274e09d83d9f0f70f27eb44a1bd3d82597ebe18b45ae861bf54e64d54c2c1e4c06f756640a1b0087987661af99a31e54fabf19fe4d1a2946e018c7f73d0f3f3e1e8a9d47234842d84b916cbd2126364d23b5d0ab9909e1530c252dcf8d6f2acb2b317777d0efbe70b5bd642e7e1a6d8ffc65164bc6202f4113ea56c8b55b785f4fce64755ae94a48c87b5747e4c704085d92a6e36643ea6de8efd2ae5dde9431a047724ebca938ecb803306467204754072e945b8b020131ade5fcca80a3aaef8929d0bdde0010d02c267f155d6c282424e790d66f85fbbc72194c7b862def1acc433b84831a619b1846de879c1d2105c4d17202a8d6dc371e908095fe4266289c8328b64b0c78f2cebb231d4fae3b635e78a365d596604d928bd8be465c464d86f8210fd0fed88bdff010943002e25c150184c39572c7e4e7bbfdaeba068b81a2ddedd5e111ce1482ac4dc17b49d6eba5c3bba736c1d88a104ffc840abf75a0d195740b44166687c6e35a8d5688be3b6170b8a0102fed2b34ec2110dcff710812a4fd5e7333a28130e46ad56ba596de6f4bb149720a373e93c04af9c758b991a10180dd7818f5aa91f81504fa67328ab07e67c8f9e5aeaabc2f8fb982f5e862ed46a87a7b0dc4fb1bde476c5dab3da1a15f95b0eafcede8c49ba62b1735051647f4d0d794ce4c8c45b2272f778ab2461bb472465da4e0413f0fda432ffe9f09e5e88fc4bca070332cdc14e2104dadf2b3d948d28f08a21930bf90c4d4d8d2501b674b352b2f114ebc9b733319d4b9fc348ff6c8335340ad11d75e5024c8d141fe59d0f0c0040fcb4aa9e2ba2eb456691cbcd6d3e2cd3b3f9080e8b3d9774f4da708fdddb94d7b48707d43e5321c2f631d4d1eb7ceb5472c98215405addc30c06de03c6af91279825b11176b2d269a2ed0b8676fe5d2950349b85444343d52d23f8adc62b0aa301fb815b62786082842c92584f8ce1d8a140ffb63a24b523368a1a5ed05dd648ac351300bd928290cb641d2c5c7f886f04090bec8ade68aab4886407de4116f03657ef5b4ce53a54b90209aa739abf41dc1af062b130a263e300e88fc1924e67ceb15709e1dd0773927a3842967c5df8e2db77094182742c4b06ab945693c8172e1b555711080f5fd54de7d2ec45d35379daecbfa2cc8e060ac11b740ec437a0ca317a271835acb645958f25b076db4d2d05772e0702b0b26cac5836453dada2630cedf507b8d0b6ef03af30b20b6cb626b505b55fda9d1b07001984b0a923645ac94724b714fc4562c0fbe559cb41d429d10196d3ca5a58822d8fae543113f0a99a6ba2a608172a9e9f6df1bf061aa5b29c50ac52629e75be433a670c4dbce751df2567700767f414f2e08172eb8731192e8ec070095495ca1503b72a0ad42c9cb91c38e44bd48c8730a1dae4d869d40da02008d39524eecad427069624e09d5cf06e551a9510feeade400cd21006acc0d900594031c759d09855fb9e43664f64ac4c0ae6e89d088e962c15fb59b950c4f2711023afd1e0fd206b0ab2672c223c33dd554e28c474411c62f4a6b557b918c3be3abbd8f9b9e2dd4834709224f0c97f00b092721bd4e87ed2034bac741a89a22aeda76592cd670beefb52b0cb8bd1631f058055d900a34ff11c6d4b805ee8e1f50197473c7cab13ecf72e897413170759de17b834fa752a4c9a248f001ad7728138fa1f77b4129d6550c961221341ca1ebd2ba59959b8dde342436a69a454bf56be1c92f5bb10784093ff490ee293ea7a9673a88f87408dffbd72d70ca97bc17f4db839a05a783d8a916fc49b7ff8512b14f33d47b5bace085ccc51bd44d4d2dca0bebf1cec0c7e8205e53de74350c4c00d5068388aae9820c4c25cb2ec093699a6cf3dfc7a75d18a31c3324edc285b10050d3b643ba8958f2533204255b10a3ceaa5fc2c22e28783f787bc6306113866737000340903a144d0c10264edc861330444a32fb11238b18c29227ae6a0930824e56c0646aa028771e3ea3e51e075c31865c927935d335fdbe9509d3693db805713285cbb158dca6e417e8f47bdd82b590456aee4af56ae12fca1df6bcb9e94d34a26733cee62227e3f1970305777aca9d8407d4b6938e4c49c97c4d3f773e9237542164a84221adb7fdfd2882fa40ea3baf755e54ecff56beee29f2f7e97914059e7123b1a31fbb8ea191918c9fbf9a960e662b8b318ae7ac7a4281d4861d8580d6fbb2b9eef538b9e63d407682f5546c7221434313db71d9b6f60f07f2e199aa8f0765381958efe22a031fef2c04c81990740a028a24d600e8af37e89281fa5490b3fe3763378702cce9ed66ccd6d38ff1d5011086d18ecabd24a0af80d063a86c8dbb7cd27f6124c2640d016944831100d6815c24300e44ff7909417408d260cd434a14e9a6ff604b74a00279f9a94b04682ab701814701fb3484b008d0fb967788e2975a5334038c87e5d8dd56cc71d48e40e9082b289f01b234df53f48540b8304c44cd51ee6ee2b08c3f7740cee833ac98892d629821ba959c07fde5323082a9aee250973cbba19b0f08148ac0a66cc6de3c320d7cf4665331797c5bc9c00f0a256d7d1e2cb5681aad34c278349f72b3eb70d462759566edf444029cfc403f07fd302b6dfacf871fe9acb68148e926dc02a4da435628f84a369c0990dcf622dee34446965b7d89c9911321dd74fa57eff101d81015913d1d4c4f8eda1068ad305b6e100ed5e64ba734c5921c03a5f809b50a9b8647e7e264733f1f0b1aaec4f6e93f7bbc731c990a168edb31f1ada8d030583246f929ba1569067e8adc6b00cc7edc90a3accbd8731f16d920af8e373132c786c4a9e180bf36504a938ee4c06b973625678d260a3dcf2dc3c60f5bd9add4ffa16256858c118b3de9d8e2a2c348226c71dd03c0427ad794e3e564d6ffceae91a069c7dc825041ee292f50f7eabb0de2c33d5ce06969528bc0622037b729f8c60959474cd932d83d74b09c1b8d132efabbf319f4606ad4810f3bd43e80e7cb919eaf6566518bcc805a2ee2c2d0a0474b402a25e1922f3bd6fa910dc6ca2776e809a278676aad846cf4c90e08ca6da96ab1dd11927382216ceb8a50612e0a58cc28aba17aca514b71e63080047bdf5c05b1f4c08d90a9ab6d58f6cb6298b90d3b85f67163957376d9cba13d9d0e7b5ea16b1a2981dcf54c6596316e128aaf10fe0041d0ca023e98a22013b3b8dda1febffb902fe46e65f8ac52eacb0b051a20d7cb1657308f49ec6b2128f914332e257e8ede2e4f36c4e42f974480fe0434dad9da99403a25da99d1bf679d26c29f6a05a5f963b6e4c2a21672d8b240c47c787642e296dbefe8458a06552047c3da15331cb9ba1c6ad32871b0791254b6cfef44e4272598ce41ea5254197ba926f6d91508cd84612347596a7422a0ff2b61a54fbcc6e0bc22ca561d8a66e1267a48195cc065f8a14fa76c11c96e64c58a3587bce015d70d6ec2911a7c12a2173bcced0d629a065d77055a5fb24e67ce04b671741fa61e95f1f26797f63bb156da0fa3e1169a7d04b2df9c184bda28f52683d4da2323b0a1f3e9e05ca2ab4dcf29323f3567ff7ed5ceb0ab0e250c59b24202b38e808235ac095786dbfefbb62e97a5203e62cb55a404065e0e2a02164aaebd73d7b2e95ba1ab42c97e433031e600c71daefba372bd0d88879d89e82f83b27d2387645539114cf95e681d4e737a6ccb511f0735365e5cdc97bff394cbc978e915526f4730939b049637881018e91d20a1d96e9bb11f778a0a2b7762a7f4d9552f5af1a9508a10a777ad089407f0a6a8d730a1aca5fd9f5c9039875b4b8e7fc2b9ca403b88489db8d56bc0a4484285a7d013feeceae253a0d6998c3499ba4040263b0051ef0b977c3130cfbc243770423e95032b09591c08f290d325d51f3959b813a79b8dbf6cbe8056a54551fee1aa00d46b7e5502699f60872f612207f9bde167b7724516e56e78d927d60f4416cf0d10238a64fa9130343c97dba8483bc956a726e23487b261ca60a3475d17be3f59b01b31ca5912acf670f7acf45a59531db81fff114b32685899322eddd9827d5b4128f96d858e39dc8af1751e6daf473cf8a0d687e5a18f4f886eb3d7788e2ce4e0879e3341e7eccd0a3d5d83537309bf75b71a7a43d7ecece3a344d86db7620870f4cc563162f2061533b536c6952931dbf2de7a3ecee66a501ed50c2af8069c692d3bbf8599a3bbcc9d06c0e3e3c598796cc464445c476c96287c571ef649ae6c83fb02d0fcc93eeddd4fa7adb5ba169ce6380762be2f2b8d9376921d56c563ed701c4191613e15afc4c2e96cba17f572bc8037bf061dc05b9ad27b1330d77c5815c8f081cf97d60d4ad969b279430ffe62a3abb979cb214a55a3724329fb57dea95de5a3ae334cbb57220106de715e596af8667c6daa2da280c5bb35b32d35b676273833215e142c77751b14aa124e063cede84a32ae012563a3ee9743008bb2a4a9fc1750e19b22d83b37809edb437b32b9dd8ef8f30834df3cbb702b8d198bee3b482b60f7fa23b8c497832c66dccb67263831c8ad21b91da3cdeb9660b560a29c35c62c6d37abe8b12877ec48b8c77f266c140d66c535bd5c1ed6a5b7798c26b427d445090462b207ad0a52e0ebc17b5ce2f84ca58334d1743c226a401b33257553122c58c7f37779a7736a412bbf5d6857d0faa2bd95f13f459f979bd6560f6e4f8338d278212cd1e92e5f2ce179471463665a69b82197286299553ee8ed459a2a2172ff0741c1e46c01ffe2be13d17b12670c43f5c7cd6bd15c8e89d36efe8d6983aa65604afb8738d6e45d12000faf187b3cde0ad78af0e81deeda0703d4b2848895bc4dd26797c09b14bcc6f1c800b66a1a55fbd4ac49005bc914f9612667b43e6efb8714cbc47ef9144196c1d50624ec7b1d583573e8dc3a3f840429b8564a4e4e9fff6a612d8fd4ce3b8b91b117707b53f389d48b0d45830e833b58d2357925b0b00b4d42473ce131949abec5af0d2f3a11b51f6dd41025c3e517eaaf7047c12ecd74c7319e3c2e0c67d5a122e607050f2359aa43911ebeb146ad92f00f0999eac56b1362853cdd5920b4c707d7f08ebd2aaa287f7749c3acd24aed11692ebd2bf4702630d41a88f12f0293e43dd2ccee952aed194e054835f3fb1dc7e38af261f105ffbb65a9cfedcbc04f1c9edb79933a297b625e0589fd689ba01dba39c731245b89f9b01d3f433def367bd692ca3aebf6a5732c7485891a7de1f88975286f9383ff130c85f72ac5052e001a20b05de7cb6dbcaab2ee8433b0235dcf5e18609580cde21f63969785542507b6a720eb7d56116bd2a84440bba4f9520b4dab63053a67188332487a9fb0030c902ec507798cb483c380eb9b9e919290b2d14ae90cff513aa90271591957f992f3c4c618d3402c5ba78689706034422ce257e1b8bd31903f3569064786965f8a413512bd1f76feb79589846aca191a09e2df7c34835dd9ef4f1e81c02b747ba5d8c09f914b1d0a3645407007155a13b0838482ea88c23dd1ea49c239105400a3ca0c84a77840a8d792ee14f0f73345f9877c00728a800c79373630d15a17d117035d49209f1177a8848d9bb2166bde31a75639ee81872312dedde395b1dbf5ea88f7850842c0931bc0d668363f7dba8c2f40ad3b19eab23bf6cfe9ff115edada72aea1481ef5ed61e45907237bf8e92949372a04c4e660bbd086eba98ac3613274d378f9568e6673442ea28ee43e3c3c2d029ccd6ff04896ddb1ac1bf0b6913a1a77ba28d4a7a2b864fbc00e5eb2a04313f2abda442b3f2b61c94d4a197a975b9618f3eb4db65e14db42663d7cc892f0c20085449c152a15b7440f4ae3c0504112dfb0fb46f8fb99953d83180762e4af95a7e53a46b839d48369892daef7d442b072adba070ef18b9a2b65f558778c7e5923dd030cee0df36add1688517f8185ed0badbc6b2b7ea09db340a698494ba1519775bc61739e3376af65a57251e833ddfc583c2fae6d28d7a2c9947afa28f4dc5bece456c8ea0c32603846aa7a900f87475c3d4af588a2c3f4597db71495b55d623fe6c9c3cbcac4e10500dde3f9fd50d9bea63ac8ca50f95f0a65efbb494e17c3154c3add2a86fe3e73755dc32cb41de767ddca298598bebc2698dfe3c0844f1164a8b78c5483f7c35e971357ee45bc2894ab337914e28eec454b0f7ebe6c2d5ba9954278aed4a499bd283f0fc3a90a993c15cb64d01ad3b0ff55142e31c06f0ba122f185c6bb469f7c9b7d205d7154a56372a5b0c81e2a16feb611cf473fcacb9427a87672ea34a1a8f351c3298147e45d8027e961d5f248385c4da7bcea504b7b146b53fffeb30e5a4ca264c618b11b2d7395df641845c458a3e8f9411718e46c267e2bcc48904389f3a5ead8401a2ff2574c5d4418c218273348c6c342a9e7ff00390b8cf20d39c51c9c267f422accea9b68df70506f885d41c8480fbf3fce016e3d52a1fac5e1bf3f9313411fcda8461f6b08096eda12a55f6daf45fa518011691004463666a73c9404f53f261d49cc8ae3464f8e592020f602d338ae14d74fd9520f444e50fa25e00941386645c7a65fe8cc5dbaccde24ffce416115b792f6ede38018f62661de1f540c596e9c73b9117b7bb30e77dbad97cb7d0a9fd87f85da3a5815fea321dd24e7877274dee1f1bd70a163156af9987b088e066316151c3eb8360062030a7c54b4eb5419e368b922946e149698da2dc3f4f4d8cb31170cb9b849932a36cf728b5c2333d0e065755d80509de6c196863d861fffc405593931eb9876d043ab931af176c9b21a31cc9855c09d88694f001e91dd8f72df74f4da4e1d730be5606f67d042c0e50c3e42dcab438c0eccd65647da9fb9f8e6330cf7341bb8cee46fef0fe0dc74bc57eabd15bd67e2e18644603da7475500f3270237b1cd8c7adbaf0070bfff0f00e443efe6abc11fe89bc1700d2a89391af57de418a4b00fb42db743816f75fbbf3059ff92bc7db76cf6aad1640100fd4ea75830b830a33725f9bd7497a24ae0c90391b3bef76c4d44cd63febf61a23ab142c62a06601e5faef1fff5cd9fe0052bb0d6a0e5d7b4023322f937d5881b3e57401e1203c698322cc4a33cc15facd3fc3f54db360cfa8b81477d9d2b58788f562819df8e0511c937e2b2c0772bdffc627d47249677e6e9b5d3fec3adb826be353ea0e1f1dcaf9bdde3121641dbebee1906f59e03f621442454be46bb41d98d9bfa68563a6b5b472c806360c97170e5998e2bd5298efe600918fbb34e3304f88819abd233e5113361202c6b0991167ff54e7582d3368d0f4c522cb9606dbfaba86efd9a0493af6c11d6260aa7ae4b639e55f001bae3961b153665131f17ab142be927104b0f8708045841fe167305c47d24fdf89540624cb5748d09be51e96a932d78f9810d075fbcd474ec4e95800f640dab3a21c2102a6e9f5e82d8da2bad983971ae4a49f1f5e8e678156dd804cafd34decdd50a432086f534ed88fb109a9680bf5b8a56184f00a11729b3aa56ba8910aa018346a11bb199fad4372f741aac45c3f6d90c4554953cd174b74fd76beddba222a4a070fc122d745350c22d760c6b81fa4a56941507b16543db68f866a6031333bdb96b1f6d6019228ac9212981df4c298ab717b126b5324df038593291345ccaa7033190c1caabe02b0e34f70af91bae219135fd74a5c295591783d246ac366b85613f5cf7f362167c7341832627ed0c354e7ee0bd4065e48c5a3a9c50598feabd22952860e4348162168d0e97c3f5fa0e4da0d19d13f95be195d32562eb4fef6bcb6ff374ea745f7e3b81a3f1743cb6abb8fcc795bcb47ac04d308c136c677ffb80fc356968f6b764ea910b3962511753be3983f5c15302930d888add42b00bcd35c80eec6f1b8955ba51f53acf9ce0e711800a02405c579ce34bd6a9849c26cfb66c3eb768d0f6a54e0531c39f4b77e9dc1341cad988204e4b5ac981f67d25e73e55eef6ffc83d69a05f65d2c7c226ad370ad9acecab629dda60b01bdaf085465da07d68e1e8635cba5ea9d871824b3cedb40dd50969f69bb86ad6c762aa340ffb9662eb6a10775a55e1c30020d029a6d60f8684c7befb439f8c4a6590d9e20d25132de64ab8c819995ab01442d18cbdcc3284dc8684401816b1158251997e6b021f45386edbdb7ca3454ee339a339322517112b3fb0357d083c16f7d33d86e571524c8e72c9cccb8a586ec9f5471b5ae43121accec89e9b7dca9fc433ae853b16f0b7b39f485eb0b5c465bf960699a30821c16f35ad86352460dd52048388609a795a9c9d3d1fd9c946c874ec48866c93a38d5fc91e8fe0ada95f71cc49bcc235c49cc279b4967e333d3ea9b7d8bebff3b887ed4f856137bdc4f4dd81ff25bc669426e44899c85d170fc7448b8970d74863f10d89286f724cf5dc28d33bd6ea049e133ab06c567759583cd7846542697eb404bd5e9de71d1b0eb5186986a2cd44c34ab1d85c9752327aacea7a62d3b37568dd1b960a5aa895a709f11f3fcf60833339e66920d6cc0188bf0f62db6789e7e2d097ce29e7c094208e13aaf459cbecb9e364010b137c8f71154f560600459154db8f71358ef384ef18b1805132886300109b812028ea007487b841d470b29a9d8c4184ada0f9b474d5aa1f91a03ed0b63d9357555629a9d962e4bdc1ff70358acf3826ad913038f348a7d9286b4edb2565eccf48eee2575fca5c0fcd9832adde3d14a0ef928df6c0f2e5694f706ec8d9eff4ecfd78ed90edddf95b6d9b8add16c95540c37012b9261929e3ce4bd2b4f7ad69e08e60909657781de90dd004230f026d19dd3e646245604086e92380e7f7255f253c79639087f4cc1c2e33a8327c690f83d4e30f0c5f038ef9c73bfc4366a6a90f1e0b52653983c52f6582c74a066ddb6f8f23fee42d541f5b151ba11b6ae3b5cabf144bd99635609d290d77682f71712bc7d810851a7a1c3a1a70c13cff7c9c0b8e75475455316e9d3975e81af45d31f402ae1dca41e5ef7c58ba5429483cc11403e998221186a271572d721eb7640543351354aaa44c790e7739a8ed47fd57e34f0192afe0f7ce688a4b3c4e69ca8d88b6ad66b5d64a603a7f8ff3342d0a4345d249e882f83ebd518cfad362784dd7b0ea4240c0a55654b461cb61ef1a89cfbce01bf5c98860aa66432294ea8421f10920c03606f3df059c7a2b95c1793ccce386c620e0d8c72828933d5602cdd352a8e309c00252e76ee00e8453358a74f488b94ac57675198a8e15788b18d71b68553e09b5d3206e7a7c66debe5b4ee4a4b786833ccfa78c9d5f2d869ca3c1c85a127c24273f7080f2b7f70b116071deb1ca93ccee456e627314b50ae73d37b408841a2f7ecb89989eafb0a70255f86f20ade281e984ef75757f94c3a15232f7d93eee2588192be6e6f04efaad2743c902015dae76390edc91a4338ba8f5a23815ef3a16aae8e01d9055848aa3a95a68945b86cdaee8b5629c346e37c7eb60b0241422fc080deb99d7a2a8ceb8ec9f637d843f6193b8459939e0be853825e68e60147103eedfa50fb2e4c65c8c260aef282c90cf83954727b9a74144079c00d93e07b0e495b78eb686ffefee68eb8c45eb1b9030c464482c0df93d4d7e30ac474fba9c31b1f14302777af59a3163c57377602b33f94ba326b5bcb9f38f42f1eaf582f9c45058ff1b31bbf18965e9061ee504352d289ecd63398d861a4f484acad5291617718f2954e6ed9af85884e997315a094be03fa7861410c70b2364faac81b8fc72f42f016e6ff4ce8d11cd7cfdb9ad5e1d42b47f2aee5d979b70159f69daec4385452f92c3245e4db9947beed4c655744ea796dd60405f7cf1df9e6e17d901e5ae289ef74bb54ab054aeec54e45c9d7418c76a40911e1851fa025289c4f099a3d9ef71a72356d081fd94d8bf21f6f8b40cd3696af790d1ed537f02da9a8401a792a168cd7f508f4c2e1a50d55290dd97deb7e32be895bfbdba998a90e5baec8b9892f80dc84a7db6a84e3ee8658315a783c9a2e97837a30b290950ebb7b289f3c53a6234f7516d0ad7e244e6608e7097871653c21a085378888d479fd39002463061574352dcc8d550b42adbb1546d813405ef9df1a2877ca6ada4d613afbedb72e6d755eb5b870bbe67c0eb92bcddc05b735ff061a3e3f3d239ddb5d17878b7c9a9ea8a618172042eabbb08034f4c1d6b94326c198f401232d05f4f5e8c5326534c829b56c02cde3c3aa5f4aed10c1c519195b3a6a98a236d18b01b690baa8849c48f9b8c4fae9c2178415e39a1b5e3f83f25434f90c791f57a1bb4a6477fe28014e8e010457b192816d2a26196c4a72b161615e99cc22acf7cd8829a7bec1121975f06c569c6a1200cab156c3fab6e991aeedf4f962fd5fe2e51c75850b655693179c8c6c7d8393eded6876e397bcf9dfd020b7ba423acaa906e7eaeaa07571644b131faf3b3d9fe6fbf20993af02ae786e720305f2f84e6f819be91ab38ea5ddf1d5e14f689d2bb81848a862d955b1c17c2f4b4658d9899f079ec12191d67fb3fb63f4c5880e99f9969ad8fff3853802d4b432f4a48acd36fe43949ef78510c4c09f1b5ca8dfd35ff0561d0f41fba433f41d4d6948fd718d724424e9553336215f604c10d113a443bde645a9292ad10bb4f251f2ce9d791f87a324cba1686835299fb5b0593527d2b40725b98f8ff418fcb084d24de94db4f2d53f062e348733f492ee9e40447a0036e24fa6c38fca7b5124e5a5052259e92409527e71e4e0ffb895ee8a6b95ccf328b0c885f2ddf0f97ebbe9da528f41bc75fe904622b76c2ca90121c18cf5bd18cc66a97d0e7a9f29f2c2b572afea0c1409153e38d27aaf7766c2c2daa4de4a735e49351c6eac21c913ba3baf5053b1dc8ad2679d7d58ce6ffc5cbded787d10e4507a8cd38e7a95f9c16bae26c68edaecc1870b83b77f4c98bae4336f1513ab4733dd28c053fed640dd8d8fce3a4e58552456f3129357dc8fcd5714f2e280b301a4030f1e5860f4ee2cc9778267f25d8ff8bf4d00e3c6710548e8fc2408c537a6826f5a59a1071b73b7a686c441afa858dc54c0b851e5a3efeb8d046d73c63a67564f53d3f8c9d140c79173046fe6b924907642706164ce20cef5c3e78b002852fd33b681b8cded5054031651916d6f884d669854f8f2d279b1219c237c8d4926e85b1324bdde962e6725753da57b96307f433028d9d297edba3c8c1a79ca343b1ccb8e99902746ba78b437374c6a2765ec5519ea24ba373923b59c09b4bd574ef8a4b1ffa3e3d985725ae79b5ce7da099b54a09cd7e6c90e7a106e66e1a42750cb84cc68f41754b6460db6ee3703165bb6c0c839b54b64eaf8c19db5b21d9c1268c8ab28e09e9614b3b0af73613e29bb4849ad221ca3a244cc76c3452dfeb3efc812f49c8ea17a516481528ac5ab2cf0294cbea407159be401c1f7acc0241fb443707d716333dde56f1e62c434b3916b62c88c6f7b31dcedc5c925f26331eb4d1e7373179faaaba4cf9d8a3da5dc9078a82bc18e34970aa887ee3e4cc01882f69867942e5c67b8025b4f1b65d5fc1c82cdc552c0c4da173242252742c8e4185f15b8beee2d4c484724fcd70c8a261dc84704962d66d5e3c2d28c2c284c156eb865dce48c209bd6b863fcc43359fe4a465d55498250a3175ffae567e690bc5a8107514e2c5d780f8f962f3acd3968c0256fd2603d3fc44b28fedd8e5ccafc8cb02e35915828dd3801d63860530b7d2ec4baec44a38f7235c77f3a061f26e356b0378c066ea1a313f052bb09a36b11183fba1a2d1a97b278c0317b01cbb170f5c0f76c041709731fb94d239d2e0132909aa11e10b71a029df398ab85231ab9226421f4970e906ae5cbcd186ea2693e2f03713a4a3d1a6f8dbe4f23ebbbab8af03cfdb60b3444a31f7e201360dc351cd8bdc7cbaa7e226c0888ee6ae716f2a4ef7147507e101adbc6cabe28754ac702b11c9bc64cb80d00295af731686da20eb222c06c32f7b85db74985bc0fb441a9fd73b9d5e513ea70764e05995a72c49992b0038abedfc3dd08b4c8151b8b8318e1e0c28004685aa0d50557c03bd15769fd14983cc016ac9c27ea2523c6c388be5e99152b06d7e59df9bfdee8b92b83fc14ded25a6b8e7d83254773849831c3b7fe283f35966ccf6f9ce55e19ef89b960106a7e6c75c28952626b1fcb87a4fb01a5cd6d139967089bcb7a297c7b9ee2952588b9f734b28b4a185244913c59dfa82c7e7ee7f30f955fda8e661819a25686ce829fc2885db5730eef27a127a1085d534a1dce4e415940c42840ede0bebca366c8ebff4303b20c094daee45fc247e3db565d6f7120e87c5e25ec0fbe3c97dfad2097f1457ecea6331c9aa2ea883b476d4bd809332948ed9bc22b35a9aadd73e5a1661d090a22b8525a951e813ab4604e6f4cf2ecc534bd500cffe27d064c565309b05e02e7cefc5cc0ced7ed968c43f47c0095c9a1bedb7ac0352ff3878c993f8343fa011533ad2deafd5e33b1a3070b05f05ba7ec4d4e5fe1d0ff6aca173708da0c4e254cec1d38b7622946aa8ad2bfb732042d6b11e285a9ef044b56616a10f1597aef3123edbf60405e29eb7c9ebc227c8406b9fb084c70fc881613c7c261646d40ed847ad52433c7e632fb67c1cab67aa48620355168301bcf6dd7c5858e0440bbd5427513360cbc62f10161b4468c7ec7a10ab4d44c396e784019ff305a025cab167701d447fd71c7a94e908073dbfae86a39ee35df73dbe6ee7581cde64e939a2a3fb3f6064f41ab6ed6ccb77a23abee4f1727cccaaf885d27dc6c3c2a0e7cfda4b915986b4366aa97bfa879fe1311944c85d3047afeaf5662b390dea8e6149167dac81a0f106def27ed4682e9b6150895b4451103bc0b06aa32fee61a76715bd9818a61835dd910033d62915e3e7ad424da79c9d3215416ccc116227f975727578f2e28aeb55a60621d80d981611f2527a8cb0d9c0010380ae348b1f77e6d3b11e3e5cf9311be4edef7ea787caefae4e6d2a63938aa16a5e2deae608646e0c85e832af45e1940deb9070fcec6b95fa8e1f0b1d76e4519b927e178f7164ff91ac2c98e0904dcad3be303626f6a2f08bd58d32e624b0448aa921280d8ec2db0bbe05799c48545b2ccf34f5c2d8257be3e28d446363bfb1155d6c7f52b896e1a74c32545ba1edbc055659c8d7d772bd0dd66ec6613d34c0b38a44f954ff6a929d58d2bcdfbc878ea72355d824e0b0f1923b1ed2a2054095022b572e3972942357ee73e79823a7dc73e79c630e6ee69deec8915b6ee40cf9b07e4c70e7deda13b1828b12faa97698c471bf2e12c1bce388bdf6377086337ae46cd09c48ff42851723f852a0c857d518b56a67d2e212a5e7d0a658af934b6a4ad077974eee3469fd35223b2703743ab993e4813f019d410ebc93b8b11a524af0957d3654f311c0b83c40c7d5a487a5281364919936fc2090a6ef19249048f1323efe223dc02ac074ef5f1183cef6c712f4d129492877a5ab4751c1d2a88075c40bec85cfec691dffde9eaf820d8c2f5e7ea5a5b5384447e348f005b485fdc49b0d890607b7ebf4326c0e0f6bf3ebea610558e3fc314eb62d247b5bbd81d24b51c1958e2bc63168643298149e78f005d92a17a8e517e09af22e1946ecc500913a4b5b1f896ee8c91221dd8edff76ed9c36bf06e007e8ea32b7f9880b6a0cbb8010568e662465058bda374f7a3b4132081df35d2d0ab236c5c42a18e8bc41369529d380ce6d4ca8afd7c5dcdcb57bed59564b53064b5a953dd77a441558df2a3f2557a0fff538d5168ecc90d359901b1e9c416013e2ce2a6c0dff71bd16b1903030e29b5253b30c80508da290185f7f4a1e46002ce30da4aaf1fca9d66e9bb0752df0d6316b6057c19f90c232b282b34a6f88dfb2fc1c6b83066e95696d593b42c29764588706bfa9de36c5e34f8a38c3d5d365a37f5a72b0ea3ad3a99fcf24683e259e2c3aefcbd59b0dc5f5d28131198da5239b1c605d8b10b64b57492630690ab0fbf82c552c258a6b0411e57cfae3fd5653455d1abee15b126894b3a801792ed570fbf23bbb19142b9c7de367b885723e6120d985a0e09580f9d761bae61f9fa3a0c706b2ee19e4534c3ded16162ac793baff020c7412a9517fcd4adc95b2863e530d9c4b6f081a22df46b49844cee6bf1c14c7d8c6093962d45046b6e759aadb19ba2c26620ca31c03378149f13a16dd7039506ee20116854793885887b2a3de8695de6f6eb3fd09e05ce2b6cef27f519700fdf249a8f061edf035c52947f33e40c637581e343cf9c09773b6b50f78575411773d6192b9fafbba342fae2bd75e6365803a8ff5b1d2e1807adf56b0a8f75b5fba2ae8e7c5fc44da2be4eeba2da6bdf2bd0621ac94f1dfe0b88618c08d2a341c3fe37910b22273731346a6c441bf7e530c26c2ce671e761c22d61d7e9dd0bb08e99039a6b825997d716747d13a5322158841d7ba92628f1997f6f0e814560bf450142c37982eb41070ed3f5d85f5c49617e992558b2907ee84b6ce44c336dc92a37d4694051f9899e152bbc774aa401b7d19e1986f2bb4f11040e72acbf6b380e0ef9d6b6d2a6d13103cb699eac51f5f1d5e3f809b4fa2f76513bcf3bc67fcf63dd076ff36667353a22b8375dcee5e18444339ef372d3a3289003105256eb2f32de9700a14510ef8da904e510310acad8490e24dd07fb139768db7d0191726b1f98ff8997f396d3d6df34f821e4bf0c18525b529a8f4414fed31740f81ae086e3800d5f1ea0e73f1b0b11839f6c5fda54e5e1803d106b2a28c638e503e338f937a9915b92a3ff8e6457a21fc1ba3d401eebbbd05b7e673b644fae69d1d38b96fe9f16e47048402cca33b1608ca8f875a88362d847b066def004b848c0a94b7956a00e83bad40ef9af355009083a714d8dcf435d4c5358a65bdcd880302b4ea8022f892c607b8b586de79c2ee589a02770193963c475a431c06e18ceb1639467c9c948ce1e699307b72c7a5a4106877652b3f85fdf9e3b4c0ef96b7329e54137a3f27a2949c12db9a79c64060bdfc1995bd2f7eb735e7b0638fd501e4e340527773f4728819b545bdaa01cbcdeff94684e3d6f3d0057cae33aa83fa9c291fc2ef6f2777b78f80a6f75230a2e9ca82ff981f288c4f48718def9b3d0a4f5cca0100b97c8845861929e6d79ee0242bafdbd343198a93044f6920708b92a953fcc6cf86461378637dcf7865aac198f2d71127b791b7094750ce0d0653cf336685635a50a4e6df3afb06c01f9b409fba1220ffaf675164f3c65c158a05e8e178f6a4f038e9a9bccf4698874c95a435118733b0d95fdb6c376a4527734208e199c15aee8dda2629750a0d1b806520b32a698c99e5f9f0b55ddc26ecf97aedc2c8461d8a2911ebf82dc44223a147c0075739398e6c2f69cd57c2e2c8512e7fc4f1e1987894483388e630a947bb8aeeaaa3a9ba687cd4349ac86238c97b58a05212481d1be5931cc5b55b1aa54efb7429e8483a3b18152ba60c937971c607f180be110d5ed7bb4786fd83648083e3d69708ddd52bee389e27e80686347e3e445ccf884d87d1ee5b0fee4afd2614320061cb748aea9f7bce0eaee2e55581dd1843f44ef260e3f1afe2b5f59e826b7cbcea976559218ad1feec3ae260059c68a988078cb917d9a040971e1d22573265b52bbcb69a2076bba2ff793316645e817f29d9729a9ddac72e59a59ca006b2e633a09908b157b0ef906962d56a8d01bc7108d09ae13c8ae64da03a42c19418ac187104fe3e0f135bf14b3f2ad91f2f7a5f53a377a6b63798922716c270ac428b33cdc95a7b1f19f53a536a45c9d65986058aa55f8fbf717e7c0d7d8b19e3b2dc317455621ce7d7774f256a671a3d27ee8da5d20e307e764695c8817c6728fee0f1948d6fa0b2c4e9f916e8a544fa1fe9f47bfbd8b05f742fa2d3a30fdd682a318950c51770c32a5c727d8a7079cbe0421781f109c1171b698787f0c054a7e60990d554f468841e277b1cc6d7910846105976d88b1d75f0506a733a2a86f5f8111f38cf21a04d19a41e28e7bb2640e61cdde210c41ce2fb698cb16116747c31d0fc5a359f77bc526dc0a51a0cddaa3ffacd38d506e955484e844ecc3ffe0f43c2e1613ef2d0cdf6e7d3b48754561ee855ae3818435575702d3509735d950cb2889063dfed12b35c025c1e4360f93d019a3e78fcc2e58614611fd8de2f138cb446a3cf7e8bc3d7663493f01a3677cef8e75c8596d330fa0ad38babc0d8564c21cf9c0edf1844eb3f181070bd7d3a3e7e7fb09a50359f0e245e493f57bf2bbc925cb3caf7fddd76acc5e52594194f31edb4bc2e7e07ba050308fe9282d5a114a5f1b9d6191e652883da23fefe8600924f98f389328c548d893f45c8dabc2659c473bbc128ca3a97cdb0271556c0c1ade8f92bd0c4411ac76e2296b5842112e46112df9b9737d1bc8427829f1d89958f32f1efd5f478708091638c26f99a5526b338e6750d08a1997688ca82f17202f4875f9a78ea729cf81a7d2dc9697e9c4448a503dd7783c68121e17a453bf8c802fd29d49af0d3f6d175af892a253b9477363378f18acc498f3e3b19c348e9944de61f1ff8a2f9df4c0881c636963f01ea66e9e8324acde33c9e6bba8daae4b7d8f65cc3c84703bba1e40c00d2005ced5653f11c1c4403b8d77ce2d1185010a88bd461ce3be815fa0458891b79773d915ce250c90ab254f0b84aada52ee70bcbe9828ed202bb499a1c06968e8a2ce5659b1a375f87f2d038431b09a8168aa28900125a0811e115317101723f796e801a5080f4460e54fa53faf1734ac78592f1d3d20b72c52d4e0372b0587396ec9e920d59d7a666a40144b189f4f018d7605aebf6232856aeb88e8ac593b0ca2cab38f325c0391cd14e0f4762050642779eaa0100bb2a88a72e6f6f9e89f805095b06f5951297670b1af0a52dd6abdf0aa70664d883f3fef35bda1a3977b353eaf10583fc767f041c952e42b1475d7e852f91e5ffdeda1467dfe848d598a7bd377c147cf517e3f4dfb4703847c4028d89068db95ba620c024a55362c8dcd2d38672e9bbd8d27b78c9b9cfed8baaba35255f0227c732960c0802be6356e8003fcc5c552ffc71009e71be2a441100f75cb5b14f6933b5c759f631423ce871a9997697c29f25786f00351b525e7518a29e1968d006287bce3c87f86e4f53b313db48201c701bb585120277ec6308b1853c601e07cad4941bc438c35bc284a6f8a3981949cf0bcfe2667fe52bbd3144eff6d2f42336c872cc92eef36bc91ac18891105eb3a12ed2ea735d8907998669a72999a957308e04ae7c6d7a36386398687a623096606826105064106aba628d6725c19c0d87a09c2b0d85ffee61832ac5b3e8723baf46a412c818b2b7c338bd1380a684c89ee66010af47d1141ba51c11f0300d1374652bde91f06898ad8b0535f586cf29061bcebea49d50588b51cb0b1c88de8e78338410b7827c4200365341dea7890d4e9a13474b178551fe2c48b1413832c0f6850a94f4ba260e5e06075f7a3a815c51df7fb9e526c054d1b96e184cce92d4bb68e588b6ec8fb6d9703b66b2efd36a9e1bc66abecf13af6941c37c0f578dd2d42785bee86b0295661cbd25456765ae48f78a44d5f5145092da7f084f093596f389711882cf6f57d2e492c8c88228b69c3e1ccf016a69ced5b9efa61024af97a1adef68553d2b0113d1849ab04f421708792d1f162f14dd4970518f79405df1a4e51d7b2c7873c3800dc65fb752c2211203b3465755f4629a6a3c4866bbaefd673936ff49069000b4054d8f524a9fe17cefc17f4a779762885da7a3e30a7dec2f2ce4cfd5593f3dda9f2e92191a1874d08d99e1d4d8b70e68360d7f823d494eac4c6f0d245990960d1e302e182a53ab9c6f7be5bd41cce58113a55ff02588f7a51a4f1c6eb9bd9ad7e8a5256a4f15ff0162af4d0a5961b3e1a93478327cd11eb0f15d548de1d6b084da4342fced9c60af77c51ea85af07f55401385559149e99555ede2f321c74ace7d02205fd449d20230a13e93f8e57e1c22243a4285f12ccf964070000b862b42027138b0d6fcec83258d8fe7fd42043b44fee7ba04a7910b5b27fd686c52966474024e42d725f250490620a49bc49e4103e19d558fbcdcc630700bc57edb0472a69ed21f225e4420ce73dd29309b61efd515056354ae6539f0f5e9062c5a7cead44f5c7ae556820eb972048b3463b381973c9609918e39af2e5796ca7ed9e7cd6846c6d558e05eb02093ae48e3d01015238f63088655d6e82e93b49af27eb1c6979c3b81470b32caa3066c628e9476f508c77f2c81a5df0fa8699a6cd3205b0d4b376f02083c10ca02c07632dbdaf72ef1e6ce7b3cf421321b4319332fdecca32899993d5ad4f853471d32565cee8e4a0e192a6c6e8fd0f064a0539d0a3d382b20594799c2ff8120067964ccefab9d96f2fb16716e3d017c8fe9915a3440987b73a6bd07a916f0437c92afa5b7e8eeec35cff3075842bd094b129dc32605da838e89b27bde3829794ebbb188292a1915a1f13bdf629f64181444c10720b87dedcd328c3dd2793ec188a0692bb4d116e791f9e75c1a104a6e0a432b37a5a6b562fd378281c86bc8b30aa13c446a262e22d6fe1ef4392f69d4741a48448b5e92ca9653be408c341698b46a63811912ee8ccbfb22c7fa8a6ae452e565f133d02844809de47b8a696ac8d338954639c3ed3f2ccf99116b96048e66c9c9406b2648209676ac0c64a3d083da645b7c240cf39d2c4bb40af39f91d7a72b6da58b98ebe14faaae842d2ea9a9cd23f154a41221b0e6ede667f1976f5ec4adff870352cf8eb056f87dcd0a0b7e2b10942c3644a934b5da8699d342052627868f273dd634c4e002fd268e9a7cc432c446280135310d1a0822c709bde391254e75ce6c380951beee6273f448692c20b5222389a3867e8e4bd9ba44a654054133099ec036d08959babe91fa74aea85569caf9a454053a664ce25bc37b1339c041e00034f905211744e4cd56e3e5fa8ff44fe96b891081c5b67d2d4aaed4a165d4f58bf867f2094b69bf7dbd508a49041aae9f77e0dd556d80b99c78e4a8e14d673733b1385dba6dad4a4ee2a311cbef06f4961530661f78f31f129fb1cb5c0a72f33cbcb1b4c97dc1dbfb6b459a59ca30c43f0b3a4d5bd5f78c228a4f813ca23e6184c99465c47fe4e9c373d997125d21e0317013090105d69795b07b64c8dff6265f3010daccff529e6fc3805049882296ce66d73cdcdac6b584f22622bc752cc50317927d2d98d2a66c62bd2975d2fc402a2632e63c705090c917758d52cd2bae47f402c6df85d42b4b004181f2f067f228dc92b573454ea1ab519366bf93ffaee56b9a6b3d6028d4ef5d7209ca709f232c09d666509ee3368617bfdfbf5eb6a92c58e9fe4705d8992b2acc4b572b9cc147eb8bb422521c90173874c6d7f86ee530b039dc375decb8a19a3e3233d985cc10ac5431cc60c88fd535176899409d7e11f01ec1832e212f0f9f6dfd8166112d4d07e43c32e6aab14d82987bf089eef3c0f435c5a7d62084d8d89d8365218f129546c04592af4d206ca76d0a1c6122894eab8a048e9a89baab0affa8c7d15905494b55872a6dcec42652a680fa85985f53c8f8d58ae3fdcb56f05d0cbc6651236c7f00bad0b66382b57965574ba327902cf6c15ccecad2c7c9064b570cf26b77fb66e0e80e7d42a30b6b00c83f7216804866c6536883ac4dbf43cc2a1376f1cd62f0b0ecec3e96da3c4cf4500086445b6b29e4edcae1c2d5eee8f39f46c6502963dcf617477406a651c2ef7efade3677ee5178cbc95fdc8120b0841ab228a077249fb9a0f0c59c45bf365b242c8fdba564351e25ffb52c0804b004aece92ecd7fd4bdfab3645d8666df5deac7724b905ee3b9ae6ad17e77e378f9db54737eb70430e4de1db247668930377f0c61228e8b6ebbf2c876b99948fb25a394e4c24e1786c63fca54062bb717a03a31add7c0dc84e102894614078462316a4f946ac241cd755b13841772137e2345b3213e4fc9e717f238509c8ab319fb54034328a21d6536b444d2302ee072848b95401699bbe64f614b862a1c9212b5cd3c07876032476336c2ce0bc71cc22baa0a142c59fd0c190a9aaa7c230b3c10c5a9e79233849ebadba80075e07181294f037188f42239e2a1454bca0e3a29bb89138a03b49505ed2bc9df88c87787c12f6031498911cf0891ce884b430de953d7bd8b96702f7311f37067338e4714a32c2632904b58ff65378836d2e3517b2003a27957cd571f1d9ab3a4870f9954bf8690380b12ee0039a2f926c793f3269b7664c97f5a0e6f3e33480203af0ca92580e7ad987b60a767e419c2cfc1646048407744ff64499763a36be4889f025740b103eadeee56bb5a49902805172f44ae143414d25d0915ce55f41e1cc9fcc7dbd81a116d7ff4344e7902440a04fa0173995b3054b24a070d97901918a7b0b5ff4a36add26cf4dc50c3f676d34439ca428c6f92796e6e31446352d3c17c7448c5a85de725563008c230e81c470f46ea18d58347e8a388e6d15ce37b65ac0cf1e83cfa9290bdf7de724b296592297c09ae096e0948bc6412c30b2d36d8135f30418170b16cc9a19381083502127046a79f1eb61ea30e091db41e0e06386435206d453d96861ead8b293dae1a7abaa0d2c3ab8b2c7c70d910d4c5161e5c312c79a1c30e32347971821d5c4884bc1022816b06212f64e0e392c147c5852a2606aa4e02152b20a2e2092ca8c001153c48a9906c60c4469d7ffa7d2ea2a2868fde91076d0c6d0c6d0ced47fbd1a098b3f3417d7a7b43e84eed6fc583bf7d87bf3f23f4eb1752f7801ff99cfef6d4eb2df57c30103e53f10e7fc7b3d36966d229c237acdbc0083066308431314a01dffca04ed805fcc4d3c0a7b7e13cc2db09c65bef4225045f1f38079e5bdafa6cea56fcaa24c1e01dacc46a792bc65bd78cee456976c69bf96464dc25e3ad80549771998f87a32cb9eab7923ee31209f35640647856f29340bbaa633ef3c923c9b22ef3f1441a6638e208170f0c97069c1752b89c647ec4b54d2eba7898063734b102170f0ca723979393c350c33882cb4976e3099790bcf931f4447232491fd4928b738f87ae62236b1deba17ffa45930dc5c536ee437f86e286add47de81ebb66a7f36305e3d5b14f1a4996f5ce874b87e88fb4d4888802bda54154e8adcf1904bec1fc7bebd34ab7ae5b17b73eaf300e75950f95f4f596e667176fb16f22c57ca1457dea0b511fca264f2af10d7905b3ac5ba62cde6a01f34922c9b2ddf70f379c48561245e11b1b49c438515545f785578ab751bc75a54c8cfb03e58789f9e44e85ea336ca589c474613c6c21d994427df30b559806c58d5d04501ebeb80d6f0536689dbf07ea63416a35b83df4d65b086ca106ad773f79eb272617e5f2eddcaf83bcedb7c939e3b4b3dbb9f4b60a66659dc43e1e274030af5e3f1eec892f9878598f2e25e8e562d70c3209497039b1284ffbd8c5a39fb74b0d5a9faf06ada33ed9d4a0b58e25b1f92159d6512f5e289b8afc90d6adcb175a946516f56ce96d33bde59c7134af7924cdb21eda905b9a65c7601cd6087cc37a088013934b3ff4f9a19f98dcf8ad7913896fc826c9b2ae525d6bede973a141eb451a8c6058b72ea44e9372dbb9ad739fdcd2a095dd4e675d2bbaa16c7aeb13495a7bef447aebad6423c0573eb30db6fd86a45ea7a601832dc618fd86630ad5e7a4990d26931b9dede7af79e669be4908c4afcf9d038ebc538d8dd09f4d36e7bb644e07fb41ef084e8e987b8320e6353d7d7afbfd090466f137004b12b3f8b1ea326d23a3d84ca1d2648a04e2623438ba2f2d003aa20b26485880a0810450b0d8e0032c2f2e9ab8e881b275cbee8eb65b76b77cbe5127a573b6eceeaa83e876774b29e527a59452deefeee62159dc3da7f76c654b296decbea9d4e32725fbcffbdddddddd9beac9c5be8b92524e8f7c83a5942d41d97c34278da00e2d19106a4d819d76da89d569b14a95ecb493469fd32ad9692756e917d362952a558ad95929f605ad95624ad356aa64a79d5f7c31ad929d7662957e312d56a9d2849901b3dd72d6cc358fb3229ff5b89f4d7985a4556236ce6931a7b26212b39b56e92c82553ae5151cadd56612b39b4667ddb42c93d259afb0189df20a4c6276d33aaee3b24ec77a26b36c5a168bc92bac8e752b334d6276d32a9d9b96c562954e7985ed172dccf2c86318666ba599dba8a20caf2d7b808f0d84b7c7fd21f53594d1185b34c608f4c7cf31cc2dad2f4dd3366e02bd8a2c09d1aa6bdd4ebff58deb4ef207528703b061c3e21d7109c838d65f3f2b34f95131a02515a83ddad7cf17462adf1d5f3f5c73be79a7d3a9897b8e0e1dde31959adb30f6ec97f28ef88a38ae65226a104a83b1a8591d774418308e76fb4d71826ff4c7a10c8b1b375a3b2a619d5232efb436ec1cdd46bfd14647950f99c828c8921629d8628c3dcf5b96b0784c8ae59e2ae0e9120ab210026d1900012f9db350826ffa627156b99128fe45d9a32c7a583fa7b8d1bd2646f12127841d08f0530832f879e5ebf57afdccee3e52830d6c6852c30b867082c8d5d3c2bebbbbb924d74619533f6b6cc41a3ecc71c2cfa2293498d343bec258ba0f598b8d0f790b8d19c6243fe7929f45247d1893f8199f1c4d2a3ffda7dbab72f08a2a7eba8e1c1e3fb010c24f5f21c80f3f5d4811a09feec2154e5e4040a2c70a1f2cb0f8e1c11110108c8296fcf428d42d9672458c9f4188f244634471e79c5789876fef396710c290d245b737005660f916b2451a86613fd88204580f98b21f8c81434502b25620c130cca7edc19064517973ad3001d2911545f050c58f154cf44085911551f8500592153fd0818a2615175bf47432d0a1075034961e50f1a1c3a0075828d103303ef42a9066983520e9f06003b6d0e2890d9b2aa6d04208cb76ea3ce438f40c73cda3b66dd8e6393d396e7693f39c3e751e4beee339e2f2094ad69cb3d21e6e90152a30b523b1e596ca6d98cd6a1016b835bdd65a6b9d1608c279ad2b6855dbaa56533a240fc9aa1d1037aed0adea15e64548905a6b759817c6991e7b26b1714de8e2f3d5b7db2dea533639f9d63b54ef2179237dce23be3693af5d82af4456b22ae79dbb6455efbc56ae3bfd5c945fef7ca08163e016f57a7dd60a74fa91236f8a84aaebb5faad8ef2aa771492aceac5a1223fe44d5ca2c264b52fb4d967bf2569edbd3f4e9ed35be7c3cdc2383f55c6a5ea724a16eae339e28a2fc9aa3f92559d7a3c0d56efbc082459b50be28671e9abb7472cddaa610d2ddd0a794b5ce2e1e9d2a757b7351887ba8b4fa6835cc0e6ccbdb59cd35b96f9fc6631599574cf1b36ae3901ddee5612a82e5d05eaabe8ad24207d93bead5468dfbc3d6e95427c16562c7c3fffca25bd958bf356ae4d5a2c277a3f2c66310c6326166cddb79200e6989fbe179c00e9be950bf31756f15bfd38f904d875f2ce4fdf0b3c4e54e8be17303ff9e95b45cffc88eb052027ef3c7af7f138891f90ceb38f67f3ce79383ff91117bbd8659d5d5bec745a60c147fce9136057e62de854ff91454739bbacb78a8e39bb2890153057e1e4d8f78213209877fec22abae6d64fae42e7a8ef05ec5b494073ebabf8a9a0b95da99039e69963de39955be6d948164b9695ecea3c766598952c2924b4b3a7135b04a58cddf1ca738705d1932db2440bc410e470da31767781c94708a1d0dddddddddddddd16eb36e211bf135c0798036cb9902c82a6a419191db115cda85b47dd0a35246d8a4605886f213e837c831e71438d4823d28aa4a6a46427e5aa37e76767e053a3026dac80811c4d4536b2d2f9eae18948723a296ec84c458cd0a8ac55a952d3e706534ee92ce53c41f64c010171bd81748b63b0bd9d59f22687593da9e5c9608745389e8f730bf0c12837b4a04dc8481e7a9359d4338f8653ccc5ae87ea432329e4b0518409e49962c82903396851850e33f8f6ab72d0a6d311f9c70c316270832a682084510d29d09205e5c36d61fefcb9212b492993a618c0873670b0a200497c927091430c6c985eaf970d1a1360b400063f2cb15403972c420c2295c648ab0f53df3435df36541fe6e821f2c10884281a011837f8dc80a5080728be7574778f2124a3bbbb2d4331c64bc7ba5bf5ddddddadc3862856f28fae2243119c646185122b3881ab51f0ddad447f3788e57ab8212b09b941bad51e5df1722f532ec8f1d26d910d4f5ec55c184b48493d7a90549c5fc84bb2842a6a90b4db167c77110d527c17d5a082977ea518482f635e4a292513171fd2d444b9e26d910c44df4533087dbb172131c177dba8c3e86a2f2a49b0279032a51dea5585f753aa219b250975c9a0072b7a1d4188e953830842baa210d12735740c885c31306a167f686f134a88988a62c8410f335071d1096da9a265de9094040749423491e48207b7505939bad263e5db6792f933977cfb11acd03c4bd9620424bc9ea56081799672042c5fd43454d424544465cb1445efcf453b60e233a508f491c6c82939e5945386a93934e79c5f123f9f0435d83f3434568056aba319339464c81852a988666698646484626296522924189824a39797211717a57b9b50a8a3d309a8eb84386e69db82348d28cb8cac65c2f23b55907ea70a9567fee18616899188888a8ca6141124370ea554c90f2ba2c18ed895aa446da84a15a9a752a9538e72a8460d56a25ab46db1bee416231c118e6ef9c68cba15b1a16e51a66fc7863028dda274099b821d3d96a5061bc3f2ed25380dafe1cd50c33dc61a5ec36bad51c3a327bf1ab1060daf4183c6952fe1c3901a6c1d1a1f6645c90d2d145528bd253a2a0a3bc8e8a85ba145a2a2e5db2d52b7421a64a55bdd0ab1a1bf1277f0b76356baf5c3382c34c44f851887b125d8d0946fc7a06045f4cd7461455812b548cb37c55287bea17cfb8e1525dd6a229e9fc6dbb1a2c4ca8f951f2b4bbad54c9e7fe5ed58596205c80ad0946e35d0f3cff07692a61c1d59e9569fe0f965783b495694949e74ab87787e95b793f46468084ab75a88e79ff17692a010112561e9562f797e196f27094b125312535212dd6a133c7f8cb793944492509250d2956e7510cf9ff27692ae242d252d2551e95697e0f961bc9d242a494849484945ddea9fe77ff176928a928c928c9e74ab81787e176fa7ca93a1212bddea1f9eff7a3b55ac282969e956fbf0fc286fa78a96a6a629dd6a25cf7ff276aa4c393a5ad2adeee1f93b6fa7ca1220a024bad53c3c3fe7ed54494248e84ab77a87af726569a9886eb5cff36bde4e95228282a074ab49f0fc99b753050a115151b75a87e7b7de4e952223232cddea1c9e1ff376aa606162daa942a55b9de4ab5069907fa70a12e3743b5590f8067f4e1721c1f4215db24cb3e93b88524a29ad186318f530afdd4bfaa7a720ddf985d1e8e7e270c3d9337b64101292781ad42d96828422e8d0abe86f3c17bd943ca54d5d0a91e7a38d13e001f4f287b60d378c3fdd43bf0ef21e7953c3dbf9bbf1af16d1b349ded4f8ea8f643512245fcfa5413fa7115c6c08e3e9c20d6243742a49d2e3d48b1bce9ed9236f6eb37ebac53d9ed168062021514ccc3e817863f947dcd135a8b6f8761e8ca3fab0f8768e5ce5914817cc561c2e383b1d2ae58e19c303d808c574c4349a9347b7ba0692be612b40a87c4b26275bac4c4c0ec1dc5af67ec06c10f330629f571f7293d63a7fab9de8d37ea1740fc4233f9d53350d5e3b5b1097b8ec714ea6926e61f61107f3fa16298d9c9c4c29a54e25ddb266323b1c78c6198d603955bc327afc6e836dfdde066ff3bc74cb5dcbdd4fd2f0329bd6441cd19be6e36456bddf6ee5c7ad97ef266237bde5e46a1867737621455c9037dc45856c64820dcdaf87f23852e0e41ce7d1c59d38afc1ba2217c0d51d90e93a7d35cc807271de2ec62af7311720ab35ca6b3e831844893d9888870e1d363620e85e6520ad6fb323cbd3566b041dc322c6284472132824f6cca086e31772d177748e5f0bf1e5c720ccda1a7779138986e21787ac0872a2e10450c7511830ecc0c112442e27d2a97757c594938b2c555eae96134a103f2f177729f4cfcf86db7256e98e355bf45142346549123f11ab54e9227131157da2c72931c69f2b6e187ba66d92799622060faf448b603baf915bb66ddaa6653176de4db18a6918949e79ce1c4f06a5d39048f7c702cfcf2627cf9137a7cfc686688c227ca8b242f486f68d712eca4f528c60f4283f1961e8c36b04218fdb699ee6e9f485457e1a5dfff07e27efee695928c2b47e6191477d61911fd25eb98fbb14dac3225fc3fba72fec0ee767643ee72afac5a1bbead17235bd67294400e34fb1cec9825c8186eb6fe5f455e00689930d555d3ca77dab35e45c88707ff2ce67f53a77f190584a518e6128df22d773c8c9519ed32ede0c2ebe613d79f0f767b7ed6be272aa365c7f203f36d9f9405d37c2797b9b9f7c4ce7be21dc60e7a37dfb647c94578f08f728a7def4563e866c4e9dbfbd558fe9dfca471dc279751d94cbb76a67179066c5d58f186298d0d468566e752f265d30b26830a6f8fe98f80da308524a29b169a9ad169357d6847cc44208420e3aecc00a1a38410587307eb049b7965a8bd9b6a08d0e1fec2f6de101082fb23802881bc078bdb49460cb603a0a52d25001a5c9161d4cb1431397ec11bc94524a29852ecd54758bdf8b0083085124114a1c81084c9040841f3629e5ec3e819bc66bf0cc21a59c577677730d4a29634a4a668ee299c5d9f3ecef2f6ce15d98e69c73e69832c66843a9dca49492ea9073e698363d3b4a29419a06995b35c6a89a924e19a594f7e308c68d744e2bd9450925a5943230a7a0d24ae79c53c32a9d99d56854aa99759cad744ba269de69ce59edd3dc6a1f379859ebd8f466e658866db7729ad69daec4b2a9a14e95a24e49b44f93e2466dba90691e332dfb429ec77c62d68b3d1fadd52b9d33beecac5485a5e9a72a88684cbb1ca7666264a68d3ed9a7c59e7f7539903d299a54a752bdb8c0c850c998416356cb836b401baf30b28bfb42bb619fd552302fa997eede53879a81612b9a1266d52c76eae4a9d341d3c18dbed588e495032c439d3a9dfa5dd965a0dbe205d9a37f08cd741a1a536644c80c60b3f6403dd9d823c720ec212b451a2a967191b5ac4e0633dfb6d97281331e8e46a5da380ef5c51dd231dfb41b94b3f390372767192e35a00dd4c95fa12afb620cf29c474ecb3ee330aec35258776fe534286eedf8c471874c71cea813873afd882f0d0737faa6510633e7ec035f9dc18c33117cf568b58ff94696d958396bdf512de934f44e272a7d7c35939e395fa83ec2755703d5b5c902c4c64aafd7ab0657749b200c81a82342cf690838d8c15738f594074fdd52bf59c4c84204f34d9412f4ea964754f3d2c6173678e9577ec1c54ba6327d44855aa14964da4fb742baf4ad842e11e21b34dd0a291038d9ba4d8e13b8ab51c9dd701f05a2d34e6ec7b64c7b5377e5233cf2dab7da78d3aa7b0de6980dd7e2cd90b0da96b9b66d5a87016404942dd340afb1516444cf6fae6158a743bdad8bcafa10cd370f35e77cfb3888eb74953900492b1931858b8c98f232dffe230806fa060977940226df4ea46f588b50932499469bcab7cfc9c98e866f443f61dbbe269c6b5a6b396ce40df7d18e8ce56856db1951aee6d4b9351d39a634c8cfa98f1edabc2c10d105469a525111413f9842454520a11577c4778115cb24e7c79139468ecc95525a63addc54e9ca9bf87ac55783ed42ee6b42c1b88a6ac36b3021825092850b1d6481454fe104144ee4807e446cbed65a6b6d0209eca24eed77db0918e8e0290ec20d6a7cb045134db53a41433b61c30e423720c2c50bacd892841c4e1045efa048a80917d473911012bf3d170901318e7c1fa117d36f1967c30688e5398554515c8e02ba2a7ea8af007c3395505f18fff34e68302acd9869c2149237ed03bafb08a1bc7af5f6e9167b2ad4b493522aa594df74cf693e75b7bbb7bba7fa82f2e8f55b2f8c3e4e3f7ba07ea6fac317fa573de453971f7f93534e22361a179af0b67daced9bf66956bb75eb73da185ceb34f57293f2e993e96da6654c803e0af15c7402a5df64b7337f36189be73cad7ac8103ccaadcf2b5ab4b838aa73949647f9756289f56945e796ca5b475d611d55340495bf7f7d837149c5b8a04ea71a1b28cffe8c93cb8ff9d69da6b380ea1ce59dbcf828eb931fe54d6714ea73eb75d6b9ae07caca9e514249b7c2eb2fdede3fdd1a72ddc5dbdba777601c14ca5ffc7a305efcae7b00ca5d5c1c857217fffbe285d74feee20db98ef2adf3d139cab5aec7fd50dfa6e2c6f8cd515e2ff15a49b3da5fbcf629c28d1f4e2520a179a55b4b8c63bda716286f7f80ca519e8c4fa95ba81ed355346e43949fbc7d06756b08caad77d6f988500871e5bbce6dd703e5765aa1eeadc758eb26b8ece5669cdceb98db26c2fdf5d048a33cfbb4f381faeb9b8b57ff0447cf5c3c170d71e5b71537c3821bc6a7e166567031a76124fe10ac047ac2fe14bef02edff52a46532574e412e6693668bdfea90b697cd83ee17da40f53e18f0f89c47c7c69afde8d275c9287a388c1096870c180f54471fd8d275cf5cba94535882104170c18163e7051af1f0f1b61290a820b062c490817fdb81110dad89aab9863475c2e592a50c79cd6950ad631b75f75186a18477051c7beca5d6bafa451f18df6ea5d20d44a1e9e810eae98c205037db9a81f7135d808681f6eec294487c32bda3be78c36d84e4e708372c62a36db2deeee96cd8fc51665b3654eb24de6c9b38bae74767377335b619c50c686a231aa60a3b2093f1ac236270ca4bcc186c3ad01cc1bb905669e952c6e174c06c6f26ab5d54ecccb98557d002ea0ad32eac4e817f946c3a085dbcb26ad469431046d01d2f283c5e775a4c4b78d418a97870561f9e9117ab57c81c65be9b9e28305d3f2bde5d542f4c38e6ad4d0aa0d9b6c25b7dd62a500fe69e8466f90c592d2b7bc78d2d90d0589887843a76f73763a4d6a9a25dd752e17ba8c33dadc29a59473e9b28777092168cdaf4fc6feb21f5cf690bee69cda4b878d5f1fbd3fb64f2196e263636dbbb5defa255991718ebe97a15ff2067b4956741bdaabc25e1f1dfb42f0c37e452564f8188314ddcbe382b0fcf4c453e7832ab197bce1a8342bba959e2b3e1f63048a31ca8f3ba2f2fae893e544bd7a36be1ca79a65b3b8ec3c6ccfb3c936a8822dfa16652c0a6209cb7c9682b4f421419ddd669c4b8ff34dca107cc96599cb53e69ccea9095ca17cba8cd389821bb20e665c306a327ad67351104b7e93e1118c893e13b96341f5d10569edbd5bcc8c2a6646f5d2b1bab84419e38556f544282472c2b7c79537c3b330b82be9f2fbe18264518f2fc9a2f70b89a4fe445d5bc1cc07aabcc1eb2acf3c95bbf070431074717171661777d9e1662ee3ad665cc6631ce5ad661ce5f137ce935eede18660538e4fc1387fa111fa391aa46ee35be4409a823981496ee6d263083eed317281070957a592f0c85b2fc6a537447aad6e6de79d6fbed36d7ee4392f9ccfb9f4c2201f1be46438773b443e942e8fbcf488c8f80c107154e7a211557961ea339ff15ad041b90f198ff97264ca83f1fec50b794a0bf34a4751d5142179033ee91b76511d09c535dfbe0db4b6288824cf549e8b4a30f45b731dd86d94524a29a59452efb66ec529944e14dc301a45242222510e1b118971520d52aa7d4d6638fde2930685e4cd8c2f0249a158d414978437cb0d23d253af513cf520dd923e836e086e94e37ce3baaddbbe958fcd35dfd93ace6bdfbc762967d0056dd89c90c3a35bf65b619f524ccb6c0154a94f8fd23967a45c270bec73b9a80441fc2b4ca7b188bcb997e98b5c04d25c3a085c9031bc744addd9525a99d8b343dc15f5cdf9e8f572ade8f78373cd79b02246ba655dba0bddf2a65d41886449e9da0aead7f9705d609cc938aad6f4ed4ae77ba5944e575966a594524a29a5949e596c856ec9fb530159443aa041e99a265d4a14748437f40bc471e65b0d786ff5f9d5b51c3736926593a36f4e526ef42d9bb2a6bdc1b6f996d916f9d9cc1f3e195de9f4830889d2a7f7f385ebdd3a414266aa2ebdfe6e5badc52c56c1db9d4ee41b92ea74e639f226fb6c6ccf3f65a1a4645fb1c64aa7d7a8744a1b504a29a59c734e29a59452365766c64eda133ce79cccd8ac93ce9e93e39c45dce81fb83c65fedce85c0f37fa9c178816b4606e410b2322369dc8cd52ea2cd56089383966ac324d8c8a6fa29173d2873148d12842616431a024d8896118162520810ac2b0e1aa9e8b7e7e50e5bae0e0670913b48335d8074ae991ade5ca782efa2941fd89e1c7fdc8c1a61a9b9a83cac61bef74b7d11175ccf86407a8167777774751714cbdfc21cb4b209c78e9352aeeee2628dfdddd0d80a21fa4bc94fed9205a7ee8eef67ce8820a6ffed19cc5371192be677c7777b3d251d7e8749a001f724a967c90c14b2fe112010c8fc6094a92e8618a974e731b0c2631453dd8b0b21d8510034977e76065003354178a1b9ae841075a88e1248bab8f284209babb3d707f3e16c3b78c4ea75bc05255d1cd803ce0f0d2653a1da99221a6d3992903bcdc6187215e7aaad391aa18e4c8085a60c50c5f2c8183121d828a00c545c195825d3e537600d3e9b4df306a38a9e8bcf6536195be5c7913b9140d098650c0b7db4b82a46f57f93cf976179750f8a8e00634e0808719909a8c51041725cee7ea40c506a82149fcd870c316465c616484183cc8d0a826162aa9e2be533435367204cddd8a1e696430d8ce47da97c3c4e55f6a0eb090b8839660086f80db7e212dc208dfbe35c732ca53f59c7ecee1e186bc64bdb125219977467da812fac3379600416930beac1038279c13cec9e6c42634c3dd6adb84a46fb21715cbb464b758a46a8d64d01318cb0b88f1d05ef9948736c8da7b552a19f7d4e703c67ced03f3d27113bad17364d5002bfd90e849da4da05d312e939249c9c8f88c8c8ccf78ca5b015179ca55a919991f669441d6deab52b983a0cd698823405f1d882a9d71ba2d877d21fb60c438deb7db29dd92dc0a084cca61fc88ebc55b0179f1188ff97862b694179bbc7e4956ca65bed8b4b29e72198ff15640663cc667be8ef956d665be060a92ac5ed94f02ed8af198af7dbe06e286d6c872192ae67a7bd6e9b83877cbe54379fc31de745d8f8b4939caf380fd6cf35006598f6b3026282828a80523d733c611dd066dbed9a0cd066dd16362529d806fef3cfe8409885ec84a16c663d78bc7ae93d7d59fe851181912a1a71d2e9669de16d3320cd3b40c3bf9dcd01a3d52b7aa5ba46fb747dd6ac188b546d252c1a84f83d3653d0bf3e298e701fb5606d90661bc76c9a020a38c8b6e8d64832ab79f85f1f84d603e1e185c2f9f9135aa35cedcaec164e39a90127d4776131e48df6435cddd3c05fcae1ca3330eab3d8e9bacb5d6ea1e7764cf2d8359a096e58654683e198a9f8a6f0871ebd7c4faf45075dae186aaef7e1a449388aa6e35467de8cf120a242991115b9e9d61a8c4ba9b11e552b73bd4ef379b25fdf64dbcd13c7a93cc69f6cd66d5764aa373bd0eda7ab64f39a56bba3ebd4844a5d323910c4f78fe620cdab8a613e34eeadab8c63dd249b471cdc6be35d7314ef41955c90ded4fcd33ab79b7c1a9ddf036386dfce95745e335e046975c50874a7b1aef96e693bbe537ecca68bc92cd8872ede6a14af3bc50738ab9f59ce6cfbc236f3d2337441c94ba4acef68e6f4426ca62c3386c3366a73144a7317cd481121b31d1019e5d4701425577f2f0e4ec8c691ae639dd792817cc394b80639e02187489f2eded39e28eecc38938daaf14a82f8a3e816fb487ad6f8f26b815d858e33e166212548c5377e88838dcea88a1cc361d475fbdb8e4c5eb883b5060220ae360149890c237f8439c6f9f5ae6f633fbcde9759dd5df50315a6de6e387439d39abf1b2037c23cb6498e086366c6cec3254376b1b6fd8b5833f0c4009ae506687f4f04381092206f9e3870213458c833f94ab1e7642d930e79ab0c6d157dfb8ab029936a5b1091598cad4e4c9246a92c5c92708071afb4a6a490b0b0b50fa4e35d1a6349a20b484c68e149881a40222593834a50677240ce6f6b19d48534d345400458922befd88680692d1dbe8b23e264689e48de676f3ed9b81640444fb661c495675eb748b1c0560bd5000af5983a806918c79f10dcc635e8f45d64ea1075e23e21b9846f49853fb7ad9f046acd594b42b0d5a6a2d66958e60b2184d35cd486db19e6ab29a9276a55b3d03694bea4a6aa95bf1f314966ef537847aa396525abac59f031aac393aa267d3a33d8b611c0591c56a65c00bab184619fb563e680ea24ae714c08b4e296b104dd91df39258b7a3d2e29af098d3cd470c35a28f9f4d7f391aac9b86c43843a2b77ba92d7e542ddd708636e3e8555c5c546c39a9d71eca876f54cf91d1e34729314eeaaba396ae10e36c5ffd3e49f930ce8cb6c445f9308e0c1f694a5f7dc33819427ca33afde2861469674bc184c73eb6c79e8d06ab47cfa6bd1c0d7233c7181f2590706c1b363a788a0d9b1c3a723a1ac45da540e3f9ad5283338e1aac33a834f8012171d418f7bdb0c2d7a9b0b9f6bda0f9f6e5344ac98b797d8d79c52009faea313d31d563a0f40d658a49d22d2e22a227e605f4b58f5cf0614cd05721226cf061cc93afae30c6e7ab6716d39494ba15ce5862ea568852faea3546e9c187f40a151f522c5f79f021cd8714e9abe649d794661ccda0d22d9452835e6b1c112009afce926f6aa41e06a065d3a0d7ba0083d265702b88ea02dc5a31285dd5e04fc491e3a534e1a547a348a56fb257113d47615cd22daec1cbe7e550c75483970b3e8c5382c2f8e4a55bac763dfa2be6c22b6ef960503a8f7679f3e3747a69e5630c7c43faf4e28b6f48dfa2dc62a4d4fef4b28f4d381adcae1e4351e5890f1b791365882c10302864012fa537c982c89b7649dfbc7609d1fc48e7c375eb921e8384b2bbb9267fc41fc902e2be08e45a5c1235155c1d3629b8db8b715c30c10de3cf07758b31979d2a5a1ae48f11094f3f97262ecc330d92f0f3394d7d1a6ca2da5d120dc1cb34f600397517e44de637d6e9d015a261fcc93c7ad6378eccf2d4a43da75dd16357e6d9e8902c5af3360dd2fec02ee9b60b5149cc272fd96816051ba4366cc006e910463022bd00cca90b29426dd8481665e622f2460a611ce7ad5229a7575d7a4434a21c0d521b361ab469ba11b4d1374438210d522b6ec8484ebd027d737d322a36aeb92ebed9ad5d3c7655eda5b399cdac96699bdbcd374a3b9d262fbe9d32d73223f37f7e73fb829edf7450e091a3e34fe8d610ebdbe648ae352207e59a53476173946fce7d61111e97ebf15cbf924563c64037f3950a7dbddd611ce67bc1c52333cec91da539ca5bf9d03ef3ec1b72fab4e7b721f71999bfad329f9fa1f0e2adb28f5d9305d77e390d1a712bbbaec72eee22807d1cddba6e71857ed270b691c618ad8d98b5297a82324f98935aebb1c058ecb9d1c71a7161fc07cc66a5f5422314bb8f6598d30c87cd3604f3ea1bbf78dbbc710f2df5f98546e6ab3c1e39495c150a3c1a6ce2ce1ded7cf078a2ab06560328e8743a9d3c36a901e3eed5353f9f1e81e40d007c7a0c92379ecf1a9f2a55781f8542c9c8f098989899989998984e4746860c196fbe8c167a604bafc30dce95d7b80a34eef90a48096e829bf0f16c603011b94af023ae6c8b2ef6c497644df73c17246bf6308effcc5cf376310e3323e35386ab9c7a2aaaa294ca90e1aa192a95ab64784e5316588673a723e3e3a1fa723a9d998cca7826e3dc3de065c69b2fe3ad7c64435e3cf3123c9e127c051e1a1e44b27e705e0874631cc601f0ad5490345c3abbbe6fa542bbe7def74209de9e719ee3c2c34d31bbec7063fcb3cda20ee31784f9e687798e7cb19f440b330efd14badeed52a838f8c6f41a9bc75b0e0a3cbac52eb3bcad390d4eb734bceb81f9f61b827dbf9de086387e7a68f393c653ad3c3fc2d590dcd0e6a7e3601c7ea1edc84cc730a93e96c88ad0521191911293962d538e86ba15d61ea12750823eb4437ca386c886b317d471020a291551518ab344445388b8cb596bab8f0e1b1353a090fa50a318a51aa8e42c3835410b159a190c0000011315002028100a06c522913828a049b2a61f14000b819c447c52194bc328877118a40c328610420821840011111a1ada0800eabf0b587452a3d57fcd761f90d5581ca5c09b2f05b9feff04410a527db580f3519dbf20b4811e14a5f946b6b2815998787627714b4045ce4595e497d1711099dc36750c2d83f99558238e25f303848df0cda5200864258c30c845c3182377545621175d1a1031cacef25331cd9c525b0eec4692a29f64db29f6fd5e1264c10b108b752a19a2743e19b2bb79c2040ae6fb9f037139bec034dcb1cab191f7abbbcb310cbcabe055eac84de9c7d9aeb8cce12703adeacbd216852dfe0b5a928f653cd69f95c93e193d7d6ae8800f143aaa3ffe16e2c67a5302a517d1d77950f2b7d8ab43811ac8e40d608d0cebc5a9dc07e8f3f10986bcc6bdc2a563fd58c20195533a12efeb4f383727ea1069528566f4daef93727ea2313f2919f47482fcfd3c2c9460ca1999e7d3d779409e2c667bce53d91fd374f0b10daa798dbd583f2bba41c8dde42ba077212b5d978e4e8fb6b53c0cbd0dbd6aa2a98295988dd57bae458a36bd18467b366d62de3d832b497d9b4b123b80bece93d2d071731e6c54b2c22c86990c0203e4c77509fa752f9c9aaeb9ddf3df88a5661822edc100c46a97993e6c9c812bbdaeb7d5b3fe59d0b66bc9fbece54992c50fbd14f3f38453a2aa2b51ae6d452920b032039b193487e97716201616f300a1018755c872d3f434fc95042284eb806970be26943372b5140cfd37223dfa342c50847ceccd0bdbde336f5906bf91ca5c14343cf3fb0213ad26853e607a6483fdcc2195135912904566f371dbdb11049e07441cb4195005f5477aadf5e878ab020d86a1d3f9f77e365e5386a25354f9ee13f7dca94c2b87a60b3bb800cc0597a42607f0cebfce000d9cbc05bec6975e8e29a3f9fb2aad7b687f9e223389960ba20ef1b57bfe41a77ce512866590541d207484bf7f36f443e5113b984c069f32b4eb23409d705290507b5e05e9633000ea75e5735116403d081cdfcba25cfe152a35a0f80f1fb00e700083d02c7dce3349c9200cf831ed4773da647ee7d9b3ec36a068f4092007256b20e2db469a7b26feca3582474a429c6930064baa506505d797f337ef04610e8b5df62d04e770b79385ae227b10bd8e82fdc7176e10437142592090ca2aaa70311148e9a34715b2c4c830355687a0215402fc366a955970451e43f5b2d19c8e6e908d1c316caa522c5a7cb441abc6b271aa37ea84cc6777200484d721d2b3d536eab3d894a36819ac8c950125169c4103ec08d5d8d65d8c04dba0ad38a7b8c88ed7850da9a48153233f9d9aa57228d895e9e7a4b8b82e270487a30d92f3ab5f3c1f50bb00b45e45b637c3c64e08c9015e7d62d3b34271f438c42bc31d56973f7ae209e10fa5e138f31836022bd3ce756d40c683713801390eee37ac2a70ed391d4d56764202fcfec1e3f78656fc795b92a04117b405b5fcafb27c1d14b704cc1eadde4385d741a5d4d308f66f880bae207321f61aaafbb310fbf234a9b3569be529386e5a5d19e40d332aaa783c8c6b5436d2af424a1cd55500fff77a549ad190c79511402a1535961070115462496547225ee0946ae0bf0b9cbd22a43d76628d60e6f16338d668a3a708e7fc2be874147a160960aafb6c87792b3ba0da0058c3bc272475777995c11006b2fa82c6369e34b8f77a17ad2a6f774f0a1b58014154cfc2acfdbb1acb17f0ff451a7b8a112f91228175fd94b1698ca0e9b08ec2212e4e62278b5548f57be3dfe296e306e8beb7c9081d7e61ad3559f88261c7000f4a10c36238636bc830d28c425583d0eb8c6cb17968313a373fc8cf3435ba2a912c62518b74c7020dd505734d0d86060a8201a0aec8be566dcb5276faa8d7181ce14f05352ce07f823a21c49392c6015c7d720a4ccde1601ee3010308195566b6eb5fef84668b9985e9f2859625434f5f20a2092f8653351a8ebe5e8964e633e723e5f2da71a583e3a1db4167bdd00489710948517c647a13a54b926944831386d016219038001707385b5561a9d576b378fb3bc2a0884fcd7409a80af7dc78c7eddd95071ff5e5869be0ba91821a6fe5f7d7547187c368a71d230f5bf202541e271724d68372e6d3a635e2a4ef79bbcc869fbd1a30934cc86736437d356a9fe33e17420342eea30a5b60303c029c524529ff88fb65a2893e3523ade0a137f7e85460010fc6510e9cc118a5d86e86729a7bd6d44ca1fcf732015b95167c0fe30bf4ebaf086aae32e58043a6b5b6a4558fcbe2ccc3c44690c52be7b0852a5827c8f7660961d4bee0d83dd1d85e2c1afcb044136f09d0652d42fb2efa1ebbbfa743fc1132ecbeaabd9fa877551ce25e6450c04debe32d4eb46b397ba105ca6f2dbca0fd76cb2848160196e53b6aa8ff408440aa2b7249959e14bf4e2531c779d61acbd286feb5a2008539953fc9248a7b5b02881f18340b7612c01440cca668ed525cd7ba241c83fa3b58f64305690e1fe88561ab9ff5186a2f9812d9fb38c53bda9a357a4a0112670d48ae6bf5fc35e082e9ea6582dbe8451626db16d55c9b1d00ecf912c885238a5212e4fc5e3b5389c536f015c92090d43f0166ac1e28742a69487f6a53ffc2f0b1f94abf235254878b65b80ccba00c1d9c87bea0a6ca6a62f464ec618f52096b0e165abae874a5c0c2fc18b9c62dd498ca42101462c6c9ed5fa945a2721489182c9b0555f7ca6d521dcad16372d8e67e91efb443696d311d6dd4dc430f139f10294d483325a96952dc0c17311cd6819274543e46198d0afa2cb8896080a15651329889175f8a23dc4c14c4b67a2dd76565461e8dc5f1c4c659acddc4ca538ed5227f16ba045864206a1b7ec158e5357567e3263a5bd616a6950e3a3d6d8905c4460ce80ca1d18e017b39630f27c0ccb36799c476c854ed3c226f56ca6c0f9d27f8251080fd6ee801d6dd1492c767aafdc9579b0999dc3cbf2e493c0c3693561f0a1e2d60778a05e8021df17f3cd6c51c89b7edf70fbf8eda409b942bf96449ecec91d4d4e2d2da0fa3039653dec035a11b3b80208ddf4143942157f0cc93dd1b7e6b4bd938eee5e7fa959fe5a7cc32356ff2e32fc4c658c0f90f7a1233873bfd346518dc520f03614a32c69059429acc1805f758e4b4818aad5cb88ff02e53e90de17522b1481861b36f2943d22e5789480676b63fcf8d1d20fdb9fe3c98e405e82001cced257103c62acb20e5e68e2b51052d1b8e8a64a8e81a78007521e16d198d24b109e392c47e384ba415549aa3f9a6cb69146cf304e79052f4c7edd778b6808e2bd4c95baa358a775ace79c341d34c30449b3896943da7b1a7b46f52df8684def96f97422267d20119a38198f21c3eefd689980f73a5fc1f6d7c211c343bc3c6ec1dea7343c9d7ea6d25c60c4518287e4e02b5323dc8e9ef930c80d47fb8b8ec880e22fef4ac9fddbe38a7789d392fb94e95cc111e19995e6872432c731a28398fe54ba8f40d570e40710f45fd9771acf92f4491129da92a0f1dd24c4f486da3e4df2f5cf912c74712264772889aff811576c3765501ca52b98378bf562267e9d5ba907b2f67f78fe2c09d687d95e7226a3f845656191ab47c744f1329b3d9cc88ba4a96e408c8974f1ba1c0f91490be674af280f0f1b3ce622527cd5475285ef25a1c0544fa57a4bc96a792eb97e91c4843dd5b825283772efc0915c102103113d05562e051e3cc96cc4eccee050315f0291b5a72739a684f44cf85eeb246709c36882fc5385c7caa3ab57164deb832e7b98c864b6618d11d7795a926f1eb4ddd670bd4d7bab5d1bf887cf490e03b691346409f44fe1174ab16570330a1491ae793937b57887f2face18d43e9bdda605d208c6e0beec3bfb62f4cd3cc510636364d0ba58e11e8671fd4bc4010050d8442aaaa4f577851445df73a0289d5a7618f4a830fbb9b1ab9d94df48c96469a9e65126bea514e04aba6b6ea89e556184c849921ce4dbd1a2708e15390126d064befc757dd01b3d0c3976ad903cb9bc8b00f31c3d9606fe6b73a8dd92a679add1559809b1a5c9c99ff3e1de25a844afc8f2dc4ad730a5ba098b019b19c248af532da2ec7cc3c6a5bea65d500ab81cfce22a06a4bc14e4f47e4a2725053617e5995c37e37b7f4f3d367a3bbc73e5bc62952a5022cbc48c369d8dcbe4285e28877c1f9f746f3f159fbda00a9982b3fa86761cc20d95bde85a032853fb1bc933fa15014ab0e7e4d6f4bccf8f764ebbaf971a723f8508d56aabce587df0fc51d29646193b7b1d5b49dd8366014d34a00db349b8f5fdafb8f185e28e55542afc165e07bc70206a407f878e0e8ec158cf26700cefdf52af1947ad2b1aa4da55a627ef8a9b1427f6c138082488cca8b8f19fefd6edc1d420b3a0c1e16967a359e990be07e742c5be599be63ab653a644545405357bdb4989b1196f1c2dedf242edae4e57d535ecdea26d681955a344f47cc2cf68942e8adfba522184a4b8efcf3099b4f47934d9b45b85c9b82123782b2ad0a34eee3341854b507c38e279370d8449550282f961d36d1def9c49e3b7060d9eeb54e44372dbcd10df3afa9c2b25b8f661e92ab6dbd3025ea9b2cec4b50dc0488ab703857988814e0d80297d168e3ad3c055380061378d55ea5991dc00d4aab8f244555f9e4c1d2e54c4e5c14760f13b5c84b41aa77cc78903381a690fbbb70bfbede1538206824e3440bd0bf5bdcb245823d67314ab226915f70efc91c74433509a49c343f35bc96bae4ef3ac83d8fa97346401b51219ea0013bf5ac9d713fa240d86cb85e89f4babe84a3150c500e085ed8f4d90173cb4f95480dc06f8bd14cd3809318fa6b9e8b0462079e0f68d0ecda62170cd500b1fa68271abf4db9524916434cb917f63571d2ab234fde50b111f6de6bdb7a169dd4689220903a2a7912189aa8b43c36fbf2e2f01a94c1ec8a735b464c684da87e68ecc87141965179da8d9d50bdb56f9a8a90cb6ede44e23899d7cb205f6b2e55dc6b280399b8fab952419c54d0135bbde287ac5ba2cdfd3402bda3c59a2a44625a6af2c4354f1d1eeb6ff5a04796bf12167cc2eccf90b648197e3c94c9003d8e228078cd422b9bee09890a3a73da6ad494943890080ed27954f24f82d18128e5e05d1317378e71a27e79cf42a6f8cd1b2188fa379b5065185bc6d4657ff4d665046fd77280d327742be1b52c5e8a19e53c0124e5ac1926e2910f19cde993a56c6505d62c1826c0443ef1e3f409f0d417ca8364ea32df80b3e086fec9f8f42d4884635b70cb294b6147cc6a3fa58f66ea00972da86ea5738c0df3c317bf673b51b52fd0935a5fa916af67bc2e2b931a929323649f8c21ef4abe9fcb664ca5605aa362cc60155d8ca9d050ce7599d07c3f944608812be581e04385bc30be5926320a1daa6bca7f2c47021378774f2f8e35e69d16d222336a5a442bffb896b1385c39fc9d300f6f3caeda473e7551a3fe78b47f6149f88b0b4fb816566cfae6212e148b12c63479d14fa4433b851ddd9994df2388c359c694f2ade3e84fffd7e1a64db030ab46ebd0b109dc32d3e19b823ebe22433933ff28475e4045939f13b88a90825228e11d45cbd8038e6f3ae285d7bab8146d7dcabb8a47c16b0ef53514aa2b434ec1a9715e3eeb2aa259bdbfe4ecdf9efc5b2e84987dc34db9f13eee16edfecb3bbbc92b5fe0656be8dd81e3ba24aad097eef5ba64b81be026c0749ad35ea94b9879179dc5a30b484f93573eec541d5e22d79571c4d217b5873673781e1d53cbb5c4028d761b6eda7bf362595e3512ecf1d7f705c42b1c4dafbefd5d27cf63e95eb4f9efbf46134a1535cf2501493152ec2d9a9062e1460243a0cfe9b7dddcde5993f7f4da74ecdf553a650d381ae4ec123b9ec788caf6512636efc8fa2de368e89ead916e947c9eda3836d7c9a10a673e9eeeac488e22861374f09fd479ab7cd789fcfbc3334f24ccb6c0d18f664f70e142ad6f4796b77bf8c8999c11969c5e9122c73c72b15efff2277d2bef2cd61dd448b0536c7cb555205411ffdabbe395c75097dc448ceb84963c6a8706f4709ae7a8173d62df09ad5fef1a30d413f560f416f88a658c8226b6f0ada16b040d82d8054ecf2126f85071e122c3f21a41aeef670f4479b03c0aff28aa280d61c2b84e8cf363e8f7f2c224c801257277452a3dd807c0ebcfc21fa74953aa3baaa9150a8f7124efb1867e6cd3226327eeb5a09a9733401cf556cc065140b40a2add563398f3208cae539e43bf1f590c0d2bb90d02164762451a60a66d4fe506263c47f4bcb0542b1cedb7e43c37fe87afb744b599103669373ae6bd7e9174e8347ac2d833567efa4660236afc4a9f6f3bf555173cc340fc6e98afcfe3ad2ce573a7db6abb8794227b1e368e7cf7c57068b80ebc3c3454c01215337c5ecc1cdef42ee3e15e96d4d3ad151b03f85d3435f01e2c32bce3a336e0530dc1c42b5e56545719e4e54a8e175bb54a01650a91d6822c45c3175f81b5c233e3635abd8ced4766ff1f77eea1efcb250c8da07928e3a094181b9b18654fc28dd7432d52e161ecb6e256b8f39e42d21dbc1fc3235c99251916323fff01623e480fe1063d364242f5925250145424cb85fe8bc9e1c0d445b1faca854eff9ca0401190898d1bb11737d873ef4346fc2d9009719075ebbb23e564238962ce091ef4ddbeb12f325c8f47be10804caf2e89f292bd7b88a5b3b3bbcb91aaeebd4e712bc9be5ca40c8905aee23ba58fa9971db33b7b456d6d97903751789c67f7f13cb0e5499a6bf20b3b56ac12cc76e5f7f904f324e78fef53f86d8dde88328199cd367073eec7f4a134cab178dfe0a7073aa5186e18b747557095678a20b265efc18aedaecf92192feaa680ec2ddef445276f1ab739ad2f969076cb8991e2130aa95dd54a086551834fe0ae028471871e8a80b7098809f4d2ace59b9127a3229ac1ec47367ab86f6077b73825621407afa38654088ec96e094e5c4d23f75230acf286801d16b714e22e236d74a5eab811018ed5fa4946e3b2eac30599ba49b9054f02782311379d59924930a0b1847a3bb7f5d400e699260287382048db9e2fe8d86dc1edae15b6702202dd7abdee883c0b8a5ebbf4b0c8236a6f47992f3f4a69ebc6091c09df7f2c92208ddac22a4747a5f827c182d23db07a09612393d70009fb119a7058c60787521f6582b7a4bd3460cc7d9f81e066450c03dda60f9ec7c60c8744b4e9611e9d250f01b2d200627c99404615f8e4426d756d55571f8f4bda3b849b1d3cb96bddb8f9de753cf00071f5039a0b60d4161d3f3fe63cd4319c63895a91ae372cc0f88a03e1a16f3ecf56804e92aef51bf611a48ffff1a437a55fb4ca510e5ab28121992c45ef09a92352b49559728f4219e334e8093d98a0a55b9d05c565cc276e54260ea9256c925529693d02706911e040f318c63bca08d93b7a795433bc913ad424838cf7b08c5080e3df0dbcba1fe3be538b3cbb3216a80e2f44a12f45ccb8981d6f1043b5b67f977a984e22388c23ecbac6e8d5d90e214422802158d6d97e320e24cb5ca6c3f848f1a0548a9e4a41dbb8d6717f734215728a2f49b896b8d25c8fab468dfe3f0bd9031f1b9a2312c8735f02750fdb0d72f390e0a8adc36a7ff07113b09a67878395f0033e45a56da2c843ccc9229523748421ba4d1abfd541b82daa5f732137c2b56eb45d835ce813b43ea5710c9c2b65ae0effbc8ca2f9cc63575f1e7eec0d53b87e4e7004758c86c023faec99e833185f7abe5fb6c5e2b8f5fd200800c31bcfed8d3dfdea68bf0975c5dc71d0f816eea1429cbf1e43130636a76c02e3d0768defb0a6a6c39952015e897cfd016f70b02bad2fa0fdad4177ae74866ac4b5497fdba4d28b1a25818ab3c536ad419a279e6d942babf89a548e7a81b2b135e3f1cb9a7da4d977828dbdca5db846e028080bc657ef434d674d69dee6f513994f5f8a3ed3bb885e8d06e9f8821e2f8833ed900471600e25d461f0cdf510adb5695114878284a3269b004e2500520ef5a878d6dfccd0416cebc7448ce56275b04fbfbbba8df264f4ec3e8cf40a4aba367c566f4ca6ace2adc35790a9aa6cd938d6b6509f5ea16a3ce7624393327d314e304a444a70e6314a13f2c9b528187735956e40f0051ab3731efd97567a351216312bd70f50e4a37fcad875dae9d79dd426cc86ae9dce92c4fe9039622673d61c91b81a048e4544c5e60e140986a523cc52e912697ed930c1e6e17140f45da2c22fca5115f814bc2a773b81aa13697797c3e5983b63af7426d2b04b4fdcfff6bd4037caf5b911f13eec5dcc6601d5d9aeeb7a3ce8dd9570a40f1a5ffde184808e0851109894c02b74229e0593d2bfcf287c095455e17b96e90d1d028f062b8008a7816b76c8cf9e67a65d888059b289e2540d7be3d413c9c9958c919e0204e16bdd162363f417b69729124f9e68bdbdc6d7ff7114a53aeaa6fb2af43e1429f760df0418158ec072d21c25af4f3460a58a04c668d065fd31a4b813885573444057c49d14f6f6c3979d99cd9a442d49b49b264ab9b2acbb1f80afde5bf6de2743f6638c43a36b62e5cc25e2e37f7cc40885f1a85b2f7d9208ee121575ca20ed5326666fa877e7eaa793bda6a25beac4c07695d2462422761da23148bcf3749d3dcadcf1c5fe583c790550bc10169979e722f0563d61aedc1f36ae845a2f7547c44859676709f3ca9223c0399e8fc6a9fb6dbf3d4166ca9f7165e1ea9f11e3b99d48828f8f07336de822eb85b7de65e384b1b9c6742565cbc851afc8812b7143efa2be5b6aa0e52140e7486958e0339496176d6561bf65535744fa85ed5375de3178299ced7e2caa7d56435aa9941ae661ae58a3645d7a50f4ba5497d2ce7a43e636a473a17ad88e275ccc52bd1eab4355b52449c37040a82a3b9ea63ae76f0748607352ea112ed9ab923d8278ccf691f5662b3b62d2c4423ba8e7afa5cf6010623064b79864d93e84406d4c0665162d3646e1dfb3a83f51304819d1896498a0712bbbc05375c9e7f62c159c4fe42c5c7b4fb781103a0430807a82022c2b3657cd78b93bec851df9787c1e117e27cb735cf490ea4bdfcd943344b5a9a8bc03bdecd3cda1666d8156bb3cce8557b21df9992bdb28f951affcb2baa7b38371207fc802c0ed5d2bc628ed1df37a3d8ee75444ff7f5b042dfa26cbcca5997c89389e380ec7ae06cdc61d1e168d0084056b2e595293ac269a31f2da7450e0fb4ffa02bf64e0357b740d0e30aeb24da51d1368d3f2e37e2cdde6b53666694716c3ae6d0d9ffc5fd9f7086c86d02cb4353c83192bed43162ecdbe02515733e87fb3186cdc2840ff231eedf680bdcd9eaf48f12b1471f8d3a9cf61c9d59fa223f1253d69f9272bf37d4c74e52ac781e27e598855b721cf0a821763bfc59f7f3758295ede640a750523192472ce6a7bcbe564bd9a9be8e021c45cb7744d709ec1173d2394e180dc5bd72ea61ded6196da612781c460715c45eaa63a690430aea5521410c65ae9219944019f95a42119b4e419d3bc6306c6d82ffd91d1471a472e8e0a59bd8c55d1cb71c210ffd3bee7374ae5390567ff784eca88646655fee648b2a29854b457958c6278076ca61729dec3cdeb70f7adfa8d8cb24a6c469cbc611778a89dd6fcb24be3723bf4850b5a50178824fb3e1ecfea3a6d4b2f28bec0142074aa3ebfc39a87d3a6f2a384b56371fafc15ae071e353f652dd3a35e6fa0518ae132399eb1d00f702423e58f6ad957e8eb57318dfcbf8b6806d44efcacb73c4ebf49f313420251db831d20cbcb8b943f7ef56f40ce13a183ba9ac4db0ac2adcafbc09d653cf58c1a607a65cf8a741abdfc241c0e515bde89ec5823321cbc58d889ea83567cd841d1ca8e802d3a48a0aa3dd5c7febd284db99338bb28aae62bad9c299fca9aa2a3b606d0b3b8d1259e43121632461b6d49159fa3c36442f0ef109e3d1a2062b0c2e87d9248409334af6c008736c075594827760e4011779fb4bb6f7500263bf3ab632947a334a96600765e04a706e7e42c50c211c71427f599764df815acadee008045baafb546f26758a73261ac088a0658a977042bd74658bf5170223e9836b1d6bcf92fdad9f68ac7a7b06ca9350c1a06bcc30ea4c0de023ef073f03e8ba75739ed3363eb62dd1b12beac06969b5e3c8ce60a1622362b6002f4cb228b6848d4287f2b89a5e22826b2ce21d7ffac047be89ef1f4ae2ba988fb71a991f04562542f0c4ae5adf53b27cbda99ef81b56cb1b83a86376638b461fda113db65374e0e018dcad699a6afc1e1f4327ed17b4f0fd98dede331d4090f21defe0fdc8f25615a63a8d8c0de204ae871e37c575ab3d49ffe0cda64f5df1b589ffc3dc2231deca60bd5f8db666ebb637b0d1a02524c23fe6e7071524569fd04e04fc0bbe42a24fe4f78d1b89d8321df91fcd6e3d42a42b2648ab1a48d9e0f5d6e1baae9a0b85c75f744b1a92f521b630b3422fa7136ac4d113ace750b4d25ae1bb7b973651ccffa7756a4db08fe6d3411aee4a6d74442d9048e4d65f3bf033b171a846b466caa986a139e246f425a797c98218971f04c2ca0feaf16b5f3174934b39c98d3aa10ba155701ffa7082619756ef69065261828b6058b2130ba874e5574c1d44977b3be283364e3cb50bc66f58851868e100365ad39295e7dffe7a6d1b35eb688158ed1d42e71ba3c95ab93ead02486d50d3371d9ce91eb423668f739ab05a94f0a3dd75b55e51758c9c6b620c3800a641b73f9badd32985ce39716d8c7c0cb0607da069fc115848e503a2f02ab537f04b28c169bc302c3fa6db524d27270fdfa68263ac610d464a6543c9dec3f52f059d6bfb043bd00193455a0d1e555f6bf4b3149d02e6689cad68061d9ff39456f121dcf2bfb41d8bd6dff4c028f7847646b4bc2b0bdfea39b3f543a9b879f46e9609085b8668ed73d128be70e6708adf051fdbb6fa8e78a31441d12760055ff64b76f471542e05831d240fc378eb76c251669cfba85b3d52ec43df85f44daeb76cd360e539e184af50e55fcf245a888a252fe5ddb14643d49b04b09c022e23c5e9fbcbbc5c090e0bfe7d347bb806d1624d4ddf6a437d29b6a00214e7e4b862ad3a53b53738bbeee12e9779950e9b46054493f435711eb48e1ee6cba6d6bfcce0f526418a1e28c567e63e49f48e534fff132556528677d8c2139205c0e29d458a27181ebe8ffdb56691e06af54e3af93904263d4e799517d503ef06c32d62175c827aa5be33fc2b80b2486e439ec6659378ae16a55001a868fb5bdcb4b3331b9f1e015dbd4c184f9a0943a957de45ddbff1b2d63f55497f2383904be571d05bcdc7c446ad609d652885babee3785165259a25a0db1a1bd002946c4dc5f44017011ffa514eea41265441674d0895ed0cd5047b46f10f20c3a6008d1f1539d94174f57a3c9fac627c662dec54b2014f9bfa8f5e4a724812cecc60052b79638323bd19c1ecc03e931e3404bc2ff9bf0ff109c1b0199817faef621e9a95f32c6d4ac069d15a693c3065f2e1d08bfa7e9b2f1138b82ea07bc3e83e6b3964191396070218d53202e22ec11edcd3170f6e0ad75a4e7a126c5e419975d49d3d1270de8630a0a7b22dabbff7b44d6388658e589c91d877e8793f5c322dc3086ce66ac7cba958eef065bad090e032eee47b1e06c2b7f421e4772ae3c1386506a0cb032ebc5a8a84c6b63d2a5b5a4fd491641e7217d785d4c7d1f9de55576025443ba96b25054e7d94c38f1c82bb09005b3b6861a31014133ebeebcbf6e7cd5daed9260e8c07e4587af02df58186c40596a8d36377b159df7c1efd89a14b07f836ae485088b170301575a7869848d734ff9cc5b448a6baf7188f0344ab44a38f396f88bec47efec20d30441f1e20fd5ef66b703ba8127f5bfe15397be80b399c908bb1b53eb347546d351f69d0ef4b61da9019bd4d7c79983d8215bbba6e2b0a4f483636b98be600c525e63b3f2c739ee4010f8a0d9fc27b39dcfffb5c8f20ac453fe8bac101487ddd13544bd2b970a7ae34a9115a8d1cb2aa6dfbee5bbc85ea37decfb583c3ddb1d8a02169ce5af2de814e182431e502c0d9978dcd6a39da7748927a46ca2b85cb383929f2438fe4d440a211ecf35bb86823c42d46e8617e4a3d6c9c1111811c48e17925deb6e4f595a89c809d881f9b632e225a9654dd8bbc8fc64e03a96f96e3961b856351f724240a7c9f269ea04f4c1ee7531d32f5ffb5c16fb8bb55972d37e3debd3f6c09d2fdfb670391cd1a46e8884648e04842e27624ad09798200bc17c266d7457230cc865a4685e60f752225dd32ce14408fb422cf1770b3632ba118ba9a8383352134f45dab40baf5cd1191368064a74fba05e432ad262a96832825a6c7d8bd0c395e41e45df1e5237d25d8d1992ec18f105953f7670dcc33aa207a3bd08f6f42f82164d78d259791a694d2effa2b80e83d45f9e140f720a05b882606f6045306e7692879b35a92529b79a5dde8c75f078e746432ffd679eec0f3af8761e7e4396ed809832a8ba90ab5aedcae22337135bbb09ee26d073a28c644b1a0854ff9f73164f2df7b2709eac14220f19d3a9aa525a81686e712e219baa3481d3154e70a0dfa2c7c6a455a3eebc6702bdcdfa6b32317409fe5c8ffb44effbbd325b21ebf67f2ee148dd8ce1b74e431a5da696e73cf69def288cfb62417a5bbdd25b9e269fab1eca7737344a4e06a46bcb6a164646025148b3eef6478b34dc887c41baf81d024d5d0fab6e61bae0ca7cacc729a028c1961819d1fe3775dbd1ddb94f0778bb00e82e46c5c4f8c29229f44ed8c5f8e88b48022cb6b2edd127dc4e6e7c82ec233abd7065fdc882338ea78302d1b98b5b4dd138f668af65a1038ca486819a488adfbdb67ce0677b3a3d173626daab9b9191bbda2b03f60397a2bec0826c0a4a44369676abd3ace106e02b0d9f3b1a2047faa13d5b2fe0963c58218da8ad039051bfce685b9bed8ec49940744975ac36fade312283da2747957e160e9777df430db7781cf85b65a707d1c4a195397cc5a1c1de00e17d51baaa471e6700203b8ee6749b810f8d41761f87ea385fd885ad8c5f48db5d76cbdb26ab5912639b11fadf686063c66479bc1188d324079c8f79d8db79bc07a51afbb5148779330961ac72a86a1601f4c8815d85eed50e8863059969b3c0746af3f03709c2de2d8d729857205cb3f6a7c54df5f6f781355ff45661452ba36c8a04675101e2d466afd880a86ddde2d53cab53cb51dc354fe54eced39eec7ec03fcdf3320fc7e11fbf4d283476c50fb1f79f8495ce8b803bb10ace06d454b61d0e140da6b34eaf55f6550d6bc096a8555793ba1420759021c4e65c3d80768e80bbdfd492ef15181229176fc4c961be62f200a58faac3c596b04163a74bc278b7fbcc409d921228ca40c05309cad2e613a8020f66616e9db076637bf6c5c5929289b9fe2699ab86f0b740efced391d52b0a7d6e40318b1d423b6c2cca08e6bce5f574982d8ec0a6fac045f884c4ff5e2ecd083f1e1955c4994eddf19b1167749f70b15911a69835fb039872f047aa0c9afd52984f541f015fd51680f51265202b47a10f7c895ad600c00b17c5b6a067ab55e07476e7c6b55c8a146f3b80fe216b410bcf68c70acf27e03b0c23bcd5e523b1e962397667e4325dcadf0cd18c3b7e339fe55e8a6d8157b8796134774679fa539aa3da053009b211cddddca966611ed418ca98db20e9ac51936985ed8f23dc5551e3139a03fe87ede910370be43d79642ad34cdbc7cfd93aaccc73a710cd1dcafeaa3f3b3688311049699f0ff901f5f04d22474accbb90421107b38d36765d4e86a849cdc97982ad5449ee60d57718befdc8f1904682568d1c05551a1c9a79d8067ec42cf55a6214c70834c500daea62109a247005d65bcfa86cb91b65d33b4432fe182367ec331fb6d10755eea7b548164bc6d6b2b4260afdd56b75856963f4f7a1d593a5e2ef9580b5c4cf00d82cffd80c311fa1342f9ea1779a466994dbd0f4efad96d2ce204d0838ddbce533b94041c3992c4676969c2d2c06716ae93880c2b7258742e33792a67e7d75494f9f69b399cdf5ab1fc485b57d05c07438315d1501d393ba5fa0bf071f533e480698aa54b7a209a672b4b1806dfdfd30188f431849a2ee84bdd1ad892b761b30719b25098e5379e4316bfdbd127a6da0e471fed7f1c002be44722c5b9489b7512838c1d5af0597b3ed33f4d614a7588de6364b0d634b262e40ab1f4504ca927ef9708041e62f5119690b5512749b0982c16c46ffa2a9903854f3b8aa561e6e86aafa52b95989dd95e6ed5390860439c16177be46ab5a9b8ce948b137e25bd8c92201add408dae29b19bed69eee967bbbe26b8df6d814cfbfab38d072bf510f05b7a707819c900e523f4f8eacd45edecada9b3dc9d423bf59fbaafb90a1874effce389677c2c5e6880ae579eb82aff8040cfb68609755dc7668a82ac114c9d646e673027b8755f7dd87a4aa507c40a7d4ad81da522360c77de0dcc5c252a98c7aacc654f1452fc75b9363909fea03c8bdfe542ff6f89aa4714d67c5565115e08e91f9b0a6f9c03ddbba50a79a8b0d0ca1b75b737e25a88fb78b29f2dc8f73c6000f8b71daa5a6aabf8907b37b85cbe2d1533424de57ea49b1fc475d06215907280da0605713200f79031293b05739d88aa401c3c8db13796814449f05f00b20d93a7df3e6e8b725627d7c6d342a617f08c899a2ab538ff5a0f88126da426041fe9d569c2fccf6cd272e87d2543a43932e868a8dfffae7415383d303ecd4475f0295413de1d9a0ccd7ec590a9d52dbfdcc6a3fa50e0cae8dddb6fcd05139aeafc88f4f1751301d0359fa2ec2b7ae0a6ad99ca6562e338b1d247a46c2e206a637f852a37ced4dc8681485ab30068895023181fe482804bd53080e9cc1df158409adbbeb0143c58dd413c5be40b873f76e0d3769c4bf920d008e77c3b37d1df31f7161228387336923cc83cc9f0c3f7cf6fe9f8c9f0d376980b2521c4789153bf97e39e3beb9a54923e022a196fdddfce6f0d6960d14411df82c2215004dafbd349623f11c4530a373dc5a3403629e96b6ed7bb6aca9a011ab51706b5d458f3333929eb36b52b819e3f6be565ed648a3bb0dbab8000a860a0459f8631512f2d1c21fe36ed4c356aa2ba7aa3726d95964ab3a2fc645143488bf8781c9e6a65ccf006450127ae8bedcff4bb1556fa0d73ed05d8fdb6fcabf8e6dc75f53615e6134fd6cbb197a0c158285e2c5a6bc626c798baa4440bff858f0b33879f996f62cd809197031748e817bdae0efc9ff65f48709f6856312c32086d8c5d51b6d3a5c15302f2cc7db83ff22d836563f5219a38676e8ad831c1f0a463f8655fb30db1129edaabba831fe30da2ec6864dcced13c8a2ebbb282ce23e536a35eb49431a7d7a4ce1d374f6ac6afe3a9a2ef5aa75e404c3f2b85afc3933e27520d9e29d727335fc00fa69a66c6e16190f96d58c29383e9f7326cbdb50064680018f17324a1bd3ce5204212ffc06aab9ca7258a5458c929f3ec3299f22bd262722827560c83f79931044729b612d4b30f150ad884a15fcad5db4a6791de12543757fb94b6395d34e76ce469a4a420428f9dad67a0ba34a396d99c50dac50a12a0d1cc63a20db3217e6166aa214ae6dd6190dcc9ac390523b2b9c444031784c8a3a05c5658fbfbd3b8c4fcf12be4e2d4a515bcce508ba340009e09bde6c041fb5b62d5bca54fb7baa8a22b78b10dc4134a0968a0dc012ac14ecb8c3cd121a43d95bb0d8c5e545785ceb212a92bf374760c6e4ed82e4f6e3a61cb0a802e4f963fd14bc56587c317ba0058a608b088654417cfe8ddafca2f683f75d9d441aa46cae0688be57a4db40dbfd3bfaa4b5c99b3b92cc0c79230a1820674e500fc6bee11af3505c27ea5e76a0e8e37dfed1db7f0b53e75ba4962550fdb6a6ccf5ca6f7ed68edde40c0453e3a9ef04d3fe71c8679d709ebf55b0013b53f5b3214dcbb3432133338e928ed5a0fc89cd3a2440f491b108365bf5c91cec753c413ed10663b60fc8a76a85d14467f1f9e7b321d62ddf80e1aa58411bdabaaaf63f28e2749f6a8d7f68698ba10586fb4ef4600f575457d7f4d310be52e9f52330d262a7bb697ace18f376876bd4271bce1f661c62ea4cd465318ed7679c30182698575fc844e63f827218288eb474018cdf3f790300762bef4b32c84fc315acd8fd7d107c60eedb5c0383c6d81a9a40f15d2aebf06dc7e64cb79f63d4197d88b797f156733ff785f71bb9f34b70abf35ec3c5aef3ff463b422cd37a670ecb5f52dd9a980123d11f9e53668522a4c0b725455fde377f10112db02e2842728372a214b10986bd684e05c222bbffb4b67857e0dc20c9ee84eb65d3edc3cdbb2e30419017b338c4c970ebd27e7001d52b2106151d864d8e864106b155fc0491aebd5a6e3da4209f2b68b21e9adc3487ff637e44ec0fd8e0088c1d144d144beadfc5564f149bf882d5d7394ac777979f7bbb367f1bfc8d4d59b19278eccd378b06be2b8dda941585bcba1477f10fb91517b129d7669811f75bc6b37811c8450113369b29288a9a338f3c2f1aa85d3c149d8fb4e123f95e339c4fa6988779da05ecda08543679c4ca55705066fbcd4bfb96f5f80440f89b6c707edd16f6d200a6a3b66e3228b26ac67fc7704b0583aa4ed80662b6e283345f37c59cc26a01d6218e7be1794327d2ccd59a0ce8c22ca3e54471f0f525598829680ad9bd73862ccdd53a1a1213eba6c92bc79e438eaf30b40a1d6841e42f2e36f57693b2016109f58ca3532af3ec0079cc5c9326b935dba6a31d18d93d804cd2048bad922beae0d1caf0ed13124ba6cf1de6c68b3b4fbdc070bbbb10f798f6c35873184848cc441cd1611187153c512dc6c6b1bccd46358c7716a0bcfbf614a162e8f30ae037fc593e627914a24cf0a94eec067f2028901fd7434ee0ee24113cec32c46ef462653079059329446fcfc9188446889bd5e47f201ffe136cdad7309322868a9aa7227ae5e737a8b7b6c54e03aa96d5a7655e154b7d8dcfc5d8b5804e00be474ffe933412f84bcd1a5abbf0a24cfc79a3b4a39692b3e3851d88409fd1427a12f6bd1b590dade66de57685fa4f9f391b60ac92cfedbeaec15f7ba8f15bc8afbe031b8bc40328157a77f2c122ee41583cc0492bb698e3018e9df7c6272e5da0064db4fe8692495eb30448357d6d32f9e86b9a31657b481a124ef3d31d92b38b353daf193f2b13ddb537cba8867f7eedf9c37bc1980ef80e9bc21c4d1e6460c4969660f1276a95e1fbaf6e3e3596b288b8460bac474ee9e4c120887599166e509d5d7ab3618df62b1da2c0c2020e2a540c68aae11d65e2b6b58319427655ac40cf3dfcaba0dfced0e697e4dc3f63282c98eea629823fd731a218f21d8975423109ef7965c80275567746bd6b6a4900620efd54796041c8ebedf797f155459e9c4cdd0e5fee53bc25641fe15b4afacbbfadd53f189ce2f2abe1a6249f505cd0fe61e312b7ff881c78f429e52240e10fcc35493ebab9e8e687cf492cbf29bae1f20bd34d0bbe4c1de3e293d6258ffe855d93e603b44b4d7ebdddb5f80fbb23f49a27cc609c2a0fe84826c406f8d5f55f96ded9fe80df6c4fa21bad6af5faddefb98263f3e15c270db5c9298252c93074d2c92507e10028a25fc6c43034061509f06aa3ac308891c82557f5c4f70a458c3fb1c62e720dadb7abf5562b2855137ce7115d66717399da992f29c4909370b5701a407b461a452b436d6aa3ef3891b25dd83f11e8c3030bdc4c50021ddaaaa4410b90d305afc1b2a514333d0ba9eaf7edc9e3f04a118599015c3620129b2f7a918a66d073afa7b5d81bc2c3b2c2d0493f5ce6432ab9fc9c0f2fcc4fa9522e2b2f8353de4198d73212f9c8e5a40a0f3cd5de071cff7736b69b564f499ee5d7a25523790a75f9424fd0f586f49eee472523f901ebe1eb8c662bb084ba5b46f2e967889fcc2c22d500988a80e12c826cb5cf295448de4ec1a6f8c5e9804a5d30c8093513e36891dbace0d4a788faa451d1bab870cb77c2073ee9d058316ffccb1e93ae75c66167acb8adacf0c9e824f9f1dff3a25e7d3a4580aee5237bc111d495985bbd12338a0cea12a8c2bf179ca9b1a5bfb9d4a935e57ec29a351a696f6da791ae98e6ed9c34f0eda635f1fdc035f672768dba787ccdf97fb1b641795aebd369266ca6fdbd95c62b953414a43f35c22d0c79f1b190e18045807112211a41c473753842151fb571d78db93065f742857e4c1354b02871e390fdc680db7a73d054e9bba17d4565a7d270eba8222c2de371a0d929e8cdadd5dff11a2f696300edfa37ec3f957c85d31d7d2baa68a9cf0f886b20407797c49b496ed409d9cb8b41e8e34238418f6f6e171c97c733795bf0516a095491c8d604806711f081e7b5a4adf285cb373cdc56319d659863108fe6d0d6625905c061fcf47889b9164b45797ea2c4ddc8348a99ac896dbce3f8d8742bb459cb150c4b8f9e6fa309f931103800ad713da4f36685377c5e8ba2dd24d09f1bcb459b350e1c2b391b9b0e04df2544429b4752120a09f35b22286882a9e095ecd791ba5ecedf7ee0e435e20f0230b4eddc0217f6a7aa915df805821559ce60347d90ba253cdf803046d3703d3b7a2ce2f94773fcac0129514f31b7d7e6666a264fdf543884128dc372c2778bbe3336c0a7e3615d9a79c16833858ef2d71ad85b412b123d5180eecfcbc5da2804600e58d065e0d2daa886258cedb6b84a02c3222ace1356ee779144fed50062f0bfc55a307b42d61442c2c61f79c94ceffc32ad5c3e680d1b99a29809cae08b17d06523aab6dc5b939aaf6eda28f68723eb5e947b416b35e7d574fc91cba08c2e173bf89c16874203c1877a0d7f2456c86687c8fe3bb9592902e9f583e351fc2e27932d126d9355c94b445110a35576b53aedfafc0378588a3996e11b071edbb59fb55bdc7ca5ca80e60d339024168b4971145f69d4cac6b7308c39d8c71c23c95332fdaec9bdafe3a2aa9aa832c86e6b0ac6588ee067ff5d8da62d983ff319fd0f05efeb5932135e35406807ca74c4e4db400596955824c430704f711099a0819270955a262274408dd039bf630c94c04ca2bcddf507343292fbbaa769f4a4592d3e66fcb8c83f5c7224be7f251b272ac7b045eb5b067a05f146e57581567f3e863c3676b00b0a84d5ed8c83374dd7d3c22467c8fee560307588cf0a19dfc02df208385b49cfe24d66063230adf0721d28978d61badd300e3f6ab2e7a44bb273b658fb8bc7abe7a2e04fa780de8512e6e4ab9457c3bc3339323a4d76415fc81ebb28f366ad3c759a70ba1f05ec8df644a61916dc099506e815470b6dc8c42e3c7f05fb4c167e2b40ca965e8768a90769cd66c4fe8553b1a6f58dc5e1b666236fc538a7dd282b63b18e352a8c395282c4b6b8f9f12624945b35ba825a97de9e12578219e5a22b646b5db6c9c18ed849ac431d584b91721eac271698648327e118ef0124595b5b1f5ed91003d34c1c8401a9b6ad73aac58d87e741059a334a916eec54e15ea05fbfab3879ffc529ac33a3abda9cc6bba77f4d03def872a14771549aab4b7ef346bc3302cdeb9dd07c1b8e9f1820c0bde866d8358e2fd44b34e30cf04858e45b40d0d58c498e22aa3155e358533a67fc3407eb3e2c0b9d4cf0c2482f0964d6d5a4b666d09f91e8b1ced82e597611c9cac0a74865c9101e770fcc3d317870b514066940fbb87b89c3658074208aa19538e117e8a0f8c4c2cf341ce832cca0bda49f338cb7b7aaa456d86243f9125b7b23e5970a80cd76f0c69d8e64789a36daef18d9929f94fd73e0a02912308359a2f71f3924135064bc3ed4a90e3f0b1437bd2602069c387933590726a62348fe7d2cd077c7eba0e89db33188aefecedfb14897dadd31f394e0c291f80ec16a3933f9578448a345f50696b3e1c4d5078e25130cff6e06eede00c4cc6035b3a0f8b8452f600421c19c4e1a597e825a12994780710b272298aff2674aa787c9a3e7702a1241cc2f4df0a3742f76f123d019630e131efaf6a7304c5ac987569e40fecdf2cc1719b997ac8d757212f6180ab1444be8aef45f73f8105fe71f663e056038056cdb6d1084dc05fcebfaa468cb598a72f0b46af82c8d11213133353c7bb2c5c6c49622559706c75d7dd291754c1ef10a6abe18d00c693bf47306bf2cc29b3bf253d0c2bb57e5476ec16072333f136e1ea2a4dce6e3d1d53ba45dfe5f8f4a33c0062e71449677a75435e0adb8aef2d60b8f5ea54798a596f6853dfb9910764c39825d4b10df599b7dbd19166f3627c5fe6f0504ac94f4ff1c94fbbd536ee3879506c9b327c34d8d60d10c4754651c0bb410f9ebd20710f2d53161f88e95e468c6e75e08fd2e1f0e78ba1d92e103225d25bc6e565871e0b63878cce283770b5b1be3a7949b4ef42d64ea126907786abecd25c644a6b93629d6e52fbeb2fed01c9de7a298ab3de73128e322326a0ecaf53c0c3b6f26786b547022e70516059c503288ce5f48c52404dc78a5b1c9e828ba328e54310438111e77e4855e7e0ce61034c8294d95ad43f5d4909c39176e00e896c5eab5e65bf71e212715c8380b0113202e47313972c7d0155c9b7166ad5ce02591c3c8f426fd25e1d1fcb8ac9dd690f935ce528d14b069b26f0ceedafa1f19b50aa350719f08f4037b07745212cfebe5e23fd874041acb60ac0b6b8496e217ce501fa9346c2ee917f59196a8cff9479866fd58964a771ad0d8303654dd306c588e42201aadd70cb5f8114b32b3d9626044284aaddf442021bd20fa9aa64437b663408a21a27bc22f581eab803c492ea0911748dc90afcbaca42a1466b556c5e6ad19d631829d6b7dfb1064c750c613891fc30fe68d20cd17f811716978ae7c1f8dae4568804be26bcfd499fb887256731db232148b569c80557fbe1806028c8993cae0980cb340345b971aae40b8972c104378a17bd86738ad2145f7579cdeeb148fd2b76ade974a81fed0340253ee0af9c7ae94b305bc105b182a8a45ddb35a860a29266ae14b3c876935c339f6f51b6cd112497381f1874e96c26aff5e00314b8925815a13d3a3a536d0f615d7919abce0b5b188a48fda38cc9169c4d8dd527346d4982987c04426ab6ca83ab931ad724cc43e63e6e0eb8582c313c63118d1e661b532fbede58e5fe54977f5a4a5ba5ab7b0c81a8c3561da45bb6d8e5bf983744ee548f5d4b8a3b0bdf1cda68e5bff2de79da05491bf6551a3ccba1aab65c024f4328e6fdd8e0219be3c364ba4bf33d34b38afd8ce5738770f69d85d332912ff23bb4a6407489dd25d61bb0af56a13f856f4bbbf62df3166f3b997f402d959d7e082d6af83a250521f42a3c00db6c3596cb71eec09ff15677ede9783c132b2f1b2672d8e3c199ff768bd4a8466e1c262801aa1b71e0bafba80469e13c05e46b0dba2d1ca5f6f9bb5e46321763a73f787b95c5e16e9e26ed66a1237079c215d0b38bf5b7ce68a8b45b40d926d4dcbe7891c2e0e4f1eb778ebfba570083f5ffe4a5858239c150d674aeaea992b4163a6c093aab11c4eadca9681c036b2511c160b5543675ef34e99606c8b3562b023656a30e195a5cf343ff9b54a19526b28516ab305eed9992cadf5c3e776e603904f4c3206d38eb2ee82f8f4c1c0535d5e9c5ec56b55299dfbfecf5952aab932cd98b5d38ec2f1ccc3d37aeef2a25590035d9394c1b0f1082b7c0f2bae8ce57386e2976648142d1355cabf4f66deeebcf8bed225c1b8f071b8b715c71bd1472f87c6e0cbc0686b6604bb6efe7ebd4b75494c919eee9ab7946e374da6472a5f08a8734078c77526ac1c9dee6813612709b307149d1813e521cbafde2600d0bb07dc6d489eeeb491c56e5568d2cd9f3fb73dc6e13a2d7e73922efe340e84335dce0879e0c9ea6460e19912793affccde4bb388de55e801f9185900a3b725af4b446ddc9128c0578bc83c6ad08d1a1a3b2446ff4b4d6d5fecd171d106967a472b23c24f3ffd63f191731697a55bd9b820a159c292c379214de372c2198c99e9764acbd2bfbcafb150c1716aa8c5764e464dce703c574b96090a44b7063130a34862f21527fc26d093352890222a8ecde9fed88aa680cffec791712a6a3b69e1618387e029d2e8c185808cd76276e91c7c064c6c92e252b505e6680d39498fdae5527ae2e53b25297719352280de387a834f84d2bd233d79bd678da94f60c113d6c41083a782f24983086deb5a3f8ecb12705e2ca03e053d61ebe8e5df7b428253e27ce40ee4df9b922ece307b5039b496ebb79dba99528d8ce366b538f212cd7653b785a8db2983829c3087b90a5bfb30ec4ee572eab7a10b4b8d9a2a77f371847b28f24a7729c3f19442649bb1f10943b698d329b95136149f417c2d8b493c7b1b6554f0c4c288acaa8b6be29bf17ed7e6ceca01593c6af8c6bf1dc343f1496b386aac519ac1515ca1a1e49fa59d4b02ed46eb333c75a35e6e50b73d7d0803c6e35d8360ff24d46fb36b46b15dd20b7621c6c075a7e604f6fd2296af8d743b1ac15028c75451c8fb781d3467864064d98480d4703693bacbaab2cae8a0419170c32125b8f92a048f8f5d7c4236d69e0555f4869524131f20be7f9f7026aebe24f4a559246c4b8bdc0199ed5b7c58149f2ae8724efbb8323981740bd9cf13f0d68aeb914e4379022d1c118ef9060e4dbc0f4400649be069d219065e7ff542ec0080eb3e94e60efb98e74afdf2fbf962caced8cbe505e4abc6338c93629bb55691727ba1b27065b91e04a3a46fa5ca040ea266b729db5a5bb4483c76755e7e3080b1234ba3021f7fdc34284604be0769abbf975b79df9e16f340827f407a12fad8c0d0ceaa4b2b04d0cdc8b2a47bb6ea76f2144679516f34017f43529bb4c6cea6f7c3136923b9c8a2d7096da7249ad27372f2195e528daf1e6e606fb635a35f3811af4a60795957d2ee5562af03abe4f983492eaa9e0ebdc1acd69517bd10d002eec4e75319856a59f38be4181f53564dcceb9904b6218c5aa5d39ee1f77eff24a1795eb2dee47656355612456813b05ccaa67d54e4231792498c15a5a943997ee3a4831658aef995d3f032dac5011439562cc0b3d227f4007616b65043f09064bdd58ffe84982b6d9792048eab7be72223ff5c250c50ee8e7a1a611178716a41b1646b0a707bc4d8e53352ea4d9b0f74808c64a0672ab4ceca241efe325058fc027a3e4e789f109d7cb24612338ff5cbe81d8e9ce2b55387b616c98c3a01feff00946318468601fd0fca49c0b0cb6b409d8b23acb29c05d4238e29160718d738de7ca062f5241b61b83e3cfac58a01e2c895516c3b75defaa4834502e735645d8e7583d0c0619c8f554f38dd29b094ce14040cbb7dfa372ba6f00670be7d4a130e9c716e6c44965d7c1b0f59dd7bec47ab97e13b22acd9f1f8dd3b3e3e80163333dac1b1b66f9c859f996af76d2beeb3d36147739c169691afe2efab9f26f1373793b1b60f83d59f2aa956a460599ad7225afd18c9a6424390eb36c48a7afbaee433ad21323365828ce38e1ecfea6af40081ead7a113cfdca5bf6e8025a3a282288111ad6c4b511bc41ef6d5efcbb330c819a0e4130238aa5bd531899ab9ba3a3d5e05a144b74fabeb1183be2f64977e4977b11b1faf8ada4a52383e2170a8478751306768005abee38678225859fe2b6dfb79751821e0a5f0f8337ed8cfe43020563a9ba1ccc004f950657422cb319f65f185258f6a44fe68f2a5d0ec9e82776e5527f5f9f7e29f73136e088843e3c1d4dda39f6060ac1ce619731c763e504d63d3bb2bd0bc6432df1267efd12d3d4836c3fd63dbce77a8f14c1df4efea36550539cf5d1888b0d97aa1bc3f5a3e8430250ddf909c8daf293023e8c3c777c31845dcd97629fc8818b33947c7d24b39ac152293ed631a8db999573e97b7740ae8b0d1afa2ae489bcc13f68af1bfb3ca14c149512c3d0e5bef51f55b70137ab3d89b4ed424865ec999c8fd52084ef0e8fe67ebeab87e4e1c12c08dc35c95014586aa5e8bf2733fca21b59ba2616b94e6a849eeff7f433ae01542811c4165a73eb9a9417b2d74ce466ee357fb7491fc9f29d846a78d1b207e1753e9a098b9cdc88594631710d05c9bbe4948c147120fb6b69e0395218c72fd0d8eef5f77977678b6262fa667e2e5b8c6d954e748a25c9aa0407d14c3c2595da7d292a427390af61ef80a64f8a7b8fb3567ffcc72780daf30e7abb71392ae796711daf8a5f6362d01acfa66583091041132e883c0d08389a1709c93cd3bebe0b8b5fc007bb13303c0611f7b0c16d928cbaf4ec4f944af148a1e670c96ee4ebe9d6e4ef80aca6c1605d34fef1730918dc03652c5d1cfef6f6dbd77dd25f9e2c9aa21e2c03594960a439885c175c4c5b52795e4648b9d5464eb79a7b74502da9ee72078c5cf957ff4a93483378b4c184e655ec7d1758c88616286c8066d7501b602caf3e9d8183aebffc4fa8bdded092a0b73c194c551ec857dd54068073813e591d58860f721b186b3240c035804f351a26913c2f52c841dca06c1214085e088df7f3981e7ce5ecd85bd56d6ab0ae0aa60b83a4c8672cca8c172309702331a713661dd8fdcb470fa6247eedce22927b88248f4fe4f2f07eefa16b80b89075ff7528bd0c03d984c94aa08a0a495cfbc487266407f7be0cef224a05ac45f3be95fbf9337e03f1571096c56166995ff9c057f4fdc32dcadcff388aea4a5b0a97675ec65e97295a84a25575389a78c5ffa0ca858d380aac25dd2dc6c32de63e38a6e78fc5fe8d1b997d3e4ee67ba93124d6d91d33c5955793fa89df4b539e7160c57631e294ad8730e250773ce47c9bc4205e5ba548db1c29a42737c32c1a678b065e7d5c272df9533573ea5b9d6cc5ac9596eb53d150d887add26b8ce8841a4966fc90a0cb3b9efd05e7e71f119297e401b825eb81f24b1a7c454e88f0d13fd60be7f10c04a4dab0077ed6dc1ed0512f8ba46731589aba5ed87b7689cda1b64f22a95c593c4fd5f29bffecfe4a3c18d4c5f96692b0b7c52c1b82ff448cbe786d8277da359b5c4e3d5b0731f19bb493f737547f9db486640efd324193bbed1d0d32b139c10cac857ed70c6f97d8ef940eab31d26e9f9bc04ae29eb7cdc3998fc2020df2568c3aba7f74bd78be00a6839cd34d766c9344c34b65794d3580bd52169239c6f84c62c817a25c13bc278f033a524f09f0c8f87b452d9f9e6e88c1c8f9e22fa7fdc035fefc1be5c5b0989583cadd38ef1f93dec1506c834d9f4e77db070b142ed1b01404d40ccc7a404bd9d8e4f10f2226ed65f764987994d89d9b31943a44f22f0b6e37340f21e0869b03ae6c51ae1c5a7ee8d4815ac64392fd7aad6fc2e269ffb7d9c50c7bb04433f2434d71f886fcaa737632b64d09b288e09d5c38a570c1e88adcd161b558628f35269365f11719a402d8888f7dfaad7cc5c07a6708cacf8d8fada086710a4d53df9cff01e345ca2d375ec6670d4e445858b6b3bfe2d7ebca772ebf89431a2430a771648f50bd12dec350e96e60e4dbadbc92ef6406f10c1fff51197e3206c7fd0433e099330cf4b5b5abbd4e1e5329fa535ba857b6475266d3802ee6962ac984db894eb4f60b343f2412562fe13040ca9efab20097e1d2fc447bc282b0a859c1900d76dacdd88cd1564456b74b89cdf49f4f01156619711d35c6f4047a983f97098b1ef3231897fcc7d28fc9e585f7891f8ccb335ff1bb8d5b79bcb65cf256e54308d42b725d9564b74ac3e61a2f54dfb34abe37037ab37f9e55e8d46ac00b528c45109de3f4de2c8808276dafac3b95afb1af5ad5499f1068d918eb3bf0f4f145d273c7cce4cddfe8f8f14433d41fde85a3ff4cc8e043da96051640d9fa39eebda24f7b831024166c7c51eab9c341b94bb6bc29247045d07b8a25fa997032bd75b5d0cac8727521f87d74d1df622544c5c130bee2d455cf6b072d10b3a0d74f0510b3a42b7ad7fffd85f1df22b9a9f4af15703f3d79e89a4a188de1d8381e74ed4da1d03a6b94674d55debccfbe6dd10a0cfa85b59b9e8eb5038133d4360d66836a12f5dc98412d13ff5d9b85ef918a94aca2ba6882b3b652b831a88e839ca69e4ff5312aa7a4af0296d3f879e83aa6a9bb8674290393eca2be1868e5321663843d539c5a1422d9ace02863849eae87d15972ad25c4ee81709db3b6aff97aaefa25023244236b3e44f8b5943923a6e914ffbcb37a500f762efa4c430bd844331ff56b3290f7405885024149c9c7e26a74687ef679e983975ee21386b2878c7387f88825b6005d1a1c5cf11d593be54dbd98e12da1d82a5f03ffdceeaafbd9da3d51475662571d00eee63d25f60c9b5965271787b833847bb939f13ec4d68ac985fdab81d991f53223fc4c5b7ebf824070505b7b8826874cfa767402729454b0ab8f8b2ab01ef6d910480d50172228ccbd13420ae4758f85db6f70d767635d56e97f1d2df52a836b4c4340bc34eddc43ee0e8090d89e67e720fa54ca15e869b0502aeb8e38862dff39ef021f237a6433daf15cdbfec4f3a4319a8926569df569e6b23b37e504602f6d5a6ad0c4afa66f73adfa24d5d6e6358b617d6e94b6d8d11f184e564627a7523369106a629c0fbe4b3d8074dba3276267d5124468cb75d5a3b29016a9924c0166ae2a97b89dbb154a542f7ab1c97a00f9641d37555ef4acf90de41f8fcf2edc0a97394d4e9cc2034610f664d3736dfce8365f6ff42ec1b1f0cd0bcd7451464dc862f98a5029f9fce2c0658a42832e7d9090e565fffb6f1ae0f7773d4392d7eabc24a5610917d2dd625f05e49f6391fb98245c066f20e0ad1091742ba8d577f0541623e847ce8d91ed1079a18986278aafa3683b33956c2cf2f338a29cb57489a691bf31ff5da5d73f3163ec280f5711d065e47dbe146fc356a7b8d544eff691c7cd9a4e2992d4627b89565161a873bc38df493ff5c656063533787b7f7acb67b0e2b0d7f6fdbf05aa5563d33220ee65a2de7f495c642d0af6c2f49dffbb863946b558269503673031339629da8aa4fd8015a20a7e8486203fdf7e3c4101309eef29cafdbcb3609cf3454ba4db3ea5032d05e92d9ce86349275cc7aa8365cde0f818e85fefb722b78fde51fdb1788e853a45297f79cb467a279178ad7b2684b4b675b296481accb5a7d45afa076c3735d3149843aa20fed727386779319687ef5c0e7ac03266de24362474b749fca7b58dcf5a67e0ee547128d827f37d8a2b0da6aa3745a8e08b94ad0ba0fe97ce4b6283816c19f7052b8cf8c61274bd0d16f2c8d9b98026f1f72ed301ec4b0b0880fd2b49881f4d0589b7208354a45a7ea855b3776efde566a9b6e4ce3ff4ff93263d69d0efe82320a3aaff68d0e87fed8169f4b2cfa07d6537af033ffff14f3ca96e364a536c92eb282ba8838a4ecbf41fae63def518964087ed08748cd33ef1269d37b0050bab7501ec79ebe8843045ee25780a729874b22be0811691d592e3006e55844a0cd3d9e8ab09666cc0214516d946c23e9c1c1eee11bbe1fbcf194406e20ad1e902fb9097be5f22eaf85820243c12912c6fb13f051b03e19edc769d3d1eb109195a00194ac8dbc78a459fcc92b98e471463f44dc27c154f062b1203a516beae406498a62e86686ac6cb0e09472c40b47aebe130835652633ace407a78e40f9ddeda0acec90a566d9292e470e321557ddbe141222e352e7c8c237880aab56f401899f002234d395c64a3656d244b2efd491caddffa4cb610c739981c98a3092b3e93402d79d40fcc3023c53abfaf85d9fdf4091f59073e94b50b6023b19acc9617f0949bccd4f2d5fbfe510ce684a37fde6b648716fcfda42c0338c9ffb57cdcf0c7d681d286a22e6a295b981a6ece788d1406c4f511294e4c8ac9a48c9d9bc1fd10c260df89fb94eb0ed9f97ade17ac013beb8073d992eba0d51b50e4c13cc4dfa935969a781c29435c22741133276aa99786c23067b1a442bf9f6e7bd11ad954ea869687912e8341743cf7447dbbaa656a069c06df660950f5e3ae84dd1925fd2b5bdace3be5d729a79d10a281bbb07ad3cbdacb2ae5ea6c217383a96ba208b2881eff177f6d7de5b232a9be07cbdefc2edc53451a8ec36bb33f8ccb342af674f8aac31952c4778447b0ff20d904540813d246d9aae2feb86fb6fefb963f17fd086c5ef0703dffcfbff49ca9c00f441bbf13a329e0d8857faeb093ef1711b4947443b3d7a1604fb4fbae77b233afc7bf1404b0ebbfdb9705369ab42658c40b8dab198859d8cb5583f228d4e1debf2a6ec3de8a5f8b13ffb211edfa2cfdeb7f9a0c00d3955ffd199164f102081c4cbe39943f165361d9bee70156381cd9032ecbcbc375e9ba5094a7d3ad265fa6038b4aca17b35fa0ffdcee4ee84be2096c9b1e76b6fa15f9b3155866086ca05ebdad0178ce567a508be61a57d8e9096d818c0d7df238c3edffec17f3726451cdee5a78b53cb700e3100484003dcc2b03e045103b652c4cfef56170b3f92951d161bb8b9a09dd048cede9a00fd163966eea01053c7a75177353aa7a56415e854ecaaae130fed91e192642180c4898fd1c4b02559e242496c02a7cd0f152e1e2e4de3adb47238a1d190d4aa4a4400d5f2852a228ee2bdaaa0ba2a9751a2bc464d18bbfab9f333088d3e40e3fb481442cdaf2f6204723d440d84d9713ecc46a4b8d9d8f26c0c22e4cf0f880c7f427f881b86adf9f927c973b2d0aa492892f4c3e73de21b3010c14b0f16ea3e934e8071e16f1fc6fef27dff3fcc4f996db26833c4d6c6889eed3416a194b266cd2e464c00aa7e8196805eb4850380e3a81c14f592c0bf41596ecf779edc489351537e2a353ded297495708d069443e80adfe459acaa10691bc506072efd750944f9b25c95f1020c67218f3134a638419e645bdd81aa352030e53c81ab7555410ff4b1871ee7ee0aa98c1e505e25340b911a69b0c9fa76a0e83b94b6276ff09ed69449f16c45381d202e08a33a6dcd8d2f697656fe482b41a330c45056540826b5a4b7bfbe50f8dde105df9dc11c4b06ecd90ce1581051d4d203a9b0589e5680f490ba418443f1c4cd51c8316479777d324c913296bba29834cede72ab58fcbbb7631a6c5f714524ee587e8a4de7067517a03ead865987351397fd109b412c91cdf782af92cd08087476f4cb365fae619ed04319c5ae5bc2f7ed7d6332f324a58d2e9c83d784067fc44f2981cedd1a807099a9571ff965768dc75a586ebc0184a68c9bab8f685a446d8fa92b29df3c23e60cbd98fcec92c7e94a81ae72257a3facc639725d88c55f401d33445712cd82b247660d6c6fb2550cbc64906711405a69cf81a753b45e5ed9095380428ee722428c4bb084a88d82b43fba75c3449e299a731fc13e1fdd17e3b222843bc108c6b8c0432fa09563915aee2ef32de87116ebdbc4abef52c52c458f5db464eab0ca40c3c523eafeebce9236fd821e62037ee2b76e3e246b52541a54ad738f1cf994db57b26acba503c8234b04ce31e040877313c01e002d73fc198f5ffa4c7947442da53bb9419cf0d93e73333c3ca9144f52fd1a1d49067e2682a820a81240af713354ce5def651a0239c2b6da9a1a4a6bd70678d121f9ecfeeb0a52237f8e122a14a6234c5782802d83b45fdd7991e965c5adecee8ed94dfe4922a9e8dce094d832546ac791ffce8288b501d631447fe30dd795f18e372ffb4c3b94bfbe3604529f81c7e0b68814793338b386d1834e1f561a2b2ddcc0f4124a9fb95b96d7e7592d6a0fa402a4fa6b3e5acd20ccba203d274a29ffeb4a1a9f5a02e3437a7e991fe20bca1a40021ddd78fd716e5f54a923a16858dfcce93805a9dd801fd03f81c5552d2ff6a78ba3bc81f4cb2bb431e85434c5891e556aac7d3858058000de49d59b957dc44a03b06b4797b2b0e8e9c1ccfccc6304250c55c258b2f29b1c79a5e5863f8e1047818e9dd052f55cc232bb32649351cc4b3a940b39d7d5c16094a313aabc9050673771f2508b9c2a0718b9155671d0d5c48587d0e6c3c31f02de52e34a18736d540697a2184d85d92814e7d4af2187235176129702daa945e5eab8059631e1da280264d0e8dcc47bf0d2452ed255ee0a1da4844b3f7649bd737541fc419179474acf083328406a96b00e99131617b69b3ff0f88ac497c35d81c42ab362eabd90f20417c6a5d00db18a71f09676dbb85cdd6da93aeb7fe7b31212d1db0bacdc46576245d67194bbdfc4bb195440978bc7da33421d8a95c558ad41f0b81f6e284d7fc0ee14a8dadc56a546f98493954d16a86abfa0348e8d3ba0c157f357dda99108769825e510007202fcb0b9df282af8f3be08886158ee7db6f5f7be1c5d7c32eda9f61bcdc8063a95b4d13893b8a1430d659137438116cd5ec7e57270b066e87f462052186b7e00651523f0ca99783807401c92ddefa0ad640cacd08cd4e01e1a86fbe4a0c1ea2beb75ccb774cab18fa462691401323e3cc610ac3399b8ecfe5f297f13ae391752ce272170d6b14c03d630bbb88823789d896f09892e2f103b358d0850712139e237d829f6d151948abb14261d4dc2c959f533b0dc4abc84756873825e27daca7036743210bd2c8c748cfaa555ab5651ab26687b4cea0df1d37821cced95d9e46f06537241a555a42689b50672f70439b191eaa0418b1fd0402944bee190605c2859a13d401550f14aaf56c7b19b46098f5dbd17bff7ac43b41512fc99892f0aa025d124672a611013d8accfb941dbd08d44c9048ee0c7a1942b2220249ae7b2d9f0632e0e3083744f116f94157d1e9b789b9941327d351298b77ea9b59fad9adc19d88e889017864a67031a75073843f9e4ecf9e75a4e08ba4bb1293e708f2bce6b42edc5ef8407df8391723468bc68bbaf81ab45396bea12f906e732ba075d6417f24056c7ceaeb968deb60f9e116e5ad1c9b314af6464ef5c72c1ca2a5d16ed4cb9d7e638f0098b77b16fc7763bcf6f798407c3ef77ac7f9a14c1cf18e5e6d8aaf6313b94e876ec0aeb28853c94441f727a09c2da4a035b42e3ac4b881a278d3d30b831969b320d72bb3111cf3c9171b166a437c85409671c34f960f7283a70c73a8b49d4f14359613618cdd514219bf296a578ccbdebc7425ef8a52566057bd2b58dcd877c6dfe533d31a2ab6317e023386d8d400d02153c08605632c138255e1ef6c3b3ed7fb11e1612040c9acd3ba3542100830a37436f49d962c3b59c384d0d32acceb5f0948637accfe218d4636e2de5932f1c50ade5647f218cb53167b7afa6843615043684e5c4a8554e2ca0990111afdf81e21a0d285961ae150f2c04a3ca7abad9ac89d57715e853a90c1df2c10187c142682448e0d8eee80eecc42c165fdc7be344138ee2c45b99da42c3f9049cd05c2eeab2c114ad9c2530f27415f9b2e2f89cef24ac0028aa6cd0231c65a1bc3960d2306cc47d6ef43744c16ad3ebd0006738f43361977c8a135dcf7c629f3ff4de5f41f5db0089bd7e6ca978439764841c117530369026cdec8cfd82190caf0b9a5443cfc7c0f12badae400a232fcd45465c3724643b41855e2f14dbe0de6e2dfca80f9a50416358e5b2e609fcb1ec0572b44c36e2b64f330dd5b03a46bc858cc427c83c39ad8011a1c5d790302ed600438648c6406e190989ad02b9cd01df9ab90ceefe46e9884a3a336d25236b926188dfb3397417d38c66ff7df39b6fde1119a8dc14b885658b45f7cc209ed51d3189484c70984caf48aae0f87b783f7f326ee8efe5a0302415914b2b0aab619f30a59b8f60902b023101724f0e2e128abb24930fff2aa0048060fa71d899119eb138d2bd0b21c103258eb81cb2a2f852b60fd76eaec1bbd59b104c6ffcd196278726c6381395122f31d8225ed07825fa9d82b2fcb245b5b138709d9263031d5af6439ebfcb4da09fa3c73b432df1f023699536cdd26253cf91566ff68ac084ffe79023c44005073a6c0df35da09b094b269ae26ced50c5b6cdc22d07166fb1a7938389605abec7d7d131ed15420a85a1f2adcf90bbe72605a86beb102f423db1df38877b3fd0ba93f4474dec7ec905640bf32d6112a384fbd663c80231cbd89ae227f0de4814473b8cf7770adc2d089b109696454720d39136cc254c821b98b5d6784278c576619cc87fd4cf6fe13b5b46623ebdb8952e417deceed0daa75d39c36ef9fc17d926b61ed052eeb50850501ac524255d8950456e427adece1d9445c65230ac24aceef2a5284ac4c95a66adf79451a881ff6b7789630c2e6f5e6862d8a942d73c115b8342159942c751df95b14cb75b8ffbb86038467c0051396d83ec2c2110bde9175c66331248ea0e9f1ef61cd92c3ab11171c5de1d8813881b3ae6e54dae37c1b507938c3e4c33b002dfe9c37abdecda665d7c774411982b6c6d2210750953e7c410dc54ae527730d3c93ba2c160f90a488e94b8e6930a1e03a64108bf0b889619aa55cd612b7b7f5860d615231e69341f39f054c85e15e256b90c7a90b3311f2bc349b08fb177c7a4e43dbea0c7c9ff3edde4590a6261fe84327aa0e580879b81a294405a8e0b1d3657f4ee680e710f1e5858bbd54b85705ba1afb6454fe469d6e63780f51dac2b1c663e69bc5b1d34fd4210c1688d07cd0997fae63fdfd62d021d065df371894983f0d96e79b4781f0e1531ee7c4bb14c26ed1050f91baec395b05d0a546e1fd5bb6dec37801663d5cde64234f561405e27e5a7618925f48803da6b527a5a301a12a703d9c9f89d8902d64dbdf259336dd6ff05b9ccc9cb1f6545a4e2d405a5fc3c770dbcab7f2b3dd682e3892f03b030da02eeb8d15f20456380d2498c27ca1cb2ebbe2686bda89f05fabf9a46216d6fb9b7dc524a99520aa00794078b074a8250225280d2c5312df4dd9d508286eec6b66eef93fc0534128f6372e097276a50403b21bb1f2dcff1d1d7a6eb61f789bc6f4112ed5afabb73375da1e3fa8e6e8abdea1c7ef1c6825dfc45221494cee9951b991d0efd12726e72cf69aab09f9b18d0029f6ffc183c33ccb89f9f669030366061b297078d02d8c53fa777ee8bbf9bae938f6a7c04dde426298fa0e0d47862c73c72ba96c8b2968fbca2aa1575a6da5cffec49adb5320f0f0f0f0f8fe46942a9b522d1bfce164bae7cd970eec06692074a1e2912595b5bae7f959931e223f90dad0b889b8d71f2bba77b9ec30b466ccd7a2c206b8d616915f6933cd8fbb5695fe55baed9c505f63e209ae35edd06fa7e92e78bb10316015cc3ec3a406de0180e7e959f0d871cf734e79c57d6e39ee4812e27b05fd662552b3ee17e2e57871f40180a1cc6173fa08b67adec0c263167ad5ac4f54ac4f52ac4f57707c852f75bdb0d2152023d0fcfb216bdb80f2ca2798d2ad0ccd69c40f8c82f0c6d45cf0c39dd9826109456d7dca70044d02542f95404493a7cf13c02a01d901ecc2f935b2000a20577881014e111942dd94528b31958e697d9bd0eece21f0614608018f11b30938f26b780f0d1bde41177e1171b24f40a08a184946e485814d17577b9ce5dfffe6c776f4d41409838b2a564c92da594b293e058c8b9db30b75d4f62879bc0fa431971268e8886c5eac14e489c6034636026aca685cdb0583b3b3b3b3b3bbee33b2b2abf42c493e83cc179606056fe7396af288b3546f7cf399f07ec9e5fbfa7eff88eef787cef99e7e2d8af7f6a80792eb5901484e8878ca04889e5559ee5fd61a03f5d798e495e05efb84e33ad371ff559f445dc9020564a9428897e721f658da172e36f7443585ec5015ebaf13c7c05c7e3e886e0f8952f52aa2c9ccb705c4b909667f996ce655ab267f996c7c1b50471e171bc0b9d9b70742dd9b7748ec2c93a1dbc74e36fb0749e44467b6e4cdfb9f151855250549aa6d2549aaac68d1b2c362bb01f65b14e2c2f81bd787c94bdaf6afc0ff47a131f856cd8e07b838ba5508d1b2c9fc27580de1adad7e028a7b97783f3126541d24541a114948ba569174bbb58dac5aa71e3060b666333baf5c8be22362b1c9754382ea1705ffd400cd05842c9da7cb88dfbfc7aed3d4c85e3d20ac725eebbba4f11d6495c61b1583d2b2b2aacadd5ea6141d28a935e595159e1bce43b9044593b2c16aba75756549ac512d122216f49713353a6fddf3152ca4c5f52c952ced92d386cd73aa52e9fb02f739aa3d7ff63987b3648ae31709899ee60e2cd4045222c58d10d110098c42d2f6cdb9d03b84eb98ef412d92cc1e9c10ec330c3ec10c2830d33ecb018292630304fc6c041164f70b0c4c9ad529372eb9f811533b84172ba1f0c121ac96d7773800c2381a744bba3fbd3ef4e8b34c81002f494ae873260723f982ac4d0b9b9b9ce2e822e6e9bb0af63feb792b89e11f6f3606e4a07060646ee605ba8215fcaf7804820061d5ec0c886ff10c2caec637312f60c4a4112d651483bcad5aac4c277bf32b60587ebf66377a3dd8152ee3961bf974ef048e6784b25fe5a5cffb8c331f1670aae3fb4e198f9cf31325be29e121e655a708603a9453522059fb64516d7bff6674b322d321c5423ae7a3f1a840c07d7613502daf0cba76d71f9a58b3b204fe3cedf405f508a63e4c3bf32fecf79e454235549401f459fce3927b333f30e9844a3eeb9dcc1c3b7cf17295d3be68e1d1f17ae13e03ae8fd3b0792b68f5b0fba84f5b78973ce39e5fd78e5dd3e29b114ba6ce0c29efed74ceac103ecf9675f390ff0c8bf074892ece2af030befc7abeb735e3fdd6bd90dc4eb5dd3a76e934c1bf1ef1b9038c6f512fca204cb70e297ecc6522496a14bfc1d7600f129afabe6436339b6bbbbbbbbbb7f6c668622482924516aad48f45f79ec208463a04621c94b308e4619a54f3484cd484249154a4430259628cdfbd1543bc124205a38268ab0b0555c8fa2c669f0af52cacf0eacf3d8e1514bf08bffc74cb8ae048781c376bb6bcc0cfb71eb54d336404012e6d408fbf50905fbe4521eb1a97a44da4829a9dd91809067834872b5c23dce94b8ac13c592cb0c616f4de5473ae7c9463a2114ea8a943e980303035310a7f35b67cfeb9a1dc59298de1cbab2ae5b8fec6bbca08728a779cfdb7a6436b89620367ee5576c7c9152886b0912fa955fe986ac7c6845e545d7abbce857b896202cbff22c2b5dcbf5a26be557545670d558414959a961e7e7f3f9cc1595aff141993538be2b5c2ca1ccb9b2a23279401b1c9742d5e6f2c03c9f0df9d069d015545d9707a830c4a52c4e1b73da08cd396dcc39e79c73dab0119a6da3258d8d396d84e69c36e69c73ce396dd808cdee59c3bf0c6e6186e12e00470846e765dbed36871d61ff7eb2478ed1e3fd2915b02e9b7139958232fc083b8644b9fdf73c18187b5da2ae6c0496faed22ec676fb4d61e39d140e1c1ec30430cdc64476c7618237347991bfa879f637ef896ee70f0db4f822e49e1c36f77fc41c27ede75e8799ed3a0015b2094343e7218f89230991a7944e2481d690365134892342ca5a49134d9fd248e94524a87524a0ef6902ddb492e1e2e6920894b9fc4999142766685bb7886e35e8fcc0a29cf882fb31cf7fc71dc732af8c5339c2fa322cacfa8a01a0f2c74e1c62869248da49934474e59aa22a114033df8088646f2030f6d72ca3d29a51e0dd38a39336de669de4c539c1ee3148249f49dbb9263a677b2055dfc5b929a5a25d8aea3c0c2d69d2dd992adebb261c3a4f2ac73d65a6badb5d65a67ad7563e11bb2ff52668309a694fdf7c29d5f4feee25f6d6a927ae767725386eb521a520bd75f9ec134f8d72578c4dc0493e61462d224b9dea5e6927c3ee34cb4f4f9cc4b1ad712a4bef65afd22a55a39a992aa96fefada7fb84f2777a08bffd6b5f46b5deb76f65927796a2759d3de50ece15fd775595a91549b7a9a2725982451cdf3344ff364bf7a3a31b9fe7549d750e3a4ed3fadde542b5a86b875320c4df298248f29933c26c9534f1635ab8d8f36d0ef43a7514f9084c447d76358c6c512e57cf0a559f65e9a2748aa749e4eb09eeaa99e6857bf6f92f78188cca558f7d97aaa27b638d46d164db0b29e6b55d98a655c4b426566ee71884256a391e5892184f2b31f9d733e9c964372761042a8b9477fce39218450328c46bc40031dd4b233202f403d2016e8096805120376b7483ea79818e0b24eea74bd0035a1b96e2fe4da89899a4a70881b62e3459fc20d51f915cdc63d24ee6da8ede64ae18648f95028e5634c49f9e66497c241787dca757529130d9775b4d8b9f3d6c40dc99dddd644f5d9f978719d5738eac46a37ee692c96e43e3bee89ac15acb6f2950aae4026100f9af4b1812efef5fd415d704cf651102dc182015d8470fd9becb807f262c77e8e9e1c3dd71f540304b2a00d4bf92f74bf8f6abec0a2bcf65141978f34c1eedb71b31418c15e3efa349b8fca8254ffdea7fb3c900ae682543beef75181ecca7e5acb069240d8c7e67a0a880907f201bffca05dfc1d44052788920032818ad0906b957b48ecf7515dff8feac3c46f307d2905d41d880948e55e12c4b89f0652810511c12f5aa4bacb3a5ad4e00046162dad9585ea6a2d2d8c689124e5415ef8a83fe5e3cbcb3a4ad8dc9ac2818cb84b4aec40a62df4881d6807b4d2b901eab24e16ac172eebdcc074412a4802994caae80d3ff13d762022f845bb2013bff817f60648051a03646a992009d4a94c57278b1c9d2c66404c9cc42523d4dc0fa462e2a42e710e8a30036a729da337c47509727e9ba91699b0a015880552cd23d308cdf539334d53a6a6dc73a9731b4208391093d68e809a80b493110925fc28638c90e6ba0909fbd527d75fe59e5726d7e58c853fffb5162469ad562b9381d55ad75f6bf98f37ee6947bc465b41926682daaa3e99b936905455d0c57f87ae2c8f88755db3a93daaeb2d90ea03a9402a1afb815420d5f507a9402a087b6ebf4083e2010002d618c6187777addf578581f1bc7fd1d57da25496839d3b71f8c4cdc373fde78e8fa617b3654862fa52fd8943b7898303ea688b5d5a3d509effa317f4d92ca5206b3f22d1f6af799e6337d4ce32acd6d8a06e7026e61a0aa0df40df9f9963eceeb842e1535e895a841d0f7ea132b0dd276b58f723c4803c2204952777e9cfc1b122670965c10d19c952b66c6606c2751799f2dc73c92eae8363cfdfbf2cbbfe2d9918d1479186371aeb5f2133b3e45c321d254f68be9ae92c99c9644a67c90bee57b32f93bd29c07b63c0c5baec1e94524a2965a4d8a494d249299dd8d7eece32ecc2e691d30d990f13a1943cd9a8bc40929239928944f9f39c73cee99b4d953547aecb23ed29b0b725cab31b1fc9d3e9c8a926943201b6c2b01d7cd47d0109703363b5497d1d4ed2fec361a1baaa9d04dcabec39fd50507843c2024c129d34f7cea0b9363fa04b10dae74113c3300c03fd4703fd470369bf3d04b4df3a087c1ed4fdc8980802f41bca5bf973f3e11912219014841441eca37c10db8382b08ff22dfd4140bf7d1094b7df5b4b773a807e7b08803a862e1040b1dd8e4f6b871cfbb1ea8a56da97764012a76d2d4086481144fbcf0f017541866c1d63536218a519670d3f178bae78071f6518bd6a6cdc5b92ca7c7301f38a397eb6ca784c473231649a642d23192b7372fd39ae563a622a5beddc2f63b5628c31c69dd42ae5ad82e0c17017bcc501bc55f6c5f52e5f5486854216c6f54abf368675438894e8f3f06c95ad2eeec36e539989747053da2dbbfb60fa3b8a217aefbd9e955f184c62b84c93961b617177b7e8e0a58d57ab5ef5aa573816ca2a3b4abf2b260df1273de32e1f38230459b8b5cf70232b48da5e7bafefdf3ddde218ece77f6e120272c6b1b6711842f8c5ffe27e586d9c979ac77b4a1a7789808a234a44a44c498af9454a5bc743e37e00812eee2bb84c7ac88363fa3a7f01c35dac9a348f19167eaf787cc47d6786fcaa3599092c44112220562d968fe8183eba56abd5ecf930a1b9a0d96386cf1e61201703bfb80d201a68bb146007ec3c6f14dfc39c60a1e74939635059c767993b27c572a2b3a457ce743a61a31376fe89637c62c03d1e3866cba1dd0339a6bbfeadc3312890947d4bc46a9e9b7325612390ebe384a58dc4491250826bd081655882631ec02ffece8313d6b213ecf2e603d60b8463aefe1c7e692f5c871c1b6c98618618782787777ae7049052110e2cb70cde653a76becc819970e5fba600bfdc32746745df394cfc86ec9de6744ee76018cd6a6c90a06e783e2d50651f60749d8d4c030527c6e8261f390caee347dc88a37c899f1cc9f58f2a56b18a55aa1f3f20a929b55624faaf32cd041a2e789670a1049d5b65db5c3f20c94b3030ded50d6918d4787153228209218912ed86c032c52301d7d6e3fa3e1b6ed370fbe5360cb75db86d83493c421ce3dd3c20a9916097f9f3e327d0c03c2fbc8201eb6877f5117e99df32dacc7c1c4ee2d27c3b5f04495cd2516f6e73f3e3e40d762a33d23e42a3db5d877b3ef2ccbd935b048a94b2efe4ec74a4a698b9f27b903eeaf94fe5e8e54b393b20fc22cfb03b2d93855879702fe2b40a079232c02ef1634e8cf10b306c7c6e1c1a4aad1589fe3d9c2b845dfa59b4638b46489ce1466c091ba56c9eab89ca3abe0a2f8c91631aa760e17b9cc147ac73c5e9c60712756e5c318f7351d1d0e971ae150ddbdddd10429713c6aeeb6e06f7206cd9f83c169092a287dd8b0b9d7bf7e0ca08acfff7910727f909bacc30890774914f8dd823352f1259bbf32a1184301402e15308997be61817dc57ec78c5972df179eec07e9dd3393eaa4b52b5b5d5f6f25554b67e6f9a9396a675bdc45de7cacfb20e53d981fdb42529f7a47bf275a0051ed68116565d92ef28347afce6ca18bb3e7263f41a277149e3013fe6497dcc934a09812ef229b55624faf73c1e3fedc033fc44a9b522d1bf17bbcfb3e2c9ade1b2ce0c742ecb3d89b1c0faf716bd9cd5eacb819142384608bfe8c082d5d1f341526577bf108ee9db1dbc5ee386d07eebd69e37edaf4bd3beb9a9d53ab5ca61afd18bc1a796a5a29a15d5978fe3dff3116b0c1ff574ab9fc8d03fd5f4d78b875fa7915128a9c9e47bafe3a79229aa94524a2550d0580221dcefef55840541177ee7620c23720d32d535c8ae795a865e02bfc48f567ead2103858536fc1265f7318f8dd87b53ef3e6aadece29b6e9449b0fe95c6bd23eec5ebbae6452f7ad1ebbae4d5411af7e24f78da6a2c8cb1141fc616be5fdf1863a492068623945272c7d07eb6041365bf08c35f7b6c0bbbf7ce9b77d40596089a2be2542887ca3a362358fe4a863f19d0392e826d81000c42b640c07f870876a908035d82c0210f8b948a94bc0392b5c0b6fb10127642b80d552d830938a6bbe601bff85b99560c8a5f6414ece29f53825bc5f5efbbd9d8cf5b2d488a3db1a7157bfc4d903469ba062e38a6bf87c02ea9ae0176bdd332f87b96c1c00c60000000404bcbfda42925a555487a70ee274222f65c6fe950c65b9715ac7fc31d2291e7b5ca552ac8e32d95dda1a93c83b582185578028aeed021742ccbbe665996c5d8c1f8007d4716b1fb9d95d9d8cf59246d7bed8b94405fa454bb96cfd72f52b25fa4d4ef2ccbfdb01b475776abb11f8cc689b621ec27ba0d4dee359cf9686165babddbdc05142919409172fbfd7df0bdb1854db92df0533280e2f2e623e57601c5f531bcc79d38cbbd1ec27ecebafd1b1396871d3b3a00b90639cade6df7f110da81869da1a3ef0311999bfdbc36f083bd72ebe1575f2839b803735259476ba121eeb5bbbbbb7b841452482184437c804666a6504d91eaef084f1cc54793191de440e7caae057365a6685161c5fdb87573fb87742dc302d163b3c02ffd7e06cbd0580a2ceb4861e47ede72726f904023540a26f7f316eb48a173fbfd0934d566f66e6b7d307b7ee3dfd8c2c6f711e18df179b80fee58050616769f7fee43dca3efc447aef5f8886e48ecc72dc6507c1c61a6c75ebfb9c0c65a297c72a10ccf85dd27dfa906ba753f22a6ff88982ec4e173bd926131960eb084753dddea81fbe10848dc631c99eb2daa4345ebf60f7152979ab68898b8ab81e87bfb5edce48a5cf975cd859ddb27ee35247da0bb1b087ee9e7e150a6f3967b4d6bec57e47a439a1417c0ad0737aca2bf6562a33607c892b4c9b1a13905b02e9c0bf78b3934078b2c270bc2f5ac8bebd916d79fafafdd4de9f56117b4136b7c05f6631609acbfcc8fedc61a63a49094015663600696538e0129278eb703216441b1e0b0ac58c460b18265e7fab3dcb0a8589ab0e4b0e85c7f1855502a2815940a4a05d5590a8a8630c2aaa42ab1f1a10a8a637c8650a19b09050ac73d19dbd2dfb7058779bb53b9b935eea782524101600b00a400a0d39571fdbb1e6e8bebcfa5726c415339965c77010ad7df0516c7f4b36071fd597258a26092a4614125719de508b9840a4a22b15fa835a3b05f0895230a1e816a3c070ad4448e9b0b7ac28515c7600faa028e2838267b1427ae3fc74826ae7f8a63fab3295c0fa142371c238f84a4e09144823da721d4d5491a49c382fae815b20135c1a3d0132114e889500b5405151427e8876c7c2485602fbe7fe8891954fc2fd4fa5422763f1514fd2f501747142d1c287e711615140b0aeb5cb85ed234165f7234c61a4c7c1cc614321a7ef1235911ecf9635b5cffaf061557d2f08b63a91afbb1a072e4e458e223c9826241b1a0bc9d942d2aebf840b2a5642066f8c94afea093f3db5efa018463a40bd12c28aa198e5ef8a267958c2ad58f23a7277a6aad5cf9ab7badb556c6be08e3fa4bd6766b27579fd30de0b310008fe2ab1ec2c8b1afb4010e18d38247574db95cdfda35d3b49a61354bf825a5c3e35e0fd693ba4cd765a2c9d13962a451bda44f175fd7755d317a9b03bc847114ba986c703c099d3613898fe427c98440d2e7a9b500bbf86f50a05a19293e6313c23c271f5d357e03663299289548dca5ffaab199a9cbb324def3606070e69cd309f69336d406096a4e99d34d30b314e9a0343b62a37bb0b71e734a16334b9631e8a845a60ff0c679713ec0189f40e83d0b6a2bba8f60081aec7162ada8bef5882df28f6e3da27b7193f3a2358b356adb16adad01218c8cb2a56c31c618a37b9e0e1c90b3b1f5f85ea557567a05be5f98a2a28556341b9bc88648240aa5d4108950ac482402893e9b4824124096ca52b7b31e540bbbdd67378410c62827ac812768d3afc44a39e3a4518b3d42212be2b194526da270e0103d4b74ab92fe5a9558fad57debd1b63fab5a55623f7ab56e0821ecaaa4bb21841042081b7655d2dd10420821840dbb1b42082184b06177378410420861c3ee86104208216cd8dd10420821840dbbb93b7e1ed0b9c8d52f5ca1c6e76e88145f92f810682ad0800732a5f8b123323f0822f2e35f1ddfe0c2726976527432b163e822c1b05c82e1a4845ea2fae0eb43a7717770039b7a790737387285cad2044bcdf59d7dd7eeac3208846114c0a8b30bfca6ce9e7ca75956c6d535fb9557cdae325cb853249215b8304e243088e640d26052081e19803d7ff8f300d294ea418eca3d9f2a601777c972543e9a26f77ac0a37902f672727220297b026764ec40f81fa863ce7620eca6c9f6705b01d644fbe9ed69f211c7db1d6f4f153089ce24ae3fbdc8a08e51b8b17bcdfe69201c609a5cb8d3344dd354811b1f0a91ed4cd096f93577b029a48963bacb549c0dc1c8e597369094a524113cca76dcf38c0c76f1a71916b21574d9f151c6726f083ccaa490ad522b4892406069049973bd6aa72d46593e9239ee6d356c6cbc7d333298747d8685eb7fd51e2d7632c2b9f50032436de4e6bd3676afd93f7136e7b0f8456bc2f65799d9244a66e62889b8ccffc5182111ecf147e8d349cf0f6c27b093267e611f313337c4010303568199638c0d6334b1fc1861c7182f2122c708bb2ca7bb1b3e844a884c8852b2a47442b21a65b37202153b086186e2008a05851659784df8835484cdf57f876c142c8ee743bff8c3cd8706220787d5448e8c3178384dca96e4f8c88902285544e51c2d6344b5bbdb37da00bfb0637823c7fd682db0de0ce347762e61c4214281a849d98dbb78668345b50f2846bb9620342be21f016e13c1b66381054d9029dd7043d7d057cc41a78c3aa926f7eaa68cd00798461a37c7ed152984215322c0edd4e573ce276ce8b28e1218e8e014875042821b1b60a189b597756cf0841d1b10c1afb0db651d1ba86c90c2626709b3a38410bae88a0f4531c6f81042c810724b90ab74bddf245737240893a5a4c810429b054312f69cc44e8146e8dd256f4193b6a2c96501828e1e5cf831033338a30a268a6002ce1360584108d82765fb955cffd8d41a19c30917480cd14413967cd1f2c146412dabc16043854aa6d4efd50075fd7acb32e21588386275451a2598e208191761a193b32367a4b0352eeb3c2145ff7b09c851e9d4e08cbff1b24e0dccf028c829a5ec5a360cc9ee6ed8ddddedd121102e2cc22d077867d67d22d9bd108c6379f560c129e667d95f61c0581f7b2f061c71cb21040c61867d9d0dc85ebedc72a8c0bd3ec344586f0db8e65f9ccfce3a9c004cb4a98f43148a4b80e98196f2826788398b30024b113d2cdb8899142e8c484208492a22c40cb400238d2790c0440c5f95c145114f4c1d0c68bdc20c862c27221824dc95cb3a57e8208b5a8dd8fe2f74ad467954c4db792aeb6887516a53d3584788f28b09a4166d0f1c9597c39a4a7dd40db3e33d26c98f9141d0653767f749662e1289b8bb18a3fee6a2471689ac6d66666e2fa3720c4b8be04a8c8a7c7ac14e8666ca5583a2603603d58fb66ddaa782328ba1d01a57ca0c491b51057a5f166611ddf87843af627c7103c6a8458ee58aeecaa59c686e49accab5712947b7242c63fb3dc618638c3146ca7129c61855b41863f4b02d078983dc72d87208c18d9f53a98f6ef00d967b57e6a6005aaf8b93ecb271806e0aa0900ba5dc8a6990ab716b666fd5eae773eba78234c869b7a26890cb6e4dd12eecd6140d72f4d690664383dcbc75a5ae68220d72f056968aa3e5c607ca1b4370fd3b46e80e935023157887c9027c0413bf3661bf173efa02c7708f0fa24768717828c6181f09995b411e22597e1be218be0c755c771daec3232565d87baef513d77aaeae4687db3cb99fbd99639ddf706e938a294f452b2e99b8235950e3c3af1ca394524687e1b68c7b40b8071be607f760ad5ce4fa57951ea95205fb35cf630cafebe1d6e39a576d1df760a7dc834fc6d553f28d1c48e9fe9a0a15ec7f9dbaa27bbdc43d98c3c3254739f7321cf78eb01ff78c804930f0f3a0ad623f384908ec198ef187f27bf0511c01bbc0ffe141ddd7376c84adfbfa0517ee745fb7e04215d67d8dc4854f3b46013fb974a687f8c4c6cf82edb9feac7373d3e21dbdda87bcdb550bcccccccc5f4fcf694358d6b9e2e6815c3a7c74fdf53baebffe7a181fc5eb8be15edf0cf712c29fe85e7f5defcf2fd7d7336c3f43261ca1c9734c8f7eee15843c99f6cabb1585104208e19d2d486a93a9656ab5e437165dd0340ebf20210956aeba45a9b5d0141be5a37e39ebe5438b5fe4efd0e44a6c8939414358eef6fd28a68218dc9307b8f2257771a50b8f100cf070819671722590203b1ef520c90250a05e27a49ec13a64ddda09b627dcb81929e093e04bec347c6d643e0f872608218470c3a16f3c42067672080b9fc70fc8fd8073fe70ee070ff7e6633db001a184a8b42dd73535858a46020050000315000020100a86032291603c2689b2a03b14000e788846764e9d0be45192c3288a420801638c2186102003040332a351100086c98a52ad7590d61740d101ab93e124865426838aa47e156ac470a030dc7af9e68c612ba9c5e9ed7ba8101d24be14235d3199ad4d825fb395ecca0aae9c9f214f8f020a8ad0ae8519aa3b2b165527c987de57a815fda3dd844cbf56267811d499197889ce63a002cb2655e53e5037030d59d22933e70e049c804c27b5fe295c39134054e6aee86a9e9b6d06d0703a87088f96b2f1c4bdc7eddb3dbac0184708683fb329060b110f0859bd6ca42032f56df06d41d5e6592430f4bbc940150145e24d4c18ef9803aa487026fc49d9364cf0b4e377127b5536fa49d83dbff450df23df07b7aa3087557bfd522e7bc07fbc0218f15dcf441bfbff464daf2bd8eea76d23c97fdfb90180573970848217ce32f3cda0486d9903f2d4331eb7742c768ad9318bc978ef11645794fbc8a6df23db8c894b56dc9967b9480895b44a2c8a66cccac67f748487a5b4d3221339ff33906c33e817f8a48190e0fa7f1a265fd7287a9ecd05a8511106aea2ad847687f73c8de62673a4f37a4a54be923b786d32eef49091b9754b2e83d515c6ed612575b3f49bc64cf2d44a9e6338e14386b6a139ec4f80dc444518fe08c8a2ef8f4eafc187133675036bc31bafe5785e184b77079b384cefd46c46d21a2a0895e3703c4a6e3b3712dcbfd2c7edc1a4488ab7bbb8a7d35b42d888c58d73e1c78431694a61e8ec9121346273e35c31d7301212ebf4122218c1ce61c86eea21c01124a2d35b42d4a8c98d71c550c30848a8db4b446c84d5c173dda4618849d4c153406444e386778d0383b0eecb29c6506ba172a4bd63058513ba26375230e4f6034fb5eb9f33ba201fcb401f571365b6cd176956b16287be2fd1f8411d9bb129d07d2908d07c9edc0187087ec3ce9b3a1e38c128cf5ceccd3e1839e2f9c622d0748b192e372504c99d518217324a8954cc10271dd395b0fef6917d88a844d419d3a359f554d52e5f605522f43c444562b21f462c8aed6b64a2a790c588c6658839d54068e3d66f33dc61fd5a7c7e08eb702dc31d6ee4436d18a2d64a8c91403d0b72f3c8ec22415925212f7c3b74aa099f13798542a4c093382a284485df541d6867aa2a2bed0bccc72b6ab40225cc071ef36bb21d79e9badfe2161a8a3da9bc48aad2771c14f736612cccef5673447cc5ba074583f788c426ba80964f7f103304c2aea872310cc6fa2ab4b8611ede124f9cee19f4dc5cf1e84d78e51f92388bd15c7958b32a5a894b12faada39ebbbee08a2ca8a0490d1457875aae395fe031bf6bb1123046fd7e2ee6066e7d8c230678df0794c9135b85666596614dd5292e73d8ccfa02a4db633f47580f9bcf122669b29d6d9eff8ea6d7d7b284a8647755d8296fc91cf5360726c38479fda01bc9856cb8d1dcc4e9ef24024341ff33046a219e97c971a3fcf614824c7f7548c3d36ade2e43a8db811b903d2095e9fd826b6496bf848b0e29c2b10548d3ce0221a6f6100c40a14c20f6ec9bde602a35247d9d00f2f9c7587754714e9c82f01049866350d1fde6d28353eb843340255a8dc9cc1d7ae933bb66a743e0b1978df9ac3ed71115e18de894e09448e0fe91b49931511f8f894ebc19a61a750744019a1206a8cc27928706c7e56662d6ba3e1ef65f163e5ba0fda7c4e6c2811dceaeb653de1b612db97ce8452dca1d38f2555b2c14162e5bee8d283d93658da3479b42eb7a59ce4c6759c94de8ea508ddc0f1775efff53135a94e7d36e4f883c09050fd4fb58839450d9e74a8259e20a157f6d7f88d1afa956fd7a0611563bbfb040f541ca65e5bf7b8520df72dc3e5ce6cda85a30a01934d68008549cd6d8c9590fe425ab4747c0285380b23ec8b75552d2ecfc7c531501259c86304812ac778b7de70d1a25d2eeeb07c6dadf35f87f8fe46b7714959c30a85b34f9aaf55ca672c296133ed7e83443d243b76a6d65203b7dae3350380735425cbc7767dbc30cdd65edf6fa4ceda1d2d3e8304a65ac09ef73353d0b4dd87b591bc9fad9ed0ea25ab71f200dd6283395d4a955832a340730687edabc9f6baac6721fdde17f22e5cd40396eaa6d0f80221d8c49871fd379243c6a11e6bcaa833f369c6f282d42dcd71101e0a08befc11218385c4a60396c3a643499b4bfc3d7d8b56e87544b73a1d9925c17862f852176563a027aefaa13017b906a936a4793f25a8c2e135d6f918ce003048e63642e2ad7fb325d634582c27ff12cdbd10d7f2e81af15c3ad65c4e92ae701048c832ec2f54e94e36aeaf3add007f188381ff9a3abb29882b1a6b0d9372fa566892dd6a85d0d27a17e7cc0b0cb1546125812a82b31d1c60368d58a66080c57affa674d9fc7920923868e1dae6940f9bfefd2776ba64a7cbbeb22a5582feada52dd7f79af28f1c9d85a6b235a9d7b1b62eea25df7d70bd63d3266563b90a5032093570bc87fffb3f10fe12f43a6d8bbef4e8c39b64ad854128445b1439a29ee8b088be8929624e8865c309edb706de0460b5de32a2621c632bda4b9fba2c1b2872bd4db8b330602ebe539f7e0294fd30a6a7f02b1dd6eec77f6dfba35d1f2db869f0bb8204441dff59a2ab68f6e9fe9791bef1af128f09c48c04d505a93c95881e455ec577acdc92a044ffc777a6112c726a83226b3e7ff94775d6a8cab983ba6105c4ab8f8ccf7b7efd566de330b2f4aaa12116f6b727920baa9c22a29fe0c10c2794b7a0e004692fc1269eb6206fd8f720069b4fb97e1db8a58664fff13f5a212410b72479fc72ec0927c69627deb5f943b34bef718d8877ad3381abb491b638fba1cb5eeb38d2a69d06f3d1fc1ffd2823f1dfde39d898c20699f5bccf07a41a807b159368d7e9431bf6cda516db7069a7e9d41662760dd226d695c0b695200bca0ad931215e43382bbfe2c896278a014481bfd7ce410cbae8d51220c33dbfcd187a948761f2a3c96a91cead0b17ad5576d8d15dfe3b4be82d61838ece372d127309cf742896cfa84d684bb020f15de50abb3e55621bc2002d0d593d88b1cd2a5e416e9ff0ce34faca564e300732c16b9d4774d35226c7ce40fa45e0b5cd419613a4f97f972e994bc7717d15eef4acd9979267c274a430ee0a02e98b18e6becc2536cf617a442b74d877664e4f06d838edcf5ce9039e45c15043fb7105cba6494dcc889a9601b11977b20b40dd20acbe2a4d820f4ebb7093742d24a5b612230029f4be81d35d7619bc584590b2e44b85cf253b529436cd8d6746d5a612035dcc5c3c3bd43a5086690490b8b569969fd6e3a209f78dfdf6a3f2bb3862606a5e651263bc97c0f143450ce91bee8b09a083c2f92921963d776356eeecc22930a926bbfbdaef581b70a7e7d9ac2dcd12d88df4b7ff48afdc7a0488f280bd94ed965bc797f612a30eb19149d9a11f00590c1496b6a70339ee29b04c9431412431914c2abb0c962f7589930099431ca2b024e6e0c15bf0c916178f107dd2643e4af5695ec94fc027e5f930512e61a4a7341e7aca4a64945508bbe7da3f47ab43147821d1c7bd9eef3f795e57a06147e3b8eb494d06af6b96bade9b57dce80b6fb32e5c89a534b6891e2f7a2fb1db70502df1f8578c576aacdde53f654bb1e9ce6f5145b69e1ef1848da4015cd18ba821eb435825c003d4310982374b43f09aa373862aea26ac035aef2312d4b4f4247460481c68ffe6f41be02b619ba376111f410b4aab47bc2c59379925c2407f5db658acfcb6364e7d2e896125ab9a8e55e11fbd1df91ccff5f0339c4971a54559212a0ca04ff7762f48be97191bca465220f511b127ff65bc7999395a5641523c8272e4826a069bf0ba90b30175a79ccbb2b298f395b7e72a4941cc0293824fb5881b8b3266efdfa8fcd2516f8818c4e00950036eb877a7f4b945649de30758f0a965e227abe25c1b8507d8f0419f9e41318ac1b17dc0bd40966546fdd3622908db3cd04d4ff14ae7cc28493ee26121456b859a1e2666afeaddeedb9bee03c21ff45e6fbf5f51cadf3d40a30a85071e9a340550f40e68bf5e11fbfdba9e95025a873b385000a5832d8070822035b864436e8664862a19a9cb134d404191135d4de595471c4debf11f4e09849a426d1b35426210930b45e99a411bec73fbad19420092b3d474d355c321ebb272a2e085e396c30afa78a1d512aab65ea3e08c4ae15ef0009f4212c0cce4efe977da0056ac3be0c7430b099d8a708f2015500a65c9e47c2d070986b1f422b3009e551bb8fa315dd0b4a797541e12e017b9a5066a4c419734bcdfcdb3e464ef97500535ea2ea69eb8bcc3ce7048dc1f8304bab049271d9e4216ced0d64204860ecdc1ccc79761c78cc3a2eef55091e016ea035c97fc251da9c294b82ce3c8a9e52bb38279a187eebeb5c1ddb8b3404cd1757c570abdb6548d1332881af652b0777d85ad6f11c0387509cad6ea03f24d657c7eeb844c2966adfc1408c8af952f408418edfb8789c96b4568412dafd62cfcd81df661195170f59918ce12323fe2fed0824e6a833a869c367a307341b3823c8ce230306aeddf8ef9bb3eb5673798b707af8c8e06e195c0fd40c638e2b580e7487b680418a06e423a699d61c1b158d7e786c86d03ee3d275ca9558878a98cd6e21eee309dc154a603d097928a79f7ac980a5ddc9b1da676dd6e3f1bd17e5a286434592f9f864a75ab261bfeb84611608192c9badfcc43616429dbcd45281b5f1cc889da7004589ed7bc6398e1cc43b3456f0ecc26a79529abfac02052dba3b2b791bec356840131378008622aaae594bc253156a975853ead7901236321ab6371187f5ac1c6f57746d53c2ee483c499486a1d2a5628f563307aad8b4c0e28681c0f81106f6737cdbe259394e8301886147e998eb7ff0e733ae3310f3628ed81712c6436e9e48bad735af8bf4c9e2d2cd30ee49bd64f5812f501b7f33a2a547b23989501bfdf78e677d5c1ea0d79b3a175536baef9957aa352e930e0bb220aa7eb482ec70b6b668000f34fd733600a6c8eb46153c8b915ceddc6d22866de7e3edc15b5c87386ef820ece1d6ed6a808fb6e047c04cc86d2b850c445be16cb9dd8fef7d34d0fe506db688b058dc22f681406bcd5babe0e1cdbdc48ee40059e78c33b6f54e18c91df1dec5e674018647233d5d779cfe8e3155fbb07720520d82d0143e22575412d872504812118761a233bb5fbb777c9e016342bd81a76a04b08c00220442c7baafadf68dd02346989eb87d591118e312290b6ab364014e3d38d61ae087ed7a95cc3237c5c87ae755f6cf1a4b978095a61b16dc928d5ad7c1ef9532811106a6977a3c1a8e5013b99386fd0a6e2324c65e5480ccf2467016edf2314df6ce545356ff662c8582555ff1b16a1404ef1204ffb99428e52c3f49d55ea6e13584094c3b7bdf604fb279cba0cff41df044ae0b0ec217bb72d7c65385eae96c2c9a4781d86cfdb197595770ede227aee4be50839ea8ae9b2bc61870f866135c0cc0d98a8d823f154ea2492fead74c32b91192562959f4ad47d2e5f17dba75ef41c2d7891b3c7adf7dcc1b20174ed74c129b6d0587c591a436db0a0a9b2349ecb61114867392ed6c133c2ca724dbda2e48180e49b6b14df00c219f5bf87da5ca504096f2fdd41aa01bcf10da3e19a1fdf17abc0ae186ff4504c3b52eb5f17c7abc599e25aeb9170500185bad96d926c234620e84634bba03eb318c41ebeda0e5ec77217b8fcfd55ec92fca8eef74d6f743c2390b7c6a793ea48f3d39e91638606d8f32538ff25919be4d0cb2eb07d3285a61b1fe992f085929dc914893a0aaa640abd0add90f76d098a1164cf63960dff8ff5c2cb045cce1d089700a44431c245d96b62e2ec9d8b69e3070fcd6e8ad70787591d5eac121254ec1ae959385bd8e4988a7fcc2980f74a29c1b0b05eff793885b36c9647e3464c9b2b26c9a2e9c8386d772a2035beabb01f333fd4160481f9d6b4528b70c23c0f9c65a5e1e9cc0666540b1d7ed33a1d19b95f9f6ea3ee0f4df4549d9f94c32b6741cb5eccb8ae2408ec57560adcf1131d192da3d0fc12a0ef5fb3f018c7e81f4a9606e47bd38b0da5bcf99df4b4460603231739d0c1c38513a18efa341f75845e38b4750f2b1a05e9c8fc7e2e597f2068ee116b3df57b16916ed1129add1e583d2b78dac4f017a6e69f9855d5cf33bbf6e29ee7584d6a839f9fc900dd0e16692350745c158a5381018b2ef02cb6f029714a4878581bc19de8b93b63064dd38989e9187408b2e58664b950329109428c5a2ee1aa972ed4892f05b590f5605d4a6947752748fbf67f08b0ae8a6afc23cb4ce1f44e8ef012a7fec36bbca5ec02f847d16efb43680875d4154764a5851df27d75d6a24a19efe5f21c4f9af255b826bbacb2b706c4c732b4d5aa55b6da1fb4ad0ccd9b7078b0524b427a43d1d10e881fdfbf8163f428501055305255aebd32873a7849bb8e52a68e4f0226e3dcd3c2b616720c2717d86d873090d44624a0168fda4c014ae83df811195bb1939d99ab3ab5541416f60eff5f84142f38312b23d6849eda542abd48565e90aaf8bfbb2723459d41c3c13635b15d006b85834bfc88d81c30286f038ac8ea734b82ad5c1a2d528d88b307999de771be5030107bfc6eaa3df4f65dea1d9d1d30ae11a903d983f49919f6e2c895bd0d11bd909345dd801c8a04f61a06dec0c4f9ca61b5eed455c2092d985ffeb02a5bcd03c896931ea4491335b37d661d7fb43dadc0b48de9a53aceeb83a4414041a1affdba914d46c7dd2b096f9d1a9be76b67d0424422627c2cec28c0e53c29a8791d0461a32d4be2b8a2d3750b501e1c03e3b30649a9e7330f8399d2182e84371b9ba87548c8688904f5cc0d35e40f5c4e8e19610e0230184db2af45b4bd7c9b4ace4cc6e046e65b15556397086e4a954dd40a29e168218ff896f81bd93fe732d1646e67a5d9b81c2992075cd534578eebbcc3918dfb172e77e9b2b1c33fb1dd99458fd912ec4390cef662b2feed8e0753c62f9e29ee5d8347d967bac50957b994eb49383e9034fd8d4f6b0da4a8e6e53fc42a83e91443640936e58eca35d29fdd9f6a4e78cf10380a765a2403d8d841d3d55002a7b55a45b930360c933149227096b3ac7c42f52dd11cacb286642745433b75668c7e7cc28230922ca27c939e4881bf39d8feab1347d8a06377911a9fd74a99adaed3f116ab56b5bb99255769336f9bd9428b6b650d97a04e63b831d92fb299223933f2d07e0c23e1c7c4522c34489f4f2f603bb6eaa7665c4de1f2221c03a86e30663275ae60f20bc3c06d9b1c369b13585e0940d53694f903730f3d3679bd821735a0471faeadf6fc7803561a9f3dbc012ab494c2f8c56cea0faff16b6fb5722698480da8d2006cbd630324172d05c333e1872bd6d77012d6e568db6fa7a977a7abdf4f253204c7da9a9e43cb0d2c14b37d2aee79a85c1e10305757a804b6f6e4a60b7c909030acf7b522b9dc09d1f08d739e141eb68c88d5d3f85d16176dd06b6e011d50ddd1a0e88766352c3526ade19592f249b5195d16a018da5b11ae71eb49664d6aeba92b201ee603bb8310be2aa7a5946c1803c540c64b8d24637ea851d9a32b0f786c0c89ac504eeab1d5b18f61b30f1abf5ebf98d13b32be939bc7b2b53e26b4ded8e4b764c375537b376b0ebefd9801cebe10e272126c0707a92453e65ec7b3d7bc1954fcb19e81e47b3635ca54d7291873d93c0364c840cd5900589efa1aa76cbb50bf73581f7cc8e8985d426d264af5a8cc98b1905ffd93588c51ca60f3d90992f3439aafad074ef575f512426790ff65ee053704744ec1510b58514e686c5fda458853cdadd3a9a7046b250607e5b11291e789b1415a0d9064cebd2182fbb17e12edad582b7ee157573baea0a608e7112aa2bbbad7f80938541e8a202570bdb6ad130d571ae0dc6aa5dbc2dea1a963cf133ef6eda617febba9f89ac19dedc16deb0bb96f511fca7a451e17bf7c4c3cd1c27c8469527881c8dcf0570889dda247375bd35cb29da4df8193205cdf0d33c8264a2284f4a534670f5196a25fe19ed304e4bea3763c9d26e60477001e739b5558455ed7172984f62f7714ef06861929f64fd257b2bb1e8f83199311d4dba936256e4b0054786b9e57af92f06a3778514b0fadc6ba2ceda26c80a5e67a0c7e0da2bdf5a8fd1a7b5eda312eb777697ebc33a381fa69862c1342386078b4e35e8a7ffcdce6aea3f58ef08008029a60a0e4a1ce7ae9fab255eaacba3dfc8afa2345649f4861a2aa4f22934bc9f37e3295e650bf5aff9057345d3e53fa3122825f67332648ef4388195813912f68e02fcf7e0d3c15376c817a8b742539fbc7dc518145a4c71b842b38c6f924c364b3b9add2a885b905a9bbad3133b1136607c37013cb742abf1c95d697b39c2d05be243976df232a810f7afa4661c369dc699e2a3cf8e3e7be4346a90f5fec93fdcd747b5878b14b2067d5af989e033c6d694a626fe9b7c93900fac67837744ade206e7eeb99b3c402d3792b669ee1763d0cd438d34341463fd04813a32bec9309d0d0de1361f67aa8006de2b9dc0610ef8bad1ad18e457418d3d821ee2e4f1729a49dc2605a85461a79bc681d5941200541a86e51d98ce95275ab6861fe932a85a9057a7371d2137456efbe1503e1122e722f7c34255ab9c667e49314ec3801d281301c82fa225417c4edbb9b8988b8dde0d6ece7545764d18e16ea898fdbea77775f63701524856842f8a28b19b0daea5df5993ffe6e750248af1e6027ced7c2e64ae2355effe62c9c84535baa90780c13d91a4562f03f3daadb1b781f0e30d8da5e0c44950c321bb9ab70becde82e3d1cfe64d1969bc02966bae80afc30300f1d9afee04f850015fe3015088640866411ba6714493b3f637dd6636d6856043f2a365ef654ff002848dda37e45d2a895005f4d23deb509d4ccf868e1ebde73435c89c060e48dc3d1c1eeaac5db455ec38d1d4cd2128745d2bae68adcee8ab221eebcc8fe4e858eca4d6521dbf9bf1dbee7cd0783443fb1af8e027f115790d38a23c7f3425f79beb1a4eb7e75090caa879d37001e4cc5348b08d4abb21fd30eea30bcea6d12aee54d6b835f5088d76ca64f97e2c1861fe159f3f0eeec0b7c0a5eb18774e23ae1ca3a354f74939fc3b10203f2bf9945a460c96e3442021fe03a9613d72698755df7ba8e86b8437de899e5391f098fbf06321d6b9ba7cf605976938f8e0d955de6abc137e837cc713c324e384b843b7c247bebafccd0059042a3d8766a0b5f0840cda63b2dece7eb260ab246589789916ab259546b04250ee54050bbb6a014bb5a5c3b9278b6c693fd8dafe064f43f4eb89fb8adf36bb4ec6ccf689dee315f423e8b528a30ced6b3bb35827941010013a4a750d60726e2721eda70492dd3f694a1c43b4aafc434328cb1abcba0d7ae3945727e96c976adbb0204b8c565b800b3dc8e7fd91738ce88b38830b7fb728426976e335426f07894593245ac8b72619e5e9d9329225217f32147d307012266916eaa61907bd219cd16d366bb690d625bd67a12c2a574715b2c716786fd2528d7b6ff009c410b713048300c48e31e93aae908e16e938aeabeaadefb38ce216450f844bcc4f3f70da3d077c6e3f831814de3014494983038800639dd6c060b45664f343ac673160d043b2f1bb23d605b0f051340507e71e4cef4e218c4fdf1aff3a4b51aa64e6ff30c612bfff2cf02a8faa82b58812ff48469787a3fa3bf1744289f325954190e33a16fbdcf3c69c4681a5b1ac2fe32c064923c561bb80c1687c82528992ba94e200c4e8dd99a32d4f2ac3660fd619c506731eace307b8e3d14bdec14a2dc869dfb7cf02b6452316b3ecd26e2cb06f961d378c5ca12f9dd13677a0d1b46b24f508f02b67f9082b948a848f2da0d6804c6e8a28a31742229d774bba89c3c092eec95f121f5c4cd7749587d37ade9658ff94cc5270ca0455fd5758e924a8e0f5779c10a86ff6ad955812569e319a323c9b532d00a0d853cec4f59d7ad436555e82838aa7b2d5d89fc5842980417d08fcb533aa708865072c9f0e4395927ac1b51c5039dd051b7c4057f4c2e2a14491e4ccb4b2d920d3f7545ce8913f26546bdcbcecb827d1b0a36d7993f3f86f1b7ee628e008e95017deacd64c51519bdd1184a01431a008381b4beb900833e269dce59bc754206db69136c4b4dec9a94deb568b57a803b91cd017860d3e5b23188674f5453f16a15058b9a325092c9b4ec73f284973d451a785d1c545920f0d01d8d162c8af0a7522b1708763471f435fe442cfd0c39bbb27245e23c6310604bd0631fa29e95c0e39a5f439d9941678811385cc3aa8640926172aad3aa2aab81c12fbc2a8d7f1dd0b55144e10652cb583dfde1a55a31d20c8696b6127eca11d3d3de39f8648dd648fba62b4199a97f7fe2012d75201e0fbe1f38aba4e0f4c0575c9f8a4c4c24d7bed166d0f5a7a4764321510717912677fa66a2d0defc5855415dd4226078d55cd7b5033ef5218aea57ece2db65ffe27e3669e3bddb637d4cfee3cbd2914cb76ad0c5899c9ee1c9914cae6a60db707984f42dcd502a60f1c38d0bab076618cd08a5790085835f78d4e0982bc609977bef4f0c48d392fc2c975486197d96f540301d4cde45c170d691dfed5156b40b2c976e577afa1dffb00dd2ca1f5351a9e46bca558c6eaa0f3011ab325f820bcbfb78ec8f0858f6e0320fa2341d27269f3b3ba062fd8311d36bc792e3912f813d53897e22ea5b5a02ac37075f678007e7af2294167153614b116484550b826ccf663214f3c0e2190016c80bae11991a432cb393f7f6ece7f10b657c31a8a8c6db600785dd467554f0ce7f35ed33839a0018f5670ff400fa8ddbcdce55f91c8bc8f9217e8840faf9065f6529dc214c0637d4a5295f9ca6c2f62b5968e2c37d52c8b5d3aceb8ae3c85c7507b0a5ed7bde7967cc629ad437a884e6a3d8a4208d211a1ca48f8ace5fc3cee39342a25fead3174403c548aba9a45ce2392e12d27ce930e0bc8a83568eab69edf043ac7e26c489d834da3400b63079c56a13f71e08449842102f3d48cd8d926ef33c96e33c29d71ec2e483e2bc6ce74487360a2a2bbfcb9bef0234bdc5d4247900e9b54f6c66d2b5313bcf555136c3fe9c151b541d2f3c56963fe5bfbe413554e32491fba5658923de875677e1a69540cda2119e8ca5481cb073a551e73fa60923e1cff071cfabcd16ed8c6b7ae83b889a3b079a38ff4542f90a1888c7613c5bfccbee71c6552ffae8c338f1341ec204fa70050765a1fb7ac92a51ea5a42c7ae0097bea5047a94bd471ea6384515ceabcee6502d06e399af7d963adf942679a798e5e20149e417d3833a72a6de6d782e109f5218676cdf13ee9ed9ab46c2e83fa13e861a946e9b3545372b4705b3673d71352e9b301e98b0f7efd9daa0b4e7b2ca324824f6c2eb4c610b796b957ce06422a0cafd357f1e033c402d7dcee5b226348cae0ee765848087c1efaaaa6c542de8cc4796c05b49c65d0b731c16cbf4e456c0f674712f1b48f7318d52847247267fb3cfc8c5219a6736d1ffa4a1d9c0356dc059f2526be31ab2895428c51a58437142930738810bf9e8ab81c71f9d018da3310d652e53c4bcad9498d5bd4f705699039e4f288c154c823b20a0fd29c6a92150e604127e616103f197896f79d7856e96209bda79740b7fb6c47715c857135a443fc6ce195d76c3f7953d88076b1077d1c267b989df22b69c6868096e7392e4c392211092f0539811462570143633e51d3415a3ecf2a94f6ff746b8d9cfa06ad3326350861ccabc009471a8bd13019a3e3c216dada0cef4a22e1f7cb919ab0c7ccd1e7d5558e0256eca5459825f532962459bd75789e10c8edcf0b2f8b0b67c82b4c302c6370c3a1161691660209c5349b11c5df13c56aac22a6477a7fef42066a79ed56e55097b9adf1f055458f57c32c1b1f3a355a3f52f6426c9a6eb4706065d573270542954e5d335ef946e411c8b6e6ed3a641986c9ea37826be159beee181c843adc0583460acfb76c630e813d5290a1ed35bccb14e578fc6d078b54e22386669b280532d02a87a000453ccf50ebd2dac608632487a72825e41326143e94f0dcb37863426d258f137f05b17f9a0f7a0ae96b6b420b7ae20444d4c54a2b424d9932386702aaded5de2bba5969d50f6724f35c6359f214067ac4fe339a0f4cb8ab974b086a84b0bb45a050b9f95ea834d055abd576bec6d3d9b02846c129b84c9f9a1191c6a5d0364a64b3845d67fdd485f1dc1f7c10931689d667fdb245d3689d02bd01c537fdb300d926b1504b6d0ee126917c0f16cd7bea5d9d2c3809ec470b091c1fa669644222d1901a87a7cb327b80def462cfdc2894dfb6658a88e952cb81cac8d62ef26bb881af118c8626cd08b2125e3c758ee5c87e308b1321b1288cdaae075b0529c1b7e721780de9af2992e144e2ddb604afe8618a643d1e436295c2c2e0873e81fc282999b56220c978096b1b33d96043b9fd7a134c131de9e7aff8c88fc91099fb89cfdc52448c7ae9d0ff97375c068911c9962d368e9c145e73d10ed49bdb2f0ac3a3dfe57b9d0602fa551ad43b15b47a53e2f4d1546d5e70ea6a8f9be0498df6a86f1548f68b396a50accc553fd75a526e672c6203b10c73b747f0f7ace03ab0bc4610604024a20b1cf702e2f00e5526f55dcb374716fedad70f171eb280768ab2fab0b9dc39861da170084651f29cbf0e3df3c0aa50279947b34c1b00e9123496b1ac7b12fd9f773b717f8025aa65b6238ce07331611cb5f13fa44875699b8f7838f736651db0ce950197e813ea8233b3f14f185c47257f0593e1abc0a353f18776f3a1019c5592749eb6b5bfb58b46da6d280ce140c7cdeff81e4bb532939e85a629d22e74d6509ac4873d242673cda20272ddab3b11750027a9c268e5213149d84508c70afe5c2ff4e523dd916228327feaf6c01709382a3e74d016a51f1a7f7e849022242df29bb6321bcbaf1199c659d55a71c32f9092f960277b34a571ae2aee67645ea566f6251c24c6d7b7582f84c48650157cb04774311a009bef87dfac611944313182e86a9b45e6c0cb3cf7d82298eddab1a369f415da7dc42d9561bc448755dc43edc29f0b005bb05bf6b646c01576e7708750f6465a9a30136448fc75545dd562cd2f3c881c276d8ba43746834d45651e6e859ea9baa42d6b43f07a0d308431e11ed8a0561a39ab11b78d6f5f2ca6a7fde2ca3eb26db0b3935a03677e1ba2a82fa519cca34660f7b0ced7f381d09ba218e6ad6de3474c981b3b2255e9f1a5a68dd630d0655325b55309d7b9a36939108d8330c58f8e386fe9b520337aae30d9e37be3273d9df3c2072dbad73f179a990d5ab586699c802d74dcb4aaec270d1d5eedd276289448c8f719ccb3901a9239f10d83430a33057fac6e2c5f1d138ff5a54b9a9a6b7f3c64253234b242c4674753e47610b23e551e83a48493fd61a4a0df8c5eb1c21e595494b0f2c01bd839701ba631174bff374f8e107ed0490ffc8b27a674a65a77ac66bb828469d376e582a7836e79fbb9dc7aa1b2465b3c40d7cb82730f39266fceba6de48148139a43ac5888845171fa5a557426e43584c3c7b9a2b5c6baf06e7223cbea0042f633871462315d052e7ca7c52782c492fc7075ea6cf0fa9d0d2f58b8fbffb554be871e2c0663ed873df6cb105ca78e0a0f2e28fccbe7abb7214cd8b3f2990bbfff7e534014d11bb1c84192038b872b94c310eb95a2893a175b599aec252fbbcb8ebdb7324b19f06139f00c39cd8dd5a19bd92912e2224c72ec981a549886240b38b3b32015c3b40bb3e8f3bc6b30297b11dd8bc0c010bcc85771bbf22d8f69cdadf9be79d014261ed59148fb78a0ff05e64f7b0981ea9e93cd154af2105cc1f7efad6ffd9a80842ef464d3b7489b994629edc34e3b92f2d46cf14968dc7371261c75e2fd29fee804f430ae85a14f51621d949ddc2052e8ac32c6c4b606527aa2ca7906d14892752da6f8a94db2d305b396393c722ddf178f58ac851d2bbd272f464c4e2b6765e0af282f3947a20691239b314f5a750de59a52439d8b83d314c52b42bbd84760212f9e38488764a1f4385182242abde44f6ab5f041c0a6f59f62c2cd5efa37816332f4ec4d707e63d9a0c184bf358b61d3b17312b299602463ebca45de9ca2a1e5c91d84b595e1142c627b530fb0bd67570665402c41cd36ef9d3a4ec01b9fedc23db678c33c4dc24a22082756510c2f40a59495c42716c2dd15c1ce35f8579fe0785d70a1e4c0392470c73a5ca8b50a58554b0ca131ae0e39362cfe0c047ad06167cfa5aae6de065d7ca2829e4cae39035a2498068c256fe5a55f2bcd40c6a217e8fa8095ce7195d585385af557e0c75572f43ccd81cf6cf1574f1570b990a808bc533fa78a179f21628ebf68f6ac0d7ed911e39d037a26397cf9b9fa360cc10c3eca748bdfbc0839575bed0a746233f1578b38b99e365f2ee3028a14778b27e96f196835995749163fa37937913a4f004bb3f7ea06fdcd599c89e1f3d6e71a9816312a99e6e2e815a61008344f1600af942fc7c06605be2bf3d29530371ae46b2c7545a01bdb4723c6a037212148059a14226256145a80b62e4eaa01d6e9617353e170629a15ed44d33de3fcc2820ee289052887707544729287d780503b56899458b05c6fcae5304e757a20d78d150c9a041b16bcf05729117c70cbd2644a75af2b7874ba8b73bfa2534805f33a2af1300abd634d46a0e2c85402bff089f4cbf3ab14b5c092297217968ee6514e3f1edca20462db4ce22dcc98c76d4164312920e8d6c4b97a6176bb8c874cd88156ee098bef5a63346ed384c7e5d96b1d28b6a7dde8bbc4e10799c20cc55aa510654e4c0147920fc86430f4ac4e16c7292b77366380ea67b1e56e58f2dccbc54d9147904a4fb173a22142b6429089426a6b1e0ee3b182e15821fd3ee7e6b6d89d57fa7c75cdec8fced6e2950c1a48ff737a6231ec685792c882415164e12506336678c4351e05929483483f13a5c0180baaa460f4e6f60e044f9f46861a1a7615b04cc5bf0cb3507342b61364ae538766f42e47e6a8e9ead65a5966a808cb6b5cf5ec1853aacc4240018ed7a3cf6b6ea056874f1f6a0d655d52c703e6fa27be61f3b38383567cea03533d857d695c8e986af2d8f392946a978c8165d6d6914e78bd64f9698ca9935bef30c1dfca938ace49c5f53360ad2dceba1a7b13f1b1cd2ef63a7a52712f3baa3efc3bd21db6b0622d667d2c7067d3cb824569032436dfc90031a094f621807d4f6881280d28122c62746c0b4e81b5a796af88d177295ca83edaf0fc4e19b939b83febe694f31840b97a508161bd36c6f74d64f9fd55bdee4270fc5bdc16de3816e2cccd5a148e2e065ad72a096242ab8b9809924e0fc1489a53a13bd35c833369e1da8cc408f3ecd65b4b7903726f5215326d32650d688788f33b5e5c9a2c1a89e2fd11d751b2e3d5a0300eac5bc696e0d31864d88bc045197731792357188c6b130ccb02f1f934221c116b68e0c39106eecc89d9312c91b051adaa6278311abf9a0f23899cf3639d088c6d2beff4d414b3042f630b03baff9d227a80692a83b1338760965470f51d8dd558df76d856535791d711a82a7ebb260312fc096cb7b15d557b34806b269f7cf86486f261039898a777362f0a3fa66a0d1bfec254254e508a0e18fc2200511b92aae5629dfd4cb4cce5828ab0140f739d02de4208ed07aada48164c7d2039ac7e1e2a161e39a1d0038a151efd79f99160b6c2f963d2c2d0c7dc095af6dad3e2482491a944d7f70c37ac14eff19d2ca41c348d8e92f668af536a4cf7bacead5b76175d92f4b507c88fde40d2bde3735a24ab0c04aea020f224c404be780834945ca577e1575d1baa86865306581df4e5d090bce7f6a62e1516a6ae8cd44c2ccb1dbc168011b2a7fc923dbe98fd1aedfd4f67e3b5e1e8f16215b087ae91a67023546a488fa0da401a5b681cdc0f9334f43a2317162cafa9ae20272a261ed6a8dbc3066c812bcd7b825a4359cb1672cb5820153a99eb1647faf2429b850c210141feaeb84695b9515495fa32cfb09c805cd0640eeb4144ea3f802208cb4f56041accdb4cee41cbdf7eb77533332d52d3a454e4f7cdd0b954c8f53ad66d34d9d9686573c17f3f21d8cba79b68ad530351f130c5ff3490de7d96495db9383747810e74feb3f513e04d421be1327f32830b7244c7f143e8bec0285b652fd2c15c0e594f5ec3f50855170663879ea7be890647d79439734dd4358e0c811e5f7c8527bffc6212b3e6f694493d973592c005752484e1fccc0a115645e7eb17e9978fbc948878589c6c8284254d219405b80d7ab12d28782e0ffa6885146504ec3a36c1f2d08b5c2702705d85adc9708a8e59397c62d118c9bca08b920047505c47d6af5cf3c88d7ee09e098401196d4268da785cd8d4bd1e216dd2cc9f142cf42c3ee5cb42552f75d71c3e7ab30fa73dd6299630447e9f047e9b8a0cbb157f82ff28f76524543070eb2f53720642f4e0efc41e319fd813e3887d2366c48475f54d300ae63c2d1baa8c6f82d4e47ae2c192b9837a4cff191fb7e83fa3116621275b0732a390ecadcb2e8295faf343f326aef6e974d6654386ab4c613d55e5b8fdef2c3240fecb216d03c0297ae5ef4202c81eacd458b576124d44f18ef57fcb05f5af3b8973b832bbf7e0b45fa4fbbe311895c9acaf61225c615719f6445c59aff35bff4684e1ac69884c15a987c3809871c2da04b2b9e380aa357687208c5902c1f7c8a5baf6ed69fb5b044c82afbca3a7db8a1189ac501cc64cfc08f9f4936aae81af4e70d9f0105373d57ad1581308dab505b29bceea8a1168636dc606a690e3cb54e8770819ed489ece9e8419c088723e054397f08b96dbbacee468844bf436dfc3dd734130abb39611fcb136ed2b8368409f66aaa4b4d3f5f0ce1cbe5b19fbc6c9f2231ceaade6c76bb7f64347892225597e9c2fcd1484e54115e775fe43b3f4fb635aff1964f9398967e97c4240f0653c84385856ef852a2fb9d40a106731a908c5ffa6b1ad4e113852c9fe09f1827a4b4b62dc5a222b91b05a2653c8c2539f07df3180e61f8ffa515d473778058afafd39c3406566b81bc2e648fa9a28014b7a09cb7107b5acae83eff2874e0118e1c2b00768268146ce7ebb7b79ac2032eb70a2469a5f68207a5d06a7af8ee5e5d0380eea4b81e7b29a8dc0a9b13800d9c53d0e911ee8f5ab038bc87f74c696a08058382829149844735677002c945d0f7c5994d091969f40c1979f217a315eb46153c2423acb8418fac0c10123b8e2a771402525451b1daac2984ad83c0d20e859c9cf22bc8d009321fb3ac2912fb95939f9d7e2db376b3f567cebe0fd1581e4f61e3f4414d14fc08c53604ed44ebecad10d8fc773e5f9be86dda09df7a709d80eda5ed90ce5dd08fc90ec218077c39188fede931cfe628f1ad4ae2ec8688a18c5641f8a924cc824cc73fd7b994d28117e056d94830298b24d350a1f8608355df163331a4b339745922d358412d321be1774920594515e2f44614826d7a01d4ef5976d0d3f141a66c533fe185c3b662828a2eb5707314c444f809928a4f4767c1a2140afe5dacbe6190d86e7ede005723cddb0535f165a880c15cc4b3c5c9083e6274044356a59a7959a879acbff86b03747fa4566a4f0f6d319cbe60f355b51e683b4676592cca0fb1dfff3b1530991af334f028d11880cfcca445d29f3154e43a4e287222758cb3bce55160f56fcdd8e9291c3d9a8c3a13824e7807431dba8af74fcf4d26dcd507fb63abfdae8476564fdd2f8c4021de22c63460c736a0b4fed2a5d4e8563b28bbdb1670edaa5a3d05258c8f4ce2ce5a17d9ee58631c28c891bc4a973738e107b9a0120cd94c41aeb30535f168791cec0488cc3a120db779ac1eee293a10581bc45146196bd6693bd0526b1c91a2e58da0607e320b5885d4793710f39e1fae8e5dba61b7b26148fef355f2021492eae56e494f526c10b2d87eff59fdac5e13f4e1b500ce94170903ab2e1124721cf20d1cc508835f552d4f3eb13a623282cd35f427ccd9d5640413b8238913fcb85f285b37f624683e9474dad01e75b7a5d5db2f04c41c8eddb96c11a2ea377593304160458e65da77ab80a3cc24dbe6a036ec36ef4ce291dc28872c0d61ebf59bb0ebb10fb7670d7b22a4b4de60dadd2821adb233c3b0ce1bc414d5c4e028b6f950f32ed0640dc269c6a2cc16c4c7e6a1d65cbaf963301c91849b0d647064c1c51eaa8c07191e897ac693f37e86776b8bcf2989cb5758c7d73c39e9704425fde2fe9eab4c7c6c64c89c26b935d1b443587c60203e57e00f59bf18164e195e326b1fd262a765f8601f40e573d05d7efeb208346ab649f6c7838b5315788ffb6a5ff85026c96bc54296d1215c7d63122f8da9b17e1b0da92f4a30cd60c1b71cce694ca2d755f1e0769b7fa93b635c1756122ce293bc588c42c10987b3e4ffce6a56c5cf33f024eb51394b952a2f63dde516677e6fead4efecdf732b2f2618744b9d17f9f11daa7653c344aa515315f3090901a5337ad5fd84c8d10525f486b18cd22bf17ee57591ef03f5047bd663a0d1f8eda33068d548593ac027e8ae0ac931ea9a2e84814bd689ee75f5b6bd0c648313026391278909abea1403bce29b09ed58ce54b06b68a91d44c7304120722a6ca3c98ece2751f86b8575517dfbe8ae72b1a738bac2dde677184663bb1ceef07ac5aa5aec2c427968ea87a84dab1c3dd31358453a905ca4a145c9c07bdc35d205a0270bd2f18bf5cbbc71dda89a4a58a5324cd21f92cc659a69131a26bb19c29115107b804324d410c947b72f29ef2d212b8d596d39b6ce639e527dede45648bd51a66adaf2ac93dcd5aabe53ed8985513695c32bd5136a22925ad777aa86a96a2c16e44b9504e64eba186e8198aac8ab20c06c7734e2238c11cc7dbd795f901b261a7be8352cd72dbe2a1f77c995fa19113b66bee2d2e098d2a5812cc7ba3d027e91a8a821c5a1c24dae8784cfa9636fe5497d9d460c20e6607702f98f6c4d70a19cc33c8fd5abcfd9732c9994031ee30f16d354fb8964c7d8de58d15369b7c263518ff58321f168b05b679ff053916c757ef39c1df8d4df841694e4eb948afdf2d764756d77f139baeeaa8280b8ce858ee83659cdc1ed4a3dfe5b89c44237bc0e585ec5155cda0959621c84f01b8c1da63b861aab0f25bb465e483d8ee200196451269d45fe494c3f16f2a20d04e8dd52c7545522e1f4d9a20b03c79a9ec798036bb722f4747a387327ae4696fc5298d589fe5047a9ff8a666484ca84614df52934d396635a27202cda90e48f73d4aa8c61d212ad92b845a5487eadbd11d13fea57dcb06a5882b5b6a54f6db5e3170ea438f12d492bcf33c2d2d37069e0ffe83a41f4ad25f6380a33ab039183e22a04c3e43bc98b9e4243b1f22f1a52a5d65d5e7b83fcbeefa8c5d9b66743ee9010220995cdeea9331e7153c155f176b9fbaf54b9bf13678827a8fc605f2a9ad28ed0b592d7c81f14e5a23eb0c87b709d8c8a2780795a2e4a6a6a4c8e706db4b6b60834edd5a4e43423964e8c15ad63c62c984aa1501dea14a2acfdd6b1c08db703325866ec87e999796435e79c3f4f4b78def12c38dc3e2a22e44971feca5a5113ea1156f787d4309032f097210f42055383590910c50a864c2969c3f29b5bd52a28b47263797334455a06c632445a852fb1d80c62f90d3486ca053f9686f15f42942e567f8cf44c695f0da64d9336a3bde59ce0b4ddca8af1a6026cb2dbb032905141282e3720744fc38c4dc8857ad2de8c591a7a9dc855576f49971ce450888b2a6b8a77113ab13358c1c7b3e2443f4e60a6d4160dadb59314973932b11f8e111bab5726a2e0788677a291b1d82e59bb8e63ff8312fa163c55390d156c9b37f8cbbfd7376ae6ce56a703d358f9d42581041b7bf545e5f63cc56d824d3e25e8a2185a303597a7fe2b309447e8f9583d46669d713abdfb304957336dca8174536c08c224e445d9d963e35b069e0b044e430526a9e1527ea0e5437556a7ece458e6178710c79380de0687abf99a0e6f96833a6459e64720838856b39fa6f230445161fd363a9d8e6304c1f68bba87ef132f7ed29274393ca280edc6de0f1345955f036cc41fed0a04fa24161206e743dcb752cd52087a045e713f6235eda7995d9a7bab0a1a0414c642e6772acd7845153243a59b0895425215b45c9cf1a844f2a23f964947583488011559f81e540a5d454d2db0bdb8c48582f57386f009e39833834c24c4048e53289660c066377dbe5cc1391ef1c5e05a41d6651af4968323d3a10b8afb1f8e53885649d7d32196bfe8782647f52d14d837bdad09fc3f51934a84a0564aa4ec2abd52b5d07d286e02212507457b60e51a2c0244ac2bdb42541fe050cdda4cfdca203a6a6bb8c766620a9c1ba9bd7e88e7329e6b9ff8fe6104d1d2f97f2b8148edd6d0797dadf1ace8bbd3ec81151838cee54ab14e9c0a453afc78374b8daf300d7a2b96bf63fc41e00feee6e099d183229fb5646c13273ef30d9dfad2f43450247d66d94e32ec532b176edd265685d27bfd407cfd7cc7a1689bff8fe8f4a75de8609551d27f3882d2138912e476ba091e2d05af8abb55c8f5c2c03dbdeb4da82fd62ed647f0d917a142e5282db624ea5d1477259db2f82b2d48b6cba253592ee3a66229f68e9ce2803655baf83a78bc9d59f005d68e5aea92d5a3401901b723b80c155b8fbdee55861bfb9e9ee15b31290a3faa56bb0e1597c57c633b479fd3bcb415f35cee68de0750ba803f6d7d51acaf18044b55b12dcbd8528f26f381933551106ec2373d6f6d295304a740db7cb345f474b59a1737f0783f84020dd95deae1e724c6acbd34bef7474f8e014ca1deb43e3dd146099b694ffd78524ec8a34c9317e1a6e7970617fbf9b5496cf5e78ccc6e675f3df26d6c91555053bf06a1ad05d8bd6ad02ff61700f4b92939dfe0c34f637e2d1602adcd103a10c2cb6d25c09579342c197ada43053a0f2d8c4316ca0515f6055ce632a88f325c4761d8150788c3bf4757333188740c298f0aeb0cdd995bf70c32d288b8e7402a7226ae6e213bac10d7f42916026676901845a64800f73b31ced7e189d0b3ac66abc21e36e3c99e19eb66b06ba7e320a99ed45fad25b95341fce741093f7c3100700781d90f64bf21de64760678dc957a5d0a86b89e28304746cece8f405ba81b61b98278005a0c9badf50c26c4a9bd1d19913c60da7a4fd4088cc4c74804e42ae20a42cf9bf9afebed3422f5406a69a483af51576405353ffea1247754e614d0a29a243cd2db41f80974dc436e813a1d9bdcf055aea6210041206a802097023bcdbbae0c6d06634f3998bb6d9b6fe08cc106479b2fb8d4a58e30cd9802fe17c54f947379a5e170a1529ddda64aaa3c234948bada990f11ace3fcf8f515205648a462c884af163c677a8b226da3a6d7ee354e5c3228f7710da44a80d162f759c8a4271f943977f37970da23544a0055e05d2e44b486daa7fa59b07203cd8f1e17dcfa96b10bb7043204f6d0b68b8d59a02989dda625c471c26733d7e311b31635243dd2cd8a38b656fd2548d8deb78f5d5b348bfc27eca81158cb44b65a7d43eebaaacb21d8c32060d22a49fb5c75d495a30f282c88f59087f47ac1ebeda1f0a1e522be0341206398ed5cf64bb848a48d72c4a63d5a4d80454732983004845c980cd724335d8b2d526c19f830199954c4d0c677d53494ed021039e8ba0198a5960553581c1b63ccc447ab74aadfd5c24a10dbd8b7e1688e820de8a558a6c95edeb374d62556c6fa5efb884ee39e5ba40098a9626420184940d91078bb2f916e8271f72c894d5a23a31cefb74e0d6464ca83282ac1c76275af9b56fe349999274ab8597052760c1560df2903e6ba018683de2d65cd960713037def9ef01021d19fcd573f57808a38949f464590ebf95bf319cacedcbce47fb12424bc57ca7ddd33d7a465c9c193c0d5b8f9d595401b00a17e8026eb845c8c7bab5bde26863e13037beaf60ac94bc2c53697fbbd7fa8ac82dc07d65f15070f16faa0563e51b31c144fece966d7474d5eec561c8b565d0dd4e496d0469ca94953a5ebc2695491f42c72ccdca6612872771a2d79390c00366e62e8689f49cf85628dc5e7cb004a905b846b38ba1d3f40c4a9130c1fbaf80c8d7295a161103d82c74293ed8d46178615b8e3ed4f006c1b0caed7b55234bcac82948123e6c5b0a76cef2b4e6f89bfda3651208e3f4ac9faa62921fe9b0ac5c15993f1c8c1e24b5eabbfeac2cc1651b1f98ffa1aaa26564d61f4be4aeedea81e9f5385f3d2cee30e639367b3a827948b9704e807d008aac422d925f4b7619747bd0c793492505f243267c008de7194931c74f0e163796129747820730e9c63bbb19195f40e2573d695979968c4cb2541a4e9237f93d2de6aab22653126339c5346324848e0c83273803011fd8c0f1ff302a30eb385939fd0659cde704b5155312eba59b08e059bf0a65437a75cd153bf25664e1fa67f88ac61be1821859baddea5d31aafd8a8046342fe38f75efe157b91fcd194632a754b16764a273ea2a930f3983c453d5dc3990be807f6acb0884b84514bb8cd2cb279bdf0023dd13ba641d7d753d7ddecc04602e99574b427426a97fb9434ad1bf1ea213ff9c9a3fefe199f13add95c8d5dbb51bd5617b7fa9c07439c9003d2cf20dd5ee15397288499b87a468dc6eb7a2658b0a5d1e2644b4b825ab08e496416449a7fc9d8f8b42442839b0aa956e71529700301aff5958acd077b087c7a58594eac27a27df849ee7ba8130daced8311b2ca821b056199dd01279715508bcb96e243213874cf72e3e3a9f595af5e2360c728ee9e0df376d2648c4616f2582174acc91d951c31ffcea253636b18449c2c35c3cce56c5cba8f034384407ee1272b5814802c65670037b11552302d712f12d94da8637d914048c081b9ef4123a4395da07719b1c79e00d9417dadf50d863741c7315dc8d8a31c9d217646d009ef2b7048169932111c65dadeec61f0fc690c26e70d1d208a140f4300abbf2febc19d35af05360a771e9844d60dbf391dbc5949008105ee2fe443a0884b833474da65180cfeeff7ad50363c37916f384809bf8385c84618e0e331d6eb2a61adedd969a73ad0356a7961c6b9574bc88a5734db22213eb6db2a7f1b2b1f64e7e7ccceec503fc2fe405db87a6ec4cb2ecb2975b2bd3b4c5a9ce50081145ed2e2b0a880e29960c750f514a9ae68e7dd8685d7c524e02ef2f4d16c81bfe6a395ba03e286b7e15366db1bbd619db322b0a8e671d6985b512c00fc65def7ed2429f140accdf08cba3c0c837e8a5c354e7e99b2ce532c9d3ac723b470290468274e7f09e66e93bfa1ef17d0604086fe39f3c9bedb99c371fe72e8dee91c37e5246757b2acbcd71edd8fe792e1c43f8a4a7d3838423cc809725602913108a738afe61e13cfe27bea8c5472404cac6c8fa6b95a5c42025733c898993498e324a1c74ac498cd74293c39a1c4b5608e43611de1e9796152703372bacc5a88dc084e96f9fcd1bb87e1e8b10fb1e52169987ad431f111c405b8d61d57a2a4779d986eade81812dea400ec4b4c9a7b6965be8259a8b11679089549f4a3d4c694cda89020846c3a6a24792623eab060a8ab7efc880ac2552ee124d9efc252dac64564e11946920e5c63317d1060ee1b50f7173f4e6b5653cd097542a6a5361960c67add63d5a6f34652eeb1dab642b4c6e71ddd6511263989b97194a1e229c7d9210219bf77389d637559cc4dd071a427d091a9b2cc350413b9988db78d103f0ce553ac89afb10cfc5bb26136106e6db53ec04ab8302493f93605036fe148b7609b4af88d58d1ee2fbcd982af4183a500aebbc814b184987df89e406b614e7bc32a8ebbf4e39340fb9b20ce8a75828d6502747342b99b58022086348a251212a9348c07a79aa4bbb3c454c2e4f5dc51fa73517dfc5f538895c9db8186ff1c24f4f98e947d843283925ee5c7167ea87cf5dc0fb58bacb2914748f4cd385f1279ff224b106a00ab673737d1e69ca7f125f5711e600e98caf7c9f1057df44d55fad9d90fc81d287e779d9b834397ef8dd2882a37e720b864c3042e3e62de911365409b57f3d85b9219474ac736e8315dc55fc74ec83c555e235c01d918b8de8197cb79a9d7a7156ce7b535772fb432e8116ae893155e8a73e628a8d196d42f599fc62d7571f2f23bca3cb7cc170305d42f5b0ac432d8ee63cdc8730e1a0da6e82f0bd74173716a23828069ffee23ba99b3a2a8eea24cb38db1a2b382c9032bda0e28e1441ade704106ec7258b66f9428830eae6c5be71702c2d3593bd8fa590e0e159e6b1bee40f40b9a9d7c18ea598848db22c1b534863d2145b9658e37c6bcb6274a80d407632850dc539a93eef18a5c1517f110330d5155036b1f9f3d89baca20d11fd8e6b26aa1fcde13e1041da0bda871040559f00c2693d4c634c3188a3173ae6c94b748dfb6a0c6fea2ca483b4a0aea6252dcc74865c58c4125f1a27624ae8c90a760002b5c3ef3db75d94079f4d227ee5399e10d8acc531092187aac8d52121d28e655f96d4b4355c933180a8987e7c8cb948bca6934d71ebbe0dae765bccae0758736621c52ca092b918e45451651d22557e770cccb324303fb81d0421a9d78a4ea07c8b5f1a2c0271c0fd54d221cbbd3dc1b0efac601d913cea0281e1f2d13867645ec6322eca2a9e081b3d0dc6850765b9d7c715c64d551c65594d8ee0792ff9e08f9a9c090cebfca2706e743ecf3b88e26cbc283d9f6c77dbdf4822bda1f25eade989aafd721db91bb84de96fe748379ed45437dca8bb03ae3f60b62c3166a9cb7b25ca62b740b5fa44183e5a24fb7891422db1c62a9cac403a65fed67602e511deb0b06eda7113708344e7df8435db0a6722b6722501131e51a144ef3d4b29e79be0e3799111984eef20be5da8c3a08671e7cbb16dd543211398da1a3f7c877eec80b71c3330aa4da1bbeb30b4a9fd8f058262e506c25df2e5eb65712648af65af04d0777424147bf5e2d83dbe785db1f978581d9a50a02a99ee1ac8af4810a224a56d159618ccc18bcff17382e90ce264dae68c7a341938f5393da2a74a634f52b533c3a6e87e9336ebcf9b9b0c154c6b8e04f0fc318eb000d54effb8d70dd59f9ec97f76f0fc6dfaff11950c6945783f7dd1948376f245e7666fca320476471ca6dc8645caccaa07a14491eb4199036ad25e0e2faf5ec5fa1f0915ca2bf3f22ee331792561ccd19f2aaf3b9bf415537ebdc8ed72d7acf9b05c3705346ac34257649d3b239d569be8fe083a2154e5726c33b162b855528846ee19e01e0118461d60ce446595ea9f2982b1c793cd53b9430b2d4a02883713e35006b9f3088135cdda02a216e06e986503d8303dd64ad9cf77e063427fec1e2b721162eb2cd00e6ab031a7b07c1e9169912a26cc2efdc72272a09890e8e09b68e6d3d85941ce8edf257780bf1d91c7d453de03bc58dacfef0c2f228729614c7779f1e90367aaec27cd61b14867233f06f65ecd2e9f5bc10c4a3ffe83d6911d5d9ec65a7e2204e8dbdc5362ecb4b84c8b2cbd66d1193a2f27b4601d386518bc7a97fd0e0b7940c337b192207089fe5b82cd35154b408e8c966d26bf18e245c7f53c2c5db7330b1f70e41bdeba616d09c73ad5246dd0ada2d4494144743762789e729d04b7ab3160cfe410a0ab383ae2367abc2306e58229d4288f884ed8b8556941725eaff33b5aeacb1611c0f67741321db0f1086da2cb18f5081076ac1861c924210b618ac91a897e53e285ac4f4c88a5d52085a62d425647388c516ffe3d18e9a9d6ea0df849afc931e95924de035bb80256c711ebede43786b1c64b98ae18f85d57b0a2cc03b2e6c213029394921489fe292fcea5e7a8c24015456e723cd358ca4535604ab0f7986519a14504c9ee2b647cfe8b816dbc2f6119a02fcb8be92d699756c226cb965ace4e15a49a5fc5401925c1bddab523afe82609242f0ead49cf157b9748afb68ec769d40a2a6f193b737e21a2fc875b18eb809ebd136f076f415d2a8d1ecb24f026409ddecdcd6fbd51f96ff66cf16e42c87b4aa40eb26f672f3af9b485ba501ccbc64c2ee009ea2d787b5c4483af0df950b2645e57e3482287867c0af37cf06ca69b5c4da0c71aef10fd6d82771c4edb388ae5b3514b6f69a708832cadde038b0e26104622da9fad57b36c16055223db8d92132eda392c6363556bbc998b5c7541a54daa49cee764821ca502a2c18bc9b1bd1c73437bc57bf67a9a64b21808c80c69e193d02ee9c209f86820025da19f3ac47421a78fb0b6faa21c3e42dc6cdd8dc0d8188de934269ccca70735c4d0cb447e6d8848f324ee20ee243764261c51bf946f352275f2309f1c0635672d442382deac9732c92a88ad506cda54ca468a7203c048f74ee42aab20c7de69ea1eb7e75d449f5cf9512798d17d3022810966946a6591d8684feef57542616bedc8347249c06fd71fb50a12e57c453d6e7956b0d236acbc8a38c6fb9b328a8e9f29b24b64ed0ac5e5896308f5b8b961e1e0ecae400bf0a7643600f91d99a19e360257dd1430bb5d6de366ad4a72ccf8cfb8052a3e10ad829d215445b4c4629bc32968de7ba7f625cf142f2ad057155827158e73f35994548e95d4acce234fdcbd7206918a619286ebf0623d3ae41d6ba523d52b8ce4f8591613425434ea9815df916b6f185dc73b30df034a06bda8b8665baac3936f8b7100aa87d98d0393c71f292448895528a4389908f6e8b7a2d4209132f9d4540feb5c7d74917b4307f7198a6539fefd91ab7ee182b3395f30a828ca0f856d454664269ae037f1712acf0e760ef43e70db98139a218577d2956e7de18d09a691784b9c42c40276c8e0d208fec096116c6662d86f07db1f7adeb11a182cdd90427e34df6301a9379ae3543e31586a26f72f64219f716993f88f25829abd98d38c67f65a8fa219e975075445d56df264510a1ab286ffcf883e0acfb29640196af2bd68eb424884583cc2a595430de5ca15f63faeb083991ab41f4a88cd7259261f1058c718f16958493c190d5d713693dc01cfba7d48b8a695ff75e9423f2301256bc9a665325bd40a1a706b705f72462d1a11bc6e9625fd01123a87438eb53fb983f2fab4bcd06dc5588ac9fb1525bbfe4c119415335ac8458d1c7a204edebd94a9b7bc191dc43733fa99fb2b80d06e58e45a2ae99a6fb60227994554213304a6d2a32f433a02f555dcb59d3b904426a7a6f8cfc86b86323bf5563deb409c2ca3db1d9d28e84848eb5a960bbc5a9ab473b8655f7350481b9b949c181587ea3c4733ef52462714043af9352919d93de8a29294f267cf55858bca6b2b3d46c94a8682167a0aa4ad7d7683708fa5676714cb9b6a0087524b2b20e94f110251580ebe28ef8f5e249d7c8007bff93702d2f14446ba32373f65c5fa405d9af85e6f836ac2f8aa98ddbc240f84f6c1846d6e37757a32466293e7318467d00a7fdf63d0b1f624d28edc67403511d23d1e5b10cd0f87af5fe8813be8437f8feefaa3970c6f0e136d215cb4b39862b716421b1c344a744c73d962ad35ff52314c490435717e0aeb2e01684f7f763d3e1336675fe880e0d986a989f24256561b55c5ad8e1ffe4ecb444bcaba5dd7821d3fe316a567d2d10519a1c554e17adf59766f5897aca5b3f5f9ef988ec88684d9c8aa769cf412c2c89b62ffaa87cda7fcfc59cce80a38bb55aee0aed728e28bae0df21ef26b7420d60e2a64b2f21b04fb31c79ffe61cdc5d7f83f56fec31d4baa159f40958e3dc165fdd1387705edca99766982cffe97112baa751ba28536f889252f7343c2deb2e51a9af053970f02e2deeb34ce9dc9442d241fa681598eb4969b4fb2aa81d67090c660354d1605447668954f814c7f34ac106a73ba5161046f8414948636913c95db28e5493dd6f811b93227b5857699651af14ed41feaee114e9d6e5c4309e392d95cef0ee40c7b134addc5ef2ced4d4b4a748a9ef68dad0ac5f5c0eb10950b7eeb3488e117f7730b6c4b1591a6f7c24b6026e76f6ed193b93402caf847b56f9485dfa2f6fb01ff0f9ae58313100822b9dc289feda11c79f5b086c11076945dc7d53e926277a09901c01bb0ca01e313d3f82ddcd69dbb91c996d7486c6ea784333f2f06e8c6d945c8172f6d97c8567316493a6c691783a8210d38623d3b7863c5f9e888749a7a88d782c6c057239425a6c7afc0c6448896ba1534f26bd0dd77745e1a1fb7f2b85870e187e10437d14e9fdb2fb25dbecf624bc25bdf12f99d0d063ad0568f0147bf8284c1673e793a171316bd985c8496a08b21b598fb436f4e771a11bf5871ef2ad3e824d989a7de1ab47e992ad63a3e9d1cf41115f61a1391281c345c8d1abb1b96b1c39c9127ac9bc18d3e3e6cde3d26aa87e82835856b4b21a6e160dc9144797f6c965a1de122cc30bb5c1cae9a167198325fa1266c2b3a0d4b6262c0a0d3aac40f4ad94072a1e39fdd6ab35b38c2d9cdce21cf5b7cf1d330f7d58e362c997703ca870555c7f66b7f97af68357e05e186e1c358c1f487163a3b53802e42beb208cfb5089a62588af56b786dcddcf4fc3f01180890e71a5faff141e5a89e38a6f347302b75141ee6e1115c0b967d546022d82240905416c1288df2cf325666c0ee86413749713906e088e910aa2d69c6414c98c88f3bdbd191ba2edc8f0336556ea6f30dc4caa24882ece37ba5f16e55b80a23f816f1b0854bb74616e5e96e4cf9477698000941c09117a7d140011dff9cfd1e59f5990a12c6c1854a0489f5e04cb5ae71a81255821b52698fe49ef533b86389042dec887cd5d0bd84fc63d0cb04ab3cf471db0f183f6f70f5b099b9d32818dd37a6f12820c8214c99a8515b7d203632e9c8ea1642c21a8c706186fb59c3a23c56447e7135c0dbe7f411d394591e7fac78eace8fd7e96888286f3a47fdb5fea3d167cfcc5cf2157c7be1f657a3a646c03dcb38124baeab7be102217da9ed1f46e82bbbea0c9cf4a2df1cfbd16ad54f3324266f3246bf1cdef4b72d1d6d21c7495523972e936bf92ed38267228a228e91702da96813d8840f8c0b4dfbce8082849547791cea0b901039ebe986ab674cc31312204d3cc1144e2e5e3cc6ec4068e8479c7d2b596a4ba5a287be65a818e8c2e7c542af851830fc1b42d3fa0a62c5304e682390c806c09f5c0e15d171b00808455272835111459e6122058a19ae5267860bb8274ec9cfe423831f1d21644af1d8001f2bbedd331ee9d63bb6817d6f55f518994ffb2b4ee846425a48251b4c908ac9fe1932af3dd84cfed4e70dc38397c44c43a599ca18859aeab5b618629d2c8f00ce4964d3c1cad500f474db044a8c8301c3afa20481e0f3dcd193105ea93a6e64435e01560635cd9b7c4d42cb6cc0515b6f7660f19fda8b34726b69e9e9667c580afb9bea93affcf37e123cc7e08e14901b4b26fdbc40445915ede5ee061d0f946ddc545af3d18c9fdc28170534ad36c22fee9d03614d1aa6d8bf5cdb6f1a2e696a1808e5e6a27b6b8056f8508f3a6543789155031d28218e9335d8b15a9699591ac85a503fb824853db4320b295729270b12f721d8cd0d441e2431bc6d02aac0a15e6040925d51075460911d9fdd909ff9bad9b9a16318621ed8146c29c06fdb8be59a17a8c704ec455070f17566343adc7e47245c4e90be617f638e5d3346a866f18a8d31e134461ac643f4b987b1867bb9bf8edfb87e100efd2d9bec26524a29a50c6f05e005d3057f6b259148d5dc61d6fbfabe7154a95a600bc6fb55249148fad6eb225d7cf1c5d8eeb0e9bbc6b0c685f775ad38836f2bce487afc913ed72799df5f6ceeb0a90f8217fc3eebc83b6c3ae9f37777ee47c0472765f333334adf37f38e8f7ecf08f8e8f7496200f6fbb83d6cd7a123eb95f3c1ff401da4b367db2fd761fcfcb49dc32aae562e182fcf673a6d169647b13c8a7c948b944ef26a63dc590abfc6afb566f1d4a352a97f21c94f81e05b1d12bd42e955a7e3e9218a176dac7c8f16afad19f234cd967f41a19e2517ca88392c0b0b4bbc817a967a5bfa4915dc561c9b7a55eac995ea532bd37619927cd4872c78ad3ad7fc67c5c4ac46adbfa4b5d6e68b4ab4b1f2e38729f855a9c671ef57eddf7bd7f7cb76aeef4fbd2cd380a8383c6c51e7a9c401e0d7bb1d745fbc544bcbcbb7fcd6dd978c65a3b9fb1273d8eea2bfd78f326b77116fb090a894e5d530accef8c6fd2c26d1c6eda40c46f5a4ea65fa57af437faae294bf3fb7507150bf3f44a17ef51af5a569bb490c00ea53a947a1509f7a9d5bea53f53c58baaaa35e65bead38d6a64e30b2f4d2a76e18659996fa196579d6511fdad030d3e982e8f8557fc51bf8556f451be3577147874ee9d5297b499d3a5e3ef5fb5952bf22de78499d28d45ff106eac95f99b5a71e654ac0f6d4ca297bf9958e7a2deee8487d0fdbc97fd93b759eb21490fb224f1da9277fff0af9a27823458ac06dc5b1a163e57bd88e8f6cd82452368c327b947bf290fbd2611ffcfda298e37bf0b978c39ee1c5b6867aa5de1679a2ce527feddf59abcb19d33f54ff441c9697f1aec59d0fe6754bed27d364ca3ed194f11e56ebdc7d6491d8353dca54fbb4f5ac8f2a4dfe5dc3305da5baf2b7d0b30a3def1f999f345b1e725d393c73914cbbad7c2d6fffe5c997a7e7efb678f5fc66d40ad3ed583a09d06dba06b708823b6cfaae3b55ddd308131580fafe32c77e8cbf073f0c2fb7d69459994d62c726d1c193d407b0ff33593ae9c43b2cd607c9da15acb85b8b3b6e4bff0928dcdce011622caf73f7197e78cd72c5c3f83563961fa1bef0ebd3cb3e58cd59795b7b7d6d8dd7f20f4659ed75147adc177ebde33ce1b6748fdbd23c6cadb3fd251d2cfb6e6e52b0660fdd12ab8c32bbb3da1231e6a0cd7f9081e6a2066dee4b97c2955debb66cc6bdb3c2eef0ca3dedcda6ef7749b7d5ed0ebbec0e3c31bead2eb33bddaded168bad7818531d7f156fa4b4cf6dd56423ae118df965b68631c618e354afba25b99e3f7c19093dc3e899a667133dc7f46c6b2ee1e6aa11c616ae0a5653352bac562b661d043181a16576b7dbed2b5469f463d3ee808c3a37ba253674fd07d0a9cd7dd50c6b79fddfcd39bd6cc6f43217acff06c35abed3ab4caaf1a66bfd46a3fe4b4381e0cbf6adad2bfab5f5b620ac33faacf7de7bfff5dd16ce3152e8f1a49ea6043efb3d6c0af6cb7a5bf7eacf9f1b65dfdbdfbfa2e27c3c2ef0332d57c529fd7e9a8a03fefe9bfb3a79d8ee63b6c392227dffd8830d7dff8ccdc6a16f1e8efafebcf7cab8d2efaff4fb323dc43c344bf06bd7f195e09923a7df4f4127a7dfcfe9f77d744ccaeda004de5bdfd65a6b3d4b7fbfcfde6b499fb3cd36db9c3329ff259150b8af12f8d59d75b63b1b745bbcdbdac180131c90f6eecb16c970276081fb12bff2afe1d7529112edbec2da51b8af7befabf6d25fb3f61ef7257ee927705ffcc55289546badd5dab18ba6edc16d6113bce0efb047e0b5f75e7b2f6873510846592db2c045e14ec0a642b6775bb8c76de19ed10127dc594908d7da7e5a6b8deb59e6d7d91a85b9667cd68b2b10d6195958bbbbfb52dd046921f13d90d283ae4eeb203ea1518aaa07486c2041fa0d4242aadb53ef5e68b05fa8382dd418b6d6d8213bd549260632db4586dc57de67589bc1cb0ae31dcd950b467deb55c4b77eed022c3ec336f2668252b61fd34f269375ab3435ec724977e878ca56401de4e7d03e7158b22729da46dcd723c365c458697fb9c313dc252cbec0a39023b001a2e50d4459b7da0265963de20cf8e445a753b6d2891c30913d20aff95c182e8cb2530d75bbaffcaaafc447dbffc3f06e9a62ccbe29eee49eb16932cd5795a6da89e7b6ee690553910908752703cee34522119126d6c4196aebbe6833cff2765ba00ba5c7a626fdfe69051e9cc3913d640d0823398293f327a3cca983e68fcc976440b414ea5d69324b9e4ad353062955289974d9ca5c9dcc15aed2dcd7a1a4df550eb5753ff7261963923716094375cdf49693ec69a1bc95f66965465289324b9426388b3b1943530c4fd15682872136cb1e5e4eaebef307758ea0f9833abfbd752e9540319f6ca71adf3ddb66920b6eedc983d4c30f6bf8b774d0fc818179940904f5e79bffbf39ef6621d417b7416de95979c3ae0be340a8ae6b2aba2dfda4be4c3cd0b359aa47f79ca678a4b6b86f9ae209aa8bfb6f8a26a830ee97a628638a2da6988f1079a8aefba419a853b4d516f75f80904a4824a40d7d2463a838f749186a8c138fada938e1f794331b14e9f755c2505be50f1a4ba9425ade306c3544750181d7a154d77dad9ad496890740fdfeea28d565e58d4a791b2a6f3bb287acdd968fed86cba1d8c5eafa5ca12f1a1865a2ed1b43102dd22d98dad0edb79c3e2f74fba65376ea40bfcf32310ebbecc798e18b1727115cbc7801438ce1b7b6e2d8ecc4f4f15ca13fe4ab8c40614c8ed616a622ec32d5442215761222d230ecc4c3799c972a32994ca6242f60bc5e98cbc0d7bfc4d80ff9af6c139ea79a941e0c136922b9bb2f53ef7219d497a988da2ac2305e845db593900ae351c4da7d9d7aae38437d9d62a8adfb2da622967e2aea5706a64653cd5443996569963516737564a6d0633415510e31f5eeab6ca1b6781186adaa5457c9c393287ff4fbbc68c55ba1ab5ca5b90fa218b602a2baa2ecfafd5593ea8a61a5eba79efb5af1b002a30cddd510f8a8cb48948c8184a1d6dcff4cb28849d65626797b31491c99c3aefb2fb28736b280dc67cd820cc14082208181f400896e65e54d2848bf305d56defafdf2765f484a1c4c8c7d6779bb296fc45889e4b6ca23e5ad3c924939fffdf248c549f5efd422ed8a3dd8045d98f9057ff1d96c86ad34f6495395510f9a3fff329af49923496f179538c367c4986843093156de445b792b6f3cbdd642a142450a16fcc4428c9d7c6eeb3e8d18135f5230cac89e5abf4fdaee4b26dafaed2942d6489ffb92edc0b7fba24d9b664c5802df3c4b90e062e5567cb4dc1e20f0e168874dca39c7e0090b6e13143cb17580868827353cf4e403444f7880c6955e754e829002274774d98f509c10d1022740e0189c387192e485199d9319b0cd0991203809721b5d8eee9429489a0c31a381cf08be40ebe0427951d0a4065d931f2c82b1d4abae8908c6ad6bf24207524068c233845639f5894a61c1e5ee30f214ab601465d0c3382e3982da807d50197e40830c31f25e75e8ec3a19c35e754c7c5085494fc7e40639e79cb10a4c9ee898e0744c64c0328c5faf3a26448e6092011b8ce20f8c0c5d2346b2579d0f32c0271851bdea7c6841097cb8a1b7b2ce0712fc8cce87187ca081a5a7daa3ec82a05e753ef0b840a8dbe0173301f47fa5c11f9660fc64a3fe2e90eb57c90570fdfe0578fa8e9b16209f17c6c6b0b97b44cdeaa07f2a766d60b47f8dee8ca38e4f5087b1f66aa11805d1656350ff6e1704240ced10d5996a13019b9e08c28bdfc70e389ba5fe1474aa18d3b5ebc098f5ac7e9f25235799fedd97d65a63d326f1e3cefa8ddd8a57340f9b442d71896baed79a44bff7deaa57be10e82ff7e7fdfd28f16a63582ef2158cf63fb174471999fe9d3c64fa8a8db1f3b045fde361d3fe3dbe2b5bb304407fe9b1097ec9044b56ccff9932baec76bc23a37f270f19fdb3f9e2bc1281db25b0fb77e638bf710b1156bbefc53967ad3f10ac522a95c270efbdb79857becdc2328e4748a84c7befbd4f18638c31c658b770eda2512892b4a48b0beaded7c1f9fe034ab9aee39ef6f4b1ade84358ad8ea113c21b76fc2acd8cfb558ce1fe27085d18ad90d1d63cc6b5b2c098d3f45af18a2ec31863ac02e314db45aab562dc0c2ddcf7d55a316e0614388c7309e499e433dad727c6194c8433b5f212bbc29066b03ebb6d636b33d6e6ed9b36da377d97618c7148c3acafe58431c62e18e358fd0ae352d68ae2010f56e3e6c14b4a67958a7ff7556badab17b284c10a635cbad40ac34521b9316686168d31deda26c332bdcc383ecb69628c734d9f5c5ca13e2781eee9b504aff55c3e139ae0b59e005170fc6d2323238e31aee76cdc1963153c8518ab5f33d62ab8ce39e7153c74e186ef360ff0aeb99005cdad618131c63618e31a6b53c38266858a14ae168a1326664a9ce6cbb06260ca954d0c1a680e838b31eea1a8e653e371cee37c0553b25e62c214c849a45017ea70a1f9f3f2a2b53e426f8bbf1ce1d01c2e575b280975a12ed4c98835718693ed5403892377302531ddc020420e9af64433e54e474eb630084577393497dba5380c876979596aecb5f20794c32e1c76dd7a90dc00c3aa97aeaa08f5216aeb64227b298a1ea5282ec61c7130e6498742a18e72682e26347f606e3037e46040f42887e65ed290bb84e58f7256e5a8a8b7e3a5401ce1d01497569a1d76b91c1581440f79a919e6251487a2b894f394737e82bbb4a242ee40420179686ab2d2da021567221134047741170689a2397497e36968fec8c8d86ac8913852877c2292e680f7c499f823d66e38f0de4cc4996ea5d075dd322d619eab4167bbaf92872a4564512f457727222809258d09cd9f9818908775cf58e670a8921d95a29e9421b2a89762170f6d826e9017d33bc2a1b89734c74f1117863825298ae3a528d02e28cde5783814681784d35541733823a38c44733c1c0ab40bc2715668feac56ff32cf2271a40eb9f444e444e33d5e442edda1b6604175719f658a395418f75f4c3127a23b7126e2a0e060204f8a501040bb274d6a0cd30dad381c257500ea24eebeca26b555de90cbe5902b69e52cc5b0b285ea22725fab2abc08244a5b5a8e202dd3d4eca868b5bbad201e769129891ee1501ce715f1782614f4fb30e58b139aa2486e699aa669aa244d857a42692a14054d795150a05d5014cee3fca84c51ceab2d4e34ec32e5b0eba7c24e47aa0bc34e36969449cc996e27194c3fe472240e4d5124b7344dd3345592a6423da134158a82a6bc2828d02e280ae7f1f3944373288689b55a7a5f279e1cd4d76985130dc3c49929876120ef74a4c24c494e360c33dd6ef775c2e1505f271dc413ade5443be54c395eaee77018c67b240e2d77b9d2765aa1e4419c615869029c28e4067156f21c15f130ac54c194a49c996e18b6aaa2430f70f7b5a252d68e2861e0952df08e724f2a4d935a53d4c32ea01d76913c32edf7d11445724bd3344d5325692ad4134a53a12868ca8b8202ed82a2d46c3ce43cfceeac67b376d2ac334a409e8e302c65c3ae9bbab5cc8a48b4df0773ba14cdf15214681794e2704a5214c74b51a05d509acbe970688e8743817641b89c0e87e6783814681784cbe970688e87438176413816f7d1722910853b61d16eeb0eb9ad2bd2fa7d7b41b4c46fad5f2a4b457afd120cf5a5baad1a86c17cfd524fc5317d3541283a40a05e1f6c525f2780bb8a337e7d10ad38a7afb5a8bec6e9dc7f9569135458ce42c847b77585e859152a15a667a8af2ff3f5b5ade2b47c7dcd938b8ef4c62180805261ba07a677407bfdcc4385699c7e9295f4fa3987fad2e86ded72aee2885f3fe3c0d2e65f3f935fff312cf5f55b3618f6a2529148248a3b192dfe294b21140df5dc56188662eca7144f3554adb6b0e1bab0796d5d31459af802e7f128624d9ca157441108c43f0c3937ada9c8543b0939f1e0d376e120c9cd98aec21f69023981fd0dfc0cd2e7c2b8b755d3ed49d66e0b87530dc370bfbd98ad94c8c222c67e582bbe12633f2c6cea16d3cb526389bb30ee7fadfc6d1eec9aad7a407eac86aaab86bb35c9e5505d48fa0db595f6fb2620a0e0faeda9d96e2be54db4c99823cb3c85a385095128d417c3553f2c9610dd738475aacd4a1bb238778253b02e2928278c8fe6c81eb2460644108165e8e0ad3315bd332e22436748a7dfa0cfd0386748e70ce19c211a35866a68dc87741fc27d286603372141044242b9cfc8d80867237d06d10c1a42d0a881b30e11d621ca3a44311bd612d9c0990611a641946910ed94909fd87cf4d65b6fbdb5ce804ea96c1e5a7b5e2053a1810a0d5468a04283b544dca004b5a1adb3ce434319078dc31ed27a0fe98dc30c3890019d8e05238cd07a53d15b87031ca4341419da9a082a7a17d99a082a7a17c979ebacd3bbc8d64450d1bb488e18d39f8365e8e0ad3315bd332e22436748a7dfa0cfd0386748e70ce19c211a35866a68dc87741fc27d28660303b100aaa0371154f4d669bda9e8addb29014706300b9845108d113770e870e4d0e5304167c20c32c619679c711e4da71617149952bdac625819ffc0d9250a4be68dde3c416cb3378bb3670915b5c48cd18bcf8c09a3171f13278c5e7c4ea0307af141d1b256e8450815095aae11b852a820529131e9fb8888be1460524ec18a68c50a3186693226c22b31965340c30208163518a8b1f961d362490b119688e0e285077eca0b185360c01063f895b11136c5585ef282ddece066841d8c8013238a099f1824183141f402468e0c9c858c7036f282c9d0c159c8086723373762ec1b41a77fa48d83969d5afb63b4ffdd700d3bcd467062f419380b19e16c4447478ce1d7c97d46c646381be9338866d01082460d9c7588b00e51d6218ad9b096c806ce3488300da24c8368a784fc021b0fd4642a367670e4c858c80873da6d2db971438c611c191be1bce4060e137e640f641b5ecd941c262c3121004b02208025027021421039c841686d2a6b83418c2ab6c70446fbb7db23c23a2333f129a38cd3ecc53967adf5de3b3f49dcf9c052c8c51596d1746ab1e12a4ee3442a6ca7fc87cb70b209c112c2828765b342fcca45939bcf79ad382aac35cf146709578999d68c8924286e3c2913274e0ce1b4b4eef455adb7e9f5a663db2cf57de3a852fd6fd146a95b920c2750d41f769c5669484650ccb45c3f256a45b84a1ae76f93c01db775428fdb42c1765b49be170b4ce028450a15664db593a8b04946f0396d458585d582f64885711a4da6cbacadd27648c27b6e2b5481868510160f0f2be4615113d3438d0d4c0f362d44e0a1c53f07f8302c2440092e5cbc5061182f52072f184a07b09b1192b4dc504ec32e216ea46eea29c108383fa71aa7715aad564204172400c0f402060072c6d74b8c911e96632383c5be36f89c765b4cf7fbef46da38b819815b15825498edb14376aa79ea9b6a0cbb015b73adcd666d7603b59c1c31963fe765d8e88c405c62ecd4d6dc0fbbb64868371b521bc39aa0d6d45069360ebab5f19a0c9d1f5eabf122743ab7b6d99159a5f519e00b9b1c9c43a3460d975e9f89d9e02a0ce35fff398dbb6061d666e33424a6bd61170b31084d8dd80d1e04e6f6d0384d079c962b1ac27b6e8bb623c6f2e7cc2bb2e166eb61a7045e2b8e0d8e507cdea3e2b57e5bd666793cf666e3b46f1c59dc68407303c7c591c3e630e148bfb6eabab6860ae3b44ac3a15f5a0f26709b1636d594032f093c489122258acf267d197f770ae94ed977cac54264d3d61b835bcc7e4b6a61ad11e3d8fa215ad4d20ddf2b43af575f158400a2010c35a0a700a21ebd3e94b536221bf12cd824d2943d05e3b746e8bdcdaf4a19ebf7d0ebf562bd58af4744449400a204106d52ce3ff3950496b215632e22f8c1bcb899196a610d84f5e67c6b480051028848fb3201c25a0810e5152590944919d7eae067adb53b442570b310ebc57a37861f30c6d1cb2bb45e01c61847a057b54f682fb7f8f211a730e68aeb05410d0b1ddc7566305a7b314d35c0e832e2bc22eb609709b7841cc696aed9295ed8a8603574764daa33d0f219420c5860e10668507ac20a74f8c1c9141e6ab0c28d820e01029d0f3d35ffe3a852b1e0a1b1d6aea83855a7d82e520b05ae832766363637372513bb195ea206d3dfc25caecb7ea759ab3f8e322c9e53d8c25d509c7c49a978542f378612d07dc976e44abafbfaf02a3f3f327ebf375ed9ef4bc1dafc247d9e25b6f576d2361bcb24338ecf42aba1493b7b682578ad9e40d122ed227a28c3079a610afd2b78b5a9391bf30331cd6561513397a28b71c5b6628c6b0d5abdbecd1587b4d1fed5d9c5d62f043d64f960fbe3d8f5610e569a989aa8b40b9d0a62e86824004001f3160000200c08064462a13048133deff914000e637e4a646044998743419283200a821806620c328618428c41062134374500f8f80f105bc0485cff8d348eb05f17bb668cdb489e06625bdc81fd40c9f068738ff4bb2f63acd1c8c344db7313df7f5862207fe8886738f67d92fe688c7fe0d88b0bc0eddcb0e96b933ee5940fedc5ad0709f74ca855535b0911fe167053dd71a622805348d9f8e15108cc9e36717b7c29a176374669bd6a02467037e99f3ac7ddb4cb48064f050c05cd176ce33f26d3101fb50b6d20d55e4ebffed44dcbc1405bcc6a0bf27046c5ba15a8d11a0b3ad1462f0d7da680bbc741faa4812b36236e4fbd607edc520f585157e63af47fac1f21ad7abb6a59ba6c24ad93a9bc39a0289995c9b7a0bbc17d745b94f4b607b54e4cf56680a23656c7950e6f1b07e99286f11f1da54ecb8cb5440c3af280dea633a35502b312bfc2f012d6fad237cfb10711a38e3cd06d4ade78a71c6b33422b1c10532782b9a0ae74971bb5491e78c86ddd81e505a5e191f69ee4e37f66ac81290f8b1bf726bef3b3641840f67b16d43d3d5e66e3a95e8010e11ccdd4a89d1e3608baaa5a1add277ef090529984dc40cebe0cf817087d628221ba199abefc9f07fac0522abcddd83d63e9e323b30ab9446acd3c2339b158df921a7afb2177d9e31a43b829dac4c4344c1c1db18f2e4130e9581e64880eac01108fc432faf629654a16895ef73eb3d1eec58f02492ae967ebe2693bfb1ddb51c49563c2962766aaab5f22a765652e07043bf3692a29ef09875952b6279e4641f9127bea85794e86623bc965cbcc97dd9648bd363d093b9a0a68388b26ef2f32dbf8ca130b034361cf5966fbeb57cbd9655b801e880814769abe03b18c33e07f48c825e2a2c38e9876c14b582558dc28e5a72366976d017570e14489d14f99ba83a06bbf5ca4e56336c10a7441a507052a89e99cf42113146c56dc4c0928d9640e7829f9596b7e0ab7f15bcd8dc3bfd3aa66a6811a797562ab6c9188fc9cdca1b6f039d2be8c1cb6af7aa4d48401cd8a1b5300a599c8097f2a97920cba61cc252b72ba0f3371eb0d08572695ab28868453a604cc53e539c8110028a41f4c38e808624a287d36b8c10491ff4a4b9371689fcc0ac58aef1dd45d076d1cd85bbca37a09e34f9f474a6283b1ab022ea287b083d96b6e93e0a35256ec88d9ef9c2831fa2957f48c2d16417de3bd084c66b908b04e3d2ed929ff7e238ff11d2336e7bc7b3198bf0822b543143afe5dc76772cb8bd2fc1dfac20a19a59bdf8f1c45c4e4f40ea323ff59c6b7d87f33a40b6fb10d082ef974392c4c15bd4069c7d39f3fa2ac85f60ff51e076ed30c9cf12f19de1232c1909785f9ba5f213a9f29e8b7d2d57f952f6f75b7bfcbcf0fcf531f47845e10969516b80dd7c5fcb0ccb152bb0a05369ef276781207cc99722079eb28d97d0e070a49ecb8021bd0a313ab23427e6259d5cbd3a6cf8180de3869c9f1a69d2c2ab1c4b8354ca21af1f03b5c17614d8229f53a29662c9a289426a0b55b90a20fab8d98d499f27eb24598b321bc3c4740b698d42b0a29b589502aa75fa060a20a1c6bb1bb74aaed7d7198cd8aa551faf1ee2115294ca80b8a09f1826c2608c28dda9ce492d1a499d13056419a542f33c2acdee9de717b2e0b496e56b0bbb579dfae7c1abdf113385cd52f8d83c686082a32dc415d70caee0d981675e9fe66ccf470f076226c0f3116521eee0b64fb6099646a468928752f88002af9550aba321ef4515499c581e83c066f80200377c8d6d4a49c42477b7172e15cd760dfcbaa0c6a6d97541bdfb6f2de0cbdc2e9d135295d209c614bde80a31a3657a096173d8f98d221b2f87c4ab16c845cc72edcb59f58814bcb47c740fe4de940eebcd61d7e2ae097dc2efb9a2efa92ee87c4d184fa96bcc4976402551a93508af0c0d36f39f4090623cdc62736bc665066c91654bc8014921043e0fc68a03b2eca5cdf2bc18ddc403b4d7c2894a34d56d60a2c8556d250437878c0041226dbf03eac267d209698f648110a4b3f2fcacfd7ee5a9902a41ae78467bcab64069088fac64320e21f421a2dd6003129561c350821668a8673ea284bfbd6523b3e60bd18b56d9607eff44f03a1016ce2e5fa1093288c203c2f4e43865edebc3506866ad300327dd58a63b75d4911d7300b2c88232c1be447a9c791a600abcd6272b43cf779e4b1096c685aa083d8db37b0949f79c49bebaf689ba99963d8dadb3f64a7b888cbbf3b3f0a8da4795f8488f1d353656a08fd13fbcc0e303f7f34f448e4238c99a542b399d41816e4676168b5664696031cecf83fc1b9486c198763f57f544331f86fe7447525c5b8553659794624f1c345f3937d0c179d9b6a8cb25f503488f2378ec2b68e3fd019a1a43be1149e47d7fe2b8d7cda1e735bf970c872c66317f1aee113d2207d6e45977af745804637bd85634d05e33130064a27196973b32e84f5301adbd49a709cb3bedf0da2ed3899baa2f10a2e41b33a817ab9448337615b494aac25b3da5f101b0c86ff82618c8120d9e3df273cb298e75696fc493a363d313220d583102226a6afb6c70e04b86f75e544c20ef855641f0b4cc5a348e9d9fb9f6296ca20425160ffda06623ab603efd60241693631ef8541c4dacfaf0cf79523339d0c251a509cd024a9d3ec115c3b54f2e0e3b13858ecb0502ce95077588a03e01ea9954172f4e74c8f0cc7a6d8a595ebd9f0fa917679797ca4c18c29a8fd93e4214c2e99ad74bb3fd5b87207c60d5f475c7e520328ea417255ab3c47290eef8e0468b4cda975135ee9d03a0f10902faed3084de46e1f4f9a97c41bb11a5e628a1dec2fcd54d78cabd2241df47ea95f4e328a2206209c0560b35b523f521b23b0e971e076d00492adbab4911bf306a98838e8043a6d072f0a7a3d796291b01f44b2be62885796215d344875cfdeede03983030fbc80bbb7c0ec3f21460d914c424fc6e011e53ddbd2c8b15081c63f35f357aa48dc34e9e04fc9d0487b413e56d40f029a4e41fa982786dc691331741716196964b00d52e10ac4bf301cf36a6f494b15b4ad6911bdc6cefb94bc8bfdf1b43bbbd5938b58accf845ba0d492984eab87c2eff5ee74c304957c2ed4c98f5feb6c4ecd79b04d9418c8da223adf82809bf98c6c04109cebaf0686a3c3e481deef5d0387a0c6bd0c78a98448baee74e2c7ae23800a22ce528619b292d8a538f04998c32cab18686062b093b271c0d9aa243c32dddfe7e24a571f4652631dc466ec560f23ead2f8f77536a28a72d62af70700e4e06458f3efaa83fad4555b351c385e2405c96ee29bbb89118a245db1b1991a81e984e3e381a2bce6367a9be690fdf03ef49513503e329ce112308711eadf283480fb7406a90ce9840fa74c57de846bd89760fecb9e1dbe583b4ee4e06e9101c11cc61fa16efc943604bf763b7348ac076c42405e39a437a4be6635a45c2959c17d48b90279e9ce866480dd3f7648a39416d6a445f037d204a59de12c642fee59c1b02f1c564bc5c3e497169cb722585b46218765d6900c6f2d1a9f156f8177feaee5ca15d8d2e2b8690ea99d6d3d243e3ae083140445ce2f7ac7edc4acb75e2a7a5c15e529a30c46203017f67556bfc286e4f448ffedb831252b7228a465c61f95e6069455c8f1909619376573c56e39e2319df6107c7163dc0611775324249f72c6f905ee0199130dd7e7e073c841eba7036539d2416f75bbf6afdaf612eb90b3400ce32411b8aac3644bbe38a199f76e8986d9759df682713382e4ed570d7b031f332daaac77232c3d9acff6bbc46561507b1d7fcfb541ded68ca9159c01661ab06ab97747695bdc366f6a86d62c3b5e589320fbb1d46bbc438e0ee687b76d05030ea04c895718ec43d174e27f81e38b29f8b259809c43455ed6552cf408b8e7417ae89cb000844ea2646ed203104d72678d1168838d6723da5419ed7b49b9e66231eb9a64951e68bd96e734467bf6738886c4436231959220811eecf6c44437624b0f19dd8875fdd4cf4cd329de74f75d638fe446379935765660a67d4234b2aa703b1518978804e5e5359e679082dc6391a4d766f0c039d6551b4a6c6866d2124538e3bc86d6249b75e468c5ab995433677e332ca7d966a3bfe53fd49e51364950005a1eb1587187ea9b3020cf241f8acdfa877df80469b0d6a937ab6e2cd24065d1c59a109f1cb200b03d84cf208c40c10c175410385fde0e6b367df854f26a876d0bd7a89a845e6f2858667c084e21fe3bff1708fba3eb9695fb87eac858e18d9a3871695258371cf931dbdeafc93fbe2d9ce01894a11a1481cb1b83da29629eccaff2f59132bed56c2bddb2897a44fd8fa665050e81a89e45f73f0e0dd526e62b2790ddb275e7ba89c106df928c6973c5ee559c2d3d2134489c5e73a7c92ac0b3978e7da1d1d976be40b9089f7fffa87960339d8a9774fcf600bcb0555166c13d05f7b634b7c4374fb8aaa9f1c804622ed228facc4e4bf574929c28d2b47efa513921fc2c318d27c633e972b0738b77c91d9ea5ea0dd38e81b83c90e3f2b1e93c9406f161a93857c13ccf89b9313c9a1acb2677234d4960f4cd2d267e7d728e9caaf4a949f45b29bb6628cc97f6a48e0e16d1844a80a83ca254430f3939aa3a50e6d8700d078847b036f6f772c4d9adccd53884dcf5c6cc388ec0022f32589a0ef85806887e15d4c06c5e8d1effdb71489fb89911ce5fa0b271a9902d277cd578abde1e90740c96088689837608c9ca23cad4d6674af16e3d28590ec814ccc75d43d1b561088c5814546e98f5dbc210900d8b4afee40f019766034de42c6eb158615a0850f03edfb3a531d3de41a1dded6f967ee42962353f26012ca4f45ae0c38f5b24c650047655b76bb3e4973a5f569b6849205d0c06fac13ebbc89f4bdc3403b6755461e7fed21bd81085693e04c265956175c8902afbdafda6e0d22767f2dedc88cd5623d2d550bf4921449c9f64356192dba4bdb8b4efd21fb694ab2f2128999fac6f956aedccb547a5ee0ca57375a6a226a8f12c904aa05626c6628788fe7cf30154204f2bc14961a916c86fb711e838967a62745154cdb4f18f2a84687b2595a75c0d20e9162a566fe11dce9b5788a97cbc8515f699e2f25b97c87f437146127b5084185ed772c8cb0f332994fd44dedcfb0d7886e33c868e3f4f5051cca506621e3087cda579cf395ca2685ea2cf6fa240048956f435596851600b37053535cb15f51b3a6cf304e668e86f1c7f4519d1c571e78824d39535b2627c9f11784a14b176f1daa8316d4d3dca0777b758e3fbf12d3973009f9eed90ce4c24ac560a8548193ab79249455a857b18985f55086c8fd90b6829bb06c36176602236ddbbc694b1f31484c0147d741121a7b355043a95d5101fcefa24843e3a547a826eb63298b8b7bfed9fbf8afea3cdf5f88d0c1ba62da3b113d86dd1a27592c7f92bbc864e9f6d8a2b4a265f69148efd985cd6ba25620a3fa33b5f1bb23fb5afbe97b01456ebc013d9765afd7ed9a79691cfa3500d8a0c09f8d5aacebad6f824d1d9c70228a7d02c2c1f4c3034dead81cbbf33bc0c54421ce7f139c49dc1ca07d72b6e6f510a03469d9e57c4f3ae49b871483eb73198ac9dd5cf677876c3ff3507394b75f72ee628c98314885f9ee5477645e2946d3e071f460f85285e4150bc2ae532d1d9c786cb8a2532243115a1835caa2e0c6f92dc02c613d6f74c2fa06360507af9165c722a2f83fc16a9213bacc483381a976b1d7bdd9c8ed8a13245d874e9a603bf157357261f37bef996fd749e87802c6131ed8e8a93a5b0e2139314b7e6d17aa26609707ae7f2afe5368fd061cb7804696e02c97c4225d5481f1ac6f4011a9918b9d075158b1d7bc82c83fc377001e75317b3e161a34d4fe5d7d4406dcd692c413ce6a1014ead6d96d665d67f3c143ed028e37192724a015298d6c2c89ed86eb3f6224cdeb3b6762e3050fc63e032095215352e3666c54b31958933af68773e13e1b70da5b773185604bcbe2db1e89aa4533c0a0e8cbfd3bebbda6b33428ecc6fd863d1d519fa9b442e4119c111b3b4a01e2c14ca4298266013bfbfd6c556c26c8b90cbf5c0e18702513662ebf47a7d7348e3c5589a996ff5a881057beab29dbe4ea619ee2cbf812d2f5035ee908ece448f0afb2a3804596d6a47160d86a4e9fa66d1a3e4553ce6e24ebbec8df43525f5e6be129574890cc5febb2b859db21e25930c0ecd469965964059c01889f26aeb9285cf02509652935ad6880fbfe1f29fa9f82fed0a39515e5916f5710d474ad73e80acdd03301c01d4dbb1471ce61db577013ca438850b92194c86bb20b14e51999f531c5f6b6c8ff4e9bb436c9e46e898dd709a6d37347fceda92410ede8a85df41df90c3b524188f84ed97edbb32a4da1710f1a2c8bb41c86623cb8ad8f3b69328302e0d09f1669e5032bf9e9037d211b887f37389c21ba47807a30069ccab0d8ae51d1c075fc789eaaea87b5a4a239a30355ce6dde3069bbe244d7adb2561878258ee32c66d57526f8dd5a881e9a2b21b8c947f748d47dbad8bd4bb90adce9fe13ce7d114682496481e4560e11f249f806751420ac8579f5f4c0544dd4ffa6dd0e7d94cbc0786721c7a7bd96e1b04de0a2489e984023737ee42fad189580a71d0633926771caeed215cf9d778f2a2cca39c84da17b9e917a40747316a68060627e11c941830f4ae8aa214e0ba38b9ce1fd0bbdcabfbd7b7a18855526590cdfc35a20db4ae1cb43e4f9d5be718d0156f4fde0dba1218e8a7d0b31b17cae3d320694d0dfed81e71777ac4f3797b445235710b90a535e45d30fe46a7ccdbc72581414e7a0875cdf817cd3477a9566dbc4bbb36b9af83c95868af3b3bb2ba198baeceade7181711c847d9b1e146b9b384188e559c8e3311675fc67183c9f8c025432f6ca2a5810f5dc6e9da87d77a493c5af48ae1459240ef74d89f7eee66a7b68713241c320d6b1da0323aad6d966f8c7ca85a2246a82b02aa47eea71da14491f827d7c034400433529f7abb13875b30d44f1a992697ee270e4eaf84757fde610cd01bbff93811f10d732b4942991a8d54aa9c6ec1a715acf6e17062483f6a7c0d18325f131c092da5ea48a2dad734625555d93b8534e502635550f59097ab5aac2aa16bb7aa1b4994ea0f51c51938e304ff7b729e2c11ab6679834d3be2efb76572f6300e5361f63f0878c354ae492eb6c56f40c1f8b855af548224ef1d5820e5134918298670ff31990703a6b2dde943150ecb8a0ca89e52288d88a3357f542d7d3e5523227fc402384efa097c543683d9f50df2c4befb68b9da0e66f91871740006d11647334356465fce3892d2ec538ff11008e6343cd42fca02a0866b247687f33efc9b8e090c1166cba0ae6021267a4520a050770e40c5e04d4d5f534412b953482129834f78a57d10fc18abea59a922da12cd311e8118082953428564a391c9608b8d10166658b39b109ab5495f810e2c7284425b4bcaa56ce11d1b129931c66848732bb5829c1311acfb8db72f103e28b841aa97b6d77b791a59f6ad69a68129d361482673fc82ba0f80dba7970e5a7000d408fd4814305053edfb49adcb72657f60dcc411d7eb0535dfe9861c590eadb868693fbd93faa9f6f0e6545975076200345f5299d2dcd3bed38af468874bca1d28e497106ff130a85095cfe21f3fe8b8d8da787b9e2e50430b6bcbe17b53e6c77cfe1c9321e517bfa8a02c3723bad14bbbe5ba4aa6bb3be6f96d17e5ce069f51dcae3ffc811a9a75943031e2e1b436bef1e7dc34aa4d8ecb345a15bc0845f2afc341603d1faf1ad5f2b585cd21515651d4bd5770346a85bd6e0eb51f3f303744083e95a2a86f31be20489cea921a64a247ca14238a822cccef74e0542f8a5a29dc1cb0da8049d7a1d6f7a5d84f9b564714f55fc7b56171cdfd6d40e04ae1b80df83d3480b4bf82ff5f64267c483f10350aea7cf4c09a75552932d5ca525389dc22f327d69422bb1362327400a2208d0b1cbbedd81e3110059df51cae6b2ca15e1b62f7103bbbd384c2bb956ddf4e2b1a8802af484699bb70ebec72206add27fecdef247f8c6dad40b202513f30e05317cb4ed7ae8763a1631b6c0228e76213a890707b3cba6ee2047e624a7e58a855db8d28ff195a013881355d04ca6aa57428675b822b175640915876dd9c992cf26f19231a58d68872195fc14aa6bb8a2238be23458a0d0ba832c2a73c23c23f36f48170a3848d1d61f6a582df450232463ea1cc009dc5d6aa31526674867cca3f03c1e8ad952d3499e1691e40219fac7836aae0925f80590953e48033e23c4ad1c8ed4c3ee9461b7006f4e905fb364438680672ffb1fa0eb7b097db0f3e1538de47b7e181173feb35afd8cb229f5c79971044444a20883dfd23a1386dfc80c07bfb980985dcc713ee4bab8204e3e739be951b0458f798c71377e33a4c48fe01b3116e5caa5e626203c21bf10d3c09ad74027199496f0a0bf777b830e5a0004ba097242d6cc2aa8daa9e107177c20c0e92e99d1415afd3e669f601b67d199a0237ef8168633fea7a0d75d13bdf8589c9ea85e2600844df0d5efc9d0006d29d25e2f1c879b7a814fac2bb71663d3f8c22ed6433a2bf9b2e342090eaad6e87a32950839b4f3c8135669e7c8a0f88a79dec26e2de9aa080b9429871a5d3fc36d4cf6d044e02cbbd719a4dc974c7ca3693f2efc20bcfb270158d1336a6fc84e4ae80a0a64d62f1e6716a02a9344e9c3ba4f5cddc550aba2ad36ae0ba333720ccadb671cab77834fb80928c7fdd9200f5fe242302e4b235f11fd76e2f79b26a15ecebbfac1f1f98d0b45062e0caa8f19510f3f2a33f6faa4245a452711dd4c71332a833ac0618ff2063862cdd839913d27da50ecc3e416f2b9fd39e09b0063cb226124d6b95222e6d6f6eba7467325766c78c070a960c90c32b82f381fc35b943ee1e3dc6ee7e212d5849a02d597b3cf3ac78ce4c8045a3bdf4f3256ec11c969b5733f9b47e1aa1154108fedbf3077b549c21ac6eb98e512f4ab7d4b18954c5ba1f0032757c5573c97a5ccc358723abcc8f05e814d6071b33d018c3966fe0c011ed562b8e684c91bf2d4e35c78458d766990f62c187c9c1f8a9af551ace74c9195e1e8425019d86affa3576a40e8c16e537f182d85af57a987e836d84fa3b3073dd1e05253b0dc481c970e2766ca1d2253b416dfface19ce0aacdad97bb6e7f6d4dd8cab07f002938e5d91a9152063fb082a87449ecf7da933a93708c977095674bac55e426d3469f74e4977fd599bb42ba45e41b1b33d018838d4e233b404196ae5256438bb13d28ea70f28713ae17ad4de0af614bd9cd4cd46d1fb44b058127445ad19b7efdcb1ae5dacd991fe8e9d0e75bf489f8228b0a272d616ea272c1d6b0003e42ba0a79339828e13cf83540c1b053fac5c6042bbb61cf20b133f85f2002f07b59517881c6af3012b80e592fe2c5304af9f340de75c1dadca066e115f926710d7b853b9c2fb45795e2328fbbe98f7040e64006dcbd05c6214d42bab6f8d187f717a98210ce151712a72ca7a18e8d484a2e69952a28c71bfdff6491432e8c35ecd8bd6d539d7a91db74f32508057db4ce05a375f47f21324b18df2af38713b02597ef8717bdfa71b1b11f62a4b7ccefeccf867d9b0543ae7d6f2d08b5912f1d3b33f9229a0e9b528eac81054748e9e5e50e5c433db07228e86c0f94e62ac0ab6c8664c0fe7f5dd538cc84f6fe59dba9ef08c20ec2e752141c6cc3d847437dd8c76c7f25c6f0b155f8c12e7d1c085a75c41cab1e99f03f811e363d7238c7b0bad0b77ee4ffc2d3c6ae0401956785b81772285be4240dd2f63026a31b1e83f47d1d578a4dd81dbcd08f7540a98bbd2b2d8aa752db2c98d12b1f6f4e57ddb045e56d598a694a875a51bbac3dd8d25150eab04af30eafa646cce150a3fd0bc0762f48f3ea05d54273b4769780a34d6335e2091642dede3b369fac362dc17b5f4d099beebec8f0a2ee302050166f55864038d7277036350c04740bc787e7b558dc0224fe2ba0330e4701287a43cf13ba6f2b006bf19d12eee42f1bbcd19be708a7bc5608327a80c3bc7ca02b0e6ad24462f51fef23a3f4d6fef819d47e7412befaee97f97a1e26ce4fa7971b718e60eb4d61ee34b03b14234dc13607b92a8b39f2aeb1c15a3567810156d87b049496ac203c4a5f53b0e761a60518d6251c947cb0679a32a4eae6c8b2fab420264fa2c5841d447e5e222cf58362bfcb8017c0f41008b1c885605ebeb93f0ab468198b48d00d59448e1e76e5a7dea8a36406a034ea7bb76e2ce4158089b2640cc1c5cec843b27c72f82aa5ddbe24f30a73ae3029780fa9848eec56b48ff27011ebe658a0d84d7f6e8e9ec0f639d90d880fa0e59c609a7d97448b1b97ef37aa7c64e9ee5a4a861a9912d51b04541161fc6ffcf953a14b8d05e6dc97bd055912f81cffde617460b99245c5c80f86373bc58bf0c15f0b409ec917e2d897964c3e4afaa68c49174c698d229f1ffd8f719af7d3de28eb7e39f86258b5b95f95327232998f07142ae8e5b7dcd42621df2386e26b271bf196892799cd45da19a06175bfa1442800592895442aa31c4949614b26c6c0224b17ae0bdb9e5ceb4851aa39cae1542a4f64895bd4d28157a5cddf8b63f931d7c9b766cc56032db563c4655a2c664fb0fe59c021dbd02b299ac952115619d30ab3e10f39d97fdc2ee0f156b06e83ebc496a7f2470afaf0ac6058794aa879739040cc18ce16e9f84a2cc5fb5f3fb0aff563e6ed098cfab0256baa923d753ced25cfd696ab555836842bc614a7e70078a8864b7ca92bb75c4c7e15a9ba4f3c6300f6c4e52bb3f6839b1ce286669b0eac4dd37311d1ccfc1b1ebe111fcde4ebc3ef26113adb5acd2ca554ea751b71923c778bdfee5d57c652d08049c4ec0aed51622050e5e1fa79c9fe3f5cf6c2d3dc1cc6cdeee2866f508247b766b817c7d6963e03bf11f9298622ab7a4349b120fbd5d1203f584b3082f0a5c7100835fcd45f8fa4b1f8df2c434c35162bb89f7792c25fb14f00f0c3087cdcf32e8e2d7559f79974c288c6f1ccccf78c6c6194cd24825aa752ea6d730c5710f4b210d86d6b8e17986b668da8395ea9ff6f6da9eeb9bfae3db95c8e171a8fac981d7b757687656333575fb5d94532695d3145836085f8b3dea7d5ec2066b70e81fdb49be32f15c43e24ef125d2d924d1ac0ddf6f55d9513baec9f7de1edf62d88f8f066cfae48231c964879be613d4dce31f5fa64e1f04f8fae902659d281669927cae167e27cb9e0c29ed4f5670af4a4cc143c0a1825cfe992c56f44b57dc1a942af4efa61a0e7a5a8ebc54e659fb3e8c890d4a0481c8a965b37c4bc751492680fc3ec48141e33707cffc2fbabb080a779f384ae8ea21e270b3cdd61885a4dd26c13ca3d203adb41c2c567fc8f4704463214a66c48a7075af227a2e17b3a49e29726c484e19853d5ffa735daf2094263b089144c3716bacd295c8f1e023b36093df315e3745acc4ca47055e28390a5e79e6598509af584f96c8c1db97ef1c02ea48e889345c9a49d4419093bfc3207cb60471c600471b43a32394e2509f403a81b5a95afb7eb9970e68a07b648bcb237226dd015240eb80cdb288a11e9ff3eb92a350adb887d01970e2d7b1413be3f811a5a4c2911484d926994574edc324e0aa4d6579fcec6b18afc3531903f8b42238d295fe267e75545c02a43ae84ca0e1241f80e7fd71fd3cb33f3528778cd6d9caf4a7638b029c0d07efc6cf93b7fb03e402b8968c61f935be9987e76ac05fc4e88afcc658262a94335253b161ebccbd2ae3bd0f7c17977e7d257be6c80e03422735c113bc82d38f503a7a3ea1e59f23238d362b5d9dafbb12bbdb0bd514d0a87050333d097d608dcbe830f39d97f132a4d36653da1865984d99e36184c994d57f3f4ad0d2944a89d0c01230a4da8e55ffdba8df1b46e58e50db514f85473535ad275e1ebc0026db55bec7ba03a6488226d9f0b55022030b05a1373da74d78c967474a16b1bd05b88ff013e876619274d1ee80cf3b98c2e07f1c610690143826f5f20a7fb9f8f75ebe64b4012324f405c8a08222464a9002b34ef2eb9672739aaf77a78a53b58bc9250b80f3d716b53552e9a48023373a64eb224534a8673a6513a5bab49b2b7aec2186dfd8e9013428a4b7496e2c9e862896f6dc3a8b3287333951fb8675eed43fac568961af0779c962c4089eb6ce4d2e5dbb73355ddb105c4f9539550b0ff8f085d19bbfb9c3a43abdc8dfb361e6bfe318cc4633f292d7df276bf2506f7ae12367f8907e0c5af7029bad9537b6a00a6c1d4601815cd91ae77b4eb24cab40f499183016dd65a761f316bf49b5570e2071077f562e42d6f896a4b9b3c8ee4e247235b5aa6a858e64619496d52e67c56d94144c513ed37e1ff41de0889642d4a85c13a4c503705013ca96df60c15cfcb6b8a2a04a8e18b1f4564de0863127cab57f149a8eca235c9ff883e53bd2af47a5576561602994958de810dc67389ec9fec5af9bbd714955dca6e32a52dcdd85e2fd477cd14498b3dd171fb12890b455eba70b3c9ac6706cfc5ae630d37d56b14eb7024fdad0242c66a12420b0d66463a55b262f3a09b488d16899999652bb3250dd9710330bd5ff4106ba2d7e1ff9e50ba0bbd3b94ef64ccec5256ecca1bb435be8aeb81640730a6b69b3cc3a0bd66a9f849e7020521675cadac13256da3f84ef7f8bab7d30866110d99da021542c3ca0edfa789365f2cfaca3d074efc3cad57b9200a24fdf816713efd9c23e0a5a8130f51d355b49e8a14c54f698ea809240b2e0577dd90a7892edd56920c29b38223d25acb2841b01aa090e485aeb17a590d71812c234508e3f7c960b4a556624e0e3e0a7c574d63ecbd0fcd58026559a84065900270be75e519ec767b9586a1412100ed826447a4715d1301606337394dea67c1fbcf774eb7c89a24406b52f0e1419e3f4b11c24d6757d36bcd7d948b806e00019b60bf645a1b8b28cc4d4c80a69bbdd1a0edd2a9c7e7340d925f2c6b916675bbea6930201d6db3d28bbe5e0984ef89f1bffed575ea90f765e9e3e83f30c1a7658f0e7cb08335ae23ed44743064faf9c044fd33566eacbc8de42d9929d7fdc2832725cdd1690e296454674b49c2ffcebf8f12ce11114b2f4917394c2d39634fa423a744549d8878c030810451f3f0ed0023d39f67d5e3043145780e2e6439c6a3775c82864069432319e799e8c050b6541d6ce820bc620b8b15dc48fe13cd963a18d0c9ca687d3a981788d9460520714a13ef4374cddfbf55587a2139354f3183dd1369e0966322a46e0e4ea828a9624b545e91ad282dcd85223ddb5307c04178b92dd825e0ec0737bacb267e5b7855e5c994d7f03224d2b53aa0153c559aa17926491fecebb041a6a9317212eda8ce1709454c1268a7a1edf4d2c877d5c0195e49bfea05af44c302a8fecabd3e8d7828fd3147f057d741086c83537413cd0141a6c3ea109763bc30efc714cee5e03e5a4b83cf22c51ece55a969ea8586261dc8096a86c5da2f2a4d0e519c8f9efbff07b4d1282898cb14d27248b0bc62ab611ea5afd6b55fff6f6355017fe77afb1e45442e5153a50e5718ca1051b4bab8501108991d2a954c9a8fa571435c1993fc2f75ac2f44a92e63040405808c31867fde8a660771d055bade036fa79016210caf559292388c0b18908f55d98d7c098063c0c4ce598e28eb62056b23933d6e4109b93e8a72fbee152bef5549376d16742c6d31a5f9519237c169375ea4183723d65350ada54f2335d859e2c7237638be007b9aacb91478a77749f70bf1b83ea763070126226eec23482c63aeed72337dbee1b86f77785881a4d51c8f3ed8f117b9980eeba6d93c28c10e2fa68b476824094e2c8b0ecec083e1d5b96d29e6726f79ca3b45e72695b9be8a2dd95cd737cb6fead48ff0a1881008020327e1b6265f84cd5acd2f06e3961594d33fc2972860a4fe771758685dccbc9417b6821707b590c377cf71da2c651ba944b59fa85696fd42731785ee9043ad6261d3f2abb1ce80d258fd7439b08f5c6ad0f3bab012c54020de83d2cd2cada1b7f4fa63359095dd2a8f5951282cd7ee2a9831aca0532cfe3e8a80da08f8e6bed50b6f437707f06193ebe86f0df6859ad6f4e6b193dfe6aa3286748066a619e09065580761c9f3a4f432844644ae02bba36c501440413e07fafca340acbab4657f7922e65480cd112d011f1e946fd44427a618b381f2688019849a20e913837b57a55931e1ab8ad4a0d0435c0da39fe4008afa08621c3799d64692d86853ecccd2d1f02eae4b1bb1b875b75fef7e92308415351fc06d221130bcb21a637bc79c320b49fbd67f324377224b761fc9a46441a974b4da0098a962c734ec1b53c09350850c43749f57307f1fc96b6ed9b8591b7b073cb0dc87c0e28c38ebf61033cd7546225bda65247284ceda8cb8e2527f68eee4bb52fb8e7689c6cdfcd8c0970d2e466d1d459e1a040a714441cb5a99280ab69b85bf04a95960eb46c3957533df7c66006c24dc6b35ae3130b7787b18dd8ba9ad456c88d64fc8573aafc114bdac06027303be48bc82aadac491f3b2fde8510b06d31914717ef6aca3ef0325bcac344b22134595d8124c7a98ab3bca4568042cd7386030846341f36021ff9fbccac4ddd4155f88284fa22f85ac836a32700c84afb672e2120b2a87ac097528565cd97439de6e44cd42b072bf7505c2cd68b3d6c20745e765c550ee2e462928437cf757638b9d2c9246acc824c59a5ab7f541aac0333146f1508bac6abe12bbbc25b6fd6fb5b78dfdb401656ac47289b940346131410174bc508b648ee05948db8481eb145dd1251e8a98d40cc838e41b1a0613674753e4ef934be6adecdd88b1d1cc5c0e3af2026b8d4bb764de0aab8763410a8d32727e71ff4a6ebe0c0bdc3b199892e8d3744f76b04823d8bfea6db7630f56174218db6516b27f9828a9a2f6e6c89139b6407bad21687f800ad7aa1cfc1d1b6b553bb57698101e092a10d37adac9a0a862c3312e4de675f99f97585608bff01c7a1e921204af9a7cfc301ded3dbd63e7954246ee2d2b229e1e27a52f718eb3abaf381934a698ca16b2d34293279a14e5acda666f5979456e21fb61bc33a32a794f16865ba656c75856f87605165753a5b5960b81e46ccc7912a77dcf828f4854bb2c1beaa16a307a4117340d417b3da993a2f27e19345c2b0d36abac8a60dfdbd5ce5e53fd91b5ca442e459f6abfe15202268e8dbf8791d631b027853d10cd159092f66d08ba137a5135357420c880a988c439b4c354a4d91c3e7fae52c046bfcfc5e27234963ba148868bb6172ebf5b6216025b89a275ea9645481d6fd29dfde29f0851be2e79a703ed7ffd7ef6aaa55710542d9663bb6fba52e1153f15f3525ab3f931bb29df48dba3152b2e699d358e476bb6beeb75f86ebf038cfe04b0a00a6e3e24aea26636ec3d14c53357cdac991adeea8a0a3e57a5a68d3032ce47355c8e03446b92426af4531635402d46870558b37d1a107b6c7a7dd61e6e0269b58c269ecefc01cfc54e832e7033b28292e0125dc49722377afffba28cca065cc64b8708e7c259f2c63c4ea9277cd2f116b53a1aeafbb886c332ec6b801f948d61d0cb41d28a9f4f9bbc8d34264ad769f5ffc371585df338cff57b504b909965aeb175b10697ce097a43c819a081d55d63b4b1ba17f13b9a92f178a01a7bd5cc9f5d91d726a44ed463b095f5964511b3d97ed35be15a3b5c161de687c046c6ad72b965c2d12d15408740845423e566b96dc1b88116164fde6988bb0f2f546c09b799298938c97ad98f6c738534f499c0e9b25c6aac1491a59504414a8e3329e8cf81fdfec02b22d10b53265a7e03e9ff95edc2371d59635e873a499ffa2a6ed7b477e548bd4a639233bc9959aa66447a6821fd5c4167d27e0e36f3592ede66b9a2e5cafa613cfa74220b45baf1fd89d7ce337ce2e2d823728d2dd4234a5bbe1bdb77babd9c6c89d4a6fbfa9336418e42aa1fb584d3c598818ce72a32682fba29b0061bbc04df50d840299e3da0b56c51f561a8eb12db00a369a4900b63ba6395068ccb45ffd2981a5f0fb0472612ac18b8f800493586f49664ca7d8a7ceca1d34e6f8850b14ba8fd3dbbd98c70ba382d592c7fcba3a094319f7279f9541948bf1c2c0c3c9dbab0a119c8d500a51f38155e485a2ee192af871c568d784de826269417918938256c73d41c2b99564a28786c209fa37f9320bacc6a8a26a2469ec44684c8a67fe4886ba81a34dea990549ec79b9a93a67a8198615c7f3f008be1d92ecea419a3d70f8e080aa09b9a75de7a76e248c1dd8d365d0ec09d904d6f5f7aab67e8aac6c9739712156a92e78ad0962c932eb92431f61e850edca88b59f7b824b5f68f905a81dca02a444473c071d36cb79e1f4830ec9a12489315c77113ca55a204f5eee1a3d00398b68c5fc026214526ea7fc2b9b9604dba4497d56eacb9a0215875ad966910365ebdf4182c4130c663e87cd4be62309c9d8c47f7958f8696970bfd3ee9fa942d397980850d75994e41c4a56f783fa4b3062f9e54e64bf1504afe8e99cc7684244833dbb4c427b7521eb36ddce0a7fabeab1ad9285894a9a774945893f1f561bb971efa73a98ff472f683d3f8d453101a48d9c2abc72f9d24c10211875997a5db45f72a4248a66be83e5bc5cd9d0e42eade453eabb9591fb269ed9463839a834ae4ed3298448e6a4f1966bf4276fcde7cdfffb2ff3def79294f9ca086740a5078c839e354fcce7b20725db3e56ab8b0fa880c82171ef80d2b1c2bbc90ead375e1894bb1f21d6a9f1fe71c5ae44a3b686ed4e2c72b8414941a0dca5de69c80d134d368284a67214ac923446ffa858b547fec85328712ee147e7dbda19e6d25ebbc2bf07951a6a017c5e948b174a315d0486defb42c7cc99e26216c1ac4859830f695c102f7b96ceea3866ac72335b7b16644bcaa0c86861ed949f3850764a2391eb83c9958cb330e5a424dc000a990a26340e46176bbb61db6022657dfdc369e14c398a4ac511c656421be5eee429912caacfe4926956bf9e8913e4f8eb74393a487f1091a32b17009650963bc79150c954ed16bb2e0b86e06c418f068143bf7abcb4393461f4c05787453b018db1b7584d53033f24f675f6f8e0282dbf52701d1f4b8042160f487b817a35916603ef943212bacb7d30ee3361f1bf44691e85b79eba51f2198df7a154d2e9e985fb8c1ded1e41ee61b2804dd92e04ac6bce5020c71d187be1b2a298074e3dcc97fbbc89e6a0b41d617af12fd28309a597fa6386bffac8de210d60fa6943fa5b6cb122285061db773f50958c38d858a04e56794e644441ea933f7d2a1fc6ab1f0dc582283be698e47ca1ddf692fc93d72a96a23823fd41690fd2d716aeef604e30e5ff19923a61c8473d9b4e480617919d14eaec9febb05870ac29974901fe2ef0255307787070ce7732a048f66ca4a354e2c296f85aa7b4d8d2359f7d5f04e0a05772bb24c3a3793af39770f792222c4bd22a7c7ddfcca5764849763897ac6541d1aa703fb574c41737fa6725181da64569240a875bd406af9eee52125c63165773a6bf17f4fc32d7e8ac68b2acd87bf184b9cd44145afa5b7eaf5631c456614901fa6a542ae11608bd6302bd9abc5c57f99b4ad43bafa8fa1c8da3d362be12d0e853d213e7ff4d326b8642acb9a1e6fa8c7035b6291425455b51497d3b4a4385104d22ddc86da1b0af5808476682ca13754db2dc4ddc9b397df504c8f13a6a094ac66168ba8e435c97f8bd9a49b45994455da17020c42c5730e2347394b479af01ab034b41f456966c3197a3060e6a26ee5adc94ff9502deee63a0aca5c510453c999be177ec1d71bf4c62cbff6d7e032dc5522b40ca6f15dc365b0bc1984f988bea6df41f2a45f38ea4df526702469c383562ff72a93979e0876a81222ed4599d9f6661c4d5932249b52b56983e60ba96e67a515b48dd26ba6bf8afc46f2326eda3478fe3aa7c9d6d2c0eaf5c6889dfdfa10091e732c642025a1121bd2e19c5cf4828a6735556d610f0af42fab9324bfbf242128ccccd0d02771f31c1d3b978d62471e48f2ce23a3faeff5321782d4d55070d51d6b5564228f16a32c2116a73862f0c83484f6a17f2408fd739ddddfebb42f54f707531742d5c1ae6429215d95f98445e474265c0a04ca869db67b73b020815ca01f76c51070a1182cda36953cc80b16c7df2d7527697366d0a5405f383c31a22b194a3cc86a9e5422a7c94447ceadc59c39265b1b23a00b4e94be39bbac2120632ba61cc8341cbf1f60a9982f2d9a911f98c2737bf55c4a1765daa74bd42db5b4bb4e76060896b909aacc3632df1e984d6bb8feace550ebe05a88ba17c3a116fd56b9171b8afc108e226f7f79169fc3d98e3491d0a731834ed5eaeb3605da6af25868b1f1ba753de85e8089fce4d2117a1ac0d5ff08148a69734c7fcd14e8d0334b7fcd4549ec14a515cdb2a89ee22283d5163b90e382a445191e37da3797db2de419a8f2795f1f369546f49816495abc32f7fc84ce6892749f6432678df0dbbfe5c214836aa47a33a57ea31b8f918c8f1ce7a70a8298cb86e24987a1d017d98cd1df7fee3365f60d18ec8513fbbd89622ea53ce5cf4fc5fce53ff633da247e4782d74fcc45d0b368960f20ec3dbd5f453239ad13a4367e9a7ee26c990ff4f058d59b58b5844eefe92846eed984f481790e7e3e5b1e9ffc5cfeb2dce64c0a161f8ba94ceb48ebaa22ee2da5c788471fe1109d18087c3b035213c9f81f5fb8cfcc0220504142c034888b3a63180b8c3e7328f84642b97303760c2e2eeaef850351034edfd6ee10399fe4630d10091ee6ac5185af498f867a168d244b5d7047d1d2abd74ed0ec2437093d8c5afaadaf9c7c48352ce221b988e5050c322c30920fc4f1b18ba85d53eeb6daef09235794ca786816118d081f74f3fc25d651aa4e4ef1dbcf1b4420b26030c741617cc768d9b913af34b28c38bd558ca2b9233278d38b4905127806d482ef153d350d823d81aab9e2b2141e342185e6a2f009e712136bcbcb8cd02b56ce93fea5e29bf4b0a5c6cd1212c393fed6ca3f7ec173cabb4ccda7a4da9d73187b0412ac85f861101761699297cd2f61e7d280043602404a1b84888301fad120a978bb3b230d91c2e10fb12f019708b3802b159e07f904d8464e2064a367ae2a401210b130fa4357d6414da4b078401c6f0737b321d7a40f99eec0b466f7ee2ea469cdfcfde68824e03813b5f6f9fba57b7bba7245dc2a53588e492c203dfda1c5ec3dfca9c4c3ac048d6f5f11a61ae92d8daff4a38d5d871ec505bd5becfcc9e98d656836515692dc56e6bef7e471d55883722b11d414b71d83146b66d607dfb29bb4a8ed3c02a1fac3af0bd4ef033af6aa9a5c30922a6e0e728fcce49ed49718e2bb8182024a1433b08b0d072736def2682e08ee336c8dc9754276dd25ed14bbab7a41488400105044c48a840a645a1213d8de05fefa1e91fbde89e011668c5f047d63fbb7b4d1d2d226524a99a40cfb097c097a094fe61ce14a1cd3b7943960395ed3e7a04a96df48ce7b9687c17b96ee859c4a6a535e692a85ace092964a1d1dedfd0fff48647dd994265931706ed24a43b28f64b09548f57e7d19459716946924b97ff1c06721bf3791a34791e1d3f087a36e052bc7d5db6d8fc3fdf6f4b7edbb328794737a8eab1b57bda75cf7306cef95424a7f04a724443fc7d58daba86b80166e09c4a2f469652b915e0375a34a9d4eeb72f4526b4fbf2e73ba1f8e8398fee348d46f24cb9f485de2b8f105ee518fc33d4a3ff75ee26ccf52e6947ea3ac8fabac700ca24ba58e4ef7db0a254b1249595bf7859c078eae8fba80a1405321f449a2c5b6cfae9fc3c7554e62e266fd1005fa146b110f362d4931578d2b58dfb5b22a49b6eb6c937e366d439fdcaea4a15d49b41cb01488db470f4fd9ff4630bded1aeeaea1254e7eaecc19e5e8df3617ca24a73f1a9aae26e7edbb52c8ca6f2bbf6d9fb30b65b10c52fa1fee2d50212a64009b6bb8a721512155d9f649558004b12b97b73d3436456b432c7f9a285bb3bf1732bf0b497a91ecbe85e41ee5fd890cdf448277e57fb889c6aeeaab870648492a2211b5507a2f913a3adde7d7e19ef4e32d836cbf528ebefd11ff9ceef37b8943e29e1402a14b2465bd4083509b6ddbff805d8dde522940a88dcbb6bf91606c5b5b3d2a0aeedaf685edf3e36c9f7589939f54e68cca1a06d1091ffcbe7b4e67fbfcd7069940066a6bebc2eaca4068748b6588f51008d1ae8ee09a7758316f5f2f2a74eaf14f2a04f3279db9bc7c0bcd167190dcc790ddc390a81f49967701ff25fc96d18ba4a7e1ff701c2465c5b04692b24492b25a5e76f5019bb22f9bcb5afed7d7eb7bcab25f7bec6aa4e5f802f7dec3d0fd570af9be7baf147204e7fbae1ca910ef39ca75a4e6381a9a202d6f53029db12b2f9b7a2b2b01d4142d81ced85cd27046e8fa1514edeac80228abe53d5349ff69e5e9d7b086d1ffa361f4a73bff5d0065b5943a3adca35ea77b16ee88ae5fbf8e5e06f1e8cee5578e5e8e2f70ef3d0ef75e997364fb1c1487d3b19477088b3c1244ff897b53f72be4789fb2bc0550962e757448af13becef7ddeb8c5e077c1def79dc246b80c4200349b29445537bdcb47f39215e2d43b07f473e1a90e476a069057a7ceed5dd471dfecf5f3a14e8b3126d4b54a9f88af4f66b155785ef51bbb2dbc7be0b926c7863c3fb20e9c3efbe7e4f7d45fa36b0bd330309a0db2bebabf3d1678d9db565bfce561219be9b95c461f439435823af9667903d7a2a8e465f496ee4fea3117771f9323c8ad0b6f45667c347654eac837a85bbcf0062afb1810f376d757206b186c93d69ec3ec12e78a2a666036db5950a9940ec3f15a2b5096d2b1d9d4336753901778219669c7106655d569e5281efe2bc711dd7c1883c665fb50b7471deb88d831179ccbe6a17e72d6f30228fd9d7c519671891c72ebe184674ed85f97684aeefee9472955362bdba05bdc3e0a533f437bc8119ef8f03b70ee43cb0fb400f04bf7005fa8ddc9d764dcea6ded65a6bbd32e7b66d9b05396b3577b23eee77c0f79166fad6a7a58fca7076f575bf3d063d9c1ceef31016d5b4197821c5091eb49480a1c66c270aa787d027078b1169c3ce623af070f13c68d2b4343efa34d7f8c1445510d121dab9b02a882801c5062bb2c17c80a470c1554dccc4ae30b275404e1451aadd99123068f6a5240c29604b89183738d183174506080acc49f88a95208d20acd090b8b4684688c0e8e2abd160b606e744b528a064a0287cb0831088d4aa228a1fdbaa428a151055f1049231ba5dcdd031b8eaeefa10a0b2eb4fc055a84d5762ad02aea2b22ea66c2aae438d3d39c13eeb0eb54e02e2aa5a61d7c7229c5df9d32ac5ce0febaba0934358961cc2fa7c8918d4589f7d811134d6779928f2c3faf00d2ed6978b2031c472219e10b13e8e480f11abfae00735d6e78196ac501429627d1f68c92a851242ac0fac5310d1c21300c12c5942510f5cac8a8330dca0b13e8d46108b2ac9420744ac6fa5893266accf14e4c30feb3b351154637d2c53e0f0c3fa50b017ab3ec1021f17eb13e90d5ea0436ff0021d6fb176725083568df5d522caa0c16897b1c5fa60bc529812b47c3802637d2f48a6d862e8e504d3627d315e694c55228327dea8b1beb116b5f1430fccae77c4b1ff1d195ba051762dc7164bd586911ac0585fa557280184a1d3b56465c20d1704b16a0fa4bc581f0ed09215c90888585f0ed092988a0f11eb7b87620b1c5c9614411dc10a88a8b1a80fe0042d595ac11b33d61702684911788b8c1e19d09222a03220604163d11072e08809c1ebb82d871042083a9ca4ac4e0a6b2bcc79cae132305f26c1c9ccc9cf36d7792280a9d01c611c943126819e496b68ecb5951e6cbb2d4f532604508b987cb142675378839f14ba306467989b49756fe4e5603032e7156dede5b88ac211c5a64151c488302e2f238c1883039583e53e8931c63f2fef617b3ff06c6af1cfeb87fa0ee4e512c43f9805d80806c246300b8230d0f55e1e0f36724bfc037e5c082519ada3de6d0300d8a34ba7fb5be9f4e2a9f42277e24abded083beb3bdb6e57dfde23b18fde2e7962137cbd525f4b8400f098192100e10d16217461c8ae58d4bef2bc97f8583bbeee2ac17bf580729847cdc62ff0f66073449ba4f95eda1c61e3975d712faf355c98999d7be0b145d8d8479f30b801fb96a9dd919c00dc848a7df479772561f30184c1048d0ce446063262caac62ecc31699507702e42426725b7c601b9dad5940a1da452944289e2439d174c9912a4b8e106dbae4486d9fdc9223b44d971c11dae7dd7e648a5dda74c99112049f88a4babd386f5ce77d6038a2a595d20a8f8b13dd5c096bad2b26d9c7844974f314de7b4f2c59c058502c2826b20f08540baa2517b5882de21ba3364417d125e3c07d68b8bcb8bc3421c2a4c6bd8c2f2392263f4d7a9af4208220088e304d685c3541412291483138381c3970e4204921d37ac17f454ef7c5b5f0a6b22645393ec76bc1a345912b9a4c26d393b47b2a62616161214b2d863e335a5a5a5aca1038700c171717971064bc18c77194d1d135a958c000003b00b0630b18e7e2b4123bc01c3972e4d8617237093365a666708d4881d5dba29b21841042082204000b970e1d3a74048087d025b151c3293323cc8c904551165382980ccd38b0360209239030a405165cd805093424d0dc2859a6aba02981a6846d08a64b10400902986db1461a68682101982000136e149836a18709263cc932d14d12482081841e3d9a0c71259450420903184013245f0d5635ab55d7031259c9a2e6849a9a56b7a96cd67382cd0927804b80b2590ab8d6cc071b146c421a6a102a499f86989297cecca8ccce98d16642b3293627040a3e5040a189d03e412a6b22bb51de470a3e7c14d92748655bbc9165578d2d561d2a49ad00da618b29a410dee04b6798f0ec6d53991324368d6d81c4f3a171b2e344e7855485a6b22d5e7b53d916aeed0f5a295b240088020a28a0400002a0ba482185145228400158625080f0a6000528c08f1fe10df9a245d11515f0c40344e85386479f662843c5cd21579df77de87bd287bce6352f7222372b8a47fcd104124fd58692549a5da9905d89e2ec8cdd29d91d49f7bbeabc2f3eccbbeafef703a218ebfc2dda2d6587bd6d7fbfb5738ec5bcd8229468faf41a9108e32bb3d56add106bb558f52fc9d99513556e28886dffbaaa47d8829a4d63a6a14f27aaed7a8a4ee439c0b63535e174a5b39aabe90d92a871c30d6108a960056eb4b1c3bd2f2595edefc2896bfc8855c441193bdcb8bef78a6c14c152515de8e08b9a0332687073557077d72db8c00b35d0d0810837d6607915ff1eeeee9b0dbea2e3c238d9a7cc09fbe4d1c3471797321963897dffdee7dad8f7b5880314ecfb8f8334f67d930cd9be4f436564b8b16f14590e8ed8f74be1cdec16f1c0bbf7de7b6347180387ed4ff28212b55a2d12b0ea9fa7adeab14f18992c0ab0cf1efbdac00b73dfe7b40dded8f7452bf6fdbf3760435693edfba3f0e6d6dc7bef901508218312c82007378ed07120a8c173efbda89d7b6d40848fed0f8251833760f6fd2fbcb9dc1a41c8b706496860c6be5beccb7101650900f6fdad0d2874a6b335b63ff668570c1a94fb5eeea342c6888e204612dbfd7e8dad008f1b4110f9a20c2790b06e1bfbde6ddf7bef55a2cf0fc38ced7f5d65535f9468cd81a1b37982c078f15004060a7ed83eb8c03062db4ee20f2f4fd11eee0798a7e83eb5b80511453b88960c0c293c00d1b381806931263303f6460f644e66588c51860637953999728393222ab8c0c10b2e88b04ab850011074de54c60590193d53b478a2c39419ecf369d4a04b76aa6ccbf2e7e12a17417fcdc60d342a9bca6851eaf3d854460bfa669bfba1db8ba6fe18e568bab6f21f9baa2b8e1684ae708c665740dcac513607c5cdcad54a8ee6a60482b0b71bf6f6fe9466575febbf168d0531a8e4931bf25ae4b83dfdb12b0e0c9aaa3fc696b2eb7bcc7fec8ab28076f51847fb536f1cd35ef2c8f298f3d772954efdcff501b92a89afeacfebdbf9622604b2ceff7e76edc13a75dddc4810a018904c200a19a4a830a86bdc27bb7ec53cecfaf5dca6ecfaf5e4924882daf8bb1a148ad0144aa5c73ea990ce0e4fd15e639fb58837e3689c10f7b3eb6f535c45b411edfa98873c846318769fb88a76d7a036580c3d52373d075d9318a1cf1a8301b571dfc61c65675214a5a036f8eb7f98c400256363c00ed1c463e3f6746fe4cb7c14d42663e05a8ee62a5a8510af5d9f83526b88804d01dedab6c400067239d69d4b1a65e7df3e9718a051f6f6dbdb72b43f3ccac6248db22fc9c374d31c697af858e3a366d7f1870a6e568ee6e5a939daaef69b9daa7c54e62c6ddde2a332a329b4fd3dfa532163dbf2ab62d426a3296470552d47ce4d1f7a6d831091dac3f62f360d65c104fa5f6cdf623b0abb0ab2026efa5b3c836cfb67a0ca66322f90549db3c6bce862fb50ebef515c8ded3fd8a78f4d87b6d33244005d51ae00dbe9924c6d58a0bb0691cedc2fd9d566ebc6d9943dfdacb54add8e349da967750d8d5dc98ddc06ecb63f5a6a53dc756e8acf56777b31293c439f1cc8f170b3737777f7ea6eada524afd65a6b996fa01ca7eb905d771661549a772dfd8a5110dad65a29b509c31beff32808ed07a05820b1411a8ef5f39b36feeefdf7f67d76f4376ce1eef04d1e397bf4768f4a1e8e00df0b185204900d690471c5111adc8045698af423529724f2bce70676f838bc09bf1b9167ce1ebdff4afb5ed9630690862606dae4017adff3e8de7a08b0fb7b1e39bb7bfba6e93c7ab8b9953435983452b4ad29696ad027d374d3c288507646352761c328a2e9a992fa5e8ebbf7de3c82fb578fa6c0443e2ae37d2830840132fec08a5aaaabbe566048ef4712fc17d2f42ee4e95b449695d2ff701892b258603f35343531545aa5854fbff07bcfa3811e8d466371008df60007c4c0f21e2afc42965247c7f4def7e1b0fc1ec7fbef7424c88a4a8bd582e118e4fbc20f83360cc3d0c4f2e18765cee9597e08cb23bf0749961ad27080baf3d7308887c9188afcb8696b68e80c0be1a6f1cf7b1858401762700501d2bd4e1e838cfee0e8e0e3780f8a5e6a9bda3efc212c4cdecd6ddf71e07b8f03be877ad0fbb0cc09df2bc3075f08ca83017c965248089e564a1d9dd27fdfc30347fa0b492592776915687352103e2a736aa29a9aa4ca36576776d5f2f67456216fd5a23c545621cea5d4baf41e459e449bb24255a8c67da0aba788f5aa423556838208d081a3277d0ee81854859ff42633469f50059f8ef461f01e2c8508398203be578e54c847ab67bd562caa5015aa33a8585421a151f7b9e02b910688c7c07d7e1ad27059c8f075bc3f7d0df7f3b3909455635732780d2d1ab932c8578e172cc7fb3d4e773f272cbd9c53194309c4a66c0db25f89ac2c4c6a6afa9b484a4f9415a4fb1feea4cea84d915d816fab942d649df3fe5561b6cadcfc098bd06715aa4c5ce5aab3cab6905799ab9c05e47b6b1fa4449505c4ae286b46ab15b97ed28f3e04fff3be7b17eaacd62ac90e1555a12040aa9026ca7eeae2dbbe7eddb9307fefbd579b2e3531e4f73024f8238912c911bb90232e91236e2147ecf7efbdf7deedde7bef353d65ddaf3ddfaf3c0ce09bc05fa1424cff95237d90d4f75e7c6f69bbf7debb79499b9b857234d58431eabfd7393d884da6adfbdef438df9b50ffbd973860cee9c17cc4ff03c9911c73f939dfeff1daf6fd09cce02b548cca8a70010931f361e25e990f8fab48fb05d37f8f63facf2b7358de548e389738dd8365ceca774e06293d8a147244084b39fa9b1e7cf04fa49095727cc1f4e08f5ee298ca11affcf723ceca7fef23e6216b80904819c0dabd17863d7472459b3a927be0afffd527f60388f8125db496138d51225a44fab3b6b61749ef5bc8ee5124f72792c54472926857d5f57af17159636245c15da2f8db77cfad68da6d37160b627abc6331d6c6e58fd8d5ef7a45877b0f9738dbebcde376893c1284f49f05453a83ff14c717b6d70f83f7a5c7a4ef1a0659f11f255d4313d331fdca7b38bea0bf7b1cfd5d9973247f8ee9f5e712a7f45c99b3f225fd1c59f24813c779d9ee92264930406290e103b31a51eb877dd390eb60edc5a4235570ada377b67dbd5359e2dbd7a53fc5a7f15c48961749d3b790a82f91e0af9cbc8fd44fc3119756be1f7655613f8462d02edda2e956c5306d770dd707fafeb7f9409f2fda947507d0680fa0b1a103e84c0c96e3b41645d3a4a1a9a9b9610d23f6babf5f431afc6b701a1640593a3aa867791df04defe588cb20ded36dbb72f423414a6f9f86e5bfc761f9efb9d3d4a6b73521109a02f627406db86dad6729a56d15a88dbffd1bba72003dc3bd42b8bd8cc14372fa95dfbefb1cef515d99d33df87d2d012c2c27f285661fb3a912e828153bc6f7c3d74b2e57d9fbb4bb712c9bee5477f7fc4f70bea8223137856433540f7495693465ff6ebbed2c065d5d9a7232bc9b97b939a2b613fafcd80ba1c0f14567ece3169da9ae011662b697ae172afefce92cc0860b303dc516578c317698d1e90153998bdcac2b981a60c1dc218a87d6928ffc51db6bf5d0431686ec244c7f4b7007f5b22b5369513da391178b81ae431f33954ae1cd37c54d53d3341a4345a46d5f1755f1bf44d4e6bee832b10cc9f42026431436f172d5ccb60ff2f80ac583f2f1f193e94fa68c83fe8a8aec2ad36c91e94f7f2aeb503904a5566cc2dcc7f2108e5ddcf7dddc3cb021bbba4e227da2e8720a6fc0ee002b5f62413fe96bf842851e7dc7c2e8fbedaf93b492b042523a73a2760d5b4e71fb0ab43cfdef0ce276d4cbcd50a63bf2f43223181e2ad19010de4241a90efdb8465825d9f63fb7e0eb654ba00fb5a974c6bf5ba214c5ae54ecca82fa637e4b58c54bac4574115d5c5eacb516861b7be80c92fb43352528930d9e3ab0d83a665b070d5462c87a39e43d233892a44d9fa3f8ab8783977dcc55e3e72a03fc59c2bf0e8527eaf542e48be47115f7f66588a84d8bc784ee197281e505cab75582890195688f711cd8085ddfdd9d1c2f0e7c025ddf749f52a16f7d166d53e26c579c03cc1fde64286eea1a42783302ff05c9d8436d30a5dd534ae9bdbf9d393e22fb44bdc8f3a3d9f0c6cb5ccb3437a1b85984aeaff3bbca3ff6b19779ca3ef5d2098d7ad9154b89e2f194fdd3a9747f99af584a54cfea9998ca9f277ba4027d66dae973cdae506f5b5a50e50b7dccf484a699062ea1391349926519de50374b1a9db1af6f0002813fba8c967dea28f40fb5f1b68589b0419775d0755657c905ba844a17a360187cfb2824aeda8292a8362126a827ae1aefa502aa60045472a672cb5c72957a4a3f2557095f7c296bca0bac0c633a84f006fca133d66563fad301ea086f341437ede700089f7ea9f07ff8278208e14df8df4c787359f4bf1146086f2e091bc67704fd3ffc2381049ad2d38437fac32392e38cf186378c3dfb5be779dee6791daac74d5411377f502f3765a043f08660290449e4f9d1ce194aa5255f54d97489174fb6099b2ef9e28aeda17e4ca009268437e1833564c17b2fcf17247aa480af368548e3b798d4813f9844c2a6d91a43a40e833fae3a350dc85520125779199dab3a1d42d406bfcd016e75c80b57d8362eb16bc8baffe7cff983fe1b79e6a843a70e2cca5324d29e69a511346247b05cc137a846eb514076e52cab63676fc87ca51302d1a08812d10f8840b7ff4c5ce565945c993692e9b3e4ba1b77c3715b783f9397a46e8631d07900f8075dfff42c7ffe0a31fb6ed3c7ecc7c64b93697645a389fbf44fb329fbb317b2a91148c39c1fef381076fcb39aabb68f811f7315dd2f137af234907c999b4c5ee89fb849fb58f83fbc92df67720630bcb91f86fe21393a79c15545a3ae71d6945c74660a0dfee02f34cafbfefc1c25c4b6def6af74857a51d40ff4862e3c681ab539a16ad4e68bf212b35f08667b7bbce340eed9f30d0c289328989b16f50a512f144f0faa88abc2b78ffa0949140fcac74d8bea411541fd84a857929f0103699aae8d57d37c058630d05f8f5d8d30a0848c8e7aca32955f4f1d61300919bd4c427cd3b34ee5109697e707dbd524512da448a25e3e00f005f6ecfaf83f6653f76b6bdfb2856ac3f6f28576dd231d7d7eec635fe238ad45f1af69965ca813184aa19daa505f02772ac803ee8864e9e503b0df42529b6229c1b62db9a4e8b188abf04ad32cca69ae8b6cfbf6f4a6127543184c8f2a512f20f4595d44fb2cf990236c2ce2a67d4db3ab92cb53f6692597a6955c2f60164b897a1dd1f8cf8fd178a02fb5f11fbbfa271ff394fd9d1aa943ab32a3223425cab61f7b987d56d70bf96c8bf2214255a81ea8b94355281ed4ab6ea14ff027d3fc47177f2ac9b96a5c21669b9b7e25c75beeef0490d215cb53f00574c552964e1a8a6dcb924b06db3e2abc2985510c651ab5f1605e914dd56f71ae5dedcb0604eb144fd992cbdcb7ac4361903e336dec19617675fad981ee5af1c7f6891c7bbe1442284ee46822eb0e3fd5f5b3edbee5d86344e73f512f236e965caeb23ae8b3e42ab9dcb42f97097d965cdbfefd13f53a4b46c621ce1168db2fb95c75775eaeea71d5f529c14a3faeb25f32e2aa0d0889ab92b86a2bc54a325731f9d9fe27cf847cd90b7d2c6461db3a84e88cfd972774dd27ea157b651440d3470a043053220480c7cc0824d0942000137a0c807c558e55cd0936386250f09102012ece5ce77d254d837aa15eaec2db3e8ac7c8b68fea7195b8eda3622826beb299a17c5c45653d28b22dca0890927da23e191a5aec132543c1b6fd8c6f4ce62a7bc3b6570791f67a248b8fcaec38c6ee60e54cba39abcbfaf2d2843eb90dd4fd9db8e4dc9cb2aba3b1611706a236a7dcca3a5d8ddab4ec2136a53db8d28bd1194bc5cf8e1458db83e3201ce47285f613ec544422c2ffc55c582065db53d1e7f24367ec934e44a4221dd3b2138cdab400bdb45cf0519973078e0dc4decb73c9e16d29c5ae2e0aef8ea688629f249e6ded2f319aa28588ce1831c5784c2e576887d95fd9a233f65dacd022163b7079de25442cb6b53b5c74c6e640fb9f31b36dff2c69db7ecc2c86860386a348d9a2362d1e13da14dbf62b19b377d4dc65077d725b733cec831ac65481722f2a188163c71c26c1fcf72505dab710faac7667dbb798c762fb83811e23c13b8e49eeb4edb7ef253d2674ecbe61b7bb6db537638c31a56fa9c532601d88d4de6bb1bdce6d6b3187b105efa5df0f374397de7b33b4c2d002866e866e8668bd19da74f8bc861a776aef575baa606bf08b2b2005670648c95b0d5236ae06299c5dd5db793548f1b85b731aa4988f1aa72aeef36f406e4640feedbd8df4ab42d9e36968eccd3f340fd3bc186340cb3cce57dc81b8d908b80a0c0f600fe0818e13faf183ebc08e03c316382236e79cc419515471861128dadb5476860ac43384d839e79c83802da1499bcace70c1c08ca2fd26918c9019253a439f4b4229a5a55b6bad5b6bafbbbba5ee94523ad2d1f56d3d4523943a116d531a545bb51e740fba9e711d665bf4a310d5a229b17d7a6bfb3e5d67fbfbce769eedde23d6764512b32b0a258d14c4808b22663041c3867d562130b67b6dbbd316314eb0851a32f009028de5ad7dd69e1d00ed5ac4633625630ad9e003126478d1840d5610f65923a5b57fc794e00910489ccc76682c7f63fbeb196c772d6060f629b3839a083cd08107b42945b82dda95cb7610b4bfef7378f3f9b8d5a6ba40678020d13543df9ff7bd46734bafb959392fe24a1f8a122c4089e226dd9de778e5e0e1bad46c73a959979a71a9d9cce4363c84a1298bb2f0df3f3d187d0fc8729cd6d48365d8ce97a49c4d656ee7c75578767e9ccb182e52656720243b67bdb3cd4445f2d7925569223fb755a0fc1e1257599d9ddfb338ecd34be2c976b6af1ba336a89dff85626f86c34765cedaa24baa38a2c5faba32677b5c6b60832116fe212cf0878c38d7e3fe9623cecd7f7f080b24e918babed39ab811f1dc14bade2c7e783588d56e88bbe561499525547665555abd1e348dabe8aa7e0d2d9f86c69ce8c17e7d13b66949a3532ad0a7deb4d2d22381ae5e1874e6179f77c4f11e7cf05eb034ae4065409832c2603fb014e2bd3f659d1bf09df3e31a72650b2b630ba58dbfb4f10fbf40f798fb4c96630bf8b9c7cf951d701910a6947626a90c083f1b931928e9ec5ec54765561c101060487c97ded8ae4fe3c3571b8c8da05d716d965b6cbcb1cf1ebb3eb54e6d6a05da0e992fea4a85a894d21e74c6d2d03f65f6c3dc7bb913dc20c7e54cbfeef0d6778a7d10451fb4c796a12b6d5322cc9783afece1a97b2fad01b23b51864d53cb4586d1e449098cc3d5a23e69aa6b59073bb480ab42850555d05a6541ad48573b7244ce39e7daac23826b606c351d6ecd04417c10279519b14f4aa350645476d8d6be4843aab2392a1c11cedd1b1ea0d2a05aaf7eab01e82e2f404307ec4ec2eb481cbacf191282ee3fe7dedf820fda8eec3e8721acaecce17bd04b1aeafbef207b2bbb9248f75e5776efd51c72e8bccf81e640cb1cba52ac7fb3751fd873d057dddddd9d5ab7d6ba3b9d711ae0bb3db523eb760fc9d581f8a8cc496bd6e24cc399ff353434406cca7fc41084ce6ab588ab195f8c61b6c0186329d2c062d7d7565cdd45492349b7a92c8d265ab0a4b361f6d910cb54f45c6143b5360d9fad3795a5b1c3aa4f4b21f42bfd5a8eb75e13ff773dd0f54f707253436798e8df67cde82f835d8d9723a9d76c775bb3ebd34fc14791c0f83ea6b4a4ab8ecb5b477ae94f80f77e3ddb92787f5e2df53b72c1d48a338c6c4b76bb8637a20e349ddd2c3e5a560ec4bc181294fad30d7bd53fcecdd29a2014dabf7e767f647edf1dc97120e6c590f062b8c74d0b82d999ddd0375bec835f6e5a0cc345f04f137de2d72de2668f5de11f0c7313893e31106cf5fde37deb0715d927773d55ff929b1251144929277810448436a304ed9048281c95faa3e7c2c3810facfa618e251f0d003ab156ab3e8823069d0c3e118a0d8a9ffa5e4b13d7881d58f53b94910d0a1e3896224a6aecfa7a0856fdede4e5a00756fdfc0561258bfad85b834b52ffda1d844fb8a0bef531ba274e50df2b17a420b45a2860d5af1ef3bcab1369ecfabad6d515a1a042d7a7d5d23dc4569c5049a82454122a0995844a4225a1925049a82454426b0dd1d0d68668684c6b42d8100db7d6525ae25cd9c0f8c18dfbe158876768eaa62dc3d80782ed342d2738e2a75dab69d7b13a39d6ea64cbaee2aeeed5c9955d2b39de7bdad8496fd78aff23bd30a133ccae32605344a86a026e5a17b579d915f736ff6c9b77b6cd3ddbd6964dc97081bbb564702217b01cb7790d915d8d75ac5b29641b5d48e7ee5557e5aa0e9dc981ced87732dcf5921b0a5db79f3466c3a6ab7ac310341f9c541db0f0e1a6b9d1fcd7b4745c40497cf5f2daa912f381fd20b95e7da8c0a4c64706fab0c0bf596badb5d6879bd8bad4d019cc819fdf7b1937f1e314fe8e3479e49c7326471bdb9c4bd14dfc18cbdcc4d65a1c7313e3188ed9c7b806cf6e150fd6a09d9c3bdc615c815c45ffde0ae4aa0a44bfbf5f836e45e2fab4ed572440e03e2b103eed4c02b979fdebeffb953c6d17ecaf824ab6698b2c7a36bd620638d8951c7149c2566d1df483961c360d568cc2677f18ac41bb5ad1a2ed5a6ec0370ddbd6c06d8283fd6d6025c1ed24bda20995fd716025575afbeb4027b5f061dbafe468ffb4b7ff3cb092de46627f1fe8a4fd4a6eff69f05f98d033bbaa2f9b8a2288dae0bf9f637615de23a879ffcc49f6cd42fb56a0fae3e611545595a0e6e57e94a81fb4415c4b15ccfbf4e4b1ef8f3c1cd140b26445e2e6fded0a2d8076ad64b8bd2774cd000d4444442e2cf1025d55266aea3e9088cbb32a29d5f2ac52ecfb67b7ef5981f4c901ddaf482ecbbe5f6b758aaf605e354992ca64b62f6ddfbb652cfb406b03b7cabe1793f55500e20249caf785314d4d4af3514a29fd21b56ae0a3326709b04deb77efbdf7de7bedb5f65a6bb99577bfd2ebd10e76dcbdf7f280edfc27c8c3c7cd4cda5fedba128f21682ae4d1135ea1cf98564c2b46e7635c76e57dfe98570c8fafbecf1fe3e3aa181f32c623635c36957f2363606e16719323716c70877bb4a9ab625c6e669297312f37f3b762beb28ce26639e4662e6b6e5aa1cb5a1965c7ebdefb3576f5e312853bdfab2d4862974dbd2e8db233153be3d7ce38f6b6c24647c54868e71ebb32cdb469b6f39f5cfe6f3b57d8d8f9c527a619f7678b1b3bff4692407426c7b49ec4b85ca16f00627426bf8b153aa6b5e3d53d8d10b5f1efcaf32e4164e7b3aced4c234467f2fd73078f9e9d7fc76b47cf8eda8e28018871e4172410b5e13eb72e50cca632b9bc4009b010061f95e1ba4d7f490e1e68ab417635d6727c01e3cf5f6b99cbb16e9f4359b87278880e713eb0400b7475d694fd5a1bdb521f6c6b8fd03464adfe32cc9081da23026d408d27dbeaf859af57990b54556398e8fbf08e3e6536c53a68fad4cdd447654e1d44dbdaf08603c3f073f7ead262689a0ad9822007860f565c5d5a0c4ddb7ec4be0d0cb3abe4e2c11018b3e946e341c935b4e52a99966999865fe3cfb65532945ccb43794a26ca4555b6d6a6b3edb80adc5e1bcfe6b3652e04c2a12b832fd0748376062ff6559790beef272e67f0a8cb0e1ffb308841af0b7187434c4b2eef45051ff33c8fc749da955cfeb58ff24353bab00bc32fed947636d277c965571f2bb9ccdd8ec33be8f031115d92c14dfb6ddbc602dbaa8e9b1474b2e4f27411e83ab812b9cb5fdee33e5ec457a85aa5a2c6cfb65f8bc0eb5f912eaa3b1e22e0a25eba08d330985dd86522a92d2b1082a36d695cc77dcfbd7d0d45d34097a38ad8f66dc884067f7eb67002e106663083411b4ce266fe0959d8f6c52e3af3a259d80e2e7b87d0a097b5b502ddf2903cc17d823f25239808ccf1f58bcb24586e12a78c3d3b762f93302171133412e3bacf44a24747e8d39bfef47e4ce508034a080b0b905d8d38a65339c27012c232d53006d39f9e8630b0941faafc7a4e240c08e7a0987f451f958fca57252896331b1500db37b32bd3a35ef6d3015b60ebc5f57c2c01a36ba8d46c9666410c95a21100000000e314002028140c084462e1783409b360593b14800b7e9e487656194ad3208761180619640c208618450c1001909299d92000a07107faafbb51a20718060a452660dbe5806892b4a1496bdb1862281a782837682f0561f25741146fef711ce104eba12b33ddfbf8fbbddf8f84a24e64920ec0f0d4e46c357b4b8816180372bea0c14f745fc50758933538c432cddc8287b5c209f581723f822984a92ee7a1ec8cf6213f7808e3d9e855ac5cfee75e17c78830b2530614093085c52ad47f083379be4e40392149c4f187cb8d763bbd98c3dfc70e98f943724ca44607c7b0a5c3dcf434fe7ba850bc1c9d879f9e4291e4b2edb3a2bcd5ad3ea613422b11e0ed8a5bd425dcdcc3e68a1fbe94ce169296142d6d3cdc0e8263758baa5bb7c558f4be819f25ea365164f156286f8a89da1ed3fc24c5d8f78e1707db8d6ed38477d705807daa315910d315007c83c9a08e2ece2f7d5956a87d21989c239c3e287bfff65446488fd1aa690b516aadda0ac8ef1a42cc70e6d9d435af783e8e95f7d2bbef7fc2776e75d03e9b12b0d7370fa81232222240a9eef4a97a35de7ae6079683a48579ca00a004ae8d6f25162044c8d51da4af3db33a843a113de9ac44ae72a0c6569691a92211a0888204731871f5052280727d271b503c62e4a7bfee90e6483c27ca6a05b7466dce935e6d63b5a0c186ab4601b0a0c99769cc73389090b9379484d346b7e85104b1f4333d2318551c2665948375c828a61cfc9caf1c14e76cc5c3c96bb5a2f994e63f93629d2a3e111af812247288d45189169a0886747d8988bbc9af65abe634381b5d9111499ea98e2e991c01b749e93d44ce87a2439ffd1ac6942063898e3d054570fdc3fa37d918cd17aa1e1848c682650395481bd01ac74650c55f5e0f3b098b2e0435309b1395a2696207536a4c50d22e3ecc1deb3cb7e7dce3bbd123a7ac6e9b043c5b84b7e971cb9f6bd97d681f96bb554ac3529e71dbfe690daa4f2267bfdd5f31b7730e31bbd66ac4377f1e53a75000bd77691347a7aef9cc000cc5b6ebfa260b7aeca25a333b087e0d0f576434ca7cb53980bd935237b050ae106bb7b80b837eea883dd7557455d05b67113b20e241d8bf67b54157a671b338f06774de732ffcc462a6c2ddb6fe3ab7f4f6dd86a611ae433b0b38a50329c567838e949e440a20b92de70f298d8b745643806d76bb6610ad85de34e0180cb09caf17cbdaa34d5b2d0a8a960cf4c1ed9aafeedaeaccabbb9cb6ae91e2e7af12ba109c81b7478bcdf54a558f6b44fe0791ac454b1e6e0c3ad2d059b9634d659deda9f46f9efa6ffebf4f3a8108d96d24e32e7d7dd5b7332808a639f544a4e0dcb89c541391b1547359da5ad2d40f5697952c62c8f81c1b7d50728212ec2659cffcd471c738a16afa1fca14e408f1eaa1e82a88754aca7251162ceeafe291401d62f57c03b7cfb3ece705dc7e82bc42718447f761551d627ff3943f46680cbbf2efd0a139df8387e236ccb3c87319d88e67cb49cf1205c5fd3dfdca192a73a450177baae1de004155567c7ec4f3b1ce94b8eab15dcdb76ccc4d63a74ea4f6cfb96a4db55847e1f29310b13b5f629943fff6042c9e12cce6c9543a398a699d47362c130198ce4439c5079d8450fcea6d1c1d005f9338ce0227532e54592582e9cac45048d4aa75c8b010dd97fa8f28a063627d591e7f3b94f6fbebc40ae8931422c134b9a9679199fccbd092de966b86b5daf0ad191852126106bc070ee22edfa2a39feddf3600bee5d2273a2527d8123f9995bb4e17650a9129bf76cf55dc8991dc621da8f9a60b3c4f0d2dfbf2b782a45977e06af0159f39ae1f9d185827a1a9836db10437bddd17418cd518fe9a3c109593172b0615d666412afc28a462183e783d96932b4fd42d2a8c45fe7541a538feea3c48ac7fd7f3f0ac135f64c7db9a3aa17a5141f9eb78ccf7fec4a261cbf6c9b1568ae33b6f084de43db81cad77ab0c5683fa6e49e022e5e28c8b7fc4d5c813c1930e05ae77684666b7da6b2c981fa54ed53d67acff8333eca10b9eab7f5f83d38fb0cacdecf193b225a134f95e013a837dbb2762d92a5c550ec4fc814e59e542f2923a2b129c5298f75901543e2bcb31cfd84d000bbb06ea1cb92244768305525a62d89d6224fd3c4bd2e2c9334ab819bf5f4f7170ebb416420140d512503dbae5f297678378b9237eea1212acfdd9ab43c0ff99a3eb47d71609598d15fa79f44a1dea842ee8d259430c880d68799b0e0d24ecbdc40a7bfc00b32be7db66f9056e1d22439ef0b7b8a65bc520a28bb481d2135efbdc1266ad330e3780a461d84b5ba5eb7f2499063ab24aca95747db81efe1c9bc9d5976f03c0a9b94b13e108c47236271fc36a4fac734236dd7a78dbee9a5d0ea0876ee33de1827765427461e609d3fdb8294878edfe8878acd7320ab8a3bfe2caca13beee1aa4d0477b20ef84d20a3c0a1decfdc0911e408e4b5db47da7a2db2d357ced5bb5bd1fb23ba3571e7ef4fccd920ee04595af5c4abfe63ab77807746c6a1353bf0d340611da4b1ff3e0ffcfc0a6d55e6c1f860f5137888d295f09517526c75c67309e9f92efb12b4c2c8aadc57ece98201010ecb6c54e1befbd90d2294d5e343b17177a326e604b85fe639bd3ce3b71f00ec935bc2039fc04db68f7e5ad6caf96c62790fd67769549c9ddb88a794e8ec81a29f48b5b0d81a41cbf9cd510ea2b88a823f934a27c6f648ba21beac28b191440a8f9ccd79e79f5efc9a36460a71f6544951d02a3e6aed5ab2d939477e91f5fb79409abcf77108b134aa84571107656faa724372647925ae206113d73adb5394835ed12ec9062a986f99ad93abfaa971c996d610e42d4064bec2bc3ca4db33e0199271a13e7a1deae2c7c481394ed3fc2809ed9ae2a3f8cefdb820b07b84221b0332d59a254bb21bf270efac3cf75e0b6d86f56491c1489692819dcd25b8f9645a3e7414417ce74b4f7e3c3388d1018ab19a03f16971721c523c36ae4cb1fd00a94643f88429022c77692d2cbdab98cbe4bce0b16232fcf85f93148971a8a82a98458cbeecfd8942af4e06640eaeb51bb48ed7d91d4d63f2281fc167ba436cda7b071183a1b24eff85fa1e39192d5153496bdae0b508ff551a97256c6fe1f840767195f70d8ab0c6848a9db527224fc89fe5db603ee7f96ac0603a804ab59fec8d888158470eb04cfe2b627a8f309a82f00bc3a91c011c9b0e24beb6ad77be9868ae77b0226a2bd813b793901766dbba9e264b5468b6d7f06daf547e804b1b62cf1a1105c9ba25def2cbe8b1d21af75ed04e37cf8914d8e3450382c06773c55fc3975e5183515298371556da3249f3756421bd576345e9038d931ec6e12a659965cebacceb5fa5abd2b9ad0154c8a5296d41d287a9f50343383076bdd47379e51cdccb1ffbd6f7afc828ec663f3edf6fa3230a3836bdf6e8745a882ae7e76b79adc334982c87d231341da206dae899c42b28a6fb829b012ae6dc1638e7e07dce96854e97b61a2a9db84138fc087e88ed851da1acec28104f76d66a253ba007fefe541bf83263abe64a1f5017dabae5a5ab1842eb56f7a6ffd763e38d02aba6f5fb0bd3803aa816578dfda558942b2fc706da34edd9e244792ae9d809d74faaddafbfac2bed81675348d7e771c6664715f592bd2ebee8924c3aed2563debf21765b49775db609e138cc5aa173ce39700bc3ab07f7e27e72ec489cb48905b1de74a3182fe871a51b537063f923e041f99daef4466d2b6b9a12f58bcda8f2594d8a55aaf5d283a2b164d221c1622aba3f48906091705f063c2f286bf90fa075f642481d86f4c0020905337486a3ca0fd53a00d6e05eff417838f42da31d7bd2ce123b9c1d5408a34468d487c293aa3a535805e57dc30f0768bfb168e1973ded568bb9ca1c3cc95b6ae873ade98828f1c60e11e24e159bf6e689c72612d600d420691ebc7165a462e5e8857ebfdb02501ba1139c816052cf04e6a1c49004ecca521c8dc220b4875572089b4ef68a9ae21c6fb42099b3f2cfd59ad0507094a78e3554511ed633d25c789763278c53bf1eb8b28e40eb7d36f876055bce1b6dc29ad0f473d5ad6ccb46c87eb2e3c800e247b55f4db0ae6fed880dc747ea7321c73e869bdc78949aff0cb4a4a36d1e2944455943e7ae346007893d3b336e244bbb364e0d8bc728f38215b6d73508b418a13f285d551df4a869e68f5f83ac60959ad63d88aa8937a14aa14fc74966b674b7f94cbda1ea3f3e3084f3475425accd8185327881f56cb90f321b4b64913a2d313806bba20735df21c5337e249676207fc82209ae680062cdee290cdcc638978135f87f4000215b4900cc8e41fb9506f68c40335689d3a696a25a33fb95ce40f8fdf642a97a44d397b30fa93239982de94b2eb7d9d05717d30b8bdac886832b5c24563282baf5c25381934204024756556f0f93f53db9006f0813d11203814929edf61b3e28900818896156fec0082c52bcbe3e9b435b90a86dd2a9d4f6b52701da4a30c9a08283fa9d74980f77965e2d415caa868944754d74b7d24ae3091d106bcc13b3ed1e79f0b62d1723f61d92abe89ceab6659476651ec2dbc0dca6105465c57fe9c4a7ea891459b0dfc4b3fbbf11532598728c6a16e7ad5892331f1501a89bb3a39f724ce0a1f3bc54cbb02a72abd82e95ff799b7da6cbe84e7585d0ac9f02a3c74bea7d4bdb1c317d954b5d184d193401c60646397a4a0d3e2abe9b07463874b0a48c7abe7388f7a98bcb7cc290c74fc0888066c7220c7f6a2f671f5dbf474319c82e2a766adebf8ef3a3d31ea923e1e108ea289bd63dbc5dbe9fac426beb29e0b19fb4b65aad29c13817b7d3937d7b9eac8720d9334f76e2934b3ac5782bf7aa0d1b3f9cd57d7933ff9c4da1c25a4d93e26281981af6f3e681a55b9368068d4dcf007859f9869f4f28f218290a5b930a4d02e77589730bb81ddd53a83391180717ad8b5d298b16aec9fb65e695c22833b734f752510f9a85be046d6936b0117e9159c3254b0f9905764d63d81e637618fe3cb069341b79174d373b3e4be643276174d2a99f0fda0cf0371a96393410f054b3c1d82e85c5c4e848886cd9703b932909912399e1fe7cc3a0b741be24654f76de304fc26e4356d70386870b9d106a387a3bbead9f5a48d8ffd449d8f74c65b01ede93c1ed437f311000e2f0236319a67d22e4797ee212bb8565b1807e42780c758dae3e6bd8a162eab703d77b35cba1f4f74394985ac603c03111662a4c78c925ae64622d06b8821a08039f8ce30d030d9aa6700b34fef5ff67a055563646b7d083180788c1bee39fde5d7cf878d4f49e613a20df30f356d93879db1aab94192fd94fbb3919813e1ff85499b0776c1d3c671b05627ecc40eb07134e70fb1c6546825acf8089d0ee104bcafa6e3b2eb5c86641f04910d1bb07b44311b74a4dfe48855f6394bddd0057d941a9c2ec51503bfecc13f57adfecf719dd865cfde6190d041f5e4020627a894e83dafd63025a2f00b0c3f189863fb45081ed151153bd293682e7a88023acf84c21d5b0d6e0127201327d01e03a82b374e35939c7b304202a8e65190a0ee85e17636045b01c4aa0a809d980f52fa525ca010942cfb007ed65ad48117889146b4bd80e3209e7272d02437adb255fdb97db4d36199fad5e681b36acfd6291051803a41b82ee2209ba2e62f988134f95d6861e687bb16e869c8513dc29d3a1f7fd7815eb0a03ec03e7c6d1ca08b15149d3b7ad2fea0ee3dbb09b83ba01c16c404c2700382aa842358e53b6db07b7eae3c55c2b02489106256b3c7e6fea11425066528d566c19ad078d826fc20a5c6aedb66bb435483b96bec24e6f8b6d4494aa2dbdf10c4150040c09484d9cb58e02ec4a61709e1351371348f319f89bc9b94683026e88ba5ab8d52351332ccff93137ade416f8b3ca1fd21c7922fd485616513d494c8470282babab25e628fe0e2a7a6318f6a970e7c80cdd20d490dca967022291e580e366a7f521c3275b15f5b257dc8a3534492d572a43f33ef3c8b9cbf95f9091a288c60676beb157e77d5c5a34879dcee4aba3d19fc6231dbf9e0156f5f978271d1d740ac69158f91310c572090b5016a32779318257392e5093a8ef599819b6e77812bb1d9bbccba2162934239d9d22efbfa97adc89f47890aa7edd3d116a6831a87a6885881fec843c25ad6c896dc59f63fd26cf3919cc3b75f2135a30ba8dccc2e537a1434acc745601db0e4325baa7a0ba1d8fa785ce750152402114b1c440f3d744ec85a033d6d8e6fb3d0c56789a0f95eaf6789e02e4c70b9958375963e9f654851f748c182c94fb8fb720ce70b65d1a19d3381366d1a3d3674bff1aa4af6cff51fb6dfb81e90adce3104580e1e3e361d3322d9c2f3923716c6250602648b1fa9746a7ced6cebf7d57a558f1aeae7d610cbae023fdbae59b5a4cfed18406b79552e697df49247ccbf0bf460d5fa6497b6333fa1516e7054ff7c3bd58984302ee8b436163da4849f003de3d7668ef82dcf654564a88451ba9c22489474dc7798f228c9b376c45d9b4e61eb327477a92e07900475abbea7f07dd0d2f4d403da0209bfb3c0024e11f9d5dedddaac637940578c53f3463033045f8883cb7c1e4dcf91d75e41ec200118c438bfa61bd3777e475e1ef73b9cbf18c481a0175f327917776e9bc1c7d7bc43b77aef5fdb3e38cc14e4e858bae5471aa2665edb38d2d07f42c88b270c294f78ea97a7f6815ce0f9809b33092371e130e3906bab30f12a1d3c4bc7c49b42e8a93426721fac41afd13977e738f133821dd471f672204dfb58bbc1aaa1f9c9e27c2ce724702a02ec22be74766714762c35980fc00268f89aa9026a2c716308b184da4a493e05e8332fb28623a934197aa99a22c12f912e42f42a854846322ad2f1c8343dec1922b57e64fa983f3d683dee112f37ba20e57d28a0dff720fcd5aaa594cee974807ffead1a7cf29790de8704bdc32513de0403638fcbbdeba92ff8e6e1cef6f3e158325fefc7727c8c003db3f4e49a4031b08b446bdb9846780525d61cc0a5ea4985be789f035c7110bc02c4e1033243b9a3c4d8b6e4cf012619b6edb7f3309072768fdf1d5cb313633fd8c6316635c99ccde712dbf2a2ae4cdf145fe000761f213b27c6fc991b74fd88ec205327e80bb04b066fef20de58b87ba013a5b33fcadb437ebd4ccfa6693ca1adee51d4a2f8300219bb5f4fd753563aa55060bc976a6443f9c8b8b704e8f18deef4385199ba5cc6763fe9fb6630f77aefeefd317bbfcfb5a7361eeede111ac48d11793b0dccfab1f63802078b6d0e4feda5d932259bd849ef78b6c35d9c1a6475e896bfd236d83cfa483657b83e8c26a6a20eff03c7240d7956d16857e0b90da737c2ddf858eed4b398c4ad962987ba53b89af590c45d6dbb0244a362a1d59f378b29e1af28ffdef7e53b9fc5f11d8baa4547d79d9b632b242877b7d6c63716dc07308903228f6c7f90efc427ef872b5cd17293f2613e21750b1cb78b888832ece340454291a0a7631901fa5c3a128f80e65d0bc2dcedb969212a9d63d9eac03b0f47664b006c97ee651d440c5acee33d8be1a969c99606182a0ae377476088b95119a726ba54cb850ac9c0b8c42d62a40f1e77ca102042c6dfd8969ba93d9a76b21b1c1763f43ad3d98e9ce012e9cd20ada8154351443f82cbe6e7d418507ceaf8678da49939fd2d3863bffc9186fc1b262dd0aa746203b22d427e693d87398950c40c673192e21c525e2280672ffd1d08f28534edb30c400205864692a5a6ce411f37a82c118182b605aa2ed336ea7974bbc91da464d7bc7a3bda171843019db2279bbcca6f7d2f97536ad0765ecdb66be8029e8df03bca7e626a02a3bf0f22eda40398e710ecae4eb3566cd1e055c30bf2091401ab8f635244c3fd20ba2263c745db44854a44b1467f0b16be1301f1ba977647c763f96debb206799dcc2da8b214a9f7b32b5466edae933ed4ea1b2668ce4c9488f884a75821ed67aa9aee44c2a34358038d20ba6d814991b237c32f6c9e1988e76b13cb3884b259aa4c31c77a1d69ff8664444362c80fbd51b26b579f397ed997fdebc08ba9b38585b46b3fc49a4ad935ddf2f8f48f8eeafa4aa293fda64ed0ef073b8f1a7729988fb8c2c858b34faee2b76d79deb1ddd6fe048195ea6804cdec3a5ec0913bb4e0101fa712c4e0f0503b9859c3a30f14de1f66b0407b7ece9bd403d3009685326487782e7457f1c36522021353f899bdc3f315f5b6b0ce6d51fbe955f83e427ee78f746c12ea948cb1ad891fa845dda42d3d8195d30a89819bc78ad352b77ff390d1b75206cd9451988fabd5d5fae338b944bb9b8182fef8800e973951af53d9992fad364e73953d837cf8c08f0c2e8215dd1b0ec13e8b01692025b0fde16d6c92f28b6da9e4e7d1af6d514383c1020bae95de9dde4d7a11e77b83ab71eb773eeb63492981b1c672542933b8c905ce9d32dea120ea6d6bd92839ead942bccf64af43533970019c98c98c2ae4642aef0d6a7ca160ad0d59894d10623742464fbe8cb0fb2d47ca88338af21589323fce9ac0fa2c7623c6f8138532da333ea17808117fd6d4c0b9e6c7e9e50dcce2706675bdbdaf8ffeac6253567df6aa86c82db2cb1396e58a93cb599c8d660e83ea23d70b9146d8c4c3441c0de896e561491c7c10363fbe66e5d6bb2e2738aacb30e8a35b4ea888c181a0fc4343c973f047b4aafed4aa1d12a27422069462b552955edd16eb9dbd5f627b02fe21008f05357a157f8590ec233b9e54bb16b9b4ddbd98e54b01a9793a98f1e21578f599bdb87e7adea68e4848e6fe078db0c2a5aac961be21e7e39339608c08b5fd7ce04848240e9a12f28f327c8468d960776e414c7ac1f83db1ac20263efea20e3197221088e4e95c8126bb44c474951387cdda6a4a5316a1efd7ae835a2d285663f37aef86f0af1892c471d690009a6da1d5241e70cf711e943a5afc5e5e707f880b407ca25665a06156c4fc1beeed3ee507aa063ce7416d068a24d110cf95bdade6a289ce58681b1919822d1706164244632055c252320aa1b3908d28a9c3c6c00f453aad86337b16197d8daf08a533f771e491d7127ef67d2807125e7a8e49030d88342ee69a1b02cca8d0b8c9dd5463be803eaa8e4b7f668c633cc61f48fa510981120fa80a7499a8dc4999b9f3f29c9e3b1a653e19a4e25f04d69d63e10be19f4136f77e39bc1262c30d853e59b4f0559eb1edbc1eb36a5099bc1984590b1dbbd8ed822de8fe2c494d686e25dcd36e31adaffebe03405c96676428e6c2f5e544be0219a3836f80ea7c41a697a0fe6150a788521b7a4debcdf1955f063442e1a8a26feaf3d5d1c304d791dca7d3b603662e60cacb75de951f494c8050d6f63735e122b4fce75a0710bfc055540a6929d8dc0136a431fa5ffbf0c8206b9221465703abcabe9739cf8d5f2f162201d461ac34762199c3d927d51c72133bb3ce729557c50a65d960b568c3c02626a8198a847b67432b2df49b11e9266e0ae9fc13d7a680e951bd6b2ee57eafde2717544f44ce00e1707064bde10a3860de184ce424982a555fa468a8088b21f246108959554cb36a04caa75c5c465355c10359d9c6232dea836be834b0c79a5e7d120da449dcc8f77d0f8e93ea08de8099523f19f94f26bdf5c9d44b0c30ca5e81036267e060989af780d56c2988076b73081a8cbceb3c9969396ba243b359b6ced763a1d71f0648600b9e0de1871068a375dfcdd72b97327e4dcfbac6ddcf1b5967ebfb64e1ca23c983b4d93fa9b3b59922825737203b5c5bfbb733ae16dfda02c9c103ebc1c5ee6ca0cbd9706d6269157746a69a0d28a7c00ea51b00734d0248b98fda3b0c3a381b1941b0a8c34ca050acf63d5f63947e529d5b45b9fdff60ae99b8b4bd484f8fb545ea9af9e39fa1c2afe3837b276aadd3297f482a9065d0f8ef0f3088d26eb5855442f1a6470c793a7e45207f5278216e8c2dde5e521f84798468a1853905f16b0065dd0d1b6e5ee6774bc1c13b581903bc2b18a8ce1654ece81ae0436b8a41f3330914a76bf232b6b4a13c4249fa6aa1cb8a2c54145031244ebdacc73de1839e9267747988599a3d9b71bf2faa25f6498756725a798cd3864e140ae262e9cfe78802558a572cceb4d3f09fc30dde859cd98e169b3e868c55dca3b0e3602ff867bbc0471f8139ce74796ed41a4fe3b975166efa8b3476c223de9f343028f953cd9b4dceb584a2fb1f44427e5cb1353c2e575df5e565ddddc4d8c34d28743b1ceb967d0093df5a834e0ce820e86bcad97c6fd02c177295b5664cb3628107d3681ed4baf7998d24b123d5b70a82d90951214c3fe2d92cf1f7a0c2b6ba67789931bacb13bf3c1ba10104f40ce1aeee11858a85f01fbbeaf4fa9125aa38fa6184cb9d72a1c5f02b7d0a73c3824b3a89eab4f9372a6bffb709c444028d4284598e531741c9a50f45ac2929826f11595fa6b6ad80651880679a0ec7ef710cc9109ef19dfbc3bd5e1fc15c9caa8fc8f5b17f21674c10286d704f5a9770b323aef1743e106a803a13efefd9cbe2f4296ebf8b5011cc681d0eedf748f4da1af2bb24c27e01f892f591c309f91cf6e86b243fb485b4658d3892669efda1d4e20e148aefca635db68e066d5ffb34d3dc76b2fc4eff75c988cb2599d3e8d1ced5b498a1d746832d93cf3b8c66114930d28bd1c2afe4a47cf26fb545e681d5c71dacbc07bd71946cc229f0101268dc0d59f7351ad2e491852523056cb3a43e8a5933fd6d311b5c15cb387fabf42cf3c9a3dcbba76b0a3fee02754a338980267621ed23e7eb79730d3b4087a97eefffabded58e9f40f6fcff5dba9c75a8c74456295d00e2e69f615e8a0bf77929e23fb45fe43643710763fa6f54c3bc9a1edb9f482e9f547b59c3117fc66456047c1d17f403f7ba9ae3646a40e7ba48200070451c99262162992310f112f08ba7b05a01565edde2ba90a2dd28fc00aca262132353e561cb303a40afb51c6dab9e849ad8e08324b0e3bf58395a2268aea116e7d5cff8e4d9d058b72852f4bf9fedc8aead7093460cf396053aba1fceba7f6b90f1df6ae34c84f9a4e29558431c19fb513fa80c20d35b56cd3f4ae19f5f2996bc1332ae1ba21a5d960dc8c8c9f008e1506c48d526841afbb045883b0800bc1fdc44c87efcc973936a7d937c6878dd9cd566fb2a0ff0ddad447db89eb3a7fa4d3a25632a2da5c5b99c21bd0c33adb12e56dbd0e7e38bf31a307b9ff859b944811b245fadcee0b37634bca98dd50f56aa79916476d26cab8b2d6541b87c15cd3007d959b8d1839baeeed649cabc9b298e55ef9cdf3ba6e282355f4f3d4bf4cc75ae5492769e4b4d3bda89a397a902cd1a0d184bd17d7719af38c32134c12962f33731569ff4b4eda13ad40ab5dd28db7d3e40d8a7aa71715a3db8d8c35df8f3290090307f4ea3ab6f060f8aac9be86a6d771d197f0a61e187380f659110dbb664b3c09bd70381a9f14a4755a1aff025e5c1cdae88ca8ae3b7435d763faf79670c42c874f2685f304472e994b4b4f6b3aea3dab925314dad08e95cf82295c6755512af26868e34dc6a8804aa6a583223426b386c529e7cc72fb7f07580a61c2f1c55bb8c6e94a755b5e628136bd86380c60c18342231425b62b063a1dbd777c6c997e817f6818a501b75e9c6f1e3786aebd4172509b277e36b6cb79e47bf26640441d35bb35004467cbe896b52d3e50696fda5c708a586fee70946547560d75b2c7a88b4c770ecf6c8abcd5868ced6e7c423091155fb631a8bec082f288b7755119170eed89c424d04ce1e368f151405c4e16f7cc6f20c8f79648aac8372b23dce5fd311fc8e9c24f75174963a830927c14eefdb117a32499a4b8dda161f13e0e98ceec846786943692434e4cfb36865158b83bcb3d541c8740ff1387ab3e6d8419c47098445b1f8ca2d1cae88e9cd6304b3b5743c4df25eb182a010ab41502b840446320d0302843dbfd98ed12cab359370b8051cffb9b63e8f402992ced8f8ba8eb0f552f20461e723baab79f6dbc52b529fb2c1a75e3f6c026a92b74b7e206714e430d026f53ceb3bd8528e573a5739caa487c298c84343bc5add90b1778c9f9a98691e8e6825d1e026bb155947eeddac9b034a05d795e04d26476c879004bbd9aa5439f91c3a01cfc908115dd8254e5db45301b487fab877d74255b5ccb448c5d574352daef05a292cba1468eb832255d3cba8ca8cf77bdebbcbfe7b7cc44686d848173c554d3ff4b55bbb4c36c04fe69506c50eedcbce1f11d216410c5545e90eb2df47c7c12b98eef1ff0f3bb4d1cb323e319d4bee20a4039b63a4bed8fccb10790ad41cdab05146b67d5f1faaf41e349d824a43fdf47e9c5eb5e7d2240b37da4b5a625c8393705762485ed8c2380959be879c032c78c7c7a34b0185023baf160b14b30478a2878b7a777347d01e0688228197f94d2ba5b9d2efd30976402f69142c26d7c11ad60afdf5529344f4e5a8dd436ae4b298f3edd7942370e37f6af389522cf4189d5854b8326155e9a5c64566c6b6312b2db17708c79aaadbf7eed53370231dd9430e55bc0c604b7b572c4b364a513182c0dda2689472bb32cea6bd0a7353eb625a5b6ae7681c8a52595d43c282a6c54c84cfb01f0a0247c71304bd1b2872794d677a19c924f44cd5a6ee432fcb00bb16e64a8dcd90c3accef224dcbbed9d6b09ea2f3ea74b0f8d7e4ae3aeb9a8b319b2ff8170b8c2756225fe9e7fbb179fbe77a8593a6ecba5c5a05464e418c8b7c83cee375a35bb58f18d8bd5ea40c612ce02a0945c26d268ddf756be594f2ac5b0d00c9fd8774926a7ed9c363eb0feb29750c85090ffec54299193833624f5e9dd2ebd1d818e78319e97ca9ce30480c950efac67a350b9bc18114c00184a2c34579f4fea3550bcff1e74074a2d6f94eec18579e92692518ecb824b74e76259527038c2d072b0d9e80553378d9de310ea396a4d112d12c734b302735956a358b0d26d986e7f56aec75327f575efe82c65ec87cdb8cca468fa6215ba33a58e71d99380dac0bed4f7cb19e103991993cae761b1357c633e4d0310d0486c4e883c36ddd3d12ea5d6c8a06da2a2d834cf56826945d5d80290d4513eacaa0eb9adb02fbea0f4f3b54afc918d437cf9726de0d89dc0568e1c4fee08415493f88ba6ee0327e492ee5ee932aa1a89d02b4120272a7671ad730af934c48bcfbda251a64ce17af0d17a180f89fc387af53bbbd27155812f34db7d9325d2f4b0b40e3492fdebb83d8e67dc6fc351131f3d749fd122ccd34c6344a68462be2b664fc7af53743c0f12ad208b4850bf67fdc0ef8bbd0f6578b37f7155789943b54f1302e8f147546b75b156094d24b3b4256e3962d9f8b951950a2a158db81a6b6e8f54b16174d8835967cd9e3e537a0f1381c0777ade8a54a4c58e79e2d000964b357148ab2e5847cd8f05cc02ac1384d658afb7708e94831fabc023a0a5750b28b76a249770d18ed02284c425143cef057cc5eb6d0ced2fe3161896aaae3679760c5896158a29dc1e32922be179cdfe834d7e01394f23eaf86dcb59ddeaf8ab644f59534c0ef07a62bf2f6d9549f6f73739cf0e4a8ef89f900e2e891e1a8915e172ec53eb5ed7e270a87b63251bec43ba50b6b5c5ab78e3431b21b1ca9a6b75fd84acf9fcbf44e07516d0e08d62b9afdac3ab7271d462d3ba113263c0e44ac7699d1acc68e831024d214c80842f2f9a2c8edb785d9e34886b5584b2530dd6556ed89900b4bc25c758ff08824c96fa2645f57f5953cd87415b16cc931399bb90f5ed37f29524f9a51b8ac3c8b209d4509bacb0f290e93396e9fe0021596a4e6681b55ff956be0178be56e57f67b61babfb65074a02ce6e9e19934cc878fe59ceb8c034264d844fbeb1fd7ac8091bbd2cd524cb312b2c0a5011fafcfb09e77ffbb1abab2e4e40de689f3bdb0fba03d063867cc7f758fd9a1297d48a94a726ecd3f8eaa219aef4636116eae34252cf09dfc2d2726be6d95f85ef0c200a542d8eae0b92bb03ae058627fc8a530a714df7cf1e8109f38a712826e2c2a23fcea8aaa4ad45a2285b8a8334860f577e86c1e5f7cd47c20c37e681a042abaa160e7233063a3b0225ba33e4c7b884fe62f6c61f6b11ad9da6c9bb9cb34bc069da93f6674fd95f4ca8b11d96b27ef2440cfe8d180924ec99efccf1d0ae2f1bbfbb9a1cfead6ab99b1e9c1a934895f2d7263402fa4755553e0537b0860b916497665cdc2f19301b4b4f5bd3640a96304ae47039b3701fabaa7c8a11f89795fda4b8463984686de735be69382d0d6995d3596e13fd9936812c43acc802cd5384f20038b292b994a641534071efe5d3376b0ce37d68a3d1bd37eb6d248bb544acf80339efb55fc4b4d021012e2fac471c0a33f45eb3a2a2f9e93f9e666c8902e9a463bf5c407cbce538fbf6f48f55409fbee611cce3b5261172b556eb859e02fa51f21b0a3fbc58b9c8210531c0e5c081cb459f72c59be74062303b8b967b4bfbf069f9a881fb4eeb8ffc57feb5777b2d346da2f7afe11874110bf66cac5f236d6badf7365b9578627d4c94072d2795800d371fddacac02b32ad8aac2e5a83f1c47e0a9a686070ec295244df6e3718e8aa46436295340340aa60c9f302a653e00b31e9f530669c0a78f64fb126db87f8d564d1b9007cce3856d3bf377287f070c6d6dafc352b5510f45fe8407375198e79b127b0bbbb89affb9dfb103d3827552d57179b727dc967b5a899ed3f5ae2779a0e0a59b695ad86de008b60728d84ebc38b5453aa7a03cdef3f29072673c4d546c561a9d0a28a1423a30c90801cfd55dac431bdcd2c4cfc0e0526d2b30c889d530fb6b584cedee94f282210cb3db887e01758de8a1a8b0019514518cac62ea53e40349295c26e791ce6870194f5cd7fcf04646a10086cdff3c393631c7492ddb5830a21772db5729976d61d5312b2ae80f2c4298d00ac23d5613941bcbc1aac2c91a5611a358a31a15f55fde6a92eabb6a4de1c181c77ff0ab3946299d9f2a79dc091865c04c22c2dc3a361547ca451a969528d55630f765f1a73215f913ca0c42e8da55b1a210fc130daac48386a341e0190c95106eee6df82e5c969308ffce0381d3323234e01618cae8782b0799115b6e748e91ced1e78e0528a6425cbdcecca4720691a2767d9985b821c2f36f82fa2d787a3fa446a000e2a65d0eb0cc4c4575f57d278f1b16e6ca673ef80ed08a41a3e882cad1070aa17fa02adeb677225be5bfb02a2e6eaab8623988bd8a1bbe6e0afdc3dba07f97249867aeed3c8ec31a04ed6e730d15744b20c52274416ae9477b328c0328403e21f7666fba9087339bcd84bc7fc565f20400f688b7d22153606744b462add602ee6f345ac8ed69f58dfb1920d112f922fc26979a1d4e7d3adf10ca0c783efc6b078304f1254fdf521a39f00d73dd63768b07b269bf5fcc1c9820969314ed571e40f40c929a0f3bac2127514c73865d1c03669b7b5ea0f45e060d152e5b40034155b470f46b520a7a8cd753504ce6f89ac59eb02bca134765004dbcb588df712a5b55d0f4bfdc0cded76c5c376ccf0384a14c57c7401967b47d716764fa01dcf77bc421eb854668f1e4fda797b67b80aff3a8f0407d7c7f2ee9ab806a0151e8566b12402cc8772077b5e4d3e00574a81698350eb10a206bd52fcf2925f3b1b9dcc3394150410c009c0bc2c8830312e5e5bf50d0d7f9ae61d13ab690b336ac4e56bdce29ceb9ef7fe2f217c0d66f992d7fe6ba98dfccf3e0078069656dce97129210b4e3c0eb99223041f1a4ac55fe502aba921119d79aa897a39a6d90d95a10da404569197284d665e96831870491b1352a447f6883e33152d4050b59c1d53558ff4951a5fdd34b21f0e1434a961767f2f2c527548a8ed0abb59848eccc43a02bb4988ac111d67426adf025b829e5eae96d6d80894d3c8468dcc5fa155c59623be629bda8dfb17412c271fb85e5f4168401aeab31c4ba039d8954102f743adfb47575a720b25f067c1a441b6ee217718a1e89c420ce543e5f6ae8fdc92d5669e93c8e4c0d67d863c3c3ce2f5341a00e8ef15ad3bf83a3d449c99bf214035e269c6b5f023f7218f3eb8e98160b669c43c613d50f65eab0fb4b55a43d2867c179a63e1edc6040d79de88067444192d30c89786ec4c19914b1e944785c8ac846604dca3263fbbb82b10ef63496e482ecc85e672240338afe2261aa1d72bf8b909c813e77634e25ae6a14f773b48389498fd038bc230f5c24589fd597692654dcd15c8dfeec3ed7c30d2915bd62f5a93a5e77dbc509554d9818dbf43a2f70979065ba0d995b9e2384a495011cdf6c9bb2f7a4add9f7b45b6f5a7c41f30e59822238f0b02a47587675915ea045eed95f7b62e8f5a485d5d61a91c86e88ad9109f20a9032c39a8eb25b6f08bbecea8fd8706d492a8836324237808048d86d69273f1f3d765d6fcb64b7eb829c754ce212f6ab2866433ea4eb7247293ad4770c0028f48ea1354378558bf94432ed5155b3a454ce7df15ac303f9828e92dad9eff0591644fc578c20b686ed1ed5aaa71484c5ec147726094c978df07d2ae5cca247404902893645352cbc326cf061a29be57aef37457ba3a3d521be2c5bc94d2866f57c5555c5563f1004315f6de1d6ac0a3b0f26834bb2028b2b428887ff24525f5e43b744399d667fab988686b5fedf3506739dafc407159a6ee8f5f17aee2dc4661a10e8abcdb416d9025d4de7f00ba926bab7e35e34985810604e57a4b1bee43d0f697f46dbaaca0b745901878e7bf64d602610d225d176023f965403cb58554237df4292168741c3e6051acf1f05836467af3c0d70365bfdfbf0e84fe240c1d0863a26253c17f48859f9158a0f86f00456ead65bba1f7425d4b3c18310f407f56c515fecd945969c2fa619834f4dcef4248210ee81b818ba580cd64e95aa030588e8dca6314a6d246cac25bae188ab418624d8ab013daca87b3d590c380eec6f079aa83c91f01d71e3e0a10fe89ed41a3e33ba75e2c64653835a5dca6082cc7353dedbfbb2953883c742189a856b2bb32c4b05c3c54427e89e1cd4fc7f60b07e688bd3ce2245223b9f602d70a21334ca7ac9260cc487aa50447f6b9425ac7f39fe9b74420e097262946363264e332264771f90d4c5b0cf6ec35f5e85f17d5bd3494d0aed2f356bfe54fa8a68000d20682fffc8076d6a213fb108ef7c665b82fb04f84f4a479096c632704c53caf131db33a2ec8326a17f0137c542b2f902602a6308526c0f80bdeaf554f07f3002d1524be038341d92c02d866f9357323164acd510e3c1e667962803bba06dd768691a5870434c4827e7d4c498e647136fe5f757dde27a9b53f02adf2e6f83c0c6f09ec4eb716a8b2a74eb1b532c156ccb4b0ed77ff9386ac8cf4bbc6eb68fefcd8bc9fdcd3d1e17fb67f2ec8b43fa08b7a813c6e7a6414552a230fe40c2152728869416732d108fc39bd22dd42dab61b640455ce8c5a88fa935346dd6dcdc9cc212727b682e0d768605f1b43480370221197cdffc2dc8d482fd849b50228025232d0ab1eab1c17bc23580b7ecaa13c0d9ec741d5713ba86ba3f2182027536cfcf62d772bcc9e40a800fcf1193be0dbba24a96bc0bdcc69b98ca40758fe38670624d155c423dc3b36164e8631ac3cc5368db0bd7f7187730de12c2e649e3b3a32f7f3de0bdc184a02e39fd9125d954586b11ae6bb7587f839910bc978ecdf8c6b62265a0c02fe0689aed47bde2ed92a97d2688f48f3fd0870c2d75ede5093f6998991d8bdcc524521a90bfb1f8fc07a16a38786d3e81afa1beb70d71c9ccdb555ecca0804832b80ddeb3eada4a2d90ea7fe722de55b6868bc4f82bcebc0ea7fcb27515d0e7bc3bcf6b0f56ae6f3b9a844276bd2ad7a0a15f2bbe45fd82d576ab2ecf7850983a29ea91a65709f7b63e57070a8ebd9832b7459f13a58b67bc4ca32f1060a50de40a79aa85aba3ae69a1e4faeaea5d077051199c2c0059b01ba71593284565ccd6bad0685f18be9ca6a0d223144c5145ed822520930bc290ac0a2242ba3644c895afe4391ca00f9cae517a8cfb3417767c4cd8d52ed30aa4fbbf7e22098e7c67593f635a8f8c2c00bcfcf8d72ad64816907d2c2061f390a504f997752606ad0eff936476099bac06d36c5da8da462fa4221f4679a778c95024a5743061219a47361bbfe9896c960b7ad5de34ff52214475f4700e0f9f22f4a4ca7df4cc4ef66b80fbe11fae6e6925bc43930b2a0a9d37d3f7dcfac069d801372d01273360af47841370eae9d913b79020fb614764e59328d8b37eb8e62bc47d97ae459d06df9e5f7225be79ab53ed2e5034b3aad6e53480b6fbe201a00b85a5bbe6b3b0e6d3cf411694b95b8d635ef20ada1c0d30c96d3db0c27f042e0db46ada79404acd8a9489bbf82872195b624376ccd971cba3ebf99b6eb34739800334698a1662dc19d163fa8c9070a75f59c9ad9c8ae11a8d186bc35904cce628d949de0b9ed92db55aca0d19aaf2eafe118bcd698d9a01d583550d1b925db547567ed8f1f8f39e2b1e1c762d7071f60b23e28976663c16716c87ad463816d4f551d8298ae944c2c60ed4b4c939378bfc8bd37f16dfa0856f468cd455aab260b976af4548b607ae4debe229ce623673fd56b9a62ee8eb70d9d6c85f054bdf55d8b650c4ec836ffdd36addfa0ab1f3f81161050509277757c00acd1afa39e689c56a522a451e980bba1db5fd2067de420f02dbd1d945a1753d8c4b7006fc746afea81da08dcc66703c3498d3e2cfbfab948fb463b6f4704db240bf7f7e91fb3f5434ee7fb591b6c9fb237c336c2ca77795e39f44e812530c5032cf53d4477c8516e95b7a94e6f40b9e9cc8e2c50a808be8b6986cd390d688e73844ebc7f58803e39b53f4cd2a44602efe74ee900da7dac4ca26980de4aae14603ceff658b19a3f7c45e2f35b6dd649777a2f187114312cbfb7f1507f661c4a0df439466c67220aabac7cd6d942745c1799236cc6ad48ba47cf8dd22414df871f8262187ffc27d373ce1101fed335c1be23b4149fc9365e2e9b2da820eca29f6e9e3f34199e965074e397f423eea95f84351ae4bbecacffcb9ea1af3beff1ee4ff192d1606410646679b8c53e4dbd3fca24f185e6ff971407fb9063c8e0a56fd768049d220e403883d33dcb038a55fe39084e16205c15983536c7ca0334b12240869e0fd040d02b0c3f8803d0b886f843383438f8f612c07e2eb3b1ed39e9f623e6611839086d1d4823e665799ec7c613cf11cdceb237b4fbd12bd7b1ac6feafa65f58d20734287ce8f594a235d1b3ea0ec3221f05d0440238aedc2b2a04feeb6579a4b7319d156a2520c53fad231ac089a9aced7dc89075254e17767299c00fe57525ec1afd049b2091509d4c7664dc8f74f15e9259ed25bd932ed9faafe983c41cebdbadb771903d2d1ed25c4499a6ea1f04a6952256f82f45f64508672d46c3030f5006f3f4f42cc3f56691562a4fc3b05d9d38ad71d8a499516711bc8761f421cdc9ad7118814ec0f1c59f7cd52359200f5387d669870cbd80284f2bc6ebade16f132636af5b43ddb1434d02567e55181cf6cc82fe6cc081b862ff62b6ff13bf6b4d3e785ec79a69da0ec09cb4b10f0108d1dc528b4f599735e31a8642d44c3279443147e80bc61514b44c1f537a9530a553f4e86c5211bd69879e41a89df950d78ec65ad8786c8085ba3603995b279bc417bec3347b03420e7c89b6bd2c10b515c86d883f52a1efe5b8cf49fd299c001dc888832d556b0a01f59971241e0a7dcbe79120f3bad11a23c9aba30b7a7603ee524ee48ba8b5d5450798f03e999489662cfd659a9293a1d7e230181f6a9b150459fc6453e5a1e9667aa1467091a15be5548ddc56d0454e300fb8cd55e746a788c349fb35e5198f78840229d9b6a1e4e6d180969596221f4516f2da8d6f7af14700aa3662e2cc042a572af333936dcfb10c9ca08b98dc31ff3bc6361fe23ee271d291cb3a423622d32a3168cac89664ef90093b09fdb3aa494b245d16123532e8d5291ccb7b38f1dd7483eaa45abd99b0a324fbc0da4c59922f4a9b1381e674671e9433a8d3e136c4c357b9c441b01bfd0fdeb02f234f3783e873b84144413dace4446d9f628959266db737e3d2a11096fe4a497f9f9876f97e209053d0ab90e1b12a7ec2b3e4617ab6ce7ea6662a668745ad596e149cb52f07ff69858aa7835665987f04f1ab65ba4cd96c80d629486ea2cef9cf2f73b0c60dbc77aca5eec515f71677a3c1539e9817d6538a50ac45ddf97152ad41c62bef2d9c5037a59a3bd5bd6ac9a05853ce9a38125f27705a91fa6dc081d7fa33dd283db67ede4b8dcd88b22e282a8c880d6747a564e48c7e89a9b1d77ce06522d3053a903053cd581d5c6ae294c71ab82dcdf65154f4020b787597a170988433a1ce6822e15edaf3d761c28c3523d37f72bd7e07ae4ae02b22c4cc1384bdd15aef94b74b86801fe6d7a564eb9fca26226ace92b64cc08ce2cd1f7ee6f6066a6637de99a04187651a1fe49dcb8456bc6ca47c518b32d963382e10f33c86ca01536fb66b0bf22d1589e7d62eba44052dbfda485e8de7147dc3e3dfe04e18cc19b92382fac70385f6f519ba936f496073f12b266f2290d75c4281fb6eab3403bb62f39b5cc1ea279657ea055800de05e06ae610a5209ed6611bf31420877012980c8f3c40397dcdf8543936ff4a02ce82582d208865684135ae36a5d9d44b07e8d69d0c0c36e77f00ff950e76cdb8ebf18cac2431578538ac692eac392e8099a770d26a92f36e77b9f3bd5ab6cfeddac925e8b44e7d9eab522d535451e5cba67e409910e1918e2c45a1e115d7574b0e51d44829487359a8a032eb9690009e8741236e1e5615aa49d96f1263c4cdb5a0efcd32435aaceeaa12d36049623e961927e1ff1a4397caa7c41c0f0dd773881bfc8b4f8234c6c8bd68bdcde30e6560f9af8f8a129d8689eac6d3b8084c06489742a25e334a692e6b122060290ba9bdb86ebde5d58e011ee16b1d0d54563e307a2caf1823d8f7dd108dd644f759b18ff3f40b33406cf0c94360a061f0e5b6f9655a148c917d13504814f566f580107ab554f6410e8479d3bcd58b614224199c44f75ee832e8e3edd6a9a38a37faa74ebfd3f82ad3f1f98ed91a15bc2ae1e589c70f85bace122f47d9bde1f1fa60cddef678ba1250a0f23a410bce85612bfd3b31a0fea26827c2b529e5507168a6ec8bf61c1814c3134d46121386a5ebb5557b62eca1b59e33dfe253a1bd90eefc068f2a38c4ac2d6e2f51eeebef3219cdf7934b179f74ef677da8ae6eae984654307ea81672d03dddf5a8d4d9e023cf1cf3fcf199a51dc2abcefebbb6bf65f329d60ee9ca149f37573c80ce90dc8b4d7bf2290063343408c2e5b36e5e7911ccde412ba700fbcfd3def04ed98bb560c3f95843532a81b1260aa3609d303e71c4f3c8948d1ad9ea719fa881ecf9b61cbfd89a0e346fc45d1c7126a47c78d8045ee6b9d3bfc9da844bcaec311c4d4f04342327815ec410879adf886779c0fc3b7e5cb928ddb0d8cff1e8f8c3427840e187f081e21132338945a2ec16de1209c31c6ada63d1c605704ce9bc0c6b915b3d1f225e86427ed7ca385372112602343a080589125c56665a4576f3ff1873f832885c45a2434f8368e35606d1a9604f0a7c8bfb769675d81c9490c103f27c0696ad3fde38db000af696d6b8a485232e799fa19d87b38e528348a49874fe1389234078e63c34b553685ba339a6546124c96f32d674ef45ac1d6f0634e8c2c6ee7cab171bb499b54df5707df4ebd1ffa2436fa16e15efe01f49903f22ad54925c88472b156a5dccc903adb49730c16f6ca133edca7935715d0ac3dda1465fe17f57571f5c757170d2695058bff68a937d1cd9ccd0d2d7e4c6a1fbedf815ef6605d2d4ee12b72a589296495f1f21d8a433a73b3642686b31b5755b0fa22fb9b8e61d779547eef72204490a5d09590849c5559098a0950820d08584275b6fab8f43cf25484f82e0c8062e4f2bc54f86e9d39bc3335b98b7f54a056fb6186d092c3bcfbb60eb07c19e5d3fa980f2462d4118ca2a1d882987f5435566c9ebeeed31f56f39563379937efe131c7bdc502339bd30ef338efc8b260fd092e2892a8809c8e3bd075277e7cb6ad1e579a507ede79358feb1464452b492554a030a0c48d705975a444b56bf43071f03e277d25a373d34cec731fe07242e65af7ea8e691246f37b8030e1e2779e592ca7baee088e35eae5dce7e841034aabd4db49cc3936b249acee2f4aa75ae19102e20591071e6cc37fbf6bd86f049ad4a40e9170c92b1a70641e1f34773c2a3e7f325400570ea9130b210c16a15c0c1dbb7b6901805cb3e3f7bec3c0571593b2cbab45a44ae9c6cb78a1a4274b4dafc7a26b36b73d9970167fc40ead80e32e1511ca1a0e7a13e2f5fbab741cc56f4318504721b17f8cca709fcdc84b4b2181953187dd7e02dc75a2fac83d0f5bb5800bbf3f742d06250c883a6a6353c71d5aef5aeee66e410d27d127ca5ba4b36ece8ab8631506fe0583f22141902b729a9d98395206249409bbf3557dc4ae17052860bbf0e0dd303b6d2bc751d2170185ec161b65319d53c936ac2be9a84dcfa24284d1069ea499b32ec56cf9b2193f4a51122c2ada09acd52a7966748d830b3524cd592a9565d5b290912f4648bb446a2ce7b69e845a351935081e2b8a55502139ef5b0505e9deaa05f598e1deff3499558961609376d9bc017e705da1e44a8bee28abde20847005a060394374d206c2de9a410bfc42063159b752e116542e3668ab2ea6b0d038de825bc0658ebefaf36cf15a4d8cba5e7938b1e1daa4334dea7f2f6e45860ae309082f034d5c5d5aceab3ff3133692dca2273206f53774d9aeb1eaf96ccd943e5964f509fbe20cc7b0332066567bb1e07d9f74bd667482fbe6c25a05a39fac8557091078a2a361272b181f00ae86c6301c6a17eecdeae5ce34a17e7d2e26ffb08bc7e104744338d3454aa655d28a28a2b6d88fb72c32b48911c9329d47f906b70a19027ce263490604d44286a35fe78fee642e20e5723f90a5074511ba1295af7beade863680507989859b30bdbac1cf638095806bc72ec73559ac306d0f4f1f11a4be2970d3e145f9a9fec35d3d4c417c358e8f73d0ca4c7282168c6ad9b3012782b7679f48254d37ca0b23916be3edbe4bd4e82a10e66c8d590766644e4ebbf37666440b47cfdb74faeba3a7d8e519b1c63dc395d7f33c88a3f714f173ca63b2d01368e8432ad73e5685c8ae7f9b6257603a993770ec316643c5e78208951fd06a3ea603b906a2fbaecd95c93c955db72ea35b58924de2ea793e1d184e424400575a751942e6e479391105e3ee7d16b00c2297a73bfbc7a775c338b02d90cf80c25088702e3cdf746710cd54d6f45c2cd825111d9ef8f8585ef79d6b997ac66339a913859bebdd15248c178aba41abbd9110fa3ef399520d4141ad5947d06a7fdc89610db252dfd25d2971770b65a84f09886906eba84885bbdaa378aabca8d1b12f19c91838082e328ec18f79271a264211a568f73e687c15a9f0ebe32d70761d6e6f3f60c7ce859c160590cec8ce473d4b86014b0b2d04605feab9534074319f75af33847f7295afb773b7919dc55a749c3c6766c43fd00ca31053a724455323b136c8f782eb35c88ed1e056a806f8b1f8862907191b6f9d81a52487f536e64a02fce373631d2c65087794e35432cd2788e1605918a9acdee4a0ea40a66a77c8c8173275c5b430c5c87b04f9b11a821dad381b4bc6f618ffce193d4b4a0bd8ca81697891bb704e291b339bcc85582c577289b3a5454bf5403700a67a4f823e6b720df93c3d54e48762d940a6cde771d96fed82a094e9de7f1d3c2ad59dbc0007172e5957ccc9b07abf7f1aee439778f58111fb42b0564628587baca00d17d9c3ae1bab4f2ff553ae6af6dfd267e1be5d6e95684d2ead41d1eec1666f449c1800ba16f8fba8f5ed6c8ab9672c0d85b66ff47aff42778e67c5022c7a01cd0b2584e0a204755ee05b9bd39fdeee8bfa94303ce636bb075a6e362c806080b4b1ba643f81cb25d42031b3435a19c00ab0f71aa6b56c513961a4c3595b2eb8f78a806b2114c528c4a2c83a113b23ab1437c58b6031d1a4a87a26ba24dd910894e1fec1bcf07de38dd5adcac8ea4c627ec3e78aad94b2532f397bef4e57431342c500efc16bff458b7c83d0f40e5fe054b4138e235f27f34a6f2bc3da0501d35b8ca41ff27e9c110f373bf636af7bcc135a3014bb9c39ec05af20d3a4e1d514daf651e72f335e5302301178ca5b7f34fdf13084dd36fb460d4112d4c416ce797757cfa44e530d3bff7a4db06c985004cb60394ed896e6f8fae67eedf148d5975a57e7a9df4f5382c5a6b6b1a65052c599a5cc67246b83b22507e22f69c33ab325d81d3496454768324a19208d0308fb3008549a6f4cdaf1698de61898d3facd71c7a059cedf890975c881e2354641d5cd4450789be5e73105f91dbde73a72ef58820126f03318ff674ffeb2a71b907e100c2109a252801a5e726f94f3f98cbce3d99d6e4eebbb66722cbfe1e29daf220ba53f843bb12f4f0890484400ac770ceb85c7cc230f3399bc527503cc4530032c4c31b12ff53a5db816c834eff1e27ef412c03da306e48c6713be6299396c650443db6ed82536000de83b91da121762ba3366543881a08ebad79b6fcd2af9ea2be352c41a910e1c25285737c28ea568125a835580d6401ba9141eab90be92b90fed1f367f11cce0011729e4315985d7fac7e3a0596e4967b8f0400296b975ec8b8641f1c5c72ac770c81c40fd44d06af78c78241eb577fa0ae3ff493a418a508ed9f8d8ee63887877c9712eca057b8d59d3e233274effeed25fd05843e0b0a033f92a82932cba304332253ddfa059e28734d4cd18ad78678db7b4a4c0686a65eead17b9e9d751800332674d3c29e2d410bd55ed7446aa6abf6dc8d49604b8645d220ec67b23f0e5a27d36dda196c564fcfbe8ed9327ad277b046f539cbe665c34e27c4a6ea563e660555a91011774c6ba70a002116b95e5233d28f9ceb015ee2fa9cc28a2313f8d5e4c9872c7eee0e725ef8c4f6bee3de62a7a17cfaacc93203664ff45779976bbfc72a6488e12ae9a582baa72cc26ae7bcec6acfc7c7b7f2f0c775ee1f72ca89cd178e8c559ec0631b9fd75f18867f87b15aeacffc5697fc955be58b4a226eb93ffee1781f12d9b61cdbc22df78873b57836afa636cb21dae713f8b63cf8c0d328e7e12bff9bb1d35f3164106b62533ed89ebce4e93a2b5a18e4337258565ab9a48968ac3e6e0808628f723bd207012ca475e11702f5f3647244694fa5b7e63818fdd6ef295f65a848cf8207990eb3bfa5c2162d86c93e3746f7f323ae2128aa48721f5dfed4d6c80f02a7f56af2f03fdbcdd90ca3ef41db3b92d598177e9a48736113173e672b44a3161ede5082a8f4152aa514437c78a50687a38aa5235e68d126ecdf35574a93eedc5339bf487538bdf94a94228ec27ff513559ab06b34860d6118caed6851c5ed1df3826fb852235e375d10da023a14e9dfd038cb0aca4e8a63d3e1be9f138aad633ac2ac48bc3d41d6e6d097d5849523bfca7f15bec107a2980631e44dafa3e91404d13a26319dfe2a309be762d14d6320c3dea11209a324b6a20e4547049134bfe104aa5753709d5270994c7d251242cae0844ec76841a76d49e39963cf913cf3be4b1c72938c1de2998aca201dd51629c6a5f2d5b8cdcc63a26e2338abc92b9223230dabe8ab5e3ecf5f434b58051971f4839b4060269b5b6a07d70bbbef7acfa5ccd574e6e36a40cfd72c45b11b446a4cfc4cc454a5ad7f4e7254486251a809afc156446e5c41e16adcfc0dcf8830ba0b2b6f59b46c17b2bffe68449864be410916d56a530ee23e4150b5248810e0b46587f76ad13221f5e152fbcf0978746c287090016a8a2028d7131223402607cde01c383c344acfadcd0c26c2ae963213116d9b5e62d292ee982e041c44866ea979d6f233471c6ca951602524738c2f9ddaa00984124addfd66c05e9a6532276be740d4b14c475ae3c8be5de7c92333bba47a027902201fb366fd59d093e9431faad585baf52403a3d54054050db441a8463007517882ac7c636df1d839f5bd3ae7623edff9e887fe5ce23e4cd6b443d4abe3eee68d188e4979bf7616953debd002317143fe98c7883926518ab5ddc30c28486477257cbac6f8d6862cdc11bccdced1f39f2e26ae1a0efa29b139bc3ecbf6f2b139ae424567c23c5d07050d17185c2372486165f6ba74c6d9bc95caf6d6a3c1442b28bde51338c7c5bc7247bea741018dfd9df1506b63973d1b5dedfa0503c7b8bc81638a484cb0454cf593bf039fd52e62884d4c4051f869b9fee61263853b8550c057825727f67e761d8f1421ba9bbdcd236da5952266370eb4c0b69e0292efa2e2b4f020c48b189c30e91f60a2b8859a449d1e520b1891c99d44d395a5c89c0ebe3741388427099ea4ce13bb4d7139341cc58db11b3666b21a17086f56c1e3ed1418f247babb299a5eadefd70804999b9a85de46c2bac1e49a902f2a5b4237c80c5aefacb5f5a91313d8f0ff82ddd8eaf71ddc50771fba161e2d07c94e77551cabb026cdf05c40d1f383269717c70b7bc3126ca206108e36c898eb29335f13e64acc6a0a2d25a53b1cdea0ce706a11afa1d7b689ddfc3e31e4da11b3baa09ca897ec92c04588eab7560baf14b88331166b1d7a539a7921c19a8a6575236912aa05ee236b49db058f0e66681a5c111441966f46688a42ca5459baa4ab484b703c4512824fcc2bea0125bf9adbc8065fd776bd00cd8071d7877e6d377a5ef0025168a02c1e1341d285a9df04dcd4f551a38b85b23de7424b7495c5e14cb4176716ae8d513b23c572fec96b5c0453be90bea3860c9434f58e9d16ae34d47d2f8a64788d5976cf7c6c4ac421b975a68906817ff409c5a12513427c8869e71449848ddf24978e9820acabb718faaa2f6f57eabdce964f8ebdafa9060393abc04cf40eba50dec06abd028132dc30f7d605f75c5a5fe2dd71fc7db1aa78f5ab3bbea14c7ac3932ee2f57fc4e8dddde5ee9083f5b36cff1ea0f791fc54517d9fd98ec920c1a2d71a8f851c0dfda81b7e6959d6ef9571d755531185926cb98a10cdd590ab81dd1e9ec07371f7689ce1913c4c4c02ba210eae2400b88b05f03e0ad4433fb81236204440d8788691b6b08c2585108498387c6ddfdf54c5b609d41bf641a555961481ecf8deac2b1e85d4c431acd77fa14a19543f8d0b8e8f306ce9372335b77fc70ae8274f8005e2d2aaafdb9fa8162bfd4110912c0121dafca7e2f3fd548ad3a0c2f7a51d3f71ff8fef159fe02553c0ca97fa53ff26818d047ce24cf730ba51984c432ded086999fe353e82427e1a55f72d6a04c2b77f040d14fda5a975a9d4a79f8aed8806a20e85f3ac90539c80f2e96e888001fe4c2bb1ff82405c4b6c8915d5e662b49594e63e14c523b1153646d2323b2162cac32533f72508ad53fe067a3d98aa2e211dfa7eab5260bfc25dcc7ce5b8519439c8649ec83752f21cc0b1f56390849592ad01855ce298024c4c00387a26a8ef7eed7d61de446f3404c16ea0df8eaa7177ead9f3ab6e23fcfd6f85159915febf7d60ea37b30dd236d028dc7ab6c8b0a05ef15ba497db74085c0f02ba9711d29e51cb718ae341fe5179ac36fdba73e7fb6cfa6a3f06b0b874266dc1703992c8ee110699a4ddc47f19bfd4227e21c9a68913406b7f00222336c0fc5f8f14d6417c0cfdf755489f8ac17e0e0c5e27481e5a0ac495c5d961ade2f1c9dbb9b3c5a0abe6572a86a0fe6a925b3bdcd7d15f992e01b4514b6f68e9114629a1720016e005fe95af03b8ef669ebab23edaa97fdcbeb6ff940f23b42fed287ee307cf3e546a32fc2da048722058719cdd637eaac6267b7e25c16218424050cc340e04ce9a5eb342b03ef8cd4e4c78c4cfce08a5b217615f5cf0af69814bd303fc9d5803b0948084e8516148809644007ac47ceaad522948028e4e01a937b4d55a42f39b04404670050991d28c10cf206d85c7b44c8f65e180683b3919a80b05cc81b300c43324d65cad04dda956c243eab0ae5453d93a47da6bf32b765cfa54f726fb94517b4dc17e55f32c38b2cac09fb74616cec0953fdb1bf439c6b743665410f77c20a6222036cd604849865398f6b60017a23ff19c964677d7746b4c5bd3325e370b3da48487e09cabfad6c34ba3174cf534f9d625828b56e7d4ab38b8baa7a7a90dfdc7db150842b2810932329ce2deba204d5626a7a67895049e374d44825492451fdd37e0b74eba809f318b326a6d0683b8b8a243caa1287caffc17ec426d0ef8d6bd915b3c4330597207895357b0dba86bba8819fa393471c8cb3ddddff8a3e6726d820fb2e51e4b12d14fbdc039e4383b8d029c36fa064d7da704a571b5f0e6dab81deaff3d9fea0f279b831e015549ac4a1f460d18abfab04696e4b605cc18850c515cd08b96c5a2df5001b848c1d6fd0a4cad1d2834a3a585768460571d7fe0b135aad4a312f611eae87bfb5670950d7becb151676c99bf619783ca8eecc16eea9e9e3cacf87e60987684088a33c09239d9655a16b46cc836b24291ccfd43e5a1cf6d932dc12a5887992cf2f62959559c5c8876b3652cc27d4ab8b198fe54ff93b21ca871b3fd333eb2d443d7fda1ea021db462fbd9f7a480b9acb80a2754fdb77c16ed2124cfbf56ac4a5974d808cec9f2111b599c19c29ee8ffb45dec24c4dab16153ae008996a529b0c7c8613e8a8936f10fe1a1c3c8c8ff3a908c595d91fd036458415d92891c38d9a256b23a2c12f3ac4c43ad90943d7defe10b3ddaaff2bdf013b34757581a1db778a31e4400f8e1d50f6be5f5f008273375069cbc9b41febdb76485684b2d2a712432225414c6466c7c227b94e8223bb2f23de51b76b1daf7acc07561f130be14d630366f6a78ddd555a8e8716ca2a0aa45a9737b356e61e6b4212aa1fd8947a0946949a1bd3fd10130f0c9935d9d027d0c0bf21d273c0cbbf6929faae06b6f6569833a3df4f6bf81489751c5b9f9b7f1db67cb30cbf905b615e01ea4955066de4196e99442aba99bfff76c8b52058d41f87a2a26d705ac49244e30d6278bd99259c47bbb986d45163ea734aabb373952394f714f45e049dabb6ea2345331f753eb5aa69c4247439b27c4c44ff7abb19960e4f3697e864d45fef467809d189cdcf4f7a8b99b877c887202b015e6465085b28fa82503b43de1cb2ee50c1b16eaba8241f8968a2891abfdb3ced80885cc8bd3341c032ae8c190f4e427b744744333ee18193a58b1f2b4cdbda9cf092bb19b0a42527b68733834ac183136587298cd430ca833924d6304a2659222e0a5f6660e027d62491a851cc41a3d7b535cdb17e3b3b70200c0b8f75e7934a1cb86619fafea705d2a3e0734b55cb8911f16385fd077a125d8e043aab70c268c5dd4d65d0d2980820b928f8ea489c35eef4de23ee31a430c573b69fbad09b856405dc3d2dae448068e187538e350199773ea2d41676fa4514cbda59f587bb17eef0347ed177a8ac5f0163511140448d27352cb04c483bd552405ba7ffc7128fdfea3d76d17ba8ad824ac9843f65d711534b8720cebf400a3d5471de4b48f136098527b65351c7c749a697732d57136570ba3437017f26fe2984d947c9cb3d5aee0aa2888863ecb60732671d87e8c1b416f3ccaf7fb0e6c9bfd07bff0cd7989d94d2f89fc1af297dcfe9c8cdbf18b70b6943b890924b965a638f50f90b2e2496d9216f13d630d3b3ef729803d80b651be4f0547ddb220889e99507bf513d40f4825c2a91ff27e4cd6b8817ee47fec079fb9c68ccac6ef6521fd8c8ad0da303ca5898274df8e330eb8e31237ee71c30967dce080abc0253e02017297a2a7244eda01ecc5b19b6f01ceb9ded9beb21c81754765b5016df71b8dec9d6f4ee776ea6bdc88464cdc903d74dce023a8cf377bbf6deb2c2da7db05778098a0d9eedb9495bcef20b6982142c01b2e0bd13545b205d6950edece490dcf10f151e7dc45457225341b506195fdfa0cebddfaa26a54894706da25c9f071b617f6630127911e582deecf2427faab7a9a2ec0854a0b7f00f563fb8b187b8f32c39fb18d11e789305002e4b543b4ea8c8517b11a01229013cb077ed299aaf78e18dfa3e4a4809b783a755abb549a8218eff418beb5aacc8e8835197bf8d5e8fc9dd66c9602387da42d039efc6d6707bcaa5fe3f56bcabc56df5e4714b89b99e54bd92f09ce9a28a72929be8c173821627e4ac699bf84be595f1e356ac6ebdfe2f2ccbc471490d453adb6c45d91346d72823aed28e2a95ed2bfdbec83b5fe8aa75082946aaa537e6db683a7cc2eea64f9d82876a6c6f2ad653f2401978dd9ddc939cbc30f0a0c9fafa58f40141610ac1b89e66d6317ac544e4bad910750e63a275654b53144d95843f95a4b2e8a34479720062f33adfc64a414e56aa3a54567f07b6f7a7c7e5abcf90d10ec39974ef8283827fb65380150f71781cbe677d879d1c0010469d035e22797ab34a8cecee31a2090fcdd6e3fe0f2158c29a60b9d94623d6092ffb5e5e2db9201e82f85806520dea93ee46601397e60e43f7c5d2e85d000b8ebccf490670718535da82bf839420fca705856e0eb86b6fe7e31a36e364b469b34a85e8cf26643b5ea502c01d6bdcd8b313eb942b8323ff97fae24f5de86170341b1e73a2c509eefc63ef4536e0e4ddd8b0f8d161abae5128bae5be15947015ac29ea4c2c3a3490da1b060d52edbd76c7a2c7be0adede3f9998f723cdfbc43a96cf3732e2013d9397aea678180f619a90211767fe3841f86dbc4e9cccbc72e6da9a0f24d8de73f8dd29b3387cab1f51020f3b89b32ceefa10523a4a6071dfb4728c48d92edd5ddd3e90e0e8da93e8880dc58dc44e1bfa57e2c0ab000ed46b60fc4dcfcf3716ac4f7c34f4afd5814c0704141f6eeb7aab8f4337be7a22ef7c86ab6dc40926962991073414143d79f1123fcc4f772768a32c3f7e1d27a71a0a860c72244b60bc4018f8b4eb83e8be4376af141201f50415f61a67a6f85407301e711a92a99e21c13010cf1e950b8a006b82fc3eb56328d7657ec0c508df2060c449cb013eb90561d1089a22e4252869a53067a5bab71e376d663cf6234a618f91cc1f872694c3a97cc97ec9b2702646af618bc0524e1f66216c00d0169d53597a21aee1d91eaa9da4a4d6c27f5bc063ea9b0fca6a1f1acc22c2ede8b2ad6cf343b4faeae116088583434f9c244aab6812ce180eca0f7c3848cb972e13606be1016cc2df79530eaf78a5a6a9cf197f0034497577ae6c3be4596ed176a07fc2950b9b004f4fb1ebd04ce4664f85f640754fd029a37e6705d40d6554d079930b6aa64da01ef2fd1fb10e80389af4e50f9a3cb95dc197031eb9fcd6ed245d2901fe16d41582b2e430ebcb83bec15771665e5434fddca47d09895132429119ed1306ed15e9e6f8d65a48db45023bbdb965b4a99a44c0123070307e60645a688e245cf45a620f2aa0d3cf3c0e0070976e9330f0c5c1f55cc323273b2a7aa33cde69a5763599af5cdf32183a5d154fd6c68ce7fe3b26cadf41362995ff38acc1b74cb30f7074e6f4f03cccd2f5c802a428e54c58dce256e0ba248102e78140c1999c81e5b0fb2cbf0a3a801918767e738d945afc6b2aa53ef866cb17678301543c479faf507ee70e3b22a483d1543e8e97701d2cf4f4875aee2611ee4f1dc8aadef552381431981e7f5fad87a9751ca2938761979f493679e71e2d16df00c138f268f1e673ca3e4d165f476f18cebd13bc633481e69bd79e95a5cc24bb7b28997be01f1d2436d458a0a5e7e41b4084351898837f508da10d9440f407026dec94d9e89735cc93339c77557f24c2ef24aced16ee44d924769914a443d8236c4f660a5d87246de8c50b4c79b6f974d7c7b03f1ed6dc5b74f157c9f380d59db3d185fe4db53d6c14ac4b78bbc928fbc94cdc17a846f1f792f406dc8b76fddc843710eda1ebeddc445e7a095e2db471e8ac8c12de7db397bf24c3c1bfc12dde4451c7e895ef2e28c5fa25f4f86fc129de4b58b5fa28fbc8ef14b0423c851e47c4c024a276a3cd966269103c2cdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcd76e2c30a4b8e4a0e8c9c544e4ace8b1c548e8b1c16f77250392e7250724e724e392639de97639263ca29e5dc1c52ced79243ca19e58872ba9c16979c2e87cb09e5b8ac9013cad97256602167cb61a1859c16541d274f8684a2ec49ab66b710d78946a45b32999c4e505ca05ea4a460c4705aa99417281754658505060e85c5504e4e26a6128ba770da55baa491c8bd94e8aa33198a3aaece5e7ac8fb5eb8b47016d2c2976ebf16d4b3a77cae972eadabc5c5c5c77e7bc56a9cfcf6d270b617caa7f05cae71f2bcc249c86adb48c6131a8e04bbf299c81480f8e83ca2d39b522aa9a49246a7913aa595524a29a594524a69a5d44394d293a7d4435a70ec02c680bd758e73903d925f3922553e3f3e31d8ca135265e4ed0f225265bd890fdfae60abd9db951da962fe959195cfca6b75e4ad5d19c2cdd1a4938406a6239f303b5232719f0a8caaf8bcf599cd39eaa56e503bbdd48d7969082e68f2719db7eea2a614bbd6f999c8ecf5f441161768f2c159c1648cf4e1adaf746a5e66b2585c350fae7e4e0fae602bafcf41030c1d5466bdb20ec39935bd140d2995a05e594f39b34445aee629e9d4352f255df31e3c58d3595c2d9392bec262d33229f9a51c305dc5a5abac7c3ba8d72f25a5f4509e7b7605b35acf5ba72a61ca900bae565e6f9dc5056b808ef82b3d3b6f5788bc75b1e117eb2324aecaebadafb4e697a2a1b2b4959a1d2aaef2e9c012d1a07d2bad5e59af9fca8ce2cc94149edbe1b0420a4c0b1d93cf044db2183d36381fa0a1a2d66c8e830eeb5c49873a0f96bda1695f09a757967aa59e5ed9e9954253cb2b2d912a6ba2e1a467aa31fd70499589c7b9f4da44535a626a99685a3246fae944f221e9489d2b3d130c27c429e9987a7a657d7e259d1aa12d0546a86416daa48fb738b8e04ad05b134cc6706edda4734522e762c74999c44ac673e5c3d1cee7878a6656466ad5346bb72d14da821bc0921902b4b80104759d48341a918c9044332b1f233fab232b19c7f8c5fecc5cd10bf3573efc220a6fc94ba299950c003d0030994433ab2352653310d224ee7643285cc5a4ca7e2b9954b1c9a9338542be6ddbb681f757486e50fde6ab990be74e1d8a6866a5c4437114d1cc0a8954d9cde56f1f08815fc9a4ca9ea0a0b8e8564644332b18bf58ef6999f9997a4ce13485bdb2ce8345bf1dd4b54f46afacb3e886e6f3db315dfb443c5c700543a5bc709312544a0a2a8c00c0d94979818a11ea1091312553cc2413cdd8308d82b8a615f556b15e59e73ac6e6d208e4c08758d363560c1d19c3e3ad0c31745a2686ab57d66d2886ce1643a786ea63b84470c118aeb7ae62a3822363c0183a6fddae603174640c18238c614d3a5265bdf3158ca56673965628fced93cd4213b4b244c684dc3a8b4947c6a84a5c3429913127ae09385d9049ebc70ab126b4deba49d63293653d76107e5ca11d7eb1be322263ba878f8c39f989c998d191954cc69cdcfa0a898c91542c0007a9b2d65d78e00ac95b47f1c0d5ecad9f786009e7ad9f3cb014be75130f2cc1de7ae7e58822cfa493637e690523796089662bc14c356d0a1296964819cbb2cebd7806bff5928fabe7ad8966f481a5d75b9cb72e622d43a31424634c406eac65986565771674675766f29147666f41ce6744829b72182ebd7330b63a0f871c8864a193026b934fad71cd6c640cc8b1fac356206feb119da883917291010719d3b9751d3246e4d6739031d2add7d032d5ad751ad6de1bd2403de52ca2613a8c8f668990f4563e5265b76d8b906f4252cec2f30ae655570562f3d65bc1bc9511a9b29ef2563ed200b6a657b6d6bc75938f6d49950d997cde7a2af4d5901f32f95837fd5837c5ac9bd458370162dd74c4b2b894bc3505bd3569bd35f9f1d6247beb212f178cad576dd5a7df123742ed2129db062965cada483dd2508f3534467982b0794a2975abd519a8db60908d50e9b4beac8f1f3e3f2900b20af20410b2203f822811e249c2c863c0fe05481f5de787cbae905fa47b247e696faa840ce5dba98f368b611e1f7ca80d25427b623c3e50e1410a0b797e38e241fa33a3bc7fc4cd8334c837a991f021486cd9bdaace762ed6eab536951f0e59a7b7d3cf07777a7bc421bd1f47bfc7e85bd40c391284d2e25c3e70d14a95acf73bd1342d478d98d65d5bf5b3213657b956a83aa76975ab5554b99aee6d0b7d34a8378f2f6413b2dd7b05d359cb6c32240f724c8bd11ada835eda6f32f19c2bb4048e9d5db83979fe7041baf34c70e419d35f51f0c025635a7ae48da34794c7fc81a58fcccc5432afd8bd170e8d8d66a3d968369a8d66a3d968369a8d66a3d96876a294524a9188f103e9101f43916015c561efe4a77777778e1a33dddd9b4f9c892ed2e282a3d8c8881b5fc091cf4b8f1e685f10b2b9102b9abe05e1a54fe728b5a23947b1cde7bb40ac42dcbe0dd6379a15f2f84242df8e1d58f287abf9e6d2a74771241d826346b29112a42771e2a56fb06df6d23758cb98587b37d80693492548263e3a384af2729ba13ca594520a820749a149125e4997a04912364912b6491293242d2685dfc2832649f8e4e2538d6499c0acbdd704c6a20bcc0809f98d6685766a0c10e7073be15c22224061362200c3160686092ee41c0a2e75aede55bf321220652c0e8f8f2055100fc27cfdc00a1e3cc0579e0fb49edb429cc7fc9281f043d143a9183e140a9b27d319239522ceed73b00fb914bd103f24bb11d8018fbec957abced0c7ebce218fc4133fc11c5aadd6eb407d64ad3d8aa66b9a735a7f38dae5f36bd4bd7ef4c3d1deb2a7fb68560f1a6b090ccc8f2e5b61abd50252d3030bb4b65bc0dcdd33c65a6957d1021342fc182244c18f2ada0431a835f0517df880fa80f130052776c0b29bc851d8a20822a270c1112784b0fa882876504b206b7c24317dac00885a6bad3e6ab89a1e50a8a14e7d8860f3d1aaf17104f591d343d6d480e364f0ed2754f7ccd36305cf3df3f438c10fc72e31b2dd6e6976770c75006555cb2faed20fb81c2f708e17e48b62740065c5396d9531555a8fbae2c7bd434bd904ad9a5bafaae84651bdeabe3266523ef2f3c3d133ced994db663ddc383bde38451f8163d68d50e863cd439fed558b78b8d6439e768373fbed50f5aa6f845cfb76b8143d8059282150d3ca40bd7e38e6c791c54d3ba3849130ae439e0db9fd76a04212e07cfb7670425ce991c5a2054caf1f0e3aa78c492880c58c8c36a513469086f2e221812c86103f0a49508507f9899774b6e4e961072fa577ffc28fccab1f0c899a2896401d65dd360860b1005a816f9f9eb5ddd1b5ae9b0dd85ada6ec9b567ca49234a068bc1c880611d38b870a70d148a613030303035c8e6a44e58bee1a9b75b29af0a6edf70fae81393d99096ad7529e5b417a66b13ae7556ddeeba053bf11cceee8e91c3b736caf842043053afcde30639f8e944d46a0c1c465e55910c2d030f1c3c75e2278d33886319037617396619629e1b9552ca2965adcc1ab59359c42af6d92e597aa07d66d168eb81a7c70d019e7968b278d3334f0f43be0ab1f51ca993311a00619e71e855f4a01a64367c248d5ec5703ac0023d6c50822480a0c8107860cd0fa65745c094e04194110faa8a785006091e641f221e64d9c7117c0b529ca008cd12542ca105ab817cf4e97185152d08c10f588480c55268d10326f4c84006533c410052fcd4207644881556b0a2d368191e47001591c288278c98410e8b034718294209456040050a58d16b68191215aa18e24606419af8002b4201044a8e5042084978410f58b1f534e40e9147cbe984208ce821c8338f0786bc0f9e797890bdbba85c1f1d053112bfc8ee59c460fc0ffc7044efe7a7dedf9d1e2ae2883e1f47f453bcf143491516172451c17125f697b889b6b8d1394ef4832b5d7ae414c04fbde2b8003b18b7dec18303d641ed032d37adb5de8307cb7e3d42ce7decd19b5588f590fd7cb0be59eb5b0f6bbdc7f6dd5eb1f7e00f656f73cf2c3876e1783bc1c5a16558ee9031f1ad565de5ed551c18109feb67633be2821c4ea7d13db559677518a962f61a5b4a9844ec130760bea2208721a6c6506f196b3feda3dc8cf65aadb34ea7a19d73ce6ddad0329b4f8f413c630b96913892071fe4103f6538fb4d8633c4e946d91a9e7ad844a4aa7bbec306f8cf6fbe186708179caf8f73bee6901d1913ed4b8a1caab0f301782652851f9e2381ad437e9dde1f8eeab67e38a64ba7df277a41477c194535e61783dc761df2dba37ce9f1a5fca20442fb4f4a69b7b5dd5ed75a6bb3802ebd59a71fc8ae7dddf5b3cccc2c550ef69c48ba89922aee584d434a41cad813e09807d80fc83cad20e6e121c8cb4f87fc0ca05e072a6a55a042eba3f3883107278dfc286284e6b9c8144a1eb42fa7903d1799c2e7c119bc6a9bc3097d6e85163aeb316ba5528dfa9b33b4bbc22afd4df6a4a85b6d10b66a760b719d6844ba2593c989f28a8a30707282e202f5222505436585c5bdafc56505165a58b5d032b24a359adfe417ea1d98f1fa822b6568acb3a3246de1398d85e7ec0acf6dddf45cde432dcf71df739df79cc89f1bb13c475a79eeaa3c5782f19c29f59c49ca73a717cf9da0b878ce05aa071c6e6cddd3732926cfa54ccfc1283da7729f5b61193de7a2e7bceeb98f7bae25f49ccbf6dc0af63916b4e75aa8cfa9e873abf91c00fab900c8e704d06d1eb3e68b8a4e184d89c6c38dfecc2e4c1973e8982fa495a221b2a84716fd6a3a16f5547bfc540ca46f277d7f208f17c201fad95e7177b71338760167943b9206dd135d905fcf22017ac033e2d74de097ea1c4d7ebd73eb3c6df805c7ab5b7b2f0ab523dbd1bac7e4337da34f242a7df7eb9eee99754ff77cf5d6281597fa9435b2a6439ed1f9c9abb7131c338b6055f5ea72a7654e5fcfdc413b9ad9b8b016e5de1314eadbf9da7dd3668994b54cb417e53545c3c9c94f9c59954f3c1d3c70e228be0305c5513e1d50769c388a14d938e1c14ba46ccf7ac637ea449da81375a24ed4893a39040505050505c1c071cb548d7b50f6a250aeaa8e12c405dba66741b3356ba66bdab870e219fcf2f98252f6d5656d8353bd75aaf7ab7aef74871367244d92503d47aab5d66aadb52350c2125103452541cc410208b50902cfb431ca90a8e93e7a1be1c4e8a34b69ad943c36fa45d558f1d6da1b54f5639e1b9f7ef3036f7ff203dd646d1cf58083e13062c789fad97de4a6d7df9de92458eae8481da92375a4cecba73de4d33b081c337d60554dcb84be8ef54ab39b0004f060bf44d676f7722854d7fc1c72b5da35d105edebfe8167d4af8dc02fdfaca154dc9e6eedbd2894bbf4f919147b624fb48936d126da441b1bec762d4a934da732ec762d4aab322c7851f5533d4a1031d92c68b6664dbf78b0a677d8d3321c4e6f58cbf8f08cf85d921855d185fe62f86400c04b1e24c1e2037c8ceee4d27d31f0dc3eab841b5d8552cdd62155aa28608250841c3e1ca48a1fe4d90c0197c3a97330b48c64d15a3f0a84fb34a4e635846ce09c06bb857ce32aad1e7b7673c2a59e669d86ac31bf78821e20dcf8214f46afd87e9d05c72e9c0becf3d9615a464a5474417e30440254af9ec233e2a7007ea90ed37121192d43722679226bbb7b39142ae4ae523d88fafae5d02b134c6a44f455295cead3550e60907dbed62b55f5f28e4b43c2105d42ac842a339e81025bc27446267440ee99092085b8d4e3339da167e21201915983d9b7732b3db214e31101cdd3075b6232065ce9d99131a09dbd30f2608b92174dc810448becdb5b565660df1ee5494709128e3c41c866d402d707aec0462cb8d2551cdbbe43363b241ccd6bf1e9954a129519bf8475a5a7a5c52f0daef4acf4f4aa5b622d45e09618cf882d5bb424f96eb9e27bfb5a2c0a555b622e9d6f074938dfaa2142362db1938ecac52f412ed812fb7e11f6782f5efcd274a5e77ba567e58915d84a100b8d94a1382b464410d4125b39b2225b99ad2c59f1f9763a634b2c94c918f0c5abe5480b92ef172fab9ab5e490fcf0819d6062477605cbd022bc92f18c085479a8620b0a4592ef2933109d73d48fbafccb119fdaf04bbb8dcd11383d2f5a4186d0910dd9099fd091cd9028710111e2b6f3334ae8524204088c90d8e3276393907ce49f8f3123368830ec0032040023e3a30b7b5e64a992208f973eb9f6bca3fc8e00022524d08607b73a32b128c7f56d2359128a112ec9bd067550877cd247721d4ffa484e499674658cf5ee034b4efadc7e336251fd7652c6e4f65a92df80faeb96c745f3bce49927089f8f22d2c7d18e44bfe45d6b9d8a1a50df3a67f2684ceec359a66f09eb29d747ce894433a36e34baa3eb37a08c087ae62902f630cf3c459ce0b9adbbf76b510c95e4d61b7929eb3165bf8e65bb1e97a5cabb8ee4c5bff77a9bdd26920bda07477e43f7d66dbd4e1a4d3e3ddbaf932aae21b85cf5ee7ac8d60a9e38af0e43c6909cbbcedd2f0503fff517f8ef972a398e2fc5899b8ae1baf56bbde421e7f19b8f4825ef8a9c452392c7e347de0ddd8b381ab24371293cdb36adfd6a273b275a4ecb35681a47394e7a9d885251b7715a48dbac26655c82631794265cbf3da5cf4ee4f520f251d789462291c8bbce455d27124d9a9edd53360f8e5166b36be019fc94d26dce6d9b5e68ce90e65d48004f9d86a42e4f3fd2cf8f8bd0c49e453190beaf18a5e082f7b921b0cdf8ec955da6aad7761aacf7a7c31237a4b7eb60290dad83f54d7ef6ea20bfd48d76d91f5bfb5956d4e8f494a6d539e784e19a41c07ece39e7d42a3d4d24686aa666fb0de9dd2e3f10f57187f4d0773986ee673b6f06b9e23a96abd333fd3167052390a79b8cb11affb7686a5aad19a48abaa516bc3f51293308ccdc3c4fd7e471f43c75cfea041fd23637a398d9479c733681d9b6eff84d8828a5d69486524a29a594bba2fb4134698d31e6b8a26a9bfbe419d143ddb6bba71b4e27d2a68568ed64d442335ad7dd36dad04aa2fac1f003cfe6ba18afe8443d5c9d23d26c1aca90d1838c1aa19f5beb963a5327a3279411b98803cf76e888c0049070df042210c307060b189309d775dccc8467f0e9c4e564bb8b62229201c7e9642a9d8872cc4cb7281cedc9d103783466da44d48d5044396642aeb98831461bda1650ddeb974fa777b74fc60f4a7f2472818a8caa756405079e9eaf5451e9317e1ca314f59c9d566560a00fc3e6018ed3bced5ffbfadcec34cd9bdf09a011d2ea8814d25c6b11c79d330cbdfa96364a5e3ec8b21c6ae28f4863834c46b2e492edbb41aea40d3332990cbb75a12d0b8fce2117dbddd30d278edb66a36e8e99766a6f536babd7cf45fe3a830da9921f0c40c8c8738eaa572b6344d1356a0161364d47d93cba75d2b2155d40435b689b81b5d6daea3dbd356babf7f4d66ab756abf7f4d6b62d0bfac5a6da87b62c7a508b8052ad66b518f44e7b4fc35e76bd96dade912a9109c77b47d3667446abcdea0f6030f2c1ed96d9ba6bd76e9c96a9ed03c7d45aa1f0d26b28bdcaa4aa4ec13155093e61168c83afb296e91dee1ab08ca6d9e8e0a54b73bdf469998682bb0a4da6c9b4ded17aa7ca344d56655556b380424d62e7a7eda0fd6665f74ead816247c3f9e9eeeeeeeeee596da81bb178cf9fd93fb37f66ffccfe99fd33fb67f6cf0bae1b5dd3c9bd9fd93fb37f66ffccfe99fd33fba7643aa1a0dcebf933fb67f6cfec9fd93fb37f505cbc48b9f733fb67f6cfec9fd93f292915f77afeccfe99fd33fb4765c57f66ffccb63f2cdef367b6fd71efc76b1e4b7a561bea462cde136836d06ca0d940b3816603cd069a0df482eb46d774720f6836d06ca0d940b3816603cd062a994e2828f77a02cd069a0d341b6836d06c2014172f52ee01cd069a0d341b6836504a4ac5bd9e40b3816603cd06525971a0d940b32d108bf7049a6d81dc03f216008518c32662e4a54f1825a24d4d6b19b5b09bce202fbd4e1c6d4e20dbdcb696719bae5a63f6c84cf6d2b923ddecba96b18b8542af6e0891972e0a47a42177dedb32de1749345392405e88d2a4393e9927272de3097fdd7a75cc150ee18273f682563bba5e4be2489dd78eec99853d309f58bf5a12d66ab55a2de91393cdb4d7ebf57abd5aad56abd512ddce744239cd82644bd6b8c21e984f2c0cc3300c5d2e97cbe5ead84be2bc5eafd74be725772a9dcd66b359188661e872b95caed7ebf57abd4c5050292661ec89b0e81373856118862e97cbe572756c16245bb246ba6418866118ba5c2e97cbd5b18e75ac6331548b29baac0d4ed479d51086611886aed0e572b95cb127c2a24f6c7618866118ba5c2e97cb05e36b29d5c0b2d882097be552a9dc51a87ba34dc4893af115650cc3300c592e8c958133ab41a57247a1eeb5d6caee8cfaacd239eb399b73361ac2958ed330d22527e325873d30e9dc32b4fb404b3f1c0a83a93e24aa217a0a2302859db48c5af42322b488b6ad65ac5c6480106e141bc560408e455738933830ab81301c8bae50e2d0aa552dbac2d9a495d6982b86934e1a5d3d5d4a29619e256914bbd1594a297906911bc873ffa82dbb7b76a4b15ded34648fa468249cd735b4475234d3dfd1a3289a5f70f1f493b019290a725c415b31c618233572518a40758c31c618e36c28eecf586b8cb1866e0105b08831c61863a4536815a5522d5eb0888a1e551126ca881ea3a8868b6f25417a8e502d711c58c529f1cbcde1461af483cb518e50783cad41351b6fd8c0691c191344ca549d1b55677bd19cd8512a868f1f88818f0e932af627702877c6a2a0746c1de97befbdf1933120a0cc3967bb58b0c1ba8667189132f6b623f956c925dfde2e9e7eb20291517fc0a896f8c807176c5777b541792bebc18df52bb8039581c9181709902b1aed7ae9aa47549b19aacdb31c31bf6c384484491c11421389a049822609254e52a064043d29782205b1951100212283273c139141159e9d6b6cafbd27e524828b2e418f46dcee8fb26c09c4c8cb94979204a343803441890421e56c96e084f18c9397dec9d34b182fe90c0693992d333333333333333333cb1a729c16524a39839c9d001a324a10d80fdcdcb78d6d4754a4d1d4d341493bd288cb1edd36333793947826e94855fc00c7524a296527a72c3299b6536fc741bb7b5a66772d6efb0c30485502d8a3e0f9b3dfca54abcd39e79c936b5a882c3033b34b0bfdaaa7b965d956422a1c8c2e254a19bd60ee98992f33a35819dadd26a793c98909a5e4e2a2482f4629a25407835309ad6c2cd635af7eb465baf40a9285d842c7cc2db0a01a9d1041b31ddfaef02ebf69f687fd389d78a8c46c190b8292a19901000040005316002028140c88440271204722494ae30314000a6e8e426c4c4a16c7025914a5380cc218c3084080180008010a1499a92902014a448f118c931dc7cf7e8c1c85b66d77dbbbf324c8131646ca8dc51166d409c43bf800de9b5219030961805ec0716904860c23648428f99105bce3eead663f43433b3b167214ff08595fff49d00867aaac74b4da0728ca2253f7c0e035aecf6142ad3143b35c7b20b0be6ff98ea0487e891a01502746998f6cd52ecb8ac891b6d9d91f3bdd7cc8397af52232a090b44b69f6cb526fa7c4a76e77fa0b6e618d4d074a6ea27c3599c3fd85350de27ec4d2d5ea86c430e85feedc7685bfb5b8b6cded93a5c2bb264ed4da70d3217d7f4212652139bf9f022f576f1ed7c205b93d48fc3accf411d92cef04fe34c6f7f7809badb6e3fd80ff4807011678fd7e56b9221c3d4df03e6fba772ef80930f108b6eacae6d0cfc965ac4d80d715d8688500e3f89f9231120c3e59361970bd8416a53775017798d08977362c3c8d390da7973b5f11a8e645b8eadf7dc71f86d9028259fe1f9c413237b60f11940c90957205eab98ef4450984cc1e9498494990c0bd99639348da18a18b9e959ed9ec852b067c7b4445979abf6da0b14e62205bf69b82435051a315de042995fc4ec09f872077555096e76d3ade58362cb3b626fadaea823600ddda6d7eeb968124e33308be51b51cb72a9d30e037372503b9f7e849b06e57a4fe8773f255035c42bf79670cf931b077140438e100bc3bc05efce681ff116bd79933c087c233a1b29e006ae881880a23263da69902e970a74743d92abf2cdb260c1d8b7a7ecdd8de911ce8d7a02c5ff4f5818049d6c36d73c13f5eb8017cb62c9e1e3433b964741907ed86f30d362b3ac0cb0df1b71ab1461b7340fb3fc7a341a9a44f087aa92d4505cfc8fa82935e574f7a800c2b426b8c63058a910fa2d4a8e4b2fecf488531fdb49eb334df85edbc8fbce2a5db36c40eb76dc9c36e023f6e7ee038a84002afce0c2b3726a99e2be882125e6bfdb214d4f366258218e2487b4758939fe1b6e2664ff2a455e3d8acfef1c62f7a7c03d3ff021a7428de133331c082b91a8a70847b2bc7b6482516c36830055b32df65f6b8df65b4b10f3202148e26746fdb8d3714138859f1592754772fe910a5948b74c2cf880f7561e52e427f46bb5714b1869aa2c9c704c49094468fd847b6bb08b94b0a4b22b4178e1adec61634a1a4e2ca48396ae66cfb38165fc30be52cc201d6ffeb094142534372bf44ec36326fa508218513d226420347ebe95bd77b264745e8b1ccc952df331a07264f883d5a61e9f54056b11177e2cde32a57ad6c4000630cdb8491e0c3c22bd944b73572388a859059805a057eb68392dde65174fed4c028b1d3d4ad72028dfaf2894697f4dbde797dc1be6efff575e6f5754bea75b1a3f75492b81b4fbbd097a8351d4fdbababd754dff07748cdb8b84dbde1fe68db44a50c452101bd3fe87ff1f71d39a30613b31ac898aa1ab4a3178e39d5a248342f79b363bd0097c585af434e90cc5fbd5c8f06c80b595e46118c757ed8188cc7a72799fe394e22bcb339311aa570739a62a2f48218e9047168884cc3dbc4853bdce320a27b785c29499d9dcb0ab4ca805d8c1f0b0d8d99f3a4d6e02225ab44817ca683a120ec58197bfd208797831830d406cd5569c15c0e0e6d824a863ecb91d054c2e3864ab6a16e2976124f068b6ef3ed0ed10fee4ad2225b55e3c6cae4729ec3a44628f6310a815c42d6c45832a11e2f2f6ce6e5a83d26e5dd0bf9fa7bfa23ead775408c6e1dc96d6f48a0f95e4ced6978686b84bc5b7fc0eb139a3dae2a349cf191202d6d22924233d6b0a5e73f9363241ee2762d01c63d91246c98334a9100b6d8f9a8e382dc92603b1253e1dc22134916c81715c41519ac5fd381de4cc0f7f087c37643d5da1eeecbbaf3f456dd0780e6751f50c876797efdfcb537e38d3d02160ae5dd870ae1052358ddc97e7fe836564a34a1985b564dad9a735eb8341eaa1bb710496ad8d10aea42b38aba1eca4dc0a951edd75f4c851371f5242939ee8702a186b980277831c218a36090fe52376de6ece30e194e280ee94d4db95c9cc9af254af37be2f67d0d7857b5db7709452a467432e1ac9b320298c4589af05cdb0a421e4caa45913228fa2e2b8fa3932d3888fba0e6e1fb0ebb6bac339a312ff5e33296e232f255975a1aaa45934fb37352c8abc051daf82c45ce9c2318d0a634b77c4f38691e11f051bbf20d3f01c254901c4b724bb316e3f2ec41e8483c6b5971380508e4552fa84591e06400cba7910c5be600a50a1183a363531051c02378fadf76cb7d78eec12808d3a1634fff4b687a31c8a7ff35c0240d140c128138bfc4e613031dc7b550af807748fa9fbcf693e12a6f319d65c7d9ca196abc3006e16f51ffd33bfe6500a5f8cd45264be924d311820a406d3bf667e38e68ddad952af704065f294a04dca84a196e68252d6e8c52d0378828858033503db5a2c4418371c7b9e11be80d84f7200485e2598b63323c6305a54dad8fdfb30c3a0e36b53e7ecf32e838c01aa2f267717f4e586d44e1adcc90cc18743bc4647dfb3363d0ed1093f5edcf8c41b7231d8d27072c597ce1a5ca00cf00620d85999dcb049c79154a4cf61f3f33667a1c706b32dc1061232de35b1910cf32e838d8d4faf83dcba0e3803502c60f20e8461f8c3c0388351466762e1370e65528589b7936823bdfca80e86b468cc52686e3470aa0624d0ea1795f9ab6a386902b0ba70892efe7f208272daad19ae0fbcccb217343fd30017e63ee4387413df1a20f7f5872f73f4fcc5206c6eb20a24ed999cd39299cb992524df6d7af33265d0735d95fbfce98741d882a59e9bbbabe37542da2f176a610674cba3a68b2bffa9d31e9eaa0c9feea77c6a4ab83af46c70b2aaebea2a5648877204295e2cc957312ae7125a526d7afdf9946ba0ebc6a1cafa0b8512de2ed4c88ce98741dd4647ffd3a63d275205581a31714f4440f66de8108558a3357ce49b8c69514ae9abe1b85336f6742d42b33e6a246d3d10707d0b14a86d8be9e6dab434bc18971ee92991934d9f6deead312f245911bf9ae64399d1b8b430bf13fe421f2d7dd17c28d311834fdedada92c75c2c7f1d205c4e81a2099f8dbe025edbbe70488ef14d91338f0bd33491456e8c4108af407046e96eca0c55f4886c00414b7c506819dd633d33c2dc8ca81089a2d868884442a5bb0e0365735ee0c63bfb75acd8b6b50fd61f68857a69a0423acdd13c09cd68f98e59612dce25aae91f45c556e7fd034e5764d9954ace6b56a8d437c93aa1f06ccff14ed09d0c3b2672f136c4843f3cbe278ded656697ada86892bbf0edf79bbb609187049e3dfecc2bfbcb43f60ffeafd06e9a81242b4b6c3fa375d9749319e679e1c743c30d86fec70f63a351cfbb5ee03c496e7e8a0423be8441f5d36c9fd93ba2a633110b27b88bdca48b0461b349517b8e37c6522406b2d0b0482e4cec24a093d510e412280f82b95e5f94b0b1c230b8c29108ce3b486a952a9373e7faa5b0da79eebec85859d01a083607b79fdbf104a779a777d7d2f7518ed29187bc37e6358ae86b028fb0ad31f7e2fbc78050b9401566fa4a5fdcf6122b37f1bf6497daca650c51ed9011a5bfa437a15c0e8366a93a5522a63b3a15c8e94cad86cf3d865e4f2b01c5a731316e9151ade287d95776c28e64008134d803ac4cc9c98e8b2d6bbb56a0334564e0979ef558ab44c71cdb28fa59d26da2377aaca6fff4128bc69def5eeb7c471745c1aaa3de9effbc88706d836821db5df2192c9aa1f63b8befe4b3b894614ecec3094d6b5caa2d66c852bd1ff7243003089148b2aa885bededbca96f60d1b01d7b8ce68cf7b4eaed836812aafa6a29c068340e24a64e36a2c4bf5ec055319bd03585e311989ce7cf8d9fc7794b9ea543cc7ac247f63cf6e5a99d33750fdbf09115623525d57df4b1c4741a96bff8152bcd39465db448a4c6138cbd783ff8eb38cd6b93388b5ec68495ec209479d7a09e7ac519767ead99962661b382f46606e0a581681d5875ad0ddbe252f5eb59ff25eee317f6909202f41630757d57af634fab602d4e695d8012611d753861e1df2c882841920b6bfe6e02e54bff28dfa19ae8b4d08ebdf49e67b756d3f908aee9a7f7dfa2c713c2a5372db6198db820c473758cb9df134f25e0c25f41b48ea71771657c86dff9609ce7111490ba5b827d73112a2a9202544ef35ef6b1e9d177188d5a93954337ffdcca79ffbdba0e847d0c3264eebabe668ad6f6e33b54e08403750748bf72c5463163e105bff4efd64cf325207b951c7e76925591a2b4762d2798cf4f4ebd9fa2de904a2910db6535da4de0a68786f03e387ea5c22b25d8b11bfd5ae00df5fc54626b11341730212a34599ec15c949a9f3de18a037d4feaa3ef1aeb143b235586780c09ed312e95070d380f4419c15ba289b7e9e293488c6bb01870ab1ccba38ce0e87aa2b78ffb2f92d23783ea9ded109d8e973e3018b4cadfddfac0f4e9a96ef3809b5dc5ad51182726c71dbfdf46a1b0a766684edc63704f21bae6e312d62e4aa648acbd73363a093e6dcd5ff0d02ddcc313b49a866c72f6a27075ffb514badea06120f63edf6b10a4fa30feefd4acaa313d7b4af86108dd6df36a5fac1e20a82837d05a2c9c0be640bb22ff959118c9e64ecdd73786d041e60c9f821363dded59d7dbdfae7456e97a11fc5f92473cce19d6e903fbce13652752f30cb4fb6daecade13e006dee9c825afdda628e6901c126abb0702c24079980b4fba1cc50e876d67bdef7d0c192277cbb234adc321cf70153c5ac0589aef661c5e9ffecc2ee4aa9c5b65e43cdfbc7bcca81b9edcc50c033534416531f76f631f1a786d86b7f41eb7f00abdb6fbdb4bc4d31532a892acc80b3cdc161300b3750c58c277028f3f71ca6f368b00bacea4568e3a702336bb671b8d6495044909e5ac53c44e488ad0c072631a6e23ec34bac9c7f4fb506d91ba2b4b7a09b7cc00be7e7d1abd8ae6d11d31c2b939e6fc521354f3a90a3021742c54f65bc7d66aae3daefaa704186d3a602cb0cffa8fb30a1c0b5d50347d391580b7ac9c2d04bb635d2153804768c99142ff68a9a20909345656cd9a1cb74039d754593796dfcb08c5941c77923f3bb43ac1960c78a75d8574eb734d901d2eb9898f78fd193a1db89c0a17a2fa0c9ec98ea0d280b7b1c6818b48de4fac851aa04c91867e309fd6143ff378c390c48ee3f6db1d029335282d98027ca21b224e5c5204618dc466058df6e03aac97644a54104fd8671a3ce4a4a6f383339b2a32fd5b689350cf81ec1c2184d8ad0822cb3c83402d33061816a49a689b047deee2d236dbf15364438507abee0e5082a9f15f9d026206f605cdb548dc54dd5121c0677bbbfab4f661b75123e526facc77654f5415b5ab46a709f8bf21105788afc0d86e907014c90fc0ecea730d560af8e59e905497468a2db4d1b68bbcaceba8bd5ce298f3071afd20cf1001ee10e1024b40110a6b7301d5821e8d1f18198896fd81c0dcea804b3cd6fd034e3792c198c46ccaac79915f9545a615747baafc2c6860aac73963f5cdc9b888705a20bec737b802e366005e5fed1ac8318ed535377e1607bdbd79ad8358d03d82925489adeaac336153d1168d97e17118ee2825897089cc8897ed7965591f7a3772561280acb75aa71a39d24fd5233a81725f14b41815eb686e0d8887823bfc85f99aea4088fa579daffe943e8b7ba1cc4d3e0f3f578b0d4748029879d8b394b04c88ddb27bc2aa462387242d516e40c3a8d726b749dd26a08a0937edff11020fe0a66e16536fe06119d186aa41eb5adfd25f54c18fa3b31b1adc4b744e0d251d6efceab144e55d779d0f25ae94fc412220a66c102c52bc065be9db60dd5bb2d8a2c32679003734293a7a7a7d141748a7bfaad96ee3921807ac0bca67b956461c723de6dac9d12282752b9dec2c0bc1618600f600359ffd82236f4bf2477249ba376c124ea29a20f2c0128469f0691e6a104d807f2c009fded0311d3d05544edc93088b92875ed9030b029020cd4f272d958f2043719bf2b9ec3e6b01a677c4b9596956ed4fdb5cb3262b301b0f4f0b864f84962b2f504ffaa8985d04eeb96a2fbd6fc5b8cad7e812d31c7a94984bc37906db42487c4a494af9c411c51ca6824b1965c099ba6418c4be46947f0f69604042efa42b530f7fedadb7f35a2f7b856759cb054f4c02f2a9df0d4c439c1b22db18479ea7b8b80966dce11ef010c03ddcd0bd6704904b3f4a508323b3081577819b9468a5828fa413e2ed8d09536804049115580dd888944084613e9bb12a51d29d24678c7fd050157242174b48cb8bac3ce437347c85c895ea53d050a8f8d5df60a996582959b2284feb37e48afeb83c285a0816f2bb31bdcaa2fe25f33c804bd1edc6cb1571344b8469051d07758e8d3a5de8e0bd1a983d5c1d4e671a15ca12da010735157ff5f59879f04ed2c2c1ec191f593eeb435d824c26d52d679580606972ab5ade0b156a78e2d1770f032b69063ccf0b2c2510667dedf5f45393999590e7ebdc3e955f80d38e736d3c13fc720f9f7274fbe0a02a360a603da14df73ebf1a5c3c973eb5cc805f3f454ee21c5fd417695ce933b8ef10b0aee14df28c0f085b468cd7bae3044d19f589ea51746e475bf50a82e03d07e0e3f8e9d3802c763c410fb147dabe8649dbfd7dd24c46182b50f130c6e640d6c46a77c925488ed27a37c66322062120820c0255e5b3054a2526212590ff5bf63daa2d3f65141190cd025edc051ac3553cdfa5029a5b6efb6f5f8a619d249b84e6a7704b833b238a13fd302539d8a6f8bd8371f6365392d49a65c5539db8353be24f02ecf13d0a211d1aeb381eb372670543451147221c3e00e60ed1806d47868483231cf98048a9a6add3d45c8c2e409e64ed4e6d7e0358dc3e9134c36032977a24fe3c7a6b0d022d38291489876d233a872b574ba921d40d7c73c3c446fc4fc4a6336b63a8be85e9db0dd53f4a7956225f5b493e95c8c5e22a9c9886c25fca8e0f822e86ae8da334ac60efda312c068588765fc74806111c6d84c9e3ebe3c300b2d78feb9864617695f761c53b997d1f67e71ead4d15029ec0d25eaa2a12576afea879ec7ca40311efd24924eb27b2d31bfa4cb608f8201ddaa430a1b51aac578ceb64d8240a44ead66b78a9779dfd0cfe0afe1d7c0cafa35ea1b5b29b542c41c1d4f3085328a565c970679fd8d2c58dcc3df414b7388ef4c4fd2aa82c5199ff65feb9604032d20a4515fd3ec7ca6935f3533a3ed1082d5da5ffbfc3a78dac78916241660067d125963bbe050ae8cae3c6d83a78cb68405a58b54d4c1f92112b44f4e8498d221ed57b204c99ad0effc47efce413a82cb9068dc5308c01bb48202c44a13103258ad98b384aa2aa19f6c11ea40a2e10c72a016fd518748347cca12f86b0945d3b3ac41bf955034fdcb1af04b89a1200817199dee950d7ae0366bad8050cc80e3e4c23dea10133dc47534e59b993560298739e183c2f625df4010046e8af325ea7a0e5c36e82b888bc6a75c83be83a8483cca36e83b888bc4a36c03be82b0483cca36e02b088bc4a36c03be82b0483caa6c09820763c70ba41b3fc2825231bbb101962aabc28f940fd65d3f9742c02fb7e825381c445553c5edddda4a3bd312ef20342c540c3909751c9c96f80c38c405acd991a7f9171ea68553d5c8b084a0aa5477c27122a2f27a001afd7474f3bbbe3aae5a313a294413bc19bd46272757a53266aece009d6a030405ad1adede116ca32637fddb5be1023986ef98521f8a1e85c2b4742f00ea86450c52e9f3e006e9df9501f0eedc26d6fe9d7dd7c0dbabb1db26862d16cb44097460e1fa953765ef06f6ba5be22c76247bff33aa338d2e1ad5b9a0b229735029499c4755de837cdcea7f8f13d430163f8c2a79b3f3c0f5b8ca8675f67945fb15cdfecc231c6cb12abd0c3da0aabbb6bcadaa2c5d5128ab0e75c7d9986e39406b073cbd6a8c80820fe123684c5a7aa7389daebf50e35b01a72bcbc0d76b52a141422c000ae1f0c2f1a7bee38564ea483086e2d37baffb484d814b5dc9e86a31beb704967e32dc5e66321ad82fb9b9712f12a2fd62ce5b06628e91101806d78035a7d393df7e924b0f7b82a45a8d6f3c007e93c115627b2b89a78dd94b692666fe62f776ef0f7a88eb204423c9a6e3503909d819a8bfaffb0baac1712d2b427ec9c88abe32342bd0458790cac4e02cc1da3ff022ab2b37e959817dc31ffe62b3caba40b49108816f6fb29075602f37af2a164ff2b0f0dba109738305843fdc3e1f60f3e5a5a913e6a4240f839ba883264b318005b3948ad900d9ccecfca4160f9c322e7033456f63dc9a2fec3af6cf8d4f0b47d884d661ae517376ced9746fae7be832477fe72ad10136983bd04d455f800163d2d39085340d0bbebf9bc0c7e61a6b7aa0119c24fcb5f59c3406577a70f01e9fdf9fe3becf69db73d1790e53e7eca930614a8cb9c3ca8f173acca084e3a243f265fc380aa485781af9f46f1fdae74d9f295487050468943a64e4454bf0364ed24bfc71e252f33cdfaa4843c58722c39120c1cdb6152ec9753f08d97c31de248a867345d53599b862d6423c22d0325068062197bbff3b29297ab95f5046ec923fcdbe10307d4440a467ad09adfa83a480a06bedea1855be448f672e6d70938345eb2f598e5a42e4c7ef694396badfb337e695c7affcdf59afef75ae0f8756a237f3ae4da0d6a8d06e27f0eabd1f28a8afa3f01e28aedf765e32db1086e827487d773c99d0ee5bbaa2c858dc10b8dab2558d22d2ed160d5bc9d621026aada2c3ec04ce7224644c653c49f433788b04ab651f3b8b58823357de67d3f3d614f691b19cc4d1220fed2196e686ab664ba3222400a934c87be74c62559225812b7a2876f15620e4ca149000bd2c66729609130e51b7c285ab65318feaa2fc530f1aa80032fc7078cc695beebbd8576213088c4e118b84cfc30748ca750ce82c0620c51457356b7c5d17a2a949658d6a87889598345dffabc4533bac8d8e2b6711a55678649b4253175ca44cbc1a9286177373a6f0e6cd78363df3c2fea28932c1c7e7250e7c75f24b12e48113468d11e1143168069593ae6fab39fc03472c7a9e8782467925fd2e939c70ea600d47e2850802409751ee26ed9504a79770c1e7f7868117bcb044ca3f3c3b8584d90d6434de5eabe4fee90dda210e30cf2660704d4d781517e1876db350ba78f34bf8686810c07eea5bd148e9f414f979208107b2f1bdc438aaa4a2f25aa5792605c3d24263ac7b412e0c7ab9233b602c10562c341387cfaba96adc6a60210ed4673b30d1ef80f32f46d7bbfe0541eded86919f17f8b032947f5329dfe017c100e0fcb6fcb2632a8295f9d60629524194e619d1df24a0e8e2a0052a38c7090861b901a48e4f3ddb89d368fb03f1f494f773cf4e671f8123042bd6fd836e210d3b7d4687c853ae5ba812656adda2a0c713d2a4e29054b6c3079e5661e63d4d2d2f232d8f69fe665f33e1541da8c47148b090119f0a416803c648e93d7246ea2acc89910c77f3d5a391dbcb612ecbf82993ac2484f6a667d323764553b0d509e73e3cb9a1a122822f23668582fada1ae5f78de31eb2b4ae53560d948886bbb601581ed54c332c520de4b0936a96dd461acb02d7fe245bb038e72231b59c9df74967748787fb72aab6a09fc3ded95492e7af891ea922acea134a5e9b3931713ea7ffa1c12a4118d3e2602f44cc5837679492bd4aab2e5d0db5c6a0d28c85801e0ccfd09eed839d8855b8ceca5ba0b5e450b31263e8e667927750f3ef8a24a5d9eaf0a4e2b07c01f42e84c8a40f2c2d33011c9683464570a0c89fe6f49ded43fb2c7224e75c91666ae24d78f1e1fff92451f57588e9dc68c6f370b255aa72fc51c0b6a6bf4013a4287648a12a818df144e7ecbff957a8ca04b2074042fe85fb4f374aa14c263078746334b001980e412e4f695598c2122d800f391ac0455d1b208eb7909430e0a06b2906144ae38c9e8f00d6707ff8d98a11b12800c001acc2ed8d5cf2ee552c3ab3f166de6687f448fbac4946e20650225e26a34f461537255c022462b99abc7773f2d27b683e3495b1ced299c0176493f3f5d8f5e81304451407dc60ddb5c4504176c4b415534d6905e1ea4c771a521276b780bd2daf1791d7803afb5b822697d1c212a093349b0f780416a956085285b7f3b4a422b204cdd29dd9ccee0cd09da036830b10e5be1f5f674143afc4738fa3078b90963c31d541276d06a6840297a58958c263ce4633bff1406aff4f0bea3507f34d1fe9af8f53172a90a0f8a2b14dc1817019026ceb4baf32129fdf97517cf5a712d0857d222cef930dbaf774df78f1daf8b2505d2bc3e0385eb8a62cd665f0c19e41a04673dc9b3bc70f29bbdd9867764455f258da4cdf0fe82a616c910435da234a0c410339b278387a9781ad60d40eebb029acfeb97a26e5bef9f3acde8feb001dcb6788f046cbd4364c9138b52a9791fdd55afee151a37474d5e05532614aa52e950db39434731de48f9e853eded2cbc30963ed58e83dcb47c39c61a20ecd643cb3297e2633432ce6431f4599c1d0d1be1e3779f3c13f78535ea07514892eb0eb9f34196f90a164387ca4891209ebcce202381a903db261032603ef3040ed40a811128042bda7a62d9f812f971a852a3870737f062daf717c5c457bf003b20321a6a67187d9ea58489c07b85d01d6d4689c189b1d3d3130bdc2e159e6ed1e02410794dbe6e119f9a8107d6b0a2d3c6e6cf1af85b3427661bd00a1b99cbd680dbeefb09a1f8a1b45e824883c5de2e08a5bd143454accd975453a51678b0705ec838f8cbd87aa098ccf7872b887074330877ed59a67a683e5e44919e8ce7ab73dd94d6337f29f5680c2c0865a95318372488f8f9e5a1e2d2efb572153b28c928d7fc1791a40f780341f6dbaae3da667e16ffe6451bc5d0a5c0bad3097671b893aa8b00d1aac7dd2ec7c82c8efee1630b7c9b721871896b1fa302e9e1666c95a56b30c3568016efa5f766810c9461cc0448596f4774607658e702cade6437271cf236dee0afdaea952d5ee39d22ba6109b359f4366701f25801fc834b52394b20916c37465401e8b3b126204d8b3706aa995019230684f00c2e28eaf06c4968b584c57da11a050923bbf6fee016e22a813a9fe3368172c28ed9cbc990b394a3753b52206557a7004aaa613d5a7600f85505a40456275a119915518e6816fe30f59ba6b358455bd84db3ef86417157360ac62454b3c96cf8c333e4d0a7a7cdcf434d058a97885be16ab178e318dda22a7b388b4b8941016c768d5a2a233389de362918d59666068320f32bbc10a5105e00b504cb1daebb680e87a2e9d418c6d4ac514a86147736289a9c77c775526e02f27173958695d65f731e6b683955847261dc54d4a47d0c408f825da72cc4fb92eaf2fc6c3bc5d1ba31ecffec89d78da8c41b63a1a76d9ac298c707c85bba7980b933761e3a391ae9114592faa99bd84a2a25c529a3856c71e23f4164126b9e1872e3ea81da8993e72ca5d1a586e0637f61cb23f5dc74323c656f7129d107ba87964b5dd8280f510adc8812eccf6cfd7364c392f7e77597b0d21fda29f423f11787d6bd3625159498fa0cd0fd0f881ecc052fa8357853857902e8453b6d5a363a37441c54623ccc5e169a27a76d4518b8d8e949549c74176235ad840a134ccdcdb71170c67c7d3f9e156d050935f23fddbc7b9cbb89b91f81cc4f73e2e58e866fc615d3281b41de513b6f2136fbf427d0ab76f9c5dac93d8ea1d2f0c57582d65826dc578b64b5dd3aef83047a51b57c7ef2cc9b167e23b2eac7854f37b9d4313693e559f43d409968bdd6b5b633bd54cacad5b34fbaaf1a739747ecdbc860c454082694d5ebac4bd4b0aa0cf0f8af90e2dd4fc09201247b92a56f9ebc4d67254cf92aa4756e3fdb89c305b75cea2c65d19302d597001e029e14a10cedc26d44f8eabdb9b02d97058b77b5f55acd1a468981851ab72608e3d76334745196a9715b92aeb44d19fb87c8749e7ddf824a0db72ae09ffeb601f9c0e3d24122bd3ade8cd1333d09b4f714773bd51dbbd11f2e83d2d7f8a9e0b9769628b0ae27fe5f8043e361b1321b816028fb743dbd1d8122e55df9edd2582a01c4ab3476ae952d2ae332ffb30295dc01930520111c717c9af4864e409aa08ee873b16ed3e815e8d90dbffc85d0b96352e2baeda7c217bd89829a5a45e7d73f83e2368656bbfd13b80ceeddbddc4c08611bb28f34e07540b92c4f9821d36523f146152c1985eb2e69497aeef03ff2e38e553abdb2be1ce7db1f611b58d93ac55671cf715854e6eda85469d93e19a78d4710caeeb7529f25c57627000f9e8b266164ff44343f6c51bf081d75e3047efd6f267ffa68dba400c7e7a590ae8bfd2ff147957149f86ee3b0edabdd6ab236b80ede9b0f15a6e0fb1ca3534ae41b0a26d6d861c6b065ce40d52fd87b01099ea707866053fedcfc12ab8d765be84c10cfe80bf4370131a2454ffe6d2df2861cb1eb6829c4d70beb3527736df7509cf89a04afea7d08f9788d7495a240cabfd57712db9e4e529c68a505149602b91291e31c8c08435f0fa10cdd1442db9067960f285edfc9f026bbf3f071988cb31b510194b741eae841c43c97f6895c4ce1b670953b6361d16158d5be531e354165aceb46c9c7bb635f23bf36e58228efaa909937c38dd1affa6cff51d8beffe4de49654120c5a54e7e300b4eef46966252ad1e0b0700033b01d05988523885df9ca68682b7c911ae70cdc6a0db0ecac9768245218f654e24aae480635fe31fe25a056cb2d91fa147fe07e82ae305a6c172ac2fd7e472f92d51bd41082501b2eb43e37d4adc18fc46c20fd298876b7c47d7551ffe9b4b1e8aa733e58f77bbb144bae2026ccfe7f453630fa1103f6600da090aebe453307192fe70a4f4634b11b5d17563c8fb906f2cc325d18934a2769f18b922205f056d0bd10b06483cf6f708b32f635b7c17197e7cd6f4fd19fae5e4ef2a3dd724fbdff66091c89bb9171cfa00b75274aec2918a04b6786cde71069e179a9591acecd0b7fd5bfdccbd4029028e2f85fa4ce8a2c70345f2705925701fc022ca1471a511b4504752ec1876083f3c4d411255914cc92b88f21cbc692715fa3f477c1a9f83a8950a4237d96a87b2b8c779604ee3ebd48d97bc82539a011ff127736ab01de4b85c948bc5b44c50dc84f7eb6ab3d4079efa56a572577f06247d084935dc294df5c5514f662e4a8e1b8e06e8e6f4a90dde3cb2ab7a6a8414d080715c796fbed7f41f631b081894f5b765a2e297480f09e79b17f9fd5b76ae530a3bca72a8b7163e79aef41476b0cbe36cce6c80bb29dd8482f86f255c79320ba1fda1e1bcceee26e3dbce66d807b50374e2adb58305ee8a183848035831fb21aaa400be5303808041e0707a60d520ae859821cb03dbd4749db095e20250dd7476b25b0c1e5b616a3769a7caf6cb83c0b53aac5a28a9b4ca530fd110e078ab45f3bae1608661d7a0b3398781d4f5a6e4ae30e1da694ab36748bd960a2fdeee5a148e0af12c7d6574bdd8a01492b9353b130dde3ebe608504b04246c8e4d2a0a9867c40aa7dce92ee9436fb76a1151d734640d34f877fb183e96dac0651aa518193293edd707bcf92b5cdea2cec32c6c94a312cdfaadf36773e8a6ae4280d50748557456ff17f31e4fac4299b8fa3550138af425c780b616e6dab3c5917f76fbe5819ea74bac3c77c9590ea4623848ace973b04f4d4a5e01b3cfc890166df3fb35745cd0031425283da6c53be8db7ad972dd8e20015f988ca7d03b90fa16fb67b684257c7f815436b64e57853c6f9d7e90caaf7c3f93fb657c17996ab5b72491fb63845684a67864349542cb0f4b89095645ccd5399553f050cfd19b910e0759ad4bc520ee2e90087891e2befe8815b0350ec931bb1c9c7b4fd4fd01a3dd61869f9ccb95a861e1421bb5767960f24345861ec8509b5becfe63e3c829e0ab2b7fb55847337e168b23d0faae27239c55b8b7491d3ccef322f1e6e9e064a707ac7e84bbd391f633ae8cff2c5d152078d673e330448f6e01bd54c6d8e1aa8f16adc8cfc7f584962e60375bf6eb919e62d21d6d56bd23b48e36509d76a58a1d0d7d54464de2e8493f043a9b9549a9b55c56a29165da519b8c71ef78ed531aa1a2e90be9a05512c499b880afd5c7ec4b695d8c7cf147cb86a683528d5b2e293061a4235bc1220ad2ec987ad72ebd214b751b48a62d7107648133b8c2f575f63f8d96e8522f8ab459bd2b62403dbf25d0c3b3311dfc55952274901d0759b862dc1f0090f1eafb6ef07db6aaa2c34abded1c00a0f39e609e86ef0500cad57a77681ec0063d999ce11206f9e500ecbf2241eb8335cf4a440368865df3ea6c92316e67e1cb3fa6121904301a49549d09017859b950f4f298acaa8fa781be556bd285c089a5cd01964118910291d0a38df8012885600d70ba414b0a898c42c0b4eefeacba7cc44f84a12dd60e109267c32ed040c6782a40ed02e345376823d7851e0076031a8ffa0088d92b41002632b4b91b2f699db78fc6565773b6b569db11e1161873cea38bd9a9ea416248ff9c7571c45dbd8b9cb4b55a69864934051ac100b55b791f9270256da3a593e4ba21745f7e43882dbce6144ef5f7cad15c254b5849c1348d8e16cd02c07ff38f60df18f86910fc1126a5ea0ed12d6e3f4311a6c5fa3ca2fee3df50f27f625ae254f2bd3f5490dc73615853c9be8bb092f0d0f888962d59a7e2e939980eb4b2ef4459042c4fbed1d43401e2baa7f95f2a5f5a08ede72f70da5d305c7455e984eca872e74ba0120d7e670be92db15d6a62841abcf842993e3e0630617d7c4e0fc016e81952eed3203083809ee962df03ca64b75e41da5a332e907e39b5262b177bf64faac97e008cce740fb29c9d12444cb349c1fac97f6a1443175109f0d03534542ef35ca693dcf739d103e6093c87277cf94cf017fb6822ff021c7a6910149653c2647b7e9b68ba75642ef415169683196890370e32529c31a5f6d7536118e516a12edea07f1a8f6bdca9bb25cf40220d64cdca211d812faa907115800994c5b04dd72449d3bb526a1b860524aefb439b8088a1530681be6dece61e32179bb393b14dabdedeae6ae15e3475241b7dae1a9479d94f87aabd7fcbf1dc3d9ea0469f7c704e67ca5a5f6659663e3778355f7185e2cc50f859925f93734a9c9f5f701e72cc6210a2bab5119ac52bab387c5b6d67862d07000c9b2cf3346cdbef8d2503f281cd1e061dc46164878222a8a705d46ba91426f90b2ff467aa1a748b949b4613d0b7c6c79063dca1f7aaef99139492e974018cc2b4deab0db3e0d5e469dc6bf2689759df79a46d28d727a5c54a9c95207f6c88d29896e0ecef80ca1a091f9054dea1b352f05b6286b22a49a8c84cb19247476cbda53e6d25c598d39ebd29279cdb3dbd5a5528c5fba44825c47057a5e085138c7953997e61a3a4b8fdbb177b116badd75da520a717b2049069f913983f3e4c32cd4e9dd059ab1c97b410e184364ed665ef3d842a20cd3dbd7dbd3edfbae6d5902a31c574ac355f402312182d45c877fa1fe995d640e5e888b9a4e3cd467818c628f9cca81e0dc8d7fed0ec4e860ddfc190121b21d9c3ea1ed7bf1d1adb79ec2652e2daa19f954470ed21cde7aa815078e548aba6c9f68c2fc31f5d7cfcf152c053bb1d3769d2970ddaa6ca46e4467e4d0c7112bbcea0f45e299c61d90172827273cb8df348f0f442e0702251c7d4fab65e1dc5b6d1badb30a47f05b6046a2b1b09495dd579754caaca3e1d33616d55c306993a84ee20e868a3dc3cadf3bbc93488ce9e8b7201a7d11c8beb19dd97d507f8b4e4c6c7fb88d9388db9df92b2ffcfdc99457e0dec5224c792261e40cbb04238e906c009426ab11767fd46229ca0b5e7971f4b92e63707ee0a64507af23e856b93a6400b39e41fde3b909cd864b899801092131191c11130497aa2169335d570ecdeacc1c169794cd11862048b6a8c0563d4014010a623da50037a61501a123f5804d296ff087b98554b5b7f697a6e5491d19e2b690bd1ce05519861a499e2296df5687a466d39b140baa43a02111c000625defce31b858a4b8caa57a0e1cc103e74e0568d92636ef31a8f05a2b0af54a1650520bc56a3b006a6e2e788f79d61d98e05b3b98fa406a8eec35a7d981c853ea68bd1b84c2fa55c38c510dcfa8ad4d7945244d008acf829bb99f03709ca6a1ded6080841464cdce15ebbf563b458ab028b4f473eb4e7c424ac97540bfb456634414fd5e73706ce22db2c10ace789c032d036ebb88b79cf62ba55be71050d6878a6a3b354ab270dd6c724ab3f0565ada4443f51d204d89b18816733b057ae07182681229785b88ca6bfead6e8133b144c6e8af36c467eb7f090a29b6d9d36d6314ef43d540e0dfebbc18a46df248ad57a9d752a6ef84ab34e32aa7732d93849c5eb73a0f9e52cc56c7338b0255f10ed8dd2953edb1ade6e2731091313b47bfa87728c8dcd50508773234e072d09df6b69dfcdd58eb964486cee74da14e5cb59c07c1c9cdc146d78278bdce16d6268f17e7c376a7122e5c321fea1b3779501d1d14cdf96fc9135bdb5611d761da5c324285a21a74092287629391baa46a616b1eb81a831412a1062bc28d28ea22e428b7d168cf2f3fbaff089c205e92d840c5d16faa5cbb590860d389d08b8614207bd5e742456740b81819a27ef706c9a31438dfe1a618618dbc68120e4fa9c168ec0917093a780e9bb4a423c209c80d5a35045c8a5f155a01dbc8b8d695218114f9387ad5075ee6bbd69e45fc09047846442064f5c11d6b474a5c2fd5a3a8f96d73df19a5f7bedefe8ee2150395565bec52a897b8aaf43a9cd397dd8d442d1ed0f66d7a09d8d95b322e24271a43882a748c7c8b86ea1f926809554c8b3c961d92bf2c918132720baf2ebaccb244ba753938f46af3730cacca7a64f229c0ea189d2defb52f054e6a6a1f6a8d281db4c7dd037692968d5120d694f2c39ca36235841395a458f57b83ea88bf27e248c730c731f0a859b31610ff3255152946ba56e0907cad883d0142b9078481e289fe6a524d5abe63507402203e7b33e48fdeb3473919a5cc810958c4141a560412e017ee91988271412b530c3471daa5547db54b60e7e22140fc45fc27c75c9b61ee4fce6ff6a1d7c28d55ba833dc2e5c0f456cdc82d87ec8ba2df09dcb13f9b08dcdc850e1fe45515b3d7125b94d61952625ce34beeb335362550075e978d5b3eca89c9c28f0d7a6b0c2b804ab0816d8b3946532b80371611c40a5b4fcb554de9656dadfb2c316958c20f1d6956957461795f7a6b232727cf14b73fe5871cad521261fefdac5ce5fb68f0ce0631fda0c225f2849013e9097e1600ee0b2c1bb2fb0c6562c2c0d9144100d50a03adff1e77bbb62904c8dc072d1a5e30357eeba21a5572b736929589a790f954dd02a314450333429a199696e23b2d4ef4ef15c3614fa6e53ef2c94f7b9555c50f33483b483c503b02898c37ebbb96687921d24172d6482c97d85a287464a84c39788f14af642c456e27325cf1186007674f8328c1170987e73749763e3a91775ebd46e15caac9c9979edc6db0dd8e1f0a08c7295f3394e7ee822641cc12edccfbe6e451a8ffa3c90fe118df231b0c4b4dfdf30902432a2b52582610c29b47c9ebb396c0518f02ae9fd7c8a9f9e9f51423d07b893d4e0e5df8d42d2aa93477b918ac00ac36339fe0d3e932aaa925eda4b772971291f04ac20cc908569c12aea4a6e7e14ce597044f4c56aa0ae857a9ba68b7db87d9f1acf100bf3fe4c94d4991d3b1bf2f7876d4d36ee09c94fa2fdffadc99ca4bc3ac08d28b5c93ec7fc23aa35323498b57f43d039053b9e41d3004044f7898ae0caf78a3ce45ce337d00d220b8479089fd950d22666f6c0a94b168f8085d4614e892a429e79df9d1174942be367d4a9c3a0342c880a510ba8ceaa4e054e6bec3e92d8021cd0a5a5e7b3c1056861358442e645f1416fb46dfc7e416942802445f90fa3e060a1d89c67875764a15f383bfa400ea8893d0d6f8f81fea7492181390e27f296329c9ce513c3089530cf5aa0a93dc205431717bcc477b77556732a74f089b49f878c4408bb0b32e8f9308963be02b0178540c89cb9e4f5e22de3ea7aa9071a27ebaf2fdb539ac3c5d952c10ac9bb36cf1dca2b66b91a38132228d59af4fc371e3533185f179b27920db439ef1a9a7f681c55febf818cdbf864ece05daaeea3874188c576fd225b6c651fff25c2745ab92b0019967b12ed7a190eb1a4e19c355120dbf1f666f7baac2cf504c5f88327cdfe628f27d5f7103a3c327ebb09fa3039ad2beef8773259a0837088421c59625059474dce5d56f2839a7cd5a2e37d8008e089519165d3a94df3efeb215100ec46533eda1c79827e3ce2363b6b3d5424bb264ff84a3de20c465a82dcc69f97a3c3e52927f1d47d583c2481e814dfc0405e8b35d9838a3279e7c79403ba5fd001cee91a6147a28fbd7ab0cf92bfbb23702cd7e66cd8f0605612d32e941ce84f5e3d3fcca56bfd225d1d35cd86e125d2bb7ca8c072615563abf8afceb42465ef381518d6230b0c614134157f69534d62e335d1127c492b12af7a095cd3d4a540bf3e69ef3ed7309c4435e7ddc87314c7d6098128799de872a2d43280e02f40bcb393855dec06a3d685a0805b78967dc21c3ec81d63149a9deb9b1a1ba49d1d03a2faa7eec9f067be68065486330ae750098f23e4a5e89b592d7031d25bb6207133d284b6e6247decb618519390a304412113678a2317c6bf1b31f1b764246ba8a2c0fe76a1c890c2944ad34ebc43512b03e6d59b65e997c80fcceee6160a678dc7e916eaa915806fb732432e556c5044c9f8b24c8521756409348429925858e3f1572bf491945aeb45b0e44b81203933da948b54c9f1f4425b5097c20b5b454a3e3361b88444ec2c59b2912e3809b3c92fb652ac599a6b60124f2db42208d0606c64e4a9df37499d58fde3c463c4415c52a4bd5024cc994e34394e41f2243802bce5463c407a5e3798f940c7ae58d1893543a20bca6fdd78c082bf61877ea383d651b6a87af4e447c54b6787ad132488534a6bf1e1feb9299eacad7259dbdf0c499de451fdf198c4ea840a3811bed596f41a1a8b38d6b2879124eea26c0ad9f858f1e64e4fb2aad1882f8154e1e20cc382bf0592c6147b82c750914b496ea950f16ef394ed4ddc62d37c86187d281bea40b2258b1b83f725f19750fb1024ca9d1133816c92910251329ad85bdbb67fe01798688bdf0f1f9799cfdd60131944efb80e368965dfb9b348d9ea0da1551c62d5f2caa518729bb5f46b8efda829478e548e2f7049428d5e064508809605ec0c056fd411789278b59324e08104411598602aef2f1a4e44107fc01f01f67bc26d915e1b8f0da6fb217140c8f1690073a6458eef99dbabcee89147585d422c69912803a78c21c3a8f2f1ed0b13ff2295ffaf15f33f08b1623f8f12567b30387dc6b301ca7504cc407b2e89cef38691a9df160118e966bf4f31256643b5e2c3044d0b49ada4e3a5cbde61f8bfcc34a9c806cf11d1094264da88a4da6693baf6e019a813468f83b92aed56c00a846d84d3ebdc36d23e82de5985177479f946a0f55860e6a973c91fb2d0fb1500fdd3d31eda45970c508995dbe568c6a13c938b2d3613346a78f1ec8bf8d14b4b59342ded99472b57a588ec13af0d0913316cbd0ec391e3620ff6d1bbcf46b9da657b01c02817e6c3e3e9600562a852e4b4951d86371e4efdfeea5c171b9af2d395cbe4a7a3540a6739f08173e19ea64642850733356c250d087125a7fdb7270f8e40d15889ca1445c8ea72be173c9aa3cf8163a594c95b17368de4aa4e2181ec5feba79e20f6d85aaa42c14ae4058decbbb3056926815498f5f53ef1a72448afb7c0bde0c40b7084d8aefa22b146394d6c058fdda718dcb8355c54a5ba043ca70076c2b0ab4db15854b3715c4a3044af8654b316d46d8183fc75a50d4f250d0e76aaf99764a939faf56326840c62c180d4e9c24e9eb24188a978a1ea951ceebe49829a97a9c80f9e93d2f2dde0fbf659c97304548456e2b90bbbc259833e6034ff47a164ab502157cc118438f6a29443611244c5811c5f78c140e784d41f90abe6e9d84644967a32bc0409b4f4e02a98930ef65037945741838cf46b2c014a5fc7d423ea7d2268aa62ae2e756428c581877600a3db45fb9bb80a19823c1a000daa456435d90ee56dec1f681db209441593cc50f63bfa45e96f53a81807c4f319151989449708f35f00cb50add2d582c07df8b83fe08950e4ebcd28bfd7b64339dea6887c888f8fce9016d95201da405448e30e25b4c9c74e360510227be4b0b819d614b2da249432cb22e143c83222c4bbc08dc3669820afa60e8a6f7707b254e1f7e931913a2e2054dd2b761272d8c9ae52d3a1d1e500633e2ec8cd1135bd03ca77e65395c04b470d73edbb8ec49cc25bcb873123017919b25480327b9824811b32a37917aa09411937a60b9951bf60af2883b54a8eb623e0af8da87ff5029a0dd67c142c5c01f86faeaddc88b72c0af774e947358c53c1675df40d8aea9ef7563835590edcfc602c090cdfbe2b10004642bfea3da6e0d67716a78be49b0fda4e03d6a73b6166cf2dba45136283fc2e794c221029f745abf5724cdcc1c072add6460a9f8a8044caf1422244e918b0ea75bdf6771194030eef3ba5feaed7ec1dfbafd9fc2b69a2cef8c9fa732a73e11638b3a4b35aac044fd9cdb10d609ab29d9213401c432790e9b15fa3ed801c32426d7ead00558f0dd906db151951c34f3bbb157efb11501d214da9712cf7e2826ffe01f0375538b16f07f693a3f3719609a97bb6bdafb600b1ba518b00cf8751abb518fde78906f47245e09e0ae52318f5a83e724eb1073867209fb456bf67e436a948efbd4e01c58cc43cf86ca148671bd3da5d54933d44b6fa9478c3174d210b8a69d26d9b970eb1bda6787aab038c7622c71382e4243c42245b6718b84c09cfbc8bca6da5dfcb909dacb14080870e611b3d51c4ec9513351bf71b03b907efdb35867b78f21bcbd671f830acbd1cf95470c2822b05b78dce4dc530ab692973738e384e3b8e184f3b87a6eabf3baeaabf7baea3f7a7fafbdf67cbf3d067d974d265997c956937999648cd59749464077dc21d011d551ff3fec96186d5b0dd133f326579c5ffc01b34a15bd34e86cd1a5a75b83ce161d5a3a354892e38db327809b4037006f02b8097403f0f43849ec09e026d00dc09b006e021dde93961b5aa834a06a41a105015163ac1a74b6e8d09208be60490037810eef896385160444776ad455a784f062e84b9f2dc1ed4db4aebfe3a840ebbe3452008c0dc1fd3ea18667b8c158c9b59d68a8659b4e3c54be9c599f033bd2ef06e5378e44155683dbdefc9cf2fad9d10d62af6afb83ea5dd7d71f772b06eec61cce7cd1527b61d173c078d013d28f27c0dfcb8821ba4d8079edbffef66119d17bd957efe7bc6f9992a1506942c142eaa0a7e5e973b305720f5bf8e07c5f27a90bb6ce0de8035db10042f4c671cd7c4dd7e6dbfd91790747bd24d6917c5b5d52d03eda3506622b8a574e0ebae63d3b790c12f68d02b79ff487635f383ad68e6305dda8639ee1ca58be4ad07f3bbafed16401794b20924d5cc6097ba7496519fdba50d584df6211b6dd62eebfa88e931fa869b629e7d04f1c9ab6b2af284585094bf6eb7eee65d5dbcbf965bb0c622a50c6b693166a613422b08351a79844019cd372facc47237c451da004bb766f86019551800dbcf986eec20b1858ba44ba7828ff3156025cb77a5f3aca42707e5dd1085f8dad9c5cf8526e0897cf57e2c085d7d074e9d8110b9717def99def106fd0e87befb62b6c8bb1ad75e310098592db0e67c91791c6da0b60448c1d5946f88564d072bad507b458907b3b1e79ca092720cc79178447d0c45ee985fc2442a72d40de649731a5541e14304cb3ae11656e10c95bfaef77df7505d35d6324b7c7b030e737f8d593882da94cb9f8615c5d3b23e81be5c9da5d91d461a0b3017db158779f3a7035596fb2182024b6e95a8bd0793f2e887459e324e4a5eb424c7ff8d1025990d9a47e9f1f744fd9be1ef69fe4339a0c672ce58490958a24f65d81e6b6f8b642de18af57aa0a4aebb067ac36e19800e35f29515162aa08b4590fcf7a6715f314d2d082577671c72b10d74684934dfa9738c948f90a2fe834c82b2bfe564f90d56449849730aea810af3ce9ac88ff8f7281d7f440d754441cab1e4dfd400b0fa28c2985fedbf87e305e07dd7b2382cec708817450529f63cb817ab5eb1dc8cfacb31583ca9fcedf5a79abc5e21f749b578c57445e889122ce06bd6ca45c56dfd21135c54faa587b976c27091b3586fc00a28d6676c36b63cc55782556749c8a053831aa532272d0d33707f146468c72ea51302a17dd6ac2e9d1dc73063a95e47a1b83069917dd0e71d7375573a601512b0c0623d3bd491caf91308a31b548118cee262770c523c140132e96b9a51d81ac138680b5a1b7931053b7451dbc1fd14f1f949bb28d9f5948fd4dda13568d850321daf4a7f6370b068ed13d0b4a62a2b4a2c2a6d7725b83bf3d73934d954145af84054b9edc3a1620191e993ede8e1a7d82d56671690d19b5852b22dab4dc0bdc437ca614914d38803c2b24ff453605c1f0d73c13bdb70b8fe1c6d96cef5dbbef897cf3a8fc7ad253c3fcd68942ae26a9992ea43dc039c74c8ce9620b0eb68caf78163a793af94dfb36a87028aa098147106082091d791f2ecaefdcac2a1807ffb66d9357722332497551f5896dca3339f6b6e452c4cb37167f84145ccad9b8bc0e18a06b1669fff82d36c45178c3c0f93509c71e80a6695d616529c2ced73aa0366549ae91ac08ef77ffeb8a2cd9499da771b241ad6e222e199fd75d46381d6d027c9542747202e1c704b4a9e2d06e7efe06599e8acba04515fe48209fb7188e4a143e79a2642794dc654a4055b9559028285b1b390493fdbea089d08730cfeceb233a571650d4e1df5b7fbc8f2d60133f5d82f7d6f9657d9397976c1acc56327e8b9d0a05ca637522cf0c7429aa3e9a054d942c24661ec4e39ce4f44c76c40e4c1f742df42d40e4b6c1ea7c8493a1c90d3a2181265e6216c8fad38808b6dc686b696e5661a38b20522fc3db10436e84873a978280ee02a455881978a5dc14e713453c0c24e0c379050336f0a71c8333a091a3379038c83331b008c2d7986313838e558681fab7ce596b85250038484de4860128b1fd1e99f88e9f98df3add125dfe7341069dda263624d9812fa752aa3c042760edf1db4e0fcdc24a0ee402cb2935d05cec8f67db8b4e070efd637dd71a4d9f47823d7e1b74e3df6dbe1905e84b2ef99c2ba748fcf9157bc65d56776b1878c7dfd0c6ccbbe98a6ecc37a2bcaa74b33c27a1e52c1673ec7872294193782be5cc7f69f56ee3b4074cb1d1ac8a2f741c3ef0c27e2b3ef3d08b9a836392056a63bd9c76c5bd2034576a61727696271c126a998696ce9808ff023fe75726008842d9317660e4214138fee532048f2681507ae13e9fd758f99e78783efd8b8800d7a9d0679f794dea7acbcc4432492d63d6317108a0cf7984995d8e132f7a30bc36a1242a19bc48613ba1992cb2b9260ebab2129e7f0d51cf066445625a636a9a8c528a428335f7f9b572ecad3c656918c59367d8fd383b859c77210ec944b92fb9b79bb8e7139320ae67f2f997fa70813830bc3b42d0b5fce703546e002ca5eccc75e9032bea7bc87b1cf12ee1ac04b90a2c0642a2420ec8a4b78cd253c10050c4649165361b8f7310b7114a000ad2cdf702038fccc5edaf111c468c9d75760871bc9fb982e0a088d93239152f1626d4be89fa5e712856dadb7b9d1cecc499fced291a6f1e6d361b58a3803ecc720463e0182dc22eb54dd8c872cd9a21d1dc97d8f8dc0b6e1844ac23957d7279b784e274035448bca713feea6dc66a934d4a9a64d608e3493309e422d1028a2edeefe8e202233c9edea8b27a1d0efada19c946b3ab1b8cd6849d3111f0e1d7511db19acd1cfee31ce20019e372f69e8c0316b5c73030bbcea98ca0a4c9c4d49bc6301010d3834fe069c3358bf519c63000d877ef7c42a00f8ce7031af78e975a3050c24a077a9a28730b5fd0d3ef9e8c9374edec4ef2f437117a8f7852c2d9dfdf1ba47cc56fa6e8400f204d56837ad87ce4a7234a1de41af580eddf17f5b2b0130b420b7c92cdc9cb0b3d86d6362209d95bee2df79652269902e708250928095e358ebb1ebcf42aaf296fe59c92fd18051fbb8d7f436e3e0581b09afb51ccb90e08f495d7ee878dafee97721be72ec826f386b01f2fddfcd494077f048cb5f853cf9f7eca7e4a954a39ed8252d4e67ed4aeee67b10ccb289675254cd7b8db8373fb369e795fe62a958d63abfb0df9954de75957424dc79ff2be94b3af3ca1d4b540a0673fd17a436e74b2cb83f38e310cc3bcafbdfa8d27d4de79ec8070de79edb81c261673a1761bffda6b3c3aa71cf31ab75979fe2a0c5379ec825429cf9fe3aa070d8c56254c4f71b7521ced9e94b34795d894a72eedbcf61b20ed9da73caaf3a3f39577bef2baf26aee57f43529ef0bb2f195f7d95c1ecc3954ce9c23e52bff8929af7a8d677d05b995ce0f95739e722e7533ee7adb0d744c0539168479824313252c63407d019eb19cc9f23840e90e84ec3a59e248d3af80f4bc848bca7f50e9a1eb78c692668c875d108e18cb2f7970b2b01447098b790d157e62dd86b27ac3a29063caf250ea9bb6b9b65df8a45b5070b2b0fcf331bbc392f48283ebf97543197e3dbf6e40fa1b9cdca0e4f965c399ef189e5f3588f9ca5d104e18b63d09e78c6d2aa5b49aa659b7b15e6335d949bbf26963646ba357736dbce8d5d8d87835de47dfaefca76bd5624de4ecfdd829bfe60dd9796ceb3cbae645af9a16234bd3be21b5c6b973f6a0e3f0783a4f88a7812120f08854300277ea190b5f4b17d5f4960494524a5944c509a321841ba59af3e6cda9694e3dec6a5e9661d1b538a184b16127551c3170c0b0bcb5511b497b73d1b451b7d871c058ee3bbba1c32b95651392092b6b3ffdecb81940b04e2befbcb6d24bcde4b512c4ce44da56f8db49aabb298ff763556e95d17865729541df360f3ebdadc439a67b1769ec7cf0775787bad0e69a4b875d50e749e7bc158dad28d672fbb452168dcec0aa26a7c12ced44b3ada445b11672a7a857aa919941304ab77e1aaa7bf8a1ba353bff892b8f53791fd402ff6b25a8aad5116acb5a086997dd31ecd74a23746bca9a1a67e72e88465af3d35817a439a669f7488903d55cee1bd4b973237c3f68f4b335b36435ba65a40ae91ece2eabba900a39ceaecf0042a8d4add992fc135bd5fb18ea339f3e8210233eb0497f21fc7cd824fab452132b73b6527cd23d7d61137e1c24ac93cbfc9d0767d83cee619332306fa5e973cee05006be317dbb1f9d3dba09f6747345c519a3a6062529d3d8e852465792a9fc863fba93d9ccb32ecb325597659e659e659e652acfb22ccbb2cc3bcfc3f9c2b6ab344a69f58d53a9acf35be7387badabbcee7ef4556ebd54ca7fa2caebece6b6db385ae9a6d16c87aaf1677de5ececec296fa75b9aaf3cef96e634fad4dc56bca1b9c6ad603f1d994b771dddf3b142d07abed608ddf3dd90d03d9ffbe89e956bdedaf19bee69d79ca5b94ae29859d578486adc66b5aab1a9a9a9f1d5ca6b56ab9a9a26a4c9c5886552ce6c520e9b3eee4fb73c150a6c7b7675f0742b6231a201148610655eab5b31ebb193d96e61de90ea3167b138ffac14918fc52c8b23f808a2516dbb3a5aabd5ad961012c8775a359bd9f4c13f6f9c24489f9dff4479647bb22c1ba17ba6673dd3339decca6e452a95ac4b9b010e49524a99c4ca18638c2d77640ea474cc43529d63aece5f7dce5a9d3d783fca0d2114549a4d73c299713865ac13274e9c4c27599c387102b32c5951e2e11dfd1dbc7089a5a59a74a844b32e08629ccb46ff6096cd61162ddd339da017319b27bd8e6b8ac5ac29bd1f950db3b0aa95d262f749b7a46a054bbbd51a76e5c74e3fef0795fc3784a1a437c12cdd928e838475e8a45bcd9d10ce9193c4b6975171a90169ce285b4a393bce39e79c53cee973ce39e74c63a54f395bfc2461a82c97b0b25b9086d03e1c8d97d51c7aa669da3de29c6c5b17d4b40bd232582bec82361f12b439dde2165df334e0a1d02d29a40ceeb6e85a1714bd6a518ba9ce07ff7675a20b41cfa89fa07916e882a8ec96d411a47b388846fd27526aad0e24f6b3990f61bd16bb20cd6b9665da3d52e240dce516840e420d4aa4063b78e10cec6769d5004e12f6d301fd7f6e08dd929e79527a1936fafdf86e50542df6b3cf55a7dd93eac14a1c2fece6d12375cded4dc35a99a7c468ad1ba5d5d3ee47378d73cc398cca4c62534a21c4783d2ce7885e7360db610f7e6954a127219cde102c92104e51b97da475524dae6f4c678f1d25c34a97b20b2bd3a824842ca514434a29a58ff18273c81b63531655c71823b5b66b25021520a5f44f470e6c74c938ba25a57361a34b17a8ca3aab58e52b67cd6b7938a2cfeaf25caa699aa669d6e35bcd3f762128744f3be638d03c53ff76fee3a7a7ad254fc93c65334fa9ff684e35aad133af51e7c1d1aad13d3bdd3371b4b09cb7751c2facbd4cebb66d9d73295f7948565e1374bf213c352b4fa5562bd73cd55d79d6aa56d6e37cc571ddf56e6ddcfd767ebb4de38a8dedd1e915824db215549658acce1612c46c1132668b095a4c6c4e0c07585e80d23205992f110716382962813cd9fdd4f36b05aeaff6b8b2797094093bf1705c075532a854eb2c61081763f783bdaf107b7f986b9387e210ee2ae7d0657739e934682c618770ce1f778708b1f343cea173f0b72aaf10bb94fed31cc7dd6fc8d7be69f71bc2fde6d43feb7ef4436a3de6eec771ded7ce95c0ce7975ebd23dc694ad2e39c7daa1d78e79df10a2e721dc37ed1bf40ab197d0ce57a83f9a7278394f7a9cf4ceab1ee69cf7710e2f51bf746d7a959e5075feca5d8fea9b4befb31cf71cf752e5dc3d5d773fef3ceaf27fe2e609bde67df40e21faf6a2a1f8f20e89ddd5d791f7473b3b77410ca532556e28dee16be56c62f4d1612b61341fe1193265ce403d6d717ad292c5ca52968f541a263d79e63b65cf77c3754bde89614d5cff714d1e2ef96e824991b9cccebc7250f298cffb8222e6f9b953352819ec1101379eb70a639ccc9c795fec46d7e6755efaec0f345a628e1c79b69cf2a2a1096bc9571c7b96733cfd57e3a582a6ff583558bc03c26fc1c5020cca478c1909fb6877c83583990042d774f80ed5b8db01f6620c17e642018bfd74f8d031671933dd8a337adddc022774ab5e12da157db6ab23de8851d3e1fae8639689503026a91830b34cc5c0428f5f4829274b4ad95db424da112a6fb218638c319ae11a5e7b852a2a6c3b642e6ed01e9bbd60592bd53c0f07f03183518acaaa302a1bd806e2f965a5866f1c9e5f44a0f9d6f38b88283f88909479fe42200396af2a950d6c4ce2f9b56483874ccf2f2474781ccfaf239a805d8fed89a71f12f2ec3db63237fc500952ff115df18585c37f444838d42bfe2332c115f3bf14a8a85242018a68fa2f05a5a667ea723d739a677ef64e411d82df4c4defbdf7ded7e6a6135b7e7679e87572f77bbdd03cfc8a7480cc2e42f12b32030e719a34694af08014bd5764069a87ed5d1e7a44ed403ca1f6d2fcd5f9013d7a0fe8f112d5673af344fd45e0472ff23e7ade37517df6a209a30bf0c2afb09d3d2221614603cb2f219c3ced81f9e6dff4cc39af294f27e5fc99f775df21d517e1549e4ecae15baf926baffdd5e5c7af3f98c9e5b29e79296f2f722a4f3218aff222e7e0550d7966124b719e794cc6ab78c296a9cee3775e9ef3daada79a2c9439f548421112d4d9a1ff68e6011d7af62373aaf3233ee7f1b9fb155971b9daab5e5554d8ea29affa91af5e23175fe50dd8cca7907d917e0e10815f5d76412a275bbdca8e077b991142d9105200a4aa33b956f894c7f375f3ba764e644884da39d75f7ccd39cd89b0e79a08d7b5739a0fc134dc91c038347686d86a5edb2d79efc7cbea560a6662ba8ee3baaeebba8e773a326addb65a37d7bcd65ac3d0344a354dd334cd29efd09c77b42b646117dcdd9d753796650e3d159365b2d235de1144798798ca2a2b56d58377b018b11839462c73cce33847e651a584e5d714343f5d7e34c33c6b17d41efc43304d6536c1438f73a838cea1f2f6544ad89477ce7975951276739512167395ca55def10e7e95b70a4c55fdc822cf5537f5e8588c14d38ac0ff6011f894c6e8f1fad32b441f40a1471a63a4fe13878c386dad69d376a8f274a2439de8ede32773e875a5448838100879ea947b64de475d285e22435cc6e57aa29adf3c4622ee3707c16b448644f8e61cd189b06f22d48930201878cd3f1812e121e7188269becb8c2376c7633aa51ef40cca9b69a9d3ebf476a09a7985cccccede90918743f1a1b30fd53892e68bd0fed863ee826611fb43a4ebc87f43199a23199a2369be08fd34be9fe5beee3b44a44876839aa87f736cbb4310cdcbabf3a3bb20ff8959f48a3436fd7e43461e6646babb878cb0c3148a9ebd339ef2a3c73b644483189a6e69a08caaba623bc5af294a3403f60af74b5f04eb529e7caecc0f655fa4a6e352453015ef20025d3f24c2436f97753d84ae17a342af2a7e9ed78436e71c3ccf8efda04e9dfa4f6f75e3a139845f83a0e6c9ad08849aacb1618c297887e2ebf0880f1d5ee71cecf0a9a75d21ead56537441ff37ae7ca61a78ac246bfda850fb7d8907140ff1c5084c433e380aef94f1c32f2b15d2b21fe50fc08858dde588ec7bc6feac03bc4e4727d011efb014e1fc07f338a950a976c807710e1f923f622b6814367bed83562210710e64a6c80a0cb9b974e838616fb0d799e30418c30c7623fb824cc4b37c26ee30d309e0c81c310494f2e1710e610087a2ef9430c2d58410723808c58c801045d890d10bb110b0d94b992060041c73c250d003222c504e8468218916242261d73788d70182d30711445031fc04c01c4405c94022d46dc70c315a7295f003110fbc76382bb5c40102ee99e0134913954e61d1f8f6f3fe5fd00435d2c5ede8965d2b3fb01ec7e980f894194f9793fc050c41b3d090593c7ee11ad25f80ffa377d48d193c73ec000a3a5fba9f0f1030cc5085e62f7030cf5f336211d71802e49c83b05e96b3cbfa6bc706484bd04aa3469d23c01d25c385f824032c6e50282472e1b30f030031422018002441617110818ea8f5c07e89284ab08038c96547031144d80d8bf11fc74667e2525f144f08f56602820edba180a88af11f6127ce0861ca83882c665e47201b17f467ede8f5d7ad1bb93c001ba5c49238115982f2e2803499a3440ec3f1dfb881ae57408333aa79d13eb24fd4a92e1591efcaea2b2c7c8e2f156c43cba8639c5a247568c3e1b86c65c473afc7e1dc924c324e7882d79c704a15b3309c9f3c48faaae508f3e9b4f6f459fe93a7887730eead3ab67fb06f5cda37d83e6d0e8c3ea1b0cf51f083f3da776fc4a723db6e23c3a104d5fa35b5427f3f8fd3ad9e557520bcfafa424af49cec14b51881aa5b7104ed4e5900a462b1c71fdd027821c9091e6314fa1e8b19bc274efe90da1462b1cf92198e653e123107a3f15ee07e1639ece8fe8d2a3cb2f7e2b5133ef9c79078fa2ff38a72e449d9f5f40a0f9e9b577f06bd534df3c86fec1e7fb6995e3e07be5fca7b97ad4e392b09c57dfb82ba46940da35ef9ca717230d95554a56f2e8e099cedaf20d3443f869e73c52992133dc40656cc5754b768b6f7c8910fff196979e6119cd74647e42f7f00b88a4cfdc02193b6531d0c135baa7bd8c093ac17ae2b3ac67278b4154561961f93585cc7ff47b313d7dc721b2b5439fbe81a4079a6311fe23b28d3650582eca43113885435bc6af46976226027d2ce2db59bdc37544bc191d84700aa30a0a64d802883d585d9514db7ac1936fc71102a704efeb054b1e46576555119c002aaba6d8762e85c34bca0c4539f0a0823160725842071a0045d92548c656b25b44f13767d54cd3b42cfa4d855d8f38c46f9e11c5d7fcabc7bf79d673c181b86f7cf26b3cbc1fe610621e3fd1e43ac6561dcf15d72df71f82f1d9a1657d74456ff18eb8f31387e8aa2816aaa44c294ba24c55140bbd53a8dcb53257146970854e8509490b0c24179dbebd863f7dfbceb7d758e5db8a17e2e5d9683689f2046329276c00a4d877f095d19fa5e40381faf5039567d8e5871dfe6b7af9e03ad221e61142797f408f0d9378f9f0e4e7f3ab07a6e71a24282f0d4155dd60bba723e4ce01452f659012c7113280e424b60bf11d2ac1b37fedd0881e909e5f3d28f9023cbf90bc7c94185667b79cf68c3ad8e541bbe53b9286aabac146f945a7b104e41e910439b17629c4d84fab5c60650f4acfceaf7a32548297ae81ca1da38c32461939f6ea0b89ca7f962784ee892e40dae1a3df4417fc078250bb942b6e1f0682ce41f93adaa1fb091d8c9e5f2a282380e7570e4ebeaa301f52e686e594484a6a873084b0bb7bc6c842ba0599c5f82001ba947402a0d704613fc8d4b365613fe8a20121d337944f96e9a547043e3bbf909a3e7afc3adae1b983de84cd50312ba0af1c8ad2af3ce5d4bb23129439e7b5a69c6574fa1aefaa70284e9ef30e4a96b7f10e94528cdeac7e4e2ef35853622f987265816ed1cc310c9b1ac5b0396915d9831f9352c6d5099bac73ba84104e6821c424cd3cca59cad66647e29c73d25526a5b794734a492d853286899177a6b3cc6e3ad822314fc2392794b03d1aa5c31861c490e42a478c92fe796a15a3c7c85212f54b4e72bce162943246c9bca23ce0476e1ab0582c966461538c97335ec45481268a7d7e7d79f255909158cc32cf6846e991c51e80f1cba29f2e8b38d86197a8e5c32f4b9e5f5fb6b09e5f5fac3cec7ebcbd31826174627da5cc6cd0a921912452f4e924a9147d4e487292484e12c94922d1e8241beeeed5fa60bf4e724f8a8d4eb261c3868d4eeab1213bc9494a29351b3eaddbf0b2fc6451698be03346ba355d05c73cba74e203f9860d2b363ac94612c67de01d04fb30dff0c067f71311573cf0af9968a876b2e15f7bf9c0860d1b1ed8b061c33ba95b54acd8cd31b73157b65b4b7e7ee03fdd1e559893c572efde520e530e31aee106756af80914e01dd2a757807b3677ffa8e79ffd1aff585fe3cc3e19df805ee39b17b9051df3a8e7e54097fd10daf068bc284786e5a7ae613cbc520e763da8432dca968484d449ddd44e6da5b5f496c9f43348158a82214924a42064ba94ea03ff20d5b0ad2c31759207b45b9b639ed0074e04be0d0f4202155e9eaa9e74cb4e7642c5ee746b76e0d1917c3c9f2e97b2744f073e5d3651e99e8ec93fa92535adfcc454124922c9283209476e39fe75127529e50dd2ad4942b7e607369628818a62a28fbb8dcbeea13e5d2a893e0d65bbd33d4fbaba1d9c2024c827d249f4692850a493545369a51d9ccde56ff723c163b18c7bd14cc6d44b49f1c6f4e042a1e17df0693876239a1f2c741de7ba35c3bf4eeaa4ded24edda3e3d3dbcbcd8dab6ebc866764625d27456aa35392ce55a15bd359de817f7c8608984a79273595564a714fc3e3efc0637939de913b8e37c3f388401befe332afc623929db0baf6b293fb883e7eb3586badb5563e0de00a9a570dc8d822ba8e2d11f645051a235e546879393dbd9cb4581fa0951a78f91a6c7996e2b98bd3337b8fa9bc03674c927129296298ed827fb0143a41272779b9c22708063a39498e4f3c540b03abbd9cacc40d6e2d6d3ef10a130566b147d8891834b5a08ba4294530018a4d1f010b443b064d309b402d46d826223de2e0f942f0d93c02f1af4eeb03b6fbd5881d8bd559b644cad12395ca65b6f4f47ef0e9f4187bf86f2ee57675369f97db2ea5de796cf222269a712d71b24392952c5b9ec8c833fd465238293b2098cbfbddaf290f7e7331f39c6b1d90c8d4ad9b1bb378fc5a67a5b4ec8288f4e0dfbc47bfd6057597f9005f05d24048f0d56396eee1803410ec46a64a3dc805eadb61f700d5c398254ac139e21d8231cb64c870ce94948e79714bb7e23725d92f367df4b8149962130a04161bac74812e2c474e207c4146b7cab93bb7e6ce6701ac860be13c560d0d7cbc61160a1f2ddf68cccc15c62a51cb7faca75560f8e2a2428321a08e6a6825a474777bc57eaa976e65e41d3c1996653609fbf96799a53b2d6c6238e0b1a4a5e7642cd6deb0a4276515feb29f7dc992734e2460b7b0202b85fd588fd5f09dee91903308338835d18cca0cf34c28cbb2ed4e4a29a54e29a5946a9ac603839eb3c6b44bd8cf1dd27861180f165e9e00cfaf2d494e6c81220333cf4f30613f90dc8404b4f4052acb26fbd99fb0a32441b78dc27eaa6f2800507bf04378b358e88c801a8f9840e5ce3259f9d3254c41e5779e5f5268c1dab31f725ea199dd7965b7b09fb648d825a878b23f546c8b1d3ef952064fb4b0fc9a424c9ce2c98eb1fc9201d4ff4b065ea4d0f2d26b740ff7803e9da384505e615e5072fe80649b45b04aac126b03a397ce03c44beec1bf90f90a1b97be65df90f60ae84d44c53608e196dab61464f9e69a0f869cf705f9aa524995b45e21c7712abb79f12984db267d1b1244f3823c6b1bb76d9c4315c771dcb65aad562b95f377f67eaa2b9de3dcfb823cc7f987d1c738cadd92db8d672445286edbfd8a5e4a74cda3a1c56e0ed3fca779a5d463f763bb47361ebb23250e64734bc00324457a7777df786b585029a5d652e95cf77c5028738a51acd218638c180d6b64a3331dcae8cd2ebd4313524a29bc47d0e72d9a50ae207912b5aa0c6e6110c3aece8ff65ba45f5ed9577210820c81462faa1c4ca2ae82060d2d1ddb930e3b19c2af9430e9f0d07f1a22f1b0ac9d3d383ce7095b051379b398bda8f49849399ddaa49f4f146182213c1eafef743afce73c9386ca3b18f3134b7ef5fcd202e5b93323a58c52ba7df2f2e5eb091f5e4a29ef1755377835bdf0dbf3abc9d5f48aa209143ba8c2b0fc8aa2cc2b0a28af28c4bca088e244fd47987327011180b0cbd2cb4b4b93567da1f222429e2f2a2f688c6168318210420821e438473b61e6e50417af52c2b6cbe797135afc47790763cf2f27a09e35465545692f83027b23f1473c8f0ae6f38ba98c6a8c9403f80f7afb2c9a25789eec519f9e91973e63106580e87531144d7e22e42805188a26400378de890e6d8882838827cff9f4f65280dfda1582ae3511c839a613d11fe2343c38dfb6af3704accb9fc75648e78858f29c6b5eebd49873b473f74373ce7fba47565df3388f1d10ea10f6859c03bae69532069b0b4884955e80978eb9d296c73c0b72c210ae08c4a383b9efb484a0a0d46402196165e2683133538f943b4148f77cac1ff8af21acfc7410787ede940082cfbcd989b09dee9944da89302018e8ce014538f8763cb48e842224b00dfb60d163421ff623bb1f091e7e7b7bec6e6f77e89dc1c0e9316fde1cf98f3abfa258b1dd738339f58f04697ef491a75eb95df47e45471e96a166aaaadb2a752efacdeb9c7a455f6bad3ad435efaa9c79e91d18ac4aafb508729ae60d19198a5f5d555d480748e6d3b35406244b65dae6fcda767950d75ccba2f45268bac639f5e06bdbb65da1e99f748d2b417297bb98ca8bcd023302209091ca59604600e610e827625e74d5909197d11b8a40b42bd4b9f4aef38855c7eed779bd3ad5339f40a47757a75e20d431a78e6d9e09519a01a119d5ee8779e55c47c33c1dedf29830407a29b479bd1ffc0f738e730c3ee79347fd512f730eed0ec134f57e9b635ee163f0e1c39fddd3fe8110c2b3f302fac8b3a778746ccda5a0ca522c738595a748e5c917559365666666662e52f3ccccdc41d4f6aa0af274e6848c793ad3e1678eada40fe0a367de58638d65ec8dd1ebe519f39f3803fed3d123d22fbbe113757f7713f5b7081c5bd8228516e02049115450896208208e7a75e1e5c545172b1350c0c8c9131d62f8d2022c64562c6cc1c511ffb53e72614407b8e0028a1ca2fce0c4f4e2a24a94550b9c2606298ccac8e1484c0c5a8040cb1351395cb14213a8311058255925e12923aa051a2ccc1bcc20c382e4e9c59261418b4522a594b21e918a4125e3c38a4c0c90a89e5f5cb8a0b55006940dc99c733b41b501c99593cc918e4c0c467c05cc1520ac70d2c59530c49881610b2dea8b2bcaf02e98ac10020b0a565044165b0461b7b8e2c39c734e2569c22862081ea278c10b1b6c01656ec1c312bac50cd8162c60c18e31e3f915f5c5864e0a38790b232d5640868c526671014a97364a295f51585e4a69cf74f0fc8a92f2dcf32b2a87ffacbfc2ec48c11463609161cbd10b3c3c39a0946767070752ee145121f34392a72ea6f00225068f1862f088b103c7681103c68c8c52460b86b5cf2f2d5a98f2a5c50a2fe54b2b7d87c6f36b8c98c79e5f63aef8cf79ce580c724d31ec7e1ebd81c51c5e2a31ec35c60b0bd60b283b3b5f48b963cbececd832354d9a9c9ec494796a8a3eee4ddee44ddeb4e3218080c3ddda2ce48f00bc7cead666b4d178b5265b85fdb426df5c659aa05236a478484949554959f9f6d4936e8cd491940b2919521d97ae8a2e4c17d599f9f66e4b1744474477a563a26bfaf62ea983a14b416743c74317e5dbbb25dc18ce0b6e8cee48a7847b714f705cb82a38262e07ae072e0822b82532d8676564c42531e26030e252c03d414305fbac8e8ec01c8d39f2e28c5315f65935d184114dbc9a78a26ea932541a6a0eb587da648bdac0d8c8a849ea12324c6c526c546c60c464e1815d8a5731c237a66fdf76d88e6c2eded150583458197e73c192b19f3f5189c61acd1996b4a6a6a7a6a7a6a7a6a7a6a7a5e8239f9e969e969e969e96a09ed09821f3f4c4627953d316344df6c97e5ad3e6722d91e99ecfcb343d4189e91eee1e36827d526452645e29324fa4c8704991f16245d2c03e2a264c640e4c7a601204132760b08f6aca1432a6c82453240c53e40c66a4601f15172e547001c3650c97324d52d847754675a68aea8c11aa332fd5192d51a20bec636ba821ca5043a4a18698430d4ac2b08f3de288a823c038828c23a0aeb08f0563c13061c14861c15061c13c2db50decb33232e2c1488a5115a36fef27aba3a33e72d42e1cb50c4767b8b0cfaa8926aa68224c13514d98d91204fbaca2565144aca2aeaca2985845f10e18d827b5945a8229482d411b524b3ca496a274807db426adc98b31e0110d8520f6d9e813964b152378ec239ff846f77ff289a5008b80ef1b4f4f4f4f4f4f9bd1e6da5c9b6b43a2643bb2b92c179bebe9096a49479fcd935848168a536a2d8be5beb99eda1b877f6c512b76deb8b936d7661425a66a9a1800693ef919e6920c4ad2fbc52528da14256da24dd187c61bac489b689384dd126deac27ef0a9e99b6e81ed2f3320a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a26c948d2243268c97305ac2587952ab94d4834bba2587b2c63aabd3e3657800cca5379540296f065bc9cbeb0a32cf2f305e5e609ab0d06be6b0a33ad8854d5109695fb0ad6e592465b2d40c9c37b4de4ec43b54deec93e31df520d107e736dfa08eddcf3ecd79eaf27e395258694afa3a6717c471f1461074d81dc2f34243d2bf8893e321c971234540398ee38d20c757355ee33939399ea40828e726b1f19a2b3dae3c7ee9b97794e3aa9cee46efe8c66d6eae0b389ea4a60607c76b38094e8d27c1f11b4f6293e3496e6c1c04d127e7da505a632d8b3ffac7f335e352469d771e8d2b96f3e99c778b398f2e392e0bab451f08a402b6e4270e652f69b7dabf9d4f0791d9337a4717723c094e0e4e8de7b80b379ec4e6c6c6c6735c98e1496e66dcdc780ecb93cc60e5f80c1ccfb92eb08092e078ce8c1716674078c6c24c8e87e3cdf06e3c59e34dcce19572ce39e574f9024366ce2597eba58c506caf9c54eeaad31e1949e6468a8032a7de08b26fdede7cf39fceb22cbb4934dfd87b462dbb2e644eb3cc69463d49129a710c55fa8013360d1a2ffbf0f6b55858e95a9c40592bac0ff68bfd627db03e582bec9717165b2c17d05b6274e352b60747a8da62392bd058d1c543b71c851076c47922a59413cb9942b92ccb32aae13051b96ddbb6ca6d56a4b8aeebba940a1bb3e2acb5765553f3fc7aeae286b3b1b1b1b999913a8283838393c3924c68701d74d0410734745628b0c1d5e882600daf51a3eb016d7443304d64ef69c97fdc4d0796f502b3c3b32227a56e1a97b2c9810dc4844163a74ca1d261ce09676d628a13a42b49c250a1420c149ba483941e9db220a303312a7821cd1493c51397051919d224e0f96545118ff3fcb262078c69623df8b17b5380294f5c3b548912e306ac8516576c68c10a9498a10646f2a70e8ffe383d1efd71c28f9e0e84b74db0d9a53df86fe0b59f0e107e7c9c0042f7448f5c9ce8220397142c9ef0299aa1e94b9613c0408822a6006a77f629aae18631cad8c2c20a3ddc00d4de629f08bc104594255f6a50040e80daa39744f7cf0829bb82359c77d00564ce0e00de814daf617324e0790021fcc41b2d03c03e36a6aca6b98dfbf0b1aaf1e363041fabae71b95bed919ff3a14263f955cead5cebb694cb2ec836b7e326f50cab4dc763753ff92baff10efcd3f191e51f023ede789c20313ac305d4f00ffbd843c33fee3df0cfbee41d371eef3724848fced32d1d2e7b7550b151c31b013c40bb0e0d0fbaa051df6096dec1fd3e60dd8fd53917e7ceb870899dc18d47875b6ebc1a24ac0843e8d004040e82b8020306b8be904114292c50ea02b472ce7fe2db78307c7b8d47d42f8356d2a1261d4eed990ae76813a89456a5694a98594245185b3475f1c29f4c10c3122d30bc50a52f4ce2920414a45b3cb0098f15176c40854b18170bb46034415899c2f5430c4d4aec850aa2c080091214173670962852b8d0fc10852b8909dd6acdabc72c59bb4434ff215ff3e072bc512153b77aa95b2704814b678c2c59824f9df4c3c20dc4a0a14c0d68ae80518482133871240b5713942413988041e6061dac68010e1ac0a4cb174834d4e08b2b959b7396e0d207f90ccc029bba7c432adde21dd97b10a9c79c830f101df322e7588ade35bacc30c183e6ae6b8eb01f37c1a56f874fdf3d917d8a9a70c1e4053d3009c1051640ed300bfb70513110a30b1ac6d8e10ba076d8c43e45365ca1c59525474694f104503b74629f0ddcd0022e4b34f9410a2480ba46d7f8a2620e67779cf366cd1d04386389e3a5774b3601f142f80c7c884587b11f3f09895e44bd990178b6f13c837ba8b6395c80a4dc92ae791cb7a47ce9900f30e3fbc0cac892caef839f5e19f356f409c2b524a5f79bf171de1bce61359ab56e5e5e13301e2a43d937a41175c9d18f30044ccf3c162890cdcfd54fef3801d3ed0a56766b666ca334a005d80d46e5ae448041e259605edc81ca8d695e390e7edd34cad9176a9a248d38b0e69473e6683863dc22c6cca3531a36c326c6942d6522ca444f6b14bab579536f48b3ba4d2935ac0a08214c017e8466ba3b42304c96b22ced29c7400823ec55840dbbc418e3740ce36e4d9e2d1f4a26e2c92dab90114a06a2d0a8148d9675392d19a2110100000000e314002020140c070402a150389ae7badc7d14800b979a42664a1649b3288771140619630c52800002c6800c88080d4914315ef03187de03a03f2f0d9748d6e01cd21bc8d4afe3a64f285197da1c8dd41cdefdba9f2a90dcfed402ae82298f85ee4b3648d1c27664b8f15e9a58f2ff066edc9e4a774424a4e09ea0192b37367654f081f0d4146c66b7bae67c4463dde96b90f4620b9ec4b0410bde2b3fbd6344eeab2010ab2db942730517712fe346573fc56e87f2612b9eaaca194303c278a59935c1b8df14d310e95cbae022f5b6976e8dfa9e31f28d0c56d53013b3be29636f408c18f2cadc74f39065f1ff7254f418d70bd71e2bc91e848c0a77fc5e6092bdbdf3316f57c83bf094d7bdec33854497e1f30d92d9e1a48b111e992a6902097018a598bcda5468e5e4497124618cfdbe3278c26e4ddd4e190d015ff0837a5cacbb93c0d0f9d17ae7b40a379a094417e05fd1d33ca9d6cf7b2b8aa83f23d12c76f3cc2beb0e7aabfa2035f1c848e5a9ad9d88fc572dd29974c8c3ce980f90a73b97a8886a54313a396e950894d12f751ad31247417adf14494f15ef26bac0a27cced7e68460bbaf8404b791712872a4e5d945e58d77971c92b64de0be7b15395f5454460c6a8d875386188329b360482eb71a5dcb5744e17c32d84bc8df8c3251fc5d7d3066a4fdcd7500d024fdfc02ef3cc568acff810fa568829f71106a7c7960bf9bd8705a1a3ae0634e130b9110f98240be85ffbaf784d30478c732a0e0e0c78ddba4d5dbcd6007a6ccefb0de5688e0114f51fd0383fbcebc96a6788ab9a9936b86f3724b67cf2bfd14b6edc61c06cbfa41b018af34b7de414e3fd9538e729be080de4b50b4174330bc5915e811c327e4f06faa6ca635749c658d94ed58f1715f2b5ae693935688697b25549bebe16f3f0faae633502e9d69bbff000ca0a0ba0592381a9a60677876c1a0d2a51dbff118532cbff7a898cb237c84dd0571960c7989e44151b16c05e02501baf00bbf25f001b4b176a825cedfb2a329108b444160372d6e62683dc1e4badd76007bf6db6e13741b161182e9077498e040fca7f8241a89eacd283060add615457cda93ac7b3f586e75e8207875dede6357c2473f3efc4a10671f1c93f2e7cdc6e849644dfc36f9a38a9ceacd9efc7f5b5d2a2f7b39844db9bfb05bdc548c37120a9a028cd82f647609de3a51be5eb9b58295bf9ed298e174d32154e8efd4dc3ab2b32a375338bab2c939bdfb1519f8e176f68c63e37c3548b516d4443758921531abe1ddfac7d6d0aa498fe0bff939c69ce2b950c7437012da82b70e059e6387b6cb132f301103ff8eb939fbd311ddb7cebdf3b7792bba7072b3343c1bed0bb8b767c9b6c391ef018fa9e1cf2ca72ccaef3177e7dfe681a37aa751be458e9929cdbeb243403813227c78bafbd7af88861cc80f3b52dd7de13f3ac79ecd093a6330f2f466a96a2223b551c1e65f99f06a88c8570c4553397295d481cf1c85179e6989bf315734b1b927a55c88b5daf770e1419fa3ffd5b03361f8760e1ec619c137916dceab6bae348705962838044f8d996b8d349e5827c283923e2444fe59791fd54c938f0c4d8b324192e5a7131fd8701135743787ea1c4400d8813cdf677000d0666107598a7ccec1fd909750b40b882ffb261cfabd344dfe8d62742f72685a342efc835594a30f3d342ee5a7d3174a4b7ea2135f1cd8f2ea795186407143b57d09d2a8e5a763e962a4e7caa8a348a1e38128982c52c7d5330aad4915d6ff40bda3016c4bd9847f76c6340b1cf0da26b13a27b3658a25ecfeb43ce9ea0d99410090ef36387a3384607908cbe184876893f2ae9672abfcf01c1aa05d4870d4833c9cc4f8fef869ca34a90045c6eb2ea886e3cafeae3bf2cad680dbd02678ea322624cfef0fc31b7af0568dcbc4a68dfb25e2fb3d6758e1c94130e0f38c0262c0f27e009fdd9ebde5bd579156ab2cf7e054ec5b13ea8ecbafbfeef8e05a4d6537f48255a5683bb7e6c1b49f0ac5dbf7a16ac4992f9128ec449ed7c494057e2c7d5576112c1c049cfb1e3d0f1a55d512f390f0626f2f739cb93578d83f0d7b93eb68271b165c946737e18b1c74d67ae87432b56963e658c74076a59f43f768f74dd2bda12045e5d415d455984ea84186ccfdf7b7d9aad2b7c952e13633a3650f242e8cc23200a2b0a0fd461b419cb92f26c637c94f812d1f1943c1813de5d50c873b0e21fa4a45acd616160bdd8e73cdb19e7a8d8f128ec58ff6ab491ad043c7696f521b8fe4a5e40443aa293454e94789ed5473a7b3fb3ce530dde4f00b623a74b6ce8da6448053034b20678dc0c18351c74458d2eff47731c1b8ba5774743de3472a7c45e71c38a95a8880fe6baa578a24a485ee12692513ff9189f7b937e817dca49ba456d60753b54692370b95f6b61b8e328d46f15e18f34b6f1014de2a286816d8baebc776084124f20c11ae70384e4a97451a0e32f8cf21ecd5693071bd61dc3b91845959c46b21dc77a982a6e8905e73fe2e934fcbba40c6b994735fafe99432387b2bb8f93845a749434f4415a5cb8ffa91fea03e920ffa63f1517cac1ff547f2a37ea03faa0fe44331fd93f9587fee9ff9b57eee3ff3b37edc3ff3637db87b666fbd725f8df79960ecc6637380090aec9d01bc3b907704fefe00df19f0bb02bd7b00ef09f0dd01bedf027adf0be83d0fb7f3feb60e1fb7862a88bdaf0344b75694fb500d5aa7d49cbde240c1a69ef71ea9268645b0b1ecb6c662f2c3d83ac39512b6bcad69403dc8119f1eac1b0e79b6ac2be2b54d9b82001e8545d86dc4f765ece76afb76328f68f52aad8969cc0725cff105d27c9f2001617ddc1559ce0ddf8be86dff074ca9cf630cb10fd15eaf5ce7b9ea989a560a642f586cd743c1a713e9312e0c2bd6f6cf43c4052a86f841e2ab2e12a2e53554d758498d39c112b2295b12ad22dc9d467ff34399306c7e67f054c5a6fda5f3125d9786b6c5a42cbbad46bacb2d9c9f275daca663d7d8793d5cebf10ee12b5366a3aac1d2646e29956d210fdd1ee481fd94b6dc36c818c447b5ec9735254ea22cc80778d4af6f3d98bc8049134852a5c85322eff41db985e58583e90a8f44eff84ef29ba471a30d9862630b25f4a3f2b841152eca1d3c6fe108d7ed15dbeedeae198517c946bdcaaa2cce402c2774f497f50237c1fcc4fa4be40e860e47094148bfe3794c4064ba6106b803e970fe17c140c944956d29575933cffce5ac7b554f757bc115c25cfa1b5556bac847bbb988953ec66ec25e71d94f5000feacc496348f825402a5a9a51a1fd94e2645aba5456faea7bb1973b0c7f70da6f7e9cd77184428869b03333059f8a67704cec26f9f93ffb2a3686bc45828936d79b177ab204a650053c7c2faca6609011c4b0455285df2ea7ffde6bcd3e06b388d09923b846f07cd1d18375de12b4288658179513607fdd24c579a4540ddc54d28be2c6d691bbf953bc60ef879dd9db11535a438c0ddf9be4e3835fd563429ecc8c430de54557d7b13b437d1d164dea5301bd8e3ba25be9e4c5ce0d2a8f3c576ec79eeaa44d451e00716ae7a2320450afcd80d90aa1481d7a4b1e932354948347bc2df2bddaa942d83580822a4a72aa91fc99383ae9685a1f13c6e088023a7f6b7e63f7bf7469a1744ef1d5df09052b1f62e013bc81957b347528054d9d24bf6d612cbe5c09923f5cc09bafa8154398e3b82999d1fddb3354220b640aa74c909ceb6d28ad7292c0e6299af3b68805449d6c08e45e8333e06a75000221491c7a7b01badd3f6bdebbba2c8fb3e864d846f6579bdf5e5a4fe9fd9335b9b8973ff838d7641de178b44b6d52f72b5d357accd54f07b814664b98f01ba13d0e8172f3208b0b67c064c973385d1669aa49c69b29f8ff7b10eedbac7332d63cf6a053ea7c97f81aeb23f9235d7ef3a07f79a479b6710d367c35c0d8a7ed4b1959cc117019d60c4ec454f37d05c64479d2c1c8a7d928c00c2f0e2c3850ddc29cbe69c4c6e43531b001c7a53e0ff0d0e66abbd1c73a776aa7fa48bfbeeb87bc710b02ff2d1fd40673e2b7d22698ca69683e6f83a6fd61b81917abdb4cc724fb1f54af10d9b4c082ad1d507198f83e3f9d0f11e7cbc0e8df321c6e3f0b83e749c078fab03e37c9871383cce7930384e1574c4d333fb3b20623e5988067e77a0de0bfc5d02793fe0f70cfcfe80bd17f03b02f26ec0ef7b019ef7037e17c2e9bf57b146c1ac584c51667a4da92405d6c41e9a38067dfbf156a0c70b1a2b87f6da556335f246d5e81bd1466ef41b9d379a63f21cb01e087b8f770dfd153d5a3ad8056de7503db3f479f60e167ff5955ce21c6429de10c51281345a44107b578af4d54919bc4c766c9b0619faf2fee25349e92543fe4e7967fd74a6ecd63c5f53c65f79ba50be6c98df2eef2d9ede94d831e7ef9637bf028f3284bc1789085f9dec09e0d5b1b818c8ed95fb6b9e16caafcde6fbcbbdb57cca42286927dfc30120eadd255a8b13f836cdcf992ce5a98a2882c7aa279177363a9aa685ceec2fd8f9b22219e02e6d7e674546eb82ed76b8b395b9fbb0ecc51c7727ff8f78f1477aca26fe7eb6397573ca0a7efa7684c048a121dcd6cec412b4618286ea80aaf2c7dc7b08457b218f67bc0ebdd3d0db96498822f77d51d514463bb37865bf87cb015937a6918bde51f2efa30bef9e52630a2de695a81c0f627f81c202abf9576227fe52289f0b621251028729375fc22a44cfb313dd93bb83693cd5f6bd927389014cdb0f58f462d61bba8e65c622a7bb63a0538d05a0776fa6ebbe12697f0d4f2ca1b14bc06ae44870a828f75ee017434290b89486ed1320da55299265ed44ab90effd212bf0f384cbc886fd0861d6f37a668833171e705c43fd9a583b35ef54540d368d4ba42b8a8c1f6f0de64fa98eb0e3790cc873b9de3b1650641799b5900a8f4420d1bb4197f1c054ca07311214a551b4f1dd9fa1c057fe0621070d280cc6f56dbff7d68751a335b730c4d4c7b78cafb911ffccef4949f10a1098899159767254c1842a857f2d7f4a84b27a8f2024577b7c9fba41cde0a049cc74a5f98e6fd322377a70859503dd3a937c07aa146791a335b8e9139c7b918bc9528de503542a27d6a010ee47d9153756de8df6fba80276d41c25c042268073bec40baa6fd1d735c8589a4aaf54fddadc60d5c7dd495283dcf86340922cbdfdb5f6e3c3e98ebca6075c2fc08dc47d5c9d612a68bf04daa20276608adbc8cbe02ce3c332f4fd9fd8a161d2656e05ca9198b45304a29d8ecb972653411b602322bc1c91cfdc0d6b3ac72b5ee50be33e627c3c0cbe3cd80b3d385e9bc07a666c8e0055b84ff8c03dd081db370c08031ac1729287e5ea609c699c583279e1db07835a2f9e6a0d512ec290a3b3f7636331d2368e001ce512c8a3570d4ea6a959cccd8a54f3b054590a35190e649a5096673ddc6ee0bce0382fa8eb5255829f38136dc4398840c2371653630e6257d206ca475e9c2f53178e5d6240df5d07a806a7b2e724a7bc9a0e538436d4f91affe8a764a06db313b068e9a0b88a823534f6b5e7a6e2ae660300bf7b4e0717c11bdc46e0b04747b867fafd985baa86181b1a32796c364d2e550539568d4c9a7fc3968ce78efc2cf293842f52be96a9a05b7f2a4fc9b02776591a1fa67f0fa3ccab8ef8b1f17efa64944543a5c48f560ecdb2c74ae613112db5f916ca0039d8e056a8dcc4bce1804b7607534e8b42100a0c5121c3fbb933977561799d1f9a547df29908c812bf08935016c4349e0b279e7148a850458dee61142e4dfcb24725f815e711a7007305e7fb8a6f3f7d15e9c31cb88049d496af9485854670c2457d0db2673d1ebb6943baa6186b6136cd59b4e9aa0d9aaa9ed18f77627095a3f0456ba6c9ae4cde38f20977e692db69ab5839f8b4140533074fc51ed8fc9aac5e238adef59fcc88d16216512dcd77f5aaacd501218e4a8196b8b70851a20b2ba9237c5db2ec7e4c8370ec2fef494f9dbc40a8cfc7a7ae4f97c743c29d0e0868c843022f0453a628d280828097d4fc6afba0f9f1b1607d38ffcc8920e05dd61c8b1033f1154f3bc43347ad66e90811f28730a7b51d1c57b748e3a3b013160dad7c6d7d0a2cfdfa6b1e07aa410264025dffa50889ff8bde342f614a746648a4512408f7eb0d14320f1c8087a8ba1c91da7e931936ce2c382c93bb5f23594f156440eedfe35e32a9664be83674952e00159dd568e522eaa538b1fff116ba69eed753c003f6bbf5a3a551f1a07ffb6609c05b6998a019afa5b1404d204e84ff830f4c4037c1183abfcf8c5b169c4af3fbcba4811472722817cff4fd38e5c99de54d523d92ca71f19f2c3afdf70b49c75107fcbad1a1944f86c30cc59e562d9a2ac385ff8e1eec37e1e3f87a15cf11a914e28b87603b9294e56f07f23833eb0d3339f84d836e488852ce84dbc0c539a03a505f3d5ad42ca5280da682adb67566b546d77569640e8e339b598035edd52d3c7f800f51e0b8e4473c2ecda320ada0a17e044420ccf7211b7af396ceb29fa17bc7a06726791a201c175a4a81f578875a52db03892258133688901531c144f99a25949a2f8bf08115816c874f303855a729544e22e39c940c5590110d0ba3a3ad6a9bb9c21e8c8599b71108ebd53e7b027bda9ca359350f206480a144eb0998e2392cc3d10f5c2663f02e1383b4133b37d075ce8b3d79c355116815cb311a8cac8dbc9e8ca836e9492c67109dd6884a7b67dee440e68af65cfef06ab57617593da1c539082e5f26c37cb5cfaf2536a17c688c9c3dbc07e66c378e1ffcb1af68c835cc537db193a52010e5f56099f41fbae0e02a592ae077ea7c922a3b075f9efaead6cb065ec17c5f793f4ce7f613ac4d5bceef8d03be06155341f286659092374cda6cf41a1f8eb90f224dfcca6057ed0fb667a71fd6d88347f0fa0582ab90cf8f32ec427b2fdf4170b11c2de8bf7ef7f604ffc02c1aec7069116480afb5b09016f45298232852cd88602ff2859ddaee98fbdbcf900d4bb9ae4439457e4252cbc6f4ffdab3c8c6d68ff58e772082fc44ff63dec85a1841ed9d567abc30b26d6842085bd253deb26a8d43b33ac25b4b3d4a3c3d9b2c5c75a256b87347748437b14982c3e83a5ba00a4ccb681c427fbba5911043bab22724466bdbef6ce3b306d0c0fa228d16057b04d5725f51941d2a253193ec3d8a6866cf348751f6f7ec60f0991c09c37bae8805408b2d4175efd41adae991e8fc30c230c47ebd2c4587f1160368d95ea8236e6484fe1e54b51f8618e74a1c1c58e4d075aa3e42763bf7452cb9ee194ec069697ecff6af3e4ef9e46e9b97a0c86a40b9091ea8461d74ecf9a83ab2af13cdbbb80184d87fcc3168cfc1deb264be55ec042bb17856d233a048aefffc094a4b2555b41c0428fe6caf9379b66b32c0bd65180599818ab148db5e0da1b4b4fb74ef9086fc2930805ade4de348d0058a9c8c12404460976e4cc998a778cdb8682dbf2cdcbbba9595ee25aa709841dd5c38693374cda9bf2db2c69d7bda2beea10b96eb62140d36c56d36e4de5aa8f0d4d5f445425b5475342192c7d94f54c94aa9300f70279da85077062a64ed0bc1b289e689f42e1e057d7c9e2b10069e5537d9973e14ae14599600b9c6cc5d34ad06069cbd38a263852c69a21949e8095f10a5b9d12aad776e8a383c0315705d860424e227e1bb111ebad3e21c6673135264a63fe9911be20241fcae88ce6b180720de05bf23a6598478ec4ec14b531521059df0fc80d4e2c04a8f76d480352b939bdb8a2950e50fe3571a21c25e33bf4f52aa24382df68d85b6d83eb1b45134673b0cd39a191b9a436d152c75c05926171377999b25de16ae4318d3d41d830f27e2e697eff908fe3d8b7d54e85e33d9471254d3ed4ab78b61a679501eb69008d474fa97a75f4873163ddedc73d54f2e27177287603a964f5340b281f15a5629973cca437a9a4590d5be4de84945277afeb87f7a06bc8362b6e33bbbc25c88f9c001e928d489cc5e5c4f8d4ae7ee099099701eb24b165e1095c70b0504ba81325d4e9513c2d618129e912670a232bff153655cc89eaa6c8b94dcf624f934b4c14912346bed8a34cd644a0528b9d07866146b8d5e953df197775ecff88486ee8cac7ee44d35f6797c7ddd73ab937e5fff1bde55caba7886a3df134455b034dc09725cc744b6badcc0fad6a932b818c01bd727665e2bfa233dadfad57a63117c00e72465b15a356e554547708234242ef234ced36c45e5dc5cc484ad26168673e294ed5529d3040cd07cf827efefe2f60c74cb5e7d6292e633f28d16787bb7ae3ae108db60f9888b92a24096bede894dda1e71ad689e6c0541e07d1ae98a777a4e2030e4fff6be7fafe49eb8d1f7f65198449e0334866af679e381c407d8f973a788c4fa4038a613189f8bc798d2507d2108225966db0dfe126890dc1e129cdf340042948da38cd66b083fc96d8bf6313da5ebde8ccce83c1ca6fa09017cabb6445ee9c38466e2097514590e83c312b23624e29b95a648b0d3f5a09baa56223cc6d5f7d02350404286819994a858248fe767917c48e050ad1397983a198e742cbd74eeaf98f83dec20548b008c085f8b8004fce189dc1d904585b2977489f41efa5b1968676c463950967413b908aa0f2d92958d968b400f2dba1c97a3a8cf9b2802040b1d421485926f8ec02d5707e2abee4d1a8fad3756aaa218e7e0edf5bd4187993387dc548b3f5f409005a9e89c5dd82a304e8916c9d03a332695384a4d734f2e0b36961859a1e9c9d9ef3a30ff53efb80c811eddfe0cb52158193ad93e337eda20d29b57fca98e399adce51a24001bc91221319f8ab5d80bb523a00ccaa1ae00a60dea0c19ad5a32cba5c7b21f9aa75c947ac39143c5e481daaefc80fb652638944a4786da14887da38af56435b7488b96c07f4b7d9fed3dc2ca5d94feb4f8b2111f80c0f4064d854595422339a608db78436b680de27f32169dca44ca2329885a9cd206cf7920b18598bebc7ca8ec65574f3c7de932eda1dd89fecc4ba88efc731febebd311f78ead2ad51c4a4f37fb8abb351d60e93b96e8f9864581ca5db64a6f2ddeeca41240531c6d204ad6c9297dc31f16de826231e5d6f835da03153885f15cc26821498a89435bfa50e3e43f9f8a3fa7553f4def3931c8ff9968412e2cf1afec8e681d81e0c59a9d73122e40ba350256fc0d082943aa42003f1d4052843a2870a241200b5cc4d4e896b9586395926034006a8284e0d34890cd751c11cc58451740f544eb61e5ad54738cf17b46b2b22cab8b08db32debde28cc211408f9dcda8a19a016fc55805eac2568f0d42218ee12ce6f2388428c89ee562b2c78a24cf6e003bc6185734a30ecf8034786444d0f36604a9b4bf2ed02ff3de2b06df28f5ce53735044be7615e95d63ecf0ba9d8f06ebeeec7310993621d1538c9c6aa2df161f96c8d2668eed2d332d6d9d34b7b0ba7a82d37301b5c55f66d231b427c51eeaeefe131c391af39f1d8c42885c439a077fb1e447d9e185ec2d8967b7e8db9786afe3ecfc1ea94c3025ab8204b628a0c685856e641af3db0434beaecd4ffc4cb2d667c78dcec7dd16e91147ee656ca5230cb0813f70a39b6ebd521be11163adc648173d80705bd8a2588a8392e4707bb257f5355163b6a1f829ca8a43fcdb04fae2b5278073bdfeb745d46a075533621afb9644654dfc3e49a1082664c82d957f9bd025d5f4b3be30029dacd52444c90a0a339c5b348982422713fef0a74304d960394769a9c600698113dff8ab4b107859c08a9de9ba4492f56f131e57071526b65feadfd55620699016b328f19dc68b913b0fa86cdd6df0df26e27153cfebcbaebd4d8b43939ea66684873ca138c78735b9fd0931c0335bc75d8ee213c5b1315cc11037b653a23b0bbe505ddecd13812fc36a0599cf24a3e232c3fa16ea3f8b6e727d90913f61be6bef4164ec9dc316f602847ebd049645d70cdfde9dd564dc5793630ec9b866aef7ed8d279549a7f9285dbe2984381538d9a3bbbd90758bd99a7f9bd0f653c7a9e4a7f6a554f2e07e942837bfa2083df6168b4b1e1871f63433fb844fe4ef25c6a86a2a5b080bf3be7e313de39287d8328b530a85790a7cf53631a480e00067bcd325d06e68989ca4092808929db872f5b9bd017210cd60e3673e48dfc910ca7704a01d739ad10cb80691c19eb0951bdb7e9e546159dc547fc23479ba25abdab0f0c724db54c390342522ac456e4253934460a57cde8e9f2350e89efbc52684d990bd45de281d70bbd1f4a15eb237934fa16d155a8e521187e448827c9a58af212f6bf2c234b9d0081972851c3381ee7fdaf3d12feed6e82d0815bc7142b1ebf9d6770668d03a43a22130823a67b09a4b1bf00238f469e5d8c4fdd31e31b9d221fce4492bf105d39e8b0e1e58f0de036de3a892fff0d81f0884898399f9b75501899edc4e7a0b3f3f9b55f580a06d31e099dea27b22d0bf55e17bd5ea82f895310e76e2f4f8ca42d432db81d3b62233e772cdd0e06a923153a3b748fdcdb53e3827c291201f1a42e2c8d390fe095aed57ebfd7d747a370492322a17143fa191de877113dd233fead29a1d431a814b12e8da25a2dcc4dd9d6d4b8d38f6f518d30dd251051105f73ebb980f571ca837493b6496001051e3e37a411cb1bf1631399357a49a3f40aa146fe2b05ecfc7734bb83bb79cfd23220140a74ec8b47f424070a094b0620219e1ecd1583d8331a18acc3523262ef8fe3cd52246eba2b650f99a1a77d73f738d1592977667dfd84ff911fe313678fa9524cb5e93d69ffe8c0e3b23cd74dfc29f629f6ed6480d75d88535ec112a74d53ea1a607f3121e9dd1bef5ed3745ecea01e33d4b66779eee423f027ba438a774d6dca9d87c87f5aacfd8fbedfebe16df02c857e0f96a8b2ce7d7d44813d1fb25d55b410732a9a5a0838c963dadfe5ee586b46e6f426bc4b1a0c356300f4c54a77ef46cd38bf7ac234c43dc9c56e857c137715adabad5af331eb156a022e7c80fd3026ea32c0880c2924698030f0cf43999df4e0760b13d6af1a4ce46b3ee79336f3f97fef0f0cde22d6dc2871f5aea2c71487edcd50e160d9a5bb3c8a8bcbb7da77c9dfbd0efaaf0978e8465b15a135408a9b713f32f8b4b1bebbc598381c007630f477d4e492db7fed87b0156b3d02f91e173b1f7b0d52cdc76aa16e8c8809bf98ad3cec59ac5e1ed0bb0808c358b8897ac26afe5d5b75c1a31347aac5938e056bba1ceac59189cf204735cc1e1a2257ca9bb8103351d5d91fdadddb178592ff171914a92e422f34136648a7b430daa8465f9fc396e7de3f70873769b3f6338730dda2a5825656e5093f4f379ac20fbe5cf4e17baf139061a3b33851687fed2e93222d3900c4e7b3eac3438e8c12389abeacbbd5e7b6f8c017631ede583854496a01cd990005c19374c12244e52abf1ffb532cca88106700004d9d25a02e6ce931e0c10d90478063398bdaa895160d9573810136b24c6c46910c6621d75edc0c39452b91cfda227677359fedd083cb98b0627137620e302c9e942efd24e2881f5bf7cd58b3738200781631298175ed6e904d47b06651ea77c4cba8b623ee61cc7e00dff38f64dde731ba2aee064dec1e74f132ea1979bab1417a4fc0f4a8a88fc064e22d5d1c3952c80a45ddb4744c73a0746e6481b661f68d16e8dd469baa34e1ce0e6801d95ab23249081f88e57d64eec1c208e8340e27171dc7477fec8cb8596cdc560632860725d0ca13f35c2482ee00cf87d33a126fd938f852d6404b5a5a4864d1033463c00884af044a1078497b64fec0521efb08fe67d58c659f374a495973c74386747e59243857c79df5e8126502c034f5eecf0ab6344fd9eb3341f895f293e558c905a39f6a3cee988ccff326a9f7297c813a1d2900548a26267493a5dade8a916a350eb217f8194c41a7a6b186fb0c59310b0469d59890ef3ee6952bcaaaab755a74433d87cfdf327b5772d8e85738b5b02fd5a43db28159c98f66b35892bfae33cb0532735c5ea749ea638ad1a32f61f32b6925a0507361e6d80fed02c870346a695c8ea2e687e8f421139f043a0025d34063e8c538ef980c0778c50ca72be47d5e103903ec79735a9a2ce7a710b1ca08afad52bea618310251688a1c4c210f56b83ea6018be699db604d74f810dcf5b36fb92336757ada61519990d2fadc31daf8cfe062476bff31cbb628946f0868035c1449ea73b4583b064f1ff6ad5cf4052d1fb0e7a4a79621a844645b40ee6a0867656016f7f80042fbd399b2673980c54d92bb404e823e349fa5dcead8676d9d32e162c0790ae29f5f5978f4845b54efadd4a687a8c91adf504e6909e857069f4069f7fecb1b779acca44e8ca0e3c0a62b73e7724e0e7cbffd9daff2288c694f5220cf66c12b5e5ce32707d8abc56876e7edddbfa070fb869485d458217e8036c844c33f58d5c3c8b687ec1f67151ac0c5144fa2e788f3ce4c1a879a2857587930864f50afd90087ff30cb654d5c3118605e837a4754f736b61b1b3d4327412d830e764b97f5f248a25acd9c14380c512ee160e6189c482ff21ef206a55772657f8aa89602d6cbcae6ac4ec66478b02d739a7359b608a5280311cfe0bd50a7270714bab5ee2563fd6bb4974688713b9dfb19b5add3c3c94d303a6946548ad86ab4f50c3e3734a42316096da87793ad44855371a405aaa526756b111446ebe58a953b810cb9ae411b9e26b2d96488f46a3812fd0d7c2cc54f4d253cb90a7cf57ac7a3b114809613e0e41444f3d86cece1fe3e4ac4626251d8508a1ca32df9e7a2f45c04960433479844ac4c673a062e50189025a24275ba16ee423001c0da587c75b41049eac5a4657f1b5da474081932839f05f830b4c4252c198d31c76a8de13e1ea92c9607fd068d357e98faba2b8eb6dd6c851cccfea49e3e82e2404d01ab62ed2910dc0dd42f7469df3ef950f46e816c41ca2b257590cfa68689f0e02a64cf89baf5b65c10714287d00030018a7b079cda7e549f773be083de93126e2159b8b1db9d3c22c8dfbc92dfaed99ca9018ce9a97d93c02f2ecf3fb757569b5d1214c3bd408ef38385df5e9c070f2e80c7822e22d22844ff03da7d6acfc70e2c7ac9842761b4e9035734e556c68943a7ce9ae23a9284cbf3f6d817aa1b2dca4cf077ab404a600acdb1160eac12d1d3de94b70652e105e5bac0a1f1beb31a6b2dd04203ea08730d6386062d76adc4b9995b6a450e088d45a4e59baa9d2145583d71bb362d43c89914f89dd49a9ffc73de8b256c0259263a1c27c8b0f2a633c0eba74ebcb953bbf013f143055e477c9be83cbdcdd70f815f11b499ebe55ccfd491dd7d9a1276772ef4b23a5e383d951915bbd2f7af89b4111c05e3dd87c6d1e3c497aca5a2007ada7727ef6fe9e606e92768462712430c663c50f05cdada42a3c0237ef3a180ab8d3cdb9729c7cb1d4481b4c70d8a794c8a8393a8f753011215c65d3cf23f34ed2f2f7de42eaa415b8d1064e20e7a6f1790fce533d10346fc359140dd80aa949d3c7249d8631edc66aa2743845108a14d4ffeb0c3d1b613375f988e7c5cf5caf0fca6666d9421ef45aa83d373d27d4c50b943ce6f2d8e0d4f64b65e1c6f4d4949825235dea5df7220e724c815c015f91d2bb76f1095e1b4fd0879f195fd1bbf80cb7d4bb5278ce10da36d404f1038592dde6ab815fc3b53b576572955e8e8cac234bbd1bc5b0208d439e30c2aa7b840ee6709c90b00f49bd1b2b29074d60bf34877b5f7b03fefe1be83e717c03977a57a41d03bc7ac0a318f4b1dcb40581677246461e7a2b3b09dd102c489c4c4aea8315fc80c7bc80936c18145f1a79d3d0ad863e91582f44be413874de717d04039276c7db09ae17501b74bc6a88872f3da77af507fc7ecf718b600e8d7985efcbb71bc8e5efe6daef6f9ebf93f7b90b5a851f668b681501e7136f19f7fc1d4dfbbd2ac60ff7b4e95646368cfc2a98214b874bd3e29285a6a353a1e3f4775d0d3d786583a18d5726eb8c4f880458b1f477821cfc425fd9df2d771070c6c49d32db286cc25ac29b028062e476d327ef6462bba0e8310ac46e58a8dd85fd59898562a6cd77c00a3b15f38050c44df31ed6b379df85b63bb53ac04b823c35fdbb5c084324c2f8d30b22c1f8a09b1bc390e4a253472c58e076bd84933d75a34a04dfebb4a75b2aa0128969f8e7d17014181872bb3213292fe14bdde58245f0866e21736e4c857cba9c8b12ee4758bd1ebaac1094a31989795fa9fed309552edd9e5dfa27ee65f533a4c4be5480ebc0fe50f09fee442febc1e7c3286317c15a9f2b68ec3a64939c665664d7deaa0c3535eeb6e4e8c7fe47e1284245f06d34b7600dcde5f043c533d4525eb62d5987d5b9ef7ceb664cf3bb6ad98a3d158c33b2ec335f3fdac9c827b027dc78e9badea484cdaddbc485ff44fe2db8c8930950528d5f4092976275afe4db2d4dedc8dbc33a410bfaf9e509268e4552b92b412a5987b65d314af04b162a0058fc4707290c522a968c194cec858e551b8d930fc2dae932e576ed84c576006f99e8c3ab1a2bf9019eef78c175c4afedc17b34d9086f2debdd9989ec2bc1e20cbc6ee9eb745de611f779a93d83bf620c87a55045944309f78dd9d7dc9a627eb3df7817b14ca05de036eaccc79a7dd91eb4a40efa15d0bfc48156be6790f48d6a591b11d8aaa05b3455f7460bcb03efeceb7f8fa2bebf329f2bb9b01bdde5e1142bbda514209c562cf2f9cbcdaee96de54c4c6da9070ad7f4b770b5c2f25d73357a1fb17fe6708bbe978823cbcad0cd53e800f8d622eaf0c4fd669b0d53f3e861dacffb0c0adabf57db64d76c56a8fb167d36336220955b5776d55119b33489492b12700952d179a5f2c964548aee133826e15267cb5f2d828075b6c068403c048773046fa790499ff49a3bc6ea255267a4f602619cb8056763560dec9418b87267034f2029e40638887cf3e9933bdf6b6c51fc000cf80e1ea9248a2f8ae10800e1c4f18615bd30afb7e4eea14d9fcdee6f4704f98db08238beb6002c120246d86446c1037f97b80d78d694fcb77dfc90c54d664f5653b939859ea1d7a8b20ed7638172ece1fb75e32d365b417f03c503be98d864e4c91681129b6a3c0d211cfac47a5d200c78ac386c4b1c8c78c90681536257ffbc6c25fc9bd2a63723e070e697555757268743ad4d375e6224ff10bca46201a8f6cbcc7a84714fe78ad10babccc163851a94fe8d3713419d68934595c322c11afe2787d8cdd4f35847c0f3a1768f489b94a9487102f74c8506262ec3d445929d90742af5598acbdcf11e0595f6a91d8c5e77659d472708725822e5f51762e784be27606211075b10d164a278891df41813c79f5bfcd38ae93d74fa28870b71245a0a02931a5072e9a751b252e714d8f43e5c7cfc234bda6fc430320312fb644f83e32089ecf550430e0e88d0e0e7c361e35fec0248516fc30ffc64377e93b501bdf878942e2f58c76af7bde27630189f69b4c8d97c1b5431592cc5d9ab4af4b6d79ff115e3ebf43f54319321db98209d180c3833c0558a389ff244794f58f3b76a73386c1e708378bf0cf1a43c909647e556994264a50e2ff0fee7606229a70ab61bd5bb981e4563de7b95cc14c1ef3cc4d22fcb4bad2e506e73713f6bc5e4a44d84e68e843911c0adcd5d84e4ba50b2ba30981e4e530a2f73b2d9ca06362ea046cf7413fd43cfba291474fd943da72b4787336c16ada2a52b77ac0afa25eb11fe6bd5563cb91288608ac341b76f33bfb3bc31d27ab1bdbfb7a1661638b9a4775e3156f34c19653d3b51fd23c31ab8d2eabe252f1d8be6f8d819b4b5176571038549e5bf9db20c35a1f188aa7291ef5843c2125b2dd5510cb2a48a987b4c9ec50d0dccdffe9e89dbdeb4b3a20bf26820d24cdda5d1d2aa2e94ca1ee17ad6d1ec690d533a154c401abf79dca74c9a4ac4030a6ea0cced1ba560bf8567e8b3308c45350c2b3e2d377c14e2508933fd0ffebf03a5c6f768ca9315903a0ab45236951fcde83f367ad91adf88d8844a0c72aa76870b9802115e3e4278158610e4e53263044f4eb7dd93c2639c632907cf6f40e2cd25b2fad47d6373cd6d5ef2df94016fb9a2f3571ea869d81fcb8cb9ac17fc5f36d4919f133ed41ad4311475f2ef5c16d2614e516d9d6903e7e5f2dbfe60f7e59b3e8a3d12ec3e26b271cf02f411cfef6a4b5d3fe5450e82242eb7285fd343fe1429da42830033c41b860875549276e381fdf77c5b9e73a780983994101a3039024d01791d2002bd4d107fadb6838004198ffd61f4abad359d5633b8415c1517c199b43b3831b6152c0bfbbf4b1716523dfaa14cf8f5043f219cdfa5ce0c148c7680b8e345fbccc46865fc281fe53dbf72dbda2d14bc015d4d4c5bd3cf084f597f0e3663c3ad528d3dbb39cd940e7cde15f521ed431906b002d28cda1fc2d863df1b9372410b5b455b2ace9f825f071e45247769de663b7914efa27de7fb3334920bca24fdfe286bbf3a4005ee90f8c70960107e719421415fb95c8d6a6f19e53676b2e7f81b2e90c98cc2aa937bd0d81a35790bd9a5e8652fa945e529a083208c546cdbf5bc8847bd51a7c3aa9bf38bf7a9429db61d080bcfdcbbebba1d48fd5657ccf0a748a7c6f69611caf2aad63d10b09cbda7ccb1f6f7bd5e9048ad611635532edf6e0b3b4bb3c714057874ba0880317e0739ed480308fcd3a877f8f821de631e13535d5675f8388f1febc0f5a86469770a155989899338c70687f30de572f685d3b403b3d8ceedb8d93f96e131f4398aa95720df68e32d81aae428a03145fa47c43aa09103ee6daaf18934d2a8bfd8d92de8c729269406e4f252700b59c7181f81333acac025ee1f55be0c0e1a4d0c8c100828230e427ac3bc7301c7e38ba9ea79232fecbe1a34fc6dd2070c71fbe9bdbc43683fec001bf6812d51bccc2aaf9a1737ff5d658b90383881c4e2e6a37cb70a2266d1d8f2aa051bee25136d7a193075ff2192c5280f32d58457e983a6475e1a5ca1cf7da414ae5aa44005000e6f6969497556e12b0b56729d7362b96cb0711218da66b3d1f39b6113d1b1497c8ce4b6b69f5be59a4ddbc7392af3034f19dbbaa6ded1c09e8322f88a4640ab84ac8545f987af5352db44476a4bc04d3706936b40aeb72b668b96d50bed8fdb22c0bc1168191ef40817f192bbc46ff859ed6475e60cf1d3f65ec3248215cf90fdbcb2216225fda91d4a5f76ba7cdf72e05bc6f4f885da194c7db121c01e166052f6978099ef837ea4a012bccf94f9ac81ffc0cc723e9735347ee061fbb38900268019513e4078a24ca66f8f37dcefe30071b1c608ec704f8d58b5d18387866a62316296eab87cb29a06d849009f2d47ffcde45fb2d491e78024e1d634b2071a606f82fd77feb9cf5ecdee37f1b9c50c5d66d615e412bc4f43a3ebcf95bf7eb95cdb8e5bd24a4e2d438560e0966f4742185bc7557524e8b98c49315f5e1c11f4ca5f7720f3a346e7635405b871d9a24a483a8a130c560be62bf2aa1c041429082a79a7350abcd92beaa875f9debedddb6defbd04e8b638b4fcd4169e2036b0f0b89300534a4dc236c80e1895c9b14bcda46cc2c8a031cc5aaccbfe5c3a2deff7d9183ea906f12a930b74c6ccd95022b36ee7cd09645209476f2898462a0441220e3a53300c93c7219aee931ebb68f821149ad0734cb6ceeda88569f0d75061c5dadca662d991d9c783845e7419f4d5a14e82b97b548fc3907bcdad78b229c293450bd2cabb3ffc537c21b59430b073b71cc05993f8f6525e3ea8a670443932c2d662b9b8f497a5478464288fbd5cb8958134e659988028e3d6b630857cf3de93a46dfb3296b20b22ecd9a6a790a1add08d38e8f16d8cb5cb3c1fa69a979c75f730eaeeac315adcbd2c361ad41228640d7973649812eaa9fa4540a53343ca4d153e23b56917df58ee4fb832e4c80f309ddd5d973bf4228093a7d24840100221a203b49c4695ea11d4cea187c2e49eed1834a21252f2d447e9c6d47906082951b1c1d2f54abdda558211d3852f26a08f153f4c1ad2066f3ad7094e978cb183a8447616232ae9e73c9bfe96bfd51e4b269352acedb224469d98b205004deb7617717ec14c8a02d35370c2a89676759b8b6b03356795fc99486ed87e7d40dfcba901b546f980a8dfdc020839356284b086f9400b66d174701e5df10982a92a1cb73e561bdb9572e1c7b88555bf0d9161f149b31c01e09c5774e54c1d6aa49a0b8c9bb89e5e18a71c9b22a21c94f6e9ca1a1a594f74323459c252ca0858cae22ff9b33a7e5285e013de49e0a5814be0af54229ce32ae11ca93b6450d1345cce86b0da0564b9425d308fc83911c859a6e6240f3a61246738dfe38e550d0893961b91d2205877c606726337ff1af072dabc2389e3a916edc1c82a17203c12856b6815f99530545a1f944dffbb31ee6c7a0130984cff3b5ba27fa9a945de34ac627ff5f2ab833e82c2ef7f2e4ca75e2f4654a32ab194de8b75d4e94e44e8b8d4119ef76356f96a643d509799238c3ff08418d68a0913dae525358436b17eb3f1f277af9a81301d681ba2de134180af6dbc270155f4923c9c786ab08514817869f15c6c8d86aaa42becf53855e86b581d3d2e3ea94fa9e168e04bb71752af5c468720b6b6d7a623d896023951f423224586916a88d17f65c7d6ec1d3351f49961c3579f8453143481c4748a7b8238d621723039b89aee8eb4bd90bcdd6302aac59662711811037e4c161c14c804df328a7bdeeebfb0710d2062491ef1fa6a24a790e16b56791112147b217150e855b9cfdee7fe93e9bb2531ec3c726b58963e21fa2be2f514ad9f416f8b89b7d5b808bdc9a6e639c874b42fb499109f8ed4ef4aaf17008f3f01377f2247aac386da1f85a7b641989c62145b725a9a28732b5bb085a529922fbf5f98957d10911020edb9c247ef8ec1e8f4bb60a223054c658f2e05bce077ddb22a99ffc02af330dbdd7cbf942f2afedae80e17533059d59821527f5e0aa515b3cdb60c2244306cbefdff37495649360f9ac2204970bd56526f394476379fba68881016bfa5056a043c78dd849aad292764518397479571ee773b108cca1e5002bce05fa4d8229db1b72e2c1270be26ba2da001d121905e597381c089736928bf5d1931bfdaa949ba5c006ca5b897e72a45746a96438ad632e955a951bc661be1b54d71223809d2cdcd22bc766b143dc364046e3c20a3e30c4195e053b5056a61e2812b397ebe4a36197b5cfa824bc88f016d8cfaaf1122df4d3eb9de36c63ca147cbba0cdae56917110f82735efd3209a27dbda2710c1a0a35b84aaf2021ab5c85506c6773e045552715cb4efdcd1601eff097df21aba258127514310e47647d073d84113a583e65f3ac0c0571b3b06d6cde898e8981003c2cfb3789fd9aa82c1777e5d6de517b82c9a2653c4dc518ff8c85ebb4d590aa61889a0b037664fc7f64219dfd46f78ccfc60cf382bace7e5e04c58dc8f29fe84e8a3f9af43b8858bf24ab47a8c4b4c2660368064c3561d3abb1e604abd5885a048c1ce8b7fbe47bab87c3c192a19252ba65f72e584337471e41e87c3a4048a64fc5b3250919c879797a752584ddca1f2b8c410cb94f8672ffdca56f14e6f2aec649f6d96c9d3226cfcf342e5729f796c80043ed08229ea01895b9587135cc2aee1aa2e7f52283ec683a4abcdc4765b9ae8e29e42ce0de3c32cbb1bc512a342c075cac52d318ae17066bbb6d48a6b4fb259a54c910bf63252d7e2e80dacfba0ed6bf652719eaf6c4e24ab85ff69e549ad9bbba69c20799dfb9147adf9452c5c84f2a517bed8ab7cfc1170f07a124c264bdb90986ec81dc0245c0b2de2d18c3ee0d2d81a5f76eba659348e2ec1b47071edc103a5569bcfa5fbe7dce6403b56b113f074618c691b8866e77b4515b4b0d8eb1a1b110957e6f3baf4ae33d255dad6a5911998f8aa0da00bb522e7f1b70807758876d88d5e7ce584f0a23a900357c31d069dd625bd800b1ef2bfe83d681bf8d9d4e284fa58faec4ef9db3ed5434eea20d920d0b4e9439f5c112f06d0b36bc9fdb768eee45090d79443980ce172a522a4c817d77d4d0f37a867ea754de4b352950839a7a03ef82c22681c1f92b891c43cc3d95723dd181594fd27789587810b79fac780e82661ef9f0167f63e9bffad8e3b5748e76e90b0904d64be24076f29c0923af534f98bd4dea18f7048d3299e404d8b530d9be2747e9f7d5c8b5fa4ad41b7386df8c657642649b8d938b50b47e6f45a5097e3be3fa1b6a79807fa085c7141409bd5ca24da8d853eb35779010f0f06917fe7bd334e08b405f398771812382e6faabf13c690a7f17b1d090e121d1a853a005f1210acca8021ea28965b48bcb1d2a002352f7136c679295516403ff9c49616b101c0f93b28093339f3d0bd2768b3c8b1587d6af4493ff00bf2fb09dd32965690e38057365b3afa758037fab58ddbe37507d8d22e4f00e0740b1e9d1e1d3459398982bb9bf427bcc2d94f700ed30de927c38cccffe6963180339a693b641ea56ca71a0b1b4f5ee599fcd665f4cd6f8b3f4e7243e547031dbfdd7264b352ce1bef3bd0f939a55c611eeb8ce5c292f464e2a01da83b6744b0ab5982e7e5c04e4964747a3df8d5b7b9386aa8a96e7e47bc26605ddd274d3b2bea0e154950499068329d508632bea806d53d9d74cb0a7db2b6e85e80eb68a42c9a14aca8f10c94801c7feaa7073ceff753d61c9332c07aa14dd1268477484e4192857681a1fd23a4929fd68685104861acceecde826124842814bfe4d7ade5095c110043df02341008638b76177ca41d37da66fa33bff23f7bdc5d4af8d2ec110542c7681a4f8b97071d1b960bd4ae9ede4af2e6c6ac6abaa58428129882af7c2d0e0fdd05ec54a983c4555371e9016be4a03fcd3b101aef2e6d72c4b730c46256e8e3a6148bc1a366536f5e67860f622a895b1d0a1b7b88542945d9fe1d3dc7a8bd3c5e2291ac4c1750736abe283d472b1849d5980c2aacc4289a8302b240535ea75d78a6c4659a8645424f9398530c8f55cca49aebec08b401be6cac4b92cf2090e3c20da7bf8c1ce4d608dd96e442a0d93d749f1c8fd469f1cc1ca439236ca8939d13f0221130f48ae605e42bb4a6ada107293600e7ef87d20cef2553778a4304f3050e73d48ab7df927832938af76a9130fe4522ed5fca7f00ddb6dbda678716cf44b2105e6ac99e463c295e96f1d84bd599e30bcad94a4058017009eb0fad67717b34d8f7c793bdb7bd601d00ce91223ba8f628422b8befa8bef93a330440e7d4a5fd328121aa72dabd3a51cf688b502c82e7975668e8f1a8cd3fcb92597097709e153dbc5cf47c26e4874470a70b3d8c823ca00c5437774cc28da19760dbafda2ee83477bb9faf22c0f3eb969d2ec0eb4e34d375d5384f3e5a3f4289c82e984f18f942c3ed56f7b743071f6dd8e898dfa9192ac2c6f1068e422814672e656d71d189ca8d481b7df591e1fc82229fd8cdc78f208af4e038a42f64d829f5ffe853939fbdc15b4a641708df3e5a2af6ccdaacd3a16103d15b88dd407943c7446b1cc7357ddebd6c686b70752e6b4d651fab50983ccd796c3bcc07a2b36bb4deeab022479a81a16955ed61945f6e708edb5de3d9ef471e4df594288181f7fe38f0fe3afcb05c2c9584b241df60e520066b422df223eb1560aef315d7777b1cf164f7cc34a4084c8ed6a45902f10a032d7307851ab3c56ed819b97507bd9b5b1b117c31ed428dcbc0a1be779826db062863d727629803d6f1c7e08c8762f600f067818694696c09d87fdf12cc664cb48be2146690a1d801cf797f42dc5b709562854b1328f8d581f86a4a5b95d73163b8da0716a90257a48030d4267b6a89631960443a3f5502523a5c4eaa693d5a5c714b44ea734851a16dcccc981cfffada716f9f82fe025425d3089075b551eadacf0ef7c19a581cd85c3321d248db5f14ae9ca63b3b35f4c689992033d460392b85709281fd4fd92982c5e9dea7b20e4622782f8824146f637389256be2c340424ede8769c42a810c9be8e115d06cd4cb2485124038227f61da659ca30892b2bd8dd555af1318ada4702957d0aa679c84b5c4504edd050f423bc81de047c0f168cd7e1338c2abd6fda10ab3922d56638734d7c933b6a500e52ea5ed333802e8374a33bb8caab844a78d9b805647c14e3f4da98339fe18baaf23ae02d57390dd93e8dd7ceb2cb899bee516f627cd5258b296ab98145aaad9b09336d804252e0b7802150e8c168f299abe79ca8f7aa019728b7c6e57baf9c89412586c8036a3480819e2cbe9654d22dc93ac971f11fd29e8e4ab1526e59c7b31008d75dc78a49e9d3aea1dbec2a1a9f4df43c58b8f029b33511417d4fd13769411dd0da9d043bb4745ccc86c1ca0dbbb33dcc2ad8fa4d1047fc6e50178890d50c066393bd83bc78d9155dbf7a466280f0e6821aaab6abbd17841405cbd05bde1bf57e1c623b9cc3ce99792e321332a634c1ba0dd6da091e69917a6ecdfac90c9648342781e2bae99da535e6dc3db2574fe03ebff83f990d03e75c6bb1f60e85b404ae9547aa946ef07d2cbe99948058065969df03e235ec6f2afcadafa3ec9a421a4ad11b69b70d6452556ee81f11bd4708b9a4732c1ccbace6c7d31af613c6f2673411201edc1b5ecf50cae083c5f38b1ce9f97b3ff742dd6a3828d5e49836c8c0cab3272ce29a98c43612d0944400ba85d80d09a83b1ece8c4234e4d69613be9a42597b7d1530b1e057210dc55a5121463bf51d312c2b79571264814576f458bb567be00d223f9b47592928fd2d41647fee9a7606160d746353c71629967cce235b44a06b442e6588f92b920ff5129f739ae5f3259aec35c41abdbf9836031717e9ea10aee08f3af0a78aaf08e7843cad1d229ac9c15bae0e6004af8e215ec0ad929706c3412036a99c544bbb8f82c0cf823ede1aa5310da1b0c44d983311f58e879a02047fb78cf5f4cf5cb92d0c8283733321d65c9eca657fb2b113ec6900d7fb87328a7a3e24114250103f6b829372871727a7e1c3d54beebce544a80c3d87ed872ee2f0d99e1d1f04c4321e0dd77421c29658f14c64525b54de3dce2c848e4b2010ea06fa8919336d7b8dbc75466ed42f7cdad42fa2596ec59f55b57ba27359df56cfde9748d4ed2697972c15693c9589334f930ad1323505964c18a9963102f35842dabc2a64db9cda072a770cd565e446e2f1bdc2f4e4427d0d8c28884c66a04829c5293dd546f223c4c5436246a434a8d528b89bfd8dcad0eeffc4f56ae000e3100164ff9c4979b1f78a6b26f0ab7f6f895d261e0c80e44e3eb94600dfcbc7b19befd067da6ad5d384da106bbe24855e77dd44b9dd83fca49d7bba228bf5d7b7cd37dc799799df8b19686911934aafe4409980012f202fa47e0c0c68f747b44b25e7de7d023449ed1acf59d7821e9342249cf82ffc56b0250a1d2d3ee8989d0a5261cf4a9e368caf9ec79410ce17c96e48b11b10c078477458c7d78963b764b2fbf844fb05ae50c52cea60aa97b16939df28aba27f6b03a8761e5754ff12453d9f6d114eead388896e133ae20369df962a56d3c0955451b303a00b764a5c10e1c8fbd549c487a445bdd14f8794305289854dda7ec95613af0a0bd3a8a147319c40589afa89ff8fcc1f6651ecfe9a47093e476955e48d095b23e2ebcbc9f0c9e0662136209f87ee5e5dce9d97e88e4ba1bc2bacfba7e34c4a31fc13cd0d4d3e503f5bb25449e6b55050e6467357711cbefafc68beb21c0f50ed6f71cbc89c658f607ea6534413caf68eba549ff32338a5034072f4805a8c0992dd3a2938372a1e29bda41c623f843648b524a96cf6ba1b7733db7038dd865830d59e349842415a737c5ae7aa7a6fac46049e14a7af0077d7b28c51cb772250e4e4e2ca3201874dddcfb035e4863c854becfd793be737ab405c2115231a402a6547f572f2e0ae0a1d479b26b31f2a58d92b398c08b39443a591cc13182abc63a2c97b94f51d5a15106a192eda2ed4eeccfae4f58b09de6d30f5eb21ec95ae5edce5db01ca4d19a4b5a3a7031ca01300f23599273dc8865d248ebb00354190327b99a7ad2d8ecd69f2b5b12f99ff7a48bb947d88a388524f2b6f1a0c7e33234b9be45c2190f1fa6766ff8d25d20470ad9a51fa38306e874135ab133c6e5d4dde613a468cb666cfba71904c15e7b15eef85721953284e6327c536cecf42e5d328843500b3c8b60ecc807f46d8605c549fd303bd82be9e8a6b3d0a0416b8471a1e0ec46b7784c5aa69e7bb36e1ee438a574e0e08b85021d98282505039dd6af843a0d8244c9adbf86306869f90de022ff3cc11dfdb8a6497e4571663952e27dc082abad66e94b012399fd78e4d574f0dad7caff54405c23e4b17ec9ec8d303dca812c009e1ee9b7a035dbcce517f6af7e726fa32a06404c0cf03975373dbfa83a9980a2d11a04afda62fa6b5e961b23ae1ffa9c9c680fea1320050c60418c63cedb7dc74f78af680762080a4c8c7e102a93f4e94cf89d493850060324cd65e63effe2020df1be11e0474db9e98af98c9a63117a09aed8227eb7b6f5e6795a69eb8aac0024e4bbc86649169a8885db418a69d28741011327f46332472dfca66c0862fa428139db539b18e970957b40786ea415aaabe99e3b4b675b45630bb013bd6be3f78e089117b45ae965cb1b58b405f3e0377e4aafb82b5fc81bb43e5a5e9ea5664dc29ee1303a688e733fd3a79a541dcfcebb29031a455962f047f983658ea195c52317e156201f89d4dd6f5f5ae721a298647ec6634d7be5d6c30f772cea8dd435efd606af39ce8c4807c89e89d080209b38252d089eb6f8051b9e0dff2f794ee9cb7c1961107a6def2d77a0ff186bd859d8e041e08b10c32aa6e3942da1044391c3482d2810fbf5bf35ad9b6cbd83aecdab570399b6f37f6de629bb6ee70cb2e6011779602d312225f400a6344be0b3c5c1969ab369154580ab493e2b7ce4db896fba6d972a015133e8e3061e1a1190d79d2e13c858d2515098bc9db4f431d0f8c03d888c1a67c4525f79ce9bbf127c5dbfc1a49163c4778e758417f56fad4245dc1fee27b8a1acbc4f79316d6518c405cb8ab3f21590cd9af6044dfcdd66382d8794b1914114e77ef01d31db701a49ab6e9df627e5f9c509f713b5493d542e20abb19b8ec9a014bec8e7ef71aa5700db404be165de1571f187771b983bfacf5b9d2539049eb8f6862bc914a2bd78ca3a00c3ab88d91c4de99225aaa48e8d8d58cd19d0b17159b55281355021b5c631d9e91ca0e86dd76cdcdf4ac66469a0b6a4417a2d9f4458632ee5fd33bea858323f2544ae2f6783ed980115e270b6c2ba26f709428ff864d4d44b553ae83506281b8959698746fb496d0484fa5773fd89a54cd4c98a862c078ca76f27daa0c7e5b7f6ebd68a42b778642b42111e8669cef9e8631bdd4e59acaa464f9ef29c772098ded8ca88d95c6a3bd36e3f3c538f201aad72daeb5eddfc16f3cbba204a78861b3f1c31a0d6d9d0b6c53acbec84166ed41601cfc8e80684fe1e7b50079e8f090f973238c66c23fbef087899cbe2b0512b1a65c16606f77ce0be2df227434900e5fba81673aa42ec2cf0a2bd24c89fa97bfacb6a6a445f05d1cc4503a3aed72637f732aaa1aa687bad0dcfd92dae3f0f816a4ef9cd6f453be9dda3ba1d6a33d0c2f6716314a2050fe058f5c1f27a9a7e303e8eb5e06aae5297916f47af2e51021b2abe4d1f33b1543d5e0a7a32973162ec8ef6d31d5e4367342fbd8b74a3dda0e599756157951d2bec7c122c3b99c20967f80970a935f3c0b3d8cbad9bdf152b946254f46a59d3bc24bac6064efdf385c646f466d6876c326bb09fecb3e94000bd6b8b803d5a54690e65070f04de124871076fe12c71962bf707a984018b07e87e99bf9804ccb8bbc14ce58e476135c39e641ce5e66a3c819877c97a24eba1b2c61e4ff0afb97a08d98cdd9969959c72c260363ee4c571f63c477a2d564b3d0317e2e8b718925ae0eb3126a0097184fd1e2cf3b4b2b7fa22265f3329a671fe6cbf792d045a366ca70594d2d49685c63223d7125b117f5388e0572e26e05bd796dd45189d43470d8341ae7761336ecbf035a588885d450158b74d66d7797fb0702f0f740a03913cf83112d2dad1520375b5a8a35e30375434e56c6398a200d9757d88546831e2c6851e57769c8a74c0f41afcc2c9e3f208b34086aa0ea4760d365e036e8f294df0bc448deee5ec5bfcf144104bae6f2213584d47ad382438519c9497891aedddab64d68ae010ca78651173a1c69c3a2463b319682a07142c9785c79ae928fc7e3b5aa08ea94a6ba011cf043d323e8794331ab220ef411110424543cc610c10dd26dfef937c9a7639a2645bca4a83813bb208a8eb6159a4fa73129e58cf8e6f6bae91322f4018e1645631c6b8b67d24bcf1d4020d38cf55cff7831ba142f35abcfc7faaa569b71a8d98a6bab086846e662333d2266c048bcf2658e9b3803821760a219d0f989971614070dcd80d07d5af3468188799447ace1b927f196d24c60e1970da5cf18a18bc2ec3a986b46882f0cb40ef4e0c98b4dfaed411b7be2b287b1b19d74d6e5c66001c0de253d40d976a08eb75b83aac695dba02136c4408e9e7ada2f6a9c131b859b91191a072a11e5d36b619db6d667d3b05d1633240d8869d1f276341c38b622e3df5748ae263d187918a90a91bf2f2a33a15985285042c700ada824760cf4c8340d26254f683ad2795a74b685e22951043b9a7c2547ac0ea0c75dd8a5ae1704a63fa82f2403f1a4188640e0506a45fb8b87229cf147a245580b771b5089e663a58e942cd70e016c875fa2047fbc13a9afccd46bb192434b1870814a13ab966e7a1b0b152a4230e13dee9f30d01ddff47f9f9a074405e8b20987c695b4c6a66518cd02180e061163de852b1819f58f354d9f5afbda7b4551895ec093653f876a7ffa3a47aaec9cc36815320092bcabf678bb061c7608094f750a2c3c0dab50c617b42e1e7e43b29a86b3610d6b72c1aa0b5d918c6548c0022852b1db8b541c516e9539887f4d661ac808064026426e08473bf1e5a79640c07bcdac4ffdb8438a67480930d028d776ad98d965433fd93e94ef1061036f62d6a1ab0155620812ba66b6031568f5023f467b7e486f1236c33ca04c9eedd51111ae7e389c2d1bf38783d23347087f80718e9daf046418ef4e177fe00d232712de35efe9ddc20e28c821eacf8b30d678022f463536e042d503acb1724ccb7e0e3a75ab11244ba3277df610ff008a5448cccb835a4688623ab05d3aee5f0c4e7fd594ecaa3a00dd363b6bd42edc605891901ee8788ed438d308183a300d05e4e0531b08ab610d361ace6d45cb0549bfa4aa15e3020f656e29cdba604b03f669c62fa1580a0fdddfd26cf3a1bbc051895e45461725b653191e5ab6c0b4cdf92db3c0b13e8e56a1068c80d36969e9d6e4162a2f3fc45475c654803b808f6a1420f20506d74bc07ade80cb929575de44339181a31fa703812f8bdbae8da6a1190f388e47018880e00b79c4304209b2f04e71f633cbd9977431d7cca55a2757bd6eea04dcf314a79eea4ec7b82faec2931ec63a039b4e0fcabc5442c357cd79d26749da3e8b192363190a1181763f87ae2c0fd17d57cc5dc138fb9e6b6bf253e41514a8aa29ef2b7b7723d53224a6eab1d27c66087c617071b39485bd0dce86141f531353e44b99f69a466c19f52646cecd9faa30a6f0b7f772aaf763d09c58bbdf9c8f2eb76b1e40cc6c5f298b4176b3da9542edb89573517e83283312a682173415649aa99eef3e1eebd60a00ae08e84206744a256833a009944c04aef95da56203e73961d9d36bdd44157a3563d578541a4578c9d42b8f2fad36e7618abf010c283be459280278d826a176a63408978cb300d2003947fabc095ea582a1dd28939122d999d0fdc9a87effea2bb811ccd600edf29fb87ba0c3bea4cfacb9eae1001b6128a7e5996261e6e34b1860b5f4a5d471de08bfc66ef5691ce41b360b673569d81c52bc70b8a27e90f140954cbef785d709b7dab37ea540799639749563b9a5f68fdb18862add0269ac12594d1e83fb3b5370f64d4d2aa65469357da3e1244297c1aa9127fdf18cb5cd9caef1afc0d1f18685a0c630c00f71679968b6600c9ac5a3c5d15d38566b915224a3198aae319ccb328bc34bbc6141808e21603a7c0c14737b129b1f90356ef45a47a1f1e6c4dc1be891d65d9211997ea8300161d17bbc4839e87080bfcdb0ede996d642b6f9b43503a50690527142419060d9e32dfed10e5d19c54ba82e1d9411f3207613b42945dfa877dff9f0e7153602714278cc4f04769d73a7dd41eb5b686d4cb26b8010836755eaaa5de361e7d841f01884090798bdc1d071e6fb6535f69b94672ef447bedef566c41034c11e3bc703c3251f41e22dc5ff457cd762117b6b5b3047ae8543e8e71bdea4d515008956d099612bd321f2528dec9a380f097d27ff767240c04829af45b718e6813fe3ecc2f2f5b9d5df7e239b6768dc00c2c91484dd5364864d3a5a6c91fdc2b0db938c6f9f1c37949cfcef4f89a80b03417bd7b917c3f37dd0e5c4f80061581860e01e6853bc2801e033f68ba0a4f8c45d2a8186869f9e4e25c84fdd852e6a8892aabcfb3fc8444fb731f2c2827e6644386364999a489908a5aa2ef7b2e780f756f2c391b06c8dd1597612f38c86da9f1c8b48cae3dce436d3c909a4a5e03d45437e3b06a703432d5c404a50591fc6de86131bd2d4e5ef72907c16321975d5eb507513fe3d9a830a12ed50c1e3be6abc7cbc62d837485a9413284cbd01baf31fde0a58e265f0783b00b5c230dfddc131d4e1d3a9a68628ff5e1358fb326f8080023f5ed455d30ca724fa50132f8de26fd97acedd606f5d8cef75dbd14eba6e89541573342b131bc52118e2edfce86057f5bc0b1362c508b6bc31139bc7817d891b93debd36e5543fe312b4cd55f07c5906379c39265e017570771d75758a69c50673ba8eb29af674d11fed3a0ad965a2521882f427928070faed159d350e18377e34cdb1804a4d4afc5cd5a6003155c98fe22a145b6b56efeb7098d217d9e3c199ded251aa871c57bbfdc3c6a5dcfc108c53aa2eca6870a820a069ec8a15f1ee5e11f6e6a08908fd8e447d727de91eecb05442aa036a420b19f6733c2e07a6c5d982e7fba8d735188c5612037d143b258ffcde265b5a07dce98ea2f2b9cc189c65cecb42f88e3d9b927a0aa0376ba7e788703ca101c7983ed987a833f563ab625da07dc155967a2534831ba7fe1357eca588e663e38893e10b5641203a3d43e191898815fad32f24b66a1f089acd5a9263f7f6d7ddd7028067fed99e4ab40730c40afd80e1b76c700103047e477a41200b30102d9ad286fd7ed12e88a6370fb061251dad661782e353b2df4f01842a1d1713c84b777d653ec3a99e0da59dc3fe66705b0e42ee870fdc67fa1467191dce9e161766a5d13ce15ebdb2b893917cd6773889e10e1d054d87e427d742060e8c9befdde8927323849fe651ab4a1f372abfa2687f80c97e0ef8943693dd34145f0216a8692078d5f3913fb8f43fb691c7626fd8f47a832501d0ef4bb0de500a7a0b46e11bb237ec09c4c6bccd2f84c0566fee19c6c63f1248f953e9d1fed6d4f075652d2fb147067bae636179e953bba075390c817fa803f99dc513d916f780a218684ee5cd1b7c5e1c4367a5592f3ee2dd1ec11b10cd2b10a07b9a10352c98b6d42d256c76c65d6ed11c9cc6b7becff1671dd923935f59016d6731444a5072c94a8818b8d4b9c80a630cf44e8c8819e0c61f9ec42d94d4cefd0eb3b33b3f443fea84c832c1d1108238c8aa4028ced2674e57afb094fdc4ae40849af56acd688fd41818f988418e9e52e781bc5990bcdf84edcbf1581fa1848dd98c24323e0e351052977efb85c4e1f222da17173d06da60325f095234241f8f599784b74d3a782d417812666d1a0e3dad05897080380940c56e6b9bb0a28f15c1bafe1a51d4874f94dbb1f9e710cd3df67d8faf8688e1aade3980432b03894a484c68b6509ea5251e22079a6f1175eda4267194ae59cadc9799a48667558661228825fca8667a799a5fb794ae9904ce28697a1e9e7f84761ae03de591e9a601d08b9d92d144d61308a5fe2501d71b514a0e633ca5cac0317a21bdc8447abf7cf3117f81e921b5189b86d227d310647a15904ae601c8737c44dcd8f68cff63a93936f7ff3fe9de098d479dedcaf202abdb5268cf6cfc619ba64a69950291565a209a9b141984c270472fee4ec4d352a3da13176e33dba7df7c11931fbc756e3f11d8b59ef4433d70a56d238a7f8301dd2d95f1f7b9164f63c8e1837fff508bd31ebada211036fd0180b9789e9d4c44546af24f15e9f9a4423a6c01033cd108f413b28c67a4551220226e864a2c8127249aa573227648f0f3c63d11e42188622fd5295d91a04fb801915a65a5a4d0fa6292674b519c9e1605dc4bf1238d4c610c9844ea0d2853184b412f78409416dbbce02c7d7367042377bec31cca4376fe2e245136f9d004080d1e06886a85ef6965d2fa41f6e094028a2e2a74d50de4247a5dc825460ba767ac35efdae13ddace13718be8deae1d7ab9531ce229db67b5c3a000d4b97604856e36d7e6fe1ffee72dc1f6289de36f8e4ef9453f937e6f1ec38fab9098261e74d11898af14d917af563b567e9787ead8aaa0404a69029f51c5dc85862cb34ecb96ff07c93f633c053ddf949d04c2ecd29cc521a1205a6111b2bc096d0c9289e01f307a551a68495a81b6b5f7926e71cf05240bdd2cd83cae762b7fa0257738aaa9a7e856f96841c871a9e92a1529482238742218e4a35175a8514b0f126d426ba5109db2b4af27ccfa6152a6e6cb80a6b05e819d63646001bbc41a3238c739da046908c7498449b1964b5ff1e0156072c73295908246013685b559745184f3607a9378817100755134787ac3166b9b8032505402496d89312278ad888be802287451359738e504bbd9302ab4a263d98963584bd6358101151a21890945f3f8fcb4655cc2c5749fc1c627ac8218981ab7053353688298e3efd58c023c5a198180505d9f4d940b8a22f23f5712753c44f11683c626002e83920876f85f14588e2f1ea1c70fe9c92e8e2f658212f8e4717e48c74e1637490c169c06d67ea358bd4aa22881dec2bb7de24312eb548979e59ffdfd3adcab481fcce63b4435f0b87cf29238412043a843eb583b4b9fd0e14810a4bf517c6a702c1a39ddc403bfed489896e224106550095c0e032a0ea6695b30ce424a070a8297257e65b50af8a407ecadd36105c916d561852fb6ac1e1c85acd187dab45a91ac3d50a0047558db2b00054018c63a00b21691b1293715a2dafee424915dd0459c5c6d7d4c6c24641349c8de9b1029a59449ca149f06c4061f0650a4aef8fe150411223043313049528317322aa882498f0c23cbbf4664f9ada005c9d7cafd11c12167b93f223348135c2f26e538c6735032b089422f8e8302151286a61953048da012102415c53c47fd1cb04776ef38f465772382b42f7b2c007bea4ff915a7405f4e2125fbf28552a05fdfd6f9f15d1ab89034495e9492e127dd88e0e54604f9f443803d9d9c4331d61b32555286aefad407f141fde923d79b8f90fd1bc2f6d9671805ceb39ed53bde2139bb822fc764f8b5c967bcb479b9aadc6ff6b3edb32dc337f14f5e1c073e7713e1a7706c128de0cf20f3b7cc3ef71c4661f5f6bb67e3ea73df3dd947bc23b69eb5fad6f7e653df081629b9a13fd4d3fa6c7641e2fba8fef4fe417c509f7a7f134410ca5e7bd58b20b4fddd7c563ef5b90781c83ea7bd7d0edfc8b7490281e3c05f75ed3833309556b74486cfea6e2896a50c7f5e97e304390166134c081242086f42109f1b1150af7a1546217b54fc203e3722a850d8b88f78c77cf9abaf9fadbe379f8d8badba9bf8433df633a91221f3d95ef5d2c7e7e2c637fe29dc8ed3bdcd50dd8d63103a6a70c2616cd71e87e0a7708766b450641d330b7c2b187d2a3c597d5995e023cac106a6167c44357c44485be837c48b0e2b264a579f0c5cb8708971798df182a231b4201a406ea63148308695dfbadbe163281923c98baca33b54006cc0144c6170891900e6b8170174752500489498881183441163c4608c17ec18474473ce39d17481030ac8605a92c406ff624d9ab9660c2340c8356528d39a33445640fcbfd4b0a0082a5d4a17e342bcaed695fe4491268850355aa8b8acbec9708d18355dacaca8c16105354d86ac82500325cbdc4c6a76b002c62406115318659098c4a8e2673c1ac1345ec2a8020619309aa694524a29a594144bf970e21ff97ec25096f651b4b68e4a5b079dad63b68ed838e8f7a8d4849a51f361afaa5cd4f70f54447da456fad6c33ec49e853fb447be96584c086b63afd71052be5e37f1e1fb13545e54babb276e4927f662797bedb1b73d7ca0582621967fb447bdf434ecc5b2f6ae6771901371b2ec05e3f6d773701fdfc579da57eff3b6614feb3c10f24f7d7ba3b421ebd72a078a573c5cfb5e8f892d06f6e5bbd4e6e2c51c3911677eb5f65e97eb1fc790726ce188b3e44a747eadb5d65a2b5025a1c3e4da61605127a5b3693ab27fd97cabbebf67b4bedff58ec2df4199f1acd6b5f918ffbae273accea6fb088bb07fcf3163f5f17b43d988537fd5dd584e84d54f751388b0fa5be741f701088d6327e2d48728dc1156232bce1eb2fade79f0a636ee8afb36d5c1b4fab07e561fdb08abd8bbb0c69ab4d1070863749772cece7bed58dd701baf70b88d3d4b573ddcfe996abb45cd33899aa7f6efee6e1cbbbd3d1064e9a82f62b02515d2286b4ca1bc5a22757cb524dea823bc6ca0d0fadf883057e3e82fe12605c996666bad926648524a4f8b2f78b06a72e1775bb865b5c4cb40870b7f28cbaab964b9f2e1c25f2d01da4922fb53e4691d5bea3d58ce20e6d0ea8cf6ed08ae7751efae98c7978f10808902c62803c53e88b0d4751cb89d60de76767854a7da8aad9594ebc15059672225fb44be47f5ce7323c3de679403edf8102ac1d1132a19a8c3e413ea8455cd05ee4418fcf642afd8a53c3d58f6c071e68ee370605cf95c0c2ec7c5f5a012a824cedaa462287e13f1f5a6db11d6c45d71e77be0b3fae16a60031d105242f4e263afbff8b683e22059450325dc153746575e295daf9b4a088a3a9e4d22527a12753ca01d1e88819a4b863ca080cc980cd463a806b6676660e1523dc2d33838d819e1e504e895e7cc81bd96bc9437b21514e83d6917d28bfe16d2e841327a9173ceee7e971f757dcfddbd760c36e75c2dc964756fc19933bfc81a7e002184b0fc01502c43f885a7c364b8d361e24e8fe931123a113b39feb4f63be75b4193e28e1fa5843d5351ee5838a5c862cd25c71132fc160af257ce8e1d189d2f63c7d85cb01b713cdfa394d29ffddebe5ab29a72e15b91c9397b7effb417e479be941a5831b9f0e5ccd3218470554392975186bb7becd88d3bc2908a98bc6882094d1a26341f13185c9862806595443a31862906494c5f34317db1c4f48512a62fbcdcc80aa385bbe088cd10de4516b984f4a552917911a57a71e48590ecdd975ca43c23c585db3ac345f6ee7fab2254b8904352131fbcac69eaa2897566880f938a2776104306055300c1c4b9e002c686c8431738acba9882449a694aa3eaa285244c67983833c497638ced124e68bf6db41fed4b7b5d52c7bee7ef31c279436679447ce949f9235747ae94508b253c30715186852423883035c960668b2898cc6c81b0bb1b0617ffccd7fe64066ec0612f96e75d8ab13140394039310d56a04e0dfefc53e779f6ebd32f41d2904df7ba3c3d05cac9da7b4039f9beeabd58aedafded3d99ebaf3ad7d681f63f177bb06e3fb4ac3d5cf21c35a084df65a09c7c7a15f66299fe26cdc00db4d367589a69caa8ae27cdd3f6c872c5d20c5400852ef85222acc9059c68a28958d21250c4980086a430455da0146599fb831226620f4a2c45727ccd3fa6f97a40e3ea5890524af93dbf7ba253c0e565155d9752ce3f61c2333d6491bdcb4399ecdf8a685ef31b4b396128f7d04981a11cfd67d7ed3817c7ff04f8f15945b77bbac7bbd9bb47e947fe09127f4000193e7c8f2d64b05128fb8f3ae11fd49f3094dbbec7e9ee1f5da22aa5734ae91e516f1f66d457cf4af9bdfdc8d991e0ed84cd1de1d2dd796022bb5fe1727f3c60c9de7d120439819a29565012c5902b7ae60b575817c0309f48817a6282d3132df70995d493271a2bf7c7030f2716b82c4f6070159973cea9c5cd13158a70c13b3479ede0020d3433a40a6ce4cb2edc101db66c9f0e59e694ce6171fae40b1e60d0c85c21c361e998c5ee873fc4eecabcfb917fe5cfadc784f827bee31efe43792843bfe9111f7af7c37ffc7fe47b7c19dfbb15c9d0418a932ddc115c124e8c707285bb42c689152754382dd7fbec9eeb5f1f731d7bb57b23cc65d7248b9326d9eb1cbee4f81300414c8e5fb8ef7a3d467660033c2fb9222ea51889ebfdc776f88ab0c82171e3c7288378bd8890f26584152b56ac5881dc14215a6092e4c381480997246ff0426e1912bb60fa7248fa702882a3225df872c0d202e74300727f3740714313b01d42d83129b7b50c5bce0ae7434ee976b76333b118f783b5b1d78b8b22e56b882db82162bc32c6418971505ef3ca778314ce09e7c4d61ef4bd03215a67663ab23b6e10bba3edee28866c1c9186ac5556dca8433de9c39f7e8feb7137a8743a468f113edc20160ea3437777e9442474242489048f7477777777775397dd4d47907147dc1177c41d7147dc1177c41dc949ab3d592f72d26aeb52536c2227ad141a2d35c949e7929c121a49f77a4cfc18e35a80fdd17af96a20f3c2edcf86a2ecb9d24c2bdf92344b60e05cb8fdd510e6aba1e8abc1cbb704e9643924b59b4ee9dd6dadad30c769773ff549466f5d7921d13d6548742d47742b4774294774274774658644d73344e2886ecc9c0cb99f23ba9023ba9da18cced13069d53824dc0c969b417aee1cd207f28d22811d3821f453b284915519dc928eed9c92db0f6310990adc921bbfb364c9f22591c2d9c0d5c025e168e090704c38261c124480122c49bae4de864897d2b923d73ae18caee3f02f2ef7978448a6b9bf244ab2f7b11844c615b9fd1d61108a1923a60c193163c4c018dda59c517329e7a4b45a69ad4768a53629add5da53b5f67442a132ab9d50a82cd3b46dee78a669db964aa976342d95ca72a5e418d7ac8930c4a23551c89a345eba8809d3c54b9725a09424c8042a899ea64c990e781c44d930467729278cee52ce49e5a4b4566b4fd59e4e285496699bdc368f7043659ab66da9946a4ba954f7ae561c4bb2581e218b63b55a3366d8d8d0704997cb237479c6b1bc1b2e9751660f1361f125160e863b2347230590f1006e0532c820e345462c167385713df79764489a1b737f4954807d4984d050468cd210c60b3224191d51a59a185c2df747c3162b3068c0e24661c48b1ca7ffaf1625f161ff826191f2e7a4814a9ef35b3388716fee8f8626301a94b857244b9020512fbea8b57a377eadb5d6a326f32869ce537763abd65a8d64548e86c8b5e29672fe112fb840e305748224c31c6199474718a974d29929a52b2f2ea53c90d29c4e9405244228122231a089e2cc99339f9190efc8d1aac988153ea3205c5899f98c94649bfb3332e2628b2d60e852648c4bc7ff0530b8a8dcdf91a2cce388bb4dee2f86158c8c91bd8f51b994b6e052fa25e274e661c44816997e46ba806145260b1768f1d222a605fd8a50f95ee072451543b09882088baf481443b0f88a28916beeafc812122b58c1eb958594af17aae4069355fd8ab63f17c4c01cf667db1bf9469c7eef95e7742d71234ec48938d1bd78846672cbac236d30f3c6ed5a1e585af383184bce2435492167d42cf1ebbaad7bbd8c21da102b66b8d726f7d7c208b277dfc3985f5cbacb26315c973752767777775f317153b9bf1688889167ee8fc8172dc83c28120b4941a95fe90708a83f6212327c1e998d3a314208218410769089875aacc00401853659a1070e9411c50a4c404cb9820227e32382e62352c547c489584c096b63afd71252bec084e04c1127c860c11447486a7a380d99e264c80da72b880c9901f5114182099821456c0cdf1cb2c2494a39a4c2932754b0040c3151a270315ab0a189e10b9bea4a95942ad99d6094d1c62115741508c124155b53be9459d24f7536986eeab5574af5bda554291ce4794edc38e06b56e669bffa03bd684725067af9b881a50b2c3c05bd05d65a6b6db5d6fec96df6a7afdda9d657a5f3344fa713a55e6c761973565447c26b7624bcf24f7ddaa355713bc226be2fb85c5358ebbadf94a45c737f4010f1019104c45234024249f65cd948f60f88a2ec53ce8f9133733d17911244faa884c9fd4d29931990fb9b5244b62f1b2137e6c2af76622fc827982bbfe95e1080f8c00d609e58b27c2a32aade666ffff4f6df03403e65b09c412c27bbb277f3ac3625552a77f7aed27c9a79ab9175f46dd853f6bd59fa277bbaa175debdd6c57ceab40ebe40bb5dcb0583ebddc8fefe5c992b1f45bf5a7b0af25c2355a2d6d367bd59b97da4df4e6d84d15684a1f08db079b21d902bd32869bf3c8b918925ce8aebf5121e788eebd58349d7e096ca54dfbf5aad56abd5bd57bbf75e6c236cf5da6ad5a55ed57940afbcfa5476efea5330954aad520fe14fcd6608c3dd67177b37ba56bf86bdfbdaea765e4ebe9f454deb3ac2b6ce1bcadbfbb6635b69aae789dd59d505c59cd29ec733cd058d727c14f66299ebe2f6630f30acd8bbd7f5d9832bb85128c21b7fd538343477292b92cdffa620e5fa59477c02cc6e82fc0a3bc0417aa0829800adc8f33d667f6f6ec9368672c8f379b41579625b3df8d65ffb8c4637dfa6f38eb544ae7fe3c3bf7e8daf3b5c3fbbfed67cffd30f4b26d74f294ccede77b8debb193fbb54378ed3c7ed87cd7eeba03eeb6dc7fa55f793fdea55cf7537aeef6cf3f2beec6e5c4fe33ba39e27d6785477e323fb1a9f7d0d7ce3c23c8632f7373e68fc7d1a7fff7e6f200c813d45dd0bf0e6d3b7f1d63e8d8e7b9b8efb199db7bdfd56f7b3face70fb5159d8cbde72ddebc7fec5aaceb3dffd6c58c371e351df6239fdd494ed07d17cfa20a71f704c768cf23f75d5e04681a12d19d8af5b05e4d76e3301661e12cbf7548e2a8b294f32fcfe9c750643f9bd839e63e909651efd9927c66e58fff401fd514acc2f03dddd5db624f660f56fd95936d9ee831b619e33681c1184fbc4ed805b1bc990e988d3efc5a453118549fedc5fd21818722cf7e70315790a91529a0c977cacf55a8c0f54f6feb975507ffa74f6366adbbddeca1b1116612d145cf831ebb59811b284deb55a4dd6afe865ae5afdfd3b9fd33047c5f57a27cfa0995b6ff3f37d8070347e6acfe9708fea5c9c1457fbce3fb49f6183ed8da833036b11c67db99d35ac3d8daea306ab4efbdb69afd23ef559b39dd5b0977d76b136b92859b837578882f00a8428d4671095bd77267486511d09b1ec81907f50281484afc51c37c70ab6ea6ee7eab82b6efc93f75a6731a2b20c6f518ec0dddd1dba15ae03808912852b7250c8a069bd0a0e0a87fe428408099a0228a38c32285cca523772bbd6d50c624f52e903dfa23e850c3bcf33fdecadf571c7d766f82773f9f4277bd4f6d0379e08bb8be55b9b5189fa299fc2f7a14cb2373f2866e8b252ea13752644f2fc23e5f6c38bd00866ef9d9e52ec41239ae1a0982b0e8ade0953eaf9b0123ef51b1f580437904fb1b7faf9a9ad03ead4ca15be964a6debc08399f559ca59d67596524ac71216655a7f72bfcd5775d40706450b2d0aff54dcca2fc00dc478411166f8473e7df870c64cded4df7e3e7c016e607fa2366c83e9067986ef0579ce7efee9b98e6616fa48232973a5380538948ab7083459cbf067931fb2640d727f3f10e52fca972f8a942f4a1639cb5a137cb58e55ac5c8b83771c994275f1e3fbdcd8705dcf32ed743a9d7e506d4f274daba13d0aba97599c612f66ed79a243afc764eeee1bf680724e1e500e508ebfe79ae7d893990e09a530a187c2946bb2473f28fed87c0ad93bcfb3e7d36c89267b1ecc27fce3ffe3f4adfaf4332f28be4db669ca144a31e64ef1c48c12627607629a6dea7b403915fed2db3c4f84152e798ebf99eadb736c8faa814f18b573833d1a36b077371ad806f798efb20cdcc01fe293db60f26c34e5fa36afda7e6879feac35b00a6fb8c6d370612387efc2aaf9a9ad03f83f27bcfd06e7fc0cd7c0d3df4503ab20f6366ddb519be44c9b547377b7794f9699befa56577fa61ea2fe761e8da63b46f03d1a59ca57ebc87ec7739400778ca0914be8c5b2c8a7f9f014ad63470638436b711493c18a188e9c032d535690440f4110b12099f848004613231d8a66acb999a1e6c83d3ef411790c65c923c6f8fe73f39101dca3cb3ff2e39c3dde6560956195915d8cdddd79da74970b76ad8b95820b83cc00b7655680eb8a10464c800b1d90bd6e4b2a298b8a3b803b3fc0b2addc2e4dc603e6bf02b82d030080ecc625528299ca4b1255728c33cb1b11a60d71bd9be9a414c23259bf721075d4c0e18473ce39ad7cf8ac2de8a413021591ddd8b8fd4dddddddff068c75e5c6bf60352e5493b9680861f39a115dae16908c7573727f5bd4e40640d66d571d88a91261bd054d8699e504abcbf55e8b451df81c441da9434e8645a27bcc713deb56461dc73765726719871c8e0021acf5371f2290b0635c92c147e24bee6fe94bcec9fd2ddd907beb4131779b275bdd6f4b97dcdf1964577553774e9ff7fd1d4389d92d4e5d22a5faa7b7a7fab075e4572225182bc5371e91c8b64ba424e7e3ac2304a44a62ed7a0a104a20eb97b41166352a6e76eb13294dfa9e45f56bde8830d6951b1f4ed8058152bacb78bab1c842c603667bd36911561f621bc4f56c9e1ebb2030cf9f58ca3cbd5e22a5d3b797d6a17fbaa88e48c967fe78828c5e22a548a4d44fe45dd9bc2da5b57e89945c51036f55b93109870a48e249ee2f09a404645884f9b3ccdcd91143f992c09263d71f12594089b7878c07ccf076cd78c0dcd77f86b3848041ea3249ca1e88c9f14750eacf86a51c3f272a6914bbec2bc9f5097f7ee2dbd09d4e133c845bdcf6e08b20c32c9bcef97537713dfb232b9dd2e3b7254b96475a584068d14205c5dd529453b93f2d6932fc8b638c2ebf2d4abe2d49bd45d6316b5712160cd165c81114302748a2a585d409f2a90a25b47c56b450e9268e60e08485121ce9e1090d478a6eee4f4b122d50583a34118bd5606decf55a22e54b22e111030e77f0da9425181009243740118394263c44c182448b90164e2d50e2083259d4b09e201d9186a5244b982c4e2489257925c9f2c4882b2c24324b9521ac19b21891e50a13d2d151dfd022c410c1855106546022c69721964441869ca188324762f88c3032e28531b1d8116b63468cc45eaf16a47cc5622c2231160c4454898188248a8860c20516d196fb2362055995fb23028a21d00c51c42ad22cb04244c46201cb523ee5feb094a93283dfa8ac551f3b2125205a96c5cffe8481a4deb110fcb791c4a5f73a4e7df928ec9f451a6f33e369fc8c175202d282f0e503812f3110970b8380859480d83cc44231c7a96ff334b04d7d88637d54976d9d8685944e2fa43dea4f1888ea535848f5f021d6b050098ef3424a110b41218e533fc346f121168a580862210d384e7ded85fec6562c4e08ebbba772df3db03e8fabbaeeb11dab135202923d8785604ff6aa5f75b7434109888651d0de46121852719c5adfc677310a424a2174cf7cfadd83c228ccef1e0f52c95a7c68254dae91fbbb62946f40a01f42f7d01701f6744fbf2afe81aa218f35ca8b3524c61af292afaf0a99ecc9afca98dc5f9530d915615f9534d248d6315371617bba474a4359ca0207d9dc208375d27bd596eba3853f3be951f2c428a5f4f8509a10811861d73534954d7936e9a7cda5b9b249862ccb7a831d3b9f0883f2c37cece677076fe243a30c97324fccda876e3b409027359a734a23298da6d194b20c29647ee8e20579403965729466be2a4b7c4264914db2e95bad0883306b272e8a7b7a4fcb3638155c0981a2ef8910880f8d3298b5ed4388bfe1a1ce83a79ff5ed5046751d263b6d7de4a23bc2e84395fbdddb3f3e14b5ea40f99dc4ef82348a91157b5ab61038fdcfd3a9b38ec3b9e07a9f1f4258bd72545c1efb1378797aff0ca24b8a0bbfe73bb60eb1065eaa102f4d0e85b23f97820b73075aa65d2bc22614f2b984a098e346e9dd0d17b7c5f53e4cd4e1711ccd2d0ac2f71e429e30b784088baffd4ed676c0f6e272b9bcf0407b4fd873b9fe274e1303c10ef7a404473b318784488d233e87c56d7d61adcb45a5a84fe9b40f696fb452987f24b65a0b4248c9f255b17e8fd60133fc0a27c0d33a60eb805efda93a9207fe7cfa19abb31b7723ead02679fe8d0ffbf45b3fb9a79d67dfa39faab69333deb34f8358caf36b105472f6967bdbddbf1175288638acc5de90f65ad98d7b966dfd8ccea3ef2d7cc3fd8d0fd6f69b7d7f9b6775abe73a1e4379856ff7a3c29d4f58c394bed63a4e8079be46bf5afb755a5b6d09d956ab816c6d954f3f3b6d1ef0bcd638e68e1e8d037e0a70a815ed9053a675f0ab943248f6928c40062353fc785f55b70ce5eed8ab3f5ff5aefafb1d9ccca864ee3575b1648a6804002080025315000018100a07040281582496e7f2607b14000b8192446e4c984b23518ec328888118864188010411638c310620a214446523001eb7b4fdf10f17f478cccd66d1d77385536c88af37c2501c714f2b79a5707a39275acdd837d656f15c4d258dfb8ed2215ecfe7e237cecc421f8a4cba2d897a9b2db36d29530c9c3e96f4c6c6759ff9676f7ee5ca9c77aefc8f85f29087dd4be576d52b062bc9d6c608f4b65341d88f80db18fc277daa0d6f5bfd148b6c04a222265b2a08a32563365034909a7f03ace71063e5170229b0c4337f100a20b0192a35b4bdde92bf251c3d4dd345dd854d290f5e80a7554ccd8cc96cf6e025989cb86aedf5844037b8df3ee5b15343f8157a5698afd32b158d1e149fcb8c4e510fc4036d82e8799ba0b23957b62caeb1e7a47575c208b76a84644f54c292a479a736b618d173d599a96e08956b9e065dc24e3c610600bf69dc01b6cb53fd1a008ee649fcf292833da048795af2e441a852e0cc37e11b79135535bf4446fa5ec54a8ecaaa237944af28c25e2d1b0ff3345674b4c60df55a3b9f23aa021a3a643b5f6fa971b10f001e3b975b50b5cf69e470af54a13f9655075fc510a5918a3f9a3defdd49783e01d0ea37cac8aef28e8fd9ea79a1d96362737e5b861186fe0f93f4b1e89f756755d900a4f4e38502c1b26d47b34efb26bbb7011eded0c41a0bc802a81f0880ea65c2a5c02b5a96b1c4259ee760f3a26f9a8b0372cc70c9ad77ff445971b588bd6588cbc01af06d08a0f60b7368a7a9190e36c19353cde6b33263ca11f81ae380e91b3f1122556a7a463207a494e8512fd0572dcd8ee0fb695c2f8e26302ab27055a36fa3a84846e3c9e2d6bad9565693a6552753400c628d2a05fa18fa86c7f38e2ab26b7ea8f883a8515136c28593931a440be56730e2a32f5f4d16944fa7617d6a32b5e139c617d013c6d11f22cb50fd202e818093bc621d95f7e3c57e7d34751f592ed44c1d2213399120eed5e872c165be09b223e63737d83fe9b97c7d54467d6979b0d34105ec040ac5118bc9bf97fd8fee5d25b2f433b4a1877ad34f3e502094e27db5e16a003534d1edbe0be84bfe660c2b65640eb468c73a5e48069d602e867e13593045258401a5aa9d63e563a9b6aac38bf6282539961362d222a78390ff60325a3712232f82f3018a883a01fa6a9553eedfbd3f4a166589724bc7b4486ecda478258543a45500efc6d2c73b21fa6c7cac925da1b2f83754d6604454d62eabf73bc4a1d752c4e2d30b02ff6fb57da51e9c3b8e839e98b0fa5630e0525e5b793def8d8ba3469dd32c9e364a805a3ad29ccd426bfbff3e3c6ef711472fb1e342d9431a0df7fee6617ae041f86f1b1322267fad2631d3e983757022c3e042710ba99a6b12b6e939a9e85580e171eac5002f185faf71b7d40a77582d2e7c6de181e330659349b96fe0e5d01c47641ac50177a5bb9e1c8ab767853291e22d9916bf535da50be44ac862b5a8e8a99323ea770fd431d6a05ef0d69ffda15c8be9a5021a1186f535dd2e3408dcce4750734919682b9aaaedb52cb1b0649885d1b6691c883b1c7dfb7da59ff731721f06bee9a21e90bd2f6e0c021f87fcb97d623232652e83e74ed87f4d7e6d99ef1d2da2f51331064b4438a3d4246a01d34f28d4fe4a50e2c932d3a92c9574327fd0e2f6566f3c3a42000d179d8e9c3ac091c9362440de12d4d1f12579c091e9d993efcbe205f4d7f434fc33b5a88966d330ed5c999e80bc6c4983caa08e83aaee7b768345712aabb39b04d211b74345790a2b1d369c59cf12e5117834502630e4e9c1cf5dbd5b8bebe1bd7027777cd1011d3e4e07b2cfddaee4e71406de19ab6e3c9894702c4dcacf020b361d85c125215df490e11584f25aa570d374cdbfc7596322e4c0adb73798ce352bf7b0eb4c47a9a80618dee70bbeeaf87d16c5687c1e80eee4f0c24f8be334f36ea8c0477da89f75fac14bdfe640cf7fb4ff3411e1a76aac885fa72060c485e2a37280a336bccbb02e37d9717a5aba8dc4d6d757fe299ccc4ffced1fae26426d4b97e554cd33222c113606f54ed47f059ae6ea2c5ff536940edce31a462f33bf00423acbfae1d0439d2da97ccaecfb7623ad914a5fc2e48af7fa913a79a9881b1c9f2869d0bbc1b52161a7da7ace6928f6f0baa9a7b882703e863776b71b4af33328593450b668b730cdda1c52772baf000fa2e433002ab0f1252ac730122352e30cbd62a04628c91506b13ca2725141eddd1825ebd31af5d78438bfb75b8554335613d661ecb548fff197b3dc3f47f608575356ec524c0172f3e1e7390aac0509de8b0ce35292b5ae67c396a2ffa47051198723f3d48c89e7212604e93419f43de798183b003b2a7c3647d3b392c0ec108f6028ffb3e56cb4d881ccf4ccaedf264e2a84636f819f9a18ae1c7e54ff3474c7092a9375369fa0b5e9ffde8fb04cd77269adb5cb21cbe80c670c5a268075165c6c3140fde65dc9b80de1776d959f44eb89618387f9689d5b1a4cdab631e7cf46b665abdf0a6c300a9ef535d6ee6ede5569370e27d9f289ad376d4f665479e598594e4720c130c9530ba6b48467258d626027006322d207340c07931d51d4bc0b6bb18e55ac1858990b30e4ebab75ffce2e9680fa4bf1a92de2e1801449c3b9e6fc1b7f44f5bcaa7b73bd45a688cafce864a2063a5f34ca5e092a343694f1f7cbdda6fcee90f630de251091b9f361716ee51e7f03d5153322927115088a27f5647a0f5a39cde58983b2ed889eb82f57ab96fe496a353c2f32113466dd16704d6852826eb9141eb7c57a8ab7c854493e92dbf504c3a612ca7a8cbb5dec3297bec7c4b62a7c82454a1610b40442c4a95cc5996361bdad4326d25dc5c01dc2b49dbaa13938823330f3ac189986dbabf42734b7ad713afe720533f506ed51672c59d425737ba1b5c8843ac2085848057373f7a8525eb0dbc06051ef468fc82468cf8793fc724991a17716094b0dee47eb6fb08711441f7454101a1522652e6d0393233eff8ff7ddc8af43fc336e5c6e8e92636a00088c15d8d07afa8d6b15c39c439afa7f7c5dcb660ffea279d1da1fe0fc214988d9fd3b1677d00f4469af312bc075f9ad261dda59df60ce6fce10c3381982a26bb9ec8968697b084dbd580b0323bf063e30f41977f6c6c938015c481375a641b91ae4eab1e54b6006433c0b661ea2cc4edfd00ed856da5fe3b45efb18014c29082397c3cb833ada80fb5efedb55102b38ca449f0bcc7ccc85500c69673893241a4ca20a8c760fee6017acc22e776c2fc288c8c812ac154fdc23b8b4d5192649ae18d1ff228ae047a965e2ccf6e96ac152fabd67562c3ccbcc2a98433fe7a620e02ec5265a97174fe72890576e6ad12be4b7f85763f909c3c678882082e0ccdde6424cf865084a4b9205710fae0e79290d11122b9f2451bbab2b63fd645176ea887ba3f830ee1ed93d1f9b23f423846919851809d50f05b1c35fc20ecee2219721f350394d9c47f28e916b29c8bfc8e04d57235da84aeef03f11fc363c241d942d87276f3628c6122b2a601922e24b93f47249b3721b5eed5142d1a8df3cd8081c74997012e90b9fed577089dc6058b2899b542d824bbda0034f04dabfa1c48d0094a6ac7775e8c03bb6fbbace6f09c3b59e6e98f64c4a787839ce0cff82f6f8d2b397396f19bbb5ea857a25fe6371d10f8bd6ff011282fe82b26171dd1d80a6df81b6b01cd7130dc6a96b28829ec0c4c80db60bed90f312efb946d9eeacee0d3569cc25718b0026dcc55ae581a929aeddde62a7a5d90737a0ab69dd5ebeeb1137e3ca808b000e4e5fca055ec9500372d38208c16f559053fe4bab4959f1dbfb7da905114c2cecc59aca8d51852b1f51975972d1c48f2673308617300adfc29105440f471744958e5007f45f5f0c38ff062a6c7815269bd887c883d921762959feec521827c04b53715069b104b49375f8fb927cf49139dc977a82547f4036d8a6938df3ef0084cb9c92bc1b0d95c0e6332f998b59966cdad2a5605069ea6588ea521da2aeb0ec194a6453b9de710ce6514f6f1fee8453b5b5d2c4c852881beee816afcf23c07edbf2691dc5127145cb8ce0ee8e3a31f697a1315d0e8b0c1dbbcb54d556d1426cfb09a46befc4bb26aa76baef0346e009797bc8f3354fdeb2769523f795f8c604ce6f4c447a7bd964ae83561e0c70bd3d9619a3e2f82cd6055c784325b1b1046faf68248d7f9b1be5dd4d78a519c1b8378960966e118c42a932799b2737b5c9294f30132319891602353aee839a85096b3902ab9ea908d0a01a571295053ff4321e2be415dc8b8bcfc476a9153560adbe1de8fc7fd0212d7a19a77534ac415e588f949186b7b19eda915cfd33af144972069560005ee318983119246b9be893a0bfff711a9b22c1c458ee0a99ed9fa594de56bcc1592e422a7ad39f111d302b1b1b3c7e4fca715f17ffe00fda73b9e42ef0c7d31c2e648a9f28c1928b7a926a6bd47087057e09aaa1a398083058efe2c929f822a1f53c2818f658c4399f2400b9dc348e143992309acfc484fd9bd733a828a3227392cc176d81b9adeddb82a13fe4973fb4a5037c9c2a1e0008042bb69a3ca6fea1544ee92e41e6e5bc305e3526a438b77c8345e61bac5ad9064c2fbf23cc71dc7c7c121906296cfb7c101c67ecbc010fd824f4c2182f3c8a2dc3155531a886d7018f926e5bd2d1faf30cb6e06d6fcb589e4ad379f7229ea996ed6fb08e7aa31bf6e6ce35559ca0a1cb11c73917d6e4d8f195633c1c9b3cf68fc55432f58273941fcd23ae34f6236c23896402b464b4cc6c79d61157404b487a83e2947c5eb70b031b20db0cd1be5d9c3ec074e4cec262901bb5b7ba84482c3c16776efaca3d0bc4d53e6cd28be0eb66215a2bf6e47d020fefea1b1c42ba59e505704f3d2c9e77258c86ca30d66d14c1ceddf5d77a3f562fb94db0cb8e216345f7e7811d12232ef2a44bb3603fbacb3251c7d6546d1820382922ddca2e9cc030a6eff13041f88d4fe81a814fd50b637f01000ac97deeb5f2164ea9480d29f2b082c37ef8c206543c8dbe66af1133285d0b937902d8027a041703aad19b025518271cb6bbf3161fe5aa7693be142c21adc3c3bf47e731b2116f34b9d7752e2e883bddb7db0ce6418bcd771cb4a092b304ac2b356791f9d2343d9b36c7013ac3d9151b041effac6833ec9c28a3bc7a70905310399c2d5ac4304657ffcd8048ba88e45d1be20d42936632d9e56de3d7c6d9c9e2bffd0dc4454d1c89633f3035399b3432822811de43eeb062fce263f6203f949d7c223edbab60b330e17e590288470abbb888ddef908e14c2c6e80cd40b71869ac5e0d1ad79c96eba4d98f69e62c856cb3a110270f61100ea8d2353c027acae44c10917b5427b622ec7e59f85c42947a22345339e93981122db7cac0b71048e124cca3dd4132dcae4230b735b9723d9fd87838d5c60814e83387882bcad496e4d1cdf28a364e5cdf607e256868c8fc9444d78b30d0f70062a749b0b3823605560d3adfa3d36c5af29693be2f8a2baf8c64648fbe7ac6b105dcf71599cfa10d22883b7b3859e19011016990d294e69247561d506c12a800bb5c929c223922cd423ae27db4832114e49dda0c3865b701c2329bef343d348aa1cc601389b50014af20838de9afe2895dc43c3c3ca21df4488d1a65c90d4048f6358f3eff6840df7dabc8f19e47f77e68f24fe11be4828b59906514efddf3badbaf57fa1f915c145fadef1f57a0b2ee72e31bc0956210418b15bb80b020de82cf504470f21171a264ca5708b39f4468c699efbff25f8aa4ba2a186112b701bc35bd989b6327c93c7b34c69a3810a59e29b5748682b4998a7d9f24be4e6205221a1cffd4a92c2be4e85423f186ec7626850a42d7961ac5c6b5425360ab765a0fff7dce98f19f5e29871e8137e245db07402f73591482dd2b568ae3c1812cac635631bb34d6c7e2d11219567277f815e0733d944749b08d58dc768d1f69a21b2cc16aff35a5f5ae011511d1c806afa805a6dc80356d48292626d119e7ad19e37089b7fbd87b16ce51023c66a9116a8a2252903b6686e00856a4a0f1da9acca5a2eefe4526e0770ff37d2d6eb120ad46179644aa9be339bd57e1c2748d56374d95f7abb3b3d9b5eb13fca4e53b33462990b7abacda716ff1a153c80bc67798a12ce244345b26908e93c15327eb414c955fc35bf6d2285bfd3dce578b4c08cf3190b7778a6b4a75562bd9b6529452c320b62f2590d5b08d46d515540aa5c4eca01eb1f96cba4f1274391c96c3ee958b4fba579e8ef1eddeb367b14bbe7997d8e763f6612887a8c0572a88e4327d2c42a2c04ec1c52466093455b22593a5f5ee23ec1a0bcde7510189e298110598dffcbb811a53e7528cbae093b9730df0536099e2d09f3ec4ba130c995fd7bec8c451db2d0ee4eb0f7bbd0ecc4bebca48de138bf38eee38d705a867a0468f5704b2a3afe5a46bbcec832147c8e7b298abacb757635d1478aa8cace81d55f08a312a2620b3d5303ef942193535380bb86a2cd2e007cd9c4ae024aa32c0b4ccd6e36c089535289c7650bf1e5ac6dcb079f0edd9e618e4e56c388631a80819e5d6fae619ca0c0ca430d99f4d49e02fa6ed071c121edfaf21167addc9c92ae6305260a1defbe839920b6071d1e819db7d376d620296aa1be6b58c980bec1587455c26f4f61e0ae60e52ac187bda3c511066366a351bc0f7ca3561e00198f5b5c820977b574552a527798142cf35ce9eb3e9cfc20f197a64a77d0ed7d2d5ca74998cb683d16d5ac0dbaef5363016fc9eda3aeb78aa9e99aa1a168a9b51a8cc3790276ffb091b428ea746faffdec6c04512125d5594f3964477108cbcba2291630180b5cffc8ad7192b42e1ef07fc4c5220e733110b8de5553c2a6dd41a18cc9de133218d1f935f3da8e4a4a310b9d9aa4e031680c189a14aab5b49efcc9635df73908e96cf622f49fcc8c5599546b8b5bb60a63396cd812b90aeb7691a80c1481f8c803cf4504f66491d2668d71a8f53e48a4ba66006931adb4e15c4e487c28acbaffdc428a7904b0b08e32aa2ba7e884a13391070506800ff22df0805bd357d1033db4cbff052f0bfc0481c3a1023ca810ad12618213432894a78479af027441be164db6680fb30637ca16e34cd98f71490e1935ed77605ce58f925027b9fa80d384ef190960b4940e3a4a423fd1b4892e9ce1284f208c855283567f7458929d505e0688ac9b87c408fed0b14e516d1fab0a00b686fa55d14b6f863489b2de3ef9daf90dd1d192a1e04e9cced34a7a4488c934873e608f097dffe8880070520748a217fca337699709f4d21deabd304bd20165adaed44da961709f8d44604369d86211a51dcd29a01ced7ef697c50e89464e342db8ceae111881b467cd4c9781e563df10c1dc432001f137f7a2fd3797adc1d0b655e20ce52cf122d394df623cc24b0c896247edf4af3cac6d7c9aa301c5a0c5422d94e23416d92587c57c67bf654364f4e06a89f518a4d14c8c37ec712be2e47dcf258c2e6600e2d0392c8671cfacec1f3be1e2b2c190c7a7248fc2a65a99b565a44095fa01a820c16237cac4a0b2341f1db3b8258149616a93846a5ca8adc442c99db58fe714734f8dc94df8c9ae89191847142507ddcacb0959fb16dc9c20f9859970d868d0dac5df48df230361f27726b515a07bac04f32c73994261040aa2e617cb55eb1e0a3257cbfad8004022b4656d056f6882d0ab98a030b115c4453ebbaa841d591db6a34fc267c75d2bacd1beec28a1028e49e6108b5aa8a376b42951eeb584cd8b4195bb6d88b23b6fca19745aca1c3a4725cbf9462adc93f30720b939845ab822a4dfe117a44c879c523eb7cc6ba2938c76cb52d8c6f29a7b2ed2ff61aaee040e088f96fad9614409cbb5e115f19356bb89a8785e3716b6e858dff00c15e4d250bbed912151363028f3a207c7d8beb2a30ee5a949546b1770bc4321ef81466791c753fa439d841e52c5ab0aaa2ff7f7b89a363b472a7f092c81b590d75e42e744a9242d474540eaa259082177829cae2b7622476a9cbb08222d730340a01527beaf4c32d84fb02f040500ffc07dd0360a442187d28cd4bb81b9707bc94ad9e934851d6fa143dbc6d07ce3f68851b807074992637d5aff3db1690372b8daab42e1b69202e4323551a4b94ca7af828eceb93cb457694fdd1a5d71ce5ebba1434c094d54eae815b54c7cff8c06701690f8cf35ff9440607a11f1a5edf23511b39b77a168356310e54278c8cf0b87b4a4bce59ea3355682518ee90c7428a3b2d240b588885980dc050e0c9e8017de26e76c5d4a696ce7d08c6edceb1c91f270316494a0e70dd4495049c8e89a1470c44c92115e8b566aafe00535c4ed1640469d55e9c110665e0583880ecb99644829b474059dd5bf243a0083be9b065394d831269bc2deb701af865c4b34ec69b540717223183bc78653cd479afc612ee9464f2aeb84bcfece4914e553ae556358c05de6cc0837f4740ec1d5ba6133dabb9973366a68a1d80daa19f6b9b382b24892aa326a8fa4176a00d37489a6b9019670eb200ce735d60ad902f225b6bc05ff8d5045e142c165c63b793f02023647028a59d263e7e8c9058911e400e51684912d02fd8e20f7d356086e5a0fa641b8b1d72b738ef7b24c48aebd9be865fb050ae37b6f6ed68b47a1905d7c87f4f62fefaf2c1daf9d2ac3215e6bc762b33cc1801a9428a3a0741ea45a368d3e5782c641723e1be7f2d5da02e966080b4d52c2abc42db5a50d75746a9b7e55839d859404be0c0bc4234fa3daa69834c6308c8368ebe7d992f82834aef36ea0262f56c11f010c103844e55f79f7ed8cdd49ba411a8b801c1bfc46c4c1d3d541c62c946468367b7c35d625a04df8e75bd263905c29310db08f2d443d6e7ca6113ab381367880871c603e02001a36db03c9eec3b8884626e3aa8f0ca455800dcf0b16ec0ff850bb3d88f735c89d3c5fe7dce2bac7aebb9c451cc7bc2babf15c0ad5a50d33a982f5e84b7392e6e920d883e6c6b401bf468982f5765f168f8196bbb8256bd5b44948011128ca91a5495025f031131b46c59c91c5ed12b098efbc5300d57de7e3e89b36ed07e478cc744ab30bfa2367bab7a1e2a24d6a360598f0fc4e25d4d5c8c9590c8d0885f113257f08cb3c66b434d383c8090a059ea4e59dbcfffa3036ffa8beedf7ea6cbaa4c9b65504a4de2d1fea10cfc206d1a843fe258949ff2210bb89e789a648f4cfe6f7206433047448cc135f9fe567ab54f459c8475a7c4ae2872a28ae8f0e34e1424cf3890bad75000565f91ee3387a4369c472253dba4a7fb3b69533ffcd89c2fdd938bbc0f18dfc5b2749fafd1d1e76cf2d91128dbaa9acbef69e01096fc8f8193cd9e095b1082c00ae66b9453a3b60d159b7ddb00f380fea9190eeddb4abd62cb565537147720dd7ea613069f787f02945de554c05825066f16968631858b0520e1b4e4698081e200200bd63992611f01aaf43ab115b1a377c089ec6a2f980f01ef838ae104845f16c180f9fc5037b9e31efa06e04ee822780d5b150798c4d0c6d15bd5141fb33ed00030d63195d2bc84f53f9c010a3c5fdcb2820c04b1077f09538089ede109727b2c731b9470559ef473f951b6caca0a9d1f1113c981985cf26c03df03bdc8c8aee835d658c4e056e7ccd64f0d39e94c7124f6c0f6b3822396c4c32ecf1a0d39733ffeb0b9a266d4cae33337825b30e8a7ceb317ff197baaafb68a51d5a13f50538a180a33979d55d47ce54509a1c510bf29d85e55206149b98298f449dcaf6a7365b61bcf57bf7a2bf7696ce75af165f3195ef1e6544b15ee27c0144f5fb8824febcd3b6abd3adbdc04587973c2e49e102a88d4ca4217fe1ced35d79c2a4a9d3ed207057f8328fa819c67e9f71804795062e18a217c472e8aec54fd9ca90adebd141a976c09e2a6327b906325b6c52dccafd47116cac022521888c3c2ac4121c2ebe53bceb7b15aae00823e782cd0d25b22298afba887bbff9c1de1482690b3b48af2b81dfe246a634253cd3bab738a6e8e0773e31ca1ee62db750191deff453bb4edece9f03a0b410a4df4329a4f06ffff6a4f973146be103fd41b09cb9ef2a0a60be72975e11181b2e8a1b4948975d4e65c1f443589aea17d43f2df92761e17d09b46db8c0d9ef6a00a0a464f64abfa2c526f6f0b90f920bf000e215ccf3a408e84264aef6944ace26a2798c9251a4997d5429df41bf51cf7b4c540c02992ac73ce1e3ebe8253e1fc491caf6176241c6dbba75bbcf0e884dc1ea35e2446912e2325a7a1fd28a88bfa5784bceabced2d0933a48196280adff07710d03a0bd66d2fb6bfbe6c3042365fd088937874f9bb52ff3fb47f7d86c5541a728d92337442464dbc51a87fe312a85ea8b7bf9c75fd52b87084e7f344e5f0e40bdd4b4d19d1f6dfa89add84f3601243c2797ea3ba60caa86da05bcfacf9e4e3e841b7bdf8992eae7666b88af89fc9fea357ed94d2d5cb75714430b79cbbb26b25b45f33ceeb712110456faa3f1bf65d0c98a37821c9c59f9936f3d85cfa8df2d57726efe929941033f9c9c9abadb693c3bd8f28c8eced178d750543fb8e47979cf5fb2a7b45a701b48ee7ab7d701488ab0e57ffd9018badc42e41632dffeba598c3aac501166390c1bd6f44f0e72e309625b01eec2601944ecddb6336cabfc8b6d6bbe49221088340535811ac9e4d97edec5f1035f05ebd989ca34efa7776be714c109d500a6211499e345b897142a5f32990b1d2d6f0cb6f751011123e3d1c310f20582d19c3054f325073f3374649c05a3125670e01646c996124192e1ab7bcb55d2522e182aa4046d90fe7d5e771dd9111e554982a2466a8013aa4e17529690a84618d67ba5e140ac2dea0a8112122c1da728a9686394a9c4d0909acbaae4bb6c64f9e729901c93a8beb27923b19483e38ce5cad7a5e90f530024e89b54a83459d80d019968b3d6f08cbf1480cd9a0148622daa1bb82b2e4e8717a424d33fa9f86eaec98d09df4f3b21c184261e59a71ae0022b1907e438f1261248cfd90ec18e5950f0855dc6236b5c2d948e0cb56cfbd0a7b3462a262d6650104c1af3402b95a9c657096e5c9a89fb32ca555ff079f8ac2f39c1f8ef12451af36defbaa43ed25d5a02cd9ad16b4b80a1d66b3623a4483eda09e06e71ef38be76f98f1b1c944b0457d120474136d0f89be972a9f290b915849cf20433b5ee89a65cd38c386753c570f17f8578dcad4629d20bda3c65392e98b34db8320bed93451ade9fca016088fedec33406dcdcb1ed1843266f3382ef322092c16a5f4077ee20afc07a57921661db866fcc73ddc3089f74f57284cde257998ffffab8e6e2decd8114bc8cf7c2fe5cb2af2dbb766fa55e09e90bfc9c2a5de75c3b83e99543c6fa5f14f4f97235feab494196005b1a7215279470206af03992793e5030031609e4351baf936820cfd6d952d0c023ceb3a1b857ee19b5256f34267058d26e13f03d0a8876dfcf5d5122eef2e8aa12a52923dadb0f6244c100d8222c503cc02bd007f0c4529ac681aeb128bcd38aeab2b0c4065e2372fde7661aab56ef4bbb7cf57a42ab5aedaff855e3b00385b1e8dfd740039491918aa4977c3e0cbe7fae532db6371b0f95544aac09cb8709f40bbfe9fd357ede0c3d26bfae4d4439acfb38ab5183803deb3874720f33677f97168bbc80b69b6891e12fb6014e9daf7cb3a65b916acf00272d205deef1433cd8d20f1ff25ab0e0d67d1666b269c433cf0e363103e8e7af2e57a23507d06990d8e1d668c50be6c11f892487a7143cd0bc20d400e386961063c17db6dca202f68ec54930cac181920f33c4883353817d4c4bfce2d006b941002cdcb56a1c0e3f5697813ea6b40db1686336ddb9daee3b1708af78c3196708b9a3d5c0ce270f0f6fd45c538907a9016660b79eeb02713092909fe8f29df977ea1f6e4014201616489eae8d3eac174317740b05228b3f5c854ac3cc17f046568b890b285423d17e70391cccc1c24da85562cf8b31122918edb3e34281e764facdf607c539f58411d42fc0fb2c4a8f2b953f0987d0ef0be9a7b06d672782a16122ed810c8512b2817a603e7c708333827426b341cdb11571fac88c80a08e17579449040f1dffcba483c2189096260fd27e42608f74505773ca99dff4b9a08701ae02f64587e3bed68360ca6e504fe71f4bc352728437e97b25b719ff066745bd792b814f0ad87586f1c0fac7a81dabb27455770717cee978dbd8ed8dd4b520bc0d30844ece819c7aed23c0d56ae1aa3f27729811c8415369aee4386a86e657c5858baf69d286a8a704386208588ff20d054e5a3568350f76cc844bcc6482ec218231b6e0fd232a0e6a970943fb0719ab62bccdfa8dbe25e335c8b94d429a1b697cedd8c2a623c79eaaacafa61d0fd3eec1b53838715dc0483831be8e8760d8404c447b25ad6c04a57104920eb3b5081547c7e6d593bccc241756595914a3384653cb5c87664b8892e842a5d7f9c0de4e7fd521075069c36d9bdd55a2f8fd1c62eb8c23ee10a3045a9387a780d7e3374dfd123f1bddf1c5016dba472664d644db754d18be4e2f006c27dc86a243cd03f8572e27e2c6e99dc7a1b3630d728b89df6da9a6401fcf6271543f9e5f501b3a295553b1d939927be0d0ac4fcece064fd38526bed74c3d70a92dadac006a6e4c3e73f8c872cc868a3f719f9601360a8d09a24c0788565b82eadc9fd5213ebe6c92bfe9a680002112e0a3439bb252ab99ed2f9e57e8f7ab6df05d899e06e3c651e9348e7873c29e951e14c56b98627e906e9103dc3a8d90dffdcdcd4964279e1a65514fbf4f13ae264bd4afdf2b6b7ca298e2c3ee567d53f7c1dc4f3d5624f321a94bdd277547bf81322a30b3a1ec861949985fe13d8441d5496796da0c675d12670c1bce26489bc8cdb96c0c1cd9c28abfcf4cd8aa311a3daa9e084aca46000c29fde05943de9edddd20441db9e3e814fa97ebd1bdf9d73cb1e85dab5e50b3e81786cae9e9fa557b0b6e140a914e76859b2c230dd2b81169db8e1990c917be95c644be82852e567b57ffcc6d2966a3227f4d09e2e877c6b3b9c0a29612b34de89f2757946f9240e185859b37929e0a1508f582c70f848c56063cba09e371b9630cd4390617c30c38c76519e19255a8f668d97ba1b7ea1398c59dcdcb4cb720ea4d9cd53706fe70f17a21840e7fffa4f2cc3d6410d20ef5688c6113c666a56f1823ddb3a0bedfc4182384a399c4b627cae96763b80b53c41583e515736b3209abe76fd5981752a05111df6ce500645a045b04f54f1e305d3f10d8df063c7934564aebed847d203671b736ad4a90fcabe18ee14707e70890366bb9ecf04801b1399fe21449a66209f0a9ada7603d5cec07804532399a86075639d3adc9d7d08897b9fb5e963b99b1b0e00620ddccb4057fc498197037823e5cdfb6182d562a0125803df038e43e53b8b0141ce600a2ea796a7bc6511f77befbb91e779e0bff3a01b6507a4a0bda23788eb16cdde7e72e5770d9501fdb5363c5d31300976460aa23cb90aa968a642b6284506adab426459cb86d04df4ad28b20c344a451cbe79c4b0bbc8a44122dc139d41e81b284d23f35c5da1c1d02c1632d0520f849d39969bbb2bfe85601033e2f261f59a75a0e3e59b5bb83abba915c0b398f529f48d1b3bd81ac1a17f99b8846fa8321a19d0c06645c72d230b9849d148851b6ce38f2a46b23a8af93bf14e8b34d7c1e5051596be381849a6dcea0b34a3d118f1005e4880f14f43c2daa53e872dc483a8f36f633cc6461c054bc434ac65ff232f5c86138898d477ec2d825ee37aa83d4a89273c1b5a015840f2ba25ae5f94409a2ab023537a8a924d54ed34f29a8562a3f679f71eb71c162bd0d3aed4a85b2189222875caa9397b32c2144ed4ffbbaa09b5011490eab38509ea833e661eb89eb6c7852fb6c191874d2a9719166f417c074fda13a569f02d9381ca10df18f003fb8c84c29b6b8be792af9cb912679e3e7fb19ab5d556fa4395126616ebedb367fa4f7b96ebbc0cf777747754836dc35cd4a5d8815f4547a9c7b3854d839f444d988c16a30c590d8786a3b1396f639c0fb52885e88c84448742502429454de3697632f427c08988262007ce6e4aa770797c57f87e606bddd4c99f88e689a58eb8759bc49d32cbc77478f2f7480070bbf56660ce25a07f9de3bccc8eb98d0dbe25adb73fed9f468e316aa10e253ded70911ada6862db57831c4eddaa01b1ed41ccf2d5155c5999a156423955ccd6b618e3af828f9495f6c537d4b2a97ac978ddb8d8f8efc2e7bf4dcb08b069b9eb3cc60eaad94a3776684d5a8c646bdbfc0102fb3d9aa1df0535e65015e18a395b296d9f7bc87d34a9c1164e9786ba2bd66baad2482baec7da2074439ff660f510603bb3b51ff72d8b8880e6f1c1afc385f7693b8b86b6dec407f187a0d27133df27d3406a8142fae7dc79f66dc7b1dec89d86e81d4d38b8b76f877dfbcb9794195890974c68daf52ca96b1038b813d442546131183972cc2f6f0a8ee5e090c2e350edf60618db89e9810e67c1be712e0170510e365e7ee7e05140e6d51d233be91b539f3d8b95b63a0d5778a943b34f75ef9289f97a003e22c37fd00a714be58746ee0f433b19a9ad19eaaf0cfd261fa72b1f49989dd83b4812e08ce4d602912ce75b976f7d0b6033b4da796697b9a83cf709baaf8e4c853ecdc3acda523167ff09c19e7174b8c7c51612c7a02e1b9760a4c35c79c2d822cf90e748070a8d2e0ce714a1f291b7400c9b53ae02e9585c51a4d641a9b149a57529dbd6cf5690148e12538a6c0adef1c2fcadb0502ddcf8e0d7713119b0db5be82c292cbeb591313c50490af70cc163d4c31451fbf732fa5c517ec5c1f360449d24acaaa463b4269c4542e57b396d1d37f1b4044324959cf068994e937b41b126633b46d1ab4820350496f3a09ef82e70a55957149069899c2d39cbe18e12b3bc6871394b4a6b1a6b805d1f301143501d268c7dbcf29dc44184775aa602227305f0e27ccf48a76d7e1f660b071d8c9cd5cc91ac48a6e62acf530400c92302a0b53d3c819fb6f618cde9f9ea65556d3c016076780a415018e9e964489408dd29a6686933dadab06dc2da429a39667d3b193103804c9677cd8d4db71c8ab040a45a9592b224f5c7db1f95f05b62ba92c04e0d06fd44bdc82b20d0c3b660a8da4af4e13decc11620ce435091d236ada6dbada8ca9fd46a014543228b5186a16a7c508f30a69aa8aa74e680fe4e5d5961a75e93c0bf22611e46e77bcdd7b0a9ea7785ceac37b1ea644f89204b6992400e6778a60110bb53ff4e447881c703b1b778dda5a284ad595ab967a8e3f3a0c215d4aecbf4c04a4479e97838d3e00a493fe3406863a45cd2ae52ff0d7e4584392ad1cc34c7179490b52b5ff3a97a81f6096005573ecc737208b24d0967d4e53008d9839e33949f09fe156f9af95f4f10b482d314a1f5960174807a130143d8feaaafad1694b1078cdfa5e2ed19e0afe01b35e275788909d0ac86cda8c630222b0e7c1ab720bd7cfd2ccd404ce8e629a5e632603ea5c18f7af14d6021fa5912e66966b361f1451ac5b169d49cba3719642b0586f6dab5a4281b92d264bd14aed2af9272631ce4d4c7657f91d2a16034bb349029c084596d40e670638152f3fd8ac1caea3c83d03bcb76a9468a9300db01ab4055364ca8d944afc3aca3d5d6fde863b2a723f367a113f96d9066ab8569103631e684c7763c9d86c45664e7e0632a341b22b151fed9f9b9b7f721b9ed03a32c5352f8b7c748e00dee1548bcc7cfb03df3510bea546a98e683639f972c08b2f87da90555a0fd55ad53cc5a6da2e0d36ae94317bce291b6003681b9f2d64ef0507c3413517df68078a1c03f23594c0df86fda4888a66de3b5aa89e49cb667aebbde1c603ca3f5631e00e73b21ca448f74d9d969abe25f8dae06cfe829266f9da7dbe508e71eae556462465af2692cd245cd9fba5b3ab43ad11536acf070a53f72cedbf1f61ef77704a8ea39c2506f498187ae7dbdf24031a7917ce24b4242e1bf573459d4db43cecd679017bf5aa8aba71ef343a3961ca2f490d6cd2018cca5527880d2d9b1ca6106b4edc597cb0b4908fb9b37ccae99b8fbed114c9f7c72ea7809a668861ca94c10ff56d7065ac10818e9fdbede3f903db77fc151c4cb22be0de970abfa4e30854be2145cf37f1e0b3fe8acd6f34d166cf5d54561f690f011efe942526f597632e9ac117ee64671169b30a3539fe01419556cdd27eb7a7785b579d34cbff4b1d235fbcf590ddc76956505f78719af004929c8512c72a416f95a417811b76658b45f67600cc981200cae7df7adc3e92fd65ee20491ac3a338cfed5a5c51ad7ff130309f0951f576edc403acf1196788fb0ad3040e65536ac13ec5b0055f4361833601b4738de5b8eeb067e663e33bbfb1754d88df4a49184a8367fd04ab9624cfbb45fd6341436248129362a340e4788b83c5e4daa17543e048fb1c45a0aeacb78232fa60f87aa18f9c43b1610f90f269ae0c64eeb9989281c89947ef536cce1ee7c97ff86cdbebea0628de870718d6f6f00c6fed9608012a554e3068e1d3db9e39800f8044534df53f88d56a9cb5f81a93dbf81a19e832f32a8c0f656cf095780321241fe794c3869ba9bec81e8b048d4b8833e3044697e65e8d1a6779358f1d184b2837d4ffc8fedbc0337080d8a2ffb2860cea7c8c23a99536b75a2f7b99fed6a40b9b755dda54bcf30b6abded0fe3e3701823772d00eb2e368e53157273f3e5fe4612f5f47c300bcc3c4a3fd8fa76a5b038d5a2a6fd7b5e47f476bbf3ccdbdbdcfdb82bd84339152c78704e77ad78ffa0b7f6ea09eee96f2e1af42f989e47c5612831e47b9382dee5586685bd2057d86983df97a665f9b0a48192991e88b81d80f8af9e83cd771e96a891faf321ec2f7d499055623aec2816c3eeea0c5f2d57fa126aa6fa68f0f20355d74e03eab17fcd62fb33e8d64ace0b607f3001983d1f7780894b7b875a33cfb5542856f902d353f4d29000afbe4c03102316aff62306d82d30671a74827b93fd16275f411f32275c0b1a8759994b736caf7245ecef0e0401180852cef09165cff6b5acf5df69c1b071a731ac2fe2e0950ec3f004725c7ce81efb5cfaa464acb1dd7a7e73230ee0b6326d66dd701358d6b7fda2249738679669ef1cbc6cd67f099960c59c25c7855edd7512096a0486b6bed41e4819fb3f28cd2c9872e293ab7db91609a9c5994e8fd09e8118ff3728cdae4c32c22e1a7d1420bfb71fe730791e8810fa924e73348ae3e5d42b168c3878c87b38fd5d066d9322cebe5fd86aec0220c7f4cdbe5f220e56cc688eba8acffbb1add6a2a20191b87fbd605555e5d7ebf60081788d8be5ae4fdf84f1bdd790ed3e123b94703c4690e37df4b730c1bbb87fb810f3438f7b6e3d82f8d7359e78efa73772cc892b386e0742c715065af308a3fff8c47ca699fc75d91b9d7dfa66fa87801e9df4851d889dbd8e25e822597a47da00ed9de1a86fda2d26fe1f0257c49b74cce5fbd9bc8e8e792964617c5447adfb3ec1b78bd3879af008ac104b786724b97c86c965e617107dc00f13c9950c204ff67882da0cf3403c0a496662b18cacfa0d57d2fa9b3b869fc215b6da336cc1b5c3973986afa808ab2dad036050f9f6ef2cd92e322456191d87d486ee149abb2d9a8cc3286a23d6328708b0e266fdec3ccae277f9a2cc9f565192710809780c707755d5df1335638d9c75fcb201532a45c88381c27a3bc657fb20dc220d68b702b641a7412d447ee983b89841586865b60c9bcf4a745f353dd11dd319d634cc0e7261f1b09c1dafae14909ce3614b7f6f8dd0e330b6ee836b990dab0978c501932b0b3c64e4d8579a839b460990511e392abce9a59d8a75acb7aac9a09b08c4b44c0cd2898e4ddd86a72aea8fc75377b99c9a184863a5cf51867939e12d586deb120f9a7b31fbd317ed8d71f91b8889f8afa84c733693f394e2e522b50d0c46aa8738197e0499642e923b3c3e3117dc278cf9da63a0c0c6d6a3de78c98d4a9d4321cc20efbc9e775775ace77611fdda94210d46cc89715e46e3d66151c32b878105f28c52789717b40476d8d64691b506e5a7bd9f13daeab24236ced6f99428581db3fbbbc121d8d1a378e4814e64d94fdb99461e74862785f4ed01897a85b8260e2065fde76773fe975c7745dd4e1eccaf19cd28e672bb291e563deb3656fbc18e7f0c84b6b4be6224052ee8de132ca4bc30414cd799e8ce41e4f77f765bdb5af1104493fb8538e5cd2cd4ba241ec80fbd059908649392c771460c3ef708743a7a7949e8afaae83cb45b7beb22ca665168588e3ae931e002a84477ae24d0dfd4bf520b7a07473dc3669f4dcb6229631cc610ad2cf1913b1a218034cde4fb888f085099efdf1e620a5db64a0c73e0621957b773100046c2a7a6f5e2e8ad8a9ed171ac251180b496027a9f995596993d196320270e317e1afd5e2bda80a75803d9f7c0e88e238343c8ace8cff5084d7fc338b5f5c0ea53dcc7da4861e7ea75322f0fc8afbbd7cc3114246a9c4bc82b25998a1e340da440c9813d707c7d1d39f6a29b05b9cc29e0256cd6b53633662daeb25b5cf5f0f8f3a4f107bb21b58e0ef6922c601d5e1267c65d1841cabd5108c0c1fa150523c802f1972ad4a3a97a9c130450cc39039b8bea591828aecb9d5db1a9bb39042f62a181d72e29a977d5ab29cfc485986f0bbbf74d24ffa3f50850492483ea5b82552200685b76cc0c37fa1e7e9bba90dcb1994140ce851c6c93d0b64eb9894c82819d773bd21889761aeb001fe0dc11349c89d2e88a722fcfdee45db3226b48da62cc691b69cb30d2a70284247d614592179de4d8d2a28bbab4162c211a2ecd1224519d61ae21186a7804ae002c405fcd7d94cc27db36e100d167a9994394dd691bfa06a33db733e75a4a060aa5d8823bbd355e394bb41877459106ca76ed32e2da2b70fc050b167cab6fd7e86b298fc0e39e3f243321da576496566d3032fda6e3aff998bf26e6179d8b48753dd175475db02bffccfea3a72d48db18236a119476d0825a1c875d67161a933e97b42b983fe68f60a6bd9813b34ca21c2824722e13607f8d048889ff5c43d99c64453c580dcfdc7aa96ab32f9e8a5ddc4687e3dd673c0a55cc5a76504f86e9e45dc0070e4daa5d790f0836e8b64969dfb2bd402a59758cfeca5900529ac764778b72412fdc663b8a56a59385ec136667e5a3e29aae6091884e2db3f99c2cb93c15a9328b824705b1f7376116013300fcfb05387bb201c1291011c6d86f41853d556e7bffacaa2b1ad4fc3550d4257f87901a1435fc82a53ab784a5e6f7db125be4c796d8f8b584f8baffdb5ca5f305046ea64908b176e216c054e1f64808248de0f68d1a7e5f5e9341a7f7c42dcba8a058c8a37c09b58eed50350a018a0b04f9b6139278d6d52f48e60491cb5f07e7d8a1d587f71b42fc8bdf680c1e84ed605f77a111747d372554a7cf6e5e0f113b7b10d22117130b8ad3455f242038749155d0f462dbbd67fcbf229040c7689c094169f53e935e7f4808dab0a24bd206b168f2ccdc945b0c40549e75ddcb75e163788953cb166a1beee73e1e5f4aabace38ae7faafc92f193709045b637cacb1e466e76440053ed5bed4a890ac0784ffa4e0fd3494bec8af112684e489f8ee587ab83352b9952077bb897a35d238556dfb77f0019ff40f3bfe8ce95b72f0098e35d1f5457766aaa4cccf969d3e9442e1c45e79f02e15b3a0c0015b9c3da62803da322eda45856f19b7f2fba20690b1fd5a8ee025b45624087ced6614feb80fcbfbf7e64bedbad0227ada704a4e2ab67b59fad642d3a9f6cc6b830d2ea1f05de1b3e1870294f4de79b01ef1e729d7a130e4174a6d2f01878e936445bafe3a89e53be4d7b36a89a9fea471ff66801b5eb993e2dae2fcd7fba27dd42b055cd358b94ee4df5126e330b74897023fa977c4c309270748eabe0e96ab9271619cb20f2ad3eabe048bfd116245db8d5836dbc8714dabbf793bf1aede20cf2f60218dd39d122e734b682c0773104bee02569bd09819e0d694e6bd073bf46a2a06a875ae8f6262c9b5c1684284675cc0ae534c77c36269b1b0069637c0db4208961489640b2f8908eed155212f46edb0646e1a80ab85249af0170502024199f1cd81307d1f6d7577afd4fc06736eb7f840ef919b593d9561e43710ba56dc74eaf97a7294136c4b5578b036f27e870c41d80e662fb5dc32bae25b142aa2a43575c5442cdb5226f2cb82aa960b4be06520c52bad382e0af7cb1f9eea9ba2c2abb582a6f8e8fc936d728ee9118421d73485084689949d9f27960d079b1218012037ffe6d3e968b853853fd33c1c7d0c7c99ecdda6dc8f871b8d38a223e2fd382edd7b729f9b6fcaf7f362e9fcb1c3e7996e9d3c291739efd6ed71ad8b3c5de4a2e0e7f4db373c2582b08b0ad061836e35f21430a484a7fbe3eaa1a9f5519a4ce22291e0ddfb4d7b1562696ecca5366f9a60c6f8cb73e018ca6fa6d7219d9c8cfa2b62c349b7a0e98a56d436974cb395b31da73bf878ab1d55c8dc1f4cc43f53fd33c99deffd1c6e7c3444eb87fb6999d657aaa7bce67175ec5ff7a34efa7e1fe1b12c9c4601a679717b7a7c6cc5cec583915d1d465224a4014d5a42fd7803f3c2eaf318c788187dbf67403e358d22f48f0095c35adc244502274421dfb0b5c14f8f64769aa40eb8404f88173ba6d11d090af3e2af878cf1be9a556b669b0da037bf06f692666f11f450d42db6bf5fee726b4606bddafd44a5a80ee5b88a3790303d834024577500482f97af1e482b1c18058d20e3873c27ca05c72426f85e49533f9b78b69df2671d69c97797fa953dd10974e8bb85601ed8b57eb72cfdfa28f8186cbd84ded913e7af02df87ec0ee400d1e7cdec2194b5d31b5a07233907b38e8b957d884e38b3dcd2a8e06e2bfbde7a8dac98a868d673e804946be66b27b1e0974c098f113d3eb139455e5c63ea7372f17f71d7873b512cdc9297f7ffbaee403c30e4ca3d2ce2b253f598eb98d72a3a33d4b245b007d5c8551bcf7b13e38ed8e3c193a4f7e9b7ceac0227a9799d160e05dbbda87b9f2c95cb102060ea7b2c51b065e490c01cd15f370a108c40927968d63c1fb9cd4c2924a86e9cc7e7eec05d3aea9b2897dcd7f7ddeedab904131b20a3435c9782a648fe1bc8bdac8a54cba06a880e98aa087040e9099460e9c2c9584b8f9ba95779b61f124889a274e5e1982b481fcd2c17549519d2ee384c573cf5354618a695495e21459f677dd3331b89869c677c40d05efe06f63dd745880b7791d586fdc6249b1c162dd07905c538f6ba8c2900b06aec036221e360e3c6e555326551613a84702521171db49086c6f7d0fa196a8062af6488d03d0727b3f58232a50ff1dda4c412dc8238dac687cfcb795238774d05f74095ee79eab4effea914c8285bdda9feb77309a43ebd51d654bc80fc8dbf11069910a0a68b7196c631cbb5eca6fa667c39070134640e624484345970f956fdbd1a3a97d7f79db667905055ed2448ecec4af507132eb52d8b44e0e96cd987a20ae18488b882147274e03701420d00e2ac90bd7a5161660daa4230a7143eaef71038b32a78c249e72e2fd0ebd1dd6200f4833bfeeb252a67a220daafe6d9df2a97a7b56c0ec1ba33f9db62cce57406d3c879d1efd5030edba00598980cc0cae3f1dbecbbc03ea2caf6061ad4f5a030c2331340d090371beaed5c03ce7cf9091a04770951c1115503f16c7bfca3499262be1b94dd7e834af03845640993627434bc5d7c2d8360c2777e751df7308ea01b123117a8b5d4df378b50fdf80e701000fd8a44ef4044cd16d0309db7669dbbc62c1225fe1ae646932db76d0a0031d6595018ca1c0d8261731e1ab511ae7d5971ed812c1e37aea4eb9751a46df5a5038f73aa3a0adb3806e2ff39c883dcaa3e51dbb695bd4812b0e478fc5e10ceb5a2ab10db2d3e19305be0489175922d268f74bb38c0e4446e14fd73581b5f2d21c3c2c35f453c0a9916f376567f92c8ce9d525cde2faa672330c9da6d8145bf2023fe5e9445206659880509b804f9409a9098ba0aa3d335183daf408bee638b91688f3873238d7e75330f52a964f1b8629caf4ce718be0b16c3b6f81bb02977ec6a2304d6ba725d472be80c8d0be614325f09e13431028463f4d289e1a71b1ae5660b96d9e7cae01448074d7690cc9b3c129759639ad71e02b042da0c71feb30e29ca57a5346b7f80e26b5eb528f5a594748095d74a0c697d0910bd9da2563caba40ed10daaaa97a945ad1e487468db796e312ca9a903e18f3e4e370b84a2421ed9dd6929ce0e19696d1416074bec84a2baf668d0782026c514c088816b9714995250a0950cea181121bd1b34488ea0df886b5166d68b02d21ac256c83cfb9e27f10b56ac36d0ac1921de7730a562f23880cc73533c02e22a433c3ccf75c9ab0c606c8543f878b3dd0e8f43109dbdc522758ea891552facc632578ae7e792860a1d18da6cc7c8ec920e8147561d7870a0f831db345a66c80f13e10cc96c636445a44bda7b8f6c1a983d8302bda659df951591cd8f92283bf084cac8dc8b666774d18c7827544c2e69564427df23318cc22325199328468e1468fb8d0de1a3e0b010b2fd53c0053fa40cb7032300922766ce3efabeeed2fbc354d14ebe27cf8a2a71c42b0d3eedbd50e28f6aef360d015b52e66640703f1080c0062e0de48991822a74679832441860d916ff356c132a159a2727dbeed1d967cbb2c311fb5e0b4c7b289c7ade54554385507778515181938b83672d41b316d3b9b668b3be8e85e383f95f1f1f0bf6e772ce4bca8be15fc464b5f13c5806fa8da348d4f63cab6eb1734e3b44115275e6194bcb65e1a79235c83a98b8a7ce1e9c627185103ad28319c6aec66726e70170f179a92f0a33db99991bfa44b53212f84d09197d4e5c7276bd77a72eb1959706855741746e0253a48db1e4f932aab575dc5b862bbad7d80fb27190edbf8b2d03145482c02412cb4f5b76191e309f834401408f9aa6366e0d24fa49f3d1bfbc92e31d80848f483e437c017301f711a4eb14f737ce1219442388e5998d52f3131c1bf72a08c7f7f455ffc29982f07eb00cb9170e39b49f3ed68947b62ee572381938b2695708a4541b9faeb95ffb1129c4cc73fb8a6589c304accbdf2d7ee4d65a5c8e8863fc90bc13556ab797ef02454c221e4d84e1dc1466e591b9a0e09d615f0a802f96d0fb1938b5d0a1cfc08bf615c6d68473d1c0dc3977480a3424659bfd24e244be6885e3d97a342b396cfbc326959f0be2afa464c40f23ad976afbb4820b882661e01552976c12154fa7d40cb97b07163a1d2338ab383fd9f6d468394b35ad963af90469075cab96810b20e4d46d47fbfa6b846b1f0a199b1e09b3f676a8a0a1d8c2ed7baf0b670c1e30e893632944aa692a0b0a8c5d1ac18e4b1b2b5e8c81767a28fb29ae10fcc1e6219ec57c33a7ddc140b399b86860b494d0fb09644b21645765f656993ea8e361a1a8ff3c76fc6c5bfbb12a87563188052bf741f4b181b47f05709621d6c01474a3511c416c8548215bd5421203313ea52807a8ea63256bbc968b00bf03d923040868562c48e07588718493c4959364ca93412f2c8790b3f072a353bebd1021a66a92b9c9f243387fa51f6b4bb55036dd2af7ad948b1a8cae2add5be3a3c5391f656e3de99014b6e4b25ff811ec968ae458bf03224c9d719fea59b7b34d2d5ea08ce44ccb806148f201b94cb1b2d415b2e40666b7a98d4cb1458f105e5a992b79ee2eff5d6025c72ba8a37948db1e5f30225349f9cd8cfa07c81cf4a78d126f22b03c43778570b99d99217fb9fe0923e697c32a74443d19fd776624d08165b4daa85a297ad8c7d372addb2b285ff3da3862ee3d1bef4642fb126fa6d47ec44a2d64d47694650304c5f852605ad1f4a0cac8049383e6d71a45dabf60fbae8c3cec04b84890809863c622b2b742afe41bce005debaed3bd303ef7f056528beeb975fc1a6dfb92ae71507e8ef57f8bf3c108e0264ac89278e07f66c365ca3359d469cb272bc0f2bef7ad833af334a2af87830a60086cbf3bfe17fb7d06ea8daa89c68fda9e2f109d09c05d19387e886c9201561fec1b003667a0009e932b478ccefeaeb8fdecfc29ba6fb6e65e2de7a18df8a3e5360b2c552cd2fec8d768c6462b35dc63260e9850bc171d6c4a10e85c4441310dc7072cb671b39966248b6ee0f8db3ab37fff702297164d41b5d3c82ab24cb42cd966ebed2581e070abfed136b27993a4c05d291b6d97a26eb5246878a305725a6f67ce4960135a130098fec7ee53172b164cfdb016829d2507c14f5a22d59df26ce7c0ceafd4d5a1a93cf5c9951ae0eef487a6409f7fd7948177a4cce249468eff2ddb7318ab94438f5fb1178b26027f3aa7c6016174cd139e49cf592318e56ecd97d651d78f64d4a65ef8ffbb9339024c434fb5087a9aa44a1d34bf995cfd9d1c66c84193bde076719f2b355e969f2844a803e09f152ee98a8e5ad752559cc2dd9a12bbc48b5a1bcfd3ab546e7fb2d90485e9dc720379f2870a5bb23ff0dcc5712836c4742f48301f986082642f74171bfffcfe54184c923559cb01e9bf5b679c152406a2c8ad7fcf6ebf3074aaa8c49095022219dcaab4925c8c89441b82bdd7b1b8c6cdca0ec24200cae2429d750623acdd9469fc900465737125fb9464e58199b4f1f580f7508697b725adbdc4c7db1ecca0754a4197b9d8020db95f9dffa187842c60c8db31957436589dc88cd61ef06b3aade51aea0c8a8f0785da179a09316c7aa3c7d94133f73b6512433bd038ecca8cb5c2f3325090b7077ddb5d52253826441b164f979412a6b7136d226d2c71dbdacf5569384048eac0f69c50d0c33a2e640cb8e5a24676b9978a0ed35e36f59ee2b420ed4c733fd1d8af0093c004ed1d08802e02158f6c3fa9b5a85ebc133a38e11e50adb1ac0c94bfbb27b51ce0cbff2502167845e6e14a4e7ba12c7461de40d075e852c6f598944c874fd2f0d40578809949f12ef8fa1fc0967a478229a852a511349c0b776d2f520cf84808cb234cf026b9506175ceb009b83a7308b9192381b602e66d707be8282f31c9f130cf0bba79e4f4cd270038158674826026d3a1cb5008bed2570e70cab4b67f42e94c3cbab586574c04b01544ad0992d3fc644cdd702bb39f8a246c439ed47c0928a2cdb66d6a67b5a5d666d49237cf306fa50236b33e7824888a8a55a6fdbe243d18c2c5c209418a652f1271fd8d59270a486c011aa51eaa1ca7c34c3bd687521309bd165c73079635d816ba605f992a8f9890e0271aea9363882118a1544b4fe43e9a7230ba9414867ef0eb48b949c02160b39ce9a26068d68643d11e06102a4d560ba46a582a6cbb7aa345a6131c6331c667d98952145cb1c39d7ca06cfc68c764dc053a61840a430663316c01b3acbb7d8c237d4f184e6a2ed6d4e1a08e1591b14e0a4637e97a3054259dc703891d833475694afab24a02af94c80b2b00ddb05459bb6145370286795b0e0689dc45495fab8d8e01659a2b30b745308687b35ad3161785190730078f9db67b1e479d28daa05c410cb87f82d74c743dd56b4e145ccf01fa3985425f508c69491b5242a366f2695d45820f8e86f39d5fbe3649d8caf9b7fc76cb6fb7fcdfe6df23483db6c75aef28e6140003e895f860010000c021140000ff5660883180204d78b280cf25e42840973489f8c680086947d92d2591c84d24b27b07a1042e04a5031f118cef86273d1e0f4f587858cc2899fac440cdb0d284294b92f742528468fcf1c5d0f1ad80438a8da3199e1218272cf57c5f9658784966bc9ea92228292b4e983e189286204143b4e247121d61707841363ea619636078a3939e4f8a13162c98699199d2014a8895ef05d317425218249e0944b21f2d313a3c291c21d8509ae121c1f87e28f55051626183191aa670407d4d565a60829114433203d1961f1e0e3a3ec0f17d6003cc0c0f0a0c0f84263d203461f12131f3d530d5420365c5ca6783e927a909490c4422fc204147101c326cccf0aec018ea5181e32e674c58ec382383988f872e2cb0783e38fd3cf98e242de9620e0d249e535251177372729270e8f56dad3934c7006890926c484e42d090a2c02c92165815035be2c16b898b165c97b325310c6433e2d2a38dc8f0742b5c70de0e7cf77c44f8078537c5b6f028aa473b1a23b31c6c81e15243027281e4020c89070867ecee72a60448f7b21be68cb8747aba8cc81cada8b556abfdec9e6ddb2edec105713ae79cb9ee28c951113f6aea20c599aea3a8a331abd56ac5796c7b791968ba5ce820c5f136069ee77d160907241e5d939191164646b033d688c946461222adc8c886c6358d084a23925af199c139a0c68986d89460abb5d5f3e15a973325529f4ccb4782922a4a96baaacb9992232e74927646468c8cba249b93285a6648629678b0c44595cea6c6cca8471702ea22fee97266f49a19a9502226773cb35101821f1af04bd3c4e8c709345ea02075819cd20116d1ccc70e1f43663e8ecc88ecb0b65299c0def780ee7ebfeaf7ab5e8292e27013b2e3c80450956bdf5c1037377f41d8cf2ed9412a42dcd1e28efe7eb0a1ce166a985624ca29c0b9e9149c1139336f40283d483769276f26090bc2087b012b0b9ff371c5b999bd86720333221fc82ece0a80157c7ead3c3a497f460488c68c88500b3975de48f9ca80375f196fc738015914e9c402b289c687233339253497c8305358c6a551322133ca26917c5232f2180d2023618c1a2520db6124808c02b28b05b624e49514430c4a4b56f0a430c19c2132264086e607d9c33c4146dd3053904b1f8c288c13d411322fa35c624200a28c2869aa81e5c61024d80ba0224d23d128a2935d19279459e4623c808c49529931328da0ac8a0c36e2c846983c60d99cc9a2f9457221334ea8a451cb180199d13866fc64dc9610c6ad871599546231f28c56a6430628bca074e5842d5fbc1ccdb011c37824cb204d212e78d488725ac10806a0d9e501b299464e1965c030649c35708c0ea040b6c9a49039831329227288149026b33348c898669c1e344026bdc826931032d96536c92f36c628a34b5664e432ca2750462d1b1a6d642f7a186541948c625a5b40c8260b2f60f1a1c98f518771c640804cee70644c9243f0a30890315582f0802929023302c9211b5434397232f3342231d27365dc2b590d3e9e860c635c182d905541fa41693c3386b23063969125bb318a29804c4ad132566000321a70f8a13202311a6799ad0592f1efbdf7ed0e482df2f3ed26e997684836c4cab8c2c80095ccd3c16553d6c278436201325909f40330a49a809490030b47488a82c4806a642b8c8c20e420939e8c0aa84000322733320b983107d408009908495a4c290196f535a148fb7d5628521ae3e1e5febe6833b8219d18a82372aa05b5cb272c854d12767beddadbc4ea6da8571bb7af7118b074b5d1a1de711cc7e110afa74b7b956bfb1295ceefaca63e938486334171e2a943fe8539d582fafb651de185da823af6b9bf21e642ea8373ea88acc51d50b4dcebe830738f016d3bf59924b850cc186c34d627f5992158515e77bee80bebabb5e699afdc4dcce9ae7dc6fa869a87fbad06d19fcb69cddda03b5f9b47f3701ca7613ddf7bafe649c19a00f8e0a7ebce7aaac5494b501632598eb4bc766c08888ad82fefff8de4b4fd9b824a5fb5a6e372ce9c4b07cb2e678e9b593fe5a86ac7fad4348dc39a166a9a96431deef16b5a285a4a358d6ae2a641f377d0355a35fa77c7c8db07ef589fe29c99c6e873c6fa36e7a418533234d4b8cf61acfeb44256584fd0d7366c92d07e8a3bb663e2ecfbf936c17a4d9c9dde5aebd7ef7b2f1471d5e88b36de8b96bece0cc5b9a94d15aa220ec51dd056ba7deebd7ba8771cc77139dc3e1bd627bd938bfddc04d9af3ff687863f79e2a7e1dc7be7df3eda762f9d3b60e726b7b51339dc3e33c41429501512bab7ef57bd4861fd827deed77893e9fb572e4b717628a2b83dbf2a1429acef1771df3e93c4dc3e3bb67d6c6b4e500402274c31149992a327058b8568a95ba2a6175796a49d73ce39e79c737a1a9c9483dbeb4f7d2bbe34e350e2c8abababf62e67578a7ac7e9bc4dd45ebfe3e4a4d5aa6ab84dd904713bf114f55ceab0c454abf6e74b718645aee090516bad28708d05af06b72a7865aec840e1ca8b5e4197b3a7304f5b4cb0c9818003c49ae380d9d3925ebb9c3d19759f19df01e49bda41038e990a9e920ca0a7d8f7c2530b1f3f5011e34589f284ac4041f99e20e530e29d09f219a921068397e5c63765c637325971e1b960458527c3986f4b974fe88a27a48948d257e3480d423c1b3dbc2232b4c2b0d02a53c3838ae175a9d2f3d95065450e65bc16529f162c9f0a293a9a783a24f1be107d41377c5c66e011e41941c14b8184cf0a1511be28543e689931e3158131d2f295e0e41139d1a2240622de0f3800d1f15d79e17391c2989f27a717539c427081468530de0a504caa1c3d0172f49d50c443928397038faf4a8e8f8c0daf04133c16a6c83e0fa6bcbaa4f16ee8e11b810bcf532b0dd3d762c9920e3d86c8d8102386272bcca0e1c100c38b92c2d39292e2811119cf8c97243c7c4ba2bc98783f90f418f2cd7c7c3d42de8d16bc17277c4e237c334481794ba2b0688df1e1837d1921cb97295e15a5d6d40ead33453a7e784368f864b8f0e100d4f25242cb87261fa026103c9e33df0e539f095b6054c42c79478cbc1e664c807c4d762ce1f056a80046060ca61816a616df8d1f92c47839a2be282b9f17282a90b8184913c49baac1f302c387e306d28cd60fe3970214175f0b5054781e8cf19c7469f570e50bc273d313cf491e0d241f0f221f3f58e8100187f7828d1e66045d284e8e0b4514b78a7c06d51135c4b71ee912805a9b46abb56368ad16acb569b45a1bd66ab5768cc2be45610fd6f05064b54074feacc7ac1a0b6e9fedb37d2caec1a5a84f5997b328a1ae022a7f872cbe9ff3fdfc47a783bee7365dfbeefcfb3e0ada31df32b7697affe62c1667b1f87e978e8ad7b058cff98aff6ab3585f82d6a89eb356abbdbd38572bd687e2aca9596dbbfdf397b42614f96585e20852d4d4f0b77cffca727f5fb5434b715c3a83ae73a1b87dae803e0ef5a69101e27cfb70ce7fc338e71bc639df310ae30fae549b83c0abed81db67fb6c9fed739f7451d10dd0e58c0b935c6badf5ed77d0e70e356df57ab5b168fbd43c5cddabd55ead4ad4cdbd4ba7dbaad5eaf7d6fb35b70a39a87df525a8ca2576d07534e87e7f094a010545f87ecdad42ad0a75785fa55a8522ef75c40cb10e75fdcea57966081c8a3704c330767700e9977ee91ffdd2310dd39afe069aafbd75eb376bebd6d674be340fc86b2896aa5dad99d6a7b43ea52f7b095aeb055274fc9d9d9fe7e73c3feb682ffbe472b6f56b9f367fde5edc504b9d015dcea06e4401e5a81854969c517c7e71075c65fa9affaae6ed36a1434371725a15d668d5d65a6b4a29ada9a9a135afaa59a9e8d65d88e2768e823c0301d230fdd2300d031271068ae1f95201c562986b97e62a55d67abeb4d63c9a47f3681e204e371f3a792356212b5df5b769a9c6f8374c878312681dbf146d4741c5597fcb8dde802e675aa4a0626c89ea5ddd784b532f4097b32d3bb4cb5be1fd2a1575c4fcf91c6a4af9d3cbfadbfafc9ed7b3f7f83f5df39e4bd2d0829a7007ec3cb4228adb3117a2b8fd769f4391c2542eb0dfce849842a70bed735c9d38d4997f7f0b33e8ba568538bd457234961b6c6a72afbc544940456cee7f296f00f29a73ced5a583a5ceb9d69b75a85355596992c87ff17baf0a454ab5ab699a168a3b57bb5acdf969d239b9cf4c2689f95c6eba943ef79bf67703da679a97fa76efcbcb71e2bddcfd0de68e3eeaba17f106d5027a7f86e2a5f40b8558a108f639676672f3d2c6b1382a5447d0234947d09a9676dfe6d2fbd4c9e60b8fc41d3db312c771dcab77b5d69a9566082d33e97797a82aee3b7924eabea5d406603da24214bc42dc35f14775aaa465edb3121502416ba994a62336a04e23ae7c924f5a73d7ebdbfecac529cefe0d4271473e3951a76e3f2b65a5bc94956a055756947b1aeba27ef93878ce3975f077d0adbc967b4aa7cb6adb6b34d6ad7d3c279edc4d9754bf7c2cb55cd990c3f6317e6a1fd3abc29852acba3533d325da4dd32f2dc571596a01559220a7311a738ac164c2483061db516692976cd02f8d6a580ddd94524a29a59422acadb4a3a07d92a0f3699f22985dae249d134d3746680c50bf3f1b13ebf7b9312aeee34ed336069cd3c7fa722ff16313770b75f009ee6fc89f0211c4bf691d9c408ac87fabbe2edb410adedc412901fc7a6e0dcc2d1475b819991e1d3ff76482bacabd88e736819fd33aced2764c458880f68ea504a40cb7bfdb73ac13a60ee5ac9c9344a6bdee0ca4b64d708fc30a4ecc4c7b7702d3dee10bccce7da741c7e1b94f4c152a3a1eeadc09fc38b436b888bb0e39209da473baac942116d1d91ce158e6e460f0364a38fd50cad0025b6bad683a49c3f4e8723655d4bb9c4de5e84f292d51e96673c4e94b16200882a01429556a35b489c245dca776518a317fbaa33ba59362e9249d8131d2e50c4c8f19989ed9148d1998335a6bad35a9f52a18e0aac11215e7ec9276639073785fe7d75ce7423945ac7b76dd281c0702200513d56bba9c8159ea94fae054b5a422f2dcf6056c98b6a9fbf6f8020c6a703f7f775ddb634e7e766ddbf69ce26ca14784cf503f7e9a7db93193c2f2ea79292f65265989a8e35ee5c28965cf39e3218e4768fa9c75d19f7be2c75d88b5edda08e1f5efc6699b215e2d19290d64606b4076edf16f5352955629555d2f39665e6e502084e3df4c688fbfbb745255bd5457e96afd9a628a28fa964bd412f48a9a8e16eee86e2b974ed2fbd6447e1ded338a7c678abeb92cd6dd86aeda242f65259c3fe737217bcef9ed6b2e5177ad5f2e45bfae1ddd379a629bb34c273ba9e9dcbaabbe53b94cc8ae7afd7273c0da5785b653a9de84ecaa50f59beab757859fa297a073bbb8143dbb76c08e29a53645376999a11f1a403fdaddb16b6d1deaf92fb6da8ffd1f155db761db6747687303a72fb7cf0d439b0fa13e2db5e1bc1a46716e15aa6f6dd5ae0bdb50c4dd0c612bcf0c6183e80d8a537ffed8f8e0b4a7a82508a5c6d3810f4e7f80b0ade1f44323d47886a12223498e982cd9d4c0ebd0101fe2435cc7fdb97575a92ed5a61e9c7b2088bfc1b199216b3bd683730f04f137383af8ecdc0341fc0dcef6d93186f811f77ea8880f6d1f3ef4d3453a344487ba6e08e440be7d9c7e1cf519a3cf307fd7513df70c3dce69d0df4d3d436dc30383dd6607d7c9af75b3070e73888a28a222b624f3888ae8eed7af46aa919ae476f36dcff34bd46de6089a423348888ac0538886ac6dcf414d93c6c6068e5f7611dcc16717c10ee2b52ece2e6a1e1debdb6781cda04a458833a8cfb27cd0eb83a0384ebdfecc51e50c4b967901cf0c21ea97a68106f680897a06d51ebd6e45029261a8848c19345257b3010a0203170000280c0a0604633910a5209a6eea0114000a6fa43a644020a1cbe2300aa22006621006811806011806011000401806210444ef050076f6bcde1ab1a698bdd6f28294d8a1cd98d860ac9fa2cc794631b4df3e536b1a811f7b93ec8a81df3cbacd87cb18140b77f2fdfcbbd04fe416226186df23d0afea4bea4a196c2fd03a06809a055ef677b7d259c262a714f810229dc0dde4a891391c1d3d6171dd69e1a28118fbd73ea7611095465c751dc06645a66dc5e2835dc6726b14ad7e6bab613ba7ea5d29989e88ad296222ca381fe9ad86fd62d26e0c921e14701e75e76b234b53110ba03d86afbd6680e776cdf7a6b40ce3fbab43ed043bde65324b953fb27506593b82e6110cfca8170410ce2b9373529055fa388e7bcc00f7a86530567de6ab0b6ff30aed9dc2b3356d64bb0c6114917d22122339b8b0ccb4aa25626505f972b015afcd2bf12bd441ec16e6c58d1ca443ba720dd711c711b286644e2b1e05610cf65b082862cd9ebcbceb323c13c03d2e382a1425e4afc32a649916e7eb449851d2a1c3d7e4755021b6bb1e54c51717fb6b7065a5b3b5215d7a7d698e688e835b8009221311fccc01132f966f7f551c8ddb35a8d0cb8bacf7a4b73b5af3750a3aa6bbd4044d596a1eaadb8acf359be3f28c2d81d94aa69301cc95152c053c4c91fba5ded712f0af1bbe6b47797f319ae87d877b020e259022bb7f75cafdcfb71c3957c8a3dbb5e0fd7ad059d55d4801339d02e22993054c972605c50afbdda70053ffa5e909e77809e27e2a66cf601aaa75c70843b6e045e8585de3ee2c5c790574c54e0db22a48310ccd94b49cc4b8f9ab75270302c0cc4aed9f754a41828f88e676fd4c65345d3c6a38cb1b1655174d178214e00faf2a20ac6116c544ca60e018d5574554cce0d6cefe82e418c21b9dbfd4bd54d972dcd6e9e884e0851df1e55d9c0936f20d5b8b13097fa72d2b20a028ec851bfc07d028f1b7ba4d93dbd71a1e8bbd385c6ebb0a925b44051799f8e64aa42dff32b89c641b5ad418aff2c76e54452e4030784128e575ab5d5eb5ab4db4e84db04bf101c3fbaa4926eba16d81d3cb11e92d03cf77fd56b17dfd5143bf32ae2f4397999535f6816dde48dc56e0f6a6ec3014be1fc579c3b2dba7985da80a4380fcecbf6a10cece87cd4f848dfce797482640056ccb208834aa9a4849c281d7fd67f7103e923f30d9b19f2025c281477b12390a7f800eae9f7b0c634723bcd5261cf54383119f7dba5ea61746b94125dba2838850e3b0d37fa727241ad290fb8f4f9e32fe5f027490103f8ca24a3290d9aef53dbf128b4b80ecbaf291e0217b5e0f7410b9107d59624a60590d7b972266b72cfd2b1ae2014978261c32b78e784410049313fb9e4e332dac79f62689fb8b7ebb1ec8a8755f3377a9d91b7ee7a64e04d56a9796230b1162bfc6f28cccd8080e697ea81b4d3c17feca30c9bcdfc74f9f65d71f9639a88b29a5a0e21cd749e395c0ffb351197da6b5d76984fbf214ba4c48627ed8d80c0e81a5a42c5c5451575d8b4d1e876ed3880542ceb869afb71c949e385dc55000fe2e648258709ca41c67fb067f66e5ef136113ae8bae2a12d7aa95471bddfe3229758b939b62cb0ba4a4aa84a70a24d2150e1e3f17a4de89d9b479c85f270ea38c6338d81cbb3d33bbd687cad2afdb5a4b34a9fd61ba53c970af0cc977ffbc8ffe0b8c2dde8eb52d18fbb30aac6e21aaa6f6decb984399059a4b96ce305c382fe14e77c810f5f47226049b874edc7ac4d794e9c65e709af7c7cdf5d4e996acef9ff1497792f98cbf0f9d17aaf172c866c8cd00be14bef492a91ccf09a32868e14421b1ee695149c4db294e69c4521ac14db3d72ed943e1745799768e29752d33ae046a10e872a00ff4712f49552f4d3c10035d1721a1d4b6c066480cffe31a9467ea0f68328f1d77dbefc986815326c15aa2e1bf584e00e7915c0a235d5cf5988f33c77064141e4efc6ffd110d18e2592d8bf562eed1db15a42d02994a369548d19b60d506aefbed16059082f7aa0233f30aa02f5afcea0d0a870e10ccc64f7621fc105b487321dedf8e3a30f97add612ddcfa4b6d32c2af658b929f04059dc283cfd7c40aa0668d340b1fe8b455974a9de48c2090356d78374615605ce5909c2ea472cf5c336013cb58a102cc4463a05085960281daefd633a100a55fbfff4ed76016dc5fab64be227c4642eb4a61280d9e5053ac0b97151141cef7692fc6c4665b19f585e35a1e6383e7f3653df3cf14c0257d0312c849052330682dd3ab2259bb8fd27544ff0142c5b3e1d52600b5205e0710711be267d83b35945bc0e127b0d4d767cba0e94ee7376ef4626d178567e941caee3145c9ecf07558b5d43af2865310ebfad746aa96bf502dbb2467747442eb7bef6828a58f52cc74104ce869ea9abd8c2f3f2eb1820580a2f7f89a3c66ebb4d96e3dac6393f7fdef15e9de3794e10c355630081f2213aa7c14af63c21d7b2954329b546ace0cd438ffdfbc685b4a14682e227af8566aa352a001ed1e7a82f2c20fac9f8cdcce15f7d0008fd1ccafc3ad65dae5e0b0318213a0909a30ccc50b3c9d8935422143c054630f81f16f0dd163ff53a9ae8522ddb679b4349b8cc9d561cc3abcdd3d730cb34a3341cfb99ce100170eb170e02e5ec724f80d445b67e9bfe438527b987cc6f3dd72084e19e4156517f4c400546ba32cd5e59a1ee7dd31f7c3f6ded704cbb2cbb56d0334bc0fabe33223e6fb70f68c4d0b254be2fea51174f891f6d79d850f4450da97182b62a09a376243b830264ab8b1bc06770e3fb5a9641bb4f7c352f3d8c0a9d8fa575f7a7a0f70afb5901cf197eff191b64e1e02c1f5707e8c1d58d78d12afe51a7dff10d052067a11f4fa6e3cb8f402c479f6bdcdcc47b453bcbf1d9d221361b33d89493aad049248562dd97796ce8a40f406c9874f18f96f9ca604ab61f20f77611af9956f0e95a564202732c52f12c6b443e44472b3b5be58f892e7b0249478ddbac84165bf021bbdc1d16623515d0096173091104ae511b3c31f93e4e654fb5750176901a62ae1bc854b88a1d99b47debf4f3c0f8ae2eb8365b08603499cab214731631232d97f35616cb5922e97b5839f0b983cc9c4c1d8afe1c53c728c34186dc1fced42d94d08476443a979b0f71fa20c1ccfa3fb0c265b6919c36f9e83128ba8ba070856c2307a156d56015dff63811adcdb9b538442c99fae15988ff33a252a82ea3d11a9339972b2351208be7b614c3eb216ba36b7fba82c52c12b589cdabbf88eca975364394dca808e4ecfa484ad1897bd600b20d9241554bec72daa81106cdd1db053e3b3f38803c06823fd9dd0789b20b9f1cee8dd69a9af4e13ea218767f10a1d976353b5161f8c17933cd7cc1a2224589b98b510c8599c90c2ce3938184bee62ef48faf8e53a472e589c676f25cbe0f7882b454df2be88c119d07cb8935c69803cf84b3dad80046160c468e67999a07267c1dab9b7616802ae3146150a5ecf5e802980fa472a8319bb591b448e068d530c463ec08723bdbd7846e0d76974e76df6f6116205643d1432061c3901d6c9b879319c7741353ac3d0a3433ecc28eb1ce60108c4f518d6f49a859cf1e68d89133884a3dbec2f1b86bedfd01f34b1092788baa0cb46253457220544f7e0607c4fadcdc31c016632a495d288c86900c229bbf3d4049475d852eed77bef89ea80e4e263573108a03a900bf826c8e94fd102e48a9cb66b427cd8f49ff6aa2742cd708ea0677ba05e00243cd821151c61cc4c987ca406439d7fcd9d8e39dc1a9295eb7863f33d24bc130e4433e53244087367caafa4b6104bb6f98ec24e3c40763a8f1234aafa2a7e5584eb4246fd289e3ebe9e65c832c64c1422ebddf7b0992a548d289067916bdb36242f8cf0f19ea2a46260f5ec6200f7eb097d8de953adda22754e8aed724372d48f86d5e960e89489f07126161892889c3fa990ac0d94778c48d14aedb898b387d792412dc2b68e853832661a43e7264c56e9f7477bc1e7e9b93050ec1c423527885023b0e422dcd8d9f2b276008dfbb980d0999a43041642c04cf6f779bb57d7d7158ca10f417b1119994ee8d133512623a1304015c9a141475b83f273f0b150e8bb0ad6c35d1fecdc160ae0b71bfeb295c36926f6c0e599320fe4c2fab06d79f710e3be118876b88dc15b21f279ed33c71e11b89613cf0387b78da1a25a057fed8526ab09ebc465ecf28ab18c789a6746c004d3ec3c0a3e36cf436f162c92a55c2f98c42ce67ff4ee36c15a63ed16bc91880428f0f3d9860ec064ab80c8836db345a83174c0c44711cce0e34a788de84b7b0d71fbc1dfb7ce13f8d4f0340de9a2ccb4448a359bb9a16f7c08daf5158ff558dfc504da5d47bac81c932f04db8b79393fb5cc371c74591531244c4833af71e64f286d9f2766f0790624e5274a3dd1ef4e780b411905da1a2101d3e915879f75dd227399636996b25205a123ec20b2189552502f236b2f0b5e105ea3ecadc8d66200cfc5b65671cda49800df883f01ae246ed6abfe9927b30bfaf9cd284bdf4b3fc1d2430c4a0e597d198805a198d7b327c1dd73ac994aa2d0c0ae1c2dc548aac29ca0ce6e1b7040527c921b72ff6d9263441e29180e7eac8b592df498ba78c3ccce6c5163f2bbad0b16d400e49c3fda8a5c7415cb7be2a1e9330cf4f462a7dc7ff40f81ddd8b25a200ca39b666d1c3b922b95d67b082a025cb8d2fc646cd3cba86ca41814814fafa5a6538b8edb1089f3e36e5bc20ac0c74b0fb0a4f95b4900948c8ce1a21105fdf8bdbe9cfe7fce13f522a215f685144827d81bdff9e3059bbfd45b58d9155c60e83c1d26ff684f0f5ed4c016256ec682e9e30e4bfcf98de6a9462b6e75cea60b06f4c78914596f11af00a850244804b9d19bbc57ea49781ac6b06bb90d7ddd6b5e862f18df1da43de390d41fb79978095be1e376aacaec808470b678065f17b64d84c59165d82674b57004197e27b89bd85c48b43b400f81bc0e7b8f303aba7fb8d391af8b6f3522638d6025fc12856052c8fe3ac7642203683cd96a2fe1fd108bd7c52f413f972f8d98a579b2912e79e686eab222a40dfa75d920dab3dd593e8b245029080d057d7d8d52443c307b1aa26855d2d7237b8344bec6667b074d51c6567207b2f88589354be540cae607f897b653213cbfcbe8a4f7176a2373b492cd20dc4d717da111a437ecb9db6bff57c543db334456f6171faac7d09a8d4577330003ba6c3c6cf2ae587e386c238af3f2ff05abb23cde317858a68123f7e662089780b8248042ff558ef9fb6e8b7cf42d5835c68fd13da52b73392a6d967ecf0d5e34ef165e21e4e5bddcd4e7d6db35f2a82555b3438a43a6be6283f3c8411afec2e3851c94bbd30e441944e9c2fb4eb30175ff2976f21214bb5680cc1db9d76befa8ae1879df0a30df2123d8b5a2851dd1ddaa53b5d80a92b91ce01ede192b3e8bf0f0178459059f286156143138e19ed1049490ddf20cc70b78eb3b4b776118a85455f31d9be7f9698abd469e7416ab8a790638bbf0e7733a5dba6cf571b6519ba62cb59eee56486b181af093fbf4b63562c0616345fee7068139410802f35bda24f6085e03d828a33c173acd644e51457744d2527f22f462614b3d9e1f71e31ab94a44880445b6de925a2ae4eaf04da5cf23ebe85264854248e3af040a453f00dfcd56cc2f25a3fff4f8f064d2ba4c3c0a861c2345d16454138b4d0c9a246d52e91b6dd21dad2418a228f693b61054a497308e986ad4a8bd2142422a4647c4252e7a6289d2c3ca789f5bc7d020998d09d265fe13b758cf493765b3f5dcee6a0673152edd6c85a894500a23b87b406763b51226a31870525b20f4f93ef03eb7b011d8db27c0517f94f2c1f5bed695f8cc58e4ec0c8bd9c2c5063bdaf6ccb32eaea8cd961d5b917f0313fd85557cc0d81a56aebd14c9081e2bbdde13ee80949f420ee34b24b81ac5bbe519982e88d2e9b99babae503d0901e1cf3e7a8ab890b0bc8965fdde6e6e9e61f243f06db23703e8976220d4736df92300ad4b6b32c16a26fb3090d4e5efc3d2cb2b06466312ea3018c8337a6ee4a3df7d0c753521fa7f475694df7a0d833795a45b94b942945b339168bc8859a2af27f482ee2480bd046f9e9d4a98620224dc50b14b081596ea23d5fcecae74f29bf70df259e848046d3cfcde99634870053d4542a7b7c245b4a80727a2b29d8025b074eb59842e4ba82db3ae72723590b306407a1b84249686d1b9e51236daa413429718c4a6457b5044fccb0e8a037e7a079c1adc8cf1f3ecdf310c9f7729936b2e9324c745159ff56d547f08a77dcd80c77f7b110b6fe99b3394b9373ae622a692f919beef581163292842528ee03fe6e4d8b137fc264792f7903a9624cb2fc8ac45f4d52a28a07322581451229149acd1c580ee592f6cca5945dc889c98609e3c23b0ae1101a73ee2a5b003995ae607b0442876fc4b43914934c61540778032006923e4696c616cf87f8b3bc15186b2c5f37137305d91e396d4dcb602d0cff05f86b0402a02c1bd92029c1d884e13069d42e44bde512535dc46bd218f76431b21e3e3c20f6db90a1206f9d2686c3a1cb0e1e024f68224d2f92164c33975440d66c7c721b7b89fb9d587a203d83b15a43ffe125e6575419369a635c68a6ca17635262473ed002939a63c07e2dd0c944afa082d0982f97c756e4dfb9c43841b2fea04a5699d38eeb7d463863a401d8c25e44ffeef74853de8a6ce8da5f03fb85832ca8f412637ce8894069eed36d21aa699501507735bda3538f55d81b447b1b4f20eef00b40c892b9cca7dfb01ff3789fbdaed916bde36e73d558b9d2b1b042900b6b57e07395d97008c0961c243aff0c305d81ee91dba4a738c87cb44443a2908029be1e1d4850c90b89f74b2d905c866f672df498084884af07d16e18b10f7c5fa8f7d4daec1a1acdb550708b790e7188456eb5bc063ca721f2cb38fcf24e6e723c802a9c494f24c2b9a1d120b827773dc3b1954f7ebfa1c77fda26135ed997d6b0e301c3fe40b4244207ae792079a5c85e4276e12453538f056a4e46f1f676d3841239c5b742c0b3b053fbe7d9ff238739c86d735aa69a412f318146d0c686d3ffb0971dbbe0da44238c40a39d70ad2dd20a47c2a8efe43be2eb87f4c296d138579841ced4bd9294e0bfe47bf0bc86b3a690442698b8ee1f8d0a1e72941d17ade2a193e710a1af7583f8a772d12c8440efffcc3065a4681003e8adddca26d4186e91fb429edb968dc231224eaf355501e6eaa783d7dd4d01429c5b295a249acbc8543f1bf5d27731d0713d9a9029471036acd92d971fedbae7fa8b9c995b207578f7f665062a576c17d3111e4e9ec759c6aa1a9be52b217e1b3e92c6cc8ef6b2ef4b6e235e58544a3c92a55ab2a3a9f244ef926c7394453cfd9077399f885c7f5f9b132d147786e032a878598bddbf3ceacadb0455d016089063da30dbf8fc00b76c12bf943013279954cd705691067dab2bad94c20544cf7ac3b10947330e8101d9fdb3f98df6afde8104d60e2d9db0e331524c4fa40849fb87a43c9b9059c4d7d4fe03e0f51a6401843b4b8a99b3b1859e56826eef759085074836024d3fece4fe3e4302dd9b84889f42bf182f4ba77d9b8e808d13c33a5ecc8ab6904520bb6733ae848bd2284af1f157ed5a351a7218d7d9ef71c76411ae551861489bd06ed60e8ac9469dda50a686253fd4054910b191097fd80c27858b01ead1bced12dcd816cee1cfd975b19f6625902a52c9968621178dff1f44f64bf33df8832ab2088d3d910684eeb180e6ebe822d79d097b563a5003554ddfdfd868075171956b325d802de2ac3a2412a6ba82b266f71044f5c40ad6f0a818903fce81b1a0e507cd75af19e09f904884a8677a80f358ee7bd33bda29baa12ba8b2610516ef633c44636a4a0ca0bf867d5be90c062fc841a7c32900af838c23c0e3d8e331d5a5150449d3541ee862a874fbf5ab6b786bcfa4307e2ec29ad7f366081ab70b3b09389e32748c23c9a312742b871d7b0b1bab8fa1b3a012b45f94b4b924322095879c82ff937bdaf2941c37357074ced6aea44799fdf7863fe2f5dfdc9c2f28a9f2c05de6e1b7c7b063074aa82a0e2dbff4b29d9c37b6b595e7157c44069173c30481f36e4f552e2b8a492afb7bd58712bf4efdbe73021a33f5901ab18a4500d2c806bb2a040efae58449aa71c497f24aeff88627ea86978026aa198a7b191a06992c8b05fec19e256bf59000ad5ab8cc3516a4716495941a24fe7ddf11365b2eed62a5922178e63b3ac250d7c5b975251cf702e6e4c075846b4eb85fb972254b3c45771236512ab4ffd7171beee13e97091d8c27659c97e178ca3e3b92c37e10dff37de782b067b0ebea21ff84b7e6eb7dcd2f2744fc8d700e1d09b0c79d82de6ce5aad6c3c0a6970004af40c90600119a38d1355e9a04d21081c916ca572d0726ae8e2d87e56608835969d8405642a5f258622c9a90a3b70a7f1a1f39f670d1a0bde7aa90216a30c7903d2a0f25d03edec1651628dfc9ee07bc1ba116b0e251af8296cb42cc4c6b25a640bb89183527c6ca973ce8a6f4a71f7fdab4fade4a9a402c1f5aab869a32b10a706d394c2170fc8e62262faf50742247667b0f334a5cf6daaa914d95fc50648e12bddc81244bc1eef85be6b4eb2dc372fd27d057d6990a99e8065660af151bd1a5b450bd66f60001a586eda04962b4a004c98183a2cc79b870d8c65f81ab3493b49f4e6a2e2242f50d820b4f5d0ef842483c0b92533917257b5e66efaeec05e28ec4174b3522c97db9e8933fcda211e1ccbefef5daeda86f1517c5137c7012c0673f54f6425f6ebf40a7f7f57f0c19b2df3b678d40abde6348eb4377521592f19b61a6ae4bf731611180608eb3f13c4d17dc689a538dd373b0a3f3c93c7343a8a35f170e73e350e33ba9d4d1e4b9cc38a0174cc2ecb07c5ee397b1e7724d994b1f72af460f1e7e90893ffa7feaf63b3aa2c263917144fe03ac6601dcf7158a1ba9066ad08acdc5f02588e865fc95e79a84326a05029cd40cf22f6987daa8bcb3bbd32ce0ed65cc6cca8c3fd4ab509ad8f1839860e462e297b850324917bc14b25a9c6c6ae1a4bf1a4cd2c6e662bc419f29accde6d0b4ef61a74238aa4f0777fe51eede0a8001c60eb7cdca21cd2e07ceeb0e69d8f4c78db5f28cf2540f49116be40bbcc7acf4d27e33c8a40e1eefd6252c10efb84f85bb0c3e843470c3f2672d6dc921b24883c6ab4a7d155d4f85ae849833e1da9addf2669b5a663d09b5611e7ea508809f08e69197b2e200a820e31a5ec9fb7dacd37001780f046e10e583992d00e2479c5239a0cec7ff04d8e6814183d3e44e82c44059899d33b0b0a79877d8b1c3b4d65a0236d9443a6a54a2e178c33c40f5ba42af020250dff35b0fbde46f370d6dc12d5b3d4238c156cc7a47f7870157888d587281fb8ae7463da61df22cc4941ad05f6f0020f33294934e03a5e0a08c5e1384bff0ed9456c01573d5b37ad089b591dd2717c82857555c588b5c290756a415ab59635bc31e75125bca54cbbffef48c82753a56cd02e5eceb8b82b18f9d17304f790c2f19bad57aa61d28823aa2f4bb79471a8341b813d68ed7f2f66ee4da283bf1cbe2195a74404b15db83f1a34b7fdf31527c214a682a03ce2d22388d9c7cf5cf8c38babd81b3403f398a7a5789ef2983baa0f257464f47f4b55b35d44f5813c6cbe83422ebfec8139c033e57eda4186b28e59450b7429118cfae03422df8b408099c200f5cbd857caa2dcc8f122253f8d345119cf3164ad30a518ea77b30d628519f74dc2b1bd9b65411583b065b5a5cfa3d590493cecc85aca413d5352fb587b741802c0da73caf0f088b5816155ad0b644267f6e222c124b7dc3fc48fa7434885661f14bab507d8fb2eea4ffd7ff600bba62dbb20d8d13a2b3fbd883a6d57538205d87b9254a23089cf091ca822ea9d9d1cbccd7b8c017a0958b07eb7fbf771f472e1084fea01ff5cf4c6a541aa99fe82e5eeed94a78ecfc3ada368bd134ab2c55ba845cb02d15c666c65c075633d95b3cd44b01f05bf39818e150a9afc294e606b82d0b91844ce8b752d3c85287669e50e4430a79f5aefc9f2333ca0d036e334cb7765c03091a50042f5c6bb8df479cd52201048895233837d6e9a3ba8df650d199ea64eb8372889e938db2109225144f64388e7ad03db63cffe91204e5a077f314178d25420503407412422415d19e9268a4298570db6c2180f5b20ceec312e021f7ab0f920cf1b70b7e732b4be730018845088c7d333da45b2243119e56b2dcad369bff713a1ee9e2e24dcf1bf9bd061b75c47be430136a323421cf0fb757de81b5b2033aa1ddcc655502c0f3e8a63aa15ef50ccb9c66d80901e582bd22262a29715b76a195c6c31606c9f412f2d2db93bb759d63cb09c01b9e8c5f1c385dccbe558365bd648f13424f86508a2676d78155964bea1ab7a4799a46c66aabc2517579c4c86382fcaced225a15d0eb34611cc79a7db55b8c71cdbbe8d33833c886091ee3d77ba3fdff05c65a0ac3670e8ad556c2fdcf97dccf5866198c52f8dea88daeb4157ed6677e16c87628c4351301360d90f4b688b96da891c18b0bb8b0db0fb3ad819cf3ab6ff57078c0d6600267525831bc633fe345aa8b3b9413a25c927e0300aa4e64a64f66298898f627f364ab4efcc6853936e44fb12d401e2427a73e3681c04da51b97337687230680f63c7294c78a09b9144bde246cfcce1c5bbb80acf097de3567049f0c72470e9ee2c3463c864d30fd6b69128b6e4b4dd1fae3021e11dadcae35f4142138b748975444f1d565bec4c1a9e5a16ee40f92321875988801ffaf4fee7eb8da605a711076f4e53ed9cab6fd01c69dcbd95ed0071c0fb0a37e79c01c934ab76f61c127264cca3f9dd64f1415274b1516e7ece2f42c09a861011638f6ccc8ab253202c03123aaa7dfaf6a68dca6ad35ae9beac41a3666a55d1227137921f739b1ff451c4b271e44bce637ac39251e66628df8e1ab8607bbc6efdc561f7dd4214186bc30d7f8764d716d6dd669e4fe816f30f401f9d742a315e28192f660febf689460ddfd05cf17052112dc5c412b4a7a4a7461773d29af74adc8810bb395b5f1b73c62ed49f0cd0495687cd6abc618955a5906935fd85fe18576574766dcc930833ba86a7d3fb897903392d9d1589fc2adcd3d8d6ecace5b8fe39d84b44c3729bfd4fb1838fec26665dfe6dc202d53781cc2bf4bf515a59a981843ff9caa19e935c357b1ec36fa31892343f4d24d69baf5eda8fd4958d687b602e774b896c9a747c9d581068f0f7991976f4351a2901ce579c5703e06afa4245abb446535d1abe62969c1dbabf5931cc682d9cf5eaff84563238db6496d1b36b315eaaf17dd91a18f3163aac87b589fbec689142b6ba7586df0736048cbcd99931de177e020c02a75b86b385a72450b6cd5f6e7f05beb97a90ab27898b107fb296df4a3fb4b7f06be88ae9b999b9abb37c690061b598ac7b741318070e79afef81d3152a6aecd664fc342195a520779caa39e87a94db72db2a9c38d475810bb18932791010bf8ee4a0bd75ea3a516fd5f5e7fabdeb9e49db5ddc4f2118b6f20a52a3a87180f5295c517128756b78393521f49b555476b4b7e38fbf5d71e83a2e9618d55114f6662a6ca8106655b43e0cf692326c485490662db1a3927c25eab0e6a77d768d41d088a7d6661fb618978261c78e83667018d711bee1625c8a86adef0ab9088890495387ea220c30d6bec32c5c0e28377f4637629d07343ab00338071a99265e57c30690033fbead8c541970306fe5c8b1f198af0da656dc17e806ba03031207b2ae3e76310a834cac6ed1c82e87b8cdc232ee716b865cbf7f2a1e2345ab8efd2712411a62200dea92275d391a473f9d453856d861035d90460735a5705922f641dc3075c9fc79da412e8d9686396a4f0bc8cb032328ea82e473827a19b87bc075ba940c9fb265c783b48d69095a0a8bb2be8aec8e06d19e62f8c2d94e0a54a0214f3a4118f4f46db3919d3c47de22dd4665667a5772308d2db3ddae232e0d72c6a3bced4838f26623feeaaca57b35f25591f2afade68fa3ba01fcb69ec52a615da93b8cb83d0b0e3f1810d7257d394a65378a37e2610815b2e69c5da93efa5dfbaee796efb310b32c1aad4666fb0a984e8a5671abb45d39bd970464b25343fe8a8bb44f0d92df151d94f8f315e7b7a3c4492da36bd6fe9e23b0c4525a8ceeaf5aaa02c4a610c5dd3edc331588a56af9098e7e40217ae51d2ea46144fca6df98184df6db0da418348284ce282e8628a689124b9d867c025c9a08549153982cda3a4a30d15725351d4c3c1da0e0ee1a27e105662d3005942fe79fcc7e356829137ec9457ea41d92b76347f70d73631600e37003570f75bb4b08375c482e85ad31755884586afca571e9cb6fb1c1165b65744184af20c1e3a20fb7d78dfd60f5c0efc96015d931aa90cdc3fd9b7d6836277db8b2b9f38d0e14e4cca4b2991f43591213f665a99dd0982843be73f8a8451a051194c3209991be0d85d71c507b9b2867d47df4d42bc69ba618404f41f5ea5572fa82455d0d28acf5784216acbe510e9f9deaf5eeadb5b2a73afa02497d9c6d026d85ad0152a98db1b47882086303d5237d75814d9f606e782bc79c5045cf121f1cb2c7fde513c633babe3b764c22bd1a13186034fb2d5bce2304b7100394eb02f40fa74325df9185acd66dac0ba441a21629037870b00547b5e6e63938e3e519c771293d2dd07688f545ffa008568c03538f628b4440bf1c773c64ee936c69fa68188cd44a16660046e9be5f87da45252f1beb694797984be54f049ecea6acd0e27d752a72b4b407beed62776ad06e09da22d8151138c02a628a74e1f6969ac36a13c0ca61ad1abfdc87b60e88842ff9f8690987dc07833e87fc7d45eb7ec303b5d0441f173e4e8cfbfc553f0fc8a30faea80ac08b911537f963250d3964244f2285f3901a5f5fde34774593998a69219ed4a84e8ae20e96d4fd1b83ec78d8679e96342407afcaa682cb7fbb19bdc74b15ba5b583a4ecb0abcea9f19ea7da650d4f39d7802e828278acc756380b31880d6a461e050911f9240ce830881210339bc56db7fffc34b7c8d047ab5725361236c4495bd564cce051aaf9364e7950e12517ed93c9f9d41f1feb6482980c72b7b0aae984d9934999847cfe3540d31de804dccfc9b29ed5bdd1f23e3c5ed11390ae8a4a43c78afea9e1ced2bb4f6cf3f6aa2b4e3baa09eea59ae685c0053d6b5b647f8e21364700fed39b59dff7a072bdf1706d7c06175bb2b6be9e16cb340f7dc9cc3875ac3e8838a631e27ad0bd102a18040fd900001e5c3db876e08d8415c487944e5a4107b826cf987f0e9efa16ae7ce9d077343ff4070212e2c9ec09c8ac13ce268165d4faabb8bbd87b24e058a47edcd221dc783623c3ce4c0907ac8bb59b878b6df9a3678b62de24fb7f0a9f519dc8a35bd6153cb843817420a5d4f3b350b8267d04142fc7dd0ea61c1031aa2f803b40fe80e7191eb41d24161ed496eb587ab7bb080f20cdf5d6bb3675bc343881e62f8d07d29787c0f13d9bc85aa5b03888b040f3eaee72b4fafc9c68305972748a7a78ba754a3ff20b41052407988d72c983c1b27f783ee202e523c4971518c3c0ad62cfe3c0e27b920ece02c0fb3ce278a87da9a85c153e5443fbcd883597f8f8ab6f7c1f207d40f57047101e5e9db220302141c1e219d8a178f90358bba2705ee22a2873a1d99b81ea9b414f71e6c4b81381c84ca170f5cc36028e1f473dd9fb553f710969a05cf992605880ba30d15d2026fdc180c0f69360b801f76cf2ea876397c78604514721e05c07dda37a2ae84e06a3785d14375621e8885f03db4c2a5a854441554d312a04418d49b0d0f3e153cdedaab0f2f105c081d844a85b82078be377f85b8f3dda369f887d4f95874b3431c55a2e7049acf48cfd3d6fd611b6211020571c267850f9b0bc45f1f0b6f3be41edcef3d674d16a0dec7b41ba7102ba07aa8e77c323c5adbe23fa8d879ceb6287c1a9f026ee95b233d8e5b701ea460f7606be81ee07c100bc4c5ac270f4e858e0755cd62d793587791f2d0bd93e2e0a1d2d6180214e23df268165ccfa8389f3b4f649b059ae7eee20871a1c0238f63dcc593c76513a27b5c4fb2bb3eb84060d6830a9f879aa687588640411420101ac48a9767b4ce67be2759f3f54145ab2746030621be011a3ba0c2ade12147b17cee534f871a8de9a3523b8628404041b841e842e8208e0a3185a2e7eb5c40b821221782367a1e73fbc28345adc7ebbc40bc3c7020f41029104884302bda533dcd42c3a37539103b084b435c1078f6e354bc7a86a759303cbb7517713c48381557cf96348b340f864e0a089e0e97ee830a160f0ccd68883cf19e642d6b0f1635cfa77b8570412407c44f9de7ec1440943eb66469b1a9bdf9c36313609bd7f8100ccf21a98bfb45778d4c13306e9b577a582f5a2a99a40e481ba90597f49159128f368fbf2e7c50d56f4845952a913075c4d65fc6ec26f1acb2fac44956333ab1883121955b6a09878657bf9b47de9baa8aac0b644a9e3c8702ebb6957cde170af6ddfb6eb7a08e4b823d727077ea78560d7b0f292e3da6560871fa830ad11e1eed992020ccf14434cb87b03e58e8dcff92882fa67be1d63f8fb3eb3eb04e73dd67f1391dff14bcd92c323d5af71c889f7b0fb32b82a8f710501017fff66c34fc83e81f2cd03c55670421d603fe21566c7930eed3204281f774a959d07a864e0484cf47ed743fc4a2c1273d92c80194d202cad8a1615f400ec29a0ebadce5abc1c2162cf391c8ceef966dc54cfe9a87a6e7f894fc7700cabf9a7fa97f2651d245a1ed5fe7af98f0b1f9f192828b7fc2e284dd8b194637a37bc050809657214078939ad84bdc18741466bfad6db9f796524a29a594019505c5053f06385bec378e7db6e6bafca20b4ea316986f5625d2ce2a93ca6cd2fba3b19c4396755c3ddfbfb6be46f0c538b8c1e94006962f7d7ade407ad079c55456c7a2ccf2f7af12176ca5a03a755debbdf7deda719bd69bde4974b535c4474663cca236ceb9e71ec518fbaad6eae5bc71a95ddd365de9c4195b1c167412d642c1771d3bce5733d822f3cd8ff5bafb63d988fed6c6eeed9ee76570db7256b9f4b64db53defbbbb0dd66d9e70bd4fd4d61177049452caf33226696c3ec6f2b1bdd6d26aadad96521abeefe5e8c3f4d565ec8904123f532d147cde3ae293b55ee7e0258e0cdd2f0d72efbd97d24d2935e1f3fd6d974f37dd74fbdc74ef4df7bd346ce7fc7a520655a954aaec2a95675fb9def9ed1cb75279db03797e771c28c61ecfa24cb1486991bad2022d2faf4c75793b85e5250c5fa94dc82eab8b393f1a9bd3032d6f58535d8e706fd59286affafc48d049fa0d51a60b76fab14010680cc704469873ceecdde69536e06e5a6f3ad42d1dbe4b63c3b785a2ff65bd5a3a707023a306855143af4f9fc264c2acacebd092fababc790d10280c8c3d6f34e473de6d39875b7b076e9e33083c8ff3b6ddbbddbb75f8c44fc370ecb01a2cadacbb2e6126a801c2a6f596630347d0d2250b965d85e6d4d4252d1915e5a0d94fcf4e093946c03181127ca2c472aff6768eeb77a3415febb5d6ce79e7b45145b3e929161c5ba22808391bb73537a7d699e1081b54f2bc82d57368afd6593b1cd505d55ad7aa6bf8511773e7e0e6d460adb376f9268eba410d9a333d476b9dbd82e24efe1c34467d041c3446a5d7985715d250fc48b02009f6716c899a29d3dd32587e6e79798589da77b4e5438e17083568cc897a65fa8c8ee66ce687c6a8cc8412748e0b4c00078dd1eadc03c4ea98d21caf5f000f9f8863039f7019d4d66a55aaeb5665c2abb655a97cefbd555446cdd0250ed480c6a8eaaa6a10d586e2086f954e7805ed0eaa9eb5ab5a6fbdf57a8e979773eb475dd4fd52a94251bf0ab4dbbb71256d71f9aacba8210939d573ae771564bd684c6fd7cbe96a68c89f61cdca75acfbcaf3ceecf9bdf25c7ad7dbc4dd814a27dc82d5cbd97034a01b9c0817405d502d83049fa86bada9a195de8d0674167c8122d4131ed8562d203e29a794d2efdcb6b96996d6534abd4d97d8cb9933b457662d379f33eba9a79c726acff17a49a9d6a1a654674da9de24d8eaf289faa5beb9939f94ad315f07342683c6ae069b5e31b6b9e8393548b0df9ae1db240e0eeb69b2678e031c0d7c6edf7969497dd6bdd32006e6b7b87cd7c59d17b3cb8957aef32a67a7d73db0b5c477bd9356cbfdf75e7f713cdd6ab5721af25761cde73a2bcfbe0ab37fbe39cfefa8fc03579e0ae4796fdbe738ec5aebbba7458209a395c62d203e2cc51dcff17a4c252861ecab3f4031783f7b21e0c7184f3cf174ec132433bd1962eff20eb1df592b8a52ea432beab575794e86a7d4f88993e8abb7bc7c380c59c02f3aa3b37c4250d04f6fea9c75ce39671c35259539735a29a594d9aff4acf30efa5de5a567e9d5cb718983c66ad40e34c089d9bc686cc67cea955ebd7939257c9e39e72977de4119cbea760be28b17a62b2888ba02c6e8ca973063a05a3d601e8e649e077e32ed79e10ed22ba34e26c327aeea6b95f7b66d9ee7390df99ee7d7f3ebde7595e39def54deee78be03a90e8f2c11da832faf086144e5d44a9d6350e61e74f4290f177ab39c0be48beaee044e26eaa2fa96446346b3a8ca275eb0e9057a862fa4d5209a56139fa89f54a794f582c56ec4edb9e91e28bee6af7c821f4843fee7d4ab51ab7f61f54f855d85dd797e0576be55afef369fa08cca6d61c61f0ba7f2f0d1b498f8c49818fbcbb29d5b4ac3ce419577d7afca5720d65aefbd7758e3b9cef6ecdef6ec3b9434b6aff33c05c5fd74c7033b2ec7a6a08caab2d405758e56249a56998f7eacd7cc51da3ec1f9d6721ce734baebdd75aeeebce672e5790de6d89f032f5fdea024ece8c8d577e8c8bfaf77e37a9d557b2158a7ddb52e5f4caf56b2e3d574eb7af255d7b9ee92f24d196373db6190f30dd4b17aecd373a8ed1473e4e5abd72c557e3a76a697cf23f52c5e8e469e7e677ef5e9da3b3df1e4bc9c396706b76b2975dedcbae73bf637c69d97833196f285e719e430ecb3d69e6b6fc6f4ca6dd6c33ba77611dfc08eb1581d679d29ceebd9981857e7c9996e67dcdcb89e7c3a563fe50bd72b90f9ce459edfc2bcfc2e8520222f595e3e5195e77c4bc1e8bb1b0a435479f76d960aec3870bbd7795bc25e056e5eceb68978f53bec6fdfb17f5fdbe675ef6a87e2e69e6f2af740adbd1b9c7721377fa56790a0e3028f3b57cd895d85e70daf73afa39dabba8e7652bed8de71607615a85de579a1e4dc7a3736efbce340dd8572c3d786373426b92022615e3ecfcb1798babc73d5ddf0fc0ce9bca15287facc5647c400cfbbce74ea34bc21a29331bc7cf8722442e577d8d7b17aebd6b77927d6be4dc7a0f64d8712f6371406e6e9ec9cb3f620b2f4315e8e43c2bc112723477f73138384e9327bc652c6d8b13f5d746de09b2fab63bba59437f285a43a0811e2af4b1ad9ed046799c7a038c519b30cb5217d3a0d19d6ecb09ccfb0f2bcf542b8d86bb8a3ce1a1ddac83a58a75214300ed2e5adcb8d52ebd5a8384e45abf701f61d7ab322d155afe08c9df9d95d4b3eea798897cfce09c1f2d6edf60137ed8c1acf7758edae63f532d4316f70e18e49bd10accb70470d674cade907b07d43633b1346c1747225c3129d5f650cf992ca18778af52a44f6d6ab8e9631aed7d5d31bd56da516dc71e78cd255211e7b96a1cb5f9f58bebaf581ca53df8aba95761a1be7353ae64bdf617fba8e15f642c09eab0cc55a57e275126c7c8f01ea9be7cda97c215fd0cfd777e6e635d4b13a9b065e82e2e67273eadd068a539caf3d1dabc780942fc4ea8550436b77cc1df36b72a88343ab437d67fed5315f73d33ae9ace72062aceb71267bedd8ee5aabc4c1f91ee75bfc0c35a071d1f0e1dc74a9f7da201ee0abdb9baff3abbd32049a6ba96783863be60c75b06397d7b391430cee98154f8c4327290c1dd3e5f489d6f51864c7fc1aea086cd1c10ef1f0ab97e39014122d8c434ca3100d2e2423e773bfcb82a12a7a1c7af2711d49f172145ae1f1cb5188688ccbc8a8c80a882880021123584196440bc0ac20a887fa720cea3202a132fec8e22a22c5a30105eb0ef31bd4020a1f155e0092c3931f3d7e10c2837b04111b6404280868890d66468c0984b06c23101d845c44eeb031088757bd1c83682f3a4e8783ee664d0508e410a4e664fc410535a8200522f6a9db6a02222e21174b6078e243440bb63831820a37ca3c20640452f2fbe508a4c2285b1a816478b9846c112ea0ea7a042afad708346b0263ac4377bd3e847cd2ad4bd7d0675dfa66e94dc6d06edd9331b2678c5d015f935dbe0e768acbbcf45870f91879681979d446a09eb147cdf583560784c1e9f13ae4e0ea212ba56e3da449e826a40bf9e2ea69fca840ba908f5d3f9feba5057ebab4daf5d389cbc775c2277e7407dcfaf26587c5e8a5db977376adf5361f9691b49a58b1f98342f140290dc2160beb4587e8100da24374964198c3e69cb018944f94b4e9326cf89a3ee9a4202cea1aa19b962a330eaff701f753faa665da8dcbd685c2985e41134aa0314aed52387ba27ce25ca24b53266d97afe0ab09dd62e213bd0490e6064aa5a4f2023b32c6f41b114058ebe91327d4f4523bf992e1a6b128235a4fc61fa817c0cbd1c7cad3d8cd7e654f907d8c85b02f6fc8ad37e4cde49c472fea26a64f9c5193ca9c3eb1482c93caace234263565d1a0990d8d49ef817a57cfcbd1a7cacb2fdf75f9a26f206bd7593028ad2263f269f8d42063a0914fd0cb1105326fc3cb11052a746a56994d62648c29e6e5675f36dc22c8185304f9a2ee5a6db5b5561912c91893e8659d75d49738909f8c6aab7c51d2883881d6ad689d5e4b88a497de3ac137bd935131b34663738ac6669e455ec64f7bcbcb37dbe11382f64889540c0d436b13cc3767512c2d978b42d12e348ace17757aea2a9a68ec7a34e6df249b6b6353e9b4d1aa1a1b2f573fe79c3ae3bbe98ced105b7354ab7d5fabe1ae569baad56ab5dac57aaf58b12b38f35a6bad354d7f95c39baed5a66ab55aad46a33dd168341a4d6fddbea082277edbb66ddbbc68a9a7b3eced5a9baad56a5cadb6d1684f341a8d76b7b79a4101a2f81a8de3388ee370e84f7c6dbd6b6daab66bb556abd19e689b5669341ad84545494545454545cd9cd8ad170d06f708078af5619e6eba56abd56ab4271a8d46c3333b9bcdec2c2a4a2a2a2a2a2aaaa9c9a9a9a9a9a9c9b55f43be178d0d0b0f5b6c1c1c1c1c9c188ea85ad46c369bcd68331a8d46a3d528a5b336c39ad6dff77a6d7a646331f7d78bd29557db749366eed1778f56f748758f3c2e6a9baad56ab5bbd519cd3ead2c4d65699ea5554bbbb9d194666796c8ce6c602edee4598ba230b0941755a3b8a82d4a53bc9be651e7c4b9b8b7a6a626176fbaf04291606b4ffda1a1b837cb06d673f3e285f266787fc30b4563d4c74fc43d5098c5c599c5a6f21e8a0241488848c2a90ef391439804f198c35c080f20c7b14a38fd58dfeb637d9f9529eba124044d80080144982c97081166c2e8084942a9a0061584d060e4089621419ac08024881844f081a23142806a92234349a03819c6392779fa9c7d3eaf5a8aa030937c88f989e242a40927772684e43aa2870b78081912907944856cb3880f2b0208808ae8000a98442972837891612022408801420a0e3e2d0c0dfd20b1f0011f40f840035107522094a404410c21a5862b4066089225c13d92943065c9d21312fc60e508c89ccdd0848712b324c6250ff08f21ba4711631329212e438c5c1f1eb057643c286c39fa213b81c90e526414a94a8f8b6573cc9c65e9f9e125c90f30290021b132040490a41f84cc232af331a58ee60a53407ae041c49324c6dc1e48822a122641603530d154a0d24344131e4a50243c80b0bd3f4994b0474bc872121660a422286cc918fbc7c3636739f141aa39470cf5341103f5a5caf50152876442b6540984921382b8502d4f0b2fa8208821424680822e178526425480249939671eb987181f0a8404eb71248948821252f493744fc0014802445b587074a586a916dc9e9c0408215ca62d8354f4336bb6b4e0042d6431e2c70eb60924314247b5077a9338308484840a9029c184200426f82202a220424c20191dd9243f62929c50bff8d025a1168e404529e269884c121f44485428091eb24f66658694188250c24a96142c91b4822047488ee8a173ce328f39ccb920ec12524047588644c720f9f87caf8ff57d3e3f1831348352830f30789095f8ecdf109f8f6a3ebeeff3ba03121142492616f3180999c7475f7c5260998f0b5843b979661de65ba0dcf0c4e485224045d824ae12158911690b90e7f0669c73ce39e79c5f477c396fd761ee32eb300f1de33cf479443284ec55b3f66e3774b6b34e2e10fdbcf4ec82969f2e5dc85beed091df46be905bc8727560be5318d46154b401f39d8e2b2866c7fb467639e504eb8ef5fbd66f87bd1ba195129cdff50962d8dff7bc10aab3280ce995e2278ef38de37c9b9aa265995a5e3acda6f3dd3ea836b6d0d66cbe67d07fea7d604367fd83f64cc3397f0e696ef864f6796d769d431bd6e49c4cfffe705d9fe0bad672448bd409aae79fcfaeb3ebeaf73a468137bcb1506c284ed86f66a130ea4b6f793326edb3b6dae98919ada3fdfacce7d9d0ba86e3c219f4b377f465d42c7efb05c3e9a08608387294f033335a9a4eaeebed23527bd3af2da9eb68cf2eb230de338bf7c11c5b20e2f4a7b30d1c5a3b65bd2adaaa288c919797a3510f0b5afe823a4cc865ca94997a4a372069d25317797e3a0b4f4f7db2e0f4d43be9d10fa44fd7919ffa8e8efc92c6acdf985eafffbc819dd2cbc343a9f439c724bdfc159c3a8d3747e50bed17dc3406fb0a727ec14d06756bb75ce7cb17d5afcf0b8adbcbab6b68ab584570740305a33614a7b3e056bb39b157306b9f200eecb1eee025a684ba010e5ce50beaa26b4af50e9e8a381787c668ec463e8e098c40fd023246751943feb5d7ce68e824c5775a3d1a99bd1c8b2c8d2990794d611411bdbf1c8d4c7d6777f5eebe5d6680fc0b8276f1c6c0fb4eea565f877d8d0dfad4775440e479193404ec3414b70e76eb2d602f61d50e75d6b1b41bec2f282d9873285e71cf10ed0c6a1d7bb61a7b96b0182c952215646ffdaab01453352c4f5aa09e9e68b368261d4da24934675288a9af6e6b564a0a733003d7ebd198d8e7e3506a70e3b88edb9beb3c956aa5da1fb79a397102c589cde250a468b55cadfd52c1a95051e954e15241435343b36d56702b56543a57d4ac60c1e20216db410e042b9da086b568914106db820088d958acd2190bb77b332c88c187c1b620acc360b7f068cccfa0cb20834a6706daba09d65b68558d8dc7a18881c74ea1de86e274e933476d22c0934ed2a0110a19f972844286ae20a3183d8942abb55a1bc5cb8e12c68b524668b58d7c5b92198ee904860185aa0aab03c1d8b405c5cbb1c9d544e625535184c562b152a490c254b3abd8a8b0acd81394c2658252be5c2065cab91e167bc58a152b58b0d87e84ad240c52c400dbf3851c5abcf0438b0d83c1601e0db0450b2fa7d2bc40f4420d001e8fd86a888b0d2900295e8e539a08604f704a0d2a5e8e5342f07a394e919a4266003346ba172d8a91100044794224832834a016268812250c110ca294190a857e8046823c898f0b987eb080a1c78a2a4336200052b38588a66908222a9ac804bda4c8865c456cebadb5d63e7df6e528654995201616145c6627a47c199a913215f4f5fc58fdf0a14a2ae2c590c2ce6148f7c20f41b8176a296c5378084d1912c45a6b6d0da720f9c0539aa470a7d41064a78440853a45aa884e2123349d7cc8be8fe554e4efcbd149c88b9f03601ca1848122f57284a2050a969723142a23142950949676b27c5088f8e85e8e508c9e90811234a110594a12438f7befbd639238d149a6dc1b846ada614f988e6cf982f8ba271f1fd4d7f33d39fa49c2a2999c9892f69c93522628a6276bedbd4e987254ce596b26314c60388eebbaf1c9f8e4c9d1f645ee70140565054d50606cf0c0dea3b7492c04f95820f8c27c4e6a4047d824828aba000ce027856173bedee1eb1d9694d296aa4e70c77e7a34687edb69e7a6305cbca4c0d7b0d2aad4492a65cf17a11b9cf830e7a4d4491527445827357ba4a321ebc8443432f140820417b058615343a3e2e56aa5c847a48fe0c34dc84cd71dbcfc2926b380b0a9d758808c0ea4b3aabc68630373c2f4a20694078a1333df4ae5ed8edbf4f81434e488223e57884f52904fd2099d75bb44122680eef5a9e9d10997e75e8e4eb2bce838db50b5d5d5c427e66342e423a7e0e38e28f1f4eaf181f978f8ca7c51df6d92836de2d2e193fab87ca2dff02d6d80873b4cbf1c976278d171aa93add62e5942b6f90c692140b948868f805c273e6c75b2d65a6b5d427cae1e3ea5304758a51a10522b8102b259253d00d1ae213e590f3c7489802ceb63a147f5af8e4b9064f425fb92f8eccccb71490afe871edd2649d8d16f9dbee84440d7d92d658c6a4125efe581074a6900ed1ddede4c07e2cc0150578172ba1013f014c67441bd003336634a1c9e3a0d0d4d964f47bbbb8883c1d7210766dfecf6c01e2f0f9e546f86fd5b55d733e041a7953cdf4015b7efea3568e50b95ea75cef58e4a39a9555dee37c8a22e6c7ef372bc7ba56755a18afb0a7abf415d5d6ca07c95acb5a3d5aab04fdf15ecde823bf4dfd0ae74f6f9f9c44b18e5a86eea249d7309251f214a454a474e949c72ce5a2bcdc0711cd76d252f4a5abc3dc151298c50f73a322a2131676654d62a81bc4c23d56aa56989c9bfc6a50de42fdd8b850e4a490f4628f972b10c0ffd6bcf4cc4c2b80489abd24b2197c8f04ba28c4b98680a63dbb68deb9674c920e85e2a4ca7d62e6959f24066f2d3f34bb517f592d46642f4af9109ed5756b0d2c8e488b4d6de0bf59473ce5ad791491393a8dda4a8128d4c8cf0948879713781616cb2b4f54f1d52be602dc1f2e2fe71a988b1c90f9331ffb1523491e15f34363dcff354aa51e9696c7285ce58e95e46544479fd4c7161d980150ebc803ae0b24106d797195efc3c480d2ffa0b858fbe1c95d860e5c76e2f4725e3cf11940b522aa0c8314e1cd8725444541198f90349178d24cac7bd16890e7fefaba6e4c87b2f4725330ca5856e20a5c24c9179e9148ac248d24cd4a9ca134e96974e8fa6e80638c8d01f1a4489a8518dc2d89ee8067336cb32d332f332939a499fb44933a2cd24da64a239d1aabcd461be29324138280cec5e5ccb2b4b072f6f1c6643e911ce0614aaba98b4ceeca5e2f444a3e294b3de681c15271a935e4eb7f7dedbab53b5d5376367662a9d33444947a22d22fabe9913288a2cd1265a2c4faf212850b09eac16a896eb4e4db5bdf6de4ae7ed52ec145d4bbc3f4fddd5f3da54b4629eba0a3b456369682a9d34ad9c13a854ae1745ad64342400001316000020100a090442c15016874128ac0714000b6f86466848301b8623812488711004611c85180308400618038831ca40a4361e528cfd6aa99fd217454345f7a61077befa60686f34bc82dc35d6fae1d9ec30b1f14b31487f5631acc598eca70b5cbc10c780823572d193626c28c7c3e0fcf342e09daee2e725d75ad7cdae55c244e82c445de77d63d380f3e7c2a26f28970441db7a13cd120431250422705bf05a0715649903100aef42718e24eda45d9fe8c7457e49bf59068ad9238968a65dae2d0d09fc8be83691fe800ba8cd5b039f27dffe0ba24abeba8392675c33a1c65b16a667b33d0d69fd501dec0bb5466fa89cdf7fc850f607de5686c035008fde30211cb9727fc151407cf3ab4db14f47f127bd503834f6308e56c58a6cca83752d7e094a4ae4bc49e263bc58f01283149b77b0f351e4ee3d2106fbadf55ce75cda0226e711bc654b1ebad70d5342d27276350c2ad03d7ddc82913dcd6843c55f88263e5e3667517fedb651f58e407179e9bc3b875e01e9cb610c9ea2b1666223d4890424408da0a30af10f2a2f1308a50bcc0039b1280424b9b171d027d9144f245832cc8f5986f72d9e6ea09967ffb0c54bec737dbf6abc60adde06f11cdfaca3e714293c7a0e9363a21f8aab379a1ca9d4a7beef726529be6cfc25b35560416c783dcf993f8b07514a258989f9d5a6769baba160acd7bb8cd178f7f6d7aac69d54413b09d4eea92460d6319b4a3c0ecb81ccb507a22521739c7ed5ea7293c9300e73b69eaa7918df6ee7989e0ece346483013ade2e630a32ed15e29cefd88522019044301a1793a71ed8e6462258d22ab668fe75a3a909e8acd9c441b5f0c4cf8b1e784fc3384186b3aeb21f0d0ad2b368aac702008d51c41088b20a3bc65f6c8876a76ff20e5c6024e2fb83715f2d3c48a7c8346d2a83266b6df812ae9ec3e6bcc36289d63e95b6c1e60091085655368efb9848909af06c4abf8f11f1eddd98b0ed4a666dca762a0fec362b056153b33ee3e9f46e4871f724b336dd66680ed06d8f6879a2d60e0788a9afa83679eac94c226d4f9406fad59f714295d5400f3a8782d19cc839c4df1edb48a30490558e6d8c9403bc2907b02bd9dd18f1cb9381c9db97c05ab41b533ee886530fc2a8347431ca3e3db3e102061ee3e593c1952e175151fea04e15edefc85863e1713149ec1e758b2217f8469b320853c9de258680b17ca4844a0ee9cc66cac924f92a5b8ce6f1169aefb953bbd59c3759c6e60227477acbe4647134346f4c78142a3e15da2efa91b20aa8c0e913baa47d38d0fa0c98a864969e66996eb9841bb3595621b0ac8c4a472af43c14dec4db320810bdaf947cfe5cc4fd491b9c45b89b8192c1d887299e919c89b4f2509861d806b9f804a5543436af5567eda826b1b11035012018a8827b6fb8c15ef3250d31711dacb5805b054e63a3e68e603b5bc5f7cb97783f31c6768e2371953a165790f1ff25f80c7c6f589544b6f23f1d2887ef73dc5a8656caf88a6200ddaee42d6ac640e4147a5dd9eccc8ecf2105c23f948477c04d4677c97d6ac40237ac6da1e3defc2b9a64c1d19a988bb5d88ac2bdb07c82a4313912d0b4f6c83b407d619566b4812cd34f814f837fb3229c2afc66140f1da48251a6eb51c55bac53f6d94b45cd7e4d6492da6708ddb084591e2fc670d8c7839e8d487d98bf4f39fcb45804d44f15f5a125891f8e02a2e021443c49c56e988a2c54f151d4a9bfae5ab105905a54a86cc182a008a3b18b4b19e80e52b46cc7606ead51862b2abe9e54afffa90d4101b4e4f859004f1cdd810844d58b9c7429e6ff35850251b0b0708f93cd3d7d83ff8b02765cd8c001f1aad94f13707d67c145f8026143ba82f82f533af7054d78a273e970e4fb2772b547b1e94a77978f26cc11b4b594549d611fa5c27791af59f39c9a12d934c5d903df800cfda854568058fdc62765c90b3d500a7039d8672342acd5d86affb1861243f118fda941a84a960fe82fb32e29badb0f64cbbb5e76b85d2f17e2424a0787cb28fc3ae9bdf7dbecb697c935fb96f1636dad9039a1de4ae8e3a7653b7b6adb8cfbd708f777f6e756a8af879d7ae293a88f531d0126c22279cb8ba23de1349eaa79958ecab16d929aa9700cf78be22785e8a2613a6da0e862b10ff20979996033a63e38a0284637b34528db29f6be407159446b1a3b3a084ad09e185452e3157dbc66cc13ad96c8289384aa0f578cf58c4ad9c139c11c351b4d12606c3fdc17363c3dc655433188f8e58cc4edce22d567de5ecd22e8d1e0a4e7264444d4406b5484a82424f5d138db9463dd01b5195d5c441709a791a2476b159f5de40b35d2103434217df48e794a4109862060c0679921de266e3f9af8d1a5b5929bedf0cc971db7ef117390564b349259c2159219672a61cd6dd816e3af5ff44a2468dd4e18d7d3351dc1731e2050a75d1c7493a89625d1c3fe1af7d3f9147bdd144c5739c6ec5b861c9199ff7ae82ae53a932945fa5364c40ebd4489378fddbc104729a3df581ca1700b2fd913d2bbd64088172c29399101777302434cfe4c314b5ae00461a4488da8c2027e3b4d71161f10b07c36d5e1c8f7a0f4a27acf1b6ebd29bf7682883eb6092a117193111554cbacde73b0d81d19ab433f5dd17ce5332f7b2316444b4bf8b3bfa75476588d8fda373c0bbf5e68bf047b3d43040ff7f5842c3ce4a7d281c4cd7f45845d00b2976d6ca5fcf3b9d9f541f64a4365310c6f8a2f580c3977b31e7d8659872227644f488ca212331bf9b1d5686fc83e4221d7b8c7a7591086a72cef04e74cd515580dc87532bc9fcc0266244a90ae73a3528fdb674e15843598fa0c322d25a9d3361960895b3a93a5d177c684cae51e956f3293e5281aba63b9da126d86d45163c6b4f365d14f6e876a22cc1c24291ea628e7e32d8d0c4a1c147426fac0b58642666821031c5964f93836ce75f3f8b56d0095186d60361a24aecf301bdd8589d1c2e739e81451bbc3524d2b6e0fc4e7dff0085a4b0b6ef533e6876d8dc62e310670ae02b598d7b703cb27851dc9802109fe3838c1b84f709374e76851957b458c12c318abfc1e53451a21c225eb875d9468b8745f919358260b55e9c3e161a4da3a54359f97afedbc07a1304f8bf16c1e0168bafa08d377c66489cff478b6d790115931ef806efb0522273b10f69a02941a30098c519385a83501005c0448a35b44f4607d9256780c53e7b5adf1e0fd5b54fea9560f560ad7d57da45581ceeac7fbb65238436a343e32fcb4a186fee51d47536e5d1380873f73f24db7b08689fa3207902b6e0b916375850b5a1b080832d5502361232ec4f8b33571ae38055e037a570896f7c3a5d6abfc81d3bb0ec83501074500c36b16893f5773c0d82834c1a8adc20848717c8ba6848cdf197ed3636a93998c9c143ead009ed26601e025607731ddfb5d085fd242d899838bfa933321606441a9007e169d3bf58fa8bef533329b5679ca7fb6bfbd9faf87dd1ea471a2d062b60256dc027b099c45d0289cc1d64fa3850cd7355e1570c45ff873ff4f3dad21131918b61671325db0fef012a41e6162acf9281e624424f176dc93376e0c81d64e788aaa3e0c86739d8c187109f43a1b285e54cf091359c28d00fb8d5e9a81134037a34fbaa153a4d51164f3746e57be5607f25ed535537912ded33dca38409e8f91364148bf604b7b503faf108ec2056f3918e8d877ffe35897cf23a0c556669ab8a78b1ab2852bfa9f458ba9a0fc9cff4b0dc952cf394b22391e4b9f4c857c9bafe93c50c17fb78d1f188e5df0609cdf4e20d361a8462a766e25879fe61e100ef38a21bcdbf63dc83a5225abc20256f61b6eb7d2cbad34349447548387d8d563676e579b02049394f586f4f108ef3b7eba042b849e894c8a0405d6e017f74963aaf05239986a9f307a30c1b0946c5a12b60014bbd1fcf28e6919454095cb09fcf17adadc0c649af2dbcac6eff8b4a6df734ee4687d63fc7e2f0cf0b99d3537dbe31d72b7071c00c42fad710dd84a7d8c69855e33f27b4803c547db3f66db22eef6e284e999bbd4c932769de9fa964f007ca023cebd02883be5a1540b64df4eb07ae38b548916a966065aac5b0f7637fbc6dba2f623a2ba8a7629c170d7f2fc1196b64f4a35136b368aef403433970ab8a08000f0dbeb097cf94a1ca389a8b4615bd80489932adadf4210322c92278b517980acf471192089713a75b3591d16bc921dde14a7cc9d554b3ae727ae8b913d9f63ab349198ef7fb071be83686ad5523b5ca710c97579713a8fd5b0362b451bb74610b99df05140b89cded80bd3d4799acd535b55f6f35084d9130bc7b9ba4917a64941f448bacc635b4e837b7de109349cff37bd8dfa6691e91f45f7552a5dba81795f7e53b0311295e80cbc7419a5f3a175b2fd3a3191625e5755ef566f9600c97b3e54eb0823bd995849c83c2213a4dcae57152fb516177bd4c9a5caa5e06575a99847b567b5c6a2604c1f0ba4e8a5c9ad844929830a2a24995664761690487c0d9956fc1c694496b776a616520cad36f001644a58ec93a00ba849aed2cc5ac56377811f5e09a06ea3c8518030c3bf9abfb023158dc7f895ddfe8cbbb5ce258eea886bcfcc0689276435f72780b346e2ff441e3b7f3743cf1e4acd224c40942d95629430c6a952ca67753830c7ab7c5a15884e8527abb815e17680919fb4295ec8579cce9df8dc9e41b8be371e4edd4256d258df6d80f2f14b003f434aee60053e4f06dbc3eaaec9089e4726f1005bff4a87e0e4efd4a322379d052bce25ddcaf90750015fe143acd8cf94f721f4c685d3c20b50e5a0ccea373e236204c841a4af0536a9c3b10368a28125dc518d5226602b8f05ce437ff4680e823c5fe03c7c3daf77addda9a4dedc701c58fc2eca1ec77e186fdef9de97d50f6cb349c68f9f87665eae01485309902a1967f2089acaa89283dfecf26f9432a9e8f1e3bbb022221834d57f5714fb956eb03a47f58cfd31f3c4820e7cde63e692ae8f419f059742f74165fbdf800afa395a75379257353ff41bb630d70d6a3576053351948bef81f64235f38e1b7edc96d7ba91c938775720de14664a1754460f3bcc8fb0e5e140e950c1ba078f7f8e72be966c57d0b070c605cf9218dc90c79e39ed8dc16f3a7a7c69c9a2c3163bd3ef2f7d048e35276038fb0afce75073c453caa5fc3794833efbe7de924f2116eb8c207bb7752003e947238fda57367444916879a6edef33afc13262550a43fb9a51a6f1707f43ff60228144433e1d4bfdf5d8444b8c4aa307828a2ff033d55897b3e47ffaef0f65c2157742c56075e29c6e15c5859fb2d1b5cebc2bd060884d42a6e4da102829bea98ed27e56d2614b3b9dce02ccd2c8893fe47681e7f92f09f028b49807b26c158cb610a339dff3798333b93b2b7bb53ff90d61db4b4bf03f50bb1df8d660b0aa90d46d9a043224c072accc1375c174506dcacf5fc03857923372c951f83bbf1509d792fad96d2d184525021826ca0acadafc5879fcf7679c995cda1d3a3154453812a0861d5b2c070be138990940f4993bc8fab968bf136a3031a5b1f5a35dd553f90dd5d9f9a4f2c507a7abeba3ab42441f7946147779522b6e3bf47c2c94f1245078deefb207a6264486f9bc6906b21dc476bce7c5bbf37e91babdc380f9a093a5bbb2848de50fd820a391f5a6152ca9b8c7c919fc624c6b5f2c23460086a323630c1f72893f65f008a844b01129a2e45e7bbd99c4d62b6786a62fa0d1585a626129902e41b3ef8557de8e07b2d4dbbc640a5f0efb94af51e658fdbfd645694ed8d03a830b5a7c88138edcb41957bc5ee10380139742403733b8c6f8be5965abcdf806bdb53a9927bf6659857b7016587e4f3412505cdbc5aaf2b60348c4f0a545d2c02678ce58b0a20bf34e74df0a2afaa5c57616289f88bdbb75c1eaebdb5267ee4eaec414ea06170b1c21762c6b83cc7fce1ce580afe437ed525db2a1593ed404c5b981a526942ca0b4ee4557c4f9a66c2bbf7a9c30fa31123012731468c03f3f1cda5e23d0712951221dbbbc01fd20a3c5653480211c224d062951917088db08b5a453beb331ff08f583777fae24f1fc6ce58c1c840bcbd4e66a56bcd9672780a331be404d8abb6d83b4e745efde92677ea803b7fa8ddbf6c68dfede19b63896d47dd6184ba1f56cb0d44f4813f5877b862d870039a06019d80baa1ee00f0eb2e942e501be47f42a9914f0c169787aa4c0d44d55597f73fe0d7ae14bb121620909c72345213094169ae38fa11e940db1b3ba8c2ce3cb851536586161a6c96111a362e9a2154dd5a1714bc3ee3fcdd782fd879f60276f0906bf5b4e4744141191d3ac5d3ebe1b8484e5b00df14e8f0f995fa48bf027be83d4c35e3e78ee6d555763b71fe4ae88f8864b131acd1e3883e9807232e4a26a55c72e7f5ed20cc815dab9e63031c3438379d3d28a9684f0736d5aa2c8726e63ded177a1eb0cfbb9837db76d50c81b77f1fa9293955074d77e17ec5ca2b7df2b6c995fa0ea5e2b4f5bd34a43fb1739cc8c11cfbb33b002a4fdf3a25d1bdaafd000000790194ae75e466203a672e841482569d78d2df3eb72e24aa2404c01f12e2c8279de0b38c01cc1dd2d1d69d972e7d27cdd77a7326586b67e46903a0159ead99f16274f76a03ed10641149068e121c17e1d474f3d97de88bbaf236eb7f14026fdf7b4e0d76db10e7f9b83c1d201308c3c902aae0c456c672870eba6cbafc9be69aecb3d6e9b85d13ff12c3cdb1cd6544abf6da4d149b394c6a0a19194a5e7a4a8e7f24b4a163d1c7d876eef754dc00b728d104ebebdcfdd76e8e62927213b21298e920caf3d9f3e4da8802bddfe8873e005d35bb2929ee5c931e8ad1ab7073878687704d8a3f08bfb0dd5df3e38f5c34f2a47d7350d3b3f6610add3806749f0ec042304849dded8c306a0ab3b4fe2e7b3f8d3b94e7d730c5dd03ef658b311d20346e0f5372bdbdcf50366fcc0477a1135d586013a3d2842eb511ef5347747b53eb62231076508135b67544a9feaf719d2b9e2e0b249b378068bf61f74b6c884a108e61d8e07ad147a87f853d65201a2c63850748061b1ef62421d222c4e0293b66479032710de3ad1fb3a2e11a49540e1a6aa4ea299471dc13e614999c173c472c22ae0c94893b7cdd1678cd0a29696c707b2d7d3ae73c40cee4edf1921b08702b7106003e0c64ce8cbd960f09f5128b5ce62e3b534f8d8a9453942df0565aa5abccb91d5a96c829215a2b826575d27c47b78ab693e5694f0a1a270d03151a05ad018b9ddd7dc9da55515a35b43781bf91da97335d10b6138dae0a82414ea8f743daac762e86860194d2c5c3786847edc4d43af33f13add627f590d1353d1a2c1ec101c1eafaed9c7af5552d25a65009f28d08fca2ba103837bc320a95f69f4a1a06998467d334630165e0c2643ebefa6c4df12d333f48542816a9ac15fdf3eb6379808ce444a5a7bc69755a533341080e05ca91d98fdd31eca5c0e36b76630aa08045f51d77e160dae66372780d3750760e51aae3323f58bfedd190158deb458fa01c6b72e6456940c6a54acaf93f37b3871565dff2d1f1f62e5fccec1b04e8267da34a49c93acb13cbc63ac69f72e29a7f477cf2a24130c842c9febb3b65d5cf6bb36094a11a558bb927414e08108095bfc38a621c484d78d16d76b1106cc3ba865c1d10b3fdb35df729a4603bfd6c40aaf8c59f902f7ec4d8c07b21aab67513349bf671d318352b05d1cd449a09c78c72e35cd47338f1ad4e6f56e4418c523f09a171bcee26b6c85167e5d46f5e643b970308872ac3639df9de69e7810e57c733420731007b0527f27e514f7a3106e89e51bfdd8b725a59a4e359de40822f91f61f67eee372d75ab6d07949135dc29c5e3f7b9f242a3d1a97d29b7e4f009bc6b9529bc7037b6ac03a521a9ae4ed46a8b52f68f6dfe194f3ba92ba7b66faea43c762c2742c766ce44b9fc31c945c730dc03ceb02dd68fb1eb0d88db2e7d5ef6fe5941b5127713113d2a040feb5a2b32a8e0c6bce93bb9a1ea1faad901ddd2a2ac6d3f66ec930ef182ab712ad608e29b15b34c95e91b13e1e8ed19f5406b7a8fd87e7c3e6b6f48d8626951d9d8cc665cb806e2e39358191325d81bed88bcd84dd92e7fe26ad56861c7dcfa30db67c4985cf191bcbc016293252eb89407411d95c7dc7def42fb49a73198dc604c455dec21c0ef526030514bed1803e6e80afa091cfeb64e8be990d82f4524251a70a66ddf28ad1fef55b7e68ce01d3efcbca6e98798cc8ec49a6f0de06f11fd5c25d0a5ffd34af3d1f50df7ead54b97fde83a7c0e34627eb0877237214083eec694d49a3b625c00f498067d333630faef93ac2eb0a44d2e34070bda35a541890f1b2c8ee25fb856fca6997bdc8982539ab96f8b199581f3ba7352b9963930a1f1f6c37ad9582bf583fb6d2925b6a70ee5b7fa041ab6db75541fb8d863f0e06287804cb0120088de8d53af1d098ee84a96b291324af0b7733214c1a11839876bc625c703080a7de3bec592c297f1b3c988a2a63ed05ab2d2efc74508114e1143423f6ec146864e8f9d0e5afba68725e37c5b106ba7f7dd6245ff540ece8f5a8775af9373a1ce11411d956330f5fa5a4724169e1b66426bcea851e1d23018f4cbb0c908fa331d4b73d557749301f76f0d11076b17f71971c9449dbb5b6044046e5a749cb61d15350cae0b626e29c3e9ffc5d083045a87022daee95bfe538390f51d67c3c4a7150a0563605e58fdc798240fa7c280d6c400e6df0e93208bf79266c031deb71d87816691d76f1996d4b56dc5207cbddb361411abde05f125db8c2b56bc71038e286226b5e68c1a2b5c1a06a37e999b4cafbfc5003639d13cf72bebb876ce71ec92fccd36207610647a080e807ab730bc2036ea5204019341dfcf066995f0f4d0127bd11a19da4b0c810babc81784404ba9338fce1e9c9e5fca4d5bf5eb6e938b8bae8c938124a6b4246d29285eee02dbd5fee7b4fc1399a300c638a2174795d9f7ea8d987287b17020c68d599d13749b5321d0e618012d0dc6b1e1d56a03c345ccb48c384941b62288233e541fc70360b5c5bff33d3244eb747493b5a00867c098292ae5c1a86e0a55b4da41418ee43c41eca67cc1831af82dc858748c49148706b6de0899dc78dc6cfb4b88e3f588b356bb94a851508b0cabaaf8ed11e09c7cc193a15d46add879b945272e964cb17287c81d8068080c627dc16c91935790ce9391d5d78e16ea10adacfa4b8214fd23c2f4a0e91b8b5535b2ac83fa3ed6422e1a286d5b8cae20ae6745b27a7e5c9e3a46204dc863cd0a533d62ce2d6bd278308e844aebdc1a6215f90937ece0390827c886c68e0396a73d13ffab755337b393b9f60cee868bef37f650b796a6ab3167c42698ad0e5fc83e078e98fcf44081a64a425df752fec698c16f48da9f088828c2bfd6da7ce73301cff10b8b1d49ac79a9fca4fef59359af8327bf49fb188a199519ab842abebcf4699063eb428ba74771682735da1cbceaed76c6969fc8e8c7502d72fa8332fd903205b56c160b6a65a1dd1d120663d21512a627940a5bc75b492c65b1ac9c07900255fcd295f1321eeb40b3d8d2c337d79652bf8a9ac6eaaac7d1ca5c0c15d0900f87b8d317b854f94f228b6fdc1d1534cd1f5939bad4773dde95b1a41278687924224a6195d334909ef39e5e86a7d875740457074885e77b94e547e18ffefc9c71a3b1d9c08a1b8e74590c095b1ad9ca3a46b412079be044141085b86ec8030d8e7e317263d892d78e9d36e0f5a34c44bf30ad2895e426ba01c0b189ef0f933bdc2335f44e687cd47c3cfa3bec36e30dc44234796003a7619621ebcc6c07c318b75b5054558f80d123ac2c2a249b9daed5488db6337079e0fba030eff6ede67bd7db8174f57b6bd798ef38845f8e05601573e72499200515c251099477851bf33685afbac87d4718fb59f7e1d9fc88f8e8016b6afe846ee1bf39054fd27838a3a926e168b3879c6843012f4f678f97f14ac96b5a582ee9670f041975e39b96584a43710a4f3f44585e8a894fee9dcb116ed7af9690315742d7c85ac30454dbba90459646546b0935f5553eba66bc6ebbb49e1c924c524d1d378888aefec7024fc6ab170908e756099b861067ec3ade20fd2f8e7ecbc688028979b51f20312d51984d07b5014643d4db532c4ca850938466c144ac60e44ec6591a7f5d51220a29cba9e8966ac4fc7e23949516a78681b546a3adb91ce5e227539304c4016c992ca867d22dc22181c6a65df9019fd25f6b08751a0899c0de3f82d1a2172f71731476f716ae1dbd1b9b4c3cba18ce8698488fc2e8d640416b401ba6dd5c26dd75fba2dc767674d97848e24fe02464ab9b507caa37924741d369c00cbd4a1457e71c95da7a5b4f559871552242fbc8f895e84d5be0cc0aa2933e9e56b4047d2b4edb3f762ec10a0194632c6c1280fdc29cb1331cb663cabf871f647a055d4df32010f18a000b8aecab570592c2225a283ddd19ad1efd151b0ba8574bd711e2eaf436e04999f71068234ed344e3179a38e1b1af0c7633bab09169cd061691340304ee9e2880fb46f30e490c9896bec8a3ddee1938bcdd43eceb16d3bfeb87d86948deaba0fedd15de2f8c8ecebb2447214000e1e0040714b4b9b198642e6163cdb763dea2e31d02b74825b6c2770d1c433efa528a06d787c7f780f0510943a890de60f6124e82db8997c0f1349e3cb521db580cd13454dfb792eda4572bdea0829bedab107494198f410cb283393d50264f5947a5aecd79dbcc0f677994e71392815fc9071ace95b85473b14894583eddc0e492e19b47736793352652d6d8cc27fe49dba966d4a1baeeb93d11ab6e1f1e512b180768ec4259230bd857eff1da0dd983a495011fc4052a45a882a5f1029533def3354e144fb29a57a7159238d250ccf6e3d96c81641007013195a835f221724660ef80c80769eb6a73549a78032b67e5771f497c694c64b7ebe45ea19a155f54fdf1b3a6866982b3f2fd2c31e18428c2a6baef708d1bdc3107edad3b48195ba50f7697f351a71c15cd0eb3f0c5668a1fa2d464a4f9ff4e35f19cb69cd20f795945403085868dcc23651d1d600d08d1a403554059c9e179d3420e3b2c8a5351619d88de0ddeb345e833f4897d5ce352bf2c0d46a7bb203396448fe48e8830f976290605846a0fc43f60ef2857d7b325e9cd4357d97a11f6fe23a692b9e581bf1a1df6919bb556cb45101dbc0af03043a11a4fc4a545dd47702369a0e390b49b5a75865b9cbf342b24243bf61d26c211b30334edcb5fb9d0dac4a530bcf21a178f75e9ac8e6c45aa4ff78a095c1548211d9d0265ee1322000230c6918913884588edc05025c823b26cc5c0456a1ba89ab9cd7d0975b916949ec1f326e4d7b8a2aef59ccff6030a33b7f5fcb5653498ed18d30439fd07d9f7bf577c9f867ddf83865e709f42dd2d2814b4c41983a6ff3fabee0c375fe55bbb9b556fb62abb30e589a99756332e8075846afc00ba72a8ffe1e8321eed5589d7b8019e4facfeded3c24568a054b869ec6be0596e9639ac69c029584a39291f301e2a50e4840d0dcb2c5721bc0bfece89c318ca28c0129845c2261f7387f141364fb9520414012fd8822f5f865fc80db6bc623c6012abe49ecdb0bdba6f83bd463c54d03264035c9fb1474fd52688444947d536c3f5a697f3058116c33096fe5755ea6d6b2da7d9bcaf8ae59e954a989bcbfd433a846726df6aa1d2cfafc03d644dc37b6f6cd330ba532923c4e1d421c45bc7a6e2fa6a3e38ce87a8aaade1767c1869ecce9d669eae309598acaa146ec6c2b838fb994c2070797c6633d228589a7f5ae9a79eca5e96ffc46fb3a48f9e8ff875c85c81e23420f64328ae5f81e526b9ebc70b5c6bf2b843085616bfe52574cef2a92766d04fa87a1733d8f457130a654cb7d0a815c0a31af4d7f50fcbaa393d41aa48891f7deb4cfca9c0934fe487c13dab9ad65309dec604ef4c2a1511223903566826a7c4bb3019fbbbe712024fe68114c5c4dd1fa4683690ba9875554249c2232c615050fde4333e87a46bee1f585640f09e1a98f93c1fa081d13c7e472e302a4cd6284858f2267bece7c6241fd02cb762c3bd1916138901a8e1ab9f9f43aeeba70a98abcf3d970e02d545a72d75ba222f9523591d98d8876fcb07478849ec0f224b87bc400ec94a93e8c69e5d2a2ee1480addb19472d9ed064b91c0bc0935faccd47586ffc047a4a4328e1663f05755934c2f38795cc25618e43ca8bb8696b48d74e3d13732eb1d8f0e8d9c49014375cba1c2da94aaf0d8d9a7e073e567a524703d87a0f44f7145081879d4501e6c53820beb732f9a2e989f7033c4b67b0d141f7be4d5865cc8354fa4eb4c6faa0b52b0b77c062849be28ddc45113e74ba655bc50d95fdd53afb8e9288759a2ce77632f53f1cdaa0693d84e605b79b442cf482666b7d02aaa8620e5b19651f4a201e8cdb41c0274e9d4ab1991e7c704e8e406022114a80073444f9a1b5c60b51960b17a89f999db57b91652055c47eac7c3879ad8c08624b48ab52d6447f6036eb0bad12bcc641112b2183b74dea3aee4d151bd33ae578fa1c6a3b8216a76d4da1c46312362a29b884fe28f7c36ed9fefe8d396e4d0a6f9b6773191a278b67c8603244dbc4f4fb083a6940b56a9e341b4f830eb9554511f6f6cc9d9c8f8da1c9fcff85db0ea16a329ad329d2958b03808b0b76e92f367db0dd9590dd08e2420c4505264946a2e1ab0dd4031c1e8bc18c343085532927381a78ccec04a144e2ed74dafa8365a7d6d9dcc2a23fc23a42ae4b47372ded1521580784dfccbd61ac29b1ef59733fc4791f2c79d165308d58a9e7c639b1b462990f40184f6ce620e71235294d5f050ae248f43ba58beab5415845415d365f2a09fa78119d9c8a6a669c472d187a905962d6e7863121f3d17a63b9316e71708cdb2f847e2b49ace25bdf8fd7910cacfc6ab43fe85af63aa47d6949e10dd4b9cd04a62797a79b84d3fc86705f6c74765f0fb4772223e433adbdc3df68fdd5cc1683aa5049ce9362d8469787627db5cd43259609bed0bfaa386614578cf80e841c42d3a87484847c50bc1e3c08681fa2a9a37bd6b78e5b8c779550e48b77997ceb379911bc26494781e213d6a04ec451c7e5c5606f2c38ee595f61c447f5b713a5b4afe0c915ed71f394cade69e202e987568f86f54c293569749c95dc07f80be55c09689c1dbdbb61f59597b83dc46d43f72e42b1bda86a5041966b67329f64648bc9567947cf26e6004a13ad7025b76990ccc769162a6e1a4e007a145921c0bb5b91e9bb9063cefa60eee689f567d5f38d56cd29e0d82cfbf2eeecdee866c1eb53277c12204617cf985234ba5240f1450bb5b6c2819436166bbc1c2b870b95011babe15d1ff3796a38ff52f6f084f1352b3758194462379ef2ed0ca39546e5f1aabefe2a558300ec7cda776adc588b26915376a2234dabc37dd3b2da4852ccfc968cd173531094b19c0c2ad44d17fe3d5c99cb9fe7ca9115190a7a552a46e86f5d8a7c4f855cc2e59baa506276e733ae998932040993131a8b8420f7475d636c8885ca8fac1dccf72180cd44851ed63b4d73512210abbdf36086faab160a7f63bfcb29910f52d28a4e702679ae4ec44d786975f42f21ba5516402a23e890ee3a6e9a156b8590acf4ee7d2d43a4fc6ae2a1ee5e8ba41807af6e396cc9386a7464e37cd40598285a9abad57bf2a0093354ef95de095e125b5ffbc9904574867dbf2aa6b537352bdde4784b23f93515acd4c6b9a20e809e098df95f799d94a706a1d7744e2d9871402d6b72ceecf04393a8df578a1d64fac2d9488ff0ca281e4d2bdcf82fa14fd5cd371e84d8810185101e2acbf1949f2f2b68b0747786675e59d4fccbd2c1d8c5b234c71ded3d346370c73bce3892884b2b71e305be386f0a1e124ffe8d99f8cd5a2b0678c230a4f0f3e316e167fa20c2cc23bbc6f0542a889d5b6d9547e55e712cc6f188af4f81c140955608aca8203f9842ffac84b55813f183bbacfe1f71f14053b9ad0b9ea3c9df349af64e2b6599baf05962e0091938da776a831f16a9640d71ed17ef26806cf1254581650b9126b636c949a1744e13a24ca26ff303e59b235b1c235df1a4a4e69c1705839d32e30b4217e9892754b5f1ac90cefb86239fe4a84db63aec8710819234920eaeab89835166602f28f937a4aa7c17804d081478381cd81d188f4517b4981914e8d184267405f254e70a68f3ff79295121f8db614a9e77dfd28b16c172176f19242a465f021d39fda0d95e941b45f9227f33f142808271e5e1709a5923416d12c906f20ca4e3ad660e91a965ccaa9febc3cdf2cb0ed4d4aa898e176c9de1f9f45304c62d04be7729aef71bc4f12a986a8db3e271b8256628757124e0fce717e19b3a057802eea680436e1343ad05294215fcd249424cec0a923ceed9b815ef4fade225c6bbd06ea815876512da4a902ba283977ed7db771dca03a550b5a84ea5d4da8d4f5721f8da5f091995dc1a920ef3a396d1e7dc054d11d5a1a1281c38f9c88ee9c83f08a43aab37e0e20fb374e7c66cbea3bf4fe1384643adaa17678105526548e740db78a508f04a20abf215195ff94f42f52d3fafee855a5a4dafa8d7aa5a8a4b3a1d7a7aae7f822b600b13681387f3695cd5fbbae117ee91b65fc8fc23368eb909b4008fc104abec76b6a9b30497346b5d46b9fec5defb40fac10c61cfa0c1408f97aa03f0c627f49b040d2165d72465c3e93696b376f5d6c6e7f6d2ec6f886e156bb202a9c65915ae90739dfc9403d5887fdcb4c3d0a551ed8396322077598842f96b7710b3e233cd6e3377e59b8a9a703a899c69852277e4a644b18373acde63c8febe3ad1a942bc64dacf2680f428a15a868851dd50930d5ca51be6badea2a19273756a4350f122fc79d2eaec5e86ae55c71ba85d628cfcf1598709ce033c8f263b0f06b31e6d8adfa2ec05fe8087021f0a20bf5e489a1636d633484711722a4c5f5e8826c80392cac2d7e9f816e83d5cdd9dc3aa608993e26700f2ed2e59089a217fe185857b9e7788e3595faaa0d23f5a3519afe3810cab25449397c75ea3b675eccd49205266e65c604250e68bee353db9a61ee446248c20b9a4877df8429555fade7922e9e4ab9b6ca3bf14c44f865e614d27ae5d5c8f2c14cc0ea09e18348316eb15efeeb2802d865fad19005cd1bbfe92667a76a47bbeccdee9c4e2281f3e0eec2ee890c6a7769f5be5adf953af78de19cfdfdd96c4c6ce2fc3c1b83189385c10dc18204728e418f578f76995235d0449a0df543e637741949efe754bfca8c4f60260a0beed9b4241ff2c241ef2439997c058afb4efbea0c0b9c71ec399d12a167beb443be29e963c3f0b29a92bb20a01b8018ab62070d3daefc32d27e2b0cee9c1a6447fa60c849a4ae9932ec3e8ee183bd9e7c7db452e294428e318aee9b62be154eeeb1ef592d379c28c5d11ac47f9d4a3a06623ee3d154330eae94d8db51bfd6c4c5a747e4da6eb58d651b25302c0c25c0cc622cc37f2d95613a26c162c6911e24895a865a80c1ae69e41d9922d5a5d3c6b4eba04cc467c994fb248b1e01b126b306d1b1e12fe1b1a434d63416c7bced28aafcb8d08b9ee49875dc380381746798c13e9988f8c6be8177954ab71c5eb981794d129af369d08a5a956e2837e594a990510e8afaf1a582ea6771aacca963a4b764cdd0455afd60d347805ed41bf33a80f84996b1462a830267975f060bf51bca236884b27b48b86151d2ab5981db2b1648d4c399aee66d9f7a13a587928521daf6cb897c4a030494fc0d5343e287fcc22d8ebd0a414693f4edd48f86d22e255e890fa4c27e72426895362b4873c1cb83319f294248676bc91c6227c7d8b5d09f5ffd10255d773854da815d3f9e0a86f22bb7467609536d02739217f1be00dbb517d37a34929e9496f43ce72ac9d47500d5f3efa00e18f3270286832de79b1e2ef45ffd20ddd590f139e336626e4b284832652790527848c953a448131de4ce4f821e2ed861a3710bed093632dae491b09ad9a009b6b17d0ec3e5cf6bb7c1598fb806f50e2be494eea513c39984e026c8fe077085c347c73eb24efd151a3828b9f4d627f7f005200efe2d10409733a03a3590e9e07841d15e9c68f55489ba6d7d843e49c4f6b6bc937f1a6ab31b2bfa789349d46ef63dd047289ae63a388df8097b1bfe9cc93b3234190c4a4e5e8167ae9019fb602fcc440444c31c11c1d97cbb69ee224a694d6bacde90b2766a84ee88919b6b210c33ab8169c47a3e2ade7890a82b6716468d007fc274645e13bbad028ef16fa31d287435a995460b82734005e9cbed62896f5f9831db7d7fc40ab4ae373190ab60d301daa5670041cae64f73a30e66e3685bf57b44308fe2dd60518f88b5949ae5bd380ec364db9c6386b6be9a65d7008b793a5f0ac7cbb128f130a7383a617f2896f8041b13ee2ac8d71034f94231e5dfa820311a00efe33ed7a3e8456c6c5b29763b0d2d949aa1a4187e811628fbd36f64a50b087d1693f2e4d0f31c6b85a27868847aed522fc15d4b3d6ff1f82029d2aac78066d67025a6ab225da0fdc547a77810e0ae6f0eb3e67c71685242612cdbd4cbcaee91144a4201f1d1786487c89511b9f1950235ba392f0c81ab13e6bf51c9851466a4dc7bcd25884d5fd8850329b84e856634e4042bd6296754ac99259959ad0907fee597778b44eb3ffea596df3865dbb68dd8349ca59452588161c2a73f806b1317e8acc3d141b1db5c9c54aa634b3838eae0be69a184ad0e1f9f996e35bf6128e1e2f8eabdc6dece2fc584e0d8a53c527f608650fcb285d775621280439c5081bdbe5c0922012e86e139f99040a2b85466ddfb3f3c107425c82350f007c80f6e814f3d57993828065a4308ac153ea98a2d024de2f7cb895446fef3a3ea0983fbfbd037e907d53ea975a150a219bd39d271cd040c9b391de9b375921b37dd249a8dfbe85fe0ed25c19cd2ac4956ffc3f00a525628d605f9f17e42d4800623896752c207147ba505f9b68e151363ab4571b8d41a316ddffc8d58fc7dafe4c5c04444adec440ca1be3d773e84c584d28fd5a43f7f889aab35d26e609bc1faacb37006ab6d9c573a36bfa1a4a3b39ad05c0f6615ca069751b0f2121330a5611ba71d04241c56151abacc89089bdd6cfbd11d440405dffbede4efc835847e26239b7f768c01772774bc8806693a81d8ac84e397146f6b837c551b9029cc77516e4b817922f6887eccf349416019df3e56498e4189d8c637e6dfa9bf78b63e1cc21aef3d3af94d62a679046ed5a60df7f53f2bd576a874fa255316997060e92315d51c108d651a06cf6fd1e188624d6fad6b46d6c89e9270c2158054ef4a75e646999d2c9b4fbf845074f381daf5d3978927b2db9f08a409d88b92320133cd9a15bb711a03ea4678bdb9397871034892d9867cfdb59ca5ec54156c0b5f0454658a7f00ecf75b19b41432606cfc2576877be59906c1a2f58b86ddca9b40c52b7031620ee07325890774bc11aa3353c46b25c33ac7cf6923e4718c6b03abb1fda59279b64ff67d1479cd788c60dd9dad32f4ca29ed8a21623f4988f96262e911a05a89383cbacf39c135d30192eca1b7a61ecb39015cfbc93403fed87d87ff90e4d5a5660fe73d0429ad2a36c75a948f7b23c5f7d3300bc686d8cf01d4136f8efc47693fd7b3f01673689353ccea8118d8df55386a4b3f46f51e8e25df6553a97c37f3aa1c3209cf8615df7916fc713b5da6a16f9a1ab7997385c34406c80a8145b9e68cfef20e1c1b85ab9bba5bdc3c8b60efaeb363a542520ac35a769884f26bc1e37341eeb4bd10e05f610e69985824684ba2b4f1383eaba9f9d06f425ed56127dc6f9a377dd1b1a4996a72c4a6793faddc84102a2e9efb47ab35e21037c3d7f123b10001f65f35d01e93086be6cd006928a363dfeca6f8984ff2da448f1ed971b38ebeaf65582195c28584381ce0a0cdb089b42d7ef1a66f6c86bb93d2451487b543512f9872aa14d28823fcfec04d83218909baeaebdbe68c7fc0031ef5510c6af13ac26c9cd1a611a9964e0ca700e483fd34b1ff5d3ef724cf4cf2da1da90939314e12a074777ca5d5dea7d7f2ca95705bb46eb295268433c0e7b2cf1d67a9bbc41471502925e01ff9d6882db9af31b4f513b0caa56c9e384a97aef25491b110c2ef2893c73c698634a9c4eb7a6f629110201ff70c75a642a70eb5d6bb734ee2367fb5971a5c453680df312ca8c4c600fc6c87aa26a3b4a6c694b0205d4fa5490ab1416dd0dfed45b98f3864fe9d1ea8c109bfb64ac476dd6cf15dd6fab1207b2349c94cf876849fb8f1e10924dd629bcd594d7568ed86e00fcc57cfe203cd86c2c8acb7a2ea2cc538c80157866aa64d08fd60dcf435d04d3a5d5b421d7115721a517bd9b7ee8641ddbc16bb9f83d0853cf0ade687f3193b961eccf950903dc41561df7160bd2eff2b7fd5f62fef07d736a0a8258c671d10f3c1d22226babdc74df79161d13c37cd03f5489eed0d18ffd55aa6e90c363743d2475330e1571662d88baeb6c412640bb662942f864a0f3c9ce1bd004f2ca6ce309a92fe330fba591bf54ae189d7551a17a6c888c2a9d548c8fbba86de3e0bb35ff451c5e0d8b1a06f546e8817939dd16beae7acbf03cbf2c93680a911f731fffe7ba1be431278a2159b9d8357208d8c9d00849768dfdc337503ba297d925715c9c90646e9e2c2c357fbf41c418edf35e75e320c376d6ece636854dad5c13c6918eca1e09c72d6aea20dbd0a5703c0ea0c1bcf9f525e5ff42f74aa9c02b2b707741db6a15682da894e03e72c72bc11ae525b914fcce2a03718197ef758461fa89f54fa677a5561bcaf7c1613f47e22f4d9445fe3d4e02b09fe429fa61da68d10d4dfc0524991597620cb62fc01d7abf78c187b3b0ab0f65f7d54735e31907588b9702de88615e82885e4725ff5222a093456b77110e58655100b7a9dcd8cc35d0f719cefb34392d9e874683974c3825fe414d731c85c5b64633dbd43c0c2d1055dff43431ed75e1efa873f0bfc1472175c45edb36725d6901d93253e7cae05bf80b73e638d8acd4f296d3f6de458377522d7e774d2e8705f9e9caf5a861865012edee8d945cbacfadd24a08267f669d62b7bb5ea816a0482d9725c184f4811ed412afa002b853e3cab0b37c968df28cee391d6ae1b6355653fac0b37845a3bd089c0483ed9cf284b16aa3b51cb012cd21a10e701479030037de790d5e05f942a7992a76add67653478a9914c02b4421d8ac68492a819b930cc25120779639825bc707061fc7fa83ce726879f71cc80e4b7d394d87adc3b594accc298ccb3894c9cc6aa9a42bd9bc38a7b549b936f126f0923b37970c5c6965b10706f74459de19eea035a52e5d0d6c41db6fdedefe78dc3994aa390b2a790fa26513e4686257e2650be75a54b03c61b25a17c1fef834f8f25d94e76cf8a15cfe99791dba86b02730730a6ce58467ecd0810fab78841a3944a35cc1defb2a59cf0368d96c2c4a0ddc64cf74dc0804b6f11257fe4cbc47c3527a01dc82d6216af9222a1a903543692ef554b22be5709cc74dff32dd117c720d03bbc1f8109728959e4d9708c3423abdd0cf010a0805c11ddcd27d6ff3051161a6306da0c5ed660d0688a51a716e90f4a365f6a6945670165e2d998459ac1e0a628bdbd45d1867330246a2c423d42998d1c88dc64abf1732ffbfd807f3a7b48a105669ff8913b6356177f70dd761eac826a9365c4eb969eb5dc4c8ac6cb0d9b02911c02ba049399d45ef55c36da0e4c1f0e75456296ad27aa1eca053f033c0386a8d197d830656fe15267db3b6f5a56cb17d247b1b7f097794903bb601393ec047cb4db05cb12e37ca58bc18f010139d4d422dbe17c7ffe647f053f461982882099e61bb474d01dd4140830a53019e31393414892901b33382d8fe9cf5ebb0894d4b0d54fe14b5275e1ab6f62295e0aa81330351aa4f00d331c9084165b4f24d8e2240607333d10734381227f2419200d723b569218abc96d0edb5dc176f1c83f5c510b671c7823eda68291525741fbf5d216231273a29dbacb63a13ac78aa9c151019fd2bbc94066a1e19298e46a95d50a82ef365277c55b2f0757e10eb5fe7f39f1b88ecaab94dee666aaabfa954fcf11e6db1b02ba4fd900f81eafaf8388b4b54ffe54318c2794454e1d4cbcb97230fbdfde05a34c6cbe6c8658240eb272f523dbf92094141c0b6a12647dc2b203424cab59e47608304a6119a16777b6f8789045b032c4c61e5df4cf81b0cc22593c47f5facf27143491223cee5db0f18a09660e199d824ae1f524df54b5fcb777aec926606d68b4c6a7c20ba004337a201a2cf7c7e24c43d8b7c0c8961c348dab913f782a16854872066388cf45df4b700b0e6c8f620cc980761b349b66def0f332f39b4d128c2712f48b4dc246f7df4bf19b462f2c24bf91ce78ed1e22766899d2231c180e958702e680f40bf1242d0e6f38cf058c6f260cacdf0574219a2496f37b93ad165eb0d348bd9b27e0a11746292acdd2cd94351eb403fd819308ed0fbdc2c2c3589d0a2b824c31b138cf94591234d34a7dd285ffe62567cd437b59403506990e1a51119ca37ce63fdb6b490eca6b3acc47843887e09f496ad069a605b3849c19b1c2c51604c1cdbe14349030b476606d0d84561a09b0b6c57d43243c0f81a0b50bb6a3c3854defe0365e53ecea2ff44d16e29053facccfda0b9db61b255ca304b279ff325e8b1407c443eabb8dbc40b61ba168a80f4466cf5e2312039c6e1d68670289cb027db37f25a9128f2dbd890087235867bcfd65f5c0b45f09279217ce4100d04ecd5c944034340a11c27b42f7c316b775009dc445629b086447565ac89f546a7df403cdbd3e9c3acff1954f867ca39dc01a115a99f7c9a37066de5a9649a9bec9a20bfa081977facb8e70f45a06336bbbdddf7dce18ce0863b7d726e8304ec6c223739a2f875bcad98463d94dce7f6d8217f095eabc4e56a1326c69a72538f8fb84b127302725b87643485a2811727c8315ad4ce5cbf8aa9961697a11f4e6b8cbf1c7bb8d02d289d9e00d1072ee0a9d86147fe91f29ac65881e213bd763a73a12c52e0123a1b4524482148c3415857df4d68dd0c44486d0b676f5f057282339e2dd2fb5db998cda810b9953722304bc55a23dbb0ce5186a1f761ccdac95ec1bf1bc7979f350a2bf6d8b0569e947b55439eb9c08e683a125df633dcf7a13e4fc60fc1d7265928531214d33995f3f534ba3cdae407dc4fc62fc0c47d5bfcc00a7ac014c85277bacb55eae30a3b59640c29b5e62fc5c7d223b38106415f015cef2a05fdfe294563b1412a3df7261bc1a915538113da584da571e1bf0d25500d9e541fa27c6c01d81374eb78b476a4d61ed850db12ed4ed0f7b052fac911f12cc9b3ef5767c2790f589d3e69a1cc49fb4710283d2f8b3e3b5f5781a8db0b5e77e8848bf5bbf0bff77d96473158a41023726ac12ac29a288608039dd8d4f2a3904dbbbc83eb0be779d988dd3a26a8cba4d26d3dd26445d379d7058b8e01612e8d45dab0abf6b2b606032f3ceabb049ca0044742509ba8a5eee2160e79fbe3848dc562302d4e855741ed715b1c478bbf7e1a7c4218909585db324856ac1d9b46d8a3b7bd0364d3c92cd0b47501e37d61362f9817961520e491dbf14f10cb7175b0d4106c5b5d4a76fb5def20b4edf63cbbb83718b02077a140eede0ece7af8d25e836aa22a3ffabc5d93126882d251e599d82dc944b6a74a6548ae71c9146d8d35e96c2a0f712a4fec878ed25ba75b9d686e40478ffc8f4d849e90201c88748bd0a2af040d3f989033f9628fe51db025b76f9c705cc12630557e92383df030ba6df27a3fb8dfb02bdeecb0f7fde9cd9db9e8bd4533c88653d96af97046f04700f2826c8280437bc628f8ba38febb117340ecc0e849940a98fa17ff433fbf8d9eac681ea7bf0bb5d93f562edf4af2a32f8bb9b4f71ccbe4a98c3aa6b6b9408d2eb8132b9403fb8e257c75921ea7209e1c0c3050ada755459a4a37a5febfa8905bf2ff909819e604d5a4d4fdc07dc78aaccc6de8f183f55710b113196a40a69a3a50860b81d32271cc2bd593556531e57981737277617b0a13a2546eb5cfe2ff81bb82210084d74f2cf9a6b278d525eff999128283b168ca2ac4d48bf207e1f51e59bf74e71c3a85a5abbbb9ddc2606771c57e1b8da1096ba38b59d455ea6face08f70bfedb9bc8f6bfabdd0548fb2325cb5245c228773372505708ffab3102742168ab39839a33717a6a45b8abedbbc8212956e8e265104df45f1ac6f1f9936b6e6b9e76677e9dddce692ec841bb6cbd30b380e5f81bb267a99d501ea6c984b0d589dc4cb8acebf9ba6fe13462292b66825dedf0bc3e87da7a182780986bfdacd330bd9b20f6ca27355e0f4fd1d92bb024f58102dc966a2678c434d694ea087d35d9048ee7c6f08a0277a503e70153a4173b6612b9f3a453412569ba6ead284c0b41195c2cb83a082b836ce4cc85ada1d870c703da09e743aba41716860eee64c997218095a8d2b830723828d1ffed69dff08a09f8a90a1a5fe009ff79d9b8848d20c13dd56d8bfd44df2b6913c3f2d1ccc84c5f135d3501fefc5f1e6f62cd18253e5efdca8243b12864df5945b77a4ff27d41d8dc3d6e84aef205a93aa14d23784c285ad2d262f98629c8545754693cd9a9769e79c28dc5ebef13ad0fdfbc33783acfa76430abf40ec3aabb1d453f2fbafa90f56efb050b53bf7a2286fbac4ba526e5969a121d2f572f721f07824131a18b8fb0a2868ed6367f5b140783706f35453e014225d8e0d28f511ee1ae8a907f3d4c7145b2cf26f97e38af39ce71be9879db67b374849a1e7812aa8a52d2f0963dc44808741e759849d9a68b5a25f0fb2b466f74451f15359de8b61ea623b2577ccf91196cfd2d1d9252e1ab79a95ded3ba13ab3db60f57b4439dea410bacf5ba35972335b7385fcdd6ec557a2d567ee07b7b2db31a2f4d660a132d6294c9a057deb65c1cf1028cc0f6bf5908f90159f54c6d7b914140b48ca895893319fa14bd174b01ea2d41092407d46edaa5e2e45ae342f0c0ae8eab592ad89871244afabe53ae2752b1dfdfac57ed3d16c2cfbb9691332e4c9c2435686a06d6c80b875c4559037e1c69cce6867c10c767e827648306e9b5d6eaf56c576594319ac3944fd18cfb29ae9887b2763b648f99f6a662731eb36ea43221e6a603620baf58c2a273b30afd084d85ff1b043fd65a69ab24d7ef3483b9e458ab3c25374c95a15465ab01ac7da12d6b8126b574629827708f01208c8bfa2e24520462240c22302f31d30d49d4e7f3884686068baa5167633904696e421d56724052fdfe70eb3a70319f2134b30909647605bc92718480e932e27f3ead0e07f6d8f3b0635073559ce69085d240d8936559b547403a12cc4b1e3ff1f2cebf5dc5806b08334e2f36f0858308110f210307d208dc8d4d95b6d9f24c26435c1f86a4c91c51283714db627f28c24d58f31a9172014652c23f567b89c3e149cf2e33d7f886329a595e386d84f5f2327e1f052ae213f92764d280cce4b525a7ca6c789ab04cd878d0e2d1138ce6bab76c0696d89b3519695da23c868e8c5c6126bca8afc215f39dd9708891d9d520e0854451173057cae02faccad5b5d5098d9a40d0da5d0b14827b57edeed9eda9a20a83b1be1a1a0664680c01b22ba61f8641b9972e5b652f1d7cad11f4cab288f131122fc2d9f00b9f1fa35f43b40ccb1a13f57f41dbe35e8269ad5fe6e6bbbcdfe2684882412d9bdb97207ec057205a00599c3d729467cc2277cc2a7683bbf37db6eda4e7eb64b390cd9e19c88783b29cf61c4d494928dc99337d1dba9a6af896a425513141585833aa188a0a0484d299d4a31ae977742a5587271a932d0c64a2028551c64253578e1391d6183d00f214ce42739896ce4888e91248c7849c06420c15de193e0a63a9484ec0e4934c624f0eb624a7a26ce513135407b9eb879925166dc0754a8747ac6d1d0025bd59d1907825fc95a86d18c0bc156334e04da665c0e0068ec22be8e18e70e14f9b3beed38e6d3a72125e4faa124e4f938c258cd70eb5b1163248c8b6688fb94b657114ccc0a162a640b5f58a655f787edafc2e62815b6f92cb64f9e62c566b1cd5fb181567262f68a6d7ecce6c2d203cc667962fbcf7f61794294fd25da420fd332c4deda8b70f742bf7bb3981a9fcb0ebdb8803e14b4f21cdd617d70c6599e8b5609ce84a0c81cee5a2cee5a585636ce5a62fbe74dcba2e0e412e7a1e226a41feeb40fcab8b8c3dd6745c439a025f8f3e4a80e959a9bcb760a2bd435a0e944d8f1e5b662ffae97dc60b6dc443bb45f360c7d2cb52c552d52252823a6c6a6d847fd986481b970f9477fc73ec1192f7d24d0d64aa12364eef3f9a00cecfd31b65118ca029382e9e08c83ba1d257330a06e7b8b2eb5fd3f2528833e685f1bdc58b36052302de040dcdce7dbfe96b34adc1c02444b2d52a6151e63502e61dc453e4329a7ae5d36d4f004da709e3e0c25868f21841002f122c60c161c0001273c50e6e993af3b638c52d660be883183050738e1417d7237270626a516b8c00ef462bcb85a4e864c6c4065736f010c50e002a7fb22c60c165c10c0009f6344056efae4eb563e087d6c20bd15a18fd5839090d48a10e6595144ec56683cc850c7880a886c8c65f0e5026e23232ad82e64a08c1f41193a468a50001a39523d4cb1f480434f886ad0a16ef821546c6eb4637486f0e81441059431c6b86520d283109223031c1f421f126407a86780e5e3d01a6e1d31aef032858776b84888971e9d213bf888624e9ac3901c7486f0f0863c81480e38cc3943a11a88f040e4053d1029824811224d88f0108942c40944a660848d113c181103238e18f1c4882018e10423aa14d1a1880f292832040f458e28028422521829192181111b5113548818009d279850418504456062841c7c9e90302c74510e53cab816f1203bac353a84b54208bf0d219c3f44fac204228c6c2e0781088f128164bb6ca853048badb6cb1ae0c89ff31d904696e4c83f9ea8e0f4b8b47119fff4dc586cda033551144a5ea05d9ff64051144551d4463aa4a1268a9235401aebc3dac891bf35b98cffbd39dbb8c4369286ee80d407a4f11d70647269dd9a386be2acdd68b604bb4161a60be50303b26d240dc6031cf5bc9450946c5993e53af398905756344dd334cd344f97a21cc64a1429e30fe546c95242fe54469ba3a8ed9af5b6bf5c09f59039cdb47d8821320fcab0ef8fb339b7d99cc5c31545622628c3e7731890ed54be2724454ace921f2dd58d87f31da19d1cbfaa2063f48cc59473083d093d093d093d093d093d093d093d093d093d093d994ad03099a8e785940829914a795e48897b578043498492c85afcc9134935578ea45401968fe55683b50cb324cffafe827f3e2b56e4fcd913ce296383362b46ba4238c8dc079b11ab89329bf056197dacc6759412e2b94ae071c3af10c4fd20aae7c0089b9bb531bac590a3b4af8d6d3ca01744f538da20e6d5f9a3009bbbc255551b7b84ee19bc3a06979e5226fe0ce93aa6c6efea7f575026be75593898aadad876ab2d0697867e7745ad0a61d41e438eaacd37ae70056f957139f6ad1bdb62b84cf48d31bc64c6e5d815d67f11c3e1cdf0feca04a5a21b78b42221990bd92dff881442926c213a211f423e213f1072042908e9d121a2b404227420020544cc8008179c80ea201341080ca8c842d80d75840c0102fb69c797b5cea96d30948ee2d9fe93674f892383c8ce5a6badb5d65ac793d66aed35b75bebc548556559d7b46e48d7c4fc336d6a9acba85d99a65dd33fe79dedbfa2e1bc829158664bcb353f2c38db1f7f827c846c7fd0694f1964fbe397d035b11a19442445a2e95134a5a747f2e8b90290060070243f3f84343ffab6f4cfc6816eb6fc968d6bb1ebb36c5c68d75fd9403d7c6b9ad39ce034cefab414a8dbf2ad8da3e1db30d0d3b6dec1b72f1f0050daaff4889aa08c7d177ab3edbba6365306d9dffd210cf4b43dc99224a0d34762249eda4019f331cb57b6a4381b3eed20fd01692cda032220bee6c00c99fad8f03593c3c83445b98cd44cf4319ed785b7c3f8e10ad5fdeb821b6ab731f9cd8e05e0bc07e56105156374bbb1d814cac8bfd732cdff3d79d832f334d34a140943f2aca0a8441965d44c26209aaee4d560f4e0cc7c11931cab6c07caf09f5912f326663b70667ec8085972d68dd60d21be7821dde768246f54d79d24aded5635abca6ff89450de6cbe94f7c219f89f2d3241e6aeb8756c88d19035a8d6f2a59e70a62586c4c90d49f4e7cb1a744e8cb452fda558cc0bd5dfbf712d7d2946ca3aea08672a46d26e2531162c8cc91bb66636aa1b958ee1312a6c424c7ec41a00f7acf08b1712b351fd9540a5a15b38e79c1323cd7761ca40b2f67c9215ab48b95d388369a41a514f5d59b65a175a197df954db0e54d91fa68fe906e7cd50d31e3d30cd381d8fd59836e00a3c6cc0fe7a1bb09817b0bffe06a66f60d3864faa7b3e49d6bab1186215527c18a5dcd7ddf79d73dea794d27dbfd65aabc54875d3cd5a6badb5fbfe3ccd130a954a69110e15d6c2fd19b2566dff6aacc57d6b549a96b40c352cb6fd1a169b6a16556efeb4a6ee1862953da90d9cd9980a953a6e29298bed0087414bb4f4392dbdfb73d4f58dd5c92a512f593be0bbe18434d74240e4400cb10a8cf329b6b9aade6e31e428d96a3daeb5da2c060b0b102be7815980db9f04b76b9825ae47a38891626edcb76f43c79618c9ee499a8fd558560cfdfa31fe9a646d92b565ac62d61ba3cf28403042c5480f901f47803812c4b22c8c8f1c39c25335018b4a486c8e547124e76643140645311a895224c628251227488e902e040c934827fbda5027c969c7cf31465194f2134ac293240a8410421821fcc4239bbbb89b8409548a4973c02129e824e1b1b9a993a48424b52592258460950a10a1891f80d081411150ac40856cea3bf8f01cca9f9c29a51487d46dd950e748129014c15da0424d7017c2944170116a828b920d0f20a6920d0f5a8a4484d01cead113254285d093c4d87403244867ba0162dac9a95e4d514a2bad1b74c804b47ed86e82322e7ce9c99c180594511f7a0f2dd8f063e74f2cb1e13b00cac02fab4951d5d2d4a550d02872446b4c37406a90da5553bda940aa094e5c531d4e1021a70e2748775dd7755dd7757d57f56e4ee5d9f2abfad59d9a2347b27ad6f2b0a59aaa536a4f4d5d2caf0e278890538713a4bb30c61863ca59fc71637a3b2b88902d1f9f3a9c2072545dd7755dd7755d18da2f6270ce8927d6d7b2ec77d9285b3e6651996dc2f2c891eda4907bea70827417e65182535f7c53188f2d3f2b6977caedb9291268578fa1ac78aacaab76aa1c3992159c4f447bb9e06a3f406e10ab9323cb0439ebc602627d2c53b45016ca4259280b65a12c94c932d1cacbd93259a6699962756fcea1d0bfe59b48e6846a2a958ab4f22acf61dcee565ee5551e8ea69b5497c2499d524452dff77d5fdc62cbe51bcc26b2b7ab3775530ec3de9c43a1ff4aaf4bb1e536faed6e17635211b4affdacb5a6bddded1cc6f57df96a2e87e6ede2edac6abbcec65b694db94c76cde590d55c2856de8d31fab4dff77d5fcaaed8d06e718310b42debfbac3dd9cf7ef3fbbe2fa6dcfab4aacf7a55dede965ad767bd29ea954e7cadbfed6c674261d0854f9009d40f5b5aa629b6f4523d6c79bb27b6fc86f0982be20de22d6e7d3112687b8679acd6f55ddff565d7875ddf757d9a93ddf56df9f4de7b31bfaeb634cb34adbc1976596d55b5deabfeadda6237b525add7d51cecb6fc88bdea8b2bd6f4b2df9695be58109414ab60583f66fd02aed7de2d8d3db6790b2b3f3f6f1c0d1f03b0771da3bdbff5738bd11eff8cd1748df5f8f15b9f1f5b333c6f1cfeca425cd196c671bda671b83c0c74e3a6d6d3a585f82e1a82f40cbe59fea3678b9ec177e642dcb81cdbf14fe99605b6f615ab3119c0618f9f9bc177a63911ec1abeb1c6f4fc19dc92db67f0edee84ecee79db05abfae93038e79afc11abc1f4e74dd35ed3dacff0bcf2da361fdbae1972253f86619f315d31206eac71546fd5a8b415ab8d3dbe75c4695befd79c5cdeb09f3f3d907dc51a87b710dfb29e866faffc8ade346ce29f1bf679d3b44d6e6ce3326d2dce7a1974ecf978e3227edf381a3ed10dd99fa3a7ed58c5c1404fd8c6e5a8c19acbb1ad877fbdf53364a5818deb40e75356318229ece81e883b5631822a7604edf8de8600d0018a9a0fa258a2c4922596fc60890b4224c89a0c78902b91243c8ef08ae04db1e486253a2c31c192147825f052e0e178427843bc233c1c783c9e135e10944871832b81828ddc81b7c3bba106afc7e6f2f7408957832b41422a71628a4aa0dc10c5542245c9134bb07b15124a9c28816243cc7bce871042b8c130f22dd3b860b4d6332ec7a603d82dee14a45065cf303fee2c6540b57a9d19fd8ad50c60abb0eb06eb5fac6600bb05cc1eede9779b52467af55afdc66c1fa2909b90f3863a4a4e4a6c94f088314aa9a4537203e10c10aa29439173c849a4a8a126a1a29b744eda52830e983041921e382c810817a4a072f99b4481ea909b1c61a154e103c98d4d14337fb40d7590d06073f99d096d2243c9144977e3845c45f672fdf13284ec449e4778e6bf8b2341d0e2d4e4bd733e494e7f69c2f3b106e7c45a8c52926a447df5ddf26510292729a6c69c9e034faccd49636e540ae311d54eea964b1e5aadc3f837ba9d9756d5c213639711d3aa5a16dfcbe27b55989555989565ac5d195bc958ae95f82c41608cb2674acf949e54ce4e0ecf97b393e34520f1264a8751282047069071d2e8fa058cd2a54f4a27adf55ef656d8c2d785d5c49d65179669352b2b2e18a9e52584914097c885e55ac16ae0d68291e2ce2d584ddca089a10bc8c5c56574a1217f6e5e4aa3671c8eed5a7edb84d0f19c4eddb19a976d311ad7aaacb5d6b2765a6badadae9d5756cac1e02e4c37d1f8c02505b78423e999dadf412b28d01d1ff48dc5b6761c4636c565e46b365bfe0e97a5b2544b0ba0b0e5dd59ca65644b97daf25d72a48b2745ba44912e50a40bcf963c3b3ee7e2844a4ad2d01e4933a7481aafd4ce5d6d96132923ad9d1d39b29cd02f4bed6cf95a49d2a47aa664543e2803ee975d5d52483074c1b96c398bd81cfc81a396c8b8b1d896c961645ee699b2ec3e9779b53e9779358a2d3ff358522d5e06c4c52469bcc56bf15abc16afc56bf1b6fc96969c961d49537d23b96cd72e5e0f3cdf69880fa37bb5efd5216a27ba294b6253ad933b4c12be51fd7d1b118b1143665acc0bf6eb5badafcb64299fe43a468a91564427a84032375b7ac89f8b69510dd975156505af9539497660ee00634d6a8e9e36ada99bc8e6a84d957d43ae2fe1aec13e6252629bbb6373ce893da6d7b5514a29c56aadb5564ca443b6de5626d4f5dc94b25dea8b1d57eda5453ae4fa12635f3d09bbfeee0b7fa5636aec4ac7ae717df5a4eb04e18c8e7de998ebb18fa95ec7c6b40c97ae61b1b18670a6d2352c66ace6e869c22baf581d21f221c777910f221fdcbbae9a4c221f443e887c902e754d4d0d8b2db5150243171cc8c60803464d4d0ee3e523ed0169fec78e4fbb1863c4347cdbfa93cb484f8e2445a2da19d11384a35a773818e8694b91e7bfb86c385ed49334ff14891e70245fb301ea0165e46b4e4099fada6b180d07f0b0c1e56d00991ed3287d4210e8e1cb16e31f7a1d2bb86c31ae635e70f997bfe1f22fefffa2431084eb1b2f1fd22110fdcb8720f42eaf6305d10632b98cfcd016311aa21f993e48c710ab806c5ae2b3acc40d9b2f5f43398c9797d0af87013409954a131d76931234414193aec90f4d806832c4bf8b2645a0c41863b48132a65b512c29568f4505f3c03f806c292d94936bdaf21d6ff13af499c14e08ec3e6d585a5f97919f4fced43dd2c71a69eaa9835a5fbd453f6a9825fe533b7d2722a9562755ea4e5f3e89be7c1db5ce27b9ae70c0b4feb516636badb59aabf5afe8cbdcdd2e4f728cf638b2c7af69982539d318ca51f638dbb4e8526aeeaefd9c736a4f29a554abb5d65ab5c7f6ca36510ff2f5d5273bdaa552de34a1ecdb4c8b7a90ef5becb1855f7bfc242dfbbb33cdc9b0b1c75a866dbd8e5d237bfca44c4338c3d5137e88653a267bed63f0ebd89a9621d335a08dd5d2b68f750d68cbef347f86572e04df86c14df8041ae6f0e2846192dd66cf09abff78ce6f248c6a7299d9c9d194302a21a0cc347592a6e2d417409a4a03389af331ed60d000ceaf38f3135071e6e3481ab711a2e2ec49df07d49cdbe8f9be03bccf69527e148a94990f054a942852a4f4f4ec39e7744d9b1039c95cc5b1d9128b9870538cffb9080799bb187da73129a59e474da65a6bf53c6badb5976f34eebdf7fa265a027257b404e4ee4ea53c2f9aa2898328eec55e22c31a773ac94b36980c3520d984a499ff4189dcbdf7deebb2a7969f45054b1b587e3eb1eefa317e3e3eabc3193873777d1b625ec06ffd0d6c55fa56a2267e40c23e49d7ae8fb59c433fb8335e68ada63b7077777777778f718f0fa3bbbbb5d65a1cf5e55b29dde79c94525a6badd55a6badfd3ed9c92e95f23c1d5c5e030291ac757bf1806b88262447f25d80325226060b2dc0510cca824b16a40b108600a08c843b356a9b7b5b2b4435493901b6fcfb73036d181826786234aac6e19aa331df692a0a2748d13305154f9802852848814a1553a0554a3b4650030f1b6ec0c1a6470e3e7e9000ce481a51571de08c7c1ab1ee0067e4539a82344573a48c7c27972714458a24404af6c8d1144dbd1e722aa6804027a57302478098c2880d4a180204cdf9e13bf8a033da90ba4d7474769882a10bee96b67c0c034f3a6042761677c21ce85b96239b1e73ce39994cd94bc030c9b4148222e3eb253c4d0cd38ad918b98cbc2c6623cb2846c23ec326f6246b67315c663eaed6de4a6196e40f762366436a8fbd86fd0c59357de10cbdecb55785cdb75f61a47b5916267de408fe8591a2b4e62547f3317d61a4f9148ee0438c845918694e38832b0c9b36e65b2fe40b5ed7755d51de0cfb0b67e663168c9695699f358433f3351d37a6b90eec4c637f3776e95012320e2c5fc0a731c42a9a96accf0222b55d87c9910d757254a09303c4eeb6f5694b58eb087907a893ffc958da4dfbe08c530aea224c951da5865bbb73d3ac2899cbd6e7833266aef2b594c78e537374c786b2b4b9fa312d581cf76d0b777376db875b8352750a184ae80e9940c104b535242413279838d9215adaf8e5856a041b3f3f374720c618638c31c618638c31c618638c31c618638c31c618638cef51661c8e2db50e190b60840e12504443444344434443444344434443444344435c702fa52d6908899c013f6d1cf1ab1199a31ec8dbf5af49d2b86cf99956e5caaa705555d96353e4b8339c354b573a6ee7280ec491a33c5c0ce4ed197286bc97ae6eb6bc296fb1e3732db2ee86be6ec111f5c85ccbd76df92ddf35c991f4d36e91c14ba99242f3aae99cb5cf9e90e3d6b42d6ec973af2a7e9579ceec24467ad911cabe2fbb1d453bc89cd569385046a48fd1bfe8638b7e15758b90a5394d06558e166d9039e9b613a98c741075909002830b17212ae67411ea61014e1224f044c1c41072a04a1e90001a2801a409131d9e20024e21270c72f003063840184191b863dbb01e63a7301c0ddf76cd4d8cc3d2e67cd77a831bdbdedae23bc5f00019ea2051dafe2c29dc42dcbf813d836f1cd9831e3280e55ddeafffbc6bae45dfc761618fad8d0e21bef5a86dbdcb11dff667a991df3507837f9a9fa8f42ed426b57468660000822001a31500002818100a8442912007234551cb07148009738840625a389709845992e4308c7206194308308400180230325252040263446b7bc2ed81ef52aab368456ac8a3a46a91b9f3b8a1385244ea4fa2601c7a3c8624a4e0e627a250404c392500f6e6c015463cb3afc64ff2f36d6488e3d984e692793c348e8e89bf60c78babfe9b95d62dae8104f93ca418e11a8a2af859f6f0581417ef5bd863b20c2d70c3bdf61389965f0dd6fb93f4f6e43756e5db4e130bbd7ad36ba8ddabb4597ed0d5bc28289fbed7ada8c78ce78f6e119f9b77a35398dd8e120f219d6bf62350855914a43674d8d6432f40864b3c4555b27eeda820661ee531a413727d7abca02a86788b09d42794b188540c56a860fcbf1fd7185b61c05e489642edd686b300c43e1e54980b80a8a381260b5897fef0d419ca5ef8e03d0c73af6f62acf6fe6344107c143ceaab163c9c5ee92bf9a7686b13847f963802f93afadf72118152fd246016e00d48202911e74d94869bdd873db2a860fd45333d1741d5110d1ea8b21fce54b708a23202c1bccbcf22ba14ef5f33f3994393dc8a1b7e4a6a5feb3197ebc0ca4286f2d9ca8773cc22dd7fa2f48b539983f62ac550fb0e6c29d92b52cd61a8eeb9eba3f1f23a18e1673a88f91e81412a605fa2bac6b8ad0443c50d244d002499a66faebc051cbb2581cb44a361a5de1e65a50bce17114f44b9022d435a07fb1d1d6bcbb418864277b936379948b43ba01b5460c09a9db53346db0d20e7362e07349b1a9020c92d44a0784d22323afeb12ae3d65a3c71b1e592d136a0aa00b67b59846f43c4a38c8ed4a6ca74bf9d5b40f4ec9fdb65b425c5ec88878bc8e2823afcbc2b229119fd7667b293c88a88d4ad5b2773a3f3e8b1ba3f3d0dd1c8ddcf0848091537edb97b2341726181d86f03b385c9fe894448a669e1225e335cb8a9216e7788fd132ba99ca781efd0daa103aec97bbb3b552a00dd8cac8f0330a205c108e36a348d45c9bd1483c2d80f2f951b8df3a3fd1b384c760a41982b8c9df92647ba6b1fc5c0a3070c924605f8ec607fa8d9a216170136250ad9c8695b2ab394c3db70d755108b9636d0a4dda76eb00f5736998db816d7b603b453be23d48a157a0d8549af2364c14c8a59427d5ee952c04d97fcf7f131d28fdef04e0531c28e9dd50b09d5653078f42299fa2095d37c18d4ad43395821db515a240a3dcbd8c162eb019fde0caedd659ed2e71b84738dd6faaeb9521b60dd9b1c0ac4123e26a25ce848a9b4f8ba8b55f52d203835d2f072a75c905a7f11173572bbd25ecd37f96f82b798eefa886685c895b7d0820d86df6c69652dd2d5e0774fef4b2e7296332fd724df2ee9265a7aee10ec657645329e3d8eb6a95efe6e2af749763dfb20d48c45d6a73b64db73b2fcf782458608ef0c87700113c0aae2f6bb4688e373aad4f3a319ec18b5bd457dbc17d48aca48cd77161a37b7fe6567d7f28eb32573bbd91e7461447ec144bb5e23ce3c79811aa768c6f8d059950226c9ba001c1299551ac57ce158122ebb15f68b3a374466c808e9a8dbb36783cab710d9ab8698a6479925733248ba42c3e00cfbcc655c04c834010e3142ab49c60e1595c9ecbf33fff23098d92355c6c223ec990d09069956b6291e8e45f4178033846d5c2f96913525d205d26fa02e4ec012100f977c12d9cac163a3cb040d92a41c286f2a53cc63e93320cfb52b1cfd3aecb57c7dbe77a0ea85f05e9f583fe4103d7c0b93124a9ff1e4bd1f9d6760ae43404ab5f96bd600550a29968beb60e94d85198d6b683bae01ee710ddb9b4e523885a47d9da24b5a9c2f26e92e3e4032350abd81c63e9bca6dafa5c3a85928a3fc9e9010efb982d5b48d974aa76b2069be5c73370c21efbb3274d5a9301025fe3fbbdb2d71fa78e5b64c88ae2b1666b68fda1fb7ee135e77d854a86d2df35b7713d9788ed1d26e39419f192cc4bf3cff244265cdd5d838775153f420a6b0cb535f6fcce2190adc6dba360750d6c4b8d95c98b4fba3a9b2caef3f0d96601f5b69617f983365b767ed31bd3447ee0186f0aa3845fa0092af58db654d3a6899f58ada6b406fcd39353a18e02a37311be01a6a2bc2911ea457c17e4575e75b93fb096f47663040293734473c1c6ce1008577c20510ee6267c77735b6cb1440e1aa2a2fa520c70c5c0f3e0eccb40a5ea3c41978ee82a4deedbfb329f8d34627e794726430585c5bed91b552d4412edec053a4bbafa793f751fc1b09158ef9817fc708a5ace43b130446bc601e00ed163c5d78102a5ce0cf2f8164f0ae092f87a8388134bb16dbe01a4f9540ce87ab0296ef22f41294786650efc4154c50004e3ddf1bbc6646f2de1c9c8a7be4ade083131ffb724251572757f29b1528bf6313e120393d84a7d3858309c68bf2d8b3f096614bb41ffbc0b3376d59840bc35f6ca2f1772cced1418b7bf1d73c3d0fca885a2dec26a7e6eeab0ddf13f4545a801c62317549b3399a4407cdf086eb7e0d826b7d5c0292bbb1d4db464ea36f1781e2c3bedda778cef8306031d47f35feb60cfad20d3e09c65d62058819cde0dfd7853caa70caefe94bbaf8a759888c246844b73b1ea5cd60e90f4913e5c35da6a513cdedc2fe4ccbbb5ae9105e92919e681b4d5bed3ade015dac5617877691a51ed74148a9dfc30fc64b6f15ec8370bbe8870fa53c091ba3e2a4dab6493e95a83b5bc7a02352287456e2e5436a7a892e5b494a801486490460bb9b66807bda244cb5c2a72a3e518e1b3278e8b0c3830e1d387cd0e121071677f0c0a1c30e0e3a74e8f00107879ca1a99df3b7e8c48f00eacfb25a5bd57c4919d284234869726a5ee810b86610e6ed0bd5b95d2a28c763c12394ecb27a69975dd313e870bb642da8dfe20b0f4dbb2cad4927e425f3e5d847873daceaeb610092c91dd9d0a28a16e988b3ce9b2a070070559a5d88ecbf08a28bd22369c076e3d8fbbc681cc3dd57347a726acd9000284422479439a6f9b2a886f0eb50c9e54e56079220fbe367f3b854a813691bef89bc5070cfa7fd7dd1dc50f96dd93ca852cab28e3f7012fd23d00585ad474385d16d0d69e64f78e8625ccf51ede420223b6fa1e305b898af458c19c8a404af27a2dcfa6ef35aa4652b1117386f4730a071a1faec4acd3dd36e4a3f038bf2b4f1b956637311043eaa172f8d19501b5073a5cc416dc4dfe7e6a89b7dfe28871173eaab28ea46a66dcd047562dcf8926b83fe09f8c453eefcebea889bc9a4f073d1d263ea903a66049ba6ab904aca391a055ce97ac1a018734d3b1c80c632eafac0f19717e0c25d39baee2946a241ff63b917a2157acd50dd12731240b4d020f37180d86f14fc3b9cef71dea78a564eea08d57ceb4d0a035bed1afc0da3c51e7f1ecc0534a40f9f4ba2eee1696ff9672c182678168713d19a44fc60aca829ea03c61174ab95e0aa3b8b9a84e9dfdc9c24650a82c1efae6594fdc82c3dd83d263636da6616c6cd4b4d078078b0443d652ec4c250c75a952da92182ff809cbd9fb2b0ea16e6d3cfc5423be84de0f635f1b85e9ab8b5954bfba18ff9f8f8908cfa8aa0420b612ac52d771fedc47ac0dfc69ddf55a41f8fdfb0ccbe69b90ac9e9ebd5562fe4e285fe63d6b6be0a5cf37787f99fd8dafbab48e505b0e8398893c9c3526424326369caaba5f667991212ccb48ffbd6b63ebd4580cc9dc14258446024ccd58355fc3137c0c6992da37ff553d26300163eedf74b3206c8902c77ee0f8d23f458873046f1152622d731e2c347cdb89c6fed535ce76118308817081eeca0b447ffbe80232974be44c34dd57e14bee1120be30a1f01bea68a623660daed143c768e8f1f01eab95ce138f0b6129f1111a6435448a70626f7203266c68dee4d32afcc70de2ee8d44ca461cc88f6f69c4a306f1048165ce9b62e80a31f35591439761e2c452e1a17bab2748d7b8ea1194aa90f1ab06597abf609b48665e26e870a10f7c201f1756fb19775ccab78977aee11baec5a63891278a81e44415e86249a05e0407c93c480e2e26ad22f6071a5e8222beac58fc442a833f7abe68f3190204594e38762d0c82d10e825793d08a08dc43f5cd5b2e3351b08e0011b26c58fdda5a65833a08cee7530a84cfdfec22c3310747421acc5fa04577d4d50d37381a78a56965fbae93529a178349dfe671e8e03acc413b706fd46d06e420ce6d6d0cd63b4d08bcc84c14775563bdc8ac9075db735ce11a61122ba4d09a1baa261ddd61848e75a1a75b686595a5768588735c79471350dba5ad34459576958c79a970da31519cf2adfbae2923790a218f27f759bd8b0cf3a79dcac475b6f3e03784c585446fc803ca1353f3508bdc2179c6c09af17ac5fcc4941172740a4a940cdcae7f8ba0f954e5752a0d5e9abe2379fcfa11358a2b85a8f96d3ce1ae931db379778e2f684662ee621377bd2356b2063cd1fd87905feb95f13c6600f2ff367ef641d048b058ad840e4f92331017a06449f5de52c86be953d2ef209cb28df0530634141ae797170763ff00f0af2a262bae85b873db5e31d01cff3efb3aa3c6892b3f68b9d89b00140b8531c13c1d93d4d34066298ceaf4c02db564070efeb1b4d6994e3600e80468ee127cf0fcd692005125a118df4a0ebbe04ac3be42cc6c792139c7791035149300280dbb87f9fb1e2bfdf731b981e112088baf735c448b705a5f68e04a83260e1bf1981e50cc7245b16105050cec00306fb8341cb69eebd703b489fcb4ecc7030eedfd9d654f8aaf6261c6e8069c604566e0099f909f3268096752f57aed998ffaed8d4bc7e3610578add0c1508d33ed748c1bb4a54760a6815e19e08b9ed7f825f2e8cde3aa6c9a900974d802e0f2fba9455f1993135d0032192d50ba8f133821ea58d0d7f41a0425db47c14d88bd1b3f90268fc91678e74cf24c348323d647f0f0d7e7c4580289e626ab096a04079b26f10e10feca702708a0da080818a1b8013ed0a3845313b113d1830ce8070b4953d365df9b220d01b5a6089814de60a1c88ba2c4a8f4a26cd87e67c45163046575114ff55beb61552a0ed644b5a08872c4f4521e37fb3cbaffe3f0987ad66d0510ce257f70fe78c42fd5cede884c459c0d67e81465744606f78d50ba994b815c2def4df2e69f5358c57f74efd0fd6494e9e1b4c2a74adef810202ce03a48a54d12912bfd2e4de4bb92c0d7751e12ffa1ce39e683ba3a6b7680b2cb2ba1962bb2951ff48762612dba764c6aab983164fb6e84225c0f8e310f758e7697005c542cae9dc02a49a11e9aed6b4746edd4445e6725306aaf7ff9d016ab532b413f4afb5f56b78145521ae975473a22e72d3f284c0d38b4e7e3fdee6776626ba5cad596e2a0e7dee4db58a8c36e8a8c2a11c5f7a39302e0a133ca1a4500ec4c30470b29c6719dd0895ab8b4e521ed0c24f5412b9acda048772924b291272f41f2f1913fbba096b69a0008dd23970c8214f7175d3fd3ecdd540ca587e4c576cbafc734e589ca17f8201d8feeb272cb048c7ff7b76cd70807b6930e81a14e38f94b0fa175e7a9aaca8c893fdc29327aadfb7888d77682cc413208d41b183e1dc911af8c99a96b95204a611c2e8912cf807c7773f821db4dce62fcf3e2947acdd09592bcea0b0ad2827c25fe8e56d987698365f0132bb5e6dbae4626eb3a215edfb8f2c1348511ee7c13486412e78ba52207fe64291eb0e58f2c53da9fa60aecc6ecb20b91c745310d548dba49d303b9fd758ba822716a4c050931bf89783da0a999c2c17bfbe40e67a81b0ce5b367b9114044be911832b3ac044e7aadff01e308995ad04acf45d1f5fe7d8295e4ee5a283b2988591dd1372e117357c317f52fe4501133ae95cad7e7d4e901d7c06f29e5a0b1d3bf1d27ab0e34e712fc58c7aa1f37acf432893a02da898c3328b2f5c5ca1e3694c76ad78014c4dcc7b5222b5db9175e63fa06bf3801ee0402f53ccd91012955b1491e66f0480cbd91c3d013815610cb048cab1e4c9eabc245382bbef6f5b02bb18dee076fae3ec78d5893a0783e5beaa7581a0a49434bd2d50fa606ef5bf19c5740c45104fe4d75941f63228c823632a9ad7700be4b0ca3909d080aa31292bf749870b3bda8711a13f412f92217e1f69568688da55f31d2af9dfa435fc5832e599549fa546b66afdfd175934861541ef320e8961d4df44ecfc3a12b477bb692e8864b290ca2433720662f51f7951b64588cccd8d5ed4b69ab2dd4a9aad0efd5d069356aba96001c56759810964e4bad956d51c1d512abfdee2370aea6676a737569ac7318d34d8226f8395c73ec74ba4bcb53a45c37ebe841b6a27b891d82899255c4808608e15ac466f450a34bbad3b270720b9190d6e2e566c2f08911e2395f812ee1c3b1e73dd78e75eedc6c78db59b1ff76a37989f7838fd9484b5ecb6d849358b56e2eebdf8b7bdcef1ae999995fe49919e7b2621796a95241c22f65c07523e6cacf657bd9df15319697d64a4e3eeba191814db3acc841e4a0dea9b2cf5e451d0858d5c4323fcc5324eb184f3ac108a9267536720516c6e82506c38a0b472acd6dabfc3d05975ad176281a84a663cda7e80d040f3a88717abec8f62616c06fb0d2f26dd3c693f37e288c2e576ac67722636ba96c7ac92a09b50f32e40bffa5a106e0d1602158af439cf4cd9e2d439556c7bdc6b239240d5eeb8e44a7e0c087bc245ec2deb95172e95a206ea0bff799b5d5515d2213372125d45b14ad2ce9c3e4634ef0aa7b4962cd6e787316f399faebf4e49b2f9f7e07a858d00f79cb4360df68db35617117903a147431dff8391cbcc3c8421d15451f7f3c688d9614d564acbeab9c24782138e16ac7e81fd415b6b957d839393efd409f98c4107c86e50382f70d91e0b4e6bab5cd15bd83f326c870697e2e4f402c489b0c4b8b214124c3da8eccd7f8d0b987f33563d15ca5ef17cf5e28ec899c2ead9ee92f72356a564438bfbc134671f6fa071937394d8be1103b6b610762ff535ff8edee6cb390a7cfbbb0579624583da60e8761f176b942d839f8fb8271dcb861641ce4725b8632a190d39cc212951bdadb700b2c8723a7c6e91eb48f8c1ab481b14cbda0efd628ff035ba7c33f5fde8516be70e14059b91d769cf9a0e71d92f64aa943ad52517d92d54525d08e2501271e0a6e8ade644756341a455e5f85915a3bea5a9acd1a627005662c2ab4e96166bab06b2516f03af9cee8ecc95b2b68bdfef98196756a2da801fdee63b0a5426a89584396b32bfd5130c5f7a6b93b8cf590a144fee3d7ec362cb0ddfff7c75c1e20a7da047118aeb5a6069e76dcbb18a6de3540ee0285af793db04b33e86a06403d9872bdca753fd6b7ce8d10311f9dd00c2a41f51af7c1aaf548ca8912aadc1ee5a3d45b8eaaf35fcb70c1ec61e91ac5556e4119ef6a1966043826691f610ff55f0575eee89844a038aff97643e98405d6d428560e151e3ffa40cf7db881b4bb8f50c4541adda2095766892144065c3c35812674a8c440735170ecab6b1a6c41466d6c9a8c4605bcc25b784a673db4d45425106aa27fd3e8f43c8424593c3b4e61edc5a77a12ba29e477dd240b286ed8d0012063d087bfc498cd7870052df9aa4ca9be4cbd28fdd0f11cda884a46ff5bbd8246ebb481e079e10612a80e399ce3d339133606b861b844516027dc02a5a528c5035b68ba8d01bff8ab2bd6812683d93e4b9d4012725ba613b26137455667eb4a905e09a3485cb0c07e41289d1bc0eae4653a78e18ce61ad142a04ec8d7128a6cf3bf990b4ff0105e8e6e74faa1e1386b0f0974d9f39f1b724a94a606206dd793547975560dc8c355926ed7215b4f1a0550635df83390164b2f8fd270f89502d1cbfe888fb6453b8175d026790e5787c802c096c8c90c59e2365bf9488cdee29bb1380ccaa3a652076a383b5d5be06eb27d6805a00ac2df625d88ec0e4905a551d050b5b599b28424024d6d9d4f150e8a0bff443c80454c7d6c13fb0bff493e8c2a6fc449205d90cad5cc0ae139819b2bd8680b01bc46a48f4bf66bfa7ab5e120ea90534272ad8176b06d235c031dd856e5230d04cd0485b5aab827426bf905182c5014ef9915222af6b47c84ca99a75abd1c85531dd081d3b0fa2a816652c5782d8b2b49cd23d8bee83f403117cb4081be13de6138f4a6e9bcfdaf83b72ad182f23a2ad2a38ccc55425b9160b861ac61fb564f220b4448a7ae84544993ca73d68265218fcbb68157b49dc2b08e88e014e248f674590674580623304da80e25a920f3539ae8528fef78262dbd92c3048bdb7138d572e459435824dfecde24bc21a0747158229153f2bae1511c292126f63799d77c3ac20d8d781526d3a9f0693dcd3a0eb191e883a1a3d4800cce5196842011e467c26c214380acf1be9bbe8c984ebc920891c7ee12e9298dede650576ac37739680859e7a9a16b5b5990c8c3b007b905f8ca0dee3ac7982748804fcfcef16741e7e83f24f53c4b3804eb59e0c8ffbacac9799ae7163a837e8f68bcc8c550b562d474c52eedd8d4c97b18f02ea853afeab50fd6efd111b30b882385cc3d55c96ea6c997516086aa7f7ec86f73734541742777114b13aa7d3c87caab2780d176819c9a6e76308b4ef908875e5269b6da53a20b6a0a0629aa573f5d2f7b619057fb50aec2a1624db27005dbcd8e52b777b9229b4d12aa4ca22287131d0eb481376b3570894f108dcaa86f7b649ce29328d401c7a8843fca0acc699d7e8174d8163b0777d627e2d72e7e165772877fe3f9fa44f66900a5125b88f6f4e89abf9269afd4cdf34ea050b6960ce0d233a3799d51b56a1176418263b058fba7dba51233684c94bd7aedcc35d879fe3fa60116388453cd4f91f99bf56d94e8332acb1d6d2e04d1cc60a858b5f72eb72e9d1c91f61ae9221a75551ad87f72a7936f0b59070924d54ae8eeb476411d3b593fd69a88cb8de027d98b984544b9279d2ce9f3004fccacc0f851abb0edae707d4782507aea48df075999ed5d744af0053557f3a9ed37abf0dc15e0be3ae0401da30ff6fa962dcf45bacf19ba65d6fd6b0e62a3f9f3a3f68b614f2a017e0b136b579345c45c7e16d84ffac6df5e17aacc90ad26effe26148c75a597d6bb875a98cbbabbcb469996b00584591ff394c6a34acae3eb83484cd72f107034de13d71685ace5d90651e6e8a8aca13da5f1e9cbf24240d4f108cb249b3f915609a160f8bdb53c610d1ab9e94c64eb6e14896f6a52be6a3d6c461e88cbd70723c8f59fa95df88528d1adc77d2babe720830dfbbe293862c54b8d8d588b956461fe23936ca16f3b0773b03f3448006c4defcf47bf8047dbbfa23a29e2bf5500b7847bb693103fc5b6e2c53d7ab686c0e0ab1c4b03f717d19f27b3c5c3c2830df2d723c16d1dfc7b020facf03a54e587a5c86df58a59d7c9e820471921850d436d8444311c7f5afa974c9f3c22bc4a397ca81ba906349c1d82f0a6ce15ad9932e81970191dc218cf71bd4bea174a24478a38e098fe77982aa8c87fd9f41bd5f09fc49867f5cc0fdfb4a13f2bb29c0977b4c46173b7a1c27d25cbfd15cef58cd7050237d6a606770c45203a69316a8c1421b04815502ef07e8e242f2ce667402e7894332352f44826c2c81f36c3fa68c9d0b116491987395c07fd7284e10c75b41e72670f6cac79041bc2cc2050aa6f39a5502d774c263c5e2a2aeee0c742f8331aac445ca7a4ee9ea587bb8aeca89e0ca8298959d27a01b63eab62c7d1c7c4281a3b0e2319d2c54f3833687e75ef2a277d9b2431682b7665ac180fca2e90380a1c203886b447d9c8a9d6c14e1766518748ad5e9bb265e0a2a2823b42ec210fd91204b0ef4d04c9cc77ee3447c4756860440f293c2c01f390238404f0a4d650f2e9ff014ae51be91ccc5f0a4f0301044dd66edf49047e52785937b3c2998a5284e0a9db1bbd2ba72cee91cb9f56797d4fec002e5bbb00b7398149ef9e896543a09119abf2789cf117471f9f7f116b04a1c6021e828ddac4a916a44a14250c6958f6da081f12876eec779d9f9e64e7d307485d019714fabace9daabc22e8feb2f64543e29e17c6ce20ef8ec84c8fbbd1486f99c3226fe670790d383d5654c8890d866a9c1be8066db211977b0cad47edd9767734ebf596268b7c46c57cc598aa9379e13a9064b64470e6cc67cf338bdb9a1059964fd4b78918de971ab82f7edf524e7b265dcab0a140f978f8688f88de488c91e76e6ba5876b3fcb5fc692ca4072fbc1eeb6ed22193831509e67114a262a3f55073c955801f2b01e35d895cf6384887000257dc6e329ee4b0c5fcb4055e1a3edadbe7f59b9846b89ec071b57263c1edb6641ab07d9aac17f588b8bc3de670a7f082b222afc5c27bec266a557ae3091be7794e0803444ecd4542f3ed98afc98ce4f0ed998320f9e8fdd16e0ffde9e8bdc0b92859deea633eab8a204782a4717312cda55c92b8d5b4c4dc6f7979e6889fe0f2f25ece6b6f0c265bfde02e6dc2629dff78f66242658b646e3156a293727bda6721aa430ba4beb3f8e3956b89f9e27c38e7d18d53507b0ceddac0e3b6b404bb75dd9f85976c478cc8dcb956c7cc6b0bc06911ed5564f2de702aed0e6c3ec9469c0b6d5c7b252f974b2e29fea3a696aed8cb62d2dd529c4d4457bdc3706cbf03d43749019eccdeb9992b063fafc4dc2ed17384d5ac549e438659d1a353a0d7346d585389ea635bb70e75a4ae605c25809ec561434a49c22ffa7829ba5539800b7280af4de8d176eb2044e9bbf964163e30a151421523e6db057d33c0a62123dc0bbb61748219cc0e2d8fa8e3189e8858ded0bcd2d1e2c026cee941a2e15a78be5b832b51e3839197298698ee8013d42f5f9618e4c82eaf14ec97f5a0a9817e267d6d693ad678415044a3ada1ea59e4eeaad1cade5dc11ca617578aa05c4a70b5af5e225f4835f0c9d438b58fdd1b4f140e6cd252bb1ec34dad9a521057433c3f17c8a6f4b3abdf049f9eafc3f127ec264801365dc0ed2b4021ca45adc7071646e0c9052c5589647e31a26d01e4958a2c5a4266bdc1b4dfee7f5a751e0928205ad079d675616c8c5b7c84184321240bf944388d41b2b82b8e0965add04032b8c7b0273246fd47e6428be979221799174ec92ca0a7b710f3342c785b82920eb283257fada9613b3b40f3d3296ce62c1e7290756bad2c78dc1318f50d6abcfa291db93e70b7a29ace7c4e2888f5711fd6764b7c1f9f1e433c104b47c1dd64911014eaf3b73f793c09d504919b68a45d06b6e67c45b743cdc92cd3e57ff0f1a097b6b632011bd0649b685d5d34ffe48a397561cea569d1cf86778bd012e7a680078c6baf1ebc526fc71dd9824fb08eef264c803a2368061a03b3cc0d1708273450cec8bb9b2b0ecef0d3d53d4ef343df42c2f64084ac6a0d840e6c1b335aae6a3f887585d17de3972afcf1b4457139d75a550a9006700a9bc9327d22296fec50843d5f1fadeaf9a9adaeeadb79da5b8a55e99487661bef050f58e92eacf66791b3bd068d1f6d2476daf7e3f584d988a66356f6d69ac5443dfb65fad60a3717bc800b825d8924764fa2a6ce7540e45b5b980859b687e86ab666e24fcc1d591c67e2c616f2f8af15b2ecbab795dccda53a0290ccbc46b5c14a93012d0ac0371536829013e52711d282ae2e7d5f0628278abaee4f1924a1454f1688202665d254ba2a89f31490ead41e8a3aa8c8b599f47f05e20960a9c5c75af0552b27414fcbd272a1069063770db4c55888f9c3b4732f6d996ec89f786165472d60338586d1c7b6d9582ebcbb22a9f8b8418826644e08e5999bac7ba9153e052748baeb03e008d2a239fb70410409bba55c22588544e6ecb8469c54eb81748031f323efbcee3ca2e6c141e645a407d75bf126373a22ca42b3958e50698e10d80361ae3cee047a106d710945291d40a4fdab5e7e1417a05043ecc0c04d1cf6bab68f673fee9804496750f03e3abe44d4e03510d1063876e08c9faa16b5b5214a2083aef8a7739e5ef0eb355bc6828034ca78162daa822452f6fc7bf132096a331844cabc816d5f30a6f16c2659e8266190c5a44d48f6f903eb702ab610db02c77a079ddfdf1ed75ce815849ca3b341c2306d17bef28a2be28db83d5edc8dea3eef064c7111d742ae6cd2a7b1fdf21085b84588af485c7cb5347ba53cb6ae6c540796128283a24ffe95de8e4b112c2ad0f9db01894a5ff2e24151d81957e8e0225b474eafcdc8bd37a1bb7da6facedea0fa2366779b7ed601668d3734c6e31996168fcc8a23b590087866c9c4768b2c4c928ca30373a3ae8cce7d373da2d3923c2ca4b087c6cbc5ee6edf2b4f700207ad3dc7c51e15d86aa6cb16c39d90282602ad8408bc8f75e6872da535e0d05f25579fb2747ca34c9f945d2aa745ab534a378d5732e1c85c9d20e839fd98e5843d468cbaf9c8c8b37a696f2e397a6724429f9c8f6a758100759c06a77d4044bb9541e360253341bd8de1f78deaf5e1583cc74fabdb5089df915fd838990470902571d9b489da403612c227a457b8430986781144fd0beebfcd1e38fe6b505d1ec092fecb4ecdc82e630daa9c81ed9e568b55dbc5dd60ecaefaa38b49dec98b3ad57cac2b19f08cba7f9a128ed766f568ace0f16d5cf3ea3b5dd757e50e9bbc69409228d7558202ecde771d437cc2130be7d5993164436646e5e1303ca1b892e09b66ed4ce1441b51031e16c5b9f72235985463450372451d3e1ee8bf287bb56c92211f3946bb95483141d53e4b863b2ebdb85acc84018b836cc8166bb17ed5d45948771c854f0e8cb4454165707d2cf7c684e2c0cbd04029eaad903fd88f428dd39d4d1e3cebdb4a03d333682e63d388104a01c7d1e00f112030d1a3541f2d5d201a08e9f7e184da87e1c6bc69c03c162ea5ee7bf2f7b6a80b09204af5ab73fb5bf67387295f4ec5a1ba4cab7caf23f2491a33a2c9f14100cf9b86e6b524f8ca3de1750141426fc6c5d8fcfe13b62ee2666925eb6a22aede60eca86ad36ad281c841b3908db388e67a9b2578956089b82f6e30b44b5bba2e9a6357754fdd835b2d1b579105ce378c91f035776f4e1c8edd780ec4b67299724d41a073849dd4f8177c0809e508d5920e98e708370aea43af73b658bdf14f9c5add751de97543d3ce039df9e8d743cc6c96d76540ec6e600c1db2028c307c89b30c3a0f46b01f08180c2902d381adacf91ebbf7f78836a4169d8dc5df937626fbd7947cd3fa5f198a743fbc547109d482a8e4035a3d0309ce2b953dd25d8b92eafdd2e07a9127b5a326f4222f68d253d14c063afffd0739137992c724ebc83e9a4eaaf65245708524dc52e9c06250be4e213a828285c63aa9e016dec964e7a744a81f4f9c74b068bf4561569ea05d039bb3001fe14b3465f97fb32d7bf93f8a326c7a57c8e40006a130f90b21887d079380e5c27fb82eb834d5804d2e1c7d235b142a50eb07a649f50ded1b61dfc341bee97fab36aa50f4e51f6ad00f9d3f3a5d4c90dc3fbe543e32145f26a391a9d38c2f2bf1d5e09cce4d8f67d2227e09aebc1e3044191ff4fd339dc44a94f1e262ada20640e872044ee687172b0b4f444af6b59b65bad264caa85b2c830c485202e6abe788abc52d21a5ee8f7ab3c66def4e93da77b88f2216a7a662add96c7e4d8ac97d284f13a4b8604d9340cca14595b6b3b23875978eb429cc02c400ba682cf0063e58ca1fc88a8c8ce85dc86c2c865c2a8dfe083a17c3c5d1c10513af85cfb6ef52f8b807bc0c3bea35f0fedf05f1e3d184ed1f5e5a780db8861fc5d2b4c9876ccf3574c831c6d282467a43cc8c627010956c93bf0a9206cee6716d22d1e378d63ce9fac4f439f460720916c061852010a45bf083c8f5f9ce201148b070173f4518c7b57d03dc074301315c4786f207bc555fbb6e0db05b3c4bdbe700b087d4d527c570600c821e2d2cc88005f2eaef422ed0fce0a2651864ef5c5df10de9348739aca682dd9c1448ebe53dbdf91d549884d0a743c61b6000412384c1d1485d6d77e21d47f56dede6aba705c355674c33ebc7b09752a997df2d3197488cca0ba5a389898014a29717b629ee33652835a490895f8de5baabb90b54d4fa628cfb081daadbf3a5ad18b83d8d9a94776ee94eb3658e2f3fc653f638bc8a8e7ebd074aa37df72fe8ba982e9646171e5dcbafefdebbc0b93d503153fdbf5195cf1f3cda4b6b0509b4a12d511cf5a2c6f050b641e0b35673cab7c11b1fb208159893415045b5db3ec7595ca7d305c5545e1d91db8ff538b799d1b32d5e0ec27fbb892aadbe51282c02d3e70ae6a8aabf0a0dd814619a69177c6a6248f5ef743b7b329eee6117b4e951b7d301a822cc527891a79f120c48a0d6816afcf168c056b5c4c45871f333047412154b981fc4110d6185b86cff3add9c4b62ba02fa97a8d17e34641b5f1dda9b3b713ab15b9aea8810da9822b2be5a0d9d71146edc1957b26fa134fcc419ac3bf3506cdc9d12883efe69e5df93932347f0963efd8a641c8a080469784645ffc9c15fc6264f6612690579bdffb878c918d17c8ee69b0495d8fa2b0067b7dabf7a05fedcf4b5d89849ec950202dbb06cc65ec19689aab70d593c037edd4bbadc070b4c3a23797f79f6af1cced8a0d5e3b977741c609fe70c687401a1cbcffbd4bd2bf11663ab4301f806d737497174a3effc1120e3844328ceaf5f624618e87a51baa841c656d70dc59d04004e3aeb0035ec073c8581295c48afeb018ed086c85f47ab1fd2a6b904374ba79628c7d454a765b920c88e42f3a873a4760de05c53746e214bf822468ceb3a3929f5495ba66bc6b7a8afaaa933763d552376895803fe0749ff4e5cc3af41fc515af13794835773ae7fddef49a7ad332cf0527cfa47bf84d81b168e08b7ebcb3ba4fe49f310c316225a97ad6bbdbffa8155f74b0c3c9fbe99fd0562a558a9bbd55794e69f8e78a20a0dc9298814ef2ada454058a23e4818d7623ba529d0251fbddee248eb37175d7b44ead23e6ca20fd68ada775e8006a781c9470e407a22c18716b3cb98d04afb7c80ba34e14e33034d7dc1520fad9c73d28ba084bc4f48a9d07c07e8d4f85f8bd4b451bdf337466431e37512e1d706d6a07ad4d1510d33183073353643987d49baba573a8fc72de0d3356fc67b53f78f3d896f47192be049e14816ca04bef447bdda3caedfdf703ea446e1c77b5a5b2acf725dc5faf30925da1179474bc4a4fd58c49496162674e599556531ca53e69622a0c5cd9ef3f178fb30f8086952bdabbb4733aa5e9e45d5fb4d930874de894a951d332939f2a5f662befad984a076e7843da1c61d7c1769fb5224ee2862375c4bfce7bb5532bd622449bd39bd2074f9541ad318a6439b718bce5d8f4528f44f7ee88690332a9c33e5aacf615c551d287c7eb7da258b986fbdc330f21223e23562fc926d396234bad9cac9f6486a96dd09ba8124d7d14dbf8c326dd1b2b477490ed5eab4263d8db4cc7b7f45d438ce332c49838bb833449b264923a1c08ff66889301b8cd9b3114ff6f3222102bd976a1b9af08db4bf40f628639cf87ef9ca25116aa6189cbf456690be8784c6992994e9befb6b244842eef3f52c7f1d5734efdd48231159ebd4ebd34bd761700fc04b2807f05c5696cfc637cd97e9dff78efaa7305eef41aa56ba996c3d79cd7c312c48fbc2d99a17404e28fa091d5fb10ac582ed23cb9047fbd9062be9ee3560b9620da9792b5bc757e363a06baac81aeb28b9bc3da1f3da99d876e857f3860d112c1374458b537b10cfe00c8c278e3ccb8738a2414351d8d46d16eeb5bc24929c4099ab8d95c233353a96e28b9ec3bbb4b1910d312b44ba5919db71a9acfcd1b8f3b47b3951f9366b149fde3d729f682e2598186451830030e30a011f3a1551e371a0f5f22e37dd725a62867a8e67f0befaad0aee00b419507b1c667ceb3494a35776e3463dfa7eaecc1c1382efd355da3651c454ad1802d22ca56b9c440de5a24c070ef0f7c3150a23b7387c20470448a2574240a43175b6c6aeb149f77f4f0488263bbb983424eef5b7c4ccd1917bc7da9e2846db92cf6d4f5ccfdff2facc7c073d1666c6df9553bbdc5936dd8e17ce014947a5e3a21a2b32fd3d422b4cf96336cf3fc3df4112ad785ec0f49d684c5a3dd21346e69db040a0d82ab336fbb350c1a6a99fe18afa62dd638af60cf8b3f422c49e18395e325653bae4417d538a468b2d1efec0d9f5caf11707218c004b4442925749c7e736b9291c37c270eb9a4af2920162bfdaa9b239eb002545484b27467d187f218b8d120c883f84445143d8b731cfc1214c53c598c6cf9cdbbb3a02f1d65b8291d725d06c98cc84910923d9a4018a57265c522c86a40d09d8231d017c58e748b3307cfe0566c4cb01b0c00c929ff7984c90feab4be4fdee68131a2e602fb43a6d401344099f9a4d26994fd8895c5285ac054011722ea11d53870ccbc066b153b90b8c4173ed502cd1f84dbaae348314c7406e39bb2d20f1414bc9091b605c07599212f42af0c974120d019c536ba1f5d75726b72b28d4903d2496d29483b486aa9b2de6a4b9d4ae085a83a2f9ce82755d9208464a9c22b8ade6bd3cebf3a0cb633b70af268d792d357503f267febf40ede1f7ca8484b0a2f023705dd42672dd39ce1b82a27174c02e585fedd1499c93774481ebb513dc57c4345cfba44722ef7bd3ed21237b61324609372256a26060a2cefb8c37dad6fd227b6f889f816bee07326dd13282c8c83208b6b89b3a83d54427589bcf9984cb86244116d21f3426bbda99c911d54c4e2eef6049238dfec3e19f44ce3393c94945a491940815a9d25ed64a7b3b991a81987080d2acecfa8fc815161c6f0366a624093c93449e241c0648d9d48f34bd64c3f863b47b29624fe73114f9103aec8d226a3b45b56e366f2fb751e318d5378205606743c36dc21bbaa08334c1566ad8ba64708e8155f73c7a1b7498c8ed36245eed33f20dda1e1ce24cfa885a4379dd42922f301a42b23f6a8f12a0c647b445a35d1fd60bbcc093a2ddc2aeed73024ef9184711d1e83343541a8d148467cb3e69aa92a701000f743388b71e6fc06d22ce5388e03710ff3354a64d95d41b978e3ed061d51631572677f6a195f2d789d69113bae1655b161a82b598d3581caa9ee9d2e29945e760219ea4a10419b05360fb5f732bcc21d1e2c6d890501efd9889e6e78f12aedd3efd1663a7080ae6158afa21490cb12be1b10f0306233b0d4217f5152e0df0487b9b039c3c25eac230132c55c8af726f550d9dc6c176f30ada2f2d4c7ea422ca753e047e4471f5b349f080d414997bc1fc5fb6beba177b6fedf02d1498b0df161e23ee24434fcb81b3b7c545e7d8bcca3fcdd2b3c8d0ce7e83c1812218321182ae0e429d0094cee1a5417626e5fce3c26d71d56412301e5b34137ad39b74c0f1bd810484084c337296902981d8bc4fdd87b0474023ea4a58d693b8197d4e54fe994967bebe91c6425206f721b049dcf3ea9390aacdd403809b6a4f4f2153c34c03fa8d9ad0be2f873d5d93755b5f0b60281a7828225fe5e427d75ae364c3b7944bbfb904be16568853fb93d6f866f142e1ebf20982c81ffbfc90648e1fb1d9449395e13bf34fb4101accad474ba5388bc73a209129c9b67bcd19a66e66f89be6b981df6b9f34afbff70f0ffd7539e0be4a7884f72110d63e0b45914a4eb1dd6af453b07f7c49234c8104a49d27f5d29fd2a74f33cf13b6e757c865337e34ee3a8aaf3bfabb50572062c1885cda891039b4a024c5f6dc671cd29c07ac057d12d03569846670008b11489c68e3d278850d38f75eaf690c17402a141aa0ac35dac10f0e515968e730f3eac93d04ef8f845749d6dd08ca07e21c0e130a1d1977effd608f3e4778d297cf8d017ad64ef752098bfa3206821a25717a38de00229e41648c1659e18f464ab8382e029c634957918d075238dc126a31053748db028d8da6c46bf4a67a4926afce06dfe856d441ec8ed7b83ed6163f7b4c3136055bc65f9bfb395ab94b133dc94f6115419a20443b0e02573cca12f769a7e6602db0a98bfda8566493f0730262ffd9c3e29f5964f3282a0ff396c95edf43b4ee9470dfe0b529e91dcbbf933bbc580a99028d104e0d7d5664dbf06f57a1729cdd3ad51278906d74ae98868f8aa7d442c6220c189bd13993f889c139698edac8799e61db68bac89eba8ee00579dea4f90472bf2c47dba3a2701a54ff1ea979af7d851c1b35f0017ae0c9fc03a227a0553c5113919a3414b39426bb06d7b71d896e0300a51d69a497e0f693e3389cc37b070dd86cb9093a995a412e59e5828f3cd464f526a963bdaa9977431184eac711b44753dbccef70d752ccaf9c3fb41947a94c35cd5411df03b94289869411eae446c32663d56ec5600f59c6e7861791bb51b8c552c5ab6494352aa43003d182c0e9a52ff0f31e7a3c8208fbcde1b93810d30f0b597c14ea352835a3619991864bfcf93903a7f18bc89bad3f9f4b546adc1d0a020a507393d477f277574440d94651d515ed5e3b1671a050bb9a230a4fedbb0fc9429158c8780b90686696e9d91e9b49ce2b1ca16a67f2f8888c1ad740d0499d26a2af3e077e21348b7ea8eb4f03fb33dd06a248f93ea36a1747bccdfc45b7660262647f449fcad621f79acf35e5a289e2a1afe21213e3958768b988496c9b461ca56a064e8a37e391e4e87412a9e6b2c0bd8ea880d03e6592473b199bbe97c7cb371e646fbfffbb62a6452a0258f9180fe0ae57152d947a29a97c2724fcd243a899949a81285bda242bc8b7e8b9a9f878db0681d5ef04e6cc344662d523fa04ddb3ff1a76f4571e5ef2612607049fa4fc1ab6915669e6049582d3028cccf7aa053a3e8d75828fa7cbf7a032b9d04790dd19271c619c9f5655a033fda16bf076758da265e86a5acf0fa1cbd60800c746c636ef6d3f31f4144347f6487ec40e2bd8c2a6b3d938bf6ab350b3bfea27a296ec3bea14052d18fbf9177d06ec61a9bf247ab57daf7ab0dec2900c09614da22144580f2aa33afe530b705919eb5af3db6777e2de428422bdab0b96adcdec2d9579dd21f0868b9eb438edc69c2a6f4ad13c68e8bc2b46200fed3c0db27079f1917ad12c27d89f4fdbca64bce0d155476a1ac84e2a9c68a7be39c0c186268e49589c19a49403dedd7af6efc58f4dfd4d49bd98983cddde8d1d7a61ed46efbc29382280496a8900045de7372ac5f0dc226d3e5c1797c9a22b99fead30c9c9c1ca86e8ffa4c257fa88fd9f9b46cfa4260c501d05b0500243ae76a7e6424cc08ab57ad08946910103847d100d762e10aae14d1ff4264479e081395bc2bcb8b7787ad73120f5629a28f8281e63cce522bc7e2e6099f3b98a1c842e22c7a1e66933b689ac9c50cfcbf2d8f2093d1ba9cfc3340a29e715a27e1e9c294e1eeadf1f463969e926df4d50ab8e3cc59a06c4ede4b2a9028fbbe221203b595ac742ae2b7d91359c49ab39988d3dfddd0428267a884f2891644a252786eb703962d0600b041c233f6ae6ade28f5bde10d31c66d7e13bf4379d15b00f7252b26b216f44ba1262dea41b37b04b46ff4a04053b2f16d23636c45f494ee17ffd01258d556fd2eaf900c1d7be6f390ce3ffa86a883258f0413f6319d382cf794be8d847f80a9d166a5cd71d954326dc9edbbd105d9f5b0603c811f5ba35d937d7c9899eb238f474defcf08224d803a1af43ec6dcf002611703113710a68e58ce26631a7445207c7e87dc150af025b4fe53e5d46ad98d585e036e82a27fc7c0abd067d6e962893e2a4bf565431375abc3df7fd62fa35ad28044076a2bca7efeff93abd401acbf1e4663b27cbf10167f8205369a2941afd1fbd6b747d74d5e8ffe855a3efa3a346c78fce1a7d1f1d35fa7df4d6e83299797b4cadf8ad525b71c00db630332a5c3c843fbf9ca42959391026153b799296fef4eb9db1bbbecbb1d9142894964418fed539ee089f27a9841b2d22c43ce14794ac074a4781a1c41d504a54af5f367575fe4f89b7382efce635032e8147680fdaef168b1f4513087b4d48400f5ec95e3f48603906a96efb608e374dbef69db5cbf1dae0ad00fb801d02132c537952c7f068479134d8f2804fe64cea9d57ab6e708da759eb3aa28702cd8df69604208d8c34cf97e4a19a11ebce7ae401937eb151d19ea2c320c37e3626430ec4b788203a87a61512578880bee8296dc934569bebe72ef6773e491b91d84497d8ac0e02dcf801465f2dc7803b133271ce2c1020272fb1cb1e9fc75286a41bb56d939c5e5814f7701e4017f9038a4d1d25de66ea445ea5f8d540a1d4357b08ea7a2d8597c07d4728d2051bd144de4549ee408a8fa9c5c4879570468757d3aaad604062514371483a48c4f3ab0ec649d1c8bed386461e48cfad96a531aedd46701985964a37cf2346589adfeadb6126056fbc3bf951436e800d399af7270d45886aff3e70080d05361b4574158f51e90fcbff04a922e31ee2994d716064d51c859078f250bac2b70cb79a936fc011ad7bd359ca5e2829e93085dbe32173a984ee4dc4231d3af71e46d3ef234727e49de22d98fe0f912d5af0c8b0f6c31eb29c993c50464a4b9dd287945852aeabf73e1aee7da4275dedd0d2965eec542d6b6d5933f53a2454a66f57f7ad38a55df2162eb0177056bd2de8d7e8c466de0acfcd40172c2cc6ebb756a110e6d489f4d6a829f56455c7204a2fcc943e457908b7658ef1ec38b8834befef10d93e9ede47c78cc4c722c803581562a17ccb7e4b1b133a8a16001c771a3da77961840d4c0ba70c009dd5529b42791c0c5d583acb0bc3855618d583d8424021cc39ab4a4b78b0c17c11e3febc6375569886ce9aad8cf7c6233acc871be9e29fcdeca79e41ce2f09824fef13ddaaf659cc36fc7ee190985156b85cda4fc7273d321db0f3df8095aa4b7fd0c46323d92d54ae69ac71ac30295f80144f2287a67051b842194426ad82b80790a34cb2ebd253411bb16e514457f1f9d81540911beec49760811240d855929204ba6e82bfff12813cf918dcbc40cca0596b39290622a61c06efc288ce1c5e873b73c82cc1493deb10e716f3b5ae981cb4041c33e61358cd4dbcdd5041948ddd1a30c1bf7bf09c25c3c3cf779445e47574298dfb8bebe18a3abc3a38917c6fcd6da25775bc2a7034119ba5702fae8e4b690bd9a832e3575ae19ca0ac08a02d6dff6ce77562d4c00b3ae5dbfdbe22d817aac4d9a413619fc7afbd5f50520088adc851084135faecb99ba468d81c0b122557efafd08edd1074b78d6433dc4c381558c35bbfcde82efa4b91108c4562041396b856a1e3a8c313977b2d95c5d014c7ed9d3746bc39ceb838c53279ff0202e7fe315a9b20602e701054eb1e2a57889ed87698e7ca86e9bd65d2ae1a042248b6bbcc868cfcb671424108d7645b6114b842cb29aa94c284ef9e75d9ffcadd038fa93f554b973939f3b66ad7fe8fb680083d20c899e13168ff17c10b2219a3656bca2965cac5c79b42a4d054defab0dc3db91f85458c7ec53e7c14ce38a2d6ff0e88f024f4dd9fb817944aef58871dadf76d1b47db06eb7f6f8d473bad310b57a67d9996fb30b060ccaaed0a054ba70a808c2e9e7274e6506b47cf24d50553d4e4e5c1e4243a4d7fd860bdf524c062f3a36409efb13411ac47468fdb5d4930dd25b94ffd3e79b221d3a366457f8462583caed0cf47dbf0877d66bc64c88bff067939b856e2bd7971831733b623a45c163611428d2c18a1d57c6dac886fe0ea9ccbe4508af51f4cbf8999de6bbf10b16eeb258f3861309988dcbd38738ce68caac16c490129d3d1e13842c44ab69004f6fcf804a970074a5690805a954722cfcf2ff17d4919cddd20cac7cd6b6d067512cb69a558209615fe48de363e79ce1962c3535150e7f3e2a9b91dcc2d0fad2aed96d62e2d6bde73ce65d63758d8ff0bee939b67a6b872565648cccd421e0ce1a0c9c1e18211fbcd39eb85050d4a9c8d27ea8bd6ac217cd4f36962e365c83acb8671c0cb060264d208de43a9f898d655930ec90c400ac77cb1092f42ed989df704894db0a385041f0c4fe7761b0534a990db9138fcbf6b63f036433fdefa67bb12fde19238716ee464f342fb9101d22b3223123fa59fc241012b7062629b9c1024858b8b4b677489c8e523c9c354386d64b785879465f208dd7b410857e304076469b4647040d7547bfd2b922065a4010a6baece49063612e00b28bd78893220edba50f5b0a9167b7d818d597680f12bc0aa2808106ea294c9fecff83c6390ff2195752cb532704bc363f11c4cdeb234c85a3f6ab9a3e56e180152376800582f2a0178131b03d0cb534cda57f6cafafe1741a7f4d44004a63fbbe3ea2e540172abee6e43f2ed34d4858dd6a58eec0f241889f501d66d7ee06eb3ca1b3301d4992a71e4f0810a21006fc88e4debf6f403e7d79209486891de8221a0bad1b2b0d2d1148a6e730a96945727841a4bc36242213ae042b1cd4b44e33032b15d0b6ccd1ceed74a2aad8acbb4022fc67565ca918ac4b3ad9f5fd483116687df0bf4346c12e72c6311beb5510687e386551d7b6f32c0741f1a60d2c12e1abdda8f65380f38310fba8105815858c069a9e3c00baf2bbab79ca31318698a0a072a504c4fe3c19614a61746c3638a9532b81e79770bde4ebcdc048e3b043d0e5920d619710ec593efe925097c0d2ffab81f5ed8147d5c4b312eb66c9dbe1dbc258e3cd48dcbde070ca88968af49463436beecaedcfb6890e86a1e1299350cd3a2bd54de70fba04cfa8a3cd2c40b5be5291bdffdf6d3d2929d02c90e5c0e5f0d611592244ddf8fa6ef0bab9876a50fd40249b2a03c81db3858643a82290b93134c431ff8c9e0fcdebd05ac2a9c08f118472b9316262ade6a3cb5306d717e54a850da44211315d0c67402f7293370f022831654396d254bacc2891006bc93f7a3d704d80ed6244c8267724219b2666cf8bcef6fe4e0a1441243976e4789b4f290e424f01302e931cca0e85c9d1e6506559ca4772a5dbad1748d4f60a450da5227083ae81ac168519e6ca2ce441275a3f95541c6134229fe9a31540594202bb62855204a01972045dd67a65c3ad7ee744171e95cbb9f02b966e1a8f0c1f0039fc08260411fb882eda0e44047f4d96ca69cb61d9e2e252edd0e86b078c24927d2b52381aa89d17b200ca311f805c15022729a0f06120c0a1a5911d4a4b4894e46a08cd009540e503940e500d5d7c4f84d38e104145070e0f446cf7b7177437a27d2bdf0631941d46732c350243f91d403044f121ccbd168249144f1244ba39c9177e32855034ad390d3801b2805e1f41e02a54d1c3abd2f3de9fc6ebc1f7d2212c81728e4f8409224714ae2f4e20e94219f873b8b45a27e7097294f22ca3c99313cc677100441f14f26cb9f4ea7d3897c6739bdb81a45a1f3749ec8d1389248f3b4225f14021d3439481a8942a08db804f926f24be493c81fa1c813193e698a431fcb7bd22ce2893a7f8d5633c6ef45b18a510ba4f64e15139e8a890f049d3809c3501445711cc7715431315231a162820a1515133b480e108b3e191f0b0aa54d86adf4d7e8fc5e94f2d5782f62717eef4138c51d62b80ab35082efa9aa28bf178b9e40c23cb1dbc2952b57ae5cb972e5ca952b57ae5cb972e5ca952b57ae5cb972e5ca952b57ae5cb972e5ca952b57aec4f0a7130f516533228b33346da2a37a942ff690a5288a1f9aa68d3cadfc6409224de1bf083f5593faf04d5b8c27f978f11f7ee852922f3eb91a49f25d08ff45cb8725d9c3bbc212b2908ffaf241d264f93174f1e2b7ac6c4664e183e54333a6fcf0c9175731e59f5e8c294d1ee49ffef4e4b7fc6965332207d8b2b29d7e44a2de85a9837ad2ec417d69f6b8f0e6bb90e382e931cc0d9e2f5e7cd2b4b9d860981b3c532ffe0b736543e20c4f273224cb90e54f4fa6c2177decdfe0b943308ca20cdf460ac937995e343da9b28941674bcb9193e5c36f29cb2fcdf245e874f1e54a7c9615aae5595ed583e55b4c9b1874b2984e668fe949936923c390243f1457b61771c5f2e207f97867cb8f4e24694416a78b776186e58a453cbdb862f9965559aebe9365654b7da7d38a245f1f31220b182d9461c862b2ad629016ca131974a2502b136ee8956244162508328184249c5e10c8041290200af900d4c1087410850e98e820498ad41e69c25449c1545145a1450eb448a5c21065a250abd487e50e982a6518a6727004982a3baac05441a23a800a892a012a04883be49b3e092ffc3e92e795a1e7851efef83d4253d499a2cef33e2ba015d04a6825b4125a11ad8856442ba295d1ca6865b4325a19ad8cac8cac8cac8cac8cac8cac90ac90ac90ac90ac90ac90ac90ac882b182be5f7a01553f83d48e691f34389664c0ee9c5ef413245d18c217de963c43f72964c4d32799845bc2b1e0a0bdf19825800cf300cb1109ea1288a5810cf701cc771248d46a3d1080b3d4667088385f27bb0a8880a152c943139a4537c9269eb39c70fcd1e2f9ce30b67680b856ca510ac80832a670da74791020b82ed4c408629982b8061288aa2388ee3381a8d4623982b141551a1e239f19cc05ca1f4dec1f07bf1c39c0f7cd11cc53004c36f44e5fbbcf3f3d2ca260a91a755cbb37c1265cc0f2dcff23b2da667f99dd2f4a927bd30fc441238963dfc3cfd08c5839f2796f1737ce29f7250a616a5c9b495fe7bd0f439c0d514754e03824b9ce023111e317d6011a80879e117c28284848484604c603b5893236451f4b1442a4254caef45d109511443972bfc52188e46a169db6168da742e252e9dcb14c593d3e4c4b433059d224c14445d1474a24ec95723928444299042422318123202a984d22612913a1d11a92322420259c3e4ab199f209d7c3524f9847c424a01dbc19ac0765b54219154d98244c204a22a445748c1624a108a48245f8dcd8331424984053181a80ad11552b0981284222410115d21058b2941288235813d41eaaa1091415588ae98b205a9239510913a581322212121225813528884427a0ca2f8c4c86379d4bf94e5114c26938904934539447262129dc024a1ec29bd48fe90a90a131493155fcd68bae2ab19c929538240d2b9969826293ed6938f25647a62928234097d3523cf24f4d5981e7c9823785f72b96096508ede4f9be8e449124a8ff4354f4429be9af06b865c4b5c4ca2cc408ad3e4c444f4d5d84c4f4427519ce08b51806f32459981ee04df243a310db9c4772d31df7b969583323b5499366df39cb896988a4e0b181fc60865cfe8c5731cfd389ab0a0138c510cc7119ce37b5ee98808db8dfe4153476c1224ae4ade6834f2480fdbc1983481058d56be22498fca29da4c54ced10b45936422721a5d39bea9824109be1133fcf0c522e0293a21696134428de368348e469ee789cfc2a2e3adc6f1b4428d3ccf1bb94be75222be6b277a63381a892971742da162248abf4a4139bd4da4e2b48d3ad209fe5723e3c8298a4e3e1669e5fd875229a0b491866c21151e69c85f309c2c59f88bf4e09f562a1894ae84d3fbd2ca24b41a6d6210688a4f3ed60c9228c5c71a721af0534424d3d0098a4f4023a628bef8e3388ea3189ebe9308cad1b56b6971e95c4b5cbbf247abd2b41d712d71e95c4a5c3bd712d0e6858b31f5245315a50c8542d71292032e5d0c548ea082a292a222524d71ed5456a8ae5061a182e25a0245797a1514e17baaa4a245e7d9480e9c317648622862f1dee672821874bb33fc17ab1944a04c8822df5652010315a70955507467f8aa5d19836d86141b99e40c9f8432634a0c4b2451c2e48928aa8002c5b5732d0972f2446828062aa72bfed5c8e08af34f8f4284e4fc3eef88b7e3238d9e942a5b5c8c745cb494a9d07b1889d424e8ab21bd970304513b587eb46221ed20396c0763e2e7f8b020d2cac56f0592a313e91bb1c450f1cc182aa00d5904ca844f2ac9a2182ab619a71de3f89e0c52cebfe284393d8a14a193f44e3046287b482f9e3290841f53e5ab2199b62332745fcd687e66f8315a7c35e31632921c89a1a2ba40797ad5054a1b197486ef2d3b8ff48d5a865c3c5904dac480f24216d94e3a17a60c4f9c26fcd28cd2b4bd942c31a0d8626471868f5a7d15a709bf650786333ed3f6e22dbbf7ccdd19c6b40c9de1ab969464158f85337c530c9533fcd2ca260307cef0c92a3e9215e415671806e10cb128026dbe9bf049d2889903f411ac8959043cc52130f4c2d00b5f0629e50fca108542a1c211850a4b8f4a892d61880a6151b4b848a550df92fa9622a08bb025d5821ad946214bea5342b026b026b026b026425ab8c1114eaf89d3a3d8404a99427d2a954aa13e95427daa4ca546a58b494a3ca11ee5e2532b5b79c488972acbd4e70053a85ff5b0bc9f5eaa259542bd8bd4bb28cb54e9c2856973ed6c5cb43c09b481f12de6a84cc170f12f5cb4a04661c992fa54cae572b9c2d4375ac2eefc40100453224a7c946b490a8572e950ef5282723d913ab19c4e27265e11900595fa94694bb1b43c4bea53a66d873653743a9d4aa7732d712d712d712dd98d3210458a932837d062044110641147a228fe778205c182604d3c1aa6379d4e26ef64f24e26ef64f2728027d3b39c4e27d3b39c9ec5f491e49f3e9693c9627a950a0623f03b3d6a75fa1ed604d604d604d644141a4f701a4197cea5c4a564340ac3914e67235974fb4492247932575187429dc894c9dce1c8b5e4a524ed4070044720088e8e1819c1763026235814a5d108c604f6c468341a6b50e5bce1f42835b0c20650463610b2810e7582b12295489369da8e8c46b0262f659195dd49ba762490e4da995cbb2f4ba4493e482299369ba216f324ea4e16963255dae1393a9548731575e7c8147ea904be6b896b896b896987fa4626a6a2f0830579e589f499e0277e1f2ca8040b3ac1b7e2c4e1f42857ec6a30821a28394910f5fd16e70ca747b9028bef3dd409c6c712856ca328ab286432a960508ecc152c81b026b026a0a9052827f824eac3f0c51188e18b5584fee308232261412769228da328e31b4718938f7cef7b91f49d327e149fbc40718ee3bb8fe32843868ff0657c8ecf5b913b463fae44a118305c941f8a8728f49936128b67da5ece50143a62e483ed604c425814678fc9657c1f8cf49e843df1c990016ba20a6364c498b6ef246141e758862e4218618cf0c525623e344193d783693463c813cbbf3c0c6c0763e2c1c21fc31016040b2265bc6924b9e0f202e65b48e3d763fc9e4fe7748e5fee60dec1977790e5148e604432727ce1f862cc0af5aa15f9de8f56a48759bdac563bd8ee6389a622520cd34672316198b6f285d962ce38c193a813a1c09a88a3e89936ef4cfd87ea319a8a409bd2f6320324752952e8ec09cd50c74b9931a3275fdc81362c50067c12092c4da6ed8575ce008774a30a0625f93da3cee9249f0582ee51c072e8041fd6c483915f7ad8eeab81059da4711c4758138f86e8a2f25ca0c2d0793a5d3c942b909c02383d0a0d88ce2834088a32032a5168f0c4b53b6138111283be1ad38f2f3e213a11a3109fc0f851dc8da655e94def8dc42540d4112348b8742e920bb5ea3991522b6f7c14e9515fcab5c4837d3ff6a0fee49d50efda9de37b9e39fef7bdcd1b3def337b507f1ac7d11123a411c9f5c4691b7d8fc439ae50e1397ad3bb94b8989c23926bc90845229936d7ee1cfdfe48a4279146e19340128964bead072d7f325da8f756b61fcd9893b8c438ea783f9a9ef42e251e6c3c3fd7ceb53b4d5f2a8d66cff89f6924bd0b13e9c5ca411724d3e6a1486f4b3941228de39b4e504e12b5f2d3881a51abf11c3f979293f423aa8737fee94de10ac6bb4b676ae214c5275f4df930a49c303521bee795de666393c5f979a812ea6d2ef0cbd1a6e81ccd916d87a6f73cd37bdff824af0729274e517cd70ec313f5a9b7d94c394fa60a06e5fa30766833e51c9d422a4e140b4a674b5139c5772df16027d345be4bf7d5b86b779ac6d2388ee3f8ee5ae2d11899309cb07c2e5b50892203178a10a50651763036218a08ce284351525025065288c11651a208a209145801054a6085139ec0208a132f49c4400a5b4449e2841fbc341183229c012e4669b839dfda1a2eb66334b8fce6b7480c37dadc1d062f471fdcfdf47224dd7de4e518ba4cf66cab6a37fb7ce6c16ebbf56f36bbee8bbef67999ec5915d7501a56e75b32f969d8351ef546c3d750b5f6c37abd62d6cd9b555f6717af684eff1b301405271228829b7dda5846551f37bf6806cab11b0a94b219a75f8d6bddf4f6eaeca66b5bd3d9aded1c46731adba8ea6e9dddd84f6cc56faafaa829abc680f02d86bba140b1bc718a7bb5db9aa9eb0d05a2a169a4abface68bc5e371428b6f3ba625c4cbfeb7b7bd1edb638dcab69f20dbbb4d72bdfd4cdbe6e6885bbbfdbd25c1ef5f62dfb493c5184cde65b0e03c19ac5ee4ee671710de7337d3eb87bcccbb006df9847f5c1f95db1cfcb32dbfe903d7eb67d990c0b87dd1ff67dbdd856dd381dd9a7795d31eacd6cf824bed9b7455f071ccfe635b669798da56b0b4ad1c4c320462cb64e5f071d5e86c5e6b585ba7a010aa8f134b435ebd74187df351e35d75a9927cd46b83b115e7e395cbbad9cb62c8d9cdd3da3a1d956dd685ed716a55133cbb499eb869c830d3538a439e01b6cb801b501e334b5b1a10646b10dd70d3619871c6c6c70d140b77e5d1a04d8c9c139819c387fe38152f55f695e554cd39864c3c54bafc8b7bae2f4cb3696c5f0d29b7177175e7a23705fb14f7bcbaebba3dcc50c7838eeee79e9ddb8bb0b5e7adadd6178e9c5dc7500ca29abba59b3aa765b697ba381661f99d72aebd9bcfe8dcfb34fd7b7ade99771f792fb97bafb8b975ea8ddd6bed13e775bd7cdcfe24f33ebbe3bbbcfb6eac69bcdb7bce26eea6f15bbfb7958756f7c735bdae36f7477195e3a90bbb778e94cdcfda75d696ef6693fb75514e330aadd169a7d623fd8a581ba9a06daae2ba69173b13b53577717c1d0ddbf1d92ec800424e85172018a143226908111204258c10eed06392ce1b4ee60ad926043ca8b1f52cb4a90137eac4b4451b261ca58a0869417304cb4409cd611c30e365d121820e960e48329a4434182e474702404dda7d325d185a612aa19f4881f9a3d901e7edff75f0886611886a1e7793dde87ef9945482336ef077064fcd088cff7e2065ffcf1738022281a19c091933432c3558f6816317296cc9e51fcd0046ddf7ba3550f290c41100cc1300c43107c0fd5430af4de450e90fe3df8ad8a80a2e780ee0e7dbe1f5f0c57455ece9ecfdce039be9f9e59c4080fde497acf2c62e41c993de338ae7afc9de47d2a20553220b98a48f5821b24d0867cd4eac6bb411d81c4f72413c9f7deca6f4ea72f8d4ce19bbe709524fcd37bab234aef7d25d4e7f86e4eab23a595123bdc806f5a25d17937e02bb1c34d183eea77c0d3932bbf215728d49bc8d77937a624a724a747bdb73ac2f49ee9bd3f82fcefc6b42a63783894b367646e20f7fd686e2007fe0e24d4ca6f747f637ad22a09ea95f81bd37b281309f8de7b6692239000df64220193e8fe06f5206a08f051ab2390009f349180fffdb003fef799563aefc6f4a595cebb293db94aa2c40e37a6d77937e493a707513b627e081ff543807f7ad22a494988233728f3883fc2f44790374a4c5164071594b2885f3947b36703b9ef37900b3ffcef77c0f75e4401f99eb40212bea380800f7ee30948126863c40812df838f84f7e11b99c24812dddf88afc4df4cb1537af19120bde9dd34a2c4df88a61124c63799babf01bf64224132757f83c4e8bd6882ef8fc4e8b1a48a06e5e729e12991443745911dce1ef0fdf45e89d09ca2c80e27f89e2704b923613b18130f1db6833581058956ac442820d1c7aaa208a54d2c3a3def4529a08d28e40d4d71f05b89558c80dc8155f001d1942a4ef15dbad2bb4aa5cf358ea68be4ae25ae5dc9fb46a3197eac50842142f9bde7e2106823ea3e197f7f27d94c016dbcf7cf4df13d91c9a7e405308a5c8aa03047230d94de098e454d4626424e240a7945218ca21324858aa0307d66aae849692b8988c620a2f34b11c144d484071727a46cd838738ce24824892511481453365419b07103a81c7995d1abf828c528340a11b1983677028954962f4e64e38638924621cf89370a8542a3d1c370143abfa20b7c65161b286d2dbba2f3fb184123c9f4eea40d0f3c9c4c93e94424d3144ddb8c7337c56bd99145668c20a721edce6f864422914827265419505d809402ca784f8e50401b7f4fc87b4f04a4f740cf8928e5fb183e9637f4bd6d8412830a0a55938fa4620a9a22c5940950618a9294b77b520986f7a2e5bf07e2e26d2ea52c49b6f205c9858b8be822ba88a6cbea7481d256ee4aa1d557eebe9a6f7531d38f05bead8ce2049f9c2058ee764ebe1aa1afc6dd3b59a0fcfef4b17860c5b8c3c53ced482ec62a942d6f2351016dbc1b710bd1c51457b0a08f2516199da4161f0b24ab7c2cd0411692ca69e7f223959332fc582d302f24e999503b484f7a65e9c244edf06ca417abf2e5492a3b5c9e44edf844f1133ff17b406923a98c289dd1dbd62760560eca88397c2cf0012595afe67bf04f48442daa9c929c74a75d38fa703147d23df15f1e2686f702f32fbf03f32f2f0f03f330a61198727706f9eb036d604ea7f7142af5a817987f7189c225c8e50917275f8d0b0f8e50c080e2afefc72ae5eeab6979f04b265f8dcb835f06954f3801c5099254aa9ca0f830a219f3c3cbc3fccecbc39846a610df08ccbfeca8fee55f4c232faf125d3e284e03926f23a994bb55c9a40c7ae263811ecc2ae6fb9755cc0f9fb903f3aadf89f9978ff9971fc1ac5e563018b5b4c45889efa8161717179795edfbd1bb188f9c9f8b21a049e463816215a7011f663522712a6550b9fb58e0c350a1fc769f597e2cef5fde4682795b79960ec6ac542d2defc2e55dfc8bd508b5e3c593a0a983d1a214bf65347a171797158c7781e1e2472e3e07f8c2454b8b49b289ba14cb124ec8d50e460b56710828038eccd0bf2f64113fc7378ab61391cfe59ba1f3afc6bff792387dea93403dcb115390fe88d3a77e443dcb8fa9df397dcadc413d8be9a0cc48faf083a1a240693b914c1b8c16a5e9bf27917e0cbfb43a729246e18f21ea145e81f4186c314517d82bee638531a0c490124328f4cf466513f3fe65cceaf4c9a860f8e7322546cbd0c8e6555a865a865a865a865a86c829315ca6b84c7109824b914b162e4e70a1e2520574a2185b0c141e41a587dae1f67072caca46f29ce6f39ce61b5735a1ef93c5b02206d119a6e38e92346da4ea635e3c55ccab7e27e655aa8f9111f332c40f060c17de069e2eef31de259cf130c458f1d5d8bc28662826068a8b5715b50cc5108a3182184331aa7099428433ac327ecc1fb9f94633e607d5c7fc8eea638ccc7895b9a3fa988f318dc0f02af3c8cd68da6ca6802edee632e5c5dbbc4a0ca1182358c518fa58e19b5631aaf85821e8014932e3617852558121aa7fe187c4bc8c23a6d881e165fc1133cc98f15f78d5bff047c060c680e60f2fbcea634673e7055315b3f3312fc32c7da9745a8defa8130882ff7d0965f2d3842ac9c0d4236356244881b2e549217f0d8136311f8e761ec3057024c9101ca176a074305a94e3dbc627a7115558fef4e0eac8f9b1944ee494927f2c3623ce4fb54abd0b2b1b78c6306de212239795500c215be962655311e10cbf654d8dba8fb51a93ac46241f928f1526d19dc065c26fa209279c80e2fb4c2741f8de8804b409c393ee54458c211433e4aff1c12fb90d39059409ff1b9f9053584c1b899c827a316d33a69c603463862050dabc0a901124baaf060cc7074fe00a0614362f523d51aa3ee66db58f15fe8e59c50c8132e1ab560ecac44039435591d334296de494337c5b0ca1337c72ca57f305a1e8abc9c2095f0d15b20a487adb679aa4f7cf43d22a74f7bc90651ccdd3993a4825a628c6f742d805397150f5812e56e28ef40fb50385ea61fa317437912f7ea7c57450e685c9f23b2e4c7107cab084236a07ca2ce25d81d1a2fc5e7c6f6533a2cae9b178a70f57474e2f757a9695cd86e83c917fea118a42e290284485f2fb91549260bc58792551772a8b4a554aa11594e49f4add57a3a4dc954c524248be1a12797af2774e4f927f1a9d1e651eb91981abd17b93694b519112729a9269237724123209a923957c2c128914720a68e3de67821f89447a1be9d9bc0757a277e4043f07482239bf2f854a9f7805e931d89ccaf93991cd894a9b13799e4a022a274a6f159ebe111565481a99313f944a0eca94764a6f7a9369a4641eb911df513b5442303ed6a762f222834969fb21351e7ce0018807c1c1308667e5707ea215be1316dc5f48409b274a62dc348d4ce16f84f425d3a6f4260f7c710525e94b2c55401bbff93e9584c589894a498b52952db0e0391999361628ceef6d21169c38cd579eb6129512959216a52a1f6955a6c20b90e27bde970241300cc3501445511cc7711cc7a222d514aa297a80017e8f517cf07b88a038c281ca032a0fa83ca0f280ca032a0fa83ca0f280ca032a0fa83cf0810f48d101107cc03f18aa27ca51351a8b9c064c71e0ccc25fe183485e2ce104c1d4d088c47c9185d380424327e8815e28c569c0771d082509a4c760533939bd2755aa099cceef4d432928a621d39069c834447a982aa08da80365bcdfed82825442244c0cca1e2f9c2c59c0a05c024c0925b584d3834105cae9c138711acf0483cae9d94c4361a948e5243441100c4240852015064451850121c076b01d2c88247d7c10fcc071e5d27d2c974e14ff1bb94471248aa24b145dae9d8f28102a91c8d02c4924d1d349a556df8736535c4b50b6d2b39c4e27a934a552a66d872a52494a99a994e8240af18993169b29e1f726d28f503b5c4b3c1adf9756e589441aad3cf3e4a474ed3cd43803d247b44515a70da7479181121e8c60148e503ae4e9792b0fa5138aa2777a1f493a392a875cfdc9c4f2dedb5691c5b47923aa07d38942edf04428a2151f4b24f2ff3efcbe3442ed083d4f6581121624456c020b8a9ca2070c2692741ad0945a893b506674823f7aeff34893df40019348f57013163485d236a36886bf1c5c8d270c15c41109ee372ad50aca10c957634a62d27d354a4a4ffcf5fd690b118998e4e67bf0fb4c26d3b4ed901c57a537adc8ff50a6adc481d213a7119d9c27d326ea482b3149690cb2a7c171e301d0ca698b66213bb2c6352059e31a0ec7ce0d3407a15115d76ebcb10ebc719a51b665b59b6faf665b546f36aba84aa3bd9a96836817bb3b5eaf1d1c36de1b680e0228a7ec0d381461c30d0fb3f112e1de82f266c75dbbad1a2d1c5a37d0b43456a5c92b4635fe8d81e8bc5e3502b881871b3a24c7c68be34472e6e04510e161d51cc63d11445a32b21b3a2465b310d9cbe64d6b592c76f3cfeb9c79e460420e262d8d6b3dbccc41c30e58b8bbdeea2dd7b6caaa676bab9f66b765dbda8f7e35aef1f07287ecf27287191c41c091c48b20f233337b7db59aae6f8b4307070d1da6b46c2cf7e02d7b1e56edc13bc53a94e0062f75488283e82043a76cbee1831b49bcb5ae18ad6d15dfb8e1de826d016603181254ddf8d6ee17b369aeedc07080b1bc865ee90c504e6752f58920d292c904f999348725cbeebb7d70edd997f6c264eb8a71648fd9d7a7bdb1d89505d7065c408a2082e2ff99d225c38613dc8b203253d3b8f64410c16177b3f8a6e21515626304368868fd6a5cbbf36e6f7bebfc16c96e16a2b45163e3e44510f97c6bd1fde21f5abba3b4b981cd90bb1741646646e39fd346dbc05043e4adfdb69fbaedcfacb8377dac6ef567581e56c5f80705d4d4bc0822335fd6b888f152005710c00504e0837b114466d816f77e9a379a67edfeacd916f73358e736158068c3cb1c6a9043922288ccb83f239359b79db17eab7a873d81f0128723b8bb9b5537bf457048000e46709041073724e0061b6a04a108229faa3f43049156cbf3b9758667ad8b7badb2d9c7cd9bc5ac9b7d5a9ef7f1ad34e7d699aa75abdfd6cd3c2c4e65f6dbe69bbadbfd29ce2eab956637df729a5bf5dbaa3ed9c53d8a57dce7cfb59d661f35a3d9cd7a47590303357c6abc1741e475e47ccecd6f919f218248cb07ce10f76dbfdd6dfb69d6f8077f8a6b676943161965b39b69364069d980d32fcea538bb2bfead9636d868e91eb45df76b5cd3c14b1a54d8b7a5e18dd36f713abb6e8b7e3eddfd8697349eb8d9875565b219bca401e42d37ef55a5f9e0258d775b9a4a53379b53f5d9d14b1aa39690bbd3dacfe19f6fd9199c5df67d8d7f3ed7765aba968d968c0f9c21a9ce2e0e486df1b432ab86973455dc4c735b1a9bf3ecb30faee5587cfbb6dda191d2da6cd640bca4016ab16daad59fcfc9ac2b663dfbd3fe6e5937b33f343958f5e6e69dd3cf333d83bbfbf072260b77d73594c534e50c13cf2e4eb6333364c6dddd4ca3bd3314e3f4d3daef41f1fa58e370cdcd4058f565785875bfaddba6dfee566ea9accfafd66a9bdd5cdba9e189bb9bf5fbebaa6efdd9c579f669de2dcb62b4076d57f6fd5cdba90189a76cd6ea6bf56ba8c1dd5b3be7dbef9675db8dd5ada62ac6a5eece0da016078ed70b87ce09798d7fe7068e1b3870c8b06edcd0213774881037e0f06e9d531c3ee038d37c03a8bdd1322f5849d8b97b2baf33ac7958757d312da7b31cbec99ea625c3feb46c0ffbe2328ae2cd6634bbbf757b7b1f38435834ac85b0543fbc9ce18a9656330fcbe24f59dcee1e7dce20c40cab7206173240f196feadf3c6b11b0a247b9a564e9f8755f3ecb54a6bdd947d6fb7765ddb0db4a39481e6ee3a5ecae04200b65006000aee1ec4cb003cd1caaeaa73aa7de00cc933d545f5ecd59f5bf34fbbbf6d83f0b0b886b22ee6c9eeebf7733435f3b0edfa2d8b3e76d5b7480ee2ee3878190096184410430562e001004f00801100b0cbc14b001071f796fab4f669c8b756d300635b75e735b7a61affe468d82d4b8356d797a6fffcd78e1d9d1fad9ce21bdbb66c0fde37fcb7f7a602e15bae6dadf3fa5a65dbfc7aab331910bec9da1faddcba6275bb18e7b69f5bf3ce6b8abe8c47df643fcfc3aa5bd52d2ea7afd57ff66cfd4c9a67568cbf346fb87b8f972b1c94ab28563ee8f072456ae5b08fcfa1b9b6f1b3b907ef75c5336966dfb7b63f4d559fd6c569f575ceb4d6765b5c5ef38ebbffe0e5cbf033665ce1ee2c5ece58c18c22ca193adc7de6250c45804189bba35ec220f3c210ca177a50be7080f2051977dff152c60e4a193b286508b9bb102f6514e1adac710d755f9c0f9c213339163f4dfd99a7c9bbbd6597a6a573a6fd2d6fb5ddac4ad3ca9996d3169b5f34ad1b7048734ed9b3f8ddcc661e5afbe7bf643917aba84acb6c9ec99ea6c5aa3144f66efb33321999568bf5339bcd2e06c2ba6188ecf30c5571b9fdebaa0af12dbd81b28e7fc9b6cea9ec695a3e7086a42cfec16e4a6b7118f5f12f592b7b9a568f56dddf38cf3e876febaafe7cfbb9b6d3ac55b7bdd1da976df5a6aeb11caef1bc2d9bbfdd8f7b7f4676cb5b8dc572a6c99ed6bedb6e34fbbc4ccb728a5355ffe7cca3e50367c8a32a4ddda98b7fdc96c6aa5be7f4f1d3da47f1b33c6a76b34fab578cb6abdef9d6ea77336d5d314eaab641b8795d314e101e55bf403986dd176357eb188a672d8d5563381de351756eababba81d0714387e0dcd02140807660f73db1fb9e5988db6ebcae2d0e4ead69b7adedf7d41965f18a6f5a1a9b83bbe1adf34ddd0172cb5be784b83b7697b917c0dd8b088288bb133184bb136088bb7b262f616e780c1a7077ef85973032cc541d5a2918e1014c7077f0c9053800e4450a886cdcdddbc10144e8ec96a04015eeee2da00933645cf18607dcfdf361c70e4858c00c0bb882bb832e0d9002850804559103771f2500812a1e16af2de47077ef085568c2c8161130828dbb8713908d9ca8d1c0360477f7b098dd0003220c282204778fcdde5a4ce7720f6cab6a9d857c58b8fb0e2f5f9eb8ef36c53d6b8ba399bd359acc93aaee8c86a6a1b1ebee4204e14e6b5b77b7abfe1c5eb38bb3fbbb6571429cf026bce1a18d9046b872f70178e9c210aaae1a4c82e371188dfd64d613807b3cdc5d082f5daab8bb0daebb43f6ec5e5f9d83d070f7168dbbcf3871f71adc9d0667b90c5ec690c2dd0310c389c7400280bb9befee33bc8c41a48c01c4fd85930d2d1b6ab46ad0a0d9675df14dd3c0e1061b6876cd5297eb861a14cd35686e2dda9abdb5adf2e4dcad559eec7acecadd7970f1f11c7bbd6e28509ad3166577e848550c24671e2dad71ea4631eea6e668ea8abbe1fcf3fb9dfd8c4cd67e9a359e3deef6ce1effce3cb94d675a21df7a194eddedfe56aff87556571c0ebf9bd55cd3efe79fcf28abeaddfe78994cf630991a1ee666d547ce3c9e86afe173a6c5d856d5acd7e171ea8eedbcc26470ea66a12b46633afcefbcba2d8fa741e3b3dbb23ceaccd6af2b93c9bef5b9b67958357d5794553f37fb19199cbabf65bfb6d51fd61ba16a9adceae255bdb1af4bb3d9d6a5bd6cc537f745578ce2f5e5c92e9bd916a7eec7eb6bf537aee13d6bbfdd2fcb99165b31abd2649f6b7bc5a97b7d6fafd597c9de5575dbcebedd6fe2d4fd2b7eb7abfa989ff78bbbb5e8b7fbb56cc519a7235357dc56d7f7f639d3fefc299e9b7dfe76ffc6ddf2de7806f7af07eeae7a3952c1dddd73bc2c81dc5ba8aa59d5dd40b9d9e7d9b318dd2c565deca359156fb6c559578c930a61776c360bf181bba143f00dbe5955cc43eb8ca2af9096f6813384559f87556fad4bfb34bf56ffdd5cdbb926c4b77276699fd7195e55ec837f036516bfceebec6dd36ff57a7e4b264bdd16cdeebbd927bf9edd5e56267bacfa7c9a597ccbe5dafe55ddecfb387cd36a0e6ffd3af3a4efecff81f0edd39ce68c026554bd613697eab57537dba22faad9f35b6cf651791e3fab6e36ebcfb36f55fc835fab9f5df5f3ebeed7eaaf6d3b637954fdb9adbaadeae2686a3c6aedf1a76cd699cd1aa3cfaa9f661f37ebecbe56bf75b3110fcb6cfb1b3fabf2e4d9eb15dfdc967db7a5b5f42d6ff5058083000450f32caeed77f3c6d9e5f996fd9fd6e5799d6fafd6f8b310df92e9c85ed6a323c3fabd7d76731b77d37963547d36d7f6cfacf82d923fbbf87546d59455bffdd939dfda6ffb5be3756b57a5a52cfe9916cdb3a7b5efe6d46d9f559f866dd9cfb59d6ff5a0ed3aa391e66017037937e33eb3ede7d9e756b67d16a3bff3c63cd9e5e1c139dfd26b66595c431f880f9c213356d5efc65bc8a76c16d2eeb02a8feaeadcd02129be01ca299ba393e29badde541fdceca32384bbb7bc2487b87f6ef669d62f467f06f7ed7e1eee2ee3fe81a074077d727010a7720779c0b8833b4c53dcfd5f3e7086d000f18133e4795855eb8cb62e10770f80fb374499e6220f4b734dbfb8dffab5bdc63f9fff27b38f1f96dbb85bfe3cfb3d038b51777fc11d3c428d9726186ff1b02a0ed7bae9e7d6cde655d5df7a56fdcc83b5ceb7cf46a8fad5e347ce8f20a710da6da5af57eaeed8cbd2107e83cfb7fb738a5d1edccbc3aaee9b7ec6e5f6f3a834b6c5c96f7e7ff8bc6af6e6b63437e39ecdb59f4ff346330e28b32f0edfd29ce68dd7ecba79b36f8b93baf887fd6975a4794710696681e091aa2bf66173dcbde6258901b959a95432a5796ff5969f88cfb59d52a964da6cf6d9e1ee372f492ca552c9d4d26a6d3fad2d954a26191a9a466f36fb641a1a6d531a56c5371aadda6a69b44d69d07869dcde355611ba866e8cd36a4ac4dfdaad5f9c52a964da715bd7dd01e429778fc7dd63f0729cc2bd258b6df475b7665b54f6edfe34a729fe3d03abf1cfc6b5fd9ac5f9f6b975c5af7e5fabb59d5fb1ea7faeed947d5bdae71b66bffdf18ac57ee8e40809b22388d88e1e67109d1d21b1d88b86060d1bd46636b35183468d1bb00d3638a039a438e090830d1bb20d4dded8dd7af66a1a7abf6d0f9a6b288dadf2d0687902ecfafab039679a73b63fd2bcdb1fad772878a62a4e05d1dd572fa988029b7b503c63d51a8a6f3479e3ad69e8eca36ef5a6ba387717bda4420654387107c06ffcff93591e56c52f980115a20b75a0a5b77a5371722cf6d1b63b78f6ea1c6e4ddb9b87e00330dcbd09081c0002a07fe9ac6ef59970252e0110c4e0be81320d765f0c8292fb6ab5e2ac1f0779cf5769b19d75cab6b3580edd59e3d866f366d558103de0b08f9cdd9d1b9a298af02f36ff4b8a17c4345e571cd33816ab6df5e7860ec1f13337dc96c7ba629c15e3bc5ea6546d8378bd5eaf588ccd69aad6622a0ec770faf5a2ad59e378bd70a0ea3a7b81e07067bbf37ac5f01a3f76dff306765f8c43e6676ec0e165b9ad0de7b4c5c9b31cf6b159fcb3559b9bd39c1f3d6efbb3339b6f981dc0ce3c2edef986d9585edfb4bda5acda13735b56bdc5f2c62e1a63d55b4b63736ee81037f7e0c0b1ae1867e71e54dd5bb7b7d8c6b11810bee99c691a08df54b5878ccbed988fca93aab16c84aa6340f876438170b0ad9a7303cd41e0e073e3860e79bd6ef061555cc3b9bd6c2c162b724b2fb06b5d60887beb7df6bc800d505069a150ecf0a750b8ed0cd340f1e284c8dd719f57b5f6f3a71320272faeb73a536bad8bb30014f7d7d56dcd02bbf6870580b8b7d2dcaab63f2c50a30245cebeeeb75bfdd1eaf3b878fd59bbce70afae0006dc0875c7c53f3820d216c51beba8408a025128f0000a14a1c08a029e9e49cf8d53f7133578e2a7256b6b3fb2cfcd6672a6cdc84e207c4bd976f6440e32ac57571e2f27208209ec4ca0746fe5f04fcbba9927cdbff1d9caeecbc3a3d6340fabb2eceb6a55ef96657d4e550964e1de9abd04641278c109226fc9340eabfa90a99fb2ed671f9cd7acc389d60956d014f79696c9bedd6c7b934371f2ec6566acec836b3298d5d2b158cab6b3548d05e1dcdd838004d9e0aed520f79d733a723e0259b83b101120f29d080865f5e666201140e25e8b80ccf3c6a99ab2187dfcbb652360e3ceaeaf0f9bf32cd640fc64b6c90d9a3071f7d4cb2636c8b69a6fb716cdeee7f06d63f44db30b011a40800a77cf5e42c00777999b6bdb7d69b8d64d370d33c9019328dc7dbf2d8d561026350fa8c1038cb87b4bb6f6e0dbd7785afbe7b7d896a77571efe6ad31cdcd3fedfa67ab86629c7ec0cb033e77a779e98027dc65edfe746d774a6b1d4043d9840d9a48e2de92e5d6ada2ea8a03ca9fe6f0ade599611fad7c7b35bee558bcc3c2147642bbd88eb4f31ab082062cd1000234c086cebf642d7c933dcde7d61b3aa485c3b77fc9644ff3d2addc83b7ec69f412202c59c192b58537d621cbaefa9359d9d304c1b55b7ffea7b54b6a60800f5a321cd96b8d717a86191f3843b49034ebd76d5d37e7f09a836c1cdb6cd6386a1af350d3b8c68021ad99aa3f080fcf9e0cb0c1806700beb92d4dc9939612243dedfbc019a22487bb2b61b92b29bd856f1640c5dd5b29be5900912fc000ee9e379034e7f542b3cfeb956e1dc3e9589af51be361d5342755634c486162d76222877b2b65f11255f4123adf5942085fe2c57fe08d75a438f390e25ce361b7ad1b8b6d36bb1817cb46a83ae6d3e26240f8a663d2f2813344574497c35b9d7bebdd6cbeb53e5eaf9d9f9655c00e0aa0a1440f945880124128c123092b24d18224d6248468b5643beb989bd794c5b5cf31b6957deec1fbf502225575c89ed6b2be06dbaa3232991a33d9ce42581d19eb659bcd6eaeb139b2b455dd0ce4f6de5456f521cbcd7e56cb1ad77046a88faa2cc6e5bc9b7169ee697d5835dfd4cdc3aa3cac5ad3988775c53849d836df5a9d442809123f9300717f7992905af64c8090bbfba6a9e99f0990c1de3601a5b772f827f7331affb43f1020c55b08d8fdb4ebcf0e026cb8ab5a0701246f6999ecb637d6e7588ce3e5018666bf6760b7fa309dd5032039000f3f99768097d6c61b23a1e22db7fd1b769094606b75ddc181e3f5dac191e620a104244e80c46a2407463060a40823260344c1005418c088017230c01bb104239818812357254745ce488e059403201800f900d5f073e5a7053fabbb7e1abe865777a6a9ebebade2cf6fde78bfb7af212384a75d593a32d66f37d7501767fd3917b32a9b571aa03dc410329975c55fc30b61e9c864b219b755653d3a59ab3f6eae6d9d6fc96ac8b2faf8f58c2c966559bfdfeeb7cdb140e45b2b44ab39bfae1965ddf635cab639df92b9ed46310faddf15f733aa2c6b7c23fb57cbadf1344f6b314dfdad558c7d86f091e153be507873f052f166e0f57903b0798081724b60f3ec1c3d05dd03ad007d83f65c29dc3d655f5a0ef233453c113ff34af1bf843c4dabc6bf7468e43c4d2bb33ab45686cf2b6e71ad8b9b910901c23e64381c465b2f1352dbedec6766b4c63897866d81789a564de35a4de35a6cc5acdfb2a761312a7b9a16dbe6d893866d7f868755d78cb218c755b9a5224c281245119f223b4560e060802bb2ae18e7f5bb02799accb63ffe75a3e369703e65f1105fc30fc1d269edf55db18ffa16c9afd56f6d8c535d8c6b6b3f2fe3665656dd36e6e6dafebcf2b0aa7e4c83d37cbbe5b82d8e1308fbf8991b680ee246afd807470fdaae373736abb6b87c5377d85cfbc9d9a5dd5a97a663ed6e8364dafdb63ced8bbbb7b46e5777bfac8e1dbfdfd98f6e6b3fec94964cda6ed607b1449c7d718382cbedbc6256e5d1625b34bfc63f426e402d19b7557d702dcfb47abb0169dbaccf9b7b4b46e39fb56875e22bce6df5e5e53ac457d60f8d9e2a4e935ddc8dbbd7e0650f140d847de834df30fba30789e7f54d730dd53e7ff60071576b41f4c8d0c67e329bb34b8bfd64b6adfdac6d3b7bbd7670ecdca0e9e0de9eb6f5419d81ca01d555636a56d49aa8f5e0d182a7083c58f0e878501e9216039a046841d05c72917beb76a3e35b36e7b6b77c7b56d5799a7f16fff4b8edcfc76429fbae78eb57879b797854770789fd6436c6b6afd74ffec1eafcafab4acbb357d3df4ff3dfca6d15e8f13bcbe19f15c7588cc6644ff3ff0ad27a1f88cdad69c6394fd3ca427ebf38567533ae9d5931aa6ed5457fb7acde6cbebd3c2ed6f1342db795c966667065a9fa1651d72c4546e2ad1d1d9d2038ad8cce1e03913f9d426a8474d74adbdace3700acb75d6bb5feb559fc936fea0e80cbd5cab59e2264447cae95a815540ad4083486190e66069809990160f602bb00f7e0173215c88c00e0bfb5b5abea19dcacdf1467f7b77e07f0df92c9afbb598fcbb9e7f366b18bdf198df3fa1bef9c4cd62ba6b134aee9947d69bfaeb275c5319cd7b6a569d1549c8ab65ae8ce3fa367b49b732ccecd302ebbb8b7cdcda83d8fb73b2323cbafbb65d9475d710c97738f8cf53af7c4f23ac3b1c7e86665a99894d802623b14a04a01b0f0966cb7ad2b7badcac832cab63f583fb36275b3796b1528ffb4abfb93d3525d5cebe270f86564392bdeed8e2caf78b7ebaab6d29c5d1e325c80240a7043015845eca095c3ab9b7d5a354d3116f2342dd47d5bbd713332d96b8c817604d16cab71767bd0d60754ab37361bd1bab458ceb49c5d9a9b7382a46a1142b8e3d0405eaf9d1b40ed4d4ce39a1a2f9a83006a6fd615a3447c202200222f108941c411bc25c3d238f67ab53436e7f5daf91a64d947ddd84775732ac4d3b4646e747c66759ea6a5539cdda769c9d460e93c4d4b67227820821cc20943040d9183005120001402f4d87849801cbc1593cd5e1d4b339eb9a1060d406435621acb681a36b7e2709a6dd5df2cfef9f4df3697036a5d9cec37fab6399a1cfb6a36bf6dee6939df6add726c9bbe59e33ecd39181285bbf7e0e510020c61792bb6db3648ecf34cabb95cdb5bb32a7e215a217258554c43f16c5ddbb5adfddcda8d832822002f83b8b167605b2dcb3deaca0201441340e058c20e057678c8e1e50e49480d840009a121880e826c20884e86f3eb9ae25bbbe29f91e5d4d08d6f64b9b671af8b59fc33edceb7b6bebda8aba2ac8a2383c3d2e1a1f1cdebf57ac9302e377badd5da0eeb7958956dddd72a2da72583374ef1ceb76755562ccdb27f6d167ffeddb2b2a76901e51ceba3456b678f83d8706fddd4d7336cf55bfd33d9475db3fe5cee214899cb3d417e28d291f3ed8f1fa0b41ea7d6f40f3aadaa68ebe26f7f0059029016005102880c880c9d2c74a0d0a9b9cf3cadd5fba75dd7b325d3b9dcf32306e58f0afc407fbc7c14c1870a7ca83e5cf8a0021f18e003112e7333fba393cb3dc8fe95aa9fcb3d2f9db7ea0a31d3f134b21999cee51e3650fe21fb19194d27cd09e2f5da91fd4ba7380799e9789a569a81541a4ba76a2c977b5e2f9dcb3dbc5e3bb89c9edfd2199763d597c9d4c0799a564de3ad3fb76e34bbaa8c9bd7b575f166bd9ba6f8f50cac8a6b3a72b0daa27996856c34d36879cfe06a562ef7bc0eb2e29cdb6e9cb2f8b6e3b6ae9b5b1a9ba3c3cd299b75fa7aedd434e6e1f5daa9695c23f21e9c78c6e170ed599d1e90e0f0cfd9c31077f435fe397b60b9bb9f3d905eb2013cc91a6717cde94fbbae034832801cf967e7199a71fa860790f384c77d716ca6615bf6c6cb9c1e605ee694eede0ac26ddd1647f63cacbaae185577b4368add0d9477f09207226fdd5a94866dd95445d557480e352f8efcae38885cee21a72d8a23977bc8e59e920720ee5bbde51e56e80145d903891e3670daf4f7dbf638390f09f0f08107c9dd5bd87d51d4cd29fbbecee59ed9abdfddb641dccf423c0d34d040430b48a56517a7b78bb7cee59ec7ebaaf65084c3cb1d4cdc7138d75ecfb0d97c635b57f561f3e7d6d92d6b7dceb2109907e376cc76f0e02e93a9d1ea71f12dbbb907fb7077d24b1d3fd021850e02e8d0d1b143a903061d2d385070368e0de70777a771e301b0ae2fedb19add2dc4b7726ef649d9dcca3c6a2a934173daa2accf5b757f6a3c4d4b26fba89a7dadfeeb856af5f67ab56a0ca765afd715a3ac97c90861e9c8fe55e369623beb188b51d9d380644264b29cb6686df3b0797d198eece7653242be86c761e904a76da8144faea74d4f3aa568460001000063130020301c128b064432a15490c3d0e30314000783b25a78509b08e32c08620a19a308210300220000001049c20400d9e9a42895a86d337f5a41d6a43b8c64caec4987fdc0d452c45570227eaadb371722c2bedeb4135736c4feab66d5f34525551218d6eed6478efce9c98fc7ab8fffa6324fdb57bd7367c3de1126f75178eae9a36a980bb60e63f2d6802a9f2823c65487b8664b4f8ee7a0dc88a14af2ffb880209bbfffa13e42ddf2d609975aa1ec75f19aecb17e3edce83287d6de7b1490111419f15d56fbfa8405cbd4e3e082c440587c2450361328278d6c7b5b4c1dcaedaf641c07b06d28c9a12a88cf066fe0818d46be6eccc4b36146028b145e79b9041b96226955c798b20e3814c5303192fc5903a9186f155f2f59ad9d4910f367a2b767fdeb26e32276bc99a0c114722be212b4e748ddfe28e38f22a98773988a36df09dcff69fb23800a9a85f22f484a8392898d2b8bfe6e70401bf08785a1a6fa50bcfc28110f43c022c3909dab627ebd18cc5dc4490f40a675f1daa73e304c91b31ed1c38f13b0dcbe639715e5bd27e127a1bb34869a35a26bd54f00ad7203b0c230adf1affdd07a8c98e64a8dfe68616a9e52b4d305dbd76b082e705d663b968ea53bbdc041b0501ca2d1afd82516c976c5f146e9a5866135a68f5c0d0478ec5694271754a01fc5c623d30159d1ac49d803ad375991d22783660b9de62a1ab8247cacb8b519224a272cc73b8c099092a388aaf87731b4ba6af3107eef298cdecbfc8110017d33df388c58f1cd20e0e963d31f89e93fc4516481d0f34795477041cfff534e96a6cc77ff74ad8b1401d2e2951073008e61b4f03f422b5e3076aca0cec7e94add0bc4c3b3ee2e698c721b6dcf621936a438756c00236c2069cbc3b8bb8330a6eb64cbe056cbfe87f29ab4ef45915f38ca8b630d1fa1bef84a47f141bb7686cee0666fffe49df7e01fbe1b26d25449dda9e6623299a406d77e0872087b029c03ac3fc882d0f8a7f4c741876242e22c7b9fb6fd493e0305fd0a4ae7f43a46de745f32037c3a2e88c2df36268b7015771b1df2bd2467602bbd8bb1b371557aa95270dc5aa14a98a5ff22623af3ed6c412ee93d7dd136f3f43e0383502c2505a9ac13d6167668e302ee6306d3f800d6f24e4f1ed93ea44f3a6dc135d3285d68fae3ea893bbd31f3a6e9b5878e1dbb09e0568adf08d2d2c2ae395b512256b40e56e5d0aefc3a324d35106abe38cbe55b81ec667d88de5542e0e7fb55fc3da48ef072d645ecb58819bdeb2ea7c6d1a6d17afcdf61cf46ceb2f99406df5db8acfa592749a6225cfb49cad436bdd06335bf78a5538c1014d0b827b74822349fba0438ddcb0d8a34b14e9664d6da6b103b1deb35ef1c54906f03c623fba2c6c974f54039804692ff8457a57bbd46bcc8f5995fb0ca260f75fc19846b2eaace17fd727ab99e89406c63dd2e293861e2a1c01a4264bc266a66b48e40c7806e675a52fb666e57de634e721f046661eba6d2668fe99f3df01dfaaeb3d5d1aef506d3a3b1b0b7bba698331f618c7996c20606bd7cf13a677642a42fa72803c90c3204c83ad20ec608a88040bdc48377a3732d7ef7c454eae6a6d2c76f3e25a0d4edd44f3971f4c9e0a3ab581d74a6d58a2cbef14d2380fed09c0c92d38727f0a35af2ede738820b98cd743b44aa39b86a1584d637ba8048a74e6fd5843ba5a46d867171a6ef437f5d6f7a4fb84d08888f9181f5d97455ff84e89e69e23d7b0f425156dc91479f29fea51d3accb3dcccd6c8ea592db23f2860eeba6612ce39a55732a7cb27488f20e6a99d62f9151001515da404dbc45b6cd3b46fd85e4ddf24db5cdcf89e1a9746db35fa7f9379c82cf766c1a78fe485454fd7c99cce7b3926e3a7846a279024dcb4dba8933153784980c1a6210e38611553b36ddb6585c8b5bc7e554cf6e7d37ede42305636208cd3a82fe876b828b36368993e59a522176a4a97d104fadc920e4683035cdf6910f25e6e7dd608a628482b3d5339efb947260a1e9e75673030dc8de461bee41729a5987946c4a458351c4a85073ec3e4c2d78295136a18570f89051d3246f025734f6e53927fe44565edf4ff8783583dce0451918b64111e643c6d50ce32992321993248da0b8f6f6e82fa37a9272316627cbbdd6768c318f724cfae772b61ce077b7430fe29749b2b48ad40cc47b613991d4290310f20f1efc0fc1b8a38eb10416d98e3cacc423e8003e5aed8bfc438360326710f5e3ffd294870e9f4680607644046b3b7361edb1e9bbe00d26168e0a423191986c7048e07b1a6d10c390254f6b8e33cf9cfca2746982e5523458e1cb308bfe0d09ff7a2ba0589d6ca8e754e02ec14a15d1f8e2d5eff1c1f1ec3be1d1f9131d41e1b582dc50ff79d721b2b62053100ee621a57c44ce5e4a2825dce908198315c389d815789c66a84fef7c6c24dda39dbb011a36b78be7f9f092aa4311f94941ab85a009961cca9bac01c7c0d13216e356083db14bf04f1cb106720df82ea4b7ef09d84bb11b3ffbd142f388e8f718654d79ed23049610c1d3f17f917bd4f3f2c33bb9e5c567bfb7402f02366d229f9d20ff5855faebf72d7053cef8576958149e1d4105f9bd6d77ab62b8f533afb0aa6e1736a6aada7e470a11710045355126c10d1b6865264602e6f04054c1ea2ec2892038972b88ad2e68b12440349a75923178ecc31d884ec9f20cbc6f140c69431728ca9c42b7d3f13bf7024021951a375f5b57f48c851af62dd0b66462a5b61cf0ebb8c1dc44e0b378eba5a90e5965580665f83b83400e4591e5d0a464bdb672f6188fe8193aabff2ae5beff8ae091c244f9b3320be4f303a902d15ee53cca2915e50e733fcdfe7c74d5f18126649fbff61b274aade3731a0c8cfc5f449a85d1e74f341e16ee2d7a289924f6915acae02392c659c5353249e9b94ab147c35f8d19a9fcbf4ccf4176e47f2ab9fa37459ac81d81f29d0080faf8ccee983eeae1b8abeaeb3cf2ee1859c7d1037619fc4ef95ccbfd963067917eb6563da1c8200a5e012d92a0c2a78e4717bead9cda1c434c06e0e603daf0d30e8784c9cd2b1ce4ac14c72729e00b512e902e910494ac7f54a5ba0f9d2e50c000a5ece98534eee5db161045a8fbee6e0bcd2cb8b381d4a79541d02a7bb6b1af11bcaddc1643fe6879a53ca5f117ea977b5d049818c070ce739fe162e77e175b7296d9fd27ed8b6e170832bfc106888634847f1969d7c0a0e388c7b56f9a22f0f64475517a0dfab12519483efb113c4e8be78b5b8b0d671adc685bedac5b606ba24e879ff0f0d6e45638cbd8f07fb204ddacbf1a896cf0644c5af38517209ed04f6a30f699cff352ea838178dd443f04fdd1e57b0c7768db65fbc8f87174290b88704138c91f325590a0e619bf4063c6b8a662660060b4ed4fbd22afcad301f04626e9fe5f81698bd6e65ffbae1593bbe40e7b0f8e86da0300d01f1d7022c27efef87cf41de675f8ad88bf2320a1656b8beb04137cfc98f2c3e80dc2b02c5f09316ee2a23cb1c44a2428757e8ee979ef19c9eb985bd62c5e633adcf85219fca78db2c41ae945ac4125c818ac5e494c1c78992b129471ce6ec2b7529ce35c749e6c68484900e99ae27f65df823c95905d72bb51cf1509d5fce3bb875ba043d3210afd3a9deb077d12f1d55d79d596cd7553334c0215049d2615d8add592f4a5736918f65b6b4f13b8bdbb39da76c169740e39f49a27bde4340253d9288fa6a7a05fd1abb041961384c761fa3f287b6a591ea95a4eaadcf516dd85bffd4e0cadd69d5e1d1571e62a95f3fdbb79a3d6b9972e15ce8a68d76bbdcefef840d7682d1114e6a70dfc507f8b785974b3bf89fd1fc0cb02f6af4d67d79ac367d388aa66279004c1f222d43efb323ba6e88d237f3f7e63ea347eac5f99c24c46ac690131848de30f6b6a6e44d02dab81a1f9a8ad006944b51fc485f32f4bf93f62a197b745959810239580032011ebf7ad58b68a49be9dfcbcf01b83257575293d31ee5abab115bdb2c970a9ff32d0c95a1a5d359eb25c5aed617f0122896c18695ab2ce03af7972b56a7aa10d004636656e9e41c3a03fb839fffe2101f88f7294b775d9f7880958ec81d94a55bd019b1e1037729d369d5e54c021275c170b0fe97015c6a09c4127a218f90f7181bafd77e2de48f9145cf9a92ebb3e22dfa7e979d69b15a7d758a46bc0f40fd0b989b32f20303af19e64da5ddf4300316bd982e4280247ac383ec1b055e64f67d80b393ec73cc4dbd392f45165c599c8c3be6c77c908a5f59bd2d5e5b12a7ee021d90a0cf4aec0aa63633c27763666aa61ce4e0725374e699174cf688e836c8277d17db69d9b25b9386b408361bdb53eccb242545b987031e4d165b21f131c048ff047ae427f05c028d7df102886b05195a646c9e21237847c8d1377f8a8608627946146b474fa2b7d91db0c72c830d370b03eccdadaa7e3ce4b384649cf256d117dc4418a65fb91ce8e3e5a434c12278537d114f6094b95656abdca0967793fbaa24e3d0c175bbc097c32ad31c8b9166e0ae9d95876921364d4de0cb1034daa69add013e650d1f93407bbaade5637dac52278850b5a09a256dba037135432a260456d97b7ce361aea857e6b3e983ff2a2e6fc62160d9ad83c71ab8a8b94c298cfae9e6c90024d86c985e6f3c2fb7eb5282978e92f0a3829c1a39f74b17daab311b756302f8267d44bed325441c826451baa920d08c24d8844afcd2506222e56c9820edc6beb6b6965bc816363ea78c45d1ac21aa272360fefabf53a06944bde8e7065b690bafa01c718f9dad8cb06a6a31290a5d1f1d4a8637577c15fa61f0ed1bedbf98ff41fb3a8a7f2bc63b023c15c14eeebc77b16899e50c851f66f34150edbef36a775f08da3f0cba5e50587ad923840fa879136beb8ef00e3e05812424eda7c18cf93310400ec1d9f25d65aa0244a901aca2917c567674ad69796a4fdd5ca7495a7fc225cb823d1420a456bb3ec8705014319a3a5a6fd36cd93c6f2e9bbb128c2e0bd99dc731a37a2ee2e57a80dc1867fa4ae46ece2f9759e1da3fba19499176b5e849a5aab67fe82b0a679777189e6841d09aaa6b4db530bc7219b053ac88a567f0059ea9e37985ec0972f039ca35014fd70a73e5b179072368560f8f553d6ccc8c52cb55061324cd591817b338283f131e4d2f5873931878b40a9d917c4b7f5c9ad7361632e27e726f37e397497b4d9b6203240bb8acefc890e9bed00374b5ee49ac0f3d55fcf3bfd0f5277f40e17bfc9be5a13900b92f30e80745095bb5c0273a1c7b705a6386fc7aef7bb69ef72df6e1c22d8280bd4791be6d98eb219a638e2b8d8b784354f6153ace317e873e113f595a24db1970837e42e851ed25ab1a2aaf2aec1505d8a755f3c8c18fe931b54ae03d0b32e159264d09fb831eb58b1ec13054565e278009cab7bac51bf3d85cd653b21e7bf462d1fbecea211e513a39bb4ce19fabdf6f51a863051bff0aaa60990583b23f4c452817b1849049554b62281b96fe4515d2b6a078c4a2737148f212f0e810a1755b17e34a21159935e8689ecfcd37ef79a7c86218cba05e9ff814bdde0fcedf798139d908ed5322e37c5336eef197b014577c589674e4e295746b96b988bd24da9c16f20221f916e1d83482fc0e1521f236d02b791f3d0f7f8a192930e65171292f028128e91f947ae828d6d7a70c2f07fb2dbfe7eee6363415f96d9a6e1f713f5ca72711fa061ba5df221cfd6706761d0cd1308c2f15ed0b80454fa2fc90d940e322c7c710dbb1fd0b0b2a94a0d3cee637e0b86032660256aca9298462af3ad0f28292b63401ec19bf7e0b8180ab330ed4716486c8a70d4c05cf9ee5a5e9d6a31d7cf4f74a96ec83de1ce1031c76d6a2d19d53cb324b6031996985f3111e0c5db92bd061d09c9c9e3a707f4d55ca8b766683f27068ae8d0786f366bcd55ff7c8d901cae11b70e0f8721d66a580df6be739d951f5bda05e4ff17859de2e74c0a48fdcaf12f69fc3c23d38e8cd636b76e49fb7e2ba41bd236c4f9017931917027e68c5ef88e973db3b4a711e4e5983de3946b2e1f1f9d150b773e0ba682dd8bc1ca8dc8101c7558dbc1b7f5f8ea7bfbd72711fcdc8d7bbdc16856fac334c41e3b6bdde7be625555ce5d45072edadbc4dd151f177680bf355917c92ca035a80ab1b17d1e02a00132c30c29703478d60160add36c8d4890ed40fcb256a915e530e0c11dd372a06396ce98b591537b0dc884c2a5bd2a4bfe3f91fd609eaf51612144283f38e5ad8a61ecd81932d298ffe153a9b0ba786b7ac506a34bf69616a32633ac0605c574f70292ef227031a2f1c2caf95762cb9a327b17326f3267dd0f521f5a4882922150f4484e4810a60dd970719d46c66e30a27c73a6f9a0cc17844c8213b2d2cefc094b5ef753645bdd24130fee850b8084019d249053804b0a36f9087f6f34a93d670595dccecb6db9d45f2852cdbdeafca88eadbb7cc5e8d9ecb646ad6f3e4f326be977c868a3c516b6efb21ebe0d612e5fb92e4eab27108c610ae55968b4fba63a22f3dfcb71925011dea76eb101e00ab4dd4bf743e35046d72e5bec49790cf2ffede7ae1f3c5346e8e2bd3827ca172c0cb9084d10efe081fcffcf00e301e8cffa7bf7d4d172a92cf41ea7e9f475abd9e85293e95b45ff7992b6b76409892742d26aaeea08700c821f2e1f98097a05543b1371e9061993cb75364a638e7a7410c7b0269f340e48cd2853925bc2bd13ca0a2556c52d1136a8e6658b8c3cc2e3acbcaa91cbe60d7cd218573a82ae072666f0b5e94b485e073dbd5a9804dabb1485d38a2e7af1e1cd6fd832e096de2009ba4de697ac35d6f4ab6b387f0bf56b54fc91a26944d5c5c80511249daac2388085c46811295e7049a1ce4867e39570c7eef9c53386621771bab8665dd51a512863873fa4d904063e7adc8c6c6b8d286c5b549c066eccb5dfc7cafbd3cbe02f2ae433f574e8468c22954ac635f97d2db417f4731ecaddbcc62f84e8b424f19c806641028c84473c2e5c38455bdcb46fff4c26db1c1bbe1064e776e4818b99ffcefa3b4b78cf7c7028d12e21e2589c03a2a34cfdb4ab2a28c8b05b4827e0064f2978b97f2fa76e84b226fa2795626f444e73b6a24c18d7378fe3cdef915160e7d650734b41f70edc132eb0de844832d6ab2e2a3c041dc364f90dea829b360b55486e66d8a7dc02bf743a2f1d82f0e8512a24168d00945f011097cbc62c30224e2f755123848a43f9aeccf0c5bc108b4adca3588007aa430fcafe4734e41a6048b9355ec154e47b00825de303422e727be3dd43a21b0be7b82743c1864eeb65c0cefc53631e25d0cf3286ad8cae05ec0d0afe588e700920bff7456ae22c3598065b99535fd0273bc2dd11e87c87ea33f88f9de077ffb6dc4925dddfa5c406543914ff67cc7e7a7da7dec4f3dbcfc91344b1246f7b5a43c80b8bf79e652c9f7552bff8fc12aa56df8d8a533bbf80717803ecbcb1ea988f27a4eb4f146ac200b04a38e86dff8d7648327aa1aef02d36ba58d7a9738a275ed0cc1b3e6b295d202e664ef29f39820b438475ce68586c6624e88f2884d4b2c3e77c348a9d10c6c189393ce6774334b510518e51f4270b2cadc2aed2d76fe7dbab0770f54adacb1d65ae6a3afb0ec4768ca0a2e9f446f3185f549b5f70970a8fe5a1de2cb008f5d372db39cf108bf7aada4abba6b66d26ced2081416a155cc08524c70fc4cf2b8906e3d8fdc6b1869bb92284f7b98814fc9dc5463edb2c2d2a77abb3f1e2af39e9835cf97def6fd871b53dd770ef75f348d2124c4957d4b23cb4b35865301015bf681cf99919fe3f0ea6941e5fa158f9da2a6faefcce9f563ee227e8b31ef5edc9fc1e8da564930d6b02495c17c3e7b8826cfe71cb7302ae83fe23d6b66f9d708d531d77b1595754702dd4f86af06f55786dbbabcf83f74ec9bb5f56e9e40d291a6f0d33318426234fd7817946d8dcc884f48a39502a0edefdd35c41b81c385b6c0be4fd7505197fa18e14b21c9cfaff74c82afc84900fbe21d65dfc04bed6fc42a3dc0ec67921952cecca01aca3f9e32b6f0448dfd5059452a5c7011d8e8c65b9247e537c305fe83e8c95de1006a9dec5e3c70548e0cd1ffa5921321ae4a108a9c594cbdcb90df4e2852baa83b00b5015c5f6a10e30f92accf511d896a12d76649d0f9545624a204dce1de4183b18879477e43309c69f29deb3bfe42dc6c09780890472faf83e595d58566443b679602ba8d061839d5dc086967bf28b93e1351d0f681ad2eb6dfc879327e945162d35d5ec33829509e163bd26a4cc529d849d137a3e692207e02ca42631a00d84ad7b981687252ddebba9eaca148df397b91e37ffec930b0e6c43e6a407ceefb40bafca3d80c2f595c927c23621d5a762702d519e88158e81f2538a89a7110e2b1b489deb2b6d82d0f558245a7619e80de47303f06f2e235414f62e260aaf7033390be4e8c5e8352c8c8716d75974660d7338c26e450edbf3f1d07794027687b5e131798564966d996bd9c7da95a01cf91c9887451708ce22126df72785eea47643689dad02c2aa5caa83455e67de6031558e311a1ffe4f330c820b91f921b12bcde8cfac0e4330f2c01b459cb7b530437896a0303266b45c49f1fdbabea0858b0c228a05754244a5bbc9c9e296789b72c8127461bb89c43b3d7bf06b07e09703686e1eea53deef9f94f9431f13dee73cc3c1084d41a7301afbed1294beb7a80695e72e4c01fd43ee4cd430f3a0c3c31c42ebbe1d8e7b74489e8f16c7b9bf48afe0b0579aabd149defde684193623c5c0232347081c48b9baa3f2f1e5c490a712bb0a7371bc1ebc9b89108cfa863aa3a4e9905e7447a413238c3bcdd0717d4dbb577ca5bc446a1163f9a3b5b5cfdb6ebb8a6b7269af03cc8ee6ca8f5c24c37e9d0e543d843f79df8e13422a6272f16e9a05f778d672a9ba66784f6ebe74264d4d97a0a0dc091e3bcddf96a28699af17d9251552b0565aed5e0bed10171404584fe37478f82b4b6c7eb53346af83fb3a6802ec10a153f63a89c39c37567b40bda5807677c76d411a1629031dc76e1fc0a3f060e5ed8adf70486766a246a7e3db4f252978d56e70bac5210639d223925acd7e1d52e5ae996e0e746b478047a3782efcf439838fc6c84d847d3106c4a7801f544f51d1aaaac9158b4bc54d09707d90a57caaa6d6e0f2b70000bc179e1ec550dffa34ee5bb83b3238ee680ae339907b059a18d73a7883e4ca9d44fbba6f725bd154ab8beda6a20d08a70d8470df97c1d195720b7437a7a1c62b7691bf31d5c0a85d2832a26758192011b26336f95b26025d4fd2e4e3f38c48fbd2c0029bbe4fa6598ae5dd295e7c84c08614395b1a10213bc608810fa2db5de7d0704e38eef1a413bf366b94563e83ef63247412bbe8962f3a69bf8c6181bc38fbc3e7173ec5c64e3b3f5d0980703f931a573150bc883103739e70802b70d1873f508a82427aecbe0140303eff9b20f8e2b9b08e16b6925014210d8840f4b988107be3069230aebcd6f5c0ba96f7df77f7b50e469a15836d2d7dbea5aeeb36f24a119eaddf79040654e488722ff2badc7d5e4dd5e15623fd3a57555d806713e801095d17386c7b099cf82dfa297b5c0b8c551bf7c53e0eedee6a4fd8068a5dd6993ec320dc270d48c7aeeb916cedb3d5e4c7199f609a1ae87276e910542084eecdde5eab33a1fb456c1e60370cca505969efdf0356ab969549483cdd4213fa1add40f96ea381d14c109858f2badfde1abe53f51ec76102d689bbd4ff17e1ee6d0b582e0c48bfee508c6707e79edf7dfbaa50f4f82e8a0d92c97df26cbd3b5e0801ce439cff41fdffc79260d87669445ea62543ab2a33af525ed520dc993af52d7ca1f49e166d82f5d4e08181e084ecb2359ab0f801777ce2860d557c4b86abc1dbdca010c9e95bfc854688077a1dbbe5bc077099cf5ee1b3c49d36c8714eaeca37cdbaf25906824163d69918060bc79e6881302e41c5d50156da453ea213f564e8e3a329949db33a319311d7f87813baeb0bbb0114d92e87bf61fe7ec6583df290b746104f6f76fc98b6b94a7c15fa02cff111efba69dc73783aa8b85ad3e753a1ad133bef583981c5a3ab7b23e325329ce81066840751389c053f99acd4116169edd8021a04ffe86140ff583f7bdd6dfeebda7dfaff17a2b39b6c9b87505585b59d408278b42f44f557bed71c0bf45bb6b304547b26001bf19c19c6af58535ae15d82ca566b5eb029f62207b147283bfade0f8dd1536840dde6b8007d3e707d1ee57f34ab4ad3cbf867a399a1327927ea04c27ecdf774a57680c5aabf1010083eb354a30fd0b5e3829eaf6e1a005f16d5fcaca13481631d52d87901cafb043c4062718a306797c883e5c99e597ca0599f083502e021700334d7d55a1a71d9724d1f92dd41a88940419b1697785b44a17341c2956563d6caa167096799026fc01e5059d1e4f5a3e4ffeaf3189882bb08a5300993fd0e5b0ebc54ee22b6a98591d73de1eb0a32a22d23ac851628991f9eef009105e1cf747896ae6cd48117604ef49d26cab7d5bd63044fab2de728d9b78407b0259bbd9268d63ee1907f009cffa07ff9e30f32cf56d25fc0a3410096daf9c2f8990e8386740cacaf272dfbdc185be2726484cd3eff6ebd7fcee7f8eb15ed1a952d34bf88144f02f07bd127218539b74afde3f73a051a5d240085a91c9c6806cd5cf3090a16fb4a02418e77881b952dbd0fd0a0c3c8e81306e38e0ec654d97e2ddb17f4c5165d343e40033784f0668252592e4d1cd95fdc4af16f1ce16b06ad0749e8a315492b11692467e4901a837a443f05c36b106bebbb1d35a83558b76c4c16ded2cb4e80be746c40300d5a5d2500140409833f74557963a37e0888d854105d32d324063d2431edb2d2a6f62a538749dd8b32d83057d551d53df79fbdc4c92fe34883a806ab6910b7c0b4b8495f5fe77fbba14d071c28136c0d45eb02c80de180c846b61ae7ff583d4ffa4c58c0ac0815e9922d68426d5264f7d8061c59ec70d963e6c1f08861fb71ca3e7c6edea3c74b179ef6a04c909502234a0c2493958f464e2af923d39156d61472fc0ac764a3ed9a7d64b0a1a4ef283d2411c22c40d2e7de982fdcddec2023d7e413b27c11c9c9bea9648bec30445e66c71d9b4617241b6a6d82be42380a3abdd35329adf41a1cd72e68ef857c1a9b205859e3c149bf1ef6b8f39ca5c33bfbd8c8e3ad49f617050068765a8f9597f0154b989aa6534c5a0bdd8f060103c8fdd717586b655e92485c3f445c79b3be59ab21d0f641096a566e99385700f8c3d44b3320f9056932420a680b0d8b2614b907709951c8ca6b67cd134a3c3a35f65102c1762260d694d522e0b4973d395a17fa90827470c2f61ce36bce0dc9d2d618da66a7fa5fed6725f9b9f5bef7eabac06f3ba89e9337bfac6660c5e953bd6f41a9a1fbca5ac67579b88e2d5628a68a77a2df4fb508d593db7bf05500da15aba17e98d749a9492a00870642a3881e1d966658f1ffbd78e0ce1edf48adc719336da0794462c1802d1bb0d4f76b24c7e7568534b5e1cb159ae6bec0017ad710a192130daa1d8b3394bfbeccabc04d8a739cd624a50d652fb06d911061ea498c936e4e8801412242acf790e4bf3b43ec1721fa82fa35de30afa5f06b8e3ff34c11922a4c6b2ced320e80e7625793f3717a5c741a2239b1a3eefa045e7dd9c50d87992f9d1c3ce7a0bd5968bc9c77c9be1194f7e2ce169e54876ebffcd7f8ff131456cf00daa3a8a2e4fb0df48c619e1a07106a10c91634e7e1e9ad7bea7efbdaff80b9a1a774e23230493cefe2ca6885eb499c18f87b723760e40607feabfb38707279b095dd009095e1fa505391596db0896732fdd9d3edf8a881d95ab6723025fe3b0d3806002ecab633d0bf87c665551adb9135f8f2389638891d88a065b7f387fc55a5c9f3cc8bbbdd56bade2bfce143356b96d55fc646bfaa83a447f57985981db1368e99c1813e039773593f9c2559a9203f3d0e5ab4d5ac99326a62e7e66c364e6f0582bcae817912ec7e3efa5f3789bd08e8a089a9cf13f0fed1674d59c16dcb72d5c92c7bab0794a1fb5aefd8cb8b03d87e1ab4735fa1219acb01ac5ec9c1839ee735ea769fea4def6dc24898ec612417a8c0276b6d933c080d11604da0dad26365f2d182f6c13ff0655a00a45bf9e080f8af2b9d9e7d0b613f432048d7d806573de19bad791bc27cb1156d4d04b29483ee8dbcad033c0e98d115afc39d87b7b09e20ad75f8df3db5ab3f7cb0e0bcfca6e0e034d2a771cf918583ac631340a52e5e05401aa5b01857843eaaed797ff1e47489eda2732f60a7c06695769b6ae7e48237f51c4b0bdfd9a878ce57ae215610102275db86515e9a9ce76fbe5db30c839e4c2c6d12d5d79e8e078992b3961e333d6ddc75015c2d53c80b3886f052c6708e34dbe7af3eda1de08e0bbaa0420a9acdc0b59694ffab4e032f642dc7db064a1b8ea613b1bb9d59201bb065dfd9609b19901cd6a504a0dd813caecbc167e500e9dfd7623c5e6ca2c0bb878b27f2cd6bb8faf47b96a486b7a909d606c487641614a14a018b2e526a204ce45a563118b121c96a8a52e035fd8dc0f427195664885eb8734dddf531c84726ffcbfb5787844361e98a2ca9043e076652030709cf2c7e2dff38bae3ff9b0f0300a732cf4aff8df65ae8e6033ca8fd74843ae6c211bda28652218210911d41d25b34a431009bd85a46b04b46455c63a1e9de2fdb40ed439116c846ebb3cedcda99fcc6359ba7295b436ef1eea80b7d8442e076c2364f354b88253e9ee7e758415dccb351340016bfef0c479fd11db8df76658916bb895c1750b85f71ce8c600ae89ae791166ab72d161441a6d70f012c56208d16eb57d201cd3fb162c07fae1f331eb27bb81f463efc2f07f72f0a913429a3a0fd21df6fdddec4720b85c33ffef9701050aecfae2b6196c40d91358cc0a41da18cfb23e19c0506cc067dec9a9f281e4e9c21cbdbabc70fbd13baf6465e38e44cfc31a667bc3531c2ba1d238f1fde43dfa7cd8bb8ac643ce15e99d9cb6c8c06f9c5e6722979b9b2612baad733f2276b7d3bda7f0b03a65671e6fd17f56eebf78fc0fec27d493f6b1690d99bba1b9b8420bc9771bd4fcdce3fd19d124e616793b48506d21f53550d1c5cc58a1570ed68fc30bc6837d33f7f4c7e489c780e077333a2429a27ffc5cfba8cc409442242cbaf36d15bc53dc6463ddd85e8268afe20cb0c7f9f7babe1668e60fc9fa95badac268e74d05268a7d7a1a8bc59593d8affd9d82fdc2ce536d49ba4533414b20ecc952261377e2dba83d10ff817706d2e677ad96a5cd36ff800262a58e9595daa8ce293b643088a885c82f50dfb8682a14b6d4a54d540f5ae7e8730ff942f815aa88179fe3b20fa79a615021efe5992b2c6c5d4126b4afb541238112b37854aaee188a293d046bb8cda4a03f02b190e98f79e912afd42ec0ae986f9731e1b46c7b3eaf666131a8e3fff610abbee483f47761ba20a9112f001032124e81cb58fabbd49ff1d7ab99750ec7773f907970b1cdc84e8d2dfaad4744c24e39c223562df169bfb769b91a8821bd631a247a26565541343e173a1c7ec826539994b5ce0d78244af211d67fd51b34c9d4c87358fb2b100cea907e758a85264e9401f13367bded0111524afa8d809326098eafe1ef36774b6e18cf84252d14f906c7e990d3a4cf19c9e3530f543ebb02ee59c75d8a86782cdcd4b02c2658cd9f4c0c2507e7a0c6b26cd3177702e72c11ea1f281baad46e9ee94bdee62232dffb157bbf4a6f0f35274c54e6f587e4c2a3fa91266a0d9a93568bb4bdb0908d2852d99cd5f4cf572d89bffc819dc1fd4b2c1e7af7e78ad5ec46c97a259948dbeb1f6a37f6d598942465f89717f5aa9c86e6b31898a85466f914af9642bc6b8fbb87b73fa245d46f5012001128841afbefa1875cd03a2d80f1728c28eff7137a0677de865c2ee25ce450efe308bfbafb0a73f0b29ad8d0da1e8f864d42a368ec0639adaaad4096ccfe94a64a960be2906372246d74fda3fe7e4cfcad024b20e67fd27be5e591df451708a02476784aa6ce0b5c18acbc602a3ce235c51ced28a7d3782387207511f092785430162ecd37ff7736466f6f77e1a12dc727eaaa975602c4f3fe39eb8d3933e67858cce032323ae705a871d597b2905834fefdc2befbb6982a8bf693702dce9b0af3e024270da9238e74c7890b8a6ac698fa3870d5615bf01a3bf889cc25178d3bf2efb58f975f46f8dfc73f793c53415c3a0da650abffbaf53b1fe8868eb51f5c5cced1bcb7bbbdfe6d17f55f83d887fce542aa46345dfce0377363b4c98a891c90ce6cc9aa2e4794f757999275fd38f4837dd82090c76425774d4d2dbc218c9d968fe62044b1fdf61df76db0205489c5d60e9dcede83eaa61669157de35711cf8fd01f90cd2f145a4df4dc9909325e902aaad9a4e3261411920bb7afaf262f33238270eb68a909f03d495c0fb5b424465a0360684b5a2611a1502f2611837f048dc5227333139929eea58fde39686f0ead48435bf7fd804c935b2f2749daa0d73a329c06b277766267d8c57e7b05c79d9a38ccd4e20231dad12b19368457f06547c751874b10fac5071322a99690512c7ae4774fad306972be80cbac3dcbd3ac59ecc012ea791669d83d291a84976d2ce806942bbc79c356b57e19d137f09c6bba3f2df4a22ed2ddc8686a5ce4664641b977b28999d88107dff203c9571e591014809357e77e86d39d312262d17cc7696793fd0c0d48a308f58c646339a4b64493f26675c3eb5e7e509aa0e7c75ad0797917eebdf12413885f11a368e10b6f7799ed6f4d29c8b79d57e42c0d0feabab48f3a38e7856ead2e99dd94d46194a778f1d42526bcb9d2d5b038dc2153d23ab3c7631df13e2ade1864a12f17cbf66a86c2b6d579284808ffb6832456d558d2ef628a1ef4d5052df5352648f7a7720627c14cf729a390f78f86b9dcd15a7d729ba984edab5134ece13fd022415a9e4e5078514222e517c5bbd675786cecd427ce872bb9bf92999e8d2867857650fe2ce5d5cb78743bea07a3eaedca848bf78812a32c25b4f30c0ec4742c9cdd20647251e5bef123a76ee4139ba3f0f01285e18f5280c1b7b7e8c3a457ce0d5c547f1a7d5cb6df94f9853f9f1a82df23a28498525ecf21efbc714ba817700b3135082c08f9e8ea50e0b7bb422026ae969dce97ea135fafd46c1a55202068df4efe9adbdbdd8411309a20e1bc147dad80db0d469d1fba2a704aa916226fe62cc6ea1075f6218cc2d6eae3b01edd5cfb445053e9c3d7cb30467c337f0fd13f4fc58889d71d44ba385f9b0a5f60ee63969c50303215da59e060947e91324d1233a3363043ba2d3cfefe220c6041b872fdfe0007490563033396085b788f44d5871e6657fd635ace405835f248c33f82f042bdad0cd092497d09bab066e8d3c89af73098d6e3ca6a7cca820895131bad96d20af776d42a6f2f2f6df66e7792795fc130dff9d86eb8b8059cb1c49df41c4cb030df723c92d2706db94415137a495eca46f937ba6da9446eb3d73dcfa59338747665b3ce6a23f7ebfd181b59d9bf7fb6d2c2655d8a11410ed662535b5b5561359cf4f74fa0196d1fbcc4abad771637905f341d17311d6a15cc836341cf79d6f5c2cdbabb33b03d9e8b4facebd59aed1c8a8a342385e65da02a79b48a07700c77e1221b2fe23aac9b794b21eb82ca6b5814466a7acc7add1646716b60cd76ac52898ec0b5d4aa952c6a08203944f0b59d8d1c9632c3e5cff0172ecff2f95768216922cdff8bb2a699442fa04d6e4d2d7ec1825cefa9a63b470ca26ee08c32f4aa48da5d7762fc7087920c060d62f90f6f1e96e5e3e0b6f8e4edbea8780751cdeeac844ea7c7c038972363455d6b68677ab590c08d0f8bcbe5a9a2148da4d0c4a1604ab13bb91cffbcc67bfd0dc9ea641d7cd8025367d306f62556441624b0f308af1f50f63a37c71db7454c6bcd4f41e0baee5f1ab156c7e0534daf0fb61ba9c0313a2e7e2426ac049082a47384159f4b5caa36584c3e8a26c16258e3e22eab4a3dc1a127348bae37e0a254b33206be3c9e548bdfc5422e7eb1ee83524211107b1e1509b9ffc6988d291411cbf40e1335c93695fbc020ee868ee15c88dd3e4dde2cae9c409dc0de562bae4170325c8a58bd3a938c2c1e31507797040081200f3103d35ca91ddbdcdaba8fdfe5a57eca3151fd8260d983eb3669ab2a681276abf7579ce46ebf10d953634f1e96ef05172b677300dcef2068962a2844788e26f6f456ef04e9807f100a5b8b1492258dc24b3a96d1fc07de8f8a52b90daa685baf1492ec905dd4574da5591992b9d4ab4054b97fe5e69a9d1734fa4fdbabb9f05d04cf7161a631ed8a7f706c3484ff6a79e2b0c5308c5f8645f20b374f8f862c3c2ffbb9defcfb186ad91812ab9a6919a3354abcb67171d896827f650d9588b094c5513bf44494976934acc284d68ea96ecc519d2afa6cb5a4dd5a00ba100646cac79f269690ecf70bfe697f31cb56167feb65acdedc16f29f67d84c57350b202eb6054d3e54ee5187bcacbb7cc3f3b6b3ca254197802916cec088933600efca7cb3ad01d75f99ad074b933fad36515fdf2fe1ea2cb333b30d8745951cf81711f80d779d4d1300ae191d8ea5fd6e69f57baacdf9a50fb107edc384264ac6b495590916bb6c12444f21892e79ecefe9d0c8537227403d059faef237d067c1b6b3bc56a15211604a88b6eee8c402f2a5bb26e70382ea3ce4f8cbe7e8ac5bbe9b808ca62d8b3953b4caf6a4785ee2ff5dc9b5e88fdb984fd43b16fcfe1306923e560ffdbe26cec8064580f9875579977d990b7600c109d67c0bc0110235ebcd1370db082900499500812b1f826c64c6a53a30ee3b2bd19f997324dd1adcea36c4d9e4c181f98a761f79b96eb150b49166922620146b94d328b3f6087bb7793194335f0c05e106b0e29ed1fa98a7b0484cd3d912fb19a7b9885777d67baa248c7c0e3ddc45618dac273d5075fb42d0069de73335bff4f1e59c8b79266d93826dbe891039071c3adbdc914211b4189975391b9e04d73c2ea887e87d5c808724ff27b3d2349b2ecbda231e6de70f42e89f569a283b3b2c30f1486778a17aded0cc3fc181a30048e33f3cecc71295d08abe32972de20a568f1666f867d5524769de2b43b349d4fcd1fca061e49117436be8c3c604d7738905083413f773303e38600eab54ee279c013498d5040828575bcc329dc68b751f0ff79d9f62109ac27967ef1d44716026ddf84608ed90b3d7037592fa254274ec3f48480281060ce2d36f290640824bf740372aa92ee7e138cfc932b5ce6799a83bb56e4399c916451e2e1f70ca05232e23d2b1f7b45d949532a841af5cb320f7e47368e05279e94dc0da7a3f97ac7195a3793d1cf9e66bf8b27f39293e74af5f582e47c4f4345abc9342f117444cc7a53df0ac7f5e498a7e91fa302234888e8a6578c200830c13635c3b6f54ac3ca6ade66c4d756a2331535d358f8efa831acbd107fd7acc5eb13b3b8a8c514f312939cc9dee0b61a507c11e89bf815b50f35031e2fb6f9a48425aa594d82180913c3d6c21095f5dc34777f6e37e122522f8573af20afa6e8d7ac349f6555ae987ae192b747d416aa986594f64b207f3f9e6bbc87cb9b828d39ddaa5cf6b9ed0f7510914059c4c4cb26265e844e8a6708bd78f92c878a279a080dadf30ef11968a1460089a4e1e9444fafc25d161f16de29ba7bb711ba059ae9bad9e426a222b56ab20c27f6709a71d4d68f2917d37930f0b98f5cc52df1282325cf7d3aac6e6824ce8a49536010c9ef907d418c5c5f033f3b8c1aa06a1ab06023f4885b36ab8a092082e10c5ed33d3523c30f7cf7797245f76e6d17bce95b216a305fcb90ae9c82f39aa355760be218ec2ecb930279afe8bf772dce359c5e978a1505d1e8e0eae6af119c2223a002650654fdf971ec7d0b8c39231b909d5745e1358c6581006025240951b1b12b11f849b02bdc5fdd0bf159daf3a3c1f9d64a63522bc7e54e15414c6810111fcbf1169e21b009b07d4260ae31b54bcacac0c42046018840b7ef476a63e862130c48b4c7e27d71863a8f2a93150ecc02c998f272cbe6727976be1dd5277a15643a2a440eb3c02846f93696fbb492d7c77f2fa2f70f0e69313a6e8b3c1bc6aa4a282195bb4b6ae0a06c701ba284bed8343617eeb917073e13d1c46171745d4de700e5801a213a657db024122ba74e3bfe9c6c5b7a87e44b2296bceb6857451ffae40626521040168e325018710ceb849c485251d7022e7e44d354031311ec08c65cb2b0f3767ca3d663f8d4db88cbf65850359b6a77df8025c31d1a1a48e480ca0cbfb656a3b00623f3593004eebc69ca859e6d839948be8b834e188093a946aa4b2cf70a824157393b009e08e3f0062a813d31074cdadb209547c1881f5896d88c0ce5dca6b7435f563b9c8094d4c2e85def757e136aa103bab4c8788706a9a6e5c366a000bc13d975050d6c90168150673fabe259076d842fc509a581cfb9e517cfe6b9fe5b84d79812143c7d4ec4fda796b50bfe55eb477c0264e4251a4b7839198b6310797234b66d4b3d20d057ad5d44faaa0e746b861d2637679908b4faa5c7a5f3a175715cbcaabca25db9aa0d9d55dbf73454b4ba19f24231cac317c530286da5f310b0c61388e0c27c8453cd6742d1262828e43542a96ff5788219d081c49536e0bf53c498c0f3580b7ce2553bca4d7fea613e369120e1387364021a1ecce8af1c7dca41ad87ba763b8771c6fbf6b622496a2b857f960bf340570af7c1c8355dff115a2666b82d99d1bd400d0707f5e3a3fc4df6f79b40fc2a2b79c38a4b448ba7d45ab8e6ed9735623d922e71e3ec899be3689a619ad308905ec9a8d317bddc97b9a41fe99f7e74720f3a830d3afd9dfe73b31298dbc1ebaa6eb75b5de00384d199842a6ca9d863bc73f723f4c5873d3377d8964c93f5172facd0c944d54055e755c66ad332df801922a57058ff370b4cacf75fe519f1b5324c9ad26674a59681ad8e93abdafb14d4420184be58e93c0b08aa23f2e08d1446a331a22320e873a6dd672d13c4d611dee84ee02939721b81f25869d3ea9eae9f23d1b7a9d23ebb0ea4d248e4b9c86b9b2a51067cc67b047650977a310f9f589694b6daeaf6a7591dd783145022812813b88988ca33c4972a9a46187b39c021c1a94dba19642cc524429e4c0287f4bfd81a2b21d5e8b4ab8def524bec3643d5aa49c633ed47292214e3ca53b077d7a9002256c14361e4464253db6f037f3f6dc14da8fd3a8e2a21adc1642a272726b9c3c91d6ee374559d303f844b1b131b9a9c18fbf01b549466523168ef339d8ba176270aad4ce4cd4d17c0446f89ef4fcf714c22c1220bcaa1072749ae2c1a2e8a66ed5763e8308046f42ed5e138d26645a4ffd4af3aba5a6899516ca1c9b76064b2a0337c69a594b68481eca72deab56a8c4386c6ff3e84163122349731614d1ad81f042173176e3028e6d8999c308e9af29c0e7279e5053ab74023f28029ec112afc0db8dc7ccc2a8a09eeeee6c27bf7af4286bc44bc931ece25604e7067e71d6ed0b1441305b113e2f690361045d3871eaa07e771e8768a609e9432f22191e13f9a10db0207a99bcd72a7a91a6655e239faf9037021a4271b34650ab6f5ee64fb0417e67e7639a474f67ebdef12b2b87a4d1c432989c7cac25d6ec412ca083cb9ebc937f4335dfb3545962735b6e283261d7785fcef7dfbd02608148cc5a48b691feaaf6fcafd1c472ea294725cae41634ab45af0d12ce6603e1664c0d5a78422383f540c888ce041cb0bb07b667d3ccc5f6b2f305c1e707e091c3f25a36942247e748d7e6789f41df141aa4d0958c15d5fde6e7b79dd7c996531895110efd1f0bd7f06eda44536b961cc0d22d35b31f69a00b696837337d61f1e06305b60de6c51325656f1c207375d12810be8ec485bca9d25a6b9be38f478c47e593685609b4955f9e04e190caf5b9027f63dd1864d8543c7e7053fa7011f1b09400fae271145b489cc91113af4455a2d7e1ea43ceea8c8654c1ff28c505f1a98171edc5420510c6cc9c4f3963ff3fb02dc0473d0ca38af9a4648c5c6766ba01f6e975dae0e8967ecce2a838c40c71c04771e6a5e484afffaddd0504ad2b05978852aab4fb56d93463eb0f0b73047f3b7be75df5f6247f165c580dbc92f0b225438fbd85b7041ec4df50d1f6acda14461461a05c903666c29bfbada809a437f7280d8e7e49a5fc82826dc97646934dc6073b534c0ad71a864f5ed03d3ef300ba4d1aea9d79c686f5b5c30d16027dbe26b2bb1a39d4770b2c5116423f38c4e3c707eb159c729c91bf78e5e15bd65a3b66a7f652e765cd7acb0d0cfe1a026d63e738c680294799cee3eb2d04c57c08d841a39e967a33ad6a07442eee8f2933191216e48d1f7ea48967b7d7907bec1d8ee35b587a7f20ae0486fafec3ed67a0d2f02a7138fb31c9ee2a882a6b9ab3b5cd82a0813298059c349ec25cbe42deb42288588d0a4eca9a8407c988e3692d33f06c8f68a71f0dc9d1f4d38768c6d0d18dde9e938edb28301d5ad56c02672417d004e8a98c74b1960f37ed501ec1bfa8a0babe72c192e7baeef00f3a33673c2ee582ad318a34adbf48d4e2899980635052efda0cbc56b67fb0885611f47713bd520bafe179d8c453d61ace1706465ff052d0132890b462aec70f53f1737b9c2bb5f27f61581f4bf55cdc3d9be7d6a63c928de938a55b12abdae04459f30588f435d1148e7e5026e9d251e97ac425bc1cdd48e7e2a6f789477264c802f10733e5820a8d3381df2371d553363fe6a2a88a89ed8076a580605e0ad9f1726b43b4bbd3c2b03ab9108d26f6b2a66867202f4982658109d10bdae8864b87b8423fd8ab85c0ba69f498baca5b05a027eb86c902cee194be8c13c60c5134e8546e624bbc48ae47cc5cc5fd7e954f15ddf0a9129148bd4e3439d857f721616386e8a5351ecae585439f85452f1c2e8bce4844fbd4d25ce84f2e81230b94ad022b0455a8d0555f0540c914a001ac1814744108217765d53e46972092869fd4bfb2aeeeaee5551b0f2795ce56ad6eb6620d41c5caaa1ad98f500e01fd7c5879388784aba07adc3c2824c2d284416580c51c564417a1ec620aca86058ce42e62bffa27767d202527cf08e614efc38c84e7283f80c5fa0950e74886fe4fc106c18b5df830294425fa8289e6819a0bba8a5012912bbc70e226a31915b6a3b93a1cc8850ebd0c19418b3c55177210146373e15ae84f80b015f481ec04a2af3568637223fcdcc5a2eaae08e7c134652e63f74befffed0e7c93382fe26d8bd34bd4f0da3c0511b61a9ce8a188129a7018116e07f881532642e6646d12e51a070a93e67411b2e92c286e4087485d23067522d7ae981a00e1e88a919c702e4396a5cb6a9f9184d0e30d9d541753509fcd6422fbd02c358d3d7a6871a5b23bde2a3f85f15fb0361d6bd3c704f417f3b9601caa757ef5e37b8792251ee362095c1d2a2f62b61b8dc9e50d5fbfbe1617882921b08ece2a6281fa05fc286585f245a009d8dc209cd8350600d0685e1641117125b8d7f1ef114bfd1c397ad18c0d62e60a40048d1a61a49abd13cf56521239e7bd02bcfeed2ee8360c6c68b0e8eb67e3308ec44713139955efd2888c414d5ffd9477d807ea3e063a7fad80cf7f7824b8fbcb84cc7ba5317913f175a262eecc8a6472290613c2679e6a6952c08644d66660ecdbcb3f9285850ce845d8bd1be311c38d4dfa3a844bdef17c0046fdea98ddd8eab02a63d305a78c0e925b8f1e58c7909fbadcd85941acbd076885dc7b6ea6e78fd09cb0cf690e9b0a8e51f38dd9bfa5001cad537300e82e6e563a3a3b7f089863f5d8c0b0127114e4f4de8d1540ad39b187bddcd0bf45269f4284413fe6b6c1fa89fc844acdb24de947ca4c5766129dda61ef071b6ee4b79bb392c7baef59daca5571fb2f033039a7b5639c42213632c2fcd49095fe307b914a303236dfff08289419bba894c6cc572c8ebb4fde4da3ff74c78c59083410a19022f2b78198afd57d4e9b8c2522cc985a973387e14778c8aa9c53790a9f138cc40afbccbae036e53f319efeb26605d259bbdca6e3524c484a7995975d294224f8bedbb3874ab6e144188b5fe921d0eada71e3b1cf35385e254cac6ad5718af7f3ad7718fe744cf5504c80b99c65f41f551db229074e6163ec7c44f485062802eb18b175838b658e8c57cc96779c710a5e02598513774653b6e20eb40a17e0d2198959e77d9661d192c068c0e40464850de4280b4c83a6cc11765e857c45a519669158b44debbb0223791d6f8507efbc945360f5640a2d89659b026bc396d7f46f5847215ade6b6974ec2050c38e07f4248500b3e5a960a212cf37a4e1ab0653e501c0de8c80bb38ee2593701d781318d1f75dd71d3f40ef2e49dfd15360a109b261fccc75bb11285812104c557026e0832d5ff4983d8f868aa017f3369be4902496912cc033814575c686d03bfb0f448b253bc0a5e0f8862158946338e77911c3dd87ca6ce4c53813f119c4e5a061c43880e883ba4ed4d8cf856c89e4400bab45073f1cc46f3ce9d0455f38fd7785338262e194a2f7b255221d985721d4fc95ad3af74f242476033e50ad0972a69c2d49a5a07c4c7a491fd150cbb139e907e950fbdc8d570322c2390f4eeee6d97b41a19b5d1bd7fef5025c3f9467335f2f2409b566ebba7bdec2a06206d495ce73faad1757f4f1c5b2c3d4800dc198dbfa3bf073b51dfe042489d571c9518f87eb971f72189d96938f49335b29a90b9e9e31f3a61c0c08b9c19600cbb262a946b3e2f740f3d6fe8142e0e57c790cbdd6200196d4938dee289316e0d81ed4a80e79ca3fe6168fb5b3367103b54255317e0691006ce338bf642222276da74aa7303f030e4d997e687f2bc9e5885d92c9fd2c8846413b1f8081912f2a7cd8a2705ce11011aca8680713d6cbad1ed46d9a000223e734dfaf54b8555c4f025dc9e84d2370ede7c7468c1cb857b582e8872ee8a602821e3f5f5d809dcd68044d9085c11e8fb9879c7e3d7f8043b4d0a73606b7cf7fe30829c4c87822cbe2b1b74bc082140f7d1147106268bf6534b3261b2f8fe100be66d22f1ac5ed58c0c922aa8c6a9356442a5f74402d3ee4a2806c7cb64e217bb208ab1f789e7a4096aaf59b6adb29e78a3e9619655588f4c60520337b8f9e0eda793bb96ed7ba796b9e876f9d289669acc326384063f07c5e9f4bd7a8a63ac5234188b9ac87b8deafdd111b3919a5897b7b794b6f5e8712ac6f5d206164b07421e8ad8e6d6e40899124bee6f8e24220bb3d625214ad5e1c7dd8c243caa58fe81abd072bfa2674b41d2bb042fd497c898bb5795797f953bedd8c0ed9b0818b84ade120a2f0dbccdc4ad35f4242e8412d862b4cee6535e14270fc93dc5970f02d04c5b8a46af871c20c7d918ecf5642a98846f4768fb35f0434d3701a1573ab24e8bd0efa976780dc2b23e5989bd5ad00f7ec314225f81178fc48bbb34c85b0fc48842c4faf62c8df32e180c01a2ef0355305ecb0bbda34d4b4887f1813f54ccb60b9ffaf5a01408e4d237029b71dddb4cef3d0a31a3f604371ac4ae7d36a5f4ebc05bf210577897442ac3f15280a7a495862b4340ec20c4ea7663a233346ab03b2320bd2c5c580935e82091001f7580c8a3064c095bca15f110efcf5179b2a12e7cc74b21d04b3905bc87fe2d0ed8774df4fa5f12d7646ec774629cbee9e5d42e05008a57c1edb820075de2bf1da795aadc0afea8cc177f698da6aefce217ca697cf0f2043170c5db0cc13777a2e84a37709414345aa64c723dfb3948712c875c01023329f356251a65a883ff3dc21f7ab5033239632de19523911c47614333ccc9ebfaff2c89a54a10393a4fbfacd91707bdcb4810707564f364875e51670c15ed551fbfc0151d9fc3985cbe8165f38c453cd8cf8602b46c9e72ff4e2463064d7dfd99a805e41a25c7d63bb31116456bc478ed745466bc04550557ada44708bf1728aa82f11f97a52b2df2055972332c8848c25c83cfdf3c650378953709c8355541e457febafde846557b9290cfaa669ff74dad3a0523efd8702b3f4ede5e85ddd6de9e2d2cbf5bdbca4000b04cdf42a9432454ac49012ddcd1bfb8cc667fbd471348889361edc8fa20fa1ab5a73f31dfa3b1a862295aa9b3fcc87d1a1ca4c1622ddb3c41e36e7e9447422c7d3f32323abf6aa350b9ce407904e1b9b0cb23a7776004e8fcee371fe76007fa1715a589ffef4f44ca35904edadd07f455f0a0436f6c29eb83b07b32f8e56f9845f3cf687bbf67cfd6dda1f664a040cf9890bead0eeb65817d7b5fef11100f1ed9d9d227f97987011a04c2576ec8214912888668efb84273b36e0e196a2b34857d8e40d585afbf52630b91a8211bf675ab6021418aac668e044309ec53c86ff044088e9bfac155e70c376023e7d7ad5fb88cbc00bc9d1a4e525c74d1af3871f28f61d3dd0b17aac772bbebf035bfd3b8fac5c6ae2ee2554844a10c5e5b25c9e25698863cf33d0349e833952cd008dd5376e08b7d28f0d8935b7cfced08bf0c3b7dcefca629d855aa0f0561c06fab1998c302136e464cc4d98645f7c229d641c165370773591a848d2832e2a8e0769f83b9353b806d3a3631481a61b2995377335205ad13a111068bb32e221166373e2a5c85c0aec2815bac681c53b14d1c62726f31a8b579afc55cc26bcb2504d66d0a78b60de9a668cbdb252b333adb0d1800769d78a9386e2bb3e6972222c3b3380179a35227c22c9377365977de8fcf32ec984cb2812ea501af44be316f5185f1415b3fae2c2acaf18d821d9f297fbc037a1fb46d78d5da975042f0e8909acb8efd6f9f525271f97a467e4dc36d1e3d47e40f4b6254f15f7ff41e6e023331f0c5cbab6d8c695e3b284a04f4ce2ccdc8ea1957fd56e190449252eb0c6227d1d387e4ef89e757e5486de5f615d11bbf5d847aff212006421efaca47f19de00199b9cbf95eb89abc619375ed8c41265f95c91929959427475521886838c5870c9c9d3ad0bbe4e1fc2bacd349b0511b83c73ab56941ef70050c6325aa2c413fe7a797abb3c9a578d92f10c0754ed7d1e90172649ebecd1a2d9cbdfd4e962c7c20d6031a2db4503fd5355b89235ba762fdac5ac52fdc84f5a65eb9ec46cfa276105cb7e66a7770e50426e276d1f687a734308ce6ac45247af37c8b87c3b0a90ca047a927aa45bbe8dba0bb0524b9016b0cef337dae39d9574516ba89c060b006d4844349f9b2513abbaa78a0b2ee55ee76057c860076660c647597a7ee3d2bc4242c87f93192efce45eaa387cabc8840fd176158fb89b7184e3db5c1374a610422588ac82e8bbe8c1ea74848889c49532ca9b0f21eb134cca8d17079d1756a404e4bff65a381dadc95851275cadb33ad213f6abd8366f80e40fb30e57f966204a951fb4fa8c70633e63fcba2b6440d3b66f84f778388db3f8d2262052374893be79fe2b0f46127ff2484202ef58b4de69bd7d9fe1cb744d9b6d89f84842945a9d865be9923a3c3fc596cb54bd94efe14240b7b99e8519ab2611a19429e7a238abd9f62198ceb7e96cfcf6b3e46b8fd44bfebcae6995b65c877254b7129b396dd6239f11ff426fc3154fa799bf5e3a7b276b38e06d24fba423d0ab4a4f45c2af2fce497b67b667cf3f396fb5871ae42801fc38721efcb6532551e513e804734c5dfa2fafca3d29653aab6473a9d5cc9cf18623451d9f949039265693204773c36de4b0756dc7d71ce48554964978bf114ec191c887a426a2ec1ad887112a4ef2ce0d904454e5614fc7811147b31746a21559723b0cc7fc5a0d7b8ef2f0804b7bde403e3de5ec2c66bd210f0ebd683e9ac91c59b663083540da2e4ec6cdfd08d9f4fb77685fc98bfd63d921f877708ff1efc00c7f0db031ce20047e583031ce2500f70005f1cea410e7180c33d0c7f0e70b88738c4e11cac03674d18050bfe8b479e523046db048a8eeda1081c2bbdcc35ebafdbdf620708cc544bbaacd1509637f2c1f8c67b3f506b50b180f4e032d13e124ea62d90c6c4cb440bca91edb2274c7eba337b89d5bbe502e463c5cb70c6da860b6d2e1f2f736dc8b01161d6262103f21f208dab86de38afcf44a81acf1c4000bbc5c5e19478191ef964d20db15e457efec4cbc436853fee1f580e714374e85632bfc9f91055bddca699055ab8ec9b3a5e4624716731f985372ce4e490daf1327166701c781977b8b7bc0f2f8fc0634114ea73751979b71f0af9003185b2bba13b0521d28c60af921c7081092ef91f2f5326a7c0419766d13a2f9ef595ceb955739eb62ff61b986830c71b46b23cfcba4054ec872785c1512cd27e5bbc4c883bf5c569ab2d32347506f1198a501c355291bef070ee8be0a3f132112cdd209968292f77044fc4a3dd212c5544105e654a6a85b6cd451143c06f24b0ae0a14437e5df66d00387de7c1b9cb6812c29ff84a792c1692c8065d1f498c8aa05c4a199f164aa119744db04dc9e52e5322442e050ffe6abd4f7f91954761904622593343340d88e67feebe74971180d0940e15c6c2da3aa33878e6ee32d11b3094cfaa1a84e4c479d85d864fa5b1185337ba660455c432e34231f1ff56cc1d7122182c5f2447692cde5d268a6e333e771941cec7b3e85ec5d192d8f87352e2205f2aae40a391fbab21ad372e169133e3fe9b0fcb072c7c1e5ec1a87ec37d9eb8ece5ce25da15c4785ec475ad78b731dd8e01a990f48d0b3ea6caa773bdacbb35a87a638bb7311cc6eabbcb28c42694f46c7d73a779b9ddc25f5bc9f6da579f10c9d59bc3dd411500a01f2a84e852c6462b6030a16de9c28be12c5614c343a1d563c58127e64b56dc128a8f35fa721bc400a6f11a0d35ccc35759564ad3b21297ea6f9371db9b15eb9b15ba0e21ddbb6cf255fb9f1555b5f837c53d5a29feba1220c0cb52fd76fd8d9b5fa79522085320d4b0f8aab1ad3afcd63b06645fbd552babc7d3b5729da05192ad203711d956eec53f0634a4e63da45fd11e857bfc575a6c0f4ebad8ab3b68f124ed1db242adc3055de43098cd62ed4bb85423b918465f8de68edcc5407d90162739192883ed96ca237d7bc3f9d23739068e8a854b3d8ae4335a9d6d4da6b84ba9fd2e453ce01ee2abf0d638ad86c1b1204a05b2173ce62e18657887275070ae8e41180a4d0441c75f187508e52682a0c75b8c2a8472530260149a2201835d11020c868a1064312830c06834fdbcb1182f4498c9a018a57bc5df0bb1795f0e3050070c0c8ca68408435bc23bd35c35c1c343576b52027b5c378ce0eb33259515302ccd2f6a1092f87c1c459142609c2de43ab5158bc2778015ea1f2215fdc5408ed1a58920f9181ec68540381f0c60c1355d5069a0df0cc5ea9259b91fef94cf608466a8189b3c901f6ad066413c2cca0c75ef93f3f7830ef03d06fbb7ba06df2461a433343f20c6ef3534373629824e6e62e1755f35a86ba7d7a0218c196efa8cec8e7ca90f8abe09276cf6c29c6434fc9263a3bd7363f9f04490a234067415bfddbe2d380459ec75a3e61059bfe9be03f1b7adf4771b5658d36f913083a3018865e0b062ea372c4d1df1d4df452570cae92524dd80f353f2b5b7f28f3cc1a1806d1264ebde106d47007ea5852d7d3f8477200f11dda120ba7099bc1e5cf2b8dd2cdc657fb08b2139ab7b4c549b70e2ada9472ee78c0baa774b8551c5d6a8de72d07039a814827a216296327f0ee39951d013de455be53007fa4859f5be0d4ea7960dda80063582af7a6275debd5d902ab62998404f405564b6a743c0ff73b867fe5243ad9ea1508552f7f07028a10b139e6bfb282112ad3d0386ae2ef61523626c7ee2d48bf557b14a77afa30e7732e9846cc23539f34241bda2464315b141fbc5de5b809eab4786cab71900f684f5f6dcd8dddf0e4cece5a45725065485bbb82c4ef9f05536c2b6980cc916e6b96ded06bc4dd7d4f478bf12af960678e96d18a1f1510668b3e72b492b128bee6cd88c6f05374ad7217c4d98750b3226dd6d1691027da32314264247f4a7f5ab4ebad5eb09cb0f4528e12b91a1156e623db7383059f4b63ef1de85b82eda5cf09731b3b62124689b24ed900830a4ba5bdb3be8baab0bd86a54f5ff07baf532cee5b54264c913e1843ea810c60d59069921035d1edd78a5ffc31986f493585e6f8b0f61177cd36926605e3835369c4c3d88a039f4ad78c5ec66f79c93d0d08035ff1ce790f035070e41af5b7b98378174950b8f623d6352269647859143d770e40732f92e8975bb4aa3e77fc9c36611807234c175c21cbadcc2f1c4feffc4dc704b621116f3469cd1866fcee88e47c62476d4c5b9792f262dca0be4e01a25c19f5d7dfbf016bef99a509925108fdb549ac4efec632df0c47e3ffa086cb2acba5f49a3e2831df1d4cd24a3bfe5cc5b66588e7c168de6ffbb1c042c4b605ded0b6cf069780f786d9b5d050d78c24bf800144c85658955c9ebff22d2839cef567ddc1012158b33c6ed67942aa2050c85656908067255f828381635431c933fe9a9eaaadb128d6a53fe4617bf90c12e3aee7c7995d8b996a11d899b511a456f67d100a3ca8ec4861e1e1e45146fd691dfeb9bfd2909fb88a784a282aa2541456c300740d84d0a032b02d8b92f4fc901f3cf8bd3b51d7274bc7e07406cd5f8ccd81d94316cf569d19415e8844d54bc614a22a7617a00507d08bc39ec62300b577748be7c5d69d2b8a9db484ad0a13ad6dec6e2242029521dd741c762987457c82130fdf51b5d674f8d9e19885b917908fbdae45c2a257b740b4d7f2de1732a996101078524776983777151a08c59c1a86bc92946cb74d33f83d0afe6402ff97714ffc006c7e42021238536cf49b1b5a46562ad254b7017e0559fbee1508c8c00e5b0f6bf687a9acb06b8e8cda725d2aa4365204ed4352563fe848fa154be2c19d692d2b27191bc7fb584360034fe24ebdb57d622a7e6cad09effcfd016d61292aee859da0c12cba1ae996948f42509606b4d2f48fc9965ba538225049142a84a0c3320028183278518a4a10a6970a0d94711a009faf504f0ded19208415b894badc1ffdf27d0372a82061b1246eb83a118f6f1a8ae6849c2484b2541420b5b72fc373cd1db379d3704d11279c195a39c8a8fa445b0e7664be4ef2b473c0546bb0664be0e7c7cdf49265c2a0d17003a6c3503a911b8839201a9819437b31656abf30fbe2dd1bf3ed04f9f14b00ac4f40e47a9c57c9aaf1fdda895aa66889cae169a1be70a95f1afab1a2da6cd3f0b741151afb98a1dda6ce817185133cefe84b55020cca2ad1536cfe341aa3d0c9b62ff0f97c5af27c5d510cbe86b02df80c923cbd15cf2764b9d15d2b74c8b15674a84a3100b737db4be52c3c30462c2f0176119225c535037211f8026ea06ad0a042854591d355db7fbf539f3c5c2430ea15d360b27f725dc18603e8ccf9251ae69384c0378d3f63d907206dae394e4fa0ee161440ecf247960fb21c15ed3cd3f4b1fc3c006d3386ee3b9cd49d73d0109881bbaaae1db3f408a70f08bed945e3c80e6b2b7fa1b077ae8d5632813cd9abab09fa9512c53a2a95c03341f103d5c5b2e06d4f346e54c6fff319b946685799f3502042d21c16bda0404663041cd11f7ba563c7ba3c602d20b1f7efbbfa273491661b85348028da2e1a56c96e5a4964b009e907b7788691c07757858471b0cc9dc6bd0025e022f0621160b8e804dd46f6977053fb7846ba7b568d20341806c1145771201001c852fe3ad203cf6406d3babab0f8ca47c86c9ba1f39cd6f42c8ab48616a0b52189dc3c571bca576525e8b96b1a07d23427d7b9029e0a8f85d61e7516cd7bee8d5d9b5cc6c1eda847cfadb2707c64a4900778e53a394baaedcb301e654d3ae328d3d113544173b918eaf6e44486868683162557dcb2c4a07de9e0b367fa05f159f906bc2391c4aad631aab3b67b6f7eb68368065076c02f77d1c0a3a721cd4dcf9b975fd57a1878719ad15edebeed330c6ed4d87dcc84fe87efb9e2a8384be93ec41fc4a89b7d61dc1294d3c4b51c0ba1611cb3931a92c463013199a151d53fb9574d1b6b08afaee982179b51542882e7dbc0b2bf2f113cff08b5214a5d151037ef74b2ac4776258ac4a4922d9ee6d8b8e26c4745743c3605a911fabccb9e82d5ee28259f321b9b5664d1d17a171522b6e4c134b28054845d2ad7b8b5b637a16653b0914d18d306bf39994ea54313451e95c3efe6f1e42bd256e6cc84c2c39dedda57645c4780b44792f55eb20eaa338e11b3f78c72cf6f0025a06978fef1097d3e761d97a94ff091c5f389e476afd46054d94bd71819bc2d12fc1f7ba06ce2274e9985d1f84511d15738558dc7ada7df6efdfb7f7e242eae94fd17bf963fb7f49d96dd91efb01800319807a460049ac541bdbee67bb28ea9bbe7aec30f00abf5e6be12655180aded2fc793e07b3539ee9ee7eb56c97d25f531d1b60703e0558d5de05ed6349693d664098afa11b984053531f1eacbafafa85e5cf6e3e4397afd442860418a409cb25e085cfc68a82f9332273588a3c168d98d31d101be8758ce230d4a4b65212707347792f26bc17d899c8a6c36f4c195852ed65c6fbc02313977c490ac6635824b5166af2a2d2d29ebeaba06234738c1abe238bc6ea8547f0c23f1e81ccb4284dc66f30b8e25160c917c3e69a4aa409dcff9a59328b9978414ab6bcb8811501f1c901e219661799fd594575457b004a7f3f644e177a9f2277a0ac30c6f744d6eb0dd8f4987d03e4a52ca5fb0087ab43c97a0f48f6bd25912d44ad511fb7186441c6417e8bea89a73f63fc951870d75318d85ff2b283b93e2e5dc2d4355edea26dd8af0e4060fbd07f896d0c0817205542bfc87b8fa67659f7d46e43615aa67d7331c27724ccb33d96534e550f17c380a26dd6429de0e72caac6ed15a8c31d40a8a1f599c5ae894ea7a8bc9852b3df8670476dd4d1098d38fc48ba8bf4036ebc0c0b7d7470d7903f0facb33debebf82521eb606526aa9a2542a1f0db6623443408d7a7c556f46266703629cc8f8e1ee0202c2b0fb74e97aa4784efb1d35e95c21c065c708e29f08d0c98687a33c720d108cc6b9f8d5c93539eb6bd57a15c1c7b5fa0338380400af1db411db73dced5bc706435bcdead0317272df15055ff92d245cc65d3e103b1b530e2c435a4eeb0b3e3c2996b122890344ee7391223e3b8eff0145dcfdd899640c0bccc914742b3fb191ca0933defbc205c8a5f753e8eabad9bc3613417b404e3a9d1503cbfbf3fb3d2ccf5c5000c0d52dc55605691ce62e5ff4e513934c390b2f8dcf1fcf6485ca6997d22a67a970e4db833e44289577850ee37a233110616f7300072aa847eca751ab30b6ebdc0a4e7b5405450d5d247402c96024bd0e517427a79387418aef3b4b593b3c428e3b340d08251105e26ac39c6c1f3d07d994ea34839c0832a33c0dfba564466443ccfa60079b6b0625d9fec8f2d8267d584ec5870f1de7b171dd09d18d6f6913a845ed684418f598d2902828352d01aa875d54271c4c725071a55e6dcbed569c863fcdcad6b34fc96ccb2d52fdf0f6e56a7d25bdb64b2277fc9850a572e59402d05f78d1734e751fc5ac0b5b6ad31a79b0783b50e36c87b233ff8a0f7f1d9a3f416f072f89a4553efbc8fea515edc249d6d289880df0612d07a7ef532de583e24e4c6463b9e7620b140db87aa04f8cef261f39ef60517d32585bb1529145757f5170ac5fb20eb10642c56993453da240fbb0b4f762f412458345b883e034ab2e2b3fe3f1260d92edecfe6e80f4810408abfdaef63dea0b581eb980fe8919252ae829908b7da3ffbe163f6e10cadf444f5795dbd70fc0d1698e2a570f0b213ffa0311e12c883598565602db6119137f4cf26b68aed6354fbebb6a71410f967034d690522ecf47dec0dc8a50b6e5c7d98b4e56594938b158055fda5389e82218b95f90fb95c31dc6891a500069435a118c98325e0e5bd6a72c31e3d1c8aa223492d6adceab315b491368e2f00ae84ee3b0339f4059d6268edf7031600cd89eaa4a623ca61a192ca173faccb21c0f4fb7d7f7eb81fced078aff8e1ef81d7570f0230504d711ebb5b0f1825cc6194c7e0498f98fbfcce8e7e76dce8987cf513c5ef4a8fb2d4e6c2e095219a9e3d5cee89d09f91be43ad44b1c4c90f8315bdb23b952bd52a0d33cbdf461894674752dee25290b94d03dede4bb0ec0f8ccedf5b5ff1d24ad6a35021fcc89a598797faa17116e3a625bd1e7efed86b4191b7f477e228440e1f6beb00d70e31a8160200ea8459416a88000e6448780937a511af9ef26201b5d265026515bc0b6a08a06d70af60521295546290bb5d6b172f2f809ad8071a4c1edea2962fb8766497f825b337453256785c0886c347eea28d430bed12d744b11318098240b2085435aa9bbdf040edb3b00fca3165e0f78896d5b4b2d47aa5d3ed64715b2501a44ce101ac14e03ae10f432d4b300d1fd04a75e5fbdb2216d5da7de0a41e790c1771638e0f034f8453e00f491e793d08d2369dd1d5de803fbccfd92b227458a60a007f949f34b5542db52f0ae330eb30055660c810c5932616f63c9f72f57db108095cd8d7d9864a68fc70bae6b8fef8c3ff6c761110140b28ea54eed5ca2794f845a038215da53ee31e928bc5d9598119c3a45e1c63b2a8cd2b98e7ccc6e1a0cd5a064ce58b997a172025234922edab0deb64b13d63edf546ae30353ac7b4776e191a2bfdab7b307815d8d7702bee1d312aad9b8a10056940497c98891f6ee37f85c686893ab3fbd63e6ca4253cd12cbf9e84904a85cac54507970311d6a0d3eb1116e2b2d3cd00077f1f71ba5ab39559f150ed947cef4c07134e0cb3b5f92c840e189e05243ff331471e8aecb2800cb9e7f7e02a8e5930be8b05647eaf6d21bb6a2e2dee825a1cc28b8d733304751d8230ccb52b2049a29d0ec78fd615bc02b7c0761a5aed6d6b7914d2b3a7ca85b5483ad83e9c8c27f3453cfcf7401535a39a42524d133c445187b4ddb1f443289b03fbc14fdc18f7cecd7720237d15bdcbeab7bd306d30713f1049e3451141f34e9669b73cc3bcb3dad408a0c2476a0096680311aff4f8614a96f2be719c9fba01e147a8c31c30425d236b086445d5df0a9933b8d86d331e7ff5447d0b90d478c3524f0212abe7e258d6ab60cf3f0ba1b7514187d5f2b3723dac2c20cb9a86cf61d1eab86f19a7dae080bccd059b215e41ce482c1db6d9251b7b03583a24b459033094da0be16005e4998464629e30391788a68c200502b1811597a48522778d9c32a0f9b214c44a614f6f20f7a53edb517274fbaa7849d8b107ab8d67f290588e8f3eee40bf86268f3ec4c764307479f34f98886cd871d8f5477037415895dcd110ec126b570ac68536a8e8ca9509be0d5d41ee6c604fcad0da320a52631310162ae0b1addf8a7600840dac64845eaf2179805b9788505f8096336c6a7e153fa3eba92d98c47d6d194982f85c9e6560e6593fb42abe298717021bd5e93d5d237659c2f2ca87ab7c1b3cce60c4104eb2e419240c2c7d85f7e3e5efe43ee00f6bd4564598bd0e21623d9da0636cb0cb851c5357f6c8804b8d2e92b80a4b60374125b002eae0ced5478d975ed86502fcaa6e9304d605ef56a6e0b5863432a86443e9eb37aa62a7968348f9cf5b92af06c7fd04620c41740ca6d5233a6e9f47d2cd9c6d111bc21d702d4e09723307b04514af9d8ba5d506b099bf05de5a92cf706a41ddc2bba7f7a90f60696c3fcff9a03233c908044505f6f9668ad07c13827e1e3be2e767efc2f5bf5a32b2cec0546881cce7055ab0a0fc7a9f0532ed189136b6dd3d0e907c3ab2d8958fe9ccff5abc6e0833d22de8357d1c7f255bd920c31e3c13e53812915a7ef47750761469980c27de04ba042a63dd448eb1d86a1cc3f9802e045e2afe7203dc346d5d636305c72fe59357eded6c511d3194e116a2292babf76a9d5fa5e28e5beb8ecf27286fc49a548de16edaadafb8abddd3fec25e2a1b123c68dbccc8bd3d328b1e24eee190721729ecc79a15c781a80d3b4b860cb06b74b053b7b1b24640e1cc6b7ac48b66a98e1497f7dac429146cbde66c220e995838dfb857e65d721adacbf4ae312184ff1794d75afba0e9985016d7bd5f39b624310cf73d4f94a84ded87c0fc5622e897d4f490eb6576c719511e4e97d73f1bcb8c1c4010e9c2504337a1145b09ae26162fab079525c753a7d584c29d246c138812348e63725403d2d19497b52487f187949d0058d7a874cb24abee1a596f082bab2286fe179bfe6db4903edcfaf451e4ed415f8d64fa6262436177ccaf8aa6e13484bb65917b912d4f8170a48f74ad451fb14cfc4d14fe8f6e1264aa025599359a224be6040680ad7b251fdf48a8188fc8a3058e62d2ad2952d74ecb19e31bc141ab8f09c7237d3232b6d9ce9bc6a97a2ef31a1a1d709225af0e005e5fef75cc3caefd7ebc4b8ac4ca1918700708f9d12b57e0091a01da0a8fb89a22e4fb8143d101ac79e00e4666c0c53e6ba12d9bb413e2fb01c11e023f657fd8f1646569c44e08436949c5b0593e1cd0fb3f3046e3fdc804b2f5becc2b77abf1e1345a24c1712ec126c99f2149da8186ca7c7b14459dba329e67795aab7b615cc4fa5679434a94fea8203c5c48e99af4e2f1dfec1ea832d167a57857886727c5fdb853e7a5e6d60b653e426a1d53e10b23f8eef3228e436ad0e720d2519284a82c94fd8798dda2c5d580dc71e50065783557e7048fbcfad7a4f5ba7a180d574854d8bac4fea3b089b3e4b9160e27b4561e2a9d7f56ec1aa9d9e1025436ca5eb0b58b7337d1e61f08d1683d5ecda1a1176fa51436cf32d94b7284d2c483c40e263d8b46e705a05e3f0ff183ba74e683566f8124fe5baa7e561749294102b98021daf4c66aa6466cb0dc307e836ddb8da84d1f3f3641ccc143392ba7703fb37430520029864e3b225b153d1844ec87c6a52030ebddcc05f5018edb111617102aecf2156f290d744ea028b45f0052b8c4b317453e7f156d02d2c266c8d5ab09382e3ffdd2860bfbac23d40def7303b425e56cc3c55d1c52e4e0f6ead94347228af0d73c03fe848b75065eae7040f7a47c7c8bb295d653acc64c23e97cdf36f043356469744ff411daa5c88744103a19d493df5afc3b13840b8374c2731c37b313d65d594b8cab0482abc01ea42c1eec9c1e4032b6075b7005234f7ad050d01294dcddc96c9e74f20d5d053dcabfcbea36ec405c678d84ce7a7e8c2ba8ef021163b62a7cbfe7fd0363575627ec44386dd821582a0956ea5ba58c3699624194086045ad6712d6a272c7d53fdba586e859a429b33d1bb642ea2b110435d2ebef1b13694b740f5a6c5c294765537bddeb1d9f8c030d7ae0b0f537162caa535f51253b4869b152dd5e6404d14e65036f0c6d044e3145f110501068ab26070077250ff0a79348c2bfc2b61b81c0cd19096e93ec2b496bc30c1dc97e33b237a147d4999999b2e28808ab3c9cc7266a6f8b29af2622222222293a4c5c5d8faba7ba6a4442cdccacdd2d0337127d137a0f35414cf06a8294f16a82b8e0bdd742109ad00b7c10e0d5f0b18057c38716af860f10bc1a3ece78357cbce0d5f021c7abe1e38e57c307115e0d1f5778355270e1d548a187572305f86aa440844c0ccc8b55bdf7de7b2fd400c30c7b0ce0d5ec11f46af6a0e2d5ec818157b3c717af668f14bc9a3de278357bf040a6063d12f06af478c0abd18302af460f0ebc1a3dce78efc58043e8868a17bac1e2856e36f042372778a19b3a5ee8c608efbd1821425c00d2420c0c41725ecd1a4d5ecd1a545ecd1a4bbc9a35b457b30614af660d04bc9a3520f06ad6e0c0ab59a304af668d345ecd1a6dbc9a3566f06ad6e8c1ab594309af660d27bc1a3680bc1a367478356cd8bc1a368c584198b2021e6e1e062a27325c69f2aa0084a4b071a30816e9346d5381a582344ed001313c507d21f29c66e217972e05745d284d335df90144e437cdf9ebea74931f404e278deb7f99b496260250bd285576218623d8008a1edc26eab8782fb4aed3324c49f7285469eb389c13a7b72079ef8df1deeb5ee8883e8e70c011464247e07184099e88f3dbe5511ae7aeac34caa2fd962cda5f79af92e140f5ba38428617236e208df802014664efbd911145424600c0089a1bdff98d679acece1d5074c9ca0e17afe7bdf7c64e0d4fa4f02408dc26326246f7848a27677f82c4e3e1726278228388cb3c4a2be98d8909d248c17bef47971772e2c36da2ceff0092693dcbb4a02bcb6912c66b624513d2bb706e521b0787abf2563085aa0858159956e2464ce86042c67b174ecf4a59b8d4e651a91e2ee76dc184c97bcf0a42e78ef79e91d18973c1c1c9b4d349e3234ea788f71e958b66c90cb0be69dc53d17ee6b3f9cd3f31cab46c13857238ed6f7ef358de7b2f3c265e2887c97bcf878b274a5cce172c78a12ff478a10ef8f0deabe1f5108057430e7901f3425ee4f0425ee817f222032fe4451a2fe485105ee88b202ff485102ff445ce0b7d417aa12fba78213086bc1018392f040617302cf0421d78e3853ab084170283e6ce10c47b0f87f77888083868801022e2e6bd272f21ba494369fede0b29b982db44534b92245c38ef555648e0bdca011178af824075c5032a2bae78afb2e2bdaa01ef3ded859288de7bdc26925a7070502f84e48913a1235378eff9d0afcde7c81defbd27f34247c63802822356dc5c3847fa7bef0894d011fc2e1c8db4e5ba3932c37befea52da48083876749ab4e5ba19659a5f2084c34574e1f8906925bf048774e1e024c1910f0aeb338da7d3342a7d8ba6c271daa4e3a72c0046b19cf850be79170e152954a860970f3ef860c30b6122e021603942f8056ff32323174ef79b116e74330a612eae244992bc57194008026028efbdf7aaecd211ba2db861bcaed4fde8c4b9702e978aeb44e8fed0cd79ef11190db92e9c9b0b877465a5ab7b2a4754f15dd3b173846c077aac9429b8f6f46c9ed35aa76d7d6dd1b22c9cf6542e11f728eed2a6ee8726b872dc0f7ec3b5a72703ba444138b9361391e69cee74ff1a89d34f3a6e2ba536d4d571be9bb421a72b0a144ec4e17001b848a82bd34aa41fbf693feb880cb93c67d24d2ed18f9ca99f9f1f7fd2d98fa8e33493df5aa6715e4265bff443e466c88f2771fe6bfe73a54c93b83fe9adbb4a9bd7e24d25132fd291804a265e42e520f1da6f43ae4b47b97e94f820f93969bf7dad4897d22e0de8eab48c8bb6e41215c94a977ea2c45d56b4293f2b5d5dcf529768f33797e8c925faf9e9b94444b82038943e0db92e11a7a30069ddd5a550264d242b0db92e11931d7fd23cdca37a76341fae7bcfc3351f1d2699c6a36d1e4ba6f1741f434548081e1840e23449e3912334440ac4f040688809848650c0105d42436c19620ff133c4e83d9476110162c88563e42202c475dd0071e1a0b4eb06886bc875e1dc7017134a848680a1216878170e91211a87db449bef50baebd185f38c8488dcf1de7b0f206285d35bb8fe4532cdca08c571a32ea5f9ae796e643295b28cb26cfad4d180db4c26cd2b274cbacbf416afa50484e2bcff5c95f7aaaa972a2d3bbd5799fc4967ef55efbd2acb00d8a84aef55a4f72aa0aefaefbd181e0b7cd5dfabb87eafda5a974c39bc84d27c8fef5a14cefb269deff1a6ad7da7f154c9c23528dda69934b7792da5accaa6bd4967d3b60ddb524b66a544a7ffe57da608fd6045045610046e3ba25dfb94daf8c5a55023adcb4aa3aee53d274e7070baa944e238ef554dbc5731f1dea379d5125a423ed0c76da2900fcf97b68e9fb4df3aee92e3bd0b2774a15ec7692895161505b0c8b452018e78a11ef0cbd19c701a4fc5e5d280aaec5d5122c48315ef8578100093f79e9217da6105594903e98bcbb2e91389677e5f596abb8ef85c4a2e2efac44547f11d97d2242e5848073c423a5409e55085f7de7b43784c00f0423018e03d9e27520b0e4ea544b5840eefbda017c2c18a97798ef3a3912f6d9df542e8863e1ee781bafff9b9b6cc2074c312ef71265d52822468db61431242369011646a231432226403c977a9ae74250bd73acd440a3208d5f082f79ebeae2a8e500d5810a1062496a84107d12e6ddd9569250b4b88863c7c68c8c08f100d37cf6b29856668c21375eecd10826c8b961d119a81149a61894a89196a5059152c881792c18df77a494f31792d1e0a4af341694fc209c9408077e134e1b84d6444db341fc304dec309c5b0dfd5692e3e0bc5904331d8f02e9cabd3446e827c9621ef65042118ba782f04031021186642213742a1351eb7898cf08d2b72e25c363f3a712edcb643355278efb9f042354608d5e0e0bd77c30bd5b071e1f0d1cd85c36d37174ea9fb4dc767d13e55165fa0518223a7d2c5e92da4aed4b5932e6dddd72e94d65d9de6e22b07f82053b6e9cb6bd1f68eef1acf1226beb4f95c3d3be1e0ec536ad3a9a208b93005add39bef4a32581982068f2666fc3842119800812b45bcf75ee80c213ff0017162842a1eb78938573a19e1b8bc500b58704648dc7757a73713ea3ad2fdf7fdd247b0e3bd4a008f05d5944a88055c49925c5b8abf18416448166dc4954444b88b004446d70d37240004b86eb821413ecb28688f46222e2b19e932dfd337cdb912939c269956eada9370707e94f8f9b9bec6af9c4be433ed864957d29ba6fd2d5b3a1f5465e3b688782eaeb46d9a5f5cf75a3477f54c6bcdb4b58bd35bf476913894ceb86b6bae64d21d7773b35d9b2b69d4d5759e2b91ae2e88ac44e2a5cd9f3c09e545a5d375f21d133f3f4a7025ae6f5ab673894c1c4abbb29c4b746da5adeb3c133f5c89dbfc941f257e89c4b5bfbee677919413a5ebc2b934bec5675c4c292630265274b28c4c26bf45092694d872dd98baf6245d4403e2bc961250a669dcc5e55ca26ef2a5af77aa48095ad2fd14a0d2124df3d19d6692d3693cbdd378349e9e55d9c1cf4f25e5bd8aa782f25e75c47b9511ef553bef554fdeab9c54d87b1593f72a9df7aa255511ef5544bc572979af4af25e85e4bdeac87b15ce7b557eafc2ef55f7bdca56f4bd6abe57c9f7aaf85e05dfab8cbc5789deab8abc57ddbc570df1de83a984786feb03c9137d9dde47cd23717ad4b557220b59bc2cd4e003113fa351e781fcd73d419bd7a271aec4440a2cc0c2e9bde743d056da7d87d350320f85339972b8207f04eab43de938edc9a635d97c964d9f36dfe92ba8d3f6c4673b725699d27b4e4ec7c5f37426266f4295361fcda70365a52ed35abcc953e19e4cf15dd3d9e239ee4414274e4c3a4e43d19d66e2bba6d3f99e5e62a2f17053aa749c86e23bddf558e1986c7e0acf525a96e5f85eda3c909ed2bd49678be711c9790165a5de378f12c919e4b37441fbfa2142e466c890af0d71d19f8b2b993c69d3feb5699fd33bf328ad7b1e8d67f37d93f2a5742929d94e4fa7f10065da76658b0645d37cb8e828ef55329510cfd4d33b8df2543adfd3711a948e4b31e97e8bd6332c0a5744a10528a060c764d23a5c749453a9e3fcd5af4ee3c9b4eb6ba79447695ac77389b21bddc371fa120599328dfbf9e1523f9bfeb9b8ff35dff5565a72897e7e525a1205b82e254a74a7995c377dbb6e7a909c4aa41e948e92e4f29bd6f578541014d77569d9cfcf0f7601e0d23a0e75d25c7ca6b5943aae7dd71dd7a5b4eb6b22ae2b65291f2a50b21dafa564ca41797f440f5056d29e09b7898c90384dca5238384b2063095cbc77e1fc5c9dd6744e4b102da146097528010edde93e1a759e1b8d7ae6b991d653dca8fb274a5c67de024938c27b03c84adc496f1a75e78c252e88d3dda6458152ce2d9a4adfe1e27ba64f5a8fcf341e9f24d0c0994c7dbcf75e1172700428d58b55550f0b4190600412f4d1a54e6abc5705752a69930e17544ee77b9ef81e2e65426da99ea0d412a0acd44dda13bfc305a39279ce7926da9b7480b212a79974baef509ef31cd4697b927994149d2d9e0775da9ef8eeaf482d3838d38ab472e25c4e1c0922284104fc7eaecd934184191d1c9c2f86d0719bc8c8c86f1a1f6d4f507af3e1bae734141fdd69262612a79f701e484f117157a6dde82d95736d5a93cbb44b5ce6b94b97b26c1a97e232ef398dc4af2da5257189b84da350fa4a756d435d4208a1b7f8259788431151627289c600021c4f03c21640c0de13fdf41d8f0af209f247fcf82c9afbc9b49f4d7b13bfb8ce036db9348ebb3a94cfc2bd16d3d6416c5ac7795277dd7057aeee535d89e4f70594957ca9e3a5939669dc9b7cb84bc4f9af69db94207f4467c205f923341e9e1a3da0bcf73a6d1bf20050837e353d30e3bdc76d26cdb5f752200023020ee88190474551148b98b4171ae0017d3b78c2d3beef20c9dbb2d2b545337d5e02d2a014c943029e1bc2bb428d0ee87b2f0befbd0a0b0fa274c79d4a9d91ce734c78efeda1042bb3f48b0a449cefbcc9f71d19308228227345049469db96cb9fb49e4bc4ed147769d995e96d890c1625548a73edfadd7329192578788121a6c76000460b283c81c89011571205f92c23a0ace4c34b1f0fa6ca83c16e12de7b48a099811294e9aebdf78ef0de334211de7b44f841086e40df7bbe6b99dee2793660832964259315346cc085688957e5bcf786f0de13c27b0fe60725a86a70849a1aa05e50a635d7bdcf3493e74a974807edcb6fcd9b78d6142f4bd7e9deb5ecf2a91f9fea3edb22c5778de7c76f3a08ef3d20fc400545e0c1e499f0a879ef074bdca1c58973d1a78cdb7c89e3383ea2411eef65a59e2d403ea29f4e337133e822d232a01dbda5f40c8c98c190f780b252a77996dabaeba6cac0083f9d66ead1f9e14a5a4a7df3bda2b123ca7b5c89f39977c280299a90c1e3b4cd3f61eada9b2eadbb7e89c45da983dae181f71e9c4dc8d336456f76c000d5a105b789bad469778d4b9114cd22dc778d1709ea4a9b46bdbc57bd07430714de1bdd408de7fd1f69dd880e2ede7b9ca9a43bdf47de7f3aac784ffb191ddd7b8f0e24e8c0ef3d2ec86719f94ed371bdcd67d9b42da3ff353a6092f0b8d11c763cae660e33e6e0e2cd81c51c5ce6f819cd31e5cd81e4ad214710e490e3bdd7479d66e26ae428438e0c5c5ad7f512003c17de7b971c327023a0acb419f129277c1f71af25a68e1890b1f9ae6464e7bd8742fdcc34010332b84dc48d368fe2a5ce9f70800757e24a9de63aad6d5c9fae233f5cf4c9e6427211e1a24f36469c18622a797e19b99cf851c00be678efddc0067854a99a38bc78dc260adabacc1b41e9531c3ad4e0bd47830792ab974e5511e0203d5257dab4110ea56d1aafb2bc3185c76d2223538b11be713d3c52767c7478aa1831422227ca4864459bb2792d97d67593e6b9d216eef25baecc3f5132755d69db74e92271cdb56cbee79aa2b78e0bd693334ae1e0f0d2e6330f344261dd6755b847715cba0e07878be2052068c386f3dcf602d37bef3dee513d59b8e7e293857b92ceb66159a46028bd6d71011e170e4a6f5b2eadd3e1f414cefb2659152abaeb1180a9a49b44f1e9d1d97c329f45fb786ef33da87b9ea0aeab7499efc961811058d05f960a1af9ae679e6383882a7e4b994aba49cf7c4ff7deb4755665a7d378823ad409f35474b8ae97f4683c3d5b34285c16ae41e9e93a1fc537e9594a6bd2693c59b806c57355b29d13e732ea99e7d6a0618d9a0ba7e37c9f61e43b2d53a34811d9ffbf191ac15e6a4f7ded577e3c212d924602d220a511441ad7ab78788f0a687c81d2a730d6a860aa207888de7b4f38f1de167998c1c5195378a2cc775cfca5f194008e2a4a8565435d57d0beaa2cac9757d9e0bdc7c4ab3943e6719b88fbae653ddc6b19e1e0f84de32314b7843d92bcf776f05e1eefbd245e4d193bd8dd97b68e4a112cb27b115fdabaf728f0d028438915bcf75470450ad8502305dd6fd1b64ddbefbd34d038c38cf7ca48c1d37eb6d37b0ecf16bfc5f3a0e0840226efaada40011926dd95b8d7925d287d1a89b270bd7f7e2e2e6b72893aeeb74de398f8e1a2a3fc28e1b7ef224e43b94437415d294b9d4e1a1f72c36df14d34cda7d378b85910579920d503110a9883c9a3611292038ecaa202c5821c362e88017e9d0b1bd040063260c57b0a50c002a840000236255d0bef95a210a1b3d275445e405c99375df04ae2c39579530dc131052d39554e158242123e4820821f34b0c402584c795688d0e10dce9bf62e655dfb8dda941b75482d239c118a73030a374e6e2c41e4c2b96eaed1f7db109f2d9a0e8753dc5be14aa81cae84d2409909752ab5c144958217e4f19c287941cf538284f35dcb5c20c71b713e9def79ef4579ef15e1821fa1162480054b7817a840d501a0ac5405154ef84d0b1b4caa2fb2a07c9795b8ce5fddc7a3a4683c95176d3ac867b9366dbbf9f1e3c70f20995e12d46da554ce0a42a001152421a40614ba08a9c1bd0704146abcf76c2a04d29061d4850050a0417a4f779c358037ceb843a6f41e1732838cf71e243d1b3368dee352861aef6965d494717a5c7ac66d229a2d3e8ba952806c899b9b244a925c44b8f4d290ee7b2838543629ddf750aeebbab225a0b8b8f4d2c803753f7a820b5a1033c61449900c7165de348a32833198f07cd7b231d4088df19e49fb1ebf4de97af37ac36aadb5d64a29a594524ae99c73ce39e79c524a29a59452c618638c31c60825945042092594504209259439e79c73ce39638c31c618637cefbdf7de7bafb5d65a6badb5b5d65a6badb5524a29a594523ae79c73ce39a794524a29a59431c618638c104208218410c69c73ce39e79c31c618638c31bef7de7befbdd75a6badb5d6da5a6badb5d65a29a594524a299d73ce39e79c534a29a59452ca18638c31c60863c6d7563a6534e96ed3a29c769278ef0de085c4c0416fde8811be711a8f2f31e9a69476658b66f24b74fc13dad6e43debcae6495da76559d74bdeb33e158d87f3ef3dabbf67f14c2b55f1548234946de9f7ac24ac1fcd758e6140a54d87db341eae43a53c15ed4b7d6b2ec5f52cd5a4fb6c8b46711d57f29b0fd2a6cba4b3d49569225b673b7e4b75a9bfa5ba7d5da46e2bed4b934499be4c294e5f5b9b44dd77fa085089e3c015deb39a78cf62e23d6b8917e2c01d4abc67d22927ac2490f099c6f39e75c59fb49ef72c2bef5955deb37c7a98c0b0ecf48c98604ca4e8f060232a52a850c14618942a4ca44419219113050727f359341f53aa6b51f0c9773b409aa9eff8ac0494613a5d542132e4bd57c998b62a0c2e3ab78982f688e3348a084b4997e9ac742a6d9c2bf5eb94cafc89d35b2eed095056ea366de75c227f6d1b4882b5830eef71ef59395838dcf01e93ee4dbad34d34d7b9dfba6782564b3560452f6956b40e15b471aed34c5ca7997aa84dc13142a1340ece08c5e558abdcb82ddecba9a26d1e4bd0922c674b71ae6539252d252658c62a345b602004efe1e08c505c066e9082011a6e1375a58d651c719b47993c09cb98ba8005a4e8bc67c1107acfb46d18d74ca61c0b10216481295ad4f17a4a51a8086941ca228c77f92caea0514682ba1acb056ef31d97a2720179ee22751a75994c393838ef592fb8f01e0036181db200800f315ac45811aa00170a4861025d24a0045be59317eb92402781ee3d2e30011180c2ebb292861a454006ef4d915a7070949038fd04091017a44dbe6fd1ba49d3f868238d4ea90c0b3b1e16501e90c7035af0e44c3de088f77ab6665ad231df699e693a38383a1c083900bf670171851defbd2bceb8428bf7de9504c975e1fcfc5c1da7515ababe3803a6b8a2c68a095851a5013bb068ac991347c287cbe9fee4bb9d93ef76b8ae74850124782106fce430a026b400369e48932e9d135a4015ef3d11b70023ba9ca905b45085194f6432f92d9cbe6e762e5110e79754c123ad6439d18aa7a2002fde0b29c086047c20014b7820a01477dd709ac4d30493298773a528de3741401519fcdea3f2425454f1def35baad3fe5f3f5c961a69c99279dd65fe54da8a04f92c378aa8081601d24c168c65bd10153f5685650a286cd1db14c9288245b22ddab6499c2685a6b0e37aa1295ea0fd6c27c88442e5784e93a6f87038386448415fe93af233dab4d10f892b65a57f2de13611d7954e5878ef555778405969eb7a7070b8ef1a9733a584e3b469b47914177d42c2459f3ca7b712395348b8e89349fb7441c1e3369149e31c00044f241205d17953a7fd06c499bc962b3826afc59b46389c261921719a640028bcd76d1a89bb34adc3f1dce6b5f8adfbad49e6b3685d35052e484ff1fe8fb8208de2386de206b0b49fed44316929417a0ae793d078420438428800450811e08ef7f35e058527bcf75a783e2f44801f6e13f5235030e13d6e1365a3cd77a5d1c9a33823dc6b09417147080a1e8484f746244e3f51a20489497799f64469d3484a463838beb47523143702e24ebad39d47ced4962e2653aa89c603545a42eaa4e84e33619245ca153953da343269da1e71262544ae1b9fed70a921ef759b574224e7bae93b48b8b74244ce1477e23472e2d4392e5c0b40f8810ff4a87ac083d0167282004ebcb7836a07efe570a5289da675eda9046d5d869974d79e4aa7997afc13a56c0775da9ee860a8d3f6e4bd2a8f4a0739786fe47b94d08118f2c083080e18410871848103244acc2073001a140009a1a00e085c693c61654f48810e0800821940bc80002816f0018b162405b620838c224eb0a10236d08187184c0c30031f0624e1818c0d4259159990d0a9a6c2a39a4175c77b150d6610caa24708de7b220beabd2c36bcf77ce0aa3adeabe898233400d37b4baa24da76f9adf150a14446144a5c322874ed6f422426749ec34224dd692621a030424037a19f8451f7dce63d909e929580423fbe57c50006af8a23032a99b47fa2c475292d484321e23d2674f97933a79907f36092546f868baac784aa99f742154343e542452361ee7b99000c0f33160d4d0ccc4b55bd1a2cd1b35e25001822aa377324e6bd2053bdaaaa6262a815c47a5555bd584faa6aa6b2aaea45e609abb2aa198b062a552553cd3cab6a41f462c9c80c017255309605834505535516902a0a56f5e3c55430d68bafaa01585565d154b172b02a4b06c6aa906055958c5509a0aaa1aa5e2c1a17c4bcccb850d150555565656b069a976a8bcaaa64acaab25e46950503e407b584544a68aa189b9724d58c65c1c4172096551179c15650c0c4204d5ea6580fe6591da8605e86c0c458d5cb8ba140f583ea59afa6a6e655af82a9ac6a09158d254455593196f55255b33252d154422ccbb26474aa202c0bc6aae08b28c80d3401a85a8001072b8b2ac6baa182a95eaa674db12e2015ccb34a32effaa9ae78793eb8a07a45b861bd543215cc4cd542f5a28565d1e0bc54f8a5b22c98cb12f26348155355331026f6002b0b880c8d555555355355389565e9e045a6fa61c1bc68a97eb05255f552a4fa11c4aa68662aab088b078b076b8797f7f2aa172a19cbaa5a80a97981b16eb02cab92a9607ef5c3a60a12635531950b37076b6726c80fabda344266ac4a00154d55bd58154cf5a4dac1ca960e56106bc68aa95e2aabb22a9c6a072b88350353bdc4bc54d5ad5eaa21d58f4a485555472a1e2c202f33150d4c6555154e55c9d060c950c158550c4c95ad20d58bc543f5f2625930164c952dabc2c10252fda86860acaaaa70aa1d2c20332f150c0d4c5555f7aa6c108206c9cb1031d54bf5a382b1a1faf10327881239f0500100a6b22c196bc6573533c0204faacaaaacaaaa8abc99877a580e5031218925bc2b892e8a6047123e04210957f40f4650c5077a3c1f1f72f07aba9081efd1753c2a5da8b105151f342902e862004c98a2691150bae0e1094fb40e3077618391ac5d00c1f5410b36d7072095f5418505fbd38706ec958527fab1020f457ec2b06ef40043bbb9a010437071b3470f3f97901eae1a60785cc4c0c4fb8981c0bb60a678151cef5dd943b84d244305102062d065e6c7cc0f181768eccc8f971d84f844c1f303cd101920341846c80b158c109911cc9697165e42303798e2025d645cb0667ec0dcb4b0031e411720568474981b17a2b0680e3155602a19242de892040a93d014160c10182844a4d065085208614714550c4ea88722a2b06070782982aa7c501233041e5d64647a9842c50c2f2c41c08b932814d0e5861f5784c8204486279acc80a2e180f0d10549f7c3c94f046a667ebcb4109305660156444103e382cc0ed50b330a2270e0871035a082660a59b860058929223493618ef04a94408a1862860069022400324bc0083193a538a30b27527ce00134d4402a5ae05018f0822e41521f0353b4205fa8ace8f07264e6061b0590992c0384c68597bbe3e46507204df8e8026466a7851e9a2739604d80fc7822a4a72339a34b0d303716880c4e0c2dc8000982fdd004185d80d03ce16137a04bcc4b4d4c25230019203147648450b22448ea4710344f6480ccdcd002931f36303c3f6a90418700e040831034431c4125005100a111cdcc16e6dd99322304660687189c17fb43084c105711333f6680c018893902061751c5e4f0e2430c0df0070d7fc9d8111b6880d0f0e346a1c31384d20c81b181b191f94017215c80611233440c0f3f6c60747821beec2045179191eae5bf1481798981e2872624b0022d23c108ec60a30424f8c0170c384001b87059bee73f4d2c8105092b557aa64031e2090e9e43020004002e1837dae8638f241081082540fc80c30d335ccc218707c010004604ce0e33080922f30235d01041181ef8c28b2eb8d8a2ca90208c883070019f9e3eae00858d658f25ac31d242117840e92b390264260c0860717fe0e006628481936d0d3204014233a3430e65a46009dfa5f018b1d304d3800316a00018f4a82a20c1083e70802b56aeb541061819d8f1042b4a92d81f33322648001a27e0400524d0002836a0010d3c400a8f92234108a9acf052056b0a304cb8966015018608960f62f4a87260d9c0aac10f3c84dc61c9c0aac352c332c10b09ac2c3003a86caa1e687688d1a1851bac1aac192a194231c4c06085aa1a1817ac203140ac1f3434d6cc4c8c0553bd5495cc6be185971c5e56d005e68a2e30506484b8aa992844510346979818213301c84114305d44981a847c01021906748181f28306203ad83045971f49c06079e12148272384a6090d9601f272c406203131e842634617199688e2c77dd9c209427ad025a68f2e314270a8411721dd0f2be8f2c30617ac99233146622650c50c416ec8420a182bbabce0c30b3ebc140919a1b121d487143143d0e019242f2fbc20a1f9a2cb4b94684406884c08babc0491c101e626487ca96084c0dc00691233c44c123238c800911980101984c8f0c3861f34cc24f182052964707829811431707401620030a76b04c40e3038425e9009c1542f455e7460a608a941c69ab93293c30c4fcc0c2e5432415e626084bcbcbc582f332f342f3f80e800f3325365068617a60009cdc8cc542f333014c6084c4573c34b0e51fce82106045d5c0841142119981c68984801d303297e185daf8f2c1001073790811d71c09102ea810016d81222925c2ddb63094682a879816646092c5278faa0e38e19f4f000a84516455ca00736a8e38d35ca2081078c8802508154f7006e8b42139890071e77b481820318a08925b0202185c749931e78a8810635d2380009466080028c76d041cb7a70a1073c70e2d4a58f2c48818f2594a88186900dde7083056b949102133cc0010b183591c415293c3b75d0e1c61c2ad0e2890e7250c71b6dacb10230be680002a66802136c80c71a2b50e3045474f17d070bb5c0042104a10771b491061a648801812b7c1f35b184125776b0233844422dd441471c5b60000254f8de84113b4db023382eb400f38410843ae880811b69a0418609c4888003a860c2889d2447702e8d446008c1bc3e8410041ec0200e37da48030d138811010838e00a2a7e30626209228c88ae60052847bce0c20e74c0c28a0620710572e08a06047111c18f3e5eb2606121c60a5615684000f3014b0ccb0395b4e20bac44418abc0cf172d1d083a54395c30c0e2f375436c0d450d1f02306186078a9817941880b352de020e486203a0009fd98a19199b1646462625eaa870390257a9795369411df355eca52334be025802c612991c7cf35e4ca4a17570adaf4a649fcd24a7c40093094d0e2bd2b09926b481224971224259878efe7fadad5056d26442291123b4f64707831477e880902cb0d36df751a6564eb42582880a5cb4504cbc602e55d9deef4c585b0dc5c5c7cf749542189225c9bf637521266709b6823f193ff21c50f28def3a9ad7baf4a830d23494c79d51bef556ebc57b5c146258497e3a5e4dab6141722679c6fb6b9669a679639669833c6f8628b2ba67862892386385f7cefb5b75e7ae795375e78b3c5f65a6baba5765a69a38536575c6fb5b5565a679535565833c5f4524b2ba57452492385344f3cefb4b34e3ae794334e38b3c4f24a2baba4724a29a38432471c6fb4b1461a679431461833c4f0420b2ba47042092384900bf448c890ca8c74a7cf8412406e8600195280ab001714d77503e4060814d7755dd77bd50bdeab5cf05ed50236aed871e184e02701579eb842ba22e5e7e7c20172f3f373e174df9bae0bc80f91abfbde34e4274992243e542c60e3ca0d576cb86e8208220b13dec3b132871511bc8b2bf954942555bc2712655680ac2079442e2448ae38e4b202df7b3fd8bc97d9f0de26e4bdceca7b0f2e4173c77b5c967855c8a8c2c67b6f892a64bcf7c3fe40a80a12556eb264a58dc45d5ab7857ce278af22e3bd6a8cf7aa13bc44e1850895094a5091e0bd6a04ef552278af0ac17b1508deab3e9081f75e9517ea21a3a7043e3fb811b789a62816b99220b9deabc478af0ae3bdca034264783e2ff47e5ee839f142af002ff42ef0428f8c177a68bcd0a3838618840079afe6046dbc9a13e8e0d59cc009af668c985733c60daf660c205ecd18f5d58c41c4ab19a3c9ab19c30a0c428260f16a826ce005374269e3e30428d354bef650eac45d55034cd72d7ff4f37aee3d176d8948d43d176d5b8c0736f1ad1a5acae3ec5b8a442291d442eb1db4421af5d7f2ffe9a984dd738dea09f247886ea43ba8683029adb063096d8f5ec34bbad193b8d6f1a5cdc7a4b90645244a8944dc6b09f2479038fd44c7c656a96df1f159b469c912265144a2dd47363e506cb025beb4f98844a25ae7cb06aa1960bbdf8fb3a451d77ba5fc32c0fad5145bfc23cedf665827506a7b264da8d8d881c138eb95545e9eb9c63d4a2980aa0e0ce67eeba7d86ece2dae9e0e6cd27d3997f96b9ee3b57c0e0c428aa3a5f77e0f6dd7726095c30eb5c73efbad2fd631c026e5f45edc63cf387e7a61806139f9b6515eac779431c63830a9bda657dabd31a4397238301a6fbf90d6a8f7ee79ee37301e63955777ecf9e49d639148c651bcd38dca0d4c728e25fed35ffd239d93c634aa363039ad8415df1ca5ce5656aeabf2572fc0badd144e2c37f6995fcd99a85c80612def96f5d35e2de6d2926e8409a85a80d1fc79afb36efde18d5cc6383aa3620136e5ef16fb7d73d7f1fb6a46c50676f1fdb7c22a29be5d53bc0696abacd8ce2871873befbb02ec761eadf637dea8b78c28a85480c5ece3cd5afad877cfb2db5897a8d4c03ebd9d6e1833e658cfbe4937a681c50e6de5d9c77f65f6fe926e8cd122a04203d39e564839c5996f39e926dd08e52612c54947750696259c79d76831ac7c8b4453c2519981d57a319eb8e73e3d509581f5c8e3fdf3e6df6fd49bd75232f97e6d7c9c4c2d15c61460d7ea8f6bfe71637d65d4a41b475a37f2379e32953c58463c150a304fb3e610465afbfe127bd28d344ad0d66598482412894422518c58a8c8c0668df1f3e961e533eafcab31b09bfdd7fd4b5fada47fea29149f00f377da5b21ee764e6ebd370106a9ad3e7e9df1e55ac609a9d8e8d84001d84c8162734da85369e44da85437b225c072a6f64ace6f9f1cda0e3109b0ba63ac36578b2be572ffbc816a0458bc16428c7dc4564b6cb78511049508b01f35edf866be37f4d657d28d9d8e8d4824122161a36313a5c746e7d471a901f41cef9b740f9b5085009b5c6e386dd43252aead25dd88a38d8f131060dfc3b9b1ce725a1867a49706d50730efffc597dfbea7a43677d28dded44ba34cbb3bf0ca518981d9fd39fd90ebd937d43b926e18989efc5ebea9975e66593de9725c74141b1d9b4c8a8d8e4dcf4a47d8e8d8d8e8d804f9236c746c364fe2f4131b1d1b1b1f283618a3f469d47d8cf54e0e541ec062fc34fb1ab3cf594b0b45508121e9dc137f3e63df3062d28d262d1245cba5ea0026fdec937bc8a9a43d7349bab1dae8d8e8d8e8884422112f8944f803d51718cd534e4f73d476cb4e3de9c6a0ad8bf146cc83655444e505a6f78f9bea2da3965ada93ef7644221b1f273639363e506c442293499f7a44a239c1a8388059f96fe499c6dc65be18936e1c8da4346d9d551189a81c41d505463fb6d9ee79fb8cf85749ba116b5171816dbe7bee146e68bd8579926ee434d4d440b501ac678d3e76a879dfd15ed28d5bf436f2fe8fec179506b058afdf3b766ca99d9277d28d7e43496c8b6a0b8ce6cb2fa6dcd27f79bc957463a6612922119745d34822d18d5e5419c0a2b75663cefbde10fa2949374e99a345a2c200c452de6c63d674cf5c798ca31883ea0257560de3f714fa6da7a5169079569d6bccd35a79a7d7225a1aabfcd36eb8b9cc346717545968eabf8f3cd7f87594174718ad7ca3aac0d6146f9a7da41f629c6397792d33e398828a02f5decdbdef95eb3e2fdd22914874e25cf228d278e25c6609aa09402feba6d6ff696bfe516fdab66110c651b455b6514940d25bb59c10724a7bf759c7460747a08a00b5feea3bb385735b0f01bb2b847a42182ffcd04b2c62941ffb3c399f5c73efa750b15962a363936333050a7540f5002cebacb8da8b67c4964e48b3e8a4c5641261ff5f5839cd77cefc6d8d1e15d4f5ba695ffb9948643913ea54aa232b2a07547aa7c553fe5a35e9c651e781aef6b39dce3b118944221f27229128c37881ea0acc6addb1d69ff7cf2fa4db0a4c6eb9ad9eff478ef5e59674a3f75b378ad1a3827c248d78540dc0aaed5c424f31e4daeeeb1980e94eb9e7dc6a6ee3f4372f0093506bbb2b9415cf4e39ae02c395fe7ae1b514c6ceb9cc624aed6ce3e3c4a4b34d0aea54bad1567c540ac06eff596a4c65d79eebdb138079c82fe6bc46bfa5ed1723009bd4765ce5c5bb63893315d8fdd17aaebd87b75a0e2de946a0acc46d29eeb751f4401db3f17162f3b587a26363c546c7e6081b1d9b2e154524da7c964d9fbea7e2bbc6231279bf755b24d24ca627304adfb58cd618ad0c5453607176c9e7e6b4ca5b69df36bda66c786cf64cd9f8d8ec9ab2b19707cb48aba4c0b4ed91cadb69ddd147b84d9ab631962a0a8c7badf79d57d7ecbbc69edaaa0ba6bbd4727f6c33a6d95b395337890360f46e0ba5ef51f6aae3bd06c024cd9f663cb5cf52cb5a0b804dee23b5d37bfee3e65c24128990a89507cb6844008c635daff4736b0ff7e5180a2c4fcdebde3ae6febbff9674a3d62d7902e35aee88edf7b84bcabd24dd38a3751284cd0ce5c775df0e65ceb8926ef45dd0ce5d0a95edd41c2e18a433feea6ded765a48e7166c7e1db5f557cf9be5f65a36d28259db31b617d21daf97f1a7300c79c532cedfad9cdafa0edb5bfff929c6904a1babe7b0ec69d652577fa1ed77fa0dbbf8e3df319491d61fa17702ebd55a2d75bfdc420ea14761f6539bebe472770df3b66e4dfdbd527baa73cfb06bf39ed4de1d7396dff613f6f1d7f7574ca9e59ace6ec226d4bc56db3995134fcbb3607d7348fd9cddee01603df6f9ab8d755acfa5dd258cc24ba58db7d3cf7f949b84616ba58419c28a7bde5b0361b3c7e8eb867163182bd51feb9dc2c9a39c9be6fea5f6d89679cf5ea9b41e7f1a75c7e695b8cf8eb397fa4ea83946bf9cbdc2c97ffd52febcb16c739cb5ffa9fdc490678d55c939acd2ca0c2bf43bff605eceb8b7a7d3fabb23cd23ac76be6fdd98e3cfb3d6b809aceaaba3ed7aceda6dd498094c53cfe7f73e66ece3fc7709acc28cb5ac95c7cf3bde5709ccfb9a77f6d45f0927b7170b4625d5126fff7f9ebf779b04b66584d0461e31125896b5f67c6b9dff7e7a05fbb052c861e5f9f22ea5b5825d3d6bce9757fdb9beb60af6a5bc57ef29a9bcf6471fcceb5efdd635726b7985b507bbb1d67ea5a47e7a7d37a582d9fa67fe5f4b2ba3e55f0098e479c26fe3d514c7dca760ba7229eb85fb6f29f39e52b05939a537f7c8a1f7b27b1eacd77c61dc5ecb9c25de51b06e25b67fe39baf8fdf42c128f55cde09f7f730fa23b049e7bc795a0bf7ad164e23b0df7f9dffe3dd7196f0ef60b3ce0beb855f5a58777f82796931dd934e4ce1bc5a3ac17ac61fef1f67e4d56edf04eb9677ab35ed98e35a31ec463929855676282f132c5a1be58d5ddf9eaddc3a988c394bb86d87b4daa89760b8deddb3cc3defbf35cec13aa67a564a798451c61b8bc02c84345f29739416774e0456e3e7bd76cb238eb16b2598f65cc2bf23eebd7779936031c77ef9de507eefb545827d6bfb8438dfde218f12926eccbc69c4bd96518e7534c29107cba8c9114cdf9db9bc796e9a25dff07f2d43c1c1f6f5324b7b6f94d1fa3a3356a7cef842ba61aed0e64fba7134a3b5917b2d3b18dbd5d2ee2bf7b0e71d7f26dd3892d176a73fed3d69da08681b8d682c7671dcba6fbb6fdd5cdb4cbab1db701115fb15d2dba1e7d9ff093727dd38ba986216c76c2fad7be28f3bfca41b71bc13cbfcd7e8e3fd314a3d6f26ddb845db80a2945894155efc2bad9e573e2de9c6ade322267daf7de3bce78d17fa49bab13bfd5c056294c7ba29e734e77af5fda41b7ba6475a8ff2266104b3b46ee8f9bf3bc32d6925dd48e252a8d1a6fd91cdb1d1b1f1b1f18162c3bd952d9a4a8eb7f26019411161b6f238bfb494cecb73ada41b374de223e8bbd2764524ea4e5f24f29bc6af74a9d308561e2ca32b45b0acf7bed2ffbe23943073d2c5299b26546c6c7ca0d88cb2d2955b879a7ed338e5c1324a7283f1fb33d638723da7bdff926edc7c3604467d8e74f62e65f570634bba91ebde73a3ce03d568e3e384d33650a66c3cdf525a0f15916874d27aa63791b6f1816233a29907cba8aa42881197da46231c888c6c95420cd974174410370400072084b0c101003cfc70830f3a5c437af881871c76d041071e72d8b44ee3f0c30dbf4bd910479e34d2a1066a77a0818bb6a5e361065ba50c58c691f459b4698f80b21289d3a42b062efad4030c71a49946405909084833dd10ba6a7e78614217b8205a909da609e9da6f4382dc00e93c50103f2227048d843323223241c44800c0c411102ff2a4f191df46a398c55689e29ebbd6902a8e8246a351c7c503e0e140470d6758a0f2279dc1d470461d4282bc37f2d023c78d9d274e9a604c7496e4149104c9119c8cafad74ca088d888adc0c21049121410400081b00f8605d560f3cbcf7deb3e185a830bd101579bc5411e4bd81831be4bc2400cd1183f75ed50024f4f71e50d6696e64d2dc26e2e478efd1c4e00837e8e2084e2c185871bc3182e38df736cd0836d8848aa00021d404218ff72e9c50102e1daeef488a6ddc9a6989e582d00f98c8400b2c16b0e1032c5e480f217041598e3c71243cd095b2d25f81a974c564cae959582ae85e8ac994f39ea506f79e954696faef5968f452181dcf79cf3ac39b760988a7fbacf47ddf420b6ac6c365d818a4b70aa4e03d3983f4b6e570ef59639c40a2f4e6d3f39e65020b84f1ac0a94e07151c8c111a49513e732ad643ba6bf7559159329d5c4b475a7f17493f6c43f51ea61f29e35826ed350da96553995b449c76b3e9cf74d341e4ca3004a6f3efea479b86026ed99683c59b80645e3e93eabe24d5b6b3c5d8ce7359e2c5c773d1cf69e25822c42f09e0582f79e55810fe89c38123eabd2fd7b96181605ac304ca614cf7b9607deb3c0b03aa0fd6c87fbe23dcb0bac7b1fed73c0caa28b142a0b1e3f782c11c2e3ca7b72f69d12b5d606827c96f72c0d4019e48fd84277babf676520c81f6172d24d25928e85816ed3a8f7ac0bf4d296324d79cfb280496fcde4c4f3926685dbfc3ef9285b938ed31e4a973325d3241fbf6951fa4e498bcd6729655a94f7ac2c3093e6a58cc4bd8f892b017928265de2a59e32c273992f95b2d2a9e7046d294efbcd6700414bdeb32af0b26c5a93a025faa4b9d4113df31de7af50d1b8c6b52bef591498c07ba714e6378dc4699daca4f1aeb484f39b7f129190484c24281215098bc44502238183c3c9a90507476ae1de8a12ed673b48b8b7b26959e9e44f3ad39dee4a4a2312a7499bdf7d070767f3a81477d232df4f5ac6715c3795ae2841c2bd951250966a92a57edfe13b4cd888bb4d4f09eada926ed3a8be13d4b5254a94c88944ce2a1d97693ad70d4e21c132a6702ac867a136d54b72a6ea88c29267802a5a7807a8c3e6554aa89650e5a052a352011d0480c9c102e8a8792f4cc0fa9e5dd7b86bdf03fb50d66db79758dada695f0216f19fb7c24a6db5d9d2ae04ac6a4fe5beb942afa39f3d0998b57c726ca5d433e2ea3912b0ede3bf1d77ff6ddebcf3236011c25c638e92637b67e746c06eec7adfeb39ee3572cd8b8071c863ee9347ce8980cd9923f4d0634fb9e7970f01d3bf43dbbbd49147092d1702f631fd1fc29e31ae3b531e04ac620d69bfda7b08399f1c0818c5be46fa379439c73df90f30986f879efece65df78721f60b97a1ebff637facfe7e47a6090e6dd69cdb76b1a7fe43dc07ac45c4e5cb1b5136ac87980ed0f618411cef961b790ef00e39067ec29affc4719fdce03db985fec25a5df62e8f9d601c66facd352087df531ee9d038cdf6daba5d3f359ebc61b0718fef67b0fbddcbe4a8af70db0cfa7b6bb524979bdf56e1b605a7eae39879a4748b7dd35c0b6d5b15e593ddd78605c4bcab7e41e4b4937dd77609b53f977845ef70c2bdd34c0a895d9c65af7873beab96780ddabbd955e5b3b39a773cb00c33e46def1e5d4ef3fe7b603ab3366eff997905f29e7ae03a31b469bf3af927218e7a603eb9bd65cebb5375acabd9e0383f4622ce7cc56d799bd9603b31efbf8b79edd6b38bd8e01966bfc1c5accef8df66f0d034ceb3d3dfd38ce8c7fbf3a0eec5b4877bf927a8f65bf1a0e8c773aa1c77ddf5927bdfa0d8cde596dc450e2af7bb4da0d0c7b6d7be6d4f79d75a4ba0dacd2dde5e57ae28cef9dfa0518e4b24f8bfdbc5cf339b50b309dedd41b5f8bf39737ea16601d4f29ad9d395629b9cf2cc0a4be71cb4ef18fb9629fd9c03a8e9f62cae5d613ee9dd7c066ce9e5fa8b5ae95ce9d57805129299656460e7dbc3aab0083f3768af9a59beeff715603bb5ce329a9ecfd5aa9714e038b9556eff7bffcef9c6f46039bb76f2a33b63d426a6f3e03db9ecb8fbbdfb656bf6b36038bb74f4eede7b2efd9672e03cb7c4fcdf5f5b1777a674e01866d8c5be27eb3f697c78c028ce27b3b97df6b4867ff980c2c7f3fe18d7d671af7fe780cccc6fe3dbfb4fa6fe7f4f80458843ace9eabe726c0649511fb8871cef9668e4b80d15fe9ff79c258e5bd1c93008b927aafefadd1e2fe371e01766387706ada37c6166f2c02ac7f5fb1bf1f421c6fbd3804d89df76b0979a471ca5e3108309eab9f3bf6b9bff696e20f60d55bde318c3a770b73c462609a6bbde58e98624e39c46160b7471de9dd7f5f5e21c41ec0b0967f522f27f45aff0e06d667e67c471c21c6dff70e605fdb7ea1e55d5e5e3fff029bd75e1f3dafddf2bdb917d8a69d6edb75cdf2fbca3980c19a6b86f5f37dbbc078e4785f7835b479cf7db9c07ead59cffbbdc5f3c37d3780698c6ba73573d8e1acf96a00c3374ea9e5c574771ef3dd028bbddeec79f41be2bcf1cd000679a7d55bbdb5c773de8b014ccf693fd497565c35b5f70218b67f67cebdee93f24faf0530f9b3bd30fbcee1e49e5e2dbeae384738f3ce02eb126f1aaf87b357396705b06ae5e41f5f7d3be7555200c33dd2b865cf13fe8c278071f8f5aef143fd2f95510298acdcf64a27b5f2620b6f0430df73f5b54f1a67fcf94300cb5d721c2bccdc6bfcb1c074ac376a5bf9d7d5fb076013e719f1a7b6578c6f7700c6bbf539f76ba18498ee2b30cc6d96725fcee3a7d30a6cce9aabc4f3df8eb3d40dc0a69c93663df7adb86e0660d0d26c71a573dba9e55d0016f5c55f632d2f9653d72ab03ee9ac73c3a871a75f01d896154bce7fed5a634d1380f9adadbe5366f8fde408c03ae4bfd7bd6bd7dd6e2a30aa2fad934a3de7cf704e81e51fb1a57df23e6bcf520aec5a2833ce3deefa1205a6f1963e7a69b3fe3ffffad205bb1e5f9e739ef94f187ded03a3d1d60f2ba5f3ff0f7dcd02866da43a4e6d23e575f68a050c5208bd84365f2f6be7f50a98ecd243583f8f5746cdab15308af3dff4ea4921f755d72a60b0df5baba4d4dae9efad54c0b4ae17ea7bb5add5ca5ba780c53bf9bffa775ba5804d0e27fe1ce28c23ecb4f281c50cf5de33c3e8e5beb44601ab57631fb9bd18db7a678502163da7f5778d63ced5cbfa04accb683bc7bad66eb796d509d8a63ffed8e7fc9e56db9b807578379e55f79c75a79c0998de7e73182fff3277c8f7c068ddf04a8a6da5df52bd04ec7e0ea39d14e6b8bdce4ac076f6f3ebaebbd776db4c9380f5993b8579572a6fdf972201f336d7bb63bed4e27a2f3d02d665bcb55b9a75deb2526a04ecf6f9f78f73def86f9db40898adfe76e8ffcc90470c2911b0d861e674d7af79a717d221603ff68d7ba5f673edfd17022637ac7a5779799574fb2060ffcbbd73be9def9d71070296f7deb2630b6da532f31f609a6a9e3b8f7a7e7cf5f601f6e3d73fe798e9cd926e3db06cfde799f32a718d52f700fbfaff3a29c6f466ea330fb069f18d5d7fcfa58f36ef00c3d5ca8efbded3de1d711ed8ad90d638efc553eb78758049da29b57ae2a9618c76e600bbfce60829ecb9cf8bebc4013635f45d430b21b772cf7903ac5f3e23ce70e248a59dd30698ef3ac66da9def7d62f670db0a867ce3dff6c2b9c5d4e3cb099318f7f7338fda53fce3bb01bb3c5bfe6fd250db02dfdf7dce70e339cd0cb19607bc7ede3d7bfc6f96d9732c0fc8519fbd93d87f5d32eedc062c5d1523ca3e6905a2eebc0fcc4395b6c3dc73ce32de9c0f0affa4e8973fe5fda2be7c072a5f8f3bcb91cd8b430fea93da459e36b638049d93dee385fba33ee30c0a0b7f26e7cb5b61fe71a07d6eff5bc72acfbfe394e38b09c3b8ef5ee5f27d65cbe81f9cc63febd663d3bfe6e60d65738e3fe13ee086d1b18f63ee3cea1de926f185f8045ed779c556fbe73f450ba0093766abdfded5cc3af7f0bb0afbff6b6cbdcb7e7beb3008b16ef0c398f16c659391b98cd766e8e69df31ebabd7c028a67fc399fdf57756bc02ecce08398739e74a3d5501d6a3c73b6fb82bb77b5e3530fa6d8456faa9abbd3a0d0ceefb3f9ed472fa371a58ec397fea31b630c27906d6f5a47b57c8adc7175633307b67cff5f3d9b1dc909681e5df3bd474c27fbf9d29c030ec50d6496dd731428902ecd33d7bf4fdf28bb7250393374a89aba7d8cf1b631c03cb114a5bb38eb6675a4f80699da38d78cabced8ede04d89c9cd37effa7945bd84b80dddce5afbaf70e6f979b04d8cc72de3cab8e534fad47804908e5f5b4ef187ff55904d89f18e38da98d7a628f4380412e61cc90724e71b620c0fed673cb69e5ec5bd7fa014cfec927fd9eea4fb1a66260f17eef7d9473ff2e7d1858c676df5e7bfff3723e3d8079ad2bdddbf27d37ec606074d69a79e592e7c9a3ec0096f1fc7452daa9e63c4648ba514b132b3732b1bec066b61e660929af7f777dad952526eebb4884e2b064c3f202cbdcf65f3396d27200a3d1dbcc27f4964a1867ed02cbd9739fa1e57be30dbbe502eb9b53fdefdd7cdbaaf5df000661ff36fb6e7bf739ceab01ac73cbff9cd5dfeb31cf520c6b0b2cd2ecedbff5570ee7863f0358c4d2664ea59d3ac6587dd6808501acee2bb99df5ca48a1a43604d60530ae21debce61f21b6806501ccc62b27dc51d79a31c5947423be98a50526a98e9dcfad31b4585adead2c30df318f93fabeb785d56ed28d38f360191dc0aa00366dd5534398ade634661a23605100b39bdee8e1b5bcc34fb19d0016b5cc96d31cefff506b0960f65afdebd736c72df7a511c0b09ddfe68f27bfb0d63e2180518bf3cd77fb383fae3a6281cd8bfdd71967dd29a5fea4336ae3e364c204580fc036ed35e65aa5cc53fa8d25062c0760ddea5fefd59fcfdffbbd364ac0ba82da68edaf7b667dadafd464ca816505f6e7b59073ee37d739fea0adab15b01a80496f7bbdfd43bcabcebf936e3c69dba7363e4e4edad64424929207cbc892c262c0e497f7af79bed7578f171025dddf5e2ff584be8eb08cc3aa02fbb66bdbffd7fc634db55600d63fa692fe6ff5cc515348ba1146085809c07efd37d3bc398eb84aa97746de090f9611170b01588fdce3afb5f550e32ae9161615989430feae6ff477c29fabe7a24e4724d2b1d1b109daac441189aa64a92722d1e6bbf6242e471a79b08c8294614d81d97b75e5f3e779a1cc9d86614911454f585104595db04871c55debab7fbcdc62ba75a83e2ca617ced96b977266d28d7e4b719a898b4426931ef5aebb92de7c44a21ca775852a0b9763b9a5c6d4735f611789301cb70e5539a1c2c284b94ffca3ce1d661efb1538d4706beca9b5187eb9ad00739cba5f7dfbcddaf22af45935b791767a3dff74926eb4e93765732a913891169b7d53369e671aa49e6752b226960a13efc8f3af32fafd35ee5251b226954a35050ae5c416ce4ca9ad12c29863cc97728cb1ae74cb4ab525dd6832694eb326127328ed884a0a18c533d3faa3e5d577d9291f5885d95b6b75fd7c67fb2b8c51c078b75bdecde3adfed7b9f3285e0905ec7aceebae14c7a8afcdfc09989459cf5ebfefdffb38af13b0bfbda71d579a37a674da26dc9f71ec7753b99980d1fc67df7c53afbb9cb2ee81ed1d6d87d8eb2e65ec7f0958cd3bee9fe5de996e8e9580f5592fe79d774cabb7976adcc8036dfe046335522501fb38fe9de1ff3473dee114894e5ff7882212b0da29c53e634f6d8c7ed723601077defddc1e5f2f35c7bb6432e99f95e04d6504ecc37a7dbe92dfc97385927463973a8d68154555044cd2cef5cd75f711a761e47270012a226030ebfa79e659ffbf698543c074b59a675ffbb5bbe693bf5b2a216014579eeb9c31f32d61a741c072d41bf6a8718d3e623d49574b0504ece6eb3bd5f64ec92fec3415e50758957b638871b5907e3b3fe946ec030ce6ffaddd9ef6be6bc59c7463e781a68f8d8ecd93254c489c7e42e234e9898d8ecd1226560f4c732bebef1ffa486794506f9848a4373f310f961157f500f339f20f65bdf1da8dfbe601d6afef3077ccbddef7df1d60716b5969b554775dfdcc79609d5e3db7f75fff48ab8dd2563ac078fc92e389a5ff76e3ac7380d1dfbfedba4f3e7786d1926ed49dc9f70a2b1c60b4e78aabc59d5e382f9ca41b475a27e3d7b46d8a8c335e1e2c2323aa1b607d726efbd4ffd6fbef8e9a446d7c9cd89038fd8407cba889ca0698a75bd74c2bd7f36faf35299cf6a8d48f4ad6a11ae4300a190000a01ecd000000b312003048241a8c458301a1683cd809148002539076b63e984984c12c46511085200c02400c430020c418420c312ad5d8003bc24126f89a4c0ae59310028a1ca25b2a149264a202024f895b45b18068874a96c40ad9269502023b9459622a149b240bc8e950cc12ac50691259406107f49fe4f5ef91a22d20a443314bb442a5496201d90e952c8115ca263105143b24b3e4542836091650e91099a5ac90d224b380b2434896628568934a01891db2592a15029b9405c47428664956c8d344730c5ba12f46bb12344589f7296949ad906f523220b4439d25cab26afe74ef59a657db0faf6ec944839afc81fe3ead2db10af5264907e43ad4b3045d286bead0f7b29e655a5aece979ab7e934ac687563a35d58e7e75a6cda15eeba549bd5b55a79e39ebd7aa34f1764bd7c832d97b4feab45328a79569866d075d283c8923a0fa90b0258f42f524c481facfd7ef64039260924640ed43604b1c65d5fe84dff348afde0fb85a83105b5118228d4f6e4be1421853d5ec11fb6bbca74ecf78bf467d6873e1f738d2abf713aee641a856040c51e313db52b8901c13a2e73a6250903a26b9030a1fc2b05417223c6963368ce4134c0a8c71bc59a727bc9f476db541e0371bc9d86885d3d3d8cf5d5fd81cc66b759ac4bb35ea50cdab719a8dfdd0b5854d72bc56271446c923cd7a3fe0fa1ae6d8ef85d3d3d8cd5d67d81cc66b759ac4bb35ea946d3a856235cd6c9c572d897d3e8d7beda1ea0ab6f753621494d493f1cebbc27004ac22ee301b5ef45f1d0aa8aa6313f2cce12cb95a6bc708da1d27eb413024b07479692f7161c47433c7bf2016e48a1b04637a3f0ccc1a7971ee6c21345e1c7505ba4c67be0babc22197af62f78d19904b5956e08d764832231f1874f13a03371e6a300057c3fc775d35eac5b6a5e5329005e84c02d9ec2c0959e44ae5bc5316d11ca6061a29089e8392ea0c3a0a532a88cac691a2324f684c6b776964b704616a08dcfeca3a97a417c53487e9e0e3688aa2ed66013db9e291812012da846ee35531c9969ea9dc47252b4b6d98269c44a0ff315927c242d1092d707b2e3d87e6425fdd4322cc2393cad59009fdcbe52104264a6014915f2bf147c5e531613d16f4c58970ef9d0e1ce2a77e47ec7c1654a8d58f0ae633e0da2c604dacc1471c4ba21affdb5996532887d6de7b2066249899d5d72ed5c672e2bcbeaa7d5610a334e195b30e9d3d45c862dbab6167b6533a4169bdf9818e9e7e8a8758b13f9ced590c69ed775b09c0a06db9bfa36b56f4a8299e3879f8c65d83850ee3ccc180043f6b7640c47a5b6289644a64b3d62ea344e251e9c8e7ed432fec9b24776a76925a03a743b1a14719a24e1af1bddf26b33804594abd4578806483ec3385479037b821319230af2f0fcbf94b3598c3692f3efb53b3918d8325de986dbea7c9eb6213c86a14862b3b8ca1963fc1716fd5eb6283fc6588b26308612e1c8c268b5a6c924d3f421b0b375ac35ac59441e661b3ae26824d53d8d3bce6eb7a3f33654d1812d117d6c85a76a37f8ce33a4aa7fd66d74697d91e43b8c955305f937c10dc251b701cb6a0fdc7e28d87163b7db733785a641f52cfe3494db8889016f6aca15e8c9093a310d2b01cf4715ea8e92526d0f834533e6e5c4c50fbbd7fbee02fd02533ebcd3d5aa258ec9afc7332d278948235a41ea8d146423b062b153dd63f1518bfa12d16a6be13f3aaf8d5c1dfdc3033e088147323035f0d3903b6a0bb8650b5746df066184ff01eb87ff8a6dedf857914691caba6351b9d211d7adece1411532be99c6988cf1b73f23654adae67ecf9e8b7e891e9511994901de86fb649fb1a534ca3ebaeae06a7726be8b8188fdeb04ce0f2323d53d5810e849d519fd703dfa8d6712945341118c7463f266c9ec8b0a16e21c2808fbfd9d4a0035408763a88b83453282b3eec46a6447d0d718f4fa3470c174972bfe6c2e87156d88265d92385b46b03e6c7cea98e2509485fa959b428708b2d9f17ff82d78170c5b7d82bb85575109d47ff7b03710d0f6f1691216fd8ab0f574130df2c1be0af5c52ade6ddc2fc0e993334003184549cc1e2458a38e148aa4a752277797a74a965e92ce1d0520c2f196959f56c8a8a01c86a9163d62c0442526f71a20f0cc26fc1af8b15cf3ce45d230791c7581e11a5746fe559f19bfed35b5a77fc593e362749f74650ce112b07d02bfbd9c501f740e9d7caf868feb52f4488d14165790e68b342a06beb0648dce6ab5758a1cf02bd5b60132f012ff9b6e6ea36b8c6b685d90a7f738a37434f6e03dd2a02d927c524c270f4964cd3b85478b52df63942672fdb73c706b568353b65fbc347ec466736691997576cdef35870705182fd3794816fc859177faae033a74081859ce114fa0b7659355b29a532700e4e5e128fcb45756e6ff2d2cc43db9fe4cbb921edbf2844aa0e404d379f7f869fc2f6d6d83981f1dbffc0f3818334a026ddb732a39d72025bf3907b71b87cf132da70621fd839492f9d296267a79c137c92fcb6c529c2ca24adea3ac8614c4592db69ee518e579c3612ef99ea89cdffa6e311e40e9b29d95632e9cc2ca3957fd47e956ae60906604d1f9d087ac408f42a497a4484e82991946904c855b685747002f1223682b2101826836f160ef00a1f0ed4b0f7a835b1db3869250f8647d1fc202d32be11b2d1d8224164337edbcd27a8b43ef63c0015bacfcb2dc275aca7c025b22021e7509cb13ef1c43352c73c562370b4f78bc42f8bc9b866485bf115da959b769e5c85008a13f5fb9d4675ef71821b945e4700196285036e21efccc259fe1684d163a4d03b49bcd0f495dd1db16667c46c18257eb93fde3cf6407093d467f26bbf58b71a7c4cdfa13a1e6d7a739dbfc7e141696433a8f2245017ed48112d8d2b86aca96656b73a3474cfc2e3883fb8c0472f7002c2ca73d1acc905a08cdd0577e83d199d9e8747148a267c4adcbbc4ad273b26702ed500cda1eda32100e7c14b557bac4a242ab81946458e3599575016b6ee69dd0343b45a4ad0439b1380e9572c2de92f40f900e46923df85193b3300065a0e9e410fe632d65b2b728e8bf62dee5b99e208589366e8cd2b6025557c7cc0a61dcff7164b1cdf13eb4197ed2a509086c5795f515e57d4ff1a9434dea5a2f1034c21d7809789a0195e36154aa3d43477d0f4121de0c2f5b2b4f890a75cd559b0b64765f29204a9185e0f081093a16a84b648524e122d3574fece9f3bd50bc424063de6407c1cb2809185d171ae12d948914b4823ad677c101b419a91a96050620819e717504316a2f2106a0844ea8141fe0cbea40487b3523549beb322c11b36215690da033a8c13b25cbe7d5d836b50a34d59ffb200f82640f978972df9da5034834817fa3aa450b34e85f6257ba0e0a79b7750f68bc1a301f83b2c4492e405ec64568ec302a33c1cecfb5169983623686299fde4385245a11809801029eb39a4a490a56db26e88d356ba97f88f525de2676e7b6e1bfb7ba07c4b2fb3645dfda5e24c3af9080df95e98044baaadc89080523f7acb5bebd73579606f6e7db349c0adb41cb0593152282422815be214ec51c801fe57225c6b5b278551ea3f846964bb4bc9d452b20b0fdf4368b89454a2198538a49ba5a23541a6301ed2113536b7242f60ed1844c1433b2db55a53518884197e75e0fb30dc6a87eddf6cbdb67b93a14f3acf84c638512c6b265f6fcb75d000ca654805a7c987c5120e38e367cc05d07fb0d91d9db24f06306556d56ef621d03ccba938ff1f23ab28c15deab90e2efe25272af2886f71f635ebc83e51ad552b0d798994b3a9c8bc7ec4f06b58dc18b9f5afba2ad6b4100ab7f7830e0599b587b1fcc919ea33b85607860803733eabc3e72bab40d9e84f31c80210cebef9931624ebe29a1e669db5c95686a2b0694c072f3d2292b17010079001805f6e6a88f5ef30463f34acbda4df9df9f411c31a882ab3a45bf6e76e7cf2984507b31d2848d8f082acc0d94558da748ce68ac181646f50aa0d728292c70d0861d55ae27ef519e5c477216f85ccd232993cc395b7dbde81577c4c5264c411c499b7070cf63728886dc85466aec5e5f7c625ff9797b09dc975bbd283eef22726cf7c85ecc5d0dde765329b2bb28458c52a92ae3c58c1ad6c0dbd43b24e1459ef1c6eb66a2b1af3cf225344d95072485124a2dd0e8980d4439830e08843c4831a5bc7a5ffc9dbe702e776c90ac059d5cda0d086f309e469780f0311ba556a396343b112b944ca3910def1eb2d9097fefaf6eb671b2bf82f65e965caae7794fb204baf9fbf92d4f8dfa8d74534ad3da524913dae09e8828d2e671888754a9c7616e44f5cc0fcebcc30729ea9fda53e0045775d6ffbb299ecaf3cd4f35d0bbc6e2e0217568872d9f9bd22c8df0840742eede1e912cabdb9c95258a781c64635789a726a4a5e488b7e946a632b3887c230d1382fa15436bb02c0717e944c8e4ff6bf5b70479b444ae819252790afb839fe251b7a3f80ba8dde2f93a85f6fc62f0a6304bed0f9d161f5477724f0abb320e11acb4d68f8a43e78e79d80db1a52b1d8345a60a56392d9d6d872bb4fa34d21eb7d5b5a53ad743bdd476d3218dbb79e356431b6695d6092c7dcac75c520a7d502e31d4b5a532be69b960c0ced58672382edd053c8e7d5bab9ca27de8be96f2ceb7a26a55f747deb59076db27a912f691a3d559a7e1bd3e2a176ecd52935df559a7a7b5a57ac88c3ab336d92f566bcb4b848ba181a050017047ed7d392526cfe3769c40eae04e0b1fd57e0430bf062473818fed82e4470e68b8cd7cf9d359bdbdcb1018b23c672281e9e645d1e1a6cbd4aba5884158ae0386f28fee5b42870b746776c2f10aded28742d8e4a4a402fd4c64af0aa030be4fbeee9957431021065f7f2483f6fbaa65c3a63415c0f0e8e8fd96914907df2acfe4b51eb26daf38e8b9a7b2a98f7efe9832c7aad986b1c9dde15735b2854af78d71430861ac881f49e6b0546d4c8dddc892af43188fb31c470ab59652e609d0ee67d142a5841791f284098bca5ce4f10e9e0d320524710e79a8fd07f4265c7505b9284f3952bf4328c222f1acd1b52ed7c4677069392304229fd1332bd01cebe40cc4b1e31189d98c9e08d757bc321b24d86188d53388e1376be7738fbc7780c93a90eced54e340f1b1ff276280ae06d48969d6b051e1ea5c03800996a4087a428e4ea8afde1cc511674a50a34a4c79553bf40115c57eaccddf04ec164868b5e1fd507899263da0b8620ffab7673da4ad792e1c2cc26b41ac6286ba4f0b9d4ecee64d25c51be7a2f8170f35ae1d9b9d3c085ac07bc6a65b3b4eca698aecb945b00b1c1d5539a6bc89453090a4b55f572cf0ca90533953102dbdc889b36b64ca7cfb745c008e19ab0d17dd4a443fc85ae9d0219c388067a76b5b1ed9bb35d48bf0cb40c8e69099cfb615559c44a7714805d47db24696d205c15cda6048b057832acea44bcaa25eac2c18f3cc56049199bdf531ef994b0f18f48d7579eb21e172d40002b171f6c5e32d6a1147dcba27cad0b80d573410b30eb789cb58c03a98b428980c37d80dfa38165ffdbb73fc7790b76de1acb87637cfc1c043e52bcf1752b2fe5424a3df2135d4136574fdbae04a4f3b60ade4fe864a2061bdf8ee85966e570f6218f456756c2b9f8958a651b40737e64cb2bf545de9eb0ee0b8ae4b44b992c83d9ede8ed75083d017115b5415fd1117a0a2ce1b610641dc3f71e774bd7e8561f5ff4d01a89a0c21d5a1a07f21fe4f04a8b190f67eca5abb047f4d1ef21a9151428a8f4d770f02923a1fff1e3871a801fca7f8e77bc47bbd6c74659cb0f07675e00af1e988c92cfd7294b5e80ae49ec6f78d67b9b613158f6cc0b75a6a16135d034ac9bc8e0cb0ede9bbc7c227f8710e940d762d5b7acc2a85c7aacb72fc90798645e066ca14cc1518f10c5fdc6768a24c931aa10688c16707c72d2e4fdafb2de632ba16dba2c2c87c293ac430e3e90fb692004abb091857e2c981f877d430c77c2430f88b371b703222b7ecd5df4043eee788a7b0e9763ab93f1200eba85459d157d757b4cbb5c207205dc19eda5747523a65ed895ed2aa29ddcdcf278d25412636730b6906c03a335dc9ab3b72d829ab8f4f5cf23fc8438d59e3fd7efd50b9b48666d8391c42f55d8cf1a24d12bd1dd4e7551298e360770510f52e08a4e87a0e19ae852e2e346d5487443e4b78ce0bc352a3088c1b522de776befbe9a791a32dc7f18459da9920bd6f19385de9482d134919f921f2f244f8302b38ad0a1834240bdac220fdbd80a22139b5866a78a6d4abbf3b68b52b09dfc982131d4f6e555d6f4066a431eba37dceb42e83a11e77c20b188ef278ab71647c0cda04d090431b029670b64a3b8266846fb307051d4835942b5b1c5e22000d91e679a3b39a1d7cd2017a346e3bb481788e1df262ae5d1435eee24b77a9a3bb443892deb68f67fa5b4db836b69d3f398f4e3715e8233657138e3e51c489f22628bfc7304d1062aaca27bf37a9affb38bc4dfd23106f7b4305c7663740c9171c539c9b1af60d074a52879a09d087c480e601346570024cc056ea9838572e7855841fd512d13cbd0784d47e630f0688e798affd20c5ba2be52df7c3ab5f629406a147f48520c3547889c390ba077cfb76657ae4a2dd453af77ef470d3ecfa6a20b8cf3c3830d16cd7c051400d138a83c3ced17b146acbe097bb506fb14b6a5eec4b2d9c5fb8bc369f29e8bdc1c13a51c30f38d517b1fae439a974599bc706dccbfdcabdf63433b10a8129b8c942fba380ace6506259433bd577b6cbc3fca2fe649c9629e3b0704ecd89a7b91e8eb298b881995b387a270578626eb48f825e5171c2a12ff483acf737ff80b1725abded5e8b72e507624e00ca7281f1ed3abb2960c46d627b5f3dafe3fb75253817aa5235a989537a119d031075d3b02245566df7b56d001dc6202232a37469a9754bb7fb2c1dc4ade05f346232d7738f02fec538b295017d6c273ab45e9c7124360633bc1f9d8dc88deee2e69c94bc58b0a5a1bde487ac22ca851382dd55551dafd073e4b4ebe5fb55f33087dd4629778a58119551660a28a9f9742e1672e2cf1ba8b3f5cc303fd0bc38d2c99734c500f94664ac7ac43e7b74144ec68c9ca59592779c314721fed02e13125f6404eeea1634f5046476dfa8f02524537c682059461946bfdadd8a334f22c9bfa254ac9ed0d0eb06530fefcc9d43f7ed50f1e487fdf1459c611cf574b58cf946ecc90e5eb53ba3ffa25eb3c39b2842ec37e769817db8eebe828b17340dc346665d96fc71762ab459558b0c85d1d6970dbe43c46fc3431e8f78c7fbd56c49c0ea84b9abf68fcd788d364f725a3ba993e6c79eb87b00a6d7041f57bf85dbdc97f9c3cdb9792cd6839d71e8c4f3017bcd16efa8d9454e62298f29845d0e7e6887c2dc9ce1c0a63d190b79a8fd64a1f973ce9bedf81530729187382a92f378c3ba1781a7125315bf81e901efb6e36a9751d1bdc287cdf4b80b9d7394b3b1e1e51f8153f0f9ab5e756d5c7e087df7bcbd2a5e08195d32e4f265e4c0ffc4e9309cc5e29d3fdb5592bdc92c2932737097e89b53b55c4b4c329f4ff67dd1f1d643bbef1ca4bedb775727ea9e6cc19471f51b9f963422e425c1fd0cf3125885c797e502e62c397d6e027f783718cf51736e234ad3ec8f508504eed2c734d8c0e4113de47327322dcb0356640dfb617dc25ca421d5eaefc26496e1eb6d9499aed079349529755f1adda69832a17af8b1f0ca656cbd08e8900c2b099cf11a64123cc7f310041f52f7e92b5be42a01e016877eaa4e92dd9ad79b0ca1e9eafc9773a94520b9cf6b73025cd928c311476dfde0ff97cf08bf56c69f54cd8b726c1f40963d694650d6a4fd02ce9896bcee3541af2954444ae081bfe4645b3d762a82876c810281603428ab186ba0719cbb4af6f63dadeb3dafe660473d040296441931558a3a0e3fa68eceaacfc9f5a2ad077f19f09ba9e6a81bc3159b99ba225f53863e89f15a5ba350145f3727066b2102eda00fc9a3c8d8f212dc5ef3ff7c8a42399483c8f7fd9772cefc9d9f2f8675361aa7fe3be64359de33f79fca9960a22a56ed66728e833b6bb2136d35a91ad679c0e2b0b06f01e5b193b9ba39889fc019930e50847ef17fc8e872d7eb3b3a11d61a910a02709f6000843c0b0277fbdefec4a741e6acfc9d7dc9b46b07837dbf1938fc5cbad981a79e8fc6d6dda3e85aeda6e64cfbe3d4a43abfb539edfb429a7f9ee9829010a759e44b74b20d10cb31b05f4774387ffa952af513c4681cc28adf0d203fe888782313e341700711fd0996f61a1eaf7baa219c2ccd77eb7ae67c6bcd215a9ab997a532ed64ab82c84cfbed806ca1c685bdf6e509dad7271b2e51980f95c498011226ef4c6eb79cba2567b76f131a713b7ce56c8e40489f33e14613e85ba2b4b224ed0d0afa82b1aa653d479371768ed871c5b30802cae6e2b893f34b1b79dfdf0dbffd4ddcc7ded0c23182f4e12a3bbfbd5c2fcc68da5dbf416a0a9bbffe0b40633b12ab12c533311bb70a1aa99e8c4a2fc703fe7a38dede21d617766cd9d2ee92140395581d13daaec4534a61963e2ca9f74afd14940220bead20fbb45cbf35b6d285943f6d3d137d76358683be3cce76a4a76e98e059e5519fe52783396123616abbfe53a32978d21ae433c7e8c01d0974d5504730f60b503d7ab589470a7b1ee2fef142c3364b102f3a76a4f3b3de6c621286ef2566b7a44bec89a40f85463560d95141a86252833e8a4bb4a2abda109c07bc72fddfdd213563f4bd4a7cf881b2e4a2cb5c36f6041458c35c20cfbb502ec9733a17f003fce2bd461da07ea10f7097d8578837c219dc60e60074947c85f802be01dd335ea827692ba047d037025a6a644b7bdf1a09b100ec8f266e0e6b932daf65a582ddda69c572636839ba163d382d7d06a64fb65b1b2bc993a5b4dd8066d438e270b2fc395d1b6d7c26ae936e5bc32b119dc0c1d9b16bc865623db2f8b95e5cdd4d96ac236681b723c611d6f978c6b09895be36d12694391ad6e6ce95dfbb5c6ac6ab0a8d56d329ba8e42b1334823380109b2a780d4a098afd655155c9a6543294899ac199208d4116ba0ca784c4cebab0aa6c23a5390a84ada06d906225085e855643b265455c59b6956256150266b06668b148052cc32acc2467c9b4884528454f5f67dce6960cb545520617f757f6948ee536fc5c6552d9adca3fa0ff0c662ee9951bf7f226760587f1b9ae9bf4ae307f1143cf75766def210010a9f0d6a33db386d677b0f0a7e0da4342d13da6a8c6c8a503a40537791ff51459ba299819c6625c3dbde7b9c83c2ec1d80fe1da41305f07a5083e59389a43048852f4bc371a6d84c53074a333e4b2ca5184d5c6d58735e645c0195d605700012882e360e52b433e369529a657cf071a85c87095b3c1e0769eff6bb43cb87488d171a800da0db6c72e36093069a149b68f5b4f8627bce56798e785a94e6f06dde554cf489dd7d3a60a1beb783c1f2047a3e30771a821145428c10d317ce9abb96d855a41babba66df1ca598a6f721735145a8664da061eabfb7a548c1b19b6f39b99137d9f247df9674389814c0a68faa506ce5d8864341ea33ea6d80cdd1172144bb9b93e5d0e87cb177b9aa408a63fee4608a5cff3b9788deb4141488ce2547b3e932086f266682b8ce7e9036026ae372dedb1d30787a4a0892aee1eea9abc763157b0637872e8219bd3d525c3d09938e3bbe70d193b3402e2f73e29dd12c47bda7c5f5de5786fd3adfe9a932d6884385133de1e9f6869f50faa22bf107641a2cdc1062966483682ef0fcb40c06eaaf27508d204c2089205ca7592d48b4028e818a2fda219b0d48a36728798ee09629226f6a987ac07e9edc83870ef7e30e6f7913f77cb80bb56438bce624e9fbd545cce9cbaaa0bba46c2a5accb9facf174b84fa26bce0f3e34b9374c144096535348ce02877004832b3e96548919685e3658023e3134c4caeba337dc98e55e84976581328e29fa574778c46d126497b0620d7212d1730886f1b65ed42e5a81e4280629484a24a1a8f3a04ece4e7fa12aa97dc5b14f27dea526600cbacd78f0331d46a2e6a0ec63402328bd10454a6294b85d96a8accf85a596706247348760e17ebc305358171a1510552dd571c6453e8f76f1269cf86d5c95a0bbfc51766a691761f2345890651729ae091a45d85c7b7d47b32fc2c749cdad4be1147727198a3ba75c045990cac2b5e079b995d19c2b187b588c5e3e3138033ddf8ff2ea3ec2e91f1f2c90db5e9db3dc2cab917662ac68dbc52d75761a138688f7d748b43aeca1ecf3055e3ca9d2abc64c7d16831a291ed6a6fe68e0315655c4fc13f243e7dcf07c63bfc00db4b9fde19d12720838d59fb4b94582b716e40771be4ee49957be5ec7e2363d6d618061c0df03ae0b45ffa37e9a891404eab72cdb02b562fa248baf56d998de8ded9b13e01da86826670026dc2a8c6ff47f6af707d60b2a8d3abc3cf797bfde9c3a4f8533e58bbef9069c60d3fb6fab97d20d85fbe78a43791e3c47d02ce35e85cb1c8e71e7492f66f62f954e2e987a7a1d1aa81815c77d3c272690e576dbddfc706f46a0c99403787f73bf85484ffafb0939b413cbc745d34968546620b8a76c083975151224f09ce89380f298340ff9340f404c0493d872cd77e50d6a48aa5bca9dbe245e47e924ef1a404fb6046a60af3924d683a734b6190bd4d23e4d3d13f4feeee65cf584c6a58f2d1f1c01a00da571094e018d93f2cc17121d22cca3a63a6acf01df11dd459c2b1c3dd2951f54e0db8ce33a44a7648f3b9f3e2b23e7bb74e37df4e6ea03962288580d0c4e2ad317f07b5d706a69d7c6e709064933168f0caf519b244d729d433e827529e0a57c279bdfdd098b029df11e6dcdb97427e9b9cdbaac9ab80fa7fd83390783161aa13eb44b6b29411e4879861352f9affc5791707af336bd9a8e25d32eaf269e1e37133003f4cf5a099a6ca55d1adad6b896b5688e3bd38b86df2b0a961739936b0c762e82a73ed211448c0b7e9ed3cfa272a7754d9ba94831869a626b56936313cb9b0f7dd35ca3307a068ef176ac2084cbf09e574f0b6c6ac245d8770dff5feb96046f3afd070a64cd82b6a149f16da47d586619d2e6370a60923f67fcf65a0a64351ed8f435232c25bb00a967a1bcc3d598001507c2861ec623833d3cf7ed5199051933e603a86a026382d09931211d8ee82d9fe99f1e6edb8c4199517581f057161b01e5ca462057d867291a0a62f33b7e46451d970ebcbd15e354cbb7336135fa74c5d1ef91211eb45b9b2a66d844b9b6a76a8a6368a0af5d6985c07c81f7c252af58aae4c4959f5f837413fbd4e4a67a378c3d846c60c3aba302516ad0cb464a9f61ffaf4b5194f44f128f2a8d12a4f12b1d1d155496fcc629aa2a35a311d11983c590b2a47b57a1fff243af85ca8b0b0e967ce5fe7a28456f8f8a4be00b00493abb640d17c808c27fdf3af1a20238afce053595b9da6d733109b9c8076cb488f7f58521d39afe2ee50604a88318ca43dff1d5758eeb14c6ef004a4b675777d669a48b780d4ec9a657167d409d00d36e12edd6afe9810e0fdad518c4adfcbc79246828aef0ce3dc6c8c04a137555ff9ba701e3b69514c30312c14aa4bc5324927fab8041cedc71800fc59092a1655ecd8498713f6378b0638b97c3f9ffdf95d4d9e0c043b6397ce56482b3d6bdf6f048af7a978361ab566bc8ad3323b255ddd7c689bcc0a5005e94dca7406c6f5dbdcd2f7b54760f2286dc05e88a17d878d4318e49c4b253bea679c606b98389204ded649a9bd8b8719b00b9c62ab7a9a9336d34082f8024e4dbc1f0e213d51085e6f8f6a61db258de2d3c81aea5ab1478cc0e7273fc35d0ad81e7b33814531207cdf5c2aed92097008ab18ded4c54a8272502664c527b64d6522d4086009cebd8364a6587faedec011447257d6503dd382ad51bdad7376212a33707ce8e7713c1ee57995cf8909d5ff4e0d423e7f33c86f6c8478386051e8ef13cdf8944b590df81196a00eb1ddc3dcde0e71d0d571af8d679e7febe9619d73ba5270625ca57a552fdac4d86fe606e6d55ca74b0e9147f8b73d6782be036d14dfbd4a14003ac9506e4bdb8b4e10313880a54da908ce64d15c5d06ffbf3efa89a310f18a5ff6efb1d8a34c4b45a553a4b79fc098d5c93ecd7a153beeba93edeced9e566bdb2fa0951ef8763bc3f3c78c3d6dde71722d596def26f0510578006745ec247ae192ea5454c0278bdad6f2f1b170345a8cbc2a601920db6da6e87bf81eed2de96fc7d4b432ee08823425b5d525a2f531f42edb454df4c5702c3b99c13e962818002788c7d78022af70238509ee0d2a7b4f1b05937672200259f21c512d07b94090b2aac8a74d69d68ca73a81ed4ee7a7e5bbbbd44b9afa82d122f2373d38e059b0acb99fc1df2442222eb7b94eb80c18d36b63cc6b0aa33ca3a7bb4cecd2054fe486ddcd290cf15a2c567ea285850ff416348b36ffebeafa63b84a3c08779c341cc470cb8b5b8bf8929300f786b3ee839de2c690d55f1660e30d1ff576182839c6ae66e30c9097d41a471da0398ce0dde7c70f19025c0a158a9c99636b8eaaea71bc5c8e7c8988e73084b93a8e54aa82cedc3863260d54a71b27a6d95a5e9c03dcd4ccae5abb1b2b1c6417adafc7b56630fc0f2a3086efc7288706cbb04748caec40f68a045fe8c154cdb85200f20b3165047859ee333cba61dd7ecfc4189791d774c8c808f1cf7d70be91ff14f903f1f71ceaa510b7ae72afeec561c3159013732e63c09932ac37ab430668d5cb2854f4b02039a98fd08f7d2dd927df435f70e758e690462bd9a593d55e6024d031ea4611fd9894e021b482bb504ec725e71afaab65b275a6f2c65b9d151bc3f62c8c29ed42c4cd6c1abdacfb1819dc45638e721ef887018dad4fe83f274305f38201dde67a16adcbe3daf076bc1853944560eb41e060916dea784fac3a3d253b1fd29bfe43edabe9c967ee368244454b94fd7211e4b4cbb6eaeeca87b1bc9cfa3df9d3620e0525b62eb0659fd6a981a2cecc3a7a590cb1a2656f3307746ef6220763de50ef85ac5e3c444044c2a46ba6670c4260fcaaae5e8dbbfa0409989dc234bb92259c83464492b61e2c927f3ae7c569233043bba1f6e4907e2f14a2cacaffc1e118226f0111beba9e72ee2e07ae9650b67605378b8da4d5819eed7bade09ad0fd60de6f65dc641f7ff31b06fbd2c69bd808c3717eb6c258a7c1198785a9a67d6ece67b5c3a3936b95018fd4290c6e973c2edcf50ea41b0c9c87750e0737c4c62ca0c07fa163f450c3baf038ec7b27f14be00ed57a2f6d0786632be7d7e69802ea79c026ed096d3ea0f146075487fd2259befd0a902c37dc02980a59407a52a07544439cb3b75e3448cd36f78813fd1576f62a1c8a2a88b0abbed47a0bb4147a1ad20fbe7976454a22e2319a7c0becf7d73f41be4281940b95ff585800425d9bb4fd57b333be81674ca5d32317800e6cef6fd5f9c4176c46007877c7aa7b68a562ba045e5c912dc3023690cebf452d94322852738e313d3394df2695f87fbf54dabc5cef4fbe24c04885f32ceb3073042347c9bf3f40322cfe3fdf0d77ac2526cbd9c7f280242ed2d3e4ee91be17d8ebb2f207e7337426fdbc0d3aa3a9ab5a66ed7cc8de15700c2f9d1c0e4a946fc82e8a121bcb5260430e153191437918fd86818be65ae4f695f5f07dd8ea2ebcc5994bcf9fcf79ec35cfbaa3c57edc83e5926b175d6f339113ba482b8af376e94c5eef8aff7fd435f7fc29fb60e34a33ba98763c6557a5bbd98c7971f9d9eebb30134bd3f6c68bc563035329a1c75ea5fd5d8532f3d17971b132726aafa8e1232d4d99ab6162d2776fb802a927fe60268065eeac0bc15ec4a745b3148d65fb3e8170659a3f2b87bea24cdeea4e1a39e7391738501fd7d3b17f7ac878db21ef7c487f7449b4211843d91729e59935f19dbea5da7fb005dd069f8d3d37c91ff29eb91e6c16650de5eef90f9512d04fe4b2fcb5b7769dad8d569eb51a18cca351943ef2c09dac9dc6772176c98bf50603166616cc777c45c414ca63cc708afada8573fb77df95fdb929f9f9e3af75fa1f10c3792210fce1912d88e030e551f7f91f312a7ecbe596d7323d10ef18c63321938692ecadd94e837281eeb3ba328d6b4cda3bec5603cb828922f2c4e92cd1fb6b4063473af0184d97f0513e4b4252e23e69cc332f01bed3f8a888fb1e67e3069dc93b35085ba0af865175db4903d1fb99f712384f6df2ad3dc7a0b87773a30623d48783de0216ed2456730a22c3e32979e15cb91e6b1b5ea79540efefe99abd27c13e0c902e801f714cdcc2aa90c7a958080e8482b1483b0029b05598477d4ee2cc47de77548e6aacec8dd109b91a2fd7c21395b3ba09cce102b24d9bfd6ba344f593d407056787319e909e7e8a9755c36f46a51a9130550739cce318dfce8ec2ec09a786c8a3a9996c5e7c08db919c49cee7b3ceecfd09744135a70ed56a046cfee75d479e83e0898a7a1892746f0d6d12efa672e08bee6ce64d87b8ee6bf8f2c68c66e7319ab7f2b7d72bb6bd4397b8a49005d0f93e1432c00f5cd628f05e9564116b5c85ed5edd7ed4b784c87b5654775f98c63e319229e52abd41cd7f90bec9bebbb7f4268fe1ace55e7b164d5ef5f73122b41e78abd901dafc1d068f96bd073cbb14e766acf235252188708823917f7496d0957e472b58a538c7f40773feb90073c1213702d3cf2be3aa177a8f244b0aa657553c81499a77f2d92df31d0137ef8b6351527eaf0e299427b560a8d4226a9bed18f3de2c88bb6011baadb2ff7d27d1df779866e230875900536385409f2a5f271307071a27fef0a284ba1385bfdf2b8ee235aba570fc66f1b2ddc2f996335ada3557e8d04f8945c062143e40ecaa6595a02d920ad70852a49ccf801dc5db17957c46eddde2abe765a10c6f60fd0ac0d05f05ea5c1a29fd0eed613839b12f15c11e17b2f80d01cedf03e3b7a35638f190df3047c7e377135e3546ffb4dda9e6d6fd727dbdc8876d4edfaf7b6d987b5d820d1ae5cf49496b11e91f8bcc6021ee3761a94bb545e67660eef5c4a04ebc4c2c149749641058705b44cb6931fdabd4a7c29d59627a657d3406757bd586f6dc954b834640c14688d7bd7686e21176b35bd01a0eabdce3c738b67427b6ce71f5e36a5d708a16614c534c77fc9a74cba3fad3e60286bb80fcb7b0cd948f37093bc33cd025eab029ee7d2324b9c0756abb6dbb044cd66f8a9479f8f5f13ff089c2fff0f5eee0a323eabd92fe51ec9be25ec4fa2d90115e777cfd2d850578111cdf55b2f835c725dc854a084b75de0cf5566d5c5b70f60010323b08f777b74143c380adc6b20fcbf7b5a4975de8e7d8182b39ac2eea36c2dce7f41f4330d3702a6cf732806375962fa040a4f25798448f3d8a3c6bc1c3271b9312f61de102f625746a0d5ef9fae4db65c1b6a1fe0131b1c8a5d7080706a12d6f1b1a1a9d05c6e471dccb8bc49e473f7a7d5fd4fa4362a46767d3e22d1f3ff81abb91f7fde7c8cf3c78ae6ecd360b297b487681f5e400856a756f95f716e82739d629dbde29cbf3e030066344b2a5069c2b62d5ec651e0842e9fcabd93be392be30693167a14931135c663975025adce5a8d902eba161b4ea745070ea0f7739de3d262e4c47c9aa9abb66845bb40f84bff0eebe6c56a1f7380695067846f3fee5b6265b1f8a803760fc196fca7c80c097e4b206f5701e92b5a5cf4f088dd595aca0485d759de95193cb2d8e2b0174ab7496f5b5679a59268cca75437bb53f295b9a8576c3b94f43fe28453484c4ab53ef6b7b8817a7752c51b40ad0e6a924bca3640f52516d1be856de98884fb3423fc76b0e09a32a67cb5776e363b8179ff7b18b4cd9b2eeeae0fba8ffc7db3393e3abc9c3a205f400de5aee9e9244072522815fe290147f82f5920fc044cb8ba83ac6a5b70cd97497f77bfe2ad1cb21c0d592cb6e0c31b2b3efae41e9ae0ff54ea2565c6a354d2a6ffd27b440c31b10a064b2b09a4a7376973828d5ff8659cabe9865b820930c192613efa98ea44275238ff9e4d6412bd379bbb22fef3559b149de67e1e368929ba510f3759d708ef8f3e5ba890aed6a61e831b0b64d49560ea0bc56d9c523d5c2c5db6d2b0dcb409c50df0bb814d3c0467731e308834cea6c894bde75086e819e55363bb249116169d80a72014059984d2a4b4f19da8858196cbea2daf3caa112d6abb8baa2902a335609212274d4b907645a255fa51c888e87b414b2ff5d55f0762c73431d987e46dcb225080e7b64d3c0a7e54cd618a12c7e4980aa8394a0f63a7b9a440320a875cc99cfefff0a90a210fc33efc3b16fde5b5c006418e68bdbc78c9d946c18b17a70201065367a26a75352bd817d625d62a6ad7234e65706557e3967e19256f7bd0c3f81a6f3b233566130285c8dcb1a784662be71c29fcefccd520a3f81da2b78e30aebdf42cad6c9347f49db4434950ddec83f41df7255a1b48c85fa22803441f019fcfac86bb72642e3d84215292a6ee39ffcb384b58de1e06b2cac7bc2af89084370df25072d27ccabfc0c100f2a8319d32c07e384060d0b34d1c71606e9fde16a9151ec5aacc71029339448cd8e28f0778f588bfc020130c4a6c103d76b7fb227563f39609d4898a070c76ed567e9b20350441f166eeb76096d0f086b8c0c9bb30ee191edd7b7ff400d404509827fae07d7d3c79578ad6d599c725dbd8584ec8f853dcf4eb4f95f70930bfc73c6b4e746a43051c334785129b7dfe080a4b2b91afc88268498c2cfc76ba5cd32a04ef913a58316e37775de75f36454e3606857df3cf8b74f5a8662de4951fe4e04901c6354a4ff5aa364a02a7aded3f470c6e6a05f158843882a95d2317c81945b1ba1e465e0b9aab88bd210175fc9aa90e9902c5ecc27f4435ed4a24c39d1883506c06aa5d2ed71e54a95b8138067f987311f448ef10794035c59be1b7aa10fe219afc24c79094c04fae743a4a9c73ad1b0a8cbd9446ad49aa22f99431f21d586c6ca4dad5e280883bd1e4366a62b21f37e2a42d3419d53837ca684074c7ab1b83c1a47ba6e886ce3ba5d953f310fa6376e6d08579e70d24f59998fb92708b76ec3bcc3128cbbf7246ac340a06b984ed57f789582b529ac153da2d61b8470f822e58ec238a1d555a95ccfd8e5be5950858cedf188759f78c5f224b4f261b49265a581a033af366e029783cf87746df08f07c15b0cd8dc5e6973fcbcdaf7f647382cbc8a3d82d2cc9f89ff877532f44eb07659e6d6d7353e57fecb49da19699c12c489892aa4c343572cf930864ee1a37da4d7d18bdcdef573d693a5bef82bba52ea6e07f46b88227ea0ce7e5880c3bb2245a5743ebd0541ef457395fa30b53124ca08dfc455fbc0add1e261f2e781a151b20c49871d9ae8f0227e00c61123dc8f2805063c9595eda40e9d6c0ff26ad221f14bf52fc63a620c253c7ee24ef0cc3013f1342313c099fab1ce99265d71da8b8639f810f74070595fac36a1fdf72839b9f15edab30700f06dd5e9dc59cafc97283639d0cf12bb8222998b71e907b31c19ee6af314b400c07a447979f07ebf2baafd0e1d3d6c7547096d869e0fc1858664ade6f08075f60a5b91caf398da5110a38b98d402f727b082618fbc09ef4317ca122aff27f87108d821c534352d29925c7ff41228d3d44fc324be71be7a714c1b1b5432d5e203ab383fb37b5e9433561a95c098e1a44f22daf3c03faf72899a17d89ebf47d8774898ebbb3beb5cd45e33e46673e9c84a9ce95276ee93d6d8c85f147519b0424e67e8ae27a11ccd5cacf01227f98d2a54c8fa7bb71ca3ea2ba7eb0907b559a197c7755008207a17d2088ca62910152302fad599b8fe1ac45bf77e9b84ffd0f03f27fb03ee83fe618e657af7e534043a7d134c44c54d64b546ff4aa9773ad3834397761efb8a5b0cc1f736f4760be44c15343424348bebaec5b70430bcaf49e70392c0a84950c8a27f28cd9b4e17db9dd86301f0507c3c325a8d93d5e7e35b4a0835619b31e2e6fbb680c38a876a00aff4e744951743c6c98c8eab6d5557984e07b56cbb24d82f3e8e01e231483b27e8bb08f1f3054eac19aecea9601bc0606bf6ce08845972baa517713555595957601c27dcf07488908afa480c321b7aac83f814e8cbd82ef05afa8f3996eb1bd5a047d7c4e030bd86be4d8f2a1b244a1c45fb6a5b307ec504fad776f5caca7d380f9c380a1209d4162958697493e6a34cdf2fe46836d87ddca6d46d2d1120da1f9f0f843fd988a32335c6f40a2d9a56caeb542c099f6bffad560205a4b51680932d564d4fc91e8cd1b900fda1d1a67e5c83bcd9e404d1fa8a4c03a724e418a104364e68d6261f0f3a20bd20b2f38f5e6a1ab20fcc403b299b3721b72a40aed7f76ba8e6dea8026ba5278b9a93fc306d4a083c3a0fa432b747a3ad1eff4d86d508d4de215b855d15b570735619680a28a2e543c11ac95aaf58da89cad6eff4f66e516dc483ed309ec747e16a39edd3ffba67e60317516318c233c3f2fc5f8d72d22ef4d9e3d4abfa6cb3b54f9cf65b092cd2f6923f2382e7b736134eb23a0c86668b1caffa3dd32366c21cf08249e8b895639c0f9bfe945645a386e62779b5fefea005ed79c97d169d2c4ae4ee30f4848cb63f530e22f70cc8a90c08c4faf05468c23c5641304ec6eb43c547533b8ac784978912864c14f9976d3fab8b56be2d73fdf8b4ffddaf7313fd20131696791f11ef2f902ae461588eb85ab1a9fcfc7de50e6eb77d8ac2f605c73e263570a9cb2c39bd8aa585d7e6b31acbe817b121b45dbf87404b5746a2b7028f9e0b0a17e31fdd590fd63929b6401e81a82f82efbc487657b90158bacdeb083683f78f2f56e6dc4711aec0721920e59931ae7e0deda7ce8da5dee0e38691ee8d9aa461c8148c7b2aaf5812cdc4622a4d997a5e6e01a84026a7a2264de1bfba5f325effe6067d11fd74d6c023e1bf507544169f655e945cb933ea317aba41952324806d340a48906bdb91d00e83df5df73ac039bbd681e6a1d1d63304da72d9a3574e4075991dc4f5ab796643e7fb0189a553d46a89c00a770926560d3d812fa3722c9b6c2ca973c292c0b76e6560728a167fd4327b3153b4f6a1bb1a3e19055e4f3be603ffe591752436824f77bd29ff0ee863458f3d044e2e50b56e26925c39c02715b7dc2cb7f078617d5a0d457b2f8de9f2a4a36c83645eada028c3aadc382773419580ca46497bdf44c0fa39a47f951220a8d4ae72fead5e6003e3cb79a1b10fe3c20f3fdc940056863a36fb3eaaa786cb990da4bf2bf634730f92dc124309e95f1f1400cf63f562d3f1a47d6648236f47eab105e96124a55ce8cfe6121237c2942ac7f73e37efc321c2ddfe2e3feb466500fea417d00d5b3ed76e7c5589f27fc68150578897cb5bd0cae856b904cd6f5704ea19f2c4dbcacd29630edb554128fffc3051de8629d0a4853d929d25336cfb2f334ef021161cfcb8577f40b74ee71b96ce08ebebe79971a4a5fe36f48a87d70d40962042a002973fbb9153f9f35e46e7702d5cfe49cfa8ba15a816de1f532fa126a42d630125108e94d2c037668657ea6a1b90c6a1c52e76fb23b703c2351216bd2cc92bb888468aaafb4ed48a23a313b906d1c66ee0e4aff22335021fd4e097554b0ceb8bb41eee65e70ba1fd34c1e760f9cf1dcfb4a4d66e2911ed5d10d716877ce23606457a92f99e0f66a8966a055a331e2976f1c89f5574aade59582787432398302f5bd6e2385ef51bf9c796e70fe8d21fb64ec626a7f38fc8b62968d399413e7bbcf32bdfef6b33d46714bfde7079689af4539c0955e63e5e5d2fdcc4366f5ed78a182e11922b570933755d255e7932dd8edd6c2481e0a8317a79cb7ec0754303fa83dfcc4a678c2ce3a035ac8747917754fe601ab036b4104f6f242178de8506b3ab0113505599cd450d5b762be5dfd2585f6121261ee10bbdbd2488cc1909528279ff3f0d18d7250a85428599391d3547562051d094a78f7f8dc562faf304dea81f9663093be37b5d0018d4d952469fc633cec3fce3f75f0687ddddf7223ecc4d9b29b97a9328ef96bb07e319d499736a24e60765767a07fa7ad8d0253c04abd943f4e4c7c99e2247cb32d442edd2f6518dd09508eb18da97db6ad0955e8545e0923c993392963698f9aeb1f812d84791fbec4da22eb3e479c7d2cf4e737b5686573c0e58ba07a4d3b9f87ffacef300089653e9a68e4578a29c8850ff80204413c26100ae7f95f3c2c0584675bc6a9ac70758bc22097f580e3c72de81c80a7cc0ad098e60cd183c74416157edf9d0914d2daa2c64e60857e788ae26e489d6c0799d9e573dd5adae444af6873201fe5bb8646c5a6078e354368deb82c05bb2935f8db26c38506326b821e34aeed817c453e6cef6827dbf89c1d12c2e9a3a8939d8732cdc17695cdb64ea568c4685bad00e6a5163d1fb36f46e00be93af50e96ede19d96c7ef79cc60568e523eaf051733ed7fe859460c77c36fee1785d57ca25e7439da6bd588d87556874512c463b6b2beec437182bb86ed440e2b5ca0d1797150b354b241dbb17b76d95abad4a422b0f332ad6fda31ea8d4974b1bfa650cbafc526e40d5df74f08bebdeda14b74f9d3c36bc474ac13fb9a8c40295343ec4056d7981614f84cb5b713f4b5abc7bddb9b401324bafa6a44d8787ccf64bac1eb1575f0767980145cb41b592b64d043924cba3032740499d6b285a5a8786fb59e93635ba67c8b8f242c8537d0d9cc3369dc2bb834d3c5643a3646686151bde0be0ddaa2814703d985ddd761530ab15ace456a3d909aabb48dd87554307786179d536043c4049a521e06a82b9716eb28a4c943b2665e67a46ebe0ffb81d2df5333f8cd58adcbbe07cb35ee8ca739058cca257ca68bd34c4488d729d4d3ca313d74257f3ada5be9af527df90206e23cefa1ab05c93ab4c144833fed3b82777155208283e10c6f1e6d3c07052a570617745467d8ee91052bd65f8be2629b66f6663923b0b0b1d3111a43c46d18214bb88b2e286aaa3889abb8a039f14559e2bf0a8ed5fe66cd794eaa037c82cddbb8d337d36917c576933d93e8ea0e102baebb4bb6919123b0257e54694a7eab73e377a0f7600344221570d0bb4963d5b2737586e552615377ca62f5238660d1f30b23ae64a588f01bdab52668aa2e0e89777bb6d3ba63d4056858d03f88c5d192e60c78ebf9533a1158475c1f5e971a51610d52c44f6b15bc030b4fccdc320077ecbaec50a0aa471a82ab93f8dfd1634cc68d853f519d54683fe0dbe9ef3b76043a610581c495431de2251166c586064f555382fe170d8514409c99315a4e3875ca43b6ce32e06d69f296bc1942eb5357c587ad274d501264c3650e49dacecfc759367778636e6ade4053b379f436cc9682cb833f0fb75d794838132c032bde85b1f0ae483f6d3d1da28c140ddbabd7c28976a4e4ab9ea0bb6d3af3cc4bc278b5d78a9e1541ba82fe5ab4af18122bc4d4848ba5a1e10926364c4a6d0460bf1e2e1044752e7400e84090474648f4c2a37d7cba2ce213fc8d37b5a83dad30060013892d6300190412017e07317334859c9eeaf50da6cc5cb4d5531b029eee9ecbb64104ed15ab5810221abd57f635bc7a4faab9adf0a1ca1cdb83878de1882035e436bd4dc300bede11cf9c73f32929a070619868175a4281b3901267b03603b0d258fabeca9a7e6ceb770b73099ed2939dfd0a1c3540902c9ac189717e92d7550358a3afe4eec5a18eb83966256d560d798cc6c15202e0bbd062af62a46c8da12f1258a5065824009f706a48395e3f22fffd404a5786aa4e21e35f1972edbd50b73a3f4f4830a2726100ef640f1fb8acaa4e7e2d2399d75597fad1291d569f782651ba960617a978e124938dca0c98081d743aaba47ebbda41112adab58c4bb94c142be34ca879258d3eef840d05e43a5ce714b874025173f2a491b48ad66ef41727b043404dc8500a880582c8ac780aa59aaf090c035553401166c614d2142658aafa8d0cc849060d47d082b3ac1dab2940295d4e951f427b0660a971f0d29164f3e9a69a0f0c59e888ef352be25c389a2594f4f261d9899e9735831d98f90f7c6c14a8af42b3e64c80d085f14809bc4368480f68f1614f1781ce329655c922837669f2d3424fe7d5a1ab5ac88890fe999fa65ec1939e89fc84f490e32fbbf26677d99b275144ccd9b52d1af3f3b7916784fdab320284e93a2f547d90cd017a74d0b1ad70188f6593b236f4a320a6195f54573732cf52cb27570405091cbef9ac601c86cd313432e744a1f380a1e121415542a83282952079cf046ee4200f848468462a9b9047b1e04d7c252f3150de672cd0979fffe387032dbcdf9eccf674df1cf00b68f2b95049035eaa13c82f96d3488791e8738b390a3ea0e841b07d8b350aad9a0267396345b6d01bd8823f9640ee9ef6cc434aa55ccf9cd5dd48d033ee3216d3839a2cfd18c6e5fbff500536146e070ba65cb83cc3d0b5fde8730abdc18d64768a70198254b4868bed17cf727baf11c23ec5971309150fdab0636ba96cb44552a368b85a64933a68c5761857473decc99106331544b26c8488a442bdac1dbbd70af0d29c870a886622be3c0e6557c4bd57a9b2eb34e27a25aadde95be0ecda004b94e99786f9cc418d687b14fc6b5d6b02572aba529a084139e770ff238e396ac99f8ad477a6c798faacedbbc46c5d0110bdb8f9dcfc5f40772f7a3d52a41c14e121b19b638754a15d4d38d7fec13cb43786d8a9a86992f4da5287a808152ed3561135ebe03abddfa03fa1699ebb2323f81466b41e15e11c20c1c08dd0b7229a3484c8f942e0cc059540c315681f861e759b2dea8b66f6494e75e2305544986c50d6436c162450c808b97d1a03219b91f61ff85255b49f57403813b4d074cdc1f0865969800ad265fe3243fae199aec7039dbe61a3547d87e9c4cffabdd83eb210f2ef07a261d27b7a3a5ba9c82d3d0fd4972351f809397b5a4918db895f979d796ea63e197dee40f24f9bbb4ed832b63dd8d4a6bc49376178ea86765bf160d5fc6da5f8562c1b58f01302d4bb3f522512ef77f6a58d94e8bbc2ca69ffc1e83e705f84d540474be44f1d8f309ed3a46fded70094135ae1eab2e7da0d8652df4e704e82cf4ed72eea220d1c7b0f1d4d6aa94b4b7ef7383355c707aba6c091ecdc1930d4dfacdadf70374fdae9f127510ba0e564384e9653908be365ffe39cef6915af290c14fa4587e62d13fcf521e3fb04d3da01064b4e2cac88426df55860f203d55b402453b08426cd5891ecc8bdefee98fed8091f6415989a1540b9f5d34eaa84490d0cc4bc8971bc933ce3ff5cba1406b8c3f7a7a93f83bea3ed6f66d2a2e6ab79a530a7517f7f912788d91224f7a79c03de25f4ff1c89f91d68630632580e2dc6a3c3c0fd49e6c8249eaa371a5c157eeed12dd089fa0027983ce0cccb66d30e4a7d7eae9d68d0d8841c39a27f02a66b598fd97a44339009179b884b2a50178c78e13579234ed3f489ae5b6f3ded8ea967c1ba83c49a283304e7c4ee22320214646ebcd7e95f442cb3817ad3af3957fa7ada2f96dd6ed09f2118b96524d90951c978c273df21dc2f9cce22e33e6b3f3d49bed412474849f48bfc8633252ba1d4a087e00b3bd2c16253c5a146567cd7430be585eaaaeb62807d76c52917faeae82ce5b87cefc22edb2b6b74a0cbdefb0569758cabbe48b996018dbb87226404d36aa79c69a07079a0cc4a969f3abc11d1eec169a15790d476b58ed1d170fb1b0df6c33f70eb68ec1a287fd4b87db466d060b096ffc2b75e7fefac8ffba6d1486c505437805f422ff7968360ca61d1c1b89a9a7cfc077197e35f55fe085affa4649640e20c920ca38c7fb1947fba79c22571e73b0c127109a1b38338ca4bd41dd457b74e32049e9350b926524201b9c535e0fd893ac31ca635b9e37a9f0d921ffc9e7e0106866d909ba8867405606a1c6231f2e1a74150ed6504476467922c67544e1f9ffdff68958db680c246c1bbeefe2e355a82d9490db8886c3a1ea0b149f305d9f632ad3ab40be4d7e8966b314b083f85c4bc9598a6196b304990f33818b2252a2a63929f4e2fe38813efb2ffb99b031639e5e46a96091718ef628a4bddc3b61d3bd1c27af734a42cbfd888e1136e73150a1e3ae4acc2c9e36eafd3f92718ffaadb28f36d982fef4fd856c5935afb782684227d267ae678c79823c4109c72f62a4abe99dd3c79f29ca194f6105e4bc962397abf726567818534c11ad0d0727c9b7b4c840f271364f749cfe29cf5edcc8fe923c2b22241fcec88ce54c26de6735c59260e49e695a85b3a7fc06ff75c15656474836171bdea1862e7d23e8027be2e877d7aa260cb69eaf8d514a4aa41a91125c9c172d11e1f578f54f741950ebf63e564fe01ac807559fb84076e4f6087466b8d6e50ff1aaa42c7a1b9dcd375e4539b922f4ddbcabc136b8cdb57a03b0eb7af6894939655c6b359ee1853e6efb104de95ab89259079a17f33722ed69a7de3ab42c34dcda1cd80438be4b4157b7f76aff8ce0fde8aa5c8e382240b04dd04c508cdba167126ca6c472359a8a10561d49aca99479d43a6972e955aa81a5a222b8e3fe2d8e6a2fe7165dc5e9fe85469ea8c751d851f2d489d71e2c598146190499fc1917bde4f3fd0b1fde754e9b6963e54b14c2fe998bcddf6a4494aa4578236bfcd91e3da804f5723ffc256e9babfab8a8bf6098bd109dbff1c71b38f16e8e3b281426fca1a089cdbe0f035797b0ae50710e50bf4946f0fcb6cf7e0e8d5119263f76fa59301f895cdf272d16f625aa227ba5cd7789e7aaa70997ed642a472f7f35d8b96c77df82efa4570476319f287d639dcae7d4e1f973a13eb7ab9c8d791b459c9ff0467c060c7546e1facb7b7b9e39624ecd7417ff2cc05e87949b48e454c06f7c333dba1b669922f7e0a44bb87be81efec93fda3d0e6ddd51a96798b81343f39535ab696c7903174e22157a8d0327f61e1da52c6d80c67af50341e4761a1b3f104f15f54ff3690e4e037396005a0f53bdb95b3371a065eb733c345ac38965f4c71189af19744a33c8b95a9cb9e877ed3c52f2a08c728178ce244e76e640dc91c1d3fee2a7f23d920753bd1961ddcd5082b8b1fe1a465449bc3c04f5c61ffb64e235da2fc0d39a2a8ba9e098d3568e02260e6675ae053b1886e2b289587b21fbf7f6f32c5e4d085f306a49d91e6a2563644ae1a7573a0ace3277c2c1a4c50acc99aa58ebc56927cfc7f1c5464c5e0f5df3b47a0899f6e3602f74d53a561197347c07bfa35c46d7ecc7cef14bde4423c505ea3d53e3d290ced952552692ae2ba5a5ed85fbeff514341af446c12994bce1350586eaf2f716ea32e7d9b65f6c57164bf0caf8891a1ddc534388fad3c145bb1167a23788eaadaa40de7f5fef3582f59f10c4e917406b9b84252e13bcde617eebe907f769485b17d59733a564249296c0f4f133c2b54e80fe5650f0e244c413578f0e6cca34f076a74cc912c436ef4e0630dc54cef04073d63e0991f2ab5541813ecb80e27169d3aa490b8c1293f3623673928fea85069fe01e85547917a0d8a93e9afc7cd7566c687b7b47a07c37ac1e99e39879ce4240ae4583db772b35ac580dd5f20f19322b63bcdc597e9b2065743942c780108262ba62d2f3ebef4d7ef5f34c5f5529421e74df11c1d16fece6f65da3c7e463ef9495eccabf882237c7f7c3725673ff444b026035bc22171f592ad1e1b3468d4bc9042ec832ae4ebc1633f135b8ef29f321fdf58ad55b4214006e6e423078f8040f2fff5b5900762e9b57343979807c8cab31d46735095f18a046e4df4f515b5a16c86cc8e789b501b57aad68de0c15baec5e4b79d35066c36cb5245fcbdffdbe8510e10bdedb0315a0d46f90535a2c7c736e35c5ed5a8a17cd4325b26088edeafa9ed53382f97257c8683e5e5fc65b8810463c1b96b949da87b508046979fb94e599cc17bd37ed858791a2408f320fcf4ab01d245c7a0a626f34cbbc2cff1a3d7e41581899c6c8b7fbaf8458c3a1d30856e8986b33c84d1a5e8e520d194254221edbd517dff04a60508ad3a69c63d6092e4e2519d905d4f1356b6b8c3201e73705cacdd90e7a1c60f3d4408e3f371ef137352763fea7314989959871ba0ef3cdd6e6de6f5f1c207febfe4186bc5734e1a91f9b74722671c0e6e2ab97ed5c5202b4dfdb790ef5b554e9a2f4d3e33b44102d2868bfa6d9c05ff34a75af59d96b9fe929abd07807de6fbc80106a7ca5a6f50fef7ba2299118dd2cd672ab5ac00bc40abfd8cf727c10efb2b76693248bc45a9bc39b7dd48fb2ca98be27ae9f0a87d7b55df7b651a0a96dde93b31b9b8089119abcc8654fa1bd077bf1fabffa5b32bb7cb1d0569594a673b69fac456a27ac0c3c47048069e3fe56815049d8ec33460b098cd2a5705a44c049b4602c1698efad5e74798d68e415c3267224bf974f84e60e2641590dd25c71b0264d9026ef144dd0c3740b0a6d0013c0c3c0c3c0c3c0cbcc6f0f7e66e6d6649482949a299b0e0cbb097049629a594644a5eefffb3fd57e340cd7e676d6dcde881ff0cf30ca70c663f0dfd0a343c919436978e97ff62d68bb911343a9120e3bde8855b0d3a6947d67247185fa820687022c95dcebab2ac9b388b0282c626926406b75423f33aac9a480e1f5e7eca523b359d8944bbbe4a173ffe69aec444b269461ff1f9f3f0e5901f9e2e9120d63e55ca7639bc7b236bc5c618c30712e221d8320ed0b044527ef71873ff694ce156225143e4cb7992ab795b1a9448ca73ae7e6a3fb4f26564cd0cc8901f3ec2481e84043c78f41a684ca25319faa269c47b40da0e0734249138f25da5b366542b9d051a91d0eb3ecee406d7533b0d1289e16e4bbeedc39a5d5eec28c10e2f767060c81923033c78fcf02143ce18cf834719341e91203e6b3c99621a8e4890f994a7bab47a182b824623122ea83beda672d023e21e7634189120a3626a693e5c1891590f532ba3ec8c1034169114dbf9f2a5ec8511cb0205df40431149a14608a9fa79233b968c614611682422f943736bac2e866e1e110917b469d6d497b6367f88a4b5d3b3b7d1d2524d86485026b498d65688c4ed8d770f623608552244e2a68af9afcb2fba6910c91636e7cdeb1e5c7490209274fd87509bcb2a320722f9e7ef92b9af29d10191183cbc57badacce9db3f24efc9f1a0846b9ecb7e48ce18f47aaa9c731ef521d192a93042a4da858bf22141853cb9d6e173252ff79058eaf26bbe7f4c83500f4915d3438970fd7455c9436214cdb9d45bf8db1e0fc9c1c5d2cd8ffb8bd01d12d36586f2b218762bb343f286eb571279d52161f4a6247efe1fed5274480a968332519dae84eccc21c14f531c1dec5b1ed09043a2c9381b63a756309dd238248b4c3e3ee31b96991b593b0b72849c80070f0e020d38249eda58ecbbae20530a5b81c61b924d264f517683d27d7b1568b821f1e7324b665021c4c6db9078224a5d280d93c1563624e7177d496590bd7c7173028d3524654cea213f98f6f0e2faa0a186c40e334a59929bb917ae1468a421c12dfecd28cbdd9a311a9264a3e8da11179692679640e30c4959f971c77cc3db9366482e25839d900fcb90d8315f92172e8bcc54661268902159f46656c9cea43dfe48a03106affecd6643a7ed9866d01043b256e6badb6d50e1411a61484e67b2335f4e5155b291354e34c09014a2c94e098fa946c8740634be90d41b3fb749bb6e0795193884861712347436255df3ca6c7c64edc75d17126633fb2991f3153a32120acaa0c18564cff6df51e12e074873fea0b185a45051beaf8414a13c3fb29662a0a185c4d252df7342744d66481928e4c240230b09627f373ff7b9f499ab5848f4f8ae418dca5021fb91b5e3c1e3c040e30a09fa9b97fe37a48dec053f7c7019685821e1e2875b764f19660c39434850f4d0a842e259cf980c1d94d8ce70d9000d2ad0984292d8253d4afe8be6cf23ab0986183d4e40430a88788666cbd8e65ea94c2134a290b4fe59252f42c64d062e83648ce363481032121862f44034a090a027d6638b9c1373ffc8da0f204f48f80b1342e83855ab8c32820011624646aa41d1704292d0a363076defb19cb3051a4d4876f553a5ad9b47b948830949b13d67860c7bef234281c612126d65af36e93919c2574262770e6baacfe246e9494812baf74fff5f76ac1212122d9af65122ee72597884e4926139065fd50849f515849ed1b7f049a508896baa7995d7a33de6899034ff155d63ca68a7ba2124e9f2503e16bfabafd4031a424810dd59e46bd79cf02025d008024aa48bdc131f32da913533cae8918ae50f206378c18387ff0032463264a00104477c7e3a95d7cf4ae7434818f6041a3f48aa0ca1a9ab1e4b29df0749b5a22b56d566d7d11e24a7d99f85d549830749392a6c8a97cd4d511c59eb1e860822bb48121654b84f32c31f88e822c9c6c5b363c80f5d25ca45527cfd20474fec3de58cacc5c0bd8c1e3f7c64488fc34582a6889acd1633a60ba281ff38d30b81c82d926da3e6b93219645d1d59eb2104480f1a1c211d10b14562277dc22d77f47ca61a59334bd35a246777e55c1ccf7d0809031d20428ba4bb144b32c5a4dffdf1314c0e44669128671efcda4e8cac4916896e67dd1e47a5fc098dac0119d263a40c3382602c123e6ddc5032bfe56e0de487c122d1f3cfe92426a217ea91b51ec60b21437e244230a0af485277a9fccb2109af6c5d919cacc3f59ae893e28f334610b31d6168a00c0f445a91acfa79e22db57376bec719428694954b81082b92ab62ea8b73e72a92356553b57c325524c59c6affc2fed846cbc8da107f01ef084303ee4348186088d1830c915424f5a92d1d2e7e9e65b71be265941188a022492da58e9d8be990b31822a7b07a4f43c67b0a2173051153249c6ebb99a8a56c0c444a91541784e5b01747f6160622a4f0724c55efbf4df14f20320adc7b45caa7ca67e1913533815a1b4444919464eccd2974fc7f51f1e05104915074252c95de7461df110145824e6fc972da5cb79813f9449252f92674accc2065630a114f24973e69753afe06cbf0e081d6c3ea6c14229d482ca536c65530f30b9641c611724260031f64f818120404683dd00c14229c480edd7eb5a2540e61d15207914d24481bb70d62a4d7c93c1d443491a44b5ccb36c753bad42299488e15d964a3a4a85a1507114c246e8ce5379e83169dac4b24bde5136bf23a6d456c89045d1ff22a63eabaa966bb9548be207dfd6bd48da78a12099fb297e45f0ca7746e12c99b15e37b6cfc3a289941441289e1848c05e5c1e6ba8e44a27c0a4fd3659f9409412229c5a376c8b8a75d7acf0007f4114916638e6b5d7ad54fc711091eb6f3586c4f315976644d2920d288a472ef98dae182cca9674462d48d22449b7f98af44169118c307213bbfcfe80af26247816087173b0a8c1d5eeca80fecf062477db1c38b1d9507114524a9dfa84da5d444247a483dbdbf4b71d335b2a63bc2d080ae8121460f20228848fc9f2bf50c912b8b2d25440e917025f38ab69797577064cd87fc3817868821927743a9b61421456949c89d08440a9160c236985ad2ed255e337ebf102144f2da25bd4963efdcc88caca90744069198baac2efde7735db69b880822512e2f5b1479418a5aaf98916498f1a30c21e357201288e4ce5096cc4eac65108dacd1c07f98bde0fc381f506384082092fe63a8baa6af0ca2aa1142e40f892e1e436be98e7cd1bedc8e3034f00304250041185fecb0c01989078f4b3b84881f92ff7bbec2d9c92ecbaa20d287c49855a2f3e78e1744f89024b692eededc3f32d67b48b8d8d15295696d75480f279287e42d21478ab8a6209ab205113c2477f8df14544f7a588d8982c81d92d53c5cea33b1340d324241c40e4917725ea696527e50cbbe300602913a24598f5ad6a6d78a51a14382e9c91c434bb78d8c043c44e69090952145abce236bc57684f1c50e1e1cb83188c821c993bc4cd5cd1f2a07d5201287c48c31c4799e4def988643821af16aa6bdf486c42444f556ef67a6d3ba217153d76fc99315bad486e4fd6cdbd94f84d420b221f95be76cab838c96be35249ada6fbfcd5d21eb125143b2e76f112a689a14dbbe209286e43d95839f32ed6a258486c43caddaae9d352769e9899c21b9e37de7b31c2b998a8b9821316bc3f3ac88cc0cb2b1824819129496d16b6a1dbfb64286e414dd23c4f55eea519571867b600c091a4b07b558a75abe1643929fcecec12e655c8a5c4710094352386d3b61514d33c52c41040cc941ce78e6af5533a17d21e945878bd1be74ba3579214926d1f42946d4473f5d4838fd614e6eadd39c9a0b09ca3bc4b87a251d947a0bc9b639ecb8e5243b458b16922e6e0ccba42afdcb998504f9d050196f63180d0232e40707b090603a5ff3edfbc3c694107cb1438b895c21d1348e7fcc5d418a4a2141c40a093296f87855a743b4f2211cc01a82481550b554abd4f20aa3e12d2b6ee69c47f79a791506112a24862e9f91d9548c963485c4987274baf499e7d5238584afa4e6b9a3a6888847d6820011d2418008c1000f1e3cca080224c8f940904386481492845afacae6a523b434b2667684a101328008c940183c780cf132eab020028524b11baf430575eb9534b236a406cee38b1d617cb1e30cf7c00530801a7599c813124683cc172c468dfc2fe284a4b03f31231e6e377f9126249da5bc95e692d21f7a112624f6a825ade6e9d59a17594252860e7af45797eefb224a48caa3a3a2a7242eaafb22494812f2b3a794d29d17be081292d3648cb98d19262b2f7284a4d3a473a5ad3d6ff52246484ed194c996107f5abd481112d483c8aca46674ff2e4284844f7284250d625ee32e3284a474f17a2b7ba585dd458490145757c23d99ac64729120245b12a75ba49de80d721120248b8ffef8d147798b5ce407a66ffe7b0b12f141c2f5a65349454d6e3a223d48da94d9d47b8b1ad911e14192a6148b41ae6babecbb480ea6f53a3497461b5d1749b55b7a32093d9a44cf4572c93f935961cb34745c24f66fc6c85397317c7e8b049faba42b95874bcf6d91bc6964decc994fc8ce6b915cf98469c7bdef5a4e8bc4ed7ead386699d79f4582a9958c8d1c192b2e8b8451a1b39bad5ad98e4572503236fe08f9164ab048964db2bb67d36f4dfd8a24d9f0b77165d5fad3ae480c33a5e3bca626cd742b92cbd243668b49cfb43fcedf5faa60215545e2a9ec68aaa91cb22dee43481838c4462a1245b6490bb1a62b9d0e2a1246c814d54f9f8e41c8180c317afcb0718a246df982d0cf31e9bc2992d2935e47933f6bed8eac9522296d4aca375b8acb79ba0d5224ca9c8e1afd93faabcb2892948a18d978a23d992f8aa4d297f3ed7207153b038890216578ef85223975a87928cff31ead063ede8022b96d5375ce21f489444d252fa68dddc85a7ae22af3ce596384963a9118ddb348b320a33adc9c48cedd59bb63390539901e6b6c6ca2deca3799727a1817d8d044c28db060e14bf5648c8dac0529e3870f10d8c844df69377e8467cd31061329ef4eda2e7aa3c6236b9748ce94febd624c2a89e8466c58e2fa98ae44c531157f54893c684daf273b74654b362891203307e1afc1944ef54f224197ba7d3a5bafda5d128923547c839a7ad2a68e44f2ee6b9241a6886f918dac95c12cb00189c4b67cd9afa8192b9a47248878b3cd1ffdf9962392e4c650ef58a2d9616e44b2c9ce519b3994f68911c9317eda672a333f4b5944d297a8463f15b4fbc7ce5011091ac2b5db2ca66f8a2622d952fe9ca6b631aa644424e7a89bdf52fa5c4fac3b44c2ff854a775ee942bc91b53444f2abc595eba7531e2d85488ad7196233ab377f468884cd78413fe73237c34124a5649fe167838c234741248a857d545f4d667f0622b1b293c6a7526a1b8048f8701735717e6a7e21407af80f1f63fcf0811bb0f18704953fc5cd412f3f25cb59f14382c8d4b87f734a94b646d6bcb0d18784f1301564da9cbb6f980c1b7c48d27673f3e1c347c3de4392a9cce9d154a38e86fa001943ed0336f490ac1f3f7c4b4ff6b2e78c0336f290a027a34ea98f711a2a2fb0818704f394b5e42e9bb8cf38639861ccc78f13c444c0c61d92c3aabe6e1875cb1919f2a34cc0861d92f24533a9a229a71c2a6356213ec40766c0461d92525ecfca962b6f203f78f0d0830d3a24a7dd338f1d19c3726864d360630e49413d77bf3d97ac9acae4905ca637ef594f27bd66998a43e27886e93fb3f43a42704810f5a5d944eb865bfc8604f99c2a8c25936fbf0d37246cf21f3da1c36d4c4a23eb3e8484a118071b6d480ad7ec96c4b66ed02c1b927ac42e98e51591d790e4797c4cd5680c63393d7c240531a3470c800019634f043bbc30a633b0a186e4947e63e2efb55942316ca4c16ff7647153b05e9fd1909259793d7f9530bfe80d6c9ce14e42a8a0aa524c6a064696696dd752a2eb3f633300f0818d32247aa5b47c6b1feb37371b6448b44baef143e88d991f4362b64c221b762b6e6e6d88217184744fd661e51d0c43c2c5d992f15da752ae9b60030cc9a35383288d8d41f6e947c2041b5f484e16349c560fc2539d5e4838b9f1edb1b4b878b60b49e1c4fa5daed85f137221e1e5322b5fe5aedeec9460630b091b2b4ec520d4d3970a6b21f15232b74a49cba93d0bc9a16b34574c8879b260214193b44e0d252f566a0786183d02a0041b5748165d9a64a78fd571638eb06185c4f41ecc6414d3549bd440d8a882ea9fefc47929cb6d532171dc63bcadafb975680a899a69aac4a8f2d05f4921496f29cf974e7cd0452151cbb362b0132696e45048d23aea4efde5f34e7e422a9784b8f49adb2ae7041b4d480a8fa6dbd94ab996aa70b0c184a40fbdd934ca5d872b066708bac1c612f4cf5af952ea77aeac12da91bf4c4a26dd3309c6d4f1a2c8243d844791909cee633cdb5bfd4cd236d83802fa6b44f67826a56484b4dca9aca26347cfad088917d66ddbffe737e844d8536c31f1ffeacd8eac1912d81842d29f8ee371d172fe7a3f7c1c217d76676778d91d6c08212d551936fcf8090b0a02cae7e7c4a8ade867780c7af0a925c10610b67011d36c29c86c251555593f99d19f31341a380fecf06287f91828c821a34c089021c72cc2c60f92c285e747fbf5b41c3c4348182018418fe163c40b1e57b0e183e4fc94e1732aa17c34b541d8e84192de27ab52398c78311d2106860d1e2407738d5155e5f449518ffee1e36d64881916e81f3e32c083c71162357691bc7327566f69c4923cb236e4878f911e6e031f659829d4d04552d4dc9a4567ce3b27e591664ea8918b84dbdc5e59bd2f9f84b848d4dbb81f3c8d765dcd0a356e91e4d9359af3325b25750f333bd4b045721e55aae2458b91ae153ed4a845b2865ca7f3b16991bc26ef2b9c124f56a759246d52f374716cace7934592e68bcb95a64908bf4c146ac42239b3988c5d9a84909ac924d48045c2bd7c8a1f33cb65505f91b82932275b398b913222a1862b1253d6674fb2936ed1502b92be928fea7fd9f1fc6145f2a5e47d35ab19eef1d92a92927f2653396232545615492dd67bf22e6ddc13a622514345ec462d9cd60e151509d6c94f9c128d1befe3427047181a3845e25cc68cf6ccde77b6291235638ed1b4b01409b61746db74e86cfd4891704a76ea4c7165f36d5ef0e031249d2064588d5100f1e1c5036a8822143540d1801a9fe8e123c8026a78c2d30f203f7c04b180a71f401250a3130aa8c18932cef01830a0c62668e02388054e000206d4d0c40b5e70c278408d4c60a28c05d4b8c4016a58a207026a5462003528e1c300352641801a9210408d4894e13e0a5003123d7c0431408d47249ea99f4df1bc94991c91746dd6959b41c853bf11c91d6356d0e13a277a674492f0f0d0e77976eac28b48b0944fb78c6ac5265511499fd3e6a02a6e63ca2422c1defe7d6d946bca8848caac19e46e4a1e2269546f6ff29121924e583c912d4dd61f2c44f2be257f0b3fe252120991bc232bafe893315c89834810fb167117d399752888b552ad5ceee50291dce1e4a924d37eb56c80481ebb245ff152ca49e90f09f26a639acf9131ac7e48ca1c37768753e9999509428d3e24afbe099997f7b6e33143a8c187e40fdf20d3ba474d9b1ba1c61e12dfb654104a63b83a5f0fc939274bdafa275d2cce43525b859efed0af381a0f1e39a881876435f9cb9bba648607dd2129dffa9b0c66733947ed9020664c5fa6d6e6fbbd98371030906bd4214945e54d177f45f54cff4103203d800c492bb3400d3a24e81c95d3e6ec27e4fe3924dc58881d7fff1b4fcb21d176c3a7ab364b4da73824dac9af519f794be70c1c12d353dab07b2763dc242f1862f4f851e30dc916e446a5d1a5b2999d6ab821a94627ab74f7667b1b92f4a652796e37e64e3b1b92b2ad2fcd7b7eb1d45943e266ddab54322de98c5143924ee1d927a6e9dad9342477a8143dd6c8fb949435d0905c169ffbaba566d3c42ea8718664f7fdd254eb78a7773324754a95b62b64d2664a6548b4d92c1762f1744e860c494254cacbf1e1923c8d2141a54b3188ccce69db1443d2bcfca68bdaa520bf302489f6cffbdae0f2160343629e884d6eff49cbd2913d35be90343ac6b72b157fc7c291b51e638c71766448106fad410d2f24edd5c514722d3498a70bc936523fbb9e7ff04bb990a0f9738cc1dd3ad564a95b48da523b566e9e21e2d742721022438c0559fe199485a40ea53e650e7d42f48b85c4cc2d1dd90a5ba374850465c2bd9394199b8b1592daf407df68615464578504a157dd3b6c36bd7ba0a1061592c2767fe6d4761af78eacfdf07186b81085408d292486178d41880eda83facc2a50430a09426e7e93579d6452711412b32d5727bd2514b4d33a8dd538e19b213f4e3a26e0336a3c21a992a67879c3251bb58fac09015276778690213f3c831c325a50c309499fab25ea1d5a3b8c359a90a0db72b8a0d498fe52332149d8b505ed4926213b2f215944e78605dd62f59511a38612122df7d6e252daa6f49390ec7b6db131efa3490d12924545d5d8501f21e1d328bf249328fb0a1a21693658cc6c4a152129cdadc52c4a4de5132242e206d11bc53d262df31942c2cff679568eb695540889a2449875b8e4c1728290bca77c84341545c58882ec510308499f2a598ee6a2a2dbc8670809030c317a9ca0c60f92a48987c5ddcb0f1f580220437e702004357c90e09a42c9a41f9392cb21cfa0460f8a0d6af02041534a297f9478edde9895018d5d24bd56daeece86574e1927850c09424317af7ecc7a1baec534bd5ce8c1346dc5d3f549b5233ba48c1d1918c10e3e1ab8485a3729dad2be870dee18346e51521a3d69750c47d6d436c083c78e30bee0c1e307101f43aa982d1c1d4c5816319d52d2701468d422e92f5ea9a8942e46899a062d922be3e66421934aa942236b6a25a81be2e3878f1f66f47074c621e38c0c27c304346691983c8ebc2044d345b1659178fe232c5aaa943d796291b4398797de20f37f33b048d097b3c635a1ba7ccc572407154ac61b55273f225724852c792d9ef5bc62ae15c941e81e3bad4c39268d15c9d12a09bd55dd41837e64cdac58b132832323d5a0ac2239b9584c4fd994b4a039430e067a181b68a82251bc2f26b959177533e5c010a38718345291f4264b9e5cdacc7fce0c3123c8103340808ac4d49a729a53a11d93e71489a682a99adbc8ec569a2261b54307177d2353542840a3144921a45f9ec999679c49919474e98abd316ec91f45e226213cbb76d80e21d4020d5124288f262b8bea1854a74391a4fb74b6503a64280b2892639a5e26a931c8b4f413096395935a0289674ae74e9f3985a7700e1e24497dab0eb2fe54e565170973e321f36a5ccee5eb22e1bf52862dd351acce45d288d1104be64954e7709134f241e9fa54e1377fb748acdcff49fcbdbe682b71d822b182e8bb312563ecb947d68a80a316093aaef36d7d9e1689f615bd2c1d010fbb001c01c72c924e6b76f98d3601872c1274aafe9495aa47476d642d1649e1de92c6b8ddf4393bc2d040ba19639c19240f70c0a2d64b59ef9bab0b03c72b9254d62d63aab679f028c30c872b1244a6f42563377fed6664ad87cf600c20cc65280a70b422b933ac09d9a73f08cb46d65eed033c78bce0878f1e657080078f1e3c78a801072b92ac74a36cf6201cab48102ee2cbf6363d86f80bd070a82261541211c23eac9c0c9732e0484592a896b7d36b962984a8484a3a0615562a44f69b7b384e9178e2daf2f85a4ca9c311c0618a24a53eff66ac8e0c384a913c7aa365f7a4c5119b0b38489154f9b3cda7f4ee622930e0184572df6e59cb07f9ea6c64adc776018728124fa5d64ab2c55385b204aea14834eb8dc994fa3d2c05810314aeaffed897d8944de0f8c477a192f29049fcfcc61309d7efc1721c2d8e4ea8d1dd445b4b369acc8c095d97a61f3c838a58308183138941e6f8bf398b97d1ac81f78fb31e7656071c9b484c522b5fda9c9f7da389c44cd9f228b5ef75e56622b97425f9676f6a2e8489041fd5f92cec69f56c5e2241f6fb5ad675e6a46489c458a1ea34fa27fd901507014725929458d75325549690274a245cae3f25747812c9bef23e763aac55e54822714e5c08bd74bf504d249283d4102db79ced164322d9e405152fa6e4d6461f919c7f2af73e77db748a2392554bcf3b3798ce1e3722b9736adce071d532891189ea9b5e5937966650c1b18824a1576bbc7b53b056d707381491f4296839e5714da95c4301472292ac541ab3b18cf9c48488e4eed1783ace07933f3a44620a9b69b9c28629e53144b259d0d299ad16453385481695291ba6553f8c961049ff797469394f11251d447230797742af2988e40c2adebdafb22911062261f3694fc9b56425b10022d9926b05fd249e79fe213974d4f08b7ada72eefc909cf73da427193ee4a70f09166f9b627a8e955f3e247dd29b426e470ddf590a70ec21e983284b33b2b62ad743626ada67881cf1aa7c1e929330b59753a624a2773c240921c74726cfa7e2a9ef907427433747a8f514b643c2ace6ffac17d52141e97cf397ef438704d5db7ce2e1994372a8b5fa94bbabd63772488c9bad56e4760e9e9b3824c694f752f80f0d3d5238248b363dcd15d44bbafa8604f9d1e5f1849f2635dd90a8b137566b93a50ec23624ff577b7cdae6fe0ad990e8c9a4c6ed4a9a7459d690a44c5ec7eea0d7727e6a48d4f5f01763ee3e7b2f0d8962d94a3ce6332e7b68485c35f94173362c577786e454a2357dcacd90dcf6b12cf5fabf598624dfa02956995a4386644fbf29986daa5b660cc91d843ebb8d4bd94ac3218644b5b2eb360b269b2c3d7cc8b130a0b11acb2cc9bc8bbcc7f6ed6ccc73972aa81ec00186e450aa3cdab8b97c0947d67ae4179263c4e612321eadf284010e2f246bcce9bf7b42adce3fb2d6037ffce0c01d0d8e900fe0e84272283b93f94ee5e8412e24285d7237f57c25c821030c1c5b48da3cdf54cfd551a3e442d0ec6870847c81430b099eb2e56026bbeab3d9011c5948d01fb56a45c568d9a59135be20878c62c010a30707706021b93ba88fc6dbbe20b3241829e36ce00a492745c5f454a95deb61d0e08c80070f1a1c213c78182b2487d8c5baa8c7aed96c159272b9ada7ce59ae67c110a3c70b7050c178241c5348d0e93477a7cba758f2c6218504b92636261590213f38e0051862f4781c5148ea50f31ddf628f5b2a060e28248ff8fc79f4daeddfa9078e2724ed55e5ab960d8713124d3b7b143d7273c8dd84a40a1a7e2553e9a4fb6142623875595a99d483079790a0417d5cd0ae1ff47a894309497925a6a9fa373b880c1c49401c48c0cf2f5bde136d3a236b27c0718424153407993eac88c6130e2324560895e526b45ec9f966507080a308c9314c4b9cda65bc6888902035d529e9bdf67ac2212497a95cf14f59fb524f07388490204fa73ff9526139087380230889c9d38605370fe24c0d8424119195f67468da577f90a02d6c674f517ff45e70f820e964caa41bc344d5a5dc00470f123f9a481326b3d94ca9063878902494d4506b294ba8faec227994bebe788d8c3b75919c47ec3366d505f5331709b22a329c5a0e17c5d7b74b56aafb2d123bae8d75e5d916c97562d945da09cbe1ae4582a8912d42c654d1afa545b2ff874ef56bcd2c9273faec68795a5924658cbc658619f5518d45e2268f2e7341e94ad1844582121ae396f09877536c6453c89020375e91ac71edc445a6600e6eb82241651d110d5131ff6d8c831bad484a19697232588c9da921c20d5624db47d750d7faf9cebf1bab48ce9b1e6b66779492bf0d6ea82241e47b2d9cc789bbdc8d5424e9246e33273956953b40b8818ac41969b952888c6df62992622d2c854d415dafa607374c91749a2e3e446fee9a6c7c70a314097b6976d26b4627719322594b08dfa04e671449493c6acc15e5ba1a333bb8218aa4b829fb4a5cf4e5380a45e2ae8f8e85a8eb741a0f6e80a2dc7aeff48c31e6a470e313894f412799ebb745ee6137837bc20d4f2406cb71f3eceec7547d2712f4ea080d73318a26b9126e70223973fa3e3d3af5797e1349722efaee4b773ef49a483211a1e1a62374d59389e45cdeefee22fd336e3091a4ee438368c7ed797989a4cc568d17d294d0413bc20d4b2465514af996542d3d3f196e5422c12e75f27819a744827cdc796a8e9bd1927b78b831890415311f6274fe52b64b2251acb6c5add5674f1389e495f534172ae5ca17128922723534fc5c8ac17d4452d2bda92e8c08f1204724e91352338ed5a720d34624e6eca8999e8316338f1109aa7359846d85f1942d22c9acaa720e1b8d6a2aa38a1b8a481add7afa92098da1831291a4bf595f4f745df418056e2022692f08ab4bef187f458748cc0a931da5a53f3644924e17fee45aaf05bd0b91d87126c49685d31d674224b5e8d89ad3cd2beceb613788c4d09cd36e88a5d5d80a22595547f7d37cd21c36d7861b81483adfb424dc825e1c151009baa3cc2c8dda5fb2b8e1c61f9276e73c744e29c585cd0f89b132424c3786d5bd6ef421f137b7bdc187c494793695529e2f9a74630fc6430f89d1475f7e4a15b1a35c8bc48d3c24c757c6785183c5d85770030f89bf239fe4a5dd3cdfddc1bc1e3b6cf6b452e1861d12eded5258b48f0d7212e2461d92f57b6d4f9376ca327be1061d92ef54a8cb20cec4767c0b37e69014d62eb5522cf1b811c10d39245efca84b9fac54b8e8461c12674b8ed4a89be54ee6061c923e26f9fad29e4bd90348973724e5d4204f45fb0fe39f91b51e403a81dc70431fec2d2ca51ce3e76c43e267b88c712f42ff5dd890d8691fc2475b884b7d0d8916df212ed9a7243aab8644cd69ca82d6a034246a8fba86e5e9f833a321f94269aed88ba1cca26748cc318e1a2ddee599296648502abc749eebcb90a4792bd56dc66fca111992847b256d9b9292a3b34eb83186c7aef45ad29f6a6689c11c759f825fdcdaac85c1f4c12b66753ee9a3048636a55316ca3305cd17926d6e2b5f4dca077dbd50576c1619d9f69ec42e9c6e84097553195b3b17b4cbdf5bf3224e8bbd85e473d7ae91d94653b325dcd042c2cb065711eb8cacf53843c890d5c28d2ca4a6b2a8dbaa683e168e93fea57fa5738524292e322283d2d0ac9d19073964942adcb08299d7fd94bd88edfdab80b8cea482272917ddbc4185b5f33f5bc898cba3e5c61492b376ed58920dda3597425298132edf19ac4493ce3842849c24e34614923a955dc865f5e8cd504892965bccbd934fe871c309494196e97d1c8ba5ae35214136bb5356fa7eb1d2070d70cd6ce00613124e5acdad7b90f99b5f32120af2fec6126e2861557023093790603c5a70e30889d134af3daf2a2d08bf70c30849e284da8ad5b0b7495e84c4ab39fbb01d4f53b827841b4448eca4facdb5ff1d617cb183070f34c38d21245995978f92a7a56cc20d21249fdc269133426e1643c08307136e042179c5e25d8cb081905c9942e86841950aeb0f12d4e53ce71c261f245c7de568e1b94725a122dce84182bc78bf3f71964246e6c070830749a3d72d9d27b91cd3ddc52946cd2cd645c2c7d550c963c7134d73613c70613c6e917c69db7b6ba22d923f2635e13e1febf2ab453dee714f98e774591bb4480a9ec26ed4abb567701609171f67ecb4e7acf6ca2229f9e78cdbf62044bf36629198c4a89e3f71fa211a03c8db8045512e3663942f0db31a54c4e8d43fca74b42b0b72c82835b0f18ac4d223df2edf67363139f0020783070f327cf0e001041bae486a3519691a3e8d8c8666012f7654e2630431238c1d21f86287eec0462b92e653a5142e648530252b9232a9efdbd2b626f25b4582b8253cd420802524659e3ccbabb6f95317801292c62cdd46ed6a6c0c024842829e1759325d4cb5962400242468b7f61ff1bf594924802324b56c98cfdb1ad5a3a905011821793645e4729bf9e74d11923a877d4c95ad3cbc4a84c44ea65f328f7805010c21694d5ceac88ff4bb5a5700424892a1555e67fbc8da18020842d2a9f1204c87ddb8d3c07f943d160010cca6f32ca9c866b284f88f1f3e8c0d02f841520ab3ca7ae39d739946d67a001962ce10800f925ac393e9a8d98c0af720e976748bf230b5ea5901f020497ef0527f316b748df12ed21584127a7654a8b4c740af0a3a749174492995d36a10f3ed19592bb948acdc983e7e8fb8485cfbf428e26a1b3f213a6ee1031db6407cec0bbd7e326fbe2c4b9deaa84552fa35d1b97583e52c1ad964e73a689114b294e6304d7fa9fb99176a6b2bd0318b848ff14a745d2bc675b248f8b2d8de4906f911532c92af2cb53dc83211eb6091d872a22dc37d236baf48ae1d6919b2346f6ed1bea0c315c97d3a6ed9c88867ab74b4a2b07495a532648c011020233e46fbb803840e5624d7769ecc99ed91b504838e5524883ebdf09dcce7a4aa4810322ec674988e05931723437c9ca08c213ec6183bbcd8b1c38b1d3bbcd8e1c58e04cb7c063e3215c91ae316aaf45312d7da41072a9247884dab9e722f2c4dc72992324bd3a6b80211e243cc00c18e30be106246193f9211ecf062c7171878102448071da6483c3da2f14d9b1219c531c6385e646064888f1324ea284582b07496c236eb358814c96223bc423eeac7d48f2231aecf78290d27d78b2239e7dc34a9bd0961872239c7593169eac2ea0914c9179e933ad12a624fff44725c4faa3f9f4ae6a9f64492888cbf2ee297fa4e248ab090214be8689fe644d2e5465341b8ac9f50da4452a8609e745552561b4d2479061b95fb52a50e3391f0e76f72db435aaa204c24db55cf77782e91dc6b5fb2614b2458c753f293bde778a612896a7927a6a29accded14189e4f87cda6236f3bb958e4924a6797ca8593b219a91446245d5fc9ef924db1489c43e25e6a367864482798777b30fbe9af2239252ccb8fbd5d811c9adbaab394551b12b6e4492fb6e96cfa6addcc488a44badd91c2c558ca645248bbebc224e4611c979ed3106911b6bda4d4462a6c732f5722122e13d8e4ecffe39acb88748f474fa36d3869fc6d61049f35a23caf367ec7c210ebb797e722544c27c30fd39efe5b45b079160de2bb22a664ef7aa2092fd363dc8e86b26460d44629013dd3d2542545440245ff2b079a3c99efef30f49da62ef57d98cc83ffd901c2eda881b55e9ea937d485ad3a4dacb365ccc241f1273b6527aa1939cda710fc927cffe7a4c6d67473d24c798e35c65aef3d1310f49e9a583a72bd19436e241c71d9282671c8bcf1a539eec90285e9963deca7b845887c4b84d311ea262ae60a143829529b3f3360d9fe790f4d59b4665fee6bc72487e0fa192b97971481231177ac48443c25f295d2a8d8cb0cabd21b9d72f26f5a96efc77439269368fc973b849511b74b021398c9acd1c7329a1af21c1764cc9fa6067a3ac91352b26021d6a488afe7f721d45bc5c4b460f7c838e3424d648d32976e73d68660d3ad09018ac726c4b7ac1da534810c48c760c0431a3bdf70cc9494dc6ca5cfec81a9b4187199234c5d8b5d2515352e93224cd85b34c3a6a75273519922aee3d9836d1c9bf44061d6348aca4b47e9985d279471b08e38b1d49161d6248fe2017c56438df93513382981e41ca381d61481e13fda1af3ebdf30c86e494ca63f4d5ea8d6f1a597b1762fc85c4f47fdaa57365640d9dc759de18747821310529ffa74d87702d75742149c56aae7453613f2947d6ce1032c4b44007179266efaeacc7e44955a0630b09e26d3bd73236fdc8c67684a1010c1831e8d0425207adbc319dbbc728ca42825e6a48370da7b4a35848fada4ac945be42c2a80f77b2f6c35936cf0f10980e2b24e618dcff64dffba9bda0a30ac6ac216b4973a6572a8ddf519e973cecd9b8c38b4c3eb6113aa890bcfe312ba9f41ce742314840be80828e29247ec65f9259e3d4a9ca8e30bed851061d5248fab1684a8d9cbc105a22e88842a2e50771b1e9bb329396a0030a49e972953c9ee5e4bb3f21b1fbdc3f3ea3ecbe4e480ea2b4f6649df6be3421418ed01b663fa5941f624252d82fa5d6d4aae3659790d4b31f963d07cf41a84a48d2b725b64d6e36aa9984a4ea50e1f3c5fca68b84e4ac98f5f75ee2d4c319e8384252de4a1d845ce5dbe84648aecc558be17111124ffda5705a5a164a4a84e4f02c4bd1ac2b864d879058c1ebc2f6898ffba410ee94bb3796ac83906042fce8f0e71f44884048cef9a3c3757d5bf4941f246c363bb1abd4be312b3a7c90d4733a327d672d6b75f42071573de8b0e93f08197be8e041a265166521e4768ebde4d845623499cd55a3c80e95d645a2784cf28295862a55ca4572090bb2d253c84a318b8b64edb8aaddac5267d15b24988cae4dfd2036e6cf1699a316e5102322e4a65cba7f0992831649279a849865a664529f45523a3f2b253fa3e787649170d69d763a7755d24f8e58245f25ffb8d13a569505168917ad8312a3745a763bb2d6a39431e47845621293f1f75645865319593b2ce47045a29a1aeb6c1a6e46b676ad480c9afe7444a4261039589154963965bdf4638c0222c72a922a6bec3c32464cbe574562e54e557ee1e6d49e8ae4987b65d48ca69444db871ca848caa1bf9a7ac45d30ed144941acf4a99ca23d5a08e53045528ca54258ffcebad974c8518ac47cd2b4728b4c3234d8630e394891a0744fe8d2973527d78c2c8ee418456252a1d35bddbb938c552187281244dfcbebc7e3bf89c8118a4413baea43848a0a9bcc018aa49c63b4ce152b9dd142811c9f488c4bb7db204aa6b1bc271235352ceb560e5ebf7722f14d268b9e547d90f3e144a288d53c72b3b5a8673791204255fcbc6617b2d41070218726126459ce5a31a3287264c22463bb72aebef8ffc85a8f1e7800f8410e4c7c67163aad1f59eb31a40c20236c39c8718984cb989774f889dd1c8eac197b22872592e47a4e2754c6778e7125922da58b59dfc7ae662991545e296fc54bf35d7012496a2968ef9cb493a78d078fb293c82189e424949dde4f9f236ccd1189441b4b513a691f12c969b16ef45b5d1e91ecfd351e66fce4a9100c391c91dc97732cd9a7217dd34624e724c358db09cb6c3b231294299561274b4779691109bbdbbfa6e9c7c2da8a483c4f66a3b63e8d9a4e8e4424089d35676c88331dbc2ee44044a2b85bfc689f5590e310491b378e28a13e16ef4d218721924354b6eee8ee9aa5b31472142239354e55d968cd1cf32307218c478e41247e3e154b6e6386b2f8c85ab11d6168e042904310c9f1dfa363f8984bf734b2e63b468e40245aa64aef1b351e20122f5850223fc93f8fd1c85afbe8a1f9021f65cc20c71f924fe58ca1a26497cbe787440d9d3376a6d8235cdd32e4e84382654c7bb9a4191b6464c8c187a40ef5b2cf72b283eaf790a4e7d47bb80677ef911e123e5e692e95e1ede3250c39f2907ca5255af5734c554f8f1c7848caebc963ae4b6a2a868d0972dc2169358e99b08a192d34bc420e3b246e6a0c97368a55ea78b1428e3a24bf8679ab3efd9cff34b2864a8724ed96d94376fcdb741a599b438266b5f60d2f574a86450e392465691dd7cadaa33d3cb2667701f0418e3824096d9f3d64f3c9c9f020071c9283f74597cd7829f319591b03ed90e4412c1739de909493ce6e5a961c19946e48ce4a42830cdac43253da90e039dc7768ab5f758e0d891a9a74e915bff8e84b20c71a124d27f1d86cf92c5e5a0d495a7954799ccdb312a5212947dfafa0fe83501da2213993cad449ffda4ba99c21c94ef3821cd118d139332455891dd93d3716968a408e3224a885ec97a5aa12f5c9907029c9181dc352c592194362f897ceeba48a21497f59baac964d9d6463181de40843b2661999c2e51473b9074352dc5162bafad293e97c21e147275921542d335d2f24c71432eba5a07525c35d4812c25f4c93de20aea45c5873ee1819bb4f69f95b48964f4134f4e47567500bc931c7b855e24e4e8eb29094f762ec2e3367b3100b4942fe25f92a7f57dabb42626f87288b967332655648b4124d317a5c1321e22a181592b3b6659222d3b226cbc80d724cc1a073296d25fa2c972785e4dacd0edda62e6f2d67e4884262fcb5128bbb0bddb6970185049d82b6b990c12724c81f69bba24d98f6de094979ef2fc7189ff46eba09494a53e3786dce1f221392e42931aa328597f4e012924e5cef5a89c878ba2821d9f3a554ef996b20471212359aa67788cbc8ee909038b2cfd297bed0e89919418e9054d262c3a891119253f6fd24467aa6b57c1152d263ac1462d66522aced769e9f1ac2ee625659c94c5bce84e0fa5f6afb0f5959100e2ab4ac72aabfbc66c80184a4d5de3291715d3dc63f4850273fe5b82573176a0e1f30e252b693b9336e8e1e048e32a82470251351200e07c38030000c088488b5be01831308001834260d0663e19058e0f6001480054c382c4a3e2e1c281a12160b05e27128180c0402e2501010080283a06020148a4372a8e47dfb5b30c11637330b5815fb1cdc64b018861757ba7ad042a046c3fbac9e7b2c3ece4335bda879f05fb5b36a9b66b787eceb173e5f51ea627556602e20121790b184fad96e401a28dede294435cd3bc0182675f0ccf7a9bc2efd1007f02e47421660e59886a0fcfaf72bb925a450e063a1749823642402bd5a60fc92896305af9546c0c9fb63912116a97d23a95df3c9ee2a5c511d318955bd7014d91b9d85e415e873a89270f29694c43d97f19b31a877baefcb4931da2c1eab3cf54f0d00fec0a490487d1de573439e5e45746c69a3eb7670faa15dd0fd2f272a4a3512cfdf65acf24dfc859022e7bc03f28a7d9c207245f76fc254dfc1648425a4b36adf33e95f1801c386e903ef7c5ca953edc5736e0365c963cc0f240a40272b94a5afc8d93f3173bc6a728eeea35a4e6acc36193ff4369e15d62937646725f0ec135c72ed2b01a04d39bb705d7f5446e18d09d6b027499f97a4d2fa260781c19b848aea39dde297482a1c432adc8014a12dd142afff157dc03fe787d3f743856a0f85a13a8a59680bf0b70c71698490aa379abe7c9daa32b85c1ab67f41c5322b8d18918f934250ea9c222dadfc9c1a67aa05dd709704d8e54fe3c821d23ac734b09b14c910335ac88ba4ced5fa4ae5faef03401282b1afd57333abb84bb2e159a8286ef9c8faf52c6d518029fdee54f07332aa2d5359f63f8b9f20a265ed28044a44c1d62480cf793e5661320052f70bbc91856b66ec9b1aee513bcfe9ff81fa8b171d910f45573832b544249bc16e6b8621ff7d19a5ff124cc3308897c7c51e49f2f58f6413b98d6825fce934633ff675dbe4ec31006ef8f00bbd174c07eeb848790a1e6100257f7f0eca80b4b45f832e14f04de55763108cf1db40eafcaa1473e6522a4f71ace24985b062eac650469ed3f2a9cd0b2f29b13e544f3be1c0195657f6205f09b48af529144e24c2bae2ee81fe89e0af2b2480f79c83ec56dac7e28c93ef7f71895c353fa253ca99f273ddaf37e46f94c40ad9c901357ea51f04036b185c63110840cefdbfa7585c1e101bff0887cb1720c5318021cef12026c339ae461e72bd46ad5afc06078513720c55986fc2bb5d52a34360c34cec2e00509363213720ae8e1c4c6581a9a237e4c53a5625af7080ffc64e915c2d7819f1febf2ba5ca3bfe5ce554381865baff61d828287e2c4bf386339791054c4c23386c6420509f0ca75809bc758e5773c442a0b160bd3d78a206f2036d854bf7891aac98e160a106260b91d6e2b3498028ac5f3973db23ec6bb098d307173e858b3890e1237c949a52b89c2bbc936d7ba082966025d077a9ad499fd95ed0d96f870e868c86a86915695ce58cbc5c232efc67496153317518616bc1bc8776c7d9e2b6452495afad916f0bbb8ca3d7db408eb700ed38474c5b440a3e371d45eedc41b263ca22e0a2c880b7335c1a456767e1d4829223879eaf9f3252e5bc7279ab1b32213f6f4d58b9a28446dec492d6c2959d8515aee8bf6c4a76c110395d51b7d5302c56c622982813380c98f0fef60a9cad42cbf2594ecffd9d3a7e7da44b454561e304a6e7db2fd85f8494a26e88620a30af4e016976127649a529114eb2e29c707173c14ab96506e9fdb06212e55a6dfe70560b88ea180e0c22a2b888bcf99927c88522e42f598f902063c00bad93b02332519a9519cf780582455eec801d250fdc5e3703b162e9c82b5652ff4deba956ebe436b1ded8777411a247aaf769facc2a42aa664982954e5e18be80b1fa72aa3dd7b522359e317a50748027c8562b900e26cf94c5dfd7aab807464772afb489292c6c1444c821445cc4ab4972157eb5d185f3b1350e61fb71e2ad9c421a412021ddc2b66d874a5e93a85fd82f70bdf2d95bef0b16941c10a8c41e099c831a5cfba358e932dbade27ce930a9525d553f2897ae3adbb76e756477960e35f45fd0f4041aea164178c299efe8b42761528eabbb686340d380a6842802fccbcb55ba24514ed839ca3728407955ffcca70cca5ccb7442f846d0cd3e9668e4bd9e62b2a7ee16364f39d739f8309842f8ea6e472f33b42e5522cb1245406c1acb8a8944a93daf4707aebb5a0a7b5b3164b99f0b1faac75193f58e0327234a3de0f007aa5c4ca725483c26a9c5acb82fc2e5cbf95452fb7c791d96cd67fe8a71c4a4cc55155612f0298dbf65c53522cf3f02d99bf34375bccf30063dd300c4ed6b44b3b2e715417e4271aa31a0d374ab6736813a54214b6e4185973bb682a8c6fc8aa7141cd743be40b7deea4b20f1de1301ef21993ddbc579268a0501898740e09e62cdd06e8682d35bfd386d404e995ae8799cc43347513e660b2c0ef4b036e36befaacfcc01e93fee6c70c37d80f049f98b6dda7a06583e31463e00006de35203698ae37c7ae6c98e55b449082152289918a213eb8a0851d29930859ba738758eb030db07f475295fa7a39fbe8cd8e80a267460ce37bd5930ceb897f135461764f432e3ec0108b56e6d6989a78786542dd34c7f78a918647e9c5dfff37d752c3df56c95cfc3fab36ee1f1d13b37813a461541ff64f3a8efa84a919db548a95f1a724b90d0f12b4262a4bbadb405f939a811c16223aea13d480f0e42b8b9ab42411450160f221093bb027a45e484a22da07f524a08864426cf45d36c93ee49f33efe511ea48c7c1a180463d825749ec8139e3d00e6dc1843a75c67267369ae793ae36532af9eda91e1c7217d663aa2f8df6916747b61a7980e1a19b4ae3e8d01f7c9d064e153b981897e1bfa53089088c1ede82c31d30491095b24ab50cb78e44a12b42df2a9b476f00cdce0034614f425f385890d198a37d1e0242d24658815605aacdbd878480e68cc502cac84a961152e519dacf7c276a0c71120fe92d8e3b48362209c8028af85c2a23c3612aa36a63e8b51af40cf830d0db4844beff43035867b8644dcfdc79360246fc571134a5f9116be8069941e5708330589933d4275ce66eea30c6be96df40657dad5b59b8f833d75e7f5e05ff70887efc13694a84086093bec5e48592187529e5acbea9af015a0b4091c8b4c4542cac29c1c30044c1bb61a818375eee204c3805acfd95b3da64f3f2f72d94afb7f7d247b01f20740bb8a0aec2f2417e0bf0030e4166029b5d5d233ecbeca918a72ae0c0905dd6e574751073b45310227c85aad8d112e9bfda9cd3aa3d51c3bfd694f3a97469a490069ce49f8391708505c6f523accbc13a56315f8ec0c09f452c019b11651202087093b4713bc9bd28b4eb1db1048086d221b21d0a0090250e67ed8efc648f7cc5065c0a7b68113c5e4d0845164230a6b62cc17cc106e48ec849dbb13e2601920d198cd10cdd90afca4f2df86008e3f68c6660ba88a15481980b2be829250795db6eac188347800001dabe6608f8b57b801c47e798cc195a245613e858461fce8b0b8ce8f5696e5b268d69f86ff3ec4303cbbe43045c91d7f2fccc4f202988dd62301f60730b9938f2eee52787f2f4f6d6d39c605cae5f1ad60390166d8e6004a37689f4871a8c16182d7ffa35376a0f2a829b0480b2d267ce758c5e69d37ed8e67861b0683f8ea207465d8eda9e35bf40ae3914882a3f1d0e0016811f270d63aa530c5818d958cba4ed7fd06961110f10267a2827129fe27bec55df7580fd2ac412736e3f60d6cfdcb854f82a91084262c090c54185e5c473617325c9af8108b1c43e4fa780ed82ada575f69e30beec371822170c2a205d8d15fe4741e4630c717bd6955de3e5a74434f49a3dad065b1dc219ed6d0de229a4421d7942ac0932e7f10f42f8734cbfde5a056a466413f26a6911f1021dd7c947c40b72c96addd8c95bbd7356dec95a6d0e6651c3683ddcb271fd2231d35efc50ee0555f3f71b949af762021c3dd20b4e52a801e0ec9a112b101e651240275cda888325e8b7dc304ee0326eacd4bc0335beae5386d8daca84521cc7c25c3b21ea5eeced3d40ab86082646ddf2e1008d1be8cb40d0d01a0e929d4e393863095ff920da8465e300b1f67815cf542acdf96c4612b1afb2e645059a8dde01e21c8e20e912f48ce1c1d25605df2b0014f073ccea84df50b60f52cbbdf8fba49c74217bc476f54d0c60aabf8e70e88ef147cfadecb07f376e454bd8b3b686e5485cafda1f117403aa66dcafb4aaae62f2c53ad89aa621fb1c6dbaee91bfb82b396121e41d7ac7a9600efe239504502c6812fb1ec54442d670a83bc1b385f70799a43a8b20e7001811f4334417a5560bb72246f4437502f3f25aa82517a6795f17ecf4c2db3fabc384de7ff65ef1043bdbec3f29cac5fbc2ec2176f2e265e22c68bf280f7c86e4f81bf97ab288188ece0072b80e4db532b4029690787f8e5ccb7d52aff45feea9ffb0d2ed85a40e31ca5d23c9cba4e86bbbf03dcb18cbf435d293be2b0e3cd99d873074ae5c5849820f01b69e8251c6333327809158d6c59399fe45b0c419d0f49bac98cf7e5b10cc0fe572f39c9f3740ef18926235548244a396a8ecc23bf49624aeaa41f032aab67bb753c79c216144d62548b0bc66d9af91c820180f1d98539dffca0059c8a2d0b1f67de1a67822e2f098881973ddfd37afd1e157bc01c02ec296a8a3a714513dbf54b3ff53c235a0377f3678890fc2c26ac8da07d2836753a7a6eccbbaeb297b6926001e76ad0f808489501c62d8116f6ee1d0d79f2647af400df4db2e01b847940fb41078313d8777550a09e243069abfc015597d59b5adbe4fb4cc000f21bff925d392d3c3954270b547d032dda3e318f380178f93ca180df3c79382b09d8e830800256f92249f465d4b216fa91acd4051000814a86a7c90ab379fb11f5d084f933ab7bd5d2d8e742d703ac9b890fb9889e602a55770919f13521c1bbfdfbc7062c6b8af4d5d282a89ba047efc252a42fa3d510bf00b82ba903c035ad9998f069c94c2019fabb0d3ee812e8e89fde5e51f7402feb0729d45e2df49488ee6f7a142c39ef66314d8d7691a4846184100d8f1e4ecf4d670f8f318227335b011918000a656efa31840d9f9f88083d17023482600362911e31d2d9583444b0237ecac3272e27c83ae7ae08bad14916bd68b842c500ccb90ab0f4425dc7182e6d247ec53a1bd0ab9722b4679e74dd10e182f46a7e0620c5ae28d492b4d77066b1db8dc87800188e0600d17c66df80268bffbe41655ffbac42bff2cf5acbb8e4957a1a14e444a13d71ec09c81098b3b28f42e63ef9978e8943ad945ddc30ebb0973b10ad6215309f47501b980f00d8e0c0b27de3751ae37bce6ee115f7601e8a9c07fdaea49f9f27072f908908b38cd03a150160d1dc49dc0153431b1125161591313dd4e025b0155e91f56c775aa125293ff6000bcfe0baa3f42c05837a07196038691208b58381453a3537cdc8e7565b18113890690436962b9709c78585751b1c130c1ca08183202e124dcbf8f40af35af85b415713465f34f62efa3e9a224d262d81018b15813a74c377ee0e0f47cf19b84d16e6c2b0e698f22e9f316169f743212c1a53d8db36b274e272578190d5901fda404f81ad44a2a0d2e40245bfbc5451b2576166562a2a56ddd7da5584f759ef12c30b5add7f75eda65bafe538297f04a16083c89c9e5253945689947c84512324d8cb1f9493f0544806562eb29d12833cf21d4db4494f4a0e1c099cc1309e73f7b2f60ceb9f2311cc2bb147fc694b892a50af635a0e433e21a0a303ad61411cce290b3ac84d795f190e8bf404eaf4607662e4b359aef1c004ee32e5b4318b59eb9486b4d377d2005e33cac584a9c774889257551a4956282ffb0c8850c8c8df087370c53802f99791ccc06546390a69c833909c940a30d1827c94c274206bcd52edc5f035048d4f63e03862e9f7dff7e195ad869e81c3122a835cc5a4a10a784650b274f925e3f92e426d08677be27c89588c7e8d48c0648b30d48c6f58b471910d8844c5d79373ac760d6e71b59e2bc9a115510c764443ed942ce7e381424038d771c197f5642eb3f3c6b7f326c1b490751b1ca44b9b986b085eb5860b24fd364781cc48bcaf02868bfd2bd2cc56a02c818f10c808aa4b3890f00b9515a0480bd09f4046cf87f12daa2006ac80743f5dd6801b57027cefb66b7a675e75f7e00fe06c5dfafef581dacf251c5ccfaeab4bfc906ac95ad5e2ec402387a3b0bbde6137e0b065a896e068323be71b16eb43806c0e0d05512b36259e9082c71416ad704978436bc40a034d663324b667d11858c84b5833f786a7b34fc1d6f72110d514188d1fe7cf916fb47c25b47feedb1939a679fa34ac1778ea42f911631c3b9c103d3a5c2204bcb8eac9e104eff588583548e20fddc1c97d3ce2e4497f695042a20bf94b91561a0ea01d5f478e18c5e2a96d062d89defbb03261548ce104a0dcf77338ffc03e38bd91ff8d514886eac5fb53ffdb1ae1888e8d182e7b2cac33d39c310be6553d8e74879d94d6f6d8d2e15bb2561bc63b48423b3a5cd5913b5fd2aa4838458ee17f9dee4850de11fbbc1f876925ee287c4f22c789afb808d325c491ff49beaa865cc2cd87307b74aa0476416eac8b78cdd444e6841a4656a3ad224d1711a6824286a71896719e46997c7d6ae850b9872d3a62f27686700307b8350c9935168f07c5ffdd1d14cd7f48a64845c5efee90f284d43b5e3028d1974182862fb0513ae29fccb0d2bed0ea8b2b37443d838c0d8d94e8e83002f3231ba937216f6b2bd18b7638ebae5a18e43697ab712c5e422f6eb077059190b0618e2eb2073f1a0d6ca975726161889fe7f902413999e7f5676f370e16e011817f408f31dcc6688625eefa2ef82364515018d60c6aab2f1db03a09063bfb38b0e2dabcc87213260ddcd7718a56550a59696ae582c83a41168360fe6de2e7939e8d25d96810e36802142cb9038782961740db9320e7800c82bdd334ef96f12717631ed60c2b11cc76abc5ff7aefcb38103783c7128784be1daede0dd87d72b0949d59141e204cbb658b2552264e270424763b8e9512b943abe67a1d6efded5c95821a7a9017c7d80a298cecd01882e72e57b5c22b4ee39382905a9bb74cd1fe895be751d4e4d721aaf9341e5adfd61aae0672f52419ab1c0411a65c3761770d8c315d9f54ae4e077581707d32c38b406dc031cb38515e6267f994f8748487f12ed83a2b898c39adefb6e3d9dc92296d5d8fcd4d63cf7445e56f541f831c01f2c322d762d2501d1a21cd21a563cd261418e34f2cc90bab5a47820f7187c02a42b676048c68106840e9d3aaec24ef4f43e4901344f49616e8c72057ee92cc32421b920214ab49b6e7481ca438c2bb0e53e2205c288a4119699ff8a575a7b75984f1a5edf65a6a875022612e79963d866543b61795a4639a5212ddeae23a7236689925481cc65927c5c65ffc6209263257ca0e46f5c44feb6dc605d808af9adbc5f6ad02199b84ee5f9d9ce56feaa00124d3c3672d9004fce365214dc094053b4a2538151877aa0e420251ce60ed0149b0341aad326312cbede0dbd2b621a93079d090ae77c45398ba84dd548d487e1f7014649006c87d2b1064c357c74e52a7e9b41b397d9753c3200ed824a3c51d336c4bd3d51f9200933c7383194344d70599914ac6ebe280305c70b353d1ec2520f44f00cfde183dd3de2983eed47959be66dc191a7eb10dfd2b0d82fc622c3ca19edddb31edfdfc8a18ca87d5f6d2aac303929ea8f847a120320c2bdd2b4e011ba89b7629aa3b1d2ae143c0e2332178d134ab06e080b6076a7e1567e2b3885939724706b2b3cd2d5dc8abab483706c620f9214d5710505dd4d881bb1bd6db70000ffc69a50f4cd8441a8a64e8622314b70ba8e4ba14b5430c597b00264921357990a02eba055e6bd219f0187037e3a6925834492def0b2de6e70f5f6ea06e4eb425938f5ef597dfa6dfce0b4e9926dc045da87adbbd543fae8a52199858e04c7203f76c93e660e7106f2143adcab7f72e0a615ee5e2fcf347bfe2b7f59f1089445c793e984e9a95120b38d61d59f6040c1047fa825c06f730e5ba66b934dcfa77349617dd9286a6d22941bc6352174a8f68a2c4fff189ebfe6c6435134f4dac67d124401f0c6cda7ca35dbe8318068466ae8dddb68027907d1a2f30da11bf91ae68820623a0fffe0e77a4434473a2017094c42f9e33447fbb4cb661aac97ccd9ace7e9c3434dc43d4576518942c4ecc8ca4fe380338b9af041ffccd8926110ce3298bd3383c7b2a0c148b0ea34481fc970219500f220782f4b6a31768f40797405d7089a20397c4aa03815b12fa4516490f637f22ed65b39587bd931466785b4d4d9be47cd7cfe241ca5144cdaa2810bab6d445c0bffa700fcdb0f8ed26a2c57fdbad585c49ed43df753cb13e8e8bb92d43506240ca128c21eaf3b44ae2297f397c49afd4c432fc9ed904bd367ff797f8cd605713d0d1f07c81c259ba9307014053298288baa2b4515bae43a7794a9d41d9a8c3d57dc4ef008a5bc70d28e3e97a7a734459c60aa61bfee77c6ca1c4b99a80c0a737b6d863c755c53840495c70684a25b751922d29ebcd03249f754f8aecbc95f888f4c74600da1dac7e48bae64046b12f331d03177616e83f0b776c57547ea60b5d4c67e958042275e862e87d71ffe1a8d251a323152b15bb2aa75a37d603833fa0ec455e416d016e20e9e2dbcbf4e2852c8be67d8d435824985595d499ca0de668efd13e0305158fe1fad660876b18f6a33c8caefd4180829093089c58d52b0b4b66d4be9f56aaa79a71424092073b7a4edab542ddcfac37e6211b94177cac36b92d8f386ff56afa645f8168590b233bcca52a6884dd7168456d75220bd6ad03b3a6802e337216b1304029048d0a967410c8d458aa0d95e291428ba5a771fb595cdde8c3cafc461e67255cd9297bc5a1c3ebef2499991ce6b47ad1d7abc64d6a03ab0d3990903aa5476d55a3dbec1e60ca7f5de9ab61a3b71354d3a4db8f2e7af25192ae70c9366c5324f94c2a1afe2bc865926321499fe97d01c8248be998fa9e2f198d7074224badf231fcfc8964e0f1f2255d4af37452da4308e4f431e4dfb360fe73f39bc8dc9266f26e4932370ad146d83e6d3ac9a032ae24c37f5f7c346420d6fc673d09952496e40a56b4c6f7de4d0d47b991d6a6a0470ebcb2a588d49dc49a197b83beff3622c2c59f50a9c55b644645a8d6cbd661d2ed1f450b53b5a1f6d0f468e45365af16bb320a4e1f94ef310a2bf19d9c7e553d3a38ea1d4d7ef4c4bb4570c61ead4c1ade6b782a03469f07f52392652fea23a15891f1113abc958fd9db599f9754e3938ae789c91c3ebef58a5cdb1d176d19e359ff887af67def7f47d2104aa6bc0f2a00ff17a065536ba064288a8b33e48c3ea8604ba8a668251cd5519e8873b352db59a022f07b5480a8873b92e8384ed46fc1146f5aea1fa2db3ceb8e1b31b030f0f0c1c47482ad329f745ff63b0bbfdbe4f3bcf6213153e266cd73276969b8fc8a601b542e623e623e62f211b5f347a9494e9ef2362a7dc0ca27f50163e039c059046788cc01390ba0631eb095cdc63ff37730d0a78eaa54c78f0d58baf42371233a13356a932bbedaa80da4e1406f6ca3e5051ef969c764168d13b085590693b35f5af07f5a0ed429917df49a6f0387cdf4df386b4e56712290cd0c022f0313d2c467414d8b76ba6094bcb4d7c7c6779a314d4dc515a1bc8707ba55aef9a60b065d2746af6c91019da166bfbed684b302b894d00adad22537263265a41f1ef00889256702d0bb6928b6c7f439649ab54a2af850017c2392ba045288cca32fcb9dce1823e751a97c563d004c7908fafaa529c08b44aafa2bd44d694e9924b146b0ba59ad5990ab9a1e15768e505747d598ba0fc85ea6c41543ba69c808af6720b9644e3b7f8014e2bcccf02df6b4e4b2a6c2ceedb96000f817d546c09ef568eebdbdd0880e8de867a4d4e8b5cbd203141d58ba61bec705f328a286da93295bdb817e87c76a0f24ee9fdcf1c180f5b37b7a6111ac9e7472e4be6477156b9fefd2334878133d21dee73eb44e0fcf0dac181fc311ec880a279ccf37ec1e608e546868d042f19449cfad2529ad1490284b71b5b00f31049c8aeecf8a1e9d55205495f3c79168d5ed2015e0f75a3dbb2eb43f6a9f8795f5d8ac7796d44082fcea6b65ea6ce06a02fb4a9f369e8782a289f948c738ae35a50aafaeaa078ef50513efadd467b59ea63f4e9b966ba7525b23dc354a2ea3262a1aa82b7f4fa25351581df30a050266433fe499f91e0412c91ca1582988ac5172ac3e648256eacc940627b28b768e7a07ddfc6b17eb7b3a8d0baf55c91211c03e1b0cbdc261513bcf290c551618db453247b9c7090217f2101b41b9ef4a6754b8e525767074be4de3b304f410c1ef85d3d7f70d474a450516c66385e8a9c417cbb8efbe4f5fe96f24260b025cf2747a89b3071f226d5e496593697490ce161ed4ff08d47c2a5e05b7a7ea105734b607703648c982ae42146f58935ec93190302bc222428e3aa937944d711061556c2ccb4b2e1804cbb2a4e6fef022aafe323161204c173b9af5c0215ba272681caf2bcde3eda0cd9a3c8ad6617aac76ec95920d0dcd6970ab59b57011ecb8f3ce1af2235f142e815a3ab0e06c494915dfeadc948b8176fa7f348b7e43f7c3e3acca7e9d123e7a307927f709959f7602bac45db13d83061e3919d33923dfdeb443ea005ef30d38163c7ef10bac65627005259543fb2f7fc3bb7843c9923e410079d2610f113d2d22e1ef1b083038478241c564e3064decb7699e2defa303c2242bcb47e0fbaab3e2c08fa5c152890ef538020003140f5138ac5e1da2c89b71552b3f73bbd50e4b540119492e625a8f84f2791962f482d0f62003e5f844509b81097c75278aa18c84f3c36442206e2d1023b495d90a8ffd56a486146743ee8614e3d65c2431d5ce7b10c899bc0b0662e5499ecd7dfb76c0878886b782e83cfb0646a2c554a34b491265cd9d80f76f1b0da1441647c108a110cadbe071e7370497bc73202848fd4f3ee8c453c41704d88d9f8e411da2452f2caf91a7b44f54a157607ac53b84e5f4c46a7b83f9bc7566fca50db7867a1d222d1500a8f2376e1000b63cea646abdf305d14aaad9e829dcca0a5bc9284e4225953de93660b82344d2867a598d4213d94a003bb556405611784b4735f6023a1a0c1d1b0a7954e8c02f854fbf3d7198acc3a518341298ba6197c66867f2ac6e0c55915091cc870e0346ad7d548d8b1898b77c3f31796702d84f4833296003fe5d1e923d260caac6e1403d5fab06807024428841298475ca24c0ad3e62cc025aaa14f1019652124be00890275084dc056088995ca52139540bfbeb536452ab661429089569e9cc01a58dda2567672870c50f84fe6a1de1da11802edbaba82a973e923d1afd2d51c9662ed701327b3c3014e1440ac83eea644261a451937080b531e2f351a13d3b8b504775cfc9553abeecee931100a8620f4a97f509f88c2955cb33b5362c539023defdb331e8a2a216806536cbacf7c46a99553ec2dad3c52421cf69465e1444c80f5b0fad439c816440d00a7431215b429b7861096f9f4e151d2335f3795cf4d83d875839c0b8a65e616dc5c3cda616e45f0010b2e02a30b0c1f460b6330a75b445a94349a501390338ec2f3750b8bf3b01217ba3a445257cb818141d3d3426d6b39ce37737ec7600c88e5da7a2a74a9442305199be1751d4e6d3a8c3def453f7a94f0218f6e4990983dd7768a5a53ee63fb7bee12ee8a53ae4d4a3939500d2bcdea7bdeed47a5f1830939a157106383c58d26d5e1bd497b8b7514c0f6151054f14b83b39fc3f781ba28c1c599d97ffcbc1b05245aa3b93aaa80b186645513a30f741c370ab9e57523577433a207f73a1868c92b846b61f0dca036d9c861d4804e7d355b79e0879e1cd8f23556bfd07245273b80f9705cdc3a57c91c4d6b4284cd71dbe1d93d3f0d8818580f6ee3b8a21a5242beebab71bcf71b3e5a5f8bda8afe6ad80b3dc23caf8f8f2811e6fb1cebf6bdcb98fce8a79278edb47f9302808bc03764257c4a5cc941685c45519619e1f02b4bf710b877e42070b365cabad21a86d7369511e1302da76f1320e77218cd0f1eac489c8e18287bf92cd384c546986b954d3badbbec17f40dde31073465d525cbc2a19b57d438909199bc826b7d5513203dc64b55ebfd1c5b27c7a2b22dc536484c79487ee804e1645137a65fd896e636fa250d8866d0b5b2c1fc6bb5f323a3c3a0f42a25d5b49437e88af2f157ea2cd72f2b79cfb2d9b23a55e5fb1e8dec0f32fed75910072ac8bed850bd8a23dcf4bb6a11cb84192ddf33cd9d1a16a1f558d58f766668fa751c5d34d2971a01ad41950419d874d3853934fe10379651094e890a318a0ed92f33084ed2daa530e12846930c5dacced6b12e0e34abbd64e6419e23eac6e4c8cc96b8ab8a24bdbc0244d0961b1e8ead168ea512a932fc4697f45e6e9ea8852141ba0075e98dde5bbc0609608f83eee107951b4a099c4744b87c90bd426ee4a195c221afa86822f219b9e9e407f40bfd3bf782b6d652fe30b7271a4bd52f2d6bf6aeae9005c8b9725d8975818e72e1e862ce39da34b1d65b8a4f47ecd1708127fa01a537d369ec41fb8e1d343764b839cbbcec0aaf767733fe278456449e5303d8f98d69f7e9b240057ce7e4e37421d8938e76d051bc98d3a2c60702f6380b22dd069225acee50c1b26d1a8d9a29d8badb49845edcf148ea4f8d3f1320b929c307094826f4737d11f46e6d6d16e5117470ea3b0bb1617440522f391bd43c594e46c75c3b741a132f30536616d9031ba66f95e86cc0fd04e688e4cbc4f9ee00d8982ea60010059ab716020b89cce46e32fd1de6372fbe84cd125beb05b2890a5c151952a74911e226a941371ab7a571fa51e916d9797df48038408d7895bb479b789b2177c8ac3adee7d05318818fdd446a98d4f797ceb001754ae83e056312e9c7e97aa2dd7796bd78ce308695554b3ba77a2fad57b18d7c84b2e04d551c33f12eb8c83e48ce8b47a7c9539cc67c1adca8ff6b599de21debd208fac40e0f3d857fdc822d4ecc07af9efaa2116d0814c0f4cb435ce5ef223d55c49c24d6e56d4cf91b3071f7b72d020d1f7d4e53915d2d2408afaa9b7a0480cace484c58fd52028b7cbaede128a3bd16a5cf8e97f0503d1581fbe8670ea07407fcd6d2b23e6267fd6768adab5ff4eb760c8a400c8751cc88b008d83a3040a5c2d29239d10a75c07e1903cd55ab179028773340b5c38b4b87b5140a4e21e967695e5d3ab713c574009db2c45f9995097ac968cd9ddde82769b31ed3628cb9b4eec4b5d615367822c7162799da78c249c4759cd6480c3e4bd3b468cfb46eed0462890d1245d942b205f65c3546a8500cd9471e194223c6e00926e35634614af0ade33417bbc72e90e5df708f79f4f950263ba64906a803ca2d0c044a6901425b498ada950af1ba23696d821a2375f600a391492903677f9b4b4a1e81f8cf6efc2b3c5c9d417d319c9aa663a5b05d45216055be9401c1d7e643118e9c08a0e2eb6c4baadbc41cfe05f378d6ab0f65bfae75297286bf48a766f2aa432e4e004f6b6722425e6047f56e08d81b604e64aa0e15282c2958d6ab86b3df50858e222a68febae14f9a0396d1fd4be46d468d09b40c7630408ad22c19b1e2f44cf7a80d29ab8018820f69147eef8453efe3dda459065071a6b1c39622e8aba59bac376108c7a76e174c89f60ac906515f19663f08b98f8116c39db9759c44e18b1ddbf74b7d1bf682f1cb9c63f7c0f942b13b106469214d12109b6daa6a325dfd52dd310223cb14ea45c9cc9805a469a1ea70288d8d78c0bb13a9c8eadc9066519361863b7de910d37f02b6d702abe43465385a8f2c0c03ec8069d9efa307c9449543c13218b2533f7cfbcb2a377f97eb1dffeac203d525d6bce105f9770efb3eb12849109592915ed0c0e71c41691c78086c4935fc92dd528a018c8dd8a16d01e05b9dfa0303bdf05c6de85e5edf64c91b6470f8d94e47662bc203c6e8df95391a9b6903125f6f5cf8e3c2f00aad5cfb466fd8417e831e5b61265640193e4c3496653eb9c05e0b9fe805b1ae07f2c6a962f34f43fd59ff6c7f171641c9a8c4d23e3d038368e4dc6a6f1383c8e8fe326a7c9082f4c48d03ae51639461f240689417a400e92a35706b9063f073f07cd01ca38354e8e82b11d955428034e7d85230e3850b2a4d001c33f3f3f3f3f3f3f3f8b50b66d0bb65910da824c3295f77b48c800b5524a29c99492d073a761b7000000c2d65a23840580386e560e430eef0db6676da5cca4006183e945e828e717456c675080acc1ec6e72cbc54a3a85fdfa13206a30a90e6fc1d62411564ad2600ad53d57a7acc3529813206830d9e959afaf33132eec005b02e40c06f5d25126fe3afa491721d840179500318331ff43fea9c58eb8d08b320e185f40ca60124648b5f477aa11e0bd00840c6617bf4bf1a28e748461653d06e358d0bb4f52ea2d2d370740c4608e9aa1c35b581bf1f3580d8084c11ca654909ddaa963e21de7c1700483e1ef6309cf3a26df5338d6b007205f3007ffec54faedb42f8963cdcca0a901f182f9835877af2fd14304e9823154caf515b3aad08e2ebc300408178c1df6bccbfd4c12ac5b03c8168cef7fa6a9fd96cbf3fa06102d984a74d11f3cbeefeea588e42040b26030531f94d84b2fef130b06a12d4e922efaac29b14b03c8158c79e2f7de5a6405f35bcfcd27f5275bb20a3600a182299eb65928f9925f786720009982413b4f2ed5b2ca262b102998926a3159163f96fc4919e828438ca7c08e1088f138425086184f01111111119028184eac36497f5e57bfb49501040ac612f46228eb2b417c65878e917300c813ccc94b9d78d23dba4c32041be8c208204e309818b1a5d7ba1755006982694d5a951c36dbae752c204c300525a53e5dfe124ca9b33f27a8e8d91e3174886107a20453121eb2fd579420d5840712830c1d13b82c8024c113cb2e4c54eb7712efc1438c1c782048e0c52e59d7678bd75a665676738491030c0e74e10509ba08c106ba40349023183bed495207cbe2b13c4630d87f09fad6cb73be2e82b974e9ed92e24451e91a1440886092525f12b9ed2565131b8249f2925da7d504536b44e100220493e01ef377a3d272091204b395aa5a124a5f04102018c77fc45a763019262e04901f98830aa2e71f96458d8a08203e30c559f1e4957b4ee6640709901e98b3c7845a08f160ba40175e7461812ebc305d78d10505bce02380f0c0e49665c2c6d6203b30c949b8493193f1d0370c203a30baa62953f36b2e8c1f3fa59b32f5254738820c7161921542ee8c9a9c993f8e35345246323232068f09cce06f61b20a66c9e52425f63b0844443e6c619ebd3456dabf1a7cd4c218ab3617c7a46961ce9dabe48c3d414c8a7fccc224a8f168caf7fb9085293ea724f62cab84507dc4c27463398589d71337b30f589846a55a07b7db3f2022e23b3e5e818afda39af2ab1a5a81c153c07f04769de3c31506d9dede33f2d30ae3fa27ab9ca197275a58612af33dd1924ad6927315c651ff0baabc947bfe4315fb918a0bc1072af2b47893baf554cc71ac88081860bc6f3985f13dca899ea4c81406cb495c55d8ac56eaa530964af1d35f9d90c268e2d37c08f18cc2a0652e262c498bc21c7746e8caa97f27bda130453337e94c1a51aa2d288c35d6c9c3d3d394ac9f30c9766366abaa27cc734a4b3cd98fa7bcd2095309756f97a3e8af1739611c37e5f22944f667f5b10993d2d1ca611ec1c1838c31ca78b4268c239f2db7a5cd84d9f349b94488131326cf925fa2d97d12b92e6172ef5c1745cbefe2690993526ea7c3b89f94f657c2b02689e8ecfcd8fd286152e92cbe33e499ef098e7db330bc045f10f8988459636546fc4d340a1f92309d852c559a9ed2848f481845c517fdfb4cd51289f00109730c115dcfc5e038f0f108835fd015659da4493e7f38c268e7a604b136a6a7a47c34c29cde4294a043d6afa800f1c10883faa8a07e4e7c0ff3da1f3e166152622b85a51c2fbc8e1f8a3095a79cf5c46c9e8712da88d5e12311e62e0b272bdc8bda0b9330c8f8e20311e66dd36372380f42299df37108b34593e4b0d19e3aeb640d1f8630fedceb09e2728e7b298968f82884490a3f53a27ac4578f67f82084794cfe9fd3b2272fc5ce0b1f8330b87cb433d9baf02108a3fb87a74e75e9849304c78a408c0e9c3506c25c164c8b29f9d6fa791e1f8030a79d894952e76757f33efe50eb6ac5d6f93a921839b28b1058a00b09a899995959f36a164cfce2042302e8c1871f0c6a9472f10fca8f3e98087ff0c1443ef670a6874c0c4b724ae2c944a804e0071f79b80c7ce0c1205a4f8f92e40ed5967b1ec57cdcc1a4d653883c39a950a9c2b1865650f061079394f44513d1958298201c6b6544f8a883498cb9495d26753dfca0833995fcb49f64b93ed90b7cccc11cbf5ea1b22e849e11c71afa2ebce8c27b78293ee4604e6f4fb2aed85fa717c7be7b60035d78d1050f11912ebcf0428c1c0787172222950398c2471c4c72166d216d4e48b345f00107e37e49f14e927369794cc8e051cc031f6f3025e1939d906ac1b13652c68e1ef7c5871b4c2725fbf0a7e338d66030a2a3471b4c9d4f9b6cf9a757a2c2b1f63bca36f0c106e3a57977969e4a27d7153ed660ee73df92cd8356b7560d26ef1827aedaffa1240d06e1e9a293d68a9fcc42850f3498dd3346bb44d6bf25394379e2f88e28a184d70e1f6630be8773bbaaaf242c49198c59d944c7719125bea7860f3298abb265d12dc26275b0041f6330874aa79e1eb24e84d9810f31183cf674274166bb848f3018456f67e7529524259bb0123ec0603041589724f47592f4f505b3a8f59342ebf66edc820f2f9864fb4b6a2688e80ae947178ced49448e7aeaeacbe358e3516e061f5cb88f2d18f4847f0f26b6b3ccf13d74887117830f2d986d2fc74b2657dfe794051f593089ce978a9652b8f160c1a49f4ef21711d65b5270ac9d5dc124eeefc4855750258a70ac95b9e0c30ae6583d3a6b84e8af98aa601879fbfc71a944ef11154c42ad8b2ae1edd32939533029c1922749b68e14ccfad1c4bb5f9ae4f246c1944eaf899793ee4ab20205e3baeeb4dc2b5dc659344bfade39b4be93568c8fc127123e9e60ae64325694bd580ea3138ca22e2bc7c9fa4137f3a20b8401f423e502a0868f2698d49cf04b7e63b19324490f11111e3d728ce18309e6a0e25b844a5a3d5d8d634d078f4444a4021aa82c7c2cc1b81f54b02b29ac8a526fe14309a6d322a6fa5f725f9a48e12309e6dbcdf6e4b1dbd6939060dc2e0fb99021efc63f8249c8adbc114a76ef958888348f277c18c1dce6f9a747fd08134b78347e14c1609f65a1e3d22f3f5c468f1c7cf8208239866a8c92d3d5d56828878848193d72d4d1e163082625bfa492acd4e2422d049338bb63a5aecb04fd06c1a094146ae4c44eda712e0e3e80605029c6754e4dc9f8f88141fc7fac3749f6991cfee2042318f8f081f14f4d524b92a0e922287cf4c0202a29697259b7d2c6f7830f1e98a45f105925a4f5c9691c6b24e8f11600e36307467bf9ce2ab16f42c9f68b138ca40f1d18cf4411972b9fa79a8a692e8c39737264ba68ad24c6857974d5e7afefccec740bd375bc123effe5c6a21d98618b4a634cbb5e64aedb5e359c510ba3dd79e7e8e023a49c7a062d8ca271173ca8986ca2691606ef0aee25a90d5d9220599862c467a598183195c7c2fc5ff1926687dfa5092cccfb9533dcbcef2d3eaf3049dae693a0739cc8b5ae30cc49777ac209de1ecf5698fa63878f1f4ae98d9e1526257f36d524a982d025ab30c996a37d16ed518561743e693daf3849855361362de5a1629bd2af242a4c043330e314863d93bbba60d2f9a97408334c614e3ac9cc6d0d77352985f9cfe6e477ed143df7a430470fbd9d5739633b5c3d98310af3a8c5754b26adb42b0a63c5897dcfab18d143610e25f6cf7c8c91bf3e280c97e25b2971923277f313a60c4fe3ea57ea42c913863365bb7b82d0ba6e270ceb1eeff5973cc917f20c4e18e49a9b14cbb61ded944d98538a23a24e5e76fa90264c1fd3e7b7e3a7f18e67c29c24c1f2cad99914e629983049bbd0179eec2b2fe912864b520e6516b43e6b640983a753429c10fa299b67831995307eeccf9b992dbf4b29614a714fce1d2d754cd59330872e498fd0a173b82f49c2f8e796467888b0fd58240c6a46c8cdf0689fca04120653954e69b5fcb1d777c6234cfe73b16bf5eac56c9ce108a3a524d2535ed98f091b6110d5a1be742c71267b3298c108538cb03d6b1121968478e880198b3076b4f13c278dd6250d6728c274d2729a3b51e3bcb74418c5a42fa1647523469881086396086982c83951a19a71088399fa5fa86cda3e4962885bc18c4298acf259f59810163484636d0621ccf9b5de4fe8d4660cc2b0f6ebd5e76282684f10e624c80993e59360692ac6e06604c270eac4a7a4c4f0d02903610620cc97b48e1253c993247738d67e6d064644a467fcc16c72a268be8af6b8257e30fee7e5248fd0e983490e3a49dab4b429e11f1fcc67a955d7ad3a65b47b30770ebad5cf249df91e8dc10c3d9873ea92e48d0b5b25863d66e4c1dcbddb5d7a5a4a251319e8f0424444063a76ecc083f93e97d0be6ad9faa26e60c61d0c7a62def3e33b577e9d618773f0943e5a3c657ef2827f1e6633ea604a6f95fbdef39b6c39eb1974308ece2899a63560c61c4c7bfa8366a957339131430ec6929f99ad96add49130ceefe801822f4e300283197130973a9d67e2c92bd1477030a75c876d93fd2d999c196f307cf5ee276157dde72e419e60861b0ceba7d549cea5a7bfd206534949855bd28c91aecd608349dd79f09ce470f9adcc5843921233e67ea5cceb5643299bee389ef2899a0ad3b0999f071df72776c5c10c34e88c33cc30c38c3218b764a8eab59a6c41fbaf808e10a4086690c1a4fd490e3d32941acf8fc1d41b16abbd3ca8f9470c26496665fb1cb3d4877646184cb32e669f46ca8fc7c1602a79a226bf49520e6b7fc1944ae4b745adbef7d00933bc603615e3f3f2243116bd8cc28c2e98f54bb6a4269a124ed533b8603e0f4ae824f49b28eade82398730396bbcce4b526ac1a4b7828df4287adfe62c1844ffa8d4b3b8bda261c164655ba3b47b5ded5dc28c2b18e64b4bd025991ceaa478f038650593e65cfcf5ff23985105937bd5d758480f1a3f150cd23f568a9fef5d93c561c6144c4199924b9efa7b1b1d0e33a460f2384a4a9bedf639c56d98110553f818dac2f89c5c6bcd808249ede3f485ab9c67c61ec38c27985c4fa9eafe94448c8a186638c194c5fd627578dbf9681d6634c1e4395f2698dbc3849ccf152f8f7e7298b104b3b855588f1f943c135282b92fe8f98b575f0428f94eaa3ea952c91026513d9ff09c3f673985309f3463fae6eb945c9d10e64acdbd8ba7b17e1a84399d5c32695f7be56d419804cf3edd9fdad7e281308517557e926c77c70b08a3a9cb9da41369b29bf20f86f54e956a2da74e92f8c1a46bba4fc4d8f7d87d3009f27972f3c35cddc207837d4aeacf6584af8c7b309e1079f62e6be2ae07536aa5894be6c1a0c3559267436a676b34f06096f7173d6b29df529cc61dcca16bab4e47b1243f1a76309a97f89ecb4fa30e06bbb0399d4b39f42969d0c1f8717bd4fa7534e660aeb2ef58728f70ac8988f4f81688888888e85681861ccce92f272b1542b68d270ea61c64ab93b64c030ee62da182b48fa53767a4f106b366659392fa13c4e48ed17083d1c47d3ba91926798a6d305a658df0945f1a6c308985f31273b249630d0679a2e3055d72dcf095861a8c71d9c2de499f461ab2b4a9265a9f26737d514d7a516581061a4c37ca6c762d7b0663c5bc24e531d972b2140d3398b637be3bf7da650ea0510693387f322a5fcdb708d1208339e9126b4c84d29593308d319853559d2428416230a7d4dd965b64857653184ce7e124494e69d4ffee6048bcb0344127517fc16c1b7ea6b73afeda74061a5e30975daaf57e49327725834617cce67633aa6fb222632e982ccb497d55f94d88121e0c686cc1282688b338255bb604f10634b460ce41558979fa932c2266c1e8f6f97ab43b2fc78f05c3eb283979ab8a629e2b984d879277a4e5248a9970ac8101468e17345ac12427e5b0d4d11e0d6854c1a44adfa6bf5a14b58c0715cc594527699671e256740a26dbcb3d71ef9ca468a56050cb0d2fd1b24966d256068d2898d3e8d3a9a273583125d68006140c424982724d53a1ae840a6740e309c64aee697f3f5a97d8e9a0e104f387edf6f04bb993f09a60922227eee97430e1da3c1e349860d44ba2e5a80aa692092fc1248feced951f71ac29c1582765d39b0f2526093b0c1a49309ade9244b5094a2a756901124ca572bd62c557c58fab0b681cc1e8e129c5bb3c514bdbafbd8086114c23d5e489f459b99c1e078ddc0e1a45308713e2df427a9c9c3b3ba04104b37e2569decf56d7771a43e0c25e3d2ba805efaab75799bf74332a7dae280f6808c128aa4d88b8a97049586904c1a8a7a4b974de97d3ab348060d253915d928ed2f881c946743c8b9e9a4a6a1f18458512422eade4e237722601cb008d1e30efb5dbe1c215a0c103d399e888eb18bffd221a3b30557d92b55296ea34260d1d98735d7c1175b15c98acae93246239b4fd850b930a17dc474b505b59bf85d93c5df69ed9cca75c882db80ab577d9d27ab9944d3ca9f4229438c282492d4cdee94c4dc5cb8325a710420b73fa7eb693940c85905998d79430bb24b6b2306cd8874813a790589824d90ef97a2f2caeb1dc9aa2de76ef6aadada2bce436915ed1905798c73bbda9aca23384b8c268bde54195ea1b8b72482b4ca92ae604bb3d8415ad9d88a79b6dd67d6dd649d73cbd0642566150769fb6e65249d16755984f6d564cbf754b135241482a924453963aaf8b9eb4a0e21245d4528b8a27768a2fde8d650a53d0d6b4ab307e495e4b616c53a365495889fed34248714cd9369b3de1582bbaa330cd86a58511e7563acc3966f017d8f132d0b181138549ceee8fef8d550b550422223a763c0dc4d02186884818648811120a838957c90aa3a7567609018539959492cee7d9c72aeb4f98e4e2aec579edec62daf120d8d1030466628cb13b7af0404f98bb45995c79c14b2eb13046c47830d6c6d0e1f9219d30968ee7af6ab324eb9d5e8470c2a0bdc42cf9c363fcef473b745c044236611e69aa4bba7d35611243dc89e6ff2588c997098464c26c8267a8ec8bb330cb4863c2e496de2b174c90a67b311e8c914b0a845cc2689dddf2533a25299d821708b1844912259550ea1f55cf3d38bc12c63451cb84faf2f2748e93d476f4e0410993e81a93a4d39556b384634778e438eb49982b68d1e69f4aef74098e4567470bd2cef677e8f00c8448c29c24d90ec2cfd34db71e3c2261521d9f622739897fde2724cc16efcc84871e1d2a9647984fe8ba9dcffff89fd011a624454b19a17209f7d53d186390d1231b61f094edcad762fa95c48311067de5498915d6ee8323237a8b30c54fbb60964f9950da315024441126b152ca677de3f1f5bd904418664c70b1bf4d7555072a963b7af04044989457d6924ffa94f5a14318e676564eda29c410a620942a8bb3a104a552218530f505f5bbfd59d273871006ffb46ad769dfca93483008d3a853627245ef942567470bfe8c7116c60e1d15e81e6124e410417492ca7f59114bf28a638dcfc818e91146620b8404e22dcb39ff4ffb251c6b45c918791e3bce18c5c220430cfc220410a99bf04f164548f7eb0f261933391751961f4cb152d4eb4b25d9963d9c8c1d3d40d0023292a78019f70823a10342fa60309de344cb132b6f9a468af1c124079d152ca77dee85e878404484c78e6f41c81e4c52af7ac74bb1fda544eb0106193c7e871e8c5f9b7b8229a994f8b004be38c1480942f2d0972e615dc7103c9893fc3d6977266d0d08b943b2f7734ea9dbe4d381103b18d49b926fa92a0525e2111e5c07834eca77941c0da183f9d4087d75f275ae9470aca50242e660bc924fd4aeebfde8500e86f8d2692e5bfee479481ccc3d72b3e43fa1a2e83746183930098183b94e4449d9a1357459de60da30f5d9a47c5e52aa1037183d9e9b20544a3ab6589e438ce3011191fde2042329a40de6b82a95d2c830ddb7078f1136184be893eff298fe134bd0740dc6ec6c71cf4d7d5ff05210a206835ca9b9faa81c747fbe38c1880942d260f4f4b39c434d1244fc1543022222658871f08b138c98103498c34af6d8ef96950f73ec9041f608232120e40c18620653ac183129a9d2ad58421810d98142cac05b57b8f43aad8f8d1bed64c1d4c8984e517b0e3078a0cf31c6e718438757e0035dd88e1e637421840ca6202b8995dd94eefe8f012163300725c749764952fa0f680bc8481e658f30128e11220693f6d2f1faff93b42aa6111d3d46100321613096c9d1f5d8bcd66f878ee41c20040ca6581779b14d271393f405c308e5dd664ae99bbd6052e2f3c5aa5a1284fe74c16dd94d4ff5313f87908efe40081736295c90771f25a4630b499da3bafde45cf727423ab4a049b1cb913f52ab522008c9822947cd4ef6a89139fa1d07070fde102c343a3fbb33ab27f6772208b98249b87addec39a5734f64a0030c300e0e1e6b1a6285ae54955b8e9e945847183a768c611782902a18d6932cfd3615fddc5a8550c1245f7e7b4f498dd2278a63cd3f06233a7aa04dc19c97fc53ca1fc3b136e2397a9c1e3cce2c440a66d5ce4105a1ea4e9e404814fcbc157496655c7a90a1a38c0386884808142cd72c8bad70369edd154369195df5255e8ee1d320078f0b7902488813cc5adfda5f4159c93ec78e1e23650b08698231bd8470eb94e49ce5c2b156831026982adbb7744b1274f2c7c821835246c812cce9d744d129dcfffc83636d87e1134294607e0f2aab9628ea53bce058634248124c6b4abab026e6cb892a210409a635f10493730473c9e3c1eb62049394626ee6a9a49d8e2721a4084693927671d19f6d2c49045369ab1c4f25715f56bd3342c8100c5e6265bfa0c51ecf4308e6bb58e6a684675afeeb88101204c3965c6ad35310a662d743080182714b7adcbb966cdb2623608091e3053f3029c194fc7a99a42dfa3e3079ac689b192797cc0ec79a0e3146eefa8b138c74480fcc3ab7e356a288fd9e6c10c20383c7bcbc17c4b7038334cff494764a29b18510a203c3b6db491de369299d0bd3c7a5a814cee3885d38d64070611a5925d89c708ba33b8e5b18ef6ee7fc4c12748a1a8fe203105b18fc93605ab155dd64c6a316c6d1695afe2ef6e43071acf5e091038cef9103870c467a7c0b6861eabd91f1dc59ee4d3f0b7368cf71d293b230aa957c4a43277913672c4c23fea4511e7b3a3c1e80c0c260529be0e94ac8bda8e800e415a633599674474bd2eb892b0c26c45ecf7f90b2dab6c2349784abf1a042c7c4405861acf34e49475395ee470ab28a035185f15269efa98e1e94ac0e3078ec90c0998b51068fc20090549863a77efb9a4f1f55840a63a998d021f424b1ce013985c93b8eb89bf8f8e12710539884103ae98f2799cecc387664478f314ac70e052905082932712bedb97a54df71ac29c8284cda7375c5cf935b4b9228cc265809627c2e2b769540074261fefc4f1a57957a4d0e020a53102fa2f6a43c66baff8449cc74271952f78469f652c34c8ef0103648278c1644ad728c30f1c40a454038610afbeae2c1b4209b28c78fdd0a3a328068c258714675ca55c984313ebca95241c684e93d9eb5472d41eb209730c927f78a2cabee402c610e4ae75c260715b409a33b904a98720eb293aa5421548477209430665dcb693dfda37d1d4ec2203a2e97bc3815aa7449983ec9933ac32f69af4e248c9d7316b2592a5eb294134020614e52ac3f29499dae217c84f14aab44c595a0ef7b4718ec2459cb62b316449e0248230cebdfa13efdcba7357be4ac00c20873f495af915372ecacdd812cc2f0ed39a724499f57e9bd035184a63652dd46be8930e969e7de561322cc49b0a0e43cb73f997808739f1c3a7f756e3e3a8630ccba976e8f9fe7952d3b7a8c0152087385092aaccacad3fa3b104298e49c274fe94cc92729772083309a14c5db4ef83d49f98c8b00118471bd04115ab505c22467cd89f4be193d933f8000c2245ea94982ad09f778fb00f207838ed61243a55c89ca8e1cc703360b103f184cf46407ed265814a53e9845893b1f4cdb9deadd55f7352c207b30092609224f4aa146e818881e4ca9821e25453e7930d7de9f94dde9cb528907e3c75d11b32d1fc3c63b984a12ded1ee73b585cf0e4637ff244bd4bc852d0d01a40ee6fd8e7f92e42164c9613a984ed949c1c4bb73309a6de559ff93d262052207c3f85ba80c65aab3ad2071306753bacac4e88ecf4938d6e06052b71f4e1a25ed84ac099037982479e729974a8e23103798a40c93d3d327f9244a38968c3698c6f7c4025d49298c5e92b4f6a7561ba4305e272988f08ff9f18a8d51e0ba27fede2b51984fa82c3988ca2626e3e8713c202282a3c7b1110a935431cfe74b440618bf638c651ba0309fe7b8784ba974ff07478fe38182a3c719a394d1e38a8d4f982b892e493ecb86278c95a13f89681f9d7a2f828d4e98f37fc59b4aab8e7b8d8c71c2d80bd8e084498cf214f7d944da48cbe88156c60ee64d983b09a677c207e1581be9c1838c1d233c72b0f10023470f321e604313e695b9cbda2556ac14ca84a9ead2bcc2ab5cf3b6810983f2a4b3e92e173bf162e02e61d29fd3f89c9f58c224ebae9a149772d025ab8431745d48b93d75a67f4a986dc7e3a85392749f3b933028757ea61e2e9a90ab244cf2cde73cc92dfd9a251226555236713b5792eb4a9030f666ea8ece71b9f547184ce8899572d8ec27930d47a8e631676e97c2c5b29c3357322ea693798e8d309bcd99182a4f4698c544dbbd9362c72c676311c6f8af517f3b1539491b8a30d6af4956259deace211b89306f29254fdefdca2b44844907f125c9254b87308fbe88f877dd5242c9109cb7b755acdc8867aa9ae512ed64edea92fe42649e26a90925da11e39146084c2ba75bb070975e5e36fd45c830bff5330dc2682a84e893ca54d23d128449ac1dcbdab1e44cd347caf51023870e0fa8d9888d40184ec977da121e7c2eae35041b8030cf0875418f49133abbae828d3f98bdc7cc6328e1bfa4df56b0e10753b4ecd43986862eb574c1461f4c3aa59c88151372cec30793868cbd0f8f6300edc1b0ff1675e73e7b2c7a30c70ba34b6f437930c7ca75825d875151a4783045b97eff5ce927687b07835d4aa72d9dd2b7faec6030b9354dea4aaa83c9547ad3b26923ae6a3a9844fea3dacd3907d39cde975436928329e8af3775f6353ae7e2b0959bdd58f0d2f0f9d0ea13b327354ce060122d8472fb70798369943e7923649a363d93c1861b8c9efd74e53459a4fdc9461bcc5626be2de7e4613596d96083c1cc7bc5ed242965371b6b30e64965629b9cc3869aa8c1b8ee57278cb2f8f3370dc6109553ff4915d4cdb78106538919ea04cbb9bd3a66e30c26cb2c25feb6554dbe6d9861b1fe932d8379ffa4977a8768a9d82083514f8a1ba5647b13deb63106f38968ebebd777494b0c9657ba4a15adce84b85ec758cf9eda088339b6eea2c5561fdfda06183e1345282df94c36be60ee0ea343e5fc1f76e436bc60f26c7b7ab65f4608a98d2e18ae4be9cd9bc8535ab4c10563a566959cf2ac6c09da82f9cce4b5785af9314b74f0d841861736b450c7a59a4d116d2f910f6560230be6f324f4945905b99e62c14ad7ba6e8bf22aee5a512ef6d3a7bdec25465730a7d4f30a7ab9b5d91d8fd8e1c086158ce921174dbef40d6c54c120fc3494ec698f8bcf0615cafb24a92a8f73136c4cc1586f31f73b093fbfd0166c48c15ce9f77bcb4636a260acd3db4bb93d237d041b50304925766c7d12591ae3130cdafee97f174708d1d97082b9e6e3457b36a975afb3d104d3767507cf498ac8047312dac389d9fda1dbb7b104d3e568b2434cdf24715382495beed265f2565e5b36926038d5aee3a7dd46e9910d24985fdcb254f49344d1d8c6118ca21e3bfcec67c8f8368c608eb2bfdf27df16b0510463a7f4add75f2a69fb88600cd52688b25cf2894ad918026b495c6ec4e552d7547e0f4a1b423068ef0fd9ea211b41309914849233bdd2930a8ed8008241e9e87f0f1edfe36cc0c60f0c627e1e54c59096c432011b3e3057be24e8d5d2ff91131b3d3025492ceb24289f07660b19f59453b664e5367660b46025cd770a7e27ee1bb0a10393a0b355d0a6c49cdc7a2eceb832f11af54eebacd93fc174ddc38531e5f357ccbacab3a41ab7306d293f49baec6c72d66c61ca3989189331792aad8561dc646ffe52ce94125a18c4ed7596124a3eb1eb5918c3f24249c9446561beb51cfc46fc9b074b2c4ce24ef7a7609672c3c2dc71727eccbcf519ed15c6efd03929b58a7a2fb9c2fce1dda2637b5ebeba1558a6ac566e37bb9226a5c5cf41e7c9b2c27c927251395a92146aacc2282a6a3b4a75aeec5e15c6d14eaf1dd33ac7cea5c258525b0e2f17a302b970332e97565b43a4496652874a76965398e43a2d53984f30417d5673bf4f580a83752871428b986de9a430688f1e94bcbf52265b46617aed1c4d4f6e51984fcad151d27ed2fd9650a4556d1b6f6b276b17f4b40932f6bcb5ab041446134bd962c9b7b6757650e313469fd1b9d53244bbee0993af97ef8fd04955a83bc1cdab66da5710cf4e31cbd924f9d7928436e1c30993dc9a32e93b6b688b6dc224bf92b85f982531c9911c270639768c3132f2c50946446a68c26c72f62b49b2d31db723038c9419a89109d3a8929275fcebda5c70acb54007185803130691b21d74aeb0d42e71acad8e0d5ce230cb15e4d6e2c5c53b669920fba4b4a0053a3630868e2f44445aa0030cdcd1638c1a9630f9ba99a8562722d4a884e9c39ebbe76d33b97447ac8c1a94c84a3cc1c29c609011068a8888881cfee204233b6a4cc21c2633426f8752aa8448504312a6fb24464c3249bfc43b12063359c2bcb2579076d58084494cbccf19d294c7f88f309565c95b727f76cedd11863fe9753fc5aeaf2835c21454b81613849b9ee5cc841a8c309c27257aca6d1c3516618ee3f329459aec972e351461ec24769f5cbb9c936cc231814e84c9531cd13539282989fb4c0f1159abb99ca564d55dd944a77d7d8f1267cbc4b126c24344e410a6b41571532a6e0883b62b4189093ea693ac1086cfe14b8858e8e4ff13c26872aca8d369ac31089312afd610844994b096d11a5ec2f9350261f6512b2223644c4a926a00c25c63b2bce435499063a9f187d45ac3aedd662cb4beabccaf24a984f1fc60b6203ba75812e45bf69d478e304a1f8cedf92bfdc97af12509831a7c30575c32a51b62aa4f4c0d0235f660f691969dbc8435375f0fe66c2d8b553a79308a554af24355ea49610d3c18ae94dc95db42fc841a7730c8efe9dffe24ecc8100f1e070c2fa050c30ea61377d7501a4aa5243d47a85107f327f943892777ac9c950e591a8b696dd9d5abe53d73e7cb73fadfb16accc1a04ac7537147949cec6bc8c194397bf29efa134f97e2601491fea7739244e6e4e1605c8fda59c4e4de60ac9467fc73ef07cddd60aa586da5f32a25d1736d30760525b96e7ebb497a3618de743e3bafd43fe56bd05d4e342b4eadcd6c6caf24194a3afb507f0d3518ee7292a2b2278f932e35d260dacc9acf6277edd9a3c124e6ad2709759b16eb3318de4d9652aa3783c97476759127d766b635ca60f6e829435f830c26bd9fc49667dc78d08f5146089650630c664d3d53e2abcf6cdf0fe3ec381ef831ca08419d180c424c989f53d2160693a454f8e5360fb750030c2693aac5b3946cc2a41cc7da18d663870e0f94b1830735be60f88b8f3da215bab62c36022f6a78c19c93a685b78aa13d45ab0b860f4a5f0825286b70c1f09a1d3eab6a5ee8160c164ffa87af12c74aa7580c44448ac5008bd5d082e145d62961f4c9e126ad9105d3c92a9d2b26c5a7b863c1bc23adedd34db8d73304a8c6154ca225f541050b4a556811189fa30222223c940b35ac60ac1291a1fa556a4c1611111129a347193d0e0c35aa6036edf94b87fc932aca5430070fbdac7042df4eb0c614cc66e2976052c5fc93f2480d2998dd4c84f7290f172f55230aa65fadd08aa7e33cc470a80105e3883137cbe997e65736d4788239598f5c874b0e359c6052ad255ada5911213b333bd46882713f5a9db0f9d60e31c17cdf9fd3aad4623cc902359660761d755d4afefadbf8c5a1a186128ca334fbfe93defbeed448825945a868d1d35e03090611ef624aed4879d43882712b27a955634bf5eb358c60aad2714fbb67358a7049f59e939c938808e6bcad1ed76e8760ca3d9693206ad61082b143c88776d3cd16cb04358260aea46b72324185ab076b00e1b81433d42a2c8ab8dc0551a29399249552a97d8d1f984d8b56b9ec8993278557a8e103535a9b8eae257b37e52fd4e88159fe54bc3251e228dd77176af0c054655212b45c8ea2c4b90a357660aecb41dbade9562929156ae8c0ec2fb626a77acba83417a63a93d159f726674fc185495b363b55797953c75b18b6f52d4f126267e2b7854992e2e38492dc249de46b61da2c71c2e4f0bf2047b43095e898dd3ae29f4d3e0bb3a7af97deb0cb9eaa2cb62ff9aa97f718d194cb0cff112d37f2d6d758983e4b2e891f2aec85889f400316a62057c57c5dd42f582840e31506cd2c61a927748539e8e832ff68263d7ead307750f31d2e8849c29dd06085b1626a8b49274cd8b88a4a442c058d7313b9e4a9654a7d2e5d5285c9a4dc135d52a575b469a4c29c7b92d6d1d79d63e868a0c244c4a0710ae3e9f0bd6c72aa18217f8186294c96bf334a95a814e65457b12f7a92e70f29cc96dbe6846813c4098d51dcdab1596d95dbb3725766774e7b3964e7474314c61babf4ba8d7b1119258c3030a0d7081aa130daef99eca26b94924409a0010a83ee943e477bd16b717281a443c70e0f9082c62718fd2827e5496ea5fda5e1897225f10a9e69736ec92ba688142d1f3a343a612cab1a2da59495bf7881d2061a9c30ea7e29bdb9563672b209938e517313ed0e2db7266864c23452774f3ee5d1c084d124958408b52694d20b8d4b183bea89a2a584eaa4a338a0610983c94eaff7b1e4c7e98cd8256854c214cd3abf9e5ea724323174e430fc010d4a182b889cd4de1eff91111d2de04998d489bcac354aee73342461504a968a7f13644f2ca9c3412312c6d2d7395b6ceb8a2e818429afa249ad79162dd5f50873e724faa7cfa9021fe82277f4184305341c61dad5ec3b13bc4db449238c6fe349845279d9d1630c1a8c30f98c3e396585e54afa45987784567dffec52ea2bc27472aad026428930ca899d3584d433c10411c613ccce82fe52f92d3a84c90ea58d7d0ce6d131b99ebfa453178331d43e5cc949dcb03b0ce6ce7fda2c96121a623018f6f6ad57b577c4fc05a38667a5ed9e9cedf582d994ac1b66214f50d92e98cbe43ce2e48e2723e582494a9ec47e1243883db760becc933abf3c5a30c7198f9d334e8e9672b260d61e19f723c3941c1e2c98a4e774cb39bc82b1fa0437394f50a63b2b98ee490a4af96f55309c9cbea4b04a3a4aec50c1a8a52459eb3c9e5775a6600e33a6e4cab625ea5230493af89b641e6b3f51309d0e5f927842985c262898d38952edd1975aa6271864fb4f2c37f7a4bd130c9f9e6fff479714e44d309c7fb8b9d7fda99d09c6da927d7e76dfd1b30473ec8bdd211e2598c4934f1246defbed4930b997f02aa722c1302b7729777a049324eb884b7ffb4ba9114c9ee197cd46adc6590493d23947f688a9b19208e67c5f4afcb786604a4a89a14f905626772d844a5a4be6a6b420986d4c7de7ecd549be1a08a6989d7f75744f0e57ffc0f4b6f7497e75137bf28129c9edad2408f5c0e89d742ced3d99ef06e081e13d073542895795730cb003d30735e1a7fd94a43d06d081b1ce4d2a373fffb773612c95c4649c50212d8c0b939457413f2b4c32f71626b12a7755fac753ad2d0c16949949a7933441ad85d1c452525dfe9ba0246961389df3293a09cfc25c2a999c6a45ee7e6459184cadefcf6468bd90d1d0bae51eda6358982aa98e176b665275fc0a73f2934eac10d54969ec0ac3a5a4742859ab152e6e8561cf6249692c668541c9392959b7db7315afc2e0964ed21fc444f6af0a63a5b8a763f57f50a154183b85fe977b4b9d765498f78279c7abb658fc14263b25cf94ae2eb724a630f9f86aedcee849e25218442e5be9e7d51c31294c52fcf2d013fbedea284c77793ea814aca2294561365d9e2be72f58284361126f3a7e157b1b27288c25bf6be8ac7cc2b4b67e2dae15ba454f9883d88ae7c1e3f3a913c676937d494a61ef72c2a0e2e83823dd8471e5c38cbc6e35613c41df7bfcda4c9843ed9724a65abc9c840983924a6c334bba84d1664669b38d1365b784b963f9af8b8ea2049d4a98f7458ce55f7a36694a98f29994444971d47a3c09f38ec936fa490ed6b1244ca2b59a4efa499ac69130c8be3b3929d95bd9a29030e65ca792e3cbcb84fa0873d026b9e5b78cca9b3ac2a44596faea901b61ca69ae47d5ac2dce087349277c92e4d637cf228c1d64fdae8692e27e45986e564dab2849844984665e7c10617eb79adb2b93c5720e61de37d99125de49721bc27852bedd854fa5212e84614bec92ad0417b92c21cc714e0af13987748f0ec274769593d20561ce490e2ae6399dd52510e6dcb145c392546a41409852ed5ec9dfec8fee0fe65b7baf302d294e7e30a59c1d1643d594ccfa60165d1fd2fb3a7c306cc7f10ba7b407933071d2cc9cf460dab279fb364bed7c1e92753bc28329f324fdafa6f47e0773579d68b9ce04b3123b982cbbca24d926d33a18e6522a19cd4b62c274307c2ee93a4997448fe660306d7df3a3dc84891c4c793fe8939f963898f4babfa453163818c4290f791f5765cdf2065385f4b5a073bc1bb3b8c16c6f620853e165d652da60f4f08af739e3be95c206b39b892fcaa41725e8ca1a8c21bf3c49d94cdcbb8a1a8c6772906196948d29a5c1f84905d55919259c8e0653c9f5a994fecbbaf6194c494961e664a7744a6c06b389153b3f85abe42d96c11c4f599b583aa17e22194ca62e6752aaecba0b8ec1a08425ede6ea9fe68262308b30f5ceaafadc1e86c1f4ef614f76070663a67accfa49922831fc82e924714f8e6a3a3a95bc604e13ecabbdd287ce77c19c479b9c097565a273c154b2e89c67cb948d922d18735bf694e79c44eb68c1e4f5bdd57766c12c5a436eed58309a8e2e215bd1a3e70ae6ac0e72ac3f8897db0ae691efb89466ba2bae82d154afe9cba24b4a4205b3e8ea14ad7f3f340553972cfbac2d2ac7560ac6dbda17a976c288340a0693548be93e15ef040a66d1eda1734e2b25c62798f4e4f6be13474b122798e624b992922595a3774d383f7fce6bc2c4048390bb3afbf92598fc82eb7588fc355f09c65ebf32c90495294249307a091f265fe34f8d90f0dc69b5bee908e69096b6334bdc2e31824197923a3c9ef0962e82c9ebe499579d08c62c49fe0e4ac7f29c0fc1a0669f443f4230691142e7f85e97eb098249764b15353f9bb0190826e16d3fc668f14ba23f30ef6ee7d82bfe39547c6056cf77f28979d22ef6c078ea7dbae6f425b9e381a9de5456801d98a4e9133c649790632a800e4ce993f8b0a52e495dca8529c941efb6a7d125f4b830658c3ea1e32b7ff66f611495b49f2897440b215b98d4c5ce9df6d7c2989e7b3e4dc80aa784162649501d4e4a9f59982a5fee34a7a15a1d5998fc52b5582c11e3e1589842ed7d8c530b972f2c8c76a9b4b49e9612e92b4c6bf5a684570f3a565798f5ec4df4ec582cb5c25ce5254bc7ac30285946ad5d0773731506b3551db1ee245bac6ea8c2f8329761fa47fc5c375261924acb838dccd4ce5e06375061183da32c644d580ada1ba73055123743a7cee12fe41ba63009268fb6c8d751e9d78d52988457d349bc9366bc1c3b7a145298e49284c8872c3f39ba6ba330878cf77ca5633c4461ec78a51d2b542835d95018c4e4cabfdd31d7b9ea4061d29f5d2243658652aa4f18d63c8f993e314fddf284f946bbe57677f10d3b61ec5c0f93f3c70963a8a8559f4bc89b302751a2598df6937aad268ca7948b9fbb97c921ce84b13f9f294f3ae81cbc574c9c24955b77e42c9c87fbc625ae5461b6dde5ed533d4e0f6cc06f58c2e09d93a05f33aea2c602c6186160a08c09f0e0713c1002112cdca8843996a77095f1a673d439521a310c54a00222222351b8410983e59c6fc546bde961e8244cdf95d2892d318eb5ff1da9b4244c953c9465257946c294474e7a9812fe4952c1b10609a39c5072e193a4196ac5b1d617b8f108d399799262c8ea33417fc311a6117a54e720eb64cbb1c5c08d4698e4f06149caff29c69c811b8c305b9abfb019a204354238d6346f11a6bc565a516c64f6b25544183a7410e0462290183964200619356e20e250cb3e49cc0f110f307e64878e91314e186679e310dcab9ae5aaf612aff6d2d2a25a4ee3fdb2e771b47b84916e18c2b0ab7552c4f61f00038c1c1a1011d19163648c429842e54af7b80961924f0ccb14ef70acb93108f3bc09a3834739704310c64faa7122dfa13c3dc53a702310a6edd9eb3839f1fd18202cabd0128f3f9834d35e7d4ce40763ebc993e2754384b8f4c164529266d536574a94cc0773acd87e4f2628a94df6609c1197a753a718a91ecc569da4e812f432c7240fa6efa017f27a2c3daeb4c383515b3d7d4aeaa526e838d6380437ee60d01e21a6afd3df73c80e06a5f5db2985ff532a098e35ad8329aa85d077177f564174830e061d3c9596517b920a4a1c6b3d07e3bac54f218409ea2bc6038c31c2c83132a2a723c7c8183cf28b138c78e0861c4c96e49f30f3b938984d1825bf87d072c265389852d74f75923d37de608ab677d12a454b5ee21b6e30e957132ba80a6e928edf688331457c08c71a8f3074ec4846811b6c30fc5ada4f49eb57fe6f0d0665a1717184ce31b4450d2625f9e7a4844e920693a8917aa27c43833662b152c999b55cd7659669c71f79517fde1b6730b97f8a255f7622b86106a305e56e266726a3021fe8e24619cc27cd052b49924f4723ba01094ca0031bb080de2083d92c49bdaf71b3bfd28ed8e181fc330737c6609e190f934fe34e509288c1b05fe7979377bf430737c26092a27ba31fc777dc1711d9115b3018459bcef3f0125bcc1b5f30ebacfd87a5d2297e7bc13096a4b9986775c178d104f10d2e987385e84e616125d8680ba6abb43c694ae37392168ca5a24b123725bdae9c055312840e65594e97ef78030ba614a49724ed72ec8b3c878e118c581837ae60eeace8f1ab244195d0ef0e6e58c1f4a24edc73f8b8979e8e1e6394b1c3f577e8f01edca882c173d7ae6bf65430e55ce9cc92494fc1a0820eb758495e0aaa6cd5db88855c8e8b6692a022439bd2bd200ddc8882d147c46559896e9dcb1e3ac000818808fbe006144cde41490d4f571b3f3dc1a015c4967e497182e1c6c29eef5d9aa058b57b850baba92587e95df5b49cfac30493c9ab5936429897a5780e3012323c20222222222262b667071967240d3796609257e4ce2adee8bcf90d2598f7a44eaa74ca3e13db8d24183f25657e4a2c1546ea379050ac17116fd92e1575f31c2709fa3eaf590ca123183bc4b5fd2f8a18fd19c17ce6bb278e943d55ed46114c2a2f458b78b5d42797c00f6e10c1f83defe142c9616723004ce1c610ccb51d2b489318e4404881e6b32e5fdc1082c993fe0e3929cbdff4378260f67b952f49506dd7496e00c124668e971cdfd2d7fd8d1f984cd0aee4f1e24bbcf3c195ecbe4ebd6c5bd3e2c3fad2647a6c6903377a60523d3d61ddc28e123a5eace0060f8c9fbdb49d28d7e2c9ba11dcd88149525fa3de54bc93a31b3a307d4e69b493d225a7b7f4183672616ecf3e71e93b2e4cb1b52d4feaf4ceb215bd85b14d9c753dadd2f17f5b9884381d4b85d7ed59cb0b6cd4c2b42725f96413e4884f1bbac0062d4cc1f2c7cffd493c95100c1d3a12306cccc2a09360724ea2a76cc8c27c3baaca3c9a24c9c1140b93989c7489564a9592f20e6cc0c2b827e6e6e9b5e492546cbcc2a0adb5a43cdeae5efa0e1d2362ec780caced78fec2862b8c62493e3e75ce92dba41506396ba2844be12cc8c80a930aa1b69ecfa277d8e929f0639411825598ef248fa6fac367d5481566cfe9e3a98f492a0c4aec9cdf17272ebd44c595b4e452bc82596e8fff947ff2a90b9f47f6400e30c600c18e1e3cfa14e6fb539522dde4050b99c2a4939ff292e27b0f8f6ba864efe5d268280e8703a260281008040cefab0023130000000c1c90c5a2d1704026edfa1e148004593626423830222420148e4603a148180e86018160280c0602828150280602395888745e0f07f740bc92de1787fab5e38e3b6c61d8898dbe50487fa9af90673ba5b947c15db706850a1645464c6db1c3f4e85571413f2fae7717138bec9b43f0141685a492fc6754b5d73e0cdcc15fc8097b08af9aba08a4d5859861a83e7eca5245df6688966ba416391ed82930e791217004453d786b8e3ed7ecdd7818d46107fa72c558c44458556ba98d22348c3a513e96e7ed52b98193de2f561ed18eea15ec4d3dec5cb5b7e121f4cab8c16e1fdb6e8b25f77bdca8c4122d95e631ac18b254ee0954ef6f2bc2d7fc75c485ea966cb4db1701fd263f621e6bc7e975f62e1940ea46f3527dccfd0a25a7d412ab963eb4291505ef2382b562072e7696388827a427e37afd40e15a576a9c8c5c79d103e2ba6e7f24ce698abeff4e1a4b49f1efa31cbf08b42ccbb13ebc1bfd4f6d29bf224be39dc6fcaa4633fcb663c041e4a222e73ea42b60cd110f167746a96d324c65135742a4f6d6e947c735dc4d1947aa467788844a7bd137ec41f704e3a51a395f5e6b57e979b04da97b03f5baab8720b87d0f9dcd965e71ac2e68f01be7b263d6668696107a564a11ee5a378bf7611f93e7a04ed743ed15352c00806ca5e04111743272e5fe8bed665da32f3c9c1fe2722cd7c575ee9a9ceb5ec298b2e73114dbdde29b4a5ff4deb1f48873d8c52203ae1d98fa003ba39f9d13ab752a1e496f8c83fd7a61238791d7b0bd62c72d4665a0d458db1ebf2e44724cf0df06fddd309766e85526700292e03952e82bf224e3734ed45905671c1a2fd5e935b95b7422a2bb8b6af3a7e8e09d617a4bf762a4b9218ee842b5ce442828a925179a78d166e5349d293c6c4470305e1302176a1b3a62b15cb9a4d441101d13a55e995c7277384571466ad06c9b9fd048804222c738230351b5810ce3c27549dc46bc02f89ebeda7aa7bef3854200be8293b7ec1258bedd99655a072fa69290820bbec70b88fad5fddd7fc59bd4adaf8dc0c324ed04f9e2ee951e7a5fd8b7119fb84819c5b8d79effb430690dd71055ff28d370d0e1a06259211f50cc3712163a20854214653e40b9489bba3cdacc71a02ff88548f53555ca02887d0422fa3fd730d6fdd7d9f0ed4967c754e5d82c04420e8a6d2f05b90fbf7c7a48642e00b281bee9a72843f2203e4485531d1a79061edd1ce48e0a254cb4be48cecbf05dc10be05bbb41788620d48a3408ba5e9049310adf3a21f850c689a6202b17dde6f409d22fc301c2f63ac7a202dc9b866a8fd037fc4dfdeabcbd25dca99d5416805af2654717b0c55536e097a10713dba43dd02655260f8c04840f07d6b07591158827a02fbf90613087e7bd9e179084833659757e30d874c0ab231052b8fc8e65da72218b5bb6c4fd83b4c94eb5a006a40928b1d36ac3890dfe5d759252de4a7bc0ad5bb248328f3dab484f58a278e85be8416d6e2fd6d1d13413c092ed641b9d32e8f64bb7f004d84c06e27d41d1c55137b1f11026889f0c860b24266ea3b0d70131b941aab2d0888f6d6e2fefbc16f40d54490cb751f2f00964a1778ea5ee8f166fee89608e8261489b536bab6b7ed0dd15bfc6b37b1a2328dee3873620db4a110f7eb81496c05364201d0d5599e17d9c4900a619b5d5be9039d9bd8486dbd9212f61b825e49c7266aa56706b4f9662b2c865b3f0ae6b584e9748e96fc515cf6770722c06729d4ec0cc27e8e0804c295efc03a76d030fc9da39ff360dec3d655aad24bd12ab852afdab46c69c828082234c201cd7ceb44046aee52392a52768c7f64d0d3452d490bce32e1144463acb7fdd40a9bee04129b8185c15de4897281e225ece4a0df243ecc35933ccabd70ca586bb147216efc0b0eb0011cf0ca07009c64f53a94c412e4035490a1052138fdf44e737b4524e0ac48ae150db0e7acce4e4c7aaa59d470eed83bfb76cc99c4d694b7e0e6b1af39ba9bb9f7bf6096d8260843bb92205f956ca63cf697399faa680be838f9019d8565f13299c8a2168f6ba17a6f44dba8f2be0b76445ea8d190d6c34748a865ec9591a95fb98f5dbdc947e35ac12403c83a71aa6a6f558d7efdfdd060022b4269722b67975fc45243ec1b972c22c1ff7c30b7d6136785a56f7ed6e931255f29cde070dc64a11c6a5220166c44c6c31547474e7b241533a9f68f7e2188a8b8d9e9a1c42fd801667343dde54d44abd1c02eab4f97637decfe0d0e6d6cdcef93d42e69f83dc4a99e226e42ceaf66a00d342203af9d8e48d54b844f592abd77f5cfbdfd824552cb270c8f5f6c836d5ba318eb82ad371179fd5d2f66bbb68833edc52d6d0364a5d396325fc0ebd058398441466e275e03a4275d18f3629a35fe6c27930321e2e7aa031ca09ce1999580fa44713e378e9e8caec94ad1917cd5fd0729ce192a0221df15b78952208b698b1db162f23baed325e0d1b85f36e09f0a7598a6fd786c68868c9a9597c6b193a6d27469d73f2c1885a94971a90208d0ab57332dc20a23adae08d071e6f17ffee108bc15003ca8b35fcf9b5302c71d4e9a85237851ed9da88ea0742d4b85abd799c3678d025779b89358d4d4e90cce8694c78f5a42bc2006583fe3a7ccaa07c6e47314319865b7a5b3907768b1fbf6367c38751d6a6ece8b686f8fd0f5fa010a70f015f9b01bdf4be0371c98fdb8f05d66008242fc1b9a62bc7684ce72aea3143735d15c49400bcc614829722377858783d6db6215745ca0069cca9b072ccd1df8c30d43029060c61b1158ac4ca92626051d40ce2f8c44da6a0978c30d09225bcad0b650a0c9dc69eb379ee151b0f0ad87da583db8048e952d67367d629bd2655a7b58cc70720f236d4f7b4bbcad172998b45197862262a99aca439e22c6427a28b48f7213d57958e5a12c1f5c37f8e0f0ed0a20d8769f8b0e14528d3c480f91646a0b70a3714d07d91f89f64c8e56278b290e00040a80d340ea66b88e72f82a40e37aecbb4e88a2ad4bac04ba116c111855e1f5f21e6c808bb5232109a9da5a50a5b81e8a263bb5de7d0c643e53f4e82131624e2055dd665a20a99a83af69ed0fae63db41896fd0d047fbf12cfb94ca2266163e9df02be69e140440bda82a15408a28895677da224e92198dd30e6a98bc988fae40db589c8e594c34ab961ca8cbbb0548c001855aa154a5877e8ad0fda9bec92d5526b19790b0d3336c8d2a0ef21ef2b69f889e66e909121a8ae957ae966a593b000b86776c02543c594a7566e327130cd3fc1e784c464bb9c9e0ba68a1f1747066e69f26a6870684af4731293de40a4633aecd87d4f4132f168e5900d8598682072352493b92111aea8e10f09733bbca0a13b58f01a1b7520b6c5f4d7eb845be6cf69a2723d1a3d75e8b6ccab9aeeb93331a0b3f0da85d37a934b0499eedb60a2c4fcd90cb5253d467058e03402653f53660c64d0e0a48030d2db300995ee86433b573828130e1df662044749e5132e23f40a410c324751c32659891e7fdf23afcb66e0dab28055e550bf7d974096417922adbf12a9e8aae4ebe49890c425f72890392889212328ef77820a13051d4ef72093be55fa025bfb7606b9a6002731613f6fcfb8bc12e5859f20a685a8d3dab2c5d97572fc01eae327f7839098ca355196541210ecaa5865aa460e31219605de7c62a630908fd3e5c330437f0101c179033068fcd0978c61ba4a516c8dc2024af4da5efec2d61e65326c62d85576e2ba4be659d45a702fa0a1ccdd348d34a265b0d5f2c3c2259d5c815602805a1235ae72a54df006ddbf854ff6afeeaec02dbfe2218c978b59bf0974e9a4a5878124079ac0cbca1c2d41f448e1d710e121d7214d40b7138dc55b2c6516672d2f7e13ba9ce8b9278c2a485ed195011b238fbf7a7a07b76b0a13b1c58043d92af696b7a64228e835c350d47b83b00d0d62f209e26ee89c7b91745f7bffa210e91f81a15a124f291e530d0071baf9a679378d4c8f0a036cc76343ad5d3cd59154aba45a42376e6fa60d3eb4c47d15b62a506602d7b64e2db0997283f45bee9de80a3850f5cb9a0fb8505ca9aabc0b48f5e2bfd19debf82904199c8a6cbbceb7362d21296b4335989acb64bc4842ea94d8fc95100b1ce605108cae56e2a8f73e74fcbe0a318a0aaf91fb1c9e2c3822257a280bc4c09d69a389b83870c3155ab1a7faf05768ccb0441c23207a89b153e4656d6c8eb31c62b24ea0db649fa7ce8514107d4a54a17c86971b732c3276a2c0e11b17f6a2a97308abe0fd1aa886b72b1a2780f05c0989f69d8b8b3d71ed94a8365197580b812e870b9a12b8b6273b0b3af22b90ad142ba732d2266d4b1caab256e0b048172cebdd13bd2d4b0cfe7528b2847ecb696686f810d9b82d7928bb2369a2f1a4f92f13ecd22a78f7ef0716d1b32503d32607df515b4d0320df2f07804580ac8544ee0a304305c55824d879b07f17c78890b00139a706575f922ad738ca99406743357b6a02fa716645f966eb6a3c574f95114fe330d2695c587e752300207287f189aabc5941c6403b12d56e8cd0c6f73e0e0d6f295966bcb8595dcb896e16daa8d1d3eee3da7014941b3146802cf2425c278c01b884a98e9b8535a7451df41bc4e79ca69be91c866c2632ca41aec791888257327ae082328c62f28d35bc4364d05e219fc862498b8cbb57ec9e30e0a38d12acf2d18b90d6b2cb3610b26a3f5535b9e497b87c7a4e47ea6279229d647312040799e95fc176e7409255d3b373ec24e67126a43cc4d73887f8fff6481b9f7d4cad96b21d2de773451704294d8f1e8b53f8d38654554a46faf1e975b8bd7808f7c1476cfc3505bb3b1d15ff6f060e959adfdc537201e0cb4b81bc851c87b9b2bf2455cc3218d3a0cc1be3269eef01d27d1440ad0254098210a6093f7e1d1029976410530902648e93ee6370d3a62b2bb09a4c9be383b746e04a849752f306ac8315a5e32e8286bea0e486dfdbc6c584392e29d72f085e6cf9a86139eb312e2b92e12123dc6447fab35af71e8f91e8c8c877fcdbfa02bef4c2016ff38d99c56995680c754823083da63f041c3cdd3a51331c9a97528eca29a96ceaf45510f8319af33f89425278935eaf3acd87611f9a831dd343fe8f43b4fc4c196f037784ca5586a13d6b9ef438ce86bc404ef55f5de3de194ae97aef54175e66995f8631843a1e4c77dc85623011a6b2244d8d83a2f14a451b283ffc11595b114f73c392fd8856502c4abe9ec0268865f0eaf6b8cb06330786ef8ea0c162b7bf67eef6a574e981344105542e7928e719504c12200790671efc0ceb9043f4d605b89cdfaa9971f4fe7a6248c63f89ea41d5b765b8811f48b96652a33b36663d97b2e091ae8e6699a2d46451eca1e5c891134672395e857fa3b65eca21a256ba468f29d2b8e549a4624a25d26f79362016e2cff01bb2f81e12c0bb3f2d9e5d69104acf6b1dde806c40a56850549837e8876423a22a2d0bb8073a87c7dd7bff2e00ad08d52977da42586b0a05f6d9c337312d5cc66905e2e47ba782fae388e7f2935b0ce890ebc4036845839155b196a3e69ad3fb9f06f3a8d1f6a1635da5b25a2169f0f9549ada4430590a3ed9577fb0fef34d2f07c8d19deea8950b0933b25dcd408d81aab8bf01fbb1bec9442705054145840183f59cf7bfb34ec0e15f0d0b4485f78ea9ab6f331c92621cdf0bccc3b552af5fe44df324a46e24537e3e58eba17fffa13a79dc5c50496dca020bc0c4f74b6f23a6fd601038ba7bf10599427bba10e60b4d1ea55f377476da9a1bbd62049c9e67eab2508fa744d8c6de866c3dd245e1f04aae98387587395c7f7bd833ba41c347530689c28771a89103fb8abd6813b9e3c822d1aef70e397ce54a9b7b8788d34d43e82e5172ddae87ad945ba4e596a6deb2ad3769d60354c0bb87c7411a3d7e8890ba5e845078280918224b1950a7929c436908795d9748106d0a4fbad543491971f07a76ff5afd0280a16b3eb89f342ede065a71d72cb5d94020754f065d5d631c372c1b474b3d57bf9b2ea76bceb3e81088534aa09ba1e8c7595f6cc155096dd28c7b0eb44edae38a106bd50560f395719c1003a5066d321c7ab5522e2a9ea220c4116b065f89ddb43f3cc93459c340cb1acdc2c9f9d56521211c39dcb8409908129ef8029f141734dc1a1b1f7928db6e793ab1d7c148003bc23c969479c1acefe14315d6af451b031286d7a87ed7e913817a53c5bbe7a8e27c9b837084616ca5ea9441a415d3f8f90fe747ec6d4508818f5c9e74738e3b399694821f2ebec1b19cec2d6f138154345a0560ac98420ff3b89724e0a924199a18ef9ff9f2dd5f462fc3114f139a020ae7f3450c03273646bd48842546e12ec946cead388915db31b13b306f2a84b3643af45799f49f68b2ae8f2e30d4f7324edf3f5b747c803ceeed0158e029b286e081dd26bdffc398581ba819a1e135fcde141ec482cc0b8084af5f84b2e2e968490caf9007dcd5f0bce1cf5d75785a505c6a78c87140cbbdaea6d5964e0152b9287c84b0a40980ea62485169852e4d623d613775a325960ed78a068f3ac4fe6d4519612113cba13733bd2c112e9a7abaf11641f0ca7cd73505cbede87664adcb8941341aaefcbfcbd92c04bbc48a5590cffbc3c1ad89814b1288e24293073a4ecd9952baf84c242da82ee0a5bd291ab6a02b33252b6a151d1a861e75c768578e8ea04af5942148cf52b1c41058cfc8c36a0f7c352fb6dd7b003aca6de4349df1b7c4e3388ceca7054e75001dda1670c6df98053ca122bd4a2e3e90fb2f3f22e52d2517ff413205c2002f44534d82e8a7a1e836b01ef8528b23ec3db307cb1dcab66013d1624809bcdbd1c961c730ef6a7f9306c9735adc94ffefb6c322960607804ff10beac4c1ecceedcfd18a03af372cc3f6cb34980e935d25137cd07c616603be0f4b2a07ef4eeef1e5eaed3f51ae8d09a84d1deeef6af7e3699ec109279870a2a996e9e5c270b383649669577d634f5731735826a6da888f2771a338da994fa19db03482cf63c7f4d858986c89d73a61f16483ac471bd5943914db782574664ca56a1318368f43aa2f053c153277374b889b50106cea887746cd5e9e02aac46deafe20f4764d7857ad46394a242e5645c8bd5ec773218b2873583d20fc5b4774ba28184cfe694e1fee6e4ee3ae3a9b9af1b61e2777f68a38c1f72f6266d892240891b4183a407fb87b9feceb35d5cb0293349227adaed99a40f15a038ff3778692c02baab4d27266e2c7d5ba014664887a5fe2feb2f116f50122669a6a75ae4b8cd15cc58c7b8145fc2bda1de8322aecfd147918167abc5be6559478c018373c21ccd187521a5f440c26554f05816b3739aedb41485ca35185268c62f87cca39812baf86aae5c21d6985dc8c2473ab5e4db1f96a153ef05f4525804ac8c7ccd8692d10ecd6af44af3ceff9f22a28f684c718134e588ed8139ca63eaa1676103d7594fa5d1ef0534ec9adc38879049cbe26e66d552fbe35b1bc6b26a176bf3b834986d120b823e99f9acad1561b02250f2965633d6b142783f664d1c380c029a94db6efc0b3ea82b8dbd8a4d393072bbeeada6b172560feee9d87a146f9a6058406b30e16ae1d34c3e5203ed9537a11b70a61c63c3699e246e6dfec7f871088e4e896818cda1aedac26163aa7a9269aff9b8606f807544230a1a7cfd465904ac3a727ef7939123596ae683807db4c88713506ddf80c729205209b1be0f0605ad131256eb677d6effe4902c6ccbcffdb6d4a1be14a816b271509e3bb414d7dcb58a744909edcade6d0ee86a8a755ea69da0473325b2f345ebb53a0424899cd7222a660a3b3cdc76da02986e9764d9ee7781b7eb292d374c938e103e623374f45d860f55701b37e769dedc632108cbded1a188fce19f3e7124159c8e8194c311cd6752c6b60bea4327ed18c309085ebdf4610adbcfafa4e26b525cf32d4fe03f1aaa72969550e097b4c8e01db0c1f8cc34b276bec17860dbd883f8e211cd5dd0b7bd9f43b210a03c934a500edd4029215229896fcca6882ff41ef68bba25e8694c0bc06b5deb0a092a0b283b20bbcee99c2fa676532e92325f30d3889a57bd43a008a8d9deb567a0793b7d0e54a8806d1fbc2f470135ac9342496b140ee76cc343c156717c80d9a96e33c0440977054253678907ffc47128f0f0fc4b02c202d55b0543061518eb029239dda72cd5a4c553ff78df827a0569fc41a055e5db4f0e99daf4906ad32664f01ad9cd287e93460e97d20478024b7c2dc04dd5aa1bab89b8fe23b15ed82dc0b13b3b5f69646d0312d803681a2e599639667168e271239b59b7c969f7c000a36d14950b2610b9823e2c4d0618430d2391de33a34a934b8c36ccd273a397a9ba33b2028391ef17155fac62765a106c8ca4466c21fdc08b4830e3ad701cb09043d8c8653876073976c44f90905c17d03158d47f35ae81a337f27e670a17ad8ad148731d346490f05ce8a0c9db1347be4d3d4e0cad632cf3c5efbfbcf2cac3a1649741129c65a6a18be716d2d711057b66b449ea80d36da878bcf492abb6bc8f8a18b29fa90bd234de11baa044c48c2fb2cfd950ef0ebf632d004484c988c2aae95f42edbd6fca9454868ebbf88fb3232b0760e3f74366a94bfad844ce93d01e3688570c0d36073a5b102a4c5b62ee4c0b1c41f5072ff692d16297d03f4a7982e0b99ca08d16e29fd0041afdecd6a110eeb6e1df2815f83107f3b88ba95e0e7d59f704a38f05050e8cbab2c32911161f97698bd3bcdf88c51c5f43222897c611d95a4568ec9a4d041b00e4d97715aa87f64d248e2e7f6b44a228287b4beaf8714398e802f7c6264208e97bffd92843a5440b7a676432bb1248f1fda1cdfbb098abcd1b3bf6d5c02738d829f230889c9fccaa7cbf7a497e5ba6eadb72ebef2bd9cf1860a6121b20beeced5d7f51b43321775c523180c99614270c49dac48e9712360a808aac6d19c3797b506979c473464326e4ac9cf53c5a5a6d80652c61e82924ac9ace02db6b2c990115af357cd739752d83139b4aa01e1d4a041b73f4568273e9025fa12ab87f4be1fb2851e31813c2cb7804509e4f60868c5bab629457a51a3fcecf6b08c21306b13f0cfaa11e04d82c13a5a79772db16d86aafe16568024f3a6316b0a25d94d63d89cf08cfd3b7e6273dc69e1f56a52f762b1b929e9c8c895216dbcbc718de22fe4e2318b6e5d51c8779d9245cedc28bf1e7d3bd299b06cf916d054167a76973a6c8121d58ed5054a27ba87e2f5a85126302596195aee584881d3121e4ce707e3fd6b30d68dbf776f949631d9178ac393910ee48edd5b64b67f8cabfee0d80123782965fc013dbad71200596b36c95b42483f6c74c1387f6c8e0b5d2a8bbfae5f0e2686123c4270c78852cdcf11c2f24c6ba44c0c7ee2fa17525d4b4caace17531b98a1d5051cc77115128d041b9cf5802c22ad88abf0d9c37279431e955c2dd3de8d079164100fd43d30cff0e61cef50c2bbb004dca57dca001c430cf8ecfb6d6bb893c859454d44808f665845d7f96f28edf12915168d807a43913b177928f6f83dea71307a1455be59c059da1462b1aa1a100b9f33c6ed9196895142be130af6cd9bcaa3707612ea7a83f3e90c7f2a61c222d36935dc4588047932a308cb0613bdfdc1b5104dcda3c765b022b083f0ae4835bd1af2fb389027d567a29cdd90f708f6c9a752af695024771addd52013410560e71d59b4abc1c7f687dec5d55b4ea00915a5191cff1f98814175f997b9c81dd80469c847fb3dae8102a464c8a47a3a7bb54ab501e63764736eba0026a436d90bff10e735b119b464d526fd793c0084a10a2564a468dd18eeb7263408ee3c3938ad16585c0149f8f30f1f9e0b34bdb7c5d5c736c5c113b2bc3677b329c918c40730cfc84fa9b4092fb91911c926eb564ffff602d92c1d28741f4eb4b678cd5295e420c12ed8ff24a213397cea93886548531e7af2cb1c82531c411bf6074f9b3a8e46f1852fbf07ec4f16bd96fc1d4bd31867ac61f98f64c186aa0dd6bf0d2fbb9fa206165ab802905f6b46f60a52b8bf9a6d606e1b6ca4afb6d8fdae3d54dd6905deb43075e60ec128214089a6afff90d7d266331bd5128e51bb33497c4482877e96cc893c880521e511a11c38f0b988488c97316b82f9522e387022c0d0186954b86c897a080806c331f825286e760b50dd5234bed3a59be9124cf3245e354e5b330c018872eaa986e1e74dc0fa03ec7169c8b648d4ff134dacc7ded08c219809e2830922c1cb3994f08a9ddd99656561ee7ca6a4f929175d4b2d33e31026cc5cfe760710a1d39ec6c21a7b5ec25789d765acd4acc912688d6292a451aabb32719508e294d38c8999b7023d9bd17cc651395261c49d716c4e7eda87dc294a930d930834a0e148e799e9b9a0832030157b434decbb93c9b654e44c7231a1d31a4f9ea7505fae4dd0140e00ab389980ddad63ac0d0ad5b399aa00de446d38f1a68aadcb0ac780ac1079c249a5f1a110e5ba097653569155b51d5e4074b788e75fbb985f897861e22d51f2c8dac14bca38bae25836bec1e2b74d43d64c2c71968dff3f173c528cbbf43ae691bdb6cec8976369161fdbfb155038b33d018cbbb50ccddd48964cd38dda02ce73ff7faac9d04a565d2623faa3da43da90efe0aa49b273857b82c9c28d98de45a4056768b53cdd7d6206987c1ab2d8242bb132147d004d18a5acbf727bdf74224ca28c5d9c55046fa1ab180e829fe1e39f6e606538ce00a7f3d7fb664d810ab071d35dc679a36aae3c14f5c8aad0cd92403de892e30e884a74d6197eeef58e002f88da2eaf1aec2e305ac31d867fb1a58a29921fb5ed543313243e0d13bb61ea083551a8445b26251375979d4dfa7c27e196d18ab6615f36672a7da7514180f2c75a4f2148541402ae7e904d3325bc5dd3b41ff866cf95a5009759d24defbd9f1a401b4d538aec3fb54840dc5446004f49aafd0379c76cbaffbf7c53c3af474af07231dd515b288d40baad6e2150112e9b6511ab557301e0962b16f3e1e7cddf7dbcc4d15b732c58813b1bc501d7564e6532f57cbcc36c88b8f82caee9684899822d3e406e8c5541544a9610c25e79a7f94b8185f5eb9770ba7ab57f9f1bf270d33b517503f88966f0ad2cfe249458564382009058d3ff73b38daf8e6d3ae5d1a251cde53643a96903b65a83dacda7d82ebcac221da482a8f470bd74b5b4a26723d33182958bef42859ac342b8fab0b697ab8511b5a5c411b5974d64e768e1587adef59a73a937a1d3434d699add8770b2aff1b03d6505a2ad850882706b0e2fadffd1dfbcd5c36116b6461cd00cf0dfaaa97c4c79885dcff960fb0626f528048a5f1bd23fb1bff25f1a1c4cb37f1299ed8a3d850cca57fea84e8de504711f551511eaee45bee3bcc7eb71e0a1c9193693a4617388f50ddac106ec9ca9caed71d200a83b02c11b673c81d1f567d2e41a8c7823177aab3bec86dedd7ebda4a89c6455a25627e6800d2e34930f87dc1a0cc8de9071626c0ee83c3138409c010c08f0a6a0ea87b7fdb348cc60b64ce4cfea57fee07d16f0479f44cf8fc0eb7f5e2889fa99887eac5f975144fdb3be82ac50e8dc52dd3acbd989b3c1a9ef74241b1bb0455aea85655dc6335f8a83c4d2255a5856b7b0bfef37bdfbe3a5675ef5ccf6e1277016ae4def51343468c2967c6c95b9c21af668068f4127b53d7bae34db806809b5c2bd03d0b158da8069cae3cd8cedbe4c00b571732849ef372146e82768bf3c5e7cd1a5d7d7b241c786b4d9ede613a1f4f800b7acf8c4f3d7e7334fe1ef0ef90360390811143891f91de1f6f7d77b8822062e3c2f10097ae8709782e3f0aff3e0171de43732eff6bd158e7d4b1f1e8799df358b84451019b66cc2e8ae271fc26b383c99358ae3f99075a0220d126eaad31e75263e9f4fe10c898544db94de0c7bb1dc1671138e851ef2ce116c4eef93bb217cd922eba6f4ee0b4538ba54699e3ac3d4831ca91a61f7f69945213e96fe5a8dda63f5afe317c32244e8afa474dd056d7d47f2d46f762eff50605abd3fb2966349e897a61087bf5cef9ba33072f542a1848ca49c6f4f0271cec3aa2e1d844c6f50a8665648cae5f710420f63b0e4843ec4fe32c6b887ff83b01a76e5220d4118f884dbbc3a0e1c9b6b20a44b8318bd07d859d2fb21c05a721c485dae4b9727bd465bd8528e2299d05b5f9624683a272cfa1d26e7dcc05dd395cfa92ee96e1627d538ad3028762c740194d5593f48e184366ed1407edfb78907bf42e9b72b4ed67321ab83345edde00dc797dc0a887a40b9d7e6c04e796fb1f9f7725c2c95ab88fc7ed353df82cc26d7668bacb5ffa2c056cac7897f99e9010cc300999d184b4fe8624d5cb0e280bbe1cea31a0b26c67366f578945f8b9de8f615d74f822c598971f5a4da798414c352500045012ddce4e1584e1d94d092af69041c4eb49b8dcfb5d26e4ab340c89ea1026f54c1ca6e23c7415f69db89145c690f764a42b25d5cc714173cee86846c1e9355793446cc9e25c2a61dec6da39242435ac2ecc6e52fc5c31c891d878575e4224d95a285c08234402a7156a4c12503104cc183e660aae38c59e20ce22f9ea2b79709cc32263b34c6e6dfc8c278a5645dcca9782d4441d078118c376ee310b6eba3dc8ce872a17c6d98267aab5ae29c2809a9b484f8c8452ebe55a038ec1a29c31deb96e56b1789f4088d37cd7c84ee30f383ea19e1ca94fef1b3ad7e6f8f42fbf57870436b8f721a259165d06c76281907f51a08c6b968021cc4596226854ae0f162ec61a6bf9658bab34c553ceb544169343c2cda0c9b502e523110898d59232a28f0f90ac81a098199b6a2f7cfae5cf7728d6713a76918bd33d5907f1f3070afa7c7e53d23bd75125487cd71a01760b36b293d139cf8b4915c3ab8b2ad4c43b2a802a53001256fd7476dbd65c6dc629d437619852553ea3f0a884e88bfe9db4028af1299535150b3205288b4723ad1730293e3a4bf5fbf09de32209bb94aea1e19321009810d1d0f64748b4a18ed298e50b92b23728507558483440d2885af9f2f8e809f26596a477c90cb750095f12c0915af1df29aa46cb880041168c3e5b57ba348b8ebba411e14dcf4f5fe163b9921a3cd03ad24c6bbf50d3580a66f811ac89c453d139b5ec933d1605853d2094930d4891579caf79339ad0476ab9490de2b5885ba05bc4738a971d0eb9a9a0b60b17bf2efffa65e728c6cd18184638521f42bab6752f33608bb196800108d87f2634eb308738049f047a1dab01dbbbe6528af7da4d4519c8d038852047159141ee39c9fb336eb80719cd0845c4c8388323e16c2eb3549f5f31debe0dbf1c37b197b1c108094b3092283a3141aa3de914e7e4777fa24446bf08e6120130d33f4c961a612a585a894b3dd649587996ef1be70325ff061b0ad195e9b366b6dce5a90d6ad504060358b269b0292b8c33a4da65af9f468ee01998ea4542fa29441469093db72249cc59314077de6902dddaaf9580e83c6b89c1f231526a20c45682bafc24dc2b4cafabf6c39d9dcc93f042d03ef307398d06924826b24870e043420d9c40c122f7ba7b75af5d5e512473d889664f241a48119e26ec6bac9914bc56bd38fc650726e04c5111da122c3db54be965988e4c100ab11c6c120349db4870352623ec341c448056d4b9acae1568e78350b47fb5d2a9095995f1173b4248200979b7459b02d84f7c46f0a28331dece0c933138d813e51e1c296fb83143d1cbce9e882b495d04cc84aec4dd80e1892ee5beb5e394a24d58cc182b7c618a7201c1ee88e4a74aa89c426be06f8700f650b32099ba444ff0e7111100e166699627e4b89edb8b2b860b397d59c8389a31fef2b4fe4a6f3876039e6ebaa0f7be923f52e1f6b28cd5092fcf681f5e2e3e6f5c247b2a8181907f18aadb62883a137cdc2c92a26813308869a7e058c472b1f37d0a7db811a9d9702f804877a5bcfda6966460f423486683f3290f0f7fc56a113cc11cfcb1f114d09f349131cc7867159ac69217333dd8f682bd6149602b1fea51570ed72c6b6fc22ef7e4bdaf4d2268a21c465186ddbd428e9120f29f5d82be3906948692ccf196558681d648a1412781deea871e776cd61ddf505af5dabcc5d4608c1cd3d38adb723fbc198b8cc197e2f1f16f5efc6e4e0fdae6e4d675d4f8b8a8c80a21038230e324f1934db31512f04cbbe3cfd348b716515d7d8810571666a00f3a7e3ad44de69401b9501f53bb2fd6405071d2242bc8080063163c9c33e2457f7c7ea4194d3a7ba0a86ca101c5e3aca405da48e64e7dfabe7defa89dfc56b71ccba3ee8b145092d7a2821fa2a6cec31c26b4170f14fc1ad6e7bbaf4e024cca988e62c2b8fd4807697b653a2a14d82fb83e51ab44ed50f814d80fb9e92c70fcd6f84fd1463ad1e415b813d27c2b7cea6d92a2070429f1fccb1714e60ce33535e4d2147f01601587c5cbe6723b14caff056b2c2a136d00d6b402431bacf30bd7ddcaa3d7f2dcc53c341296985a1383a1fd54752fbfee4afb1ab511ad00f18b46fabd05e7085152e359fadddf563e577951ae71e7376d471fa4551b4da7a414ab5a97ee548f8a9017718cd2469f6b0ecc190530a778fb700377957dee1fac42a5c85a7f18fdb7142de099a35472a40a047810930540bdb9869daf2c4f3e4b45c591c7ed0f3c3fa1cc156445c57bcf816e09ed864544e9edb014c1848c23c32382b5bb3200899f53cd62027a6c3c33d037a3bb85a42a917251856f16d27a4d0ad0a03bd0ac981799756d0e3887fc9e4d6c39a82913c08a026bc120022e8a314df0e2850c074207335dc211a503e586e3e05615b451d8d9414bb88d223df1a1d7beffabcc7ebcd01141496cb6d0ab2c2816c5b110c3d4f70a30d7890550cecd9da5d349646132fc0559a1a335d4b33ac15018c356de79072973f5d0055e8b2e05e1f2c576a31a8d8cf0efe288ee59b99b6a8f4c7e5603034bc26350582c842174cc211a3adf896b414135c073b1ea019ad10dc087bc0905ae85e10b40549c2cd50bf3487b507fbcd06652bd8d2c3bfc38c18e10c6bb2729652e80c3cb176d1feb466df525585a6cf87e62f67245583b44aaa84ef1c1e9c5923fc05807f6d50fa5b42bc17e081bb5561122fe545d77063ccdfb296948fb437a08f1047465a5b35c509b808ba449c9fc05d36f55add2110d71f9f85e93ab7bd1b64b16a7e87ef567b9a34806c96a055b2caae3ac0f5ef60b3543cb128b8c99639860b86460705ace9ca4fcb7e794dc101147e29f438fb05040e1ee73309a3404ef1c866c3a42286b429db28100682e36e0fba46572b305992a20dfaeec350eafd98da68f6ad0fed891ac9ea904005906ca386c578ac1e14cef7e005981522198ccf808b978607360a8d55b7930bd80b4755a74ed251b59f71182d32aee5a20910fbcd08851afc63e35a88c80785fd739fcc3c239c30609ec827c2cfece8a96d84e45f0ccb43ca9396db76c6469c21c0389c1723ab2979982fd9cf0feac19fbcfe453f3fea7c17f3ae0e060315a4b5fa82ed93779147f8b020a883d286f8dca83e60e0a21b6c48ac665840febf42ea51eb08e41f4e274d2d145c3435159280f762600c6a9677fac47a02283e45630040fc143733b6a64153dd762b54c88b47d6818120d1bff3a0a3dd1f37758f273c6d81f504a4e3cfa7390fe7988cf81b2a9170faa5b8f18710a432408389a5aaa8b44e20e613f2552ca6b4a6683490765e498460e6dc673a90a7386948c8be5f213f5437f15a4d3e5c294279a57add3c48148290def8490a0dd8f97b748f408b49eb2e085f572c03d181d2dcabcdba6772500916d4bf854719bed7c3da1a840008003a241b758f219ff76bc5514e0deca70441fdaa885737b5f3dcb24a2ca95bbc9b578c6297744216746977195e3306fd6235c64a419481aac91fd7d501a873f3095b76d8c5a7017a04a37b3550b024e9f3ffffffffffffffffff47e15b56d96f83cada2f7792241aa37d0b8b0a524a29a59412c31684803cce35d256c8c3bb8e089e078c07890709326336fdaf438972b69a4c5ae49e0e15ee143c26516e93eb8f137a4e8a5b1225d57c2353de4f64be638c2047b2e3034ef08844495b88c7b7dda5ae7523b161a71ef08044419986b633ddb9e4ffccc0e3112517f90fdbd76e6f18c98e1a337470c3e020b93123871888e6885b5cde4d532ffbbac4d693939abf6f3c1a51561125645c67e7850c6d470e12dc800723b4aeb38b4dcd130d22942427a16af2a8da6311c57c9f9d99e4f45044f1c4b7cf6665db4109135130e9b42e444b88289b9f9c326a8e3944595f4b6c3fc619f99b87218a257a2749d5991e8528df6b4c82690ff22044e92f7333ae5d3bff6ec3b0e028e13188e2268f6bf7d97ab5291a6c3a66182f3c04511e997d5d63796d6a1c38c6084449b48afa2464bcd8ba3372243810c3c65d8243072a80c006d8e00188524813cdd9c4a43149e27f286652faf42b33f99fac871fcaa3a967dfc4d0a6f6f3e84331a387ede8d314f5123e94477f8ea1bea26adea006bd9bf0d843c9da53db7aa710d1be1e8aa74d67d92c4276d00d6a302399c4c68c0cc135c2230fe5ecb99452c275748b060fe530e184763001e313bd3b14457b2a9943c90ea5b5d2e0392669aa4b9206db0c306ed4a80102234712865d1dca9a94d9c8991c5f34a543c1a48e25262549dfa0421a6c9b3ce65012af477fc442fc6395434147a3aa6997121b336c9864878e1935b031c65103e3460dbfe4c5b891712885ea98a4e1397028955242beabe720aa9b379447997acd4c5a3714466acc5b99243fc79c471b4a92a0e56f6b8270f3cb830de5fceb3c237b33428f56f05843613b7cb787d9b841c98d6183c48c6183e2a186a2696e49edef79a4a178e2246bcfa6ad316934d816058e869292df234c3c1327a9920e8f33143e368c5dc7353ccc50ea8cafd161ad3b951e77e05186a277fdc7ace8128392d4030f3214c6d574329563f2d25a12bc60060c3cc650f8d495399c4a0ffbd6430c05ad53b3124d06a162943cf00843316a9754923c4160b080c717cae19327af2a9bdf0a794193321ad3b89c32647874a19cceab37bd2d73b7c38592bcaec992ad2d94e4b64fdec42cd66e69a1589a846bf2af0c1d9e2c94e6c2b7543d59ebc73db0508c9a61f49a92951ff7b8424966107d92581d2b14d3d99aeeb7af4e237a54a1d899af32ddf31e54289ece26a612aace0f784ca114a234e4b5979c44939142f1dca4863a119f2dd3289424d9acf17d835028c724be8ad5c8f0d4d7134a4a66934f8ccc5251cdc30945937df32b161e359b24376a9c6d42c12c36f48d07934f763c98508acdf8b5bf138f251477631cf17184095a251e4a288b868e26a63081e1918456c7cdb65c67ddaeaa3de96c828e09dff9ae1c0918608861e33c9090bdad5eccac7dfbdee8f4eaea0da1043d8e501a53b725e892b5e3598e1d3ac6f03042926cd958eb5852b75704b5738f2e75e3a262313c8890f252dbc0630868a7eab686ccb7e8f5364f0b99c4e8790f2194d368683f2f411e4128c65e13e31fd46db29207100a264e640951e2efc9ffa254baa94f29e5f9a224c88f9bfb35fe9ab01ad08b92078f252f4a22324d373fdd805d946545281b616e757a6e802e9acfdc8d8d97b5f77c393f2ddbcefc373f8aa001b9287f9693acea64cd7dc245c1747b3acd27b728e8a0bbd4eac6f8e1c4162525faa235ec93babf16e5ba5056923c19cd8468511253f847116237899f5994c39b30e1419fd2392e8b729e9cc345c61033ea5814df94ecf9456cbed7b02829efded3127e45d1abfffc3727a1c4a82b0aaae34c781953035a51d2a004d127de6efa2f35801586fd9af67a2eada2b026e24ff7d4c8315145491293d6eb6f4c733e152539d7a3ca859566102aca213ac8ce289be4fd14c530f2f65d1d5394ee94fd8b124f4a514eb25e9396b558c6135214f5c4dcc97773d0cc26a32826e1ffe7f33496af8928caa622d3feeb9e92e492509484cbc6780f8a720a8d6625fb53f5ff44498a13c4c491393b833c51ea70254699cdfa7e27ca273f4288ecd21571a27025dddec56993d7d94441c8ea24972e4967d568a2649a5da3b6e9cbc433513c3bcf9bf194f427268a9f49c47fee1c4cd7972896f8e1da33dc4ccc96287d69b4cb3c6eb556a270e922f39f4f89926a9e9855f99328496221dce3d8660d5f1205f59d1fb4fa9b6df79128cac63d25c674ff690f8992583af595a78aaef58f287fdeeaf850fa7fab7744f1ed4c67d950df736a44f9ef63878769df51c2886258134b45958e4983165192a774f439318a285a083141d497b6a6135138b9ce5478f6294988287ce7745a3fe5bb7f88a29b2c729228a5cd3444c15635087da16c645c88f2ecfe69874e9e494b88e29aea34269e50b11944b9faa4e9646903045130ad8eb9ec5426cb0604c21c47768c1d44401445b46a45c96126bd3f14659492ca6d6333637e2867eb51aea6a64f69a80fc5ac9f34df667c289c5cf29d923d678bf650d630294b57c96659480f25e16272d096bd934d79d83aba67f0a4040fe57993bd46fc3b943dc7c75cdd4e6a47762849fe32abc9c43acda943d94c9031a8d734e51d3a14646d5a061572cd63e6506c35139360b2e9f45d0e7d9615d91ff58943c9f3dd97b02af6561f3894fed7e4f8382a23c3e70dc5bdbe9263f21765b2e386c288128349cb9b35b1d386727faacfd9222709da6143d163c5786776d650d820543f09631b6a5243c963a84feae301c5d8274f63ff7b0e3ec3a2f831a6df983d4a5bcbaf286752ed1f4f8adeabec8a92d4d1deea9e67a3645b51ca93414ef23c2b8a2745cb5ae8f25acf2acafea7be2a4df62aa9a2145ad673522a62e55494343c85ca52621e6554145409d2cb774748554f514c62ba18e5dd9572ad298a9d459aa8763b529394a25ca1849414c5f42749654aba47513a490eeac48a1dddb28aa2203d97eafc9a1d4dd45014bce73787eeffab4e4151ca0ea24bc917ef9cff4449a892d9224599afee89624993a3b99e3a5114dd63fee2a7f35a4e944528a1da26c8d6526ea25c194b29fb182337999a40767c9ef09acc44c1c424defdbb6b662d31515093f29b7e7bafe41265f112319f339628b8bf6909bb57a258a5abae846977d12951cea2ab4e6d492f3ac749143c83ac2bbd126a334aa294fa9fd91d4a5776188992fcc936d77f48144ec69c3256c8b0ed3ca2981d5b25ad4893543d471494984ebc26f51a51f6d7f4fdad49ed99c788b28c7a74f7d7f11e6f110531d91c36bf274f27459493c9e1257627a2b439cfafd498ac6f1b224a629fdce4f7df6dd90e51fcf09b57add33f313344393e79966caa41a9668528677f87d5a0448882e9f212547827b90fa2b8a2e413b1db9bbd4410c57893e4a4ea04a97307a2a0e49c04d75052c7c4f50188d2496f63657566f3d6c71fcaa2f2234583b823d5a0a1c375e01063467df8a12489f327b39c383145bd616c9820793148d0f8d187e29af8def25311a7278de34371bbe489e2d71b6f9a8f3d2417aeddb5258710ea1ef4a18772fea4475baa7ba7cadc2041810c19374872e4a1183baeccbd6bcc7c3ff050d8a47fbd3c7b6885bbb801138800021d400104d424f171074c34ee4b2e6cd63c3c3d49a3aceb4bfed2fcb04339f507216b27e44afa7cd4a114eae126a928b9a69be1830e4599d15837df7fe2836e74e0860c193a1294630c31747ccca11c4b36c838a34a12711ccaa1a04564b6c344cfb8350d361c33d26e7cc4a1203c97ad5e7929df60f201879224a7cce79cf119e9d8a1c3d8301a7cbca1207b4bf6a472fd254a38f07cb8a16032474d76d33ed332517203ff684341cbcb47ddbdea103234d8708481f073948085f0c1867287d8f2cee0a24db434d86c901c4a58a0868f3594d7376990262875a8a1285f9e94f60a258d8f349463dc35937e3526798e64478d1965627ca0a118f4096b6e265b9d60698d8f33143cd55b36e9ec59fd84393ecc507e93dd3c4bb4ef2bbc6172cc50dbf151867c634e4afbe5448c1d8e6ad848010964c848b3c4c639356e7c90a19cb4ecc931cce7071f632889e9393e457362285ce71699ac65bdbdfb0843a994fd7807a941be082de1030ca97bcb9abeca9e768e0afd3e42796b38ed1b3ebe503055be6fa5ae17caa31bb3bf34cc33d72ea85b1d9a976b2a339ee1d9bf262217f2b2452e14c4e68a79f2a4e7c47b081f5b28a7b19cddf0f3b6cce0d042d19438f310f2d49e9cfbc8424963d220ea39a5a712f38185e2be26316d5b0951de5ea1204a0e62a6448fa527b742f1e3c6c713834cb70caa42b1f395b9c8395921845458cbdaedb3763ee6dc33641053e2cc53288a785efb3dd13dad4fe1430a65d30c9b04b7758d7df21185a2094dfb7cd254f628d1c207140aa67774cc1c749cf03934d892496c188e8f2794bddd8369fbdc1baffa40008ef0e18462fbac4956b2a5d64a6df868427154ca67bfca3ca74f3e9850f6d09b4415d1417fb4747c2ca158e27dda34bdfaa783945092db4e6aaf4e3a4a4e7d24a198cc6390bf259bafa60f2414eb4388fddc9ba9178f60cdcdd8db7c8a7ecd969c3508e9a231f76184921c377f9ad71844bdfd499d18e9c6077c031f45287f165f553d39a7f5244458ebbcde354edb4d6c56cb9449b2c7ce3f2d750805b9f953dc0f21186ee9f5a56939df619a252831c23d548a093f82503875776992d6ef1c93f2fa03082599c413636dcc2f26bfbf2899d0d3252e3ffd4be88b92cadcb1fc73e9d18b628cc99b4dfa308718c98bb2992e93c6a3ef98977651eebcba4c42ce06fda9cac04317859131b6481d3f1705d5f5394b26a5bd6da6c19623d97123c145497673bbce69e477b66f51fe13e3cfc949d2a934e83d6c51924fe447354943f694b52809b393b9c46422647efa78d0a25862e4b8073d42b384b3287a9a51fbf74930c946e3218b72f80c22329eaeb933e90c8f5894e4ccb726316aef15c2a224cec426496f62e0f18a92b6d21aad4bcbfb9f68b0b9e2548d75adb1b157f7b4301974f6390a1ead286eec5c52751a3555db8315255b2d35b11d7c6309cb902143860c1945048f5514deb7f4b58386cf7c55519236bc97c63ed3a4e74868e0c06c0f1ea9d0c45c767fd26e29a1e21319262a4eb5e991ed14e55a931f7f737868ada628de9a3831785c0bcf4acfa314a99795edc855abb5958bea524a2eb7b649514eca2f4f14f5f7fd7514c513e369121f6563f4125114f7d724d7edb825761e0aabf6ed62ed2dd5c3957bd42ecdf9ebf6004549449f6e35adee95a94f14f4b68fc87bd913a53ec164c7f89b96f67974a298e3499e24a94cdd34f5e0843396a2b3b5d69db57b9ec37c10a6b2e4cde3193c3651147bd1eaac9ef5f1d34441999b38c946092e5f65a2f02a4a9d89a63df58a305150e24d9924caf2b4dd4b1457d6fc474f65818725ca49d2f944375147e80755a2141f06d9b5885d28e8f0b1c4f6b5225c604b950eea6e4447886ca1a0efc4524d89aa4965f809112d943a89126763b532c82046b2501ea545097af47cf0f8d10816f244ae503a31ae535547b906cd0a451b916fd949fe9cddaa4241281373f6a75cecc9a911a1423163d041f8e59b0c8d8dc814ca9dead5836f4c2a661f8e01810d1c46a450924a1c5daa63c86eef2f128592149f7b9f49e72250409da8fcbc1b039127144ec8efb43f53268bef358838a11c54376cadb22dfce4fb74d80a224d28c5f96dd257ad8930a12ca345f98a9ecbfc526219224b2855e56d9992f57137a44309e53b39dfbbebeec6e4632409a539cb8d95ed4a031124142dc6c6c4a4439a645ee408c5e49efc36f909a17519327084113142513f29d9ba4f877142a408e5ce36596e4afc44e6d400e3c6181d8810a174ade549098d7d8e12586408099ac924b1e4a858ad368808a1dca2e4df0ed2ebeb04458250d8cd75626536b398520408a54d6a5a6a1ee38c877e51f23897496f98cd49dcf8e2d24177923fab78da8bd2cb7878503df2a220c642f9d7a89a279177c175b7cdedaec7beca96c8b8f76f62367a66d34549923e66b11f5bcab55c14f38abebf7faa04105c947ed342e994d32d4ad7417d9a3a912d4a6a359af8a9a3a8f65e8b922094e8d12e1d1ef305428b5269d31351a23dc724348b623c1117bfd8e8263db228efe8941ae4db633035482c4abdf9e42c395ac9998345e52aabf57a351b9fc4986d1b5a73405e51d6fb1c5d7d733d2abaa254a6f337ba4168ff415a51b02c19db73c7b2dc130d36dd00082b5651dca0e4c47ac59688f61444152549eac9964174b693af1bd44845d9ad2417934c677a59396a24bb00082acae673823879fd7a3c3e62d80063c62994556bb34cebeecc35fd4d626267f6099ba2209b1bb489af69d3a468b0cda8811900294549c9498c1a17277cd0291a6c3b6ad8c0a103841465fd309a7ba356d505194561bde412b4f4c9a6af041145494cadc9c464110de285a22ce3a153af887f960e08288a1a7af2981c74e9f4f0139c6c6c9549ed7ba2a439dacc44f7d9ce9e4e9443adffe37cc5688f9c288e140d79f2d926cad164c5edc3b7fa9966180d14e428818d4403a600d144394b74ea7e0c8f5a4a32511621437b57734cba339828491f37c6f1de412e513eb99893c496246e9eee2c51769fcfee2d1b25084f258a994796f84dc24600a14439c96b2589141bedf124f6fc693b8ae5c7242092288b0825c42449982a71041289b289932d5b6594608040e211887d401c91d49e84ce9f411ac18852a6d2feaf729b4fa617518c19f724fe3c9cc6cd8128e24012b1b8e5c98ac97ee8cd76d75757e7078288d2499fda35a90bef1025e939ea6f860f5a259d23d9512319c410a89724b65d49d55d218ad5e96daa3f67dca5ea031042e096162f1a27977ad5a1d677377e9a990119048820ca7183525267bd4014ff4f8a88ce897e080288d276c969adae735e6e7f2828f121ae240b291a4f40fc501665aed53188ecf534481f8a6f1fa34e6d26dd8d83f0a17cf23753a60b597dd2c63a40f6507e734d9984d1a0ca4e18440f0593336796fdf49e54d401481e8a71f59946f99ca41a8303040fe55099e584fa78ed5b83dca16c96a14b122794d02446090b700c103bb8a943c9dc24ddbc01481dca551ea3c412cf47931e840ec564e235e2312e536b38009943a219c2934c3ae7d861cba114ba64fef02ffbb7a6381494bcf2a125f5084b131c0a7a54bbe8d1fe1b4a26e575c918e5deca7743593eab898e6e6b19426d309c1a99eff13be687d88086c9d778d588b99dfdc93179afdb33039035944eff7cda64c2ae3ea38692dd9f32699f84d6b9d3500a0f93c43e51afc56634144f9a2cb17f65994f3d43b9beb4c89cd46986f296ee97d954198afb692b3d579a24c21c206428e8e85a13f77792727d0cc54e1354cfb8d7206228ec55a5dee7141aff6f1040c25010f7bf9e6745580719228080a13c425e8c67d0f2a0c49c827c81f3d8a449c69bdcad05205e28f9c9606fe9d17736783000e9c2e1ed177e174af41c71a1143a9b3c3ddaf7848fefc8614ca0831743035ba8d6f44cc6f2d2b34c3e4965d2fe27a57d338816cafb5b9fd735a83200c9424998e8a5c94491b14e582889b12439e9870a7285b209d5cf491e9196ba8158a1a0266cfca609bd929f278054a12c42373ce898646c939d020815ca9f493d5509f3b08c755001640a25f9dce542072285922454097db5894259cfa4a5c858073d2728943e4db2ec689e4f9c3ca1e8a193b8716e449fde09a53f39fbc973d813d6a40925d1a4fd4f993c134a2a830e793f5a4241bd6ff436a8896795509225c9a7337a4935de27a1d4497d8e329edb4c1609a51913368329d16f74e80805cbd818d99e4666c70885d91c74c7247fb7668a5038f7faccfe5a26732294539d5a37193f43289fc818fcca1742f1c43cc9ec21f48e1c84725fe61032e4281da3204028a78f0a9522daa399bf2869b5fcee10f3ced017a54ddbd7224bf374ac17c5b21bdf924c8bd8bc28c8fa9cfcb2ccc72e526b73725d14b3aabc539c9bd0bbe7a2b849b0fbded01062745c94a4099e454c8931e7a96f51ea4ca6aab22ef5d7b645f994c92342a45d8bf2ae8612444c6fe5dab42846cb727953a799c69e45b94c6ef68e673207af65510c9b9448fb208312278e4512289b80d504f0ea1ee0c709269747e001266357863900edd031468e0204400767020a00c00e1d63a080000148c030638071c3d840800074e448d0182f460e1c09180100020000000020002258000874d4c061141080220040878e23830002303bcccb284000cc0ef362e4907100000ce0230139921a20b343c78c190b004000187000acb123070d1d361ab123d1c188929e7bfd54a121b4892ea2247bac367df40c225344d9049333c99df5949f86061b6f48224ab5bba3428fd23fbf69b0e900471849181a8288e4066284114612c601420e813576dca0c61b4207380a813576bc18618c316346024208518c4943995d29a124394783fb6c8cb330921c336e50e3677cb2831a6e3b6ed4401d376aecb051638c3323c70942068133662020441038c240612461182024105863870d1a3acc8c1909080144f104a59b4e6ddcd0edff508c9b3e7f5a277e4d1de287c269933ddac836e144a90f4591e639d477e6b7cff0a1147bb229a5491cb287c2fe750e6d1a4f875186e8a16082f69f66f542f250900d253f89c737df6b84811c8287a26ef668f2e5e8b89f3174ccf804032177408b0657dfb6157769b09d85d8a1246c9e929386b2ceab94032175287987f02493700542e85092499e8ca67459878fed0642e650181374295dfa674a189510220754ea86730f9ba49e43e2c0831038dc1b4c8618216eb8361c1b780da7066cbb4ebe523b34ef34b43adcc43e4b9698d4c0a860068e903414fb041d6d46941c652634943a97b42721e40cc5e4496f0e2aea56653243b9c4fffb2d790d29434976948def797acbaa1032ace9b1f3b1aabba76bed31296935cb69af4310328662be86099f21a457c78488a19cd6e1448c9019c4630f4248189693ff7027f5243d18cecf0ad3123337fb70550ddd151e9a902f1466b7d34c0eb28495db0b052573eab4576a7c947048178a1f729bccbba4d3308570a128a7d53655eb65d0d6168aa1327aae124f3cf6d742317d503b256859c98742b250b6133eff29e1cd7b5367582869b6d19a49facca7432157286cb052267b948458a1781dfba4b813bc66ec9d424815caa757712bfe5d1d46278450a1a4abdd2b1feec3ca1732059402cab8188444a1f8d194282e1e4ba89ea070c7b77edbbdb7e95b6b37087942f1bd3ff786adefa0cb4172433f9023d9f181048c1cc908f072243b6ac020c409c5dc9fecc3e8fc1983be09258f694ef0fd60196ac710269c17a333a7ea1ebb6174a5f679fd9574c81236440905fbcadcacd9bd5f67124a6abdc5367dda933e464308123c2f5b2fcfba6ab12a3165c99c0d8ae308031da1a8eea7be1bcc102394c418dadacee4fc26fb2214837658cbe7f4ef688710c164dc08194279b3daa6f9fb13975d88104c4648104c460d428070bf3819be88f4a22074b6cecc379f3b877851922588dc126ebc4f54bb3019ab0bc55c14d3f7c64c26de37944e041726e316262306115b14e47fee32c8275974915a742aaba26ab1b3dd23676aaef44e125a943e7d121a7544b734159945d962744d3ead0e3b7b4416e5d13de136fa936a9323b12879cedbd29f35115894ea4f4af55892899d0423af28955092f4deda7bfab5882b8a31526489a650da49b345a41505cf132684758615c58e514d461d39921d35ce089155943af97d12ab63d6ac9e2a8ada5572aa33a988a9a465c7fc6ab2115494b39f3c5ef2e3be7d34728a92bafa93e5459d74f59ba2185ea465da128d94a2dc6252fe97af59074d8414c590593637897f25498a8ca2e01befc6347bc8be58140539d7b735d1d34eac48288ab1f9611e9e93ecc6dc81a26cb29fe9e768b24667779f2829d1691b44c9bf7325779e286510d9142143acaaa813e5743b27e54ac8067ddf71a22027fe89aed8ef3651d0ed1f3575c9969b4a779a2809f93f4a6913ec4b27351325792eea6390d726785249f08219278860c264b8207289721a2145f67ccc1f4309cf12c59349375789c2ac78b07fffbc19d651a224d29324c83dbd22d3c59b444950bdaa21a6ba233a9e244cc645a2a444cf3cf1437589fad060d351430f1225192f83d4d89cf435748f28ac8d923fb9bbb4ec7b8e289aa66bfdbb11dea7c36b44412849ccf3efb04f1bc7638497de32f6eea5f9156a36c7e9e41b3d34d87a8cc822ca2f1ebf46bca71d19bb8b28a2a43232b79ffcc810494431b5cf6d9a701d340611238828df98778e31a14314edfecb4be486065b0d1d5d22862848dd7a4d6182bf9d28c981e3401029440b22842889d1f1c38ca9b69f3b887250c2996027c7fcfd494114ed3b735ef778b7a51488f2f9c7137f1def3a880051be7e91175d3a62fb8bfca1642faa2dfbb67ea4891f8a9f4de99252cc9318eb4369e3a5c6660bf1a1b0714a6c7151259ee42141640f2549ddebabf45dc93ea2076c4eccec5364bcca4a2fff838527d1e06642240fe5f560ef193e09ddd7f1803250e40ee5d5641d847aea9e5a237628e78fce2fbe89d4a118db4a088da374d77a113a9c32b7a3d6aadebade5ecea124263b9356747837799243c14cce617b7473d7e8c4a1a0640eedb9b5c13466e15038539f416daaf45afd0de57d137ddd4eda9c94541b226e28ac092583dce497614a6d28a9aa559e1cb5725a6743f146ec9bf8a05b43797c83ac7e9383ba5045d45030cba0a26aefd44da740240de5102bf53166b0cd49923b1d113414445e6b06f1ebe8da9ea1ba3bf59de48c7c113314536578fb9cac27a3d91b913294d47cbd2cdefc4c8f6690a198b995e974692f328692a8e739ef89416e438d88a1704ad60f5e240ce52c73f6159b3a2961eb0818ca56d523d6424730225f28c838fb590d197f9fb3112f14938f018790a8c3a65924485110044110c4300c0dfb241da313482010401e8c4523c1903c52977d1300818ae2e07828108c43c170381c464108c4300883300c032108c3300cc3109e54d901531cd68e49b2bbfccf151fb3dbd65197a84067fd4d31e6d913d993917fecb3bcf68d29bc9a06ec28cb6e727cc7a6731abf4d1b44b0432ca71da2f9362a51810d083a3b85db60241cf1bcf734d744b6deb9e4035a9b47dbaacb0eca583cf0d0ff8932daf14fbeb33e4f21a578facd2eb19c52bdc8b667358e972b4c7cf35d6aa03edac1d50f32579f2942a04ed4b986293f82f987cf8a55324c3d8f44f8ec4a41f477f759c661a6e1dbdf20fc750f902f48e58a8292b308ff13dcd74d0157b785c0f310c86f2bea808ad7ee7b2aa6a1cd697202c0f8949fba32b6452b568b08a06cdb4fe375e85b0df4bd53558e7a1434a8b9ce81559a905e74994592c4e9633db3d36e368fad313e8118be18f453f62285b9aa0aebd465284160c0e5fbef14225473ffba0295b10990ef0ad1228b7d3ca96b04fb74cc8fe3a6c21062d75130a7531399e6e1a5711b65fe17729c2e775fce9f66c4d1a6aa4ed86592aba897e309536530a388f062e26bc4c8fce41f0a7bc342e252f64b770d5b6cd0a5f28405d139c30fd688f378d647f67a707029fbc16167421c3d3f40e751a83d4b8f08a7103c4ff3a67c537dd9e296d85733cdcc3c4dee018ad003711b1d9f2c380a495e661f5cf56133ab59fea9760def8875fd7f62aa8afa68c8c1525bf0827ac187ef114f7a98abcfa667562c670ccb6361ec722a54187dc96aef32fc6ca8e5870d9fddcb8981a504fdf06bf7ee8c9bafcb67d2f1301d984a45cb8defb30403d9080c6f6ade89f8e0b56f3e8669e671ce6d7896d32ed20e59290d1d50e11d4fddda302fd1095324f1ede2acae0bd58ee5312c614c2a5d324ce46fcec023092202b8e3225fa125669d11da495cdd8a6bf051b20d5719300ed0ff2f7b2ff7731f9e8751033a564e6c71bdaf743025d0e1c8768ca601b440473161efd1ac1229e5aa2a782050d9be05d67274a531a6847afcc76e8b00b62d5328c63aea5487d3c3b9d4fa3927e56f88a4e9fe19c1ad1fee52157ee86593a62b2491efaab8656406b9035ddc21dfdd3dd9dc13c7ba257721684b2dc13372062d570d7934f506532b19bee1c9853a740b3aceafcc138c653c13b2a815be209c2781fbc8636c29244351d7c579d4fc90cc7d73ae8fbf9f1a012d72df0424106be49f4b421c5a11b672b86fce220b23e9ae02af2d5d02b8c416972b7fab25e4c3d83b67efc9ac88c0919b712150b922e412acfd2d8b5eaec9ae88b4b71a516a8879c8849010fc6da58e646f2acfe78f1f275cc221184480c8d4cffcd7b8b3b3d4852416a13cc98cf85a90c12a5b9a172cb1f220df1dccdbde35e0bcc41b3c6cd312fd08c9d217e2ab6441c8c4bdfcec03ff968483d32c156c29a6fcf08568e020ed3071c49730bcc4a4b02e22cf295a9e8a42014642345959bd38b4e601db843e4b19e65b851021b57a59e83d8d7224d1aa5317c44424da7d4e7d51b3cedc546629b6af1bf0744bea07b9353f689fa5f5655bac480cfda5a1f8c5780b48f21d50524794892927283c82ef4abef66ee7b010b9398c052b84b19836800cf883526ac091ac27cd84ee81320816098193d10e48098f28fbf21aa1223962ee0c2304f1282ba43efa01f1f09b375becfa1f105fd53a5bcc650ce89dc211845d3efc872afdb3ec0ad7273f83e20397588b8fc89081358b8333e65e3b200f7b84d24077643d91a086ac68291e37a7f1fca779be41f7e30088be9c8ef22018aeb3bd0fafcda89d6082c60c9b967356d1b4e95b330d63e0d084bb22f7fe84d1939fbf03c35416386bef204a3af3f645bd5aba9ce105b211f3319943cd37cf79f358f6151a639f9703c8266eecee8ed636d61074bfd048d86a56253b98565ddb246952de3f400d44b2cc870fdf8e389645266aca2d200f5e57b35ab3f3e26029468adec36da1f4d615366089852f764c43d4e99fe3d172ed6b6883043aea58934502464afb5fcc8b611ed1fc2b771ced8c66916673b98d5c7690bc5ee2f9f477ec14c889c3a14d72ef518971105796763a78a7c6cc5fe41d58a9c442322f9bd4e08a52091bebe1b1b365b02633c4065b406524963749df700585a1bd09bc9cbf74646a5c8e52e57709892f503df039a1b59d84ac4de3a3fdebf37c8d6a7600fcaa256f4772ae5d193937721fca565583d97f9c145e74074778582a23cb73a59b37db0f20b7a74c507eca2cf44d1596f19c28539c612d9a1d1fc11b04865d4dd731a18f1a3201473d3a09018e9a579db94ec868347fcd482fa8952272410dfd967b9c55409792e2784a68dfd43b84a4fae5b4437b37ae404f92536ba7bf3931080f9dc08ce2433aff4864277136763314fd509aa8dea8d871634e3f6607648e98d8a52a42653cd377ca069618e7e72c92b7b44fbd753cdb5d95baed0aa34127bbe193ead62016950f33f93d9c94d4cf69b388f89dbe54d04c82fd371e45239e15a22dcf9b604ca7e0a130a5095d384afa3c227a877a5172969a3484a6bb58b43cb3229ff939532962a0c53e504ddda01ac09f941602a882e6391852b5746e48e512263048092533820ac71cdee994f68816cee7a0a9243b04c7c98fd0ea1293013f977a081a1a0e2ef4d1f980405ee31af6a08e8732bde6558d70ae25dbd7b97e5ab9b1b09e63a2313e972a342580d06933e0c63670ef06ae7c6e33ec6ae2d9ba66405071f92e28c514f9439931f55a01d039ad620566eb16fc0241859c844c31970189200fe90b66fb58079be224d10c40080e02fa68c5ffdedc4e7aa6ad1b3bc3bbefe1b5aa46dc640c24915c8a75a52511453a21793e49cf7970077a9c756106f3c2450cc18ab2d8de43b609e6b411fd4daabd294d4ac9278d99a30a290523674901563b34998c3d55a43f12380d081a1540e51fd26631962ff6428aa4327d88ebf1153b59e4c7a185cb4482e218ddd447aa8508c691b5560a95bdb1937684ca1c41fb43928bceaf854af2e8300fc63a3a7c58bf43d5dfbe8a16773453b7c23066221b1dfeccb83647352cf210eb50b75b1851ad6f297666e00f62200de83e2d12adf5b65d1423fb11b646525d976b6bbe67ec4a7f39a37d7c2be2b9ea244645d264d686096f6cea565718d578fae49cec69938bdbbf5df535f8c54c5597e839ec780ab73fe35a71ab34d0f31162845e16eddc128e127728e3722c9e7e78fa11bd68406a52629f63494aa39e08deff566c73fa0f6424cc839f974be5efd8b420f41f672d3c2c6204c05346b44d9854bf4281e6daf6f9bf70250c0266573298f25a9395a0b09ff1ac63ff5c59d877475ecac6c80a2258e064e7a6359f1760c8d0e3d35233788ea421d10438282e5c32d2e0820aaf6adda2445708c8f390e5e49633298376dc134818f4187aa32ae4c09d55fd3e13e874728a62e268f5f9a2f3d8c35ba6e6c9274640b6021f5977897c11298964c1c6e28fa2c14a344cdfd2cdc354fca5996b8ec46fd292660dd920303cf0780274e129e56c53f9a411cdd27904cc5128965ea07ba4845d144041966d66b49785f5ba5fd34d5e8ae745b01211ea835a2628879d90a510a4be77faa5f2b728b8a24db94b04e6f4d96cfa60baa1da8460c19fb2edcf2022a6a24983e2e3e3fc7b9e4e031699d91780e5a5262fbd362e4b1af4a58f76e2b1bcce111597a6a488d301d252f005d8947baaeabf7c261bc7c11134067ab13908b7d91c0eddf1298c24b96856baadc794bd394de3f40d80ba99c5c9ab1886b6f591775364e34de5b48c92b92adf384339480bdcc47a09ea61b6d5afb0b64613740c2a5b854330212456b149a4203f50a09411025a80c7752b5ed841d422ee42ad5a0dff7c6b5fa91e6a6e8d67e5b5f435efd09dc864cf8097305e15d38acaf96df4b7031a4b1be54746c7b2d7b54de35db6639336851f7a774e6a1020e60f21953a15b07add0dd3834656894c6188c4c7193364d6223c2875934fe605e6370e205094544477389547fa7201e908b7052b79a01833e6a18c1e2b23bcb532ed4fa416fe76886ad88ece9cc09588072891887d13023069f5b856c6dd287773ca34e2c45e165b4d4397c564c936b921e2361f2edd1aeeb2093318ed283ee4d262b8669cfe661edbc1a1f6a5d39bb9308aefdc9135fc0615670c8e8f23b750cc82fe7560e056f2124479f8e6474fb7310d18fc4d29ae61a2cde39dfdc8ef29b6c9bf4c1a866da7ecaf616a2104a3c3b824e3861f773230a521d2bee9af980d3a4630c554bf2bb4309052206be2049cdaf15aed6c8feed9ea56a55550368f9adb4a53ae6c3379a8085b1ed17450dc3127487d5fb9cbcc1200155ad94cb37e5030cd928108921c944520b4450a4b82aafcc677a5a490f8c84099144c1a044ebb9b76fcc159a263ef9c75860532d713314cb57853aebcd25bd2074f8946addabbdb15d1903ff52dcf8e1dd8076e711cd9237f7c3673c2de210cf4672d914ea2e2efc57a5cb199edfc192ad36dda00caa7c426ac8b131d2b7e0a2c2ee8a3095b97591231b55bb974667af3b9225a36d191354541fa98badd787686338539b6a6880dd7992310ffc90c4dd5be5f5bd2c3c1c3ba0db02e22494a446df93780ce45550f6119bf6e6a33d7b833ecb3b8211311748c733024e289145f0dec880b0ebfa1573a1c6526277683d0d86d7928c373f1f97665d916d317511c6ef8db27a99a958293aa5c47600dc003861fbff5a1b97cf76ff922781f3b74fa0fe677e1ef128a2027dc3da69686f7225107d274c7dcdca3dd580c79f773b6839a751247f01feba42dacb05cd07960f713976aee5ca18bdb05085d2a03a9e9cb9e7476e5b9ebb5a93d38c6fe07b26e34af1d81ecce38ccd9f1a4a811b359b14252796275f12321682b20549dc939e3e156293499c41c2c2e3557c42e46eb4a1daacd8f4c1b7ce9d50a56faac86fdaadae12d44a8f138b71efd23bc3e04671e2f68220083b2106308c8b2dab80cb4a6b913a2af0e39bdeabecc7764016f34508114e4abe4a86c9a6f1f46602ff100a26a0097862de080b0420fccea6c2dc1b50a3494cc1abeb3f8fd1d6346c9318ec1c5e168c0ba45b5d67928bde571bafee3b9c1ae72c79513cb39d24425d8be2f6ea43ed1c202237de76bac3a40f28adaa60f9f75e625408f3b3d61a2aae695c5f4c24d276f33b84c1a454d812c350e7244ed058f103559150b1cc226c26136477569a22029139d031734f609fb2ba049bf0da2b838945a92862aff9e98dca628db37907111473c662e0f09f2290a705ae242143408ce3cfab191243cd5c0882fe0671758f4942401b44afdb7b11a1a070264bcca0c8b151a31f82354580ae2a8a1b31b02049c3dba14f72eba401ce4c1163ff0e4a683c8185fee78221cbcefa001c8415a96792b86a9e4e03923b818d353d440c639de2961ea847fe7a3d10ad74e475631f2c60cba805416ec599415a8c7c8dc883792ad06514a2a6b6fd97e6ac7d8512ac2ca6ea1a2ff95fbeedff0377ac8f327da4253e02226d260015fc2c061735435944a53b11dc5e8388733fea4ebcd43aaf55c9c1441c1119aeb1a0963676325d8a01af5835b8397c68333402d8d64e916ac2b1dc8060c4a22e2daebdea594fc95907918bb68108db9cec9d428ed285e95415dbcea30f915622427b2e461ced76768871bbf41a95075c309a15591807f2f365c04a3914c70587986e8863321d7d8d8333f710e329c4f28c3b9aeb8bd511dd2caf47b0f7c123376a7505fb93a41132f792fdf08251e8ea7ad4802af0e84c8f4f80e90670d07647fc600443b1a16ab464761c073ace92630ee7e01c7325b35fa99677d15b883a33cbeb4a7b275589d8d00488e1fa5e86594a27abc608b9079493855c729c5715c83a41b00e08c254afb34740b91fc6b0dcd977f53121806ab8439a8d69159930966a51297f1989904f258fbeda8bca88ccaf3db83fa7f77b3309bc450b3fab8db79eb2df3c7ac3415e8760b34fed16b73406da3858cb4003dab3388222b230ead36a44e5600e88ef374b934f09374acfa451451a573753827e20d9cc33adf20e291ebdb7001228c8b1d72ddd087fb3e9a96084b515acd2c0130801502f5ad3435c9f744c5ecb001623939cd1cc0f0ebd8683c203a1ee2defb15be1cd9caa104d853691d85649804711b41d121d0bc4b2c743dd986225f2810a15e79f6b0834b56fe8578d248c2796ce4a7f968df709401d10e98b637254e1a829109c03091a090443cb0c80f58eaa4636da7aab125368b83e5c33f0fab78433f5b3936bc1b61dac97efbf9f17430bf4bc756fbf69f4565331f3561b96afe5144836791f4022c9972c255780e547c2d93479569ac6b58a2942bc793725ea337b4e3e784040da50280443462fde0d31a8e54b0236413865190d5b855a99f60881285004c46ac2de2d3305337f988a905947073cc58339942b8ec9439667a5defb0b1338eb83e9a920b58bd432d310f4004c6006d0a6f52c654aaa83f99ef5912d30b5557bf1c381d2c8ef4628e1909276fcfe2933a074de21fa97798a50bb6b60a9d0fcab6fde2f632d92b42532e27e1c659fdf1393e5fa3f37f2072bb70c82e1fca566317a124c6aaae3ce6bbeabb175f455fdea6002edcf4eec85b16594f3205d778f1089d92a8c643a5350872cf38822cf1852c4b67e2681d9bf2a273c244482f8e9fe4c4635f98877aa549a8744d805f10441e021cd8cc2cdbfbb6ab040a064ae6a967a0d356cdd8e0f2dcd63180133616cc6026c19f58f22597306c40a6419c151a90176483f8e901d306d4333d04ea242526828da1f990a0e78b69dd475bb86e5818d15db1f11fc4c248dd57a86e2aa47b4a27867a717edb98718efd9afd8058d2c020277adb43d28e83ad8a13187754c4beda84cbed5880044bfee0b057e2e10febb58d45533f60f9c12010db025bb83708d3758efbca7145740ad146b2112f0002b9a05820aee3f57e81f68cff66173cce337f87b1faa4e23ff21a1f2a9a8adb4203e0ccc100c31334e0cd25213513621ba5d9be66ee1d51c77313b54e42059bf17d1a47a202d131b1c84b2e17b897447c448e1b45bc9e823971b4939952b4784a3637e1562859109eab2925e92e9e822fa81444a1cc6cf0f91c61c200b4e8e8a340bbea4fb46c12fb8b42ba142e4bcd7c064f1b3dfde712bb79adeb962239b98dc782a06796054a28bc510187d6159bba04678497a704119b7807fc4ef74fca1e76fa59951adc9b753f997538eec81c15a6acac8d20671c2a4f1bef1440bcba0addfdabb871c1675455e8f4753400be43f3a5567f7dcfd4a3953ff129e3534018f9e0d44e601daf6ef514b9bf1eac47873e3007bf8b9a67558c0c8b5f623429b141990018f5c825113b95072845528663bac065b887507be1368b3c7854ae8050a6a455712a8e4509c8d516feb32535a2f216d184b6cfaec76d88d46aca1bda70be770b9cf5204a3382ff728a63a8baa942b4b04982610dc87ea146e7cdf8c19a51617df128aeaf64a2f304e845903ee1ee54b1c1027e056ef630fddd27bb695106da302b2f3f2b6a46928cff3aeea9c3d0a1c7fdc2d549cea6ce71d3e7da0e4afd8548f8d85d6557e16c3d9a77cda9ca45d0724162de0796a604cd9747d0109200a3581b2f2517ffe0b0e545e5d0505c1c3f33d356bc108774487c6420665e571f8e4c11a1b2b003607bc59299cd05b9fc2646d2bbcf4c1da0e2ab4e6c400212945b0f8d1e6226eed4420dd4b21a3b07c756db8e0ff940ad730cac56ac89d5a495a36fdb31952b00c0719ff05760674c00cc2b79c036bfe9c38555476233c3774b9629ff0ff299ca6bdd614ebe186eff8571f92eb013c55af3cbe929391151870a499b188020ded2b55a2b17b98695211e", - "0x3a65787472696e7369635f696e646578": "0x00000000", - "0x3c311d57d4daf52904616cf69648081e4e7b9012096b41c4eb3aaf947f6ea429": "0x0000", - "0x3c311d57d4daf52904616cf69648081e5e0621c4869aa60c02be9adcc98a0d1d": "0x106c97f53e386c97a7217d23e3412bd98a37ebbd0574c2ae95de296548523235144217f1177620148602f0ce7e4787643f6da946b7c9390422b5b16e8f1745e8799046c7d25f9bc688e9523897ebd59fa7f3b0d44198a0bc6c88a580aa9b3ce67d324ff4d0173ef7f6e75e06b0151998924c1c7b8704f80f7afc3262018a195b4d", - "0x3f1467a096bcd71a5b6a0c8155e208104e7b9012096b41c4eb3aaf947f6ea429": "0x0000", - "0x45323df7cc47150b3930e2666b0aa3134e7b9012096b41c4eb3aaf947f6ea429": "0x0200", - "0x57f8dc2f5ab09467896f47300f0424384e7b9012096b41c4eb3aaf947f6ea429": "0x0000", - "0x57f8dc2f5ab09467896f47300f0424385e0621c4869aa60c02be9adcc98a0d1d": "0x106c97f53e386c97a7217d23e3412bd98a37ebbd0574c2ae95de296548523235144217f1177620148602f0ce7e4787643f6da946b7c9390422b5b16e8f1745e8799046c7d25f9bc688e9523897ebd59fa7f3b0d44198a0bc6c88a580aa9b3ce67d324ff4d0173ef7f6e75e06b0151998924c1c7b8704f80f7afc3262018a195b4d", - "0x7474449cca95dc5d0c00e71735a6d17d4e7b9012096b41c4eb3aaf947f6ea429": "0x0100", - "0x79e2fe5d327165001f8232643023ed8b4e7b9012096b41c4eb3aaf947f6ea429": "0x0000", - "0x7b3237373ffdfeb1cab4222e3b520d6b4e7b9012096b41c4eb3aaf947f6ea429": "0x0200", - "0xc2261276cc9d1f8598ea4b6a74b15c2f4e7b9012096b41c4eb3aaf947f6ea429": "0x0100", - "0xc2261276cc9d1f8598ea4b6a74b15c2f57c875e4cff74148e4628f264b974c80": "0x00000000000000000000000000000000", - "0xcd5c1f6df63bc97f4a8ce37f14a50ca74e7b9012096b41c4eb3aaf947f6ea429": "0x0100", - "0xcec5070d609dd3497f72bde07fc96ba04c014e6bf8b8c2c011e7290b85696bb30035be32a48e566fd2a621a4e8851a00566daeb02c845da19f19f208f52ec456d4e77600fc41c314": "0x324ff4d0173ef7f6e75e06b0151998924c1c7b8704f80f7afc3262018a195b4d", - "0xcec5070d609dd3497f72bde07fc96ba04c014e6bf8b8c2c011e7290b85696bb305dd030831957b6e5ae18c05a78be70e49f4495fdfca8389f99173d7f1b4019e077e24e15abd6e2e": "0x6c97f53e386c97a7217d23e3412bd98a37ebbd0574c2ae95de29654852323514", - "0xcec5070d609dd3497f72bde07fc96ba04c014e6bf8b8c2c011e7290b85696bb35fb54620ff2e833eccc1177642b30456ecd401c75684a9c1cc1c529879d65cc65c32766fcd6b8a3d": "0x4217f1177620148602f0ce7e4787643f6da946b7c9390422b5b16e8f1745e879", - "0xcec5070d609dd3497f72bde07fc96ba04c014e6bf8b8c2c011e7290b85696bb3e08a79b5611284ca28d22cb1ad64189d654e3a0270dfcfac27fdbacb78fd65a11584bcce1f01e656": "0x9046c7d25f9bc688e9523897ebd59fa7f3b0d44198a0bc6c88a580aa9b3ce67d", - "0xcec5070d609dd3497f72bde07fc96ba04e7b9012096b41c4eb3aaf947f6ea429": "0x0000", - "0xcec5070d609dd3497f72bde07fc96ba0726380404683fc89e8233450c8aa195063ec922e7fd49f5961757261806c97f53e386c97a7217d23e3412bd98a37ebbd0574c2ae95de29654852323514": "0x5ae18c05a78be70e49f4495fdfca8389f99173d7f1b4019e077e24e15abd6e2e", - "0xcec5070d609dd3497f72bde07fc96ba0726380404683fc89e8233450c8aa195093fb92453bc0e8a161757261804217f1177620148602f0ce7e4787643f6da946b7c9390422b5b16e8f1745e879": "0xccc1177642b30456ecd401c75684a9c1cc1c529879d65cc65c32766fcd6b8a3d", - "0xcec5070d609dd3497f72bde07fc96ba0726380404683fc89e8233450c8aa195098d10965f202a3d561757261809046c7d25f9bc688e9523897ebd59fa7f3b0d44198a0bc6c88a580aa9b3ce67d": "0x28d22cb1ad64189d654e3a0270dfcfac27fdbacb78fd65a11584bcce1f01e656", - "0xcec5070d609dd3497f72bde07fc96ba0726380404683fc89e8233450c8aa1950f0305c7924a3f8796175726180324ff4d0173ef7f6e75e06b0151998924c1c7b8704f80f7afc3262018a195b4d": "0xd2a621a4e8851a00566daeb02c845da19f19f208f52ec456d4e77600fc41c314", - "0xcec5070d609dd3497f72bde07fc96ba088dcde934c658227ee1dfafcd6e16903": "0x105ae18c05a78be70e49f4495fdfca8389f99173d7f1b4019e077e24e15abd6e2eccc1177642b30456ecd401c75684a9c1cc1c529879d65cc65c32766fcd6b8a3d28d22cb1ad64189d654e3a0270dfcfac27fdbacb78fd65a11584bcce1f01e656d2a621a4e8851a00566daeb02c845da19f19f208f52ec456d4e77600fc41c314", - "0xcec5070d609dd3497f72bde07fc96ba0e0cdd062e6eaf24295ad4ccfc41d4609": "0x105ae18c05a78be70e49f4495fdfca8389f99173d7f1b4019e077e24e15abd6e2e6c97f53e386c97a7217d23e3412bd98a37ebbd0574c2ae95de29654852323514ccc1177642b30456ecd401c75684a9c1cc1c529879d65cc65c32766fcd6b8a3d4217f1177620148602f0ce7e4787643f6da946b7c9390422b5b16e8f1745e87928d22cb1ad64189d654e3a0270dfcfac27fdbacb78fd65a11584bcce1f01e6569046c7d25f9bc688e9523897ebd59fa7f3b0d44198a0bc6c88a580aa9b3ce67dd2a621a4e8851a00566daeb02c845da19f19f208f52ec456d4e77600fc41c314324ff4d0173ef7f6e75e06b0151998924c1c7b8704f80f7afc3262018a195b4d", - "0xd57bce545fb382c34570e5dfbf338f5e4e7b9012096b41c4eb3aaf947f6ea429": "0x0000", - "0xd5e1a2fa16732ce6906189438c0a82c64e7b9012096b41c4eb3aaf947f6ea429": "0x0000", - "0xe38f185207498abb5c213d0fb059b3d84e7b9012096b41c4eb3aaf947f6ea429": "0x0100", - "0xe38f185207498abb5c213d0fb059b3d86323ae84c43568be0d1394d5d0d522c4": "0x03000000", - "0xf0c365c3cf59d671eb72da0e7a4113c44e7b9012096b41c4eb3aaf947f6ea429": "0x0000" - }, - "childrenDefault": {} - } - } -} \ No newline at end of file diff --git a/cumulus/parachains/chain-specs/collectives-polkadot.json b/cumulus/parachains/chain-specs/collectives-polkadot.json deleted file mode 100644 index e17958f1f683..000000000000 --- a/cumulus/parachains/chain-specs/collectives-polkadot.json +++ /dev/null @@ -1,98 +0,0 @@ -{ - "name": "Collectives", - "id": "collectives_polkadot", - "chainType": "Live", - "bootNodes": [ - "/dns/polkadot-collectives-connect-ew6-0.polkadot.io/tcp/30334/p2p/12D3KooWLDZT5gAjMtC8fojiCwiz17SC61oeX2C7GWBCqqf9TwVD", - "/dns/polkadot-collectives-connect-ew6-1.polkadot.io/tcp/30334/p2p/12D3KooWC9BwKMDyRUTXsE7teSmoKMgbyxqAp3zi2MTGRJR5nhCL", - "/dns/polkadot-collectives-connect-uw1-0.polkadot.io/tcp/30334/p2p/12D3KooWPrJ9VTn3GEs2e7GQs4zoEFiTFcjXFNbQ2iDxFDQAbstQ", - "/dns/polkadot-collectives-connect-uw1-1.polkadot.io/tcp/30334/p2p/12D3KooWGFYW6hJYn3pkpJawyMk6souXh7sznK8yvPmVQ7ktfHbV", - "/dns/polkadot-collectives-connect-ew6-0.polkadot.io/tcp/443/wss/p2p/12D3KooWLDZT5gAjMtC8fojiCwiz17SC61oeX2C7GWBCqqf9TwVD", - "/dns/polkadot-collectives-connect-ew6-1.polkadot.io/tcp/443/wss/p2p/12D3KooWC9BwKMDyRUTXsE7teSmoKMgbyxqAp3zi2MTGRJR5nhCL", - "/dns/polkadot-collectives-connect-uw1-0.polkadot.io/tcp/443/wss/p2p/12D3KooWPrJ9VTn3GEs2e7GQs4zoEFiTFcjXFNbQ2iDxFDQAbstQ", - "/dns/polkadot-collectives-connect-uw1-1.polkadot.io/tcp/443/wss/p2p/12D3KooWGFYW6hJYn3pkpJawyMk6souXh7sznK8yvPmVQ7ktfHbV", - "/dns/boot.stake.plus/tcp/37333/p2p/12D3KooWRgFfEtwPo3xorKGYALRHRteKNgF37iN9q8xTLPYc34LA", - "/dns/boot.stake.plus/tcp/37334/wss/p2p/12D3KooWRgFfEtwPo3xorKGYALRHRteKNgF37iN9q8xTLPYc34LA", - "/dns/boot.metaspan.io/tcp/16072/p2p/12D3KooWJWTTu2t2yg5bFRH6tjEpfzKwZir5R9JRRjQpgFPXdDfp", - "/dns/boot.metaspan.io/tcp/16076/wss/p2p/12D3KooWJWTTu2t2yg5bFRH6tjEpfzKwZir5R9JRRjQpgFPXdDfp", - "/dns/boot-cr.gatotech.network/tcp/33120/p2p/12D3KooWGZsa9tSeLQ1VeC996e1YsCPuyRYMipHQuXikPjcKcpVQ", - "/dns/boot-cr.gatotech.network/tcp/35120/wss/p2p/12D3KooWGZsa9tSeLQ1VeC996e1YsCPuyRYMipHQuXikPjcKcpVQ", - "/dns/collectives-polkadot-bootnode.turboflakes.io/tcp/30605/p2p/12D3KooWPyzM7eX64J4aG8uRfSARakDVtiEtthEM8FUjrLWAg2sC", - "/dns/collectives-polkadot-bootnode.turboflakes.io/tcp/30705/wss/p2p/12D3KooWPyzM7eX64J4aG8uRfSARakDVtiEtthEM8FUjrLWAg2sC", - "/dns/boot-node.helikon.io/tcp/10230/p2p/12D3KooWS8CBz4P5CBny9aBy2EQUvAExFo9PUVT57X8r3zWMFkXT", - "/dns/boot-node.helikon.io/tcp/10232/wss/p2p/12D3KooWS8CBz4P5CBny9aBy2EQUvAExFo9PUVT57X8r3zWMFkXT", - "/dns/collectives-polkadot.bootnode.amforc.com/tcp/30335/p2p/12D3KooWQeAjDnGkrPe5vtpfnB6ydZfWyMxyrXLkBFmA6o4k9aiU", - "/dns/collectives-polkadot.bootnode.amforc.com/tcp/30333/wss/p2p/12D3KooWQeAjDnGkrPe5vtpfnB6ydZfWyMxyrXLkBFmA6o4k9aiU", - "/dns/polkadot-collectives-boot-ng.dwellir.com/tcp/30341/p2p/12D3KooWDMFYCNRAQcSRNV7xu2xv8319goSEbSHW4TnXRz6EpPKc", - "/dns/polkadot-collectives-boot-ng.dwellir.com/tcp/443/wss/p2p/12D3KooWDMFYCNRAQcSRNV7xu2xv8319goSEbSHW4TnXRz6EpPKc" - ], - "telemetryEndpoints": null, - "protocolId": null, - "properties": { - "ss58Format": 0, - "tokenDecimals": 10, - "tokenSymbol": "DOT" - }, - "relay_chain": "polkadot", - "para_id": 1001, - "codeSubstitutes": {}, - "genesis": { - "raw": { - "top": { - "0x0d715f2646c8f85767b5d2764bb2782604a74d81251e398fd8a0a4d55023bb3f": "0xe9030000", - "0x0d715f2646c8f85767b5d2764bb278264e7b9012096b41c4eb3aaf947f6ea429": "0x0000", - "0x15464cac3378d46f113cd5b7a4d71c84476f594316a7dfe49c1f352d95abdaf1": "0x00000000", - "0x15464cac3378d46f113cd5b7a4d71c844e7b9012096b41c4eb3aaf947f6ea429": "0x0000", - "0x15464cac3378d46f113cd5b7a4d71c845579297f4dfb9609e7e4c2ebab9ce40a": "0x1010b8483205ff2e3dd48d4d4ec691d40d176926a9371c86ba497128450cdb7a404ea63b50c3023d2eedb6796866581f3260d1f6fca2c08399d3889ff6cd904220667c31d014a1f5ed7bc867583d264062d3c7b15dcf14d487b976cb15292d204cc42c67a21ef4329adcf99c421b72d95e4b5a90e24beb0a9b1c922a33a3b45244", - "0x15464cac3378d46f113cd5b7a4d71c84579f5a43435b04a98d64da0cefe18505": "0x00a0acb9030000000000000000000000", - "0x1809d78346727a0ef58c0fa03bafa3234e7b9012096b41c4eb3aaf947f6ea429": "0x0000", - "0x26aa394eea5630e07c48ae0c9558cef734abf5cb34d6244378cddbf18e849d96": "0x000000000000000000000000000000000000000000000000", - "0x26aa394eea5630e07c48ae0c9558cef74e7b9012096b41c4eb3aaf947f6ea429": "0x0000", - "0x26aa394eea5630e07c48ae0c9558cef75684a022a34dd8bfa2baaf44f172b710": "0x01", - "0x26aa394eea5630e07c48ae0c9558cef78a42f33323cb5ced3b44dd825fda9fcc": "0x4545454545454545454545454545454545454545454545454545454545454545", - "0x26aa394eea5630e07c48ae0c9558cef7a44704b568d21667356a5a050c118746b4def25cfda6ef3a00000000": "0x4545454545454545454545454545454545454545454545454545454545454545", - "0x26aa394eea5630e07c48ae0c9558cef7a7fd6c28836b9a28522dc924110cf439": "0x01", - "0x26aa394eea5630e07c48ae0c9558cef7b99d880ec681799c0cf30e8886371da92db362cd71122f9b5aa50a90539ae9294ea63b50c3023d2eedb6796866581f3260d1f6fca2c08399d3889ff6cd904220": "0x0000000000000000010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "0x26aa394eea5630e07c48ae0c9558cef7b99d880ec681799c0cf30e8886371da969add5569b86e6a8960dba59f16ed5f3667c31d014a1f5ed7bc867583d264062d3c7b15dcf14d487b976cb15292d204c": "0x0000000000000000010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "0x26aa394eea5630e07c48ae0c9558cef7b99d880ec681799c0cf30e8886371da9de4784f2786aab645a9a060c6c97877310b8483205ff2e3dd48d4d4ec691d40d176926a9371c86ba497128450cdb7a40": "0x0000000000000000010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "0x26aa394eea5630e07c48ae0c9558cef7b99d880ec681799c0cf30e8886371da9fd8ed2cc49c451026b79bc1ddc510b6ec42c67a21ef4329adcf99c421b72d95e4b5a90e24beb0a9b1c922a33a3b45244": "0x0000000000000000010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "0x26aa394eea5630e07c48ae0c9558cef7f9cce9c888469bb1a0dceaa129672ef8": "0x29912c636f6c6c65637469766573", - "0x3a63": "0x", - "0x3a636f6465": "0x52bc537646db8e0528b52ffd005844d8023a5443ab5620d0ba4a075a9f151f05dd81c3978c0677fad5133d27a7814bf49e9d61daa9fabb0e7c6c761c13f4eed9b4fbbffb2c93b4b961bacff04e6f9db0e7fce82bd44b87e0b37d1765514949232458fb7b6f42e4de32c99452cd0bbb09970a5d74aad0a9a273858e153a5f74b8e880a143039d2d749cd06942e7091d2674b2e85c898511f3a233a593450c8b8e94ce173134b1333951724c104b236704392488bd11bb41ec2ae646ac8d181b3133b135626ac4ac626562646268c4c6c4cec889cad12127871c1c729ce4dc90d32487490e54ce921c253949724490d3430e929c233936e4d490c343ce0e3921c8f921162606264646ac2a36464c8c980d62596235884dc5bac460107b416c4a2c04311c70d0e09cc10983c305ce163853e02481b3040e0c705c8023050e11b0387092e0d48063038e12581b30366066606be890010b032303060646051b03530386066c0b2c0b18169817b02bb02f6034809900f6034c08d80960516050604f6040c04a00d30176032c0758131c305e66bcaa5e6fbccebcc8e0a0f12ae355e585c6cbcaab8ad7d52bcc2b06af285e53bca07849f1bac1cb8957921712171b2e33ae355c6ab8d27055b96ce0c2c295c695c54586ab8b8b8bab8aeb0dd7942b0cd710ae285c317041e192c2f5844b062e290084c0645869260da6151ee312e265c34b87570e374e806440344027e00d2e282c38624aeca860470a48065886978677860d0e2011e010ad273d4ef41c61e325968567c6860bbfc24ae3e68c24e2e60d100a59826d0a1533a5f8526083022f0ccfca13c37b80c1e1a1c12a9827b891ba89c14c62270cd814ec0bac0c8e414d152e12bc6aa8a102bdc0ac280a280d6e9a68219a88cf0ceb0b96172e275c4d7c3f7c3e7c623ea88fc9b7e46bf229f99c7c377c636a588033e635b573a526096fccc7c407859760281809568289e026780a8e17dc0266011fc1427863f0101e158c08d612638265e051b02c312a5e81eb3013a34609cf6116c60303220195f0131f153088591c332170c8dc488133c543c02e6018c82a66542c319c093bc126988d5133a5e608af8c1919ee04070997c00bd39384a7702898168e438d0b6a5ef08a83bbf850e037300a6a5a30bbc22f984dd5185183044f94efe04d6627e009014bcd58c05138053323680fde971692d691960dad12b46a60c50172692581598925a1a3050b0a568d6503ab069a86c6e1dae2e6c9cd911b263750373fdce07063829b206e4a7003e586043740dc8ce0e6861b1d6e94dcf0004a7113821b24373bdcf870e3e4a6879b26e014a01428033006374b6e72b84972137523021b343670d89c6135792df182c14b89d70b5e2e7825f19af242e2d582d7112f235e2c78ade0a58297945711af14bc50f022e235c44b88d7095e516223c08192637096805074045c19ee0c6e0c8706fd8123c3b1417de0acb8366265bcb27066e810db1307c3bf3817700ad804988497c085f020a818d40c3a066b0c1c2158606ed2b890b86a140d7ac6fc610e319f4818482a72896f071c1e3e1eb62536273626641152ca26033a45bda059be223e2c1e1b5f163565d48ca909e32a83ebd223c69706c74a0fb165d9b6e0f4106bc213e355b1117c028e0296060c05385fb014ac2fb120c02e5b148f8c0e16130dd6191d1bcc32f20699837432c9380f128759141717134b4d2dc6055c4279d0d9a2e3050e125e991d11b81a738aa7c60d14730c98e4260a0ec25b631686c3c05fe0556225e0243c32e418b20c9c2a3a586240c076c0618347873e01e8835422f6c43383e585d5a5a7065618302c2415a721c5708d000483f5065bc930180de9a59580506417161a2ec36a301ccc0417315b308fd8aa6021008ff89289c40d952dcc14c35470da904c7804740a4d226605ce1157028b9a67dc3cc140b0148f8b6ce275016d006bd8c8987de1798981b1951123410c0a9360013c14a0420a46094040253a80015e47041064c2082e2fd38d8eeb72f785d512a9880f0e1c0df181f4c2d151c712c812d2d1516b86a9f1233f8e84b4b0c443494908029a7e20292909410000dc862da294e4a30909c81112520b20780d2ba485a5a4a30e3021c540e42869486d5a4282a1033e1ef05e5ba41f4b42968e7c1c250da9483f968438a0692906213f7ed41e990688901f48403a90716c910e2005392a52a403482b2c09492a52044902a1846367481a529990823009b1000ba144b3484d3e802429f990e1082906a41820300120482eb8e06302009067b648901f482ffc78638b342d213121bdb094f4f2064b492df0c8abfd9154642989a9c908d2510794860cf171c4840444292986a2203f842815cda41b0bc3918f261f407c342135e046b6e18124251f494d494b4938928d0df2438812078e909a62f8816404c925cd2c1293100478728d2d8294d494c424e485a6187cbca41abb2424a9c907530c408e9a842815394a1a527d30c5507196919438e0a3692986168e9a7e20312501594a3a3ad2894d275c142b4d9ed47dea56aa56abfc2475b67935af7808738e0029a544400264021020a54400a53953f62d9a73b666d3288d79a240dde76477a734a7ce94a9531aa5514a27754aeb3951604add9d2953673a9d3a6d4ea693a9bb333375ea3ee59ccc3d594e9d67fbec5dbabbbbcca2edb3d54ca9fc80d256cb5b939dd6f8646e4a27339d9252cad475ccb93cddbbf68e9b93762d9fd27d6bb5b8065b2d564dd38e35e7c69a4e67bb579e9432a59469134daf716fb9b740e0d6ec11da9d29059a937bce964eddb935d9b9bbdba7b733738b9d76bbd3397d8630db9967f39ceeeddc92cc9272b76ce6edd9744a2a67cfdea694cea52da6eedc6ab950c7ee0e76ab6b58ade6c056d7757436e7d39936a5216dcd39a9942c4aa9a4947600034cf9416bca16a535d37dce59809d947e925267dab2a7f40fba5948484808047db27bcf5dcf73e79d4e1746009d393d97ce5232b3f4c9debbdc726eb5585d63d3ddf29ed2bd351b9ccc94e63e5b73720ef7d96a7d9e3bbbefb6cbbb2d4f4a5160ca949d4e14a6ef000104f7392953e78fbd1c3c9e730fbb4f9e01b45c870e771deb3ba72f77d4d979bbe93d999777636fa7b435e49aee1fbb33fd5ad6b45a2daed5cd93993de6cec1cc3448b6fb74973d5b3d73f8746ff756cb855ace519fb30329a5d36b9e3e5db6eceee63866f656abd56acd56b7d7d4744d4db773dc9cad5677f79c94ced9ad39bbc535d73d7db67c7e1f6d9a4f8ee338a639d8d963f779c23481190808885d0025903029a5bdec4074fa0c726766a7ee943af36cb5b85b5cabd5ea39674b3ac264e600b83b7b1c737ff001f5e9be5f0f33730ef7c9ec72669e944673ba747d7a7bbb7f9e3bacd50cd422b8b38bd0dd72e6783965a6cc0c007739cd7d99ba7308ad9f6db578d23c97b3e7f439198496b77c4e77a6ceb5fbfa3acf769fdc07d30573a61eb88f334f760ebccfb9e5eec5a84f67f61ccc2e864d29a573ba4fca94dda7b333bbb3cf9deeb3a7773d9bebd9edd3ddbdf329e974caeebeeb3d60f474f91e23484096928e96927cbcf0a3851684880f0489090908939023a1134a404a626a0a6161e0250189a9852326214d3e7e085152f2318321a969290626b1a785a6187a905e386a5a4a621a72f4a348120c3310603adf4e901f3e38a0a42424840e7638e080039dd9ac5b1292d4f4c34791251f4c4d474d4930c020849623f6f0c09690860cf1313341a8c78890199a38103aa184998e1248382a0129880f250e1cb9b094f442111f2f3c920c484a47467cc0d001cf92e08210a5231796925c704188928e009494928204ed140141674b68122284265b127c2031e52005396a3282b424424e13920b20c49684224d45928c208580b32518496a01896948108cc90792d28f2324177c3009692a72044429e9851f474d4a31f8680109c84fd7c4e4a3a90808259080d4e483096909c905a6221eb8b6042048458a20310d8141c88f2326241984fc40623af25104c80fa4231282089d50c2901f484586b6177e34f9e0c0d10b459296925aa0c9b084246f9684a32521494598906438ea400b494c48321c0d8084134e280108d29190a6211d60fa71d4640429870c4b48f2b5dd0126213020c1b0c9b0842443f8a668777ae2a493f758cee969ce27a7eeb1ad1eebb4393d6d4e4e4f4f9cd3d313e74fd4c9699ff8699d9e640f272727d9e349f670e21e4fecc43dd6c9e9c9493a3939790f2776ea1e4eece4e4247bac9353f7787262a727d9639f688f7d62f5d8a727ae87133f710f27767aea1ebbb3c713778f7dda7a3cf1f6d8eef1c44f4f4fb2c73e3d3d3d798f7de21e4ffcc43d8c641bbcbb0c43111f1b2fd4f9ae24db29d24da4352d0b907fa44dda3a95b96c6349465a8db22a7f5cabeaff821ce2de457e52e58f4a6c65c603b95655c7ae3d6171748aaafc1c073832d4c856d5ddeb2e90ff7e10e8a2953fe35655175b89adaa7f87d4453002b28813bb4afec827ea0d0ac83f76adca5fab3a768d7a205b51b69256d22a09955bda66a87f7ff6cbe9fd5bfd657f77ffc7a35f8afe24999f38e8ef3d44bdeafe05e84edd9ff3e9cf4dfff929c03d9fcfef217b15ac3ecaaabbcf7054f22aaf87a3e7fcfb1971f3e7bf1f0f173d0ac264dc9e7bb3fd8b6e7dc6202a6912942b87e450a714c4c50b7f7fe677e1eecf48abf3e79c33a8ce2160f5194483aa8beed44fb465189c150d51d2aafa7315d24a5a59c9325feda3aad5a495b4e2acb66e3d4ab91f6975306028933ff2bb8ef3f65381bf7f863d7bcec96de43c82959bc50d89ece6228c1303e41f4139bd06509fdee4d5bd7d4ab73e1d535056e7bf7ea4b97e0cbaf951c756b9dfbee342ba541fed258eb420973806e9b811471dad07c591765fc312c7af23f8899e4cd6892d71f78752fabbac1f6595ee0feb29abc7d370fca6adce6d6ed5a3eae678da9cfc8993b30b314ca8d407aafc09127fe24fbef80fb46ea24be1c0b81497e24ffc09957a98ec9bbcceefad1bac3d5bdc4222ebd3f36f8ab26e4ad910eb475ae76c7230acd009acd56a35141d31ff6990f95c8f1be07cdaedf4a001e76fdd5e7e46dbf62960b9f2c7638a9ecf91863af7e3e175fa66e4dde4db6fa20c5ea7875ed7473af1d3d613889d7af9fd4800ef47134498c17c3a48fe6c21d1d2e607cdcfeb66d00c9a54d42955e77e9d3dbe4e75ec67cc6ebea4ac1fc1bab57e7708943f4db3cee7c480db6fdfda9eb53ddd7a547fc9c2cfba719b0c334888ed23ec49cfb7e72ddce68f3729cceac664cc6f05ea2db45374eb33f2144e047fdc61f36309353f86f0fdf8ddef0eadfca13f82756e3fca3a5fdc2130dc1ddecfa72bc4da1dad9fcf8b02037884a5a2725c1890e39ea84139f48020393484018c023be111e483a00d5823ca3e719475e208d631a8527113c7aee35ea9dbb742aeacd097367f881ca2fb335f3e3b61147647a0ffb26935d7aacadfddb10b3476a53f761dd94995ff0039c451f2473ea53b257f46d928abe34e55f99d1772e5a8ee653210dc9f91d6ee475a478eaa72a7a83306ef8961278ee206c23a8fe6c7e35bbcb4393f1e5eb7ef38deae592a8ebc11c975ba542c15536a9856c154557e4741708455f9a3570aaa01fa8fb47ae0828151efe9c956c5b15514b4a95334d234ba82bdf23aee15f5c0adda2aa6caa15b2190d6ed6da654f9ddc8d57f77c77c17474f03f47717e94e8f1b20a745dd7ebca9f23be9adfc8cbcc5d1c89491cd80fe44b243256eaaf67bd8b33a458e6a81e413359f01f233711d39aa2aa7cf6d1395b8a9eab4eee7fe2e2e7153d5668a64d2adcf08eedcfda638729defbb636b9275fed230c0f9fe44eddf0a5d37d11768fbed89db7c7371a4c18924f7f2e5d3c9cd2936c9ba719b0c126c32baf51957aa4ab069b06e3e8753369be148ab2c3b1c956095fbd9356d3e8723ac4e0ea708864424f744bd1c58e510287f3af7f663c1f9336a717caa9c387295356df4ea7c7077f8cff9de432f7fe44f715482d5f9e00c9b0d70fe08aa006b9afc29ca5e0e05c91ff9f2b7853871a4b59b1e17caf80b6a9a7c07805ed3e4f38f4155fe7eb469d2c30272e721d76e5bee1a177d81e613f538ebfcc016eed2e6fb67b4fdce4d1c69a8febc557e3cbcf61335d8425b95cf855b378e1395605ef79b22cf0afdf3a7b804ab2ef6af54dd1c4f93e70af89558b592aadafdb2ab9ddd4e8f1b20cf0afcf2e5f3fbcf979fd15c679e41b72e2a70a59254d559572a49545dd7137301e69c73fe7c6a66312477bb02b8df029eaa3f51b3f8c49c000a74db42ec1ecae7b05f8673861ebaf4e4a702577fef50b6d78eba6eb94a29ee7736449cea5e606786cedbb419cadf2f05aefd549b3b97fb19c9276a0f99b6108f8b2970f57791368d7f86417aae44224e957f94df2c6ed3b891ac10e8d5ab9dcd3625cb97ef7353a15f3e516f0bf1a4d02f5f6ecfef2d34ce0f22df7fdb9eb6501b6d5e256a96ea7605b0b3f14f82a42e8bb469fefe9d4d1111a7eaefcf4644b8bac8816e5b3eedf7df16f2fe8c5c3e7f0ad8caf5895903ddb6504b8faaee6f88640a0995fe9156295fca97522281aa524a29e5af8f8401cc912b47a2be85fafb692d347aed7e9f16e2da3670a9fd5e0fc9a2aea308b5eb38abfddb1f34a45b571870a56c00a2ae54ed4a0075a56a98aa1f51fff6fbde42dcd7fd8e0bb76e21d76e8540aedc4b8f3fa38d014fdc77fcf1d89e13c7edb7effae301d6edf7f3a6f9ef67349fa8b7df4f76fb51717caaf4b970a4dc13492e1cbd72bf9f11fd8e0bc70454eebbfd58e268a4b29e0bc795aadc6fe1b84d3332e4851e17a8dc8fdbb4f10195fb715380dcc2adac90884c9326cd55dd9e0b470254ff8e3d2ef46781ab1c0d8970751347ae9c4884d3a44993a68e4f756e4d92f9475865ca324db73941b4ba758901ae540d5275a475a56aa052f7bd1ee2a27d590bad54edaa6e1d67757f7d96a85b113ae4ca21576f21feddea2dd4bfdf71c71e7fd7def20d0f28244ddb2adfbf5f7e462deedef08072d2b4adfc1e6ed33ae4da1fff7e52f4fd8c68d37a6b875cf773c07214ddd6feede71ff7bbeddf97fd41568afbd40c818e9f43570d40a91a551dbdf6537e4a570e6dff8c60e51fc1eacc4064b79452ca5ac85f7e27e74b9f53f4906b8b63bf1c023b9bf519bff66f0bb5107fd8ad10b8ef4debe7cf68c56dda488db669fd447d02c8df2f6b211972055ba81fd6422ec3adfbf913355173c8b302adfcb4b2c8b3827c7ef92c367175f1a53872e527eaf56931c8d7cdf124999fe8b6aecf08d6fe6e5b68e497efbfd3e306c83f7ab5b769fe2580fc2cf00791e236cdc591d67d0eddaacae0b2618fc3ae525586edeba4b7bb837f944f5b68e42a7fbf932109a0fcfdfd54d8a68d5ef7a5489bb64fd49df43894f59361f3a8aa0c5ecdee60e25a257280cadfdf1f0b5eab557efe7880b5caefb5d0d6fefd7870adf213f5863e2d0601ebe67892dc61baed6e7f40fefd65751b00907f7f59dd0281fcfbcbeaf8b785c67d16b769fbfb4fcc38dd4ad5a2d4e5bad501f2ef2fab070c76228e255a3d597ac6e899eaa1d2f3440f133d2d98d9d053ebb18107cceccbec881918b3256649cca6ccc8cc5a3073c14c899d33b325b32333243334664cccc4cc68301b6246c4ccc90c87591bb31c78d0983199dd306b3283e23963a66456038f193c61666978c8e0896316c5836696c5ccca0c8e19169e333c543c69f058cdaaccaa6666cc42c09366569bedc0a3068f183c70f094e1196307cd2cc94e1c3c5f786aaf253b6eec70d9a1daf1b2d365478b9da91d2e7656b043829d1f74c0e88ca123860e954e183a5e74a4d009610755fbbbcd63855bb485aeba5df5d0367f55cd0a4a5e45d59e5477a8ca3f7251aa8b3d6e80524a1d3dca959534aaf273e1ca9fd19f6ca14d0553476944ed9f21b83b66b2e7c69c2fb5895237879364af69d26d95ca3ad6dd89287f2a6c5454fe294a55d6d134666f5b88bebf0fad855acf2f420bc9e737a185baf73c5184a6b542ea35ad5faca102f277d7deb69009efd300505f440dc0127d68dccf90e3880ca9db73bf1f0fb0528e2302562a8e4366c805e17efba8082dc4893c7f3f1536714511a40caafc320439c9553df9f0c5136d584146131e94180a62aa07294796b8720515212b422019830c2ae068e204234f3c2089c1161fa25460821a9890021d8e20c1151938944c11809136ae585245072492c8e282128cd0c240b1840b291c68f00609337481a2c5064feca0461041335029e34b1c265802c5ca04232839628583551146f46044003c29cf051e1015a0628225d41023268e24403833bc66d82c56664055a140c992232200a165872b6cf0218a1b006064ea8a2c4cc8e088114f3409c188074cdcd0851753392cf99161026d10d143933367a4e00b6d860754e17215458c183e34016186a71bd0105104972353cabcf1c1185692cce0055610c102280f6248c820e1860e6f90c1e233c39a71a40b1914c4808c1ab420c7134d6c50c20609d83862073188323e0c31954409c26011babc00f70a3154d49bba5798d145955566a1d11bc1ea5c5db63dd43f8a50f769fc19c98f0901cee79fb5d0e853c7292af9541ac70e3cad2fc89401bdae54133167c0565da92654dba48b26394b9da2a0091664409bba524da0d8c42648e000ab6a32c41a4d7ee8d280605da9264b3c28c01c2b2f09f87de9c264ca09d0ab2bc5848aee056057578a491346303162e510287ff899b968f4ea9c524c4e50e77bdf50341fd6435e34ff7747abfa301a2cca5a00baea4a31d1a11507f8428305a8f3a55302a460cc00845dd10203fc9ca802bf23bc1a18ab2b05f5436b0910a7ae14940d95bf5506f8d5955ac246e507e59017314b2d29a37a759755a2266a198221ac7ff8633a805c5da92561d4aeaed41231d587a7133fb1645d8122451b5d08d1c40830a27823ac229644d1a0066a8819a38319f60c1251643943860b17553830f28113b8c00625980a02aa4bcf0c4cc6c491e4cc1b4bca283333f224ca1448a8a2cec042043c46464852658c2ba60c21032d76664840185a5ca191aa0295864e1216f080450d2eba605181cc4806b264d1061333a4be3822270425620c31c6042b980195d80c4e362023831a7001a3a50b9c7e6ac205424cf1e26a8d358c2882d5116436d2adcfee0eaffba37fad56b3a188283604c83f9a50f7570ed1227e2a87b856abd5a08af8693de445fb4b4139546408328668a2862790a815bd6affd7fd7a7db8999be8564a91549ec8a8baef73e3a8532a9be9c6d1cddb7029abd579ee79b2d9f36579dbeabcafc66b6a6473cdaef7ade76db8355675bfabb1b1f1361c656dc3b1a9eafe8dcb5d2ed9ecda52f7a95469291da56b1d655555650b159ec2511c856b57bb45baacda2ae2b85295bba5749f9b6f9b6cdeb8a5749f73e39ce36433e773db388e5256cb5b2dd9dce2288bd56a759df7f9f7c9e6afd579def7d5d4d8800e82b219fc3caef1d8c6c66310f4f8c6f5f2d74b36bf5cdebebc856d38821b8b799b2373994c36cb6e3c0e5d1e87afaffbdd0b06f3381c83ea3ecea702d76d5a87e37118fb54e06e733c274736e7d01aba40dc365d36e3d01a2032ddfa8c5e54edef2498a6b5acaa2da916a87fbf07d0ed975be490ff166d5125550f715cfaa71f4cd5182b33f28a43537b7f47da43455399bc8eb487da5dc45dd30438fa545e9fa6f18efc955be48f147bdc001daa8e0e55d5cf51c9a12dea91b3aadd95bfb3b14a41d61a2640de2287ba48d66d9a17553787f320dee06b67d36fd401073d339e1d1d594e0c07f672dd8036359fd7b55894dba6cbe605dadf8f08a7a945c8276a5e5efe513624c5dd1ffefd5ad9899fbabb8b94521cf7e7fb8ffb1f0bfb41a694522e9be97685dc65d31685fe71bfeee3600176dd15b80659717984fda76616787b1647ea4fdb9d86ebce713f15bd6efff2168ebcfdd2794526af4db28500fd86071418f9fd748ef3b769eef37d36cddddfbf6bf6ea6210b08ae3e873db8f9472949b348c4efe8a23aceebb5600f6ef50612b114e53a97fc7210e16bd0b3482db8fd42b7dff8e869412f5e6321c95605bfc571cc1bae2c8cffda43f72cff173df9c7703b07ff4aa7caf85785f3e0d5788fbb139c4c102f4ca5f83f01335e7fccb62ba9fb435ba305c9a0775fab782d74dfc059a1fae531aadbae8687899793233f39c1b23516273c2861326bb6ddbe673dbb66dfba9c5b662d050b9051332bcba890ed534f9e014f5c0add2b17bf4993fa3ed25d7e23817b7906e5bd762cd9f3deaf6f3896437bdf9ed9bc873ce27164b333ac92f59e8e7ef3864d19b269be8a228fd7ed441c24f589d7aabc3fd282322c019a007ca88e4d005e48ffc4fe689a36c3b9628b505f42f85ae9ca864c5962a7f734783876f9300046063298c0d4a6d6ce49c73e3388ee366dd449a4d191a6d526143874d6e3e43af1d7bfeb1e02f7f0ba737f50a526ceada4f44b6336351c51866666c86a452b831a448994e4559ad8d4e3ae59c739b2de7dc441d330a1d3eeec34da7656ed6a3acaa582dfdea14bdf685616565c567ca584937984ddd44234d934f6b4b3d7097afd86ddb422559ddb6b96d1ced8a37cb642ea5ab9b2b8739bfa04bdbdeab1b0d3f9b6f4628b74d6ece8ddbbac16cefe1b6f1f6cccc2c829341b05bcf3f238ec5a2bfcddf9ea322f71dc782ff0cb9f7cf8893dc26ee96857f46fd735b17c7ad52fd69228c3eeeaee4b340ed537b721c37c57d9d9bce078d0ea4600775d4d1411dc1caf500ad97af430ef9d81df29ef5bb42fe43e49027726dfb8cbe1ab6ea9043bb3ab6f7a3ca3d7deee3f1b5fb8e6e5b27fa13c96ef3c6adaaf259e1b860aa7c1a8e6ec489f333eae77e9b9c8f4ff5a6b9b8ace66e406b66e41518d20c0d50f2ea4a5e815e9da2438135702887a21e7875559dd674a0544ba98c0abd96267ff4a9fee10a81ffb42e2f2a5f268774c81ff95447955bbfeba84e80ea3b05d236186d994ef102373700f9471d55caca89e37a41a334aaf90347154656799161fafdf90660d55215ba3a4579b540aea82b79b54eabaaaa73544cba6034546aa151b61fbd26e595ac925b56caa1aa64f3655256657594d54d56fd89541d1d6aabbb40a39107acfc19e5161a80a84e4394ea50c0918628dbb4298e343ca9fed2c35156d5f91d8e4a0e55fda7e89ccce24f467f0205553d8a133fb99c49d01ddbcf67ed0e96f705122541457405301f097d255fd46a39b5c26d0530a95357ff8ec512e756a777db26faa4e1ee09737a756e73c963277e9aee3574dbddb3bb7b4eafe3bcede322e8f33781afd56ab55a1115b9cf683a1ab65aab363c90fb2de45ad3b8f7df42dfb6d9ddb37f6e38d23a371cbdcef9d39bb63d8744e4f644adb4893e4546d2b40903ae715ce3b6722bb6aac1ba8b23adfacf64cbcc23acfab685a357ef24efeef6cd1db737c36e2eb7f49a5da0fe11567b6b7179db96fb11acce7a5e181b2bb44b1b6daa4d1dc159a7485b20f9366468eb14e6b0994615312805c15146e5104755c603b744a18202f21b20ff7e11d8a2953f23ad54b5dfbb8b38515a2521ad681da595a49254dc14124b37086c24d8a807aac066dd3759752703ba83f39b5b9fe218dc6ca6e598ba2fad786c55822ea9a04cdf685f716c0548a9d75e9359018ed4c6fbfa08cc46069bd97c2a70056f5c2fd7eb067cbd5eaf974e0dcc88915636c091d66eee9a6d1aaf08aeccc0f0b71b65c336badd70d634269c6be7dcf2371c5d68806b851727445289a8dd97906168c5891329209d9501f2afd7f1b76fb4e595714695d5b8e2b0a1f2aa42854ea12099ee96920a753137665cd6b45695358de3388ed20e8bce6bb55aadaef32648c49c40e14d89721205889c0d8c2b740af57e90f9151d2792cacc15b8c3d595729266cacff0784d36eba2e0a0c49d4c6d607854f4dc5085ca9a168bc56239393818413f23ba133c0b0b0f8a9055570a072c5e68440f8c076e417188c2a10a9d2f39b6df1728072e39089183131cac9a82e1e3048cac2be584caeb4a39b9f2b02b3cb8014d57570a8728603630dc890f3c0e55d8da710bbaae156290a83216771728f4056a4d05e52095039533a8d0ba52374cf1ddb13b56d6b4300c43518cfde081e7e3e3e3e38107340f84cf88eb5a2146892a6b1a081f11af207c4644384d652d503f089f0ab46f9f43ae1b12e134959fb640fd3bae31e04add0086b53be8ee5879e3354dd6b4159b04187816cfe29e454b992e5ddcc1c8e259ac68f12ccc5eb45861f6a2c50a73192b5eb460b1a2058b15cfa2c5b36c995826162ccc58269689058b4f2146e1593c8b7b162d65bc787107238b67b1a2c5b3307bd16285d98b162bcc65ac78d182c58a162c563c8b16cfb265629958b03063995826162c4e8567b9c18b96325acaf8cc32bdf02c65ca94914efcd49ec38630c24801ac3210a7e8767793bace488bae5b2eddfa8cae5a18709c532dd90a70e33aca6a75de576303deb85e309c58ce4ca6e3ed773b3cde4e95fce9ef6645301555ed2bab99d7e3f1169ee2a91e0e64b0cfc88a83fdae838f7d88c354e15681395c87e52af2a7a7c852cc45aaf6777533a505cfccf3c0c5fc15c151e44f3f47a99a54f20a19959caf089ec2537a38f8e0a683f7764e4daa0fbe2b10586eb0acf6596bec50d75867bad6b5497585e8311430874f0863ea38a9bac6b29a54e0543f03f1e4c977e5e381f779d5f2e41e388aa3aa52e87ac58fc75042f024959121563920171cfb8ae05a0800d0a28e93aaab12a64a1700d8ef446069e0025b80f4a052faf95e00f226d0b4a6f5ef54edef02e06d0b496702e8d0910022290634ad5f844f014debdf2ab5bf1bc19343735a2d4faafde5a149c53ffd63d7dd217f7f8ec1f2679c545d6b902cd00c8278be2268342912e134d5d504e4ef46f0180a18e44daa5ed2b5655981a9fd7d6487e6d4d83754593353b1ac6a7f57f2878b39257b4e7d24781c062ce14bf35d7d6776886535d6b08a2695fce18265c5b23292565d091e97010ac0db9106d5f51f9ff65d81e05704953f53df951c9a7413a73882558aa3acee7c29789d545b40fe7152e97c4578530230a14d38814ff084bc9d616a3fefd0a4da9ffef96587be2bf9d3df3ca37e575620fff85dd5fe8e67e6aa49cfb1040c186ac4972f32287cd7777cd7414f8b8e9432e92e3dc7777d9b316e8c0d47ba4b0e463d4f0b3fc1b902721d3dcfa3e4cf3e51cf97a785a32c178b725568d7baf13acfb94daaee04af3e2c9ee7320b9b2add6557f3b9bbfbac52e33519c751a92bb300f9b74f5ab9a785fba62b7d7a950b9d76bb3b5abeeb2ed6cb77dd65bfb78573eac929b9dfa6f102adb86dd25de67c89cdd1a5bbdcaa7ee678e01520bff45d9f724bdd9758a4cbbc294fcbb8dfadeffa16b4a3d33c3bdccddc9d474a7f39f3914137ceeadf7593d5490f043d97ebb56270532f983fa9fb7d0587ab52f73be6755f8e4d0d087a71e3c95c372f8f757060b170cee935d98e275f6e95e128adeabec402641e4955f77bd6e331071dc8f7e4f37695e1e873be8ff2e777329cd5eb7edbcbb0eb36c3916bc781e7614fd781e7e1c82b1ca03bf4c4cf6845cfc36f0599264d0e6fd3a4d9e694524a39e79452ce2dcce1815e80fcd3ddc519763e5e107f01f27b5d7cf0010820d0dc9d26bfa3f1ece8c8726238b097eb06b4a9f966cdc3820880200b0c0cc9df07e59014bf59782ccd35cc6d6e73cab748361fa172687611953ffd1ef26c51177959b6b7483e81dd4e5d38cefeaf762b999777ab1983d47d9cba329cb5c3b13b975740fefe8cf6e5f3c8c383797878ad56abd5fdadce2a79ac54dd91ebd5cb67df36357881e67c76aaf2999919062c738bce9d7fe57e7b0f4d994cfef47733a4c99f7e991c32a17ffafbbf1476aa14839ad6cf5a63b96b76aadcf721af7f7a360538ca6acb2111faa7bf694c689d7bf3e82fbdae946cd9060a4d9081f2d2250837b80c600a299498220656f0e8dce8d51d7554135ac89f0b5daa56abf95034ceeae653b75f39c4230495346590d00283a9221d75dbaa70b245dda6c805dccaebb2aed4122e606fa98243617984d15d55fef250ad55e5370fc92b7e8387baef9775e1f2cfc843cb3f2d19963e325546b73ee36b4a1590b93ab47d2c709508a709bb96ee6da11cd33ffd5eabe6033df093a2ac7275e3eeeefaeefa2efd399fe2785bd8edeee0a9bb63a74af92098e3b17607ad72777055d29773776c3bfcf7ca435e20fe2d9c5559e5fb0ad1974fd75ba1f972687b49af24fd8c5c945b9ad6cfc1014a33acaf6aa1312dd4fa7e69d5422eb6585f39ea2def991ddac02a3b9607b6108f3f5759a57c2a87b69c33c4a815c99f379f919caadbf7790d823657bca4bc9e70ed3a722f205e515e4480b0d76724c734addd5f86239b01e5134919ce7729ad9ad6b2aa69fdaecf486e59a0fede021ce555edefb6b4505745de6087a8bcda1d5bbbbb327653b57fc76e8b6ab33ffd72cbee586923d3503924aff6e78c77c4eb5a2cca7d35527c4d71e227771711ddfa8cdd14db80c5a8fddc16cac475e414beca22b765816a00abfa87bc7ff8b700476e4b6dabca6de16d59d34db1986ebb8dfce7affb86de4292fb8e86740559e75323ae27ad5aec8f523e4be96ef305e4f75d2abdfd561c3f70354a2c207fa8e45075bf3fa3fd76f7ada37c1c2c7865f37acdca2dadda3dca64b316029f433a058e146ca1910e6d5c832d24c5fe513e6d5a8760d39a3d1972f590b5407481f8e553af87c096adda519cfbd11d070b766ed16bda6ebf237fe49edb9e7b0ec26d2c5289e5084b17fd9dd1fcfdfed17b7f58d3fa3d6c1009d8fd596c096a34414192e7f6ddbff3b96fff514956b9a74b9ad67ecac9c095455f92d54d0ce2ef4bb21a44bed7348e7b49c7bdfce6ede78f4db3f615c871a20cb36e62902952b19554e138407efe52b0a98ba6ee839d444c95e6953536deb4fea1dba6b10805e47e8602fa6744e766b3cf2df3331a9079653b3a33733333bfac6a8f7294d2ed6a7681f63f2d6ca2c821d68f5c1529517ef4a8baa3cb9fbd85359515b6ace44f15192239825fc917b19e0b39294f68075559610b4d9fd0baaabcd10df49a6cce2d046be71e5b013214f0a6ee70535c95da4f39a9dacf45f5102745fef4d327fd4cde41852d34fdd3ad2b0e0e70b489aafd63ebaaf6db00d142a352540bf5d042dbf7db3cf18d4ed5515e49a92daba4b7855fe5a0b66ddba270f19a315b8d55eddf6aaa1e5043257fba73d2b4eea26a17d54175fbed3ef37315203f91e4d07f432569556734e4a22d7c55a2f63a28f9d33fa354f6b69690a8646a982b23350b428866466620000009331640302820120cc7237a202af20314800f70944e545026164623a118c86118c4400cc430c6108008300419641c6264360180381b45eca1e095fc8927e9af412af5625bc53816059fcb725559bcc2904e5bfaa2521c68ba2ae94bcfe067ee4c820f64d6d1e31607446acd0360794df23572b5192353a9bdf30af7540f389a1034250cf8a4f37e499709eb22cb633536f009c042ff6c043cb0128201b571d654b8e3b53a6da8a97cbcd4fe16d8fa21277cc899819a8220285a2f6bde2b48cb3bcd3d07c9a2e9b56ec09bb28cec8af1144acc58d42c7511c68e8840e9fa1f8672baeab351cee973fa0daf2ac9f0a22eb95010ea73e7f0f776e9d09174d6a25af5c6aa9bfeaca2b229f84e07952ebbd9fe5fc86774144aed8f9601d3232c267bc27241eb81278fd9a6dec4c4881f0f65b19c17c1b71d67279970f44341f8c44c75356a308b64da7b7107369d8254a5307f038f4644cc8cccc78240bfa1ca9fa2a3995b1eb8db5796567aa1db1b1b177ddce219e9b1db3af69f5d39a6f29dc5f6bb0d8f915a149a1f48099719e5518fea284fd4dd46da67ff14cca4527b9b8de8eb56b95fb549143de744d3a3a9dced50cc0e6a5c12b250a60202e0bb0059a5574f94f2c09eadf4fc84f587209a04798b73acb72bc0d18b4bf72609883b7df704933e17b92659ec2a27744d610c3f32bf7803c2b57e4419d8110e4b54b62c5ae94d2183ae48780e8a7058b19fad4d3f3f1bb25eddb585a216d63c4a8986bd2d45b3b7248a95a9e98f06e3e1bccbe3eb21d32489c1e6369fabeb6b4a5c8a1349cf075224af9c30965a7693c33f60ec98a7c19302715205782fdd39fd10131f907198bb2d5ea04822a77284f0a44d9126531a7f8303cfe53700e7f32fc18bcbc4e9459436a4014b4ca9b28fbf5ea3a15775ffe6036a99e5f01725653daf90fad96838bd5278739b7c501230868f995edc7d02c28a2db5c3846460c8e34f444c9df8ad25d5410152968805347e1bd35681758d86400e499d76e639b3def4bd214207c16ca9cb5f06e933bf0c66d10e261c6ebc4d9ce10dba04f069e39ce03c1f89c5eb159d841b8c896c91cb59d801b65f7e357a40f59aa823c9168732d0f11d22e52ac712873a88d512189c786227d82623a4882ca18aeb26fbc8861fb4a566c9cb05c8801188092e0fe102578817d2135988c39f185e8905d25428739851dea35e3647830d7d4300cb735692a19536c123f317bde7d9a9342b1db66067329961b9baa018b24683f0679faeaeaad7e49a1c4b574dd52b9f331a8a6aa11d0bcfc0c742779fa0e3856680e83d414fb9cf1064174ccb440e1fdb007f0e0ed0c22d8dcc99c5ada785c44db35dc4f728d4728e636f2dd7d1673471a3df16f0bd22cab55b19d86f0b15188a76dbd282a2c45b8f463b441361429d21a0acb44339e5f0270ace1c48a1d266b36303b853a015f4bc4b48f5a911a4b932c26b427220c25834fe5c7418f64b525f7a3cd126373c2bf7612ced6724563a3814851cc8b23a88067b19ec6f0b15088a766df982a6c45a8b861d441361a2ae21a0acb4433972f8270a8e1c4a516967b36203b829f035b4bc4aa0f2a911d2ba32c26b822a2d91a148ab5af4ab43b2f2924b43d4fea27ab2af230f0b516c546af8a82695a5762470ab2327eba4aa23934e28e6753119bdd163c48798009be4ef9c1b02a958fa0568df8a5ded06b3ef43b01c958e9e3b2d9fd1839d71eea3edc967318a70495102e4e2ca0728cc73f968ff71ccb05bb60dc3e9f4306a1bbc746218d0a89d8010b369ad34a01108de190dadfa2b246a74bdac52257579fa3ab6226c24c7f29e1be69926bacd4ef4ac41e9650f5e7db45077d0b1062f4d64e0701407e77316ae8204841c144232327a5283d5f8c530b66bb5c10cbedac3b656090db0cf2a2b9491165347a60f1921cbc7b9a362560a7f7ea989835e202ed4c49c55838d38d41ebeaa7d1fb08188f11783a8af1a2d757028c20b89804c7b5a908d815534ed131ce9a2d2583a9af1b2531ee54360da9ab04b9f0467047986c57d4e00f8920a68ac4483a4b48c09c9b89410004fd9537061f007da58568e4fae0ae9a905a74e1a14ac284bbc71297f165ae1ee4bc170d96381bb4df59922fbe735450b6d867dfed1cfd9c7c63cded7f6f548aab414cbe5ccfc5753b36499f2990b8f1a164dc30f9ac8a315da00bdaf3f368ee762aa520cc7ee549f8d05fbfbdc1fa5ae1ecbe6c1e36e69bd8d1ecbf283e21f55521f6fc3ef11fefa4b2dbbe0c3c805bbc5070272be5672f971c6e08754884aff3f8c7c233080add570b2d0040969f6d2759b3b52802925d5da40750ae04ee6868eb477626fa9e2e8e38ae58eb938d2a6c12a61a4b872f949d299f141710f1a62a2cb1d5ecacb20b0aaf6f91c002b4de1b54b612e9359d1025af0c9810ce56da523fbcedb9eb630a55d99b8140c89731929c6fd753a597dbb16665504d755eca86c10114bd0c9281d2b2d57b9380a54251c311659b3c67d2416313857cf5f44de444518435b3c868206a82c977146984a589541269d1ad9743098fa89fbf9474e65699161bf046b6549d2b3a81c4b5f7351341b11d85a8107767c7ba3c9a06745c5b2d1c127faad728c85b818e3028bc82c8a76eefe5c60788703d1eb89123789ed993242e179cd6637ed35c94f47dfc1532ee25e0e5e5fe8e9bafb7242662fe96a8d8c1a6f1d84d14f2d252261df16e8dec0d9f53b73cb05a29da9e9aa7a647cde4f4fd8de515d1fb902a6a4dff0cc8c749259ee159e18402a60c62a01e8e6a11ab7917b861be113f0c222f1ec1e9317a4af5aa73db23cfb9c13e0d1739bfc310842806e78d5a1a5c1dc05017a33f18633fb359a285d0c5cc8690ebb43740d6bd30398198053a8660515309afe0deeeb366f8b503b2095d171a01ce9e066049b0003d188a11837ed1a60995cd8ba78a63172b28938fd081bb27b002647c2c5e9250802923d06e5c6a832728dd32002a754418cd43f173d13e326748244b9c0e1faeb2634fd44f010bb37d18d24fd5af921e9e463b8aa8e64627fd177430a43cad526942f1854b95af0b8da812b9b3b2eaa91e5363980c0daeb24149fb015f79a6a7c448de466a45ecbaad48a420a745053b124ca5722e70c778e781c1b540e3b3e796fdffd66de3fe8d753e07a1c7feb52d1869e8c1bab1379cdaeae7f180dc2140d8cc78cf0b989534953edc20ed92801aea59a0f07b80a781e27ce79512e525354d539e9d3079a113dc1e05ad35c0807528d1b2a17a65d15d57b2141b257efe4e68256a73e19b01e01453aaaafc8741a183f329cb87302907a9115780ef0644331548b1046a44057d991d6786c7e3a5313c22bc3e47ba06784133f85819bcf6b3630cd54e82ca8105c869b85db87e7a8f71325ce83d465deda927f78491fc6b1ffec50774f0a252817de5ec20b0d224293511ec751ff6347a01b6619bcde9cf7072657e9c0a38f4139adf428ae9e6bad76e0d583307a2f09aa4b5a087baeb2b699240bf1d3c23858a289c833c26ebc9f38d5731bb61fb75f5a14db69b6f99f5aa6749ae2006575743eb8744fbbf0badf62a5f856593427d1069ea4cce7dd1da167f6c89be17b62b935f0e039dc3eb60854d55042857867560968430fbb36f9932ded93f55bd6fd00e1f8573d8af6206469e2ceb4fdc5d47ca3bc7148daf847249aca6281dd7836fd01ab902e92c48c2206fc888e38fea2f8a95086ad6251eb478e5ad058049f94df0651752dd004452055a29cd3ae3cb2f93216b7d08d212f48ce09911397ec07a782e8c8b58ced4c152422b548c1e49c24300b21b0ccf8854e7f703991496f2785af6ac06d0185d198be88cf0cfd9d732da93d0cb6ea7c06a802dd9d889fb80c7466f9c5d8c9a547a149b9d6a2cdd209237c6052be0ca715b8170d8a28137282ac72f2148b7219de1fee3e28ac7d5ad8e0516e3f72a659a313e963d3efe59d409908426b8b0cf40fda5b37f369dadc7b8f4ff59bce7672f6bcb86b85b5174245a8ec60ca2a74ead222f52914906d90d870860c56ef368841c5ae0cab5f273c8767486b83603c251d92a03818ab08c6edfb9e5ccab1c22ccafbe953ae988b6e01d7a884ac92f6ecc426eab2b49f3280848fe9ae1b7b4e251c8379e908ec38ca5c1fdaefa00d1eeea6396c5fc51aa042d9ceb1268b77264cba71dab64eb47b19661128b81396f502acff0107781bbe263cc4015e83a7c395c14d5cbe680f63ea480c2c2e95cce656fa519cbd5711196f8be522385843f173a8d18224bb4b8c2de45775f156ab0a88fb73730034361bed4103fde435dd46c26b4282495fcc7c1a7c06e52a1c25593d79d6980c07ddfb981d8795edde21f958e98d450e2174b4c3801bd924d7852cbb586307076a29ee268645526170709c52c54d0ea7094733c8d1078961afdb8deb8f8bacd10ef7f49de2feb74c7e8dd6073936c75fac95a2c5da108059e8a0c5b20ad4e827149e74b0938231b270ce9899971077c075940c6ae5788400c17d56333aa20b5eeef6f9c0823e40b10056b19e0ff0f45784450ebd25bc1361f6e0fa76d39521cc18e3a4dd60e6d1b24ea59c13b5845b4d52dc0aa9be62f2abffc1d05d150193a98559c6d2904e2377a22b9ce6db42da50682640e2e213050f1a371d0f2dd95d5c5bb4aa610d811a898b6001696d0914b425d32d49e8a4d9ec62feb6d89a05adf3c643bf1b94740253f45dd57909a5db71b5390e75d5ee9f6570dbe21fbcd147977701871f0a080f611784a6db6764f66a2b00332ea173362a70289cfceebfa4be6dbd6def6e4eb919831227997bd8ba44f370acdc5e53f951dfd30ec46f7f830983e6537d7cd6b0ecd77941c30c103a57995859b97d6b310b082ecee9e858038078230b4800b83635ce98205df8ea5286d037f6f896b2c7699e69c81a104f07d31189c4f5b8d6305d1d8d4ba72b9959115709ea7f80a8acbde05cfe052984ebf90ea17c507920b146185ca82c5abab68a4a880092a332a79017b1b5450b453df9cc4550620f91e6872994fd781cd84d2425107b7f6b234fad59419e9c008192a42c73ab145a271a1c86435c1511805eedb9b4f34f12612c2a6ae18b59e7ea26dc076c1e3b504ea8b568ba4ade91cf7aa9c147c458bb06432c507d8e41d3ee25ecff9b07b9554caea4624fb87a8543470d72ac2c079c0235007a6ad0a22725aadbb8406bff6ffdc46246ce62d51455c5455084f10c5a4e442b2687a2ba673b03bdf1c41a823c9d210f4bf09e16bc7582ce6524a18006f4d9c3dc355c9904d7a77c2716c6a7df9d1fe15db3cf84275cda6923b50842332ad8213a6d718a65b877d99744b3df423c1f630092d32fb0be69a21eabcd5e483bb449ad189cf79d04dc8133c14d5d219575ac5aa14e1d5ab773871e16358782aa63d9cf024195c96c096d66f710880670e016e19c049d16f4f29053361dbd5f26ca281e360742f572685ee3cac9f8e14f76c7f2fb16b6b90bbeb1bc6a48c88e675f15bec917bc5092a1b4d01eea0b63328017051c511681152258e737e20424b53dda9b0012e28e2edb7767fa9de29bb74acec2253d22d19eb8cbb1eb536c1512e04ff1f05948baab44adfd0fc7ee72b8f52837500d67da737223a92c63484a4e5e4e1e1812a78f9d5bf055ebfb400d5161f26e60ac81955ac0c6c21d0a4cf6d31088d1b9738099b08459e8bba7212c02e8fdcec6b499320b82474050f463cec74560327e4ef59b7507563af859eb2062c7236b8cf42af8c1bce7f16e709a3e42d6234352dfd9b6f5f58d3a9fb171bdbb8427ce81cc5a1774d3d7a01fdf068f8c5f713d411b08e2adf2185f4032966f600d91969f0f400a4c450fc240966f42ac9bc2b101970b74bd6e868019219e3d6a90c66dc888f2d1e08b9b1188ce385a312ee0916644e1dd1fb39ab78a8960866744a56aa108691b33214dd8e5cec4dda4824d14cfc6dc987d3eac4898e1c251efabb1fa19d812d926be5bec1c786ce65bb875a80e0525753b99733cf25f57134287593c1095e31610dc4cd22459d77c278a457e23083494ae318c1499d3127707d0daeaa890a7d174f0e57e80f20dca951cebbe1f6c0e823b2ac2541e1e232a33e45ecbbae8c82b10a3d761ea2dd1f12e32f8b534922d83172d945b0376ce32f705525c706ce70281fc8f8d72d5b449edf2fea405db0b7417802bf60c8483fa171fdefdf01fbca21d2edf811a7f689e012396f801724eb44e1d8348edc27eee4b514a00a92fd03f69ff1763d00a0d4a8afdcfce92a60916c8dbbaef0d3b6118da2554092cb52b130fe190dc1d539dff7e8817a4b21657571d78be7a785ee2b4e72b077a78a1ec9259625b732783869770e20627d4c0362ff78113a5815eaf6ae0b1aced869183cb18c49af3c1a15b1d3cc5b0c69ced2de7611fe46ecf5476214536820d60c6879f5f67331b4158f82ee72f812c079a22d9c65502927dc23db45f3d4b9da6de2bea9afa1d594b7fffa151aeded3e2106c675c1f029887835d68aa9cc7c0df29dc36d367b4abf810455a5077863a4ec9611ca25034fa41dc30fb8397d69a7700938d84e0f9e1a811492a562da33eef51c57430c7a855dbcb03d39b8dbb1372977bbd81bb6aafaff4b03376def93e011d7f3fd1bb1f5d36e9c872bdae50ba71a9115fb7f252a342d2059b4ab063e265a7f80f1a98b872822775c5d2d165c4b960782fdfac4bf18c7f12066f3f9b0b94854f1fe73295894f8ff60d8e5e2c664be2668f6e5ca9fbdbcef7eb915eccb65bc5a69dc3cb2f0289c3e12de7a555322570e81a5b1f35d79fb9c766443181a97565264025f073d77f26fce32232bd3b5c83f75e67270df5c0d43b2e9a4ad097e09a4ae2668913ee45271edc88655485ae68a2d459f7dcb9646f56b0c4858a4bb16202b6a28ca524c550648a33562000aef2fc91cd434af1712a1ec49876d2682c78e9bbbb77f9976876d2a056588db66dc8cad052c74d2aad45dfedda9aaa93e784978bcdf2eb43f3d15183ca07d6dc26369433a426b1b2f1058f94fd380094ccd05e590e03632e951499ea96fdf31b381eea5f8802a4afb4f2ff288a587e904f3a29f71a736386d0a64b2bec0b8fb19af88027a6ba0ee85bc3eb623a03229ee15bf2b5a05618bed9bbd6152cf17de95a01b0697bcb573d742a2a9f6e9e357618fc610ba2a2074aa27aad105df74a1c29018674107d440a82acc9927307a578a16d7d59d67bed095d4c51f297324cacdf4c2ba5c9b440385bb7fd5bbcd476a119360072d761dfc13d5e604ad0c63ddc805810ca0a20350c21144d804e9f39db5ace41957378ed07bc83d810c56fe88538e88aa19c4c10df334cfffab03b85aa08e2b6ee386af05db79ee353a02262c7feb3f615bd69e51c9a696eda6333d64c556ad6344e0231805e0daebbc1a104ff3227c2c19cb83c2090c221746bc8bf41f19f84b99040ee6a04c893ac1103f59a310423036a5d5e687b02d453c28dca2c82425f9d41e83afdd45e2c52e5ae78968fab23667ea9a164445cea43b64bd100b2fcae7d1c719d45426c209476e313672b2b03f7a1143bee9ea64682ccc1494f0a01f2e55e225e76278467f153252a21c080a45855984a8548b56e3eea584c354d84fafad84b9c4c49209bcbd3273402b1e963d2af5214a656054aead00c3ec28c3472cb2f04f1d065d44d91ee38388809254093df84ca418e839308feeb9acbe6aadcbf80c8335c8af92e7b90ada61088355efa7db2f1cd261a2bed36a4e524a6efe11895e10dc39caf7f3a5c4a0012fc234b44c62976c9daf7f8c209d378c60d8e7b2e0474be19834f8c5f418bb0e72454a0b41d8812fe8899ebf88de834ffa8132123e065623a3f99fbb3b26b7a3efa4d6475dde6574db7ef4e3d3cb2f491f10de0555b8213f09ee324e8189b2f5044614583d49881075d9cb1792a4afd8876d872b13a9f7228cc389ce7e9032b03e1886827261ac406a0de551082e90303c7749b5873a9c0abf77024b5d3487da49e4955fd5b0e782d3cfc61bdf88541f7c092e7f907fafac62fecd2a1aeabe5d78d7cd9796b659b1cf14a6791255b603fc5681170dd29ef18420b281f7c4b6324cf6b6154064d44ddf7b217d94f1acd7f62a1581a9e25a8b8a628738fd78900ffe3b68256f2c6e2ccfb4076f7812f9f3cfc41c30f46d4c876060e2ba14fd9288998f916f7d0c6fd8f91361082baa49c4d2a20a5cb4a2b2f90f228b544292d97687e08143b0aeb3b65112f95f6aa2976eea94747960711be3a703640c257473117607c8122252c810e13ed09f6f123f09aba11f6b4b4366eb4efc04f22ec7db3b17cfa10667ecb18b205f724410fe59fb7e1022a43a6e148e3c8e1c1af5b96e8a4e1229449c636c9bcb944570189951c612b97d7da672c26c4a5d55bf227f589e7e034ec213c7955394ffd7b155e0a0ba79ac0596f87eb77292c5ff4b7b93729140b968381a6b3aa82c39b70d21109f320d9376545a781517cdaf425d0ffacbcd82f2c9257af26425a2efc8903e3789f24cc5728db570b5dbea9aedf2cd19e644bd680347e4647b7513b2ff5d26629800d9d7fd8349f4657c661ff856633734b9021e9aed6ac68429127fd7ec819dd8fb44a1b265795c0b49f24e88a9f5b75aa20fb37f849db1f38c7edce0954a6c07927411ad901078277b15f29c89a916ee3fa5538d684f183909f09b7989a215dd11514c8d5582ab953b9351785465b3b849abb4f6ea3394c86e2bdf3760a9e3a2982114e6981d4b4e73295a4a6e1bf050e1c46819d603bb209bcaf344392d62869cba1e7fac8511e634dc616e0cebd49432e5b45ce2680cefc6de7d4546bf49e9ce8744b60e50fef3c42086a10b5fd97b6e3b4a98b2e1655961947c6ecca1f95977695a274442b198c785659e85b0e13d9c609a105b37f0c55515f2ae221d43803450a10be23b0f533d3195ba8147ad1f03a89a6e2af491acd815319a6d444309870044c8fb3901da061f80959f1c5d006ecb5172f17d31a79512c430a28048d0d9abfd7b13c22dec166c19602859fdacc515bf2783e7cc8252a7b605b17b986a0f7f791d5dd7f2a817148777ab44a698cdcb083297385342319280109e8a8900a026c91bbb80b0bffc3b73ec4b17ece12e50f44fa4e6269f02893ac633db65a004ec2ad0a311cbaf3ec4e7f9fde2a493745a75771e3c849418360f9300851097b6d2edef534e07ae478e7e6b42d0c560c1036b9ac855fe71e8baa1578cf4da4b5b8bddc6b97f685cbd2761366449ac16dbaa4c61cad8ef9c4778f2022858e49d9bd5b465b6f656ec283a364b75195f2afaf3d109b2210758f22835e347d1c633e8e03572f230bd912c4857e8e62623bcd82d038c2d63ab45dd163b3a42f85ddac08604489040801106b1e629a0cf5776e0e7f96230ee16d34b8bf332b2cba988c8099e3a1fa2b5fda77853925543d7a306bbfa262977616ff1ff12172f9ca0cd260d05db3d3fbadeca1b1bef3076df4cb72cd9af42f5de8cd2823501595d58d5d36ebde10afc5115ad7c7cf3db9fe89b10dd3de5439f91f41681cfc0b129cec510edd6f03b3efc3420c10778ea8aa997ca39b2074d806251cd7b83050ddb1881e36b606607e9cfaa64b3d5b373fcd9d8fdc20fbc781a409f4907e035003b0c82707d4338c752a1b91b3f18057453edac8cf199085ad937030c9809d12995e2d530a60d7ec7ea5fe98615c90571e1de8c09b2256b2efeee6abaf60d4a438ea6c42764e6a924214e3a9e79a61ebf68fa8c6cec85f15251e2c1be537f2fd5f5b7ef582d8cfcd475df5eba709fb7f0ca4324e62d2d0008aff0d258c339f5c72939573cac01821330d07b0b9b0be8e429b6afb01e044701f9d53a8c0d43d6ba8e591bda0201429761ca347acff0399e042620e84ddcc8879767890c608218fd1f977c8621e3702edcc474f7bb8c023d197accaa02fd2af80b6d4d6d846db85e2df5eb5ec81826d9d0c33d48596672d4de00eed76e039df1fcdd67b65f699633727615ad719b39e9b769bc45a07f9ead0750c5171dff7d601ee05cfff7542b268ec27e2b4150da6d67743a55099d46b1ae99c163b1129d88bf294632636394139cb34238af412d1c5df0245f6e8bd2e383ff9d487b53ecb210f9bef468732d28ea067d1ba346595fb1d43bf92392321b0baadb2f23c9e365542d15cb12a6bc2347b1566dd2822d607617174048ab7091d62995777ebf4cc3c144ee81555e980d0d9f5e58f03251208f7e62dc88725009425ad51d24fe5ba5b4097267ba8dc921695c1ead522b4048f844c0d873890cf1228f935e958fda65b2954d3c0422f7f88ba70fda89a38900bacc07ebe289a75656beb4be40606152209106775f9985085e1eaf2d73d15f7169666789df40435f243b8f6a0d91f07386787b577b72997cdcc052e9610da51cceb343fe74bc1e3fbf44ea41adaed572d0a84640c1a4b6b42680346fcb70308e54000d5a6c90bdd1f546b792790d33f86f1b0e45e2624f0fade9eb349af0b367e6497388373722bbd523d556aefd7467ca786da5e7d6edc74f0a2fdfd46e981c484edb0b7e47bdd86848d5274fd2405a30f12f150b35f09e28cb7bb334217a56d6fa89d15df9f816a07f58ac8e0f2a207ba26a70fa6b09c70058414e73469ecbc90017597657f1c9dea0ad14022c766dffff4396dbb6576cdd932fe57cd88b69d4ee4797e50c895bc216f446b6e5a629eb021f48358d83f39b8a14e985c6fc313a4f2e801767fb8cbc5bf5b68b84af4eac81cfd988c604e6cf0c5796683716e2028c7cd27a47bf3f758aa5a3de1fa7a603c7387ea0b72f081c8309ed3a8f8c7f4c482644c2d1a99a40376c9e1d1ba1f260b06138d7bbc79c744e237de699f2587bbf4d87fa6ad18954efe5ea9b93fbc48a1ba1940bbea00091bb07059cbb9c61b97295b6a0a57101afa87895cd7a0aab2b3c1677e55142f83eae920538266c2a8f80b13943b20304d52d1c34b44d6e0af1ca6672779b521b469d2f18a564d94cace60818508a348d45e2a076368c89ec0b3d0ba45bf3c424f952244d94881b7f0db7a39c9737b5f9370ccb9e7632ff79dc7d7d6eb021003c281e116341060a4025a0bc590630a7a2859dd6550e0936830142f3676863ac09f34eac5e0285b7d1d9f240abd248cd2398fc1800f06f928bc8729bba81aba3d2f62ccc3468dd207e43a5c8faf5ef382e1b93f9db7b61f5087b66e93fc67a4b7cc6ebb485934020c9e9e667744d80144c78e62e47e9f091da519d5103015319b5f94dbbe95906a306a71c2435f0a230e10a725b5963b805c2decb285efd0b32732458083ecf4ab9f7d528a53810dd14a9ce84bb4958c989bf317c751ccf3857cc23e416970cb2424b2412b80d32a67be09475a8e4619a817736fea25473f709f59e4b32b43b35333a8e241b8beffb95ee8197eb6f414345b0e3520f0254e58a6138f841a22e2156d463188ceacc1afd35a36b7e9866517403e6a23b45db4d41f213e02c4fdee13e0a3abc38d2315e8d1200fcf1f03313164ecd036647819674c31f6624dfc85d11d80b8af4951f9f68d144caac28faf97fa2d2c21f06f93f540cc3579f29e91fcd563bd2e4e5d7c784286de5207b97827fa023942b625b213cc4ea59a175d789faf1a401249c53ba5030df88eb92477e4409b04b113491bb3a5aaae346684f074fab67f20e9778106eaa19fd9849d56616230e5b2ceec70f5620e913d0edab5fc166427ab9ad43041950e0e334c38e29dc95638485030e4055a9e6c8086cbb90a806a7ac19454ab9149c3fd377b23561205ca390ad38f42d21d8a08dc36a5a0dbf657c9ed49bed7a6196d70a01d1808da5212eb746c25e77f8c388a2e3207ac81fd59fe3506c02c7c5d846dcae9c1b637bfa559fc883b0fa095fa60b5cb22837b63c1e4438dabca0fe6aaaee6ce69cd1a505fbae4d737a3ae0e00636924a918d351bcb493cba23629c7a20ca2f53cf1f2447f6968bf9ac662dd749892074f74e8b2121d9020fdd5ecce3212f7b8f38f1b090e00a2aa2548e70f6aca6643dda8fc1bfa13f3b46cfb34f76456a151523aad8107090c5e28c943cad75e80d0eeb27d4e98c0f60d3477a92b83bfd716281e1bb4d2982f2fcb82b5f0001afe734f6723b890d642178a3ad08f3bfbca70ac789fe024f54e872e17827c5014c2bf781a3cf2b8a2810ba159248fc7cf26e999a7835f356c4a93981cd6e15cd9f79f6d014fa6e3a0ae4b4f043f5b44b043b484c169489f2dd2767a77b2e1915ac084296c900e695e98b774322659e692fd43147a5fc8be75a16352ad240fbdb08a680c6cf42ee016ede041f67dba5f2797010e0962db3464cd722a1145e22c05b0168722a92da98337e224bf4f1d64360363d65560a572b4b1e5c9ca42b824651fd8687dd3c881aa184789ab56259dfe03e78d8ba75c64637c652ce375a1864a6edc14dddf5b6a60f2a53d9a648ae7723723aaa47c89aa2330807d082a9b3246684ac3979a92f6aeed893441be27777adae5a2b310ea4f85ecb88e7529b814ef73aa5b5ad8ec668e19846df1af292f86627ff883c9243a1d1c47d4eca472aacbe23a86822230374e0cd21a67ed29d77103c407443f53140cbcfb7cd06ca1ddd54fde1b104b97dbe7fcc1ea89031c31c8f258c3af09b5d93f11a4c4036000e95373b983b2948d8e6e0ca0fd9e9a2acb6e279faf0b182f25883ae5c46b021f651c28c683270bb87e207410ee200f94c1c98a2fc96544ac5088f4f37d0ff0136e7f553a5cb6031b44010a0b0780e4b7637423dc6ae8afd0385a2d3fd4e3826a517375ba9ff6c914a1d06038b4d96205b3fd72d52bf47b4e1ab1f7f5421d6a95b02db676fd19ee5d28855d0a3dda563a6c8284b3ddf17ba0f0f9f0860f1ffff854abe3eaa159773f990dce9e15ef942e7995f907f3549e412a6a1b6eccbae712fa3729e3c7463454d24e880835a5390ca7263984a186d4d30e1ef76c152a88f6589bde4d6f20454fd42652eceff7c43ee6649348a813211083848a621af82d2d3e12fb987a509829774984bbe0519dc74a0725e995a51bbcd009dbfe952b662dfc5f80aac0b5353443986a2f355b307e8d6d4792be1a91afc2609448e09028ca0f7034821bbc99ebd5cbde35f45664c5c9d25decf8f71587e5e6e89e3196fa604221987e5fb2a11d8ed4f5dcfb44f2943fd6132e52f4369b063f45620343b7a1ee743639d60ffb54abc82585b307adcc239ef29886695bbc0a91b927032845ab01766d003e768b204a3b2bd92e92ae49b9f8669810f5ebb3ffecc9d62381c463ec141020d3335686f1c1ddb3c2d24b54bf894b0da99ea01169fecb36365f7fe7d86ccd275e9d282fab4d8d914305a93bc0309adac476f9755de8bf1369b090f1247ab835b7cbde6c031dd2c57c201eda0d228aab80683a0487e46eb0d7c5681a6bdfbb5a18e24a4684b3680e60b80bf59b78e066f69d6f21a4c9f43322c7d01f16d24ca1aef54223f538ed818b04ec5238c2fc7f25d163c92fb094dafda6581943ff9b585dc8f47617238506a52ab8ad036b11b7a1a40657c47279d7cf39ff50a6d892b2d2b20001d42f75173b93de172d8ccf7d248ae435326ca0e67d2b977aec5211706fb1411608dc02d14bdfe961e4cd589a3ae54266c03c7860c1e3915182e7c5f348951d525e8601c62bd8126ac7fcc6d8deacb292281530386a1a1d62ed8622f63412998c578c8cee102f6d56913ede6e135876efea8a329b12dc6bd937386752a136147f846d68b50b23cef8db29f03331079f6c3b48cf86711e1d2fecd65b891128d2d244fb50dba8778428c5e0d429044c1ad884c19157aa09c1ea049c1deec6811dcbea257c776944d17e0edca581b61c82b628cd95451e5a36f011823d58065641a279118482621efe3fdd3e48d155b338b522c56fa3905e74a6483e780749d4422091e2730a5d6dea09c41c871d3bb0ed6d8988a9be898c109e002b8acd43b939f830c90150ccba212f8f1d00a99f00ccca55a65082f1923b2016e5ed396cb5d25d6d1e1b61996577fa2f6dbd0d6e2862db2a7a6de056237b02db4243dbaed7a0af5dc19b75050bc614b2d100ade5fc253848167fc3d4b073d40450f3cdd13140e94f98220a28ff5571454173a8dcc120984a000bebe00d340c17ce7ebe8e8add89511329fc5e7cfea6df37d853fff026cf0f114a0e79097e80a63ebd905fbb646076488345f00d153748045c752e73a5241abd70134d0e7f72321eb7233585abb9bbaf9aec16477575b489352f9bc8924d21ef45ef5cb7f4b825b9ae8baa150cb5ed40d2a64826f69186a357ba38a9174c5a0a9278848482e3269bca0642220296860dbc6adbd1cc3aafd039c706d01bfb0ddc8cbe368cb5c503419723e22908b181e703586cfd233d38b444c69bfc16c5e4c986174dc55692538fb493005144aef7d97492367fcf623a3d23f4fdafe64a2e7e0f16fe4c18471fe28fb91ccd4dd259925429a6c466b1f319119f8523792d0f7e5fc86e86d9f79223670601c81c73cc2168369ade2f71d211551457a528c81dbc9209d765e5448904a45de86ddc2ede5e623292517aa64656526528b7eaa96986c69c041c830870a11bb7b2f7bad5237b91248febee9314edb10b7e3e7f97751d66027d8642fa3e0669a9a636945c614009f84bed362100354063c0300c92a0ad49d35611b4224123ae29dd6d705abbd65c0a412ba12123ff3a4c59340409a8e02d4412300d998226859c30c2c06a0115f041ff8755453d2861583ff7f17e499f438768f74df3c4b20bae24e557e8cf872572301f028f82c7aea98d6e0a98a541c469dfe8061a78922d6fffe1adf093dd583700586e6f6099dc1a01d3b51764348a996111068e69795413e1acb8effe92dd3f9c81b6d0a4ad7dd829e84ba20fe3352b2bd0c9f2e976d1ba0a0a41d4e919ec9a826b5228f5486937254452240a02343471db59d656aaa9092977ab10ee5825e873c11e0e85d5ff2d6cef6c594b650ca05ea861942196acc1e64c1a9a57913f73d73aa260740ab1878af5e949e7d79e18c416a5c25123bee3b7436bd8fce14284fc2f75b29e8be0129e7ee24148f8730ea7ce955b814667d9e4b067c8255e11b3e99e4d050377311b56a6e0cb2505973fcf9c42fa60f64c61215423a4745bda23f06e8e81f9d5b50c4cac38772b7c75097f8f10b2c4e7d02dffa5d6a9dd7d9859e80a72a2055c50cebea48cb131be5d45779a50dedc230b170cf09da3561426fbf5d5efcd83f1abd2e43faf85cbea6ded7b977132d3c5da7f63cac6ad9fbdec24a9a7407b4ed11a0213c244584e67ecca9d0d6cd5bab19eeac95874b493bbec72c640ae53b4c3340832137d8b343823a0c4407eb1bfaae1f4c734a5ed2a96cd2cab110ec3858b1ae34e62b4c680c6df26252bf10c88d34db4dd7ee2cbe818b1116a5db367922cca8393f15c355d8a809c937309980e3e3859e765ffd0f067019823764ac496541302ca424b86a01db24cd44bccd36299c2f980cfacb70f9d889bba537974ded280ee3bcd9b122cd416df1087744254fb77e6bc277725792374bd327dd214ff11724a07bdc1af18d50addb6cf91ddc84ff05f93b68325d2c096a4ae4c6a0682d76d34e9e38dec94971e3397ffa5139dbe117a03650ed6e28a591f5dbf3c56202ed8603d3fec713801f12bdcac0c14726f75c67daea9af598da2263554c8174e454a0ec2ed2e02c11e80c47cfd1c7e96a01bd180cb3cca01de058c9c23c263bd81cdec15b332bcb086a436c963cea3358e930f2f4cb9d2f2798102b5267adc5f52eec9d0b520b07002069be6e369d6c46cf9a08caed4e25f91237bbfebc0519d896b2b85ef363f19bd6f4eb67539248e962841d481111663ff4ea37e9d3e2b068fdd1c04466d60c9c049ab67c5b88e507b4a6140b31c44c2ad300094e60368fe3f15dfad680cbb8a9b8a4341fb4c1ecd380713f70e1687e96ff53ffcddbf31ced7718ab17db7c95e2918b78bdd25c7ab9596d955b70745896607f4f3e657557515250339c7ca6e2606115b725f4a69430d654609397e5b770e2231fb74c652ec0faddd4070ad9108f71d2bc687738bae438ead6f51ee75874b02f157da5f9abf95c21cfdffd9eab1347d002ef316c1f675e5f32ecd5cc6c3cc3b9217b5e3c69ae91e402167d904436b96709aaefe7127552f8a5bb8341c8517b4ab5835beb175db2760ca9243156df5391a640f57a03d5074506c98647a22673872d7d1bf23b53e8b08d1aab173ce2d99e1c1b534331ed46eae780fdab4ad2cf9013ff420e291bc90394883b9e2d847ed7a262ae03dfc14d7b3b24487cd3402a307f91a4afa32e9dc2783c38a97383753c4f5b020203008b4dfade6355f3f7ceeacdeac855948eb776a357858262bcd3749bfebae9abfcc37f5dcdb83d3295fcfe33c0ab88d9848878439eeea4dd09121a5112c77c7f5343c74be94b041db7be6766703b44d64783604911b40870a9ca4e2197daf021df03ecb1e14f0a730c8eaf2974dd7dfde4c02e81f4ce9f3b5246fd6b5e9252fbd1ecb99994d64c1f0245cc65fdd09b6de60f603e70b003490e523ed034d5472e10b2acd6582731080d755e79b3e73c5c1dbeefb5d76a0b35b6d13f0608724ec088e8a4d2cdee36df0cc9db9a67841367d42c9328ab783984705b3d04a81378366c0c962a9c676c7b67bc35370028a4412db7042077c2b3c859dbb55c26d3859e8ad1ea7ff0bc7e093ab258cc2d6e725c3aa3f00cefddc1595f752674ca4573a070e3e833ac362216d85a1302f55bcd499c1b519866e9b33633f957df578660094964a828ed40513f459e52907236a942801305b4bb46ab5d7cd3e879e13108521385883feda5764ea4813b5680633fbcad7829f3bdca6399e634644da70a05d33055014cd7590538d761e38ec5f99730c9019364679afac5dad1e60ebb540e8c09e718919d36d4df647085f2fa0b269400c55b165597594032fb16b2e576bf63619016d6147c55d5989fb3c16d28d4c574c75c918b093f9ce9611500f208fd50a0baeb254ea3c8563ce198986fe6aa606ed62ec2668ad211774114b8894d86c42b212136c437d3db933df357ded62b002fba300d69459f41a17364b3551632259e5b85e481904462de20e5b62291841948f989ad895108d10ac96aa119954416cd0222aae922a6b652f2418e6773bbb030f5e918deb68aeba471fcb8105238623842aa98b4c6a20127fd5366efb62a39daf373d8d527500db6ebd60d808b3c70b2fe6e2fe4bcd80593464e89aa43462753e9b4957a14ef249a1532accf949ef1cd5be12e44c1453f6a7bc21640be6d4e9db27ec0fd46f031a4bdba356209e15a703695cda02fa82305b44d0b332a943de4c57cb6ce5209ac25680dc63e6d2569c26a9969b35002c7e1da0694245780f78129d6b7e8dc0585af7e144eca8444c4af00cf238b3e2a7256defb626f7de32252903f709020a1e0a6013d3a503f072312e365d9c13ba30a62be5a751005e94ebd96fcacfa35c5c6cbab858ca8f4b0f1a48af87694ed034cd0e9175f3ce7a5ee722111b40e9a3738f43debc3f1fa3d855f9221a229188f4fa19021a9a1340ad8996bdb44334df687f3e462f437e6708ba65419f15c0dbc99e5d76b2b883f4eea5ed190e053d7b2723c1e48683d69f4e21873c38649b836f9676a845edf5d7a326756fde79d7d5538d890294bf390b87ec31ac22d92b33b237260c3d7b3dc6b04ade481bf939489bb03b7c2efcced959baaeebc2ef62be93f9ce635ccdb8fc68bad653b992218829f62c9e5d64af0c109e3d646f8c0e9e9dda1bdae0d9397b3d06cf2b902678f66629ed75791361d8c11878250cd62b4aaf843df768eb599d19dac86de5ac0b29a18b2f97a5f5ec1d83b1df7c13d92b5fe45d27f29077a14ab90da07c910fd1945c941fb261b1cf0879c8e347130263ef45f1ec77c66b53009be0603f44f3cdb5d20dc03b7be20eb46edec5cf0707f3117ae9d4af1785a671d282aead09784d3dae37f5f4a03f7b220cdfd9f3ec334d4117c8e166bdc9d212492d8ce9dc53e4d2a528c485ea90766f6ad9bbeb954f7d0241051172918bec90908dcf75d31a9f7a1ccaf85d1392fc054dbb324fa7df98a737bc3e2ff8944ea7344698ed824cbce69b77f2230294bf6d533a27c51652e448d17a36fd36650610038030e5f534e396fe865ebae45c4afe6284d944a0843068e1630c6f067edb2ef5cda68beddb65a266c96bf7e5e390e9edb363e2cdaa55f95f8d30407fe95789fb32db0c5de4016cf6c99399468d20b088f643a4b74fe93188ca2b3f9fab145e99fc9ede9fbf1a39c56eaa91532935720aac9153f2d6fcd55c7a2792214532ba7a6b26dd4c4eb77ba20989ec45f2229f35fec42c060080d40d5d86977ce49d0cbf3ee3a7dfd24fbfa19fd369af4c277b5d9e7319f6ba7ca0afd01457b1269b62634ca1d892b531a6487664a36745950892a792887c3a2b7f341c14bff9ac975fec9afdc89ca0f0e724020510ee2f929a97b24794483fb591e371256b1a8b014ad734ae611127d209f29d879cc695c8bb520d24896aec947f74ed441d0c43d1a9addce62e3f243a57998889ecd3316a9a04a526656bde334a39a7a52060f0a5bdedd363d3f6d93e645a1a466fc6d9dd54ce969c051543e3b63935bf3db539a78cdafcd98618b718639c73c6186344c2dcb8397b72536eb6264173f9c379a6ea23fefc742cc2684ea37ddb34f91cb745ffe0c41d34678db9cadf498fb3b7e635cdb7fe79f6cdf9e6a7ebd4993e67378c7b9ea05fb471dad539bdd33d3eaf9d9d9d9d9d9d1d276266a1cc63272099c691e18062b25950b7fa66676767676767c70919191919a01d19de388777b8c7e7f50373b95c2e97cbb5b3b3b3b3b3b3e3449cc5599cc519e7ecb4269b05718b6f18875d2e97cbe572b9646c6767676767674716c42d7b7c5e3f30201973b95c2e97cb2563322663322663322663b2877e106d8137271c7785397287c53097cbe572b95c41aee75e312b6616ca3c76028a37be18c63086318c610c63587c318cf6aa29089e4eee61d8324c839be75e4556f42e8646fddaf1c423c51718ac5341e08c7af4d9d12a592deb950d8fe7a2cfd9bb09ab9e2022c778926fcede5c883b60007c2d441e46cedeb05e713d9de2b843a8b99e67873d77ecab9e87eaf65b0d3040cf372779b77d3424cff34e7a24cff6175bed261c86aac6f5f87ca8ceff6a7fc121006ecf44fdde46b2dd64e327d56e1261a48fea1345c0e7c24b6f2d441cb6ff3a512582a4f59ed5e92cc78d3617d5cd762cc2480fd5f89df45ac61deb94f4066275b3f6e69c73f2b75837e9d80e37378d33431757e028f6ed9386bd354fc3b99f5ee1e031e7ce56af7a67e2f40ac6a34f57af6ef0e81deb550e8fdeb25e851ebd67bde2e1d13ba8573b3c5e992df6f2363c2c2e1e3da657385cf3e8a75eddf0e8ce2af718e30e28df5cc61d52bef964550ddfec6582bbb2baa36ae3a8319d92da8bdfa8363c361c04cee2b1bec5bc56ef6c54cbe279a88afaeef3509506aaceb0a4d383409ec9047aa82ae3bb9287aa2b281eaaaad4b0222f3895e2a1aae93b9387aa293d3eaf1f1e23222b070aca4e8e1b3cef46c5435594195d270212c5443251a984831c4d01de8e898050b5f4a00c0fe766a767e4330341916809a7da6bd4f6e1d09b412f1055c1ef4ea4cf51452fd18f08d6a91387d3a92d886b71381a996ad4e029c00b76333c541d3d0e55e423c35bab3638dcb47276463d239f6d569ac5be0f87daaf96da3eb3f573a2e1a1eab7e2ed3754ce0553399c518f4fa7da79eca85bd04e37c977be77443ede26bd469d02e5a1aaf72c55a725478ddd5251b57b96aad3e22ed5f52a2d386ad78acd3c8f76353c540da12a4555ee6bb0b878bebd566d78745822485aafc33516dfbc86772c7ee3fb115fa66e54ed73d491ab53ed611de574aafd46b5f18013ad56abc5bae1394c32200ebb2e47dd82588776ad6eb34eb5b314e0dd66ef281c383aebb9549614bfedf3ed38aa28a853ed5e45320edb6f5451ac8a8062bd8a3cca893b6ca2d8b773084077a7d4c5857a6571179a2387163f9a1a953eaaceefaaa7d566bd68955936aa8ee6b6fa36eb95084804d43c624fe3dd4a1b5efc286561b1f1d16cd659ea8bb37c342fa91b9eba612b7dafd56dd4f8b6c68f9fb5acee06cb78638ebc56d76a64b5bc702a7543ead081c373a92c8eaaf1bb2e7e2ef6d6bc8ba350bed5bb81a0df9cd63b6f5ee47c03a25cb64b65715a6b38eaa3a981aa3b5a7c478b45326f583c2cde49af46a51f3f169b0355452fbf1e21971e2bf599a651d967d4dbb9befd546f28a35e5fa937e6efa6526f8ca95ed1ecdb53ea0d51ea1dd5eb60bd94542fd7faf6d156afa8c9b77bf58a9c7c7b579f98a27a4d7f45409c479f517e349c8ee6fce9dc384bb34838188b675656f4f88d621f6d20d16a18c9acd990c89a131259c334c717383f6950a2f1c69ca4d463ea99000961f00cd3e7a1c615656d88b2aa804eb6018c33ba8ee4813ee4afc0434307c0004d51506ef3b4c931c2b0e5d66c9653e2107d86b5982dd2de368e0b79d0d0301412893a1a230f1f1ca214a40991449df7bdbcd0443fa9010cd15289db4adaec12974a25094e4a3566cbf2cc92794a9f779aa46c8d9d432111d72ea6f3bc8feb057db0a7893c11897406f0c62e7e70b80577b4c89c148c302a80b7878fde799e9c11a6f3989979cee9fde43abd0f5c824f9e348d68684a2812858e6ecd8f21c700af177d1443ba351f238cb671f40b7da26ef6c772c4c919ae2e72d7915620a5162c994e0f8a1e0ef6446e383324cc9c7c90cc743a6d36e866a4537a92654b709a36209b2e31a404e5e6c9c290d5a04d9b4a624033d98f0f904fc80b8d4228a199ecc707c8473277cfb985b8a96d1bc7512a0a7d21100ca5844e2119a11baae862189c93ce4423b98b8fce71304abb510bbac9cc2c995932cb2337370864efa0ca4a9abbbbdb4632745d94520cb90690d7d053e34d3adb8052ca34ac01bc9452d12846185a82ae23c999ce5d8802227f888d09022f7dd9f302f0462026cf4824a144049cb8d1c9f3f098c821b5377ef1ec9ddc86689bc468084094528ef94b65422dca8174a259b16ddb36a715dddd564c59ebd9e70f5675d36d52ef3533d31ef290bdb23ac1612814aa457c1480436e16910e05874582b0aa9f524a435da3748a9cbd0bd22bc99a5108121c6e4e38c1210779620681c16011a60a397b017e84a24c13a71f32e547335d56393d073a3dca9e03c8aae638ceb72a39ce27c771939373cec96d9393b14792678fd6ac87e15f50b6344f0b73b6c44665a8d325647e74e0f39383255a8c60c9eff8a8051538dfa3070ed96594538b2167ef7ef44ab23a6e9b104138e41f4bb08afd89f93f9a52106c5025d303ab28a53e2b5764fa9032866a366abe7d34d5e350d32c8501f8c4fc0b7660af24cba3a2a747c54c13e14c21197b04c6b08a411004e32c54852eaec09077b36af24d9c027293648bacf8450b96660052bb61c1a7fc66d3f6583c9bc76f8821d2d99d79098e1837e366a42e485e908048b0d6730b17440a0337e3669c1352186400c1e5c68514e3669c13194070b9910104ce0bae0917e38038a42d971bda3a01c8c97000d11627c311d3b4c88989410378e3ebe6bebce732279691170306c9494ac440e1490e39244a0249a41a72b0f2ce1539601539a95ecec959a29dbe7ccb9b9c1b65f1b5d23a260719cd5eea356739ce2773fcc2e299d3678806f0d2ef9c2984a317736a73c7fbcb39cf3b39371c52c1320911c04b993265da39a2d02cb6386979d212f4cc1ea8a20a49bae2b91d8b676f528fb4ec812ab624323dfc808111c3aa6d234950daab39f528ccfeb60fabe22b0a4bfa270840bdc5e63754c29ba1af715825bf2439ac1a39149f93ac685459c621c79c8338eca0f86c9057e51772c6a10c8a31254bdaa77d56edc3dddbe61b18edc3213313c02b6f3c79c32a2aa48b55343bac42498fafc924cfecedd32b2562ece013f07a7f39f64d2ac7389449ef64d07f01f4976dd895e895bc61199bfc9575f64a9680de308a44d6682db202472905b8e04221ce43d44321ca51808b6deb4e43b756610c496600afcc4808608ce7d7a444a7d8edddc235809f7f4870c8af2850f1f1c9c7d7135adfb127bf1e3ce647a37d4ad8d8e779fc683aaf86fcab7cc35470c822f76aa7cdd377f5cabc0ccb9007abb4f77825339b3967ce2239b17834cdb59aefa4473203c8d3413140998f46b31e131e6bb48fe6c67b6e3ddf682f2d7b7fe3cc895a8453dc1a090164bf9199d9bb2535aa832ebe5c098b404828d9b92247e2709ca422ca969849b412d34a9f297d9ea54fa734242e4a52f157a2648edcb98243f6697afe68e4eb08e08db24b9148420956c9672a5ba2378fdbb4573e2a887ee9fdd25e140fd4cc6360fe908fa6ed0c875ca79c524a4df319a79cd15e275e1b327378761ea3184c27e411c04bb780c94e0812e73b92e7a17a5f3e34996b91df23df1d18a0fce963fa0c7773cd893af6a4a83951f85e9c2c4f4d4fa94fea9155380f7627b217a4fff2d465125c102ecf858ed8a9cd800b2ea650b5482fd2ab53dc05f0b6ccbe652623870423fdb84cf1ec5ccd935e97f47a66e23205cb56b927dcb01361d85d5aa4178989cf1b7054e1b52e8097b4f3a41d0ebba5ede5809cb03c91966f79e92e2f2d8d309f0f16d20d3b355e5a122cc2b06b2800493e1cb25f1d829e9d0423f9a85a4490b47a1cfa8bbcfbd2cf2f38a24eed0d025140424e725288faa5af753ec3db672ff89b67e3f692cdb43f27e38f66669626d8ee511adaec13f243a1a83df5f8f9a04e048831c618e3a94505f19bb54b70d85ef39a0567c415139c6a6f5fa257339d6a97360078f2ed37159d7cfbadef7e3a510aca52e490e90c87edb334adf7498e043013bd1ee531baaeeb4c1e6ca35050aed97a46d1c597abf504e914a701bcd26606de184382c66ddfbcdb6a900f80353fb78a0262af5452f31ca37af4732e9570c8ae840d873c6f9ebf2298a5b55ce08db12042906095dca28cd3a28298d2d6fc0ca380486f6f7b6b3ec6a79507879c06f0f2f87e1ea419a55a4bbaf8e7b59e6e2d055d54894e50fc76e4b7cd769c0740f9dd49af0920a594f6e945268e73caab90732e5f1fa2b6019246ce6e9c6f1cd73d46ccc78060c8bb9e5e24b2b79d7a472bd80150bee41996df9cf2bb7a1faa43dae7956fa23e79c539a531cfd5174eb166bd8d6e967218a37553d175d16fe7b705caf7e8a4af044b7ec6c7570960df69de5751403e1ff9c8de917f5ef3dd68e49c8f4695ff63ea5e6deff8ab3ee28f46f663fe7c7cce869f4ef937fe6cc8137d3dbe1a9ff253f75e7e3d6afc4ee47df5fa883f8489cd3fe7fcb34d7c349b8b3e1ace451f0d751f22efeced9cba7c424618ea45e6c708439dab433ae7bce7e5cbef220a17c0984518391f3ffea8b3a82036e79c73fad1704ef9934e443ef3c7cf0773a8c6f7eaadf910bf57e5181faa1749141f6a7d8826d4f9acf1bb4a44febc485ebaa8829b362906e8b38d12879a4f6e6220800b203e3033c5cc112e8040c205089a68356126034db89971820b0960a0091a78820b308908448c31c618bb79f6ecd9b3af29b20fba18638c31c618e5133a965272dc41d7dd8b438e4994524a29a59cd3b54dd35ee636a7895f9c46dbb4b96ddbb6ad01044fdc130cf0f2882fce932b00a5735f112156ec94b4d463e1509b736a939e3c11382713de34c94e21ca6d5a37bbebba8e65248d6ecdf3a5dcddddb23b8a46f748d75b84454fba18638c315aa0ebba686f6c220618bd8bd5e330f2f8e8cca3238d30d1a54c032131258f72e0c4e81e38e4c4006ff4e2a3cf6893e050f2a8fdebd1df5626c244cfe1c64f8b92f6bec8d869a01387d22d4a49278e64c2f450bd3d7cc8635c4dbf007889e237f5b2be9cf1529246a697ce79ec95c9c64ea1d8d8a9dbc36fde95aa7cef558cd1a3db1bf2eba5135849a34a39dcfcab1e879b7b15e470f3ae9a38dc5c546fcd8b5c6b5aef8cdf9ca5eca1e76c75b2e6434eeb353d05bbcfafe7f90579207924f9ed97d27ed5abd43def64eddcabd7ebce450e829d873ab0b39245f5d2274a23cfbf4e4af9a5d1e7795554e383f589911341d27ad03d567dde3949e49e77a18fa693528e6a8c305ff56a8c385c295fa435cba851df7cbefc7ad0506dae464d33b1787af6b7bdda95f876ea92ae38ae6e556a4048245d33598a814edaf53af1ed52457df390cfda691f4d68d210b51e8753ab2ca32d32235356b1cf1a2a7905244e49bfa6edd9b5e79eace2f901f089b98da4f6d14c4eca8e3bc452e9c4e22fddbdb09cb6a9b107d28ef36ee863e9a5dfd2c7192ffdce780979c4c89892f2451fcdfc64dbc8aa18a227b8a2e65b2e59a2c4f52445b4aef4083865a01cae5081062e2ad0c0b5c516f2e5dc1c0781f2356d8b59a24994458055b429c7711cc7c9980ac4147b14318c6886982536288057e2449c5e510a82a793e3bc382e28e7853383cd665f90cdda66e6c9ca00fb64b0d917727e46813383cd66b399f78528669dac9403f076305919609f0cf67ab92e3db1e5c5c5680c6396e22cb5bc6e1746490a013dc3aae87ddb21ec9ba380018caf157cf1db109bf392e79ceb95ff11117d3a6f16d51e593df0aca8f6f9252d80fe17dc3e66e10127c42c7ad083f822ed90189bdf1ab658a2795784ab1cc781af3953faf1f44af378c3b682551c054f4e70e85d7bf1e3accce1100a0e398e611c07fa0537eb0457a12003c815b150ac38d629cd6957f2ee9e52fc82f6966ce4b0b3310eb5bf1c23d94b9f4bb1177c0ec5ded3cb9d4e69ceb18c55b19f5e316c732cc00bd23002c8691efb905f9e495984d15ceef44afe744a73cd5e5ab29782f682e0cf49f36f07e0f4cbb308f49c4be7193be120567dae79b7da86559e6bde37ac1ab9e68dd38d6afb57dbb7d855da71d68382434df3191e2501457e69ab5792a5b9bc915474de858038ac89dcd75bf39cb4e150bbe916875a0ef7c40cd51b6a4eeb955dbcc6b52805c1d389b3dd7acd9d682858155ff327802f9a1dd224e94de18a152479d2c797eb051f51bac88ab375a2f747d3563a47db9a0ce0164bdad6b4a823246bba644d7b84c788c8e20092d884655bb109eb8820cc320d39c801ec77c084073e1f5f39f8e2a583264f59155f3c50f2a567ef48ed5d9b78f24cc4262f2db76d82086ebdb44db4450521dbc6266f9b884d5e36f959173bd9de35fe74ea3a37ce0a9d7815b293ae244bfa895721971e39e459593834712875369f75726a7a7f349af4fe7a70c719ee4a03229135cc44e8a490361c83e67a303735682f68e7507249e0bcd3c7c88aac927e5f2e8f1e38d52eab0c873e442fb33da1328631217a3abd740fc32e44c166cdca74aa725a8053c6aa1b67ff05ab6e0c7a277a35bd1d0a8f0b3f3f2fe8489d824e41a780468e0ac02ba251030c7007c4d9e9544b9bdda4f36622e23ac4ac4d9a11053d7e5cd7d97da0df669262efb6cdbb28254a6ce4f1f3367e91a86b3dbb2848347b76aae45b11018980508056ba601dd8b99a02301412752211e7f193ddf3128b97de499426285c959674e3d51150a75aa399ec5be124b8026390e340e7c0100d8568884234b46d73d421ba89b650a8c9b37728324ff61c7be4a178e1f1ebda4f779e7db472c5b3772b3ecd44e48508e8056e23b96d1e0d795d0518fa36bb22e547b3d205870c45cf879e842a131c6c0588c315180d18700b56603460404774ba9c060c3caf53008e7c86a318d463f7674488e5d9118c04e05d81a10081b509271ab57338310605456e7baeea90a424b99e475de0dc3cfb3792915a200a10b52318872c4c4440222f443114a05e919c7d04430122d9110c4502f08a4e5b57ee6945c941f92a4af579f6de793d3b0aecd963cf08c66404237d343aa218378f3a37ce12f90cc7b803ed2cca0e4b11c08b32823d8b8050be8f66b32840a3908f3e1a142f38642ee45c65a26728310e190588c31558846101784730a0671fc558755760cfb02e4640ace29c7de405ab2e139cb3afc0e20e91566ede043d7bf77d74f434722492c9e1a0a2d31c6c02d8c559327188921e933084d9b3a3a4edc13f3d268108b16f0f79b02abe70acf8e848448057b427be5000bb91498ccdc441c1ec6f84d94c9ef84a81093ece0a640a9c0a448a9c0a440a25aae8d14156451c1f3d3a0ec9837c913cb04726fc6529fd803754f9a84514aa7869afccc7d0df901fc8145670183f8b1e6ce14371d61ee83a525711639c72d3a28cdac6e27e3a9922c79730746739c518230e4069afd7557415336e48a6d309043d4aa547c1d97a09437796e81df3b6d90876d36c1b7b008c1ebb0af076108bfbcb93696a5a5701ca22e3008cf6769398e649df6441a404b94edbb82adbeb1380d2fb03c2fdcece47bf8d45732e7f7baec5f406c439b93c27fccd2fb7c35b17eb601dd016dc0ff73323730e0267693ea3a19f9c9d9ece85c5ebc0ded5e7398ee3e689eb397f36e3007c6256ed2f173493fd748a9d72b11e6e09a798f379025e520ee77305e75b0eab3625acea1d566dcdfd8055803bddce737739cf5c8c31c618638ced5cec947c9784c32fc8666fc7b81f8dc361d7f39d3b5e68a11cafe5774f386452d08f664938747515e0a57f3b978bf3b41a59a11a595ce57eda742e2c5c1cb22b0875d1ef388fabbd6953fed436c93537ba17f818617a5c70baf8721b274a58dca11461a64fe7c16bf5aa8675c18f37e675fd63f842a4c74e697c65ec279f7efa953030c24c376d0194b0e91268ba8c4def9b29653f65d04f6efde49b9f8cf3935d3f39e727fbfce4d74ffef9c93020d94f0efae9dd6928205bfb6651736a8da355a17bc26bfde6f1e5ced9b777c1de5663174900c2cdc724fcc027f631093e3adf3d7107698608d3de5a84a0c907e02312d0e0e43bcedb2a7f280d726e31e4ed32885bbdf2bcfde58c55ecd2d3e82724baa43ddfb75fdfde3d5487f3f821d1282122fffcb3473c2b631625e44867a5ccca1a560d6b863bed3b621a215921941091d31a96b7f9f6091139b547a88b6cec94947dfb95b3cf08c9e23c7e454856c89e3a357d86c34e4def668feca06f8f5ec342098947fa25a38c71b25ea136a71e59ed72d62bd46683883ce491d53d325425ad1cdf7c7ba90ba07ff7318b0e78e0a735b10b7cfecaa06fbfa19c459876d316c0eee9150a4c054d5aac8eacf67eb54f59af980d4b705aad562b0ad60f90c8091bc0d8a2c5ba1d6b59cf3aa815637fbb67a405149680d362dde9fabe33e7fb095d4081498b75e7ce771376f062ddd9e3f3f3ed77027d3bf705d1c918658f88c8311e054473d62ceaf42ca52d40ffdb3de0c72c3aa082d74a40a470c261fc97760edb5d00ce6a2a03c8af56ebb90bb01cb4e6eca30d245ccde411163a3ebe54f0f3a325e0f8f83a4114be2b82ccf1f1a58218bcf7f165021efc057dcea40c3025c6887ae972099b4fc984138b0a722468e2f1f1a582333cf8f1658219fc057df24ca4448233e4daa6692faca273e2e0205603d0eb220920c8640d38e0f9eb63c041ce5fd07b808311fcf52f80dec7170ea2f80b7ac8ce79fac9c38697adc821758fdeab49edc9042e017c7156cdf9821e7f197d7cf19481270c7f3d86d344d0c55eb147a79207f943089290c3fa01278b19ab638f2b4a081ff1c1e6c5625bc3ea2277c7d0e8d6e0400523b45848584ee074aa4277b3ec9b9beee64905cfdb3617962c5f72374f22984cddcd1d86a75357a1bbbbbbbb793a77b3bc024bdebab58d35d9dddddd2fddfcc2967bc6599c6926939461186551c6c138d86cd6b18e9d4e2f2f55b8b9d17ae841d380888991dabc993772462691c915a413e9e40a2d5b3e11e68cd3355d11280231b7b6fd9c45b61ed289b8cc28b4ec8d8bf4cb1ed289c8313429a920935d210c6362a6262b7d13ff80a483a4cee65d8bf4d374108b479bb6887c7905cf939be4298017d4bc33f10f4864583cd2d9411dee6964583c5bfbfcb6a8205a93b20a52fe8812e8227b5f7bfc2a1120da48c7debd79bbd4ba393f9ae64fb35302fde814fb4f90e9db83b85cae76cf3baffe400199be391428209bcfcd4a1b2b5b4248d7c72e7b2416d287552367974b58c5bd98c81fb9c591903d225bac621f55e9239930cd36b59095d44a1b8905874ba4e9bf7aa515cf118852103c9ddcc3302686fe6095e7ec42046195fc1eafc7ebf1ba598881091e2c0b3178e16f7bf13c6933d04d8c55977718c6aa988518963c3b77c1aab88513feb217cf5cfce526bcc3aaf862c115ac922378f66e4a669ed327f5aed3ca245553c221d350e9db6bdc217ef7ac53ce61d87eddc74b10a26f1b824800b72779fc689ee896aef894f6477379a72f2d797b4f972e915f8675121808eb55645116e8f1e3598461ef9c1e35012f6fc1ce5bd020a6454d8f8fe2d44a170fc02b5dec2875c691d35288763746d36ae7602535cfdab5daf957675b1a8632f115d32eb2211b8067bfbc922e4e314af3c8434cc481bd2df5f62f809beb704e5dfb82103db5ee2fbce26c642dc43cb756c1d216a0ff07b8f8b657ee3cb35ce93a71c87e9a69d3fea09b1e5f2e2ae7a564e24e264ccf795567736a86219f73ae79ccc47f4eaffccfe3f70d69ff2ccbe7afbd73a2c8730fe15c3e13cfe43edfce9b173f203139ea0d8f29c2618c16c0f61b3e8f1cf586c7c8e722a2dfc04133f26e547b07a0fc06238c1744e7239ff5c8741cdec51ec0f892c1cdc7079d468d20b048ffc8de9a1f79c982258f1f8d4e0ef776f12ea28801c6970c5c3f7217efdad3e611c091b7388a778b4ba7496892110cbc29b2ede30edb374aaf74782a65c6a17432026dce00de58903405a8c353507ce42e2e2ec156af8e48960e8b6af1c8d2e13a2ad829e92526a03fe963165244e16dd4000374f1167f79217d3f8658f191cff04b953fbf2046ee6251418cdcc55dec90154b471e676984726971930dab4c1ca25c6c0f7e97919b707a65d3aaf8caf9913fe3a59b6e4c2e53925594c22cbe6400f4d253825c5a461588144a5cacba602b09ab62135ebafc68804c61454b82ad0f89d0532ebf23449eb2d3a753327ef6a084e0f094a7ec91d9d329e938bc86d53c003980c3c3b9d3524b61451d71e38647567f3dfa372e40ea7ab9922de962557c95e08b974e93b02a3e4dc2e18866040190c5e571015eeada3e9a91e3a891d5dfe2339c8455232b9dba585572e99dcb17a58a1ab9fc91e7a8a891a539acd20cc014179b22e350fa04028862238723d98c30231b39747be77b386a648d2287a0bdde7bae0516623fe3a31658987dd073fe790c64dfde8d8a3a22fa117a2487b742ce811c1e8b88ac90779af701e19cfd468dae7d4544cfe137ea05e48f3cc547a451c94b5eb2773ee81d38c31e87a0530e41975fc947357e6455c9820e5aefa60a5006dd893039bd92aceab60a1074fe8a08b1e84ea7a48faa7c9ad3abc8920ed6ea3645465de0055bd773b546557efc7cccf75c11a608a0e77a49da99fd7402c829b294598a13ef73cda5cb8f08ce3f1b390c87606f1bf309a18e3a223a0ec76139303d7a64cd3447568e1a59b65e2aa35eeaf3d24973e7a5d77aa98d7a414e67f38e93a6daceb50767f2192ec25ee8d95b84dfe46d43223e22a49b9cab139cb3abc8545c3a17e1577193153aba08adb8d105151c4a2a7698b64851c1aabb05abd8aed8ec30e930fdb0eaeaa43cbc61d5d5c981c3aaab73c3f90787b75d69a9c0587575a6b35db94991fd70e9295f0071e9293303b8f4142741b8f494a017979ef2c4864b37b5ac4b37d954976e72b1ea06c07db8745312565d00788f1c565d1a5f712961d52d80af24e150ee20e00a237a8ac022888f2f7171e9a6578b4b37314171e92620565d9613c0a59bbc60d59df177e9a618102eddd4e407976e9211e1d24d5f1cc0a59b6643b8749313215cba29a8e4d24d4fc016c966e462d5edc17d48c2aabb83f390330025322e5d65875577c5a5ab5cc1aa2bc3a5abf4b0ea9e5cba0a16acba335cba8a0fab6e0dff5cbaca12565d16f75cbaca8b5517a5c2845597860a10abaeca572e5dc50b56dd1c5c0797ae1263d5c5c1635cba4a13565d18bfc1a5afe0f4eac86409c0a5abc8546afc2e7e2af6d6bc8adbfaf2006fa99e84936a8901def5ab463824dc860374d8f002e870f7a1c3fed0014447c986bd3fdceaf0a1a3002d0ed0e1f5013676b8f7d8414363007baddb08a2d2ecd841e3363cd6de1edc0fa7b146a80f7b69a80e1f3ddceab0f6be78d561abdbf0fcb0574787fbd841a3c30bb083a6006ec3d3c35eeb0678b1b77a106ec301ee2d3b76b4bcecb0b1e3c586dbf0b8bd3a3bbcc5013b1ce0a3c78bffb0e140dca501e10fd7c509608dd0d0860701a11161c943177b11e02de10f46941a103a4a122e296bc37309e06f8dd05b7220806871972028ef405823209802c26d785aec2580a358235c0b4a110e84354211602f10340c42006f095b5aec7547095b50dc86a7087b75420f920222f41fac1110881f5abc08b717c583b84b03de5e02b811a99293ac119a7a92a75c52f603363c6ec343007b7552fe0d28a59cd40002bc3b025cdc08076bdfb0363c57c895711fac117ac387d277007b1b24f97043c6de0478c91a016fc81c005c00e9868f1800e6b0363c9788cb03f561087b490e5a239e10231f78b0d7071f000f6ec343b257084e880fc01aa109b07700f4c6104238e90689646fc94737ec076c784823b7e11162afce0d1fc21a010760afcb5823e00064dc8647087b493e44c9de910be1e00288f003e4f081e638c0e7a51c608e12e8363c44d8ab93c30fb0001f72380f0bf08107b7e1f9ec2d3911f6827e00f778cc1bac114a85acbc9e5f1fb1b246c0a900219f35c2bdbd9ff774ae46b8d741c2c3616d786e02ae0e1e638dd0558c378379a583bd2b8fb146401c3ab4bd27ee089f316f7005582374ce3879cf6e9ecd6ec37384bd3ad36370dc307d068e981bdc86e7646ffb897d867bd608f73a3c642480be0e8e15c52164c565e0b057867bd688f7f603363c9fe7363c09b05707870be1b1b257e7c659385c076b04fc0fd8f0ac74701b9e157b3f5f9161afe7327ca611604411418838c01042046100203f7cd400788f0a00a7a93878012a8c13a0b2bece4896001c888a83ff5061dc87da030f75076609c007507170990ae3abaad2a1e670a45902b0363c01b02b381c4a00d8152b38941e5371b03a3cfc860ac3c3aeb83a257d47c5e13aeaf454c5e1619d9ea3e2b02bad4e49bf51a75db9e994f4975ac36d5416b715e5b5d270af35dca5b2784b45394aa5e1a55ac3c1cae2a48af251a5e15fad615566cc62559ca0ac4a100dabf28443e92a55f433ea56852896e0e44f9563c28d1576f0326aaf208a1f32fc4add4490c5ac0bffea917d7cbd8a4b15ab22638faf37d5f8312995c8c83fcfde9af7bceb95edf90c7fd507ffe8f3b65cafcbc9b4bf9bfbf66e22503c77bd4a847bce7984a34a448ef1edd922fc1ce7449a731519ab545c2a4e5482549efc4aebaed894fcaedc3c8adf152a5eaee0bc741a359e80dcfa980286184af76aca186228fd33c34b1fa5e1a593c278e9600a1b5e7a298a978e52630cafe90329b208237d86516afc528d0fd6f8a41a7f54a317bf04051070f197f6bcbc348786ad7328bda6cc3a255d646ae11c91ac14591797f0ca024e8b15aacda2751b410e2b7e34415264a525807e53642fa308c35f90e6bca44a38259de670289d55da424ee9631621e0792e8101f4bf29b2d1c72ca2f0e2d9de94a097293254ce0b1259b321a1353490748df43e045dd300941eb92eb26420289d5219a9a43d1dad6d737773b76f9123478e1ddbef89fa052f6df790bd9452dbb6c108231d5c02c8595b02bab9a04caf4a31d5b2bef44ec11e2c4141060481ecdbfe957999b8437cf9310b2954f02c787d7ce5e0c9113ebe56f0e4756438ec618643e95eb3643e01ec5b87b465e2ca484f42269e33a8e44bd675510f33a6d00c08460000007315003028140e0ac7a3b1248f036d1f14800e7f9a4c6a4a1ac7635116c3300a840c22c400030020000001323443430502809e240e7b273028cb9cfa7abafa8f94f3785a5f7f5f9ae4c797ba2f0a9ee60a11d611b88f3e380b77fa10ca33e5b894251a2eb17a3c88259c1adae6e7be465a458356b07cf87ec2535617daf6b7610201ff417363c0430d1f8a9dc8314f167feefa4bb8151f98804770a3b5012f4735bbefe1909f351f981a7aca3aa99a0c471daca85813d10a2702048d4dd2bb7d3b67e9daa4b65c3c651237bbdb19746fe966fde74ea7dc13766e9d6deeaa61aac924e3518324cbccabc37b230a35c1e98b912a63f89e2ce401f842ec44f958bb25e1a9c4ea394f81102312a6d7efeba2c288066c269e9dca8c58764a3b5535cc259d404fbbe5422a3a885f0102d360141f9b7030a79d2f1f7950d9ccf08015d6cccc02876ec8f18c26a814480566cfa5d90646e43d2f1f54f8243d2f9aee120034b0cb68c84d126750f84e801c2fb79562c031cd6009429a8f731a27c1b1b9d6f9f8b66d330205a252c488cca63e20e3885d84f7eb5c765e332358a0e4b237e93aee2505fe8a5c6c702c604c1f66ac02eab6f614d1da101d71cb98a25ac075e27410ae7959b0b6ec15bf59793188b1ea47eaa8747f8a9774083a04c6c6d0ed25d75e4039ffb110fab2f1f0ea80398104958d9ff57bbee2a01a830245a47f1bdc877a3f8f6bc9fa799f9c461688ee06ff133f33154976181e4175358147691997bec5c9630aba5954866a19e20f1124bac80f681a7ca7bd6d5e77a4c2ecd97e3eb7e6e3f72b0c9089c42390a4a9eb0c78c9eb23c2b42ecd2901d610c0acc0fa0b3f3c4cc02952760fb27a972d28609820348bd6ad7c797ebeed80237a255894e5af12e8d7529b8b4de731fa2ada1d89f9588aa68e5e22075e4ef7c1d3e113d31ecfcabab4a7f68198780f51b3801665125f5b14badce6336f84dd798ef4c14de5e1598ab35f8b09d03b519c5b7a2ab92baa0912053623ea139a714be31341956ecbf25535e83272ba138d5722e205eb28e9a5ae1c83e1275a31d35038c9b4c3b59cdf5480641a10bf11991f9059064cf7817c7ebd68d541d53e1e1fd60be2731910be8644dc47228a16947e330e7e6e9e0993d0e64436421fcb6d1773f614e8c7dd61693e32e818eea52e81bb1c38aadfc0605b5a2e29db75098bbce0f616ff1f0eff01c6762e894facefd7d58860bfd10bdad0eda62b80fd9260091489403c9f076c65d95c896efec9257afc9cc280a3f09a247c33fb99c46f70e5343c160b5f9ed4c41094bb5f0700351294b20a6331e61c23586bb6c6d810f8fc58255c5cc06e6ec2f260c5f418c3e63c9ea94a838e7316e23a5640ec898cbc2718bbe8b9b29b01afbb8af625763b0a3a8f5b0e783e8383507ec38b8c94d7fff2c50a7bad38d3011de1b5ee0454e164ae1184d257325e57b424082935ae0ef05845329f749c5e97d62c69aaa854c96affa5810d8f3f8cc640400a1bb2a7315e72233f490753dc523495ab60e7a26114fb087c63b45d69acaee1b08ba77c8d73199f037509c966a87c975c5f628c5e6acda9c5e488df01f44428108f738c3063f2910434537d3061d139af069d6770cf98b860626a53ea3a267f35a6aada4ba60b3d4e488b4c569b9ec77c03d8ac1afd38e29b731e780408eeb2e9d7771053e71e5534a06d944f261e291c64a7818b69c35fab0a8fff76a6a43a542adbf1780ab4df2e75cb67fe2b4fa28f2ac19aa259b42f93ccc665f663bf244d356ece7b0afc64921285188fe156459b65cc70c9eb565aa47d674864a6214ca41f0903efda5ce8ff2ac08d7b03c245b98d57d80913552433767388c0b090a0a64853919c06680df1cf0ad8a97956536549bed835791015801f7a6bd42a20eabfd73e721332faa617a5c732ff3b6231f3462351483c1e04e51a783d8ed7399686cba38fb4a91d21f093ae439f75ef99caa58afbc8061791376e2005b8418b6d5eaaca8ecbe2b5f5bd0fb1d1fed9c1a57e63cc2c72a03c67174d43a9860d18438f1a600c30705bf93882097fe66ced31b0d01c6133dfb52d6b4203dfa7c86d11acd54c2b80079ce99ba637de86f528cf691b5487a3e8538be9b1e0d569ffb601928a6609a16e55fe7fa918553e483cdcd6bdcb8756d53ecb35ffcc03620cab5fdfe8dd44446fd387329bb355967edfd058e0147687b755a130c461745be0d32b2a0c7a114a040947a621e18767b9bd5c6981b4a15332ed5a572594201dd962f21df160da67c2005ba51296c003430214e51cc2091a7672d976c9ffcbdfa67302cd2ea098887338c4628eaf4bd35a8633fab1d930dffc3a9957b5432f91213f778f3b8b98c7c7a59cb71e10bad2717ef5a05a18820012c7f35338cbf16e3b86bc89be8df7b93460e0b9e123189607f91214ef670aa6f9cdae21cf44d313dc9eb369fa111d7dd6b1777e7ae8dbcf36400a151b66b415ba5d12972a560e35c93c664a24eecf63bbb5f4fb7d73000c5cd3c344854c2441a8724a7777be5e1cb62d7e1cd495b8f63fff6e4882252827c697c937024d8c20a4c5100f6ea2e0933258e112349621cfae133ecdbdf5cbd406493cacb4d28ac1a6805f949f7694c88608b4e10de64fe69c3c99a323c26a4afac079df3e15066d950dbbc0ab961bb35048dbe1c7474e3b3fdf286c815202f5a34526215cf1cca73d572f5c3a810ed0409796f0d68295b893da01ae464f7757adf22a89d641eb5a18d0cad4ceec072f64b6b07d60d99e4ecfe61edf6b942fda110f7434f5e8a24081f1ad24c4bb43019e75a73ec70fb983c2ee787ae0e847316728d4d0fb1fade96a6778daa3311fea7ec84a4d265841ff1cf393742a578b0c6a8175edfb833a5136da1d32070071eda7302611b6e1e318b5b5ac5a6fa5233fc155e71bbdaefd73007a6e6ae5546c489db6f86488c8b33f7220ef218d68878c0339e4b6c092a904221938a0212c10bf821b559fb5e7bd7867e2d2cd19cef70e44ff3c6c072b16dc20100fab1019c48bacd007e0b81f5757acec2c1882759a5459bdc1f7a2e0a58974229d67ea4cd5b891deb660b43e192647e9ea3b700a5af5f1a218c4fe6c36214c8a947249480219c98dfcb5361200f4dfa8684a09e911195cd7cdf0eb190ca228ff4395e060185d707ef066909be04ad8e09cceed1f5c067338902f187d46eb7f3ec48f2fc81317912f62846e0ed3c6e13a6e696dad8b11a23c84e8057b9c669f3ea607f493a3f2b8f99649bc1ddbbb3faca517fcf293d66061ea88d8430d62ebf4716d6e5c524f7da675abf9f659fc67cbb52125e1fc41a8057e9ae460de41c895c7ab2e5f34e608c89cc2c6ef1fe23eba42a5ef9ff0bf51340d89fcc7e5174d7ac6629e9ba98727b9d090525ad8ea5dbe04c7ea255e21ec7121bcf5f92d678345b40fd1fcbf8992a14a0325ff2d7ead00b660dbd9921204d6c353e108ec8f3d6187cc8e4a07a0a7e784284777f4a34e363d0c77ad694e6064b4368503630d130aa917d56db09408f54cfa8b442898a04490a979a8d9e849bc444a4af289e6f7d3f91b958fca8b22a5f5dadd4f537973a08e101e9925135cd03561cee159f0c40cb0880ef0aea12678e62df434751e4838630d5a4735af0624417edd7ed0e2e4ba81371e77393252e9952c7c06830ee722f9bea2b87603723000dea28d0e02bd4d9d30611621e43971fd274f8ddef6f39916a9adcf277d9a3e725dc6f2280c6a74130c5fc4804616e5d78ea55abf0294fe76570cbadb890d4327dd72624ce3e21559dba363e2b72c6ba414ac3c66dba807152216b41bf4e8a07a19ab57dd6e0b62f5e9b9d9381a33e14ea797c10e04939f219b7341b2937c9732759e00ea220bacebb588fb49c2214d0c9b6e0b52ba300cc05364d131911f48d0ff35613d8384bb57ea8c98db50a4dcb1f43a1a6364725ef284bbc2aab752564c3a3ca9cd47c91ad8de805cfc3dbae548766f94a9adf8e9cb52256c6a2ce0492bbc79ecf229735668843b58ba5d28f1719b65f55f7a48eb48501fe959af661ee79b842a2c62849bc6c5c6dd0eceb0d5c9b7d9bf8e311d1614e489ce7d30745d6e06dcc4d6f64f7e0580b3ecdbf5f7bf0f28a61b5f08441917ff20b0e9c16a14a20b007ff2d7783a0eb8ffe54a1ceaac6c94dbc50d742db975a2c7dc51eef145dc4950b3f7504cbbd0f19f8fdbca4e0d818fcdd21d3e74a60dd643b86bd96a694a73b2d713062941fc4d1496934f0f83ee1ec1ef840e780b300b96e250466ac817ed2d77ab8aa6aa9c7a4f995dd4d44014a25c719db18db3439e052a5d03d70eecd11a47effafa138df44263eef0cbfde85f582dfdd6f70f152bac1286f7f55f8cccf61cf72cb123fa47af751f9a32d2c0db429e68dbe4342f40f46b0ca8c342228e44d213c3753bf7ca1c8031604c7d528456b3b06dd14f54ea31e5c0a26d7814db647ad12a0f3c4cba34e563cffd7fb3d882a7ea906cdf754e745a3a7959600ff5afa9b734f27d83842eca678ad1ec622ccdea8823c3f3176b8efb7115a05e93f0ad50fb7bbdc2e14895624dd18aaa35a7982ba641340a46115a234cfc353c2f3ab336c6dbb235179d2795823391c08c81616f4c1562273cdcc3953e44d68a3ac44324b9713975a9d9666018db023b767327221a197b372351a24effd980b2f79843c50ae1aa0a8973b25d54452f0b5e32d2c4d255be2e0826ed19e6935fd1a5f86b5873543097bf1a29f4d57cc30b8d8fc7dbf267a0ea907015b2de5e74da2d229729db0a126756aa208e4aea62a10c6002f7cb3d7ea953f9be3e910181139440cf6efa64bc77d83ef51da0956b0fa8d6a78ca2d1a881ae2ef19a1ddfa1daa0e0df668541cd1a610e1abaeefb716a6c41a5e91d1ef766b87db8d5c984873f21a4a2e3ffa1e70dc202d20c6e057413f53e0e3b165a6e8feaaa5d5959e90e19533512710b8ad009060237fdfe9ac1d18833c6433fcd360c4defd6216e0488da0d6ab156fd23c411eaba2a67c67daa8e61a82dfefc82eb6666112106d5ffc12ac5947ce14afea363a3dd18587b0fd5ad4f0864d038248e836ff29ec94eb42d1145aba7642f76effff1be747288c3bf95325e68c0d8db37e235012f0594144fed435d481c6e6071c585c515c2b7c52eafc6617b1c311d0e7e712907e0a6123b5add121b6bef703510ffc581af6cf215b6cf17e6312bed4ea02c502d4098e382062fb1e76ab251fea322a831835bca9360252b327a2d74b92ca0ce5b9e361e7b5b94f188a6c8c0db6343b938abe5ebc2393a56cde099717257df680af80bda3a3c137026753674766a877961d68df95dac7ff740e1b0e8c04d974be7a3b6bc26ba89c2e82ef09e16c943e505eaabc79f41787dae76b89e39fe537b18a2544108d30269339c5634cc1552b23bbfb9b305d2e840621c48924aff6cd9596a3f9967b038f4adbb4f56098986f5ee3c29798c1221c3d785ac70188b3469da04a8433aa4c7cde3a917406fd3fae23ada1a48f54656f79b39272e9739aedfb458deded0df9262375d4d4bd2ca67de5d0605cd3ba88ffd93dbf61acd05b80c2630fbb080770cb2f129dd642e9a0dcfe8a38d547b879454120296ca3d12c61ec35581988846555f2b083092cc13a85ced8bda97f6bcb1b7616011da6778619ae78ee017fb0c92b3a701a33043667a8e24d78e152325d1cc50141819436286990b197292fce22a26fa396c0828c486c154ed1cda8e9ae76b525161d05e0c8a00f92bb87d822e38d2b8e638966aa6288bf478cc802e84d1c0279c3284c6e2a33d93a8b5dfe980d1b17dda7bc8182d1afe2524c7736a28fedac880d3e2a8672d5e98818fdfe2dd2bbc8bcf994050363f6f2c146fb6286c408e3c7090c3d513eb82d687b8f244342ea1b1c72eb41562125eb46f73df31d05e88c8229b38743c801665012cca49255865c14aa39a95a4146e48aceac6453064e6dfd03f04cb075dd6822194c68336bea0400c1d7178157d5851ec45b2f17470978d022ff3f7a05e2e476bf494a79928509f286a1cae8876a8e454b92cae3564232877597626300cd44083a4e39b8ee40a3f388c2123f3e0db90f81f4dc16cd1d6463229b0e1cab1e10dea415a74e9d85e4c27edc97c6978eea14e94d413cf18646d82d19f878fa2578e4a83f562315e5295ed549d5cd21b4103a24b291f6d8943bff8752025c53baaf59bef097a794e50d07b8314993f8d3c8a394ff6ff45bcfdaa3855390ec23fa29a4351621a57b2936e411d0bd25ca9a137e1fcc8dbcd782f015bfa12daed274287ac03614ff1d7f2625e21c2a13b2229b2b17ef07a7ac77373999a8c66702ab970e927d7827f23569319de6813b7ce4f281ce6230b78758d8f40b1798c16b81b08b0cab9bc428b9db4e0f7ce05b4448cfda0f86ea49fcbbc64683e617115bd2a77b138e597a3a3c2112da629dea33e01577c731d4565292e9531f27afa3cd5f34ee87bde77a8d395b251f828688ba4bfee7a278ca47a3b1fa1bb0801c4edcea6cfddf3ebdb54f7f86ee04c769c3ee5a1af821220775aa1d710567eb8f5eb9bc859428be2adf4d3b15e33878db4af91a3352f1ab3deb99afcec144bd581a7421accb999e2e07a7db1d58075683b4e9c6a1df076d4a37ab5504be94a0aeb9befbc5c28506cabf43088ddcf6fe345df9b40666ad3f9d371b701e4a067160501ade5fb513119c29d91cea6233cda84a00e64419d8422f00e9ada659d2a3ca0012028a0b1da824eaf56cb4208d769a93fc346136ff6dc3515dc39f1a96be2fb81fc51c139d49f45455b0387e77c4df82c9aa60526bcab18f23209b163015d577364ce19dccc1adda7692c67f62296af3815432995fa87eae8297acba443292cec3b6693e580b5b757e3f9b905d4394183dcee753d5f33ea83128fdac645a9b5550a2412e163d88d04b326ebe7ac61d0e01a94d1bf7b5a1d0cd418cf7554031c8dbc874eca983d83735c5472c99ac4b4ce4350e6d31023666504cc97b908cf8d852ebc339b16dcc5faffdd2d1b021c4733e6a9c80f75d7f2b09990337101d522d2322da98b4686d59887d60b052ca1e01bd76ee881730fa8b012a1c239b74d71ebb8bec23225ebe3fd3adfe6f09b6f7366653003ea06fe0ab671622d4713990efc481912382a0f8c080dfa73b28b82b9b2545b8fce8ac4185c51321ebd0401a9588e6649d0b190e1601480fd6471c4b4c2e17850f72b9e81de177c2fb9058ae4c0d13f59c22c5666b485c703810e07a2b90e05b3224ee286f59bfe59fc8016a1434dda2aae7f11b364083c127c73d71f85b52fdcbf76f59796eadb974a67e81219f101c0cd734009baa7a8bbbeb39897c37648eca284f063890afa16bb556d97afe0b9f5e2b995fd2767a936a27220192684821976434a4bffc4d1cb87fbe57239a0e82579c565824f06e753233a990b2e216258af209262059a978196f54a3bcaf375b13f0455af40e410a096b020f032046cd22be7ca88337d2845e2da2389dcba5f093c8e45b5e5f54c2aa08c4766080416576d6516dc19ed8cbf4694b1905414f4a249e754530d13e96239b1716169118139b4ac9372372b17321442b7f3e007ebe031742c0d71603171e1f19f92368b1490a41addea0e659fac700a8d9d06bc8b384d576cbf1e6439e179e23ba2b45646b42181647bc455f878a66ba255a26cbc09b68680928c1ac6b6ed50e55c3a47a240efc690aa5a18b30cd5b265500a5b405095a75d626cbc742813f2d2bd9efc5f7d44c13bc4168772333d92acac92ba6e6a14c994838d5b4c01840751de368b344037c7c654a9a2b5c603028b5004f9376695ae9df52355432759bf17b7e90c478578ab33745d587dbfa7d960e234235dacc518511be34ec5a087afbde203b8da3a9d5dfcc03e3c8bc18bf36e97d182e0dd53aa1e72ae908f6ccdc3ce8f760e34a98dfb585ebffb211cf7c8ccdb3566f120caac6007e1d753cf3e0e3ae1bf11c5393997e62e9a84598363ed991a89a28c3b0709167c4b3e8395112b174d8e74cb3c7a5b7b5976791ffbb064ae1f4f68a27a30d5144f03af3fa5b41e14b080fe2090448d1c287f4d3d12f00224741df08135cdfa1e54409fb2f6bc7073dede047201bc66ac74368298a350adb1d922dfa76a0a908325a4c48c2942e838a875b55ba589cdf56a712fd2ffcf90e2ad92689dcd82bab0644db5c8e32b2350957732a37debd1431686a0789f5d3c29661c10bfc40a6ec2272787eb389b1818669b678f0cb4afa1ac610ffcb8010cc0f2b64b5f5de43aeaef0205d450e02b4bdd94cc47c6477f981d8556cfe77e12b8987572ff8fa4d698d297300231ae02a34cdd374c8d001d93db26791cedc04780540527f81b439e4491a983c6071692e7a915efa82d3175d7cb904ae4c80b3701a56ef469aaf144c33441d6b00dd61325513bb468e47d3fdf1f79718420f2850c04c0a7a8485d955e6121e57da7b5b8c9b705535309c00ce9fd0aa8a4239183e1f473b765a2b51646124863cc5a393e41b39bd6e261f66ed238c3a8adc5bbcf567fd42abe68396008ca25caf4281e7eb528910bc1292e8718722177566290cb728b5297f219486e00ae25c223d070379b1cbc31735a72a175f1040416a2e5a69537d86d1364b30b42dbe45aa2ada5804c6ff891b9a406d2ef5a622deeaa719f0e2ff1590953a4c9b246372de2d82f007e458d9c4dd1454b7f0a7bbe87bd08414f73fc20a3fa3afe71dada26bf54512093d3fa45c8a660020a8be8ae57236756c20e2bd9638ae22017dc6cc236d423e40758ccd85f87105e6e68f17fc8ee137005ca53eec5e62d1888a5d1e03ecf52c72f6128a1393ea257e816026d9eab7b8822979e6e4d3ca7d603659a90617610a974ed219bb8c071524b7187999d52ba129afb43bcf0afb5d7704001c0888d510981d8a1ac1420ae88159486c549573f956965442cb53f56612cf721f2e2e6969295400287b686832b81be48df362b3d691f0083a0255b4674b7cad2ab2e34d312d6d3322fb66e45f7275630cf85b6230e1475026331aa24118ef0877a4b5c48ca051ca6aa0df3c21f673e513d273a22cf139764db390a67969062d9ffbdea4c898010e1d84a18fbe20375a28fb086b1f90f69377741ecfb50d4cdcd2f292ba596fe5c5c113ba0e46dd4d854efa804c07e42b002e730b8486ebea45da9e4f5f4fc527afcf05cfa928ed21cf121d63076c921bd191776ec7b881037aed4a954b37beab1c32360ad18bbe2e1c11a6b000bb9590b20b6057738cfcd5eb0588204a3f4fc1d831cb550d4064b2ddfb150ee8ce95459fa3361050407008e5b3176ac43380b3754acdd8da8d8c4f474d864647367242ac13ce57724ab33bd822dffdc7607008152fddc28d405cef33ca9986df47421e3269d3a8f44a96c594df2182393c2c21c2a7a13ec388977a0e8195d39070f07afd812079f957865e361c9abb7fcee4680db27ebc2da76f7bf785a5d4b6ee17718db3e8ed6a3001edc00ab36bd96e27f1f34ce3bc21e6fa83cf4f543f2ca9519a918477a47c0cead2e6c6feb0ceeb412ba1bb32328cafe3a49becb488401c5fa6e7edc7873276948737904403f2f602dbaa8c8b847cb29cbf92e8ca105b83de761d4b5cda24cc79b89b050f7d6758cebbdb26d2050abee65872c1c44c34b81c28a7e246db610936670df3deebe3b3eb522c78f940b6eeb16d3f6bc968cc2bb0451634e901c2943ebc3163c67a81002b3d838d310e5ba881ed830afcefccf909f77825736d7a124614a7ddc0353990b88f1583aa58f2cbde201aca960e1ca1c9b8ddde932cc5bc5d051c38e5861b876ea7338343e02650e1b604b8ceee67420db0efb3ebd2daa5d916880160e577ef46df0957c66708e92de6f92bf720dbf9d0f24dee86c784cf52d829827d2fe5788e17335c9634dc5d3296bb810747b10430a6a5841d868d627662902af3cba5b85090bd0308e5708e82de033ce1b06819bda6228526ed24827cc8fb61c5b1026588ce4923ccb739906ab80cafe527c4935afe14a1398c54938c350478ea7bf41e10fb65e7549b5c2d7d58cf616dd3c7794ae103457ad3921b3edae534faf54c5fd9e6d68ddf0f3e4b41b221a8af34d08924fe3833ce88974795a2fd801d369b9db7b7ad53a2f8370ed11ce787acee7c43025faadff46c721d22836fc53a6e1d3b70cd20a30bf2a07f696ca1d798bab37bae6dd94b137d5332bf06a8e186447ba56e03987ab91b7f1750dbd911e099a4a69b42282f6d01cdbee7bd97ace855f37cb7c04eb2328421369ba2bae7936b6b72bcf5014d35ad97705f008e3bde60626f207197bf7573501c2124a451d225c8c6b077b81c5eb82076c2ae7967ad752c3d177d42d388b3d31607d86e82473ad1d78cee801a50873080652cb6bde701d7652b0a19e69809181ee6d05a41522805a843dfd3812318b1e9d5bae0369ecbec7515882f2e42043cd333d3f46aef3e4c85b4ae63ba797c891388c7bb2420b1c0200801c8a451cb06d97a3f5da7bd1fb7642da1e52805757dd168f2f588e36e20abde34e1e9fcb466895405933a73620626528d7c331da979dc7afe18af33eff5843c7afbfd0442ec3d0e5da81384de5df609f4bdf659c7f66e29646d5f148376a17d3925b55fc00f632f3184f966786848c01f38cb6e1c02fb3a9825c6c6fe171cfa031ecf3e656072da1b4680fd626fa937870c8d35138b56e6532e279f20c7abc4807f33d34a26443ccc8d9e37cb8bbd79fd599229dc5b2e450ddd45229fb408e99c2ec7aa598e53733b7bb42d281d40dfab01d20961db416cee17b9d0fa4a97bc8ec17d2e5800bcc7752c8ae8a6ef3539188a007bb6515f24946e1d2f1016489194f534e0355a0cc6f490882fdcb896c2cdaa2b719220c814406527ae1bb4af44bb98745cd0b5982ff28bb36bb5a103f873002990fa2540e922249670dc3f4a89f46dd397c62f20e2509887292095dd9324908ddc50245f3e777994d501c603f47abfda16be925a2fe4c9db91100560722bb5a9b9303befb010b72c0cc6189d7160f8abd578d508011d6c0ae87a3d19d7f13541f3e50037159bf5c8286604edf6f442ea096ec0168eb253eaf5410b39c30a2e04bb8dd4144a10762046821569055fb539f4208d0feef2192659f1734abd03277892ae29455a87cc921a836e15188e1fb8713dd24e12568449929ccb4b8608d09b3c7f6e8b1c73e1d05e59efe19c082c84d760235fd4131084cbe1f04ee4053769a0f972dfe3718e4d8464d97277a4c441b21a6a0cc502980d54cde0c204071417d4b16ebba638fa048662e4e08bd6d9c40bec96f184df22388571c28b51124839b63d9f0c949ff6c3fed24c4edb5555ccbed5af1c8aecc1952b30261df1560988de8b62ef2e217de28ea80a712b597a66b022aa12688c58f6d4769455b10ae6df45e82e9edbd034c4ddff5001df88df4a9d210b30c6ff9fc5f38dd5dd4c9c98281f069829825806344f2ac8b22325eb313405491a3d39009defd89e9c6c974f46d4f9c687fcc0c10470005e972d266604aba4c13b8dacd46bfce08c5662f5b0324e502e700addaa36fb237f4765832211ab8ff3adc3a4b4d00bcb0fad674870c4453c643a88e9969fae768124061ac95c2f81f647a7e50f7b249ff621d240153bf9bd40dceb873c62df9a35d32af42e254414a9b3a332f3408e8c811f620805b8c8265df26f000558ff1c8c52b51f1dd1b7ec194a3fbb8d4a3476802bff922677957446926381e7151da44185e4d374a3d7c910515a07fb573a3a8f9a42efce8a29ed22bf6d735bd5b7452b075edd79ab4524514944999ea9d6a027a3cee93c050e51eaa2a06c20c4adc83da7f11e416478aeeeb1bc4e22ea795b81ce195a982dcf4329a5a0026857ecbcbe3b65b008b2d3a341681b61d145729bd23c22f330f091a46a0b380c72468de105c13d7e6daea26090340c8c78f838ca4d154a2d02dc1471974f36e3d18d98a1333d059ddc60d6d86ac8b300f7c4e16bccab86c6560bf1c04142e1949b80c7243dc60cd68fbadb110548fc81ac943abc4befb33314e6f66f52cce6709b86b68157c66d9f4a28d4ae3e4b08bedf9e3625d3ca683386b71f263d5fe0a26b07d518795518028e84c107cff0156780de7245af19ee30bcca1e34cd34c5d5fde9b9a2c443e59b24bf9b543c3e9390f1b05a47288dd1a8beadab6c53fcc95de41736f3910fdba79080dc76c779de824738b40e88c0a8515f6e3493b544d4526a2451fe47b3f6f8543848185696918f6a372f97d0c4cea59360d41a84ad7c92680793e35bec91ae630d57d7a62128bdc79c82844535cc6ad370f3dba3332d3c5ec388204399faa4fdde3c41efdc4f30f09502206a7d4736959841bd68dc71fd4baf97e6b3b2d0602c0f78c58bb4f69f7273eff8fa59868c174d84f71204f186e4530aad987ebc5327b60bffe9ec1de5565f505d230d6caddc213962100fd2060616a712dac98215bd3aac9c2c449c49af7e44454ad24081b3c5879375aed6da3635ff5ac6def1088b75144732ed7a3037f3176e0f466eedf032e80dfcebe5a8e4f46213f0055b126141f1cd4c1009b9cfd9016a7171d0e74fdbdc8747463bfa4031d5dae58ec79ca46c81199dfe66b40d7a644d6d539d51e00d10d1e2a4b971a354321e09a27dcae6d3b2842448bb1a1711dc0c835b4fd6e613d370e13bc424340d9e24179a08b0cf68a682f9fa3b581bb7a15dc245a3b34291231752182fbdeeaf0ad701b5964612437b483291b8e5031ae8a7139ee1e9fd95ea02b5016b185c5930cc14fb59a6557f3d9656b87841a9c73d2631e41bbd626e98b474d7c05bf6cb2bbb8d947bb3c7d0a52e2433f24d5cf8cb4c1c25c291031630fb7d24cf9f67ea31619d7bb6ece7128151c8ea8dfe20532cde6bc7b94609dc15a6c6b14f438cbccf54048bd6bfd43adc4711066f2b12eefe784e67e74e04f412891660db4e4f360fbe2c49c037f166e74fc8a6b591277c7ecd498fdc3ce5628ba49899c440d74bb215abd00f6c990b05ee4f66895e350329876195cd02abd3072ecca6abc21ff45e4d1d7de028774edc2d51a1058185a88810f5f510f03b67a62268d03b0129d2231896ecd5f7be7f2c141cea791b0669035ff18098d1a824323f2af55336fd88dfae17afaad8fc62cd392b2a35d13f74c0f0c3bd413ede5f563a350c8d2ebac46d9ce49e8639c4fcc70ffc90734b9bc251489959ed79b6be7bb4318700612e34d4d88c7148ca13a1ae03db2f90736be5c922a05c622c27d67f9b6f55c1f91cc56932a36b740a8781ed3466c6179db00e1d5890edba24898d06a3c8d5653b395b924a8dad5b95195938cd2d84e5e27fa6674d44c71414b53931f12797c4090d90bb50b11fc6370d985988e0c476a135f9420c5d912f9137e4eeb3893794e3482684ceb560d3e372caa872231ef913d1291b8f6416a956a2bd10ea9c424c5b89e471183f5f8a9622db77643de0dd76599497e83fa8995841e455775d8e82bade94975f89d91040b206d420a0c9cec19359bb6f8b42b9fc39989278ae3d7e776e0deb6ee6c02919909a4ed89da247308cc15884ccfadb0698b1cde69a521025106363c97bd2523f9f05739982eb0957d5e75e8aca63897a54637666ed9631ec5854cbe97655f2b033c28dc6c76a2cd1ed651ade8118b271ecaf34896a1ef3222c344a06c0425c8d52dd20edb8344be1620ddea44beb80a39e66a6203fbd1d6bca57f503fd98dff73322a2078832fe09163803cd1410b1485f60ea3bae971f7f7001b0614aa7f90f838f619a382abaf7c0822da6857e2efb4ee4459ee2b71998f88821e1739a5e2960c8cfeead96ca798531089181c8061a47179090b23d1bccd40dfa7abda93d09281c9306a297e292ab0795a5ab069d1bd246769c1590c032c768da33028e009fe37895f443445e076b2c4e83472a3eda0a431245ad1115c397aa9e826651531a1066fc64e0fe7e80d2494913a7b7e1af0745ebae39c77e30e217b3481cb4e0f80d88f44b1b64870a1bbb920484b56375fd2d58a42016a5c3f26d6bac4939456c0945224b9663115f8a9bda32d189b5d0004325c85647155e9f8369686300d6fe49388e9d901e94608959232c6607842b82aaba4183ac9b1fad93876d2219c2a293f9658835eb7134e8483cdea2b6f64ac7e047439a10c2919e32ee37a00dd8152c4a9bb38d8a93b3afa6802b1debd8c1db9e8e646c1e6c225e53f99d9b3d904aca0ade3376fd9fb4ed7e8b716356ddb8f0906e3d7832033a41b07a895c2f49e18e5086f8c3caff827281a920850f2d130d967df6b11ca699b83f3b4a794718d1b4812b60f670a36ad084c675a19715205c6d9e4534e08a1bb529946afe6332db92c1c2da84cb46f0b148f27c24ad7355df3004eb080ab245484bd63288b4f45194954b390d21364065818988638b0387e40711775c62052b8158d55cc04e40f783bd901159356dce33c03776baeef32d84d44e0191a6d0de1f27694bb70498694bf83fab9cafafd570342026c09574fda25d4e14a38d3de76ed27f794677c44d89378b2063e56a5f94c49d080e0a880e50a5df8b56753d9740194c8d86bd98c6731300ad0d441d08407aea4d39d541d8a6c2acc2442427a8b481f1eb7d8f62f3022b1cc5b5ca82f385161d32cd192984dcd2ddb460003c0272c1c3a1a3ad2d7a1bf0d279f6198d21a8ce889d0778867b56e0749369abf441344e1d81f59be1a88ff6610a757deed061e524fb6720b90eac453de73abb525c9ecb1cadd4f1dacfcb097e6654a56c1624b48e51b5bbd5221e1080795ab84b6e248d7f1e3013b2793f7138d479bd49e9916d388354d1838dd7e2aba8e6576483d1f6df894bb62db5afe3525a9b6722b01dd1a2963995245046b1df8f4ee0297d051a4ee9361d7a4f139154a92aef26cc0f149e38bc366c64e743e733f3b5028fecdd72299a92e74bfc341f17a2e955365657b4ab4d658441dd55f84fda0ad73f4a913c37e5461014038ebabe42230f5a4b576f6579458db46ba4e90d422a8966aec45b15a86bed4a1286a1eb4f0aa22dd354d097ddf8e477188ddff4537efa28b842872b279b987aa7658f1b007d570ab1359e2503dda199158148c50340764e020385e55448b35ae0f662b4bc86acd10c1fdaf13ee952d5594080c1cd73d3e94b9eb848f6772ae0fb8446431865832727ff775c6dce9014bf79ac8074fcea82768bc5be04473e828a91c31ecaa9b2e81278f7a09247a80117b63e4004689b4d526e7be17f5d244b7923a4f8f3f713a850f7d6d3fb7904d5996c0560713c5ce58a65f76410481e5008a3b4013149864ba2967bae630b88610c5c6f4c891e5089dd7f73b2a58e7316706c5696938eba65871b07f1285248076d5d9c3cb512fb7fe49c785b9cf5118a7077580cfcc671468488c03cb68900f784a746910072022d67617b1dc3b8964851beb6dc2530c80747b7ba4f6a80ad5977abe350b193c8f7177cc0a40b0198b27b8d86a996eeab8edb8040a3b58252ff156bc826800fc6ab0224f1c81440895efed5148944c07c945aca865e7f3a80340883878758830ae7d72b59327defe294278616c4b919b88c5e7eeebd8bd6d0509affd48b83985fbe0265be456557197daca1e1d2a3fe0a033afa1d018c850b522d8067123ae9c5d083b5a0ac469ef687fc249544e24d748ab508daff3f074a30827bb694820af853f0816d76473f730733bf088070782f99d46dd938ca897290ad7e35078277208d2a44fdc686451293bc8d5d606784d954780eb44a0d02a86cf979583db73dc08ac3117587ec40c5d9c6ff51a092137070e826b480a7a1a3363857812496dc94387038a22e90e98f70e0c3878c0b007023cda36e2cf03bb9707aa4ed71b08c66006ebb1e40971903080ff90943ea8bdddc1c7001d5c7dd72fc3dc922c19b94943c80c8344ca00aefca14a6d327b0cb16ab903867bbf3ae67eb952304013c72f12c57d035dc5fd653206b9e40540b5c4b718345310d40c696ca1b023b3cdcdec6149257cee1e116865e0e7aef98492e8a6e82b6b22c28ed0a98541e18512a5a0a8500c454a4d7d760841e66fcc54145180c3aafa08f2e912b809c2b80d2d263d004419f8f1fad5e038bfb05ea1323f2146abc037e8adfe133bb1d06261302ee68599317bc83d30fd0b7612208f5c798ca94f00b0e0136951c1505a34f2aae5be9fb687de715575206c03366ccad3c67cda76fd64c4ef4b554897b10c98906dfb54c05d8d706d4dfd50a6bb11a88787510ead40d2d46eb7aa131425c02719366f0b3e0ea72ea0117892bb38e891aa7cef30902d09bfdbdcb8315dc7cac6f53319dc2c709f86f27846a12860d2f7ef20e9f747209066819ce2616848334556f60a59b98aa0212073ae8cef17087e5a4574548fea56900ac470f6f6584462b7c6288167f55e75378702d7323dc0098a1acebc0289fe3b636bf40a5589749445e2111e9231d850eda0bb3fedad31baefd4a5be0a52caefd4b926edfad88e7756d91c9d17fcdc3febd09df8938aa85c7aa73f297b9a8776ca5c6bec93f991626aee9ebe227db78c8972254b807094bb7b80423843dbaf7edc81301cc14400943da6d148da4148260d4a941b1196632e2b0d738837a9dbe8af36e13f8434464b3b625a926183339eb0fb10b8fc3187d03ec48cb48dc63112984fa9d6a8df2d7bd7c2a4914abb2aa9625f311f8e92a5427d0eb4392875e420bdf4f9f6f355a2b53a8acdec346d67948e906dc9c759bee3a6056806629b1df60d4c1b95be30489b66d2a201fa1696a5c4169c71c63193f26da6278340d928d380d739ae9f37509e3e5c087c411b64f0327fe4be62ce0f9d6323086f31e19513d6374494f8fd136b015ded1a69a59264b8b1845c723fbf0783122b40127ac3e148ecadc06de4aa6d391cced588cb60a3db1b872372f99c6da06d98a94d05676ffaacad59814264b96297f876695b085316da1137fa40bdaf37acd846d7945ec6e667ad67cf5921269fb89d1493aa9ec9f1c66584a908a03b7000bab0028026817119842b7dcd70d8ed32f02106001b7e1880b6c1c1007c51fabbddb270dd3a79fb97657597ae1e6a500bdc5ec4c8ad39589f27d343915bc238ca11c8f69e369c8e9f92d0941cd64a977c6ff38f307deacb4991cf17947c8b55193698c1f1a199dc22e186bb91d2d25c9459a03ea621bd1d31c6950161b023c32cd3bd11f8235e1463f2702fc0e00bcdbdb361c6845dfb8f6e89c991226e41d12aeecd86a60fb971d9fc57b4c5a5415257cfb677e0d47ace3f12458aa44f3d1871c936489658625044dc375d86f98c0f08dbcb7d275f52c75c16a00ef19e4560c339d4e64fb74bf6ff8e92a60cb52c7421eec975368f1a3a3abfd40b00333133e5048b89c403cd780f265f816731ebdec1c959c484fc79bac37cc58f28d07328d351407fae051d765113edaf60d147bd9a8a1a9f43e662a17427a4ffcd3fdc942c8a324472bea4c3cfd3e6b8af7085d14b56902d9e9c0bfc8baf0b0d7877fad178fe2828e85a7ce5c7005aaf4433e8c27cff05675d5ed56c431bdcf64736b35760fdeffd176eeeedf9708ce1932ea88b3eb3df486605f5da3a37d40341a716531a75b98b8c15da97bf729024c8beae373a58bdcb2f0ff66c202ef5a85e8e1d548130c79a00d9e4e1b5b823cf181c6b55fcb94b569be477ff57c69f36f5c45dcdd121104c12c320fb863cbccc178eb2fcf9e7de88a588d819f143fc899b003f07ad06316728649024d6fb2d20982fac8eae314209301898bade65b5f64263241df98f34e40a26c8b4de1ec4a4215a03a92ce49a44708880fa0d7165fe1ca47100ee52ba009d992182c1ede62a3a22881e6620495700015bdf1d3a3f911844a7239a280241b441c52df96b89d9aa850889b4235a97dff5fb1ff38e41146979f4cce975e1d48a71f8bfd004cee8599d39195e4ebcc2df8a3ba1f0a9ed019f6a6e9c7b20bee73e70655f43164f012d13f452f7c6c819a4010d36bfb8711e241c05baeee036405881a54be8bbf019f0f65cbf05845cc6ad07d7f71168247bad56c3d2162dcf88f01ba269d4ff8dbd560966e7a2282df5742544b79d0c9155326f163ca89afec3f6e86b18f55ad48a02e2e8e54fe8c90e8c7806a7f614ee3a4e73fa3a37f7f1d7a3798b5df46cb869e85399c43c7d763dded14e130ea1672e8fc02e0f71408b0533fa7c4ea81cd417bd46124b8e7a91d0478d431bf950db6804313ab1be18395d218f7af332e243fa8ab3315b6f86afa6f101bfa4843d9749eecc1597ea7db800e639d7d90aa6456081ca45eab1509040c1fcaf195d89f33b949d40c3f265bf3ce3cf7d957a4dd208a798f63c5759ff744d766d9c69122682f8c07e45d3c2c728dc1401c2933cad3a69fc0e75e56044102e3e098b4691a995637e4344a10c4cb7a1663161da2861395b4cfcf2e36d4ede5030ec36ba703da8201bd93f067a1180eff2574f6afb306d1755db964807886a34c25e5b48fe0e5fcd744963c0b66bccf479d7e965e4fceb2553e4aa05cd6d26d3017733ad6e766508ad313ed1981e45330fa0b3b70a8f70b31ddb6deb15719f860c6f4c90653eb4eee8f8065b73bdc70e10e14e60fe462c214ac85af9f60e900ad70e10a89a2ca1b9438c5ecbfaeca0898e7e8ce5c581dda9ff9cf6bcc5de8f11b4f9f27249a874adf6cdbf5d687e77a01d0038fc7274322cf90469a91316f0dcaf0b9e19540c060bf6a96ffd6127ba4c7440f2d4e32581070360fb4ea5a3d4cb0066d2ca31b7112f18fd32111a5b0ab600fc171fc0a3bf8e048a9a865d61e67a8ce1167d182472b9ef99424f6b0ad007747a1cae5d94bd8f44758a6ebb3046272621b2f9ae894adf0ed458d09af395c58c9730f428000897fcba520bd50ae2bd6f341cd5e32ebf7a0e21818e419d96bf3de2c1261406c246678b7d43bd6d6a8235cca04ec61c98d68b21c4b6852765d2a6852c17d8963c0d49c32318a518644463bed048a491584cf46a6faa21267ae150122bda7fa070f3587f4158e5714017c1151883b7186278385a5a76c48042ecffdcb2361c454ed163adb55183b52c8ccb4cc23fe05a067d6de73d5e8863038dc72a62be3e46a00f14ffda0881cb2e93685bb80b9744a3894b242551664a5e9cd31153502f3b8439a73134c8de46f1c36c2ed5a6754c0d875f4f15c72d38da812f9a528fbd0a16a94dbe214f147e87edf9b3aa94afb840d011f47fb2444c60e675f91096fc00d7021bffffe3f66985dde6d247e288afdb2c989343a8e4f8e126be960f30dd4606a8f80d50c44a10afc91d8c25bdb06f60af4f991eac698f67aedae0b043c11ade3f02431de9f9c801b8775fde41f28b39634d8bb9572543ee45c9d3fa722f2788fb9cc64e6db5d19904e723afa51e6cd7db2f86bcd303738bd08cbccc55f0926b4365406519c8619aaeff0294b68d52d748482c72fe6c5ecc2d2de8b390536b00477701535b97326a721966ee047b2c119c319936d4f145e2a21b13b6ac84813b9693026caf8bf277f856a8aa0d23d187cd65864a5020089ad8340ae1f152420c1782269798b675ef9bc8863da0208d6cb6e8ad5d08aab56806839ae2d57828b794d2d925a001ac4b11af02e4c45ecc552a8f6e5888083fd87a0f35747f2dbbfdf8690ec2186b3ef3354ee9312908e2ac9a65a6cfaa60f37de3f9c0915c94a0e7e3cb15438454592433f049218937c3cfa1598bf633c01472a373b96ce2977c8e7e9389161b7680549e41003782ddfb856c9962f66fad75797cf340f263fc0d8226eec440f2b2f46a68c964503fa038060887273e2b5964c4c867e59ea1ecec2ad4c912a7578ec6b3cce5eebd3bb15e8b9f991e36d4551c2417c70dd85f48c4c124a60ffe10f6a70887fee289b21073f88821837ad4116262e002c609407092cd79725628897924528e90709961cd01eb81d77773d6d5c06704f88ed2eea5ee6960f667993e7498e42f4c61c51545d663f7eb36e283f5e02ab0fc6871f4cff867a10ac5994fe7814d5035805f3ae4b61f0520a125fcf55c76834a8cc3c106f668cb0b9f6e13ace8871f249e819220588461a60748d6ffde284d015c874843771710446738f370644e16691c5a275581d949b25dde575fa33dffdab7d84f2066991b1f340abf3ccb5cdff848e799b15d2ddd32ff11962e94019dce5d5354b6052ba34fc8e458f9ad8539b6636dab8859ff32988537a46c1f8494fc17224647da507716a6a28d33e2054c9313da42e06208e2ff0aedf37fd103bfe20d6a188f9a42521e094e784be0b97695f9155992029ab7c3f666a2bf66cbc1e7d67a0dfd2538dec3b254378b333a03f384e3bc1eb167e7774cb81a0356c93e664587079eb2df28716e64acb412703e0d8abc6b7fdb535efc3875243f0a5fca2dc8172c728c18956c368c15af5c9a6f549717310706cb5b86111d3125bfe524425d0df92e4649436ce8610553f3ac871c38492df453c8cd9209e3073f50081e288201811f8424a3e5af625124e82587bcdf17a2f0c8a80185e882a572a1a6371a54c822f02e7e8dd4bf31ca132ac067d050ee59f93a139c1e848ab0cfbd4a9f4bc2cd861e52f9dd01bfc5b9114a5fac22f8b320f207b230de0b83f53e07b87ef67e96b0fb129b85a26231e83d85b0d6d341bf798b1a12a1d7bda88f555062f4fa5f9865140518d5c7ce606fd4b1b7fd3c186c03815a7adc436b00df54724750d40246c558863ec5ef91eaa53175343f74e27b212744f1f7091af063c76b367d6dd52349b3155559cceffc506c51ae888a59e7383e4505eadc8c287b8a90b709e26318f23e08f28e4f8f0c1035a48f91e98b724aed6679e6372c54c226f6abfcd6e9971b0ed1f3d309bea5f311545fee3bfe09d59cc395427b02ade9cbc6a213acd6beb2bc94b3cd36dbec33b638390c8a07ba11002585afcf13b55d8de881b3fe86882c5a288f086b062605cfa3c308987c139e567bf26a492c4851ffc93bd7e9044454dc42ee92d853e23633f9de2974f7443ec4f240ac1b90ef8c0b3ce0fe7f6b01b7e5db662ecb8b413dcfd4715b08c2ada7f8db45f885e3306868fe489ff26ebea1b79cf158f8c2c2d2ce36d3d9b398e14ccadb9032083a7f68e3872d465991b57311ddb631fab97ec7a77bf564d1729bda6d347efb460d159b206d2f3c9924de228955179ea36fbf4283c3a7edb8b458bd8532bee74a5c4665b94297840dbae25ceb1e4e1420fb4b263db4cec0e11f213bb2af13a3d53ca31a8a2372d4c668f782d3177beb289cfd2e3b6ee39d5ee6861ca9fc6cd97730449a8a2abe09e9fe8227476f6d2d4cd53dde3c83cca6c264f1846b7208b76cdea7bf6f42cd416a87ef61cff1b43493b199f7c0c04e19026e3cfc889972b2e58252fab0d5ae78f35c4715982cd614ea4cbf80baca4c6f16a86607ec12ee2e509b92339db3ac69d76ccdbb9502284ad5855f0c40c60ea4b1708daa53ab2dce1350a181a234b04081d40b5bfa060dcafdc45a2e550e33cdbff3799fc0ee35c8a89ccda0ea134832a18ab427a34d93cc431f93e7337d255597d7d710e1cba6630231a081a543403e5c73a300776fcca85ddf4a55be2b5a920a9425956cf04828349847a15fa8a12b7f78795e6b921eae9fca00242af27060bdf1456f7d383abaad85e4cb0db80ae206427d6f88e0263cad27b9805a304cbc925b020a0fed33f341df0fcfb3ee59106006f74dc164a9f80df78012dc6f0c34a3a932e5d7ca9833e86652195e202cd65ced84076729588be0dbe43a55cf77eb4054aeeb09701dce436e0e682ba95545460c1903245ec1cfd321efaca98e8cc5f27cd7ca34c9f781a48f6378452a5cb17e3c4f4191ac329a4199c1d67519ea255d7f5aff5141ca3aca8d280c399fd30ff751823c6f44763646c4200c1e083b091da7a67e9c514566eb02c0772ad402c7ad0c7f49c4b697be890bb20a241264ebabd300dfb340d89d7a8a84945b4568b6c2fe5f21d61f5df95a69316436f670fecde4093484db9bd90e5e85cbf9a02d4512a92afffeb7cce1c1ea22a8f256e87c5c06c218d166c0c30d06af34aecece1ab08e43e754b3de2932b1c595b3e3549072bd8f7e4bb249490c4d033f3bf19eb130feda39b44882ab31996a77a6776ddf645b6af2409d5340b8331b060917d622564cf17a0d7444c913f2d434a03987578b62ea9dd38e7ac20d79491a3fa726077b3a70f330a9d76005982db370cb27b818a8f21cc5968f5cfc1b2714b3b2fe71730478475d55c1e7c128d191d060058e5e24ed2873261f8cdc4c03ee88de299c5027c66784470f30f44d50f021f86170dfa7207057f55b57113e1a4bf09056fcfd866b6f67d39cf6e18f3d5ef4ed1cbe890477b91bea9c7775221b130cca2df48c0d394d7762272660df433e656875fe927be677167fbe82bac7220f747c7c24beef07b02f93ea411302e448c176f407e65dc4a40ec334891f9b3cb96b16ae61bb0a64d52b359ed546712081f5f9c9c3c9f06e11405b40da9380ebc900511184c38f280fb10b57035eb7c4bc07598013b805a4d13661c14c5c5a801c06557876a89596d5ff588c57b7ef230d8b58196a27f881d8b28418e7a5a61455f39b75b9896c5066ddef82856155b9fddfe1e5ebb156129fcb4df838cade301d73115e068aeac04bb63254ff2e8367e0ca160654f02a2a6477060ad15f6bc87b1d9823a97d103302317b2e8997f147c633a337c3d4ca2e9509ead0f097709890a2df0ea9e2de2eb5012e989e7fe700bdeaab96320df63542ea39e959e0c8921461adf5be8d8b9899459086b90ca6215574994de68247723022f84d887e51038f2a79635140b35393f5e40b2b20d21efebc5e9c7e2563c595cc599829202e95ab9f3ee469d51f9cf120461ba28dca06227b217248b043c00af3a5f9d8cfdf2c07b546fe1e4cd8589b939b39ce6e40a84ec5d0ae09e4e9ce0262f8bed37e26d33cd39d1c04bcdd8922cf970b62bf0578013b9e69f6e7aa8290dee2702d27a267f932e53076c68eda3e0f2051d88b9b1f755b0bec88cbc6bd0c334fa8a387d54792e5b02b0dc8ec577be888423ea456609fbccd4e35908efa7114f33625404715768906012ee8a79a0f8be89c1c490409663df32cf6e94b11c06831f5140eb7a010990d1951df883800b97224fe01afaaf1d00f4cb090e9788a75061d3bd017488ec70f289c7c087a57e8c0410d154095df2bb4e302e879a04b9872acf3877e01b3ce5368fb9c4390d91662655a5f1193ae066c6a4a3e4adb7f83760da01f821dbca6059a091833eba2eb17454816813eb1344bc41ccbf48fbb8e857d5ca9be2dba03078bb585a1805d04349ba746dd8c7cffdacc658dbf305f60cd18fe75c0d92d650242b0bd08b45f97f9ccbd46f00cad29b5bf7866035080e2bf500b716a2f994e6e4a2e5714e055b12c20011f0e9fbd0bf6470346b3046c1fe605b0eb90254675c9b0b08fcd08b6b0a9aa5a0239aded990c10b924e61b49eadd55ff50e0d4d421175d31dc88a52479d3ab603e5dadbc3ab9b109c73bc4f6b2de2e6ff8de606c2015ab205434ca091b46bd6c0456d573595185091b6bd1ebe44f19eb373d4ae54e127547365c70030a208dbd1c615509a7405ae3364c7abcc90aaeb9e1a6f5e7a1655164d529d6190a17f55b8ee198ec3ac03b9d6aa149fc88a527aad1e1859067eb125eb1087988b0bfe4d7826072be941f28fb7f46836bafdca0b1051026cdc972d0cb6a70e7279f04cf97ac5bfaf19f541341cddaeb73c6dafeb6812032a5ae3d87bbb4613ff18e5f65ed6c0bfcd9429d4208202d8f49e0a6370cfc295071e4b37d2767cc21e89207838c9b9d8497090cbec1507c8468dc14dcacbfb70a1e607c03c952d45735784b64e54eccf8e8662702446f3122d43ad075e81a61d2cd022045f9868efcb87e1341a8cade330311eb6178f65b0cd7595813e102101722b0270b2a29348c7e0bbbb0ef3cbf5caa03ba547d0aece59e12ebf2fa7c7ee56d83daa261382d1a4d2945dfba625e139ac139873c15acc64c3bbf18c47a5c2440238c09f3c7f41c605d84276e8f5b5e12ca7d891c552264a3498cdd7ae6119431ca4cec134427d11983dc2871bee8dcf42b8e6a99aeb9893bc639cd672d50f77b74d17ccbff26d075a9721bd5096430b25bb3242dc350d6fefb8b50e52660d1c78dd37193df208c9bf6861e6355dcb4482cfce8c144dce4dd70d3feeba794ee300537991eb8a9a84377ba7b8cdea6af972c95f2367de775ee77fb5392a109b7497486dba67b5fbdb46d6ac55d34bffaba2de85da04e41db546e66519d62b669dd44a9060aa491ba714583fd1963e35e89770e2a0d8866e0f515788c0511dbb45765a42bf035eee258d1fe66fc216b09af4deb75ae4d57851ef5c4370d61b8888e05426b537b4d606d5a0f84d5a6eb6da4dab4243666cb66d8fde23a885e68e23a52ef38c2ed503dc5d141969cab51fc87c462cac9e14d29a77674267e6bcd1bdaf28c3a3453eba71a822d6e8a48f61d8c5ce1163868e47753a6e5ce293ec40f89beba0df20c3f6d784254ba02d9ba0dba8813d616bd6ffc54a1b6d800386e3609f0d6911140a825ec6f9441bc8c1babcf1a59080cb2b23afa8f1e81fc2673170c0adf6fc2612ba943500c46ee72ca27bc489862f0132bab73c8b68ca80743659860f78fd9f08241c6df41b4ddd93980b4c845816e2a1143c18d2eb6c5e800b41084c3b693fa6770a5686e24883bb095d9f0617ae32be09560da1666f6705f4ea8d8f75c3d577ecf0b6de79464546d4a61f4548260c0fc3551fc748b6cf570016c34032a80c27b5a405616a50305f48768813b4ef3aa5156a5e2337c1358f2cc9112ce77c0a385543b3d16d3859678af08deb7da49b063ba00d341a4201f197aa8d3184e66b900f8f08d6faefabaa2a5fb4e5549d78a5648237b932df796292599028e078f07d507de9dc6921fe4f875d6d11f140ae5839220c6f8752567fcbab62e5ff0c4afbb904af02b860a06673c945fd592172816bffd0328aac5ef3621bb9f7949fc017e5d65d455e6c4e5821f14ec60e502221c99b2a3c40e3e4ce951e207233b0052220546a6e0b89060b021744f8a8d695008e193a140c2bcaa8450423645024005531c61f2854ce15575c4069a12497a551df1d1150a85ea013b12f418e62e18e68e6d1df6ba21e0ac8c22893952676574083b2bd3bdb349d2a05028222928a282a7646594497c2c0d272ba33fa5868214ace063bc2cb8bdaa54101479a07952cabfd72853a8c4bc5c15e3d7b51744a63153433d7496956c23bc52f3449f9d8487de3a7826202c03675f81a88730d56b3c747d683c549f5dc6436fe8edc5f3e6d912cdebd8d43d3f69fa67f390acc7c190ab67da16f22cb43d15c6bdd754ab85b61a3e412ddbde498553f770f7740fef63169aeda04b17483db5cfe699347a6a1e36fde059f53603cb40bfde75595a5031440a2b2da668e3e10b52f2b383329416543821ffb21e50cd96a6eacf4387618041f35ffc54283eba06dda10f1d48efccc0a676e83fd8e42c031dae1ec22f2447cb67f73cf497182fef9e2d5d8145d6a438d881de606c49552df879a840541ebace0e7ae82d05f66a761b0f1ff478599b8f1f9494a04307b225e841b6a43a80005b3490ec1aead5003af490ded0934c632211a2bfb749924b8e9ca3279130ddf1fe5d3ee3d3f8e366cb322443b7599a8b9b3a30f76bc3b8a9fd25c486b79943106d5b6239dc366665b65fae93d6695c553423ddf17cc55c64cb2f9021b7d96ce4bd8d4830a30ddb4422d7168d448e8ddc666311462e8a1247caed18a60839aaf2ec41b644da5c0a191df31e5bca9c1d862d859c3d7b3954be5de4d9d34623d10dcf443d90a21746a3d93fe2a6740888bc25c03490dae2abb5f88a7c406fb95220ba09b9a50249cab45ff6df67bda9e2c87abbe28f462397ba437f34f238dae40b234e6ed7deba43f307b48f5cb4d1d03ef2ac31bfe12af281790b372517c4e545dc6c0fc17b91b38c3691b728c3b415853c0be95b66d1382e6ed8d6f1a59d1d3edc5e9afb4162997dd71eedd9529b60581976d95c0f34a43fcb87fd3ce181ce1be0f589193cd6e5364bb22411a48fe668801edd664541843c74b67a62cfec96f74603bb10237c39660e3914070f799ed85b1e12424ed2878490df2b7ade304ce450e442e622e7cd5168f1494201859193b6b4bf6e03b3ee353d60588f614daf879f18d5af773ab6b48ec2a845453e1e8fc7e3797b7c3c5473ddd248fbd1c87b4b2c3e1a8db6a52247ae236f5972c3dff622fdb93e6f2f9273e1f1d09ffdfad847cb7b1268e13ec0725772a4edd466473dc816dd2cb9e14ff480961b2e9d657b69f1f72d0eb3ddbeb4b428211d0ac90ebd451060ff003fe109cfa26d723b7ecc12b75b1c48c8cd88f5cbd1fe36ebe5688f8ac3726ddb6610eda35bda58bf80712f0f7881aea717e8fd90f7e9f0206449828960229a208299e023a867cfd459565207cf74ad58a6674b16d01a68accaf8ede167fcb7bbcb127bb8053aaf8057558e95cf9ed649545230f9e584ecc3268c6c1789203da6b6c3d9cec876cc440819773828e47afb8c3a114912c8f1e5b3e31c9484fe68e8f8bab2ddcbd981443fe66ce96d171b8aa3b3181275d860b2a5795d893b5b9ab1c8b37344623d1ef3fdf6cbf17c39ebe57841521e71968b38db3d1e91c9cbc11e75b65b6e429c98b27cc6d4b3db6cd461f278e8b3f6789b4282687f79666d4ba25fd1a39135a5b60463929561cf1edcfa638a4d7d628f38110918d2f9c6eb131eb0f819799e596326e48cab5f3d2f9128653b8e603cbf5e96d8935dd98edbd88e21b01e519b7e2cb2a5e517dd40b6c79e2bcf7eb12145618b8f1faaacb6639f4ec8c93e6b43bfcfb32f177bd09033eaf43c7bd4e1a8f32aa5e258adfea1443f368a43434048f539f35dcc962c4b7dbbc7705ad02d9700a4c1f2de2e006ac829dfda60b43cb277ef06400df97cfb87b5395114d91886612c3ce68d45aca3f38561dcbc386eca6fc8b9caa8b7421e55552f004d8daabac793d4dceceef619999b72b9a832ea107e6ffdebb321d7afcbd057182cc1094408a1065758e185f64311af73008085f79a2db5f30fdda11c80df28bffe5ae879f61f355c01223f2c018c25786042c56965fdd4f1ec4ab3259f67464332cceb3fd5af95e351a57421c1608d757392846d2edb9991b29048c523d2180226595d4728c1481f0164f56084357644020a618295241752129d6601cefbee6e7f497058d924434998388279bb7333484c48ca168e5061bea21b4c927262bcb6d8ea4282912e49a47e4a8f5cc4d2e50aa5612f86615a1132f45d122896d17f0bb6c774332f00af2a9c25be5f552cd8e128d9d26cb73ab6db758f9163a4d952a4e19a2da9dbecf327ba81db0d67d966901b1ec3dbfb87e42579603c2534cfc9cb793c4ff5a43c1d25a5c9343a585028cc221667871b7bc61c99393247292564890e3b4003748d85c5339666699666e9569bb554758350130a5c8939d56e4a232e4e758ffc3a7122b390fd23cf58935948f823cf5a9359c8f723cfa026b390d78f3c0b6970d33487fe9a23738c9e458eccd16fb4b478d6b2cdf82dd26416925fbdd95f3a3aeb301328bfce3e5bd2376da87576b2257db20693e59d58afb644c62f1036fd609955e87f5c476494b2a5d92b55840281565b52e8d0a3b2e939fbac589d53af6a92796ca3c15cc796306f51130dcbac631e2586f913dd609179a53b5efbfc45859cedd364a849b68fee78df456820fcf6194724760289f9120bdb666c1f3659dc0be63ebc53939790c760f9f3e8efb4de3f6c7ac13c87cbd517e35e42dc049e5b1ec3cba109c6e5f0dcf21c9a442e868bd31c2cce0a096920f589131f5e426ec68bc8939f209e2427f8e1c4dcece24a871dd21c9d70c1824c62219f0e1a0ed02091c16b61bb90605e6ba6aa425996b1e8a6c5597433f20f64fc286431c618b90e79dcde87b897ccf71fb08f826fef331436ddcec533155160c8113b3b1c81082d9a84d18393aa0c0a1e37170e852db44d211f8adbc4e16f702e5b10ed5f46dec2c929b92deb85fd112773a276996b2644b435dff0d1bbcc57e4a33fe49a61ef490d48149eb5ca3466eeea39a361890e34a7269d8adae14604ba454308f8978c00bafec361c8097a6f73c8afc3ad874c4513e0a0eb96030a12198252e5e0a48af0b003ead4c390d39c79d655099e77d8978719089b9e172ac3eecd9df1eccb643cfbe33820a4de4ae404b9be1d3b36456adc559f91316b5f166cde5f9e4c6366ab6af036bc7f3e637a04c171e2a33b3607ca0219d901e37927d11ddbaa259868628934333333334f060ab28f1f330f1f6122580bdd34de1a59c65a50e13498ca8d2b725f554c54f9e7ca0224e895d32c387d92c1e40006073d40413d4054a8f8a0bd0c9602af32e4736e35d4db55f8141e8597126a86d96575642d8465da22d18dbaa68d0a82a3c884c969a8655956e7b04c3461d8d6485846af2baa3686157f222f6cbedcb22ccb820dbb68264342d8d3a825c928eadacc6d596c59accaaa7ced48891333804ff41b6265a21bd8f186f839880233a055a6b5c0283d056c12290a845c4499224a18ddce517a8730bb5811f47b55f9a077fd688f97c41994ed36ebf16165aa1f190fcb50d96e812e20dd8185ae46d23904f8672209e0991af5b85f149b80b68a0c8ba1c8bd2ccc49c50155067a26bab91cd620f211fff21ba2177c64b4e22dae9f4ce7f2914b62a6b5401150648937ba9b889aae2ec1ef8aaf5c2b3691385206c4a61dc8cd3833a0e6481c869cd74fbc118baccca24c59950c48d7925abc1153882a64401990e9fae1eb278ad5f543ba7e6e441462bc7e3603ca987f32a018593806bd1a60a10b11666eeee6e71a00921700323794ca9c1c35c77835736bfdb4539fcc6fbbb5325e6faacc7aa1a00bec8a16b66d1ae86ecc82ecafa143f6d710725f315e6170707b0916ec7782ad8313ec30de0d7659af4d65d663d464336303a32231bc1cb604e055c66770eec654659eac4136e4784384fb2c36414b2fcdba2ec8b3ab3e6cbafc39ffb0c9f2b7facbe7398865ae1e36adf7d5733df34a4f4b140cf95cf771508fbc7e78d989ec8ba7dd5ac66a37e4b61e436831e1db0baa0f42d6b6d3c7d6e56a41e6e2333367fb226bf7c22064aaddaedcded0c800d23432e47beab39d21841a912cd32d4df5b9f12fd84fc6ee6e3a8406bab02c9fa738a043e96eee063af47b8fa70be83d5cbce29e9e229357abaaef811c4b3170760c9cdf7d108cb7a17f2010e4dec5c3d3237797f5674bec5715178fea2e4e23f1de3b227db00603414e1706e223ef4578bd177fd0578c266291db847c5cdc1ef3dbf7debeb797cbee7befbdf7debef756eebe7defed7bbb2226fc03fe8100885c3f25cd74f9fea1bb3b0b2056df58d40008dfdc8c5c109a276d3725ba9060a44b93315ef4aa6a72839fd2896800084d773c57772e82e8e203f2472fa30d2c4b48816e6db37d5edc3146bf9883f07b832f649bd1a7e598c32d8bd84714ca7ac5386dbb86ef2acaacd55874c3dc42669bedd46f2cd1f1ea3b1b26cebcba0bafdaac3613328d795d5683452b54c326203c5d228ccefc0ddc680cf9208c8e611816319616c8f952d9f68c6c093a0ebc617160c9d15edbb4ed8cbc140fd2450261d30d5780c610811372bed4105b9acac6afaf3e260298ed48a4e83dd8f4485a84fe1e9012711a97cab80c3c8cd0c74bc5b8bf1ded85589003d5dfa6a21bb7144257058324e595854e0714eed8f4723872bb5b13c40a0988922040a4b65cbc1c36bd1d96d12dcd21a331e47c3baf09c5b1dee2444e0512b2a5f99a0012a409171964bbf59a7d48bace9d040424ea017a171ab13518a879ecd4865bb861ce8688dc18eda07732fce6da41851978f6e70f42657fde55a72093f18a2c73915826c68b6562a9d9821036c3557d570dcba86356e4f3e586b0dfec54553b96511f01413e089b5f0c1dc93e8befb21ac2b6342d69f376ac3b9655777725cb687c5513f478a9f7ce218ffda027c3222682a82a8389205ab07b79a4fea0632ad3f2ed01b83d958913fb160126f211b1edc530ec0a0f104d60a0469322b42864cbabaa890f9a0f127b55316942d6830cbdaa981c210cd9af2a264458435eaf2a26404c7e62ba19191ca1bf884f3a4df482e5a78e1da684742503259e1d13dd703c4d610119394834a97284cfe8a78ec9c2efee9eba8c6719f0b03dbbeadcf08f66a08a0191df27bf1eb58d01945f77512d714485df25b909d0488309448410450f4e637c0ba4dd4eaecf6845ceae639365829cd3731a36ede9b90d9b74f574ae78cee279c4448788ee370c855093a5e90efd8529cd6193c5c1149733616af48a03a6d8d4403492229e8578f609719e83443f188865427f5521274c017154818c511c54c8095340c0163cafe0190aa1f590b54c81e49f1d13f0ea32ca437b39ba9fe9c69369d7e962ed8d67aa7932edcf213743d043f23be4163705f053eaeb2c5f6e72af3d1e197839daf76b9e89c5db33f0785cde3e039b583cf3103705a039e4e68d9f2593c81f374308f8e73be5dbf595d62d6e723f4bdf07d01c4f14a3c6c98c23f58a6e966578cbdf363b910b214f716fefa6522ec0879cb505e95c801fe23ef09e604307e9def297e77d396c37b2bd3ceea5da5b72201f4f3bcb95f6a7baf69a82c4851a995aed2f96059d04e3e455d8a981121d5eb39aaa6209aa01153f2dd82a150edef211c410db2f49f989399825917e388d0cdbdee9c1863dc39524466c555045ca48155b6a6713b6a5e524a0946729ba23863b67c2543b54c586362882da52bbc7cb821d2f0bb6051bf60ceff24142232a880351dbce33d481390f913cbbae5280428376280f0bf5574782f17f8f857c62ebd8629b391663cc307f1816a1e80693c08b97635b3fe69967d876b9e6578c526adce521ac4f97b3e8065bd1cd25f211fd71ba81edac971f91652cff963524106e86ed2c67d9425aae31164783065991d9a02e24fef39707a85fbecfbfaf2316e84bb2a6a8e4a13f245b822e039b485192bcf3519feb39c9ae2de7a19295810e993cf42849dea90fcd43f290f490c4263d41d8d1d4a84e32b00c5c433e9eeda05b103acb164fa53113a29eddcad68a36faca96fab1aacad650e929afb9c0c4f012db970ebb6811468b8de83b333a5880e2dcb545040c9f294f7e5e775cce7e7a3cb604fd821bbc4ee0844777406f61fff94ce421bb302162888c8e3e3dc633cd72c5e102b9c3ed0c5de371f9c7303db3570f5bb110cb1c0251377640e30309acd8800a2cae084a82133c08da7f2de39d10be7d86e68a28574871b511a921462441032858787185052f38b519aa2baea8225d0ef0aa5279f1a157d5154dfc948e840cc60531062f382d3c36b07e3045e3014c4e0b151614162da4ba5edaf3d9e8bd78c5501412beaac6488112c628c2af531083089f7d3ba9ddb734f3ed9d184bf8f6199af69a2d01e05b258613bebd852d59df3d1e23060fc458fd741a4b88e8bc0f88eed01d0650a180768587c31249c213d4490706a84edaaeb0cf640d1e5c39e1f0d458ad56271d1090ea58ebed2586c6417148e1491524271d46ab53fb90d3f544ae30e3f786838e299814519d70d0e1f2d999f9e73af411785427dd1526cdbf7e6a91a1043380564a76390b302ea4d851c268cc4249aae1062a724a31e4d4202986d08234958f0a88955fd764c8409595114fcaaa678b1ec5b1de2a1bedd9b99ec8c74d5eb54a7d567b7674d5f3eb3f62e8d50ebdb3a5d6791d26343aa0b493c656202d2324af92d5d91cc53101c9a6f5fe61a03f4dd25bdbead52f1f72f27951ee650296438fc172e8ea90c3a189723140bf38d5e3d0c3f3eb434e434ead7385d4939eba058a637db6ceafeb0e0a6c23d93a4771ac5f4f247348687226cde7a458c6f2819c5d37d341bb16109107caaf6b2498191755fddb58762049bc4ae2fc97d0bd15b1bc5dba702b6bb3fbe0a76e57587f3872baa604d91591be2bacc7d8005f866d31263d430a2498e0a050a89c937654a4fe748bf42aa3021452df2fd06dd35353c3c3e4d759c8148605ad7171498a21c1f0f5054dc783f3eb33d22546c7eb15d65708393b26724ab9a4653839bbd9fd7633daa8164411d4d3413244e1d303069de282f3eb3333ec6f635655cdf2f9d915d6338d09525b829cebb33fd167ca96deaf4809393b28884dcb1365072d0f9b7a0b9559f7e2978c5f576e79ce782fe8e7fab04ad4043955e5f3eb362d409c18e5e5f0ce4e1455fcbacbcb794a9c288bceeaf06c0f932db1ef6c15bfaa97b3b32bacebb63a3b90cf5767db9d65f29aecec8ece76fbb6c7446777b6a45106f2e1f08e64d3265999f555f270648a091172c68f1aab6011b2224dac667eefbdc7a9b7f3ebb6db15d6ad27e4e3620f6698961c39492498ae260a25dd0c0b2c3ab2abf9992da9d34c167ed9a583819c24128c7459bd22a048576e8822f5eb38440de61581efe2c7fcf8f10ce272c52b5ef1baae8bd3f606548f9c519423677c38cd84ac880f7e6ab8e29f5d01685758c79220e70b122591ddc3a6f6d40be29f2bf3050559d9924a612a6ca50d23e45c2bdb5d79418ac36d767dd8d48fe31ffe79417c6aae7bac23e48cf00989c6c7637434fb8f4be7dbb57b778c0a3990d37d9c4d2a84215daa90d3a30be474274fc876373728332bbb2a54a85055593921a223e4d4a087ceae579ea5413f2f25143dbfee52839035ede91581814fdf7bfa9e3a5b6cb1c5cc0eb70fb06adbadc5cd87aae1864ddb10e244cef7f37eb634239535396a3d6af189ec9d344664848c48daf8f990cc45927aa99d5f7f46a206f386f8242115c8f5456d2fcfd537e78ba93e3da040f2eb302818eb3ef8a99d9d46c70c49f6d6e3c7aec0ce4c243ba74f9cc0f9fde1152021e515f0aa45113993f4351f2314a95fd74830332e4d5863963469bb5d611d4691ad6d8b1a455239729d95fc135596a47a22c9afc33869c3b4a7f51953e4a1d8cdf839b1e8f91055bc907d10f45b2d3e822892653e82c0e1ec699bb325ed39a2c8ebfbf841c996b4c708201f41e06ce9c5471038ff16894eb14f5cfdfab40f4cc121d684ad9a4a955f572bbf3b13a27ebda758f98d57309493227e4223bf92034ab2422ace76dc43e46cc74ab6e3cbd5593d6e27d56754d7b6b3f43d0ee22095617f5a547eda3a8da4713a67923a07e7d93b47674bb393bc922d4dc9e4b99374922da933077150eff868cc425c6419c932ec2d50e4f3e5b21fdb313f7ea82d2d17a3e4e89bda1eea15d98e9fefa658861e363f365004c80c4130ff500f15947a45aefc3c23cf33c823380c8eb59614e9032850a0a0b0eaeeeeb576bbbb6177b7d3482abbfb54aa76565577ab7840e4091428b06c90b11732aa378f649625f8f1181a1d5ad339cd763fb4783f550b171e8ff5158d0c3d316ca947a750e9e9a1f353ea8f12d243ed1a0a347c1033434de45a215777639f578ed019e872e8d97b4ffaecd6a2389edf981df87518373ded3c74eebad1839c51e7e9b248c5e18117b9207f9f4b1b18d6248360520f7766cdc3284fe03c24fd447942899f0ac51f4671f2f373e6a1f7db170a9202e68cf7bbbb8bc6a3d1f1de7bb1d79f947257eebe87ed0df65e0d0d8ca1861ff98f0a27c376ec8ffbb15d0a4c481731640d3f376c69aaeaea07b37c2838c6720b712f6f9fbb97afabe5ef3d4649cb9fe534bc18e3736c751d5bdf8beb41b31d7b67e344ae33333333abcc38c277196bb2f97975987e3ddcb2b1b61ecf2d779bede11ba305b71e36dba16678ab7dd9a647e72246f73553470b5b9ada860e1daf2a33aaf8497a22083fe3fbe0a7bb530c3bd59dea54a73ac526766f772fb176eb93a5bc3a6fa125d5d3dbf4bb1b45e38a63bde110082fa046d2a9eed475a575875e5a525d32b45b6f24bf382cb32996d915c8795dc9ae24ebd96e2ec4f7f0df8e6c70e185d77d0353294ba58a3b3ba3ae2227e7fcf3c9394040bf3b7fe58a4af5522f3575d5556428b2bcdfee86452f30f71487aeebabc885e5d2c876e45b02dd66f987c9602fb678ee71e8eb56cf4ffed9e2070064fce41ff9cb5efce41f7f3daacc978a835e78ddefbdee0dc974ba899c97cfd5a33896899c57cf4585cc76da88a4ed2c18f8fa24f5825f48c6f5faa487347eb95963796733fce5a324e424bd6545e51502335f7f4b32ee654fbd3296b7fc48b77838c1470b8a241f3281640fb95b334c2791ae6b0b39694b21b71c664537a12744f402fb071af09ec4a677c22c7fc1b06ec6ca5b2ec306d6a44ab05cc7965435c694b72c9ab7d65a1c9f1f5eab6265d5bce558bc2c2a6fbd65693710502a5613b24ca315cab46ecbb2ac1717308f1e5dbf7b091227af0d6e1987324dcb4211d01f8012e41402ff05f6ebc505f6cb2fd7b7367dd2967a5508ec35babb6384ecf1da5ed8d75fd8f55755571130a4f07470a738983953e1cd65def89ba6d91ffc9ed96ebbe70761777f368aaaaaa30b8a0bf0dfbf6daaf0d6e7ee6e737f27f73b9a010c1776bd17f782ef716a59584368c5683e9acff2e8665e216b96b56f5f0e6e0839ab21b418428550d7b2a06575db4108a1c516b42c784d219f776a6857e4f3b62c6859b06ffc30626646ad2fb1206ceb8ab0ad2bc2e0c7ba42d615d9801db22e36baa1854108ad2b5e3064b171c10b862c51a689b4acbbfb82218b8dc62cc805a69a83c3bcfbba2ed1cdd511f67b8f61731c49d2334dd3d8c8b6df8ba427fd357729a76c849a9bb9864108c39c2fe7887968838f45aed9c0960028c8d49f03cd7e057a1b7af4cb01519f0af4563fbc50d7e8606167021ee99174ccd0c42023f2d99174b0c2b8a2b61ee3ce902f033598afc750e360b8005fc4c9a038d675446eaa955f8b23e9e86e68611042eb8a9615b564cd5c355fc3323b26020ea0853218daa03fecc85dd6057d6e37b32ba3a6c5e822924f7358ae560e0fa3e801ef31bf2ceb75477d3c9ecfb534078c37ac76d02f918ffdb6460001fef6eb290eb83a5c9816e22bd3342ddb8ba45d8c2d1289b0bf38ac64953ae92f0ae0e2417a39d62714b1b0886e206b2b910f3ec6c5083fbe1a2a8f870534c7ba15ad8201c52183968450bcac90461e40122fe842b5842ea0f8291d8b2e9a8484d005123a90a2575517385da462ba198fe102c94fa72922eb2e35b7b01d3bec56b7385e4eb9a94f5e9db7d4bb3cd4774f2f87fa7bc5a1ccbc7057e7b6bbbb2b8178aa3856b986afc507971edfdb9ccf46faa3ae515221c1d0d4d8f4f0cf5bd8d28d7fde03861864783e03901abef8e7426ec02185f352f8e72f87897ffe946c29f4cf9fce962213275bc2fcf9e351f5bc150fc0d81200b634e551794012b0f284173b04e1044ac0e2f4fc5dd992f6e09f2f4a892d05e09f6f6a4b9a3f5f236bdae73bc49644fe7c916c818417796f69851789442e6fb0c48bdc458403d48b1c664b0678916ba21b91f3913554274df34c74a36559b64591cf74f0d916627ce6305b8a9ff5f07ce621d14dc60425a85328e498e826849911fd12dd4416fe8a52c45f6e896e2e2df95b10bab625251eba0bcc22e8a1c3402d7a4a0b8062e5a1aae96df144cea97b4b915d933b7876178672c4f316362842d57451718329d4a427d1cdcb79d10b1169288af891153b6051250135904fbef0020b25dff3450869f4e1ba823d11a2043d4f921871000f489ee800e1801d524f665002d4932a523f4fa0a41c80ca7922e587d31356242ea20b0946ba4841f253ba88093421c6ba0d29a678118423a4704216320ab144b2ac208b25cf497f3928142a8829764ec0036043eaea150b31a8bc36c515d91053dca08b29be908213e365c1986ec60a357050c54fa7b172541f9de1a8f40cd7653d2c15d18800004000f314002028100e098522b1503c4fe5ed0714000f80984e6c5017cab324086218a410328600420c00048000c00ccdcc28082d636b65f9deedbd57949df6abd2e669f4d6fc3305bf2addea4b43cb9def4170a7fd56502dcfd0435c40c3ee223966a3be56faf2c2cf296aebd855eefccb9cfb8581d3bd14e8b5e56d2d1db7b39ca3d93a213709bacb5ecaca3629ede587eeddb6209bbb141a5013c4e59a8db1a6f82a92546ecc00a7fac64b8655cff8ffa5674785ee1fb1f7331aee93e2808d8738968c725d25aafc3ac3cbd6cd8d67ee5e4ff822c620e3d4bdf9e9ee94a4fbe40e4f3ae81e5c52d1cabf0182f746ac89a96c20f91fc05fede07379303921281829b312f12476f7c8f6d0b3759d9367b0a34c9600f3ba83a8d6e3acada0d4d3dfe60ae48fb158a4b19d06a3c94ba9505a1d4ae8af35a4da3d8c682cfeeb53da5433d6998304a18a5f11dc3e16f0c040b3ae21f78e72a022ceea207d9d0606287ab0c0adfd59d437a095a7901666bf01b2f4085a94918e691c7e412bd85af0d2b0c094e22f9958e7715d415b226c3857172006ae2d4629f391676605f5259d37c83714c7286bd324fc38a10b3c7875d78654d86cf292b62cb0888bf1b01ad514b8d5000b53f1ebf564de95c0006bcd9a3004c2f74bce5a2f18df3348083f7e18ae43108844303a7cbec94d30aba69a0859af89620b81adb7ffd14461a3196300dd137941684ff304dce8996130fdb805a1308f79e155dac436d86c79d25698425379a4dbeae8e250a37167ca4e3b7bb9740242907856931ad74c0f888856a9b24916541ab016e4ad04a424b7a5d68cb702fc6fdb391e8f3fb50eaf440585b14da5d3dc582e45e93a02eb0b6c0a378237a3fcee37af7ee021d9c1836df6ef08e60ca81390869b97a558e705de492ebea259d4adfb50b2b321e1d42222ebbc855a856508f88f9b48c98faf925e0c6daf3101c0ae03cf967fd849ab690225e0548dad435cfba280959d28c4c8c9e93363070eb69c804bac7d6da8744c054284daf9b9b7fab428f30290d56a332727b0015eb5a26d020df72e0d0c058e721ba90bd9177cf4f7270e3f946d7e973e2c86a24def7129eda49725ca5215adc2c03d23cdb01c514a2750e08a4c687a592b996016275e83454b2df232b8c1cf1ff6f2341ac5c370dea8277f5364c508292ca1a4c221ac015e90b32af0cd120e712659b75d293da407770a88f5e6e87b03470b3a77f83313dc9f92e20149e851e4d84b60722a01457c14ead2f9bd3fb3f55e7af60fb5556b3497044f5bda72dc946ccf4181b1c0c1bc6e9e8ae70a16d14aa8c4a20033944be4b100c64cad09bd5a768f88d0b19a27d82b575aae340f02ce3528b45541f0bda5f21538ce37dfab9cde897b591c4e4a035dcbe95203070ea79b769d1f132b68b2c473c4b842c58892878d9bec09ade2088b80bd2b143a41a568efc5f6cb6523c1b69b8536fd5954cb2ae566412f854b5b7875b06be16d6cbbb2054823b086db67413b8cb8dd35d0a890cbc245976eda2afeeee4b8993941a546a14d5553b2bb66450dcdbdb1bf14ace27f553cde422bc6fc1e859a4d7ef5678db0eb1e8c7cfbcb77e64343195e01980c391312a66f182d7365e422c19d5cb82f76cf7c9c7433e32c9fbfcf93e9d4be08c1f73c4cb34b0c5420a7ff89cf2ef2e693160d15987571ae068fb281e414c2128b459ab55f34ed0150d149c10dddacf868aec849596a4e709e96176a80b68f2cf0f4aebfbe38d8e963fd28eb94bc008151164decc5db5b3289309237b7646fc5eefc2a152bad2944336b5ff4bee614e93ab4a1a10cf72b4f676a73a63e79012b10e9e72d1e5d238b751ed2d0f9133d9ac3b670aff6a8a788d0784b782874701531e29e8cae834e7121d23fc9368404235c27d6e59f85dde1626994c294dc483922a6392fc8656d3ee550280ea84bcf6e27043b60b9db66629123ef175d9891ab8561da92943008b078f55e8c5dac6290b0ef45a8e48746bf17145e5a79e2ed0de6b12567667fae12c2f94afd2951cc8d3e1a297e197cbc07ee0f5936fe143a584975b9d5c35b4762f748cb4736b54b853188f7c15249d2ca4b26a43f2c695b565121596f080aaa25d596fdba60d59bfa67846e05c3ae643ba20e9a5769d0841679dc5fe821b8e2bb77aa31fda565bcc9b0770fbeee65ad28754df0bd1381738aff807efe9e7b273ef8de9f7c3fe6ad3f4ddf0fd601d7daf7a39edff115ed8db47e5fe1fd1875c9b61f51134876cbd21574fc21fe16f3dceaf7534e4cb9357decaf1ecd6307c0424eb81425a05c13170b40aa25a0bc670f14d90a05ed839877312bef5cadb75992e690941b9ee96be870ac99dedf60d4592a63c2efc4d297caec35f7f926e5e784e10396e3faa7b8fc306727c86a771b87e795768aadd05d0a26b9ca7663deb50069b72d5a6f1ef78a816b76619b82a5b67e98f2d31885ce538c26e14b1981d3d3f9a79be5c9435ea8f4f515202228c6b2c981375a40d85941516e3ee14713fa084b5a95fe56fcd911c4d6c52e845b5af075792598e95dc24cf9565ade18a60d9833f664f02f7a657077cfa3e12f15f53a63dc1026502fcbbb5a84dabe9dadc8188bf824e6bd8d91d25f0a909fe09c7db9c7bd19ee7e8c3175f350212fd08e195f0a6c9541f12c0661eea5551dfb5dcafd4ecad3e5379efff3d5f6caa5e5b27d9548875891bc52a6ca694c366a11caab7e5fb8025e7ee824145c6e35d2cc73096e11880e80f2212b261e2c0759d91a209b654c89fb478e2b93fd0c5b2c1abb093e83d92d39a6828bb243b57db980a4d6e66fa6e1d4a9a34b8e4ba9db89c699dd812570e8a91f48854e91fb670b64d8964ac8c9835867ab82ade6ca10511d888180a93654e77ab9b638791b1f79c676d9eb0c042ec65d568f91b7ab729022f99f5d252b2c98d03cbbdc319998f8f6fa2cbf208f3006a235573b5d944c926affd3e31c17ba797714c9fafad8dc2a9a1e28edde943c0182f385bcb02c27efcf510584ac1f510eae09852c6fc7fc0971cfebabfd50f385fa72cfe52081e320728f682699f88932cfb1b72ea9a2b2652a4284be50d263479e7fca3f9d812556f68bec0336f1968401851197146033e454acdce2dd1d8fa17cb77e75cccd4dde28c69174bc550e21a4e568fd64576bbcc8bfac8c780d7d79af70431155dc8163fc158e98345e38d9d05fcbeb3a2e84576370558b31064ad107fbf2909949d371bf4fc1b277d708fd850e40ef05f690fcd7589919423a101fe965ddaa90cba2b65899d9e7e6ffb3c99ad1bdb6a8182f44c840a0defedf3f98eda1ebd1e945ca95303fe9cadeef14f81be7168d9fa2ce5176de1391b42315091c28605b0003e86c43e4c2223e254db08f581132f9ffca84bc10864bdf667bed6c10c9517f8d441a12d60fb4a5f911dd889dcb5e239ff06d93a06599f2ad8cc00cb7327b63caad73005d0415d44037550a890d20d2808f8e62adc42a76d02b167d36e890ff30c6da8ffa5fc6292d3a1a0b360343825aa35d657b641e5ceeabeb3d7bb964515be0ea8518fa109afcd30836940075bd0fa71bffaad7cfb280be22ed8e8c2314b22ad018436ab1867042ecc835ae71a11d36b9f76d1cdd005f384754a9079a009ccfe3b5fc714bb64b658dc4215ceb05e598583d995add72f7b892215f70b117ccb40c3aa35cd0286e98d0f09e34ca42a52e9ec016d260d4f7cb4161f97b682f8e7eb08ac5446460e8cda2c0b487515cc6511226d676a3524a2b785dd3320840e121c59bae2f29f4b6a2df571701374cf1ab840bbdda64f4da172e1da645f272118f03cdb9314dd0d9860980a3279888e394df6e29072d1ea211759ab6853e046755ad961fa9f381cef5d5827ae84f8810565a36529e60582f42440ddee7e0d17a0a566022faae8e2cc7f01f32a9a3c277613f627a124f2c8311b48cf09274f2ff15894a396eb20c24cd543f9067715ea65b7eb24579a4931e083e8ea8a122070f57c0479ee537838ff2a027ca4b9ea7b651acdc983ab27aac47f9c376103a8755784f835a4ff5798f842ba059ad315342bcadbe3cbed77af7cbcf576aeded3370615a7fe445b7262b536c9365d46bc37b4a988342aed0cbfe9a92bfe990064ca7da006e927e4308a33bd485e8243d4a10b8d47d7a773d35bd750b1ac84ae520cba9168ec43cca5f128584de6101e4a72ad34ca0bc514f481195d965fb8bb82c358be31a19a74eabc882678640e384f7f8ccad5ab6b7c495d75fe4406ceaf4b3e63fc6f552b7873a39500069c4597684b80745bd57ce88402afc27e6c71a6ffc295d62b96aab337d250623e9daec6747a3b874d0a4a6ecf7c6cb82247fa74806be67f72dcc0450744dd301adaf5769e66b637d264d5e3dab310624817c23661f52ace288bf53cba1d71c70cfb68327fb3e5b96bc947d5c1a024e3babe5c70634d83fc1ebc6b062e015835e44243f9aeaca0f18949fa8729929c211aa4dd77ba6fef5e7e19f7234d379b3816e8fd27ef1fc89abfa29e1f2daa9c67ce4f227b0463b3fffd6369c2e743993bfb6e2cc8193ef2b0aaa5d4c6dd54ebeae8f3170e674a3c8ffffad79b11787eb2c723c9f846b82a922cfc88676d37da014413ff12193c5e6b6fd753cb529e7470ebf9cbe67b028ae33d52314c75dbe79c5ae2d2798de5e5f7bd7dbc67392a235e0e4b6ed60e0f634bbf9207b9ac18d3d85bd63e8d5555ebdaeb6cd93ca114e0c4ecfdb248c998919e2504a5f9c2439681e0d9b135e202494b382bd36ced7d969fcd3c225b9345a1ca825a50ef4a9978690de31d8e150364f66c9773faf6a8c0db442d9409a6b16507def6ed777f3d976dfe9be4b2085729c79726003a2bd239866d8173c86137b75d9dae520612ff924695ba31f390ed82fd2e389785a03c4d488d2f65cf97658672f291087d907540c70b2fc979227db772bac7b8d196370440c3951921535183144c4c36eb556eb91c519cdaf8e84ec795713f0b4a3d0e4be5e9ebec79c17f542d8a66234b84451d47fd027b40f13292431ed6c7c2924c0e6e0a2982b20ea7f6af0628635d6826cf7ba749609ba4d0e96235b71fefa4c2c168d6bc7cd03b97e151d6b788672ed239cb02802f2560a84940cc811b4a05b95d1663d38553d598ed70a254869d19c5eca0d52e6534078bcd6d42b00613cc9592ce9c8188322985137ea98a64b3a264bae2e291e2cbaf905a8578875d24c6a8ec22bbcad4add43059b51453517c5daeb3827f72756c915df2274511c818b2c798a7a5eaed70428a8e5e3596681644c7ce5b3b803d28c5bc72c2c049c6b15932d857cc96b86641968b11c92ebc6ed0d1c07becda4fc01bc66a493b9a20b46c3a71f7c6a3abfa214321d78c461aba60858054668f03336373458a865b8f804df505afe53474c340d8adae4c9cc617413a10d0ac46b53472b4e0e81afd1739a611f8a881955f2631c979282332ec93a51d976103d7da742e89e7f882304a5cd3e4176a807eab17a527a28bd6821112b80217d9aa796523c8b6553fdc4f47bf9896ac069415e8251b2c5f45980378ca0374c78537862f74709f6e35650eb7442324a19ea2fe0c0fa477a450b45038eb18cfb0a59884589f58929c738cb008dce9a0b151ebfc05b5d70d13a38541bd4339283108efe1fb3adb91216a394028b203dda64f074dc184c2aa587a22daf4e740b341deb3e1432599ae3200e96c3be40358822cc523e4e00cd5167f7e8e9430c3d01be53254b7a62927640b283c8eac709c219da51cd806ba79266129c0b42ed6736c85f5cdaa03651af2a902ffff684c6f280517a2881e1538d878eb837b8ca44ff14c1e5cf100d4a7720e900585560ff6c97dfe8915545f3cb106576156354ba8a1b2f1efc8495a3c59eacf36914915a3c3f5081fb2e4a80c90a6c76d8300201862b0a41960c5877e2ffb83438aa56e2cf8ccbd69a7a5abc890f0626220c6b4fa397e191f51c709e2f084a602913aae19c4ac7ef9a9f5bcb9166fa1a8f89abd59c8c7a52358b315f54f414d7e6d34575201bd1a4a640f9bed2d2b54d33ee1642ffe777d4d059400fa7f2b50acb5e732afa16948a2aee3231475d67a85d72a052f1a51563e4bb641d562bbdd5a636b3c3c750119c0b11dc5110fccbc43877f9d853b836d206b766d969cd8270d6368cf828b3c87f8004bc7cd674e8b739e8a5462a874e4b0ab0e6797e9b9638219c2423083e5111bd47c173fb266ec8a02ed32a18a26ffda3f317fa6cb505bc689c6d93fb7113827fbf0d20a1e5c46148aa6eacb96171981a42ffdf41daf951bca5a7305ec14d00595d8d5584c5f395b5bfddacfb55925f40a322c5d80412cf79b088305ae52e8e782e862a7d707d6832e41c6e8c984f804e88438641704812ece4be3532aed6cbebfe0b1367bd83be0ab5b1bad84abed07be2f85d6c05c5dafbcc3064052a46ddc964fb86aa298c197a1dc1e16eb63cbc9da1da5c0a3b2bb8f75f59894d2b00619330b649b94e9fa0e08bf437e43f48f14409f1152739e89b154dd70af1d08b2cd777208d0930b3f2bb3d45929455ebe5dd3f8cfbe9b99db3118349b7520173b0e0e51c5abd72b88eca207fcb941daf8b89f8521607730f49733704899c39a683082a8f972ae331a7ead77e6360d32a07c12435830f6d6c582b0826e64241a324413e7cd498b38dbefef8dac596719d445bf2a9996ab10cee8b384f882c156e59247f2f9efbc49330513e1df6b61fb20222da2841c020a8a60ac6649f5807b7890c53b09fdb368d606843598e62b57601bf91fec5c7f347509c44c0b898ab00a3241f249c4c4f54419c526aac30143896814c88f8ab94ee39952f73ca8ae235ac251f8d1760e97d40bc823565e189245e8731c99cf877bc0cdbe4e3f68270a4335f9363c81580bbf930cb7086f5dafc0cdaac8af3d233b99b2d1cd276e689b031ab92566a8587de6c426a7f9cd6513e18374be575c47598741d81452b10652562915256372d18cecfcdd067cd004bddccf1849b846bae9e6f4f55aaf6669626c4ef74cb23e028e767ac2474def7e2b1ffe30d13421fe0e2004e7fab82355c1cd6d73fd10dc7e932d3bef32b70f5bbea64bbb462cda93cae13c254331e9652b61d4b51420dcd1a3491c9634700403828645dc9eff36018ad4fec30193c1ac1fab12e03d85c46657fe11abab4b4b1a4f5201c3d9498052e5ae554d21854ea14161c5367303d03b29adfc37478577841ee51b90ec64703d1ec225e75100bb8cf8a7f2021086dd8912ba1350c9cc744857bfdfc09e7d4d624768d72eab65928c0436910a544e8bf8118d93616b03c80636190bef6998bf1d0abb9f1aa031a6e94a9b8a4126606f41148f31be3837d3efa207176aa6c63ef180fc1ec6e8973532ae7ede5201519e22beed58e055ad0fd207af04e37c0ed40a3ffd4f1b851c3a0823b62669335d8e9e9f162efd86111e994e6357db66c5f888297b354c3ec9a761258ed21bcc4f7d83a0a601f46f5d2314b44c6c261c798e802a9ccb0856655ea96616360a3d89ee057b9fcb0f0e48505e8ef0669e89eb143bd3266c6230cdc1a2fb724a7cc87d2d5edac572436c22ce6816dea436dfff3669e0558a90a0c14546754a72ffa3619f272bda7974c86316601a97080318793b5fae067fa452913b5486212f6b8d2ec53c885eeb505d1459929a9baebeb8185445e67aaf220ab15e8188643acc570e09205d2f1233ccb13b7ef94a55aaa226d5438a6339b2afb9e14d10b64a64e3b7b9630f757e6d854066282b25db01946593f16fe5b743764871c091a433296f706b44ab97a1a0b755ffc00a2af384e6440c2258d33f11885f442560a884647199ec34b0ee47e1ce7e41044488b414605ab685125a4f2da50a70e73b395eb767e6ecaa044486b3cd72be14d27de408990c99c53438ddedc623ba09698e7fabd7f0fab477b0f5d44aa7738c5ba021145cd0d99b9ca891ecf2e3abbde09f7315a2c0b3d51d103e69261285e7d391ace595a4dd130c264b0a608904f389e6c0787ae71332fd7c7fc5943ca2b98f861c467e7bc517871b9a42de1683978c90e602dbdacbb5b5ad02fa2df31c7c7a50f83a9f5566bf26687a1aa49d2fb50d593795935c9540f15cc103756dc1093e79ca5de159d5a226c50686a40a35e19731296a6be8c808bc447d20cc389ba245ace28e0948e60e3024d6ef858ed3d0a1ba18a5373b90583ef7a4738e512c7f64146cdee440810532bce069d63e317bcead1adae1ef912acc720abff667b1c8631e6d798eaa51c3883a78a61b5dae17248f2edde92c22c9eea7ec3bb0c3f8d9d9cced7890d6e8a706950891ddbdd09780f1fe8cefa540af291a646a46360f57906c9cde32311a83269b4106c64aa8b1ce350c2199fa0d353be3ba41e47ad173fa6a98dc765694939616ce56da7e3e3ee182ed3dcb9afed410f30d1426803e8a24d4cb0761b79bef18637982974e303aee6bf4a8f9805f1c9e606e7a723dcafa7d8b7be398f1548d90eb244bf379aa8bdcef802af2ce777d494deb2f1bf0860b6ffeec8e5374fcc7240a22d351a55ff3ea193fbb6dd2af0b91d842d5f4aa0dcd5904ad9e4ab89ae9d70e98896267b51f87779dec0e4dc51d8f893ff1b80dcbead8def971f1b193d55f514d1f5e54b680542648428bd06b47461c12063272b498a4919a8e5c90f8c051bd1055345dc164b97ea33715668f5dbfeff934ef2b4a62c44d6c60b497a614bcd6df20dcca1a23af93512707a81f7a550322ae8b734cc3585fa9185ee81a1e67281bd430c638f20b81624dff320dad5ae20a0b8651972ba263a6cb4f3581aec95c9c8af1159f3bc0c6b70c6bcc9c939b51800d1ab09f1ef524f320560e0f6503e645d855232c7fab30d873aed6e526a58d47797f85d5524134dc4ad2a32027e165c2dc3698e0b3d427e02492f774b569373fe0f2fe200d1727a908968cfa53d22e0f620fff46a14919bb391b594894ec6fe8ec0eae3a695b39661139f2eb1aa22bd8aef38fb16d401eea1149c5da2340e0d2ac67dbaca984230b173120be04adc26938e933b971be79746641bb1dd8481d6a221fd28c1e6b84c2325c7f9e2c5e30a80441614cc1b5a1d35536f283904d28c3ff33d3cfccc0bae738adb53817a0c203a938d03f45e95a9207b9b396d421a22763507c6bb070a8b051acb1072dbe6bebf31f7707ccd99fcb171124c640d3df9a11f3e08b28200521007224d300db92150d953e7e9679b187e41c24728b6c228e0f0faf4c3af0dc330481151bef0fb407edf6b557e1d5437f9df6e090cc8ec73196eaefcea2d25f3392c4d263c41fc4fc7ce0f2dffa706f0938085a11fa646c75854f072eed0c5281efcb94d4b29ff967c50ccbd44d14ba29bc8ae4bdf0609d2e2c364f7df162bdde8e408f279514830610c391528fc11061d6a3c8abd6a288d538a7d8b78495547fa452bfc27a17021d15947abe07079cd64e8716b3d90caf23629af0e23dcf3b0a21be900a3a15178be54d40e00a982e2f5dd7d70ec202f1e77044df64640f5a10a356f714b57b8e8cb2de1df0e82a21a79570dd3ac40942acb1593592ce23ccf1834c622b0c70366522ade85612e5be99efd0f4bbed686760b7fa8bb684e362836490a1eeb3297f94e74f47b07d7314543370129026bae7fa244d3c1c3fd1f185e9396382ce1b8bc1e6902bd7850178cf405d48ed50851a392faf618ae1d4538e4288a18828cd5816b32f23d33b86c5189d362ee726e9d465932ac72f22bb4c30898d3ae6c9d57d4c6ba46e4dc2cea145e129481390a0f50e1450784ed1064c5224a0cc3a6d55877022568dcf8b3f41c2dd76468a240556d68c2938240b801f3b2ce624591edcde940114838325b240032b73a0fdb1c0ef7ec7bb00f13d0c2459152801305eab725eccb3391e778c2d7a1eee9b161ae28443d1c6c7d4c13053bd9782fa3f2c01b91d042617aad81a1c6845f950073c714e2ebf7b645e1a90745a7c9abfa9ee4fcbbbd37b4f9072c8b8135ca27c170677d0cd8dcb096d4e4743cb023bdc2b7b1a3ab8052875043ddb08b25ea8b1a429bd012caf6f99fca7442eb60a9b0bfa4498c70ebf7c1df7bc3f674742d338021ff1c7d9182298d60c1da6bb2283709fc3b5332e89c521b8ed8a83301cccc670458e427c20a1532ebc1314b4001487bc4391c20dc04585c9f8ab90742f845cde27f0799bf0b446316fe2b27d29d85c081b410309675cebc61c6e651b8d11c73e8b4ca97435a51e5cc5f4515b6e331ded9b8b6a5e5fa960b7c02b968a83cee0bf33b0e78f3d39c72c10e20ddcabd758eb08f2a167c1de10f70289e26708fc257a90d6941435385f3e643c5a7890f7f27d0a0cb6738f3b80ddae380b53858b41e71e0451aa135d1a16cf26c2badcfef89c75adaa1c385f4db3acebf00476703e92cc2e15bf02dc18f1d4a97df4cce5c51bdaeb871b0f9b10a7e8842ba32e3cab45e71083ae88f2d2b4585423364ea0c0135d5ff6f120d1debff8966c1919c390e3922ca323f160e676fe9005db4c81bc81c1f094a22e9f04954ea7f44ff38c6b19b64f9199e082e84ae18a3c2e1f7c8ff873516d382b6dfd6a8aa07173bb7685664c308152e26b84a838d74c0b41582f2722dc1532e147feefe724baa04642b384ffef511ad1f9e3bd31987964148b6619647fe10a5cc2c33e469b79a55d5fb8d57cef34d3ba4445d701108d1c9977eaeadcf8f1165e111d1e441f77c38629596aaa97db17952e9af73ef49409bff0d588e97e4a3ecb229d7a3a951c00167226e64f1edd719cb21b3faab93b017f3c3297553ddf833c3b9db9ff32a0ab599a164fa74425b2dfcd3c07650a362df9c252be59bb6b582fd867cb68e53141e8b8c6e5e7955a8fe8039a1306bb5d1e8e82c82ff5717ed8ad65456ee26991310cc3459f44fcaa82d0e1dd4ed15e93f28553a474efe83e0eb5c6d800cbf0d27ad520b48926daa29f5c4a94a8fafe9238fac31bd05c6c3126eb4bd8fc761a712c754f27887f54a8f546edae7b99e85a9ee1f1278ca88fa576aeeac4cba101f3b8be68c43f374fee1957d2fbd946f9203334c1fe845a2dedf40ce077571e92c06a571e38cc9843a0e2d81dfb72e2affd13abc1adbe59da3f9f65b03f866b27c168aa045540c2a6fb00d0bf2e6e67872133d4ea5af7c206fdd3930398eb65b98a26c8878f856c1c4f9a4377767e32e665f99797a617784a8432351f2b053ce6aa1a1eab752dfc56b0fd413acf48efdf19549e80688cb2f55ab222273f7d85b3633d56e072160d5202df7348de13f5a7e485a9d4973e518d8f15fa0b090e214970e46c1669d1ec0fba48c9498e20728756bb4151df1044b7f9063c88113132ac016017c2825984297695db30fe422e0b4ecb784a0cf234dd530b385b3f889d4f03938db0b04641d45f746fddad7894156d03b949808f04a3ed0593584a94d004f1858aa9908c720060473d462841b7daacab876741eba3ae7952bda29b44bf987164e05508fe0f7e4a5c9fb0cbe11ad2c06d30892fb74ef0008341c1415bdfe2dfaa52c190a5217d9a3d0418521d5a02cc0878b7c3bbdd5d1a93bd0cca63ec4e196ec909bccca1a791c8437368dd0f26f8368be5164d9ffc495ccb4d3cbac040bba30486d8c4a415c1e7cd053e9688843f817393c1f2c2029029c7c9508d70f82c64e86b972262908ba30a040c3decef16a797d69a3fe89efbc06320e91bb9f6db3dd7defcb8902e029beeee9f081275ea82e88a2401e529a4cda78ce32965b3f3ba64da14655b6725f3e92dee39e171c9c05eee486a0b971b12dd408ec7efd6033f22d3bffe875c3eefe9f0d5b478fc1cc111a4397c7bd92c284d2ac44abe8d9a1cb0f3bfeab315976995c56d6a39f4fd806e068140884cdfde50501adf9d00dff533b14ba273da2b31fab317ac174def4dc57556cf7921caff733f080327ad36cacd5e1a068c0a8b48002a4b8e4debc8c58f7d24fc804aba91402f747211af62170cf8e5b7d8caa3edceec3e44124b0dfb0d0394331cba99ec344cf2e47ca3391ab5076af2ea320f765a4c04c56d56f00e58479441752e26dae2d37861716220f73026645dab2c68570a039540bd7ac8360a091f99273d9346e0ceee49e731015c6bc381496bd830714dac4d1b4253aa533577d134f49cd231fa522704b5011d06e71713d2fde8f307b4e077a94103ca230806347c640444860630b18f44f034bd65186290e9352b0a157a8e2450fd575ff48104f8a30975e0445b6b68c68eb08dcb8b19300c3a01a79650469f29b8653fbea0c954e3d591d15712ae1a015688710e7120359e094cf18d4bc5299840bf6a58a80717daa19a1944eb4bc923329d92550bc79e5802cb4d1d300ca9abe8ec99868dabfb9ed150d93e2b5345696be4de50052a35b3e2396efefc12c50799e1298c29a7e7d67a9df51179db2f19a926854bf7c42fec93a275dbd80edf4b8acb0cd35603e1fd4b540346a1a81d363aa8df80b2d283e64018efc08f3d3af5dd11355426d014a2ac9f4ea4c54ca8c440adf0578fab9fabf955ca16bd054e7de6bfce1b29e6b21ed290300114bd0c2404966914d696ac5f238389af9e7a22ec20d341518a063dbb2703c786d0d8e46bbdd21a349be27bfde0f31ea77d8e9f97acc4f7e35485e285cafa8a825e1d4befe43959054b4f0b462525bfadb667e675accf11fb3151d753b729ef48b40f256323600bcf53d4f4d0ac28689cbfa8205cf97524f3fb1f4fdfcb1f12e1badc02d796c3645771699551260e5d173fe241f7a572b0035339e13942bee08c0ee07cf1fde6b4066cf471268dc90d1d3236ea709a19382dbecbbd5bb731781b6c6873e99f0735bcb61a911b475a06e325d0845552411a8eb89cb499f49a48baae83bb471fa617977c9f40daf71238bf1abb41ebc015b3fa0f818e6203c1f2aacd9427d3ab207fd56f5038b858429f0ab556c94035c9488284d08a78fb150910729f3711aa360adb29db85eaefe8c596a61020eccc7ff17cadd054e621a87afbad11f87709c77472240e3176ce1579dbd9920883dbde10b70f8d180205dc10dec95414c4fc7340d52d8945eeea3ed08806e5441e2a0ca6546e6cccc104432153d67792498a678ab0d511b325050d691e767a16642d243fe54bdbf6585e14cdb29b571820b8b705ddc7a3e1de5ae16a98c9020fff0386582e70393233e5bdea631a28d47c7190611bb11e0e634c651e1078a4760c624babfe3a6b394b923b8060d9a7e479d47f88d8c754411f2efced384c34bd13dde13493b74926bfa69f22e156406159fb36c6e1bb668202ca62f772f2d077868d44aee23bd4a1a2498af8b38874523367d957bed2e9ceec8c28e14bd43bebeecfc207c0c1d2ca5b4effc7421e890ede6ca22cddf3683cc68e64a1b2dd696357cb5379c2dc56e5bb658a5ed9dcb9f0fdc5896a704e0a3a16a5ddb29e8922ba0ecc217481d312bd686440f69740a342140ef1e3827dc490f5a0075c431619c2c81b21b3e68f13372bbf9eb3c83b1b0f529455a0e8afcebf3665cd2c7bcc882ef7aa02bd26d97fdca88ef089b9a30c5a7ba9179e8af2b4d58f5075df584d10d0c9722b83984cdb5996dd00a231c130f1614b044b9d38ec58ede7d993e507f0deda011a9d49943f81cffba678f403078470089e669631b65ab790202e7d616030d00400e48387a479fe0c270b1bf3e245af889c7a5f464c36efe63beb85c354e329786a095541c3a87407e82bded3ff8f5545d5b15fd8199fc9942b7e3ff704bb60ea3fb5012027ebee2dc645e16017de79dde8d2fdc3451d0c4963a0242043b161b479cdc4e9c9c69b815a220abc9133a74ad47077486e240b26fd4ef5ea014ae8200d33d10a5aea61bbd5df2943640cd8be40e13c0617d309771b8ac56a5fc40d4d2b92ae4dd2bf6f4a0912a761daba652bed351c7f7fb77d9015cfc0d11ff16c6e7d56e994b9d3e9b9a535397520b7b7eab3536b8ede81af676206228703101126ca3856f6d15d37a5cdc8c60778a16ef25489646f0b9cfc01adc5e590edca0bd94b65e8193873f502fc8ace70d48dc73c48dc356bf05801b1ac67ee81775cb9c6d405490dba3dced9b8a3392e0994332648f7f8c76830ccb6089dd890192c23655badc4ba3ee73e1ed4138a03da94fde87c24721fbc46edcf42f087d9f57403818c5016844ac6f3af66455b24cdcd8b7d9fa8d211ab6e78ac914cb249e91087133a0d9d0ea77a3da7d507a1112531e33337c34d2b0da4134feab903e33d7c536b43b1ec6d3750512b7a85832641aeed96d511df3a30dd4652ff20deec72bdf1cf8e8ba7838add156d5303ca1470ace055c263ef6ae300b1385e8fb9cf1c310e33ba941b1f8ff86f1aecce5be806185c73b52316315d3cde00fd9909649848bf3b2b11234bed850b286776e0a608a2b0b198f40320c8b14c7707675bb6bc8fddf39153d024120afdbe88164384576c705d2a1efe50609b7214b2684e8d22129c547daced52ee9d83bb5172698233b91c0215990880a3fbb4ec4a45c205a347c3b5d29ca45ac69ce7805270e3e689adcf9e96ad325f00aa90869e41804fb05873f1cc2aeb0f0df693001ed075465fcf042e2afee73f2bc133be8bd2c63533f1f31018870e66b17dd45beda74b0ad8419caee28399c7c88eedfbfaf01e3dd37a1f513867f75b9b54edf52c36980214206d8f01a87f60524ff51c012c2882c1f5625a9bfaddd4cdd2be07dfd7f55cbc22608205be56b434cfd26330ae385283d5d1f10be545778184c74a77d035211dcb0b42ed8f444c8442fbf332b9e5c1134bd773c105ccff556b52268fdef9afc654933abbaadac760434eee14e4030d909c1d91a330c5136afdf420faa09db4fdd2d77ffe89fbffd5bc87dba1752fb82eb61c17adddac016b2ea3fdf6a99ad25fd81d302b472d200acd436875cc3596603bcaab41a07c1c2b374241b32f37827cdf8bdfbf14cb336935437ab08e718872fb036ea0d913fc32d3d9d6e56661a539d4daa8e1ad4ea7c95c032391f5a4158dc32a59f5d2bf0fd88c58ade5826db1dd8135094468e6f1ac36c08d3ed9ce2c958e6ac81f1fd3e2296eb1d9fc882ea6e1f6ad0b128c11fbe9299730ad198a31e395d43adf92e324d5cf4fd141b16e697c14c43fbf6d22be6349836612e770ee0f70756f9092707c3a5b4274027289ca82951b560946ae6e80b3ecde60b194f5c2ff292b1d0bd986c0ffd96e5350597a2c40be8f24020549ad8705b2c0460a1c533d512c3138a4f846473f93c888708d591d14d94cb94750190ecc3f17aad80a424075ca435888e14d2b60ad8491135eba76b1e7daa6ec87b8f19e597b8b1f78719444723759f2a608cf3ec59b8b7584653e3311fced03fc61805884b3d0606a618383d5145e9a30c085d9d482baffc3476131f933b63a1b88f8f7104667d2b28457c42fdc34ff23e23e36dbf1103deaa1111b72e6832a3461ce17cd020d64809b526ead509f9588addb2b8ffe9eb51bf8b0786f6e0a6da650f6960b129f001a69bd499538ee0ebed6cb585d9eb1d56ad194736f3e21389089bfe72b2b1f31d37541ec2bbded7452fc083413631def304422655986ecac19555c224b1b1b7c0722ad379d7e7e15a8d916676e70ccb41c78c22b6c69065e78be41f532bcf7b204f8e9802a70930cd24576be5c0dc89e5c23d55b141318b71d4eb9ce369c8fffe5ec01826c2904ffc53e8d46a471c800274a29149b6086fa8d8c1a0c397ed685282843fc4a35f491f70a9dffe2c4f8edaaa808d02d984c90c1dadc3aff9ebced30772c285393329ca4cb79a295ba6b1c4834dc2ba628f981f712acfd98d20dbfa1e97c5001995d001d8a840a60fb06f3d402b26309d51b538253fcf5f1ef25949c90890b847992d9aceed4d1522807f5dd539d902af9d13c1d4103cf72d45059d9af2a6a90139860d3e736c52c542303d7cefbc66797066a6a4532a2c812155619df5633875c325efe4a557772f023bb92ea72c4a44b12c1934a8c6e1af196ffc9d7a434f1457494e8a567fa012b7a592a9809af5dd51ea307495be4031196b6afbf47106e5b9b3073e2b4ccbea232a913d08382d63a0362f03c0307e581c927d8594d228c6b0a2748c5260c0cbd535685d3ac304a2cef59b8c0a12a7fd77be35276d30e11a0ffbc1f3d09aecd8d29f4f7a01cd0eacc2fb0c52fc250283f3e877bca7ac813560f84e2789df495dfff0e330cf9dc66431d3a1f9f3cae6091e8810224e08c3bcdc1278ff40f72904165d901bd470ab01347e797fe20b810d3aa208a426d4c0fd1a61c169bea1e10ae4465894bfe5274d4a858a170e572c9637688ab5adb641b96120d2616815f567631ae4971c8bef7ac1378651a227506047e9af2f32c1c48910f8a258e2ebbcd2058a9655bd56fac6381469715a67f8459c501379bb47d888ff8453b5ed1f76d7cc5adc030b1e81876806d4115af28210580ea51069906dbf3e40cec3925e0cf4afc5f76d88eaa3e2503468b46986aee7105029e98a02532fbd086819921c438d2db4bb193a5b054d91256336484a65c048584caee22f833e1421cce20b0e13dcf1f16927625c9fbd1cdf6bd5db47bbaff3b3c9989cec607ec3fa049e5e2c4c84a875e287f87b62843c37555294dfee16c9da0457d36f3b7a48d12d765620bc2462060efd479e5525616c990e54e3da3406dd3e0f7afa872ecc4d4f50ff09f798148ef4f5ce2d9dae0ac96520f091b5d5a3204c0502e14ac617c91c51027be55d2b96a1077739b8ef88b16848aeaef2ddae67058bf45f053f0138da7bc5c0b98a244d740f49c13f927675f5bf3bde3fe7ce502bda68096fe7e96f8b3b3be09bd30f7c9f4ea1f538dc3cd8bf2bc3536ff9d172ec4df0d0f796bf92c62ce3de1d395b397d623a5f2c6e07e9d55d8f73a1a8a021f4f7e7c098b7d7b5b69eb7944ff7248467918702efe0a4efe8a460b60eadd5dbc8a262c8f959a8460dcab2520a450b36818e1cca75890a177a64c1b86f276c137c533515076c411c6a1d11f7f0c049351a45be1857034b35b2b3978a44907485f9a4c1bd1837fc74f0774ce4c085c1162df02451b2483a9b3394d249c5c63b75e7258d02618484ad5673600a1f0a0c60d616e120d325bc599101138b4eec64804d33e1126029114a17a810ce98e0f34c07917c0521496419de8687fe8c886ab734ed040502c960ddb27285380c04607c03ecdc9413c2ba40955e58aae80547cc382b869d23f15ab07b8b29983ff8819616eaeff5ab8168bcef231435a772402240812153bc21769d1854d935a55014914119f74367aba18ee68cda88718f9ec49f74bc08be6ed85badf19948da9e891c1cc4412aa29a2f1b951a1c3ba42e702eaec1c855504b29fe874295afdb38342fae937404f58d3ba38fc3500b628fcefaeb44511390a0ae32e2283ee95a5c7a853ab759fb0f8c5c8ba8a7047c9f08311930f0c1e1c46d049bdf04f737161e1da288bb4def1f03684f963d0d5aafd790f674a72e4a94dd6adac625e67779defd5e828bd4e2cbeae9712d9b78214ad953c10f7b77bb21acbd400498ab6af7adefc7cca990aed5e9129a1c21518df1df3d2c262580d1e575bb37ccf354b8d104923ea88be44fecab0282e13d2858682124594ee5371ffe10ae4fc21c0805ad8329118354769b9710967315daef3c217cf2fb0328301cea49a352eb66c64a6503d3881993b42a9b62c8f5701bbf235e0053310ab64f38b507e41871f6089f4d558a58279e1a89baa6bec99223d982fefdac35d0ea42080d2b4714bd201b837220c4b819557953f4f7683a2db7e035771f05bbdd94fc2162dc3c330394fc75538275d3f9a658cfb99c9a4661e7e5024501616654de947a2d0617549085d1851bec328396f55c126a3b0fe6fd502e555d7e2805a62a51643e0d627eb47c3565142c1bf01424219279a0bcf6e7ecd9ffec13808edd86931c2f09e8f428e7988b0c2d7cd4c7a6d24204f675f723fd37fe723502d8ba0d2c09512c8d1f5f57314e41e7da7c4d9b6c24ed9d8bd0ea95002396fd0bcdf9cea01789f9a6f8d0b78da3b4eff744b2a6e10aa21bf8457a883863fdf1d65d5a1667a7aff59fe0e7a1488890740f797a9213e402b47711f95a82eaf7a5e89c0fbc42fa68c73cb83a285c181ac9ff3e3a086b0a8928dfe9e9f26aea0a4592aa33fbe835cddc47be8f2bd8a490ff650fd45d83d2405fd71c8a24bb56151c2c97837d6e6efb72f54c910d33d59650245566241a3f4b8272ba897949ee67c0af1390d3b47f4c9d5e3e86cdfe138a64cbe830e0bcbc0625e48f204292c6729bc1ffbf2384c37d8c16fbf0b336b30ecc78c23facd5560b2dbb610ff06362078d700ee66cf3013321d385a5254aff75b38f6ec958c43a5e2ff6039b67e1e6649b1e818060dae458b7fea82b1ac0898a289db506b2a4f66fea9be7e6c1af95e164dedde469578b6728ff369265a3e07d60b0d36af569fdbb9b0754796a793814618304d567fdf4dda3ba20162c4774769fcbe92495f029601d33350c9fa8f2d6ae92654d331b456e4a2818b30d62530a30fb5449bc13495612477091fbb9558b2ac1c5488fb4da526853e1a4a9baae968e4bf07809533d0beaefe5008246b4ae649d6e3f72400219605d5199f743a3a9983011ca6a1c4804127fbdd2596c981f3c2b43cdea466f66497f981888a497f827f02be17c0169da9613f23b524aedcb06c5c1921136276f6f6c1186196b567a929eab674adf6795bfc692a5e3b665a2da03df9ccb894f4f0b3bd6ffb639d70274bbad3d2177517ca0b2714a046e7e49ed118c869f152cd2baae5f692dfba7a07e80b8cae6da0c5dd8541d104a56ae90a72207f5145719c88cdd6e6337e4b8edb39cf10b0a01dc858e4de50a5455669447d96765ba47982330d834a1809d3a61ef7f1490c84f8ee55d4af9599d53b2180467e4a289a9acf550e497a47e71ea3141672e1a3ff3401841f4bdc1bbc62e3405a4666affd2c805dee24a1d5e4d5a7fdfa666867f3ceebfe78ce1a926447d15de689dc7c4fd614660dffa5ac982db37428de95af6c4317a7eea3c3d89179759a0814e19fa3e9d8de1cdf41a43e162c80712b5e47a4dec3a2b96aec3a45d17166ea24242249b48ab0904b145a71f39ba14b6b8fc2fdc66b045c407bec3af451ba77b0d520ce43261b95b34f42f413f4658f6f95fad04e71647e5017a4e08dd501849cd69cc961e242a6d496e48bb4561030c9e0e76d20d835626a3de74f5f9f26b9cddec9af5892612625189fbd21b7d9a48a961c26a7e9420c2e5b289c66f2bf2080db0c4282589ff17bc4ea612a2c3a52da8396787d71a0062c6c54186d199f235d98a96a317636cfdd31cdc6d51645a743b7e0509f587d828eceb349591951e049d077cf0ccebb31b0c3bbbb0091c049cf06bb5a881d4c68e1b7481b3aec93b2ba08d2b0c96da13cebc5a6849a83f8ba7b61d820b69f391481c24fa58192b8dc73b9caa715731037d913226f09242ff7a357e75e5696447590a2e191c1b51a08ee15b4e48a18d4138630765a7da5613bd8b7e4aeb38e91f225970ab5a7f004cd588842cd2ae191bd303f5fdef385feccd8ee713b43dc68434448e234eb9c3193e63efdc77af2c07151d26d0fcc102b3c15c40e85c5fc939bad9d617cd1f671793ffd8a0f3bc70cc2083c3775a2dbf6ef3cd92397319aa263101c0a5c582c0402b19710556302945fe2dcb910edb4eee09d387cb3acffa21045c9c6f136f33702adc147422d59049bb094fc3271b5699305af2e8d27ee5dd521e2dada916a607f237a2574bb404c4b29be8c88a157d96533b5e32610d61980f1c2c4839ff82f047544b4f98a5a144cf6d2eb8ce8e1843b112de12dfb6571ae1fe0e42a624ac51491a3dcc68a105f059575242e6166f0c018d91a9c88ea2d7b5522439cfd7a21429107b5d1989a10b72a5e0aafe364eb2d689cab1b690dd724bcec804d187859e977002e18975fb3d13a4be88dc0f818f0c21014af9ab66ccedb29740b6d47233f3419e008c577586f8313a38ad770bb684b9beb6f5f5779198be549d72ed3759d1944bf16993caf70ad22f119df3393b90210174ca727cd8a052791e78c66765b9bff7ce70ed10b19bb45198b62d10dbc0b69730cebc8656ac4cba319d4d9af85ac80ac83456c395ce0a582b70e49a5296b2b2d49177912a21c834ec703c81b17b70610c3848c83dfe3d81193f3b7e35086a4ae0d6f5f3086210a6c4ac70d946c8646f7855ebe1f02f272d2921934addb97ca854db09ecb607c9650dc615a49165e9357984dde4436ff96600c887212d342e55f5232c61aaaf43125a3a9a9cfb52d062340cc9baad7f3664b867acd1e891f203a3520a91ce7f5371eb89728e71c2977e243b4a011e4bdeeef627898adf186728da2b1f9be9938354500c84a7c6232e9e7b4df368a6f3f6779248b03baa8194fe49715a17b5c3ab797eaaf03ead0a92da8381c279bae8acbba02be800e81abb1c586845a1c3cfe0513a688ee8b774e95dc7988b53f97a8360a2394b28c8997faaef979b97a3c9719f57b6dc0917518aa57220aabb8e3a1ed5708f09a4df5341e7e79b703d595d81db8e5abcdd869962cf5e9b2b4e7b077db67e4f1efcf5ce82599d0a40a0b311873c72a2853f6707f1f20be872eedbddcd2e22d8c1e9bf8dcd79254948993dfeae8058849517459c1da16d846623548bf97d5d696af8bdc0b291f487a70434f6d94dbf9a5d0c13127f71ef07577026a1e0119d1605446abffcc53a045b49c837c08349187a6b22f667e7f34e2efacaab56aeb3d57708656497bb49e238539278857620522920674b5315c1ee9fe35b6879547d484a22b2969d22aa5e5cb5765e726052f0f945783381245c4a5cfd05bf39b7587755e548670439d29e1e7d3bc1647c4992f0b8cf5218f247bd8b5f5fad8fe2580b9c27e23629e35235c46541a6421a531ffb12088af0087401ab708b7b3ffc4ee229bc33261808e9da6a600aecc5eb3451192705776407fe9daa5b488c841b0b92dc369e798ee9751dffc1753a1d169b80e4b49d1b6111ace0d20e6bb0dc3fb24a09a99de86db468779e460347adfd04204b30e6f78010c2fdd7d1563b42ea3f315474f807b1b2ee89424c1c7cb8a1cbffabe83d46488175e944218a04d099db51709a7adc7f0b6eab5ead2eef51f6a30ffd0aa1f90712053be93a848d5a60177f2099bb96365086b0eb023cb6f324afd931a1d24d5b843fa0ae177fc286af452d8f916d3b9aa24ae51b0ebc99405d8d6cc9214bd954db30ae65bd86c2fbf407e661fe9507302b4ea5c5ff6d3f3ae801b92e257505558325d06ab3949db258a5a054c9520d22b22b5e0a5da479d5d94499e1e7f32a07912e0f2e1e73cdc0d94782202efa0bdf60721cc17d7dcc6683233d2746d3873ecc3c986f1e6b8301dd6287dfbcc905b04e4e0d29cf5c963014c5fdc8bcc2937af95bb7a7b7f262a284c0d59c0cfc2c88d23661c542482f68e7d723bf8cbf41555bbd2fb269ad7d0d17df58630cb03a6a7e0b0b6fb2ec935ef3f409e3d2e7b4b7042709d12381fd2109c0bf7364c9e9f797cff9353257a73b8f1c9e3f2d6e7e13cfa7a8f36d205c01a5d99c852b1c57565f64fe590bc5a3160d90c8141bc5cca32b3482231c4878a7b9de71ae7857765ff551401f81cb5be6469de481593fa519b301b9a6b2ee0a50ae58748dd4b3bbf09315ccd8df881322ed05988da3f6ec4929687428aabb260537e869466ded336e61a0be87d6c34b071372f5f069517af468e805a47f38f48144a0f2499545ad8f19e36684d9b400826ccb158a6eb4c2be6c4c9eabd0937ce73f99baa2128b034d394e69244d64637e1f5efcf3be515c606acb6fedd79d8b2531d236a1cb9a83b01521233b523f3fb5a56dc66bd40a3cdd3a9b247f28c42b31c164a04232c811a8c95ef38674dba740026a2f3c7d4da4c21240514718aa73bb088f9cb7826a7a4dbe72cbe49ea9846181f112c61de114868c50c70b1a56b68f103d18955c85a32a28f0eb9ed80472647cc4f25de499d61b9a5fb12083504a71d4542806cf2a7fd6735f45094de6b44cebee1231d764a09697aaff0d8b259ecdc9b4575009826269ed69939b0354ae14aca08c535cbd4dfe08b9230044a8d4a6366cac13723ce91a5cf50b8ac3274ee31dd16d5c0930cbf495a094814ce91ac4e2b19b2bc2620d3b0037ba989915d089339fd0fed473c95511610a1a7c976eb883a152c8f667e3603153e9c5357a4a4de1e8818fb1507dc76960baa5370c21719ddcd770707c3a7958f2b1f3e298691bf676c7a0061c4992adf77fe28d53064cd0c3888a858481a87d89ea4edd8c36a640ef87c372a52e9e853c1f59259087e7a3baace3dfd6cd0c1f081f6e8e1adb3bdbfffde6ae2a0d4b8aecbc8ae6fc9fe83a304b655ef8bbaaeb4b1ece6491c44fdfc9733c08d740a01075882d1eaa5aeabc05aa6577aef0116eca34b3e1ced5e662d0b79ffb9deb5d83973255e976ffb2a81befb51a8475b5b0edd5149c51fb2a7ee063e7ed1178947a3f9729675fa0aab071014201239db158fe056bb3e34ccd5af9e9ec81a6920b240a2c63c7ec1b9cf5615282ec6fb5eb6c6b40831f2e4990e897fef3d1d0a07a739ad07464efc6fa3f8ca9a5375c4daea4b1ad758c8d45a882753944d0c893e0caa55fe3a00ff2f763076c08243108b9b6f1f0e41620309525cf43953fbe056263df1fcf11bd06ffc824388ec584bd49414eea8ca4aaa699d18e82ffd5215f4c55b0b9a212eb2c93d71880ed5447c90061851f46d0aeb55a1ec4dc0720b92f91e8fcf731c1c415fbb96919f5d99c906233723d1173efc9a346e0f11975956bf2387933fbf732abe0d3a095e1191bbc939380e3c384a3733f5481faccc8a81e0133f356317a0cf0cd20c15dfd25cc993b96a942a7ce90e338aa51f7c5bd280f2b3c982dc5258b37ca7ee23be4302c2b9b90576f4f495b46a5aaabe688e79ce70dc2468ba64901985589fc3422843bd7c4f0b78b56113a8eed389485d605e3df107aeb77dc42cbab641ea66b460b12c2946e5d5ba9af5e51e130908efc8ebebc776378405c33247c30285e605a66da7854834311be1d0b508f21db9766b0dbc8b92342075e0390d75964c8ee2cf38e19b0f96ebff928c10af5b7c358acb18cd0cf65c2f07aa2e77d56a9b6f71ecfad343463e875651ec9bbefc86c1ee59e6941a2292098c854ba2cc6a0cdebc80e01a462dd412fd977743d556ea4226a7c4416a45809c0fad55ea9fa38f944cb2d52832d0f7243bb2b523ec38891a14cb5a1392044d71e859e50383cd850979c35155c7ce01ced8dec8615fcf20767a8b8346de9dbe978e0cc63051b6be72c89a488025c6442552df2c20db1518be4279548f319bc178f591c800988c493fade7abc8b3953216dd12d58d4b5cc1369400a60651586beeec192ba9c95e5ac2b86b9315a3f4bc588f0aae42fcc5dbb8c20d505471b0e861be1b9fd33fbc5848f6d1d2e8c4f38f96b7e597ef9b601cbffe809631c1cc3f686a83cbe7d15a7af982bded1e9342958e56d8b42021f02895d52ba86317928e01fdcae84110c785604f011e0d3fdabf4dbf7c6220634f7e7a5d4e507d79414326da7567a7e246b28c4997b65a6254b0b2608cc1c5915e99e2a3972031254a8b673e8a12972bc15d6fe3ef4f2ed929f16286f06976ae3d03a20c10d821b398deee66fa16d838dab9e582529668cde72b13a7be3b594cefb47a2632c7505d32776aa78d84ccadb9d5d090314bae44bc1c10f0eca9d2dac77f08712a49dd2383e1ca4c7eafa354846101fb876e6068f00190d39878dddce6959e455830e05fcac1be5599d3c3a5a4dda91dec37beefc6a7462975c0cf302dd5141e2fb5017a54118c152eb822484230880344bac4d1ce6ad5121ee0d9c5f1146f159a0cc433a24ed478b4554f1d9efbb122bfc03059b03b87cb815c89293e1063fb21ab3c83b49c643409094be68e084d4d8a2cc58ed2a0fca6af9421d16b103c892dd43a41d33dd18d68831975f369e766186a2ced63a7dcdbcf47100df1f98ed0140d946b28ed3654cf3b1cdba4f0e07e2932b6b10c9ef2b8fb3c6d01b0f840d2715d90008f9c0f30fab068409312a8578d2062b1e933702bc085ddee30bba042d93e9a95e6f320b365ce451723580874eeb31bfb9def014787e96ac2120c730ec95f13b8f63bb9af2dccdc21938bc1b0e24dacdc7ce30b3ca688665fc1b68f3f3af7377bd5a86611a073010588a4ab9d23afa199b66f7e0a85f333028749775deda278d84246b681bbf9f59af6c93c552e8f666653129c781f34efa0b8515c8b0cb5b05a43a1039217fbc75d3ceda6b19121382256f58fd88f4a67e2fdb2dc10a6dfa1cb976f313f79dc80c66fb672b89137b9bac937bedac45444d8330ba4e9b59569aef83df01cf65d84520262a7bcbb2802a2f634a928c2f7d634fa80069a5768aa0d54b0691941d76a616f26535448ab11a45b49959602ccaed9806170a7af57cf649df5bbe5cf67c905d89084e48e31aa189af0462027079727b8de519b4403363d0299b84e95a9cebf06a23cc3821d8b71222e05cc168564e3c0278f2097fab095d7a2ded0e57ddbc69ca5029229f305c3e74c6c986fb855682464b46264b9d6e29c1f62d6e0b4f1334c8b7c1fa125321eb22bf01a601b664846e41da6a2f0bd7045dc99ab37439113f103464dfed1ccbd0b21c12008664b45d9d3c2741c45544e3709e59714f92b4e64cc723a9c42fec282a30e10333c0517435c94c98e2e991a107d0e10bd49f482618105eb3707615be5168b5e768f26da75af8b8edca3f731b39b7b7d95d705216576caa88a842fbd952c3c050c36ac3cfe1fea4fee1e0c2dad868896e8017e730474689782461ffeea45350aa85a296bed8c754c1f33bcae140e9e401793854a3f3272df4c38468026398ed83ab43253857a5f908aa42fe699da16074643c59ac9abd645f6ce56ffd387ce9425bbdd0904eb964535ef0264baa96a761127d9661fa9656b01dcedca5403684017c3cea522b9d0d7d2c1c5ce6705b3a229ea397ebbb6e739db9a633bba95245b066d97817abb59f1a2d0ae3660624a7546bdfdc595f569eff56a9092f91fb0174d3668c82cd6b7bd000b459b6e85525a13051fe79d9600a65076e8e6e8401a09f84d98a892cea509dbcc49dff007165c56a9a3dec4a836ae8cfe3a79d75cb9ea42c86cdbc65a02395f28d9c40d4af37c7fb230f89c4c7214e0ca64ef3dc8a1d018585af8cd37f1b3d02133d6fe80bcec3dd2e46bae80d079e19905d57755c19ef48fa631cd0ca9dff2ce59c3fbd106371b739ae23c11d2e4b5050df3aa57bc3ab110091e8f197d7ea7f982d7b6de1431ba17c016eb5c90c6488ef4af55d1c8e90b036442567f88cc22f09456b5392c1a01d7906f9c1ba1c60d56b02c32604b171d78d18a66c427a762bf343848bb470418517214a4955021b896f5c2491aa420e10ddd79d73504d43dc7f3d3a7cad4ee8800b79799c5087280eaf581739782871d9bd011e1bb99e680c12fc8ce5ec622805e369b70f9d3fbde89356f20134208bcc53f5685defc85562ccc6ef8e563512e2ef3903f69b351b27917cd40cb4755cc025b63e8ce8a119934ddb1a05f892de3104bc0eea57a79a1d11fd8793d3402519bcd547ac86d5d08844c8e0e06ed90712219973299ec61efbaf47fa228b9c3ac73ef0bdf392e8af9da1670deba8422424c79a1d409a36a7b5631d6ef8ea610f8aba85ef148444033a63aa785b4094aa4d0739ee113297af9f2e38a86863c0cda75e0178488e1f0af10ad4547106f833c1a240e531c6992493711981d1e786d5bb9f038b3ecc0152d0ada8e31e942f0cf0f417d8b27dbbb0bf8645bf6da146f6de5bee2d534a32054e078807ad07718a24a8ac4e35d890ad5c2724f16d609dd60909e8434a2ac2a836451c164631aabb4afadbe7234eb348ae7bd187c34518c544b606abf2a35fc832a8f20bb9882abf9083a85272922a9f3f10f83ccc0ba0e7e76f06ee41bf357e20f0f98e430f0a7d91089e91118741c94c8441f99dc738f2b767148392816022aa7c54957cc3a07c94a6dafc460b74aa7cb95ba37ddc9af91b72010db787046ddaeee9913df263116bda45011424a821e2a0ca88a4ca288320629129a3922a5feb9edb1a8ebb491fd07d7ff4f33131a01f81bc18d087a32a3f21ce3ffe9a27ebf4d644450b448a68f71702912306e5279f3f0fd8bebf180643dc4fcea344a0dc73fbf984b6aded8d4031557eb42f8c55fbeedbd35a7eac1f2fd6ee38d73caff2734413f6f9781269665f3857850a848cb0a68e6643bc21fa5603ce9f8badaab2732754c3f6c5438119ff971656c365c35b0cfa8750347ec8ad17f8b7cf33910b28260cd66d07872b843455fe9c916767fca59cdba679231fcc495af94b7630420d294fab9670fb589123682806b3f9412c0aaaf1bbade91ac3007c386afcc21b996a0a6e65c29943fb3db0f2639135813df3636b961475d8247caa8c32a832161183a8f243435019b8d41f8cf6fbe30330fdec829c1ab20b722ae8e9b603560ff2baf6a674f9fdf24340d0fe8ffb42fa759f03b804b37dac9c17b37924d233287f7a320ccafdd495228723d5bfe652f693cae0fd588382200fc8034a1918940c4a1918949fede0035cc23e199647062eedcc9947904740df7de8b7080d252a74048d01ddfd843c1e1bacc973a4aa4ae984d74da7ca28a5942fa5941fca9b2a41f2773048bebbfc8c8aadd9ce932829a87f2851b2c89a24a84a9632a892ca223a88aacadc89e0541c4911aab81a341c3915479286a7e169c8849a4d6d7742e3735c435f42b71a3acd872a7c0e92cc8a67fa99b009a45101ccf132a4981ac61583bf42634d31f44c89bf68258b2d816a7f64b2355ef9b78f44060d8217b5579f2bdb75615b118cdd22b268408eab8c0a30079762ed975fdc00cf740c0cf6c715c715a80d1ac6d59cab5e31d831b256d90e58f1f402bf7f51090de36aa5f9dc69a96a485b3b2f43f384e30f05424b58c2129670920f033d223f77118b7e6ddac3aff77500f300b4a6ee57f7a37b94deead89f8f4d4d7482b3fbca259a67accd2c622ca574d17159b9b06abbecd47ed9acad5e6c466bacea8b2455d6d025874b61a693e2521872d9e18cb87811a45d9ee096d09943d0d02515b2d953d7900d162c2d2b389d26aecf95e9c453a6d3335750fed025f5a2e3927299c19a3e5b13ab73fc7c2e337091a287bfd0c58957fc42171bb88484d4eed4ea4883862cadda5cceea68cd25a569fe2e2997255c5a2e52d8246d5c923869856c5c9460d97481225ff318b2d1417129e47242414244a2c70fead91a1d6ea74d2e35d81997d40a60d0680156f13da8cde9b8e8a036a753b52f7411c300994bca25555d74a48bc7e5845e6c382170f2f7e448688c359e78f4d4170f0fcb8d1323aa2f9620a20746aaa8ee921edcd425402a3192d455854184a6ae2a0c226a2894a186daff2055fad88786ecc343d334eeb70f79b12e97247dfae204a5bfbfb487fc1008d36f54b9ef2ab77db6d14de46d0d79b1723faa1d9bfc4443bfcf6d89d2d73e3d486063638343a59f8b72a0b16a8f711efd0d7994d2fdf0a0f43f3c44cf7527f2b40f79f497f364e5360ff414f4a19fcf711f1e73034dd03743df323843212f9ca18f1f1e30a1ef0559e9d3177da2a7def460e8c74a7ff340de11960f867eda0707b41379b1863c10cc173d17f234fa212f9c55f3b8e9710d41ac212814480d41ffa3abf42797b20f3df6ee516f2bfd3a06f7073424d598df3a6ec411a92110aea1e7bef3f8c3a37bfac138602bfd16b6d20f46f4337c38ac501817e8cfa73f5ff4dbdf50b5077921900afa9017c61a7a11f538ee42dee7f703fa1d1cf26ea820ef47573f5fb7432c00f79a177ae57e47efe0ce5b06b9c4a5ed4715c364b8cfb7ecb5e7626758c79f1cfa257efc44209eb29d6c277382ff841344a230db7122186c9c8ddb20ff1c08069bbfb05f47e4d73c3d13b6cbb5353c432e97941b2eadc904d71456b6d357786c5040bcb21d2e85345371290c654f644a42998bcf2082f6ef8d1cd6134470739b676bb647acacd5d1b3679abd6c75f4cbdadf5a98325653e1d2aa9abc6a7f2b48ed7eb984a8a1df04f9a8b44852639835948e52c39652b7869f63cf80f9a30bee4c83a086ea150424a89e469cbb433972e478d3cb3e1864ecdb47f7f7c3c020f7ca0ff77dac5781656d05b8b41f6ff615e8676f1f1568ec5b81a6b9bbbb979b9b8bc0cdf7628d3dc48f5e883d7ffc48db87747eb83df6336c7f44fb65d01ffb648f8debf61d41fd88a9e6c9f04c3ffdeccb413bd68de351bc05315cf2f78f1ec9091a7f670776638c31464dd334ede3b66d9ab67da1f6db73da16e316372dc6eeee66c36d62c01c342008e658ef4953d0102435751ecedd7df2cc66cf4cd3cc6e681b224733469565685450d190864605368d4ebd83d97bd00634fef66c17b732fde9a1eb0a67ed0af8d8a131f49cbd72b20158f46a7564c1711b43c590494854aa0b798486239984447121b9905cb04ae53a3af283e5e44c29041af64ddf4821700ee7f0f0e8f4f4c4ba1f1e5208349c73466c092751343e179242689c1f29c4a3518cf9b42071e0e2fb73214927b63e4e984bd88f5623d60e68e8a11f68385a71464509834ea98a41974568485574a5622f7b79590f832f5dab1515c0388423d60e96445eaf9ef1cf5ed844d13073c2a0b7aa3f334143ce49e5580c66ad393d6331a8d5112b7a3047b6cfbe9fe315c81d46ac51cbc553dddbd3688b1117cec3c7e8a667fc376f84d333feed654fd09bea2db7994374ad51fc50a03fcba4a021246874ee15b5a021a77a557f4ed5a6f8fedc6a6bacd81af9fe1cab4d194b455ded3ed0ad612aa4293466b4e219ffb0eba0b0ffece828c603a9e8a8a77a387ad5d18a1f7baa6a13f78d563de3bff117cef9a9ea8e56a31597bafa8f98702973c2a0ff68c5259652bd358252fd69e675adf6f76cca4b1dad98069406a7c147abeca533472b3984eeac0eff5e3955f58cbf0a86071a8e56aaea3285ea3fbfea8ff99c9476c6eaee248a0aa1ecde491550f9dcca8deca0b927c776577bcc0b7f681af63b18c4a2a41418e1688bea591db1aa87590dbb56f59741e8ce5f1d4e228d9888c0a023d668151242e387a3558ccdcb116e6578fba6713aa753ade9a23ca41768b3af54746dcfb4a128d2cde38039383145f30279de456a5116cd0add28d2f7cac3a0f167dfc470858c5b9cc3fbc23887a75392c73dea489ceec198c5a7e8c93032543c454f03f56a75c48f9f29dc9ed4d8ddf83a4fa8bad08b869edaf155f525fc890862d1d0534e7c8b3579103b6383357d56d948650fe2c90a5654a691a2ba13957142ae861e44e5946421c2ac8b98d0fd1cb0233484869efa14834b30c8aed053ae837dee2bef62a4781c53a833e1526a629f7da951ed2f85fdb29c547657e5f86d751e34cc27ed5cf4e2ca911bd41024af13d742ca70e2e6c479c499e2879e1327af48b9784e1cd652a20aeac4655634c941eac4cd0e4915d5090686ee82d545ead4dff60cef6ecb840723784ed159090e043de4f3f7f01efeb1d741e10db5de10e305a4440182390a81c6df6e66fe3c0f7dca60e9c18af7ee6eaf826e1363bc76570cd4b6d862b2e5fcdb98d4613f67ce811052aff8aafdfa54fefab53ae27f5c743f73a5b8fd95e911cfc48f1dafe87e48a30f1b7f77f6ddab48bf581d18f6cc7b52c5c822846efc361603c1d1f097237128dc091a2f3f822371278ec491b81387c2a1702338147e0437428f6710a4a19191891d819e9352feb4c0a31a468f8961fe16ba475c1dee2308d5a10559f9b985afc33e2d6012071ae3078715cacff1d323bca1720b73a706e297677012c37c7db35d2cfbf57ec497bbbf96caf65cd97ef38064803a6b1e10d600ed5cf5030c46d7646cc8038ee0a288114e48c13172460d49468048c2430b0b29372083085a182948b5681acc476ed0284910018a22a87001146490b164082dac9e358e14016709393c9f23a891460f4aacaef062cd18b9b377ef2ac075a8cc472a1307c2122492ec08c1c50f7c3885b47a193524557715aa3f0bfbae0a42aafa18dc035d056c39d4ca37e03adb1c0c82ddbd9fcc19743f16a19d15bab1633066d9fa8f2ec676d13041b1ba2a284e94a0a0251c9228ba1f2877033194b80225896d099d755550600006e82ed3dd8d49c6dabbddd77d334c66187bbb77776b2ef213dabb7dbbbdbfe69f53bab3bb3befee3a80c1edeef66ac60283fbfe3d0036237591492c9398ecc0c8366dfaa6cd4c82de9ad7d33377776d76d632759bbb3decb21dd0d8eedd340c7eddeab2d47da95bb7bdbbbd63c750a563984f20d28acc867ae06062f56a7f0422ab7f63b51febc0ee0b6f89c9b9bb32cedd53ba6f5d7c1efeed855d8e0ecbd4e8d576c340dd07f4e99a6cd1644ad904c3b0d9750c8934b5265846837ed1b61a390d8b71f3884da009f60102b732bd18a8fb80bc4f17b78e93a151818666c76705065798b3f36454da8a152bd77ddd397afb807187f4316c1f17be7e66d731249226b56e99ecf3de88411aa578f708d56943b3cf0b73a34c29fb30c70bf73e3a6edbb6b176766adce99dc6be27f7edead0b6afe58e0e346218b631c88c38dd73400448a264309f004149e5cf3e3cd801537ea0c2065d98a1841064643a90d1fb832a95dfe58d4f0d55a8417238124bee2c3f9052390a1de808edf40f825404d4ee700895269018c2c80e7690a2e5c0437ce22ac9684b683a9666858a6b45f9618e48ab6d5b556eae403d51014ae7090f3eb06085cd939c223a4f90ecc0f344072c60010bd693253db0b06a3d0163080b57f08c48314e439140e30228d8e0a25059a4864f73a8fb5043fa6408d1451445703950aeae2a0a2332608e05a11451fd73d0a89ad054553eb7597f86715056e0d2e142a7a7e0cc05bd779d33758f4d7e5083575371c39c04029fe72fec7efb1d1c72fc5ca47486b0fbcf03400f24d68e7a2d6ca5229187c34a1843a5dfc61ef69b0744d68e7bc871011f512565d4ea9021dd1e866e1d318a921894efa61018431f13e1fe96674206a2caaf4d3030f4873ef4d5d05f0db1c9132b38a71a6cd0ae589d5abe061b04803af5dbe029609d90803ef4379c628b077202e487bcf782760ffaf0fbd3dc43837f18c5608be435fcba3504dbcb8c446a83eba4cf0d086d7c406d80426d84a83b2f284d4045524a2912b14829e5e7b2b308896e741b2296918b74ef916ddc70e9641271b1688312915948263c99cba6c66d8f4d12a9bb6edf19cb284d3d12a160983b2834435db7dd32e7de55c452d7bd06ef952a6361d5f86956f554aac5634bd753e3a7d79b2c657169964e1ea1a1a75aba1bdc6198a7a212687c1a2ead4135ee462793a06b42473f3cbca77a8ac90b3387af41678e6cd114dccac43d2d6bceb852ca133fb149a9b2039c2a4930a9c2826d08f4061bdc16f453846e09fa7175395013ac688252277ea02c47a6a80104d7841a41362be8bcc201817e8e90a2120423a83ce96840b5ba2a2a2c2aabcd414ca3950628f2c4293cdc2d85c1293da572bb18acbfed22b99a0aead1e3d8c23a328362efd664317236bcf56c3dcdfb21d76d7563f3398d0620b3f2eaf0df7af3e2ea701bb4afffb1e79a79d1797548d91f258f64d181462c2e836273cb6f908a7302c90bc9e6e405831ad247e3d5821b2f22dccb7075552f1c6af83458175cdccf0e0d339cfd0ca7258c94990e97648d9f25a152e367ae296c8a3ae8644f1c414a8d384c6acc76b2568d99941a33cc71b81466a91a9758824b292e7d4604971a50e36f9819a9518bc8f5d01f19eb5b2bed990e6a9443e8aaa6a0bec8d9781127b038468e31f627c61837c6b8317631eec6e82d7f268a8631c6b831c68d5df7dbc7996270b65a5df7b3d47e61b644a99bddea3e9014900be4ea960bca05c5b2d32d908b65876587bb61d9e16ee604750be4ead6092c8e070e4710ba1d9dcb692928ce0897e272fa432e277e5c0e779303044c8d91ce9ee1010d297fc82636e156266471f5c7974268f3703882d010843de8c5257feca3c16bf652f7433fd010f46271c260a6245ba91894456896b1b0585a42a8fc908515060da0575440accc2344e58f12f4f2403d2dc8cab2434316160b8bc5093f77d3261818643cc90f06fb3dc9bfe134f903bd4054768a5c4025e901bd7468d8b579482e8c859a9be728af7bbc569bba795a41b884d52b6ec325e998ac2f4aad78a8d9d444a957b8a48016c216a0c7ca96e28298dbb4e9e5dd83752b0bdb25b1efea0c06a1923122b8950907a0aa1345f7b9dedd0f0fee254a0ae9fe70df71d1658c516e1e7be86e1f7737e9adec6295284a6de8f6994acaed777b6a43a7b6815cd486621c113464517d3cdf1466827e3d29d84814e55ea050a1fbd26270beb8a80df5ba363493281a825e5b0a3da480e25256670a3aa419d479449da1c8458b35a130c1a062d4f9b99851e75324a8f6da872eab14502eab36bdb4e277a379337e8eecfc97d60b14e65635baaca2cb2a8a6afcccc966adcd5c5ce2e11247172cd6f4f17c3c5dd4f9dd8747e46eb2cc49d6ca5c2caaef0a0974ea16a9d01f19ab6e2fbdaf87c1ed4bc1667e7f8ed09e998fbd68f8f5d4f9f57c575c557e8b4ecb8ecb6b6b3e55be0b152ec597efd263820d97b84a16848ea8724d2fad9d99bf55f9a19cad69a952baac3220ac2905d44b943a9f6940c38fa7cee73e3ca41c82862caa4c85fd0e8e91e2e3014d90abce9797168baa4e14747a26260a1a825e7208ba7d8882eb01f223151a825e753e8867fbf920295ce27efe4d9dd5850983d365c5e07cce65e5b28a51a5806ad3fc4c55e773a3e0c2ea44c1d533f3b91005579de14bab4e4ffb39b5cf65d533f3773013347459d59902aace5f99f9cd300095093b241a3f9ec1ed007c3882891d7c38627573043a240a4e0067a02abbbbbbd0022268d8a4a6a096b811fc86bb0e48aabbbbeb547e9f441852f93b229091020ff632786a0065082ba801a84330c308d59dc7cd68a2fafb6393827248e2eeb2554694d5a28c15f06027b278a9fe534af5efa49851fd476428a95e45f5ef501297b2536ff0f0493bf72bd57f05167c6c4d1c637e5284a8fccb599994d290133d7447a44057f0c0e17cc668ad601b9160a004064c3a1a6507cd088a1ba308452612af6d0c368a64a79c961645080fd84906aa1925081da4119e2cca0b70fc14831d2c4a133ef4c9884a4651826224561e85c90aa2112d235c340a182ba045a0ab9d90a069b046a418248071a305ac699a1290a05a420150578584233624d0afab42020e5d1114852859a0718510683831058d263628d01842070d225ea08142c32656faca41f51f915c63bc9a6883f322167185739eca79cedd91ce8644c77a9a39a9045303cbae90f2921f30327d051ffaa5d484a0fe3c23436d3051051355b4c4b216ab99c3404115c6903d665bac4809eacfb9f698a77df6690147c5b22deaf68d7da19cd5b1fd0e8e4a6818caa9dbbf6cbb3ab60fc71ad435ec632827fb5235867270546eb706009f167054f9196b6b70a050e3ab474c9538a4fc160555f370d9c708b2ef30a8c36033883f9859454ca8efb80e83432808b60acc5fa602839d6519cd0a0c760ed7f12498159406a755307fbec320d8998eef80edd9ccb22ccbb22ccbbe797e649e49af9b314250703a587bc6f5cabdca7e829cf94f4f1ec13e62ae6a2e0b6e7269270fed9f1cf7ebc9385c01c098c2e6b432b46350ded01f124575319136ae2538c73506c7725159ee8c333824705cc45c08755601650681a0ab8b00850a0485ea2b7524111a663a9de93433c85f7ab1eed6ce9230c8d9ce97e9d87412380e5bc235d86e73941826e796dc0c7a058dfb72bb0a1658a85458f0d0d151a9b0e09193d3d383050f89050f4f4f8f0c5288142299482162d475ae8a97119514e3bbbb7377777777777777e3ee2e1645e4b88b496f1548ac847dd84b190b1043f815931826a5dcd14cb16f7f5daa7f40640cb0f5300cc3b22cc3b2176cc48f51e60e63969344cabef9fd0b4efc52d973e86729a5bc8185c79f9f87fbef588d0e054bc80a88ccb59fa34c2c40c791ef8ca495997ff908cd0e1e7d414be1f7b373fc28831c4e2a6b386ba8fd936292277d712981b62cc1a62029e8483ffde17144caff7c44a2cf8efe78f4f9e3c2925141df0c9fdfca61deaef102326ce2a785971a5a15415922d1872da97056d18bbe503ead21a7fef87833c8076d3e50d94f9f6b0f069e894fe9e7230bca2da9e50803833e188c0f039b5cd53ec2ae87d7cf176231a8ea1094eafea13f0241aca31779b12e60c70e061b068e85a585f3b4efeeb9b259e0a64d9a181514e2662751b4432d18bc0714a725d526ed5b765a9ee012fdf8a2e77ab6a767e2733da15568257a6269e6a439b6a60654f42115795b475eac212fcc6a185ac996548b0d6afc168f85db96d4d6446075445761134217c060e4384f8b2fb8920313506dd23e827842df12bf45676b441fbf250997d803551c415c350cad4451f4d1296848b917799d14b4496dda9e5d155a513a8a1347a4bd48f4346dda5ef4fce1218a128011bdf6379c3e1f0f067f2d0cad4435706abc542767d11701ed145ac91818d0cfcb1ef9312fa09f97aeda3cd789212f6cd9094db889009f7c9c41439a05ec885b03ca959bcfcd19b5f821169736e4a49b78826a26d8f44cc76d5ac76d5a134c580cc6ef3e86536a1db769b1326150c56054c26094407f2c80bd7f3030780d379c385742e587cb0aad56314150aee18656ad659960c360dc534baa67b029d4556de2542aff9e36715fcb36a746694f8def49e8729cc76d907c6770da6c271fa33168d8926a49c56fd189dfb2137fe48a2daa1a5b5835b6b46a6c71d5d8f2aa717453e308a7c6514e8da3948eaac68def3df6249a423ff217d296d48bcb6f887c03673355e4efaeaf4be97dc2cb95d2bb73e066ccb26fc433912373153e67fc1d1c3f18893d0c5a3cc1c8ed51b0c90f06d3b4978f022472d31e0548fc8361d3bea658f6edd819feafb1ffbc0080c5e47f955f38c9c0418b092a86d8220cd629ec6f051a156822e6030d571524feb6699f3f6367429ef004a5377e41f4b75946cfbfc30797b2978f012e69cf39a952864b6f7ce11c7d21583fdff2859fe80b7da0ef03ae942a3fb9bdbfa6691fb5f5b2acab59f6eb81a0bb24b097aa27581df2c32ec116a004ab00c6a1caf7a87911882a3f437d48b03ae4c700fb92a0fefdafd337603d69c0ad4c88e5548f71524a22fd8320cd8721415731b4699b19b0edcbe289616b3609f049faaa4df2a3e9197fb0baec9156d6245bb2676be2937aa043240ed53ff324c027295b6d9a33942dd9fa0af68c6f5f38b3cf77a05c1c41d7d57a7457e88e6601eddfd511ce1906db1443cff8fb8cda871d1157adf9c7d0fd3d131fcb9156b8425ea2b6b814469c1a597c6235e2f354afaeaa474955f524a929d455ad31c58b9b7a80ba4b9c40b1024465716955568870bbe273a1b89f175066b1222a24692217868440e4d7907598071afe18d58ec11394508ea99d89aff3da51b14d188fa05837ade83a22040de3111abc1e91efde479c48049be4c74ebc58234ecc89cc129541bf79ec1114d5a656c59b56b5c9553164d6ab6e0c9bc5ca82702b137239d59fc311847aa68a9fca7b40c34cc53553b589dffbfd331697b8ba2771ec31ec69dad48fed601904cb321583ce35cc5435478b1f357bcd0b47557b6ece656d5773f9e01536bea6c519490f626470dccf13bed8d172a9a8fe1f1efed1dfe54e517d77f7c3e75d9a287949fddec49c118726599665bda33ad6ddfbb5bf8db14977b7dc6119b127f1b868e8d260cb01ea2f1fcba2a1a1915ee7c2d759dd5d62f1fca34ae7189ffb23c52fe8fc90c61fa31abf968bc707377f7345d3b5e8ccb8657bd3eeb946539a9de1a795431a1c5728cc0b0098a1bf86fdc1b850637f6095c1a2f41046116affee60eee2d758c272811a62a8a0ca89a9340065842d7218020f6c10441a2cc3ab891554809103173f9c18093ba0e1a460430919b061847413d83042c3c146aad9b861c3a6864f837519343402f814d64409f02f03e600737cc454703a43892ca0c829220934706050fd0bb5ef074d7577770fd5c066eb41159bc55440c40728dbcfa76ddabe1a8eaa1399d4884d75ed833231c93455a860340ca9428732525beca0015661a3fae7a081a9abaaf2a462755555baa8e1d7986950b65d57b86b5440fc69f7eeb8efe4264955ca5fae7bd3324cb6e4a4dc304d868830e766da625b47ea999e19ed9996717560ed5d1759d367cf34fd74bba63967d6ea1916cfd04b2c4b552ceb342bebbb4eb14681ca17d1bb2fc277777729dddddddddda574777797ceedee218c57299d3ee1296d328f4bbba091fbebe813e734e94ba0f1fd5986d0f8f21329c17560440d0ceabbd9bb6733c3aea0f1b11019beebed3de787ee3eb3afdddbbde59ae6cc24a645675c72df959815347ee7ee180bbb62bb3f56b02d9ecca8a46d5546452b158d8800000000c314002028140e0a8622a140280dd5791f14800c7b94427c521b8aa35190c3300c4206114388010400000c01a1a1a1e10401e983ce4a612bb7abf4b571a5eadbcbe7015879ffe8231666ae0086786053be3f38aab5257370cec2c695011eadb50640a97db3fab45c2045cf27117d8e43aaebf24938006dad624fb9fae99f6da2cf83e8583bc05634c1bc8adffd1fd4778e22de9b3d992d02631d5616977f525a6edab730a66003e5237e1d81414fc48e7e9d0e18728e5c718bc5edaa06bb7e23043d7bae8773e749086211280532662ecba64e1fb9a9319e8016e651f525ef0e62ecff85ad35a7eb5d14cedcdd668db44d44352b463136bce7dd7b641c5bca20481af63947911301f3e79c234e011a746a08ca48b171d2a0bab992366c55ed6151514ccc429fa8d3d99a3aa2dd4d1a0747d6b38790970ed1400adafd438c3e8e7fbbe1a172cb5aa5d3262b86bcc46a8bd548b5c037f1f04808867c92ff89fc5fd9d0ddf096d2ced9c33b6f8f038c5f5592ab69bae8881d1a416198029dc8672db87053c7c3aa30f90337e990caa2482ae7c32956d0f88ecd735a439e8f2b9c2853763b2d864d7b69ae726e2402b0fe968c5648e0378c863c37cda40c4fdb06e31a2e922da6186fbe3c0b05fd7282bf0f32e519c9bb1e4db1c9eb1a4b2cd74c0e8816673def172df64e8828505cab8fb6f9d44bd584221146948c9e64ae6f1e20e933b58825ab0939498fdbc91a7597a068b97fdc9137d6d2a3cfc79b1338f8fadb2d1b714a1309ad6cb366423df74f024df94aa5f2dbc450b1059f734962909002663d22399265f405177194a46f26b1347e7d189b543619d296f1693a600fd703092ad935dc1610e0519230a94dd80b54117bafb884a0420588997905b7a7fb71025c688bf6158ce3bed5899b8847f67f9f3b6591f2e4d66d58c30a7e0f47fc3a8b0b7f9d21ef3710ddd035999d290a6019dbf12d61c2c09446315b51571778d51b72f3336acc41445ff004ce046a23dd83f00c25f0402ba6bbacd4db6311109d94b302d00437f22dbe635a07a25a9f4d72e622cc4e640148ba9c39d0477cdb3f467090a260dd3b8fe4f73995f8181da62b96c74c913a048dda5d6ebdb1a412e2196ba7996b592f24045ae40deb859ed3a108a884e0868fe80881e46c32ecb16e576cb6a2d57f827af8454260f120ba075f2130b713e97c9588be24c0f74820043265611c30e8ce6ef221f67171a861c667d66db6a671571a4d7c8976d8cef2ba3619d248d6148b64116c7573e572ff81323fcbbbe9e969ae8620c0b14ec4cefdddb7ce8cb5fc61681c1a6df5e1a94c0a3bc7da83422ab25e5d4ebeb1e463703971bbefd202455f9d2decd6983216f82311fb0c1662e62c3a08167790500e344e8cdfcdcfb01629719df04811d8de3f1f2f42f5ae089ea5b6c8e93722d424740a23a92f85a34088b310a560ea1aed6ab8627945099d3969c70d2113c2400d1ce03418302a5ff7a094a7973ec890874050d80ca3bfaf0de7e6e5232610143cebfcd4df05c26fc7d2e9be5db5a7486629f9a529161f67427adcbd0d4947e1cbd83bf3414482bd562c2614d2eb7c119b51a94380502ab7987829d7d08afa3f3069745c96c3e60a239d63bb3fd1a011e684e4c99a524749c56aa5ebf023a7a0084b2d24b7c26886d675afe3c36bfd4b515591be86d319b00d254d3312568041da42d69f4e598238f5eabb8e224c90f574e961952e927a42f37d0331e22943bf67634915179befb1bd85e237c937face06f4314109d1e51931fff3cc015af25794d3f368af97addfa3d2c0729f90fae10f62cc22c342999243d1f20c43468bafd77d67850c39155ab685374f54042211e42f255e6c36f1fb3e919420d3c79f49f181ecfa0f9716be10d541736f5e950d8030bf7bf92ecde92e77b184c718450f22329482cefc344d20fff924ae289e0ce046e2478c8f6aa454c86b09e733011fc0d506464d04ab04a7e03a2a9c02406ce431186d3a655539904e30ae73cdee548781ce5aab0c0d87fdefa532610c067ff76d37f2bbe0fd8231e014dfd152580a4e1d1c84698eb3cf613cb5ea78e32c4cf3b101649096efd3439a946e7841cce35451f012d13f5c433c80956fcc4de55653dc3cee9cf84118cb42af4c9e48fcdca52891331ed8a91baf49353457f119380c467c13f27a974195a2ec5a8b190ba26ebe7264ad7a1016c04f66bf1200b3b6ed7e38484ad1f16fd8b72c546c025170668a1f531ba6a05397cc157d4ddad01d7e8cf4068d47617adad5fe3eb552fc22e71398cb824a888ce8c24e691244efd2e8d51f0709af78f9e04e17fb5fac8e78dfc85a1bb9718cd96b50fa76e2dcb65482af0d771d7dbf2a6ee11e100e45c937658339c834cec723b2da0f29e2d807a4e11c3bf5fac0dbdbb6bdb9d47a2376d6c9329c9839443c69529e2a3102193e2191a43413599b842bf1ea8f225cd201ccf1c6f005cfdbee4f91e106560225b6ad437135e1f7cd075c4ab8721ed112fb6b7b1ff1e8d22ba7a5a7b8e65935b0ea13b71f5d17d4618600ecdde294a9ef2432c068ff6d21304ef9fde2dd20e039cd0adfa7649afb03e4c9f6b8fb6d53a1586490d2ed7c4746615ef8eee200e532dda1ecb58ad0544c911fa46aa7c4a191fe72a3b5c9b093c7ca18221e4c39b4adc7f4a6f448af8921f0624ef2f037e98beef6edb94eb1fb66017d54610aa9c32c4bf4e05d1dcaa339f8dcd8ee645b5605a150c2c5bfae162064591ce2d5f57fdc288848b25f8ec3552cbf08b4d98f0e6f120fad2509110f1153070769e6617409fef9868b8b538a953f6b9a029e61b1391af099489a927a1a60eab2b2693c38ba8f708eb8a0e7e6887e0d7a13aaa40824d73fcb3875fa0c0dda95eb9ecbd715c5fe46017e3d2f3b3f3d2c99faf4a27c08662949eb81091eec0520601a8c3f7146781b7e32cb09bd2dec205655d05586a07a3f62806a870a466fc3e9cffaaf4080bdad0a6e9cce0dcfec4b79c0d7aeee25ed6a7464a130f1b4fc890aee223f44487fd354a3334c6aa031af351e30f366cee53610387e7476a264f8a296cc0b439023b23d3c954736444ed528b61c938b966b0d1861bf13557be668db291fa8bed60a537355fa2645a9bb3d05f2fe771adac4d3c25384a961b424fb8086291edac3dc3fb1fcbc2c7f5b91e880715bef623cc7079439f8f24de79009efd72356ecdeb65f24fc6fe8988cb80bd0c2504873231c22e18e590069143ad198c7ae545b3052e8af26740f34523f3a7ef348cb00a8d5f94dd3db892b23bf4c96790a17f8a191e73fcfe845a5a32ea5cf617c6bb6ace4c2f6e0d967bebe8050590a24e8392b75b3b297497463e418a79ba8af6af1898ea83aeb9ae3342105aed0a1d528513182c1138c5346f3f7c5732cb0be92e5d764c04d6059452bb0f5035d546a8a0354c0898397a00894461c3ba3b3a713d1b17cc771638e23a7e15b4ff8b529dce4e6eb8d10e9485a399bbe10de375ddae7f9d7d3b51ebb2a3da2dd8b3d78948ace0aefb7cb6dbae464a96faf2b280d16833d355ad70a426c59f10ebb1ebdac95827fdb50e9c83d1295b0181a3a25aba61a41f407dc1c1d53a89bdb570b854def04ba892110794dd3557dd51ba752f47acae29974429b495c0e7c71caf1b75f36234c5ac932bb32663b433f9e4822f8272f0b126b31f9995bcb10db2614d54a952e0c2a53d8be87a20009643f208c012cbf5f70b5b3c0b416d8179442b7f0c06b49a47bfb4d383a0fada0296f5b9592ca44ddca15fa1fd1982e61277dccb7d6de92aceb39878041988da1dbfe7a5911ac4be44679757d71923d3e92c838bc548018afd6828035022487fafbfe0fb6023c2d4067c77222621e8e8450fa36b546071a28d4def58309ce5ef0caa0f586230f05ee9a76a35348fbf18b1b8092b912765fcfbcd5b735fc9b7130b9f84776cbe5d5ac753b337e2a132f7e7b81aff8514becf81128417a6b2fa618c16c58b58163b25c72a9402da1b2ac4ec97ff4924bb392e33cd130ed6f87c53cc9796493a497df3c1bd7e818333c83212f92b6106ce3fcd563a4f00097d5c0131548348810b3dffd4bc545a3106735c9849ea51d4e89684c85912748d653d463e7331c00c429c1528d3381f397a776cb4185e1bd0da327e429e38ac727572b5ffc99d4d14a4c50cd452982d40102a2e7ec569ddb32b06e2e461ba198cf9160f8569b6d7bf886d6c4534a90c8c359b16fb8a5b0b95313c6b3ec754a6d71c3fded2a2a34c3422504cabcaa09646cd38d88856ecb5a4f6bcf0cbbc8af96cc49b9ecf37fdf733852ea52f2270dd774c093da7f1d5638f17360271e82347cce777595923972350c4fa609a666dcad1ab8ff5bd5a6d53728a7d96ad6dfcf6b62e2ed387a6ae846d33f4f41f746bfde5eeb9ab98ddf9901e4eaa19d5e2c7c3bba841a2b6d1ebda30d9e56aa1ce3440578f9123dcae6de9d38ea8b663f720a22ea795fe61d83b525ff0b4e09d1365807c3b342a400a587322e7a2df44f39eea45ec199b219f7e42c1a07b81c818ffda263c6546db434eb16e46ee479ee718a76c70f1a17fd91c50809ba34afb264e2cd3f3b0b67ea3b2e6f8552507ad558587d3f98320fb0d15603a85cab8e84c507a39f6ea6d52cd48017fbba7c6d3979daa97779c64bb5b14eeb1a43ad55c7814db431714c371b9a02217e3046f707da3b5292285aabb9c1681326424dbde4901a1269bdad18270f48521f8d627161790ed92565e55b02ae603dc4d07e844f6df358ea1d4018712c737cf467bf81ebf2ba1c8a0f891d83f2fe236cd8c6825d6cbad69ad64b8a30e6a64daa5596cb7d6164edebc744889e31de316322b2e5bada3e12eb16702e8e058f9f56c0034fd6646094aadbad86dc0f1c676b22ee7ff5cb182932d649c49e674140925fa59b0fa0fe2512ba3173426b62b0e062e54dc82d4de7b18f59ea364a44eea86bead66ea0d4edb8d36bdd72da5a0cce07aff9a1e1c6baa45848391261f294c9de95b90678c40095a0a197af1a49650c4b84d5ff26216fd90bf045aafbd09e21e149ae844745328e38635a1c825caf8b616fa76279363b09b0d4b6b3656dc76df3906c1b2699de32db3e41f234db3f834ed7869ae4cb675a712187605c9077f3c8ad8e96a98cb3c527d610a3ce964f739c205af6f8d52e50f4c66cebc912716b8e37739270f244c74e68a49eab004c3d27ee36fa3a10c084902bbefc7782fd0a94917ab34ed1131240bff2ddabda8d68217547257e39a4806e4cd82f4e158df5c701a79d847b6e931c4ff9837dc6710b929915bdd0c33d2468414ac5d0e84d653bee59b3ccfd9f7618419ff68763153020666a7aae1b6caf11103bbb56abe1995ca62145591e288e74e6b2575eefa46735473a47ae0963581acb042e176021ea84cbc9ae20aa0e5043da79bdd74260b20e4e3723b3778875b7ce126c7bf9e2c515d6aea2a5d0575db23515af83a76d2acc32674b8a0e554727d292c5348996cbcf33c3f1890c3f3f7e06371de462d29d8da90b6891310d2ed5323da0d235fe3518ef135c750e282492a1681da55dce8ab7e8c6595c5ee7dcdcae66e200b93e1c3f0e39861d0f9ab1a464b5e4a352701fea36e854728547420b281b95a52375450a6715d2a8811e698ce910403277c1b19a24cfbe71aa8ea8fd5d41219541bb88eb82bfbe3cb1f16714c82d7e5a6ed8eb16112055bf0d722bdb595672558b4c3b0f8ca8878f1a8365fb554203a7bf62f2cf2873eb642ddd04d15d7ade6aa728a7f5a4344339896ce6e2fac5d8db613f6c469b0a794bd402aa86ebf0a3c3b1cc6d7456a741d2b5082da36a9bcadcbe1f494df4d23820adb0325b80e7134b35946dfd4516f0fa8ea8a511c4bad8af11c656abcb1b7d8677c56f56000f46565c2a392da82c07f09bd702a4c0a165be362b2320ba9060faf2140e6414539e923b6097a79337861534f426b52429698e3757634c09a89e3c44027a27fe08854b634abe7dda607c8a725f1ce5ce61bbb526a1574f2332c2e91e5686d094f06e0ea255282d48566f548ac841a6ed628eae9f30a7f348b5798ec716e1e63e146bbe04ec69a5a92b70691821e4306dc3197fedfdafbf45d60a7d540b7dc06983562a254f91f3d971e0d461838c4f4663e5c48803f7ba934a7feefc92df8f723d771af2881cc0044b5182b1f094692343589c5c3ce6266b719646ec2033452631fb81ddfa735cadb7b5fb06e4c1ac46b238362c2f74b29161092031c1ea93812d64392b95ec841cda9f70e85d9afde7957c8c67c1b7ac622276d091f163e318de860612ace18ac7250a22dcb1ca3a6747a9d6d577eb625cd0d1864e6ac8bd917a17b9211c7e6b8cbe0b1601adbc75e0d37437e1b9f6fea88374cf954b29d057c45c1f599e78788e96debd386871dcf6e3ac77d3d952499c186ef771925e6c145b117b2947dc579b68852680da0cd5d210cc2dd92a535bd98998dccf716d512f41098ad9dfd6bee39c028ad516d4b864a352130fc2a390bc2ce6e28082e1c5d631f544ec6526b86b10a86831662bfaa3f4b6fa8e6a7d078c0c6c615761ad0610615a0ab913901fccebab4575b6dd5cdaaae089ac29779e3e7ec365cb43292bd57b18d4ff63953331587261a9a43628c81633da2c6c1917400293bc1836fad3d25cd36d1e4a6bb00d74134c924aa50e47a0d95557059560ac886bdf7baa6011dbbf4fc52d830dec9b9fa43b49f593d412e885b8e762b7871f856907ee0f5f13fb96566ffef0d718066111d112a813fcf6495e28f86b1b27fab02ad3402f7e94db45fff46e04785068081d15258251248b59ac3b61a8685a457a28015e3a25f3596b2f4591cee02ce02e55994066a2952dc62b0d262d02673170cd3e668e706fd68ea1bd4f550e6883891cc822be931693c924691d1c1e1d4f7d7f41723c1734502a4adee28618fd37187cc9eeeb3769885db90f15077649de0ad8004ebc9c7759ae0b1631e8b4342c45013b258df5ad9a70004c307e4b416c11db374c206c4cf6b138e97b6c8f1ed696881f03a4d929c8be5910997b27fd6dd0abd1c324c8b711eda062958e807290b1232b35591edea0458ecc2930c808f38f337d8b7873d07de16e1926859cf88397d263b74f85dc8fe116f164fbd55c7c9f0648e1efc661a58a182a41000247942f93a333a81d70b46f1dfd4dfaec0fe6e96df77318443d636818233b9a1aafd8a0918124f3968280b5e8db6d68d5fb76d0b757601591861859a30b41f7b864311dd77d64ec09e52b8a6200d5b96483ff1a08c64e1abdb53aa4c189bec174401364027322b1a594c4171c011fd9acbe685d13fafd1155b5d3731348744189c34c5a868ea5034d5ab76124a44453e7ae94e8b716648abd3313f2245fe75a518790ee6bd860d4110b4620ef99096f29bca515ec7a8a7e218efb24bcfe250e557a1b160daa4e839ae821299fba3c346e181ba6ee54ef50f62218191c2e646110c7fb9552613a754b6ef50829eb2c7acd6d7da258b980d6b79c68202992a525964545cac668f22201ccec1875d17c5400f6954336b07f5f6d9448bb4a56032916054331e39ff222329fe615d63d029c43c95b5b776a848f77b552177345d3a70c51132182a70b93ea3a35b5db59d93a874cf153ca06250b83d4e85ac4fd21f48f1d964c003d899cd06e67d868b910092b56856fc4beb8aa1d048058def25e544fcf0ad42edb2390f8d8b386be9ca38572f439313d554e0a644d818e801293250a5752568cf06bdf9d403a9b2581581e2b2620cef6817e2513d9d236062c4c7e71d47a2cdb96e2ae515b6138f6b7eb878da5f8f77bc3a47d40d74fa1870786a6d2d5aec1881e9ccc1b5b5382c61873206b30aa2de3b1cd2946eb9155a11eb75be095605a36fe24beca3f46dbf8200076565936a9bd07318ef951a56840d2760b5d3f06f5390652797e43d1804382304ca9cfdc1a520d2c6d16470406e7b00f5c1bf2ee865e265b57933c07e7ac49333b57ed6d2e987bf0648c3bebd10568f594a54fef63bbdd46ae06bea6c02e1361b26425dd313653747476642519fbafa0ca5c619ecd0d8d30536544bc764662ff785e47da3df2824bf13d3124000d93ac62b01e378b39e44339b14cb3f6f19e8de21e0db5d25fdc9f6b5425f0de23f7b133b1a0c2796081547af54364e5c780fc9b61b3030a368e0f0742a59ddd5ccd2db189427325b4e6108d824132fd0a0b23fa5eed64c0154de9447d8081e891ca74063a0f1c6cba14c6f1d01b72461be709b4225cec100126bb5b8cfeff18490f953011c59332fe5002a225906bd62bec6cc01ba57bb67c947405928ad1d409516e6cc2111a7f4b245ed93e33157d7aac60c29f5ac566a04a28d8ae912095c09e1d8a717195eed3400fa6b2a33857c25430d8e25cbb485a7734f23decfe4cb0136246d696d7bd5a8f7cb27d9e0e9f88e3d38e217f0932f622aabacbef167c12c5c2f45b577e565371c1aea455600e61d7746785dee841877ed4ab20ce73191eb755c71b1b5e87860bf360fe885172148413ed7c284c178886462c6c9ad96c36f9d58a8ddf4e7db5ad1c414036d614ab6706a055bb10b1024ad7b0ba9c09bc16855ff0b6a066a04116da4bee142b273415f387ad5ab2999af931fed38d15a5015c51e52eeac9adc4b1460e10bb53430db97b4c95801a6ee0064f9f4e04cc9348f17849ca2d9bf7fa0e54eaef7573a32c0759844aa6d28ee7c5ef3820b3c29d312e928793d14a8d767fab1c6cf70124da423957d6998b08d8e70fd1e9acd0448d62c4ec4ece6943059b5c311466988aac91a2a6000e0cf33c32c2ed938b24b688a4f47ec8f9ddde2529d0908db7ea33852b9508ee3df6bf4bafd63ca58c212c3b7c9c5dab7ee926103b0ff86755c750d42554a784b67cfab4149af0e84147862ecb33f3c2d4e6cb6d3f193016d57f9647e9f72632fdf109a9a03e6f33102644f2936bfd32c36132e3c732519f94f183439145d9aeff32c6b33f1f6d9ddf2782c7ff7cfe8315a58d583bd1da523b74bc197e425fd347455781657d21a604ea2d1c6a61498e7795011fb7cb9c9a0582e61dc235de60aca23336dd7c3919c8a60e40b2278759087bb27764f8ba442cb286006859b88895afa669777c957970595b0634849a644d3abb20743687f6224aee60217e063a984ff0041d3cd96427aded2c134c177835c94d979c500c7ebbd45c7e298c3024e87f2fae3cf9b387df1aff2debc4c36266a35abfafda06677ee4aed45ea1d162ea4b07ffe0d896b3251f3fd6f8b4ae8326341c22c80f67e96f8b69a2605b85f9c41aebe7c1726168061f9466f741d8dc2c2b9c7419afe0ad1ede1c63589d7ebf3c7367cf0e989410d99b1cb864bb89e530cda1fcf48140603b4e951025008a02d7f3f9fcbddde94c04116ba185ccaea1b612aa3b4e455c6a4313e25d355f1f19a4ebca2e838295b115369c9c29250f19602f14c6b0244e4c3cb24b2ce00c941a8041e75fda9162cb1ede9c952250f2e490f1d9ee8749f6a125c14528a91335c3586361713873f476bc0e95d9c3e63185597be638b303e0dd98410ac0ae2123d103c86f65a063575d65d966a1bb4f3989255a66f416e4c24fa0fb966400406cbdbe6f5c5e0cfcdc27aa29cac46a271ab15ea0edd8082bc2fe04e96a76b8de668367494d6faacd0f599f49a1b663b9b6d788d65b2a5d50806c2b61f14ad00e7109af9ae52f9e1a72baecc97105978cbccfd285039611c331721a1c5b03ceefc1d462466cc4c82b7118388381beaa33698df33dea7705a72313a0a11b1794cfdd34aa5c5193ae19d430e266f5d44b75e90d8687c5df4330b5d85a7fc2333b1f4de42e81f4010680e685460ef1ce6a69059c23cead98e7389fa73de605378ea7be2081e644893be419ada6587a5c49e5429ef3c71f9b5db7274a10e5d6395b5ce7a840fdc46a1dba8809ac298c9ae2fce712afd061268584647a2898d835c9b46a0a12313a1104733787ad0c5d6802643b91ff62acf2c82d77ed5132ca3285625090c1e8dae7eec8c7de3cd1a9fa2bb18e2fef8e027c81c605442e72202d737afaea1c9238d1c50e7a9521401a9adab010825ba62cfceaedfcb5caeb9f21d40698a7d1962e7ce6d4408558f08810790d35b41d08538af3a405f1c74c11c6fabc5a1b7873471fbaff66082cea7f23a77f0ac8b2750613001fa7b996e2506e68ce1342aff3707f7bc4121f1f4836702d2f9c2f72b0a3c31f12815bf6d85abbf801a1e8f0872c3a15949140dcf51aab5161b952f270a767bb4028b4355eb3c5df3ea566b519fae499b336dbdd0034d27e0412cd9bffa2e104e5ac111fc0af6829abe99e0dc69ace021fbde38884de330553da831f514f9620980d53bcc89e6fcb3f7aa069f7274e4d1fc423c3192d0762f3026d8059c93268166a3ed3226d87e8cae95f521d717d476df19c6c32b517928a497981816204b4da97c49a43d0df781361e537597294c62ec21b80fa33f0cf943d490cde9fd8caa75f047cc2846a06e3b0590bc61317cbf74557bcca8c5c1927917fbfe544ab58132483070fed596a803f145812c8451e061a0fd1cec5be1e0f3ea6a4eea431c73fb42b3f6e92cd8e6026e1c9e1d4f63b5eb577cbd1c4caae1abff084adc201354d66aa480b5b5ac09de92bd7453364b4d02e202bdf9414f209319fb9783bdc67dbac2a279d0841840224fc9f36e85ad20ab3ee48c4f727acca6d90c5e3e08e7f1c0d434ac31992067e52589bd70baf8f2bd1bcfb4cd05872ba2b8115cb4261c5d4f8561e99ea37e54f3b5628e0eab2c010a4be4d4e092eab06202e01b5d9fa330b80bebef90a93601529de5716a3117d6c21553cc7831f5d625c930af459030a6c6a6f19cb629730a10141ebb17f079a22695cb13b7eaeca37db1fc789c74e5dabf39d6f3e241bd10366ff7aa30c0adfc24ace38952d022c989cc49f3eae24ddbb76bbd5258308b788d5b514f1f55408c1a082f3228999069891d4ac10c4443dce6bccd78e2c0f922c021837a8fc394fb3d3dd276ca5761ba6992975a0bafe0921e02059bc8af0af858daea96088a5d8b705513da8abe3e195ce4e735d93918cf241bd939dcc29b0405342e14138ed38395ab5b7f11f47c2058611cd78fa78316230a44a318ca97a3c62ce9f51ad3567f5405537983805ed53a43263f8258a5c9a4bf4193aea2100516212dd099a17c8df11034c1c5799c2c3bf58965c0f698f2eaa5f7112e8aa3406fe720e24d32aa87623608bf199bddb26cd1ff61206386447a7ab103aa8533f7e85d82d8774d45b98490c49533b533e4fb07337c233c8b92713d60a399eb8fe2835fbae799ef466705fb509b1685db18a03bf4aeeffb3b8789f41fa07e582b62f09849afcfb38308591b8d039e06199bb7d379da4e00e2ca53a562d68f968b65f34848dd90323ee0b662ff43d96a80ae1836bb5782faa0ca1a85d764cb0b160fb1e52fcf4c9180e9918d0f592390d22d15c02e13b4f479c5d5cc7bbefc54516a0cd42c5b5c321fcd2e4f2342f6c2f23e372e2870049a4a5c34ed31f9681804b87f4a0d9a58382204a7cea0340052b2e04e79ab655b2c33e439aa1eb21440bda954b6299ac24ea2c2acec0e7a25fd946597a417b6ceeb362445101f3c1aca876831b90ab82f7c54f719020c339d4002dcabce40e53a0885c8ddeebf7a6076b20067d441abd189c73ca658d03b0ac75b8eeee3c0058cff9eecba2bb104f2dc58aa28de0b948f70d766c2bdca580fddab47c956f2ee0e7320c0f7240158e0a47740cac8135253114c320f0bcb5dcb0d255622bb829f1d336807c36d80300817fb4bde85e5b8ca934fc86761569d600868172fdc812dc691d05c8771a4af19205d0b2208a39817cbd4f27fd5e39654672c7c3dad964a4ba81997acdaa0da28b09d24e2edfabb076ea51a57db8f62d5856622aac54779df9e772e1950e7760f4c6a92d6097547851bca91341e00083c9f4bdd38ae9c0e35ee66c3a782c57a33ccba9ee290cb6d419028bbe604c94e5b3376c74c8674315f677cc3fdd9c911135be6c851c69a849b412aa9431b2df2c379161043b07958a2504981216c88c4a19958b24f12505ebac44a867e372b25564c8c6dd2bdf4107aeabb013d905aa9d8402e2f240c71843b3338d51bf0fea21c56384eccc21d851265d5b153c629fb42d61a7c44acf4a775cd51cb542092f1a7d277c0a8ed8faaf6ca757907baf79c4d27bc59dccab6b8aa013bb33e935aac0297b7ab84c3ef8424a0483a0514c666d4353269f1f337080255f4f6988711e7ef29540ae26fa8b6ea3e426b7fd1fcbafe8b0b9f8f32df2688fd4e12dadac434da654e79ffcdc7840f941ba79780e1b26eebe4900f90e568eaa00b4190b08137781db84e2f7e054b622d8947fbb61d9110ab1fa869511c3ac8fdef0ab9849e713c3afa2698579f5fe3fb00cdf675d01097db1e5e253c9ecf4b8865f26020b493a808fcba393e7639c1ba8823dd8a2544535ff8f631fe109b6e93e2ab866abb17d2facec2281ef5a8f44d4eaee616cc86e898821961d5c087ff70cb129e21d1ab9cd0bf2aa5f266a7db9773fc56941e7bbd0e2fdab9294b0017607d546ef1f207ad150db4d55bd2b692a6267b60060080f3a744d370d865a551f622f4cd33f30c41e4fb7ec890af5eb34833e2625bb6e6c6cc3731dc9454b6649992891d02b37d9e232518f9be80964a5b5f507d48f004c2572b691494912209bce16c6edc8a72c09384770937090c304a3de453f1068c5de2a46f5911e2e65b263beab8ca3d21eb5f687a182399c6dabcbbb5c7a606f61cb1ad273c12ba3193f6a3555b627e9267b7c8d54d4564357096134831a58b456c2f18759e5c30dd4f27ae12419711f06fed87f5e6373a97371addef54496d8a0b0c96f6ef3dbfd8fcdd996a38b5c28144ea25ab65d120b50164f271481de311bda1f0adacb7099c20b8f1f867ae79e7d3ef0989b95c00200ee8ace2b262f8e8cb24aeaf79236283d16a6046ee47d60910dc6dbc74986157c9dba197942cf88d1a4d67e834ca082254c518b5ace8e699d6a27830a9e4598b4bb8b847e443c9167cdd3d5e215d1fb87694655d02026bffa14c702070a35513ce47185dd84bcb2ccc312c86b138fc017a04047ca3ffa1cc1e04b0471a7df0cecd238f8b61045b5b7b85b2778e44c0400d26bc63e793a5e56dd818035414a8e1d1e9c20448b0285146a5ebcc8b9ff63fbd1eb9a18902861af74c263b495674d326d4f1b5ae24dc04235d6a5871e282cc6c3ca117b0ac0ab3fa9471a8ada79b98f6a7479546846354009887cf5a2b780c46c9e88fdc6f4d260b4f6bbb07055fc12f563ceb821d24a6001bdda50b8514b830dfeee4c0febdd52e3498ccca428447e7596251fda847449031dc08be8b1f11f31136b1f7c892d119ffc901369d78e4775486dbb1f808fa9a90d74f60f35af8b1ea6e30085cf5464162ff287a3cd9037db1309ab7e450ac951da4e144b979e7afdb6eb3c59c3e42c3c4eb4b7c46810138a84dad981f10fd45b2b0cecff61ca374e214391e3651d174f963a3c22edbbc2b4762be553992d823064aaadfdace5e3383e3342f7c28e790621370ad7e19fa8b6514dfb04afa1770fd3f625f37d92b42a0c2ac069fd52cc9ed1a4cc630ebfb903fa144e45fe2f2f269c9e42994e7880b660b6059b2f952316c952d1320cb2e904a6095fc03426c9e33d750fd49af5865802da8fbe05bb61e10e59e64ba7f22e33234c233067a9c902da28e705e8fce2632b2234d762d8427875ae20655a404e5189fd0c32cd198bd1e67cbe65776ec541f75725fdd595c0a38d819f57f0c865bdfef0a123fc932ae652846fb71329e4301403fed976f052fb366908101d1420cb5ab3a2e8a008e5b2e8ab10f7b54a4f157930783e4ee80b3b4e8b4351b7d96b1ca512a52e2777dde069aaaeabae1415234b755bbdf038b4c9c636f1781e0c9d5702619bffed4b1ee09ab492b2c2ae486141478c759ac8fbb8fdd708d88eaa37b93309361e14f149e8751b6e9cf0d21aaec2a4fd22424b030d1b711373378d3f2b108205bc89a0fc22d94a6caf89130e24a4b664e6482aaeab2071d7eb8447991e4998fb0a544ffc4e2236bd7132fdcdda54d5d287473e4d92b0a0f01ca0207ce22b5959845c1a37cf08a7876ca87a073df705bb6f097abfe25f69a3c0d28aa85f587235563171dba4017b05be22407833d8b888ce31ee2c7c49b70dde9330715f074d7fc99f13d2d4517dbfcadbd92d1a08e9de9c09894dcba5afa9a8496fa59c10369d02e1fa85f9cc92ab9a0bb569bb10644932719f5bdcf58f59b038c5f00844a71b212c983244e8e4d2f89992d7efa1e525514f8ac07add484109b0b505bddfa80ef11366ac550f3cfcae6505d398897e6e9774e34889d7e29062651a18dc9049de8fd8f728638bce4c7f4034f87af9fdc8f5276d7c92b95c5965370be9980fe5013f7deb40c3c99156c0140ffc692660e676f346d2fd250e891edec77a20d6ac865af5e16ef8f2d5c29a60122e24ed8ac078ce6a4774a16453e6c3515919a19e9a082cd38a234950bacdb7bb65940f5e49264adc169e6dbd166b9ebde956c105ef3eeeaf18f3db1e9fe6d01c8ef5d021fc6a5327a995ccd897101f80cbeb40403d29ac26c1238757ce5a1a20d53862eb104bd175d6a784d29452619a3df71509de1e6f1cabf1ac30c824358d0ef11de2bd2e1a4f622388de9359690ba68eb3a64ac585a6462100e33a8547e289aaf8dd0caa1f46a5d531b4bcbef302e3b89990e61bda4ecca0e8b21a04a14200b3bedf0bdd84ba6c8b0b555f6409df77d275a220b8b9ec24d6221ff2a41ab7f2a22e794074b32aaf49fbb64fba0d638d9a898bb53cea21a4aa0e9ff84b16a683a09b813d5806d77e0257e3c25e24403e5b9dfdbd085a0848d39bf06488230c2207e14559d14d5aaed34b2c329e2e976e3a89871c6e99454b47dc74bd644319ee318f16086d529ad4a0c43cacba8588dadb42787e7350346c1a756f850427d29d0ffdec9595d5c7781ce1bfb0b162d2316869d3b543797278f1b12fb4008544dde7b50f4037123fcce415959a57069de6ee7798652b2bd880ffe3ef5420a107ebda829520ae1485f39718f1e4c37a76c0f89d5ddb8c0e0151365c55a882af011f68f1ae2e2c234ab47de764e1a4f0e56d9875fc1285374a7c932a148e19d07f2b166100373d7cca9a35e84b853ab5a466883524aafa1ed5658def66d2c47d900958a0999aaf136d0dc2823c844678758319fe0ff8cf83606ce97803e2a8f2e17b91d8a32d578826b569971ceeb4ec02ee42bb33cc0e28dc11c31b0720bef887e1d5fb6ae55f4eb868cb08bf90af4b177cb2b87372d05c8a8e4e36b41272f5db78f588a00c41a03bc91cc2c36f99a34289fa8cf87d79849b02b65f60e86a86f99564ed68387b13dd1bdd03a46182898608e64a184cb5bd6595cde5a7640fdbd1bed3f31429a13b670c2c5cc560094ab5f33d0985d002c2073b4d6708a762866ac31e59cc85688880200f7b96c3ec3253b3ec0d4cb473cf64d086966c43ea795eeb3969a3206e04aa27c26b78608b792d58b28b6a00708f411f2866305c1366ec64073a9279b897130ae54d0c6613659337c18e24f898e5764ad4d0a5969405af3de882a36cb9db293fa708f06bd7e6ef564437495b323a059acbb6475c61ab6c790405c2b73d44b7e36b3817d50c205e683597a635e046dd05c7ab7f5f78af0bb56e20267a61588215a7c0747783b33c163c6826b63d16153a7c69bd85b0a0a5e774840686ee3e16a40c1c8d988141d38fc59961dd4ddbd070d2b6a821d5c2b5399bd5282a254991490794b29885002944bfdc2a5d20771c16e2159a1218245b9dce9fd7cd68e43a68f6adca3335f95d8f4f039110e35570596fa1bb337e5483c07cea00464c0f6340f2b745176a1cc27b1a1e475554e68745c707a7b1ac7d52d53c3a75cf473e373008d059e66a6af6e14efef834deb1e49c8363aea50c3128860a73108b8653051b7b1e92db628c0911205293157aa66742ee260d84aa97da890659795ff8fa3ea354233100f79661c877002a330269667e22abc6f6f402d03820e72b032dffa4176ca95388544e597ff450acb3768a3a6ff07a2ee61c022b280008dc3341cff227e82a92a48b73d4f1d6f94703bb6f6180ad372da8b700cfd304e00c673b00ea4c97d71207c3f715829bd40c52de64a26575c97194d987472c6bb0c0c3df644584bc3b2b150562c93c3e28e7c2994da751cf6c2e24a9a47299ee0e81064a86458fe45153fdc55ec7d0abd71e6041b94c968fb921e379638866031bcb6494e255086180486a00514cf3cbc211ccb7f9edec5c9b3cb00670064e2620fa6f7325ac078a723352b5c9c0aa3ca05bec01c8c0e0e4cc2bdbc084d97d202022022c6da2f0cfd9847b83e42e8efb1caf1bb12f58aff937c8b7071affae6f9770b294916f334f848594f47f1d80cdc5a8aa8066cae49ab879780c32be8dd184955bec8ad84c6314f0224bf62b8c273b4780acb813cfec13e1c2e54f46aae5b88395d0ea6ba0ab48a28fe254591e152981f6bbb7c499156f972a225890122309b26760760df423f1b2ee9a8c257355f6de3106032dfd3402bf5826624b21fc5f2795b8169d430b733828dbf3c9bc5058243247b3fd2c9ff7e3578b1ba42407a8ec77a0a616280ae656e2cb30a5602b9fc8cd0f31f05e81127a1ffd6122378bad9b7be1e5fb6d3add0a036c05d05cc8a7792ba6e393586225161338b0c5e73b1a8a8ae82676c5d90cc69ea8b41a7f8f622a419d523aeeba319ee25c182e84cb0a876f46e38dc927a6607249472599449c43cad37017edd06c44854f32c6a530a2ba1684afb5bb7f990683c25e0af842773ca1dc544664d9ea1a33a9c34d749e350437e28948d25fe8bce22205e9e64779965a90371e83f18070a0be16ca1c52a9e0942389612e78fe49197066b667bff481b5235a034ac3e20ff38397c234c9639b011580640fe2fa70d9d05b07103d48f5db969bb6ee9210cb22b9288894f5a1858c83d1fda6853dd465cd8746e9ae38b76b3ea6b26a12c807852e801755a3912eed950f8e9e6a8b2942811fa52a5694cfe43ba71842108c628c75d8e76d1565917349dab0f5de87d07ada48e63a86d5873d7041e2544c040addc9e4f24547190a1c37ebaa53f1d40f74e070affde7556a8455ab16f110e175c8c012dbceb8bf6c4fe01e6bb653d105c4a0dbbc0077f194fda64173a13b16a16285c322486a4686740b10f6edcc097de6b01b65a96a79e65806f1851588146f64c1147e91697e9d533f67659563ed5f532ef74255f5a3f0fb5d0fbd90c8df91f400f3ce1c0ad5d88b30507b91deaceabd55e2d7829e5cf48eadbcaa6049d675f187d54708400b6e25143cd806ae541d4ea1d75078e2629f8af197102a8704802f8cda3a3bbe9b42e42e42406afec569b68da2011f0b26f270771d1eacd0e1c51864849c35304f3b3675281381949c71af2defcba6573da0332552d5ab10700b10df5c632b44807397e502cd30e4453aaeac10a82bbcdb6d38bf6664d7923d161c5fd6893c1f27fe55ad050a6a85cd2d02b3afb01bc95d3fe53c8364cbce9f999b953b37e37211bf006a221b9d5cba4ef87cf1e7291801cdccce8151331ced351d958fe36157e3198df6f7006c0680c7c543c7444b59f1466620081cd43ea411948803fd2676471a475f185535f742f8e59ca83014c7e29a0b6457819cf97e58e2ee61818caaa0bfb9f91b9408421b3d52bef5e83b5cc09d14a6a882b59338c54387f814ab5b3a05b0350113f5f896e6b45d9a237bcf787512753835e730551328fb8847a3854c05070d8cbc7bb8d010678944c2cae247fa84a0506c6bb94f2b9ab0587092b8a0659a98d7746884568947620299e044056fa3874491c000a8f5565ef4aad64239eebd058661a007b3da4858b3829d328436f4c2ed70d4d34eb049f43134eb139e3721314321e05c38c7e03885225716bde74a31f1c1098520c43c16ce6e26e64b2bdf0473d2424a8189c56e5c775c79c748a0b262e6dca406946198cec722c2657160bfc70f5cf9f0842de350ca281c4a834a00e7d48243e10891d41236c203d409cde66bdbe819b14fe2ee1472a2081da8e12ac5d3649929042f7af67079de41709f5963eaaaf79e9f1594f165fffb4a57d045888440c94d9755307aa21d54f019e27d0c8216e3ab4bf117534fa427c7f1446312cb9c372755e2b66083c850e9d2001cc60aa974793f752a42b4557e4ec03640c22959418c919d3821fa258fc174ce09ae7250109ba504f1de5f7e79a37a52f914bfa5a7e0cefbd7154f5d0889ba72ac6aa4964d5bc9e58f48d3562d72b5297f64ff6750e123ac4e6acd28860023519840909fb43fada223b66311d388d094404322a6d81752ee818253a9475a2fb0b6b2ae3549f32b2811898298450f86ff0cb3fdc48f53bb8230702f67e12ed94b7ad29b8c917adc1306050403c989e093c80bce848b458a84a13f358877bf01f884de93e85512e2c7153e1ad916bf64c1df46668851f33a4bdcde32062c47cffe8a411aa31293889b08094b2ce29617d72e6e04ffcb778e5810608d2775c6788c49f3ccf212632cc670202d8cd64c836584edddbf866d5a0a1bc51401eff4cc7f351687cc147b15661266053ae7f6c8758d154d1f059bcf321eb6727e4ae69830d0b043e9d8f75ea822d4b700d0ba5e5fdab12608d61963078f0078fd33cb595f1300aa5ea9ce52296a2e039553ba9d8991e8f27c20e8816e6c1fb57e3157e301ba114ef298cb44f7fd4bb61d338feb444b042b57e7eedfb53ee0a3ab66f535a028bb72844cef7f5a0b8c22614c858bea2d218984b811260a63091f0aef29d9eeb7a11815f0c2905cf5eadb94e33714d9886953569ac27a6fb49e10f57571d9bafbb59e0a5d5621967e02475a8c2e75bf1ce78830441babba6eac0b78749ee37e7f0d68a7730c56dc53fe8eaa8ac4f48b90f7420ffc94eed65e7298b2d9fcbe137a03422cf1b724d06af5551c167a9f7a53f8a590381853a2d9a2ea00d2d50c025a428b41463159ef5cfe4c7984ba8db0e18d69d9cf0e72f6dfcf9e917b8febe5142629084316c0af9b2eaced12e01d56e8fd3d44f6e52f55936e5d97d6851ca352de91c81493f91fd0e64d93f3d6c7daf0a656f602c4b8081f0528030b13d18456ee6464e448f8c13cd3b331461eff815ad05d282e07149ad290b601d055f8e0111f93049a2954da61346a0fec500c8eadbcdfe0e0526d191cc2ea3be1fe87891c06b944c7b0b125a07fca4756f2baca4f08e4e56030db3349397af129be3fc727ca4bb8595889c6ec668213e8bc1ed7601ec83d3dccb74c98408e2fa004471da85a0006f66f129137092f1cdac0b76ebb385bcb05dd286d28b860576031f4cfa9e88f1048f3fb9cf46ccc22c59943d6d92ce16c059de43c51cef8609baccee8f78cea9af5a1273d3444b197fb00066485f965a7cf34029c64ee9f45c2060eb133ae04852df3418c4ea30864b06a977140c5a1c044fcfea0b6fe884108ebc68f7bccc8bff275ee807813e4de89913b1dee7782cbcf40ea551612d4b79302bacb1caffe4fffeb96de05a8854900b5ba20a5fb6bf1584be07c3bf0d02e5c812ad2d116ae18c23a1089e5affd38d0ac94707b71ef49fac74b0724f1211c6767ed483039a1410930a174526e59327a7f5e2f3ee385cfdf8e2da109c8d2876de7e698397bdf3850b84a6bd0016e7b09068f770f89b05b6a3dbba8e655024d92742890112a7b79d42e3bb80cd87fdf4175f1b579516260fc2e4192c67711a730a0f56db68958fe5d10bca0f12d0f76c9b1073818ccd3d9aee9487a7c5d856fd330c4fde9b739a8fad795cb67c55e2f12437b75fc936224bfea1f595484495d23c3d38511b4d9aa91314dd4db93640c24631901099ec6187349d5eb5a046337edc560176394477350dd4cfe8ddb7522552ec1e7eb27030b5d0eaf75916c871985d8a599455baea984c8509597bd51b0b394997e3ec15d0b8470f6b9c48323805a40d99ea0712ee671de2931f48d1c4ce2f678656c4272f546e417d4bb1ed47aeb9dd636f57e448effbe41ef4872ac6d4188ac656f06620d33684baf83ae163074f9c0b3bf89668a1938eeba77a9617225fa2a48f7d070530ea2b3870c738ca7d9f8d6bbdf50316c2b9feb501a7363c141db6f6f17085974c80a4bb6f113addfdb706abfee03fc750c0e7d5b839e99032044c39c00c6abff8630149cf357ef7e2e911688e86ad65d72623901887a88be3b5e57f352b2dd49f6017998e92d6f2293f96a9424dddac370d836728eeaa65b3dd9e291028da4c372102a4bcd78449a80e8a8065c9e1082af5c9822f7376f4144d2618735d662042b620d952883594c635fd48598c935a64ffae196a05363467158fab00ff2c46f0ed5bcb6c0d7694cbf3603eeaf4df65f57de22899fb2252a56ffd87334ea66c268fe4dee7691ff316bdb3e8f5d2068d03019e46d575624748de53eae6cf657e062f68b285dff153220dfbe8175298e486c8902c34e86a817486ab2b633665da1405b7e8049858838486c0f2bc9980a26dc256ab2b9b23f674edfa2fce7235d4359ea7658298f414f35cbd01640261e685d312c712108b5222968d3c3987024f1b2a13ed8d435b48a84964f13defb8c2d3e3298cdb00214e9256f6695d5e90eb07291830191623f0af066c90ee6d67e442f72d2b595d051eccd5dd13fea3f49bd8e59c8c14e54e07c69a4daf75c65d6a6d2fae2228c1b54becd429455926636a0ace266e5cf4f8858c594513daf01a9cabc4c0564558d66727d3072cceacf30b07f3e41001731226a910b6f8276d68b44a9d65ff07fe6bf78e6161bc560e7030658f74ca8b837e5e83bf40eef8f01580e61c01bc4ff4fb9331bb1afaa942c46aeca2954f37c91e34b09d336d8981d37b9f6f61b022d73c6b97a7974149990735b37f23909c0f09186d4158a94a58b36baf38f31732d504c915688541ac72b56c2c87b1a5fa209d10953532cada4a532da955deb38c9814f23dd2c1453f80c22f3c9c18b3421054ad533db055a0aae0e7aae0d5e951214edada2a811d1851ba1c8b7cabb5563d6056f5769aabe79506acd399fe2c875212435e645d02787b8e7d7fade0b24b4bde5b9e52b71e227e41d4b07f3430fcf261b8b99be508bea32967486ec4396a98e13b64bad948190c46aac272f97caf07ed42c51ec9776bbfcb3c4a699d73c2b80c885eca8e7463523a0b889de55d7185a86e9885e770afb57511084999f110c09b3c63a7f6cd78f01f42b069ca42bc9fa2d11fe1210ae06b41501874b81d31b006bac794b47a1d201387f46ca7e2e1167a5265b7f3e353366f14531bff649b245ebbeded86883ca460ec39f0860a5aa7281f847e09979cfafcf47f8006ad47d16524db1cbf1d310963ae63b1240d5f325aaa5026c4787616ac1a09f81f42c24d07ea2c05980f7c681cac3ac5e847e0414346aed0d876f7cc9c33c2a63c764e58fc93e4f7ae519d9b1974dced44df90761c450b14122b05f36092138d1aeec66293ac44530db8618f03d71ccbcd36c92d20b5e07c41e6253add0700279ef9b2d7cef8d4c3a923611012b10a89b80419e26544ca2fea672cc2c28e163542330a68908587ac90ac57adcc862c432134ef64b084392fb386aad160b4b703844c19d21804f2b98763f552238065ea0b7fd7186d1fe20f7d79f736ff1a05f9c2e06bb41ee331069e9404784803eb505bc46a8f24aa40338824c1fa000b77c9d44240c71d4d7b68b1ea24d264c7da65561c885d65671c103c7e56d801dec5127a3adb15e303839db0c82ee7ecd17ed56f2d0f20e06057ce49c57769103694b1010a433c147bd771e300378834c29198f197d8d0e9ffac14e907e436d1d8ae8624ef204eff905f469d5729333409bcfedacce25d0903d30ce8b54c7e76279adeebdb84cf8f5d66380a53006eea85a178a9cf05e129cc31f756f8893105df9953a6166a3c33351207e60432db7243c1ec41b3b73d601984a5a7f0ee4696610c95f373d4b8aa9caf945ea1791710abe924e452be6fc9dcbdc0b251f924bb820eb7e98833190365658e4293f1a5f6af0ff2f2e15fe9341e8849a4d6b70f2fc15a4824457cac95e7a2d30d39ba5560deccfcd58bd7a50b5c8855b769b5fe6e2c7b72ccef80220646beb053f334f22cf764e10dec45ccb17cd0c0540b2a97f8ea3741ef1db376b805527201b7645ef7faa321831c0b03d98259d82eb724e0cd2b0a138860b8acb35d5d9b9eb09de88b95fbfd7be3c1466e75bedb81a699c2d5889bb2554854abd8c9d1c189e6243dd99cb9d6c8b73ffabb7989c34b63b7887a3ac6928db3dca0fa63c8c56381a3fe0686887c0e47e645506c321425b54040c153e555231a09b9376a81e79de082b82a254f0a6693db3949fcebd7b1dbfc6fd33d321bf5f0d0353bece660bfa19d4fe1175da9f69e559682a219de1df66a5bab7e28a921014a9f8bfe681b583b0d702c90188ac48c1e9ccd5f3307889c4e2105e92fb2a0e018d613836e00e3571c32d4ff8f274cbc8a04c1c0904f06542e9336e08e1dc27a1519f1493dc9e73620b81ba39c593b322c67022931ac76765c0e6dd4a9940b9f59f24295e81dcb8d12e8a5863b7b54cb915579de039814d4c7adaf18099c5d668c724afcfe10b53132a61cc41ac3bc06aaeb1ee2c2c77c87035c1616fd62db4071a3d152df9a0b0d9177a6240975f44f56ab707943e36c17f189b5af8e73504a39d0dda3981f048c9ac48b4e5fc38a8d4176680e6f89069d7f71c789ac227b2de79c4e2efaaf1d1414787fc87ca298095c170fb3aea2f083818f3274d873b111dc7411d6208ead0d47d1d9be8d2b8076ce138704d7f60214f1d1daafebc96461478ed828977aeeb4204bac214d937098be2c02bcdc97bdbe28d6f46d4c23e9135a4a277cd71083b9159341509b3d4de4f0350229ff097076f753f06b1e66f89ca0e039ea6865b32227eb63b76c49ab9057873ff92c391da1ee4eefd8c029c51af368649cfcd8623e08e9fdb05055a838870b0abe6a4bda39a8aed0e5bb24601876032a741fa37852f0ef039bb4d455304f46c9644476b1d00b41c02381a3b9cc992b6ef9aad63473f53756d0537340e8d5642b1fa9e4196606c700fa70146945eacc5571e38c495859754dbc3232553d8f5c0699cfcfd4a5a35dd3511225cf8450642ba9f3321bde972e9351531e9bd9413844da740b8bf309f19e45a1610b4e176226b1169a670e826dc16d676ad84255e50844b413fc7ba54358fea8bb49d00625e6ca0c0ebeb282bb681705f83e8048130d6b18e91ed12b39dba076bc84b58ba4662e3a2e2532e6630ddf0a7acaf3910e9588875f7dda762d42824c8cb5ef7c91c72fc55b3da33dbae9e889d9b93172692ade1f5ce045f148dab01cc73776b06a7d3c3cd96da8234740bf7db378e6102309e6b8f0d86ddbbc4819bad68017438d0db7aec077aef7a0ddfad8014df250ac238a405e462996acc1a43d725d462c88bd1a175d717c1a6cf89966cdf1180b314116431543e5e4d40970fba20b1e48495278d860d9ffb443511023eddf5e048d6aca4a5272f4a6d592e937641c4b4f459df1330c850d078f8c0ce221a9f19b63c5a43c6b6664a141cf9ed8d00f23c0d37329b564aff1dac36a89f2d163327e7f4836759869728bba09862a666a3e05815ffadd58a714b00f158b87dc75ebe3f97282e2917ba40228bed2c9a203c042d40a950698de91388ea1c8a2b9e0d9033d841c033128e3ed30087cbd016357ee214d3e2f9514d6fe078b979ebda8c7bd24d56a2dcd4d6b6965352d3980705d8aae2c062e36b67a0c808b2ca59212cf4e8336e54804f0920662c18faf3065665067cfc5b082176fc9269c74f6030cf63ad2e2eb780a6bcb131f572dd14f16a6aa58862c7561b7c0d5d3025f54e31984535a99d7850359306ed70fc8e0c2e24d475a2552f3543c6b181f77a72b761d57955617905f75c041b9e9ae9db88b65e302844c1a07e888043ab5e2e9a78a0e1cdf373cc917b6b8945e7c931782a30da6f0111a1c1d90c94bcda1a77df52d099bec8402db00b8abb87b2b07808fbd728f9bbc3aff50260b602c5ab2af1324a9ddb96a52ef2eacc93801b4bd9a2700007c1bd444add0a132a0a0a0ba86fc5a05ca2c757a2a23b97eea31a38f80b07913250cb407f33b1baa77a34d92024cb275ee28e75903a3341fabdb9a12ad56308d0efae3ab4801f82816985621dbc7556f0c65aa6cd1586a9e52c5110242d65343baae0145546b39b702c4a1d569adb74e207bb743933f63e9413c512f94c64487e0b142521fea3c761813c05f4ebbe99ef18ca375a5fd5e04452779900d1c7522b8de91ce200fbd0c59faa87a81e548af11c18d2af48ea9c109212f7c679645a01332578b2d2242db7100a5eb8e0417f29f68fc8d164ff316b71aa416d9950cf7a29563f613e3f16672d967d62c24bc3b4c65b21cdef234a916ead7d8c1e9a294061427ceccca4d076e68e48e56ae01e8647b3c1f5ec022de731009d17f2813eefc80f16694a2e40e45b405b2d1fcd6b57296ddde3e18c6170fc189b8bbf3b048928ef7b2c601df936529917932e1e0c52a53ec169527e3a7aabbf1ad5bd99a37f50c9bbd59826c0981a4860e61f9a3b5368c3015b7b2637e451c1144b46997315ada4641ae75c9f17536f00ee9d1990d12db08d629a81c497f4846b3848eef90b9d7b67dd7c27727260e6a435e639d97fd15a07702654a0d1e831e8c451887b89ed8cf13f9dae7ff5566f404be0121650b965f0fb5c65812550484d95520764075359f4ac27497061432a090e94a0fc0ea218750d0bb567d8dd719a0375e0edfe92feaf5b827ba19fa1537951c905798cac56e09c3de108508439417fe50c3c94a08e63bce4dbe5a4d05b69d7accb6ad45ea35319c8b76c4fbe0179d380187c8ba1f838fed08deb2f8b202003743566e3b65c8d33c6288a8374eb0360091f98a642b48737ae2f6420da0ab5a1b1a3a6f19fd241716c56e951bf5ae5276caadfea6c1217dd341ca5646ce42734f97faad047be255d12ad393ea004e35f765c104e334ebb4f58dc8f2bb3bdaa20f2c0fd8e2274a1102785ee0bece23fd287fb7f08de82d8f227447ffc966aa6c79691a4b1cfff6c815fdb2aac31d6822f8d3f741774463953d2183f823b048f2cacc90b8aa3d096ca412cb493a83232d379b687b90c7614c7768022fc51845be31c018c2e0142122e4db06e546280327cb0f54b267516ae8a8bfd0083bb3011e938aaa404e3ae36eceed60cb012231528cde08c23755ab41cadf38dc00f968ff95bc66dc43e34ae366b560ba055b695e5b7f55fd76b38bc1d03583bd4198879a84f9758ee8c00d7414e807c36de7a2f1b0f326a01d41a01cb872e0ccd630c2b74a1f9da7d57b5d262152048d5352f15f535e9a9da88b6fdfc496440b870899a10d4320ead191deed54ea74da287c68e070d5189a4cbed827ebd794a0dcca362ad821a684b729e48bf08e6bf29523122cf60571ba80c3442d91c398fad4cd7263dcbc1cb2800f30a59a0da744a2cfc18c3c3436b94144e4f40b39ed86c524daa63669758c8a37c4e6ce59e6b6365153878b9c52c5d4308f04f761a5a17d3fa8491202d1fb7f9d3ad59695cc1b9cf7e6457fc8d695a8d56a9b7e7e00b48f9bfe7fb6f33c9f7bc9f1680f597543902a72e80fe45cee91102dbbb63d7985be4805a3ca15194736d14819c4e9a5d221acfe25677a54aa0a62235ed0459c7c8054ee379c0e77f7890dc8f5f73ad6b6238bcf4d1d4b6671a872e5c03e0caa50ac2dc316ef302825325d42e8505d842064cc2032889494ed272f680eb0b23fdee6fc00789772ea23c2548567496592a912667c9735e1c095f1f145bf52509e45ac1d8d48fda7ce244df0b6ae12c9563ef6b49c108573af7a268ba901c116fb399801325a5f2d1714746f1f24787e2bc9bfc9f5c5724f457dd8adf441f3afbe24b774d2056f4943caa088f328449b30c808c2d92511f3aec150614012a8ffecc2144eab0afd0d3add672a69dd8cc132451d8e663080753f9ef83222969b14c13c571d3b81b363fef25bb62d7311e8a9f4cb4f761e9c3edd77e076e725752be56b5f314d3d9347b09a9e96c092cd0f4a1ec3ec097d32ce72bd6fb68078730385c5831d5c3b0f8755b61be951e11546802a798a40372b4aef37f8b28d81dd4e3f168ca4f592c5f591ea7e4eeff1eb9e010af1bdfeb61bb6273d82d9557534c3e8a81a6370af7593625c017d34d00edf161f6d2e552c08773d73d1ab09aeee2f356efebd36937d22efdcc07e03f4e1c76d26075c03d72f9999d6940c6a0888b93c88bc4655dc77e164a37ed7f67a815ab1b9c70d976cfc2e031e26982cbd66748c4eab2d3b2cfdf62765b37cde94d7d2bac2e8c2d59bf9c529750cf3e78e7789f1de221757979fd9af9a1213b2933feb0bd25b5562d111f3c380d24f73c0ff63d60cee1508a963bb04b4e4e656780ef2b5b698b827b115f910cfbacd7816de0bcd22e2e6ef56ec7843d76d1e9a6c0f675f5679c6c0ed91eb91d92220d7b56e60c1598e124c34f0fb21301b9a43a5bd514c633e8600b73b57fe5052fb0028f685ed39632f0ee6f5fef163f051889171a1f7b87239c4c70c13c83f7f71adc86016dd486d40deb844d180cc6532bd5c221cd8382cfff4b2b44c002faf299625b408ec24d07a63688fad22bf043ab5c5c187ceaae8193f607f0691ba76d217fdd27fc45a196f82370fe87723ba0e012ddc817ccd51e8f2887ddaf844c49a1b45c0ba17ca7d2d202e2d465af90cf88a2ec4dfa93ddd6e49652a69452f805d8053906b1c2df7e761fabcedfba8f06a9a522ac1a7f9b9d7cad13227decb86e91be7f92ba1dbdea59b559a7b7a6f45864e8d76f63443d41542b465456b7a3554c6a6263530cf4b92e91952eb5022f9d2134dc3eed2c20911c7a71198c3a4352d06f675c53848eba44af9e3aa3ee101a195c38014d0b473c0c490146077e0d2d7183c2217ab9406f567587d254516bea0ea179d58fbe1fc9ea76eafa0158897025f8aadf842043747eb46a278b47ab9af5db25c6440ac25c2102315e2ee8bd2f9aaad3dda3071d4450c30b8a9e6892a676ac478c2d70c801cc13495c5dc65e41030e5ac400cc92277870359adacff2164f09b2bca0c40b8aa32f4ae0da337503301461051193166e08729181802c8e82c8b081872021d718750063ca583942872860f4e06a33b56555a7e1170d660c002d09164874810489255c9814456f28f5170080c4911f236237281c002c216141340350858fa38c1f6668a17ef46316395cf86051a424899433ae9e69508279e081e6af79aee567a5f6d757d1737941ded56fa305fd1dcac1ce258aa1df1a31185442a0c5c56f02878145a356c57ce8c730d210b26ac2cc42b7c2d8a57d0f9207c0d8955a2f45827fe9a2491a97f624c89f9e0a5484f8972e9cbc5cda4b2fb52f7f5d24683b3b3b3819f372695e6abd20f3b55fd7ba3eca0c73fee96cb8a027d4b0c0c884cd046f31cc796b7424b2ff756b2a04f7d61be20569150b09b24be79445d7b66491e2a86e96161ccda89b458a9e7afa22b26d1a8170d2227b5442ab360c2fef6e74ae8456b551152202bf18d60be8d7c00bfd180b6311837efc7a796bd670a5095f93f33e8a7a7ebd58f59b95f95579540dbed01f22f090a9b5208d9df4abcdf78ec725a59c7472a847996c389b5289a462a99a0b4f2655a9526302815193068d86314628e1151a3538ef52f2fd795cdb7492823f9fc7c5ccf3a7553d817808f19fde8e7b3abeeaf9337f3ac7490bb5f6a55b7406edaa9f6bcc1d76a7d47eba260ad440771387e2a4a9f49b348d407209b937837cd55dc3c68c9248ac7131ce19a18c124a19238c304219531cc9247f23994620b9e6901618e4ab8655a257a57acb8593c3130a7f5d906150c32af01b6ecf2a0eabe098a1f2359c3254be264b2610a20d6f1b366cd880bc36aa74643ac6eeeed831c618db3dc6f81d9d061a67ee8e31c68edddddddd104a8fb1bd638cdddd1d638c1dbbbbbb3b7677c7eeeeee8edddd1d638c1dbbbbbb3b76777777c7eeeea884fa73dede1d638c1d3b76cfd8dd7ea236b1db04828c31cad8de9e5624d9f3d998999bb999390061b53d22ecf138731532fe3c33c40d55cef86083c280a642a8f1a86b61882a9950a3d843f937c952c62e624c83cc0b8a000ca1c8c837389df3801a6fbc552e732398829894818f66b1d87db053da10421c14cac708ebf2b19563ccdcc5470a3e7cf8586ed24e384c5118ff8c78757776e7304eeaec66f3731cbc51e3028f2167e8b32dda2b5612a67ac7c12f8c857dea766286710f29ff639fba1ad4e04aef63c94ab497bf0c83cd4ad8a77320967ac33847e8c75aae57fb9095700ff6a9dda15ab53b34024fc29dd4ed04e3b3b807c949ddff8ca09cf83689cf83aadd6824ef650258c75c16f7584e00f770b249d4d9b5475bb55cab3c4042b76791b3ceeeb7a342b82301dc8341804eaa77340e19d5afabc416382861e4a5b2ea2a612465888c583540dda1318ef0a9dba98766d43ebef61fe753fb6f2a7f46b40a1b56293dad5461bf34f990af2d07e31ebdb59ff3c15219a82baa55dc43837888ab7495282c65e7c3bab5aee594700fae3e754dd0bb6e19dc5d3284504a97efd2a5bbfb426f27b60e9a80c4f8907d709a8a02a791df5ecac7d6f66c98f98cc4fa01aefdddff240c6e676766666666e631ccee0e7d32ce3fea067583e3eceeeeeeeeccccccccccecec1edddddd238450fec89470e8eeeeee349a803b2187e26e7748e10d24030251d4c72414369bcd24f3eb3884cf0e5be0fe106846b13973373373944e0859f27a4df430636294504ec8691ace3fea06758333e7e4267cdd50a91ee771d684628e296772f78f30caecbc516a63e333664076e6f7b6332216c528a2929824090e4551c427222c2a89b0088b4a6a9f02e21109da3c0e6a293bdc83a1b08efe662875cf745afff8aaff4bfdd80796d27194563114eec122581d3b700e2678cb5d5d23349f4d24b06b7a3b2bb834af4d2aa022f0540fa0aa11548ded4261d3d4e8c5159c077afcb231150d17e414ca20c182a231313082869e0a9fbebca8f06f503a5e4705e0d2240a3050b850c5071774a1c2d799555285ffc35b3c301c8922c4183060a14516176ca1c21fc242856f81ce8915c65475895e4abc84a81ffd325befcefebb56ce2f68bfeae351bbe1deec4a3eecb85dc98fddae4ad6cfc84e0810c76b9e108437a017c402ed3c6c3bc9d0afb355bb3d28ebe05f6f32e51ecf3af8b9b7fb8cd4dde19b5ef14e3a244647b9553cdc99d1cf4825b24f324580f424efdb87afe3cb35c21a2117f7bedff6b2fef24980af792a680f5f7a2a5011a2bd0af299f0ff9c52beeca8552c6b15ff9cb32be23197c97cd639cb9b93692d60aa54555d2d6060553b42b5e75408fbf3eb7a9f7b31bd2897c665bee2f79904368b1a5fd3d2398c926dc2c1816a20e0e840b5ff6610d26f91635310d2af0984203e84481eca57fc42d0fbf9cdda09c16fc1f7a359a9cb3e2d56b72a50dbd2f18a6da94ded4b6a7fa428e00f5f08842fbd1d085ffb1df752f1d7e59d77b07fb68f35939986d323229fb74951a8d73c227376df13d17eabe67dcc44e273add1143df6a6ce65eba762e0e0496d94a0fc8d9a1409faf563c1a0d48fbeeac76a1b1a40b75f22254eeaf6fb73772757a7cf8681abad1e2a722bcddf6efa76f17d3f7e45b68f1de94b5d693dceb8f9e611d9df4a5de9b7680221caf5844c2f4dd2132ab58f17553301d966073f76f3b90e48fce911d9f7875ed79f915a84abdbcbeebb01425a2f0564a68010716fa7b745b8ba79a9999a0febf4d68b2467aae67d1fbbc951129c571a46a9cd9df1050da3d496fa4a93b1ab8c5dbb602763086ae771efd8169fff87b7e6f3b8a6f647785cf0f763c7e34a5140fbf942b49fde0e152904a6dc9bd45756c0d058c1a17e5f61036d24271e7840bdd5ff3dabf28ecabf759167ac1276ed5a130841a6af7630417fb9b9c190a0c2cecd51347fea3a841036f4eeee7ee81042d8d0bb658f3c227b644f64c51d2c96dcc16a150ed9237b5ef67477b7ec913dcfff3f5fded264bedadff9aafb7c9a42777b8aa89f16abebd928437ffe6c5026f747e7e6d8ff20ded2f15517028c031750af423a876b1573d7da6d15d23929b0f3176f6e0efed9ec697aa2b012ddbb1d3b76dcf7dd85be4b37a7dd4b16f91be10c58773c917b895d0877631a8f3511aa6fee336a5e60bbb87b03e98d8aa1aa55436c8ef663574405c9e087346ccc5fa5f458d334cdfb1badf2879dca48acfbaa56e160175bb1a2f2afc760fbf855df84aaf2be4eb74e2f111219d48f0e21866fd3cb105ff174459bd92a117c48e758c00776d22d1fd240e7ec125ca2d4a39d557e71c1c2a6a025b608d58f7d2ad39c4f25a4739885ca437c4e4afd835609b5c762181615ff0c8a49b614ff8d661893edce00a3a6c90c6b284ae94d1c143317d4df0703d92caa7bdc09c98fecd18b9164189249641b372e8c2a954aa5da36ee628c1eb9771d274428922f3d944ab584721f6afaa38228e3a070a0bc055dfdaf920155c5b648d65386ed0f5ad59bf79550b71fa552c9d3f9a03312abce0f1f12a173dc7b9d1fff46e2f61cf3b6711b7f5f8d44fec9fa2963c03de9bf7eacd80de91c0d85627e9217a455ad692f04be6624d6186448b4808f524571a8520c343ef4a6f6f1db48acdacf19e37b989a0ae18baf793c959ba82da89e584c2ed94acf1b3397f8b7d297a18fe359b105b78352ed87ddce099be4ea37bf033c95fb8faba637bd29c22f6da9e3189f3b147c525aaa1408ba5520fedb973a22fedb6fde7969ebb852a9e4a54e4f84bff427fed2b3e9495fe36dab4c9cf7f97f806be9e3f3d4f9a56ebe4bad4bb90ce813c1c4085146fd58b568f6c0b3b7641a837e1522798be4cd923763f34ba881d5af06b6754382f8b036548c55ea9affbe964effa9aaac79daaafe42e3476d0b1bdbc2c0e26c07a59f04a82d46f6809257c2e67082aeaf50140a1a557bc9ec7dda7b11168e5ef5541979f98963280a055946d860614a4266aea40788014c510c4354940d1224104208a17b00ce70e952fb6f9a883e99e006910f50ed20d0a3040a2d4c00c5a70726b02708d31162d81f03644481c689155cf9a9f2037ba2ccadfc9c190ac312036001818a5203098c4d490a6c985f14955ad004288c930fc030225232d3d2f3f3e344c991941c927c10c68b879f0fbe9011c16085c9074746f5a70ad1922bb40ad64334413e241289442a23ebd59699cdd98bce60a8d9cfcf807ab52c343ed0e03be13413336364466666d6abad1f0a084a8406cd96cacfb1406dea0ea11153673082479a0e103e73fceef627d2120ae5f76f0e635b4839cbec7e6766a960cb82eeeeee6a4177777706babbbbfb023318daefdccc1dc6bd194ddc9bdc446c8cbbee857b052dc8bd68405b8a390e569830a1849929bab0c28b25362f5049400f689a8009fde033830c37498cd062742bac50e0282181e24b305814698aa012861831c89e22a8501c47b9ba8a10439040cc14a1218270c2675d5081bb3b6fd971021b5ef8c122cd0f6438c3e05848ef9b147a65a84851c3141ece60f941c9d60297fe30b59b0ba4be1fb4bb1ba165062a8a78c2ccd0172e7e6146fd761cd1d005bb59e04932d352032c8a0a6430050cee70a1769c0dbd49863ca986d09ae8a250ed356f8205ab436ad91cf2fd87c6d7de59b03d66bcaa7cad9bf1aadec476b05576bffad5afd2ec97fc8e798bf4f2dd49b74853aa5036336233bcf595d4a4bc513df99f63712dd0061a1f76156f7191afe4cf4929eaff53c9a22a532490fef4274f855398f6f2b916d446ea546881f4f477a89722e1f4f4a9a702fdd3af6b87f4d40b42f2a6af98a948c9411cc44127c8643ab3869a50533eb743bfee3ff2e5a4534b95ef5a8adc8b6cd352d272f3aafb1dab32d6393fde5a977c07f2168f4b3ea9e37179907cbf22a7f7a1b41ff8a23eaaba9dcc18b1557e39c60a808864a07941fec94f7108818689e69fcc4c7698eedb8d84320ab2319e3c71f24344191727a9fc373a6706a7c586f338db42082184ed9c9360db1b9b8c428bd81cf03f77225607fc8d39c042bfeea02ef296e9e17b4fb74c9e0a456dde86fa506f7d053d8752e345a9f08aff7490b7784e4a51a87f19940d0d0d0d0d0d0df10ffff0cf0ffffcf0cfe4e816631b9b1cdd58a5f797b738ef9b30420eb050f87e65484b8c74655ea9f0fd05f3168f0bbeffbc4bd90e98abf43ed4ab461e526f28d852a0af6db9bb53ddfb289c246afc1f42ba6563e806961ae329c6d8b74335afa12666eab74ea86afcde9c88a4c6ad5ce7b444c2232cca5bd24b51805d9b2241aa203d572c71c72d5b0a466685f9540eea6a4922ab5b731f9815052d4d19afeadfeef9120a7f738e4915d640e1a34c1458d7f455fcbec65265ae81f2f7936d7f6788a1fbfc6acd905122fefbf9f796ca9559a8eb7dfcaaf0b7fb4007e4c4f3c14f8550aad043e154f7b74b65d56fd3d4cfb7a3f1a2bd807d36a1f0b47a16a2253d75899e48a9457589643041dd4e7b83c78e9d151410f484914bfb15b68b172780b9a810d97e7eff8eeda06bd7fc67246e359d0e8faff9ed759abb8d33bd4eeb6ca78e796c907b1b6a4365cd7bc73d77a7e7d139a7aff993e7a3e66b5c1ce77d089a98ba797f230494558455a727a479ee00e992afc35f034bcde97f83cc3ba7183e0f138c74eb011f0c51fbb7bf8dd5dea13874864bfd760c7f84391f4ef391fae1a8cd1e0f0974c5892b340f94a424b695396c61ce5dcf7ce57fc2ca9c5ff4c7e74bbb827efc83b7560b132e7f2f0523b4d23ffde723a8ee4754ff1a63a0bf66b4b29df16bb25fa9ee4254f72913e63b54772fdc7fbec59bf81c89adb9d2abae7c42bf38ab4143d9134a09f138908252e1f7968cf9ca65cd10a59de6c2e6f03f751a0babc37fc2bca5f5f4ca6bbc8f831070de77533fed0573cda7460bba757a297095316fadc759f5e72f2a19dbe27625e31ebc3af8fd198ce5322b6b17aad78d9a36f788faf10fed1ae24a4e6c9c97ed0153219c2afc53855e0a0857f85ca1f7f1188155e89522815df2d9253d18e78adef4d5d26e81650cf9e3677e67ae7338044a68ff77a3f273b31e1356e66a9755bf412b492f49d7e2a780c085af294b4e22cd15b894f1a76318d943b77c9156d0ef4656217b2415920affa9cd26784bfe7275b78c1dd6d1bf35a494dea3fced0985011b163a9c000a8704f5a1b12ed1096cc04297d070021810941301ddbad862940466eba15a111704b53182238296aca88086418f7c41b9a02aa220c8548884846290a28c0c21e47a7a8011f990438908221f64d8c8104d29d304d1142e484034a54b1744539a989285680a124453ac104da902030a3ad95286d4c29824aa08832a2141081a85aa4b44822395465d221ebec0b2fd0761f0a7ee0d9ea81bb5bbdda33b3b843c81dcddddb51997567507d1b62331d4655a5d6f69335404323263e483ab42a4d7665a6a532fa8ca4d20ae6e46382f308a13080a94d059965ca894444d01ded0ce4831545bf69a93516d6de63259ed97b136d366da8c0619977d34c8b8cc8f220d32dbc19ec29c62b1d39852c9db707aa09fcbe877723ff299f45c165db6196d46d1a3d176b0db985e75257daa6d4c2f004bfdb6a34dd6aa9d920bfa4d2019a3fcd81581409bd10c286a314e206f919e144bcccccbcccb1ce366f49ae647da439fb96c33da8cbc3581269036816ea886c2919bb63b77e7082417c9db8c7cd58fd383cadddd519de4a49809bd09844306edb88d69553f0e994db619010101e11cd1ef143bc93a2716e664741ad3399f36e3228e344b5bf37293864c362b87387b42e7e6f013bc355b77a0ea4e805af5b339bc67be9a00ac0e5f46fd7a754fc3a2ccccabba4fe623daffccafd3903d9fb54a424167da51e7ec7cc140434ed100d8bbe27f260f602c57fcef0449eb80f85b19365dd2d3c2f4cab558ccf7e4458bb991cb9c8c7bb10a10b30bf06f37325941bfcdc8c88d649ca90afa6d469a0cf62079570f12ead25e7e8c69dd098b4580bfec4e2f5805f8c7ee44c52ec0df4f5e3687ffe6469a4c9bb999ea1f37a3cde16fb2827edae65acc0608eadd5de837b5eede65ad9fc650f73cc2a160b8ebdeb7b3fb3aeeee0e7721162cb8c8b62be8e7339fbdaca031df623640d0cf67b2ba7093ad7c017c41d876c0ff82d16634d705b47e1c7b1f945de414b2471e914fba4ce1821ef9a447f6c827f2883c22b9c8232ea0920bfd6637336f0a422943748b0145afd78b0517d1922ad57f3f7652dd7fc781aa3bb797a582b91041599a80c40a5fe8835e39c3aac356c14f0121114995bed43f4e3e20a0d4573c0479dae511db8c59942cb498619bb78b0a305832012c7cdc47782226030b1b7705d68f58263399c08c8111d8aa26db1cdd7e66a3593e46084f336094c5587608bd9772e1890266285280c2fd0766bf71d60bac6e5f1e2c16120a211cb212638cd17405e5871be37a8c4fb950fe58c423d3e03debce5ef507c1f966102a68bb9bbef8f24c81c6779918db16b252118a1362044c04d58f724a68d7257a9243551d795da227383c5992c4b6db9abf4d4fddd264f7d4dae1171f7ad0bb57689ed87e24083aa32ed10d68aa17052b8b940af7460b54f55617cd20abfed07f2e51fdb9ced9aa3fbd41356941f5c7f928d5dd090caa6fa161081e1ee8f49caaff8f2675870154ff2116e81296a8fe1ae81c0daa13d56045f52f72820ed5df48e720a0fa83a0a8faef740edc4a640397ea5c7ea4545fa0ce5922a034d59fa138d10d5daa3f47e99c9aea52ea32b4f23bcc601e2433783283a22d8c0803c89b788d23990251eda1f88c941830b1040c28a63833834d4f13e8f22dba683b60269b437b4df2f0968d5f9cd47fff3cae1a29e805e9413d07cfe3dac04637e9b4f1fd361c05fb01aadad7459f5fe922239c0ee52bed531bc31ed51c745dd4756c7d055d5478832b745da91fe22bed7f878a900dbec6ef50d9a1228483efd71ee5ed501182fa94b7f3c357daa3be86b74345488d47793b3c6a6ce0ed68d95171e075918a870ba5bd8d31e8ba36f875a1bc14003c135aa5bd4946658a1414f1f37ab94ef095f63656141955ada749fd68b5b243dda0e397afb4ef8e4403fdbaa86a2921fd1b7cff061eff6c0eed6fc050edbb48fbf6a27dc7b48730edd7db4803efeb59d56ebccf5f34bccf6133bccf7f6cbccf81a8f779d0c9fb36a6d5789f5fa99ac9fb7ca86a9cf7b996aa6d9a7b21799f1b550d6af204b92c207cc8ae72ef05e0d3045b07707777e1b6480f7f7a949e48d09b2357c2aecbdfb6737fb891c6196c27f046aebca809631956bee882d684d96ee0b20dd19bba444c864a46505a97884995ca440ad1cf955dc7d1b2a6006b8a280616d636537b06b57fd7668aa0b56010ef879721f3090e5289685f8445224540f33e5699aea874ee353531ea14cd8800000000d314000020140a8844229140241e57b6f10314800b76924676541a4b845110e4388a52c81842082000000300103243334327089d468be4be765352a73dd5ed262642eae596a9725c95dca7054125919e68e3a3cc940bc95f5c8f91f97771b40249f677a9e9704ecf67ed24ff31a3d784e96706897c95934c7360d6b90e99f7f7d9ae0cb02eff6d3be1b40078aa9dbc0ce74ba6effca33574d15c33ab308fb3e186b4120c1287f08388d6d210665b805380457b04bc0b0905a8b4127cabe81854421bcf39245a825a188d4f9e4ec79544fb6a8a239f877bb05dec2c5709a30a92853f79cd9cc30953432b1356a17264ed65cba4015c2f4f8954133b6b96d3072df603e9f2d399495755285072e6e1a409f314c8e2b47a50e56b1397a7203ff554151538c5ab50b29444fd23f53d1e73ee33da0631f7c8164db75aa10e4acb4fd5af6acfdc2a19aa6ee639a6cbf897ac9de862103cf57abb70112e47aeee7cd94fc876f49088b019d71b1a7e4fd1aaa92c88fdf77367de7512329aa8f60d60bc049bf96da3dece087041e8357e2c3e25fe6fbc96378406544fc50a4eeda8d5fe5df1bc815af362af772ec70b1cbf24ee92091edc1641fdb788d99ed7e8d3fd894c2ebae832755322153daff39ffe3de63acab2e4938b146e932cd313151bf4f435d08b0f7a5a1c5a56568cd44b702cc62b5801921c7dec94faa3065019fb4878fff5313e8602e027ca77481fdb354d14409322bcd95c582c87c34a4e6ab8075346a6c56b94c5f1f2a29703ab2a3ac0d397d20328be874ea0fac8c07b0c3b8195fa14c78da6577adb8233ab4a6e4c27dd34bbf63629458b4a5c7c540c44c10511813db558e3e3a156ad12d54cd1e73d552fc0e28c31b6f4e53124ef7e51350682611627ab8ac03e2a88846306e6ef1873bf1956434541a516ecc108f914115adb91abc39f88a8a08f8112c5ceb2fdb483c8c68455a9175d2ad11ab8d7ca5aa0c65d96c8a8342919aaa072d09393a986ba297232e42434329867ef7c962d09cc9f12104343c7a33dab3931dcd8d33e1cd4f5d292635a7a534dcdfd6d6331c01fa821e45f9935f1a428b65a58792614e2fd65add6882ad0bcbb590734e5831c672d8e4960832b438a93b933800e458dd8482cae12ea52f94bb8b8c55f49c010c131d7ae1d09f39d1cffdc45e571976ce4f06f1d67701295f0fa093b047949c7017c7e45a68c2906c6303a65ee58765a658719a529e85d843c735b03c12e310ef3c719390d6e2fd8779f0e5b4a29c0701d1ccad155ed83740b476a8f73c970dea7c3a4f7dab3f76923cab0a34d4afe7ef4bf13f371a44b14d655c117e3877516ad9e1b25c6be3f2e782867974b31b13ee26991353b2f4263f01a9c856ee690f05c0405aea9d7b1b325e5cf875ef49615517dc50e828b0d27b28c68c54a73bee3fb129e022508e0e9ec06f1ecd8981d6607fcccd9e41a98dca96049207b527c467f0c71f42850dec2243511683aaaddc22da60d7d04a54da83e6280e1bcd25ad3fd499c966e0813bd2a0479ece3fb115f503c9900b7a1a329e255471b5ea55c29fed3e880c84a9efeb5c33205131c2d457581d6f9a2b12e523f6552d19b68253833bc4e9dd95240a83ac8c387de693e6bddffe03761595868b4e3b2c3b5b7d62fcc22d69591c8d1a08f9db1e396e61ec8a0b77234ea2aec4a8f43118b18b0ad36f6e68e90731f22e694911fcb9a9f675a36f2dfd9f06e4b629aeba8462f26175f1e252c71714ce67e30cb708d5ee94170ddc782c537d1d8fa01dd5e0495a154e45a8cb2ec513f3312c5932370823c4852220a53e4072bca48bf343be65217b7f6fc15d542f82d52f44ee7e47ad0aed11355bea84c924373565adff25ba0945359bc3fc6082641321dc25c42ded3eafc0ea668828760731d2f32b5e4ea95123752321d39a6972bcfdc92a8eb434e2b23090b90a8afa6953ad4b40ff19c11daa36b77e3667210fbc2be744b64d0e24d926ed184607c9b471e83bd0e45027a9650df2bd452bdc24b1064718257c7fd5ff7e3f0ba56a5bce115f0023c270b98891b72b444e5ba82df42e1820c2c0930392d7ea4a8a84362ce5a39c4896f4dbc30210997fc674fed0c25996c5cdca64683600f4fa9634ebe690709aac3c13a3b3afbd7f50a6e7e06ee61c10710cd0f97de0c55b73aa02b2fcc9bdbfabe47debef3e27a1a584f5b65bfec08814de69633117bc3f11ff4b149b24b3d3082d3c6c5262d2b579d4479209d86c01478b47a8575e99d7c8b2563bec376b729cdb46d164f4abdda37dc6ec1071ec5d523d0cbc68e6246945c46ada35c8a763187c899c189c82fa0f8ad01e203f566c73ed7353051e0df45762ab5c8a188b6f67fdb74e4e6d917e0a44959c804b84e3ec19dba0a6e989193e664735b9d1c061443fef0298dad56a0704d5f54a2aa92ac7ce0b8e9dfab15beef972da607f8f0a600d674f325bbed2a4298c376d075a578ec6d0907e66c0f31074a285caeee7f0986beee279a715290f4963d68b8786691fb216f431d29e950a4161402c15aa902d5bd9f82ca739e5d2d11d8011f8e3460cc1ef0e827b13794f40947af72266211d03e3f8c5c002724600cf0430c4270990b5d2940abec8510abe8eb803d9cf33d21a72c883152b48bdbb6ab6c15251bf22d9b79dd9c40887c38303328eb2491158c2df97d2bed738a37cefc71860f62df3bddfa2b5f154bbe8d5fe506d1075987eef2a520b6cee262c363ef5734515ec61da71af9c043273838c64437aa7a321f9fc516b1a1d23bb0f41ecf07445a153a5c11d612b66351087b9b8969df19ac7fdb18611c6cca5a9bbe5f4db9ec05aeee7add44223e077301f6ce9be123c05060a528f6d7c54a160bd6f4a655deb7d0addd87c436deddeb1f9491d836fa1418e5ca9000456318106ffaba28bcfa945b866d22fdea8b21a2e343a465dac29c3fdfffb2a3657339d2b486cd3c490a29f11e225c8d65e1f9c75fd7c291ba7dc45b911c0cf0b8a4bc0820ea2019d0b40d8d0582038acaae9874085eb80fed52ddd30c5b3fed91a7fa1ed5d54974e691edca8c4e37eedf4c0c0e15c6605dad622fcf712ffcdcc98435e4d6bc0b9cb25be4f0680bfb68fc54cd0e61acd3d497565ae87c8dfd9a4ec204af576c1b9843ea6ce86e607e948d5cf434cd307491117748721811238aaa101666b135fc2ecc5179692eedf5b603be39af3ad305e12b8eb51dec118b3cfa84d1b7f06b4d39d160bb0a960e37031b6246fc0c7b880c45e0a4b9a9311f508008e96176a504328e878fba0d20837c4bf2f1e3156fd8d0680cdab23267ff44e4e4e4f5a472c2e684f4948e6469731d5ef8344feeea350ee42297a492d58eaecfcc8c0b142b885cab8050609133ef99a6e33d09c0a2f988a8181807dda500fd86a0127127b4240e643cc623727c0592608ec9e6341a75b04e6c50da29f92d0da2bf70fb8b157ea924f807f9ffa1c1354769d8680d19366cba8f1d2f8ddd855b1d9a9f039189d086de3cc6cb16669e364434a19cb682c620f3209f610ec31b7fd57a284736806f0809bf1072c3c57285654a793c7300425cd96f960c43dbe4d90e0e335de4e26915d408d1af0df3d9e42b6aa76c8993c59345aa8bfa8b46d875870d20eeb6ed6e30da6c547979a46bc61b7e5136391e38811ec43cb51c715ba512f4f251f145a1dcce0807a1e8ff2c58a7ef9686cad3d52068d6950fe22152c1a1ee86bd682c5f140fcbe1825dd6dfe1b99f90aafcd2cd9c663798806bbd563466ea4fcd466753529d35489d9ada72e593f6750ddb48dfb7a4a61c50fb36afdafb9dfb694252e8834bbc3a10e87d258a6f5ea33344583039078d056dd7f0d8a08cb736a9256678b7d0accae65e4b1357520284a2c9caec892eb9a0d980cc938196fd779a4b034596c566b2b47c62fc383da106ec6a738fd0e7f29fc205a352fce1ebbfe698650f0e4a1558c9237af033d6ac195b45dad555db8f62abeddac6c16ab5adec672833a5cd29e529dc903b6c788cd46edada86c90d0b6ab411492185275b2c2ceb48f6462496d558f02d37a444f7faf4e7de9cef057adedb94a79b44a162c3aa59c9190b6fef4b49ee2e24e78fcabf03b62e5633f955d3a0e1b33b38e84a2294ae844fc0bc1d7ae0f9f083b0c1ee8e1aa606e5640ed2d3824ceb14091e277bb60aaf66bfc8d9be00348715c64aa8eb5776ceb8089ea650d875c5e31e83d4834bcaa8a77016d8ef5e354383c96e464d0209a981933aa2b0cb72679aad1180d493c7c9949f83af251ab334545c3a36825071adeda622ad8b2df044a6d4340c944a0b683a16137b9b3f18ea8be3649c267388b8e831433f095e9da76c0312e9324432b84ac7259b23dd90212caf534a8346810e5eeae484b56d76b508161713dde5f1732bf009e17dde607d6fde1b13eb22fc181dcfe7241150dab927d341c1d694ddbe8ab5d47f83183d2556c659c0df1f635f79581ea9c83263f72cbef8f9ef6e0ee9d36b9c68f8f05b95c071555ca7f8c6f01c14d506ead5c368ebf446216883cc3d42da9d131d10ce2a2d4cb7adbe1e039fd1c3c9034ecef011d695cdb43f4310da96aff8d6843ebe1113e57a6e1274131dc56174263a9579017dcb67b58c0092419ba81b0efef6be03d98da4d2431b5698799246325798b3cdf9e57376b335dc8c3be458c46147f46663800aa4e4a237c5fb322644ffd0cc33d297156a967042550a9bc1ff65c7f6c5c0d7fd81b744be7358c253fc79222ee95d6dc1fa6ed875a4cec9f008945d15e558c1366cdd37f5884e3309f0ff38a0bbc793663edb01f2a47b1c7af644a12c6463344a471eea14fc053bc08e6a10534ef5365a635ea0a04c47a62c37299f2c31bd1865cf5ea07a034bbbb83bd884756e7350af0f5fc87da625c47313149fd942e1d0779246264855554586ff74d2c56d0abcb66efe148bd01c9852997e48a181fd0efccd46802749108710fff4de68e8af2d1fc5722a9b4e23d89dd5570bee57b4778ed5038da229fd839190b9be1ef8bda563a8df516e8de8288f9040587b7b342be5f42f4f8e7643eadb5b080f7565a06abf9551ccb888c19e1b8090a836e178e4ef9662a0630f79b9915793fc66f2fc27ff96f27a955f6a79b5cbcfc1fca2f16b86439664b443a4401e1084f7fff1afaa5ee9da7fe080b66c5f4923de68a7ccde4647bab9691c4dfc7c34a7971531a24f994beeb5a34473a45df9491b74ed750a11866543ae205a039a8f54c4f366cfab291e4252e134969b0ad7c99c678ba23172be2afb7cf4962ee73352b5e1074c193212562befa44f635dcd637063e58651b45b91d13e158cdc54987e4e1717e37aba0ca64f8802d837536d60f87fb12510e8859877c9c53ca04b9e7f1e3152040831fb7a1c4e94881e34499c2cc0b8211d7b8a42f3c894213c1608606f983e7b25a11091bd3b215210ed49923be2e0159deba1806eefd0a8b640d6df80f008a83076fdac8a2feb30eb3e624f04b673de1fb8d500e569423a253be543cd3a3f3fe64934c4dc98f6e43be1f1075ec559e54f97bc0014cdffb2e3e7ee166beef294c7df099b6ff4c8a44c76738535279dbc9ba0e593597cfdb20c8618ceac5d118d4cc1568e9b3760e89c7b3495a1bd1fe1bc5684800f97d9ebc742b2ef6ce320057c4027395fdc1d4356e90ec8f00c998039c19df618a879f377f5175eacda8576f6a299d302ed0b26ab58a89491c0130a945c77e8b70ba28f72775ebf08d5045c99958d2840d1a5152a74943d676e5dfccb54781ba9ab180d84817f6733467aab2e2675d0a5e7d881468f6c3af6a2c963d694d55c5a07ca96fba427686315c0c54d661409ebb5b658a621baaa5c6154d87dc7a3fd17f0a8091f77410dff36ce6872fa830fcff5b506a07eb05c684a739d0a0826089b9a71cbef2c288adc1e231bf8a6452e33b1893d4cfc3ff3cc9bf31ad2deff8c219236fd87ac2c25400e8ceb05c5cf52f30aff99db8e70389dd2dd8ddd2874a0d7adcc779ddf65b06296b6a4dd14ce722e5e7a6c95e0bb6846513232522cf9aa242009ab841ccf203502cc1774ce9d864eedcb689f5fa870081c0f8fb588f5fd0c12d97c7a94dee9cbfcdd0e583e43a5e1a8f53430a6057e6de3c5ae56528428dd1d70399f8c02039a6a52863cdddff01224587e16f37152d9a5204be9c0d8b705f7666d8d96c29fa6340d9d284353ae925b04dd92e455d30a17489c8dfb9d9918ea48a0d26431541277f344d6dcf6abdad4c7faa07acb5d51c329aa412122cad1424cc6a7e558c5f1c423bf06b14cfcb947d5a72e4ec07781d4123c17c002152a98d587db1b68dc3f65bae2094c843470546ec93909cb644875d33fab9c7ce442e2e7a5d630bb41342d470ac3ff76fd561008c6880b2b9d7b2eea6b07fc40cb9995363511d9d4cc557ba1210bef0f820a4d1c60fdaadf7206f7fada7aa8dd0243c853059b859a211d7b056ec68e13167876205dda4c79104423045d39998b639c4dfa167a91111c0a5161fbc1180e57d44eec3444ee6151015ebf8b6bfcaf0f51d05e93901854a49754b512031d008f5f846990d4cee1bfe4d42c47b126c41299e4783c992cbd977b96ce54169af2436ff3dd1b31d44ca9264ca42662b33313e1f34406fa6ca76258d441557268f14f1080fbd1ac2a2cbe31d5d2e83eedd4b08c834fc9a3996fa962117f906a4934f913e71f082583e67ce22b396e3e94d66d5e01ba08768ace1ff428c9912682ae49f3b4aabaad61d16f76dccd8f11bba92684ed34e76406d921766571212de25357189e790754414bbd63cb11bc042600472688a27ac436f68dd5d9235c9c1e8a36d2cd20d05b602d4f6745455eec19cc8e7d04ad88f02583719e17d3e19aaadb5025f4887ce8f2112d2f67fd9950e4932433a0915cc8fbffa87c5f2135230174924b9159ccd3b0e1fe68fe43f8183c4ea1f7c300b2145bdad9db0ee04459ce13ae286d2f0d3c006303854e0a8e2b81d2cd647e1abdc5661fef8f4f09c8db663ad1899585ebaac986e4e8e9b245ee3b30df1fe65c97a8246a01b339953b1754e908b1550105f9c35309525aa81a7c979916dd7e53a1128d44bd0594c827069152d27d3f670abb7c9e1a2c7e3bd2ee25fa82e79022a23fd940e015180d09119ff8d6bc650152b6f8e3633e52ca8c8f714a5906d7db9bffee6f4b6f5d374a8868365bce4ec26e7532c385f5c99b17d113ae12a414178d8e7d2624d67f8cfab050ce8c983cf143b9c9784f414b3b5e3c467587f86db44a5a6227c5d92ec1fe2b1e921c46911dfc8606a5fe0c274963fbe8878aa0cf624e131907fd27ab385944ed75992e1eb0c0266f309f89b1b31f9aef24be994d40ce3d3839b25fe65de12fe5c17b6013c0bf9ba72c8429c90b80cf520af7b67c126cc0d2a163b9e327420a7c3873a1487ec4cec3830988e5306279c06b5a9f79b0b47484bcb3c8a8b81284408b079a1901ef285629b89960aff95ec6c1a8329fa75c7b2369704eebc5affdb0418f7ee3fbe319759cd648437e9f3351a6281d1185df1330ad052492923742a231beaeff8df13cbf08a72a055795fcb09b3950aec024503c258133c05276b620ae1cc1eea1e4c226112238a3c4dc352c9ff5a5586b38bea9c9286ab3f973bccddb4c1a9cda6609b730ba69a3fbddaa1ef086e8260a4133f35d130ed69857cc2a93431e08614659205b41205c2f54359bc0d0b0d1294954890f6ab886d022e0d609089ce27db349be210d453524a56e0a75d296b81c2d25fd544f9264eb82f3207a46e6a426a2c083c0ce8ca50da08e482b7fd84a90a21e9c13d8219f88bcb17a8180fd7fad129601b3cb1be4ec9b77fb7fe2734c7e852ee4892f3b1cb4366faa77ddd59e83d3b309d3a81c3835e4270d5e961c17684a455d19cfead64363a03e50c78f9f252184d9013dfa47c07d1687ab808c2867668e0d882390346dd4e4da19f178744b86a8957ca7ebf60c00b6689ec280146b706c86b60fb991b282c21d2422881c1ae605bfa7f0897b6de9993d860ee009eb06a25f3266b8363a710f4a4b9bc3166482e36b5a54b9efa7c13a7785d3d6d89beee61436bee22c1687b50c2da168b10824f86a9e6e93575b782d9597e9f0624f544779818597dc867422b85d5c7b7bf3a8800b14cff05570cdd1e654339fc404943c16dbe5ee1f1d3f45dfd5c1875a5fa94dd6971c30931c2a77be5ac3591cd6beb8446c7f0a452d4aadac2f486c21e482f356a21ca3f30f1621b41ad34250b21f2cb84febd5840a27d56532bf022fa668d7bfafb08b832a8f3a75dbb543c0458281bc3f197eba1b1f7504ba073ebf6eb34a8f7aeff144bdf595c9642a88b52f492d77e9fe9c3ba54592344813e6c0bd80dec7a1ed7a40090170778d0ab7a73c53f3140eff586914f26bc102a92a2ef495dedf582886103c0846e4516ad0090b307e4d4a84da4a102f137e2f357226ae100249e6b85481c3165ce9c1a0b16d2e39a41fc3aeaaf73f48549c49344103e1e6591fc6382f701d6f95fc01cce112aecdea9a36f191b60a824ebf4c76d2b601836a5a23b9b2361d7d1978138eced9c7d22a85389052296b0b08d8f8bd3ba33c415dda683ce0df805bebc85816c40e785b9384913f32053b4afd8827dd2020a60470a3f7da2f23b056662cb6ca6853fb1f3296525fccf321a2c3412a7114dfc7f3c47927f69314e165968e4dad23c1899a603f3c16faf65b608387aff87a96de8b5461cefb854d57323d85dfa49ea2ed62dbe90bcb2bce6449f890e698ef0e050c011d481d659bb9bb7be54365e47a3163e2abb72bf21e0cca328ccbb68037ffd1f023c072cfcffa68eabd1586814fc0eab93b3ed6e96a5eb3b9aa3f4841724e509002ce09a29c5099ad13eb986c24f334b1fa49dd4c8fa2e17c48025c3e7bc3b4a69ee6ddafb508006733769134d14028cf2fb85bcb384add6cfc707b67620b5d7bc252c2468fecb027c295254d732829a8ea9018aac16303719536a3e0ac95c695b965a7da25d8337d9721d2b3a4ab6aaf9a77475177845e786b789c3afe0c0fa02a994925d345f492ff8056bc4ccb4f588fa16b58f2d497e4c3aa5bc2d2246258bf9f534317f5745b879c85b37aa6cb4d90ff01e7b950e0108163cadebe66011da4e50dfbfe02715103124a067870a5acc8e4c721cb1882d2a00ee81888a93c737670f7c9cbd11ce0dc284dfdf23d8e4fc676398598608507889ee357735770748b1656b65da0bdbd9636570cbf4b639df5f926032fd3f6ac04fe1e46c6153020edf0cc1bd1f5534aa3187e0f33d08c1ea7f01e197c60c781717daddd1fb656f3a5ae291e8aebda3deda97dbaca9a16817e4b0f6329d83b114bfd6b9a59ce364b215bff3a7a3957a6d8348c13396280bd5da7c42a18423b361ef5c0debed5eaaedfbccfcb2ce2912eec9cf115b2dbcca61bffe31e79f402caa492b2f39c2433eadd01cf15a601d634d8a2f3308a6596291a2dd5e428b583677c14c0fa5411c2f6228a34a162e3e525b275a68ccf283d1cfdb1c671dab75dc41afc7967c3da7f6f1357335377c61dcfad4ad56d2ed6479787763a7ef7537165858eb3f8f1e994597d5a0647ac14f24c5f1328974a21a53de7894a15926048d58e2dee9491b6a3c07851c556955537ed5e672043032cfa2456b2acfc5f96925abf273d2ba158d8e0e78fbe8d3cdda6ff3787778e309f98229ac8adb608f244cd8dc721fceaa7f678487b904ad98fc03bae7ed439e439838d4f78361e05f500c7cd189f084a4a4df5349291f4702de37105e4d0f2d03ff091ba8a74da3033dff71478ba6999745a35c13bacfe2c7808089e49b82be24dcc7afb193da0012a3b7a9261f318388296d461164e0b53d2296b6252d18cc4860acf58a8389e9d60e9f5065d0a16d3b04f816a07031b82c39179c8b3740eec5ffc5a103500c14e9367d148e323a619c75c24b7e18e630a8ca09101434b392c04f642f3b4c30f563d1205f184c130afda38e2c0a9a14037a634cf061cc2d164eb62992ce5b40a2ad86b15a142a5ca42fe087a9d5d391646127e432ced972ddd23c16236bc52c7e31862bf10ec710f1945c33cf104ca746a1defe9a44d1dab1c20f0bd27ad86e08867f2d37c51854bf743f85be48337576c5fc0389e05574f89780977e0a02eed4e0f4819abaf43de761efeef438bc038cebfbb9d6b99d63e323c97257b200fc35bb791ad7c035c2386cd3a20360e624e0d8b60a8b5d59d5a6d001397ba48df653ccd072612878993d4fdc72b39649c27d7dd02057145e42c78b137d5f7a932b5e145c7a5304a659d90bed42fbf7173beb6a58324cf4daf9f3e514320e756517d45cca23aff9af3e66e45c35de69b71df5db0f50b85590ec4d81e40ee067e5d75badc30a196c48bb4375c6299347d2f06b7db72300c0c03ef9d93eecef89019cbaf9024110ed22527f77b7bb0ec045e2b61ec435239d3fb77d2023e7f1e3c6d3b1cf679342395047ea2d25e064a75590535eae5ea7b105e55221fa4fe612e0752bbf76b42727429d6b0f5bdad01a4b86259c17c4851a958534228af66092a344fb64ad211e699328de8f65fd2591d19d86b0c88d7c003366100dde18d43cc66ac58ed6e3423c59769a891fd2fc46e806cbe749c3c715a03506336d64450ea32677475a86cafca67efc479d4cef6fe308d9ff80d4d5de4ac0e886abba94da86c074b9723d268434d3bdbe72b8429f65313e66e65470678268a1a5b1fb5a2ea6330fc7fc8aec927bcd2d1b9a1ae814551129dc98f410c7b38009d4fc566135fefbe4ea7cd62eca8363eacdf9e386c9959f0fd49ca0c27492c52f4e05d519841610d780a831efba7966d781931d84be7a47cab132a7d18291399952cf2d45c556004a8d8417d1166803d8e9a240810c42be041101c953de5cc43b406c695729a1210c792620afdb8ec25a526b07efda13f9850bc738f6427ee2fd3bc037d6ec49db799d77229e4b114f2be8bcc325c46fde28df6c6ecc341dcef1ac6279656e45b431162bbb806a88117247bcc78aa9b6d0ff6c6a0d8af3f2b43b61ee62fdd6faea09424fbe9bf0f403d429d94d24fd9ecfaf3cb71cd2ca04544a007519ad06f25c6a5e2fedaf07eaccc92aefebd9c45a69a162aae391893db947a6298ef1488f8eef3087e1e7abcdbcc761ca6a62dabb64504dee2ed57e0c272b9b4c30e7d88f69a5d34eec54dc3ee4e2d1adec1a1c374c441ae6307d3097a740c8d340609726b0d950609b6f762fad9048ae93484a2facbd02168d97914a6aecdf40131d268dc5fd2a5a19dee6ebd5fb76db349316603ea187dc4a2f97f77f1e3318dc8f1b13d09973ebb27833ccac3c134e1931a7a9e86b60c50bd880e9ab9586e56e70f373ef5f762a2e13ab10119086e8fc8d9fb592aff4b8b3e2e9edc575ff9b51f160e13ff207b6d5eff1fb790fb6e0c6255a6c028c51d1564523cca4c76f6e9486d99d7b03e126974f2ddbe8d1591d3e2eda566ca7c1214c8e4dfefd5ec3e15fe4838693db4a19a639a84001f6fa08f702b0d9f2691a8003307885f1e51f70337c23ee440c0d91f0f53e9e6046efe9cf610cea878e05a3ca828e3e17d4d59f7a07bf927f62c40b46cec9defe93c5360ea2e2273d0510d8b79d16a39c9d4c7867172cc3d24c0a2c1a76c3af9093f77dae2533b632d3afc1245044fb7ba6197fe7e205d098b68291f39da6410a7d45c4921d2346af9ed1ea57658f6a4283d245af6b056cd0a6bdc71ac3874d629177dc0e80b6f849dfbf3ce1aec3c798740fa1f6da3cab102aa7d1ab1eb539c2dc0d3691a255548c7ba4b103dd09c199485bfc25a45d903e9a81dee701d9eefb2a5b88a7473c5ae8b6fdd66678a45f42e86dc808ef5e7f300e3be5c0a3ad3e9b071490482481b6ee260da3c1eb0caec37f30a892e2fb95ee7b7c284d2244baa78d9dc1ca58932f416993a2c12a73ed89981754408b3edd21c5736682a45c874ba448334a0e97c0a55ee7bd890d595cae60a13cf36e78c0512598522175d6086d3c98119a19eb96046bebfecbf018fe9c488d90b13d72a8c0b9cef543462fd1f7c45d026174ecb58328d2895c14fa5ce7d3df845d30ae43f608313576857834bbd64a2dc63b6cd2566ff35af0853c50d4f8d9999d0d577b3e25461cf5854a053e6ea518b4ba1666847a649db99c0e277a6eaec35f4c9e0b165757bf487425c0de386987b8ec184adfc1936e561b425e951f30ba98d405cdf1f7a15931a0f483e6eef6739b154b6ff70f73567680c0ca52a5c3105bef34a26f2ea287649b6aaf8f789289344893a071eb1a95b9e2b446d647a9fddb6a948a1aea010aca943f381771f4132b75341426723265bd4c659e71af5f50e47004bbf6b1ac45c5069e75ba9e246d44e138615b33731cc26290bf66e760c8f81b714218b3e2a9bf38798fafe4f731329772b4c1c8d9e03d98968644304bc20ce66fbff20eaaeee63b87615cb0598e6474e3c40d5ebd84443d1f3111d390a1df953c8af788b6591590c908e70dd1df12855cf370b24cf9ff068a89688b0e811611fd5ed25c7eea59771412333368c0c54c31827c2098d71cd5d8ce8c1331fbd62f79ffe3091e8e71cec8f3c2755d093e3e3987b92a33196ad12f686d31ec9f1ccd91b19dfe84d18189171a4d2ce65134d86268f95b2c3f86b10ad9c33e7aebc544bdabd15c3fd8471fdd3a1d05b317c98286e25d5065634f690728b502d9fb460636f226847feba1d4de1b0c516ee0233722aef94332e4c707526e8d5e581b956d957877efccbcdfa90d79ae373ca481bacec873b70776cec22a0c78ab59b4c1b6a91a0a68d6d45d0c1a29d6b61be83cda63289ed933a1caec5fcca387c3167cf56de52375ba0f5686eb0f7a0531c1725b6b1b01d922a041b127a7a47e2e8f59b9751476fa3a2ad7083966dcc42c8e9c97d830b8b94492933519af3e0e24b75695e630f30750235179ecf5ecf215c7e8a9d037a2d03fa7543f556b4855c302e0e16b5c0b6c2f9f0d3d4c145a2e4a40c3454023e2eed7834ac55127d765073105518097e12ae00fba16ee71669c6f1b82b03ad6098be244e9280cf2c9d21eda4dec39bc279b764a07ec6c5f786dc6743feb1396c452f8cfb8aa7caa1630a0f980ac66dba1ced129f0291081e9213ce34c08b187505e85158a20259f38bb05241f9a15f612101fb729f499ea646211357b13d09f7206f8b8ac1bee12a76db95c12e4da6f1af1cc85f4689b93dacb23efbf1d79f9d3594120b5fc2c639706f7b951622d693110080ee39bfcaeeac8d9eedd059bbdc489d923a6b5bf65f5801e392e71ffa5838cf0a14d8b57e7a1a4939c9fdb8f89b9eb3f796eb8464055947162a9bae3ed48f58457b197439aff28523e2fc240a10fea6083da94bdbc7e86786d148763fcf4a84599a38adfc9c2a2dca1ca2304277aefc37baf6577b19f76cb87b2107aca6a947f6fc1b10e1ec02fa4bac77cbf9b83db74a47f7c367de1e6be77b41ce5c78d1ef599ad1119de2e13a1c7575792306aecc1ca7b4cb52eb44137ce1d20f371689aaa2b000687f0be373ebee6586515cd262d1507e7943d7ede3deed0c7c545083c8fbc9963ae07d85b2f40aae9c9e800faba05cb144bfd0209dd01f52f541132ca5e1b3b7d4ee4362c666bad2a0c8dc5a87c6a8b87c71930052ecb0d39dbf8c037211ee5bffd1a3d6d15b6015559b67a4acd1e9ce0fb2741cf0a4627838d752674470fdcf5ffb3e8e966782ebbd259b75df8ca5e46d157e5241a3944ca8d59623935884f445576dbd4f971b740647786727a3a504809b739186eea5ca0c12f6c7dd586f2ef70eda801cee5984bca8e4a399c772252dd9092f6618e8ebf44a132bb2e727e9c07fe56dfd093763d6a0c0218adc54e17795d95abdab986a2bca1d5158ae8ba2b04dabecab4fb68ef017ff321315ec635ab145cd0cd71e5706d78a555c8758c401d6affd30de2ac3b2fd70fdc97f06e83cb4ea7d5e547a0bead0e7f83eebe9620895792c6970fd47d8dc3a4141bebdeefaa3c97c02a4f85a823bd6cb183ba1b9b871cd96681a545c23f44733efd38ab8aacee93e7fcfbf2a5042434134d625caea1a87966937424ffbe3a5fbd25f933c293b5d20d3c0833f737577ac1327f0f776e379c19469c12e8d042e91faba6cf2d67ab89dccf1314706b87e1350d5ba344800b9f8480bbaa34567302a490bafe8cbb6d4855ef312c54ccb92b317a4de15a3c45c9dae8083de461643c8091c3bc9633043cf00bad89e76befaa63d217213b3ee8348dcdb9d16e4f9b953f06fe4f8db292cfd38bb08831194058995cb869a230178b364afcc12c88e0f8cd1be36332a7333ad98f12bbd1bf81a04ee63eadb78eb3707329982f9a4842e102bcfe0f394440487a82d4e57e805642c29ec283dcbe2e7ce7abcf7e44226b1e294af8a4281ec68a1d0608e09827449ccf84f5882a7a0711af2512064fefb5d96c09857cc01253b5eda9065de8afc5f4315d917d2ad0bd3af5d392b425dcf9bef2c7443ee3ded224d7b114634c302f2492fc606cecf97e098b651f7e089c12a487064f183d78f0846bf59f5072286a41b5342c46fff63189730e9a73ee43c282aadaf352563bb127e391b2ba311c836782108dcc3324df0bd60e2a69e0d5aa600bf1e8fefad47664e4bbeab7b955ac495d26653357d795747f9afb50a58850cf87ef7f17d39452a27dcd6fc4a94d497beb9b37d12d3895474400caf9bc66fd4cce470655c645e8bb9b84796ae1bae03e8bdc861dcf4d24ddb6838668f13b8ec3f29b56bb8cb337c6d9dc08dc7a37cd390e234e44ee03d9b31896bc13022b03f10ef0317e81d0dad119693aa16496eed55290b4e7228137389fce33c416aed94ab3cf95908f3a92ee2a07dd321d4a72beb7468ecaf738ea32ef6bf820025d5d79d67bd275d58988c0ccef5a409de74216e99786ff36853f3a4784c173bcf8637ad95720c69e54e7aa58180f88d00cb06dbbc66faf7ad915d22ac4b88347fcf487c7f7663dab296cb56e14bccba4921e32dcb69fc7caeba369bf20c5867389d344ee610176c916ddc865cfa332b28d2cfe911e8c1b16045c40ac2d6edb5d766f3a631cc34e23afe158ca0dadfc548c7bdbbbc224e3d101f29d7382a2a11b1076adfc1a1a6ef6164f5d6ec10068a1ef63c5050fe08f66de31a5d4d980379a7066d3832874de19babfb18b46b8f90d58786a58bdb5ab39a6fd9b82f228a36e7fadb696a4041e97a891a204c3e740f224df35796dc12a997ebe60a14f4017b13bf80f21e1b3b8cbfef513de9dfd18023e749dd9a6254a25516000d42b9634db7d12d37e6d47d89157359f4218431dc574147382401c1af2cd8e1445d65d33a1776e093b613a0c7a3c7249cba9405839e8d018b1ca50b720d13cc6a392865e31635b60de9f4f10ec40eea42a1a0dbcb2abdd70df909d2bfc88eb1c8683c78ee789fa33c74be264c1fc015b0da86122daf394162ed9e6e2e39539e4ba017a631d3709662d95b1a251cd2c333858e735db5158b7f4952ad06459712208c316b91a401637f68b88d1926fe1485588d71fea67bf78194c89e4c9c24a4b798015694fe84dccac33a73a6710cf42517b54d424c8a236f174f9dbec5c7ce9db1bd0166ecce8df03d116ccc6183a8935c646a67a704b98a2f98e67130343168c378c933efd6ee3e9a92ece5e6371ebf9ea5a16fb92e87e32541ae8b8ba31202cbeec7821be798d60f496a1d4307bb3a53c9e14006aff2117c498c341ab5466bfde49c46329089677e9d1b7e8e01da2c4439b66e44a119135d5edced3de7f2f4c231f334b04bc0cf6818683dde76ab6234a30bd20cec33f814ae38fab47a35fcecbf1d0d774497ac089dfdaaece168f2ef98ed4c664a2bd8e410724697a0122f38473b49ed66a6745a1ac654678951827d5203e862a10272188fc4e2308a326ce097c9e6c23db6f8f96bd55bda215f21c9c91472f887db5ec9e0471c60a7c4cf3e3775b760b3cb3a71101b180ea9ab5ce4387e5dff2bc14912fc6ac3b9914469efffd98f69cf1f5a9c4220805673dce33cfeb568ed443c92860e512c2f9ee11c189fb261ae09b07a0f742b571d08b6ede5d9f1b3c43f227df798561aa17db5b2dd0c5f4230e6fb6fb2e0c4015a59cba327dcd7f16523149f0cd6784eba4995ef0d42628d3a60a51a646c4741cae6f2bde451db8a33be0245c1a515eb1959de0d794651ee99580ccccc7fdad0b38de275c447ef509a11ec70b9fb09247b1a1e0f16ab605cfc30bdc95a69aeb0cf9f6c0c692ece0db1b66be74dfd99016b63b82c9d6a2a794a225a666275b0a21d07cd607a6d0c61f2901b83b0e8f74b815605db9b6a0d1b53866854ea78666a85f523bc2e8e061cd9fd632172a3e9524d47191c564ce264b9e1f589f58388430e5af8adcafbe2be09b49ca73275eb9d53ee8c5ea321dad47534f48e3f8279607007a679b9064b3dbeefa5da2fbc3ade63ede1d7c44ee414532a7983711aa43e57ffa855265f88793348ec8d2f515d83a16883695def7a05a2008c20a96028d4ec541b064e5ac430023c8bb49d764475058aaeed07da2f7b42be21b1b9fec700e5b2743caa6f75a45591dd92c858e7520b6d19fdbc09b00125e5715e3e96cf01912b786d0635745f28db22ab5f71bb1e20438497a91a92c158078658f09651e68fdd828be44e6157f579082535d64ba565d3b87514bf54ca10638bd0084b6e918df243ec0e86dcb8ed76894a94ea4edbca73ab8178355f7bec6ad86062a865c488b2d4e347a5665e6f25f1b5d8eb513d436d900a459adbc3fae92fb5aabdfff1f25ba50b0cfa24399a2b8708748428f69b4c02fd84131e7edd8c6f2428c0c1bfb79e9c32942d5a82b692d4928769ad34b802efc78463add301124cfdbb3125eec2c5191bfd8ca9e4f0c8cf2a3a7ed0ccb88b6339a25b48a8ba4b2e93464bcd915a8e1d1c5ced98312476c6d4d9d14f234c3144689b86310f2f52a91a9a180edb4f054f8996c6087eec83943d2991112945ecf31cdc41ada670b6e3a960b60b44105bcc57c11a769ba58515634557248faa9c0f2f91c214c0da67b2ed2ba9db0c9eecaccf145f291550d8fcedfd3b8ce8e5bc2820f913651aff08a243095c132933ec5f9d5cbd41f5141d9b85d8ec01c3899ea8c4b6789984bdbed8d11ed995bcac2cdc2e96278b5ea0bbad0a296a0c0adc84b0daea90e38d90c33d11597ed904e6bcaf35439f82247359d80b8c330a42996c726eaf76955d438f6cab109fab17c3d7b89d8398c174e52fa3f24ca1726778866f8d1ed996dc0654e755b3ff15eb12cb90a9ed26ff0f27fc92e22aef8c9756167c52415d23620d6a5e7da33241e81ce3a4bda7e31f33adb016d4cceee615ca0ffd300e5c82a982a01bb36e022fcba32345acf4eaa76c3168695bd3724a2e6d21fc4a6711a828cbbd9e0264092a64a78c85f8216857f53e8ff5c75c5a389334764627ae9e890793b1ea603c3382ab6e9fed04b5139d6f29285c7a5def72df4aed58591b7b8229b0b58780e5043465b59ef0caed0a814d129eabc66c515d227766ee28bec6dc4bf4be57f5b27021b556d48a5eb95cf29fdde9fdfa64363499908bb6ef07d5f0189a5f2d6bf66f3728a5d88d494fe7988532b82b7014819e2a18dff44d2c89b4d39c2042a8a94dc88ed6ef16737a814854225d216e7d720a211a3bc4cd9cc446b3d2d80a01e24b40e65ba9d31d8cdbd942b31de500b492a65f0856c8448805e47c3556509c3f35c1a8cea1d7afbfe1402ddfee41974b3d6e75a41adb360e67fba9d27bf93928ad88b1848a2b2ea136aace5460b8ea52e49c4acdf2c7591d328bb2a200d67b417114cf980b4453ea57380acfa45c72ea23e1443ee9bbdc418ef9524fa308f1f8222ee5efc0111ca92c8022218647c1505f7c3d6ac6f7dca6575ba498cc0849f59d0a7b5f80863c2ad78bf36d21207e8409f7fc13d06eb93052fc5c1973da5f18faeea53639f572bf2153aa19a49bd856446f6d1c7dbf38e4cb60e09711ab52b6aed8d7bef6764f72a6a7c0ba6437e76eff030d7cc0bc8f7c386d1cc191268527332f85adb36c4ece43183a40933e276ef87ec2e398f59ea3f75a57d1736050822df9e1d9186d4ebc7e9a28ceceb8e4f35c40875d12900e05fbbc10f0b2cc758240b4c160673e4567f04c02c603cce81bf8495b010d0efe11c6d36fda7759dfd981ea02225e96250321b6706d7084aa85e6306f398fa17513b72f48518ec4e1c0110c67040c8970c1974897f27ce53b884196eb79510a18210c29dba34befb05295cfd854a2cb131edf78959a05f25837278f92ee45c515828c3105bd1321a71de532051a42dea44c1f74e27e1753863f27122535947ffe5c99a3a10a2ad2e5b014adcdf768f9882c58de56d459445c27b6bcfaa997a77bae50b00c125ecc2055f38b715732b62ed3f7087f49e118224c676244ea600fda38ba018a1812b066ae40931bad1c2da21695a5b869aa7a3787fa4e6e432dc3b8b3ab04b1116fa7629375bfbfdf241fb087cbc3c8e31826ca3beab1070a8819b60efae6b41a28e6b21b05866664197d41a9c138572dea1ddfeb1932eb9a849511c5dccc2afbefa7b18b2912b50d420c219c91ee472830733ea1aeb6de150479b239f5514e15fc1597b6fdaed06dcf31260a7300bfe8b94e450e76ee7e1a596b7c42bc3919d341f33ddc53a8f6132b9b4369944ed19fb05391d62acdb66954671edc873a33b8aa93ebcc4318615c0659100a51703287fe3993420d8fb165e835898b203e215aa5cb1a0059bf95412c18820f13f33f34b8d443b5d307b0e27c6ac0182e55204021213ff0b3e586b227121ea8346ce3c222d7a4c206c90904d04401c9a7f0a39448209153c960d09f8ea8d5d97dfcc10b021c786faeef6b65f17dfc448de6c410f0fc7c68e1fc8e268e73bdc2456d868a31a91608188e8911e3ab8a1ae75cc2bb2e088259561cd4a35e55c28e40fc236fc44fe6da1da41629e6186ab8c89218f42f5a6d50e301c4349069c53ba9865a599ccf67756059350e759dc6b4b6d7546af168c0dd6f1d50d90bd5d0c81cbab9a065d6fb6443a215f59355a8dca27b65b869ce86bd408635287683d5ac8f83120cf5182a4b12d7c5e06676a19b401f953fda10d1d934985b286acb40dcf45f01cf3843669624e19458006ba54c38a9a7ba479e375c5d1a28f9d865c801203fe5fee8e0ea739e1cbf53bb48018d5fa38af8e04cbc909dcabedc796bc8362e645d7f551c46bbf94c571cd859e2b23d80da3aebc0b02bf5a6826a9d269145f142742e500b808ca8302c156d3324c52357ad4b64779983ec905dda34d8417880f1ce4cc4fd19200371bb856af42cc509df3311627ee9e9cf21a9d49f02c70f0b0b4b62073f4526cc14c33557b95485153d52c902607ec428be07ca7bc7123ecf6b684368c6dcaccb8c4f7e8f13aaf5b7025a73c1b9f7750f2013b61126a0f4d1cce1181c27354da901dbf83ffbaf27fe81d85ec93b97188ed8850a6c8303a14e1bbf1c0ee0d1cb4bf7b6b36bb28e0b5f9289c2c788e3a8bc50d50a6c03d0e4c3b75c8678342cf7b671a09dbf7165f8e1e7b063acbfc5bd35960e30221611d9f80bcf3038c0a787225fd3038f080f48031ce7039b86d31eb7aa4a9b701f9d44a3af9d1cf45c6d71b6d8e42b9633c8d1d546b5a486e7f9ae9e24d46f0ffbc6f6c7083889471c85ddf70a03283760eea35a0307f006720525967a16bd9967a1ef8a1fbcb4593b6c9030116fd583635b44ac308128c22ea6fe0f5acb1465124e001bba8191edd183194289f5c52c33ac4967f92b9967a2d202f76c1f2d5b9f978651b0d8dc755b5302d8670865cf3cb69c9e478b4d5bc670e551e0e4119a3781d5128be2546c9e018f0e6e40d8b7f734c2857d4d2190caabcf10df0164d08e3ec8625f73c69176fed57364bbd0d309251c9ccbe1e766cf30861b19829586ca16f36cdbd78f26aabb837607d1dc621140934713460a162eae3999113ed960096c050c9462bf68ee3da9beed52cabf72408eb85ff08b720281aafe234970a8b76cda24cead1605c8b8c8d3349cb41ec9562b6222d7976452995b9782865b86e96312bc8baf9998842a6d7ae2e6712cd9204e6a0eeed08995992c0f0487b648677e1d53ea3515a8fa90f7fb0216de20e8e6e9f57434bc0c818c92ccc2e13dcdafaf4052d66a5c6e48790e521ffa50b24be82d3685b00bd58231fa50a4984a577349d83ec93079bcc7d32c08bddf0e719fbc79895b22558de3a91a7c59bdfad8c4d24e4a5583d9464b30d388cfab0a3183bdf89985f916535cd151e9bcaac6cf31f27cd51b0132845a316845df20ec1b5df0ca2e1ba53f2c43ac40dd304a568f19953a0c1f867b1448f64838c3511820f5e710aa98a2f69afb504cab7fa786bf0bde2f1af52fcb7743632a23a5b66c4c0ce6f1f3c2ccbd6bf08b11cda48e69c154e9d47c15398d234dff854c87972dfbaf4a97e56a5e490020b81432add31d90e9fde15a359217d8745b133b3bf3e10d07697c4c915114e4709626722535fafd76e6081637cc17525681ef8fe6582d2bad4e2b8052c834c41f8e614219c95a33dd688d4b364aa43bb2a8a0623f777a200d4a98a18429a2a5a356cab4b7c3b2241d8058c830a118d0776d875332e855b8d845c9ca85307b4de1d9402411bf1a0e05aacd8fb9c4a8dead1f30e75d648617424e63c44599763aa7035174605344ef88fb06769f4f485fdf3b8d00e6aebae784d4ac8f72c24a036b3b7104cba00bcad7edfb1e4159cdd3d8b10e1efd23563ca6ef9461196a7d5649959fb545a59e297f60d75d00280364a2408229cf177f93f6b8fbab62a082a0c2cc269a1642f68bf11d02f0b264976bcd5528a1bfa4074265ab68b1c575e96cc3ace7a88797aeaf5261b0ba785f4faf9b2f327aa05afea5e7d576a64c9fabe20a3fce15d8ea80c5a4351d35bd2dd0e2a4a43567f1c097390e075c662d968b87a1c3e29aaa74eb9a6163ec92012d51a96bd008a3e16efeb29dcb11c93217305eb00f6ac59a91960535b822edde1e5e7b12ec164f1a65c6ee87a2593da49c6096ead7b50a4c866a9083904f4e94a0d6886b8a00df3466c7b64eb2902da456241c48a237ddeb9364f35201221ba86ca39c9fe4808f5508f1680040a261d128949eccd6a0380d559a7ae170bdd39025e36873ef5cc9a864aa8334bb50d10803fd7f5c63b3fc31d6317cd4681b61e45c2f89e499d37d424344017d77fd0bc1eac4d394f7ae76cb8be61f72c0c4aa2ddc9605910346c676a440d86b9083434c03768119d5a520b61f8081e5858a526ce37ab7f52c1c59aef26779b36416afb3ac36cd1e1478915a372e034cdba610a1c7610affaf3e300876ddb017c1ec01bb0c049bb0ed432b34f54a8fd523d1fea8848969d5b02e23c4b232a8268c74ebc591db4375f516337d8cba9e526a371f300386467d0a51854f997d66e824d5432263d1fdbd2108a1d6a5658229a86f30afca70d9631b56d5ca1a1b29df8b72601675bd659c07ea1312b6e904942a21d14c8abb96b41317702dbee9692143d762057fc888e9bdbc9cc4b5cb3e79c64ee8a0b810938fef5d0b011cdfbd5fbab1d76cfeae85e04f9b887f5ad46758da810a8c503423feefc651824a2bc1fe3060e8055a6192d1bfc74c6899a5daf93fef91d12f50c5420dfd0d10f568ba816532d33648d1476a6cd2dcfbff53b91e541e4f9bbbc0ef42bc0ae82cc9ebd7dea300ee6de1de7318f2b17fb6fed5055ffc430e4f88b50682080caf3c10007c3559e806bad12d0886b786018195166ce9846884600913b035019e3a29025d27f2f319deefcceac033b3431b8f49fa7ee29b6dfa2eced5100e944e9dd1a3060f2f924e73a6e6f23d4e2861a2955adc07bdd9d9f871502fd4435772f94a970b3066b626f5bda72902ad5f0cc6be7ae0b4b295706392109af0c1fe67fe52e2e053f93b6f53d5e8eeb25fc52e24ff97ba71b3c9fa6ae45baf77ea07acf182c6a46b80a4a0a3e1689773f9121c6f32110f8f1650d28a02860a3b066d5b021bddaedf8a524c7b1a116f7b58717ecd5afbd6eaf1ed960de901fe6bfe7b7802182b4b109e248bc80d09313fd3c43c6404f3cedef94fab99bdfe46ea098e4c4168d009cfb838215951f15c475f5d2e6478157bf4e1510e85c98832feac05a6725e8f7864eb2cdf30e00b318cf45668bee41dc7ab5e214294af11355e729e120de2b4b8ba01afbb2d0684d2b8bda823127c2742f51d3cc998ee55e45b60cebd45dff0e0871b5ad3d6f9f71040376143a35a043621cbedbbe92b04155f20c316f3a4846b069cb90c3a2559eded7dc5f6745a7bb467bcefe5b15dedc58eb7e51294995468babe80068aeca0ff922064dd4e95672afe5978d8c71df85742df558e888e2d744d2ffcd01fcc2a9889d91888e08bb0ded039170c3c3f719930578b4cb0a031e9ef0b5f7b594403467d3f0a8271934964c20f0de67be803c17ecd4ca8e846be89ffbd0481ca27d76b2a4ed1d7af79de0d6fc53ff2b9132e159cd0c8b9145d691ecd6f6c037ab49335260ac1f72b0dc49e543c8baaa4805d7061a3398374e8c7b9a00e191e7b7d2d9d97d6021251f193e2f841b03d5cb8385d06afcd76a8d0df43384c5651c59e640296ddb8ac7bc2a57fbfa028aa0739c13fdae4e07689c35582faab9e3935596f37975ca3febb31e92e14700718c3990c225c4f598e72449c2c37ad5f4116a35f0330960f374b2d85fd6ad045af70bdebed2612f139923bb074aaedeac0f6f95b0416dfb34ecfad729fa15bab08248b030a841a7e59409cd1360791e7a8662800b870566342397e40615c999f390da6b31194a703ec42183a8e4f3717c77de90ebfe85a31bef7bea5ed2fb0ef8019e4b3cc50ae006a9be7d2d95d74e500bfa71ab073aae3e56d77f7cade32c99464b707dc07d107afd2a4d9851010e48a8532225cd36b87fef9c87fb8c85724336797992f717e28af1a0911121f096e306005f2a79d7ca1052b5d80105ecf43d20508a3fb6150bb8c46be43769d9d20f6e7952e3eb0dce9211f78dcd979885dace721eba1d1431eb2b534e79c52ded01fec3fda46d2e0976f80dbf7f4827a674781b8d82e5a318586d111b4421baa718fbd0deeb1e7c7b0d7ba1b3c68bf3d96f91b3cf8e001fbec39ee7380e6ecf4b4566a58a008459ef4f61ab6bd564306bf0d4d06771fc03efb106021d07eeb2848c3f991c1bf7d0e503f25cd8f0cee647c80e4b3b7419275377c706723fbadbbc143e6b9cfecdfe0c1070fdb674f42f239401bbb21d9945c619f5596071f36b8cf3c0fd96fcf03f799eff936b6cfde4646c6ec3eb07df621d8ba10643a393b5c47bf0d8a9668090ad6a3e027d21105e747fb06d14f4a10b6a1a2f9d9be33191eb8e1c306f6dadfd83a393bd786d6ddc83aac939e0516570be9f12da4c8349c08e3d005154e66e86bbd7671b4f6cc589925581437350708385a39b13891216eff8f540baa0827c260cd717549b8f2d17da421fd414797df63688882b4857e74c7e5f79652d66aad46c33d457e14140ee75fa3f191384753bcc13f9c010c2a900f14141f89a34fc8651a0a729bc78dc73c613d4fb9fbc8437e0b05db93039b09d31d9ea2f5d4fcccc9856a8a291dab298ee338562d8acccab5cf5dfbb4921644dba1a289b45003a2811acbe5f7eeeeeebf4a7206b326ced7a1a7383ff3f903196876576976f82b12aca77d97b52f43632ac94fa791a6f80bbf0b7194189322d252ca4986cb9fd937bbd3dd457eacf2244376bbf393c87a1ef2d0fcf8113eaa4c849eb83e0a623d3f8dfcd422498a6d759bd212a5b444456a8406690aa4a9e9364ddda630b7e9e9367db9fd945b32fda6d682427d28bf9ea35a98d947281d1c2567b814e4873e812a394acee8928ba4a5f670b7a915540ab7dfa353dca6abdb74e4c2cad9a94eb0b4761b9220ac474b4fbfda69614b127602b4249920126f8f4af3436bb5d60ac17a34bc7d67474b46686907b73dac47bfdb4f6d40697081909e1c482a84fc98064d611cfa5b0cb7db57455c4749e799e1af26ebd1d295265af2509e38c9c51f34c57bdcfe76213414e4760359dd76256ed3944b4bb4c4366c2b6f6e0bb25b4a29533d7be35daa943ce166feae82f5ae544acef0cb57bafc400852ca6eac2fcf6b8b39e75cf9c85b66cc34324717398b875ce5f24f664e7e76b5ed3dfdec2129ced55c59447023a7a23b152d90c5085b22bab23e6b858e56cae5f7165bba5d9c1f17893b64d745cfef41c80f950245a1449e593ea45584cbd6112e5b515c7eeb06f2e3a72fc80f15511839a33541b03eb07670d99ac1657a864bc570f9bba3a88c184ea8cb6fb5582afda12498feb8383b627b482c96cb6fad583bac141a43c58cc95292383f54a4d1745ea5a4cb1a6b5d2211cca76237edb67e6e58d0ef32fae59d0ed31c8691d11d154ba2607dd5b9d89ccc683d2ad20113ae10d2d303e929427e3c9c1d11d3f0208c8317818a42242e4f39a3af48cee0cb926711d9e1e7a21ea13a2e8bf22413c47ad4452aba4a7336a1911b6416b9fc9e6267cce59f5a5cf620978a547411372ae101774d691fb5b7dc6e96522b912d9737d9b57eb02d35b7ab3c6939c5f7c25c8dcc12ac37479e23fb117e6dca98f33a5d637b52fa53552f2f282686f05f42da23a56062c8e54b5c0d41c7f5ae181291299b378d6577e6a539f216b1fd5a8b56113b45d9dd39a6aa8865c934b096e6c89b415da7f65cdcbd5e2e0b097239c875ba5046b84e9925d8d314278c569281ef3ab5c76346c3ed2e461516c695529088dc0190c15a55982f89740f2f1c0ed8870be3f2a614ae24d1b21b38dc4495d8f72cf800035cf9d26bc0952fbdcd95af611a4cc3eababe19ac4a898387c476927b1dda96bce4d8921e8c2b5f566b3d3024a7dff313393b3136afe47a1a18d22300c9e937919c7e18d7d3f4f5b6929737d3c819f2b634e9d01e9212ee68c8eb15200024575e9e172fdfa33fcc9f2afe29680ff7fd27a0df3f02ebfb3320694889c3f5fd25d8800e72867d4f6a21afb84eb8fd62dbbea493b3c3249bcc4600bd006dc38f558e8779269dcbefcd292ebf8b70f0a56da1eaa83aaa0eeb16b1365cb25e56edd86abce36e8af2a4a76a7642791206cb8f79d5ab252e96057cdf446333fc91a07e0410e0f64ba6313db4bb4180911c79677783b09238c8eb790db6eeec480c067ad1ebadee869d9d860189c716d6e3dcbf3616886e2488bd43c1ec88dc8d009ad3cf59c077fb456082fe3809023f08f50f84b89e14adb45c4f0eb9ddefec40d0a80f1bfed4676732c839084ddee0d90ba469922301f6b5bb913df60c03928dfa5977a33930d8fe666e5992f1647025b6a90fba3612c49be638e06f7528a01d73f1da5535adf655350290f2c4fb8b811b9ea383076c9460012875c69875629d1580bde1dffbd5184c2a2ad0c81c452396961913124b2a2230aab95acd18d36b5e525f867679735535adbe87295f7b6ab8fd3e9a9ffee140fa23bb709597dbefa2a96d326003d188c5e3f9e9f6730f6ebb1431bada57eeca4ae6678f82fada7bb576727ac9fc7e1959f5d02646736464dd0e7db394561541a4082235a040a03f299b0b11a58fe4c26585e56675863ca53dcc83dbef9a6f9313803ce1a79fbdd6f1c0bed69e13eb3ce42157c9defa8d07f65a7d0d6458e7dde9a741388ebaba90018d9910b945ac67229aa49ad32f482f46d6aba16b60afb7deab41a4894e2f7e90b2eb3ab5975159dd0bd215ac679232496554262f48a28caa065146558328a33a852c76bd8cbf97d13180913c7941b2c260bd397e477a417225ac67927a4132314999a436224a72054a6c16666ee76ed9c6f9a9d55acd481a4923c9034eb282ad55249550a3b812c5c6c6e0eece52cad56ad5b29a1f0741bb04286a2a2867b40f213fb487ecf46319154ca5c0a82c18b50546512b4cb1a22e4fd090867609d05732fcd0151ace0f5330a4a53074410633f8ca8725ec753d0741db623d47adc295cf1d1a12494818d64c1236150d290d698a12f9d1b4a587dce67e81f1a2c46a188c17d696683456e3703014e69e355c8f8638343f315e6ab6e4058c189dc3404179c1e194fcdb2eece4eca830d5b5a243bbcac5fec10d5442a01b38e4aa085308817c587f03c746c50e4220ed716c50180204f9a8efd9316cfae3b6a540443960120d7b60a58b1138b81e0d2bbf8339c893dee866d62758cdec70ecec88acc6f477e0e7deb91a4c3f733d6fb227a1dc06c33eeb64f0f365eaa1b7505247c3e6d48e8e3a0a5a1b796d12d6a394d3c06ca9c15940c809c116faf4d20e0228145ca121257561fb7a34d480f461275783051ee610de5173421aae7250390ebeac92268c4a42c21f234b29254b9652327b3747231e0a79881261ad6f1087628c34671c6ba86a21f291fb0835a4e5c4129a5e48406ebf8f46da388ea37134ba8b9aea2fafd1383fb5cba4c18edae3612ab75fce089986bf300e51dc4aa1b8fdd2a3449874892a5c4ca53de3fc788f3d4acd8f1f919dfe5410e368dc01ca93d24ba9f472e9888e2a26d2be0cca7a73d421e7e841ccf1ada9a9cccd19bcdc39ceb9aa9a355a96252d29a5e56f6dacafcdb12c4d0aa98e75c442ec0796828db01006622dd887ed60296518862f1d4e51280a45f47a2ea2948e1c8d8bea913a8a44d8113024dc7ecc0767909f6a9a9d4dcee022f8180541b3037b03133603509e68158673b17555c5e6c460dffc741d41d71184d86204f2ea28dc04e0cfeff25347f3f24d0577708d612c54c7e654538d698f57eb8885da93827d2a4c8385587b651460c0c2f5eaad638f8c4315cd4f75919dfe2942295851aa2679d25fc76aaae36d4dada3c692323d489672cac9cc73f2026ef09fd77aba8279e76f97c3c9dddd30ddcdcda0041dd468acd556dc2b07e747823428281c8e051dd5dde027aa40831408471686201f3c3b2ee4877efe83a5a3e434a2a7d9b1f8a9c73cb81206eb51d1faee4a7ba6383ff5fbe96a7ee87747c5f9a9b493c1dd155d832ddc470e360dac47433983f6d31ef243359a92925082c4011cb9ba1df8ad7701bd9d83205f9982f50ec8d0d08006d73b8f8e2cbf3d1e9591017af9e9e58e43397708d9e93fe2f63be88d726114c14519ae23d68b718d56918b0c171926382778f21716d3caa82424c452580a4b6129cd2e614bae87a5ac9b92339af9454dbd80b05e0d61291bbc0aeb3908824bd817d7c35256c68b410d35c7c3520e56f136966a4e6741acb0d929c352b73f1363bdcc74fb335467a86b79d85a4476fab9b8fd476ebf8e2a56f1f6830e3a98adb01e6a18cdcdca42ca6eae9a236a2acfcec839ce51c60ed79d8f5dee7a73cc6cb8b3d348d407b655a3469a59d8694356bbde1c4180814848be172992ef45aa86118c9c915d5a9f609be004190579f229c88f87ae0afd8a392747e37c7d66a89f586818a42f2be4c0a57b73c8de216ef1864272d8447a1c0a1f72797e5c09b2e356480e09892be172d536377078172513487b1c578a04f2d1afd56ad9553464f5b0977f76036da3db867503484178d9307a3dbf8fda43bf0357c743ebae972067e90ecbb89eefd5f90815a2a16e1a6a0f0f2101e90f8a48a53dd28525c8651fad5ca61f1d4d11cb161c4262c41eafc25c2ef13b4b85694f3f7f370db1eac8e5e71f441aa2a1519d56474644ad14a556eafaae1d16910e592a6bbc542cd13272fb294b2965ec905dbaaa2ba65058b75058a629cde168e84ace68cb922b2b75f9405a67901f2f5957901f4dce983508d687bc8aa0d981bdc135038d182e687dc1ea42b582b5de9960adf7bc246787350b85add7a32bba32b2aa2b0b85a5efd115e831b79fc248f1da60a5accf09eb5925ab346bb5d66282f5ac9497da235da0a0c5edb786584498865396e634a54356a9f9b1a0b56a2323d781f9cd3838a54c3c31b252d44add1da2e6a43427d41c95dbcf56ca4a854499294418cadd9da594222a7a612a9a1f2f79898abc242a75f6d87bd8080bd29ca64032f6eb1b79315af20e3b61be327968e468bc2484b52eaf3c6c74a5c93486db4f4dede13f512194312080e122213d3cb011d370184c09f971945f011ba58830bd546a5fcd0f0d820eb13a62d56345451a96b0392d2179f2390a6665870f3ec250dbcae9d49e4e7911d29d22723ab16c8d3ce9fa045b4373633d6f5cc8c9eafc5412054b3b0f7dd49cccd8df83091bf2d1a97be37eb2629c080d0d518d5445746626919cf432c771b43d52cab9cf51cef8b815768eae43ced082fcb8687652ede1c2234528893b3f623d1791f8c0e72673ab102b418d444a174d30854017f01ed673d165ce7f6eb2d4903f62ff75983a346feac77f74a7bf532ab6a175d1fc3813b2d3ff447599e23a29487fca539eb24dc04220787a6131ad8c4a42c21f20283bbe9a9fab7390e47abe3232e7ca411ae2717b76be92c2f24511e15028c2082424d370218cc31140aa843b95b46706353fce457fff0fb71f058277c75cf53ba9b9b81df435feebba2ecbb2b04ccbacccb2fa7a6cd68d9702b99a62c7cccc3ce7b451d89ed7368560fb22d21effc93f55dc0ab84b8a58ab9ba306e678e97cdecc3979724b645d8821b32887012ddbec12566b294f5809fb62a294d2d108ec1df2e4c5a218a6041636e73125dc0a12d3654913568ac2ed77eeb070f45120787848cff571151d310d8f71151dd151bdace78bd900881c08213f34343b4c83ae70d7a3a14f86ae877d5d528524ef418c4f1aa22b211aa22b25ccc41b164a8c1c70a54b12307703bd7a931812812b5d92601925b1a3bbd2a5c7ea6ee37644ceb0be3f0669e3388edb388ee3389fdbc693b36f767a2b42725af256044cf6cd8f53213bfd5e645281917edcc83cc967a50c48b5fedaf870bd75bf5edacd8d1ca0ebad8d97e35a7f5d9d0fd7f3c63baff210baf37598d75fb5762dd98fdb9f85cd8159a934221bce0a8b01690e368e77a3a9b894c5c4395dcef95c12c02f0910d4aaa5d29cee3c4da8393d95b07fbd2d55c3952e3ee0e07af6a6e6e7fa0d7c0e4a0e5e8ceb69a91e7603b5d4ecf4bf771ecaecbc1c4abaf8a2b875a5b7517366a8607b3c8c745358e7d5d47b1aeebc67e1b4dcfe4d4b5deec7edd7b42758d2fc6c5c4af5b65123619dc7edb8cdad6850b0b40c7605bcad34a72f202567c372a1cbccdd16b3c1c8c26e23006861b5980d1c723770035d422157bab4946e01ae74095b6ef6cdcf16c3a5886e3f0e4e5218f149f183172988285176154ec4d285d772cbc2c02a6c4dd521477c1ce8991fe2543851103f951c88f3e46a493bbd34a7c7f450f548b1c7a5dc7e1edf83aee7a75746a1052cae766db695ee30771bd89ce62e83b27cb9100d9eb81ef7dd760957ee36863b6eff16c37d9c4a3777db116e831105eb655f78c78bdb6008b1de067e2f896ce34a7f248804c6cea7fd95ab31b36f7eb020dde917525fec90b6b2eff6675f7bf8ad0d068403d69708b12657bafc0085cb1890e6f4db5081580f9ba20629171be70763e916717e301153690eb60323cd4f5555d1ae34a4fba9b6f1a6b85ceeb6cdc57adb665a6d1bbbc9c698d41360064fa5be1d4ec4873033b36ce6176666beb82d6b9c9f3aa43b0c43e48652f2c48a94944e92cd043393524e620c89d0e8323733333333f36c905b48325cb59ae77cf3f3a22ba9d55abb6934da7ff699fc335dc182982874f9e90f2129286770c54a2e269a1fbe44971f0b61298d7dbdf18fa4fb329dfb0ff273f66f84f1959b4efcd910736de66889bce21e5dbe350182a71716d3caa82424fc0182231ee09c9a4aa2c37a58c8fa15b80229490889240404455812b61f4896924acacca552a9343f3e1a9546a512e9d61f13b0328a5074e95b234ae9eaed74facccccc17bd38775e9b15b05dc2c2b89e8f463ae4a79e2416fe119a216c10f5f443146aada26641562fdceeb6b8fd3466fec7bf39d76b418ecbc13697d501fa562704cb9e97847432eaa9395dc285c6be3a8ea252ad6cb72634510459a61198b9fa56e6386573775b16a7d828ba042330d26da6ddf2a2c4f20b0062c020c97000e862d40ac35a128d0675053b42f5c85e5e0f46b1d1ecfa226c0706b6673ee360917cbfe84a3adb791a922e7344e5baad7367f60bd436be63e3a2946984b20823798ecc37115b8d63f82325a6bbbb9f626188bd60e1fcf86824676428d4fcd45a2b8642b5f4070b61426e63416e63406e877eec90b2b91d321e5d8f85349ec542b71d0b2f4b7b8c1761adaaaa5be082f442d5a2aa54b58b4bdf473e923398623d3026b0275c382c94275868d171e415a7450deaaa050585c3f9d768acadb5566b359a7f0e0705c54925ba23055e4a612e20ec849140587fcd512f97554cda46868dfada6bdd8df0c667418408ba81830405921d011cb3082650fd1c20fa4d61f29110162ad00d1c191a46201ffd377054c004f2613d8e468338ce18af8295cdf932d0b747b74560d667595f2908dd4155a82804424196cb6fc9a65ff70ba97442c9eee6a4c456b01d2addb14cb07c3d47592d28281c0e4943ca24cb2a20a1851308875b710255fe419e30f65961a53ca1ff5d7efacd5a5dec8df7fd19f63a4c19d6f3b51eab9dd5cd113463baf37df388ece858d110fd60e847bf119d991e76748729223f5ababbfb3d0cfda3d49d524aa97f9e12f2904824121961e75b545409f9d79c6efe986229974a324b29f92b4b13b248817064529c403e98375ec5385aa0260adb89f80f47b5b0b7733b9d9d8b98f6901d7e264a46ec90c913feed0aebcd718ea1aec07c0fc3b0c77ed946966859d9bb08b2b81198eeee7e2b6366abb5382872d75d1c633a14a25996dd9075679c6d366b73939f86901feefbb5f723ee679dd6895ce72192acf348e618ace7a653738a7031e66007d188f59c546a4eb684cdb2ec2dcdb2322d47965d9b5dc2721a6f5e09aea5bd6b9de7a6e6f8497bcf4d41b4ce4fdb660064b0d96bbfbd767135b62d7be634c069b859a93d1a4d6a4eca365eca3eebbce4225fc6ac1216dba4e086eb0e22955ca4a2b88db48e81056e9eec4edcf6509bdf4cd184a1c8091aaa717d7d154d020b5709e9f125a46708e34004f984d054a3b0529e58ef39d5f1832a08d510aa504893a23264644193d76048188a3418151758a448912cb2b87a90c54664923249d9f0d9b0c384880da1db6f32c4446532daa062229a18a119554695516554afd18df5d8c686acd6524ad94d231768af1e58e76a4c3ae96b4cb58c4ace689a510dc074fb5126abdb6f926acfc52629132226a209cced3751ddc6b0f6c1d2d76162d8d38dc990e6042b27b455c4ce5516aca769e135ce0ebf268ea22692a85823e205eab66ba076d25e34965ed1465a4913a285da8fdbef607b1c740dbc50de7956fb1312ac066a20bf40f5e50487ba8c89738a1998b16046388361cebecbd9ca656cbc9ca55c6eee97e983e470888afc6b0ee683f43810241d10b6af958f2e206a91aa05c9e1e7310d974f15c882184610fd1c208d6e648480a66a6976b8a2668759e462fbe79c734e0e73d10585f5b0101602356eadfa5409d6c3444c6c8f740143eaf2672a4c03a63fd9b38719b98cc55c7e2f4b611ce65fe3fc641da64376f86be7613f5cbeb0202c36c4e5c742f2845fbc4cd67311263663224f8bdb820c80ca8636b42922f647db164bb2273bc4966c905aadd568fe399c17bf359c9f3986ff359c63a83ef6589d366c8f75d910b361c52cc986cdb16125b11502d6900856ceceace168c316da30dcb6603d3bbafdf57a5b78fbed88a574db86b6a539f687250db19554c3e690d8c0cad9e11028b2a10d6d68435e0540c59db6d9c4756713d543af5830b6855f54898ab93401735dd0596bf21d01f70006b8ddf58dc75c675e4cbb91cc18579670b409cb3f6b48f6e7af55d46de3a6e0992d2c07e14cd647adcf2a5941ac1d4c62d165067219bc4c65778f66e7a5d60b08abf1a4a3f99955f3cfe1cc150feba29d0c1bd70d186313a38f7e1cad43045d9f03a459dddddda26f234193e3917d06653deb63427ee8c8325d7ec2fa2c1539835eb64874343fd657e9e8a33f803db86c89b2979c075cccf8e926bb17107b45613d2fc2e154690e8bbee65c461059dffc30a83bebb3bef648fad8d7d761caa07f599d0cdad11165b1accf4447d6677dd7b2be5e7126f7121f68f2068f8ec01bec0035841316d4ea392fd29c200f86e841b5d51be60266762d5189b0b9b4d260fdd49ee9298ddbb81958e6ae093b6dd57055689e425206da83c5aec88eb09ee790148bf919e9b11282b8871b984ab2a9d0a3082a50db60940610e481020b14e8c60c296248201c5c0e8e08635c7e49335e8eebf971041148561f16e041c408925f9946bb3471bafc020f06973b17ccebf284df7be8e1921cb1389a67125a3599ae7741bdd87b7d2d4d4ac97540fb6debb4b999779a6a0abb70f0e800ba20af8ead0bc88b95ae37b3b719b67941bdd74fd3fccc54ca3453a62b65df6a52f2e422d569f5c856b3344b72069940a669a626cc3ccd97db2f2f66d6a0501a45524754844038780c4288201ff37380bc56310a4aa7ec73967575da079490f9ee6e142a8fe06accc6b81afeb3fed5611b191a0adf0cca9a7adb1a35274fde6c604fd2dd2079ec35924d875d7fb3d33dba8080a32cf3bcb9196f025cb6b92e6a836b930229de4b0552bc2cdef9940a49dc79758d9a256bbd374bb3344b93fa0b1710ac3b64a4b09e8320088a191486612d6eca90b0af39a4f9e1c00c89cb90b80ce9f667bef9e14ab3d35f355e9252343f6e32611ff635478421224ffa839c6a9b325f0fd6c344d7e3655256dae371a5517bbc6dcca4b42763b2fd1b1aac877d5c89992bddff76930913b1c0af878930956de4400e09d9058e082f704548ce08e9e13f03078e1c388954b19ff341c8585d6e19ea126e9b41a6417a58235fb89ae4490d524f990ffb2a262aa59a3328d728a594d2d7e866aa8a88aca504eb49f17635642d89419f7653d59c6601cb1379d28f0202c954b5e9d6f6b047bafc60fe4d8ee626826be101d60907380f05542f743030705ef4b049a2005010a0d68ddb410d0e04003387c89f3a215757c6d86a15b24d76e5a8e0cc96599164365116b240f0f462b198ac9155b28458a1f58344a2244aa22f94dd8a91a16fe42c6125cd8fd76aad46f3cfe14c14140f641f9a1f064921493dee8fdbbe91973a213fd6c80a9370db22494145f2a49f44a5b0403aa261e8ebba916103fb8a7537b2901024108e4b04f9f0cf3a1f6707740119fd88fc786a764639833541d81f525407d89c5eb146cdf12cd002ad517b249802575898065bf447739a020149e0fc78c9024b6029864a22d7297599a24402491678639a63c4022d90c7d09506a013461328a5b4994eabad49329b7a6885ed4ddf306c161d31e59c3d5b4af98282c2e13cc949a5d2a925c8ba28a575353f56f79fd58a595b351aab7a807eb353e95b4fa728766f5a68a29aaaa96f472512aaaa3a622a55ac46b4203f354c7d8fe9b86daa47c2ca4558e4f612f2533f27444900a588c2ed2f59d94f19725353bc2151534537555315aca99ae22aba8ed8405b79c94ba2110fe240dc9482f1d34bc9457e34cc6cc56593924b3d88212e77a292c84b5eead56505e6ee9e1ba719f8589a23b9ab2a2b8acd74dbd9e90eaad2ddddef52a552a924ea2508f9f123dc35b5dc90c6482d06196c7fcae7b9e9b6a7a58b114126a8dfa33bc0ebc5b81efda653e1a9e670483e8545794427d21c517bb87355f3b0aada55842293f659f3b01ff6243cb0cdc37a3eaa7f49fe022c55df867ed7cadef2b07715b7a9f55d40ddd49eec5bcb324bc3dee34f330ba3f5db6db89eab4435341923a5946f55312cae3677c1865687fee6d876335925845cba7357554b29a564d933f8e589ddeaea4f409e504076fa8544f1f32301d9e977f170b8fd33872b6cf3cc81abc2cecf21075a639abbbbbbbbbb9bbbb9bbbbfba59bfdbf49d2a2408a09647d0ed0ec48dc61b779f6f4d5ec5827d8f6808bb3d35fc204ebef62735630cde99829ac874880b072763a1386d54684266fb0645856cf39e79c73ce39dfea3979cee91da248a8248e5407450bd58800004000002315000028100a874402a168442c4b8afb14800c7788448250a10a644990c2300c52ca10631c3100040060448066340a0280c7932054502e9c53bf2005f3f61a83cf1d9a062621cbc7dbb7ef09e3ec809cc1dec87e692b5094c0481f981b0f1c452ef0380461b1dd1ee04993023067948ee0663181101e7b5d9b09e33b55f7e15be30ddaa81759d2713b1dfdbc0f50dc30932582f06cac59ed6205eafdeb8b31ecb2800a526f42d309cb80d0c90fb3db22242d2df4dba7977c9ffdb1a427554cc580b4ce99f244be8fa45e8ac58e5a91d5a6c0cb5b43d9a4042e9749c8d7bef6a2ba5398044c0a28ea75b154eabb8e528487c3c24491a9d9b754aa1b279125286cbdae3e5ed85fa45ec48d630881d3f9afab62744ea6b7b330557dc53a2a5a520d995a812de4b8ec71f1098b80b110435c9e0e6f64832f0ce81e39b4545dfa2a0f3137e6219741c24933fd8a2e4c997186ca730f9bb5003af5bff8ed23746488156ef214a25c74791750ac3459b5d25a247f412ba46ea244305447ec6ec1fa75ee58915a50bc0208ee884dd709a9db262792cc455aa38e1c382a2bdc4ffbd74667bd07573bb928e2e459bf30d49e0e10464ebc074b1e1aa4bb01fef825884c5a8f171fae7ea9bbf88c26426a0bfaeb832166e18babb2bde5013b0a2782e986b98ce37523e8585f362841dff01085944994b14af8e62a4c5ac13945b63076e32b9f84e43a6a1b5be880c63d889f7f1f2022646a7598ebf08361d1381143a3c5e2319a11335c052798c67fd7e5856e62c9e666ff8714900909df056aa33cabc84a1cd53900eeb50f70e8c93fd0f692acdc7f1d2f4735934e8b027defa87aa68abe9bf59c0e886cdf0fa1552527301ef5102a1ad32813c8d6c3969568a91fb1d5db71d4ce6d6607c86771b13f6bf37f79306013a280dc701d7663971ac81e7306247e3a70a833edae80d5f78e9aefbe29d10b7e982e62b1b4761fe1a7f8e04b897e23e59c1c0ceba41b79d65da923eda41a2ecfb69badbcb5844a88e2b1fac6e372a866b4ba848b59b7bc8f9be1a48608a48c860b75a957a1cb5ec8681742b8d4597a50f869d0d3a3e0465b69689a4086d472b283dad138a63ef7dea04204ddfa1bcc87fc8b3076680a93cc31d10f0410643de8d820d15a2c5a70f9044353d9f9a00583003da8d034e81298922bb267f589279aa3b0d2333cb532ce42710035df28370adeb68e0e04303eaea1951e4825be4fdb3440ca47054dbb578ddfb186c31719459dfc9fda806b0e0e55b5a5774411463c4243f2f1eed73c8a77a9451ed794bdede391ca92552c877994eae22a39c7e36a9923711a259ef7b589f80b77128f6576938bb5897bbe68b62f4c54e3381b6b67ea850a94fdb8396c0473df04d66de2e93a8a4ad9e39202daf69a9afc72f974c484c2c09fc8662888006fe37286c2f541cdf436149b62a0756040db5a3e29c8c67603426c8f19a332b971811102d2bef48575959c3d73613d17535fc79b28f6695a3e31162a9dfc1a98f785c7b8d38edd3ad6b5be44c4184c01e174a183f269872d8d25bb8da0d54cd684668c5e34fcb8ed6226c66d4370e7e7f4da31a996d868470c7b26130b62a2183af2b678b719e9c697f6c8a3526060b52dd59108e976e24a9bd128a0dfd4ca3d7819dffe740abd0533102cc988f139261ad049d790d67f28a34c9cc655bc69bb793ce750c87cbe1685bc3085b0a0f71dbf3aed5e4a333c2c74d8fcb969cb10fe84c2ec3452119c5aa6281443268bb3172086b9b4e4e904985572c7b9bf72fadcedb01982fd682c3c531e97f4e848f8c14c8c7a8341a2b050b895d4ede4ea9d2c0f49a36f4d8c5714b1b08ea6d254ee3fa1630a2464c6ff817c3a2b13aa3615d6055a4633502f2789b063e32d3edb21f1cecee3f9c252873d81c3a44ff606d6c6d405df2ef5a277da2d37ee7f044c6ed967dc58663f64d974aa40d47bfea7cc0d1e6f4d79379a362ec9e868b5bfcb9c02a7ab74256a94ec8548f5a4baea3785f0996ff65b9f99c55077b7d11b7f921a1368cd9d3cc82321f9c2ab721f270d93ef0ca8082f859d9748894f040896295cbc148fade996cb808954eeeaead31677f5d78286bb60d152b1ed6412a0888c7011eceffe55363df5084a5a850126439bda71206ea3a96a355200f9dac53650d1f9a5e3e12e238f3f5470b41d6fa2867b46c9f1b2e362a7b0e0a2ff445e7019dd4a9f9e5d1b18aa33487e987be0302148817c29ac65c47da17d0786dafafff0d0eacbc503880f0d432d02b682c5cdfb1dd5118714108ac92ed49762c3670ae95ea8ae9f3050e28369b97daa2832be28a815a165c36427d3a262167fc7069d3a9189bf5696a64d1f21332f0d9dc8b473ff9a83072937645f47291f8169f23ddf142e73a86982213caca7cfef6ab801f91d90b7515603e691c7a086e805fc0bf4e1eb3b162b7e5bc65a95121ded129a941cced0757611b6058282105a682b11116da504a61fd9fe3394eec22df8172091ff40060c162942fc41790d9bbd8f47879b4e0588e6415ecb02beb0f43f22d449791eb8b1e657cf3573d6566ef50b1a43863b95e3ae2e2dcfc1b278c8f56d29c5764c9d5b9b9f0e0944c990842986259e6b876a9752b60de1c4d13316afeb897c0b74ea048eb942356e0d46ea50f53d8b6d46e2021c122648fa365c50e628f82a2d880a565f4cc63317bc49581a156d250c7a65473aa1c05c433df64be1a604fdb772bccf6d85b477666620c998ace9da13e24aa12aacae234e10d2622573dedff0fd600525c6b295137c52450f6dac5670051bece81dfe0f989240481d86d8bf916ef17b4b23ea2b52401cfc2c78fca489d717d24a1e6c3ea20b16216795c16dddd471dba6f2c1c90503f68fe7deb8ba973ff439f138cb92ad68ce1299a5182b577c57499934de90080a623819861d5c140f6148a5f2e13f546e60f6154cf837bb8aa02616f66f5ce6064f4d4a35a9e854eeadba012405cba2bcca72348e2b8e599a691fc73641f8df29d3f8d3f94de6d213773e335ce46efd1781fc061064bcecf4a435d6045a383ce8b0a01e784c258f483bfbaf506f42906c8630e27ba41c229958b483d50cc531ef0237c87a55a9d769a597418e400fe7c81dfe96748cf90d5cdfefc591b5bed321c82dd8f6c94869442e7260849941b52af5e5ac4666625cc8343c87daa2a732c1b50852b48992bd7283254ef9f7dd5a4f0a18a053cb29b08db9d02e584c2c33b99961a400c65060770c2dfc7bc29c382e0ac90be7239c37c83d8fd1e5daae09b77ac622939c57cadf356a4f45153199415326eb9ee26c6e6f51cdb7c701fc5018c7c45b12e12b6ea5ef5741e2fd10c82e1f2774e5fbfa303db9228fc1d928cea3c8c77801ff24c271e15a762054842cf5dd623d60b12b0ac9fc7874fa5256fba58ca398e991cecbc74ce8dffb123798772bd14ea427f009ec59ac33cef4d999dca50aa4bd54e8750f54ede3998108a782958c53e99a983596c1ba753bf419ef110f23bf79f289ba54747dc86c8e14e9f06d38d1dd72b70810e25ff2ce136b50bf2890d290ac7af7469b088a68e51c513d6462b2590624217886a685f14bd36aa4ba11d4d0e06ea6b678c27f68fc9d2002f4b9dcd7db065586e4530408b31f09d131204891c3fde482221f385aae35e908f9f1ee501ae162c8c8d0dfe358f3a39d3d922ea54782a028522b6821a7dc76df48c009ed8332c3f9bb799e922679129d851070dbed3f654ed4ba2f8b8066343a6cb207767d8e02d4a90afa9735885ff4f6952c49fb3876ae6306ca50b1ded14dd89ef58aac8412441e94beaecad23704aab68103d2c4c8ee296e33374822668b892b976e9ac62c8dcaf51b06c7f4c29279546df784f527c22a3dd461792269d5c8f7a17ed6e4fa9ed2af9ec15c81d7e3025a178874b121f1e97a6432a63b1301c33bdbf5f965c09d0aed4c3d56e19f61cadc9f1ba395a7b9e3fdf4e0e53639064a8cc017943e84e6d0ef19b7d2288d0df6f64fbd048f0ed13e4e1e5a13169c6f34c15c9239ed6527a1ad2f4b0d898bd8e503ecfbe3ae6abd18684b679594b075b1bdc44b9c4d8845489d010cc7ff8d60262dc210be76d5a2ed192e04859e30a41d0acb4dc488d4456b16fd06a7591ee15ee862ed9c577a2d2e9ecad9d5c836b69440a484ea556c644ff5bef8175c4f067d6601ae00dfa7e2d36d22626608e841e2f9731cc7616b6cd143add933d793efa8873766757407ec74714ef507e50e82464d8c3332dd699526ea11283165f35c87828c2a7d7b8d515de78a281231138740c300bb7a289dc8ef1573a66166877efaae5bdd5b4e4bd23adc2d3071ba9a9792db486b15b2a3f29eb3e4284272829d24b742cc448aa6b60109fa087cc470d71a8d1fe760b3d5d0158c1176718f4f35826461b5491c5609521d1a6320f6693a7fa60dc37bd99705f00e16bea46b063d73abae6975de91d3d49f57cd50eb9329779fda176e75ee74bb5f4c8bab2a25a1c630019d453b1a5c556552e34283b98c9ab295356304bbe4cb97c0de7281828944f06653fecdbdabb21d7e82cec5501cc3239c20e31e258846d09286195969a71bfe0605e172de10aa4dac9c27fdaba4b1128b6080b39520d04fc12da43a0c49ba22b2b221cee21f1ba2bb417935b9bf1b9e7cf297d4692a91ed633adc46549d06c93959d621cd2c6f9d17b32d124b16042ad079ce27a10de7fee524bb80bd904ed8d24bc015f952299ae5e61714de645573f20763fe08ecad1ced315300a39a4e0f1efe216964347a20792390a31f0d9029019346b68b40fcaa35bea6a82eaa21f6075bab80890cf8d400e4b7f5042b2526b58083a94131758adde0cc658ac8b091c18378d81a4ffc56ca5a040c2df74763b7f3847b5ee69d89291710fed33a0a28378381691d6e51fe4aed0ec5e293731a15141d8bc8a8bfe069c5e248c849a340a7f348814b3f3d8cef33174c6b89c1d01789b825e672033474ef380b9688172e282f70186c1b704b40efba1a588fa684a812d891e83398690c0aa2a2a533c77db44c4678537d77612a1a56421fb7e69898605c51c1170112e2b541d275db11a1ce3af90775c95f0729ea791e23e3259b4ebb81aa876e90755b956f22a78e2e7fe8e6acc275aac7c9c251c0cd4d8057061c8c88c9a03493f5c28e80e91a57b11b77cffcd2d4b89b145cf8ca15752a5a2648388a92cbe2083823825101220815a6a9ce5cdcf15e9dcfccd18010213b228c46c01a72f2cc62a58447b40a5a65b5465a2bd6af3e2fe5427322296874fd6e7aded1210c28c72a505a23c6b11ca1e63e79910c5a86ec8c4258463d61868e758ece0b8d392903455e52821c2eb33a1b26728c6e1dcc0d0751f3ff1fc1585792b159e4f164c7c3724ffe547f24e920917758ae503a1a2535c3c939df55aa2412435cd56a7993ee0f79b0b85e86e9458f331c5a919c48f5efdb7548e2aea6c09a67334fefebde102bcf2e17ab8b8e063201de840dc91f3bc70c9ad166a29e544499fea3229253f44f09af95771001e68aef4456031c031288b46a6dea0310dea586951af28aece5ba70667070256128b219a4417746d550e52a09d125f1220de0fbf14c6b72c31da6bc48662c2089ca193d50feda734239abfbf028f9541c1e392fb516895ec43701401034184dcadf9c972366cbd9f00298dfcd03255103a96f3d769493551082ce5e4ee190b4f1c4fe0fccda07c54cbf0cf4e2fb57191358ddcf09a39e3599db2401e43074cee9cc312db3060c50b65e12bd1558d2fc0459241139cc951d92b4bcf9119c4dd0676bec2f720ba6c7f4dcc586c425250c2149e82528ab2139a4fcb67f09b7e8406a3dda7bf89e28117f486c9381ba640d133190bef62c236a2b212049dc569ecea9a7c18ff600eee857eb637173984c962678c660028035d119349992bfc2fdcad5e6adff068b85230d87875a69220db701b7c70fc9aee8b0454168747c3aee4722c993f62a44a5f81088262c9d1f5d0b88547a43769a5d92c535743d1f9a893b5e85fa649d23edc7227ffe4cc379615cc57fbc041676f8809fe88fe7a69bd86692da91489e80c866a1cafc99eb6724fac5db86ee9f4a6868b58fa9fb09307c63d6267e4586caeddd6bd9fbea9dbf464c4ca7a50f8c83855fef853430b15af87019510c2925464fabe8cbb823a9e9462e30343c44f02247ed064170b59612ab0f9f5b3401b923158fb79a4e72f4cf0f330187fcdc4f099d5f76ca67aa5748140511f0642c4f0c9a8f3457b65bbc7c7c95758cce948fe25f450c4f7ed8b5ad4b130c44445b805a755951d72ef8987879c33222d033231dbe57b9442a723b055cbe8706eaad13b8ae4ea8f2cac5035d5f8d962e4bee97b6b0d4f1dc704ca6a5429b02f68b889e36e78ad57db0679e17e0f9ecce49d6a75f1eaf3de7fd9e0d9cfe2422d1b54eeedd9a323b02218749df3ef5de03c1620f8ff141540ad18640b7a063e06dea00c4fe7b9677e6b78ee8ac0e39eb4cd04aa4c75b115c1bc899bca4cd76b7d2de5a78492045bd8ae4e7f449c2ef464eef27c5a121c11f216ea539f5ab73b253ea70bd38256c2b285bff62d54b1f22e025242f32422ffb8bac209a6fe2b8de523d6e68db5809168453a88bf5c70a63a52db8f95464a7068ec6919c32a2688f48d9b5b091a9cd41e445905362154f8ac50d9543c906757be7968c973a6da85a184740b0a0d598e5295948d1547c303145aa33cd8e0235083e5165bcccfe4faaf55d2902054fcac2580dc58183d5dc80bbd21f7b1cea5d01cded894c0c35f57539713e221c7d37e34ce468a78f0785c41bbd711cf497824868450e1dfaff98a4af9e70b5ad08e446a58f63e1b4e3f510d0ca5a4c9fcf6b0c1a370e641c2a1c8986ad63ac7cc72c8d8114baeb5f1b94af02ca1b7b2289af8bebfb5756fd48186143f0f3ba73908e38995b26c68255086d3b4cc4ddbeefbc0e51c075ac57fb1a4f2d7bc31580f9e3dccc23b9061871ed07a1f3436b775fc826c291cb6fc22a2cb1be8daa52903dc689183f7a4a4148052970498874bf237449d2260688e2f839a4c2e323077cc75d56c2ac0a340d0f49921acf0ea905695dcb44fbac700badf74529ca295dc0f3f18e7688291b3edbe5645213de3dc17263b542b2e807e0acd6a2dc40b5ee2844304f4e9ac71d814c58481999a58a47575de4976d986eac463e0188901a44d4f1769c5983839084fa53c0651c831e8f2871894536ea45081a459e0d92122522e38bcd70453c48bab79fe7137e95e24b6d0c7ba7edf1e2c80f497ee369839eec850574d0aa87ec1c24088d5f7ee6a939fdd94073e6b4bd6b3292ae3c4580fb47ef433c5c6db538d460515b6de41577f5c0690e2027c1f246ae4357a27b7e3f8f0e7b0db4ea3f7c286e9c14849ff13b9273314f494b71b02f9367ed3d72bbec0cbf6d5ec404a554dd323246272e16426db9ae9095c750f6b7a52faec1bd3230190e13575730919837b62640dc27e520cf31eed00080c8d1f4df44c44a84929f0ff94a28d2ad646c642170e617572c6b638e18e9dea2955861ca29dbdc224b6078f60fb393da320d5af75d3764c667fcf8f23c2cb56ff699e751e532e77c5c9a70ddc9ef49f7de620a9e42476bb1b8b47071a128ca442d2a46c258114305d0dd5c9a05dcdbb025df615613ee130af9f615a7741dc6d48a571f982c35b4b2ff45300c2288c91fee834538fcc6331a7d0d8fe0eb48d1ff8910521f3635ef664e72b00ace4d4ae5e7384eb7b84b6ff2fc5a57a2e3a8d196b28c0236520cc84c621a15f4018c8521c4d56a45b30d0836df17ece905a52143155fd872806328da1944f6440273583c0f43cdb1d83a6666dcc73b4842de0916adae873a76a86e2695d3910ffcb16ab58b2b88a98fc35743e479ffee2275c025888bd05a6ab61defdc2e6f68268417a14a4d885340cd198b0cec13e8e869e53301583b7912f5b5c06fea5f3a4cf9e533140a8485b17140c1174301753133da51a86539fe46a1724edd05ce3948385e9b80ecf6eb8e52245958b069161197d5c2a5c6596e3498e55cecc723a9f306ff1d14bbe0c41e1a399d2545ba01548880bfe18309671502671e66c62f1a33c5ab067f650fc9c405c6346636ed89133e03dad7e96330185557e8bce471a871f5ef088ee84b4786157069e284dcbc7a56f6ed4da959737ca4c6e998f11c1212c8ee8b16f5ddfad1170704994a19e64c73def64ae671d3424956814f0192afb7793bb941d867b4bdf4d3f56291b7c29366dfa72d37cd506b4bfff0a984423860ffc87909591ca7fa710def943d891a824170b9802e1b8b4b20f0e658595f8f5f77880e2000923e9a3813b200e0e0d65f5e02fd3ff56adaa0e6e8ca19c7667f2fa546cc6249da1e44fd8a3eeb00682158135abd98c44427112dffc027c8612800b32d95a2f8fa9fa6f072ac7e23b8d270f6533f5e816c0cf0968e77856c4888af9e09634ca0f64fb1d599b63fc4cd9787c62f6863579d642815094dbf24ad9404cdbc339d7cadf6b36988af343def6e9e4f4a00377bdf8228f44d1f00e573fd7eaefe17c12b051a42826d0f5706283b2a93e087567e44a85937a7950c41b02fdddb9954b5c7dedcc48853183f3c7d6ef8a5586e574e2d6791b0d55f420acd2572e0ea96e7a4f7c17529730458665b793a90f6d3d49d0d5b951813ab9a2c359f3c43d7cc3ec1d3157e15825fc26ad6edac6aa499b881637734eba8ce23dc27eed681da6d0c787f89ddfa72b3220228142388eceeff2b7eac9d586dae3b245518bb4b37a14a9e536942718bf29194900ffb3dce973bbebb018c86429840d84556a73504de138500c18414b9f0b1e90bef422f5d11924f846af1b9e89906b1ec10361d68d8b4d6676bb22558ddebc2c87e453ea08967d0d0b5eab812c0d33376bb28ce6780fd1b55bc437efe9019aa22056cfc6ca70021e7b160c344409b2c990aad06850d839098d9e6c759609d90e051dbd895cb1160ffcdb8261925a45088b7a8d6c22580f974573b0c984ab505c697fd8070fa78b536ea65410b9138db98f701d90f6874458e5f97e476194b0680e49a4724f305f013bc1908ba7d7302ed01c3effe395bcb706d2189dfd6ed00fbd2de0dda679032b63bc786b2bcecf12040cb1027c8ff6311b8c5f33025a80b2d9659e032bf2465546aeac3f2fa93ca38093b1b2113b5e1afbc40f0367311cbaafd93847d24d0a00fb431cb854b0a6a7a66e94a6e25b8bfd9eedbac48e2b2e09ef6a94ca33d42b5392953e5d635e2bd952c3d2bfef7757ba011df15f7380cb31b318223b6449006595e23204cb6dd3b16935d272d564df49b2fc4f8ee54596fd06727565ee1570593aa3f9454329d6962e44627fe549bccd296150131d17b7406bff15480ad41acc0d61e9d27b94844c34567a6841a4c7077b9279cc6547591a9b8a3d39a0d69d5872daf280d59fecf9e940d9c7d12e32ec52051046a66e74436b57726fff955e839850024f77c8d193862ca460b74c7688651b873962d00ad3a50d45ce53cdba5f9cabce181de0bb44f574d4a7a99e6ab0771aea3242981f4368d15c131526c9603969a3bb2a777aebe2b05bcde535860fca20835b30079ead7b09d3bf66674fc730f978a40a5461345af20fdb9efb0439302402f16ff7dff49eb69f18e84ea2061fc6b58877a8165a6922a8f6750eee686c618f41facb9a36ac517c84be2f82b36425f80f1a26ffd77d24c109739b63457cd3de2ce89096e04e7e2304e7a3427c5ec841eabf419fdafd22622ae49c832d83a40f27ae7db0485dd6599f6f5c9fcf934fe0871345926f8b614c0cfc6c5e678a2293fb03cfe7416100c81aa56e3a11c9acd5bee81119a3416736f73210e9498031a8db72405f0026c2a09ba4d9e49c9aa8d973aaacd2f4aa0d0b77088d06090a74cef71634f1554269d3157bfda94ff6cfab437e676a2e17576a04e66bf1590cb02a5f0e7f963d7625df4d2a8a7c5a28f5aac40824764c174c5da3205e68d36be0c0afc2b628184f50ffc142952ee56bed54216b16ade1c69d2664d971dc091b993e5ec56beaf17cf0fdb7efb9eb233f8e1e39f1f2a6798400140296ec3c1b4b53b93fa6848c32e9534b0c2d72f91b900679e969d56f396bbbeb2e11d0e7a7217c9b83a86e26d021930ea49d9df907da84380f51cd61801331a55f94fa725f4f906b033865e63674691dec255f8e6ea42bcdc8332c86ce6d5f4c2c2d96e7f8e8e9d2b2335368eb2905e8d4f023b6811321b45905f2339951ed7c2eecd306822e155bd8db9636a8d90af5d82658b2411dbe762a058a767b9b0d21e3ba62761cdb9847e903c7bfc215129a5acffcd5b190f1bae8c245ffbf7318ed3b32fabee93d84055fd59f5d9b604b04339a5eebbb30f308c3a4f2d6653f60a5479a13b2a2f7484381a7bf2848355714c78a370bcbb4c0fc01b622363a66238227b03d0dc408140bb8b6f44149e7527311ae500207dc7b23097adb6d03cc5ee5c7f708140d504bc51438da64cc673731af23470ae7cfc3dbc41a24ccdfcaa43df668a7a1ed68d82b2c48cf68f354ede69978b15895e42dc68d0270e5c20facde2d3104dacbcc051222ffa6b82ec4f29bc299552f2ce322c99ddc788e081880cf94cdab68f0203a5457d5062b0e9112b0cc25b82549f2ab0ff261678005291ebf608b93e83d251fb9e7631074c97b4557f53ca5b1f8d4298cba41cec8099827a6dd5c8f9f1181d90b8e69bd520b462ae6ebfa73e712d4dac070d8211d0be05d6e84ee3e5ab7ada98537a9afd701151e94153134d5f7e76b45431c63a72bfddc84e0c289c2ad1951c400689195cc3a338a4ce901608c0cd8526a5c2973172d715083e896c52df0f6c7419dd4cfff461d6f2cb8d6df9f7423697377df78f84a1ef35c1a01952bac3c1686b36c6041adb74fef5c9ee474d1748ac4d3821eeb33935e3fe3b98a65b42b96561effe8f6e7a7ed8cdd74bdf02faf30a414ebf3c4501a9bf2e375750735ab797e6ca9ce550fcd53eeec930e7c9ded4620c07aeceefd85fce80881677685bceb688bf49bcc61515e6533c8ac534cc616a8734d3f6b572ac1417c0fa0a62fc311592bb143c41f0673ccc6c64a79cc686974e5102bf425212676e85c35e40bec86802ed186fe77b5eeb37a2ab1b87eff8d0e9d7a9d8195006bac7786ba1ec7773f6a90f456f8108499d1d3c0dcf36946314ddec2efde3c248e484fda99cf4b3fa87e87c4493291da8743df52c924c894523b3475855b8b220ac1d1ff3c27e3cec4226f60aa313ae436527c75fad2a1e7dd6f04a121b7c2c681f7c9f70ed7cf19aa413a4e6f02f1f19d9cf972942db5f9aecd56d13f7a6db6648fb35e4f45c6d3c648dfbda35ad6c09ed4db19db578922cfdd08c4126a2ceaac3898546d8b1871182a657f7a42ee86dfb19957b82893e5d14b0946b9d5692ed314e3d53f53f88aa49c793ecd721f0e364b445b88b63ec69af54388e5e56c39a01790c2b39349e0e2fe95d039429db0b0ef5bbe7b11643b61ef887567f5c9caf6d5a5388470900bfb68495016e0ed65c6a0e98a0968a0d65fb95d9d02494db6858eeb7b531464ee5bb8da05624bdc043d00b0dc9bd95f76a2ee68a58d15958ed8a85df73585d96670afd4b7ee23797887b435c736421ea8d6811bfe78bc64ed032fee46fed7c552fb48639a1e1e8eb5dc32e82530911f33d14fd0994b413423443c2d94d7ff13ea78f6f499c01cd6bdbd860090a2bd11334c5e7ce9f8ab35fa560a81256824ef38766796aae0f95c48df135b6fc3572c11faa029546389d5349752304b0c08790764433c24c4e3823d9008dd6468889fa406f01828e81bb4aa6bceb7fc8505b5f7c7520ffc91b08985618fdd816387c431014c950e4448d0de443cd4831502cf2656173bbbb667bc14a037cfd05a88ebd9f31e678e38dda0cdf3838099cd462a9fd17af6be9277c6872f047d07efef66b2ea879b3c989548e0a63e0f7faf3959a39a8ad910b755d2fabb8627a743310a720bf32e37ea4d1d0c8b8609ea7c0fd8e79ed084de7926ce0de3480374de83686439284fd513b84cec232a81754a8f8ea8c1a2f825147213978e5ff3c5ab9fbb725f499c455240900593634c3e421581d2e386738de9d2fdbee9451400feccea51f04275ec6a59a59d73b9336ce8fc61e1c5465dae2e339637ffb6a91641260427b98cde0792e819de2917d9d158904fb3f1769e1858813b2037f5a0cea192deb455ecad19dd65d3e3e6b4f877f1d91fe807aa07b8cb71662bf9bb24f65c6faadacd802f6464549973983637a14fed8a74715e60d9dc3d4d67c778cabf50f0327a2a4bf9e9ae2e5fec6810fead6e9ef4c967352aaf69c76cfaa182177cb89b42549d4d6400a3ad0a89abc51b43f5165e88ce0a04cc62be224d3a408390f14ee3cd0019969c74f30b298b15e146ee81f08477d67d027d6f92802a564297ae6b6484d5d08797776a0aa816927681b2e392b45780f3a5375dec6c493523199081752a54fc973868b8f953d39c6294ee3791ad1d8508fd8b1e31fbd5c32089b9f9561a5602f51ce108c12e5688b4787ab62f094af760bcff2372ee856011eb0651a89ecda4d45c4be221b9bde38d7b49700027bce48c460cb398101b0f47d7139e868cf4243d377b8b4518e62a04d9b7548f9f0f938ada9793687ad7cb66d896b68c0907e128623525a8bd68e7059a136f8d2ec7122e65de0d1ad11ed93ae8f76fc70a351237ebcd3d4df3e055d4bb4c4b52d3db5c891540bbabf8e695ef4eb0e113f10fe2b276d32a6cddf16c70fbedcc860e66010d10faf5c5309eaa92c1643c9e21cdf8aeb750566c2b106b382535e9b4f7236ca06ca20eb1c0c415da7df7ca7c6e2346308fe0573002cade0e7b49faa157d9c271ac76816434d32ba6686e516d1366d11e88f03fab9a8210fe11275080fadb8f30dd44149b1663af3d2931fed191b00bec84c4e0ed4d2cf082f075bac830115e9e8c17f7f88260766fb37b839729be6a277fc3203ca8672543dea7484dcf06f8287bdaf5d7a1aa87eb8e1ebe140eadd8df2e2911cd10186213d3acc5c1692a352323037d2889c882d814b010162e095cdc069661a20a5a297229f715749c60b82c9ddd94d381a281a2a2a1621cc083e829ff2798d9ebcb23d99fe197e59be675f369582130bd7a878202100ac20e6d0a7076e80102d42cddac635f3924d03da009091f96bb27fd0dd19b675731a690f6b9a275228d145cba9bffc3bac6674635e0d9b016b8b062dec647dbc0a8340785b720ad03a435e6b0e25b8d445ff0c8ff5d815d5c7ff7de261ac8bbda01e0d83a837f02e8bb25bca6b7c6bd061d20c208b448474c4addc1983312fafe5c32d10b6696acf51bad3a0c3acfc78b289f5268e5668f35b8b6fb9459b951d2343b3b67276cfa3e2b1baa5304b51713162044deb617be95bbad2fb54465e1857f227efa74f4bd529635c2f590ebe0deb10528870d1267dfcaca2477adeff0b734fc2a139383cfe3ab7e94ab04e54036d11f1c532e09888d73f29c1c46ab20c319823614024d377544cebc075d737540beecfc30f77ead54a5e7c9c833f651934eb24aa9037661418f9c074e5bb803f105c5577dc5db00b22023a57334bba66535dac6016529018ae030b2bd9a72ab5d37982dc6e79653a4b3b82b20a08155c268f307c4a7b0b9e91cdd26d61d242f0a02ae68a953c71d0ae662f1301eda8b05873782b1b6ba8ede59160d2b38cdc74639187449f4ebfd936ca32b11b693b4cdcb0358f29b891c206a52e94f3f18d749dd7c555f4c084c1bb888aaae6e15d7428395b91bb9825f45310a0408a43807e5a040187f1c92954464c6118aa557148c2086f2c23f822172ec8ab852821ff726cd3316db3bf25326d547666ba151fd09e147b15311bd49111233ecc0966a4165db0c46d841f61f40438af241daa80905f42fa7b044d1188e62bb81250445a41e4d880e1f8b077c3537a054ded8f5b09671c1eb88c9ba61fa6df4fe24e63c80e5cb33cc08e923163f66bc7c45ae200636e19e8aec4e1645bfd5b8a7910f2b5610c35896e65b822f93eb79161868077fc2fd3cafbf1415682243e2f8ea905dec1d53e31a300128a1a467768345049c6b0d474d460a2e1ac1474000a9cb2327b3259266f8bb508d5dfee44feb1b285c0858f8bffb703e35d2d2a75f5ad20cffbc952b93c9e8d77ac4ad742215e5263c83a3df0050cd379743a8db93f1c6335e1dc63241e7e7faf1e3b1f10f3a611d43b9958511e29997265565a2b5ebba6a118e71f059978ab4685fe3ee8bd941e5e2b0f65c6764cc2915eba4fbaefab9bec7172414e29673d7293d41e8f94293a90de0a7bb7f0142c4b34cdf7f69b50ef175f65bb0527b356e46daaf18b4239a70d7bb572b3fe60a815ec888a6593a12550f3a8da6c5a6b9504381b220c40e051bdfda7ccca63fd3dc126141315cbb23e5b3990687812dc76e8a682e4ab8600c453e2b4596f0decd92f97ec24ea0a2473eb2e3d29e6e62c734a278682f54c7188cd4d2a4087ddb8c9f1c88677f0dcf5dfd9f1114ab440dab4dbd02a561f511f94324c64206a55ea83ab6e20b05ce66eaae89aa89c2dba92aa1252b2489f022820a948bca04313cbd3b2066b56e3b74991d02a6667620d04fb0a2e8cc3053fb45278d7b155d6d25272ca1e1c048b896391a556a5beb0872ace2ded7ea110acd2415fb372e58a132149c35b472d1af3585f94db518ee8a4211a3dabc3c9d1ebb628ed89165385414d1592219ee00459c83832439425d5c56c67ef744a9e76b96d02fbca4307ecf6dae1f96324d2ab17f4ad9f72bd4289ec623a70073a612b9f1980aa59508ed08bbef9b07a24a744888e47c2c91b89a35f9bc41515a65869eaa9834e7bd02ae173008586d5cb03a29b8687263810af2da3f22a865b729ce42bd8d4eb4a58c0b0f9a3704cded78010898dc3ebb98ae2e9368a4773449b8c4ecd0683b3eb0c841e695aba70019965b8a46dfeba64f401720c1c28b93d032c882ab46d19536c40719f8c2c9966476a46e7e0e081d4ae8a5fbc0c6b088d35c320a6e2a3d5d0b52aa5935c2e77793b4b4326c73609ffc2de7ac9965efbf7321fcd56cd7da12e3af2a3bfe98d1ce7588caa96cd4265c1c9e5a547f94802a24f6f6277b906a364c529ca11d9b4e2e5916f87e6be721750e638a23bf6b0980528ccfa2cf0b0612a59ec3385f6f464d103d91ac8b516531e8eafb262d8946bd58a79af6f36d7d2c62bea11db905fa2470c5e5b0a30661c73d629761b7d2dabb1515c61d00ede0cdfa1efc3ff0ae1976ee23efdacc0f4bebdfea2e6214840a7d90fbd6fc5eacb474f2eb71180a2b3d9c5c8405c62b57c6778ee7497e74cfc514afe82c6a8037123a6cf9ef885c5f6241aceb646a69f3b8685b418228f2382fb580a67f0685ca1179decb1afdf8839f77b56165b385e40c24033312c914a27b365e8eb5299ee86b29262ba154bb51f61cafb06a77fdf6f67d44b9df3d63ef1c16a90598881ec5780de659768df2575b6cf499394e349a7ab6c89c23f91fca7174042f489969436fc7a6a486dcad7d010b2b6926d66798842dbb12ff74985593d04060f65aaa847b3fde62a893651c52bf532bd42bc4bc8586b1f6f57373db4973ec92ac7593612768784eaede420f1d7a10e038352e950f727fbc34df22b3318b69a36ff77b7dff2bfa4bce0f0f8cb70d9bb226acd103ee1ed40607c5f1c2ac2626736347f3e19f2c6f88dcae325b998189b6a3034fdffdeb92fc94c30a41cfe0913b9b4cd223aed55121661887b6f81f75fa03ef6d662e031e7de5952b9bec1d5b54a612cbcc9d30d9ea01878f1a0a1b88d7bccb3416f400b1e16c4f8dd356813664ae0c14a454c6c41697a4349810ba89e0c4f1c16e20b15b229cc5ffced28256471299d43740471be8007801a518969de0156ef0a4b02349bb5428e4d15c8d75c37fca3b37ec636977a52e1b6a9071c9ec611895b748e203b8d04aee3f02e4c8e25e49af60565968d2fef5206b291b46d096ee8b87a7de26410d6c8ef15ab142712246ed47bd0dd16e88944a23aa480b26b6d84c43b5a58e2628b37a8406c24a4928d2528c843edb7f70f306104f36b512bca1f57d56f7416ffb642f80a7e73db0f19c38a9e52d7c349f5012f024b88dd29e1d739d3fcc5fdb85339dc5bc24cbc9f84646ed6e86b8a2b97e7d84ff085ee6ff60e15b5d85f44930fe43f2f9f3f483089ac7d89f8494072962d5f71851ab019bd678eaa1f3760af050c268e510fd152cf9d8168fb0bf9415f84362932f6aa7066eced27535c6aac149c35f1e6a920c6111e64a3ad854ed9f5401190bd9ef29ab6975139e7aa10cdd9d76c9af9bb5077620ba8d1a1a7470c0996f596ac6164004619445e9869b77b485c32188a918cae47177295a717e80ff0c2229713211352d163c08f23014b2a078b149ec3573c05011745dcbbede69ea7af389ee7c6a44763828ac3fafcc8ee2f3862516c0009d33a093881a2ad4698f4c78d6d2230764161e53091fa57cc78ade606802c2417c4befe9821b03e5ae55da657c13f463f200314346ad8f09b3376a821be1f42d6980f3c77d8127d31580c428257c3692a7a20bf0f7b51efdaf0617bd4e260646f7dcd78e4f3610b4110fb529350ac6b807184414029985a95ffc52a78e6014554da8324d0c9e1bad8678a4473ec734eb0e83cc85ab25470084cb46756b0ec3b20bf0920024f8def5cb81b402c17407678215c8cc65de042599bc4f7a428aba6e848f03f29493a81bd9a0000289418c4f61eed48414f2e590b84e9490e75bb139a3720de104fa50e979b7664be282bf97b98b4b450ae608b9beb1dc4084ccb2a45379fbe2a392bb1b2b8e27d24ad196116006a8990fc261835a96e33b4fc0f568ecf391da586e5843d15de7d2a8c46fa5d775ecd179619e68a119aa8ef899b7d4862a30ecee2833921b47a7dbc4d82ac9f5537ebabe4fd97f827aa4a719b9c1eb081bbda1dd2615670651ddcddf805624e9ad21af152a7fac0cf7ca8770ea9be7edc83b2685581bbf42762b82169dad32c25b22f876ed036461acd23ad19a0e44d604fb3dd4c3f9071a219af9d03e7476ac473f89efbf3c6881ac65bfde430d251dae088ce2794932c7512cdc6072a45c0f88be8d65e4f03fd1068aec290b05effa38e12cc23a56322f55e901192851b1f43dd4b1f25498fa80bc121896908082be096145c495027c8d65ab79b920dfb06a50175a6066c660a25460d18f96b4d4e506ab8f83f5030654c1bc3aabf67f46424923aac1a60d19a86ed4ad432e380d21af2aa120223708910b307e92be48d1d150f15dabe3de78bebbc9c92169ee1f4459e77987e8270e4ad90935650c9e18a01eb5b6dee2416415f26cf5a62c3123c4af2589cc6d9ba23907d0265d771b6408c515452e71894ad906e9fc32f702c437374cba687c0aa4526326226e8b783b4f5fb735880a4802c23bcf0e1bf66f2557f12cf9e6edba500b6cf0833c855e8b669052d382b2ced3ce698b53a6476878d5fb5e868f27cbb6a509464da7023699d72c091f80d32ffa475cc6cc7791293d16f9201c57323ebf671d68ae4943cf79921caea7cade607d1a04cff152df2082de7694fd704e2612544f84a5aae3ba5ea43af36b25b6d60f0c9a671fa6d513e0be1a14b12be0488cd2a57dc2181916286dfe93fd641c752b9c9c4b65d10f39065ec3762af099bf1c5e7a27e05c8215a9c95695a1596636b39321fe68128d1635960d354df1f86bc8749287f0a61ac458af7bbdd3f4d03adeefb226dac4ccb0f400065fd8b74ee88715dd0686b89c686ee10f10a6bcb509e6a0f6c8285c23b6bcb166970cd6e707eb988360dd72607b9d15a45ec2a44dd03e28b0db1f1a207e028aa7fc80376920e3c49ca245a07fb1b33552038ed40090ae622a933c60916dfa51f1c7862630b76a29693944839d324c52ec074506ef8288c11211321a0e4614d39edd5dd7e82a568c5b79d59e85e3ad59832abef4e3e46974636ac7098ec49626041d1ee384f0d29a72a5e96e1b3fd8025a02339669ef0357decedf13400a3cd0af3f937aeab230c73a1f2fa409bc87a8caa6dea20259edea81877c350ef0f20661dff4ffc10c4c1379a6210fecdc7b45f1b456ea63720978a0a6062e44a97e66dd850c5a36815bffb083b8a77cbe572cc466f31ffbe6bbbdde8a6403bbf2d261b7802fc5405fdde21b19a3ea60a4b14383e068169653d2d09aabaacf192f259894cc2a797af6b928d8a3a626edf5578cb7f7cc5f6834816643ede862f2ff296794687768edbbc5870381df081f102e65a37f7480300815f06e8685b6fafc188634a88b0019ef572d351f82a655becfd0100da5c4b49f5df9b7d415c2cafc114255219585c8e462014e18342734396642fb6179ac5b0df4be49f2b5def1b502b354ceadbbc4190416c3161e5092787cc84eed4bd894822e74568d092cc9477d802aa206fdf6775263586ac80d553518100df07b6c57e1b241709da65afdcc7f99e7cc9c5ab4482e0123e2e1088ef9bb3b2973d29a16ba0adb70dc65a7de0dd0d735d3c656efacba83ef3006ed108370c499241ea3cdc00c2b93e63e5000767f7bc803a8c5c68068f02eccf16742e5f56b25025332a639e04d0a2048e18cbe146a7535ce9c9fdb48d8034e857be080737e1014a50309b5b85174736a2750c3ab5fe97e64d8009219c134d587df3d77181d6e0dac4d67c7d70dcb5262f9a0d702c002cdb8e698f91e4638d3424a81c625b6b39a5164d487d9758b2ca5075285942205ddf00b93e250d1cfc951b579eb591b3695c2ad7d74a0e80ece92d3db9e8954a393949b4356fb307d02af0f711622ab37b3a09329ad5fb9111fe84ba7cdae104d401a78134af9d5c0995c8182b0ee6692b1278d398259257eeba0758b487376f56fc3ed3b4b19491ccd45f3ca39e79414a0a69965a38b7e0f98ef5f656c69ce92bc800d7dab7b29971adba085c15f80f4eb801851365d601ab8faf2f2be33a2eb6b02d52a632797eceb01a863f335f217849c80964962e2f12cfd400222287a4ba98eb0e2ec919b19a3f4f668282131cadaa2a82f0bac1751a09fbbfb7e83dd940e932b0368e8421c7e4069a4759df359858d5fd5ce0107d331c06c1c3441cd0264073be21cd1f995dd8cf0c190d69f32746fe1a68398a88541ba1de2bc71ab3a2fad5fd3c28f4b4484068bb45f8c7be2f61d1671b9968b2fe03ef195fd219d891f89e51b1c785c3862d568bf19d5e46df0058326f01fe97fc736b639bb1b6a9053857ddab8d0608e7e20c2064452571846827e4a77d3586de17d89876b1976d5d328242967bd110a0b2342b453d64db85253ccca562a603e2ebab1cb781bbde441e1e3d3b23a19148486f94e9cfa786623d0a30c49baf8932d244287d31e125f69f500ae80439562062081bb16e02cffcc9d3c30f766146c22d9f4f106cf50b1297b3271b2a886b4e31e0da8f76d1baa3ce0bd4f1dcbcdc59a81039885398eb9d76e0e677a0021e7df3cd70adf57ca06cfd78b35fe2ccab1becf37c12b5d44ab2b751cc1d0560e7e0812960406529e340884da26d2f8d84ada410c34281c2186ac8a110b603ac42895edae01c3576910459a95b60d4c7b46113041eb3a3e68849eabf75c72ef384ca766a1610603f773368ad5cb19d2a0080c4297209268a24e77d9ae5022fa178036830b57474305f30a70ad854f7eed013743b2430bad7158640dcf8fe625f976b66bae118242ab70fe56cfdfc0513441a144f5fda125419881955bef5e96bf29e6a8e88883eb7c84bbe9c0d29691514afd93213d14aff18363a05c8e46fce73f47cedf174d276bcdf9e343bac213b4ca3738bc01b36054b1dbeed154c46f8580742e3a463d180fe79ac7c36bfbf9264ea7127bda6b319854c0bc6404decc40d7a8079b2fe4491b69dbe75c7a0048295272f18e8c035cbb5a780539f73f214dc07b8afccbb68e89c9648865aee048420bcd9256700a8c0ffa23afef661281caedf7f4244fad1e60618992801d200b222307c02b17116a41882aabc71959ab4178abb4900443dc0c133dfa43c43cee0664612df23d3a54929a780830e0af2c2efae20a097167ac12561c7a3c7a226bfb7d068bfd88c1109384ef83dbdf9fc4f4824f13a68f101f7fd9102a61702bd4ad99224e0c5c397bb5767e891044d76647769b77512e5e28c6c0770ce3eaef4e6ea9c2916d02caf82ff2a6398c327dbbd519ccc1403f75e721266c4ffa14a93d93b6bb064bf53c1f24bb51328f046f1ca3404229a12fbb0210dcb37b374608ede7ce272aa687e71a47991dce23f60e040e1a8e86bb596d40edebb9e7d3d930dcc37c6f5ecab19d82999a2b580ad072c282ee51e4258ec5aaa8b6911e4d1239bcce4ebdc65e56e70703c85749456ab61b02a276db749d907cb5cbf547b8b9df00d1c2f5fdbbd7d1883c1d79297bec550beffed378729c059d783242b118e1b00dbb2c31ca6d1a4e8286efb59b554829c1772b27b1e6335b42175486af92b97b3322460f8ff75d3979ab8ffdb8829bb5fe4a84c1d9f611c3faf4011ad6ed630750489a3cf17dee3643c422075bd8a304775f4486d88e62883f9f7fc740550a13f6fc4597d6de0d2faf040eade66649acb68bd1c24062a45c78821df8759f924fd428f22db95d0d475b6415953939848191ca3d928855a1d3444d9f0fcd4d3b0fe1265565108b7136c91debbc0b8c34fef8cad3bed899485380fc55991adb31f272be06f4556617a032f3a8eb4828b0e86989012ea3002b36c1562822ded8ced4a91eec6c8d1e80b21241e8f6de141b2c7419987e85d5cdeffe4171462ce827e10c84662283fd5e2872fb33d1d967f169d98ea7eb9a0b63199b692d412471e0f9dc0a30b3305ba6e94c5fc01357250ef2bb9427fcb719f6b4c5ab463996540b596504c8ede3899698b32c06f848ae17c7b82da88ba915527d29594767e08442fc25874f9c21296869498330619ffc1d948fc060513a162c46f4238f60ba343342edc608d92473b52569b6ba75e34038c926a92cc46cdef91db8b8bd9e35aaf9945664a9792dfef9bea69011392ebee119c8dede5f4736b83ddc24e8d0fac291bf9bc57a79812edb44f0ed70775be212de2aa2a966e2163296151a0ab5d2f052661ebe846239b8769cd7ed0727af63efb619debb0c5a86d4010dff2a61b11911768c132f7285686bc8dc961946774fe92c9e082cc04353b961592d891194d32ae29e08e6a1293665e85c0f2f719740f54df025d2ab46c346d5d98db846c9e1f262cecfcea2e5138831c42669d4e77a1eb09547045d2da81d4fe48c73b0a565a03e980c5c3477dd8f9f01120c25b611a5fb47f8e81303fc662d4a18c92c5054f64cade6038f82d5d5b4588428443d1264f3b3a9db1991653c2322e6199f241e5fbf1e9e3290c871d16535be3ad3f32ea5e0e4853a7b8abbb0d7718ebd2947503da0c7f3bb6193886cd4cda0c197070aa10bd2221ac68edbfd843c9182e47cb53a48181a4978037935bb7bd656988012de2f6a447f4f993c1c5dae449983dbb3775aa2eff174b5c3cf64fc4745329ed7a13725223ab85df23b136385b1dfb0c3dfb18a7c3e3c9bc73a2e64dd83c88d388fdbf674cfc315dc4a5517dd42d14230d624c759c20f72614eb403f754831c03bd13462698503de338cafff8fb7a0f6994935ef6f78cb16a3b159798cf6540970c9e14a1c110b5b2c4cd49a8b54a700d73a83f00d56f0a92cdd01ae4e6cacc520286a893c0d98e42c8c094eda002b4d5bae3d71200d4e2c1566857e4b031d52d9ab88a5a1abfc738460ac48b6a84a5ed6b8c6845ac47c04da1c03d7f3297c6603824fcaff6cd38d7ca2260438398800705232f211d0e63fdc8bdc08c04c442d7ca65e93044d7d19c4c495d96730cd263c82ad5810c49f7217cf707021b04450445fac44d73f5dabfa1936eba5963d32444e41b09591718834ea810d40460161939941782a004df83ab58537b8cc30a5d25263c6dd49288489874c3466bd3a63b3dacd8325a8feaf08380ff5b5fb91fc69d4e34c87b873479c32405c9e5add7384020ee33ca5d214db9d5d316b85f7f0de99d6dd59f16a83045c5d31ad7505fbc15784da7a946ec3203a46a90c214754d9478e70294756eb8be9d7f43aadaa00f494a0b7c09853796fbae6980e9904cc6b371ead79e09d22f54585150e2e4de9966ce0402a01869aae90a54f5409bac36b5f04e6aa8962d5680257883a5c3f2cb79d980c4c9f646a09c05f2df8160b2468e2ea2c7b1891c0fa11d612ec339615ddf5b1b0a5ff27f17c98051ee75ab19b5210d1deb02db70573f9c4fb21be813767e1538e22288e21dbe5355b92144b0669c260fca5e867ff31d14aaa2f15d9478068cba8a1fb934e82a0f0392ba702a0494977c681ffe0070ae317f9132f5a4d66818d9a60bbed3209fca10a882dc54a6c623c75e33bb7d2f5994a38e782f612c17482dd669c26cd2f3503a94095407e020e771e125796ec07be4c66927f1d4863d542cc9d7cff5f10c3b0e4e20144611a87e15bcaff67fac69ff6d173bf5a7e3da7fee73a0acc87d90927b61a5066f362ae1bc6f4b8ed1fd56111480d5dbb00a89b57edd6f0bf1f82e7996fa4d037e64494d9a170716fa199110050115d8b8ba4002680f6989aadef9c8e4b908b81f4b8f8d27a4647c208119e42873928e75e0828ef878a63accf42b966871281a4c2eacb01567aa8ba2b39e3130a2925514ee40a6dcf659b4e7dea79d4b3f1c73a3830e690424fcc2cbd1274262b569502a8f1db501361a959b8f687cd2587a3f79c072b7af7d70ff8a33e432143cb48e8b4c8cc4564c1822a4f77750f2cdacb0e16d6e32e4370b1a1638575373db44a98670a885cb9fc2279e40a86d89e505036bc950c8577f26bf831eb0854fab988de76d44c221d49101ed946e412a1ebbb166c0a02288bb9e8233d0b232acbfc3253198ee0a9096c4ddb8ec5217b060c7e4b559762815d4222c435e25e4e0d126080593af1229e3493db5112fb44d0352c4869c2524bfe5d2bb77d82b8c3a31e107027870f428c5ad09f88da16baaa6a46837a80313f9fd334d291710a30f5398340db6cf71b949400089b90ad892fa05dd601e6b6901553d341f37c8232982d3c5f1b0727e8c4a72a6d3b5960bc2e35a7c5576e05eae19345a68df29dcafe0747f36e4d6e7fc7ee73043df21da6bacf908fe72681f86e81b9a0bc7878bfcf3de804aac6b5e8959c87f327a46b513ef633d4a5070ca221151ef118019ce03e10767ee2fc385e75a830153adc0b29f685da8688b5244fd09ed6994ddc64be7cf9b9867b0aaa88b88797b2f064a510fb63e983008ff3913636fdeda18adf9be0c8aeb7182cb749b0ed59ae4bac29779f4350fa7c6065ce35fb950afdf334584c1c409bb8abd708f0ab2ee65e6792f182c43cf22fb0044cbe86dece4cc28348bda35cb96098cd135a9217772c11e04f538fffb253f77520d812e753b4d862f2001679e9bac034215dad532be0dab578ae1c29369fb246705b2765133f7d14d9ae82f5e62e45cbacacc22c00447f98b81a73e0802efb96ec31c10d988290a7651c7a912aaa4464ddf75c7e149622e2f61e11b216ffaeb2534ab674f9685880ea3f0b30acb420f31c9378302fc6e13b0912b5d92d6e1a5d46bf7eba01661c3406ff4fa9d631e73df184453c60a5f5d3f42e7b7bbf05ebdf84bf3fb9bba87d2eca34b0a8ed91524c9a44a7a59fd3da59529c23b405bb6bb91c41354740203c3ae0fbb7091090e913686ecb3e12214d9eaaac0a2e2e2a692dd8d1e9a2890d26534f5bfe4ab190c6a818bd7a514323249657b4a5f675c4bbf29cb437c1f34a4d4d008684bbb9f45830305362d05ecb2b3fa56a6b61a8649ae7df05ffab0ef9908cd53d54f33f8ef141880751af10888bb782550e162f9c892c7826b1709b5c8f82b59cddc6a0df89346345aadba4ebf291f61e20a62d326ff22f76de17b08f3a20c9cbe38f7d0d080efee4fc05074601e278db09c3a42273e44e6c458519f386fca2e24279823a40a183ffc12ab61cc91259f5bd7d9111e69d77282b0293e1aedca9e24f2a9dac227e52c49823f2a6874164ab489ef24b3a762e88f9ccf47a59b09737b71e4031092634b2a083f49feeb85d73f9251b6293988a12bec48cc7b912472f9b00628fd40b2f4e2a35ba4406e3958ec6999dbad17740aa918f03ffc922e2d780e4e22631e656672d8008d0d34d14ab5a7db2ca367844c8035f2b856a07e0ffd67ac0ca32e10afe74c6ee1903f511a581f0f9f94f13eb0a9b778ed47ab97362180bcbdcd882a87d30e164308cae82fcfb953e73e3748d9d4622a229e5d8f627790e021cd9d413760a77bf9372a5190410bfe7aebcf43f2c0aa1583359222e8d470e784290e25b75268deb5ceac9d098d46b399f5cfb1c0fdb421bac2d121ddea38a7988500d3dbdbec6f0805ac85b429f51125664d4333ae1f252cae9164438231016e6128e20beaee1e0b780819da8a410ee456526aa3422a3d8ec3c318adaad50882951ea48c5c9afced15a99a50024b8939a34cbe09a674a159dcc3f00157033e09a0a15f786a32fc63a0d3aed53677c2ed2532251a1778df5717a4b2a4a93e74c27379c798fec7d96e3a0194686def323dcdb695199af71bc8d26dfa00d8e16fd6e35d00fc4dde4f255a09a6f6eebd781756b34982d7a2454b1a81972550ab67a89fb7ba804540da22180ef4c13aa650ddea1ccf979df9277aadbbe8903840401e1bb86815a54837888bb847853450d80efa68373e2eaaccbd206c3c83d18c8489ae0748aa406671f4c8633670cf837332fa0fc7b1cb32bfa0298f2472708c2b1da1c83e419042c694e388435a5b6b4719c38da1d084fb2cf66198668fd28ded77b9162c6cef92788ad13f6e7233ca75b0b4ba41fe32750f7f05cd282b8e65cbbc51d5f196cb98cbe88db2ce75c11fe677e198f2132339ab844d1170634bb8fccc4e832c40e36804a78c4ac58cf05e5fd8fa14c85472e744bdfc6529a6c4c495c1e4762b06e72404ff38d0b960e6e1e211febf24994fca75fd5bd448d6a33fa318f1855345eb90f27f3e605ab166d7befbc63e6ceea157ae2e70afd078b5e903e7dcfb52182631d1b069ea255c8403b05f6ebfc0bd2315b5e2551fcab687e8c2c093214f12ee71e7c21ca040445b5e8e3e9556ba1b5ed5d49fff41aa844ce782cfe3ded80bae4abfc70cf2dcf012e9281d785d81802b7f7ce8a1f4f84e866839e96a1b002384c888029fb79fe463d1a4b3bf414b09f76f3fb4c573cf6d7e97d881bd40d791ce3b653ea807da0cae78947e854b2292db984c42bbd00216ce2270a935a6be8bd63d377e71e3c6eb1bd90f996108606c1bf8e07b5d051e0aecddbcfd2c419a5e6e06c2e8aff994aa8cf35d38f28d309c8ff59c2a375ef43570d10c899024ef55c0094bc4e0e7ecaef2b1f8ddb1d256b59806716ec66e95a5c45e3285a25536a0401f159337e12c75e7e542c90e08f6352b53564537ce80139d8f975dcdb3557acf60304e0978b1c49f61596b23f30609dbafe764928559cf914fe1df68bb1e27789bcbca64f2c19128f0897764929e1824aa5ec1dcd6baaab500f3e61bcc723a20f47b53990e9de7dda2d32654fa10cdee710cfcddb96df08e826cebb4f1b6d210ec05089dbcc033579b819b90e777d6efd57d7789860c459b5a95e7971815852fba5222b19c4dbdb326f17023d076c212b2285b0f6889534776c0c9b22bb01370d9378321c08ac082219b7258b3b59a907bce81d54d8c56c6cf67aa32142a3853ca51f4fb95de59031c5db7998e06e68f4bb08d4603009fa3f67209a80cb8ff17a9109fd1bb3cac7f8a10f5506332af402ccab34deda91d773e8a7c1bc0815eb25ce3a786b611787db51829b5eb8b243b037660cb6267fa72a7e0e2cffcb1ed61e4f37ee3129546651f0da97018322b694ccc7f3c48caac14d608badc58bcd5d50e30537c798d864411c69945770d4ca623a403fc455342ea2fd7913b406ce6151572a442dea91505917b6d8aa1477139ba26836876c189f30e7f7a8542e95f9692b723c8c5008f82fb672840cf6f15660d5eac6b652d511b988b75d22bc072c6b662e4e8def5059241d54f90ef114f63c28a4c34620fe1205ea90aff98921899aba0cfc397aa8ab59903720f33f903082cfde8529d5152428f7b0d158ecb5a88a14fb0f9348dc08fb3d5fb8cb68e77906828f59c114c35f32ea132af602f59b807a98a569b4489648ad9ab8d39432ed2c8dd23d179ed18a4ccd7606dfc49b66815bbb44d004cbb108083e9bfc257fa614b4b9bf174b0d66719e466d7db1fcd518ed24a07817175da13b95d61dba7bfe2ae8bc7eb9c676be04cc4323ee582fbaf959b2d3976d33321a8a0de119942c23f5ca882136564a12004596a453af46ff8db315e10d0c0d31f3c438cd61e792287f9a5d872b8d42c81a74c32512f21458bfb2fcc6431e0ab29ce6b96c8dd03d7a767c70484e063744231642803d0479adccc6cb1a8d247d338db605128a9650c0354f6dbe4294c08d61867d6f6d541b5e93e5cf3440df4232d434c94dfc4924dd05b013b06e932a0a5738e3c81c31835b3c7cefc84574efd7f44ccebbef905e946e69d02319b91f912fada3f46df24cce9eb63bda1761fb2ede049731c0f26f256929e9193dc82f3c409c544c5015374193af523694336c1952383d91416579e143786469aaccd060e0390130f9416d5d5e9fefcf35196936d28f82f189e347de54b596ab05e112000c85c4b28a1f005be0ca21a0fff7fcdb00a5aebf7af9d17fdae0d87dda8fbad2092da619a9fc4c1c13c9d5172e82b86608f8e8c8a0c264bc5b6ebac7372cb2082f7bea2c2d9f577bf96978997c25669ba84e578696c93e2e08ed62d3b14883f4e77dca15680dfa5447577a0aae987e5d95334c37fc432a1c196e0cd3e2ca135966c6cd150e2cbf014f6d5980a36a0163e0dd3d8157b155a5722e61066f211eb66d2b6d8ea3fb82c64f0e164c42ec40d945f517a114a8d8acc75d909154aca6b797ec1f7f9c7e8264a0f2cb194fdad5a1fd84a5bf7901a20b656337899af402d33978706593e09832c987892e09472138d46853c910a4e69f08bf0e11fd81c5a3c3271b099c85160168736e27c2612adaa368f8aff23c4487aa65627733042a7fd1c89afd2fb4967618908d7b3e07419ccacaae1765894917a59830a8b6c21a1a7551e0f2b5e29c0d2698ec3aaf3ceabd069573330e7e35d9992ec5578b2d8d0d7430f88dc25923fb0e4b20dbd0adfac0deb62305850fc32b991d107c4cd132c75459798e7803e0231b35193d3b9435b4307025b800b153473c09ba706b9dbc660f1abc42227b24374cd8ee497bb3cb667e68a35e1e130e636a8bd04f74ffc4899c4019af8738681269a4ef7e70f26b7e6c1c0d1b4a92c5b326575bc30bff580943c5ed8a9b249336344a6075995f8584da2a5e0056110ffa596bf1d48431b510160eef825eece201875b9b3e4bcd0fbd3faeda7fbb19dd06293bc8ead05d432c25a8bc1644beb7e8c1fa185f07f8f172b642bc7f3b35773c6422bc721c406d8aebb30b6cdab86f3fe46994b5b258c09eb2d6f441ad7946ee2fa43b20adce6b807031a97941b1f1b76977ea748dbbc0a6cfca7b3c2cd57a29ee8137a0f797120906d68af395b7dd4df0d6d4689f66ae9296b966d9ea1cee4d62227e600bc73629811619889367da81dddd2118effa81b2061a57b8f1539f3fa5134f9ecaf1653444c67200c332f64a124baa85727094de60831289783d998cb60d8aeeea253d705d1ff7cd7bf9f3d9b37db35887359e4079523eef70ad618220b1fb2be97002600d19a899b5921b488d1720717d9a4c2f1ff5b982296a6bff9cfb1248b846e5a38741afea0d9a1334b94c270b1265e8b3392a7c5cf5387014eb3d9a9439ef818180d3cb5cfa32a063851222879b54dad096144d10976f8f53749704f8fc615ad952049b950be11f06466217a2f3035e612dc4fd0333300bee1db01b2bbfb7fb08de55cc37a3c067413264ed61997784ac3844d67c5daec6d8ccbd98c62e5b29164e4ba751c02d62d2ee2b89095d73293e8843d58d2ff6423c909a00a56b9306ac6c58f5226c0607ecca7e736058f4800fa8fb1bcc58661867ca1ff5d897ff00239525eae547704520f0c112fc1c90deca5fd070d74ec22d6c5ef859082f82581a303cea8d3694486d8322193c3921ec4a57d601f260267fb9067e557adbc77526f4202dc5c2e2aad0f0926ecf7ca47ad36122a3713b3e0cb418a8d7f5c57cd62dc9463537ebf32bf9fb4377078a2c7e9b54f4000f42b67ecabcda6ba1b66579126a8e2387ca3878840edd0260363931ce5bcf63a105e4e7ca98969f4672a76a1cc9325c090142b429f8e9b170a1cf0ac1450c99551ed63b29a48953905a9ded680f8c6265c6034de7049bbdffd26137a50eb4e85fc16c5d1e6e07c0f97be7da6e18d2a6ff5475e66feb53e74dcea1fc575ddb8e49f614212ba425fd73a734fc36a669aa1fad223052f232a9f16e81aeb1d4753b658cd85e2e93cd008870cdee912cab174844a44ab98a9321e767b844ca20a2cfac6662660e267e4b1088262bacce3b37db66aaf7f94a0e12971d8eb3635b9f3c03a89a64ce49c903a03c3a1567dd71cb6be4c9b41c11fd9db93e422e303592027f56f6b2e86cb5b7fdd01d3b33cd36c3fccfc79fce947fb05afd25f867c367a04222b7f708023fcdfa6f01cc9a86c0f04e57ce4e23a7821589ba0fbf9f97ec2384a9e4f7f87a454459d4ad1b29dacff28fd7d29c3ed202fbc6799fb99077943220fee02f65f4ea62fc5612fdf51ffd0af367d6a881b14249f8c52df3a343383ffe74d885a6184e1e9f4d772b53a31d884c7d0e9df2f179ad28f5e766b1f010b201dad16399849db7ee080085a492691f8b34fc314a77aa394046f62aabb26e0dbb1147c641b7ff38f0bff47c47ac5ef2847b314ea1cd28107ab046c14a6a6f8172e1ddd3e4e30dd30506d52a4af0a1cf059eab9606739a17794975a3c97d83cdd77508693c485adb8aef239c1a56b26cb6db8caac6f7f37b2d2e3388c8651f6c6c73e8feb1963ec5f116752c90590276c1d0d4479524075796900fa176a633a2b8dbefa1ce2ddd72f6e78b0183fa0832ef631f48e8b8f5e435900fb7fb8f514739998006429df444ed609c2efc576770217be0c3ee1d5a4ef5fa9260f18b5437a58d772fc1f0e673cc5441c4289f26bd4debee1147b4901946bc9e8717e62f2b2333b3c2a5a7270c3688994ec09579a7013b8b1804a442e9ae7b0ed45516fadee5187f8da19636ea731f9c7478b640df28e5b70ffe1aba3d9da4496671c9a3725a5e4c05cb65f36e0869dcf54186555517ed0b8114d8e7c07d092d0038b0af3a3934b5038a685fb05510402939e955bd76b5ae70b2b3f509f747989f603fd14e0e67174a7eba8f6e36bac9e866e3bff7c7eaa71cad5b061e728b14dbdbfd44e2f60e2e318ae082ce19ba73023d72aa73044432a4d608516b8410b2f79632e20ae30a9a0a4b62a408d1209d628ea385e5532c38c6aa4d272ba6e5b36a33c64242424242eac64ba19026174996a5c45a624d41e3d032281d49d3f0bc7ed7631269a5abfbad989a9309ead8f9ee1f072e0162554af2d5c900c936aa947ac28857a5e45229d12b6420aaeea6c4cc502c9fe2e158187587d7b85c2e97cb1546cd18abc6aa856114ab1646cdd0037b59350f2c85fae118cbe34004c135e425b0aca8cdd80e0e92af4e414f224091105563815195dc76a23752f1c776631229ad4a898564e5bd6621495816263ad3c3245e9717d765b9d14e31c4ab5232e286cd1526b8a28857eca61079091d88cb8788c37268198a5bc0319552d4a15c4cb4fdf51ab866208aa1f4022bed8e6df4a94a6e65ccfb35a18e57f188ed237eb76d18e2cf136abb3b69d94ea5f4c27c373e69bbfdc8e49a6c53a52461ec8589d84818334f3ae5326353b22c266aaa64b7589ab5d21d5139d6d138484e1a22e9aa708cbbec8ab0f2dcc832a8479fda59912f493b122fc8443b4304996e4b31c9e93420ce71c78cf2fc05b23ce7afcfed2c73d0e4d7dcb8046621f37c4ac476d844ecfc5421c92d6d24c98df91888137d2ce57f2d276de176851e5be772bd24d327392e8defab55e8aad93b64a7685bfe7b49185572db1d6cd9fe66c1cb7a87ec1c3241851868c0e18723a42d4b636a6ca0da0b0963d523319fecba05baf25a00922f9f3104b310efbbefa084ad93b98691ddaea42d272db8ea279ebecb70850cd8d55f12f6ad40ff8d57da151d81ee93279888df9e93f6c6d972cad91b8b7b576f06c62122f235c442f379c4fb03bd7a4af506a859d4052d67d42b2412c4de97fd40f07bbd8686ac386652f0892e4137369f9393f7c536d442547538d5ec4f1f6c7bb4f57abd5e9ee50701b2f7653dd0e5fab7253c5537cdb4b8a9574fadb2c820f9ea46026af3e29747bb7fb23deb75e3eadbb8117c200df2aa22f690af97cb054ecb483c58c87b136e74b25a200b3dd55e2f19241f44c67a0a7c35524fc9d718622b6481df8aa562791d8bdb286bb264339116d5b1e6db802886f0b10d35444e63e6c8ceefa04a6e79e011e7132b5881135e8fbec2cb3195c646bbb1097df7cd8dc8d6b39b9b1e29c41e5cd7b5ed7aec9eb088b7a5d43d754f4a3d2cb310bd5777687bbba71c33ca773f2bcfb4c8f69824e908d955911f6f4996cf762c9fbaa14f948986b14293f2e28a9ad29634ee40b919c38424add49172bac28b521b0121470623449ad22b2cdf8b12354a430e54d3982c485375d8382d793992465172ce342565b1a3c3130b415ede642866a16f09104bfb345432026d1bab078b8fa912dd92c61d2837639826d2b45247cae90a2f52491aa52107aa694c6769a4291c988d0a2fa0af9b016de6eeee89ee1d944cab6465657799efff580e5fd86c8f4eda3e71c25cd80e5fe86c8f1703962a99a11295a51b774fd67d62e9e994dc746339e9ac0c39b043245d88a49b33f442256d6792ed4e3acf74d279e61684fd49025a7ab6520948596846b5659a659ee3b61791648303529452ba75146906c53aafa3b419c49d688326c2e14497dce8a494524a299d1c06a43a29fe4629a594cadba07d9f9b9e944e96309e21199339ae0383638eb38145ea9bb3674a0a725ba7f2561fc802bf70ced90a9170a72c0639ee36a8702a109be3388ee34419ce194302ee39e59c66a6f783679fe61cc19427231f28f66c44868642568f0d2ace4967d786cea62914a90deda6ef39e99ce2d1846843e57c5f8b0b830b83bb25ed5e205eea799e07522446810a01e84ec11db1cc6a2527a51ca4839dbdd18dc324a0f5c41450a419e3b25061058e81463348b20a40a319f368a09195520a1854b3f08b11231f28f66c44868642568f0d1ae4f512c549f37a74402810412e0cf1321b76b2d7a3b990a8a048ec44916816a6483ea1682344b2dd0041271b5244cfa3ed20821e920d293e06ba4356b2ddcee38f4ee95009e8b6512a670f94522244ba31d19f7d296976ea36594e96f3b652b5ad040307cdc731e2c2cecf3b4c5888caa53c579046761b9b1027978438df89409cb349bb37b1189f8b2cad346f46cfd51864bd41d8fb845aee3f4b5ac972db1c6f107672dce8a465b7f10b65a336b23368caf9ac197376677d721ba536fc206134090b4fbf5556c541c2b6d3d148d8894345b36d8e3f3078978fc1bb1c8110330f84bc378a9e4a9c45b3f631225f2b900ec91711f9a2f7b18578598a9f6c90b01aa5f44ca89c544e7aafcaaa3242bc2c65c38cc9d31944dffd749d0d3824b51719ab4c3d3c597ac45354d2cd035aec35c152914ecd223a3b321c17664e4eb59281bfd38d0de5efbc422a895e920784ea57e438aee366084315dfc671dc6ac5711c37aec083231020f85300f0e143f04c7fdcaf0996db42249c52c771dd83a636679d773a998684cd918e912f7a0547572042414141c917126592b3e6846a63da98a2ea6c671aaabdb0dd92a93b69c628a5928985da1bc522448f858678555bc648d8a552504cb4bd3df178545b24ecdb104554b942bd402229a97b4a26262ad5df682cd467da681c120b3979e1c5c6b43149a5cf0c2a61f75be228c76daf292b4869be6449f3254b4dc304176ea31e1addb2e91a2bbb9b6a6b3abc22de2d694b9a4a9a76e0b0a2baa56e09ca8b6e4c988ea973eae4744ddd155050505050505050524343af175454b7c4715242cd98e789a2cbf5bfeed09c126ac6c44bcf0c134a332082e83c2e609a89b92d45b0b2f51b64e5d82d55db49a8b9a4c35ed9dd755d87c484b41476d8db4169c6136f3fe630f45ef65d3f56189ef52482dd12cfa452ab5bfa74e8584262eaa492845ae26a12d6b158acb358ac8ef52e44d2b1584bbab3ce12c61ab926f992507cc55218daaf5e1922e9e6b0eb464e42754b50dd52b7c48af2f98007ac2c1dd194c6206de13632eae6c237e2a546974d29fbd4a88d8c7afb82529ae4c54e9ddeb2499692627672720ad3484e9fa474a8945419dc78585cc2a9a5ec846218cf7e1cc731333377283e215eeab4596a027a02ce82a90a9892a12dd8b68d632929f9797143c9ca56cbffb45a524a59474a29e55bdcdd341a8d46a379b4a1a1d70b4a8ed18c716ba446f4b3237e69d068348fe6d13c1a929ef116d91e513c73ebd765c5f1f6b7b35aa7ad564f55bd916cf583922fa94475956afca2e40b8a3869494a9f54eb4cad35d2a68fc6443d975e78e618ebe0f7d50fdb57bda78a9559486b4758c17a45578fbb019484c991b1233193a325cd70db26474754d1260f86d58c1b3d9a944793776e28752d3c524a29b9ddcca98bb4eab01f07c54c12f6b364066d1165e7f8338b2c947c45214d0a45c7801e85a24c509e274e28cab4854aa06e06ac93cef6d8b2c11a3383dddd7d069190be304b1b1586d15a5bc1afbe4a9c502faed3102f558d630b6cff02591006ba2cf8ca300ac5af3e08de9bb179f067a2efe0489daa9c2386bfd4692e8961124a5577907c4520b881971594524af02a9554813f22655589508838e83f0f54854ac2835f5531f25f58291b70a44f3ed050bd0b91a8a47ca24e33e6cd566087f25fa77a6c35d22c14e9055050534af6b7a65634f3ab5b22752c2c0c3e6ddbb66ddbb66ddbc6b227c8ec46aeba70cc3b3fdd8d690363e5bb53a619f3c62da91b936c4db254cbd2972ed4686539645285c8e4711cc771dbb6c99944b7cd7b5a196ddbb6b1e8862ed196684b51d3139758e8486d426d524b53cda98dc8d5bed1f56d6c5de9a634fa3344a4eeb03d6cac6c266c481b4dbe64eb48a45c70903c1d2b6b2e3b431a45ab7d627c5f57258c303a36619ca0abd28adaa4b68ded3458e79b0269e096ef0e7824b963b3b111af2737e68db7d619dbad26f9ea4f6ab69a66ec739235db9fd30c97b968522fd3b9f5721937d4cb786ca8b7a148a0dea612817a1b0b04ea6d2d0fa8b7bb38a0de06d3807a3b8a1aea6d3334d4db6918506f63b1807a5b0b05d4db7112506f7381807a9bce01eaed3266a8b7f1c850af8462807a259502d42bb110a05ea925867a659701d42bc108a05e19050cf54a334cea95695ea85762e142bd528b16ea957158a85772b142bd924e00ea95652ca957e251a1de094549bd934a927a271624f54e2d29d43bbba050ef0433ab774661eb9d668ed43bd3847c02edad1364275cde63a21f2e2f32910f26fc8626fcb67a58664209bf384af8d5b183652510fdfa20fafd51594644c22f10127e3d08621909467e858cfc0a1181654662bf4562bf3112581683fd9e00fb058065194c4d915f5eb3846545da10f9e52c6060199137437e19ce0c2c1b3267845fdea206968df08508bf0cc60d2c13618ca15f26c309cb86cc10f2cb6858806542d408e197f34061590852847e7b0a1596091111e4b7af606159102340f8ed23b4b00c84243ef86d2e5d58f6c11241bffd050ccb82c4bc7e1b8a2858f622e3c16f4f6186651e50d1c16fa349c3b20ed400f9ed3558b00c481ba0dfce420b9601bde1e0b7e1c461190773c6dfde820b968d5fd4df06830ecbea18ff6d32ba0c96dd8c1fbf8d46e361d90f3536f8ed3c5058b681141fbf720a1596f920a2c7afbc8285653d8cf8f995476861d94f123c7e25972e2ce3b1c48e5ff9050ccb768871fd4a28a260998b8c8e5f39851996e9a022c7af4493866539d4e0f8956bb060198e363ebf320b2d58e6f3e6c6af8413876537e6d8f8955b70c1321b5ff4fc4a30e8b0ac670cf1579221cb60996846eb57a221f1b0aca506eb57e681c2329694f0774ea1c2b29008f0775ec1c232d088ef771ea185655f12abdfc9a50bcb564ba87ee717302c5389f17e271451b0cc23d3fdce29ccb0aca382fb9d68d2b08cbb9c6ae61a2c58b6b5a1bf330b2d58462fdfccdf09c7ce382c9b7ff29662bc6205de518cd7d5c39b69bce7e10dc5785f3bbc9f18ef9093b798f11ad1e11d66bc5ca3c0db89f1b2530eef26c6cb4f137883192f43e1f05e1a2f4735797f192f4bdd3713e3e5a91bde4b8c97efd8f0f632de3692c05b89f1362d026f108cb79120f0ee32de4e7ac05b69bcade4803797f1f65203de1f186f33d5f04e62bcdd44c37bcb78bbc6803712e36da705bc3d30de7e52c05bcb781b2a01efa4f1761402de478cb7a50ef0eec0787b6a86b711e3ed3b32bcb38c571a19e05dc47825ad006f0e8c572211e08d65bc32298637d278a5d200de57c62b9704f0dec07825130c6f22c62b9b98bcad8c57d65e785719af7472e13dc478e5530b6f2ae395502cbc69e395512bbca78c574a05e02dc478e5d492b794f1ca3b2abc8fc63b8d94bca38c77d292bc3530de8984e40d65bc332985b7d178a7120a2f1aef5c9a3d88f14e26fb0c8c77361d3910e39d35001c03b25fc00223b3d00f9559c887ca2cf4a4029559a8071e2ab3d00e9559c8890e14c801caf6278043931b6c900092ed4720c9f621f08025db7740039a6cbf869aedd3e064fb0c580094ed2b200152b68f8003f41ddb9fc1c8f665a0d9be01906cbf00048861c9f607208026db87a166fb4c9c6cff05175a88b27d165698b2fd00c83bb6bfc4c8f655a0d9be1224db4f9264fb485258b27d14986c7fd664fbb666fb472ab3100064f5845668820e1c25fcf041e401101284081989158901e004126c1fb6464d1adb2f92451b2c6c9f089c375ad8fe902de6c4b1fd11c0f8820bdb17818c31e8d8fe101a669461fb42380fabc1786c3f84295284ae1041c5f6831c610416db07814b125a6cff832f4b74b1fd2028c480b1fdd71464a2b07d0fd05061c6f63b58a3268ded03c9a20d16b60f04e78d16b6cfc11673e2d8fe08c6175cd87e25630c3ab67f34cc28c3f67f749e56a3f1d8fe0653a440b17d1f5788a062fb3d8e30028bedff7049428bedf3f8b24417dbdf01851830b6ef9a824c14b6af030d15666c3fc71a35696c1f47166db0b07d1f386fb4b0fd1b5bcc8963fb36c0f8820bdbef21630c3ab62fa2614619b6df9279a41a128fedb3a6488162fbe11522a8d83e788411586cffe3928416db5f7d59a28bedaba01003c6f6bd29c84461fb1d1a2accd83eb7464d1adbdfb26843e1bcd1c2f6e71643ee9c53e4ce38b6e70a453f04514251532098f8e43ff964bea5644ec96f4b43be0c956c2d93f0e9c842f2df94538e3f49ec9cb365994f12f13c4b29a594a2b764e72513f529a54be6ec46e32c8a3eae1e5ee7796bd0e819b42986145ddc455589d199d7d6f33cef2d7aa3e779694230c77a9ef5c68b03901802371df86eb035817845d1c7d5c3f3bc8e7a51789e774fc23cb0de453cd653c37ae3edb88dba449f28bcb0577c156e2ca709e36483584e13c592f5e6276b4905b641248cbb096017b1df4306cd4fcfe50346bc2f3b5f4333c6cd6614494c4af615c444f2b6ad0c0fd0464646461b730c9f04a51c83bce46bfe96d75ce9396b92098f773c3a1e1d8f8ec7ef6dc7e3f76599d8afca21fef9f17eea156d6bbc380c0d316939f4ca7129608e712864c21b3787a807ba7a6c36bcf8b61f8c8c8ca058fa02e288f3a0d9820c346aa0c61a7966e0a3f44c4ad18cd6cdc0b1fb28e8495813eeabb7eb2c964bbae48e7f0df278e7ca6377fc538d975ad5b472da4eda4e86a763375e15ab88c97e5d1e1b52f14e3c3a3ed911566621d578e5c5775574e29d8726aabbde4475297aa2f7eea2eaaa8baad109f5fed363031fbfe1a3d5dac047ed512fb3b1adffd4cb6d6ccb75b63acea3ba2e9e43256d649985768cd735ca8b52bc0eb1e88ea8ba28feaa2e5e152e5175e7704967a5ca765edffb38442293f05064e5e99d84bf3f3cd96159bf1cb250244727e16f77f09449f8ee54beb3e0188539e876a313d6f8850a7829cff1f03407b30897db5879107c0e6f066d3d4343dcfeedde8ce500738c545c3329360e8e54bc99141c97227290fc8d4bf1b9949e4b192f0efc64c5fbdce73ddfce1ce4ce7f3f2271f854d70c9abf51a5d818815871e942468b11684ea0340b82a196d490e2c68b376b8899f58ce20c2a62b2df98a4c87a6fd526dcc35b64bfd3ea230d91f5ce636ff8ee1dc33ccf76d849b9b1c670fc02826310fc3413f3d59f25945a5a6fdb2712b8453687cef630ad5422efa4f3e459e25939feacd05dbe1b5b78d27635fee0d0d927d34a2624bb411146dc5ee0b8f1963928f282e0bacda7ced79f35cafc36cf560251748b2afd9c639479ae54ca299b76179e846ddb397ca1c9f67dbd711dd771455bb7755c6d22e5462de5b84dde2ba594f45bf76d3bb735d7719be43aaee36a130ee4ba8d485aca711b156aac3ebdfee657dff7afbdd70e5e0f6dfb9fbc6ab552ad56aa2d88e51e843b1dbdc93acff03c41d5bb1d53a5ea542a4ea51a2fbd5e585df65f7fb55a558e7b87dd65a55bb7f23eeffb5ab6c7a9549e4ae5755e5579aa95ca6ba2eaba52ad54aaafeed5262a956ac5712a95d78ddcd86408091aa45183ee3d65fb2b288cec376e755ed2efc6eefaf5b70377fa597be88fd6798f7aa7d41b0a5fa856fec89c54b65a72bc9e77f63e9b27cbc9b4de832499d61b3d16daeed540ecdef60e71ed7ab689ba6f4f8189e437eff78755a9542ad58724acc7c6b71b91b0ed5f4f05e52bbc8d2aca576863a4f215b2eed5db95ed138f93728a95db61b3ad7a55361cc16fa4f2f5bd3b8847c242ee9dfc42ec73f317e26ad5b28f30d1b42da1705d552c54e45527add0f63b597f56904dbccbb3fd3e0a72d88d5dbb55747a57bdab4d3c097a3d4622dbed294858f7cd93e3a5f649db6efc5932f3e4c93325154529a594524ae9134a2fd7eb89243b1fc4c844c2ce3462d2b0735e9f5a10013448c11370ce30c1a6ccacb758f921cecad339a21802519442bc9b9148b98897be40bc34e96e462d2868189b977e42819da71b6dbb9802bbdd47c26ed86dfb6bbb6b4b43c6d207769ef3de344143249b0d28e29d51e29c42ec5943bc52caf6c52b629845e49a702889961ee8256343f4ae1ef47cc50e49a20a1292a8819df791302076ba2c336c8211b99ac8a1113d15885e0ac4cd880323decd88ce8c66cc0bc188e1921866215e0e43644919d923725b7507715ad0c1a11b08c974a19ab27c7a837aad061faad1f8da32edba9847e3c20be1cdbcdfd606ddaf2a94758f79a685c8ef7d1d4c04da78ebaa1b513acfacbbd7a24d353c240d1791b751e71b1e22dfaa5f8d8582cef43c636537f976601987ed2e90d5c1b1d6f93f9888757e084c049e2f844bf8ceeff9e497f05ffdd27a4f9d7038485eac738d370b3f6bb3ab346fd66a1d45e93c33ef42783315eb127c09dfe5aabb3cb7ea64d5095567ad4ea73ab16021f25d3d12e233e621ab515569e2ac3b871dcd9b75236fb5b96603dbd701a77b166d9c87f431d0ccdb6c77b643db6d429bd02574094dd4444d4293d046da48c73ad6b08675912ed2449a480fe9213d428fd022b4083dd4432da48574081d420bb55007e9200d4283d01ff4071dd441fdea577bd01e7407dd410369200dd440cd4173d0638f5dbbf6fbfda37ff406bd41fb681fdda37bf44fff348fe6d13b7a47bbdad53a5a47e7e81c8da371b44ffbf48dbed136da46f7744f8b2d76ab5bcd6a56871d36d8607ffdf5aa57ad6a557bed75d75d73cdf5d65bd3a63dc7369105dedd77fd7f7de8467ee42a30910e14785f86d3c0441378df86ebf01fde466fda1be99dc4441150622208bc99de4d4cd40026aae1fd767a3fbda1de514ca480f7d4fbcea5d125ed12e932e952e972e992e9b2e9b276e974f9c4442f5c465d4a5d4e5ddef934faa47d227d267d2a7d2e7d3231110aefcf26269abd3f6b4c64df47de00787f423191ecfdeeeeeeee86bd8bbc89bc87bc47788bf01e7a0b7987f0167a077983f0fee01df47ebd3d7877f006f2067a73f01edff5fdf78ff7066f1fef1eef9f378ff78eb7ebade39de38de3edf3bef1b6f1ee798befd69bf50edfe0fb7b77777777997ad4d9de8a58a0b6fde691233f32c32397b0233ff8f0273c3033df4eb2ccccb7a12cdf8eb2ccb7ef5866e62b932c335fc96499af74b2cc574e59bef28e65be9366f94e24cbcc77d62cdfe964f9cea7b0cbfcb64eb83a2cfbb0fcc33210cb1e5816b22cc47211cb31cb27580680e518c798db588671112ec244780bcb43180ccb23f0082c028bc0433cc442580887c021b0100b71100ec2203008fc014361998ce5292c5361f9c56a2c7bc01d70070c848130106f61990306c3f2c82357ae7c3effe01fbc016fc03ed807f7e01efcc33fcc8379f00edec12e76b10ed6c1393807e3601cecc33e7c836fb00db6c13ddcc3228bdce216b398c546580e1964903ffe78c5505856b18a3df6588de58e39cec2f2c69b05ce57b1accb9cdfc3b213cedfc13213ceaf2c2be1fc2096119d2f02cb48389f04961939dfb22c76fe1296c1ce87816545ce9f816544ceaf816543cebf8165239cef8465229c6f01960d9d859c43380b9d839c41387f700e3abfce1e9c3b38bfb560199033d09983f378aee79f7f9c3738fb38f738ff9c799c779c5d671de71c671c679ff38db38d73cf593cb7ceac7378fed4c232f0fc9d5767d5d93b7767eebcbdc77cab479de7d2e85c3d6a35de6bbcab475d83771af7ea51e379d3e0aa7ad468bcef7c558fda8cf719ffea51cfe06de7603dea32de3278588f9a8cf7d459f5a8c778c7e0ad7ad462bceb5cac474de71dc67bea5183f196ba8d7ad45fbc61f01bf5a85ff0f6e23ef5a8b97877711cf5a8b778473d473dea396f175c473dea16bce5dc558f3ace9b05df518f1ace1bea3cea51bf79afe03ff5a855f076f31ef5a8b578a7e03eea5167f17efa06f5a8dbbc51f01ff5a84ff066f3d7a3c6e26d82d77ad46bde4e1feb51ab7997e01cd4a3b6e27dc581ea51a779577120f5a8d1bc6befa01e35156f12dc837ad423789ff9ab1eb599b7081e548f7a8a77d33fa84741ffe020d4230ffe7a907a04e41d5ca81e7170a087508feac70ba9473ffe0fd5231fdfe022d4a39ff7f808f568c7797c483dd271d789d4231ccff122f5e8c67d0eab473db7f1583d6a5dbc917a149e7512ead177f044f548f5d54ba847ddbd9b508f363a6287e01c32f17c20f32752bc0251bc07a6f300c57778e24ec45c8730a78013cfa1894f00cc71587a932fbf4cfc86256e83974b40894700048740973f40e90ee0f2067ce03524711ab69c01487c011eb802b43c014947c0113f40073e83119721cb0d50c40bc0811300cb6340fa00ae5c001b380c449c8995bf50e52e0cf116a89c05da5798f20008f12552aec2d1954479120d1c0994a7d04647a1320b157d56998582c80010974647de798e1c79af61df6a58fb4e63f6aec16cf6a6010a6f3c28a0f0be93c21b8d1452789f81e46d0612246f3b49de334892e42d0325ef329428794fa9f026430515de3158f21e63c992779d00bcc5084000de61acf0a6b3c20a6f2916de60b0c0c21b062dbcbf68a185b7172ebc5fe0820bef2e5e7873f1c20bef2826ef2d983079bb0086f71c186078cb11c0bb050210c09b050378c719c000de5031bce1c410c37b050478bf210001de6e0af05641010af04e8101de5a18c000ef2719de59c820c31b0533bcdbcc30c39bcd01de2738c001de2640c01b0b0420e0ed9480f79a0424e05d0205bcd5284001ef2b16f0b662010b7857c180771a0630e05da3e18d86061ade24a8e14d450d35bccf34e03d820634e02d82ca5cc4016f330e70c0bba9321779c07b8a073ce01f40e0411080c05f11b8071188c03b90c08148400207b2e11cd860c3c71b5e6fb8e1bfff71ef3768721f4d9abc070effc10187f398c0774c600277e5701d39e4f01c14380e0a50e03e3afc860e3adc8693f73871727187b776d8e12c1e1ef2c0c3c11efef5d0c35715b8aa0215b8f7e4dd9327457cf85639eb03b53efc3b52efd4028b2347a1daa7506747525178929ac295542457a126f992aae401a82a7c85bae42cd400bc85bac25da82cfc85dac29954170e437de102a84c3e800ac363a8023801ea005e801ac30d500970196a013e4335c00f50653802ea0ccf40c5c081a8177802ea01ae808a802fa026e00ca80a380d7501afa132e00da834dc01b5863fa036e010a80e7804ea032e810a81db5023f01baa047eab0d6f526f380ef57e02b5c973a8389c027502d7a1e670279502dfa1ea701eaa93f7507778052a0f7f527bb80fb5020fa202f1a29a81b7510de20da516bd3550dbe81da53694f7516d0dbca5d48ef216a2f6d17b4a6d296f5a6d21de546a4f790f519bf6ae529bcadb4aed21de44d4aef2de406d2bef2bb5897823d5dec01b4bed2b6f0ed4467a17511bcb3b4b6d0ebc8da85dc4bb03b5b3bc8fa86dc43ba97607de5a6a1ff1f640eda43712b5b5bcb7d4f6c03b89da48bc3f507bcb9b4bed24de4ab53ff0ee529bcb1b04b595de4ad4eef2f6521b04ef256a2bf166a2b697f797da4bbc976a33f10653fbcbbb89da4b6f276a837987a9ddc45b4c6d27de4fd40ef386a2b6983753ed27de51d486e22d456da63799da51dc02f587da656411f913641132b5437000d429abf384cab31f2a5b0bd4b614ce9b22521691f7a15ed5937a7b7accd87386d82118af672b50ef8e1eeaad3cd41bb443bd22d44b820ef5721a0ad4cb58e4502f6b31817a390e0e35f6baac3ccfcde5cd0ad6ec4c8fcba4948add67cf0629adcd20797a6f498a526eecbaaedb3ee946f976aded1c7b4c5043438ee51a0da6a4b024f0d2d49a07e9b65191167d594009934af2352fbdc8a0297fc0b3fd58ad1f0e48c27eba53db7dd54a3228fc1cc3f1878ed725c508efab6016ab6e0553d048affab089f2468e9141f35c954c634c3aa708613733dc797074a39ee442ec3aa674eb10942b7479f2e459c352d03583e6b72f498996d3cc41b268922ca771419375594e3347c97e1204a9e7f5202db7c922fa4297274f9e3c96ca1afda0f8c033d007d630499cff56bfdef779a01b4b6f240519f3948c8c8ca0cc689a336c2ca54f51f60e6d4a67d498c2c97edceafb2ab310f755bd3f30adbe74e76db50a917ce7daf7de40192ae9efa09c3d19645d0c5866a1ef6c3dafe32af3d336676f7d1922e919aac076ced73cfde5e863b367f33190284a97bc7c31b17cb6419af45ff245b73be1f89ee7799e373ae9ce8d972f0f8b2839a43d6e412e8f4eb8dffec6bdebe5f78f4c9e3d3ae9c62ff3dc38241ab9bfaf8d8920403d7c449708413e4c2ce8646e67ab8a420f44d18c7eab17a04ee6ef6aec84e8d9f78f3e0a1041e499d14b299ad1518af76f54051185f3cc683b66dcbbeae40b3752a1dfe848bfb514ea92b28de20c6ad758d4dddde604f71dac6137dbed8b028294d27b65c4db48361e0b6998e2eaaad65dfdbe6c657d1d38437a1b97adabde23fe6bf560c5eb60c573e802dbd6088415c7218f8c781ac6eba9c62bb6c6ebb2977bb0adb767637ced1945c9c4b6c2b3dd5867d528e081289ab16a94f04014cdc21104c177f5c06d030fd6f9d50ee4c1dc23ca17730f285fed7dd543970c6145c27ebcf73d2e810be4d836f2e89221868858a5d55459b1d1c4e65a0a47e8112dd48ecc22e5919d340d8f899a85e4cc42e575dca6f23a6ee3366e3b521323dea6d59ab24c6d63b630148a9fe8c6adb1fafc3eeb8adbb8cd68dea10121d16a4e43947bba91c6c7407753a9542a9514f1b692912d3a7409d4c87c1a6a0926698b122d4899a6eee9d261aa36caa9c4529930536dd464e7e7b72db2871509e4c566b14d5d421926329a9bd7711bf53a6ea374a31b35236eb449698d7545f471f5a0947a513cd125fa8822162b4e3d96def5571009eb869ef8e26c451350525df27881c414cd82125c7102d55f07fab9296ad4882237e002099e30e3ce9d1a9c2d3a4e098628c36d407f05a9c5b1d495a666a62686bd1fe2c6f8a8881748ca095296454c230f0a51fe05615ed0d4815d3391eadba9f77d2a90c71e32625f4e2421f7237282deb9da6db77faaea4407cb2ce4852dd8102ea1efd1c9e98ced17e86d902fae6377d85600b23dd2d056be4e464937f22563205e3965e5edbeba6cd25d757939c544df89bccb7f5e75d25abdab5f6deb852fa8ee39a971b22acfbbeab6b32429f516f9e2a6dc9ab26e916d24f912af8f9ddceb77b9362903dd81c988462b244e4367caf630f9c7ac4d973883e4dc7aba7355b008830b7b452b3f44640e2da16285e3daca197c0cf435a5cc3368e41f913da5837c4929a59452524a39ca518e8e1b6b4972f5e4eb229501d7adbe6fd5715b70ddeafb561d4746092fc65871d0b67a22b9aee3c0745cc7898053718d245ff20c400175f1cb63bbfa54dca6aa9b9d96ab9283b6772bbb6d392c11adf76f82aa2a2d77014b83c82039be7ab85c736b8134c80da28f1b6f7e612d3aaee3622075a8604804372052a739226b0b9bafcc17a74c1565ca38f1217dab8debbaa61903c7aea90b2ba35a085729bf54973eaaa8de367eb5eafa6069f3aba7b7cd6ef6e7c641754d3368f3d264e55d2b292dedcf8d72e3e6492fea8ba96293c23870ec681dcdc9a339755eb7f16b3b5755b4190b3968bbbcf75d6e38ecf6db217dde8ae3d7eac9fc5a0eb1dcc675ddc6417553e98d1d8d45292bf148b26179ae6833a8a3cd8e36c5710176bee9d82cb4c9e6cae24666a1ed1b1de9ea89a3ab21bed0cc102f065f23e594f21e0bf17f885c9879da59fa985655acd2706006ab27c4d5192b17889f186e4455175f1262f7b45a23f6a079126d287186e821b1720254a24c14b48b2162d308b4cb07542a88aaa65ed44694ead5f916e6c73cb30185d149670e49392a7070557c1ed42a74d32d9618737e5cbe1f57135278d4c86e35db30a8a28509c698f17dc6886d025b3482273450a60a0bd8ac51c1ec6e4a631877a6382171c1040b668d0513519bc3cb3651fdaeceddcfcdab7e64aec66d49be7adc94eae66509f131d967e161d8a665d3c262b1865879169494956729cd580e726a543ad0e58b1d373379d69284b553910792d89440a9060225dacce4596bac3cab36639b07a478c1115348c869c14c9e55022bcf7223612c2bcfd2c2304a87ce162bcf4a62a211ac3ccb8a8c51cacac232b2616dc654f040133058811431599a98c9874e12d66aac7cf8346331bc69c11466d2cc19c365261f4249585f61a54bce0698c2f880185ea898c9875212d65658f9704a3eb42361661846cd983963e5c32626fac0ca8761648cd6c2a419a34a61d48c51248a48a34d1d341c5063260f4a49585761e5c1a9192b12e20e0bbcb0d140131318b334563e349ab1a2326a8e88828402178860aa6b563e44920fb348581c86512c148b1c2b0f423151909507d924b9b1f2600d74b23246c41b33ea8051a74a9e993c4893b04663e541a41913d28239456cd1040dc07862269b04561e549a3186928325cf962a63c01c3193079724aca9601a03365db1f2e0990f0fc3261e3c694cc9987887895e961a7961e53fa5192bb2a2f4654b124bac81e68c99fcb724617d86e7542102323cf0e48406accce4bf2609eb1158f9af3663498cb278c102355858d1c54cfe7392b0168195ff9e68dd4cfed3c2b01927ce16183351b5f2ab3b3336a3a23ea3556dc6363a5b8e58a0e58a193833f9959384b5991288a001ad882eea8400895947cd18c389521bc2898a1564916626bf9292b09ec2caafa6244c7e6547c2cc306ca65985598d593531d1adfc6a8b8c4d2719d42b2f56721a130cd18604429cd1812a3379d51d09eb32567e653463322c45c4b1435303c6163332567e857486955f6591b1d54c5e158761b38b8a8dca8d0a8a897e587955d38ccda525556dc968c6188e16567c61461a12ac19c14cf6182bd988096304493580b26606b30ec18c711d19345144194a6d8cbecc5a0a2baf6212c3c3c3b039a1a451c78e84f11d26dac0ca7b5033366993163583b17559794f69c68a8838e3022b456c91c3549b31cd18d7ba68b3e45403830e9899bcd724615e6dc6f84d15a82ba4aea0428b9599f724619e1b2925e51949d998d7c4443a248ce53b3bf249a963c3b98162a21c569e9392b03b12c648302a9b9ab85a13b7d9b9c34438ac3c673463b6042b1043cd192bc8126626cfd124ac9fb0f21cd28c010983052880228618366c662dc6ca734a3306003370e2905933022a8e66f2dc928475182bcf3149983c3746c2ba19934a4a514565c450a38a295d98a9c11a33d94e5816e30452a4d0b860cc0ba6ccba0913c038538416a53388e862d660acfcf68466d3c230094542f1b19246db8c588d140ea4408a285290e1c44cf69265039441c118a42eb8987367d65fa6c8d891b09595a76618d65ad02626fa6caca1644b29edc8c3654d1934a820a366c6849548f2348b84d98075970935d9c8582f2db9e9a66e9a35f96934634557f07c9962c454139e2a66f2932661bd8495564861c419222883036b2c31939f4912d65eacfc549a3119cd0e9ea9139cc942652695b0f29309092b3fc74818aca934953ad2ce1d269a5636529384b19384f1931ba8103603c7d962e56592b4226334cca07e5416db77fa3012483863e5bb36634fb2e8428d242e508caacc6483004a6a4a4a8791316f26df63ba368fccc03015bffaf2aa3a8b84b5ac7c239dd1c5ca211584200d0aa0349569c14c2a59791d666c88121825bec0019344c54c7261010c2e43c0c00c9d28303329caa82943849167032420a2ca4c7ec0ca1384e00b284d8881a2a993b002089ff0a8a44b17094455889899010100000020000316000028140806c3e170602c8b5451f70114800d888c5e7046170844698cc2300821848801060000004144046068664600361bc90fc54ccc6f73f94ded1658190351bd2d5a70dca9c95f32f0333690455aeb2b00490be5b8980e8da8013d086950b11ec2e471a7f66c39fc3c46dbcca0647e3cbf1b1f34b6f6565bd91b3c7f66ecea2d2c8b2f680b11b2eb4337b4f931e0648a0f49b27d26e41aa33848f698a3cdd8a3f57805d99d11401927edf2c8b1d36e40052338c93c0754aae63196a18730b4acd69f31e8b6c8057186fa41b6fec2bbf854408c3382ac28c0a73a9e806d0093add63d7d4e27b82615c27c5136dbfb6d5d8eb74d21b4ecf7fd2a97c95c6258c528f6981c36d8e2af66f2d0f3d67c735cbd2d7ac11bdcbe67cf8dd61dcc8de4e4dd8947d0070bca6ad858f2af22194f5da6ea15e323b94e3643fb46e867f7c75084c5c3cca17248a923221892c814bc74cd5c0ecede8ba6be981d9354e56968dc9284c882aa93c0645def86e496cb88a1002301f954b71561f5e18ed002df49e27bf41782400b86940ce60b6e32999a4eca91a938f6c187973c86160f77af973e52ab90b7d2738b73d60996f5d852dfe60ea0116c90ef9dd15c5ed42781836203f821f20bcdfae753dda56904dd721ea8dac9d15d985be90ce8c54a2bacc3784364d4e17c16e8fda9ca534163bd870e8669861d9d99a717fa022000d57b4258df0ccd5451977943ca696b19d51fe5653a8fc6be837b0cd09cebd543eafdd1f3e3d6aa18359cc4c5967443fe1913aec4b28b6b81ab6cabdf6e6d36f24b563717ac0647b3f01f3dd7f5080318043f990c643a2ddd4df258ee283ebe378581455e0366b100dfbc05e895ed2cb1212996544e900463e0541281b3d781380a000414267fb388ab5aa9201a6aaddc73e8728ca33ff365f57edbd8e71eaccdd72a26848de3cd0e0591240510088006b37ffb5531119dd15bb68e7b760efb5921a6e8e2b4e78e911c1971136015a13be2e380a4e598ba6f0b49278bb89008ca85b9249e54ea3b568a1ea1023b632a6203b040a94d8216f4339f7664b41ae2587f49b0a0f6b5ab942094a1ec49e05260a56103f474b20323f417ddac61582ee55c5d42df8b373afa591a104ed3730a7d5cb4e6fcf8143f7f5e199755b2c3a3dbf4c60eab2017713416033e3e9fe7eac72edfb6f80182c83b089a261ac3b04cb05d602a29b5cd68997a6ca14afefecefac56b876adb73032f341205eb53f62ccf2ee4d0b411e3df5f31d0d7618ce276b693ba387620992fab45dadf370b9541c642ac6e129c4115b10d40789dc232ef233b732e6b1abea3c8721cd6154fedfd8a04c02388ac3fca5a19e307b70984cf008a9ea221a51bd2d57cf44a8339381dccc1b4c7123a0bdb082497dfd74f75ab1b8ec4005def07ea5caf507c755e35e074c5189c5d1d5db3670be19e3743f2894316cb7acae04c605038f180d11f794f5aa18a27ab8bc3670c9f7b8030340584b952945acc4dd0d01f33b99cdc2a213049a07c5eab21246367b806bff7bc7cd457eef6d3105c148dcbd1252827918d207ec0aff7ec9df93420324cd83fad6c20be12bbf2b01b9bb595788ed6861dcc0c8414f0a4f64c408019cd35009ae0ac913248386603a97e3c570c667e1b347c222be962566d9881fecd576b0006098aad58393a044166e15ce0378712d600ce033228da4ac2661279d67222fa0575d71a247ce21a6361d9a5e3c8f5fefcd332e58aee1571b1a52349d2cd20946bea39ae0ea448aaf6b8a321f60af11e1069dfdd4583a8ca68a9b5f4fb6d3032ddd35b641dc9e3a9a65bc783ee481cc06b030e56cb73c176f0511306e529fed41b913db13e11959f9ba75f54e77a04aec7c63fd91ab67587777d0c6483bdc75dd0fff083bba9f51680dc69c2f87d990f229b62670481558746859b24384a3d9a99d7b7daa59deba0bf6649eb6a8296ce95bfec8d539d3634dbeb0b085552b7ec18d14868d248ca46b8afba2af3812a488c8f142349eccb5305eeffd824231230f202d35fad30d24bc64694494e2026422901f9a718d7ece3c7f6fd08157401ce077b0e2c752cb53d15249cb72e654bb1caf3fe6178c235e4450e68f6b0415b69e03a74af88d253b1dd64023f9a03e6b517ae5e90adf489aa04bb82f571097d1401c7a218f692335860981c135cccec562970358710f268c66fae342cb7baf1e8d1194b27bc7429147a366d3123bb556fc0ebfe0887d384083b000a0e2dfe38759638a8102177109117088a0fbd4c6949c13e83c7dc661bd2275490569695c2ef2179f4b8be02a221b12c69eea14f3989c72a7783a1076de9c383b82db80c565677088adbbae745bbe509e7a45104ec6c987edcb16374f1167c1ae657672c9a90c6f780fa1443b616c1b5e81e8b69ca1cb43178954b55e2176ce541db81c1348b115415d300eb8af82402c65f3ff9485cc81cb723bc4c77f7f8b95fbc51675e0b1ede5ced55ef4f0c01e73134ca230a0fae9a5e324fcff84f6b2df8e07e237ae9a9c87817b2da642a6fb4d321a73439a45342d0897821fcb71526700ada0963f0d2e1694349d70be3fb2493cffab09f14547b13b8a72f30d4972bf422884b2cf921efb9bd8151445a0326e8a6f77549cf8fb67418f83acd65ab9bf4eed3007cd32650bb7bf2430a674a7ee34cd9360d3898ed608ad5ccb55ede1a88849f4f69c55888de418ef52c2ca3a0c2532fd41a494705290368b37a5be52aebedcc312ce5baaca8da39bbb9b3e0118b5d5a8dc90321bfa164c5827497822be7116045014a53d01c03442122a0db8006454d4c730aeab1453e776bde500bcd05855045e9f84701d73c34270934a1b8fe262ba08202e638e3080ecf5f9146b20ee02642bb83176152eec5a203f4dfeccded4fe0c47e893ae811f12980b0c750ab772d3414688d8fe67df95d2591d95446e23e79d3b8a261da3a215dea57d69ca8a7b1b997741d001e97727e8c3f4a74d52501ada13684bd3509adceccda86b21f34144b2a415fd8631ef86a0c4d0d32de425637263c48ec9d06fc3441cf36fa642101777b18199e49fa732bc03996acd81402c86fd5761d5ca01530592e4eac0d5d058840a3ee83d57d3d2c1b5fb2385ee9ce7d3f2ef2fb84b41400059c623f84caa6e43b16f25001cb90534c8275ab1ab9f0fda87db940f4a429ddfe05baa88ca24061f427a2e65f652334f5f27eb9a0c2ab0372ff9764ff787be6706c143ee8e143b7e9a05c89d7abeca4531289bb8fdee99b0f3d0a2fe914e61c353228f48634a6194ee78ac2739da4765353fe4daf891070c048fdf0c989d2eee423fa4716cb1408c0ed23c287f7d79208228ec084210ee3887ea85d6e26f043801c0b4b1c413dfb79936e9f1974a85c417df72904b1cdbc3679f104b6e9917eb672478433f143cbd70f6a9cdac6a63cc7be4c19d4503cade1ded0b25fae22fa422194154fe7db51caa829368f01e51f228568bb692d341aaf0400093fbb46033cdcd5fa64fb01984ef7a0f1196b9f0e9ac356d9e2ecab191a653595625f2a412c717f873c9b7f32f4195b3b9fed5718dad1606f50b53e716df61a16fb8576e4a6b906d828c575b251d88d1110f3961b3fb7e74008556ed50233bcae854f78e96837bb9c2777fbe314718d4759463e0a1d136dccc4e054cbb8c889b1c72846e6abb60b69ab3623c60406258b6469cdde28832b060e3f541dc24171a7c2fb9a4eb2f40ef628b79ad5ca6241f16bac76f4c8c6d752b0a3144fcd1b62a0db0fd4fc99147aa72e81650174f4d2ba19542a2ef2e5713874477722ba0fc5ff81cfccf0885b3a015ec400b12b769e2f469bbf5a78314af64f4c1f0460ab7a30e60f1e82bebefad895ae45a931daeeeaf2d0c519b6816c090d1bf1f373df338fdeca5bc567e5575ac8e1e75273afd52adc609b15b0e552fdf1b01ee6ee32f1996453eda38bb0c0c50300ed6866dba9281815000154fab51f248b10bec2b643dc32fc967c6b48fe21bd11f592b3851de809e10034df75cd0538c0ff178be88fcef82908a3fb83a8ae88e82b9b455e44311d9cfc70d0d9c9da2bc65fe53f054e98b8739860b004dce1ac54a952430d3207bc26c653c055b191a633d4dfba733c4e49418d4a29348acdf4bf79bf84e929bbf03b3812533968a3a96d9aa184172e9f8adac2af0a48a59f6dd7fd00b22e24858f36a0d9ae026d9e40afbc46f701a9aead557924ac6ccb5e1b4f5617d9fc9cdc3113ca6950d9068d6763b8feea4a98d39e009cacb1a129c103f951151d05a96c6267cbd8c1b4040a265f428e070a0e059025fa4ee733436441e4c416071c474cae3a839597ac7601da3512b2693905ef8fbfc49372c10d8935702b0829d46806d75d74dc59ed6ab6118f3b1978e79dbebf3a705e7ebed564f48e77f838379e9bd3c7b6f093b2a91d08e1230c88e10fdcd4bf28284091de464d6c09b5578786c1d07ee3e9104ed48bff99fe9e8f69dacbcfdef5f94c783a748be18620c1bf2c29d1d06909c6701c83f5d0d30a0a560762b83bc3bd362d83580ddc8500a622663d11eff243131ff48545fd73cdfdc100876950259222c9bfce8fc28f70bf04e2ec11964148439a2cd064b53c12bee17dcbccc7445466ba9e7ba2e9106673c9898d2e95dee0d645d73e9418e0d7258edbafa079da67a4ef663fb4d1168a977b01b85d67ffe36e52865d430dc2786c378487ba6e846e9bfc0ac8bb6fae5b25dc8a6e2279a3669b92de64609573118b10c051033eaa187a273c6ccc8488641b3119e9434fe17ef719b6a7c2534ae1847a8ceaaaf0e665e5fb3e1902ef303cc28526ccbb86bbd85ff495d5bc149f956be105457c77c879d66760cdd3140efe14bdb00c429822568c74bee0a5985038da6d2f7462a506a090ce637fcaaa940429ed3a2e7bc67fa04e065893954cf0890eff1b9df22f93dd6d1b389cd9d0bd1c9db58323785a586999e4401de03c53b8f9fbca20381aff7b6d5435575a9d6219a8428623460334fc499fc2db46d0c4897ef9e3fe5d13dd43209e6896752f87e846a3642515818d533b848bece6786a6a342b6074e5c23912f9dd4d38912366bf0baa8b085b1cc8b7100f68550c733d2b9b412c8ff9031f29d884fa33529b18859e36e89709392543fa31e035e4dd98b90d1c128059dfa572cbcf897de0daefc91e3beb0422ea402a8ad8324ad8afd9f96fa023e1091ccf58848c3fa1fd98eb0287d40132ab6af31c444aa56a4dd404154c58045fc3ab2100fe398341ffd4447725a2db79be6b5ae8ba4ba265055aa8582a69abf241c5416faf74f537a16bf1ab45e99ec30d8a8f78a4b4b59e6a4c00ae6dc0a3b2181b3dd707b2262b81230acd56b0a6a3a11f734acc6c044e2ad710b180ca40c493beca3b78ea2b3e88503749fa468d7bb89445baa167178c52f69802bf08ad7c0bbb711cbc67242ca8bc8e5e3b22400097af79d7171446daa115138a8acb9c756c4a4a9a0c4c0afc1ef70e7782326d8ee14c1f873f6d9a0e27ef845660f2354340317999aaba7c72353baccc05821c29829af1cf36e13cab2893e7296413c667b4fdb9e247c2de009762c61ba0727692cb0f76f90cecaea812add80aea8d7506c147798938c657347be5a1c8c40a3c7be480e686bbd35110d4209b07fc40a24f5168fdf85382533f27bda9e0f70363380ad823cec60db5efd9448af601c801f9232434ddf261a3677a73ce61d40c27535aae3e4c14eae0ea93386cd20031e3836bc27bffe9acc556972afdc523afca44562d66c1cccd5fae7a71ed8faa3dd3855c527623a934230bedcd390f5f38f03f15fd18c456e5bc9840c72db92d7c331f830fd180b7d5f22849786b9694c414492a87d27365484acb8a0f511cc54a39292628472dac94ab62b9c28632f16994263129313ee2282f82832b9135deacade795b5cae318751710dea6ea23ee61fc5014bbb384cfcfe531e0e67567b152667c1465218642c9b8f08909e357d029a1d200518d5a430d5baac6a68e796e3dd26037197d57e777e499329170d8e56bb119f3dd7dfeb30e9e22b76fb2bfe30e3a3e01dd8c70b3b90cf29a5ee361ac1d438257ae2b81b2f6638d83502d6e3e49534a80d206284501996253e351257c4a568ec617a74730219a69e2f80980d33b407ddba9be169e9ec67c2ad6a7734dfb7c417cb3fa7f1674c51ae3312352a1f390f1c62199a879c8a7371873d7965360e95b76c53a23520d1aa536aa72c18a0bf85dc414c4d2bfdf44815fed07306a410711cbd735383dcc010dff3a78ebffa88f755a5c82c96aed69efec07ff3702190ef6e619f299908b0e54cf68f02e5719fc3656374427b8413fe3ad39df85f5f75e42bde3385486a60213c025c122dfbe20bc65ea228696919c59f69b6feaa95d58fbd290c8f6398670599f40689a450e157096903413a893d41b7b08594ff67725f55bafa2703c64788a72d827b95339c26cf6ce1bf471be074f013b97b49535a94cee7736317de496e7a2a1c3dbf5b70912fed8fdd14cf412f7e9090d440973c744972a4dd9516bd921a57d3896ccb396762c294e484994bf96309476866244cd15c5ee05c1c53975a556573e2fa236a9e3882b91e75e3e777a26fe1b99ed2125559a14840c61a5bde10807d4daa79adb4ff8d08c8483735e3feed1a9f3946aac120f13d63dac04b0ccabc403c03b70ea1bbb3da0188d9159c2c6a5b78647d5e28f1bd0ec47ebefcee6862ef30537ba7d9b9bfcefcb324829319455a173d6fcefcaa52e619efe379808073e8a822be124c66a946c7a33683c447db4cab8783dd31691656c94d56114601f8b5c4b50ada84971737a0419956b5c251e77e9c5cc414170a00cd2a36e64109baef8aac8d39dc9da209766a40c9f646b661c5d9047788ef7a857b40b4f6437d818b5dd7882707de9bb8ff643bd7dfb3756a998442ba1ab438cac53701903f06b8122e8fed93b5404b70b964085f4bb2a5460108481e82d303ae214ee4d01596caebae0445281d4abeff00a527c275ded3579414503c38f7a82189a0d582b2e9f42afe3b84528c62a25a7e418b63c876ef84f3fdb1186baa986b4ceacc63d8226a68de07daa2e7da59086a021387ff4c0c9bf6a4746caf7a2334490cd475df4aa2324455b698095b270ba1dab491751c29899ea85239296e60e70124e274d5c3f7a1ae4aaa158f3c00bf7f6d13a7ece60316b1fc3ccedd87897f69c71cc3599948b322e653546594a926224114ab72fe51ad827df1d22509112903f25f5aff5d21cd58342f44bd775c006f88df50ffcb90ee5f8952c18db9cd39c168f83f0dbcb5000c08d9e1f60a50cf20d22a153b749e5b174adf9bd17fb8411ce078d8c84c22e2b350bef04872a97b49aac80ab134a809495f4bfccce32ef10a83d9fb74765e41c0d6d4b15fa50f15cd23d9557c2384e0f696ec85fe96faf1cbb58fe9c72ee0219999797b7c2992abd30a793ebb20b49b250e7a54732d72d0cfb411500a35ab32260ca0501ee27a04f8b081b6a04da0d583a0f17c6d4f291658dfba3085e022e519a1b17ee31c997d3874e48cbce1566b32174dc64b587eae45031acbc12f5b5be332ae03c93f987570d10dfb30d08ce1a7f2566aac08fab95d7900ac5cd88d0f703aac7342ac5917243485b2421dcd7538d8150bb0abfbff32dd93166fff91deb4b9fa0d7a8cddfa8e4dc9d82892d4c3db4149d87bb11f48705d0628ba9e409e80a15c991acefc05ed90bd6630cc4bf6358416b9e5a872871c8f8e9a37a9dff043dd0bc055e7033ec715b9ccb16dcd9ec190f4213f58467e50865e85ca358cfbe4bcb2c28cb174b5cff0da6de42a73b6d2353a605444e732f8664a81bd5b3571ca5c891e6be6b743b4f5489675c025aa9785e8da4a2d6ebb495d1562b78d0b802239e683c5188510b3f15e98ae99ab843a7fb8d467c85a036044febeb01a40212e9877e99e56cdbfaa6fee4f5593145cdadc8fd64a17904abf963e5168b3e51999510d4a2ae1652e5ad94989b8f3e1bd31a43376c8c9e4e87462fe35d0b51fcb580d38096b349617eaaf3d2bf3b2a09ab434eafe4f56b46869faf2024a493c5d1e0a34acead44b7142eeb7f924e239cd9adc458c15cdceab6b8e595ec4a418e75ce4a532bf54fff27c42518b2cc55a8f42d262a2cf183951e58d741e79c0853ddc63c39aee43a54151a48d1c1f1c270d8fbc0a288ce01a23f3c1aa84934291dd0c53e1a0e259968bd4c9319c30ee3747dd3653d3d5ad4537c38710f152fac83257ddf5ff51b82c018381d65f7cdd1ee1932fc2280e24f72f784d52ff1e577f69f477d48fc4b17fb6d10184386b616bd4f939c05d572511beba4ff5c7ceeac8a515356d22955564a16c21cf0e2a769d775d07c4250fb883fac6a101a04b6c80799253f598ab55738b51b160a0c4653e503c561d388a9bc0081d8fca412e1d018a6cf1482744b0403749aa93e6d0411a2d971bb870400a5c6490f2615295762689da1c9b25303088e598bc50b000aed5d66e92c00c3b45e8764068986860646bad696644a2160f3b34e0b450090be4b0bc42a518cf45325e2b1314c136904e99e0a068814a77dda49224483e17d0f29084a8d103e4c2a56afc410324793e5b7061010721d8b1f489128d00814f11e4556c7d7b5238df96064220644912d5791486811a35e64e7c648baad74e0bac6d1dfefd14a01a9ee42fa328ab4a68e547126e970f7cc52d9094a9354291922b952ea2f4b3cb925eb7497041540e06662fabb645af966aa4e9abede9ad66e9b2aff4d3f474e2b8f4e856ba7bf8fa795b3a7d2af4f0f21bbedfc40b9845059cd504c88285bae2851d0280e7a94e58d94189e14f758ca6a963025604aaa8ac06db1902d1b97d5900f7bf9699f3f6e31e75defc0153af10a6ce7a104542eb706e18410f40b7832debd9d4e6e9fa7ebe8f079b91cdc5e0f97a3ebf7723a3abd1e4e779381f841f806113bc688408584d729b12f9908be4e381a8a31679bcd446a9a8018a899480797a622324ae15efc3b231f9a0fb1032a10f7fef80dfbf05533f6eda04892199977fbc9d908baaf0ec00addbce3117baf2d621f6186b2654122c199008a48fc2c9b6c8e44a461d34449cadc26c46912e1cd954c50f211471ec994f0bbc1f1cc4a56df4ca065c9f354a214e312a62f31e448741113669518d35626fba65d9e4213010688b9d6e4cd83f43bdcc425339634e2a44adce10aa29359ed4e9cf424e751977d7df2ad259b2e409967502cdd1c14321412cd769f4491a1f300218ce2f628c957393724c52e0e873a550a134cb1c67644379b62417c55b5f314be503197aeed432acc985d3e399585565c9e52151488e9759b56716cb0926b56c84c4bbc205b5922b952c52b7fa55bddf02b2e112c14090baf77ab0f8a653d79ab65c882f6fc78d7ca528a9ae59b3fcb6a6f6a98e5dcca5df0f5500c50be429c9986348e0de17b3b5cb13c3cfe0651d20db1568744853e89cdbc13033a281a59f11161db478ab516491e84a41d49641a589161e847869ed0a8b0614992d18d044b4e828f3c9909186538949415e1a92c04adb23c109649305986a16f590f91cb32a62f8361c04c8516b31e77ccd2786626a29c59089e66186b95346358c20564b9eadf720133ce03a32ffd40eaa4007fa7062b9e32d8f62420e05300d84f19a29a4db504f53a701382ba50148c8652f012858251140932a308908d0280825406245208f24941a052aa8074a901064c15e03585c06eaa05ce53118c4f018043a50029aa0e5ea932584ca5204755003055034cac32f0b4aa03fe2a0928ac2050b36a80a05500db5630d05b69a0e9aac1b2ab04e65e09087d15800bd6044758167c62b500164b00842c0044b27ae09795606556e0a56b4f05b42af3a5bd619cf60497b50b34d71e80b33de32cd60454b71430de2ac1069706345c61d7b33d0ae5aa983ff794715a08a47551b0b02b766ab147e54943185911cd7804234dda87970ee24db202545d444aa944d5049b55f0548b1ee682897b6d85b0a3c898ac54560b3b5325a675a16b01e036fafd0d0620b7bed01d8ceca433bcca514fe9cad738fb85dc01298741984be1e27478764b94fc70b1aafca8708fec1c2803174bd20913e2a6b939725e17a5b97432796a51150eb7c37f37952b6554a1ac08fc13f065bdbb5d9e5e5fa7c3dbe7eb76bc7dfe0eb7b7d7c7e9f6f27ddd2e2f9f8fdbe5e949f82cbfd800b28f2764c9585f4d7a5b85a20dc3e0ba7a0b6c03a690746f18d8e6ff216d6e3cd8ce1c036c962db41d9802a4bd63689b9f0fb4bbf3601b660cb15bb6806de00a91f60683edfe3ed0c6cdc3ed9831806df942b6815140fa3b0cb6f1fb503b370f6c63ce10b66516d80e4e0169de30dcceef03dadc3db48d1906d8975b601bb0a140253190af32949b6f035863429e912cf2f45d6997b785981346b1b0cd7ae02a643ca15edfe7974a4ecfb731a1867af9882d805449fe826839efdf8a1c9cdbc9980ccd723c431a5eb93098d852b718ea104527810797a21072a0d8061fa66c32e309bbfae1bb665acba2ddeac65eac90d275499bc0aeabc87b07b6e4155b1b52164c3ff1b349bc1ddb7fb110e376c8fa202784aa0b418d7c802e3edbda70dedb1bfb66177cfb3563ddb91fef9636dc76f7c5bcbd13cf7e6d9877edc67fb305b77dbdb16eee8ebb4f1bb61defb63f304070ddc7e7d53f87c51d8f4a1c6fe29498c48a1f94d4fd5d1d268009f93121bbc96331df65f5fec4c2e2172719a98c4719f50870d497d2d57bed439dc03bf54759529cf5a652c54ef6a14600b6590089384af8a34ca58a7bec45cde0f7e9891a24b8d59b8ad53aec47f9a077e989e20471d6972295faed45a580f7e88d9ae4f1d5931a55bad98b8ac176e88ff2a471d593e21576da87228176ec9fda28e8f74abd082def439148ebf54e25c668ea454defebec498d24a3e98d8a6438ea4ff9aabbec41f10077ea8b2244f8eb4da58a7bec45cde0f7e9891a24b8d59b8ad53aec47f9a077e989e20438ee4369ebb5f4a58ee2abf44c118628eb43114ff5f6a652c263f4464df2f8ea498d2addec45c5603bf44779d2b8ea49f10a6077157703e8960d09a0d11b4e93c399239a68eee74fd4129cc879b59f790434254ad51a278295d689016b75374f74e97f9d3894e44bc4a7347d4cec4bdd17c4a7443e238e4aedfbc5ae04be222ea5e7436256eabf271e4af21171534adf26f625f705e2292d9f11a352f67df17e25eae1a38e58b13213c8fad98c4f40f3794bd2f062d77c3484f6e15afe7328721032e9cb7df1527a6a7a985ad20de9c3371be0f9387ab05185611dc879da7b2028bd5d9e68e49af4c367556286ee33142e817608988a5a8d10a726295ab31430c7de54f6811a6b22d71d54fee78b4fa5524e0810326d93f5991af62eae8fa9ad05e0d824f15806cb652635da6e60d5174bc6000374f1795f98ea65a912bc77df5e3dea0d1adfffc808ab330d878aea1c1d98a12027d183d84a6f121d849e2432a30b022e82395d38aeb6315bb4258126213af38a855a6e8fa5104c2ab13278422ee8d1a80054f120053846e6fee50da72cbedf3644783a25f4c16ae12059bb83710d8670cf342e4ffd105c3581685852104873a32046c140ca9fb60858720e80a22eea06270805391b0a84741cc618d070ffeb21e0ab66e26051b9a16d0b82f0ce06284efaae5f3d00d0d535498b873d5a10a1d420cd488bf3b10f01a022ea07a7c807b98d0b84f51ec63901a89275758e424153263724b68b4b4d5f92aaf9f2dd0e1471b31744f884fcc6f612aec318e1ddc983b5782ff6a777e8f7e4d613349df7ba758bb013ba27fb2694312fb4c639dcb201564363c86b95bf2417629950bac2ec2f897fae30c745b905268e3ce6f93f449daed8d867f666fbed18d620939acdec110ea645cceab8748d48aa3f5bd1f2fbd4b5524884bd5dc7f19f7c902fbc338042798c1f18b476d04e963502d14392834d48e6bab936a8a21560b9c71951e3b916b7167d5b967a1fb9f815a2cbef95a5edd0f138bc32aa4fd1808cafa0299518f58413d3e2e23f29da2391e0e63021a9c3e088789536fb69b877c30bf2099bf46a5f69f77172477b6eb70bd74da74482fbc91ecc7c254a0ed764c22f8f603c2d9d63ebef619ad59e78ada5d2d14e885c5a38fa0001cc380ef4c863e8cccd490037ef79dae9076aa579bfb3bf566d8b53cbb5e376dd8df4ca920cc8981e02f6b3de07079806a8df9e4a4fe4baa16de681a470bab6fd38c14a8c2e51fd211f0b765e04a1dfdc5d32e4dd6bb768d5382582f75e9238e99082f5a41496e606a20956e3db2a60e8f6f163b592489b1c1a89fe780c669f66556d01ae76960e21358f732be9f42e0c13f54bc93524bf6abd48f5101ae29138a478d84060ab2d6d5bfd2a994688c980ad382faeb983eabaa29e5fb1fac29c6bb941524103ce6d11be19e19a47c43ceafa194a670aab581a4f42ec66e4427742ee48e022055b244c90523ae9e88d82c298b810db5dc93dabad90d7f38c2768c1a2ced262a3869f9c01c6ceb08bcfb908ec7585c218b13ae665d00017c04661be2149eaf78c536c1fb11f0f15163e52b91a84a92c8617dc5f1a51617a67e53fc75b7b1a08c89942acc7a2a4855b64b8315d3438d05f46e2f3286583af2cd46c74e907a6e8bdf19e6b652bbebb25e25b52bbc90d9cc1e5bb51cbac50f51d7d873391d40da8d51ae03ec29c73a5e6ed79453d6902507c70627d9cd21c7257d3774f515af834bc95cb397862f285cd6ae45ca75489e0cd8a9c06d19c806b720a560c9c00fa74e2216cc40fd1233f6c9c525477afb997015b3d3fa20a45efd05e4e1f572470abc87b14ff418f974bd6dfad1491fef1fcf79dd07516850fe893dfa930f89d9c0ba6a61fc88b93417f2a5eb81ab79be5fddef779428f1b80e6f1adba3dfb410137c50d54d23738ac93a760030d7914767c851e7a8197a46062860e56a169ad4bc8d3a7414cbefe653701a15024f7e10153255bb097e84fac1a2291b5c8749ed90497d6f6ba2ef1d5b00809c26626cf37fdde48b6fbd5ddabdc28231fa3aab18546b5bffe5fee68ba0574f9fe703857195ce1365a247049531c01ce88bd8773259f0bf3a8e020a1ae6d7ab995fe632edcb6d87cc3e8054375bfd28a79514bdaf9e77c2c3c65501633b82e60e15c8ca691c676248f31d2e2d0be07960255a45b4800d093b2d23c35050259996252a35ad388c8afd3caea1ef8899c262b3185b9c25d2155797f455156ae70ac3552f8b01f4af3c121a0cc672a41aed59b57d02a1745a24b60316ca9dd6f02e5cc80d98ec45cee12fa86a35cfb9468f9f3bb5c3fa245a9b84f4db6ad84402570ad2c03c31c5bd8aabeca94b200cd7c9ec61f12922e29614045b1954e39001a74b202c2124417f04a04aaed8c7c219458f946890f2214f0e55dd73a30fb26d665cd83b496ab3cab83a9e8b4fcc2488b9ccbb66e070700c377d9668ac44e4df1ed689eabb2211c9c050e139d01d7e5db66e4eeeee01a5769165bf69dce06f31b50ea42658d453f2311e751a769232e7ecd68f90e63d2e60f04d395958287586ee37cd7f7a05b0e9e2d67085064005a2a81fac20a0a92036e95bcc1875f3b00d8e11405d1b921ae804d203118c9df4fe495106981f9e49f437d646a8dda1513ca3ad71b7a727a8869ce0d373e13cafa9b180c0a94df546d14dc8a5e062794b5c8857257f6bc035cce915f45a58c2394951a00a43a397f872f59f10f17ca1eec810d185672e26d6c6f3133f4f5e93f8c7355e53631741fa473b411b1a8c448c4b9b66c8ab95945d34b8a26898dbf6d5ae2be0e09030c27f69e9f97e0425083fed83f3ea34e007232d3799364f214cf30fffc455d02fe86b6ac8c5f437e3290e712cd336d2e2415bc0ae8ff492d1dbe98d043f2af4320b98c4182182805a45a669f370c0183321e8631d2b76a5958f144e379e48a955ff8c0533d4c9d54fb8efc8720d58bcec1a8a57aec326ed03d05b2a5f657735a9dbb1422b0032801b7ca82f649dc2b99bbd809a34b94d801f7b0d6c5eab28ebe5472c3a9ff7ac6ec91b2ee6a8affa968bfd1e9348d6fd319f05264fa848942c7966e45b431d796644e1bd7f1f3b721aede7db50c0fe7897c180e161c567e0d99ce26a171f8772669897c25911cfe0d54405c17a43cec60e8fa5f668149880d2ebbd2825e3a58cc6cdda8c6d10dc84c480971cf7d2415a9a9c3fdcc5ab2455ec50335c4115226aeef01154829f7841076863aaa7345a46ba8f2cfa0bb86cdf8b7fedb5af3141797572b8c74eaba3ff5ba3763ee3ec8f623fe10b172301a77dfab931c3f30d6bf2bfd8dc3cde9acc3b64c3f7df54888e3ceab3976a16d214a716afeaad3798797360e423dadba63bafdd586e5d2fd9d1bb011921935b24a0bf2a1835848995ff527bf8e593e01a3b80b09388bf81509589558ea6cd947c5e91517649f39347db76d47da0eb3da51d56c98fd2fe36be3e97a9fd431258e39023c3443851ddde026cb76caf8a780909cff3c556d7392b04e3f5bbf709a7953406b1658d86c3e759372da61e36af940983583504b7d6c9c5aa91842752aafd8d1a0482b44612c4a94162f5918a959baa92bf015bcd1cd4d66c40da0519cf87985041963a8a56472c6d5d966b8a497934ef279f052d420878c789d5700da812aa779d8406044ff068c8762492111fd62b4bdaa4cce6070c1bf979161cd5854655442111435b9d70565da6bdffbeb4fed996da58a46690f4cb336f49f63009f688a8c2ab318a28fefaedc8ee48ad4ea90ec8a36945e3106f8387941d2a8522b69c783d62964dea30cdd183a2df8d122d1c8caabe834cc4a54ed02c549d51d65806f2b25a57701ffe3af6084b3ff998556476f75ac59103558f2831aa73c6f052cd90ebb31252bcd1b5bac82dd16fb526a315d6cf40ed7d8f5d7dcbf178b764ea8aacd4919df54bab883dad176ded024a8a1dab5a7bd2f217806e80ea412a2bc6e8ddc9cb709786cebfe7133fa7417ff40ac8f57209c8083eee720ad6dadd2fac083eeadbbc0c2dc6ffdbe72748b72fc4294f24e0653bf2432ca020450717ce65f2a5f35d95ade716b2d547daa37a5cc3a7cd96b112e3064922fd043d4886f0ebf7f47eaa9904cbbeff230e2c2049b2123a0ddf57caa3afd31c35dd104cdf78db6454d0d4fef1b3d5fd206cea6215135328ff37740c2141be070fb2c5aba35814970b4839a345cbda187555c76c0753cfbd229f4e0b6e2482e125dad262ac51090202305a562a340dd4e5ab450bd72161fc8d61a899f5758ef50f8b5d9d5666b03b86d0ce8e6a0555ab7c157611085eb44ed23c2fa90df5799b7be69d8ef3d782a37e5c68c1f7fb987fa0d529b3e7afff86f1ea908b9a2b8dcc215bca87f03e06a26b01056ed13d04a2cc31192c65ee0e3054203b7c4be84bf0e88e43d874ff46607023ef425d0c60566dd1bfdb362acc3433aa690b8b08ae092aefc1623794498ca4b9d0cfb71d0080d031760e52d5c1d63ac067eff13224ec391dc16a2aba684da81c5f39a2c8c01fd83631f16106516d62a0cd0c9c2e176dc333ac4a81a293c756db166aa5784ccf42fe8f59d999883572993a07039a5c0282626277179a3a01e01effc84204f2ef5b02b26d2fb1a5a902f9e1cc7402f4cbe758465c2c0666d1ac1f6c1cf53cd47d394656854e59ce25881a90348746a2e5cd5346f35170e6b9adf9a0b714d97af39d89e67d2ca5de1c74ad00558dd5682708181add4dc3e9f4a0c04d156fb50ad69c4e078d3d6752473a9e2723ff30cea21741f58d7d8bce03cda24cf90316254a090f5b5ae71e308c78b063a08c299c2553d548975e100884afa9b8a3c7322b8d1d4ad6ce99a8551fb5e80309542840b4f059eb9d115cb3a9efe03a891260dd5b35edb0f8123336d301010bd362f2a5ccf72fda11d6a53b861c9126b40492573e256899949cc12b1fad906cb73880f6b6a16d6641411a5388d8e84a50bf8540734151fc9f8ac909e87233b6475981489892e32052ec5ca16b4c38668ee9eac990809ba0a252854800422166e03ac324429756cc6d73b1321a5a0e3eef8540d8750b57423e9293954b8daaab775fe71b538d850b9ea6ff426de4d45813a5313c621170a1a662964f2520c764b0531d4ea20ebfdbce53c1c4d1cbb352145d70bd51e95bbd9e93620111d121d6825a43e3174a4f4119af4c2a2819c46906d7486a621fe0946559a9847b65c4e6d0a0fa72ad46dab90172bf00d3c6c440c773e04b1fe97a8856eaa5175e8f488610320fe37b7babae768ad899cb9f3d07112d45e10b48b5e2aa37a74b34ae6fad2f11dfd4bed5fe714485c27c44f3f38a5da983df7f005433d494ba8a8cd095ac796154096dfaf1d9206429e9556b11ce1c66233e1f39d85e2363ff4643b772747bc7e33ce93923f2b075d954e5b8ad0d1cc1bc78884d45e0231dcc4c3011ae2c4a45129cf450940b6cab3f9e250f8a70af0ea69e04e85ff395d8f50cc3a53ec229fd3dd2e0add0caee00aad060a2c81d16266c428068df0bdc0a2f6530a6022fb75e46a676ef435123cb6fa3a4aeff571d8d256df8556a98f935d821a16c880fd34dd620006ad985ee7dd1cf7f547c77729e01a20db8e9643f283a5d00a79542d4c465dbad0b2b266aaacd74fa25d23268da5849436a0aaf6cdf456f3f561a8b2b8edf7e9a1936aa771852d7c47768ae88b0bd1ea96c2f8583bad27ade19a7482d763d371d32d4eb6c1ac951cb324d5e76820472ec26b0b86c2fd558e6eb731a1b199cc4dbdbc8bf4093baa52ffe367988734b306f1e72632354db70ebd7a98c9471507b6344e4cae206e1c68796853e022e6432f6bfb6f916537db46968543d6d0796d9220de2f723e0a7169a7bcccf6c63a96f029ba05f3b67fa567e6a98b9199bb23c80622abd2cc0d9234bc2c49cf67e1f922eabe14a46204dd4e5f378191f6f82e0e86bb51a6b71edfe2c449210031f6e4fbbc9cf99f6a8b0a96bdeab57c65d3365d77179d6f93b9dae1b193338a17e4d0a6f86464499646fcd3035075123f867654e6cfdb43c5db9cf4b640a91c94df7e1d6dc3275eb0125b8753633879f43ff6be28ab445b840b5f647218f7bac84f8d8800a220f045a1b7382f1ce1659d8d26dde52704f10f0f3b4442b74f135e07d025e82a8d0a283dc257d9087adf773567054f932bd1b241f54b22ee3b5220e7a1ff7da833184a5150a8148c4a6578d3db732de024b03e7edf77dd038284073416d201cc58dc9476f7b1ddb771cde246012a252cf909ab331de3ed67a6de273eaf81d6b84209ab0a779b7f4a5047603bd5d4a2da10d971a7cb917ba55f3e2bbf4c65ca4ad5f0efdd724cd4a01d9f5737a512fe155366d42d555e6fe297f61ba981fa6d8799529e7446e30b19ffdfe6a3409e584381b4b4d4042286b001ac114053f307fd03666efed038af32e1697786310c2e0e5cd4136a87423c9cce3056928351636f7aa77b10a3ffce918f4c9292b8ecd68cfb2f215594768e212d4e0f52d50a229ccd01d8fc7728acdbb56a2c27d011188a58a5012d685c064a19f32c2ad762e16a33c0f55c09f2f5ab7d30db742a351c0fbd37723a9a007d1e715420f5b577d45d6e7014bd8bb9b115b14c1659ceb6c29e4419b2b127cd3ba61bf12cda19009841c21db53cfaaac52e4f3e15431c64845b98758341e60cfd80bd8d61a50bb5851639cc86cf505ec63154f42a523f74b568422b11d72fbf14708246a9621aaa5255287e9db6f47c40a710df93459d850948ce90cde2f799f6c4a27df21474cf3111904750daf99dbd320f68b83ad02e8991f46465de9774e6cef2ca557a50eba0a97891da70398e309705a0ac2c31bd53e120e7852481b8c83bd8b61e238f5a4f22ecc14288b165e220e44e0f1c06d3421cb32b6e855eea59908c203ba3063b5332b47c3fdc79575ba122d6834bf3f52f4e131d0a7ae0faa90d5fd251e087f003a503bf47a6cb2306f9ed13abe804f558ecfb5606f44bb9cd81e4ffd0e94a7cca5e82c1dbd94eaaa0997e314ea867570a4416f1ed66888df1cb597612bfd4ad0aa3304bc34cb50fbf419393112803497005224a8d3b5fd07ad515b4d09ff23c384a85a8ec8855d8921ec92282ae263b0b3b12263ad343df9f532e2bd7c1048a7915bd39d9ff88172899fe09a3dc6505645ac482e368c8d781a73c4df29e8e0af6b696e2a918d1ce0a6134043f8f5ef8b151c1d856b68f67fa8733715c6a7b1b44decbc45f5feb0922cf8dda125209faae65f887620c63b7aceda27d1c03f56d8e43cbbe3d0486ec6fde318f8a0ff8a7863a19ffb254190f8cda86724a553ef00990ee2aff00e525346f5a96241ac4c8ca4175b3260f3a01293e207f7d5fcfb76474f0aa8266238fc6f4f88c818357490fba72d20bc9baf003587bef4e97bb470d187127882cfe95005389a6cdd77181649ad869f83256604d2712507c353ed04d3c3130a46c88f00adf21cc5d4c9018d0d9a77d05242c9b9f0b0e67012a3017baa6bdff3691ef4bc367e303d9141169f271fc4098222ecdbe5b231fc60ba4c9c4a5e193c67dd7a87da089f75f121949996fa1f991bed10551706e072abb0bb7d4f02ae70156913924a71b95f6f6a188b6006421ab3781bd001219660ad1576cb6ae70ce5ee5968672bdfb5b04926d125e4655924445837d8d171813894e5bf608543e8f1d3853c40bf4dd3f6dbec614383101fed99f5a01ddfb063586fd7ed0b26f40fe54f8e023ecaab8279ac15ea8ed63046382f279d7dce47dd5b8d8e56d9c99c05f427dc326c0b9e5c14c826489e5b6218af154f833de7bed3758f57dca67d5629b05889899225d2883e4510db2db200d9c4effbdd64b7b2771159e5eb40228bb9e37bd2b6e34ee7610f08c6cead879dd0c61420937b117d3dce2c56159333d595b7c2d78f8c199535c9f2126d402251aa5115cce52b3d30e12610624b6e251e7c0e9cdd02bdf137f96c9e1dde78f94cc4f08e3ad092501006d03aa88c27dbbd235a6ac3e94f730f06f8c9d1ee3bb9e1f37ccef4391b7380ebb379d7033033d35a6661110537a0ffd434bef75f05f80ebf89f5f07515111a667df964cb5cab84a402541d3a36330818b4180831f9ce72cfe19c8ef8dedacfc96cd69344b7d5a8c84aacf9db0f224718b56543b2354b80be9f8d9dff9fcd06af2820923967fa59b4f2d7e2a2381fa80e0f46c63c2f8ed2181f64e9e99fcbd836ccca51afdce3df244da96aff7955b0643d29378982dd8a6b3b4568799f70b790e8b54976cc709fb2d21cbf4562d3723a9879efa245709249129e68a2e9778c0501a47dd10205f2b125dea9e4d54385624b481b25a61675bcb32b7bc9ef3b864ed43fb2e8d77f089de1c1978ce72f2eae37e0e4d49d0ba7790bae58d18680b4028c9d28932f73fc685eac7db735e9ac9238291482b9c089b78bae73cb37a93fb2ddbaa8072c37367259ce6f10b492fa87c6dfad183cac987ad0529df118dbcd8821f0e479612eaba49c8ffdd94666b2eb773e1432d929183667d44ba5f80aaa0dc37e0518db51a80b55ece22af2d77f868fcd0a506c20a67eefbdb36b70974b8548376b8cfa5f3c0f13496c3e7a05dd919b952a8bd3cab308e8f0cb29cc9207c37df990619b167951a62a41926e4057432dbecb766650d5fae9004a9ec88d11544bb0064ff07a5665f3faa59fbefb57e610115618960de323f5d3bbc534ccaa97850881003cdbc3d21bd308cbeb1dd1779a5581f63bbff6cd9b9c6f565027615e285797ee6dbdcaee6e733beeeb59f2c43656e8552a8074303d4165a214fa918fdc16efeeef9d950363db441764122c60343c93a31e11b634dab351e35fad2f2d01930bf1bd037d738022a93fd06f15d81b275f79ccdad1555047bfc6cfcfe862e19d181a95c0279ce83e080defe46ac71a3af4855ea4ddfcfb6344a53f3a2e4bfa29648757a1eb9e5c9c52c1f40c7fb2da5a025cecf2a06c023fccea567fe521d8d9978ffbdce122923d63504442a6535f8c86a4b19f5d8c49c27076a145cd9bb1f2f80958fc005666be5751545624d5398b0fad8d191cc89a05396fe37b142c003dc77a076eb0e9ee2002798720ce66336d138d17ce5d6678177c8ad6f52a357f50bcf22c5c071ebdf0b268c7cedd61bf57a2ec5d607dae30efcc619373909684cee288f236a68b77e23c1680ca5047f47912a4dcdd848886f1dd118ddd2c58295a05c81b2a500ce8dbcfce65a6704bfe6a1f9094ae7c074032017ad306dc550960c924d74cf50887deab5c6ea8eef44d99043b3d53142dc42d8adc722263f1d43d1d0e68a233c25b97f38b61b68b6ee715e4874d03e70226de0b6b49c3ecea5fb6210e64295721453538d187b3bbabf2d974d8f7f38abb129d0703b8ff4ed38fec434f3857ce49db3d359030d633b02f219c0cc751f7499904c74185012006adaac4131de844287bc2e7b46c80a4314c5a9f61b41806a2858ed8e665a50d296358c39f727466a82442f37fdd556ae07b615720c0e9e7f4a55241e4941ca346953fd2853b6e8014c9e9e1b78be4a568be8480118cf1fb559c6f0141a54cef4311b878b7b41733ff64be58fe136ab9821b0953a2abab81e1a51df19773bca4930e2d267b9fc9492d257028fb72536e0d61a9f2dc1f5283c27e668e07da533857c9e2130bcadf6b23dabab588abca7bbb35cfe4ee59b768da6e013a2c11c65d2de29532726082339347db743e70a0d7ab17c28d62715e07bc451106c5d6555aa4e2c359b5e057198712ba0a9ed149321f4bc4debde59414ac18240255641069b6367ab9b15349d4f09bc1f6d0a927c6a4607047d45d454c23a4599424c70d3427dea15b496889dd5599b1085ce83b1e99af2613e38a7bb46e879cd35dbde6643535bf2ea61876fb76d72d6755a82b1615370aed8ee6b99fcd36645a4dda77045556b16683be759685af4be6a62a38d156c296f3b6240ad8e34080b739a5674b6eb3ec97ae127a6dcb41f7392392726126716e9010c2115ee8bbf6d0dda79d7d2d2a4f7fc7f45c6382f476f6a45ccdc04d6a1de030a50c4bbf9b67e43d702c3b5226e421e9f35e374c5d909e158ee34870ae37d87359f4be9ff8895039e8d1a147e233edbe537f1393119584b7c5ea40e03af700df603e8e5f54cc09cbae0d97a150ec56719ea421dd292914b9cefe90fdf331ffa20a9f9a7831d1eb667cd035acd5e360f4c6faffad8da3da9b0554ac0b1a3874a69a6e35135cf284dbe95b03d716a08722a1b2643b2ee895d2e8ddea05b92a7da6020d482064206072d175f9fc2d4098e02baff4f0f29bc99ed2b6615cad1ceb265bf55778d623dcf4078fabd22062da3d1944b81f35f40f7c306264648d1bee689f51e8a4fb8f0ff6ba2d92e5d1d20e0ec91c515a13a1fd591dba6041ef77b07c9c363d4006b01f10b8a025d6bb9c5910e0dc2f111f5298705aff0aca5894310fc5c7b19722b78641a7c16cbf2e2b73e0faad6f6a7b0aac997dda79a008f011dccecdf3dd607bae52aa895c74bce32c98b5b70d0c9b241be7d3cb0a0cdbc88b19001ce5d5e17356781b4f7fa3530184f084f3163a2398ada27bd966b8c6e92e46203a06edc8a8adb28fc3f0d70c54a41e3c14cb53b3df28a4b2556fcdae169b12cdc2609516305d5a6743f19955e29684ed910f600e6562700f5db7b4594390067f075714d94665e9ee0b028152108df0bdccad92cb5b74c1cc77e58a662af6f0e56b673926fdf6defc2cc1b2c8fa0fb8e30c1b167e1cd33a512a70ac1e81334006e6481911341c33a2741e59d7ef69d467b982f3017636ed6973b3e1581218cb9013a447b02f62813496a388ffb5c8d477969c867406c1167df8100c7e393a2799c14194d68d6392673536a4c3bd81a15c757cdbb64a4605a8d8a97cd7cca863f1f508451b1a505464f8afb9b53e793a9977e01b22f5a1ebaf1b4779753e315ee145ffe1382155fe760241a9b57dea5ee50c8832b5a4a91f91624ff23b416e96526aaa5f1ae2134e17f269a8dc9ced28e920c2f0de0e048661a5b1a4606e47344b37450e02d782d4780fd188598f12892f9c166809a75f082a6bbe5dd58aa59198d00d2599d84bfc1bca31186ae50c118569049d278cc6e6369f54bcc7216411a89cc942364097f03264b79a366a5302eac2de0e3fb04bc82123709da482912d8ca3661be1e3b4222270b0c742005504d47a8ef873434e5e484b23e21630ea656aea2960d4dc2ab907cd896a60e698aca24c4fa2b8d48bdde92fd93704b043460046c25debfa12e4a7fb0112f0325799c6b37b86c5febcb72acb71b155aa7c5ab582505c446464e524e2bed3f5b209697a0e2a40a835fa017192127a93bee1a2b367721086c60b0d68a86005e037e6aa0732b204bde4ebc4877c6753f47e4a2fcc1386b1d60e8bb6d2bd29329db813ffddd9a4924d3ece011487747904848470988adde7db9a01f98cc811bd23f4d323e1fd2518020079df253d0dfbf2acf39db5ef08bc32795a80862d7ae0d9b2cc66155c76c492b5abbfbcfc517790d5c2830d88206582a5ff711817d85c7356aada9eca9ebed680afbe535ec50ee0290e7d0b3476bf8e046c187c164f3b2eefb15f38b646f9dd4c1042306a765fd0b1ae307d37d152673a88f042403aa9481d14a8f54576cb769434bb24090c913ffa39e0a6d5e0dda80518c479562ff55c313ce4275835057f05d0d21f9770c3b19c00dac08ef2122531888e9d8438e53e017ace408b070b74baca8869eb4225a97bb3ed958d2a0ae3500fdf4531a23d1997bb0fb7923b7bd139fdb3c5a00509c121e5da12c44d1829c1067a42dc3d7abea09b2142d0936457dc4637f8b5bbe31e27b5a919aebf4cdd77e843cd932e2e4d614268b4a0d37d39955dacfab19c605a2764fc758e08b73078da522578b554e7c17c8c83fc45a415987853ad991e2a139eb789fef1fe61cb7d95a99b72429aad52ba1f3abe267645276009f4b54546f04413d0dfe57c4a544bf18021417a8920c355eab53953eaf7ee65a5db3370f194520abd2fb99584156fdae8055dc892e55fd72adac4be9fd457455b66d8c8f371d9b3a46a86f42c061dc5b0541b858b8e31ecb57e761cd1ba01f9aaef345ba33cece53433bb3c8f835242ba834616d06c3b6d75969756624281eb6059fe3c60683ca211358c8d3c8f6399d720588490fc59e3c9178397c4e2cbb7facdb1666f7c6eae04cbb08edbf8b80b86263dc99fd7e0273269a40bb6c44c8fe59e95024799fba17a3720d378103a7a002d68c99eaabb23330b586f5c2a1331ecd5bf799ed55ef49e770d4070884a2f7f28bb7e4720d4ae2b49f747090d4f04a483b137ffe3b9f8339426f68ea39b03b4f71b27fd0e6184c0ba8a99e2c800cfd6a6ac818922c0f8b65aa175826fc317dad0b1e4f03602e1ea331a52e3d6fa3e69154d223b16ed8e95df075fcb6e7b11dfaa8d261a8b75cac765c81139480087d02c6e66ddf58dbc86d2b6072136d7169804500c0f64cec47e84f315e1ed4e15c44b01a7a97773fd9d916738ed06beb897de8e8658e199bf6c3dc3cd97bf767e79a7291b937f22e97cb95b314791e992c9eb325c32c8ebb0a81f5073cb783548755cadf758773fa6eed12fb869ddb4176dbd74c9a71a46c44a88a11bb7f23f279a6e2919ea6dc03325413ced8fff3aa66ef7ed61f64af0a73e2cc1252a7906a7ec29fc755df1d74e8d1ba63dff436cbf53d0f148683da034d88baf31b682c51b9ad5174c1b9603c7f756942ce763ecf557acae10200ded9059d9f2f337bed276055b28a20ae621797bbd57a992db8961e8ac8df332e434583b3fe3f9848a6093d58279348fbab0d6215485e6755cf11c6cff5fd928f30e67f9b908102f7fcf7cec99bee70233a6b3782d58d3cb4b553e73f62ce14a15c3c1e826ecaa61148d3511ba1084db588c10aa385b7b877ac572e0162226b64b11bc4ed455cb33819dde332ad2ea60d26b349fb964ca38d87ebe7d49ca94f1c1057c85cf35f9c6ef31094534a64e24f561ab9fbf706cc4164960c286bcbcac5d4e98d2d19475bd2c7774ae211a01f93de9fb664b5b301a8ebab9f62158138fdc32f3b2374f14ab136a3ba839f7f095942ff74789b7ae0dfdba0b2db177ed7d651ed3b363bc96108cb108921102e2b31a93b1d6452c253188f923431013a283577fa344dc500b3ff0f1740d1022ad282d5a11e86bed58683807c97486f258cac3f8ba08eda568aa3556335a146499bccf78f34d5721963a08f3d000e380d38247a5171cc67030b73b12fd16642fa01cf1e8097f1821ec9a6e0b88757b1df42808287419b862f25aef848c45daca1d03d0e082bca82a1967176045870f008aa64bd119bef934cc987747f608e2077dbe13b7fd8ad6924fb3a5a22b9f5a770883a4521c7184d2e0e0c25bea6ff8d0f74ffd2d6ce29272ce6339db953b3c96d02a5c1d0de81d881ea3bc703c5f12d0f72606104964397818d50376053d220e1e4009c0d3a996d43a20d85a7002c1ca91915101198bd5735e794221267611d59379d5203ba3da6f9b502deed70cc930669ba33141e8914c000e264696886134b63651c33bc30130f8eb92671229ba7cfca9255faa55164f667a1594999ef477366833429fdbb7f4070b6005ee6fc73f3538c4882694f5bac8e7e3d5a5e74f5711e348479e16fb4c00b4bc9083548fa381d4c220f38bb53d0b540fde9b746a7e5419580757c78e6ed40a83385a442ae3c425205213fcc9b62721b4b2749bec6d56993b23c597dd3db0de52b7a6dfa22a39cdfa8713211ff1b98b6d7cde8aa776ba27348a7dcd6218c28046cace6779f284b5d7f352b83537e484b00bb3bde41af46b105fff152a1400f0ccac7ab5a340428b89d4db15f0790de0a5866933abe5564ec7de4a0244991fdb05a2b8006ac4cea019f36e42e8f160c2c084aa8b71ca41f5de42aacbdf921c5be7be8fc4919c4bb7c56a8f8519e3fb08dda2f123c8b9dcc80949b9c7788b503ffb80ce41df866f8516bf8b2ea2722c1632ce0854c4d7af186e40e8e55962dac76a5977aa920de7327aa8fbdc29b31aa2118622e17d5112f1d0937432a9b9aa639afd5441957f76402df3fd0c47b3dd0163e7021ae659c12ca6b21bc018e7b026d1bb406fa75037741976b19ba2bfdd83262a7083341f1469b5e6390604efd157c9b64006cbee9a9f6d11d8f19e896375a8e75f40d6f3e447806119b95d4886d83228caa97359b04de5ad15793802d29eaf5379ca51aa51f5394f8226a34fcb729a61b7fda493146e6786f916e51e08f503ee0e25f76c0676380f0d3cebf4708fc7644c1928fe1b2aca6bfb0bf405b65de3b28f381e4d81d825dc0c661c01c58ebe274f2b36a3212e2ab4d4f7fb70f5877484fd83a1a563cc749916dcbce5890ef6314aca041c88ba1430d9c79bd7ac4362da9e0baa9499684d6b6f370622bdbb65ce879db96898e56de8afe112c75fda7ce797ef0e83cd113d8b663b00763028ccb2a66995e9e205919e46e9923ef2da929938102dcb538aacc1080ed2eb33e62abf2c4eb5e2a0b1cc67b47458a4ee9d20b5578076af8718f96fbcd42c4453c79a6e6818241fadb1bae032bdb9da1b32bfc3aa856edc5d6e13a8e4dec08d1d98fb03df2f711d269f3286ed394ff8ce902edb91435e0d093f01007e00fcf07bfb1868d5cc41b768f06fca5d56ad3c349d082d34923763de7478401152887482b80662ebfa9f6261d64fb4ee8d46a47cea5e5c5ece50320e8ec97793a53e0419756b500d85958cb9b6c93afbd8813a1eebda4fcbc5121a7e5928d0ddb707b4df22fa98f29ccef861398ab41b8e5082a5fd85f0c634cdc28598f4545df39294b3f3764babc6f0232db5c9f0aaf3646be36da3bc453d71ac40a11b87029b380af08dd38b5e8772d4c8a1611f81f5736a8a68aa9cab234b0f428cd8bdb6a5475582d2be6457dd70769092c3c4d7b1a6faa023ef7f8e4d06b8621c4750656abf5552a87c1bf8a1a4aa501b466254e7326e8c6555aaf39693495ff8f391f63ea14d9bfd36d047d72c027f2c611b10f7e3548ef8cc2603a5f21c5feee0ade5048b17235875bc53a50816754bd0340f0064d7ea128ae197e0ee1f2e826f9ec1109810adfb2cc9b60490b0876a67b4e3815d43fbb9d2dc753df9f228e1a0645e900acb66f45de210172890a936975820d8039f5e93f4bc8c3897b2b66e0e683e49e282f37c0b17b5f406b2a368730e26008f6355e9596c764f64e3596dc9b8a30f135db96e24a8e5919cc85803e380f35951404f987876a309829d00d0a56612e27d908b4a6d233ab7d0e84184ffcc4051a52ce45fe7730e480aa17fdbe146cb7c391b8272f41f7a031f96e6502c1ba42655d08f46d3883c6d2a6768a9927079fb8a2cde2346eae4d257a8a1088fbcf7596c9e4cdbb1ac3266885e0c17d4da268e3b22ea3905888ab84fc1d80b244539f1a8f0d3c68dc5481d611ff4f28cd64b961db2e7688f5b73e17a9ea187d019a9d1cafbc84286f65d0f3ac5c6ced68449e6d4e16fec6451c5e706ed6005ce47eaaf23da6bee3f0e85b9f1feb2c560c9a1cb150df69cb8f3d08c6cfe8d060899f1235b2ee95d31ddf2c1409fa2ec2fa67ee65d2df26580a344c133a2bb111252e825401c86a19722001fc800e41d37780828acc73a1375aac2bfc56d02a1b57c02cc01fef234472f397f81704e3e082abcbfa6c6fb106f9a3ff093dd603f086c2b80e987a6b45ed690e2f8640ac2eed2d0a46106b05c16058999bc0153bd64d84c2592e6ec714895a973f6346029414033a5ec2765c40d855a503f9594dbcb836f0f782ddac1138a3a18c1ec762a9708a0254efe4431b48cdca032c42687673731dd80db7da7b8fb08de5cfd0bedbce85a3e316ac65151741f14ca5d3750b7b3d3b3ec941364424d97bcbbda59432c9246545076d076d07eed4e7ec76da0dbbf1a8bbac3bce786473f49ccdd9ee6963a3208a7eec6677a516e76e77977d5dc6c002430861cced22cf095ff017f193ffcd77779f5f37a54bf78fbabbfbe7d58010e2762f62423084104e3b63467d4a39a54b4f3664b9d309e784744e3827d4c25d3a75af743a719f7376d09db8573a7dbcd2e9844ea7d387ce4aa713af743a711f1f77e25ee9f4f14aa7932c7a832b0869a0d6ddd229c417773790efc72bbdbec71871224e0c41ee586154cd3969751c9a0d14c9001ccaa6676f2f19715eb031e0f0102100fe9b17221ecd0d0d45744ca744707062763b9ac873333bef686e349922ff30d20517a95123f2d88fd25247459c488371b8a3121c196188474017fa69129126ea401afd5107421af26550f512102c4ee53b8a5fea134a7ea90183846c73fc1c32ece8d3fcf8341891e3df5079e0845c97c8f5a926536d027890e484cad3499e109e0e800025ac0442c210678169955160310692040653b022891d04f9011640db155260a1891318d1f30397ec4a2015b900d97b8234911d89a4a1a1a1b9514205d995c8fe36c32513cb6b33b22fd1823c82ec5f23069806e49041872afbefe8136422fbd340810a04657f0cf409cbfe19c8aec411b26bd9957092fd7df46906cd136afa24c3c648f68f4222cf91ec4e24e230f143f68f44f80e1345c8fef1489f2015d93faafa047774b0939d07d93fee4087ec1f95f409ae6ca61005b05304d31113c10bb6ea41043ab0524230000b9c22411820a4a3faa1a504100cb022478a20543b3b47e081015704e51d26371b102f1fe4e9ebba749040a2029c65b88384121b20d113041254602d24b4600112449949aa5f9c60c2091dc46f5142933dc31d2776f2f72fbe046c5c82f2a58635e5902e3920840fd31290300859f6cc4ae594db133866393a13824eb7a6bf9fb9bbbb7be6d7357777f71b0f8766edf96b1977b1cb56df7a7066c30524b613f9d18fbde4b0ee87fcd9129b73ce88531fa6e79c73625b0ff0c72201185353639f3ed474603fb18bdb80add4660e755bcf3a60737c538ed1658c5d8bc43410bfe5bb440bd0e05afca4e4f7f603fc79053cf61ca2ba0fe1e3f8d88a04ea5f3f837dacfbd16fffea7e20d9d16fff87fca22ac678d9ca792cca89aa0802d82613441ffc253bc6bd48177716980cd0205dfc2d97e3be7056baf8cf280305fe609107faf4997c441ad75153737dfd1aeced5f1d97f380dbeab5e731322aaf2c306129c8c1dddd8bb8aeebbaec13bc480e16974cdf1294bf7fb13f5c38e79c2f35e6ece67c88b144f5d349e98c10876e497361cb676346e196f6b08fd87d98a694524a695349ffd2c7e85fb652dbdc1605a52b37f4e953f1c00628c556a2fae9afa8401b6e71da9da07f3da3407b9409b18364da20c8346e1163ec9baf712e6907264aa3ada41de0ebfd8340e567d3690f94f4255703c7445f85297d687b7a249c144e1a7bb04ec7c6c2110a888230d2a845a6d18a18844ce943dfd11eb51cfd4a03dd7c80bf48e9d30f864f9f3ee893e9d33e457ffa1006b4319ffe4513a5e5b9b00523811b5b9100fdfe1964fffd19e467df7fefed951b2b3c3ac3bc121f7b18d3dc4afceb614cc6adc4dcb658953a6cb5b556d833b8d77ef633d0a79f753f90ecb8dd4afcfb6325762b3ab2bf9f753f7c2099e107fdec7f20d9413feb56e2cf0712f3c37ef6f777647f3ffebd3f3b1f188c8131f661cc8d9a4cf7e0e18098fd7bc86caf63255a6e256a72e376b4077f5624903dfd19b2f9f77facc4b74f3ffb19eed7eec7ececd39fa1fefcd7fcde8cab924a18733918036364062ab035815b16484bd7812db245b6c816d9225b648b6c912db245b6c816c5872d97077f5eb63c38727609964f866cab9d254f72e3219fd3f81119e19779b2c52245fe5a240bee4aff4a7d9831acdb767dfdf5304dff93f6d3916bc7a388c308638411422881f4f41ebc61f6ce1173d63972b13bab049652ca187470e3c3dcdd57a7bd588772fc89f507d2e001c7d8c187dd156285f5d825f89345f5672872b27583ebcf1503351cfe4bf027575a784c937680e7d38f346a3aeadf8d8579b42948761064b7feeefe96736769cf9f72d3fd371ffcc1a1fc9fdd409f3e161bfa144f51478d7c6c2d4ec44418ee0c81a6a80918ee0065403af80918ee00d5e4fe4c052b77770e86c01a1d13ce7c209356da7d25aae1c84c32b6c0f4617bd6b637bbac3d20b63d6d663ebda1f3ecffe25722b224a5ab22507b92e5d3de11b80912d4a43e4984489fbec892421a15573d59fe27877c9047b64b93e9dff35e5ebec8e2a173ce3929a6efd4622ba555d92b7e7e32dc21c24ffe4c3f3ad92451912732d9a28585504927083d19ee04611559d147f6b4d792c90a509f3ef983aaa9ad9fa1050449548c41d5d81510689e340a45c5a44f70470835b93fb2e894722581fa14a9c8fd72d52b198984cce953aa4fb2a64f387da272c84d118eab3ef1f409eefc0c2d20c72947b0454a295dca77e9b78656ffe272b81ea3f47a88713e80c45c22904077bde468f7d979cd4ec6559fe44fae79fa34bf27fae4f8d36a4f36517b32fde407fc99be6ec59eb8aa0f8556b266b649067d8a45c83093b8191b9e9e51cf903ec52c32cc989bb11972836f88e85314ca308fb8191b22724839407d8a586498376ec60628082588489fe21519668d9bb12182938293a44fd18a0c73c6cdd824d129e928e9530cca305f6ec646c9cac54aa84fb18a0c33c6cdd8080dbd188234609eb161d2a748840cf3c5cdd8b0320c8d47cc33362c4803e69821133228cadf2c923348ce21e937eeb3ce5a5dd2b4d7fdc4ae74daeb4f02a6dd1775644e0df0d743f2a6077fb148a232a12189ca7e660b35ea4ad22e3f1275c59a2fd6c8d6b401b44a90a0f21a470f17f68936ceb57dc2d6a2dcd66f0959da718840ba65eada3ec5f852e3bd5abb6fbeff857176b3b3300688e3d0dd42dd1d21b616356dfdeeee865842d143c9880b03a4d1859e1d3dba30e505694c1c305b48c37d4eef2774df0db685fdb31c2710ee67e9ee0d616b71d3ca72c02844b853600d0a95265e9670af2dda5dba4b6babbb7497ed03d3bf6081ac954e57c97027892664cd1652ac5aa0ca8114383b4811847429bde7a4b0096dcf8d81f6a494d1bd2d36c1873bdedd33a248414a395dbabfb40767b47c52ba944e6d85912e50ca39a3e5a56bf7abca775a650b8b108e6f290cfee1185d802fa5745a91707777ace4561e1c1fd3efebfe152cb998bf95977ce5cf5ed8a71b66eeb730b6ec763967d4cc7a73f59a19f77573df7440739fcc2d65e7ee43e755e9bca4112655a062747a74f7b087eee3fa347907572d355e7899e18de8acf5c2bc5620d7f7899dc554c2d65daeebaad8e5dd75612423346e420fc3deeb3b867d20d7f70eda3aa90b2d299deed5d238804e298227b4c6455a2d33eb2f2f642c926240e8625d489c478343efbad7ed3e0f4078f96031993ab8c230ce192f2fd478e8e2d190b1cf3407d44cf1d6d9eec2302eda2bdbcc5ef6c22e369a257c1b3ff43cd79bd18bc445e8321a594da6e6ed2fe662be5b06bd656f783402d239e906d9757da4117ad7fc805f344e20ba0bf247679f693253dbe2d792fb61a6c9441bda451b21edc5547628bd35ea910e6dc22f5194e0c67fa9e1b3448b5f0189ca400a92d06471850f8d504c1c821424d87c986418608042d9e79c514021cf2676a218c2b4440e0d144d703b501c21cb67e9d3ff00069049963f8042962c27bc541c2cc1081398700fa4b08326a46864d3430644ce260410d7879406031eb0944da6a3c3f5c3d05dc2fa3084f9c0099b9aeab9a2008207561182e08166c70752f86107d50e3ef4a052810f3fdcc8a007213dac1c603c14b5e98994b52513cb8b1bd36572c410121cd1029d236ad08323928826531234785989a5686a2f9ae28c3109bb24071fae14fe4a570f76c9c5c3c5c375dfe1d6b2b21ddc28dfaa03fe60900ced750fb434f8832c1df273f429feecb21a3bdb9e8c4cda9391157ba280e3b74aa8c2c9c5cc390062713d734d66fb0b3515d8441556d8c4f8c0a10e2949713860d6be6a330a21f2448bf438502a5431483810b3cab7d6d7cc224ee9573604ff1783646b3cb0c701f3b57130df1b3b766e4d4546e53be6db19ed7c888a237bc8f5a1e3401a54601833d424460de561fa5a087158913f62c5d4a118d2fb58911f853842958a8142b0620a3d313820b1bf229f1269c5d02439311fce17cb02e63a8330d5ea39c0dfb449f9faf3a64f285fe7d377f1b3e4822bb968751231393fd23c4aeadb205cbf53b753d8d52929b38fb60afc491a2dcb324de67ea6c9647f214ce318ccadeca08f1fd3ce476472c54e0e7e1cea12866290d807121333b78028c731fd474110a3ce5686f1df24ca75163d01513aa4c8750e21d72c72fd89e4bfc944ae1307b94e1be4fa7307386dfa7473fd2904da6817cc14cc207235d518b5d65a697d98aed3a64a2d20ea25aa749fc94180b7c8f521d45e9890aba4b14fe0d8d3e483ac1de8902ef53bd97d266d06fa920673b011f0d51411f0075bddb16fee4e665128d7c749602c7f9fe1bd1ca77de894cb20d7a79da2e29334ac692369644da3f05b8b65181733fd5490fa5e57906b77d306d2a86f99e0942c6a289fc2f940b223e5694a57739055a8420c92c63ad5a751ae9f4ac763a63b7f1c307bedd5f78fc1cd68affefcc1712806b557fff360744038b02efed4875c11dc434850e0bee9547bae835f7cfd8b5d7f43a3f0d7df409fb2afaf43a25e74d346bad477d14169b18b428ad065fe9522dde43a5bbc19b1e78cb153b97a8e8dc2e180f92a42ea6c3e067717e79af62251d3a69ab0ff6c9e3ac09daadf43fa34fafa4d24c2d05fb5975aa7daab3fe27a487b55eb3e9bb32692eb5b205c7fdac8db7d164359df716afdd6220085b2fd6879642bbfa6cb932b93c0f13f8701fba32e94aca1c6eea3f9ebfbc7bf5ccd50bb2010f3d5458ee6a7587e91d9f665880b5b3ed3c7dc36bac12c2f51f07548d415c30b996a38b05cbb8734e85b26d83b1f4876d8bfde07921dfef67d5c9d8f8a8325184113633b1f56bad0f7b8440e4d0c8c41d281993f165adafbf6e86f51c0fd2c7d6a18247352f609ec3f9fa55d647ca1013b684caca27f9309dfd6419202cb2e4707d3de16050cff83aba6c209218c085b20ac075729b2144659a2e788d50c321d3056a4c80aa6d00321787a90cab907362dde8c276e80b8d7bdfdea68bbdbdb9fcb90060eb95b59eb25b6704bcae8044465a52872472625a0f68ae476f7e720aa71a27ce73eefcbe2d792bd947524aab7fbbe56dbf540d7bc05101589e29322727fb437c05f479ce8b0b7ca0dd9e065f931a8bd51965d048a114ab97d386455142e18b3d1e32771f8af8ffcc1a4bf31289348230eff68347a12f745a23c7a38eae28b92d193b627ed585193498f474fda9ef4b7667595f5e417ffb56059d470cc8f99f497c47d1130e93f5366694ffe0af0e75d425e9a48f2ca24920e7e4f3d00772ea4f31b9526b8861b626e826bc07f43cca4574102fe3cccb512ae75da9348c0dd726edded91bacf86489449ff7d2275df9eca73a80a531d686334e262a647d0d15f6c7447a36dfbd1b65d2ac0a4ff5cc77388720ada8030636f53570ab0e3b427df7594f489f4f27d056d6c2fffee901e937efb7b1f73f4459b21fdd66d2e9ef4518b00e95d5cccbd702fb4275d745e7bf431d7819871b7a33de944da93f123a4e63a9086fc8b08fe5aa51344946126fdc5b218351992cc9c23bdc67d9db57722fddbc3f48b776e7ba8911ea69d880be913cca5ab922ef2efe8e5371018bb0e0b2c984c18a7a08bfceae2257e59eab88bfda3e6a2b3c1cb38df51e67d223d894422919e8328d7812ef2494f8a21fd9531b694731b3de662cee48fb84ed29efc9195d7933c0948facf974879fba4cea6242aa5939d0c01c65d0da4c73f92a4c724eec6087776c4c12cbbcd1c66533d3c57d7e9313b9fb1e36a3590917421d476659f10616c1995706b90409c6574efe4c7517c37411ad663126e86329d634b8b0669e0689b1d47a75d191bca0d768c4410aac2c72f0c05f883ab8769408efbee6fb31af2457ad9fd62dcc6797b539b9172f6669cb767b1eba2dde740727b758576387fa51ce5123778dcb87123422b514876743e907c45fa67884ab0010f68fafb070e1d0e7389218cc4c88ea63b1c64bc809412626b51d4be95d259bc7329256c913ff16fb09a49e9000b2515c3300cc32e2edd8744fda45b2c685969036d408b311c9f6b7dece7df4c9399138031d7df58e4faca15b937cbe2e9c6783527c309866199c52c8661d85f8b59ac5e4ca85dfa47ba5c2cbb1986610fd3d9c55c50a4e6c3b5c3a5835d7209b155ece0c216e0071d629411c935611d2fb91fbee4f89dc527eef51b2d16b831eb19324a01e3d070fcccd81b8e1832bc71218dbddd780143f72dca282e11d825b60abbc42eb1555c422e2157cd25e412c155133b06517385a0b5e8337a6619e30f2a593cc950890c77b2d0c9376a38688edf9c0c2778ae20f798993e8134ba9b3eb123c0df4633379a3ec51b33c78f3fee2fffcb70369a1804d322498b6891cb0e4a26d82ae02fcbfae42581832496dc0bdbc32e8b5db6b978efbdf1c61b6fccb218b3786f37c39322fbce3e07b8fee7c1ee8e306b82e5d7bf90c09ff7f13d89b2d6629be95fdbb623c4482ded5d2fd046f6f46fc623b60c90e9bbf680feecafcff4675dcdeebddcccb5f2881d883976182703675d6509b56ba173090ded41a07cfd25674366cafa61a4e4a08c96e57b88ab04a3f855c8a08626a60019fe17e0e98550c2bcd9e992092c8864ba592c9bd483bf2dc36f850cb717212004b164b803049e3c454d863b44e849c97007082d558e9255fe0c5749d4206baadc4264275dcaebd2a59cfe73d659679da52844c621f3c8cd24929b883c6fdaeb160b2c14adb0428f0c193f2c2caa95151d1595a11831724ca6201830582f5e0459b970a12a957e52525a28283d24d20dc639a351d0b6e1689a4e96adee1d823660c61ee6191b16b401f3f5306f43e0cfeaf8734decca32b12c2a447fda6b0a944ba6773b27a63fee348832c18ab027d810d60423c286b02649e0ef0ec18fb6be1b1424747f80220c58939b036d9874746c4ecb23b9adc5d8f4de4ba44974daeb6f31657f539eb3c392f08898122810b5a0d01a72c29c42d29f643417507705b5e7c43dd77ab1dabb7ceecd6e184d91e5cb01333301cb975f69b2ff6de5a629b24f6e72669309a1df0297430b4f80395b784880169ed2f92db4d0420b2fb9d9827b0b2db86743329bf632211609fcd1564ea6ad3e7d9745d4a78f1ec9fdf2863229fab01e9f211963d2278cd5a7ef0ef9441884f4a907da803f9e5b67c50acaad211974f9604732a6b24fae9e9bef0eedfce4641a19ee4c5194e76cb5f864eebf3bd4f2274abdb7df03f8cf2480ff70005a7f2f9b246097d7d13dddf1d32fc000f86b5bd2e56bb4e7ff5f3519972e068fc3a596440da0fb4c02e85a5d005ab9bf8593e104d3b7dfd29203b66476e586771d03a50b8c0400f7c155c77d574deee7b81e9e9ffb6c13cb240bc96e3313a4499f22518699056e264893d61443f9bb433b5304a1e27d32849bfcd92128695464925b447d8a4ec830afc0cd04212aea229e3ec526649865703341787a648f4f9f221332cc2cdc4c109f1fff39d2a7d8ca30af7033418ea8a62a499fe21232cc2adc4c90243a5447a84f510919e618dc4c10a1a13a44449f621232cc266e260811393607a84fb14986190637130428e80a62d2a788840cf30b6e26081316c60aa2a44ff108196617dc4c1025415637c8ea489fa21619e6123763734495a97cfa148732cc29dc8c8dcf8ff6d3a44fd1081966146ec6a6496b6bf104488a28a288228e1c3972e4c89123478e1c3972a488228a28e2060b9b8cf3cdbabb1e6eaf2218b6a7434aef0efa5cff2b80ec28f786a125bae0ffcd6ed8d227fab33fe6e624f4688b53da929bbb628065ce470ee678448b392fc0d1a62927c3099e4fbf7bf69cb355d3c89d7fa1500d1310f6c161624b98e56bb93a38d265e2d34d4997ce9ec9b4719167f526e993567b6137d3b61126a1acf22db97801c31443658545c60a2c3cd765d97fbe2dd90694e7b7f8b437bfd3645a2da256006e0032cac97c53d6ae6ea502feb2562b236a54fdf9770019e53c93b82f6b65445cd692383795b55aadb8a202feb016d6c2885ad086cc1325aee26adbb62dc66fdbb66ddc6fdbb66d307edbb66d63f96ddbb62dfb6ddbb64de5b76ddbb66ddbb6cdf4dbb66d9bffb66ddbf6e2b76ddbb66ddbb68f495cfcb66ddbb66ddb564af98dfeb66ddbb66d1afe6d236d5fd264b66d658518cf828c182e8c70cfc20a3256626c294660acc480b1a11861598901632319c962c0d8326c4425068c2d1b1981b16577336282b1655733e25b763d33f262cbae5f2331bb1e31232eb2ebf132925d2fa55cd9bd7465873ae5b65ec315a8bd799b34a2d848c3b8a64fda4f9b9c5d94213779aea00d8903a75192c5ca61a95ebc7cf9a451d24ef9b2a84f2bbc7cf9d3287719e472c8a54f9f4a2f5f266994bb54e292c725932c5faafa14e3e5cb54a3dcde609c7c4279f9dd84a8f5a4256b86fa04a3a751339562a57e523c7dba2fbf8968d4b447721225597ee3f4c945a3a6b5c1f2e3933e01356a5aa1dc6ad2224a79f951a751d4ae704fa6964826e24896f425f6261b1c6972a3284bbacc37097d32348ab66ce8530f3cea713dae917a31b1e0d297a16aea5ba44abacc1ed9cb178026235759b6242ac32b9f9228acd54ab552ad549e188ba562a95813c31c73ccbd255198b5de4a49d4d56aa55aa9d675cd6b5e73b224eabae635af395b12755df39ad7b4ad56aa956aa5541265592c154bc552b124caaa542c154bc5cad3a6a4cb7c6b53f36b4aa26a4bbaccb716e3562acf7fc1451e954455968c9fb3aa5855a562f9cf84ed7c395a216bc96059e93e93a9fb30ee02b0955aa617ad52ab458bc132bd60955800c85030d58b12a642c154f3bb0b034bbd286129142c85a5f27c0ebbad124aebb6642bcfffcb05ab84c2ba2c399f051b55a64b65e7af5053ae14cabd52f24acd974169abd59af98b3cac186462759695e7afe460cf9f5c59d5b52a6955d4aaf06885e8499e44eda56e4ada14b5a9cb55e836843bd79644612ddb226d314aedcd0da85de66f4279c274654914d6b2b8b2f206c403079adc1dd69a4158cb84b530d6caf34d5a5cb537ff2a82fd31cca74fd8fcac2521bc1ea6b3ce240e66b9ead3b7b164cfec2c79286762613f7f03ead3fdf96d2e378523e79b4c18e3e469b1e9626ec455e8f56f5c8f986fb0b95db8336585e3733652d90267dff7592a4cc01ff6d75f4fbb1eee4300ba5591e77f2f99ba64fa1c446d2c4a23849700b26b24c0dce86b9c8d903c9f729187a54d37ae567165a170537366ad3ce9160544d99f1b15797ee46994ed6a079b499eacf6e6f7f06c4380e54fac8a61838a524a29a594524a29a536a0f429a594524a29a594524a99e0a6f65c47ee8f52daf092e1c796a13d6b313699decbd146ef0ee506587ecb90d90ff2d488e1e5056fc67f2ca51ceda11881539e04fab789258a4f32ac1192e1a908b6d92b8a62d6df296823663e58130c9169d72366235fcb8c79b5c4c89594eb95ebc76ee5fa16e8c119f0e45fff059eecd7a87d7bb1b5eb997495d8a7daa34f9dda10e0da15917f41148cfde1700cbfa1ff9172e7744ad617da853e8c44754abad03799308c91656ce993fd0a6d263519ebb27b21d5b7fed65311861fa08dfaf41b0878ca9e7e0b0151dad3118caf5315bad8cf38093d6bff72f631ce7eed5c6bb00e497d153aa5e5643891f269ad37feea5cb666b6e4c22b8630ccf6b6b438296bcffe37a04910431b0db35be7b2bb645780cdc7cc68796f17efee9632116ab3237d78be3f76ec514af944500dd10aa0a6699aa6699aa6699ae622e51f638c354dd3344dd3344dd3344dd3344dd3344dd3344dd334adf49af6a55249d3fedeac3519cdb314eeebbcbde310d12cd43e8573d17d316f9f524a29a57cd44a2958d3344dd3344d4b49d1344dd3344dd31e6a9aa6695f35194dd35048afa19034ad6a339af6303d1f73fe236edaf6b41f7150bbe11d6c0f4672306b9ccce436f9020558e8c09714420a299554aa2801f747f9f4bb5bfee4788c24572330dfe77b9e1dc88e8023507b30c2ee39b7165c6849105fc6b7a227b764b863051179488619ea7c963f3599197daa5fbb18f451089e4f236bc66a6d700d37c49c99a876a3338434a64a16f8b3de3c6013cb67d97db86b987f43cc157bfbf2bd17a08dab06ec2b02b21cc54cb508d4a79d515a1fa6aff91d8879f6bc50ce95fece315725388ff5c93106e812219c027f70f53954601ad0279f9a0cb576769c8c8c2db0ff0b95e1c47d46b91afac9f4e5b72af7dfe883d8d334402d5e149d39a8842c99aa82d4291a0106800002d315000030100c064422814096c7a922fa0114800c799a42725c1d49a3590ec528ca1963102186004080000000111a9a51003875e8b5b2974b7b89aad7caa94fe08db58213cb46cfc7ded1e1636de8b9d857f45c6c1d3798da8bd15eae562f8561dc1ac203a5ac6cd52632a0caa91f725cbe89c4ec7744e94b9181b89dcf3121fcacdc56d09830fc4f190fcbaddc8ed2f9e9b4cd009e49ea545ab955ff0fb91889b37c9241d725cac10d0c4be9354438779d041e52002c824a42718eb331150059d20175e5a70f22d18118d36670a4f035ab2056f5b1cf604e6d3aa16875fd2c2840868bf74419770abd730b7e70fcea5f6e217a44a4170d1b751ce76c3006be87d6d47eddf4528c88579a0ed4eed84265b24f89117a0c1a89d3c76360e6678813ae4e7caf3d3916889011f5a60a05df64607d21c83b29c31a5869529c9838e0685b0831df40c630a083d64e788afbde61f0713c18939e07f75c48c661fd3e749700579375511680b3b928c0c0bb7c15935a6b76a603c569739eb8072675ca71037782a6a873808c7a91afd7210ab6f7c25d7557d2d28600fa6fa2007703eee346ec0abffcc68191012032e897ef06898a680c74f545dca4cd1595baddfd2042627f3912e5f5fe4f1067f064b1077acb2da7dd3165e100fb2e3d9ea88faa11a038f4f017dda67eee82f807d3487367a6c00723f8386e2a8bae4544deb21fcce77169068f9771f97712e12d166dc38cc76a97488fa15026d2404f8f620dd2e467ee147c58444e66279648de65e55d2cbec7daf758793feb77b35cefd52cac9598215747a64c58790feb77b2fc3eebde63f51dcec2f4dd6b3856480d4170e1ef39d0c9433c1c0b19ae3122560ce047a19bdf69dcb1f252045c2699f83d8f151a38447173cd2575295b63283a4c63d7ac857a1ca08aae320191584f190f8a962935cadc2ce6638f80c2abf8f9e6d87197b125549d05f288fdb8c285ac325592b3cecf12f81182871ce3d0d0eab2386ae48a5c21b37c2c5ffb1ee6b489802ecd60984d5f4092d91079aa256fccbe57215c43d6f75a142430cf47892036302c84a8b2ec14a48a383b180c62a9986c0b528d1813004e441420f785a7468894991715c7efe9d36b5161dc14821a2164307c882822b5e13c8bc8293ab98c5ba75bb88660f50a8588463e654e9111af822ce1bfd8a28a04709c53a4c092f339a576032462b917b6349668ffb8fdbf872ce18c2ec77db9b9dc6328e17a2be74eb63961507c9933e8d75949ddabf2245c6d98e9bec92168ead225edcd3888f16ab99075f6715fbf937053e492bcb56152fb9653d0a9a34abcaf734ad87ab0d0bfcc3168ebd624e5e141f2abdcd12bbd21a8e554ab788fcc0f05ba6c3df8bcafbee03e893c90db80362520e8310190e0b015de98a2a1f17e6f54becefa4e4ce96e79b24b4bbb4cc4952b773ed36a90a458610d60969752135a86fea6947aff89af25892a273e0def14ee419cb9a9ab236d50d93b42523040b69a41f4460c8e88d80d648207934f9e23e2fe0a7fa6b2f02e42ca19a076adaa0d79261dbc86068bb036797921c58bb89599aa1d4039d930a421f6d9a4bc2021330c61c0fb0c2aed42e4bb680d5dcc0aea3e211d929941b099517f32a07271697d76fb07b72c838acb29810f22cd2ab3045c7d496640d1a3b0586741b75905d5a3b7496f1751ef22404d952e02f72cc14fc1e2d8d16807e78221d56d1f91254820e2a90c1213030529c298b76cace6150820c54081c0d0015a8774374151af1b8446f016627082b249b220dce6319f4c896a93fc0acdea7c438cd1cd47ba4a8486847517948422a8870971f2031402812d2042b019cda08d58f137c44ec21de9d8b48fd6d60409efd82c9a2a043202a369264f567ae2d44d0874798e7ae903408f30c5b3492da78ce00b0eae68b0bcc67da377889dd128c625547f60ecab455a24c30044afbc0ce50094c085038ab63a3d0677b5c52e32e392c635346fa5c712e4afbafb4cc1ade4a0141892d9650bebc2428d2a4773b1d7713797e866ac4a353eaa9c17fd54cf2d7f61d8cc85e3c00116972d7829844138073b7c39873958470be472622a9d9b26427d1ac89ced710ad5a2b495eca08be572b7c7ed2445a6f2fabcde2a92e27fc1f9a6219e8a28537af6ef23407876a5bbb93449e833e8f63e2ca4edb565591c0c1e0a0e8505a4b981648510e8eb9f4e471b58c089a84adf2ebc34108697747de3e696dcf7268d1ef5852164884312193af5fc413ddba42bb7d2a59054ec50122470260e703645a4f366ecef40ab6087ccc12a22863c9310824d715523ae57766572c5f5758475336724b9496127301a4515e01c8390b3c50480a048db635b21d6085dae4baaa93a762a511202681128183fea6b1634e589cf3c32a04f22e6da3d88685422cef206d70cf631df2b1d7a926992eb1d6c0436a38a5eb84f6005733584f9c380bf6476e4dc390ab45275c1847452932742c5ba4a08f58676201f04033ad695737d935a1093b012ab1745f5cba4037def88e52ba82b0ab15901bd9ad40ebd2caf64c09d275e953aaa35164e31cdca18cd29fdac35be5246a843b0b837296a95d2b10e04e51ea4bc6cec1657f05e4064f5d14b014b28a89fa5d478f16aebac00ea736b108d08e6941a5f5d3800dd0ab79e3c3277472170012963ce51115e8c63f4993e6e6dc90c9625735a9b4ff0a5f182a2e36b4c9ca42bbba0b5ea7ae2cf3757f53c8ccdd7b1d473aeed93f73a825c794d3bb1a7848a50ef38e2421bb1e7a9c117580e7ce16b0f1a2c0c680fc088456395faa3acb399f9ac3ac15521602a8373d9d820e903536acf2c31cd1121471d35494fce596cbba005becdace5aeec793f2b0b3c7aac556f89505c2b44986ae78eb41b3b8558c8901a44916fd3a9859d25c67648032abffb15379a3bbc5adab3804e0c90d004c4e54d07b90cdabc8253b95c769254f86054d01160b141316ff0709ece641ff18905c70d7d21640b12bc2032666cc588cab191c8bc37a4df83a2f8d734c2cc2ee51d1df8544a08f72028e1e6f93560c90f69c0a08c7db49266a5f431f6722510da77125141fd9b9a41ff7851173e8c7ec3766d7a8f203fa0bed45ef4e14f39c7c3ad93c71ec5a666376058fafb52a62d3a5738f2b84b0ed525b5137752430f18cd2695299300e1dc90c6cc5b6fb9a556ad6ce1859d1d44bddb6c0b0fbd4b217da8c000db9e6f9b65c7690346f66cc10221e4083758b00cbbcc915710bc0e1a2fe3984717279fd2dbf85900cdc6ac06ac8057fdca00ac44ef86a2bd5bfe2f53a251f7b6ba0bbe27a6c55fabbc306516f595fb754015907f37dbbbd28ade57f71c6be54a26a59b360b66adda8490e3a8af70f06b71a914c1cc6ec43b3d838bb40995f41ec44d42876fc42bed1e13f9df11f786b6f88f7e870b3ae356729ea7aa6c656c9f8e498a82b62d05567db27e5a20b39e740a0e55a019e793cab698be2dcf72e7cc105c0b22d907033df67a46c46981fc0ccba3d6cb7d16ce470b24d96b083c6d12ec72504ea205b22d825fbc082a5e4c14f277501f6ed91467c1b2d4662d91ffdcc82ebb2b994ae061f04c0c5e335381369822ce6070b265cda044ad1aa425a6d8d2559135593cbb2acf1a0d4284688e6293c34135fb0a12539b8d23d111cf0eefc7840eb8f5d47deb8bf7fb00f82958345fd89e203f907420b5924b92a21fd7ea7f4b8971b7bd853bf10e1dda2d06c4ff979617c17431c84a072391221de90b82563ae28557562148a2544370100e0f17635dd980b36f6e7f64c7f9770328488afe0e4f297fd3bd3aaa93a88039913c1e375ed6749d6ef3a5e72f1ebf2f16130e9160ed60265830f2b2cbde5b02b6ce628ca0cb262785205c2f00a242f3b517ef9caba4ac75673d10d6d94baa640c9fc69d6975d4f1c5efdc7b37afbff91bedbe1d6da5c49a1d5713e252a65ff867847b02bf0d80b1b495e783cf7a3ae0e0a1e736e0493602663ae257ed24340f03a5854b1be4a3c2033a9c891a56f1a3e4cf1ad5e3f4e7335f1732cc1ad20307208538bcb8f5e223488f4d20030065ca79bdb2f8db7bd6c0d523c282f34ed61bc14268d3cd74a0487836560a4b70d34f8c03ee9a5d7c656ec76dace14e6bb3a5f10830863cda5cf6bc84df634b0a544a1ab92d86a577ee4f1ee7ac7b2dfe4bcb2f99731e595a420ceeb66e7f1c21709610af928b2c8ed957d9d3e82b8867fb98cd985d5a7c4d0a6b688897c6397aa5f3d2a348836eb12211d77d755f43fb2cca819d5983d03d83fd6d5ad54c3724fc0fb896ad3c48e0d6088457d837a3d10d50b3f243849bc807575da6747e8b8d0e53f7b51904fe79e364efce4336a8e23317bb07d94f4e651419db5e8db2c3e46c6a698cd9af97430756abc43d0d55e734015fd2c8717df232db19821010019cba4a1f2c4d2d7b72c5c05bc5482b0f427cccc902deb475d1605be639ff9c629cae0afdfa8d4cfedbd4d2fd7e076d4549ea2ff67f64d617a8232e36d6a9bfca18ccc8fa0a7b05a0bada8931cebd16361cbcd626131df56c02ff6c23277b2140cc2981da1d7eb87ac0a9693e8de4f414cce08b88d4af5428d649df1ab71543a1cd5c58bc4a0c0e1e15c6ae0eb49676301ca965c872a5f49051e2170a71008aef87a977bce10697e35ba55397b6bedff7c2bbf1756d5e72f82dd79ac96651fc2e20c02ce8bc36fd7da6853141755a88469d9de9f9abc0a66b237722cb1af929d756b1c91d19aa19efd49df1b590415548aaee022257651fbd080c21d59b9943b57979d6c471832da50d708463882495c19ef7160f8272ec8f9f32f9e9a55c08f9ce88d5f00e923b3d945b7d2de91f042620c11a14e16861a50c733111b2be5bd67425a7efe46bdf8751ea16a0bbab0604f73c0206375c00549981c74b46de4d23a87ca16925ae9beccd84c35d60721e5490949d2c1e3c845c8616dbe029290bdabc13be3ec12257f21b7f18ab4d52ed69b402259db5b02bb1ac6fd982c5fc25f7a724a5f16d52f4438d5f004c573a6472146e77ee02ca3b129db922dcd0f458bcb91d9c9d6920ed79bce2dee71ae997381c6d2de70e5c9bf727c402d236c8fa61b4d92350017fb09e11d6e92086ced57cd7aebb6f492845c60b8a32734d65e140643511a754c8c1b15fa1a80f429b5081546cdbed54fdec2c5aafed643b744b0998dd87f8519b2f7b10ae3573100454fbadc8a4fbb7ed95c28340e01e60147a9719a65477878ca1241deee04f77916a83b52370305ce4b3876290268211b57a01a005595deaaeda07e2193c9beda4c280adccd224a407dd0211d253e8001a973fa4f6228d9fc0559d4231dc8af50ef01ed4b273c04b374f0b0fc7923684f740534b9735b06558039db9b83d7b7ce463a2826b3a79c98412fa8e000940f5f95351c01de81ab25a263378ee93271c350b90a0bf5d52db93ba78e0e21c64f5780a052e01485021c115f4abf86702b6cb15a1d0213da3b2bcfb019776ab1b01eb32d3837002c873e28d10e26ccaaac26369899f0a80c21da782fa452c12203c1af3a63d9f3100bad2949fd361c69ea5784c351b63029cd0f5f2369d49710719b9e2ec0206efd580020b63368000c093cd4e1307426d69262d84ca2e5e2a20b4d9009f9a695f3fe76125cda0b2a61d8b7fdd8083a98443f3e63272fa4a4b9a953cfdb7717cdc5713f4f172837b79b8b479087550222a05b255c856c94ef1b1a05ca62578b9cf7f083e8ec8fb9a3696228f2da4f624dbc55449675e7cdb4c43cc6f4ec8515d14a44a58a3ab03b87a04ede05de15abb1cfb9d409a130fb0ca321dd67954a8f89e08eb3efe418552f9bbb50147fdfd76efcff9e10b069298747bc1bfcd74462b69a3007ae92489cb6fc97482e8332a37e0631ea007d2f958b4865a6b66438c834aec9bede07de13cdcb1a14e72f67c6a3e497ff6f08d2b8e493412edd15083e6dbde28cb7bc86acc8ffd6700f948b7cef31bdcab0045bcf6f38d0ab826c0d906ce7acd450a69af131d064afbc6ef56d4e64d99f861ecb946492a57ba93a75688b3c020af5d81a2490976197831221843e416998235e2a723b327db8534bc659ffda1c3c7b786da4e25406891bf905c317f6cb6a47f06564b9beaa1b1b474203f54d7938b96dd67b641484444f13981d1cf003e890e2a4028c2f5b1f34f5307c064de18020baa5fdacc5aac3a4ac36e3d4a468b725c79443d9f94b777574523af3f0f9fc8e3719863cec627044f95a401c858bd9187d4499b79930c0b684e8c8d18a043b43a6be97719de5d4f81f314984e74eb78872d0b4a9cd03de5aa77faadde10111f43873afc026d31ab54aa0e20beb16c28c91bdac953134f94878ed737b00799816da71f05130ce285e9f258cfe58ab05d5c9d91126954244deb3c5d0ae3c8bc61057afd97fca7e4fd08b0c407577215e1d88e3ea5accae7933bf100fd711a9e37879cd8ce180583aab93f26e10af65fcf1d8cdb716682138aca457d78c4be525a891702dfb0113b95476963d9ea1445e859f5e02e0b5b3d3dbba0498176dd401755d40b0156017914239d6af6c7d05e4b2250bfb7fef593b9b8d69179c0ad3f7111ec0dea9bece9f2148862166ce702f9334118f7c4583d34fee60e26c08f1f01aed7dc21d56b74dbe906afcd81bbaf08ee00221a93fe23df212a018d18d78c2582ed376d5099e4b7a80824563ca18b723d520288dd7470c9222a8535530cdc7294e6818344b950086ef8c3a7208ebc53dd88c04d7bd8d9b47c0c6923b95a5775a59f55fcfcd39d9fe3ec2a30a0e3a64e610c935f2aa03a051f6a51b2db6b32cfa74ba2d48c002774ab977c6928fc930388094a96a6b10092149e95b6672ff3d9396331e9d6cf6f91809422f2be931a31eb13172a60dd2409aa4c6cc9786bc8bbf33d38892907ad4d69305b957087629e7e811a589132ed99220a2c912cdab8dc58a61e93e4400bb43e062625734f44007293cefcd87133d2219c944d295b888a646a19d27a1a8fe6b0fe98fa2c28e04060c3c2a460b0d7d0e4cca8b56eefb7841b4dc57c828c52d827c29f710ec0f0b00af78bc5c9db54f0deaf2dafbed2750e5433f36348feb8cadb1730613e1b7c0eca577e39b4869c7fc00e141f3acd97f12ff4e1765ff8966fbc04ac2d33a34d994057b17005ef1d9fc6e51637e623feef253c37a1112bcf105653e766e14660168b70356e2ccca2b10b644ce66771b4ea09eec5f1f96f09a20d08bcb4cd27abd7b442a933a0c2c2177621e6dc1f3c52552d5aa54d8add2b2902618571e023779df1d22ffa81026c9e6c70eb6298ae13703f81339d4e188ae2e71a85e7577aea2ab8be3f8fecbcb74e1425ca8cfce472d9a465bcacbe9ce2604a048a831af1740fa9dc7129cea8704b5a7f10ada12b9d9214ab0459a7e1caad30611644c16ed9a901c81682f1ebb92caa09f56bc75b1233b05cb0628ce97645bbc82587f161724816bb0940c19d83d497a8ff0b77921343e430034f07c2b223b60777a5d86bbe82924d5803afecebdb451e2307499990772f37f099d4e977a2324d0f04eab584c051fd8d07d2f04c9ce55218529a6f6bf04a187c2b8fa984217d6fdb7a56dea41919613ce43d7afd499c78349772fc00174be9ec7bbdcde6dd27d57a218a719dedfc892cc5745742e20de7a8d7397c6cc13c739cd6b11e360956178329527d9c70379b81056eb85180f5e8afc7922c70c929d55b051010732309a808325cf2a3b696ad3eced396cd5dc8a9764be5db58e71c0408c3d492aa31447e0e76eaf1bc2b49b0e1e080a89074d6ab915898c03cd65f6ab2a78c38b30fcae9ad15ed27a070716e5c13404d92a41c6cf956e42c8d20c39e30b221da15259a6081a28b9faa71dbfbf1803bef12c4256fae6a5c3c3f28520b34887da1e1648e8a6fa0cb54273760c09d8a2cc234966f760c1ecf002a95e7f290b5995ed99802f3a6a2a6bf64cf546b876eb191693a0bacea08344435ce13d516b9002386080b239230e385ffe36c7afe470086d92418618205b6681f65e71e61a76c4f83b289ee98656f5fc903d914dd686c16242d49498fd679a803fc88e0cb4ed0a8e54f86a9d9b25c1be26f4d6cf15ea8b253c5d9cf6b0e3b75c437e3943b1cc484ab72d37763cd724aa7ab84a3403d6e80c47d87b9715df80a488b68588c6ae01c0f9ba5578e441c192914eb6c1989a2c14699ce0de770142be3d5b1eb6e9399b1ba35782250162fb7abc3531e850104d9c94fef3253cf35b364813ab248b090b1b62220af5b18e3fc945f89cd482bc1e133b18fc4aed842c0a69489c919320cd70949d2d1b5e1e7f901fe65303e4bc7aa7fce219a8ec318931132a0059b1c6db649a5367bfa3a1a42c21d5064b5e18630de7f56b331783d74fe774252a6ed1daa18339563e114e8235e044b01b778072d3ff1b0773cdf18c122d39ffd515d572e998581935b320a0f059a89c57cac9226311cf949c8daf9825e58b941abdae3e28dfc958ded8d786769e64047971582d73fec64f6d31e294eccddabd3eac505deebac6de650919c67bfeea4f73f4a255722bcb529c795648413ffeac1f676850a70e07b2f4a230f729775ca7b6aeaf7686903f2886ab9f79b21c87d581b2416b1054e43d34c2e46c992a221ac71d3938343f6f65b316bd14bd2258cd14a7abdb01fadb6cf647a1dda352e13274a28f90c9c58c8102514b0bbdf8bd7abe6cd328a1f0f1f4eff2f06d87f79db7e939963e3bad19b6cda314ebb833264f2eed3443429ccd19854ae11849aacd1e94d3f853bea4fdc26a5ce67db4d3a961555071fe67acb462428f2492448d0923b47a6e860b06338cadd10373754e0de18bb016f33dd8bd788b54a1f1b6de8fb82db350680a954234a0d51bb8817ad28ea53d294b444f3e44d6e9d65a1153949225c5918505d3e3c427368631383243ddeb958cd87f679c280ab747c51359951685cc6571dd35dacb09ec46ab5cfd02a0d291df8e92f9d48b8039f769331fb8bab898766374218a458e329ac5181e5aaab9ea478064393e297bc48da25208f1735a4544ad31bb6507f98c7aae00106575be7865747d0f3ce8ed9a95cb27db298f66c7e0721a9566beb48026a90b4a4588e83bb50839c62bf88f5bba0329b7b6fc30b70a0159f4fd585f170e07ba4cbeaee74f2b8bcb531339bed6bcab3e599b955b907fcf2e7e1dabc556e0109f5d34c6fdb39ed956eabe29a1253817764fcbbf33d8324381a33552820a36c4ae909415006978089b999258f6260656db2a468bd631b67a815a457993ce7e158faa018a20d18f42db5512b4304e3c39b7c9dbc3ba816373b459a3062b5d51ae36fb10625041738aed873d4aa6a506162aa0be670e15721552b191f9194c26554316cd9512386addae77899839a1049674605877f38a68d40eec3cb36851aa4e4e6bb8308d316bed512f4d8136f345951e6bb91fbd65f0761b2208b537d01c71c1145773360bd1033a3cd21aa3dad2bec46a4afe9eb15c552bc7f64b0d47fbce7f0f3fa161158b8ba145c9c2737f21eac133ff230c8324da9d3b59ee3ba336b1170fb4e2793aa022484dfa41b75bb4cabd0bb0de6b53ef3f895e9c305df2e64249f7ef04387e34a20c116716ebd3947e029b3bffaae6ce28fbba7f8544284fc7a472508237e8330072c103eb65c0b4ff678eec8b6b849b64ab6c349bf1258057384d25e72fab8111496c46a002bcb06c900ca1db34d8f6cf983f8b20fc0860362c8ee3ab7299ff79b529961a7ecb4c6907dd22b1ecfa4a5f84405c0f1981af07663f7aa8930747b00311c731127bb83a91e00fdf5c96b773df0cbaf1d724b8c7d163e0af701ad35e52a711c718cc318f2ac0c7299a7e98ce368b29306dfc113630de2d0049f0dbeb2c7d98dcc4984150e9f7b67508e868790fcd1416fe634d9f13845d6e0c12be044e8411984e0df836ed6f1ee237882b0fee166ef8c0ca43004011bc455c3b955485019a93904fc77a6ba91e852d079ad28f915758ee6b5b8216603b5fb3945add080041b86cd2848c1ce09131108ab9f7448d21922eff4899cceb00c1b760742a7b2a9f71a41908854908bb05eedf1995735ed7813e4d88929ec6b62e0de29377683a28a72799514c5035418506dafd33d9966515223a8a76aef1bac1128a9934d1949f7f23b57906fb000520539b0b00f1e8588f94f94d4c1f55c9a2d92316731ee2d087c0e833520c7342782b283f0f694f7b6097e75bf8c267600f5cb575ee2c435c007f98256c4f882c4229c2589c686ca58eb0a844c6323758b9fc35479c738d006efae84de0a2345c72ce01092c5268b721d3b1e45299cc41e6887f7374eadb26d610b62eca056f5310a23d7529f6302d1c031bb45830fd2e4a0b1f179d07a67c6a3f38b4281ee089565b4694172bcf9e3611a7b037c00ea4e91e0792b7ab539da0582e8bfe410df66f10f1383d6415a3f71b7fba45363b008529336f01a252777932928d39b60d7d5185c5c190049307fcc81821275865288bde7cd2dfef52dfb4726252d604554fd82a9fc0b4cdf641e8d0001b2164111b4b47ee322f0b51dc68d0aa2f010c5b4452d8bc014bd338e82d8c80ac3cd51d825b7974560786d9ebb2e0c21a74ed498ea64e4d9f8dfda4eefa38510b0d0a8e5355d158cadb292f5ea467fb4192076521645ca24aed9b30a70e7cec7edb954f66ec3de65671712479d398c386ba02b0bfb4e59984e856a6db6a649f62880e8ce3c09252cf8317a39fffd69977d5ed01b526fbfddfa7fc7eb886e35f6252652dab31a909fe8a303585521b1c7cf5ff4ac76597d301131ff67fefe15a63832e513b05010cfa352c734064d9d68b6e0cd26ccdb2e5a0e76143829f1999781bf4a736c3b7466814ae64e00ed7e3b8e121b1da0983ec4893b6fad39a5f0b459cfb379da3f364902969a163f50db1a90dca915020c1904ce9d8f78a34929109fd8cc126fe322bf005c5fe49fdf63dde5bb9378a8906063aeb8f79e9f9aa5d440faf3a63f34339ff4786274b9f5f40d1e223358f5c8531d424447c418020f419e0fffd08e1daf07c66008e6b2c097126ed6510388f43cda197b1192cf60c8873e269f4d0b17fec3ecdb19bd14f322e569341830bdc7d5d311b1741a276b4c6782e96946ac4caf4bc46915c132ed7d4e0b427420519e6b0f6554d9a484ae389465c69592a4b228af2913a594c1a13c876d94aa8690725d6ba75de15d5b052e24a00546afc26ae3872dd9e5ca2c8a412c1deb1ed35ace47559f865dbbe5dd5c0a839d0facdfef56e9aec2a9cefa92d9d52c1ff7ec336337facab46241f6ef8ae1702fb9942ecac0db2c291fe2e5a1eee708bc0821ae408476217841bfa82729adcc3f9a83598c200ec5c4ac9c0206113d3b244796d10a7ca019abed7c02e3a03331e0104d9defd934cb60206738108b642e0dcc8b36cfd656f78d08e25a1968fdf55b5dd6db78e7d345436263e65be2b28223afc79acb0968bab1a85c5ba68ed7a9800fd6bdbb8b3f602f82aa8fd98e6419e4c86290042f7a23c32b2832f0b2dc9f2005f66af0504169d331ec9d195a8206fc7c85e99146d845ec79cb279c5c8c0981e3f8bd76ed6b98ba01c4adce425336a888d4663b6508c09a6861b8012b368123e16b26966b8852a73d6ec26f9964ba10e0795cd50323e0b79ae83ad40958a21f0f552d07791c1157ff315c0c5e04617f3e1d7ed6b0025a1b5ffaa7fb35aa4bcc012179fdb6df006a89142c668e093fc98c95b0021e81fe2075794906769d43fa097e36a484f0c0244569d33dd308732090dd8cae7a158e17829caa29da62f12f1e1126d29720597112fb511e285169beda042542d507e282c46f49889cf89152b0a3c4bfe5147f1b2133c62d6b26c128ec3a5554bd9d0183182a01e715f9374c584e66204e7b965127c03f9ef284b5098b2b2a1ff866d4bf37f260b955cb868dfb653824f72b0a96256c877f50c8c019d37ec7a958443ecd02d239173cb1c9acc45a72f30d628eb5b8202a11776e2d9e8a4e95d6048410e3b8b6287f1e23c131c0229b7871dacb9e982884407e49ad09b1a3c1ef15b7bf2c96c1fe55773a0c2eb54b4e8ffa81cc416bc7fbe6429e329a0a470938e657f7181873397329fe5b4b5d06f0d14c6c3939209b325489c24a37181a53c1109cd1202c449650d2de506f74574a3ba1866628b86a726c12ebf6259d699ec749d0eede4bbf19f67deddd5802dba006aba138ad3c25cca227e871b69dc4eab5483159a32d3fe51485f5e6ff9bb660e62f67528974e01bf3ce3ab9894ad24627848a804c4eb54de8b965509a706394da0c885e188a198028134ef27879a413ceb8dc21591fe3e0664d595ff1bf34a360f407d1c695f44fd74d38799d124835ee8526a0e4765d68d368317efea2ec568b198029ab42a85bbbc5ac2adaa74a0c97d00b4796d534c4227a7cc71924a730a523e981545e401a938da0ffb5232407eddab0bd283caa4ddad0aebf6a917b910473eb9d14d163c69d1bc7c7986c9c945af4eea62a965c640148b4c8d30129c6ab85f39e2a326d84bb295ffb85bba4adf2db17024784cb5e6eb5ef7e3178b1544b2f7fd05bd366705258ab378630f7eda5f0a246c0467d2c4b5d278932fcd824c0703c6ccdd67701ce923217b71ae9bbcfd2447289690fac045a57f4b906a04d279b34783266295e9ecdbc3992dc14e248eb84bc80ba8f6ea19dd0db83188330fe52b1f082ad4e4c001658ae03ee0c09c927da102acb9f5b51230fc48c58f7ab85bb2b170039fc9ba55c3959cdc7af8698c6adad6bfd5d796380200b6cd946c9be325a8d611e2e890c8dd5a2c6f6c6648dbdbe5cd52d62f62bd7aebdbab0ad7ac095993192c5623bc5f751a10138c90dd7b57f0b298e1c70786a390b6c67f210d92c941bef6635acbcfe490287fa717dc259218dfc18856d98a450deb9e63425e8f001875f6c4c47a2c04398e20bbc58da12844e65e9414289cb61c202abe9eded57a89661c69c26b2ecbb5192f3c80849918a71ac9f2fde82c319565d632262f4fabaf88e60dca3bffcad93783bab1b03c84adb814f94c55fb7a4f82d49f2878053c84788465a8c0dd58be9b3fbf6b53f58f695a986eb9e33754adf2bc4920d3bf6fc76527b77e49576a4ae02d186c491f3c1e000e20d257a1c79b255b22e4f9b061e34ad2706d5e3e728161a0b822ae1a2323f30ab6698681f77854a39ebc8797a40b4a4d15e1eba63eb7d49432943b3cf33bd3a9c8f3347b1404ce52480b339ade2270802805f5bca80eb0ab8fc3b1e3bccc3c20038c148c7e0270ae73151d078936ffbf092522f10a98abb89487b79b1291b88722bb10f4bd2cd80d94fe75af0279483fc910e23defb27c636826b9aa191abd14c69e04aae3998b7ff95c728f41e1205212d001ea05611200f030a1de11e60ebefdb83521203f5af31f1418cfe4389d9590522856e52a58099c19fd65360a7a4e01ef631c9ef3b1197d1fd973009f55a41477605bc42f41928a3b8a1e2f885478eba85b6c0b4116a5659d4d47f0a22c0fd21d507ccd76132b1f4e3ec90722876f5edf4050650cf288d31ade7fbef0933e3a530006addc6d82bd76c17763871cb188836e55f90f953ce010e30538f011606f5ab1f0252901eb90d2180d5e7f9553ee551eb4cfe8ef5307071118c87e0aa3894a82d894051e2b5e10dece4a3bb69cceea908cd5b169d35efb67e8fe4d64fc20b216b31da4b8df9df529589868e3dc8d68d698d1a6ff214deb8a9fb35116e34dc1ef249ef47a1ef19475d48a16eff2d73c0966550712a5fbb20b6d23effe869965855d90ffb0bd84f445907377b245b821081491e28a6b9571d407c5f2f45d8583f155d94a6fa6a34342940428a85a739c3e07314fb34c4c660db8028f0c50c3686699adbaa7d251c1a536b44e9f9ae2b9f983ed65cb27cac4757f0095571ddec284e37cfb441d2be2c0f7a489efdeccd271fa10db6b9c1d31adbf65dc2769c3a159950fc67b751fe330877f10b91127bb1755563d352162695d7a1494724fde4e2ba5708f133cdd3b0866986f9e63425cd20048e2a8736a930c6f2ad0de4fd705d7cf97c9a02493a44ced2734b8352ca6846943f6fe5546b7287bcd5a8547916832c228368c476036040279437ac4cef2e56a6e990eb906b25f1ba3898e09644df5bd79363076c571ff98df33240fbc4f5e672511312c14a9d7edb861a5cb2756f235f9075031a6c417b2c092364a49091c331b519252bfbfc0e14cdfa21d7aff5bd69c99182583279f15abffdeb030ffb68ee2553bad4eec1aa6f4eb18e3a978503b438c0bb79d22bbb4101423fb30af8ccb0a14aa1a4c7b33ac3ccba055ec310defb2e20c5280510f66a9caaad541d6da318b477239fd679cbb80ebb4b551f0d02cbb7e414e089779bd47d9887763805105cd3076bd46c4e39a107b075ee98bf8807305510c771f1319bf1c77417c4b430379087fec2f872a21e333fd2278c33798bba846bf1984da88a94bd533f227c4ce1f6b089b51ed370f633240c17818a507b705ed7155badc722c2e35661910cc1bc616ab07e9ff2050ad5ea3b0508537617f83836ac15cba8156de15b0a6b55aa19b964d3be159912263dab3e8f9d4f16473c5c4900f5e8a73a332785a9edef217b3196df8a05b75e6615edfb905d0ce3b7d2c02def5945fb3d0453bad3442d0b0547fd9fada8d7648866124aabbe6e07fe9838d1e97b3b7b268048bc0a3ec24c747ab58dca2c82952aef6d809f512716f2deee46a6cd55d1688b4b5b018c4eb3b63b7fc422deafaaa910a6f405c7a447fc952b3806e7f1d24b4126565660a09be3600d85619b1f61011d1493c06d6d2e012507f62121b2481f4145fe3f88422445a36cbe2e698301508c56e265d0276c4a6a7f7f456bc89b9bd04565a8704e6bbe1069c19c35426c76d505a9bb800a09bbb9491bb255c02e0050ce78f3e855860c1686c1dbe1e66f2de55dcd3c49556c827a245888ac97c531d76c180fb9a6868263e2c013f3e347ad8ff80a8c10b5bf78d01436cb9356a07ad258776de09c67fa57297fcec20d71951e5f331b93d4a56327ac350a80cb599b7fc579eaf17622dbb1589e35e5b2b1851697f59228b256861e9bfb41bb5ad963b0c5e58e150afddc476ec2e81fcef15dc6d47d86f4316a6f1e7123cecf542d3ccd082e4c4e6d2b212450e493975ddb89a29cd96693e5322da19d218c66cd54ba9ab2d28125d21cc644b78c05458231e2354cda7b9b48264a23656725f8cafcb2c3fca34f99d9221d25466fccdab1d14f311d2b4954b9db7fd42f921dd789b44a23b98bc24d950f15fe5105fb2ec2f098e9fb13804047249056cef2776ca7464d94ca4d43f11df3d35164c2282e0d8b2ff1a76cc2bcb5c59f0354ae280c1f7210ad1517efba2ec5719534156c9d0b0224f04833db4710049202bcd2896da80103dc2153c15e719644263e0794d89ff72c2b3b82a4b014fa4026d6e1ba260e37977620c74ffc864c319af1c04682b3d1219e80ae8d6c37b122cc6e6986e2bb75cfa0fd674e97b2dd8ab9600f50eb46e41f131d774b8de03101f7c8ea3ef7e652773df37299701c23804a5419ac188837415c0854ed3f0d5b9f50a710d7f0e55563128dbf9f3291591195a938c77bd0f91c9a311845e3169ea8876936e811b7fa672c510a29a3e04a24be0b09f823513fa48cd091062ee43ba6ab004a3dcc89cdab8fe22efbafc7bbd6b9f929b6992f246bbe9b91970c06495730863ec176a45b0bb0eb3f86fb11cc37b75d109e9f8c9d87be3a156ace227c711961e4d8a9b22bd2894652c6d1d7e4ef53c798b2f062521fcdb1e128f46f5d097ef1037e3890a148fd78de95105b54505729425158e4cc2525ada19f140035abddfb7cfe21731e35b6f8a13ecc215521d33e7b8c08f6c805722c046eee62f4a3f6958ea7c1691185ab6ea1a4600919ac2f08aadbe2796054353124027a8b5d899aa25168c8d7a1a26b3025332f13c04f5a8925b74278b337fdc852b4a8f0c22783d8745c12a3552693098ddaaf20e8b1a18b58159493914a5396828d9b061a59b004c6f01a9c7e5edcf56b7a2be8ce1da1e524a340cf789c2c27c80211b9b446d5c64f6f05054ac8edc0dde5008013bb22500a4258551959a2450442c0a2b71294a02c4d9d44305d566cbe90d34a1cda8ae7475634215d08742927fe7460836c66cba4aba249e581eaaea098dfa6aac0779f9250a27bd2f7270c2e343c7508873259f84c28d046d728286d1c97c25dfe0b9a80f45b69fdc50e4151febe9b459abe536a4198b58a1aad70261af924be7c3895698b4bf86aa1b6c6ad77ac7068c63cfb03736c41330370ede7a1f907ce0f7023ab49ed522cae580309cae92461d6cbd0e415a95009eae266bffb6e09c406e19a21c4e37ed32475245e1df2a9a7e883d5542d6b1271836dcbed50078202618c05f41ac48fc8e3eaf911b9180101d5fcb40a0c8c8b479257ffbff715ad22e68925b41ec301753c87044ed47fca7ffa74bcdbc40bfd989f8d75ed28f7794d0f45db7d34a9ebd54796942433bb40e488b813680f92a5a27136ba0c4c7a6a4821e50593e0e5b6780554ec2a548a0faa6297ca19bd846fbaf63ce9ac576013c22b3493810a7444164c54cbf5cef03d4b1d72f0d9025e8ff4c445bae1531d3efbdf2f3f1065d82d1fc16763c38bab5a8507e5d6007fbaf2fef33aac7fc22744fd012ec318d0adf87379bc74067d07b1e23070d047fdda82d471a26c395b9f63ac1203458377c4d74efc0aa48a158c586411992c67ad81dc7b3b10b0c2390a59ad5f4a45cac782e885049373be84e14c1d4e08ec237ae717793e13304047aec0a1e111e7194ec147edf14c12c12f4b5455696bc44f7122cfac12ac12d77b06ba92b69db9f96930911bd2846b39d427507c789c7692aa38beabfa828b4caa73360a42f6570c813bd609950d8bf73051b451b97eb4f988185adfc28931b3fbc51ed893a4ede7c77f291ac13a22aae28f5cf6050da3bc67a38aac63c3a1e56a933e228fcebcec44ca4ee92c6e777878389d8d42876069244729955dc15741568357f30bc700ac96f76eb4a11d40e5c882e22e6ed157fe5310ebbe53e439c2a4a9283718bb29bcb647e630c54de26358803895c6b1aa89016c14169bc11b2d0315745766ef75709a9fa1196830e445a5023e0652241d409934cf0ce6827639e2359a494cff156d2853817ea1d576bdfaffedac3aed08b5051c9dec746026ddd0b51564c5584fea1e4b820a5721f4ab6eb52119aca67cce3683793a25cbbd30e9670a17071eb81c09e419293dd1ae0581ee1e34b96128f1adac46f391ae35330d3c241f7b5c7374a0da8c85894d144d2767c49f140f04e6cc0fe968b87d28fc49001009b1d157dd41c362c9af2a2dde0d538e3b8089301d0321f87467249e2810b4358cd70681d62e59a47614719754de4eec593f05af4fd83031c5bf5c53b9d293d2bd59503d7b26a0ce4eac2ce2b821f4b022d8b2fdeb9ca361962995f8a6b1bf6993139b41cdfb75a5e38f6a145521feb7849e57dc0b9d3ec5a2310f4e1755540e6d0b1a0202314b6f408cd1ebc9074e0e0c85f978808b1eee0815a9b10f88c8347d070abb6089f7bb1636dfeca6e57acd95b63bd6ebc8f053560250c2a88cc8ae96da1afa9a90f2eccea482cb8c506eae8d92cace4a047f72aeb3c31dbcb0d2b47d454b286c8978305c93f44c968a298a6ff0c61586fe8defa6541eb64739dcb7df5d04769ab86edb4c005cf0eddd5ed6582ad551115b80319c5d41218aa68f57a1dddcaa302919f9ef9336b3873465e25450c1df1e4b91f45ae8b96e6c26028afaeeed0d4a3bb474e53c2b4f02b026bcb48a23ea0591da1dd00f0e0f812d2169be9541b87b6655448c2c0f321e44775d38ab5068b9b51de9f92a91909be8a2622d78f0a28566be2a437b528f253ea61411bfc3b05ce8170f8535ed4e8bfd26d059da2717c30819b9e5374fb630a0143b5850b8904ec6f1275cecd6b1f4fbd89dab8e63515c3fdeb68f494ba8486c9a72d94d07456080a9b6a53acc37bf444dec6afaaf20de0e4a12cb875816c0cb8fa7ea83b4f24d06b5520e8311121cf29cbf9585008a5665deeaa5bdcf5a58eecf7cadaba2a92c62d8fb9757f4221058b41df7c47aae0039e1aec2d7aa54989c250ca62a038e3f5ef60b48806e3a23e7943e92442449137649f87ce99133a809604b8288de67e1bfe7a9d92844318bec8ed31c5b4d999249a2d8db19b414dce408541dbb2a2499e249d2397b97a4e13ccb7e2e02ec66f094f6269ef84a741652c3af0c6baecb94e4cdaa49e510d342ec3436198ea0f7e8c376cf8d3f9cd4ddc498d1e35ae85b8c21db70c5a70f6ba30dd383682fbb4392b4fac7bb8e0c5591356c57648ebc09dfeaa88932f309b199963cfd4bf3944db74048d1819f19ea264c48ab5c4795085f6bf00e019a7bc5daaf61ea6c3a6a00faaa5639173839f4805175f6473a5ba97448bb26c596f5363580d8172d36ac7335a4471d4b0055097aef591f09c48984b81d7fd0fd33279dab6827ddc5d80a7023fab7ad26b8c3dab86f0cc0879b883858f72f664389c7e1b57951bfa63f0d4d1498fdd346530408ad758af8516a8a572e91633a0dcd716b08499b7442e0de97131ac2156a7a3671e185d48ab1f22130e8cb5665bf66655a10b1afd6d5f318394e8d84768bef4f64ffa8932d53486ab571f81868f073b164946267b97d465fd4bc89f10b0914f7191fd057ffb83b2796582c7b2ff4fa883ae1cc13b2d5c6e1c30480a93e6b95cf9574dcc238eba8b65481837cb08bcbcf9a219fbe5b1f65fee63e7a141be0de047d804d4c274882608f421bca37bdea909f1e31892a9deeba4a500f1cc8176d727685898c185c38e13ffb987323d63d47ec9555d873a73b82302e3e12b6b291701e5b4f8ed524da791c9ae9b9a0649a008708d37c4a4e14ac078316c5b357968ffa6cc7657d0ee7bc7bdfc829402013429013ab8495610794c88869d91d35038c1518cd1d50cfe2e5c98e696586920340eb7a9de3b4a12a46e92da5983431584a0ba42e043f70e6cb19586d778b717b432acd1f3f663dd611c1bbcaba199f995b282389cfee63fe80ba276018c4a52b1e88aa9eca544612eda6fb347978d872e420fba1862039b69c3247956cf60b905d259b6b960d07aa96cb9d59ce110ae728da9c1c5b26866e10e22cfe112b4850c1965cc000b42a0b52daa7bc341602d707034c898cddb755f017a994e1a33dc6b4796a8360817c042ea1b0c557d944fecba66a4bd9ca07f682ffc0aca618970399029b65b6324deab1e5bacc90f10ad0bed90514cda481da16ddd95d9f3b982c38c90022fb4b873b13a5956c8768aa56c17afa4bfe91258a0762c21fe6f4c58762496e6aba168c0490a947dee009601b4f627ed48aaee0195fb5f5520d36174c41332d2364bee2c738244b8e5a563c43dfccbd1de620250e9bb8fa1d13da5fd4307a049769a3da8368ebfaf3feef5d94796f288fae9c080f280241cd8932ceb4e6216efa22e896f151bcf0291c8ddde81d0587c959377d54981cd3c8c78d0ee4ba8c4f7a9ebfa98c184829b838e3a3505b1c4dd8238d71a846b225cbea8a2e3e904b251f6d3558ba408b534971e404839597c8d258cf9bcd9e53855a38d18070ec61c3495b3c4c86c4db3eb8c7f46f03b1d0f0d3e05ff24926f4d761390d7919bb799dd8bbf46325ece63e2b0718fdebdb96995294a69e877e777b5e4dc0388f0a806e8f0f4c7e05ec46f4b93d6377f2c2aef7ba517113219099a839e97523f311d0795beb2fd804d6a34747a57367d94dba901e92b96178472503991773735a1dfff33d956e3ab09ef0c66d0fc189d9b2e4db319117f86028bfa2e1c90d789b8d2d72ce16c8f9dad8689ca2fabaaf1a41711e8997fa29cff8984f592066dbd1cc8310164eff1bec7114b3c2f0efc51fd6793627371bb0e7fd282c6ac8bfc18fbdf0f6b42bac8cc4834bc5b1ca47890176ecfe01980d443adc0f57b882701a38ff065ce1b0d7c2151bfd4a9ef0f6a106a049fedf1211f00c0579208fffcd1127dc668fb14880fc02223feec403292676a06e746c9e8ddb53929d77acf585944eac7ab6cd8c7d2a24ce44a7a76d4d99225859e5b9bd3e53542b4f9eb72fb4ab0ac59958f5683b2f930856843cb74f58cbe7abbef32ead78be5d1f004b34a2e227977434c5fb7d48ea7d68818644c644d2454f8e7ca72e394322052c218763a89423c918086e0e1299fda825dc1c0408c65190758e372f8a8e31474157ab438ac6863ba2d17281c007639f39eee998ed49c719be8223ed71f90aa92eb2fc39393c5d1036704053f0978506c08b855880cc862940151f174ab2b60689c7dee7bce5349698026010fbc080b24c34bf3cdd4478c0ac08fac758bc2b106ab9fb26a9c998a69d15af84f61ae87bec1e8b9bb749e788eedc62a15df9e05c32fbf96da6e2fbf6586ca4232b5041445c1e5c4de2d77c6b14a0884e487481247b96bbea488e1805d5554389f8702169f39136020768251b6df481bba944594e6d6ff108764bc6ba2997bce48e301bd20389627309600f55e099395160162cb0b38226215392bc91fd8969350fb2d2c76b1f41821bda2e91d4c33a8c796634a9c96d7857e5f69ab5023db4c15e92979f7ee27a79979beb6299ee6e52eb4c6b8973e2c377c1f6bfe4fcc7de6ee94edd4e1175b691814d1da0d641d97e7560decc04b7f455bbf122b38e698ae0da89cc74d1a278251e57cfff494143b59998152caa795c7f3002879e6b1b4c522b01684a2028cffecc478fb8bf1d4640fa112b50d8729f7749b71fc357c7d85b4266ab51986f394edc65c40bc46b500dc407128d1903f8c5a6005a9321e3dc6f0632d00e435348ddfe1157d2a310e712a1d9fca90623c8e5f6a7a3ac1147c594e418b645ae5d1d3c1e326ce67c5921fabe9b1443faba441302c49bb93389c59b5ce7d328f72a0d8019e95312996ada084caea59347e6e1b625e616c1fcbb5d69125d1e4c679fb87b5bd38ab6b61c76ab89cb243ccc89a2ea8d22effa0e875d74ab2cd79f9b4653f4c58eb7e7854ae5759b8cf47c60e5345a98914cb151c7508e0630662346db2fe8ed083e982dda421e62d5b3d78f1fc718da91ae0bbc60bfaccd92e94ba0fbc9c4d006512add2c14ab4881118d014ddd0ac428d9aa225c5b28b77852f4ef14929102264ad60ff6566641c74390eceab590f993e76ae2fd111ced8be203023e6d4ec6fd7592ba08ee008340405db3a7e159117e28fb7215d2461e0ca47e61ea59ba0e9f54ae5f5d4fb137f8e89eeba8d66d438f27b00321c18f94f932195d2332d2410fce72b4f538c930247d2ce53b0a77db6c7ca284f3cae0f4651e3d6e7670d6c7b2b7c37994a5ec4672e07f1773dd9b49936cc62ed94428b4417319f5ab9407a78188b4720c4357dfd910ff8882175d73cd1d9460236da97b8e2107ce96c28ca6ed250ddee897547096e3c49dad9d84953a40643499af8e99c71ed89604459b5c8ae72dcc6f10899ab486cbc95da258c313b690dea3d3737c48d9548ccccd4a689c56c35a66004c2a6cbe89482a15bd438e351f2ad4ff21f85956f9d89241ebf3f0e06f53a091e9861f17b559d09c610aa0a4e896156f43c60d04ca539b2530c360e47f0392df0ddf971865bd0e1c7bc19316cca9e0e8de14ca239aa1ace175a8778c12595053065aeafbef499e9369bb21f0769986d0eb27bfc9f64023878bb8c33decee8919bc7cbf5a49253c4d9839179a4bb8a2da791c5c37e5979e1261f8ad04f00e4079c2b4ce1f76d2b3a9dafaf613680baa60594eb0c6110c62aa65decde9528c2d6f1e60527cf8cd3cbdc125b8d0f9265d984862b5b2bc565f7326b512828326219a453193fec1bc47500a5e788e4861439bdae1e87cfffeba9684cab09bcfbd921c8851729ce0aa15ce36257f0fa6ee02eec83ee8f3da877019af2198ebf8f085c6b9190f4cd5a076e3841991aa385e3128fb6aa2d6e38001094eee9a87ed1a7169148193ee121fddbb9990c3475ecda5000611061cac99669c8095cace984dd3cd9c7f19cbe913db010354e90ed5620cff1374bd78ce2439a65a77cb60b565ef5d64d87847119c4dd0e0a9a52d90775f48da932e11516306ef866bf1b142200da74d18b2259621e5fcf3acab4603ce61a3bd718816f33b0532270a0e3a0cda258e2764e2501da92e4fbf7cc7f1cc1e3c07319a161e471389c12365a685ba51141191f2b0f07ddda158db3d114b47383b3996eee3c4e246718e9271524038af52ceb05a049d44f4f76ea5a049c45bad1685ee1ba50e17ea566bdb91be0577fde0e9226b008ed099a37b2b4ce0d9ad26a142297f1d582734ffd9e63d96c7460f86a014570be4ba68244a7a92ca0484ee52be550a4f985dc460810d555b5df228ce8b8a8c25321ca9928259ca96dd829f31882f4ac2270a7ae0b7d445bd6e8430200c9ca57d28dfd3087f76c8fff0a5abc399663f7990afa37a5b7295bd4141b4e4bffced78e98751b642c3b7f1b85d1139676039c6c13a4a3795e086bd4b4f3cd79d6384cf421714bd3d97762f9e4a90422f12b4893d45f9f56e2ce78120a3fdd298e76c10ee36c99353a23579044b01f958ffd27e3b640f4289829f7b9680ba3da1aa2be7e156393542a3f3a006cd5cccd49e418f1b25779c1daca3c681910c4bdd55fb696b6980b9f14684ff7b6442ee264a62d5dfab72beda94eb00caff16888141e4c6202de5652c574fabdd698430e1f0a50338d61d341b5b23933c48966e81b7eced292e76c38da7ce4f940bb29190888ef27798c6ffd2e6a51774cc2b429226e0f845c2dba12612bc8140b6226eb8138e136e16b9918f13509bdd7a3c11e96750c391c4d504054552d66dab88581434d92631ea89aa83e7bac07baa6cbe07f9b703c9a91157f40561220903e61357e9a29ce11f7b2f80e270e39216a59cdda6f80a5d3ffa7fe8f191439bb87b4f97784aedc697685f2a41e3a897e47e1587877e25db50e951b7cf700568221227a7d01ff3001312d21b8e80caf70d5e99524c99a3105beac641d95b28c4e47380f2201b06b0c9415258ee94390035e206919600751a999afe1383d5eff9f5630bfe90b09491af8e01a1ac00472165294619a7db903616fc1c0463e21a5409a7edaa15511dc2d0b777fd37a0b40d7505a447c94869d4ba1972950691034aea6c539ed080344abc923a495827570601c44b64dc24e13f934d9838aa30f804435395e4fdb65bc911f4c3a43ca891cd4c33abb0630605866e8313c8ad88129b2ca7ed46ee027edb9508ef084e190466c2de11869cd9701b89a7a47d0a99181b601f8a636bf3bd948c9c24173737e3ddf3e8db25eaf855c93b033026cf8f00817e1439104fd114dae352132d0fba1cc3b9762918e4b42c59c1b615cece5338591450de8b5f77c92e765f1ced225c3205b0bdb9171babe3a606c539034eaa70a9a2221cbb3afa74fd5ba77e798b897d1bc524ecb2b55dca0c94bde51c96d53f630e280adeb7a300ee973c883bc5ddff5e8fc5f0f88aa720a454bb55e5cafaba6285b0a8ae2fb341b8b69906c26f8b1e624a1933d5b901a5365d4fcee7456517932448284bd3506f7ca58e97cda26d97e69d243ae09570f04d34bcea1349cff5ef12da7e728fbe69b3c1a96db2954eef79874893cecca13195af035a091c66efdaa386089983363e748ea6fd3a35b44f41f2eab35b308c87dfb152837f4ec3c0a9bda5134f9cdd6266aa3b3432382d79393efffeec16d96c6d412d40d9ec016a1ee1eb3fdae36c7b2556f4fba2d5fbfbe094db0475eedc4bafb5eed072788ade31689c9819049cfa6ed39edb548e90f183af1c16271aa7b547547578bea11a80149c7c2dd906987aed19fe33ea2d047b9e81c54c6995aac2a5483b46771c9d91505b2089c04b1cd65951b978230cb525ba41e204b267979aaf993754388c429b4278c96330288178531fd78b1b8f75d317e2b812ae4956c877b602344f753e88de0bf19b078b12a2b7d06b4a11d104ffb798b4b5c11263a34aba03e581f650885eec7f24835fac10d3ffdf132b7aade77addaf2228e1a2710bb56778d4f80f1aef1b90ef374553d95eb9d293dc6c021aee319a72bb20ba782819bc43ae1426e5ab79f02bd7a847da10e3656813ea6514cc9b355f25f4858f0e6f1606863761401517b7822a89c747cfebf148c7d9ad6642f2f77db3550bce82f4ede12c3cfea27578bc4bda2e997469a54c4c8bd360fd5f05b135ff286546dfdd977ee8fef6856f439a80190990545e5c72ec6d5456ce7034de229d6c47f682e6a8a50e555f28e8a43c6b6da29ca36aa8651fdbb840c5117f86953b89f9e47551a8d8811d97968ed51cbd9405df88e9049c17607aec5d1476957d23622fb361c4efe3a85f6b053552d6aba5137a65f8bd7fb69e1d3de5f424cf87ec1466dcbd84fb90dfb32e2291fa932f9b7c610005301d34cec92e09e1c0cec95e12cd4ab10da43ff86502f383074e3ef041396be4f77e6aa41ae11ba1f2f99cb7e8ba71ec0f1c0a854fb0c4c24d2a398e5340c399461649423a7ea7d2cb804d86aeb120bc6e2421a669a6dade65cb2c7eff0044999212b64e018c8a2a7f76ebd073428f2b0240425cf363fb7331ef79ce3b98dff307e559388443e252ea4e45b0d3127d04b5f24ec193b3fc181651dae6c693ea9daaa7112d1108fc2ec05fb21345ba9552e56cd0fd186ca96e9a5fc313b494025afef56359405a554d07c8bbbc99b976be40a95760b662685c32a1767ee038b887004852f0556d59798b989dc4fe17c36ec47bfa87aad6711bfdcaafa4b16b6a2df769f94d6f2596b064be974a70df5ef3f1ef55b37bef2df7de52a624657e06fd05f10551878d404d9ad1ca7e68e34f175fbe88df4041b88bea247dd08159c650491e7e8c0e3b1e48a03562925c52105eda9e9baace4297ebb71c70dbee5ab4146ec48db811f872fde65cb4d209dc36b7c80ec2977855ae875876d107be5c2f1ac7785d97ec78f9753d29cb6a1d8d26e94563ed4af8223f5a89a995389bff1dc3699e89102cd4e04c8a134e38a154d9d124f8fe432effa670c40c6510c2c15088d00f2ce136618c106758d881a110a116ee2e42a8e1f8e198c2a27164e1250a5de47bdfd96553549959b47816410891cd2bdd26672767276727672767276727672767276727672767276727672767276727672767276727672767276727672767276727672767276727672767276727672767276707424a6750a1102886301402c58ac80a02b984a69f951f7a89006882d98fb4b185e5111c1f5bedc0524c25b02ecc13c61a038e9f1be339519934025faead81250545c5c9906bad8df84a1c2b4f35b0d420c4d293828262234ef11e282d15272736621541273a4dc3f2893e8e40558b15d94ade307c13493339c4091cdfa320554f481f74e0eca1740caff4913f6089c5073e4b1c0f7c963c1db8e1fb650ea0c987213ecb1dc09987252038f0599e36f059d668e0b344d9ef773240930d213efb14b8df5b70e6c2521119f8ec4218f8ec452ef0d98da83ac686284053a409e2b34b2108ceaca46029d658e0b3f754e0b3ff50e0b30f617953c49940d7f0fd6e034b5147029fbd47043efb0f087c761cacf2fdae04344520203e3b0d9c1995e290199fbbf580cfbee387cf7e8a41d10234c5223e7c6e2eb0e04c0a102cc521199f3bc8019f9b488ccf2d448313d0d4343d7cee277ce08cc90d2c750d8ccfadf3e273a778e8ef1f1d73f2a6c669c0e7f6019c51f1fdcd03965a87019f9b6687cf6d8377744c8919a0a98174f81ccf7004ced4152cf590057c8e2c057c8e430978ef4d5dc4c5e74805159cf982c0520f993e479f99cf1108011f53910968729a08e3329f230f9ce160c96b4a9fa38f98cff1268798ee5b7c8e3330390e0e58f2027c86470c7080cf9106b3e8170134395084a929c2069cc1603e4316013ec3d50b10b0e443dcc5577c864e30799108e3eff219fa08e0b38b017c6e81fb5740a7affdf5a4cf01c001f8fca3daf2384093ac89307006963268923611868597b00f78e076e0fa104d189108e33f04101cb839f30ddc5c35706d4413a6120216c15219b839c3c0bd001ca289262c28889bdb3194056ece2a5043811a9c68c2782680a3e3a5ab25019d08e8404007289a301b20802ed58c210f18f2439168ba8cf8708b60bf321937670eb83168a2e90aea81a6c64b170ac6cdd98b1a1e6a70a2e9e269000ef6d96280ce0e3a5807289a2e1b1d80b04f95bb2c6088028624e01689a6e9a28b60ff1ef2d24cb94b344d2f4dc789a669ba333757045c191a5caa89c9a1a6058e6cb90b50344d9b0833c48b4493341261fc0fa063009d02e8b00082b9794480fb7257dcdc9eaa89261994fdb84d34499e08e303b82e80eb72493737002e0eb7e5daac3022d1e443d80a5b612b1fc288dcf0ff36e21bfedfdf87feffffb3834105876fc1a1e562aa51ad59a6b2d75e1bb1b5d65a6badbd2a2d7f43cb0d37fb916b1bbf6dbc61a9a0540a4b05d9b0b2b26223b66165656565656545c5fedbbfd955180ae3c150180a43613c2c35b0d46023666161616161616161b92aff36bc0d373b4f0db6f14a0bb369b55a988dca6834b211ab8c46a3d168345261f91596959bbd466544a5521941494149b111a3a0a0a0a0a0a0a0a05c9595575951b9b98ba4d8c623db78bb5241a9d495ba8268303131b111d360626262626262a282f22394d1cdfd83238a0775f19ca8385161233e3939393939393939b92aa3a76144c3cdfd43856d6cd2ba6c5aadd66553526bc425b5d65a6b5539799313939b7b87ca884aa532e27dde6723f63ccff33ccff3ae8ac997989434de662a28959aa92011c7452ce2388ee3384ec5fbead59b636aa226cf444dd4e4e948ba88bbaeebbaaeebbaab525f54ef8b8e8db956abd59a361b866118866118865d95eeb98ebb190ea98ca8542a2354a394524a29a5f4aa70bf71f74537c65241a9542ae892f292524a29257d8cde178d493fee124dd8cabdfdb76c66d98f97b276c92284c9deb3ef2c832f59673f2e329f9cfd04b9fb8a1ca0095b4518ffec073bd5a9fdd82afb59390cf28c5d017b0b38d309a04e3ce1e6169848d6f9a003cb57c530d48b847620c61a30c1fac1ed9f6d5dc49f22511ddf80e1cd36e2e9468e37aa86b0841086000408102040800001020408901c9c0b97d9c6d4de8867c02588ddc71b51aeb54f93e00b4af4117b74cf10b0f7209064ffe3be91b8cd764f93b0ae7d4a3e7ffd3c127536a2fc26097e33b2a934d979e43e82b196a2fb52bc69172cf718ba318433d9e73642f26eee225f72730b8d2a26c2bca7373750c9639f899e7eae4f3f4bef8eba18f5e688b8e4e67eed450dede9f700b8ed2191235135002eb34eda6eb49176f3c265d6f1cda5b3836f3ae651ba19f2fbc67174469d0c7b936ddd135551d53d70464a16c6be85b4100c978deabfcc567b732d6a5a7f0eb9bd66557433b4ef6e0e4de52a954a2557703c18fb15384dc2220dc620bc34e00bd63e2bb8ce4a6b03b26ac017ec4300613059b3dff8cd0a9621abce798330e962c83b8410ae1355dd63850b9d077b932ec67573444c6f7669671dcf9f9a168968128639cb57ddd3249f6b1d8dde5518c3d9ad803128b24c3f760f24b99af6f19e7431e8cdd4a49b315f8b249608e72c12bf0310f92452f69b2bd47e18fd35e29d5776282da766bfd15472487c230ef9fb8dc41886611886612a954a9559e01ee04c0d4f77b36874ba05ceb4fb07b1dd9bfb876812e6afc2be76312e0ac391bcd43dee823de97f84f55021354794350247c5df7bbfd91bd187e873e401aedd8ced5b24ea646cdfb9e469d45a47a312b743649f8d54802fd87b364e01c2603f2d89ed9eeee99e9e6dde20eae5ba187d73fc96d921ac1014557354d1802fd847159ce91e7bd8d9de81b18f538847bab8c2988cefd158bf62d17017cc6fda05fbcc65267565d4f22b52ac503354ddb84f935eeba13df5fae841c0b6c7fe51503caf219ce9ae4a0e89b7bf21c2db6b9f6def7533e8953922ee6eeecf6274dfb7467687d8ae100d5541083144cfcf10d54a4814405800180a89c207f60e86f654b3d1078e88456d451a0d129bd9cee61c5c68229be1173066a349d867191a2cd85ad981e5fec1d8b74fc77432be46261feb60f4ad416ff4d124ec7144dcddd823050aecb18fa88ed91efbd8a3637c744cbcd9b69b0dc3a1d102f763994f051a05c51b2f71d9ca6805f61b013869bbe739cb03887c247e87a8ea1cb0d72c8e88653c9edfef38ed820d01c2980fc63ec39e2018fb2c83311e8c7dca176af6d7ae11d271308c7631fcf69536629518164f0c832dd8ad21756a0aa28e298960c208491081085310415e1faff8fd91a5c2fe14899a5760f99bcc3a1e369a3dc4fa479322f48a50513423c903cb9691d87217f959d00116a0a97b4418f95956518002a9f9e59f5d0b583ed7fdc0755d8cf8975f1ee36f7fb9bbfb8a2679f41574914fe567cf5bb053588ed41afd8f21ceede3f60decbe991235fb101fd231415de2563837ac226d04ce6cf1bbfbdc52907cd7bd6633c9edae96e33bca87f770ce3a4ebbc847a5260cc79df22cabd547fe4ff2234652db8a7b1dda575ee26e77affc49beaa89d8699ad466c87e5a653fb9100dcb59233ff909d658d94158deddcd6aa10e026a1f1c644bdcdf1da449b28960d929f8221f06b586bf0f91ef371d83d3313c513a13767bedb279bb397a3723fe85ea62f4c7f71eee83a766f98e92abec5a70a10ed2d7c74ec54ec54ee5166ae934dfd2bee2fa473f6d9de6e918196dac8ff5950bc117195b45b07ce9588030f2a5943c6ab0949f5b7e0bcb2cc017f9b975e0859a7b958233d8cbef23d4e89e88f5c718b11c11fb8d36978d3ee4536c84c4f2860a8c23d6e015be922f49ffa39a92fef1a30c0267a047d9283076714793ba0cbe4879b38d1ffafd5e7fd92f0835ab71a3860bec5ef0a7df6bec0ab6130c3b0caf942b600d9ca2e63a7f7a3d82338d2f17d6876d8bd0f6d0a4eb61375f879ef7c57c7f9f0fa5f7d0311005420b5d6026b196ee4e428757454209a1aa6b015fe284f32291af4343082184f22ff872098982e6afefa16372f561e45926b19a42862adfb121178f1fde9dc119f9fe5ee5dce616594608658bc7203f7ecc0cc60e4663ad070c3ffa95d1860ceeb62390c1f0d6884f7f8b36cbe0d837cbc4da24ef21841042cf8a60bcb94f2bb95e1b3238de9f339e7a0067e2cfbf80101d93a30f9e3fb3c49b94579c1368d224fd8f46b7f6a8f183b0f361845bc6219ee01861e20f8499a72ebeccb89b6dc8e0d1142adc525a35c79f4363f8be0ffb1fb0ffb0ef7bd16f9fa8c4c4e4137dff5dd8a4922b7a1d5a45fef5f23dab22dffbefb74dda29330307fc25009668f8f9322ee08cfcd9c2a2e2f389cca4812ff33f3b4f4da2e14e25a0cb7c1527f33494e7a9a505b8e4f3f7f4374f0555e6a046fcbd0e5d628da85ff29b5b93a7b666dae069f2d29adc796a520b2eb1378ac0dfd71e799ef0fc799a349ff797c521717d179ef7592743bee779ffbd0e7d79b606c9e3885845460beebe7bed256bbea3a6644d583f7b1a3a18fe5996d53aafcf01c01bfc5e5aef3f9be5671fbb1752087b37b76029ad8d968aab15e1287bc097ec45b85a921609aeb60bea70b59c0e87abdd9c66c3d56a2c0d574b7d28ae366b1f19ae163b82e16a2fd585ab9d3c13572b638dc4d5ba0df892bd0edd838b6e0b7cc95e462cba2f544622209a3a08d33fe714614c1bcb26f56f2a5c5f574d7512f4600921e8d4744c2c12051168848c34f1d4a448c33397d915e50542e4c1f2b3ab65c7c479b2d12e72a7ce2b89930cb09438d826d2748c0e9a788a34dacb9025af8799376a929c71c6ef9aec081d3a383ec4b7c6f6a44ffb1bd86713cc7cf706ccd17edff77ddf7d585323867083db16b5ed33d5ee0decb7d7727cfa3a78f4d5bcdf65f2f5494c7eabd5e4b337b0cfde7fdf1d0ff2250f40f865813f0a74ecf0e2ea7880f085850c55f426304a5ef49b892dc938e05872ff06f6f9fb1c8e817002ef80f0eb7e8fe85e7eaffd67e97b19079caba8e3ee096507ff4d6bb9915d20f84dc2ff88b77e87709766413cc30e402e1aeed24e24c35512a31d8ea0e125e9fef2083fe288ea2e5e8497e4ad3a18de80a5a075c42962c1124d34b184b851d7b828e5f51cf79da669de57e9514e8bdfc5e7342d7b4dd3342d6e525e4eb5af7a4d504a29a55dc6695fedbc8ceb5ecbb8d7b48e8b9b949753ad2b69826a99573f8d769b4697a05d4729a5947ed5ebb2fa79dc77da679a5bf9979d9146ea24a7ce451aa9ab384efbfe94b8c5e8947b4da34d50aa518e524a29a5dd129da6691ac7957cf5b392ac7e9ec6699ac6d1cf2817b5295ff328a71238aed3344dd3bce4f344748926344dd338ae2bf9bcef4535fbec7df67995d2cf344ea323ca754ffb689a1228a59c4639fa1cd5a8c74de396d08926adebb2ab1d6bbe846794feb5627124dd3b47b9f7eee68898e466936e467cae9fd208315da252eea2d7755dd7755dd7755dd7755d97a6719cd6c1a0b4aed3b44e139188ba9e2c48057a52d791681a1755947baa048ea39a96691cc7699aa66954a39fd18c769c46359a699c0d9d0cedfb674629a594669ca6659ca6699a46356e5a20528b5e0aa20e293970848c59d682a3971a937dc986b2493e553efcf7121011c6a5cc70025eb76963c7ac03cfb9433ee1737ecf0b6a4648c7810da009cef4631f691c85723f39993fa84ff51bc0991cd551d1441f7bec461158bed6cdd8de9f6eef99cd810358ca321f8c86005930867dc7d69119f69687e83e508eba4e92fecc220f9cd1fe4ccaf939e299699aa4f3ca0b7f6cdb748d13f5e6c7a4dd8cf92d7fc89bac9331a7a3dafd1ada6cb061150205552250e649a40e9232bccde4a84ac0d0d42ff10623b510432336a4bcaeae7b5abf44f42dfaaafd25a5fcd6beebf9f4e76bbfbd5f42aea0c2f43728582a275adbb7cf0fb6c1fa4df69b4ce495d41e47d5e4eec9b04786e47317c15813e90ee2fce692dc7b6f0d1d0f7d43bbdf3ef76f37a2b2cbd2c5e8ef7efbbba292327a12cae84445f7c8745fbfe4bd875efa27f1d25fed66920d17b64b564390ca72b7d744d9df10e1ec7be56679923bbca572b30fe1940b516e96c1d96f4697869bab77efc9bd26b7bbdff5ea779f4bbe23a1df5d961c7dac7433ba17ddbc3d7d15c8653662ad7de08b8bec69a0279c80301809fbc748b547f5ef98c2d8efc87ba35a4d1555c74c22ab944e86dcbedf6fb24cd3ecec5a486c8d3c55ec311eae058b0d61ac881069a57ad2c86f7ca43d6ced6a4d60edb32ef98dbb60af691fa1a97b220cf699f6392416fd0d1116414cd2185bb990dce12d1f7228b25be1ebf6bee4e9e7f6f96e4a17a3e4e688d8f371837df7c48a5bbabbbbbbbbbb471d0f2db234743344df77c3c1710010a5f6e12ed35f351a527f3a188d69e85cd5042bc0526c792b3843f2d34796f363cb4bd715fd77453550f4dbcd5d033c5f23113d89c8bb24f73bdacdf0aef4cf647ad5a4d6e3d812b5ba94286af6d56ae5590ac7d9883feb73a393f21c4098f9d5b6d00e7ae0495a795d688173af5c89378314bd821d7f9c484b3c5bb4ea8f8c8c542fe22a1c5722d1ddba19a27755c7c0950cd195a26c9565243a4574786c2c4444ecc15508a0cbfc58238524864415fc90e10b8e4bec4f1cfa812ff33d3a81091006a8898c6688ba17f3bac837918b44ed23bba93aa3d4ebe88874747474b4d7a13faeb60e0f7c893f4cfcfc34918ec213464e2001cf7f51a3594d9a42b7572dd43ade369b27fec41f1d1d1d9d1e327f43e1361b71f5523716a04b579dda854c8ada66c0f3e711783e8d1470af5a08becc1428eafc1c5bb8c6f5f4b75b43f438223e125ba2dbab12ebd608d17bb7165ac8e698c251b1e85ba7079e3f79463878fe8ff9221ce0f91e6d80e74b4744bbcce73223bd3a8267af268d4a7b842a93648826cde71a471f38a3dd17f4e288f3331b312b650f493f003584a7fb753d142cd56f9a3cc2414897a8928711383258b3651273ccdd5dbabb4fd6759a2cd67cd61658d1d43f2f9eec3a5d3424dd8cebe577d74bec7a497f7201966018e61478badf489b796c27f1cf761c69d97242f5ffc9c2ec6c9aabeb93d7386a66b70176ecbbe6dda6938161d864cdbe9efe45b1c6b00cc3b20bcbb06b88440c4c5862094c58428cb11d93355e3548c0087d154651a84f804ec860170980a52c86e39c020c4f92932d62b20e96248b99b16e300c8642b2a0c21be5289d0f5710ca547f7799924158f00b36e649a652344a4c463c227da2469c65648874ffa8a68f2a48c6f538e1ccd3294b2132d5a4994ab1583e75d654cf10d1e71984b32248542781005132e52829aff2d083f094c192c5557a69694ebd68240bbab05a13aa56190b4f2028f353656458c84097f999f4a954ed9280a6c923c2e48983e7d3a8f4f2eca6b20ae1842d4f652aa72d56866522969347344939925284bd94dfd9efdd6699c23278e64a8242a1ee94ac08339fc747378f6abd19aba5badaf53c47495634394f84999fe249354bd5ad542aa552b55a1be57c62e080fbd434f27b1a5e6a958c97bae5a89ab55027479d5037e219b4dfa4f4bc0feb3aeff37e823449665f7f7e117046f4f3a70b9a078e012c45d60be03c4553f38830f37700a1b5033cc4039224119024dfb30d80241a3d4017f971c7a83594ad462a5593b4fbd91648927f91785ade62d1ead1a87a76f1fc705ddee7615df779988a57ad8af7f2bfdfbcfedaeb138ca68133decf6f25604b61ce39e97bf43def3f918501b1e8b7130d1b228834f10868062952dfc322be9fdd0fded3df3e6bc48ce13dbdb4d6dfbe2abadee469d27cfaa29f4f230470a6067def331caa3662ef6678ff79ff7d6f632a0ab93148ca166a8a172ac4f36d744c068778ba9b11bffb41ec4d25a00b8e147e3024073f34e8f9e8df2802d7cfa2ef7eeb44df3c05e1c7700949e0c11bfca650a530c43a300b15c511fc3d3685ea331519df7bdd6f94eb8e074db3df6f1a27fa29faeeb5df362e7630bef73eac93e1b58844572546e3ef7380400786f8bb39624f64bdffba96ee85f7dd3c6dbc3b4fb547f53eab76e338918dd8c32131fda6f15e7a2fffea64782fbd97de4b7b4384650974e098fa1e47cc3125b30e9c6193e48d3ff246f99fcd3c99c872d13c66d008a84656098939371209a110a110128b796a9789a56290a6e1f17e3707e0c526e2e81315c6d49c4880a5085d681a4f222851f09e90a7139367c7fc31a78d37bd875ef634e2842c1b15fb2c7399a2d49250db51cbe96cd46ad4526a336a316a2f6a27a536a8c9eaa7308242650214f25809ca94742fb613eee404f6c907cf27320af239b990c9e664c19407f14fa6be4c6590264d9962a466f7201d935bd52a38537fbea7b269535be611929f6f832b431870b722ccfc4cb998b3fadd5c47a3ff2cfc60128642b2e0036fb0218c9284fad4789a9f912a8b914ccf4f64c29341e69c382b21d24573f13862a4888af4f35086c5361a753170c0dd6f3d324d9aef02be4cf9d0c620cd7d76d234699e7c525e9ab30849e8898c82f07ca01489f43f1ad5536a6ef4a7c6204d9a1f534eccf9f3656abeec9142f0fc4c025892ac1a904634392ac2cc9f33982fa8842c587541f154cd084000002315000038140c0644a3c178288b535dcd0114800c81884672663a92474192a3200e0308110000000400030000080464860c00f15574c39282b5f117c87c884521baef4cd67316a23120203acc43381a1707cd4ebdff2ec356b11f98f8bb54870108f72e45faa5756116341a717da3c9d55f27fc7a2f2aceaf0df9b692974f426938c16ca663cd5f4ca4c56468759f92fb7abb801c47d1e8b4a43e76da9a72cd70ff5a9359fcbf7066ca3d845788994ef45a9b877cc2946109507e67876f59599423f3056b9490243415d456f44296e75faac4c4ba7dffa1816bd722ce29a58ecf9eae4391eb8d9e350d4e45348a915d86e9d1fd7d825f3ea9059a2508fbfb4ec901015443765a1ab8307b276dda42a338db62b9eb72f43c84b216790af1caacad850e8623b7ca5a146553aec69809828cc9e4770b857573223298304f2b1e600d12ab9a367c9254b1be39ced81a0e04225e6e0fdfe826ff4fc1b0efc84deaa3e6d6816b28b8d3880ab41f47d049b5367d03ab74ea5cf767cf05aecbb3f8cdfd0e4c2c85970729d663c06750bd946ea1d114f0e4ecc169a8c3a12bce618de48336a3624b188b9cb35bbb1ded9dcc7c0bfe23061eae79b3f4a3d294004b686243a9def891f9bb771a42c847f4edaf1d12b59675f156b87fc59bc0f575756c6054c8b837b5759da4ec37e7e2de5db361ba3fbf047bec875e96f20b9ad80e8e7f25f4ee6cec6816a1bf835c2ee5457167c0f7b2285b3428885444639aa1f4893c705058339ffefeb7a79b3e56b027b703459203b52683a83a0f75e9eb78e65c5bfd7d763f8f157618075428364bf79b1289a990db9daba20d3f2a0508272f78a5f2913f7784b3da612f4de8d2da67b8bb763738909e44417c523814736483e6c3c0083a3f469a494b57a0e88625844d5b2537ce115c309c7cf88ded6da10b53d0475686f48ac76194320d9adfdcf3f4a960c06f4db75c7fe1d0d17d81a2a168fdc799fb91ed22617d2b6833c947395aac1ddd6718fafc77673e2e5d5ba48cc57223569eadaec40dac37d075047a2abc4fc8c9d74d40c24102c3677dd5335533460c720517ccd61ae6490fb20de8cbe56bc01e4e84af591e3002f50532de8e34a8e4918d74a19e0f21d03352b60d24cd5fa36ef510a4fef2a629fbe4f4b4085466222212b7ce817bdbee963ed7b8fbb35c26f2afaf3aa02c7acba0517f1a811535e843f79a76d7c682e61d44219142c2420047b7885d429cd2fed3bd144f0e63163a33787e2954a373248afc0885e6c86f3ef8a1e16b7cf276119b81aedc842665ee1944418adb295f67b3a157e5542673d6ad0db6416fd0ea450a635798e37670c75e181ca342984a664e0ae883f14cbdb67951e6a473180acb8d2110316b89963683741b4f0cd10d1eae58ee3a34a55afd3eb85ba8625f2939743f496ad8b69fb4c61c12dbed15c13f1ee17bbc2f258ac69a24e77eeeeb7c1a6145729f8a157851a25bdead6186d0d855ac26852756910439de2241d3ff47c6fabffeefdcd59a2ca19a3041f7cfd6a7550077f487979d6c56987804987ac7067bb7965844b57c97d10266e0d6c98c406a98a538dd54c7b4678fe4ca176f939fcf027d38d86a2f99ee458988e23ba27ce11ba9eaaf02ba0dab4f621feb274cd7b61bf60ea510f4567a078dd9c517be2f2aee163f8c5f0fc2a24a0f3ab7f698a407c10895b36b01a5317cd4a1f44440e8844dac8ae1b92d7484dc387aa3ac0c664c9a6713652cbd799ae84b6307fdd33d854c37ece5a621b66901af377c3855c1fd109141a192bef12571297dd11b7393a5b7ca9c895ef746044c379cb468d92cbdbfc2505ca33b9d87111ee51da3b1fc42e857032d939e6073d973209f0163fee8c5e6b52657e4eeea9eea0539a88e6ee612ba73cc6061043cf72e125db9d123833d95686c229a596f2f80c06c71109e28cfb54de7fbe19dd205f697a9c0cf9133619d3313c38cd442051d05730533a16d174e0008563b4b84a9fdc6dd04422f5b0606b05896a142a63506cdb4eefe1bc55a61c087bea2bf01e4ec06f72bec2db940214c19db2fda092c6c8cf88a78837ca71eb483e2b33ffc5ef3ed2ab0bc0251b943a85ec18af93077a65455c4d05a19f1e916d4dc1d67302a8b1b7b7ca322afe4b4ff16edcac5e0aae3bdf3c36fa5dc93a4ee9fb4b9bf842d8cac7967ac702ccc59c9f27cef29ac1fa63a87c220893f90c4c2408425786b6812a21e32571b1f9298a74535a7b18761e054ef524ff2ede3ce4610ef34ee3cf529bfd97ec88d6514e1010861d643a3d937e15de87d6734b79200fe63716b64200de9a30d4e3bbeb9c8f5bb8a33efa876a4b00033824f5bc1f5f4dc8539160c8ed7850633d8ea346e43724675581fc0b9e66df1fa79b5e4d211672664f9c5ed49d383c15c2f30da6995a75d78f196dac1f2067dd73c84510f15b24301071a2ea9da0fd9b0937ab7e864faceb467b9ac13709d5b25086ff70b9886e46546ba96439161ce6b962ea74115960cafa01baf856c7abc03fde711141cb77a464209d8095313b4a1b52d5d06572b1dd95395d2514ba29f2525252f18b6baebb2ae77367ed75055af6c8e1d1422613e80be3bba82ad95fede01bff96ac4363001b980f5dc2fc097a266f64956638a5620cd0ce64f89eb2a5c768d99cc6c033b984540eef0ecf1f166adb0eae6fe094cdd6a56f25a1941ffedbf40c6967f0d56615f4191904974a1fa19a275855fcd2cadc306b50a82566867232444155d64cf1c9811e91f3118bc153fe50f8da3c73866c5cdde285eaeb674c72b588018e42ece0a2589db63862d71aab912e7786e6d46b1b5b18a1ea98ca40937a6812f050e74a81a0ee48a51c8b7cf1c4051f85373616427a307f23b7b892bd14f28c73778dc2801a8c97c2ab851b6f68253dd3c5b54367f21344e528f247b76846161ab81896570a57be2f9c0bbf7c3bddb0ec68701d78b573622d6df09a8e9e6265142994e285a9f94fe54479096ec302a05022903674e00bc557b6d2957f75edd734f82c020fbd7dbb9cacf967996c2f02ff98c8684aa45504fa3fb95589546c3095cb26c9251f11d82897c3c84b09dde6ad1ff43ef65619d9246d1c4e1aa8f58d3f0ef6c2cba0721fb5fa9a0109b179e988b6fedd1366da724f99f0f45df55f5878cfa4e39c52422be250485c636c12b9c6b8b4d140dbbabeae0583ddba0e7fe939a9c6345135f798bfbc675a97cc4fdd490cacadbb790a54a62db0f866c4b58fc2f950e00aa71c62e1a39d6d3b1d3fda1aef7e7dbf841a2a26c72b227e831c6988829b3bfc2df03be788d5183009510a01da47d123dd1e2762de0a22a3f399e400dc39e6da837d0e0afb94172aba35c7a16cdb9327d29d7f00b220fa6aa33eddf9a7bed9ff319fa9518cad20eeffdfedda82ff4f498877f4134ba4dafcf505e90b69c84bb78f7ee22f599e1382556fac8fd9f5f7ecd1e1ed39fc78228d79734f352f303500b3f29d2b028fe43a709ce96332928aa51ff7ba1dcd3ae1bd722f918a49f2965d94a67738a917dfb9db517b00fc4686ba7ac9b34fcb7182835925c26a03b6948d556568cda2d2badf8241b055015b5befa7bec815879a71d3edb348c26ee9ef659c5c65edef46f597f04962f8a74f31a64bec72fbd15f317f56fac8ea6799c72c744a992cf1e71f5855445516942a0417e136c0623b98e93f7a1ccaeec13a98ea3c873240272c97b12d14103437463d731abf0883fe71751f6368a5ab79f1f8011f33a6c9a4f6ea7fe4a65a0b13c7f450012657e75b0c29d23ca6ea182cf4ea94d2c07cb285c6b5eb667ea8e0cfac72077fd5cb351cf6c71f7c5909325c04a6e1f709c5c0c63451f120e0c45671f3e6f2160961e94ace87c18eec93633003ba2befac7a762d8282bdeb93774a49abd4761f28971fb2cab14bba48acd72b26acbcb5a2ec65db7a37507530f9ad5edf7a4516d8b42a832a0a507ad88b44afc08cddafb5fdd40a85e9ede0d9ac84e45fb33299b54c41aa94e9160e34051bdfd9bbd2670f17f622cbee8a6ee5738b5f165498232d2766da020bb07ee90d6fdbd21fd2a97080ad741bbcb80b64f29f418f60c62a6e7559e6448ab4df93a2ca045eb8c6ba75ce4a8e71755a0eecd4731c088d32ef89cc8e842cc8e615ccc04ed8e51310be083a52231d89637a121918503c3e8554bbd590843139c2e521de80d8c3da09b5eda2bf2cd25bb382b7acc3525823df6e971894dd33201b6a1e32a22d7235b2e529d743db841e98e7bf7edf2c4c429b5adf666c986ac2373e4d0b1f22a383c165aedc8b777327ceb26ac91b81728956ea783a538e040738414691550bbc9d5c250fe02d337ec6f32ee9a5c31866016969a6dad665d109be622704a2cfb362f2036feb59f0fb515e3466ce66d67eb6aaf658173e71cbe05a1f4fc73f90b02faeeebea1ced5d284019b2398ca1bcbfc4c067ea1c53f2f8eb34ba05da9f09c65ec139afacfd76d59083916229c84a276eea7e18e74c4a9e8ce43efb60543c4affcbaaa0d681b442bc809526282f79c956e68b5d5a009f557f6db5fc5593cbd124d0fbeec4dd7a530ebeecae98e7d82f7b744963018d394f366e38f3fa2b84457a74c911fce17f31471a9b3784ee91862a41c5cd09a558a1d186258c06bf7938705687a33024d93159c0b6f4555bb69806aed278eab7f6841292712dbe9edefdce870e66200a8c360b69858c7a4bd9896f401fd506ee45b553546ec89ea376992a44d5073af4c261c05a5111f7db4a847b95f77cbc3bcfa6a62a00b42121e6dc959ce32cd6c1e92e403e4dd1d9ab055dfd520c095189be2b2215bfce3cd6e8f0e576ebfec4e0ccb5035970c7988faff832b42b48faf936e3ad39ac12157b6c7adc6fd5e9b61079c9c91f14319c2b88e1aec790edb2cadec2530d16c31a4b6036a0040826bb06bbb0719f1a95152a5101e8312ba6eddb4e6c56403195b5ee817bf9551ef7cc1bb34e2a284b335ab025715b84076eb97c07ed7de576452ac51f06ed23649ae0f82372cd09f3bb056d71519a763be286bda420b43de0a8c51980ca7882388a846742d7e41d28a8fe8e152505fec7a8a723a8c3a8ea0f2eaa173e0100b58e3a147b608f8392713e60ceca22acce80454257295f9910a51618e3ae40f80d43e4b8c32f61bb3f89d7833e1816205a85c2b430dddd4cd38a46cf09a08b12a8864a18cae7cf8ab643bda57c31a71f6f9795a4cc0e8db3f2cdce80ca3b634039099cfe0daaebd5561c33c74698f36b3d8eb65d5317ad4ac958b354f5456c56f37ac3bb5f5457850a5c5668c6253122273c66f9713178683622e2566e185fdd88712a7a8a31d90b19839a8824edb57c90838c93ea930cd6444819ce346a19a3b58b19c42d573396de5c353983dcaa672c3c8ccc355c130d6ba4e17eb54a22151be417c23980882669be2f624609868903ab09011213eb0b3ac807512a0e32005fdb72e829438cb583ccc37b93402ec4fa0c0037bce6c4047644f4f5927f304a9e63145d4358d0a0848d2fcbfa54029355b885f4ff14068fdbb1b50f1311278836e8695b482fa64852d26e6a7116b3256d138ad986d34ba680b67a6b5ea9247c466a563c86f4bb0b535a323fdba89f3820d92fe06bf70c39d20aa079d074022fef1af042381df2936d2f8ceee67c1f36ee5dc7e2e7467044a273717ac78128dc6b0f45ff761620bb045de5ce14c022a75bb11d2db01ef710eeca04e05eba1562a0ac7f54e8c7c25ba27ea00482d4f1c0cefa0a8a930b6fd9886796717feff002e5635dd81602c9899f82b97cb05e87fb0ee8ceb52e75126a07f4fd4625dadb21cbff17f8c9d19702206c7057a82f47c502aefc85db4bfed1738ad0e79a3d145f031c67c0d19137aa52a690d0972e0c81b9aac918f89f84c246128cc0347d0851435312755b954367bedeb2a47c1122f196a55e4598fb628da19c5caac755e3987a1a9fed6672a90ecccfe8f39ee02b76d5c35334f0e2d7db30365a5feea4b85762eaef96672daa6ad137c4b047938b743d5336798984c4eee56e50e4759ba12e5815bb36df1672e083321fa00bf2f02e4cde9385f186abaa1a2724ca607aefc46b6af853c41f5d504c563999f3ed6015f0a260676ec381d999ef01b21c337ad76cd64681c0b36b6ae88830d1587c80441a899bb71aa9d783e66697927ada2950807b2013090340340c2096d309cbb7ed7f34d9f99a742415ca93e7463472f1fc4eac1e701bb5287f758ea6695d25b46fb44d840f2ab8db7accc145da5ff2eee7ee1730779d47b0de739f5270b8db1073b895a236a83c4b857b94ed39d813788fcb82486ed4d163bbd198cf4c3f1172fbfe2bb0c678729aab0994b53ec749d008d77ea1c9153dc71d7b4c61911ddd624b33bcb2f4897a82c7d6fbf76aa4843e25ae9dd239fcad4c451446eadf066504e7ff136fc77fef01bdc259a937637fe53ab632efcd3bd662e5d008da1e2ceb6015ea1606d004ae49089b3585c47f758a4bc6d5ef6240915dbcd6b288c64931cd3c2192e9e69617164fec8c812d4bdf22212867c04aea13e610edad3d316a58f7be73863ac1c9a7bdb545974443c01e67d492cccf66b1d71073aa78d9539d2059d8ea6b6fd8446693978227fa808940cd1e94eb67027444b02ca6f2e071983fa4e6cbb587ae0b8f9c52a49aa22ac4c1696d91e3684cf26fd32c1903d4a9e7439c8868748bb0ea29aa858995f3194698e6dad3e244bf7522ede5f8f69ea0f10984f2d9130bb22ac8f33228b6cb7256466f7b6b7fa6ec9dd74ef841f8582514cdc4ba51c6be2a788ad48fe4b1cbb033cb851f4b83e3d4382be8aa8d0e0e4be0dd5420d86a30d3a5e7575beaf8da06ee1d2465dc4e39e6a1df59ab078c0a9676ac189c589aec6cc7beee4036350a8ba37162adbe8dc431dc033cfa27b9fc5d4332d65cd59d63fe05d0e3c56d4c01f42a4ac586174f4a83402f3710e6807ce9a551873e9d255636318e5de5ef56cfd78e0192ae5f77e50f887333042112e9bd71f738c29c9507f83e25b3604a91fcbe31701c789e4fc544c0878646e16be31c909b316c152cb4fe5a6521493fa79af62d053965c32d464ec590d74532686a29b3687292623a25df38c4c8350c008223c2cf9a8a52a4b6e5baf3b2c56c9d8075fefd2d9da2262d0a629b02cd943d71a6be97e9579325d37b0b27b48413396da17f9e0a73b3149369be21cbc9f68e25b45a95b053b5ec29f9d94c42be943bd973c0a472a27d6725471e720ca8cba4a603accb9d2fa6dc58f8b52473510d99ee2a297e598d7b2751f27c3a1633004c1dda161493a616d224d3c994d136fbada6b4253bac3dd60e6809d149e332819e69526920190ddd801d032882a28e3f28efb9115a94371e0bb454fe4f6ad50671c84610d0069421aa3790689db7bdd3ec4c0cba8b1f3335e4fe285bccbb428d0eb6372bba73f36704dc25342dc6f07bbe7b314fb0bdd5257c9194ff2178a27790ea5a4f1a484902afce31217677b8940fecec37897d5cc32407f35fa3bb4ea148400338aafdbde323ac4c61d5608f8d88b4f108ae6deada15cc1f4791b4f5531a48926cb02bba4daa64281efd0173a0cfbe595a369ff51c2a4fec65ebf7b951d48279162af4d8889d66b81d0f2328e0c94b804e2c7362360ffc1ea4d95c2c7fd526a6697306f412b702df6ba47f5a210e0a9ee73dddbc49fd1446064516defa0e96fac6d2e5bd955d2cec0a7acb532fcc9f4c948be2d245e8a14853e05422437484137b8eef3dac68291ab9eb35e8973f42439f3b0034c9fae498f187a1e1966f34b3724b036c1b59eeb0f6a6bd806e4510186ecfee30d75bdbfb4abe33cfd4fdcfea1ebaf6f0cc8a90f726981d7e5a4b5df386fced8e422fcfd70af7ce11c88063c900f1be3ed01dfe8521a2a7003c10ee2cc5b221ab6a14404cade73e77bbe5cc81aa95778c4125e90eeb84b62c0fb8f7809cddc42a112cf04c955ab2af6a63d569b341fa5e437f61a993bb78c0c904b5ac2233286e2fd5b342567b87d1558195ac9e3e324eb40401a950bae283f3ac7e4699fde24b16ca38be938c731da8e4687b53d0fa318da4ba202bf44f5ec4f14ca96166f4b18e9160c3234a532fa3444558fcf39766ca170360fb1417626b4213762bc15fe53bbb3d464b77367bb79b977db313309e8a7f25083b767a44e7d45ec595e0e9751c460102b1081eebec6adc19ac8a18138eb066a8b1337aae87080defc44628ca70d6753575b96a3e7234999369f82286902a3c0526b3e725f6fab0ee4e147a10139df3f3dd45799b5cef0a187f7eb312ae9164e1d0c08cf37f0840370e334ae1bbf21627359217885b298a04631282e3a60910abfd0409452ca85aba2c835280548b9a3dfff84a1632f399af96cf914e6d5207ba21bf70187c8fd7395dba36c951577eec6559cbc49500042ebaad12a2b8f1d15da14bde7e29573e20a6e22a32dbb7abd084c8cb59f02a912e37c28f3cb46cf48f40d667810c6bae553a963279b9a917d545e28b55d32aa69bb32c7f2142a4bafd58e6a2e338d6b928d01334f78bd2c02959e31feac74b9da5a44f42605abf24ba647c117335bb3452d62b75e52770cb751d1ad2a19fbaf787d94ed3f94db31d693f04555ed3afbf0bcf85594c44df674040781a5865e04e8bbf9f4de16c27c062b299b130b80ea3a89c2e51914441432f76177702f95458f90f74193ce1ca69d5993938d17f39332e0745a1ad6778a081c754071fcdbc7e76dc7cd37489875ccbdb2964734f2c41ff0e6fed4277afe31c927ca140cd41a484a4e1866c7d7ea0ccfc31bd8df3eb64abd9d2575827b2414076c4f497d0a8829a57fae97b806913dd12105a27803a1b0a8b927d840f83994cee873e971ca699a8799a4619327f96c1f362b9b56c3d8547ba92459069390efdfdab9a647953ff04a096858f5ad19ad772fd0caf23ed6f8b683a3b14bd213752daae8c4b81b3adfe8345bf1d67bf3ac50016ae1cadfe9816f77a7da3f578fe0c2415ef6bf019b302cb97686dabfb9554225dab6f6b7bfd74bce05a84dbd49d962afe306505a07b434e999631d8e2ff8c15d8ca2ba86848095ca9a0885e3c7a169f1ddc10b0f4678369817eb0bfe1bf7f297fa0756690e2a1d9713d8d1db0d25212f85638aa742a2c5c2daed48a42d47a36d804207bd38e4259372a0275491c53816a4a70df953e9ae7f09314889290fb40a9e1930e21b00136551499c6aa53a6000535fb6de3138db560b855bfc5854211976db5e9ca1e6c92c1dd564bc4db09cc597037b4a49fafdc7ee6e6afda63b12b18a3bd63a0739947091021d7fa11d9ee0cf9f2ca9c6c3c069b8dde0611d9943572ff37a7daf2d812d59dfadf9cd25e1c5bb61e3268f54214b445693bddcfcad4610b9fabd6f14894c01e1d1da3fee20d36d1471c058b103d51a93538a93f42f9164c2458f1f4d9da519226ac4acc5d3e8e2211a41add6ee86eb33d0eeac80377c203d7ac1bac48ac56272bcec40fdb60218b74a49c799c6752b40af944840ce53b78d89628a92ace322214ab4187fca0745043d45849d73dc81ac9402e0c1c84a91c628a76096d65a82bdcba05b94a2cfab8cb89627ade6a3c3daf5d130bc1284acaec4fafb84345b41089180775ac9f61b909d30a842ef5e6179977bef020785365db17aebc2eb6f942165b3b374d092f552a3e72771a1257ca4d80e2717d2a491be1ec63fd623fd45a8c827027d1d29173e20812c1ef54ed075c2d42160155a26d565539069d4caca77987de3d369488fcf8e61d0c4c306c666754453e3256aa1aaca40930a2b454f5040931405280deaf11475dd14e6c5c6b7f42f9e72250472e52245415ea4ed78be3997555d0138c68d754a8ae9935cc4281d21b44524388d9cc8a654f1e88106f5fb7c3228b5e9f08bdfbe7ff934ca4b57be7b8e50bf3696cd00ff80a7b1390b9f685ed81ae97d7f2c192d49059026c2d31f55a26ec672a005855edea4cfe7728f271f3603a20cf188d64e772a9a60f489ba8b93f4152798289643e6bd41893c9816d5a4abfa4811cdb536a238a2a563f3145a39e328454a3a6caa85d164b7bfe6096d05740367701e2cc0a087799d8298ee97f7534bba15935cf5cf73adfc97a86c780f77736cf89a9a0cc62da5387457cd860bcebe58846af5a724c591583911e8e310298fb90948abed17c6b9101b576896aba07161187194fcdb7658756704429bbcec8724a108cd2124da64ddb392ffc09ea84b698d3bc597ad1d5f3f0e40a1d150339fd5e58e57717deaa7feaa646099e374ac5b8306be4bd2981c63e8e01661833cf7963f9ed18bd65b279965fac8abcbdf59d05330ae0f80e60621c5357292e47625226445d1d1aa31361acf5caa413b0635b675ac60c6fe2caf56f5432b9909e1b1c6ec67508c47621718f186dd42531b317ed27cd1b51298e3ee7cf4ac5008f6f937a8673e35cf3e73b7fce4c85e81a5491d1be85aa863d159147b0c2b0458f3c7d79e44954fc4ee4703e57744ef685b7349e3d654a25f45631de496dbe1d46860cf45220410a15f0b6ee12d4769740c8d8df9c1927414d2da171f84a0d6157b1d1fa59e4b4699f3651ff5645b521066f43010de5c90477e0394328cef650376a3fd99d69592d19ed60ae5e69b0fd2c1057ac1efe9e5ebc8a5f19ed6f31e1dd751f08ec3617a1f8762625fd41c5e33fba4f805c9109a2f8d72513a44667d9c4472343af20f896f223c5bd2989d27880366f5bf565588972f54197d239f546d7a595ab8890cb728c79fa274260d59a6ee7515a5cc8816eacb208401192990f2fd7f8c93fe6a11a89ecd0c5289298231282e610de805483da9a1cf819301e5a6f32c4a0604cb0bca5caf091d1b75537b7425e6b7468059a7ce3628bd0fd97b7fd628743af6ad13a2cbbc3b0679c2c8964696fd7200415eb59f25caaf4dd2e6baaf102a3486a243082f627ce82f083aa9c841324cd5add0c04c25260dea10b33649d77688ca47b795d219bdca171529d82f503262d210e509723f76686c04a965966d92629582829c240aeea0c05f3c124a362cbdaccef1b5351322ec4b92d59647179c790fc236168be90b36afebb3ce0fe65947a2bdcb4d4c0ce89a4408a67120a97218d20c91c8c969785f2c9674d468db8a68e7eaa0faff20559f74faaf7eb4e0950147ead0f407ea9b57edfe5b58ddc721d6df4c15b719efe2ee2bcd10adf0f07a3d911454354621f4132bd14e68d42c7767494a0e7786094e77555932db49ec0b043647e10fc665ee75a6a8b3f10c88335ce30c7224870000306e01dcb03522913273be1d750f56dcc384506c3034c6f9d461b65fff35778f09f3784769848972b952f605c7f4cf8bb317e12997267f190b77801ba54e8d113ac4b79ea8d714f846f6730c8e28924e50a32b9b8123289046204df779453341c9a05e05813c494b23998a228dc9aa498cb098b912449b3234aa307af70d7f9005afba312a4fa0512a69cabf305b554ec6e48fd497fe9edf872037e9a59b4414e1394741f8054bbbd4641f9642dca08049d14e7247e93f24012b9da9148bf3551f6d0200063c63b7d83ae04763085454e8a237431412d3c3929b028e28b668f1bb281d7376b21f6bd4181c7ca674fc4e59ca5ab200d1287300e88d0a816b47fc08f22d2a262215fae07649c92fe1ed383b92b310ffa1ed77c42b2b68e073a88545d7d245787fa55989f54bb416de462455d10f411a98a6a7cf24f96ff49b6d06eee9a7374964852ac1c9cce4d307affcf6252adf069035b6af568cd448f44d8aa7a5954d8807343f412a61f84359b67231de282fd8f2bc738bde6743fc8800741da92961da0104df4cb576723d4ee1a5ef241e27a349739d595188425f480c2ac9573716c606966fda62b81e6c2168655a3cead19675ce6099952facbbd70dc1757b8bfaf3a894a11fce0b9d9899065720f7c4c79223fececb3cd086cd934427564ba8c269f8d3a31eee14629d4bd70471ad80ab18f1421c50324ee97c9cbd8375ab1f1899e74db4fcda824e090ec6489b0a7540131895b3ca11461b2dbdd7bc0d7d8f039326871ae66fe4074bde6bf41a0e06367e25c604bd2603cb6b8234228188f9a71d488a7a50a74d0eae48a90e15f5ad968f517888265f16a450a64ae684b9229efcbfd3bc6b9d68ea91859fcd6e309223f889c71bdea373da2550dcb9a69215ddee73dcb0b38a2ba878959e603211f140d03431e01e4586877c832647260c22f639d34c75b3d7572d472ec7a2846a0a69aaa1437ee76e88502947b71e0b97109a2bd75c4619c7fc2d557a2882b17e9455f80a160bbf32e0acb3c22d6fe9ee88efbf3836d1c246b5c9731d94a196880f4e4c09c916b5a40a3897895b7c7c4830532b035fa5479ca6193c9213fb8f529795f309f4078d476207f33d201fdbd832f2020063bc631ecc00d2051fb1c729debc398c75578576e0934cb63e67f182d43a1cf19520bc4bbcff0f524f25151a39465acbc87d458a8aaff218b463b925c892852fef597866c2086bdf4a36b7a8fa05d23f38f40a5642b96bb97f8c88388a0d638f9c6133979b937955f22dc7582261d92eb1ef40389ed4f2c6bf818ee5c60118d0a179c17e2dad7bba8e685f7d3549df6e729433efa240156624c34f71016f2b7e5479036b3209e4d4e0f03207f35a1fcb16b8a67410855a1579533d6f35575dcb19444fd1e20a2dfa927424641df175c8a29cf695826202685a3c53b8346e3449f894c9fa6252bcdba92285064012652be64e3219ab991db436ef4c8b72a616da81942a5cc4933b1290dbf112383ca5a3666fe0785a2ed96d2318d27981ad2e01d6d9206016315cf08e04a9afcc5a2c9bfb020472e1a98bca5017410c65579da2019aae52f78cdd0cfe5dc3e66458617c46f9767588657e19804506c28d51045efaa90686146e599e02dae1abbfab0e087147244348631e4230cff24753e24828600a3149947111079831d4d78b18edf47bad25bf44d8bae2534c01dbe7d39845435d69cb7acc480ce3ad017a9d36f784ddf898ee3364d1c56c499313cc1b26fde218291c0ab0a0c581024d8483f585af7b8e853aa3dd488cd5db814452faadcaef1c19273887069b7f19aafbdb2446ff15b0872483deef982c0b69085d598a59d574fc7ebad6f7736095f0fe0c4126639259baf8a122d4f0f170025f0796c00c9a4541c48dbba94b6f3b80b2a4160daffd3cea21edf5455c4f098f76c1b90905a1e6f06c0ba36e22f3dfc70a21804027ea825065df2be8fe0f4eefdcc313dbde9ee467344b17dcc04315ed3c50990a9879b440cb8a7bd000d885e5f499da2440c308b5180f1f6a3049c3cf4c63fdcaa0658cae59cfe4c6fd8b5f28a39988517e0a13245f2563aadaedf9bb213ff563c425f5784744054cfd020a38849f261794abc30c5fa0ca84c21541437135506f8071906138d3d2abc2fbb6c7ecde8a26423d5a4250d1afc01ed81b7515c4c75825a84ed1737346360f3f2daa1adae99bc23d3bd38f1a45e346a6a388f9fd25a14a237f14709d79ec8f0c5894cb268bcf90896b8f2dc520cb2e9437bd00fa6f767cc8cceb50275a9eeb399dc35aa1c78c1eb1e4ef5f72a1b56e358b14465bf583a1befd8d37605e29355008118b7f18d4f3954290dc67416f39557580ef42fb9e35f24d1d469cde6b17061e286c5137099a82f3818a544d92619413e8f9cc15cd741199f3633a82d8977a5b52574f65c90acc8d65763505a0b943289958e2a8a708632ac415c2a9d9deaca7f2983ee1ca23ddb79bcfe74b11f8b3bcaf729c0c19f732920e6b864a76d82865ef5d1506796b518f0e2c15ada58eb606e56b5d133e5d5c31447087d01704b32ce0d66da1215a9747df1c4aabb29c2bb50fa2128b004df8b96dc96958ae85d3dd52743d6036b897da4160d67303ebebf58dfdbd32f0155e18a5d490ed81370bfb5dfaf9fc5c45ac40e1dfbfe6ed60acfab164c760e26328c68738ed7c5812ce9498ded59dbdd64f425cdec827e009fc15c77325001035f05c7b8fe0f9c74a62f005e59808cb3cfcfed242e843a4fb5b83153f016d05b7b9363a58505dfbf0e013ea9da9d2e448d8cf4b4e3fa9f6db018f22979a09671c4091690b62ee3e3da0a36a969ea1ad77f3291186b5347a308229c2ebaa609548b071653bb58ea2f5218480d57edada859dc3c3e6f092003610ed1e9ea2ac49537541fac198424c7dfd95b9c153f329045421c7ba24e86d37c19bd4b1589ad778e2e29b46e0615763aba4f81032e29bffa9674a26af8f172130bba438f526b8470b27b0866d1955a561b95b6012188de32aa42cc956c9d5f50a14e6f7613c376827174e9ce7424ff6f80be46dd7fb85723bd66f20b54b1c54044559454b0154f25fef75993264effa23d6ecf65dbd19f23db0f3997974c4298822c241efef7462d393e40d64b83286e44d65e9242cea185ab7ffd17e2361ee08cf09593f875a14f51159246040df2a6567c60d00b02d661c3d928fd859ea59f1b7ce5fd9a587e139aad58ec6ac220d5c9d8ad7b0a97ff8095d98b8328683393f7948a716dcb9090b847239baacf70659d113d4fd6a482dd97b2aef3eea4e31d71c4fde1f1831370b67061ec94ab8c1dd8ec0478ea090a4e4be01309c149012cc521107058e2a594ab4672ca250987402692f05255483b920204f0fa3c4c7e965b01d20c0382286ce3c6a9de21c14e94a484a18ed6091ccc7d43c58602b2a184a3f189f7470a15614528d20276d8202b45122d1404fbdc9a3c80e696abd84702ec54cb7024e5b32d159c98e26ac8f9c46b41588fe5498042a49734a95ed558d121e53400e0662999b0a1c93627f541eb4a81429d40091e24a9db45df10881e3d3c10c1a424296ff0e3c4e246273e0797dd31fb2164082af8ae4f416b13503c912b738747c1e83c40c4a42114dfb55de2e58884e50069e0eb1440d7de7d625d8f974488d34fc16cef8bc9dd01eed01fc447dfa378148cc4e23202c5774872cf67834c0132398f4d54b4c8fb76d17a46e32fc50fe891938afc26406aca3ef41c5060ad8ab9afa817ce9039e81471bf404bd5853302602192782fe27533b1228c94beea393cd10008217ed18fe6420ca0cb38b0f867a80fde3ca08bf018426f57a7a175feea45b4d6cfeca7296195e3017e9751ad6ac53aa0a0785356aa093c81b65a35aa06fb6e09f9725e0ecdffca03bf2088ac5bd952659db96cd577b8a6c52e0e6c8e06cf2bc07f4d0b620b9adffdb411ec2fb527b84677c22c3b1152328ac7ee4ddb51ac4771a39ec1920f71b2ebbc73a69fbea37e208e6507fc656a52f1f8beb0213189dacaec9ab779cbc411fb70d63f7dbcbdc906502a136e8aa0324e4b48abb3627a6a087e118777c822fa562aacdccd9f98349ce713490bb5cfea577cc10e5ae633a010f7d30437a089e486224be9bd3dc8e0b0a0baa60fcb85d81427a55322a996ebfad86bca9d145ca92a749c8abeb5ce75f20472f6e3cfc995e3248b6682a99c1ec95393e7ecae5baa430e9a6c41207932df9e60a9ef964af9590d13f9c9dcb34f40b7956f8f3685069c6c4c22d1a65087fcde6b6cf3b5216f0a5d707cbd8219a2e77b5075f380e50d03a261bf7ba0fa4ef3ce36a23ea2a2e8e2202f401fd0d4d896c2f95f29dd384f11d61c00c23290909d45324a4e92602e50c06b3b253e33c571bb1d6f101b6cee388c991585813d2b50ac5c45d3b11b1529353091ebf27b18f973673a099e25544b878a822ddcdbcd25b6697fbdaa0d4aa88706c23a38b0ce6493c37063d98585b78ab90dcec9db55b4938cb67608b946356e8c8589e4230766c999e2136811b96fed8b46bd8cc367be81fd0918d41549951a0a2a7941685e0e04a3b485218e77009a63d2160dd102c32209163795c27a297b517dcf5295b251164c1838d4b41b827a6ea558abaad1011ddb51d1a06e061dbc42c401b74768a61978db5b7d0a33ec2aa5e178a9dce0a948d1ce0b5670f9adb23afe554c0b0d1102257f30fa149204b449a8ebad40c88cfed556e6316753df439ec24aa14184ada382eed8875625edf034d0dc0dac76a22167b8ff62713250606cc27021a7fb6e7f84483d1ad0a19c8d48d089ebd8feef0a39ba045fb5ff97262068ae27c13131293d68f8d4ae5a9b64d0ea68833681ce0c8ddeb415d4a985a276d1a4d368c9681bcb029b5984d311da69dca15700342d9a0e9926d06402921972637ed5ba21cb4cc50ee25660191247d25574a27f1234818c534ba543a2c559b5e29eea0b399453a5dd17720dad0dfe3af7e10ce839d86b111721dae0b50f22791f965952a49793a71706221fb331a0a55e611df0d796efc5bce2dda8684419bf441a2c23405efe798a02f5d0c3f1672195225f7d8b012356585c6ac0ad69c64eb9712cbdfecf20a7b5c8756f04c2128066218d8a86a96045084566bd278a06bd0085f88d037dd4df371ea79930bc8f5ebbc5c365756a886e562bddbf8e867dff9f7e1725b06de63567ce786a284205d2b2864d1a922c77b2d7694a6e1ffc7279027c3188448b7509754e1a61dcde6263c74aa05c608e0989a4088b9348ec73282705fae615c4a1d8dde603b6996711dbfa6b3af5fe25d29dada993d9cd437a845f4bc00c6c15b7381a624c76f2a67a0b860dc8496a557c5c86b795e1f38f9474e239029269d6e5e2c8c9d143b51cac8df4b8d54e1fbc0d876bcc1b0503eb29b2b5835ee3a0217b8d1617992934a005ecfb4548a50ac02ebad1401b38809fd50b454c713d6864380cf33dc3822300a18711d538041c91a3f244cca3c076b74970088335d5034192e25c76f50ce81f1f8f685f4e5f1746d0e0b9ad7ccd115ccdbf1a98e1f03227a196b3a8ca5fca32171d5f0d4bb73ce9422da35e035401d9eec1b77a73cd6b8b379b87640cbb1ff4b907f2cebff9f19442f33877e858f11b815a602dd1d345f94501f5c8f22ea08963f1cf0fe6901a97a3cb333fd2022915011abd02e00be9423d80681251cfe9ad600d1fed5da7601ad4d7e7c8d9760b028d883f1f88e0a04222083c7d68d63d6727db25ffd2620d7295e0dd51b934d53d9f8010324c3569cec8f06403d06269eb9cf00c67f55b07b12409bda4476e747265a5f669ea7c7c29bcac658a6775cb8f41b6a065a29cb2d7c9729f1333f03c44b5549d269cbf1042519ee8126bae30597160d9cb260fac29f05e85b09a6cf7e771fedaeb1a31aa88e4abc216df535e6686c07a86a2e0bae76d80725a93b02e6931a7a5c34a912268c477da2818f0ff7966b4e6c8a49c229c2cb9907ce2bbb16c630af0677335a7a9c84eeb59a91e89e3cf2b192512f6b9b3f858516d7fc00a06dc239b009fe3e7a5e4ee7ce8912ef29398efba8ac4df4982337ed38c4f69be20a02ff95db2ebf999586e733c9b577c11998481ac64585243556cbc722d8091282efd1caa19e355d2eed1842ac99d8305b4870e781842731b8f688c87e26805680dac6a3504000e025b350d2401cac23c34824906c6c2e1f94523ec7160717240e46825f98e6aaa4c0ee8e229a4f5d0e0be1bc01c2acb387f4d631ff72b90d9c68783f8ec1abd4d769adc1688315572fd12960f31d60561a9dec5299b750bbd45376730b04a1a31b85d1a1eba9993247a243447fa804a125da0704497d024e8241447fa014d127da0714497d048d027348e740145129d4071442fa148d025748ef4015d2aa87d1a1eba9d93247a263447ba804a127da07244975049d02514477a014d12fd4073449f5048d025748ef4014d12bd4073443fa149d025f48d7401dd31fa187a70775166f4b22e1032fb0a8e5c5619ceca74068200460444b3da334382f14692dae483901dccabe3eae0bd31ddaa9af93596f8b5fb7493a0cd99362728251fb46d235d6c6871808b4910b162fb48ed666de3232c24508f918d6f8cd4de2c3179117fc0c958d60743b04e0c8e64f83887884a23404b2dae7f9177f05e322114363a216622c210e488d399d348988691394a2bc737a3db871a564e89865bfd40593a645023e475ff2edcbfc5ebca98b020a54aa958b9e2ba28e9cd01d73430772ce9c529992967820559f592d8b962bb29261c24eaa5628d247d949b24f581da2309df0c6543d443aa5d43ae6b2dd7876a97c9c0e711f18abf4da0bf1022aa4506431e40eb239a593059e6d993c7c06e371b21b17371c6b3e37da0c4895cbad783f19cac014c86f04b78ef075490e73d47633f084d38b4b381e899a8df1ab9d2f0750d50a81819cbc20a6de9c248ee7ea02650e8f2a9d5ccc9b0928db2f51dfe84a6ba19762ca1a2a17eaf014224ca715c40a564423000e5ac80f4b185c0abfcc0c4b771afb717149dd73057a42ecde5a82df8a9622294e3e923cd1fc7e6a6d7575947b8103492ad547d2c7047dec24f142e6365997330b278fc312cd599f1036e826834d075eaf1a052aa45d28ce381b275aed73f5e1168b06b518213858c38754080c3dfbdf34735c746d5ce0969c71624ba694e1db5507991367724a3e5adbfb5d0ff1c5f5802c7602268f7ab0454684b2f9dea80cabd65f758ae3ea27674cdd6874b4a9c241d5a82db6d16756e8ecb5c58950bbc5c8f9503779e414c78b0d81c6f9188ac79d68a05c78c3a496418a21ebda9d00a91da9b3d5b868c15a0c6fea2b303648d8dc2b5e7284ca01695c07d9d7e71c7158ef8755a945732f87558b545685078a3092c4344adfa66d4d035de30a0b8ad15e8ac869bf18fb18ed668bc49654286538c77b3f035909f6b348d75f4082028ef4c233e64d32b2e623d54d3fb17620704d0e316c16798cde9a4a4d8cee6a6e45ae239046a018497cedc6ba931c228b0272498ac7f10f0c85b5e3a335813f951aa48a7970c60eaf820573813a8e671cfb35445063f08c05ce3560f47ea0094d3354d80296bf2059c09e2719a6db3ce316ee0aafcf98c65c0bbbe32d4956ba23f20df2089784c5f9dc7f400c4cbc0d41648ea23768956adac880fd228a8e6379d2278863ea3ad7c008f2f4f6bbb553c8f153805b36b0d9a202071dddd3ad86d89411bdc5b2b1d0f327ed38bcd84d8f16c83a435113a98a9f61ab32de88036c078a53ac959e44d4786afc3eb9d8646cb05c59ae9a15c5ab4a67037a39f2ea484cbce7c000c3b3308ef51ca0fc8aae72904c8ed312344da1a025a61cc6f9fe3ee7df98473389531c0a7ad4c0227416fd30f9ba47a28d1d85e4b10a017e1389b9ef1c0dd66e0ca8f27ce38e0fbdc29b28ebb5d20ae6823be8d908d977f860dd369d1351a59b5e36932acd4cc5c0ab4f2780be91caa94e2301ee68d994e4a8e56332c3a40d9d4965e9e4b2506c7b492fd4c09d5877548692e56a0e6ae2b75c2b7e29bbc753bd3d146c5db5b6f00d45056ed8f823ef4b3335ea09f8543ec244431ac8f6d08e266b69333a269482285221033a8bec1e37feb9a6d1bcc0a74dd0103324462082d5d49e08c57119472df01bd1a394484057a32f95a7b5e0ab2f3faddbc35ecc31df755420c96e4144d9d2a84db012f309676b36562a870417d5b61c777d8180b2b31492367cab3bc8afcb83a3449a31fd587e5496249a3da2ba7cd939f4e169e78cac5f450a6b02022eebe8337afeb4e1831e1329369724a3dccabc0f3dba526156ea270f1c91e8e719d1246c2244e6ac6999a1c1df95861d9329b27861217ae27d3bc5d396ec8c0924ca5a91391695e22f9897c3900948b58510797610e70801cc4f3d35df952025b9ab5b774ec3efc73b6ec44250e290b728305f170e96bdc79bbf0120515bc750f0dfd70b6e4761d2f09ab9f4a9522a4441237ac7ddb8435cea3023904a9294d39554b57be7ec5ea5b544f11169a1ddfd52983182a5c54df5af8f13b6edcb19f1ee6e3e2bc861ac8075e8b5e2a7d016bea1f85697fd7c8500defaedc42a423f3fb93463f1c5a38539da7943c0ee6fa6b3b4b28f1689412018c83040222e3eec3b87375f5ae028cce2102a2bb2cbb8628655f16bf1c529f531d715cf37509ebf817a7cda8b07f5093af9913c5c153583be62d12b49d796dcae1e2c7339a656270e5f32ebc719ce38cf38f2bef028a7725658867502026eb691d165da29fc17002cb454387baae42d0af6d79220ed6c3e019712e5283edc4c1ff610e06aea4b2573e97dd0561cc9be8b019c416a0e5c1ac95cb8e2a11580ce6e3633d9a3d18f4b7415d31f4bbf5b29596c87cf3a9259327e1bd718eb43d34429d965b260c3871623f5f22b7426adb8c88bf803c5428903f7a5d9033795d6466fb89125a59bcdc16817f1687d540049c329e08093f819ef1a732598c490e960529ed3d327c580451e329230e34ca1e03b133bca0345230b41401f61d60912d6ac062ae71926df895a496eb7ee25c5ac8841685b4870992d50309c246284eb4fe681dcafb5f97a1aee85f672bc2f14f94c0463690c9c77749491a814980d6db5a1c6b039466347cdf249eb002578c4cd9ed26a840f59db547a699218fc3028577cc3bc5631bb2695a82612f4acf72c3e6951f040d8d839eba7bdf94936ab1813b149a5cce6022d5b5cbf09bf149558a04487c8f81008f8f1a4a334de9a3e188ff9aa0f3a38ba37d4d47a9d4b16d30e454b5969a74fbe7ae54c3a3137750d45feb377f31ff832a0ffedd36d45a4ab367751c60bf86e6bd9daf72966427b848113b8df0379987b1f78eca3d416ed70f5ce9eb47bed4e523afd4fa90577afdb095323012fccc031a10539656309c11b5c509d9130914c7b78e9b62e31c5596cdb934b3b85d8a94c5d7b95d3a37789af12d83a8e80f031033dd470009c70841d24d340cbf28e0769466a8914ffc568edc4b7dd034eca3511309b5c8761391c8eede01bc09da0880085d18220a90f201bc940743444182173e1fbc4b708895284c39903c1bd219218b9f9c735373ce20a8385ad9916777612301f7d4931a322587710e98438a39e65f9279b3326fa49cf147a4927d41842df306aa44988305b06545063b2ab10273f85037f551cf464f7ca9be903bf145ee4048c5e1f4aabffa24178f45d279a378e9095d041132042787880e4f8fcf8fb401723304278788ce0e129f9f6803e426480f12b8037520911c1904df84825cc868c80acecefb193d842920a31b5f098d9698629e7a474920f866a96649470749179145928e44961d4aa9a5d28d14648b47251d69477a827444dae2e5905e783ec02d1e0b7c232aed483a0f07dc11890e7da1b9933c32a89c704f338e5e268ac23814fa47234944fe50f8060f8ac23814f2c1793e3870483c4561dc3364f60c993d4366cf102a240689a7288c85f008813c4278280ae350e81f8de88a742381c816e9e6e6e6267443511888a40344d20122e9c0a0ce4c6d297792c88ea7b9934178368c50fe4c3c31e24871889c3dd4670a993991522412da48373bd26cc1007758ca9da45355d7d436d2a4f18439e77b46706771f0fcf9f1c1398d53c4fba097f4688708cb87744bd7bc44dd8d7436d49d19b0c5994b364e6489395e4c2216278e2c0e8d22b8a3904c247bf25463c02973c23f2dc6f0623f2dc6d8c1965904b50f9b65e310a4e14404bbca1e72577789314012879f0d354ddc3da6bd811904cb845da9955993c216517f3a22f0c2a62eb3883ab7a7d7c9ca6cad615397797a7dd42455cfba7a601b3ed3dc1df3d311c118fbf1d042fa1012783b6fa7879587a3c707f05a90802af3136577cf2714750745f09eeeacbd52e9a86189ddd93d794868c0a338a2f9f90c111f0e1e707e6e34f880708a28b9d9d3e238f17e6e98983869c0c1ee60147bca881359ba949cc8d28d884496ae075b45647945acd89301bbb346f64c892cf01807ceeb444551d484b1140ad17f8e462149e39725e08ea22c051370e34614648b09fe3255a2b4829c3ab88336ddf3993611fa002f6fc19787472b1535fdf43ac61879aa2f70076fa04d9cb480bbe7c383266e1fe803fc0fa9064aec83fae07bf0c1f7a02449f230f790f1e7d9d8c00b44204e2c1147b40a0c3f9b4051894ea79fd59c3d4e84e2a801510441438e0f91dde103a1d241f5d153fe2a831030d10226625013821b1bbc20470c57d8e0e06546110616610821348327d4208061051880e1058b83ef7e45c020436502a6fb1501430c9f1c93fd8a9841087bee57e40c61084315fb4664818739d8508b3044b1e17b48c08687a18fe2e14d7040cda46cfde61458ee57240c2a7617da46c071bf22614cb1573e23b4b2b2e3a978fc831dcf85644b07747a7eb490061468810811073b8621c58e3fc4996798dce06e148a61e840da905211548905f8fd4d55fbc1338e322560686dc0f0d93d13f65a7bad33515955f5fb775c2d6bfd5e67a25ef7d55e4b7f6f7f5fe70d9000a92255a8fc4b2aa549527a792aa994306aa1be94ee3ee04d165af0f3f2638a81cfcbbcd43e20174ae022e7e50715061b1105e8756af003212f3f261d9e178985289e40f2f2636201901ea2955a4481294fb588029a8a28305dfaa47df898fa07b6f332ff4382c2e7455ed23e7c50fd63ea7999fac503fc90aa8807e8ecfcd43e9ef6f1b28042163ef2352fa1788029a550e1211658fe3d092504824d09e58c17bdbf0d9f6da69e0d79ad8a9622601ed287cb34fab47fb1bedcf18800dc3e36d5433c22e0c3d0a65f89a377896a30d49722658cf70778f9ee03deb671e41263159c40c4eaec7429371e6502e2685e078d379e8df9996829253411714427d4507b4189a7325fc4cd401c4d1f1f48f1c0cb910295088243f8c91b0f87dcf3a31e228ba454ca04009d520e91141b471294a474490a3d23e2487a1c4977891d25c54bf2d26110192bcc68e0e52002fa205d7a061e0eead2b1241dfeecf844f8ac304178897e0a2901f6648b09ea99b0aa25bd526762a2a6e9b53a13544559d4ab3d1395adafac6ac9faea2b457a7a76a5e2e899953acb38e98c324629e35443233502154638811b86e0063758d6ed2d7bab161187c41ebc16fce29018840d0bb0e1bb78c4b21a2e7968a831c663b96629574508425df885ee833c4d440c859ed61d656922e2c83ad5d106fec4d161ae401255de8657f044cb3ef9f36c34813b99c39343af439dd9839363e4e1c86616db35ed37779ba6e7906c0e79d7c4f9be641b9e0d388758dafaa1288c6548fea31f9d5a11013f49439ec9233371e2084a114790da483987c89c21524c1c4a79201d892d92865ec02371042d4bcb9f6703cad8d3c09933adc8e199604c336ced59ee81edec2f775aa6eddd11ad757963ac24e0b6af57fe9e3212105a3a2d89232889c4117cccd28a6f8a44acb20d6e802d93a79b22984db040c6c1664ff3084f053e5a3d7f66ce121c733a89237320754288754bf7907bca892cd62191c862e111b9244e7f4a680617ed3e12e125844b7ee06565891359a014d10b1d259105ca20038e7a87bda5938032514729340ddcf630486481021ac9c9d18a3882531c1271e2a887c9a6b9f476897108140f87dd367c2cc18e9610d66db46c9ce8f52c11ab9f17d3fafcdb32682cc15db5e7e1185bd2883384663dc451f66b0f0f8fc01d982376017d808f38356c9e9ee521e2e8fd6608c4d1e3614f0fed09ef38244af170dcc34f1ed92221056748771436d15dc8e21c26afa4b0eda99b3c286c7b50b6e7b23dcef6988d6d5f6b6c7ba9235beae1a63b0a675aa5e62bbf0667db577a298f60882dfd6dabe64592a448c4b6bafe6d6b04f53e6a5eea69ee6ab27dcd4cd47725a0a5c76c754759b9fb80cdb6ee2225090712744bf68fde485aa9c8603e528f88227c449647df211027e0cde3cec4c66dd8b99b203b1338c3db3913686722d3b2ec9c094067420371d7b673db14f6dcb773d7fe560cb09f7cf2492fc48fc16777295cde322555e0b57ca9026ff3757b982f6bef755d6b0f6fa5b5effe502dfbc3a43bdc85b60c85a4d4d46f9ccea0c5112db438a2c5112db4000214a090050563d3197b7eb050cc172f391f8c5707827d84110a53bcbd7b3c3bef5eef1e110c4bfa2affaa94550970079fcd72c4c97257c9ce39afcbebf2baac56bd844f90197699a51735c350150e85ec1876895d561007062809d49148e04ef60e72b175aebb03fbd4892cd9cec3f182c03e5fabee64ea69e0c69f975d905b78396e279750f8072e893654c4f2c46a8ebbe224a87dfd0a9468454c8d3d7bc8f745185e0e79fafb705c3650077b7d56b39a7f98c72e19189d93461ce905676b864140c2c516458e304346c4c1c1b9aeeceeb82e83b8ae6b06cc1890bb9ed820118c27228fd4912a546eec1f852e91481c7164d4c15a86a223351d88a4833cf08b4d0f2f29df03db52bf5f77070ecf68848138e22c16d99824f2f0749127f2481da923039f6e45f8f7d931ec7a17da1826c23ae66aab3b23f674ec3a8581ba2cd3978e6919d0ed675236f62977999e49d9a0184d3f144d23b7c9437a9e681ab9b9d3cf2b042784c9f4cae5ee47c572866176ba9e1de3a653ecfe503f4d99d51d9d303a4d739aa6c9be5ec9bb57eee0be8e7367c4c6af2fcee042f85ac67670346fd732762eff4ad9f49426c0451e031d8838cab479f95008e3d89265592633d04ccaae7f57cbd4db0ce76e26e5cacf25debbc4ecef66d63ebb745763c44ef9c6bee98c4d8f8f717f9125b4e510b7e941d82905e9ed5cc65363aa9dfab55d2d93dddaec1604ca31dc3bdcdb6fee8cd8f43acdf75bc638c77d73a7699be5ce7e03359bfe629d113bfbcd3197c64e7307e9f15d6496bb99149cbb1f98b67f33299bfe7535f52e32c327ba9a1c235ecacb1420d0925fb93b625fc7b4acded2d6b15b6fbd47b85cb7f2abecefdfb3b4a6b37395c572cdbef269e8a42e0f92cf5eab94b2ea2ef42704e8326e97da4f2e75677221b2eaf7d52f73bdf79b94070581fdbeca568bac8bac5fbf14f5de115b6469acbb238e9036775295d6e5abee7a7c2721636fa0665bcfdd77b5b5beba7cad8ee5ce828076ecf40201b7f64ad31003bf4ef04600eeea95b255c66eeeee314d430c7cb5575a463ba665b6dfcbdc594d43b7a6e71604fc7dbc319ba6911bf4faabbb13a93b930ad2d2da7bad4b37666ef9eaf657ba31d25696eeea69e4ad32cacf2e60f9ead40e6b5bbf993a96bb233666dfa3b610a635cb55e62bcbf538eb11b582bde6b86fc63dbebea7419bd67417baf7ea8e864a6d6919ea550ca5bb1a1789659b65eeabfb776f55fd5addd57447ecaa830e39e44083c68c1922910c192828a1d0c989890908c471dba669598631865dd7bdd6d66a59d5aed596589d76a5b6cc28dd49bb5efb96dfb3a1e94edaf25796d97b362eddcd5d8fe55dff1e0bf62a6beeaed35bccd232f755755fbd7bec367747ecabb16c59dda5a59bbbaadeaaf7661a6dc0f0eaa8b77791140db5b9fbb12b1abaabee7e745dcdae2014e272847c529332c68834dba7b59be6a12dcf38ea1e45edf99a8df1676c8c1125c6508c49e8603745d150140dcd8c9db133162514638c31d298b0dcd02df790499e71445133d6d2ecfbed4a1a6ac6ce581a6ac652d48c9db146648026461ec8bffbc3be4c61b2ed00eb786cee75cea91dd31dd61d8f3d7587fdba8bb4f6da9f39197c38adfd8bf6d665eeb15b989d5c7efbea6ab61225fb25c0c89eaf60a862cf676f80c74ba2d8f8274fecf94c8c25f67cb5ee0f15d5f1d83472cb649f577722ea0a51a7c9657cea0ef4174732f831d6a7c58e75d703ef24441bffe60e77d4be5a04c4db568bb8cb68b7e7b4bd66e7e7ef5d24cef856eeecdf1f6012013a8ff316c4764c8bb8cf631117b588d340bc2dba2e639dfb659dbba5397d7ced36773c3636ed2520e036e9b06f9a861818d33b4c8eb58cc9352d73723c7387699ab94df43d09021e9fde9813fd449a46eefa7bac3b3d419a46eeecf7335e21aaee60861d8337466e8c81aded987b0ad1d977347267ba030165b3fb43f5b943ee794c4fade9ee9e46ee29f79d73ce49c11b6355d772c7636bafd8b153b125740c02d767c69e652e77297bd35dcdde8e758777a432ee19a7b95f7ffdbb31b2a336f7507eb185bb689bdfe6af9e97ee686eb58c75632aed22b5dcd14c4a880a1fde624392aa692c7798470b4a4be8f7dc51f28b2a9ceea88dfdc5630fe51755b00e74e9268f37266eab65f0ad5b7f3706df02e2a4da72c7639b68bfd77ecfddfe24cb687ac611f77bdd2467c7f296e5b8b7dc81f48473677d03355bbbadef46e06d11f7ebdc6dde7e33768dcbd8efb1df6fdafeca3298c63ae4ae686696bb1fdbbac7f7f857cf38c28eb14b773fb6f55bffaaae2e2195bb21f6fb94bb23f6fbecf1928031a00d4172bb011b80ace1670b60bf224ac2d8f11415638cb9fbb1a7ec66ec443bb8239e660b04fa00638c6d02fa204f0f03afdc00ccdb13e66da92728a7986f9a12ce19d1dbd4eee69e3f2b9061041ca4804314fbbd3308d9efeda82f523cd567f5392d94940a159ad1c986e6e0b5c02451253ec61fec481fdc100c890438fe559208e4a142a8109b4af374934d9238c236324a39271b0d79e228eb200f9038bd9b4cb0ab4f9bc8b2446401f270bc202a2a4f9a8a238a2707d51ac1934f3e09678806e8522ac96803e60190bf48388ee2ef0658c40d50ecaaa25edd7a8cd986d586f207f8fa666657561e8eb8a9138181c8224f7d008fa2a89e0e01b848f7b6d8d4a79438a20eb37e1c512bd45724758ab2288bb2e285f9ae5ee1ab2a285515a5659e0f1582942def49dd419b1b0496c4dc53f778f23dbefd06c0454b8b74e9723acd4b00a15e32106a22c18d97394d9388d243ccbf4d047ea11435691ed04767d6ce20a784f20b778929d18a08638442ad94c4f7946078e9105373ce19319f2d1fa6f3f3e35355f3d527b2c4fae3859436d5278ea44f5db2e56914c12b41b6942bd51830c502dc551fb944f54282bf4c01a788ef70a4f086271b52a10d639431db0db50d61164dd18cd9da10e6f9688067433e1fe0d9908ff96ea8835706f06cc816026c31c222e340792b766505aeac502b2b06386226b66c4412b0537d8edcd841928448ad3f4aea12ca623e71d6799302ec225ba87479295357fc0fc7ceafe505aac84b2cdc98c296ef06b0e5df73c296ef549ecbb3211f10e922437124a7684e177907c8f3f0115b3421af881a866c29a3942ff3b29b91227bd832346f661830fb06fc4e51f31d1ecef72015a74cd46f9fe051f9a894543eaa8592b189075160489ec4f9de7b99daefb5502929276d93466515b6b07ad97bed55310b5719a54d9bc451d03491ef9dc4f7a09412e5bd88129271c9786da11f182a155964506418b21fdc15a3228b0c941dda2792c906a9ccbb01eac6505be2f6b66b95ed5aabb53263bb5ed7ae9795f9ee8a556c65aebb6675b353b5eb56392bf3b42bc8ca2ced7a524faccc73d7909559ee8a6267a088645c7b7e60c7c3d1f4b1638435344a2ed4f7f26695f2bd37df9bd204f3cdf96484efcd48e3881ea955ca7864d3c42d4572ca8ec8a6891b3e1b9ad22ad9183f19c1f0f15d4e31d4f9a81d60783a299d53c6285d4658136442c2eb8953ce291fa501140e0e121387239afe424f05fe1d85250f45e79ca45b3a4e800bf928f5a8f7e8ebe113c628d497f2b9236a99296df07c8cfac5d19334cd738a7b3e781a8804bc28c336dc6ce9f83f292bd2674892f42d496fc722f82b9145fa230bdcd253546c3c1cd525eac796ba1b94ee01f785af6bc7ebb02bcce139e4b0e319b06bec5cb6c8fadb325964e92016b0a9235163b32b2d8a59c002767ccd12b64847dcd345937e7b6eb85d229114c0fd9a208632ec501cbd07611745c2a0024218631131928460646cb9136db694e87b3670090b56d410eb3ce2ad436bd344967bcb5ad7b2a2bd4b9cde7bef5959c9cf9687b0aa3e1d52aa7ad411c61861ece6b4a635ad39e39caf7c7680bb077d78289104f6d0602003d1c632428cf0bdf734bcf548c117df8b2fbe0769841042f828b57ea664f9544aa03e2267e0f160208eaa30e0eef1c024903a815ed772376331dd68f64a2f973b586fefed8ad05ef3cb7ecd5fec4fb6745b965dd755b3b5dc71dc86bf280bc213534a08d0a9c69c09a5713dcd17c330cdb2d7dccdecfa6e0cd5a2ebf4dbafe8baf65abb992dbaf486dd7ebaafd4d29c840e7b0335dbd64aa30d98aacf72674d9e9d567d2f5d39bb726692d5aa654c9e6919ee98c52e13eeef32a25c3d4ff02f3ea5186358c570c5300a630a5b0c9b79c8e4f8d564fbcd9ac968dfb8bb103edc214c03694e77185f8d6118762fdeaebb6d17fef44cc3b6cc5ebfd95ecb59c5b02bdf77dcbe10bb95da5737c371201d5010973bb8398aab34d3dc69be9452a8e1c360c7dcd67e43165475f7bed59b1d06d3d9bd87a91794bb9a0d3acd16a4bb90bdae9fd89095113a4131b1d82fee945edaafdfec6637cbb4c3604dd7ec4c8b62b46787d174a66bf675fa7b9dcb5df677edda2ee9f457aeaf15db57f6ab9dbbb88b1361ee30204ed76cac4531dcf161388db54d7f6557d534c4c0d7a565b68b72f73a9111fafd8562626dc8da7a59ecbab4cbd24cbbb22c5bdfb26685a81859b0eb0e6efcdf7b0f39d061b28334b7b9d76c1779f3769ce1c6d7c9c9c9af8b60328d5fb32f2d8ac17e1de6e4fdbad996bb194eabd5b256ad377733fb1e6bf74e8cb54fcde4d3af2dabf627d643a0cc85ac139b63b40b6f1904ea4cf40c57bf819a2dd22ec2e75eb3352d025d59fbcd57360373c55c1a468bd1f47bdb9ae13611a61de6d274cdc634ccc5d775401133744a9010e83d86d5ed945a78755c1abf5e099d4ddfd1f4bc4cbb1aa699a6b926e76a1cbd462d4ab5d310dd7e727a6ba5d929d63becebf1af4cc758fd4a7f7575bbbdf8ba747a9c31acf3216407d5227c7a2bc217611d437f9fdddb5a3f6d186b99ed7686e6ee6e7a6a4ebf90c9899e20ed573ba5af1abd2e4c31adbf8e35fa6b9dd2ab5e8a29b52ca5942a79f6375bcf32b9fd827e3512ee26af5cbeaff5d9a871f93aa6e92eee20dbc4c26d02ba9bd616d6d6ab95e56e46f25cb55ad6aaf517e7eec299861818e3cefaf4ccd65aafeb196671ceee223b4b53b5dedb9bfdcaf6183fcb31f6bac76e7edbaaffb12f6d75f7a39b913cfbc26d592e112aa104111f42a8e4799942fa703f600d94380db26e734eddc9dcebd667b6ba9a7d35f67a8476ecfae3084f8cb74b77355aeef03cd9b2ed84da3eadee649c6428a14d62b5cebba3defab55a74e9986ae9f779eb5aeeeadf1fc0599875ab7dce5bb7c7eab15bb5a56fb538cdb2b40c77ac6297b31996c938b93d8612da6eb7133d5fb779efb42aa6375b5d6d55dd59ccd6eaf7f2a84eded96d6df6ed35e3348b5dcbddb7bdf62f5aee8fa30d74b96d07e51955b6bfc872a2b90dab5aa6ba55593433cb60b72cac629835b906d2ae9b5cd61e64b156b50c6671bf793b9763b6f76bb57a2d5fb7195f59ad37d763b9e31153affd65b1cbba96f55d559f32d668329342d342efb63d9fbd1c0ffa304d3eb94fd0a7454d6de50bcfd768ed9cdbb6d5b9dd1e66b314c3aa4f8cabf5f3301584ed27beae1cb795e1a6b48c06734c6ce6ecf9306f9267287be53228e36763d6f9ea75dee27e72abe27ef213ce823e2f8a017d1e06a4f1fbbc37c3282dcf3cc36ded2e3294bbb8a3465140f3fe30e7047dcef8bb42a044eea24fddc9b8df7e8ffde6895daff8f5efeed87e61b88d6118d63a6a8e699aa669d6abc358afb26cc651566f4d8d9f8d3ae7df8500773c8f9dce09a2f6e6aafa767877542d9aafb78e7dcba279edd2a2a975d458fb9a737ec264530413bac96bf6bbf76ab7d6eff69012bbfedd395f3f7d4c2d8ab19f87b17a6aafd9170858717789db7cddc17d6a19ee58cb9c7c723b7756cf70bb1e3b8939d133348ddc28af9fba7b7aca805708d0e7df1502457770834018db6937ecf816a43b10ecb9e9aeda4a59baa22e51eab3aa71325e6f234be8f5f8e13879053dfbeb6faea08c61331b7b8dd5565ba909877d33b9897e7114b2f6f530f604c3afd8b3d7ecb841196e5086dbc21cb5e6ecf990c9c82f8e6a7694ec35944fb2ad15c3b0cbda7aee56d7834247f9bb18d7fc36e8dee4387494a3dc874e4e5e0f73f27ab5d7c368d724777353d583a8b6f567e55a5f71ad87b92a4c76edd6e2aa453ab6edf530db5571ad16572abf2458dbdccd70bb5e97ad75c3b84fc73909b8b58a7aa5038e61bfcde0dc511b7fcb1db5b7579b453ab2db3f1b1626d32fc63ae8ef5ed7b61de7cb3ae8a0ed96d5221dd7ed4531d7ed612e8d67b8cddac3607a666fba9be1ec6b76cd7dcdf81ab6e5b871ee383dc3edea52cdc6aff5e58ec259a4e33afeb381f5757c984b635db3e5dfb5d7b7dcc12d0a425fd7815f2f8ac1af87c11a3f1bd7abaed95a1483bd1e06bb6e9de16a2afc9c29627218450bf9cd5bee8cd81b07d2f4f54ab30c7ddcb54ec77297b2b1d768fb4bb5ee6a723686e5ed76073e10717465f4baaeeb9aa66bd34193e6b0119bd23f9ab7dca5ecee7d2665c36759a237a1e730ecda746eba09757fa8d344b953149353d043a7ba3be14eaf67bf4eb74ff8d38e7bfb0ba318c52846b1ab9f7e9fae8c7dcbddf5f707806e1f01ecf4d2f42b8377c7a445383fc01309a669f2624f3388c29e24499224c932811ab210c448167040c5a8a212c513555e0fe58391f013555e126ca28a64b9400a5f245183185b8cb1c4132f533cc29eb05042135555555535954092a42bc2b0a5699aa66942810fc610853158a0862a9e98424e16f8ed4495e700387414963ccf72c2081cc060640d4024133749783f2bd0c7c6c64605f0fdec87850c8efcec945f2300031a3a2a060ae042073837325043183b30021435f8e8297f55c30c8a3003249216b219e0116480061c1c0745c842054cc8c1633c01a88a22e010e630a656f0a2862a0871c20ee0d0f38648042e88015f6ea1bae05d410842728ad0040daa708358851324c801a4020ac902054ed838d03651b6502f73ce39a10a6255821eb614021250010b5458158d5fdc4895b729b5aaa989699aa698c489699a9840862eb0a0820abe427f10a7143c306a9086244a78820a2986c42134d1041c5010f3f3042cc030053604b98942b80289a4021d4350029227aef0c5156010042ca008d2840fa80842922445515f4ab7524dd234a53c8e6c0a02508630d83c818a230cc10a384e00810977092eb050640c2a7cf4944f2e3e7aca2f8de02131c2d304164780f0d1538e3f8120052d9e20831b98810652885498218b13a0e1ff0a9cb024612eb6cc17e9972449a2a6c7b5200d516ca1041a6091c58b04842d499244351561a033a51b1b1b9b18bc4ca7b8c8627d9aa669fa0475f663421750ec4967bbc42a73388e68133b40c282306e50248c28c429c8c0041e9ee3380a7981a577589a58aa4c694e4f4cd3b4c49eb09841177bc2020e3a7b92e89cf34f7faee058926fea420b6b0082900925317c72a818c7e0020e950be8c21a7e5ea4f86c508799d23aa6431fd27f4036b420bbc8d7e13d51cf2b171121f978b2e6c5455279c9a6e00eb93b7a9ad9436e4af7783541bad723e5e318638c31f37ae8a56ee6f5dc1fa8b6b7047573980398ca40ad5317547c7a8a9876262a68931636adb1c3a1a63eb2a5867e5165da41478ada0733eda45415dc29f5bde9daa54f3b9392e987fa5014f5a14a66a63e294f39f5a14a262e5ecbbc99b0b0e9e4854da7316cfa97f2144d95c428e6cd1373881353486449f97bad962a8923ea431de7d2631471f4a3840d946ecaebce64b9d0a7b1aaf4bb6ceb7728bb9b76262529efa69f69c9a64296d8d4c8747fd03edd1fa6a7e414fd0af3acb40ef84f178807754a1ce917293ded4c5dd4005bd7d6544464e9a29068c444a4e9b7a91805c614471c1c1c8baa2c3ded88727811304775fa0a58e0b1e81db61a1bb56dd7155563076d551235ed58afa60ea75e6bacc2469c69a767f2997e262fe004c6a464e29992d82186b8346648b18a2ae2441ce97556184ed9210583734e1d262f269ec832934c547fe69987c094bc6696fac4910dae0f1d05006fa971faa8135976220b8a1591e5864ec4080070c48938b18a98436386d6dd8ca5de03db94ceefa61d1d4e51941ee2d51337d5129125e5f41510d9b2c341d444326f2add51738959311a339e0e1de24aa80f8dd3ceb433753121d994c68cea2959ee90e592a8627224eae468248e6814a2a310ea7333bda33ea2e70c441cd13fd3c0ad8386c0b423fab433ed3c1c4a7ea625459c9c9c9c501acf21c72a228d2c9aa1bfeb8e6c2902091224221d7142efa61d94771167c2c2d44564813b91e54e3bf69685331741d3ce344d99c640606a55230a6f58e1c01ca88a082211d8835dc653299d883739d35de20473e2c88a9823cc1145ad237eea629e391a45a12465232903b2c5e4a05f930cca9434bd2974f24c8b37b02756f12e8600b621349d6849ba74e956866552ed0172443c228ea8b5a83ab3a80214e6162e23d7352190c802248ee8e98fa82a49ca7044e168430b0a0ccf5dfa133d63782df0e68928240e914e21fe067b1e0e2d65d308c5a6516caa67ac62534dc4cd1ab6f4a8d8f482374c6ce957dfc081a2b4744c7731041702356f47e99914238cb18838a2938e4906ea23a236e2ba30db0306263d8b4e4416098b5a04a326228ee893f2c47f45de7044e67461052462846620e44464e19080f197eea8d14a11b28522a20242b650fa4515498a44f6dbe1c7acb13f608d9c34c07815b35e6d4a4759cfe5e188db3a0668228bbcf5fd5a30b41e187b3ebcc5b9b01eef12df60c57e60ec57c40d3bbbc6a7044e7082503e295d9625fd15718315bb5bb10c1059acdf70f9ad6a67168a6559704667a34b6499521c1059a2b67ecbfa4bb1b40cb491c4b05ea925ace0a874198583430e617b127838d4d24e54e11ee1ac2419873afbc91d932e0716fd2e4a22d226c283a670789052533834743a8a087c4f12912dd28e2489549208a56aa89dc8226ae1419f075d4dad8f8cb0916d45aeb18b0d0377759758493b5217334b3bd5ab39458779ee485d44967c08ed0ed3060a37595c21fab4912d5348c8daba235b54aec3437fdc55327c2af0a35c5dbf5676da84de611b7c43b6846e3c2eb608bd22a1d973a3278e6e5822e470c59c73f64c30de0b71ba43c0a673d05da8d23a84b47d48bcb8b6a75bb9eeac55cd0267b1c5f4c2c4029e3d130c23189b9367f2c4113ded60b5666559eb2344880fade026b76dcbfa0db80bf984e2e8068490082cfa34048597c5a6576c7a51a62084a2d3cf882cf9740d1bfe065d41c8041b3e135d44a15002753793b24549cc0ddf03db507fee18a0bad649c0adffae0ead5f1c8974b7a2279238a25d60988c2fb045025c330ba768fefe30f53cf26094933ee9cab9833bcfb7fdbdedb3eaf0aef43c1247147339fc15818315f3c8cecf92c8d2cd6e26d93449749139bf9d43e6e268876fd366d3eba03b4adae1f491c8428447b6483b3b3c7a87cbc727331c474a36e5818787878787670708af89634efdae127d3e25b2e4cff7802355e88cc3fb038d87600e7d7a190f073cbde8b1e4536a83f006bd077ad6551e651ef2cc59942d12fc36d452a5e31b5216de1fa628d7989762a7fc71c0d939bc7abd281c690707675eda99b38767be9390cc6f58c90a82e18de01790078e21f54031241e78060909fc4215a92454105e0be4a15eec9e1eea0854116a8b4d5f419eea565ff6600926d19007f2ec9a694284682d446bad355543080e748d1ad73beca0c139e7d44940ca0a2291651aa1b29402278ef2679eb06a5bdea377283ca8a8e8e923557468a47978d04faaec401fde1bd5989e4a8d1aa7355ea3468d77df2952a2c21b4957787307e69076a43300f96253a90b9b4e614e61d3b8447c027ae1b548359ef22e3ab169102463e041c3a6126c43ca6bbc937600709708808da330094cdc5977337643fd7714ce8e1c5ec1ab035ea6d2322f8e74145a0618709524b2ec70faaa47b6f0f093579f36f99a077a00645923cb9c38a24fc9d28a797548970106dc491ed97349cb484ae2887eda48153a370ae7e1989b9eaa821e4639e1a397fe0e590e09bdbbb197c01fa824c324d306663d29f7197f963a641ab873d032898cdcc12de3d2a5704480e167d4790a87ea8242125966782155e8512894099364285d88235b42149e7a063d8563a923e044960baf20aee3505550390fc70be23afcb42e12e5b765e4b75132127077144e677717a23fa8348cb7b5454d15d58c000000b314000028140a07c482e16840ca2259f60d14800f8ba04a6e4c99c8c22487619432c618630001000000080080d0d0300020920a5694c3a3df35811a3266c07df9a64927ad46db93ba48650db7d00b97d9251a065bc4d39f0b9bc78751861155ee7172885b89267b1aed20da221d12422fcbc1f7ebd2dfa891fe21342c1a06150d62fefc68d6442c0d35346cc626ada7c341854b0b4dec8323bc66e620764598da3092af118ac061ac31970929d1bd82dd0f86096064f6d521332b114b69afed33b330d2bacf489e9cfd4289bf2ead9bc58d29230bb9fef87fc094c7eaba5d585e46e97d14bb594f4e55d4821bbc270e0efbbdadeb9848343024aea0bbb051b290ae3a375a71edbe65f481810f5f8ba3ed019760b3635dced0110b439b0466e99f9bd638dae9b61c8cddd5629303feb992f63c32ee93461353b9a1f14f890f35e713bab36088302a27adc00c62169c82519a9fae4e169ef07f4e4c33ca4bc57b05a33092e60b524662783db3cbb12408589af2e8b5befdeae0a827f07f3fb4d351b1399f845b1965e31abc854ee4b6c1f9160d441cdb18e55563b90423d4b0f61e0e3fa0c55ec646340bea621571fb5e7791e17e6d970c2daeaac587b5f2378020e52ac14c26b800f7fc450682aada486d5bbbf30c4d48ab8c5a64bdbc947606a76a69307b8ee283dc81b49c42e2e60bf19b1125dcbc3c8816825452d1acb6705436d4c39361939690ea07e0054c939f9df0de4adbe7d7fbdc7ee05a2a858aa1a0a18a6100d0c8fbfd892c85cdbee36b7ba85455b181f96a2d1ff548040181268462a4fb560aec65e0c490217d1b35f8180dbac248d3f0d76bf403b8493ea5d5b8cb884c708a48d88a66f94eba0c84a989f69c05c175d5cad1afc1161f3ae06b838d4289b0a3dcdaf3c4294102834de374b035c93e324879c43e26e9455283d3f3933e54dcb0ca53abe43c5f19862b18bd0d1905b3ea8732c7afbb46fa5a42fcd1d58d8e672c11c9bbe99e9e57b397cc20a41935d33feb61346f86170513ea996cbbfe3a20ef1176c5a8555d98335c2b55e10cc797cfd5cedf0631be9dbca84c06b6745a3ba75bd0625851e428e3a25f0165ad43b44d50a3f138d9025d3a65de0b26ac10a49321a73da809d7a0cd91efe27468042d74a3561837e68ba878f5a8f5184e056484268d2404eacf80c181304f874c7ad9b84fc078d10cc951bf70abede43d7d94a5b3cb2bb1ca02d56e7a32aa4cb06ab5d50abe77dd890d5fc3b11b97e477a97eab0208c6f9e10d5c2d004d2e253394b83f4c27dc2f974c12929b8952ce3ee6aa95f68f5024666ae53e1f7189a5692945ec0986d04bca0709f0c734d1b2fedcaaa3c4a728abd956fff45d7e6961efddbe42051c0e9718c8fe0ce34fdb4165cae2954ad10276ce7fff9528d78b2a70838544b39e3bb665212ffb10cd222ee5cd81515eb98ab386fce9109fa41e36db731ce8e7ab14f5b045adb3ca673c214ad0990f154a1cc9c14fb69f9613ba828284dc5c070b185c610522c9e18ff67669518fbfdcac1bc789f3da9643707b8766c9786dd6b57fe161e5dea173293280aef45733101a54f79d1aa34aa97fa81aed9eda5cfbabebfd374a652d07a3407069d28ae3f8ffaaace3b3a8c1f88a03ef66dbb63604a56e0825e64b4a53e10340d149b84bfbdd6a63efec352e08d71c54740249e42c6b23c85fd934a18c500a659f3bc121e8e68400857c905dd7ce0eab0461306fa70ccf6085873296371291883ef97eb01a2cd49057720298b19e6a1dc60c6b8baadb108722d9e0582cda27c5b021ebfe8607b7865cc10b1f63a01990235243a55ff87c00968f92130a29caaf260cd6375f83a9e37f62b4a1e55d6aaf9efa0db30a0d1f1b45e3f6063e7a6a2b68b7016086a12d947c04a344a079242068089caf36a4bbe93b1effe9e9da94b5182e5938478c2b31529967e6f615003b9462cf9328edc8c6f472d2620ae52dc4eeae38902a196f2637d0d8cca94e265575bbf7e106dc9e7f4351ac20ba27d55b9afd0f0b37f1e690a1298cbab094793bb8e01a9b637c294fcc264add20f7832dcd518b0ab64a96dab9df31efa5c2f079530bd04667ae3002995c33fc55a5e2c62164367b7756652edf00789885998719ce3f3f9c8443a486a4dd9668531d9ec1e54d35044819cc66f61cf6759e0b23e41f038c115f864ab3142bf7c00c2ccfac8978b38793436908d9ab881415d0fdeef6bc409197dbde424729fda602015c69600a97f73d38e83aaf4a3772dd06513f129e441a515e0160e127bd6e5a42aefc783d2a4e7aa222fd492f93edcfb62d569957352ac25ca0cef54b8423e2393dfc809e0f4e64075bb19c697afbef065c88e7a31e133ffb533510126d18ccb353f98841e16efb25aa87bd74ff7f0280b7f5898336bdced43a3351bd25710310a4291c40972e6d50f445e419f77e687c0e9f10203b259804a77c0c1aa3a018e48de56311dd2c373100adc6516428f55fd012748b605f5c44cef2c0126845ff4163b9839c3a5b3be58a78d47b6c9270fab941cf8050fa99d5d8b23339f6fabdf576202f96b8671f4ca4368f71942d476e98fbfd04068f43d9ad235ebf97fb2120691e15a426875a8cc0af1424e5bd4232115a24c7078e9eac15559e2f35219a714c2ae44d72a4f5d7622ab41e9bd88c1fb1cd1d3f6e99cafe47abbfed2ab917230ec642828f329509b96bdd37a07e240285c35957143e71fc7bd68b5294f346c5f93306f224163c0ed05ab53a55bafcf7fbc700977762b7a3e3310b433c48afdfca237b741beb1f0c2a30b8e556a373c3e63101cbd1601cdeabf3306f341a0f9a162fa7808daf4c435836ddcbd8edf17e2277c167e315e819c11b7f9dff5ff7f625caa1ec3b98a8f55feb9979522b600b67ccbd1c9f3791d9c7eb49b3421c992473f48e01e1c7efdf813c8a96b04f0de2dbc7629cc66c9f5120df7a8bb0534370c173417dec3e02f2abbe3012dbbc6a3ed3aeccf154acef74fdb276f9e890f9ffa5911fa3c310de3c653f87670e90f6d36cb4ed4085e20b6d66819f7569e3eb621cdf0ad170a22ac946db667f2f48fc46727409150fbbc4c39f169bc5f1bf8c353be22c337f254bcaf8a5bfcc58982de5112f665d392edbc63e74839fad6404990053294d1ab1112c820c3d0d574272bf7a70109f13dd0b346ab80f5fc20dce968c31097104e12d37021156627ef862b959ef0c153643bfc2227cce898f970fb86184cf2d3f10ac99f8feb14db3cf7f0169e7ba65bd6f109f5b6908dcbef609ea01785345c912058a436d5afa6d6a6f3524de829b96a7f655b2ea494e3e5ade2dae4da0ec3ddacc2dcefe6b7e78bc2deec026afb4072651e3227b3058537359f93d4abda60f5901c8dc04d0bfdd42a845eb495c0203b8789eb762ad8c8ff30378d99742c6c70efaebcbe30260b73246dc7e0b4dfbba830023020af617a1524177f79109fc9c3fb342230dce8431eb402650ad9593f31d969c6402bf9e2ace952601a75b6e10b7b25f4d5b99ca6f32e42efda58971f793d6d808f291d01e670c458df55b595cd81774a820449d94ef1984ba427385076b6563d491b100604b4a7bd67ef725147e0753646646b58d588b9389ddc0a55f2a131bf3ec82f5201d3d2b016c3d1381765504d9e0000aab408036a3a50a504ba906f07e33da343f0819405f742f111f2b75f7085784e60011aeedad6762f5b6e8364264d7dc485a48332fda5774bac54155fe47f647b40a91a914d2e83b81cdce7aa404cad8c954dd4897424ee9d4953ab01c53086b67d4d1a836033024b062a01b4f451d89bfeee1fd8ab9bc82d2cac6fc93adfb29cc3a812448625707b1c12981ee272c4c598ee611636075b97509178a686e845d39c65a2bec1ea0a2a34aa3d56ae30e19e82613c2f90a20ff6c4d3b24f61bb153f82c97a4eaa94e2d846e0556aafcd7cbb364393bf82067d8a69f9ca20c4e9892f1d744a5cf882a8101ec6aff062c5d688e43dc38a0b67f56342380ff98441c5855a6f547985cf87b0e5519b96ec9ff36df807a222a852f2a8f0771f3cf55d7042862176cf9da2cfb860b3e461784855fb7cba045ecb35af2cbc764e6edb55a31d7fd56bb0c3d8eae05cbb2de18f1d3ff5716491aabb23ae7f6dc87c0491662003c3a60ec22e24902a2bd93c701a70a89595a9baccee05a0c9020a84a1f8b8a45bb9a8cb05a24bfc0f0c948fa9b01aa6e3f2de4fd2cc122ded37b2cc191dfd5fcfd74031451f27a2e03f4769d021e407880426729bfcc66ae39eb22b03d9d7d73590dc6dd508132957db78412c5c6ba0dc259ddc5f6e7b210927fb3e069240c6af3eed610de34944ba0d400af8842dba19414b755c52a7a57aad8b7e05148421b16f80f792f9cc7c8216aee864c1cc43ce5fa1e6acfddb8f418b579d86af4dc06131e90c74874b786d87ea29bb462beecd95dddf61226f8d66752bd7f73bbfb215b494676351afcccfbbda75dbd8262fdb09d16ccb89201cbe0126f0bb44c6e96287b00848cfac648fd5c21a2f2532a2f65373fd1ab44a62db6120f66e87f75e5c2406c364092536b652509a8140434b1d016fca18317ee34dbeb09798b510876e4a5ee8e87777d6e55735c5c1585a064408a71ace37bcdb5d13a03ca5c9a897818825ecec936bf85adca365c6b0c0577f60efb218dfb3b2eca5b6cab639cf815b63534443a31fb0a4cb21379d1a22d66f3876db500dcff96c9011408405fac559e477199e1bba9ed368ee13f4a421912a1025a91a83d78c78e1e01856f54513ee1fe56332b8741b6572929368a1d7631a9cc63357efb70edea66e3b7a8a362b73495e723e4c7196eb2039455c8d4c9a934dd13fd374d00a3ad298b5d9a3a1ebefeb7cf48b43714c8e430419c082ba32fe947cee5a17a86703496aa4cbe2e855bf17e3a652c7a7df7c09997becedc3d8a423c2bb889cd63e2fe0cd031053f673652d7d69c0343685f744bf4d07bd6dacdd11faa2b9196aa4f2fc4d2a1541bdcae5d81564b79fbc499aa2256517bf6b40062479f1647448872e00b4b6ac2e0592190df582baa70930d1bee0d6fc3c1027e6a0e25d8e695f9b4ef57dd3c3272a6b6483212a6d8fad039b6208b8b2e3eb2d7c5cacd54aab74221def02f481c49a03925ef402404317338052b24a032e998cf3771db1484c32b961d04776c8c6a07b9cd5f868fd15f204f64778fd2e7f4f98376cb2c2dad16e9b8b7a95119de18ee3bda617787da3ed27c0bd0d78e3a829c00c39fc4f2797f3fa24541bf659995bd9c39501e51aa9c3058e6dfdc3df33e5ffdda0c752ad09274a9a52f0cd8a9005fffbf4022e8b53d2846851c8712bee422101546c267bd3cc763a8ea66c8c14ef3bb93a8650b640b7220736ae9061f87c907b4c4498107102f68889c3844f55dce74f2b758ea60b0129a696ec522f6b2a079328507d5f7bbed03c9a0a5aa9f6875f5b7caf7fdadb0a1698e3fd866eb506388bae8ea2af4963bfe42aa0c35bcf0d1d5e958f0b9b5d95076ef2f4e730a622c06adb93027ea67a67d68a50f42b71451a5b285acc3a577505e9f2f98c97e44e4d5840574ae0d7069a68d92d4f9b16733995e30a8fd4580871b9af5ae166d3a53962ad5304c288e151194ae352682ee7293ad1a88cbe3ee5799cdb44e571a53a4bf4a47bce41656e15719258797f36d02efa6e3551936158291e625ffa0813f14f06aa11d5636e4ac150d0e92d22ad978aec4aad20185570e6a006faf20da9d807baf2f8a7dbbe465d4f03d6059f115fd0790c756cf04b421a2da7d9bad04a2e07dbed8800fb754a6a18ef38aeec82f4f4b8bfb61a7ce2b78abc8f8194800af27d72ea4012803fc6d9129e3113b8bc19b85dbb26835f34d0ab80702b60dee16df9dc40fce30e65733f417e1154489a7582a6428eb787ec85e81e82d42e970649991e3464750c675c3f09e37abd8cd743c42fdd0720187cc051523ca294bf993dc54a9af491717901607c6be1480ce904123766aa2d865aca3737d2ef23eb7ed81a8cd21e0decd3a4a071274ba84a1c248cdedc74cc909569cbf6df039008320fe907102ea671b889af2c5c85aa0a1010f9d96cf960c132234b7843065a0600a55185ea0b9e6debca01b996a361ec5e907f7fee2e080de0fcf2d8c94611a6434a2533932c6b9135e29b088ae541faeec55a3af0ddb3ebc7f87e77656b7048d11e15bdb97fcee02c1e6289fb8eaef470320ff3cff4c40611114309aa0d3b60dd6124a490765bef5ee8235cabca83fdab3d7b72e76061e6dd6cea0ebe037fe53e6e89d14c803ce4d131ce4356ff5fcd2cecb8d208f4f0e6b3512e09fa016382ca1da9f2221bf8f759d8f88600124c6209f0862eb3cfe93c0a911152c9bf41efa87246ba209c7a2e416ac41ac6edd493155c7f49da7595aeeefde903c63507824ac2c1a47452b70a24cac17d8fef0116c7b95b5470730301417364103327b8234aac8cd1443c71c03a9d16ef50aecee4998db2ae5181c05b11c71e360a1affaa0ed0f6c8b43c192bf047d7aecb81248bf5ff87508a06f8f5c542feda21a672881595860c68664ad24752b680812243f0b3c5130c8e655d294dc8e3ba8dd426fa61d6297fb506f7f17c30e5796d80b3ad2a9d1630b9e8954402abb23f5cd96ab12767f935301f5144c76d0afa90ff879c13347cf2acaba2a058dcb585ec22e0299dcd0184b1a3cf7e4221562a2494921bc726978f60c435d728c5e5371b23b447976f57b3bbc1aee474981fbe712c3917a82b724afd27a13ff47190a23514a9dd48cf86415093ba0f08551ced409505a11a3dc416a12e2232151eb67e5f01a70e94897f483d4a6a098e007c73830850fa428ccd87943134400340c9e480cab0029a0f981b8c86d75a41df4b95c536ed68596830a96ac9aaf85e785169e868bfdc5167155e5bb5a147c8071bfa17dc99b6ab02b0a1e3684d5b8ca11e14b44cb117b1a713ff8cd2373a1e6d53e64870081b612acc03eb32056ab28b5a26da4ed8985cb3af51c0b6f7951d482adff584b6296947c74838a1065c4696bf0efdad4f31b75fa0c51ed73ceefd5391dd9a9bdca06be520f12ae3015f5d427a43e84a8de6303100b381aa7cb72beea74523eef111d3f33c0c1a88b631c995e540f9ba6a1189ed0693b8359e7b65a42bb52c02023c97caf64ee96afb83992064987737aae553544e84376c5130df32a2803b70a92287dba1a5e4bfbdcf59685367c913aabdb7fee148080d83ff5880079d013c8cec2e3f3a831de10883e160b2261627370789dc8b657aa43f1e10dcc4d4374c0081c8a4225e3e849265ab4c824ff8ab41080e2b8bf2e32940aaf411daf4d5b30343dc048e92e93cc48dc123cdb455220be644a1aa6f541d9829aad75a1d6e6cc41171a2fa209a3be2814069d05cbedde23ba19ef669761b6bc061af86d26f75a3b273dddf7365a908cda5b0ba97bdc2c612d47d8631c54875593ae5cca13b08f80619280fd410c818d09bd9b0bb8b24052c65c1f6429073852bde5d4d7cfc971906f2ef03b4160742a9a40ce71a1387812d44ccb4b58121a9d6541400e85c07c02c03742e3c7738572c1abcd5108a3c9dc7382339ef5ea6962941ca1e708cca6bb1a08162639ac5180ca4878fc4c7af7461bb05ea87ca17a36f06927fab9980672f2a73056566040616fa082ebcf8522e76cb9261c4cf5df89a4fa59bbc3b1082347ffd55c80fea1e1223f8d861251cad9450efc63d3254bd8234769cf7aa650a558f2ef8b6ab726aa5a66cb5d33756c1192048f305be0d19789a8806cc7ae39ca4a15a1036ad3a13412a5923cd73df0963cb89e9cedfc849041a838fc1199738db0e9323224a05de1d45fe4c230d30a0a7ec764e99551cffb24c62609ca8e778e926b518e53a78282fc5104bdde88f84ab28705705eb2600c9185a1fc2d8431cab96859e686c62476297c3f8b09ae58a0dcdb5362b018903ad26200ae76a685c49c2e281a7c085c6cedb2fab92f20b36e69388ee3adcffe32258db6bf1155a60024b7d9fb473937100fe3e1cebcb85ce86580e24cc259703fc9bac7b13e471af70344f8c35ccc02f410dfacf8c0c7e05154a35182998f693b48f2302564d67be83e045e0e3575e2970b3b03ab16e5d80c9900e2d18207f4e5a3b0066222e0c18c8c60e6f05d6d089e11cc800d0fbecf378d096267c348f7c4604e877700dd211614a70c351207be7e75e86b8c9e1ca604d7e1388d8190cdcf1f965b0dd9efea6516aa1c91bae347e8861126ece4cc5fbba1ccb3452fea09917ef829b809dc2536e04b05e74c3ba901ca2f83a420fa2e194a62068a008587d182e0d9649ce0462c3509365f4a6e98e32b4caa7dc13bc6836e2b707b4eb869ff698bec12e35211820f971f80bf42b9878384824df4c5b324fbf4edb48f52f26bc04a41b74c0a3d2c716edd08a821d40613560aa5fc2cdce3ccc4fae560c416ea9d95d080e83f326def8c9d5821a729f06c981320dc1dc6fc4c07a0c90572f3ac2c6cc1fbc2a9487eb91b8414b6fc473a816aa3c30c8753c87a23227521e4cdbe9df98e2366d67d72684712bf928cec970e89f99719e66d52426813df655a9625d935ca644abf974e690958ce834b2d0ff9c209d4545c91fcf31496bfb1bb89d0d3ef5ec81e5a148a9d94d92ca2d83eda6532fb33786b6bc838657884ab7a7d3bbc2b7fef6214707392bd5950ea2000d392bad4d170f7fdf12f0e00feb95a854d1e0bd822f1b08c62eaccaf59c785508b75db03858db4c34c2a39e83db654cd478c3e5cabb0e7c73d4a9a8208a04ac0d0d6dc7e6f871810f1a445f16e02e763d22b7a1d7e4142f7c362ee60e183820efe01fd0a6243a7d310ee819dc1d244b3cb79712e866692503466623e0c9820d1ba31d759be0010d4bc8e732b905af195a8706ece40dabfc5e85f2347596a03cc0d1be1a092373a2e5801e90c93371abdec861e3df4f3ae35c5e56ec3b46aa6882c9360076742129155bb19b584711951efda47b0281d58945e7c6b3f74b9b5483b2e0ec339375996190c6cfdb9d56dcaba0f5409649521278fcec896f154d45bebf5df3d8769c79452f200316a5f8c0b0cfc0046eec4c15f5bb90945e6a0e733ea49c6a7d94224e703a1a73e4f68526b158cafdc3ea21457a70b3c449cad3df8a07b2ff998179522ce6a6e0e83c1622a40c541f60f403e88e4d658f40581797a6116999a37d6c57b5783443b7f4c9f1b4ba1c4d85424e30cc7f4d88b6361efbcb9413f83d6ecee174549f0d1ddf95e7e48dcfe8449dcb9f8c3b07d50230355ff9dfe4c5d66e9a03bb669df19c7ce3cf9b3b87cbd33c655ba67b2e2f2929421a8afc8387d8f1bb4da114e4bb21b94699b6363c800e49a3d084608a84a227c21c891fd21c067420ab908605ead1c7e5514111d31c6802b336ff7353dabd52e0de5163ddd60ec0dd511befb7f494d3894456741e43ba55db5eefde71493dc177a00aec08cad8d20385cb3a1d49c19715614bd6ba1f9abb5d880ad04996bf20226d2c25b944f16642ad756a01d54bef4ce8259e532dedd0fab772911bcd0fa6191344beaa8e2c5a811b87025d96a18c9332d32c290c12fb832b6298ffd0b1b8b9968774dc3539ae9ca66cd36396e558d71a86f56e369a65fc6dc624fc6629a56d5dc1f286345b98cd033a7ea5b326c1b5d1a95c69bb51bdd1c7b4efffcca3ec7bc741ac9f91f65d3ec8fe001904ac0060e1158d08495bec70cdb6c11dd126673404ed2e752a4998034100452c4a662a46f5424305c1e7a5069f8d061fe6b962941dc3ee0901c6ae60233dc2b4434236f9426a5b5e21164effc0484379ae9324afa2eeec38f4201a53fbf50922b16c686de1ab2b2e2f25895b5992e605d8a299803b25b7d1555bfe98223fbe47532a212c3d9b7269e98261eec614114472cfdda39bf23eb67200f03572fce11534e2ca68ba9d2e1da1a59470c03daee802d630988d10e36d280031a3cd69f3ae1ff12b9675da2d3d2b1359dad3c9d9f30355aa870d43b2f3ecaf70c32fb1dd480cc7f2c974b3131d9fb71069ec75a47424e90e92c662b5503c8ca4e109ca7afb77115a81ee683c89249122385186e8345f2bb6825c0f515ca77d5c8ff2489294ce1f5bc8091039303a14c5bc4f067203a180464acf2be2919fb4003f36845d2c855ab605843ac77492ed6cd240cca26828f50b8ae7b9e9c2387498bd01499d12172acf5567271dd639937d408ceb3f6e9fd858a519479f73788e71c8001e0482b32afc397691001db4046bbdf7b3241b3dbfb4a9d3dfdb63079f2993caa9e188f593399e76d3f1b382b5a3b9b79265e2b8606725634e7ca18d89c4baead8c7aa769bd76681b06fa5bd823a6bd6843d8dd3af49e3c7ed537141e5b7006d10e066d26e562095b3116e6a0d36f4b147888ce13cfd66f433ed45a1ff83851462795700fd707adbb9b99b802579ec7d55f02279781411ddd188c91d36a81146f4574da6346dca06a15aa4334358c19096a01a8b6a994948b03289a405787c3e79f230e6abe716e79de25f6e834c3bf427e4d8d1763399364fd80092d8c7ff2d1879461c58ae08086795e24030b01c34d4c8ce2f18b4f28b6bdb8e2ebc30018309105bf2160f4e318f9f40928b7f9d4320f4ec471988eb53bf17ef6b254b523d94fcc12124ed3602b7720e99901d5c9941a86b57a8169b017d50c1fc3be03e5748aa32cb1639f35b8ce6e2442885b67973198172bc3aef85d11531a85ae2ca6deb7975e6d8de1fdc2651ac3a45c3d2a2e4246213dd61abd343f015d05fe8fecc4f7a592e69a041abf698bd98462268a79a008ade3918495cc8fd6cbcca49bd7ea10afc81d9b1e016e4321f4601ee422106e2405c3d6ea6dc18eb944df77707c830250d9c0e871630184763070907ebd624ba0518720764f6f999828b5c0c83b513e31d16a4103258a82c74ee0e15e3d8182bd1e2ecb593d3097d9d52d0c5ce2e6bfaaa061c17455784470922fd9c1df3aa8e37e98e671603064dcfb269a164d5e78bf6be97cb73339145ae6fa17892e5aa96b85c8758dd42a23cd199b11975277b5730a5cfa4f7e9b103f3bac22735578207a88024f60910576fed52f5ec394b5919c917fe7fa245538e926d2d6d4342195c0dc867a08ad0497d91fd4a0017fc30e7b992e282e25620fc861730edae9104610df6eeffb3d120895a1f755d0e350b09f74d79e9c8ae2e78b0cfc3961a9ef25c62b214136a656f3c9b058eecefda873b522399d750071514a5c4da1e4933f91b2ee14e473d0886db2e37328d094329dbf8fd606d3d6938a827cff5cd232e1d6d148048267ba7090e49c37832c631067829d10cb9c9e3087a9e281e82c533fb0c39c9f8865eb427b6301054cb511e688450cdf622b6d9a90d9257f8202235f68556f30ca98e5b71fab4870b68b9069ca3c3a446a9e67b240122cacccca92403931952b691c4592ecd23314a404627e424e52cb7ced7eaa636d3fa7f63aafc7bf65bf062d463fa22427a1011389371123e4abdaf4f09d698eb90e6b262ccd75d2f0ec680d502e7099b6a3f12aaa4389cf75aac3c961a1e7432374b4d84a6fc4085048ee2c55023856c3bd3793e9abd812d7e47595d66620aea3dd0c6e2195b0756e411ed1d1e2e8f456b44b7be31b847ea6f24d50d551238ac722ff574cd08019133c8e7c4aab3904e23004fec37bbfaafba289e23ef67663a0d1de1028739138217910c21f99f804f607cf8a4fedf3f09a01866ce7370b9def3d5ea618762f7084a12406429162590c56e7d1aec90484e518c2bbb53c61e64a472ddae02ed622c99468e80f9e666a310cc6cd9b28386537f317f933b8701c2ebdf7601624b4f6df79c4e06b1414615faca754659cf97223e0327d6191d48f486a5ad2cc24f5c6e0f89cdd1fc00b288be987443c932c745e5c245af448d6a36899d0cd60cf03f3107f7bceed4f160e3b8db1d0b4e15c1940f1058146c4611928e56ac3f01eec005feaa953393ae348918ea3cbe46d8c6a24f291d1c7aa90c5df32a3dbe9c4787458eb0620a411fcd9235524ba7d4f6682fad06e48a540c2e7bdff635976cca3cf90de85f6d877d5eabf94a63657b6a615e2f455835eb78b5766b22baa85e305243b50f654b70bae68a068dfbb2421fc96cc306cf72eaa2362122d3e125db542d977089c21c66ea35be3848e875fc36b10e3164f523854f38fe89dbf8232b291712e66fa44d9e27916db1611f822d1b3d5207a4fe2588ac1b2f187ee1da14f8c2f7ee106e40edb62600f70fe90a6083c1450947162e0a44f6296b9e84c0a03238be42b09e33db996cd02d6de896d16c9959c27c71192f748c90a8ff9f08961ee2b119e9e663c54434d0aeb170972e4edfced661fd3a27096b968b246b694c8c4e847df94043010df28037293012a1890dfea734d14179185899697d07c164f3df509827ec6714e4996c25b1da418294704e4b11353b2e2a328a614157c3642b4939b837ee0b6f64a5cfa1498a542222a3c3c9c4a5d9946c114660fe31959d5a21d1f812baeefa9ef20f015817345eac7d9b82077436424d7952d2b90bc031b2f6be67ad26940616ce68ea70b4bcd48aed597420d76514aae96286a2e0ffe9f0bca8bdf2d99f8a431f8706930c219f5b34c1a326be9609a38a4e736ee41923e1f3202eee17fc472e8729e234140f24f7751fa43ccd92ffca960e15024188d0390e34b5522f124586b3e0ed1b6648292d55d3e63be05cc38650a0de6ee462e16e04f499fce04f63439f1d04d48a9f36856d418325a1fa22bd4fd496394677988c675f4154799c9a2850f2e5288995106b24f649b80ae9b10b40c67e4ec2263ad35374c912a154325717c41a7820796b38299c1e43a02121f48acf3326f99031190b65eeb623b8bdfaadcaac8ec0ad974fc7189ae49a07b25831ab2f8bb3cb43145fc72badbf77fac217d4d55cc12e807d8e6d4af0fee45518489d594ec22bb76d7a321b897cd43a65b223c5f9436abeeda099b90d81555a1c42662b7f2b632b9d5587b7947203932caceab8c7a434e7b29276dfe55cfa17fb2e0f744983880454b85ab5c32bd14683f7a496c4c5bfbaa2d803c533d1a6b695fb367955fed964c01c9af8772b1b56444f7ddac201b348e8a30cac8f0cd06c92b258e52b47dd7e5a251f636c21af25f0f0cce80661b32bfcd020b5b3610438ad9b4f457905bfc13a7880832a07130ebb23e6cde5aeec5cd345da94b18be456ea5a128ea9b38609062dda05ebe2df9d25fdca442bb980a2219528ffc7919ec755813927ba61b9816e266ce4a85bb71e6675acd2899a5d2d3153107faa96fd7f760cc7617db80ce6c625e28ec080af0270139c2e0768c99ea484438f3525c8cf9c3911c64bfc235756b989dd1e4db5fdecf2be2c229f94591f0b7c6bc7408cd6c6e8f8117c9a0180e4325c1e0ba08dbb3a9958e628d3078b46da148a857731b2be7b06014007d79b7b702201aa277aa8d37c8f6aec9252f9f6667da52f8d2d813383f13604963a8b13e10f34def24fb2b7dbb612214f6fc96d12ec8c2654c0932277e20e39b7b7d441d2d421f6911c164cb4821c949fdd328cb9968300ac342d9074953fe61f119c4df7db8092247da7e42510fa258b4ad6be26d2f8e3eaea7fe1e6d195b9f16bf6d2429573fb874e85fa242a6bd0e8e064d35c16ad5739a91a4ccdfc3366619a8df80357d36b45cc6fe7251362cab354ab5b9b3278165dd9938f60648114b7ab0ac142bb01a43b2375f25b77f4993e951acdeefe7a2963faa1509534c3e2793d4865821f52314049c23134e554b2ae4589b3f75c075d3259eb9d3ced8baf811766e40fe5984ac1306da55190a99b3a0adaf2c25895ac5f897b4d859211e4693dedb3d9524981cc0cba6e96d8f179ddf1e9f57721a585eb65080a55969d1a22a3c0d61e0e46843ccf8b20249d341c67b8b596bbd0bfce8fd6eb921ae1f46e0128e905eac4beb8fcd675395bdc4d01522af95f075ac7e2b8e85502d1138c766f4fb5008f8db51b4e451520bd0f3f36fba7b0ef43d4a73d98d6d7c30b9819cbcbc9584bb574beea53eb9eb8b9980c65b8629abab9dd373c1b16299df106ff42d681a8534fa04de806d06f6ce694491b98f1e8bbc15c26b6c7022188e058e1897ed659c7e54392f6d5329031ddfabe912954645dc477932714acf8be2ded944bfe7a03f084214e2982460a6c9dd07eb7925a1c5d40e2b4ddc98acca63f8e0ab14cb1823ec56e51b811fafe9beb94eb8a15f75d4caa2080b8263754e21281ba91ee952c6ac7996828a70208d0c742dda9142e9c7120f61d5e2714e4ed5c862787217a571ad8631c24b29a8010405e82d587d3b0bf127065a8c39bbcd068a14f702b5adc7e2a767417a692841400bacc8bf520c95d3bbd44808c634fcced027a06838d7808088a50a9cd68f1a16b1a1a2bcfd6ce3c1dc4d179e4a3e27f6004d0b649a35325d2a5f4e95d7d2f6f67ad4b4606f8940a8b8e41d33789959e53fc3341ad36115a25ab943edda2beffcf4c13f83055069acc8b7afae750f3289b986f8436f3fa61b1cff73731cecdc8465d7f789f7622e10bc99b08f5a990ba8a4b870283db66c357f061a8dc6315c1c9b211739ed482a9fa15e4407938cca5b17a43f439af359aca317af6837f359a64f45637dbcf3bad9c1ca189c650783aa0693e7345368906407fb57bac86496423e64017e777ff301a26d28e4eca5f0e27831a7d0cf7c015f6e5612f87d7b329961c46aa2c70d1a55e46e05163c416e0db3947fccae8052c9a272f8435a10d3433318f34f4c2e3f061a5a858033f36bb60f622f064c2c12e9dabc6e050cbb1444652560ebbc84d32434200ef7ab8a5706ca6d6aa52ef2c462a90ec6336a5477cca9d64a0d6bc3d954cff06a0586a3b09806798085ce567af0351e58974174028b66c73ae727f5148998d014c7879dc806647faf5d159f45ccb88a54d435ae16834cbf5de97cb17fa72d85b0b34f8fd7b2e1c08ecc6c8b7a7cd176de4e76095ea9842b9240c7411811cbe824b0c5d205227fd69acd8834d053315b706b2cb0debc12457481cb75cb25300b0a1a311f50624eddaad7f2b8733160f97385e12bfc9a900e13965c675005c05698fcfcff0d1a97f485e66a3a7d19f810f11576d130f8b6b5a2094a70830e622fbc43b46ae9fdc672b8e95144ebb374c4263cf5251eccfc3a92c1b4bd21db2267bca6efb68dc212386029e7f7cb8ba110f5b385126010a32d0b22a9e15a3d727829cfe04bfdadb6de92209904017d969d4f96c07b900942134093f69a3147102ee824688baf64032d5f45ace92890cb8e7e40a022db35952647ae17ce88b36b71110613ad180951dd3b79c7c9fb84b561c2f22cd03436380897ff15d7e6d9dd4a9ceea60d6ba5e2e09b6e66b3acf93371ca830929240a8f772c9641c85235a377a51b3d6028d077d559a449e403940ed9795a54d8d38e9dd2422b1130c920229c3e731874335ba0b51d152aa6401d7107d81e39c9c88cefa40df024fe30fc2d89595fdce6ea1af1b3126a33c97168fc220497eb479b829dfdd0f2bb6bc9690be1d14683ce95cbc115b3a2a09d49dc4398eadc5f3caec085cd1958814a4bf4e9ace923ee9ceb21bcfbd1428fa33b44bdc5ef225bb909c9b11c0cffd2fcbddcac0c7a5eabfef6386a8a325c5eabdcb6046a25e5784d735148d91a0ffb18e030acab7aaa806d03e9109856647f9540a9af6a878dacc2f68789a347e3da5b892add4b802c2ddc4fc0ebd7a0e22c1a8e7587dcfa35b99f5d8165b44c26ed984f60d014fea2a5d9521ee29c81f699ff66f4c1e2e939e0728b142abd2a82aea114abd43cbcd57346cb458392d8acb208c010a8d31c74fdd1c1fa3ffe153b43d22c43334f2347f7f3e49c34ac3b5566333fd779463b16f7eca5975726895900b194256afc825ad61f9ea69e8387ec666b1ae3a6735069f3a9ccc110742a38c24962be7ac40b4321620d1890b248084ea264ce60882d49924fb2bfb99f4424cdfb2fcc46298985f5c77928983b1f53f74c5e6f70650b41f7928f41854bd5102ba8639a033f7530636862025e9a4147a16502a814078d40830150e9063196160660a41b741c0d66804935d838341a00916270636933011a947c51774560d62d39483d1ea86eabb744c6ab2132c088206af153f2fe3a4130dc71e95354478e745b0b02a8eaae439b11d16b2f146f3aae4316f208f12b61b139baa8972016e5c91604408c82ac7b726bd19e9675398b86d39c20752151c48cf2f7ae61dba23bf1885a5deab8e2cd40c370a473d59c60e39ae6c4f612cb3f9abb082bd91f3d9446fd59cec76e43e5fb30e7806616227838bf33fafd38986314d469184b6ac06bd46ced486f2ee9a82ea3bb1095ae6f9a46030f9986563ce3da45ea533a2b5106cb5090c85e0d6d84252a6eefe0bc1a15b492dc37ad07145a51df64597769806b84e54131fb1d4560791118201072e6dad4db0b0611cdccef7455122d1c899868e8b032278d995c982f0357c12a94c926d030fb82bfb743836011c1b756af696a9b4f6be5310b025140a09946176a18a4f803d6e25c348973e33813924c9881349dcec523094304ad34abd2f7a2d92180b6dc219c59b1232518b4c6626d651272eeec13f4c54a99589fb92826ff438a596d70140d8061f6223b34cdcaf72ed66f65a5b52247801e6817d029ff64aea0361edbd9589e307c59f1b2e541d661b0e0819421a334b30686001fd32b30ec89dd2d9c6c42b3e22d4bbf8cef0f84055e2738b13bdad6d389155bf316b9f80a4eb06a48661b0a469fd6e292661d4516c9ef6cc988700c0f9054f17cd6f1ac39c09a4b82c9106c329c52feaead4d80000a21a303a62602b5097edfb2f24ea2bf4ddb9cad8f48913ee0078d2eb28a13ea7bc7d1cf940c9d8728bf92fd9b6479779abb1f5a89e875fb2c7ed2af699cf265c8d41822b341780c27e83710192ce1a982e1d23ba47fc84bf3509471bb929ccab794ebd530448310f3933c0a77f0188d019baed0638a9876b324978c34d426b0234f3050febe941c163493863c759387221bc76d94a376404ac9240d0a18babbcf072fc10e76a7ad0082237f0abf5284196e7058061aff7c0f7b632c786bdabe68e6652b1017b62465e9c4f4e18870b63275dd902243929c65b7b7c738cd580b872d002cdc486903e2780ad865daedf76ebf621d45c3738fb643b52a2d995d45665568d7b0a21af2a83049613da86a254c44f15abad62ca174e41847d143ee797641a03ec4f85f1ac79d6d9bbd8cc0bed6866ae30279609ef0bbd2216651177fcbffb6f136e6037ac49c402800960a1a46d89c99b349e7a6582ab39003395a5f09d4023a99dc4426d0373ab825a1df78b19be206358a20ec18176c2816416c82865e6e395654ce88f15f3a1d6798d1e299890ca1bb901e0fb1c7f7118d05b1e5ffb55d380ad1fc87edd00eed728b5704ed0ba23aab1b501bab02ec3a71bf92ee50018f2dac78e8ca7fa003526924d175ab947af6ecca4dc5d2fd2af587e2b6f3afcb85543c6d9ebfd2413b043605d4406cef7bb92534bd3e2496394aad1b69356f36e6f6df83c367d1a88b213257ff8b06a70e3c7104a9b911980b0acbdf6c32d10174d663d77a97c70e70bb9a79d99f5be2c59a502b57944a4da8c4b10396aefd3ffa5b9055ecbf1a94f30a3ddb0ec1bfbe0202f1779d1e0213d2c31d727e43343beaaf0981fd5404449f7bb3ac3ced9250910cf0d5418f4f7e83772e4740d4b61a5965c85546571d01bae97201ca1c1e8b244e0936bfe374369f18abccdae0fc25a061789556963b852f5cad31dfc2072a572dcb8100e4bfb0833f73aa8ce9456282110764899be5a6c18302f0e931bbb4ea274f9adcc5637f7fc259e80d63375f5fee307e6705d7e45288c1b1643648391b4862fe03f165afd6489d013521869c797745ad75aea64e1e9859098c8e7fc46bf83453d21e200732004a5d937865bc183f80c3aa6aa061fe7138f66e3794629a0171c765a63ddae13980afb746e5c9d8d2df47f5cd0734fc045aafe1679d53f7a992024127bcafd1ddccd112c0bea3d7e03ef50ea71f6025a0a4b594dd83e405211cdffa97bd134e407253aa66df9490d76b2e844c04c45d7dc4b7c95d70532f50f432c4b7c6ec0047f708c863f4c538c73c47a46716afac09d5814b3c3726dfce788cfcc62ed09b01a29b8a620f2b338db21c01a207d6ebbd10b03472426ccfd9aa3983b1998078cae17bcd38386cd291206a637bfb9ffeacffde949464c91df15b6ea21ecb7d99e7fe47f0274374efe092dda2870727093d3fd6de405ad1c367f555b125a387ab72d7b7c441d54c595c4ab8c0057664713db2fbfaa8bbd18cd3e686bce993a66bb931b89e9e4edeae687d557f265a76964d1a65576508951bfcbc453b43287308f5db17580336d1c2bffb2bea1f8dd930e11c31b2c472fc3afde0e5a691e338be346ace794b344663cfe58b029bf6e5f929fbea221dd50a8362885d120fafaaa0b3a595ef5d9e454509564ef707a899bae4ad63e23d98c7d702c4385afd890193f67386f6a2c16d293ad0d93bfae6eac401afcc2eeea2144fe67a0aee3ca8e4d6c5d99f02e067a60e291bc64059e5f92ade00ebb86d319215400fd6812010684da1607e4562649306953b8036f210a8006e1019bad049d6c8e32cea469b3ba33bd9b39030c8ca9aff1e9b36763eedfdc3029afcbf2a1690c73b7bf492c3143377997165426aa44da207f1f2eb54ac21e8c37c020a1eaf515b9e6fd2fdee74506089366aae7d32335afada6a29c6c259d2bb73aaed2397fc19acfef998f20a5d361052baf363b7a67b466f43982bc134d1d795753fb6244fcfb43991500d84f68104fe77d99ed11bff8f7762674147e7c078b51a81580d5de685133ca4ae90c6a0e2658cadae2d3d4363e5e384696c2f4853fa0bc0786a6d2f62bdf45972a629025d731184ff32014c4e8df21dc5565999c9c472fb26fd637a12b9ddf05c627c8209117bf861b62ed67ae1ddcb29709d1042f529cae024c8ff1dfa56750449f7e173990fe838b3d3defa80c4fba2a85110e0975047efb1be6869eb459e8be8b49d215ff4d88a5b69eaef87f396ea45d7ee44f89a171d4ff8360bfb481d0e77d149cf9d319c1eb65754c78b0eadede220683a6cf8db1c256806ada5bceffe34f446ff0c8a2ad989765d53a83bd2890eaffbe411b49bd602534d363c4b8ea4052ed80ec448ddeef519900018efa043453f0dbacacb6fdff10bd373ffc0f47e16c7dfd61de1769c87736d386671e294db3fb44c51a1b0205285101454a119215a1f7a4267f496086e590fd23f718dc89b25cdd5634d6cea43615e4212de4f02d2fa01ab29b13ea2d54e00e7d9aae1ebb9bd2098062ace70ede86d3176b8ce78464123d2b6b6d233805e5a8bf6a58f8c84d86dabf3c7ecb782eb0e580c0a8187817580e455428b95926d6d250a92b6d5d7c64b5a46da5f892a7d82de41c15399c7a5392e7059214ae9c26fabc2c55ea6b290301b3224b7b6faa5c27b374bb24878eb8755dfe656bdb4fee324e70ca2544f89cd59116f26501cc2b994ca19c9815efb28cc5b8cac36913ffc62d05ede34e44556ec9697367d5a6662ccabd1a8a9c07af1dfaf272cb26a22f4730c8143c7accaf693cbba07e594d2adaf4f0a0f1dd170a21090d0509e601e2c767988fe5102a14a1fcc897f2ff4a8fb63b96cf6e8e6d7a09fa86f044f2820cfeef57876317b0d67da909bff7e80389f3fce385d2e0f2a2a25397465710278685f1d9c438e70940f9430b4e386be4ecd6f06a24cb49b7450d409c2e287a8ca90c9d8ad8aa23d29e0c8642671e2e2340b57df6028d25118863927d08fdcc1cc0ad07afaaf1a9ccac118ea99832ffae9abadd17676a7f2f0ec91d832dfc21caf2f4f94157cf2d07991d9c9766268c96d26fe249c2bb7df044d7443bed73c3f7a1c1766ab562ac921889980106f7e89ff4b55e2bc4937da4f621f2b0ad4e6033d7b47a280e6ecb1b5c46a2c013df9d7aeef11c07efe437cde5310d3a792d467e87b865ed093069b1ab8506d95e7a1fa0d24b74dd1b17ef8d243168857ad5cc6cb559fa44239e6fa097cd4edc3e20e3dbad52957d8faa89165f2b35504cbeb37f73f215d76c274858f234ef4f130bb8aecaa6121ab807ee270df145e5f008646eb8fd605cb399ba8a453d08a0ccbb4bce83f692a769f081c3e48927bcb76cf598ebca80892cc69c9743150b7925877ce1c6c76d8ae28c642d91772c21da09b4ea6f70c85353096f3e4597295158fc2b691d871690552b3a89068e366cde9e089019527710385943b2b9ee01cfe114741f2814dac82c91726e10a262f18ca28407e6009af207b81a53c05e90393710ba2070cc229805e3084154b40bc8a9279f306dcb5c6d4094fd7fc64083b18070656c0af692778125976667548f38c3caabadbdfd077c31eb512e4a67f8ad765744dde1907f185e8b6bfc7058a26509d243c4128726931291ce14355c436e8010b585c683ebb572414d89819247d1b22896e8904960312f1a05f30c1447eef358cc66f78f04657ad1e8250cb866cc14b933a2499b938fcb325a42137c699780e0ddd9afb86b20e82b79f07b823fafeac01674b03001ba30434ed8e7f18555f0835413b6b63c74374e602aaa102de5895ef832936c508aaafa069cdefd819c983e13532f371d6aa145c87e34ab9eb37e90712b931fe268c3cf129a58eade43f3b323e77def45e885314c937b9fef9d6c72ee3156b0ee833d13f52a434d3f8c03f94562dd9cbf59361b4f318cad3a91bd92be336878e55a906202596371b08c17b8462d2c7e553f5c56e6c556531bf079a20001268ab77ea5aae020cbdfdc2100c3f39faae4d6df8cffd18382dfb24caa59a288b370785fb54107e5405b0d5982bab7ad7e0592900835c23b59e960e2f4b54a6db9a01483cff57d0f47b92eeb6458b7100d00196e20021ce7f45a159777d4cf021280562d2b24356d913c7252a165cefd3a81192c5fb3f57e3e72d39cee7309bdf13e64f4e5622eb3859b850b0838e63da483f481a68f3c85ea3205f5c67fc42f0eef0e1933b7810c9f0e20058a566a5afa2dd7356f7b7b0eb9b8f7a17cbe04cd821749c76b0e8647f55aa370cebfcc64d38803c19f9055d36dfdce46e1cb4958bfc2bce9b81ab9ba045776dbc4101385dbdd99eaa6800cf14b021e42e71dc49d20da3a4c5f49c569efd6cf0d5823e236efcbae768fd0129c8b422e72d30cbbd84855eac84280dcfcf90577ebd6100b25600bd0323b113fabdaf382203f561592ad71d01da2bb08c8681085de230b456709a721a0f0189dc004952932fe86e9dbafeeb55f6ed9b1981f1fd63bff16fde0e689dbe24f241f0e1a20839de1d583daa8c56f26299c6cc1f7e981a02a61e89df640c507685acf14a179abc0fbc7df4453f00cfc62d9b684fa0e1338a320af9e305562c112d6a0b3f3e49e0a04294e8ea1fa1b91cb05b9c9cb323c43c380555854ffa7f6e683037aed8968e41a3640494ddff34cc9f38a1511a3d1a6cbae863c3b1f43789dffd6fe45f5480b71bfa25c9f76cfe02932fcdea38a0d167886583d9ba3c87edbea42c2c25e0e0492d8be527e4c475f5ae6445bc66eb7fc42f03d8ff5b468560050bc62da4abe5eda5227686c07d65ce818d756407b72fb898f2f0f90e73f1bcc04ba494b9b085fb4b24f082ea656b545194e4e8c0162a07e2d5f5edd978e84d579c98f038f1f809f148d101fb808beb361318c6fd89b61861afe44354daab991907bf41199799fff9024ef5c053b9b3140641e13d1b94c731e8e5811c792c52adcf0c8e761abb1c2fffd78267c1e31742eb99c644d3d2c514664029834cc8442632939530b2990632c8ccb2b8f8c334106a8d36d8e560237f506481b05e9aa49197fc7681028fb8f813c5368a94de4ea0fef29c68fc1552d360b169a6fe108b0cebb19275648fe2cf398bf7eac10b5035804235e6ef72e3afef9687308c838b89a2c40e099830ded4b968df01b4a7fc72f774323549147861720e9b1ef40b7f4aaa9c939c94fdd96d4d2a208009193f840b953032f5dd46e93b9f10d6bc48c66253a65152d92c93c14338c5787a2c699e5805fe020e0cfb9a3f8800c723492adb9cf455af7461d489d5d4ec57562595ed1066e4ad90db773ff97485c56bb95eae0ebecc831a2cd7e976f189470aa2c821c3e8f4001dda46bd6a47c4689f2220e71e4f230ff0f8e48b86906bcf4e0737a14dbec02b8b0113921cb20fec2203a535ca522e9997ec80fa50ecb53f41c2b4c03941723ef172f3e7793ea3c7ccd9c2a536f6b9d492eb084280e4967b76ef521126f1042f9ff6e8f8e6f1383904cc0b7c8adddb89bddc5de71f7ba006afaf8c2e3e9f1dc7749115a215aa0c79016f47e76387a8c032245f171b2d8274dc699d28ca4cf3a420d689f5e472cbd1a79eb275630e8d414194cc17bd1e73962a5f6996dc32851b4341923bfd7ba2ae8559715aeeecad94e7967b6a25ff6dcbcdb09be4ecd2114c68614bda6ac96fe5a82d644fbe8acbf50cae16744268482d122028503598fd18c6ea7ccf6eff6006485cd816080bf41efcee097a33672e5caffc874496f37436c91f59ddefa1d1d7e4bfe2852069c5d1b8040ee6c6c0c8056eda7162e0c1b77a001e57a54e1533128fa85199cc6ff6a906fc802400d15efcf872df2676e769547f805e50006bdbeb0d98512a2585abc67b56971229bfd3218e4cff9bee3e0df859083b8c5929b695dc4638371855ffe90b3c18685c772335fa062bcf916fdef6541a8d56b90c20184282be13df15a3ecedb1c62560b8945723bb95e7c1c3baa73a51a64b60364778a9cfd72a84dcb45aec05c68806eae7aac47b2e4029492d29e192d62736124ed451b2e80d867af56a9f74cc4da55927dde5fcda818edcf3d350aaaad603a60ba21f2a875a48a717ec88bd77871f7c41503f9471430d9f899f3fa25082fee6879330562372e082723b673f1be3e3a3225f306b1f8f8482a71389c77946489c0ce6330baa080c6bd6dcce48721ac7d06f19e6047fd78143602f7782458bcca449547f14ae01b7bfc393535950f5047dd049c1ddc5c337094d2ab6be6d9fcc381170ba78ccc19847fdc662db8f35d1e8abeef6a64d90d5c333d9431bf8039304d10a329b3268623a720fe8eaa28a2c8f0ba6e95cf9832dfd884e473bacbcef192b37ad012475728d4bdee82c32298e77687829a60a1235785de445fc2819175e2ff0066b7386b18a830d4faa13d203ed023e873b665b8ea1ace3cb90228aa7bf92591158aa974dd2ce83355333fcfe4da09f6df628340b47f0da85c04c70a6c3d6b2b5bc8893417b2e28c9890ec8473405dbe198eae208485d7e78d91ccf56647c30c32f03a6bee7868ffd20fe8e222221688810049a28d3b8d5e43aa45acbd337f66a8fdb41da3e24bb5544087fd4516abc1742c8fb1ab817222db5f808779b78e739c45277e1bbc0a3e5d7dfcc71fc96b294659b994410c03bf1a4e0a981c96182c8c4d80dbe862c8548944c9f6a770524792007d2c6a88463790b0752cf53420a0ca470b61d8bfc00847a21332ca8cf76fa124ada93933c2d54814d348056a9af2cca2754714357c9d195a31feddee3d9abb344ecc4dad2a65d7aa738d3e3acda45cc187f56d21b1e6c57264ac95c6e605277ecdf5e40cdec56a8140af8299e44bca8fde84063b343489935b21d99dd17b78962a9a45ac3e3fd46cffebe2c162bf1aefead779494cfa3b8fc35e414ecd1d1d4f67ee43431ca84545896de472c5b24e8b7c40155dbf7f6921555f454c923fb2fce14e2712acfcccea6cf6891f24bc0eb281bcbe5bae17211e38fa2935a87cd04463aa177d11b270912eb03efa615712b9bda797cbebcc4e1b4d23e0f158e7b94ddc4a3a572acf320f66360cf8614a2385d55117ba538a5e19be307a98e6206cec407404d441fbc0d330c4e8696b842b8653922152f222ac8cbb9f2864be58542daa02874e8db448f9daece7abc674059ae57a4dffeae30094f458d985cff558c5d0dbb45f2cbf986411872c868f1269c19b7d2ffdbdb843f4b06d387737b4ad6c93d184088c9afd16577d80c301bb582d79c140aad9c965ce8b62eef0b8cad900a43b5cb3f843b422a056361a1abd3acd0d64b7df644c6cfef632e9e0b86089f40773b42794b347d27773196d39e83a2a2904669aaa460465db41c354172491048a39caa70d188223dab6bdb2586043511258ff7c04badfe908517f977eaa835238ab3a1e5737100321aa3cb047a28245436e89b032ffdcffd8a75023c425197ee7cdb4763f11b13de513aa2f4b390271097e994b9fa47aadc96bc77200d2bd06799a0a4d2fe30fd66ca0e7ddcb57042480cab26040f6e849217140d9d7d71104495101746c754307016b0c30ea5a4f1a83447a7aeb87dbdc68b98eed9ad4ace74873a53a2f82f8ba3664045bea119ef457d1bdff5b8bf55d00a0b919311374fdca44bf2abca042b6f753530519bca1e83b65e2ca5d8852e0bd6b3ca73737f579d16910b40982d4b061052b8d59de564546728f1cbc77375d3b362adea7c4f1f83c62c5d9c0d4ddd57255638332e98ee8965b47e90f58cdaf03b9438081e62fbb73ca0a6bd164b4ff35e94d061252360a1b63a3f58cd785826b3d4fcc84023ccf57f62b3cf61e485c3b0a2bc741c09e42cddbf0f2bec85b4765ece041f563035b41adbfecca3c888caf6a5108671a26cb320242af1e9ccba8c21a9f4aadc97b0de7e5d0a8c3153a7c0a654c69db04893580dc00bc8dfae4e2761697c5379511e1d13425888270b466b8db0f44d92d4075c505651079f18af5b7573182d7f5642a88a32130e8531a5c1aae12d6c5a3e142d3ec24cbe4cbe44511403a37ddf937d5765daf4a85db34d598ba2dd3520216b0b19499f644fd2eb557a0b9a038fbd032ff121057d76f2ccfdd9e491169faab107f0b2ae5fd5889fd2bbae0cc5fbdfc5f734b3a7d5b5a6c6329d634a9919fde1815c601bcf2ec6590879550d5eec20a41e88bea3ffb7d46f68942231587aacd90f0e2efe9d0a5414144d681b90da30f27e5f3255167d0a09328d66be590a7d1f69c1ab086a7e451ee7ffba814402ad97002d42a87ea3859d1c58f23bfc66c1efc4fdd3dd98fbb074c32205c9a6dbd630bed5e1f3e50660c39d15df1dea191f5409669618ce4d20954ec5bbc2c0d0a81c12bafa71d10ea881118fdebb10949475ca01b5eb14bf67ff47a21170188b82bb90db29f29e8b9e976789d0a07fc6b2674186bedcee515f76828bd8fcca2326d19037afdadef6f2b0ed49d9849f21ac7d2c6e8d1f824bcb81b2e94d06c5f3f6ef5441f245f75326309382ad3c2f9ee655f0aa1081d02a2c0b3858f83083fe06a2fb376b106cb1590087aa1bcada0367f305282baa43acc36fee341b63b522eed1a27e438852b9bd8acba91084b3064a81b5f06e625d964e2f56047dd9874c2d565002c6933573917d0d2bfc0331acd8b8623228f5c10e857ac93fa927dbd3968169d12cce40745eede48d88b7fd5d5be1ec6ace220690f9514c7ac4c610141d790f6635ca61a83b6c6a900f12b604537d5a94620ea52615824799d3da22751baca2bcaa3fa17ec34ae3f89fec0fab5aa2dfa3ed553ea05bc8ae7672b991d4ada6d9b2c1a96ea5aafaeec39fd5b71617f0fa9b9ba435f03648e626b94d2ff7468353a52ef9115cbed71dbc1d0c3eb9f8a0237caa3de0fd18deae24d997b5818b210222230444ff5fe563d5a4f47df62495961a932585a2e1f01a626a536d935d4af49d9b862ec81a0281abc9c3d6b05548d534be8a6a1fcc933c1283c9e9b9a9e11fab7acc0a9c24db1e06dee52e23ef9db947ac7d0c6c915e01f2796324eadc218162ad124308d96fa96f18facfc959ccf34422e0f4c7ba0c0b4f521376f4a8f3fe5915a0263e3d34d733028d831f7eaba9b652d1b20bfd66325015190da2751f31f82938b48d856821c749595cdfcc064643eb90b41b9d6c067dfa47fa6c96a3ba14fa9591ba2a5db2466e328b745c45214807dde0890a8063264158a8aed8e50344afe501f7404e397c3efeffa3c21ba5877a1a0472b39d3d79e54d50921fcee9c87417b961454edabc0e9cc6573399bbfab05b2614036d6a0343693e622bd613f638a03d7a19c69347956378b8513fc1aa2a7285564602a6a4d2af0d70cf530e451855690b1d33fc18794d33231d6328eae3d9c583992594b438ba2147c7689f56009f4133c25cd41603da9a93e9e55cec95eba50b57c35212536c4002754bd9c6b4310adecd0d77252ce130d6a56c299eafe27a49faf0277721d1304823d9ed904d4c697fb86bdc6361cf38b503577fd50426d525c3a5eccd27dcc0987c362c415d9fd3cd6fac5752f28b203ef7e48b467e637a51b6f88ee193e0f770d207727fba5b4f9322a893b6e2e3dd4a21c55cee233ecbe7f60e0829c5669e95f57dd4d80bc49b594891f222a26b772336402171ae90c3574f7f85bac7709e98c60bdb54a81996ae217ce60d3a86da1583c9e0f72d38c0630cbe73223cd000f716cba5555505c846a1c719b8da09aebbd0751e013bccc1ac47b5330dff49aaa985a91ee480d887c88ed2dab7bb29289638c59761603cedbad646f64ef314f1d56d886a095c360089eb6ff81c4220c019902a2f5669bd1377a18254401ce0aa4edc3d4dc93bfeb743ff7595374c9769de505322a80136d3b390067e2033196bb98d77ae8d4c578d9ef8a2e11447977812c21ac339a85b2070909f3fd76b68c7aec54301093569b8d6069e6351a619a8c15afb4fb94d8f13cd294723aa5d4270b6e1f5413f27111d5408aeff05357ad81476029efc44bc0e644731b9a6f56297ea52cee83d76ed2e56d2b639da124269f7a5dd33f808150ce708ff5b08ae51ac0579d91c7d1cd13fc7400a9325d8324e7a4a5c4eceb115b13aa23607f62f743c24d4f349a3e380c7c12e3cf5f14c22173c4cbf987f210d5bf408492ad386b091836106abdc907946373e1c30105bcdf027aa1207ccc24beb1e4d9fb341be01b8d922bd3d03c6c857072674654f268364ec0fd23e3c78035c2715e7baa1096096451e049eeec904fc4970b41ff3899584cd91a82eb1f035e2cfe03c83e7461fa3c059e45a8d810d3c1706df5a2d4e609a800889f30c01b3cf8e3fa3a36b53eb2e4783b33c18c0ef39675e0379c4b2a58e77cec8dd04f5c9e6ed97b67765f6a2060d44fd4a87c82317335ce4ce6b353c2442d1987da5139f550053613331aca8dca6b0e79b93a7638085b55002624bf7f26046593b3d2a43ccf223a5d062de016137cc52e78d030927519b1f2ffc9831dc4b52cdaf1c3be91b95192317198152094c8413a2bd4687654f0548b43ed71d0667995a802db5d5b02f7204864ea2beb71eaa53c4a168e89adf7ed4e286d2fa5a51682f3520d6f3c0eeffdd05777fb3ba717d84442b2ecdefa9a1e97603648d27c236f6684f800b23444c8f6db8f312c7ed6dfb4934329d430eb79690a34f7beb001b1f226463ff98f4bbf221848286cc69f87d2d4f6eb5a54093b6b5b90f94952d1ee8ebc7d1bc3607b05172c6f8d7f18630a7485236d87357dd1f8eacaab692ee03a2a4bb1cfa9141267b0d72ce82f7a4e1eb98c4908fb93697f1c889ded4a7504ca77324176f6daeff72c6afea9e7d4771db053fa01fef9ff5e41d63df31e7e60cb6cff1bfcc66f16762dfac4ce85c1515692915a85c48e84b2a795b14252099de34ce9b978d1e32905de7cd12339185a54b1a74b2429bc9532b8ee4d2446aae10db333163f35b0886652ca52e94613cf1a280e3b908c79885c9f49d9690ea38de3d04733d0243ccd1b998680eb1666761f82036a5659fb3c7366fe281fade80ef78b9ee0c431ec84c5d48cc46f2d98a41c78e816c313ce4953f257b877f5fa2c3f7cfdf1aa6182567d41387ec5ddcbdc1212aac2502278ca6464d3f415706cd565c9e5886521898504178ca5105c80894732ceff3d0bf2cf351e23d902207208aabec434832b56d75dcb864fa8f1c02171d37205d1f7b254565f3c0aab954795ac24742d9f569d4a0df1e2476ff7473819f2271759cd02b8a139c484bb78f02ea8d0f84fd90695aca143431280142155a859267b5c71c6846d57ee83f9d2a051ed15f62ab1027ee1a46965a8141372b1202597114d1b05b64e8fdbc42a4914d6f61bd4634749ef8d72102759840288728e210f1876cf3b1dc8e1bc28f581befb79351a0d94b1bb5080cbedf3eae33750897d15e458cae073e3cbd5b2870f423601e09b955bdd65345c5d4dc1d80dabdccf77ad0cdbd8a3df074a0178d311cb26b6d47fdb9e574e8e51c59603e00e483a15a9290a730798558db5b0444dd0092788ef86617b279042218990ddaba4d87c7ac5d0a7704cb867ddc93c804e530c93b4e68daabd3d0821cf5b4a45578c9767e627647ee8c2d5ba34fa2bd71f0a7db9d78aba5da0dc474f01dd83cb5d48d3d7e2ae104152bd1843575dbbc2d29eb59ddae1153d00a08bbb6da2b896c4a8640064e14900fc3a4c79d59a2fdb86ad18621b03a11311d04587a1c4a92c3a413b4c8b5ac69656a9f4a8d203d5e828874a70b08a99eeee874d0ac03213040c2be180f1ac5b5cd2b847f1900606e41fc16983b6d77ae8ba2be0cfc278d7a886ddb7ce168b3e024e2dcea09a8122d89f5d0e80cc897b49ebcd5ac053edf7cf233582018384b780acefd7e1e03662dc88c7e8143fd74929921eddd3a7655435ba6555bed9ec754aac4e34a06e7a14375cb78ad55cc61ae00bb68c1d458e466c68a10f710f0956b75616b0605ece83da2f2214dfcbe8ae7ad5ec0c517877ced107f39e2e73bef4b2c7e99f95a447edb954e689ecf66f2b4913879c1caab883814222ea744a36afc0648102260e3859fd040ea2764f15f91231f3af9db4fc533d2b30913ffb072e8e318106880378ae6961134548dc28f3d788007f35ec4f36a519f3fac893f87c9cc4b25d4fe21fe7f833041e2966978c34acc4c7561e74f67d02dfa7365f582c2e22d31341784f255917fee069826fb751fa3ee1f8b6354cc2092613eb6b1e1cc42497d39e11a0d9807524f785a9a53222533a2ee302cf54aee11f966bd9118129beed07010bdcdbaa1ab0a15c51ea70c28ac3ebc957959326dd3c29f951bf96cb32d8d912360f0585900ac2580daddd83b737000a96cd9c0e42f18474423dbbdef3fef52fb3e8ac949b80f674fdb1e11216c76830ed706c1b036a9a6d75752fd0cbbbed274ed6829cd4fb4c11d846201162c03438260821501bc064a0f4b3ccbf63a413b1dacab5ffe1127600dc4aa02424b935074b0f399023e37575984019ff95319e1ea11940a6f2b8b7bab0b949c6262407f61949c16a4ea3d71c75aac42ca3e41cd1bbfa192577a5ad29fe7b1635224b98d730df869c849f34d2ccd2275ed69a4aa5c40f363e45eda892df7fb11b0c95f25ff9c46b3faeb29c275876e645ba0a6e65107e4fef97034605fb3d98c9d1d799060c89f37bda31a010642dc22a3cdf6bdada1ce8bbcede7ca85ac58c11c0d92e6544eefbad59c9e42c947138dc864ba873bb13e09e4ec242c8764c83cdc80a31bc76fb361925cbe987db68220383e3bf8cc439be83c84784ef23170be0ce92363562dc4dd240128251f8cd2c5809f7787d2110181f7694fa71aeed7b3e18a0180cb7d1f03026f3766420a46df839ddca64e5129428c6a315076130bb525502c967a5456a18514687c0b037b2a3321ff6d2320c4d876a4c28ccad81de4d6c86428e89f3dba6500eab9745880a3a2f76ca7aa6daa9cdc11abde75ea33b9cbb4583123f65dad98894b1f17097758d9ca13a195af8428c639c2e376b624f538a170709329172515e85973c01a7852a19531291532ddbd7143f85167e722ba9dcd65bd563db281b92f519e5c2a1185b9f4ecbaf3406eb63d4f4c6b180b4263186cc6382672131f0d4ba6177ff71d6f96b191c2007fe4e8feb59f2a3820b97a6d747e9a24e28fc9634af0ab74f583c0d3c09f6a93f81b4a8e46958eb9a7828c120b7b7682b0c56dc62ab0d29c0d1c98c80450999e87eed87e9c4b86fdb270ce5a0060fee3b952c11d8e5f6b40224bc19e3fd973c3664557209e539c84c797003e7c00f0052c89da95ac0250f79967f3ff1766edbe67a3d10a6188aac53a197118daeb9677dd0e974c054f068efc3a38a202a435011ad9cc2e54800e2d75a69300d6c428a4363a71d38041ec339a0c0cadf8943a1340024d0808d2b0a5005cfd4b8445dbbd354cc7309873149b336e97c568361364859baf5f43cd7ccdd0bd322289284849be0ed93b25b9b7dc3be902c802e1023b83fbffff3a2a5887bed4e40d9d9d8dd7985bcee9611d0ae4c809dede7fee29f43cb038b229e311e2b0e126803c80485e005d3d870f5183e7004a06ee7861e81ea5400a648213c0ea54eb4193c0a0a7ae10345f31cbab3543cc790001bc12177dd336add9103486b1a12f11b16488309c44e2eeeebec45475a8bbbb7b0adc1165fc901094431f294ab27e66b00b22924c2b58cfdebaeeee7e345475289b6194bc62b0c40053567ce012247e5ea4f6b76bfe151058501c99203e56702a616a5627ab9db62e3807f42c18a377aa56b9bb679d611dfaf6806dc78a60dbaace73774fb6a8719dc5c366cf9c72ebcb4aeb629d4c80be9d088b9a74a3e905a0e402102542a6931a21ad169a3c34f5e89bb6691d800fcf8850a22f864112693b694454aba020030c02969529473052480c9626b120d6b3bbbbfb86b7ddd06b3700db0dc176833027000a06c99a34b42c991e15923021605c5083bbc5fd0932f6c20f8bcb43b8e148a4932d9ad71089b1731bb7b7c67177777717d6b3bbbbbb6f3039dbd6dddd1dc56ef3fa63cc3fcafcc3dcf869def6ffbbbbbb6ff0aeffffffa05fc1d48093e6fc8e28732c7730d174ab81098608c0ffff4f08f703f02dfd903f667f550c7bdf97652dbae891aaa4e8665e3a1543270631ffccd25cd44a1e2d4df883aa686a6c35bf97d51054ab4409d9534406bdf8682c92599d1e78498f80473a99b408093833b357ac339bd6376dd35ad51baf22009cb80ad7b78e41fa90fda429cfb6d794b572c2be3bb7717b7f071849ae15967e69451a7c447256a2429b5ce9f953fa62f4e803a6efce4da74d672c6993a324948ade7825a9fd8b71cceaff7f074086d8ce6ddcdebcffa9d423efd4a68129ac0ca108c97418d61c8d4e889ca96e01d37cb560741137be28d9b2d4376dd3dae31f02b0644ab2250643ab288d052f888948609ca1f0aafa30f369f21a2ad64a5c70e0091815876508872fa2112522f6ce77f61b6d1ae76a2c3e901157392c63236758c4115292be699bd68e041c5151f4541dca66a809ac9169d357faa66d5a3b929aec69e6bdcb2c4820a694f9b9333d7cb2a2c82a66afe6042b6085876b66577bff36ffffdf30b10e6d668e1be7edc3d0fcbeff29d6a768e2d18438c39d4cc7f55d7bff36ffff2f39b10eed587ab25adfb44deb90ff4fa3dc77eaadc6c07a7677f77625cc75cfc109cc50ba964368214c6cf8134d124953c2cadd5da706eb500e9d1d56bbbbbb6f750d21b950d13c77ccf77d7de9d3458f4fe2ce6ddcde3fffffff424321a25051c828a4f45c6edbb66ddbbdc319995b4947007d43254c81b5501213e3039ad3773db10e0debe83a7b3bbc7aaabb7b075504b3174c19b01666364dfaa66d5aabab8d564fd876beeffb43c35c14f973bafff9ffdf84e9fe1a82b6583691264f7ae3d564b71a09719b256b6b561f2e1ed533f084392f487cdf9706075d34f996045dd42899e13dfc5350228c8c6b85b2175e1bcf44e24362148044d87e0c2b666a988cf07204637624666cb154d54c566115d0d513bcc1bb5588e2d7459337409c5be59b55447832fe953ff7d39214744628f5708a604c318d9c76b5f7ffff7fa451d5a16ced48432b009e060eeeef1dce39eeee4841ac438543e20652d14308081a69b1adbb3b8a2ea2bbbba325b10e455bb2684efa86e63cfbff577a621ddaa114c66aecb1731bb7b74a9241dcdddd31fb71f312b175e7366eef2f669168f82ae2eaa4c147ce9a4c8dcf05fe9a5159c166852d302caa70f3cecdc8d0927073dbb66ddbb66ddb5665a9e2a422a582a5d2a5328675be63dddd3d86eb3759835eb1654f7c222baeddfd667377f71243588726d9a576ba496dac5c17d63d4789310b8c6e06b8a61143cb3a9beeeeeeaa8b012ee2255b29afc9c173b636a4c7d2ce6ddcde2130385013c809f4040afbf4476f958a2b8d49e9d5de5f63188475e870881d26f56de4254adfb44d6bbdf1fa536bc99ddbb8bd7b1d58d130e9e0bc28655e281211b27799b74b71bbb9731bb7778df7a166d3ffa2144f5587b2ee03b6731bb7f7ffac90b1209887000d9209ca96488c4ce91cc99e205e90d87714c1a2c945774f77aa0b4e490c53dcdeb98ddbbb2541857c48af8b55c4cb8bdb1a40380831a5c365f204b3b5f12b5260a762eaea017559395b64ad3dde891325b8963ac7142a965f3e1d52fe570502563582092ba5056be7366e6fde8801269c230994c0e84189b20f4242ae9c2c0c038ac7f62d25d6a15b4c76aba9b79cb73da2e234719c384f9cb026ebd9ddddbded6074dd45925a8c2dc82b9813c4607262ce663e70e1ab9311365ec35c7fac677777676a3b98b4bbbb4fd58e4fa95d4af5b69e7b26a4a950430c4a39d1650574ffcb7d7777f7ffffff9e047088262fda4c89effb92a4685227e8fe375d8d2af7f54ddbb466657c8c6898bb678008621d2adc0031bca9383fb8aff91e45479b8c9c0fbf60aa01485383afb86b10f930024d7e9408d72767ee84effbb6fcffd7982e9a1461baff4c3739b5d50fb13e2900c521051a3a7a541134c404a4414c7cdf37054d832e8a7479d3a087307f6ce02180ac11a6039009b99e3d58f34a6d569e745e462f2e64e6bad4376dd3ba4a8196a8a227d5cbf3c0cfcc7cdf97277dba2812c6cbf36be7366e6fdf8e14ef97d65c7671a0b2c26d4e1ad2a2000a0d4c51cc4c0b67464d78eaa4b9d6dcc9545cf73585e6e30cc41717d20dd0ce6ddcde05ec34703b24f5c86d26221215898c444a2266fb39e7dce6d6ddddfdffff7fefbe8cb99130674c9b6e573c904b8f981f8b2c291a2b9a2dbd5794086492c029549902dff71571776f952e7a6c61cc7577feffffce6ddcde1e5613cd8c3466df072d5c44cd88ad78e049b14cda99d9b3697dd336addddd7b9eaa0e655777e7da4bf29424831e4047271b8e51b82e258151da02104d98852e7a1c3b13ba2d4fca7fcefcafc2fdbdc3eceb6b912529c0d79425200b151b11a66454889ddbb8bd0be0a5648ca4e0e1aa0398d7d61146a9b9845209aa3a94f59f916a08c3a6ec664608e5f1e5317656fb97136356faa66d5aef4b9f250821fdaa8d940d964d571b5596af8457c32be255f1ca68034b871c8e2ecdaebd7f9b73732737839a43faa60ed7a921ab05d40a6a09b5865ac49c734e1a4a4a262d939c92a492b05cbbde2b54eddbcfbef6b00e05068543cfe5b66ddbb6dd3b9cb75288d9e0a55534f195c2859886321d169f14392385cf8cabbbbb94ebffff4ba5aa43d9ffff8f9a61a9f1a8f0bcf0d4a8380ab29e5da74b674c07ad6d55dcdd89caba766b1411b733e8ecdcc6edfdff3ddbdb8c6ff24dbec937f926e7dcffeb9bb669edffff8fd71e20d75e85bdd09aeb8622d68b75680f186c3bb0843995f702e3eb4902433660c154c613238b61a985082305c2d2a01615dafcff4f74c23a548a8388956b2d4f29dd31ee287798b790ffa34cf306ef70ecb09edddd9db7c43ad4496a8387d5eea6c8ca12840298934543bbdafbffff071573903148a98398b76de5eeeefeffffcf02da72f6c333684830204d444d162e6fd26564d7b267dbce39e70f25d6a1cca6f3b9f111f6bb8c11257dd336ad599430f7414e60a820a821a824d412ca094aea77bbddedea2e5ea4514577577bee9e1e812829748f516ae75b3b5b417a0010b212c51f15cb09221e06db1adac242932c869e1a6bb20125a30b1727558b07fe4249a24af6c53a5b7e840131a30ad99ddbb8bdd51d9f3b033b9f7ae236eb823e50ec8583fc8873e58453458f49af93ed016a90509bee9e41fd79481608139062cfe7b54c85c3fdff5f233ab9fffaa66d5a9ba12f88aa0e55dddd05f0154f9eb8bd731bb77786d8faff9fb6d367e6786a9bd6376dd33ad81eb9882488ab98b2f6f2dfa51adbfc33dbb98ddb5be97eaba2495539ab75a8e0e444a5c3d2b2e889cb28009ea1ba74b68abc99d7737d001f934911db3d0994fb3bb7717b6b0089284e9c59ad003e01f196d9f1e5b547a9cffdb6be4f0e8ad4fb553d7618b3691ca41f0b684840421ead3118eaffffffffffff46a5c26cfaff6befffff1f8ebba8542c5faac8041800431a38040d8481284e049761031480091d4c50485e4c0c141a321c044443610000040380603018100000c180701810060693f3311a1b60225d48bb007f460bbc8c335c6466b4154565b464471169eb99a12bbd2cb476ff31f63d89cd9d90c7319c1a91d85a3a11d00273a1ca6ef73834a51f1efa1da1e2a2a0cb5bf19a0c946208c4df0f9221f7e786b92fc0e805b5d35295e8a11a7e55dbcb13aeb361c9f6af8106f7a1144990ffac9357fc5487352972b5d53590fb34b9c9741fa1ad9e83686747cc768ee45e386a7b2617adf0e2cdb27c5e7886a8bc6e75b20d57395644280e120d470460c33594433983f7648b9575cfb147bd3b5a4256bab73dd4ec2378da9d6a73931ab2143124770163b69888c11543795ba2a7fdce8513927fe36ca73beef4d32d4cbf941fcbc10e4b078a29b5deaf1baac2ed5fd83470ae53ebc8ad968968209f29f6410d2548dddf37346964bda5487db96fcf5bad3410210e23fc1aaf541f339463ffc2e785c1a6e8c4989e5afe0abda5c2590e8d40a043be1ae35b44445b9a8410071dbb5cb7adcbeab9e84659a07ebf69c68a9699916f9c0a6a5b2073dfd8c3ccf3821b03ab57a2356a30e84b1d98063b172034662565f6056790c48027fb7c9cb1095efc1322352da156436fc07d571e11197ce3ee2ac2e8fa40c3503957d4b7b4aa691a8f45184b3ece6e0447661b21b05a7b5d55330b9eddf5bbd87684078ec8fe280d72f6306661e77f1bef30a6a7232f704c8ca62569cfedd45c25faf6ed512a8240df29f28c9d581c20dad6fd3e54f1c5cabf1df810e0dc414fb709e3327ce28edcce4b3a97d0a9048c838e15028c67dc4e6f3b44fabf6844895c98c4f19b683a1968d6855b302461c6606a3c57d3105321fe022e643868cdbeac51d001df690e6473839c6d65adba51676bfd08641cac2ea6a02cdaba485ba0136b9c65f8b260f4834e3c2c9e980fc09305f7f950f0782c5206dceff97c61ec4d8db865e7c938d2f4e7d8dcaa3104ef37c9adb341e474c0072c1a780728b1d0a51e3fc1bcac09019b70f35e2b52c408b561a81060a45cac722e4d31448ed64385180702da6e457ebb6d98b00d09c15ba19e4eafcbe1bfb251b8372b4ba8f1b19858d189bc808260495151f86df2bc49b1c69fc5327e528518ae71c1c00ee0a24ac7ec84e2fe1810627091c1848e7e8edd1fbd7c93b76dda3bd54175f2a3ab3f7eda2d58285a3b4e5c4f0d19d4949bd1ec2230f8081c864b251924a820f1a007ad83748fee0b7ec70a5a0fec408083ee0e2f201f99d405ae16cd192273aee038427891b72d34ed28a892029b541ab456f716d8e4d4df95bd39e056e2e172e19c47a83b71ad8d9468ef882e2cc3e784d912e22c123d3404c7d31e8427f16bb6773c09d511544a9e6e90de15395ecafd027a7c12f9324971a5c8f99deb260004942950c8f441292e6d57124fe9d311b00650a816085b5272ce85497889899fe35bd0269a8f81b5f5a58b4638ac0a0bc3c5e987bc0e8be7ee0298a2c1ce0b7a3af960a8f831cf4192fae7470a53517a636787b4c45d81e5c04e29ca9ac031b2f1a63b7c7a3d22feb114679ef441d46bcbf906efb8fc4b33df68958868fef1c828dd64da2bdceabac5e4c0a7fe3c1897d2b72b074dd1ac2e8802a4d321a474276327c4cc02a0a1c709eb1a2d768b15fa3924ec5511b2b2efd06204c7e74b5e335389ef1146028e7d4799b16ef1c7e0cf1acb0519885dc7fc3d2a9c34235a18d5c22e1cd0f5f124810d7b1a5b7968e19bc14c422d6828eb2280a3d20de2cd6b9a5954a98dd268c7f624b20bb4a0f2d7f4378026c4c5f09d8262ecf184282a89836ddaca1605e9c5c7e9b2a2464de2f01ae6467ed088b5a77630a5bc36aa30b9495aa9a45af13e4d70c242278995ba59728a846eb3517cf8709eb0c5f082e007181ce3023290298b8c31dc75760796d3c3c6352e34ad4d0d4a9bd06add15aeb1cc1d050d3c28fced3808f1746a8ddf57ef64bd2a7cf47dc1034c5af05fc8589e3ea3a53064527de354170623cc8a25e50b2875c7ee08ddec50655393d6046ebb2e9cfa5551cc0421fda8fc11e1378ebeae28e39f53b86bf3439c4c69f1bf6b1bd77590f2fe915c900aceafc4e177c2c51d103ece852aa05f8023c211b242f7f575311291384648a79e2ff80bc630c9b3da6cc0b716f04145bea9406422a8b8058f91fed0e680e308250f4c13d79047675f031a530724c999516e6e887904341353af413a4f7aae7f4c6c8ec8c59ac5ef227368f663dfa4f938bf3fa58d3a59dfd626958f160fc6cf098a80712536e3db70254e63cd46f100c1cb44cf64e81f2935913aa87f4340e234535b1d0cda23ec008e68bf1d5981c96133f3885dbef64a69083f6611a686ed20da7ce9f9a100f1ec925021a8ac569876486113ea0064c60443c24a77d08fcd2097425410ac99f0e5881b6da292b8767e5396dcefa2cb1ad6502ea3af407c76d8521618b0039ca842b2836a0b1ad6033a81d3390757a1da34cdea03f9ae71052a4f301db0af967e289d79099b410af4448096b5aad58af48e736b67c321847760669ecaa4839a28217b2e00875ccedec490207f1b63ed8ed99ae0aaad9e4ac727a4f1d7da471cb6a5b194587ca25803b6358fe2d5520ce961aeecb4855f3becebe04ba121047da6d8e728993fa566fb870bcbcf0c149270c1ad6431bf569d31414a45c6d3baaa4f4da248329b4cb53dd885ed51dfe674a8fa316e3073ebbd22a3b8f4b0003cc3e3d2dd9bce1d17df3c17c812452d9ea412149d7f01db8395c5eb952b0624af1cc145f206b761ffcd312adb4dc3f767202fb0edb414b4f2fa04bcb72136ccdfbcbb91ab7ac39442717049309b3d6d6a2c0c1e9842f22892b1af2884c4848cb46111965c61110ae246e0762c06730b0ef04f9edeb30a9f64e082f76a4b14fbe3fbc87327a2eccc49444fd23964659a314e500ee08a23924d53087bd390424230093652251d7702503c1e6cc61554a168c39c3833d5ff7e9527ae6ef73a07108eaef325c35cb680927783e396cbacac6940192b93a0e3ec2fc4d63cf8163f49346a2d092f64ef9ce4a75a2c06f1c0aa933cfb46da64036acd92029d10e05a19a0f406eae8c4d176b613ffff071df56646223357257b90ac16ff051ea700fc66b5ced6619bd73c1b1fca9f4c700fc04788f3f5b805b3bf8ff6e0dad63c61044523374f0b44f247fa411095892dfe8b6d1af6325e7c4173a8e8ac86ed947783f8fb54df503a6bae6d3a5deb74fb408747aaa52e01b07b739f147c264993b97e44f6c59e1dc466c9a7cdd4a9b560dcb84698e19fc1a3420f078c4b1204e3463e7906edc2a41c5aeed839ccafb4fb98434684482f8374e6a76f9e92adb7b65ec52e02b382edf96dc0c46ec97258c5a3417210a37f9c48dabd2dc1b313f00c65f8c8f6bbaa1dc17f79ef28714e726a1a3c855c8c3d2fa87f3b73ce4b39bcc138bcea9177a98a7c8bf9a753fe4d14e52bb7cd872b6aa6f910e91075632e77485249fce0e56393fc19dd2f6a6541953b3e6a34d1e00c413a99a9e224fee0da6c3a014d36722f15f666395b8267f4192eb20e15d6431a2f245438fa5b548718f4a685c90c2b00bd737ad562c7f2559ed27259559a56be59bba61d5a68a00dc57a0fe93b6d26bba24c796b0dd422e8d528f2287065644e7eecbbbeb40b5ae4049a005943121a7124ae37026a08eafc11881417daae480f538d5bce51aef037c361bfac653c62b6274aa78656261880d6d3c6cc76ab5fc2561d268752b1b162500c7fc1b58ecc824c28ea9943a5aa0f3a324752ea9d11ce8b62a8e3e2b46cb6f7153cbe3356fce1a4860317102d315b0ee69f5798c694ff4a3c08266eb44244fe6b9f956b57bb47364eba976415112254b084ad24f7c15709357c35bb052d3d28ff231b79dee77f41c5cd02fdbbe6f5635b2c92497a57483268ab7c6fd9ff9e46da8a3e2f01569d9d6377ce2437b01a0ad61928432245fb5471407fbe9c72b9ba6744b4a2f205278335f39d3b06897d710d5fc5570fde0c50e3d81ba530648492054eaa9106665576469210b956187655546ef9c96088930c074a619f109fbee26663e39916d04a08c44684f68f23e8d2adeeb810a7a4406c668d5cc02207ba6cf853d792132f025e7e0b962c592b90bad91e2c03ec0a703373f534c6060c7702dc569fb5486f8c93d499aeae5d5b139899319b28b689f4e002ad7a197c70552d6162e09829aec9c23d63e54d1c46162ca542d5acd671c6c43a8d36f27ca6625b65d24774bb598722ee9e9730ebbe446ea9419422c4eae17e4412397f184c922fc1591bcaf0731ac29177b44dd1b8d805dd5061363d35a24693c71af798da75887e23dfbd7e5f66116089b92f2c21665eb26c6a072a3c3923c6fd873692cca612013bbdd9f568d168c441d645e21391f765c4145303b14764801b71b56a993183423b4f2c3ad308521fb9a5e510431e8df5e0990bf25171dc95cf08dcc8ece1c5e268aedf92c76562e847bf994ec6e3952d052d82445d5036cdd2a9c9e8a4ef5c55d79ed759a1aa4d5d8fe6297c8d91d6d85d899c0c8cacdaf19f2ae1ad8b2c40d4cb89903f249e792d25ac54126dedc8b08237eaae067f381442eba1af18b27f125dd8b44682ca8f604cda13d830fffbc203dda5dae0158b8afb94e15cefbef32c1db52a4e07657914995491ac3bff1151ebfc81e162f1f6765f047e31ab866bc060882ed7a07f263e6aba08c86ab09036775e5df9882dbe3b771eb93756b6fc8e0c70a85fee556ea63dfcd7df260834780ae3747f6c358ed097ca2b50f320fa686a46419c296a2e0c68d9d800858e2a822c283b7c55ee7d78ace683666ae6651f5269a27b11c494a040e7db027c7e12179c86355dea436e25ae475c4e3f4d5789e7006ce084668511f1fb74af68e1aab6afb6a8f00d70eccad0ac494b53775bdba1cd2e2a323234f37f82278c21b0893c993ce1248b6ec99979431558155986e0ae828f26f4784a6868d4fd32d1a10ca30f779e2c2d73f9a82de54752696f99b3363788f3bbc9d9e679f293cb03a0369011d1ad101a75a9810f76465225b81ce584712873f81a74faa91415919e4b5299fd51a87c9014e5ec7ecea8dc164522bedccb6d5513e1d518f6ec2017183d8834b22e308b10d29d67fe41f4a0619a759c654d4bf23642fb2de11b33e6d782dac356a49b0c6b057eca70a12884fa851913dbc29b5905c5d27e34c41b42014a3fe9c201240e8e249fb56f80cdd23ceb63b5a1aa69cca15b3a44620731b926a717d1355c84724378832b93c687a9614275a2ed0290de6901317a0164f9d60b934c2b80ad871f315cefd954066b73f0fec33b4ded139788f4a3c7f07cde01aa7a44542c7ded8b12d98bb5714719a186d1431ba07a2ed4da1777f784f193c57e087e12c480739f8f4274b5d6c29a6cf9f5063ea69550b741c3bf71082ca7b7b43a77a82e4b552e3808680835ed8c5e909b4abd9a18d9cdb79bc74c566f49ff6f4d206679ee1d43b8547f5cdc3fa266c4c341bca265857b1929a1ad99b75688926cc8658f5ae6bd0d103605244ba67aff3c8189840281ed3622d14c6bcc418d44942f25ba8b2e744779b28625148e1d1e7ee6c3040277f65194ed41b9a5de05bb0de663a3332863ca96ebc2fa6eaeb776114a2eeee86cc50a242fc0840c87564d92b10a96036fd48497ca0ed2b29b0a19eea2bff6c324c03f5f7dd7405f935c654d5d8c094e5ac757ab9ab850ce2e33ab5cb8ba9bfd59427f3a00ce67e7894ccccaa6621480b763ad29cae2a2423026e548e93077d51767ec716a935b580e5dc1485c5567024346c9fe7942a7b9339925b5b6dec6cd784c41a82cf921cb58c7a8cfa1e33108f20fb5eee47db41e90c14cbdbc0f6f9f01617b8b65f31669a92d047d1a68861096c2c3de95cce055971f7f33c4208c953ff9cc56fce5ac32628f8bc06c660ac3bc129e7e138865c0f17a3165697d8cc0594a3606f65022037fbcd3fef494e63dcdfd4049673d5f056ba02a323439efa343103e70ef7a1e1d6d80ea2544e6b06201efeb631cdaf9616b25be1d868d86293725fd29b9cc8cc7fc1a56d29af3b52ee129a7cd2ec3ccab9fa1c2582a3a4f77ad9c47e782729856fda4ea24ecc51440377222218875201c85acfbca75bd259af9ccebacf3ed51014758d29f8a306a098304ac528a43a90544ff396bfc8f4d3c3b8d52487887631900c269dd86496974f33c84d2cbbe23ee358b906232035933108303ed9ee5b8a48a5b76d0450f4631d6fcda3ee994cb5f757cb809381018954ad118b4bd8d44f647c9d29d453981f7bcb6d6d06d08adc163e82ebe9a75c239d5cb29463bbfa3a3b1491049e03bb0f97c6066e025678af232bdd3f46c7814e6b22be1e62380351d63f395f5dac4b789513c075e0bb6bda20a855505c323807e03b849ec5ab48e9690244d3cf7bf79915eb3dfd65c97fb1d623fb9bfc3e59a14d30c435cce00fcdce8517f6896f3fc66d68aedad7b3c0e81173eb8c5f4505d51c6dda72700dd4962e1c71502396f8384159ac4838d857f77ddd5254ae5c40034272bea5c11cf2261b50c99c5467a71f024d86591d47fe08b0a9a2ebdf413c4610b6bb652c8eff5331c004943dd2212656bb2127ef1306f28b1bfd92ca17f69cb1f39b124632d0cc708556674bd2127af2633f8e377c2e9364d4de0a2e9cbbc21d52c2101b22513bbcda5f04c3cdd17497be586c65c27108b0caa7400b370dfa13b87ca9733491967000914c7b21e2767dd2e57691065e4717ad9bcb80e1dc13e78fd03cc2b82e17fa50f9816b32b1c03afa737633d95348a27671de4686369303d12a44998f168986d4a51935c7342e2f06d4741dce067f4a6942fc6511bc4c927453214344beb4f24e4282fb231b40a45600a32f67ec9478c3223d9b45041f998302838d91f87c8463029a140be38ecd024548b41ccc4eef0914a7349a11943518fc71d85ee4293f8497114aaeda982922eca5a4fc904f40c74f5f68951a06537373774cb907e0618f6fa21ad7aca2b7a5b5ca77fc37da56e68a9b9a5e04ea66739c4361031705c9f79f5048c836b803412c50a5cff696ef324b41dcd9cfa1e1079a09edadbe1f2b5fa3b22d6f74943473c250686c1a6f4ca970b9401614494443b4112fa6a88256d42e53ad1addd3bfb70b808fc062eeaaac22fd3f07d68dafd329e6c9ab876226a10ffa78f1e8a89ad546b84162ea172faff5e0607d4addfd943cb38a00b695761a8c9534916f10430d158555eccccc05fcb02289f32f36040e7dd13699d95520bdb9d356661b3db0c363deab0bac017441f3ab010215bda966b3cd0db158b75df585de6fa6b0d1d62953262b60923d66744ab6dda12210434fde85c4a16df99e5d22064d1b16140874e67474cd22256a17ea4743b7007965b86893d2060213f5dd231f77eaf7f97143bd335baa05b14d04a354f17d334411c823a4a461ab9dd979d6630b8ef4ce32eacb88e585c51dbd2d3e623022b0755103c0a27042ce24a18b64c847664bc15fab1467262d7f82da92a63fd60f52e3e978dd58ce4072a5dd2da636edeb67aa6648728e0e40fb6306783cde4377b37d354ed4cd692315ea159ffe7c9d1ebf803c64469e6d2da100463e094571eda2e33813572f7fe8404891e6c0dace225e4d7fce36549a71237fc1b0361a992be2603006eb721c7b2a74fb32c5138ca83c9a29f6005b8477dd3c5e35139a3afd2384d01b1201c2d0cf6bd07ee4849c84c6c4050f947798758f115ea5ccf62b10274cdb5f01e55e2fd004e79f36aac8f102a612c744529b9171b0b4c330c3b1d07c3198112d178086375961be363d82ae3d41ac9c5b6c3574bab1b7154fe18c39cd0d3a4c31c468eae45f24a13652f8bc66192d9cc078dab9e017acd8e6743344c936a2bf172da47ff99c63ec4779455d6a7f551be6d84d4d7287df3f365ce2d7171e354e1f4facce89b272f693951394003be555eb83a8badfdf7684ee0b7f647bba157a89116b42292c391959460d32c858de06a94de3dfe180d6d7716dc7db3456fa889682333c758cb364c4888dca54e4705ad8128c43254bb7457af7c4117a6b69de626a83b0d735435485f018cbf8ec547ca9792aa86e6f6c9261587a419dccf908a1f3de6a664b338308c580cc1cce58a3fcdb068dc4bcd822a8fb294240f30a3e17b176b3aaa5309094545194a30bdbacabcd7f34e1ebb27fd54a58e8c561c9dd0f54d25823c81516321eb4b2c4dc2a3e72fdab4ed49f6d170a7eb805be699fc40f8dd638ee254bfa358ae105ffb0f5a344a67fedcbe4b3d7e8273547c99f4ca255b0f75bbc6749137e97e250e94938fe812d21541d7923bc99e9931111269b43a61b531a0157beeb6b5a610e7427d4d2010e35a0f0886f12d8897042f68bde487d3f82f006086e569b033ce7c7c0869b07f44cf34da36686e393c16f02ca58ebb814dc5369702584af2e47641fcd20ac2cfa81c1da3c44df0e2462f68d9b3d88cfadad330e75dc2a5e67a3b200d4bf9cb6d40b125368106a9b273c12302c9a2eea39abb8da85603eb9614d933b814882341b21263ce2c14712256a9c88a2136d48d42a886c6f95ad4ce2b769e8e296f0ba9a8dc69e5cf9b158bb04eae415ba4379f53d960886eaf4fbca618c327fd740e02d9078c20f1667f88912aecf5dc26718fa4276802f128b8c0a812bb22368be9463d1702b689fe46fa33582104c32ce792a1d7c7027c72e89adc68f6e79613588c5b21de3ec3890652e76bd1195339d17fd2c7f55931ca6d6f4cf36a6da12732766413f343b825b7eaebbe7e944e166752c5642cd731e5c765622954df9086139440efbc14a1c1a4ca5b6a8074949eaeb9921c14d8a3e66a424fbd8ae7d5641567970097e941bc6fb52c854fd3043ab3f137bce27694d34e3725c8f2f3d28656b62e68aae35f838e4262f48bdaccc5602a9f408742722e8962d1a60c432cccbeaaf9b28d422e93f159331ce47b4d3a48ccce3f50e7003ef9404a999e52c0b8837c0246d01744b85b47eb4bacf532a2eb68f6e333d4146d3e2135519c354e44a115b941eaa57322f5495e626b3494e53bd7bca43de753f4959fa7caa20716536c44eb4c1dbdb76517df03d457f347a5bd0b2d3dd1f1338a254da1477dda7dab4a67689ad181e4fdb51d843ca2a42880d4aa3eeaf48f90ce6d8e8182915f035a26908bb561508aece85f182d1abd584bb13c858af8c1c32fa14dd0d4fee7a5a8703ddfd7a672b95651aa70134d623338fccdbd3f51a5eb6f764991128191c90746524f7eeb56f1d695453026e20e2c60b2c8bf7f0b11bd8b42309d131267ecc7a975f55d9ec430dc721510a38cbb2a00b94a3af705c097f26e7c4304c70dbdbb8b9087b6259427ae47b1fb205c4e3e4932e9bdb9a3dbad2617646a82ba8af39a3a184206d1cd88833eb9ef4ee34a68f2edaf6782511e017638c32187faf93492e7b6e01b3063e70c3e1f50de7c8bba0f6a15ce904431b080968f69e10c5e9315738ae030a7e974303b99787d1863fea97c732373ca51b4b1c36fc5503403a5f5e5542a2342e097fe7fd8fced48b2b8402798ee2b48001ccbda8bcebaad5585669aed4b498e6a6490da28bddaaded2b588294c30e5d27874d6959c1f6813f2abbed091ac1812a9c78e40eb5178692155b5c08a149133c4d03ea48fe74592054ba4a070d9fea5354d55a7d86fa9d6e743ec04eecca6b062288e01bdd6810363e1d75ada643f41258c7eb45bfe3cb01c0404c003010683a4a34b68b4bf5d1ee61258feab8b578df351da9497513b17b6fb2e5de52a624536b0716071b0749add3dddd110acfa46e0fe7184e6932f56cead837da4b688c68bb8202c11584134dcb05e5e582e27a7224b53961547a0e67da43bae585601fee0c08a2093c84d06f14bfae2753bea9d4302625c526bc3f06c5b0c0203f41e2392a81b16d8ef48db121e4e0a85a9575a9e1aa480927994828520a6da9d4353869dfe6c067c33a5c2bf5b831320b1ef6effe662f44be83a12ae73d0c4b4adf6521f15b763f7271ec8e6efa42e437281d5c1c3c74b6670251a7bd974975836f300477ec4e3bcd96caf4eddc764776a279b40959cf7c81e8a3a209d13f6d77a2f4dda5339b3ba767eceb65fe9bed66ce9bb1532f4883363822d435b239c71851bf35c71ae5ddc92437b1df320edb28976d1a47fb3714a76d1b87e2b8ad53a17d511acd36e24081bbb34e5b67ae87285f94371de5024acbbc497ba4dcd6d14137333333373703b1ad6743536d6a646c8c7bce293d7f8dc6f88573ce89c9754cdafcb099dc2d846577638c2da758a5c531250d176ce6fcf53c30e9eab0dbece27840c639b1c9c36a972636a5e61a1960b08c0193c4874e050c13e90273e4a5fc40a2d6d1362d5f5e28d717a7a226077fbe34e580365c505e5ebe500c0b15642193831aa8503a9ad23118c0045ab69812250b235e3674cb0693368694524aed88173b78a9491db8ca0d5fe4804d97920c99745111f3f4d745e50b174694846e20a34910cabc645006004a5a4a29a9bc94524a69e5d3240e3d4cf1e249b3416af306894d8d0a10369a5f972b063f7f5d2e25ad0bab088c295e8cd1c310af222440c96a5555ee39a08d9803dad8c088a9a16abfae265e966affba9a68f1a1c750e7afab49175410ae26574c9903da20a189d24bb751491a9ad480f31cd5d1734a3ef415b6c4084f95254934f460c316621081daa870401e569c9452caf052d6b061c50f4c689aa66935316c112386a120235f14b1650745ba68eac264acc061c98a18603307b461238a2c2a1a5168f995e728f124fcbaa230fad0579226a5bcdc5005cc114ab872184201948c39aa81115b8c94896285100650c69532420082176348312508043022a524619d681882a18099a4605b2f4518020c92e081d11141f0e2a9c8c88ad017a22fa880c1cd8e2b4e961842073165e80084295e34b1610865305164a90b4bfe00a7071b18c5e084183192680289c53e78f6aa62e7294c32d87278c2889452da38e1c18992976ec37f5d4d86f0a85f57133278a09152cf8641579827ee4bad62b8a81b0e5c61a8708549728599011357981d362aae30457eb0e150bb2e3620d411ac4025551abfae2d9eb052bb5fd71646bc742501866b8b27dfbfae2d9c7c589d896d73c2ac6aa9fdaba5ceaaa5c6aaa572d5522507eec71cda258d25e2fb53233bfc8c30a8cef30b7dba1e36ba1fd04bf51f7a423bee82c4a6c141edfe429f6730fb328120026f7cc8cd6bf74c47513aa5a3b676944b6fba07846699461980494fc1943cb2d9d90119470f77a763b3654b1878cc8a8cbaae208e3e540551f42155e1809aefa3bc62d41332e2c3d23ee9439485fa683e73cd1bf2615147794246288bfa900f4bf36dc8bb6ca79e0ca2fa19c4900a07b491bd09528f791624fbf9b95079f0fb39b9994e64955829684f8194ae812e53867d7abcd9cf87f4f9616059f2eb06635b1e6e1ed92c7f85c4e71e5ba6cc6f7c666620ee1181df8f088e9a6ff7605e7be6f1c0bcb5cec1ed39d13eb9e190c77c9dba00c48f7d2ff4afd7bce491cd3262182624be740cc3b0e901f13b91fdf94c525f755d4c9edec5e4e8d9f75fbb02b7582e26452e26442ea3a79bccfb26fb5460f537e4c3ab06a5b31afb1d52b1da31efdfa1aa42f6fbbdd09a017e3f272968cfc1b2cb94e1cdc11a8800abbf6d9d65703b8b2b4ae69b966d5176fb349a124c1d0d0518b7ad20b52fee0973051be0becd37b00e0022d420fb447dc57c102b88c5d23f21cdabd0e6db3a28000ca106d9a707eac77c837eaa10b4a124d6f560c063edb38bf202633dbb5b7633f47b81833a93738a9b385d2e31b7c7a5255298b999dbb7ae80d89a48f4028985f9742391158503994fff6e12f0621149c08b456996aa776b1ffee05c4b983cf8eb02828c0b08307e5d5c20d9f975fd8083af8b23fe2aa9880829784862cb1856fb0fee235724755d3f5cf1d297a328d9b67ba260eefb2bc813a45c21b65aad16fde2ea48898267fa1d454e29bd28b39b52ca0d0c4509e2f32e801fc4a29a07896584a81b8912c4e7815a015e18a403634d6f5f7a21c330bb1e353f2dd0df8e75d78e512fca0b9c75379d33d9f702ffc4b04f622d7fd8a86f95a49f4c397313e2174aa6df2ed85980889c3c5830bd99aa1c7d7bd077a723e8dbfb0bf99b66bed18c7a8645efae02f38b3650d99679640cd265c8b43e4897291377674ef656ebb32f2e3857f002f390add6c74f08e640f48500d59f1ed784c91ebfbd5dca17300ecb3cfb82f407619197baa42b495c92b4480a53830fda0e8c6ca81edbb58485942fa80ccbb439bb286a9da54d029151abd5720125fab592840c11c526866118a6b95a4a1ec360b0648474583246107ef032e6b130ec544488c716104674f9f003158a4d8c5e216a9da523f40f0d4fdec41619142d2886a02082a2687a966559e6c36755556d6ac5b0225602927972949c9ee5d10d9670f9d0b30c9bd273401b4252a86855559b5a2546b76aa3fdba948e7c587d32d1aa3ce84147460d6dba57d7eac6e8c690cd5f74b126482675fa9c52dbb32a757ee13649e92c6677a4cbf6a49192ca2eb32cc3329ad18c6659967db2481acd5c514359248bba47b2e40d27e5d14b8c683ed96088b2fe45faa2e2c451c54c5b54887e3ddca5c89dc3addba876b9653f81e5e71756f0b7f2c78a1dbbd90929d81727a0d0ac8b7339d1456c8ebd2f06236fef6eef723bf3e4c99399f9db8edbbbeb13a6ae2351d7afa87c54d7bb1eea0d8d0ea66e4e0c8113ad8f31726143816dd9294cebd9b50328cf1f10ff09540fa4fae842949416474c61a9ebdbeca2464f5da9de6da0bf1b7679b302911bd6fc6ef8f3c10a6205b1b28f2936f1935214d31a22523a424a526252b50e7f345c28b5640f58f7c365ec0e7bd864ac095cc473f7d2a825a6546575d8b9a908cc0766d43afc335e6a288ddc08fc10337237525569443f7ebd3e266a7b8811f19cc14165f6e8430d31277e550619fb22199b81165f31f29ccc2846318ab9f9a35a9dc1a2fa1711e3671775fb38df3c88d579102bfaaa5bed4ef4f88a4fdc8ad1e8082949e9233b7d64311f5ffc34f4b12895a5ce5c5143fa9b97a2a26edf0df71131a18b95166bf32056108b3df6e6754054160aa926ab150a1f35d4a6793ab647f95639c286df4ec7f637d3d997698a57398391e7874393e555c489ef2ffacc0d2af37480f4e992729579b45903893ae75785500f0243eb51ae494f08507dd9fdccd9edc83c1396c11a4b35945f51ccf560db9c1b3e37506072f4b17932cfc993b9e5469b366ddacdcd5e7f91c90785cc9829495390a2d1bcb29286070d5c7e997890f2f30b57ef62a20926a4f4512da3ae6b09321f765112a22e629e752d91e4a3b792d8470d6506358c46dd03763e542140f59b8718ac09d143b009264d289932254ac1d8c3302ccb7444dad15a77c13082dde9e074b4f41c3cdb658d2eb5bfe9399abd7dcc67f743bf9b1ed3d9d9e7c731e8dde998cef3c3e12fa757333ac068780c91e97aa899cf80a972d63067c7d7f3367d8381e8dbd90be3ab8b76277aa7a486d1a8a8a57934ba40b3b46f570cf6f723be4a18e26d343c8e2861d0d5c4ebc368f4b18b22528cae269844291fbd8b28f6eacca9cf30e89ffeb0671ee605f13228fb03c2e086ab8fad84c155f7c41f5627ba104b7c5c4526a336ea19a71a067dec78a8db4836483057220953a2a8462a2941c50c91126350aee2c4cf9ad8dbbb5b81bfd609877cd77c0c22808f2b10f31d0e41fa1f59d326e697b65a343c507bfced7aa8bebf2f768c9bbd88588adb2a94f04102c060c660ce8f8f22a93265ca1481654394d44d1caa33283787411aa2229ca26fd7433e7dba5833ed0ee6ce60671485cc4e0d683e3f164cd7be1c7c036c1de972be740921f4d2e3d06cadeb28cc4b9f709d7ebf0871530e124988264f33cc73304f9803fa609ef0060acc13810f77e9a5d03fe0439c0f7d5e625efbf4d83d07bc8123dda8064bf4ee67e348ab2cf7761329c9cc719275e456a95c655c62b72ccbb2e99d61986318867d2186c5cc0b390c5b220aca5833229e7cb76f29246a749b248a7c1be0db51dd4f53e6498199190521869620a1450ea434c1457806330d4b9e9999190928df2e291257bedd86072d2e295ed4f876dafd34187568015143123dd021072dc39125d911413cbb9623c6f83c3bb6557434e820ca98c508323a443cbbac5cf70c56bea5777777b7cb08a26767d4d014323830b2238e304d31e254e50609e46094650709103db990b840228116bc6c543892064c5413a38db8a8210c09450d4d6c488cc678150d946c5438ae20c478f9eb4a020ca7a6a1295953cea6458dddfb448479427008838b433abbcef6ece0063c7b7966a32a7f7fa46077d877748f0aa20e3be7e0a586e78e32f01852326477587e405a6090999999a5f8528deafcf93173a5621e356fe721e612b2136b3197a616bc2cec8b5f0b3df400db433f46f229f9f610c767ede102bebd1ad57e21f2431efafe6961775a4c0c26d30ea9c4201383d3677373734f2f1229112d2561b0bd88884125a5b8d4c2163b4ac4adb43b2d250989c154911a4622249ec66ca881176098660ba78cd41d2d84477dcce5e723f3b8c4dd4ee3458d4c0cb6cb2f2a31d81ef250546ad7b6272ea5ffe57700b2b71e984708ca39a76ec45951fa4b87f9a4efbce6bcb82644df3c57f52d3a207e2fd0afdc03287ee63f3a4dd3344d437d1a55c50ee2ee1c6c9b6382b9ed4ebbb626344bf909910e445fdb9dfe613781f702bf34417c1eb2d5d2166c6f9f3dfa650cd22f3fba3b7dc363bef4f93fbf190b5711423af6a56f0e33f8c3607bbbb4c1b6399a5cb994524620361ad4c80282b5ecee55eafe646b4ed6267da338d29756a9a1bf6b58d4964d3de594435aa77d2275ad1ac62f4dbb63440d572947d434a21ac6a6a421dd13370e3d1119a20de15239259a6153d20c9b72ca293328358c4d2fc43d7129065d180113850f2d3247599a06d5abd56ad160448c6eae6a38786e6a3d3b3539dd7c53195a54a1e5390bd79627af7ad6b2e4d987468d235962b65268f1edd85661636487387db230f976496f08e207658cc4f8608cab8d2c938f0f668ebfda37b05cf976aeb3ecf0ddbe452a9aa5c148ea091554ba5cd1210057a4d800cb0ddb2bd5d0c8b104adfd5595332d5176d560c9f36b8a17fc17cfee39ccb3cf5314e19977c6a015a50492ac889206450ed811e58264fec4c0947de941166152104106fd33c3d364dac14818362a19907e6448629dfd9056a61e92fc083119f1829f22435e9c6c543834609aa9e1862447434009338413ae21aef8d07f552486dff670b56a5ef1184a9243ed7ab41766ca20f3159cb10f611e21eed92cbeb0af40f4fc92a2685d521409e0c3659191595720ba00665c01c960e661fcec8b99f496b2c3989c988872d0b1c3a44fcf85b91d8fe8f443e1e7e4326cb2185e7289ed62125b892373a48d94986c0ecb322c6e1832d32486a293fac47c17fb309b4afb892dd5458d55c69591e59c2d838d8dcde2e0b7e13caaa2474f79a90b4edfe9b139599b2e387f027d63b18b907229875df2527b7ab7d7d4baa02eb8db1cb5a0bdbb91599873c608343f7adcdde5311bbba02e09a9dd9aaaadd3d505b55d82deac9648e49c3e59a0fe32cbbe70cea640b3bb2511765725bb720c52398bb86ec3d2f9b679646ddd9639d76d996318e5b62c433986722b4f508a4279e8b35a9f2aaf658e510cc3be0582c61912b193ce3f925be89ecdd781740fe7280f7d2adb705f88f35d7316874639c039ea83e146039185f2c8427d431c8bf321c91242b911ca8aab00ea9b1759dcad2059dc67a4488a85726651cc23eadb5500e5aff29a5b79e231aff29917997dbac7c767b502417795aab7cad3202a8fade4b81d67a59c0db11181210abb9434547d644a575d597e41c60d5a2c9641518bd545557da4dfc473290aa21ffae840b1b5a552f0a464e6f639e7ccbc54179a9939f3ad665f08e43117da65e6409e7b4a6f7a0331183f20f9d837040852bde9c1ee57aaf75b4568ccb7db50c30502c43c4388ac28ad2a953b08ae56ab21622aed1ea0d7ab22098178d917cd13e62fac7163e2a6ed18d536c9c9c53cce40a5437612f96e23b6df95524a29a56c669eec5106e59c524a3228215c495b2af6eb721df161e5a6700d31e5ba9e44179118b1a394c2c767716464ec4ef45893626f652f1b1df8e4e81ddbb462f6b54fb115877ca2513c8a483149a9c949aa16a1d2b8cfc7cee3e298711acfc1130a1a9fb129f9ac4f3bdbd0f090fefa0ca7e1d978ebb3ab5f5f9d755943e3eba57c464dcd07843d8d73a783c669bc983d3118535ef6f20c1083ba23049aef64c859ecebd1516008f0ba1b206e06b8598f344dece1b04e9c410d9969780c85f1ecc53cdd27c730189d260772bada31f96d5bcbe9a9e9c52446e94b4b6988a9c849c999767d3c2f744a6bdd2dae8705e9a74104d0a930bf50f3cdb7efc6515e90761d8d01614f3f27fb65af6c0cebc4f8345464af3fb2c4a7fbcd9ae24421c9476f01887b56cb97149044a1f80589c96f4d607c949dbd9827b4c9c6304fcff0f1667d7c80cc0cfd3a4b43e2b09aa2ede50f5555716ca4af16872dfa6fbbdb1b9d73301106dbc7af7e3273d0ef8f1511065bc7b639987dfafc825ef3ad8428342ba1881ac697538faf9e73cbba9f49998b502a3be5ba1f27db763f32eb32b0accd87a8dddcbe183bf6e8c525069b881aee13a651afc72742b19113917c0b7d5715e8abf985a0fc92be9d7d861009a232a97b139dbe0d83219591dbc1b639dbeefad649a9eb5a22b302f3b80fda9479e63e59e6e00acb321b996fbb9b7959c6be3b99774fb2ce5204121be1f889eed43ad3297f4fddddddfd45290caa544f4fdd138d589de973faf41a1045a4dd99461051a7d3117b189fe2537c7a8a43d1697a08fed1d4be2cf384448a7df16977a66b55d41947d490b21185b24d1b0cce39e7d640677526b83bd3a5b3f00304b135c6c70a4d54e560f77ca00b70b2b03bd3e3ffb26943355280f32637e79c4d89a8ddbe69393da7e654db77b80fe6f1b183418c8bda4e0106311fcc83b90f0631e76ed5a0df1ded8379760705ba1fce786c7cc59cc8ed689d88247671f322120631df4131251f9fd52a0441fa85eed917aa5418e639dcb32ccc55388eb94ff72ccbc663a1ca732d91798e796a6cd284b06d0e73390c4e27282f01cbc0b25011f5c59ce9bd4abf01e6992b28fd7420334c8e1418dcd9dbd3e70453bbf8e9d9e76377a63fa9ec2d198653aa42fac1a044428a48dd2382a49731306d33a04491483212750f0bab135d0c7d3d11818079a44b6741aba27ec15cdbe648a9f3ab23b51d7c62cfb2e4929897ee433aed171a7443b8969c5eba7743d430475b9aad91d33d393ad3e12f3fda1da5bcc160af186cffa14adf2f9f02f36c1460a07c3b0bddb3ace5f2ed2558a9eca14b2868ddf2dd735c21beada842a68b152bba40f104fc4ec08bceb0526ad2497bc71d32cfdc4c0244709a5966962c3166995966962c185df29931a3c6866d80e08dd5aaa6c686461c1ac18810b0905824162cdd58241689058b9c554a508212d01063cea6d9d441c042629158b07463915824162c5129525444c2e21131861149caee34143a183644a31fc684c4269629b1c0229689833a513e3366d4d8b00d10bcb15ad5d4d8d088382a159649022c134b1c01896d73426e6751c76db1a8757e9c44a2a3d6895c1546f3884c8d9e8323d23cda388dc89027a1562b22e9e210d77940ddccb62c73cbd2b5b062287dea54a81f91acac0eea05ade3417bf4d32feecee414971634d9b03db368ce17bc36a40d6947f4b538a6b3d4868aa6124a863eadd0542bcd8c59c43c9a43cc8d48514a44a200d28e19dc760f4645eb797474d469515155f8cc985163c33640f0c66a5553634323e2a85439ee364c44a5a144445a1d7624b6873e4df9795459a85cc4be8964c84a0db5a1210d09f74c28f36804f3a8765bd7714d349ed8babb6777cb962d656f9518bd65efea88d213ee5df10e713b1e59486597d270a0bcb954126473727163772867d9a1bcfba2721dcaeb8692d29f5948f7a339ed50de955119cb32546f43ceeabc2609f7749db775eced9930e8b34d725cc665bbbb7277e52ee79917fee0382f3eaaa6552354a3715e4d8b41a21a21d661a29a560d370ae5e940755f541fd46bca8bbfa166bcc63011b56bd570339add663463cc8c578d109fc09ea21fd6b46a5a3544ad67af51c23c9913d524611eced96b8a6ad634e335e3a579f2eb8c373db3e66d5f3d27a9548d66437fa3c1655f3d94173d8975950446692a2e7ef59c6c9eaa297af699ae26099fc0de753ff2ab212253c3cda8868809f3600ea5763a502fbb326ab819a980f3f2db8cc294d177b619a9105f3ac79bc669f1f726dbc5a66c8d6e1c2bce4ce61ef72500e0a9665a5e48e6389f7dbb3bedd1eb293faa65349898d154a6629a369f1aa58452437c42d7aaa9969612c2b0d41083a9d68c31668c81a130f619632c0ea3eec95c1a15b50ecf9b18b26c358dd28cc3bc88426998f4f5288739d9bc3d9a31e1138ef80476b26d5d336190a56c97de8fac293bca8c184cb5362223e6214ac23c982b49b516c74e89d9a8bad9df9e93cda927b332354cb5b8eec7c996d10d531cd7fda076b50e5bcc0f39443b0cb4976ab553c68475f8cb8c1864c751aa1b11a33477c23ceca3978551b1ae5517f5481ff6abbff07c7d7bfb1b51aab565a9d6971926a2fe885a1bd146d47198a7cd7098477f7a290ef3b29f9e879a584635d4363343002ed84af0cdc9e15c73f6341cd77ed850d636e7405f52fda67afb082e696a4c4d39a1720b24aff3ebd2c197df683890eea9b13aebebaa75badba97c34a5998a92a0a224acd7f0548dd5320dc3b039b12cfb280935bc1b2b06a5d3f0c21f287cf42dc16b23eacd322869eb484ff98cd32c49faa93cf3526050aadca609db2ca99541cc298318095e3dfe08de0d093e82d3f06df332d73c1ace79e12ab9c0cedecca2da2c3d331106a503910be4867a83411630df5cfa063ac03c9c97f972d69d6fdd77a3a3db3ce8352f94210b5a0ddf4ec78f0f39e8d9fbf1280f687e8d6f01395ee591e009f9a9de6304a73163e3d578a12a8b495e3aaddea6d8673c05de56ddb302eb4897f206f72c8be68baaa15e50c37d819f4f51c37dc524ae7d7128741d34fd72f9758121f3dbb66dd7835d73ce738181743f9b77ae79dce61df785ec2fc4e77cdd79d3985dd334cd993d2006e510c99cec7e2a0f15257d0811f6d88b490cb26b5e07c93ec33222e60983f8260342bf9fcca503310fe612937304a611c605060ca63a9d37e9ddddddbe5e9095eb3b1aacbd5d60d6581b60ae7d21a5fc852a30663456ea0df529a5d43cc99ced609ed960f7f0581df62a9ec180ddb32cb963771864f2f2f20b7d9e5bdd548b5086b2c1d6017576a70fb0009a2d4d50dcd0758ef36ef3056d70f754665ad2714b688c48d668183a5854ffbef285ab88491ec418b360669ad16c4ac6264b2925c693b9fb6129254bc9bccb2d999953cccbbc748b8dbd1bfbd9ffecb5528dce547a573567942ca594734ed93342d41871a87be577c6914f57831abd2586459459763d90858afc214a6e777168a836a4be9cc58734c2c8c4c4e013d54822416bad5425552a5ff9aca28f8c947b683333ab987906183c33333373f9f6eece810fdf517cbbab6cd0ec0c5c84581c3868f2ed5200b4c6911a02804502b468fa7600302961063016074eeca2051009f8ce828a6fbfe97eba7a42634ab041162d40e10634f8f61a95060d64bcf876a9ea7e9a32df8067985986309e9999892495470009dd4f6344d840079d6766661fa1fbe14e480b0dd0498c6fb7e97e5a55e48a9a053821e100a718be7d46f7d3aa2d90fca0ca1128925899c286eab4a4a68eba14b185a6fb61ec490d2916313c008b27545d7678769cea0898e28a1fb608f13a92a5069aa1279b9ae20a259e7d2648480a27a7262172e892c391118ae0b05ced6c704510339ebddaa8703c07b4b1bac1e5cab3733e1c704268074c18d1011153865243aedd14b0a58c2cacc86205971f10f0bcc5cab3a3ba1f5e059e3ea8c48d36653d0a11d10000008002c314000020100c08842291402c20cd4171fb0114800b779242765a381287d31c876118c518640c2180184000200688313544c441005698e0c6b33aa5cb3dc42b0d2e9319bf9412f582b028ae05add4b65f46f1dcd741ba7500912cfee1b48f2d60f5e83360c5e7cb9e68c169390e586549073e5f21dc83043ad8bd2ee6a5176725a5153c8d378dba9231fe284fe409715195308128a6cf96924b2be48fa9470c7a87915e34ea3ee4753d3eb0aed907bfa131d6537ad18b78d5a02b59e347c9048f105a9438fb9b528a09ef15642e82d1485620027a574a03063aaa87e6688d6a34e5a2602fc4b30c080f1ab0bf205e218a123203942223b1930a3aa1d8c44802264dce1e9e0d8a3d3b5c4297509f2ec43e1e2cb8732d0e324a898a877db6cd819fa4515a22ed37b3dafffc972937452bae41ae0a9d72c62ad0310ade9a29153dbf8a54faca692c2d8f5902b2d70a8de91ad2b29c5b43a977031b71dfd2b522f6a3343c4bc0d5e26b5825df4bbe68515a6715b4d581f307d1982e0af42718e02c5908d58ad6a10664499a293cf3ee3f56b1b2f4cc52381560c5922e9cfe07a60a54287e3deb07829e6d9d714fe723e9a297631cd787892b334e94e40696c1139597406a50b80b9cd47bc83a958480d073c51c862a2c4a45c97cd9e2706f4fc6d380f73a169b362523724eecc48a38a111f8588c4b4abe605cf6c24fd94eb3c130029fc50011b6734bf853935979254c8e4bfbf4fb345287e9b8a0711fcd7e8d7eb1219d81f00b0c1eaad288f409c56731489d680745329ead0553efb7cc72b52eaf06f65d4473b821c5ca9bf4afa23a839fb2320e35a91e2f354273dc833795954476a8cc24e5cc9c3541df169b6c9429cd93d5d6bf85ebe7f07ee4b3f5721d79c2b1b28a614073e5de1fce7316922f36e89b51dfda17880617a953d36351fc4211eef837fe54c560b33d0b78670e57e143bfe8b13dec949b1b53e9311610289059babf6536294d5d0d4c65af6694074561129612575e8fd8356479051859c963e785c1293e020b16c6f0b6a23455c0b9d08f886b123c230803d5cb1d51d7e926c0954dd47b81ad86ef383b5a2a86a0d326f03031870f10778fc20d0d880c9a5fd17ff4b1309388bc8b8c29f164b07865cf847f613b940d4c227752514648c4052bca7af36d5c9a3735d3aa1d8a664aed3f2da4e959c056855f0315fd5eeca1b5693d5bd02ae1d74237a35d5a0497e28f0eaebfca4eeab72d41fd1378fc9a683c0f243be1de9d7fc17f0e9793e64cd86322288149a552b98d34ed2b2441b9af7a9199cd39042e3b98932d37aaf004f7a3b4c7f57421dcb32ae6596ac84a6f83bce91768ac6ff98ed351a0616d9aed2d2027c1b37eeaee1a186a34ed04802b117bc8beeb6cf5d00306b344174299c3bac90cff12e5b7ea80616ac9412d91050e2a1626c8ca50fd254cf6344f03b072750d7350e5cc46a474739263243d17c7e64a556debbc9875ab8e79f265a4109f21711c2c23561175aa5dbe55204b60c22cc722d720308b9ddcf67162b1bbecda5e64ea354176dbd18a25358f76fde2c3af50957b4122014534d1a23a4b4df20b7e36155eaf337df7d99c5dd0900343a9e5631c668f26b2566fe67c4d630e646b3e3389158c768835c08f733d034c9d7c30d4c04a6d088f1820f2f5930f2853e3f8710f7ab23bb7da8713b60a7936454c8985a766dc4b67ac4c064a0c3307bee7528d31c2ad37117ef470b54ac4e4a4a29239d5b47a2e52132ca2d65755d4917700f6d038b6e9cdacc136ed7283bb15762c21944a2d0e6fd8d62582457d152eed950c51e319032fdbfc708a13d54f340ac87a0504e7575864390ea752cf5d9e0eef0cda79473ae70cc9199e9aa0ff1be854003f0efd3aeeab92baddd6d84b4cb7ebfb63e9a5d5a057456d3ea11900b3d6126420bcc1b1b233c49714584d7fc42a6835a3a17872cac20e0966972722d5bb57e0f5b6f7555cf28f5ba79b718819d9e075b3532b23796da420416e6925a49b9eb11868069439afa97fdb679943e071d8e3662a922b4292738181db779aeb4702276ef77f9387a3cf7843ca3595f472cb14703132c904a85d24c83e8daf41438685881f87c60661c54623e69b54c89f336e00205b93431a15337a2110d09e8d25f485d8040139837d1b975a87b76ecb64f291ebec039ba3d01da00cd3b06fd55fcdbaf8def5c41b7a5f31335b682a25cbb647d92022a6973a73d01fc5fe11a1faaaf6dbfc35c390561823225f4a884fd732782732ab29e45afdad647ab3b9479fca70cf21fe326a2e1222c9232558c2f60991f460a04d9906d369b2199698f09fc701c9d4744b379304192faa60d7c52c68b5e131f73a3ffee16ec7d18d1ec94fccd76ebf72abee30a64b5744a0d55b320f0bbfd4f3667f7fd85636e236f5bf9f4d02521399b41b6a2a54b9c670cca72410147e8fe90a8a9d7e89e7b43c4ded644a6e2e03415a54040d8283be5252a45127b0ef4fb7a95a4d2d38d1b03982711e4b510b97e22c238a68bbfd25d0a85153fad251bb7ba76b4b0c7b3377535066d5ebc612853c618367f3b28c1bfe26f334fd30d96feacd75a8266ca9fc1444269ee9565f10696eb9119c1fa4190cd72c3299f052189c9dff2f7735720c48992a173dff4cc3d77fa9fa2f20732f711b31d37108c3c4ce4434a9dac8c95dd4c26aa5ee905457f64882b300846be113412ee46b85205eddc8ba08976caabf703d3ce8290495c7541474772c2da76014756640c45face25631d16f1311334dac102a9c9561a799be91f80e244bec9bada064efa309a2ff208beb956bf2ec423a433acff14aa74efa22293ce3dad979504d031e5fe2a9ea84be1caeba4467cc67ff8641afa963fd097de19cf64d5480fe462ae9443334e42a4d08f73252833bbfb9da8afa2f2a6b86868e6d3c2dc65e0834b0d5b9a0d52450b6bedf28b0329ef9f1c36d085afdb03a33a3fb424a3630bda050fbaa942e7fc8601a3d1f24f85ebc000120db80887aa6cca2a3f5ddbee2aaec431f48ad26afb29351273f068dec1a80e153b8c80301dc2cd9a1f5ab92491ac6aebc7a459e68b8f91250be6e42df3a978830c0ed90871425f79a879ccea0b501634229cb21a985ae00f656db127d41fa291cac9423ef86d1da25004f4d632eb8c688b7398b492dca06cf0e65692c79636bd41b593dcafd80a52f20aad6ae69dae1c32db6f3c6f215d6d418e3d82c10c6f7176a47004078fbf8382d6691c8188eedaf7560eb2a97223477d02afe33e9da6969fce571ecebaf860256684368f4f236759bd91f755cafa1bfce1e633327a8533b624854cd55af1dcbe953ece624fba5de3168e6f0f10e36e13b380d3c77cca6e589c8a2f51ca0e6ea70148984fb637a4b1b7d66f065d7f139b5736ef53eab444f9dd7699b6b90ddc7aef141d7a5ad61c2663e68ba3f21ccf4c6443d59af9cccb2c69b4d0cf595910d9782d1ef2bd144e1f632ef606b4766eda86f768eb6f6b7e857548d6d9c48ec2851cb2cf09ea28e9bed262addf63c170dbbc0ac57241c31b72b36b2121f4ffb5c1a5d7ad6b2026837c731a77d72951bbd8ae0db776fcd5022b2557ed22b8112b4cc5631df0037f5eebd235b1efe56709d8f369eff715560e4b2a1ee7624b64cc1bbb9b487e523ada1ab2e4ef2c92e627631d32aa4af5dc46ea14227ee92902fc61470290f3bac6e0d4c25f74c523e86ef77cbe8fd0c28b1d64cb3fb4103ec1ca02b3e76e87fcdaf228cdead443823d89e6c9405c23fae75c0a3c7ef4ef10544c1cfd64a11a2f8c348b95c95bc49e929825c6979d33f10bfb627d9e6c1d47fd2197aaa53567c2e28efa9970683902b82bb31788ce830cf0ddefb38941edd5a57c1f04313b1e95e6074883c9292df6dd9b846fa962f4060d03095bddbe3fb1c7b18ef29930bedae2f0f956715fde037f0b9e2628dceec73e77569a8a1fbc6f20d75d6506ede4832e86754a95d6721165927901366cf35205b1b407d0a648a2e16a214183ea4ce2f5ad8bb1c33a8066eef3d2fa0e72e019a9e5f282c269cc1c4327a959c48dcb1512e8dc2d73cee99ad81d9cfc28c6884a76fc80458b5a5bfa8a3f50fcea49479baf5b4465ad6b48fa57b9fd3dab8169e28e4c42b24bbc7857096520e69348a6be8e984afd2d6cf7ab439ace9f77a8886262dc6fa5ba3f5532aa230c21e7ed83a3c91c2f7342eeb14c68782b6040fa6128690c005f5290e5aeed1a1427c423bccc2dcb3a8c8091c12babda9404b7c84904c9d15dd86201deb246a0f3abac6421545d839752c294c3f7cf2e7fb1fdb45bf34cee68bb136bc50c94f2e3c8019e8456d05e54b5722b51f52f75ce5e6994dcb98d4e996494ce5fcf3a98b87ccf696dc204ae1fffd5350818f71aacfc8b13792ea9fc568603ba0a6a7573c59a12a35630d8a1ebec439109d02d4b6863225461e53cda6ae8a3cef435b1018da31f4fc593d1bf30cc626d49b4493ac8f4e8049628001f044fe9ce26e3a8ade88bd5283c5357c00324bec0c3984d18f662ca8cf77380b931c55a0cc5cc975ae19e4dc7621c836ba72b3862f7435b46a301cf53dd22fc1204f773df9690b6418c10dfdbc202c4a73da8adadbe9c00b7cffd40bec32b4ad4e70fdcedcf159a9855603176174f9a788754cf7a90a217bb70e90c79407c32f121d3c380c39d34998bc9f75548ca2e23cad8f7fa64273a0d21c83ff4470d20384ab53e1b4e04c6bb596c95e8e3061863268519c952a67c55d0ffd4a776004dafe6d75b48be477eb11984820696655cda5d5b0a35fd4808230da14bfc67666aaf44de97192570004b243ed5c87943ef050711fd3269b7df390758167f90277c4a6925ed95b63d5e894f1042482c615a4b49b68a4779db233c6b5f4a1786b511cc91b21dfc8d506566a3045bedf7de0790ad31ce49ff8850f8fcd7719b04c890e3c832fad91eeaf16b304dc56a35fbb7da24c192aebdbb6854df704442530168dd836cda519556109c3205124e0a2566cbcc356b29b999f58d2f83d689ca80567fd675495e64142bfe500585ccd006f5f0b37a582736d1951f87fc97926c678504a3c120d82963e80956ac685b4ae3b9c16253700844efcf70492964a797905eddbadfed870a39490df2fb41b6c1aae7bc879726f765398f158b7893577efb9640554d35ef5d4d0d2c6697e18656c4f2972766a64ca39d8ea7f873de91a82bfdaad8f99821ab881aab4326c3aef86f948e9cc9f223c0e18d5a108d65cb311a3a261b5ea06a0ff2a2b2b8658b752ac5d96baa8235e1a07a673a79820eb353073624bb7da6a7227c213fb0c3da51f1d2015abf3ca600a367635ddb904ceed4369b87a65412f5f3c9f6cb6595931e01515d01fd749d6d48e03cb02178d30c6656717d86476b3c747b7ccdca7fb1a0f2cdd961653a1f9516fa54f4174429d9fd9b353466ef1413b5d8614618d392da881065cc120d2d6966af6291f6770ef2a243ec97c73694bfac19a014759c5b6dbbf45dc21bb5d1eec5f3b8746f53f9224412997ffbcbe3082e6fd023d8064a88dbb199464ba5eb33b2f60326772cdf104a5188a0b164a036f5f3fc8ab1e8d14019537cfa3fd5d3d420e1fb8aeabe8a123bb092f9bd1ca8462c2cd9b00b11ec1934093a74c094e4f86fa1795125d2ebd9570fb7196030963d1b91787d61084d8e486150ac8c6e724899464b50be22d664f541dfe983149fb450424e62beb2ef138ed5233d8b5987cde37203155482f5bd16c68c29204b3e33cf8748a97054bc0160be961233655b11b49edc3beb86115c81bb2e9802c1032769a76bc2eb9f736efcf8e212a0f2f8954142cf086e716506a5854d0c8627e312490bc27e9100929a47719091e2e0a279b876923e1e339fc2c3c7af0aa864d312431f643b9b5605ebc6344213c3b13d0bd5c336853503d7704356b5a5890f0381e372c180e86a2d5ac814a5ac19a50c9a23029b8fbd34ec80440c6ab4d8258b3c1c739202dddf8d585b29b187f6b4ce8910fafa5a6cd558b84145ec63d2c80eeb68d046442a2d93d35e844c23d5244d99d264ab2c6d80d7f8302ae16905ac5a93260d9c6b5521d130917adbcaa883c068f6e64dc0af7cbd89d2a762309eaa025c94baef6dc5bb5f2a490dc7e4b2919e412c930b08f613289350c4053e4582ea79d5b7d2e34086d670a982b1f0aaf97be0e126de8965c2c70500af628778cd37de65bc125532177c78886a4d3a533a66376380b2f4eed778b65e6bd009c6377f0972d2b86aea947b754c8ab3be5cdda6524d5df71dc28e2ba230c9b0284750e5806450eb782a58e86aba2da446dbb51807d2f4bdb89a41c2077b3349a0a949ae5fd5ed4464aba7ca855bef53f02810b8137ebbedbfd815873a0a75ff811cac5c46fcbc0e3a2bedb65d583eff5657525d0f636db4b435ec0d7906bac067075c3dd55c1de8b351a0a7b42b4ccc9897eeb56ccb724a5320228f0a1f25c7122a5317e85edf05ca6e6423f6a7c8674e4c78609cb35ad41d2957a22328e6af3332c06c935bc06498835d8218768f9414e1a6f743226dbef8e3d78fa58b930990b50dadf9852936c899853f75a52e75ebdb31224b765b986b8801e97607a13bba229086daa1b5fae264a16ac9f2e9f9bc25343b9b35ae3983c97f89a481821a3051a3170b53e8cf9249a9c1a0bbbd101da5cda591c033604204222395b6f294ab90a884aa274b814dd1c1ae48606c74804dc59ce885522295aaff4512d3084cf02c9f12e423656fb81efcdf52c55416797a705d2f1b1e370e142073303e509764e95f35477d499d56b40dc59fba9d2471812a2e2931d3d39255f83d7c27529938b7c35de342006600514af6bda777c1136e261c1b51101055eca559c9e7a65b3bc52820249c721b00ffd5533b9a25adb83f4e23b808aec7cc2fa01a0b07acd0edc93b253e145edc9789c6834f3c2a79803b1ac45645f1d15ceb3539f60e7543999bc6e2e7950e38e04026731e300ef2b6efa91ea67527c4657c7cc299bae972e80931706782aca42267681acca41a5023de17f52963a9ab45b29bb51c9c58b064b8a80e00434e7291d05459bd0af3f5fee0200c17c9798128c9d97ec58ad3f1390ddbc1a4bc318a7c81406103639e31133e33dc8643256ab571dd858452581ad08d25c79ac5f0a6a54a860be0118829d87b14ad838323ad9760e0db91680adf55ef890cf053a2b2993ba4b4dab1223bc808f758183aa8daebc1202b204b55118e5cdb004f6ab3ec8f306527ef59ea0a1477de5e7d91f111e3339ae8abf212eebd3cd56c64538568f6009744fd2fab377ee50854314ec53659f44adb4bdfc8759e9be4e7593d142d1e2e971abb24baa56da1ec09399655f83a3f022a9a5e28927272fc099141921a819bcb70a0164fe8de2a2639ce3b5b1adcde900fc1316367c463034311663920e20ac275eea534d6e7c0cf9b0d225a1a09b6bd4300b502eedf8211506d5b9167a7976f486f374bc698e2b961ba043a62b7f536aec0d080ba67510077ea7b8f6cd585555b063e7a8526e23fbd36c8afe18bea869ea15a597749d50b5223589923ba6be0e6ec086576c34267b44befa27b4733edb37b8b686cad3efaf284df6b6e0016688f9f0cc6e48160d33db2fdc0e1a0d62a19bd681ffd2f53a7e3c36db306a5e04c9a3541b3e46a6021b975b92f5465bc767176be711cd09be540cad36efede24633cdf194369d457991d0daa57ab7b827d37de796d0dc7e7c33640cf5389a6874ea0a0e4024d70148ebded2e00e763a2007f1a8a50b1f32ac30e7f4edd3e00462ad1dd59d4641a160caec19aced3792839720456678d640b586fe0a54e26fd6446a3d98e6c91fc0dd40677bec04ca65f5e1262374d4919cfd5ec49d2125d06c169fa348fb0272645de60267c57e9750660e1fbda2f2508c94aac41879f27d9ec1126f647344a082fb28ff41672b54a9e1711da109322a0a4d40a37f08094fced5b6cf026f524ba8242a2c55e2c4f7224b7f9ab12a845facbe9f3cb5aceec0ad46c1f20c9cc177d9f108f7a1a7497312a2913a4cfdecd7aa90ac63586c217fbe084bf9184909c138e0d34e44bf782b3a1bd4ea75e05945da8404d0dc2a45b3b644341237f4385e5da940662257784f37344faf26027e02e64661efd94a8990e1fe6f93e2333a59cc69f2ee3a7b2fcb846a0cdac1a1b46e65a97e2be0e215f52b9325eccdc3da940280e700d09dd948a5c24731e2a924abbe95d51c9bf227291dea5d3d7b515b5e45605ddb5f2326d3bf35952f47bf5937ecb04c27940cdf01d4a737ed4b2419a323797265b148630a4c03e5145e37a8f17bb7406d8472d1debd5c99a8aa4278d27c46a885591dff8a89baef31319fb1e6e6cd2deb0b9e8659b0fd0e128c7c2e469e874fcbf8034af3f023dd0b8288604834f2b8b4dfb913b827c636a10970339414df97df99539089d16468144effe83c2deada7ed052b3ddf7ebe91c7080ea93eac2c376ba5f85aa3125cc7a9771890fbeb5976999df5f4e3feaed098e501a1ec0f19d4c0af262f77e60793e7d47990900ce5d22c63339e4febdc240c218c887c3c26fd9ff6c4930b967f4e3b488029f16b28280da5fd5bb81c683973f79fb06c8fc3c5e200acce4e2aab81a8e7ba909eb77bc33e9007758acbc2a6dcbb404d1a3ca05cd82bcadad1196377391b4d90664411cad309bc463af7f68745a2c24f683fbfae9e9d145b2ff1ea7322d84b55955f558ba19c56e3285f94dd81a0eb433f4aa877cfe8da4e6eb4f6e9e77ee45c318100affc37b4c4fb8bd54ca90c7acaa618a756151e22360e54fbef451f38132f22541fe0116f0a7f791e3c41d70a41240ca6ea7f1bd9ff0ebfeb3b976311744b12d1fbca5fbc252922761f48a6bbfbbeb7d8782eeb8fdf71272273e912a5ac098d07dc0f0b3d23eb289771f47adbcabfb9108039324f90b64a0553ed8079168482bfe99f3545e4d05e1dc5f1c22a52253023324b59deac3ff058a3e31115278e00b3b2bfffb0d53ebdf3c4a28870b9fd63b442c8031cd89d90a0d2cf76cb037a1deac99d75efc2f96bc332451256df30be07f4c5cac10b790e250472b4ade3823a4ee0c63034efa5b10ee0508284b7cfc2d2d7fbb1df10d93941552ec7e3429b79bf9aa941293262a11275eb22a95f472124237e266bd3ee11c81c646aa956fa704bfb3385a921706fcb6b139bcf312e0f465020c1d735a7cd6833e661ee83752ca6c81aa10e0e1f8ee842b916db99a7a1eee1b9a2ff53430ffdcfb097df25bf46e792884752ae8f8fbf887b6427ba117173ff62e10c4b4b8c85b8f1f173abc9acb89f22ae1e558d326925e92ff818f3f13cf7d70bfb8701bb3ea05dc63e7d44c1e75a854adbda6e836dde30d8aad80d078757762f55b22914907fde37c02d93f6c85614a5c6ba13608f46c08f0daa5d5db5c9b6562ed88da4377f8e918b12522a8752921bbbce06d974614aa837b603717450f19b1ce72449809f0d8925d14aedddcf3ec6bbe9abc2464f5b63b1b064ca660c984271600de0f499dd449955c087a8fd5fdea13ffeb8c1799fef56d426d17bed8bcdd8734c70a68ec616a4701164d959983f49141cec7a41d6968a6f9cd26f9bfe1875d38347a3c4cc0cd4efb8e119d63c0b1438d38de57b896680df65feb0094068fce554f741e449a871a4f86eed838ca486c32c36761e0b0005149aa8d4383ed8e8b8635a47b2ce4d0604bde3ca29e3e23aac4c4c7757924723c23429aec53d5238f607516ed62d3086a527889c56ea6aecb138fa0b9fa64a5f83825b8eca4a379acb1ade2386194803dc05681ff6aa397fdf9c0c646a666f252cd0bda0b8093c3dbb0d3e1cc8487ebf6ce10faad1c345abf88715437e50ac6e59ae3569ec6e9ad9d6f257cbcb02da5404e751be6e2b1f13ca2ca5c88c888f45d32fcf2522d0f607284151ae745540df86c081adce6305107893d96ae6e85af9c85674857794b47e4bc689358d7ff11590d178175a3b866bbece98649e865a735c191e3fa52b83ebb62a275b9902a093943da53f33bb0a6c39ed7e46d8f2a4abd66b676491119ee676456bd635f76ab184209adb6dc268c1b6708ceb4c8d79bf9574e56720da20da5d43e7238925b10bdd2ff0c2edadf0733355f139a94452f9aa789b3df7d454cfa5d31aa3288fcea1e8dfce527f81182fc77e3f52cb09332303a56ff89f5e832c9db9ab03fe8dda02dbecd5f723069e8aa07627afafe0bfa4e6a1909af3d1621f2193ea213dd88dd66a4b3cf459d12072836ba7fc8d704522ee7ed3cb1601ed54173c6e00e25eca7581b7c7cd7e17afd1b4ad36014cf4c3711fb349ee933e80ca75614201c1b890525ca2fa78e5d493a41a94ebd04a0dcd21318044ce650dbc7568914fa45e840c8cf8c801860f32f7e3430521533a07bf609eabeab99b01a4cb61cfd7b18db09e6c7bf9bb97b1d19686e253144a07de514b45af695cf0f4488f09ac138ce202bf0c1f0a5f5d57db717872992052216f98fd61c5910869ed36127d312e0d89b29772356074e450531440d415dd33dae8b1308ef1a73fe675e2bc1722c4409786f3c72ba63968c2da5b4bc868d0c3b7876ddc9c2b9542670706643125d6c560f7322ca1607b40e22840593bf02ab250f4cac7f769be025314b326b8992fa8550faa9cbc5035062c386f08ee4bab82b7eb13f9f3d9e4b31fa655b51f1d07444a820321f6b290e4cdf06f1728e206782af0c93de51c96198ea75244a77d828f3c0025b2c9f0fcc700c1e704193d8a9002c8567edebdb828780586bd4c29d142348bc33aedc3218bebfbc0524f2a566e87ada9872f0dea7060e0e404d9ccb32c29f4ce50ba44cbe70d1cb0cb763f65679c93b7a9b2292e17542fc028734eea7defd438a41101e413c5cfd7b1bb5b22f27813783976d3e507575b1c77499e0dc5a86e3a158f813f990b58adfa3d497b3de41dd13a1245be8e2952db660f511e513e10e7a62044d109e9fb5cc81a12e24f062c169a41face3110639c955c9374a130b1017c5542d5ebe9ef58a6964bc2c6958fb121fd534df230288ac1cfbf436f0694185475c4724ac04009588360f258e0b6ab67dd4950d15983919d7e33c1bc53dbfa7e59e1de258a5766f930c56f27dfb8bcd325807fc491205e5032de576593f9014c3dbf27d35912a63b27dc3b5fa3a78204df24194f0db9c84ba3fe5c62d9b4e35826a1898de814d5e8342658d8e1c889860f54c7fbb3470e720bbfda7a30f902cda0b52489d4e3f33a0bc7533fccb6e0cdaaffc0d6754858eea665233fea1ef3652c2d4e8d6560b516be7352e311f80803edb22e636f40382281334b90cd90af1da07e2cd4509bf0ac981d917b0373d393de87db9614eb786d00c71c52c8c53d77c3bc1ef8a9bde6fed6bb8a327c21623900c25e08760b05727cb03bcc6f0370e1701c27b5e8e6c96c46252057883605c58e473c1ab366cac6b8641d1949301033a36345c0ccbd29fba6e751c1b40d1819c282f9cabd3d25c9c95a662dd3ad4c73bab19eca7f1553642010f44227c23dc9600e62e76509b0564d9a2f851ac3e18c846986c7f1053089c4c5a2a2bcc29fc22cdda20ea47ecf3ad9d04d4815af97a96124a07ac128e0b25fdb6b6026f2d64321a7a8ce0c42be7c92c8c113a847b7d87b6b590bb9047252c400637d12ad8dfb5b8896acf86bed06957ae9aa53dc8d97a946769cc59f84e33fd417580ee9c4e8f55a8d3af754a985cfd4497af501a3b2874fe6af37a2d9cc880f1f94a80315c6cca3d16d7ef7781c5d8491946761f94c64e2ca4cb8a2fbdbb8880d238c97561348b7adaf839268fb9ebe1a635137ce08767d20e43e63ef63910c20a14bd5198070690f5d9f92ab6d9fc6583f04b313a370e98e7d6dd6d1a6712fff4f175085af614f5ced42e0457d4edc295c279b971d8522a50bf246f45102f0c6f171966bb31ab8503c6c181d6243f47e7f637d79ddb87f15fc9305d1d2b029aa66c58f0ad298b3b9d51382c1e45e3c42b821a92366cf4a46920726d30e035b998364f441ab0f404174f2afb845c8631cc99c32fe470cb260de33464c7293f60d86999de5bb6f4fa6760f14853d25f798759f88e4d0a9c3709565c54b87f05c38e0539fe399a62807d48cb73f7898bf56f21e120e9d2194a955e3b13f281bb1e1c6e5f15e4a8f87232271ae95725d181e078012660061a93394b40d24411e2b8c64c13bdce0e7a8d60487d7ff786bf19ab287da4887fe0426fffb37d3a5c0f29f589e8d25a691c4209597316c3f8e01a4383c6d6f1a196cd457157fece3a81acea6bb98e263c02293dfbaef49a9a5caea0bcafe146a08d7d5463e6d5940bbe20986b2cd83d9df32d9e2837ef2e0aa729f2001249daf924f8784a74dc2db955c81305a80f03506ec2dfea9fe8b928dbbc851980406c7c57482708d757551aa5279ad527f68231757688371af5482f90af33dae7f8a22048eed5dea5013cf3196a4a0a7bf9aeb103b1ac09c0df5f9879c81e8ce0a1c786a12840249864b1bb07e98bf3275a3a5471f708c461cce6e8299f4196f18e81e4bc4c81a9c140e8ff623031deecf037795cc5d86f719020c562875f6b3e53be2b1efc96574230c7ff0632e71b808897b9e4a4452fc4d739f65da69a233f08773483f82cdfd58d4e983d8efc57770eab510848b99fd3375115c8377e6fcf665353ffb0fae2ee1739a65c20a4438608d7a8a8691032daeaef82f628f68b3236f9d4036b61cedd569816b2311ef022683e2f0452393722bf43f026f592523a0cd056bda47dd70f0deb2511ad6e628ac666049ac384e6f7bd832e29a406cd56a67a3d407cf39231a8c45d39f8c56debae37446b720649c696612bc4522f446be4d4f9ed9f74aed7d882c29327ba70ef5e86e82acea22a0f7c3f3dc8c8891ad53be3d4e539316dfb9791d074604cac094c26103968eccb67d1e06ed947299bf55be1195a6cf5952843ea525d3fec49cb8b0fd44dba07ee0af7a8547067a39cd8cfa8c5b5dd11e5c2baa16989d22692f5fe728bf864e49a294b0d1a85eefc3661677d5b225f9eb1b94eb48d9de05198f1adc06e71b113860c30020d662c53b7697b39b15ca25545d4a60e5a9d87378c6f015e3d70a1ffa4e643c8e852dca007dc2c060250a0890cb0aa291f49e97bb74e59a0a3c42e4ce8884495cd6cf7a379012668db531155d3a84e706dbf33e5ed5221cdd1ec12be8c9a51e48451b3690a625eca7c55b77750d331df13ff7074542134bfc581d47a68d58d156e425edeaef011c65908aeb9af58d4fee7f717e29091376fe1a8fd3638cff02a8600d0feec95dc16a6f758df6ebf2454d3c72985a17174b868a218b168b52c36fe7f1f0a992483d886b4c9304de0231df356c6c9fa9a353acb455443b26833ca4f978428b6db0c0790f61abc5941c8dbe2a6394d3774dc6fe1d07388ef4b67fceefce2832cb5975305af0ea0e8dd3ad3836cd2385260d4aeb8211f349b52589bcc108656a6d3e337314c6f1e204ebf12e0adacce0d707387d6beeb4e3855810567a395d30c1791af92b49322f9c1c9d3ce1365b689b3e250f2fa6667d11600847515333abfa1238e956af046a9b85d11f575614451d055ce012714c7ca7a1e575d23d30cdfb4e7d67a60fc8c85552c7d64325dd048e0180fbdf50661e43f0eddc124db337f13b252e49545f1bac18480209614d3b10839766e0df6b60f15831e0049bfc3b1e6a4f87a36c0c224a95e1599c9c1b2ed91ccba5e0505e953c867eb098c57f2613d1fb594a85e08ad41fbdcc9fd39bb7fdbac31336680e914aaad7c79fff90b573c648ef282539fcd275d1d0f1927089062fd11e122da96f6bf6458ccf2f5424af20ee6164cf960a03e775313a29b02277a94571aab5bc01ca1cc62c88394e6c032ae8cf5e8cbe856a3d92088d50f45ce4e1f0c02305f14d2b59ce3387271ac28a03a49da1af1fbb4ce90c30b45ed85da61db1679c83a26df00c9491b683e184411b0d8b1a7ce1d859f1bf4673cd61575d4a75957e873d3a057561b3212a51bbc30aefa5933b9b36572e2ff66e30e007b92e9bb1ae93f4cd7f53c9035d454262a42051e8c031fed6c6a64ab599b5b233a29573efdf44eda844906c97b3e42a1c4dadf669c95b3be739ec938813ed183e902143eb66d39d3eb470acc4bfb12a607b626ce65356cc2a8f5fcaa382bbe1501fecb084bf3411a0b5e5b1768e47352155746bc21c360b356164b29e5e8ab61894fb39d02a63d53edfa05952c110ce3b18a6ba1d21efb41e62ccab407df86919fbddb939ebcacdc9e1ccb6dd520256f8f9075661e3b086c55550a168618c7527524e9375eb90283e40dd33b41512a6a49f4f8128286a558025eafaabb817f8361f73c3cab45d99cec08cbfd4384f08a7a9ed8356fb9a539b4081789935cf1cfe5eb2a84de36a0158c1333ba465fd4e0ec2dd0afe1b9d20c329d4188f072b58c546598730d2fc734003dac1d1426be39dc1b98fa113b87fde7ed24037166a116de0fb050b71b42d764e66ca6b85f94ac8b3e866f1c0a82e5292793d8ad4f5495997f5a12cb3d25ec6fb4e264f6629156117ad6fd81023c175a40c12e22927ef303d9dcb94d9dbeba388b3fa84e7d7a04ccad28b6a250f656cf4484967271544b2bf0c80a0a244c75b216224306f06a7a121ab2436d472483be67b460e466eb680aba05aada28099d431d776bac0ee22ba6f66ca14627ee6ecd22c6f3fc2d227f0374b59617d01d5ee7a72ba0cfa82190b03896319fba673822286145dae33bf6c82820b557ba0ca348362c28670ec28dbad559bee89013a9797816646618c72c142433f992e1ea091474fb34613d09e0bcf55566861f17ba4d16f020c1739b393afe71887c8b728e71124e88c1694cfbb046f339ee0b349327dae9cb8f694144fc0986bde1aadd92679c967f51b0a0403eca694f8c414ffc0afa88a3aab1b2a32a132297f427d3a8411fd0614c1d3a4781b2b583f4beec088205a1a6c8374fb4f637bc8702dbbe4d6a065aa9dcd5bb1b3fbe500519be8dd1fa9876d72ab0ca5f287a8cee695e89364b9a24ea883081ccd0709ff4646e61102b07412a241824fdc681c9998fe74085db512e1d4084a5d029fe025bf994c1d5873e1ebfd3677367c801b6761bc8161e3d3becafe0f435367da1483333bb803f67485b3496e0ac71c44455a51d85f54601715bacf95c9ed71aaf36b5ddd45c95e86dacddb9f41597d3d36f3cf6dc42a2c1001e33d06e9b8e3ac623dfe2ade676cccdc68f0928a36519716f2b694d26c7f14d149cb7453db35480439a2a53bea4a21318532edab20f52b9e13edca8398a620470fb8e3c9c5bd737bc5098926738c3250d89f984f0088ac6c4ce61c657c94594efdae3b6a3c8ac02b60eff847ed8c4ec99fe2a927e65605f05b5496237952a1d81960690789ec7de7ccc07d19f136a34a055245df5ddee97650d898f2ab3c2e9ce8bd38355c9439ecaa66e7ba35d0ce846b171081b74f78c73f3f0dc6f13063a3aca4581189601a127c733865d7089905a183210f771c1aa8fe804038057598e448da810400576dc75c140f40fcc7075442b511e78fc4b6afcf297d7b08e0f9d3f1a3faf3931315817a3742af5a8abf78218a4617ba9f8ad7303ba82051c055e9ea77aede02703c94f8d8fe8bb67586126f0795364ce4b77ad6decf390329c712d2f3117f5f59eda354dfacdaafd7369ca9a5ef054614e7f19589d4dc8a77f153f1d521f77e6cb251eacb7830ec7f374e9bd2736f8568be36591417d82b6ed1de3b6bd3ed8f8e247e191a3b9dd6dd32e30335e908dcc33ea34f193947a4b0da279e6dfcc0b74a1462783e4e602aba55da0f3c1ced86c8f20b1fd952647f12acf0b72806e32d40f8746c9cf9cc582c5ddf48955a803887328708e6096a43f55e44b0081b54dd9ceff58fbb74b334eee9ec601e0dd5871363e9554edcf73f5ea05f03dac65c8c051d2d65a28ba9e3b39453910682f0796fee3c691f63b6ba3587696c8c4936ed7583d9ba878b5fab4806027373e69d35dd1c3d6d986d54968ba10d2f2af6208c8279b9b0b0df1d9868ea9869f327fb598066d9d3da49a9933e45c2354466373f03ca77343ae403bb68676968f9f223ae5d93731b6d0d05441ddb6342facb349d2d077b1c362d45d66354b1c3a6b8fb02a8642a591d7719842e5659960a9e2c24ad468f627cee9054402e537ec49830bed83868e09593ea34160d285a275cbb9dd80e7b56fc936f517dc8f19274767314b390bec440c925fa0ddbe2ea143871a8c8b7b2c971d2e438ece11cd3c9515b23e2a7a8b7f24a42d7d875ae8c7a3ed17047c702284e45436ef181890e440e6b46a952f400715c5699915f5994a37f15e65abc20ad2a0ff46cefc06aa95e2154d8a322cf4f156ab47b6b9e850f7c3a16b38095d705fdb2056bf8e49e0d1dc2f5c7df9b1616120fed21d032c5a945449e9af294ff1426db42d2e7939545cdd1dec56d86129a82f0cd7e08c97e76b87b044abb3e8e9933e69fc39e603de0d1a0f135a693d6df900aa188fc1648823b5efe00c41241a26204c9be3639d2830eac732445043f533887c7971798b9acdfffd5a77cd8994d6efbeb0d31698df85d1226076e1b115839cbc927b2d77d4ff6cf9f5bcc37427dbaf5adba3d89a516ebd0afe09384187171672c2886b571caf8fae8cf18000d75a984835c037cbec110d00ca5f0587394bb24d3780f1a618052ac29ae132e6367031bfa7facf22e1019f78a8d4a80ca043f0ed2a0a62e5444dd6f184ca4adc81d8f5f369bf2c2785465149f0b8614c9099de1d879ae487c677c775546e5b337d5eff3cd8caba598c3a2be9be8e8b7d479f6138de94d5394473038601b601be8dcdeba3f6419dc2ea19fb522319b519404761a12ea8b447ec83e6fce0a17b5d1213314ede26217c59db0650fdb1593ea61cd6c39da15ad9275d977a7e8a26566b08f47255d24a59cd3dd0fec2857cf5d6e510660033177dd40e5f124ef849c137467191ea0e8bc60b308087f634eff261d9c0c198be68f26c5c1073e05bfb926d91e8c54b2b2f88587ff85debbfeb66955e115c9b1972bab2e0c27eebba0de07fcc31c565542274602051b7a63270a3a95579a3e3fcc0e9b3fdc7742ec3ffd6e903b0ae269565e465decf7cc509e862382cd224b596d4fd99138f9d542e41940a9f77a83192b5ae9a98fd8b1ecbf97872a4feac4167fcc2fddb85b835e2de05255d1d4333ccad2802214bf66544847e5e511f8a5c336458656aabee41c555d78b5559076311a16ab4d9408950bc106964909e485b5f56313c55a036f1294d6163fc7a113df7aef7fd5335bc058901c63995844ff3eb1d19173861aff782edb57f710960dfdea85e36739e3ed577340f57ae22f63cfc52e765455eee96bed8db70b5f0086d1f4e98aefe6a34b39c914eedb597ff65244ed01bc5ce137330655262452a9bec8fd7cb2482069e950e0c1d977c23c4ff52bb6edc593399333f47774e3129281829878991ab8d273e3bf74e63d64d18b1e8572975b29e08f30d3aa39ef8b457c10e277110894895934f5210856312f65e0d2b524365934d1f8c93d64ef16f260cc1d6bb9588fb38fe8222db84b12e167bb39d3b8f0680e74bfd64d87afa5136857b19a3db7889445ebd9107b81b1118016f3f6ce905c2646bdd9c2cd656f95c92d5119d0c04e09b4baf568257726e07536363ae198a6d85af0475adeb20190512321cf9a2194754784334ae420ece1ce21b42240f5945dd8311d3d0b15c6ca06e0064eb5d6b9ceecb1ab2d93a8e367b733362e31f7a51eb99ba024d00dd63385038499a5691653e2f3b7e61ced6c8356b3511617cb6a34686051140d139c98dff7aa8ed4b3fc8e5e194d300bb0a0195b7ab61e154b742af6e2f31eff3e383e104e2ecc6f54278bc8b37c1218c65b56c07c620f3ff6c352b52de3c396e4acbdb814f663ccf11417fd94ab7b9b6e8153039dceb56ad850caaf99efcaa1936234a2654f37de936a8ba62df22f10a8ecdb54db27536c4a3f55cbdd35ff282b1d7c385b4db36349fe66bca7cb9108ec7e602260a9c63c87f42213cde4f532466cae048fb6c06d5a8e3d6fc6585d47970a5b937549bbbffee5a77498c029a36e37de83a6c2189a0bc2c23f43187a71da475a854c9461a2beac4f228148b9220209d9b4e4f556d69ece8e69f1d331531414fba3c5bd11a4cc5eef7669a4ff8b5bebd545c55b44f5e1ffc5de951cc5d3cc14ea1acb355f538561dde127a5188c12fa7c65ad109a1130d8925d09f0f81e33ce0e83d184b51fec7dcbefd7767a500fb47c3d0023ebf3b1e36a2b96000446ad4ae48eb33e7bbb9c49886d0739587853d0a91548220ee032eb6185c325a215ab2b84edcffe46f280e199417d9baee47b55d49752f0b4574f4f53a5332b27d9198211fef8b1967901d65de7e468f98d7fc6580fb82024e189b220af85d2066fcba3513fef00b8b067c690147dae67b786f58fc25c400c5d1c0c2520ddda91185d7c33a39febbb984169c5e8c1b836a9846f991e42172614e832532087a8493970261602b19ca521c145933413c0dbc99b6e74b5dca38e46ded63226814ec815c795056ae2572c2d06cc143aafaecc6dea3dac84ba1c793101744b0e5ad59bec14c7f58dc44ad8bc197cb477f2a682e311d9c355b2eea3bcfb0f33ac5b87767908f31d208aa96f76e28ac7bf7576306560fbe1508b5d62eaa2b99dd97145aed65b0b6b8cfa37fbc9dc34a4d020243628f7747ea5b0fa85c936b44918aeac077a8f6b392a88eef88f0fb960ee0a4e0ff9a68182c67f5f2fcc7c45cf054735f1691380fb3f8ff6ce65db1313781a20cc5ca475eaad2401ef343c90888ff0297641dd82dd35aa1b25475d4c48e4263a34ffb9c2595555f4e795e9c2e8c74660af84e6e8f669256b40f9f8721f50875ad014880f325a03964cfd99b6225982bf96eb51160470d04ae65f51c9c036333f1440b06e7d3da0a96a65472e68fae3c94d411d2df3d047accadb6a2b237b15a6f6da859fb8083f32ea2283c95541fb82e139ce43c07febdba8637411969c264b124a67cecc0474f927fe8224c2d5bcc1b28a93ac0d6c251341a3d53572a1dfeeccc4a69c483bac847f27a0d67ebaaeaad3db0a3fa1ce6374713c80120a645ac77d157e7f9dfd16a1c27870094a4574e81c6aaadc196e31c5ec494eb452d45ecc9d34e6f7bfda3414acea42c04026266b269a6f17ae0926f8af06910edf73162d99e9502fd81064d5bd318a5567a2b10389d3eb69ed907eb6edbc71d8106b3ddeb9eb67c147bc0b77d3b24bed39f9f384b7a9b2ca607f23e0fd49a791b11f3c83c7da97c9092704b3255a5f73420e461446dd44917a95d45b54702b1547791f2834eaab4902ed2cca159b78c391c141c657e1ad70a84bca15a31eb4c052d9eab2f5ff0f336d1fd58ba903b0a5eba9ff03e90845319258830f6362ca0e0d68eb2118c9ac8dabd3f8666bea29d8d501a58758406c727189db3cb418f343532ce1604e486d5593e91e7b6b7cecdfea00514a72f3bf23e1578c73c405471735e9da9c697b56a8eea6f239586a19c7090939e4abf0ac9d52126241cf6ab2a3c230886cfac5f0479893a2201c2e427b2290fc11a08190f057078d4bbbde9e246f20148c753facf197250a51cc3b133d369f2587fba9fac4c84b0cc802bbb95e62ddc0554f22ea4e12527a97820d2fced949cf6f7d051004456c562f18cb7e41b550648fc8715fc212c1f51b2764c4b285a12f8a6091c85353bb6ea1422b1c3b307c9a5fbec6c749c07413b37ff96d7a28aa67622f51b0dcd730ed68738b3810d6fb4c157762b1a6d403ba5d7095ef8086d0043920b4b68b836aa8582809d1767e2d6ac6e92db5aae7c32dde51ec476170c424ceacffce30570034dc10185af1d6ed7446bab546ce4be2cc0ca6a570df373383fbf843847403ba9e87c29a0667e74296be61a12802eb12ea5a4f502bf5b3310415a93ec7efc0a277b061454626d6d4174cd5273cdbbc67eb74f53a601f535370f605d601bb8e106813b65a7a2cb3a058e261e485c3fb47c217c7c50f7fd94039cdabd943bb10a08286a2182fb3a08168c694b461b1c58b2537acbc2643d6f4e8026cc5fb073361e3d8062abb9eb9c22541336df217122a5254375742e30230d60892a05130c0c789875b3ea182e054fe415e9769f45a55a06b807fdaa382c73eea2aac55e9e128ea7282a5b06ea867c3d446313910182baa8671d89c9f6364e93f64427f88e6e297ef25ca15306040974086cca602a7942f6105493afe943b32c72ad2a87899e10e23a3f7d60f41f7588f38ab6122ac5dcb154bca32add1e340129fe0fca8a022676b6fbdffc6a20ebb43c7b1938215b14af31c1e5c671754bd2f0700588837d87a1404aa53400f5745f0bf15d03cbc46bd56e20bdd3d16f78252ce53e5e2ba339155ce81170842585665747f587abe8d0a97c72041bc4d93b4ed7304e5f64dcdcd960be4311b95f6c1a44378548f156a6d4770ce2d04f7d56b6edf8b007adae472212e9d2029d88cb617683b953164c1ae31126bcd3d9dd7668579824a30b8a431510f035d4d65151224c83ef63c5b9bf494fd762e401c95c490f4ac3687bd09f6b2b50bdc7938238edaafa729610f46c12c2d0020090780e3a955c00a74f76e9e991e5d5ae4828af7b124ea4c4817639e77251fe5765ae584e674b1ae12f7e83147a69c61c659ac6abe1a520d3bc6509674e147cd7b965bd7eba2a11366c1531301dd019ad87bc51d39ce7154c3f94629c9abc174fbbb6aba6b0098fa1ac8d1139044a87da492cc7f7e381fb0369824568bf3af57f89ae743c4c91abd5916bd25863c47b7f21d0617117cfc115c00eca01ec8b6f6028cabb5f715adfbab26e89042a500b24358c603f1e4a1c4e4e20598c8c3eeffea8bd0f8d62c891ba7740b8bf7e4476764ab973ce66b0c32be241f48f27a95bca3d1527ce142d8878c0bcd6442119f1cc7b3b6057cc9c125defb2b747a39f0c7194ddc5f03890adc82c6e913333a0adf1a9d0d283aec91c746b2af76137bb740661b22e159ec59ffe7b667ae719be7062de8a06223060dd3b554500835a07a16ce4a478e5380c88e28cc0ad2774a085d6c884a6433322004663a221d1d861e4d1c84e546feb62342d660dd0d4c4597b08aa9140850dedd9461e8e49f6c5d6072ed137e26a88de4ceb5e35e034c8c3e30b91b578c4d47e87c690452385a7c1453c21f2d011680d6ef5f37ca91b1791f2e9cd0563a4a6c8531ac784268cd741c326e47b71e47f30b0c0412209442c6fd84dc7165428ee30d5246c17c8ffaf2efe1f9a0df552bb3ae95abcce6cecb784c4e81cac7715c9d4ec3b2e8565b9b20899440f42bb95798d4a70408c8c5bedb918317eb03402b5ba35e5163a28e9985feb71115a1003ef1069394228d14d70618a649ed120b08fdb4fa9649de556c2c2c4941e232806fef7ad0151d0c9fa0c6074927550a21ea10cdb44401ac400211d98ddebe7ff5617c334227183a9c2a5dda03fb4c4fc4b21a05aeb038ffa028cd11d380681968063c223f82fac6399199a7fb072fa41d0db12ee99dc9f1723eb4b61a0867eecb1d4bc3d589536ea2aeb548a242fca8d912e2a8443f06279a806df39f4755109e3513a72e8b0d1c22d8b76d426bec434d0bdc284958f9eeff0c45d1b9136eb28a1b789dbb3aab5550fad0a68c27b98845709283673f1462dbbbae324830b6e4db38d8f916c50b1d697630dc6af4298e26b025ef88c56b2caa806c5c8256609f8ace0e07f18e35a36dabc53a006033628d278deb58946b28a54c1b90e61e12781169c27fc6348ca74b074c814e868e73218b702d6784776ad663c3dbb777ceebff3724f6e95077703e30ffc479c22cf0f297fe3c5bbfe285a99741dceb72f62ed926c541edbf1dcf674ceebb011d6357fe29a034d6e456f92e99c5de59d66aa319234ab2023c404c7f3c5b82617866fd2be8da834051404b9feb5bf95b81c8caaf552673f41c6206170b61eb69cfc8453d6cb7360734486c2621f17257ea4cb72b0552d8067eaa35ace7cf0160d8874191b8c5deae470e5f33fded98e5c017ec817ed36aa7545ef1e5739517303fb9628b87136b9e602df81860716582e1421d27a3fea94285a4bcec9e841a8d9513cf7d181b8fa71c032aebc82e58be3b24da3df573ab31024d4e0cddf8c870514844615218af1a4dab2873189b77c6eefefb4faf83821b2e19763b51ceb03709a4b94c1a715ba7c0655fb8b5f0eeffbc0edf59a39290c64cdb4339add5d0dfee39441acab5d82162cd8c2b44aa2f7f1d61cd056ea1dd12e2a14edceb1cc2cb0a01ba49304abdf02a3f0ef091a2d55119a12c46c30b9940efe6565a360746216793668c042e961d8d18e211ef190a766b6fbbd3e34f28bf5ac457b427d82e2e06a2ca7ef202877b032c528c0b072fccf9d47814003c17f11a6fb605dee1223bb9326a424b46c20e2941ee3e5fb0229f0d2adb1d7cd5fed0d1ef517f13f14aa8fc0a5eada639b41ed11ece506ec7f2cdc1f01bb5043b6d848e1c6d4ab90263666e115017eef34dd2e9a5f2220e6eeaf6e0e036c85fabbfa1cd7f2b0dfd20e2ffad06ff38f5e18905e9a540cf95316aa69e4ead59ce9268f19647b053ea9d8c70d184aff7a2991af53d80f6bd9c7d9ee5a808a2ff07eb06d4a387cd4f376b08c24fb0b78c2e2494e3d095ced0ed552a423eed35e66c10f74cf2659d132cbfe09538b4c4b6085bc56c1318a5500a9efbe89defe6b4618700cbbba96f5884adf51323f104b44adbe39ba9974028d472aa8962a9a47fa410cd7157537c11676105838f61347d1ae518ac7a431f110bd28860026de997fd5c626b56169df06396ea86958ed4fa30c56ee7656c88d98ad541355e1c485aca0334ac833f0f37784ea596aeefa58568518423fc3de9fd6fad2b7e8e1efd1bc89278ab3ccb122013653467dca6dc9ef4a5e43b3e0f4618b5f745aa18e9f162e4e4ef62d14c27fc7f443725f9ae00d15f91c11a3860f7219471fda33c12adc0447ded50662ee53c57a631c2312f9095de63692cae441024a4cef2414376b623e783cd30b5a63308f6dce5c6991303099a52ca5a4d2e0f2c46cea1063b9466d80b408bb873685e0e77961788952492473c227fbcf777fe9173a4e9366c272d256848588ff12aad3fff64ca50e45d5053d4c60227cc5f4d672792d6e8d7379da051484b83937b820f44e704fa4efaf2a023d4e1d679b82633203e1c9679cae0ffaf3509203b6b4e248937c0868caee391828de0b7f7091781eee4785310df7ebe6c2507b3a3731768cdb147a91dcdfeb0d77ed77f349e99a0c619513f2cc13315052d2b90abd9c8127910a0676f6dc736ca437c3b5af3142d8ce3f7f121ba186fbc56c62129ea81992b23f20dee7cf3e60e9630b9f2eb24abe2a6323262a7186528a288e241034121479328e684fa4176a27e7d873676f66ce466938e0737e166a776f230527ecbcbb825dc69f29d124e39b3b1f14b587b4dcb20c6d354f2c60b06901a5daac173192c0ba1cfa3dda8d5480688dd16e1355eb059287628aa8dcfd8fd0ec831905a91eda0643ba535c519e83a1471643c422ac1088f79b40d653c5d4aa22e0c447eeaa104021abe62ecea694560dae4e4d2027ccdd510a79e375a0c444bfcf05ae68c3efd6452921190a7fb9c695b60c6104bc61bdfb08fe9af0039c5af9265695f1697cf5028b3d12f23a65dcebd13dfb3a9b81744490ba163b139ff8794f83decdb357decf40130c8050edf5750c8a4100f3630e9b3a88138c41352ee4cb4d1a15525354fb4ce377443beacc7b0a1d510af29a6a856f30a5253356cccc0e2ee9fd685e37acf04d003f572082ad8e53329caa832bc047c02f8c2cf841b6ae3b95034a41ee468c6b1fea845b25079ea0b72581e70d7b2ca25d8b4e2783696e7faae82428e2b531cf69457f189b390df400cd1dffb7fad403854a1235198c26f2e9673b2c6b9906fbe38642b7d21b6ed8d48c38dfd9df5a6630b5c83e6485691783363bda965d9eed71707407079d34cf4466e6520911d91a0af3f99ce1e9568052985cf16733976662539c65eb4671a2f9850bb9cd6bb81c19542c60c60a38f929dce2e48a364283b876201d91106305502e9e02cc73d2114f7c4ae475f793887a01c3f54f27baf09e5353128b11c4681da57a4c09071104446ce84bbbe4298dea19a8fcb28a17e1ab3954498c80b4959aeb2e9c2e442e4636e4eb141cd50f95dee9a020845d3856a028efd1034f2b8c06e8ebdae92c62abbecba908d1ed0cd0d4b5de5993563e28a77859e8a2e5f99dfd4bc64f7a4c9dd5fab8dbd865bc549ea04a21807b19af9cff45ef11599b5be4fc99ab4a5458bdf62babe710dfa7f8d07acf3b54508b8278cec39fc7d3500bca0f5357a51881014d5dc9ce1d55e2fd2625ef195c9d10c0997a5a9e5003fbd6cc681577c55333b91de98f761bcc4f5fef12a2548008c4d956344b1f59b15e02aa8d6ea55772e916d47a016b804be5c3fa8e9bd37d75cd80316db53468cd1b02c613bd4c85289357667bfb2a77060bddc0087192afc13cbadf4a76e725392b3c809bd9a4922cbfbcd5b494945a2ee68b31659a62a3d48a195111ac4868e7039f075cbe77275a566aee028e73fa007a4f56cccf5dfac577c4a84076e884a56ec18155c3dc8e57395504160e2cbd86d27763709d7084d181bfbe2765c9451d64bc7c10fabb8a1e326c542bcbb1903ccedb39c63d0355fd10ea173e939d2989c2d0c45c23562d6e59ace68a70132ae1d9ae499c328a964c28837565c4551e1480942ee989dc1c11ea57c2cbb528309d74b93e689cf42e3b1ed40cc14f3f38b1cad0972105b32bc0ffff0cd52e3b5bee5c24a0cdd852f81eebf22f0de6d9b80fea8bf9d19528a7d6f9719810cc5bd1d5765aa9e57e87c34621ec33d42976310943ec4b2c4a666233e12d8836373431c8eafbe91a365c4420cfd822e45fcc39ce0b11484807d58780c5822c307c0302a2540daed86602d82f0938d45a6bc4f019aba492861cefa1c247b412d49c9048190309673d1036719ba1211d9ab2aa11c72d9525f9046cae48804c5ee7b8d6a2ed82bb77c657a1af2476b08fd67c9b66c28eb6fafa076a5b29299559d2ba8716b19f661367af23556a11788e90bd448456c84be1f8990f5d1a3ae9615e7c632bfb78342a06f59ebaf622e38f393e6d24429e18dabc156dea0c86ad716cd58cd0d22f2517917b5c419344ed24855668b9fea9e23ae89dc2aa2e6d2d09167b3caf989098bd1fa49b057700ccae3d783f9619eea3534d23cdaef486d14017017d3dda2794af736d869c2f34b9a1e6833209ed0b28ea4aaa802fc3c6d26f6a082b1604abe694b151474cbb15fb5a7a2074e3fad35bdcc8e3d9f0521596d4309f3082a8ce82c858fb6f9c11526a369ccfa266165ce1d026a1d8be0aab1bd452530b9de3fa7ca8e22e58b672c4bca72b04a1c75ce317cadb7b29a083002a73570828c84aefd424b8160bfa5a564de306547a21454d1ff46869208335d1f499aaa400d926b98628e134d6f97c6fee5246a5c3f261f613d33c4d4f05df4aed6275c9cf2bffccb8689d49c173d145ab3274dba315cd0c98a5e36d09afb29fafc54b07fa9a61f2f010d77fcf945da7e737895c15f595b848177316c13ff6ae1c3980b929ada4eb81a6f54808b0a691f4c239d5b510e27245c56470ad39e7596ee402d0d1d8265ddf894c9052521cc17920e6d858836a27fbd3d8a55725a4075b5fa8e64e5f5a1621ecb0b6da8feacbe0125df55d8e3547c366a83c0bf681d8d0f3284d834cc09fedcb2b3231cb644b037fb018c11c2a6558bf67e99b6f74763fe070981c88eb7eb096e7e834a81cfb90570c478482b4e9770d14891a30d494ef260c3f51707c7ed300d7212b78da16ab956fb9e1357fe8bb89435db63f42957ff05e40dcb691cc2e6a079cf50bbcfb89c812b5dd172bd8ae02dbc2bd108da4a1c62681b17a0780b33543b1a013b0e3f2626b08c6035bd5ab442284111a8899fd4f8c58bfb629cdc7d3862a681658703e5f43baeab754416123e79fe5065e0b592c44cefbbbf94c742ad13482e95e594268cc3726b00874f1b0f1a7eb63182c77b5d9658b36b14eae2827c7ed2de5ec21b42dfd9885bc08cd98a667ef6fd5f16a59ec829a23973c8dcca04cad40bdbff90e1a5d3ff2b9d8302b2adf318cefb1e9d5d947a04ff321ac835848a3bc299f042e82515698356e1fd57aa9a51f0caf04d01fe1bee01c61dd369ff3c482233648224bff9524d6d33df8157a0ef9a7bc39cb55b538d6b4120965d209d3eb542a0f6a7d4b4f347735d74c471eb99ae2ebfc347d595ddfba0b98df35ce39f8215e0f3eb0ca3601f929808a90a43c9c255bc0d5fe3c3269cb8cee7ea7c675a697869bc4d4ac048753f7c3eeaed6085c82715905115224678baee9c39de99a0fa62f5ab3adec262ed32bef06b26c30190bd8ac68bab2619e976f4402db2888b63178608d438fcf51e4c9f3f7d2bf211b7c53499fe22e9567b81646c984a682d24a565cfa882071bf4c19e9d907c77db57e5b3f351ba6e602a87d03c8578e75d022243b14d50b3765cf920da0326c542b082c03ada40b172237ac14ea05fcf91e9abdf3bc7a9158234b41d839653ba8d2048cc457f822cebbda45124c7cf9c00e162d117f4d8d6e9190e89fe4f2b9750243bba4af66c24ac6c72f02f12c07348fc99f88e4e409ec94ad42db8112f84a241e77c3f4ba655712fd8c5f7b0cd1d5b7a45b5a2e5a490d1088202298163b4e6963cc2a3ce420c5a2c2dd6329c24ad7074fe2c176aafc1e3ddd48146c3d432d40de45c1c8e9a3ab376f42fbf2e7bc516b7c9a55e54f5f75be5677508bdc3402db1ae00f235227c17ab536cd239c8ed354d0a2dcba4f8f4f9fd7010493a6db5534f5441ec3a9a49cad89e682553ec00be925236d81db80ab060da24aa6d0cb7a22b9c50d3802ed15be8d3f2b6542b87dc752e4964d4998de3dcdc95c00479f03542d3e15b276fa36101282d85fef76096aa9d662de5b1edb568861daf33ff41ada7ae7761b37bd4089140f1acb13b71a1523df4acc2050dc379317d2b96c20ee2e4bd005b6bd615d079d19de0053eeeaac643baccc0accc147f85368c3f45bb8a7023517571c9f666c7c8f7066d63426ee5408b80a95a169505d49d93013220dd18eb56f25ed121f59a50329c64043bf2085759cba1fb65722163468cd90c648cd695e6207915730b5499e4ebb1b37fd779d90fc0ffa05bb0044763199a06601e25dd9b3e9084b733ff78e2910b788fe56d7e4be1c73a859ad0411938f1143e6857f1e249a37061d68cbea2f323af6bcd4b774aad346715aad414376dd22b68227f4b9f25da29038a5ab4b35007f37bd81c15118e3d082b50d53119786afa15a3153255bacd6af860bbf940906e1140ca8234001645c034a50267359309c55a5038d3c5fa222d40987dbf50913abed0841f29446750a566eeaadbfa7ea238f5d3831089170b6418d701004910d868d701b7f4f58c3d425bdb7fef4d347cdbc5b06e4d25b908d408d104224d97b6fb2a59452a69464bc06e106420724894d38992117f921b79603763396d7470cc6947689ff22840edd6a0f210d7cfaf3bb0c52ed55ed9259fa9166b6e369a9d31f494d46eedc2bca0b21fc3ba1635eb790c5ac08a4ef498f550ef5e8570ed53a99633d1a8d6c9aa3d12229c68edf4d22bd0fae81fdec6c48b6ebab4d0deb38314bd3afbdfc0e93764ac99fc998f5dcceb1ef71e5cba27d5dc6733b1bef6cfe6dba01f1b18fe9965c97ed5c97d26236d3e5b434f1b197dfd56418bb0ef131395d4ed8f215d8006dd664f04eabd29edf5bc75f204f66752e94f165a6c33564b623e5ce4e863d299e3e7e57f31d8c59fceea153fec9421f18e5679abc1af76ec72bb97865d4302b9d8b7109e48149b44bf41ec8e32fd0272b712a4b2ab7ee9cf427cfe93fa9d53219adcdbc5afc66cdd2c49f9a6466d6b9dc1c65f7f8f80b85f033f9f3f27736f36abf699f516d56ee419bc93af34732a318638c31f3c136480a4b8ca2849f9bddd3cbd7b905b8ef481641f74816432ec6449a1cd5eb25db5e7257c6452efe88e3df4adaf618e6a3d1c8a69da3a1f24d2fe7bb7c9fa393e9a76cd49f2c6ab6c9f44ee34fbf6dd776e2dcf4905bc7e3f6b3fd1897ddf6364d63fa1eb7b9ceefe831ac93cf45b7b3694da6e33beafa9a9e37cca6ad4d5fd95dd36e69e49bbe6d67e3b6db74906f327d73fe94ed66bb1c246b3cc8f9dcb73b9bee98a86a364edf96a6dff4a453eddf4cbe83973b1bdf341bf269a6ed5893739ad80edeedb17ed476ba3f2ee6dc6bbfcd45f94c9b0edb30fffa8d931fe353ca9fff206f14eb6ab2c953beffb4ddf4c1353af97734b29db4dde8d9b28ddfcdd2581e75cfb6f12b5ffee4ac8afee8dbdf5f209cdf35355907ef68dbb1c14fb3d98e351eb2cbcfb23ddcacb6e2777eb3ed328073e7639647ffa02633bae2a5f2d24e0357fe06ae7c29ffd21cb03bfbeac13812b5842c7c8a96dc2417c67d47b4883e3009efe91f9675b8c6bbf16374bc83bd3fc36bd3ddb4367de773d4e2e70ae0be235af45c4c66acd960089fbf6cfeb27d6fdceb15dad564d9a576646bb20bbfabc9a06b3668e463b6e3182a4b6a4de6836b5c96663e7cf7cb43bc32eeb00fb6813f6be80419e974861eef7c520e4927c61184a387238841e897c34c2ba294b9371a5d1763178d5042d873f93b87b9fee959462f1963942d8830ca8f178d50621af52b492d528b94d32fd3b2679a26b3c4f5f49a17d534190c8e4654464aa3bb53888db4a22a5d687425b7c4f5d329fd4b93a17123e29ad7c5dc75a98cccd14b999b97729323b1989357724bf8478aa4be25fe822df1d6edaf3caf069e337c2147e0a3440742081fdba1cb44a624f51dc122e8a61a04d893d112bdb0e9558c9fe14073e2099ec1fb62a4e38e381befa27eab18ebf449f70c9ecbe8e39f6845c0e9637ac5e4e33f93ef7a858b7c6af794f4103719c7d15e618f01eca30d1b0cf42adef42a6e231d7f7927d68e84e013031182399b08d32b13c7d2d2abf818186287773328aa535aabb34e85dddd3a153ef6de0d2e98e6e229dac3b44b248d4630fe1d4b8b85e95551acdbc8f20fc74560f7df2ef29528d35ce42f71b35866b1778b3ddb8e455b0036ca8868322817b31ca457f19f9603ca75cb8cf1f38d81f42a7e092a74aded255451ee3b8205910b71b8b005cab83005c63fc07d05b8af06ad53b9ef01003290cd0229ca2c177d110b8c9b9aa8ddfbb9b143bf23582871e3eb88ef875911d52f08888f6220fe422b9da96a8b807092a8f58038ec275ec09e8c8e427805e12fd7c36725ef067ef8ac85f7d23dfc850b9b880b3b041736111ba383437a3c15bbc844af1c0e893dbee23cfc8dd0a7933e439c352512b5833ed2a721f4814a00e18153e014a924a8feef1941c1c714952ffda2314629b3f854be94111a8135057c341ad9eefad7fd75c137a5f5c8d9c4fbde6b2d30a614c21863b4d0a9cf688132deca7bfadebb9ebe17f9d13e5f81d51d1261517e37e79cb2abc9a0f580bbc7f7de83f0bd07df839c09de7b0fbef7de7bf0bdf7de7bef3df81e8431079b01c3485a4b6b692dada56da161416b655f684a6c8185d7ab27e1bf7b83c3c220e42294e9215a165a4b53426b694a645f645f6845d9175a165a11db1338c1094ec8ae10238cf1bd54139ad0842d60cc1c238430527ed90f4e428d1913baf7de93344229af18e57cefbdf84388be36cd26e01a42f0b589d8755d578c16c2499de5d684072184451fb7ac0ee1bd1763ac813a32c608a1bfd2bf4a218430c6d8a54ab54d25c64e995b51f9a14993791f21845a768ad155ba78427c42c4a8c4b226c15a6b94252f9512c00d3f4a6b8aff4877cbeecdb29396c5cd1fc6e8ee5dc55030144de6c5f85e15a5ecc4543aa1321413d4094a96d26452190a06237b314608638c30b40c86bf5b3725b901efc8164b5cefde0206b7bb572b3a25a7fa05b71f15b9149b4412b1077f7178192d7d75dbff11852c4e80840a44c861350b6e7fb51db5352c77d52bb642c66a46fbd8e28816c11648a06a95d147b628c1650984fd6b17c7febbebe96393d29fd4d2eb3bffd1e8aff7318e4de73aecdfe8ba14fb1127319bf56ac63bffe28af88b8e454a5ff7758dae6b74494ae5a4f4a76b32944a3929a553363fdf3a5e38e2a944119f5f54fe15f6e47bf21ad9ee1a8db0f7eee8d91df33eec7afa9099601be0536efea4d7755186ceed23864444315d0411918f1a940fa21f47802c2104b8b9e07bd5cda5527af51a658b4145b9fdef3a0a8459af1a087b32beb97e7ebdd9b7f86f45655a8ca8f051f735e73f9ebff8f0aeba14972686445023a3691411c5900d307ec8c96fc9bd20b05b72af05dac4396daf4c50fd9959f13108656cf85da368faae8c5ef5ffa6939ac1d2f26e4a5c5d4ba7a8abd50d6ab21fb8742ba05be342d77f6549119b6b46ab5771075dcd23024291e844923804843be69ddf6347b6e46172eb8086160d2d1a5a2b63a0a1756918b2e2c5ca92953154e112ba84ae2a2ea13bd2b9947055c13b3b3b3e762e17d1f1d1dddd3cb7bb8bc0828970134ce4721133c14d683c1a8fc6a315a1f15ced47dbd18ac022dbc97676b26ce76645329d97f9c06286ce0c9d193a333ec03644f9908b3374ee0c22337266b4667ca00afec37fd0f01fd78db0d0b80263bee0ec71258c7e052bee00ee3b5205255a0ede9caa9f896effb831edf0658cfb601b283716d37dfad3b7019f5a9ceb8e232d0d9cc81cc59b939952fa36dea5967770eee4baf98f732367e3175af6e14018f6b2d309aa9c4ef4742a3d0bd730f9d29b7c7c1a5cc38462258e7e89a3a512a5a5a7316ec2a9a89c4a4f836bbc5b7ad6644aa7120ba5414bf474a2416987c3a5ae0365aa4f839ee8a39ca45c46205009f7e924f8c69e2b59a2f51f2394e78f271fbf1b7d94291f553160d8aef4a7ef6a8ad5a1b2312c0cfb52d7eb48d9ef67311ca809d7997cfcf737d1373dca7629fa27ce26de93c95eafd9f43d7d8742ad76b234257bba5aae3cb136dd8d68d0e01a271d4e6c626dfa62d99768649106db10e324cdbfef1a4ded33ed5f74a0ec8fc996ec50ea66cfdc7c1d7ec9b8f2754829252f407b99fd831ce5b2ca92babea271e2a724625c02b9e04a3ac98df14a2ba56522269a2fa9b4d134fa877d499a4c26abbd69c524ad9b6c973dfc371a914a9c4a1715b3367e47a487b6441fde91a521d9d1fbd2b54373fd6834db763897a5a1d49aa4644ec61823954f29757901d48d9686fee86f887ce0fc9c724ed33391c9fa60661f44edc2d30733d1641d1f443ca70f78a58ff9a3bfaef7c76c87bab4fa8a937ca8bfd9ead7d315965c975d4a69579ffe131111f920f2116b105c7a16a780406ea4255f5ae4caa7d8531bb505f08dccb6ab6feade8fbe6aef1b655a7a7afde9f4f4df753dbf8953e9a2565b935d13b41dcbc87699651b34fcf09a2c4db526feadfe663b16ccdaf4adf2b989fa261d4cf3646dfa966c87532d0d7fbc7ed198a6111bc9c99199d9426ec7fb22a39945448a4a524a66826b989e76367d3a9978908f514e522a257d19e326ae546a8252229009d944d1a5dc8331c2d8726913314a8b4d6ef417f76e6d1759df5f48ef1ce925b73da671a4afdc5535fa92a3924a29997eadff6aa5cfdc8ef7c51231cd9a0dfa1b2471f32b773dc69974ed5993e9aa67931bfdfc2a537bc5931b71d7d3a73672449a903272a3688a02db385031148c31c60919c2676e87cf0b6437daec8fa88ec5ec065e31b2434d866164f115d77818d9f8d8e4628c5326c6b8e43a9c391febc0e71dc8dcb3109b198c96c55fa87d9681d1be1f51bddb6f6e7cc859c93ed806f830c623ce1df5b01bf11f17aaba1418717465df8e79c6fd4bce1403464a3f868de69c7394c5388a3f9ae1794e151a5c237b9e32a8c860bbbe934a4c4a1d99ca4f154b335f85716e9cc5dde776fd364da33259b2700def58e5fd69700dfea6df5d56fbf7a44b972ffd25b536adf2f2bbcbfeb8ed503a948ec395b66b159577cdda74cb658a7da5c136f00c56c5aab447fdf31316f61fdec9f0edacf2244631393d0dae21bf3beeed0cce32e8801463f99ced5a9e7bbd9a81860c9a8c6373cea96269b00dcdd29cc2759d7aa88a517a18b64ba56c8cafc02fa1d82e9532b128fb7ce5644dbe914a3abc6d2571cf57304abd69b4b4c4683b9b18af166d628f5eb6e7302d0db6c13b9b761deedac7581ab1e57636b1e58ea0a643d3346d2eb1691a34a0ffa0114733750489995f4abbb49452be941c3b8b367dd9d2f0670f69c38a4a5d8f3de6ae7f23089fc2a71472cfcdbec7850fa39467c73c4d314b333fab0d61d75dd3f9d97735990e19db0e721dbcf2470de01cf821eb5809a3d4341ba48796067ef6194956d8411ba41ff5c8c20fa6a7ff43357de93721b09ff4f54d9ce94bff43b5aa7ed43f16e94b6fb2aa36fd0ff54fff83e951f6e606063f92b458a63f591e424c5fed8d101cf34df626fefc1bd9ab2ed9e72b95dba29c1487207a7c747894e888811982f9e11e5492807ea2505f07ea2c2215b9fca422ede242bd622ba250bbd47d56f5e0140c821ddc9e41eda25a80dfcb3f85862e1371ae6405da9667519d4b2ecf22d28f0bc94967f8ef6a4a86ef49e19ef7f35cfc1938f9327027afc2913e853bbd8a3341fd738f85ddf0e79ed210eae8b1df822acfe0bda4b8a75d5cf05eb2772770709d8138c807665d8fdd9869cb3d303ea619c02fd27212ed04979355c03ddc93d2fecab05724276c94cf00a76090be9ff624d1b3495139c53d56ca5f585410fe4481f06f4e2c24d91cbee22fed0d132e085ff1477143f88affe9a259c5806058369619923f3d42edf83beed9d9fe0736e33772f8cb7c7fff21fc057b579231eb86bf3c5690d050919216c93e16dcc12748887f18e8fa1026c23d33377a75f585d3d41484417803c23ff90ee6fda870f453b8eb555cfd189ce96170d8a7b8d1a370da9f70d93f0d7502218410b265f941f543faf37fb85e5a1ef2af9ff6ba28fdc782cc3d0a21c3d6664e2eca975540afc087d6b245d1e010c2ada6562c30ef0765f219e01b4f6c4e4e7dfa39a6bfa2899596d2faf432fd85e2dec52e4ed59453b53d3d0e0b33519998a03e46014317be9c0c4152849015774238c4082bdc2c08090f076ef7b870a109aa53edf290182174e1c9de947e7e5b1cf22f7b437ac983f4f42bc743080e527dfa3c4a2452b5cf579ec43d16c6d96361dc636d8f359393a37d0e16e18d4cc3380a872084dd63c369b8c9a0f97d806eccf84b0af7b068cf3a2a5cfc146ebe8adb3e0647fa140c0d05857b2c8da7e786af385b18965203cdf972cee72181261010d00cca9c7607201a3c875783f769ca9476a8de877742b13939dbc7cf216d5254fe13f75852568b23be9c2f5fda1b92891302597ad5d2a3cb521ff38c856bb44ed45433f27d782c6955fd835b7105137c81c90c52f9f471c8a7dbcb6f8bc374437ad3e3b0a2e92b176f6b3b74e05b7a1f1e2b7e6b3331857f7ccaa4f6a0f6ed52dd83fcf83f987e3e2bc1a9dace3c56498bca40d8e7e43bf699c979be5252cda03e7edb696faaafa09e3e0eab72f0527f898f42fd0967c265bdea61cefa37a7477db53862b4b087f8f27f882fe7f338d9e72bd1fe30df6479d06763daaf666774942c192a12ba0134c47b344ef7c0705ad6211a45f5dfe1065480db182328b9fd949f60221cc56d46c2ed26c06d8a0adf816817fa8d53733d26e9b72623c47cfa98742961075a4a98903032112fd2cf45fc011f36c285db2d749bb768e2070b4d345016825ce88cc9dee4c7b86cf740f4aa26a54585b62a913e97fd9b1f8820fc855945e08ef785cb4cc4650ec1e5572423447cf840a9223154bca80fe8ba7dd4a7a5f0dd9cb3a3b4dde468abfe7df7e9e8a87cfed7edaa5755541605b48b3f118bf373243e46d01fc41f6bd9a6a89d44cc0d7f91c157ba9af25d4ae5bb8ff1dd4af51d4b07f3dd4f7c1938f92adcc9a770a88fc1a9a08a53b1529c0ac2e054aca7691fd333708f2503f7582adc63a5708fa5e21e2b06f75830b8c74a718f85a59ce7afb785616161ed9feafd107f52cb83befc495f5ad59b8f557a427d1d315cb803246ef77e6652905fe4bfef3296d13e7681f6d1604ad1597a37662382b603bea6a9faff69289c101f1e2b657372e29f7c8e7cd4639ca1708f856d52544dd576665a55ff7c1cd6bb38a855b555f5107f3e8ef8d3de0831f99b136b6271c81b94c561993821f11fab722a48e25470e372b2cf197d0e7df939d8e75c9f339fa571efc2941bbee25c8b0e05c57ceafda446381c71b807c5699a0d79af993529c8560a887882044fa0207aa0025cf820073a28c1149c80c2054f80e0899d931f4c1081144ea4200a413e50e01770122609600ba86002841042cc8b2b9899afbf2e1d2eaee0819f287e8c20a3c91650c42088b0051e58d193c516a6e02dd86208d97d47b668e262f71dd9a2063eba4cb763dc6e5ee97faf86c7eff5eb870369e6b03bf63fd8b2b9bdbdbddb8790f0fadf6b8e8ba0a85dea3227b9dcd1b0526150221beceeeece291f72251cc054fc323a968cdf7b0f8893fb4cf235c947d90ddb0584dbd9cbdf5927ea15cb707d50b9db0160453579c356bfff75b067b88d52faaed6279148241289f44fe357033f89f321edbafc590946df9129c6e567a91c8b7a07be67379640e3f9717f3f9a87484abb340a2e211c70cb619320db19f2026911444c14a4b3b92ecf8cd60c9d0e40589399203a13813508e26e55baa8424f83806ee42d05b583b7cba8fcc8915f8bbeb2a457ed435c8f34b47a15774c1ce8d007b13513a4c34410e5d6413bec6666d8318b1981c3957b10b79f631ad6a46ef734024624a29c0922523bd609520297c829bf10433120d06b262806b5631dec5d5b87135b2a55604f468411c612aa5f54bb38aa5dbad76edb0a57b40fb0289c18c1c006981352e8415683273020b40fb221a03841834ec929e94b18e3d54da8f006f0be2018485989acd042176c104208b72c84dcee57d11411463806122290b8fd19929691db0f4393e9540a09263a4ae014155f68e1f6a3d4e08b242e7cf82729f6e99acac1065578210b3e8e104317acee7d89dbad30d8ddddddcd25a8ef42134dc6b5b8308a30e800006110baf0533ec88548f0420c06b8f0595a60c4d0c4858f434c08a87847c660c585bf43bb68327004821d9c08008622b7df14a476758911ab0b9f664b7870e1854bc670e1a7b44bcb85fff065acbe90830b7f06fc82186e022efc922603619e167460fc80c21852df85b70b2a70b8fd5548173c48494128a1078ca0c938145ee8c2edd77ee53a80187b4106a914349971c54411ace006bb5ff6c68aa9ed689596056fc4c8442fb46e07e0f64f4da62b075210d48521b73fca256a576314d08522ae852610c2874a11800ba9545751eed08f16471811c4470d5e20830991f818c113ba82a563d9d161e9586e4baff861f876cce2303154bc602ec8e08654bdd85691aa35455b3b9175842173c708e8233b2e903081b38a002472618315741091a09f20a05e7917a6b820c211f04712f50817581851d42bcf084a7ae5dd8ed625a8540a920f083926f4c415bcf8c1086650b3fb8e24e9b9dd6341922871832437c8742abdef48122446ea76df912446187d51e57d479258f1823abaef48922b16f08120d47d47b0f002241fe88015b02703875e5149e90e41fc078912daa54b3111b76f38a5b57a4baf7a09689dad10e4c0b5022d1ab2407e2b7ff694afbc2a1972f43dc81d89b6a0e43e243b4566dc77640b462e4662953fbcfe2aef686a553f75c1d097fa5ed887e5bd786be6bdf0cf8db7fce53db743f48a67b8dcb2e2766f49bb8eb77a6581165cf83998aeb8b0ffdd1c3980c008126affeb098df40a7ffc429dd45bde7a37f013af06ee874a1806437c440b565cfe16d06556f7ab96cb82dede32a203c433450f127c9200848a214a20c2c5e3c265eeb8e316b4e0ddd0cf0e839deb3f526ee72d258278ab889129627095b89d5bd1add5edbcd5798b7d18880f90219c8222f9917d0891d60fb786682d192203ef064fa2aa667e567e5433f1e7d5d0721de7e9f156ebc781822e336ce95c6620975ffef80abfed9ce7328e1cfc3f58f00fd601075454f5a17f5aadab82ff62402e95d2ab540fef0647a2aa5ec6efd02eaad50c6e154b8b02da45058343dbae7aeb3afc711978b0f79c5222ba70dd629a0de6276c55bca220da85ad8aee782f3bbc95fed4900aa4bbbb9fc0c37b49c1acee7b265c87e9afe9f9018f8d15b7ff75c793c4ed7f53c6ee4df1887680c1ed17dc4ec67df639e03de1f6f56e1062017caf5783ab7ef0c73e65803deeeeae9101dfabc121a352290e3519523f46225151fb796cf1c748b285a5571dcbfb793fb51eae6edba5dcb74151bbcafcddfccd1b141b145714341dbcc7457404b93c240ec5cb0f044fbff08f9f1a252effb8fcbcb8fcb11fe4de0d62e4be7e43ed2e85a79a9132b4a445ed7f5647af80e815f7f773eb75da055a869052cb3adc62eee7d6fb08d906d12bd6d12b6e6ee574f3c48e3c95e945e28303fc727c70f93d9eeaf761ee9a4cd42a4fd5747840525cfabc3d7ced33bead71292337026ddda2764f284704a015193b15efa5ae663c29ffcd39bba7b69313f294990d57305d0b7f2311c10a6e97722bd46c3b40a16474c7afa3a52840757df641083726d487cfbeba5551df3d82a0776016202c3e294230846208a108a584de4f0a275fc5c58fc1d187c1cdcb84c39ec507080c0b4c8e991b4240da4d09274a160a43faf893f4716ba1d4a784522d2464d2342270430bf90372089d4c5192b64a7af81aea336032b13939f465b7c0db6de21e8b512429e9cb78e284c0d7b8d347cef4a509f8e7785fd082e6f24f8f43fec9646f48af9ad92ce9b5e8e0e969e9e48061e9150b0ff790922405f408f48a4936a4e79c768121942328f52c52e7e44d9cc9d32aa7aa63dac43d56cd112434946348670892c5808e9298a3a4e3b797dbf3306d5eb91bbef2862aca1621c02f9be59d2b9e161c021d7f9e82f97942a03ef5aced207dca3e6d07caaa5ac8c9eef0e1b172724e3e7e8ec9979e64b71702bfbea358491f477cfa28a577fb60ea16549904af53334039ca2f897530cf6a0faa5f2109bc170ec15bf1f78fc0bba1dfdddf17d759e7d5e04f91d4f8a57faf86d39bbe3eca35d5ccf63e3cd6666f84e030f9ed6fe49ffc666fb63779d50cb53742502c8ed2cfbf39b12af8f4da1b135bfa98469dea6fcfc3447ab97dc9f220d96753787e808610f101d2a3f3d3239ca6252afc700ae32f0c43a79532f96ef596c487c1d14f71f35138f926272813eeb150dc6369eece3c30546e13068583431837000c0c899a3613cae6e4c854ca7bdb4cdbe388bfcded377b234b42269722e3fabf544ad543fced7fa06ffa611ada608a7a785eaf60af5a9bc939bde95b53f5b06da5bf39fdf6258b83f4d2de989e44a29c4952cbc314a364a82848080806e682da901f14294ad3a99670f873917661a9bcbf219837340463e80d696fe8fdc8c0c93f811123b53d9606036488ebc831836dd474aa946230303191c77c2cee57ff86521fd351dec02fd10221a190c227a0e3d5e028529414e6fd00056d2824f9279f13df848442a53c313d8d4f7a92bd31b13c4c382c1ea6277d89e3210487c9aa9ef43c4e369fcfa8146ef66439eb100d0000000000e314000028100c078442d17030cb533d133f14000c88943e785a9a08b328486114838c418420620c21c0004360680a46ab200058a94c6615efff580384dabe2369e1b2f1f9793833fc1ce482b9fd9fbf693cae090b8e2bdcca7b8da570da1cc8910c942d6b96a3c8ebf3f12e1b9756310770a95f49881fbd48f4de0fbea466f076015ff961e44a74f62a3b6ff82abf5d6316edec222f6921385655e72653e354d987a4e85127e7c064a2519e33eaf90a97d795e6099861ac23dc964b4b6e63bb269c1d104f9aed8bc7b104bfe4d92c82638cdfa9515285cb9a266c27e170af4fd73f6e765e10334c2eddf90b2b0c9758f992b80c0f40d5fef28acd44531b79e52cff7ebf3805600c2b307405b21afb09657e31f157b5683589bc2f285ad043192a7c3f6154f2120aa240945cd06c14831a153b5594b56bf01c79a3fad2610a45621f78f3d8c5d71d6312eaae31a9e3c09901011a88b3f0dbef8cc0491d546a95cddeca5b2a42192c49fabcc42c65788a205785411ea7b4a8e6c02556bbc850e093980dc7a4a38515eaed460588be19a819aa3d108f4bc7456cbcb5551a6569505d3979d4849a0dd048fb193f37a33f9d549f8841ac4439f2123ea2a704a642b2ce180b8ace6874db99981e220691210145fc53efa76ea1dbc5ab0b4577bd1686d147ec4f70bd8c11e5223dde268d7e0fb2b77f44fa064794b75347b423ff3c431cb4cd058d3101d4d21cae95f562d8a8cfc4634266a70b91c240b9b838f2f9c8fbc839b2518da640e7ba2d28533685f2d072380b8be37b26e54a6957234d40aa1d156519e798d050b6d883f8c745ba3e8e94e51ef6c42ec1d952900cf2dfd53c684c399231fa60269bc86cd3581da3d568ceccaef62ad608530f98829d35bd7593699ee7cd9639ae74e9619536f2e16dcea9a86e791bb06be03032e82a28e07ead6b58190fc6f3efbc1b5cae9d654bf8c6c3900ca60c32d8df4c2ca889676abe67f81222b3765d42c7aa686f93a80130f2f34eba06fcc850a876cda36322386bc7a4e6d6e22c1f65cdee4addad071a6f9c7a4c7f7c07c37caf795693a53841a842a1be57dc8b82a7f3c45f3ad95e3e02b77cd4f842e87bb0abf1c44b61b240cd563942868183dc3b84983d2f69e6dc5a5602b9ba6ac245efce4c722717f64c6e96de12fa4897258dbd6c14bc1a1f3b52446d0f374b2d7ce79d5bb66f97ce1b1087847a1f1bd01598de42fc3dfd9b0dff75ac7552a252c2865cbe59d443625ffc0de7c0c515c980293cc93c3bdc3d9c11bf3caf71ba131665eb72a40a18bfa9fe1cddb56306843a493fd6d7a86f202b58dc0b31dca21e4f6561e06b3f5152d364ca4ad80248af4336af98594cdf8b026082e888f2574755f922a767926f86271011d129ad52d84833aa453752e8edcbc25a2b4924c75524bec891ffb18a2ff7c0da88e2c60c8bf7415f96d4bb8f73ba09f6b0c7405fc7d5de49223bad30c8739cd8cb4438ac7aba1f421cf6db29edc8c211cb88e33741af8ed9941652637b59414439907dadb17b5e7621c7ab276738f7e4e00d5912e9397056adcbe7f3bfc905ef365a0c5fbd4deb640c25a8875babfc266867c9dc776a3ecb540ee0b3027250ccfc59af037f7a86534c0e1339ebf0d2a3e2466f599397ac30488d1f49b17b3018ba7c1f5dce32222f21997e6703d56a80bce48ca3970c97f15ae3f337dabe0ce630804dfbb6234a1d900725ae99c77349c7cc8a0295c142dbbbfc6877d3ec0a1eba25831fa03a202ab3cfbbd4c13dcbec270d0410b02601b80d9130084ed5c5ebc8882ea0e211e760f05d3a2496e8ad7ccb2f6315280efb00b2d3113288ab5f8b5f3deb7205434fd05d834bcfea3062f41baed06acbbb747aced3fc8aaae3116e75699800a0a4080cf3bb642045d4c48a6ad77eb50c09f93e19249c086a187c4b059d0734f92f13a3bd65f8965cdc902e34ca716e7ed19352b2ad0cd1ff23756ea52be58cf51734aa1d7c005575f0be275497bd04163032244fc2e6697c3f438551455067d01843e1ba5d3cd6aaa5e002aa3ebf57ec65334c89c34cfc2f9e86b96dc0d3c0e0c41f365fce4962e28f436f1b7dd1d70ec1b8e157c79198594631807fc5b142d983d7ea8bda2e927c7e8d74bd402052d7eed0b1fd7824e026c30e49506f5dc217e5ce4a424326cfa7af2694e20c0e694e04102e8b49de14f947e7823a5de895084e589fcf50ba02a7786a69b843104a1a10ec4a2724d2fae2a41042ff493f539b2c0743889d4b5ddf8823ece20379c7c31ccd3a5e4683091c03889560195d9d92c68c704a426675ad9fdbdcc583fdab534c3455c5ada471d3ca8f465315d1b39e653679d6e3089bd62355348161d1a2387485a511d7588db67b7952edcca1e5782be21fbd1d13f5311a5e50de59d1f8e7a430dd2664e87ebafe228b4fc50dc27ea21d7b7b90de3e1c3151794d5dcd2f17ac97bbd03eb2bb4d6d2ea72860cf66875ac9b004d7752fbceb6efd7f3b926cf50024dc9003e971bf9749813fa23fc9261e8c34ce9e79bf8a7162c8fc1a52bb008cfc8bbba8728430bb6db3d43ee9492e5c69ee24c513f90cfb387153830f99127679ea76898f635487c82a84008c4ddcc7001372a5201108d6e36c4491151b133329c28083926930ee9a4b994d44a3529bd99b93bc098a48749b8bf805ebca66b83566b2436e553452b43e14198a609f30e47b0e5b901f25d447b3f7e069878485b385ec8e55f0b523cb3c76f28b36ebde6bcf7ef8c57cf35fe421dab6307aea233e9c020b22a02a5e90176e6e725a78b0d85b72348b6419161684e035068c2bb0c09b2f5d9461ce1ea33dcfc897de3e57b2846b66a7eb6d87dbdaf77090c81b38849d2bea403de2a8e0786d83f791bb01391ee310b7c68ee220f054342b15d92c2e374a0a7184c1f9299763e906c326afe2fa405f27d47be3e2aa813cd69fc0c1bcc641140872a5d4196db40609313ecc1c8085c4b0df65a4a12d64f36f270e96137b1d2bd17562a9ed4ee4f125a444fa38b15976d11668a3f2d0fb6d94b67b3d15009bb5018ee3d3df03dbae7db052f3458dacfaba2e213e5129109709137e042b90913cbd30e6a70bb753c118e00266458efe8e0c10d365cec09e83e7f675756b3b3215a77a4d25d748aed06fc32f8906b35c6da6114e794d0990a50540d7a53521349dd7b3359279c13dae4aa4c75308f451606cbf53c21be7dc6eddcf665bfb2837c5642dff9d7d91268613e30b32a3dbc5e2e6b47ed45eb9c7a0045a93a32a6a4553211493f6085dcf8f9ca702368d32bbda871f8a4b29c52301db0e6d494d1848f27531afc5b5b7843b57f351caa7a6482acfa3b50aa8c72a4106d0f916acfcf4990e93e6782b5469073d4b00a9adfaf1a765760202f2f7a47f060ee63b208a8b67ccf35cb302b344e14e545218cc42fdb89a0814e76f9de20650f13ee67fe3bd7be0a967b808ce0f8b3d962a0ec91ae79b1f887c4e676f3c00a221ce749f9514fe21c5f708f16fd0b0dbcced8214097657862be86678be569ac13e3cc4379fd1194394ac0234c15dd415b5727a5b4c17451f739a6b3c04f95aa324ba33bd0177a3bc6b11a258c59e7024bbc3dc5b28028722676861671e85381154a6885371ebd84ed0c35b62159e86bd89440d64eac39e83282694155c87c4012e0ea89e66e7972272740de11a0811bc8a1a83de7ab4bc6a533d9d833ff1faa6cd55df89141992e480be7dda1ce658f966eaffcf8bbaeb253d2462c13ad0944bd353a61afcca21155eacb85053da036a75d59181a05f21027e228a166f3034a8334f1d35cdaca74fa83d16c40c44b528adfd0ae1ae63f31446ad6e0a832f3aacc2e04250c672dd951131637423b0b2fe645e9d1ad704bb3c31704fe2cce19465e78d294f4ef23caa4c635710342c757273da01b7d3ae92447d7ebc0ea56ec381f71af563cf034e6bc1269ea53769e0a0764f7915ac6c08907c419edce569c5f0e5fcb40757f9d22f4a8aae23317dcd6414b21ff7c29a268c1d76c56b59b8ab7ea50f03ee1009f3eba53d3e11a255ca26c11e06caff4b3188d25e33eb21ab38ddfc11c8ca85fe5791148a483daf0b6b9508265a39e8e179b2084c4de499d7c0732df7646b534361bb9f4746c502335c268ad1c981ea4951bc8f244855fd92625834a9bafc0673d2637eb82e761661bfd83679b0478f115ec8e6d7cd4ba7de483be3e53ed11fc54409a3553dcd4b08cf8193882d51dee7528273a3243ee6d4b1bc3cadccac9284126f811d2f033c8bdcbd3d6b137f2bf4f0e29be28a971ed268f03d35e62a0773de442c3696b1e09e5e3394d87108e8625fba125ee2e51a7a85f25c4820d33769b4dad948c0bfbcb359ee34a6dcaea99c5a6b407c74db29e2fdee281866f8ffd12e725f73df4f61ded2849d15e3a9c05ac435730e83faa7141c75232e8a909042f9bd101a55c613ded7da971826d0ffd41a24e5469cf04e0714e3b998adee3bdd4102d15e4c3eeeb4284d6b4ebc8958b81ee9af9af3da8925d632f772da5f8c7253b5c7bdc692f1d7a9c9e4f67b888421a4712d49e843b3e42ee8082592f8f032e73822c06689d6fff4a843cef62585a1741621d0487d23fd90b144521908f3c0270a7cdeec4024f989dd150d6f3438e88b3f7a5c819af40a2be098999253862023151ebdc872e419f98dace0e76ae4493192f3b4e087202b5d3266f073b4f8bbf41b7d535d5e6020705ddd30f915ce78c8050a64c184226bf93c3ec8d8b0ae026734b2a802d413b53006d24d80ba4e7829f8998417cf606fa161e066008a6862e72cfa74efe55be8674a99409029b8fdced6c8f8aea84c7fd07655e86b3f566bcf771aed5fa18162f098e101ed8d0640d7b72a4b7c6a0de4d7fc7edddf78f62010ab1a19f0890c9c10a94fc11983bc44c143a2dee7e51de43d609383799b8395e22878b1605e9b9dc3f0d5279b9463e9fd6f5f2b73c2bb62c61033c8203436b07266e5b52f61c63529a80be87b9bd151918319a63c38089af684331ceacc08aad79586861a3dd39c894bf499c75300e71f37b8aa3ebd575b398d1d13dfd6e634e9c7eda8aa0c4fba4f21dc201710d61aba387a719a39e63f770ad90d1fcce0018a0d96a5a3177a84a08339e7115d4b1185d1bfcb1eacd82bee100c51c63734fc05ffb9699e073b3dac35f885f93a72d14baab08ea700bc025c5a1cf72ab8f99b99f5fb47103d6b1a82d86ecf89e64ef0044c033261e15b86bbf090ffa0a253df6cca0fe4075dcab6334ce586133af109978a27606c37c5074c44e6f3bec842183b6fdeeb4af970b9db335f631443926b61031be2559a09952552047a12ca8a4d5d48a1f65765677a93261f346921c935cc0542b31faca90e113bf2fb3e3bcb2fce30cb97f553cbd1c9237a4d6480eae8f132de54f8c33b85f456f8e0facf57493b712fdcaef292c8eb5567f0d383ca1a2abeaf56fafd0d088090edd4fb26e7fa0207fb03c05c3fb00ae2df58c54b638647cf21b6ef02217cb83bbbc82362d2e4542500bc1588700563a61f226135232a39844e7b0104739a2535a5a3b783e70b3006acf3bf1a9686ac75f6e2af6de374b2a399adba4cf0ad25e633784634ebea22ad3ccd0ed2b7319a0d44494498f789dc13b0ee07e95d15e91f71308a02b6c947491c9fd2ff1973622bffdcb1ec246fc2c701e9108b2259e359b9c9b1f7bc4954a340cb27c3b9ee079603feca15013b2008809bc96ed71f9243d5c10637b0729320dba6f09c505f6553244b39cceea296481a155567390d8448e8fb398d808b36ac0bc3d78b396724299abb27e92fb153889ef2e0f6db4cd9d672b87af9ae5d7bc7414f493737f1a699c588d6fc2908d8b18604e9a37d15e8bfef3050df21ccfa4a70b6f2656d62f717a391ae3de27c07120a3712ef01026d5612666fb15de203e90c192dfab65c77ce65201f1cc3625de490c7d2253d9ab7a7b5a13cd81f4c013058e1d2ff85d41b08671a81aa59292a66df5cc4f70b78363c656fa1ba8808f4be9570da94992677103c0390568813acfc70c4bb6eb58d3a7c8e46d45cf8d10481bca766aeb60ad3715351b42b566492f77f7ef491225b0f3dc220c56ce341cd82be4e786aec65d4cab81abfa6fd2b4239f115986473dddd14b7a1e6c052a0bf76dc79fb4c92496bbc476244ac91d7e91460c796ea8241f06c762e726fa072fdb07179832d39e37b14aee3d51de1cd0ff99603ff3b1a9a16a516fca19b7de8a883f73b3b91314d9fc4b84de45e0a894c9a382a79b65c9effbe3151870cb5c65dc0d038fd6127f643fd43ec533d8361ae3e0ca0b5f9d1b5149297447b6a812db9de51b94d95c924b46d29c93d5a20127d6e1d2534d899bd19e5816835e01c5cd7f01e0278554535f7215fc54a3fb6c15757b3f178d1fa50b0f08531c65fea8195bf8d0552034cac996ff8ad59c31f6a8873a0fd1f92c166a0550ddc376283fbb78cf01822c9a304d8b519a9730fdf058e3670bcb1a25cdc43513e41826cdb431b084a94713a19e65a3f5c7054192b47a430cca16edaceb5ca3ff69b7e8a0de27bd9802767bef135c6276ab35039136325cc9f601c4cb9d2ffc3618974b863f9dd40fa168597519aee1f8d6f427f03d0e2ec25bfffea39d09252f5751b5f5a0f0e160a4e67767a8ce1495028ef0b755ec914c8b7ab00d904d4d28a81ee1326d7b3cb52d16273e77bb3c1afc28b4248835f81f8be241bb5b3e2c5105f284c0da0b7ac24d2b6fb5963193cf99b8af601d04626d989fe0f3b1887fdb8383114e8e7cda770e16b20c62b33fd626a51fb74d233b17ec21d08a2f010f5bd41f18bce88b754125e6ff139abad2c08c059f2e79406326d62700a9da8d2d7673e42f07880e43bf84319e6ac74cf39f7e48b8593826780cc2a4ed20e389e3df4b0c0d6fd3c9b18ad2b271b4f9e620fcca152cb9bd2137255376cd3efab07b1159aae35ae066e1df466b01cb29dc4824ba865cc9fe0d268c5a7e52d97b65693215b244f3ce6f9ab2b33872f8162afac74ec3acb9fae550de179c7ce3e1e005b1444954262b012ee85981f44f4b26f7f6a74e5d884791c77e4af1894009da4bd7ee15ae13870c465a953b6ad2c4acf144bc9ca9028a5e78a085d4566454a06740a653010b6408fba1b24bec52ea1bfc0976faa2ec3481806d026ee0ee5137a6c624b6cf64fb7345ab90f5c466dcd5c4e630aeaa8e59efcb33d9c8b369cf08983d94799e8dcd44ccb4cab7877157cb0dfd9455cd4d707321efb4d0fcb376c229f6e5994aabae7e4b1a80c3c29a305e62affd4a14c1f109a862953f924b413d9e1256c5f3e8704c483cb92b92a832f33d2949ac9a69067b38fed433cd33345172f708484f2a106fdc22e7971026a59bddf900f33aeed3e0f21ba7d61c4b1412c78c911982264123c1410a51c34401be71ae56141b5fe3053f63cba098743c9f99947df70ed6f597beb54e9929321a93dedb3aa32691ac132bc49cba816c4662a87a56447d552c831faf3b29386078537ad17850d1f78defc6c21cb241cb01baa284a75b40ef7b8de061c72999a3cd3d49a8c6c79a29bf29445d3f196f831df2d844f7b40e0b1f05c0865c2b3dded0fd5010839b4cf99068eda27e16cf2501d1e1080dc106af4404f19164979fd575f9c48893fc01c1b12cc9b176e6ec03680e58ff8a7777cd558544905e17ef57297ef2c9bbe3a634a06ac14483b17530b4c0486fd0151e4985feeff420982fd29957037cc9920081ec1265c0b50dd53b76082cd679a5d2610908d963130ba3a02c26a68035aeafef27a88d072e268618049fd90c45c9cdf111954689b433967d85094a4be261143ae9a44bfa16ba3ce6255f470c5f819b102cc1ae1a4d810652279bbdae97dccb6e6b81a969205940c06eb451d28bb12c0a165f12512af9d7ba211fdfa4e7e806f1b079097fc20792f63eb6f34c9b30979687d2b1a227d46de925fa229c0689f111ebb108302f38e8ec5ee012b33ed7d32feceffc722abb9a0a9ec22a485c1a205e38806c6017d77b926eb7f2971ab9f44b079b676edcc6ce252fcfa51b236cd790baa405413e66e5c72741705bc2674206b9aa004357ce71874ead70d9512bb3072545a138a79430914355da8ec7636119654f9de0e905c0c5e5d67d22c1c8421cf9d695e619f44277a46ba3f2b54d5c53993355fa559c122068eccfdc2f610aef7c800851b7ee9c51eacf7f943131b6a4b974f6a9fbc21a85f386cfdd627badc57881e278813ab100d276312ae24b7d48fb61717339d42fd6bbf87d2580ddc77334b53d8cf65b4c5060e1262e846b46432fdbdc5dc449a4070bd5cf8c4ac1d1b4218f47964df4465230f25c8cf54c80297228d6b0eda2a9a36fb4b1391cb72d3356f4823f22343491ebc35570d0fd4f3830b4d441adb886db418768aff443d185c80d3d9fbadb5cdd03fe1447c3a867de6b341bd6c7c120d0166b1a6f7347f795f52aaf5273e6cd0616007159bc0935a2bbc0c6b6e8be400c581f31436d0c0ac803de55b7a0a1b3f2c68f8950271ebaee887e758fabdebb0d78384dad2c4937440fa810103e331c72c9bbbb42f2cc519b3b83e8ee83812039e340ccf23a53ad06942e30107fdb3f7cfb71da168cdf9484898e005aa92fe8bfe0df243ec92d792151d52ead5fc10c9daa3c6c4c0834b095a2458b3f1635c80fa55cc0c5b532cc0e00db4565ed330b7ef89aba3e634705b62da68252020241e769e99be36391f82466e92673552cf2412749e290904ab9851efa6f814b0bcc39c62535f4a72ce9f993dc882ab51516a44e405bff2ef65636ed8bd5091080a596ee205399e83e637cbc56af07d0ecbed4c0c8a0f2cfae91c90d6a12ab117584fbc4f44e4751d510c0aa0df09da42b0b957cd1a0830f3469c2d8d3c1dd2b5870b3f051d63b33f707359b9f6f0b2c56a4955872f651d4038c7b495189cdfd38221f0b528a39ab2b8c1c2e0a28fc9b46089822a0552bcced5d3e2c343d7c7f1ac8eb9540565144e4f891649144183e8b86a282e318129a0a28652ead76c6ac6344828805648ff5cf4367118f1eccd5d81d2ada8c2e011d02177b5d975a34e3b2a1705e4c9e060076b350c9e9ba7401bad57aeed391fbe9437fa74ff946440918a49866cbb4bd9d8fe148c9c3716a937bf1b446c1a7326491c9deb8f9d4b6dbb61eb5d056e6abf76eda2178cc5bfd85c72e4fe71233e63b62ef5a3e9299a46cb8c0981cd82c8b2f4dfd65e59ccce54b8ccd43457007c601f20d64dccd28b46572495d7a8026d0100794400940e202085d639cec0d61e6f98a1f078dcd5ad77bdbb98b46aef7de92a6c84fca34889d50bedf1ea751db9803252e0c57c097bc4dd6617f4ce7311e5b7ce01033499f25eaf8bc85f1694766db53b4ec9886157634df4806b53afd40dedee22f4ae4bd3a44115c156e79e743cf08c12d12428cf37fba37facc673305beb4322bc0370e740c7a02436246fc9076a4a76f8f4dfb08c0f69077aba97d8a549c0721472ec2f5665ae4e83c88cfcd19789490c8af21ddb5722eb2ce21d957612857cadb6b2dee878da19a371e84440e8d4c5cc36f0c0a33d5c719a205bac5d8defdd693d62c9bc4e8160ca40b95e206408b1f918cc900cbffb8198cacb92e568747890c017206ca4370ada2b197ddf4e843c1438f5f7d4996b4bf4f4df24f3dc2849a0c021719fdd9996ae87fc9560a817d0adae360fdeba1d81231fd4047c907982a30383b30ebcb3bf37f12096fcbf114a616faf4f83435040c1d017af3e8f5e5d8e11ff8787d5365e8f62bfd8301da3491964ebdf4e2badcb466bbf751e7204c60ba918ba533387ad5526e86738c941c427ef4fb5e7cfb401cc90107987cd1dcff077903cea60d642bdcbc0b268263ab58f386dbf5ad1abff328ba5996cac8bd38b6aa81387e3b285031f5826fb2b6b2a98e86fbd581040548af97425eb45fedacb3c08216994044a33c9ecea129838ae57a025ef2049748f284ba9fb039c9a9382735c213915b6edc3c96364cabe5b0fbecc5710dae181f357157fce3e2dbc10a0359bd7e04d0983416c3aa01e85b88b887d8687eb7d4d198ba711896017c0799ee2c83486b32458cf33dc9828351c5264975e9978f12cbb0999c3118da6bf590dc27aabb6ab1ed721948f653204b5b05713095fbd531d241ac7df16a358d1bcab85519e6035d1f846cc005f224d53aa4107a087d596bf291df8753143944737eb8ca258ba4d20910ef20d6bd2197e8bd1d164e1de2d7c50b0b0ce108c9ca64ac98c59d1943685e766923946943397a3ca4314ef70531fdacdb8afe89930e8be54d2481f924ae2709131026143b2143b1c1bee00a2deca44ff42b1db5030ccc4742ca6519cc881e21f699379a0d5f14aa480003dc3c0923da3556036e53a3e93b1664e4cc906cf0c4c43a45adf2cb717a94ed4337df6aed8e270c689cc32cc65aba6c2f228280918fa2f108f6b36af0c986fce05fd3075657fbbd174c9b0ce58bc75224e26990561d44ffabd839e594c9bc8c5a340d0ed96d0ecc61781cc164e3891e6cc2cea1b191b387c6600e7129a2a16e0c3636076ae8179fef1b1c7e46912f66126ed8bea43980f53dd24b98caccb3ea4d79e63e40c57b4b0dbdb20a30394a53fba358e212dc39ccfd2dd96653026e4b99c05c99a7278562746c3e5c90c104673a1778df455a66ed6a9b6da230b98509f901933916055b4b09612e6e01c58e5e5d25fa4ffc8ffd23f7bb54af56d688d2fd07f48551959c11ca7e64fa0cd2231af9a1610660e5a8af0bb68699c01aa534626841a7ffe462ced74cbd5f77fa2786665459c4be725045fb2479440685031d7f45011c5148bed003bc37e891eb1bab3c4d6a980e4324bed881d73c35e2462117bdbcdd0620878a164c5bab0bdb779bfe2e818f3d540d229f70990867da3792cb12940b1062841ad1d0b0bf5958d66a51fa645f54aa0fbe57e1480b9214aa4924724318665d0b379537c5768b2eb076ebc89610b2a8a37609e9fd5933b0076f38a8f602d536e94a96f1f87c09fb2053f989b1dcbe706a920301cab438b7c72907a9a0082d36bcf80d85f68314f54f91331e51d89cfdf5b1aff4edd1019f7164f2460c3ec16f5bfe6487752a613857f53a2aae4b28f89bfd16b568066d5242005c5df99f39b9a0c7effd2e6ac27eec6849cb69ae726402a882e6379cfa761fcb2e12437aa281c6f50ef326919db05cee753479f6e7561366c542262b185b6a0d5b149a751f85aa321a14fea16776321d598df5b40c471def14468c4532542152f0d37ea6c9fda0c4d399697ea740dd94fbad975675fa44403853865df013fd26452699b8fca2174c5d089ebac8281754eaaba475f3d8f3f42ef9789f076e3d29eca7ef30385ec617bbff7d8f4d6ddf05845829986bafb72bef278be1c644cfd0db6fd9b9f3d18ed16aef3855c3bc35c8362e4529d625cab141b7402f0ac141a4d4a81605930b813807183aa51c0981bf92662bd83fd6fb99911f1acdb9485160b00735f8ee7769557b668ea3b53fdb260d6ea68195fcfa2a6b5b7996d5fe856335bf8d8455e6cc00cfa929f445d59b449b5a38d27a5f389133163ff7fcfc70771b79dcc07c002666c63173a2fd1fe233f7b71d1ac80f47896017f1c777f341d9908b8aca2bf61ebd56f4f19688e246c93148c5dd00e20be2530713d3ef74cb34c63ad4bf8ba5824d7602edbb227bf59c73cb36fee3114d736f7410fe39a5cf3e02261178152f12219e4e05705ed14c4a57f5f5010e2501640a0f959c8e1a1a47b857ee91ef7a6bf1f9ec63011ba1882b464c89861aef7925b5fad7dcfce7d20498deadfe2591d4a8f24438bf495720d1973f321d144a3313e1f22ce484188292d4c58200674ab0bfa549003d2834efd22b8cb6a4233846505dfbff877d7df63bc5593119d99371bd8d8a094c5879a93f64acd2c28596e7c9e6cc161e9c9d978afacc5cba940f78eb095d38dddc5498a0a869b9726e08820c2d1c629651ddc9b80e0654d992c4bfc420367eb79b7770bb0157e2d41c76885a85170d6f487069038488b51665de1fcc463663340c6722a55e96e3d5c1b0dc1cb1a993caa1b42df3719c53b828ee54a96766f5c53063864765143577bb428bc1e2e8d44f0ba466e87c2842ced83fbfc5e80c6b052c7e0479f92aa501bb3601b427471d449595f1a073c3a5bac877be313785d2bb787744248fb4427bf07a061583126eb4cb25a15630ad7d00240436339e2f8e6b499ac837b23772dd766724e0dcf9eb46632ef3d681c578a403babebba450cbb2c60c8a4db191dbebb2261ad346dd7b8b331d101f9dd048dd14a30228ec4987d70f68dba8e6b1135179f9369beecea0f47c64fdf09c19409f7131cbdd455d0e3b5503c3fb18f48087a5a3601ef9ea0810fb90e14cae0b50a927fc6b4f20cb47136b063fc1e6e479877a60aece116e4553d19f7c6ddb19c4541aaf7553e52412e8854c295a11da78666f545619d1d77d751fd798d7c97d71fdb940ca8378c8912e7c9a57f0bbab79d8db63cbdfd1a04c26e3fcdc17429cbdaf4d099ec19c871cf1e4b07f46b9fb13a961e391c02e51d62c8b7cb6d7f5f3d0c961cb8968fb2784b719beb8da01ac590c7d5588d62619da50d8bebef22cb23a3ae0f65312abe9c8f5778570d0bbd2318a7e8100654f8686b5e1bcddb005e33637669c330b513fbd834d286393129e49295a8c11210a2c7accd1b8f25f583c38e54ea128542e5a65b00b48295d7a28a55b2016d6273b41cad2592a77801b86d6a85de5b8eb515eccab64444714e71289386999a943b1eda6805b530da328b9893b6ae0ef7a8a71d6828990e86cc59c01081ace9bee530e7d4e8cdd42acfe5aa456f1e1517f7965c1c4c68ef20d724b81e6ead753318b9e922908a11e44ba97fb7aa1ea722d0d28d5e7bf431df3bdf38ca22cf5f6db46f757cad655ea0d39a1bf2a8c4214135a666df1e6d869c298349c8ab1b40eeeb8f7dc2b1b9500fe28992af92e7fd2e4b6a9991072789f1ba75450b1c24be3563a1b7d3fff935cd12a29f7e9f0d05092824d657689b09229a6cb7622812cdd8d6a2ebf8f2eb5734d7e1c80e4a3c0146db36eb87b916e3aa9c7b9e680d4bd048e01fcf366e02b94a600f1318faa267e878ada0d724be87e92bd0035042f656638fe45ecca489cdf32ea6a64d2ff397d39f1c7829b6f20690d8c35c7a6b2b24d0687af63081454f082471ef55f480047a95be36ad8656b0f70a7a94ec5542af470f65d758bf8cbd58e613e9b1cfd6010e7e562732b94f092025aa6702b3b1c0bce806ceb55bc6d155f32946e1ecd9f66dd59414eb420ff066e2f63935ca7c8459e76175065dbe18b07d2eb0afe11169f39cf28adde70c656c2f1c772c094583d464af9983ccfd4168dd67d11d0914ed3e62f541efe90627b5a71a51583baab6ea6cf3d59511e07dda7325641b12bcddacd95347f8eb993e5dfc6e33f5d46cacea898b7e2f3e17e48fcb7ab50c99c9fb893edb00b42ed7b53fac5d719cac4fb1f05b6df67e90614f9801a45ddaf8e6ed6e21d40c7baeda87fbba0c56e7340c5c8774e5cbb027f5937671151d954b0b0fd88c57e40098e27a4a3a71989c903e0867d87344bcc0a4d81870f42762c211889eb1c81021e24d8f83d6b28f726adc694c0691d4508a9f176962293f33cbaa6a06d1f749badc63771223d41580b7d8c1b20cbc05cb97e9e397466ef0977af0d523a7129e4afb2039904f2b1ab50765bad2dc24869c315db3594a8abb041ff341d8ee2671b4e1931fa0d78cfdf01718aaf0c780b98df91b8ded5ba73a13fb23d91b501dc13eabab800883d4b08ac83a4b6b1d1356c450c3274597780aa7395c56797e434c5c9b49c10a15460e7a291c138004b39bf659ab9266fdd910a345fd7f19412292dc3ed3099458f093c857f2297a22878a2a9cc36686a6649cad48ed77c97cf600a947a7980691e284488b3b632ad625ef547e2c3ca0b7cc37352ad24f78efd83dab4deb6bd4836db5e44f545ff77f5dc16591964358f7204896895395c36f349e245a8fbf485b003bcc8d47730924fb4966e726617b867fabc304797518bcd8a7182d2754252b255982e287e60f4c757ba99d020a743fcaace752c9409ced5266bb89c6b60cfaacc9fa75361f677a232bec74a28a3e0aba25b6b8a8edcb8e7e290f94d834cd4e5a9991aad3ffc741b80c23b58d65d7a39012631f692cba3c9675eeaa49e7a0add0c5c08a9b9c37fecf5e95783dd8cfd576abcf586856ac053dd717c514b959bc748421d8d407a46b030eeacbe4dce12d0f49dde04faf2caa7eef6c58c7dc62a7186a60c59ada310bcc09068c5075354f88e9e2141ce74de466201663c43ebcd7bfaed2a22cec67e7eb8be55fcde240896c58c1da614faf3cbca328243cfb1565af9c20c60f766f91e98439c1b5bdccbc40f16b0b2864dd2d6c4a6d121329d7cad65919a12c75a39d7b3417b9dba360fa3e94a3420c3899387bcd5a8bd958b4e6a2012c3f793a07d72b22610fb7b931bb017cc5a3a3a11ba952e29ff0e58afc19853ed15b1ca3e8f07f5cfd43a51ca7a9d2865a8a4a5b732b3f6f9131151892a3a56c7064b23c09f0f0c3131f45958e39a29aa2cb2dd1f5a5764d80e8d28fe76f2800eef5f43b9ad87d29423cc6fce3b4d80040253bffdd87ffe55a0217312147965d1e9982b465c31be81c32796f04ab9857e06140470d8f669f312a0b9fdf71251abdb6c51aa4def3e402ebfb809f1bf246651b3e3bfa555f3318589e6d5e9921fa8c967a1e0f2f662d4f121cd2deee62f511dbfc41049bbfe1cf75950fed989dac5e2d926fcf507da855bbbf38435697f6c167d3446bccbcd663ec18e355e018a9444d4a22f670a15fd7aa08954a146825b0fc9448e803b65475f06081d3e0d5ee35c29b95c3055dcdc5ece25acaca2a59ee52dc9ddfd22aa00dc81d45b92e9cb816a5bba4cb41d13508e9e2c220f2a170a9b8b46d953f48a0071a1f1af06ca991d7a4e656340566d7da1123bd0181ee643485e56356102f7558d81705082276205e2ef102559474acba29c35b4c8f4d55f16305015c3a8a59bdef11c0a9168a659fae6b42794a96701a2b6a845dca0aa142659ca2ce1e86c36b3bf29da6b9bccdd3c3feebed10a01a8b4eef5c0db07720c5d944b3f3f195a98e7a2ea91265e825400b2aca234956c08eb1913d7af2f264f08380cb61c952c62bbc0edefe697b987f1fd57b43996ae83901458bfbbf470155fae318ebf23962b015d6775819d3b519a8328b525e83a9f2c0425794b5040904ae7265323e3c6696ee5a1dbf7a5dcbccad40ec6f9d1fc254eccf0968b4b0a3018a52853a38e3d42308206abbf4111f0c421586e1290e94403c4b5bb2b9b45585a45c2b75c471842f4bd6afa73c0f79dd5811a971444c88f0fd24e5434a1d779e0f3a3b6cb6ff742d53dfd9636d37828ebb5d875944a0d16b31a2f7832a14466bf307f4bd3366073330d7916fc4a103ca9d5ce606a3a2505789cc78e63a7dc10895aa53f47bd0e8263ffaa39a1052945eefe81ef474cb4ffd214d64a4160da5c43b09e6b4cf54d9d89929e9da76dcc35b6bfa00b61b4c815255806e0f0a50365ac91fbe77ca986abd12d2d0f85b4b33eb41110a5d9dd840e0cfda20cab6ee62a82641a5d47795c9f4833e9488b74eaed9f8eaa101bbed67a8672701d0a2e4dbbe67f6410dcaf8a1253ce7d9dcb0a6470318487b4aa7669f1dec280b5f090e13b911ccfd08cb57ea802215b87f7c605a16feae3cd507d95197afd4966088105c44d25553dd5dea00cf4930c3c85e20577b270b717f77f0f06a12b3ea22997d28f3505ed77c03e7eb2945ca77c07ae53fbc73885711bcf5ef92bf26db071ce34917bba36e491d357307d3c5324d7568c734b852af42fd569b763a13e00146a4c3d13920ba981d104a0ee74575eae16f57b6b60e28b2c9079e1b3f4c1b2c2a4c75740e6ae47b11282746d4781508985683054b139ad1ae5c05730cccb40d163b2a593e2b561f1234ac45896c12ff3fb3595847d60da4025fd1ef680882f7514d08627296b4ef943f433ae67d188706a8b71e501650e358f2fb4f975b8b106ba5de4fe1e049d545ed8941910101d07b3e886af0f493d91ca2022818bb6c0baf4c6d7513dee7e66c33a13bd66973aa69e846ac3fe72e3d8df12faf19a804d05b41774d6b4f52cf6866087f81c603507aad24dc147342dcdd818610d410de9351f5f1a8b38b7da63a530286ada80795bdf00e49184363d617679c37668d1c8a12f0e00ba7466e3cfb326907ebedd767459589ab7ddd7f9c8a59796437b8329e40225f70b6df13a3261f768a39f6f9571dd8b4b6df4bb5039b903ac214d20a1abfe69c324f67eed39c3753bc948475e04d7a27a15cf2a48f59bbd521b0d058afda5102914a63c55a8b44e329dda3227da0ffe252640d327e30d25b62773b8616062363d59a26cb3193494858ddbc89471e21eef9caeb5c9ab844223e5a89703165350f3b21505ad79ad09a304afc1fb5329de49c13e865727be49c3de54ccdc905c0a9b1ec19abe634cf4d21590bca40a01751b4c5e508589a0c4290e58d371fd32239a4ac41b1f1dc1b14241a21ca26e13bd1f89a193e2e2b06565ee75f7209d3bda5d26c1df98f81acf849954bc6f55cdae38a30c3283c6583acd24397636b460b0847e7bce99943177788fc3fe1bf53c163194c92716c3bf9f17036183d01208fd106d361ac08d10391f34114fc2b8d80058748496b58c2a6d497354864dcb81ca4631aa65729cf8f6db5043f225c98c5eea672d4ad51cf632d84127ec9bead032a774c2865b9fb3385cc03f113f0dc457050cb02493c1fbea785c8c8f16d418ed75e088be8f7313e68bc1b88c4a35fc39e503797d14803a01ac9d37870e952a90dc4522f63576a015844a99cf74741704e8749d945229cb357dd4e3ef3878a68f46a6bf51ca529d77c19971ea94d7e9d1fab14c031402cabf07aca65ea57b9d59b91acf91d7f18b7685781fc6238a626b731d13237d63666773955a1dd41571f4276ced6142beb74bcc15c57a0615c0b3b3e7ef3b3edc511d9da98836dc086b8e3077e2306ce37c8d3f8b8ce369a4f4505d2500557a1013ff431282ea858725fe1fa6f3eed49d52db8e72bd58bb16221c24957ce2c1b550d52647ed0f758d69dbcfd02c64b559924ef31bb34459dab6a42bebdaad3d1cea54d94725478f955493f53a9709e2a411c4ad2498c073cb14a426d76c3aad6f08459e22a856df1b6205ed613739d44059f9218c36b765c5991819811bea11aaef1ba95d879432f929d7b03762d106f5bbf9c4abab2c18d73ce8ac87fd40d7121b844a4d72ed2bcb2230013bdff42aa1fbba7c887407d2fd44244c178b01cb4c262313e86ff6ff27c53dc071d51ef96ee50360eef0631e31da2e024ad96c80337fd1b2f27ab847942befa32b191491a51d8144c4b86b324ac121275796827685d954382f662f95b39c0da7643b31396a6b9cb7181f232ad9e7283f7b24ca139cd3e35c4da865ba8a74c39a66668f6a56e4c0a4b75fd688e246fba48d9bda0ce41ad79d5d03cc2491b6015628445b6b9b2cd0acdc96bb0bd9de7d72d2e4273089c6029134b6f77fa5213749105456ed713218c144743b1aabc43950e4e03c087dadafd67fcacc0cf6022f639bf0eef14988bccbd125fed4bcea1a62a096a69e462a4a940f5e993e0ff7c82cad95c020aa67ac5dabf5d2761cdd313d2e6f4847ad6edbd383850cb853ecae5db125600c7313726a34fb7fe4fe2d9aa3be282729847a4bfc79dcf1cde6f23c323a64d134c5ad92c252a2f552baf014cca39a8ff6faac19c9b48b798f1c9c73650a3647bbfd596537a1bd9ae8163e10d83ffaa127df605e00e3fdc62b79863fa8e393d4f4b4ac281facb1fa587dd55c54466880cd459801b8addf0f205300ff31a8d9c3df5ca4d55040153dd1a25d1e734b51d9f446731e5bb541825e3a19af5a23a87d6a8c0c3ae55bb411ee5a5ce96b47a6c7eb7197dc184468035a9fbab1d6283012e6255594b45e56bb6227462bb5c7c4090a37702027267200d81ecad1c8ea5f3c47d9982851f86096070398ef503a69070654dbb82693b46372924730d74900f2c7fcf3763e13fcf645055fae30ba3e815bbd5e4897ad6e45c309576a6faacddd2163e9d10d0df06d21606c2df12f61a2e2b3f7bd29018e395d0a692c3b8540d3b142b847a30f96d0f319e820dd1acc98580abe8509a7ed409e467e753bdb69dcbc9e684a09ee2732f10a541212d1efa1d4208c17a42ad623f4eaf6abfe45c901015f97332d2a878a68c60095a6481d6ba3c7123bab0b1822be7ba1685d0c2bc1fdc1cb2be451c5a99d7476c67b6b129a600933e6e8851388fc5b06027b80a9d8949d4855cc5d250f832c9e01f66592a91af40403e79a326eba3c3810799e438a1b66c1fed61248a2444155b69996134059f4deacd0dbac108de722c1d6e1a50d741584077a12834c0eb76f4111f8d3ae85540539485271157d410245e6bda8cf483809106603ecbc633b4ac827b5588932fef68a4270c285e4d9b1c19e73455e5edb3895c2e090db2b1699e79d0320b1eee0be02bce4983a72a593ec7fba45bf1e74138b4ee4e3dbce35d5c131267b14d4ca490e2ff92dcb3f50c0190b18e0d96616ae710d31a073970231913c546c04047b38d08b0d0b393aeffc750b8970582106c749d7c021a7fe096585d2eb4e0ca28f77b12910fdb030963f7b18405ff20be2ec76e75269fcce4e458c93dbec1500e22a8361e9cf10f22f91171f0c7ba7e215b139ae4640cb405e8bcb2cc4fd9f65d80f3b7004b4e1a52490389c5f19681eab8012b81dba2ade793a8904af18d5f9ba6163550ab0d80cb3751dface1561faf717a8c113cc14f465b3c6f08075fe6eb4b41b6c8911a3c93d93dbf8d5df54dcfe6a9cd17550461f3d0a49923390dec98db6381bb31f5bb58607db3c404b809dd7cc349a2efdb0fbb752853a98741a4f33f92f30f20386547c841b9b9381e06eb002a4e5194cb92934d6349c15385adb5549ea298b564828bdc708a9fb0c263927dedc4de47dd0ef8d6752d1e53b2971fd3623afeb66fee73a0d1a666238701d1e746e1f9bd95ca5c7520c8694370073dc483d12955f767d5bc58c23f1151611528eea82c3d50277b205835016e2229c8616ac8d37feee01e4aacce959a21998141429b9027b088545473e1be1a0fe004815882a1a929857eb63937c839166e9a444919242aa1ff9487882c58a4a1c6058c92745d9bf4ddecf8ea1b40897afaa492c2ae7b72d618fa083017ed2523a07cb2a89a229f458a57586a4c0d9ef04cbb16f0a12a93dec5d525a5d52375f683e9305fc04b6e1e384d9c9e48363ba8dcab8ace1a89c69264b8a4905c786498d1f69f12c21c3b73a93b86a9c9f1d21a5d8ab420f7b42788978dddbb6e8407de23172d0b23ca99f2ef25755f82bb70f3501aaf6cf775bb6c34eeec5b88a20d3a28e613aec85f4ab6313d5f2238087f1f1c93d49c4e59bdc82b50262c05a75210c4fa88fa28599baefa3e1f14dfb05f4479c0b0870f5ab9b8a988c0c88f230855f822fd6a3a70a65c225269b37f185517fcd9da1a6993ab9810ab2f4e70ed3f0fa63232102a5e7a36906332715a729c5a9c18788a9c8a3b32e5322ba792ad05d2322b5efbc3e3f96bdcb14d61fadd32f74dbd4812bf5783ce0cd8b0f85e771c0914ef60da064c66122910f435d5ccdabd24a8f74085a3a90e950ef68ef8624ad063fbdaed262c029615a386e0f85554186ed149a13dc90bae864006ddb845f234f082fb36edc80db1d91b665936fc066a375990b0ae338cd9109f7c255decefdc6eb43b34de4149a23574d678fac01c0d57a673148c84403aede4e6d36643100ab90edd499b7eda42cfb8c16703c89d55a6d3a74992cb307a50b941ec9dcfe46d5ac96e8962911173c7e35e0bdd7e20d70d9254386741c246e31959e4917177e0fe26e0ec3a358e4f4fdaeb7a5d80498b7aa52aa16025ea553cc0470e759fd98cb3b439a9d33dd009d0949e88f6d38f80305b7a2a125145bf07fd43233312018aeabc9afe923713c985deb577c8e8201a128b2ceaebaa86497de491d8f9216fa957faa946741226e34062a0e809ba2206077dddb422acb36aa7597f05072cee1d54abaf7bba47a123c6c261a3d4fadab4c51143329c565d4871dc4d1c97c436b2ee80405f434cc1044a377e06e9272f7f3b84c7494b984b1ef3d0dcc38b1e1ea43e1a699e89a88d66be2223b80fb2d9df2e757bd2f329c719aaa4ab0fad47e1cabb8b030928bda52ad56dc478b1c4e281ad1ed306ec1a1537d68de8c720e5793392521cc28a009ba2a1a1294794fa213ffeea27118ba1ce92cea9d382354d89446f168b88948685b58e90902b736795eb9eea5b8b25d12db3604dd1fa69be195cda27b84ed51f0b49e7171885346ae2e184aa195d97130e71c9dfee70ffd6af293a9ad378b2e8ac6d44f38ff886d8dbceb83884e4ac4f4e6414286f90d24c75f810c97a778bcaba8887336370d030debfb443b12eea31ef3e796229c26514044c9efc8ba215f8eaa150bb83561087e0cdec5721b339942ab971d5a6b9538186c4f042b10ddd6e0233d63b4841cae560ec74c0a0dca4de251c567412ae3453d166d2f637cdff9ec2701d9d0f48baa0a6081c61ac0ed60c16cc8261f03ca11b7424eccad0f36d3662ca6e64970c2d63935b1aac8bdafe4743932b45a4aa7428f277335cb4d043475364c6642f091add0716ed37c4addff9644cfe1d919794eeda1acff0c4d0f42af5fe923404dba1f46b5e0dbd1f660ed0f1ba294c5ce4634c2486915efc4c13c3a458a221a38f915550974609418ac9a1f11e0b7a8f607462528a890cf9df3c978f3d95037742976c97bab2a1a6588c8d45c43fc538441248c7dc11e9ba0738427f962048be456c594c112079772d6dec4057cf3f18ac90bd5d2b8f260c3e2080f095d2e2fb01618192ecf86537ecc58e0cee204cf6167a33de1e0f9b220e5022fc618ae4ef57f0ee72a85e031cb67b7d31edf2e26a1ef57f93074e6c09e69673ee13680ef9896dbe496878796357789b6601d030de44dc6b95cd70bcca1962f6f5caf7a871624795d3945ebf7243a7f961936d3636186e265ebc8635279979f28c4a56b2f0707aae1ee7469417557740f55590bd49100e4f87bdadf54d8bb51512f05db42e8dad3e8e5a9ad4e1805b997b65df625a29b77719a06fbb05de559e2c7e8cd4be8dda79b491088eb7f56d6d845dc9f6a90d5c036c5ba2e46d00c1bbba98e57a9d3d45c7534cd3b9e18a00d8201003b66daa1f454d77b062f68da5448c0489cca7465469370a891681d3bbd3ad259c4a8f62a78fd7f00dc9cd4c04c4273997ca352cea3ec7827491c1886111642a94568d1a7f4cbae9be3531ab83e137dce3787967cec7fd6f2980da7adbdb888b1dba7f85fc440b1f4529b497188701887e7d07b6ff641602fdcbb50c9c916cc41c980ff5ab23a5b7214f4d7a1bf82580ad0f9db7adf19823f702143da8e9cada1290ac467d72d4dc86eb860747039c2dca0a6ca2b5b5f32dd43eb9e04e6c59c1b03958690f1773036a9f5728de58e515ca786bc1aa76343ad8cb0ccdeb9aae9f7694779f7051d4e015bee13107e36fc7eec298573402e223220536e3a9929ce584211e1a967d8c6d84b8b72f5d86ff8506b79c4c44cc64378e04718b2b532e8f3a00bacc8ee4e25963dd914fea107f57720c7ca89c90c9f141e3fe9b7554a72f545a892bce72a50c4f3522cd0749e25428003420c6c1db6bd162dea40ad516a7a883a14bd1e4a1c63df147058e1105f902f557807f57d15302c4c681c9ad9c646173324c7ce25caf50a1c1e9e1bac27e5c39198602029a45b3ae0368b6514169789b92fea2e08111256f96b26996aa95b62709df74fdef130441ce0c9fa86d1e683daac925ad62ff126129c4053353173581fd5d87e62769652d689b7478502b080b0e06401cf5c43f588627d1fff42789c3a33235187cd4d743b69551e7591038c17dfc8eb22243dd3a1818c82c1228a548e0b075d3614c41f56c453c5a706068adc44063342c8ac7d167785a24ceeb68621a4f68c1a290ba1a0ded9055e08bcb822aab7e1a6e52a8eb57cb2b698e2f44bd9f1f819c7aa1fa9f7e436231b69c8d0fb9c972482f475a569c08d210d339fc8ab4fe80f265b9dc5932f6ecb40649884f8ac8c50cc0599470a883f30edfdfba9f11cbd98daa113a603fb7d70357b1390e055a9236f907eb026bdc6f4631dfe129aec14c9d69488ac03513c5112ca5d42acfa210dd2c0e5e83b52f09e4efddc01f53695599f7bad5b9a8fb2d193526322ffffe2c70e0fc5c5c3c6d32d9cf40f01d00d30264d5168125ada8efdc0107b6259a65447c1ae53838c04ac5bc0c1bb3b02ef0964460b470de4230da456c81c4731908762b42f50c3693c3e6d65e79566576a48cfa381eec267781052d65c2fd5863cf18fc6d9038691fbe2e721c06543cf4555b00df5dfdc7d790145c1c344a565207bb0d4f57cb0a7ba2681f235b412b595e6328ec29e03bb55055ce753876b94c03a9b706ccf4f6c9a57b4d402b97d1fa606f3b0636007bec6f06f967bdcbf8bb92db69f73129f0c5ce19bc350851f4d62a87f4982d77285f86cd134e0047b05ac6ad9ece32b5aaca6a687cbd9bedba659199c12ceaab28b37f5f3b0b353e2b816e2d6ad0ef0a0832ca5c10871128ede41e486fa168e84797c5040ce9aa0698a9e5c12b35b76c27d722ac20895b3654ba039f91411f9337552bffbe3ee1f2df241c49bf481a3c5c7010862af380342d6bc8d65dfdec77bd90d01ef8067144b21caa7b0bd2ff931a10657a79235136a2a8cffa60b1de1d21efa19ea20ac7e30be43fd1243cc5b156252564179245711a9fb34478368a031396d2850d8868ee483ffc945799b686d51574fcb32c9782d3c15d585623383bdfea9549c958cdca53698f6410677291d525cb6480141ff1de03cad8c502c05db84ccfff1327527f7f77687bb1a503657877e37e5e1ad4f492813c760584bc88ab8e35b83216bdda280b4f3ffd5b416afcaae531ecbf68d54a2f78b0829a87114a54a69129cfab053653c1d42c9f4a23e8f869f6040fd4987ad00037d756de340d73e9fee30a8113953d515120875c6e3444372d0885be939454cf9aa93c49e93f227d74e1b124b6aca84a2e84140ffaacc833616930a4c1593d98d41c5ff3ae8817c9cb442cac52245bc4f021deaa8b5d1077b94baa0edd7baaaae6d15df935c8ca4f9d779fa3506abea693be21ba1422d309ad08a5e2ed4db2d67065bea67ae907240eae4eb9f40c19383b6d6c0c93ada661eb5c34910a50fa273179032fe9f035a4d328a05edfe515e4b730577a4f30bee8578a6d050e3d346add7901f7eeb345a55fd035c785026cd8786799f82a0892e0aa3f6e3a432347998c1e3ae791e5e8a0e5bfd048f5a43f57f81ad31485fd06fc19ed73bac8d9b8847b5969e1bb4c6ad0ace222aa03b5b963361bef3ed2ac4d714665597e6aff8d87573b73407b8908998a410700cdcd594a367cc51d1f449ae9d8bb2d7c39a007d3fcac4f5cd0aac262e17316016c7ad334e4bc17bf9bf540e8ff1364060c8145f88259d9134a8f98113a0d1860bce19d92113a52526c714de46ac09682e8d7766cee86c7162c7cb2bc42e58f3cb484c159f84a721866c9a14807ae69332026b5e0d620072b9ced2e1fde8d74d5bc8625e17b58a8227f3109d632ba07375e0606a08665e770a0dc8cb29cf17b938d71d205d8f17546208e4f65ef771dcc2483df9b46dae4f81295d97181427e3fe83fe0f7c27662776514379b23bd99e949ec0f8b142fd913bfe77cbc2efa9ea5c6be1953fd39d0f54a8bef8920befef2df5f50f2bf2039566e2e35323ecc8ad068e50021210774c1e318937b527b147d9b97e755bda925000753f6ce6e93b28f9fac963cc9e06d602ebe9641ba01336aa80c71f8ace4b0bd40ab6bef7a9f0a9496d0933fb186e9e6fc30401992873c5828cb687d10585ddd06b47551968daadeb55af2746ccd3281410adb0664b4bc4330f3b3609f725b6cdabd610509907c5c9ecae789d322c9e3e29e0d43008642ad2325823ca198ae0e5de17458aa258893e898756dce7dbba463270cc3bbc4bac557cc32e32bb760655e297f716862250855a91cda9194d08a864b4632286b450ea107f3916532986e3c80bc6b23390846884880c03e644f1959d3a21a9c9dc48d4bc8dba4f2ed35f14db3258496870c5cdb198e20ce440c7a7dce589a945601aa2885a513dc8c1e535f795fb55fbc21ee18332989013a30f686c8693e41a97c1640a1b0990caa0050868610094e6d11a86617f63b3674eebabac1301a6e5abc2f972a86f91a9bac1da9774055ed3b81d86b98c51a7a3e4395648b6bfe09e57038cc8057c6ddde8b94aef282bfc4e28f8d306162123d266a00de11e43fa9cc6b830ff592a71520c4b522c517e380bb7ddefa6bbce4028b63ab0f687f2f9be0a9895950932a7dd29032a2ca5932c08a76ef5412173bbc30d1a9298d5700288cbf87cba32c6c682eb7e72c592e3b05063c98c36f00e55b989eb2f68c99de50b869a7700d459ec2c201ee5c4c2b4abc8d3894f9979585d5786cb2491d508d54dd89d8a9263d2075368dc22752266d9883397963f82f35ad74ed316d8dabc19e52a4fe3c2cfec96edc0200ac9977c3f2d2740d9bdd9f26c22bc2ce6f12955e295d9db57e698bbf2c7117b2a5a1f513b5ab0f21cd4dc05e3b7b8233a16d336b2898df1002ec4a660544bf356236781052df20350194c2c36d534b66f9d03792098c030c97e4c341437c26a79fc4ab8101cd2612b8baa5b9200bc571afd60d414628b48fd48b5d6a6106855f4832762df3c390465feaab675891becea58952aa44573a1dfe522362e4da160d6ed8680a226ff443bd57a49c5885813d91463e8f6bda4da1d2444c444c9fa34e6ac9a3067e2023841bee124b9c50a9a44ba96fbbd7d3a817510b96d1dbe75d30dc7b887f43704377cbbc1e37d2a0ec7c988ad222a2ef6f5ea672c354b8c9be09c40c264a218a3633b2e17b809aee1fd158a2671b56b51e0cb4ca0a7684fa8b521850777b1a03087ef332bb9fcf9b7f33957ce24c25dd22b939c34db9519a098fe09e051c39269ba4ba2991b3d6666f4fb2073244b98599a51efe25b8ad896f6807d592b6a9d9b2c7c3b29198e01062a72dd821f24cea2abc039a347ccc0176f7678bd0cb1959e4b8c631a0abadb2a2a4b74290f7918bc50a57e4f65fc9ea3dc0360c256dd77fc96b2105dc20c811c2db941b8ba4843765509eab35b783060604b50a3b9d44193296ab7dec2c3443d0ce68c7dec6a21c768a472766b1c68251bcf058c4bbd1a42da5c9a0615f3a8f1e37eedbde08513f6971bbfc644237ea6bbc1f4f99209fa73f573c53b6d060c8423383ab088a06d1c8826361fdb16ece5cee32351f56ca1335c7e1404d7ddb54309ce291fc7671a90c65ee5bee939c11db1a846f0907547089d7a62b8b636b800f5e1bbc063d02724a8cef5db3ddd3eb10134edc649def795114a78f46944b25625a12048ed57d64f03305d157218fc556f2b844cc5ace5165efcc33ce5e592503d47d69ce6bd749791a7384f9d080155a8191cde34b1d297628373ef93f4de3a1a06c5554babc8a1c32e7f587749c11544099034abfcca898270e8536aaca94610460b28d52cf01272f7ca12201f844a7091ad2b1285acf009cc3930a76c8b82e2e43176bfa394f13a82d70707cd51638b2bf960b01ca598f6d4d012b217ec9247621fa9d75894aa8e856f6ce9c30c9e1f8cc85dd383178853d84678ef5563a5d12d547213507a2c3bea3dccc5d377f5b630834abf1306c380445107f1af497c04fce0bff060f4049f7c585543dff5677c4099c7e71ae715b17828649d13686bc47614aaa1109cd9835f2c8a2c1cf2722e0718b54a427ecf15f07d65640f7c96ec3e43181e484b206212530c3ae1c62f37b36d25461f6d57a19662da52a25d41b31e2248c347eeb98e4cf3168b2bb52cecd132aa7c21e9e454ab12f920c1dd3a2e746ebcb08b5f881afc97b32664a3ca969e02e78aaedaab92c5308331e03bf7822a29db0f4be66b75da2ce863f9c48956818a9a316dea1736994a0a101383d8bfa21f6163150919dcbe41dc30dadd2f9b0ee4c0a32c6c2e53c7d4e0cddc11ed7f365a60a223113330303b44b4bcf9024e2f91949ac4dea18727b1ebe4ce3de1f67d263c5b292b1b8dac8494ec5aac36f0d0681a1b9ae59c7fabcb498b0aa76a082f072fcf12811dc01b8af83676a00df07a1407891b37ad365b3d171d0bbc8dab7a42aad54dedc173d5731a784143ff6ee6cfa449c65e14ac2081e2f0406ac43ee40dec8a596b27bd4de1dcf542f21f4c7de9f7a0874b792c253494f0e0a00e1efb8918a17d4b1e8d8f9af826fbb656a71ec637541cfdd779d9385758922366692355f5d1a7f8979d6eb2a75c0bf00481d7478852f35dc3740190511e76ae7ca208f6a15f5328276eab0aa57d0b4e7f1c4c2cf7a82286e36695797f300dd687fd4e782bce2070bd73fbf9ce9093351f4002ea07b0547a835a55ff11164701d66f349169eba69b0e09f1a7c76af54d591037d83f68e1d893d8e139be80423711fc59a2b1f6b746fff4518ffb5c0c359343c37998215d8f08a334869c25d4d8a15ece72699321071c46e807bf0b944140d509b7ea76a265e5c33d88126a5991a7d78e002876093963ee76faa6616a2273fcf77391364eca86fb586f020d0f3d917b27643ac42bfc5d8e5a0076c6e357f9e0dba994b3fb0cd3c59592c1f17065c32917a67dfd942022554a5756874e811761d77043c0909a204e775563f89efddfabba8a1403aee9f67244053d98f91898b7833746d99a572423d6cb1b1129b4ff87dab854f0628f5d9ef43c269359cf2a18b6ddaf91dd7aa940f9d9b154dec92921b3c6ceb6d09746fb4e8a13bcd1d929af3f892a38993ecae71778d01e49f0b5ed1f9ac3cef7324f88a384b0f2a578585f321b9e5d2eeb84b5d7995b0fbb513ea377334e3155901d209181b41942ed8df7d3fcb144adb5ac8d64f8c824da1e27076d1a2c908620726c77475243d50b6c1ab26d785df9f2677e649e1ecc1ce7a96954ddbd3b8e6c24a8db15bee7f788d31197ea3587daf3906d38e7deb16ebdff4574af0bc36efbcaa270d3b57bb0a424df436c4101846f342b4abe1ad8de337199f20c31d98e79bcb6e2534b7ac8c1759586b31008dabacb7a7fd56ca8b11431c836415ec9d4fe49593e34cd6e06d565d0be96736398728f77051e936839e335208b9c6d7434859e9f8cdda145ac08ede05b5a922ae182a78a47a282247d1dd24a894fc90023a9b9bc5e94d21c7df0d633915f73b14f36815acd92557902b81f90afa98af661fdd085c5372a41907d4cda9e150aa5262ab03cbc195ae64305909dc70865b7a842943cb7468c365d11ba97b10289d207c8815e6d929436449a99853327391aead437905588811d3b7d75fb4c74e4eb0ffce43f96155041e1bc204e899050ad03613a5bffc678a6dbad5139ef51448c7c648bd748aee17a4d7131557b0632f5f8292b471c69e139f5788f8785a2b12836d0d6076d068725557bc5bd174e153437603c96baa4f912a8b904879cfbc87d829cc759711d02fb3ce7d7b09a4a734ceba2cd85da9dc275665a7dd19b4aa94a5c03e38d3afa803ced96bdfa34eeaf691c236f80d16ea409b30d4550d36bd56daaeb28163be792e77dc5e53b151464c8f0d88e85e593c4b4637231b921043f01784dfbc3a0d394d0041582108ec8da12b683690591d368fa976aace2dd36196e24c29d0d0d0538cf5c77ed6ec1ec6e28c5009a73145e6193431f060515615b61429bbead88e009926abb5ce0dc1cb948d61ab06444904338e218b36999c3411d726ac556e65a8254a5d13b7bd11221844be4fc9e7dbb1ad137f9aaabad6d8c622d1b03fd2ce64445633752a2a8c30c23d7c56b7d1d9b1f94f53707d23074ba887f093ca9da867ba9486b6cb9c8eed2b5e69f7d670c006c53dc487b27d152b3aec4b5d1aeb8d1316d388db5c568ac4dbff707ef0521a14b8d55c09ca3189debb1d2b1f8fd7fb2577e2c4d65badef7a65441eeff65c9015eccc3265455728a7cf5ccfc89e9fc75fd5c4de38474551947f19af4e04ee2c2b6c48796983273a1b7994fd68d90e8c32b4296d477399c8fac724f24198d2fee581e7e36032a4859bfa6fb88bbcaa78526ef937460aac5e03fa71ba7e5c301616a9037a5025507ef2ea23665adbfe6908923c526b7e0e6535da22ed7718f614db3eeabfce623b152a8f6f51a79b0af0f81ae6ec38c6d27c3da1a139ebb12f89228c88856b17a9bd04015a5843f94d08d9bbc9967b4b99929401a607d907c4076088086b9b4c2bdc566baddbea0e82d4bf0ffcbabb6d6db7ee21d847708f2528128d461f88473bc02548514a7ca31f30fdaaeac72edeee207cdf488bf932f201d3b723c0a5df3c4a8f72c093d672ac05943ef5a7eeee943aa594babbbfc0bbf3b8c0f47d94a1554dad0c569ca1556ddbced02e3bde8b7f2c397106195a5593a10233d8fe19dc855a05da45a717f485788e6d8b44088e6c914b6cabab7e0d15309fdc116cd236e02ac0dddf52965b07abd3afe1e62e85e4fa958e73f678e7ea3acafdd218a05f2259a995ed8358a5c40a72a9c3e4f506120d483608f92489dd6b395b695a56f83817517289493dc06560fa05b05dd7756fefbd5cf7f7bfeedafadcb5b7b39cadaa92c6c9fdfe4e0bffa28aa9fa6fdda80f24022842e06244442e716dfdcbbd5305c5dd69e1606fe8a0a19476dfa150d7f47e214a2fbd1ffa20de7f546cfa7d437f437fdf47e86f2814facffb2f44bf344dd847434f81c0337428e4ddaee36c15b1e5018d149a8640ab5c033d41203f2c305934ed6aef41af431ee007f1c0af2215638040930e7a1f04f4bcf7017a1e08820bf81e656895ff0fd83ef7fd27ea68d2ff8686e6090d1936c6b59da27bf906e9082e80640620b3a65216d0216e984f9863f878fe2ffd027fe547faa10fb2f2dfdb770f9cd346e7cb02b3675809f2fdcadb0fbd8f95ff3ef433d3b1c7ca88ea8185e83c0c1c71c09fb0ef6dba14fd0672f28cf701779eaff254fcd133def218fde84ba816484f1f7500d2d3e7417a5aa294e2d28cb16cfa9e8a28fa163d49cc009d221adfa60dd026274daed872d2f46ec28f7b84784e576f113c9f7e024260888a48c1ee744649fe74f6b3f66af2698b780b6a4fa3e39b2108babe2f140a7d5fd27cafe38340bbbc226fba77ce2f3f7f2357ea66f66efedf9fbee7af82b4f484c66928ed502804e6649bf69edeefc423ee971a5f510736d1dc4953ab1d94eec8ed8ab4cac9c0f7bba7e188193cfe9ac1638ae189f99a73081fcc9afa0ece1ad7410ee814d995c88e64ce785f017f74c6973e88caaf7c90195f7afb313860be68109e0d5b08055979950f52fa196f1fd5df63e555be47e9673c0c2baff23e56461c243d54481fa5d18511a76b02073488c1544613bd81123d3d7affa0ff7d87441a27609abfef75b4ca0f40ff13fb47e20ffafdd4661ab640f3e83f1ab6909379803ffad1381a512d887ef4281ea21f8d2f73451a8d9ec7cca3f1cb9a7bf4a1cfc958fc9e7e2f1243a73cfea2c149ff7b31a6a15de0386bd899359512f1dcf3ffbe102d4279280fe5a9f90b91aec0776ca9a27056355777d4a10dbaaee338b7550a8d2cdfb889a15d1aa0b4092626cb5fd48926fde94fcfa0186aa0410ae67e6678c44783bfbe918686864728c7e003a631b8e0f4c70a1c04498fd07b1fe4d69d4c803c81749a641a76ffdd1ce02048827c7fbfbfefc3fb100a86fbdffbb8ff8d38487a7cefbd8f50134e282206fb469726e009f3121c61069b30245d48b45102642ac9f46d6878e86895d3a7d1d1af1a5a5a4a359fbac2fc6dda35d2f00473634b252203d3af34db1d16dfc7852a154363f939f46e32cd39c9d0f7d80afdcc27d6605b3ada45c723dc7168e8de346b42d9bd1fcb23badb420c70cdf443ef893f3ce441a7e40cd029dff398f91bdb1b4bfa1ca0d97b2e24dea7ddd8d2a46b81ed88af480998da276aaa1bf567ad94ab1dd785375d73ad56a95aa5e3851e31d07722a5a4a30d8d8d116ead88afa3652a12754b4451606ab34dbac2a44d5d93aa6afea45dfd940655a1221a129fc584af373ea1289c326d02f797150499d61b746a0e99be7fd14518b3c6366b46ef4fc8f47d8c4c7d4aa6ce844c7d0999521723d3dbcca3b7699148246a95e8673845a2d7e637579e783bae432af9d4d1ba147cb55f1376a9756b6bad96eb1cbc5fbd5a02696e863cdf5226a6f9d3da5aad73b7db759ad3dad92a5badad0e1ee1fbe60c65c955afb5863cdfa758968098f27ceecbdafd5c9bb25b6b476ae39d58860700c5b27ed9dffd57bbee6b37de12c40098ed0804ccf3c59203bbecaa5b0ebce14d67ceaf577ab9c5727a9e9d5b2c2f0dda63e215d75ac7daaab68b00bea152598e9b007ef9e73acbe456265ea825c084d2914e55b5dfe9e06b4f07cdf4ee9fe9b0556d5703bea1b21cd701fcf2cf75b6c5d4dd5ac2def5c0b5b9b199d9c73955b4e2d4ebcdb9aa4fbb31ff72806f9e40398811c2010ef304cae1c937060ee50994c31640395cb1c3a89a85aec0a33c81729805619c27500e3e59958311275f5437fe2587582ebf657130e7a7307dfaf4c962f2aead2c26effaf5f69eb3a67d4ef790404b1312309d7e8ba86e9d21dbad9f46e9ef1813727f0f699d767ddfdf44fa7ba75db59f06f9eb27a7091f173c6189308c3cf101d6fe8212e4ee723f35d2230619fa6768d74aeea72188dcfd1ec0b92c1d96d82181143818b20258bb0b723fede9c27573bfa8ca10430b31be18c10b6244602dc8fd364ce47e039832f002db11536460451753606dc40630f79020729d4043a460d283154037f8a025cfb9c2ccdfdff0e6a3b79b183914fa2ebc09f51491690fc9ad13a3b723b8a4b7d38dbe0d4764ef3d1aa55d657d2f0abd512851ca4aa7927ce774a9d472575b21e021dbe04a60e0f26ff4a68ac5622198c56230fa559cfefabf22dbafed9ab9898680cbcff46f47a338495f5547d5979f6f4ed2131d4dd194ce59c779c7952aa6b70a68a53cfee8be9f1b5108680ef4e8fe33b471b1945d9c403bcc728b3494f27c2134a7773efbf5736039b0926c364322491151cb0de80723d8ee1334d0e78925b3d91345f099d12008081bde9a40020a26ae48c2c3fda2882783e28b1d24a0f86249121d2f566357f8849124766bcf0d9c0645134320c3f280ade83b188b28f60684c5ed4682da039405122eba271d0da807273e403d34e1eb012ac108785057b329580006adf37c6430b00149b6439acd6444642e00633399144a84cae049215686acf6947145282b438cf945685034b1d337289c88d5a05862c909f27c7056b3a26fb320d86ab320dc389f991070c8f3473116d03c66c4909b0a7450e2062f1c824d797e0b913c5fa6d9145f0c99c934a60af2fcd2bcdc146fe04dadadb37a0f152328307deb95ae9d9ddd82bb5f3ab5eeb6549a61ab9b46eadd71959bd5ad7badfe396dffcab9dbea2d15757f6955fdea5e3d95128c80307ddade95f30a4eced6aed60af6c096ea4b7593833ba8d5625bbf7b7e59bbcce5cfb35f77f7ba312a7530080cba6010a6f3d6f75abb7b345bf585d76aed8de2de7b6f28079f10e0eddc72dd15e27a4dbcd00c85beae3a570252fa3e0b5e1a08da0fbbea1cc7518eda2b44d874d62a0a45ee391085c224dd3636527c5f2772397ffd39d8899e3f0b7662e77abb5027f25973bb02cc970c55c810f2429cf74eeae06f4d5f2f544d2dff122a012995461ab8f1bfd539376127b1705f7253c1a622edfe0b81dcfd7e865842e21c2bfd4876b40902d39fb58ae85cd9cf9409180a85ba06cb60c2840913264c2865e26f278db6d73ad36ae9e89086a65ace5ffe6fa8545cd752dbe561d5410d47adcfe9a0cfe9d5a7bbbbadd3badb5a337d4e6fd508a800434abb26156028e9176dd7a4e20b2bb2dbd9aca920982b7f777beb77efe3396eecd1ef8d38383934cc5e90e146b3a9d526adc77deffbfba43184e2dee37cf47b6310effb47141704c585df02c31107ff1cdffb0ef793bcf771df1b8384cad603c2079f84228d9e88225d118fa8cf8c5869c4a1b21e1f596c468f9d599ae8c54ada33a2b8cf81adc8ee88e2c61786d078d3e7c06afc84e12fa98fcad39b93fe8f43ffbeca884343a11187d2c61b0e0e9d39edf328bd599ad8224af416251a5130f4d7ef416b5c1c8142464f2c061bbdca23e981bffbaefbd1f7e87e14cb4e1abb1bbb47d6b1aec763b55bac763389766669882be27492bbb5be793f63a5efc7dff9eb1000a6f2a31107498fd197469cd28ff08f469cd2d8b81b71da07070a53e9d957b6cf37a2489f03ebd04f58684491c617864c27457666694dcb8ef24161dd535887a4c7e843281842ff7d8f90e871fc433e3d428f471c97b9fb8cc69e99d76aa5cbee1804490faff49e26c08278234af4e0877f479468f431e22041bd709f011376471f5c14132061882196c462309f39e98fa3d3b0ef85841e1c513e3ad40bde5ff7c9fe2e64e00923dd891d9460c2e4492c069bb06f0c222434c6c21b921dd0a00959f7a5d3b2ff8a12f08e21b33cabc8a5d76aacea38e96e67b944bd101be519d6989dd558f6b733bbc4d2fcb928fed3ad2dbb73b1ec9c4e764e96ddceb27346b2733ed9b99fecdc6c4950e69c5c8182272c04a3b9f45b8ee5090021ddad1154c324c512401039010f38d0927447945827497431250820f0c0032328c1ed6044f757ce91b46a403902143a2c11842b909044b8832c9cc2faa046173d70420721ccca10e23603bbc30e4c5031e4e3de6d0410bc1d42d03742348aab7246cc1bacd005e3075caa54a616ac6ad788934d61018913cc8e48c20f4020051254d619c132f103ca12426881830c7820850cae0e40589942092540a243061547b0c1c76ed13c981a891a0baac1141cec000832f8028b18f8f073854bf7678d773f2109b38a1a5a5f45a23470d5d90c42c187224c21031290412b0306a1eb33d332995a70cbce76a8b13222a28b984ac89125c10230c0c0a107260c41628bbccc7ef79a0828068204b12060f013021ed8915c9a5e757be7360b68a99a99b72a014fd8c5a6b781560374a53a0089004a7f09ce7eaa059dd5e79cd3a953a77449a6ddac083c9fb6d3e944a67fe7f8a3c3d3fb814cc55bbf1aba304b4b2746e2a6b1e4c69ba9297b1eb57b8ea5fd43bbec585e7b6ba6de97f443e3a49452dad9daa2acfa34bcb196526b29b53473dc674aa79db6565b3fcad99cb05f494f6899a179b92b56b1fcb8f73cb14559b6b3ef2de05aeb71dc5bcb79997274baa8abd77441ec2fd91251e7fb8fc952045cd63c7f8b911005985354066d17be22d305da03154bad128fe01efb8b1bdfc96efba26a171d9f76f7a52bbb37e1ee47f75f7aa3eae9abbaf9b3edfcf9d56bcf8d56cd1fa3847ff4f8fb5fea83ee71c0e61f21076cfef06778130affc51ff8492a6ffa9268fa9cc2bb7c795f28903e051105714e92c6bb88739235e6a39e45fc311ff5df6c6141892d2c2c2c335ac672b2fc0925b2fc6419af492c3f976a8ce5bd78652c4db9344922fe92887f8658cec7b8069bf1f8ad6ad34bfdfa2f690bcc8df89a4ca63a8642684e68af0af03b0f7852a05604db340b807630a26798a6351202cfbeb767940b9218b89fd2bfd786d2ea73ce49a977d581534aa93b7577a794fa53a74ee90bb8ee47cff3ba11974c5d770b1078761794de3a0ac225c889a2c0a32bae37da62d4035c964641a2282c773ba765e006622d17de74a696735cd775375a2a105f10dfefbb91e77fb3bbf77a5e28f48537fff2228c7b04c39b6adbbbdbbbadbfedecb5ee95ab2d5cfa40300c455654e6e4502a2e67804ec9a4cf5ca59a8430348c34e2a4ffe866bab5cbb3bfe9461ae9ec52132d814bd36df5e3afeebf99a098a2b4abc6dad543dac57a7f161d1659bb5aefcfb2d32e199e22ed2aa25d3246da15f3fe2c4758926817aac7d4939c8a1153b55450abfc5b62ca49abfc5962aa498ae6f203dc4f533401fc5804ea4ba9fce0f224abc94e3b7e7b8c65fff246ee87f95ebd445b93feb46ce3ffe7770f23928c38b9126b39650f46ff1b4dc1f4734181822459bbb8d5b3b0bce9e6afd548d69af417850cf06030630a084cdfc69727198988b9f25f892423b7c68aa9c43243e54442b5b8a09082ad236f4a63b688483d73e54fbbf1de6cd6543132b571e30d5103540062796d882526450d549558de0088a5d75410cb159eec9f124bd24ff67f11cb959eec0f00b14c6991fd47512c5976b2ff8b650aa2ad4c39c9fe2e628b587a0d25965ecb25592b2f0b4956924464ff1a62e9371aa22dfbafb8d4b27f89ac9145647f95934c0395ac69a0e6d2742b7198a2954e2bbbdbdd29af4ed753763f993e6957d9414eda65dfd6ae59bf24f564b74fea6997cdfea42266d99f442339e9570dd291764da0217ab27b33520fc9c82cfb09a2c8256949f61330c925a9497692adde121a2d28a85d6557cb334f49bb1c08cca537f39a649f5a78b3ecab9b4848e7d8a874c78a6fbe7c1d386b66a61fce1a064c98f5012e6fb6dfb5fd20c635256e95fddb2a9bed7553cbbfa8fcd599fcd58d2d32824d2a9adc7223db1618023b7320f784b3200882604eee7e2ef4365d83678fe3de34c90e193061fe330c6d1d43082541516cd497b9aa7594cd7931aeb5d61e6774bccc52f54612848c0a2354cc269d2c14a901174230e207082aa6f8747aa82fb3659e11a480f822f75393028cfc2c81032448e8e20757f20dd101228bdcb966618258ce9127900964f508ee438004083cc9d9b6448540619c0c30007b680b01f6b4734df09a836ab1b09c165caddbe92e0870497dae678417a285be243dfef3813e788884cf6bb6e571db9343ef76deed44b52568115b44bb8a5cb7a2910ea6d1cc0d1556bd40356bb4273bed9935f6fd65a86190de784eac4093fe54948104ca30575b609e769557555fe56fc56953f8f966bb38c0e51f134f007c3d5f5fcb8f6628f2d774967fb4edb694ce48554c2b07cd8c00b5566f9faf561e337bf4d6eadece556be79cd3154ed5ac3e57eeddf59c7d29cd7789fbe52de5d24443d0f2958b7f4588eec7254a99b04b1081942638dc0a032078235aabb3dc4bd7755dd73d7d3a84e3387b39ae765dd7d9207e3c28ea0a5010537c4732982750103d950302e8072279023921ab224fa01f8a64d25c810337cf1a0e98722d996679020141c9b5f4402c16cb35986a52c825187635775fbbff3ab1ac23f7271729d8c71ffe9d67eebe3e37fef0af7ec7f2be11ddb71746537069ea4fa508f69f43e052f572c39db3e30dce0041f3058686b9cdc9aa936f5d147fdd5719a2ff76230a705973ad95b3b5becd5f0de386f8aa0d8a53971812c6129890d00d33e8c1a1439810050f4cc8d442466b2d7268d2036b1b644c88c1be0ab6d84fcc800735d867c1163bd683430fece3c016e7942c663218bde5a0841becbb3ec4c007f679608b738a2634198cc688111d188e10308b1f62302414a7633b42d0603842ba16cc601e111d536e1187862146184b6042463411d822ad82074a7a60df086c7186f1441536d8874798d4448ed468b01c2aa4db4dd0fdfd1eab55486713d21a62c80f0c09ea0034273b136ab62a8455860f4660b37194e09d619040093db0ea220e92eeb9c711e23121fe41848c31fb762c09a19ff6d3feeeeeeeeeeeee6e1cf4bf3973cc0a223b4a5c266013b0e0c6c4d3324be446cc49ee1a973da806af653774b2e8ae4d99abb5044a88c0dfe275efdc20c04ec01c57c71ec82836c0e505e241f902612346ab11d6d63999989a62aab24ee9280126b5457bce169369daa6258c5d7e3fbcd5bb97f6f1c3d9b37acf39a927f21a86eda775bdf18aa41a0af148e5a78a2844402877dd83ffcd2ebca1ffa2fabe8dc055c812afac658b3ad1fa4972c12492fc805f60faf32529c1dcddeb3d4d4257c8746c23702bb772d724497eb818f090e0a7bc798ec692e6127cd257efc3bf57349634444028df90c70d6f385c6a95bf29f4e10d47b92c0ac59212c916142ba5f4ade805a6449cea70bdefec87e1023e310c6f3c17aec8e5ce8e28d7034c05a64bf2fcd9edddfdc4d5d55adb4d96a6dd5ec7ee2faad7cad95a395b6bf531878fb3f6b9aed556f746f2957372d6ba6ff1dd4984afa35d296d253e0f0aa695560ac637db45bbbb85744e6dfa840e7ca803d83c9fcb73a473552715b9fc8db8fc4d6af39c739c5ccea914e79bb366d61c4ba90b3e1e33cf39e79c13680456985af544707fb24e70d70b7e5796727322edfe8a654ebe2038a27884ff037c7ff0fdc3b79f93a9588235e4d07f6248bf9c1c128180d91ba90ef4d6596fe7c009efb9ef4bcfe33c8fbba1e7aabbbbcf27d37598f3dde7fc2b76f33bfac4ddddbd4eb74c8c9a8cb2681b44518cb4f8685a453fbc99e30f94c82dc2e88726598cb018fd204514457884ef1bfd30d262a4c58836d2e2f230c262449b5448b18218ccd61e513dfaef1348f003ebff969d618e5404fcb9c4f9099c04af00cf6f317402d34a97409282270eb6dcf6e98f6618e5ef24a54da7982d99cd327d03f48bd226fd4d3f6c62d6aa0d9ffd46f5b07f41d2f44183c0a603eda024cf9087ffe046d401722320380a8e02a3627961eeb3f6d08bf952ae6ed9df3ec1250dcafea455cefd87654efa9f3249c6834b52cf9c1e66e07be23625d7d04f73870830e51e493d73d52ee33af1c8c8e0b031c02c012e2c89a9332d96141997cce3a0a11173b45aaf57cdfb7f35e2ccbfc499636a4c8d38f38b469c5945e5593c84819e644bc0a54b2da6c6d499168bd562b172b4ea4c4c4a462419211d79f9d2a546836266646aeb63aa8c58b6c69866b5582d1c2e19968b25c362c9e0687dff420f1a04826266aa0539d1e6af93cca5e6a28991f9ca7ad789e72493f92e5932ef4af180ce578a36499f00f8390190a291ac6f962d0525152525c535a3828e0a4454d811a388524428e24df442b4a164a8408a960a2279c85a090839c3b4cdc4e480d22e1cadd7fbf330e008b85f6439c94e474eb2d3cec9e7f4739a9d949cace81749762ae224fb9f7a4c3793946a0baa273a2a03b717e2ad5d5162de5f9432c6469d76a1627ee61cef3f126957cb76da55a4a75d38de7f2c623cd22e54eb35e2089a11a9cd4523a3c2734e52b5d1142cfa8f5e3a5dd48537a9a054939493148dacb9b4ac288ce9e634d3cda595b02a2b0aaa6d0c69978c0e111b3bed92b1c163a34811ed42d5f1d4733a1539f19c764e2e647992a1a80e254292ab15287487ca604493cdc900d8b0640fe953a326dab2e9e77489b6a9f237919fa2a582fc356143607e557fc71bf117aa8e281858f81def8385df310641d263f53b3e08ccb330fad8f12c3c0b6390d5ef183b23301a8485dff13ce274d2fb0197291a0b23cac78e877998df31763d4ec2882e35279b559bc5ea8fa2c0075056e4c87823428755dba5468570a9f90b660533ae6618c36aec8266ed3a65fa5fb792494642dc174a35a932c0291aa5618a667ff0ea61fe043132acff5a64bd0b172d1df332a2cb93b2b66246971a586b95cb935639abd6ca1a5d6a2eb656b9ed018b38739974016da110cf4e11db6c34faf9a9f96bf5f43d8fc895a568fe226b385dcd49fa302b91fa38590b6fc8da48b2c09c1a719224c9efb1bc55277f23d0658b1dbffaf2ee1861305e8db3bf49b2eff17f86379d13fcf7cb14cd5f2c3ccc97379f4ecf82986ad2a4cf2651789811852fafca8c9c3c5d50601acf12d4ae6eb175f2081495dc884b46e2287c417479e26253fd0c5d6a270a5bf171d205f0a54bad24495f9224591e4d59324f1965830054402cc4c80718557ab2a6123e160297c21646f9246b5514291d0de503e677fc8e31088aa5f62c303f61abb1a3754e6096209b8fd5c38ca6db938cc2e3ef1768b8dfa58e544e2c52f6276b79e545ab2ae9711d5982589cf48bc656b6769da2acbc68172ad62acf55d6ae51f6afe249d62a16607ec7d3a834768c2e35afa24fe15d6aa43a7ea5d797c29b155eaf1ca2ad569aaf6fd3a39e1a299a2c9335951f7f996e4ebae924136d346fd3b6099eb955c63c8be64b201ded6389a666028ef9cea5e9c6123bb7c4b23ecdc7d4114847cb35ef3f67cd74bd5c2b7c3f385d39be43b956d40e98f5df7591b5ab66ff0f05024c236b386056f8295af8e549b61a5334940eb8146dafaf2290aa9373bc4dbb78d12e54eb499e71a9b98b4d34d26a92453a9ee6a6009734333333332927a9a0144db4a5682f1c3968441d22298956f9d788a49f56b9fc6b851c2b2be10d4d8e1747dac89b9334723c8df08626c7b3c4b2e673fc0c6f5e6fd3a3293870fc688ceed6d79a61cdd46e36623322796b95abcebc3f09858cd2ae19f2898c487a31339236991609858c42d66cb84cd16c3c46ccf138c49a9ad7db740e9a170d1a34421e3493624452123f4eac9cec0d78f5304f3f4573b7f136dec697a64c73b24678e39a79168eb7e98fc6cccff0c6d55debf8a35fe63fea3232dfa3e916c3fa94173131a21a14276258d5742300eb6dba8aa61bab767777d7feebc2f25f0567be431c2f239633acb1fc4014d311b068aba4fa658ad68af99417ed2ac95a6d8d2d746ea568a9262bd93f754b45f15721a6c2107f1588f40b4c39a965ff54ad15534999ad5da568cb4fda4580ec4f7ad1ae0985d87f9289362930fd9ec1f1363de3c26162d55a59312ca01d0246b15ca4b4cb5528d6d84267964bcde54911d9dfc586420c051d7f0db13e35c8fe28c8dab5d3af21a32553bac8fe2814e95795b978d1aeb964ca4ef677b9b1aaab5cd9b2bf2fc9ee54645fd9da55a66807d06127a85d1447cb4c8b4c4b4b8b098cf919deb4a8073919f3a22d26e671c4fc4ccccbc4c4c4bcc7bc490a9098f78f69c5d4004fa71d56ad56a7b2582c11035527f7f8a33eeb3f96782a820a6f5a1fc3faeeee66354e0f6b2c717862c41248b543f0572a88c4e3af54edc433c39999af228e77e1028fc6e8fe6244d7b70c4b86f5acb7e9d10da76aa99b8c98aab5ca534d82524f52b676c97c931b993115d41267ae9d63c49959a24b4cd952b428987e49ae7e5a5fbe29b37eba6873d21ff541646d358a367fd56f8de547c9f563c6d274cbf559e3ac38c6539176b1c67266045275aaabf5fe279e76d527154132d2aa23adc23cb8f4b0bf503d560ff330230eccaf46dc63f53023ceeabf95e82d71d25722cc5bf101ab875975340ff81c41978481abb71227ac7b0339b947cf8a56cd49ebafc409bbc10d46f2bc810db73c803c6f3044083994b1b0fc67ba91467af496b07aff1696a096c912d4f2d35f2c414efab7bc684bd1da3580f7ff5cc0d194d11858646981010d83f99548612b25ab2573359babd50ff984b49d7e8664edc7c90188fd302285b104cde8193da367f40c295232e94b975a8f2226b00823368c65a755ce12e4f7626c32a158829a64fc0310c95aab7c35ae7e9c74d2c75fe28f9346fc3561e2ec273b9944abc89f0e9ef0a804ee75453d0a15d108040000003315002020100a86c562916828cd34598b3d14000d7090447658381408b328c7711c848c3186004200200610440819a29a6d10004073909c42480e7050358d50263a604c452821075c940437322dd99952a46a7484522e6e3200d29b0df7a963090655e0e05740e366b5289af79631aaf07468595ac7927e4b575a12971cde8a969a13f1d21a0a153f9e6f7cf10d6ed03662e64c26c2412e4bde605ae0ea2e2cad416fdba6b2ca8ad934a71c7754ca6505392dc5a8830aed8bee6440e08364dcdbb69903b22a042fa578e4521a25465894c88b1e98c5840b85f713f3b9a2f42d2efeb5f9a956b46934f10ec496c742584c8682b408e455de00a20edbde87ca3d622ed839f1b550f250b06a30fc805d5e2e55c3c6619425a9a0bfa3e0cb0464add7110763111e76e6f3a0a7f2b7ef4dfbc959a6d061ea396fda68c4041eaf06bd9912627441458a157fdccd57ec44cc83f3d925bd57df69f2535c3f349240947e5ea4338fbb9f2fa832b9277bdacb5e1e412a4fe9f54370ac8e6a794a8b12fd002dc5782f04b1c82895e57d18b8b9f92853f44fa33e137edfc685ac1dae082e9e9dfa1c84897d9f9614e645742e0f5285acc4323248baab2a2c3c5958f555f0d6835ccaa8f90aa42633d000a7c1fbf0b09a31418a82e37fb6ee8d6428acee2e4b9ed5046288514858cf3b2c26b07a8d06d197ca44c917609d4d5fd6d1f771708bcfceb3747395965a6078290fd94871133cfdb062b512ab28470bec4868610a839cc3b02ea15ed6079b4b8b61bb50ead3d666f765bdac3dc849c2b3fa9537d6b4400fabd86a568d1929a365b9c442fce702ff629d1015e782f6a559658dbd968f054c71fc31e9c46fd8933dc0a298fa1079181b466b3e47c6bbea82ec288fe1b5c076d586fdeac96be81e31e6377410118c3190c20b56835b1ccfc42e6d2183b3087494c1068610883142fab6352a8bb0fa48c9c92e2696e93dcfa8000f837418589994793f0a52cdd9570a3343f9c82a19b110b653e0d0359e00056483f341c98319d6daaeb6612c6326968b9b1407aff42c47f5f000bddbf13a8193cd5b1984a4950eecac403f6658c730639145b1272283b8ca1023c82e5622c34f2782160d8cbc30e96daf07dc79c10bd44681308b2a0b0007356d58ea1d47eeda68d1015b1986348a481a59d0a9dc18c1a1cbc9de4ee6624b32be0495519a15a471c3a42f045deca40ac0a53b629611b0e1f4437e058bca247fb32cc817fcc9a0b1dc6d7af41b22952f04c40bf9e84e476ddf7e9974957e64b0c3d32722a2f6b1f77e0c9b07c61664ccfbe1e7542515179e133cf954dee11c75ce261a3045f3a56736400e8a1cbcd7e64c1375298eab8f5459e85d4145550d97ec5b16c697eb103f44dc35f361003f665d62daef24f93929bbd99d7f9ee682b894effe52f7f1ab90c5e630c2e6fe00c3c7a8b4cc41e3ce49c0db3bbd9b1c59c62c48346ac07bbe9e0f2d228978d4754b5ee11d2218877ebbba08ed3c4719f78769a4b3039b0fcda94fd3678ee544060df31de564d82ffc53180915c0a1632c8230067ba70f874d897bc249749614effabeae8ed9d459af309617e31d49ba26639cc14468cc00c9e0da437b85a9c4d7709fc9a72084697c8fd411a9ffae66d9f5c192f906e329f46cb88d7482526b704185f22b5208771f86b6069129548dda23eab522fbca092d0a6bcac4908656449685f105b0e302e859000624e45b865eaf22cb744216b86b34778b8323a042933dea804b969c4b0aec4ab28235d083236f647b394960bb92698ec8ad05eb079eb29d2064eca3b54ed825af95a8fc55c1cb31324c72794880ea7fef1e64160d9c89b577e19254720655a0df6502896edb0f94eeb1c085bedb45664b438ae86a2aa89123219d8cdc28e1174aba6a16cb513936f73a014b8f2eb534ee3a0b2a2ae825b6a22a1bba40cac6beb5a0678bae520fa37331632957f9378082f19edbb35ac2e9f2adceb54b0a1e6040134c5f4819d4d0d708250b7d460a623492782ee6dc5d60e1be6561075ee963217badaaaec0f6b429de902347e94ffe035cd36b293402dc115d011c444a4bc83dbf129a6aecde7d89acfb6f72e7f8bf5d7a6be461bce49120ccafc7856a470e823b581f805ba8a515bb309892dce55197bfa4a99e44adb4528d98fce830ea4ade08bbe0f4dc295b2f9db8a9d9850a084d4d548cb9c35ae2e7143fac1de9f1cda5b7f561a78ba86f9357d43552d685a119defe8f4a5c8a99749b85a0a7029411e8cad61f117c2f7aca5676c8c64be5eba3c5225f9510b8522476d720eaa48175f05f175137cf327d890c9a33435c97e9f108a9a3e003001f9d4fd19c89a1df2479d2abd1253c18e529f4e0d011758d0ed125ff1b3006201f61f01fd64db4511b50be6674d45270e1987e703926333a83bb7f510ca2f485176b2d1ae4602c3c0ddfcd6d7607af623ed96c2bbe2e4f90dddb8b092114e874194bd919b2fa5e40f9ec9644770b0e000e2bbf5c2d12edb288c8022f56ce168a650e4f4ff9bdf1e32c292186771f8c0d5dad02dd9eb3895ae7075558760e9a9bbd8b4dade4f9ad8a693edb3a19061812ecc4d0355d6686d2c7e0f6610dd3399f13c8395fbe229d0d7246981319c478563cc79d6751e9926ffeea3dc40e4ba88bb9c0cc84d7e2873fe014db2576fa0fe9b2cec44e5da2a31b2d0c7f620f6b0f60840a0b4b20c03f28a767d04b918ccc8fc42370c2532bf20576d09d772fd02670e454934174d1a8bd2052b0edbfdeed38a8499498a41c65a6b5e1fd1ed11eebb1e8b676e10de1afa77428ecaf5bae40bf783f0e4b40cb53ca0a61de0540e68b98298a51319c7f12df8a54665ff6b5e98ec99d4466450c00df699fd340d7440bcb21827a042f488208b7bb2ac0829aac46fc9ca7daf93d21420a20b7884b83dc4222a25cd1db4c0df2c81df681febd2dfccb278331deffa0eb34f61abb1cc50af3e9a98cc76ded2d7190f0cd9606a266b6d72b39875f0f0c90b64d9123f68f7c1761dc3531a7bd1c4242d34bb296d4d72067abdfa6bf55eb48a92643561ac15ec9d9635b3000e2fea34744c1be592044ecabe84776f87fc69ac80317205419a6572618e20f47d9d243009572083e374368c0a8aabc6b356d24476dfe9a72446f4b22d08bd1e3c8415d600dc3f5ce32a0330e75c712d165524725f7df22c7c5ae1939b8fe565966e28e26ec3208f041ca06e7d193cb4fc93806e8830ad3b124b6d43b1e2316e994da3c116fac25aaf3d213dd5156e46cd5d0482d8f9b6fe0b0cd9f733a0614ae3b211a704151bec7b4adadf2b28e353096ec68b810f5ff77f4869e707e44149fba50c44fd14022370a35b7bcff292abfc596d4c0c4d1b0c9995b715b541eec2ae87a2f0208b7b6dcd15cb3df0c2a1d3dc123fd8fa8511cd915310da6467317a98d366ac30c7802c9f9ca4802fa1ff73302d60435211f5ddf2f9b2c4f1f858e95a02a722cdb6060bac65084e13a24846d5d52cda797b8228b4983934e64c4a618fb27d8f765104ec78652936ca9b65a9cd490af37483006907d92c2bebb3746615ad654a47b8361426f9cfb66de600a94f04953cb3f880edfaddc123d97128760170e4430a8bf84a58ff67058263755a44ba97f985446cccf18c644c04e41079672f00333cd4d5b9e99b4e9452d708c9a7f8849bb289129e916d4d784e42b3bb96f632476b96088ba7f78b61e0b9d81dbb7c5a23ba54e14ccfcbf2ca49cd20787b2fd7f43a7e6cc16e37e60eb740b88c4a8a8714979272bb9529b85342132d971a34a50f44c3a081cbce304adef5439d6845bceb99e7a250356cc24850b8ca91195213fd651d94342e24d67466c1533000e160719c43133c9816533a416aca3cc0af53559077beff520b32742e7eb8c2c71311e9fb0d02236dc03c13ea11591282c8fc04654fb6799395ee70bcb7d0292a1a8fb58a7f529cc8bb29e4133169e8fd8562ea622fa94d5bd3e1bfd045a819a010b331c2ad4e80f399fb8c328c988058db70d4e0bb62ea60ce8251fcad69c6acf3fa31a78f052638a66c90a3c09d568306a6b74f1db6861be2dca50b1421e1b79a0f3f118604fdd3b695441c344065bfb1d83352c0e1812f1abf18544bbd829119cda894ada195c12708de21ff26ab61b91895217ae1fd6d03d45acfcb8e26d8e4580921153c15a3d9c1664d59142706941e1a654fed72f7c0e8c7c82109852feb68e291ba19b3a6224ed77cc41e1cac0e011124857ab6e0b8c1703c588d898573d064c93a859ea2cc492a86f227274452031b066be11a58b2c6e9fd2ff7d5563eeee6f9d120b2624824ec3e269d5e7875ddf53244222f7ad07cded2535789b54db7842030d19436df1a141947db93aa6df76e0a19f3248aec946e3fd6fa217d6dce50564c35a1a4cb70c1c94c31a1898009a0a7698f5d099e20b37e957ff578a316d9fe798b20200132725b5eb72cc1678670c5408e5a73069fdfe0ebe72136736cc35ed2b72639780ff5e606789f622fa821390144584627cae9e5881e6fe059ae176785847215f1a8660c68a1058daacfd1c10c8429595039f13284ab64adb27796259fccca76d246ecfccd6ed3d7e91623e0d3941fb5ad34182ce9d415ddea6513fe5ba09fb75419f005e0ede853e360b9c0a1c7ce01aa8d13d633a955ce63386043ad73f11c170c2b188cbb722cbddf75b2031817a73087245441a4e784492d6c3cc70438e66ca38167ce29563796a7313e48fa3ff87168d8eef320a226af199b47c61839f94aa6c610694b33fe165831721cb65c900f342c7b383fd4a34565ee617037ae4483547279642a9177985695b7c992cb1b45e3781ddbb8703055879e5784b6c249e6255a0362b727b51b6cd1ee446c2032bffd70e73c913cd87fc572e7c087440470292f404643d0ef225de91d892dde0a53c3b872f57144835b5d6d26916c142024784afd64d3856d6136f30923eaeccd00b457e999cb2d960e516b51b16d3806eb0cc5842bc591db8fff717414bd64e83e8250bea75c4967b36c2fd92bfb1026b18fea7ae6aae5a9f899953968d682eb5f49618116aff151232e55a3664f61d95a4b7aa1e9eefe754568fba65b785fa9f7a47a28c44b85fa7b54f52b387fffff1a379b2fbdca6f80cb62157fe9eff175fda5d99bf6997d9598b97bb13754b486e8a4f8d498fb6ef571e5d104cdc7965cef444eed8b4ad316a79c17196b3c9fa7271d90a671dd661085994737d1385550b4360b211a30478a77b68897e083a3b139f2504d25ff1f655510614c4e6d465a695de5ece8c4330d77ec89d71d6349a8c2ddd74d00d8ebb4092d79c38cc5f2c0704c51423f608650dbc7c115af9b7ace8e718f81f9283d9e1c00dc13b9452de8fe290e153bd4900c5819d752c7f8da1efa27d7983f95bcdfbf433ccf55d3719df6875e47cb7d90c6d6d9a2490f0c5747818c8c5a62b9cf70543e824b52378f444066712daf8e1278ab272c6efb08fb7d7ff4d8589d7ea52fb2523092afea96d24fb642f234bcdb22bf5a728987b02ad58e781b5c8bb6b560df8dc71caf792bc08ea6ed186a876aeb2fdda5d200f75caebbc2b40133119959fd20fac1555dccbacfdc05ad69b2865916de46e7018cb7e633bb2a032a8a06d1166872d77c86b73954d1f79ad939e29dfa6cfbf8199fecb263b056301fccf7801f75be6e7ec44b001f370a073a46c3b1a579185e068b2a097def1866324f48ada1a415392a3dba08f7b965b52e87a51b00e5515c1ff50c466d3ff5406c937fa6f33d268e7e6c751219ded92485ace895d61d3d0c186ebdf7e1e926a068d8ec70903bd8fc25016db6e67a9d63754a9e797c187c761d0248626da4f946b3076a50d4672bd69f8c582873165dfbafc1eee9b3d508c0a52cfc9eb30634db788785020b80e7ed580c75064f9cedd6010e39e02105fef8531050bc4763a15e75c32c030ada15b8a14b4b9b374a922b2a79b66f7163d5447e6acffa37999df8115a083e54a4b0af09d06181b3c9b02266fd17427a96c724599caff13d4ea34b4e344b0576b23422a1f35bf081b378c0b1a38d20c1a00b5bac1790f4d6f5e4d5417aead3594dc3224dac1610c0ab0f691353bd733a215c685ddaa6a41a686a3210e8a48ab38c2671a7e47d2e1bf2a961426c7921c7a89755755f6aa671ccc9bb38ad2f2544fbd2ef5040443eb40c8bdf4ca371a649205ec8d44970562b2dc34bec1597adf268da01329c7515a5a9bd2d9a5281c52e461c51dd2a0f11bb8c6c974fe843e57f954a90fa10d13cf129002cfeface06c99a04b99144ebdd4bf73b96e5cf8945e5faea2860875185f7e3a824ee6a4bbdfd938d3b8a392fa5bced4c12d1e5a9249df1dcd710fcfcec34c168feba3764b76ef2113f151bd2f313458335c2e09a10b37a952c30319ca50ca2d7ca8002df4e632be9fb2460ff3472993d2da63d0f3ecf36ea92f3b6e834bab4ee1d10af9ddd1e40b90958219054e681470fbb690dde969399472e97b464c226687b58a6ff942f2fa1563ec63b4994e031ab822b6c81bb279be1c064b29d0e3769c957583ce8ba301a839cb1ade68d0723b5d436fde6e2e27a41f62a3612ed0293e99fbc32ca746a4f46e453cf9099b840f4b3dcfb608551f78b5552dc8c7a2fdf9304033eb4cc012cbd53b11e5c1fdc63ca86b3608c80b4990e2379d7ed5df36e3379c2c6815ae91e7a483044183e9b5eff18e4445b46a300238838d0aabef355ec183ff76c7fedb742226f0c0bf4b345f22a417c112e268e1d6fb19b9cbb75a6d13ef580108afe137d674f76b0752fca7bf9efc2031a297b1f788c9b521fc2896733c01d05659a9f34ef4c638c79ee545ce76b24ea03ad644ca1ab9259b38112578029057d3b966f03e5c5fb432795c6025f254de749ce5503e41b03330597423d8fb79fee7d672f6b7556c119cddf6aadf3a736ac60d6edaaa8d6a828d978a3d27630fd9513b34fd697d8d561c1ee39a7046e353ba2b14654c7dc0b942217345344d5487ebf8ef141e2adaea080bcc58868baab41c966e77ad4ca0623ea22e00c119687932dc471dde84af7e43b06400c091d905ac1af8db92f92e44101f028edb0684dc5263ff3d53884b8e92bd235d051e880a7e8fc97412b18341320bdffb759d124b02191b8df0bdc84e932a699164495f8a4d3fb5ced905ad1ca08b5cea9df995d775730c59dc44a92a4704ed1a37524a071c5d139c7f34fe0e9eb84a8b31452ea145ac6ab82c5e40e20dcbbc0749bddd1bebd44972afc434a3b01945ab4aad4f6a6b3df616559eaa5d124cd4ff1b1a8aafeceab7d9f6bcda397ccca7416267fe56220dae93e11561426846069887624ebb201623bf10dc1466f909ef8d13519f2b45d985375a4c096ad1c8a2a705915e00e62561c8707aded80fd94378d7a40e8803cc0d719805a8dff68da3bd4d07aa0a5e23ebd393c36fcc9446fa5d30e1d9ef4f12ba423042a6a9f41135300b2654cc50427556e9d65ddf8b3d65db2e6c8114be263274c3aac7f43b7e8c03bbe47421995be5200fa031f22ae414cf2b4e99d6d7cb08368a030d70a42c16ec37b1c5ddc150c138523cc224fa08ed9c5cd2221d64b2a2c7a68dc836ab2a1cb6f241e70f64a28f23471d5e4addc6e95be603355957c55203c031af0d7d6488d62116986237874813ad1401c52322cb7e46623f8cfda906253e526b1c0b16077bdac8229cd4cae958aed40e9b7beb03810476186d27fbbbacb8e9f73be0c29242f9a73d941528bff127a839e1ed30e48640cc063e924cd7e80457faa7319f8f3a2710d339d5a3df04fe04ad25d9c112b6f2244dd2626fc8c3783712a43d5b44a60af1b273251c8b27113dd85b713c5df0eaafd4cc84dbebea96e4f2308e147173c4a08fbdf5ba51b447d68f7d6d41476a841b22c71ebd61275a3964ad75c4150868b365a08bae31fa48acaf59044649af449f115400df1414947aaf0552e6896f1b673f0e5db2dcfde7a860aa57922296ccfdd0640eabb1c1d146c35e1ef4e21193257376c2e21d2ee5f27614abcfa6fea5671705d26ef224203f78da8a1edac6297e6b3f51231068660c3ab51e16198e02a38cb90529867e9af334a1f59649fbfbe348bb0611c0826df3a197df280742d8f0ee2c38e359c02da806011d61e4a1a508246df9a079d7b7db0dd4c74a3786145763d48368df5e4323d6894ca5fe1e06910c1171eef5ca954fcb4e9bc2fed495029185d1cfda86ec6794633d41df568c7dfc90e1d87c439368d850a7b74d3bb26042bff3909f0198b460df50ea8b96a14ea2ad8bfbc242c0b205e3ba68b0b35b62b4f44c13290e78850f32a17c60949a61566810b5cb322c192352d94d9eb7fcf395b8d9484c7d6e2e2020d11e14b1ff7b54ec559192975a5691fef489adfae4bff62e619b0b55b6fe635cbf5d82131e98f1e052fb14dfabc4a12625728e9443e6a6887ab3b5c06b7ae4e9183271b2e7bac3c68f4f1cb933e99543f4ad74ef85437a5b661a2b7d5c82183393031c1661b63a718d1ef3b216f461ce408f02603ccc77e590492564f138640a133584942f7d2d20a3b7e7f2f94bee67173dd5e3f9b5978d5a4a6c742bcd9dd2a56d57d26af630ba37128d73d7fba39decbffe94a9d998a988a81cbad609595215f6d5fb23b2cab43e6ae3e438633bbb8b39e09e0a05f071c7d579eff5db2a5ec1b7972893d0c87a35c482da94924f201c401131ee6be54b4c693ad835c3e414b563f3fa16080d71f2cb0a56a533be67bce6c81dd56c55e0b628e7f0e1a02c26c4fd293eea94760d041b0fb162c1c0d5befb878ee43dc7a583729c265b0eeec2467ed0f5122093e44e721aba0b4b2b79c3fe8ed2ad0da8f890b85b76b03fd7b5938c568230735b9a80ec06334af580e0221f09d74775ff335fbf881db434bd0ba5a53ab55dcd9d0a6e6f8f0b538e00fedcd3398fcaf05229e67e2d75de8da03fe15a1b08c55ec32fccfb1e05259e96852280eebbd2e74d2d997103a7a104808de6306879321d3c7cea5a5cab82b5a8ea53da65c769b6acbeb9c60aa290aab6481751d14e56e47e5814c0cd4c2dd78b9667090669595eb298b421154b25325a8a4495b9538538fc4c0d0032208f1e08c19c8a0902630ee14cab9c43012f0cc7ee453f69954cc6a3c56250b31756654d7765eca21cca66ce6f17380d2821fcd4f0e15fded2148da36011394d81fd4896f8d9e923a8e4df2bbbda253e0c59d70ea389ed5a8b7909a5e144baef00699daa1b5958f4f8362b11bcf21e8baf4390dd1d3529f86baa030a8a7d7bac3d44d919c4ddda6b89604eeca56018f003c1435e0b24df985e693d78e19c2977df667cc6b1aecf234bdc142c9f9e35306e603b3de2ce2ecb4334901aa6801bcfc1c5591eb107507533ecc51431d65fecd8c218f0b59bbbd9e44ac3506a7fdd1ce7203e6d956189283cb4a4f73f80c7572f148e6c5376b0202b70229e25d988cfa6a681b6c255273efcb33597f842bca0eb5404a7b66a091cce2592d068614627a2f2b521737a7a8c3b8008ceae9b494f9efa17d957fc3297ffcaf42b7e53620969aa6ea02d631cd3c2c423439ad7194bb3a86b604c69e58ed55da8a4e39434fc404fefa2641dd86965128b5e7b29ef383c2012e3c820268e2c4a7ffbdbc03d734039ef18534bbfdba8d80c4f11683cdf2e69f6469f3321c607c2954e44c6779072caaee60a9364535ae40637bc4136b92d2179ddb1c95fbe84c2d1fedd8e201cd51c07574d0ed042219299326f913f34645159488d45a04b36b04682f55d04a386745edcd15213d7f35be7c26ca6fc447ac3aeaa37b8564267208251c00af5f77d7f91a2a72a51bee3e23497efc387fd6298857178026962cc1c0411eba11d8cf692ac789e6d9a62906afad386cb79ed679e5df52f00f9d7530c051510fee5b8030ad871936c64cde71d41586ba9fc3a4bb6ac8692065e0e4944b89f9d540ff311600a536f53e45e08c87815cbd7b876e0cb4da4a183643dc9e492d1212c0a899debd028c783ac5bd4d110f618788e4d423d4955e5240b5d6547143a675fc1f4132445e0aaf0b07fce3e9324199b645abec9945c310c270ad72d5dbafd63eda583155e0f3d445bd56ba2efbd5112fee19d160f2655ba070c5847d3a191d121d0772df27f37c175a1977dacdd85ed9909779748ec33e1450658633c50ed265cf342f93b7d95dafe95a28452b3bb9a1535869e49e4a6280115288caa8b04d4670675f7fe1f92bd94403c08fbd5d7d2ada20c8398813b3223828b15235638abc28bc992e5094580de36786463b02fb7753580bcc9e62360621c384c93704d70c0622426660002e318d8c9c7be4d772b62d4a10f46504f345d1b189e46c9368d715f31cfb8de231c6a1907f6488dd6e75764d761f51409d2872e875e3539f22b1959a7c37d2a81f42702daf0ea9d4cbb19f50421c3f3c1b526d8eec89ce52d3e645f966ee06e8b986522f0531d6dd5b844ae45e3118d9df0ea1f214d4ce3c554fb7308ff72e33866035ec9a8217ee7c7343be5b25c694f3e9ddce704cd811139fbbe370dee8f32bcf6ac04f4ff37b22ab5b0e35b5aea9e6162214b3b619834f208693dfa0d8cd6dd630a3cb35ba4c0b50d551ac332929448665d04827f732830ea1023852901f2774383c3630c40a1c17690b748c0cf4a5cfb7693a20036c8a47826a9edf3744b107e07d420cc56447198d191072acca2405e5fbca7ff2a7454cc8506596da322a8489b4572f5563822c331880e5db4dfdf17eef23b767cebde091b480567ecaa69d09e6ee0c3c73ee706c97578cb6da3f88724e87767eb52f8d0f13cc526ab7a515d8261a724cf621ab7b4ea0dcd90121861c7c4d22c6563b8961ac724c5c7f7a40ff09e62c0697dc5ba805a6f85706a752896645d3bb8c0457cf160a773505743eceffbbcc4c1701bff752fbe933ea82dfbf498184b38f1456cd91e3f42e6116a18d00b414a7b4742b6e33edf48c6398c626202d4594fb2fbeedb0be113a22c128570e1dc732f4131b7e99887be2068559c8efb4a9af38da85a8db1540881a21d0fdd2bea0e26226f8a94defeb92ea61b2289503fd38715a3354be288e2103efd0658681a2bd6f1abcb8c0156c39d25a1ba96ae86944474418d8bffe9b33c1a89adb32ea009ab2e5af3f848680a87bc5fe38195bff8ecab903347505773964651de7d9a51d0035d270c50a8810695fc1a5379d0165bd68dbe0ce579aad864585774b0675172e805ee4535d2071205d609573df91558f6b2e7d07c0a60a2911a43efae6e4bfb5000c3e1316f09b7e300c3089668f0f2f8abd7533cee57ec64eddd807972f87604f3c205a0e031db9de6a124be1bcd3461259b6b8da41247c87ab73a70a7f6927ef2cd738647d3a9f81c983caa4a4fb376234f60a8d098bd25e843141adaadf7450b2a346a60da445b8ea8b782c0de0ec7ee0e774854dba29330d9181a0809b765f946dafd344f0c7f591bd37ffd1d636858821092841f8a57c21a0316b2e0062f30868670f25362686767fcf3985868bc7ed0e5e24a89488c2a495de7b190849cd832fc9241c4222a398e7d00e496f41cfc83893be7ba276eef46ec2fbb86fb7174f0e62909e2f6c48fde9a521f47190be2ec1c91bc09eff088955f4d7ea05e5439932bfa8fb85c46ca9f861ef420717f07a7038c0bd26df691f5ac564471556af3b3912b05487484f086592893358998e0cba259db0a7de0bd048ac1d09b25a88dd6f216e5e7fa5504ede726911a0a8a6def3c4e8b31b3e0666ea5636b8b6c9200e974aaf36610942241f635277b8a50a2ec854cb285d98652971b1439f8fd7ff6c9f1d5ff6ffe17f500c1d44fe5e13c62a45013c7330de333559985baac0525cb96f7e93a464243b42274f4d92298a5b08357def17e445c89cb1802031fa4b8aa66117ed6f505d5498c1fc8b20577c96768ca732b3a976fb86bd7075de85444d8c72d0ced2a04fa2580f8c0290418ff3090c26cf1130b53f083956d12213b472e892aca5ce29617861637c74e192f8c05983729c61f5bf115eb990475fe89c629fb59953d836a1cba2f086489d619a2b67945bd5466bf26ac87cf50d71361633efb2c7eaf2c9070544d7ad64c1d376423f45f5d3eab0df48b0c14d09bb9589ba29a2ca00069bb91fcb93f8d389755cf8d69313e583eb3891eb3fe5df45b60e84876fc86bd6ba62ef03a8e83b0a7a116f4689ad217edb901247d68141d1d6784a92cc76482b43b94b4a06736f5b404d864c0b18cc610b343ddee0733b4c08aec432c947150157155697206e90044de9a024910fb2005753cea7d096c69e41a5ae9e1f608715e263a52fafe8b148018e0708763e7319d86150f326a7dcfdcb94374b180a337864e2eebb400c0daa07f9547b2fd729abb465f9b01f655bb96535041ba142852fa78e5b8d3f95242aadc3f047c02a8f139ae1488bb9267a5cd01c03547309628e6f43650af34138ccf3a79b937618ca71a365bdaff4801148bd1f3a226e76915d0fc55d28abbdbed32bacb3c846a85e0aff43be98b4d77b33d6bd9613616d53ed45cb8b0a095b613c30434fab03ee6356f1a22081c9d7ba00ffe79e4d06d4b12470514d0c086d3bf0344f1a36bb72a4c4f7ce3d567ab6f2801406caa2dfb7f90e04100552d91bb1efcadc7038cfa750aaa4df2af972845ae750472c01eb71a32c82f5308f6cc7a1ab41523a3f50133579f941b761620c14afbf0163df16ef7a0a733660027d66d2c2fa3b079c0d610621f99ddae9d1fe1c91169faf9cd511d42b88e1732627066128e84187845656d5011e4a358f06d48be741016e0facde6f2e80e95d24564b716588f21e58a340c934b27be442479d70d7ad1d082a2f4d00724561028b634dcdfc5f195e2c190aacb61a3900d1bfb53fefbd8b2a11530bd28ae838a42cca09d645e941fdfd64cc9e2c170ed3e12308855bee598ebdc411233363201fde284631c221984572d3bc689894eae4024ac19da97c303e744114ab66e46b8b6766d8d3e22a46d5b12b9a79bb1ad1e144b1d9bf71fed9b448ecbcab7a5722e08032f550eacba884af3339121ff0dfec0f08e74eeff251ba2accff1e2397f09065c9d52cada3a4ffe9a75a6985115a304d47b21307795428cb8bac3cea5e8d45bcb98cbdda4818d17f6d8c90dae554e6ed38f5464287965aaff2b309611ae39b5867d53edcd30d39a762bcffa59e6909e3f42e78f5a1cae3ad010c2af504d2bc59c90ed8cf7b30a6395aeac92572ffd279ae1d92ec8e55dd4a68c461f1d926b20d354369283c8e170d09898286d464fc76191570a0f85ba43a9db64072a9e085691acf8fee165889d33154fed87fc9fb1ec3e5bf37c4714804c704b3264003b865ad1bf58a0656048d7e679b33e7cb4c57704e2f87d96f9526f0418bb24a9519dc522c1af940daeeb9f9575985849077f33556730f18e601b66414ea6c6985179423198f4ed01b5be4a50195f09e20e329b1ab817540a019b371b5f7fb060d17dc0055e687714593825425650c041dc351511e37b0c3a377243a8d121d09db5491c0fa0f1ceacee61e4451bba722396252ff310c66bd54f1a4326e316799b9b8a5bb9d76137096bc10b36bbee8a62144531bd769b7f3b81ad67de498f1e31a7e9a7a2c1d37e948b5572e8c109b1e2f6143482d07bb60cdda2aea3500dbd3aa40d2640bb0f97e094e1c164653b02760b0c6485a56c845c98a81a73d7efba5b5d2c6498ea97b3693527f8a3e33ecdb55324a9034f95e4917e8b4d2bba5c85494edb0bc6fdf34382ecc86a4c5d4aee8d1d390418f0a84a7203b2b018f10cbaf1ab47bed374184819b880f16a84689ee08fee0e081efc8dd44a1b7f7245c2d25bfe9639f91475b5421b39517f72a41557e7914b661692a3304afff1161ca735164eca72c22748eadd2023bda93685e4dd954fe96c968d1a3e48e019e44c8aedbea7133be7b184081dd3299af35f472ecebf4154116ac2d3a241bbbebb04ab4d71d1e0c96bbd4a06817392deb76a2e702cca2f3f222b8015388964b988e63dec3879ad67b01b4cc7b7e7e430c9ac8628eb0d1d609a93be69b967035161068e33723c55df6d974631ddaffb806f374de9d18dfba03ad9a7e479d194f679fa12d5e327e22ca71f02e9e18e382cd5557f9ff363dae8ffde1c09a834803d655234a225e16ebb5b46a3ea5c650c78c2f8bff30e6210c1ce91b6a9a6bf1d779b1d5aa95e709c2bc0c84a783571136b7b465fc9e0bf1ffc88a27e40f35cdeb0bd3320e13c58814174d913763d3f1fc0c9539821e130e8e3190fd614499eab795e03af46aa969bc8c9327049f0f14814c7435c0332421447e8d9126fa63ebbb4636d20423a8c5c2b8c94c2b1ff3f202c8ae68dd18c3e7f58aa42f1dcb2854157bcc4d2b639a950550fecfd75195a343d6aa3351c695df3753628225da46074e5c581239c230d09c1665015cac65c63aec61c86070add6622e82e0fa9c41b74c4824a75608e0b5fd3bd1898763899e8878224800a97c0151a1459a9d11ad8d8405542f4baa151d1d5670aacb20634bdd27a2db4ac96520667e356180a8d138d6826b7145063f45ecc741d828e8c5247e88c588b0df1b24a51ba2f0da5aa2b7d14c6e7cdf6e171fb5c53d82c9564eb135d278976c8d9afad5d92fe01e493f5833cd4b7f85d57cac16ebb31e23988a4ad358a7959ddd5f7a6d84a41ded0a247a0a4360effd77a1e3714bc4c64c94daa6bc4db6f88d608f59bc2d312580e6b390b2b78c71f1c5c7f529afb999b60741091a1282af4b091dc2a2759d6689b8c9263ea5e29bb986bf430bf720c00e4285cfbc57a2695bec4b675c86f7b22a0b87ce9bec3100b907758f44ba0c1162926d19782f393aa95518ae781f17f06617aa4fbaad710124d1f50ee847e978362def2ac339505fd0034a484062899a499d726fe38aeab0f4f98fc10049aaf299ef8aa88d0294ec4fc27df94d43f2aebefed2a20b9b2f246cb57409e97c1828139de4c3c90f92bcff8f6f2d16aa454102b311f889682547b55863c75b12277ae5cbf232c085b5b3543272dd3ae2a9e590256cf92ad4a14253842a265328a9e943804ea3a9851e00b94023d8086956f07b1db35efd187a5359acd940e2a34d2530e4dd39c6b73029c22def05b38508173b7bb3748542e91dc083c87825378e594325142942875091774ece691608c70dd89be55c4b69509e310334d38a8043ae26942b017b5a258c17be01763e90a848ac47c0a9abad890978c7f2a441fa30d51f795c370eb23a6f2be9499c38480eb1fbbc19e4ff59402354e2b77a552ba21dbef0fe56cf486a59cf351d2b47cf1c8717b439861eec22af05aba902df4996400852904c15549bb3d0c8366be6a3cd524d9981e132a9a42278656c3daff375a2ee045af3477af5521315b688611044a1c703bd0871af8c3cc10885e851a046f0151a50c415f553e0288d4121cfb840e4d2de6a1f849352010fdef91eb364e74be78cd8998322f07b54e9c8a0d4ae78304b7f83738dae4a6beb8ff134016bb5f85d802b45122e4cb3b4e657a0b944d16dd908a9af7f76d7894b861e91a25940901d809397b431c26cdaea90f625253f4a13f730e3a2f35c2749474181e66a56fd6227b1ae931bc8d9a4147f9004de831f6e2c75d88b731dc5050c50461b33276ae56ca202e41c00bd29f913b0770a5be90dea1116b0d3e3f7d01f4593d66f114ec51998f3b84892c2655915b5e87b60e61fe1dfc33592fbcfb0f4402ba36be5a32a21eb34c97c53574e9e1a6588d4c28f5f507d574dbddb05be9318b7eb8e8a590646addc2802bb6b91e6df4648f15169cbf98ee57e3a17245c407cf2ffa33c14cf006dc5ec9afe343dea7bbf50c3db047056a9b37eec6cd1b02364707b679591033010b006a547b64750cbd529f63dbdc1288e6869dcc26da66e1c8ce49930f9e9e165095c0d1a088fbe59b74516611c5ba66381de2eb9ae29632c9ff81d5c41ab19838bce6b1da513d6bbeb0f0350cafc154ab86e785ea1f07b22f842fda91379eeb4f5e90763e0c1a0e4be23081256965f2d7d745fe66198db4536bcb2ba8019454453e409a1c40e70174e053d36a3510ce479760fbd4dd046498ae998d6e6587af26535d420bd96882e270d3acfaeff8b9d2f1d430918dcdeb252985bc3f314c554c64463ad992f68de20ab0b48b67770484039a87110fb4b9c6d1926a88212caf281d00edf6c16239e55e675ffaf0db4e536012224387a675195eb1291919f06dd7f620b8b6f3b52881d1375f2df1538c4a7d32d4759895a2f4754c6d10e4c581bfdbd5b7148e34da03f0c1fdc32c379fd1a361314e37925249210a5b27af8940bf1ed39ae84b380d39e432359487a9e43edc9d566e3cf8896f51b037badab19a1ebcd4d29440ac64378601fe7c6879d23436c0dfdf5fc07ba0ebc2a2e237da33dd33217750a2827a25d59ba95e6f558b2455ccfbbfea1671b1db145c9eeffca3c9bf1158deb9f9d8e91bb8cc0cef6ebecbfdf958128250f3d13b7dc4e50cd330b1c95499c6a6b71a6ba716e45c032589ed61ae099c8464a2a50ca695fe984cb0eaf294c8e2b96691e1b0d96d595387d7be1547a0c571da7b1172cf3a75839856b262640ec73974a5d99a5488ede4f1880d641a07acbc5613cb5d783aaffe86716a4cf0fb632e432416f7896470e4f6f87f3633e3b4bbf6bfaa8f44054d966fae13ada011d710912a2224561d7ee4d336ba082bf0e69bea0d305fa15912fd2a4ed7cf27292f17423149af4d000b43bfead2246e4246493c85d6b0032112ac16a652de04dbae02c1a54e3ab58a4b9428e5caf742ef770123f1476ac0e785c345eba3f8d17eacef4c54dd17767be09d34d37898f6ee9809ddc07c4ba24fe51a86b9a7690723403fcb00ac7979a72e1c48112dca911dbe6cdd3e73b640481169d1077557e8d79033af1dc2f70b791f9a115f15a49102bc95ae01048b3be07c189e038d57274f05f44dd79aebeaf1d2324c54dbddb75c7f0f8190d9b6ed5ac56d1dbd38bc38118f9ec4e77d4615d58c12acbcaf50f19e4df0f904669b2df509b4fe2a31a6135dee7909708b9f3aa2d49ef0f61873be29c0f2122ee1476f32ac3ab6e19c4b6976ef3e1fac3d7df84f9c6d3720d0364338c1a778d9c2d2c879a515a5cfaa91470805148a28680d912facd7facf193a704d6cd8e89644f68f121021da47a73e20df14dbbc07059a43cca642338051b429e8b59d23eeb59a22ae346e7306beaac18aa97c8e0ec2933450fc9fd82345b91368a5a75fff06ce5c6cf269402c53c99dcd9bf60dfa57c14435d719c7fd3ab721c80697225e22c47d5ecdf0f6c2bb13d2b03856484a876f240d0ff01ad984670e54b4555b43491894336f4d53615912bfc0559935f5385781b47395a31cf05f36b3e89b615f7b8096acb415ecba89bf3cda2f2f16e66bd53f7b3af73cf435872cb166b4373a6cf0f08cfe31995d5ca5fe5e367905df533834a36191676516e8b5fb43330c1cf0a08ea9006e67d17a6391ab6c084756cc04a9acaa5cbdad9188e68da673279569208394669159cb76b1f34d435dfbab3f18f901cb3806e7cc645005207915f4bdab12189943a6332f26374f8525aaba4b64aef2f3e4cf0d77608c129aa8209ff34a1e2fb68415be3c2b82dfb774134932d796e9093698fe6374fe567e2302f29629598a0897e955726427f52c8605ec80f8a63493792b5ce65814904395ae63d04a8901c5197be45de6158622338b419561ce8f4a135d6ee296198315517de0649ebc3d4044d9f88c9d34fc509a8e15ace0f6ca2089f746f942c89e9624c77f42152e8523db8b482d6fc8d9929ce7f5e4e68ab6ad1ec6d3c4722b9bd296d43baa8fd91691d1c0803e3ebb18e3e4af0c7aab568a652b21b8fd5309a59036140436d5a4c73269d374aed2c2352fb2120fd3413354c706f49e23aa47c755ff36b8974af6aadad20f229c889d2e55b367f1951511aaedd76c585ac7b660bc6f113528078b057fb0723c0328534388c98c70f3676126573f386a19afdc35deb21910c567cd182d4beacf0c8503371a74ba9b4ab33c21b0c6132eea1c4c505312661555e97f630ac1b6103b857d9de70ba38185af39e76c73baffb22018790ce0a440c599bf8b982cd165800a7182d6b27f2e91de7a02b24d2fcb63c43b273ff41a8abb55c67d6816b230f2635e14d952ea84568fc9d5bb47f4951416db3d02b57344fdf1753ee629c413c34a66ffbb2e1bdc7cab0bff167eadd912c4c133f0db9410c4254fc422818a2f828b4d9884f654bf0b241bb4dd439b110e4e8c0e2a075152ec887a3a472a5d4b87797f3ee666b4d77d31ff6bd2aeec7a6e81df581952a56365085fce0288c9b9852bf167f7f668e60fe36d6e0f53a44824b304331d9380958da38f1c25161f0136faa9fe09561443001f6c76be6de9e28504926958cba2418b063457506b516c910794a1530674b718007a9219043cb9d8cd222804cf9ebefe1d0070ff7a05acd435d6078ca510b1b09941dfd1de267b8bfc7d8bab2ccb528eb6d864d3570b3804d2c6501290776512dff1ac5e78f843d6deb472e845b98458caf43a58e4a01bebc8a31822a519f24d5bf48acbc559e041198f1985082205a9ba23b46a3d833a1b82cb26c9c3e0e6ed35dd9daef704f9e21e00b5d5fa9822bd0252c636ce30bd368ada58d33facf8521e2c41c3b621864f55837e037856d9d0553db643863a180a710bb27095f82e92f464d351598948d76e2af268ace5ec194a7f5dda82479dd5cf39a764e372536aac96cd24997b526fe62c26887f456e9ef3672f8060ad4fefa69a250c5ab452520492169001c9b10a4082ff6deb9a8b60a965111e913b4371bac49daec591446b9af1023e0c299d96ee84d8f7c7e865f2e5ed0d7169f2fa49e15f158d13af616214c527e55c6c8b15c3a7a7692ad2fe5f6fe3f546b29389de3da31b5db06a8ac868389aae1d20c63dcd564cf33bb0fb9b9d8e700ea9a94b59e7c0897f3451b14e3c7f870102110fd02acb07947c2ed38109848128acf085b0f98331160f974896113310d4f02503615592f15528f165dff16a8f4b705e6664abc6b9cf6618d0e3ab7d5f00745b717ebe30085c2eeea6f5ee1500e8b3b8bec03cebc5815a1ec3701bae34f805395dd60ffeda0d22c433117b64ffe24d97688f188eeecabdc2ba10fafdc3fca56d69d0e16d95371bdba22a208906b361bdeb333813d6ecbcbc107744cece1cb29ca8fb51ca38bbb267e247b40fbc387d2e64a1ac6b37a0965dc441f26a6415581541e97867a38a581fe7c58bb02b32063dfcac5922439220f95937b60edd46d9dc393faeccaf0ba9cd4a2994a1e41b7e0894bbe0fe657c88916e60e87664a7dea4276302e448b8381bd09a9cc7f8294d8c872e9a7c43c32a438d311c9b8df729db41b6cab1a5b76aa3c6d5bab384df71ee0ce7d38db19496896e50c8b33d288c67125cab9284d11683d5cec0d2297bd2a1bc92d2ec3541093003004daa0f72f38b1a8c47276d2b88e0fda5f5706b1af0c6f93ed8c92b5c8d69979613a6cbba17ef335e0db6e4053e8932d3538a1d245c1af2264672f4c2a5441851ecf4cea07bbbe2d6d955f40aa0e1d164d88562b146eb09a3f3ebebd53718b2d030ae8a07acff115b21b68fce8308ad0c155a8c701951020975a38e8deda630ce13e231982b2aebbf62b8108bf7823f36119fb36757ba358e13302152e3a5360451da0155c9fff84c0345fe004284df2b669001856eac0865c82ce6d27c067808ade1e2606542ccb15f0a17c4faca777f45b3ed4718176f7e1786ec4d3d74629bdfdc3e12b390416ee9b85c24c80ed84b09ec3bcfe15e1b62e735a4c622fd0914919cefd22aa53f404b88b655735cbcbe6444717d43c2199b14222e1736169a227906c19b7e382dfb11d2eaec292b3360c098c63bda8436368f79598c1da17b8cb5a4b8cd9a91d22d8b4cfc87d69f76b33d10532395bb280a352e07381230378565d7161b23870853537a1158dc3e85d6da56dadb0b52d3199e59ab8089bed941b2cd06174406649a6a607b477855b22f70832205f3074b0e7eb70e61ac1e9ee4c6eca2fc3a020dc0ad215ed1eb7ebafaaba61df20e3cc10df39d8edf4f03814af84b07f2102ea0cfd54d8f2d618d5529ebd05ee7f3ecadc47f015feb0d44765af2a8848568e74060f9d51bbc663e4efb089f2d743a773d1e6df84af24534fcba89ae8f10750ea710f43bff882cf11520350438b8f030ec0246951d4c6b7206df5d5203c8506f0919246c92a92b7aee0bdde4c859840f54ae530cf73f7abf042c99b913fd8b084e0d02f34507fe327ef9d124b338259ab3a09429c8b97179656c927d972940be11c2160883905b4127978be1679b8b6eb4ac07168b5f3da129d077c6f930883ca7b9b6e8d7c80113644008691b458c884625d20663e8665a31de85369adb2ebdcd1556cb1e963c8e767445dedad4a5d78d9ecd7430735a6a6495489421a11ed94f713644ee6d4f4ee76585c906932600c28de680521eff20713cdc703a5b28d40d876b8053b8b92cba96fe8371133cca03af66f9e5618d9ea6ec5cd08c5518eeabb12aec65fd40fbb3b1a7b87270db43fe4ff8309a492408cbbbf6923a597d92739b51292feed5cd66fab2a6c44da38e8c707b972ae6b6744faff3e3e976f54d35c3a31f9d7d2cf045844355132711af4b0da892416c82b8314d3b57871413470e8efb6da99094c65e59b20849b253ec845c92110619f9a6cfa1ccd510a3a750fbed6a2c64f3d7ff63d99496b4e0d3105d84d3cfa9464c66d5d045c8b46bc8eb2b816d459d97a18564124f8aabfe5567d83f919a17971fb7c296d0edcd0618822b1902fbcb628bae0e3d5ef6c912c47ad1de134c88b894413f239a09b7b60d46cfe220c45b158d55ae66628d3a28df4c11c006c9898d405fb4bea36b3d0c2c0a3d9b5a2d40a721fcef176b29dc5ac869843959f168ba7d4709f97e3442e85485736368002cb6c7ad18f297e61bd3a492cc22adc59016bdfef687eb39120dd511db1a1cb8ff66df52f71c695b08a8c7f69d2b95d582937d1869aed7fda4bd33249206dafe150e00f594232e7d44f125500efad69a7892f6cf6ff00e6c400353630fb5b04531b92ade1f15f019efdae71f850a92a96becb142458b005d8d18af359bfd35f4524f2c336e28015df4e8cb78b28b5a1080c3d1b629635bc4dd0c7d446d6a551a50ab58ee647e59a8658f9b9bc222dd2707b394b1b69ab7cb586d54c92253a3d73c7551d88441d8e359975c31378418fef7d31ecf4200584944ff2324e7fc68ed800606bfd6778c043125d2e3af6011092da4c91948ee0267807bd9c619111d23f8b5a7b3e67b355b759783ecc29f5536cd0d747b91087763de961a9a151582f7a83dad5de5f244b0f5fd0f5a062efd70b6c22efeac744fd3a90ba15c856cf03c8dcc17007ba15ad4fba7a43651041f141d58e4fa1ed3b84aadfbf18d8f080161f15c9efcdc35b03222a5ae26bc23a889254b209e9752e47cb9a0479bb694e4f1a9214dac04e80ac112d12bbd10d9bc3bab61a5e88775342153e9273b84462b1849a2246adcf231b927a3450d6a3dad8aff40ef59ea467a716e26f3ff80fc53731237666d3439105d37c4a53c57cd84aadc90c3dc5504b683f6fbe8cc3906571b4c2b952a455d564c19af8d265d42bf906b9d46fc1729613160234bbc50465681c92793266b57ea3d131b0d05bd130bb1781782add9990e08f758c19939f4b3cf250e1736e59b2b07dd2af953dbcf2aff26db22313439b8a11653e235e06eb1becf72d3d16a328620d8a339aefb929f2fb4c93bd7d077f6a23daaf8e2f621a42fab2a29073ce05df22e29f5c84afd0c025d3020d27a198a112884071cebdcfc2d8318fadbdad4983745873a557b0321bcb7383901ef6e078d71efad65a1231d1c08129079f2d97029f8050dda7ceb689c663ed2201cafe0b46a9010d630996fcd2ae6b56b407a1c615b2fd2529a40609bc0aa048df2320b44e13f552aa64991c3090d8f8d2b71b5df7c8a8925598903d5af72283cfaa2d3efad6a3e2c5dd1ea289293189a509e3940a60ee8de0e0f43400eef90037539e0ce65cd7e50e386b053fa8db9db67c79939de77f6ce40202c56444ca16f0f4f97dc22403fa7e51c4d76a06735a4da167084125e3aa585451b2b2e20590001606352f8d10be680998f51f28299078473ef399233e5f3bea9f32502891f892977eaab311b3edb016200f774a39246bb45e8e9623678024e7c0e2a569ef1b65ed66f3fb685c33e1d781b5adf60690c890b3f8e48f470e063238cfe4e3ca932b7a83f906ea1ef1cb94ecc75e96d3f906e5adf65e92f0a9110855a0ea8e8c76f6d8082b73b89fc841ff4fb84c4ffdba3033d84a841fb80892ad661ff1c0f2d1fe9ef6043dc9c16a4721128c01fe78c26ab0d672641eaaacb24379ca94cfa0a02b72a2b407b4068822942e7b3c34f3a55b033b1bd118c9f98a39c11516a455f7487466b8663b5f37e3814c3934297f00ff43f620b837b4a98d03dd9e90cf0b35d944ae887d259c81af86fd0313186daa59859d4afe9a8d0ac7b57e3a49325ec7f6d9fad7ca555066b8e41579ac0baeb139255aec8c3b9c79e933dca824729bb83210eaab9420843cee1650320c7542290c2f0931098ae86ca864c002f8cb2bfc60c721fc6356455b6aa9f0b038519088ed4cc158f61133c0e3c9a31636c188806807098e21b4526e68e7e6f7570b9731eac1386829332b2e598e58b2d2445460702d7f21463ac026c3ddef92e0d7c236322eda9ea015a2fb06e16f4d1baa828a68bc9c7e6e873638ffc442084036320cd1c42a4806f94b024ff4eb67dff0acfed085cbdbe3f748b43eae9c4a1d8bc4d9ba7bf85b71c8bd169ed002a3466cff33f430792fc05d84702bf26df77c6a26bc9cb6e58b4de1c1c071c4850d837c173dbda0e2c62682d5062406cbe18ac397243c76da40dce2e036ffbfb83b30302b68b11209872dc75eac7c7d950cc3421bd7abb9e8b19032f0979aa889a703f52cd1c7908171ec50cb51b81dff3a4e8546daadc1c2229e823172de89d80f119f211d33e6499d1319d4207fd164e9abb4da04adb0160848d223a93359722d1f4acd8664965386c3e0a8e1349ebdfd5959ae25164d3bf15caf50bd11a93e090f80b54adfafc2036dd056c883160bff0b8023aca6e8e165c49b0aefd36086e97ef469c286ee45b11b104af5d1db4190392e557b7575073c672b97fc7400881d0940431a10e164e00a8a1d5fe1b41e0e278e9d436e7f5146a047871c0d34c6c3078a6c8f2a69f36857e1873095a4fac6aadb12685fb9fc0ef79cd819722f19895465434f3b401163467db1e0b6dddf4d06cd5e79cf4ca4d9409967b8e64ab12212d29fa5a1f88d623928cc98d28e6062856f643e732a94c1afd9289cd5f6ec5953e9230882f06488412e40479125f396826a13fdb01c38acc580e5e929328414d13222f3af2e3e34c4c51265411573849a865e88eb1af386a343b3fa8d5384ee38b4013beb462822108d87008bbd5d75384456411db3fe410ea92162d3cc11f46d5381c56b788352af83a5160c27b7b106542246e11a26432602714d1fe01f191bb2f54ae1309582f2481791077a246e94165cc733eea24b4e1de4ed412b6a3a625bdaf0fc49daf90b5ca18b90c405da020868e99b64cffd983ee11c0a7cac4853778b69e21a73341e32610b5b56221a0e12c3be4b0c7926aada337321980e86d13fb33a992a1c4bc89e38b24892b3f1b019b358cafca4d2374ff8130cc6cc6a68aac7b3e1b06266e80265c4513cad126564f4c782e3af7d44064d6d75035bd5e361480fcf7a63d0203e9197736fc431c27cc61ebfacc20a251f4f95f33dfe64e889b6bb789bee8e5f30909de52aa2e88bd6028e5b84add62b7e0f82627e556c6a6f8e2b8408d5430e4681d9cfdf79402a0feaaf720c074268b7c384a03b4fabbdb1afd3a1390aae3f37e88214c25a5bbede631581365f6c6b5802591e84449f05cb5b5ab7f0df4494ee4e7fc6b70ce5ae59d09b38c30d07159683515f5817e7fc12d68a4c8186b7e3fb5a6e61d6b2183523d7a1d08f9105d6fbac34dd403f50a5845ed0c3b343469c0ab23c00f80a0f458d51b67333afca2b0efada0eadcf77d3f26889b61d0fe514626a507e741643198854fd6560054082238dd1d17b029cc0b55d50a50cd585b7dac431785503207873db0ba66cdc01dc4ea3dab5acaaf0625ca8d41417e5470eceb397fa3d17a506db22700ec07eb0da3157e01f092c38127cead19a2bf0937f6a6df241c74e01e64e21f360550403a5da87515d46b9e4bec51a0ac8b7335fc9b45c6dbcf90eea6970ccf5f8054a10ab76f9b88f54087e7967cdfd29e0c85f30068549d00b8175c8acd6145731ab7808b571fa80e40eff0ca1d20772289ae4804764b2ed04159a6e46fd34edf28cbb60af8a346a0b3bcc826a2621fc5a60e5e8eb57615b1b204178dfc60197685d997da6a1e80d3fd6d768934bcd7f464669e585938ca68d64dea0e2b6be8ff2699738631aaa802c272e5f652321cd9e287cbd86a96179526876659a1a3ec714692c7d553969d8585cc2671fc5c6a1233f142f50c5bbda6704b51b53bb9c91c61aec6bc6f2609803ea48a169c4d7b711e89b415f3c2cffaed0c55e660732567c238c677406263bacd47722f7792544cdb95b1b977b34f9715e60162d0d87fc3bcf67df51a7c1264d593bc7cd62eff9b4a1856a5a7976b1571397574185f33abefca9ed6ac03537fadb5f2d74d7414e29a0e01ec52058bd7964ebd642ece8e38d71a539097c020ccea2b4464341a12fb250143e0a638028651e0af30f43b4d56668184cae3bcb2fe7c7f4f8b262c067b98418ffbee00ec3a8fb0f58a3a8955e29656c7ef720998db9d2fa09b3de71e944a6f32b3330f83259bc1f3d746147a5bfa19a638e95e81844fb09bcca391fe385936c360b8030a807a1e9697f9245a3ad76dad85c10ff091fd1a950d5f705f9b708f6b7c4086c8ca096c832ec94c03616d6e5f2a029103165f37333507fa9b5ff829efd2b9e62fb826fae7d5d71e967659fca3e7f691d570a2a0052243452fdd0ce097ed2dc83fd553eef79b67aa19b8bccd908787a0ad69f4049028cd208329b169d4b48f4b098879265b3a672297a5b13e6e7cac89b1e5986f1f831b693b7aa033fcc1ce59066890059d2af5ecd11b4317c895c6d9ce752176cf6413a4e2903912ae044418a309971e809e6c09439354da8a29121769f64f9c7384b55ca4c6bc691c3e7093e1cc1623a43e2a46dd172f95fee511db2d2fc84f7e3572826d5187cb7121a42df2f142e8f07d76f7b7a17f2297990f7701542374e00ef67aeea3294d0293adb1ad83a898de1ddc86d2c163c02f571b6d580d052161070764609bca58a65ba76386a9c769a18e4dd0092bfd375149f785b4f196a4b36161eeb85d5aec93a204479b072c93e436e4bba3195f694d4141fd10a2ded3f0b5dc1127e4738b193161da1f02bc4db056cc0268c420d67289a62f68e882c1478706b748e130465247aa0b359fd055e61e5ab5fe8b24d5fc1b457ae803c890e778cc0e8e2eddd2954298480cda781e82d1e54fcb15cf5b6887f36ec4bb39773258c75b0b4da199c2f0dbea3ca99a39458e80f832a8d74b886e4ad25fa5f61f8ada19df7786677593b7ddd6b19c40e44063c19030253abe9ca6535407f569c08557abd1350c5137db3f1c7c38394f49065f317c12a073b6e9bcc5b484d8856bec08a4ddc7b005ce3ae1c4f78b000c68aeeb1d18af7cdefa031bf7faf5050d4691350e8430c9003195b165713fcc8fda707d696eab22cb044036ff0004f9fe18bd2ba0f2a1679d60a49ca5a1b01e37e248654dc4df0b2286e0c424b90457dd256205c296b5243c10686b506c6c456c5df704844ed1bfdbfa45e6da646a04c0624a41180c25d8b5309ebd39b03e48d1af3a7d19318e30a1486f2663ec0af6ce7280c3b26685188285bb52dd243e3a57249d849010e1aa109a1e0f401a03cf679f52d5051e908ac08ff48c6927180ba09d47bb8df74271e1a6c5c4476006afb0b0da1838adf203f696f4e47ceea324e5bcaa35fb4eaad8bf03135064ca38f7debf6ead8768dc442e7d188040fa316b380d4ac204f15bb8217e2b1cb73e9bff5958aed53b3cb7eeec0287a708c08028070c1c87ef6ad544d66fed881da23d04103e35bb21c6f12922b0a0ccf680408e9458681ac2fdf7b8ba7e7c8868236bd6558e01786a46fc153133af0c34b548e25032a8e3a62d34b3777879002b1d0ae05a3e41b24444e788ab82b3700be9c542da8cb31091f75b389025903807b435958ebc102a48bcc741ae972098044b4bb8e24cc889cf9b1e760a2337bbd59181431bd1727f9259cf86b39ec5ea062177211b7bc94ed3a67e53653272525aa8fae66d1c2dd39c4c9ffd2d5e4345d00378276e80c3a5daa4d538467a9df95324a669b9a09899f55ad30cfdf1106c2ed4f1d02c9253c290f2461ecc9e87682b4951529172317313a4784151200ba4626a8d43ea3e3c8f08422b88d0707e70e146ebada575ea958edeb5728786d62a4e6032196910c869be28327654230bb71efe0af79709e50b1d2067d8cad42de94d108da355e2534a63461c8a9c61604421574f35d1ca314c86064ecf46515c8d6865370cd566117abdbc915a527ffc0491c2f6c176a231873a80cac9100fee0180b06030a960535810545f4685c15f0f4bcb3800d55500e490e608fd517e54f1a41f893048460f7d548f483f0427b6fffcb871bd58f083b602b7a7494226cea5a1ab354368c4897bcac7b88f58be38497c82db9b1d93713841e7aa8e73dde1fee7f9c26a7c933ce7a2eb27b28cc8545904029796c87174abbfb141ad6a3bdcace19a1c9deb3d99152bbf40cc7870a19cb9d6bfb46189cdf6bfe3d2e1a58c1f52a81e5e9c81f63f0dd02b935a77640e9df09088db85d54d10780d89a60e2339d44a5bbb09f28bb60225b517462c7a311c9d031ec28b0158ecb7ef26f900b47e2dc6a231845be00af0e6924211a9bb59cb52ba23a8e287de1dbda08b0512cb426c49d2a7d841f47c83df20f24516672cfdd6b92c1d52a5f138850378b354dc0609fed98f2e0457d8619006cef528952431dce4fd5be8a0b7db27c12a3aa302382cc390ab9665a898b9398acff823e09fb4f0eba4d0fae1af51018b15ae90e9e6295a52eedac22b6d9ce0ada48d3ca159f10ab590e2a3f442cbfe54dc3950788d3d0902e230a52611bb2cdbc70d927ebfabad9fc348e8afc3c84384b24404bc042f74690b16b992e71d667153cac471c72ceb1a76be90de09934e083639b584065cfc024af1ad615c40d619a7032ee93f588bc2b951c6019761daa4c6e0369ba7ad6100fde2a2001070906be43076a3b6bee9e30d1ab047d7e6959f273ad2d0bdfafa4534e64ba91bc3b29933d00b1d665bd877dc80dee28bffd2dade7b6f29a59429c9143806f705fe0591e40348882837becf1037c86e5419818120840d4c77b4844d25b9dd1fb79ba641fba474f0dadd1dc38322288106545442c06926bd759f000ab7bbbb8b60b1c2fd2a01ee67a38f275c638502b8fd35882b6ebf66493e4588dc862288276ef715d5d6fa3d13536bfd010a0e309660c1fce084167049582f400041a5d0040a061044707881e4870302891b5c9ae84901082784909c68bd00628a15b42441b90021041d5868d02201d1041d569058794b25f2c33eb16221821a3242925a21828447b46259224e72d894001a1129420eda133a22225aa0322774b615f080ad863419e070c5aac48c801216890e7589210c0738502484ae2a56306990aa506e904be45025a02036013465f08414f8133f53065d04a9b5564e052e80b7d65a2b1343fed55a8390c1ad2db0a94f2ad12454962b225a92fcb99f7d02acec8cacb16f9474523ab51c2c8ccb3e2cc02205f6058e1636dbc1b3ef830d9be52c892be2a30890e934ffb6c8a5da9b4c42a084e0c986b09a133be89083fbfd434a7d74a8e2d22036f3b21cc9e3525343816d21c2155a643fb65ef6d1a10b8c0896da80c46a41b426ac6c410f3d0cb1f1b28f901f341e4b2ffb0809828896cbf0954c840f1f227eec604104cef5f383939e1ca41040c3ffa58c96ee5eff9c0fe3fd0d8dc8606c781f8c7c86f1672645ce92aac6d96ae11159ffecba6f3bc9663f77cdcdccb5b9bb1d3ec3ede7eed3e4fb77b4d3a1ddeac5a64af85b24feec68f0cb77f6faa5cbe87d6c222b423e84b08b37cba447bb7a33dc7926c1fa920b9fd4f057b06ddd3a17993f97be991d34f8fad3e0db0f6bdfef39fad65c4c106b7a1c321af1fda78c9ed1ebf79c87890f6f7c124c746844c6a520d65fb60f710eff22f46707338bc4f7ae08ed607ac2fb597e861ca9b09c67454eb02c7bc5fe71085bdb042f8410da20ac3fdc5ce82b3dcb311cbb222e2cdc02073e495450fa627aaeac355766b54f302e474ce544f2a4b807282a52b8990fab49638e8947b5622a525424d194b449925857be922557be8c26adda24935cd28ad473e51320a4b423218170724a3a2377aaaeece15a7dca48296ea5e44a8e45e269932472e5cfae2fec7ac61895cf10251e67d0900b8e1497c9fd48545c7cb8470aea534b90ffcb6d11bab2eb640f4e25e145af2b83d1d17969bfe8509f3e8b23d427d8824ba21279ae0c48aefcd4950f434d62e373aa6e75e5cf1c6be33ee2bbca69fce5732ba7891e90b7a80004fb71249e2b3fc6047c2205714c8ed3b08d555df9a4568ad4e2b99284041f3706e7ca2f46e7ca18d4952421559f78e5fd5b5a4e5382d18b5e4e683f3e0cf6a35782232558f1d86d0bd0950f4374afb2f7b5fc5cc9a93895d38c3c1818441f3fbec86b69b94cec481cc72191cf0149e1922cb9925bb5ae7cfeb89f2b9f3f0eca84a4966c394d7cf9a49ce8c1c0105ff422af044ecaf148382e23bff2dc2fea64aed53e7197e326f40311396356a894ca75c0d30327481cc6e86540d990d3b08d779990cb64da9039e77cd869288d47fb6c68761a9194913ef135d226b9693c7d620da50dd17858afa95c463ea79a1dc76a138c0568e07abc0cc865e4f3b0919caa4d726ad96b4bfaf49184a6a6adfaf4d2fa813212f261e8cad77ab46c9284faf4712a52167df21c5cb9f371aa2b5f53554df5654b8688b486729a6a233f03f24ce5346c6344e309ca5a9eadbec883f5a173a5b6d595fd666030b98cfc1ca7a99e14b2fd5453f5495ee9f382d495af0169529ae6c2d192f4897d78845c293f6d75a5d6ba52fbb9528372a5d673e5d379fa6a52514844399191c89551e74a8fe9292589c10f74ef20d39c3edfe767b3fbdcfbdacbd133ba0b902174e71e3d04b1502c232f60ffbdea8a85c1353343e13e4e39a7ecc186b6dcf4e9018727953be794d17296e4038322c0e0c9fdecc71b64dc27a9c1cf606ec877fad5b5b9d5cfa41699051b03a00fb71ba519f2bdbb186f946477b767a3679779175f76d12bdd2c6a33e358afa7b2e38fa5cb9b0b03b8d373ec61273ffb20ec3e18b719cdddd42ed3e971e92b9c113d0b039b037ebb13768a9d62a7d829768a9d62a7d829768a9d62a7d82993893d823dc2a88a1d42bdac148b04fb91ec116c9451151bc546b1519cd828360a0c0e10c6ae59b4db98f705cddaca32c8a1c819698531ff1c47b230e2944ca6ff18ced942efd34655ac0baa8caab4b4b4b4c000c20e7dce52ba941e5972dcddd99da5a4ee524ae9d5dd99ddd9dd3577cfa4f0677fd2b57649d9adabdd1633c7c487d78d9663b8bb4b0959524063c4202d020f7ef4e087949107b28994b1073236f9914d66f99169b289b6450d34711b348f99d00f1d020acab9fd798b06b966a7b09431caaaa9899456a6f7056f590568b4e3a6b51658c164ba308a65f372e409a2413428d364ab564ddbe2cf0b2f6c2eb29a96a97090c2a40708d2408809caa587079dcb3fb8dcb34312b76b0093237afe5ad80078f9610f963fc2c4e8cc8491cb8cb598092297817a94b81f073161c5fd388be890adcbecc03dd8af421da1956a09eb090096a0e2e30325977d7cd0c49dd1f45eb7a301ef0e588527e34881f68ac8df72b0f10447e0cb18d9bb49a589956a15e2c0326b3527bbb0fa55ee1982aaa0e6f9719d49eb45ebc73d435005839aa77f26adb30e41150c6a1e39a9a4b3fbb86708aa82e6c7af0e4155942e87fc5950cddd1c7b5850ddddcddd5c45976a099614434b7812a0c48f14523c21f574104bf1518158215c875cdae2548d899fe32a136ccee73b7ab9692d85fd3ac7db5db469cf3bb05fe74020a894d5bc9721363ecc6c1643197c20cd8dcd6ef4d2838dded7421a48e7b449bea86b9d36b18e3072bf0eea13b38e20d2437d625611496e53b9d26b210c5bee2da569d8a6b3b8f2abfc9eca921067c69a462fe2362d9b1db15ef17038f7789c8b161358513a88fbff4c1d74e52711741b70d92789212efd8a83bd3a95e3341068e6a773feb23a47f33edb3d99f7cdc8ff4c6de44a08e4fdd5391d0e8e7143df9d5a283ae7a6dc7f66fe39ce6f4ad77b600b928c4b5feb5cc951200e6601babfd6f5d0febab68e061e369aa669da43da7d25c0b954fb7eadb1ccfb3679292788c746c8f509d287a192ca8bc28743f23ba7befc2089957432207c1df9e31d6bd3c7216977587758774bda545215b6b0ee53645c7a29a2e3534a6b866159c5bc1e9847af8b561a3d5523e491c59723b1848359902f6bd7a35e577dbeb3d65abbcbfbea9cb5ce6f856f93bc997074a3c762028acb9b8dd18df1868c4bb606f6b3d76d5f209b9f75edeeda1ffd58a594f12b918b80cb5138218bda7d3a90f030cb15967d90e85c1f243917be021a6e37b1934cb0f06514ecf5bc61e07a3964371bb555f6b35dbd0b6ef539ea20410863f47ee6e31e0803fbd52be32422631b8e4840694991237344163ad0d1810a9b693a299d198e5db9ec73448f2a6c0a52aab02e3ef0c16a526048ecf64410ac0a3e3461c48e0a8cc88962592efba8b4d842450416d8ebb28fca0a2558ecb28faa6552b1be54c4cffd7e466e91c518678dd1b386588cf2090b4b377a8cee750854cee81ee710dcdddda7cf4be36d4e9692e7cb8f33c638658cd13d466f0cc6e859f4185d13f58b1c32b619904f94ee9ca316f936a7d4643684c56b4e592fba9285853fe59cb2d37e64b669bcb9738c7506f9a59829e59c730679e7943fa79c536e1e277655ecaa34ba8b341a9d46ef39a594524e59e78457a551c239e58552b329008199994b52426f9fdef1bcd2a7e672def851c3649cd97623218dac6da2915d19d9159616927db1c2c2cc2d24ef7a74af85f4e2bab4b05c49d25cb61bf94e7a713d05935685bb7bee234e83e12577f717cd9d2ab1f0e58d0d63575a7e24099a90a009845a40a805845a504ab9a094724129e5a2499338251667cf9cb14762b3024d68133ac50ccb45eb552994d05f3699ef229b10b1f0659315ee898c4b1f9c742503315c58541b02fbc2858d449b569150e537d08383827542cde04adb4234b2975da92b2c9ae93b1840178e0e300d5cb94c3f0ab82add9e0efce118433676129031811a76bba92b2ef17a8c8ba9198e1a0005ddb887a38536f58f9890620cc7b27d9b3a966d6686c5855fb87cf1752bb0b31418b6c849db0d74c1e11cc7fc385c361b9f820bac7f578d59b61bbbb202e43cdcb926d868a1d0cd46fc5c6d149704bb68c101df037d6221f4642ee4627b20ab4f2e171e61c285a30b1ffec027303bf2e3664b6e76648a9bbdd6a7b79714351ae05223395cfa73bba1f32bd3b04decd300ae9cc10fa457b92d7433389560dff2d0e10951aeb0a2c8931358e14d72a20cc10401375f3feb4a4eb37926affe57ef8684fd6aeefb774d9f4a26d204faf47d0d53e9495ccc4b1036b6a9be7f5fff4284bd3cc6300ccbba529bb0dfba1edb8f44a28c061e36db6bdd7775a2df36afc7f65727daba2cdbb6abd33cec65f4b7092bb509f36aabc085f57e6e492232f61e6c6c130c95b1fb74cd1ae05cf67102c82dc0659f2440b7f6a908f6fe5ad4e8261f6ab3ab0f6bbd2952036773440777e35f7773615e39ebedf89dfcab93b77fd239e7c729a5bcb4a30d4e76266bf93c6af0dcdeddbde38bfe9f8c2b9f07c7901e8c8d075c7707c00300001068914814809b653cbfab5cd9c9ed463ec31cfcfd371e70dbab72b3d8dccc7d353169bd24e6360a5fcda2286e0e83005ceaed0840b6cdb07707149af1770704c2a08cb44d40a7a6519a65d0bba001abd46d86df6bbb219ff246019a790f3ff3c79e7a1f8f76e2625d8efa7caf2e87ec0b814bbd1d10b814c6f6280a415f11cc1bf25a42364f6029c03426ae61834fd200573e64d52800d3d424e0cadfa0b035a03771ecc75df9f283782e6b770cc35c83879c2b7f04d047d3c4ec3074e5262554f1b073a95cf9709a6ae4afe01b0566109edb37905e4572fed966859691dff3e195bf62042b93f0c16d1fcb3e4f38b9f3bf19e6ed8773358a317bd8c595df3caef655d68fdb8df9b00b9cfbd560822b9fbf1aaee67db07ef0aff7edc6fcac4a952bc33bc8c56a97837a3037e0e581c1c621631d108e7c60f96538ec20902ce3748c78084ab9dc4f80829cbca0845b2dd4ac305373b94b709b41d2eaa783bbf065c481e54222c169dcfb4050dfa3ac9e83e07e1eb30c7f23b81f7fdbdb1fe50ffff93fe2435e007fa48113c01fbb2f7acc07e0871b0d786de20d789b86f8feb2ba0c3ce232d2085a651ca44879f264c99224498c186181e2e3c4902b9fbf7657f9818c4b0f33d127fa391a59db7d3c7638b79783bf191bb2fff2597e71be3c1d1a3f7bf7d18757c43e5edd77c5177539e4777f5d1e86c58b7e845786d72ec70e1a6e7c1ddacdd1cfa28ec2d8a8da14fdd6b197833f7ebbc0d775d1af6e1ebc74b3d194fef65dddd77fb9c07fc9cfa2f7f5431deee5e067a9b197e38b0f67b8adc36df433cc8de718f34c876cf4ecee33620dcea31b42e1bed1f0867176cefd1bb041168b51153b8575810d1a55c182db42b12eb053d8292c11ec14168a25c2ea9d0197bf035c96b9b0ecbf4be4b1bb4c562b66ad7bef32cc02fc9ed238bdcb3db63d193e72707abcbda18eec782463be2e266aadb57e35d51905e418a00130870dd0ffc55001c8e5faebfbb2f7e9a831d51f587e1a2f439606e401733aba317b3378068f186ab5d699b14e852decf5145e32c85a63b3fa31d4effaf5eb021cc0513093ee2744410671cfe2d618bc7ed7faf5237cf6bea8c421cb9653f4dd4b12ec176f658f39467d39822d92536d5c462ba04f2bb4893f0613ff54feb93ec47ef4e1c7900166818b50ea719b8af8c72ee76dbc7940d75ee0f384108c262a14f11285aeaf0956ae902763e1c142161e602c626767676767676767676767676767676767676767676767676767676767676767676767c787f8f991710942202ab7df873a7ae7b48f180481dc95dc7ed9d373093472c5ebf2865715c1d49c35e79aa11fcb66d0a2a67943ad8a4080615aabb716188806bc34e06da14d5d33d2b61b19e20ad72c2d25d24603dee8125d5cbca14b15710d0ba5209015f66b179f15d34401f8fad3401d2434e438dccf38ca793ce52a5ff1d329a3d7d4d4d4d4d4d430c3c83416124c81c0d6d4d4d45420db415c0bfd900967ca542a954aa5baa6a6a66685a4bde0a6d050e3748e909050a75ad5abee6956b7f8654ca552a9540a042cc4422f52d060c048555dd91e8ef52dd34f0b020d551c9bc3e93c8a6726050453a9144c090d354ee7e8cca062abd56ab55adedd40a9542a954aa55e6054d0a28de3c01c863c178542a15028aed55a8e7b20b8823d90055bf00702c146a15028140a42a0570100da8c89b39555ab7d136aa606b65aad56eb51d7434d94444594a302a0592bec6bdd32dd19e71f06ea56e5388f7a9ef45a9e535feb34d7b196e3fe4da6999919d7f51c8eb183e7d40b14e1907555d8c2565b85b76e905974778fdea2c2c29f974be9312b42ac08319f4b73658819b18f1df61c7327e9cef9991096db24f21982916b1bb68b440f451e738cf995dbbc8fb39ae759378136f99b38ae46fd61e37fcceafa729f34981bf6d2b797de2814877acee81db3f83ab89b18a3f434b8456c1a1ff46d781bea1d91ef9d3ff46a9ba27c1ddc9d2fa79411bbc1ea90654341babba11051f65982e40c0d0d3573b70e6f9618502a82750642104249d2af69c1df03ee84c8f56777772992cef4c91f9aa0a6e6460376ce7e137c97734e034439df67bb9c73b6f4da2b12dfbd18af461cc9f20e720cb657d8affab8f8db6f91cb83610f86becd111960d3e7ae7a5fe97166b867afbf7f0d3877868ae37aa9fb080df7dd7d50a8f3e9f12efbf80cb932ea0b7e4d423ed3ecaccb7855ab61e5352081dca28fc7ad41f5d5a07363ba041b006fcb8134fc22ec325458f8e4c687397d8250e8ba57b3b07cd9728c1e16d6232ce1238921444164f5847a1fdc584a64719985e4e7d65c662961e4b252ab5b80cbac22436e144256d69bd95e88581f767ee571fdb4a9eea0f7aa372f32b07ceb853dc4300f0e69533fcf0b11cb32c49eb88592213cbd82cb3e370012858f164771d9474992abc4081cbd24613bc6f85da94dd775714b8bf3e53c922d5d8f9627b1b0b43c935ade5a966f69f17ab4bc772c5e4bc7dc22bfc5b32b8673fffa5ccaaeebbaaeecb7ebb3cd03be3d773ab81f89362048458985377a6dda5e90b0ad62e92c888631c60845f682048410d239e9f47a4cafdb3b42870d636c27d90b9297232c63ee43b6471d5c9b7cb489ff6565fb3f48e5e248c82463ffc17db031cbb8f435907d96e29a8ca422faadeb24dda3a44d70f58daa161bd244db4d7cd17623a2d77643afad06c31b6327a9df28972b52ae3cf57ac531e47f6f52524a690dbe9b0753bffe25ca44bf19b176b4aaacab6a90d5a8ebbd4675f0422316eb48a3ff2ce416d597d159ede0854152245fc8174ab7692fc3471d4bb7d2c900af49e260af57a311e98e7456149ad824819520ecd72809b449dacebe0d6f63ff45fa4ddc6e6aad32da3e0d34d86bd3be5e6a3b1fb517402b1793b5767926ef4b375828010b57b4fb4cab3e5d2faa2fc39d5932449304fac4ec411da7e94e22a5903e0d8110c28717ec607061b117fde821aa42213ada853a45f48a33390dcc01937fc9af50671bc27603b58b92ec4509cbf2244695f58fd15f0525cd62cf25aad1a71ba514fb09d0af4129a54f3f66ebba1795edc76aad15ebaeaec45b26dab6abcbb06ec3bacdd3baebd234ecca2a56af4a5997f665af6dcfbf75a5365daf75dfa6ebabd3883c93cb5c3ff290b0713481ebbaaeeb495ccca8eb5e8cb0f1356d7b51d743341a899e6f26faadd3bad18b4422d16bdd487b912612699b56babc1cdc5a12059218634cc246588a26809f753db2d7bacfb2ac83de573be30eca8d1f57504a5983efcb11db7c2f140a859228160ad52cc85a25596533ccc2065728d47cd8737d9497077b56ab4a39f873bb81b06705678cb00e594bfaf4d327faf161507c0214b34d835eab4f166539c2b220cb4296758b8a3ab6a2ae8e8140a02b3d272dc86a537c185c58f928d68d90ddb1c11229238c52ca28a594524a295f4a29a594f237958d2f656441c61e83249265c4ea32956be4d2aeed26fb6bbb710ca39c6570bba9b5668f751ce83c30da701461e15fbd69da76d3dd35f8560fa63f078c2103dbcde55980b7ed067a37d8f8429ff88536c50e7b199e75d7d7380dc61d6b568ab4d0343eaad8686fc3db681fbfa64fd856832f06b5ff3c703fec75705886410cf3664c264d0135c32a7683fd2c8e8c031cbbb05fcd8db76fac0f3b1999d7428d5f849d9ef470b023cc171dec679db7c8c4c63611c1f5697efcebad5f735e33e288717651ced95d75d63a699c317a560c71f8107a1cc7f0df8cd0e07e88824cc6b4ec8611421e64dc34d1da0048675acb6c1b1136bec7e89a111bfb47846d2b9d9eec68a188df922753eef85198c00584cd31a243b7a287ca659f24aa99cb3e3580121fba7b1fc7299b399301deaf063a0d0358267e8c31be6f46ac7fafd0a61958d30ab2fa9aed9328e37b89ba4ff417079d37a8146ed705b1746a06000820007315002020100c0804227140208b535d157e14000d78923c74549cca8349920439885188188308010010030c10304363322500f82043d765e8920cba2c639764d855197421f3ae64d6b52cc3d3a58cba90597740fff714deb8ab2a2e935dc8a82b997749665dc9b86b9975a18c5d91a9cb32ea9a0c5d7e32bd2ec87c17024b07f48f85033adc28146b1d6de489383c88c993bb80b27c4d2ce70504171a77cee98380b0e67af1c9f5325e3f1ae49c52d542725fe0eff8ab5ab60e8166cf5c3a40b119a552ded9f65ea2d0f6628325ce62f6405307451ff7c447d5de0caccd649849f1a41c557bd23ed14670cae9064af6e8cec6250fa488e7195144186b6e29dba106a1cd4a5d44e48d68668affb2dd1fb036643e12f430d9ae4544d9189993de02ee82227b9c1b18ce1cea5a6625da8f95d6fcd7a0c13c15b5addb89481bb429ced2cc4d848b0677a7d0fc1235c070415c58d00860baf7db2614e597bf15f1de5958b142c15d8adc8e4aa3146a0956f2c4e9cffdcd8d4ef693e3a4b1d8072337681d1997569404c94574ad9c7e48110463a34e9ac4e590fdf17e85d2304b5586720f3c62257c6f07afc8cc995ec592d052929d6d7b28941a6a7f613fbfbc5f7c57631f9de13c8a23ede9bf13ff578742fa4a1ebe5ebb18531b0e6791e04c4f7d3cdc18e565498e2e06adc75bb372b1d72c7be1564fb4c3fb27e72523fa7f39aa78cac8caecfa5f6db863eadcd68215b22fa7122663fa637b4442c4bceeff10f82375d0ac8d2eb18ec7d127d1a55a523eb5a3c9b3e6d1d1f4166f508953c09298cd65825c56e7e9e6cc3de5ad2de2effd1db9ed7c18ce099826117aa2f39ac7c33ee20c876689c1304e17ea169ea650b9b9fc45d35fae3d82407a7ff03414819c117db6f23febbd7041135761bb74c3d41841a0650aba9a7d226007468876388ae8bee26c55e0683df9025706c4ac0481c747992adab0a5c6cac5cce733d9e82616f3cc7c3d8fabec8ee3e6355b95686de5b369ad759a6e2aeb3dd5c54217e6ff8f8ecc44cc1ae82f1728469bb26365225eb556f4b6d60150e12378856a6895936ca9f88e8360ca442c43c1cb065b569b49b8f9a948e2a0816de22d79811b156d2f7bfa6b5f61a838e331a9c0924c6e50aab6390704d1cdca06b6857a2def07b08d51f4793322c60f2b000165d195655c6504eba71b6e10d6ba01b2e37178a44478b4a448dc8eb5c1e758f87c8b0ef750c8b06e3b9f20fe0bd73b16405a6da4916343d3c729aac7822929cb0cc459eb6923be3f45664f456e19824bbe4bb5d18305b4f7ace884f8660b37d53eb577be91e8d304ae91ba4f906834bf4f4a536a5b780d0657daec3704a692c7fb6f9afa927ec05af25346e5bf450377cb37a391e5c02d4c0ce251b2c87a76e484188b1697e017ec9bb97f6e57d56f157eebef3056512d455687d484391902f1b929234cb453617ca2dfe24a5760a51a01b4e204885cfebace24f7d99a008816f12c05e8631f700c359b2a1e1a087a652ba6378d9fc0866e732d67408c80837dae638214de6c8ec5ff914be5e400d693b84391ad59c8d2ec3283ad0df0009d8d8a2ee51fd79589081a7ef782aa012785e96f2b5a0881aa77b68505774046c92ae5bedd43b1d204949ef21199b6234b16c359546bf72b6d18a40f28ef90878ea449f2bd1d87ba40c3630edad4ae36b1ac69792cba883b513bec4b6bdb9c708061fd1a1c5fec699bc193b62cfb99eeca7d96399a046fc0b9b2064452d59c50898564a7ab03ecc0da9c1f21dd4c6debf604990d51ca90f5f460ced2d98338f3390a777c441187b98f84b10f80b4be5c10c92439d22222b49a03b8e60ba10e0c13fa95b9223180c63e2aa122de0cf82c46b7dfecae4890eabe21fb624083dc5a68430b1facc00eea2eacb0c26fe76a32835791f4cb37cc0a9c9ac332c105766abbed9aaecbffde61d3435081f478f8ac56493eecc460c803a0061f52109730e6ea589c731d27589763be69afa2e384cf4554f8ed9b1dab874006a9d8b48be8091ce6c3ca001ef9bb431d59c4b4b4befaebf8d2c0c6a63126fc02a6f9436f0cc4b1f02c7fa292f1e69f2abe6917fa9565885fc1506e6a9038aeb4d9021136894a9be15a3b0f088a4c6d4a559cbc3de8199894ce4d5d14922751623f5224a58b27712a94c2b8c9a44a748c28198e2e1e6fcbdc649368f48ed6360628e86170583c0ef6d4803492f5de2481095e586c2f23a56660dd911ca0a39ebd461d012ac2c9a4a26516de176da08db514d7c5d1f15101cbe2b5319a8997114547fe72ebad0eee21460d86df5065cb6ad84f4af4cf648ef0d5aaa08dda5a8c6236c598cc26a4f1ef38bb53df685a14d04ffe081f940c03b550784dcf9de5bd2628d9df99832e455a57095d341061f52080a0366d3f40ffdd8114ffeee785c6007f03c162c873c9787da07713851dd1871d326cf7611432a54004e74903b3a6bc73e5574ce4f40942b4e876a5325582eca8cb08540a1429d7ab0947447af4aafb1f4176a4ec1724a4897738d4bd612f2de49abf6eea630b05243e7a4ad355709e20e31a8a77214afa2d4d85f911043e97372d68473ace0a011d7d9ce0f749cf3d2be510033f3b4b34914d26a2fc3f1f17cfaa35a1b854aa659e83dedc6280345a973ff511635b795164f21401edd2db3ad90efb81d91278043d16bad540f759a8b19ac8df0754cecdf0385a33f46ffb250afc7e5cd559ff23a004046218933fd885c8c0fc1bc35a1f934c14379b923475cf22e6755a5ec1031dc0fe286c88f749357d888bc7eff6d10e84f0f35d87ea5830c7db4955e45ac27048689a3d1cfc27cf56055b00e34bf4b39158684c0fc52f7bf27accedb84f24e174c56e052fe5c54c973b1c7435e6f96d4e320b5c02e7d81b30baa77884933476abaf0cfe63edd3d64e49f41a7a86cf803f2e1d0d0c1712c58832aaa176afeecce2d2343494cde36ae52ef9a1e1542b25c55c08732f446a0be9b634af695e2f39567aa558f69ac1466789327c67f4dfabd00a90ba5b81d1fb99ae809d9d93590cba0056c8325d11476af0b596509dace02bbabd50682ee6d15a3ef34f1d9f8ab4a0fb7d25a93a504b3fdb040eac786f7d30cfeb67d44515522f8f6b74ba5e40425a97ac28536677cba367694840a2a44f672b68e2221ae672d59d36338f2aa32a72fd73680bc5d6c50ef9e1a326efbfb8220d525fc76f10646a56314feca396054419bc493d6bc507aac03b8b791720a2b37c1ac48844d244182f85433fcb2ad118c938fd22f0d1f28de221d5768383abc41ca98890b814de6b13a7da84e064d8bff4296e86ceb2f9aa1821f286fd6c4d3f9308c79d5ba6c29ff889412fba53f1decb0bc7049579b813d077da2402e1c5af4f53c39d27a664212c3ef6d2c027929ca1cf6f695d3dbc6edfdbfc071be665852661ad506d135826ba12f20659b30cb4a6c43eb52f404f93d1c32d8265ab1b728c27d8028cc05740997237b254160a6ce4054bae2fad5b4c588de51ab20b358c650efa41a96a3d54ca16a120f6798dc5f8a462830d67c4ca53c9525caa08a2d8a01506a2e2a66a1bdcb0118115bdafa30b6d949957105f5bb2fa05cf06310dd92525e506f8d3b168ad4cd43558c290cb02a50f27dc6e572bb60d7e72a4605bc788f3aa640d76dcd215ddd6c5b002630aab7b219f33e222faaaca6db338424b426a2706cebef345c3c78d36b43c78637d588b7775d54b0414e4a86bcbe2aab0c0d34ea3c6fe821a79c0860c5d3eac3c41c8c5043224486cf7f0d614623a7cfe46c40558a31e90e068e8491cca8032a3511fb0647c7106d5d70f61d23d3a99b6446246ffd4fbfa0c6dd36e0ce56738ec7d100ec856eaf454614429a2e862811d59dcd889cd29be398078e3b37f9e9e82cf1ae39fa9267f28d3cbb809d974215a2fe490282e6ae23910d50ed96d861f49d619a8662950db973a651e1d0f7301bf3869ed4a6748905aade15e87696f8db03517a032fd8dc596f4bbed334b2643297a845b48d0313797a1c91cdea51b6626c5a4f2f1ff4c93bfabf05233b7c0a5f82c29fc26414c87eba695468275b954945c3ee22f3bcaa055bff237e3f47768d6c54bbd8927781811cc8c14ff162229057b239e38cf70443b4a277907601cb840f0e2c4ac97e4028a32003560d9aeccb38b51e951c39c986e34d476d15b2e02471bbf31a425aabf8b73ba823e2ff03fecd23419bdde5721015c0cf3af5eb7e78b5e7939a830789e06bb3ca8f024c43a42c34ac12432830f691891ef728744ba766a2b937b2721a723b4aeae7ec45ba8d367bdb2a347bef5ef60c26cd8712b5d6c1dc9fc486f2e90d6e78ea602aaf67ad45eeb7c539bd2b16e50304ab52eb4851f401eed4c9db52aaa0a4e9a5a9d92155ff0ba47f9cb1c42fb2b531834e1910d473ad8324ab892b4fde66900479e035fbe019ce0f9170e119757cbcf469872d4ce21910ff78dcdc298d0a78489a4653eca822cd2d57560c12f68b17463125fd095bccf511754cad37371a586c2904ea9266f610a747dec6b47fef184cafc63ef5cb252f642facf34fcb739791b84da688f2e3d6dd9d20bb364d923821e18f52aad7f9b01fee798da74333fde46fdbe7eb71380197614b6db0201212280956de32907858c27b4961b2ddd5c74be0dabb5f3b49c94637ad89f65b4f3d32a3a9bdce5583abed2441b478fe0bca1ef19954b79e33282503ea8c6f69f926d1564ec241ec40a8ff93a8e59fac56855dd9c6b65596bd72d6a580228e2400640b026d1d19c41e8c425f61402e4dbe8f87e2064b89f2e9308f6a85da24287ae30a83ffe5e3c4d9238d13259967d45b30ae756e25ac24bec55e12bea306ea21f84852f5cfa1b4a2477d4d2af65c57a665ca01fc283486ad40c1c096b92ce7ebf00da4053313cb8b261c5df8512fd0647b3a09906210e94b62d233b04507c20bd98cf812e162c233da8476a137545d1706d5c73be4f8aa328d16d87678495296eae3343e8ca9c70e43386a5708b8e40c2ccfe45e444c587f6eea4ff9c963216a73a714273a919f839fb3ffad546acdf181eb27cc35ce7267bd0030a8d994e28900262794815c09736277a2ca28e41c18a44fc90d9cf0f0eac84280ce01235ba5ffe269995fad8612c1cc034016df7abc4c3e7566264d259141200782ad4f8e055cfaef1adccabe283ec0267ed02c6e070ab8fc547a6e5f1381c012e4f62a28ed33e248412c231287540739891ef79a65c5b842246efa89d5592e158bd54a2304be2645bd413eefeb3f22b1a6074402ad057983185a328679b8beab3210377c3b64fccc1dba40dbb36648e256b14f64c6d82b63d168d1109ab1c0bf307ddf8ae135e4fbb17a56041794d37fee36c238d9e7b5e534198677828381923cc49089164e74a29495b2c6d73bb9b7f3655d198dcbcb40e810022cfcd889e89c11c9b69f707ab97f5a5ba115dd2e759ea27881118e475b544a1a1b5b32f6d0e4f9327fa699ce631554d2b097e4f0d6bdd472f9bc075ddd7bdef1f4e94adb113b5948cabf53e039310a5ead42aa3e42083c79aa0540fc2acf7812404b1882a8eb4d9fef6276a80e8f67cafa36dec28086d15b7476e439c1d41724d13f48cb9de9e5fb33ac3e87135e7b794ced663c3adee6c9a39e0d3d4f77d6881a6e3ed5ef2062cfa3b60989fdb38b1a627ed7a4785b8c1be90f0cd4ac259f9183a2a90b8c93c459378db286b3d606d76606bec2a40871a26b00190463a4b9d716bccb6b72c727abcedecbba31275f00aee4e09066a148cc3337e562fc8c37bff4da1ed322f9cb72fd63a5c816046fbd3a31f01b8679149070b8a80081d7db37b75e5296c3adbd8f478a4dfd92cfdf476e149dde86d1b41b0c0863b6fa5ad5aaaa8ccd8dc09d983cd2b955ea3107bfe36637f107e78d835784ad42aa92ea8117351754a5d6ee4a010097aa0704723286bf95c0a4a1e64e1978370fb22ef483255b9fba42f5ad3f3b2d70508f862ca5fd7937e0ce55c3b8214e0990dc553f104ffe7af45e53fd5451ab40eb50dc1e2062d38d4ee02c9a6f065edc82c46ac008bca8ad38b0b4a05c7291617eb9c8c0fae9c6cbdb4db186304c6dda541858768bc170bcb62ddbc4debbbdd2e84f1d4b2c09fcb623646d11d4e5ba47b17baafc4ee9bb5cd6916cc994f0961a16cc9feec02f3f21557dde11f1017f969645d941faa17cf22d29018a0cba3993dc83cac81281fe50d930b34c5782057edf2dc793fe0a0f0568f4b65849da4636c5bfe900b39651bd835218b5134e1cd537b928e2063b235cc99a27818c0843af181edd8e0da5a07c969f680ed0156c8063ee7f2788e013181daf43945f045e34cc06e604ce36c7c6bf523a509f564863d01f3ea5c6bea576f0da9012ebf065fe4d098979f84f9036c3fd3f55eb7f9530904b963d5ae07f87de8d81b7ab77b56021597b390994c9523e0b0f48167284184aa154ab47b239f1b7226a778b83d541e71c38babd50f8d1ac48807ebdd15de3d5ed2c6001f73392449909aaffe6aef3eabdc29a3173a8a4d95fb036503dd23bd0ff4fc824596eda9be12849d40864f00f73843514d984ca2fbae00d4d28673a304507c31730ab91f0426e4d2618a1190a8ef6c6657579d9457bca8fabaccaaaf137bc8054b48d1c79756a54b3a45cc66eb4a8b8284ba12413150d0425c6009e513fcb9dc63526781ee479ba96c17fa0902d990446b5a3742c4775f213f00f72089976da2e06a96840da61fab624ede72c67dff8c859869c32956a46c293ac69a9955257ad9775f2f2ac72c721ae80fd2347e7fc413d42afb03599a9bdb05ba35b5b3d52e4892487b1b97fd33cb613a84d8372e2bf63d112af7532be8c46f189ed4495aba8d44032398b31ebba236611f2f7e84df7f1e12df87c24a59a5bac9776ce0c3b38cdf86ab6acccfb0c90585cafaae2697493313f191c00891d16d13a689902e7db52f96dd9ff40f1f266435caac5059671821af96597fc2675061587ef559c6083348575f6eac6fd3c75636f3b2dcdc7593973f20012a66cf01c8f26ff95cecb3549f8956f6fffae1f96fb865bb1584eddade0704dc9afdb34441cee887f88340013b9b8008f6d5013d78e0123bb83b0815e2335bad96129f3f68edbd1c86a1dd932ddecd688c59f16d0ed638008439eb1adef9dae087428090a05715d700e651b8e18368dfcd0cc4ebc37e0e33a48710dd97d0976e8da4573d8c8a061148a267eb3f6134436a851c2a873a32d44c21c33b8be14b26263e53157a4fb420b1d86c16fd1015b704383c41d6643ed09748b7be8baf573fa5d54ee679b7f9f6c3bc3d3ec37b868f3988d683b4132c5ec7cd7de8d8a4a2e25dffc69f02f96cd5d03223ca6c6941138932533960148a7c2270ea313dfdb87251bf9980dc582143219410d7bb4674691ff41f9463d3aabb8ef4a868968d1e95687009609822de09e603aa9d92aebb52aa3e863c23b5e5e4becc4146026ba84e93991316558e5ccc26378f262b64939e2279f8e27f2e3b271b7c542aac5bc0a7da6c7ff230738bfd877b92b547b2c24ac612f15c61e3294406b468e610e3f15ee1e475871ff87619037caf8a00015cf93ab1b7ca0f1ed6a2659a488942516c4c54ed823ccb2cde2332882e14be95d271b389c49abde45b03986704b642a0c0ff562b01bd40aff44bd4f0f31a56588eec765460dad4c9084c86a461eb04b6981571296359160cd6ed507256ea430cd97e74c2e67c67301a7d0b4191c7c4196d2de63ef9e39cdb2625d361781e0813fe9c2df6a3eb5b66bcc6a9fc807e562b3e94c281510afa29b18e7328f1385021d274977567522425a790ea80dcecc8bdddb88e8ea448b7ee22fb2b0a3a698ce017daa99dccd0fe123c96083ca83863cb8cb77628ab2fdeccc75f1a8ea1a650c90dc24ebad70dcea84c3924cc0d2e52017b4bf33ef0fa807c3a970b1830cbb96f74bbe5ad8c3782a8453bd5d8eb19d24e2dbf13e1e9b86f63cfd7d45ec834395734ec44bff8084bab5f622730d5f380daeabdd879876abecd74f9041b2ff19b681aba9c8b08275ad665560011de534f8a811905949e5fb0192f6532a4dcd17b1f1a942d39b5eabf2b126595f72b30b39e79d247e423c7aab9f391e28f4bbd33a5ec8ecb890a049fa9997cd2c4741e61bbefcc6c9809eaec12dedd12b26ac06370f87be0d945314d19c5fae8a0a591aaa73507d6ec44d22ae89b51fc5442dcadd891d1b2538ababe6a82625781688470338ac7cd363bbb45c3db1b0e4cd333317808f51199a88d430e0c93ea162af453c33eddfac419207e8dacd621b623a8d08f850f2a16abe7863cff28d70849cb147d7e374701dfbf945cdfc17e0fddc7bbad49c038caafe496dc0397f387b830a28bdcfedcdc4f831d2a6cd5f77e442f71937fe0baeaa343ccb57cdd131b3662f1f50866f9140543a153afcdfc3a2bc69052db2cc6f8a4b41601bc04e061b721188d1fa3f1d99754c479b0c5d99965d77d4a3411badeeaadb34c8ec2ecb7043b2e429c03e7fcfca58aeb5479c6eb619bc92c6a77e5847eb2966f379d96a8735aed61bac8a5a39ad554e570b91a394c109d403f152484cc32ad0e88c3255fc706a5cf12626b0f29e75b8425fbbdbe42e8bdbab3ce585532eb58026b692c4873526821642d606d2243da95888a08cca434c08e3f67430998600901f606056ea8627d082b40e0a6480a5d983d82aa4e5dc44708491363bd3fb9d60fab54353c9a80f4b8e74a736f8b76d97e9ad58f773f24f78919bda0a023431c351d091770554f6dac3429c578be6187c00d7d515f253dc394d45e48a41a14e6324e856b80a7682d15e13739fc26e57e18e4541d00ac3d0e0bb9ab3f7a3ffccda0d606f90a864f4f214e8ec2bc654785c158b43d43ce4afeeb79b13ebf2c2453b00749809e72fa2787367759dadbdbbdcc7d7cddc86ca87de27692aef5230b726c557fa20534029fb759e8361186cc6ca2c78902f0978af65b08a5ea87b39936ab36db72377ce67f427953ac4c5a8ad4566bda105f1be1774ead0a9e3382ae2279edb4208e20e3dc9be4426cc88a29340e37108f1998c30ccca36310df42b6a9a3fe205e2249c56d3f2b83ca40778239195e19bb60a9faa4ecc52358ddcbdede8878872dd60843b4501bbaf64fc6a1b0c478e505dd8eae7debdf1805caaa3cce117645ed9ef6ecd9900b11fbff6028835be25a39b53c4acc5d035c0b6a30306cdfa07a9efcadcb9600eae138e367bd51661382aa6bdc26ea4c2265530e93ab8697201d545e9d2e7eca7e008875431cab97492918929166e6a5c81692959afa220a6088c4bafc629681f4b95cb952fbbf4436cc7531cbc9bb22e1308132d3d62e65f005314324012e8b0b9d3248420e09d7f44e82a27672f20aa8e5034e2d2fdded1dedb77d7ebdebcc1cf980ceef509882f0783fd8403bb5c849b4b1db788cd93d79c4fbbdc3820699972349f85dd1649869117a6967cb320b4ba334e6c0ecb2f4b81eefd81ed12cbb893f3e575ced747aea999a5a9e70382aebdc4b285127d21842cf83867908fe737277d91968bd3c755176224f38173381cc54e5dea180d1e26432d8c1d704662a4398dc72e6214727bea01540231f4f785534871d2da971fad875aa88210b22c4df42446c0dc992c40f0367c251da215500479f7996318f8ed5464ad5b631bbdc566425ba70f71f7aa72b7a89e62d68d9fa0a2632b107ab8e7202e96a1e417d5ed60eee7b80f1c51baf5b4ba450942232c7fe18beaf5adf1f3661d2eae6c5bbe63df3c37a9a40ea57e7e2cd36d03ac6c97e710a8ec9552dad596d779ed49b4fb4852ae0bee82a354497d26a094364b2515624e483007069010429c20ce32748ef23404f7b2f92a139b8cb20c9503214694cf88239acf1352b98ec52a111e87b5e0cdad105afdcac0195f21aba59c900789086f95383b0ec85aa382bf023bd476f24e573c8d8c82055856d72d0a42129b3c799d3052b03a4bad98b56c1dfc2d872d11f3659799c8da6ac156bc3fd3e0e804f206e9cdc03d4810b97feed2e9070e2d4f038112abc0dcabe0ea0d9d9e89085138791afe44068782cbcf2282d0a33a2ebce6682aed85959626236fd72e310592b2230bbe1a5897b11b21c08eb85833ed598aed9e04dccc5ba8f7a891a8eaf565ae4d07fe503f7c813b4e27b0e9e5bdfc235dd81d80d72628ef50c0446513016835029b1dcf78f98bfbf23f50e438d40eb90161944cef1b3a2f8369329f95047850987a9c245cc3d38b4f4d4481b60902c56afc9770ff580c0783d972d346e59c7f95b9ea3bbf7ade64850b98ae572fce41222999f9430dcfdf4f4f2bc36046ee8bc0ab4fbec288fcaa5018d54d586df759e18e2ecdab9ce6782e33d395f2238872d0efe87216a76400ef59cf20aedb2d690655fbcd94f66dcef75099f0a7e9d330e3d41ebdf9f0d538b1fb50fb736ee35ca261c0d89f430b3f7548a42980c4231bd7bc2ff517f189ab3d07408e0afe1edcce90a74a79a019bbf7d0d99659731bb8a70878ffc55d86d90bb3436aad93b13c17850a42e8da99bbd33928997067bfae214673d54d98ca17ee03b652f37b00ccdef7c706c111f6ca0b5b4ab311b058335f2d90dde68c2e23d24f2036f4aaf54794a267e2c5ae4498ed33a9590f427eb299a48ea2155f2d7c69b91ceacf4a924a911cd29e0007d0c3e0eccfd7c439b1ed909b234817ec34f7d561ae375951b59581a611ff0cf68ec91a604a3ac1325858d9bde4504307214dd3e787ef5b2bc44244c733ca4bf547062de09f1dec868bfad9939f086a9ce405861cc6ef1508d3513a86d9882dab997883543ac7dabd215c20f8668c8b444c1cdde856d1e3795b11603be7196adddeea388b2d5c1e462424eb4697ff3141787c49faa797223f6c143d63dd7a1620b0b6b908966a55e4f06a82e37cd4d78c5d1ef29b43c42f4902c040749b95d602647397db1098b6c8514d3f30e7c45eddd4c99f0f0537629cb4e4b121204c5190d6124ed347ac0e3703d64be57578009607e26eb6a8680685f90acd6dd5806399da46e69dd2273be3e39be21119bac329ed22fc9b34e58ebc95ec9672933ab39beb80df85740f8ae712c81183a318463e5c4eead8ad1db87f10863e98a211843377640cca0d8a19ed72886504c9d58c2b1c5b171583ec198ba31046213c536e2fc4631846208c56e7d0f223d5df46de91ad3a3a087c6dfddb70d23d0ffbeda5dee1d5643263eb517f4e06f9b5e0cfc050cc49a4266e9bc509be2c46674d96578b7965700bdb482c723cf3d286f7e91a065dec6d1cb5285618ba55f07ec201ade32da6aee99e47c734bd5dabba7b354c4e8a2ed1495837bb9046f4c146208a397f67d93438cdeda4859a2b2b968a19a05a922c5fd5a540a2b66bd696f1c29ac2a1028681ff3951fdd4ba1acec145c55bd5f98265cf0c8ff1f8c309999d6f8e916df1213f653b1da8d3a9665b5f1a2219305e500c58c9e1621aef4722fe190d66c43dfb9cf405a67a9f046880c0ab45620249faaa61a3896d262a5285304c812e62ce7cd9357742dd96ca0514c62516012f7f9c592e58c28c4f62b6ce56f3688b8e4ca273cec2a330416f0efd8432d3eb5325abd3cc297ba29e14ba411385a92450b07af86fc88db655fa4e8595611b94fd4e070e79a9046e910d2e9a64710f436fe47ff6b7000a3808031950060a20036bd80343996298846be4eff84dd15c5e25eb200803803acb8dbe9aba603d1be54fd2d17f7d6bd8110383c0121692aac5059ff1fed51393cd3418ac28ae6bb7600ab71ad53a0be8c6e84243af4165a3afcf12d5131e1b2990a098ea0754320b0232104989239abd601a6ffc3bac6dd4824c5cca229e631d1ae6761dd25de5717a4e8ea9444b7ba21505607a25b754e469a10921a091212d9ff6210e9c7d7a7deb231e057bd66d91214f5dda97ad74dc01e9bd47b48d5459277f2026defe05c2d3da15daf1a74f76e25bd1be0f1c0a35be67763ed9282cb5771d1a6193b851478559346487f8362a180688b5d17b24ec3d7b856aecd6a430f7786305169f130d4af04569b3ebbce4938b67488f6e4d24a639129b43c321d05bf1d9c8a98276045f138079709dcc23614171ee03203b746ca73454ae88a545deb6a1457ba1c6d2561d2b8abb72b35e46f5bc5bc6b4d224bcc4480d8c1bcc3d3cdaf65ac7ae7c552719098a697bba3e9bd2668990b754c4f0e6ea3c00752de768a6b8db8e31b72b2acd3c84dc0c9559d99457b885e251c071d27b4e9d00a9d3567878e34041a9b59127789282207e655650123d58e4d899580b029ed6886da5a1d86ae76a3b5bd951e482a34ed043e3259e9ca34572a105da1d49a54d6374076d4cede9b7dcdfdca1090af706453596112be98e73489045689a74b4e5d3822fa34eb9c845f409f7a4c816dc6909d04bc3b0c95258523e1053c15777530a48abf1edc68f157c94290d8c19fa8ba0818fddd917f0045ea94063ddac47302250ccbc4164caf623b760833d7c1f65d45141fd50320542119c4cb0f47c8f3f75092f48adc3d4eacd6f8f5ae794db810b11c060b717c4c2bc485a2aa3ee659912412a48bcf5a55aceaa1d7177ac3d8e4dce2ce418e17c964e72025c42026e48be10e47b8c2c970b92c8b1a89c22634d2504c6c19066f2e7adff0f258d809600c86fe7b66650fc086bf91f9299edf432e8e9651bc4bd57ee7c1d8ed65e5941e3d3a4c56661e0112411963dae7cfcba28a6cbdb4dad488db4d566f62e82a0992293794d954104a821e9b98befca0e420083e9943aae07794e6444f040d8df6146e42f5877408e01bd2c06c44528d29f7803b76f33d5e143826224810c3a59019619d8e4a987f106af99dbe6314c61dd2c62877e3d1e9de4adeaaa4b7f921ef18711789138484e47b2d830290eb02362d78643663028e42fdcf544ef266c9ea645e7c6a39407f4c9b1215d9a30c188fbabfb2b6046b6a13f26861f1b69f221cb8a790a7ee2be6cbdba84cf73d08d1c8b58be39d7957f145ad87db8b20a5100bbe938239366bd3c333baabf55153fe1b26e30e2bd17b0544d65e266c7454b2c2a719656f9f0302af152210692f676343e71fc9695e2b1e9b6ca0bc00abf970c2dffd2923c005a30fbf1339b27383d8080b3942b8ecf4bb57fcaa468306e1ccf28d3442033b7682bd7a3cdc7a9845b27b18b458ea47e86ba5bf1786395dee18b75c832836349815ff249fc956e94766de967ed477046de403d91b92f8912337c98cbe41012deba5fd2c67630dfc8423268a4adc860d5c273d9d2f3ce6ae78080dc4394faa3a3fd49b1b574fcf95dc589063cd460a7e57b8945faf83871d6575c017fc5c876f42b75e85568ae271ff4a1d6ef2ba43fab018c4156b75d50c5351d9bf3897dca7329b84f7aa53d1f2134ddfd70c0694f9a6674ea5279d06e15522ef12b5fa6e48b526097f10c7444c10f054bbe17c6a110a1b466ce49415b6957b34e6c705cedccc4ec5e0904fc46062f67be88d979b6dda08615d16395879f6190436248dbfc5fed736a628fcfdc5b2f166b3638bafdf5019e64051b423da48c0a113717692fb3857950976cc86502d287f650f8bb0fba60df83a5d65130753a7f8e4004ac5afdef2a98136afdbeac96916faec8aa3b0769111f6c83a4ce9e831d821caf1e5980b3f1e34e46015f70012201cc42cd6ce89e8374cd74283ef07adc6ebcdcb458757a838a0a7ac43288e0a6dd23cdc145a3caf7ba4cd3ae833fe6461a2a465efa66d7c081b70f6f48fd1565e1bb7903d07409f7c78dbab59f96a09bbdc53cd6f6df4437c3954219f0dbd409d5e64ff3b128c03c3b68a4b8fa9452d544435bac231b6f51978c161e66c6b4cd9ec901cd4f31c95fd686466babb304f694551dc58d3a17f0e9908ab65deb507d9501d127d9c43e81a1b9cbed079bcd06575e3f720d0eb7d32a1b41591e3673e19e395e29f7de1a2e871d1108a797d2428cb40f137e2622ea16cdd5e283e48cb2e52d174d32f65fbea5fabc1b52f43945dee29310789e59d36ba4194caca65977a72e7d8517e4e2aa71d5119c78d38cce6efe11bd29399aad4bf912c5b0a6ba09fb4d4557e44c029be002898c5ca5255694b5af9f96598e5120a0b73797454bf3134c6da5fbce1506945bb435de8bec0a93db53020e0dc6a057f949e1668e02520289d4b3ed5262e6f25bd2ccc6c3d3355e08f96267ff22d11fb492626831b0dc805571cf826c778297693640ab5530cb1f06788af4e8bf95be705b98ab8fc43ff151549f8dba075fd808ca2c9105afce4e08dca11086451af22134bd748284357f184de2c58e70d50ffaa230d075531c254c76587f59cfd35f780c81452de6dde4954e3879a854b6cfcca296aad712654a61270e3b588d54c4e224c02036570c942e5c083d9cbda0d8326f67d3567259bfa1b3c71440dbe05625bd49bbb036b2d5414937b445f7c29e3a3b6b1f8141b015d6a736428b77ad898ae2cdc873113861b518057cd40560f7022fd76d24f3e610d881ab3be4b160f75fd8326dfedea11702a0cc9677dda844c9b63f5f67bf7814166da1c9db9bd4288bc65e2fe18ab3e8421d82118f0ccf9a3cc82690290c8a3179a94c84d18952a5697270440646d31fbe216c5308037b59b8148a9915bf965684973170429b0310f2f011ece2772a6ea7f98022d52323e59ad1f72e28453fc04521ebd13bd52a50e083ff39d685e59535126d375ef089f436de3619f3c4f7800da49f9588655ac47a4da87058745f4fe80ab14567cda1c22b3996f67980956a0ddb27e155ebc941ea0ac98d822c5e7662677d301d3978ce2b40855728ab23cde8fc5d59fc79aa3911dfd455db236748c1d16b1243a14bf162b303ac619f27819215843ccd8647976c12ff57dfee922c28e828e9975db833ac9084255510cc45c088503222e4df55878923323a5014a1c10ca6bc14a73b4b56137536aebac35ac75aa19ba2e5e37ab1f1fc3b06e0f0de988a3cbd0117e78557e83660aec544bff5201c505061225d8caa459d1b8d6a4b5a4dc9a7c0d23ea669ba5656f1cea31919ae8139fb0e584d296db804b030791813125712e94a17358810164e0d96a4cca6d369db8a5e553c3eeb1087b0c51c22050448ed208e67b591a14456e51c6507636d89a2560eafc5cf138cab807c93c0f3132fb0a12d25c1acd42027c2c3875344a3c0ce38a6d02ab1caeba29118916924b988eaecef87eb210a61ed3f3123622244b00359ae60c6f521a91ea1dfd03708e16b39e555a09cbb471e4651deff60f37e9e96dd2a0ab67df36541d82ae1ab39c8b30c6e9bfa5e89f8596a1c227215fc642c89f409a0acec05e7988361c170e89b1e70529e42470a13d8d78b42a8cb32db83e07ba8439e9062319bb13b6a78ddd427a485c5b3196062104f563f3ca818828fb1499165e1383bbf7c3b367319ee4befc90853f7e806433a3516e3adabe48bc5a6999a41dc1869a3c480d7b4d845a8cd3a9374e2200631b73231f10a3e65a15d5aa33c6d42fbaa2ecafc1c700a32567a8523feb2f4ee02f23620a0969b1e2331e62b43e59e401a91affc199150cc3470c75eec565ae0800f72a3baee4c3f692b14c5796f0422c3522d2c517bf92fc4c0484e4ad22dabf6b946d450210fd3d2c145174fd087e577ed435ce7382c5fbabcdf2eab8e29ac7ac2b435d347f41fb518ecce82ed109cb7ec6453c1fb90fcfe00e541a19dd3d36b1612e5161c4db01157407422a6f03756082bc8c38d87c1c1864076a42d6ef028515ac4212cadc484e14d9abe753e945f18ae9db64b4ebc5950fbf00b6ffe63b3efbf854ed8567be0c00b6c2483c60df8ac138ea9cc98b04c4ccdab66b50a6821227f4410677e58c0fa960cc7fe88c2c8d3ad72396902736504226cc0714ee54621eab632b6bf5716306b3cef924038c9e55f9bde12be63bb37fc0c67d9d884e34638f900199d80263fb8a044620df55f0c83ee7c0b5989900ce45b7931ecfbb8b0b78209120a1aff4c6ae8af0a8a1e5437c955da78e74a97053b4a2b309d8ab9eb367fb03e63250d6b5f5ec3c40f5658803ca0d0dc2392dec1c660941824c8a9b4d869d3891499560a2d6243080fd0190a41535199d0139cd1e5c196a709e4c5d794d45127699ac2dc5951c3af313654152b5edc798d415ac885918a66ef69799e2abfc86c6c446e64685ec8114d1aca5b0d99631fcd78d55977560ca480cfd0076a4ebc20228a1829e292aadb2b010c7a810dcb331fd0424547a9734396a7abf34c9b740f04b44a35f1d65235b3a6cdcb801376bcae724b306dd2ed47b6cc3eced671c5f40a11bb8d19c24e4ad592ab33740713ab69ce3da4938995b81443940db43104f109717aa7c816a93b24146232a512008c2238781587d2480e96f840f5df8d24d2e8e2aba2b34674c932566764a8ef69132d93e0f0e1c9328a984503380cf385e3f9b1d52f0afe8ef4b7acd50a54be9cbec95dca352ba01d072409a5322e1e121f703732e250ec1c928cd2aee94e0fc3d435b6780431e287e18010c9ae463ff2527da24384f8b0cd50a1ef91f5c507f15a3255cd739078067e56425fce6b3bf03ebc15467aefbd52e71e09ff90fe6785cc5d59f240e85a044ab408d1e818f3518ba6e2e0ff2c84a0e16731459eb7d155e7be02590efba8bc2644012a4088fcd03966b57fe57eb968f8e7a208a788d33e776de9b5226f3e2a1a3ce5d0dbc7f324b63209a3fdf7a9cb70c33ecacd1bf036d4b42dc71e84b39ec4bdb7c526e3fecd4e42148bfee8947328d181bb213f4bbae1495d3e465ba4eead97c114ad6b5648baad9cf8be9213bb701045db4b24548e9a27418cddf34cd5711ff873218bd2c1074a04c2b0a4b2fd03a17d0ebdbbf73901fc035d86507b78ece9b72346351b27427d3df29531292627d724cfdbb3208521f35725b07319633f6973f09645bbae8b68e4a6a1e0b4fbe271e75bde76ad058d27d488e4e19936c18e7f8e506246426cf6ef08213736ccb1d201dfa5b2f4bceda7b7e1508a8f90052ebff399ad9b923dee12306da6aca77945e372713470e8c40c4cf873020a54e6f39fa7a9000e0737b4c2a8a873c0423c37b890d2fb5cd8914115f0d703016e409e6f5f544cd6bd0e8c6ff9bcae1fa3fb5ea98e26512547bf574e1e6eb469afb6e791a1ff44e5754df31da557c180363796b6f81f33acb2363c770fa33a35519406b57e2c33024b98947d046b6030f3be12e72c4232078c5c55effea0df508a5a6a04fe58e0093dfff46ca1bfb1cfa8cd8e3ccee3b226c42d5b0e3e27c7fc4a465b354c061854f31e3defad7eee894426ec927b3ce565fa15d90240b937c461c6b8895ca648c493f6d8ed55b7c777fc120981647a2177bcd04dd0ff1ce427e545f497bf20006c08145fc6c96ef5ab6b6bc56d9d11c10cb9aa313212af82d79edc2792c2755461987a2e69c6fd3c1d433162d3adaeee6f3d12e374667505a55780370e558cd625d3405e0beecf100c8a9f57d2941338058f2fcf755d2efe41eeec68b1b3b624ebd9b3cd5fa523857ee46fa5373df87cc6d9d292ae8b295a9d8fe9242ef831b0d022fc350cf05b46ab8dde7d3d8aca5803839f22da26bee0d0925c14f83c44743933aca6d2a73b852ed672bca1e5a894154f8de42ccf771645f545360a5781ff4c7c7288a6ea4b13799639af8afdda0d768eeaa3183bc18bc3041900faa097376ef4205d20c71c4747d40ed3793fc29d290eb06d73dd8683fe21dfb1d902f7a89724649d23b78861bb8bdc427730e2542991cf813078b051a185768b8c879a95090584fad1c9101479618b2e8da024fc36401704b4a1870dc2c323018d225b216b80bfdec73b66c981d8bbe9b7ac77c8440104274a0428decd2a206a71e19efb96854d2688d3de6bd36a3fca41ee4cf69468fe4c6a544361ae0f63e449fec8e0fd567b919daebe85430e9be2dae4be787eda986417ef60f1d66243302df2c6dc0c118d3cf7667abee61852843ab2b85a5bd9007433226f4b856c63764a854882ca74e740ab8ffa364d62be831845bf194c61e149ec203b9ca1e0f796956206a92349fcba2a948246f80142e1dcf32c9913da750e6e3754fa0d54d2b1f9510154ef363276fa050725101f9490b1d6834aa316d165e818bc0a3e35afc807ab53784c59ed61508390a3c2146494c2ba4f981533011fe70d7e39965e141e1a1e994733f199ff5561aa004764e6691d94468fc6596d2da1a15f197e4398a881efe6ea9fa23764abaca0bd008429f2522e530f1a31f625d35a4def44e62bae569235ae9807dd0efced66d2ce72ce0c0e292cee6d7e4941a3aac6d64a59a57ff8f0d9775a93d68eb759341927201053dd445229016c0f1c5449879079b31598b73045f82428a14707aa4c4181b584b07df5e758f06852f9079b056cf5698b40305b90401e2fd658fffd3ce898bce35ea4bd4b9e0673fd7b914d1c76a4058c4a14132631249824f1c0bbb98db257a535e4c831a9ce5915e376b5135cb19f5f141114337223f955572fafed871ca4ebb0cc2430cb7dc0f735b516221fd307d16738637cac806a2c5c30c60932bb63db54b3fdc7a37edb9abf0d9d892c0d36f16e485e12567c83aa0725b8d272098935bf6dff3bbd8eecf6130713ac4300cf351fe2ff0d27c61c6b17ae362b6cc83d509b356b764ceba10049947aa05ccee8a6730b69dbb968e91af44350ead56b63f3d60daaa92c1772212f0adbf7d456a9759ea90af49e313e572ba34f9d24403f801a469510d9f7770bfefc75c100e4cec77c957ee23194bb8c1fb63253dcec90f89b1f01dfcb04bb050ed1bd79391aa02de8dbf5a9e82fefde4fcf827a9648f89cc3eaae7a02c9720d45a6a4144ca0e122adcc4a411e8c213f05b4e614e56cf8b10f0e79cfce4e00df884abf3851842fc62235a45a6388561405900bd91ce523dc244c49298886c1a7d34ba5060080f3b725c344ceb5fc0a4bdf61c5c03b4e4f309fbd6d8a6962b24e8174640c8e288e5d85294bd743c6175e6b966aa7162da743c5c19a0369d0dcbb4d44f9d610fa789d3a0cc80d785d1ac98c5c4d244b78ef04313a3015d8c4f9ac7843951d63fae39cf89801142e7fac128a43ab0500aab071cdc47adc253e92073d3f11112d4a11efd5289d6be8ed487c9dfb859242d7ff4d08555ef817d2f21fd667058eb2574510f794a3f753ce581f420d6e36306f2692148a48d1facf5b320fcac8aa00a42faa8eb3c3fa657faf9a83b0e94be7294c815a3fcad9aa5af33e16ec43cae6f7556aaba5d4776b13217d7eb24aba6d4d7a5816cd594f6ba6dd57891488642dd727f05b21be458436c1b62095f84fa1e7637e189c86bb83a444c521cbc4d91142ffb9d2f2384aa93a051d434ae36fe2a469e670cee8cad1420fac438ce542a3a9e31fb88e8ae2ff497660f205221408068dcf33df52d103160fe9e7093fede8eb686f7ab4f649543a85d43e681de453316deef984047df352b08ab3e5221f2c591c022874883e518f67b39018ee0f4ffe0e308b3eb7c6c85e55a2f6676c43ec995057b8e4feabf3e5c75cf10199394b9c671c1a474a70c63105b501fd0a31b12223e332d7984cd82588039176380bef583abcb5a3c3cb3ff43fc50adabbc552892b44c6226ec3784583cc6a6b2e3e151c8f382cfebfbb81cdfac6d2dada15c4bad4bac3069cc336ddfa51be2436d7935c2eb05526fda8759303aecbeeef0ccbab79f47a20b9fa7d04350855be72e46482f2dd98bda1077dc32464cc58bc7c45e4c1b38d67dfa40d46aa8f8d1de046e16f0016d2e244c23295965572ff88139f660d1b56ef640d47445441991dfbcf79262291e7a42f79b08a2f05461fd03ec048963667a0ff598435330c9e22151e5734413a26e8076c3b124f633fc74b6db0df9f0293a688e32fb2ecd23b09897b0336ee5f9c349a81154d11ce57e3c1fe4f6e2e47559e967a9b36a843af9b3aef54d6a56c0503500f8fabfd6481a874e19ce9ddb6f4bf193b04ba059af210ad023e2f882a4772bbbc740f8135d75664f899f04f17dbe7e1b53300aa1ba2bdcb68dd3957a9c562288c0ed8426c9ee557ea15d2f9224ffdb6acd44ad25b3a269fc528fd0476ba5730d07bf002268b5aa1c8de6cc4de1b1c379274860a9966ea11e6fba105adc31f01eb2d101db0af66bcac1c3e7960bdcfa32905e40a2444caf44d8f0067d861afe5b107dccc54a486c771e45de74804e18857ac47edcad8b0466fadb2344a38d5e709d4a5cc8397da8ddefcb9c364f3a8cdc160067a5381217bb3bc4dc293cd534c3f92dbbf83fc2794363a86692cc133eba6d8d8d27c4199bde4915c743df102cdd7164808e06c723b038b5e59b8c34284cccdb47c52c64d0d0d003cfa71991d09d8c70d75cedaa664bb2ac994d665a948da465e819d9213cfd322fc464e418ff7bd10f3daf072855e79437e11a165cc60937c56b012f9ef6e384d3a50625873d36bdda5fef0905309e07205d281aa6f487dc2529a93f12648ea0997d9d781ab7e18c76b331f3a8d2891627f39383869049c94f62bea207912c4af53575683e6fc363312725b766565f8ef0780d378768364226e1428c7f4d1694e0e89617bd455161fc871669391f792e22e40c369b098087e83d75da2e8d2b3ea43bd18b70b56101d58c31de84bb644d6874e0e6049cd0cd476566c6799fc2d5e7bff4f426945b4df284ecdaa0cc52d4213b0879adc1c9c209871b5ef604bd8c080cf557b210bab92df0fbad40b9a2e233f106e4037a7c72e737b8c2e14a30d87d835a38e56e186ec490066cb1b916d66180eae0398ed4be7a69aa0f518daf36df8ebe01f382f453456c3eba6d3907009a3b07e77dcf149fe71c806a1e646908ff14caffa9010508313444c027c2c507f57ad2ca4e45149e7433960e70957f7a64f72aac39a4cc483740b5ccf911fa5384ca4f6176a90354f9ce46e257311a6faa194505d4c90761f8ed1bd06acb7f497a0219ab6bb86c806bb99347bc4951c53969765504a2739c8df09fc2355e72b3690fb09a796684f61516b78419e93e40f974567e881194a85a7d979014f64cc459ed8126bbf39357786c136505e38b92f167fb4aaa34d0b615e2bfe83cf89a7d66f4a297adb70a39fa57b4f1269b597480f58c7323b4bcd37976df2846918b9df6592554b2e6b814de41d1374e26a40f80665534f2819cc506940ca9a310e43ab97f1f1db0426c58717235cf9238b1118d8213fc2e6a5f2671ee4bc98e76949e191676240bc5b2b63d2d300eb0a92073b9a2d97ac65b6819f17c09fb6b737c30eb0e6e3a469498fddddc1b6588caceed1d3994b9c3786b48bb91dd75c23ba7b59a5919b48599acc9818a980acf2fc1cd55990d6c7d801f1c13e36cf15359a12e92b3377052b1049cbbd8f18cfce5c94c56800ab806033fe769cac9942c20b22d08a93ab69e1345d92a2c80b2b8e111c5fb30e1feec6e70698a1d8ba6ab732d88b93198925d7af63bbc2999899a863a3938d8516817b37232df30dde743d60a45be8a6a12a060f7463ad30f3578d517e5271673fa7816350389fd439693b787ba0688486f127af540f2cec7564ce5aea7bb8ce8aff1df44c85d9a995485f81a04b9ef9980488e20e871312e034aa6d51de3620b1f31bd3c171c8304d06a67531e88a587aa8dfe8181035f6553f82e5189390955e5f63b99276abf69eaf2f29d5cd25465adf748dd573c65dc9fccbe215e3245bc7d987e5149fdb2296f271984f12491f48d7eb9611360afd73ccdf5df8a9e11a4387d99583d1ea2c610cc880ab6970d395467544cdd64fc6c85fd0f7b6ab28b65aa9412c01a7f23a4194ef8cea2952bc2235ad68f43b2fbaeaf31638e8b774da42ba16fe02d4a3337c9c4fdf4e98676cffcc963d092ebe8792469040f1df5904ea51e76e5d1a12dd0dbe0616414aa7c16d1e35e390c4c28100d1f24fb927cc6a627c157f2d1ac2a257afaea7fb8c3c55527348850ca631ad47d3a3fcf70a1412902add107e57b5f961cf871ed89206ec6843b3eedafbf1e50226077c8fe468f991ed6f23a03311cb52b54cd03888289f48746375671d5a649e12940bbced132ae744f858e1527b7b6356a4714f3a298e642891c2cdbee87ad13c2d46d1df5ff4943fce65fe08cc8a75bbbe5df2fd2970cdf80309a97024d04581f2622dd60310966ee31ccf59f37c8cc31ae40ce0e19869c77a3b58226c876332c0fe2109d4ee47308eeb6e36bc37493a4bf5e46144d6457b1285037c3bd1c02f944820bffa364fc6c1a03e86002a7c1ea7abcc7dc0de9003927fa629984705d609079150aefc7e5fd6ed3699f387f75a80411825a6a89c449d73292eb5de215bc21e3178d624db699c9223bb085831ccaac639401c19dfbe114d720fe2126eec7c990a113ade4c5523eb7f21e55cc8943a7716447e39449e395bb101effe5a2db3e47797f59f943d91a0634d20b4b6f1148a5a2409252113113c51021007c8e2c1bae3a8623681a6f964a5e6b8ee5d875dcbf6f5444ed0cc635eacd2a04aebcd369aa06a8fca37e1ca3ac36c220964139002c952d3e53130510d07bbdcaa5287d630340f5086d5c3c6dd876a5013a6b65f2583a076937514067004c055dcc86e2b98021d79efeb0ddcf2a0d1c6c28469c3d5fdb12a86ce5de09c8d6b279c8478c1612762258cac15eb7b13530d83f8cb21f09fd461335cead4eb477ccdd3162389b1181c91cf343df8f1f6c6274c1004ef8317407bfe56fd2958e62b332b1402391a6656cf35b8a62238e864c065f25a8ba55a985ad300def54c6a7205ac627aba697d1ba059048aef38865a6de006aee759aee1ee97afd3ad3fe855a8da4a2341339920e8cdc3568b3d07d88124fced21881b98deeeb0503f38fb87c7dc7613614b60a14641571c798d4b2cee3eac260d0e8848c7999b56679e53a1f32df7fcc814448979ca4da5235f65ab4387cbeeac0ff6e42d2621fe1a3618b418d54da9ee4470bdcbc7f50cf63aaf431430c125d1da0eec25c4a1b341a10054c09f6b4414984b499a5a3032818eddc83a4938e245a86b9f6319c9dccdad22f55a047fb066cdf9d330b71e88995cd94970705208ebf7f02584c818a9e3ab66e5fa61ea07a087b0561a40511598273f8db6a9ea3249ff26972b8c339d511b239ddda549f69ffe6b6405d737ba7e49f95f7c817c235ff1ebcd871b5ef84d602eac2ad652d9053c8bcae4efe046c52d1c9e13de1c68454d8d4f7d2b6bfe5972f56fe4d6cb65eae2212c6d99886071091e42944bff35c10b291ed47bf3799edca33a2ab90268550d078836364f8b80c003e177479644aed61e5d674355f40faa8fea05dd8185a67523676e53eeb9eee27b7f4c32df466db25bea3ef051b7de22215cce1d50bfec28a97c8b8a96dc44f8ebf1f3e01ae09a9f084ad489f9ad8c0d8d3ca364a08ff38141f444f65b6f42890086a49e154381895dc38a2f19ccae944e47dd85dc1cf3befd10eb86569c3e189c88af4935052323dc36b3f1c7f08edcc6e723adbf5bc74d33c612ab747fff81456498d4e817c17b384bbb811326c4d615bfac949f693e341afd87c95db6d4dc65081b35930ae1d7e88060233e547a99735a639b4d13ddd50d3a42b1cb3e723e3c0ca2caec8eeeceecf648b008e721cc72011dd6e312a708efd891e87dec71e4540db24ce5cc8d7815a749d3b15e37f7b43fa7968544b4202c81044009b13213452165f2cd83104d5bffab11a3d58ef1b7853c142a0b793ee7cb788c5a1458256e20372ea497488f56d68391bbb6ac70cb42ce2517b3f32d52027d49a28f09056fec6fa6659d342f1181b3bd94c036ad8af9c046b0fec41511dcd5f4287fc7b863688272596cd47d3524e1ce49353296ce6b4544ddc5b25391d28aca6f1d3f566f71fd226acfbe3990544df1be6ab500028f301843899dfef38d658746eb8006d895a487e4b65f969fcaf4987b3b747740b3487692d53243ecc401b94ef8b060e707cc9b15da17b3a42c2e471f4585a6e605c913e2abedffa1cc3639de0137284e6ebabc9764a1a7bbd8c2e48e9abb71877f195584fbc04d00c3d6de691e5e02262de61290eaee5a290a8ea3c00cd9ebeab478e5da5d82c4861ce1e144e069c055f961088c9a10a31ad775de30f6ef57ff8db6fb011d97faf16593ac42bfec6d67ef03b32c69a2156266a1e20da19fc9d1418797db7b39a509cf04e7d8c56686713aa5057343cb4dfeb32acd688a768433dfe00a8b9e3897cd686ba49dfddb862ca84b73fd6c26eee23e430c73694dda8308912594809560af3a082ffcbaf6b52824f4c595a95cf87d12b3d9a3614fb6071c884e196262cba657bad9eaec0962126cdb43bf277a590d2e2489900b63cf3974edfdbdc1cdb9635897b36228dabd495d27b93e2f9dac3d34d3e10b3ef0f80d305010402da2ceca8ecfd8117f6cd94dcc4756d5246895822c12c4b04e51b3c6762751288d663ccf31e842955e1e05f0da7213d6f308ae029e286412143d309100a5e06a2ea083b0384cc835ac509b04be5b1aa8f7836df236a7814b3944763d27c6a251049c82e5ffd5c93d30576fa9003e141187fb8a352ac8fb69d000f66762faad0bc2dc6db16805b9d359166b40a4a4f4baa4593165806edfe96f3aba7e0e20043e000349d6961f01499dfe6e39d0c06857d82e2e9609c6ed9a407a82a1d1c27c63edb32f78ddf9c4d4cf2c6e809afee12ca30bc3745876220077e4269e59f34a9cca72a13384ad5d08ff90a04743ead75e1d061d16ef1dd824d3f8f7edebeae3c251b2ca39ca03573ca710b2a63528ed40415dda98f5cdfb0af292e177c3ef99534958f0f777f6da2173a8572cdefd6e03340c5c8e4900f64d401ecbd0c01d010753b6c6dd02184a235bb0ba21fffc63537912ceaae5f3c047474132f20bcc8fc3d9c2f19e232ae54bc5f21928408272671b624395fc57456b2b93e47b724f2af24797819272c984e0274d06596221d6acd53d5e9bfd5c4a05b40dda2a5de6fe33b018dcc9e0aad7881aae5c494f524cdaa6d68e4512d628d4960222c0fdd487837a15936266fd679650358330dffe9b7b55cd0c5465a3f13983909d4a578ced5f34f8b90fd6703665c29b7517ee590c2c24f5a05b9447ec6f836100b3f67ea78bcf07336f35430042dbb6c7223997ab9860389e040700c35687af662b0f09373ede7537c26e89a072c967914ed859f7021993987c7aaa52de792a18e2812d75c40943b7a7a6ccad5f8948b465350020c3fec9ce5049fd560200aa500580f0c0e0c2f84d95ad3239a745009751fc7ec9c0cc8f0026c438d058e40ee2c933849289e1f3663d4ea930fb17d7e056ae02315f729bf4de855eb63dc79c84e37c6dd94764456141149c44cb3547c51c960487746a6f30c41b5b31200ef631915bbb68e8b0648dfb9eb0336db419e038fdc6bc25b805dee26f30bff1fa21f726950995742ab50e478a0aaa1ef7e76da3d1cff5be8c8038437221a32d4b587a858d48833a9b40a366083ea43370916f8cffa6247c1cd4115a952942487a2245b7e4c45a05f2cd07f3e9a027c5b00a6b1baf2dc223d139b877f997c016ccf014a21b5385a4018daa40375a44dd18862cada6c5d8d12c5adde8e64ae353f3184da8fdee79455b008ebbf8951aa046cff2efbc4f5669d2873405d83aafa3f432d90f1a76759dadb03775d8116f671351ecc945842e4de644bb2a59429a52465610374036c03586a94708e0738f519515d8e153c754e593d50c5cc1757d765f57bef59d18a6f4610b3207961aa2b94df6565592f5706c4c3821056cc7c71755d9feafa51b7203195dfe2cf6aff79cee42fb899be71c1bdd4e89ccd0dcf7893ae6c2351ef1b494956b67d9f3e39567b25cbf292e52577c3ea13cfac8da6fd934894fab55919e7709030978c82e6c4b65ad8f67c58b5afdad6dbba71606b8d1e5cb71feaa8be3ab957638c2bc4aa2cd6e8c1959f2b67db0fd5faf96c3d4ffa96186254eb2f9d16d4f91c46f556956afd14c3fa29a54aa5f5fa19aa2caceb0a5d807e7f8fb86af593826ab09ead677eebe7ccdec22c10a8c76cb14055f5a2ad662309745b9b6d12fa05723d7d110eebf7a78509b9ac0ffd856daf5a2fa26fd1b77e6e65594f5fc78aaeefe1d52bfbed0272bdf512e4a37aeb23a8c79591b220aafc8db44d2c6ca924e8ab9b97aeb77e93381cf35d090dfcf3e7e82d8c7a520ffe99b9acd6fc9585915c567b4de57802f4fb8db33240e65bbfdf372b13413edee98b5abdf50f4443f5568ff9d6759a2fa3ce9fcfc2e9d495bb31bf0b7a7dbf0c5bf92dac2b837c5cf5fa49b1ca8a29d579515d8e942fea9c51adf005dd5e25552b7841fb374ae45520bd825ba3e5b5360ed41146d5b9303a5bdb0f75b4cfadd01608ab303a1d00eab63632a4956d6db6769b8f81921bac8b1054a67f0b52b96c0f4159876eff3b823943595ab604ad91a7ef7aef32a3086018d9699d66f939bdb02f6ccf8953b7a8449cdd8f01f3f38e4118a3fb3c82cd24fbc2fe94f2cd59720fd235ec6abcdd27f3d449513ba78378f43bcb098ad92c852c506ca95a403cf843a027837aee09a326d6ac26e2a246c405a420170e878b35b186611c7361826e16cf2c59582c62614259e874ee8162166b569398dbf130581b7beec6fb0fa642255a01ed7fcd338561f63f18634ee45f201e91a7fa11ea9057b7592255a225b4be6c96422fd82c9e2a9fccd22cb93021ba71389cd50fa348d5c3648d34aa87c51a3d4608a9267d2c22dac49ad5f6146b9c4fa792e50ef2d7a1101d8d5a66cc2331c624abed2cad166bdc8d7d1727d0cde229d57dab6765b6585397e70b0b8be58495a979b1a76807f63fd191220823d35da12c6b85ad7cf17a6557fc5cfe4923d2487625bbf4a269eff22e2fa45016ea5cf5a873bbbb6e9d732e94856ea49615cc79cd1013cf091d010e218c112e6cb2557a7cf7a4d2b0a424e59474f9f948ca69f01863c718b321314629e376bcf276df7bf145814659e5bf9763615807ac877df0b537e441e80f427fefed2f840cdd4127af766cac3ee85eb10b2050b9918359976f07b31a91fafca1d0d16394517a8e85e177fedcb520fd77883f1159dddd801aa8ef3973a7ed530caaa1abf7b0d51d7bd6eec67accb47edd7e6562ceb5f02ed68811bef7de7befbdf7203fcf5eb84712295ef2119004747f1e79bf5f3de7dcabee76381295cebd75a2de0137231d4ccfca5044d0115477aea4bae3dc549f1f8cfae99e736c39798d83b91d336ae3ace62feb1b86a14850b7e3fdd63c7d6a9ed34e4f8f18aec4137ee4a6c76bb034f1599241ede11b9c272bb3f5ce133df02ed170eff0cce9f9eb01e56c48d74deba1f19775a3e1ae6e786514a67f0e163ba89f7f3f173443ff8ec915c718419f18c3924803fafd1cfbf049508c918a9410f7fc10a30cb3528b5fe3061779cc8c48d71af1bbc6186ac427d004e8904fbc86ceaa084150f277fb3b249432ca08dd31e76064dd57f1123656eb8f1e238cd0dd8e1d9267a49022f5bd101f5eb69893fea7f45d64c5379837ce39aa85a23a24d27c59e71ca45e4aa88366b57521a0af94150901e5a7d917ea1d4639e71cf5123a6ca355c26ce3a15212888c3fe58bb01913d32d44ba8e9efa39c262306df49b5667183910d53ebc1da1506f101e501e3210d0d0fbf04a27bab91e19bf2afc7e915722919cb3aeb75e5b19d20c8dc68f9ec2462312455134b08d48571a3ffae94675f434fe57c084381a3123124565201a44ff791d4bc2bacec06af8f83cf5b901f42a38e683bf0e86c9a1a3e7df9791c978191b4d5d6dc402bab99e222bd3f2fbcec11f25414719bbd54814ad14c5b657c490beb08daac1cf82cd0b744a32c487fff9fd5d6d65dcafb63d74a5322032abba3a16325186317253b79784677450d2f6c89b0582970a6569f9621cccfe6e31fcde7b06e4fd5797d5e8f1957f5f34194804255734a1f2ff4b075a5abe8508222425d111a51aa95b70e291e828c7ca14566eea46df89705c6c1066d4fd5f2eeaae115b448144931985912af281208713135270454e890b19ec602dea468bc4d030b608c20554d484cf1468cb8e0eaa545137fa39556c306a62225141cf082a27558ee4505942dde80f818a954a1b7abf683672a62c9143658bcad5e550d1024a81c07c3b335a987d2a23e0490256b2f0000a9e580245158a26298242a1aeb15002ad9b89923084128851e3c5079c500131b3919bd11574abb0a852574ad340497777c78005168afa7477ffa83f36949445cf88e4e2c4cba2e44180c2031d19a6f4e45c6145ce94253428a8441b16eabed4f981a9ee8f807044dd20d405c218350733f1cc61bdeca2306207b500d5e5a0c0c6c3a0ef9fb5cd684c256de826eb7bc18443d04dd601c4f774ac8381b09f83810e62a0f6bf08fd04ef70f8777fa8a8a385a164ec7ee89937dc9dc1837c30c807915749ab6dcf20ab733776b11a1ea02f0b651dd6f981fbb7fb1c40a594324a29a38c92a2627bcf7c10420879a18c104287d06770f5dd8d35022451ba1a7fbf7b0833e95ce688a0a47f61d8d1c5bd8ee5215d21bbd8a80cb1de205575f7c23cbdccd17d70f5773266cd33f237dbe037bd6218665feaaeac266c8e9b3b3f10ef7e66eee72548b8d9cec82825f77b7763e98211792610bbea8a81c0e80ebd63101428c928a54b8f2ebc189f9d1633509fe4da831b6aa0dbd9dd5877f77537f69903f53dfb5acfddd8ead3f739d856377cc2443a1d2913a0001b68ac9c78b088213d077cd54a826e3475c642826e4ee707cf2860c6e170fb9824714c798b79ee765039edbddf341d0ee6b5db78a8ebeeafea266cd5a4f4f292999999999999a5a49444fad7b4181a1aae017d921b67fdc5dd07c46bc7965bd8b56a864b6c76188293d4b9ad480f59f11536304ce261527ec484bc1542dfc7dde585d11d7ac72168980bd8798043e8c2a323e734af9c745a105ad59709f161bd620288582346876ddddddddddddd08e2d1efdcaef57a39a3eb5c1e0692728a8214f48aaa8848ead383a440179094a46c60a03e1b9a746802e835284a32333333335332b67330b462201ef314327a8c3042a7a1d1018a824a1ee3bd689a0d1c7470e15111a373aaa2c93cdf1e9377d934e320c20eb80ddac65fc64819e3420e4172740dcd698a9598ea621c09ba359366c255db34e7e0407a71d46544f331201e4e9cf433a8065a33ad025f0469c0fa7bfbd885e0524affe1fde046ee10e4d5bc2644de112c2fc963f28a80bee5a89b0bd586454724979db99eaf189eb1b21d18869f6370f087c1690740c0670d50f761702de4886119061c9b0c1f774903c30cf53defc009a8ef4924f736ece0192d6243d7fd9171932a594503a043f7e811ba07f2715548c357f886a0f0bddd7d0e775fa2266ead98e2caa95ed39d7ab0507fd42d883bc18771b66da054d77db7df4f7165a70aa0ba29b6c0a9cfbd6d82be8c3a51f71c83392fd112d112d112271203487f37a9afbe1c233c51e17b676b0413ccb76e2d977d5278cc3c78df63ee292559265b63c3a33d894a49a24fd23e46a369826b767667955825b060c1c179a557723aa226e846e3654476a9a77a7ff8f98d79aa33c0fc8d85501d11aa7b9111741ff4c12400b250f9fe55853df7aa0a65026ccc03b9ca9dfa43a90a958db3780a13f243a9cacc49cc76a2e5dfee39d82a9c6832b33b5c488eb7a8fbce0293bba090a0e305142a0956a7f305924a729ca48a1e1ce176dd8e1d6ce6f66ed7ede4eb6e1e85e8a885db753b275d39a0ef9db999fbc551476877ced1d83e627e6176ce5176ed64841445511425638c31c628a3845142caa9a65846296594d4524f822ce62896138aa264570129a79aa298a296a21e45554f4a45514ae8a28b2e409510dd2daf5cb932850fa45cba6e574de976dd0e56eedabddbbbdddfb5bbbbbb7f77bb77741516eeedde3c655c4abafba73ff250ee036ff7fe34533026fb8c47102999953f3bf7ccbe0f64c9484177772573865cc82b2050506555227a8544554b8b68e4dcf3e1101226a51f12c021871891a8655ffe6d685a4bcbe891a49046ee8edb7d8082082e7ac30d3788c670ccb362ee930cb3762671dc8d7d51084442ccaa79682a0a15056445b1fa87047098a24305ca61e79a144a1d8923a378337d3a499cae02fd43817c70edeca2a29676c611c2b94f51422166513b0be11c45d44283534c4bcb686d68da6824e34591e1ccccac423b67208a73671207491415b6858ae6b7dc5535e79cfd404f8659399338a22188b8eb39522acd203bf0d8f0e324011ca6e890c3ce943812e74351d64b32af199a229c3ed5a04fed83ee9302280db5c4f9c4a0e3093b2916664a9c18501a86592731312251cbbefcdbd0b49696d11bb990fad9b9c491124708da4e8ad5e4902945c6b4113d618059a3477ddd97cea57341b9a05c502e2817940bca05e5826232994c2693c96432994c2693c96432994c2693c96432994c2693c96432994c5040ea8848596f87a2282583b29c0809dd6844482811928f08c94784e42342f21121f988907c2e2a44483e17159f8b0a4c52371f2974aa256620032a4eb0a0b4ba1c2a2830019520aa1468d1a305162d4a4dd0ee6e6f8e81ad3d83f10178dd59ef5cc27432cad7dccdbb458ca4c11426950614f4fdbf8c511988266c029268a814ee598412b2190100002316000018100886c30171402c0a1461973e14800e65863872523695c8237114865118844108c2000cc3308831c6188090428a30ce06000b1e6ad3c152c456cbfb06f53a0f340760027c6795e9f1b79008d4d2a33f86830072a59292ddfb176bb028874a7c0fbf78a44d2a882f1488f356fdd68b06c38ad8dc336aa30b8939218825b27bc4176d91e7e3723826574741b76bed27485dd349cff550fba504b8cd6daa27600bdf6663e892c0cc5dfc5262ca5674d88371bd2ab9d017f2bd28de5bf73f3ac5bd58eee2d0f5c4db718a2b7c06a3d673e64b7d738fa3b1601e85760918cf6815709d1f508b8dec2947ee5b8d3a6897b2d91ebec6d1f0802a093059011b35814aba52465a090c72dc6bb122c544353f5ac056e7115ca2ba142bf727deb807d89202b4d232c75241f32173f52a3710a6782f656661a79458164600a6bd11d4f71910a3ef950956b6f904d888c3480adcc9a6d2b79d368b7c75c5a7614747f08a06dc1fc01276c5235f60ea44d0cae1bb41351839ce5b82d854ea8047f1c4260275e6e61df1653c4dfc4cbd9bed34b47c1612b6a5a7526547ec25531522a4de00cc4fcde5de2132b926e9b41fc7659cc9042e689418ae32ac8323625846a4170e63b18d5baf1845d967c78eb84ddffb993f3e610dd1916c82e35abdf781815efcfe0cf5391fa21d5defa0bd97e09c461d7fd78ca3c748e0df267966486ffa22056d9d135cdc21fdc3e4837e06fce52f8bf2b5d80e168b91a989002838306b58f8c3e156fa10e0784eed31a348dd1d11b251646412805e6a81a52770edd78e20f76ebc7372f0c2ac69c5c39d6053cdb1531ff70481312bc8e68b863c492cc7b7a2c03b26c43a07c9197f63b48db33937335d6c93df8d7d3e4ed5d8ddb486bb5aa34563c2f6205d4398771a79f6a997abca081844b4a307e43c62e8579d0d69e3518a8560e79aba6d83e787690ef012275cfb49ba5e38ec833d91be282d177cbaf872467f643ef223bca4a54f6723a31b2125d4809c79377e4483c7803a77e597b487146bd4b952ba81d92699dad499bade164151ff9a934d9d2d6bff819122233ce6be135679972c843bf8bb5b2acc938b958dc217a30b1449f6f9faa7c870fcc00431eaf301197d74d24dcac8347cbcee24e8d907a85b255a07d5d181779cfed6db59959653005b0beae5edd5aed9d92762865a5cdc992182ab020e5c05048030b1ed2dd4f8a02ad0714506cdbdca8a690fdbe60c851e2b3f8714c9238645cf92317506dabe543cb799edba22795c8fc10202d5a66aab097582ad01e9a3b4c07eaa997d8d2b0672a9f07d7c1ea1af93fc11845354ffa7a031af121407d281745065b9a634729b3d02134b95cf21c1ce91d0e0409d26a273e27e9fd88794fb39adda4c0885c68118c7f6149ab2e577465f93e9b2e23f362ee626d4c581803c53dce55365bbb6a815f9721d4d025282b279793d44f708de9624c4d22000260e54266130f4aac81755e9491ca8dd9ae185b32f256eaaba91a860172b26b579ca8553e6385724640dd057314c6b83e5855a6b32a8a9d983a0079558a26c9c438fc7a4ed26e733533e0c875de9f1505a5600da7d0e76607b50dfc9b7ff42c5251d1d22f78cc40e5a36484ce52bbf41561b85c168cfe85542f8a02d3983587b96602aa69a78285616ae2424639974c1ecab661ed44e9a960717765211fd05491f5cf141258af0af8f8930c050fbf309a8e991e0a34507d611df6ec857f477a20fa228662d19113b72986aa34335baf2b3d53050ee5d6f721926e9d31f44ca480e077b18798fb3dcc5b717d099b2cf5784072684bcc352609da3063f70d96f3dbd01b56767ff05c94ef3fa7c6246b03864d310273b8471e619ad04b4880f8d192cc7dfa21cd9eeb217297207350965bf1cf2408d04f3f7e4635d2fce580356d7dcb00cb8f50f8754ee9fa03b1259af567d84d4e6e2a9617d5181de2d11419412383d692d51636a514fcbddbea4d4e9e9b93012300e1e340d7e7bce0f24777d3c6614c4b62c64c6484bea7093441f955ed171292b37274479757b7b9437ef2467bbc68c8d6151c6af3fc09e8764248ca434a7409e956d76e443a33c57a94c4383dade8e4d33235363a01cc44283275d49bcdd07966b57f8f3f5c6ca6110e73cc3abec14d4332a52a2ec709a29e32ae64173960eb5e31027646eb2f3f082ebc13e79deb222adfae116cf364bf34a57e2ab384d53c3470876b633023c578290d9673b91755e8bb872a4b9cba210d784d218f616c2697b31e7fc5f0783724dcc1f51342e0629f3050a6c1d7d64da4eb5cfb60dc053060e0c3b0a4774018b30e807e95b66bb6d0f1666308fd325eac5cbb4189373fde4a8651a3af1a058897d31da930456d593fc88b5b30e4aa3126de2aefb27d727f6cd22a38cba469c617267cec363319a808d8a7da58abde289e89d6b797b4b89d9b0d88b2e5aed849b00ec5b6470552352f43f781c24bd901d0498223b0bc237e4c8ee589f9d055ea6217776601ec2a6b6d8a93fa762a2e2ab8a9c9d98d64f650e17fb2adb592de646b35668fe6ab09e11a4d9cfd6bd930b753a8aafa562c6ba9c6de9d425a806a578c8f03dc57ec9219d10a045ce2d776efbaf312f73ea18b6a5942daa3e3a49fa3fef7c72ee487e4d1e3ac557b8f2af7811256f9210329772fef1992b6884e916610d5c19ce515d5dd913125fbfcbfbfc0a7971e69b1c9db137dc4cb8e2bf6e00b5ebc2d4366fd0536d24b6903209068b7766ce43f90cc89d1648b0e13a73b58add9f011f95789903866930794d8066ffe9826f334411f9e2b46e90e7b2754c24d4e0375101fd4c2a71c1a1b5cc023b289faa458f8c42e19713fdc5444cf9de4ce1b6ecf821d1219742fb26c9d0f022be16844428460edf9db2d6f818715f3a3e6530dcaba848f909614af1a7a62a4c4cbd255c815414389370cc1fedb077a3f55722bbb2a0b1d287155090ce6facc981d0c155a04d2b3a569dc4ef2a2008a76e060a640741029e7651790b1e116fa5952daa3f38491540df4581a4fd9229707f35eb27725a016df4eed95fff89b963f49dca840297c5d5f6bd51a058fad606990528d015010956259b487684af5597c0304f3ee2ec3f91addb7e70c8ab53a7974b2ae25b350f0c0863756e92a5879e608e8e2425eb413934b049a2f6895badcc12bac39547424dcbacee13121d0794bdcf7f05f912ae90295cd128af0d211e6b14751b726ff62d524f82cff72fb6ba76338b3972ea395becff6bd2aac5e7078e9ebfe90187d29425c81e4b7d0e1db575cc3a5d9dcf5f9011ce725caae7b5fd96d9e2554e07459b0fad7a939608e1868eceef256ac825a7082d382a5125f9ca00b321612698fb088d1485b37a2ac00e2540b5cc9789286948c86f1820e021fc99cb11090e39c7f7e693161cfb6e8622e5c398087ae43c494fae76e296937c5a1a64575a784c45826a6326968c04eb106580a21fe6fca54a985f20dd6c8e719831e59c4dcdcdd40e0b210409ce1aa88bb24190dd75761790b3a288f6cfac3db21cdd48c92e572fc6ae17bf74518984cfbc6dafe8bd4152fe6ea6bf709abf28cc572d62fc02402ee51b5319fad635b5ef7d750f2118ebaa5c36c38498d232827c4041be2b563e42019d22edc7c0da849b88985a5e408934f727c408e13f5c0ac05747bbe0e120c9faec524c38e5cfc1ea6858c18718922c2b1327964227e898231f017bfb9047d87b9c958b1beb1f89e9ffc192100f6222e3bd929484def8b476779955c876bc2b0d2f81613e496bea2ae7c26caa9720387e8a112e09c989b8e96b755cd91da41f2c2f2790c41df12955a1660df8d62088dc1edb08523f3e88e629cbe87372a64b3dfb098d2d458caba31b5319693a1307ef649e5429e82d429e518b90a04b4478e636e8f931a5fab047c0a64b1014e99c069b6013a1d2353e0934ba5382d0222b0e778414740ec296c80423ea8c1e040de109eb5c044e57accd69dca0dc84ba184305de6f31d8fcc31e31fb3cfe8ac0626cf66021fea515e277ac3601bb9207011259c79b2b781094961bf100e20ec29eca451ac6f665736949ec202829e5364fee441d849d60324e8ed8b1ebce54b9b25a418a6045947db36e875b8b908ce383572ffc5bcc663c009e70e11f6146e2501f2798b78075c04b166583bb5fd4cff81eec78e1f9e244c6b760e785e7142730de38d0554d650d570f767fb3ec9bef1dae2c7267bc1e8cbe706ed12a63cf3b71d8fadcd58a3046bda75fbc992b3f287abde5c26d7efdf244b1957542a8f56705a3dfe4de7d7501d7fdb551f231f90869223fde7b97264b6f35d22bd5da977ef05320ca3bee59b31a430721267d595c8c19f9f4f2a4eb718fab9e50ae4f93704a3df9271558b572ff0b885c7f4896f508c8b8096af6f3f3463374d52fe857be6ba09ae32b33db6fd30c03368f2cdf05320d96c00b397c3c9676e98a0afbf40c6ba00a9b60aa2012b1ba5d9b8707322812c32b7879d740cbdba583078d25658e3fb72136649111bf9a8068dc8cc0bafddd6540d58897e1bb904d586de17e32b567411faf050fd201c7fc52462081e0ff8883f8bdcd0d1c7441d230a9bd8f892bccf3e873de10e4d300d456ee9a67878e80d55cc0013b09dc27f0986ca5fe81b4ce323681bb86ac06981431bd4b5138226e90be4e720716bd9cf0bc07c72d12020d7642b4571fedd7cb8d13de65744dcb31291c92e0b53c9a4e31eb7aa70afa61d3770645050fe45f074205346a95c416954753e7781ebd063feffbdbe8d813cfeb13c097763850c6abe634d6e71e6a342cb50e77dc54613c376402608cf036d26bc4e8dea2b0aeca06ede17fe8ac02611af3a09b694d58803228b83ea15b3e328aa5f9e779408555a4f890f0ea17487e069a26f31b55051e3750d869dfd70691005663d189c8053ef63a9e6a2d3d5e88873ab1c18bdb45afa142a9ee2e961752207dba9ab591024c36191f446ae3e61dc31a0e3274a76c71354b9c107a55a7e4836b5ca767d3a87ce69c3e33406f5c0d01cf239621dd668a359957c2636bb9b1238405699b3e759d2cf558e083eb7b1ec3d221f9ab7deee958c66f2693f211e2d58eb3d2c7ea5d5c93cc0fe2d5e3a4038c8507aa5c2a402e4cd6d2640ee200c1f58f1439e88784fd1b54120c974e3f250fe3d90996373afdbce406d79040afa82caf936d8bdecb44ff44bead8e5402c2013675bf2c412284ad2e79d7ee26d268a1727039aca16916a18a1d15a9593009e9aed14141b648a596286c46b7d71eb3979d2b00c99c2ddd0efeb434296b1d13c2bfb33c2763a5e0f266e73a61c2da4139cc2683534c1021642b45e448f1c7ca0d9c1f475102a640d7d447d0145e174c2928d678e9a1d9c0fb7d136b018ed12c4229c2176e3abd795b37c735fcd52324e80249da0c0cf04e21803babdc0aa7856c35c07b477f63de7376a004eac7bd7e6de4897bbcd0af46c7a031dffe3e1ad02b3a13b174bd600b576f91f3b7433dd865f6914364858e8f64a60fe45c81ca5720a4d6da5f5f866be280b17ced5fb2a08805785668b33beffafa3a4db2d0940f4ec69c44707e8bf76648e88857fcdd0893682b311ef0a36fa329138dff017a8cb4c5503eb835088aa653f030f51f9deb5388f0c1ddb3f46ade36c80afaa25dc301282ee37ea2f2633be0dcd38a53828570366ea37a17a3ad93e16e6fc9407f07a40cce7438bb1247fcab158b2347e291070d6f497f0b6dc6fcc4558165a7d01774a6f04e8badaf8397da5a8ec4bcd2ad3edb02d0dda08c4bf2608c5a92383afc58515b69503ba0f8d2e7e8f04cfdf2ea6eccced1855bda71b51117c711e7565dc4bfc024043e21fe9381c26513a66f12b51de281767941b856a4a59eb1c23a01a5b2da21180aee64615ed8562a9190b8e96d4cc2745284c4f446eafbe40e401cda55fb26997bb912ff528c4ff3c363e62c35bcb3a5f718ae6e27f211dd9c7188422470097073294b4c918f8fda5330ff8c5b132576dc11480c5cf818fa06a326a539ea632baa03ffe7f7cd88c8b165bd9e15830785fffbd349fc4eeeaf906ea4c7d8397e577d8c96f5d67524101fe724b419ece99b742ed4e7b07eb777dc55e4472101881f636d67c266229fddabd50c5e60da04eddd7446a7580fe411cb1979e2165efd0ab144c276b2e7492e8c12e9b75e5d2a1d0c6eb015146534a54af00e47eabb56a97e41555b65ba987bb812838bcef2a8e52d9facb5eeaeaf48e05ad333f80f19ed15392e2e03962281bf20f20d00d144873a663d4d14a6b675fa6ec7c3ed16a26d8664111f44c4477db245197748182f6c7b340399eb27f34034e67fff6db5aa1c7d1e2f3895d32d2fdcec58e9d02faa787f4a377ded1c893747478a7fa44425e59102b8cfaeb2eac306edb2d67409f35f07a3ff620e1192d66fabd80a688ea72d4ad8f5f4558667f28cb0551a66203d0ce731991b07466e0e06e346c15c10ca6336cf88ca2c36d27ac24abb7e7f84cde80728f0f3e645619cff635ea3ded2e1466a3a69e809748db27deb87fb180a5c51d4577e61b21715603d6f7fa85f8d73bbd58dafe7b27395c5ab26a8d700ccb707249664fee7d084612262b9d4e29f301096585247539d8d7860eb59fe9df2197d294c8501ad5419b6433610100a891511e73578b7252097998fe08c14f010c34f68c01115a0fd6bc7826fb9ae33b3f440bc09c43dca12f7f7c91c0b5850bba11b78c8408f2b92b928c7bea86171c56e5a6d2b4ef2bb30a07c94da98892a3ca5c86547d973236039711bc279d4a604ef41fec19c3e83ab905e27958e1445ded925b519b96ec42974bcda62414a9db9922b08114ed11039ce370269e6c75b6923a087e9fd8f37e51cc249dbbeb88c49b88541e739dc1b8ee93446a51a51e890f179eef3c06169e6452733e28f4b2724f4dc133f86d498fb3891be566e0016abe8e2530d2bf5e6a7d318ef5277a687895c6ce6890027cc9679ed7830cf02b4699d36cac1ff1f61dfe5b2a4f2618f36424d51d6956cfd350c89800bd2476cb16c4062ecc66c007882c90e90040ba201e99782c78438bae24813bd72b3e4e0440e49c29ba4ad01cd0112507236ab926a48102d05b4d1a4cead505dc84d7c4b01047b7c2dc305ec9db54fbce96da3c3820ec168d9cf65771460ccbf79943640e0bd9133dffedf575bda81a827b0ff3bc0bd4b28534b1e59762952537bedb891ebc7d85c5432ed385b3e6da970e71488d83cd899037c7209efd13da0bcc26d7a5718bbca341cb46628bc71d5e978667687c0fa59fa86d9040810ac7eb8755547dada3399aecce9462b1d73886f19cfb0cc0d23295ad22aba5a89f5d7f362051efc8e3f2b69eb3a595ac765c378e636ef0e8f4a004da1341400fbfc63b893c5d541e35fb287280d8722f46edb0a2912545709713f5b4ac270058ccac71232e127bc76595b09dbeee3bf764602034a8d3cebbf1dd3500116186417cbf2298b1b87b876712d782a076770fc2e7fd936360ef2830ccc25e385d36843349cff0cd73f97871486d8d72cba082d4c77890bb9535e9c60f9e5574f524336bfa51bf1ebd59321914d9750ac33949c4bf44eceb48ea52d215c4c69023ad090e29d532859afb176efbe8d8924d51be65fb9395e0dfe89ac8de5a8d31125906e3312e6ae3ac60feb58bd4e32dbb617c7398d47fceeaa7355b1ce87235597e49bcdce6daf906d777c3648ae357030da96f43fae3eeaa3004633115bb14d61754e213c78f200763c5129563731905be9dd2473df5be1f4907d5b50f3022e938b118f2e734b108f5310b2c8f253216ba9515eb47f5cf7dcc0eddd513897435429c013b9f01f996176b6368022db0e4de38548e77b89ff4bc5ad162cd2cac16c8cf42aa147b91b258d2a5d77e564bf4c95abd0b3f26409b1818974c87b86c444b68e49f1c0aed97cfbbcdd16903d38608072008c5e55f65066bfd6168b37802c086a711a62c4a1c3153b689bbcdaf07e5ba5bceabe41188333d7353fcba4132221eb8fff7ce41aa4b88056bb7dde5db10d26b222b06ba64c2ee1097373af5de8c7720f1af1418c6ca82fb8621beeb8f6f4e2251810850431670d12f62cf1a7dffbefd82db908d9e4d5c0bf59b1f429ad79811d20857b90a1047ad14d979c0407fe94ecfc469b14585b607b4dc1b469ac82ded0af100bb5670da6816f65d0f9f084ab8d717ea678b6e96ddaca608b9b44644e66eb771e0fb0268b31dc23ce9f146a605fc637f94befec9a14e0dfcd153db84d60e75c268b47017a9ecef45a16ccccd0b7c2381db27d08926f11cbf9c4140494c262db3a3627c17800537a21550136214af7ae987a3b9248dc8d45ac161a1bc109b73dcbb662a4333972159b549bbdcd54273e6f7e2717740be78d7cbb91c9487fcf8d654194c4b1358ed57a7373cccb1beaa035169f64a09ce6371c94f2be79ecd8ae1d07f9e6cd8d4ff81c3e3cc3872d06b532b3d648bb1970ec95c18f9236c5fffcfd85106f856d56d4e9d3906ce5d341cfbfcdcb2dd2cd8ee2c51d0af69a68c1058e3b03b2c35499a941994bbebb1110cfb07a4ad499b1f2ba63ff8b9173dbc71373b886430f1ac8a4f330726dc8defbc53c6c5e00d011ee1d8c763debf6e3b8a6b46f994cea1e03686543e4a61665dc17b2a3815cf993041bdd7e83d84502c7981998ee157ae3fe20bf344ae65821382ac1641b3b9004434874817b11f9057b327bad99a04bbaabd3b650b13fbdce48489e9bd9a98cf3ff9bfd32891200037a52ace7e8fcf22dd38a5a2f9557b928958cf04db50e03c0d6d440885235c7452946c6977f40d951501a6a32113521ec3114bcd462f787f082df05eb43ca812db34b76fb83989f164fa3212364b23e7a62ef36356df682d40a11ec2b22e75d1e3d0b4499d0d8c890142ebafc0005459d5940ff4290de4e126a873941d24544c849f47b98bfbde1719b6461bef4126f76d225d6f54fd8d26dd0e84c8fbf58a540d33b7cf5c912d74a7a711f6466b7fd17623b59bd0025ccf927cd48ec263ffe092ea5f0090429d98e3b07f4a9a003dd31180cf38429e268eb26e72808c73ec8883b07dc198738efff35e22083cf47d78be4a8a02c4083d89f1f670682c78ba4cbb87cca8fb05c6f17e1d4287c5817ad1ab21951e2404c67feb88b610335c38bcb3cc628bacbed9e02cc03d813b714278830886727cf6b4124d05e5fa5699931ef90b7662b5e61916db258153e8bfabb3a1a6ea16bc00ce4cdde2f6d21d08215d4817c00d2f90a76b40e3fa5d5b6985ce33bef84f7c1d8868d697bd8693da6988c45e2caeda3908123ee2e32422922dcca87b8807df20c403d7580c88992a595c6b1b6a6cbcda7794fd7e0607b57c007452b2111bcd02de65ace8a66f42a2200aa9ab1cfa80649aec647746d7fc30e41d715f692d4a92e73cc589e7330cec21293fe554f7a23ac1f4333e1936543a29452852f8e94db93131ba6eed8a048615de319a891a69b7730e804195264b6e9960829ca62bf4fa4f70fb989e29aac1d7523c6db2867cda869bd738f19b6289a754fb104008d9130cbc4b5c0cee599e2c3d737ec3433e700a17c60a590e90bf1e1fbf0335818567b985f32a32b2247799464aa2843ecca2898797730287119e45ebf88bbdecfbe444b9f985a62176481b6965be42423272f9b8a810d51c11ea9069f0c49dd67f0d3754586f309cf06cd0473c62106252c3a80a5dbb0ec641a3416dc0a7e1613930f82968fb06ccaa06cb246c4b4d8fbaba278291711423d59a49aacb310163e37467cd88de9ea4f77ccc41d329c31569f0100eeb0bf4b24a269ece6c1e6360d545d9dd968e8dd8fbaeec1b07cf22031e026c07c3fde4637ae79b2f84904e503f1a37b715f2ee72a75262aea108a207cd8fbb245b5af107236e3f349fa6388728cf79a5c2bac1db7ed0e007b1af9ecc3712a9d09f8de2c47352655169ca81c644b531d74a1b10e644d056eb939fc6bf8fef015ce3bbdb9c3dadb493734e7228579e99071d52c08a66778570eb8dfd127879332aca0f13f60e8d9b1cfdbd3446bcf138911bc2c8c9b2d99b046e19173009b15b9789011a581cd40d97e6bad18de104b079424005521c8e7720ab3770cd6ba0782162b9e138160086697653d5ea8e07c9268427a5f64274e8fb7d41b290947d523c741c540303ca625601303235491a06ddbf62dc3036d6bbda64e7400ed0348f5124f28a4044afb8c93e3736cdfa4240611a5c0e8857072ddfed0de95dc98b636df7e4817e8eda72a35e00c7b7f76ac8f13a3db79f4156bbd8eceae50150fb1b97a1bda54f9320590ca29968e83a609c9767c40961f2d46c5ce5fe53b4d27f55f544a7ebff37ab51a457aacbb258c26a70d71d19345d398112ca0a6e74259c0f0120de47538d7f11da0aa77c8c4b80cdb958541198c93cdb6ce37a0e94d912704e0dddc55c086e6c4ecbb625277f6adf9e884322899be688c3d20a257c3d9c6d803a33a99c09c3dcb667275c07adb34b0d2e4228e2fbaba6499acb4b13b1666f124003c20e1c11fd308d475405d068cba213000eb64b58ec89131788ea5e23cb6e4e8fa552f66ad549feb08ba07c03471231a482d751cb758b8052f8d1f27e6231ed0622a01ae0a5f2c86739490210c4141020c746b53abd37d99d22f0410240b8eb50b4635db152000e218b01e5b0e3f33da0c6fa80c2ae02ee20c7a8ad1ba4796f531e0872c761cec756cc098405f27b47810980a86bcaa2d48907ce6ae2dabddc65d1b8a95b55120b5e3eef73026c1f749497317ed55df61b9f1390959681b52817e4837e002d490436bbe59c3e2314390950104005593155d96d390fdba5f79c6cc91297e3d2889a026c961a3340208c691ce76b79170be9467ab0d3e1efa588499c1d767c300ba22a8f769c0f8a7b35ced877558bfeec86e61ea1ad42fe9b2e984fb3662de03747ed83c70c4baa1a01a07950f852699255dc16441098e5554db6f77d8a531304a40a3d56513cf0c7b8ceb96c7187f80e536c6f8e438963b39bfe4c43ba1dfd0d0aff795088d0bc37b62c5c9a205373ab1a16fae31dd1d864eb1a2a079acab1caf32ea240fe0326d279057aabb2a4412b37d86c7ea322eda1cf98563bc8f2859389f774590fd9c6357a9d89203f9810cc117551a942897eb9f516f30bcbc47206c00770e4de999e589b3a3f5985816f5067a6d9834c94a25db5c8e42ab6ebfd2cedc1d993cd1cc8479c8e46c94340ba54095f0823eea4d48c08a29b511117314fbaf5fd603180ed6e17e7ce4c5feeca6b13086202f47dc96be0dcf798e4adc925a856bd726ba130c2abb3e019dad99a60f4c196df8479d200fd694c5590c3efbf3ca330a6127e5aa80d819d412cb79208ece2c62fa11d8ade40b9ae83b8e35a8884e885d5298168dc1cd65b4476c12c2ac7b9f8e92c845c47511a2ca2b3baa9ac2f894bbc777790f8a320c8b697d1f63a8250d30ab600ef319aa710d221b70b57e50047a1da992e94fcace6037fa9c0692fdd45c58bfa4e67e6600ab12813c3e02cb355a64815edf82af84568854470868598b23061230555238e5231385b0dcb4c237445658ed82169ccd96592e42b2317e02cb40a5cf7c6887a3e72fa109aa57e64cebf27fc30f135383103ed05a87745fed569b3938a336b79ded521cce3348fcc3c03ff53b25dd8b4feae4c6f99b1dfbecb9241cda63d2816adc18f4ac691330ddc0e29eb08ccc5c3cdf68b1ff86932596d8d9fa10f083ad9bb4f513993653ea0a77aa831003f88355dd854fbbd2e5091cb04e3a8312f6194286e592e11b87c7202bc8743de03489232cb1e537a70a3e409199035a7a9adf39d45cf79de001d095b624f2b3c384edd495705b043f889b7cb664cf798c1728211110b5883ad56c4b9ffa2dcb3c11fea628b299c7f9362a93f0653fb060354db6b20f37ed068d0eeb1d019c811ceec8488af0e0ec738355e96b6939aea5601d76175e4eeab2574a5975b1a83bcbeadf0ca5ac5c3df406cdc66f059c76aceb2c77b081aea0c2c69e69c612a5f181184c8189a64c9056d4130665a27ff1712f7133c9b096e6e4b6dd70c156c531388f471e357e6adb7fde65b152747857a9689f14ad65dd9fd25dba9a27c821c0a1bd3bdfc30d1ee6e74f5468170ffbfc7c55cec2df822c196f4fecf00225effe6d4af35e887ac72237524a37f7ef163a3e0aca7b3216a77e7df5e6798c38f456debc08c1f00cdd242539ff4441f95aa714f4d68b083c8470a546362cac7611f240a391ddc6305f75e87335033024ea8daa200e031b42d438559622a3b70b73cb1dcec66735170883a567fe413c430ddaca988c05d3cd56661f5b19d057954a0f49eb6cb4b74634869a74d47c22fc0768729df23d80e7e4a801c762e3c41488a6bc10c028bfce5a992c6f4a7eaed6b2695653048b0c8a2e8deee9ebb8c7f1c5e764c500eaa9a9781eb0a64c7b620c91a937468a2f35618df8df6b23af4589e5822f9446372a0f2a944db1babca9fa938eca9848b85f1695ff925af04ff1ea5405af2cc7ec2f06fe821028dc393a0ac5c6dff562c11beec9d603614d0d91dd74766d383ad38cb9799dc173783da5c2439bbec895c328baffcc3d4315c83bb5451aa15f3c04e3d5988f74fbe158f17b8a16ab19d4af490571a74abdd6b94f2f6b124d05e25c52a862c3c545341726d4dfe7d1129f8d3e7026558d1efe688635ffa37b4403da3f073dc29f47212e630134ea38e8bd313e12306c6b957e261ca4d64d897405924ac08e74d11615f840d7fcf817c8f8bd5d5569197e876ce13c7c5ed725211261bea0158cffd7a06023745b0ede10b32e74ef393823b23142ea2a29f690bc03b05f3322f717e9b90fa1b590fb38376e0fddd7f97d1c3ae4b85e8ecfb4b09988fddc7f26d4feaab48de6073e9f4c5769a75a9a08666ee2712f6eb5c7ea8cc2035f55a9941c998046f3f8a270f48b6c3aa06358112eeab6630023577274ec021d35f2fbe0f68d42b723804d573d096ceb49bd03cc694da8d7179420f3405095f2a0c211836f0a849ea1d24bd84ed56a50c2c92e674c3d4352c31966f54601dd931974a59767748706c64e101ec9774a98b97096cb03c25502c2c817e3b0f309decef3215b3abaf44eba89907094cbf6a98498cb62c9ecbce9cf7f64abe07510eafd103020c6af7d6eb716dc7dcf2be5c476783d868c3fe7258e0f26c60fb419dc15adf3783adaa2b33052eb0665327a5736e1434c9ed62cbb9a50afc051f811131a6b272538533c17d14d30698a09a3e4165840a81c9b44d2af62077f5a71885c4f3f9e313255dcf387bd16a34d1a100f1b98b03680d82198d0e967cbf90cffe006a66344219d408eba31f59da1f32a4743070ccc865ec988c76101127bc06210f02c8eeae415f23db25dd1aadf81eb2f684a79adf84d1f10b4d71617fbce58af49533b16e14e890157fa26c9f28c76eb8e30632e7d355dbe81fc6b592f1b7c251a246b4b4fcc3dfc907620e2e8f77d895b06ddf6faf408d09cc509c015ee0865ad8f06cfab24c0fcf28a4eb2688148d01abc84ac1d1142283e25d331659d06731702c9a4fe4b3f57b4be48bb657a9a55d625ac9a21ae5a16b3b233a925c3f31cdac7c3a1f906038c7eee2ed427f200ebffd3658cfb5db042ecf0de4aed58f28de97d76c1d87b2b9530da56742026659c500c094cc2100071596534636b02bfa8814159fb5ef6e480cfaf089a229715142745740755b688edf122542ec6ffa9dce1725e87aaaf6f8b72a1d19c15323bb688c669d0328d67a33b00881d455a182122e167cff1364767efb5d66162d9a3d6f98b8ec0a145ab80e341dcc4cf5af2e89ee78a9d30d08f661f4d40693471e45918e6d18afc8052d03137040253be1fa6657e2c8c20b84ef178e325a2fd619071882e8af4f99f22543c8e3e136f4b4090c179574c25aad7843e698ff6505dc27bfa9856e427acd080becfd2b738003ac4068e32436948ab3104aad6ba6ed4112a1f17685c5e1617dce630cc8bfba4bb021960dd2f3c6c2369bea077a57f056458c07651145437f7cbd7bb5b835ce99dc8a0efc197d38fc797245b4416392b2fb71bc540b380f488814fa1d4012a534089cbe69cb6b77e9e98f6be3584570a620fc6c278c15e5e7ce51768360881530d35af4139641adce6cfa6b16a0c313ec601613fa4dd51d63b2aa63a29d79efeabd0bd8999e40497f823abe006652f79dd69337ef0c11f2e080518f5b8301044e8e4118e88f9506004ea50a4230bca65ce47812e98498d6ebc55ba8e43efec17a30f7515ba62df222710f72c84f3d6010bf1bb7fd5f58e713d86b35e8e68f83686550b75ece386cc47d7bf566bba532c3bf6751530580b7f662f6cc57756dece9be0cdef4d3a8568c2dcea52985e737bbde7e5e4cacbe157459d10bd9ab9d672e5d96072ff544e7cca2fc1aee0efb5ef53fa49d063f3af9784e965f3bf5b9b31709c8140a63990c4df6622b4ca64a79457507969561cd644bfc894ad0bcecaf2cbdf2f6e31d98345a28b6e134e881111c0ae465a92c02e2f75008ef22df4b774f23b0c7e17e86228f405c0b76ed656fd649324667f5e25b383e8535e5ff0574fc192cd267e9fe125a73859de9fb94fb706bacbad2f29dc9fa96b962efbc07b6a43b35a7fd8b0e59f244eec60953c44257d4d1397f947776e40e9f8e9b6cb835859c6d103db080c77c9c430bfc244b29dc033e1e2a6a09d050e09fd7dc0bbd0a467bf273e216d1b04b04e41a4c274f6d76fd1d6e960cd0380131f8c637761943bab896db2bbcac37a1d1e575b7eacc15bc14d8e7b5fa157e587460f4e20c95fd63c3be0bb4ec6d7838e6476b802c58ecabb0cc4f1d1789ac49f3de649c610b0f432efdabacc4ed2aba93a4da3623aaf28c99e2d103f83f2d5c65d1babe5503e9a28380229271626ef9b295c0c868b580451565ff51ba75c9b2939643d22333519a077f4255083c5174d7f1c3f82efb202e09f4b122bbcf71e35d4f170d375cde629d6e72480aac67527b5a8d87b3f1ce5736c00d7e1350813fc8412bad0b2a9a96a9e39282a25abfcc4c76983207f6e88b2184b8cd4683e97bf23fae5237bc384a5e62d1e8dcc7c2cdda42dd72dba44179429f408289de04f67cf566c922e54ffaf2bbb3782c9b40a2bb48483466b0afb97411e0e5ed22079454a86f056d7a009941a95c9d43785981bac1de86c9643a28a71260ab8553498bedb611d22c6f7d5a9c3b2b1af1811c3a83a14e99b616e05002dd748b4b3ab3f43ae90cea2c5b16cd8037d8e7efd19460f40758c6dfde88a756d63bc9017a68da9c0d2ed326bf75b298d76549b159a135e6227f39cb08e9a2ccd705f811a8525fd316f8a147152fe2772a3f3899ed642646c7abfba0f01f993fef6ac3e4020dfbe81a0be7d7be40b12c0c45e5ff3ed3bee4291bb66f8fdfc0548f0d8d1fa8e7fcfc293a86984ff98492c0a392dada056e88880a586bb5b8fa10d259ab4fa8e2127a6e96ed4a69c362544c15212f03cdc6db86187e4ec242f4ebfe95bf88cd0012d0a3f42fdab1de69432c40a529a5272905af3c96afc5914bb9a01490035620218e77a68bac0ee08d94b006d29837396872a0f4f5023eeba8a660df13e8a5d97f04bdb30fb16d9e4e7d1a6e6117819095b9b141b593bd8983d31c78e8d8146083f8337c7330bb481f86e511605090a048cadb7b4a0e90c4119253e640f36598322b606aa06145e034a7bee7e5b3052ba4a075a6849a309ef8d37911ada8af6325948295d4a6a0c6dd9cc242340648bab09552b3a58400fe7dfbd5b4a64d175b863106390ab5cb0f6d801ea4337a8c48d02e9f5f09fbd90fb068d180922237fefbdb794524a99640a7607b307c307d3e5925d0f5709622f2ed70bcd3c751944687bbac277902012be5927ba50c5e99d19845da8fe5c004710091f5927f6c79c23f64413889a9035ba0ce5100948e08275a13f273281a88967ce71bf10c87ea174ea9c0ff9d9fc8424f8f6d8d2b5c895c0e3997384eded3c5afe446f5fddf40e175a9e7a1c7d7292971b9e7af4bbde6137e38c33e218cec14e1b40d4c4b78b7370bb9e391f7da79727349e79c974a1d2058918247d61e5c31b3fe90b2537cf334f74592ac31863c601f9634927d9d4c09c4cd3b40ce3ee2cf6d269e9b7e26f3658afbdf7da4a7b8aa6dbe41d160b35df34c77cd3b66dd3325b691cc3c2019d39be22fb58528776cc7df8d999995d35257f7c3dfb32cc3b8b8f7df79b64201dbdf4cce58c51b5b2f1719879733e9aeba16961864d2a9d7126188d71428de925ed9dfa592c9db3592519a50bef92f42ea7e9a3c8e8669ec839f384d22a9fc40596ef4f88857ead06ac333344174aa62c328bd462cf96914bda12eb48e7a2e8426d49b3c255896ecaa5f959f974079db5a2597929955847bac65479606d5b8c3182dc3ce8a20fa53f1e084bce399b67641d1675e2d2b6e7d523493006d299e6689ecdb556611e7295f6d6927cfbcc9a7c7bed9cb09f7cbb6d24be8d7cb75257e9feae8bc9367da2b553d9dbb3023aebd2db1a6cedc3dc7ad7a717b27802617d873f7ef36683b1e98d3eed2c10bdb593d6cf28f3ca6a45e9f9cc35137dcb8f0522a208e40d4af939d6d37e7f0ac56fea3352689c6e8f34c609adeba76bad44859a71ceab4d58a7ba36ad75ce3a676302686ce1d4423a8d4198974e33a7d42d75bbf24d0b245efab65ab98dcceff5242d45cf543c276911c56b02f0b89ecd8542d818ccd922ef1040a409000e4eca6d709c5b26ede37ea2b51ee783730bd2d0d0d458afaed9388d57e3c5c761ad6b3ab5d61ac781e3c6cd0d4d8dd358eb98ddacb5d6db579bdbe07a363fb93680ad95c8d5aaeb6aadbee2e65183b556a6afbef2701ef9807704452fef5e7aa7230ad2a9970aa677c2f08e1fe9d4535f183fb4e129af5a7a27b4754bef00d95a5d53713f313b21739ae27c7035bef290a4cac3eb4892875bb7ab639eab5e83ebe9afd99ec643d6531aaf711baf3547bc8386579f49f08ecdab6b9b17747a1bafa1e1c5477128ac7c5bf9b6f9ca79340d8f9f3f9ba0f8d685ccdf3ce8f41b8d6f9eb79f3e2105885e74a7c7e6518d962e9c4540585aacd1828b76441f7b7296e1268d67bd391fd6575ee3f14b2e287e8d5b4f48fc9aed0b6df8e695c629e70354e3366af559d43b365f68e349efac3e201bbef2ea134aefd47cdcca37ce878d156b8bbca30768f31a2d6e0d0fbab08dcca31a5e81e29cd23bee1bf793f9758df311bf5583d469e48ccadcae411a1a4e7d0b407823d278ba857bba3da594fa507bf93747794231ac3e7c7519cff2e89a5a8df491de915e2b92cca95eeb173615ae36f9e91549f2541f3867ba0ac25594ae0ef1d36d45faa97d4754a4cc2321ba385bc90cef5fa6df952368371f3becc75ba7b752ba7db4abe88da131ce0fa2a37c0b2d8ff2936bbdb19432d487917efb4e1ecab3251d13e72177df4ff4c139eaf3e9d34fb31e3ab90596ef1e35e4bb2a1f9d3a8fdee9de42ca67ae6d0106db7830a077362b16b56d5eb91e1bea0bef95f372b9f33af5de4ace27e37cbaedf342ea9c967128748f3a7d21903fa97c82e298476928749ff3901bd0f60151713ddc4f74da930151dd6ee520eba70ea0f6ceb61a29bae940de396af30f373e7d9ce78ff2e26fdbb64d6ebb9b6f5ecdabdb5ccefbd3aed99c5c73edd47d9c17c6e722d703f5f530eb6cceacc3f909f3ce93f193c7bfd9fc709e79e6dcb67d34bb407c6a356831460ee32c67adc5ac732a7c3f1a8c2928d13df6951029fd84e20a422d6f852ce639bb428398b31ad48179c8f211e1d30182de60d0e9ad83946ed1512a6462200539aab9b576851fbd63a5ccb77da12afb7444a1e63c1d1e4b07dd6cb144d0d152a89f06f9704a23f609c51f0dde06a9cc922efba142057a07dbb80fc382ec7b21510a0d4615ea0af43ae659cfbc20f3b97f60a077ec2714bf7e3d660a325fbab07b99c8350102882ab014155db1020820aac0d2489fad644ee699671e9bd23aa39606330dfb7a4883998ecf62d34ee25abc72e79d77de46d260e698151de635469f3de433975e28d4034b5603fde2528399c72f2a3598795f894ad4336927364517eaf8cc1b49ef64e1aa9388f9ccbb49ef6416c967be9a7e6fd76559c638d907d448f64851d1152bae6bcc3632f9d91f7433deb879c452b71920baf0fed5a29638e3ec291314c7f4cefca216d762155dacb53a5383d7312c9df5e9e1653a8a58fe7a7c92d520bf08a5c1ebd9178b1abcde55c4a22b3179b129ae96dee1242624feb65f8f5c2218fa85dd6d2495ca8d3b3a4a0ea790fce839d098a7cb81981c4cf1da69f64ed8421d0ab1cf1efcb590fc803e1f27ccef631fa1f8debca213eaef911e245da85fba507f4ff985ed5bec1848292dd37b595ac93c27cff61cb0cffed843573b554b29a9ed06992ff5ee6eeaa4934ee903cd27e6ed01494d66ce9ecf67a33910f5761b1fd4dba9b5be7d3785eb9b43e0bad69f4dcff4761b1fd3db7da6f7e7aca365edb13d288e79671d79654e0b66864091310336d6a3ac51560cab326c46501cc332da29c39ead335774fdc2b3d3af6b3004b9257adf53e77676da9c09444dc8f662d6ae79e6f1620eb479a879731ce79c8d8fecb32fe88472c6e259286f392d6519e9d4b4b959cf9c76ce9f7941581f145f88507fe7329e4df78397f1fab5ce3c6e7a19196fbe6639b69cb6ca9cdc8c97917f92716d729c73ca9cb27c7bf14f5efba0aea639733e3c7a7225f0c8689665aeb9166eac23fd468e1da74c5fd14dd70bcfb9740df3247772291f73eee43232980bd597712d3ee69c1744c685ea9f9cb99f0b7c07e1c082e298680286b973bc28fb750dd6ef7bda591f68f2e4a37abd2ead5f6729f95a21f1ebf5fbf9d313ae94d24a29a5944143de77668cae9d9e6ca4f7b5b65d7a2cef5d01030d20ca719d475f0792577a10a1ed834810aa2f5daed08f81bff763ce213bbaadf123aad132a1b1446dabe9da742d727c51ddf4aaa4a0c521d97c873ec6f64834ad0d87e690b54136b607c98f41f30b85fa33ae077521dd0399ae173e6c0fb2625e18f3422e90d76d61bb10fb4177080c2f7c1021f5a30bb1cf02d173f50ed9ab508bf9e99f8d8f88f4d22352e809e99f9ca3bd56e71c0de0383465b7330b41b206c9972efd0b1aba4268e007dacc96ae6592b844f1e1fc8e317a0666b674d1c3e7bcbc9099ef477a2195dbe47342eac6f4423619de1124ba3e88848f284c1783d1a64b0f89bc2773a94566c9eeace3e37aecd757370db247ae07f3d8832faa6b3024f2306f7a42e2875148cca6943241f26d7ae4638e7dce3aecf1af17744fb88e7dbce266a276875e9bb2c306c8a0a1764cbe7c39334627bda55b4fe76b18a9c72f287e25c013d968af68ed335e3a20eb217c68bf78a4b738b201de1184f546ec44cc854767fee837a4884e8bba91542bfa54fdf49a1b62ba10c8b3b6f83184ce74e9a60fb1773287a8c54d4d58f0030b8e985cae1675cd234a20040c4130d11a5244a715dd48aa35a448b7aa1b59402b3af58c2ca035f443e6c81cea4351787c435152a01ebf219739d3e9c7320789c7904106465fd8c0081d5cb95146c72d221da260c2891327965220468b5bec212b0577b95af148ef8480640aa131ef085932f33aa787b26af1f30b9263c684179b20602de17520444978f9fa5d0fe5170efd94de9ce286bf9f11ad1ebaf061f4b03a10a2267f41a080214820e029907cf570043fef0702d6f2f5fb01e50505c00206930b95bf794ee2e2c31b0db1bb40d4a4658d5c34384822061eb85c2d3672ddb061882445418456602d6fe42a001630700951c010a4165c3c0592167b3882af9ce485152f14df0806d6d2b29f8bb5b4f81b627701044e80a8c10b625c435cae167fa1f4e62450002c9c182301940e7040c419318c19d3e212542f3f5a913439a717eda5d4a55fafa3b4ced8dcd40b15fcaa415a29523369ec523ae6b2faadd5a594b206efa09dc4a41eddc6662a61ebbcac23db8bc63e29ef88223448bd307a960cefcc962e73cda9dff40e751dbcc359e7769d7373569d739dfaaac6532f8c7c0d0d934f2ecaa53f27f100ccdf3478e3751b6b93e4c511cf495e14f1ab06afd7495987751869051acf4cd151e79605d078260a6f678f5c8f479f335e74ecd5bd76aed5bb7a94dc09957af4f6fa85318c99e601596776ebcc27602d0c81e105d707c99c05a20f0a45f00333c63c0bac0425090daf390b44af7d8c7d3ed9d75a29a5734e29657747d6b994eb896f29d7c3665f183feb09b3cce6c7da16de025d0f1afa50fe751eed61e5d1ed2789da9e93bc28fac94e7b302f6589407d1586a75b7484a7d4b7de892f68cc91396e40e3abf2a3c864bab55d3dd471758c605d051e6079eb15689ed9b2bcc455de82d171d33becd92d118cb7ab2facba8c6365121acfe8c0a5ec22cb4bc9f303b2cb16a66f1f1ad7f0a1db8ebebd53ad78477c125a72ec6409282de5eaa2c7e73e003bcb308d163bd4a44b4fc9b7e7681ed9ea10fc2d76627010209a82c50d53c2d0a10b2d35b498bbd275d216a5efeeae776418f1db9e93b6207d3ca2f1cc0ebabe9b00349eb141d71e3d287e87b1e4b339f5f65888d847592788c7f46c9e65af7d2158bdd08abadcbcb03a75ccdb37c75cd328e651274aec673ae69be6d1d324f7733dc6fe304cc8158a44357617479e3ef1f28c26ef4fcd10f31e149f3ab34ec84963aa7cfbf46c7ee81340d1432134a44f277a2134ace0f8a64f7cff3450fb8cd225a59f90f6675479a17e295dfa4bcf5f487b2f1a374f0a4fa0f8d0e70c211f3e14727180e9432124aea00f8576a0f4d1c31098e0250513d3472f4e3e88c78c39e375c400c6c71e334b5da3e039a969e9bbe839498c290f3e2785b1e5b999a54eaee039a90c261f919e93c2dce007f09c144686bf2ed710568ac2827d21fd1c08123f62d1c910daf5fd7de47a044d97abcb7318cf605ea35be57a38cb67798d69adb5ceae55c65aeb0565a2bff458ef4224ea9651c830d19e93ba4002c60b64f8610b2b46a0404a8b398deb21247fb68fd9e0e58b9a0d0ac9d7ac6631cc76aaedcbcfcd33b742f231d762739432b6f32e778e74f0e6f90bab4b26819b2f8a6389dae4fcc2f84171f50ef20ef9383c48a762e64a175e9ad485916fa6939ba1a28b8ed342349e91415237b946e3992a3330e82fc27cb165061a6f44b2861b9cf1427e91d20597f7a2f443052f5364972e927e79723715303064b66697308a4af8a1020656267c09f3d345681edaf2f2216301e3adcc2e93b27eba8fd1f5234bcf2d218bc53c4448badc708222aa28d1458b567b34c23cdb172e20038c1e7cf0440ce621f261075e3871c4888933a4609e0d3811c28a179223a868221635921a363f447aa51c226a596b3febedc9af6d74fb51dec13b2479de12534cba7de84266923cdcd4a54563a3ca5add3a87ba54d2cdd5948e2e806ed76337161ae384bc319539d486c524468373a68b8043e727b8518d521c218ea720751054029ffea03cbf90860fff10e867cbf4a7629de8ddc660f41b41554ff7dd3f690a3f1aa4eca51ed1b8b5283828f1c261895f35e801160f2cd66a87d58a06896e1a79e6c2054530e172658c2996b4d899c6f4e2de6ce288512acca904f3b494cea1545c702b8ee6399d3c174eaea596e8c23e9a51ba8f1aeb6eacfb0804afde478da597e6d13c9a52e61111e6d19b47534a12ccd3f512ed44cb00fba6942eea269589058ce2a9df2a4f7d7ed8d1f5a106a9b7a082e499453227f611e6dad19604efe83eea234a1df3b0979e660101eb9ed2474f7459f5a24f128f8000c22c6a81c370180ec361384c9c31c6183d471fc5e8de3cd5c0a9716b44afe19f27f97a38d14fd1678cd1371c3abe77d290b21d1d016089ca0daebbbb070429d811081784d39c20d0584da42af1624f1aa4452ee834bfe10070e94701e0c171eab37700e0d4e79c373c9c730660ce3955a939e754a5e6bdf1b08f68f89c930693728be43939751bd3e30d008e2a358b6866d12ceaa33e6a293d459502e1646f9cdf5784038757ae8f523d74d1ddc33eb2f1b08ffaa8b1f452efb853ef2c353335a89a1a9f1ea786681f7df4c8bf166e78d84700f090c3f41253faa8a5f494c7e1f103c0eb6e3ca393db78dc601f59cf86176e1ff6d15110fb212f09c5a7f199d02075956793faf8b5195477faa617950b9128a3200daf1baca49c4821bd8e84995c5e47b6bc6a10f3aa614b6a895709965e25509a30bc68008382c6adc52d328b94e262520ac924952493bc9209934c9e1223cb96540f5ddc22e78dd14b7be412b7c42d914bf4325dd58a967ac16495f1aa61e931f753631836b1c6fc48435ac5d884c66d834e355d7a0a8b2e3cfdf4d07fb6c78ebc8365a9b59dcad285fed67639c0b794525a5966441dd0a0a937f9065da75a492965cc62e2a00bbb9f9d6a524a61106b8fd415ab9bd0c1afd5b7dee9ac8dd1c67ac5adb50259b79f8d0feb4d5975efbd7eefbdf7621876bb8949a9a7aae842771cffd8b5f28086293f80e7170d47b610f3399e5f33283dfbd2950ec7e41a48c00a0b50ee9862eac2ee29a51b09b4aed3a20b4fdfddc72c40d07cf83995832e3a1b60bb0d4a2d13d01887b914966e426006a4c7797e19597aed54edb4f1413d3af5f8b5cb9ada810c6480d2c523524ee6a7c47427eb73d2f8c9fd8c4fa7ac4af9fc72e4007b07483a582368d6d03c8c5e8d1a343e3fc74999d13dca83e27f3154f97d41d3c31afee30b9a2ebdde1a5fe347e7abaffb1adffdccd63b33422d3820be1c5ae1e31752a71f10d603054d0fa30b916fb48d800b9a1ed2f8c23b31c7388e732299639fd71a5f10cd67b4f9fc6878fc2acf88f314e7d20b7f7cfd70b4cf888dd6f6cdb039110cc38810d91873229b6b4e24fb3a99c3ce3911edcb7c05c9c37d2c19675c47836ce9164f1eb2bea37b377cd0596735c84eadebb8414667fd14016eddfb09754e3bcaebbc20f44fdf0a355374e19d3daf7c1951922f2356364fcbbc49e9acd64eaf934ea75a7e3a4f4a27bb6089aa4c55994d78474f23349bf6fee136fb8a3eeae82fc5c429929a990d8922c3f9766ad7091e5fc6db6e6456bcb97456d2329e51e75c87f4d2d3fc657c4eee04996fbbd46594a452962d128ceb8892274754ac6061e2d22f7b4814ee723fdf6f3e9b5f46a63ce7db8facd2a0ea3b752ce84289d48ff9e47a04f161eb3eb15f66fb69e79cb91f1258e91dae7fe827ab34185f46a07c7be6dadca2cf965638ed0b8ad20ae5c89152994b82bf5f5094581af4a1a91fba502221f54e95deb1d23b4c91707d6130533a74d4a564b0d6d9e08eadf613eaaf42fa67af00098b8564b5ea8e148b115a518cacf7b09536451263dc0095ce1c731c01ab5bb9e38039b010fb1ca7c1ee066c49075f1ec3300c73c66e0ddc1b04efcdb01a300cc3bcabf298afa678ec0b81b01c741ceef92543101f3a4b0ca78e4c3a679122224aa46cb8f7da5be4defbe4af77477f5f455ef0f70b6d6a86d4912bbd4ef5928186cf9e5f32b83eecdc08160d2c165796d181acdefaada1efb3e4b95648fcf87d20587dfd80e63665903265e47ea59fcdcffccfe6a7975e44a0f8f0c713a08075fa4544097d7e1131410f3a4e3a03899fcf2f22367cfbc693f20e7e1191e1570d8a5971c1e5db6fba0363347db8f5a0cd50d16df439e90c2a32674e0fe143a24a3d9c5fe8c26bf1f53372b64643ec2e1025e1a5453f174f812484d722731408e1db0a2a7268dc3c321e5e2e63ae93e8338ff3eb11bda6699acdf553b8bd0c6b56d7eaf4aa694471c3304cd3e46bfe329a5f209b9f694ff6c79eec750dc3b2afe73ae698162c3f1da38e6d7ebdf858967d40d8c6a1307dfb306cfbc2a1dfbc7ae1945d84d900b13544c68b301ba07a6cf1909b1734f453ba8cc72ded7a3fd807c479a8b99cf50b39d73e1bcdad5377eeb3d1be9febd5af572f730b74affdb9f6fa988e7d6175cd351bccd906fb7aa83f1855b4de8032d7aa6fbe79f5f8b7e67a34d73ccd79c8c8a331b91501c61129050d64083fadac5156761e5dd99bba741bebfc525abfd50b360973ae34a0e8aa4b8fb68677d62a420ed75446dcf0e6d9466be3cab7eac3af837562ad4a7095af000ef3cde76810e7994550c58f7a0e967711c808cf3e5792abc81268a1ab56f45e672fbaa65a55e7fa711009daec0944c78d140b5b6b259dec92554e7446a89ce8a2472e342dbc1c399cf44645e9a4743aeba8a2d05a69ad5475441727956e29a56429a5e4962e4fa0dd59a382d285ac766128b6a80f45991e9d1915fd3e8fc6b90165e4e156c4811155de9f5f451891f23222865714d7eb08307ce3b7e1187520523bc89779bacee1197f4ee96d599abc8ed0f23a02899711625e4660791d71c4bbdb27addd7d738830024e5fbe5fcf7bef8d7c335d30c3bdf7429142e7aa534121a3c91226a922401c9068ea420547f8c03483300a03a5862428265372707224060a6070e2c904c2280aa32c92a07490468c88306241927be2611619b98c6e48b2e405e50a14268a9833aa9ccc39a7e482c5ea5625583204181b8e9e48e2031430349ab2f81acfaf27494ea60f54523f60e202197ce9820552e60f7cdd71c01c20e6e13898a3c4510d465cc03446d1fcaab0184378a1a28a2523a61ba60f31e0a6f2b112913774f9f2848821b43c19e3af6a09add43a55319973de996436b9c20696882a2f22a05025512da1f17aa23d89e167be7cd8f913960e2cd60e93c98fa0090c5f927eb0010c0b54bfe4196906527a0073c58b932a5aec4c2307550eb3e6098cc609b8c3300c0b424910506e1784917baf4c0c6590818a810b20c838c5000b23cba2c510b398a2061f3704a30208268098c1bdf75e1b6c70d9228b286890a4071b7a00e20803c288060577062a1b8a907ea84275a4338267d084e4c40d5e70a484134a8abe283203c3300ca3474ea002c51048621c3143063c146529d2412d821529155da19281c6f34b88256384b0c1bb4eb5bab9f6de21d1de7b5f42c0f0f75e55914e6583cac6f32b081efcf6fc0a228b0f3b6fb2521959ad58aa1958ac1d1e051ad000059227a0808196163bab706019428327905051658c0e2c161122447866eb56ff8ad42a850a8620562b29552e1c9c186bb052c5b05ab122a61ad275cfaf1f9878c7bed70f53884cd50b734ccdf3eb07275f9f5f3f28b12ec42babfe84d888db988fdddd3fbe732d723d30acbbdbbd970f605e3e209982c5911793a5d79229a92f2dc42348346e8dfd5afb854058777a767a964aa7b355b00496d4184d4d4d4d4d4d4d4d4d4d4d4d4d4d4d4d4d4d4d4d4d4d4d4d4d4d4d4d4d4d4d4d4da931524daf265a5261bc9640498191222305460a4c2a0c97a452f44dee52bc5d7c8e8dd65d626e459ff706cc333ba7bd372d6e96067b498c2e8c4c4bdf41e6b773aa874ec615c5ab07a497121568a7d412a925524ba4bca4bc748acb93170f499e5f3b4079eda043aa4a8a4baa072f265b669720b524b5842887266ec0050a5e567c21c4bca185baaeb3b606897f9dcb8779e67a0455cc63a4214ccf9c35a1b33ea79c73decc7bbb6ed632a4941868d087ff5e5ae566b55a3186e2219dfabdb4a9ad3de96ca50ef503c3e2cf19b4d2aa4395d64ad408dd5dad68a573529e2c5740bbbb99b15bb1696bb593ca6fd2d9524ed952baaeb34e512aac6a6aedac656614c6485aa99c93ceba444a796fbdaa132a85063becf6cecc386cbb71521a3ba5225a69cf3c6231ccf6c0543228131aece6bc97bb5c6d3da3844631a0c12e9c7f6fb575525ae984c16446add01d979873ce792f4a030dfa703ba5d5da7ae3663dfa9c35ced9f40b2786d16aeba4b4cea4465520c3b42ccbb0ad41332616294575a041cddbdbe7adb5c6f73ae954723eaa67dfbc5da582b69414a5c2a4d3b5cbf598b5b677d6da681dc3acb591cae8734e9e74f67063b17e91527a86021bec1a9c7332563d9e714e1aa5bc9366c90109cea1c98a09e93463440169b06b90483af550a8b919b7f95d798f9e5f49c2fcf32bc92b49d1f34b0723bf7a7e25617aadb79694ce3985e49413c592fb9b52b49ef5669b4cc71c917841a2458cb1250d923927ad3588b0d65e8c86892ccb326dcbaae0384ee654b3e8baae43cdcc68914aa5522a1a2f1334d1d0d0d0d458cd186a361b366cd8a8b141c97063bbe17adcdcdc703ef1061714c77cf4d899e397095c1f1f7b7ee1a004c716bd170e40d000226987213a28799d9410816118d6052113a58b112b66e8f2820d6800a364c8bdd7060d4444dc108549982e6614399a33f040050f5ee4b09920070f527840ca21093cc0f30bc9099ee6f9854409142da41f6d7afa9f7a3dfd92461b1fcfa5d07de4e8779144e0a1230a114410a177248fb4020a2caa7045d1428a56fb8a79889228e1c00a0e2b50a205575aedce3c444c9cf8e00c2c456028c249ab1d649e08d04003248ee0e0062d28a3a565f28efaecd45e0c673a83d235ef8641e999b76215830c4ac9dcefe337ab57f5d27757caa0310e0f06a0ba549c892d29879bd6cdf5e0b27f017b00ebf4365fab1b23c0008cf3dc391c004e00e6ec21f08e8bea542a2fa1049b99148f6d2b810125a46cac8d4d1b913b33dfe6a184fa4f3c5cc2c965be70e8675c47efe8a8e1218bc643d06b3c9cbce3864ba7bce3c6a5d798001b975f08648497cef234e9e948d2491f11740c619df61b2f12619d761b2f16890568aff16cfc587d2158e3a3f9c255d33a039516d5962512581084120aca48c28915b4dae316e651804b8c2a9088b2640a16ad761e0ce89d948c534fa87f4b99a0e36f54e745979292d20f15bce8a4a7c43aed29283a576c2496528c91ca0c5c48b1620bd7122f584c1254aeb88e2881d214feb203122bb8018a962e3eb01524a8708939820692db9c7a6d846a1e338334c8e63ee66f2e157e44252c514b548a51461ebd438b8441460f5e988871a28928071ca078a10b9752d1510a3734717112440e8428630137602106941e6e208613ada206a3d31a9d8c332ab9240fb78c7c885561fb52caccc3bceb49d6913a92728ef41b1e68bc94aefa710a0d462b1189c6972e9deba8b42d1685350b152a120000001000d314000020140a8744029150281826daaefb14000d9094406a4e974743490cc3300a62083286114000310a1040081933345403445a04f33c0c1ee287358498db2ef5793266d3f48fa5cee9e013a9bac27d0d0b27c3107243f447589745d5020edbcb65b57673fa4323511c0c1e8bbd32ebfa2a2936a9f5f23998f9be5dc9ca9df374cf84d1b15702c5aa42b39955f83fe5fc443eac36533b3937676d52dd1f234118c032182a387c96eb0427ada3f169671f24cf85f3718d7f2f84da7740f5c3f9b196202a8fa47178a41308468360cbf00a613fd89c6e14de10d6959b8a80af0680116b508f00f96047b184f075540a9cf9dc7fe6210577ae874d160a75b7275b01ba365568cbcca1876eacfe7cd1ec4ddd422351521f4af412254d1678a12432448b45d9eed4dcca491932e9979906ca3c3c8b3118e60e0d70fccffa8355f61b13b09f9d12d1d424f4d15ffb0cf6add121df60f23719cafea3e22765f623c9f627f7540179cef6022e913b9cca2280110342cb48ae7728abb97b5d9291c8a7139eac6174570a6e5577151e83f7259d9c74acd3f2662d0b9572b4754906dd0ecf87c22e50708d0de20f932fe63b2bfb84eb8c3aee4390ec9e40696aaee828b075250341bd65f47dee5d51967f4f6b48584a362bcc47ea6b5c9657523f5012984bccf0ad608c910f70cdb7722ec7bae0e10b20a3a609c9a3a1458c37c6941656b383496567517927a35a5c8f02291523fc28f87889c40ff67ce7f7e2a557d5b59877ed608781e761ade641da164b39fb8944874d7b90b911625367504a860e4fa21d526ec88dd745b815644852e620bc50aa94e0532e3f1f2cf9657e1f1807271f96ae701c84d8360e277e489edaedfe1197572f6fd1ca3023b89e953b5ee7de79590d56eebb0e9acae82df5e1a47acdbd0095d49d2be1900266280eb50b81f3071ee4819303fa67557dfbeb2b07d83c296e5c519b54bbb6f0b6bde88998ac284f68f5511fdd0f9dc01eca71844958741f72948967a42f0ed97e2d905dbe4596311427dca822744f6f67ee4430175330d6851c8d3a772c297a0507ee58c6963bb5a4d31b745b032a603253a2d7f6a8943326ed47eb78b7badca915109f8c96612ee8f9ccbfdc364a6e7cc4317dcbeff9f9607e427ab067250d391689fcde257094ed789a0848212113b8134811e242ad4d591eaec96d3371f909cad517d568e2425f0ad1a00794697fa0fb9adcab668feaedc2014406f0f9ea9aff94e750268792ca1ac5ea3332f2e5e7d4b32f48b4a16aa2844359f41b31b788eac63ef8c99e3700cd91215251f415d058f319f1b0e362499f7c9666b584cc1972a61ddc070f2c3bbfc7f56f27bf80b9c2bb8b3ae17a229097f9d2f3b42677415913967eaabf941e6e1e69146ef3f8e6b48d42e1db60c56ce98a8e51738b6aa0214dcda2852b1e1aaf84e6e7fd695df16e1b67f63df89367d6971dcd36e6075eb0f0401a3a267a6da4c24dfe06f99ffe84ef0dba5323b9e64e128e4f64b7953f82c3d40f0e7f09ce32f9e345299ee45920a4b81c396321830bba951d9cef80e6c1dcdac2c47697151827de0a8227608b4141fed5f1c230a165fc2c7663fe0c872e02b1829dbb19fec7018be77a1271abc058b2fb89296da1dca0601fbf63a80c0bf3b6ba526dd72a3134e0d9a7197ea83163275e75ae4bc6ac5f4bedb8671fe15268d6a1df12fb1786246c3fec86ae32e1f9ec46606379872de85fc60f1ffe22b9978b084df804626994d97af79d594184b52ede078b61f77fa81f122e797f8d750721b9915f064955eecc6d588a7abd7442df869281d4581dc1013c2f07f0fdb375001903b99e9fa66cb152f952f17a2f0f4c6758ffb3436610749e17c131a0084a73d9904ceb157a975951c49adaa4c322426d2fdc7d8bf043766b4f21a30a68d8a82181eca87f97bd0c8429e7eae0e8c496388c85ab67ac72a825533f4f38319ad2eec8c7754d1338a209a3d2e0606120068da55e635b96004dd889536ba296ed19ccf73474f7cf8313b6a5dbf8313805fd95ff82d830abede56ea079b44ab7bce7ca5458d8077a65102a999712924de101a41668c95809c1c8c63421d8aed98533e305619f413fdafd71abafcfa840b19c417a67d61db44944c266e220e8e0c8c4301d8349ae0175b6eeca9961e74882bf060f55d79a7a55e904a3381bc4906d1a232315f5e27e1825b77d596f039d8430c21a9713cb0f7c2256f612304182b1e45796580a40feb9a00317f69924dd79ffe852a06bfd77d3ff3368c5a012645c1db990ba0ffb222950e506d50f6c9539116ee5a379cd1420a42ed0fd34886dafcbf0dec0750bb003ef4b568fe4b57a1c40316a8e1366ac36af990f8c55f38555ac741b5c5664f594ca22c2519b7afaf6f21e2eaf28f8e513e656618e8ba4fbc3508ceaa84348e5b993f1b10fc2fa65d53f255cc999b5228c682cc25fa243023d8cdeeaf5d068512f9a9b61882245fd45a42fd7f001dc188c880fbfe40b7417001ef12d9f78f2e7824aee5940f199bbfc5cd6f3d4e6017954ae5f4e1d7b40e71ed484c4652b0d3f289b504879d46ca3808b7fe02998e0b50cc2fd06c33f86261ea440b809ce81012d49e2d0d6ecd86cb142d0c4d49659847d8e0db7c2238f949031bb78a316880471c94679dfb260b3a36400ce0d36dec029be9855118bd1de8c2f221ebf979b201242e20b7ff38f4a5af132849863008bbb78473c367b8608eaa0adb0c96d750331219faacb228b69f46dbe17b410c481fe17622dce82761acd2ef213af428036dce4db4411da64b416002695527107760708918df6e0443b543ed05470f8a97dd5d2c79abf5cb9a41458ae386359f210185e4d1af50b10bf286910b554665d2a66783abd025ce6dd0afeb3f74110416685f5f55b5779434d12e89154d17562b7588f8d42745430b0cb62b0cb3c47428f43e52342bb81aa49de95f49fe495e19093954238233d265d66d126107ecdbe47e00621e4ed42ffd7f783fa411b228aa1ac177d1ecc046f4a73275fc5d76240e8c0f608bcd113ed39afd204ddd72b23790c0caec9417a4907d3b1c141bf0e5ef5a87182115408910324bbac99eae7ea4f974c3d553acd43b4f8188c24d75a1af1546fd6a9b2fccaa39171046ee309a2e2aa8c0125328af4ce47afa4c9271dc0912b30b36c8542464e54b691b3cfdac81b40c6d3f4512223d38d00ce50a11d53718c44463c3252e7fdfc58289151e72f9d1b75feecc751195dc1d7f70c293242f39f283d22dc6ec459d939f76d328b3f689fe10e00278b8cb48ec9d79091be9fc1d48945a669e8c2659acb0a276503402f11cb6eb4b1992b32c2fd0538e68539fcac308cdbabc1a4bfd862158dde0518dbf2e32881d163795ef18b9eeef32aea3f07deded25a707913af8a19d1b7183d9672d8c02aab4b9962a7c34cc1f4af3445ab8a541a1942a0bdd36f8e8cb4ed6a26585085457a373b9c0e0858a48d9d93c324ce7d85ce87caf295bb6de3b47b14534f4e133a99ea3b69449a73d4e1622edccb24bc4c10aed4bca2bcc5e76275456a6f51f7d31b3a705b29595ec027fe0e57d935fec3af748deff1283d0deef895b9467bb0e1fe95ffc63bba4aa7e1399cf2dff80eaf926bfc475ed91ad68361930efa0dbd57b9fc8468efdcddef5ee9d16959b12158b959482fcddeb6c62533c96a776ba527f8901c07b76fd7a076f3c5e9622f1d4773926f5a0655665c9c4b28a5316ad78813af5b6f653341bad923d799d97aafe1cac180e132d9983fdb507191b0be66e6c72ad9e5d038d0278f8336ea1aa2deebea1affe067e235fccc999f1d3ad38e755e641d710a234d5c9c9dd477cb774e2f12b5b046ab78dc6f4bdd3686c39e4ca54f00bb2c133471d349ef7f65a3a7d084eef38fa79b57826803545b577ab1d5cd4313876e859b300deec7a48968c638da5494631c6f3edab80e9811657c874c8c32b6c366d1ac318fc366a3e440bbcb0c329406e9ebdc85f8611f66cca339862366511ecf41b3a8c7edc06414e371643eba311d01266ff4b11df83a3d44180877d9a0296c11f13869f13b07033f18fc647ed4e31c35138d318e9b8be23887cd4719a70326a28cdfb136fba28de110d3e9234e40784b263ed0c3b774b8a50be1484ce503537adfdbd64c705789447d5f3690158475a4f7ee87e2d802750ab8283581551b00ab86cc90abc20d1da340ca9957de6922fd9424efc9c6d5111b05ed59b69d678687b5e4de6d2d05dcd80bbfc1d5c48daa4affab797e5ab40df4804b1ca463ae9dfc63313c241c7dbc8d854a4eca23e01f47d127e7f7b65296a5416fda9885ce48d114f27ad026efb91f2c966c01f28737386b2f46b6cd9b5aea7454df5e5667119751ddea298583388f0dacad8b5acb5617864767bd9a7b2839dabdedf1fcbf571c5d93cca58823df18503499f90abea8a41d1be00cdd5060aaec07e5aff3b29b8753a1d5161b363b0878fb23a96b1f5ab3e12200cd09258de88faafefa07a1dc8da5274bd7de4110f7c30a51d2fb2c3809d791f9e2102ed408fb15689fb4997ff7088ae7ebc84215447c809b06f4ffb6c2f2cfc8c2f5552233e41bff26961d79b5c198b8fcd8497df459caaba1718ba04d8ff91aafa0d2aa989250b5e06946f6a31d7928241e5ecc089371372bdf7b02e7f32a58fa5486f0200000ad839c6ff834e5142b18cc22838d314c43b87b6de9a1e5e40ba1095793251e511e481905420ceae168631e63ec373bcdb77eb32101c0b00a83bafe57b28847ae0fb0db1ecd66b697b00d1ca9352d40dce5be33679f86ba977219b2eda62119463e564acd16cf14624fe3f2bd26974d84a5187d1d4fc8d06f08f8e27f48beae5388b2a7020e7b6556fef95e051b5933b149a0d546b3201c7681323be81316578f740261bd117978f35945f2e6f25aa8281531027ec8055b08f228dc6c5b38011393f3985e8cf0bd07ed155f22861301e8a7cd67e92cced9a8b08027b5edb3a63b456b1ccf116bbb2ab9206a96f62715c99ef28c867972f0e2cd1a01ea87dac4f69b95a4e6a2b57c027b0c9416fc6d7e2a4e584688aacee56781572438cbb441345628dc6e99b860fcb559f76409ca6bbc82968e67684db412b4341950b2a8e6f6b59501be182e72508635d73b2e28272e5a1f152b798383e11e4934de179933304c2f2d3b2659d001db58795039545785560496bbd01935842435ae57d9b971699d765a0484aec18a05c0f27ba9893a0c14c1d7f310cee030a118d0419d6ba9635739532d071febe662c2b50acb63b832c73a6e1506f12175fdbda28a96bd24e048732a9425b2123213382dfb501a9467e90689b6a2f70c82a9b85af1665df16e093c42ff51780c7ff757b017e7be0cf9973a806058bd09906a7ffba130816755a42f0fdd48150de93b36ca4041c04e54d65894183b52a9534aa4848e5e0614632f713c5f883a7ccb79657fd999297b1d42a38d179c123274dfcc9d13bbcc26db9831ededeaeb0c97c1bc09547945cb4146e5f9d60d6b983dfc8a7a9ad9c6debcdaead240f212f1984b53aaba6a7c6c1624b0d61f416ee44c0bc1e5db488ef60b4f53b900bcda9c82ce66d14891b676e43539f3a95ad70442fb1cff014d3c053c1667bb4008893c1043ffea4b03c3a4ebdcb1ae7f75b397b8bf867aac36c7cae813290a1e173f8a3bf7ffe3fc69f32bd1f1e0efc25a7bad9601a2c5ce53a457c2f79d3534c04d46cf4cd16bbc2b95d7368f5a7c11b6fbcf597a7f6e95055fd015d2a2a1c68e25e4a060795d9d2b3b993b28ee56b8be2188d78a2ac9dd8d54f4dc247a206fcddc6910bedbbd8665ea8d069516b0dfaa32e7ccaa0a0c17add8fedb38c31e5574715a2f3e5cd2832d355f7dae50d0a6fe9814f78248880b009502a99616a1c8c475a65d2b0f6ad1a0d3684fe5e0c5fb6441a5dda5c9b6346b44ed25b03de58c507f3956fb02ac241155413b78d0d3c0f54137643909510739be38a962f926084b0b01522aa35781a83e84f70f89677f2a26653a05c00575b437a875cf311d5514b00831e52ca8b7a7e598505f631f34c333338edecfebe6f041b98f69675900d45619e0269b59af076d2a3485ba4d461817d6f5c716868e49cc51e661222913bbcd2713f7763b5bcb35d7713bdc2646db90ab285cb49d58e5aeed345a6d8d59740439f44e12000be562fb0c51ea16103864b0a179417b7f7949ec7463f5640d5f4d5a46f81ae314a49b6bca2c31a354c42a3e1ec1eb8f1cc149064196c97426826f3047122386c8ebaaf8b2abbb9b236778e818dcb6d79cf5b3bd158e1e80ac7369c2acde02121e66d889bb7be48cd678ae8a74ecb95dcde35c1d79b8e9ccb35432b2ad91f07045573467ad7f6bd0936b64fca298f3e91b703e5074a8a992de7836cc6c9235a40107482430ad9c30719c7183867657827090ef041e2290862dabdd63d44248c50906dd67e1bd2bb2d5e25002ba742e268f4a900e0314357c40cb8913b571381fc5b3df696328c142a131ab8fa45a94a2e06a93bfb62a1c31714dee7f2c30031f1c889ad167f9aa77eacfb7303b641c1e57a1b65c02082c4a41ebbb02fb1b240d33cf4ecf9330ccb8609023314d789ac024100b06a85f524e074c7af2f84c1f6644a613ac59192b111fdd3ab27e6d468222ebb88ead33754e9dd5e975acebc83501d4790510c5ef5ecbc5c01dd8b081f87cd3730146bf76f8f94e478e2adc22ef43e823213a6cd307b97ca8f27336ec688c09898f59855d9d53167d7118ea7c356d6029f395455f767ed343c61f94a6751815244a56e945ca08a5d606478d8a00b81aa6d8c01226057b19ecd7e0381b2bb80b57855f16fe79bb445f0a5ec050662b53e1522b30cc8a75253683a8b40251212240641f46b50d8d2a2e7000be64e3df4a5cece9df2c6f5ed1b40f9741e9bf0763af845c6ea142b26f64d8ea85e596c55eab7d66cab97be7dc3cbb9044ecef97191a11df0f2ca08995148745ca9c4385b8e2dbca9bde60119695daccdc1246f7ffd5aaf27a24c2be76b791b52584e1934470149f30010f09fe0e00f453d288ef327b26c0a7e5f1c857efb4d94d776ebad3987702f822e07398285ffb5b781eef65b84f86675a0e42849e41dc86999d9925d2c5cda8d1eda336981159b1b8b8a179da2ece6a9f1290f50b49cb1173c955f33d11e91d0e3e28943b1f0f42cbd0a592abe87773e72133df574f8619a1c89cb34c779061c2b6d396951063a58faeaf4a0ddd84a8ef1e978953dddae162470416cd81456431b6131d1f41d866438bb57143570ce9d9d83f1a1d729fb8e56549f97a99eadfce35ee8c17d2d3419383a9119c8326a8e204dc65d642db2842ffd02244b8b651cf1ef7c042fe1416213ede84a7d3fd58a34257993e65fb05058238c16edd69530a56721f77f3385c749645f91037c1d51ea4cbd0c27da745e815f760621c79649dcdc05437ab246bc12ff154389144bd8707ade87311ed09bbbc98955fcfad7cd0c43e20062024b9416e6f0acb64c7f670616056da7181d022198e4841bd8a07c8f1b13fe5e9b3089902f3873d5e10b410d4efe537cc701fbca11cf5a42d552862bbb01d4cb4ff8a473efc4f37f20348616f062f427ea5e44ca8f813652e178efe9c73014bdebb7a8b22c2a1af23cf21a252d170673f7cb2a2037c509eae537495cec997b8c7edd2d16956a2210fa6c7e9eacfd3ac9f70ffc8c282c0d2c645705bcea406be3072d4e8a7752f1d74e141ee3ab1d41333ef42d2f7c1625d1dd6041dee00d1b7aea1224820e3b32325f33028ccac4b2ee4e91a8dcd78c8763ef2de4d7731917c87272cd6e2868e0bc4c90d8fc3dd01d8143f2caa5438fa8242eff2054a7cb51648065ead0bb497add9b95885c15c4d1ecdd954957c85e861cba57e7dfdd914f1f03c507c39344f0215618a639dc9b663e7e638c5366fceef2bddf74278eeb92ba3c30eecc8afa3d8ee09cb4bc4c4968fafb5654e342be5b0e62f69bab429513efe5413fe7681cb32827767490d6e1bb4946aca02eda3b0efbbc2aa62020b877e322065295ee049574d59b71f01b0e4d8e4ff1c58b8ef4ecaf3a137d5c2aeaac69079bff7181be9d4a3b10aa9e9e5c245092e995296b0770f08b8f08a52f949ed155e8f3b876f5e8457e1de9614c2a066df1fa1ef96f2dd49730394081a97d128ab493469c6c6cd68f95df87944341cd1e17046509f2eb90d3761085314a873d64498b8dc3c3eba1fa51b6ad62b1c6315ce93f0d2f9c1d8f6160bbc6801066ed765a7045f4a33ae9a04ae223c9778396d85d39aa8fc8f3b6c51a84a1173a8c5abeb7a376862b07b54083d38c12097276a0ba738ab799b4076e553b0490cf160b291abe0af05ce83150c00a49c66662956110b6a575e14e51ee5952ecacbca28ef5acf2445e1ae49191e99b17c9639b26abeb59be0b9cc1d79fe50bd657dfa19807bd6ffa6e98e199ff7a6e23feda38ba925388da01aedd6000de4b65ea5db78ad7e3b27fa438baedbd98c7ccc1863aa30369a4c9f14b736d474e9f80a6c45d3e88b85abb0eaa0bceb94760f6fa04a6b064644cf855e6577862529673829b93032b55c5c65e25977f71f11d3f87655398266a44134e89f486061d4e6b408e15a97bab1c77209d0323f04d9c9d711ba1d28008d7804f88ef081cc5c5841292bc88ddf8a6d897de82a55f938b898e4a515b42f7970f13ff260b8e539a54ecfa624ea4a8c2ec1534ec00cfbd09c723c60ab8de78e3f2d0e39317957190f8de478e0b6d2a739bee858f6f55d65300ce598db0f2b541114ff57c6bb4a61d4007d7bac70f678900b2ef119535c1592b810df74551fe4aa2e22b302ca22d3b5c7c64d17fb97a317faa0ab0e3587582cc04aa945e7a3a906a9243ab844fe42ffb889d037c34e5f497a385d6e4461b9afaae8bf03625d946b4e8aa4f1c1736b5cd6de193aa37a06ae7e4f5c934186d6bcd21895c6bd114294a04c6bf2d0b64b52f237c668171c86b859cdc1207f557231b2e8f24c3710b2e2ca28253c1e8643532fe22b5a64ac7671d4384b199835371df124603c321bb9a00ad91e2655a627c5ba5fd48a7f87b7b1eee12865829ee8d0cfcb94932cb5cbc4d820242f05034aa281295ae89aa6174c96c4869bc8391001f4e9028a212ca2fd440d2574283f81a06cda854a3fd6a45863fabb0e70a4e8f63828c38ad9b8391e11c1ad01ea23819041664b882e1f51e8dcf8a4afeaf531dae637ab75356e4ceaa6c705292331f106ebd5b853c966640283025b39ce808ae5734d9d29b03e95195b82d591f7d515650ebb0e1f82b9a37bd681f5caf8bc50627ae17858bea5673caea7b7ff0213cb2203bef568916c4145fca543c8bbb4bff756573a99c92e6eed047862fcca742863e201aefd0b71e9d5ebdd50e590cacc536246d78c0dd10aa343682cd0bf630f3a1f52b861fe5243fde480513a625ff32478c1f34864c019f44134aec444af7aa6dabcf0a3a41b008f34c2ca79c383309258b8603892617381581a39dc012f028f83b0fd003bdec556b302924ee6ce0e0c4912a56da6d3151d270331e81a19de5fd1fd241383afa15c8b6ccfd3a979bc21021ad84d44aaa5e43d345e8bd8c51fd861a8b8cfb955cd8019eff9ecd5cbde8d28f2432054903e8a2dc7d3a20062e60bd31c6ce93da7dac27c1d4e8235d6dd2a650937b43d312b0a064b87d4e5809f4a6a235575890e0b8530908a0fbd9616a3ce558a20c3fa9bdc3ac38784b95a8377b7fcc0b1501d5715f08834af2f4177aef75a8a7a6e9d4e999475f9ed3e18fc345f4b43d0d923da3359dee309687d59eab6faafa54ccf82dc6e575789cd6e035baadb1b42f55fdf60ec426d574a6b9691310f096ce92c87d966323807033c1ccbd677a9d491009243c988281a73ba548c9609d22c65424c45435bff0d989f540841916cda246460d202380a1919436e0da079604bf3a67c82e982ae8668387d94ade5d82c440f864644ee3f06b6946999f1f830a85f4b0d8d456e8e8519483dca40d458daf467afa592b9854ecaa52c0db85ceb342894d29827665033a127c96e1070b6d56b69a6e222f2fcc36bdcfe5f7a2d0d026e21fca342efa2596b412a4818ee16bd0a67c250bbcdc485a9d7d249352b2fdb8c4307c090bda4a12bfd58d10793ae9089907a2db5bafe542c5a238b5e4b8b57284b557d3b46e61e6122c3d8f9d72ce56a50522cfb72eb31298e8be94cdd9f1c6811b102582438f2fda8adc7627a887a2d95b63046462401a9b3472b0b33839eda0a8e20596741a71ebe0e1ac1fac2d5ad60cc709d39ae031341043210860932362768b05bb263280cc7b5b4bc350f5d690f8ac2b2bad43431c9f4985f83ebaf95aea38e042628a9e23bc56b69919b90b36a192dcc5cc4b72cf26f44591a734507afb999696c1611801988be336e15ca8c277bc89ced923ef844e874c34491e1156c62774bcab6c6cf1be9e2098cfe13381776fa438647c44aa70452d48b8289d7d2d29f0c210834eb5ab92fadd2decb575ab9416e6cc825a58b326a24d987d1336e7a63ab561f7d391af95b458348f078d23c6f75994f02afa592bcc21639bbd6d7502caabb62e81181df05e8c76b8c406ea9e56aed7758428b9071d52499569c702970c4b6bfdc1ade2d2d351848f93a06b0171ef263f844249f26df0129d24623589473ec006bfb02122e1d20b7d848d31cfb89bf8d4d7f507fb7b4990f90847d65e9146fc273e0b6cd9781d02d358aa9c0a1a81dce9216f25a7ba582b390079332d1a619c510734b998d3b915fe6625e83b5b6e35ba61d07ad6d496de92b75ffb8d96f10ab7766e596cefd76fbe0b7a52f785dfc39ae097c2cdc36863752e596facc62c38c3b7652bbd9109afbec6294cd17bad27e30df7dd9087d08bd2809766a9781c985431144c3beaae0ecfd899558d04964284eebed33696705aa8713545453ca70875937f29c986dfa2be368165060ddfc17f6462ddda3bcf877f1b72f5a899642f7fbe1cf5ebb61be39852e2d5b0763e68193ee211db7b0923c695736c1bd76c765062d5b7471dfe1cfba40a3244a223a98e721812c5d63c6c4f0b51b3dec2ce286f972517267338c1f008916936fb9a114beafc4a764ce4187f19b741573feabab72defcf8bd89e0546fe8f244be76b9f14bd67ab6e80277edae8e471d49f2b51b5a91703efca7f59c4d1ad71661a98e0f68e9e91640f5b5eb0d4f70fc2763e9c14ff13bed361059f9f0b9555d859066488a53a6bedaf832abbd80844ec85ac546dcab7edb7c56ad7cccba354f43c581be29edab0d5985a1bc578bc0237d821845945c63d39ce3dc69a52e280b13b213bc5651607a7cb12f7a32b53c56a5bd8eb00729893b2355982193e611345e6c8fc79dd804e4501fd62629099ed8416b5d4145aea1a6cae02c4c7bf10dbb1a26c7fe3535b94dd3eaef880e85710d0ad18977298844710ad23a1349dc3a2d3dc8713bc065f2a7e6e8652e8e172d7bc05342f6ec5e7cd90e459325f38878db787b5b60097be028983bae5b668db448b5071198cb42617b1e2118160eaeedea2378bbe6c1664a672b4ffdfedfd992a5bdc39be69242157af1598fbe35ebc74bdef2cf3d749c636240cb641500480af28496052ff4b1172f86897ef25f580c86a3fa9a581fb5219ae640464c30e7e32a65eb0b266c723c2289c3afddca4630119761b941e5f4a7ab28e26b21a95843e010c251556bb7fff0f0258de703b56d12d3356b1ef4993fa709ab86edec48b9bcc5d4d057054c2327e6bc03514929e582116002356069ac3ec2baa620b38d60ab49f6dccfb04a94e8174d481cdaff0d5b900c199462d9dba5468567f23907f7b7d90980e659616c3e7110aa2e13ccb9224080bac0cda9ec6dd1a630cff397451e5cf17748f2ea16d8e93e4cf839bf015b5d504f3b57e3785e0fb1bbf026951511a0c6d373d14dc022c36f3fdb96c8bce069210b12ef3572392e6f305872830f4fce3c06f1d8e2de288f12ac85477616158c4e7d8cc875f7d99674de1ae1c6883e28207431b9577824cad219d27866e8ee06aada1114bd4ad599ec811730a494370c2f18187e4a1fb0a684a59aa2ae7e871333a6ff64f5db8142116dad6e9d7b0be7e761b6054d6938424bd110befee6743909b9d301a14e4982b2d299ac459679a77569f5c64c0f5f23e935398907b966c34589248cc1c4b68db744ca0c683da1b585fc8648507abc7e07e790a70f0f54d986f0c89dbdbd74d4dbeb9260ef7b9e649f26d51fa8343f0af2c2d79a57e2f18327a7ea02438ec04ddf3de23ec7b76393097aeeded9bde3c468cb1a74ba848e97514248481eb2d3a89136847abdb47246787202ce89bb36360167353b42bda449debd3e2a02d10d61a7f55f56898e2641567cf5581efe94fee0bbaff7332ea39a81cdcd4210159fc55d57f8daaae082bb3ca6a7c2bb7c2fc561a0bc08905371c10fc0a430ad3f3f2497a29ef9f4d7f1e835ad9ff31650019241f29b9cb7fe905654833828a12863554c6c2cefe931dd02ab84984572a08e010af963f6c2dd5c4d49603cda4036b3fb1d40d6291183a5991e61285b93ffc18c5cc18e83abeb7c3d12cb103ee50c4b22b23ae0c833ffb2a3d3ce0764163db187164575d4c90a675ad1d31b2e6e2643e87179bedd927a74171c32be03fb437338bd801048e9da72f5af318b52279e94928413f97ddaced1089825cc552de32e34409ae5fba6020d1e88769596febdb1aec2a686e7553ac1aa42d22e6f3c6c7e7618424fd0f4353ab9191d878a274c2763d6d121870ca81bb64cd877ce656fa778b6a0044dce5c9a507a19d217ed706d99e25f51ca25260c659942f01c0d2866adfa9e99b275a70229204292c62dd532b483b644d0dd8c5f1804246cdcbe99980870f97afaa32815b7b0a4fbb0948a048d59f35fdf2a3db0e97cf1ba3c5ad23ea4c8418521bb9da5c3a612c4544e6cd2c47373df9e5b10dcc44987fdc8709c25e789132af86f8ff93935569088e364e582c7e175f18091591c2ef1557984358e9ed6560523b3c424c42c313b2968116bdc9f82c181dd0eeaa4c0199bc74b4bbabfa9dcdf01b8340b9d023926e64dd68569611732a5155561cd73223debbbae11855846c48855fde0d0863224c71c9f4e18694371d485523233a717b3957ac2d52bd11b2823f026b023c7893628cb716b0fc4f20d11adf14c8c1aab80c9c066731ffb8e22a61da26d105e4bc1a73add08d7233e7812d94632946939a321510b1cd19ba45b570df10f41dfc0f0904211fed88f1bb08514a2c4a1b57821f78307e08262753c74bccf67e934c076e593fd001600931aef5127cb60beb42bcbef9e36035ac2553691e54e44c7668427c996a4d68a2296440825dd052ae9214579c6906c774b86bad5d3eda908ac4443080f013ed0efebe7d0f20f54681b6e52153cc7692b28db82fb38d4e8b168b90aa10274668274a3e4c9cf59a91f20f891111ada7c318bbfa86feeb7ffaa5db2b0dbfd328c3d453f92a63715ce6a03dc0a2c6e4fa366e1428298a75b0046b35117d6a73d59b95b1e9a6463eabe9150388ad4f16511ee80846461ae56d58a1dd9ba333cd7e5204c7637bc02eb81d86e5292af50472b13cd10e0bcc3b87ee3cf9f8f2884d9ca98603dde60c278573507462a23a862aa26ac798f6d9e27d84026ad1ac73196fdbe0a66a3a48ea2c23b40b306053da06b438a795b2e22b13d111ea2b0a75e17f9d8994e62d3358f1adf9317da0a9a2830d85aaa52fa737b771b77c95efe3cc827d0c9711e3f3bff9bc584fcffcc5e5a14fe58a8b6a27fbe07911bfe23d8875fceacd768ae3ae8cfcef0c9a6427dc0c1bacc2810dfe2d954b45f4cf070cb38d301e0cfa917edcf96c33e8af1aa9e60261a5f5513fcb51cd73a7290557daeacb93129a83ea1c1c176b49c2dcce70dc28bd6eab1b06ef86b5cdd7d21a9105dbe59aefcbd505fbfb9a64c38ad75cbee79fb302ef4af528168d8a056d1c8e55294bf376af7781f1111f7db507ac3a284e0aaa2639e54e3e2bd9a28f4b680ef4ce101a7bf4d876fd6a3b4ff5f047ce7f2c40b7d7714d75c62de0ecc84f21b1deaf8795cb6963b34738c8007887a4ce1828e920bb6b28b885083261f6cf38901fa3514d4294a8de561fb88b21605a1ae047f046504fa5c9f4956a98e9e4179399dea9170b3b7a6c9ae6faa0eb4f998a7dc4c4386a06213141f5b6252be7f0e401b0563039a79c3d6d42bf6cbd334366771665bcf28e6abc051c873243d283d900eb3da8d243d0d285cc220af3eabc465e415b295542745fdcd42b7113cb4c936e2359061ca2e813815d33a04502792ab953e0962daeb32cc3ee6814498aff7b5af7686ff4f3b1a3bc1386daa1b05408597f22a2c0a59c0da0b20cf1456ba32eb7fd850bb64429b8671c19dfdce0b159b0950474e02685eac871d52d60e33d25a7d2cb369587c1b8d147bec2c2b7d6d0e71b45037be9d392df196ccf839e021b3abcdba538efac37574ac56376da4629b5196d44b840e7557bf764b94546cd523fbc0544af4759a7561d8fa651db72c3bd16c59028ca0a5b51b213c696c97eb692e977438259f5cef678e104a09d48cb0a9512e8fe70d26130aa278ffff1906f240b241d6703ad69506441c964d3d63e490fae1aaf418246b5d6764b17e262c563be67588fa57d9f22903056cc6a865af857d228781238b5732647af0635ed133121f710d8b1e1616f1fea05b5ff0112844c18472c262381e6d3661396797ea3f225451fb43f73f76755044bd0180ec40424795c22551bb25b4728b4fc5b176cc20cf341579e4f3153f4cffee1ea18875d76234fa77ee231b20ca8eb8c36bcca8993c5384c72c9ae54f3f83e9d30e3059d8d0f2da08f454217337caec8fa1c0af17b1b3c47e47bd2986b4880332fd4fae05918cca01e12020cac814a069f98fe2e14da14ddfea6be27a282d2bc60671439a12306fd9945fc5a1c31ae4c66049c883bec70a059a42442349cdb4bb406a32d5ec0fe7cbd1d82d8652a85017cee5b0c844dd572bff36eb9b07b04210660524e1ecd90f3d082c8eed4eea446a43ece7e9d024b602f02b689f5a72874ea86f08be1e4a1c85bd662e606559fd059a67942757672b019e518a9157a564b2e9022c68f165229778159249888aa85492e0c651613ca1f4fd4d4e2ec6f48e61e49d8699a21e3aff671e09259785f1689638abe20360f73eb44b4d18831c3298081dee1fcfd80d7309257125dc9c9871bff5c7959ce2d6375346f772429e61f7a7dd7ed8f6f9bf322a9f5e7ab3f67320fcf775429a75af88eb6fdefc3a0e086964d250f770c6505361cc145828dc8e0fc5fec74b8f0859c4b239aafb87e0cef567b8600d7ae36d3ae2f74821f53dfbae5b077120a0af8f74231ef7ef79818a4264297fe8aa8e4fa1822189f2654cd5909041120c3f0b515f6c59cfb856acbdca8e6421c1446c682258d7dd6c70569d82012d604149ca163afbd0582544f3368f25ce6717d3e98a22ef6a52911b64e4c4e65191393914a2bc77c6c2e88e880cf1cd1ceecf5df5d12cfe872aa65fcd8b45d67f33bcf53aea9ff11ed70a6c47fc892bd1fdf370a25ab1666cad6a18d694cc60dd823cb9b37fcc3aaa01301e8f40617e7ab5905b6d0b346442701d64dc254036a1d675768915d0bdbf9a316e89bc063124ba500148623c7f1dc1e7fa31a024444518f2453ec60d3e3718697336de7eef26bdbcd3d18b1dc0d92bd5c72e5e26a790f2641756b7f3ef7c43c3d3eb50475e436ae586e0f0c17e01c349d2e84bbfbcce17fa253f7a3d9f13f87231e3377760473f72ad62a109a4c05a6965950b1857fc1f1c83ab5682ca5d166baf8cf817fcee050ef138974d803462b2f21406df191d06ef7bc3749947f9d3a01bead17444ec79db2951132f0c5cae574d1bf7562fc0ff91fc9f46552714fa8b8530f9d51d03025e9a9112819c65a12992cbf74f5a116684011bd57ce249e6250f13399fcd415d054f65d2346431a0ae7eaf29f91f70ad98e174f77c370d082635ead62ab7188257e43100a73f3761e3fd42a6db23dde509ea58c1cc45014da470da2d0cfd42642ac4cea32e09582e7476589d3c9b1f05ae45b34226b20247ca36c1b3684e1f960d5598fef29cd1e446bbd29e8693313be27f27c7dc851e607ccfe2a83523e2640fc462e8718c46be61a3a0f8eac4d1cf3cac9f1b7d42b20b9dcd69114c16ea75c59e849afdb5f8ac1454e8984b352077f834538ebdd607bad33243dc43627fd56e4b95fef9b0db5012507c70d4cd05c4b0644a4a2989f36c2786bf2e7138ef1d9f4acfd8cd64a5f7c07e0bbba1e3cd2d432db1a7919948e58ac4d02d7f973cb3a1da68bdf339c2822baa3b5542f29b281ef37297f4db23b96bd7f6ca253a28f15af26e302384bfca4039fa89ca0362ea5ab4ed1a082d239a53bca1aa00f8bbc846e07ad0b2223ea04bd492606daa0e0240ac4a45d694f4cff2b98c29b6d5777d49b35f7d8b4248d7533573d2f856077ed7e2af460d0d3f46655d94a4bc8c6e102ff253909429e607c4946d46bf7b2eb1ef718a245b32941e8e94ebaf2d86412c561549ced05ad1a67b47f8799f211515805580d41a384494165e480f052d128f186b930d5c0697d7ac9be852df6098e1fe40d54a8e06b71681d5dd886ed7821f873e609aa2c8d6dc5fee11deac1da18ddefce5d5984d1860fa799985e07a01b7d5d3632c24009863d405ef8b19de4e9214126714f04073f0dab82a5e32d9c084187d16e93db35a6c577e6f1ca96199fa4f209b2dd548e1e7412d2146920937f044ec4e07567aa7f170d3d22382ff2cb0c841bebdf565491e5c3e4421ab5ffd9640d927d10bb14b2a31f8a827f5e29a6a8dbc11381fe26e2651974cd0df383d80b19cb1e922e75cf65dd973476902e6843d9a6766f74ea1f4d0ff67a0a2348c8e10c9f6037d12a087eece0583e9ba7d97d7ec421c97211133364fad0348a38e85054c3ac017f01f4bc7093db2a8828605096473f38d6736e1cf69f781022950f103021495c8e950a97ca7da8bcc93194914006145135a7fbbe28cb2b1c6a0fd5da15899d43113c7d6c641caac053627418fba7954222cfa59f6e87d5edc9b4919c4136c99b8b2c432ccba2a3bf5d626bbbed4d532921763e69659a7171cf8fae2cb30a86458c3eb4fe7651695404e1044dcd55413712cfe80b9d97ab622d5965abee04fa85f99e1ae92af0746ff7b86e2167fafbf18deaadfbc82c41a4211d36c6d079c998b754858cd0d94cdbae933fcae35b5532c2766a5fc14123c0e23cd344c5a28c5f74d683e429cbfe146fca72473a4388da00f95a8a98f74eb5c090f0b6f3b1a4ba2df4f8b8c2c17539957a12bb6be19f80813814b6508515a10a6a00ba0f23644520630541ceeec537f0c2bb2669c598a0f8008cc6aecbcba4d89306cb2a6885e62c75c4d7361f1957ab56c9e8eb042b608b15de00b86a0bfd73050acf7d2e8d23a3be037aee778f5e2ae2a892df36fcd5a41251ef71667ecd336424b48d06fb8f00fa88966c72610813fd84b9c03fff437893241295f87cda2e2803cbd215b29fd23bcd54e3ff86b6a012a5998524bcf9673fabd7a5aae3df6ed660978fca7543b86e35570a1211b938722d17f31f161e344f7be2b522f6c6620ff61e111323fe61d13dee240329e9f7b7576ed01a560086d416ec6f5cc404ce3768d021a1458370405d6d7ff70c13c3d60ba41f21a17de241905acd18b5d28e63fadd37509c18b8361e0fc971be6ed51ee4de2a6adb2a2afacaa43e32933443c6928a24f76eac7fa547232c6828ad01ca8e80e4dfc675085d223c48a0ba7199ff69bdec89f5ad0e734fa032d2b8a4dc63ae16a07add9acf81beda718f5de5487aa84ccde4e300809a0d1f502179566e114c13fdec26cd4eed858387b87b4ad1901382d15db4d30314effa6c63459c8d016314ba4c9ffcdd26cb806415e5efefd32463e7c4d56d0acbe6170f72789e5acbedb8f6d4561fde20f7bb5120225eb4b2ac98d1ba22e7a90dad3d3d012b4daa3699a55bda8db8fddf45e7d4a584bbc111713090f8e830636c6e6007df4c9828cadd93ca2848c9240ae6709518c48bd65148e0e21c654bf6d6751cf23241306ba2283aae3099e9415991affdabf67b1e4bd88495dec3cbc3eb13fd6f2e242ecc56f4e62048bec880174b23040e8e7b52141424f8cb88d5d1f91890c61dbfc4f8d69d9208fbe662b36b0db2dda30a232f2e805c2fd1feba65183998d5b69910e7db7885b7c9de13b9f91f4e3a33b8be723a2d58e18cdc11a54ee506fd83a6c76e1f497e743972d0d78c466c909ee15decb55e24dd4f9d6ca77830885ef1535f79e58d1cfc4e5440338e1fb18c03cdbc24718aee180b2290b545a5b7cedd025f79b955738833f12a7a4a9b7dbbf0996fcb51a0072002eab143f4ba79d44c797c4284ad984e5da2828c9747a94b8d9fc8ee3e5f07f4fc5293bd3d97d39bdc4d71f1708897a389887d5f4f8cc966c60110f3be08b06774fc82b8369bfc9ed7d9a4c20fa5a76290480608137554c86f431f5d4c710df1ee11786d1548451a1d97af93370f81c654be5a84b7c1e085404c91069f03068cd4df29920becf0654c8be5f06ce91337a2b03bf730032d78d6d11c00f93824d5f44de8e2eac15a5ebe40dce76903bb7913071d7ee514f80787e23aa4813d738a1b724079502a8f57339b86febc1ebb29565783951a3f898268e0e1fc098338b924b1ae91dd58cdb9dd24140a0494132a3e0518037ad2631542809e9141cc151dc7e9989c8320d0bccaa07c71990eee5294a0a58d2deef7fc68b66f3876c969c80c55cc86675f96576ad7377abb704a786dc3cfb409db9198001e8b2dc1395a7188d39ab6e5693af8f656f77ef9334ecee14bbf98be763007444de1aa26218b5af1350f23c70f5ab44bfabeef23518cff471684800eef57b22209a094032a073f8a7892275ff77ee27416b325b34dec52a61df73b8b954eda104e4a09d85b08adbde6a01e51375f952c66edc13cffce7991a35469eb33e15edbb5e273d9fca93e3c7d859f7b5c58c18339e14b66d949d257a98f44b6e97b124f5b035864232c8a5c48731f9d73fc45de54e6be314ce1f0d98212816d7bcfa81a6838960f0e3de3fcf7563149dee9a0f335f005e2cd9fd7a6368b80820ce0c09bfa28d25173fbfd8de8224902001022b1c096c67f1e2d807a5a59ed21918470514436ceea27d25bb17f600122e8d7a8628881becc21a9e341db577886a71d17e25727141d4caf76f7d65726d131b2b70d5a765a2a407da2ffb1224b80209d7be72ea4e86636996e712dcd912251710a08cb2a54acdcbe5c45c3146c89eae0462464bc683bb77bb339d89af791ec91680700248df16ffc054722649abff22667f510b3498b73517a251e358bec101146dbe419891f6aea7c261e17d4830d4056b8f7fc4bcd9e2d1cc91d3f1e664ed4ffd613409bf85f39b2e483755f0b0cc922a8656bdc82e374ba54717479f3be3e88f79419d05332ed69910ee2d94daa2dffd3648bbf5793992884db861b7d9835508bd53018957d72c30666e817276315f45c354a8741f6206020cf723f374e9d4ef430ade860f7a5f5ad8f0fb9ce1f0b37253fa6bbb1ca80429346624c6181e14ef307457c6ee03982aaf180b6fb02628c2a70f0e7f124093b346cf84afd7b7d15ad44754493c7ee1fd60f5968051bbb89225b7b6a173955dc1d15f601ccdc87e55bff853a9961cacf9d9889842000aec8ce84b89e901912b38e217b56064341c0d375e49d00495049389581dfbda17020f4403abec0cceb74f960faa1030bcb86653dbd154838384120e4cb211a315ca1da642678a328c351fe0cc6a3b8df7b70871ae2c090f72da838fc4e29daa5e2adad4eee1fafd3eed26782dec9fbc1c01360ca751f7da202e41204858f4f928c55e34bca9a9ff1b408063fbd7044e34ef1491dc0fad3442c7799f0441951bb9d1e79eedcdfe65c1d93829979fb00a2cbc2b9f227f601764a231b8497b79e62285203a2f06b03cfb113ae089ee2eecc2dca0749f705f259e3c9801c03ad5255ab772994a34db5b464b7feb53540abb52ae2abc7fabfa90af04e924b1eac17a6c6e996d6315ec8ebba72a96abaeffc0bf5f1c892f058e1b412e2ecc20c9dfb7cc439099f98f6514e4f4a0d4f4d3720e8e5c7583af8b92da7d4c28800415297d73a5baae81cef339297c4c482b0471e8a7ee74cc10efec988b1b7783b7cb7167eca1dc6f27173e516cbcfc1d4433e7471f00d2bf236e497d28ecfe87ddee8129ebebff21e94d20d9fc29607f1de89f9df991de8aac71b7c872a45fda9c9407117ee36fe119687d862ba9b1d5cd552073247e367b21658ef3ead6dd60b3de67334edbec630815ed6ced8ff2ad3afd2f646a235e470b828ce7276c7f044f6bc9a6b84582232c701907f9cfc2ad37066c5e3ea64ca61671e20fab290a930c08aa0c5acb4061acdb2944d379b1ff41235185708001a4d050ea34d711362548e0881b2e50c7a423e71c09267cbbfde84c5b38319e17b6237ac14f175557bd5c7ffa71e5a7aceaed77700cce76242bab5c676a6bb759ed6c2c217fccdf01168e92b448aa265d09e82ee39589f93e00388ad65712d1d8fda697429a753b99e244e0e64d97ebc010b0d65dfb9b85d5c0bad261d761143fb6633a66edd4bd4e72e16512dbf4195af84eadb689714ea480baae261218ac8f4791479be0f7bacd9aca58f654af31bda89d5e79a4645638deef0d46eb8d0f0d21445eb45b3d815beaef8be9a1b0f5114a6c7ceab2a735a7eed1f62a02456b5aaebfced217d515a55f980c218ecadf0771890e24618b627a91d9d75eae61f5bf3f487bd9a68d0119864d6fe7eefe449fd07394187340433baf4e262ce571ba5d1852e0491b330f8a907648192e31c09fda2dae4d1b24d63cf666c0774698a4b9aafd84fff2670f83dd1992669d6cc5443f993745981992e837d2c59fe661ef77b94f2025f8c2f449957123c343a567e8275304ebe58d36a0c69e7c9070d14c0edb5db66c2e8a549ff8db1a64d67d32d18c82b8ccbd3b7597deb4ea29589208ecaaad40c30f167aace242bc8356704d0d3b775a66ecd640ff0f94fd772fb7fd0beb742561a158e79f6586b329da65b2e6f8e2102e6b64f2d4d5a6605184b6be2b857ea6e45515d17344780f2ea291b471d4b8c05ae21533cf0699b1b030e3892e7596b370127ed65d1ebf80fe47fc3baaef240a61af0bd5131836d4de92007311dd6b0cb10d92e2b05c6c943fcae9792a3e70d58eab19a89e206086f13f808a963fd3f4ada42b0cc3d50066e66b9a1393f89741df8e30251811d7215044dc45c23f780aa6d0c4271463108150c3c69aad4a97618cbe9917e2e82e29d2f57703b902888240ea38a2ab6abcfceb1984c2c3625d1ea8283a7c194a17a71319a5cd7efb313665cac0baa5fc91aac3dd8906db85b5084c9bba32f91ae8921a929ed9eb0a5f3470e0242f70a5abdd26017ede3c92ce3870252a361206324aeb1603daf016464270e5a0c8b9f63b46725cbd9ce8b20bcf317924ecf098a7fbb47c765ac9d745c64ac719691f13b32c1e50b8493f0b24ea616017063289b4344001c61573ead0ba550a9f3310d8c5a2ab64a7fc41ef9f1d2f269c1ceb2f47302cad0d9939db26a11db7cd4ca17bea6c28ee1bfa0a2cd88e1ed868013268fcd697f818a5f5b361957df573f7a935fa82023ac9e30c2c5d218edc72b9863e89fa0a083c30e2846fce84d59ca5aeed217e7ae524b29c0eb6af3b07a81366c090f614e197e19f5f47237f056f84a596ac13d9e6e307c9b1954be0bfcc1a78c5a78de4da327023463d71707929592a3d35143dc849972fc9dd6017533939a40d740270a5321566e666cc20f3532a86a8200e8cbc4babbeceb300d2434f3c525cc41fa8d49d5064c0815a94e247a2b4cc28dbded8ea078e2ea85a44507228d2fe1a7fd862c173662ae4a3b5b1f9d05276d2abd118c9f3848b9193bf9cbbbc1997eed5ba98bd924990a4a56048246e057505cf84a3684f9bd661338ea81fec30d50be4ccf1b36f4ba3841d3285d691a8178652020dc3006a87a16c1088617c3d62f86a96920e045a78883c16538e7448b35abbdc17d147551c2bd4022f84e92149234976e610d5ae032ef3148384ff9196dd9ec7457b3b5cda904206ac3bc376842a52764c156d850405557d43ea0b1b5b3a1940610b82a9c05e2ee4daab7884d18b60617ed010742fc479c49ac338c729c19c86f0517e1e3c68d4faf08cbec1eec372b136de459b61a525901833899c14ccf27b5705303f6f49e79e94f740dde241973179f479cd351bb701a8cf044bc2f9bf57f468806555b38c9e55eefd437acc8b1cd9b2ecfd9ba2f46f77fa7378e218256ad2e9ad40f509430220ecc6ab6f675cd1c28fef0e8c99d5f63dfc291527724786d1cac26b68ba629e917a7cdb7398a754632fe540b07d1d490c233f4a20896faedcd07d0e69565cc281962f3e6b05486000cec5d4132e809b3e759b547e0a005557aeb09d5e87727d812a797aac86953d71ecacf29730dc3cb24f408c9bb6970f168cdd9e63c0969c80babcb1e808da469069c6a5e1ee015987f04abd7417df1633afc9d0df47f9e563783d0d4e69ff43f36613fee40eaa1f8b5649b756673c59707e316f51fd378694391a746a22c72c401ba6b2445bab824f00f69dc9de8e7b8ba115d80e8f4029d8d8c6a7ecc94daf5924761f0fc00921fd6dd492ec52d21e85205c2dfda72ed09acab46db2422a94711989b394dae81c2e604633e1028de65e01a12fdd6b5e2e4f2c1e58e22c0304c45b9a9490e12b43381a32a25b4f34cc87ceed2621fb45923420193481fbd050ac93eda9982fd0fcce1b332c88041fd41e88859f04520e6bc78b63120629a0e3a5f9ed1702587b00071480242e44a007e911d3056e271bcafd03cb94146bba9c5ded8b29711af054d402e023feff6bb498ca1324c01bc223e859a988b3e21f1d9ad1bd8a7b8b82593240f0464641a6a586b9d2d4c93a2f47752ace9e2ad5b0298e33c4bf96f208045c00e3e8b63b6ea41efe851070f99b65e375e9d0f4975f3bd4d22baf4f2e1f8bda2371964bf0cdb724cd7a8c4a1a5157c2e8254d72d92c7b6adb48d5ce64a6f21b335541930abb681f9529118196047276f3a876e1b9c2a50912d2f3ab3471ccc30762bf0c3f0c9cfb52a57878ddcf2494813ccbfb0fcfc1fef336feced1abf5a1acf791fd69948d8f9c2dfaa41e621726306ce04a8e5b16e43cfd1aace7fd45730f14d324417c7c40fcee22240308ecd8c065f5dab86ab83b645a56f5666d209469086fa570ca3eb2e3ab4c947d69dd44ed13fa55aecd71a692c978642628c3b5424bba500ffcf28cb721fcff08fe8c573dd97164dfcc3048207f66e872e0d6b2fc8e013d789631e3505a5ba684311c1439bdbc2c4ad852b4cc0ce91fe6302d9329321aaebd480e4faf2539b7f11a569396f56aee7c6a8825501af023694dede57f995809fcfac82c9ca21edffe009a8ea344574f778000fa28f429778e8ced69fc830e0b0c73b760dd1909ec36ce2e9856ab43eb38f6d954f15d567fa7b62bf8622c57871d73f23d0a647420e548eed81849c1b1815b40fbdecaf095d57d5956ed28a159c5497790de88b69f78b51bc63034b15515f94128bc9133b3c687123cfad3f80103710d22be745193d1e32acfe6803fbf7d014219cfea985683d69d57b2b90abc55eb7ef64214f3155b37f253138535a6e2a7c2e8a22f6e22f4fa1659e4be99dbf4e97225acc60944b48b37ea7e55953eea273ca895f7b1b6fe2176ea71d73fd8529e6799e0e9b1937d4654e77bf1dd2e18d7f2b3ef644b23517bb34cad048aa2ba3d27faa725d5ba1fa008fdb272f77913b6f43a789210ca5c7980969eeebc18de0cb23369fe57f1ef99ede6ccbd342022652a159e1211bd0fbf10c931997fe18decac6bde0979fbf17a6c94675e586483a0fcdd535dde3bca7a19a0c9dddffb0617927b7ff28a6f619c4388ad19549063376292146df6f4203f8031c9897794b1381e44a822f180722c2781f40aeb4e61759582f42636667af96682ee9ad994f73475cd5a95230fe502488d9ecf5853416b1eb223e5b5d959778c7e3e7c049787f32f3d2955269cc210dc5a7b5ce683118566106985882e5bd62a6efca0e2f27b229e0b0e75508d46c6293ba9b2d79b6894ecc5a7b1954650a5cf53c4c309a3cee3c3df3099ebd80441bf4bcb69a824e0bc60c9bdfff28e6173ab5da911e7c4d15eac1effe81c0e1b570a50b5f7f432f48124a1a6016044ce33d511c292452f9d508c8f72ed044b46c4dde9dc52f4549d944d620c03a3887596c6b4f5fc261082498f595e0de231bc61cd9e989a1948721da1e589345a5698981ed959d0ef7cf811dbb740b07475bc5d1d2beb3bd20c6928e68772dce4ea5dc38f2048f8c149c3195a83020a1570317978afd6c8f3b65d432448b23b0e67c3642f29ed9acb145108eec8f87e831d324cd8e07bb790540c5f3b3001b8b60d38cdfb8da403b1de387584e1d537c8d03c2eda837b0eee7086aad26097f0964ee4f7ed84c48acb6f6b5a1a17f2a4e65a93bc42d4f210843166644366baed011bc4ebce8f39c23e026fe141d792ae41b7e087492883983a4ce6fa9592a92b01c7589e8d5c0d26e8e017f983dabfa9aa54b033f986cb2561b7a9f1bbd28ce7030fe21670335dbb18538fc569a6d8c26612953001d9ff1d7f2796777203f1a701eaea00b3171697a13768a44dc14c0a339df20c124717343169742eb56f25489515f0729c4c99cee8f64f9f48eb95af8e9d1aade340dfa47489958400e2830b0951d5c6d4cda29da882841c04437ad833d97d82f146a9f365a44df1f0a5cff66cf72f3482f76691676a3542be3b0dc791ca4a39df39e96e29e872689bde07f2d001c5bef8247927d9d487ace8156a43054a74abe1e4ee8d19c46e918ab6119ee5bb1727a8cb47ca37dc5d36050f999040a95bc1702594d554fa684c28d6677f366d4e777e3751fbb9662fef840a7eac45bee1962fe085b6cd5705bd7c6f003494950a32a183a8d9ee4bc4a4702a0d5648fc6e9bff9d2ca30301349497d0c2461721db9542a5bfe825015d8e5ba259cb06266581f94896e532ff3fb8e87c76c81b42bbf3d94af92b36b460cd92c0e791c95d996ebeb32a9672f283099484623afac60f73a0ede4e256a1dc6df6e5a8e741a1876324a2e22254a2d6f2b724b86929335c7089f3ca9d17037a6d836d69c9b5a8a4aca0b4edfda9892b962d807cea1c439324c1bb8959fec5732666fd7a5f7b69eb19443d7ba11ab62ede751ee155a2a218f30cf13718faa0eef3f538e2f33f4890616225652b305bf4430eb3b31efb0794c7c0090653df6c3ec8f22e1bcfa128d927277c35f5b330e229826f766ef93a14ce2b3c306a6239339c2151384444d19437067c47ab0b8f09e2dffcc31daed5e0247cede14db87a48f9b82ff8acb14307554e67c3bc0cb0d7c9d1d97b4e657a6d11ab00f3d3867f93daddc659048f90b8bb9365a79ee05001ec5369fb6d00dbfec7db0d0ae1e559e2bf4a29f4f19eea507ce1110948c1e9bbc396c30055a3673899593bf27a69e9b8bd12e4148989af1add1ef9972dbaf3c19b3dc9f616f36dfcd34d0dca143ecc923cc16ee05f5c5861d8ffe89892f450d2927fa62b416273b7987a361ba3739bb1477d528d21abf98cb0a8467476d0756fce2b3e40c8d2ccc285f67b299d7d46f228040c32f304c688d01c67e0cae4b5786f0ca5aa52e6f312d0ee9a15feea3d290dc2ad59c97f3db39220dd1b58291bb99610f2fc34f4ff44f56ac3e3a65184572d1d4cf206e8e9ab6726231b6330328a6883c9618645ca3bf06cd2cebff10391117178203e6b3d6a03ed93cf26e0c8c700e0327eded34f473bfde7d97c31e04c4d5ce3d307f6aaf2acfd7d19c5d34c24c5dc9fe1512bfaa67b326527f7b37dd3bde6d7d58248a1ad6ea465468be95072ee3855f92e40bab3cab122a0c4ea34140c066bfb6cc70ab091061423712789593db376786af79c4481f4b34932a77c1181745c81461e44b57778c887ce28809e1b42147ac1383a48896ab5b6acc16d38c67abbdefd74ce70b18aaa60ff07a78020864d7b56224cf8600f92ccf39220dd1b582916342a61b4eea9c5f7ef593c2e5a9dce490066baef8bd6b0cd2f6237deb94e4e428f2726c67e841cf617a33fb79cdf0e6b140bfe350072b73d727065ebae7011a8da948bac7c73223042d2adf210945fccfb03b2e8acf8555ddd9f9efa174a04afd96a703c9e31deed1920877323ecf36f2a6a835fca033c970dfeaf3b35768394827c5e25801ec37f76f24ebd1f5ae54469279a2896ffb618fc28d10069413e1a9190ae42fd74528ee75d8b7711abd25a305dd1b0260406d07fd8240ecaad612e521f479f55a20f951c9471940c7e61825c99f758ce95ce6457d1455e90c17531baacce11796f23fc405a0733b39953ceec7f0baf088005ce2e6a1a3653cb2468ce033a4a4c31b8771d1925f786ecd3bc98afea23a1fc9b51da33e1de92139375ff8211a6fd12bbcc94203034c555c5508ea728b67413f04fe523574604d28a68a5ad48c514d6ff310553f1db5e7db154da6c6570afe112db4b84868cf4ccbf0860f75ca9ca25f00fd77118ec89e1f9c2a6490242e310e69eb865bf6750c62c77e8ec96bbb15770c8236d84a302feb52beca12be7388a72427d5ee86d6fb16adaa98c3359d707126925a8469dff1805d29c8c1cfc65e27fc7afccea150165c3f3684ff3abe93040e479a4945f8845b015a150b00bdb8caa8bb0693e34a438954ec8e0945252c687d475ffb1f80a6ed94f502854dea6a37db9d65b9be428ded687a6e0cc4f84b669a5e7b4416170dc4e9e686f1b9799e0d8a0325b9f8ce39b4e898e86926c1b4ccb51c23607dd83b7a3e18adfd0e68697202aa1d51721d4e4777dcf13f1d3c971e40026938c2707084db095187810123b669f383bb6032510dcabd49cc0a7e04f5aac7c026bef1c1f9222a6665630212810f49da702c322696a17dde5abde9301396625ea1e44707851e8d8b9d9607d39c87f914ca5f9bd00d0dc419ee0ba46b7c5abb1d83077a445e383b13d625a092e8aa3955d393e030ff45913be6887eb8c4fd0ed815da6a2159e77b7550f9a2b17d52169242b9797f2ae69a986d59323cee2228095ee378c54822e104fad7717cd43883a8d3e9f134b7edc26a27528d8ede873246439c2a93575280457fa453b164717d4c7239d18804768f566917eb14c0154ed020af5e5655d300ed24a07d28e18257f64caf7b0dac85b482be946e3c72341cc14fd5dc6dc63d736870d9fa1902d41a303621bc2afbd08956128846b74ceef88bc84ca45876021bc5464c10130175172b92f1b76231c7e9384ecbdf796524a99a4940178067706ef052f84734a930a02a54aac8a97346b523bc6ac88e00b3da1832753a8286285128e5a7812a507fcaf77fdd72a2b4883af094f428a3021e4c8891529280f5594546192668def18b3b2829522255861058512acb83bc6ac0459a314c687342b20f68810179008a11243971c70a02ca822a44a0a693255baa24a0969d6548162673bc6aa8081c90006fbd47c9f0f5310712b7c285364850f618658e1c312265841bd35311f8af0018b3d4283060d9aeac3931dbdec18eb010a7b53fee0afdf0206e6095dbb7ef3357b66cf7c0cdac824cbec48b738bd27625488d832a96801428a9831307440494d0e6960986249540aa63099c2c3cd5ff672e6b216b28c264d61614a0c4f984ad20ef353232ebe179f6085fcdd4b8504fbde7befbd374c4eed18a342444c6c8a9a5d778c4d39d3c3162aa11a080948f1918278f0883f3507b6fc191b9e3ef383a4d458124d2985c8b62cde98cc355f5913d9bfbc77fd6f643c1b82284f9b466162d30ce36b6b0b241baa94995282982a8068932955c829503bef189bc2d405e60218ec53e2fb923c1d794904894d29e26534344111030f452041840a3a486142ca982ccbb22c3b42068dcb9318285e808cc1b12ceb0163dcad10d3746982099a294680f09283941aa4243da5a4b02045862731af7701910394233151b44059628cbb90811d6e58220463b4a449a23844391325cd939818941df6b6630c8a92a83ddf5b2287531271b0f581fda15b1ff85b9bc3293ad3e73ffe53025130fb0ffbbe492e0212e88748b0ef5fa926c1ea381510ca295bbebf954edfea56042450eb03fb0e731667b29c5172d298dcf1c996f5e77fe0f347fd49e7dfaba7aedfcaa144615567ef896842f0f101fdfa1ff8d7cf513f761fb43ea83fecd7568efbd8470eac8d80ae8ede23bf95237acf1011100940b1d3d1b23a87fcb863886af7ef43020673b966f5907072ff4d15a5016402bac42f44c490d44cd99c4e22311e80c478388ab1200496d21bf6fc2895d43a9d06159071c2b48b622a28b2a7d725cf77d9cf58b2f6716b2fff6a3788caad7632329ad9b8f76547e3a5ae0606040cf6c5be6ffac4e933df6a8c2db6d8628b2db68faf0eb238f419f623c5d32768fec5f75a5b2ba5ee73d2d0bf3ec6189c3f3f7641f3dd9f26b1c548a5044a428248d2972200ec184b7292a4e463cedec7e37d3cde7cd52a46377fd9cb39a359966519959de92bb8e9cb5ed2d1a5d40b2c662fb8884887234e78c195353b3ce9b0a4490a9a40c9b22ccbaa0a2688819035406a302a13842a6932439324576c93169ac070a5e9f5aea42245b1a42027ccdb044d0a4b530c69e284d7a3264094b0d4044b90a5a658132e9bee186b9265c6909e90c844b1c5d9c4040d93225e30c617e32018e326449a185d6902778c2145417272c39473cbcff45b37b694d47bb0620506b3e25971b9aac400dd617126468f31c8165d95fb0b723a7ced9b776431c9da67cfe197f7cc2bef6f3cbb7b8ed3dc9e52b61c3009f2806dc901d86f60e8dadbf621cfdebee973f35bfe2df5db8df72b30fcbdfa18be026f3c1c9cf7e11b477b600346255c98f774cd17c6da4b2d63d4f763f896d9a83995c1165ddbbdf75e7c6374da5107ddc7dbbd110c3dd833ce38e38c334e8f05597b5a238740b7be3152a743b6e8f2a044fbf2f35690a1605ec54a553ab14939a73ba5b5cad82c27ff7632bc26396a8f498e96871cbfa6bac9f946b59ae1e9137aad3a628fe108db5d8b01ec75a595ee3ad145a5434e9f3acf7c3975a7765e4f070bc2235d2f07c7a92fba88df63d32842b4628cb10db1906f51dc123ac1a11e42af3d9be4d2d46174dad303ea9247848a50d29d34c04bcaf263b4b65a5bf1520b1564f9f3f5eea5204beaae3d2959be87030f1878698bae942a620ca305e813b4a1d4e66717124ddf9d6c80d2eb07c6ecd140b9552990c52473efdd077620076ee07687e5703909b2ba93bfd83122073ba20bf9fb05a3c5f4e15e7bef79793ee4306f0ecbb089350f57535665ef915dc6817277208b494ea538fff13caf878d83317db2c79fbd7f039cfc6b6cdf384ef3f0802ec1ec9257daf5c3d7377f6a784f658d20df67b5905937e4398f28f197457a58ad6a90c524d7d81139d8bebea794c30805c205a60ff7b5e61e42218fd7960f983e97d3616cea645c2d44a593e882c52487f2e8084b7944a57e0fa16af5f449327d421e47d3e7c8f4b15f5f22f100468c8a358fb884e9f6264facf5a3d235da28e7e1e0524e2929952da86e6da4d7d20be280936c3168a5b5520f76d494564a2b8c0a783bd4fa723dc9f2eb4b199366d693ec94d2fa6195533c25edf0c9f6f7624828b9b6bfd53a8840b43db0c19e40f62df8dee3453d22c89fcf7a92a3f77898b78b403fa4da031b6cf9f25da9464dd3344dd3341b58cbb0165f04a28d27e8f9acf3a9bbfff49f58bbd7da5a29759f130cebdfcfb2d7344a3f86f54520daf46b266f095ab00489223b8c4a4a39b0ecd9b49a825ee0e75fc9e90a4cb64fe4f07ffafbea893c3f7c49a7c09c80c19ab8f8de1b3bc2867d2f13348aef8816bc04382b9265d9921392d30a32cda986cca904d90985d41735dc97289c1d634700d9e1c3322856517841e30585a8cf29cbb22c6ba5f065872f5bf4172317991c2f2b25160ef8f1cd5167440a4610592d118513d3d6d931e60483ce0802ec70044892154071668a28464c15196a78e107234878d9a20bb667485d73c25e4a2e2c2e17e7c59ff883992247543186e98b1440f379e2cf43a5b042112d2aa0b0022029a5119bfb36411cfe6d0e06d19f5ce73f411d34bfe5da06d126da4e9f9b60cbc67ce9208ef95287410e06d19f74be5fb1ada4c8e17ff8c977c15e3e9eaf4c399ab3e3ace4054e5a9cb030b18ac229e654858925a0603028a8ef83828a1ea3cb21df8bdc227469d5629715d8f75f99122a37d898eeecfeb595f6149139bc4ac281749181095dc070e9a2e568c5a58b148cb10973c7581728be436c6df9ab2f4d514d25188131be26e01f36f6026435c4170d768c7589a14b0b3bccaf82fa62be5c7e8475c9b1857318df0f298db6be5c2991a38ceec447c4f7c19860b0e84d1a2fae2ea0b24a292b15a3fa210169be9c14a493c6a32d30d89659575ba6cf07dd10a246410498bab9f5b7f689f6563b08c8355b6aae5b2de5b9b7cb61f00336564b99c698bb460ef0fff51b20d836e80eb25f27579dd618d3fe7b9e4faa8eee4363f4193b9831fafc187dc613d4a744346dfabe554a3f8073f5a77abace3ace9734407c229713862d99a07698b7071e54415365872ff68cd13eb53671beb8a79ff7542a829ae1377210b53acfd72ae64f564f563cac7458e5b082b282b2c261b5e487f9e4878d02ab64b2602d0b638e1809f1039216274056695b2e4ef64a490ddbacf6e20cc759edc5378699489c66b5d7c6596d8d686452984ae38e5109cd8cab2a92cea774c627c232231363f45a6badb6d6ea313a95814a9f2bbcf2e81e698cee91f2b05959278dd1a37b5ce1e0eed5dd7d8554bd56a71edd635512a34b77269224897131b281d5142e2c7049e15a25f9d1295c5088712982c97fd7ab05be18df1e32de3136841a2a4358f179f9f5ae21a8d8e1c3e6144794c0575286b8b28760f2c2102fbcb042015d2979b121846c89ba012aae6ec8f23dc4f2099625a7b4566b2fa618fb941867d5da7b31ce2ec659a66d38d3b46de3b82e954a651bc7755d2aa5ea5229952a671b7a73e353dedc646ad03861590a0306cb524a95b38d0d963dff66e9c697ecf9389ec4a39ee7537a8e248acc0c23e774a7b466cee6e60607c7f36e381ccf5bad58ac9c8f7e9f4ff979dc8ac5cac9f93e9d9cefd3d1d9d969f1501e1e9f92c77576765a2d9e261e161a500d34f02935884c3b5c8bc7795838a88117d180737003324fff7dcac7e2d4f4643a9949468e641e9940d4a0710a0306cb929244e2541ac9229288f49f617408cd5774d221e774a7b462ccf3a0d6000080cb150001500108c0a71400b6b9c1c1f1bcd58a954373727cca1c0c009cf297d39dd25a2dadd6de8b71a6514df32935ede22cd3b48deb68d7f9945da76d1cd775a9549752a972b6b1b9c1a138383e250e4eb6b9b9c1c1f1bc158bb2583e258bb562e5e47c9f8ece4e8bb65a3e65abb5ad380759b09ccf419d8e86dc3c3b7467c7a7dcd9c9525f74313f9cf25f45c971be5c6677a8092c896d51024366e524c7d816a8d816262d59c0ac5490636c4b524c0b546ccb123236d860c36a8658961c5634c4b2dc90454996255968d8f5c8cdd404595c58c9902585adaf50c1b124794ffccf2f389aff7ad70bca7bfeb34c08a79d655996bd2fb6648524e71d6342601142e9d610449520a6ecf061f8668940d000e2de5b83ac9c92a848a894209604c1e4098780c6100410efa956050b0414104e94000918dc2b0c94042438ba9244092f5c693ae10517ae44b9b2835c89206b3bc6ae2ca17105c95d8de0f5aea5132cc9b0c387113152c5d50a6668fca0a62b52b42482bd62613ef17d93aaf07dee2b14be5591efb362081543f0187c31b6122688153045415629ac4eb0524496ec7d3c2b2094523c24caa65409cda63ac469aeaddec7e35909c28a103466e5062b33ec3007419ac6db73253e22187f9f8b7502a52e9775efe677ad2930c4a9d46b291dd29d7a9c5781e16f1c2ec5b22187af17f55f2d60f5a5fd0d48e74b7b1bd09b2fed33f8d185f62ab00335199ab62f73e5e64bc9ad64a9c34ce767f3b116b3ac026563736deebdf76d3430fcad69391f7e5be3d99af61eebb5f7a6cfeab5d5cedbd87c0cb701573b3a3a3a3a1ff8009005c6f9b2f915c862d2005049ea61fe937fe24feaf0b78f3a7c6557e94d6b9628f32a450ce9e63a90e2346c8554a052406e367b2ba15e4ecff461a15487de9e990ea5751a378d513e738be822c79aac018c730e13a15e4ecf04833a9891400165c4055fa08a9428628771028325db6887cd76d0df6194bdbc675217d5de8b870524cb8f30fc44bf023b1cf494a8919c52ce59ed04adc62e1793f7b96a583f564db3fce9da5107fd44a5f813c444554e2e3b58254869c482180c88c49c9001ab496605a151af18b1a6416cf29d78ba3bc69cf0b2e7734e2c394166cf5964db549352ccd5f9b2421e058c991d634d346d04ec186be2051b840bb81ccb60ed90e37c6d19fae3a74332fdaa310b879c43c7f4911dc83d778c350166d34f9a1ccb84ac7dc8ed1d1609323717307fdba4512aa55b1fccef5e02f3bb27da1ca881e1081b673f3a5d4ffa1097dca21641caf021c16deb7edb01e9eb80f43dd04196917dbf75c3ff3ecf5f192d0743ff1cfa31bac0efaee50ffd3327fb3e6d22c9e6de7fbb9ced64b4dec16fc3913df7ae43a28ec67dd66720eb6fc020ee6f3e839ef72bb0d5fab8756c1e83add6ef7cdcb1a3c13dcf73cfa35b2d3d8368afbe7563e76d7e27763982482022311e00e7b32cfb9dd57f600e1874f33163e990fb6c057ada0562efa97f0306656f9335104650aad335d3f8673743db4490e0f62e14b5b510b417b27b83daae377fcd3ffb58134bfb3efeeb17cfc0fafeec52d1457d0ace17bbd6bfb922e5778939edbbbbcbea306058779fb3fef40f6f217729bfb084b84b272fa644d1a8285a8646ed8a849289b48c3432326222890b7430da5269c775bf8e75cb067efa34282d2304557a8af1b3f771e07c0dcc14c4db67a07cbbbd06e6e7c0f99beabbedb78dea905a7087bfef70b7bfc3ddfe0ef72319187435f7fa99fd8cdab876b5ee6b462fd5eeab2868a3bb90ba535a6ba532fc116e2f3483ba27615730f4bdeda0a13462bb97db4bfff07ead1a6bae85e6764dbfdbea7ff79283c0b5adfbf2b7faf5774c1fab65adaa0fa591aaa361bfeaa0fadda73a1cdca66feb6f54a54349f3ec3a1aa1e43a1c1cd5a14aca904a7b73bb2fa595de6e7b22d200f56b47c33efecdc61ddbcb94ecacb49d0ea2bfbdbd5af512055d43a1fa9b0ea29994990ee5b4b1c9a76fbbaf5fbf769ac5992ce45b6e5f3f7be2c0e83df58336ad3ded70705bdaec774c1fa38dadb5ba6624c86c6edbf78a640927506a369416a824504f7bdb5cd474450ef247a51a9e0b05508e7e074e07b3d7c01a35780dac2f77de82f341f80d588438ccaec16f1b77efbd60906ae3389e9757c5d132b283ce55be71aadf42588fb5d65a9d54a7fa3ee4f122e4f1e2d341f7556f3fa22112fc2999aafda99a9c49cdeca0693f2767ee9ca83d250b9bf6ecfa5127fe8c503f1c70569d13f27811f27891f3f543a159674493e323f80f7ee1bc715927f55196719eeffbfa1304caf3bf010bddd23950ee6fdfbe25233ba05176871bfcfc9046edaa83e4e778e5d13a3aa55b2acde43c55ebbc06e0175dd84f7534fc8354a9efdc5a6c7fb32cb495cfa35b5ac7e5a73ebb3f6ba57d89a3e64c4ac663bcfc4732711fe6e01a38bf4d0cff9149de435fa5439c94b399fc4786f11efa4caee9cd8738ccde87dfcfeac3677df882b90eabe6f16283acd7eabd0f4df41e7c7508db12fb8736202d8371cedf575d873c5e481527bfbe5f390295f7fbfe5faf11704eced5da69191e2f36f7218f175bf59ad0dcdc87748736835f7421b90f52713f82ffe848167a32c8e3c5be2f5a4676c0d13251b48c3480d57402a94429d73f7c69becf8a504a19ce7cdf1918ccfdccc72b5c6024892533208281704192159a2b9e9a36dd31964412f95287922651b45bd02b7bfe7b479f969e947684514a3fc60ae40e081f5fb0d6b0d66cf1468d136d29a5acaa6cbb1b730604ba1b16d0e00ea23febc4e193049b7c273bc6ce1ced173bc66260b47de41c636caa9899a82d34b78fbb4568516badb6d65a6badf5a66cad4db62e1721d1fa5a8973d925d086ff82dc7ce1cf39ca5bbe5f8454ed87588baeeaca39410e3f9e77bd2cf52c9fb0cd901bb7eebd17b39ec8b017303ca037efb055f5b7b95d84e43407869cbda834a16c3617214dff22a4f843fedb6e90a839521a63d49e8b90aa1ef240df54009843439656bc83280d10fef62accec183b43a4003bc6aa589a2de6cb9f35831cbe5e2d601fdf4aad84c6ce2cd9158cb1334ee6d4619b21b7ccf16e33e48ed9bf0849fe9007425ae5ee86cf5a6b9010f1bdd7cc399243bc7110ab8979647ff325a59cae654ad4669898d162e6893ad9e274313cd06b2bf539cd149911e7ec7d3c2d885171851921741e31c5e0c4ce62200391212aa8204505a61b7808c31443d6f294b56c0b8409270471d2449813c6a0e0062e45a8a0324411154ca8a8e1fbf27d302718ac09066bfa3e56d30cf2d46790164c61668a2147102142418a2a94666892822e2ad02d54b460440b62524421c50c64c822c55394145aa4208325cb8d129b22710426040cf605f17db1588c75250a48142eb096581881a989a72a98a89451d21265c4aac2ba32801d63514ea2987c56be0ff6030ca60483297d9f126c0a0c46250a2b4a1156024919a8288a5c9afd8fed07928e4dc73b84a423dbb6f9dbe3681da9773d243ff5d977cf224db6397bcf7dfa58fb6f93f52bd6733f84a4c3fbf94348ad08484a5f3e8ed691f3ae87fc73748ed54b3d045b3d4baff4500cad87a61e7aefb9efe9fb38f51db86d7a08090747ebd03e755fdbf4500fefb93f3fcbf4d4431288369a2ff5d010920ef9530f011942d291bdd44320643fd4bd0a963f02dd7c04ba361f81640402d2c00874030e21e9d8de460f49a0edb9cfe08fecf1abc01f483a322d9178cf7dfc3f2250c7220da7372d9390ecfb2caec8fac71092042210d63fea47a05026edfb19188162501c6d9d1d635024cdd47f20812a905422612392f4e2c0ea818cd198242c1fc824614961f530a6688c0c31e00c110366873bc6c43ce11d63629a6262ccd013b63837fa3ee2cb2a750836b41c9b7e08ef4392507dd8098966d8f4a5129bea185db80cafac224f346df9f1a9035ad07710876ef9d3185fd15b98726ed95e9ba57edddd350e2be599af39e9a44edf411f0c883c3edd65ac26a0fe298cb9fb99cdb2ec661acf177e7b310679b8f06f9b04af94944a1f0cb8af5d189c06992ea8a56ad9eeb05ec835fc07e39cbfefb11c1d914ba68fdc1ec0542304f768fa4c22ac1c72fc501e4d9ce7744d9f0ce47e8b1d966098b7fcf6ed9e5e99b7cf787cfbcacb738bc0a1ec7db782313c03abb5b682747e943678be24b7428e2e554a5d675dfb0707df2de78cfa9e4fe59a6c6ad87cbdaeb49b460eeaa696523c9f87f3e60f8f377d78e6cbad4441e4206ecab3fd43a0fe39ecb1b399b93de79641b96d5460ca661b0786dcb674dbde47dcb4375f5986f1b46004a38ba6e65d618bfe03042884451caa48dfff93564616921cc2b00b69a129f102ec8734c4d66e5672c0b583e44f1732cb088b868c67a5b4fab36ce0a1f9ed0c98a27a084dbc244fda23852cf70d89e876105bd09b3d84e64f9e727eac2539fc670a33637435a49452c2d8f463a0907bd03fa24f8d44171cc5a90ff10e954ac78ef9ca315f527e1fd3c7346b609cefebf0f582ddf9d3feec600021b90d0963631a581ad9f35948aca21c02dde1e7d269d47c39cf95d153df7c4d18dff765423cb1b4ebab3cc87d3e88fe7d1bd7856cc07cc9387d62e4407291832a5949b20bc67cbdf0a082fe5ce44004ff8b31e843aec1a0a67d96dd17b23b0b41c39fdd8f9d03ae0e6b572386ec6644e7a28b17d14598da52868de8427e2542d57159b66defe1485d0bd53ddf070326514ace2b5415df9c7959e420b3cf812cce64ee33954a0b398dd4fb487d74219f033d2559a3bbba9d1df51f0ab4a1c09a216329ebae0f5e30831c80edaa8360b26953d94881d9f3586ffa6023dbbf75237bfffc18ffe67d8c2e7070c030fbec6fc2ecf1134eb6bff744925d39dcc9b09f81dd7bdce397a1f7f3e97b87c3dfd3990e53dcec64bcc4f918336bd94f656ff3f96fc010ff7c1bb075a37efefa59b7ecb76ea45efbd46baf653f5ff5415c9bc0a8742d3845a974886800000000008315000020100a8703e270482898c6ca683e14000c788a3c82549809439120c7501404310cc420080311400c20c618c39c72c878009e3a49d06b239f4e6fc96794c4007ede770ffc09b1fcaadb95003a04b996ae8d0baf0977c373246d66ac1161ec605bc92043f7d8a4035843593d1aa5860ca9588e6beaefda424f6f9b554961eac8568a0b46adc95e8999120512214d29c8b1aac2f8309859aa3a49863cf3b1ce3f6358dbb7d4f40fc95c9cab2779e30eafaaa72c6c4782e48b9be2f833e3ac433339182465060eb76accf559521ed0d0b0226c46eb9bca082550985091107008fad6f59b027e52c1646786578beb5a2e97eb0e08fee0c24640195be0a26b2b898d4a396952d72571825e2d818bba389ec1bc3dfb6a1b0bc7d7c6019cf4486af3a10bfae6537c0f0853db4955f7b8efb6d80bbc79c5052f98a2969faf74c9a8b7a0ab83b773d8388c8014a87effc74a6c4ebda745dd59e635f045ce9a89f4c8a79a2cb43e0b3c74957bf9d39581b1ee12a15d81113e299ab0e905b5a0f994e82b359fedee9680b7f2d9426b7b78852656dcf74c9666b539e3742e564db2433602bb7ea33c60f036a8e23c442665922247eaa738711599a85a2839de3f42dce24b12b8c8c233a7cdf23b273a7227f664ac0d5ade691b789dc989212728d3ad1ea250e450b90f20086aad042cb3599e90e24d95a465ade152b632247139de59ccb8511a875b27b4bb66a314bb4ffbe7b21e4a3947b5a358b7abd78338bfadadf890366abd1b36b2abc7384b0b4bf606195eb949645c9c937fedf650ce1c7ea4eb6dcb3636001c0aca08c1200812cb2f3efaa2282b436e48c30af1b1df1b1d86a59cb18454e29dc0a4602b9b20f6508dca4f02a077f6f7eac732d06a4fac8d97654f2e0bd63eb7bd96d68f30c6142f093c54fec4305ae8470593bf4812142cfeda5ed362c53ab9cbffd0a1fe46fa6039dd805c96233a012b3a606fb9498384b10ccb4d46ccedc28e70f33c185aa7295905047328d50f08965be34b4e911c99f2fea067817ac89352ad1ec55a4a56a90fec443ad19215bc8c83810931b8d82c64dc599bb68e8e952a0ad4631b4e554bded344e9ac82ce677a9945ae28e09a30fe9a7178404112632e6a05ed5f7ff96c25ca8a373745a5b41bd402138d2288e108c014df897c325b664c9d37ac67d6590865f431774242bf91bdfe89afda21a9c2e0b5b1ca27601e0eecc5e594e6a6b236cec0c61a4c1b196f7c2f2f2ab3b948a87382dd6b2f45a10236777cd4ed93d572b1b85fe9a11db6a7d3850c5983065a6a6691cbeb3c76ec37ca9614101026ebfe7434b4ac730264ebb0665191a7b003cc0717fd9a0edf607ffb75a4e81c4be5065dbfdd18475b4fb407508d4bfded94cd11bee42e86d6cbcfd9d4438acea487213526c877d6650ee0525060523cca66236bae5cb3cb618e585ce7985e6cee6ef4381088c90d1be4e8302ec90a688a3bd417f9f26b0e1f74a94752d8e2eb1c5d744186d65007081b2239c4e1244b21d013c35072969058735232b442184bb8b1d0d1117b5976c29b5b5da8d7b35574fc181d6522762c40e2cf14807dad980e5e2419845fbc22b0be2bb5e59b45742f9f1dc36dab6bfd3096a04be62ca14b7619cab65e2dbb1efa6935d333099de01f1164654cbfac39aa1c80cbcc54831df49d3e3f3360f5615c829ec4514297ec6e886dc58d762274f3a63a11c78d34c0e8593f894f509a4c86af02ed161083c4655ef64eb31ae50325d6f4d3b03ea529f4666480d97c3c588b29053184fa9da9c779892f3720971415307b9e1cfbe4f39e5695c4f0a020d4791e1fd30c3cd2ae075151c5a561649fa2d8143315fee20d256be9908c280feb60b764a1c32a7dcc6dab9c129bd1d98fade83a5c363fcd413be3a605082fac8d618afa0dd3619c983cb57d8f4c48882f12ac4c900aaae11ec72afcf48922ac759983881f176ee38f5363b560cbcedec7a38d4646d4087b215f3e85d988dc7fb859187d19c6bc501b0a887c153da50a89dd6ce0f61804a1a5e35cd2cc845ed68b8f238b198610954c60f618edac8587e57e3dc4108c8f92b1bca59a6884d21e5a658ea887e94f576100da9d70121fa5ce7d5236d590d42be5bdf7121b423d5ddfa63f3b42610fdd15bc77ee53b78fc8ecdf7f34dd45d907e210f439162543b19cec88d00562290174558d166d1ab5240d229e0226e38770e68b38742579947e7542b64e1cc836fecabf2b943f584b4e61d6c4213aa40ad5679b54ebf406a921aab35db28b332d9f2a23d4bfcec65e3dbbbb76a506d3a9996e86674cff1a13beff720f054260f34dc476d93ee8319f69c863c24431ac8b6852b7d806574a6992fcb8280df933bb14ca9b0a8e883b124391ed3444d3a9b548f274c807d141503a907340a43d1ce0c0510341e1188879d4f2f224ec3b22a49a893e5e4b59853baa85e361cfd4545a53b3b5c4445aabdc31a7837580298e98e6e434b811f33fa68aaa76c2523d42374af45dcafbcaa65c9608c744206fa8c6d46c025d0013e5232db209b3e00a0ec0ef7ca71380673010ef2fd8877a4f0bf4cce566338b107f45218a74ff281b14a135351697a08d1a72ce98a49db45f5820f4905f2b4755f916a03e446ce6094d4ab029bc03e39965f5ed3ae24164a252609f56c820971ca464928e297d1fcf1b7e11336657d652693b2844930277a759cf54bce1dd17ba2c0f181463294f8c86ee3d79a25569e736d6c57db1cb58ff2a3f060a56252de31f5e188f0a1caf05d9945d085d9151a730e745a2c7b6ca7af4e9310091c49e062b999cc9b01e41a8eb4a90ef324a8aba37a90993a4b8cae5d4b4d832a17e7ed540bddd6f91d9878fbdb169a48b29b55769bf45d4263e72bcdf88dae08069d478eaa2b1fe0906b42385d81d84e983bd28681532645639acd4a046408dc77701b4621f313bd0b47c52217155fa3893b0109a96cd2c5c26e58ced380ebdd98284d1edc6ec49a397b66616a142913440c7f1ec38d1384128e3776b317692386f5b60be00caa95f14356c383f51d207f19856288e8c1e93cd727cd5e8b3d6f000231723107257168fd15a7fe591706d728049b1d18b8f90969a6a51cb6230c15501a822f0e02f5e2ea481cbb96af30a8ef34905cee87bd5fa4f595986ce0e339716408576e1d5ca05ec7f845a8aebe9b24b5177c6b208c663adad9ea96f122c902833496505b1ea15185fdb4d4d7616c541b5248d27e7c23d61e194476dd8c087dfa7c017b8605d0d33c9a14aeb2201709c24d13db449d41bb9f6bd002b407fe39158e3877f413538bd4d8d712a3df1e06e13865d18a0a6e08ee22201c8f46b22a549e1a07522125352e003573658e93d7aa90e7f2af9668e9378ac8c050f8489beb744efa75698e0802009f30173e102a3a4bcb29aefb2c9521229e89d1549c4d3949202b4f9446edf125d82800329408548d1fc2e60da39be98e48cc1046875476c2940b3f82ea5b8bb70d14e5b9b232a0bdebf4a7545ab5579bb00f9fd8e6ba9724747950fe7a330edddccebedd1a06ca51ee039cc0633d68b9e6ac028155be29e1a86c5f6accd2c095413ba36e23a98dc415199e23fa4057e1c180a848c5d7b6a1b8918808337f725723802a0a30873e6cd103214310ccd228ed7ab9f788a36d5b1c89de2c55153e9fd9891408700a3024e41d4432e1472867f881ed98f7cdc0f7d5068c65e51a5506fb0278fa57a9b2a09b1ec3f8512aad6a5aff93444deca039a67c46a40eff7d2ce1c3ef4ce080a12752355c37c9a71b792184cc584235fab2504ab9f4081c046656f3b03fc17c4fc8a22f2ac30e0b142a6aa00b4c3d6879cf185dcfb1d7395bc23fa6848e78e67d1fcb427492a38ab4828c9db329def85dbf98f60c13bda7cbf8233aec078945a8cba49013e96790f8c7010bbea3e42c59ea58ca7c7db9ba49da488bcb08df31dc7773b4aacde56297a82dca57cd26588b6a4cf542c3e005a2560717a8f07e078c44d6a16a4c1334e04dddd9cfbf0e3c3ec64924c03f12db8b7890d48d99b2e3a6f7b3a92214c0dbbcc1e9e1eb13bc6e966fe57cc28b20205973b0e365a31a9dc0c3281984f4701dbfbb4e401279e26b0f0c30391776e07a482861ec3c52f5005f58c27153585fb8460831203afb76812fc88d7d2e25660839e80e7fa26ce0f89db362c8c03da6d054914053519c4c15bb56503221c647936a5179743e1300e08405292f7bfa901776f32b9263c0c5e68e6ae6f2f49a5e6e20add4dfa1ca0c0bb4be4a6023d134420f341a1c98d166e3ba63e60ad7d7268f6d5814180154f4c8114f4a091ea7bd94ec7e86bc503fc41d7fbf474906b13935d897d7137d7700ebf7d509802258adba6f9186bb0309e3fd6480e57cf09087d41eff6822359f4fe1f6ff95c40703fd153e3596f89a591fa9ba07d3a9373f2d3497eab65ddc6b7a68473978d34b4ce234b6f3cb724bd87e42406a4c0dbe52af90bde4cd93aa10bad2d8f4c4556714594bb167058aa73d0d33c85d4a262471899b102d0c03ffb3087eeecbf180c0d3e2e92ac60cd841157cec0a170e850753dd24f70210c5fc21cd8394480d777206617e9b465422861f24cb6d104f69c310c824dcaf9eb659c24ad0940a021e5adc73008230eee4f4cbd604915f7d5da2110e0eb5a00cbf02466406022c2574d3dee0be3cb58c545dbc899138f6445139b463320692a483c5f360ae7acdd7b8c8d57f924dee442c67ea7739318cdbaf7c101f3cfa8cab89917aac6e0cd29771d0b773fd9935cf91fcaf5dc47d7ca90d93ba8a4fe23a3d13f3e7793070ea1072d97462e093d1b37550b15806fe41a4052169c7b0e447e928e72a9af63a05aa3511f71a8a132f18968a189b3427dbcb509eb34777d6cee9b5c43baeae89379ee85f1a470363e613666c427974b9fa5a2aeadf286c998d7ce2b25c3608e86a07c426e0d309423dadeda397cc0d2213d3d07ea638edb75f17a10234852db46dcbf200442b6627a67819fe61f614c19071dc7efb0cc3b2bd7f87544655c8762831f8a29208a45b22eb3abe440e54572d48a23f5786d9d0e9f779d404428992bb9438f1ee14985eaf20c1458ebdd9f9074d08c960a0012f2143925c7a3e6ee9b016f606806cdaa66c25fea44146fce439ce174e52a7d10906795f7cddca5ded10ceb78fd2c0fce16a94f089aa81b0ebe31a48f718e5eee96013262d132d73646ba57064ecb93e8c07aab53a831a578a982dce273391f48f55ab6c0cde71366eb7aaadc0c34b54bd9e1d46234a766c130161b0e7d2cfe411976177a58d552c58a3a66b5a57f0a285540b156a9d44141fb4931b9ff333a4445c5a4083730b902b6d0bd35f76935a03d0a3d4ef6e58ad58089ce8ec1f7847b9628ea5f51abe816895782741b3d41bc2b3d44aa31bc4340736c61a776cd6a063d15b28326f43d6232a12b580df8cfe7f9c4eec0beda98a1872df102fac440057f12d9643c556620bec80274ffced8193648aa5b051f15b67e20621a0f8b32387e1e03b48b83e4a8de77feb410f4d02de5adad155b8077516c614c2079bb7aa730d58ecf3fd9eb2cb952d14cd9bf0b7e97b034c07108e0f6004cf093a27ad64a0586657c64578732ebd896cb530665740daba5281542b66794f000c593546b89f0409b46d5d4d4be4f1f7cdeafdd6145c19c6afe6aaf286a62e47ba019ea3f840673e85c824ae12b69ce1a38b58f1c77843769a4078dcacb7ddcf5c1ca9bab2e893bd4330afa4ce4b2e966b61056ea3278c9de879dc2c3b1ce9c57b9aa57149dc9220d8ad14ddfe81285f9b6ffa9550147bcd7a2d79680e9ff24cbce045e28cfd65ff34fcc7946ac517a243af5142accd4cae01e735abe13deea7c001b96e2a6c57089abaa93a3b671e9a9253c88eac49236aa2e097c5effac0f92b1ff484e82b3ea08ad47292e8efb71d80bbdc98a235cc847ae4d2f6eb52582978dcba61d8333bcbe9fbb576aa00e7c1405159119f1c0af8134a18d8ba80309e63dda8c0fe05d4ea8bcbc19f034a027d7f663dc3422a7973edbc341de4e40d6d812fed46a9022c663fc10cb2275b45f8da4af80b08163c4c72dde40f9d3e89032f1823b97a5b975da9065e0dac265ca8be6d6a990ac47de172e61f529c9a330e24c4d461d8155032fb8389f370fd0cd018cd864c1aed51355f2f777a0367041c7c6ee223f3d9c8a266040c612b37f388139a8752da2084ab1d5cd78ef60f1aece08e894b55e70f411300f86829363060754fc09ee3a39102b879d668aac64e19f9984f6de80883e6cfe8dba28e56605e2378c0ea689c9ad5b1fc1fdf782da0f54233771c2b43425d7416d9578f704045aa6bd7a07c6b6b9b2b2d87ee056788b0ecb43be8afca4569383c2e269f2b6fbbeb21661457264bebecd44ba6fc8f52d8757e43663108429c1639e58a3d8b9ea0fe10e481b1d77d0fb27756cdd104cd2b96c31467be106e5b371a031395f94991e7b360c76a01710e1157f49ded9216b23d003fffb76b87d31e45e753eb6a69656995957f6876abb37032f2d9e4449e2d575e1515aa7bd1ed5164330a411445035f83b43c53149ba2ad61edee20064b7cd208ce5ae0e874e23fc405dd03041b5b7bd86db449fa159f1c21b4afc538a77db44543c27f4b6ffd82c751972664312f7729f8ffe058e03ee4f5b729f8366e13d52a31c7a328d4ef086e60f6cd01c3d420b22d9cbd63e9c0d224827779628825f66451e58db502e611edeb249f2eedbfb3bf232f82596c2b0d66461e5c2cb320f8e3bd6215a33962e8a82bae605284a565528af80b0825781bfa5837076092104425b8f6c22d3929f844285df30b1262eff116ecc7d31a0b18d5c62bd7dc138b5462fed37025e14a8c5cd52f6c77d5c0577053a291070dd604f25316048410df82c74b79aaddaafe539b1201c8216bed90e31f24e851df926df50ca37004c94515c26c7175146a1c8d52a2a2582918f75723ddf27c61dccf6d63c50eb52badd92707d719c8d575bb6ca19db761f2f874d573147eac19ee263b2baaa214b54855a3342ee3c4f040deaba1eff87b248223bfa1b390d534d233f1bfe2cea30bfbee52c6633d4a23b996b1d9da3a440f55876d4d7bfa43d54a0f2450b95004055405e5133eab9a1db3311061fecfe2dbf9d91c4b4e694c08661c91611f156a7a360f3817f6f15a58798d1ab10de163cbb22a5fd9ecbd741248ecf9a37fd7c1516738ffa48e05eb42cb7f08e5757bd005954f431f1bebf49c2425b16142805bc31a6e5c3647c18b38942d7320d30d59ddf9d1ad149b3a7aa9fd14d3d69e1189ce1f03bdf091b62fb9dc9733adafe7bcbd68931d222a213c34bc031ff1d47fcc65b98c7ac72e9c806bbfc921068003b71d71b2086b121ceb5ae40af754885ad5b89ed28170c66746276a00114f31b98b4b08cd1e1210860698629511e3a2543ef3886ed118ee2cce0e9299b545c3f0e2b121420e4fec777d19654fd912a825d199764442d9693445428941e313452c9ad99f0532cec05e45b2d42ae0439ba0c386be20e7b6b6d7e641ecdc1e03594353eee90f57a5ac246fddd45eb55dda63ef112d23a4b9f4eae580078710aba23f607cfab2e1ca64581b507c9c20c80488f14b003ea5b64fbf9af249d7fa43047f6ff127d1b64c15ba20ac42480d016bd32507ae731f895506970a40b3990e8a0fc8bde0ced26725d31972d9817c759068fbad8a5545a9c43f09b4330a8462889d164a10c3eb8ceb36b34147bdfb5708939dc7a65ce969993b96ff25ace26f345f0130ec5012dc5cc2d03b07ac7a8168752f4f05c384d5c29548c521b8d5ef8cc78ef4c8090e86e28bd7ee74417aaa14891f1309b4eb2370d00814a784b452ea2763dc380063662ba282b13ee89bcce724bbccb5b8abbdf65e066ec1de33acfe84e366f81dac6aff808360c81b847a2772d5b5ae13b1937ace60b5f4385ec84b09f839472e6f946596dbde1b08fef3aa44195695db3be31bc72442d22506f3273ad9dcca1d65d9360310781f08e7ed604c6905e38c41d30ceba634383752f7d91086a7aad3d07375be0f3aacb52deec21dec0f2c7d855d9d59620e2d37106bbd7487a742aa1d23cd851751933e80de3af8300a83074a13d1444312f8036d9f2e4256b6579bebba7672d0de46849bded2f48170c77b530312324b0249d2854ccb7df5e1ed697eb8fab4102090bf48b103dce625149bcc154849f751e82d03209c7188c306c7f4328ea51729cb558d1200599b5690079b6d5c8b6bfb69c9e009b1f16d41a8078dc1df14c8f20068fa246f75a7ae2304ace0d447121b83197e328831b953cd39f9344aaa8c50ffc806c70aefdc0c19d385bf78c0d29a9c87a94b3233bc6882249f81275f426e268ddc045a0f4a9ec206b61b6ded41b68ce8eecee4a903ab51d4cc7dfab9e87d5659b3b3d010034124ae467a363a371a43f7762733ea6082401149d6b68ecf5bed99c6e952716e6a6cffdbf7a3ccd53949410662549f0cbd5d89cdcf71534e7afbf6acdbb403c921c35f052e99cac04abf12767f02cc44dde369677fd1ba8ba95d719ab3d2afe300cb884a2f4eb9d5f835e072da4e9269419e03faf2d397e07bd8ed5dc1dfef70e2d7c10deab30114fc13b2c57e2394760edbaed8976e887fac0723054f1a3b7ba29b10eb61588a3cbf2aaefb3363f617b40ee0443b21c4ba5825749c78dab0209ab12f5df184df5ed6f8fc788816079394a55269a19457ac99f86bb8da5d2766b1fca1aee6ddc2b9decb59961e4a0f9925b9f6839fb67bba687128e4a1da3783649e6443bfde3f7d6173f32cabe3d2e335f6cb1ab970eb37b9a27ac7499ae5809aa5340a63aef294da64886b484811c351f5a099e63af2e5112523ef24fc0c3058d2cefae1dc53ee9edf0156d282a58ce7026c0d108c93d1bd2a801b1336e828d5c644054addab07eef509a662dae4c891328f17fc7faed91869aaa6280eeb16a4558bd6d7b85267c23f5f1cb1e14a34beb98dff0a3aa9642e978864808af94a645df95da37de95dab2ff279c3b313074531010907e2c0ed30da51fdb7b6e97c532179d5855c7a16bab1718bb4c09dfadabb30f4e62b949971ba86629f69d1fb9ebc601299698de33fe1b9b32ba3a3657f9a9338d58fe8c6cea67a8c4f3bec7320d306fb5fd022e895cdde67bace28e631416f0e198671d91ef782ff012efc9adf3998ffd554940003bcaebc92da7e6640f0e316a0617dd5a7868821eeff5af720c4012e686818cedd6bed7f23b735c80c4599e42ac419c832490bf1f60f12726f4b5fc626e0debd9d438a9e53a61e129b836b9b542e88138225277a692221ab4eb10d1e4e249b70e3a62691e64614e00a8aa7328c28f022954ca2bab62670ec45a563e6203f24ad0ba1cce71d8ae81d225b2019dc7c5cabfd94ba7bc2751b5b9d5a0b6705ece4c118ed26c9cb5385c8ad5f82b74de51e35cf9aae607ea47853f209352742c8a4656a5af0eb7fb81b088fbfe36e4ca2335c5e3248e23c6aedc34a683079288b3842550c611a0e526da7a050d1a4fd9fff28259b0f12aa1bec6895bc82009d36908aa3002b0a22dee98d66a2a003a8de487612a41d5ab31283d558835e29d8dee91de408c00419317939aea041bdcf06c1a8de43cead5ad0107d382fecfc4ea5ba8466bd2bd2a9b9912efbe9a202b7a8009340a5cadb59b09d1fc0109bb47d760d3393d962187f55ddc25aba1be53aa56fc1b08725ec9e83c156bfc0a1fdbc40d4a653b6f07621d74537c1ee8a6d6426f0c7f8e0f351bed1a67da1b9130d07ac0ff297a7ac2ad3fd3ab22695f75c26ded60a06ede5f09f44da195ebaed6d4ae5f614330703ac5ccfc9e140276cc84c62e9682ac5bb82e8658c180e37929c882e46c4186b4be19792a7bf0860e5e90b5614fc15eaa85c4d8b4ddcc394104627bd7dd5d5b53c3ba9cb9ef8853f47d2a055711d5f5c49668d95516310008b5c4f1f36e4541e87b3a2b9de45b70b4e6a5202e5af4f14a6519fc5ccd1e77652467b362f3938c37df243383cdbf92c3b1b2691e56d93b69be814e859a7dccfb6c3233a8f646e47d3d2a033b64f7f9dc427e43bd5f3b90b4ded87216fe2ff05ebe28c613836cdf30b71274e015b32ae0407ef1327c12586a0b24e4b961eb3c09cd7a364e999815f49d8870f21dbe35312b5df88046528cf6c8ebf4e5a86ee6ca3cbd762b16de2897362e1520016549755c8f4ed35a5b0fe9a5924e99a089a8ac7ae897f0aa438076e0503aa0cbd2cfc064ffbf741d3ad674464eff019e7424e229ab25083fc826b83ad606cd5a65471b7acebcda11032fbda7bea4b81e05b649983fe2030202fc94537cae88be4a6006b8fea2ba96152b2fc048c83ec8ccdbd546aa71a65847e8020621737de63a1616e35cbeb78ea1081ad632c2aadad5262edaf1fc8afeb28a02efe4e8ccc4e2b32caa57a54cded2b99cf48d14efc53d896fe665c79232f92034735bcd09828538efa9f40d8f5e0238c1b5c6c2bcc485f816cacb387a1c18f538c299ea9bc5feffcff3057098c067d6b7cc522208a35d92997a40a9b658e19fa775b90f9b7bb02d05276c185eb20b99833ac0f06855e39e7f6cb9e3bf9d689ac92fb1da4ed527c82e343aebc5493b70ccb0e2d0fa268267646bb22dff0eaaec208bed6606ae2d5a5aacc523d9d15361f3b321c30a93aa7586e549e84a5b62add0dba0dbfec5c48ea8c522ff3871759e6fc7e38e0c2a3d68efbae4f6b78414925f294a3eca1b270ee7888f9c503925718ff15501066d5cf596b90fea0f79627c22c43f211e1a1c83ef5e25a4fe096df4f3174ecc300af0466d4ca75848bb9b309d61310a38701f55d47154c6bf0318ab1f12a2d0f6917e7cbe80a0e60880fafbdcbeaf2a4d2c68ee63c43415304e925a87b48d0257b6eacac3688e6316545dedc7fc04d538ab3a99af405b75fc00dd71a6d21e58a15cb8fd7217362ffc44b9c7b86d2702d8175241f48e7b9e015767ea60e54b193575620d347dbd4fccd995bc36d9002d84c656a48eab359cb09295b3676f2da9b45aab9346af02ec4e2454dd060d850a8799fbdd9fc45df8110b6090d41332a3eb472332336c14257237150633338348ad092ce4bfdef00ce468f0f0891fb5fbfb6d727ea4583e148a79d20e772be98436a7f591eaffdbd293a3616c84ba323f8efc94fffc423c8c194c029e2a9bb6a86a07994f4f2514834fc09ec7932150a8bab55e55f3f78dbe88f40cc2453c97b63b6382ab2a959729815b3008d15d6d31d84af7dba237c0b44689bf62cb66e92aedd882da966a94e9dadd8a4ee699cdabea32bb16b3941085aa1cd77608ad4a244320af799509ae97435d021dfa1c027ca9f6374028951cd54ebf730f67608bbc3ee8a9b03d59121107e0510dd633b88654a1ecba6286b8e11cf6181aba45a3c196d99809b9a2e1668ca2ed0382b4812b5e3d7d2cd4fa890a3c725db5f90d36ab91e6d60df7d033cb344ccb8f06c33ad8adc5c94a67dca7553a569a55086a376e0398482aefc17eb4320caa90263b694efa0380a558155c8ad78468e384e5ba1cbd4010b61a335ca7b3b0eed8358ec2d5f7b96af7f401f3279eab9861ab938b56abe302f44592c19540b80532c0dc0284e151e5208b525c01b55a71e2a9417ea23d6edb8d358c70050e8223a87729d8ee6a05644212f854c9e2570506cb29405975d026af131cda706ec3bc2fad9bd34f8eefeaea63e6444abfff5d5ca587635ba708df63ac989a596767262573a45cbf51cd1e7ab4996b8586019ce9015153daf65b281679aa2c1ee1af6df90a4bba060fb33eea1999bfb584fcc1caeeec362c91907bd50ef361f7a2b75bd95e23f0a4da1509d8eda3bdb9f6ea64cb95ce3e08607ce7602dd0b5900f7d93fb984fad9e481ad46dbc83d284dc12d70ff9b693bbbb6dab1839fa7f7ce025584cde5349e2b3d3476812e6a2031c83de8e3bfe881b821825c59b03cab6ab752f06a9a30a7b65de4ab21336e42582e486c8d48c2da06f1a28ad314d4b177cbf51856e91580e8f4212f8d6d1334d709fde222f8181404b553be5a2660601c71a031bb6151b5e03d44ffe32937e9b8446826c5da200bf76d4b97e657ec5ae824e240532fd6dc723d3ffe25ed82447275cee2b16490ae89fb63e225d1794a77615d0ff743003c1254540de8c828e219ef227a7d556b51f9f3fba54bbf4d0081dac5f9369e940b9f31b2f4866580a50dd5ab9247ec4189ae0e401d85516a2534e002082702aae996527744b7db7a13e67d5d639e0c0d084aa323ec8331c75220fe16205411482da3d1e019827ce8fa109158198857ca736122193e8be6e608869dc76a25efd2715a31eba1c9118bf84d61f06f23ac6971d4e809c713ae185f6c4c3d80907e17098b739e615f0c8dceaffe8d346ec9348280cbfaec969d577aec1845980a3801a01b30032b52888d91a89c803f3d0fdaddcce2508e0452d80a71d28793d856d5d68e192b650a4f7a8006774739d203be4d08401843c0e8d974e6122b9ddf380ebf0c6f8d88d74619053a3a61deb9b9e14b170a88fd0080668e0f4518dd19a45671bfd6ba5bebe79bc486296723110693d09a35b3987c2c24a3c811e48327c1d68b7817dc4fdb9bbbeb1b3761262039a8dce37b52aad64b281dd2a016d6f60fb061173698dfd8d141859a3d896b9bf3736334600f23476c5098feb64513a539e5c3b37d1c7a739a827118b2dc9c3e0784a9a8ebbd4d33542cff285eebb95997db777e237138aebc7ac1cb6c5328101fb96681d2a2210ef63190223d909e2b1bcac4790ef748d5acecde4e0f7cbf243c3772a37b48c64ba6d435a47ebfe4fb9cad537fe49d4ba07b24e51fa1b0f1fa15d304773c41b422a893346246de80ca71bf3e91b5f968f6c9951419ec1849c92a86bf9fa69383019a11dc9e7e5a240d66efb76c31decfbeda93345b0dd395069d54d50a0a24ae401bf5132d85f252b358219613d4cacf7ae0227ec9aa5c32c8f304d8bc38124dae220e6ac7cdc14b17b44b1f1df61526638a1cb9a289a3578cefa650173c594f8eefa99d20f9447748389574108718098969bc2f03fbb94e3ae0ff6e26ad6a774b2e606f16f0f5eaf6235bf1adeab6a898100f1ef08639e018353d015bf9430f222bebf6bdea7625d180fdbc6c159ec2e99ce2b607d827dab9aca8d82d6db302cdd23784d8002d50381a76e772b0eda0952d8d943918ba06a22ddb3028217a07514dee8d4926486994896d31b334497da11aa28aca62499ac8d20fa0181672e057d6ad4ec7d5e92dc4ccc5d5168fb69ed4927422597ede5a4a1bcbdf6235f4768aadee99972e5c740d82784c1268735e830001033345de1ee965080f35e6668047b215da61b228af3955d0d3b2afe68c4a1c2d823e229bd0aa41568f084571eb4e175003b8b502390b628ee22102ca746a05dfbdac3b65e0c9fe3ef901935e3662f4223e432afffda521d27e39fa585e2bcb4de3ee496daefebe35951a642f22fbd06915f7f3d20855e89891656f95397582e1b8aee9aec7dd095133e45cc0b246e4adc52f71926aa0df1fc00e221a420e7b3e3cd19743c55514331e034388cc0ed3b66ca00b8c4cc573c5da5c0a0e29ee675e55006fccf03dcb4603c595f106c3dfe1a7f0c2ae038a936d32baae170d13716b3dc99f14b73f8277eb01b47ce3295bcad7cf25d7a549bc1187cfbb639dfbfd38392f6a0c425e6e0ce38d4650176458fd2cd6bb9a7041c81e53239d723331bc2da7133fe43664970341b52259c5e78e498e91fdf8aaa3094ef26cc0da971fdc4705be042651b252e5cd9faffb0ec4fcad2ae5b27147e723c9f079412aa69eec1863935d95d89203e3aed25924cb82e023e94b9a290ed16ecb0c4b6520563d101447413a2daf17b139a489cd7f34fbab38c811013ed83dae56fb7a085f9ab3379c86799ae0f84115853e7f614d62496d5bc29a62e3fc4665090244357176e5c65770ff50766962e886a72811d7e55cca0c3078c28fca0393ffc62988f58ba5745d72eee1fea3ebb22f1e83f40e712cc7c6305079ea6ca14299cb8e7db69ab6dfcd818497e01082d3bd4095e3b449e44c9f595383e3e1a42b220ee1bfcefee013e9a79a9b064a55c0e5ae851f4d2717dd6a02f0e27a2de44d8d7dbd4a8658a10e6b5fda32dc96a7d804d7744982be6e022cb2afcbc84dcf03f50d0c65d36bd4a7e665ca3ec52711c39599cce7bf1b03bd4178a6308efd531556e0f9d0fd7f74a487205e40090c8aec51dfc793a002195dc2e6188508362aeb34801c9bd3dd972ba1ac8f35c8ef334fbc293767ad0e1db06b69ce67691a16a1a5dcabee11bf218e36420b4935099d3609f7d7672ba95205b9c454911ffb7382db9b6ef7dc89d140390d24244106e3f3cbcfec265125fa15bfab0885025197b3f3c81b0f945810bc09d6f9393b30765cfba890030b4b7a00081bc068fd2b6f7e8bf9f971b50d036d391787e1cf8f3c97ef463e80589ec0155d48ccdf58608ea5ec0358e4a7efff6d7f7bd947cdc184b0fc9c22723e404ef915c035766e379cec645e6333ca0e2060e9eec14fa19655c6072c2130a6c64ca7c2a32c9551e5dc6786f913f03b77111f524af3f02dfda3562b5d46689031250778bddb48453a623096cdc0f67f7b4cd67cb95453b7dc622beb9d12d1f3f25410180b732eb9dcf6cc6c6d5b51878e476be95bc87df06d91728344e23897953a97414796f275000b9eb7f11e089dad1e3230722aba960128e47289563fda6d4ce1878ce3b1d8d8b07e95b76490370b9d45374ba0fc60dba5dea6b58462989af71908d794cc1d186f8808b077b1f4db582849812cdd38fc88adb81e86caa723eada2214179177c231e4aa42f4feca9629aac4d6fd45ccffaf145843731acb4113399c828ceefeeeca441aa6a2d68e8935282c02d903989393ee3067c130da2678a3908636bbda463f9ecbc0aad564bdfc4a460f5c9216c5699904346eea36ecee92f6bb1501a931f1ee19ea1152ea16cc4696e914c169a1bc70af06e169e05b99d056867aa155c41cdd26a37ee6e66ec4b53bf68e4fabed90932d7e240d1df92de2ee8926b22f4693344607207ae65c9e1ca986f7989eba6becff6d8c9e037e047fd95c7f5c77a86842845a1ae7c7855d584d72978bb094d8918b8c8f8e223329cca9e9af5cb4bccf66cd7215042a664041795451e10078d9d2cf735de32c24a4e7d6b1771962138c16c967a578469c9e0e2ae9b65ba095e4e17d9e44da139bf5fc41963be7e3d4419a30e954dfca49feb01727a710c4c82535078cdcd5d0de29370b1b4a5e242c67a6bc2cfb9f67caeb567fbb59999e39b9f0d6f61b90f45733c5ea4858b149e7d9a32c65fcb338461445820ae61c87b9364787ebe329f9b404850e1046cd380b36c7202226b55a9d2229c91808cd1679da2b80aa73137bca3535cd05f239a5c084895c29b23a8943d9d00eccddffd5b4859054c6f982e06bd4e8002795471c75b0363bf64e91a0a1d7770660177e9d90a7edcfde30bf721baeb5091173484a9f95e38e36d83acc9739326575cf70e4fd31610a795d55c992182fca28904b9594a09ffcedb4866bb2a23ac601ba1bea2f6a827bc55b0357956e750f05df09621dbc407c3dd636fe4607e1ee22c5755a3e3f83750f22592be26932cb32fa353670421922e4997e0c17e8bb1a606dd1607e0ba3600b8b0452080d6ddd1a6095bd5677790d8bf9eb103a24c22b1ad41e77b67f4ffec11c917ca10917162b34b4163cb7e4deedb6a674db396b5a5e1e54a1efa8f389da4d94e7eeafb7ed6dc694c04785ed5d4f8d6f51bd2643c22b20600a5a4d06c0efa8b4c3a1356a8987505db433711971d8c100a1f143c382e3b40acbb3f4dcc08061fbcf068dea547840c01c7ca885440c7298deeea68ec73c881049fbb517578da74d8f09825f2f55576da1f3fae2585bd013904e60c20b1f68cfe42d14394b90d214efab774964f57c2235d7a900c4ef0a26c5ceadd243304a9a8f773bd92c2ec5af7248e36c39be141840c49a37c703e98ec6cddab97ef15e85121c5677fe4454b940741cda6595c4ca762126e0ed559ff3789f986db23866e3f3d8f1de2154ca45fd30b31928a48ee18b3918b60b291cc232b903444d57d667ca5ed09433ead018aa31a3caa41e610e66d75a9e388328a59433e9b8db6cb8e0adebb52f91fb3f5848dba5f05f45f8d370c746399a94948d344ba8961fa72ad3a580c45e5d4ff394f293518e3308aea2f2f7ef2ab82a0a9a19e062f95be60454c83619e6e997b00b9d77ade6ceb7ab1f889af7a995bf77d03bf6880309b81def61f05d965b56f89d7cd85b82a7c62d7336e20fc17ed110b8cce3006921b3843e1b189f5ec328e57cfb13099004433d2ca48de41a41bf70ec8a986771a45b70fc16446ad2775cd3564f896845b151177abaf2aabdde14c0f7a12dd69d7d350e52d4c8e3989c6edc6398ee36cd8d2de624eb2a53d68d11ebb47641c347ac13e5794b54a7a3d719c14158d13ba424217fead28a72edb4ec378da6597907cf497ab8a7f78bb09ee5161916eb942c30c7587ef0d9564114fc1a1d51d1fcfba0836f7bbdc9dfed63589c48b2e9ee7efdf07b95486cfb8f4282b119a2f2f2084d4b97cde54c628b75ffe0e5c19b3e74383e1f89b4dcfd194677a3c6fb087d9b2b4de2ce384c39029c9aebdfa60b8635ffbfebf007d7ac7e3e4c86e94a67bbf488830e27bd08377e0f252706df0c557a7d78fb44adeb1bcb8489fde21ebaf43678fd28f7e957347d180efc1e42cf57f9e2099e8d0f09b5653d053ba8bb25582f530505b834c3f961d8f9b8a093d31f78c78ba8129a323531315aeb5b65b433ec95c11ffaf901077bd0ae21409758cb2d5c499ab2a861f7cf1abc8d663b753653cd7f2dd523c9f81af131b3e5ab8fa0b1552d7a7293004d0ea9d00f7e37dc82033a53369cdc6014cf51e7d9bbd769060e44f27669c466f2d241a6462895dccf6883e54277bb32a99c0f6625ea82b2eeeab5636d25a535fdbdbc333f024e1e8dc516f17128c3c69f8483db83bf062fb748689136ec437e589d58026b2f536a352a70b5920ff89e92bb964b110d7f1467588c9f6ddfbcca98eb3fa2f66c2f92ed4184bf698cacb29fb088c7a8e5274d1e4feb437eaf6d3748ae99429fb8d8c0e758599aa017233db8d2c1d3afe60165b57a031417dea11a0d0ee9ba3d70af2797ec130ed1d2c0955f5f12e72fdb830d90c9022d5bc41839182a39c9d980764f56f2ddda917fdef9009d2e0004bb17fb5bafad869f2be5e92d4d893b0b7661ab3bc8764761e4ce77e2d359e317600bf18dae87c0fe5954eafe0bf96621b760ce3940028071e2dd1f927ad766abbe4d3dc50cef5bb8a385a04678e0037fb08e7c360a03f5a326056d623232424f78fce65dfa24f13665dd12ca1177d1b74b63b4fe98d485dfba385a0524beac389dbc33b9efc7fab9d0f67cc07e598c3e42f77dfb0b0376785370ccb7df4a1ed273c0cf72729dd9b9f538099555ae882a3fe1b06e40765c632242163e686178fa517d029fa2051da816d5e11e5cfded2c5b7796802259c1a10b620658eb9461d85e0eef133db967d914f05479dff0d555a7237c9d38ac3d4b35135dcb67e6842ace1cab9f0321c0d5b178663f49ed65817be14a2c07480fa4895623e73fc816a4595a7f440a27030abf6d8b3047e0c36186de872b9246f71672c6fa4544a046e4790a958d8aa7a47d458c2b09a1089f11091a858a513b17f454ffbbd6dd3099072d2efab79885d5d46ca74b50531d218eea0d35ba4c30b400bdf3bbd21e4cd149e171e4ef88b45fc2a987aa801952db9d8007f4372ab805f07e4d0510cc4442e8cdf477e12bd9879a7661d00ee207e1fe95c405644a450bde0e2764ac4f2e4d8426af96a81faa1f78a8a54d164da04b9a5fa68a6b8c91dd04ce835ca403fe4fbc30561b261220e9c36497de1e735a58da203edfa808a1d3d5fd5f6cbfbd234d75ecba7a04ed314e2844479426f050f7793f6fa0571b4fa9dbcb50d251b7dfebe72cd0c3d6f0009f7f3b2e18ac6cdd09e1ed233b62216aaaac170d3d86418ac9f80b78cec8478ba57bd83e7d98be276bac7b48f092b30158ed37893dd7d616b802300a54ee84c6bc391735ffaadc808a210f30aca2e140306c171e85428fb85165d00a896026eebad59f77ae78ca7420a6b0b509505914ce4de2f6e49c574cc1ffb45ea1f198e697976a1f31b417b91e278b04d161d7e2221334e97f473c842e2e3ace5c6394fa49e42d8cc01e3c8208173740347b751c083bc6f51cbef46113464e7559eba343c73c46909f343c2f42b779c43bb5dfda93180cc62a1a37e07b00cc2305747ef3c371ab27015088276c6e71f4c72fa1b99fc3b34af8582aff0787ba861d2cd959269b8dbf9d2eb4fc513f44b96e1eb955b2ea93b84301199321ad575e9aeba6d1d9058dd5d12818da99c43047c6d38ec3cddfab03d190023a256981e2117f5845b4b980183491ec30c3434779e602619a255c2abebebd8d7718f8605b1a59416bee0dd78db8b6e9071e63133df69ff44ad9da466d8a50d4a034eb80869bec8bf65b9d4b97a8e04cce82860bcf19dc09fb3a00c519911c07ebd7fec10a7c0ed32d76033d082b053776b3c1a9d80db379060ebdf27ab659a18925b4e5a76a71baada13c698c669b3635c0ae1a8c1afd4318a60ebeb469bfda54ff16c61b981ca8ce1f621e9e73b40d7bf4bfd71957b7d6fe82e046b081d9158c4892de7aa4451337dc7380db0e54502bd5eef258be43f9fc5bc128fcf288987c003b83d0cb9c2618378f113f3901742a4e3fecbb682ee39834224f30eb7277e5a6514546fe2d454e055bc2e04d8fa0784da5c5957fa79846d1fe7b765aafd554c5766790ebca2a1f167f50f6ef411e2f9c60041254bdffcc8a4fb90b230b082d733aaacc97ff42e28fe33bceb00d7c916bf328cd529560574ea3c8740f51f0e21c365539b861a4da12a5e73927116a96adf7ac95016542dba9e5446b09a376d068db2b1b60da2539ffba1955061700782cfd2afaa72dac2a9fa4a7a4ccda5ead8daecee2b3214b06ca7bf9c8eddfb54a987783097241d2f05a47f327cd7bf6eb9eac9005df6cf0012fce5a1820f6d60587f921af7b0e5a1415d08c334b49e87b966ca3ac7b51719d658ad8b4fa00299e6ebca315c2061dc001249cb8be2a53a3f3cd724c20c451c11559ae41b9b391c831a360a96cdc574d7bf863c907397055f6574aa1ad02cb88162442a8ca6b19dfe244db4c63e3c3d71e246a572d8704009134a3cbd6a5c8a54c89ce300af9636373c910034762efe80d2044bcb16b98bc9ef3075e73e902453d2d951859caa553b905558b7693d50a9046b4b5174bab40b8fe88168f627234bff79e60e37867760b5c46d0cd3cc2ece7271a9b62f3a9775d9c6170d867b33bc1fb61941b24fa1a84e5c9da3fe10f3338f44187d2c3f3faa93aafce2420300cf003e5c0ce81d5b144e4e1131d624086fb212f5195cbe00a28f912f42843d2db70b5e166edb355f2e5643f56be8a17353cc1f917d7614672a219bf0f9c84110cd0ebae1e6f40d5dd84beaf594317962e1a95f627fd2af1873a57fba24d5e976cf77ba3016d305cc9bceaa7ec5f397ae12343c2bcb249631582680b3beb2a4f8967c80616c3643871503307577000ee16561ed64a4057c321e21ff258a797952375f7f052eebc4e67a14d6412c000e25c4f42d3ade106ae7772ae38aa293a78c6838f6c4773211eed8a53de7d30a5575209b8e8b8be55b409c03460733c53907bee0c8af473c79a3df9c134851bc476fb4ff247046c2d3c51506f91ef113d42e90d7d9641e52bb28b9639c44666c526612410c97137b31d4a0ef5b02d92ad195037d27403797045335f685049c4659babcdc0283c065768057c23a70ec5e0af87a4ac6805e1d4814a940f91ca07a3bdf2f05a36abd4703d770517bd4289ed4550f6a8b3bbd3a2ce40ec055c37422be3203a38e0d48ac1c0413ae74bdc5d694be13a9297d192db938789b3a4e6071eb395cd2a27f3761ae38da3e3a21124f6fe7ec67b4f449dab019a138e5c0629676af46484f70ebcc00ab40959815fe7cb3677d122e2239ddcb82081ad34b2841c5453231ef6b3b44aec98990b964848a4b733eca97c525f162d615b563e5f7c5ec63cf274ecb9bb54e3ff873883143fb74e49ac0982f566c7d0b09d3b8ac7d70239edc109da148868a3fc3dd44113c0d6704b3143b1e315cde031a9828ab27da665d35afdf48747ec091d33fb3ab43cad11bb2d8c59c42218369ad1263358c734c46e8934b3c717b526c3f8af06714fb37cfe1bc8f68c5ad4b6d4e8aca03c34d982431990bb007e3dc09e167dfe309b4cbe79d728622cb9fe6e611b251af214f7d0050359651223a8659b019d6e106ebe776e08b6f3b07565f9c160b8b98d7635c7bc9b0c6d5ba78023dc8022716832121e01b7236be5d8d9adeab3e46c2f34141efb2d9c4ce92472f92a53981c005f73fca32baa6b06dad563c20b32112fcd0c08fe08474aa192fe22350b1334e81b1fd3bf48bfae520af1f2589251e9829180646b6be40a8425a17310e6aa3d63bfc22fad3229b994697b31aeb74714028ade89cd9ceae04db4aad355383fa46c9f14b19f687972dabd46827161eeaf7bc699909ec60d5685f91ea8de29f26a64e8dbb497bd10e3c054526a170ca890f53b2127ea6eb289b8a3ad2addd7ba0f689cb6023eb5f0862a8b9a7c36bb1241cb97dee3e5e60eba21a9ce38ce4e59c8e939d91cced00a3e056eb43a3b497e63415c318a2deebc68c24faf8a5c039cff455a68a4e5f9be83cdbef03189dea07be516e353ef99d22e1ecc9f3a28ceaf1d1289e3094db1946d3b34fe426ba6600d75a0c198477ea64a6613ab712f8a6ffa4ff97f3688e12d47cea890a1db4f5045d715968120cb6bb291fe9451908dce6f404768e309f4fc776e25d2a9dd263105d21602178f5c046019de8543fa39492d0aadc672927da7c95200401bb00593e442aca1b3fd4c9637992e99d3139c776b6daa3dc2557e078c7b628dbd526b9240b8901404c916b97bd390590d6075b2cef26643a98eba23293470eb2e542c4f6bb56dc39a9d88d19cde1e410a111c5f6e646a1886c01100e073aababa56e2ffa8a87296d0f6a56845a3676917801b83a2e8a1b3d895e37d3f9d59ca3184949f15c295a85d577b2e9e5625fe9f1a104e6aafbb3616744773f48772548250e9a0eb9f5b3084a5cf26feb746a822bb5fbb7465d133e3435c614d05d86d574e1fb7c84a7209361c5e4c9335e1c53619a6066b3beadec2046e9e9a60aaf2e16f349fa1f693b44ed4479e68d211965ac643f8d2e60fd5dc00d5fce1612289fbe0e7a00e6689df4aecddfe453fb1d3a50d304c8b2f4c17223d9c85e38979a7745f119a9f0e71d6ea9120d2e6fd7530590e50891fc0514fdecad542cd3baaa7a00184172552fac9749a69bf7f6f63ee34f4c05c342521df69bbc34a0f4f7def17ea2f0830a55872515929f4605cf3508cc8c48d7960bc49f168cd801f76133c2080b1cc5be98bf8644b651fad74ab6c1a8c4b2cd15596c720641174f5abc9305e8f51d7d07e3f0ce3431a4b2df71a6047acb28a802ca2cb54560066f60f93025c87dc41a29744838239e116b25b351010c482aab3c05c19d4593604223fe6f845cf6c22d6ce1e2452cbd1c19163889e4b3f1adac55af085c1916cf7286b6681db47f53172eb865ca039819877c86316d655fe17c5544ad3a6902c46f333851252c9e57033b220539459cc370657e5406d34490a1c5a33cabb0fdee41c8d387cf643a60f1d52b176f5f1031359faeb2b29ea9220bf1a69c127751960ec80b6dfc01e61927e2854e6af457b8e4273e8940a2d6944b8e5711c4c7312a8a204174ddd5c545a3b3330087a3b4f11763e7ada0ebdedb90ceacca92ded66d828542d42f916bc79796abadc63276763d15da9744311fd4ec9e88d11b08a7105cb7962ff109eaa695b17c0ba6a9988290b1941a15282d875e2cd84651a77c568283bba4815dad6b8a76ac92279a6c7f95cfac51515b3ad3811a8209817ff523e8f81a3e3626fb66d96da1713eecfe534eb7cc42af1534779c8acccda32fb5b4078825a45f886bd9cbc7bedc6b2944c38d603ff75dec371d6c97c081b579de215e541ea5effa0c1d59a2a371168848ff6d9a6f80249c4016e700d17541a87e20abcd8733f927c44dbc5066ff40c68dcf3044679f333b9b7353234dff479d065335bbe9f089d6653a73cfd7c86744e546f64593858a5a2b5e2f42c4e24f6deb81bbe32938aef92e45245a1cf5aec8a85f1f5b1134be5afa21e3aa345b511416de19e32f8d17ccba3ec432a8894f00e75a14c7ae64698cd6ef91b7163d3888705ffc206336621616d00846fb5b41b3a361b5916f3822b24bc1551242192a2e91c176b2ba502c68386ae8461294da7524603d5434aac857de59ac5b59c8d621a5b2673af10e1c19a62f1213a9bb8b1aaabbe0d651aa3639868bb4ac4b4ae928e516731a829b38eaa097ea733bb1fc7297bc1c72c66027306eac99ee305bd1f52a6a340f578512a38d2d5f45811f1ed4b80769c1b2ee67607c840a631455ac3f21f880e2c22a2c1c49df475b83e2524c869bf155f8adef1564fbaba5940bbab3774a299b8835a5e4479f26a148e5df77314bf02ebcae32b8bcf8f0940ad847feb42f397227e6a3d51b562c83baaf8e5c038e87341557dea23b082b3f5f04f432b275feb46c00527e2426e90a9d21e86ff9f29290f1312bceba49257111271534d0a18e7508f5d1ad8bc3912e39da6ca36a8024a03b0376711301b6f2253f6bbd9f19002717e9b4b7c27f04bc7ac2eb9a55e80ba76b208c7a4807a35063ae9d7451bc24daaa0a752128c29c40880a9297dc414d39dfbe7180f5e18b26b1bc1ab6a8f8ae62086397d775f23d3495d979e04d9e6d4dfd50296a75c632e2b5246de87f6df2b8b0df35a038c72e6eaa1878d337dfd514fc2e2a7af9d10bbfca90f7925b41317eceeac3260093358c378f06af6f4a92a5e833b9c19963fe1587f5bb23e2c054e2fa38e23319aad264ee5af38aa7a8353eaf3787ac40fd1bc616f06dc9a362726a503abc2aba858292da11af494b2ddab8c26ce59e724b67b07e14217ac8bf2d67ed240c1582e18d615c6009e5c72d6a8ef82c86600d36e40dc971f0c7ef2dc88404d38daac2242b64654bcdbf862d9ff4e9e836666aa9a76f470d1455c4a8df81711ffb5de7f5ab475eba13383e06bfb7652d16ec7c37ce95270ba8710b68a402adae54498fc5e6e90f87e1caaae6becd217149af1b0e3d71ee0d60c4a3c0ece0b38cd8048a510f63c31f3ab9eb55fccef56c600d465283899dd63f042950d0a03b9684e98ad0162e07ab5d2afcb94c25b7baba54fae4295b097a85fcd740f2ba1d4fdc05e61b36a0910f313101bfb2ae1d201882274d4065c7b8aab76f0ff1a8219f4a05e37425b5761234842fa06b2f4ee542e93e7d8f20aecc82b792698476243e1856fedaeb8a7f5f152a2b0a2a8169573c3f4a0a0479595bf4111c99a8e2954ebc9b60e1d90e14ec83a2ec5e78ef7523dfc98507762cdc5dd7e78dd6190b818040ba9d2f01401fd304b203cfcaf3680127c65e8eaa51ac9d076c02cad8a8748197774f3e4548c33b7e586d973fae53a4df9502a543082dc8bf01e24b6d11a5663aea5aca6edf7a82d06c1c4e57286482661e25d865463cb6162268426da1ced0790f15f06a030234c3fcef95582014d6211d3bacf5da8a8eda61786189ac5148946db0b0c3902c3f680fece487dc6973a9725dc88f6c50a899d1336a46bfa59556848452dff88c108eb7be8ef802cd26664348cb097cf4ceaa7e9b646a2ce0dcd1223c2396f49ca0e82a0604120cb068bea222cad16ab6243bc533a4fe11c07a5b5120ed110414af8393c04d3e4f5ae5b29c4882f68cc00ca94abb18684ed7eaf766d485aec99e464ff666ab9705ae365e5c76a9a9e58da902cb091f313ba84b9a4a7a1882d2a65ff7de1df7418055f4d899513f214c0cbd7e262858de1b45940f35f39756e381e79173c34de8156fa87b627832ef63afe9109fd91f03d35270f2f4aca1116931372ca85360ead62cc29adf5a067c6eebcf47f8ad2d143fc75249c2c25f4b0d1dfb633e3dafe01649d8b456973979e23dbfae11b834e84605ea1df7a3402835cf901126f60abfcefc52744a1bd7220b2bee83b200c7d0892aa491befa37ef704261a29a81b0fb8957843f0cd1247620460ed7ba9214dd09b982dea13d9d4f27a23890065e074e6216807db2836a92038c6491c1941c3e8873e98690a29da5639670cb2d450debb4e6f5c1e3819f9cf2d067ca6a606be6ce0c7d6a5b57555fed45ecb002c541125958946bc029c3e392a2019dd8cb4cdc3adb61df303981d731cee39587116afa307c8c5b07812f97dcff6d59f168f2d78951e31f07d4d4e6d5c83ee534eb8e9a76a07081c14c05bcae01fa2a094060508c694d073258b0cac25c05c01967486bf61e6ffcae842eddb4f7dbff6e99f09daf1dfe75811d9582d0d1cc45772b51ec6e10580fa30000000044c8301cf5a44217559ab0fdd870a5a2ba08c546d41db6b52ada425a93b29bdc7b6f29659201260456048e039bc65aad564beb8c81a9805bcf965bcf15baa222e4e2c643240be2eaf3c6e3434422d544e68ae8027774a7664c75d1976b71a782a668a2904f44b2750d8e0e5bd02d6c174b7d0769afcfdb4e1011898ef19b559fb71d1f9dd5e76d67a8931c67079c14eca9ea5cc0c0439847109f1d4011869b0f939b0f944f148f50df371ea2bee7057878bcaa2d566e3b4eb79d19bedb4e922370521393c60020aef08928882970b47e801b9686a85e382a62443eb7a4b5d62a99735a1a7b266f0408389e791e3fb09ce32b2c30420499b36ce8e4b119819b62f6d85400fd0cfb2a09ca6f40cc6d30bec16f332b5f6191885ef1cb3b9d5ba361a47e0f0a3843b0a40cd2ec540412fdafc28dc8099c74ef8af1d79a1a8e8a277003685192a8e99afd2e13a845292fa8d5c0bc90c142f93b6c28b99404a0a95d994da21250fb22ddd37c5272b52fc645810a9411bc8c911204a4efe031a6dc3556ed996655d10a3a6ce8f15e6ee5ac024549091755b34b6d6a8418250d251101d482286f78212e33886610d3896dd53e8409e57dcc2ccf03131d7a88617af119b3844259a69c824309abf54c1760e408da11a6050f199052290750ad1fcdbaaeebbaaeeb3a1eff03e8811881809a0fe5eb306b78c00e4a254ecdca9772fe60a654408d06a47440cd05116ae616aa2665046a38ccf038a264e86a73ca4b9967861800cb016a7fe386a9728a812a19500b9a609094260420c99272872425044c54806725e6abcc909194b876653e4da9b20035a372c68f13aae01083069825495e18e93d9aa2f450fe8c0ba4e810228b121a12e527866ee401e5ec4cb928235484ca141746dde8c8938fe19316509b4d93872c357c90a166a41cfa1d1aa54d0d0633a50ae5d4624188da87f1c8bc15259306593997d4cacc1cb490a1928254c9a4acb5b0964329a2e67ac156de1917d8b88490c2cc8626193e656674a3b1c654ce3035d4b6b450fe0f0c2505784eed0b102595d2c9d74e285fb5149ca0754035eb910313a232555ccf14956e444259c2e7544aa0c6a25641ed6ddcd4e60bffc3c4e2746b40ed8fa44cdb192148509ce7f1744fea4b67adb65686e7793b4ba4a23e089518a4138568dbd1104cfa6be500a551ead94a27fd2cb6521f0060467f65599e35f81cc09f7382167682feb08f769c8d1960ec730919a63e0300ce39573419bca8a2b149e648ff0e014d726ccd9021f2f3e64b5065b92e6bf05f3950b9e5381637d2bea27b9a039c7409199e9af3e19f262c8d593b8ea0e3fcce7559878ff408be779cf3f11c05b5cf51d02d16e3fa7d5acf0268ca672531a21b79684373b40bc733a905555b8ee3382e64317e218bf92af0119000377af2d90d6084713d2d2880f9d14ac700e8e7340260057a5a10d358c7c352db686e03b5d65a6bad754408f5c66687489adcdb86dfc444e8370366e0bbb8f5b42100b4e62981fb700b7cd4020a819a9bef7b3d00dcdba541007e1f8d0e4b97cabab7b77793a8ac77fccbf9cb63c7f3ec4ffc489260cc33cff332adafeebd37cfaceb45dc0045264d451634e5f3c6d227429a37a2222d2276d3e9be11f13cf971449df65702be6b4a8b4bf67603861b2cd818938ac70a3b104902c60521dc0d2929a9aaaecfdb8da539ffe7ffd7d071246dfabcdd409af373fda729f4cf18ed355730a56bad1c05a55d174b3f127ff9c8fff951ae5a1859f9ffff7fb56bd27a73d6de6e04756bad75bae113fab8d1627399126de82eddde869c86985425f071702ea8961a6912a772fc4915377de33ce03624a4d73e6f4327f4f0470fcd24c218a13343412a0cb5d853bbca4b98430fa10e39e80065d3e064db600ab9a88014642b49f2d1218e6043cc51c21852f2cc40b50398b02a4b68260a880d3f326c2c4a6847422d436a9020c28eeda4dc446a31c2a89a4f7843102910838316a51d361051f68ba63069c90f0b620d14c41d20418e786e8434d8903165e367039d49610cd50f3b569448d9456ac00186508c4d29053b8709a10d3c421f70e8a021c2a801b459a811c29e21153e750965e041dc818308e4b47b9a84532e84608a8835a51de523449223a452838a906c4b09ed6c13ca84247ce981e54685e969470ce10a49b6cdc81321210b235015ed16b5ed038d99e882468f28a32a1c214c68820f5ba6431194183483f8e2051b565881080a3ff617a34dc290d40c5a0f335c943113a60044105bc45409c7dc008606d1e886a48532296c2825402185588836d28c5d838c17473258843190115970d9e1cabe61ca2e9f846498882520d9b254e484137a846144d85e8444192d28e4416b115a99da495ef6ac872d398834284b9cf860aa4185a320e12da98a0e3336c2c480b193c4e03142157e01b363c892254a880dfb8a0ce1192544fa1e7941df2122cf8f0dc3d1e681481ca211be300b0aabcc76f614aa2061c212b48c50c587941e4f441d4d760ca6adc54868648828f4a3c951988588050d2118414360ec6c2b545dc28837b4ec1eaa389122f63c097968121261125b18c131247cf263473932220242630fc9829ac876c424aa508530a14dcb5eaab289a4883d9ec0d0e40653e8c5c86632a4851fe109479b07d1121a620841413b84a01d17a8c432cc9e41cbfe51450422255c7ab24b68b261308960048521a2093f9c8ea410854c686c324041bb0868274c01151061b696304a952629628c27529a845798ba18d94786842efc08a18e441c443f68fcf022489cbdd8a1412523cc0e427f5a764d7f55441e53c22350c21f64d8429688346c220945a6fc08e9248e0c3f7a98e407a993383838b5d6fa83a3d75a712a025aa0a005e5cf3fa8fcc71122f8fa1ea0e307b6ea7f80c90c2aea45abcf9b4f969eaaa0ce850f07c30ec9aa9d3e3c7c82fcf8147111c46e5db3eaf3e663eba4e64250b438436f1f2da375a3872388f321c38eb1fda46fd30baa7ba2c8f4fe7aaef4d818bfc97dde76649de438d706b5dd77cb7dde788afc3fad566e3c50d65aaebbf154f188e91bd623eb1bc491697cac562b10b4f52cb56ed3c37aa2f43f1868eb5cbf31464a46453ba4b0f406f479db41c4abb5e31ed45af557f9ecc63a33ad7650fbfc3868e7f3999f4f1d8ecffe7335e7bfb52399853860efbdf7fbcd351781b9089d53707c6539a62e9c31c699e316a594ba5c2eeae22c976b246946dd62d18cc1d103afaff26ceb5f91ed55a2946959966999a6f47596525949785a73eab978cdbd2359d36f9953c33f1e023629895b039b94c40bb677d757c6da9bcaf6ceb33ccbb33cab4a9a7a4c3b908aaa8ab67403f4792b4a5244a43ba0cf5b118ba2eec1488b659d7cf2479276fc7d23fef9139f4e071ff42f83fab57f32f2470f2889f9ccf813d1cac9fcb2a8394f1b29c5948ee4ffb038f5f8d36a8e8b7be3c7b5a6e11873176c5212342369bb66b1bcee81377b9f53aceec59563a03ff18d3acf3dde719a3378ee75a30660e76a91a6dd982334ab1fa86e3938ab9af4e6e056d7d6d7e93adda7d7cbcb20e5bceb74ad5ca73be53e5da85e3535d1e21d6df2bab17efd68936d82e2e03ed58ce4e7a2b94ede85fa0be55da8fefc5e1a9afbf4259ed626d66bec78e55eefd17cb0dae4791d0f5179cd586db6da68c6fbb4fab94fd76976562d22b114f526140bdad46b4e2d2afa5b11ac02293dad74cfbb4f5ce6f87daabca8e67c45f6b134e57040da902aa6951a2c9ac632e740c5b4529b2cbf4f7fe2efd385ba4f35ca456d4670516a5b515a54acfb7fce5b755d47499ad547699dabd5d66a57a3f5eaf7f18f4fba5a511925298e8e613a1e07a15b1a4a31a7980aad68461dccbd1aded9101bd48c24a594f6728d765c61ee594edace76e3881506e0cdc0722afb139677238a4a734ee1e276c47983bfbce6f5e2a44d41f306b8538ec16b242da5b3ffa7b60e62d8ec2b4c29a674e55118957d89e71f07b334303a8be9bdf76a35f598b1d53a96efcced080fa7e66070c32b4eaad85f4eb1e23a78bc2b8e41c5b33fb1ba239d7d098eff533aab2bc0ea9a92c4d9bc740bfabce958d2f1d3637dde7244e9283b9869dd3675fb48fce65bf195868508c1bd5549ab3749d7f33cefc27432d7e2b8cbf1fbdecdb3f7ee67f072aff7dd4f6996d18c83d22cfb13340b557083cb29bd9996f44f7937d6ee41ded1aabf766fbf3c1b49ca2bade6d82216a5619b6534d33ed33ae5ab157d8da4aea11ca7cffdf71dafa9dc2ed5d738922ab6ce334a69b675f0decbf18ecb60e559b67ace16dd24d5a4b74bb668a9e87e77e719a59cf4c0eb97d351c5ee39c35e5f2aeb977e9e7d89ab625f4faa9334c92e556d9702bcc23e1ab318539eede77f98b70239981884aedcf29b58c56295e65f0f590f9e0dcc9a31780dcc3e62b5baac4a29ebe361eb3724a86e39de5d0a8f3e65ad78cec0f7cfd258adb15e0db056b0b6480c701cc771dcf3f8e51f5fe141ef3e8fe43837aac0ddd62a20cde1f6cb3fe2729d8ed7cef187d9af36a1f457fc7b0ef2150b966276d6cc1db0ac9104398bc562f18ec53bce1a3f3e5774905f1415afe817a662f76fccb3eae115e0531deed3c7711f77c7112966bfe3e5f672bbe295afe81c8cc41e746f767ce6baa27b3015b8776fe5cba292cb34cfb37154c6ddcff2eb8d644d07c12ccb33229d5bea5f02f1790684ad13017c6b4713502ca3318f528e13514b6cedf8d5e3dc37daf1e74bd84fea1548a7483456f997a2184df9072307f4252c87c5e889237f4a2ea24a1c23b5e1ef075b929b932627283bbde86ab3699bb6692e365b929b932627a82c54a12ad4942ccb33305ad76c9b1b1e137fb8dc05a375cdb6b9e1312efa6bb6cd0d8fe55916b2e9265dc36d49b42dcfb24cdb4a5db9cd56a90d83b6bdda3acfa29680f685fa8ff7f38f355a6fc11c7cf047fce5bf5aa7d845eb5cce75f29796a88915f778ed9c50134dd40438621aafb77af3c0ee35b0fd3e9024d82b7d123561f92b51131fffcbbd123501f2cac52dcf2f7747318cfef8ece416bbe8ef36fc2686833bf99d1c318dc63ade413d73e69603c727919f74cb21d42bb749d22b27ea75de4490ca790bfc12c63f5fa2837ae6cc5e922dd51c6fe9c191fcd56a5cea35a9e6d491fc3a18ae4df888e6c23fb874b93897cbc5f18f0b972e17a6b95c2e2cfb1fedfa1f8d35cdd769b44bd3600c8481301006b2658e9cfacbe8f36664b3e4ec977b718cbdc7de63efb1f71e7fc174c88e7f1c84fe30b2768cbdbffc3fee690c5b759c97f1485aad5f98bff4eba55f2ffdc2fca5398aaa359f1debd748aee8afae356f8d282a7e8d28280de62c16d7af166f751c6f912defc547f26968c696d57cd249f548babc174b73974b734b63f5f3d6e87116d600ecab91ecf8e52328ffbc8ed3ffe9a0b5386e61a056abc5f14f0b97ad16fec1b456ab8565ffd3d23887d5d2b3e6600c8481301006f28e20d1fa01fabc1d59e9600bc37440e8d7cb59ebfc91b6e7d9bd5c5faeb3e6f9729dc98c4307e4f55e9c39be6307b56b1284ae7339c867de00e499a3a01a733c5259c7bcd3917c166bc4ad9c716e699b6e7be6ac91d63c858df61bc95187221996e11f5ce21f4cc3328c8b68ceb8c5bdfce239e7170cd30f9108a8f44b9a935246a301000843170000280c0886c342410e0421164cee0314000c689a365c4026250d23511445510cc3300cc33008820008020008c02010c61802723d000a6a9b8dcc186e4bffe3fb4fdfaf9bca47bf4bcd91320bf9f1d0f5f159fa5ad8101ba38f2655d947b54f5d5e9ed3ae7f46cb0f7a3d2c5ac7158a3e99e2c1489b2f256d0ca989984cb813f5fa1c3d8ba414903c4d52524125f03e21e45c2eb89e75be867eba8d3541ea07d1ce73dd85949fdbb973b91812de62398ae7091aa09990b5426d1120221a3a707e1c8d8fcf47c239bb71105da9cbe53dfedd9f28eafc73b801ad076fd6b188f75756c702279fd3974351200aa8ef3361ea1263f4269c9ff05427289479fd78a3e321899542385a781b8857f42b1091bbdf6936d9d9e42824d1af065bfc393cc0003f66a0abac4d51d9e3e5ca8b0d8beeb09b027c1267a0a17661621a1b39a45f746aa9942c8d284597a3b666cd37d71a97b19699878710460018e6f3f66b9d4a384589404288ef7438ed1bf4fc85ee145c911a6c771876aa64fac9ce98903af46075c31cd862b8b1b733ff4de750b87c227894653dc09248cdd004af27ef299c81fbaa3e98815bfedfd1b48bb6f0420682e8430af8b953dab3406ac809f71525eb24213336854504be296a4e76dfc2799702a856e6a01114aea6e2293a1a5bf1d55f0b7b92c5a0f46fbc2319826ec663661891fae9b195847c95839e6036b081b56669729f08d34f7c822bcba9a91105047b5280955ecebfe43c2e8316002fa1b1646a4ed8e107c79e1cf0321aa517ba67f9d19151b6c46dcb6c8f8689d877b2f9bc69a148799db2e71b2e2d59766feeb6651912049309fe8e903016c9cff78c4ec40c19cd473ab158038e012ad1f94196475b1fc4469fb5d6718c3b9a0b7f02322b176a5f05f2d47f4ea038c9565a7a56c7077d2241eea8b4b8956b15ba593d00d137e744df6b1f11677877979614e9db64095adcc0cd8b9ec6121f9f37bd870b2af094ff4b7922cb67667951cd0b121009a39a61ebb8df0213196a6c9feae3f749f125956b92eb944edb2ae4fea8740273d78b7c1b8f07db27dd667502b4807b548a67fcbbc3c76bca12f6b6e5bf0998393c5cf0b42abb7b9c3f409d87a09703ed125e8b21a6c794aa794adc63657f3096f0301e3d2a307f035b0f099a6d8261e1d1b018513fe2fad02518982a8d4b5a55425ed685a4cffff87592ff7d9e5e53e1acc48705bafbf117d953213dfe9dccd4783a19f86cd39d5837b5ad6d275bf8a6f543ed949d92a0186053588ce380363ab655bf01d4501a8dbe8841327b1b5e7cd6829f89aae5cfb4985693f003db4b096e6408094d8aafca98d3c1030494a8d9fe0b9ac08443a78e764b7068f97ae767aedfd174236c6895c5a3adc79f261cfcbea4908bed05aa1ad9ef5a6e8361ecf67412baa8fd780280789c9daaf834a94a3b8e398745db7cbb6d338c5d589170423ab5d7d7063c1e0ea3c34161d7bea59afac356102d409200cf4a51537098635f47cf340531e732b96b8d26437c504b4c7ea0b7af91000b6bfed34bcd724ddffd1266bb1d8accbd94c952f6431f335d9a4294b9511247e73fc91b4d65446308fa67f1068f2283e5cd4ff2a3cf84671deb422ddfea0a916cdb93651553b33698954892afc1fbeb76d7cdef3b6198aff353173f59bb14caac93f1c2390d62206a1c8276bedf510cabc12c362986f7c90a8457e666a54f65bc26726ccfef864f4e161004781b4aa4aa470c5553a30879eee947bfd4f05f1cd383105d4a4f471f853818c49339d792e5e297c3af0826da51fc440418ddca167314e778cdfbff1ea1b5d4790d754a5b3c31a07bc4160db0b59c849efa43eaef11c3a64d5b9b3b1a4dd18e36927251006c4eecb92c762935552bc6c1de1798000c3a89a99ca518e094c8a589eb428b0b6e9b0568a79119d0502b980f0d71d584f2f693570621e0e0e448743d28fcce3182bc7573a4fd1d4099589b2f475443f5329b3721c41b18e8a53311a0bee939b4b0a3d978ec54cb0df71d33eb4504ad7ab0b983f6d28326b9546d154d0339b2467e890eb5e765932af06c5aedfd3de27c5f3bfbef8f7ca57aa2eaafaf699fbc89817cd9bd9bd47c61fbc623e24689d4f899b649dd31f7283069d4ee65ca4b1d4f48460dec0c2db0f38d3429809ebfa9456f60ef0287f58871575a0938b082cb7057bc1282bd981b9e9902f2b4577b88d017b13ebd5d2c377f014de0356a6022ca19e503f8818b58b895f5588aa20d33d2cd84cdf0e112b1af278bfa0186cdbdfef40c82139b6e4b5b0370f04c2d605f8bc70a541cc3c2e4fb773c24a81a6e29f556c8b1d3423589ba10302d55724a0e130df0a3676edbb73d4585155013fb6d58c8197733b8e6c2d6a39fceec87c70970ad58d404ea36f5f998242b9d6d8046745631dc84f0a77d7496f73ab586cb0e2855ac4fd4014aada02ca73f6f2bee9724345c4384771fccc976cc9e7decf29e9fdda1575b26dd05401a564f4a690bb971ff7d66d5ff1aabe0737e7eb7c9b4fbbdf8cd12dc8f060672e89ea2b46260ddfbff7a42e84f0cf250cd46024b30d1e2f5b1e21752b08e03877e4a88c1681b9b5fb7f5bb8282ac90f694b79345c1cfc15f13b87688a30dbe84ecb856eda06b707b8df589e6b54d4c2d51939b49fe0bce30dc4a899e79ef6bac3ee8722353a99ef01510f0d1dc4b5bd5ced8f6efb50492f95ddb3ad0ca8065ee4d17731fe4a618a83c1151afd8eb2476f99e6a621856477b804873d38f60e58e5ac03147388b7b63aa80017317421a1a8dba202db9fff721436bd18a5501a068c87df9b72819fea6e87aee222b1100b9a3b50ee85543b9d6e38f96b60d04d25b8841dce2e68833ec68c358ba953ff3bce1724fdf561405193df4d1571e32e6dcd71d51e706c69002dd98a7cdbde2243e9c8eddcd12334b9b6286c7083edd27f2648e3ccfcfbd8a48f5ac89f9c70f557a2a9dc72e8f6630b8fc0887e758890998478626bca34f7520bdc26110f8b7f15759476c8a8f6ddef1d83a242f51b6a00935230d5e77860b62fcdafaf027bc8ef430f8418cc9126e5aed0a0a934aa1cec7471a03e71bfe63da8184089bab18e7f14bae240428f3cc57d801d24395d4ee20a7239e59d1369208942929da3a8936e4c490fcad53c17a40b8c87f38706d64a04b922560ae86063268ba4309132f121b6490b32be37d0b8803641d396ce97656a933634f8201076a80ba20b572031758af09b267250e8dc568709882b29224db6907ad046bb45a03488623742b9c48808323dbcf6085d45611d8d3275d144cdac88cf302be21ac4ea61908c871e96022041ac067819cac2160469b3984a464522afc5ee4f80cd0d2b2a573450233a10bec21580f0313be0c02cfb0b6e346acf24613c5dbd2a9b64f64073ca05540601ab118e81e1c4149bcd64ce68e267268c96e3c5b1688c1b73b2cd009ff71bbd66c39777921cba5cf284cae8f62073115e21a924156dc83a385e4499b44bdcc85843a70bcf0a28906288294c79294eaa11eda3dd594e04541e9cb8a44f206a3083c2d9862c131ddf97029a53deb0008d4dcd054ee09500ffb1c08902d77ebe21888cd69a9d74613d499af2f110a1313450113ee21eaa1d805a7ae3feb4bc9424403fdb19f2d7481841fc213a1531fdfd0420a5ff8526e0f11320b1e6be37a1927356146232310fe9139351799c08e9a1475f2d1b5393f809a8f70e1cc85a610c523470024b831297e77e8646fe4d25d7cfe0f1aa83f0294225c7c2747f0e0db7c7f3ea2cf48a45c16fdba2540dd8132626e8931b88fd0641e3c306816c6b78a2d924e24b342e848798b68b0bacf741f42e0b831b95860453d1607778ab4ddf95e5cf42b11778a306620dcbd64b6bcf230f44da233f151efe2fcc258bed0668635e5f7513c45462f587bd4f645d657ac6f30e31514044dabfb788afdf4c4eea0de145abcc19dfc764eda1a715241cf2e0ab045fba8e294bb8a6c92160ee79b567a8c75a1819a9fcfb1f526958fb362ab1279e3921a46d360a56e41569ffe46ec7c8ca638747df6c25cf39e35366be10d81834602b2f516cbc13d6f54e2ae8ab1abe53e81b1ecf5d6cab6114fda37a60bff3693542ccafc88bcd7a02276c3397ecb0c682dad6c270d90008a0b8e3ca759ffb04cc827c135829772637977247a37e9dca834dbb683bb5b353b3fc240bdbb4452750113f960b5cb5057328779c66d416a0656ec6c7ee4720d5efb0c9f0faf50cfcb08987d035cf89c7f67b708616fb8ab45249de58e56fc598ac96f5c4cfb915ff9becce5bdcdcd1a1e40d6f0dec1e4c2ef5e52c21742d5dc3bd3574861c18aafd3d0e428e5ca33cd530f1a7b54c9908295312e5160cf002441e2f0b4f5398dbc4d1ca668362b96bd3277d582159ad7f306920fabeb24013de9c5c18eac2b286172908ff52aa78a7aecef18c2637a396ff98ee0735fc2fb144b052fea8b6b1805bdce0b828b682fc851e576bcfdd0b560472afc80b982682f1a03b920bb3cb2a4f60b0548ff90c1f1a41f7d4039a8cb2c52129dc061a68e91073ca020f1460ec0fb6b7b472bc4275567031680327176fc67961120b5e057c8ac0b859b032e2f22958e644d2fdceb5eb000064c36d00690bec8b08f6ca55be3be353b50baf84473ae7b1a8d32df8e44c1fd754fc33a3910b1aa5231003e09ba8ab826b30beef378e38000b8d6bb21437986684941b6524e7631f45362e31c062d05d8ad075b8cc8780491978a9a5164bdaa9c7394ab010b3d2b7e497dd66b9373fc8fb2ffcf396a3f34b00d2636e867b9600a06b2bdeb888d11e06f72685e3919b1819bbbb8b675a77f1f8cd95131d41cacb37fca570d6fab714757ec419ac71c6ddecb1c75d633473d7798a7e8e93d6b88544742e1b08d3b78b5860d52c053695a36e85c9163a095f5c60d01d31a3419585d394a18e0d6488e6eb776ef128df541bb1976309a760d342ecb2608ce89a8e957dc701ccd58504b7e7a8f5bc4452e6a76b11a171b4b5e1a4736daea1447edcab95ac120cbd803016a2e9a4f3810093be3665029c3d1a5f545d88cf069fc19d3d79cbf2d5070d4c2f0c25b9851625af763ef578f1c2480c96becd733a0d100f2460be854abfd46852e9b2aa6f51aec5310063dc99831e1530035db07a20102a17919e5fffe46b1c06b9720af43b63577a15dedc472c2bb5690a00020185fa39668068cba2828992290e08afb2f2b47b84e0b267b21e1e445e8bec2a7dc1c89005e5aa06e0e8eb030344c28a820401c6848a1001aa839b8ccd6b979efabd679bc85d92cdab851d2430230f9d6cb950c85e6095bb53c2ab620134434040608aa73af85ef8ef2cfd6cbc293fcfa9f14274a89973262a7dd61f5c11f3b0b7a899e136351aa3fbab414359cf59251c37c62362352e6fcd812f4271dc110d0cbf23df41fcbf5d828cffc0bc556e1812dec335eb17f2683a4af90795188bbc646c9a9613db35a545983f311ca0fe768bab1f9e418fa4708d89605afd05702f1ed081ca820f9602e9d42289fb6ef238dd08c2b6f30b52ed54e2f4e0869915e798f01c3149eae1a257ff54ac1d075dc88ca768a2881e0bc38712b3d561d883e5b0b9f1af543640ede3cbeab58a951c846cfe0ffbe7867a4119f7f1b245fd988d3373783862f9066c2529aabab0dc9a02454101d88f79cb4d5f60dc32cd907feab74acf441012288d9a5128650ab576bcba1a3244c9d92a36d659f33a1a8d90e7decb282efd121b7afe86a3110c7d66f5b2c9d95e89db185baf538b8de3d21fc004ad5437cf7b8b97fb6fc06ab91a5fad80d1806402f9b3a90f60ffe8ca0507f9a3265c680f40c075b2802f487b65821078d4f98a07088f980e1151439e0d74e2b6194b2a08361502b4ab49361c914f2029d3b299c21b634a7e7960c907e0b25e34f4448d2800f6d27e2797dfd40b9c766257d3c66031f4bc6df74dcd8da04551b133a0a757828c49cfd98e8325e8787fb7a282defd0f32bb2a1ceda2b2e8b60f1a3890edc7844cf25dc50439087bb2fe790e82a7741173d76ef805ddc1ba31bb4f88a78c0ddaf8be0e127f059c3bfeb110c1fcfb402d7126007b425a1582c40e1e110341721eee38ead5eef1e6f1db0bd02bc363fd0a8f0756610a792bb96da8f11f91b2823e2e3b3f2f63533b66906bbc7a19a06d8f72a7a0a854c60d21245de2fc9a9bcd429c166587d5f346019a418677e04cf4cddf01e3c1d735ea237133297a86bafcc7f29a1f12b9968a885b4d0c141ac6a209cfc54683ededbee3d24d2f770d0bda23947e82417b43f1a874f63de8f0ecc3f397da24b0842724121dd7f309d6682909a312bfb58112eb7a0880c13b954e01f2763ac06870acdfa7c7fbe9cfe91328d85d33cda84611ea3a7b8a4d0267856fd0926b8613893df5850d4bac7c50b4966f0906cb56ad42d1b003a7f2bd38763c2b0bdb65afa50c6596fb2d38c31af8a099726e5d7c79054251cee9f0f949fe32b908ff6029dc1c82624fd2f73f563631077810637cde1240d87197908613e843fd6901cb4deb42598b2be0a0ae0371167478550f8701ea63415c214a9031e383d4a3821d3a3aeecb3a56cd2fa5e3bc68759f6828961f32a684effb617319f289411475f2465deecbabeeb1789ea79ccefc05503c41ffb0dc1fd85e831cb6d793c706a8a437c5a935382d5fa1c09fc1658f46d82122a9f310e154037e0851b68fcc170c08ea2cbe77c77fb2b56a4cba7ea2b6db61770c400ae952c83478c5df3583e69ca65470b36ea9cace60e91d4e990b0555df73b08b94276a390374f6328acb77bfebe018ed981ec00297f792c9f851960266bb30b67481e89c3420ba85ed22025fbcbe4f8c5d7b795633d77efe41db3581efc3e4f063c880ddafa299f7e7da5977959a56d77f050b7e8533e39310cfb54721a6d08f6b24e72f700e8aa6f29412669eeb87bfb94cfde97634930b89d4c307014a56756b6424ab15786394404fd7fa027f96cda173870b784914ba0fa506cb8b8c1fe38c55c74dcbd99094f5ce9828d133ed19045ce2b9139f2f3e81ae9eb3a5fd022a7c7715e1690c7e34582995a554c04c946d266b5ebf5ec21270c235f2079c8c9a70d4b6202ddb71e50db00f96c6c4c6b7398dd4325d1f8769ca18cc71f64dac6e92b0b17b7e33366707b4606228b37e1cb2fe67f1bfaedf8248d8ed6a8fed3a1bc03c4871604f0fdb0338e4309922e80ee6b7c9e7a307051d628d1d297ebaef1a9b837f8ce758d894010b56fb4a9c5dd19c3aef1d94fb8c41e369e2139ca750ae2b7e3f379dbc0f2b84d6fa1c3dfe51aef8c0ecf96c6f8ec7b68fa509f413525dadfa1c1d46fc4971f3e63422ec469c68a4f4b59ca06587201a0c649ee38f129ae30d71120a7b74fe2b09088c00b44824ff7a10821ea3269f8a9794ec3905916d768da784c1ed96bd5a978f05f4e783e7c229aebeb55b0575428d9f44f3a0a832acc97cd3a7da4d2f63daf408b51bec6b03010e6d8f0b9140b34a02b0782af9f52bde144ca08eb86982f7d274e5e85cf45e480462501096838872a7c16044800dbe0c53c43fe5f8aa5f5c2228c3aecd0be94c75b2fa1dd64fc8dceef5179fb20921fc05d0d43e10e62b28f736c8d1c3830f5b2df3be0c7b49feefbd737fd14b940af7f8718490f0be2222810d889d4103545f1b1b9d5533c4178c7c486b3a0fafebbd7a740b0e94c0005f34da5fb807c87f9667b0bec78faa30239d88b1365b98099b0360201a9da6a1ad990df6209471c8d582a468625cef97ece84dbb1a34135ccc2f0fbccd88448f80cbe5e885ee3559282348adcf6f3d549a49b05e054cf963d0af5566902a1c2184645134a479219eecbf8154cb6f6c068c365a4989da7d8d06aee6dee65af5cfce5159b8201fbe90eca055fa2b544f964df80047877195ebc0a33804b4571339014883212309ab378af90e9cd86b77c3cd720e82da6f8935b980185259f9d068a3649e0ea01cc4c7a3e8c756b20690bd39c7ec972f8620809146ee58af297dcc31301d36150026645a433f14ef21d7f465d38c2883b2c4ea29400d10f86130b579a51e5f132564d4990008375b1fa1677ebf762943c144547172148b34a6904b8bdad3c5a02805c4e5991e46ad05c860f984941fd509fa40371b534c91de018e68ec9d8a592f2b32b7973916fac2fb4702eb613cb2a60b0a3f852fa78942e2fd3fa16028237098f769accd613f542ca94387185de2a647cb758310f69c93b6b281f2315a47188d5b9d8f16b3dbe04ecb4cc53fb6078be38992828a64d7aab40e4103d2a656da24bdc0075977ad8622f82011435f050ac8f9e947cb54a6abe89af0eb0b9f654d2e7c2cc660fb7f3bc2e577c3256645b27d43544dc0086c15df556f2b97c97107d9865c3a0c13016df578182f24ba307f2c5079ac087c36a588744c23a322a7ebe4a3e4c7d01f7eccaed7daacedca4e01b47c631d84e9e9730b789c57622501ad648a2b3d48385bcdd3534f456300820a8457f20051d84b5cf978232d2f0c71a9d173d89c71a6cb799a3ebc7282516fae5cc7eda21ead7edac638437c4b3027e9f8387d3a8549363bc6b8ee5b59bba7b5094cd6b2797cc0b47e9f03385478fc9de48ae2b186bccb8ef2231a4192efc559423128cf85363bb8ab5fdbd508358223ebbee8303a78be23ab9b8db77de115b75f21cd3e1349c6fdd8217b208bbdf43a5c7f57c7c4a5081b4524292149a8179bb39a7ba2716b37dcaf58a844d55a70a898648d5e8057988ebf9fa0dc3126911d5eb1b8b1a1cca7a469420981b56d466164caae9beb8c0fdbc90496f33395ab4c3de7a98565282384e192812f66adf1ea04548d8e32a4a0a84b8615d6d6301c701af539357955eafbdb1d82660c47f9792b6a999e3fde7f50d5e4a7120b708bdfe9f035e322ca3bbe2554a9ba62c52d6553e83d9adaf5b311b857bdbee70048222f35ba6f219cc6e7dd5ebbb03eeffef75475131f4aeea500f7271396e728bf0819dacf37500b4c64df73d1b9867d9535e6a290282d6ccd272811dfa7d435026eda4325f956a16b19b4d439408139cd891248602f9b07c8bfa5aab979e911a030899de8ea7f17410b8cf9a34c6683c16fa727ccdf1e8389e0db4a6fa3787ac5c044772b7386c531a394c691cc71a4ca07405953201308723504489e9edeef22cef82d7e9db16b3a8d91ce6b030c2e05d35c7b7050b2cb5376e507f13b39f74d9edd1c2f78093b0b9afb96c5c6ff44fe038f7cbcd6414bc1a721181d59e93ee8b3c4e56da0e5abc8906ab03f01e0ebbcca990c473ea4deefaa3f25c0349bb98df20becf945284062b969d18affd93b1232b0ab5c44a4db4bb89f19ff3fb05864210c0566a2696156006232171408e09c0320e12aeb34f5b75b09e3dc6e637635cd357e015d7ebdcc50e23c03b4b02bab5e42e074ed80ce550982842ddccc10e5a843a4cbc71ff982c210f7d386f60f0ed58e3dae42389cad953aa67fe4e0b4ffe3858b6a6352af75ea65a4dc536501a6d79088f43952a1b52c37d764141affdf03c84f956e881a0fd783c2029dbcb8216437de99a886cb044dd4473d7cea2aeefb07f377b166243bf3e1e2d46d0d4c2920906d3ed194fe33f11a185e230622856118c0edcda8236b37fe10d41c33574d51a9190f935c3f7a5d927f804a68f6d4e5439d38d041bbff16d3c9ca5d0472d42ccd5b099822551c5365e07caa7774ae615f6b09942286b621b1fa8ac1855d66db532e0f567d0d5f49b68ad4b1999b4b47c05088eec0c9d95e5a770ba9abc954117c6674932d6ee67234e50e074e00814614a3d67f1acfb69a22d662d2423526b89c2d243485fb48ad42e0e13bc5416ae0c692007994f4e08676e87dd4b6bd655213ca743fcc6edc9d3d3235e62cccc4260928c33cb591bb390a160976f800d1991b18eeecfad9b411d96306b7a06891f0cb6b7ed760f76421bbcb11995b15f4e0368e3c32e3849137003d2af8fb1a2f927d28f306b113096e71f0c8011c1eba609289319d2953d7df1e37e08a150d9f3a1b6ed64a8b9fc2f248742950bfb1686aee6cd612088602a67708cd6823c6103b6ef3009f6746f830f0b11ee2899a068522660d30a2c2e1756731ae62338a7dd838c7524b38d7e05e5111222ddc61c815ea31ed593de09b225fc6c14ff565de4fbe97b568addd63ae123128aa0c359c2e4eac06565dfa06e44c6f89474508499b578a978903035e2e53627706d78f77d9c45570b040304c029e0e8771da083e5bf88506d4ebd489aba9b21aabfd4588c951251552a9cd1608141bee7d4e62f7741bb9b6edcfb50a70139958bc23d580c03697fda6aef932b363e621c8eb12e078306801a4d0cf172aff583423a86dc213a8f0561a804767b0d9c3173c6305df725ab41683d05df6cfc5072de6cd3d2d651addf5e76a8e8da9f28756f237a77741435753e9e887d461eade37aa6940e169b093d773d111738ab6bdd5c971403002f5f49662e7db4e9f3c6ef946b6690381c62bd42fcfd3e9c94d098063a5f81d438c5cd322e05d0141b818a645b26a94afcbdf91b0ed8d716c1f8b184ba2e527e0b8661da6e0d6f8e1464c5cbe50adb3b370e8f610a65427d741ebbde65c4e01a48c8f4c0ff62dbed149b615ef022b90c963b9f438a33ba416a06e4499d8e53c8589638a9c37cb23e0281c28f42384e36bd1eb07b731cd2e264e12355af1796470b72970487234dc1d8b4875a1173fd35876c05b91331f0d8aeebd57a677059cf9f415b8b1c76b0a45d1f7147f286052351209f2d7c0b5a0b34f6a42b370e48a468b4a73a12a2a95b81bd0a1b1c5236b868c890e2dd6ae89088aaab34a7487757668167b11b8b0e362959b37a8bc1f6242839db23484c8def2a38fc24757754e946bb4d66f1bc528c366dfdfd480c9bbd0af4a78699d8b1aef05a48b1ff2684ed476452a3d195442ba5b260e71f99859191e086b248638b4488c64143ba5883ca4ee2d57457fc2dc616ab16288b050b2e15ee5a744491f06ffb16bf85b882629162b1a4c2bb253564e8e6a13f2779b99d85c858745848f7eda07292548ed01536d824437637ea24986b5d516b71b6d85b70abe85401a9f0f45305dc32374f47480e9af20abe15a22ba857a0592c2d3a16af05b48ab416260b9d85755a74a41bca57bbd13c1d0eb9a4953bda026a7692221b079d14e75855d42d9a2d90ae85a1a11bda721a15889e4a2226e906bd5106254cfa9a3bab627731da57fca64154df4262b6c016542ad215b4a8e0b4b809be491b1eb7d00224647237f624e4ad5ec5bea2c3a21e0ba85124ef358e1d12841bdde2862e298936a805540b297b378e4e92ca41cae27616d2271a478d04ee5a2cea15e62b7416d56da1c68b7499c6412485716d0bfa9293b66cf159d4a8428dca24674d6905df0af112d3e957fc1635aab0414972d0942d9a67d1214662deae6f01b59fa4aac68126dd3859159fb3f0544bb2756515388bdd58a4a79d94745db778f22e29b9452b2e4b5e8db798555c5be0a9a8b56055f863d1a97192321b87ecc1a879e1713d15332aea02b21a2137685e2149c6e0f2e01da17a4a4cd4c75d4220507a9215f1d8916f284a72eb78317667b5605b8b8e6187f94a7e7a1a0788168fed7f3d1131c986326d0db4a21f761c9149b8b4859652f246a782fa0aa8b924636d7605bec5c6a265f1b7105b34c5e2069a24e0bcad40c1428d6712c1360e3652cfd9cee2c63fc9d72e0d34e9769bad287cc5530dc96e9355c0b1d054c1b2f0af1859545ba4aaf065491a27bb462983486ab89d159f85b845c52265e197161d1c2418dd537312796d1c1cd2ad9a0d14c9ec5d1a72d27fb71a9d24754b5b3ccb621bfea475933269b959ed0f82309220a2414593a08deb9093bc699dc5cb2e416dc3cd305f4742724db7e8d893906f835808f69ae4d5f88a9aade0b890beddee2d3a649380e94ea82321ba7a85eca18d027276d7989584a68d83fd5e4b81cf1a9914426c6ed60aadb509b6cf0f772a10f1c1a332a30d15dd0ec3396877cfb0224d9d5f05aa16b54f2191a071b890fa9ded4bd000c289b87d3dc9f066839d945f9b7e851aff24950d5d45bb0adf626ca9e17c5f61c34752d1d02db0aaf02cc41694168f2a750c1cbe2c91ebb75d54960babd6d0fa307015aae2bfe80bcd4dcbef9545ce8d82d2f9780f5cfe02926333a10bcb883ddc716c005d7caeec8480216844abe5c1dff28dd24b1dc4a7ce30c6eae0d02184106e595ce952ff17f34fc491ff22b700e8e77539dd5f4f42a5cfe516ca700c7cf6ee5de4eacd224949947c3a41143494369ddfcb1d84e93fc6f9187baf5053b5fe42c820e91692043e20ace6e0761081bf8a536965ccbc79ec5b56f921e3744bc46824c710fe6b801ce303407ef7f78835c8f0bda98c4541c1ec9d9922df90876d5a03b094d5388002682b5f84988a40de5c8118c44162bee7a13467b4fc81f3e6da5a587887923445c2fea0b5983cb1a141fe2e4717afc59a13ac3c5ffac785653a1a0eea9f3128af83d290836c588693cccc699939e999c2a457fec8f64cdd4618736f906d462a3f607d814b5f81b3f13d66d59c0d2f1a91d402d47b1581cbdef453c6c586462161351a96a56345cd4077f3750d9a45a43959bc64fe9bb1d0a0929358a9871944cc804bebd2410a4e91acc020acd57ea716fccac0e79c284aec52f43dfdc42a01a334746429c49bae726a347f282b8eb46eb6f51f54a298e72a4f213e7b80a10e80075330fbc564f8df3eef71a92fb20415b902cad31bf4553a84c7f160a1ddeb1deec17ffd59a0117c33d2df4602b111c80f95309a284960ac0ab6e6f6aaf4daf2ee426c5c6408c1c87c05b24421a481f897f259fe1a9e72aa87d1682203d6ed190953217041754e9092af5182c74311809c27e1be9a67eb506b5b74165cf173755817819e9023aa5e779fca90c7a8c3197e3703a750d5b61e0514bf0ca3d342649f0ccf69386803d54fed7d90858d77b2a87051b40535cb9ea3b544cab124cda817ecb738bd04c8d8e50d6ef0d1229ee3084b517fd40b89ad2829f18bdc179f82dfdf2692102091c282df3aa0841350eb3c71b0d7b2089ba38928a1d3e2ab076519d90666079dfd41f65469a0eac9e3073d6cb3539dfcbd128bfcf5d218f40bec2545785a498910641dcadfd6442828c9847741d6ac548724a509efdf950fa603362e126cad60c78231eb6bec6c0b8a52916358a5244abd7078940abde6d037730cc6f310f113bca2f0ed9807a5bad2237f6da1c266c45c1f2e4b693d7f49d52afe4c672a8d7ed506ea3d1918a122c8561816374d8abcd98467c95ff22c43a0ccdf87d1e2044f400e531fb7c2e2c32df694c96feadda4c79dbfad6645731b3677775ee846e599ebc14874aaa5f94c1d21aad8566b2a405c2fab6abe603a73c6f7341e48b73052cc376c1fe8e617109daf7378c653df7b6b8be8f433713c139d7e66305a241828029bee1145465de43e5308ef2149cb1909a55618a700871b8a767f07bfe08ea5fde832cb3fec1dac4c1d58ab8bfb416b82a96d147ca0ce8b45de704ed47723b8483166f748b2adfb4596f1b838fa3d8c0c4e03fa215a6a5c4016d6a60d9d35c27473b419ed92b0dd585d575cc045bb3b66a6a966ac657422f1f607453175ce6863968a35c7bc9777f1736cbdfc80543257a998c6c1e70b2088150167b40dcbc088ffb54548c0426b5434b196104224b27b73e50e7e0694068c06b387a6ff6b5d39ede0120ded1217e4025cdfde79e7bd57c313fb994d3cafe7b3eb66d98cf69fcfe769a0fee49493afb97ff257a7f31ecfc907777017447b3a09e8ce96656fc3352ccb762cdd7b6992f82023205965add5567949979aedafebaa15c7482446095c1fef154b75462a670d30100b707dfbdb7befcedb81a2684a23608661da73279e9e538b5dcde7b70cdb4e7610dd79bacd743e45c6d7dcc7fe3ef6323e0b42447f6474309e749e871b3ee982e84f27018d3ddb964d6ddbe0679d0b5fe0cfbcd2bfd4e17ca832778841a25792945242e8c15a83e8e936644627a57452297330d6f0532247d3b711640459e263cfa284c408c402ac816280e13f9e0fa36108e6ff29a31094524aa5ec48d99112bf863bb2133bb2d3e9c80e9d9183e73bad156a6bbf73e7f6747d1b5ee3679226c9c1c979018e86df115ce8794416a84a6107ec435fe1362cbd0e4499eb2b110132ef0ba537233b09a597836d605f82a406488aa0ecd390c9477d1aa9ebcc6a75ec7134c006ac66d96758ad58ad17eb30c730af8efd25cae8a061b3629473aae786ab972ed41fa5e2ea412932fb5005857535488fc2482f3e8db4ddc6de6a31cab7e106e952ebd3408d7d2663ccda6b91ce2bbdecb34c6615467a18f695824080af8cf35791527635a3d169b41be7306b902e1bd7fa344a9610197d128e066458f658d623eb2a50c56ac9e751924272d329722252b236241e44db0f1d7a5400070ad8e00d3f56a6693283b244b33b9d73c648639ca50f8710b0a4b6f9670f8a19f6fe11cb8cdc8f1decba1c12332c62d8e390731c026569db7248c44adab36c843764c5c741cec49fc1a40d86fdb015c0210c1c9a2f6d0858acea2727582119a2a3151a7e3350a233090a02efebb307d7001cd24382443c7d8898e290483a19754087fb2e29e0374060fbd706e0e8c131e007bc43299e678c9dc7a6cc3edd8e272d1f66dd0c9e0e7e0f6809ecb903dadfc8d5237f2b9ccddde98c13e74ece39f3f8f46d47a40ef201d3b7e12fa11c66e86f3af3c55eebe836a3514ae9e3d9ed1f7a8a74e73dd83dddf6709b50cfcd8d5c1fb11c922e565e1b3de07d658a3fd4fb3acd349bd97fdb6143362b64816ffde4071664f271bfde4eea0c440df2017bbe87a66fed3cfd3bafe766cd1f74034c3f43e168d88713a35896659e14fc359eb78fb37dcff541f4bd9e4e0ba2b7ae87a6350cce0dcbb3466b43f488cf25def8d70f89727ddd66eed77b6fbc571663846f7febb2eebad16e3331deec6117df6af76f47358c30d26d067617c2ace3af9cc10e34c23ff4868ff76f950cbe6639140d6dd6304809de346a682a3d4a51e40bc4d765461878c3148a7cb1e12bf4e96f189d27087bfb0d506511c757977b3dbd386e246156d870830622026fa892807471678900e7cb2a2809867f63fe0f89a2e908df6197b197298375b75215d097f5af6b5f7615d65a3fab7546beac9dcd3aa8cd8fc3e0388ee38208228319449a734e381d44c2fbd290906a199d9041f9c560a5e10783d60703283e1920f1c9c046d3344d73bfaecdb9cd6079f7d0b40eba600ccb1a6e9d7675d8a5fdd651ad7136dc068137a7df632086fe68f8c500474b193a82446e33f1b71b20206a56b5209abef75ffac578d8c7b285d005d7c7d29335a39c00cfcb04064834fd0f06456030e46297587aae49cf2776ecffd2d05c83d5dcc79ed28c37c7cd88ce494e079c9c5b9b770df6f73b62c9114a7c5fbdd1d01cd8cbefa8be179cfa4a971ca4be3006662cd6486cda1bf5674c400e516bdf74c031c6d0d7d3941cf192ba6e396e1735d6499dcd8c074ce9eb33ecc62d47d431cf28b0cd8e5991417984066805d8aa6c33d2b7fa1746b12e7c81ef753954b12d90b08746350d339419a804f86509cb0fbdceb3d3f303514a996be4cf0932018610c226b0b4d045601009709e3106159c101a68365a53024a410689349b2f6c401fb021c285920f054ff85280c447448c23454040a4a2117b8d5ec6d22ccb1b890e118b44226e3b24667c81771c423b0f72c5e3103006465118d453f3872254bad3f02b020993f6cf20cda8fc48b366236f0f9788a78b5b176d641cc91952c03bf6a05dc33dbcddb66dcb299dafd99e7e677bfa5bd57ee8acb369590f4d63d9de0ca549935e850caa641804c201de9e9ef3358cc26d1ad8bd7f5d97e76ba847765bd3527b0cf374577a327bb86941b4d6f5d074765f6236fcba241f018889983140829ac09b0bd5c0cda06174cac614f0e6e07358e54a803e106d4c30638c93870309992e60c2880d0ea49448f85c20c6870228ae26f3e1cdb2ee422d035a481cf9b2256f24121803b5dcf3d2e9d947d424193280e25b52848a1ac74186a3e7cb1e7c7abeec014acfa73d58512d7651673be4cb07e2c36a4dbe3ffd8cfef061f5852cf1bd6e3be84fe931de8dc77c99c3214bfcd9c4c69fa025607f286be83b01cf8fb376d85f9d0f0f9677bcf62b8d3356810bedef592cd1f1ab121dbf2e19a25fd0f09bc20bbd7fc4eb77fcfbd98d353e8e51fb5b3f76da5fa8c1abdbd7cfeb3331b43fa7451acfd7f7749db71df6377bdb798ff6d78df88eed205367baeda8105a38fd6b4dfcfa36ef48b71cf16b9dfe90c6da8fdb8d1ad283ff23d6f0e1d1f1e6400c225a0a9b8f8b2c96488144e6a9215d760dedb30d675fb36e7bcfd76e7bcfd6a968addb94d6ac5a0c080dfd83d3dbff981a731b0dee4296ed6fd7f9acc39fcedf4ed4d8b6e37aadc3b61df5f3dd519fe60fbe301893830f0cd4f73c90a92bd5326d47ede87b687dfa9ecfe85f4a61e729842cdb67ddf59eee3eedb6ef742a7acb706e3bead5a477a1a6144b927d363abedc018d5d0dad4686fb837cfd0877d435f2e9571e33d7c41df165ae21bd28a1c085ce1a7e3bf852e80399da87474f38afcfae88451aed15ff66a8a26b4817aae918a33b087680d2311a7e51883185165350a1614c0ef12164a95ff30ea2b7fd2aedd4f16b85428570d6802cf099c88f39e6dba79937a286f0696276887d103d3390c883d659738d4bf943ad13cb344dfb2d4a6cc62d4bd9344dc37ed3321df5319a1a5bdcf811b57dd011f09d7fa3e022cb2696bd16b128e3bc91a23d90b9b38fd8bdf72f1f71479681c49981444dbf6e9e6fc0aff18ad1d68f30ba10e4fb14565abee7687945ed1e180335cc3448b2afac7947cd6342ffe9f9ca20f3faf0a4fde716252dffd2c148fb4f28723cf7fdefdb8d2605c8c43ec2f7e1d130675f371ef46ddecea33ecc40a2def573c8817506e45f6faf9797ddf57fe4141d7ebddc41c76e6e39e67b9e578cfa6e3e3c3a03908587f3907f4d2071bbd9e61af9b986fa887ae68bc579832cceb72b6dbf42f1418133b57b31e6b890f44258d3108f1874cc33804061e010132c85f6cb090d57fc370d311ac4d025be5f68e9c663fefd995d0f72e10b7cd129339028a50b5fc418eecb2e47fdfbbed9bc2590b8e347d4b326c9a074f111415de02dff0289daf39500164238220858d090459321543431f283228e788208fe44160ec2e2cb8192cf092620216c35c8c125e38915dcbfb30726c6c8c20745aa9002264432d791219e40c1133f686330410c2300b1e4cb8115a0205c10164f50f104147a7f485be29e6409668004245418c20623900235c25dc171ab261cd724146ac25dc9022414911773202aa80b54bc1af231f739f18920831a680a1cf5c3f7dc0e32c1839ea1e1c784496754dbba941cdb77b24ea7937aeb6860a675fe99dc3a1aa8cd4ede9c66a3829e7f2bc4b61bdb6b52c7ed06a66ddda681baa647fdeded6ff902f52db6cd6c340eb3bf1f738890e5fe8fa92164b9f6958c74d4df0d7234d459bedb8cfdbbcddc97716a710c7d757b072139a4087652d319f59c7b071d1fb3f302b95a66185b826cb14e21c48350880349c1712dc0411125251d4c492595b17b0a9a02cb5905863f1f04043c5d36fd0bc65c3f7f8331765f4db9a8a9a53536e5661d0bd0d4d25f80960fc7f82620265f13453e269280a8c0842802153a40c2a90a4d44461441f235c104e80331f996c8d19a86df125c44110a45c171d1dda3478135e752baf41897c822091531c627e2d76f41d79748ee0de00ad4dba3e943f88223091270056a28700b1a6e392ca0a3f46d86cad8828e119492d261266d2449c3995134944158f9504212b49e5554b4195be00d3f1c11067e94281e65a7428385c50c26ac804a12bcaa70873db68d113e9d50bac0951890935a457a51b4042ce5298efc45832bed1d476a02cb3edd482279f3c6f5ed6f3652c21312356e94807764e9f83b4299f831caf8a194a45468481b1469b305f11e4b075f12221f8a043370dce348b38150d220a474e934082025384eea0c3404a3462bd8b7888c73043de88203f503f4a0deaebd0a385e4425f12607c6c41c0d7fa5e187e4d3d0090d3f258668efb074f11b604cd4fe72bb01b278763c2975779f3ea7bbbbcfbc64088c89930ae805cc74e9fe6eafd59c9ccf90e3e754a807f512221ef9a016e0a84142602d640efd968da595f4621645e0fb201260491a01de1247e2482ea44b2bc6eb772c7935429757458063fc8f713aa8088e9a158378b51b51514944c51bcfdac7d66694cb769cf4ead7bf3aaaabe6990677dff39728133f3483b5d7aaca5a63487a1587fd98c3f46d46be0713bf460d3ad6f7fe6e41e93a7fd2dd8717bce0052f785dbf5b503acf9f74d757ec770bc420063188410c7e30e6b87fcf832d2d28d87f3e9fcfe7f3f9ddb2427769944e463ee93e9e0eb26c1d4eb672028c24b630e20a98962db49041c3cf8a1b197b70495b5abc97991dc9aefe65f7b55744554a0f302625c7189ae62d79c8141df3a996db8d4bcfcfa609fb89844d777d0629a493529791629d99e708b278f6293d6099c3c4ba3d8b6827ed79b367f62fd74c1bd2d6afb986667d95b0eeeeeeeeeeeeeeeeeeeeeea89bc21fa75ab1704237dee94d5e1ab96ac5c26979303ff2d1bd1873dc3f942a19599fe5382d0d45a452c9643a9d6e6e501aa6345cb134841042082584104208a3a99583d362e1ac58aad5a7faa0c3b02e0e6e7132e7378c76c780349dee0d4671a9ff5aaae9a7f8ad538e8e7e92a393249d6489ca4496bff8a36e0a7f9c2ab258baba2c89ee0893b8284b27eb5235f2975608c763fd8a8bf872f839ef43deedd86ca4ca5019aa9041955d5508f87d67f88d0ff09bd3d400d4d334e42dbf6f017e6396df5c8ddf4f80dfde00ec8af5ac006c006c0c56c5c2f0fbe6dfb8fbcdfdefd7d7d337a4ef45e3f5b53d7d85f415d2d86b0cdb5863107be8218d7f7b3a7b9d71d9ca5fa6df0b7fb819dfed150dbd09f857fe4540de17cf9037e60e900d7065b83a94a7c857e45f5c80bc31c79237f735f27e8f00797b03c83ba475907f57f2bed8cb1b7302c89bfb00e4fd316495bc437ab67c45fe8521ef8b73de98ebf2e63edfdcbc80e32ff4e42bf2af0b795f4c236fcc710fcafb6770798728cb57e4df16f2be9885bc31b742dedca3e4fd9e8cbcbd95bfd4d027ef9087f3f6feb94ede9c56b393fc5e8c39ee7ffbed6db9456f27c9f857ba267ce26e1ee5c94c11a5222aa2222aa2a290969928bf17638efbf7bc1d9a32b3e52fb06567cbce969d2d3b5b76b6b4cbd0d3bdf474e9e9d2d3a5a74b4f5abe94a12cf9a190e7fd731cc6176569995af27bb15ac22af6254fef5af25aba57c7ffd25a7721cbbde2dfb8d2b1aa642880121954d91a49bb15260dbf2a78d003d0f0ab62889e3ec0974bf2398231d7378142257173e46484898892764f11e273a3b9f495ed25b5b478de3fc7e1f936a47f294270fc991202bcb31569a4fdb395ffbd1873dcbfe785fc9de42f33ee4b1ad92bb45f293c60bf7a1b991a894a20f07ce81bcd7cea49afbe27bd5068daed019cafd4e76aa534b26e2e808151b4b52a74a3e1a457ed461321cbd4ee3663030f21c021b8be427566350cdb68aab6d9a5691aa66d1bcd46a3d1cfb4281d4e8a423fd3b48d066f345706d176a3d1f6b30b5e515e1dfb347646560804f68fd275901babe9e5ac17d3228c22c628e59c935221586befcd02c3b02c1bc2b66d9d0e0b63fcf91821c6181fa27c4dbeaf89164d92a0254a1819880a4d4c4d4a4d464d8468f99a155e80209b30ef2ab47f840289fff542fb472d80f8b09a066491d7cc368351a280f76bfdd265a3a878d23d8b5fdfc68d35eff67dbaedb81ffd47a40fbb1df7b563ee8876dbb1ed883fb7990b84221a42adbeed229d3ce2fba34817687fa00289861f93151324f4c4999c3e3aa0b7f3f0809e3f8ba8f53131c448a9aa5841ac06d3112bf615d36e482d371d396ebef7e97dd7108a0b97a4e45fff9b83da94fb37a496fadeaff7ab2a0b2ea6e06f6db4fd6bfffa53faf573f2f9601928db8d98d2f7ea6a3e9b8e782fae34a7607f1fde90da7e26b50db7186a9c4aa8061c37e0d043071e484490481729374dbb2e0b1a7d5973dffee6767db9e9881f1322dadfdac772dcb70f377cdd48b3cb19a1d34eaa9353858eefc50f7406371df0ebcbfbd7efa8f7a5adbe1ed357760ac487d510b2f8fff0616fde7207b63be8083fbe9441151a6ae8032db2acc3de359c61d97f5eb8c67f7ad43e3cd2ab4fb37fe6f9c2b9df49725543a5f2d148499496f42164894fa5921be98244a2a412d7dcb3a9cd5cf8a1f2e6fabaddf7a7bee9f09f28e92991dea5a2e174a821a5a13fb354223d9923064db3bc919efc2b07aa638eccf117c9922c95cf0ac380670481cb5cd7e4bb5fb1c27b4f862a420008d100049817603415365c48e5608283c6e700950d29aa08fc0002a0d5047c80c30c96057a50010ec7c7120cb4d0d2c0143ab0007384f040b482c80729462823213e920c12113b289d948c88c2f4311dd1c1099f9280e2c67393e4095407e5440e525b4a0a273eed63925265aa2b9a5861ab58042622eb8aacb8050e702e4e1790452a69d95604e30631a7c61c214b88a8c887247a3485802c92e42425608c24a2244b368031d208136491358031f20864912f4fa016de92c50a578ca82428144a060a85ba99567bcd155064b868d6cb29a594525a6badb5566badb5d6de7befbdf7baae6b659bb9590dcd4218cd539ec49338e24638111abe0b015f9c04efeab2300ed77a99e389423e42a5be297292936826d54cf22baf1051178ca8568b063b08534478fb37450a5899eabdf68331ebf7e61b3f18b3323aadf776d1fab4700b6b5d2d7b73ee07633630f7de5d61e1d26aa5f06f05ff50fcc3fc73ff26adf6c2dcdddd7dce39e79c94524a29adb5d65aebbdf7de7bef9571f2c10508f907533e7221607421b79045b802bedc6857d2a43a9d4ea7d3e98442a15028144a2412894422d1c5f2bdf7e5baeee9c8e9743aa1e0e0e0e0e0e0e06032e2cdcdcd0d2a090a8542a14e74f049abbd3f4530e6122212894422d1754d5aedb5d65a6bedc90763d1462a954aa5523268f7005225857422491247347c69047cb121ab34e1dc16cee1443ff248215942a53ed5ea743a9d4ea7d36ca15028140a85b2015330e5163e41cbf7884422914824ba17c6ba3eabd56ab53a1d399d4e272c4d2693c9648a1e29c327ad28187393a05028140a75eff549ab5dad6aadb5d67af2c157d661060d762e11c7244b42481fa4103030f8710bf8a283539c9b8bc229ee7b95b772d6e9743a9d4ea7d96ab55a3a5c1b8d68f91b2a5eb5544bbfbb9528128944229108bbe1dff77ddff79d8e9c4ea7d3dde44aca38f1495b30c6befcd9c56ccdd66ccdd66c596bad4f5a4522914824a294524a29ce585edd7c73737373731359f10a0d2313299cd0137e4c02bec49b3965ea15e11147fa9267a2acd3e9743a9d4e3757689a37fee0bf6e2311b47c9796cf1ab1930fbe2118ed445997c62ec61cf76f73cc228cf9a42718538f9c4ea7d3e9547355d55aab4f7777779f73ce3927cefb8a44379b4c2693c9648a38110746a3414b11d5a049533c4123221150080da30f508886af01e832f05e8c39eedf8b386e8b80b7d85c176068f9d7105a7e96002d4584efc598e3fe639e2d8c05638a405994455994455994524aa94f777777bf355ff96693c964329968d062b414119671f21f8cd5128c992fbf12015faeab85bc3f9f1933b26ad7d29c7664473863d973cd1bdbccfa9b63a694524a69adb5d65aadb5d65a7befbdf7deebbaaeebba12a081c6c03156c3c8b0d2cdd0f0822f9e87efc995095c91dfb9eef6c1da8cd5aeaa956b75f3f61eb48cb9aa9280b7ad2a140a8542a1502291482412f917a38950b375a2ac12680c6c47f762ec76a4adae2a7fb97756d5acaa595594524a29a52ccaa22ccaa22c3b5bd7755dd7856118866118dcee0559ae6b2b9d309a7f17d23882e3db140d7239c502755330e726e298320f0cdb03ae4ca6a281182a9dded91b0840865d777636070440338f6b8185155064d4cef6c0ca03e0051768a4806c67ef3080154f0001884105867c3b3b88ce08105fce11a484e19fa6fd55c36af7b3db712ca7f080218dfb46a33df5a4e730d33fab95baf6d9d4bc6a557b6da3a1da671567f0eb4643b5f699d5ae4bd3a457b5cfae866197966598a66d34db775edb681c4689cdce0ed2e9b08d46cb343617c0c0da6f345ade6e5c0f6a1b4d8597f63664dc720a10b8e68dcc8fd8a6a1f7bd3a65978002a5962204d31aaacc5172c025432fcb5762378b687f6aa2d5a6ded044ed1b85a4fdef4613b58d7694142178e394486f8c85ad46d8a37294930ff6a8608ca5b9341e8db6af700acac40ecb4b1d969b3a2c3f75587ed361a13aac548795f2947c85757170cb53caf1945ce429f9a8e4248f4a9e503c2a7923c3a3429d7854afddf3a856235f712ccafb4958c6a38c47ee2bf795fbca7de5ee2bf7955bb76eddba75ebd65530663e4e394e394e394eb9e314b6f2421eb6d238e52bfe598a0deeb05625edd153b272254d2aedd2a31a69773ca21127de4c5f4d195bd24e6dc9736cb7714afbd7141bdb6d6ca5fd2b944149754e9a64584b7b8a10bcad29e5071cdf864c1101de765f6bf297f9fe79db9376933561ad784371561f4a3422954ca7508ed77a1c8e8557572533a1359d6e50290cdc8846a412bd41a5e22ab252a211a9643a95ae54b94aa5ba1d9a8d4c87a9e2d21a6802680ca581c2d097df2d302673794f86972618a37d7c082f073d027cc481315b0cbf5bbce7f005c0ef160f761cbef1468719bf5b2008a6401ad005f802e47eb7e88ff7faf3c1f0f336600cfe78618c8c156a48400c0d302f79b7b82060860318a025d45200961a2d0358f104108016151872f72d2fb8402305d4d2d2020b8e72b24287727272727272e2a493936ebb103abe7f1225fb938e7eada22aaaa22aaaa2fabba5d3fea4ab6fadb5d6dadf2d28ddf6279d7df9f7de1ba28fa8d46e97243154430300140013160000281008860322c1609aa639a22a1f14800d6f8a546a58389288c4491083680c116314000240440000640430180501b8b2935b6114a098675414a452b03a0b9e18d70fb96bb191ec9d658996b6ac4f2cdcff62544b18c96e63ef707a2f08fdd292ec19ac8f873cbc63be8814209b51034ae06241c526b0cdb929bad1e04c3fcd9d14c3b37b991eb48c14231864be600a5e8318863b747faa28fd6ba2c7e7af2ffde5e5727a549c939b7bddcf80af4b4ad1651a2923fde6e5e7de1224ff86fb9b72c63b59dcdb174d061a943ffce41816c6a4b6a9b1de67a4816b577a99a59aaec28750ff8664e90a2d272a119532cb9536eea7f1ee3708ce6cbb974a6c3a19f771dcc3db92048016d6a8b7d2121369baf5be992c75c92ed197f805774ddd359657e6e5be7dac1ad96acf34c28aa8ddd94bc303b5937f68d245d5e4bd4bf1d662a1c4ca3a04b10c0e2156ad21c412339458118626dab7504226e5866dcf88a8e1f34a713eb926820f1b9cf9e9b7047d5c8330c3e9cdb2dca264c4193530e1c74ef4345cb11d6f2d097e29d298f00bbfdccec39d34c4e5f4c801ae2fafd937f08dd11313aeb92b0dfbe3662b96c15cde2713f047a812088b894cae7289cba7489f0af661f348c53fa02adb2fc727c51e714a2fd6804445cc261434ae421641a0ecc2bdd68cccb6474389569747390d0ef146bdafc2acd2ef012a7e1a6eb8d936712fe9927870910590ff096634c566451bf876c2eddf0e97054565235918e76406fc905c1505561b4a4f24acc40935398376901b790c120e834be5133ccee9557670a21483f7f32921c69b2fe18920cb52c6849f29cd0f302caa57f29aa2cd7afbd472de7689000aaf96e533ac99914fd5801a27c4488ea7113da8cd7e4ba5a269a1dad664998e1c621c4cac2030a4517d2c41637d7516e4808d3088c80bba387fa411acec3b9c104ea30c4682d5252272838cdc86e04f72434187462e6aa0a10ba62759e681066bb84bd695034b8077bf6127c98689f3903548ff1eb375cbf6364df2c6668885e1a68999017ceb24abc9041cffb177020e08c98902c923c03485993a13a1efa1ad3cf5c50814f71e32e78cc03bb43d43932549a9d55d0f2b59a080a4c304b35e8dfacfee6cc04e0f570d34afd0fbb03ad0037eb06fd11f9339a999dbddda73ae7272be654a302d0a71cb419dc1544a543206258eb09d04d31a4cc2c9341cd030c58f2ed1e8be1c612897fbda7f1e6fe4fc721d967e06fa5fa38a5c246d17d83dd591f7c22456ddca2faca6d51b824194bcc87d188426d68bc50063b36e95515e2ee7a5dfe4c790bbcfafee7732482ad7eb4902aa68f9c963ab740d504ab092e2a1e46ddebf2f7f3db24c2b9c66bc7157ee1eb090a681c58f1eb5205804d11092be56d55bea4206e4b00790a6db9a7b1c153105229c71e4f2f283f8c491ed6c0f0b0c475f393c7030384ae713577df81156044bd152b3166b2582da72c8dc09a471e6a49330645ee331d591af04759014f2edaf9685f9eb6a3e6d57d0c7371054482adfb1ea77fcf65e0e93d93a00c80926d245369449b29975b2d11b654fab730a5bd973ca2133f3ff0f1a35e50800b0e5e98468a7891908d0dfb211d93bede1c003ac2e7f821effae34bbc3f12e86242a8758f6dfe12c2a625be165ee50ef158b1637cbd82c49fb3c0fd191fabf143405f141042448595c4a82324e694a804b3e3da92f426df221e07a6765ce34d78be2c23fbd1d6fee39907ce4d9070131f6b376e9c5ae0837a84f8b3d0add3f232568b5454a9263c919570156dcf1f276bf25d1283603c67e9a4df2872df3a704910634363de75eebd5cb23e4f9bfb2cccf3fc2464a7f67587b3fc79a278355b49615c609cc726e288fbc6a5f514e5096b9c1f3c88bd592734399a8139c59c2debcdc5891f826ba6361e97b533f160dbfc5362149fd2ddec85a04b82a4bb6c535ab6bbf7839ee0bfcf0394e564b61c46a2db0acd64093d51a68582d266f1af8de16514cd3d98e5c74c60cce3431f620e8ef99959d76beeb3b955632ec7b5991eb0230702673647503bbd22b541df854c61936c6c1f9527adc5bbf5a66f7f9701ea375450f8c7c1a6fa5418d6d3e8d74d2bc97b1599a4cbf1ba475356cd36c7935f556862ec3d2e532ac34ae87bee0eacf82ac7c852e5ae182bb1ef7f364fad7014a389d025935e6f97b82608c01a925d6f8a0c75cf9fbac785f916143e98434f166fd74e68a6137f8ec97139b4ede4d7e3e05d26b7d71673d3af7d553163bcc6dceeb8a72272f2502136332fdc031946690a86c4ada129c922f089722b0125c4a12fed7b559f6cb5e77274411b7e0e1d2cf1fc307c4124239805882dae83ea834757a3a256cd63adece2c12be68c900abc504a4ad2ac8deb20f5e562dd22a43ebe98921ea31561608a5ac52d341e312182f12f0af84788d1a3778d6fc744d9a67c23fa9fe4c518533dd0fb9d26191384f200f78ae6433d31a5a333740a4f7961a79f668897612e8d2c8c3603acf6ccd3041ad7293a687ef00ec0c7b41a12f074ec9913e8e9fdb956b722eecaf532e80500364104ac00c428981eb8dd7970a84ea85c6550700650fc0dc63fe8179dc01cb8f5ceadd4b664d85a7e26082255b0b6f628878017c714d4cc71bcfca28d3989665a63bf31a1cca06a28f96b0be8fbe6e30a61500f99c031c9e58f554725f18bf6cfdc83e62d9ed6fe6f347b25a08170c2573ab8ad77ce950323e4ebff112743cdb9ee9de7c46d69dd2cfc761921607aad3d4345d4018cf4828dd9c10070dcb0a0736c28cae7d545cdc9e7b5c8b9a35357fe7641fd63db71956f5c044886ff92582c82adb6737d2eb23b63ad0274db685ac2a2d59f641d9e06b5992bd50999cd16db1a79fb102cb5997fbe53106d04e7ce57a62c8941b62c96117442aadee7e7b3f7b45135156b41359d55235ba3a795fc1dc86a48cbafc482ce73ff694c59990ce516cf9691529fd754d5630c3f285c74e80519c575d02b0b63515a991ed13d3bb79cde84e864ace72334939368fe1c2cfc068c4383d2871c7c0ec65a7042b504979496bf4ada18f8d0be97aff1c38032bb00abc905694f33deffc4b04a0b6e3f3e963a03c8d467ad4041cf87749068c7d70cd39090f844cdbb2517bdc8d1021c09193458e0cf1d39193a51d39f06a51a4d96d9ddfeb704108696661330649adabf924718cababb11e716c53979b2bf65f3b1e21f54aeeea638faf2fb0f6db6f388775c3f2cc0d8cf6bde546963558e3ee0447376f4333728136ba2023a90e299805e0b8b0a0623542a268dce5c25d8e10b4750a9a6bd5acc434e6b0c699d742b14dda9d4daeda58b2d355313253f9c0c20219777360304f088ddd074460141a8bea90bec774eb548b37abc94a69059d5bad41aa49db72102b5f508c2ea6d2a685f3cd4574e1aca29bc7adbd0c5a9c51422a0318c2510a8e64ff4a6618cbf68ccd74944ee0795a16cd849e3658034fc82408bc832516d788845ec3218f764d15f6f35e637a6ace2692c00a071fb8b78dc50bc63eb489affb0823e4a341d4d8ca97797eeb400124e00bc1c6c80ae6457078742a71b672786251a6a875531aa0d5a3a0f4fe1ea797b7f0134a786f1b42f7c64745804b408dd86148be7d8ad0d6d44390e8cc94247b3ba5627c2eadfc94433e314ba32c7f4ccad0179837015e82542bfa911740f26daff0f92a9368e3d4682a3bd59d90075878f6a24a0629e140139358d0a5e629ac4178bfa6602bb0cd99c5e51f5c390e4e8a7173752ed37f668c980ee44959ed6b286fc8d3a9f56907980b33b47e31630fd25def6324cb01a37008983dcc1f20c71de13cea02847c5db3196b172e51ee01e998dbb615a940d3dda7e04319d6d0602d7115d8d2dc8e910aab471be9292164dcf95b655bf98450fd219ad3501d9300246deef30da25c5d2b51d292a8966bf55405d5927c289572561ca2126062a6b24fb00e955a66401cdb8cbd34fbeece68fdb2c1be7f5371854da80d3532bc004c82558f404091aeca805e7fa3288fa1a9463d3c2f38b863d5111691b66eb077241a5485a49eb184819cd7584dfb8f6371fe19b7841a4816c46a1da20e2c79afc0d5f11981fe20dfc8e3fd9f7b07fe2dbb47056fdfd941c4e8ead7d8dcba9423cc555e182077caaf220dd3f2f49a91a4de35116fcf596e0543e9802229a0f9507581201dca996a755135f9aadad3aa2c5fb13a66e90bd6be00969a2af6e77a36266e861a0f363593765f7f23b0d07f02c3c01cb805caa210c01661eefc7758f60e496b833fb2f6eb597845d42f8e1c4e5e30c90023e51e39c067a34cc388223650cc483752fae0d7f8f133d2a735a6634652ae4673401bd0e2cffbf2bee506ce2658739d40c8ef2e9db156a135e50621bd77d989678fad991b18d57f4b8d2c6bb4c6bb0986686af376f4726d77793612dd6f4c508ed0867a572c01cddde8c80bd1e5270664576484e6e5bff4841a739f70a30e5e7364e187bdd3755a978fffa7049cc994ec0004efc2502f5a44a9cd402f3a8340a0a738ec38c3605e9428f4e9a178050253501e931d610d0a06ec5e14f757485ea9ff9d1abee70d3f2cdb6887639a8ebc54f9b04fa880ce3aa88f5cb6ab1aa86ac462eaef03d2f33efef8ac5acbea9366ea2760de5310638340639cf4037810a20a38db16491b471fe4b79d1eda17697358fc20f4bd921e5d510325d47fdc3c4ecb1305e7b95bfec4eb21899f9f73699f9be0b938a31530735c152d729dbd1e2d0357eb6e924fcf999a21a577afa9abb278695e82a6b930758c8f64c08ab7f5da296031b82b0971c4930b476c8b84230e1a1cf1ca65845760e5084880e5d5957bf3d45457f5ce1a486c9a59d9b6493d30020b682ab96d1308d91a1e686f00e51ded26375fada91dbf0c5dd25d2f95008bb0ac619e4635811551ff251dc80535ba01a449f53fb9702eace8ac609ad0fa8e04d2c4472bbdcfaf4d53a4424daedb56a4bff8739c263e810326a4c4776c499c06457ecf3a515a414b7e48310bcafd156ec4624aaad277009e4d6f9f8384a8dac43346eab7cd81b25046040b94451911fa2213ad354d3a4e27e76b379f0fed979ee48bea59df3e7e6517d35d68ce1f88879a75e6a50669c1fc1c4b7fce5000d0b147eebb7638ac95671b613c385cb2d60e0073c405ca92ee4162fcccb5f4532aba7fad621976704a96930705c9bf77805f2dbeca71b996c3edac5dc724af3e0deb6a6829a6ed6ec97731d345f72fe09518d518fd6b8c3a585c73f0b7ba9aa2a56fd615d19adc6e66ab2d35062345dcc87a7228c1d28aa34d0451948b53a53ab6ea47a0efd84fb81f3fc9090b8850e40e601e41d87f1642f2af1e1fb9d78945fc91bf237cde3ed63129e79bd5b4410ec3be685b86bf994169284bb7e48b44e65c62fb1ba8fe97dde0d1ad45b5cf7ab3fd851852d9ec873c9a991bbb3e519066d0f108edde2da17cc9096e204c1c644675c2814d6d224014045f9e4614b350be902866238313459082eb4c752d0ab8b306e4f62daa81a890c4e07373ef0ce8ae720c5483b872ba0e672d9c270e26a64e7b791ccf3dc86d2ccfd1ecc14ba3cec519c71789d9dfdbc1555aee88355b0b40d3384e88bd7cc6f0318e34bc52f137c7157718bd290fec98f904900736d81b4ff3fb389ed7ef4804df1c5f7762113188986ab74fb802ca2934193d3e2a1048278f6cfe82a148f07200daf0b8774030a0d7808c1eb96ce18db254ae8eb2742057e696c2f4226c0999b56101a14f5fd21da08a4e07f20de41f9652bdad33e1343a1ae47453716701cc88e83fd609724ce2319193bb2ba129928ddab7292110083409189b98a272a5f9173ba0b1b9e60371db2793d9820737bf2c7e56bf4a62fb69196f73bcd9b392e5a4977ae5125fede1a1d00a7a44d24b541b831b728dbccdb6940e843111a2bdcc7d9c18c987f7b89891cd04f670fe303af0752a7bee1c655ac9bca4e0859f8289f57a0d9bd5ad116c5f3561d4b0997e466ac6dfd3d47ab212bef4cc36b403b6d47713d86424874a19ca11b7e1ae1f1d5d10c1ab8df55b8fced81ab944339f7ed889f3345eec2f78579278ee781790db847f723c8f58c0f29b351a0ec0e72a96834494b94e04d18a842f0939a0d6a36ad788008adecd5ee81a19184326be2195946934a4b09fd29c844f2b5ee846bedef700040b00478b6e27549b038828b38cef5aacfd6b9461a429ba3e943e4ea025cf2eea80c5eeb04a053156cf252b7c6a421f801468253a70ca5cb888b6887d2248b35240e11c1f4dbea8c1258bd3210d4ca5beb45d58c1f042a5de9d5473d05f1902ed9383dba997b29cc264f6d8c54ed6610f083fb37b74491f1e6b83f2ad63ae9e5c85232ee8d4d8272ac25daca99b8ed2d366a6ade6c6f3cee072d8772a0a03159471984b5683574167a8e9e466735904f8be3b0a8888faa8f37d9d53c660446cb596bf672881343469c4faec11340f5a5e575708def15f93a4f7fb960c793d38bc960814d71c908cda98f4fb542f21265fff6961b2b77a70b8251144794741e5ce884f2a7c3f26f1417359688827d38558af784e29340676f738d4b753e496f7b213a80f39b910082d756e9f7dedfb64f5e0b6607f3728eed42964d923c7cedb4aaf7e412f76f9c44e22a70d4defc9fca35a1d3d2c241a517914638514d1adced6978707d8aec77a0b56883e9bc2a68a186429b807dc6a5d43b6ca92d674c5c0a4f19b0837fe3e0c9ae2fb9cafab62ff2f6f92efb88c3d2e6abdc3dadb91d30f70603882f5f37f4152f6313c98248c8167de28c9e899ee32ac4c01f60aa806dcc6557bde7c90222c23e698e105ae3edc3d0e798ee35fd650f48646b178dcaf60c76739131e03bf79dca1ecb156e76341a4c58a6998b16ada792e78905cd05b3361e5659533ad547ea7956438129a158a2db4a523c932d4d133e93e43476063f865570dec50fd1730b1719cbbc1aea08e993da6f7e17e6bb9bf7833e815c4534b40d2de069f790275f56e2a5d0c8b9299ca6ef5d9342e304145a138aed156975d86c9c0d185dd401967ca5359f902f44eeb9e57e5e850bbe24eb5e0a7a03b6902a822ccf621d94e7bc44d6e3cde9fcdce1b1891464200c1dbc6c52f72344f5447006e1ae437fe8d27b52d35764e6a1f29d04d82f4d52c6b21e5d2092946d538ebc18c1a41a3f0811148150af970f804c5289dc0ffd32614a16502708a43dfaa06559f0d5ecbf457e9368f54e64c9c54ab47395493190a867be40f4ce3ca68e044dc88fa5135791fdf112ed3f49620ddf39e3304e9d21756807b74e92f4da165cf7a1efa02e0ae87a894fe62908e68244bd901287451efc8d2363672683943dac3895877b7a9ee194c779e53dad76ca42c01721a9d6e8ffd8260eae459ab829ddb94c59d3ca9e67ec1bcac1b29cb008e4647c78f9f533075fc8603fae73ee5e071eb9cbb8424eb278d2a4b06a0b2a394150d75515d951408a6cd44294895768ede0a409754db8692377c0750dfe87c4a0cb53c4d76a13963447f81196860a965527d2da6d61d76e000e75d151f17869e2a199423aec14e87d555c185fe827b2a4dac71750c2b0b400be505f6568a5863ca0f2b6bc416fa05ec538aa8063b85528da316fa2a8ea3836121943ba8fb900307b931a614d6e6cafd4ead4a7427848624e8a9de7350fc354062fc7e780521cbcf93431008fa39f205c2ab9f9b6f408cdd73e703889f46f127c1cba0ff40a5eaee21a04eab4af7221da76354fc12fd4b880ad28f4c4822a562201420d4d293e065dcb8546a3700d2d6edff4f9d8a3cb54ba080b9a22dd7ddc8ea918715c5ac12e06169fc36259ca669cbbb58e717d432ae95ae14ab19c24a8bae0919d764b7090d9ea63148b3ae1eac7eb8e4aba6059c9cd24684ee14341f23b57399ea0c5317728d5f77435d38c071f45ad50d153e4045763bdd303daeca4d554fb0345afd00525256b01dd0c4bd96b9cd760795335e8a081022ecf1d78e2e491629e655dca554b5dfad6eefa3ef1ee45e7aa78d217269e93d8c6cf217a5668d19f489b1f51666c1a488f35f61871522c99f71bfe035f21a9abcf53afa4811f27d99b646fcd0e5fe207d4425eff2352ae42aaeff362a9e9b8121880e6b5bec1b65ea12cb67e5ca4e686c426229d2254aad44fa5d69bdfb3813e95b7fdc69c108453a3b3a15a248cb331f900ae980f2822c6d5d1917d5a55c7670ed97f87af322bf57b29ed05947776016e2d2c3f22fa8be611d521732b9558ca1ed3897075c81f89756cb61aa6a85400151ac7ea92c037c5f5de43022a252e39dc21a250482a190b2d946927a38e06117f95c5306f734c8b0b7efbb403738c6bace37fd089189c61d7cf8324a6a07108c81dc49858d66f6c19b529cb82c650a89f948eac71cc0fe6592f24f752aa25b002c7ae74859cfff9d9160bc292129f627d305cddcebfe397bd14bf482ba9c56278869d3d4345b99833426660cd58b0c4a8952304d1e91861387d1584f1e2c6479b2509179bccec089cc7c66024b500b945f2890df45455b444b06563c17c8dd9012dcfd10ce3e825c1da14ca7080e1f1111c121006a31a43a0410376b65a778a6820192c6cc47e85e7574572514650c5a50c7a1de7446ca289cb87d0edfc277e02683235de381212a1679e79316e231eb2bed0624a2a92c2f0532e4ccb796c9df48863eb1141ea88d6e22d40740d2f535153319826959d4658a22bb901874f0743d1269a8b9c8832a68b81aac9801108fee695c172f5c5ddde72aca9cec8ec18214b5b0df8b866a91156d27ede32c6367fb61dbccbddb9dd27d6a3fb822d38593c2723f6f2ca44ebaae772212d86e7dc84c3155dc90260b24c26d0aa8d5c2229c14b9165025c279616de7d5e8cebabd3275c20bdc2977b937e3dea9fa14742d0d025f1e6f9a790481c4a933cf3dd3db40f3c94a5181d1545c74b3c734b5ef69eda9a9a1b30fb201fa4b9f4e1bf0980be6a4041eaf099c5e31f045ba75f003df6a9520a25cf303f5e6e918e07412da37b719d5d6d9f2c68c5f022d85be6d8547fb9e744540d75bdda81a6453f73312b532b260ed2f3bf198f0e0118afc0686daec710a18225009f5384d4b13085a64771d4c4398e1ed319d21347afb8a7a84d2f8a644692c80df6ab1cc2ffaefcb8374ad14ae513b3da4d994c7002d1c85c790887a0774a078d95632c9266b4c82283d18801b2228d5ac576fe942550ee9fce8c185211000ca06ed0d31cfd6d792ec28a6ccb3b2de0a2caa64911f4ca48d5ea0b4a7c1f9cd31cd990bacfb84767ed278ce5c45fdaba8671bdbb78010bde0c263e9e9e845ec140ed222b6a4f3cf48d2cfa53175d3195d0b0b1fb9002094b7a1d17239270cc55e1771cfc373658b409294d5f195be8e8968de38eccfa74d4fbd3bd270190ec6bba79c9af64d258d5f1bedb59e493ee4a602519c7ac0a91c44686a8c0bcde257278c95183415ec99f51bbe8545b1a1bd51e313ef5b8dd9205cb4e4927c73c7952fca105fcddc7a9bcec432bb744c3a993408ae4e16830207818df2a87e2d6fab70319bb052d221c4072a448116b2e653340ed97371e936000fa9cc0ca5510027037c9b86666f1b4b938ef3e0fdcac5bb95618291be1257871758001b2dc0055c22bbf49dc279a11d0e05f6e8c812f3b4def78492b29c010e03767e67b6aa671a114db11c739448a45f280acb09e9924963e9f3ce31aa465772499443e545afd3c1e4134cb3a5ebb8bd75e9b44b253e19ea626859be5479950df1023de528f44ea9912b0587307f441d4d59377169c0b068350151f780d53be78bc6b73e9c90b3279b6d6fad6abed65dd21f968bddc59bf5d0c93e1ea9933ceab3849cfe307a0bd901a5b459ca14954a8dd8e0a5a2a1c720f6a10e3c1ac8530bce6bd528410ec152b981deec47bc57c38a8d54b889c2250aeee1060131884360ab4ecb7d10394324ccc7753a2c62611d62c30a51bf16aad7203d8682f262647a23a7cd7b7db26291bf8a947d3fe490be72326944593c43928def31d0554c49cc8ce240b48ab136d5dc735c872cb48708af447f5f7394e488edaae3e253b54bbf4192b33414c4a0280645d186a281d1b23a203dd1b507acb8f134eaa32dfa3f02017c36cad74190ec0dc17a5863b457d0dbc8e5c1d5817c015c0d00bc7cc1f596cb767f8d7b53b9d5dfc01adbf6b883b74f1e413c83c90c802be4c7e1357bc5e2eb0bef26e330e2010242b3d51cbe5242a355029984cecbcf32493f48874a43716bb379bcaf5e84168f56397e3a892d89d14db75bd0b8ab8932212576346f55399447ff01042cda16e132c5330709a839331ff8806eef84082c08e152996d9a9de69806d5c38918f93d5aab5dbb922e0b8a2cf826a1fe04afa0f26c52b3afb534671e03e4cabde8d99bd4d242a1a00004b49b50b31a8dc5185290e3f5e1242c1b6de1444697773b27225a5619481b67e291761354754d6da30ed01db5a8d355dbc5b4b698f6f17416c5fc167f4fbf7e6b1b53c5fb55e6e33cc99a4285b37fdd5706e0cc3342073a7943950dba7d00b64c8826e3cd545d0f38fa53da8cc81fbdca0ab04c0fc078b14b897fb910ca0dcbb6fd8e401ec6c14ba507218fc1f02ab3cc9de44bda15c7ad62f340d40e8f372f6ade9723858883acb9afc4eb60a4a0522acb5e7eb29fd20a0e1743a03a9f69733c13e4a5cbdeb5285813215060f250aabe37dd954261bbdfd1d9cd88b174b6c505abafa34d261d22a7f947c4f5459111eb5db62e18f25c9592a5754b49eddedfd7a3910281356fcf0cb9688bb4d331c6ca6303f7fa8108bfb5dafc9d57f0bd679a8ea30dd66865fb384554c284a51f58992d3da2dc6cfa909b623d506e52f287701d89ba8095d4bab38846b604cf487fe607e540ac6cd30c1d17d736f1548c4c608373212b71dc963dc586d06d1a72ae0f5a11010f8f38b0203dc11b5573acda71298ac9b399704a231050fe29fa088645fc300ae8b4b8cf80295a4251fa325fe519f23024c1b2953d7abe8ae4af27ddc5cf7a4e626a3a15235ada78d4c0dc5800b5eb4db3d592ecc9e3005d3aaa34fc0964b847e3dbf32ad872e6d7239a4082f6146a0e205fdfb8e7d2a85bda4c7dec9c10644e5bc349b407b7cf152951054b610822d6cdcc3a3f93a3c3e4f1b7c5a1e94f1e1e41964060c1ba5f3fe9e449bf30cf8cc911bdc5ea9161adff801f64f37cee571dfcc235109dbf2f061a6949a635bd9a5a9609f961e2f2b55217a1a87d00cf4455dc8d7502275f1970e66453cfe45639f99d120cbeed50cfb10c6bf5a0a8dc05ae195abf5187c16ddc889b71636ea7b8e91eea3b72050b4d46d3070a811307b9917ffa0478c0c0d95cbc44dd050a9dcc5c79392800d701c7b8e53b3b1dc2872e331777a38a52b14ead0fffc48b8b659d7fba97f152108d80867a1f2e8a47508ae2fea00bcc84af8fe55081abde8fc3f13019050afcd3adb290fb56b954ec5776e1db782c80c45686d35dc315a92977e10cc57e5c1a0f7890989c4eb75f4d8da35cbc352bbaf07cfc6af093a575a1ee101ce9a0af8f6383af1ea43f44b9c9955c846d97fcdd13401d01cb9191293b77e2a82871226e7ea92aca5b3ea20d64faf5b59d3f0bee2d2c1885c4bc68d36a9a800fe4a8d4402cd3270c4f754cd38d110af840af80a6d182e199e6bb1aadd1c866ceedf7bc2e8166bca2c8578e645098ee7a843623c14a744879e5fff2171fc08644628d02cf331e735e9720d18538e00c831a1b73136dd45b8399bb57f7d535c742c695b66286584f55807ee08f0097cf3c9090b453d5f1c9a21c3609d2e483aaa6b51952f9b9ae3be5430118b09cc1081ac75dccd144a9e50f8837137f07f2d98c0757e09136b7ab2f06853a37a7fce7a6349966f7ae1f39e1c3d1999405939904a5d64538e92f7d62284218dfa766f910e9a128c37ae643fd851c3a005f74396121b18098b2653e01dfd165ed2569c7d1679530ea575a6ecd47a70472b19a0460c47e57f903a3d2670b0ebe7a901d6d43a1a4857679a42f0aff0c51905b72f68ccdc6934de3cf2554b0f5045aa603f015522a158bfdad225d7bc2dc8b52271777855b9457b20bc1cbbb763565dc0a9055e572866ae2b2a01e0b246b882ee92ff459d929b32e430e4324eb2331f0bf927e489de282639d8c5752610baf597d6414610a96f59e465697b4003857313d4a5a3ce151d069ba17f9c44bbb349ee41ca853767adcd6ba3cde0579f76560cbe7303a8912e321ebab312524009b165450cb4b3e7eba4a7ca19d548cb09232446cc68df41548390fae45991231d078de707388249698b5a8e7f54540b7894e8ae173f1ed7d786eb2d81c0849c06af2d2a35d4d691c65499d51ad16735d9d8e66db88366ab15d72b26d948b9ae50ac41f680ff61780064006cce98f60f70c8aba881950dfd6de0d5fa03d855caab097f59738ea4976ad7344382dd37ce82146b7d4a78e611b4a39717e1a064ca9615b231ed32e5b01d80ae0685bf4719ba23249c81477fc559247672ac49b61b34a27067eb0d452b61422f3ae1bf77aa7b42d8de02dab2f1865afbc943c893782822bfa67f9d8f416e8621dbbdaefcfa43138dea3a45d06333cdf44bdf573fbe66359381db6bb5518e7548b5d01b4eda74c1d6b233a2d0047aa715ab40a309c00606d5364bce6b8b23163c953610da36171dced34bb58ca390c58baefa068364e66dcc88df569146378633a5d404608a8ab5d7f591c29c210b9cc554c21877c02d917a8c2bcbfe59b6e69322ce67fb181ce083414dfa56af112678c348261afd39c8272c40e8e124dac519d7f21ca8660d24c32695da0ed4301cd57bccff34cef4545750091b1d08f8b930023e7f449a8020415bb4a526e7a17f4f55e43711d60e30da0e83bfb43995b6a24e9748f4214b13bc7552b47ae0f76a48600dad9289d7c9469867fb3f58b86c46b5c96d4890fa728086604ebe03e851989f012881cefdf2c0665f41efc5d1aa7651be78c077916d1753397d3626961ec85b1c76796f6c9a9ef4056ce294a2e0b6ee07bccf271b1516d86f5b33244b46c587334e57545161ac67c305bf34015c86527c4e21c3fb2d44351cda5684110566bf72166851d028189f276dc64270af9514715b8530b60b36d33048404878d9c56af17b243337c1a17d45e3eb7b83c494cbcdb0d9210efabcc5005b50edb853847ae3251361d89b66c542cf79217e7c0042e08a4147034d4e83480a916d15e686cefdc0691313b49343fa083bbf8129a184639ae037a75e200c632d2776aa3986b64ad077f18d89344f2c4927b01228728284f3caef858f62cf7fe2ca73fa929e8eecce9d8c512404c75d032b8e8e5d5d89cf27f2d67bde1f748ec854483060c60c7f95255a5da00ca0e77d026239c26d10ef055f1b9469baa67ea675cf2af359b97376d4e6530e717e5a7f50ba7a0b414c2be2b0dd9dcffb6e064d6fd09242998d48a3818edfd1579844a8e6f90490ce6ea220a675bfbbcc563f02300197d4b668853c6ac9a35d6f21d546f9d065e1016d6aca19475607deb38d0c2b8b070cdbaac03ea7ac7c856431810ac798320634e327e25cf6ddd3324a0b9d46406f874809469cee2bdb21a712cd3878e751463b51c12a2bf152de95dc5d09dd485a42ac0aac1bb89e29eaf0e1a76df6d8047acfa21656610b5347bdeb76e2c756744bf444d2797f23a6bf4eb188b020eed71ba87c009900ebab1dc364af103b2fd5687be36b0eb1441d8600a55b4bb600f55dc8c5d4908b321c008ed817c84302c7654fe2aeb4c44d8909253dddb457a2622a0fc55d612b6d700cfb197bf8bb2cca1465833eb3e2af6cd4267370db5d2e7fcb4d9e7b48d66a29b61b29df95f86c27b48555d3f607337ae007d9145388fa45b3d6d61f7b0cfb08e066e9a3bae105d0cfa1fac0c34bde32454ec037c9b84c86787dd8a908bf47d4ecc1352c01582e57216c1482b9249c9547fced42f4e6f1b0eb157ae92aca29919a8b344229f76ac5abd16e811dc2f2e676e7d79f5e32ac2020398ca521b5d1389b2b3e1687ca4752ae0a951c389d7f91219c3d30c822a0d19f0f2b2b09736e9d5b242f9091777e6c3648b9ee3e14ded94e673a44d57f83f28654df0259daf57094ca0f1b7900855bae439f16848468e3d0c554c80d4061ebd48dc233d14c9deca9a266a573129a90353a015144300247a1a1961e3593c8758158605559a26a3db8812e8317d4ecee7537601de31528f0d5dffd9a6ad6af139ed6064b6ac3a19214b0283b87890c503e6821564ad08a6a5f638d67a628e42f7faef00534a2d62e5dae1f63328f3b6ae6b5844538a960442df15bab7ea9d731e20452835633d6a94ccdfb0ef2d7d2555f5224fc2b5b28376591ca0d60e6e4a4feb544d11924ae4b8130ce0bbea47e64bd7852b7aa5f4763aa6a72f0c3a2d43a04ded6ca3fc1cde2376896b5ee9e36d328eca74f3fcd9a9ce4bd92668690e879d6a48b28bc0b037c004a5a5749ff5037fe3bb4e7d387f1d3a29b20d1b20cc0998c8c3bc901e5dea8490de551f165d2d888db4b9cac9bc14d853693da52a588ede37751a877854b0814d09884e9a1e821d88fe4a9369fda302d7aeb6286a08734e77d1f3b47fc3fad29dd3b37c7111bd3131c0a7eeff1893ed00852b3f48dc754a386dd863f80eb2894ec21f8597323977d5e4efebfc5a7f8fb6d7f5e85bb8b0734072bc35f151d8dff16f5e60d7fb0f73a70a771d42411ae6f000f4f0a02022336d7501ae24e405a1d94ca14faecd9529c8ac1178e5149403d1578d65f57aeea6aeeb24f09999745ac7c85b8acca6a14372a2ccfe38bf7b2337deb6404dcbc235cc9a462b328ba13dc80bdb6b63ec45a5c83f11f4188264c95a57693cd3b0757425afc24a47996264d681e26940b34acf964662667b436b155b6ee9e6e2101a5601b68bbcca5174267e30331e8f62fff2364de0ebe8ba8330b7de4fc443d6c278d2e99d3f784e8076d28ce65c8c3acd00bd96b0fde1eada652e99cba830007d8cf14a78c8a4f653894513882afba88bd1526e873f73c94c4b0a5d1df615a0d14ff0612fd3d0bac14c4858179830f83596de989ede088055ed45501d5d0c239e27aa1971774ca0c2af8a9f54890c888587eae6aab7cdf44801443be6b5ade03554fa797c50c32f9a5f24801d28acb2dee21e0920725338a542baf9b779ab0c59f6cb91e652dc3fe03e50d43d49cfe0f364760590a1a8f2a4252c57631b3dedab0790135be781dd592723d933670aeea084c806091c2a46e54d1636ca0bff1b27fef158534d5d4bd4fa476e4f3d8503e6a61eb98a72a83313284573fc25d0c9c9ed906dc9e177251a6433d15d53b918b6ccfc67dde221acde358d88725ac384944e4b7c69ce84fec073e37e704418b0c8bc0b544375f23c4a47a9f44f633287a324acfa53b4e3c1e773ac0f0781456099124b1967f446c08c085737fc29de9d0d0bd19308b3c1dc3af26359deea17b91241b5aa6f81bc080ac9daff6b6503ed111e2586d2b89f57e0d0b84f4b3ab5e09172f5a45c24af129c172a97d5ee80b9b116c4eafb82bf2b4295c9e95fa3a35285ee6215751e04c7971d01796ca29625736517494bbebe44cb0630001952bc08d5369481475562ea14e0d10470efe601ccba8b64e00d8cf3da27eed162a8edd4c275e72c1ec24f599038ec39e79eba331d87b6661b8b4e65c2cda2c1316f97ce66068f813c2d41971efe1e9d4d3eab24e1e21cef8c09bcba0e250f71dded47bbdfaabe82321ae6bb5172ec9435abeeba8db46bf4dc93393e112f955142ea85ed7f77b8991c7c67114fdc484dcada16e584fc3bf610dc26cc962fbad8fcfa28ca2804981bdea9ec6235767dbb0e5ef12a268513e214cb793525382536bfe4c24c6dd5ac5c5a2d89db413c87450d0c8442953ed40574b12457e794a60bee336740bfe93b90dc6f0c4e0fbf9488028dd43e24568c9c6f30d925213cba02d9930f08e4f840fb1a87016de3d12cdd57c04ee8db1549625fd1c4c94080512831cbcc062302ce5d34524f298bb8237cca1cbb3dfcbc0ada7e7286985e45310169217813e5ac2ec3a0a086eff738540c34d21bf689538f4406ae31a3d58d1cf23ae0c40561325f8f2246123338403156ea237f3fe58751a044e8074bcc07a88909bfb6d58f7adf3681249e9e083b549e2b576a2f828845e0d24fc248dcb7861c685e8e376782069aa3313efe597ca6b9d831cd2c929bfa483695592bda123fa582caac07c123de39e686e5074e28a2066023a79dc9cfa178b18e512c3b8ab68e76dba277d6abefdaa0d08e2a63a1bcc6c1c571bf39b380eaee26e80f718b4632db449591965bfeea7e2679871176786386fa7c42aa333a8fb413f9e84c4efb625c8e6fe9d35a85ac46af99e337c7798546ac22995141ec1b833e7e4f208ea4dcf03029b2965dd7e2037cd98f239f71e890648fcdd118d75e614c313c0e5e609b2592d50e7f1484aa8e130bee0ea0b7448234dba773b15815a9e82f4231cc4e4cd736796890b1ac628c9d1036699c689938eee694ae16dd132d3a4c2c0168e80ece61d33ffa0d82733ea06478e5085f7c87f5eb47ccba9011b05bc132ece5b9ab8c7bd106ca769fb91f581745f6017cfd7a4bb2921a56751837660e192bd4c7407f6962d69f731c39d88e17beebbffbfaf5f9846ddeca9cc5bac43036a3050fdbddb7d3f76d1f6dd7fe1f5c2940e189b1d35dcc2708baeec122e2b0aadce79abfceadef858ded6fc3883f77133f84122651a00f7b6a9b6fc5e5b127270dbd76dd5ed00a95f906c400a08dc58f15aa71e6b51c77e507f44290714c4db8f6a7eb88e17f87861c9d83b8186698c937f4224c4d29e4246eae1512b3aa2e201c0ceace12769d769d71bb62febf11c2362af58e87defb4f2c0cf5b5cdad1f30be3bb637783717f38aff0d25cbcb1beae0dab718f99f954ef9b9ae4a04fec85c73777a42ed2a90929fcbeaf69399b7eb120a85a47c00b214ba78bf9ab10273530d781c0064c7bd7c8eb70616e8c7affda2fbfd7f7644f66fc5fe7f799585b75a62b08eeafa4f8edcc76f3de33e380853687d467a74d38c6dc7714f15b12ee675dc5affaf872813938955d711f8308e09864942e2fd2f6121941ad227567f804f2362a1e8a17de016cb04445297777bfc2eceef7622408a81f5d6d8b01aef73fa97819240e90d80f01beb4a43d7a5887a1f3a974260bd8f3beadbeb4d09bac7258e9b3beb50a4bb4b972e994a8216bf644d4c7c63e90dd03b6c5fe70d9b9d38e2e5d09f7776f97446087ad95bf999380935de9add302b08c68487bb31dd6445066fcc9e84df98330ffa13e5c83d667d2ce7305a3ac5cac47dd4654811d661551884c6090b8a902b13fc8e044c37ab40bd08923ca0ad1b1235cb122ff84e5b54dd1669716bd2e00d12c535630f3a7276844e96708ce1b846d96ef112aa00d89d31975ba3454e386da3642ca1a732e46195d1da0b8e46badf475155e6ce8af436e6d51463be0a43ce8e7d629e89204af9b03c2907bdf74c78708b916f35dee070fcc9b945c3fe1ad75399cae361e2c03b25e58855856423da2974b9c3c0842d81b61ec057fc2d2462fbd2258610768ecebbe6464c78b9177b928148e496b84b542ead516fe00667c8ceb0226695a9edbb2f13176c1d1605895e5cd7a04de012cf640a247150dcbd464a1afb67730bf3de0b32b827fc1b681fd6f2fc46df2e210eeec892652c46ba4300bc3f63910bf7648efbb5fdcba0f4ca5da0cbfbddfedca95262e4a8c06a32038f35b084c3428a3ca055c18c0058c20b5bdba9448fb76c914b615a96e17c96b63f75e4f574f6ae0784a42e6583fbfa292feb0e8ab91856af2843b01c405c8f189ca71466448fab481a62daf4a1c7041bc2b28418c4d55f6ff2ca31e94205446303cfbf695549389a92d84f11c578a146d6388d2c4dbbc1a662e8b9969938c5f3ed3a63f41683a30e6e487a3fd2a88c23533b14e4ab98a3390f01413ee76a3cb472bace30aa1f760c96e85543ee002e585fd87115f1c7ec357eb7b76b8f03d27f9666b7ae766140c6d4950eed40fc80e531a4f221d49c13fa2c5d4933e2c5326ff40c9d4bfd583f7ecf4de8e94ac158bdad006dd9c2d5826f61b3ff5ec5fd30bf52ffda3dd26c1519df8d9ce528dec1d8a8edcc257d2cb149301aa669094a0f7d981d9eb9dd3f71ff801aa6711df2efbc7d1efc902763e61ae8391dfb3dfd910ef1bed27f517d3cf2a37ed44143455544939ab69979c363a5456b308ea3eea3792cafcb133a38623619114e207aea126e451fed4de103cd1c59b52ad46c3a64a66c94e1c84b5222bc5eb2907142b18079fc730ce9f29866e956d0f7b012fb1a7b6e183ee5406e5efde5b3ea54280bff65cd013224c059d61ef4c0c2559150a1e35f3d980e4f82e6ea65c32ff3b64334ca5fd93d06508c1cc049280f746cd2065b64c03c513b937d1b751feff8bd2b93ee8de12851a1cc086470967f4a1b3da2152c783590e21390fab330b1a0d6e11dc3dca9de5e9bf151167ccefbd57c1925e12077e2ac2f2a7a090b24a4c363dfe7fddbd7978e1483520c19ee09495b5972dbc397aec4f1cf8c05662c87ead5b4934987e4cc6109649c03f4623c8fbc5ef29382bbd0fa0e63ba39393f0132435492fdf7e17ab52116e54721aae96ac930692755ef9bfe05cdcc98a8d753244548dfe5fd88204d2f04148615f94d7132ff9e2ce88b3d5d8db73b7c95dcd956d1dc4d83ea65073194a9ec82fa778729b0e8e0e2401db88fb85a86198f16a53a01ed2a8e4f10d19d51622ce1a71ccfd00a3ebec0d2ead09311b7df06772cad4f271fc3bef5b05c13e2b93074503ed5a955d1c7c4a8f448a4ae8a1258d05dba2c58451a4e1ef3296421e85c7de5e86eb42a2896bca3da7f9eb258b8f648855a9cbd167fe464e632e546733d91a784330f94be1f452aa7c29eb7006268ba6171be7ebbf3fa869aec67604ed3a4757a2eba1a57dc0b3ff26304ca276c52197f18308c773c032fb601903dcd003bef629eee2ec0d1d31719bac42071f57c4c97e82a6f651ab4f829381c2c698c7a10ed629e8b8c9f06f0d09e835a71875ba3fef25c57157cf5d8e98ae5ee69eca3e74e12ed899627e1c1036699a0c686d688f44a2a45de0eeb4a4e25fc557bd99bb3261cf0cbbafbcb93c5793c924ef2fbf297b519e768e4bd1e58dcea9150cedeb625fa93c8fa82114ab97e470dd19cfbb3f68d5da12560107ac1c4b9c70d72a4eb8d11e112a18f9cb141fa8e5108545e73d004b56260cd5264f20c5b71a517eace05a9db7af051e6eedcc6303330e05a45159c3143e952b9279d582fc7c9c334856c5fca0119ceedbe5e38f324c12854b33fff7c09b8b281aa3cd6ee6eda174b7ead099757282d24c0b87f6e434a6ac946ab583741f350a382e681fd7dad35afdc9e829ea50fbff638008cc4dcad550c46e83c36eecce6917f4393ad671cfee03a976596a4f0e7e7b93f1262927e7f8dd8e0c71a961b69a387fc00eb5b1e35ed422a4f974a95be6148463f26c19aec5d959800e89e1f5a27ed7452b9736d7c89c0945e8bb6c378cffe7f1f58836b8c9e9a7c043ae024171f14ef27bd47859373eed0334983a2365199c567080009436eb9dd6ea5f0428a4c4e5db683cf92ac86f0aca11c71c026e09e4c92e348681a714b5d974f00f10636f689b0c141e1f188959109534031631e098a02fac1516a46493264a138483001a1272d165c0ae52a6e44f9ae8112b9ceda027fb93a232ea42c46b580aa8bdf084f7e50ddae41414c5707dcf8463c3dd2396e0c8d783c65ce1d7b87a5599ce4c230564b8b34a7994490af7577e1f48151bc0c862676248d242460ce75c1741d6022832a3d6cb34b5d5dab51bc41581d7f554930006cb4987eaa56ff4288a2361cf909066dc928488b11d47ce29f2ec52df659aae58ba9c93ce910522a5d6a4daf3d6f82049df8e4e322d99f25767cd9686eaf9d2ad7c6261398290c20fc64f171da5e83220668f1715c09368570a12a8b35e01f39e8591cbe815bd9ca3e852579da56bea1af22bd196a433b83d0bb837506f08cc8c8a5f99241de3637043acd355255d93b57d7a0bdbd79dbf56c4d76363dfd42a6cce1b3643c2a1369c6562197fc4f3ea33f246576e1e0929aa38da16d8fab881516a3e6f23448128c84c1e618ddaee01c5711ad8675b30056a5b3146a8695e7e7c565d656e03dffd66b286462c6f2ce7dc13e1e8cd8d7d3ca79f2786210ebf5e2db9d71635a74cd3af8938659146530e4f9cbb7c3aaf8afbc52059ac2039013878541eb9894ca35804c5fa0e87c550a48776b422e207d78923007e959818871b7b2323f99b9205836f3c29e0ec753affcf831272f2a65cce9a04e085b041c5268ed7226080e7fd90b1f7a3e82e7bbae24ea1e4cb163d1015905bfbed36e3674883341dbe22bdbf29d7ef7b95a42ad63b84b71729746477933c95bb52feac84506995a0b88e47e4afcae66ad49b712ce3a9e512469d9e614245ae62434127789f7744861874e20872050fbf949c60d3aea5823d5a53a76bd9459d86a100f305d90456f5e505a7a19346866a1280622409e0429fb3202c9dc65f40c1d5ee11c8acc52c13766b28e2ddc2b0a7fd68cae3363136f2faf9d8b6bc76473082e6f606463d21742a935c1c540b7d02746c4640d2dc15eba963826bb5c6e199713849464299e70db4147ef8605ebc5823059b242821ebc3ef9c10330bd2864b1821b351bb81af060bbbb186dcbb1882e0fc938316754c36b8e11292b5d641bb91b784b7108c83183760f4e74191ca097d8ea062e65071fa7aab4699c727149531e2f42f74b39c2ac0d0ef747d23291613f6bc9e8b5e20e7b2f18eeaab005d843a1eff1782bac48da841670938d045df3a7942c5162fdf4f2b6f80ba6c65dab20ea26170390563fa4bc48dd3c9f0ee14a7dd356128c9a55305a60dce4fcea95d841cf78c126509ae3fbafe9493f5951898762ebcb94cb1a8785c49f22863745741403def0d9dcc86e18117e548dc6baf8e14601f63ce92e5870e529f33652355def93f7bf3696b37936dbca80194fa61866c1e7eaa47057095a4a387cafd1212fa79ebfb15b3262451f6d74badaad823722bc51486ab74714c5b856d9ad6939785b0296b86946b5601a05f45722caa778b65a5701a6f78d5ca2cd26b87391cace01fa3fd17f1f9031d0c17ef706cc66ffefe7f7486a761984fce0a984b75bf6db86f9b8d6b0f36ca8e192e97a853fbd6c48a8e1d5f9d23d03da2100a636bc205957aa80259d1da33465a60be9c09b4bd5aa6bfec513c6e112f7b8970fd83ef0a7cc5729c637f3b0af22a2e118e35ca8fbc274ec70c5fba7e4f71c571d4e11c19a7bbd9375e581b598735fc8fb6934e1f953cb78ac6984529c77c955eaf359820dcba5c3031a88141e338f7f81962828dd58204cb8bcab9b058aa76f234f3488824eaf54435b404244cb6df0c31b28820dc8307bca46e321817b8e5bf0da6f36d08a3ff54f85af98293cc784f2a70893ed945c5fd24ec83d5db7346a05df76b83ccd9d5c9ed57b78ebd01938c923fa63233c58e34153026f09b65d3bdd2c2a6e92b24a6ba9571caebab33925352ccca18bfdc904b11416924f7b8545fccb7be4b570a56e3228c41283238a6da5e1f2453a2706538f64bc723ca12d3d62c8c08ed223bcfc758c00c64c0d302fe76084b6358cadc38dbe4b9d998707b4b56acb70b37574242f602d7f269361e87c40ee8409e579b19ab948397c6d398b62bdcaee159f293f771a0720bd2655d50c67c292e8d0674a127afd07641652b26aa1461ecf927a3152b418a066038dffd2e9bf3d7854420dc1e9a23040fc4fc1d81f2c55c51609fd5cda0c8d4aec9489f640902585816176acd564ddc6b80e5424bff2ac339853d5059ee026f0e0d719d405b2935108389fe46104efcac2490ffaa742d473512fbcca325b3319e1f98eb3eab868a7a8606de71bb59db82351c2eb179bec0d604193ace31dac48253b90e7333bec911a83357f52a5984bf38867ea69de4d2755afa09a6dacfd96a2bc5123bc662af22144ef8477e7e015d32caae045955df4dc8d3f26794c1b88fa649375ebc1f2cab2c1cf5a36105cd254b0792ad8e4874bf974ceb04e2888ac03bf3ee76d37b586169faa939654e293010b94aad986c4ebec8e47845015a41e28879a89b52ca6cecfb8215597464fddc096ee0e2fea60cc4f52020b56378fd898aa8b36478f4781b512565d3f46e8bd0b094c39e355ff21e5524e11cde4c42d1d2bd802d2a0e6caa2cbf1d9a7e2dbc980e88e8259d2de50a7d510f887b62db722771ae051569448da7072397b567613e68b1183c3aa42cb38f60e476352b1b458cbc74764dd7a64da2c56cd44f0e4fed76043daae3a87483751106a05d1cbf010116841f79e5838144f713c0f6191d2de376b6b89f91f4990f9233021fb542ea78c660f0e6026177a969010182a54a96b207b04104fa9892dc488a097adc65ce1da2ba21a4403d0eee579315ffd88658aef34b73724c4e03b23bb22743f2fffc0d827614042d11ea35bcabf3a32c3afe568503ea01a3a2e7552801195d39213e1c642b4b23c70720332dd9eec7eee08aa6cae79a88502818f782f285740824a685c8fa34f08e1368ae4a3e6e2601c293b17f5599b2ce826503b5d737012367245582b045c4936d81549826253e1a9b6aabd58ab226b23e7802124a9a9823e409c9142cde16f48206661a97acd04647ac6db6e10964ca9da7ab6784e16e0801f9b45694a5731057070aada6fd414c3a07f7b400f5b7d724d9208755794804c724c321942adb6b9262ac1ddee91e849600ee3959c660fb6c1e228fdcfc543163e59d3ff671d7c09072ae630f06dd106eb83ca2d4484498ac4167343db829e9db12003d093866a0a350005592d575f6b3717bb818aedcd756a9b73e77abdc3e5bbb3f1f1942517af3447c24a6b90968934833f9442927a157c5fdd09bf3a40992971960c7805e93b656e9d78aa4894ce663c6adeea73af3f79447a51442a5f70680c3b0b7a1b09abb3b0a6121e8e8f7ed8037c1104ca932a73073ecdf6217f038d3a1391ed750e74a1bad8d96a4874b3254741ae0ef3edd35467dae3dec20e26a9a8e02254a6c4b739ea73761a464389bb244681051635ea862990ee6f516c713e539253c951fe394174c30e8a294a49be673d657a4fd4657277931b58e515a994a1a8b991eaeffa6751b5e7f42f89c644fa9067d71f3ad435023002bfed92bc6af2de5f6b1ac3e63ce5c226919540d3d53e487c29ec811327b9ddad96c2f0706b4f65a8028e63713d0d1da3c058bbd100fe01e39fa71f0c22278ca5460486bb705a1e77736268ae1fc68b7747e8d5fd127207594cb294eaae6a8cee9683d0babbe02492f71e8a795485f836b94d57940805291e612ca8d9f88c1f9eb5308cf01876b574577f90526be4565f4e4dcda73b6232deeadc53eaffc05a2b30a4a8103b655da00ceb526a0b4a21f0bd63421eac856f4e1f99f609d45c43a4c78045337b7a52dcb322e08e8810d19f09f969d7260a8e0dd731fe8e7191a118b5b50aed28dcabde0f140b4df449d8fb6847281a4c971b7b1234b90187ee6c165db11c730091e6745c969c66721015cc0616a44798f5211c886ef56dc9ecef9dcd10c3630fb3d00592c1d4634bf76dad52d1247d5ce4d1e8eb6db1df1d5ac492bf6f38a4a8565ebc918e00cc928b1db275e2bced9a173562ea336f304695f767eb27d63167377423133f7dad480be22e81ca91b95425b40d2c5eea57941a7326b0fddca94f5e0c079c600313e3ca9425c10671a798349236135b505e8d8025894026a864980573a93dfac1daf70748b38eb0297f5854d003323d5cbd5b1729401035e7e29098007d18a1cf16dc9676e1835d106ff3638621b072e7ca5e231382e8bcb2d3df044fb8b94face986b770351558d3340d4bd4f47207d05a3492e94b9098373049cd0aa54a94b254127c6ff5af440e30a0432d4b8edd51f0bb7a39c9eb7979fd7c6ada37f629fbdeaa4ebbff44c714837b40d016f90aedb789f8263b6c3076431d262e7f452e566c0a0b68cdc5c7d2b2676c5d920577a524030c9f0c64fcff52b264c9f2e9fcb979ed09cf0451fb543ee3fc185c09a19a6e662e60cf982e41f1ff47ead6c45f661d1c542b33372c03506071269b9c19e7560e93af690ceeea83a4d40ec8647312332f1c8aa7993da4461f28bd589c82deb66eb107ee0e68b87b312a40e3aa5d359131835f104ff5a6bf69de2158c149d337108c4a34d734805b880b8040571554853a91c4f8b39bd3f32841d708529b0e036617d7459d55005d8f2a89b95017e3a4da812748e5cc334382913047daae0bb6e6da1cf06307b49e79b54a551f7206ea5b07a7393a883b2b5454654392437db9abf09a746fc2235e3f1cbad4d582009c581c37635ce1eb5a73344e0672907a21f92131935b337625099a73b4b19b238735b771531c91718be21c918468b65b859700e8093c44c3cb0377708eb0dd9cb123e7e2b069803909f2af5c56019a0c7be49d8c2bdfa2586ccb4a3abe01f8744f5d1337b02e5dd44bf880c580e3dfbc47564ea620d9cd183a3e73b67a6c3fa6280089e87ece5b484f3a7e8bb3713641f9d2d733fd32af0f1a622f3c0568e09a017b25ddd8de2f5ee62875e81d72bed337d5d37c3d28d434a889d068bccba6ef92a675d2bac1ae7a43598c254a79660941d1179344f50ad4b6f578530f32109fc00f44c6d235cdc2cc6bf13d24bb2bd67dbd425d411721805e293b0e286123cc054b81c88689cae25213b24379047b71602c9855d8b0084b2b7d1f062c2dc71369d67091075fc8ad9e4c356e5a3be5ee4e2b0ebd409227fc5797221b3c2788092d53161fa472e8201195c288be2e4e98f96c8560ba9d99dea13b098fdc5c35d98300d9fb0bf82de521f02d3507855d800d23a5e431783e092294e97b72e9fb23c2f460b548c95f225772e08bacd631975fa64f1d32acb36ab2b0f4d0f866f579b61d6ed9090278760b6762ccc0c88898646939e9b520e6daee5bb118b0aa7e5f32f89f9b3e9f5e9a1f406cecc6b0621d11e54f90303cae686c4c1aa28bf690ddffb0f4965ced2c5ba06261a5193dcbe2568f6be719a9aab54a195cd4225f31ae92f9386927d20d4e86c464313412932fd6486aa54626d0b12cea25859560e9aeac4f13b0fa71001c8916593c706628c05c33598a7099c8d50a70a1b2a447f41a7cfb12710c93f18ac0e8f552985b5062850172dfcbfa76dccd8937d26304751343e6c4a533ed14122288870d333f012609d1ac17fb3fd06d4804ca85ac3d51261318fa16840cfb901d77fe93cadee73870f93f73c2c450746122e6a6a91cf138d8f722e8894b1a5ab91452ecf661e26ee29d6b21d86b44f7dd4182f4a832d9a3b41aea4132d8827c792c62104f445c1024493f3a47bd7a15d2d2b637675a1b97193c221fca896b45eb5015155466530ab80de515128837c469a1540894f9fc09f4681f365eb17da9473d3121081d4f88da3399be5eeeb2dc3872cfd29e27b3b5bd5eb299d34898338b9f1910f444fa6dea1799d62f01e97d0e16563818fc3b76536d96f728c72ee9254195ea4c85c00618ca204e937cf789bea8110e07913b047110da07c1e732bb3e5263aa05356c2dc83360e0225b39e95dc84b94c551da5653926ab7c9a6d4bcfb9299a0804f039d4a400e73d6ad494e7f3ec67b78c47681869f7e7e0b18b582b99a521c2c081d0b21ebffc419b86dc2e23d24551cc9f2086ac804ffb5a2a739a895bfc01c8b960490c7f03e5831ee0072c88d592c4ced204ab9df5d4f10e15a0615f31c9948c020eb21d007b717a478634ef7051504ef6b1201750799d7c7c3a9b46be4d633761e2d08ff7536d350196a166558b86a9fc51f830066ce6459670ff41ce6e40413feed238ea91fbcc69303352e92b5e40e61afaab20710f6f39713113fd349a10b2ace7f0d26354595947f3a368bd3094ca1c635e7d041bc4fd69d4e22fb6639e085e4cd3bf4aac0761fe2b7c6e34037ea48e99841780b6593ec7aa560d1e074d2a324534acdb20953edc1a6a8a30d6de9004a772d0d11ff2a6f06bdf2eabf28b692e7e2b1be24805150aedb44707427e64fef2e1dc206cd44bb104c9c4cf28ada283fa1540957f745e65d9572765fc2a310e55ff1583ef0f34474853dd1d163bbd2c0e81b88cfd4088b689695da0c3f30d220b98a75cb317179220c7c7e21ebe6c71ac947455c6aea11404655b6e75611d8d7095b78bbd7aa10271a3993e89c912b998b5041ddad20b2a729177158a1c6f5f4742ca783b165217c4814a474841d5b20acd4d59bb44bcfde204e1c4f6a6f87c124be1b2f82a2d38b1e82ac5b5c6fa992bd2a151f4157fa2fd146dceb84e60dd84327bc72d80195930ef7a2f12dcd6e7be3b450a25797f84022b5ea904d860e44a8a765b37c1928a611766fc7c7e93e6011b57765595edd63811f52da96fe91491df6988ba2e772490f7cd500ceef92cce111aec704ba55b7e2fe7695988b5cc4628246759a30d5263a6c612377cc7402595d7e42431dd5986510e3e124691a9e1c36305c5e6e84f1644ce8e3a5544b37b4e95ee8e80e3980bdc19c89cdb1b9669bb1647a2bff771c3819a1abe1c53bb6989915320b71dcc840749013227d795ff080e398694071152a363198bfa66c91eed344855f25111d1073407cb1ea3f2adec049b21debf9b4cb9c38bf576c411ef6859bcdc31f543ed8cd2ff4ecc56ea2094144d80e1444dfb396dfbc38e64ccd62e5dc10660c06fa21d64af86868e4efcc540895a4a3348cd0720920162615a892d757fe009f7f0501684c2451aedc8458d10bac20da535dd4d70b89c472c5530deaf7739a5763d21e615edbc540d33a2cf7c0ad3118209a2f7182855590a7830acea9fbeb7029b1c30d7302917569e61bef5ef8600722fc5f1db9af88a7ebb02e75f7e1d457d3992c0dbaa2bda188ef82d5752a2dd31805a2203d9d881838acbf5f76fc3326ac447c9509cb026d7188dd4af17aa0808b9745e8dec2dd2b0f46fccc08d25018c19d831144fcff3e81955a29b3c68fcf9e0a94dfab12bf8da41b2a1fd0ba74d14ab59e90509ac03869ef2c8b76e00d76d5ed76013112248142d603e1c0397be2dc150c283eb75acd89cd7f07359c70b7a7b299040aa03ccf04f659d88752ce7e3cfc80fe96d8dd3d92113bc65f974ebcfcdf128f0e431d50e29928bdc04055cbc38f4f8d525702c628ecebf5e12c2dbdb12f5b485b5af969447c12bc0f314a2e4417ec6ed2c3c29d89c7a729f1e4f8f48fdbc9a5e2e04cd2611016061823191beadcaea2b7e6ba475a3b495bb3c48c0a7cbefade57ae82209aa7da9c4279f20745941130f0e6f3385b69a60a54000ef0d98810d7a31e16ab0e98f8c1deea67b78158dbabe8a30f8ec9dc922aaf6f06b846c7e0c55dc7299a09a177f8624f96759c89a5b369b12882ade105f9c43b08d88732a152dcbf850c39abbec719944fb364a98112f25f4e9cd404c2399cfb0fa7f92048651f6fade5b552a73803bd5dfd7d1cf2fc9eeb21135a937951ed0ae166aad5ffbeb4aca57b39fa710685ed2363765297083da179cf385f71f3933d57fe21e276463cb3ca262892aa88988b13aa2619a5120a976dc6e821dd90b35f8b55d10cb628fd6608524e567d2e7523a2c9c60bcd6059b0a462993ff0d60b554002b4b43d2adf7505be7c0139ba834b4848aeefe3174a3d1f28caf30659b23a77acf77439056466c54521bacb200989a5e3ebec72f441c87b3dcc31f84bbbe372c87b825020f9631e7854a43f69db9ab61f9d5d66318db7464b1dec24ca80417c24242d96b2f35e546e719c01606ee134810d7b4718e99a3f292213c8cfbd57cef4f86beed349200fbef70ec645246dbf70a267b82f335e81b6c5e6a02db6bc2e710662b290eeca9387fcc1abac9985f0bb00fb7022f598afd81cf672d04e3a8697276565d5ca1a2f9b1e0d4c5b6e6157400bdc037e45213807de2979a776a48a3716003b7642d57a57dc1d7ceea907325736d4d71d240c4ae00a7062fc377e267d246b36b3e8af6b2d98cce012c1b7175029c9cbf44b778389141abc626d54e1feebe3357ea6c2977a04a2aa04d0bda1cc7785ce51e0a500dc4cfee0b565be31a75f364f0b08a94cbb1360acd931f3ad78334da363c8a4d1441c4d6ff4c01deb102a51bf04a221d828b19efc8361569f3f99414b929f7cdbed412544181e8e7f1d7addba4a652ebd1128dd9c11e9a65c1f994025b967afd1bd1d6af4374b1dd750b57bae1fc6895ed4a034dc9694574f25550fce2147e58450ba92b6a0a9a3ae0822365024719ed09c4f8107f9276b6c0616e8202b5089f65cf9f0c9762a503dcba82f0408d62b0df6b656d480396f12f40dbe41c884ba1d8485011ae6982e55809615758dcd43b0791007985caeff8f7930a247763a96d171fd03771cc0825f391d4cc3567b24dd810610e2332f87a8ff2494ea3f04535dd0142bc25db9017ee85125b1a4a4215fcf6fdc12bb9bc894929452ca1db702940212031ecce7eeeeee16638c31c6ffffffef2eae162fd996d3962cd059ed6dc78f69341a8d466b7d9446a3d16818638c31feffff7fd78731aeeeeeeedefa7038738b16414c8434c3e06816aab990e6d793f016d20c6b2117d6858b4aa70b17f8d4e549ab6dd94e4833ac565d74fbcc1a27007c6ad925491cffffff2f93c964325aabb5f7f6ffd37f7981f960f27769dda5d12eac61d561187697f8ab6b71f9f0b73efceac21f5d1f167fc2bef9315f002f607c0574659744c7a4af0d3b1a3a6bea40d7b27a61b5abaf66decc97f298ca81a4acbce63a2a9ec36f50192b4346a553860c7cb26066117aacd27830d634a0653deb1d2679a384341b7073ab0354bef9b2e9584833027d830b694ea0898c4fc55493024b15ab26cda5a1b195d2d0e0d3253b023a5cc224c8ca3f55beeed280429a597e5858aca090e6969b24a4d96bf9ba97cdadd5ccf0ea5c1a021f6e3b764f92244992a41d478b046dd934d53c7695558a4f5caa5298094992a493aa14e85f69b4b22ccbb26cd80c7fef80ef71b575369bcd66b34109696ea9f6f64f4f81258c11484006c984244992c429d0deee6eb01b638c31c615666117e6d28f3dd7f7b6855048f34bd00b0cccf7af6c8df2f72f1bfb13d2fcb23e300b83553a61307cb2e3379d756559966559d2d98c0611d29c31f6ae7ee5934c48922449f253a56a2f14655996657953edf8bbbbbbdb4551144511e30ab3b01917bf2eb0309c90661732173131b49066002c10003efcb2b1b190e600eccd0bfbe245a5f3c50b7cb2341ff659eb1c0390024b3e33aba986644292244992b384a22ccb52559629b054adca2a45656f3beeeeee6e777777ffffffff1438e303f8fc7581f55e7cfe92216560c0f004f8fc653340921836468c4a678c18f8f4dd4047036bac31ffc8d86ad0388ee3388ea2288aa228fefcfc0830df5360c91b7f77bfdadb3f5360c9c96a6fffe31458c24e7f062e263cc018eff020fae136221db6db102e25ae2588a88551bc2ec6c6bbbbdce7a019ccd9c4b153cc0083f93f34976edd03347f5d1353031d0134e33973777777ff5cb2f0ec9205689ae1359c71777777b7e9048238151553680e7ac3964c4c5c37934cdbbc09cd71eecc5a4700cdb89fd58631c6ffeac26e74fcddeeed76bbdd4a184c0c72b95c2ed7ef9f62c1521d898ce3388ea3bdd65a6badfdffffafd56ab55aade6b9640153a3b55aad56abd96b55d6df3ec618638c71b88ac3e170b813985279ca5a6badb5222896c42a8a62adb5d65ac1d4ccce66b3d96c468348b16dadb5d65a5b8ee3388ee3288aa2288ab5d65a6b4a754bb6d65a6bad305d6d361bc618638c6badb5d6fa62adb5d65aff4e39d30cd3f47ef6eeeeee81a94f456ff44948f38a962a51486ac4c2277aebe69c73b5f209695e1959581488d228103af3ffffac366bdb276ee26aabeab66396159515bef8de7befbdffffffb3d96c369bcd66d471c9f37f556a1cc7711c4711144b6215ad288a258fdeeaed76ab364cd55ebff7de7befedae561445511445eff3db0d964a6badb5d65e511445f1de7befbde3388ee338b6ebbbf7de7b6f5b6badb5f6aa3ed38cb932cdc01863ecadbe9515568b8b8b2556511445511c426ff376bbdd66b557956ac72c2b2aabc76f5db2a8365aa1f8ab52607777779765398ee3388ea378af78c52b5ef18a576caf9e024be3388ee368c7711c478b44777777bbbbbb3b49922449628c31c6b82ccbb2eceeeeeefbffffff18638c31bef7de7bef8a6946374d1dad6fade8b15a5aae162f301606a6d20903d375b4ab9ded463a8ee3388e2fede2c4e28ba228da2134dab3aca8bcaf52548ee7cf558a2ae5eeeeee0e96aabd7d9b567bdb31f66a6fffffff7f777777575b96a5bbbbbb638c31c6f8ffffff03b74891cd1ec9f99c7d52d4c4e218a5b4561c5b1ae1dedb6d34beceffe392d1cd94a3869dede806eb74b47314833dcd6e771454c424348a62f42406f59d4ea7130a75b4000b45c46b1531738c4c8c189918fe3214dd72a501c16c140bdd4196b788c0d2083e3a36231b11f00b3b9b116e083c859ded689604f4c2ce7604247444cad8906ec20f3bdb5194d026cf94ad23b62224477028f2e9a9960ea140f308094daffb0e3f39e408f16e14502c129b0f3faebbbb7b777777b7bbbb7b774f0f0839d69da7bbbbbbdddddd79aaa8366c361f34baef0e3faa8dd568022949121a357cf0820e4341e0286ac1a7fb4ecf38438e90128a74dce8ee3288bd3dc0ae4556d8415a1f78dea0431045717777f7eeee6e779e3c8371a8eedddddddd3c3c47b3e290a1c38d9013215c5062490e484c501b3848538070058d1e383d807a8696b49125eecee8a37df4bd512c31654e50f2739301881bdb13385c115cfc60042ea6038622166e20aa517b547724361f66c811d243e82d72ebb1c3dd57d841be7b4ff7f474f7f4dc668f904475e428da61050e1551a008717f888afcc87f6d0c8a1a55f820c3121a78d8704b2aa2862b8809585c21850ab9216e0db72124119a4867babb3bd8eeee0e448312da0165e2d3d7ddddbdbbbb9bc773e00fc14891cc861e1c724a8e7c3044c28da2dd799a87a79b8747083d3264454ef7f5196a2188ede93c73a7781bd7c8123b7ee4f8edeeee28c21ee2eeeeeedddddd3d3dddddddeeeeee7906fbb0f0a3babbbb777777bb7b4f9eb144f3de2261671085db8e9a0a8d5b0e3e46e86e222082d4e86e433d41de9da77978ba7978f24c89b4d17d890c2199b3529113391ce4f420c3e28e4ba628f58d063937129ce881c409204cb8340cdd28019bca70839274a3bb83288acd347677f7b6b6bdebeeeeb69e6d724cfe9bc19c15e8c0c80e209c5c5104504fce79e65b8875444436b0814511409c48826788051d28dde919dd3d70afc288189c2881040f280ef80ca1df7242177239702969a500b672b8bd40a46334041210d9d201b666201147dcb884326b05e62c936370d8d9885022b4c93348ae256c4b481b114e025d68a90b0778bb93a043170ed0e6df447988b71615a0cd875fcd315c8ed25a5a58c54ae3e162b9fa8961ad2fd22805d4018779b70aa366970da0cd1713431b1bda2f16d6fcc5a80c4a657c61ed4c3535673fd7595108af234d13549cba536bf5c7a7ca9a44c9e1704dc849abb5f776fbed76ffc7fe8f71a9e4e152c9f3becf34bdef33994e2754974fb9130aec3a4a76047499ea00fd0425a1354a7b426fd058ee49e92314f4e3431afdf88cf366e24cd914bb2ed3da65db45d09d68add6dedbf676bbff637f8c4b25cffb4adef7994ca713ca7442a1403095528129952a2565b5525159616161b15a5a5c668cb0cb2ba69a19caacb0b07cb3cbac2ee3f05a117461976bbab0eb26ec611f6a3027035ecd852d27e0ac945627a0cdb769867f5528acd95b4ec0cefbda7fefd451994ae9a44b3c5c3873474e60636373279c99d668adb370ce2ac33589926b42567b6bdabffd658f4d35b8f42a05799fa9e633a12c0a55e944fde9339d6a50e02b8502533f2995a94695b27aa5d028e1cc2b9a5ba9acdc8493a509ad511d0a447f68104da24369b927e1a4b12754a6e349f9e32314e4431af98cf366e24cd9a44d20f3668a13826baa99a1ad63557bbbfd1d974adee7994ea8130a44a55429aa9495a94626c50481ca0acb0a0b8ba5c5a5e56bb95abc986a64582b045eafeed5c25423e33241b0ea5e30a69a19be7c39b4af57a5f3f527983f7599763e3b241d91f444f8ff4352ce060e481021b401f3121227b4c96012492b81ec094222217ba841068536790689073008a4015c014c1aea4026c72089a024d647205c9c07168a161160528e9b241d6ec4841a188947ecff5f067648230d21cb025740a191ab8343ff501667d6f7591ac3ff430de6ac46781d4532216421f1a094d66aef0fa4d15227bc1613aa14666a870e0993746c520e354928e9879934e438afa5c42bb9de51e342d63791a0b0d6de9b2456e1eeff4834a41fa5a41c9787d7c275266ae37a5ffd5751312d54c22e833495aa19a49f875209a9a98341c19839e7cc5d57410e944fa8748f5bbba101048000a3190000002114858138cbb25049d80314800b26524a407632202a3a26924802413a1063281061000601180418830c428c3184652d72b8d54c76d73db0cee0fe7d9f5d3fb5f3e4f5fc1dbefcccc7088a44dc784af9ae9f93e91b5017e84586f0eca1dfcaf36287d334ae5970484ab91740695e20571ebbf66ceb7424ba793392972f06bec0345e01abfe02d3d7bb6b2365085b06a68977d7c64d39cca07305371076baeab87989577fd434dc15cf8fb36315afeda338d2507a11c9d894e12e83d07dfc38a652c59cf22f082444b417ad9cb4f6d54d65586b4cf8c649d82cb6f21236ebb2cf1b62e20e4597ae95de774f68a6dd0735a988d57b251ac2573d16a331e125866302fda0856d7242657c006bc496adf0f6c57188b34b23510bf7c0876730a56a61e296e166e39691afbda3e42d28821a991ccc30c091e48fc0f7244eb259220f8f1a35becb84cc05c9198eb70aac904474457b3635e8d13fab48d9749b43e16443d3651413f2c8d626632d2b03412803be32de01a7049c941af3013c9b023ee0413952759c383a52e83e1ed7dc28395efb77f07b2ff7c533f4fc0cb910cb2aacfb528361180834b4ae8dc30dc35c62b1f167ff3a2fc6379a0fcdee69cc221b41b3ec552db3babf16564c96f762a02fb7ae9bc4c26a2b1feb7a30f342675756789ac6a7819c08d2c44a99572afaecd952448328744eeeabc731ed8dad8a9f45bcf80c31b228f34aa83f198f8975edc23a88c4bebb7163268ef818856251f6badc64ecb87fef148f3bddc414222e5c6e5ed14179634368c777af519096a9a90221ea5ddbacd2712c28360ff2ad8fde90ee55375f45feaf6117cd5e43f391839eab58dc27c80fbd240568adc1b6ab0e760991fd0f4062beffc0cf3009bfb5647772324118a42fabca70bf468c3f211568851f52ccfe039431ee3f70be4cc2ae1ad91d18491026e6cbaa23bcad31c34b480552be8cfec0ad57be6ccd9171bbdd675eebd353387fef188bcb2fb3d4ad8d55976663a1d9324c29b8cf4f788ee770a94efa2af265314a32e294cc912ed546d8cf17571c35fb0173370e72d6d9b2f44861d4594f12baf9de7d14df111c80fbb92b2bf4f617c3bf964a9034de1c98b93d4ba83830a25499c571789d21d77f3cd8d4825a6a735cb6ed7ff3f44d85b42dedbe229e57f7f45bbbf96d25b66543517ada592ce13cb0197fd06ce12e7d15e2c55600c23c1d73660d357c9a9eeaf492205fa8da7fbcd3b71a0aef5c698840123f7cb6876b9ea82adaf33d76cc4632f4d45deaa060687068dc754c0bdfb1eac12c85050cd5a154c0eac67ad9f2f52842d76af6ad4f47c4259b02bea2697b5e5bc1cca882ff7aa29bea8c85c833c0b4e5e3259806f2bcd25a45c1b0572ba5eda7f823b852b5f229a57c261bd2b08aea4a1563e7da12b701fcd822f31a2015e7ef4f11c682740b93dbe8e3770d9b049e96f98a856df9fbed729833afbba53d7e7e966bf9332eac970a4d8c135f859c642b8516720779c7eae0acfdaf76c134f081322c7b859264eb699f48e1d2c93f4dfe34551d5ce2a35b803e50ed729c06309ae2638d143afbdf5ec23ab02e9d9e8372538eb58f0f918cffd69b3f649ba7ef1cc258d7fff7d3615e5a696bcbd56c966b42e085c8a8543dae4d8d7e2c81293db0bebddcda23d8df0f9b62806bf9a9c4dda6120ea71d990769197d746061a653afd40700e37d6aaa0b350a4b016db159ceb7288870d5ffe657a2fcbab1a9add1ecc624f7df44f1cd918a56a40a3f593b976ccbf85d53f131d4993c00d86805275a8133fd21ba1d451923f945f8141ac2e3ff2f37584a2a4850504ef6054758cad51f2bbe75a5a0192291c08cf1e70decc9a94cd3bf40812589585295acde0cc9271a32d5110b6cbb0fd437b2f25d35ce4de3e73ab1b008e6903b3bdafff65ae0446f1d92fa345a10db3564a709989d108d1ef358026eee0364699f0839554b3d07bbcd4147cbb930d0a86d64e57d42763ffd708fd96ee35b670831a4ff54969c538c7d1f8b9c8c09886ba94c9f9be09248997b6aaa3d35308c9e70d9df176f8608c455af51b53e0d2374f17eda6ae66eb19bba16d517ae213c85752cd1535ff6079867b7a2b9788b08a17d71862611478fa3c5d78a102c33e09ec504f3f46280533fdc15c54d0360a43afc384317548a85040fe6a7366fcded381d3c95940fb430ff8604589ef0c70f807f9441eb2ec304c5787ea00039575646f4ef6757564ab7399595fc3bdbd2ab7b2bc370de2a1dbc1bde5b1906a2737fabdb4d28797983ecadd2c409fcc452ff58e5399a1364dc9601388b2ad8f02c733eceb0a628722001854523d9a1c6fd99430d8fd99efc6bd80666f54bc6b79d6116f2cbc64a7c6eb8a11b93bd9cae44a6139d73e0c30f63386f54ae5a0144a0504fea498612942fc051141cc8e2cdcfff992e846252e50c303b99a5aafca1955ec7827ab9e0a7c86791380326673227692d291ada8add0be650b67d1f312793c656716a04b5495a94fa8aa7b8cb806ca4b6a3c7229ed43c1fb0a9161a30831a6d1c000f7db4512d4bdaeb73420968012fb84738d37cfa187a8b4f2e5edae4f01586a1ebfb4cea3a113b772fdda99e319b8b9f61e8892b1a09bc864064fdcfa54595de4fca517b5ce4b8dc1667d79929f23271e7055a53cc1e29e4d7c8ea0935ffbc9cdaa532e601e10982676485ce62ecb013be71653fa13cfc17acb6a05ff2752b98ee1a7879236bb32385bc97965a441355b137b6877db345a946d79b3d9d5112cb225ce4adb5d41fd46831e425313fb8afdd1290ac0f51c9b88ca0fbb709b8b9b13771df0a299cbf6ec7fc767d004d2b410aeef7a8a3aa281de8bbadda7aa8b9e23feb59acc1c07c4427d697796420d49ab71d0df60360dbb26b9efb955d8136ee04120e2baed7d3414fead29bc40d71af1784dde8878cbf58f1e0e1b350b9b618926a65ee2f62d337bc1e9d5eb1ea86495700665cf63e347fde6755e9fc51b799bb92c162ff9985c7734be70182c00f062aa263d9970dd1dab2279554a9ca0f61d675ad65c0d76afa2d8645c0b1bcd98ae42368e2a7cad669995f959be8bf5e1fd28a9d3dc6ae453646e3eb82403746cd446743ddcdeef6d2c96c586c1c193474baffd2059b9c00db15c2d1176a13d6b7726893cd50c6bbe93a6477b4225d6b872a140b086d0bc7c9358a39f621d1a0e8760571122e47586eb51a519adac2a1f3281307a2795d94f77d78a80712305085a12056ddfc081ee38bb83e12a4a0f25472e50f832d0c2feb2e3c37d4e2a7ca95ff7c5eaca6d981945008798022288efe93bd12ccaa01186a0b3d8a6aab59cf854d64f1861d78aceb3be76b959b0ce81a9402074a7ec74aea0908e900b8276c4645bcfcc1f59ad835c77261aed8ab7d2c6fc8352cb59b0902050754eaddf7a602d2390428757380aa3c4bf4397198b64e3fd13c6a4ce19f1d471351869a8af9677fa9b66e2bfce9b75a98a403b929a9a6ef91908fd8bc800d310853db1310baa37339bcdd775c4d92fb8461421eb451051c8893e22045ef97736de3eac8ddcc8c6455ad822dab3d0320051b26c7755ef77d095f064f3e56a3619ce1d47306dc8492e80d02d6c4ad485fe0a3f33ffbaf6416431b3573306ba190108a9f33842293480fb1194c750fbc6c48242ecd3b8e9c06252f0324b142abe57af26cd8183f3cd7ede6ad49b76e03f66863cef5e489963e6d49706b274f048992a05adf117a0c06d5b792a8a6adbafbf4aa96d60885afeb65dbeb18b7c70193ff3521576047eaa8ed57258cac82e879a215363c0b5afebf88a0121466ee2a13f2e6b65344d0424c9d3a52e3480161214f6fcb62d8af22d4153b52f2bef23a34e51c350b98b23168e152e3940c756200740d45c546937377df52d007e7b2bbf13f8d5e995d3313d11113c201b657350cd22c2c2e1edb354a001288e1df45d1862d822677aa0ca0b9320da2612d4710ca229632133de4e777c37f3bf868b8238c73380a80a26a02a91c4f4ccd6b260df9a8baee05da9b60543b6100e94a05fcfb33c65a9c2df7dd0293d61c288dcf7a7004a7a163e1c0f6489616dbe781e048ff1aaf73f676b3d3c67eb9996cac5a8bb20b923590d8d93d1581dcccc20d6ed1b86db26d2a8688199a341a33596c0a6aa8733faebae434ba27addc2a2a03499dc2827a71687d60e77bcb6bc0211c698d5ada47a4a4455365360842df58d26bcd0d71a9f52e500c6a8a2d2a091914e3faaa29f534cd782bbe401946c7f762795d62d466a1cef8b5f509fd8d41b9cb2fd6effeb87be5966adaf34683439aec99046e35d25e22cd5fb6f53fe8c41d0773a17430ab640ade5c8b8c8d4851f2fad6498585cc16a721936c6dfac82789b89060149fd04aaa8babbe5be2d5bf82fabd3865b395b1b9511ba2f7aab0ff23d9b86d6eb9f1a3d42490f57b8835f34b8815820b19704e45586969bfe92b0f0bb7480d2be1327cf261b2d3cc2e0bc341a2edb2aa6275b1cd89b8c43d2011501a1f40471e9f16208be9a52156751abd1c5c7e9cdbbf20d2b23d0a9cb88c64e0ef7a1ace61d111fd2916a428301801d1ec00e7c64d1e5510609daf634ab8599e19674c33d3b0b743146496524999b62455020c3a2db264bec2273cb7be9e511706e19af04dc3da2f21eacfe6788516ccfb0a47ba16341037298f43976528cb6d57429885f03365554cb64de0640550db9ba7fa71c1183c4b57a8f909142083e0f7d038f2c9b9b84cc7ae4e3c6116ffaadd942b79e5bc75417030e62cacdbec41ccee065ed39debae0a41e85192c69075fe78ff286a6d6cc1706a2a9e702a4a9f0f5db6079a3033fb80e24a77f7aa96e3c51bf95ab12c79e7655dc79ac569714f76e93ddc7baff6aedfdfb7eed01312f4313e38116b4dc0eb74b2e8b9c35e714635586b981650c2760d91341ab6d20cd0f78305c726f940b48965e53822eeb29705e018e918a94909471ae8299d3ca92b91c473c8e24aff8249ebc3aad4f9e0f0493b1165bf3f0075ff052d9a676eda94bd239145b32368e1e609133326cd142488eea5fc931cba1dbf3be3912bc29d8b5a28768c1d39ffb89e1728b813f7a245c40a73e30e7251a96c1149094d9946b66b91c50efde0ffff4f150f4f8b962d2b4961147370ea922ded5732756944638a6d49aa00aab6260ea150b2559f312a437b35634a8322627a54b880ead39ed5ecd2af41be46c19f9876be60208c97b21685858c51b92b4136d6a081f50e76bcd81d89e3efac0b009c23dc715083cf68671421112524a8501b67d16862c6b23d5ba68b3e92ae2c2c94e724fe2dddd0d41f494e334aac28292ba28a511eecf88ed2b9a4023cf262f7c23ca29a121bc8c863893bec292c28cbcd0e9a5580e2f58c58244d56ac1253cf36c90da245acab2f1131975d16c01764c3484d4ab8b197504268214b402ff9a1366666b54008f9e8b290172190e1595076140da26af688e19a06a9e51bc24edbffedf9d0164ed3a7de1a8f916091f585676262bf815665284dc3292598190ba6ad5c600c19e7654438112706596a0ab93a373ac855ba41ca08b3131f17df474a964c047cd077267a14923828f667876a6bf9b746cc5b5d6682e4a0315578357a62a3bf020e484f531434c9ed86ef91850ec3b3a58fb854b9ef121691cc6a9881e506feb3d8cbe54a9b07d9d627f7e41d10713776dac6230ae71f42bf6144f7caa0e1226454ee03e61a6627042a5026bb5a1eb8f902765d27dc44e40325610acfed099c243c1fe3e676aaeaf85840e99e3e35f82abc9fd45f658c028a0fea14f6dcc365ea83c5c041e26247f4a0a67e7df12c63e5eb6131cb6d92e31b5a1c41eb03a04ee6f04bdbe6352b3d2aa80ff3bce79c1b8a86dc3abd5d745a7c5f9e831825de1b1542d86f4abc0f827a5c9d6476c18dae75222d28aa0601a3b97092f4ee33db579f5bf838e5745930087208d8f833cbece0521d21c7ad544d9f99e5de4a7fa1dd76942e1897321dbace50fe951eb7874de9e129ea6a6b7026339486930bc4ab28eb9bfbfc9d3cde069494ddcb78a3fc8301cfe3eda03b8b51c01c4702bc0d1686f1b4ae858b0505fb5bb37d8120644fc2892804c76ea462b28fd60c8b9687fcf615a4c5ab4458e454913b0d8994234d519466ee89f9e24490f916bb1ac4d500491463f6b880857cde93151ea22c912b15e206554f1743940a77bc9b3868c491d3b664cba8def02ec12dd05b9803b62be7a2835f625f5d449e6aa987d88621cb63ab35a8d4b8ec9689d95012d18935b1dae908af41c62c90a90d87c2eeda951217a24901ccbf6b075fb5a964b9180d21517c289af6e11cfbc209a33a430243d6edea10da9b0651c3cc9ed10ba8289554fce84fbcbb86a270e410709d71405cbc8ad404e5a706f785a504726665660cb59ce406273522d64a6c123f606db9501c8e12a5ae39e27bc32b04aa46ec7f492969729d5acfc880d8b4597b5c0daf8aac10a53c5a6aaaac746c91a1cedd86ca5bc3aaae20f37bc28ac5f043752f1796141ece9c1a3d811a234fe4413459aa8345974393c74c4344947b697a2ce0b887095c4aa24296227190b000bf8a811a433f92481d3dc0c9c535b4c00751247ca01c7b6a71ca450ea4061742943de46556701174400ea0eeec2157646fa6696bb72fa79bc4bac85e3330638a2da6a32edf62d2c868d015adea3e697066109d7ef8eeebb02d4ba04a3556341e6b2877b8f18086b52e4caa5a7c3b1a1bc0e13d46ee78a87317b48e75b1ba0e49a0995e1257c7a37e31bcae94a0472f949dfe25ba8317785ffe6e52cd195402b8d03f982a3a3ecb14bf5186869ae102bc80c27b2b7227bae75a48103a4282018e4028860a9d0f840f3be54b682a67bbab0c1a6f25cde7954106f253c5a26e65d3cbebb1446e075609e748a1d87281efe5a3db795bec00c0d0225484b52ae46527b010de2d165a935608af9aea1ef5afcc13c5e9d0875291e871557463d361707a3369baa2aa2f4032499f8739879521544f482a7d5bd0d473298f24587d8453b7a60fdf00c092f87818783e073e41fa136687c85a70c3cb235818171d08e1f7c2b5d3f7ce7b46d23587b0cdc6e0c11981c06ea1fc4a20e8eb6fa2a945c0d3245a9a21360fb4e9275d11e3ef1e28da7eca8c419f9453d06fd39bb5f426213fe47909df7a82b1190f0b51dda427bcf39eefee73918721320708c8df87d3958fd08c7bbeba2f8ae4603cfd6935ce1b7c18a9010e234006736823b837fae44a848b29485d79c88a880f1dc168bed12b09844a0ccf7d8b1124b88de288e0bca8c6efd5d02b0c852d0d668f019620535d3a5bfa87e80db55760c206f163168d44485c6a611429a410dab99b62d1752d8540433674562d333aae380d0abe0c29731d7c7e7a0dcb98d4cd27856e28961e01ad94fdf4753f211242b02aa1733a8f8255ca7aa0b5a926c157f3535801c0f8955559858f57265731812a1559d93dc678bdd76459e0a7650a13b9427dbeec95b847e998693a1d414369470ca4e111141439e650fa689868b7c525f57b9a07b0e5b32903d70dad878f996aff6c7c1929c3d78c3ce67489acef24a52227539dd5744f1462424a0611821114c38cefa4c72901a00bddd7d02730e34756a0ed3128a4feaf37e9bbc6703446ade058cbc3618da6ea6f73e5bec7b23840878d4b8fc7cfc620d1bc3e65c0e1e8fbd2b3f078caa165e121f29b02b5972dcae2e873164c9460b20122725c2a9d3bdd9c59d8832b29dbb87f4be823ad31c0bcfee18395b2562ee0a5a39c7a64510acfc8555b6383493d4b9f8ad6a909915698f52a659b80d3c9ec8e82b7f35b8e707697ebc4fb68e6e489f793b7c403d50df148fff9117af9cb365efed098ea7e2e5e3a560e02437196e9b26e58dfb99a2e3771cf8addc25bf6cb42459c67a66e6daaa1c8f495786d166cf23bb77b0eb6fa5063b9baf973e8649cecb2367a3a09cdb324a363857943a74ec9a735232ba23da71025279e23851d2730c7f0a3695a2b87ef0898fd292259f03b2aaa92cab481c352466966e902bd575a83ee263efd4f199c1ea64d1743da3ba1f93bb23dcd4afcbe24f0eac366d3774b33595d4f66ffe6d6beee6b7f839b45db8a55d9eab6ea0703ac2aa61b26702d865cf07b590763c61eb9103cd47f429a3167654fda2bd7d5743fc4d5d4404a1e537993440a3d6209abb76a6cd2c25ca514cf2d620a55e1199a74980018d49957f2fe1147a50054262b74af08e0e65ef1a92b70a26eb5ad2ffa0eda39269c73021e3c0353186ac812e4cbe24ef25cce85bd34e9c5b0efc493fb2994258986feca93d4360c29524de17384ac1822be64281c3ad7ba7fd4a12505c309605c4b5762ecbc6a7d1e7883f7dd9d2bb3fe8b8b5c14a88d2d3aa904648a147463a0cc5e560afe32161524d845428779e5807d4a98389027a2979ac3f1f7c15b081d8a178b0df2a12612c6a646fdbc2e84acfde098e041c9df56c78a74d570dcfad2ec3a4a883f6bbe2af51c81b0aaf4f821d5a258caae6cd64ef0c041a109911cf3465c08565abb8b8d27382e0b42feee4ea7ec7a061184594c89304030866208a34a000792a66459a1ad88e9b7d40250f1fbe30ae56cfb41dcc7f86f35682a4e9d8fca836a9cfee623a1f1d966cc199fe661a5b2c9b18aaea7159ba9f86064d275a84e7fe7feaad4fdafc86be2fd1276545150b87ca956324097f22081164593f5c754715821a8090ee5c5c363bfbfcf6672078477438c3bffd47a03772cf603443cb2208850af4dd06b458d0f9357c405cb4b560a6d33a0a77a905e2bac0a24610621452383f01165106644144c0da854d001234a79e3e6d6a650aa232d13a3222ae782fead859eb24aa22c0db3d1861eac866e52a21b768028601595a6209c578ef3b4801f9aaece43244f58cc539977bd8f71695c20544e62bfcc51a5e56e4c71d7779e114d4cffb257e6f9c5026098c78b23a68a75a8aa12136eaa188f135572029e8aea244de5237600cb85901c477c826cc55c9135a3e735d091cf531add507165c58b17dd9fcc3c1bd3fa6fbc054348ca5ebcfed2f7af3f1e209429da7731e169321888374e23c6327e8995129e98376b8ae9e2ac98d6881643e957846bea6cf7d2ecb972c39bdb3a98c6afe5427e70f7a5fc4861d48d671d961e21445f6ce45b64834d1b510906388671540c998d2dfcc6accc6e4d309b8ad7ff775d00be77709a07e06470a96630b387a9486626b3bef45d8bacb1b3f8e0b2df4487b6df1df828bce6fd17ef82859dacf42bf69c76d6e3bc63f432b21e696b6264b6a8acc4c6f14a0def75cfc2057f21867f3ae18f86920413ff140c62122739be9cfcb3a6c8b3228a4c6210978a4ac99c80d25fb7c843a69f00fbe88185242fda1a175234ad6b24eb2873166224849363516b7911c2098a2afa0810ed24ed27215886b7d83128a98526e756cee491936c43c5c4b38264b9f713cacdc84a32b7d077f7144aa496fcef9b417e29b29fa4041e0a599bfee344baee935c57091fe517782ec1e4b0ac9a92e937dd27f40243b9adf4941e6016c359caa4f9d94b9c1305cd0f1356c6155a53de0f111a0a1e2bc5e1a0eccdc0a66b74a09bf31529c237c3e77fbfa4461381fefd2fb9282a2ac0c018a9b08536e85b8c070b21a2982653919ece341099d2f33b47d18802e3665e6f08d8a17e36199099bb31dfb82886160e8baa77ffdab2d3b9036fd18a4255ba706b3d46a3108314b1f468939560e4720c957c1afc995932bac77b5db7622bd5d0d54991a19df281028d1835e756295a14496761136b18b147b8a4ec9119cb1e8924003eda88b81f13d3f88d224922e16c2cc42f0980c6c4c9133571bb208d6c2d13964ca46e76502a626e3a089b32843d980dd8c372d1f7f19483dadf01742eace9fcd183c21af755f174b7a52c8ccf5a424c2d602183cc9c48baea3d63990328ba9e9a1f50254aefa093334f07fa3928e32ad0c9fb5b9bb83af31861c29b20c1335eea2321210d8260bbf69919f99661e49809f36596f72527e5b5abeb19dc47c8024ba25a50388a0b340977c128d6c3c817409de217f8ffbb1b2b19f8f90dbf5728187599e1138996054af99686b92a9151827ded7c4118317f8ea948cce8bdd186872550cfa5383549a0e5f333be428a28e424c8b73dfbe50a20c2c612f16a10e3b61fcd5b012b66d6ae46fa29000245d357b30352e469c4ab013d7f50ae09b28c5668611544dbe016817520ba497730794b5d2d221580f347b5894175e11b46500489100c61f8a155e196d37b63f0a421f082c5c6cce44b9267c8ed5599bf50082289957a4c37fedd87814c72559521d309f569ce3cb416f785890aee6826d5583baa4290a8a061bca81f9e18be205aa5fbc30ada591106584f940d2c26bab64047b9b6df8ad1ba969804cf6efd38544b1cc8a61c972556ec11560127b2955a92b9b1b2ff740b0eed8f6598ed4d16d99e96d504e43076b52e90155815b3cc9c481bfe8252caf882af526adaa14e06515d60a34aa08bb59a7d185f22caafbda190090801c4088e9042fd2783e34967162afa614579702e06f2329002db756c31a75827224ff0cd05ad858ff6c0f8aeaee39e6b9dae75509e2d156c54ce09b77fd4a8836e6f6745030d277170469ae1f6508388d301554d56345128d36a61c4a6c81e9b0275800de30705c63d07799d6e91f7380c816e83cda2dacb7d7c9ff709a822a234b6c35b9c5b1a04919be37e31f11089c52cb708f2e8ba3526413466358c0ab34ec7efce588ac154b560a89da766f65d23ddf28710a34140943cd2e5ca46b955cce2fced06c3dd480da279d92f25222cf0fe7c68ab85bfe2248221ba4881223e43c0ad0f127e2ad0f1847dc097e16de66f118c0e9eb2b1cf6018ee8ccbafcd45164199685c73dd214fba8179f8414f40bb788c8433290a8e06ca0095670f7e32e4aa39a09b7c46bcaea09624df6309ce6103060d870ffa3ee7e79a69700411234085fdda2b73541748efb84d031f45a0192a469250432299de9db5f74c6aff06602759b6c182b3a483c50966f29981d474ce842efc2642d0187463698e5de5b435e89940151f2ae042bb8d02e8d11da12156d533945f18f859325a083727e2c8942f1416b48389ee4eaec6c93dbc4cee10b0996f42c9e192380ba6ca9f9923730a135ad4f61c3be1e42103bbb6858f91fbf26cb67ec69d9fdea5b3cff49ce3216b66b5c500a376ecf7bda06cfa3d8aca5a39279dd002f23b7105cf7ca13907c893cb4b7a9f514c58b2b11257d06840c9b91d329e43664683e8dd86019a7e6a94812d83fba878a86de648850a4867afd6d30168a0532ea7022996e50eb1f7ffa52ffa9239405f195681f75a0ad798e5d46af1bd82891b498ed736f5024516f64301b218c1ffd9f13e8eae41c2583cf98cd53f8990f138005d133b77a66218699517e359a1e1a6f8cb157b72b8ccd078b357c892c122463f7b404d0fa634aaf7ae5a0174cf9324c73d6d9ee83fc62faee041361136bf22959a4ea14710667acd8d99b17fce732ca2406b1e44c0ca5ed28a947d7dce5ec1f949ce107fab84868b5840828064b99e2bf24d26a4334188f8603f4826540fc28f6e44e01cc4e1352224410da3b70af91d5584d1f5d8b61d45113b0a5b580d3a360f4d2e685e10a13ed7afd800588284b1d406a04e5aa1d461d0ea81566fb89256e2d1ecc7557695b0cab90ceecac6c3e168f87cb25dd15c896e8ea5c5a2e32c5ed7041d6f4c4476b50474574a407791047ca5a3cc6fb6616f9c1b1247693451f98f6081bb4ad7ac16bcd89c97a61cce01d2c5cfac00740f42e6ca4bb624dc099c10ea7ca608ed890af2fe0d2f019d286bd502b4270815d7379860815f8b1378c26c252fcefc506fe71d5f99aab7f3c25e3998b7f34eaf4c793b5f0ee7080ab5ef04489fbd36a915a9422a8ef20e242f5d1ed9be3eef62f06f444557d58223ddd4d4bcc0d6199e66ada3e8daf9e8d8bbb6d3897d302a6d3a69afc8fe4d99397380d2922fbf5651b5e039774ab6fa27aca885faceb1a55754375af706b44e15b9e9fd896af73fe319fc63556a6fcbf3cd10eed733062e43e3f539c06c22ddcd1ab9deb645da4d22576e68a3dcb635a936f2872456d8382f60203e59dde9b48e9a8aefdb6d42e15265febd82393c680785a534431eafc3b2ec5de4acc789f85b395428efc97311552726d9dc0f0f0533675f9924d7691ea6e1b9dcb410fe92a2e8db8983833927173c27d2c1b336e2947fc8147b2b8fa6592d874b7c6975d88eb48389a63d64d9512411f7df45aa8ef8d34e472113394444510a9e931e82a8882abef95b179243ddb8cdad5c6dd2c0923e0dac6c5d9efb394d66042a70504a66d41398f874ce4af8bfd82a8ec49709c99bc1f53216c372ed3ececeab6d6f32b00122966be2e3115b1793c71b9ddad14e038b72af2ba4b6c903c99451030947f4023f403e991736c9033eb385ed94a157372c1a3af2a2cb177f34deda91ae1ab524c0c47d3bb87e22cc1994c29f14ac0e6de0bac104ab3719ccbcf260e11d09d34912e0ae8126374650bb2fa3c4cdcd3fc9e788e0330ad15f62d3eb185e48adff71beb9bc28defd29a0a0ac5c5a4ab43b72828bf4a5fa1805aa2ad79cda7381a91d1794da9f9421f70c66e6380465b2af6146b3089d33544c05ead5de0d514e5d5fb1831ab78f30649a438a6a08fc6c27aea81533f4de46237a8f7b64a859887c2a7bbd1502804f2318072ef88ac525615f91cf06cfdf6b36d0d34a70564a7659451061aa9865950aae695021e1773624490039f312ee8fe91b434fba38cfacdc0e09f36f61cc441beae399435d0aa6e78cc4bdb6480608957597819e029622cd9cdcf4d529711c544817376941df57bdd4db44cae3f0c0b7f80320d720f7d85945910c6030a169aae9f90204cf6a8644983f9644e10f305b3996cbeb1e89840655a8c33ccb491092f009bba4fdff85e0de78c16c3cddac88fd3b179deb4b51bfc14010551dfeb1f1716e9dd18ef790fa8e1c771b14101bf2b39fea98d63151d05d85542897f13437a75ac8cf80f21cb3946986394005f069c9289b748227dc1903d1ea03c70874007ebd0deccf9481c14117881dad4d0580c1064c8378ab22a5658116f7d59720a7e5348845a2eb72786f912c42c67f54814be72b2cd3c51058f567b135b2af70be79d15f543000e5fe735a7fb43030001096fa66cd5d950a43ee3c5aa04f07b14c1939a526e818bc8abf574edc595c716034e1aa27065b9b42fd78fa32c64f15f5d03e1d414efd852c0f0c33052cc9017a0b89365e801211b10ea8bee70d8a94aacf8ae8ee4e1ab252b4aebba4e42ff3799e001077a83de30a04f416639d2c5a413367dca04094a5aa11466f29b7fb1c06c5bb4f5f025706ea503d0943b8aab0f78db124b54835701bc5c02fb7513699a494014903490362037ff9a992b02fa24057129a0cf777dc7eb33077d4b2df32992c53f77661ba31dbe2e82fee877d11988eb13386d8bef16e7f7143b00e28e812bbf7de6bebbd321fd98dd716ef77ff7ddd98f768ed14465b49841849159e1747ec1bbb116f11232ce4f98e5102b59288000ca2ddf19b672c094916ddf724d9bdc655ae0439dadde96c184c37fa1631b218c5b184c58fe377ff4f8ebf7108a87b24f5dbdd7d646754117e0a23c6ef10418608498eb15a15cacb194b58747fe20a228820429cdfba311489445b2412eded62ba11138944e077bfd9809f01372009d28d38d375a3dddf582f4df71d69b7d6546ede54794f9b8a303ff94a02d85af1dc4abb7a60b01b0dc3842ad2a0ed5b1c622b8f96004ecff3bc8df7791ef8f6451abacdd78d9beffbbeeffb3ecff33ccff3369b71fbcff33ccff3bccd88f9cff33ccff3bccdc8fde7799ee779de66ccfce7799ee779de66d4fce7799ee779de66d4ff799ee7799e0792dfe891dda8ed28f88007a04b088890c30e7c40b9a0e4c4070cf8aea80f17d89c5d511f549820a28828228a8822a28828228a8822a28828228a88d203f1443c114ff0756c658c0676658cb1851d3b76c78e2f76c78ead630739895d1f104d4413d14434114d4413d14434114d4413d164b5aa2aa209564deea697fc4c31a9a42b173dc84903409de9006e3e534c2ae8c9344dd334cdf33ccff33c2190d6f4964eb754a6699aa6699ee7799ee7a9324f930a7a42d994699aa6699a366553299b32324dd3344d73059282549f0a51fa743a9daaca3d6198d6e18340445397d8b50078d9fc371ff1fd0b0281808c5c171cc3b4f6125814ebfd10b3602b09ab85121d43f58f7defc8258a40831837e286be7f2dc702b6c98b1bc92a5692ec6b3521bbd8c5d86575a1f81e78f3101da3319c65d8414a38f7b594315105e3d16a8bb92a091b97c70df96b80fc5f57a8dbef88b12a36e1856b47a5c8047df106b17ad0c40f683f85f245dafed6d18e0ee8d235451b74e9a88996989842d7c7f5de6b3da3a5ecbd4ae8810225b6d9a59e00b6ab0e9d1446881d2242707036e0e775fa12c1e7755a93e1309b966157b6300d1e34190eb36919cec0952dfc43490d569f5271006b30141f941521dd98050a43051b7f00404014c6686750bbd4ef3d60ec3588b97b03b6add60a0a2693c9945de414b7322aab6474dfaf79259bb295e7c52385253af38abc22d7905dec9c6bc836e4157925a7e4151f9325e268a2344dd3344df39971c82af99457724a5e91cf7c86962805ccc599a8a10ff42e9b3b285005aad2344dd3344dd3344dd37cba8865029df9747c793ef399cf7ce6339ff9bca8c78647e59607c9b3f210798c3c4a3c693e3f387c583029f3b4785a3c303c36b6a7e58678ef81e1f1c1d3e251e251795a3a284cc2240e91069dcf7ca6699aa6699aad4c2693c904aa36251bd186b44101a6600d50c5a19e94c7b3baee31f228f1a83c2d9e5467a29ed4e7fce0f051f99c3e2b9f94cf8a8fca456ca863a393bea8f3828d6527d561b9a0db41852617b1a10e0ac3b40ec3ffc7e4947d4dd4503ef39966ab2bd561c8c956d98ae4f25b8e39349b30ad39c8320cff03551ccaa196c87a675aa00ad33a0cff412011a8ea4cffe84c8c8a5c768c91a00a7b522e82d1abc390c49e14a8f2a44095382289237144964f1247a1c93fa78b6012a67518fe8340d9189afc6309baf4a452ef49ed16b2efa05cc4519893a5d6982cc3f01f04eaa0c4917fd86c5f3b6f0b7f5cf8d6ac979f8fcadebefca0e5e7b47df959f99c1f93c5d8f6a45c380181bf46b0634305e659c0188b1bb1de6f355b395feb19cb603f123ba80eaab343c708df6141b141980eaa7c8f2cb10eea737ecebac23566fbda795b78f4a1cc971f175b7ff97ef7a7868f0d9600dfdf07096b01f4e73440f959d99f94cfb9afdd9f1537c4fb8b6d70cc2a09cdaaf09ed4c44afa0c5353aa624a612a9d862f02894e2c459b4295176df4a2fb3e265d4cdaf71d75513b6455b0a18203965d778c2d2b632be7ebc2b0ecc2b24cd3b60da36d180cc765321a2ea3d168dd759eee3ceffb4070b3e17070846188102236186ce43c070706f3c0c610185649d0a0b1169ee41f1886611f9a442c53805f644983be756771b4ef93fce386a61169df0f4d7585d12785492eeb9a690c965dd124882c8d5dd124a45ba9f493f7757bbf3957a28550a4211cfde41ff64515bad454254d5557e8debee6525748e1ed6b3f580270bc7dadc60df9defe26729112169d106f7f1bb9088b118f012cc421dd904d8acdbc21e0dbd75217114574bcc6e1db0f47cc3f6cf7dd08aab017998deb85ff56b76cdbfcda6dcb32f7c71ce7a9751075d8154575d07e9160fb0b0299081dc3ee86c90e20742986a18f54d2926cdc8191d9ea18b1ef80faf72b499273e8006204ff7d8d4b00266d107b73f7bf306012bf39049b0d626f1aebd3149360cb8d5cec7223ae71fe4d635924dbe24672c6fa9cc90e17fcef2f00fb92189cac1f0346fae3b748158ec791baad8b1c714367d2ba206bc286ee357143d7dd84872ec61887ae655996151a73ce39e790355ed7755dd715ba6eba994addf39e696a325991155594145de88c338185ee6f9a8a4b5a98458e64926457ceea48407eebed26d99563219375b3988bc71ac2985423b668d1e2c2b4d0db4d6bcb0e2fa8022143c60cd6daeb2a268cb19565a0649caeebc23219a90c95a6691b66c6688688e3b84c66c68c940d874d7c81b5324ebc438d193084b0892d7049e1e2019719760bb65bad55915427acb5f7a2334aae2a552fc226ae40f5427542a9545433d8e1059dc864c83206d4c0e4860e2728d016a18c879dc1b8b4cdac66df6698cdb22ccbb26f5774460eaa16c020460d13c458020862a44388e10415316c902006104788b152890185182fa80c0e6c6e575486e893daf7fd74939b4e4a5d54758c2d2be7cbcaf9ba30ecc2b02cd3b40d9369dab66130dc86c1705ce6acaa8aaa60b83425f2e84ce83d6f29bda454859a50269b624b56b4b2d7b1a5c160d85733dba10b035c3b6f0bfbd677872dc21b2c01fcef87a6d014b2ec50250b4da18b1b7261bf309b96751f462499a821f0054cdde236e646b419711bd20605b80a4d9d0b445267762b1d87822ab006580374015f3658e386780fba803f80353628c014acc1a15ea8c2c178680255a02a5b752bba925bb943bb94ce943b95ce4577822aae857bc96777d29d7426dd8add9ddc10ef3b936e04dd49e7a22b7527397f21064c71677a3ecff3ecccceecccceecccceeccccbb17027b7b81597e2545ccad5e0509da9a5d0567c4e6e855be174c0b16c6ee58678cfe980db01b7c2a15c0deec4ade49c73ce9f13ec4a1ccab570292ee56a70276e8513813151431cea229e148843fdc37128877228877228875e0d8526722bd54e8da499a956d24eb41187661c324b9abd642fd90d0dc5ce5e6e88f7d98d0c0ad98b76a289b29734dd642b2d8546d24ada8926ca5eb255b64ad3344dd354c470a77d4dd4d0e7fc9cd90a94add2344dd3d4d39cb355b6ca56d92a5b65ab6c754d01bb7e7511ebc30f2f15b96efb22b55c1066cca1bbbbb65376e9290c463a6a83d62ec2658ec276769576493c6320365cdf5a6b6db5d6566bfdb15fe213ee0dfdaa2b78dc1cb67a512944a02205fa8b010ab4dec1097e3082e9879406344e208186c9d62b3ae0346e90e16a1a39386169a0252094061168acecf2417a7010901d76f095afdcdd1dbfbbfbe5c1c3c3dd8a40b87884473cc840d7a0f5aea84b8b8b0bcce5052e2fb0cb0a0eb4cb0c2740efe1a242754206ab2a8d5c44bbd47f826518967900c358c0011ef80045097a10c2583686852d282c9a853eed0bf40cfada159df172036d037d997ea083a04df40af48c140dcc6801831cd8ab19b1fe3ad93182df3ec946807f7d3b03a75abf44932e2f5434692ca241713feefbd56c9a91872a3dd4b5628de8755b2debba36a919d94033b222fec24f1724b2a02bd7e97a8131a764adb4ec9c5bc8d855ad940b3624ca40677f65648a9dff4291359bb57bb3e6ee59c318e3ac5996655959cb39e79cb37695dc54a572ca3d57a98ac91a59d169e7bf381107396bbf69ae42233b1290fdf523d985daf9affc24fb00f722f1c87aaf1bbf8047f65ebb89b76aad65fc99cc39e7edeab0a11f8047db01f92bb0c21c068f5c04e47080258df92806413b66fcc0918b5ccd7390a3cd2141b0b473876b6387ffe6495e443654398e158773fe009763fc5a3ed50569501a1eb9c8adfea13f864f93e27c302a08749ff3dbc564cec407a37edcd7ec503fee733487f3fe7bce6f1626e346dcd01cffb5b08c7c1ca486c3f98f436adc840d6d326f398ed5d8e102fecd2f00ff465bc0e637d202db6fb69506e55f6ad4c6ea1fe00cb47fb9ad368fff43b9c8c696e1b62bffb8dd6b4e2e827291edafee204b6c6b2d822c5db5cbed5ae50f419658cecf4196617e0eb9dae4f25395b6dc5615586debbb725b6d4f77b97de9be9fe158ed1b5e2254f50f6d2c5fc0a3ed2edc10261d35e284f6bfc87a4372ad781462e1255c146530dc4b0383cd069aa57cc12d39b27bb35b6cb1e1addaebb88a98ebebd7ec2a4c6f6cacd64f1597b070cc5b6309063ec4627b1638e52b5fa1fb3eea27b7a40d5dd9b2175bc7999202dbc98de47e1961c3e20dda5fbc41a35ce486f055ea9041e3bf4a99bce4551a3b36a0ef3bd6d2abb2951871438b3a9410894ca69494a824d22fc790a91100000050006317000028140c0a44519885388e04827c1400095482426a6a38134d4471398c433186c418220418600c200400cccc0c910902919c1103bf40d0a12b72231362628c88420e07be6394428bdcec76158e1eb20c8b3c85649c37600d5403999316df13106f3719e503945c14072a79aa864c8a5ed70b4ae9e74c125f9a1e03e7a75b2b2c833b987ddd6f534aae089ec40930cafa62f5cbbcb0887a5ea8bd4411e2f8c0653f06592e29d40e315d22498fc186e4852830488e5fc9e9ed08d661f638d1f230a7c63413ac45c82ee43790f7a008ab22990ecef63be756104db94c971b1f8cd2bbd36109d1367250e1d2275cdfc7753394743c4430ab6549aa4111f43d2ce0803fafb27709692ec1d3bda9b3e385e062f765068cbd35bbc58dfac10652110cbb9e2caa6ece72ade85720860ad45422e1212216cba2ef0b286326f604af0717fc3e5cdd6f186b91a26cd339d690533b27af8d8ac4e3022ead05976b6ca0217d7b703d7f883873c95821f4204572d8d856b985039a0412151ff815e7678cdea1a438974b092609b6aa6a722446b10aaaf19e4c6a52d5c587d6240f0de50148888e0cea47f982a704460f4bce7304ec6579c9c1ff136d973233c4533239e889a5b31e04700b2469c0d8af1cda264c2ba4c13ccfdbdb3ae85ca6b71e1e314ed5f3def7d26f59e900f5dfd52a6635977ee3268db84ab26b66296662543333c29e140096615443cc71e20aba947483a7fda419a39f4f76b91d9239ead9a3a16de772e5ca88f89e3ad483e8b500330f94d8d27e5193730d64308d9fb5053e761b466b21207a8ed4d6a16a88fc4ba2fb94ca904695eefedb982ded61e2db8be0353e0014145f70fd7d0e319d3344515fb75e5698f1e1d60d6e6882ebad5227a271f7b4fb0dc79db5f86b74e4f14635536864c9c3a46b73a30e8a574d4e16ce65ebc5f6c741a953ef82cb9dc07fa7d677ca3b12ccee7ac11d70fb0911ddeb05aa462e1debf637913267e2d49b476dc35eda3747e6d9595aef602b843f72449cdc2ae0a56e0cd85efa9a8cac959c5ee75eee0f7da03dbb8459fd1b8569d59b8de01ed6f68834aea2285d10acf0d300c36feb716f7cdaeafcb3dbd07fe6fb116077b702d519f72d9a7dc407bf232e4f5a39096597441800eeafcde8453fea85ec6ea36372408a809eb4d64dd2d8d48434cd79c5e6bc41c153c17320d5d2dc3480e47c83747607b598d17e1ccb5869c3a254520d12b0d60068341b4400fc3703fc49f5ab49581ff248fa492d2f7e297976a908acd85b9f292da67776c32160c78aed53581cfa8e36e6d969d346c08aedcf2f655f4c2e695831be9401001b924c5a436435b45915f556d7ec1f0f9f12ddfc0a937ca037667bbc96f02112279eceb37aa2df71218d8c7e6e4ea34281ef24b2e0b41b060e7a3602918d3ae53461d1b335aa558dd2e26c7f56b126ba867d2300459836aa7e60317e1aa04a2d3e67e596c322305ebd163066b6c59d277eb63a7023d8602de81eccf91577d0c1c8e7fa55561e2b1239daf424adef0743da9c1d0e117658a923da62085c2c052823af76e5b0eb2068f96ddf8264235d3018293068663a40361256c976c7a2cba100ddf2dc60cf4b04f3c8849ff52c24d23d6f5adc79bd26d51de2897ea30453194fd6149c22d1436cc8509c4a22b54d26d818560b1321906a77db7e583b93b8c8e7a35ad10217239b04d37c912f47b5a2002e402619d248214abe1a7556e89b803cb2e44936392dd7c9a84d3ebf84c8264f8614c9a03ee533161569e19778469518eff424bbec91fe04396cd0421b5325caaba019e46e26845281a2fef431b6890026d837d19bb756c082a83d16475ade722a9d92c6ed49a32f6a89b18eb5c6cfe98124eaf17db09d72882f73d5f0908c3a2e7b289faeb38e6a67274c6b8d7f21bac674d428fb75d020f4f1a23c1970ee2253a552de6c3bb1e1887d0b3c7b8f6030cb1abdf3c60e5f4a0154294228318eae9c1e209fe9c84887e871938481f2d91149c16813a8c2d4aaaf9c4b6f22363fb3f0d619b38f6c13e32450a3221413eb4440500eb4e59bd3c462003ebe991d7252146975572aa17b5b1d93fc8e4ea63309808691a901bc8cb2087ee7bccfac9aebbcc653ad15d1b8d82b06b392994b138d8c3f681c053f4b7ed4aceae9bf80408c0f97fcbba7ef31b5e008a88fc3b7b1d7cabceb1449c8923010c63cede7fa8bbb20946629303aaf01cea64b4f363f195330cb5f57cf1e039df23d6731008c9007828e4ed8cc2aeb811c95f01656d9c8a66e23a14787c7a0f440a529afa1369756eb33b5114c36d4208ebc867260def48394efccdb1709034de4c41f1f9c016b6d108e85561712c5aa8348e3dccde12936747da8b47ce3b91a1a86b941cda95db949453382cfc4ec8217703ced06d7d26445d2f9fd6b6d2480a767502256c1c7fe7a410d6be8bfe0737bec7997886608fc0e134b8113a7b63a540d52285d4821d4ffc253ee711a3f2528b97010c93e9010ff4c1a580dc22152b332f28959bfd2392c1c503f972eeae079303a742036bdb8962df60541aa394398432f4ad10932c400f3ffc7a54e89b47740c2a18034d396175bc75a53d045558c279375e6bcbb88a9bf4d95cbeba85f1690112f11dfe7cf25fe71e157b97a40f58b4e26f854f3625728cab52b2225dc25e209b3bc8f82b88ed4a52d8d44b6e6fa40b2d5c55d66c91ffc3132063196c44644f3b74b778e08163d1cf2cecca4a43eacef9176eb478694f8aba419bf924ec3583b5c8d03cf670043ff8d4ef674c0e0ac2d702d6b38acf18e5a81b752cd954e0c907aaa8c9b2f729d9a763c74b9240c460ca401b8fb3cbb388cf6771c5014cd0068fb4fe776822a0b19fd3fbb8fc2b45f39ca8718841ad2190cc4614d050d394d4fd4212583cd8363edc09f6dc6323e69e09064b312e3e434e4e6835f6896e379e91c6f6daa17c5e0eb63f4f6d015e8783080a111a78b2313e5660aad138419df54f6e77709a3622caa987cda8e30ae807ab3ff5489d2660e4f6f02099f55d6e140793f0c1f146215356fdd92c6dc79ed11708a8c76cd6aa468c7d4ea2603af0542ef9f5d762132b86975f11cf6f8254bed96812282105eeaeb6e852e98a0b81b4d1cb1a57672f9933849758b12b4c8422be3c0de9f0efebc47a5cc4d2236e335be99a80422efced1cd66e12c4eba521d9a91b5ed94ffe014f4fa0241b1d5b657e65e95c42e0b9a853a5f54de691fe363d85aa96eeea85ded1543cbc0a392daa0fff4782619ca7a1eec7807b9e1c63378752defd9085825a45ebb9dec3a332527ed3818037dd3e18197d5ad9efe304a47ffb017310ad0ee6f0ca15feab5adc60ba39aa6e08a08d0a6497833219b9bd6dc1c180c9bbb6af630d6b94e343eba719379dab1220ce88964211fa232210bc7e64a928af9f9662a92d918760f60e61ea28bf71025e384a62029942356d56c6c4035b83ba353ba53b007e17a9f5a19f2a30ed55bdab0aea864e0acad6c46621a7712870edd0043c6c7e4b2fddf70e6d81de9d4d548705e2ff1196e453b80fd79cdffc81c3eabe324454efd3974a71e159c520b53840010b06a9276400cc7acbeea516731ce4ec7c8440681a2f5df222932f9c61811596455075f480a090bb413c521936ca242c871edc0a593f34292e753019b1e7c09c6a2685956909484c5575311fa06db4fae0e9ebd4c14f7c0228e13262ff9b90805e651010d819ad7f8311a6e40c7b0942f36bbec0affa3fb9669a2af6ecd49363ead09f1a1b3826020337578c962c80e934aab906bdd74d12aacd89646677a4838605bd51e6f9b52a0752c56b854610be6283a00106940abdd9de3089de7047949469bfb7ab94d5782f659e17eb995706839827450b20a2f055bdf4570e7ac3b32f15555b183b3f2cd96acc054450d62563b6488f74245bcddb36bf31d3495c7896cd4526785079d15468d91487588aed8908db13ad924a73ff216f164615678a5357ebc12bc34be93e7ca88e2b9c77f2937d27c0dbbe39deeacab8196fa95d21db94310346c57505d394da9d607b06d2222edfb04b4cde1ef621313b2dd1b33b0f8d9ef9cd5e50965fa3d712cde2841cb78c4eb811a05b8d57e1dcf42bad02b604c645057f8d63f139b8a64f46c81a554df87d1130af26da85b9b4284d183c321b60ba382ca92b7659f4fbd32eeb7911cf387d213b82950c994bddc9b42d101c346f6c039afb6bc476158d7c1d0703566d2825ecccec71812a15c33fe47a2034e229259382e75d9f69d1c453d5fe6f8f5a154871730c49cc719a770f2f0cef222fbe507a9e9e6ce9ed973d37b0081e403beca82a756953a35a5eaed56d437634c56d4ddefe350f2eaeacefb575435bf2b56096052f7097637926e6058616fe028e70d89c11b2a4eff4062807f7af2801cbc85fc74946395c778a429714820d7f303fa272f3eb41e29ca819a730e1e38778388c27473df01f4b886b25393527aeb1eb772f03360dad3e379c5fb84767b7ec3f7db895b0e72cfdae78d7126bae225185cb037131bf39cefb3ef9d89e1100c980ae6c35f2f151c3fe0472a2bd05924c44a6860bec559dadbefe55fd82ef65538b4906fe46c83be1d1cf8aa062c7dbb65fdb3afc2358f447b055672b991a7f3c2350a1de0fb07103fe31560c9ef569ea6fa040681245a2af0a5b7db65ba2e3dbca79e9d8d5f1b243352012e7def82b01bd59f3737a328fdfcf352a5ad323d70658eae001c134f6b7f536d3961567c7506390b1b20a7938754ae6579c5d522bd672de0d41188ebcfdf7bac1bb59f649d932549a5e2f54662a4576b55fdd7416c8eb5c643481fda9b757256096bffbccccce5b6b208c2f055676a3cb1f2ed3f52eff948233031c108fc448056885bf1b4386e8d8d465b686ba16288b7d580a57d5eae6886969024b27423460c4f9fd2ef94c6f17584bddc628bd689d685679b04f4a6f0a4a4c6a08afa1bea8a3ead8f5834d229103cfd4d32a06c3b9daef7d99517077509ec2d975217438987c4694247e1a9336e5b16cab2a21dd4c1cd289b967e1dab063e4c163dde0d15ae82e58039088e9e0115a2b4c3421e7ab734550dc51eab54acb73cfcb779ea04c289050d9816dd4a07d70cae326c94d1a94ce41fdc471f421df013c2f1cf512a27c6cd82593e0d9703e7680a5ec37db067267030d1dde8b77bf188864203bf6ce3e1018c8f2082bf8b5db5df3f43eb7df38f60cf782697b520389543b6794d189a1945c1e971004d8e2eab3d48cd419d1024703cb902bc442396830c28d69e04dde4c1a6e8ecf925e385e68969d5bc50977473f0e9304bd5d1a031e9d56c2963226742f12a873ef39a3073642c21a990d5f364c3d958b25dfb0c275d3b23573fa8a720a9206038f87c23febc7f5e34cc9053fb4c5a769b2ff8191e94095e8d4e3192771b055e6f3d006dd375f54b37ab01e69d714ad4481b83238779ee6292295c1c78984d5f7fe4fc8e7d8b91d662bf0b170d5a1f43d92790830deee6be57cc76bf8b6dbc838619ab6380059c4fbabf7ad5cfc0566c9cdaeae071f4a53eeaf12953955590d03cb27209efdf42fda66929098a0a1472120d04cd339e65e7cb8f3b22be9377e6e5aa747f9f7c08d8e599fbffcb4e0ba58400612405455c3869e3bfb8ce8d1a2543ba34cd2736c4dba1da59e3f360630eaabcd694b7e6e80a357b7dcff18ca909bd040062bd1b4c692685b56ba552ba330b509deeffc273c75b8a7f1176e428ce9e5e8b7f112054a559b43acdd647688ea6f07c6af99d734f4e7dc9bd99b75348fbf689491d7315b2fd7c50aabf1a9157b2b562499b87b927e4ec85a3d46744415dc5d9537d9790071b2f6ec41e8c021832bc4342e62c9fa4f2d99a08097d0a2b8bac83c7ce7b3fa2d76cdd452284646a932b687e4ced264a8fe34a05da65063d99be1902cb7a0d36792263fbafb0d06c88a00829b5520fa8f35ee5e2ba135122f23b9402cbfb443c82d892224117e61aee5dd07745a19e8436c80cebe6e99f88678f36c1655e8b4e84e862c0956a3817e04205c2594dac5c210409d287f043b7409f709192480e589c08eb2d48da62971545d4e372d501cda3fb60bd2261d61d41388bd3f9abae2a81b5b9d4b29059c5f32699a8a923e924ad0e4cb2cff35004deee0a8db20418396112862e9127603e0d1f5d71b564155911e8d395df40374a49e5b73351a328bb6447fc4a8c20de92a822ec786c43238812981d595948e75000d87173844318ea7b3baa6130a64f1a5629ec07a66b581db0c10266fcb1638dcb3ea5fc10d9841fa7004b861d656d30b2a1ad8b1cfa8781e7765c41dbc99ecfb37ba51405584f700d465a88c8a46b4cff0cdb2ba9bce346c919ed94bbda6871557fac406847efb28bd6ea44548491bf26c27c9e7c8e7dc30b73b1c259fbc564507a22f9c800021fe091314846921394d45b852f4b5437058dc51de6cd1b84475f1dadc289bc66c023d1c51a6c38a8eb6491d2fa90af82fc82de31cb7b7f962f66acd25092c61bf1481689219e19c3e8abe18d58e978ca5e1288f692a1aedaff6005d3fa6816a200df50a7d313cd34a808a717ba15fa2aa7a0dcc63462502f83502b4ca12b3543588e435154884248683e0642ca820f72d4a7be9709adf9b4c5a7e92daeb571329c10d71a8000eed555f6a8d3333e3fd8617321d9b982eccd67f0630a9f1df0f0ae150bebb99a2acfc91cfd63dd0919eac9fe8e6326481aa3e74715d4d1aec08011ed0973a3ecb44fa8e8d1e668ffa22ac000628df61fa582f30f6b683f79e4cf96ca796e53ab7ea4467b6f961a25197c2830926dacd35eca05dbd27412e90721f1018526edbf361ebab1dd481af0cbf073daaf536e92e6e661aa25fa845843320d063de8dcc47d015be36449018b45b7321ef862785eb6923ddd471b2deeeacf4802b4e7935b05fe5388abc437fc6ecd43a7af890daf0cb6c6b2a8232b91430ec6f3aad930015b740a680ccdb6bd2f100352e4af861770fae59ea71cd9c8a75f2d96deec8db657f20320d7676728dbfb2e0e74d946d74460a8f107e0e8fbc26cc522fa22c11eef52b7e788b6df908f041bf8237d45ac9b1d8236b5c29dd51586bf20e1349b90f2da2eb1d2b021741e0d4139dd7d5ef8c7b46a78946c95d0f5221cd984ea082c5cfb65688891d0b0741bfab0eae8911896d267e07dd500bc7f83f0490eb4945c3f84e31b2c7b8707be4ea1d1654801324005cd7cc8876cc933e1942f52963fa9317f248e0fbc19d7488aad0c2a74cfad705f6101fda185f02a175a68a1f1b98631d2f6aa925328412dccf7d75d04da303e5dd0fadd0b382dc2062994d887616a36480a9e7b0f03dbd5282404d281df5018ffe25542afae2d0f032a7747cca7621ae2a198f4a054d49fcff3610e6740c6f725722e99d525b0d5b0f5abd041888a28a2f60d7c1031ddc30847e12c27ce308e848420db33923f4f1fc69f8c35729251ac141fd58711ce39116b34e06150d16cab1a027c98d4106a5817084054bec8344a3fcc8f92ed00be7d122a0974e4f630792e26a42f2302fa8c1425ebbb874170c3a20df8c624f001a3ba3fcc84c926af6cb21a2f237dc18871e9c03bc9d14e74da39beab1258a071cbd0af28ff24656d34b86bdf0c0278989f59d86176a12370fe1ed08ec80c528f9e9a19050267281334f811312f35ab666815917f9869feaf23a6445012522161dd58b33d97f7ab04c353a0099541dcbcf423c6128fc9e69cd7a211c37531e04a359c0b70a182b437d98f6c576930b4d2c6904af0766ce2f26431622cacbfeb6ea0df399da785f44ce42dd0687f86567c520345f79c99e34ff43ed1211085176730cfc94d2807cc31581c181973023705a16c19b72be1c3e646ad1dcfa16710c901318e2e6765175c6497f3210165c7851d2e296601050d97ee5ba562503f03ec852671321ac1a13483c769a813095a0642c89174c539ebf4a5af494179fd26c8f2389e3356a0d2c0ed3784db1f23eebddab8782772e329cab510022a4fe9974415af520af6cf57bfcfd50469da442874ec3497dc31ee15cf50b7fa475024817ac9e4a325dc3679786ae69799f7fb85e893a12cf6b08cce0248c1136fc980bffb8784c09c3c8dc2809174afa95b6acceb76a791ed62c92e6898099ad9c96de68da9a6a9d7c980cb771fd023c91131f8ef170d40cf25c7760e04179f47ef9103e792a15fa29359fd881f5c12416bd0a9d9999a53f6854f4eda9c2e4e3f94003855d736c3ddc72f4bd6f422bf743f45bab3a484c0925932d11b03ddd8dc511af865f8e992ad61ed04cb4d533b66da07185f1419c8423cf8c42de12cab44e263c98a26cb8f9dca837ed62bada1b641ff411b0dee22bf440f4be6f35f76d356e58af0fe3615042d2ade51480a1ac8a7aa816c6a137a8e3f27d2c036022122e888994d2a341922883929a2ea61bad9fb8b9bb32cdc9344770118ba59929a2c7f0e9d04ce2ed564d6e9dd72c63a35d6c8a14fa51975f71e69191a99e6468eec1b89e81c9bc95a18273659ae8518cd0d650695603c6f898abb3059423013f51736616ffa61daae2a8c3f41c6283ba46a531cf70499ed1628955270ec8f09e30d5cec1cf138576cb116b02191ad984e47dbc49e03eeb5c4252f303c7ab5105b2595247cf18e4e0589ea9b2cdd970bbf1f0b644135ce705964b08d4db861b862d683a889a70dfd88a6a60bc65b9798a45d74c277d98c78a15e246919089523b82bb6b55a0fe2632b3266f8105c9cea36c309cdd1b6f4e21a51782f8361cdb3c3ce5710037f482c5ea1580ba9079ffd837c9a0e16ea62fea85b8ea92f813482a4b2b1f1696372332d781c165e7d03649292ed4ffc1df43926b3088a0daadd096285b70badb535f7947afc6bee56c35de0c4f53d39f1f885c00b651e0ebd1e7f126db97df34891df7299e1c9659aed345a128239fa8e245cf85f5f2600ba66ffbfcc79c656698cfd6dd3c309c3520cc4d7593ee61330f99d740b32c52415fd1062db3138b69739c72433d06eb10d60bef27b345ec9540971996ae03428eee1ccd499f3cbcced66460c1be7cb14d356885a6a45142a2cab10e2a799e2bbe0042ed36808986c13a5d03b6a21cb2f53d4c56ce9a38bcc5e27b1bcfaf832d16c18bd615caa84becca8d1977970a2c90b4ea1d2cc430f3095281ac8903c1e0a5fa06bdda0245c66d1309b080355128f9484a1e62c950aeeda7fc10d2ef307168e3ae0a9a0ffd3face18f13c775adb7c662249503d2aa3bc43ce1f22feefa8572e6766739014520ad00b5a8dfa61ec7379044d46434063bc7969cd4c4b3ca6cd29af513393eb63a02f6db8ac024309da9c59bf82f82463411f690b2a613eaf45ba2bd9c84c04dc643535e207b8e3d746976906c489b33f5bd374c8a6facf645e32d10c2867a16a14cb9d3031c50642b555863921c1542b54a5291ce3c29c6d16844aa371f6070957360786acf53ab198e807a866860a062abeff81b4ec67f272cca5e78a57486453c80f82f2ffa52b5133656f01421e6106234faf6ba97f320179ffe1b41caf03b61945361964fbc2493c4109de20a4fc0a5b0d3e5bedff020bdae03572e8006f809e12c58242f3d4d6a8af624ce4aeb80d201b58151050869560bbd08e1ba1c64d3a08b6029028892221eca48800ec898a502b7084fa4912ce9325a86df80c756956949814906d158c99c61aa890e016037089c1cb4be93b19763183ac8319b8010b42e02af4cde3cb70e875c2441dcb37b3e00a911834fa26cfa31a4cfe111af9ac9cfc3065fa9fd4f259a79f092ad08ab7d6fd231b1e8ee8dc0dc221814afc2d2180cb0e10fcd31269ad9dc4124ef69fbd2457d14fdb665606fee21cf5c9508fbbd270682285a7c9a337bf0249a7e15ad0c1f2b22091ec942457700acf2245cf60d3f37325b60c3b58c30a93ef0e0d52013d3a881ce9082a49f215170a5307af3206924303e4e8e2e22b8bb28587cefe4eb911ebfbbddaace48a5ef89705425e548044e98368e7fc1a5fa008a2dc66330739748a9effe2e571ccc091c35ba1fbb44ca322dd150b051edde59a0ee1908d3c6a8b6869598dbb0769e999e00fa385acbb641611a74f23e198b02550453c33d144b34a7588b09e87937c23767635e0889c977a3ecc36e2720c6612683de818a1bc4839135c6ed2edcd21b5b765d5e9e2493db9747d14fd4a3d02025e9f365ef8455f7753c98b21d604e8a1f207056b08b73681aaafb18245d69b893d8ca2656f738a94651b696da5f6fe3b3220b01da67ea07a7a5794dc2605502827d3feed0a48df33091081fc82713fcd08347996970e9c5a3c9ba30d5b70f1aec8a9136caa5413eced88b1151b003290a244d45465e7cd8239fba06e84292af205a86ab5f4fc717d2ef26e71554ade0839204b850f4a0c06e347ca5585a92d838f1e202f9486caa607eb7804c242a440287845e5203d2aa86ea366bbd6c8eef1ccd24d2f0d9c78c0139bdbcec3c0f33146fa45bb003eb06fb930917a9ae8ad36f78d6700b6d283413f7e704a555e117ce1a61a69853dcf3065bdd6555a9792da241566ccaa65c11e06c4ba6209fc1afc01c03bbf946b9c2ff7c1877d7dac46286b90b87f0c665f54c88e39abc40b845429ea2162e30801d6687c7175f16fe759928f818461e1922e6f2625b3836e2ace29c0be533e4902f1ef06405b0df0db6a0d2e9ccd7472673c0d8a2b9cf8f7c7fef8dcaa3fb9f2ab7503f495c8d50c2615106028e74f2ff805a7bb441d3c6af626d9bfa82785eae4c3e99aaf0bdc7eabe1b4969dc4fce6a6ccb43a24ba920d51535e5345242be6b5c37f485f025425056d36c9cce42cd939dcf82528e4f7d513b71685a8f6bddfaa4493df1fda26e13e2af123586272e7db66a4dc1887121937b6e93e1b2ff951ee0da5a0b3dae17eb88a1a4c82ae5297c4330a537d3d7308244f84dae6e5c56087d4bbd2b1696feab1c5d055e42272ac9217690168f453768981fe3e1072165d8c83ba22d9681ad139efc72e4b7142c279941fe21362c062ee55f3efca2c9028b46b884d81d8161541b625204b37109b6bcd09cf9e2cd2fac356f370ed8cbff061a30c49931f7fb4eeed9c98c41a982f278f5f449d1d7644bb59d1ab16fccc64f8e86635c7dae1dd72d8155603da553c891316c1135c7882583b97779dd581765447e684453422f32ecd1dded579ad5818884b08ca9a3a2c1b72b71e1ce64822726d480c44174ef060178f10bd7b96e91887311df182f624e6113bba5ee5336cf8934fe16e3c79b3de7a448482f394054138751d7cb6ee00f1a215b519435690f0a703d1b6826a0116789f8026fab499bf3a8e78adc489deb7e4be78ff2ea48024e2f639013f08a78814ee702189229ee2577b993667ae6611b7cdf96982ad5e261eaf1b253c88ac9d4ce037e931268278dd2891c7bf044dbd78b4ae4c77425c5367a3248971428048dd16dd9d95bfd6daaa4ed8be216a171dfa6bbe044834046eaaf6a86516c5ae044aae00c35031563ff088f72a5b1d0adb39791c89b43b475154af4801ff80a05a017483f0cd28c56fbaab76812db6a9a1645cab29dc01bad2534772d767a415c8182ecca488b85d14c8c2acd802893159b870a1ad84e452dcfa3aab45bbb2501f1cc0a6412d3cb23f6aac2f1820e35896bd19ec8ce48d72ddaf88e74700d5c772b4660e61c42fdf00a38d4229bf9ad109f1f0dd9171c373927a670d8082f99abfbb72ad18ced25af02d12fda57b2f1f57fb37682bcaccfb92dfb48896ae331cd7a8981ed97fcfa29b5434589d400a69c09a18f4ed1537a8d71290f3be1b1fd5472e94610b65b4823cf2c30c808955a2f0ada249af4b2543ea6116ffd30b340e4889c2250a1718a46a5980f88ca9531d18be332083b685447c33aad61bbf67a89c27e5b970f073edf53ff639afc0d250940fff21199a99e1e94f5271f860a5f5f22e610d301bdcc862eab433fcc77603fa5b95e3a9b94c745659c685e609893de5b64a6ba81e98086130e214d93a81839f889fd364ab570458f32d335f4429e2028210f3985ebe23f5fee94597be6ede50426fa319410cb05a193cce49af35cfaf19e601471f80908345e4ce756765b808df961388fe42a4c02dbab5f9f201c9fe83a7112a43d4fbc308e8d7fffba56be02cce3714f7744ca72f38e8638f560d23143b4a7f1927a6103243f2408d1249872c06ebdb5e01d59e15d47089fe582fb16605aa4f4c8a23e63db7c5ea6a2f893a6eb44a566414ea6ea60c228d7666a09bbe68c607056c6ca27e02a522364f9b3afd62cde94e4eab12c9d9f119632e97f0aeefd16f2e636147bfcbec0985f1cb7171028279639d0e9661992023d2720edf5e15a82f93a7321232085d215041a87fe680e0113f178445c4f665be4f2b5c186bed1fbc9a390b4312c43add649359fe3b7cb866b34fb0bec239199905de27435c017606315eb67ba53c6a97d1b86797fa19edde0b7d89846ff5e2000f0c523b71f1e71645c2f6fee8c86b1d91b31b6c42fda69dafcd78f29f400e32b8a44db9a8893902f01687cc78f0c77e9a1932f3ab874be6bcfb922c81ca081668cd30366ac46fff003116b1e81b3a785ebb52f206d0d033cc90c1c395eb0e11f207d0d033c8b0a1c319539f7b04dc18bb91483cdd782b8e3d026f8cdd48148f6eb8957913a837590c5dc346034cae04d2d53f60d0b0d18045a0697c9d838679b0a28f45e1753cdfa1480b8428e863f50d11871cfde3abfc353d9affa89b8a54a452c97769f45ec469bac875df1d7517398d4974b3e48e94927929335a74ff9b3a12ddd86c92f7464b808cde38287892b8a2d777c8241ac41306e169ab06889ce55a04f88fec4468b12098ee466ef967fe432a00bf68779c0f1275f64cb1c246460a132c2561db3c483967a92568e814f0f30151c6eecaac389c479f6802a9645432c4c9560568f423d58894e240760b34dcfc3ec967b4857a00c03bef2642968b0804cafc8dba5786ca0c5a1fb8514dbc03818afb6164d5a1958fd4c7f80096680ccd1c71fcea788b61dfe960c11bce1f95633362afc9a4bcc3185b8a4bcf7c7824c510d8e6c3f78590783befb77eba5418a6d5ca0146f4d4a6360205c4c133ecde2dbcdb96ad1d047353b50ea0185389d05ac130bd1bb9f19ff98f5002fca2dd711f4cd4dab31051615e8b0e68a2609ef09158b442456851ccb16c4203faaba3d6f428a66a37766ce85c4c752ff4eace96599829109ffb900dd44dff1f56ab69f0cd69d51bb0958197df855d29d5ef10020f49d8baf6f029a8b94f35e79654098198d59ad359ae390b107e5645d0e63dab89781485970cca44e2aa73480fcbab9ef2908896a06f92ab06c30db8bad02fc984d5ce87c2d44842fcebc1dc56987122c4b996a8a1c3c00225377cfc2291d9dbabc69ce9c35276fc6ff0bcc80329ac74ea71dcbb7955ec183c249c4f508f15166a49bdb668d912b7964b62ea5caa8ad8327b40cadf1c7d9da25ab7085b46f3dbc7bb6b89f1c36be908e4b5acac2e7d16e7db11cf14dcd1cce2638f0e85ca2e0eeb39e6513db740dfc571d921c1246f58053b261e92d46d8066154fae49971c9c57841468e2e81b387800744b81667c355a98172c47f0f4cd0fd896b5119055b8c7a4a98485f3355c0bc3338b2208f20f08e7a51fa8a73eb04f7aa09ef0a09b37b50c4853194b266fac1872665be191d4a900a45ff351aab7fa281194fb2809f385b79c20eb693340a1408db5c15386cc98668bf7ed0d17bb4025789d3ba5f9329bd28150d30a66034bc9eb0c9ea91dd8c65abf4719eb1d3e64d06060d2468874643a5df63d9d5cc7f142ba3f5c03bff071f8163eb95affa49c277c826ade8bcf2c59315d169e444cd6f4bcf9c4e98134982475e37192d43ba0dda456d3665bcc2ceff63cfd54df60dd9e6e3064f6e4131a409278abce7aeadf3c622ca092f25acddd0f430645b189547306cb505fd062b6a2130393cdae8ca7bd6c8b30ef27bc5671d08e4c9a1281a2708de63f63bc7ff0eddbd235cfefd1a4ce98dd95bb702275c37ee1f66b47c91e1dc1a209e26399bedb2b49b1264ba8092757d792b177b44ab5276d895c41cc65348f76b69208efb1260f090efc23e603c6b1357bedbaf39717a71e7fdbda71da0901d4cb8dca27e45c7290f5484700d3c268f88043dd7aa681208446aaf0011b473859e5e4c8021e5f30328a1cd98ac66e2c24c4223a55b5388283069ccd39a1160bf48b3a9e7adc186ee5c9de33f92fa00b28f1b81852f45a4a8dc752e943e828bdcc14084a6bf832758352324e4c1b1d93386a66b9c0a8bf9f6d8cf15256185f7f37f0c0b5467432af99dc95e84b75c39d75b12e8a2f61e6b0ce623d0017dce3ae1e858bb24c4594df4eac802101bb28b2cd89c764c12c7849d0bc72a010ce7604debb764cb760d217dea3030947e6857ec16e05b0de9b464f502e65ead0a3a3b693759290aaab1f0f604ec3e51bd90e1a0431eb4560894e786e9af30acf406e786301c6c682448d56160908dad75bd673a898c70daeb062baf92386b01d249d9c65b083613cd46b314e0a7a206a1d30182a10515388a992bf84f9de058095dca759cb14e4e31f471b4e299265fb86b39018de0ffd59b1ad71a371c5ba266cd7172e31966f667e0fc415fcde5f721cf594a244bda3d768bb16cad77c01a16d94a1acdd1ff327b13ab69857c30015f8f9b1e4907b5e5b5ef56047c7938e73b43eaf12a4b70d2387f03bae9d2d7b54f8a4bb4ff08185dc500ae35bd334cf06a8ba33449683101c02c8569be59de4d5011882630b9240f8dc0b7e8384d047a48a2afd0d6927e574c570b65add898e2ba8833df977f52e961682f61487cc3f99587f4d3e1dee086378a3df07b2d48f47240ab1841265f328efbea5dc5ba01c07e1ff7fdc4856f7f454dad92b064e390dc41628e4431aca29d7b6957e9fb953b557067276c424909b92be8a4147bdc65525fa0e01f1fb135e5d5a2b6f8fb5c5bd0aa876c7e7e44dea99a8a6dc282154c8ddc6139d59f692932e78f36a532b4f5b719d1ffebceceaf643160d3e00af095aca2c55329a5762eaa965512e9257222b1b71716fef6b37ce9adda889bac9e8740fbcb7ec975a12db7ea1fb6cf0dc8cc27c5a11a484efc90da3941d6e11071ddefd7a3d89f66d01af0d6f2448c4f9d22ac24b38898e0277a8b6ca177f8e8953ea380a4a1c45e13c50cb87b406afd7f04d93a917a6392c65ef701cbabe4c27d151c259b4c43219f751ea2c5a8a1c6c6ce1908db2401404fe391bc7d10f9dce4cf729521edc01deb1e40f054e08e89d8143d72e59029c158ff32892044f0676471161bc993c91d230fc137c43e69aa986249006000249a933919cf8278811cb7c02079960c5728f390019f443b0151307c988a6c1ccd75feeba64e646da8583231372d4f4860a7295318684c2fc2b41fc2cfcb18a92d20f12974d8a4217e4004161fc41575c3efa51b62fefa6cf0598ee9dad1886f63b02fec52af0124c1a62630b0c6d59f037a74957dd1ef5a13041245ec27cd263193c04d00fe80650b1e2f003fc10ad5495734f4c506c09f2a4d9898b54600ffb81265078b1effd0ecd3c9bf2ddeed009e41c0e8e8bce389f63ab747402bab861565b7016514d1b389217d7805ff0c1770b6062ac8b96f00820ccc07ec8626830a19401239c97fd48cb87fbfbeb81f24694d3f12df698d0b898d00cd3972da234f29630049cf23b2858e497a532c6052c7d33b39b88904d2485b6e4ca1da20515054605f649a27cf8171140e8eb65966599d691f2ad0750daf39ebc59c815142dff661dfb9d0d7fb65d2dd36b676fb76d5fcab79b8920609dfd7d12b758b8a0c1e6ed425fff2c1c70f47bba6d0ebcaf38ca15f902d26cc8aafe50840f628cee1ffd4a45dc545555515a844d113bb2109c7a3875301d8a23780a82a66918cbd3114aa79b13121f1e1e4271f4f1f1f1010272b2911efa958c8801c32d4288a6841296144c84e85732c20aa24e0700187a0840a8068fc1501cc12dc7126e0eac2807f85ee79d88fff03b61d2dbc40e99c03a0f015047fc4ab10545fc8002187c3082500cb0670845dca0e0e305451c51c40e1650083e3db4786250824e0e58701076d08ea04376ba51c13d2191028c8713d81798e08a9102ab0824a84a300135420a3a544658a1053347d783ccd1030bfc55f972d4c0258711489063092ba51c35f4d4af94030a2139885470947e9eeb14f0965dc8961d4ad31978dc1b94037ecbeea601bf1d47c56f3fb9691499303280378aaf7ffb0bc96f8761c06f9759c06fa751c00cbf234e3c459477297efbca489431402c11e063cb00de33e97700fd46fa6dfceebb037203b28abc3101de005e3cc5019c14bfeabc2b4966405e4056404e80c95360c049f16bc508c81b87427f80dce22920cc2c459802e4ce5344978ac653441b142846a3ff5008e318b28d4d75f214be426150a0188dfe43218c4fb5621c0afdd75cd7dbce0655c8168fff489638127afcf1250f201f5feaf0660041791ee663f378cf56691cfa4fa886260ed9a0309d134815a8f071edb1e1507e71f4d99e8e3a0452052a40fd01facef6c93040196f387bb6a755c8154fd172dd9f7745f6d57d77c5855adba0c69a7c912f2ff245bec817f96232994c269369b6cc96d9325b66cb6c992da5d2cd2cddccd22cddccd22cb9788a8ac649f13b97cea573e95c3a975a310e85bea2a94e4e8af4549d56aad329743a55ea35d46ba8d750afb126b880df676f5faabb6c69d2114a13bd89302d3ac6d95245983d4b3afa2ccd134da7a3ec24cdae68749c158deb6cdbd549c7eb4d700153986cdb1446c7bf1bd4efdd9c37b49bff650077b972a39f005050b880d60544714a72422a954aa552a9542a954aa552a9542a954aa552a9542a954aa552a9542a95faf0803afb93dea303d4a0a819e1d75ebe9bd51f8f8fdf7933787c947152046900e4e3873c1f3fdfb37d3c68ab34c8c767dff9dbf978fbd1f9c8b34383ca5019a93fb61a7e733d26f76cef9d00e9e4174720b1e3e104670268831a647bfae3c693617cf2cda0ede94b634f31a3957203d05f8f8fef343edef3f1dd090f011bc09a096f06fc8ed3f9e8369bc777b64a7b3c1effc75f8f0f8fbf1e1f1e263adbf47c801ce7a5f620c0fe0b0af97defc49601179d27eafbde09fc9161773adae3734119c6a7a2d9fd9bdf3bd1d9de8579d56ee329e275e975d1d6ef91e3f88d1ab7b15e83c2bbe24c2c7588c5ee0aad93d55ab1ec66ffbabd0c633ebdd35d40149f201d32f00b7613e20c80820296f5984d1c39c05f9004caaf9e80a19e31daabda7cc915ed5badc14a71648f84c04a3afec84738058624f0bd68124f216b9c14670dce8a125bc017709436818fc997359e027b71527c982a4313aad1f1436a705c85cc180aefd1ae353a6ecca4e347eca65a55e8747ce9f34becc0da8db6909a2ad4d75b9baf7f5088b2827a05d3d6bbd12491246eecea60d113d330639d14f0d6503abe86a2262745acd3119312d41d61a1c718e10aacd54c18f1301347e0ed37464c59d58882268ec01bd78ac92e64e208bc2b366285891c6fc20818403d9c4ea7d3f3017c27dc1f0b3a58c815ed1e442e8289214c98620eb4070cfafdfb300103a1030e21e0f801870f100710f10720601ee028601c2d3fc0f142ef47c1851ba51b3537704a374c3f278e0e85a32509fba20e6cb003981b2fd03764a0f7a38853c84208bce2d0e169018916986fa8a8946ea8a07483458a40eaa96dc4e8ab349c93f44ec424dce8f8f684131072292cf0bab895eb026d2214ae573eb1b495374aad9c4a0857282eb024914a824612337401f42b25d19255b512e928a5282d4828524a84c522a14829919489c25bea57fd16e96aad740bb1d56f166ec5af79dbbc47259dd9bfd666dfc96cf616672bb398cdfbca27525b39845d44944b5697da69caad4c9fdc8ac5add0fca813ebba6467696a59d939154ec56b7744121dca842aa15e502d3b6a50196d45910ed67fdbc611ab1e6b8c22dd25d2dd571ad9bc5bfef5b36d64a3abf5781b9dc810118a859b342d6fcbadbfd6e7cb59b849d3ebabf74bbe65b97c87a41c528ecbe827002b2b176890a3e156b4bdb0d749968dda87e987d88b5510a6d00cab3284f4257c492b2b9b482c7bf89c8a35ad8c6656b5ed8b613bf34669c1755c8ac5bdd0d7bbd0536252cfe73a2e05ce203f72957503c6a9c019b2af629c1ab7a22b8bfdccfbc4cae25f310257954b44aee352b8953927b7a2a1f6339bdc1b302d5f836fed7c4a4ba055d99f4fa17cae8b2392a3b92e29a7bc32fa5c0a8963b2258edc6dce594d28a5cc5ce729edefd85394a76e7c4b9bc81ba0d581d2fe9c0a9ca1b2ac6ade1bb094de5687f6c7b6138b53e154a00cf3ade73aebe55d61712b9c0afec18e148d69d057323b84d8f142236103091948e8d05643914e67367ec37560badd0ddecfe0d7fb78f3ef6cf243acb76ea3b5d6469a5555fdf8a454b559f6b5da14f4f4833da8669f8f55fd6493f8d8d3af282de8c3147d28c2a2f7fd93f879179a5a128a941249b9d57e1e5e4b23a5f924ea8a7ef514f8e9c73f89d9a4facfd3df778b74fa8e6c34cdfb7ee8fd3ca4d5fa2d35a570b3c825b0877fad1ae89350f549293803fd2ad2514af749dc229d867f6df896803eaf81a065d1bfa017edc0d73de883ee9bd4bce1adaaf5dac6e256f441f04928196da3c668f5f4739f948232d0af6e49adde23a1ac6d3a2a8e78280c0d3dbf62f561c5ee572b6f520ef57cf51427526e98b349659fd2fa968e4a1ade1a2efc0ae612d66b4fe79372e00cf5e989d4f0f789d4f7b1dfa392d6b2680766719fe24dab8fd17b034643ef2ba5e767a49cfad8db27a1ec57778515e9f435b5655549ca8132d05c339b88621dc4837defbdf7de8c38366e503a4e1342392b5a51ebbd6a59082f8bdd875d4dc39df71146948e930c1a3635326e6ad4c8a081d15dca392b39ab8ad25a2d5a2debbaacc52e8b61f7669976334dc3b8d3f1783c1ec87b3084000107582687165c90630b39bca062adf6de8bfe830c9ad20c87f921e2b8947356159d554569ad16add5b2aecb62d675598b61d762d8bd59a6c51b9ee29db7380b8c4008a16134451a91068828938a2d5d2abe441f629742cda8612acdc0b1519a510359a04c0cd80259e0caa3f1503a9ec906c6e82e258cee524e39ab8ad25a69b5acebb297c5b07bb3ec669a8671c7f301813c3c3e3e40e07f507c401e09f08851d3e27bfe7c6631cb9004fb62d8f2457ef6d6ca1d92f7f5d79a64f8baa4cc9ebe99c76bbd7d09c0af54c40b2dff53448a0e1dfa7a10226c68f9181134b4fccf5b4b31782300b57c1ce567797f7cb5e1f3526aeff1326fd0d78cafcffefadb7989b3bf4aaebf36cbcbfe7bedf1b55d577665dfe9dcb79f7d672b81330dd7dbcedb8bc43bda93444f16edc059662157b4bfb289f6389b806c72db99966f06f9f7d23fb2bff2f6c8329fb8c63efb786dc0fe9337dc2e740df6afb7d766af0bbbb0960faf0dfbbefd7de21acbfb035ad6e0dadebcb33ff12b6b29b365a513b0943366dc1b2e6d330fa1a193374adeb8a4457b1e7b30c6375f355879b3b0c1d2013566510caa0af9f13d6618d2632ef118eb0b6b5f8c1686c14b5f3903f00b5b763696b0d66dc4917f7daf114715f48f12fbac2512bb7c085d4ba2b6f8b51741f6f7e92d3101fcda57006b15c8eadfecf5ad9559c7e0bd017bfb170d98cd6e7a27ae2c6a018ef4eb93f8d3f4c4d2337343687f1712c58a3208b5457690722bb4aa62fec8a5545c4cd1f3655ed1b58ba3a9021c658a5ca92d73051607ca29af975576c012e92a4b56524e6bcefc293aa3b4d11a2ae3343a66932805387e0ab09bbc86df546a23e5b4c918ef60315b02bca50b4c85912e1546bab060130ba6c2d41855a6021147aa2aa3d6c4115b2a0961339772711da7c275d587ea525f5ce288fc9738421f5eb3be8876807fcd2b5f26902e3160645830943ec817f9430c18194e8563a92e71644b974a13477675912ed20798ea4385a931a44b85e154aecca5585ce7c2a96c1c502a942e9c8a8da5615f0c8e33a1bd4218eb90fdbd591591006f3f790a6a72927fad58c403355d6aa235e80db51147aa1bf414472e0a95aa4f4a411950a49c4c85a0a58ddad0521c914f6de2087d684d6a23d2c19a96a805d37fb424e201437d721d8ef2944c5949d15b40e94d4f1a278e6c5af2d349fbbb8eee8817ed4f85a0a638f24a5ba8e1276a22e5905295843a698795422bd7bc71407198f7f6132947d68e3a0683b7a21db009fda92bfad5ccdc0a06aa2a595522155cbd77a27a92d8c55195626b68f9cfa44f589ae49287505a7342e85c47a9bb731d9d93fe9c16a494c29ac2a9702bb4b6685971dd932da2237055b568f87293ef28970bac7d188494ceac7a92484241586155ded3a431d6524cd5c3ad82b0d2b62ca3104239453a38e753ea35da453a6093fa73eafafe189aa875d70c445d4f71e43a5c74f573bee884270bc7d1f5028ea351a938aa77b332165213868972e04d4d222330f5902da157d41447aa0885ad6a3b8eaeefa9ecf5afafd5d268b74cda3f93f8dc2aafaa696b2cc774d0a1dc0ad771295cc7a9702b9d0ed7712a9af65c8af65cc7a9702b7144e33a4e05748210d614e864e2b403e8c4a978742094c70ab702d2014a79a4804e9c0a4b1c4998242401ef2a035f88380ad9c4910c95de09f9a013d691c24f123194968fe9d0f2f1163ac5510a053af140ca8a464807e844a3868d1b3a7e8081e15464d7e2f262e284c958fbb02db81c81041da3bc35b8fe885b5c119f84ba443a10100b3e7c128a9422a1483922dd24716bfbf877577c5c978dd5e3adfa1747aaa7f19350a41c6cdf754bb1e7293c2008e67d222fa795465c41e9c35ca2942a7521a52dc4443a6013f853ebcf4d1cf998e208ccffc18923343e35e2888d3822ff631347ea8b54b0952e222170f62221f0ae2b5ac2076d9df7d83ca21e60a8a5687c40603c85e7e585c17c6c3cb6122d4e92dad6525afe6703a18923f99e0d04660391d112fb8dc17c6ce248be4807b82ae1a2650c2dff6e1b4486968f7d6cb4fc1a2302216386105abe65716991ebbf7b6d149dfd24a3fc122f2ee29d181118be065fd3e06b58d328d6264a0b4c7b128a94c2341116ad83f346911eed3d22299ac793e77bbef3d55380be93f789c45ae73d0f7292a743b146ca21e59072483911458b540b321af6a05f890b3ee00e7c29b9171d296987fe49d4554e94169dce73291de9e974b88e63e9749e247a6447a3f869276f68c9e75438154e855391a9ebee8ecd99cdcf22a7827dcc322e258b5a9663e4bac8b164c0b59861dc8ae537db10fbbb619953e1543895ae1a42176e74a1465bcddd5d9b73def91723e59072505a5c12ea3e29754558b0ccda4828ec3591947bb1ab8974f3b5acf3998675e67bd51b07ec318c9443caa9f4cd0daabb63feb0f2870edf436901fd3de45ebcd716b563c1a1ffc3110581e116f221749c2f185a18514954129544315c6affde461111b0b6d11a27d9cf4adabe7d0d48ed3871047b6be7a5378bd02b401c6c739c3872bfc2937e85aad67aeffdf8d66efb95753d7d59343f15960741f354ed506f67e656240cde89f82f9b7c71c15bc280e58584c143c0d372c50518ca952a1387b02f864d6b3269594f4544c02a424438b07ca7327144060582d2e8f910abfcaeb87faf69bba9058c45d171cba41c6bdb239a3a7f73d38b614a5f827d1f2222025716b9a259fc637c51776dd15b761dd4b40635bd1344687101deb26b91126e2b5986bc441cefe1eba146947d31bceb04583e2efe03fc41f171fc076908a1b5bdea3dcfc1da701c4d44046c59d6c7a774d39fee36427c80440c2456b48559a47b27fc452bc09b6a8b4deb2dc0d87693beae9f15455f6e9a55962df14684027fa1a3f441c78f21343ffe14fd20ca02dea35a310e8d467a8fa0ef20f2210810cc0822071ad10b4439984002103140d9c92e4503b2a6bcebfd45607dbddebf0257ae80b5257419a3acee1357b74462d5969d0f5132315ae75b6bde50fd7cd10eb0ec42628864e08d759296666666666666666666666666666666666666666666666666666666666666666666666666e2f653d5af565a4324832549b4a13520f5f6530d1d55f8298e447d8231663bc0db4f34c42812029e5f553ff909ca171abe48081886bf05a20a87ef4f78efbdf7de7b3041e4f0a27368b1f40b2287141d44a723888e8850101d154a98a044032525250fc2c0947c8c2850402f8114f05b12a534e1255e52f234ac443588100a3131313131313131313131313131313131313131313131313131313131313131313131312f86a93d864d0fc9db7ed679bb61dadb3ca7f674a6557ecd07cdbfd67e68fe9d0f9a8fb55a79e827fe8f9f797b7cbd365cfbdadbcf3c3f3bb6c47e866512b79b7d0ffe8edd2cfeecabf9d6934b747ebe2dd179ecb5f76c253a9906fbd8636fdff3989dd4e24f66e138f86d36c1dfc926a1b7f6e7b6359c65e8df4bbf3584b4b779bf2c3df289ebfbdac76bc37d509e77621b66a7edccecb1b777be660396b34ededab43e5f6403c791dbbf30cd433c79a3e4dd097dbeb369efd9eea7d3f91deae4cdc271323ba7b53f352d7b6dcb5ed37e87f0d3ef78b06c32dfdaf9b6858bfefc276f16efb12dd3be3333f69eadf3dad6d938b3709ca9bdc55c4433c0f3336de264a21960cc3acef5247e529271d14f45741cd9d1506202f4e55780bea438383750c6eaf8e16f1f423fafdcf4627429a59c73caaaaa2af9966271a394525a61c080010386dc44302c18160c0b8605c38261c1b06058578c7705847185fb0a29e58a39e75c51555555ad10d1608588063737a7130d8d8806d8d69a95c4d869428b63967543768b4e7bdef72f0bd3fcfeb34eac2b9fac3936b47f278786f6b7f0b19c191a7b8f1c20b4bfcdf941fb77a27d07fdebbce7eaf1fef19ff7bc3dffe25f9e1dc3015e96ff85bdb66debdf43e0e3b5278912c0fcb12dfbec6f2ea1bd3ff6d7dfad84f6d6df125a16c90063d8e3b7b6dd82c427f6f1f7b32cda81b16cf2f15a36f178ccd2379f58fa234b8f1abcb3b3f4e413d7d706fb9dbca1b6efdb7661b1cdc21cd3fcadc7b2bd7f6599f7752cdac0fef1c50b8df17b08bc346879a364f7493cfb6bb3152219e09bf78985e52b9bd4b7aa75f9bfebf0ad9c146dbddf1632fe25714cc3fed65bbfed161d7ef8f8ba2ceb7140d1f72febdb6ed1896480fdd270eb76219201de2796c6f276b14fac0a4fba0e74bb45956e7d06dc03663b443610bd886c00e332ad50f2c24ae98897189f0663747729a59c73ce595555555554857cab8962109808a8344eb576b1753513000401c315000030140e878322914092c469968d3e14800e838a4a6c4c9749a3d21c48519051921062082006000000c0ccc8cc2611004d78b15e92695fa2c4ab911704f200c20f008b99a4688ce6017528ba74e8ff27f705b50c3db9bb3a1673d9ea59c06d02e65aa872dc27152c911ec067a1e8ef4ad0f5f083a97d2861aceab3e937365e31e4c96ad81701a0d3792b23d6f71c7924c8872464e491c20a1255e491c23fa911e9086625729386f85a5fee4f30b19e999ead3b64fede7816e8467ab3498541db33fbd211e373d0a0eecf3b454d9ba6c3d5a3638820aaa867f040d20a102458c714ee37889964bf21c35c56c9239b99e682c5eca24ad59cd3c41bb5e22f70a33f07ba8a8432c2201e5e25941f930b23bab0f388c4b8a53ca5f673d386779f10793269e0dd7ded17c6a9de77a1ac43789c5c843a94eb9b73c27960ed922d6d04bb47dd5816597cb7211c4bc509189217475a4700a2f3eaac684a7f84b8e50bd7f1c3fa7549ea8578ee172e1075dfaf3890bf0c7eb6c47afb2588a63c879c555b80e7d80ecc83ced46304c30f659566c818b0ac00fffb2db32a4326482f6a6f2ebbf2a05f5626449f4d2629e64e82f2720966cecd32ccbb6a4eb0a4d693cfb3e40847f1e1f38c4495e1565814c0f9e3184f67668734306cadb36feb8e59d7809678695d2cef0e09e393d407c5f07387751f32996425c9dc623b60d6c36c050eca2d1e78dd0a9c656680bd1dd98d06dfeea51b5b01cf9bf6e59f8c224fbb0ed4500d85b4c92c7c3d1531714ca095ef78a9845293e514a49a22cac29cbadeda5a03e044a927c775472895b663405d83a6d83a68e7cb4bf61abec5364141b3019f0fa9636b8d299f73646013011ab041f58e0e0bcf5de8cb912ab661c1961c570ca0e445b4f77ee8cf93cc9dbaed2372861b3fee3587d26421ee85087421772f0f8c8d8520e474a8560d01f767eeaf2fd95cbdd92ffd29903a4f172a9de3d0b18c9a81532024daa579a6710c63d8b971327cbce079d4611b080bc0b16f4070df22db5e5e799afd29a49fac91b5607203b7e0a7b95de70bdcf6a3a8f0c5c397e0fcc5a889d8868e5de4bc06ed9ec716ea2ae5721bf2d732050f4d6bf9f3a0e536e5ac0325c53e6ed07a079333986afb0349d37d5f01c0b8231f114335be3d2728d1813ef4bc2410793d0500e65b3d891af07bbfdd5aafab04f598a8d0d993ad39e9a70fbf3b48deaaba662cae422463f891d466274edd0945fcda48e685eeb0a304644dfaf8f923bef6d68cc55a7d6e802fbcd97690eca7ea4756a86ea601e0b67d39e846a9186200aadd5ccd94b32b83a7eb88791a4a3e959bd9408a9bf890084e57dc1b2b6c1008ec995b95d691a66aa18935d4770d36df2f19bfb99a76519aa2df288a3f6d70ef67d468fcc35dd69db0cbaa0c9c202d82e504d06a92b1c0ec39d0c7a29b53ecb30ede2fd4afde790c313d54c70cd2b9b2345e49a0722be179ed821a1dbde0ee0cc6687ab33d3a6de9d153ffb73d653f58997523899a062d5ddae81a4cee1ac3f8cd0a4be946b128ac4cf65c488c8a3f787d5a3531ef3b1802888d180cd251826d90fa46d087e0395b5f8abe67fc6f0edddb630bc003dfd8484e7e891e5ec9d9aa94d22abb9e5735954688239be7dc49ffaa717c64ed204f7885b7372d6b4f457d20153f788317b3acf114dba362a5fd089a00f7403d646d3755e238218b0e3c26f9750883c2b7000c7ff6263a0bbbc9490a59eb3e79d20f83d2348caba181b5cdeea66cb9f722b5475bd94549e44c412e2a22d9f9485776bcccd303c84d30d4cddf114ea26c2d494166765fda4ae27a644aa4e178bd18724e4eb97e98899f472f72ae965c9f06dfebcf6ea61595113d562a009252313fd13fe14ef71b3833676a70cb08ca3eebc8bb97edc3e18b251e06f1f953bb8f337c9cc6853a425a81444e8b4c8f988bba47525debc531d49dc69d9fae015e66b05f9675422d2eab615a4695c0c5bb34d96fa2646124d7b36921ca10cf133190fc3024d8543816a84f6b549d354284bb3731028e0450b2fe2a9f48d6f4969ea24cbdee9d00151415e4d2664b960bc4c8b48e974e857bbfb30c6673c053d7707d19d3748109e5cd4d90ed5b914cc7ed364f7537fce0198649580f3e699a3475d3331003acd3a1048c48d117ff04bc94bfa42a9a0fd0079960865fa02955921a6b28596545056bf62c5363c39615ab5459b060cb3a4bca58d8b3c6ce262b6a58b366cd8a0d4b61e56248eb3758062c36099df1c2058f2cc5a33252dc76e3bb0fbc7b033b9a91c6c58351db84d843e137784a20ae8ea5afc90f317839f86c90221abaf6eaa8f697b5ac344a9a56a2d210efcade284abc4e3dc05c71da2b50d30922cee7f751a202fc8e62763d6464fd83b08ab814f4129e0eea318933beac9cd52974dba00753461dc01b0e9c09fa8125567fd8826befb50b9a005651e7345028fef554965de6e7f5495a2a4a2083413f901248644663c04daef8ae586e00fc5946381405cb8ebb2c9b676726b7cd21008ccdc5e84a4ca3979df020da2a667941c7c0c835b151ec62ebe3a1511f5236d3a069984371d4907be9dc2ff5a601f6bef788fbfd8b071e1b05a515987c05f38671318d513e4d9c8490b05c91174e2117f1390168eccfa02f655e000ed63ff5324b3ab436bcfbbe50b6495a8cb60064903ad1d68a804942806cd4007c3f9f355fa8acf30dc0070662263fcbb102aa01d82f696a5c5fc96e53b9cc4d0d7b0e5ba43735a27e53ab3fadd6b1eb724827811303504e3c7ff57249a22e70ea1a0f2a197343b7654e8d736be644c4d200242d225eb4b446a44e2b6a8a2969884c3f3dbd74a2534a4d315d3ad1d3a74d2925757a51534d4b253dedb49e0617e371dc07d6d6f582353c4a3eedc2e2eee1e0e4138dd6c1b4b01018031f34a6f125e165019a5823ea879914ce8f7e797b06083ca8eb9c45830b945f822f05d5fb0165c737683ff0c582fc94c5bb338a6968c3385053580abf401012a814aafca6b3fa7ba751685246ddfa1b7ef3c5604b62ac5159d283f652f8c2d04fdc4f37692cee1a60f8115269fb44772bfcb28b6b5a0f774c379af511f9c70406692a7f6a8fcf33cc5154ba58c01a841a03badf8d0eab1c255b971610439f531f95723df996084dab904fbe399e130497423efb33d53bc13e609c8ef7d1d6af502034104527d8a357682fa3ee7fc5c38e74f418b967b91d77ab125fcce7086b300aaa47845e0db8e1f4fefd8c40c4e192de7a20d759160e4d1be0db8e48be189f8ded17f9bc57a211b3b7b313810f17cda6617b9708e023ca5356fc27e3b12e5ee74fcc5296f787746f76e0b4245100c02a98f0c560d2e8052dfbd049dac9676f9f4cc986fc08a40320403399f6eb6d327fd26913551549b8aef1fa993f9d20b8fa4240c581a16438b05a34014df0372b049058f946ef41f6ff13d2a2c3fa1728af14a60d018483663c12cf9797986defd07b81db5fa0118dff64e34a34febecb6721e22b246a8a5f67e930475d54df45af8bba7c0a48b1949b5fa037b577363a89e78b41eabf40776daf4052c8eacc9c02c586e04d30509e457727c8ef748d2d92638d5be40296d4dc9700be5893af6bfa15e2dad20ee7bf2edae76b0e2755dbbbdc99b13b3f906de44f77966c27c9d6b973382faa3623c99d691e32f454e3ceee1ad5ff6d883bddb7cdc167744d6f3234c551bff5cadebe9de4942c85dbd98cdea02332a4ed868298d100befea4b6bff9f0ffc8ff6cbaa834183fe1cbbf6ad4a7dd56d93f2b156e916704364ee30d4d3ec45f91271db8385248a60d14fe66459e2b33e2cccaf8e5177b1e4d621579f27a082b6cac39fb1779562f9afa1e3372dc781b35352bd3248b3c5391331442043dce93e23afd916ae1a5cf65231e787e07ba19bc41feddc90360456fe20639094c11c5b1ad67a89295c1f33703b479d9ee19ca0b1e30ed10aff92518a5568d5fb7cdda859c3161ee5252e71530edf485cf57c340c9e60700bdaf9cdb15f1c4e66006867cbca2ef7c85fc350245cd432f0aed5ad0083fc589d6ac990ac42e926b464c6767d7102ab9204540282070bb7852ac9e7ecd3bb2a396548380051f5dd0e8a366f2585b4a1115aa0f46fac835ec90fd8204cddddab49c8250e97c628541c76119eb687d83b0e4c564295329453fe3bd6c9874857d0f6a434c0a65513783b0e6e687f0c7d84f3ac632b35a7696bbf7f3da29ac1ac8fd25d41daab049f9e66983c8984bcdc3e93bda1e165d3d439a9d398fb541508a377620aa20bdb9477d2ed806ec8ffa74a9c3f65232e8bb4861110e9685751d1dfd9c048932fe111d88514177770c2ae2cc4d57322e67541eae48ff6b0cf4a8c2cd69743c7914c075e49e7c830e320fb943bd69a6ee1c4afc410ccffb032bd390934c109fe011132ecc83a0e9426abca49bc61092deffd1ca4a928f0963317f1cd4e10ad61631fa82a8a19094bbe6dc2c8aab1b9a474b67cd83f6c46c7fea0a6a9e45ab11cb43ec57b45bc6bf6ec51220dd11cf838c8562dd45f465fb54ed7fa3961615c8726d91a8abc220b61b88b1640909921d9f8cd6ba1b5bc47a65de5457ec416acedb5460a88d054e1e0f8116d2d418c37d0af2149fe5b385323efa9f4ff8679907dd820635fb493e453d64da304c7cd20a5dfab3fc617c23cd95b14388185725a2ed34bdfc109a4306f19b8e879072c93e5f3dfa47757c0fa10dc72ec1bff86e12cd7ba4fbf4788cc3291b836e3446b8deeedcc2696b8cb23f5ad5ed11daec3f84249e444e7960fee9015d27092f9e7b8fff9d0676405d6ed6a7c36e6c8cae6461f49498e2f890c2ad20d84b8a622a0051759ef723289aa3b8c36f88ec85a54a9ab1af8e08fb0bff297155c7513e28ebc1d59b813e781b648fc71cd9764d08e09ab8f5dd756d6809c1eca0f1ca029bdae99e79cee6afb09590bd11ca3eb318e917da0b25d14e9ea3c5de5ac2edf66e98e6236e158ede180da7b9930abac58a8a57005a3ac94816d5534ae9b106b6521ae10e2e1a806c661d90fb4a8ff5fff78a4a2dd8283228a1678209b255392c48fb5b251a47a503c28b1cbd3aac9cb2dc03d1985b3318c42b29425d0b80eb7d63efbf30ccd14e2684b7c7620c7d239120a4e961530f4b863fff41d75a51865fbcf946a23e4883812d5d2cacb072f2b31efc6164b20c921e222ddee32cb5e53242fdc1d1398507dfa5b4c76d5894ed926ad8ec6120dd08d793711d2c65427b397d353528836a042819e17bc4fc30004e4648bf650fbd57f7f867ba0bb8f39d4a6c978704767ff6773d6d24741be9c535636cde99b234cdc364b651fd10ca4105456d9c135e3320b57628acac2ab6fa3f8be4416927c19e4a8d2d777e8b5de8fb455e0419d5328a92466c6c02b3c8b566c7380b19c753dd6324a474277aab9f7827a375f521e34fe80907b8f237ffda63b74416de7bf41ee41cf3e372c6137eee11138f2df8c0e591ed71bd35420fcf7171e9ea08430931ca00254c4167dd6f2a4dc7cf4ed910a60af9259577e90e23ecab5a9413e49010bad336cbf2a3d89cd8bde392a8c25ade42720fccdca48eb473e0c1d49a601bf08a0612a943d4d1fa8c2bb919cd81874e8b5e400ceeffb5c2de362fd8a009565e6783d7dc89b91b0ad76eebb4df81a4c7de733ce0f98318ecaf002f7211b43ff1bdb9303072adf12f4cd3557bc8ea931236955abb701118343bd911cbbf3f40e44d2b06f6d3d6ea9544a9d27e18d6a78916fa8ad39a287add458cdeb71cb391a34103aab56fd815ea598d9c13bf736afaff9330f695579575df15b981953f985640ae8fd5d7803042f68deb7ad130a6413889dbe37a8bb38de5156b286dc51a170d71643450bae2c58fc6d67e81f7cba615ac0c0b5792d2350b3ae7bb03c844d1c1aa7e6a603a12907d0edced7fd99f300f4acaca03912f6423b9b9f05b28ad66282c4377349aede4a49ba1a0d8d7d80394c735d518edbd4278acce510b71904d52031a5193a9311a3b0ddf313e6cdf45766c5a429ede090023d9e5dc5193a82a72cedeecdb3b01f7b260abcfdcf28e16a34752918054392a7d24a2f99d3db94705e809997d4b6320dc873d363dc2317cdf293e45c314e31c3de1ea0c251a4a96fda447119da5c54d467d8f54720da871f165966f77f63ac4adb307dee735c53283235aecd7bd1366f1dabe31f6f34425d1ea9f07fe11667411b0f790145d7efc8c4326cd9eb4b47d8514c9c01d785d6a762b79192357e32aad1420e5a0325d062b66e8f1a50c86caa22091650f6cd014c1c290402be5e19893f616e878e0e083a872494f5a7d1526e660666a6697c0028810c3d9a09aaaa35a9131cc592fe66f7994343aab9f7dd6060922b6828c73cb555d9a2892f05211d616b5361a4d6d243bf3fa3c94b7bd6a49619879ba7553454cbcc4295b7bcec03844a3cb6a7c44553fdb8d320b6b96cf9c329c1d30195acd4f898722597f1529a5a54d45fd4ca4f2d83968eec4126d5704bd68efc355f8337a9209c6dc6dad51186a26440359f71d6aae14b39733e1eb256ef7e4738dd64174a2c2df58bac9b8eae991de400c8508d0cebc0721e3b3ffb7c9fef3cc4fbbabea79169196ea616f6ecb5845912b5dbf9ba0c7170cac943c2f22ce345d85b2ad45bb8ce9ca5dc0441d09106d665ce8b9b7b34d695400fc0447821cfacae8016a44e5fdca68da6a5ebac3b2321a9255466f45abf5f5af2c2e2766d9b541769302a7f3bddc490416f662dec2d14c1da6599612899d3a2f37a38f10bbb11a470c6da79e0beb4e8d362c481a4dfbe1809701313572290823725433d43efd2740683030cacc0185de351abc49379f92180114d804a1786fec7b98a569d575279df6362f97779abea567d50535cafd9513cfc8e207ae7119fdeffe6e44b76d3d895b626cf932ea84cab42cedf1d5a3b92da7398402defae46507a05fbf0a7dfa0e0c4508308dd8004396304d98bc846c1ca247b359fca79fe18ae52c9448d24dad1d0dcf9646f4b2149dc68484cd44b4308e1bc4dd3c901701fb61db76669352b46fd1e6cd9bca498ef888633235a1c2d3616de9d53837270ca539d2516b07a13bb9c753c1e875f4ccaf981614a24814446b7c584625ead3534cfd1454b67630b8871a9684e11477e8606a922387b9560ad1f0b9d99544f1d69eaedabe3d59cb9d7924f4fa844a00991c2d065428fb748b86536f9739dce0a4451b43d0f06359ae9741300972301813e54822e3d015a8f0f00f4c5a42159d2b54052d2a82f097f465152c6155faf1b53363a338a6b87c7977d898e6ebebc7048f12a5385bfc7709f4d97cbedcc96c8e45feccd24f1dcfafab804e62b2633ac43680a8a79f397891dd11e7e8d3d44f202113b1e0e94a52ccd09584064d298fd3b039523a5c2347c1049232f18cc427831ccc5e843b174e80e6388b20d352585f926445dc46290f980b515b5802b59f26700a8b6573eadf58253c189ed76e8e9b0db933db77ea61556d0fb7ddcaa4f223a28153b493073cd0ec5977a43638a1bbabe71302c34317a9341d3996d055d84d1bc9cdc1b46886929e91634e6eaca609c1071b0cb3d1abb0f44daf82b4971932b0d9ec8332422b3309f5b9bc5cf9c8cd8c3446585664e14de404b938504bf2e0bc5b20302e225a8e2c83f086c4909c5b7750d3c77e66f4b93d740c31b3df9951047213dcca252808217771e1c24ebd7f297e6665e9dad1a5becdbf9a27fa1aa2083b55a1d92cdc5aeb661dad86246bc4fb9f778b7b6477b47e510af18d3b04d246cef66aa44c003347a82fa0c7a7ad612fb3ea50ca904d30e95357cabc6a5cefbb8da2cc07c974eae77ac3d71996456b6c41bca4250bff744ffac7c7d62a1847018d10e7387cd373462c7b46e2f71ac515338f54814f0797f41930bba91d804904701089dcb7dc0a0240311ca86420f500157ca9d64fd96cd25a8d6c28227748c8f48d0536d39e5149b60c123be407859efeb0468683a7afa73289dc0c032467c40dc6dbb71391aa58f6630258e0a8bd4193579967f49ec10bd4b85d02eb11924ae6f592cac92f6797568716502750d637392cffd0dca2145781ae158ce427a787ab466fef6880549dd33452144dfff84932882f56a0fea439b23295cb24f3789873f0f561b38f49967a8fb042253b2dfef013c322e30ae0bab6d81d1bb190db0f074eeb2f61141fdbc2adc0eca65baccc085c2948c22013c0b923cdda082d1f9a79484049008cc87a5651e5edce0f679a98a98d5a13c2235faec9387804239a0ad06b83eb89639081d553f4e228a2ace32fc35af03b54aa9d0c5951a0347da145c6934d7ac0f436572756d6901a62877faffb031c0d5d9d2c5fe61cc734f4bb316e14bae8adf2e8c88cf765b92e67b4f3a0d049d2ab9f09efc198f2a96fae9fc3cdfb05d9090ac72b066da5495685961a9816a9371672e93ee66c5a3c5b40d49855f2c121749c7338a5b484a85042386847e74271a7ff483964c64f7b2b503844ff6fdb8303845c08bd4213c7bcff8bdb59fd803aae6b1ae106b9c09b73ca05c280b5e365a8c08f5294d602d71fe8de34c7945b27be9dd50ddf1c02ac52fb7ab48f4697a35acd30a4fd63351b3da996a03157d13b601f73f15a000b185c09e952e5d6666640642328da7a3de822c2aa264560bcf101ba561e55825c521755ad07261cf7828c7a91192508160e0f573ced51a7237b1916c36515c911ca3adc91daa39af651b72e7c4428f135b79b96139fbd18b541343e906ad49c9da66ecbb040998b2aa2546ee4f7bf10a75b7cc55322961d6a44d2541ef86d27bb266e25e9e13ea9ffc825a172e68031551451cf6b7726cb3ae3a61626b13cd097eed4da4c5f4c7b7333681a6ef459e2add8ef11bdcd9d994010566fa15e7f3edfb2938dc6014e093e4b8bffcf56ac57d11d317890458962128395979290680fa420a26110f968ecef4b9f02684d6b704fa2f6e0ab9775c34ff58d9fac57d46f9b3b9e81b79fceced2281b380a0d28c094ec0c7464318eac9408dbb442e102f871210c14b520455b35f378bc13f2bb98575ee8ec53d9c5bc48a29b53e43f14e04700e450f49b3ab71937890c4fbd1bd30da8326f9e97ce623244fe9de77d0d3d000ef542974b5a48746c9bc91e4ed8772c7726465b2c9175e9d7158a475352634e3ad82bd479e10b190b73a13074b3c36909850af5374aa1d4f93ce0e5628140aabac52c07733d582588861d87824db7036ba26f857db1cb1ea9df1851b6cb827689d92b06e9d648419e817b3501e85fd9454977e442636020d8e56b9b92956932b630d11f2022bce958bd08ecf2842ac74918d3527de0afdfea7519203464bc2e171766e275b92f5705dc11a2ab35f5e4bd3c4b779cf2d532085085765d06ff6ed68bd55d65ed6c7660ac88d60142ac509d955de8cf0bd7201b1251ebd2b8d0ca55dbd9b3ed7ab4f2375170455e4a5fe3b17008fa9878cbf1b1f9300399bc434557e68b81efd7659600f3e0ffbc0da836c1d4027a098f10f4340b8fb7db10bdaba17a6c3bcbe99b166328c26efb7fdc31732cead76f5b550fdfd94a92e5a147f9467fa81c3323221e757b2872ceb25987a157efbe1e9aa9d868a5e02ce06b55977b285edf69dfd03c9fc55150a9f89ac5e0a06a219899cf2409cb3bec78955bbf4ee45d011ea0bc2d5e7cc1fc65838c059decf8aa0a13efb23e9e3ecea4d5c55f9e28c4ac8fe1b263c72a6e539ee29a4d240c83ffc357413567711afeb2ea94f25ffaa169418a6c25a6f1f8adf7cb80ae37f95a6fba5f3e397c915d9d1fa4ee97f994aed665946619261b42cd3541d9e386c2bee10252ce75e17ef99422c9bdb7ef7496ff043583c0b532fc7af87e8cdaa3b5e52de5dca92a986fe251e1375797eabd44181a8f1a0713549fc83509051b4a62cdc7771e4e243eae9269e18c9f3f65b36e583e9180570ecb6061535521e52f3eaa6af3a17864d13324567237e88bcacbf32989d407a97081ca2f67ed5b194933f8c0f38214dd53bfc3a0bb8ad63b2b75ccfaed73c5e554758d2ccc327afe06f486de856a8a14ebbeee1f7bda551afedcb54ad4c424ecfde40329ae37d1d8723ab7117d2c231fb7af563c6d856bdf603de1206a6802441cac410f9727c9c588dbdb8dfe67e34b06684d1e1097833ca32a9255a67a415a85ee3c9fe3ae250bed6ca326020eb1a4601994655326416050d1482b72a693c96b3f59a69b6bc070ac3c67da442455f6722f08cbc87164929e56552c8bcd8ae444cc999d309a2c47da8633bf1c1031d34c8e09fdff10730066fa513c1e553ac40c567af24e17c0285e52b1f983cd748d0a0066262b69c436510cc6f22c6adca8ed0ea76709e9bbe5311102cd5d585242c61c6d15f5d534579d832bc44cbfc227a2ce1436f5c4029a6602e18610f5e067a9be245f36729753607d498b33dff35b621b0c4a153f723192ce3ada564139c9d9a0d4002d77402ce43909b89519b8fad074b0da627389494e6945c0902c738e99acbe0ec981935f167df71ea5f0a07c08124a3444d5017839e32bbd858058ac54295520f8b1484f26635fb5f9703a0ed833fead453bbc68167c64294006cf44028bcf1a9d787fc0160c3eec6e0e7c0a3d84e2c5af9859a98ddcf2e5a8cd847a7997ced2383fbd3c6046fb0a8a99e5f7b64163e0aa46e33d91484af0d58c8aaba5d0c86040c5efea77540462e6a544df4cf307b563612722c739efe73a35a4f9a556973d42dcf3100d6614f02046b809b67c297723423aa0990efb96caa878c1439bdd6e4743f2d00ed2c0b9e0a11053690f25f783a3b9d743981d47fd21cc3ba0d0d6f3197d0659b4ad662789ac50e11c9b1937f36a7bcc741a35e088b4fe81ae96d2d57b1264b57cd0cd1cd45805ae9ac95ac7da749520c1d4bba71002d5ab293ea8c43c23432d4b40c94317d30b686171fbc0ef6bdf051433127e232ce8e8b54cdcf5ae6f7b7040ccd30bb56720a572d7cd29400c7b3fb63dacb1330e1d7ed18eafc95677ae2c1c7f26db6b9c6c1f875a454d4cc899fc5095a6cd2e6591bceef8cbe6ee4aae41e9f6a80325919b24e8e08d4b918862686258002e73c7f372fb4f09c4c57bc1444ffd82fc3b5620a399a2e0c484fd739cac22c71fba8a390124c28be23e1e93a2143b85ee9752ce537c8bfdb6c929feba56f9619ea06d1c79dcd337e992cb9d203f4ce1b408752e16b316e1e84f1504256bf606392280c6cbe7858e76c60fc3e92a8a5c79ec14a205de85988cd38c661a3a6397c36f5f9543d3a95c8c8f39b24c0dbc53ed4ef143f5855619713e4441e4d1ce87adb639583a1fda80b459d25e795229815511076aacbc28aad3ee56a37181988eda023103d32c831ef5773f195ca7aa22ed5d133e5014df5481789076df32c893f2fe1b0ced578457011bc4001cd3bd75233ca4eee5021d552066a68d4b64e0a5caa5b492c21488b90775df796d812d43ee956cd7574ebe06623a9f7dea6f6f71ffb08ac26c0585ed81b6795f380e961b7d006ea4c3eaa2a6135ce8cf9da40f98b83d74af089ab3046b082f25b1d4e324596b0289da77d932e5396e39d0ff2ca0f40a215a5de9a059d45b8e20d9a88ec64963a789ec6788e9450a11c322b36cece61d72e8ba3a415201306623438ced4742827fa575597a7a314097110d71f746d8d631317e7a3fc2d5380baaab5be556abd1486c06d34d36eaf8bf64f8fe8903e80ef86e1d58440e9457a72a24a512e3c12a2aa9f9c27488570c2c02c35162639d8996855c39136719b69ca2837eabc399305e7b9c70564431386c175405dbfb613790a7b08171865c96979d9a857f5e12f175b80809a07c53b60f5b49282fd726d6e363f66b2ae1cdc4f37b0e17e5723c9ade4f0f82cd14c09d60f8675636c212a3fe989d0068485fe6f0e7df908e6bd68a56136a770e17fff2a87d271911a9d307b5bab8cd3ce41919ed7d0993d188421a41a0d9b3f745191f282501495ce4238053588bac0b0a0079c5a95ac43c2171119b21590b06a8ebd982de3131449a4e37fc4b48bbec4dfcc67e5e968254e13bd79e3f666fc2e21cf7aab4a4862107ea7563d159b8b1bcca1ab127d2934322dfa40926b42b06328f40c7423ef0ef1513089818b63b779d540f0f7b63b8a5c5a87f06705333851935b294d23ef26a510800ef43d052d0b608af50be48f271776aa78ef7b0d66ac95f88d8fb61d14f7c745931ee0615bbd0424bcc4a0b6af270d80aad4278a1dcceb1a8403308c6d41c8de8d5e93da623c4a668d0749e3cb8c899d80dd8a83e501c546d8813009983601b541c936314e9b56143a841d1a39b8c697e2af5d1318a56c831262685d47dd65cd7332b02ef1695563baace442043efe13cc907b93ffdf2b891d3a3834be70f9281da2255179d1248cada16d634aa72a7c94949cc5819d0919d6eba08c5323332ca695723a8c37c36336801eafc29b55d19a59739c43952863a81b439b0600f7170d72d604ac8a1e696c86ad4278159b7bf6afda5d4983d1afc166ef990246e1a9466bb76ec906ac027fb67e0341f3ff07271b0cc1b83e7daf8781638ac842dbb2da1e040ca4dd427d0296b29ea4fefe6570f62031a7d050574d66fa4afa783fe683fcd64d49c1b7c691c5ad32f76eb971c46fb8b94f3c3ffe7ed13997291b3e98f35f34d7f8dfc813a045f992378e2c4e5da0419b5d718ced10cefdbacfbe5de2bf92b9a516197c3578eccbf009269e083042aa925e03d2f81b90d1c155f474f0fffae7786a065dbaa43252734f19ac7df282826d5c583170303a4c4bcd37f7a85248e3a60cec54807af17202f0e47c2e7546262206f1065459a249c05100390997998ff34667d464953cc47ed12bf7fdb409180f4afdd72b9e36f7cef97f94535b2f28f97d04c8a658e5f86b0fd8d914c1a9d5ad52ba23dee8b3166e319b47aa8bcb91c990faa0126f858a3de779603052042ac7c17a7f96af2e826550b932c701cca41bcffcba05103e8b5ab8c715f398b512259521097a31437ed5e80cd2c38f2cfc8ac34c41010107fbe943e5355e8ca797dc42345fe70045f817031f306587f7b0258b77259782abe9c599c5ad380c11bb8f6111f0a28c65e6a30a13c8b26a658877e897485e2248f9d50f76bef27f9cb61b9558e1139b2ed0ebc5ed957e5a0486aa0980129cfcf662bdd869a599546e060da1e33f873aaa27d0e01a25d78a929b7303a67b6e566b5829e505c429baf0e04148da1dd39a901bf6c95675e964a4eb976850d6353aea033271c38b4b5ca190064e8aeebf5de832957d2da8b2f097a26a103777a20846829f7f8537d69cd2ae580850fb371e0815fbfd64f2e3b29574b84d2ccfa05e007529f51d1f24757317c24f3bef3f7aa16049f9b9aac980481cf82381596c674cd8f79d404627f934c4800e100d9b822e0a30e6223d2c9213a6f0cf884c36ec7a0fb3511ad7794c2cb1e852a82b59a7e1e80aa81e5b91473981a1630905844832eb4a2d01a6369ea5fd5a71a8881a561fd5c4dad5512163cb4f56bee0156c4d47fa3ba01b5ba084c6bf027b7f19a7cf97433cef27efab79f2159999b4001551f06e957d0f156030a61eab7fed9068113d0d64253b74786d53be5fdd91bff2fb56aaacd393d606d8a8395a0185e912626d564d06eb3e0f93f6edf6c003dc9bec134de55755e459337dfcc515be361cc6a3b58d54a934bad836bcdd4f86b5d6a93e027b5444c54ceaf1c5a6d1d57fe5f9acde2a7c4dbbb2b90f1c89138c5845f965c97999157312318fc86aa0da22beba22fdb3fb109f821a6a7b3f528d94ea6d631779a8ba85018387a0bc53da295cb01003fc4e49ba142f81adc62069e27ceb4b4658230b92588536f1cdd4b3f6dfa8d56fa5d69656d9dd8d830490323ce65a438d287a10f74e6d22636299c110978c5c66142a1e9231eaa289bade1b84427ed115c2deb45ef34413d80656392784527937dc63e870f68c8a45b39c66dd40374954ac10369b471493869afc970b31a893c19de5e8da00bb2052d9a6b1e11c48d4efc428151b3a479bc6ec9688378ae294596ee435bd78f058d6361ac5434f33e67da862efc65196e8ebbb1e32b4dc924b22b0054f27d0c12576e8c99e3003a5854a86461e1b895ba0b57006ce65b2347fcae46c4a686f8d4650f59c4c3cafb2ed294f33f605195338b9d02c60d9993be7c9746181ac23c51c6abf3c393bcec978ef001903cd26c65a55470f315826427290e829e236d3b0e4f25ef108b1a6c38e2c33440a331bb83ea3b39a7824d6e5f2a6d3e87c918275ab8be95b9c21149d45e20462865e402e2c893cdb0f8969e0d2df8084eaea639eafec9ea514ee3d2593208b8a43b4e470e0a9716d7edd7bcc147b12ac44e025806d2bcd63a4359c484ce1072bc0fa99ab145f31c6e73e5020242b4b952b3f58410ffc34252dbd25bfb836d13b0e61730019c2b698a4ea53cc779f9dbb8d737572e3e690cc82caae315f320d36122e7762d2db5a0a9e7ca823cc176073b64f6f7fd1d813020f647159179ce24142804b5accd9505eb59da5ca98512fd46ffc1ca94dd1cd28dcf49a2525a3f93b4ad3c8b29deacbb90fc01e449ebfb1a960d2abdc8e1cac63dd0b81a546a062621bee2dad272c37e05dbf069d74e868c3fea0fb600ca34264cb80e9a17c3cca7b8751dfe105802ef1f3e253bc944eae316009b17d7198f206494d09c30022e34310880f69840577f4a1a2f2c810350b117711ba40385cb3d56b292c604f41661c125d84ef321a35cda215844e1bfd54b35cd132b626dcb719eb2cb224ec1aa70684c79e6543dbb9144ddbd10cce1f6b25b53cd42d288d1c2eaf16da0e345b5f4a371d4953afe63b11e42d4ff1fcc92de1377ee5102866c105a556130232d3fd7b356fd5b949ccde19931f36d02c45499a24691dfaa7e7798a67d2a2573c6827adf589987147f5226098b52ed7754d9b1e8556755b49aaea4594079de038bb850d6a1d9844bd51dd632235accdc92ea214c79a56130572dde142f31a2f89b3d02ce6dee2fee809fc3f88ec31fef4b8c00722a34dfd0216b0f8c685ac266bbef4fff79c229f156025558b007ef0c98354bdc1a249f735aa7ed3c3f3aec6ef8112a7c06755ecc3a12bc6dd544458443e3f9c12583c12b872b3459baac3c16107fbcaaddc26ebca9b649c86645d93cdb81c455fe8d5d73f26b5cb5c237c8834fdf1ae0a97643621af102e8df1793d574ce9260cbc75c12a5776c4c2b99da16f6748719f9c4c68984cd99b4ee250951207e3a7aec247be86c72053c9b6b8bc3e3a6de2c62faaa2eb9c1c8fbe58638b9f4effd134c064472c0d9b8c2c9fa398eabdae1cb6990f4d3d5c0da5ea15b3deb56b11f61511150c26068388f69082d18aac41cd338aa39e561a35cec048bdcbfaee1a6ac7e871036c29a8b51efd78a75b495549b74506ba53ba601e28d768ac5900fad99313c23843e76e294ce8443bc825e7e7cb04eb9ccbced3a821fd6d2d10cfae236465428c2d7bf7736b9b4667048a6c10d176ab3ed4856c129dc95cc70848ce00d6e7db3381a4330d391de2c8bc612dca5b3d28c1b125382b9804be14c32f02952d66a4085e5ec9c031ab6023ba3e11c87cf3bd9f6c6d5cac9dc48958eac422da20a97d81d724924531927aa714b822bc7df4745ca4cede2609a1e35f2413d8bea6dfc2223cdbb327130d6de629fc2b8f247d116b634724086e83e6b4175ccc4bb7eaf1725f33de02b80888cd9735ceaead8044e34a1244e25603f9041b456a16e98ed954362f32b26e3e093e20441be02c06a8dc2e324d652598650e8aa324cf0706aacaa82fedb532a981be4b52088534459205255404cca9584e20f0c717d159894757e30097cc7c1a4210df806931a106417068a54be69d413378e03b156546c8992524284b5ba662985d10a26692607c9c2c4f1ab95ee5da48e891263167ee76ab528acc483ab95863152bf5bad4c9591cad156ab4f715eb5400d69b512e401e4b46d22be8a28dfb512bf99a442ad95fc19a953b95ad1a79152786a75c55a068341ad34312669d1b4d27e237533214f3c6d3e916a15ef182936aad5b772287b51adc230d62014aa95be17e119a856b4f918ea7f6a458aae4c93aad5dd2f0c78e439d9514818a75a1db3cf8667aa95865b203b94cf9d3c9e37e48236c7e4130d98892bbeb3f92f1c6018f66dbf2362e4f3829afb670761ed56974c62fae4cd671554421307d2dd131b413798b2d7241db0d91118a45d04d855dee12f0ed8237b7229f76f9b429f83707bd46467a1e8bfe41393f17921b03b6f58a693637c7be1e44491662a21085b3cf2a448c0bf27ceaec80858786207c01241357d1da4acf221c676747462722549fe1aa41210aea4502cd734728095e808905b495fde004fcb1170bc92fe3647f73e1de6f25d41e1fd8c8308065849c69ca06864a86860257d28014653218060257d32023c293549e54280c9120404aca4ff7e00170e08f05a491f75005bc207f85a493f9e003b7f0f80b5927e96007f7a0f90b5927e1b014eea1e4096597d090196e01e602db3faf3012cae3dc0ee4afadb0160d06fa646ee9f716256d12251625654e7fcc4ac42884913b35a8ddd7d9534b0af8e7a56eb0933cfef33460c203b6407c02ab3caa2cf2d3418566615ac048862a6c5b756924207186a9816f7aea41e8402d4702694ad6116fe7f9574369026667555a697985554413c312b2a19ef57490d6e6a1a809d72528279f038a8be1d367230ef53ea67f0e0ebbe97d567ae898528e403251d781f5ca9fea6559dd581ed038e1b9aad8b7157e1060530ced82b81bd97d06cdfb49cc831a2b674ec179c6994d267f53202cc4661cb75d9cd4de880310d260e5a7f9c180c95c2da16862b41253b6543fca9a7c8ff7059dbaec0c896e1c2eab0b382a8c35adcce4d8b8b223fb1ca4e71d541e195dd9021ac0c2457e1408324450c0faa2647347f598c5cf65871e1782d0c68582716117cd9b3219cfed048ac192a312ad91215ea1dddb67150a1dacb0749d55c54f8a1881fbcd6bf17847a0f22e7b469539ff2a6dbbc04e7a1e0c0e63168441beffc11d63cf1d4058585ef023e187aee2d37f183cc0b26355c859c17599ae018c7773807ba93b14cca2499c8bc8c1e5f99e698c0fc268fc944deac967fb3addafba9b19597f57eb128f9da710f6a8d8d4480ee5c4957b3373d944293fdb16a55fcacb490d19b74dd4a29f9265b587881721210ea3a8281ac94be341ea948c6d28b2700ca36f38b8ea730ef7e24cd0c8925f0f70fd7a994c794ff1f95e445850b55e88330d2b2250bdd954f975934c550bc1adeacda19c73dbe8ab87aeef2616a9b45a583735088c5532c2bcb6af235e213c67a9ba5b7820001c1f0739b005d3044748067794e365ebf1924d36d8e57565306fae7c1869055a8dfd48d34e48b119a1fbe7547dac3bd256b2a4a7798e6ef90e30f0db2250062af8fe4fbb107b92bdfcb6055c28047918d81a892d54fc3d2912c996d57a484c79a4d88db05684a27be658d7a90c4fd767973c01d18f780837e2d4f0726b611b0b2852114a2a7c87eb7a5958f5491e559b5cfcafad7f4782cab6371dd378d7dd8b362f1abd875d3c58b846e9a977603a3ecaff2003d8f0400903467f26e9296a37df1aea8494a3fa5913c1dbc36a73e2c383c1d3751d0f6ea0a7e7b420b48d4ef1327591d45df669bbf7ae0e8dbcefefc2334cf300f5e1f2520bbd0a730f484f4d2907ff320a4f569a5de70503131f14d9a4554aa4b7afec590dd1b05477aaf64fea36d28d5962d31517c566b564be7e36e7201e4df195ba8add8598cad82a75aeff22ee7888829d6ec088fff38b55c58a2f0ab5c10b8b3525e3d4b1e26e9cb701cf166721788cb155c1531e1100a6a33a86ec76b9f10f2f4f27001857077ab10e8686022582b3cce7ccd48b1b4dbad6a219d1c5e9ec991a3c44a44dea58848d510bf10afd871cac3ad7668c2bac543f230d62b20cdd75c04266a2555c74d18bb321a93b2cf2c3dbbe869adf28bc5ba6923c6a4e2e2cdb3512826c2bb31f17e5e63eb1611172d59a34cddb1e2ee09ffac505ae9166afac41bcf6be664f08792e4757c6155c89248723c8fbf40314c6ae09bef63b2c46a76832ded8a639e16d0d4d03a11dfec22690805a13a5bbb37c7638cf934323ad7096f2419fac7c9ca7a905d4ea6c6f3ed38b22ace8a106a6c733ce58d1c4553f279411f0cf9972e35a48baec55d24cac87c5f1b77f7329216874ad4ed4c75058f204684482b42fff8cb38781d5bfb0c2327a80f4352b8c25ccf2cf8cad9322244e16ec4507e59cf67f459a987fc1642b9113e9901bd3e90994f1786746433b889a8db63b0d2d419625fb1cc42336e97bffbf72d466225e6347da96345d66b2f410fb3f8535a89ca61ae2ac819c2d58fd5a2120efbe4c4639e076c501eb7362d59462ded4405e3d6d56af3989eb23bb1bf816ad5b941f67c85c60871d6ad078d05d40ade0d575a6e17c779345a12338bfb9790cdde60141aa39edc125ed0dce46e008766ff2a2f58be49819c05d3c3fb22aa34d9ec60d0ab0b0631e005cb625583e5af174cefd8649b6b5c79eceaae94013c3ef0f6a593f5d57bf1c8e71a7d2314bd5b68fd95d8c8f016ca3cb75ba6ff0d0ee1dd8840fd3d8801daca7b268e0fe0f2cd58bc24f7293b6d83eab70445a452bda4041d6f6822f3a36073d05f63cbf16d5a3ee0e21f195f19cb0ca05916e1941953df97c222cde9634a2149b0d4a73adb4ad79cd1113505aa253ce7f30a9e42d37984cd0e54e286d3bb959f0a2ef63ec0610f9a216ea751504ea7e0e468abd93aa8c487977482ced5ddae16bd4ed3c3224f60ce034b18db53d030d54668af72f59586b638bd484537fdceb58728bab201f092b5c22e25975ef53960501228e2c51782925ae0248a0a5f95141ae288a7c004973ff100d450c285de9848cbd24a6cd898086c3175e498f01f0b56148f09250403726c96a38d14e611d22dc8435bee90685f4cccf59760913cb66d1054b43972082373242e42bdecc643bf76f03725c7e210b6e951c5484ac0790fae98a854549021ba6348aea59e67cb6f898c7828f8fad9bd3d6de2a9547b833c1f6f68e64a87e47c7a5f9d8b0926bd909abc27b59fe2f7fbd42c7a3b8aebcd0c7c907099a1bb4af46ccc5fdf3a9cc09930b6fab39ce549450b9ba7e84fb8ca6546bd1c7a72d6c8daf094522a38e349a7372f61e70577de8ad24b5ba4c79bb18230637d276f2fd53d4e2058b083c348a8f55df5ec078ec53c4e141fe9c7309612a137bb62b2e753313f5094981c860e0f10395e5311b460dae31b188f13f7abb39df76f748852f1a337e049fbc6f4d7e3e66d005f5208120931c07dce29e9a051c85d65825226881614aea76444b2e09b76a7ac4e8b9b61c472d62034e765d1c80d9289644d8b64c227bd474a8904d52471af8a3d2a1093440a0ac725f828b8868447999040a030c8ba7373e8383193804549c03eb0feb68dd8c7a3bfdd3fd1878b04774ded80c0c00e52515947f3acddc2a08a0e23c1a897c2e57d248fc86056b1a0a3d12d11d8c492d37f57ff31f3d8230ff441e0c0b475883db19117b7046178cbf6251c0b22dab56581454e98173a8481fbef68a2ede3afb8e0c1314dc1d038569c3cf50141a26b0e2e265b880af3b554fa91db643ccc86f70dc752347ddbb4d8fad141f0d8c0d8772c23a1bfd3b18e8f3ed8f10bcb7bc052d631d0648a09fa5821f17b8143df1a6791712c41160f6af14d40df679a81637a8c5d7472da4b4e2d61c724964ed0477521edf333150212795c341ee31e617cbbcccb8d5ad4213c9256ff8084fd547460c5f99cc8210d316b023cc19b630a734b017c09e80609464f0bdb442aea6e0b9eefb489548c5a582d1513695b08231b527e673f97c3f3eb2ca272e1610225e9b7612e8b5ee2e27705b7109cf14f6ad8cb7e88892b5c470532419048ab2a88ec33b7330381fb12318790b560ec720d59510f71a5a53a93e01f1754d7416d2a5fec336fde80aca50a05859f0f74da8470bda7e0bee88dd946844bea112d11da82cb83602c10c515e384709604e739cc8500b93b9e8f7c3c0faa0f3456ee86a8aa3fe3cc7cef5f80c0cb6846fa4fbdfb649eff15661ce4e2d9635c3221d7eab8b538f79b09ed0b5414eed1ae0da1598faf631cf98922733fbe86de4baa972dfcbb908f6bb14fadd2d7f2fdce28049200bb1bf7a8097409d1f77146b012564c33079cf9033fc60763764310fb9c5e80d9983b4c64baae31be209b58164413dcada85c0ddaa314f4150bd1c42ea99d5539c1c4f40c706c795a700c3d289e270422c79b1086fcc5df3a3856f04b85115d38d2e04eadffe95f273bec714e2c011c6eafd09247fef4bea67cb66e0f1c43c0b15cc0d76f97d92adaaea339e44e3d6b3f8b30022d4ac2cdcbdc54e272a50e853b83d5e427644eb901649a042e2f44b20d54107066351d800341213804af51aa801208e32914855229a72804c1711e0d2e61ed8436b15b4ab22de5f65fba91b4bbc94d986ee9f081874b267c7e5fb5a5756afcb632d029e8546022fcd0f83a26e65ab4de64a7360f380c1c0de20fbd117df093849f29b6e4f7bcd17dfc49f263eca2cd1bce3265522dcd607933ae3ea238797818b55a237834824dba15d0dd39dd7153baf3d1b3e62da70ece2f8a93d4e96eef8e8b82337e190d5d9c8f7d26295dfe2249b3588e1ed6d216d94cd0dd47ba2b6de96e1cbae37afcbeec4ed1a7dbec4595de19769b3d7c7a8774c0188c870e1d3d7cc4660c06448720030079c4e68f1e3d401d80c08080af2304127b1f3b7a04993a60c6e5d5b9dd2dd45de902f87a302aeef078783b58f8730da6d3834710f007000b0730001e3f40f077b0460b7ab07296a9ac7633a6b2bf3a567627a8733f146909d3f9d1ce74f2b5b0d9dd32babbee8ed1dd32f44c77cb74774c77c37437aabb5f5ea6d0e8aee49da94862fff2fc6474b771d12d4e9e1add6d5374774d775b13cdc37d5c6977c3e83ed9d832be5e68471df08db6eeb6263bdd3d4377dbaabbeb8b2ec41fe6a158da197695639af2a30f2bf537b2e3df173969b84bb0eeb6e96ee31a5f2f8fb16bef7dafd3c3afb7cc7fbd5a9a67ae3fbe488ed4339d37bbacd29ce7786dcc67e9d4dd3574d748dd4dd35d3bd1dd342bc6ee1b59af650a4e7282f87ae01bbd68f3ea8017eb805614a74eedce0ba36277bb7497bafbc499babb44002958b8c0050580a941050a150c7cf024680935188a11c10715664422291c2904a9328386f2c0c0c4163fa2039c800992a302c18e2a33687880c791b807070210211d31029411601a2045a6a94489e26a0ee6015374dbb6335384112577c98952f2cd717a4746c651322f302687294931b98c6f3845a07c2ba166a044c14182003b9cc3e04841da76384782003b3f987cc68738198fc1e99d9919878971a46d07468a0c4a8a8ccff88653048c6fa8cd8b8871199cde8189c199b9f1e204701571fe44ade42e335262dc0547ca8c23e13b30becde444e17cf32d474a1146700e931385938284efcc38070308ce67708a3082f3989c289c977e18e2bc34038383b4edc0380a0769db41790c8e142408b003e348db4e8ccbe0dcf8c1e4330e04e732ee822305c504cace4c4e11510cc5f8e645c0384e1131be790f9c0b4eefc0e0e02011c5b6f385eb25a7e8895ac99fa899dce4dc8d1f4c4125df600499dc4f50361717149ddc94d32e28dc660099369d505216a080ade425d3e60299deb6a2cd4dcee16c3026938948c961fc05657a8131712f2f309c6f30a89c22ce64329938cef48468330014d78b0f2677796254ca1cd19313777a823ae564ce005050ce9d8a4e394425df5038452f272ff9e652c8949c3bc178fb707ecac1b9d9e42e39462577f1138e131b57918bb72b26c7c913178c97709cd8b85c7232e782f10d8691cd85e25c303944262742e53879e27ac9e1dcc585e35c45ed1dc35572d456ba01aa7b67c3414232494142c20605ec94709088c209015c4898a42045e18400aecd9130e544e184002ece9b8a8b632283e2803c796244c939376273938b3f9182e43ba721183fb911288ff1ce798284ef9c729e18e1e2313948bec3394c8e11a81c24dfd98c70d9fc94c379bb112e5b95b161013644b9f902c5a94e6e0303b64d0817db16ba9294238ee00ac021a1539b73311c12623ce6e60b27578ccba0bed0c5784c4e4c0c872587c372a385cd63884c515c31be798c0b8e09c9940491498aabe49c9b904c51601481c9312561427a9942c965b62ebae862ebe2a68b2851a8a0a28b2953bab8e9627369d1420515446ebad8b64d054b74443578134e4c8181e2742382ae51eeee2e45c90afdd22fa617d32aca0a89151211ca944429d5a6244c4c2075442629b6dea294548dea128e290994140d40828b23b2bc6871712f39a2b8bab435d72e2eed27180540394cabb6a8c690230a0c220d8383c2e1b44099a234a02b39920d0e4b49d59eb2c2844a59c101d9bc9d2855c5d539375ee84ebe715abc683955114247b449b9094257641b22e2380f924207c565bae1e3e22f4e6c378a70ae17df9cf84aa99294520ac9758a92a523eaa4cd65db729e389d4c505ccea54aa9552945b472955c2bd429ca4d968e0865c5490a0c74513a2d3a84d075900ca3630adde67af1514a959c8bde5c5a4a3f5c72885a0b14aaeb6c6cdc75f8682e4ea753149729474b7321840ea565089d1657898b192d5c6871e5cc68a9428bab8483abb4a1b4cca009974c8cd28c53957c0be98242a15059665110b76df36deb98d83627b6263ad031d135f1f282738a42d45b8e7acb4ce4b09480b8c0f8064513ae2d36284a279fa1524a9576d09ddca506e9a5344325277440f795522517a2942a6d2eae44e5880312850372f2d2290a1514165412d1cc0c9528418204091224488d248e83d142c94ba51b2a74250ecb1525202f59945425d722cb165ab878f1224a2fe12a212d51da3121e1e0da1a07242e07290b0724498babe43741e8362ff58c125c154a5b89e360385329e70859b2dc4081e3361f1c81c50747f4c007475001a493e10bb88201493180f8cd0eba195ee38e330367a689192a34b849896e2d112343a6460ca7e1260af40e319cdb5054361714150e08aa0aa7e2505c0d1c193132dce4362e23c365626464c8c839b5aae433b2a0aa7040382dadea969191c32575aa94a5779462702e19385c5277ca1443864c8d19a6d229c7e6031d0c279a69829b99320345a924030d8d93175769c6899929a514374385060e11a704171a7088562e6eca35d1f84c13251ae77cc6899929353433546c9b8dcd56ba1142131f25a7d2415895525c1057c955723591b9f94127d340e84a7e3ad580b273c36b7ce886d7d4f88d9c52ce500d7ec36fe43cb9e135e440d98911c4c5d5f80d270ae22272259628fd80e1363887aa12a4f42386732ea487265036e0d0f806e3c589669a082204460e0e37706e94fcc66bf01a9c1ba59c1b3fd4f80d5f5283dff80dafa901e7064e0d0eaa03a514876aa294e2504c348b3351096252820372c339140ac5255141d5e050e92188063a0ed5440dcf28d70c9ca33a40830de71cc50467e3338ed240ef60e3dc4c13311e84064e0d1b35bce434d000a3060d354a35336c6cd030d3c44c13346c6cd030438d19336ad8d8a081069b276a7c861aa7513323088d49868c1c27db174432706e36d0999ca673184e8303c5558281e2808bd31203e35c16130e1cd79d6c6040e686085dc965ba534e11510cb9b80c5ec4c963382aa7081797c1512eb3ddf8e1e4311c8893c7c801c2c5517873c538e785290ab7a5591c91f3a0e3b6e4984c318e42c5981cc6e42893f7c0714938a59713924ce3406493749ac198999999999999114d45332e830c3ee325199443d9e1bc3920308ef2211847c170a59ca11a8771989c2730507664500e5345e9c7e944c34f369cc64d584c3549382fbe790f2513161a3438262ca55416a6241a3082a4dcf4a0231224a5c669f01aaff1225039373847b98ddb7829a708989c1b5cce8d1f6c1ce54b6c50bea4a6c66b72aa205243a5943a79a9868a669dba2494141c10183f75326460a9a1a2c4838ea84b72956aa8e080c0c040e254279f314326a76b9260207139449c16a28ec60c381c0c2233b84c0ce7445d928cbfbcd4e0a0b84a3568b80c0def819b0187064c0d0c4e4d0e87855395905c307c860c2213961957378303c363e06c527236a42d4a2945840e95e43293d4753636251848441b0c24170c120c2418a49a18278241828144844a4225698182794125a1925e3822744435495d854a475493942404ee492ea54e47262c594a3f4a2f38642975326551fac17992ebb4856b564a9d5ec452eaf4522a954a3754e85e9c7bd9904aa9d316a5943a71a746fd50da41e5a06e96d06d2520286f189c99920af5827323848e0806e925c70585eaba524d92094be9c78b277157b8883a534c151d110c120c52e947124cc04c29fdb8513ac12011c174000669862be1dc044186a8b3eca043d9c092e43a113d918253a14e5e93a445894694d28f1b2514514d92ebe42f2527e272505b14ee74229a71895b6c4a314694a0702f375e70c1c201d976fa250ba7dafc458b6bcbd22e3336924e377eb0e1337cc8c68c9c214ee6b4256d7e4384cec4040c93121ae8367ff19817295164948b468d6fce6591512e1aba35e31c127a871abe350744c696a384ab0667062fe1b8b868c031426d6e6363b2e1b628a54edca97b4bab4ece995c3538dc169da281638472cd90c365e9d4c965e048e1b4f48e9333c088283b325c869b0187cb42038e11ca6593c369d1a993cb986c70382d9a753a39e784d639cd701a384f20a17666784d0e97e5c42535cb756384ee0443061964f0120e1187e566035dc94f1d0c37c580812ac12002c329c1c58812941826981cc898fc460859e8665cdecde1cc70eed29dcbe42ab96e6ad0b58b977eb8985c870fa219213139352e1797e92587339db65045072f53925ea8c821e29236e71cca8ecb9673e30793733e64722ee74914a61cd4d08c9bdc94f3c4e4333736e8aed0716e9a223345e947bb0c14ae928c14a617177fc11284d34946464606e766039d8b13bd547932e5e43138505cdbcba94f2f59e0bc5c514abd6039bd54e19270701002e71ce72693e948e987c94d28940b8753729d70da7583838e68e626075ab8e478079552dc02b498895995bc942afd184311ae1b24742eee330e65e7e59473e307199ff121199fc97912c5c99fe40ce53c91c981b263c2d2b938e735a5944b4ee73720e860728c702eeee2f2e28293e374429d4e279759a9861908ba6be29ce370724431f550fae1d26466e448e9e5a4a3072fb970701fedada53443812b57ae5cb972e5ca952b57ae5cb972e5ca952b57ae5cb972e5ca952b57ae5cb972e5ca952b57ae5cb9c1e2068b1b2c6eb0b8c1e2068b1b2c6eb0b8c1e2068b1b2c8e707385152b56ac58b162c58a152b56ac58b162c58a152b56ac58b162c58a152b56ac5829c97407dd10a16b6f1e6a24b938992a64a8c850d12cce6f88d0d9b8d14129c60c2a382031a890498a219314432629864c528c18fe22f3f2f2f2528a913423890a0e08979494258b16a21949584e319238153723892846928b93499a91342329694612a7e272886624b938ef1a495b89c31283ae944394616e3cb0422ac116979b1874442287e5a60339a2705b38184ee3e28292e19b0c2f2f3164a0b8c0e1b6f8c9a55d2ea6929f648081d3a1545b3614ca73a06670b69c19207439a2a8c68072140704c66de0c4c00092b9f141f7e2a6ada41a831125282e9c4b0e641a48d70512175818508593c941c5c8109313e328183ec4b86662fc0546015e4c4a2cc1449f4e2e3088ccc89c4e2ea7189d0c9a538cee743a9d6464e0d0c4f02e46c965885921f112835482412406c6f4836e85544a41e1c28a18d38c69850417e3a7182019574c4e0c8e8b8be3a2f423c60b33ce6d51fa3133136306870aaecd61b4e0dadac509aecd5f38174785ac5c7fac4df2f51a0206d8bc5fc5d2a8d2577e1cfea5f8c3577e1c560b7bd5c019d2b04ef0953195e54a5f6f345fbc7f1f885aa6e2ccd72229027fc653ed63d6b5e4bcb48e072de4bc34b779f2e8de7ee0210abe5eede6fa3ae41c75fe6f86e9e06a6946ddfda952e4bcb45ab65a405ff8347baf857da618f64cc4abe4c13aa928e2d28a25595e10c7e8d1dd0e170c08a9811027bce51b1072d4dd13c0e9070889d13895c6789ad6ed6044eff076b0c46a2f35aa3fc3d3c8acd502e9fd70be1191ce2248c297d53954bf680e3dbe1ff6d4c2a7b5705625b9be906b004b188010fd0abfacbdc06b637f3f16d6c741800c89e2e4a985f3938ce0d12bac8f811ca1035265e5afcfb6a6bad34105edad6b635eadce97cd8c1de320823aa6abf0a7e779ffe3d1a3fcdcb3d9bf888a347f9a7b31ebe38fd7c62af5a739ae0ffef58ced288a4f733c7d754beb7f671eed8dd118cdb6867ffd8de64c145dee39161d9796666bd191d2c3bf1f525c2d8884a709febeda9fafd26c2daaa563eaa1c72c129e26ee367b8f7b2a519c9ea7e31db84c79f824f9b04bf18f34bb77e9245df57d1efe2ae531eb3f74e0e13cbe688a30ff59ed7d700f93f366f7a73f1bc29fa738ceeab376df8848f7fc5b95fc2deb0b857f3f8bb4c88bb05995bc08a33ed9fe549af1f7d4323912b97606d6f949b2ad75f2e070ee544b33697f421bab948575741461048f583a72e898d101828e0eba4b32e81cc1d7cb475f299d31b7f98848778f2296514cb35822c1f7e90be1fcb23b876a319aed0f6e27ddad43771e108d133e3845f26fed0e858fadc813f684aef0b35d12be8f87316c52a3397b987fb6469ec572c63efc4ac7fbf943c7a4f8b31fe9256bb094c51efeb5197b77c6dc62c7eec92ab532ebf8b35de21e8e4c3d467d35c37326ce32832ef7b0cf9fe139cbf68722f96c97d4c43b89583b848f04c9aabd4c382ed810b4b2c10991e480841c50900313eda9527ef458957277daff18a996e2199e46c6cf3eb59b2b91eede418e1ee47822c712f87a3a16b75ad7be728e592bdb0ae6f001da23932ea932faf78dac5097a33b4856a908a3423356dda9aaf0707dd2563a6fcf0a72e8ee19bca0bb71ba7b04dd1da5bb9417f87af975f02b7c1bbe911d6162aab5d8fdeb8b9e676d8af78d80bcba52479a478ff0ab8c0aa5bcdf88e6f9835d95ce194f6d8a9f045f4f07bc983582473a2378a4e3031604880e1f03d009f23ce6fb781d42203c62417ae8f0c1baff1ac1a36a297ee18875388e747b2bacb4c857def2fbb8bc4f9642d81526094357c8e30a5f001ee86e01dc04804a7777901fdf4f1168c59def9be169e4f3d5f7799d2e4ff5630748c95a4e61eadfe7d36755566b53fc90f523cd4147138927ca2ac5fe342b8ad363762c477a34c798f5547dd153a5bc1c9c478fcf8b66feaecde02c22abb4fe8ce62b5cce86dcc3f4e8597fc94abf276b431f5867c6959622e93c7ab8acd2300c3f0ca7d78e2cf978ee78a18fabf645fea91eac539c3ba9987d2228fe88a0d8c81fdb19cdc7cf549cd5d24cc3707a9d7e6d0cd31a88274c55fba294d77e96e73886e2cf3cd7d28e329b7d7527163f743c67e444e29e3fcef627db9f1761b32a11c9b2878ef783ec4f5895d48eec0d8a892f647f5eafd7ab468aa11d5ff87a3a00a80000aa177e069fc47fa9fb9316c45ea95f9bc137f2e931ebb32cab2f0a0d816ff47a15cda7b55ae19318fc253b45f3993c58edcf7dd8f8e32b3ffecfd6e8b1154171624bda4bbedec85e929c98863648d11da4bb277063047cbd114f1a3863ac6abd7ed1cce25ca2530bc3597b7a642f894b3bd6aaadf3258ab4e873fd31834ff4377cb096b6d6f9aa1dd94b7637b79960daa5698ad084a6294296a629c2154d530424d4f044142df8aae1eb6e2cd2993f7cfdc7ba1a8e74db58adc147773f586d7de55a5a109c35d88416fcf0c696eec6b52f7a554b317efcfaa4be5f742ded158bd91b3aa896e6d7e70945e3ee9ed1dd0d251ae7faf7679576378eba2b8dddf8fa55134972763782669ee1cc3f7637821041c51bdeddafbfd175b59d0d2f1a3fcdb4e4d3d970a2b391447787af6c45dcd920a2bb6f7467e3e5ad901ad94bfacc33f45c92957a3877f0f5583a5807cf3b49911ce92bdb701689967c812f8a16ecee1bbaa3c18a760f7f86a7883dbfd46c8eba3bdf37aa1624c92f86699e18bf0d3d87a0cb2a7d983f59cb5eabd3f125dd5e708ebec37734471c5c88ab8ee688838e9394481f741d77f2e1eb6159a5b3fcba4fd2fc63dba0bb0fd09dcd4c77e3dbc3fbe1e960fdb5e02bacf376b71041749b82d8907457a336bede2cd33b7530695529d2da9f566b87d1fdf002fdabd51ac1a3f0430b56223da15025428e60935c5f084978278d5452249c3be1dc11e92c82f1836029d4ddb3ee686c81818189093f673abe07e13f1b82818189c9f58d887818094f934a5d56e9686fccc3774c3d08094f93fc7f63229d46d3f3d1d7e9f845586943b75874b9f77de1b5e05fbf6ff48ebfcf2735f2f0bd268ab3ac73acfd2cbb48732d9d9c636d66ecf865610973f7a3397af8e13f78f4201d67ad8558b437570b7a09e2ea72afbe1195f9f44a737dec0f734b276d3aa6fe97fa97373ba62e5a0bab328abd96e9b5f492ac998cce7c7a581f7f7d3c41afd443c7d477f86a3d4faf54f630c7e21cafad7e6dec07f7f0f899ba0e3d74d0e1c7fd3cffcadc56a7d92b73fc6389f1f467e2de07f4f95704f44d7f98675c8efeb796c9117f9e20f5fab3ec2b71964e1e3f48c34addd2b28f7bb9b49ef11433be34e62fab74b4e0c3c26bbd526755ab13facc3b83fc3ef930af89d57e9eb2bf32d9f4710f835e292ef3cc421ed617b24323d8249c3b471f561fa070ee643ad223f78d80badbeb8e26d5ed2b52a4b348973ae0a39b63c279347473acce8aeef616129e26ac20243c4d5c5629c60fda1bd4dd01e82e11b1d1bd85217c27be43f81997448ee70eb54c8eef0febee9b6e0e08fda3bb0ed5edc92a25497b43af89b9be48b17b5ea9fb1361bd55801f9f9f242e26dd3d761723020d030313e3e5174518189818950e0be7fa468f411bb22a9da38ea59e87411beae8b43099f32c35040ec2479b71c903030313d3c5f0d1dd1e4871a5371fbdd7298a13f487799de08bb03903f324310d739df44e23ff6a1d573a73b53ca23879bc8f66ebe77f6dec61feedf01c1c7ffe77922c717e98ebfcd1319d0db957044e98e3214c67d92bf5fcd8a7ff7ddafd59fe1913f78a402bc262d65d8e671015a751f5c92f846b7522b1766826a346ac1d0a3f2c45b0fad4c2f95774bd085625a10814fe8360891dd7264d9c2e8a94e6efb4af3e5d56e90c97a45b8c63d6efc3c6b28675fa2afcb09616e6987e7d99df277d622afacff26682f0f39d19fbd3bcce5976ff6b479f654a73b2f4b0be671c7582fe3497555acb4bfafd1c9bdb94eefeba43f13416b6982dcd8553778bddcdb03aac5f044e58a533708eaccf33631dfc4634d3915e327c5bc127f1eb28cb867c6468ba6b300f1f7f321aab96e7737f5c4ef061ee3fcb1eb39eef241d530f62912378f4e5974e5eb814cbb1046388d0dd367417b3822e86ec62e8f7b991bf6c5e9bb1e7faf796a06323ff3eaf74ce405605724ff59e23cf6474cce13390ce6829c7e2acf773a58eff4e11fcd07d025464a1890d3c015f4fa7d5c2d5525c3f1f7dabf51a3fe31aee6050d0edaddab57986758e1ece9dfb46f6f52035baffaf113c0aeb93b8c4a4bde158e2bfa16867f8ef2cd726f8e12b83f466fcf725ceb2d2d7d11c5fe4081ebd3ecf902c8f869850fcf50b003e295404fe8c474747871ee0f40102d1d9c163ea00d203f411f6e8e123888e07c2fa3c6fc6b012ebe05cda22f067a04ea6b2568ba4337ced2c97f395af25c912b37e9c37d66afd48732def4b17daaf8d5d191ddd563fa2034fc02f82b57ce5c7dd6def13e135987f488d68e8367b26c7cf797677f72904ddfdd3dd8bd88daf773f539d07a988ff5ad0003e4644718219dbf195e7ebd2d249019eace5972582e2d7cb26c63fbe8ee698eb5392827fef87f5f1b5456a775290c6be3eacbb89bc8ee678df88ca6e77f7f4081e75370ffeb0bb77321da9f8ea6e17fe8f75770f04c85f04d2dcdd43707e8c679ec9e8d35ef77534c7eee621a4afdafdd249770be91d5ab82aa996e2fb4b1e462f8861a51039d229f21cd1b03e49baf20bdd17c33a8dbc102e45f29642612d639fa45a9a4bf08f88d4ca1d59a5a1688d7c9e34d3ea23ab73061e11b9f65e2249c2fa20fe9e4a65f402ddf9228fac526c459ef033f920e8c25f3af924f54920f16b9d331edaff90e33592c1793f86ebbc438fab25f127a9dd2f7f083f5f4b7e3c7af80e41ca2068d08180090f6f87c783f5e204f10cfaa1030f234354292123d8640850abd56a8de0d1b5f71219c12641cad0e703f4033a3c90e401a41e42085fadb258e29a9831f51cbe077878a0460770d001b17b08215621ad962ca7cdab3b6d073c0e8c8103528034cfd1e672d69f0d71c0080e040d21c42a0821bc3a853850da00141b68d2dea7f255e8f319cd5919fac376f84471f27c1ba8a1812d3d84102b1768e0eba9811a98d802131d58e13963e24806ba30820c0865a03100457b5606b397ac6f54ef1b59992371af26c228c696f49f655cdafbb23a43552eadcd1ecebf9ef2d21bffd6445c5a8a69f58711c1c0033a0c34e99e4e9260e006064cdd3d84102b3c69ae0b30e10253f41042e472d22e90800bfc2cb1a58710c27b7c5673a47d1dadc59316ba96c8c1122358e248af42ea4108e189e2046d7d7dd1ccdfcce10ceb5c8286ce0255ba8710621584102e0b4cc002b8bb957467011b2a60c5104278487d1584105e2ead87d7fa2af44933f5556dd6c2f7e93330cf31f40a90dd8d597f2b6024d7c715e8308e8e0254bcf0f35ff21bea2870d4f4fb7c880241dddeb5310a787b147851428aee8e59af4d9adbbac293a6c4874b3ccb943aa63bba53c2bbbd5a9da35b3bd44d204b7b0f4e008a090c757f2c56c2c049628f592f02a7e8139373763fc83d95acd25cdaeb36749bbdf768caeddf9f0d75b74d7713587577507712c8c2535df2887a32ef53feb3a1214386a852438688e2e469b586e09a90e3e94342848c6093e7d1a3cc74a447866021477667889023bb93f1874c92a8411260123f10d802010f40c00210e8a183c04c777bd673fc68718e176b628827ad9623db9ac33115cb18c62eefc339da0a7afe59c6d452d8677fbc9a284e9aef24af7d911c6578fc6698ba579717fe4a9cfe009cee06eace01561c80030790ed3dad26e63bebbc2fab56745b9374f70fdd215d00a9eceea2ee9062904a0d80a201430de8babdc77306de9244c2d364c5fa6cc7bf2caf3691780dcc45985ecff3615e9b238df97cb54a96bef2907000123f90481dd1832352d0ddb0ee8e3822a50bdd0d7627c502527ca4d4d0dd4dba63800eba7ba83b06901d037c58c016cf6b936cb1bcffd824ebb33c1e3d62d65ddefa3e6779a91d4d6cf64fa5f2bc94af523c9a7cfe301745cac43d9c8fbef565fc6158a7c72c39413cbde2ff55f8b52cf17fccaf8d7de367fafa8f7d31fbe10f53ff2f12de49bb16fb0218d02d00c90286747792ee14b0457bf8fb90f034f99ce5618a84a789c7ec4c56da3bcb3e41904e51b4f98888028c1490f266209dd197d579a7ecafe3d26b36fbf422ec8aa282281880324577b3ba8b42bb7b4977516674b717565f21e169d2fa3e6779d9da2448bcf57dcef25433cf592a36b1d0105590d25741ca949087d5e6984bfb23cda2b5b017a637cf232da3c596d147b48cae62092da3655a46f368197d04080d1c8eb36d465459552107dd1591d4b53a63311afa0cff6beddaf1c769450be2d26b30ff6beb9643f796a366cc79868f29f84cba3755f796da0240831e9e5069b22cb25644d26d84d63d4935bedeebe9cd09e0e2e9cde3fc9bb13fbdb97bc3b109600b80c9012624d3024c504c46984a5997001b9dee36d25d00223480aff779caa8d1acaa1411473c979688547713f152fba29664b3afbc35da1bab51d1ddb45a086a11f0969dd17c85af97c919ce570d3cc2e2884a9e33daab4ef088088d0a2f0f874fcbdddec2a288319e22cffda07b89140111194a52cb4646f47ef8c25314e70bcfd70ccc1306623aea80988e47dd953d5867067eae657a27a9e3795e7f3c5f247d87f0efcb64f4e637a2b87eec439f65aa2b53ddde42fd404a151828d0a091c680d4dd4d33c593190c0f2b8200b1c1f2c50d9e69e3ebe197acd2abf3a5930f5fe01b75a99666bb9400878b8e0b134f56eda5f98f56c83d0c2bf10cacf3eeb82841c91204adc75ee1e3d2064e86890baad40b539cee0da77bf32e5e8072693f53b7d857199706e8de00d0bdd9b0dd746f35740145778574f787b6fea5fd0f086ea562a5feb0eaa1ad2e83cec9146f5e1bfb5aadf02b0de843fbf309e16a29acf0d9d2dd220c46eb86640322a75af02fe9a19de51fbd06db3250e204d0bd5de9ee21ba236b3a0b58580290eecec21ed13a03db8d2e6458509510131f3b0f423ca4a3b7f014613397634d0dcad6deaed6cc8c58c629ba7b06e6397ac651371bdd1b0ddd9b4df756a37b9ba17ba3d1bdd56c32ba379aeeadebde62746f32746f30bab799ee4d6683e9de50dddb4bf7e6d2bd9d36ae7b2b756f5b7fd1dd63e86e3174b717dd1d86ee0643777fc10bdddd85ee3675218641c4d2dfe734039df844f8b8d54a42ca37f30c5faffcf8eb360280ee8aa8b4f7b794556a79788a96e8199edd423a9c3f73b207d01535be1eae4af21caf2d42fba389c4c39e692d3dd52a958ad91cdc8738419fd73af6faa41dfac1e2b43f31a05c02e1a7d7669ffb950694ed4fa596fc910ed1ec91a38924fc6bf38495988a349742374ff2935425a150c6f648c6654ff8341b5622310fc46ebe073e4713493d72349178d5d2f0bd267ab63fee79e47f38165d4bcb5f75783a3c1e462f14fe387fdc0bebea71f853087bb5ee628bc810d08f7b35b15afc7d3e1d3f2e71edce0f2996552b4eff3ec72b1c8bd90fe7cdf8470be672c7bdef2bed018a701f3244c8ccb3c75737c8574384b45a31f185848c7426444e24ce83ffb559c8dd13e0ad96fb8b941c2d68ebf77d44fc06f7aacd5824c779f4feb35c624c1d675a4b1767b619d7320d69e984e6fa14a4b15889abcf1b51d145fefbf06219fe0c14922d2132bf071781f6c8ccb3e7d60f7d669e3dafee758517145e56ac56defafc17ac36dd9dbaa1c6eceee5a36b5ff4122768c56e09b40310f084ce6b048f5aad6ac7d182affbf4de0943400d773cc493ee577e6c44c5f922ff8b445146f18ed70bcf17d8322104d0e5080b9fde8c613a412c0173da6862ecf4c065e90ea95d725f14278f4552cb54a45949cf0836e119c126414744e62d5df3962e215710b6b1ea2384a5bbaf1ca1bbb1e8ee2b806084eeb652842add4d842174d72ebe59a746ba78c407ebe4a9f6a7565d07b0e9c6c100ddbd1d40064679b05a808205aad0dddb1411982068c60cac00d2dd1b012a100490120ef04015ddbd41c00a0050dd9310147477e90811024401023820e085eee6684ca00a1632c0441556badb650317d8b25dd11a430fddbd69d105059e7891012800e96e1307be170dcc8040d484eedeae80f1d881101170b2846e5c7b1f8460cc3c4377eed42449b6e2fcdb0d44c7640adabc3c76783a5895662f6c86e78c8912d967781a316d32587413e1a43d904577c7ba5bd28489a93dd0edcf922aa1053dd7f7960ddddd80ee66d2dd4f04c00f2df812024c07a1bb4d40e816c5f24714278f0e0d8c18c8d8ce7aa340b5747be243774349b4cb16c057b58cb991fda985f367d3adcccbde6eccda4bba7b6d8a7fb726422ee8849ad03d679e3d9d900fdd5de9944dc745778e33b03ecc6b79bdb435df61c887f8d11c439f57922a49729004a9bb55a9e9d8c8552977cf3fcf9166fc6e731257921949ba083f04e9c6e2a4b97ee9e4b1d77f5a7e980f092dbd1f349623ad1489900b564a84ee7e7517a44477ebe82e280b0d561b0e91e3cc38ba0bfafa06f50479bbafbcf5aa95b0560b2be92eada0bb11d01d900ea02b0065d101c90048054014f0167e2a8a936645f163bef216be31f7d2d62f9b24397fd6fad102e3eb7d68ab0ecf070f4f070b16b29ede8caf87040ced79d6bee8958fbeb65a488a80448af696e7e9aa55ed8b52cd6da0bbbf3b2441bafb024b74ab523c96ec58a263c9081ed119f45fa45aea614cd20c4e72a4fe5424c7f934cf25cc57df57ad87e458c2bc965fe62b2be4de47d26cb1381d3f154972fa7dfa335cfad3fcc14a71b63ffe7d9fefa0cac177f01c9e83ffc75e34e53c3849f32bbfb8838aa439058a137cf1e09e5fbcb688ebe8f85f5b6574957179bfef73cf7f96a9d760be529134bbad290f9f088a5935f14e918eb5bcac5ced8d7d3f9fcfece31e2e417182532c657feb574bd22cced9cc30eb36fbf71f7b7d46dfe797626b73489a2f35caf1cf25395af01327d097a9588efe1f7397fb00c0c6aacf0fed69ff63848702d0a0004bb4633164a85b9c3853b1c47f49ebe41c5f31cf88d6c4cf93863f8ef4fb1cd7e93f5ad0e622ee65f0efb520ce437c471349ab158457fca23fec431afea519cf23eeb9ab7c55cbb496e368c154f84734e62b8a695fc4da2125d9fee0d0274f0a5a8c5df627fc24d9fe74d1dd39baeb9942ed7d087b42b0ce12631f71663b8479f45012b3f606656c8dfc486fd0cb6650b6a25058ed0e4f488ed7c8b5e18bb089690fed7fc46969123c8fccf034125a1ea10f2d4f7ea190f6e09e0fe9c5e11351bb6f64414c7b669e3de17c23f783f0bf582629ba73bc9f271372bc46669e3dd5d22598878ae47f917cf43faefb8fe72ca8d26c4ff84a92643c8ff02809690fcdfe7c9e59485669aed3e8c54fd283c3f9464027489c8c3d19cf23a1cf0836f9d814aa7f048ba28b8950aea5e5897d9217497a87e695914abafbd45d0f2ae86e55773d207183e7e98ec7c778ce9b8f88fc2df3ac322a84ff86a1ab24127e55f2b2f78978555bc7be9302fa9ce591a5e792f46b551f0f17e2a90f7bd73a0064d000a06de8820d36a0b1e1c8866b430ddd1d035ae5c039f0d10c0a4a017939fc46a6862b6af0410db8061d35bcdcc0e2c6076ec4686ef8d0d8f0c2091b1cb0c143c316342c4143830f5fa0b1f981cd91cd0d3435aa34eec1527d3b82be948b7446abd5c9232805f4b9efc4807a38ebf395b752cec3593c825e3647fa97dc11f47d8c95aad4773e1e419e83eff01c7ce7969f0fe7810757a586f0e8510a69b562f6f585f36fabf5b239a991f3b8f7790e5e98c37fac264eb0c4d5d20b9bb1796dfd988f17d639c3b4d298db5c83d5c831c3173433d080668618ccf03433cca0a165c9e71ffdd8f497dd390361a5907bd562ea93e6d1a0c18486860f355da0a909024d8d12ddbdd3e3397c2eab34e8fb907c1ee439f837630032b2d0c888a2bb659a46860864fc74f7a96964f8d0c8b8c10a342da001010d0d066868461a9bae0add1234dd0368ba9d18588881849aa689b1039a18962606101a19a44023030fbe5aa77d0d45bb6306cef76b634648f01784f3a70a72577da63705f4f9ea5321d9e971d61744fbeadf8f2a7c168b8559a168fd43f2e3397810921b6ef0c05ac3f9656219fb3bc1af565dde101ffe82f09fe55c5a07a9cc8ab259e768c4fafc67437e834771fe7aae12b27c856288fd7fa4e183b4faef78a57dfd9ce591748603d7660debe3af4d1994a0984686264d9d46061ddd5e28838d4703438b07c38aa698d2c060a2bb457068884dd3c00062c88f1649ab3544b37506023309a099b98146e68a0868642a4023b343230323860a9a981178de971fbf66feaaf6f32f9ab9d5fa3c6653be63547daa1db02fbf5005fa52eef37d5f0de673cef09c91d5d23ca783b44ed27dee93e11759a34a6595ca2a8d09a289f15206a3a56960a4e876d1c090210d8ce3681a9496f6b0eaaf1d535eab13c54437100d2a287fcd572e1a54d79ef86077fbd0342f54744fdafdb0962e9a97284dfb18cd4b93f6ae751e2fa86e98671c7507a771a16287d246c154a443342e41de8cc6c506e6299d4c1268c810212607d0987a684c291ad30b0d4785ee66d2345c0568b849c3cd74125f793256b5bea2292580a6a4034de98566eb01cd7644b3e1f0d5fe783c40a4803c9282ace93e5f2ce10b157c1181ee0b295f00f9c2c462a9c4f00031b8bcf8c215bc188217485ee8e0850d2f640843953070200c621870008311c020050c3f80810730b87c61055f08e20b34b60c610b145b685b6ef08210bcc0022fc0bc00c30bdd85157421d68556175e74f1042ec52067a9bebf36e3cf6334e57835441042eead9d1e67798e1c9ce68f51d171a675357ec62d96c7f23eef6801e9f838cb5309c9ac9802fa523e03ef7cecb53b2b157a917504041029a02f6605e0e2acc11cf4fc139a650bf3d50ae3495ecbaa5689b3bc4f258a93c77370203c07175a8914d36a81dcfb767c5e135f9c46b474e2cdbbfabec7655853fefd6885bedcfab29dd15c9572dc12c5077ddcc31f2e45d257f4f396f7bdbe1dcef2cf6336463d633a7d8890fa339a10f097cc6b6dfebfb1d1de98107e71c1052e9a206b19bf382b2de271d1c4662e7070010bb6a2e7d2ae7209e30213cd85a3e742eab790e4a9301dfddad816a6747bdd16a2587bb7d083a70a539326b4854e2787eeb480c5b53065470bb3c62e33722d04e9a6332d5ba61629b440c0bab539a47dfd529c46add6d0ff8dbd685fb380832ce42cec6c81050d6081070b37ae60852b28e10a0fb8428f2d94b0c5115bf4f40dee5ec697621cf77139ffbaeacb9b53fe4694fc2f72b7d96bf78dde558fc5194be13973519caff9a2b52cec79607e5fbd6cdeafd55983917fc9d5cffbb095eafb927e5efffe17d5895f2fc2a67bf5b7e8aca0457b4340404978bc07614aacb084155c560052052ddacb25cc595ef8344661e02d2d3e7a3183f38808158e40051750c1082ae0c852258b07b20865e92960610a495358620a760a35a460450a2590024c0a3851d8a2db1b777adc56b7b8522067b9e3e9b549f3ef0b6b29ce8ccb9e24df8bf6f5556dab45fb9f0ae4d86667b97bdfab4ef0f539cbbd95c42bfda8c6ecf47196f7427e9fb42b718234d35bcaeeec719677ed0ac7fdbc28241105044401480b2fbc1bc431cf3ccf5b23cd0118c0008a3cdb3a87f8be207e9c425a44408b1f2d60a040032818412189b5f7734c555fcaffae9e66c56b9de6e3d54452f57d292f31a6dee7619dffb7c837bd24b85a3cff82988eff37569f087b63afff58486ba238c3214f20bdfc582cef136c54f8b14e0a0b39c18abed40964f8f9c50ff187ee851f3ac126294bbb92a4486ad29d645304d2a2266069c294226ef390ee9af035a107af09364cc072951c49a2e4081398604290f7e1a389e4638277b635c912b27c18c9d144f2fd2cc18af696d04477376d094dba9b2e41c7126e1653b288d2dd338ba06e2f0bf169cc6b5324310d9550a53d8ca9387ef6518212ddedd9ac84991252fd4a8091042ada0b1fe6d78a4f1bffc3247cf4e6af799893a0a35b86842dddedc9c292c8436b656e6b2d631c48a0d29e2ae5a1572468c0e637a20d19e2e3ab212131a0f1b38f10f0978494e7c5f20ea989e21c224e6cc921437c84601131161ddd5eb51e7eb64657a2f0832b2ab842b637946dbdefe1f04e0babf68a91ee6e91c8159bf17dfcef39c2963e8214dd4710bb08a43e1cc13b820b1653747b5eccaea8af7cf5d54471be3e7f6279736961d37f0916140beff6feed57af268a2e4be4f6475be968abeb8a2c5c31c5cb8ff1d74c9978d888e6150cd39e2b1a70858ef6fed25ca963ec5466842c2ef762e2e38795424658c2abcdaf85a1cb083eac70e1857f2979f44ebf0773fdf1f54654f63d58430febfc4bf35f5f4dc72e2b505869d2edd1ac28fa0c3facef78ceacafa65bb9a15b2caff7f8f0b85091201fa77d15af92227cd143f091ddc113fc2545004011ba0a145586aa7044b88208503a2218f13e58895fe1cf6fc563470e0f0ae7675ce9a762d5d04b5bcb60696be1b36a89ebc77cbc4eefaf37d6aa0dcbc7a4873f84150c61034358c010123004030cc1c653a5f07cf9b45a439e03136779aa9d1eff0ae42c0f87f36ff8cef2543b5240cef25ed9da242f7fd80b6114828d1d04a116041c3e1eff592e63f7692e8a1fce71f585ef3303f3dcf97e96ebf4951d720f8f25782958a97740800284cfcb6479338e6a7155e2fd40053f28e20702f001161f28c007a00f6e5891d41e8f8a2705f41511c5c9f378eeb45a93acc170ca3df04e4c633e9eca739d19d3947fad5ca7675b453a45d15ed1ce68a3cdd38a29f6c78a285f14be1541dde3e3e18f876b5fe423758cc3888aef430fb2f84ab33de0a107347890041e4cc103920742ba1d74b1832a7ae5318bf3bbbc0fd7bee85f680734e8400b3a78810e22a0031d74d0e5a08a1c7c0e3a1c24e12005dd5fed7df8bc1552af7d510b7fa69709acc759dfeac3b5f7211ffdcfe7ab2f0614fad0a1cf5b389c9f04d6e32c4f95c2217dd5bea8d5c2b5f7a1d51ac2617df243cfd8824fd6543b789ce5a9667866ec54258af6ce94acd2e918478f8f1b3dec33f8b1d8ab70aaf645b52ace213ba365b17c3d0e52dddd0db2dc8005dd0d8ebabd59a6b4af37e8a1bd9a98c11bf8a4b9a85479d98bd4885ef2f31427889f878a1262aed6e69528529951493595eeae36c0523bf2309c8e147eb6410f8ce3c95a9ee468c14a5d3f7694435aada1199e464471f20c191212033a726477447182add6500d64d0a00a1a34d1edd55be6dae7fa63155734ae22a79b411466d08119f4ccc0a6bbbd3c65ef35d5f7a5f0a5d5ba2a4c4dafc190783218c014627081181489814b0ba8f8a8f8018324181801060a80c15077e339cbdfd02b1ffde72c8ffccf594378925e13efe7acf9304a9b247e010a5e007b4190f6fe5d507301ce145e98c20a5330d1ddb83c3a7a219cc2def7cd4f14670bb4d082285a208487abfdee5b16408005cf022444ba6301aa5bc10e562083153859410e5250410a12482184142715e8a0bd5690b3bc96cb592def739617b31e13ab1d59ad20ef13e7df8be7ce37473a3f92cea6bbfd5be632c69a612ac2caa0144c210529e8528094021f29d089228b2882104519054e141c1452402104142e284a2898a27b87cb2a45e22da01ea0212fe613dfcf3fce3bc9d538f10ad3af8867ef13e1a1a5f7491d75d2322e89bebf384a5bab4adc537ddf8f13af8e3e2c6514364e4cc3cf591e8c1ebd18b3d9ff8d48717a6f6459def77d1eb3993aa63458aef3ce5236c37f633ebdd2262984829c1304e104b413f49ca046777baaa0d46332470e2f632b622c8aae1c39dc7b11462b0dfd67f9ab0d3d466976e6abeff31accadf77a615a9588f3ef0c4f23a238c1d90c4f23add6d00ccfd9db58f5c1a1cfd0ac4d60849c7f5d2648b53e13d427c939f30a34054bf7a4b9a64ce9ee764d0992dd92747b9f08561dea9ee0c2135474b7b7e4bb9647142748896470de7cf4459e803d81c3389fe81248e1e50b7e083ed99520fcd18278ce420ad2526848ed8b86d4de0721e02f11450abb1f547b1f7cfc283fb42009923ad3f14990c4892f9cd88213217042891342bcda7d23d5d76a59fa2271ca3f95500ae8f396cdaffcf85527f879ece813fa843c071f81134690c4081630823b821f46e089208b7ba258c6fee6b0beb7c3599e2ae59fe9a5ed70967f3c1fcd3f158ff77d68c12ff621ed3b1150e96e4f044988408a088810c1d74384f80d9f6a470ae873d610217e835774e7f8f78b261211d8747be4fc99631c5e73c19ec90b85c08a982b044d74b76cbe5008749a7042131ee8f66e09827fef87b5745cfb2258894bb7395b9ba426fef567e23972e4c8e11dd1d85fd2070c52d266228fe72ce8f19c9118df1f4b5c2d88efcc339c9748ab35f4ca2569ed7d0d191202fe9221414a21e02f098f3eac43e8e03144a389a8e4efaad7a99e059d424423a2010200431100203020168c478462d9704a89caee1480037ac85c904c9b49b330c729440c41c4100000000010000084410001d4430040b59b41698cd39138229bd43c3125ab1b7187a0399ae379821afb001729652652c303328dabc4df413e69ecb0b89e51127fae4883f5fb04ec9952bd58b11dfde5609c2ecfa7c0162ee9312791709cee7e4ad0e101ce8d81e8474108e19169e85ebd5ac9972f6ae5d8392aee7c27730bc707ee12ad0c876ff670428c7f13f25a64e6b1bffb2ff8ebfca1d9c75c26e23e643e6dfca3cae320781fab8735f630b4bf75fe61907b2c74900fbee792bdc54b827b4c7c82adf64a82f1a595abe05d9be3829c2d4f18269c20ee4974ecd0bddb5a56188a5b194d46896994c9e4f041e98baa91c6b01500afba8b323007336cc45214391eac7808591385b5a906526455ae465445279e2a298dcb020b37dbda388f10d6201b23eed9089ea264c0c422530bc8663a31ef01381b614a9d344bcb8b9568dddf3088fc6779bacd8f1f7bee529ccb2d2ea676ea1da348621d2112ee9dd1dfcbc11c58aa6f6fd00f2f502eff5bd07db3102a04c9c46ae5c765a03b7024630e9c712c4be8fe2dd01a86f4bda6a98bb439d42c3b4b8167e3870955a26153f01c84ea8e0676c8614ab438d2a65f7e7dd4cc4381b07dca81cc6725f13654e688d05049414c9b1e08c8e2779c2cb765d82029b1e2e1a6dc8119886a39c21bc819302c9e588c856db05f91b5aa08925b5393d52423c3ddd3b6a8f903632ca34ac30a655ce7b07e32bbfe84b43943bd11032128014947fdd2f11f7658845ef1fbdd2b427e7cd26c5ad6023255e2d65b37db9fec93e08c4c3ec9554f153952802f0eb316c3132030047880e8f66e39829cd893b4f43f175d2f5934fb03c078332bcf8137fe53e90286252545af6142610ce025d6e9959bdac97e77bab650124b6d51443e55e2ec608371faaeb44ce4741ead369fdbe1656e8e865f35f7af61ff189ad963ae02d4bd99bc5bc6c970f0fb4f22cbc13641cee172597afa3f15b3ca545c667ec432ed2e904ec43493b4b0b010ade5b87ba35e869a5bce7ad27a215c67feab1269d37bd59d4355c8ae2913095d95f89984c77d66cf209fdaaeb92fd966a073540477c1f0996cde4b6703e180cec319d9f834c73fcdd1d0347ea2e709c03f37a8de3af2f82922696117e9b2a9f78697c568c41d05d9c5ac9fe431df029f667d0736e7396edd91bbfd15d60def24406a2f5f136ce4a9b4c2e875ad912b949f4501d428caf180251ceccd1f8d4111543598b451d4564d7d21c7fc64cd4af6c834aac34ee021862f1fcb40a4cca07cefcbdd13a29740df9cebddf185a1a2726cded036952996199763ac01f53a40dd436c728c733709701d99d3a300646058c5ba28bae1d39857d668e775ed2ac3638a61aa1969b28d35731ad6c20502c775ecea9efd4506a70e84aafe64e493b8d17b4c41aeb49377538b615a1476c11edfa329ea5e94991294eefd8770e80b35845f357f87f0589798aa0e63eb84b4ea9203f65591d66ce78d9c9eebae08ff157e9c8ae9e44aaac45f814542385b3eccef02de7c2fc975ca4cf95520b89fd5fa7df3e206519ad821730d00c319cbc0c65086e1554de67a02c4f462e99c968e6cf8cdc683c013ca0498489fccd7b8d6593661638598adf0f2fa729b812c05b34d7589cf4f3bce3898010e08e659e4874a7bf61ee7bda68727c952abfd072e40221c9ce8bf0e749724de524cb08f96fddb6b4e1a9686bc43322da7bcf1591e605f9090de95734edfc9b30816249561d2d11580dfb9d2a3936b2701206fc146d9b60a0f9585031e3f1c1dcff6daa6ef08c199ad26f4e30fb99652f929a076da07ce47b0d000fef0e50f00b20b0986135e25239a5407921f1cafb08921ae9a0cf282889544163877bdb98e668211ea9b8833a827abd1211590b49036b0fcfc5f4caffc13a9faa0e70310b24a036ae97f900ffb5b9d05f178936e67267174125260af13ad0da4d6c70baca51dd0b988268c32f936cc33a488ac9473d5c73a7318adc5be55f58cefadc996bf9c03e72f7ea9f27a209e48cc9d5a97af7426e6482da73acb5c4da8cbd91e4f8ce700686e13c119b73bab30b4c84e3ef79a3d883c501957a56bd0ded52c08bc9cf4b0a7819bce8d75d5c3c5def229560d0c09bcf99188fe0619e63975b67032ffa3fe03c2f267dde6488b33e5f4dfa65474a78165dcd877788c9c30d6d9c27eac92e38838bc48d5560d66dfbe948e1ee313a543cfaa9af3eef17f313f0d36910051713a80e52ad2eadead110a3929da5deedad8214d20a4a49ae9bede14cc43d6360241b44585eb146d64dd47e3b9497612849a5f51122002783dcea407a6bbb9d155587a1639f7515061aa8d12a1888d3228f54507c011dffc6e1823ad15d5b7409ce7d36f6e822464d09bfbfbb7cf925caa68fbb27ec4ecdbec2ed63150d07239527babe0367c36026396fd49f1919204f78802ca55733fb043a4bc76a9b401bdaa660c8457a50876f6357acf3968ffac192ff0fd725490363fb70d5589a6c5681df2ae8bef667f3c7c45f64c0ae08f404e504c3b6028bd4a9a7de4fb0a0b7e52a1af52261f4cab4f66ca740576da9a5d4995fa958e973eed1af75a3a03daf9ee98d8f452eced374c0756a10eaca34d77615037d7b569c97ff820d3201d895ee1a588e49f1d342c3ea83cfdafc1a8422856471433a5c88e8e4bb53125128b99240818ab1330c111869805c67b701cf41bd8ece0a59b134e3749f2b2d06708dfd72e4cf5d9971b9171b77d6e36c3ad2ee2ea127a111fbee1ab7ff751fa3be05f91bd43a0c9aaee47edd80174ca7efa44e192f8eb4327a05d4891437333a4b8e937e73c223b8b97ddacd20049a289a3ccc8f1291698ee6ae89e23267451b8f112836d42b962ea9c31f90e7d1690ee609cc5f8bc90ef2811b8c70cbc3913fd92e24f78d43718950b8550181ea53a5f79a4e81af012a2a2a9a55e3781cd5ff79f118f8ca435ca3d644b27ac5d9d07a68749e2cd84df9d78e6940b622e98bd92269f53a84b8bd91dbf19f3d3db55b18303edfff8d241b14b8bd2631571ba60668066769684f3aa598ef43925f7966498acb0923c1ae60fd3f08b197231421b9373e0a60ec5e5d3d155d32b601655b8e585ef319af6c7d5816c78c043eb88a156051881842574a1121072263163421fff9ca25d221b8ee5baab2468cb04cd688a0bc989e707429ab4232dbfea5614b6fe348e696d79a9d33684f31496891233ad336bd515954c6ad0fbe8355e1262cdd438b8ab79013c642ff1a6c68d617cd6a3453e9b6f1d86d8c24f692adea1eb4deff5dc516a8c9159e81d8ab35f99936b898383a4a18fe9f17fe631caaf9247e77fbdc20be8f81519215fcc82fb97a567d5db9734fd93ae4e3314f4a86b2a77ea32bf5ebdc59a10780ff88ec7dbf126545aa981272106a335769489af2f1f20c2e654dbfaabd60a95cde7b2dcf1c62894b8d16f11716048c9b7832393d54f34e6dbf0952c3e402e6e8b32469fb134221ceb1a2f8ae4749e3a3bce35aaa713369319a7b1beaf36bf975c2c9c85d01999be8d6e9b217f49ac1da655896bbb95f7724770875db02cf144f6f62aa73fa3e5904522de89bf9cbcb8aaadd5cd8d00c1d4ee89ab4d296001e340941a290a77de10d97c41fe90ab1127eac089b6be1a7da138715768d0ce3127212c194086801cb8b28ab3750f62dcf71c9b58b80d6bf13c048d0d8cafaf796332875e8c13bbf406027674e7b4dc17e855749b426aed7622b21158d91b211f11904c5661bb9b21c6dd8d96755900ebb09bd7da6a8d6b41dfbeff9b174117f06cd22594623641540cd86a5f8b635121ea1d8f279b26bb62da52dafa01bc8267e85bb592985269dd12b5324bbb81621008b2904faab1cac18b947511ca9272758ca414737f66fe0f6f67c9afd2e436ffa0d7349bb7ee07f242a0a0a5345cbeecc43d61dc03d1d63340fa0e7591b3da4b23408d7f8068e840b21a08be617ce04adbcb57334a4c90b33a3c8ef4c38f37bae2b309afe12f4c5df8b50388cdefeb33c62897c149c48b735fa80ecfd0074b9e54f1fc67dcd6c49f7a3a22c2c59e1915256ff04d7b79b64857d61a4b8493845b3a8ab905320f4a4f20377e1c6beb27198977d0112ef391ed7d540f748260696e2dcdc6efaf952874ef71c620bad516a43a0bc57173512b09caf1f79a62957cff04d7d9b14d3fce64a51e35aa9b549e1bc4955bc420108d40b7189b43f3ea2f6b4f3dd34e4ed681887216d6e48d51466f460dac63fa82588890b386941c6d846e9d7ae642b6d353a52d104a5190b09120ff43e8eab3125460f1c50247471a269c629679ca6865ddfc50c06ae1ae8c79dd3657986262ded226f9813b6868c46056c1edba61fb71f5585021c59cbd219fac94f9a520b707e165a99607cf493fa3e8d15f4be03b97fea6c3c372cec686f4d1c76cef25ce52d99be7bd07a0174f8817e200091ff33e3fd09e675a52e1727b52f64c04f21a1b4019505f8f12bf85a8ccc8aa407e13764b6f63c14ec5c48872ba456cab454660705da1d29f07273a56b4d384e0eee0e98b189d25776440e961319c21c743341f7dc21c697d074f0dc9b0b3b18125718e34b49509538789eb09c284e5322bdcbc64d181be8a09d7314d82366cd85ce12a1abd687b7e83f801588b76d0207c92d23f1d128460ba8cf83b107bad61fbfd966f50de177ee290b21741d2349bf7137577e2be89261b6709014509ce72bdd85778159cb83fc2f3909df811fa57d19ebc565bc3d7387b605c53394cddc1cffae7649279b1f4c2c158ba7df20262815f8a76f061d8db64fab80d147eb2c20b7a658c9f606d1b362821bb2cdb027fa9552cde24ca085640ef475469d841ee1463674be609c58baa64d673d9d951878b7282389b67792007c38e55eca9cd9a379b9fcbf2c8e321c1ac6566b38c0f5b99c7f087e1e771800deb27e41c4ef6706470b4c7af0cb98dbbec7c8993f5a6ea04277b37c23be6656adb134303a952ae59a9b062ae31a7cdc365c8f0dc949805c20a31028f6730aece9c32ea533d7f26a44d448288e70b790d99d506c4cb03dda40f27442f740e56376f87562c51e716c2591e0f8013f1fa82887a8c4b60e78501f7802fc2d5b4040c079fb008d91aa8b775fc6e8879829ce9e6623c745607ddd36dfa27a0938b3e9c49a92d1989b07c11850a7f0ad67a432c4701f3696d6c5a502806d53d836443ada7246744fcb0354441c392bc26214341b925257b11116978650c653de232d0c4b7f4839934cebac619b4641ed205415eb51438c40d36f54e8a8bb166b5fb73820c49dcbb7e063b43e4e5d5119eb8e8492a92773728c12937e45cd9e1e2871f4989d9996dd3daeae41ec1d3001a2f50c1f4caa8d65f59e1653a0482eec5a3779e9c1f05f9efc5e7db0b7ce216a076333bb663c3668337387a0139cf4d3444c40bf445647d3b2ee0d236bcc289b8d0365822adc69a08f39f5adc97661e24c2516fbeadb0df1cbd84951787393e7ecdacdfe941540fbe8c0c4255c4a1fc041703980801eb2260e2fecd1159740a4a340e52da78e0d0b5b7204806404dfddba3140aaee55128c67d15f7b9d359004a46c15f5a9024b3c5741860057e1db93050666561419f21db971e3a6458757b0720db74d083b6fc3f677cd943e5ec2ea050e203f2241d0b8651df299e5d1d0a25fc938935ab5bef62e80ebd50d080bb9963ac46c5f086d360d193913293601d18f8e2a4c3e1dd32355c92111df445212f937aa94a821f108a7f624f730400ad3d4838d96153c518caffe7b92d0f64133765e6f04cebd97a64b80ffd015b656a7a3e7aeb2483bf8bc7dd4f5f8986ae52c20c999dc9edd573c9cfb516865907f6f5fc0c4176cc1a159e523ae9d67e771899bd5071f68bb97197c20a35d35491cf1bd460a1a63e0dfbab414086dcb8434b36a94c36ba403588cf026179609cf38d68cfef94742a34caf07fe0da6c1bec9af700b26ea1db810baf7ff8a2f0fb26073ee41c6a6657e4ddb0b766204c4c65fbee3a329f4d885d9e170116cce4e441ede7a02a6345d46c6580135739b4fd9ecfb2fd5f861787cfdccc5fe1334bfdc36210588a8e655e14fcc6c8df2d89c88b162e22297b43cde44e2dd6c07170357733a3814e08c55032a592a85fde5e9b16535444dad3c73ada77dade134fc90b8ae3dafd722807c8011ef4a94b3e8584c00dc36174d234c57381be86cd7cb79e816d3997170a2524fde460a8ab814bc8d41287a2d178b35434448c8e4cfd9291fcf83e58fc56d86d4ce30882833320ebc003c5cc6230f4b8847ab175311f43832537ad181734181c08dff18f6eb0fd689bcf074817883f64b3cba0c01379a673268837749a7c05bc3b8a1696b67561ced492c7cc8d3a6605434a47477581927c8d49b07bd0ad50a3104b2bff4687688db972dc6737d372d2c9c983ff27e4d80b92ab8cdf30170eb298d2756b30f79ccc0049d9e71632b1b32be022d0a08f4948be36673d9f7d88f2ab23b89b345ae959906fff400eded03875f39faab7127233dd8717b3a705a8ec6208aca66837a703939f26b72331482b7e1191ba8db3cc32be857b5db7d1216942b348975288f619214b30dbf62e84bc5ca520c45c145b44201b1d7c420306281f9c7017093c09c8515f6906c0cc776ac2d64d8f92e010937f779e6c9853415c087383553bbe8ab8ac29ef3daa83e0ee986e14b070d035b996725a564429f630acdbd4ef87a1db09b71fb4414a21ce76123f647ccea1598407d21bc5fe38d3b16277bca8c5d89dc9bfec63d57d02d851666a223907c84135b23685949340fc4b3e5af27492884a20b24536fca8eef0e41744fa9ee87d16972729d6e53241988e10ff09ee01acb9dbbe91fed3463e8fd5bec61e50513d2260b543c23653e0cdfc576f3f5bdda7cebe6d734e14b173860fe334ed7e3938d0793216ec646029accc668c67a89c8167f7b30e69cbd1b668c775c49251e087461cf229e0f9afb65d38460aebc5fc4cf75a0d149117bf61a4c9c1dd4e4a45700aa1d3d74ec9be996350f988a372d3d7e2cc5a71247b46d6e20f9e59f8d0cb9c2e745698d356c5d5813fef4f499d6af61b03032ec65f5b479553d1a267f08763795726c71139d0943f0a7feeeba3194d1218dbde799f4531c629c50d90efd4849a616f131c0a4e3e3b4aad86e143742a989bd8aa19858d2814e0356047967de595fafa6877332b66695feec06932d05a2240296b693c8a3eabae29519214261146ac3a427b38230922b129de48ee646ca4c601c9285f69737fb56c09dcd221f835210dbfee0395e90e55e2816a152024073a2df0199da0b7720c738bdcdd6c536f9406fe007f85960e10f5aa63779b5cfe45be0291e7a3cd7299bf2628bbd0538aea5252018569d41fa58e3b563297e37198a1c1211a5931383a01e090d9391b41576568353379cce2eea6a959bcd31a6d0fd8f51cfc5bcdd919636c966cb821f4f523c706eac5dbaa90f349e3409c5bf18b4d93e31833953b78c1979da46a784c792754423df2eea1edae268f27a8dc4622f5ab17bfe13d9dacf5128df7f41d4e698f41fd0d8d5236e6ad29b161124f821bf2dd75961762618b786c2eaf896afdf3f4fcf3189199d73f2dd274582bceb3be997ab8f12998ed9d9ee5b498f62654a69ec2ae05ac4c02750049ab699da51cfb00687ef245d2d92b029ae6dfe719371371f9dcb8be203d9df49a08cdd2486e54c650c74b7018a1c63e0e7c068277178e256460c3865747d6ab61c9385200e7c95aebb87bc9f7904ae198d10978ee4966697ffa54bc023320d492780e02e5139cb7f2ca9dba02f4599b11b89b4c583c27c830ea745ce7ffb4a23acf35efa5b03dc42d59ceaea691f3d9cea38e196f68bf50bf76169f313eef6f294eb7c8139eed09ff597774a496117110f7a7a52d42f871dffa2f3bf76957c9436e4331058e97f065137bc371a901bdeba5a0b5d4b0d84a3ac70c36e893531b5a4621851e3d2933dce9eb234854ccfee7c2ee6cb77abb88bb155a6ffebd5ef426dced57e8b34ba3ad7832e717862152a0fcb0aeba8823c411c6637ddbab380a9146e74f157b456ea55ebdf9bcc00a03e98a6f94be77e2920e9626e2adfa4702d789d26108f4f105f23075135abc5467de298e22e9e1c51b891e922c7afc63154d395ad9ca93496445ba613e2adda63204588df54fa2f6095f9b2e2aab68554c053c29653357e6f80a0626032f48ca6b5f2dee62bb19177d526db3a95655804d610583f8424657cc213c9adc9b2c851b58ed0f5ce2e0155d17b8735c28b62da95a7c40cd17a10c8ded6030f67bc2fc1b23e3f9243213ed14b1e6608cbe1f272464728cfe81a1249efc4eb025cc08d73eb8c46dbfbc19c7ddfd8ccb98bb726bb185c85027c41a24a091ed100585aa0ec38db61dc6a4c7ff676c49ce591b7ef8cb2b61de06bafe28d1f355362ac9b63352fb28f274d5b9565c07a714d13f2b2b0a68a1c9044e69ec70258a29d3f66fef007f08391e934219f3581a0ee402bb1c3f873d6f4463929ef87151fbb9de98a79f8925f2f9974b180555da0b1fd1c8d13ff40a40f3b80cf96ecd065a79d06888e0cc9ecf067d9e198892f6f348c8b6be82e8fc1b104198247819841163db7b415f737d11c698b791cb8415f27d5fd1a014d5105bee3184eba83f921f35e72daac3d9941edf555eda16025d5d13211fd77fb23ed0ecb5929fb20da1b54064b44c0216013a062222b49ae407274958ba9f6417b6df1ee9e12197de3f4b3c20d31ca697fed0cc44c2feb80e40218335b2bf4322e3a895111a5df6728bf30e51bc34bdb9669bd6ba4c673144e4290925ef9062ffa6b456ff604aa7eb9965b974b0549e55ceb679ff85802b8df50654b82f679997b5736b58d291807e25520dfd90fb6ef9ec236711bffcb7a3ad7f6ba1db1d6d7e8351e426bb2ebffc64ce5e12a279a802366c0db559027cf84f5c9d53cc2ab09e3da5b2de91c734b7224a5239b69f8a956e9ca8e513e58b6eb7ccd9a206286ddd7b1cb2c37b0db8688a4093c0989f537c1b45401b8a53fab88da9148493402c044895799e3ce94734b0a1501a3eea3b7110c929ed51a0f05f81fec98da8b74713cdc14c3fc3fa415c9c4c765853f1a6b7ed8d4791047ad9c9151c9ac066c9d09ef3d1ae4808273f391f78eccdddf81d3f58bd3eed7845b9243e64c456196479ead7aec5db9b456759bcf6eaba43ffe256216913ab5d52aee391ea13e9828ba078e70c0e3194a962505f69b5deb58385e8f3c56c29c78127157526e317354562dc779f4bdb8d0e62ed4c8ca89b1cb65e18d497b09bfbf91b2a1868e3737c9f5578277537fc9714a6c53bc9378e4cac16fa37ff7e9df7c53320d789f5070a455e5c660c352957a871c6f54bc3025d0c7708f3dd80c2d04dc3b8aad5cb6281e9a456e635dbe1e315ff42e75053d9b379cb9741cd42c2ef112ff7566e407912faf7dffac2026b64e7cfcbe7ce627be4449553a9a9332e7991443c6fcb46c4e072b9d83277b81fe1a72c3699cb4180fa7ae51c186d16fedb6127d5119587cf3d4a37155cb4dc57579b118ec247bfc963039c108061f5ff728e014b28127946cc179c4da2031fe5d3cb13cd527aa21d0b3ce4a3a3ddd6256b6ee869842e9985ccb3e54f02ffc1a0c12fec97cabb2e1b306284a7d6df906de5d3c39b8fdde23047341370f7922d4b41039ccfc555f486338f843bc8379c934df4907a972ef49a50d8043483bc0d78ad6ae492eb632fb06bf168a6720077f6a7fb6c314f1c8cc6ee1e8cf3a4a03410e70c6162a23c150c7da6330ee64bba23b58253c598419a8fb4ff5589d2cb328fca2b2102b98535b720615ed05e4eb4758da2398c4dbbe87a8e93a7e87ed0af4f25feebfba1e7195bfeda4cbad2ff81240eff0c157d325063ae9b21719d20ee7f1fce780cecc1d47da53abddaf33e95d756a176db713cf73387e2db7919707a711b57677ed79f1c5e66b23127cf36a317ad1d7e7eba52ef4c0f7cbf5321ed2b0cd6a60f39b76aa6c55300d159fbc8c3ac4879d70d24009a28882eb8fce680939e0b5b88e8949259a0c74b550b05680a088a0c3dc5ff19bd3f5706cb426669dc7b7a1a7b6f59d03a5313303fed6486d3f0d687a38de3cc2de2b15f859c3e3bcb3b686da8757c1374e6c5964fb6d17d61c1ceb31904117de7623d342df9c09718541119cc160a914e1d5f28c88bf9352df9bb347195306b8743e1ab2d82caac5c70e56212f0fea09429a08fd0706348fa38f1558d26f672d4d14c2d9e415a5d0e7015f66e426cd836f2fdde7b7663bd80a0bf86b1cbdcc27761466fbcb36e15d7cea1d9fbd32edd93ebfe62d9781e28cd6f23b578e2b9c3fd2ba054178c2f8ab29e2854aaaa9e789d95c2bf4c254b4f0903001b00823e79caab894c5720e673f56e404bfb877c82872bb0eed7263dc3fb96abca3bdba817d0538310290c98419849c60950affe4a6b84d37ec5f58f5815efa12fb524798af56c696e435370fa8c723947c7d5e5daaee86507bd908082a67b868867d66f7c5b4698802708fd0a2d00234b1fd3d3c50309568711d4be1aa831d05061c94231cb88a112c8e6cb4c2026fc252b39100ab2d384e54b730b137a54d018e5960ef4d0130cf6231c36e1910755170c77e0fa67b71d71500b390062ce8511b685a1b8a72ff43523d97fc56f23000c820fb97be4b031b3e491e9ba13edffd4dd63d9567e718ead717f7e9f71dec372451ee22887b6eb0e050fa70d04a4bcb9b15d94479c1fd80586ed487472e6532ace0626cb7f4f11c4046d76c6d107db8a97dd61431dae824e18299b43bdb3c2cc4a721ade6a007b7b5624357e265595cd113552c9525ee575f39bd2f6121884b378d48d50af813e8f1a98418061d670aaf2a9598c798f0e4a834056f964318b4f0f305b0ee6283e960140392c5022d3d0c73303fc8b34e355844833ad01b5c1a48db9025bae15946e0b19a7141df339b9650a80ce13b47bdfab75d7ecadfbade89d8c7de3a523dd437600848d990b6db0dbf3d40b79d06a7bf876680770b58eec7ada595578cb1e1c7d4f327a61eb6f928784ca8f8613ea50a25ac54ea7c3c745f78c1207c23fcbf157d7fb15ae6924e995a1bc101dd046c63cc52e2ff9eb21cdebfdb688523fa07771f28f4cba6bd3fe82f80d34379e1d017da5cedcabd0a88b14a6b76e9cb41fec14a72c3230cf4e41311dca7b5479a1c98a8b06bb932b7683893c802c275c9002027115a534509cd421a701892300ef3f07a8ed78bf240186155010609d39f87ce4ed8eaabd15297d0af4fa353b1ccb8a68348f03bc73f7f2d9b8d9db4323b3e430a3f4fbd72ad70e10fbeed6553b7c499ae60f4122a6777075754793d058f326874cfd341f41e82029bf997575015ca5925d75717427c7d6f84bb29ce5bfebf1c2ddcdd793a2e92f63cd5c1d350986009879553724928371c60306c4d0562d8269f6e7f86a8671ed7fe09fb2ba82cf4e955a4fed8426d6039e9f4495b72804cab9e557ae41e8b2840d815bac02627a317792b732a6cfae2789c1c4f222e9f5c02b3f0b60bb02b7e3d70325fe50008d2f69561862fdec58ba68daef3644c0f2233055876f28bcb0f7ef78b41b9233a39b6557540c134c6bacf8a333d6415ec8a5334e1baa0e0cda3b0050e96091a34abd5c32475dde1b426a334f8911e561ad650f0e2e53853423054ae9810ea5b8395588941186bf4e497768c255c9526b800e52ea7d58b3f83be564811f01564aacf0535d7dbcca5ab2ea51f5e4ee7e9c0d1c151ab75bfdef0f2cb7ff43a6f2801ee36b4b9aedaf54caf49a829cc45117a00a6d0dd079e50893d6197e7f68a66c15e3926d8a9a470f6d5350a56ebc1ad174732ed29122588c9051ab1c7c13614398c164b9c255c5657e1e827394e4806bc62030174bd5f1bfb89a125c62b93ec992db0e455ecbecfd09617559bc30de041567c90fda6dfa73c7b124dac044ccd7b2637ca69e5f1bc4c2c703e3e8b635b85624e272362a773bf38eac8499911c0b870d0f7e267fee8cd7172de44dce4b26a7c6ed5831ae5cc8f9f8654520ae4326a7699339ab16b5ef4ea5e8bf4cfeca9978516a8b784b374eebe1aeadf1063f929ba5cfa02e0f6a680d38da0a48fe65910321f0c68d4ce9d99c034dd4a2fc60d887b332bf281db152eb39907ccc6e7b43b794bb7d5ba4ed1905a0e0732f1be980f84fbcccc23ad4e0c551a263dee45c7b1c66193eb787e8ad8d48f7a97edab4f8c008910623e3c524bff9d2213bc26e37c5a6ce24b88c16dbeb80208e72c4ef27358c8567000a4ee1a381aa7cc2d990ac043eadc9ef8626afc5942b42ee4572a89a0f1e5f6aff9a88cd80632455e5c7a40b17f1d73d8ed45707fd4c3b72df429da44b2e80024622421a096a30a9a0181892ff11b164af4f84ddefbc2241600ad833a2d6de7aabeb1a74e5aea47c19e6d63e7c0d205028e446e805653a4daf627e314eb3edb93d0673a63728bbf635730e6e618bdfded5d61159a2cc6fceb2dc7bdb3db7185f920349eaaac446af16c820c42132988b8bbb800ece575b47c14f0e0875440956d22915a11952c059f82a9d4f3aa4f135451a02d176621d1085b030a212f164d5f56f3f707ed963d78407a5d8aef7f2cf1d570a73c6303e9c87b9c79ccbb85feabc318486b8ac06ee1fb90adc90f2721919ca1f3eec41db8a072a85d00c1a3cac6e4369244fa38e69c6e75ec0ef1d30f05f82be2bd575611e42983ca34436bca095e744c19706f2d2b1f6c1c42a28a8129775810ecf0e533630f1571c7be8b49cdc441734ebad2aa65656450e4884e16c2ceed88008fbc8dd4ff9872b5c48fa23931efa13fe93b62d687c3318c83a4f6b005f365f30f5eaca6f0ce38031243445c65fdc1be7ec5109fec0efe4503938a3a0c8ba2deb4500299f748993735cf944020ae13be4c05c126cd074ca414965d008908ad92711e2030653e6443dfee6f3d4b10f5e8ae7c57a86f672b0db659b40d0878170d94118e44e8228a1979d08f94f3c88bc67a66d446c1d12a1e196f138bd386b066a87da434ec4b5debef30d7856e8073a33d7a76ce6be64ec02437897fdc4a11645cce863c6781b831980b2243dd4b36e53f04825bc83bc069acd5ea46deab0cd9916a34a544138835534ab23fd931fb26f0d4e69abe6f9a6bf3e347dc7f9b7679da15a4a37ad2f7d8be7f6e3fe4aaab5e42b4146df266373be42447012cf2b1210e757d179a829594a310b4c4b590ef5ab9be3467596c8e00bd5be0106c0b06da50aac0cb1450ed13fde4a9f3ba7ab6f1587ee6d1a611b169e175b7d625c0b47633081f7b6cd910381850482b879e0e6f37a64bbae739125e502961ea457963ed7b81d6c8136ab488aae71801cbab8af29dbc54fc1d9c761f720a1216f20da811ccd16c093349275798538608b8677b9a52ad956cc3a41820e32e112980df24ae5d75c853f71602dbe48febd55e29f416026276168067f0de10f542fb84ac68566eaa2b2515675be0b2438763d83ab29ce45eb17d8b1c8c0c114093d083839db40184e63b500f3b457064456e3307da9b91053112b90c07b33de3a0e3e0708f4887314480cfecec9e29157466055f10a33062956c4da531fcc59f9cb58a071f9da5f1df761bc0829f9525b80d3ac6ecf8eb04a0b2b58285b1407bc2cd3202a8a76872dded71edd1589f67ee46b574b7434f0ff6396ef8bc229b96ef70148ecc7fb9cbf3e47eff70ccdb5c0b3b2fdc77bb806b7cc2dd0f02195f6d8699fe18c782b386227fd85f1cc7202e20ccb903c5c34f51e46443840c2d24510bfac9da41f0fd4461736dee27b4579f5ee19c859678ac4b1df8b7cb1fd410f3209a10dad99f40286237fcd4f45004a1139a044b8498ad71a5f6820eba8bb6e7e8f18c912d2ccecc072896bc58e853c4f1380a14645a84e51b2b3bf98e78bb11fe8148bc667b1024c0f403d202a353e9be2eb93c1062c4078de3430511bac13085e9f29fe99706e2d71eb38bae9a4c63d2cb85a0a82d91497a3deae27ba3a8040a774fb447ce3aa9bfe38c4fbcb489323fed546945f499c6a297b303e49a5a4a977f44db5c846c0a85bb6ac697e45f92b53782f3020b21c55a85c88553830426b4d19f92a3730804cb4dd8c1160209e29c756b23ef3dd023fcefbede10104186e69e09f88fd60f6fdc57750293134399bc9f5d9e6992017c8328467df1fa224c24aeb969024a099deac706b66a2806d95c94efe6a89a098311d44915659cd69aa710957ff59914cb15acc9bd4435d92843bf7e547888c11ace521a18dde38b8128529c1d4790d24c1afc603f3a488991b9310a43049c264c5db23359351c9a3cbe7bde063dc881be092b89063059ba85d8a57c47b722fef8aa55c8ea3e360428f9df8b61df42fab37be627b98928cee76a2828fc2de8dc97672b7d43a60bba3d61dda693d0b7fa9956984193abfd7ea6ba373174b3c37ce63905efc4b9b5687e01e507d115e9d9749c381564108da740029a9bcef1d6125b6629e3904e4ed3bf4910e69104028acd87cea966629773eaaabfa13bef59dae42e69297f3de5b9a0e1208fc87eaf9deef96dd1181545a69938efbc70612abf2db344c872fc428eb0f4905c8defefbf85304348b10a953f94c28a390b093e715e25fb9014a14111633948a63366fbc13145a0b3421c06f53a7b1a45c093b0be28fdf36fc7baffbbf346abb741d1fdfc68fa1d38f21476f574cc80488b70a8663992f3aee1e60b2a2ce460085725b3c91edc5224ff19a9baab9c6ae191b0831b0ea0397682c583a0e107c7945f7d033f5a11f98b98208cdcc7ad5c20ee5ec59c12b064e4e1fcaeff073eae9d44e7e0bf2d34344845da36fb134a37eb039e71d0a8b69afe1ce6548487a5e373670a2f3fb6596b91dcad415035e39e83c76e833c3b4f86b58b2ce47cb97d902f04188cbe9e227be99b1a1125709f7f7490171289e388a09a2da2c4f709c79cc4bfaebc4089a7e3bbbff4510981f4f117e5e8ac95f9738b236506d80f6536ebe5484bbc8cacb38cc310ca7e974c5d11dd3410f918ea93478a2675eba9f71e1e2f39028289c932f68df5118f54cf5233431d364c6f56106d687ee9414c0bdf1bb4272eec16faa715d729818fa7487e1d8c24bb9b160435ecdca71119609a0e05d827b60918bb43a435cfb96cacd45ff9fd6f6e738641d836e74f11765f68ac45e81452ab0c64f0f0aaef4868692ca95169bd5d8c6f5579732121bb9afafda46e016fef6c749bfd42b669ebc62fbc99b4448dc611858a64a8b9cd2192731b681a495678ce4fc6bf85f15be7148fa98a863513c4e8d2cfd8a4786b2b0a37e62eaf5e280a5ac57a5366a5c463ef10b9b3d5cd17943786ed1cd370140f4f8a2408bdd3a1575dfd33449cd4c1b5479609de5f1787a0c7cf3e45cc46eb4c32ead5d33b3db7ecf33a996e508af8dc268725c107eb4d3e391c2e0019ef539df631b0da9e1802e3d07da7e4cce69d61afe548912327701ce3b1b2a813f19e001f8e698e68960092e6067931cd809b5c6b4ce71677fb2f7cc2c2bba18a302cff2fccd23e6a815f2646c80788335abb67f9f19c4cfd18af1424d2ffe25b15efaed5023848378aa2fad0c09cfadbc3c1bff38c3f8add7e1320486bbc89cc3694ae101f32bea26ddf52a5e1ea4aeaff6aebfb1e1a4aabf1c91f049c632ed57e7d9410d0e823b01cf84f46ef73561286786c1f0e87d86301485bb772024bef67c93a4d467e1ec24a227eb80e782fbc9d8e1c9369bc04f4ad13874c4920c7a4e5fd44cd811243aafaa7937d7f176bd20de91e41a80985aee13ee4d9cf776519bad2377a26ec35d4f6bda3240a67da315c9bc48f528222cb607381ccd37ad9b566a38011083ffc433d070eb12485c4aa55b3fe871b0b9704a7aa46adf36613701920bef1fb71f9795f7f273b87e9f205d6fba74ac44d6084fef0c0c79a9ee6ff555b016638e51569684c7e9a3d13d3a6337bd0137dbd8875a6d811c8e98d33487865a156bb93cb1a86137ddcf921e106208f28ae157e35042640d73f15df800c54d4d9dd78cac769bee700a05dffc269ce29dbc03a4ef979374514bc61a8271045a50bb5d5cfa7bf2ef3dce74a903fb6dd7f8942a7e43b185aa8f3dfa390c1f47dead53b021dd1d29a12d2e08c00b6e40191cac476ffcbef92e6ac22562bc0f424f826792b5485e43708b0ec78f6a61e52dc6810ad81ca8b73a82f20359d74833835222dd353cf481c8ceaf0447d941539e1f3b6a12c367c01c28ce8b4f9c062d81effe2280e20d266589c3c8142eb263dd7907899e28642b4ba10f64f5e4f0dbe0c8253c31553efd0e8f09371bb79883d6fb868967ec869f8f4c9c35e1c62f8c78c14902cb89c3bd48cb93244ce1781b750e51c025c592c1983a1e1b5c2fb2667c03c6d8d0c044fa4e7d252182357a823ef590196d2be4b1f8e994b996d3bdd431ff603e6c956fc986a59f16cbc28690253f3a84e8e7a2b4557a2c457c3d442bbcc52eef637572a17101349f68b434fc7a08f78499fc15cc58907eec415859bcff419a3b824b60661b2f14b7734c0559e86e5b80fb83e299e0766b70361ad7ae6210c19a1b7e26d7d138cb65f413b5356204c46d6ef36f91329855f8c0bd041d91a4a9d8249d4302f901bbdd3696eb81d6ecd9a79a5621a5d866dc1175d9a9dc20d47922c6add36fb5fa24df5c1687237de27486e8f501851d7c1569ed4c08742972e124a097c661e5beb161695929e2401c79e7cd49e2d082da3ed04e401d7cee4a7ddba81029007e931e2d9621f672f832fb0c60d68fef7ba411c4a6f0d0700be2d0a092e7a377277de649c698c8f99cc7050e23ebd4820493f3cbe76be637f8023c8836ca6a3b62255ebfd0fccfe7792d8ae16cf8b03b1ce82ebb9add6beeb3dafcd97ab2370740ba7e5e71330845ab4e9e7daa3a58325e74c4aab5c587eaba0527b0a6f240d7263c523d48532f20378b3a6687c3bb0ef64742fe43bc8124b06001dd565dc236b3137109ae96af2ee6c4dd409879c11b76e5b581df40dc0d11951e9acc86b99a416b7e6920cc67f2ca783f2c63f9b5038c4869ec68823ea13a7e6052805705cfa75bfe7d184bec2197b9efc31fd1b876cae8ed1d46ee850e51134ba63524df94327e5b16840d8f68e74464c93cfbc64aace6ace0755dc2afae946cda1fc3496a1e88f485841b05abf307a0c2a73f6b166c1248bc9f1a796aefb714025869ad6d1e72075ed436ecc9d9865e1d857eb8c914b9c9671c8bff33e73a7917e0eff939c6f25ffba07ebd9d9384175846fde9b99067450616275d3eee6c99d9bf8a0f99a504cd0303b981bb04488f3bb036b259e74480bf1332393a33f550baf2b4194c2de60c23f88b079599f255927fa65021e97f63b64fb95185bdfff9119693fc5ab998f6d9a00f9081c360e49f55c57eebf0f50feff983b640a6547af1931b967d915db39782bf6f950763006100eceb6761f416e5c3e7ca06ac6e71e789b2d71e5d29b63b802254800bba303bc8eee9d1385580cde8952101e201a09d9d607e6d38b7a012a47f217bb9d2d5b758b6905923046c47b5a569721dbe0d7d287d760b570c4b4763bbd3e5fc2c3140d45dc6cf17e0387ebc5934669d23bb3de377682b2b97ffba5e123e1b8d77417739f9a27df2ddd3d0b53cdd6a849abd1676933d7eed1c0b22623de842f89093310e3814d422e0043bed77fb1cd21fd5eec4e0558506c9bf38beb059f6f86dcf3132033b61451a9f103190931a2d88191aabc22a96de279cfb1434afb959c07274922f3de3717ad23f25add0c26bbb7826167eb8376141aac18ecf7b164018d116ffcc51a41145c8632a3bda1c05003a50238415cdc475ce941150ccb063ee178e7258afe9020e1072653e8c2e83ff63fda6e5ce2aa5d1b804bf0b95e1316308671ba5ad7d3d7a97a543c48fcf2bac8f5833af9f9a5d16ca2b3987e85b24ef71ade239f151a7540516d5e74148e6cb13032d72493ded5a8289cf010c147ca0d978ea3b614356c4ee74b81d92fa6e88142da23c18f498f215d6f61ccc43737c1831f47d90c325c01d276a6ff4961003176b4972c194be3c8eb331327e93f59c8010daf12eb00662f87ff1f1edb1676210e47ed12b9af234d580a79fe1b88682a94525e4d6dab7bbd2f0c9c0d618051b9098a13fb2967ecff64cd679b7679fafe9e65c8f3cc9ab92d32b01a3684c74aa151eaec1b2e7c324cd0ef95ff305683df46160ab2177010682b9d623996f414133b7a47241afa932a8f2aaef1e71a27967dd7c29a259155b84643e13884f58bd530f1784866e866c26119023f69000c25597da5b82834ed9d95499faa45367488ffabba35cf1a3845575773a08ac8679c8ac25fe3ceb206f71e63ee66fb8be6445fa8ae888a2fb736f659f2aa0d2f61a9d6f63e46bb23c7a28dfccaf41c31e66dc2cfd679c4f9407e22941e2afaaad138a876214086674ad4ad06db4ea26fc56e0bc9d0f15acb6e12f1e211cd7c798a3501cfa67ddf5b9f6362fea32b04ed88ebeab4ab230455043b9eb1c5586f3935d120dbfc96fdd93066cea2765ebf0332380383fff8d2037f41ffcdae059cbb90e9b5ee6a1c015e14bc99f14e798abd74ae6075f1af84d7fac8b3d37598fb4fe9fbdfe5689d1cf8674e5039157fcb0698de57bb4059fb35b5c4516b1ca7fbce564527529d10c191dbbe041de448a4ea1b813eef3ab7064a5bc8848eedf7189a26b2723fef1b5a99415d97ddf4a08773b6e339446c6d68b862d805dec0d32468bfa77d36fb2e0f3e015016b6709a608a2977832c85b9bfa3cd524df608a50a4460723254a90f38922e687f52471a4c370da07a79bbf192382364fd81fca3f9b27ef2dcb4ed8fbd50dd993cedb58374d532d17298214ccef3042db7f0e5ebc7451013475affcd04d1396c17090277593a7ae3614ae7a12172a107168854a813153d8312a6f290966d84a389829684d224e88c41bab0f98b0a8a249061efa37de28018bd38126e1ba90f61736ee8be8a2ea128094ec5804bd33a10759f0421849196037a30142f1de77bd28cd2563edd3da75a761fd73b4dc5aef1175a3769383590778337712df93e46b832ae40f63490534afe946b46a573af9f13a298377ccc301ac86cc3f4bcbdcc168f381881e1773f120567f527570ed15a8c6fb18f757f2dd6d008aa3d41f2deaaa01eaf24b59ad53820b91ff34d23167457b5847d9af62fa105357f298c7da198c3e96851cdcbc9bada59e4ab40d3c0951d198ea00c3908c56ef5174e14c84ac08dfe91210f2de94fc3312c75acb9acd8c2a00af89313e675dc24b377bdb382049507af6a793857ac651e224cfe2ab7fb5af5863cf3fb89f73a33443d5833eb71994a7b1e1b340f32fc53e8c5549a74780c4830549fbd9d1f63a213bcf4bec8c57a05fa79c969aad1c1082bdea9b188dc619205ce98b245c5889766670d70b08726b2150787f9ffcbb65642262dc4053e4b8364cccc66aceda35675ae213f5d2901b2b73cae1c9afb67260f0bafd2f84719b0dd08e1ecbc87e7c413be6c660b4fd0a25ac5a6cc84f2ba6e329786ad82eb7206e39acc2c07e7c18b1ad50e2f3619107bac81bcad6ad8fb6ba61fa5443fe849167e7c27d13ae8223a0ed9b579796a4372387a0eb0b1dc03119255b626053a360bdee8b997e84d4afa7c8ee602e53c3dbc3496466496e1e9d8fcdc0f2f0ce552d86634bc1a465f111e5853d87e67aadd2e9fbbf8ca2eb6c91b55db61ddd1d334ee4699138194c554f325cfe22972a2a471695f18714ed4faa4a36b3c02dd541aaa0d747cd49fa256690e4ee12ccf4490e4ad84951aa76a9b910fc9c17fe6c7a7084cf14d661f4f9c9b7778472a99ee42b95c0b05774b2fce073e9602c9261029e7d0e0bd08aa5c115c06eaad10f31bf4248086e25a2a56393129088dcc02d34e2382caee1b83cc1cdd2f17389141692ba999a1510128ecaea5405273098e5472d108d8e65b8f3b6f67376088d825fed8b7f3fe8d180f568e7dfe5cb2dbf07d8670778271cc27c1df3fd9cca6abc3a98196e5a922afc640917fc1f19a9a48f7a772b6cef6c6e51305977034ba8cca02cbfc1c2ac9acf21a02fbcd97479768f42786941326c9149c7eaa9dfdc1bb241a0805bc78fc57a2952f8896442d6a69982f9d02a7dcf1eac840eecc11ee61eec10c7218cf19d9c2c26c7cf95e78ab2a18a9511311636069307891e7cb88a9f3e49c3289cef0513bc643d16d0f447acc55323f283750fd2537fa2d0189c57a38731dfbc4787578f317444abfcc606b6e61e10296473457e230c24336e44e6a19248b848881cc6da9f06b5b1538a3ba8760bcdac4d7f95b517e5bc12afd2f67425cb2b267a4ab97c31cb19ce9eee1b5788f0e91fa9250cfcd092fdc294507396923207139704dd3f0f9b0c1b0fa92bd7a1cf978453393013bd56b6041c5b300da1e38751aef1f47fff0469d2206a4df1785398e5bb79be613147621eb92dad92aaa1d23f4b37c042e5a0dfcf200c7de92a21d2e9c90714d8e138cc2822c65f16b2e8c82f2573187d66ef4e1a9e0de534904f2837d208fe8aab42c7ef4c7f5971418caf4280e2a98b7632bb5fdabb96b313d36cecaf022b7d9d3aa845b475c0c41a64fb244fe14cd5c07502e7ead5f83b730fbd6c87f1a5779e668e3db8e371760fe6b5c87e54a367a574c3b99d8a81030ea6711ca6de76c7e24b3ac3d2b23dc8691613aaa878338a9ae154071dff797c5d385fb4a0ddcd8b4efefc795b4cd2d9d37632f2084b61a243245f24a34b08fbfaed18ca2d4b5abec1990f8144dceb923eec16dc46ca85ed4062ff46271d85770e672a2d192adae02023ebee9664904f7c90e617d390947a7bbc34eb00212c63ec2c42c13bcfaed0b059d94d96c469da7250e782908cce5a0bf0c063b530d2d6c1dbce29716cd850d6a1ddd391e1c2828b6dbecf82288556b23cf67ee41fdc4f38a8858d0b2f112551c27823546f862dc5c60171455aa4a03f5173a5b046a968682ba0553ef8b9777315408a42056fc857ee49a3defd683b14762dd2a1a349839e65ea5bec53c729ad093e334526a9b64df952abaf71c6238485a555458c89f5f4b7753a334b6925f22ba5608a5adec6121463f2d8c9e5b4923202d8a97b966c278e205639fa511c4f72c209a33d4cf6e78a5465d90b6c3195912c29349398517424626b645be0e81ed2e3c6dc1b99f1a78a789a240a3d8a15442f70d285d89edd8787785f5dda367f64c9957bae68b96f03048889ac0eb2a51666e198b77c2525ae6d27d412ce8021228ac598f3bef7dce9ebf31b032abc50131be8082ece720cafa4d4a0292c944e5b593322e533c9c05c931f3c52c2ddfbc4539adc74e01fd61c719ed5ebabb335bf6be8fae63224edd60d04ef5cd8749cbb1f4037cd124b338cdf009fddc0951cc3094e51ef2b79943ae3583a92ab9de03231cae763610edd8d8f432615a3481b1ea868122a9aa06860649483c0015b69bd2065eb694f887ead3eaa29bef13f86e9c1ca23d846d4cd118ed198b34c00f0340d92621f66936aa65f8358bdd6ef3751b3f1de43b96ef7f2ef91c93b6427b44609edecf4b7cb2bcc2efe5f125bc1ec447acfe9ff923dc14fa26b003019c70d7d18b48c3310ac8e22ce2c32c61b1f1ab659bca6d02f6640f4f3f9cbf4b591f34ddfd90c3feddf97373971f95d9e63faf92cffb498de854e0b029343a838b3e56246eaddfe6e9ce241855977f1cb0ad95371118bc231a1b11e9f48da2a007a1bbda9fd30c75bcecb08db3bfe4778cb85ab33f7a9dc2e01193002f4899b38c97a936a87aa466ebb21c4c9bf75ef08231493d76142c72b39f88fd8fbefd580154fb0c020c61e7b774c93f20948903462d8159d6b22de56b60f9dc325f6d0eaff800b16008cef50c8bdbb2a1a6c34a01a87ac5e4898d540c8c16873a2972f0eb0fcf7ff7c057a2eb7db318da7f42ae8aff8c4fffd6b573bd0f8583908039091ece267ba0b00f10f0189e5a259898b0c134cc235f722b074cba41ae2d8c4841289e0eba6c9620b44036ae133cd3780968f89302bab6004c6a130768d2c7486c188b89050732bba207b46a3a31e51bd9f66a33771c738dd136bfae35f5833e7e939ad34cf6f5be696ac544d50896eaf96f0322a1dac42b1297ac67ebeabebf4fdc7f0167d092842b203b4e0aa38558eba1cc7b498865d3e21793adfb49114e7fc6c655560e05ceb0b13136a6574e14e1edb23cfe7619794b366c23664ecbdd80f35697ddd24cf8d2e0c8a7a50d9007a19c609294ac70df450f68015db6cb6accfcdfc0dba386f6c71385400318c21396cf74e4cc95c219352a15fcbda656b646370c5fd3f124f942155e1ffed35b098669677d76eba7a93a015f5d9954fa0adc3d34f2f4b99fab8563e7af73056af1e27e8f41e8d0f23285da3027f496d0fb653f7206bd98b50fbf76b280fb9b7faf681022a8aa558857793c17096bd995216f10ee82ff6e8558d9d9aa8ffc060b4a07d7fd7837f5ad5af14e03feac52c5c693900baa040349fb662514d0f2d9da6985654ef542fb682ad4ff7588808745a79171d544a48ddfed98586d9b15ac3ee1233aabebe1e1d038f812a1317ffda3f88fdc0e968b5955498426c8115bb2b3fdf40b3fb108372c3cab8d839222a3ddc94ed7fd9161060295df476c4e74bca499c5fda6383e572832e425bc517e36e97140525a336327c8f16edfc23955c018ec4bf0da5026aa4088709f400c598893f5e89a189eb6c7b8268ec114c932fe2fbcb34b36cfe1d12942815c67f49033d12f95bd89038533beeae62cc2505f52556bae3b3cb89eaac18cdd0c03fea04215ae43458380306605b5235a2189d8e81e252ab85d8175faf27ea5d945c20217ed4b7a2cb63145e700aa338b3f8566cc1d542b846646ca502a656f283efbfae30511863fd3ea677677a2bb8e3c6eefdb0b145ba2c5f42556fe5dc17cb0b35dfc0ae4f829a982e3645206483ebff8869f996545fe39565e29a05d7d9e285467dbc621fd9bdd18027025db74b7d1b6d3cacabceeb51da8f476a80aa9be9b19c55c2dfa4f981c8c0f1373480d1e6a643aa380dc317e9decb632d7c541c3339ef39735a01af7a43500a7ccf250fedd000288fb651ff158ef4ead3fdd75479741fa687887edf05492fbf4c36ca1603008555ffc317fb6fe5df0f2ffe67a3158bcc81667e593f4aaabae605e18e3c2334cf5e5352e657da5275cde2dc85d1a734f8bff392bc7ca96791df99b6f48e3feb47b6a7f34d10a043cb789dfd5fc1df43796f5c9a7a03fafdf61221c97251ad805026f45e6eeb8a2c2c5f9afa416156506828806280fe86f0142f41876a9b126d11d3c891c494acc046f9188dd8e40edb71e8082f5e3122152faec87a5ddc3acd6946209c70edad638dd49d73be015093591e7f2786ed5a4b414ace50b8d2a541f17de069ab0fb26a41e408c44ebc53a0665a871274f866c22146ed8d82bf329c6daac78a52407a0999c21e38eb94180cff546c1df73ebcfc2944a6bcd212004f97fc2ae4db5268ff23a144885e823cfaf3bd556c40557fac31ee423a50967d13ba4960d0228db6b678fd9e391ac01fc94c6c1c9abc6d80e16b5a517fa4a862a86e021ed5bc6b525ca50fdea6e37458042002c743b0107ecf02b6ac837ea5cd6c5fea2bf352fe9cd4769d73ef8bf390c1b12046b8a8b454eafbb3a7b457cf0720438b7aa849bfcbc6cffb12230a0a2cce887f1b6c4c4d9b3864a8d839bf5e75bdade3a0230e53e7739c5dfc19851cff520bc1826b988102c5298e698aadacd37804f59b4e0f61407373437f60a79e2bc67c9f0184a2ee055553d24120e379eff269abf79f90f477c3a630be7b7bcd2c2774454df0c0b2ff460f3dc0406d0e4147187f23d66e66761f2cbe9c22a2404945aa172a8dcc634454831735719a2bbd322f583549fc8c0bdcd3ade5b49956532056d381aaea2617a3f48b4f76bd7e3129f75216118f79512a5b6b705381d300333e516595a528b37c81f5cdee7bfa5bf39a860fb0806e7d4ea0252cdd7ac448956d79c96d000cb65b3b4c05fe4de0c5d7829235afefcc5fb4f3d693134a53c9dee8f9f9f7c6584edfd3ad8447ef01e026cb92aa255993a590b73118c8df5625f9f192807b67189b64f800f1af4b425f9a38c47cecdd69fe205762b2e85bbd4dcbd39499c755737ddcf8f27c4bcce992711394ffce14a43fd7f191460d0bf6a22385cb1e4a92b62116db90babc79cb15ad8241f7be88e659d9e4ef59a7339ee338fbb4917d81eabdcf26573f279f7ca06046099c65dd78dd5ca1b520fdb349d73594fc3d01f5f7f0e07e3c516dbf977e60019d469d8008133dada766013509692aad2b1aac661cd70b857d5bec9fefa7225d382b475c9e97e565e60d8e1a85db2bdead22c8c03661f20ee5c09d850b642051aa79b7868eda4c4176be09d2fb2c5217e9a4457ab7b1dede5252308659199a443468cb538cca8adb27106a28f6bc9a4cc5be7a92769f8bcf13a23c9771729894c1e560c72c6701e9dc840d3c403d77956e8206421e561b426610ed38fc7eef24f8142239b425106597b8d3278dd373a20131811bf9a68e82eee1197ab8dfe4e60f7490d98fa01280c878cbd7b0f583c43bd415d67777c24b6fb6bdfdcc6600af5cf860a0f0783aa631323c8aa44a21ade3fc5cdb5bd77216d2b954227c45b38a2214ece129bb33512889d520d810e8ec9e8db679a47d17c3fc87c4e27963bf4cd2bdbc462cae07f6d724f1c8d1242eec9e5495be07cef1044620e677d2dba749dab7007f735d93a9bb355a731e9d88d49d173401aee0c43bbed7ffba5c2813e673139a7a4858a50aaff525ff61ee41394f1fe4dcf6f991e338b81860fa46480003a26d6cc6a313e897b5a7c677a1b18944f5e6f9726c0e1ff17f4137689cc778326475ff0be81af8c0279bfc202c9b8b7784f0cc4ae8506f0c25cd67c6b28939da85208393ec742b9ca9461680044279860caebe086dad866548b01944b6c476cbab8b484f584595fb2b9adaf9e9adb4e4a4c4fc7eceac0bbdc10ff62312d8377206290122fbb6af42d4e974a82aa9ea21811aac06b144ead456039ca2188f04077f666d5e4f18e946ad56952f6411db4a22e91956e38ea98be44e048a83e1280e0caeb044c16da93f93b5675a49a0c05f6d110764ca6d18afef4db07818f9b84b927859ca33937071dce151c043c111d9a07fdee6ea51c072390034c9bdeeaa47fae27ecc5ec3e2065dfaf8f53fc036a24d00f442832405f0caaa833ec116c4a2b6d7a3ea3cd044a00a4b70c1257424776f89c328d0b2475690c6c1359df432038d99b5fb23e7439f1897e98c02516a3f00ad32b63199c017339c6091c52d00b4edfb2f19f994b5fc780027126be061dd073353acf6b0484236004a1af20c2165bda11376b73613115fe904ce3a6f39717c7b22058affdc940e49e0798bbdc1ae822104b63ccc34b4a2b4a5c2c655b0bc03721169b1c6aa976d9e90b193c548fc38b393be5ee275be4336769e6aa42e6ca224288c741bc5eb5d518ebb36b4b28395f28ce0f35040ec90ce90c2913163e5debf69bb1f82a6dcbd2ceaafa9cf0fcd4400ec67f48202740681fb6022a5f1c08dfd44eef7f993426d100ec838e9b637116880c4b5ac7542e92586260570d2191bef0bd18db7760bdb176265b29de7380e8402c0c512c6e7c4b68bd1e6a3ed27775210793026797aa5bd5dbdfc414f21b8598bf569cd516dd43b4432819b329cee45c345e015025e51cd134aa540105d6735b72a5006663f0809f5861804c5ba02090531d8f5bfdc99935c7445f0cd2be09b1e7f2a828dc5fdc51a06a77ad192d4b3870b3696f94c2d6fa0389e096c25f595259e93ebfea6f89e673c16e73b8327815515d47d28740858f77eab1c540981562f433cf60e100b32900826601704f3ca2d389812b69fcd2319fd5502a4899823e44db0f74110067807a495b6f28c061d2ed613da70152e307b7783b2b819cdae5b3bb882c0c8a2f425b94b5ca445bdd70d6dfdc272f6eeaa1b8ec23f9ab2f3deb390445427419b8c9c4707a5b76a38bcd9a56ea3229c86871b35843ad5f065de791bbaae5115a0d3a22b3408e569814ea763f8d34a4a360b80fe0095acb358e3da0a4ec0cc7e2f48eb5b056343c414c2f2b3dd900a2e599066fae103127fd007fdc69488299f07c256101b024b76e8cabccc0c931609796dcf98c19e875d68f315065861b2cb077da0137cb75f2ad29135e2163a0a636306c26653c79c244ae1bc95bf304c84a0cbc888ea5105be571a3242701ef0b379190901917c9f59c74a089af13e83bc98109cc4d74a07e0ca57809487442422a1de0bbb2925a673d9a6f7020819dff40238ef845e6d0c0e031c67f4deb8ad669b2cfad589ce9aa723d8d8e337b144606e58af341cd06f22fb21a498f4813056bd39363a7f534c21ce790f3aa047422b8768109d48abae397c4e17a89c5b1ff3118727de6d56f7a09595fa61525204b657f5aa340d87782f350038a3ce0cb97721ae8636941cc4926ab15f0a31a0017e318299e331afbac14bac071d74d01b8212f3aff99ce37e6a2ce59cab996f0b9a2a50aecc078907775ebf4479845331c2d17926d55b7cad2481117d64c2a8164a28e4bc101b92d9d4398b7cf6455b9401f1a0bcaf501e0492309aa70a3e4590b5c8cd67ee51ace4039808a680359274ceb3131a627cc5ef46b822a5301d5604b874a11535bcecdbc40c2427eccc8bc40b3448ed14ec4e185add980868cef413b8117abf41587b69446b655562e405d52e572d362824d1c86254749ba9d17ea16f708b0a6465db96cefa57e0ccd9ebe726b1ef2bdc334c79abebf20d3a66e67a4f3f2a3d6fc60dc7e843372037820c3c5206fe4cca07af3daa37647acdfd50d17b5437f45b7a5f9dfdf4fd6af43d6d43ef3b105d29bf9225a9c90168004af10148dacbf31eba49f87815f1c877ef1f013568a0b7011b9d650f71cf0c75eefabf7bfb66361cf4f7a294194b59aa614940c1077837a01a6ba65781ada2a1b730f5c3882a71009b54485886f107601bb21ae334ccb93264895000830c81070ef102233acbc05d91847cb3005dc16518c47deb7d6d542717e2a92fdfe650bb1c22d2fad1c8c26c283c86f4a4914367fd17a00b289bbacd7ebe6e2cb638c0004df0fa705bac2c9af65c09393f17a00b03b24d5b25435717e2d56e7d814b00edfe6a5d22e854f8679122d8adab75d0f2b5df3c108b71b608e84846f4eec492016ccdfe40b74062fc15cf6904d056b2535468075bc38c6786656ba8910efd2fd4a4502129eeba3a6e256510c8256731c0ad18a0dc4b69813cdae4e7022be15a34870a1d5c8cd2b2473b9e22403caf07106c0c9cdf914f0dfe3c1c1fe41ca916062d5e131027c504dfceea166390b70f48e108256f7cca7d50b086b90618066825b6790e39af8b0be8047e2266fc85c301e23cd1b91a62219bede9e899a8cd7aaf33f9b3916fd9c35cc49a9d1c2abaa880638341ed0263ef5b3fe1ebd06b5b3d12e01ebba2cb47ae4733d4a3a4b97bae6e4ac4f3999ecb4c203879765046a52311020f95143848f8e0a1eebdbe10f7833b40936e3695a31def5bc74417400d45597e72e52006845f04e24ecb4d95a1373b69f04b30146ebcdaa27f1e102752b936e1cf0ae074e9fd1a0195fb7476e938f7e2c917ec140e0269dbc5fdcf29500bcbcb5618df0aef2835ac41fefca280d51131468c82586bee8379d03ca52389a6d0300452192bfab15b9fc9c50854708330b6e7531042faf22155b89226252bad5b3ce2183b9dafa3756a09e23ce6b05f30d1048f65a08e35419ef53aac74d6fa63abeba3481c2b6835dc15f5fa414e3ab881fbfae8dbb80a009f6be751a0a51c931190ccdf2440ee1fcc54b8ce4043d90d9e8e56e26621802348c6afb2f590db40a316bed4501ac056546aab32d0ccd6d4485a711f1b83c74c9ac03140f3fc71362b6712e10e0de928f1b34c7826cbce047d6030b8c805b431104c37814023bd6b2a007e8206d81ac6d2f5623678aff9e467eaf1f0ef555f6507b43d59e48ff24b14b4e022e5cf795c4c84887cfd0c4f129a3dfd6bdb3f98da93eba9f404e45f31b66033b7b79f5fd35d6ee8ec95c9078a31f9d7c50bb5ecb1a3da93c5a160645c7c8c2e5430e858b218acd2e9336edd981a7ff813a598e8fbb23dc298ab40221484b1c074def10beb70f39d51d71e83bd4746e731d9bc1043933597cbc86af2b26644ba2a4f8ee3bc444140a2d3b208963c63e020ef69eeaeb912a0baa48724594c6805fdb98e6e9de265cae550620778387a48899d337957b722158a2d2fa1eb9739e466ef78f7057f4fef156202bf0ed2fb690cf64def4849080c5679838f80be3e3e50bda49fb4849df623533687fcbf42b39bc8dd0815fc527261b3e1d2b4e80a6b4f2f48e5fa30fd49a305ed179f329ceb159eb640110c1da06603e54fdebe48c931c06d7cd1f48f1f183628bed66a1832a7a2e6c23eb4c7383b7bd23f91185df28031f756fa8f284500670390cc24e1122704c0f9b4c3419b7aabe237c196a8719bff50d7ac053644dfd96240bd14f5ebd71719614bb5339e5475d2b8a30d8b181b51d92f6785fcd98942ea1b5cbaab45d53af55b036186abcd5363811e23b1901e2d5668318601d120c6555ec40e73e8f45038897a879da857b5d0b8b2104a25da8084871c6ab968607c756896f1f122b332a7e44be3ffa3f012b319bb78254235d200d978c0ba246e00f3c44a3d295399bd9ccdcc385bb51d259af310b4734473db012eed66282ee277588211a32d3692ca564a6b595367cd23a92573441251262a210c2fc75cac78432a16c727464a2edce7588d470849203b13aeaa25355899e579eee90b017d9c6c0c56bb4914239279cfaa5896c80f9d130ff1152ad43d602136c835560854be98c8c0540d5a72b829d052ba92bca4dcf4d9f48832bcb33f62a396f113bf0d0db340eef0a2784672ffa3d71fda27cb842c3318ebd456d41cd8d24b4510a51fcea83a65ecca131335a80573bdf558ced5c0369045b2984a4110a031611156686dae224d4339196a90369b17c69570d1afc07646591850446749a6d108d2e9ae96c021e1be5bd591f2f5d62d5e85baaaf0589476bc5473a2c905593ef4820758070907b1c1a1122be7f6cad640974050626e3d4939e4e81acab794045171460dee07b101e10cd54fa35414e32f2b6fce386841dc6d8f06b849dbfe7b2840588f571602bc07d6ab0c6af92324e2f8e36fc9e337bfefb3d4ccb8f488992fbf012e096aa03db03d8c4ff36f129be939442bd1276e987d0fd6ab4f1700864b3e42255bc93e24e25731657a0916a9038255ef2b945d296df8766d035af39c9a3be40b8ce289d07411c1492022c8ee0324a12ad796c9c3f67c0ca13795329a016dfa60076a05b88161facf3bc879517f2ec4ab03ad99dc209afc248db66581e7f2dedfd0f5b6de41ad2d9f853f84680d3a5bca45304002479d783f42bc78e5cf8d081705c60bfafef714a0eb4d096d545c76236e84c68097ff62a0f2710a9c160b371bd31955c119d57b23e4e78103048a4807796de64f3eb174c29d576779ea97d1b9bbeca53f8a7f118b7a2a605f7142904197cda018b218b5b011a7991e00226fa2ac49ecd15b3017d49c2798f184eaa7f5bce32aa5561f800af4cda5163c7548296ecebf8b36f8da7659b6d85f4e23e86448be4dc6035d54b54ab829c6423b086cbdf5ad94dd43b212ccf4c66facc3fe4db9b482979da4fc35ec1ebc9e167ebdd2bd8b4c0c944c4f47a02b2c436e1d5637940081f89fd90975209657bd8e32cc39b444537456a570574b3bb9ca97458a5f8da924da2b5c377b8c0bb0e08b0b6218c27e58f0a20d5190e28a70c886d424511e4e15c019739446ad3ec8ba8fc958f5f004be2c3732e6c62258aa8b6082f43019d48cdcb39cad76c4a5e02af56ddc47ab2a4fbf88031ff0deb1a20f504e07594a0c91e194d6afb3d17882ede30e89d51acd924bcf613c4483f21d7f2736802bd723a29cbeba1e0c1cec920403760f6f5227b808e89b4bcefdd03926ef96e3450eb3df8ae94833078f2c2fcc8ff1f09c59945cb2bc57433d9148b71bd4e6bf47f07ec5f709b32b12efe1c25b4b8d58c9c20027de9fff425ab5053b389231e71832312b3e0b444b24faa459c4bce057cfc805ce8498efbd3a86aaba9b6fcb7494d43196cd3a67e6fd72c835b2cae337e6070e7aaf2c97d662b9983f7d99e956e4812661226c476eda0c82b76b69e0c1f8427aeeb77b0ee8891ad6c5945583e014304fd8a12067616cd55e88c48b02810ec8e7f9b91ee937971280dbac797c1540282773c973bb067227543fc0cc43f169b10091c372e1a408bf99f291fee8898f840778b36d24089f13d2e709b72b331d56444929bf16b3472d82e4c43b0b22a83876a38b11887627d77332ab6beb64fbcbdf66734263453b6983e7d07bcd5d58c9bb82aace2f6aeb345ff64d25912375304d9c70cf119b093d0acfa5cee20cfa16ba3aad6e69ffd99cf7b2cc27b0a292f9981fa4a2ab6a17de2021acf20ddccb73e655c59a8bd680556fbb4981fbfcb50b117d211690e3e4e8e1d715478599a9ff4145d474651474e524dbf3e7039d46d1e75c64b0cff146f65849dbd23db8e6104f414bd0c8395fd88dac2f0f00f115dd7622d6cfae44e2e94a99974c32380f57d97865362e401bd9d7786895ebf70fbaec09131644e92c5088f51ecaff35503761ecdee105266b64c28ac3cad35dabcd2f5b21eeeb41661dc5616383ac42ba3a38515814c72ccd288ca109bea6b57143b6d5d8212b984c160de6136328065c7d1b78d977581dcf437c5d11b173032207ff1864315c98400b761e790cae372a544f441a5027065d7fcd05c982b0b4377b5e40f1abea69b423bf6f2dfd773e5893313c41c24ce88cb3f36dd6edb60fed086f6e7f6c42eb59100ba95fcae70bd30c536ad5fc462ea65e382765660b347dc61a23b7d97adaa24f487c30dcbb32670373a6f5fa72a23195606405c32e27ad1c51b5702f7b61f641fb3656b8e772349d93df74e9aa3f175ea3b0395c9341a363152c173bcfecf462b7af63a00acb4e3fc6637fc33e617e668f00519ba3203594e616227f2f79090fbc6702ec6f27b76afb474b54a4b1ed9cf98c65360ef2bf758abb10cb4eb902528c30a4fb3334a9bba165bd74122fed4d4929cd24f2dd5939b12c74c9a0fd1c7a9781a345fe25a6dffde5685fc987f1042b145edd946c42b411a67d617e4a84991f709003ca0fc1e04815f1be81ce8199a0f19476a86c84f22aaf875e9025299587cedc17f68e6c8cfb2b4acdbf8aae7eafa8b5dfabd46e8842bc393791d978757a7e21a8b2559dbfeb4810821384e8c94342e8566f89a18390804887d4cdfb86104aea92ca7a696506b682d5012962c271c645e7a07fdada3b0745da42c21be97d748fc810fab636d98fe653794ae4312799ba9b0f4b1a8b1ed1c57e3c3f4c7d3e94bbdcc2b45cf588f4f37494709916f0bfcef593dc9b26c448394d6f9d555be23db2998862642e182561f56466686eec99c2872733fcc9b83d99a30fce15c43e99e14fc67dc4461ff04ce1f370c362d9e7e136cac43f02f7110b7f32ee237694897f04ee2316fe64dc476ce483961d80bf7f54777df7064b27fb09c70766cd2dc9fa7d6b2727d5b90f22f4ad6631627763f0729d5930c9ee439b9311154f03fda0041a90891bd0c8ec999e93043fb0a875ba5e6687f93bf45e0d69bfb314c4ee957e742fce3a45792fbd9d2bfcad31f6481955b9300a260a730d2e248ea6fc1f13f38767d9626446bf7c8edf3871786a3f32ab14cbe7f88d138767d9b1c514cde1fe5c65359ff62e83183abca13be94aba5b4f27bae9ae3947ef799dde5fe1b18b63d982d68be91dd3cbee1c50057977453496137b77d2b226746ec56a4917b4a633b45513fcbaa76d1520d1ba0e27a690e27782960aa85fc72bd98c7e844e4707d182c875b4964ab69107732941c18c1dfa88020c0fb54229aaffc09fdc02b91fb7798ebf59999b4196aa02bcb742662f2245d84012ef7f46ba532075402f919127e988721834b99526c25a656b0efa38a3563416855abc493c85deb74542cbac892a3ac2458df96daa0b7a49a8cdd16b58bc5791aeb42328b06e89013648da1d352061aea0a025a1b3b0727a492c219d27eac781e656606facda8b71591dc5bced878ec102ea4b8552bff43f6dd3eb06b84225e60852541f99738e50e2039a98fbd3bdee873e68bf920e29c9e0092684fb72c81714f479c56a444283ac63353ab32f99ab68fc27fcaf8ad43ef46adac4ec5c7c98f0381cbabad4ae82f58e38cbf3dc3a666fa16b1a9b4e7a3d96dd454474c005e8174483f804e39452fabfc5e4ddaf5587d8b98dacd4d6afbb7c9e6aca6bbc0f7e155a6a79fecd2b1a8cb549bd79e5fe4a717a148f15a679c895ab20580240d2dbd8dfae5ca7c2d669d1f97fe435b816450f57be587af40f707837d46ee21f53d78dcd8d4ae12d34061b0068213b9dbba8f85e35a1c197cc4af2afebd6d64eca974cdf02d75c4d166d45f645803597e480d669f88264b23059c8817cc9b5460f77c01b86c177abd58c4042c59db5016433264e111bda366ae19b2c1aeca359e896624b41a7ef19dddbdbea1c9e69b85a0db2630d00a9e3d4d3bcd225eff724ca94d7c24a8b21ae2d7d081c84a7b4d6057b7d7539d6b54ef7b73e54bc3baf1474209987a59ae4b1fe71aea8aec7c04047f4ef59396c19787af9575af41e62bc4df97c6ca010c84f1c65f3257b53d26c19b3bb72168fe2a746928417f091d7b128a6f70403a51320bf35082a425573a280d4da047e64f95b327cb036541fa134d6d5c79d4d57a56cf80f1785ea7d381b49dc62060246523df990b9c994b11e2b1e316b4006b125c0498fd268dcced5d57d2afb2f1cc891731dae907aa2410f58bde0ffa1e48e3797b3092ca35e788d4e84b72864eeff7535cee8a155d40a76f996198d1ff39b04b49fb7a5555a16c9d13d47bd8e141d8a405533bf00a52ebeea4b65381341f0ff963f1d773c35e1c5f8e59eee99c4ea6624c334ee1f6aa9691d47d140e439022b282a86319693acb8ff9ae0dba759da7d112d104211665986d2ca17e968e83cd4f8f4c89da6e52b53b646d7d87c7e3e6c494486ce044459045e0fc55a105010705a9303003088e5fb06d14304648c31495b2110e8924ad162519917daaf2dd96f48969876449d999929c75bff7bf5e52d283ed72d5aacae88888888a4e87aeac337fc5af0048a88989a594bc86e193b129c12df0d7244d143097b7be861041fc0e1461b6bcc60e543650b2d98241902c9d5524d60829121342ec8c4281180283b7be0600739d8210be845174444408e37d890810ad23043034648403c60d565c16d5270021e41e0c10e602082270c208025028025ca4e114d76d06106194e608227cc28c3000528e5808396daa10539e260e2a7cb1e7a50610a4b2831830ca33764100316a8208d117c200b2c125012401257a2ece8b0818318dc00055e3801c20fd8c0810c60a0821464e0020ba0420a27e0f1060f5490821380608a2ebeeb301905c1c38e3ae45803062628011a646c7185ef25012ca1c4151d26473222a3206ce0608d30bed8620adf0560844e132647b21682889e1d75b081031ac4c0042540e303647081c514598cd0417224bb3412113212bd3deca8230e1aac11031898a0041f20838b2db0b8628a2194b22c3184115216b0f0e408175a10020e5a58b1002c576005ae584010170ff8d823a4c795c70b16ae2bc87040b4818b8c4b0396bc62085aa41f45424284301976b870b06e88b1215483458368064b061f2f081112a211b910a4059a203600a9e1070e33231f31323031170ccccb4bc87acf0612c0973a6d2a23be6bfc945a3da1c613d440821a2fe8c16a30ec8471a7a04debf70aa0a9b1a99152a3e73d0cc90d5683e406d3924614d4d8410d18de7b5dd0ce42229194d0710263431a17486dbeebb4cac8d6a5a1d37842648934744843e6619dee34c6613a238003e3e2bb7f7404633c6e23191901d0083ab6697fd31db7bd67e9f19e95c77b5616a860d92102fcdecb11c3c1b66dc583c819e79b6dae99e699658e19e68c31bed8e28a299e58e28821ce17df7bedad97de79e58d17de6cb1bdd6da6aa99d56da68a1cd15d75b6dad95d659658d15d64c31bdd4d24a299d54d24821cd13cf3bedac93ce39e58c13ce2cb1bcd2ca2aa99c52ca28a1cc11c71b6dac91c619658c11c60c31bcd0c20a299c50c20821e402b98df4b34a19e97e7e1625666c6a666a0a801500230086d9ccd8cc10c0bac27b9615a8804614b0ac8d9e0da0210134ac40837bef61594f0f96cdd8f4f46059f73d0ac3667a8860ddf7a89a1e244890f08006942798cd90215adeb3aa40053466c842b04608c8781877f2286e05254908a6788f440a819610f451083a11ece6068b35980e365f14f12c18aec4d0c40202044bdc4882453a4ddb54de1fb15d795c705b7744c3f6cf6ae398c6b892d6a54ea50e34fac0933b7e70c60e1eb7c5b184f72c25bc6725e13d0b09ef594778cfbae38dce308dce58c232c27b5611e23883863380c421c38619aaf79ec482c0545aa5b965c77b561d4418021d735872c4312a438bf760c7adb4890b130fbc74808a0e901e7f6f0d32b4973a59d1a4685d476998dfb4d3160ef35bbaeeb46dd974ea8499b8e6409ba7824921a3c87bd9064658a729e136524fadb25269278a0e95294cac9498149133250a0f955229e3e24b7a5be9317e60757101137ce0c8cf09e3f496aefd1c09ea543f5e9fb64ea5755877e2e2b1f05d102ab5691ddfb59d244bfc69e3c17a4a67d9fe596d4aa0d080d6e9cd77272030f034de88bbe08df80ede88cff1463c8f37ea33bc51cfe18d7a7cefc9f0020d0d131f1e0d93ecd13041e2d130e98f86099747c3648a47c3a4018f8689041e0d130c3c1a262278ef0119f53c9a91f66846503c9a51158f66c4001a2133231b298fc6863f1a1ba047637380476383c5a3b111e3d1d878e0d1d8a4f1686c62f0686cde8001080d4d10213c9a20763c9a205678342dbc3c9a16468fa6051d1e4d0ba4f75e901684b8e0438047e3838047e3d3c5a3f1d9c0a3f151e3d1f8b8e0d1f8d4e0d1f8e8e0d1f814e1d1f860e1d198823c1a930e8fc664e4d19870de7b2ecc2024861ea047d343c5a3e9d1e2d1f468e0d1f49cf1687a5af0687a78f0687a90f0de73818699f75a78011bcd30f39e0f1bb6e86fb405f7465b58f1465b5ce08db608c11b6d818237dac28d37da428e37dae2096fc4c5cb1b7141c31b7141df880b9e37e2c2bf1117406fc405166fc40506de880b34de880b19bc11173d78232eea78232e98f0465c48e18db8d0e38d18f0e38d18f003cc0c58e41b6139f2465872de08cbce1b61f1efbd1f40de0f191aec008f06dbe2d160603c1a6c8c47837de0d160277834d80b1e0d6683f71e90179e0d415dde28c88a370afae28d82ca78a3a01abc51901d2d04792f427ec4fc68a2118f26627934913f9af8f36862138f2656f168a2031e4d8cc0a389207834f1058f26dae0d1c4373afd319fd28a508117a060059709d0b862c6bb3440e2d299563e18a6d234d4151f33240ec33addc4c70ce9e747e31af35bea07698b88f57478cf92f2acfcac17903012038627703095e6a52d3e65c1f7ac1c0964e1e174af529db68ecb7e38bde5e63dcb07ef5970583dc8a458847b20144aff70160fa630d9411bef8974d0c6b631e9c152397837f0f17e2c37da78ef3d800d6e234920237ce3b89486100611ef89c2108dc020e2bd178130addb561d437129bd759bf637afc2c000c2c41770bc6ed92f4c0f08a30854e17a611401d8b34567814014de3ba1a8bc32a680030230bcb7a4f79c1fdfe974af859f8ea0923a694604a150395bfc0ef7d33b4fc5a35653b6f89d2e84d045962e601ea987e3a2a170d1507e561cc9a3b46df32a128742e590304e777af3c1525a8a07db569d66da92839d388ff29d0654c4a7340ca54f3aa83b6dda00f44f91cdab561ce64d3ca8243a6da707a1503953b49ddee9ad082ee749a7ed703fbed3f149694f348d87eba955939eca59624450d735ad882b264e3bb1d2693b3a49ca039d8ae8b49d9dee394e4be9b41d6b678400d316ef3d26180f29ede4936881079669d1012dc8d0c28947c270301c1eae6841b18c07affad122940514b2b8e385c1e5bd770dc962e6f994b6d369da941516556071002c50232cfadb7cc90896756f842bd96091048b225886751aeb3e752afd702e9ccb15565c1134ba82e7bd47a484d258963a51b1e28e97d2be5f62e2b4930ec40af91e29486f2bbdadf468015a16a0f352abadc36cb4cd37c19d804e5d8f040479af891387d22b26bcafe3bd97e58d1450e43dadf340a7d42975d206a0859fb4f4ae4b25bdadb4de560888c1a88a9e2d1da8c21ba3030441a57f86704103d438c093d785e58267b5a0052c78cf5a810adeb352f09e8582f72c354ef09e65028b046abc67a5a13bbde447e1547ae3f951381f2d0589ee39fdc42775e241651ac5888bc712811456785c6a5b75259fd300fc861d81180e36e588eebba6440a2aa4c842458a1829b852a1923aad3446e25ec561a8ae8726b8725c0fb852a192f2c14845607b0989fb9a89d34e3a6eeb38df515a0df78341217119070486914c3d5c47a406f31c4a37c1483d3f3ad563ea308d8bef52fca44afd1e2236353d26ce7fcdffaffd70a7943671ff83e9adf3401e7542f1229dc9e784f2499df8499573a379fc5683611a0ad683c373d363ea4e5b7ebca9fb5a916ea5611a172d09462a923a61563429bfa3565d4fad30d2e66d9c60a49e1e2a1889083744a57f6a308cc4f9af612a0dc5a65ba950ba26c5839196e8acbeffd13bdcaba8a474341eae7bbfd3718d47c99294b6a36d3e00296da7fbf7b2814660e2b4695b693b3ee0e28211a0c185025c1ac0e50a2e5370d1465c7eb8a09e4ac388fc50630423f20366f30396a934cce6072c558361990d87655162c4c50a971b22353a0b6f8b099e37f52da955dfa2a17e152cdbb46df34f32265374a79768dfff68547c4adbe1b172844a43f17ee349320242a150a75f52715cb7d23cd7a53c902f597bbc6b889513cf2a41ecc58404074b7954a9fb1e55ea286d02523c519397f76046d0711d438204e31b3745978815418284e47dbabfb8116782f792e0d1519223254709768371e9a79c3d5ede680f1fde680f1fc4dbe1bd21efbd9cc7cd1be541e58df2c0c01be531c71be5b1c71be941e48df488f2467aa4de480f2ade488f0ebc911e76bc6785f12c2a44607cf1b252479d4c3c7bcf8a80ccb31a2085cb8fb635e93e769c7e129a001224d8b6e23d446ab46825ee4422c2614e102961365c0d104e6036a5a05d2a91b8d429c4a46f9a73a725394d469a1d23ad3f52d7de94653d4af4f4605fe3580e463a2dd1b690b668d31614ead455d9b690308e71409ac37a4a6b0db535bf85d35bf4a69938954e711a87d21d67a3376f3ae9cdff7893ca934e3fd8294b4f8f12dc89eb9b96d2c148284ea561a91cecb4759dcfd2d3a304e6ff698b4f7d0deb29a534bfb12c53715886695ce39ce728d4290b9325519464590985f25b94c8a204e64d9d4d11cd87f340279f1c8cd4fd0995d24e3a558292742fc5e79444d378723a6d874aa7ede4683b3d55850fd1532a75de67c78904ca32eec46d5e8a0a360cde7b3c046d27bfa930bf7fb42ea54d524a9cce163de53dcb8bf7ac2eacb01c20c67b5603de7b37bca037d272701bc9f394e7385f2271584ab3d1db2a07dbb42658ca6bd9346ec5a5bce73413c7b695960446e236ad52696cd5b54d85051184dee29360246e88cefbf4d3128c14821e21bc2406290855daa524de1b32a44b796cc810ac7b2dfc74c4a6355155e136529609408b478a4025ad2b41a02922b0b210007def69ccaa42008fd318c83283cd03511192c50ad2a6c9f2e49ac90264c9752d01c633b244cf7ba4ce6d24af0497a70494f70280c7eb3d5dc71fd1e3b5784d733da594d6b3698fe218d7799f94e61a87a9bc16ee81303f84f3a60eb3e1ae602793df984fea74e2a71f2da5718fe2c1301217e48fe841fe086d67e78a15ded39db6bd2b686cd15247580c78cfe2c2d2e23d2b8b37baa21a5de91616ef595758565cc1410aca03f9272a8dc70a1caf9fb42a55c54a17ef6159136e64656764058eaa346154e58e52a9afb852f74d9cb84ef97731a08a8f01a44edc9d339eb8206e23713c537896f0641eec61192f9dbadf94782d9ac7caf2dedbde884a188fdb4850cab9454fe93a5c7c4f8da6a8a1002904300572dae69be8daa330adc3fec9c45957a45848bcf1deeb9e09ec089c0290413f9b96d279ee0e23e891071233ef3da8d21df773eab820af25c86b29711ba9e3951449b348911f8e05b3b9d9b426a8ad67fa49b39265a55229e57b3f994a27952ea9380e277aaed34b5986c34fa8bd92a252e5683c59e63bbd711f304e637a5be5dce86da5716eb8b772dab413c779ff535aa9436993073af974db77eeadfc702e3838446a706eb86849b2ac7b2edaceb29e3a1d8173c3bd954deb70a004baf9e158b22c02f59f55aa54eada9b4a4cfcf425442c79a4ae048e1c255ef491929ead8b0469949297e48c51922eef3d6d2709f6b8ae3bed9349db543933786fb5adb81c2d1e298788f79ed661a31c1e8868e3a5561ba675a72ddc09dbaa138a882c8250276dc7c46993eef49221b030440846433c311a22cb1041709640f23f36244c75ea704880c3493d9a694bcf49ab6cbcff984d4f0e17fdd353da1e2101c20889132324f83d5290deb2f9748f753a87e4b795cfe963dcc9e7644aadb613d7d560be9f90d460375edc387924d426b26bba07d22622bae6067b8fb4b123691ce93992433683f7485c4f0fa6753d5cea04a507eb21a534cc03698ff27e49a9a7b4dd4f3899eabd9749c9e0cb68f0198fdcc67b5c16a3f3414b74b0cce56129cd55c95878f290f75e0a07e19aebc6c5e22671f123f560454858104aff643d3d5811cea6c06af1deeb569a118e34c5f6707aa34a826ae222f6b51c8c94d27c3a4effcd6fd150580ec9c4b58aab33548dd7c3f9a44e2aade3308e36194d248ca618ef917a8250dd899f502a2e1eeb5af3d91a2305a5f43c329a3c8ce409deebd9bca9db565fa56d5d363192354fc990f88258c6283a79af47ebb08ed2ba0e89006330820b78eff53782437a48bad34b7ab04dfb53fccf8fa67f3acd57dd6fde47abb855a74b5dca7338264e9b8ca861a4676484886f4486c4617a8a132c45c283443ae3bdd791b8bc4752ad4624295ab4110993ba4e322a824711385ed7498a2ce03d2959c63d5096f58e2ba9b8aee3933a75cfad4a5de7643303ae633ea9938de93d1277b2a9215541080b7027215a10226614440b82e86214841641e88c827081881c23222678ef91a260590fb72ad283653da420fdd3d383719c5639e9da0369aa1217fdb3532a65c14420098a122c35783c52cd0d6ac0789c0fd252a39a5d43f388d46043ce783a673484cb101e4640ccf11e89488f073a6929acfba09a0ed31e15b489d400a10569d3b6cd1f0142ca0f96f3031eef3d926a8571dd69d3f429e707387eb81394d10f6afca022d904a136ed79463f48793fd08c7c98c123713ddcd7b40f08e019f9d0e3037e231f6a781d03000e3d2c61d44309de7bf98d7a8062d4c3113de4c0031078f8000f2b1e9c8c78f081d900fb0253614a603f7640c268870ebc243fca4d4a3b4d8912b4fd14264e787498f818e4b594b28c3b490c098e0cda2bd44f9d306ef7100946b6ac9feff8a5a7716f0d4d59d66d599665484878f7fb71c5926a6f75f426ad94799e8a926a926559c6a9b45cc4d22ef99491f62e3387d09465280de44b1d973a599b3ae7f51f4e992df65c4753966d3e25c4c73b6fada5aeb05738a529cbb8ee3d57eabc4f96e1609ca63225cb4a3f5a4fe9cda46fb8204adc6a2b956c2082d5f430a4fb92ad3208207e74f861d33a8d830f3d00e077ab1c7a88256f2af1b0e96e0856c30e36e810440e36e0a0c30d35d880430d3534f430c30d32e01003b539c0c045dbd2e9f082ad520896b154d2266cc445ffec40134b1aaae4933af9f868a81a5c98b0056e4810d9691a90aefd56f3c366a6f33e437c442e08190963628908cc9017090051e98790fcd178c96fa552d462ab5471cfddab5463c552a954eab878003c1da690018b2158fe47a74432609184f71ee7815cc8b8934a9780585400f9f1d6508015392f0a28ba3c41802682b86c015a75dcc6844a4bfda0b40ce064f2f9bef3ad7b4a02c8b2841201b892b8b05c41e28de2c0e38de4e8b14208f8f1d6a8628a9c2744c90b33a0c27b2f482524c97bef6dab4e732594e63612370599f72e29e474621041847745e18282134a4f70c2db3423428640809021ba9775df693e386a08c1a9c982908d9193f09e9294ced6a5aaa050ab26a8ad3b6da7a334274f7c13272a1c133c54da96aaf273d228255ee3e1bc6fd2693b4c348d47a5379eaeed08b17734e1bd4b074c70a37b146ab5f3de7584c72de1bd4b074a7891ca0fc7e2af33debb92808423f8f7ae3b3aea740565841f0585ca79ef2a0277d9915afdf7ae3afae9bd8b081ea5edf4f7ae21743ce7fb8e83c7c5773ae81c0fcb61630e9e9c417a8b43085b432541a1563b188b1547d4e275cfc429a5753aa58f780edb29e27ffc164c7f94e77ab88d04817ee08347a486935698088166402bd1ca0fe7f2de05c71bef5d3de0c17b7276cf4f9a156e6bd271da3fe972b489c76f1a94ae73d2c16382d2fc943271cfe3814e3efe094a9ff8a9af8c8041a99cf7ae1bec40ff686e75c400debb7470e540ceee06b56d5c6c4019e48fb8ce40a170f0de7583207f04aa888e3a99945c36e836ad7aefaa413f6d2b9494f72e1aacf1dee3706eb8b722235096c1089465100887888d9c59c675d4e94a479daef8a4564d52abdfb3d888376ddb98749b9612d4b524dda6555d27a86b49b08c2bbc0af25aa85df553d7d9f9d152beff682939573838720a3185117ef34e2216896562a1582a168be56279ef0201c6926511e8fac07bd719667049a8ec44d1e151b253c58812961c28254b4810382f0271446adebbca78efc95c1e78ef0191e4190001419e20b2e489a0105273c77ba920eeea0007966031e1593fb04e80022135a21d86a86248e74366891020aa705981e601044f0ade0f4e08f901c8ce04240006185654514502a6a0828a0da70b727a5092a45227ec88c47ec0521e0531243c60298f7aef0901800c5014904cc10c0f2481801641bcf7b290f2ac0c218487391ecf164d898ac32beead7027550e7752699f144af573c286c0f38ac011821171821dd8e83c95aea584ec6084101dd0d041c97b4272c0e23d5589c3210f213864ef85e1854feab48003707eb38284d8607acf771eeb6e5839b0c07b2fe55551b41dcb6fdae74e9b8d0f1f3e7ccca47492a06e3b61394268a8820484d08085ccf0ae0af850b790a1a68b134f87189c784f771c057e20000c6d9484c0e0440c19bc1a84bc80434a889036de4988901e2142b0f7b8f494080a5b7cea251720b5848d0d121c2418112efd54d37dff24cbb628ddf74f300cc3524b1000e3d24f25efd37de90d0d64e0a50b1f243798104d442a10e28290166c20a40517debb2020864f693bfe47a32286902053bc774de0bd4b02ef5d613c21419600e3d92ab52d3c5e8b462541e9151328eda96c52f4e6f5c6a4d65a6bad94524a29a594ce39e79c73ce29a594524a29658c31c618638c5042092594504209259450429973ce39e79c33c618638c31c6f7de7befbdf75a6badb5d65a5b6badb5d65a2ba594524a29a573ce39e79c734a29a594524a19638c31c608218410420861cc39e79c73ce19638c31c618e37befbdf7de7badb5d65a6badadb5d65a6bad95524a29a594d239e79c73ce39a594524a29a58c31c618638c30667c6da55346283f3aef25f1de1bc01312e2f2dedbbc117eda7ccafb54d1361f80a024da8e3f2de9a89576658b86f24994f826b4adc97b1704366fea3a2d95ea3ac97b971753b41dae8bf7def580f72e074c09d24fb49df7ae065c0c78efe2620bcd75ce84c98f126ed3765239db8a732d9573023a2dd1a9953fed4e7329df84e738cd75dcc96f3e48a33094ee522b229cf77feb948edf56ddc64cdd76da1829a531d48ad3d8d62812e78ff89c38eccae2bd0b8bf7ae2bacc8c224003a544a4b982c89a2648749694a9429539894983ca9b2240a9412961c28599693f25a341e8f5a750d0ac6f9f19d8e8f86f2a9934f8a89122c4c61d3760e46f25840e3bde7e35d0570e23d2235d67b6fb3c6b8c20bb88d14b44b1ca7555d4aa74e3fa78d73a78efdac521ee37e38bd05d39c70ef5d56debbaaf02ce97ed3b68d094a77bac97b179529ddfb4deb54411b97b3d36aa9156678ef69ae734fedaa0a516828aed350544a2a95ceb2928acbb156b97154c80096b18a4c1853b0c17b54c83ede53bdd114869c3696b1c46d5e85f226395758c6951444906525151745c97bd711a86d63c235142a270a4600c016852844210a50d001148078ef5179efd229e2058d9e30851376f05a183d8106ad3212d475dc6a0af6e3e339ccd469158642e564d97b9793ab08110e3cbc78f162851396e0f182d7842d2f8b9c4c20c1c34258890944308188f7b8c0032c6105a5d112c0580256c20c94d001291228cb704c9c76e2c3a5b6681da569bcb4994a3fab949cab2fe45ce1e015125ee0a86c0d95a433f9e1587ca7794a53d275b2ec8623c8f0b88d7452e9521749bc926755607487ea873b649e119c3032421bef3d0cc90d86653d3d58c76915e6794a03719c9bf7ae21de8583e48763e9a828a91cce53f13ebaa35204931d4ab0a38c9cee7f7ca7d39daed4f1c61bd581005d0726c21d8f8469227044d8deeb72ae88408720c77b244e63363a182988f349a495544eb4b2c5ef8c8680e9b8c1888e27481de77d7c561ca74d3bb0044bd20a2cc152b4c2f92928540ee74e50bc6f4285a79f94442bd04a96c9b93271da64e2b409080707db1b39ab745c4a5382d9e0d50db52bdf358e33c78ff71e0a95e3511a0c9603c87bcf7fac874bad4a405a7a4e5b9120afe5bd1b4994048bf868a87acd378aa30e19070fde7bda4fe904a154aa1ccf6993141e9fd469eba86419f75de372ae704a9b5771d13f28dd69dd0d17fde339bdb9e81f94e609c213384ea3b2ccea001066f0b8d3919ed2a6957a92701b89eb4e3f4580a0e53d13a74da61ff4bcd76d9a89c334adcb3cb77920bf5d1f6481db48fd880fac78afe37caab4f9ee54fad1b66f847ba0910f5446501a8e2d8f4422f1536a48e7519df69b0fc6a13c5086f2401e55ca9ef75b9394d7a2753fa50325484be17c12da4ed77ee382b414ef7f890bd22a8ed3284eedea8d1c2e207eb072f9008027814a3da0400fb4788f0856fa7eabe9c10e6f07637813a79de0e0dca07497d2704a59e64f5b5752713edc8fee74df917395832a1e0ab56aa2ede84e2fe15027ddf9255aa2c8b9d2a8124ad37689f33844301b36ea78416c2cc186e8bdc703376584032f4638e86e90850b86f7ae172e2137e0327a3668c3063d1e87884f3f6d3b07b3e93a37dc5b2122e70ab3917355c399f82931f1d34735c05b6840c60d6fcbd5c2688d138cd6c0f1399da675eda7a0744751f14d9ca8a474543f9b13254c543f9b93f7ae201790ebc77b254f6509187821083c18a20247b0638d317c70a3440c304fc8886066240236b6c04cd0c49582c20870a082086afce002154f20c0831641a403c240038d224fa0e10134e08007642c31400e781480240e98910c4ca3185871c5bc77c15ca22b34828113231838c90215485ab8d6366d0788173841ea3c87d24c5c60c6d39d5ea23bbda4a7fce6bd8f96326ac10bdef5523e2794f64d04e9270f8f2e3d2fe627e68990582fe6bd8cac98e782f52283d582252345f7851a20d221e692917911852cebcd7091def52c244443582fe6c8cbbb9e6559a1cb8965c558976585609ab8accb8ab9649862593056ccbbac20a4d0050353338359a2eb126961892ceb9ab1a470593ede8b25ba42deb2067059d62553e5bae1b22e18d16525e1b22c98cb42c29ac1b242978c0b5e42312d583258560c32214b0c0be6b2ac2b54b22ed18c0f7a01b17064ac171f4248ac98eb12c5d0cc7559445cb0160144f10704ae277a17062c51a846f47259a1f7e2006b08d6bb1e0d0dcdb39e25b22e8b0996cc1584655d2fd715b2ac6919b1642c20d7755d304aac21d725ba2c1822fda84106082b88101bae2eac97ab064b6485ac7749b9b0194bf4ae13ccc37aac2b428f0717588f88185c210bc612c55841ac9017d72593852c1cb2ae4b845d407cd4582f961503457107685d333032976559568c6565d67501210463f9b8442120ab876b6559a122968f1f972513635d445c3a5c3a5c39845ee8592e5830d7650511d18444570dd775593096e85b3e7cb07ebc5cd68bd5c2b52ccbb26eb88c80f9e1e3b2b60c9098cb42c292b1acd065892c27560e57be70b87e5c31d78b15b22eebfa71c588acd04bc8b2ae15b26a2c1f1610cbb28e583a5c33a1184b46645d969559168c0c170c96e8b25e4456be7e58a14b072b14ba2ed125b2f27559365c33960f4b467459969559395c3331214b2423b22ceb62160d41c8dc848478b142960f4b4483e5c347f643891b74b00020b2ae0be68af1164d0cf08713cbbaaccbb2ac222fe6a9de953d2c3caea41e66858e3bdab0428121945145d301a9d031c79bc2c30f1e121470c323a1d9785228708230a4f0a0458942c700f078c2830e5028820e1c60a6000d46b26e8103978e203e5c1e662c4b879587edd9430216d3e3917ab0a043919e312e9b3932a0d960300821c4b069c20e3d18901db019843c315ec8f27a5eb67898488af742efbd67ed71e58814b80133c5cc0f35e8e223464606666606e6e54728071f31a197500c4078a0d8e941a6066646068b80b8608980c42401a40b0509d1bcc0214504bac0b470c5f810d904c90197d165c60a902eb269018a8bdef0524564c1dcb4a00b92274b46525ca219d1132254e832c714d64b36da8108282e910da1223ce822041d5d769032450c2e24a1225404145574a9c1c715203044a04b93185432dccc14badc743e8ae8e18226c64728c88b165102ac804246340a15995018a1023e82e8c1143255e8a285ebc70b11a3982c3ac22b7146142fbcd4cc349901026609511031390a1250a08828dcc8c2c81441f81305bca0cb8fd5ff428a20d2052b8d2e355828666232cc8c4c0ba1ab5344288799263150e804a122e3e406264d667c380142a5df90a0cb0c221b3b0393bd100466e607931e0490812e33324e74d80be8f212a279b1609080997939021344ce103f563e86c838819989a921c8121f3e88767ccc00030e40d820431032353b538080624686143383ccab2325068828c686972c647d00110dc18888f111332332f27284081361bddc10e2e14506e843868732932334c8ccc8e0e342a164e70795a911f920f20166035d826841b4e44588171d7cf820c2c18518ca218a2e242356e8878a88422f04e841000cd0526694d1c60ace3063031750c01305e0c269f99ef70860890060b152858a94274638c9f0ac01e2070060a218c0608f2628c10843e0fcd0830d35c48871031b68200348301922cb2106203f605e70821278600c0d5cc0021410238c2a35438c90be88c01e5988c20e401398a08292c64516a78f736426668c2db4b83e7c0007196364d9ce00c38f1999181c6e4863044bf81e65c7089d264c24804502aa103247458119656ce0892b56aea50106911b6d40c10a0e12eb2306e603072801082af000062c800013908004b288b283736408100b0bd715ae2a88f0c09870dd2132c245c7cb1cd60fae37ae1ef8e001901d5c6e5c6c5c2708997169110dc0f2412687171c82d470cd70c560c1307ae145c835b268442d5c3f5e662e1f3232574ccccb25b2429605f382b810ba2194822ea22bba889ec00481593152808226035d5e5e80c400f10328441488a219805c8003300ae8227ae24386191c6890a28b8f24440108e9f0a3830122d34406c3cc848ed030f352832e326a74816109287cdc50184f00224797973dbabc00b1a1075d80743da4a08b0f1a5ab8628ebc187969000262f85143175188ace8e2020f2ef0102a32322243c3688f285e8490c13137211742373217e81282128dc0ccc074a04be8078c0d229b1f31648980886c669abc081193048c0d3033300300020310187cd0e043869824427944016343e88c285e66d0e58701887eb0d20f398832202ec08c4456a8484889484a101960ae982b3137c4ecbcc4d08205f323f42202120a85ae504c4826e46306075128a64a8c1017a4cc8c626062ac508c888a8c882c991a423740e16387170e7469a103508c604437c82c894214b6e60fbb0a7ccfdf6a8a65ae9e6bca533023dd5cc3a8e38f5a7b14505fabf6db62de21fc729f20ebff35e531eeef23d5d80411e359e1b4b5622ebfbe2590ba67cbaf9f74f66c3909348e52d67d7bdf95436ad5e071ff7921bfdb477b314d8376ac29f7b24e4f7fa67304bd6e6bf1fcd6eaceab9422e0f1cf8f35e411fbdc6b442353db7187956f0eebec2188b77abe75dd18430d3708fcecf9631d2df7b0620d7178ae0f60abe9cd3bd33eef9d5a9f41e3fef0de7ca7197f46b8f1a7d56218bdc4654ce8b7afba66ddb997df037ce6c9a3943552c8b7b71db8926b88b98d599a7054dab6c4c9c581eeed8ff26f196fbe7d6f00fbfa69d738eaebabd5990cbba18716626827859eda31b4e4f37e5e3194f8432d35b077dc9c7bbe2d9c96e2d8e4ca00d41542fa25fe1ec37927940b03145aee2bbd74e68ce1f4179810c67f73c4944789a3b6008ddbfe6e7bcc106abf6192ab02d4736d31f535e31bf3c7445c14c0fd475da7d5114eaf693565e151e226cb7a2e317a8c11e6bbf59f36fbea27c0a18d555a6e3b9d326209dc3b3db4356e3d3f853787b16fc630eadcbdc63a6330b096dcc208f9aff2c78bbff0bdeb2829fdbdea787704e6aef4677bff9512e64b21c0af8f704778e1de965368ca321c1c1c1dab8acb8b9c279df6f318ffedd3ea2ee8d7d1ca8fb1971e73291f702b85fa732c67ad5edf68eafce6802a35ecf6d78f23cc50479391ab0153c2497dacb45f79bfd5a62cbb18e061ef34767cb5f51bd7dae4e282620b7ff77c7ebdb9967f8b5b219e74e7daf5ad7d622db09db7560fbbc6f9563d955c5970697ba5d1db1aadc41e0bc9e59f9ed34877f4d8da2bfe9ddafba969bc73ce1b2f2b24cfd8634af9b711e70caf05583b758434d73ce3ff325fb914a02bb53f632a259656ff4ae54a40ed5b56d9fdadbc478cb909c7a7349412242e04c83fe98f3edfef738c5266190ef756ba2cd3c2b529cb88b8aaf0ffd238e1ef34f3d0eb003fc77d21dd3d6fcfe9a7918a3d6bcd9dc33e35c73573f8af29b8ceb5724eebe6b4d7ef995c52f408f39f3857af77be749bb20ca7ca1585d772d6f93be737cb2baf12171413e6c8618edfef58e3fe3d57976cefee734a6ab9be3f475396e16c6b8f8bfbc5bb7388e9d4512c3da2b6706faf33c5d5d7a86d1b932ccba34308bdbcd57b99a5b63166a157ff25c6d7636eebf4446ab00031c7197f9ff9be9d6348c5ba82bfd37b3b7ddf52fa3c21b442fd3c671cab97f0fbf869095661e62df1bcb0527d39a6b3894585ff71ce14c30b2fd4145f130e8e9cab52add2dbc8d9756e7e7ca753e5867b2bd60eac29688c7df4f17a08a38fd943296cabbfbcffc2782b94159ab2cc5b51a8316fbbabdfda574be1ca8282853f5b2fb5d5f6dfecfb13e4dc5947eeadef96ffba9d00fb9f72564bedc6f37a8d07ee73dba96f84b576cc7113f8b593434e3fc4945acf84deb9c6777bdaa1cf99cf25ec6e2bcdb9cacd67c65e9a707c56db2fe101e2065a4ac015639d7fbfbec71d234f42ef37fe18a3defe4b3b2d1220b45457c96bd5fbc61d8f10f1be927258358ef2d26bca329c27d61d7b7f19a7ce38e7db25ce502c23dc1c39fc1d42ee7785379bb20c07c72a4295995e9a2796dbf7eb61cab2034ebe71df1cf3ecaf87b40e3be3b67b570cb5cc986b22482a2f9793c2d9bbcff90ee1465c21ce5bd23971d694098b0ee9e3d5d6636b23fcf2fb3978a6f376fffdad36ca8ee5e8196efd7b977b6a2e7d1c53d75a61d493fa7ae18edf1242c7f656f837bd3a625f7910fccd9b529f798cd3fa798110f9b432dbed6de694caff03ee39e736f389a9ef965a1ff8bc2dfcd1f64dadc6757a0b0e2c6f9f15db5a2b9c51da37beee957f3e77ce50ef1997b07a50bdf6f9c36b6fec5e57cd03eef7f4b7eabce1d776df92b503aa2bb49ddb08e7bf306a1ccdd2c1b593f34d6da754e26abba05d32712b5596e5e0c65865c551f6cfb7bdde8d68b984ff7f18fbaef8661c93d5869f1f6f0fa3841243f9331b5c6eb839e5fc760d658f4f583880bdda1a719470f3dde7bec1e655db1c31957c6aefb129cb7088c02936100994eae754f228d5aa2b3961d9005b5db385755bfaada6bd06d4f3e9a7de15d6ada3bda61f6d6b32854583de67e730779c2bb69377130e0e0ecfcde63b1dad4be9d8f0dcf494efb830e15e4525cb726c6e2c29ac352e86725b0c6dfd5c67db4d598653ca62cdc046ef2da77142b8a9c7560637777e3bdff4525d7da6a62cc39962c5e0eacfab87137f88e7bdd5946538482c184cd82396d1d2ffe996389ab22c68ebb20c27cb7eb4ad49d0c693dda8ac1774fb7d97f56b4c79ff1836b1a962a373a3d2503a8d6a926529df751af537cb0595d748eb8f3d734a63ff2df0f8fb3de187fff26ef16781867a6f783f95bd437aff0a7aedd456ede1e774d7ee5550e1ed57662ae3febd739f0219f384d77fce27de3c7b14e06f278dfe4a197feed89f007e5965e7d97ead658ede04fada9965c4b64e4a2de72598dccfcca99efad65fff2681cc9bf36db98c9ffa5bb51a784fbc3d8e597b5d35d469f8bb37d6327a7fadfd368fe05fbf3df7546b4eedac5904fed22e35f5b77a18a9cc68481cf1c5b262bc33c63187c0cecbaff75cde2e3fec170496db4d319472faa861bf1fe8bee74c27dc96538af93dc3e28aa7949446e8e9dfd60c0c3dce7a53ea6ff6bbd73268b711f2b973f45b4a5c3db0ebd591fa0ab3f533d7da812e2bf47b52eb27d6bf530e7c6fffdcb66bbbafde7f6e607bedafe59eeb1c35f5930ccf7bae33d6e87b8531c252b7c6d053725aefc497eec9e7d440c4b3768c79cc1c76ce3310fb9e3153893b8d78660c70acb1dffae208bfd6585e60db9b7bc61bc6caa3ee16d839d22b73c53f57fe7705a4b7705b5f25cf36d61b2960ad95dd57796fc6f87e31bcb67dd708bbcc594a3f01df25ec5a6b59bf8e504309c47c23e6d7475d71ed1886b1e1c77e73fefda7df5e0e06e61d5ec9218cd75639370eb7be8074d36e6dacd3ca6bff34e11049629353a30ae2c150aa9fd34d9671252b5604aa965b62ad7bd550f7a94d5986c365d98e05816aa5c5fd66dba3cf5b4b532acb70b20c27894dce4d96a54e3acb36df9d6e5096171f676d37c698d34c3feee2726b6f8497cb8d71beff0137fe0c73c49d6e0f6dbf3818a7312c3746580ed059dae86184fe4f6f236f80a5516a2a2bbdd794655a571ac262c0a7bfde78ebac35f37ca329cb98dc585ce069ff8fddf7cb399e329ab22ccb9828b1b6f8596f8cb5bf5ce7eaf3d7627e3d619d194fa873cd3c8b5c37e7de5a4a3fd7ff5e2c2cdefbfaa9fbae57631db554e90a6fe18e10e76bb5aeda5b216bf5936f6a2ded58f205cc4cb7fc1feb5dfb9c5b01fefe3c29f5345ad8614d40fcda767aabee55ca1d3f022aa414dbaf73cf37c35ec5e537c7eff5c772d6c90fc0a59ef7d38d37e4964f2abcfdbc5bcc679f9d72e9a7f810c78feb867edf7ebf145fdeae318f5562dfa58e42533c27bd5ff60c7785c2d20dfbf676f3da2bcdddea02addf73e3ca7d94b2df2728a79bee4b61ef3f7edb0db0b3b792f3acf38c18db02e01c6bb670ffada7e6923b41b9d452728fa7fe3d7f02e08ae196f5d36ae7cdbd09993b8f98e62d27cd7807cd4bf3b5b5f7cd21b5984bc4135ffe61bdfacb29b74cebe38c585adbbbbf7103794cf1ee16674dfdfe7e15b59610f61d7bbf98f38e73db3dfcb4532b69d45ce49bfef969ed7c738937aef9f7deea0e2dae796a263ecd5c436eebe5f6daacca32d20aede79e6b0db156a7ffb3ee1939ced1de9484b95bacf18756565ff34fa5f672dda7fdb64af851bbc7bbabc7f7d24ab3d632f9b55b5a8e7196b9533c0079fdde1a6e6fa18614df93debe5e6df7b5167b8b4d38ce5e29d5d97278f7b43e104a2ffb8e79f3ba61fe7963bfe3c7fb4ffcbfaf72c6ec69b713cfcbbbdc9077d8359e1c7b89b9e49ad68d279ff3ea5f77ef31ffeaf3d7f6df19abc6d74b3d2fbd3e5b597d8fad386ab927ad1e67de4b707e5b27a7d14fea631600ce5b5e9fff8cfe6349b37cac37bf784ffde7e4932ef16d8779ef7b6b8d547725eae433d28aa9c51dd21c005ffd873cebfd3dddf92651359e9ace0de3aed2532cd4434837cd7043aee995cd29a5dd479c63ed724e2bbdfa6b7fe5d3f6da2d9755f2ae3e624afdf5dc7b1e5d719d17739eef8c9b539918e60ae7c6f157bc659c727f9ed06b9ceb95757624ecd47eebfd2bb533532b05df0eebc51bea1823ac304abf567fecb9fe1befcaed4eedd2ea4efdd5b0e72fa129cb521e55e21ea86719cf4aa51c287e7efbb7ddd6caccfb3cfd92d6959e705ea3e4f84eacb7b75a9ab26c87233abf14decf3be67dfa6e63c4ecd36b7a2fa7f6d7dca9df483a7c73bbb9a6f06e3c3fd626ae88939a2d9c5cc34eabd67be2de355a44b5587a1eb7f534fb5a61ef9a6d92ef86f2e38c21977477ddbb56996cba3f9ff252bb3d9498d62596ea98ef9697533a77f557c9beb2cefbb1e53b421ba5492691d0763a31be3aeafcabd57eb44d657320ddd7ca2a2db61cceff4d59a6d2b66e4304ae3eef0bb59dbe5b0ca9a9a475a421e4acf9f3cb67e4f243be4d59e6531a8a97f8a9d31d97654570e4f7f9dabbe7be5ed638ffd74add09a5e272904c1da1cd94d2ac71eef8de400be19e944ed9699f70e31c899a6ffa69859d7e9be534655929cb9464f45aedf5f5b0d70aa7fda62cfb21ff685ac9672b9564f0ccbb7eb97fed54c329ad29cb4af4daaeb59d1ac3bd65c4f59ba6dd53fa2bbfa5345fdc3d3765d9166df321d5eb2dd63163ae7fe5136b53966d1d4765e5f0ca0fef8dd4fb484dd9dc16f74879b4f56bed3f3765594fe992d6b36c476ebfb3b6337e9f7bc7389bb2ccc4ad54a54dfba52cc3c9b1d9a2a764191191660f73e6b5ef4f7bc7d394659b36f15296e16459f7f3af60ddea07889b239052befbcd714a9efbf7d09465387805c44d2975cab2ad53c177fc7c23ae31c23ab7b5d91a21c71c39adfb4b5dbdefb508f0e60d21c619431f7d851d755aed2cc3b18620b2c3c6cfb7c65df66f7187515447ceb0c3bfa594d24a4d271130e497438e31a77cfa3c042b33af3edbb975d533563a26febd6be9219e1a571aaf10cda12dcd3aeeeae5e75d632f0795f26b1abfce59fe48a1024471f038e18d7ac379a5a6989ab20c47c7e6089110baadf34748bd9c11f30883202dd57e5f38e1d41553da4504841c2f847ac30dad8db8a4f52ca21f780871af5e5bd927fd306a4025ad2f21f281ad5af7dc358f5acb8b79e77d522238ee8dfedb8fe7be79c36eb588dee0f7fe5aabef91e6a9af366559f73de835637cfb8757d29d6737659949c4831d682f6fcf3b632cfddf979bb28cd3543e221dc02fb3ae7067df4d3710e5a0de3d6def7072bcb5f6fe0b911b70de9eb186b2db9dfffe6dd4bb23e7f95ffeebdcd012a974ca68039978946ac55373639d216283ce5deb19221cf09b61c734fa6e7bbd4159868313c50607af541a8af500d10d748539c619b9b772527cbb10d9c0737c3d9e1dea2cebaef3860c510d62863d7ac871bfbd7fde6d6e3220a241e55dd7da399cfc4e8913e526cb6e2c0888d6d8d1f399e3e450e2e96d9e019f18664b67d6dad27ab30c74fef7fa9b69cd300679c33cebd6b2ff4839e7a62c838194374a2fbdbf2f8898f6ca3dff9fca8ca17641c694e39cf1fc15c21d730bf2f4b2ce8ca1b5d4decd827ba9eddfc72fe3fc98c215609e73fddef20fbddcdaaaa05618a3c591f74cf7d733052214d09be7ae5e6accbddf1146407402d9a99471471b79cd326bd19d17221344f83fb6daf75bbba7599620d3c933fd31ea183bc49304ff5edcfb84fd5fc92bdc6ae8fbbbcfb6c2e869e6719ab2acf33e5d88d2d8fbde3eebcd384a2a3d1f0196d8573bbda618735ab108b086f5737babcfba56fdd1b89647ebe1fcbe4e0bf71485605feb3986dc5efbb3f63775d21c170dc52615c5a6a74e47d8f8154a5bb1913206f9236ce2e66fc4108160525a7b8dd9eaabe7bcf60319c279add4d0eb5a7790d7522aa94467e4eda994dd46effffe549bb24c55c229c28a8d3cc2261e71a3d250a878d4de340788ccc0fc66cc7daf7c471f2b2f43e48149edff58e309bbbd954b539631014412206e98602245f5c3451d80ba7adc739d5d577d2f356559c6248a88037362fa65f61b7f5d63ed36106d60f60871ff96de7a6de6119151f3c4307f9c719c11de3d46c593c6dcf7ad7ceeae2b14220dc47d75d41fe27dfd863367a043c8a3941ef3cf75951b0392cb1f77ec5156ef79a6a20becbee7dd76f219a5f53f1b406481fb2dc71877bd258dd4ca0af04ca7b6b5efaf6f94b44721a2c0dff47bfd6bbeffdac8411189d1e9fcf8fb9af3ed95e2b94434810bb9e510ea4cabbd7fd7954802fcebd9a5dc764351183d762ca5e75a5e8b25c526244460507dffbcfb573c4d3d75fa59864345f4c5fedc46aafdc6fc5b696704f2af7b7b8e21854e8820f0a3e43d623b29c45ac26885c88b4fa7bf7073396b13a22eb2ce79464cbdbc14de9c653829edc4dd1840f400286ff67e479ca39e1e662a440ed0facf1c75ddf6f74bafb52a206a40fed556692fed1c63adb3e72930440c9097cfeff3aef14668e7e7c272b97faf7652bbe3cc5bcc1e21dd724b9f3dedb06bb135d752567b33fdf5739ec59f73d6bf7d95127a593716926ab929a717c66fe3d7574c9afbeebed77ba5fd305b01efc77d42293bc5b6e705d05c318637768da9b4b82aa0d36ae9e4fd6e9b7fa63401b26a7ea5c49ddaba7384088872d7cd67c51beb5921e6f1a22ab684557e3a7b9c3b579b6d4c9c76626361213a0085d4ef3badb53c4f1e21151b9e9b2cbb4189a8f877d3fa35af78d2c93ddd229a42fb291d254a84104931441445e9a4ca918289a038a9723c4f693988baec10da830bf25a7808e97152e55c89c243280f1f1fcd2344280b1c16b81216bac20d212b9470085501ca284485184253d0c235d4161292029050145e0841a17452c5107ac294b1c6d97da7bfe67cad29cb747cfc4e96e1e004712537555251b2ece7a4faf13c369ce7dc046d2b4efb8d47e3b9b9901072c2975c5e7fff87dd63ec3d1edecbedb7afba476e879a702bce344fbfa3e59c637db3448809d44afea18f787e6e25c5a62cdbbdf4356d93c224b4045ab1cc387e19bbdef87f53112125f48e21a7dcfeccbf97309ab24ca57fb20c27cb0e7684478920bd6d5a8692502584844ee795d672c8f186184b2e89d0119408ddb14346a83bf25fe58d35631d3fec382062a808d18e2ca13a4244b05f5fcb299cbc4708ff265273034343b0f2ef1a37c5dfd3e171f41042ac3b87b26a3d47f7d2563a73b7dc46cdad1c527f0ea9fe1c4ea923ae7174aa21d5dff64caddc740ae1c6d8adbf70e33e37a53d08726e7e3bdddc47e83dc74098f5536a39b47f6a79a1fdc19e15d70c25deb67f3c6350c807537f5d2395704269a1e7706c9c69eeb6c24aa5f711bfd16fed19f6ef2daf747adb83100fa68478cb4a6bd51ee61d81423bf032f32fabec114fae6bd581e47dd27ced96d5df98650e309f79cfbfab8f12568edd88dc7e0a7186b9db7eff6fc3eeb9e9b4f1738eb9ff4f84d8889ae23af1fef3f7a87bc4c1a6f5761ae3f632fbde6f806dd77dee19e586f3cb1e45c80653f2ae2ff511eb1d799d0808d5a057cdb78e1a5a8f6bbf34e8df434dfbcdb7fa1f235fe3ee5ee5bc5042d9f39eb83b119a41bf71e33bb3fcbec399ad0c4231c890db6fffa7bfef1cb9244008067ef688fdeeb3734933ec2f88bbfede31eede7baaf776419594c30fa5cfb1cb7e6f0ba09dd75fecb7d5f1db0c2d2a422ce850ff4d6f8497ce8dbffc406805b2cbaaefde924a6cafff2ad8747699a5b418c3ade94d41965ede3dabec917349231b2114444d6d96d2c21c69b5f082113a41c45d7f8ba5ffd57a1bed172113744bf1b73febde39a5df97a0da0a3dd65c768afdacd48b100966c774d27aafcfde66e9bb94075283f3a9a3fe32faecabad1789501a157e986b9efbfe6ead855984466073b53c632dffbebafe8c45480431d6ccf9cf9fd3b9efdf213472b47eee5df5fcffff5e4d591602ddb7a7f7622ea7ce796b5396a17a2a150201f435dadae9fd57daadad29cb362765843e60e39cd55aaee5f5fe7f6fcab231426740334265503fa3be77eeeb4d59f6c3b1f494a7622120e4811f61dc98d36b758c3a625396dd843ae07fd652e65ae7f7d9d21be200e692f7c92f9e36e7babf0d946203a3d8c01d1b08c5063ea9b1b0086d205a7831bfbee33a73aeda94653a213234d69fd3fd71acfdf31a9f088dd16ddf76e7ff3fcd77d36a80900636de75d289f7cea62ceb364df5732af594ce321c2da10cd0fae3957e729ef5bf369bb20c6715c280f693deabfbb59afeeae1054217e052ebe8fde6dbde5bfb3765d918210b50eb7da53272bda3ce389b7c97d23e5242158830e3d9b7a7b2dfedb72f410951a0df5ea3c5127a7ab1c4db9465abef242446ec36ef5db3bd38729c532bad88d004a4a598d7eea5a694f7da4d599624cbb2ccff947ca7734212c09f7f08bbf7dbfb2d51fd8473e3515dc7022314469ef24e88f1d557cb3a2f1891e35b35975bce3d2185a62c43e98d6f5e4a962d097db1bdb4956b6efdd4b1b1627344f7dda65151adba5f5252adbaef59968050046e9c7f563ef9ed93634b4d59562aa1b64e55e1220401fce7def7e73d799f196a2fa084ba083de052dc6d9d9bf7cb44c801b75b0db19f1d6ea827a5a62cc38992659c164d335955841a1062c04e888b1965af9d625b79b67ff7d016ddd73b6f8e17577dfddea62cb312d28246bf358553ceebb3fcd894657e53052094859cfd7fb879dc9ac20e61b7811016d9ce0a7dcd7ef69ffdb413085dc1f3a799c6bd219cbce70a84aca0f5fb0c39bfd35e083db4ce082d004aaae985d976ceed96500112ea5de9ec53d20da7f7a85002aea69cd65829dfdbde6eb59fd2f14564d94d014208a8d45bf9effedc7fcef5af2267da2bc697e3ccadbdfb0017c758bbbe515be86dcd54dc6abfe4b94a2d6b841b4f11ed95de6e59adb73bcf2b059d90e2b923fcddc61d05d7bd432b65c7fdeeca2d14f7f2ede7bcf0d74c73aea12eb5538ce1ec53c2dde7a47b64eda3a6d667e979f577ea51b18edf576c3bc5dfd63cb8c55b5fda71849d7e2ab3d033aff7479f25f6356e2cf43825ffd9e26ea39cf50afbe7f8a1de387adae98c56e091da6b7bee315b9a7315fad75bff4cb19c3ad70b772e2ac0aaabb6b6431a7596fb4f81c38a739cbc73b9e3fc5c0af9625d67b693f73b29e551b0fb4b4fefffbdd75cbd8642a5317bde71b690572cf313fc85fc6f5a21adf97b7e9dc039e7dd6b4ef1eddad28bc7ff39e22e398fd7fbeb6d132abd95f3b8abdff0636b9930af9cf6f2ba2b851dfbba045be3d73b5ea9efacb45725709ceba5fdda24eccaf9be9efb6fa1afb522816a2c219db2f6de67f447b8327b19edcf9fde18f31d9372eea3e658726da1a446a81566af778554fa997911fa85b943de71f696663aed98bf668f3fd7f84ecaeb9878d73a63cd90f76a8940fbc4985f0a37debeee2148e8a1bcb463d9b79e938e1a79fe9c66bb73fd1fca39628d54ca6b3de774722f07d6f9f3f8bfedd056cce3e8d9fa7c3fdc19d70db710babd9063d9edecb9df1c83c065d5f87f69efa79057205ce86bc5bc7a6b21edf407bf5beae7e7d56eb8a184445c3e88374e5b29c6345f3c778703ca8ce1dcd366ce33f4d69465a953c977fac8f506c7b766a92fff7c5e9af1d503dba1fef4d39fbf9f527f1e60ecebbe30d7ca6b9df8ef20779fb1a697672c65fe5d075957a861f733e22f2be539f0136e0de3a437f61d297743f78f27e7967fedf5cdbb8d4b73941cd73ce5b4916b36a2f7b6ef7e6b86146aaa71e03fce5bdf4f67ef5ff27c037925f57e6ee9e5f69a631b5cfb35bdde6a3937f5fed680c7be65deb577bfbfed970650f69c79bc7ac635f28db16abde1e7f8773e8359efdf1af7bbffeef85619c4a9bdb4355aecfdfe98c600eeaaabf7f67faafbce30f85142b825ad5af71af17cc1f69a7e9d3f9676729ca50bbcfc9c7b2f3bbcf963c9af16fc6bb9cff44a783b945aebec8b0578472971cc7ef2eca35f81edb8560d6f0d9c45a8347169c59994c328c610020061291a0100007312003048241e8dc582d1905cb691bb001480014c8c6ab44c2e954983b11c85411404410c8340000084186400214649c6b207a5e84a4baf2e4dbb773186425f343b46284b55f1c9f21b886bb008b38f7d08ac36da0b9b2ddcccf4626a462c3321d4c0a5e907996084247703f2563bcc669aeb9d820fc2d01f4f3d2ec45cdc4b1dd1addfbc9d4540101631ed342da08654c64a3cd2aa43f32a011268a733781105e54ec87e1012ea6a2010a35e4dc1e5f48590b21f8c13d7c8d813cffa9761380a90f9ade8e748b6fca7e817c810bbdff1d0c0574eb00664067eee8114798bb792fd313f41cc0c3ffcb6c0c88d100cef1dbbdf2e2ea3087dc36a3a3bdeb0e73c199b6325f1546c2864b24bae768e9372faf7db8eeb0265e490328516ade0d230a22bb277bb6ae45c6b4936bc946b895e379b8c516fba82afd5d83e1d4b92286c458a7eba4909414a92a32ebd161e74733df7192d49bde98f25774a3e18c401f59dea3ca4021ba0e18e660a50f3212a7db52534d9cb47584105ee9269629d41ea95899d4c0da4657b898e08f00f8bd7be30d6516a27b1d2a9d802ea16929b27f190cd8f2308d461c755516b29724404d358113e20573fb7d42feddc2a0d2bd3d3361896ab13ad0c8a1ee4fe3f8cb792ebf2ccf73c6f1b9ffffffeb816393df14870b5e0ffd1731d01b43925847d740bd3f3af2fc2ad08a18b72d456cf59bd09846a598ad0314420143a9b6ddc9f8bd0eeed0a8aefafcfa6368e8b13f762f7c810dfcffbae72e179ce3356119abd2beeef63615dbcdfc8a4defccf5da55f44efaff42eff60d9b7c952fa11b1f47f94f3db7863678a40c898bd08e76c595423fe4159475df1c41c4df7131c99b3202107efb1818a0134eee626fd50ac14c4bf2e88d5c4b77994bcc860f5e083ded4726bc2db8c356f50c6dda8bcdf70fccc2bfdcdfb0cc9b9decc4f9c71857f9f8d0f4594810f4acbeb8e5fa254748bdd4a12e1188f6f0abcfe49bdab3cbcf7d81aeaf4beca0a1f2872e326a95bce12184c68464aaca381a13d2a88dd9a93c9f4d388df0f93b14f5a0942a1df1af61d6e7239685210eeec32e95126aa6fdd07bf90bcd60faf29bdc2005231873b8ceac2fb8766853079d8884604dd88959a2492d67c44ce0a47b02975e59bbb62a27cd61eaf32e700e5be0700e621484a58fd100cfd1cea9845443f6d2c43fa204a10891952715d05a0608ee588e839ccc4380b9907e68aabcb40e5113f65b94f97a280a17a5f17613a6aab440a22f57b8f42b682d832f5c3bef15a77e875b65a5946853250a1dc18b94428a0d292026c066c91c2624b707e6a72a3f10cadf55e1b64500427915942984ab1c41997a2e3cf43f173f57a3101adc9c6e539efbcff33a303a9687038eb31a624a2134339de4d6a6b430666d1b5dfd8d865627031d26c678371bf463d0b0ca1fba37145a1b12d15f33c1c58a7c8d76d13f31e7c82bdf6c7b535c40fac7e24e1b3c4a752bf4efe2eea1b6b9f277e29fda324df57c26f6028e21cbc94f1cb8e15e27ef9dbe0a20ffdd4885ddeb81ca9cc7b9f0c4e515316f569a725758065e530691fff7b3e673f83288686d032ecfec2c4d96dcde4c8cf4e4f0094a6ca7c34bd45bd20e185aa7bc44d52f3681dca9af9c7eb68e54b0b60b99a07ca669db7a10242b8df6a05bfd16eb69f0e77619dc60968374c49c7da6877fe1c9208d1681de868345d851aeda6f1aba163c4dc68d6a6592e1b7354e6f8d6745ceb088e4e81919a03c1555d44ae1e8ca68616a2e3c649d11fac461f60ec5d2fc3d31c36dbbd9a4536f483440aba0681664f9e5147bba825305267770cd0af99b6ce0dc9617b21fd429e3644712c12e3183d09d848099612c4dce3fce6aa2da1265f0e4a0a66af8300368ffe9c97800e022540a822bb5461a2f8f1f474bd416453927ab2f25148b24e654690c6f7472a066fcd1de881d6898a959f314a8e827fd4ef6f0c3ee6c4317cc6b5b8806724fcb17cddfe18ae2bd3db821f2501cc04b9e334a6fbf5a85e73f03a84f9fc9f22601b5e30feb1fbfb6eccca6697dd3d7dc9caa2a170dd5569f913b3c14aec7e8688b5248e28796267978cb8f1d5d6ad5127968ccca20d25684aff17c3a3febf7318df70d4d95bec770b33ff58b1a7c83745e2bee8a71297009acbaf97e970fda56eb9f0ce6d89b6eca0ebdc6d8343c93b35a36c472b129e9b327e341cfac8dfb19a9dd01c09799411f36e61dd1ba06b936d180679e2d2e1240cf432f88fd4e45b932c2783b6b92256a49747f23185b9b4c8204ce65bc7578d1de21e4506abb690dc7160f788718a6a2c34707838bed73b046e50ea2394707299c139a34230370cc0ae85dc4cccd1a24a1c7ee6d51928f44fd86d2ac56c37917142f1d173bddb6b9660656c3295b27cd63824d3e6f1682ae81de04a80e9ecdd3f1b96378ada8903d1335d8d60c336f8a38416b2d8bbf11709308fd6b0ec4ac293fd72a4065432d0dd53fd9323003469b7e20bc8e7f8b85bd768eb7aa061914420cbc788f8f9495bba5783af4d6c111f377de5560e2958cf66eacabf1de921422d40d801d1a4f6d832acfd62e2cb19a10f7753817400ef10344ff79077d52f3deee9e8f82fd5255c3fa37237c5e5abb836263653995b9b7be5da891f8b8cc8a44f8e6d0037956ab689ff1ab6624564e14772dc616a48062f8cce7cb323b92e3bc8d14d08616b025424c7e5e600741c9c4b2e09fcc1f6a70fd9f3c0906a72d3975e0f182bec51d200051f45a0856d99652e048876622e0ed5b2c07faa1888c749ddb9cce9a0391d300c5e94e5a49fd43560c8c2352ebd6aa416765b58531628145da39a7bd322605cf2f0061efced91b802e63d50382bc7d0856abd4f017813242b602f534a1bb4f03e90b9d413cd984115931088e805d7c0be2dbdaaa90adb341ddb1d3e801531ee124f332f53ae841f701089710c1e2ed219d8e4c863448a2f67ac4e72634710422847286d48bef2366b78f606ef3aed1ee3f56c2e44615b294fda7275833991081c525e11c4bf6e5f1d9fe5f77d03f76809872de4be4927593c6b64d0f554a3630b2277ef66cafa8e39cf6f7702ea0add7c13ce53013d2cd1ba5c8884a7483a426264dcd4887ff6d7b07469ec651d060842b44afe989f25010c96471a4df8948ef043f3770d3a22f421d61687e40774ec0d452b537cca76e657f0526e956494ba992b8b485f6aa22f38168185d158d23156b0d916bb8c5d62544d67a09aa92bd41b10ddff32922af77392dbb4c1f91863141b921ed0959ff2b53d1d8846f48454592b27206a3f6a4f04cdc1a7e34206f68108c0fe73cff22f829590ef3e61758a4d20c1b64e8c361b2ad539d14fb779cbe4d921b6da26b605eaecde9f5110ad29324faca5cf79869035924ea917f4f69625f55bbed36ab94fb16800f3255f353668565700a617e378e578bfdb9b19704c5ab5f6b67baf2d84c12b49a736f1feae2feb7db3d462be6b09bb09d0bb18c871333de939497339b017d99946dcbfc94266cb5e6deb46f53b7eb2deed2f642df66f5265afbbdfeadab977eac94879ff9a823a0fd0b08c9b2beff20e8a3e947e29e0a69047b18fa24e4aff947ba1ccb998385d6423c7bbd07006607ad4946c8722d3fbe7440dcd28371b346fd4346cc72133c14c0a9a9eef6c10d3c3a0e91be86ceaf7e7a60143b0c2fc67094ce811be0fd783cca5162bb5aec0d205ab4b2d506c91926565962ab4badcba45ac71d28c02cd9f3f62681c212f8512314427e895096d921ad4bf51cee2b3fb2d8e0dac0673529ee29b425140d3904490761043a5a5fbeaa8ec53ff1a2b47caf733653af4e95cf98efe36553a723f252d94b60ee7495096518e8caa46ec2ffc67f6186dbc9b73ace2ebe60ef4e14e6f15ceef95534dd4201024ea757bd9f95e9796d1ae33d184e76e93b9a5da10ddfaa63cc3ce799eb35a0ff234db89946f58f31b0b4c4a42e6ab4aeb0e87ac6536d43079be3b43e32fde7467756cc9ee5c16bb3c375ac75bdb650cc47713ae4379c9509965cc8763049d4d475fe5ff768bc3ea77cc12275a91949787e2d3db165c9596cdb55d5eed1b171f3473bc80f3470ef6a0fa4c5d3cab6733768ccd76fb64dba952c95e2563990e4d442d2875fb1b48b5067973e0c490ccceca915e163804246ac9d6daa740b6e5eaea0a0ff08b2791e596c3d2384236580b9f39b1622c58cdfed790f726071c8cb872fde1fc83f5d2e0b57b56cbb216a9f17fe08a9569413f61cd7529876bbd6941b80a553de28ce35a32409d412b0507d24f63c66fffa65321caa79d3ae7872a56155de729ddbacf99f39b485f3451b618d689eb5ccf3d8620741166b41bc1da3406401c9d1024831faa2d95e0c6042edf66c9928107ed3ea82b80783ba585e56eb5592bcc04234f97b6729ba6050acb159a186ef2b5814c248c0a2cd346c728fb0d4c7fda47336a1e9f24035bfbaf506a2592ab3ec849db155954846f9135ae0c1fdbe078b4b34042cf6402e21d67bdce431b8be6545a21953270f733fdf6cd5950e1132c841290bcd96913cfa0d5fb1bda346bde371536ee4e44ae27c4b42e53817dc6f9a291c4c8743695efcb2ae4ef2cec7a13ae3d5df1414b19005dc13d56a86a8403119f195de5aa47ca2a3b3533dd58cb15a8f8edeed650e7e792751da58225887c046ae3daa29e6ee23aad9767029bbacc1a923fa2874be82523c4aea85ea5a44dc4defd03811863f22216d4587a43be03a1a41af2c3985676b39b31d3ad452f36a8f651337268229c96554355c3bc5082169f04bd3eba4cbe19a48988f3bbe2697407a2d280f0b3535510f5d645070ca24e1ea0c2c2ccc89383bea5a2c3e719b84df9588283ee8f049f08fa2582bab5f9fbec701ca3e96c7281cd421747078242635ed6fb8b5eee90ee20e45d88e278ec811c6e087b497adfa6f01cb4edcefcb4cbcd96768010e4896083694a81309234e4d3d24b735eec2f184a8a1d5e4c7617c3bded87014fed40edd08b43affa796b16cd7f789b6793c4bedb4e1aa5c5aa49cc1d0c3738d1d341d0f80e880d5402ed72c8cba15484a8147ac5d02e415e06a54288ca41ef90396897425e0ea52244a540af643eb4cb909742a918a212f4caa05d087939948a4054cc30f44a401723a4e5133b5c3dc42ed75e8202c804103340770a6962a84d103883082164e62075520d754119ba8542c71216613ada9a2804e4822719eee007117b28e53a207327e4ab653afafe3423f801629f5d80931ebbdf1db53c4788da5cbaaf221df02b05be8720a38ee74150c4404dfaf6dde58188dd6bd2ee54ba54d43710bd3511214cb5b4ba2d9636c94b6144210ce99851d56215e5179ec891329405aaad67b10b045f3b80ae79d7fc4583acbbd8983eeed4f2b5f46af105a48bcc2e035e4a7eb578dde935c0974b57dacc2bd661d7be4611dd383dccc5e3e3e45304b20fca6e30eb109b622c32a9076737c83a944d611639eac1d80d643dce4a962228fbc2acfd28ee5129c8229f7a0fd9a8291bc56c43ec8db18649399c4d204b50f68559db510e6313902538fb1eb271caea9b72fda828633bc8ba3e3540d6a3ac74a7506223eceaee61fd265e28c6a761145cdb2b29e17a3c2807bbb3ea8325231e105c9a8cc02e5a243cc89841d170cf89c25010e655178540dea84d3915efdaa6c74bf99af6775bb86a9e02eb96dfbcca6b27d4fc72002b3481c94015b76d551e4771b7586cfab3b0a5958c2c124256d170899ec46db059b04e87d358d6ce8441624895dca4c8e117f9c40b72549d9d1c480bb189584054e11b786b80d9e543e87d37dd888cf60bb7d6c5ea23a78c58ce1d3d3fa90ccb5e4b1b6aff0b947d576aef7001ecc9e014881119df5672e3a56ad1b1d4b541a1e8e44aa2c48c0cb75db46ab03c92b667a194a8292e32d6a55675f5bf9cb10e838348c16b4ee8ee31865bb0525b01c61cad4b7a4c00ca170db011f3056ef7d2a9cf1117cf17a54dd9854d5a75755f97ea5a012b5daff5403a9bb27a5ce52cf500fcc4209aee76e1e881c3ca65dccf0c0256cdc5cb33733820c1922cf2c0de74ad71439c7cc700ed365a9b80466b86ad788709f3c0df47df32827e3d43e0930066820e10ec62cb015588cb6d970dc63c1f624904208121fe89e5874552478d33c3539e5c9e384318aa100c8fe1377aed30abb984a9df34bfa19639d02e05a61804625ef4a4c3304cfc202c4f283a6fe10c2024a5411a8a5261a17bdbdbbcb4149298850eced821602a4804c611ec07f6bd22ca9151253c7999144aaffc4b8ee9d220139deb787e6e2397008f153a7f8657e063d969067f9870037f90a08abd891e595cfe3fe6689335fb671435361907ca5901c620bdd72e7f2093ae821ca231d192aa388f134b8fc65c0deb56416b3be01f314cacc52cadaf64de5e402d2ca1ac11d1306b9a884aac884e0c035cd89fbbaf220a149c78c18abf802561df182d28208ccd1965333f559311be7156cc7e6c115aef44fb982b369ced12a1761e43e6917b5cd7c6a8be51468ed995e42b4afb1c5e390bce4ca88fcd019551c533f4bc94ce907791d4549db1f2f69b12048d53a1057c2299354d719cb5d2a55a218e0900962173b63518f0ef214feb70474ea6c17c9903a5f95ee475074b5699c278bfb4f205450b70fc6dbecea019155a4004ca7d77d1656cac4c0f58bd6d17e6740c4970ea09baaad5f51a479019663732e40c079e1bee21db47d5f3f87cbf57aa99fd1fa37893df853f73d16f31b62051e17ef5e2422b7acb67dbf2bb897deacaf308d48ce93d0ea62bfdb13a556182d57399fb3e5f915d82b5fd243138593d433556ad2dc414c766b35439efbd778083b3015da8285ff019c5f8ce9ec1c5ac104701c3056052624eff2174b2efe57773a7f05d54d5126557fe2dd6e57d258184fe5161990141d84f75d52bb6ddcde9344d9b7ed5f51ad16f25ae67e15801a9190b9070b6788d0ed5a803fa4d0f04c2a6686c6eecf252560889526b74cf027ec65cdef8d3578d36a04d75ccef31d4911baa4aaeca9f0c89f6f2ab818ee5eefd6047e622efa3ad70fc7bd1fb47942a64ce085dccb5cb50a912262bdc48adac52005f50dbd3b1d69e08f6ba2653dc09c282cfa0fa19cc6065ff5e75c7e963a9add3bb78bd19b038367bed94aaf6fa7c6789ff77d0183dd284b4cba069e12efbc36c03066caf7241f1b72bdeeb28b864fdda8ba9796b3c6cc185e7a76abb46f4a165db664e073d29249619d5af5935ef9c9492154f82243a9f2f466212cbd030abf72cd91346a405fa790d131b3f763087a13e55ab9683d607802535a71908e6709cfe89116d5af1a4137652e9ecc374e9f2a0fb7bf060572caa0a0fe55d097367ecde0b36ef30cadbd3b0e5619d837a74c96e54e750de95623cabb2b7930db7231c264d41be6cc02c0d889efd9e7ebad53c0e415d66f557e70b73a6305d97cb7c9fe79e3b868c58991ac030fad5fd0e96e8e42317b0b179025e39943fe6226b94dc488532b99eb0650460dc07412af3213a4665eb9785347345d004493ced526e8a30c008e1bff16ca18b164992b1f275ac201c6d1e559fe9c928200e235c74b21b90ad02b16b284734f2f4b198488fba7670bb61997e923cc3d74760670df3563a2bb0a2ebc90984f0117bfcadd0b0349ba2994175816540bf429ba4dc3ce0fcc5c2a23a37b2dcad2b27a3c85e99ea2e45c878bf94f27d46809ca75c54897c22f2cf9146baf0738788a6ad97ac5d1bb975036e949e0efe2561c20d83c28800b9d1d3ca525aaf3436d387d73590bb2c4e3efbe79e233e7a333e50c639ba07f116fee5f6f20c1e9fad2815d848c89289677525fcb9c21a662bcb7e70dce7d688ab492a732500c526b47c7068f59e2d1cf60bbc60b7e073496b7a5633e301e18bdc2f9c1528b6e4c50bdce3d0699dcf6b50a199711cea0de8b060c894fc8173de47e4e9f39f8a11086ee6948333ed7a1dab80e7254e963eee0a4cd300279040c1ab65e87b748634cc12d95e90d1db63afdd4a2677c7941dee18c91f2d60b925cf036670d85b6cf70fb960d105ffc4851de55f05ea8b9553f501ee8d4b8ff6d787f32b6e9ac1a287f31e4efa31fe3b065fe8580d8397f1b8fe7a1ce09c3275897b64d10f86e82799cbe34a5030e12b46f53d7874360c6ca23fe5c94c812a7af117f1ebcf81c0ba8edccffe3fa11f304cda6141f274dca1cafbc92d3ad9d9915d2239e5e23ab6f98d5663d278f57a0897e2a44587716e7ca993638decb3a9b46850993c005ad0449168d7714cb4a4ddf8f21590d1325843cf60ed1f955ec0edd5cacbba4fffc6945f6c30a5e378593b2d291df7d47eb48536cda03903d8e11025cf14c31309850e69da5db39fa66486f86727adcfaf3dcfd3eebbe13ae3f3f40935fd0715ea8340aa8ce5462c2384d5bbd97380fe612a90f572ac2123f1652026d168277eee51977d8f9ec0bbef5cf41d7f0eba7c33a1bfeecc9a375e0d3ae7f2a87e82ced72b3cd523b58e7fc8198d5067b23f1fd3ce4f4efc39b52a71e527998792ff06a8afa95ec28f113ff82fd9e9f078bc2bfa1c2fbb35441d854a59ed4ed0b6979b51fa850c7bda0ddedc14eaaa5dc26f9ca8780dbb9b023eca119d1105542e50645f217ff00838f4d901d22cd8dcb00c5c9e8fd4b66a6a4878c5501232249d138836ad0d31b9780b2679a915a65537c2f564181bedd77d8a95c7d42a74754264f8a491250f38adb64bccae2778cb269fc8c6d8ca991dd15e5812b174e1ff9ccaa7f63963fee46c0e49d63386a16d850ef0f40b5569a1e931292fc329cadf3f7152e635a1ffc6239c3cb6cb8d67a544dca7d6d0d7d062afb7b050fdf800da9be294e82c50402749be5341dee9fe9cc6b71f98be7a4d6c0ab4eec780e1b6a8bf9799d540da005b7e28ac067b13ba017c2af50b162f4fc2406e927427fa761b67b6e15f3e7d3eea1d8056f61d51cadbeec76739ffa6b64d9f25075638fdf5f17a9fb9d61f208f580e350c9fb53899fc8bebf7580b788dba697b248a8119251f5061ba614469cb3335f63c1ea128401420610bfd5e211bd86ca202abfa608f0702fdd17d0804f5094782364c728001ef3dfe78d07ede11d6f1f49eba3fded30707c3a024e4fccf7b653d0d4df627aab87d6fcb011ea1da6ebf2c3cc31d6f25a9d2356dfcff531bafad9f9c15069e24f4a1b186f8d01e3446dd7d542a9c690e3adb69667def8f147e99c0f85452fc37f31f8e6a6622cf58f787740e44e7e81863e9bf5d3102b66292b23997a74dbc6f0d830cc221be41e81be594b153af73b58b34663b957db8f6c8bfc64c89a619118f9fceef93827118bbaebe17dce2273183cf7a5eaf1bbfe2d993649a7021755c302a74a2c134f225afb3d08ea428763efd5fbb3626ffddd45dfb59f6bed167ce3fd5f91e7a9d53a218ee3373ae703111c54404e53fd367e825b89eab7ef0903ad8bf617f877c3372bfe8097f9b71b643cf94c0f94671f3d36775a63fce5f36d6d5bd0675d9d0f73892eb9a04bb261fdd6bc3554bda6568a7a31bef3caf6ba6db9d4dc9759e6738e26bee0790a7250330f67f863e433917fd91c0b56dda19893a4c1eee01d683c54e579a79c39b7e377d04a21ab39dd8e6aa2afdeee8e7c0eabd50afc3545107dcc663d7a17e958e5dd194d8d38b582cc55693c89513ee2713813356da0b47d9043c38661a89c32a5ca2e2bbbc45a7883f9976db1476123f6aea99f5cf881c8935ddf4f6d1bf496ad94547c8bdc9d7cc74ad31fee869ef6efb61687e216eff660a0ed27ce974192bd7f0fdd3b79964cd919ec8b599cfc6f07a33f6d8abed273d51d533f6cc113b17b5b8eaedd2bc93d5b7c50c917bcad499eb5f31f9d26bfa892da3bf93f4b20b8e107bb3eff949ad23ded195338fad90ba13eae8bad4a0a541b881dc36506d86b341846db86bc6b506546dfca859975d42e49de342fb718bd17c15d1c75ce170769709b67a10328ff471bd764676473072cc5ab9b1ba0d096fc834665b3f1cbf938605dc241b64ff99584dd30273d81df52fe758e02a0547ec3a1acf1bc7e0ad4531fea28b3336814e326144109ae2c189e3b0a62db3fca2d921c67fc226b26f16055e537a5b88679c10633d0f8135143e9b2e8b672f30ec841defd766fa955685cca188e448c3f82ed5960e84aa9787e1145ba19bd97d74e76da1ba7fb9de8d0ec184da7c0f8a20ea2ca0a7b51d5a77786b71defa251674eb089401d7622c4befea7cef43d2d734fc2854cb30aacfe307cdd868fdb29841f48934db6ae3ed18d1b36c1c05e38049b63b87305e22100cb34b383b67f068d3df3b1aeeaa4153e451834d3bf376a81a8ddec8a8c82c4b6c6a56ff94c142c1727635b45004badb22592a85235f9a6340d8e1734a6ea432a0cb0e2a462f6cbfdf11ed7ac2e4a73553c304124efc168df4cb76c620dfe131c8c329425245c5008306b881bfc503b76e508b8a9d0255a72d64750b6fd2c804246bea28b440569e48ae4d776905f0f5381e4357aaef7b301e1dd5759551703341051804fef7619da525830ad1a6d96582bfbfa0e53e82778c2849d581b36867b8f5962d712816527ca2e9ea456cd5ce0834b1e818527140c59bd0bfd8a30363411fa39ce54f029b9e07ea1453bc94d7f502e5cd14e32f6dbb8c28b6e8779a3ac6d25c0d3c8cb4fd4453a0de6ccd026d1388702191f60512567da2a4c58e552e32fcd858c26c756d2855c721fb53707c3530399064d317894a50d51dcb4358a69bca0258a54b2d00298804dc426531aec7c7ec3d6db78ee680bfcaae892ecd827df6d433a9f3c020c83a8dd08c4b689f9e876aadfec7f0d5112836b9dc7dd6144551ff2257d12c54b1dfee77cc83ab786c0e1487eab50fb168965fa99f89c870f662f284915e8a92cbd13b0670b13e099df5ff408f319d6637ef77f945f7136de9b9793f64393a52cd0d2223e25c5fc3ba77bb8b343dfe81be7765206a6418c76988f1ecab92133ba458b370f572bd8a32b02739d6c070c2b01359171293f1c81f370523de63ff099d4b676d1793e992e5246372c4bd7324c2686f9c8d57b5262876855793ab2f70fc0a884c774e9ec3f35b96e3fa9ebe6174318839ff2d41f482aba8b65d5e0e7c0a8aa94cf89bd75e119adad3b68c0e19d3b2879cb1cbbf88f85ac092bc6d68d106b7951a049746513bf5df984b513dec29387fb919bade65b73b91aecbc8ef99dd2a6cc1dcca60b902d69378395b8ed8789a1d68240d794c5a6edb6039ac041a1ec5377b2140e2d17fcb1f14d219f6c07f7570d7ee6c214d47f910f8a978efc83ab8dee9c4750b497ff4e7bacfe14c76f39593c0ab0d17c452ecda0b4da0c685969737fbf789270a2b076b35f032d31235d7c22ef36b261ff522ee74c84fe7f61f0ec51da8b4e3702ced1072b16baa38d5fdb201cc8b9c1aa1027378dc4b0f78f8c6b4fac28bb45aef95fed4b193ef71f184ff4190adec898be568b03dd61532c8eb6ace2999b7f7a4bca5fd58f14bc87077191c65388d0fcc312b77baf78386318258b14bd586cde2e47110936b0585b9cc47d2bc7a7f10d92feee367b2fad110d74d3cdcecf0402150f3e59288e697052c0570565ce3d8c08025440e0f2cb318324f636e8ba9e36ec66d82dcacde64b6b85321523f4321fab13cc7d7e0b82a9cbc19945a40610d95b4395537ec95adae98252f7d24ec7a41ad42499173efa71b7232be33b010a64280e9ac05d0dfa0af052d943c25114029a8d741ad523bcd9e96a44ace936f492f549fa6d5ff1bce77e67d1543e86b18905916854f1f95dd43f0b62e46350b532b589d8338d7c790095956dab88cc90cd84674e03e8cbb904cde1e3ab2d6bd97e8f9da08696717736abbf2b3d387c6ee9edff09fcefe33ea82fb27d8841b6aa6a3fbac33eb9da8d9043906832dde47bff7bd4e9f00c47a545133e28e7b1d481c581147e3f5c4da4abae8cce0b849dc419b45d788bac1d7fe194b0618ce301a7530b343f144dc2bf177e3aaa03b811c72094fedc967da5de43f370e63d99b1c1e8860503d197967abd62158e8bf18bc1023b5471ddd8011aabf45694c8f08cf27e03e20be8e094eb04a705b7a8c6ecf71130b964e0a8b710b48200a6425236341820a6de6654fe30e4fd8cad4342df56ebf9bfbfa3b78c3c5615458c80298fad83a6084a5a807cd51f2e4f42e83f7d6e90edf00a961d77a4902abd108ffd84cd76a7c921c5fa730e74641ce40ae96050dfa7e466e1282a0d20da3782098fb905312f54e0b109521e6b9370fd0031a20bd544b5616f629885edcd13241d61b50eefa1745dd18c501966fd3b48989540bb5b1de25462cdbd45353a2fe7030b6fd066dfd0fb0d5fea33b12fc3a632f13a821551e5cc27a695cf89bc483e01352d094837b3c50a65a96ef2f0b1a7f4fe100179d9ca8beb1793b1a65eb4180c74b8d2b7c3c01e2a8554ace7b20613b24e4aa3b856d386cfd3e7318ea108097a8c97699d0def0cb8b62def6231170e8bca3e51c198093e7d9799dd2adcc4c35995dc0a39e66459bd5afecef98d85c86d9db7a82ca9eb340c8a318338f549769da01756361c6663105987f3a740694d2e4c822b180adf34a8bbe4099dc7aa77905cd312a7ab828a97852e2d8eec16aff44fb618c3bda8d4ab889216961ec4ca7e1264c7f5d32d3a26efaf424a3d9a4495f131720ec5050f54638d23442e5d6f136ff5f893e6ef3b3d28dfad7fd7cae8e8a0ba2c93a073851aed5e88a1f91beb8f3afbc0e92a180ac9f98e35696e67b88ee43c660ebf51caf729a3e771942fb8e819f9efb8ad3d8154d0f71cadc285010fa81baf83a014ad337944f4ede666c2d061ee766a7557df2e1b7b3928fafd9d0a008e31c6e10e1d3f3c95fc3fd009e4503c4e1f2fe2dcfd830be5e615e4c67d5f69355c58e230c97043abed702ab8af1788ca0d4bb45cf663ce00ec1be736ec3b43efc0faf79482062dd07c58d9fa08d6feb50319de6fe25d7be58d8971e17f7a2e0a11ccba66144801a7efb1c5b2ceab3190f23fab44182cdd0b62c2507569ee5fe83e8d4a5734979b3eef8ef432b2b66289eeef77e2fe8413dbd720efb20bd1d0355f70cb71e3aaf5e2b388ac9f5ae3e2b8ae9eb108ecdcc2f86c572cf5eaf80810637d2421ebdf80d6e63c064b1011dc59fd2c08343efe6f88f9d1133b58991a2a87a5aa1dbf76eb26be09e7068009d541b5219a3120c380099f45f3476463e06812fc5d820488a429f2385068ed054b2de1c7804034cd8bb33b209fa798f6acee6a58c66b8a846e4bf4e95b164cae763ea5cabd495c4147aeed42d9529754f79cf450a61aa2b8c96cdc5b1902b0ecb2a168a803f63d2569be96d9ce2f64af09b52aafa83f42f16180a590388014f600a19a02da5824fb8f66f86d41c6119d724dbeb7214f06baef17f889765e7bbbb79e67b1000f059232223d31517585d2f47d3ceee75d1679439722a1e3854c14550473e1297011d13040d610452861e39225506d2c777467f6abfe41376f7331870a9d00d96c92ce3d620611e142417d2ff3178fab844f90ec0eda87ac23f72144953b5f06962f8b027377a77d37a07f18739b839b7db41cd62a5b971f9be17f70faecb972332a16d7863165ce1dc43ea61d0aed9a5f400ffbb1bbaa83db7b615f7c240c59de73908138ed2946d6de3f144f046404349d7962f51b13ea836e712467539e8b3861cdddabfef56bc5d39d873eab759fc690b3ac8edf77ccd1ff4dd9f73e59853c7595c39d50a9bfdf096d2ead66d508296f37144b3058b6a534c40f935e24d35a11f3cdc98d64d8ab8b213a0e15ba223317e4f22d4e833c902833b59ca4715f55d4a4674c7aad7f00a5bc12abfb943942c26aba1e976742f485d4ba9c7e1853142bcbc945983d7494e7dd8ea060f364f365036c2e018b8aee4d42909d81d69b540a1a144f6691309b0f5bb999953c6b871b8b0dd573061975e91029a29be6f2bf50aae7e91d030ab84f7a12d40907b6e23481754c1cf5ac6abe763c3fcfc00e2eea343a0b1569207d884cc03d3ff1956f9cb52a3b25224bb372e7643e4a64a33a648d58b21a21d7bc2c4c6405d40ce609d6de10d097a68b541bd054fe182d6f259458bc43f6ea23e3a02554c26418a6fa1f267489e0e043578cc06f3facaf55c429a35c0932e21bc8d8051c18d9c6f3c6621f397b76a9838d6ccad4a0cf94bdd7b80abd80b9d7a6d597ffc0ec60296e6f66964eebb1f71320ec7164fc030535d0db177b3250f71c84bd360eb238eb543d3a007692af60535a2b5cf0939de66d696575d44ae5a77c31ee4a7b9aeff5b3d67023caeccb33ff987876dc0b5be9e3ca954287369ec39484a520f67e3b7cd8d6a75b2f51b81173d5e831f84286b82842a6ed27e993acd9c8da3514ff1e463e47a21e32b2d2e7cece120948531ef905b25be4d0972444884d378f9cd8d5b7b44c5a519c680fff3085e5f5dcb5a4a7376334f21b30e02c5e34928e5579d720b73da7c7c34e3b58d011fb5f22e8eb5b305605e32fc98d953c2746ca89de1a49d8107cd9a00e749cfa84d9cabc80427334ed6208742cc0ea67e6094eaa1c01253107f871f9a9acf20c0742c333a2ab5d5d49e547b96d68d26d1e1adce22bfb2b37bf5b1c1d5a7d2e4f038efba092abace9e3d40e03244468781cf04155ba0b8b0d8b239849e99598331f794eadf09eb721575aae1351d7c37ab7fe7b416073c067ccf111a9d483c26601c8408dc2cafa62a2a34d7625bf413a8b3ecccef4fc96c6158b9a7a17a889855cbf09a8634fe85040f47d2e1b22511db9304873c736d4b86824d30315369c25836effc136ec4062553021e0276d2c5620ce8ceffc3989ffc9faf94f5a7d563b43c0365fe7296b8b92823625b19178df491d6730dd0f40ee20f205d01a9b3efb0ac2796198e9393da8fe189fc759203db41823017e573be77e4c8ec3ddd76a7f2ea7c12bfd700ab98b2ce338941cc8bfb60103a40a3f80d8be317591e53ae1241f2da01b72715aeb0f39ba72fd13c30bbd41c1d5347d363a0f49153f2c7878d3ab924b3e43279720af7de1ede2bdc6af63cd57b6fa221e0d8704c79e2d250a40989645fe3d2c34155883ba69aa071af94af989a118ba536456e4a07387dba36efe7dd5207ff677682aca151f3d6aae1ee2f0498fefb2a9ecb075cb3f9de8d0e26bde5bcef9e87a5377e10e9ea97689f9f2e1c12b6812972a5099f1a0c08d3790dcb4d4ae199bd2cbc21e58d5eb29da4e12a941cf958c6598f2cedf510bdd6bcc4bcb8dc1c4cbb7b78db6e5f334e0a1dd054beed0ee0bde50afeeb8423eee385b3d6dee8b0f1a7be1d4b15b5b42ab97ded68dea7e009162cc7d5d904d509082a26445405eb9af5dae352446de141043b21962a8ea4fbe66f1a9d5bac59b27f17c03ab7935cce7182bf373849dae0ff59533eab4e295264e61ca3f68be245d5956536d16b517d742961418151bcc6b531d740be1b0b5f062d5f7bbacecd9d8b1dfa08cf99b9acf2bf0c98945981d78179ae8e26c580674b305be76d6c622d9bf2da6af5b8e88b5504e722fd0d9d02d24f9e1b52c11c1d405c69b6c65b09e041a2538b18c9b359b9a1645cf7fb648b657d4cc3c178699dda0789f14aac0f430f552b19459f8388784fdcec533e6f9c7d3ef4fb86e92a4faec977679ae8616d5c3be23ba8f141fa685667e36589c16658fa89c07d7fdde08c833bb94f95fc717a24caa1a16cff639d39049dcfe56fb424b78ad1e344b2bb7c3cfa8f3e9bc49d5c9e30e7322ea6ebdae2c5f05f4219ec019df9636078886f1a86e3cade0f035c618c091914d261db5c3cb5287c05f4703724058bc8df0b5c89884e7b1bdd72328481537c95d18cdee446ff399544651f1956b32ae3912f3066eec5efaddfcd578f1bed8e563d044f9d3d3ec292e001580a9a7ba92d5c77f8f32b0ba24c8c5ce4c78a1ba92b472178d7b94739c519fca33a143e4c05e50d1bf0264f46d628ca6786c674323e0989b76eebf39cc42897ea23da4d544ff8a0ec8a4fb44d4ee751522ed652de048386cdf651a655fbc67388707c6c03290578c837db8f79aa37f3aea33b4a49074665196e75c97dbdac9808cf29cfd53b1f1d59fe701aff68f91924a02f67c1b3d75d68964ad62dc71bec056404fe80e96fe3019ea81bdc337e582e2c954ad8eb852b0795f39c204af63b8570ad88d4eb47460b797ef2195909ff2c792ec8277524fa0b3f5f9ef5497890338f7ced30b856fefe3ff8606da0fb1a92416629d5ba6b3f37bb54a0271918ae5afd0faa15aca23717bc2cf5ef1fb06f21b901a422913be8fc964973641e57045cf1d6339298247dd4d9fa0c391579bbb88ee80488be360e7af9f68734f4b5fea9ea39d8a527434a46da78e5ebfc783aa59969b5e4e7b5ba459d832b491b59eab717f8ba1c227b562851e26cf66fbbf6b5e9c53f697c6da00686f408568ab5dcc415622a1cfde465fe9e636f84cc94a839da3636c13a24c0b216df6630e1333512369c23e8c208f27400de1f467cf8996be50d5ee169f02f3e90b159f2c3531030a0f57031e4cd887a4cde7d3a87d83d17616b0a9e2e6178447b23a80dca11ea318e7e73ff7085fc27a31da077b1500ccec6e3e634b939b0dccbdc7d1cf9e0a533bdffbeb3872a53230e20fe823176249ceeede4ae16fa1392badb1d732bd803a93e2d8ff8949781f91849dbb0146ecd276e8e9ae9f5bffd30a75b8f97def07ec1fcf93a446650fa02811422ecbffae1b8d457f7cfa738585f05a197a6eeb523ebda9d1415d7cda62b7bd9c917d431478e7263dd8713db6d8af75c0698ee476850b9d707c4b4210474b0ab0c21b2423800803eafffd66cb7fbbdfb6526fe452b19e0adb16826f5acb09a2e6a9b0a3e04d21b5939b8731deee4bda41e081dc4a0dce2a11388139a2df4ea33131d34832479c1b2887d71019fe0d548cee042625df4d47500f70a517eb43282f29b4821183942bc1dccaca1b889941cd4c214d4c209318b99ac1c71ac7424aee55553c3c4dd71c365d137cf4a44c5d5b93ebe3eeef99308361aa1a6a6ba59b132c6fbac66be21b6ab3dffd74fe02ac6ee42fae30b28b824892407b08423b1588d9451605ecc1de724d8eb20b54e706f23a7ac78290e4abdd4e579b601346e35838225c3af6b3d3b26a343419ce5199f5e8b7f5573af014f7a50e9cf15cb3ccb522f6bf0e6ebd5f3174638d1d206e6434ab51d3e219b4ab64f86b76b367ec0bf97be1fb5c79d21a349df2d93f11ac1b5feabfe7fd4c21d8b763b76d82f5dff6477ea539a83348b812030ce44816f6055e9addfb77581f4f3f13b687b29dc34bd58f8c48a1ba2f1f39737908702bc35c1f99325d4fe0a1f4a5baf0dbdc78bbedbc14754a144f4f6127cbcc91f9056aadf772d8896234d77b05ad9178f9080a49f5f5a27fd48d464391941ae7e1e44e0986efa48efbc6f80eafc2872af25842a3d16188d151d8715180832a94447b170b3c016794c19738dfb7146a568fe833b61886676ab1822073ec8a59b58b4e9be47e5bf6230321f1400829ff1b9ae799352e96a5cb05034c7ed3b83d09bb12c9528b8d84967f91a94fb5ae1f89ebdcd222b470b816b004884a53c2b16b6a393d8ea4f116705d4ba881c21e8d09d09e3b4c05b0015fbc13a62c7edb6bd5f2704efd6576ec07d422af0f40129c4c41c0144b29ee06e88e3df3760f86cd242deaca3d121a2b571a2f68db03ab1c6ea20f5163b1e43a2d4363409a2b335847a4e767e66ffba6299cf6e20ca26f94d41f3834a0e9b67f384a0d0370568f1c60e52d092368ea2aeb925fbdf25a4b73151304175cedffa6422fdfa2131fc5f52b0ff427542bce83d3c3b8378466968f2ef7d9c3e2fc8320b1c0e53c350a9ed82ff194955358f40e03a60c80dede2a8e0eae44a53c87847ec7f126c4fcc05f0afeca9d96109a322f4039abe36dd81807c5963c4adc28399fba5e28ab16994688c98ba357cce0cdb0c469564604157d7134a8293b4098098fff09910cf91f901590151cecbe964c05e230ad8d07c913771b32a6bf14ed71730993d6e420413de0438fc60764ea21c3c57dfa600456a96b52a2f8bc6afcdc3270d15fd6d3649641192f31015d344d5d68311363c167b0a60dc25911473a30a1da09e89c57282f8b3265054aa815aa3745aee48b18feb2bb205349097a9aa642018275ce4c4b0ef4395783b61d624f5436bd7cb27a8007dae2dd379bba0cd6f164a1f674f280337f4a9b5149a13df4b3994e4fb83c36c34c9dae22991deb349c29bf807e78bf632cb49b955326eeafaa9ec527aa6a02f59426f1107d60afa3df206f8083182be626609235dcf4f8efa15d8a62821c14e0ed9c1171b474f13456681cca9dfa42aa34c1f9f1bb436008467a1d025c27e8ef064b94897dc696b48871ba4a82b47b601d91a50eecad0d888d7b744d0e96e2216eceb95b3f2c90409aba9e8e469c315b4b124bf82bc12f5a8d37fc4e858722f94d5e834d8d6ce11f88c83d686a6d931e312db72aced5e1e4bcd39127aa1b7dbc93f6a2ad3f1371af0396ff30b055760c7ddd61865b1df175ba7ddcd27eb2b99bb696e8765448a580b1cf8f2411babaee0deca60b29829b63ad6d87485607005328e662dd611675cf4e67f69701c33e1f4fbc732f81c43243cfdf7735a138316653c99e4a60968ed7c43d082cfe2dc23f8abc75396ef506ba7d130346d600b86472c490662752309f2e63110bf684436b161601abe8bb8666e931bd4f3591d5acb3daed88fd1d8d431d2b98c0496eae4a4aac335a954c7a0fa4b8d04203b5a96188847b666951d09989b4facd3b42ea194a48511c40fcce9bfb69502807549606cc9b69657cc0e7aa6d9e2f328b3bd94d0e29dedc8904253ec9448e274185eebdb529081538e9f1b0711d53e88e7294f933118c4ba0d9243109d60ae5a3a0f1bd1a31f2e8eb9936d9c5b7c6bfb0ead3510c326d838814e16c1aab65c92c09b1d08b80e83e019bec808a8b4c2e365161911db588f6c2a50d9c7340cee58ed3a89959c43373cbeb1a667b17dcb4441b3945b0b0577460afa2c148b79ba2a6fa5024fbc95b6d02338b63fbaefa876b9350b4b528b001fe9cac067ed922f5cf8350708da5c4e2055d3aee84f309d641227d0a2d13b383962c1cb8f62da5de0d7efac641bc25da71ec2b56f1334203f8a26a6e8c47ed63c52326ebd90e562efe8179c7d2f9167c3532ffe43dfe755c0f92c71b0e65a932673bd13ae26dbc4b6a9d814f9f0332300985756c0b4ee5617162e09db27552dfb1c7372cbd637e1cc21b0b846c6aab10a2db9916b029fd03522db1079f9c09ff17a2c25d066994ef93c523f1a14fd76b18fce5f1696e52a6d0215fe838899f3272823608caea61844c109889c561063aab13bad762586975a49f980feee1c18f110657da1e38e74534fbddd26ba791e03687123654caf61600f9a9368327ffd4c3cd18c6aa58fe99e76ce2e6d33e37a8fe5d937648c5381cef53243fd8df8fbcb626eaea7bf10ebb383339584973cffd2e6ab0819c7341f94b45c04ab514fdbd5896cdca086f722f48b5f86b76814f2de2d08d06035ba3155e29046ae49a3350fbb0e2dece5affce0ac6a4aa01494927ce5f2f129c4d8a8fe64d7173aed875b9cac7b2d8705a6c373a36ee18739d51eb3209c811bbe02d3b1314e1ed2d3163af23a33aaa00f2439e2302fec29f7b399479e975edaa630f4dbf68da5e0e6dc5619ff02fff9332fb155c55699361eb2ed6960eae5d457d42de25caf41726f32de3241b3d9f1dd17d5cd28ffae077c342dbc18c5ede1b403d65c85cb1a2127ac96dc22dc7c2eadf1a49dac232cfdb1cb6ccacb55402e25e016d4fe3a875d423b310817a51a34031d5e06f23b98984a538789a3aa07e00d51002c535f1504760e42d32308e497ae442318247df1fa1a8b2780dac5c497bed29810b93b484b419c9bba13ec689c076c795b6e465921dc8e63878b509cb26fb2b6a8159c797dc8aa65ae8bcd60ddc4341b230e85561485947dbdf5eee9df0d225f10f1065ce1b3bf400061dfd27d80f14123017e4ced1158713387edfc662b6d1675b32b6af5e5e258e95d5d91bcc058b248da7e1587fbb17f60ba17bde7a80191a8f83eeb516301914958f11fb3aba753293f85973e4cc6095758993be2130a9c3a6d23196a6e567714e4cb952168dc392bb09842b13a0dd669efcb590ac2f45365922deef14aead0703da9932aba739b14aedff179e783a430d974b92e352eb9e46d7f2fba1cc4083b1f128edc57652ea92470be2b78af11eddb02220a62bff3c88a53818aa2045b7d17887b88720a9107fabfa621aa6ebed73af14f78ecdca0f5aa1e042802ae9d2d0d35af0b1b5232588a69dc3b30e3d4f44374781ea21154d59f77108ac5ff360bee8fcfb7fa0a7713a05065541df969af0a02891830050a15fec2b6016cfd05ea103ffc1bee73995ca5ff74b157bb852700dfd44b387c18c0812168f5dfb21c36e2b1bd81ab6047ba6df3a565a0922054c870953f116fceb18c8384cb00bdbf565189332899924c907c4afd1e1940c743fec979ae809c93ea24d3eb5f37e5e3f22950a3f141572b077b6053ad5daefa2280b53ebf64cfcde8f304f09857ac3eb61aef7fc51035c39e02491a54fac70e87cb51cbc11875f5a360b37baaf9ce4926bf68707f43af603b820aebe1f5e7d829a682aab01d25599209e6781c42b900d3f3938e5b48385213327be0b9995a8d84a0a1874aadce107b39d2c722aed8a51a3e7edc90487f800298b220958f8dc4fc030b01d786a62ad84db3f14926906bb6f1ff14b6107b91549012a5c3b009f5411cf8a0f719209b742174491df15d09fad72746edf9477d81e498b4a32755de9e77a7c7e0db35f4df60c55b631098733becd52f18ae3fcbd8de11ddbb7c09218650afc15c689110120ca16694b4c70148cd51de211b826cc42e40c5c6eea41adac08eeda138bd2c0462bf177421b91f667d8c086488729869a287f0beb652242321f1322cb97a88d591ef947f2cfc5cac5ccedaadc240484d59b80e42bd9977246bd9cd637dc3a25fb1cf7fee553c37a14173e46cf5314be769908b3551520596344984c6cc8d0d95572f1a04a463effb9fa6ab74abe0c3e5222c654c5be458977c392064159f1c0e70762808acb85b72a5c0be70eab5f78c2468c2284b74ff3b699be85ed1cc95647302821d437785c67eb4d30f72b9b87c7c42db51e92d2a0f2e111b8c7db580670951b925432a5972006a30b890558530971b3131f4a6be9785d58c6cf7cbc5d7f2c166108c04863337c6273fcb1bb33b062e4de86b3a99289265d6113679a02e9ace4ca72d68dcd514d4fe2b3cf9c67c62e2a33b5d64fd1dc615800c15001effafbc7e8135b0c2e35ab92b67a72720ee9126b0a1b12670576bc105fac4aca34d84f2a0a02b48fcb6039ecb0e1d15d7fd24563caddcaf83b899f80d4537fbc7f9ad46396fb8944c7cb592951560c30b0df312709653e22bf679576bf39a7d82e3d81edffd59534eb4b5c007b9a18e2d842dea575d580745a871c63d0dafc377f83d981d2efa2f1dabacac6b80697c4d8b61878385f3791524f866e6c8bd6ebbc9d242fb2b507d01a45081b903373e58611af65099ddcd6268f9945998e0ea1e07f845556ce20aafc4ec9a999602aa10a7b3799ec44c4c5228c48df3e608754523ed846a114387a23aab1add4458dc30c5a137173ab0ebaf45f12390ec4274ace4b3a030f6538ce3beadb278f1dbdf740760292bfb728ffaaabbc459227e388eeff3d69fc5ce865deb93c0fab797a9233046e9ecf88de45e31f107b8e66923f843cfc6c6f8cf039d8d89c823b5ffa1ce59fbedf48f2c49e556d11dbe7184a035d2ca9e8b2ccb9017a39171fda83b20279948d2e3b24560ca9afa0148268228318280da2fff54f7b13cea8ded014749336cacd9f758d283178b67cd8e197f77a7a34c0e9b9ebf2f3423b120722766ff229a0a110dae02a0c8135a494613c26e3d51f1e819536f88b28be441280091f5f7f16282a659a117501e3c2d3c522c3f3b4956a3ed64103a8fd7051bc9f8ba97bb6b57491871a8e2c6191dbf47c5a3c0c05a25c2a714afecbd9fa1b0e4bb7af9276333581fe83c6ad71a87a44c90316122af10876149a1c921fb5409bc1452cfefbda08e03441a48ac5387451d919572628215d06972573f1dab312b48499d52a2e6900c5b13edff8199e738eae2098b10bdd11db83e6f288c71e81a93f581af731350612497414d9f7a9dcaa8dd0eb7f0fa194802767a24bbce8f5b9d3376bd2e57ce7f26a63fd8cafb022b0a3ec10347109c616be79b71b4b4e162d3abbb4dd98ca24687299f41e7a1a942ea27b1581a93a191c4926f6858244a3f18c72959a938eefc3e1fea0e63257dc17d2b21af87ca65361c17ee040dd4706ed6c3fd70f1c91f059f7d269e2f7652279a738f040b402b936e18e171e00032777135bf0e80ece8cb70c9f6812ec652681d2eec7808e0c1aa84afbca326baf3499a413f0fc0489b92560e1ec09214957a7752da9101fae5794b3c9e9599ce606043ffb0cb00a56011a72818b69d8df75a0ffdb35918f40851d94a2dc769772a73285375a54fca8c888a6a6192e09996160604d53a4aadb0a876029aee17051f3cb80789965bf188b780c598c6ea8857a3996f82809bcff23941cc4b3f2b5d11eb1fe4db22deba363e44912f162a1e3e210b59870349c05908b51f88f22bb19706dda0b4279be8ceb240a758eb8cecfda00467f75da4c62f7bb09dd92099576ab28cbe9bfbdd7d67a59d1188c80aa514bd672aa2dc717b89ea088ceabe69208400f5eb7a4399fd5ec64e52995fa7267ae7f75ffaedf87d51046bd7c3629dec153579bf339259926ca4661f7a510d165c34c9c3b79c9c90c62265ca6c988ec065896dd942980f72ce19e0bb28ee57de41e905655a3633f9e8b87e3d85cf2b166beb79588fa2f71341a022fa8d204f354e68e7f80712d9fe97a1e14868d8ac80c015e054904f0ed1ca5cc6699e9a3e43385c46afc696b8b07d5c4bd1a74eef9f547901d971947f52a9fa95395f3ebcdea2e55c464a01d3f70c9ffc0d912ea7e21d864aa40e1fed0c1faa6722db54580290c6fe0f236653a7e52d01724bc1dcf5a9f9b4ff76577861b241e9c48946f465b1239daa496fdf588ddfb2dc835a118d4d3d4337ef096312d22a87fd28385ffb3879204a301b94240af5c1269b91ab1971fc9f484b26585630c61d5714c889105265752bfe75123db9b92194261a1c90916bb58e4443d6899018543514d3d0928d41b470dee205901b5ec3eb83a547e8a9b76ba8b1e5e44c1722ed5c185d1b966b58dd80917a6a64dd43d2f6cc37c4f94bb61330d50c67ec8059357ed93a174481d479623196181bb8e37393dc8a3332af2ac5eb3dc540b3d013fec2f67203f45dd0e3dc0c48d6dcbe64616c50debcc154c79808ad1b90824aa671311f1ff052edb397f934426102868fe990fae7dc48c932fb8ca48b08303d21154ef4b1eba804d8097383f76f24fa3c8fdf3c4a9d9676641cbd8ad37df2d48c615e998af5b4c5e99179df42bb67daa3c05157041a2911aafb623c606fb58486f212ce3cf0b7d0704d55e033a1899a37cc9ecf2f3f740a9ba223c4c5e7b380f452b189c6e2ba5bb0fe2611bdcb2fa71159a38c4fe367aefecea2ccea4d47efa2b83b9bdc23345b213a0a915e366ee7da8224fe1c0779bb1a3ad473e93dc828d8da0535ace7ac01f5ee4fdbf02dc3562ad30df98e90b463ba8ab84f34b30b64f838c95639a44d850943d80d5f16b1f12d0335c21e9f903573a0f42e8b940350fbeedeb899c8ef0df1f6e089c82bb9871b8717bfce6dc774f218715d86b9ce34fda111af8881a56ca37b4cee29da85dbb9389a97e74caf86c1020aba77a131636586d4c805f36db57655793ab43cf8475dcd0a973ced973ebf7e9ccfd57a6eb2ebe584f9de403e8e3634f8c02ab7b2a0c08e78c34b16aea9ad94f5740593a8d83cce98e824de7e2550a2d785be928e093678c99fea016b255a7387fa9dae875d144dd7dc7015bd75b43d9b115180b47082ca3e29be3f37ae3ee4c3c30cb93ee61168ee758f7668953a81d95f6793eaf0dbbade40cfe37453f825016c1d5a58d981ca1a6902b8ee00650c05307914ef3ad7f8b211744690eec2024bb8695851daacb51c6f7a6d43752cdb702fa3e54c54cecc778a06c6fb62de7d741caf816288396c5b0893235fc00021644cd68488a352e592aa07d764b1f9bf51bbd2f5f5f25a2c5e795872fdc08fb7f857fc70090f5c8e579f376e4962c91d68d88e63214aa2db3cb4336a3589b62831bd31aab622342f75a557736cc6249db158a200cd444da2ae46cc32f00639e32388df4597d44f360d20359598e1de992cdb4e036b3d08f77ff85e04ee8e026b8e684d98d0c4e5994a388482049bee6059642d6109b8b2a5a8d10fd682c64f3c7077bbbef9d0e0ba1a12d5b25cf9765c9f0c8e2002b6afc82640570832ae3eed0cc907479a60db85140a86132c182ead419a6b2798b2b15687ebc7985cfd4cc0351f41b1bcda39f5d2fdeee74cb67a9cd11757ab2f071db71c2e7c37782b3c9ab22d256b36b8b45dba9cd4f32217975f7247d272456091d5c118f2a15b40fdb7b0a23429f2ed38956d4a87135f1281cbe426709280af505d6b65f2b1c2f1b959e6a4f676d43ac422db652c4054206cf5da7b21a1d18bfcdda6b690596aa3ac6c79e97387719bea86cfb77709c72abb3ffd762460ed0f1cc7d6c4c583c95137ec28632354d31af19f4a71925f5b737c4c1bb3dbddce712d8903f20d250394ec8845bf06b35dd5bda0f83f4e19b26c8f9752ee48a95cf724e164b6a4fd9bee67f38826b9ef13cb8d015796d21c061327c5b20010552d0c1375a502b2d8ea6bb8001ceb829a1e28c32f31dd795a1cdeaf74fa448dd39525af8c92a060e6976f2bd0b42fc13828e844ee5aee7d1ac111b90cfe79e90d0f8aa014cc6373a6933c3d58aa3094e289521d06c6680edeadf43ef739d738ff2bd02232c9b6f565cce33294051c15699276c300e1d65b7baf73c43e0b5c791fe644c55d4a41cd11ed7fd381ba1bc93487fc8cbe7f222d48093fda4aa2f134aeb95fc625d32524167cb687e90ec12bca2af2550d5e0b8cca6de823b3c79ecdcdcec698d283f8b8e9b88a117da3f7b93c0aef7c555764f9604ea9bccf8e81aede2af2c8d8482301b92a5a2ca7f6102729e8e3dbc063b395769de0b0ffa33be1d998263591aa2ad41f96ec59485c0040064f03185d96b43ebc5ae9f89009f6f0a7b7d2b055b0823af89d0cdc97809c7754d04fe2713c7cf3981839a35eccf9877ae0df5225bd4fe0d3f37648894f8bed92009416d535f00e933cb84f5f2e550e5863bca9ea793aebf50ca0db1e770e8e3a0179e885035cd5b39ef8e077a0298963120c11c99e21c627f4e00351a670ccfcff8f7149565a1f4fefd2eb3e4fecd933228217032e0ab32e38f4d845056064a25948f9c7f199844d24eecb5a0573daeeef157ccb41ca6dd6fd93b1d57851d1455004ce84051a1551e298cc05fccfcf6d886ca286c7c05d2c44fa6212be62019fc268312390ccaf8f4c29964123ba87a28dc0203fbf04ec2fc1826bc8da6defcd725b22b4b78a88f7290aabb7c221157ea6785d26be66ee3d8d778de170437f2899c69daadf99c39e4038c5f71e041d76d17c5f507e2b4cf612e14c013f97c0943acda07302b396f23bed05744c5550366cc5df0fd7637b579503b241653bba0fef2dd2c45d0e873913f5a6db93a0d6a19368e9c1328dbbdef245bf0377fa2e338345ab4039812fd0f29b98af87c937c9b17f1541658d17610fb8e57e7b3f19473e533b0cc97770a46144670aafb2b4bccd220263d82b9d5f3d1141f625c98f8ba2ab70f04c4ca8f569605d943690645007a08ff373459eac7775f8d9aec124459e14cc3dfb98650ef6119ee513a70b455be99f485e7a32f43a7db2b6586ab8ebfd69dd43e5f383be27cb10fb404fbc1bcf216c2160448be361002ae27f61238ada2f5acf54e850519300417b282e3e2e17e96bc2c05c765d94261448511fdd637e24db0b06dad8703836f1a792678f19592cf5ba146fac37ea588af2a790c4d8528e1dc4121e2e73a6ab604f3ce46282df6fa66d1e59792deadc357228d5fbaae491447245cbeec3e75402cb373cdf95c6f77f6087118675c2bcdb70162345f65befe7f953035bb559af631387b7b8cdd779a0b278abc62c6fe4e916c5c39268692fa1a3385e80167fb3352f29e25d8a43360603f9219e6426d8ea9ab5bd300dca2635b5787314d836d8225f18c753c34589e277d9fd49fbd18bca1e2ad6cfb6a372d204c4586b881aa9c1b7fb3fd3be4b2a58d48fb1004423e4405f26658443e4acc085bd3b8028603162ea5c08cf724965e5fc909d09fa74475585118721077bac4099b5284eade909cececf46259fad55024ceb020e4945c70d3a50ac26c90103c00030000c0003c00030000caa38fe5ae8af5453999b32d4048828e15b4bbb222252eedbeb010087510000000040e207faf8f94ae50d530ecf0c8cbfdbbee4f796dcc51dac132a2a25d75bedc20ef9aa09bb1bf11f2a8744223a0080882eea606c68cb9a133bfc4542177448f21ad77a13ae559f4361ac4a081fbdce5c0ead85c9f5395d4fb57178f7f2e47c2997c4281cae72cfab1b3bd46ef60de8d7df9bfbedc966dd906859e5a2c4d406ea4ed68f9627d225cb86634aa973ea4e26afaa6bc84266448923155fa36a48be3c4564d234f49792bc78c50f9ea3c1387eb924e146bf3f43a59a51dae629a58f19bc68ab2af38fe9da32b49aa49f9ed4e9960cebe5fca9613fae9531e89a443f4fad9f534e0c6c948ee5515ecec44c182a494ef7e46cb1d7070327e6d42016ee1a53ca17ca315e94dcf97cfaf18252f729254fbb4064ac9d145f72e18ccea0f5e516eaf23b498c575151d782256a56e612f4cfc35930c378fe3bdd146c462c707218cb1b5593ff825730af921452e9d337875638577e5d93990ebd6115ccc15a3e7f7bfb932015fccd268931a6b097d729901416d04514d0b72d413c7488d51c14d064ab621f92192bf7046b273d364997a4cf7342d572d6d59bae235e13f630bb1a7bf19bed9880b86a7fd0ec9660ea5dcaaa9d4ad14d0998fc1d2ec89564256b49307fb5a4bc716f52352460d1bace433e49a5b123dc316c45fb8f963f6346e8a2084f67ff50fd1dd522113c394f3272a9343304c5634e45ab965f2784fe4555c26312e5b620183ae45c46e7e6990c0877a67872ca26a942ff019b33db1a2a8587ec03538a789eaa98e7d383f36b85da7729a15c1e745963cebffcd889ee80b173f7cf705331aa2e74e08d5ffe6e9d8b2d89c16a738eba3de3c2181d294992f23829b7b02d99a429f753ca650bedca66c53b66c844b5b83bddc6f8668f2e2d4ac9a3a6cb8bf6a4cfe2bd4ef1c5a2eccd461666aecf29a6e85c6d89857dc25d0aff5d111116764c8274756ebe8892904824e48718328844c6d80cd478c5415a4454fda3c5898744221b8980b1e30c1f3fcaf0e6e1001d3edc023b9250c315754ae26e5c831aada8c10aca6f442e9e28d71e0e8944de7d3c2087037414e5a0c62adcdfbcceb13da63b1a12898001011d35a8a18ad39bf4df558c96442e418d54b0255ff83fc92e4ca6432211303490030239c2d001821aa828d786cc91269ad0ef9ea2ae1e1b934eea5039690af62d2a552da5b4180f0ee40843c70c6a948214a3c043d3594ffae99b4614c6c73371dec2754c01c00e6a8422f17553c9b7b61f75058596735bfe79ccb1800e0018a1c6272c6d89fd2ad74bb3a1a4862756d578ea6693c95dd389c2529e596d4a1d6585ec18638cdd11f2e3057eba0627d86e9bf9ccbe27a6b6c70f1e168000066a6c82d2ac194d08ab8a9fa48626ec98e9fa7eee4fcace84b122934d6cee7cb060a2bd750d9b97798811021d3d7ef0b0808e05d4b8440d4bd4a8440d4ad498440d49d488c4026a40a2c6236a38a24623f83129b8a9a6e6ae6480310107e8f8618606784c20a406236a2ca2d512f914a6e29ba58a2832685bc8d95a502311c5a81c2b8e8941d4f388304d78fa5789f2546287787d73e668d9bbf79421f0099373905bfd300b6a14c2ca5a4247c449f651e7518310e9c5134bacdcf4eb778c1a83f0a2b8ab64e793b6e282c0934973327da1a261204a721a957fbe35658b183500a16a9b5c99ec7d8d3ff45771f7637c7f09b91f0cad49e8a4be163cc614d4e8836952c7fed01cc4738f851a7cd8473d57a6f5434c6c0935f6b06abe9c43fc8d86664e50430f4962728987fb6492d31fa891873298b45e8cf3b94d432211ff61c60bc898410d3c7029d5a9b34a6a491b2bd4b84353c2a64959593185ac0a35ecd0f4e55652d5247bee52a85187b2749abaf01257e2a5436daee561f43ef83bcef0f1230435e650f8513191283d50430e74be9cbd6346fec7ab461cd00a9da16365cc24546ac0e17b759b2e9dced2ef0d5be80cf5b638de41e306f65467f457ceafa46bb4e1245b66b14ed241d584400d362c126635d7256e4c768d355019aace374dc99ee2851a6ac8356515adbc79ad7c1a52eda8bd9e5575fd45c3a993557a68a96469ce807d68afed1c9a21399a6fea49c9b65f86a2a4540d561e36858c0cea6ec6ed939593eb312454902ccff1ef3c586230ef8579ff4f1d93fc861a61d856366c35c34cb92524120143f595a7938934861a5fb804fb0cff69693567470d2f541a9f66426cd0f12d241261438d2e949baba52725ad774a482452460f34d4e04225058d2795bca6cef70079861a5b48ee3e134b91fda84c991904f0d1e30960060f0ad4d0821baebd7ce22c2503307c682012d1428d2c30b5d9fced3ebd430b89445cd01ea2c3c7e0cd420d2ca425d9eda8465914b5c615b0d7d2afd0bbed5ba1134f5cefe49b2ad4a002dd921a2cb6878f6656a8318534e5d12445935cb73d07e888449850430ae61c735f4d4cb9c763c288418d2860ded697e4fe637f5e50030a9468d1296fd45451fa271075e9335e8adf4fe24ee8b2ffd9dac598627a9a608b49962a675e13b6c3045330a9bbd54a33787a0949874af24d57ce9dc34a28bcf4669bd9749db349b082684fe7934542f1c2ad4432658b8d39025956f99759bf522a8d902cfb52d26f6b4ab71581fed35892f09fe3844584e7a4933ccfe4b4c933842fdbd967d90c76292484c2c7e624b72597d341d8c3ffc5f78ee13d0508357e50c3078a4929c7ae3576ca9d1e741f3ddcb8db87e834241221a3060fb0a0f9df13a126577690581653a7d01a2d945e43077ce676cf1f32cd3e85462e8c5d16acc2ebc999352e4ac1353fb2fa72ccf12dec922f3eaa6dfe4f638ba36fce484f9e1fafd5624d39494e12b9e64912335e408b4dfccd3673f5e777165c9b4931a7743b16d516d090452925e1d27ca4dec22716945a8e31a578c3424d51e1f42a37afe65eb14699f45e9613d53257dc9d2aa5533bc992a65a5170cb249e548dff95ec38c3c70f562c55d7799d319572c380c62a0af924c798f8af59351368a86213aa636aa6ec6be791038d54bc312769d3c34f2ac916030d5468728eb7922794b8bf14c831811c12c811811c10c8b1021aa7388b7b8e4fa9ef593105256f9d10a6d96726edf13c2cb0230c344a41b44dde9a1463d27092e220e937267d70cff293416314873dcb71b9188b9e432211ffd183470e31688802078d50289d9bab57275f2ce2410314cb89f9cfa7de3dc6cd27145ffdcc24ff4edde9893b76d42c4acc61d247021a9d30d4b5e4e217ac8f11442261d0e08439875f5a4b25b48935ee4a98e86a22c9040d4c2455986587097abbf225dc9d137d736c2b69244b5cd9f2afbb62b831f9c1637b45f0011a95c82cf6844ed3944c3443223b7cf48844c010410e0ce888443a408312573e9ddc24fce5381e1a9330cb78ef4b49a2572402460a948624ccec294fcc2565cc6f262134225146aaeaad56925445828467e69f1b2a76820ad07844d16a2b25ad2ce57c0ac03880014ee08810d068040d46d058040d45d0488469eec3c66d8c31bc29400311748814d030041502f774d2c56cbf2533134293f24a89712f2a9b86c620ccd99a52565df7f9bc20deb4dbc95d9b0cead141231009e69633eb7aa6ab3c20124f0e778dff1f32a99fabe898b2cfe3075ca44bc3626325ebfac0a4c9861e8ff18154aff99c613487a6f6705e2a39689c8d7b238644225ba0a107fa828dfe09591353f2041a79d8c3eefb77e79c84b19240030f55dc89fdeb77127632028d3b981d5db94a7c5940c30e9d9770b15d3c6b0a0934ea50d28aeb9e4ffcac27191289e418638c85400e1d0028020d3aa07de9f3758aae3b7f4824e23da031072dbca84949e23d853c2412f9e1637d9841430e69ee89ff0d5d7f731c8cfd295a6cc75250b50a34e090bc267eecb4513473f60d5e4caf296a9f5b4327051a6ed0b26a2ec94ed0bb126d8321b63bc8863c3dc10a89444040830ddb98f82af723b2b9b2062e099f45ead2e57e510dce6c9a9c9b33854e4b230d7ab0123cd2c4bddfca183e4290830734d090fab5e7ef20a992930e24d03883a92dd473adefece77140c30c58275593f7f2e5f7b60c2629f4673aa66e7fe90634c8a0b96ef419bda99263c660060d31d008030d309c3f7d666ffc2c99121ad0f802e227e7e50d992f74e80c1a5e7893e4e33154ca4bdae982319464c1921ce33ae5148106170a9b243c63b488125334b6c0c8c7bc6692c40c992442430b44e6106bda9fbac9008d2ca463b97a62ad57d41c0f332e40030b6ee6f8c7f709a9b38544223c765480c61568588146155c4d959b921cbeb9bd9048a4c7a14105c7e4ca277e1293f7851f40630a67a63026a5d41d3589c18086140e9f3676c2a4dd36e117d08842fb9924dd4ed5cab11ed0804226758e399dc62017cb27ecadb9357aafd459e604b3d533c5e093551f35c18f3b29a5fdc5cb4b1212899c317abc8006138e54b79061272fbf4886185b860f1a4b30b4c6d85c2759844e4309dcbaa7b85021ffad19d04882a9726e975acbb8cd85b0808718349090099a83e65c5e2eb7d33882261d65762dfec48f1b21a1624ac124b9643ee700392ecdc861ccc861cc30c005681481061176135b356e491a5af107680c6103348400021a41f83fe5a85bcd133dea011a4060d2de3f8da7f3ef93101e3d7e50be54ef49fde622341a3e38555a3386fc3c29fd212fe8e123029148193da8c4248fdbf4ab05cf5f40830775a885cf10f1359592d0d8015b71e3a1639e336b34748006fbce396ab3975f1310402e12f32dc9d9a73d76cac18531a34ef6a64c6ff1dcc229c9e4d8e28aacf7db683e22732d0e79e15d726f86932ab4507ebbebb4b2ca49e62cb28bbd7b628c25e624c922e935e6243973b61426b110002c04f00a01b88205d00a0d088015b48a0508401502488500502180537ce97d29f92575644000a630e7ca5f17bbee5b3a1304500a2a6a89d93d6d3fdc8714c6e576534bd198e1512494247d3eb18ed9ac440206cb4244704314648893b3567a2314c9bf2a72952463ba68106e80e2e89dbfa975ed7336156e7c6257db8a323bb6e2fd0d4fa8d9e454b7624c78ef831b9df8bedb9224db94d0dfcde0062738ff6ed91cd221d64b2047182db8b189ff2c9b7caf5b060b6e68223159bc7ecebc6e64e206268a153e3e6365676e7be3127a9949527a6c422211bc61892336665a4b25df4954c68d4aecff571772f343771912898ce00625c850391d27cabb7ef8fd0393384d12db4bcc399d9329c10d4958e5a6e936da891a321c043722d17df04ca2152db74972e00624ec9b4a41a6ba3bc594471c5e3c76348f92a3578ea0e49225af635790971b6165ae5effd4956f75317c84c188677dc3e2a4c9e31713024604427063115b4ee1352f378a38b2c7d44b7037391cc68d44101773cc5167ac529ec5308311b1b94fe5d08df325e70e9159c54e295ac8acad420cb1554a7ba3194d9c4e62e046214af25f67cea7593f9a10225dd37c9672f01ced0ee2f99252123b2fc7cc193d7cfc28c3cf0604b1d494a8bae7b5212a2191c88e1988f18120e4666633fbee330b08a65370cbdec152f22a2412f9c373eab1e35b82a49884a1e38783406ff8e1b28df274b29be5b57dd0d32f98eb7d788f9a0f59cc8ad9afc4c64fee8cd163c71ebad160e772e298dc181289fc583dec73a9d3f2c9eb1e1f3dc4d821811b79403f3337be096b1d3e78204d67cd7274cfab5d88036edca1964b9f3dab520e936be0861df8fe4ec256786a125375b8a4de9382f489ffd9840ec96f551626f97bf2650ee60fde2587d73bad0c10dc9043f17e6d26b2d6d33f71c864694fff6dc2cfd52170f0525aea9f6f8c31fa6f703bf47eb4da5482d66e28a5d7d849da8a4a761bdc12644fa8eca6d5dd026eb0e19ecbdf1bd768b25ad6f07d9a4929c9456506dc5083ea9ef1273d5e564d1a742f57d3f893a65502230368f0246dd47bbc36537c866f2cc5985ed54f2e49cc50124d716314bfdcaa96e1ddd81ebf637bde4fc9608acbace9333a86b2bf72f7538a9fd712c37163a5b0bf7031a7948f1e3bc0b81106f398e0167979e562320337c0e049f953ad6bce78921c1289b8c0bd8c1d3c3ce4c78e0edcf882b57175825bce59d332811b5ed8f2957872f7e5f04b8544223b7cf4d82183edc2b17bf7cf7e57aaabc80d2ee4499efda81773824a6114e0c616b21832d55b88544bab853c34b3e7fc379e52921e3fb2704ca7e1a35c7e69562d70030b7bd44fd1ad98addb0b29632b1052c686682047181fb871053ca35e28ff781687808e337cfce0210117f4fe00818f0878e086154a4928f9dab3cb36d9d1801b5550baf28e5a36b73c2f156831bf8ab410bd8f86ecd8c1e3779051c6ca60c78e1e3f1670630aab9f1c3435b2c413062e05cc24fb244a499139f6904824033a5c0c1f6168e04614921b50305da60917a1ff8e1e3f7664e0c613384bedf9a153499eb71b4ee8422463c79655e78c1d6359c0430c17b4183cb6dc6802277790509d33b17a64c10d26dc58c20d259ce04612f80612e80820b861841b45b841044c2fdf44c3eec92b86442225b83104f3bd3b8973d9d56d211ddc108296627e931c9f193b69702308c6f2d499dae277339e88e08c1b40b8f18314dcf08119377a60f624cde5a5720b91dde041e69bbfcb624ea2a6ce0eb6e91819a74a263d764307ae78a6fccef6a9f1f390de0cd8c88517f374dceac8062e9270919fbdee16ef8ec660e561a756dba2b08a91c944d10a366fc0462d0ed5e513265694ec9191011d3fccd040056cd0e212e2374af093c284fb430c1e6294b121703e63351089fc108387183cccd8e17cc692118990e16464c0c62c32604316975a9db9e9e7d8d4b1110b7d4d2e7b57b8974f12c236606149ddf59b92c6eb98ee1318838d5738d5619697935cc173aef04a32f7ce4884c9263a6cb482f45b19cf2727d1666745c99394c4fd84aa4df12a3041a7a23693fa9e50c1862aca9f2f6ac650ffe5978d5498fc8413edbdeeb3a78c600315859f1426d2298651e914a6dc5a5315639d078b0d532445cdac29e5246795dc0e6c940213af429f249fdac8860a3648516fe650e39bad75338a622c495dd484becc4a083644e15ffc24a7f07413431f0a2af7c450d6d920d800c55127d97c7ed6d4e2f9c4ba49b03bf14f88aacc13d8894992247736f5bb3b60a31398249f61d26ac9f2b11ad8e0849a241f2f312729a5f36d6c82bb349fe424f5e44860431399306dd88bea1d453bc711d8c0041997eeaa745ba32d021b97a0e4100d6fd5a51d16d8b044b77e19e6a6ef24eddd462516559fec6c273596131289f8581fa3043628416df08cf48b89de7e125ace4a62926a743a456d482229b6e7d87a6a2412bd84f7080b736727244c93a2f74bc6558ece234c1dd910bbb5996704820d471cb52b977491ba49f47cc04623dadfacacf1fcc2b262011b8c48361d3bab4b49d8136d2c8253998a9e3ac5063614714cd57e25f9b2ab5d861967878d44b89fcea6346fd64c794824620311f84c499f5d4ea80c246c1c623f49f5dfbcf0f738c286215c8f53b1faba9048e4f818bc3e066f256c14824a23221563ce889884304d74cadb60523a4bf1818d41b49b2e6a77da915c1098dc19d253aa277c272412c9838d40e49b64972fbbf0379a904884103600c15d0a1953dee6b57648243206f3b04024f27fb0e107553b548c7bf199732e241251838d3e983eb7da56f5dcc92963830f6ae5cae57d60544007080020041b7b6073964c4bf93161333d6cc0461ef8557b8b99e3f2e52436f0a09a58e733171f0d848d3b50567da2e6f63289dd0e6b5a4fa9888a8893ad43fa1b4aec68cf8e5ea1836ac2863a970c4d85fc104306dd230360d89843a331ebf9427806af42c0884464d0638c311c90e30c1e1e011d67f8088387878471060f8f402462430eb5eb54b81cc3574de54005747c2012a1818d3860b51a2e45f794a4b1e1e09b10a1157f4363d32120c821821c21656c052236de40b46eb86bda6a851f1289f42883470f084c0003392aa0e30111d0808e336cb821b913f35afe7cc2cc4a041b6df8444d4cb5ea11820d3618427f5b374d27d9cb21d858439f5d73564f1afa332e031b6ad035564d65b7db24e521395c0c1f611c000c30c030669c1e1be80f4422eda35d041b88440ca0231211848d34dc6ae2f569d9cb7d340367380622111d2db08186c7daa45d37f6e97a66d83803e749ce71c16ccbb22311e0c186193861d5e4254de8b33d453046fb7941197ab05106ccc773dff6c364b3c950308ffa175636efde43b031067d3ec554af269660ae18b87c62ca90f11573fe9a60230c9626f32454c893b33c146c80e14e92a0211e2d2bb6f2c0c617e8f64d5abbeda33a25c1861734c1cf76ab4dcad9dd0736bac0e55c5d41f3dada2609f9c0036c7041ab60ba317b5432670bafbbf527c9c4132ffb5a3844a23377ce63c2db5960cdbb525d5fc6b83116ceb06143e6fa5379642c8f48048c1e7f05fde2d66ffed86d726785b29689491acfe93cba21111b5568df4d92e47052126c508117fbb0e61219d59982eac12ecdf799a8e1337cfca0810d29785615a6ff5ae3a5310aa5925a37e77c52563cb00105cc7e4e52936578f42191888d2798e25ae54e1d321e4320d870c2fdd51de3a794772617828d26d4f291e51ee59e921912891cc0001a00e30006c871860f07e38c17c3878b40870e30cc580f7141f71883cbb811071b4c2873ce98ff1ca305dd2ca16499c16dd317e23e1a6043094a96fc67d8601d3713128994e163f0862183f5118930c04612927e6663928dfffa186d03098d544e5e3c93332ce708a8f8dd05132d79c6d6088cb7c7dfb41053932bc26fa1e9b33afb4a36229cde9d63eb5ba3bc830c1b43d02c3bf5573e93c91662430895cf5ee5cbb62f4b1204fc7b5f4fade4263d40e0c4fc3dff52524ee50756b2d5b0b396cd261682367ca06888cfe96c982448ce43063d76f4f811892cc0460f28cf0ca231fd630e8f1de30515d0d17e7a404087dbe0818d1d242bf351dd21277e116ce8e0cb9f743fd5bc885e5210c6097454a08b5c9825da83c64b21b752d9052e700d97933019dd92a8dd22ed58c296c966b9518544223bcef0f1e3bab04561d5c49b4fe2769f36461961e8681f0e88449ac719d4452dbaa04509ba98c509ba904517b1f0f6de5eed24643e1a8908a10b58b051d32a87b5f94b61081837b881fb30a38c1e63740d6a10899c318373361201e38718eb238c001ca18b57f09dfd996eb129c419128980d1862e5c918a65e8f9e5e4317d4222111474d18aaf82a8daf8ab9cdc219108182948228002c00023b12a1089e8383d361089f8e9c12312e173021c74c18a2e5661ac6426aeefabe2934a4eaafd1aefd949859562be127b432cd78d0a2e57a9ffcc673af14222911bdc800c3142ca48400c6a50830a74710aabe3dddd6fc65c96fd6186064a17a638e64f617d55235f9e904824e9a2148d26f5ef8f19f3342705776327768ae6132a338a840f9bc4ec68794e3751541e4f324952ceb691cee822149d74f2ac39a549080f28fc112fd9f2b098be7ec29534b38ff24de1e43cd14527fe3d51f3e6effb30931874c1092c49164ace7192e72ec142179bf82f67aea8daf949fc7474a109339b27394e8aeeb55e269edfacfa312553eda80b4cf43219bf4eea52df5c7671097ff34489bd1b12899cf511468e1c398e0572b84f408718bab004ea2ee9d51662ab5309b3798c663a13de6f4a9cb5a48c269918273393e8d3e5bc7ddee5952e09c2829fef57ea8ba34782d318d18d1e6ffa73489865fc56dff347d4f9b24eae92c92eb923ecce27baac6594d11bd1650d993aeb6b680f23aa7839bf999492a4bb08cba3c9d932e528e292720e5652760c194f224e4d594eb6fa9cb53a8840a5e72b776bf80c9dc410d445217839e1624c5f25779a10dc455d3be9132ac50c828a5b9fde4fdaca600ba2cfafcf7ed63fed09841e35aef37fc6cb1810f466ac9c0c19259691c3145dfc81cc731aaa37e34c7a3f64959314f2efdae93e58fd61528e4e95936788d0051f4ae69a72fecfe99caa195dec01bf0c2677326d2f131241177a38aa7c499eed440d16ee220f5e5e8c299d184bf493bbc04309fcc49bdc7b1d4acb2e4d27ed78e8d0814bcf9836f557a8f41cbaba7811b11c92becc3194892726e1385c152be84e94a678e14088a7c58d4af5297d83926973328b7183a65f52e6478d6199363467929d8bc906e37e9e18aed364b6863c57789e9aa8944e0d59d0502e9e3f2c6d69d0838ccae62bd91f0d865a341dd70d13277e86fe84e8a0b219303196760a76194cd5f162c65dd4d764b8d4ac464c760ca5b3acb1af37e64f1143aa22257166189a92b64b434db58b6028ee8cd69afc51f7173ee15363b494ada879210b271fe326c227eb82dd31ee3c9a1c2e1ca3677e4994705372b6d085454fdfb9164c711dd367935f2d9c8537a7eacd9d0b3e3216cca751db84b7af9050b59bea4eac60d1b6c2fe6d1ab332b763da5538a4c6971c5328b74d53814c51ccd3f465b8949ec2a12e26b97b978211963ef8a978a560145cc9ae3c9ea79b0205b353feecf172fd9ea0c6349375374858e784322afc4eba7cd142dd04baa5424ca887db30c1fc239e935c1974f32550e9f6f25446b7aa84e3b4db4459dd6c7292c0dea5ff999872dc1b098d4b6ce9edabe78f506aabb5aaffcdc84658c3092e59a563f12d4226e639297126936b8890249ebc96d1b4e26708c5a9872eef6e0fa710c85062c8935d3eda41686743a47aba7f3e2094d3a498d2db89afd90f8eca29e9bc5ab4b97ca046c5fdc9f6b361e21eb876f132ebb6739807d7e56fcc214334f63bb85657a6e35fe8609335ff2edada499d5ca0677672924eae17e362933b861234e6afe8dea21c63665b0a3fc135b6c024317db8122e67ce5ab4714dfa2a51ae2e498b2ae3c7c2e44a49e52cfe0a62f2395c5924bd6b4a9ae7a7f4db58e41ae773c52496696e61e1977b999462cc9e6c5fb18929a70ee6e1624deb0a53844b7e2569cda26dc5a2a31725ac983427cb8a725f3acafdab4828b35afb348fba2a4e1fe39438bdf7de49c5e9042b4136ab55dea8f8d2e54a42b8f6a69c02cfd96b326ffd86d614f988895ec45dcc4b51cc94eea3bac58a2a294e9ec3a56dbdb87c14b8ea89d9da7f6e445164e5f2d831a148d67c7279b02828f0d44c89ce27cc8a76314fa7f8d63ce1cb592ebbdc955aebc47352aecf7a498a9a13495216b6263474b43651e77839ad1b63d094263ad953846c4e0f93341377ee910ff59c3d4d1413e8bd9fe5bdc52fff12eea65c72f26837d95b228f1119be792594f1b6f1b0ee4a3925de96914c5f9b49a027e9d55ff6b20d1b496051a22475999e8c4d244e9deef324a571ad8104be1f5f974d4c55d53cc2ac529e9d72698951e388c7522e3fc534a26d4b8b373e1177318c304a73b4624c29a26216c169ce2a12fe317e1a452856d14f1c3d492e691241459e96381bad5c348830674d3c6263a482e610fe055d0b4b9bbecf186289381b2931954f640a61bd05b30d99ecbdc41022df9872b7561233ff412495c999faeb926d5e10f798a64b748d863d10a4266d51df4ef51c406cc1935dce4d5e61ffe1dc5592497b9b2bd77e502ac7bc244b89d9e13e9ce64dde642c5a74f960704fbfaaf3a1325bf670add9bc7492d3f55af4506ecd9d6ea62c845af29009699595fff2a5b4e0a174c2ad56ee76f24cb9c3792a45114b79d5946287a724a9648b1531b3943abc51d573d91635540a1daed8355f1baf3386650efc2539a6d0d40bbb15399c7c3ebc49716328b11287ec376c38986622ee7ca2e2a5f206475ba3b362099e4d8a1b12e53c7f4999c136496983653e7e2959be127c36e8a296d2a1b3e9f66b48aa9472f2cf13cb1e3598b1eb19b2a36677d3e0a7bcc6aeff286bd140dfbdc87ace7c5dcfa06b4a4b8f922b4b3543775e196931c4322d4352d29885b9907f1a32f49e2bfd7162e63263a8ba93dce9a6da7411032756783ab91286ea84194ba2892e6a82818d317f542b49cc5f7e810e936f39eea549985e703b55a478545a13cc2ebc63a627bae16c73c98523bc444f15992c77b9857c57bf04ef38bea9d442f561d7fb399f2b6516b8906526f49eba9a2416708f2aeaf2ee15ce925a82580aabd1add0547c088d774284a70afec968b4685625ca542876d96cea58629284a760bcb8a1af29f22f2b8583a674afc66c15d5281424c3d726ebb2325048fa8dfe74e713e8ae0fbf8c27d8974e28c5cfd22ca5cbf29a700cfea1116769b263c2ab59343c6a6b32b684e463fa2737aa4fa604a72429c25536947c12ecf827cd9c1412d0c9d8deca749b2a3c42e639469b8fca084ba94459e59aa8131681d3efbf0e33e76e824428471f1793e344e7ce10cc5e62b59712c2de39ae256ace9fc241a0df553ac9d96b1b20d49be6c4f18a3e17fd41e246cb8d3f9f63333ed8a3a4a5545f4fbe07c9d9abfc53ab870f0ff42425eff0269820ef00d3949473cb0074a05e447bc7e482d02cd55963876578b8304ae5f3cf47a457778b44cb5393b01a254b670b72b3a7e82d17aaf3b5b8fa7a3d7e4e25984f0ba3e5bce94cc1cffb59146c73672fb563e4b230e537d5dc27168ba789c59818d7c302d1f47956625c65fd0aabaec39f20bb82affc9db3b5565426fc58be9c537d31566839c8acb47b4c7bda2a8cae134e8cb3fe699a2a8e2d3529b35ca6312d157ba82cea6296a4933454fcfb35fd3326b88a760a4bb8c88b7f82be84668ac2db4bf3224d8c9a9522c99fa9bbbc8c971929c8f1247249ce280a9792580cee1f991605bfa963bf8576ac43518e6a2eefbc63515030a32a75b1963de513fd9fd027ab498c26eb095efe643d86d0fa742231a62476855e8929e584e16c72fbddabdd4d987d2dd2cf4cc8531325134ec37b69c99bc944492fa9645a0a13d889299f5096ba441a4d70cd26799858294b2c5e95251a1b7f2a5589d2be539e74b245c915259c8ab9f12fad6b8ed524d2a896cf52e79b182b49e4a37133a5962459ac22a1e6fdb4b61a5c3b2b4824d6b947d3cf55b8ea11858bb5693efe4aaaca11668ff9ebab3fceffd4884b46fce24d2ed97c6204beaada15db84f2382d023dcb139ec2dcde4e8a703b3ee8673a39859d12b175ec4db9ff728c7142445f5b52e668fd191e3ac41661154d0e29b31d32045aa1ef92501722513e4ea667b28999109cacc13377ce3c130f62fbae901f6edaea1504ebbed1c4e0a3e16b20ea3c61e355f874290a88e592446aa9da96fa877289966297462ea87e483c6dea54a51e2ca60fd54b69e793e2e4d0f081feaf91f1949d97b2072b548e116b99b356f4c0a6f7d7cb394985310f6e9233fb98f7c9ed111e08b1084f4ba20916a33bdc298772f3b6d854911df8124a3d7deee4724275d85b3cc5f384c5ced3a14dc994a657b6be9f4382fa469d6cbd6c8e1c28f943a714f9ad76c7418ba29abe73b3d78643153a4ce72fe63b7e43a2874af6a72f63af1bd0cad99226f92d54d306d3a6fcb24cc29b56d8a094dfef5996341d5c4397525d2eb152a58b6a587a62d37353f4bd347c967be282c614ebd0a0fa499a4bcef9fbb13324f98e7c753a1bd5cce058f40e1eb6c6f365a093943945ff3cc12743493368b6e8bd274c6378263fe7b2b23a411283a59f83668e997aa2303c267487971018ce37e9c9c8a81efd021d97e409ad34315e387dc99c20a3992b5d38fa7e969c3f4a4d922424128941245286088a175c7832dae7cc5dcfafedc5165aff24485e5732e801811178a1054c36e9434e30a942be9048c478918524f1ee4e4e713273c70b2c147cc3495e76035e5ca137ef150b96b4fcf4b35e58c19b28f97c39e6bbb75e54c17c9ee52262c122d790157841853f06a98d5bd51be90989442211304040c6ba8f1f65a0c08b29785379bdb14b7450c00b2968c08b28dcd99e243937099997175038a355563c85cef5e6c51312cdd7976b7ab6b613f4fb0cd3494a4c52b49b805c745ede4da5a82b134ebdb2e994c6e6374b58f6df44acce4efc8a1256bf987325493e8d79124aba37ea1b7d766e44c271a399611db5acb62394c376e61e934bad848cb0ed6849cdfe9895494824c2021f4e0602bc2802b7dd2d65ebd5a31e193e7a3c1822c881811cfe8233c2d0e12ce0b11ff8f50c44222cf08208fe9c7049c8f28bdfb91743c02d8d055fb9aee4792184a735db889d1c56e57a1184e20510bcf801ff297ec66d6b133bf5812e9ea14e2a786d6a767848bfc08c1d60782047067494c08b1ed8e27d5207139354375ef0a04bbbde9af33d1f3a2f764067467dca60f142074d8613eba3e887ec7c2e38a98c9ec77f63ad8b8ba3e424caf79c68c6945b6472bcdacdb9daa20d1bf75765ac05e3ba62de31ba9294a28526c79578e7b652d1c20119dc9845f1a7366ceaa8d4ad0471431664d8bdf093f6f9ac92e3878f1c3a1cb023103762d107c98e19de24692ee6062c92eddc52a8eb4f89d11baf58eee26e3d7bca98a219375cd14ac5f767af2e4bbf15c7cb762764500b75eb062b12724cf8fb2dc9365b53b8b18a43977cbaf29bd733a707375491f579a9a58c27afe95424f5ee6a31a4c4ddcb0f6ea042b9f419cbe1aab7ea5360c95693f49231aac6dc30c5f973537d3c75faa68970a314e9645b55cc9f374f38448706cad8518687f48f2503004bb8418a1ba3c8c2d3ed771c4bcb7c0c972a5b0ef5c0a2a8921edaf24df6b2bc22bb0a0bffea30ff0cc7400e1f1e52c656c01575254990d24a5ba168d8e9d2d8e89c151cac28687897300fc9988457b145eb5f7ed3cff3bd2a38c1d259aed7ac686a07385261e8f0964297d4e13e2a3ea1242c53be4bcd491ce038c57e639a25b9c76d9ca6303cefec9c766592523cc0518a73484d396be7b324896a000729f2f7fe9099ab3911e1188517e72cc96b65047088c224af6e6b87d911d5ccc0118ac2c79252897a6692f11f384051dc4a9dc4d9df4d5a0103c727dca84935ebb2675c3d51de1bdfdaf06db58e0c31c6e8045f49ac9b2a21638b1e128978000727682f295696cb581c9bc0a109a38f54ce497f2978161289ecc091892d5e8cd8933a211dc08109bd4cd37f4c7125e57b89d35fe5134e3a4322114b9457e953856bd84e7748250a2d26b7be9a64c594c82ef26a723dc99b7242229110e09844e94e9e9ece581279fa2e79d4e2e2538c4462d12413644acc122b1c90e83c3579c84080e311e5bb90717b2d273bdd11c6b7122cd964fa0d7a2336f9e7ad734aa6c40f23d6d73539ff36774367115cdad4f09b62be30e11f3c3c06ae021c8aa0a44df6b0a7aa41d7445067219f9225c95b1a44247dcc90ad394cc54987e87248af13dde03084f92aeb55bfcfc478fb29c4a3596d3c4569876547f310430438087149f1bab47d5bf7c459b028c031885a4b52324cf41a739c17ac0640b0e3b88f1e3fca30050e41709234bf66f1f2d16347e20884f6212f7c2cc43b833924a0830c1c80d02ede3b669a0c7d2f878e1ecfa30638feb09f94a424a59d2109c0e187f373bb4948542c31a70f38f850e9b7491b542dabc684f0d881630ffd599a8a16935f923afc038c21e0d0c31996ba83798e49bbffe8d1e30338f270aaeb3013664bca193c70f19349ec4e276d4adf819eec246ed4ec61826b872ea989b9e4e3ca73b20ea544589adb998b71a343df57b92b6b3ea1de9ac372a29847e70c337939381d26dcd692cb799238147d3c26d94aa9f8e90f70c0e1abd14d1634e5903fc1f186b4d5a7eb3c555d7b379c2f553586bcdf5ce26db8eb438ce7cb6103e335b9712be4bcd86b387fcec94b32ac86e44a974ffe2ffc4a9306b4645d194d6d51dd82862aa3462ffbda7237cf4064ce7cb8643daf55080e331c6347bc9abc61234338c05186fb84794dd22193894e86c3e72c6163593777d6078e31e8d1296d86c9a5b9490c78ac3df1f2ce30301f63496ccf83a1109dbaae515267927cc1d1b7ec0e2727c13aa6070e2ff8ab2126ed962ef82945b18d492b896a73a1ec396636d94c1237698b630b5976d52bef3f593e80087260c0003a7cf4f8b122c881011d3bc0a105cdf6c27530694f4c380b76a578f7715f2cdc26a58cfa7f8c31ad5730495bec3d8f66f2c658a17829996931a13459aac0c794dcb7fab1a98c0acb487ffd7ac820c3026ac03105c3b9f5a6760956f24b61cbb549d00cd96f4f147e4dd27dcc490a27c550784bb47099dbefb1fa13dc2c96379bd8dbc5dc0975aeae4fb97c667769c292ea39a3e61ad992c2842a666dcf67e199525bc2995af6ae235202995e2c4acbf2c97a12bc98f559b765010f31ce88c01d702041ffcc9ffcfb3e8217e34bf95427d52487eca0030e2360e25710db8ca9c7f245782acfc6d774255b5689706c782649b70df596212476b9cf8652fd4c08cc091ef2b9673d5512178c610603c0123882b07526cfead6f17e7220e06b163d4be426b7f507bd5eb4f714199eb5f9c08ea9b72ae75dbd6c8594e1c38c761f3b9c0547023fccd040007c80a3075b48cffa13f3cdfd8444226398f162fce0e163bc60c7f7d8c13b660086057c70e0d733904304393090c387bbc0c792f1fe8153e0e001b266514c68db69fb71ecc0934377879aa4d135c4a1032a76c9b1937c9ea6d90e905cd826c6cde96ed5ef1f128924082ef0b5942ce93ba9a72cc82d92c7ff52988e17cff3b638c63093da53c911d1d742cb31f64b8e8e16e530265a2a8deb64726661d6a85462cffc981495c55272a84ac79458a4596308f36cd2769282851ea3a535ff04f20abae44e1ffb7153ec9009405c01d20a105680ac02441520a9004105c82996fac9b01c3d668c38e405653400c414608094a258e2febf8798564b482f045c0c1f61e400e30cc74048195b811c8f002105c828404401128abc5536b6c3562ce54141869ccf5eaadb96ee273051d793675cbff2c813c5935c67563ffbe41331403a818ee79f1c724ea3ee9c2889261fe5af82fba89b48b0d1d89be731e9a568c291da144f281f2413c5b0196bea345fa70e01c1847eb12693d093e1fab9c4976747bc4b4fd47c1dc412556ce51e718d4a165525d81dd5ac52f9ea634e088412d6d988d96db2501a0e89444026c149163c86cc1b13df21c60e2580488268eb97133f73ba135f22804422d14a480fbf2327fb8644223f0081c429ddad76922cf3cec903904718fe39fd4458ba5f2c0610479ce264dc588d39fb6223fe689a317c95a79493308030e298ee244912be345c6b8b404f1253bb9ebc993279014411b8647dcca82645893a02904498620ceb3985150411df06bbec9a673f2c05e410c9e7342a57aaa9cf0a89440e0f07411b400c91da9bd431fa335bce844422659c01a410b46aa7689f192c193b7afc0fa700194008b16ef68dae5ff2687856001984d9267f8a915fa7eb4e01441059b42bab09d3ce5169024820deac9dc47aebf41425800002d7384136f64c877dfe70ce187fe65556b12a7ed08377aca871e39c1481f4e1347671db57c7524807081faaa8d0954cd65793fa3d9483543e3359cee3ba7a70bd829d7eaa943d2f1000c983514dde9cd8ec612ee321a136675647e8c7fce500e40e9acc742739c9fa71317000b1c3fb61fba4d04a622e31241299001b40eae055e59cad4e103a244a899a69aa1301640e4911e5266a789cbde40191431c8c258ce61493a161952f80c0a1acc184ee1bb1b5f8435200f206d7f2c6b4615b71352606206e285efcd292b2a38c33dc053b7afc1003a40d85f1cdcc65f2c99e3936f82e25f6c965c9fbacc178d27676d9f897581202a206b6baf723f27f4f4bdc053c5e009206bc53467c7449c9c78444220d8206b3e8699de4c99bbe9dc1947e3b77bebce627cc20660029c3275d12b27e5d2a3719b202103218d2f14c0acd2dc90bc818e858e9ae28a152be28881812dfee927ce7b53e1648180ab99a97ac70fd11a70002864cc2f7cadd837cce1740bc60de13268074e13ac1a32f49967d72b8501acf795ba962c9311812896ce11213aac2f698466504102d70f1b2f63d4f867141b2b0a650a2949ce358af068285b4d26235de258d7f8f1e21631c319c0072854bccf4ba463a49621f12891c01c40a7cf0d9501136d6d12404092055389c97ed094320e487182328638c311c9023c78f19f80f1e3d2090c36320461140a8003285bc22bb722c5924dea40b2052d0d34a305bcf71b4fe238044c110f1d4e8fe4e6332047254200708744840082050a02aba5f6892077942bb1596212c66e5392700e204422a95349fc1739a0ca409e87f3a51ad6b10265426e48969244dc6f2d1a301204bc0b25cdda492d537018812eebcf6d1e9fcbf630e89444092d0695cf8b42f7140c78e1c3b725860092048d8d4c468f92b5c4bde2e00720453bd546a7f3a29561f041023bc715a9f3ce684ec2863cb7000007a005284f3f633c63d314eba730042043fdcf37396879ae8e10064088cabc4c50f16635516c2714b922ae6d659cbfe062041e88470b9f8525a524e56200708744840070d408060b2b297ecb6785a412980fca01777adb463bbdfd611407c70872c9352fb9b31411f80f4e0fc1e4f6e1e4be52b203cd82fc79f7dad0c901d6c0044075fe4c24b9e799f24496aaf784824f23d768494b115b82f70f1f77a2ceb183d54fc849801060fbeb84569423febc439045ec60f3124f0852d5449b7934d4c9249f39ff1430c1e3dc420c317b53876dbc9f406bfa045d249b9e12fe5b38e3f8c59f8f1e6e46a5b2ce73418be90c566924ac7099b2e9a7c2cfecd1c9e520e3e96db2e7c018bfea35b861c8b5591f9e2159c24ad5fbc6adf5a8e2bacf469f3cbebe49cd75678521a938b7812432d168851c617acc83be6289299829df059859ee94da30679b1d6bf50c5fe19bc5389713ec3938a524531b1824e9d4679067e784ce10b54f4f1ace4133d750add2a2739c85b3690a3023a92f08529088ddccb1e6fa2a296c22f2bb9cf04c993aa26457b6197ffadaebf4a4661dafe4aed92a74dce4551d584c97d710f453909f3d7974992a663a028e54c2917e261cdac4f1c196ea67f53fe9c224f6c269add9909a21b4f66f045270e9ef33b69aeac6acf09d445bf921c19ce4a7e136a8961334b43f35f471385cf84d598a6cbce45f045267091acb74a1d3c9e184c1c4b54cf0ea3ddea9613beb8c41ab6e4fcb1c4f24a1f147c618953a44e924d4e315bc548040c00f8e08b4a64e9a77c4b653ca59e12cd2771a66b2e7cbde8e38b491c6791e13486dd664612a54d139ba4892271e612f6faa5c43cbcef1f80c1179068bcc34b9c6cc8becc23ee3ca2963d86924d8c99a231be7044276ec133423bcd2d667cd108efda3f562b0922ff09d9d1811f5f3082fb8dbb8cf166ee2da22d69ca84b874c16274a9084df0aa9ff7f413d24ec479cbd6f2af09de6b410453a231bcd44d4c387ff4be800c177c7188c2e74e48c99ae77d43acde95b2654f32fc422853bbd6eb6f1d3e8448d3d3de489f24d919841fbeac4c644198bf76b2740e9ac30d44755203e2cdf559bf12fa37fa877b2e5b9213dbd3523ff0d1fab52e9b654abf0f58d5b7c9696ddb449f0f64cc93d462a7cad8fc1e6ebbfef0acd1831d673a52c46a2de5f3a0b59494d484b83ccbe301db649b57aa6227f777e8926568918cfb63f27658daa4688de1a87410230261180a0582a140180800886a7c2600831308303044208d0563e1a05cdd7d0014000044321e504a2622261a1216121288c3a17030141005c38030201008864381906a10e76a62e305d72d1b211327c7bcf8ca84c08d040e1ae2cc94d42194d2169d7c484dacfe9d0c211dc1acb9e826198e76c5fcf9113288c78850643b891854103900fa3a02b39628ec340200dfa098f060433e91e90e826416daecd7233056d942e0c21329155dcf86002ab254246a4e64b4a5ef1e5adfefc5a05743283ea1268afc7d1ab3177c72f54f51292536d601df875dc1dc97399480e956ba1a712319615588a18a904dc18e27617a90ceabc86568f6750091a4d555bb7738da78049007eb138b9d0e6a900b8f98603088353bef28bcbcb107ea090bd91aa299828e8d69f14c89679de6c05c0940eac1cbf23859215fe5eca9b1003d2eb1438500e4568ea26e24e451256f747b71ddb996598ce06e344e38395cd7ede08f7fc3bfc88860606580a52e4da65449c3303118afa58ba4534e9c5546b7d391e0a15c14cb1d476cee12934bc4225b1d0e49e733bd4430bacd7b732ea0c89d2f54cb8d72f8ebb9ec5e70b0e88e63cae9510bd123d2e4b2cbadf2cf8796775f60f72268121323a01d530640daa954d1646f8aaaeec66f60e4674e544bfdc8097793e17bf807eea8e8c6fde7a978eabea8b0fc3f6a1aecd434ba0cd30dc54bc1e5892bc2d35af914c130bac09ff7274835308b64ae16e0da47549690e013ac02184ad4ee00d242ce8847342496f6bee0576244e99af3373d976cde4e19a42185693368592e5645922c865beab82d1bd969fab4064174188e4769d4784e41c19b7891cf706e88bb4ef074d55908754bfb812dc708ac3e8a8267d789a3b8eaa314f1a8446acf90fad7dd95177a064887b30f7a060985cc2a70ecd37093b53f64623793ca75d858fd164bbe9445ec20476c42209ce07d99d8652d5fed200d3e17f5bd66a4369de878ca3fa5efe59e9b32d0e5c11882605d8e13fa04b3a4660534a82c949331f8380fca014f1f28dac9aa8cd39fefbee0d3652a7486168c7aa4c92a71efae6fead18b151bbfef42d8a267b70328bb2b140acb3e1cdfb61e231b53532b89aa647e440ed2e193409a69e5b122dcce2b93b34cfb9c578a69b4a80685d677d8e5638ed4e8a1809f4ea3e011c881ac2f29e7260651cf20eb2d887a0af2f532203750c1bce16670f90e4ae04db83f8e1df1c65aee0d177aed726fb7d8fb167bb525bdd992bdd39642d416dcede5b4b05eb90b51d61e203f840e462d06993d7cdc94560924d0735312f12ceaa0a928e112dece640a1cc13d3897750f18a60ad6aae10e3b090ac954c4d04121d631165cf07b6a321591a928314da4732ce4a37c6443cd4547d7fd6a3f864b373efdc78bbe80901b8e481f12d7c848378f19534e6fbcf6f26f8ea9386c8d0b538690979f56c766ec21de8d715a966e6a9b84484d1b1089261bc8673abbfa3399f9e276a09b88110a52f3b0ee0ef1849f6190dab540ec392d6d9bd52540e6ec70d9097271c9e2a8a0abbdca200e4ccd948a50d5f0391881a23639763936860c13978ebf162c6d8cac2e907f4dceb20b0e9b36231d29734479da57d4479d9632ea458c7a844b9a7abaf494e9094403e569557994330df13ca904a7a4e9a8534b5230c15ccd373726ad1df80331bb474bebfbc3cede504e0ad936bc4cf3398167beb159aaf66c2998264d9294fdcb4632f895f5d2350a142e2868fa0d324dbc962bd797ccb6a0f6b1fd117af1b57e426ab14a9055775d6b2cd68062af9e97f2e63e6f1cb0e2fadc98d615c9101df28ff934fad23aa05b4994edfbe2d7103762db7dbd328553add2c39c488af4496fc0177aa22483907dd063298587c7c37ebfa157e335e88da74c503d6ac4ee9dee63a4637d14a592604c062e0d9426982abe230156c154ae5262c2659e6b5a30861baafdf1f0c56567b58e10136ce7bbab96b2ca049fa84fe7d9e0701471696aaed3b47794d5239463c769887fd2ac4293916816d87a7fbce8855265bd30e33c6ea32c544b698b2f559b75f957b2963b9f4d707bca2b1f02985a8169b47b57ae3846124b0f67ed003496c938a77632fba84d8cb29e4efc9591da43b0bd1945852dc63da9fc02e98a04dffccb81cadb6023700bfdbb5c95d3380d90a329f2efc3bbf0f35163c6ef39a783c6e645aa8c629b23c586c35161cfc817d055ea29b413cb6a9dc54a8853610897674357f0af27b2420d06c1fbb5b35c671fccd5d54de5683b59aa3decd1f034220ac33e1d4d4ae52d008a2013bdbb07d9a8b99f578951316640e3d447f4cd3a39c7205a3c007cbcb288f78a4a0a392ae9dd3d21cef3dc9987e8fbec9708314ab025dc1f5e512f6ffa842ecf7da0d129f530c728680b06c702a24c75d51a9d75e03d67b4196828ac2de15ba3b655091392d6a0dd22319199df13e63d36d728cb58700898732dc9fe68703b3136f36c125c41633387f9f085a61e05d2b26faee98c016538856b2b2a13048de0afd90421213cefd0a40d744b15a5f5d2bd9064fd06ed1c27afd38c4c9b100018091f3337c046c99e2a1fe362457afb949514f03e15a40d872358a9f1237f1fcecaba7ff3219074317d01495732e506fb772e02c551cf6e4b221331bf0a50af3c0849cc6e6290b90d47f1c1e58f0dfe3e5c8226eee096798b913d4967d90922b0b1f8d5a9ad3352a6c6b4ce30f5e3bcf797b1353cc5b47f7423219c0fcb1c82ffe09e1d324dccc39536eff5255021b12f7ead9f24584a948226f91280912a3eaf7f1d812a150b2609b3201b23ab058eeb858dc9533a6098806fa74c0d5c031f708db012d5affe4ac27cd68d97e9237fc28f5239ce6999c397287f2f55a2174d7e19e5480bbb55113ede2a7d4f8ed1be0720d97234e55957f4df582eea4d036703239de1a962b6b33cc4c4fef6d49b0b75574f7558ee1e3923deac039e443daa0b88b59fcd147deb23cff83f31790d016b49850215bc7783e8a77a03bd6b0dd29c1c4caab1ccc93c5302fcb2a2939dbc9956d56ab4e14c1a81850b3656498e283ae39e4859ab8853369ede65ad57074ce7aa4a3acd005298f33d9337ce78ca9a80a69af86791840850c41e0eaeaa2120de120598f0382fd029f082fc2446deed69a4a14bf76a38bd61d80f78f7a203c13f89173a0d03381c5f78c740566da12f0d00f485dec61a1d13b86d8594296ff65c45e6a6a7dfc63b78b47909eb958151198a9d32bf3935e06892b4db3c2d56ae870d1b8fdc9e31741cf1255e34fb0c7e776fe1382cd362ef73249118119fa8980f7f0f11c37f150105650e5c465b971104768adad7c5c20a4fae3d10e624548721590e534a72a26ae95bb52ca8c1505a61d82de060e87a84d8ea3792936a390d22ecf5b0a7a680ed19284d58e789a9305034c8721d2a719040a99c65c9b0ec959bb917905211a5db38593c3154ecce7bf3e274864cba75a21271a5da42c1d021f355c2b0a8c6d4e4a48978f08b34f0958d9ae8e6bcf36c04016d3dd24c2cf92554f06d02dc910c49152da55ccf4fdb4ba08875db45204c18bb6634ac6136a1508a121863e862cfa048239922026fca18e2e1814670922a4820318203e2fb22d3ab570a99353e95c6a8c52f305b2021cedd90753b3da4227871c27fa741a4e2a0c7c8af45ec87f18ca751730907535cbdabce24dcb24c027409462f61536840981f8a0c44389f323df77880f4f8cec41e49a137d679fc124ef4a2d3e284a9740b8db0dc75917a7e04a9ab6f6e847192bfc9929fafe189e3f900b023fc6886fc29d868e94104307c86b0aff9028adc1d8ee179bed3f9abdcfc8303c70a19227f76083da38d99a0455b102d209045b8dd56b8fc04bc1c941b2f054006ee841d85c31dd41d152682952db8f9fc5d873defe0617f35d645e42b3b9ad73d08bb5305c7cee13668202874d244a114d7f0dcb7936d5f42f5fa61a13c47753c60999446d6d570addda33258bfb6c6591fdcd86203d094ec8a04b768222174422f0a3ac3fff19d2ceca51297c02f338de2e00f9c3b64f0f69c9d666c352db68fb4cfd4ab4c6b06dc19bf89d1b5f1229920912acf1540f176ae4c4ab0b3eb1740ffcc0765f35046b5b420a6beface53ca3052889b04d7a1417486befdb5580e33355822bcb1ba83bc6b4408aa61fa2e4119beb7c4b862cf00fd2aeb9a637ac9338de99f6b31ec11bb2d311737cae334b14f06a841e08788bca1b20e20714bd4d67029ddfc3a31046a61106ab071f76106c3bcbc6f0e94dbae823d528eb7259585e792990cf0ea8892d9564f63115e07774794bca301f7a905f6fd458106901d02e12b549282003d085c624f648ff63a46ef7764b451a65488d046fa4843a5f3b50b4672ad46ef02025b21caea5fb71470efa3e6b186afa3ac6695ce0ede2cc6e4c2de512ee928b078f9ca847be35ba67ab5156b92f5f6902199c5aa3417e9255e58f564029156f38f66c961357dbe53ea14f8053b4fff9acdd63ccd54a18609b98f58d4542b50db8eda54fa756796fcb44be9318d81077f0f3f229cacaea2866dbe9a69d1610043a3dcaf9061eca116f6dcfd68b4df4f98b41624d9766dc981599bd36fc5f4d3c43e1954fd4c310e583e47f2747a9ad9ecb0a01e34ca9d3bc6cc7343bf818cd11e3256f12211d38e346ee59d735dc49f148fe41e4f28d3b55c406ac94ea0a4c548339b225096cad46fe58b2702043852c0f8260be559452012cc3efb5e484730c0720134c6a50b95e85fc84da43781c2d63743eed25f7269d34a5c06a5a62903fe0dd70469929e1f3428d35896ea423dc50dcb9e0d724d5f894853bbe29a99bedd9a2aa73613d8a24e45ca358f2f107809ee5a98805f23d4981d01c7e1c0f12f45017a64e7faaf1f0b83ff0b7a8d235a149d424f448be62d48ab6701b265f3c04a994b002b169f4bc8a3dd1043b7cfa33babfe36d71905aba66ce4fbf52bdbb475b70ecfe5a574c280198035e012549fe8f13c35c24c98b0c15773aa207d4ff59d74917897bb2649e4797236637bb31be66d98aaff1d29b79d648ca4fae5a8cdaa37b2341b63669e6f3e1d32a73f1f668a2c6464b6e81c425e1ddab0eab07c065fdabd7c08cfc96df6366670910cfde4f6f4d9587adb610142a753c59e01df713dff10cce8dd77820c0e6cb7d7ba6129ef2236392e1ad20dd438e458febe4c97528335454bbee476210080ba5715b4af00359e015cbd55b62d8e4d36ccf502704dabb01d07e3ab536cc854ed3bd7bf348defee9125c478df615b6ebe3b78796cc974c81638e7e249338668f792c5f60a7c4e20770f6adf25a75697e168ea045fdba81f4866882837e9eb63c567f53524e353b643e686a63cb9e9b6207884a0722e53240aa1ff98f88c97cbe3249801d18205ee68bb866e5e12b53bc4214beeb766cd7509fa4735e8ae6d778d9488159526f07fb071ded25919cf618a08c1cea20b50cb84df45fdc89ba751489ca6c192b50d1ae3cb09285dee383dfb411fa20e9447aa935ffbec3bee8f151dcb9be787f724c639647e050d023b9ac477aaf839c0020f27a21f049f2541939936aa7454e39ee0561aac2cb2ca1ef8fef7c9ac5f7daeb6e0ab12d51c0d2bb8da5601818f0fa51f41835b568c1eef83c261120748a7a4e76df806031d6943661459e8cedf493a77d40121665e8406aff8c97f68476585db25c6b40879c405f057139c9dbc2a5524734d6d92049dbe777819a16008191ac7d6dec4c42a14031443557072d959a3056435b9e4d2fb821b29e2cd917b3b8732e7180fb3460fd2498daf67d27639fd81ab129eca6a2529447f9f96c322aa953dbfb9d1fe4a11033a82d2cf84c409347f3ae7f378252c1f125143c2f7f4b92606410da9f08eb301d7c21aec7d193aa98b757f7939c2d6e34252080a0b4c60662bcc9ee4d5d583920d36d257d4bcada6ad5531321f17e9962f198de578e6896794915c59826ca580a1cee5cb2dab1e8e508fb587672ffae77e8c969c68a996b70d4ab304b932ae8c1ed78e0a90e558389c43fc49c240442d3d9d38f73004598eef51a0ea443ab29f2be4a81317458276782ce1dc3c730dde153823721fe162decdcc3224402a66d0450c8ded923924640d37f7ea60698e46678cb6b31a25d1010c984e39aa0e660afade5a84355d2bc46c48f2aa1ec3bb13fe485c7a6885638881205c510f1224e1c2bd85ab19b637e4d8c38f6030913b73c99c9bb8ae73a15b7cf59213027d4db348ac33b42a4a18d0455966f231381bccb7d96ea5ab8fc4ac7670cb4218ebb8d357d1d257bf315632cae2850aa256c9edcfdc6abfcea5ff3011329dc1e737c099f784a178b03ea3191f4c9cd82a4b056b180e4b998e2d047c1032af3050245b5b9eeebe0ba9abe6e027f0609ef442f5d88aa6e355da4664b939466f0cba42e9020ae84024b982438ea10f93967e8a380aade9be8e41fa953144b6d0e58a7fa85ec24ce632bc78ca3211ae0c4ff32573a143f3aab00e93d7d761c92231b2a2a74c2f63ca797653835ca393419c98f4650baad1da2a56b194e1800ffc42092616728be0ade4874f804e31180b39925c9203d2ec1af2204011c441e3490151e13c16b7297ddb103a20c54d65a6638796d2229443e228b6ec4b0a5d53a247aba7021219375105566a25920912847839975c8c37ea97ea7b4820bfc8ca9d133a6fa936d676127b29c727b108f2005a3c84bd1fba200f9dd2be4bd74aa95a815967b2655a2184e5680c4c6045101c0d5270193feb02ebfecdd4355090728272a6bb8f03853565f9b604d8c5614cf12d3a669ea2e9ae1109f888a6b5045a3af05e2a418c1db031c56110e181f867d7707ff22186c2d0811a706d052a97309b3a95d2036a10599bf5bfab1822ee3e4c54a0191730ce141d2bb65e76022c7ccd3532d4764d5c4253d53babc01d0ac9c93f2c847a1ba9154593db78bac759a578689e971ffea31c4ac8d770c3a95385bc7d14f2fcae8a04b5a60434cebfcb8d1f3bf56d79981807e79b67de3a20bbc2072e47a878a623732ca9ba19f48597c249486329339c671db51e640cf0fbee7b9e01c2fc70a32d95019cbbf255dee825b49a59b0132f60a946545228b3e982b33584998aa99228a3334cfd5d6cfa69a0aae97d9bc9fcae8352690f9ee564917fa214e365b839b86b2033235ca087f25d8d476143cb3ad6246d2759e481f0d08401014db3ec54e89b058cea9112501f6d4e999aadc1d16726a3f9f4ae06c42ae07e379c0a2d07045926c3de871aace863b55f87a7676fafa978d0d0eaaf112f98e9e2dc44025fc92544dd38a6ca291a5a0d52895607a022a4d775ca030ca4aa59fe64780a8bff786dd77af6f152db82ccb96c0bbad7879f511583d8b6ab97f3c8c1dc4a2263154173970ebe3c5a08c6965605b1865293c6854b605bb4430171bc53750c0bde1bb62d08cfd010c7c1c9fcf4e443edf91616456cd4391a2803496d6f8c2e1f153729e7594346690ccdf5291aa0064df8d90b2913f8b0a9bd38b063608b614959846da0ecdaa119825cc823585f557044cc1a285d6f1b4fb77f8ad8116d3fa11d7fa80e6112d2ea6407fc3ed8af5cb434d5b3409f70f9e751e5147ba13de84a502abdd683207379583aeb29d7466971f2cc93156fe6434fd136bd81c33719280b458e30c7db439ccee27f5c6cb9ba4391032e5f708cc04598ce95ed70bdef4b537c76ed6a88334af682adb91a2876a9cd70db3c29bb0d5c833189215d420ebcad8ea0e0be22e288e8cc1db074b9372772ec54458d25b18b3fc8bdf7a4eca871b2355537fc062197cae18ee2f989cb89b61ab9111565543df92fb31ec9988b8637cc93286a454dc226e3f01ead2d24fba1b37937f64db88d47243dbea33982b31123d37decef124a862ce55810eaf5771b5e702d5290cf96ec9c4243af5da908e3919ce0ceeac5fa3b1efb22e6029b2521b4dc016ee52c9547e547759455cdcd21b148b608b55022808f990218f1efaea44458f3fd36116a4e616ba28069e2a8d97157265b330567f7466eaa93184cab6aaeea0ab4eee2db981f2c1e720b9f13803d2395e3644d321540c1bcf0f2d8b197b588e28cbc2f38344f40bd34d9d1c9b95826897c43dcacc64529a9791f8a4a494c1d8d1816b4daa1458c9bddff24ba29e41db7c1877019894ce8e8b086b83b5241cb249ba50cc8cfa32fbce8d085897be9ca1a0ea48852319c3f60981a029ec1383833013435fd0c71e2f448097cbb04460ceb023dcc57da6e449dd1ceda35d80060dab3b5cb6234fefb8c0844446e33858e83f5702c2999a82cc475b7a28a259d6374c2e2292ca2965c7292fc7ef12fde28e04a26281623166ee91a237c92bbcae19075da3045cfec416ba5c6000d5b9abd9984765a5f0428b2efef04b791284190a53b6c7ae94b119d65a3196f65574b05dfd29ef2ac0d58a18058ed0213fb840640b5ded6a06c8239aa66c987c173f5ae40fbae9aaf3151d0870876c30109a1cd0ad791af057090ad6d2bde43cb095f4a88e4e301c25cdcce0841557a626dc31c6e514a761dd75247b8c2f3658f32fc12fe74c89c1b2c3c189c1cfe64f1630e1917e6c13a445865884042b11e4b9181b79b1b2fdb1afbb66608296f48f98f139579483dbd3ad825f7b0edc332d9249830cabeba1e3bd05885a8303aaa41a8fe0eb6b7af862cb408ddc76910ac4f3cb5c7813ce13416034b3e0ee8131062b7dea333db3e9bea4fe47951c57922e89d403cb0c722bf58b3cc5b9b887aca5500396c3f3847c0354d102d32f27a4f79ed405939a3487bd2f58e02da52e238ab2621268e3782788e9ab5bc19b186130779a92003f92882b7b2cb14ed930509150561026b16f65fba791aa483298602bc331aaa45327e65b0313be4175ffd3f9509123367f8e6075878cd2140278d0037c452d0092d1b2c668688b3fc900e67b0e91b46be16cdcd7edcb86ab26a0887a5844508bd7b49b23fcca749e4899bd0236b572293bf93fb43a0177a0f01a15278cc0d1da2b4fcb08798c73e4c3c86078eed4ba6acb7980039f3edbfdbea3dce951c88940fb9b64e0ca311423f2443328be296d46aebb6643facadc209f4ce857b0f479750968865441090c8e743d89df0207dd0b589e5232e47223847e8bbf7bab2b8dcd4e9c37eb2234c247f9857a229ee0b258f45f0591b3e2a7427841f5a5c889f27d6db38b0524764fb8eed8061fd9736823af47f35f8f98bdb50fa77c1d2c3d4f02a13ab11cfe06f4eb8c73b1bd757b49cc07dce24714228afc9eae6d730cfd14c90badedc299895ff69b01b4b362a36693d307e3d5eaa8ab52d66b1cad28e57f011d2c9d6c146da6e1754b6b36661dda3f3b3921e249a348933eaaf8841c98fbab00b54a403e1b635a88b5fdffac9dea3f0a54f28685d97291a18ac167ded10b9e212dd3a45c34059b4765cd4bb51d43f53e7afad1633cf21afdd4b9dae3e69ffe9f83c5b2f1350414d84b73123272d36cccd0f78b5bff95089024e7421b632b9bade492080f705f7d31f018a9b3bd10da6daeb80c3302543d73bb118aa60f6acf24f5b016aaa12f99f660f87dd2be59c83394b686ef244e668c4a247ff95a0617d56cbbae0a7a4c791e72c41ffc419a0d0057ce5cd618bb91c85a2b19479aef8b9f54d551128c3d8d0b6b9973e65873fe9adcf134e4c8762b5bf0bd9e4e889b0cc825d710b899d66d71efca6897d2b3d407cdf71fbab5a72dbdd9818b4cf17ff74ec97f9b251086c3f40b7bba8b4f61f11244a5ff463322b409c1c58e06df8b9ccf7c25b8bc2bc92c796c71a9271490c395a96412c73097dae31e23e2803d427c81b8f167d2ae7a2bfbaaa87068c95a11eafe6cbbbbf28ab2b292b73e565119d499da812e131a2ecca369b0b1d2228d19c6e1357745f7d1278fc92b5fb7a42f95060a6dba62995268b5a87a8914dd11542e15f93cd61b893b639323527475977dc24a1206876e20f1ee57d6c8fc5f93edbfb1703cf69cba5c88e12e133a9aa1a615b7a195bf237f3354a6a20528b0ea8f5f02db0d2aa0c6eb9c090a0a4d4960c54e799ef3dc49decd1abf18a1b2bab65d08ab7dbef26a9c1372aef23041f9ae59c1adc4351794e2e0ba5bf43524cdb9dcc9b024aaff40fd6ba4d5f86f5957eba3c7502d9dd00507bfb16bbc78ee0521ce6e38447738bde91c594861947771b5bcdeebe88a2fe6155cc04e417f737be578503616e690bfb0061b23286bade1eb6e4dada902c8e87acf2d7d9beec472c3fa4dcb9b90d67a46db71f9fa861de1a014e52c0f1a5e943dd634c99ac594843667429c9c1f8bbb68312776a0831f8ef0778add4db9818649bf77e8e2c37c34b7656cd064c0721f9f0b7641f19f02a3274f83df7165dcbc3e4969d555db704c23bd1f3246fb07375795dee9b6e32d858d131c92e251e21724073435f99d93453549e5685921843d8e88d25e340649f3f60ae5513461eabd1c20aa532e5a4c7849429304b526315c25845b14b37444e00b6e31cf6fedf73f1958099f70413e694241c00f67c83cdcdd28f1f12f0b8ca257d6d43c8fcf24d5b869232dffb948f1a7fe59b944404761f677f8fa2679110aaa3bedeed5e3cdae0742600e2af488d9d162825d4da9191f9655143d4b56859bf4ad0991568054ae03ff548d3f14789b80907349f02a8b494d5aa09bcdda2b0d00ea74b48fe1679dbb0f73111eb562b2406ce09b45ba240e4f927165a35f1806aa8200630f975c052050ae1abe319d7ce6e82cbb4d4c53ffec2ca497ed471bafb6a24a6af382b52724929246935cff9e7473dbf5822c3a0a2783fb7a2bb44cbc5ff7896cf7600947e6dfff440174d1eb446b23feaf51079c09a45765e068b364a7c3b8c2cf8b90438041466a8b67bb54f35b9f548b40d3e7b5d7b56ad0f5d716f57a88dcbd8e9b2ee95eb5f779e3137336175e73d9c9b6b1b8a2f9f638f327d3fe1524b38a8b257667d9ac924bc0f52b36358412f0ee9356c8bba19c5ac2d05d9ff4b4f9af98427ef35d4ef8edcb3c9a7767e25408c1f31d0a27a810b51dbcfc61829620b68de893115215682ff61e9a4c39cd52e0c058d272d916fa05e90c3378a2625a0f2383b95a1599574b2d4c05170fe67f817c28e4a9263815983be184a256df4d8b992322e3ec95a94ba15d602275ed4c6516a51f0c7240bb266151e7b716c0659839430d667a683410ea27bf15056b81bd8018c51456571fac3368c4c9a5ff11158b1882f2e1fe99db7a5bc1bbdeafc5974e075fa562b2bf24a94cead0b527c918f7046d8520b2fda86e08a2464fa2440c83b82499eac1797cf72d27e170be1288661151a8e9b5ecbd44e7d82c182575660a42e7b5b0ccc79f081c7585e47990618ed0153363fbb2804cd88c87e84abfc95e56b7b75aaff53b9a3addf7592d668d08fc68ea5ee96fe5d4aa07573938e484add69f24629b79bf25689e79b4e9212644953e0b214e9ade55795111cb23dc0011b38fbe9d9c5aade80b1a199f01dc106082ff8c392be67bcddf72ea6ba5960209e44bbbadbf540ee48c3a83d6abb9830b0412bb1c135ae5647a5fb9df9e09463a86365811a12432e8b65b73e055c044dd99527c308b3ef3cd02897d2b6e78b04c7b5e4c499fb67834de805d3d44183184b1900435f39a181a5ac068be224f4875de34d3de6e3b880302a02280d3dca08179fc32646dd44e98aede20d1216c2c01fdb991b7cf45fb87384eee469549a59dbee798ac2dea2a07ce3741215244e5ecb57492a60cddf552598d034cc9b528e48c25096b4a32661060cd35b1c4b2ee54b1ee8b25a598dac2e473fa7958d26f060a96008f09ebd9dd96576f33bd8cd761be756cf78af443e3e1a4a6764caa1c4f2912016cf4cc3292c23b0b3c2d709e5efd3e2bd72cc46a6bb99ddd93ee59fb14785e9e1a1081ec2ec60baa1eff45109f805b606a620b8c9532a1b746e5fbae3cb3345418d18b6676c206a08c2ccc4dd7774996700935f76092e7a05813bb0368f1ad9152a2ac07fe5b5f1bb8596458a213afd77b054ce0091e2e23d2a4ddb38e337d9728d078baba585a92dde8ad7bd6d4442dc0b6a1349dda4552f1b8849bcd726bdc456d24aaa109e8ae37e3cd339cfffde59ea1d65feade892a01703a93768c7db699458c8639701cbea8304184b4fb957375636b64758777c21b5e4415aba5b389bc16b765ff9b5953f687fded40e645e58df53b50a2cf3d426c4735e35601a8f025feae588751201e8dfa54e6935bf1ecb15f429aedf59dfdb52322951c42c446dc9524995c995a4902f7fcb82c85c8dfe2530e44a8b4333c7cbb3acde6757db032e4f96f2614ef3f2857a244006b5b86242e591f66e3f641e5d83ea90f545007d080f0f9e7624396a1d16491576c6d16e158db32df903eb7f233e7545a237ed7cb076425a75c01c66173aa600d0c43c9907e88decc2a45a563168f21f31d7edd2bbec8a2578df744dc0bf99f7ab44b6b6c13462d44b6f4667dda86a476309f427570f28dd20e74f376f1db407023ff1285ce0aaef4a257c5855872a48d9721cad247925a8d6f77ace2ab92c93eaffedc12ea5e1c6602eeccaed87f3e064030c749456f9aed2bdd0a635efabb5afe4ac07cf7a4278dea4e91e1ed1737470d36541284b2831cc71c8dd033aaa2bf404d8825b75ac53e80ab0756f4f94c064abc224fdafffd8051597d3248bfc50ed10e68440c2ef999067072cb2a54a782ca966ca984654ae3f99cddddd244666e8a46df053d698405601a0cea568115375e221e6e7d66b27d40c1ac7c5595c13c179ba0e563143848566a7d87961bd7df4457c267254f27ab6073b46f7630e1e1b4d581c2fd5b9616bd9f5a70358a80b4beb242020c5806e12d47cce56341767350892ba764fb4084322a383a59f757f1380e859f5189cc4c402c2222b7826e82e6d5d7052a0006608c4de509204b87c9d49aa9a8193fc1f7a62f8b3017af83daec101849f052881922c02455d78fc3aca286b93e854ce346535740a6eda202dd77fcdf2394181bf6a7829f9051d1455da4ca360ede755ef0de4727356de37ce17cbbcbcaf8b8212b443742a7ae23296365d3c0acd6770121688101e5b353db83fad635a7834fd8e65c80a553f21ad45854aa7e3f83abc29406f714425605732434d4ccfa2eeb39e83ff84e8db5fb04f4991345ce53d560b9aeb6ac2ce5b349a1c8a441e749eadfc8f5e8f0fb223e9fa25753804489876dd8e934609ee4902a40a705a7503c63ed26f72f2ed4a57ecccf4916790ff46fe9f0abbf29d1f3856eaf2a6dc830ade1cf15a2a25264ee96de8b5be1c5aa39b24f4291aaecc2277e5a57625a9862f5b230bf2956ce80e606222869f481d7b1314a3034133239e8d71c27d85df2f6fcf662751c931667f732cf65139b4082b1d13fa7bb24869d1c7321a1c97370a8bf442a6bfded79b25c76295241a15d1f5fc153cd94d018e538055f4843a4d13b571f5fa3e12e9bb034f3571516961d82534f450940d64a015e2fc6af0998a81ab53989ada7896cf1682aaa056a2b15e975808f07a2b1169f910cbed8aa0be7ff789ce739b7e327e3fc1edd293ac8d4c7aee21b31334132695adfea88a1b50980d1de600b5441e5354a8e145d3ba59251586f6945f4d71df71a747cdcd532032cf5bda9225ebb7bef18a1bd6a70ebf3c6194d13859d89b439bf1658ce5de35a5fbc731e6d018d64a06eccf387497200b469c56c13e3936414d50bc546dd0f0d4f9500aa53a590afc147166439a9bd35d26b931cd17641703eece45e70e3440aea69003033ccff33ccff33ccff3d819df570409bd3b2525c105da07554b4a922d5b041502665f6003cdfeff7fc17ec2890a02040f1e0fe90eb7a7f8d57292ad82b45c6e4d51bc889638a96392b5a5f02737c54fb775269f90e27edfd2a824c928b4da0da2959e2d8926a248cc635693523ab3c95070e55f529f78c28509419194fd7163e53bf90b7ee22bc16dd4a429b1b5f304df29ca86f25c270c3a5ad2eb6f68cec6893e732a648354a46c9b58f53cc6d52474c91ed30463f11aee2e9a3e6399284cee4d8247a765fe60c258ea9bf2ec32b3752ef10966f9377ed2287f59028ff927459b58e16255893d2bc58572effbb4a1c4193759d60c4d52d4cc244ec93de50df929749024c1e7d7ecbf28126cab6fb63651f919125efcb04b52863bd17bc431e5a4cd4c56371a47dca14dd68c2d4f67298de054b367e6a8bb49533d326083116b26bdb0986c2c42cf694d2b6f6efe9d4644d2f81124053614f15d12c5b385e8cf662326b09108ae843949d8bc41449967492a44b8fec687c824e55bca92ae6bb035e0041b8678727e767ee4263e6da3109410a6a1a2c48bbb2c21f49433d9dd4ac8cd19326c0c620dd33995a6d08620ba92f4c9cc7e201693d9ac492eae6d1410e71e9fb012cc3f6471a2c3f32559cf4b16d8f003b6e7264a8d8d7d0567a08218a8c0461f123ef4c526f19ecb5919d8e0c3d21e3cbf6d453f49923d989b97d5c349655e1d2036f4d0257dab50211b794033d6f677a3b5648307b23cd3642bc6a5fd55f0031b7758ee42fa6fae6dd8414d63be212eec99b6a50e5589ffb99fa43a474d0727b453b666f09eb750b131077f63873c4b9a5672921c4c42f4c60c2d6f15bf387c1d4ed8b8794a8ea1c1818e31ae728e11b71767c002e80d36dc60a30d5c122646f3e6b021d9ed45d24c4e986b0d67eeeec890e94fba940d35944cf490e12e5c3491478060230d47669993b59c4ada4643925cb9499aaad3c619b2dd0bb1d5f9fcc46bc48619c8d20dfd17438d7e090ed847ca50ff966c455f7bdac98888480f3690044934202202840cace6f8953ac93d7c70a4878d311c4eceb1f3c466ced41964f0600636c4a075bcd0912a9d31ad2322223db01186248d7aaac9b7a413346c80814d5207ddf51e4d511e11110162e30bd707b1da2a4912cc922322225eb84f784d1542a225a61111912e24c6d5899292a6eb587ed8e0421d3e229f625276ce16caf7ca870d2d7897bcb2de7420592835763eb1d6e536577260030be7fd98ac7246fb14f4326c5cc1eddc9ce9ad3c367d464444ac40d709766d975ee3d955382bff52fce6cb19aa1ad8a00226acaae76aaf1e19a7b087abb9a5fc9ce4b4e3c08614940bff19c777733c310a7994a84ae9c32423c306140c1adc73cfe6496c3ff2843edc9d14bd2bad47d706369cd06dcce5e5eba9c41c036942ff296b7d762ad32440c828c3839031c2831e41dc064c286e2ecf2699a53be1c4c6129a1ed32d29ccf6c99a12dcd0be2979eec94193842cc51c353ddfcb62030989317322b222db38c2bfb184db641d1b46e03a5512234a4ef8b247c828a38ce4cd204301368a70c7f84ee37539c78ebb0d2224573e09bff898d0e0860ca3967b0be5a7fa5af9910b8cf1830132081106561574a292c99df2d9c3db8719272418e57a8a7f861e18e798a41cd54ffe40c82fc81721bd08e185f26ff2a99ce7924493110a8c00493ca081905d5cc28925e5096dd72415a28b04b98b3ab35cb35e2e5a37d7cfd86fc9a4181774169ff4702715fade62eba0f7f526d7d9545b98b1692e874e6932adc5c1432beeacd7b7420b379c695d7a679de5233d7e0439c3c70f13320bb32abbb56aeddc47cda040882c8ae925c5fa13377bb623222269ec06426211028b905784b862435a11c28a0984acc2ee0ab249b0f89f0c5185f14c5c4bfab2dcc13292000a4945082a424e814688295ecd954d10138db7d15228a751734a6d95793f529cc5834bd66dbc7e276414f5a5b01e8d32e9045f14bb585ba84693343f0f452171974a2ef55c5382025171b9cd49d27c267e22afcab424a7784c2dc413e6d0bc1223ad3cdfea44a27a995ef4138b17e644a9f6fe4c0e1d4b737213cd9f60172a5f58b7146922c136dd4c26e9e4e3434c08c984ee56be9fd54bd83862c23a7963767989c1d58284904b789ace53453c689a6589904a109dfa3dcb9c249467005084104a248d99749d3b7dcacc43266196b4761a57cb1022094bd4f8a1736fc9a1f6911e3e82f470108444a2d8b0bc4ff5a36b9721041269bc4d29bfda63087944a1666ee346257cea1f6e86191f70800ac6e881770e7cfce0801f421c4157aa2ba411079796bff7123b9c68064218e19669ccd5b52f2164119a24ee6c0ebe9f6de30eae10a2885776fdbfa4f4cc2a552124118a7d7dacc949db2735c23d4210913c79f7717299f82e1016841ca26ecb2d49d66c374f7520c41049d9ae3eef718f200e64032185e85eaec4caf4022184e0c37f884ae9e69f6c4444444484021f320863b54f73ce37cc07472a102208a3cbfcad5289b173de0c218170329649456d9afb5b0b2180f8f72fc8f59a14b5da1f8e12fe2eb6dd42a6a81f9e8b9aad3e635627e1903e14a531a685ae9d861cc287f3b5e3e6f857624c1db287e37a554c42e798b358881e12db37254146d334e72179e8d393ac5f98a44975081ef8a0a36db3b796ab0ab903eed9db3aa2834cdd217638cdbea264fd42ea90647df617ad332793103af023a6f94dad4e8a61c81ce8f7d02dd29229351a111149a38c32921e40c80891439969794633c571130b89439b1697763e262b407a00494636040ea58f7fd2a61a4744448090518390375c425bb887d733dbb8a1d8b4bda3d5f13cc85e868f1f3dda50c8dd74fe7d7fa903848c1036906e62548e09bf31df0308196b48b078af90ee4dbddb87a86199540bbf25edddbe232222dd49481ad0107286effe44347d39222232460ed8056e76300600c0106286ad63e47fa494a8259721137f47e7c2774a0d3d21840cdb9a984b0aff17e1a990319472f09d8ad58e6f133150619e34f224e1e4670b094352126c636731e14aa3400e3cc8074444289046f2e3c7052e30c6183d063b0bca2823c9410a4444c6e0410818f21aa9fecb8ff52eb220e40b215ee84d3ebdfc960ce942081742b6d081102d942fb5492a7f5132e573c02e9840481612a52f3bea4dbce93c1a675820040b8de6a70f15d3a9b4845cc1109784d0eb8d1742ac60a8fa94d258ba4865ad105205ddc35a54e3433ae44b08a1c2952dac745647c7306720640ac692888cf9da05da0c32382022122285648d0f711fa6902814f79dd35212337841cc2063a487fb800c203e08814272876492d22b7cc7840368843c41f7cb8c3dba9b463641429c4096a471aebd0412d204747a3e8698af0cdd9980d4beba749be0fded12308f7d6238918d29a42d085102f3ed7731e7e53b3133e000178424c18dab7f9f0f7565d24828b4956eb29c34c670861c813e394bd4dd9d98311462844a66b5e2971c327815528433b985e474524b8b0921428d61f0225fc96367c9adbd8630fabd14e2f2332549b082b19fb879538e72b125a74727a10630ba9d0be17f1bb37964f4d81e1410110182010778608c203dd8408d5f3026c45c4e72a8862fb2974ea1f15dda537d468d5e9c3bdd634da6943d2abca8f2676b976f7ec69c5df449f64ed0cc1553ba75712c2d9d3d399b8b3236bea794afc4dc4970e19ce5acb868366626b738f97ab424f161d93a5bac1e4cd294e44f397d925a785671ca520ef71dd3824f297fdae4f7dbb3b32879aeb524768c8a5522224180b80dc868326ac8a29c3a2d8917357694198bc2f9c7531f71040d203dcca8018bdfce4fb82454dce82b0c95842c131719d15c71cce961fe613352d30a2dccc7d206b3ff4bb362170dbf71fd24e79157c18ea5ad2a3b37b15e557492fcb77392bcf2394c85593448caa59a4be64105e76d62a6fcdd299a4b424acd4ed7254906354cf17f8f584a6531f6fca5e03f894977c57facb3a450dfbc930917556c3a2fa8310ad2635cede59a94f8c6d8400d51d4dab999677c1568a046284c490ecfba15f4400d50945abeaa43fc26f1e4d4f8440d4fd4e8440d4e503a9636bd5bec586b6c626b686204353251031329a871891a96a851891a94a831092d444ba6640118a18624f6f4ae26566da64d91a83fc951cd5c531e17755103129c144c37c9f7a3521f06281111111169e2d9a90008a3c623ee0de6194accaeca51106a38224d3989291e4f73b9d688b453ee2ea16255a78a1189c9ab376a6846cb7a11c9df3979acb81a3c4720d450445b5567da131583fb89c87abc5ceaf7d2e7434451e52d658f99aa3c3f849bc32eac5518e44762821a8630346612c574f3e45f28e0831a85687d73de6039864d138d8888384044640c163820050ec841102068dca02fe0ce817644d42084694cec3831f5f6db0791860c3f9724614bba5d1089f717a5f285c5ce3810ecbf5c4e1219df1b06847a593fce43fb07f2dc733a398931733ef183f9e73f675d3b553ae903e6e15d296a273109257c28f77b65ce5eeb6e49f6a079fa18eba71e0c97d3c6964f8b0d691e703be97fb3968bfe89874cb2e8992edd6fbcf10ec95172e2ae8ca787ed700aa3ba31c77392d6abc359ade4f2b687757428b7b52449960b96f23687a36b062dc14c7d4a8e1c281d4d169d6bf3421387672f7cea8ff54e471135e050f4bac5142b2656ccdf409dfe5ef59cd470839a236d354aeab49ea4461b4cf5595ede5683af63d46043521e9150a9acfa8daec1f094e864fd9d573c3524853c978d5927c7aab750230d977e2e4d1706a98106caebe54b4a16262bc91914cb94a379864fcf9a19fccecded6ca1a9e25486af4ece2147dd5c3c4f8634c4e76c7af31832edf49f433a35c4d06494b6bbc78ae57518cae1175ba72e5b8a070c499ee2c6ca1dcf2ae22f9c755d9ea3bddc752f1026a6a4f9a1eb266e1756135df1d0b53279e542d29a4445da735ae8b750466ecab1552d94a04616ced20c7a99fd93540e0b35aea0776ffd8c4911420d2b605aa9bff4a4d09255c13cdd5cf558154502420d2a9439256f73132d7938853f6fec1469c2a546470acdaa87e5eadbf3e0d68842f9a772379e673767a0e0753e9d12243fc8983cc1202e6dd5b3f1d9a1130ada49be14bdc465c526783f2399744f7e5083095bfe6b7e7797eff0975067cea39ab48347754a404a736d4837edb72d099f64be75fde726a1470216d2e4ff937e4e74b3c611ea24974763de566adf08456b798494a0da9a1641cf39dc5cb387cfd4d42082d993f867e6f1b373c34818cd6a2568495d0e09a3afeef2a974d958371889afb261ed5a32b70b8c2b68364b4f51a36f4502017e714cd1ef43b389871b7d516c7bb599cdc70fb9175675c558df60e279f2e2fbb2b6bb789aa9c75d74f95ae51c8d1c7f7847a62bc5c6cf4843056904f1437193c96dc9c1377797a30f7c9c56be7e8f0a39f860b4859e19ab9876da1c7bf83d7f925cd34acbc51c7ad8ea93d86692a8e98236222272460f1f417ef830411a3f72e4c1fc2589dd59a493a5ff100b2a90030fe518735d8e7fe61c678e3b1cf2b397c9e92b8cc7cc48aa90c30e26d93acc78b4ec249639eac05d69cc7d52a7a4961fdac11472d0a1d196eedb78fb54e273b02f7ed7cb4a98f8b70772c881c84e098f69ba973c5d8693c10125e488437b65659e97d3f2db09193f1216a41104004ec8018775cd4f638ce75be97e83495c3d4b927a3d794e0739dc70b8d470f91b1f89418e3618175cfea73bba3e9d830d468bd6edd3299a753ac71a887eb11c3ffcdaa4d4600c655b52a98935ab9221471ada541d3f68673641939820071af64ed9f2cf5476db739ca1d4246566cf7eb3cf7398a150e2e67e665a0636c53cd5fd52410e326421773733bd9a145e8e31f8d953a62bf9a4cb9ee7104362aca0e331da74f270214718caa3f3275766127e2b58c80106638808bbf7a4296cfa0bc9a9a4a757f1b024e885dc5376c459122c74b80b073f4f726bbd5c304dcc8e25dbb485eda2d47f6b460babe87a5eca1aa7269385aba412f37cfb58d0a72fe564598cefe71572dfd8565552e7ec94127258c1cc49a622f38c428e2abc25a51376f523324950c84185a7a44de9d672eee4981c53a83b8913e1c1aa3bf423e490829dae6bc28a1a85c7d324db7299030a467d84c49998f75fccf184e3c6b7e5d8b9db258605399c60fc6871c3757a23f626147f59fedc42b78fcb04f4e244f7d51b49cd12e8b0254efb4709870d1eed7b3e772a4b427e2362b27b7220e192d0b6cc9aae536d24c871842b4cc60f390da9241b81d616ad4d621bff9a1c45484a4153446b98f34e92830885878bc12f598671b4cdf321d91d6f34611c2a2a3387a54f92e10886337d2f0e60e0c93b4d8d8f6892022bc0f18b34c599e5b64c3a1ac7e10bbc354bacbdae38276f70f4e2f4a956ef20d57125bc28d8546d7cca76a18b5c58d9152b72bdc72a830317b5e999b89b7370dc22d93dca788e3fbf9b9b000e5b2c1ef65bad5dcd4d08472db6932eef475687b611072df0d09ea34952ef963642c0310b3b7389b9566a34991dc0218b47acb2db7a16ed13138b3eaba7d4b93c94ab05072c3431f9337cc6385e710e25aa7bbf8ec315e7f9cdfd27599279c3d18ac535648e27a6a0177370b0823e9988cf796bf53c3856d16cecfed418aca7c48c6800872adad87fb71aa7474d3e15c5a451a3d52d6a668f0a435b434d93a7e0193fc59617433a33835ad9a638f3c94675e6122aa64b517d8eaba74fa1bd6252f82997873e39c5e0d78e82d58e21729d4c12cd44145645fb88096928ba7839cf5286cecaa03074e56d30f5f268e627923a4acda7f31ccff744e1bbfaba52ed44ec446927ae227d3b6b0a39918b96c7768ef2dad626369796f3dead93324613aecc5b4c92878f3766c25072e5af31ed5462840942e5e4d0bb6b9a3e9748f2cd8d7a62b650a9e0b0847ef627c7f7084d15bd018e4ab0e9b97f629079cff944e0a0845d413bbab24e7c24e9e1c3063d80806312491e6d2d4bc5ec26562322223d1222e090c451eb6d7ff25373ec8c888804014724cace41d39af4320e489c2e7ea6beac1f816da8bf8bfeaaa5f650010e471cf216e7e67b29646e2401381a41e660bee2597e5f3d8c384ce8978eef9b9e7811be5b6ee40991f69ea308f2d7735e13e924f9611c89a04b8c1bb5935827443810e1874eb914e5b26a26711c82ceefef5c29da48a7380c917431e55a594ba7cce028447135524ee2db63ff3808b1866ad83239bd76a7471c00081c83484a57961d3fe11084d966ee841283ad25393802d14e5abaf83d169d96077000e22fdd64ab17c2f187b36398cf992b9f2425191111e9212222820b60a00422e8000a70f8a198138fdd2598e059c3d1872b5734263964a9a59c0f898916ab744f2ae9a4e0d843a12ca7bcde1a3de43f6d31f7d46ef4110738f2d066f9d6c8afb8f5141ee0c04329fa7fce991c2adc7b872b4df766624b0c1db4831dc42f8a8672cdfba9c32966be4c79f33d96659081831fe0a083b1d337a7d706c13187b3f689277a5481c8e19839899c78551cce372ee96ede36610207bd35697f4a162038dee0a55ff10a11df70133470b8e1a43a6d96d7e4afcb7fe068c37267dbd1bc43060e369453cdd6ecdf6b284ac9c65cce9eb99b031c6a783ed33b6359dbdb9986e773f7a675fc7cf2674444e471a0410b15d359ffb464fa6c80e30cc9f93b8cae6a5a4a9f0dcc505b7774dc283943a78c348e326ca13289a9c2e8a5c546444480f818711c64308a9675c6dce118035349b29b170f87184e5373b2dd95901a33053c00003de008c31b2f47554c25edf63138c070b44af99d49f6c990491c5fa063f273efeae0f002f62166eafedb3e8aa30bf77c56faf052ae591c5cb832677a59ee3f3b7f0b6f6fe9690c570b6488cd6da7104716ea8ecf9ff973ada5c281854258989e9ed1ec1f8e2ba02af1ae73b17a43c76105c64fcfb29c45255909e0a8c29ac757c3ba26cf09a9d0f69cd0bd11ff572e8e2970aa953a45d5ffb89e21e09082b65ab26d118e2898ea511e3be6bf4c0a0e2858b379f753e6bd7be7094c9da75ae6121c4e386bfecc61b358bcba58004713d0607fd2559a92b25c389870a985ccb1e5e358026f1be3c768d5d86f7d0087128ce87b8d127912eeb8122c53c481044adea9edbfacbb6442011c47a02b85b0babcae1e5c12e030c21a5334754b0f13971c018e22a89a32858ba99e72da8c88889c8b000e22dcdf293a49f2592a95ac4044c4c70ff781193ecc20c18d61e021dbcccc3ff355f087a7e0479014888898718630d6d4a8a466f223222240c8c8410f33bc8c337c7030bca94e727d7ef408188826417253b67db0724444a402377ea16ff46c9bcbbcab9b6484c730377c617bafaa56a5201dc32040c6a01bbd40b4ce773f07dce08599664dd812db7d539a811bbba8e3caaaf38ea78cd60d5d186b293d25ad73711ccb917bbf8df5f2062edc363d13ecfa6398f3c62d4a132e65373b19b1051b3a967fca96cebd47e0462df4ceb1c755a79294ef1f36f0e48c20490e7ef8e080dda045ed5ac172d608bb943322229286d0e8112407df801bb3a8b3491f6a4cbaba74cfa1d1c381fc48ce9045c952899f323e496d4e2c4c16d95d662d2c1add90a788480a446ebce2dc9aac69df9cac6a4444c415ce499576aae7afb9c08d56309f9dd3ee7db678ba1313888800f9e129b8c18af38dc9397b9fb627fdc72a98943fa93446549779813134704315775a4d4d92955871bb54b0b17e5377d2d7c87e046fa0a2f4354bb75a3f39993d809c22d1a283d4acc9259a670a3b263a95c6d768934ab1f9fe44798e592c0cb8410ab4a3d4e9ab360aadc59220d96be2b896033244447280861924b8218aa43e5fadfd122faca168df3a7eeeb6427f0e8a2ec646e7af389bd46232cc484c30060a6e7c82faacd935f51ae9f1801b9e385acb7555082170a3135db6bc6de95df3f8991b9c687d2cd4c90f1bf4d8c4352e3e3efa9319dd480f1ba0b1de3dfc8c8481b88808057e2423dc3e4682780e44447e24237c431387a6abe76728d9e7f6c08d4c189f362b225e4d9ce806260ef6b71afda2e57d342222d269987101119134cc48e8c625cefeb768e9e92e21e086256e5402336dcd193eab2ae41ef4074444c600c10d4ae4155e2ed555489cfc24961bf5a8d614c2bd95046a172515eeb9965a24ee709d41e43e3720d186126fb3a27af6cf474444c6c88088483b1967f8e004f8b8f188630a8b3aff18644c331c03371c818d470b6f4f722c971b815f7994caf33de9638ce8dea42ff32a7f04a11b8b286795d6fd8b4c25c728825ff1f97fb31c2ba43fbc7ff8b0c08d44244972af4f59f28a332142f78bec8ffddfdb7ff430c3cbe8a1811b876063995fb987fc88cb888888218e1ffb46212eb92fb4a39d1c3509bbe00621740b7ba23925837873dc8b26e7f9687249c10d412c97eee55f6236f94c20ec907937348e5d8f090a6e00c29f2f2949e55e103446f087d44c14f90ab657158d8888a8e0861f1ccb1a37952407031a1803031a68e7e48c14a4e12128c18d3ed0ae2e799e53924d1d72c10d3e7c75b939c36e492e5e066eec61dbb312dd7f335db52322223c70336ee8c19cee2db7cee7461e4c13d6317b727633ef811b786864dfb5e27c0aafd911119105dcb8c3396c0cefa61e3327d934829c9103b74353721d63349ff3bdeb40577e56ae7cd241ab1caa4c8acd41dd4ea79926ecdf69e8861c722bb9f1de2c72e98b4325a6860d7926ccb9950429c3bb0137e070e30da564e749abf10d377c52d2eeeabcf95f62d0d0816b600337dae0776987ece828d96783daa1d22235e6c61a4eb9b2bb9a50dd50c38d344ce0061a6e9c6193e7d644cb29dbf7bf61062b499efc2b1f9541dbca6af184a8fa3811c20d32dc18c3b9fb4dda37b92dc9470cca9b9c73c44647fa0324b81186caa662092b13972d9be1e30637c070ec8d8f3b26674885cc8d2f1451f6ff9943bfc7df0b4fb5a711ddbad44ab9d105f272ecf5b7cf05eea42ceebd4929bb06c28d2da03b3da13b92b1bbd4029ac4848eaef39db7a471230b495317a32feeb22c8f05d5c4d7943db4956dee0a64d26072fab415ee4a2579a26c974945c68d2a2827c9c9d3e79cde3a4a854327d3a5cb583d710a8ec9da593fa53559298514dc8882313753dee6f3dbebfe06149cd6ef35314fbf49f92778a2cd6613a4b5e5351bdc70421bbe2d5c93e6dee534a1923afce4f8ece7280a3798e0654cbce5c877557f099406ff31f9183b7a2b3794704a3595c3c74e57a2e2841b496037c71ee99833ef9c48f04efd52ccb91b47b8373e4379c865704d176e18a17c2d958996db386f14a1dbfc124e4e69d9ac45e10611f8fca61bf382d4758c8d611463e36ff8c68926e64b604318b698b0c1f2c9631eb30bb0118c4cf44da2a7c4e6fbef061bc03047d728b117e6669367b0f10b254aed848bcf0c367cb1947d96a0e341fb62bd3098fc896dbfd9939c106cf0c2c62ebacc16c74e568b6a1aed030369b40f0c7c09d20842c60f1f37484600e4035fb0a18bc4a4986e1e55af76511bb928091e63b2f74646066ce0a2e4399cdb5594927eb2710bb425eaf472a6d795b630687e12a6ac4247ac5a2445d5379b9f12d70c1a67d0c24cd2b47f9e9db8e3cfe2123d4d983ed59c722f8b3da5b7d54cf499d36351bc2c6a9f938592731c1689264a6d45fd15a5ff080fb617615157601d6156c29fe798ba159a3457da93ad517956283a3d9226f468b8ab3885ffc669c5e89bc3aae83ee9a73d53b1540ae7d2d6a282527bb76806c9e6d39b400c2a988268cadf4d7258f2814c4193342731a7735238eaeeac56a85220461452936a2f06ab984b6606c480022126640917dede997a823b55a24b06dfdd11c57082727963963c254d3879e82467ae9c436f2e0613eedc1aef2eae8f592704622cc198f1977365992f4948036228a1b95c9264b82b3155b8013192b069e9a7b2eb943f392006121e3951db132d42ee801847e8241f932c2b7fd6d2474444ce8c11fe4b29dd83234092910f885104c2e414b3358979da1e3188507f68b6ec713da6941bec18069ec2bfe9954617bb760863d5f48e413f3f460c76042339d2846d998a59f2c00e6024d5a6a67aff707d5911111f64fc62954da13a35469ff97c41a69093c352896ba301e9c59b42744cf4a25e89f2420b92529ea2df85f9c49fcc51297f49c22bd8a10bd5be52dfacbb06b972518c1f43e79bce3377a560072e4ae2e7764f31a7fe2f5fb0e316b5c9591f22230a76d8a20ad14e62945cf761ac45425748c9e9774edc043b6851684bb158d65a9659f0e927c9e6fb9c4b7a9060872c8893b3c6b497e2d7a223222235d8118b04a98bc1ffc711119113ec8085bedd939f43752a497a4444a4870876bc82dbe8947b7b5f324e3b5cb156a5358beaec68052747ffbeaa32614a9a15bc274d692b136149cc2adc143ce7a48990f2fa023b54b19418c5eae75374149841da8e54ac6a397eb92a6dc20415f9479fb4b14f769ca2d8579aa2597efafc233b4c91c9276fbc0e36268ac7cff0c14030b0a31445f52593bdab2c1ff4c18216ec2085b5ee6963a3edc939368a76ee3dc6cf753c5a51a4d939db57baae2e83831da1386eb45bd44f69ed2f65ec00c515fd042929da66ecf884531eae5d3bc91b5bf384b92bc5faedea44e1dad5517beca7264eb8276da96a98cbdfd226ced9263f54cc5b59464d28e9d942b9949948b45cb17d82c5676730518aa11b276a697e7f893cc68d4887966edb96c8a7b62cc78b924f629530672c299524c5fdd0d70e4a309e71163f6c1262ea1d9328f58a9f667dc7f8c90448b3df608724ee4c62a936af417c9491821cec88045be9e1fa2df85709422239fd8995e35faad1ea116efa57f8609289976e479cc44dd95d3732891636c29cf94ab629d94c73ca08358ba5e69a0a9f6e2da294a3c465ebe31d8ad86476c66267546e34115a86aacfa4911ff34484fe9ff251bfa4ebe41ec2b4b1aff6d162564d3184de976309262741d35f85e82ec604ed6413a20da71317173753390832675ee7a32aef5304d159a79f9cf953c73809c49d5a3e5ee5ce6459020873ead7790cfe81abd41b2d4e97e417f3c321531c93cb739db104801176f4a1cedfe79de353f0243c2222b203325a0321d8c187e23a347994f8c5380b61c71eb8dc6d7337a3f9bdeed043d96a5e5bab2978bce48193a4ecb29304ed9b320320d881876f43e34b43848729f0811d77b073f5bc7b9ca8d9230810347ef400428688089032c8088246eeb083575749721313b3a30e599ed0a92eb3fac23be890fc2549b1257bfa1cdd1caa289725bce4a6f34a1a415060811d72304c7928094dd36a7d471cfac8983b7c9c5360831d70a8c44d733125b1fac3fbae013f230d15243bde909b7aee0a99ea5ebb1bae53e9f4f9c1edcbb3a30d9c4b75ace01fca2c638231829051c61929a0c10e36987f3774ff0793ea6e0dcb493a65326fb1f36584033bd490b8dfda7d096bb9ef1d697866f32c78417a9046d2021f3c50810476a001134da235ed9ea124e7d63be14cb69eca0e33944bb69370a26ebc4f193bcab0cf9f70f163395c98c990943e9a82c6a8bb4ad9310693a6ce147e532ecb80058821b92bbd24c9e58c69c3a069b69d4c093b1a27306c57b95a99a4cee48fa92f982b5612436f2c417edde1053d6783c5fe7e9a3449c18e2e94d17e42bc9bac69cf327cf8d815ece042dbd3b9e9f1a949aeb670a8e4f1637ca473857668c1941a2c58b69c6b5edd91852429fec44af7ce86754444a487193e7a04711bfcf0f122222fd88185d76635254a70c715aad3b98b724952596b87154ce28484ce88f49c35821d552023e5754a3629e76431c37360031f630715b04b8289276a9f58139b1d53b0d5c28479d17ef8e84101158cf1c333b0430a76b2def124f92341121388888c0449ce10114923c88e286826a74d51a2bd67d43d82fc20e347901f417640e14b67f2d459563bb17f0236b6b9bc72a86a779d60ca8ea7280b7de76a134c6269d2a7de4813333b9860d4ce398bc79790b9099a523831f52fdfa1844bd6fbd974525ab9b823096ece326a6a61a2fcdf8104b35334bb5ce9239416eee2c5ac3b8c704927d2d93e3db3293b8ae0c9aa58bbe7e99c991d44e0d3df65f4d87d1d2f3a8661a53799198f55d5be30d679edff97cfa4a709465ec2887b32314dc2a70318a7dec7244489c9793fbf58a3e6eb94a7a13d73be384b344c6dc6f4c2b8be3bb3f73d5162bc28ad7430d7cc39475776f1fe6fa67fde3d6ca043172639e5c5b4186e628af7c03df0c379e04304a523170957a29ba96c8a593f2eba984ede2dd9a38a949020881964f830c10b74dc22b768b136560e95abd1610b74c6364c4a928e5a24eaa7d16467426fedb4305f38d1aa68ce22d9c5d2e2671232643c093a64d15b4b4989be39c91da3041db1f8734e2bbe17ff4349ea80c52587cea1f63a62c2d8021dafd893d4d9e5dd84053a5c61598a4e7889584e738c76337c9491011191d6818e5664e7ee614dee74b0822faf1867ac5b0517edd69d664f10ab55e1ccbd8c7e4c97dc642a38b3b4dfd984fe2c295478c2a68e5315ab4ed3294e297b123654980a1337c5f9aaa5a33aee3a594a8106bf28d5f2e82045d7d1156e345a8e68758c823651e53fcb736ed245614af6a6a4dfafaf6528bc1c16c37375ca12962fe80045752544068930c1f6b3828e4fe8d57652bd0996fee7078ea0c313edb8ab6659b1093a3a71e8306fcdb1a7ca541d9c28d37f382bb19a0f3751479f8ba72b9bc79268c237213ecb7d9889c25da3a768cca4291d9838a2d2c68bb28cfad925f00ff64912f3abc3126c86dbfacbcf76925702d3cd2144ff3aeea39450b4427a524ff7dcce24daf3bba0db1f163949a22c265db9bc2a93f047c2368d96d1ad2f2ac6464444120d15e880c471e9355fcc8c92df3fe264177276498ef9d47684553a9deb4f8a043a1a8105bd60b94c8a283933810e4678b6b72925fd4d696d1d8b60935872e5c98707597528a2fc49db52ca1546fd2411e55776d6784ef1b9bb810e44e8aab6f5d1395ee936d2a3471034ce30e3033f7c00f9814606807890343000041d876035bad4ee49619f53f7011940d0f8800e439445e236ee422f874e54884a2c0b6352d684f0d36f4cd00ff14b2beb18c45a312726fb389e2e17046ad179a29ffaa7e804a2b0f13cac233f2a3a80d884e9682949795913fdc1b1101395c37a820e3f50139e3506cb4d9a1a1d7d7883bf86e53c81a0830f7f5ccfd456ff2eb5ebd8c3626539c9a9eec434d38321b764d14a7eb731a4230f9698a162495b999227c18391d39d476fc6f37750f7cdb269882701a4c30ea47c860af1de1bb175d4a1cf2bafdc8cc9df8d0f1d74c03409fe6e3926ef9cd331074cb3586e4979b30c02c4832422d02187c2ef04b77c313ae250b654d163653c4fe1d60187dcd34b0531fb0dc98974e4dfafc30d546e7e4b3dd136944b74d1f7ecf46c396c7835ee7aa5d4d7b057f470129b4fa898a9c1ab365fcf9a4c2eee693086c547cd98dc1a4b6ea0030df49f986ecdae34a5fc1912cb674bd5dbfb2e378319d2fcd7372a8339e547ef4a4f6fdf92c18d1735dc77f55878633886cfcffde311c31e3c46ff46eaefa784c1d9bd0c9ead3567d7c05094764dbfac693fc45f503556a95e0e7961731fd9cd77ed9bcc2e70628917b25e672a2f174e51355416d5fa924cb690ac57dda7e8b4f054cc262f13ff1db42c1865a97da6abd4333ab0a0e798b2ee437b73c53bd07185b28a9cac494a269b9d5670a3735af5c77454813a299a7472ec091b722a1c2cbb47d405fb6e7f0a7cb88fd7ef8ecd572285744ac8cddb4c92073d0aeb66a5d9937d12e88042394f9e379b8bb22beb7802e5fd751b7312b35cd4e1842c76b4bfee7b2ce96fc297f2c994fc25ece8a8830979942df92fcfa03ddd40c712c8f1244b74e7752861d7d7b0304bd1aa4e7424413529e1729e930f9b1d820e247c16ee6249f34a6b8e8e23a039e57c4c330f298d0e2350d1c49336ee454711dceca1e56e96e43b131d44306c5efbaf96c5df358ca22e4aae0d353b8b0b038df9b7a4d82f912ac9418e60fca395162ff3c0d8c2a7cbeec77ed12529e755f0cd17650b16a36bae62de7b91b86faf66d3a4397b7841fe9414a34d70a4c7193d7a3020c72ed0f8a8a16312f1b09932fe72e8a23b4b492b06cf33591b393972d1586e1354fe63650f4744446ce043040700921c2073e082de4f5249d5741bd8c08708cef0410211111bf8284302396ee1e776984b1dcbd24573d882f29c6d75edacad5120396a81550aafe1db3d62de1cb4c0463ce566c7149390e5608ccd318b3f655916c6c8d03d6262b148d4e4bae7b9d5f3c9c9018b4d922db69a58399724af38e693e24c37f304b5b8824dbd3661b3c9c39eb48250fd18ab1262c5f796cac3587efe93ed418e555c59f3335af4c9d1d3c8a18ae32b7cf6e3829f89e64805e3b9baa33295f67415e4400519362649a2a4b8d9570f729ce25c9d6e6b533822228201535829946c314b5aa5284c878ac7b0964f280024072992247d75fffcc4b31b8527de6ef93d5fb25ba2f0fdd2a3753299185d288c5223995b2d57a70814cfc6e8191f4e6c3fa14f1c1dfc3ddbc560f1724f9862887dd92739fa4f9d602cc95a576a0e4e7819ad84cda9dc52d71c9b48f0bb8b96951ef4a4736822e9c684ee36933e939709538c716d23ccee5208136e922429a1c265bbd4e5b8849d37a6e76a7da57a23222219c86109357649628d86f020191772542231aa53ee128ffdd721420e4aa49faa6b7669ebde24083926614e269f681dfaaec30824292303392461d20b7eb949aa50aa03492331418e4818a531d3fa3266caa91c9050e4845ded486790e311c9e935eb976b5c474768242087233c7945e3c46062703d0a391ae14d49e273b27c962c23de984bbc8b551a4ae54598f249954a2e8dcd495184257476d46f0c0df32622d16ece9327c9d01444046751bda17e94408e4378577662509bf29bd110578e3d93a3618e42f0167e5359fb84f8af4fb3ab6bcaee7910e5143266c959c5f27604816dea4cf23d26e58fc911883b8949b25d4d27db09fb1866e400049b367fe57c6594918cf1c3004948ce67629e2499b82f1e128c172e2a85b48c84057530c011ac746d3691e9fcc28911124deea63374bca7b508e598a149efd55e4dce0044b0e494b34982cca94589c7300c6e7d5752b6a6931e1428050f6158ddebbe71a354873e18b5c9e6f961ce1fce031f65f81969a8c00a3c80d10965c2fc7a8a9dcffd42b5132c4b7c5aa2c417f89944a75abca063f5e24e15c3a69b31bfa0e1c18b4c0ae9a541db63f2985db496c33e9ce749db0e70c0071eba40bc2bbe89279a0b3e3479b4f11739d9010e7a7ce265f4a0000558100237f0c0c51e5bf9f2b57e63bfb760aa2ec5ac4ca5296e83f6e6618bc23c9c14c6c39a5ce95adcfb316dcc9f112ed28888488f1af0a085791bbe9652acb7f6b3f8ec92744c668e8888c480872c2c297864ed89b12809953c7cda764c65241e04880dcc2003063c6061da05cde37bbfa2d0e17259ce2b155676c52a121df16bd28a572ca4d27c7bd2342b8e177d92d03e7ab25a3c5661d558af77accd5a29aa28ca82492789e6c13b4ac18f2040121ea9305bd2fa94a316ea5378a082cc2785889929b724798a742e83e895679362e7043c4cd1f99f14d7744e92c49412f028c5c13b87bc546b0a7890c2b09c5c4b925ceb67192ce0318a74d6efc48b16e463c54314e8c6b8d1dc4fde107e284a29e9b7af696aca37280c6e65728e316adcea7ca2f91825d77f33a85c3c3c71f449aa7f873c3ae1b5f84eb895eecb56041e9c68bbe64b8a9591a0a1032f234143071bc0018f4ddc953cba790ce21a0f4d6cb697d9534a77fbf68888080acae09109c3d87ec7545c860ef6e081092f4ff3ef7e8ea5bb59018f4be049ce2ed9b721621191e4c7064444921f8e3c2c618a48cfb1f3b77ee9088f4a9c52f2fd9996b3d9661e94784bfe8edb966f3ec6e7318937f3523ef788fbb61de02109f3aad42a3e2ce6d79491e080472454fd547234314d6b89360f481c2a661ebe922421b50d783ce2e4bd494d7fdaf7f32309303c1c614656dc901293feeb22221ae0d10872fd6eabd7deb26c466452f29cc9fe93c58b1671cede70ba6e9e53a5085d3f45973c9fe2560a8f44ace1b76d3ea34949d68c50e0fd876bc043c003119694b26fb3436a1cf3108cda788aea3c0f435c9e755fbbd7fdbdf12844ff490e91edccb0241202bf247b39e7247f09161e83a8dd4acc79622ff4f43c04f16670d168521acbea7804e2fe9610f70b2556ecdc0c3236073e584484072074d5a041ca3e4687cac81fb89462c5ce704f61353cfc704c32d2d773d61f551e7d386a53563473d74f2f0f3e1cec83e668bf9bc71e0e7149455cff6292e4f5a0448e985c92f4b9269e07afca4ef8d49d3f7742021e782849a2749f749736647d8753ca4e2f699ad33bda81f4b4f694e1c2a30ee78e95fd7c729e685278d081b7fbf46bf5caab180478cc41577f8d79b525efcba10e67b2b9751cfcd0b313d22439ae091cb029c9c3447d4d55df9054d94bca54dd607cf16cbaa627a5b6c1d0d997254afde2c986d2e5c9a5b9ccc1b53564996afe5316d5f2a8818f9262d0a824da6ed2b05ddeea58f2b5be060d649b701f3ea7249d9c014dd24b9b341b3b496f862da4442f3a5c4ea12fc3971a9de6c49001cb74223195f9c71e439edba492832d06faa4bf15f3e849c3906435975ad55ae382c1e05d929463af98e07ee136e1c3f49e78819293f3af4e0cd5245da8adfc4349a25c602f4df95aa9664fb76065df94a1452dd815b38d59f4cffab2d05ed818dabb93760e0be62b9363c89c5f614d8bcbaf5421bdb9154c318728f1afccae79150c9725d6c9c4509939155ad3ace9a88f3e954fc1ece4314e27974277bff66a278cf5517034465cc7f2bdbda150dc94502577d1357d42257c7b9a984453ef84773b2e7bcae136be26e4a9c2a2b38afbc530e1dc714343a96d892fe110f17d1a53c241b5e593863a0966ceaa26af3412eec93131d453defc1f41df1e0d2a5e266f845f63f4a6db7914e17ced9bf5a6d5e2e641845bb3c74cf1ee4eae876132cdefd8679772164665d1297abe2c266583a107c912e42401c6d253b133a7c9e9fa0b634b8c75ee1de3555f90a31627f5f3fa077b71c99e1dee355ed4513585cf10311ddb0527556dccf36fc93eba404ed0ca984bde1c4f2e36f10f2755258929830b3e75852679e25bac1f397d524c985fd816b665779cfb88320bd7c26b69352997450ba43b9f099ec349a6cf2249f7d89c2257f496c51ed3668a65ca3ee958944b9a79ff1a169a5758bdb994f5db576c5d826812db4336ea0a77ad3b9c099ee2275bc109369d84cf3e7382acb83d65a83e49b8f66f15a7dcf1b2ea946ce5a8e2cce3aff1747ee3a9e8b3b2797a8e37372accd615fc63730a3f097dff1b53fc96ad95b1346ac894c2935e4f4e5249cc9d14c7a5cc6cf796a96414644e9bb4dedf1c912896b034ea256543c1b9540ee182c22a0fef9997a4b0fe13961021259b30efb1f64497c49eb314dc737c3bb17d25b1a24a38818999c4f25c37c14d6870d998ee3daa092a53f87c5666c213ee52478d63ab494c50f115cd37599e944c2e81995ad8d82cb713134b5c1a53e70953492c4c2a816fa6a8923a7fa52da184d17aae3d3cc924acf866c2e7c6d968259248b828a7bd1dbc629544a214c5b4356f98852881c4e9b3c3d6f343e32579c479ad43760e558249491c714992c8ec6876664ad288feab4c537891dc9f11c5dd7d5459592ef945b82ef9c1a39820db2bc2e9b0599df5c2e47c22b23cffcf318f082eaa93e5d12477d00f910693d64ef4114b6143f45d95f37c2f4f302944a9844eb9bd2666af84d8375a32e9533ab9741064d068db252b51828228eea6eb92f1fb140c44995f92e42702a28c7d526eeba656ef0fc7d58d3639e927c9a37e3086e6944e4ab48b39da8752c8145af163a129e5831fce375b2add43d1ae715275bc4549f550f0d4896e4b5dfae7218dc88b131e65dde3a16abb5fafca517abfc3e92a5253743b64f919b3c22495933a30321e1bf33c9ec4743865bff98dc7dc53cea1ccfa0d4bea52ad1c8c29ae899d581cf2b89649f02ce14057ba13bb6ec5ef936f48d2cdb9169d74839a73b1e2d59caf26dbd05e66f6932b9de529d9806a051337c65d8bf935606fdaf1e29d901557439b7df66e3f2cd54e439227fb77c74fa6180d49e9b35c48545e74cf605c0e65bbef51c935c39aea92ac9a512d4aca90d89f4dcaea7176563270f2d58b56fb5a9b632827df3f31c978124a316042ae499bc478756218e8b5fcb37a8260286627d1fb84bff31cfc82993cc9619b553c58d00b7b4a29ef27f92eb8b21f374d997c1de78227e47b7e5e0c7bf12dbce6d983c9e95e096be1338ba9e07116ccf338f9a931f99260e170797165df83977a854ede5bd792c4c84bada04b6aba5adead18ad02726fb2e5db14fd2515ee7acb65625bbcf2a6406aced5a999140ef73497648fb9b8a250d8a731ddda24a5eaa0f04875104dbd69b3b92798f42fe59274d173e69c60b23f5bfde89a80a70bb2da6f41f5724c70f7b563ab7c72b3dc12e83bc132c7e83af62b2151353e2dc5e46d3f09867af95c7298389723a15815de363f82c133272977ac19d1087e45d5467ebda67011123627d3af9c3dc40520422edd31f9591b466995275f2d877cd68491e49673ca923eada8168cac3f362f7e88aece8091a51426a5e4999ec4ec17c52ce127e3ed6bcccc1747a7bb4fcf7a51f0963e170f1a4e0e2f7e493bd1dbbf525ab60bbafda362c911e619d3c591d9b2c2d88a5ac672518e51375d5b52521f175cf64af2e632b3a0dfc24c3153865f8fbbb52da864a2d5ab5d850cd782d050e298afee569816c6a0ea9e2932ccb2b3383bcd45b6e25497c8a24d616376990b25afb1385690f832fd0eb5c222e9fd779592d4f77c0575629597c7c5acd315a757c54ea12f9a5cb602cf4d214faa7c493f563cf6fb96af9d5594f5f156bd957b324715969860a772f56797930a4fb8b859d3725051b67cf18a29795dca3945736e173e9a8931e4a648f079ff68dd936d97224d3d3e9642a39b2c29d4d01323a2427d4f46c1469974264645415a387965baa7a2190a73f0ef3cff28a62528923cf24db4f38937a5dbf0bbcead95270c935da6a6f324a93a91e07b69d57739bc8613fdba7f74926a137a6be53eb9fb3ba794269293ece1f3fb99b8644bccd4f13f1913d8e4e68e758973bde524e6ff984c5b2259338485f954023b39b7b8b1987ba68441fde6d2633389844e49decffe245fd64842935f4a0ca196a49cc44482fb2417264a875b8981c4aba9dc73a7645b92e61175640cf19d6282891947a826a57c1f45ca3c338d68cf2ee550c9ae2b6618b126693cc87dcc228c490a255ffa2b9bcb2882cafb17aa59b3f2c624820a6ad597a454f13c22ae93cbc28c09e6a93f442b955d2f34f64636c439db9669f2ca3172218c529aefb62f782c2184521fed34c93f26940cc2cb5b226a42ab9a2a08672f63cae431d2c540d86f9a84125c635e1110858e1bd314d5b73b7f48c8d47c9a2a3fb469fd4e73ba856dfa704a72a5d2d928f788f870e757d77429ad2ea23d247e5cab545c0fc55ea6d8a99097fd3cb8991d76a28f87a478b131f97f52fa3b9c314f8b77c94ce47638e6f7c855374d61ae43219e2646534ae1b374387de6c6acab59373b87e28b65097afbb52772787e35dac6e370b8bafc999c9b32091c3ec125aba26db25cdf9028a15e7d49923e9a6e58835898c9b8283db6e19452d6ab1c73d42a366899227f728ee953660d4fe7fc9375f52f4e450c351ccade73ca39bed9a58891062c3f6a2ec1c3bd253968a03a8c6712b39c01b1f3dc147eb2538f6298e19c26899a92bf568c9b11111131ca9067c99673c57fb1b0c9a077bfd5aa948c21073e7c0c400c31b41964f0c00c346c88118643c6ca4ba12c4d3b2ba30c3242700331c060a8310b16ebee9953231110e30b6278014f0d1d4d88c8ed9bbb70bedc2f612bc74e192ee38c1c7c200d0c0001929840052222692c10c4e00261c1b635bc05a24f52ab4a92f1cf820f708003cec9f3400c2d7c56d933d56d23222239c8021f2265a2cd57979efc0f1f41122cd89bb15212770ba2962bd47772fc93db6ccefc206858215963fa9dc538b1a902de1d0d8dc3a894cee2a1c1a1482c1007c481300014b23c2b004313082040541e0c0623b168246aeb1e140000562c1c463e202024181220121009c3c16020100c85016130181408878381e06a9e86b1a0f321382943932685b316d3b89deeea1e35b62da4872d44e9014be98d0520430115105ce06db4bed536c8ef4910ab4e10f1e807afad1fc2607b13e892d5f4104481b8cc3551e1241a12bda36798d7fd1fc98b9f0f2a575d9ddbaa20c420554b99f463949f5792a651368dbc69eabbe8b8c571dfb1c096859c1aec77036ee11c2ec459637e885c46309546ccd52ce75b2cde47d7d988b93bb1b0a224b305ecc8b1faa84cd0e98b79e108d649bec69b7a51dd360b737bcc66811ae0f7786bc828c1d6b20f56f290018c23b58b71976022a6f09155d347e34c17ceec6bb04da2986986cd07e154aa9b6491bca55797a74f50560c8e1f4777f7d617b082f92d223b3a86ce6793c9959516497acc9a095c481e9d8e6351b6ea75bf0bbdf4c511a70900e9b93fe82a165726269eb3dd43ad46ff6cae6913edc19d5598b95b83c68725e6d2264181cb78d2e57af7f017e37297be88babd721615899b3ce61881211bd13f7df66d7f9b7243d59b296174d39fd26509917f1501ae8c1b4039179cd18194a05bda0084a0e023954fb6601b16c0fdb905ba617ec722307d9d2f13d253501de36613da5a05e5af05579f1b2f49ff96f0ab46c3e9edda2b381b7a79f265248fb807dff8148db979409dc2a20538c69534978162f027a60c3d6d472c4352925ec47e576b94ac36bce049efcb0a16346bf070738a71d0ab9a87671a571550b3b4a7fd675a687c71855258513a29030cd57604df50085341e823d93d5d34bf06b8543ab6cccca759dd3ae0b78885a22c6bf25efaf0a9e49ca416f2dc6a9773d9b03396714495d0f46d8991a6fc99be59db4afa23e290d272a56571bc146da35eca8b612fcb2e24cebb009b95355bbb8a96adb2791e881150586f0da9c94e4b4c85dc4bc7adb08d114cc5f58f82eb33f413d6cb32daba5fca832f220df42037a56c182ef4abeae3b846ca920aa909c014b78aabb2dbc61c9688696c40c8e523f9d3a85ea0bfe8f4b9cefda2843fb27efaee86f98bc6a3eaba266256ad582716d8f7bfdf9c5ea8a94f51f1d690de0d68f14d8c4948ed510a15859d2d01a75fc559e1460d9cd135ad882b3c765159cca94096101fcd90a732e90b81bd119750fa50cedaccd46252e2b808e5ce76a65fdf3fb2573da98fd03bcec835eacffdaa68ef40a1b325c3b42e6f369830fc39b98d61438f4b627db962ace7d92086f46bc1797b03aae835cea9ba583294c643d7a22613fe32e9f2bc76e1872534c4aafe6178b11a20b680c6b5b3f2762cceaca53745b53368b9a35ac0ce7661cd31bed32c0146d924f897e26ab3ec257d4ea3364ecf05b2dbf4cd99d54473eb772d7df3ee3eddf46fa7651afc05b3cace17d57da7abafcb5e22ce588800d47941fa79ac12b13918179d040685ea45b224e4601846591a6c17dbbd0ad001b481cd857aef365641847a5df5321dcf2a8f722a36031fb8af63fd7e68dfa77edd587d3ad6adb10dbfd035f0d61d9201298689eef14ace8c635455913a5c16b767e754f3965447cc5325d4c1911420f81a62e44949928e1072047af35fef3b16870c81a2c0a859a47babf3e508f5d67033ed4ef970c19f276693f47cb5bda9c1e7d5765ce1dfa9f5abd27fd3fa75b5f3690c9ab48a75336a3deccb718a827394c4164faead868fb54b6199a5341cc0eb567b921c643bc71eaf6fbf5aec56ce3ebb59ecf2d2ef3b276ec267950c8f86e74d72aec633d34feb3db4a292590b116d11bbd5f2b4b37a567c5f7c5443b119fbd07d9deaf5637b3ef3df39e41a5f1eeeac0566c9ce75db98092c41fdccbaef350c715f63e76ba8be27c5cc3395364086ae92a55bb2fb9cd23d8fd570958772f5f1fb4c36c898e2772bbdb42fb5e616dfc0f3b67aa1470b48652e225ac41195ae5f26e90e4052268c569b058bc60175694bf3e0577874ae6a4e23568b6d717530ccf5c518d7f3277de289225dbce9886a39a5066cc51c99832cf1ea78aaa03a2cd5d28c073d39f9fe01ef0737e01901f1891ce3a7ecc15e0bbde6fbbf90ed34a541cb15222d6b954844421564a8c7d9e159b1b0fe035cb5bbc1b427fb8d768afa69f441022c976b55a1b37c766375226fef68be7cbd99652cbb534a0457123dcf9cc387b2c576d051e68e4cf32a43f6755832c8158272b1e558f053b0120840a3d8042fc644a71454202f1a3858ea7013ce79dd9a9b2e7f2f47e6fd2f1f810f328a805d44aa01b32718c610b7aea189bc4216fb308827a762cfb482e3e3567cc3116b9d8a09f7c29e06c82b86f71b75ae95508781a95b124c1f9c2aabd8a2ab96f64bc5044245c62cad0dfe9b07b9cc2da1914eb565d8e49639be1ec34a492577b4cf1756c60fa539da8ba06e25f5e247c7a02528e1e72e6c0426aa7aed46429ff6073571d4c9fb3846b50e711f02bcb2fc1d7290c6a8ebe56c99b338c06c0907ecc62af3b24abb4817e5bb7662e331e80c57fe53863835f579de8a09172b4e28c058927d3655f7fdd7ffe62983496c2af84250ba9ddc33200a914129b50bf4b1661796750d123086b10593284c6d7158b130d0c2aa6500448b263319364d8429051a64dac2218c281397563f807c5be4609c352029a72e18d42236cd4a58b78ffbe6e995c95bb56c41e600a3325ea8f97f6a4130f1ab56ef3d0e9f0d721d3d52b48f54168bb63c22c7fc4d4d64fe2e118f7ee66c1a164f6cc5dce2787bb83b83a54a3056841736dd420117c17418ebadc8462a71f21f6b0671f2ebca612f5f53e831ed58fddd9ab8167d2f46e9dc238c784b01d9ea59ec0b1db9732a2ac882a0375eb73136d3d144bd7cc8a21bac4491381fcb55e487d47b677fe1632cad7d315826b9f61e9f7fc7c0559c7156374d1eb92ddfad936baa42782325f5dbc31502d17453c54e6f53e64bce18b85065b8e0b99f9710d64e1d5216c8629da440a4b35eeed7c13ffc6b2cdd04056f6874bdb24e756847c9264ec68f86f27ca62e937a9d2c8832e0d4a40bfca4a1356f8d5725f7ebdcbba65704560ab35f179997e2c3221707509c387389802a31ae650e845f937339e909ae2f156bb2177109a51ae0fdecb61a3e8edc2b7e3c51f1c7881293c0c852be80631470acc57ad2256dd5b217ad8691ff58945c0c93316dc1f184a114372d9f84df4d2d38d99a2175139f6c73f9d20b01fea09c4bfb9dce858c913449279b126c48749988a4681033a0cd06dbe202a03c3d3e29bdbad81ab963d6ef2a48e9ebd53ddf0b8e673d6925624c56f061843f2c67f5c803f4fc83f99f032bd44d4f4baa1904e671af07e7bc689e3f5de2b675da8132e2e89399aca60782dcf6aaedfcfcecd87c9b09dcb135ec426b82e642d56a0d30aa7431cf4ef6eaf680ebf1ee68cfa54b66396596b86759009480083bb66507864e93ab45205e5a1616711d16004db07ea757c3e200e19b4aca5104301d4146ee8274603f061fdb2d6cb39942533a50a4faf3e32671914228f69bd301881fe9c676293af18741e33611b928d82fdfea88b043de9b1ed6a6d2cc7162178b13a8fefdf1c4b7cd077547878993299a873e1fba144ea00f6c34df5b28d24b92141df6e0ebb7e044ed92a3a1b44f267a26e780e9ccb3350ffa4371261572335a185e0a4b9c37a15e88ec422e0c3839e44a80f5a47e8c2fbe37f95aa1f06d217a6db2fa5008162e953d49b977b21be60bbf8a7924e4cee9a270532f26544d4ec8c672f5f952ba416e72207701edf7bdc39fa0610ec3a1558f54295e7db6c5af7beb6b58714d94d78f0e49df704e6d8d3499004b8a5fd045da371f91b158da06ecac64dcbe48327019fcd90ad3c73c3b056b8a53a85e0f345d7867b5e9e84e6b932806650e2a5247396f03ea0c8ae89bc4952f40cdfff5a8b1075191c72b13995ec82da97df58fea95e43c46bce9a64a363dd3758455ea51ed2cf76f34c6a69da0fadb8f8a966322b462eca1aa9333016592d77ec9073c85293c36b0ddd3a1852574e8fcad0c2e468a59c2ea622a359fc91071c63eb57073a91e2cc967f046ed7799cb26803ed3a58a341bc7cd7dcb1baa24b8cce8dd91a69e4978a16e89e06f7213c46053e588a62c03e3cab02778e8be2950fcd7c87e881580208d55277884d16c53c89f154a1d1e3f18bad42d3490d33063dca7e639eaba30d4a2a117c7ad038b9884ae77f6e62fef21c1bee81f2380821ca0d3ef188fd5a42459e526f2a52e61c59af186272f1b07d2c4c529c7412c2ceb6b6c25b3f6d66537db56b2c784b0c4ebd5f00e009eb3b54e027e5254095259bf0892a0113c36541aa89c33fdebfdc69865545307478cf349d4c5b31eb0252b143f8de0d622812d71b6820bc842fea0322b630794639c9b6dec7ae70e0f9fe7b901e59de24311d74939d52626b896e4c7698bddb2a496593129f15913927068a74beab69d42d248d0c2aef82d8a62b95a5cf085444c1db33e2dbb170d9024de7eb462772beb02a96800c22a6d56ff1172336520630d6fb9fd4b17fff217b8f60a19f5f5f375b241f7553ddc6c6466a84c710cc502778818e508828763ce867e0a8b514027f2e8376e3c1c9e7739889fb76e643cbf6326d2cc6a8d8a2d1954fcd49a803184aedd1fec8701595c94c6f2ba8140f5916e65a0047e59d7fc76cfeb3de3d31ff1d2a681c074978a3a8a0be88d13abe73d7d34bfd9f0e932707f6d3b751c5dd773ab65caf6ae34af8f47b69b6dc6f0ecd883c72eb25f31dfd6c17a3fa44034567d611870f3ae94177aaedbe0839fc1c6e0e6b6de1ce24f0cf067cbe6d1418f41b904444abb2474c844e1269f8306765d1ebbc2b7251f03426180d8894f0a94f90cf7789eaf109da85349b89b0542171878c36c00ff420dbf1d1749715510a6cdb3017517b8538bd7d63155c3cb98814970782cf8427a174c777634c8dc43715003467d00909a65d40affd57481e7064bbbf592f1d92bef2ec0fe8dbfbf92baa51684eee88f24cb6aa082755902e0810838bc00d5a8cdb20044f637d0baf132f5b1be80ff09ca239322a1506d4e489768c93e83339d34ee3674d23a9eee2b16ac050209afcefa953a1603048d4c25f46325a08ff610c3722209c55998b628cbf2d71a505248fa72b93a21fc6dca31496f2426d7c53301af819a7e2d6cee1f23c98346d2d9aa6156145a2c9a8e3922c99edbcdcf3582cb506decac35b7468432258e7c811c9ae17014dba2d0e747c73fbeba8f2942691ab52b9330d9729ec2391657cb12f0c77238029502d13364c89ce974f1b292072d80cc34bf6dc989d785109d0e1b7fe8e2f06785233f94ff3ddff9a4b0b81d6ccd11ceac07d54ab2aa240fa610a886567b2e2b5a5e6f35dd4c34eb19e39638fa86e8a1c378ae83e3bfddc5031ddac03fd01dc649aaeaee22a86b63ea433462a3e0379cb66fa294526098efd0cd0818d0927cfd7ebe4205d2b660ae719af7d2d819ad4081f1fa1999b71bbe8d65af00d71b94fdcb307636c77683655ad028507c0f03980055081715124f93e14ebac08cd417f161daa2c33626673ee936d893d48f48c23463a70ae552aa017b20074861be9d11a30754113b28c18c7abe4fd34f0d46435a73f9c1169e9b2241a80fb50cec0caf24c1402d04ae3f3152719f560306d322e8e9ea4eb22573bf0e3946409aa4b3c55a18a606f6b69e3a61894ef9354358ba52778f690250fe7e9611c9117dc76f4defa10e31f4d179f61391110518cb5cba4d0edbc5bc14bb5d98eae08d84c3bb552f99ac355e682cb6d64b01944ae041419dbe72f5d06a0ce3d9f3d4f75ca8665e90325473b2557982929629a1393398a381f280bc6903d56c30766ccb036afb6d20d8eb0bac41b6aaf009386e3984915570e515e5420d49fc5b0323977449180e4c56a2007bbd6b065e6eb1563406c29938564a3ec6d5c0b0cefd6b1cabe652f02c01a2a29392c97dabe98e8caf217d09f109dda2d646e1d5dce4276b6f304794282be5b8e4b058e6838a5319876b89436030ded2dbd89e8608269d4812cffb0358cc45bd600a2c5852d0e7cb1195b615deb7c5eb5bfb03d13b17d7045cbdcffe85921a4215b24348fe7fb1fa718429465e8963eb9a4327012ea7d27da92b54ded76397bd0fe2611632bb3d1e700ac02cd06d3a0fcb13137b0571f868cae00f636010f9604dc06e69c5cc3ecd3d5e0141dcb7db708e0bb55757c9d909627eafd0cf56b1b918c9eb0050b0cbc92ca461eb3bf4339bd03949010a88c5bb4bfed7943a0f0df2e9d2f4bc79f5cbd35a8cdaeceb4b3215107ae6a77cfddb0b36af22d4ec1cb17ef5a1adfe07bd7a2aa2ecdd60fc186268361280adabf0d6c24df43423add2e922b6a68de1b4246d940d5bc24ad2db909756e24b522b84ad23b994e98646f5d66d04ffe9d8e5fdc9231d1129621f6c069e90f67ea86481b77258b1218216dba4dcb2441141fb61216e1da3586d0a81430233ed55f5b416148b493e07e5ae5ff7352fe3efab7898c2815bba205e7c558033294750245ecdbb64e75dfc3593ac25c0150c40517ea9f4ebc23bfc5484b63edd4fb99c9a5cdfeb3983ada01baad3f003255b3e866e9d3755a580f0c0d80b3901070e7b06f736712b4ac494e7357194a5000e5baa07ba3bfc80ae082a923975742e8e35ce886409a07dc8e9f542346dc530c2563828806d6126e210d9bf8aa8fe9ac58ad34599025532ab51626f194931fb30542d9013626932613f8d2b2257f4cd228648ae5814b46b510aeeb8c0f4fb22d43a54c1ba99aad0cfd2c43524b2165e70e2c2e926aba958fa0abd395999eee886a23b1bf76b63aa77ec75de0df77e5315390304b5201a55b1e1e8236fde6da7eac4e9c7ad41db2e81ea380551789fbee867c2970b2952b7a060d44d15e717e0f6a557500d7ea60ed86662e409fff19042287fc0e8732f280161587972d33f8142d4d912f373a727c27565706002e9ee41344c0e71a8f127672dc5074d3b8be0c14c3b6f045e714f5ff4115a50734ebe7672a3c5f006c0630277a2ac1488f55a60a176de723deb14b51ad1f8ae2266234b3e81df4d714d17733aedb18586ec43810b0e59546a3ee7cb93da21966aa03db07dd1d2563eae1761f9e172d78fc56886cf711aff27407c64a59b72fc79f824cfb5f166ba8ed29b9d0a9a14e1c0c803129b69560356a52642b39417882fda1f02c9d3c8e5702c199d24339bac1f9e238604998820f07d28786d0f719464a6b8f18ceed641bc20f6c7a2d478bf3b387928b6bdf86a226f25f3458d8a2b72555d3c53086253f7fa87e6117b680d91f7386993d6e46cc73c6cf56edeb892856afcadcae80eec15a5155e2f4a3dd31ac822d6b990132f38e908d81273ebe6b26fae17b46fe29eb1dc4d73c159c23d3f83ecf44e99f1a4ca0fc12e620fba7b52765efa77f1524f60f5c6be2f1a6adfe12da3efcb06c8b6e43fc907ce6df7a3edda3c0bc831776ddf2a08b0710641fd99895caaab3e6abc3716f86ab52651e97cedfa3909d39288baef5fee2e59a370b47c2f434faef9ef0166028271cfb7a946e945e80b395fa413ba35393372c6df2968269bac0c197bab01d6b326d33e10ed0cb267d9ea6b042fc02307ece29b3c67802df619eee6c60ce7c0a2a49860306117595dd40bfb12dc9803b0e0497acc951d605404879ea263d02c57cb63926029bb0a1238b12b3ee2e99adfa7255a887fb9afc9443fb4e36d4cb7132b26ec02ed625832a9aa6d172c9f9f28d0aef830c35cb8c7a94a5c17df4db8df653e7c0819a22867d8366b348f4d7aba6e835272ff96af12e2d174bd189a39b6c41e2f5eea66d0ae8a4e238f81209e18a22124726d6b5e35ebe5576ba45ba154f565367cf6cc5627084787d2cc5e8064c6619f11b5fc0477ba02539f669a49080c96cc8a86fb71bc2f880a19242c6197c9d31d7f603847a5ea3b6056519a8a94fa6b41bc3af71712f81248918a9181426249aa5f3502235a2fc7e2643f414e091c3143a8679efa0c795358b9e53d86331db70f8db8b1489114169d8e23dfb5808af84a0f3b21f407a8a0614bc6bb8fc894bfda2ae89cbb7efeb16399d51b469e9ade7179b6dd05d987274d72a653b3b49997c2a073b5f2a9e834381f78ad8bf3cd41f3efe63d59216909f9f986fee309ddb21a17dfafce3cfe12e236b63fc66a0f8cfe4d23c8edacff2106174ef373022d4f20053e782910c3c6c270f1d6861e6dfce10a5ca23cfc22d06b4e7a5404c806313475baf222bc4a50008c0f0bc7b469f9cc0799f72b5fd15af7eeffb9830e571449d06d937ac1f1349196630540f105943ecc68aadb354624759257f9e0b0703981e58717be48fe5248393aa7449086f3522db55c97ca934a3e6de72e9d0c9a3628e808dabd70033f61ea619efcdb841b9ec4e9e3f0c7268611aef43b0cbec896dd7f10807110a8f2f3cf439e56948cacfe42be06851054371d809897fe1e695d941d5ad4a2b78f0bfd26a108f2ec975c05d7d61cde0521d579a7a2574ad1335a8bdd0de184d903d09aff8627410f081e52de49c9cdb15770ea7f98ab53773193daba1cf8db4383ad97158732c9d0285d34dc2ef0b1913e94cf8281561c21e245aee6dc6fe989abf390db4a096be5e64e31453d519e4372b13d990fd7435dc97953debdc7930ee5eda23ed4c9d165e0b9dc5b2304be7df81ef164693c0c2a94af274f62d928b1802ac587937ca735f21f7073cc673e0ec6b7357f746fe5902c8036e025bf390c73243370eced38d75a5e6adbd2a21464f41ca2d2a9b2c99d08c89fa251ad7cd437e2e528cce8a903859e0fac35076b7ff084caabac03bf83ecb975bed5d03a1971d1c7b4ae3a50b28e10b293d58d1da14bf1476075750b4833579acb027effadf2cb6933163f57b963a8abdf9d2b6e7f47a3c5a5e51f04841db0bf5b302aa894d68c87a7843c873f49869f8f4cd768e0c5255f6b38199df465cbe281b05f5b4614e630896e4ebf41f11aa055fb56cf4a51db8a8acd2a5e46a3d3e9009fb9c08b33284c05ec54f40f571bd9796dc2b83e06a99356abcb7109109a8b64abfdf8aed6e9e6f34f72118ced25103aaf3cfd21e6a0002223e24288df8068892a0e809f70d68dec7f7566f2fcd5d56bfc032c442554baf2274a60e363541c855eab1dd56641eb81148779a0e90e6ffa068d20ee58c5899476d8b19379e7299b9ef7568c5ae1b0020c2c683688bfcc92c13550522c4d8a1dd44fdfab2ad30306d14129e89be90952e5ca4cc8932cf0ba224af7e1554a0b55af4e2450a7d2f02f957611f8c8e06c6e63eb5f8252fa32fd56b5969b2b13fdc09e246425a3bb20b01659d7743cded222fd81af44d55292982f5dce496391782b5a70054963712025c495a7cf91629ce06d99fd448977c2f78313684c6cad5312e0ccacca6ced253846d58726875cf4d729c651c9818e5b57fd2299bde6428c432dcc1da190731161a7afe59c329d0d2cf2d0decc72533b2224d8928d68a465c557a0561496f3d1185f0643b0e883124a571cb3591f189e3a613f02f05df76dfda008c5138a8f264da2a6c57fe0df0b411209ed8e5b7e2c8c5811f0dc7fdfea97d5f6e01d39a633c70e662ee61b9259c707565618a7797e8e87c08eeddc48d479e3110a6921072a9a417b8093298958d54356de3716091ed587515ac3b921eba5f880c4001dfee51a01361976578458b5555d996506afe40a2c82ec82d92c49793ebc2d3449b87226b155017c801d0f01c01c2eef4af242595cdfc1ab37ed745c3253cb1178803cf31c11da30e5ff1abfddc146b0d368a2a500070ac5d9f12c7f8af87fef7ee2b127f9cb4ed649f707e30c72190c15dd6ecfcfb0dc50069c6f489417717fd3c563f0c4bf567d3a5e76f5b76a3727bef7d373af418fd98955b14b472dfc89c39e7ce8d1172df58383ecb7c133abaf6b408119ee703c02bebc1c4268e2e1202ae61c6c1a1d29f938d39d9450ee2e9f3f2d5d1baeeb5cd7317fe9b18fa7405a0bb30bf6851e9fc4aa68b965b8e4a6a3bd84737862d1ea725023d285b4ed4b14240260462bc38d59eda7c75484d4a1ef53f29586704c80e7ed07e8e8995d31eeded9b015ea818cda1797d4d40efef13ee1fc2bc14e7712a59f279a8cc5208a6c1943f4f2d807f8c63cb96fc96cab6f3bb91b7d1a451ee230c085b6ce9f6c4e1b70e456344b4785b21a19849ccf186ea3849988a8d01f98c157a45c7c2dc8012d09119148af7396427c3e554044c5a3d5191fcdc244c79a0242d2d7b8a695027df393d19074db339ebbd4b9ec56d2bb7904e62b467ff107a9f1aff03e8ec9e8d61d95d308a5efb8eb5b99effeef53a06d8594a4683f980f8fbe5abcfaa15beb49d26e42ceca45966548dec1b84f5edc4388e2e672123c09852bb80c4c182d1ba4d4324675de4422dd2ee5a03c881e6b7d16e9e5b99b2f2d035424fe75fa511b7d4ea4505fc3722cb19247c9cce9483252841e173b89030c0040ea1cdd74f4d12ba2703e2f9c48973fb4c70dd02e17e1979b9b1a9fea555265fc07ed863ef26a9201f128ef37c90f622b680599b0b98a335a91082c3e445eac51b0c61938c59a7ba2eb0082e12efc39326d6bddd467a7b2ad00ab5641352684c2fd7dd3a79184b98bd8698c54e7006662c570d4aa86598698dd9bc394d370799f784fa53171b0d71ecaaee6be62a6919da2c4dcb46b5437bd77c60fb6c6577962554f859fa9a3a1f33297db5a8c6abdac2e702c55ea8516d312ebfe61c1d3b6d5325c76cb3347a43ed9c479c53e25837c912fd690a0893d213bddd91b0baad71038c34d2e308a5c2b91659e9141a839814f0aca6353beb9779fb4e8347699b0d139964f2bc787a0b03127e5c0efcf3cd87f6c5b942e15f5482623beb44f34e913f15aba358d1787bdb2a8cbca3edd34e895b738a379a5757a1c485da3f191a7e286aeccb56a22683aefda49b078f884e762ba90c6de17706a6771822d6225421da829f976f5160cdc75ce42dc1a926290bfd84105e02334a1b4ad312e25e53c30efbb9a433da7414f022f71e4fcc5fa1043e4d6115393a262550c976f9ffc4217038927d21cd0dcdbfc69a88e6ba48d110512ada2f6d0cf5141e4a02fbb6cdcf2d7dbcab105f5e576c00928974defec736369b7331ab4bfe5828407ebb76b4e3bf289bde93d171358508270ab432848fb9da5b854d2808af650ee2ecc3b2b35aa839cd14b95424bd7125f146dfa12167701fda193317c718d1e82b4ab84eeb40e96b35c141cede4e96292f037121b85826f1b08d31ebda52e7cea07fc217b8e073415a81a892f051eaf2e07caa08787cdf891a40d9bbdf18082ca1edb404e67d2b311acb72260c63679a7cc5e81385359aaff1e94009d45c81f3dcb8ebda8f38e223950f8a9f4a296abd26ba2d4c45f0fdda50b3df123b8d96bbddea882c37d043ddf8bf89ec7f48b2812f2d1136e2f100b87f279991f257195e319d4fdb0f0726b59459f330a33935417f1a685945a9173c25c139f6796890cb423b3674688a0f5d8abd105391b2cd4ae378ffa9e84257cc56e114711003c5d4efce54ec91a2a785dde35821723422988ec588c5226ecb819ee808091ce1a442ff17e748c3b353bb55d13fc28a3740964990d0e38eee0983106d9a269e5d194bfc5ec3045a1af626748a3437904c19015d6934be8c5aa5cf9a99b2c14f59e2b3da5c2464a976ff7a64e422a2890987ee09dbf9dad1121dcab8fae93258fa12d1d34a87faaa8cf9141f54e152ec4a30ec83006ed462c903f384be5843c8a91e807fb63411d0eacaad772f5c87afe1409885894047dc1ba7d102040b1bb96bb991871c5da472f5c0ca78544fbefb0e0d8ac0b68cd9fc3a263bcce26a1bfa43e5042accf070ba83870e78afbc36cc0178ec42a30d470212452e3c20bc08c42fd3e79ae7d0eb97894ad2495f8ea086705fc58fb29d29146289f0ac3237fc1bb39f98f12d71bd99ad2b6c6829f961718af78377b4ae9d3d9dd93b793f98d0dd94458971869c5ed51d31cc4ff8ec2bd65c84d337bcc507e69199090dc3e1318ba512974117fe26ca53834484ae7ca235be57a46752ec147d90b4381be448781dcd2b31f7ee96fdd5b525b0cab02d56a3e86cf4f48d1d2a9edff5960572c3c1b751f6798c0d97c05839479d7fac9966b5a32f094970b90f31a4d58915fa96c4715f01b616b273d45f945f2af5054843e9772a64a2511911aa45c91b03499b3adec69807445a1e12637282fe9ee70923b4a7bea50a2510a272850d7d6adc3038bd5bfc612ddbe61003b0280aaa296851a3dc856c28beebfd79e01c0472d30c0b0094331a8388a87f5772edb6dcd7a8d7659200e10df4a5d48830bb7d05358dc4b5a6d692afb71dafc5b5050c85a3f9d6dcf39e0601c905b36eaa9bbafa5e386b9ae007e6f1063b128a278c72bb3e0d13a42150d1a643fc9a26cf38d82e82f9d455bf0fc1684af54d7a907676443355eb31a42710190714d86a22616f0742daff1cfcdc4eb005249eab02873345814df6eb62458183c1ac1e6c3a89f91893f9adfa2a679b4a9b8c2606c198c22c8b15d6b05e509ac0d29c2359162c5bf6893413fd8dffbfdb495ed9f28c43705e32012e5da2d22209f86689407f2a56498d0dffd5e2f3379ec1479bee109cfd313f34d2444b11b0e139cfa5c169db120bf46e11b5ba5a09d758b39f50cf97a593baea00fcb6b12f66e016ae4b78ee1edaab492a76cf3b3307e9b6c62267ceb12591c94a0686dc1a548ddb1cce6610b2c7bdec910a61a571d87859adc19f40d7b7c889aabe87cb115b3ef08df15597ae3cc7c6e91f5fef6509ed26ebe74e6fbaf1016d5b28fe28385dd3cb52836dfc9867643367127d0c038b3d1377e1654548aa1f7b762f6799666ccff9b4d68a8814900beeec9837e8a62c89fba3040ee17ab66d26bf4866f163ee5d92aaeefe94e7d8cdf8f70813a43cb63277e833b6159307851a5016c7cab263e221004f0797fe9eade7ed1eda218c3e1f02d17f1b8bf72f6710421bb2d49af0ebdcc66bb9a536d78bea5034e686c227aed950c24a4c437d35eb38db46388c01541a5ba2453f7070d7e92a69bdee32bb0f561b2c88cb40564402b2129d4e6ee1114453d825c3152c7c07ff256aefd35fe9ebeb1362b4a5f3e36be62c03bdb20ca7c22e8f1c3d6ad8d15f62b38aa79f5252a6f35c28cee211462798bee1399cd71ef0ebcc353190e0018dbe4fa450fc09e92536cf722dae3cceb50e0691b3792e942a40183a1e66baa62bb2fe9e0d8fda3c0ac9217476b9bb72fad3a1999e80d159ffdfc590904d5168ccd2bcd190239fd698780ec45c921ae554c9ed5a24050ffc6df14f8f1fb12538ef4cf3aaa446f511e42ab1fe7f94685e985239246ca51cc46f1cc80c7d48418e2e292396a41ee578c134a716442ee9ce8780eea6e3870ba0b1b1d5e15d6f4e147c80c442233f6f71c54f8e8ee02a0239be34dcbec97ca74f36f4d137c09e02fe7839d8d8bf9dbfaffce28a3cbc983f97653751ffd26ec449831f219c6954280d539c085c132ba24fdbb49ca515e6ae350170622c8c622f0e1d4386dcc235b0bb129211dbda777293e750e3182a85f4da0c0b3ef8a60c488d8902b08e86b63bdc858b3cde2f634c42c6da5bfad9bb65971b6fa240c0602d56dd2d9c65d1b576c0317b09d5f21c60c1d79fb56dbabb4edc6b698dfa4736cdec47df5b6dcdb2666b666e92032c451e573357b44d9191707be01d3d2c43d7fa130345f25d1600df5467fc2d2ab04bb2cf03032b170b859e57c022b5f53b0afaa68f5fd11bd81e6fa8f6a263f5e3d875b69fc2795d7ecfd68c32a65db2c6c930925332988a9159137497e3542953b554892922e351045278d088d7862de46d81675c7096a0392c94e712354e636a6df5cf449775756e8ace752f692511b5d2144dd0d4b447f3900a8977ef518698131513c4c30713ee2c47a6fbee02a53f9ee16626b096497dfebeabeb66c3fe2d588ff330250a914598d20dfad5f9a6b3157341ab5a4cd5cdb59c90769c2a86e7173629541a60b3c7118f4364caa8ed7fbeca00a4418125d980e1ef77c7988173d912574018c01a515015ae9654f3650ae24c901cfcff033fc0c3fc3cff033711f11fabf087d42f021735332bd491553804f49b2256da0528702c06acd750b000000b2521fef04ba04d4046626715f6f3d414a74001831b8e4010d100103aaf098c596924bf6e7cc24a54a16dccd5654f7f4f9eb138b8428d19aaf5b0312b8a1811b9fe3010b4a92c49c623c6be6ccd9a041438cc5f17845afa169af2aa3862bd0904b57393f7cbe8f058f569c243954b4606d52ec30c78a0183072b4e1a3d2324530cb7a4e0b18ac7c259464fc971a62ae3860a1eaab0fa3f336e9c5708cd06182710018e11e4b821c6231586f3ae2cef168d1f04a35d05220840131ea848772643bf899939666ce43845628979bae0618aafd24dea34887abc67f02845656a72ee4aba393ffa82072912bc35df945cee713119638c4146e7b8d18f512c7a177ab36c1b354e20821c37fc218a44ff7431544cd2b9651b346880710211dc7884e224670cd90f1f3ddffe0728344bbf8bd0c814bbf3893e4ccaaf62954992b48287270a636299bab935a5a5824727486f2d490ef331d9e99c287a5434d1040b1695df846aaf6e25979cd4414d60ad67492eff3caf990953d0d4bfbe1126ae9bbcdddb0b19837a094dcaf61534bac9a66e09d33c6ed24fb933eff5e0510993ece13c7d44094e54cac4564d92a4ca63125e4a7b6ecf6dc1f3e721898305fd8c317ba7bbf688c49b1e97c9ea2fff49f280c49db39470827f8f4760192bacb36f6ed5ac2334a9d28cd1ba182f783422a9d5a498b346060fd7070f46545b62d6b9fa2292cef1a44d62ac0873c8edc8141ab5649388d3b4e593a05142878e88ae844ee1ee2fc54c8287583ecb49fb39b64a5d0cf1e6d458d3599ec287856826632bdd4d0841774e4d7e39ea06eb06a1668a964a9a3b00c64310b7cbc7f5f84134cb1488dbd5c42e59bc73a70610c6d1df0e5f7fb96efe439549aa0c156366932c7ed8ede4641932e46a82471f14937d7783e7ec489f0f5ccee2a1f355698c13123cf6b08951299ed7bbe43c2278e8610b6e7782c48496e77958f3cf5a2eb94d755b81071e1893ae3be935dac9dde30ec60ed50db1e36f96b643db274d5f788c9c9f6ce070336e781d28ed99e813f3e692e4d0a1fbdd6cd1f26bffa30c1e73504deaf8ef97c3d34be470a5989864f3d98d593078c481d1dbaafb7c154f1e1f70f0734e1a2696f882c71b0cb96f7d5a75c2698e1b922e55366e4dc1a30d5cf494d2cad53668d058c1830d9ac5fc1a4226e3835482c71a8e7b13736c68aad0c678a8c1e851dbe0f2193c7be391864eb69c72fe7e678ffa030d6a92429574827b8eb939c339a6c4b4daa525ff38dc060e6a6ce161066caf476c335450f994e1faac94e6277d8ef43668d0a0c1830cccdc96bc7ffeff92338682d5d749ee7be11b13c3499a0c5d52f0ac50d50d1c6c19fb08c35125e512bf23d35609860a5af000835e1bf6dd15eaa5ce2f24c45efac73c9eab752f909db26cba2e78a9e7e24ea5f34d9a0e3cb8502c295e56aa8d75cd630b68b4ccb40a3b2945c9430b776a55f579ef9185448bafb9c2e4246e4f36c2a8a1831b5bc36fd4c041468d143cb040bccc796e8d785dcbe30aa906cf99c49c7e58a14f52e85509bf9b6e03c1a30a986852cdc54691cbd90868d0a8f1a0c22e7d9b647de557330b50e03185e432f9723db7d3461f5238442b25393269755751f87373924b9e0a145e8ffba49fc34fe8c3de87137895b8b87cc184b9cfa309497256cc9ee52e554699b069be24f9a75b476e3696c079672a4b622765e84aa8aeadbc2e7892b09ef6d87f2c794cd60712e8e990e1545ef3e8477054d4d75ac34f760f8e8711f892d4932465621a0b9111a7cb4a39a1323a5e71926437394a345e9e6ad0e18a5678a2b525490cd7b1abf740072b928412e5c3fd0995ddb30acf54cbe5ebf3ec2fa40af44f663ca5cc96fa549c26c5ca9cfca9e72bb4810e54a8a9f7c4312d217bcc5314d333db751f961f7698a2f23519cd34be7549ce6000133a4a719bcb49f3d353b92d292ebff93ad0318a46cf2ac6287a6d53768822b1356f787d4f22f293d1118ad54e667366b2d1010a7a6ed3eb7a7ed7f73fb189c1c46a37c790d1f7041d1927c473f892f44eb8599ed22594568a73c29c67d7621bceecddc46bf3a929b49a30fedc4f68fee9707a268a6a61a4bc5cd63dc784153bc6a764fc126634bf8de2294e4e5a428f2b556252fe1faf129f6be7fa5c0e25feac9fd4453a935025634a93caa4b48e24fc78f213a9155172249428b9bc820809c7a44e19db7b44ef92c12a87da11e5e98e0e17ea461c34ab7ecc9ec9d3cc8ce8afa2f53d851791dc51fd4493a02b1f459817523b5abeada913c164e731e1241711e615d1981fe2dfca9a2fbd1a22394ccabb2b16c21013a16653532124c4196d378b6cef576510274136ffab8b4f452a08fb2d443ec67d0b4f209455cdb7613ee99980f844c33b6d93c9b9fd8134593e78949824e9c40f875aa7b534dbedf48136fdec71c345c6c287a2cec97aae96e48a720f666fcc641dc674f37af05737d8e807f370ccfda1b44dc4c3e59f1f932396cec33b589b529d31496515433b1426c4d96cfe8f4b5887d33eaddeb86f3e3974a8a34faaf41e56639d03121fa6521a8fe1bd9343496343956b170763b40b5b7b2a9725070777531893a5f23259ee0d89de79b3b92a99749d1b125736964979f196356d30850f1f63af6c68beddbf2fb69e46cd1a28d97c46befeaf47a386e345776bde0dba9a4983a12a77fc731acf914143a7b9259d669c6cf719aad18dad922709729b194c3b3b6fe265c04a78b994c25946930c768c5bedd4bdf3958d01b1ccf41b24e7245b0c7745ad1e59933050eaaa9b4a0483963263cc5b291734c9172c317b5ecf2f66cf122f383e9f633a29ba4fdf854f93f019e6399ee8295ce8243fabd30adada295b2844b44e36b7b440c6f4349d2bdea45859382dac8d4509160e99b62544fb2fa5ea0abd54fcc9ce29dbd35660a72f9b468f67265a85928da89c581b3f27a9806487bfbbe0714e6e0acc05d1147a518714126c24742c6e4af2af3be88842994af2784f21952aff830e281027ca9af831ef78025a194ff64b9b0018a1c309ca758c5464dc5039273b9ad0c18424d30993f22671d330722c81f8f46f1afb9ada7d184a2854a527d3d42a1dc771818e24984bbc8adbfc31e30619387e031d48487386314f33ff6953560c0a741ce1fd91880cbe69b2f58ea30c0d7418a1a4595749fcf24f5fe236729c5186053a8ab0864afe5152c36db06654a083082531495cde3c5f72ba876066938fb4d8c97c7331cac891810e2198d6627fde29cd59d18e20109fc4d10aefab030849258b49db65f2f8451dd3ea2d8baabb770f5fd8e9225d729eeb3069048f5ea0e1b9c65f462f75c38b2be956de548fad551ebbb8a2eea6942755e3a18bc3688ad96378bbe8a50d7de4a2f19eaa28b936a87b0f5c24e6789876fc8afc718b2c79a50d936a52f09f047ec810413d6c51dde68aca38ddc04d4083c60d1cc73f6a91f6465d5ed8899f6579d022640c1af3c9278416488961f9ca4467b1c67cf94a726fd55b21b210012416b0784539ee79d6726833ad5c911c6761937ad48a2b93d499673e9ddc291056f4a2feb2392c34570a64150595cdf1495315c674aa1e3459e80e995474b9375af55f3f5f0c828a246966a5be249101e41497247adfa5e9b0b5e90b404c619e2494e593b1c8b24b29c5e1db969645eae53a148090a27c25cc857eb2b23e29096414095d1763196c656fae12c59d31d346cfdef51f8784e290f1bafee2cc778762000185b9e27e7677b9fc97b200e413ea746da5f1db24cff8038827922d33e74c41cf33a5a9139f69ce5d9337837002b2092cdc764e6f6dadc40907104d249e1e3e553bd826e94c606296c27e0a236dc2983894bb79cca5b1d9ee259c34d18b2657209658cc43e4475f89b42c57c52be973a74e892e6bb6e5543efbb5491c2693662da182480293bcbe82680793b5038944af9d56ce3abec694f2000289c2a6a5fba7cfddaa90479c2c6992a63479f5ac038823f692b2efe6587177e39046ec27c78a9a26c9887b4acc97c4ba642f9645a0277beaf93c6537a11b4014c1babbaf2635cbc9e38303928852cef09b39fa398020a20e71e7277932041502b5a8412bce9f9016a7284008f159dafdcf91b7bf181b350671d699c5ee70712aa5b6c310a304104120ef299d49ee61f95e110112086eaba693b47a39649e0910406c6288dcfb68fc97493b80fce1d5932c6c850606c40f6ad2136d54c23e247d521e3fc93d2d3605e18319d37a7bafbcc99f7f00b2073de421e93439e51425bf29b201c183a1648dbfbf30c003903b9c736e75ec8f1edebb1d52cf9da28a8c75481236cb895bb962799c0e59e8f4888a2beb1803990361c1e3d45ccedd4ecb618bb15ed163300e27b153844474bba7050207adca728ad84f0f6a027983a7da26e655e6ccafb8214912cd3f26614e9ab0da7099d54e795aea0c081b8ab74e3165b856ee3010206bd04afeac24ef9a264b11440dc963d147b33c9ea7c3b841c68ded0d40d2405aa76aaf244d0082863caaad411a809ce19416f45ac4e7a40f310031431992da6edfe42d91b21e4206c8186cebb4e1bf6290de4a0d8818125d56bb4b0806903070e2fb540c92a22dfb42c000f94279a1ba505cd0378ba69c53df85a62b806c21bd986a6fb4e2df665800d182eaa511755aa167395950672be4539746454e21806001720533cb4ce89f3387054800b1423a369a621493a4f8da04902a502159637378ac163285bfcb3a564796426e17f6a6d52858a659552532a5ab640e2050803ce1ab0caba949d6c61910271ce3fae5566c4c39be0d4813204ca82de36d9d6674057709dfb5d7e5ea0ad7a32a81fd533d317c2da7924930c6fcbd34594173ee90c0e5587cf3db8eb0fa9dd86e494393746284e40f13bf7b290299bd7d35931411ba9c625ab7d455f186607fc689afc76930110297efc2f64c0409426af197573ee2a434438060760f6a969320a2e95f70217652cce4b8bfbd2fccd123fb3fcf5bcc6b2fa89256b6c48af2f9125e247c8e697f3d8d392d1dbb384b4e5e483bab1c950e5dd0f2e9c41ad5ed0fa93b72c16564b2bc1caa64773b706187c72713ad63123f07a3e316b7adc64a79e5c131021a34ca18e33b6c410697e8d82d75d4a2cc97c19264a7fffc5f408b7385c74a6289155f9f8e599416cb4b924f6551aa1265726cb6c43413c522c1528ca35ea1f29b58072c36290ec0028123089442650107dfad92dc062c8022502e02156933729c81830001d001432001003023c719261840009c067b060d6eac180710400e1c8e801000e04f495a0d15c6e4dbd846963a83068d311c478d1b84716a9c30dacbc80102050c81566bc9b513db9dcd86105ec9cf49d35a5f46b6a180201c3e5acdbdee3475aa2800085fb0a0d16673bcce0c31c238836be0a8c82f9230ccb84118c717491866e0b091438c1a351010e985199e8317491866886123c7d6a88180c82e921a350e10d1451963e4c26f40c61863f8180688e0420765f4183e460122b748c230e39031c619356a2020628baa05d1c25861d453cc9b434c27099159c8a2fc14da396b0eb67e2c60d1a5e42fbaf18ebc22eb3acd952d476e1e5de1c6f8d3f84fb5c2b43393b369e878f964857ec244e5cff874f32abcefec361193882a5251abed5a64b92631d5082ace49c64646e3c78aef2996540daf1eb64a3534853968f4f446568af24931f26f6166831a214572852f3d8b98ed0f23a3706dd66f4c3af136daa2b03a653777e3814828f8b0494e29c5ce5c6e8e611150109b52b62d66f8cb67e4887ca28a2925e9cbdbc46c02114f147f27eb52e5b4942f158874a23359cb344ab4d7ccdaa04143239c28ed6f9b9c327b1ad76dd0a091914d54a6d3e1cae40fe6711b7c460e1a34725020a2894e7c2c2599bd31f9ae48263051976883594ad1a4762f899225aa1294988424faee8a3a13f124b81c890426e533296ab2d662c786db60511081c4236cdd76f9dc2ee2882b9dece59e3fd2887e93143784c4554a7236c208fb63bc799efb786917416d7694949373b4d6228a8824a22288687e7b3ac99fa9eedf21ead6135aeb73fb55c5109618364b86ddbb4ff28530deefece325612aa508a1c91ba236f37ec71a07517b0cb32fcb392a78362282403327837eeadc64171b1b8804e2be95ad64678900e20f59b01cc6c32789f8c199fc1b7119ffcf5d1f3eedd5ecf1bca3678af0a19bb5b839a4b9873f7ad0db0ea31ef260b88a2f267c46d87df09064272639947e3ea1a4ef60873ad0e128f2298a6529f1d099831c164d694becf98ce676400234c0e12188c4010e89de6ed67862fe289f0e44de60875ef5f470b2f61e379c2f69e645bc8c56d6067c2fa5937dfa0e138cb0c13895dc6c25165903a9210d8486c8192a628632d87329bb09f7a7f769329cd4a3df26b39881838c1c913194dd4ccc9ac5124318280206ef6ceb53c61287c817ec1c2f6ad72f42f28343c40ba709237a93267c5eda85af2bc5cdf868e32f45b8f06a063f29670bdac5a429e7def3f92007225ae0d4c4948a7b6662362359486a5bf3e40ff5151d2c982b76bb87c944aeb066bbcd293bc98b3e6205f77e3454599f9fe045aa80fa6f86fa4ae1c3d30815cef9e5be96e66e3786139129246d8594bf9770994ac110715225f554ce256d9811468d00ac2212053f9cec7dbf1e359f5c040a98ac9bbac7ff3be1137942ee1e4bdc4c594389bf130e9e96c455b619449aa009a51a66c2af989832c1d553df38b1224b20ca4b9af831e924d288129a7af3cd14522afc154982ae75a9a4f57d77759140c6fd283932ee5fa5c811f8507a62b96a1b11daaf2d5aecfe1a448a60b9d9ec9cf4c6d8c973c34f702244a8e4fb924eecca4c114686101102ae7a29336b125c43c2402408d56a64ea8dceafe34780b05fdcce296b49da4c7e51458f7ec9b8f645df06c4179a7912be2d724ce83ca417c48b2a2426f6c31b80354076a10bbc36967df654e2dd950b5cbc412a09256ccaa50f728b34d7f64e995cc9dc93c00520b6d0c64ed670558266abb56844c20a852aa833976120864110055110832008629f3543135080b840180c46c3012d91663f13c0c0ca42d170280e8a420181300c463110053110835010c3401cc44044e224b3ac1bd1a3b4bb7862d3e55c44ae5e0b5dc3629e52e2d6b0480673e51de4bcc7f666fe27e6eb55dbcbbec433741adecc82357ed3a223bb8e58837bad264dc261d956e063aeb42b33186f49fda99e4347facc4d80688ec7d7458350310a38ffc72578f8e1a0ef2195131f5a30d5d47effc3644ac31b6eb58195ad1185a9755032ce6b0f7bfc4854445acc262d27c52b133f126f022dbade01c257af5fe2a1a8cc3963f8661b97c2c1e868121a49cf74f8b54b91cb24ab63361549521f874232b81958359b539d7e772b98b28420ebb1fa2c423c16803213309f88fc647f2a3b8154170f2a6bde166f60b5c6e0d7d078a82c206352e9ad3ef357e30620b69d274447210d9e71a495fbb9e33749f275ff9345652e9715cfeaeb2ace2200010b6c05db6fd8ae90e95955d3334adeca76c4e7e65b46071f245bfb96df60b37ec7be078000c94aa8fdd7f8be270c5706361a33694296fbf49bd35abf59792d843953325e5d9558a47384f12856efb4e0eddf5be58b5200a88bfac9959c89da14da347287413453eca907e02d294763cda4b3f4439991806b804917db384ed08c1534196cead8e94ccd788d7c53562d7267baadbc3a9bc2083a3764b6d3a2e78e834b0b95038fca587ad1546943e04591197967abd948364862b0603452052202ebe8034e11035397cae42c8ffc55134e86663f6c94b1264cb5b5ecdac72076a7ed829a6c9e88516cbb02f0e2f41ee4b8451ecf9ce1b08f7bfd800c0dbe61b24700258c1fd964aa2df4af91eb3e1a44f5549db0730eedd8514a63e1b77272ddc9f9b0728c8c0122bd44579c7e16d050c109419a43b709276f0374c13870d20ebd2dff536c312ed182d10187fa74f71b1fca900372737603b03f8bb970c899cd1ac2de8c816155aa74143ded8841f8e4814dd4009b9bc0ad064677bb5d6f1af9583d9f4646c7512eeb5ef04126125aeae72875b78568bb021699c7f4594c2fd158c500174dea61ee981d689efc28037aa9fe89bb68517ed26a484c604edc3519d115193796ba6099036accdbf1894eb8720b8beb56c4f7ee80ba25d6c950c9cfc428f2a56ac3e28cbf8c385342497225bf59f88c3b54cb94ac7f33121a8a3ed55792b259084d9829e9e7a42f80eecc23231789c8ee41778331403a55bbd137e5a02bfa7d9f3b7ecd50e1ec4341fed85b965bb5bb86b1cfadda7922a51c38b01feb6397eacc2771750ac086cd1daca1c0ee53a4e4b888bc2a114b5c34fa4de42db36e5366854bd99f090b450bd92a6e42e61ae312707d17009e025370dd58237a87c6cb44a338b35da5a2e0e2543c8633ed395b0867f7bc014057317047e6cc792d00a59e92d9b100fcd73f04e9ddaf4391a45e3d44f9ebb03bd9d783f2935ad1d78c2738e1c668ad1d99b0bafc8f29eea804f90ee37abde857561e150216e38775e961f24914135c6e2a5deb43e264ffc5b994b40b35fcace963c0a63a47af32c683c9a621143a94d9a36875526f79e59ecabcc9dffe528fb76300997ae1464eb586e179546b54189fc8e2e14085208dfb6672507c23514208bdfdeb70ef3fb22941d049a23be02c96c23a7788e58d00a00227c026ffa24d6629ce3d620d2b07be1c609a5fc1a8d4963701592f2382f93e27111304a9e385354bfd026ea5bc45a63f1685649531398964f5efe05bc1062084b8f6911521c8d7cdaf473f847c0677191b55ca7059d4ed8799f96d3c9faa13ccbc9d93661da50ae99bd93e3c57cb21f4b26d58788cc4515fa6134af11a2b29efbcd5c0b33b29cf4e65c09526fff27f6882d1cfcc1124d0df15737a85a09623bd4594795b6aef8a370f5e1ca16da384cea5dc3e295d7c27608332b7984139a48d1dc88f54bed80e45b9c4c50a40b030e937883c5aaac241d11205e2fa5d9c1d29ffe37a2cae7fddc58c73ef5d530c32606cd21dbefedbdf774d68d6d9b8ededd24887cc44588b591364a605116c21ee81652de57834ddf864949b3725a51192e530ebee788de475586014797b51c45e59c15d761133a9abe65b3ae5e07c04254cf62d8d93aef9c1d6d517a4b379b8624d9343e6f5ef8455344ea09c81f2b3735434220d0a6211843de10ed8f247d4b539585a06d396dca98d2f11619bfa94264d182c0020b7f726897b9f98c5c49adf0cfef1926e23cddabc2a7f69eb3273edb31eb1d3593b4de0a33b7ba01b45372a2685be4afa4fef228c9c9e2b3fbbbba8d5519ad108c6d21d25a133f1059cb68be3fa714e6b26655df3bdb0ea85ad4b308cc07ae9057fc0285e05f513366081247a71dd9dc6dd28bd78c3873e92161e0f1797a2934e8b36e93ce213fc760d03e876646a252ecade956b8f023afea30b608be4f2909af8655e8f4ddbbdeb919823597a4a43a0093e4efcb9cea82f4dd08c77f57c27989a08ad507d8a480b09ee37d9443008d4836a7b887beab566d3a080dfa0f2f0b2265957553e6f9327a29b577e907b80e59e9ecb7deb6b27655b243c2b301723d728fa7546426ee7a65e35081c7b68daeedb32802a5b9df058f058d7efd209e8a50b6268dfcb138de5c324c65baa14e425d534705f885c1c9f2eef6eccdae34f84f48e4d58f6d69a4134c619c8dcb9bad4c51a88f269275b462c2867b4362204af1c9241b11cc1d6afb36230df62eea6e82095b5fbbe4fb708ec5f81833a0981f3e384a1837d01ab3f5844a043a5b4e8e2bf3a3dd40553cc1c0b0a0da81cab1a7fcf56e3a87150eb664ac5b4b58a36f76a53933c32fb1a654c2236395b7f753d3c8e4fd2072c8f0f1987de535083774c10d5038ca0d50f6049c8690bad5853ec4bcd90227d88db44fde2996570e5936415923a4cbd2140e8ea99efffd48ced8e8bcbd5c77cf1266d799b7c15654f131d6937ed9351503f1c338921b0f8d53616c611f8fa71a087d18e8ebcd389884f36b17194f6ee7743dca03eb195223b90ad124e0abcf8b6ca6fd0a93f5b06b6a0f040b0ec74a7808c417431d0abc141ca159c35a338971dbcfb716c9457a2bf751535f7f0c3adaed15cd0adc31696d55caebfd603cd7fa15daeb07eed15b9f867c7980d49d9c216760de9dcca87b3f9b7c3d5e6d1cde609ad521baed2abc0b70f9188749d70fc04e22649a24577784e524704f3446a5e8d9219fc412029152cae13ee4b81f62c2f396ac8ea99594515d5c4f0f786f1cdf9d4df6376354f416ca32dacc510514c2a22923be7ddf7b0d579cfc4d8b1a53440312f4e3bc62a1110b1775121cb50df773a58238510dd4ff1ad27956d272624d6223dd2c1c9b3bd0f038971b0ba84b08f1a2550743406af8812b28b770ebb9bdfd5fbbef8d5afffda77fe5358f670e8dc3ba342bd43e164464155dd2bfbebdf7ffebbfffa5752effe3a18a850a0622a4855e6e4317e0a4edaa639cd299f1ed359ff84331b1f09250f854e75676486b4b154be20cf78f9f35df963bffde59fdcf08dd3b5e154a4be0c47435fb295c35cce65ee9d7747b76198475df03405e848189413f80695ebfb2f5109877604de82a23d6ce73a6bb6abf718ced8184ed4173d8d6471d69a852216c4fdc95e5372f0ef4a5198fbd7e76e6c69afbb94bc0ef54e5a9335c12bc271c208fb1bd8ca1005e8ec51a13e203744af8871daece8b57f2cd385cd83edaab80e9916b897fa9d9ac5e7142376cf8c48cdcb4a77ed6fab607e605c6229164fe82415a5ace5a5c9135cc0d0533559e606cda733cf2596e8f964374d6f16c853dddc583236b6e359829ffe8b513e2ff7cc18a08e669e97f892f1067762f40cfa711673a64f2695791917f0e13bf2e579bdf6bb87fac2caaa2b8438eb64f9e54a2e401d2983b868e503ca5e8239809a7fb12e3fa471ac7cb72a5f60de7d160d84402b0c2c02c6a01a4290e72bf6b8c22fa3cb6a394ddde3cb792c6428a21962b7c62485e20b577c4762781e203782f14a65b41008d1a81bd63db67ef3e01983d7a5b06908b58f0e365ff6001b796498fda6b9e7929da8ce0e9970de7a3b2a33c4ad95def7b9ad20abc0eb29c68493c5e663ad0562c9845af588d86dbcd13218c4c0a552b4c2fd2f1ca3efc9e2568f483dccb91c2c1d04e8279f4528daa56656e3cf687393ac9a0289685cf39568b5ba31390b885867f312b5747e98651bd9f7f8af63eb63397f7f8f88a0605695a43afbda70c218b08695385d4dde3db5e55917a68d8d16e09282191e46252bac10fa8ad6b590ae1f42ffb00f6b4cbc3f291eacf537c42c4283652d1fba90c71fd96c6a09799204144865866368b595c3063871677beaaa8651325c219a224c071e3ca901daed028f547e8dffdf6d8c637c2058db85c87034bfe1bdd1be75d9c964949a25c3f05ceb6023d72dd2496a09a08ba7b1d2331a2ee5f5cc7324bf3b79e7e254102157b6639982ccb17f823f154574594f4c3330244c38ff78dda9a1c5f0cc2d36fb1fbc5da228532d67ce05b0b0c80e8609e33b09f48b6002c88189c1836c3285c949809076ea8690a106aa7e9716b1269cfbb6bfcf210b7547ad0a99237b6bf37228e586c3f80ad3f8eb7f91cc6529b5ea5d092c15f0ed43ecdd78ce3e0f5aad7172ee2d4a3b65cff321b28a1b63c97ea6fd2a52c6176059f448f10bd1c3e24b277190d993e36555b4a7c32a7770e80cac33d96d64055b941856cac552f25bf8ec695ef2fd05a93382a9fbece87ec3f4be21e0344235f79c33466a2c77f045b95bea6ca690240eb8bf0f89e9b426b719c29e599f283c0824c9c3f331b509906c5770ec4dd2a81c493647a8b0492066d8f5f8f3ebf9859aad890e5ec20708657a8299955afc5d9d87ece8072f4e0fc3c80822af533492ab56454c01ad0ea9071b6386fc8b3013944934434427eab886ede78d9a2aef1134d175822a7cb178b710e57b2a6110584db2ee4e0dc445594b5f2c153a5a820c8533c70fc4ffbca131bc08e30b21cce1102868f647092eca610529e6090a03b1c74e475c7db706b78634e1c9c7984b2ff55c0595226fa27f2be5342ae7bf13666c4e59a2a9c86954862d7b3bc60d6b89debaf0db8a4f38f1f9ab63f2dc69e88235eb22125dce3b73b9691278784b70a7a5a7adc56f89c8bf887676ef09cae8279d12a432cf1a0e9df6ba903e1dfd291746aeec5df864fbdaf006ad580003952ddd4220e08c26eab5516f596bc1e9c66bc628368e23ea3498e310d0b6cec4b04f386ab628363726e68c4a669a860ec69ad2bc23150447debdd3849e58067ca1cbe04318b4735ef31f0289df26b03956e335", - "0x3a65787472696e7369635f696e646578": "0x00000000", - "0x3c311d57d4daf52904616cf69648081e4e7b9012096b41c4eb3aaf947f6ea429": "0x0000", - "0x3c311d57d4daf52904616cf69648081e5e0621c4869aa60c02be9adcc98a0d1d": "0x10fe2055a032a91826e91e7548f965fa78014ddc062990c7c48acbb2cc0095f63b28e939d13c99847c1f67e499341c204d4d8d490363e09217c64da6f565f0f60318d1c8174a3ab43b525290a377844a47b5adb4eda848759022bff04235fe754b60264c397759099c732ad2d9c0a5eb550cccacaf0af872b97904954f8ffab60a", - "0x3f1467a096bcd71a5b6a0c8155e208104e7b9012096b41c4eb3aaf947f6ea429": "0x0000", - "0x45323df7cc47150b3930e2666b0aa3134e7b9012096b41c4eb3aaf947f6ea429": "0x0100", - "0x57f8dc2f5ab09467896f47300f0424384e7b9012096b41c4eb3aaf947f6ea429": "0x0000", - "0x57f8dc2f5ab09467896f47300f0424385e0621c4869aa60c02be9adcc98a0d1d": "0x10fe2055a032a91826e91e7548f965fa78014ddc062990c7c48acbb2cc0095f63b28e939d13c99847c1f67e499341c204d4d8d490363e09217c64da6f565f0f60318d1c8174a3ab43b525290a377844a47b5adb4eda848759022bff04235fe754b60264c397759099c732ad2d9c0a5eb550cccacaf0af872b97904954f8ffab60a", - "0x7474449cca95dc5d0c00e71735a6d17d4e7b9012096b41c4eb3aaf947f6ea429": "0x0000", - "0x79e2fe5d327165001f8232643023ed8b4e7b9012096b41c4eb3aaf947f6ea429": "0x0000", - "0x7b3237373ffdfeb1cab4222e3b520d6b4e7b9012096b41c4eb3aaf947f6ea429": "0x0100", - "0x913b40454eb582a66ab74c86f6137db94e7b9012096b41c4eb3aaf947f6ea429": "0x0400", - "0xa42f90c8b47838c3a5332d85ee9aa5c34e7b9012096b41c4eb3aaf947f6ea429": "0x0100", - "0xc2261276cc9d1f8598ea4b6a74b15c2f308ce9615de0775a82f8a94dc3d285a1": "0x01", - "0xc2261276cc9d1f8598ea4b6a74b15c2f4e7b9012096b41c4eb3aaf947f6ea429": "0x0000", - "0xc2261276cc9d1f8598ea4b6a74b15c2f57c875e4cff74148e4628f264b974c80": "0x00000000000000000000000000000000", - "0xcd5c1f6df63bc97f4a8ce37f14a50ca74e7b9012096b41c4eb3aaf947f6ea429": "0x0000", - "0xcec5070d609dd3497f72bde07fc96ba04c014e6bf8b8c2c011e7290b85696bb335b80dc19d29879310b8483205ff2e3dd48d4d4ec691d40d176926a9371c86ba497128450cdb7a40": "0xfe2055a032a91826e91e7548f965fa78014ddc062990c7c48acbb2cc0095f63b", - "0xcec5070d609dd3497f72bde07fc96ba04c014e6bf8b8c2c011e7290b85696bb35cae5b30ddee9d1d4ea63b50c3023d2eedb6796866581f3260d1f6fca2c08399d3889ff6cd904220": "0x28e939d13c99847c1f67e499341c204d4d8d490363e09217c64da6f565f0f603", - "0xcec5070d609dd3497f72bde07fc96ba04c014e6bf8b8c2c011e7290b85696bb3b0bcb94a1a7d6a76c42c67a21ef4329adcf99c421b72d95e4b5a90e24beb0a9b1c922a33a3b45244": "0x60264c397759099c732ad2d9c0a5eb550cccacaf0af872b97904954f8ffab60a", - "0xcec5070d609dd3497f72bde07fc96ba04c014e6bf8b8c2c011e7290b85696bb3fca1a7f44baada42667c31d014a1f5ed7bc867583d264062d3c7b15dcf14d487b976cb15292d204c": "0x18d1c8174a3ab43b525290a377844a47b5adb4eda848759022bff04235fe754b", - "0xcec5070d609dd3497f72bde07fc96ba04e7b9012096b41c4eb3aaf947f6ea429": "0x0000", - "0xcec5070d609dd3497f72bde07fc96ba0726380404683fc89e8233450c8aa1950074da5b83e4ecee96175726180fe2055a032a91826e91e7548f965fa78014ddc062990c7c48acbb2cc0095f63b": "0x10b8483205ff2e3dd48d4d4ec691d40d176926a9371c86ba497128450cdb7a40", - "0xcec5070d609dd3497f72bde07fc96ba0726380404683fc89e8233450c8aa19505392698015951df4617572618018d1c8174a3ab43b525290a377844a47b5adb4eda848759022bff04235fe754b": "0x667c31d014a1f5ed7bc867583d264062d3c7b15dcf14d487b976cb15292d204c", - "0xcec5070d609dd3497f72bde07fc96ba0726380404683fc89e8233450c8aa19505b19d91d16f774e6617572618028e939d13c99847c1f67e499341c204d4d8d490363e09217c64da6f565f0f603": "0x4ea63b50c3023d2eedb6796866581f3260d1f6fca2c08399d3889ff6cd904220", - "0xcec5070d609dd3497f72bde07fc96ba0726380404683fc89e8233450c8aa195072e0da17726161ea617572618060264c397759099c732ad2d9c0a5eb550cccacaf0af872b97904954f8ffab60a": "0xc42c67a21ef4329adcf99c421b72d95e4b5a90e24beb0a9b1c922a33a3b45244", - "0xcec5070d609dd3497f72bde07fc96ba088dcde934c658227ee1dfafcd6e16903": "0x1010b8483205ff2e3dd48d4d4ec691d40d176926a9371c86ba497128450cdb7a404ea63b50c3023d2eedb6796866581f3260d1f6fca2c08399d3889ff6cd904220667c31d014a1f5ed7bc867583d264062d3c7b15dcf14d487b976cb15292d204cc42c67a21ef4329adcf99c421b72d95e4b5a90e24beb0a9b1c922a33a3b45244", - "0xcec5070d609dd3497f72bde07fc96ba0e0cdd062e6eaf24295ad4ccfc41d4609": "0x1010b8483205ff2e3dd48d4d4ec691d40d176926a9371c86ba497128450cdb7a40fe2055a032a91826e91e7548f965fa78014ddc062990c7c48acbb2cc0095f63b4ea63b50c3023d2eedb6796866581f3260d1f6fca2c08399d3889ff6cd90422028e939d13c99847c1f67e499341c204d4d8d490363e09217c64da6f565f0f603667c31d014a1f5ed7bc867583d264062d3c7b15dcf14d487b976cb15292d204c18d1c8174a3ab43b525290a377844a47b5adb4eda848759022bff04235fe754bc42c67a21ef4329adcf99c421b72d95e4b5a90e24beb0a9b1c922a33a3b4524460264c397759099c732ad2d9c0a5eb550cccacaf0af872b97904954f8ffab60a", - "0xd57bce545fb382c34570e5dfbf338f5e4e7b9012096b41c4eb3aaf947f6ea429": "0x0000", - "0xd5e1a2fa16732ce6906189438c0a82c64e7b9012096b41c4eb3aaf947f6ea429": "0x0000", - "0xe38f185207498abb5c213d0fb059b3d84e7b9012096b41c4eb3aaf947f6ea429": "0x0000", - "0xe38f185207498abb5c213d0fb059b3d86323ae84c43568be0d1394d5d0d522c4": "0x02000000", - "0xf0c365c3cf59d671eb72da0e7a4113c44e7b9012096b41c4eb3aaf947f6ea429": "0x0000" - }, - "childrenDefault": {} - } - } -} diff --git a/cumulus/parachains/common/src/lib.rs b/cumulus/parachains/common/src/lib.rs index cb2ac1a1e3e4..cecc4946bcdd 100644 --- a/cumulus/parachains/common/src/lib.rs +++ b/cumulus/parachains/common/src/lib.rs @@ -58,13 +58,6 @@ mod types { // Aura consensus authority. pub type AuraId = sp_consensus_aura::sr25519::AuthorityId; - // Aura consensus authority used by Asset Hub Polkadot. - // - // Because of registering the authorities with an ed25519 key before switching from Shell - // to Asset Hub Polkadot, we were required to deploy a hotfix that changed Asset Hub Polkadot's - // Aura keys to ed22519. In the future that may change again. - pub type AssetHubPolkadotAuraId = sp_consensus_aura::ed25519::AuthorityId; - // Id used for identifying assets. pub type AssetIdForTrustBackedAssets = u32; } diff --git a/cumulus/parachains/integration-tests/e2e/collectives/collectives-polkadot/0_xcm/0_init.yml b/cumulus/parachains/integration-tests/e2e/collectives/collectives-westend/0_xcm/0_init.yml similarity index 100% rename from cumulus/parachains/integration-tests/e2e/collectives/collectives-polkadot/0_xcm/0_init.yml rename to cumulus/parachains/integration-tests/e2e/collectives/collectives-westend/0_xcm/0_init.yml diff --git a/cumulus/parachains/integration-tests/e2e/collectives/collectives-polkadot/0_xcm/1_teleport.yml b/cumulus/parachains/integration-tests/e2e/collectives/collectives-westend/0_xcm/1_teleport.yml similarity index 100% rename from cumulus/parachains/integration-tests/e2e/collectives/collectives-polkadot/0_xcm/1_teleport.yml rename to cumulus/parachains/integration-tests/e2e/collectives/collectives-westend/0_xcm/1_teleport.yml diff --git a/cumulus/parachains/integration-tests/e2e/collectives/collectives-polkadot/0_xcm/2_reserve.yml b/cumulus/parachains/integration-tests/e2e/collectives/collectives-westend/0_xcm/2_reserve.yml similarity index 100% rename from cumulus/parachains/integration-tests/e2e/collectives/collectives-polkadot/0_xcm/2_reserve.yml rename to cumulus/parachains/integration-tests/e2e/collectives/collectives-westend/0_xcm/2_reserve.yml diff --git a/cumulus/parachains/integration-tests/e2e/collectives/collectives-polkadot/0_xcm/3_hrmp-open-channels.yml b/cumulus/parachains/integration-tests/e2e/collectives/collectives-westend/0_xcm/3_hrmp-open-channels.yml similarity index 100% rename from cumulus/parachains/integration-tests/e2e/collectives/collectives-polkadot/0_xcm/3_hrmp-open-channels.yml rename to cumulus/parachains/integration-tests/e2e/collectives/collectives-westend/0_xcm/3_hrmp-open-channels.yml diff --git a/cumulus/parachains/integration-tests/e2e/collectives/collectives-polkadot/1_alliance/0_join_alliance_fails.yml b/cumulus/parachains/integration-tests/e2e/collectives/collectives-westend/1_alliance/0_join_alliance_fails.yml similarity index 100% rename from cumulus/parachains/integration-tests/e2e/collectives/collectives-polkadot/1_alliance/0_join_alliance_fails.yml rename to cumulus/parachains/integration-tests/e2e/collectives/collectives-westend/1_alliance/0_join_alliance_fails.yml diff --git a/cumulus/parachains/integration-tests/e2e/collectives/collectives-polkadot/1_alliance/1_init_alliance.yml b/cumulus/parachains/integration-tests/e2e/collectives/collectives-westend/1_alliance/1_init_alliance.yml similarity index 100% rename from cumulus/parachains/integration-tests/e2e/collectives/collectives-polkadot/1_alliance/1_init_alliance.yml rename to cumulus/parachains/integration-tests/e2e/collectives/collectives-westend/1_alliance/1_init_alliance.yml diff --git a/cumulus/parachains/integration-tests/e2e/collectives/collectives-polkadot/1_alliance/2_join_alliance_fails.yml b/cumulus/parachains/integration-tests/e2e/collectives/collectives-westend/1_alliance/2_join_alliance_fails.yml similarity index 100% rename from cumulus/parachains/integration-tests/e2e/collectives/collectives-polkadot/1_alliance/2_join_alliance_fails.yml rename to cumulus/parachains/integration-tests/e2e/collectives/collectives-westend/1_alliance/2_join_alliance_fails.yml diff --git a/cumulus/parachains/integration-tests/e2e/collectives/collectives-polkadot/1_alliance/3_kick_member.yml b/cumulus/parachains/integration-tests/e2e/collectives/collectives-westend/1_alliance/3_kick_member.yml similarity index 100% rename from cumulus/parachains/integration-tests/e2e/collectives/collectives-polkadot/1_alliance/3_kick_member.yml rename to cumulus/parachains/integration-tests/e2e/collectives/collectives-westend/1_alliance/3_kick_member.yml diff --git a/cumulus/parachains/integration-tests/e2e/collectives/collectives-polkadot/2_opengov/0_assethub.yml b/cumulus/parachains/integration-tests/e2e/collectives/collectives-westend/2_opengov/0_assethub.yml similarity index 100% rename from cumulus/parachains/integration-tests/e2e/collectives/collectives-polkadot/2_opengov/0_assethub.yml rename to cumulus/parachains/integration-tests/e2e/collectives/collectives-westend/2_opengov/0_assethub.yml diff --git a/cumulus/parachains/integration-tests/e2e/collectives/collectives-polkadot/3_fellowship/0_init.yml b/cumulus/parachains/integration-tests/e2e/collectives/collectives-westend/3_fellowship/0_init.yml similarity index 100% rename from cumulus/parachains/integration-tests/e2e/collectives/collectives-polkadot/3_fellowship/0_init.yml rename to cumulus/parachains/integration-tests/e2e/collectives/collectives-westend/3_fellowship/0_init.yml diff --git a/cumulus/parachains/integration-tests/e2e/collectives/collectives-polkadot/3_fellowship/1_whitelist_call.yml b/cumulus/parachains/integration-tests/e2e/collectives/collectives-westend/3_fellowship/1_whitelist_call.yml similarity index 100% rename from cumulus/parachains/integration-tests/e2e/collectives/collectives-polkadot/3_fellowship/1_whitelist_call.yml rename to cumulus/parachains/integration-tests/e2e/collectives/collectives-westend/3_fellowship/1_whitelist_call.yml diff --git a/cumulus/parachains/integration-tests/e2e/collectives/collectives-polkadot/3_fellowship/2_assethub.yml b/cumulus/parachains/integration-tests/e2e/collectives/collectives-westend/3_fellowship/2_assethub.yml similarity index 100% rename from cumulus/parachains/integration-tests/e2e/collectives/collectives-polkadot/3_fellowship/2_assethub.yml rename to cumulus/parachains/integration-tests/e2e/collectives/collectives-westend/3_fellowship/2_assethub.yml diff --git a/cumulus/parachains/integration-tests/e2e/collectives/collectives-polkadot/config.toml b/cumulus/parachains/integration-tests/e2e/collectives/collectives-westend/config.toml similarity index 93% rename from cumulus/parachains/integration-tests/e2e/collectives/collectives-polkadot/config.toml rename to cumulus/parachains/integration-tests/e2e/collectives/collectives-westend/config.toml index 20fda92bd08f..bf4e147da0ff 100644 --- a/cumulus/parachains/integration-tests/e2e/collectives/collectives-polkadot/config.toml +++ b/cumulus/parachains/integration-tests/e2e/collectives/collectives-westend/config.toml @@ -1,7 +1,7 @@ [relaychain] default_command = "./bin/polkadot" default_args = [ "-lparachain=trace", "-lxcm=trace" ] -chain = "polkadot-local" +chain = "westend-local" [[relaychain.nodes]] name = "alice" @@ -26,7 +26,7 @@ chain = "polkadot-local" [[parachains]] id = 1001 -chain = "collectives-polkadot-local" +chain = "collectives-westend-local" cumulus_based = true [[parachains.collators]] diff --git a/cumulus/polkadot-parachain/chain-specs/asset-hub-kusama.json b/cumulus/polkadot-parachain/chain-specs/asset-hub-kusama.json deleted file mode 120000 index 89a3015b50aa..000000000000 --- a/cumulus/polkadot-parachain/chain-specs/asset-hub-kusama.json +++ /dev/null @@ -1 +0,0 @@ -../../parachains/chain-specs/asset-hub-kusama.json \ No newline at end of file diff --git a/cumulus/polkadot-parachain/chain-specs/asset-hub-polkadot.json b/cumulus/polkadot-parachain/chain-specs/asset-hub-polkadot.json deleted file mode 120000 index 43a1cb41131a..000000000000 --- a/cumulus/polkadot-parachain/chain-specs/asset-hub-polkadot.json +++ /dev/null @@ -1 +0,0 @@ -../../parachains/chain-specs/asset-hub-polkadot.json \ No newline at end of file diff --git a/cumulus/polkadot-parachain/chain-specs/bridge-hub-polkadot.json b/cumulus/polkadot-parachain/chain-specs/bridge-hub-polkadot.json deleted file mode 120000 index df22d3e88001..000000000000 --- a/cumulus/polkadot-parachain/chain-specs/bridge-hub-polkadot.json +++ /dev/null @@ -1 +0,0 @@ -../../parachains/chain-specs/bridge-hub-polkadot.json \ No newline at end of file diff --git a/cumulus/polkadot-parachain/chain-specs/collectives-polkadot.json b/cumulus/polkadot-parachain/chain-specs/collectives-polkadot.json deleted file mode 120000 index afece75567be..000000000000 --- a/cumulus/polkadot-parachain/chain-specs/collectives-polkadot.json +++ /dev/null @@ -1 +0,0 @@ -../../parachains/chain-specs/collectives-polkadot.json \ No newline at end of file diff --git a/cumulus/polkadot-parachain/src/chain_spec/asset_hubs.rs b/cumulus/polkadot-parachain/src/chain_spec/asset_hubs.rs index c1edeb98cd0a..3eb7643dd5f1 100644 --- a/cumulus/polkadot-parachain/src/chain_spec/asset_hubs.rs +++ b/cumulus/polkadot-parachain/src/chain_spec/asset_hubs.rs @@ -19,41 +19,17 @@ use crate::chain_spec::{ }; use cumulus_primitives_core::ParaId; use hex_literal::hex; -use parachains_common::{AccountId, AssetHubPolkadotAuraId, AuraId, Balance as AssetHubBalance}; +use parachains_common::{AccountId, AuraId, Balance as AssetHubBalance}; use sc_service::ChainType; use sp_core::{crypto::UncheckedInto, sr25519}; /// Specialized `ChainSpec` for the normal parachain runtime. -pub type AssetHubPolkadotChainSpec = - sc_service::GenericChainSpec; -pub type AssetHubKusamaChainSpec = - sc_service::GenericChainSpec; pub type AssetHubWestendChainSpec = sc_service::GenericChainSpec; -const ASSET_HUB_POLKADOT_ED: AssetHubBalance = - parachains_common::polkadot::currency::EXISTENTIAL_DEPOSIT; -const ASSET_HUB_KUSAMA_ED: AssetHubBalance = - parachains_common::kusama::currency::EXISTENTIAL_DEPOSIT; const ASSET_HUB_WESTEND_ED: AssetHubBalance = parachains_common::westend::currency::EXISTENTIAL_DEPOSIT; -/// Generate the session keys from individual elements. -/// -/// The input must be a tuple of individual keys (a single arg for now since we have just one key). -pub fn asset_hub_polkadot_session_keys( - keys: AssetHubPolkadotAuraId, -) -> asset_hub_polkadot_runtime::SessionKeys { - asset_hub_polkadot_runtime::SessionKeys { aura: keys } -} - -/// Generate the session keys from individual elements. -/// -/// The input must be a tuple of individual keys (a single arg for now since we have just one key). -pub fn asset_hub_kusama_session_keys(keys: AuraId) -> asset_hub_kusama_runtime::SessionKeys { - asset_hub_kusama_runtime::SessionKeys { aura: keys } -} - /// Generate the session keys from individual elements. /// /// The input must be a tuple of individual keys (a single arg for now since we have just one key). @@ -61,398 +37,6 @@ pub fn asset_hub_westend_session_keys(keys: AuraId) -> asset_hub_westend_runtime asset_hub_westend_runtime::SessionKeys { aura: keys } } -pub fn asset_hub_polkadot_development_config() -> AssetHubPolkadotChainSpec { - let mut properties = sc_chain_spec::Properties::new(); - properties.insert("ss58Format".into(), 0.into()); - properties.insert("tokenSymbol".into(), "DOT".into()); - properties.insert("tokenDecimals".into(), 10.into()); - - AssetHubPolkadotChainSpec::from_genesis( - // Name - "Polkadot Asset Hub Development", - // ID - "asset-hub-polkadot-dev", - ChainType::Local, - move || { - asset_hub_polkadot_genesis( - // initial collators. - vec![( - get_account_id_from_seed::("Alice"), - get_collator_keys_from_seed::("Alice"), - )], - vec![ - get_account_id_from_seed::("Alice"), - get_account_id_from_seed::("Bob"), - get_account_id_from_seed::("Alice//stash"), - get_account_id_from_seed::("Bob//stash"), - ], - 1000.into(), - ) - }, - Vec::new(), - None, - None, - None, - Some(properties), - Extensions { relay_chain: "polkadot-dev".into(), para_id: 1000 }, - ) -} - -pub fn asset_hub_polkadot_local_config() -> AssetHubPolkadotChainSpec { - let mut properties = sc_chain_spec::Properties::new(); - properties.insert("ss58Format".into(), 0.into()); - properties.insert("tokenSymbol".into(), "DOT".into()); - properties.insert("tokenDecimals".into(), 10.into()); - - AssetHubPolkadotChainSpec::from_genesis( - // Name - "Polkadot Asset Hub Local", - // ID - "asset-hub-polkadot-local", - ChainType::Local, - move || { - asset_hub_polkadot_genesis( - // initial collators. - vec![ - ( - get_account_id_from_seed::("Alice"), - get_collator_keys_from_seed::("Alice"), - ), - ( - get_account_id_from_seed::("Bob"), - get_collator_keys_from_seed::("Bob"), - ), - ], - vec![ - get_account_id_from_seed::("Alice"), - get_account_id_from_seed::("Bob"), - get_account_id_from_seed::("Charlie"), - get_account_id_from_seed::("Dave"), - get_account_id_from_seed::("Eve"), - get_account_id_from_seed::("Ferdie"), - get_account_id_from_seed::("Alice//stash"), - get_account_id_from_seed::("Bob//stash"), - get_account_id_from_seed::("Charlie//stash"), - get_account_id_from_seed::("Dave//stash"), - get_account_id_from_seed::("Eve//stash"), - get_account_id_from_seed::("Ferdie//stash"), - ], - 1000.into(), - ) - }, - Vec::new(), - None, - None, - None, - Some(properties), - Extensions { relay_chain: "polkadot-local".into(), para_id: 1000 }, - ) -} - -// Not used for syncing, but just to determine the genesis values set for the upgrade from shell. -pub fn asset_hub_polkadot_config() -> AssetHubPolkadotChainSpec { - let mut properties = sc_chain_spec::Properties::new(); - properties.insert("ss58Format".into(), 0.into()); - properties.insert("tokenSymbol".into(), "DOT".into()); - properties.insert("tokenDecimals".into(), 10.into()); - - AssetHubPolkadotChainSpec::from_genesis( - // Name - "Polkadot Asset Hub", - // ID - "asset-hub-polkadot", - ChainType::Live, - move || { - asset_hub_polkadot_genesis( - // initial collators. - vec![ - ( - hex!("4c3d674d2a01060f0ded218e5dcc6f90c1726f43df79885eb3e22d97a20d5421") - .into(), - hex!("4c3d674d2a01060f0ded218e5dcc6f90c1726f43df79885eb3e22d97a20d5421") - .unchecked_into(), - ), - ( - hex!("c7d7d38d16bc23c6321152c50306212dc22c0efc04a2e52b5cccfc31ab3d7811") - .into(), - hex!("c7d7d38d16bc23c6321152c50306212dc22c0efc04a2e52b5cccfc31ab3d7811") - .unchecked_into(), - ), - ( - hex!("c5c07ba203d7375675f5c1ebe70f0a5bb729ae57b48bcc877fcc2ab21309b762") - .into(), - hex!("c5c07ba203d7375675f5c1ebe70f0a5bb729ae57b48bcc877fcc2ab21309b762") - .unchecked_into(), - ), - ( - hex!("0b2d0013fb974794bd7aa452465b567d48ef70373fe231a637c1fb7c547e85b3") - .into(), - hex!("0b2d0013fb974794bd7aa452465b567d48ef70373fe231a637c1fb7c547e85b3") - .unchecked_into(), - ), - ], - vec![], - 1000u32.into(), - ) - }, - vec![ - "/ip4/34.65.251.121/tcp/30334/p2p/12D3KooWG3GrM6XKMM4gp3cvemdwUvu96ziYoJmqmetLZBXE8bSa".parse().unwrap(), - "/ip4/34.65.35.228/tcp/30334/p2p/12D3KooWMRyTLrCEPcAQD6c4EnudL3vVzg9zji3whvsMYPUYevpq".parse().unwrap(), - "/ip4/34.83.247.146/tcp/30334/p2p/12D3KooWE4jFh5FpJDkWVZhnWtFnbSqRhdjvC7Dp9b8b3FTuubQC".parse().unwrap(), - "/ip4/104.199.117.230/tcp/30334/p2p/12D3KooWG9R8pVXKumVo2rdkeVD4j5PVhRTqmYgLHY3a4yPYgLqM".parse().unwrap(), - ], - None, - None, - None, - Some(properties), - Extensions { relay_chain: "polkadot".into(), para_id: 1000 }, - ) -} - -fn asset_hub_polkadot_genesis( - invulnerables: Vec<(AccountId, AssetHubPolkadotAuraId)>, - endowed_accounts: Vec, - id: ParaId, -) -> asset_hub_polkadot_runtime::RuntimeGenesisConfig { - asset_hub_polkadot_runtime::RuntimeGenesisConfig { - system: asset_hub_polkadot_runtime::SystemConfig { - code: asset_hub_polkadot_runtime::WASM_BINARY - .expect("WASM binary was not build, please build it!") - .to_vec(), - ..Default::default() - }, - balances: asset_hub_polkadot_runtime::BalancesConfig { - balances: endowed_accounts - .iter() - .cloned() - .map(|k| (k, ASSET_HUB_POLKADOT_ED * 4096)) - .collect(), - }, - parachain_info: asset_hub_polkadot_runtime::ParachainInfoConfig { - parachain_id: id, - ..Default::default() - }, - collator_selection: asset_hub_polkadot_runtime::CollatorSelectionConfig { - invulnerables: invulnerables.iter().cloned().map(|(acc, _)| acc).collect(), - candidacy_bond: ASSET_HUB_POLKADOT_ED * 16, - ..Default::default() - }, - session: asset_hub_polkadot_runtime::SessionConfig { - keys: invulnerables - .into_iter() - .map(|(acc, aura)| { - ( - acc.clone(), // account id - acc, // validator id - asset_hub_polkadot_session_keys(aura), // session keys - ) - }) - .collect(), - }, - // no need to pass anything to aura, in fact it will panic if we do. Session will take care - // of this. - aura: Default::default(), - aura_ext: Default::default(), - parachain_system: Default::default(), - polkadot_xcm: asset_hub_polkadot_runtime::PolkadotXcmConfig { - safe_xcm_version: Some(SAFE_XCM_VERSION), - ..Default::default() - }, - } -} - -pub fn asset_hub_kusama_development_config() -> AssetHubKusamaChainSpec { - let mut properties = sc_chain_spec::Properties::new(); - properties.insert("ss58Format".into(), 2.into()); - properties.insert("tokenSymbol".into(), "KSM".into()); - properties.insert("tokenDecimals".into(), 12.into()); - - AssetHubKusamaChainSpec::from_genesis( - // Name - "Kusama Asset Hub Development", - // ID - "asset-hub-kusama-dev", - ChainType::Local, - move || { - asset_hub_kusama_genesis( - // initial collators. - vec![( - get_account_id_from_seed::("Alice"), - get_collator_keys_from_seed::("Alice"), - )], - vec![ - get_account_id_from_seed::("Alice"), - get_account_id_from_seed::("Bob"), - get_account_id_from_seed::("Alice//stash"), - get_account_id_from_seed::("Bob//stash"), - ], - 1000.into(), - ) - }, - Vec::new(), - None, - None, - None, - Some(properties), - Extensions { relay_chain: "kusama-dev".into(), para_id: 1000 }, - ) -} - -pub fn asset_hub_kusama_local_config() -> AssetHubKusamaChainSpec { - let mut properties = sc_chain_spec::Properties::new(); - properties.insert("ss58Format".into(), 2.into()); - properties.insert("tokenSymbol".into(), "KSM".into()); - properties.insert("tokenDecimals".into(), 12.into()); - - AssetHubKusamaChainSpec::from_genesis( - // Name - "Kusama Asset Hub Local", - // ID - "asset-hub-kusama-local", - ChainType::Local, - move || { - asset_hub_kusama_genesis( - // initial collators. - vec![ - ( - get_account_id_from_seed::("Alice"), - get_collator_keys_from_seed::("Alice"), - ), - ( - get_account_id_from_seed::("Bob"), - get_collator_keys_from_seed::("Bob"), - ), - ], - vec![ - get_account_id_from_seed::("Alice"), - get_account_id_from_seed::("Bob"), - get_account_id_from_seed::("Charlie"), - get_account_id_from_seed::("Dave"), - get_account_id_from_seed::("Eve"), - get_account_id_from_seed::("Ferdie"), - get_account_id_from_seed::("Alice//stash"), - get_account_id_from_seed::("Bob//stash"), - get_account_id_from_seed::("Charlie//stash"), - get_account_id_from_seed::("Dave//stash"), - get_account_id_from_seed::("Eve//stash"), - get_account_id_from_seed::("Ferdie//stash"), - ], - 1000.into(), - ) - }, - Vec::new(), - None, - None, - None, - Some(properties), - Extensions { relay_chain: "kusama-local".into(), para_id: 1000 }, - ) -} - -pub fn asset_hub_kusama_config() -> AssetHubKusamaChainSpec { - let mut properties = sc_chain_spec::Properties::new(); - properties.insert("ss58Format".into(), 2.into()); - properties.insert("tokenSymbol".into(), "KSM".into()); - properties.insert("tokenDecimals".into(), 12.into()); - - AssetHubKusamaChainSpec::from_genesis( - // Name - "Kusama Asset Hub", - // ID - "asset-hub-kusama", - ChainType::Live, - move || { - asset_hub_kusama_genesis( - // initial collators. - vec![ - ( - hex!("50673d59020488a4ffc9d8c6de3062a65977046e6990915617f85fef6d349730") - .into(), - hex!("50673d59020488a4ffc9d8c6de3062a65977046e6990915617f85fef6d349730") - .unchecked_into(), - ), - ( - hex!("fe8102dbc244e7ea2babd9f53236d67403b046154370da5c3ea99def0bd0747a") - .into(), - hex!("fe8102dbc244e7ea2babd9f53236d67403b046154370da5c3ea99def0bd0747a") - .unchecked_into(), - ), - ( - hex!("38144b5398e5d0da5ec936a3af23f5a96e782f676ab19d45f29075ee92eca76a") - .into(), - hex!("38144b5398e5d0da5ec936a3af23f5a96e782f676ab19d45f29075ee92eca76a") - .unchecked_into(), - ), - ( - hex!("3253947640e309120ae70fa458dcacb915e2ddd78f930f52bd3679ec63fc4415") - .into(), - hex!("3253947640e309120ae70fa458dcacb915e2ddd78f930f52bd3679ec63fc4415") - .unchecked_into(), - ), - ], - Vec::new(), - 1000.into(), - ) - }, - Vec::new(), - None, - None, - None, - Some(properties), - Extensions { relay_chain: "kusama".into(), para_id: 1000 }, - ) -} - -fn asset_hub_kusama_genesis( - invulnerables: Vec<(AccountId, AuraId)>, - endowed_accounts: Vec, - id: ParaId, -) -> asset_hub_kusama_runtime::RuntimeGenesisConfig { - asset_hub_kusama_runtime::RuntimeGenesisConfig { - system: asset_hub_kusama_runtime::SystemConfig { - code: asset_hub_kusama_runtime::WASM_BINARY - .expect("WASM binary was not build, please build it!") - .to_vec(), - ..Default::default() - }, - balances: asset_hub_kusama_runtime::BalancesConfig { - balances: endowed_accounts - .iter() - .cloned() - .map(|k| (k, ASSET_HUB_KUSAMA_ED * 524_288)) - .collect(), - }, - parachain_info: asset_hub_kusama_runtime::ParachainInfoConfig { - parachain_id: id, - ..Default::default() - }, - collator_selection: asset_hub_kusama_runtime::CollatorSelectionConfig { - invulnerables: invulnerables.iter().cloned().map(|(acc, _)| acc).collect(), - candidacy_bond: ASSET_HUB_KUSAMA_ED * 16, - ..Default::default() - }, - session: asset_hub_kusama_runtime::SessionConfig { - keys: invulnerables - .into_iter() - .map(|(acc, aura)| { - ( - acc.clone(), // account id - acc, // validator id - asset_hub_kusama_session_keys(aura), // session keys - ) - }) - .collect(), - }, - aura: Default::default(), - aura_ext: Default::default(), - parachain_system: Default::default(), - polkadot_xcm: asset_hub_kusama_runtime::PolkadotXcmConfig { - safe_xcm_version: Some(SAFE_XCM_VERSION), - ..Default::default() - }, - } -} - pub fn asset_hub_westend_development_config() -> AssetHubWestendChainSpec { let mut properties = sc_chain_spec::Properties::new(); properties.insert("tokenSymbol".into(), "WND".into()); diff --git a/cumulus/polkadot-parachain/src/command.rs b/cumulus/polkadot-parachain/src/command.rs index 25212c96600e..e0bd1c4f87cd 100644 --- a/cumulus/polkadot-parachain/src/command.rs +++ b/cumulus/polkadot-parachain/src/command.rs @@ -22,7 +22,7 @@ use crate::{ use cumulus_primitives_core::ParaId; use frame_benchmarking_cli::{BenchmarkCmd, SUBSTRATE_REFERENCE_HARDWARE}; use log::info; -use parachains_common::{AssetHubPolkadotAuraId, AuraId}; +use parachains_common::AuraId; use sc_cli::{ ChainSpec, CliConfiguration, DefaultConfigurationValues, ImportParams, KeystoreParams, NetworkParams, Result, SharedParams, SubstrateCli, diff --git a/cumulus/scripts/benchmarks.sh b/cumulus/scripts/benchmarks.sh index 29d069059258..70cb785e8037 100755 --- a/cumulus/scripts/benchmarks.sh +++ b/cumulus/scripts/benchmarks.sh @@ -6,14 +6,10 @@ repeat=${3:-20} __dir="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" -${__dir}/benchmarks-ci.sh collectives collectives-polkadot target/$target $steps $repeat +${__dir}/benchmarks-ci.sh collectives collectives-westend target/$target $steps $repeat -${__dir}/benchmarks-ci.sh assets asset-hub-kusama target/$target $steps $repeat -${__dir}/benchmarks-ci.sh assets asset-hub-polkadot target/$target $steps $repeat ${__dir}/benchmarks-ci.sh assets asset-hub-westend target/$target $steps $repeat -${__dir}/benchmarks-ci.sh bridge-hubs bridge-hub-polkadot target/$target $steps $repeat -${__dir}/benchmarks-ci.sh bridge-hubs bridge-hub-kusama target/$target $steps $repeat ${__dir}/benchmarks-ci.sh bridge-hubs bridge-hub-rococo target/$target $steps $repeat -${__dir}/benchmarks-ci.sh glutton glutton-kusama target/$target $steps $repeat +${__dir}/benchmarks-ci.sh glutton glutton-westend target/$target $steps $repeat diff --git a/cumulus/zombienet/bridge-hubs/bridge_hub_rococo_local_network.toml b/cumulus/zombienet/bridge-hubs/bridge_hub_rococo_local_network.toml index 80b398ac7240..4ba9219c43d9 100644 --- a/cumulus/zombienet/bridge-hubs/bridge_hub_rococo_local_network.toml +++ b/cumulus/zombienet/bridge-hubs/bridge_hub_rococo_local_network.toml @@ -64,7 +64,7 @@ cumulus_based = true [[parachains]] id = 1000 -chain = "asset-hub-kusama-local" +chain = "asset-hub-westend-local" cumulus_based = true [[parachains.collators]] diff --git a/cumulus/zombienet/examples/bridge_hub_kusama_local_network.toml b/cumulus/zombienet/examples/bridge_hub_kusama_local_network.toml deleted file mode 100644 index ae8ae07a75ce..000000000000 --- a/cumulus/zombienet/examples/bridge_hub_kusama_local_network.toml +++ /dev/null @@ -1,67 +0,0 @@ -[relaychain] -default_command = "../polkadot/target/release/polkadot" -default_args = [ "-lparachain=debug" ] -chain = "kusama-local" - - [[relaychain.nodes]] - name = "alice" - validator = true - - [[relaychain.nodes]] - name = "bob" - validator = true - - [[relaychain.nodes]] - name = "charlie" - validator = true - - [[relaychain.nodes]] - name = "dave" - validator = true - -[[parachains]] -id = 1003 -chain = "bridge-hub-kusama-local" -cumulus_based = true - - # run alice as parachain collator - [[parachains.collators]] - name = "alice" - validator = true - command = "./target/release/polkadot-parachain" - args = ["-lparachain=debug"] - - # run bob as parachain collator - [[parachains.collators]] - name = "bob" - validator = true - command = "./target/release/polkadot-parachain" - args = ["-lparachain=debug"] - - # run charlie as parachain collator - [[parachains.collators]] - name = "charlie" - validator = true - command = "./target/release/polkadot-parachain" - args = ["-lparachain=debug"] - - # run dave as parachain collator - [[parachains.collators]] - name = "dave" - validator = true - command = "./target/release/polkadot-parachain" - args = ["-lparachain=debug"] - - # run eve as parachain collator - [[parachains.collators]] - name = "eve" - validator = true - command = "./target/release/polkadot-parachain" - args = ["-lparachain=debug"] - - # run ferdie as parachain collator - [[parachains.collators]] - name = "ferdie" - validator = true - command = "./target/release/polkadot-parachain" - args = ["-lparachain=debug"] diff --git a/cumulus/zombienet/examples/bridge_hub_polkadot_local_network.toml b/cumulus/zombienet/examples/bridge_hub_polkadot_local_network.toml deleted file mode 100644 index 564fece7cae7..000000000000 --- a/cumulus/zombienet/examples/bridge_hub_polkadot_local_network.toml +++ /dev/null @@ -1,67 +0,0 @@ -[relaychain] -default_command = "../polkadot/target/release/polkadot" -default_args = [ "-lparachain=debug" ] -chain = "polkadot-local" - - [[relaychain.nodes]] - name = "alice" - validator = true - - [[relaychain.nodes]] - name = "bob" - validator = true - - [[relaychain.nodes]] - name = "charlie" - validator = true - - [[relaychain.nodes]] - name = "dave" - validator = true - -[[parachains]] -id = 1003 -chain = "bridge-hub-polkadot-local" -cumulus_based = true - - # run alice as parachain collator - [[parachains.collators]] - name = "alice" - validator = true - command = "./target/release/polkadot-parachain" - args = ["-lparachain=debug"] - - # run bob as parachain collator - [[parachains.collators]] - name = "bob" - validator = true - command = "./target/release/polkadot-parachain" - args = ["-lparachain=debug"] - - # run charlie as parachain collator - [[parachains.collators]] - name = "charlie" - validator = true - command = "./target/release/polkadot-parachain" - args = ["-lparachain=debug"] - - # run dave as parachain collator - [[parachains.collators]] - name = "dave" - validator = true - command = "./target/release/polkadot-parachain" - args = ["-lparachain=debug"] - - # run eve as parachain collator - [[parachains.collators]] - name = "eve" - validator = true - command = "./target/release/polkadot-parachain" - args = ["-lparachain=debug"] - - # run ferdie as parachain collator - [[parachains.collators]] - name = "ferdie" - validator = true - command = "./target/release/polkadot-parachain" - args = ["-lparachain=debug"] diff --git a/cumulus/zombienet/examples/small_network.toml b/cumulus/zombienet/examples/small_network.toml index 06ac0d0e5e78..3ec0c2f50e2b 100644 --- a/cumulus/zombienet/examples/small_network.toml +++ b/cumulus/zombienet/examples/small_network.toml @@ -14,7 +14,7 @@ chain = "rococo-local" [[parachains]] id = 2000 cumulus_based = true -chain = "asset-hub-kusama-local" +chain = "asset-hub-westend-local" # run charlie as parachain collator [[parachains.collators]] diff --git a/cumulus/zombienet/examples/statemine_kusama_local_network.toml b/cumulus/zombienet/examples/statemine_kusama_local_network.toml deleted file mode 100644 index 1f3debfb9d29..000000000000 --- a/cumulus/zombienet/examples/statemine_kusama_local_network.toml +++ /dev/null @@ -1,67 +0,0 @@ -[relaychain] -default_command = "../polkadot/target/release/polkadot" -default_args = [ "-lparachain=debug" ] -chain = "kusama-local" - - [[relaychain.nodes]] - name = "alice" - validator = true - - [[relaychain.nodes]] - name = "bob" - validator = true - - [[relaychain.nodes]] - name = "charlie" - validator = true - - [[relaychain.nodes]] - name = "dave" - validator = true - -[[parachains]] -id = 1000 -chain = "asset-hub-kusama-local" -cumulus_based = true - - # run alice as parachain collator - [[parachains.collators]] - name = "alice" - validator = true - command = "./target/release/polkadot-parachain" - args = ["-lparachain=debug"] - - # run bob as parachain collator - [[parachains.collators]] - name = "bob" - validator = true - command = "./target/release/polkadot-parachain" - args = ["-lparachain=debug"] - - # run charlie as parachain collator - [[parachains.collators]] - name = "charlie" - validator = true - command = "./target/release/polkadot-parachain" - args = ["-lparachain=debug"] - - # run dave as parachain collator - [[parachains.collators]] - name = "dave" - validator = true - command = "./target/release/polkadot-parachain" - args = ["-lparachain=debug"] - - # run eve as parachain collator - [[parachains.collators]] - name = "eve" - validator = true - command = "./target/release/polkadot-parachain" - args = ["-lparachain=debug"] - - # run ferdie as parachain collator - [[parachains.collators]] - name = "ferdie" - validator = true - command = "./target/release/polkadot-parachain" - args = ["-lparachain=debug"] From 086aabde909bf8317490eefa63e3ad10280148af Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?D=C3=B3nal=20Murray?= Date: Tue, 3 Oct 2023 12:37:04 +0200 Subject: [PATCH 13/78] Add bridge-hub-westend --- Cargo.lock | 63 ++ Cargo.toml | 1 + .../chain-specs/bridge-hub-kusama.json | 94 --- .../bridge-hubs/bridge-hub-westend/Cargo.toml | 185 ++++ .../bridge-hubs/bridge-hub-westend/build.rs | 26 + .../bridge-hubs/bridge-hub-westend/src/lib.rs | 798 ++++++++++++++++++ .../src/weights/block_weights.rs | 53 ++ .../src/weights/cumulus_pallet_xcmp_queue.rs | 77 ++ .../src/weights/extrinsic_weights.rs | 53 ++ .../src/weights/frame_system.rs | 155 ++++ .../bridge-hub-westend/src/weights/mod.rs | 38 + .../src/weights/pallet_balances.rs | 153 ++++ .../src/weights/pallet_collator_selection.rs | 225 +++++ .../src/weights/pallet_multisig.rs | 165 ++++ .../src/weights/pallet_session.rs | 81 ++ .../src/weights/pallet_timestamp.rs | 75 ++ .../src/weights/pallet_utility.rs | 102 +++ .../src/weights/pallet_xcm.rs | 289 +++++++ .../src/weights/paritydb_weights.rs | 63 ++ .../src/weights/rocksdb_weights.rs | 63 ++ .../bridge-hub-westend/src/weights/xcm/mod.rs | 256 ++++++ .../xcm/pallet_xcm_benchmarks_fungible.rs | 190 +++++ .../xcm/pallet_xcm_benchmarks_generic.rs | 329 ++++++++ .../bridge-hub-westend/src/xcm_config.rs | 272 ++++++ .../bridge-hub-westend/tests/tests.rs | 57 ++ .../chain-specs/bridge-hub-kusama.json | 1 - .../src/chain_spec/bridge_hubs.rs | 241 +----- 27 files changed, 3794 insertions(+), 311 deletions(-) delete mode 100644 cumulus/parachains/chain-specs/bridge-hub-kusama.json create mode 100644 cumulus/parachains/runtimes/bridge-hubs/bridge-hub-westend/Cargo.toml create mode 100644 cumulus/parachains/runtimes/bridge-hubs/bridge-hub-westend/build.rs create mode 100644 cumulus/parachains/runtimes/bridge-hubs/bridge-hub-westend/src/lib.rs create mode 100644 cumulus/parachains/runtimes/bridge-hubs/bridge-hub-westend/src/weights/block_weights.rs create mode 100644 cumulus/parachains/runtimes/bridge-hubs/bridge-hub-westend/src/weights/cumulus_pallet_xcmp_queue.rs create mode 100644 cumulus/parachains/runtimes/bridge-hubs/bridge-hub-westend/src/weights/extrinsic_weights.rs create mode 100644 cumulus/parachains/runtimes/bridge-hubs/bridge-hub-westend/src/weights/frame_system.rs create mode 100644 cumulus/parachains/runtimes/bridge-hubs/bridge-hub-westend/src/weights/mod.rs create mode 100644 cumulus/parachains/runtimes/bridge-hubs/bridge-hub-westend/src/weights/pallet_balances.rs create mode 100644 cumulus/parachains/runtimes/bridge-hubs/bridge-hub-westend/src/weights/pallet_collator_selection.rs create mode 100644 cumulus/parachains/runtimes/bridge-hubs/bridge-hub-westend/src/weights/pallet_multisig.rs create mode 100644 cumulus/parachains/runtimes/bridge-hubs/bridge-hub-westend/src/weights/pallet_session.rs create mode 100644 cumulus/parachains/runtimes/bridge-hubs/bridge-hub-westend/src/weights/pallet_timestamp.rs create mode 100644 cumulus/parachains/runtimes/bridge-hubs/bridge-hub-westend/src/weights/pallet_utility.rs create mode 100644 cumulus/parachains/runtimes/bridge-hubs/bridge-hub-westend/src/weights/pallet_xcm.rs create mode 100644 cumulus/parachains/runtimes/bridge-hubs/bridge-hub-westend/src/weights/paritydb_weights.rs create mode 100644 cumulus/parachains/runtimes/bridge-hubs/bridge-hub-westend/src/weights/rocksdb_weights.rs create mode 100644 cumulus/parachains/runtimes/bridge-hubs/bridge-hub-westend/src/weights/xcm/mod.rs create mode 100644 cumulus/parachains/runtimes/bridge-hubs/bridge-hub-westend/src/weights/xcm/pallet_xcm_benchmarks_fungible.rs create mode 100644 cumulus/parachains/runtimes/bridge-hubs/bridge-hub-westend/src/weights/xcm/pallet_xcm_benchmarks_generic.rs create mode 100644 cumulus/parachains/runtimes/bridge-hubs/bridge-hub-westend/src/xcm_config.rs create mode 100644 cumulus/parachains/runtimes/bridge-hubs/bridge-hub-westend/tests/tests.rs delete mode 120000 cumulus/polkadot-parachain/chain-specs/bridge-hub-kusama.json diff --git a/Cargo.lock b/Cargo.lock index 93a43899bb57..8279cddff5b8 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -1770,6 +1770,69 @@ dependencies = [ "staging-xcm-executor", ] +[[package]] +name = "bridge-hub-westend-runtime" +version = "0.1.0" +dependencies = [ + "bridge-hub-test-utils", + "cumulus-pallet-aura-ext", + "cumulus-pallet-dmp-queue", + "cumulus-pallet-parachain-system", + "cumulus-pallet-session-benchmarking", + "cumulus-pallet-xcm", + "cumulus-pallet-xcmp-queue", + "cumulus-primitives-core", + "cumulus-primitives-utility", + "frame-benchmarking", + "frame-executive", + "frame-support", + "frame-system", + "frame-system-benchmarking", + "frame-system-rpc-runtime-api", + "frame-try-runtime", + "hex-literal", + "log", + "pallet-aura", + "pallet-authorship", + "pallet-balances", + "pallet-collator-selection", + "pallet-multisig", + "pallet-session", + "pallet-timestamp", + "pallet-transaction-payment", + "pallet-transaction-payment-rpc-runtime-api", + "pallet-utility", + "pallet-xcm", + "pallet-xcm-benchmarks", + "parachain-info", + "parachains-common", + "parity-scale-codec", + "polkadot-core-primitives", + "polkadot-parachain-primitives", + "polkadot-runtime-common", + "scale-info", + "serde", + "smallvec", + "sp-api", + "sp-block-builder", + "sp-consensus-aura", + "sp-core", + "sp-genesis-builder", + "sp-inherents", + "sp-io", + "sp-offchain", + "sp-runtime", + "sp-session", + "sp-std", + "sp-storage", + "sp-transaction-pool", + "sp-version", + "staging-xcm", + "staging-xcm-builder", + "staging-xcm-executor", + "substrate-wasm-builder", +] + [[package]] name = "bridge-runtime-common" version = "0.1.0" diff --git a/Cargo.toml b/Cargo.toml index 8a65b5578331..6d66695a165d 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -68,6 +68,7 @@ members = [ "cumulus/parachains/runtimes/assets/common", "cumulus/parachains/runtimes/assets/test-utils", "cumulus/parachains/runtimes/bridge-hubs/bridge-hub-rococo", + "cumulus/parachains/runtimes/bridge-hubs/bridge-hub-westend", "cumulus/parachains/runtimes/bridge-hubs/test-utils", "cumulus/parachains/runtimes/collectives/collectives-westend", "cumulus/parachains/runtimes/contracts/contracts-rococo", diff --git a/cumulus/parachains/chain-specs/bridge-hub-kusama.json b/cumulus/parachains/chain-specs/bridge-hub-kusama.json deleted file mode 100644 index 5e45e1528a10..000000000000 --- a/cumulus/parachains/chain-specs/bridge-hub-kusama.json +++ /dev/null @@ -1,94 +0,0 @@ -{ - "name": "Kusama BridgeHub", - "id": "bridge-hub-kusama", - "chainType": "Live", - "bootNodes": [ - "/dns/kusama-bridge-hub-connect-ew1-0.polkadot.io/tcp/30334/p2p/12D3KooWPQQPivrqQ51kRTDc2R1mtqwKT4GGtk2rapkY4FrwHrEp", - "/dns/kusama-bridge-hub-connect-ew1-1.polkadot.io/tcp/30334/p2p/12D3KooWPcF9Yk4gYrMju9CyWCV69hAFXbYsnxCLogwLGu9QFTRn", - "/dns/kusama-bridge-hub-connect-ue4-0.polkadot.io/tcp/30334/p2p/12D3KooWMf1sVnJDTkKWtaThqvrgcSPLbfGXttSqbwhM2DJp9BUG", - "/dns/kusama-bridge-hub-connect-ue4-1.polkadot.io/tcp/30334/p2p/12D3KooWQaV7wMfNVKy2aMz4Lds3TTxgSDyZAUEnbAZMfD8rW3ow", - "/dns/kusama-bridge-hub-connect-ew1-0.polkadot.io/tcp/443/wss/p2p/12D3KooWPQQPivrqQ51kRTDc2R1mtqwKT4GGtk2rapkY4FrwHrEp", - "/dns/kusama-bridge-hub-connect-ew1-1.polkadot.io/tcp/443/wss/p2p/12D3KooWPcF9Yk4gYrMju9CyWCV69hAFXbYsnxCLogwLGu9QFTRn", - "/dns/kusama-bridge-hub-connect-ue4-0.polkadot.io/tcp/443/wss/p2p/12D3KooWMf1sVnJDTkKWtaThqvrgcSPLbfGXttSqbwhM2DJp9BUG", - "/dns/kusama-bridge-hub-connect-ue4-1.polkadot.io/tcp/443/wss/p2p/12D3KooWQaV7wMfNVKy2aMz4Lds3TTxgSDyZAUEnbAZMfD8rW3ow", - "/dns/boot.stake.plus/tcp/41333/p2p/12D3KooWBzbs2jsXjG5dipktGPKaUm9XWvkmeJFsEAGkVt946Aa7", - "/dns/boot.stake.plus/tcp/41334/wss/p2p/12D3KooWBzbs2jsXjG5dipktGPKaUm9XWvkmeJFsEAGkVt946Aa7", - "/dns/boot.metaspan.io/tcp/26032/p2p/12D3KooWKfuSaZrLNz43PDgM4inMALXRHTSh2WBuqQtZRq8zmT1Z", - "/dns/boot.metaspan.io/tcp/26036/wss/p2p/12D3KooWKfuSaZrLNz43PDgM4inMALXRHTSh2WBuqQtZRq8zmT1Z", - "/dns/boot-cr.gatotech.network/tcp/33230/p2p/12D3KooWFQFmg8UqAYLDNc2onySB6o5LLvpbx3eXZVqz9YFxAmXs", - "/dns/boot-cr.gatotech.network/tcp/35230/wss/p2p/12D3KooWFQFmg8UqAYLDNc2onySB6o5LLvpbx3eXZVqz9YFxAmXs", - "/dns/bridge-hub-kusama-bootnode.turboflakes.io/tcp/30615/p2p/12D3KooWE3dJXbwA5SQqbDNxHfj7BXJRcy2KiXWjJY4VUMKoa7S2", - "/dns/bridge-hub-kusama-bootnode.turboflakes.io/tcp/30715/wss/p2p/12D3KooWE3dJXbwA5SQqbDNxHfj7BXJRcy2KiXWjJY4VUMKoa7S2", - "/dns/boot-node.helikon.io/tcp/10250/p2p/12D3KooWDJLkhqQdXcVKWX7CqJHnpAY6PzrPc4ZG2CUWnARbmguy", - "/dns/boot-node.helikon.io/tcp/10252/wss/p2p/12D3KooWDJLkhqQdXcVKWX7CqJHnpAY6PzrPc4ZG2CUWnARbmguy", - "/dns/bridge-hub-kusama.bootnode.amforc.com/tcp/30337/p2p/12D3KooWGNeQJ5rXnEJkVUuQqwHd8aV5GkTAheaRoCaK8ZwW94id", - "/dns/bridge-hub-kusama.bootnode.amforc.com/tcp/30333/wss/p2p/12D3KooWGNeQJ5rXnEJkVUuQqwHd8aV5GkTAheaRoCaK8ZwW94id", - "/dns/kusama-bridge-hub-boot-ng.dwellir.com/tcp/30337/p2p/12D3KooWBFskNCQDVjuUeBh6vrszWrUvYMBBhtZRLnoTZDdLYbW5", - "/dns/kusama-bridge-hub-boot-ng.dwellir.com/tcp/443/wss/p2p/12D3KooWBFskNCQDVjuUeBh6vrszWrUvYMBBhtZRLnoTZDdLYbW5" - ], - "telemetryEndpoints": null, - "protocolId": null, - "properties": { - "ss58Format": 2, - "tokenDecimals": 12, - "tokenSymbol": "KSM" - }, - "relay_chain": "kusama", - "para_id": 1002, - "codeSubstitutes": {}, - "genesis": { - "raw": { - "top": { - "0x0d715f2646c8f85767b5d2764bb2782604a74d81251e398fd8a0a4d55023bb3f": "0xea030000", - "0x0d715f2646c8f85767b5d2764bb278264e7b9012096b41c4eb3aaf947f6ea429": "0x0000", - "0x15464cac3378d46f113cd5b7a4d71c84476f594316a7dfe49c1f352d95abdaf1": "0x00000000", - "0x15464cac3378d46f113cd5b7a4d71c844e7b9012096b41c4eb3aaf947f6ea429": "0x0000", - "0x15464cac3378d46f113cd5b7a4d71c845579297f4dfb9609e7e4c2ebab9ce40a": "0x1024f063334d367a9a9de80249cc2d39127236124cd65601840387a5048afefa27de0f015d686f4ef823353d5217a87686d3b0fb5e8a46d6652c3f217d85f2ff1afa66e865f8710e3373bd7042e4ee89e363dcea7ca2f46f118d5b5962967f3b0972a5376b58ed027e2aeb7093e96e6a3c67a5562ba8dc883562cb88ceefcc3c16", - "0x15464cac3378d46f113cd5b7a4d71c84579f5a43435b04a98d64da0cefe18505": "0x5005ca1f000000000000000000000000", - "0x26aa394eea5630e07c48ae0c9558cef734abf5cb34d6244378cddbf18e849d96": "0x0000000082395e6a00", - "0x26aa394eea5630e07c48ae0c9558cef74e7b9012096b41c4eb3aaf947f6ea429": "0x0000", - "0x26aa394eea5630e07c48ae0c9558cef75684a022a34dd8bfa2baaf44f172b710": "0x01", - "0x26aa394eea5630e07c48ae0c9558cef78a42f33323cb5ced3b44dd825fda9fcc": "0x4545454545454545454545454545454545454545454545454545454545454545", - "0x26aa394eea5630e07c48ae0c9558cef7a44704b568d21667356a5a050c118746b4def25cfda6ef3a00000000": "0x4545454545454545454545454545454545454545454545454545454545454545", - "0x26aa394eea5630e07c48ae0c9558cef7a7fd6c28836b9a28522dc924110cf439": "0x01", - "0x26aa394eea5630e07c48ae0c9558cef7b99d880ec681799c0cf30e8886371da9170ab9e3067cafb34b160da9119e7aed72a5376b58ed027e2aeb7093e96e6a3c67a5562ba8dc883562cb88ceefcc3c16": "0x0000000000000000010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "0x26aa394eea5630e07c48ae0c9558cef7b99d880ec681799c0cf30e8886371da91a6f5560d454405e76bae8d20f41990624f063334d367a9a9de80249cc2d39127236124cd65601840387a5048afefa27": "0x0000000000000000010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "0x26aa394eea5630e07c48ae0c9558cef7b99d880ec681799c0cf30e8886371da9609afedb001690b07828b8dac6c74ef6de0f015d686f4ef823353d5217a87686d3b0fb5e8a46d6652c3f217d85f2ff1a": "0x0000000000000000010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "0x26aa394eea5630e07c48ae0c9558cef7b99d880ec681799c0cf30e8886371da97896e968dee3411be7bcb6e538298679fa66e865f8710e3373bd7042e4ee89e363dcea7ca2f46f118d5b5962967f3b09": "0x0000000000000000010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "0x26aa394eea5630e07c48ae0c9558cef7f9cce9c888469bb1a0dceaa129672ef8": "0x08446272696467652d6875622d6b7573616d61", - "0x3a63": "0x", - "0x3a636f6465": "0x52bc537646db8e0528b52ffd00587474043ef944860f5520581aa5037f9463647bd51e20bd6080b25e2406f1abe2ec64b0ff439520e6ed1847818671893a082d0b4f42116c01308207e08dc5aec66d31d43ec516ffa92d7662a8fd98ec1f76cab795dff6de9bc82da54c29a5cd10a10efb0e1c4f13c9f633aca37a92de6379982bb2e96028fc7a9299932a1e86bec7249429b798fcab616053eb3b55520f2327063a65719ee43b900a9e543d4966d3c3480f631dd10dc01013bdf629388c9cb39a5ea32616f37d95349b2bc62433a2298b8482459233a3906bd2ddd5c38e79b4ee1899cd455a240e53c4f6cc47e3efcafa3a7bd677e4d752fcf7bc3dd377dc248309df77a74a0a5f7255d23aa9ff2e6ab7ab3314bec5d5195aa78ffec7d58ebed7715a66ae260ae16370abaf4afa1e73dedde7bdd523260a3f3e6661dc99b56170b9fdc9ecf2e8ffe9b755930e4ce1fff4db9a8b9b0e0e218d5c875531f96b073b6ed333ed8a6e008822c32dd8f64c49e3cf64a1deb3bee3bf44b4fd2bd3f7bb3de03fae1ed9b7cd5899cfc7ebceffe5e840625a3da0f12b0df5c7dc35a087add65c6d9285f6bfad5a47f4bdec62befff1de8e5847b49f93ddf9ffb4a490b3c22c0fff9fee214cfe254cab1586faaf06d4cf1f6b0d08c667edc7d2c81db18ee026e96a8fd399a1fffde3905847f475c73f93856e00881e7b9427466394f45749dddffddddd0b757777ffdde121f8218a6f547f7fd7a8fa68f7ef6814d3fe410aedcfbac7534dab0bb469d541fbb77994603bd998bbf2810add956a4c02e8ae7a38a2da4f7ffcfdd728ebe93e666d4be3c614db9ec9d47acf58038a1420b21e630d487c8babf1e363ad019934fe6aafbbf7ab01c1ffe9f8ab39b69ae42a11956f6d555affe3d6561fb57e3520f998b5d50850ebb1d54a5c6d424b6f6d7557d4fab8d5edae89921c86d840adafdb5d0d42adaff187c76d6969d3c1e388238e3134beb55519e87b8c336b7b7f018b5a72d3c1a291ab4c2d4e078e238e38e2a09588c228e4cc5f4d94257b1cd8de3471613b8d3077d5c38a564977d5c316ba9f750fa7f64f8dda956a0c5d5a75d0fdddb13fd8f2e88d296f4c5fa3f877e96b54ff3ec61867fc5867bb343eba48e96ea9fffb7ed7809a5ba6f1d12589ee96f2bf6dbbeb8d696bfcab39f7560392ddf5d2de98ae6681652eb0a5fddbcf5ff7b1eddff77e23ebdc1235d380f1f336c9982b55185a1fed97fc52aef76cefd449f9eba48f1907ef76773f35eabd3fe6f0fd41c8bd8d6973b5df7d2636b33bead3fe6d54a3f8376c7be6feebae9f35a0e5b6bb2a81b6bbfe9f464dfefe53a37c633a1bd56f6ad4f36de96aef7ffaa779d39941527e4999d399c19fdf9f3921a68f7be72a53fe9f7ea601b67477d449fbb16d54e5f77f9fa30389c95f33dadbddfb044cfe0bf01b716ebb7b5c95749fb747b324aa834599d468339cf1d6744599440df36cb7077ff5dfeef665a32a53ff7dcc3718a6fffe6a3eb6bbfae8be73b2bbfd9fc63ce3cda9c624666128934c667b2c6115d5e10194bfbfb50b3c958af2b30664aa287fd6a8a5fdab016115e5ffe9dd76346764d20d009173af816d63bbf3c20126fffe96b0f59e28efa1c00757ca192194e93bfdeff74fde13c57a28d18a5c149982027f68c15ca102942f62c6a80296149493eff43f2eca2905e53de48616cc152a40f922668c2a604945912928d277f88716cc152a40f922668c2a604941c1e2ffb8f51dfefda1c7fd05e3df46d57de6b6bbfd7d22e61b6c57aa2a742d6c1730f9f7b7a4c306c36089242e9d3674a8a0c3860e183a473a5e747c907325470a3938c871424e0f72769013860e941c1ee478c9c9418e303951e43c915345e749ce514e1c3945c8a9414e17393de4c420c728c74a0e14392ec869418e11392fc801470e113943e43cc961410e1039a290430a3a44e498428e0f398890e3448e34727ec821262705394de4202187891c71e41c21278d1c2a3952e4ac20070539aa90a3821c247292c839418e0c72b0e45421070d1d554e149a247214714a3aad7152c2a98d131b27334e4338a171f2e21483d3151c28e010010709470c0e12708e8003049c20e08c81a3064e1370ccc029034708385f70c8c00183b3039c30707880930353114c49386c9896807306ce0f70dac059024ed28d13372bb839e2c6e8460537546eaeb8b1e246cb4d153745dc107123e5c6889b14dca0e046899b19dc507193e5668a1b19dc60b991e226063730b869c14d143750dc3c71c3829b2a3743dc087113e5a6e826881b206ea0dc3cb9f9e1c6879b1e6e54a63126384c5030b9617a82a909262498904c473019c1a404d317261b98ae98a230553159311961926213874d1a3668d8f4c0a68bcd17365c6cb4d80c6123844d149b229c1ed4bc5133851a29d440c1c6079b206c7aa869a3e6083548a861a3068d9a356acea8d15223839a2a6aa8a8d9a2860635596aa6a899414d0b6aaad44451e3848d1a3541d8c04113070d1568d0a80182260d1a22d0c0a0464513041a20d0944133060d189a18d4f850d3038d14345868544093021a24688e9870cc31130af38df984d9c614c2148346ca0433d59868cc3013073440cc20cc22cc1bcc2f66976983e9c5e43257b38bc9c5dc62d2606a31ad5842b05181c98b09889c31333fcc006133c63505cb4806099923648c648cf02b6686f05470312113c522423fd129e82a1619355b2c38fa8a0504cb0839516815d8acac319a05396ef40a72b6c811a29ba841ca01a3460dcb8ca9440e1cdd0216c26242bb20878b1c2af4949c29e478c302c25ac34ac285021313da896622e70639aa86a266ca9584a584b69263044b0d4b4c53b1d0b082c8419248d7132e363022b02230299811d810d80930240c50802b09272c4e3d385d71b5f156d718b08d9926c80461060a1e46526130ae1e5848d6102c30d61939502e1ec8377470a0c34547c1b4e5948413146aa25043058f024d1197159716ab059717971225364a3c28dda00446a907a523947650fa81a94b498c121caf0acb0d6b8cd584a7c5a68a67c555c675c625047fc2a57028a014201cf38709c47cc22eb0a1c2565c8c23c18d201346068d69c435e01b701716141889d760245c5b2e2eae2c3a893e81dc6215711dc1326246357d30bd611df17a20038425859f601121b190475848b081529a82c98c8b0ca9326d81a3841a2badc44c190c25668954c429e20c7a89d20a729e10b5340a4c63949c702b66cc88555862c808c140c02df8498d0bac29d6129612960c2c144c272c24260b6695191fac221f6309e150b0869054c8195854ac342c362219d61b561bd69115c6a4850c115715388839039b13f0103640a0419a656030c05080a5006b027b01e604460596059b028b01860593012605a6028c05d814ac05970f30283025b028b02bd80a30176054ae2f9718d70fae238c09ac0ab604f60466e532e232ba8a885368744093031a1cd078a10183e606345fd074a1b1018d17345c6856345dd0d480860b9a2d686840a3054d16345b68b0a0b982c68a9a2b3455689cb0a260fdc03a820d10d612ac2fd71b384fb84e80f306840202017f803e4028f0098cf26ca033058723871ba52a2515e0ac2153844c514d16d30c8f43aaf19e5850e02481c6888b0a9714bc08384cb0a2c430667a68249921b8c872828c94d6a2b7b40eb024ac27e478824d143021b0281c038601c3c129602acc04af8097e02aec044761ae715a8295f4a8d88ca141c2a98c8e82c3d820c114047f31d1c02a821504d3155619d6096ac298b0e028a62498da2815c19485e5031b241aa31810a0009e9906c40263ba7c2da1d41eb403110f085142242807214230761c9004091172cd40718390241f4002e4c891241010ba21e8c891241030c0cc13bbc3912244848270101214f40102ccb060937c0049112124581224021d841451428590048580044482fc4c950dba0149122442880829a28406dd8024890584908820c90d375016669cc021c90d4138b430b382dd8104414684ecb0030982664092a4c80e3b0465609b51c18ea08812ba24c8c892241bb8c036436585048920480434d4804310084040a40603cca46077307243500e3734b13b0821095a12940392223fc30492221fd09999b23714d901499125424d828490e088122544842c09c2e1481111a48cdc90e4484ac7cc121b0221448488e0404428a80234334a94a0c8112245848a20297233830211dc10d424a86626895d920402d9cc097687a02242459624c9414804446c66905824498a08115922021c84082539b28390224a28912522a0376f0a6be48624473c20244888080e458e106122b31c74c40344849088e00342846e085a52040724458408c9b1029462adc0e8b2852e11b62b958a3291e788700bdcc24ad87a3af01feae8409d6d8680bbf4d71d63d4a2e67e8add1ea3d6b1376a518b317aeca83df7d77df26dad63b7776ccd7737768cdd0ebddddba347df7d2e13bd5fb73f7f5132f3cac4d72edf3247c80c6962f4dedd185f77cb27fdf96e8c71a3f7c218e3babcde945266e635ecb664dc4b3225f93ac6ce715ef76eebb575b9474bb6f7c67d298f71638c3872a663dc8d2ee5faf3f806f0b63b46cf5ef7831d3b4ab9bbddeefdba775b6ec7dd8edbbddbedb4bd3bbeddee175bd88dfb1e7cce31f2f308df8bf141678fdb2de5c6ee95b26facedee09fbf1936f4646be6b4acbb2dc6577f477f9c25de8bb71ddfded7694dbedde2fc69fd849778fccf0010e6840472303948931c218b51d0c7048231dca1867bcdbdd6334c118635bcfdff5fcbd88f9f6fa9a4c1ac7c8bcddc37b017dea75776721f3d63c00b1e345b3bb2f6b7f98c3a679bdd7c2d734976cb81de17a43b8d776efe3c7bcb2574a99374380f7643f87ddd2df6cf85c3ef8dededcdcdccce94feb8dbd592f0b9d65f1d4bced71773bba1563afd5fedc5fc9e7b36b69bc7b7b7070bad7dd3db67b778c0edd4fbb32c66e993500bca300bab97979bd63f77befb949cabe91b1a335e3eebabbcdc66e544ecd5eefcadce63d0574af7bc7eef7ae6b574a29a5cbf76666decccc7b7d5dfe9e3fe9fe64bcaeeb6aec5d524af9dc358f1bd71d67370ec0b3ee8e7105d0dded31ecf0ddde6e21c616ba7b3d6a5a6f7b8c31c6eeeece121063d6bd0f00edbd0d805df7ed861e978bbb71771d86766c773b72f7b6ec868ef364cb766fb9af1b3ed87d79fbdbdd8dd2bdbbbbbbdfbe17fbc11929e525df7ab6ddddbbbbfeb20c013cd90bbe6f17bede9aac1bbee752beb7beeddddecedbeeceeecfdbbbdb6a87d13b6e773fe6d6614327095eb34d8225494210148218038a85264946200400940260f815604000089014c9610722397c028e1431c2730002f0e85ce872b890830001288001786a70385224871b84081d1101910f04e1b063110086007042449604210902c1921d04802d0c413bec10b444490892dc20644910932437042d114264071c6e08128200232805c0a0e486a01d7a4a39dc2044c4034272d8a10892221fe8b60f145912c444c80210a00005c08043909024424a48b0e48600948e0431093a22a4099110b4c00208921c11020224454000822447727c93201c90141182a408911c6ef8c00792701c825d04042df9809025498488dc90e4c811223a0a8043d092201c9624118252000c4260083242e4880784041559225480a0101411422282259c8dcf078444c0824d93a01c84082129b24489901b76281282254484762040cd0e394c0b4392244b728cdc40c403478e245952801d22414b7248106444885093202400d0211404821c2bec20b4439126413aac4500922445846e20b20312224b84840815094108927439168626453e10b4440967b38448d0911b74982009f29a45801024498aecb0248889101c900429514244481008882c4922b48310a126413a982009f202685e3411af6bd810229ef1a12122a2b87008110f0d110d0d0d1111c5a1a1a1a137e43d64888986867c08112f5169c8120d1111bda1378488878686868688de901d1af221433cc443433d648887867ac80e0d0d1111f910221ee2214b44740d191ae2213b34d44388181249226b081113f10e0d1111bd21434b148710f112c121bb43889888e80d592222221fb244443d84888978c812f19008bc14f0ee72087620b201717471c612a020052ac4912a3d14a2548983827dc6edeed4feb894b71a84466e1be2d40f1b47aa2847aaf4bde960a5c44529fd552afdf51e4a89737239c1022b984041173aa892ba1e4ae9a140297127dfe1b7382017fadfbe77a24f06fab0e317d87baccade1e53efbc7fbfe4d13aa7ccf7fdafbb1d8f04d8fa15df32c58de8fe83d1924f4a6f96d192dbcad285652fcbbc397b5bcaf6c2324de6c9c878b3cc6ea66d96edb63249741f939999c976abaedaad7618ba4f53f36a6abcb9060cdddfe2a5af749556b551129217305b380b1b7115568d01e3cf91d60b577745b9dbfd3d185f8cde1cb9dddf83305acfb2bcd97a3046cb92b274bdebf2e6cb92a5d2756158a63d4df366edc2b24cd3646466e69bd39ba796b14cc6333319cf99314d8dcdb3b1f1669b9a6c6db235ed56e7aeb042b638a7773a79f38926e3ad26e3cd06b3319932de6e341f4cb19b8cb715341f4c17e7e1e078338e9491cb637fad782365782801db1d3572111785a129ae3eca9cedd26c775977fcabf57270a5c4ac9c44997298e5d1c4acebe5c71ed12f4bccca61c2f0eef0978c68a6e4a8c2452c858bb8e88a991dbd17ccca616212ddc35f3a16790f7bf11d7f33a8d0a3683485eee12d7ac7cb7bee42fd6b7ce2d9919bc0e808b303c985a418c68401431f57b9e8c50c08aaf8323e1e4c7e6c9bc6d49d4eff7e018716eaafd39c049ac2df2fa210057defd328a7fc32346a57406c41f97368d4527ea1eea151f147a051bb122289fdb202adbbf2547d5a7d9ebc2421b43c8155b0ec2a081ed0ba6d50ee473103da47972c9b0f2eabcd07972e8daaf31bc528ca93f2c7c00cf0df4167a86fdec47c5a7d28dfd0edf20509b4b9ba5e28fb54a0a98f2e3f3d1b35c32a77c29fa7bbd25b8f61966571ee25eee37bac33d6dee73ca3299fe6eb53f9bcb2de9fc3342a7b7f16d33df3fdb98d46697f595f9279b9b15177fe341b17f98ebf9f4aa814a292db5c0372ed7df6ad0159998faada973e7becafc74a1b767155885effd3d85695d0eb57b3c0d212b7dd49ae3aa117c7461a0636c52adff19f58ccca2b5e79cf10dff1c7647845fde7265f93dc772767b61f66de09516ae6df3644cac7b82a2faece13955c0d42eb111e6a8489532b2598f90db3c99fd9a060abd1c0cd3c6f929bd97aab3ca868ff8fcf7012d47f66fb8148b5aa6254f4c4871e54292844292c6e46ac0cf1a4b0b406b9ef37b54ce73849eb1217d8eea8700a59655ed7c6a9cbcbb551e04777fe6379b84c0f544f3a8aa64293c8a4c8edc1cb83df1f6be7c2df172f3ddbeba50bf55d6de1a3a579a4a017980753c04557b8888dbc07fb2cdbf8b16d7d07f2eed38ec7a7c4cdff5dc7c383c56cbd674fefebd38d5c9590abf371fd3f7cc725e5ad4a2a23c5ac3c0546d1a80a8fa02a2b82460ea7505885a7507f78e43dd7fb4330fcfed7065f84619cc8ea1b26ac68d78bbf3e06f85729065d126995c1815fe85f1579a17b03baab2215c55863aebfccca5b683f6f69d4168df2ba6168ff220de9aedfd262ee2a8831d43fcce3551b18cdf6f09e063c595948299edba3e9feae37ef93a944fc562f85b50df6f9d71874f48e3f6fa7eedeb6a9d30ce69bd2a82a1f958cf29ba2d02145efd4a70589f6571eea6fc5ed4260fd1ddd5fdee5e5ddf7de3d7af4e85e4dd49f3fbff77a777a0fab7ca7bf9f0233ebae9fb5eb4987e9af4fbb1f6e5cd41d4ba1fd6e90516ca6fa3e2f03ae34a64597bc4cba2a559f6e4fede84bd513d71df469aa4eba625255d2eda752a95455524fca39fb77b9250c35a0a701bd8cfaf3f6fcf01dffa3d282d99ae34a634abae4e938623ead9d98efb60790dfd99e09f08ebfe7a075bd9c8440fd2b0dad1d75dea92b06f5af25ca1ad08fe5e1ef39984feb2679a1a1cb6508336865158d0f1bb4d1ddd219ba5cd85863ddf9c954220aaf604b74e038e8be90a4d6f363bb959607bfb55dfc4253f8fca1052174f8d6fff44f6fd6eeaedc7ab79ad1dead5fd62eeea0fcd085ca4363a0fcfd949988b9bf5fe5aea4c989b298c11359c818e30427489192a1753ead27f6014bb204127230842e68b044169a163350a1832e9a6085104d202395d1fe29b320a2f2830ec8102345142ca801b66e6411860f5c8081e508405c3478ddf3524a992bbd87552a95aaa8f2d0fd4e4eef19fa8112b88861869820002155a22d7b7770336781ed1cc25c2fdc0883d2d0f5c20944a0278acd30ddffe99e975a2f5b63a0fbfc8e9ca80b74bfb336df4cddf14b6207288c0045163dd0600a95f4e28d1ea8fc94db49f2f5f2ad5fefb9b8e93bfcfc4cab89fa4aa552f990aa3aa8efa0a9da51cf42bd8b942ca84b6e46cbdce93d32c51f37b9bd4d4a99fca64631e59ffc3a1ac5bfdec3e407478c61638a2a82d841cae9ca0a16d4dfd4a8a627fad33fdddbec8ebfb4997a87dff4c43cd15d597182dad05d599142773067e4e110d87acfea8b2954c8e92e0fded4fe64060c80830372751ffefb0a6dc0cc7d78817d23d0dd7d397663d7d7d7d77f9d8899076ca61fa80500b0a0432727c70967851b934d0dcd9c91d132ec2a492bc2e7cdcb637f351d380e6ac5ffa779eba9c7b9dd1dfeed6d290f3151770f81e33357e57bd9efc96ddfb3b85f728f6efff6af77dcaa90f7f63b7cbcdc924785bc9ff0f7efe7f5f5fd7adaf7a7abf9d39f266266f2f6d1f8f0428b7fbf8415fe76f71efc0739d9ddfbd7dd7befdfbff73ef263a435d678bf8bb22cf956fc2aa5251bca33de2f57275d7eeba1fc6a3dbff57d3531fb6b46fdb34631e72f3794c5ccffd3567d52e8f11a98ff72d544f7678698fdfbdbc3c7521d380e2abff22fb30d987e6b97479d747f1715bfcadfeeb8faa87c6bb301331f954f8d3ce7df9f268acc6030e7f7ef0bf4c6dcebceb99fce020c25bc082174088f9c5646aeabd2b912228c0e21640821840c397ed25d0da0185522841046871042c83d77034ea14547ac8217336ac0252929498b8e38855724c384089f11d314ff6df13d86cc3ce104b24a25f9117e7c4b72db5d7ceb31eb02efe166fdd380ac1fcb11721b9f3c0da81f4ed3890a2e9820554e8a7c8c163ec60d1f430377e315c924bda25724b3e9637c8c5479a1011524a4305768aad24aa5828f9f7cfec71a507cb72ecb7adcc64dc6885d253884c687ffe318ccb8d680a4f5e2931c43c82dd312fb1a60c82bb10957ae5ce1455252d24a87f543141aa40009294cc71863fc7e0861e408e38c042085d80c3a26241925d5206909495796a0d1c83d55a98ba77aaaa4a4248c46cec72c0fffd9c476346534724dbaf32f0d0132182ce7693b1e0aa150e4c2e6bb8e87c787d63df2999f7155d23c569a365ccde944c3cda3c949297fb7f4f544e58ac2dd29bdfc1227b7fa429199c4a147a435fcf22e278d2b04297c2b8b18638c985b177848a315217ddce379c2e14fbf1a3ca4958ef8049fc949d6bf8fdb9391bb9bfb79b1ddaaa4bc5b7d94f9997bddc5879b0e7e6493649214d6d713abba737ed205ab2c56c96c7227bda4a428258b65cdaf3d66bec220f3b5001a9c14c6af4ee173bb6d8f0c557af8bb3dae87cfcb000af00bbe5db204e1f11e25146006b0147ec17fce9929c39d34ae9e78a8e422579bd60d83c6bf36a6a5ed6d075f89f74896c20cd87d41fe53989494d46397476d2abf36ad2c85fa07f11e36f21d7f29f7a89e68dd23ea8f651b5336c2fe745a8c8db0af92ae174435f88cdb30ae721d008a1b8542a006e4697c8cb38bb783500362f1b68ce42a5318b7cbdb2e2cc3f28b2ec8d8519fb9eb6c6eeecb9e06b9d3054ea7d28b5540f81246f832c25f1a238cac01815cf62084ab0179f4c5d7428fc6f89163f228e45e6c48a567b6510ff63b7cfd4bdfeb7ead01e92772e629f3951ebedc1ef1e197b687b4b094b62740f0a4e42600fe93d203f1a9ebafa16b8b9b0028875a72306231c2d2b6ab80e7e4652f9bb19d0ad872b6d866ae01595f25157a55cc0d5bccca56f3c1df0fb7369d7aab5f855ed4801edceaa4dccceda6c3c6c799b808d36156817df2bd476780ed8eca46d41f0392724eedab4ff615018b7dddd9e87bf9d5d4590eebeb89bef823430c7ebcc706dff16f81c2d7b8da02ad279a9db013bd4eb4b4aba749a0a9c51d591efe4c0430d45f75b24900f22294410623ba0120c2f8bd816da3604fff468fefe1f628c6d9d32ef0de3f6ede423d8373424dfb9be831ebe01931578754945fa260569e525b4521f4d1749707fcd568e8d4fa4e5d240ab9e64d4852f8bdc9ee7cca7a4aa2f073f01eeb21c757a87f159a3590d96423fa7e91686d23bee2298beb31bee3ffb898fcb58da8ff26d1da46329b4f484a499fd163c17ae908bfd24840d2d865c0f5e2fd3c9de4bff7b3bbd37b721b9a2a95aa871496f7ef2d23efe3f3c34d0712f3bd051fcbd121c47cbf147e7c0fb51f4bdf632f7bf0f9dfc67c24a3fcb69a3dee0c6e4c597b5c364da7ceb27f42881bb99ac3297b1eb723a78d9c5c5367f4fdfbd7a717c4ef6841aeebce5fb2a0db274feff4aec07fdb43c8b778da0c4d23f79647fc48646dbb5dfca7013d274fc899781b019b26f8bcc113e55f0d4807dc6a47d97af8ba830c7983dc6cebcdb9d8cb56bbc0a38fd380ac13aa6614fedc1eefe1c37fddf3dc3cc1af939ab8d37b0fcf5b5c95148399b59dbae3e9ceffc7ccbaf3e75f4d76e71794c9148bcb2df3b8b73c6085143e9b206ebb1dfca701c51797ba06e4d1f7d374323d13641803b97a53ac784b9800e94de1e24d795762d2bbf2aebc296f8a5cedc020e41a15330ae126b14c08ffa7e326b78b198d4ee4b6bb139fa4b189b422b420e48e6434d2d5623661b7182b0c121c09068e847e2b1c09a390f33193091fe3631cc991ac30b20af5c7b2fa8a68fcb7552091eef2a84d82acef540743e3ff747542853e28b33aa942dfafb6dd45ae3a9942dfbfad3a128ddf5be41ec799679588c6e7b8c1af4f45dfaff5d5c7d0e749f439d2c977fc1d8cf75cffb87ae41571c9e629bea4f14b5c9593c6975c9d277aaa4fe343ae3ead275a7745fd5da3a153176725f98ebf37e14d89f54da133c8f81af55ed12ba2afbb9555ac8648d8eea83cd41f035a69bd5f5fbbd2d7a7f0d7a7c35fefc91ebef41eec21578ff050ebe363d62657cbb4acffe96cfbdd818f6dbb3bb5a3f04f14fec5d513ad934e0abfc4d549eba43c142a99f4fd428eb93a84bee77f1a90a7ef7f3c426b5b1a2d8b3bc2436184f021878487be4ce41a10cc42aba82084d17a55544a907240cae043cd47d34b967c8f164cc72065e86280f9d5a25b79a8ecd0ad9d6a8a0d7b6425488416952a54683f5f254ec555ee32257295bf4cc8a9a658960664e5b3edc7c78a8f4f1799490de8bdd47c34f52f65174a3e9edd08bf5a5c65328055fc42b6619b952bcae4971b6f21b98a6f61153380b3d817fabf4c0e8306cba31fb24a02903ac75b96477f89055be2e3c294da84c664238acdf4f0a854aa1f52cb2f1b7543f967146a74f0efe8787c7eb25049f97f50a08646c1e7b761087f0e8d2a517e2552406194ade7e7a2264e58b0855a36a0d6470dc892b10114be8483c2cf1ad543e116142e0a86a700ea5582a0fead01f96e4ff76a406c442d7e557835a711120d2788b043df470de89dc1bf0224d07700fa9c40017d38886d3c57a954aa294cc080be7f2fb3693ae9f81d9d0b3c53d0f731348a81a0ef7d64f889c00f0a04d982beafa151fb057d6f030786b441dfe3d0a88bbecf6177c5c41bf4bd50a334fabe49a376d5c40ff4bd9346b9a0a2d2c39346b15064057dcf521ae5f43d1ba5600b7dcf4934ead1f7fc9ea9346aabac80bee7281ab55fe87bbed2a85d5169027dcf52346acba0ef394ba376a5821dd0f7aca5519b03fa76b58225e83ba26f3583908223d1fe961770c30a1ff4c046117078f16ede53a9542aa3549581bedfe569d47b9ff7de7b4f6ecfa6fc356a0053bca05dca81154bac5ab0440fa02c21842d9660821666d6d05d2d1185254c91e265ded05d4d7102698a9627c63ccfcbc293c69ca1bb0202a90d20a08081316d7ec8c64c19baab2094a0f5ab4c8cee2a8828689d1a108298a279be7b0208eaef024f1058f0bc226cbb074e6a6ab83e9fd6b9710afe4fd3b03fdc170dea4b86bbc3cc8a0efd9262d6f56243a3fc7f644b4468f29eebf4d867efbdf7decb1ef6b4f7de7b6f4a5725fe4ff3a6bdc7ae92b466dcded582f9fc4b44dc8f4abfc743fff5bef180a586fe8be3c11fb64708218c97f53f0d2184d08a57fb15c5ac3a68d8d49327f2e33f29fdf53bba7b39f8cefbd2a6c477decbedbde55566c7fdf41eef864630a2efb197313951fe57f41e6b3e34e63ceb22db23fd374cd468d894f5446c5826a801a6c888fb82c1ac0bc6060e34aabe21cf881b2611a3b44a7fc518638cf18aa588c518638c31c6181f8b7fc52fc597568cf1b212e39146551da146d59c264a628cf17572b6c7d301b63b6a4945e3638f661ce82e3261b9a3740f703073f7141aab60fcc4bc1efb93efc4182363b5554fccecdf93b13d3ebe13fde1cbb8158d5f7d78cb14303e554ef1b3d0c85768fcea432357a59c5e5c4af6627141b215b00ffaa4c6448346268346f642e36f6d158daf86eee267988ac6bfb8c886eee2bff8bec5bf5c302b7ba1f1e373188d3a6a54c5f9d2a8ba5f68fcf8eca551fcf16b68547ffcf7d27bdec78f8fb33d7644ce4849f55a7ab114abd3fbebdcd1dd8bf38969bd9456e97fbabd24ad08df5f2f8044dcef05d663d795d9dc43d3a1217ebf06e0fb63de8fbd06fcb3efc7b0f72d7b97d19100bfd761da74e9a63adb7418db7452d2fa9fbe4ad6bbf5bc0591be637d5bd64bcbb22ccec82635159876bdcc6b40be7c198e072c35689c0ebff69b92cf830e733a41641e039b9279ed65381e9c60d1c04c135663a4348e07f932cf03961ae4cb703afcd613a578b85ee6b5af41e6b5e7d738275898ab417b8b7382bdf64eb29779a2d4a63675fda630d6807a890e33307d8f814d59bf04287e101dbe361d7ef99bc241fabf4d87069997af0199971c0f586ab05e7b1e74f8af972ff31ad0bec4f160713acce9d070bd7c0d94defad25baf3dc4a13b6d93296deb3bd7e62eb36d4adb36756d9b2a6d9b925e65e630a43bff2a37cc4aa2d7ef0b66d90f6651097e43967a68d5ac268e63d64c5a312bbdc75598991233464b124d912898fd3feedb9145e22a4c7e61fbdfd6ef757777774368c9a78367f5c826bdee608c566f9267ae2c95aedeeaf4d1195d6859327b4ccc2a6953d9a86e8a716606dda559a3fc5907e5fafb85ee623fba0ba35b0abd27e71e3d3266954166a55276bde5814959da2f7977377cdd1b345d9774633657330ccb324d939199113eef19b6642a112d95ae1d58a665ee892e96652e00adcb54222ae1152f4b3ebf9a3119b631c2117d3f85331f6279bcafee51f685a765c29aae62fa03537ac2845cdd304647f47d7d1fbdd0f7ba98fd6174f72ccb8a96b4a4252dcb8216f7bc74f73ebea30bcbf4f7cf8bf7bcd4fb77d4a8a54f876965fade0343df7bf8f579a14fc6a328bc5edf5ddff5ef860d1b767773fb62f09d3c3e62cc7dc8c5dcaf5326cd27036c9fa7983a4b1f11f369a4cbe509165a3f9b22af983c4559d80b23caff4c336ce93094ff1233f7314884597b75f21effe7efd52bc2d4d180f3f0743450e2017e49fee3746a786fbdc53989ff9cb3015aef9c4e0dee04be3f518a2855e23adf1133ebe9599be44d59dba6e2b629b86dea6d9b72a02027e7623eadbdc29ee895a9f66ad6d91651b75bc17647b5b2d09e2adafc7b82e5d15f9deef3e647ec0bef0c13dda7d177e43bfd15f6b08cac2376a7bfad2a67d0b6980043639246357a5531eb3b3af29e78148fde513c7aae49a06398e5d1bf5a9088e43bfd3f1d91bc47b64fe5e94a5fbfba518d48ee4611c9dd2822953a1e237938372aea89dc11ed7e6e2aa67f8d47f5444b4f98351ed17efee2643e30dd1d75d7f168ea1031275d2e504882be2d47071293b7d0ea53c0b8d1f2682eb35a57687f7d4746b45547b4fb5f1793dfcaf2da62a2f4484878a130d0e52285228acdf8742783bbbbbb7b8ca5eb7aec8a57bce215a347df22e7f303051721dca06ff9bd081261fec83ecb1e7b8c73a27df644a99920de83713a35602ff3329c1399c79e28359f28c5ef45dba329ffdc82f80effccf6c377f84b62a6cc36b54d1a615e5866f5792cdbb0ed8798f5443989ee585a71a15bc2ac9df72c0e8c52d58d287b12d9b6296cdbd46a5deacdc7521d474c1a5afae5a2461874351f3454c73fbeab802c0e8c682775c73d66633a05093475aedde8cecb984f6b27d5d0e55234055a170ce5189ea7b4847951318fd07ec77e98788f6500fcf8af51d7c78f9ffd6c54e923e783f3c58c5f7da80cdccfb52d91afc3908a5ea57f1f1f6e4b84e6d38062a9f48ffa0b9529854e8f98a8cf4f24bafaf22a94dfd49d494777fc5cd45cc3ee86dd0e9fc4a494d27b738e9fb01429a24001120ac25456c16fd8c5066174b75486ee0d806006855ce5e19946682309313e45e660ee2a092968f5a22794bf3af5a21374a1fc2ea5fa14a7c259666595f748793497084dea4344d917f8abfc1286124ab0d1c6acb76aa2fd588cf159960f969a9c52f3d155f6d1f43d56ca5cfbd2f3e1f43df61ed47cecf2f07f1c8e1bd3b9da6f3de49a9f7427df351ffdf2fd49a3daa46a94e42e2c66655589c6871761f014d3faeb8af966d00fbbbb39b80949ca441a812f1f5bcddd8b96073fcb606e1223794fe97969f054895bdfe9ed3d84db7b6babce092535e96eff6d4a3637e8fe5a343ebc58a20aadacaa5ec4468d6255a376b5c414cacf4fba8753cc49507e2f6a547c7e4c7edc2ab7aa0ea968bf5b2f97c77bb831951b53ac795ba61231c5d8995a1bfc1fffe9b811512824c754a6429d53d2ddfeba94eea6f7700fbbc31f85f2333341f9a7f76c8a59e5465ed41d7fb4c1ac5e4419cb5caf22dbc60a1f4bf9dd995be7770d889d88ee79d9ebf1585584ed63d66f4c31cbb2fce373e4b8b72dce8a568cd647aec69fa1056a24fe72e4aaacf1b76634fa889cb71bc9eef1e4d246174af72587b901752fa83fa6017914338f708200d4ffd280fc48a55241e9ee96e105455054610611b46cd1a6aee9b6827677779734a036c2cb3f1143fdb3690412f5379d8cb0a0fe3afcbf51bb3a0208eabfa35139a8bfd480bcdb80148608e30c22bafcc0031b294856115c687f0f8c30f2a1fd9188091744a10a4a24a18b1a7051a3d11a039502440fc8f4356a7950c414d44e0e68ff9b5bca688de149aaca40858042fd7d50af5100a0fd52d0fe961108b23d98fafb300984b0461457242db1f241aa4a9a8bd618a8fff2346ab944e1b260a898feccaca3e7a59c6ea376450411b4850ce9e7349d746063cc120fb22b330601eb626a74575286a06d9938745752d6c8ac9819dd15113dd0d3098a9e4fd349c734c130b4cedf81e49fed42f73d6c4b73625e74574faad03ab3a329e9ae9ec0807acf4bf1778d5afa830418df81dbc9347f47e7c2222185dfda76ac4077058418f4d15d215144ebf37815ae423b8e319902417ee8603a69547f93eeb6c7fbfe9dedf9d15f11501740fb0cdafde891ee48b03cfa7f784f0978a7bff988338400c33ed07eacc9f2e8c729e9aedfb91cbaebfeb883eeeeaee2bdd2e8e26042badf59e432f9777be4efef16607b24c766706d50ffda835adcf64e6531d4bfc240fd2f1c4ca74b1ed58072581e63d460d584df5b7a4a77b0fbe34329e5a42d7dc7e1c65b78d59d116f4982b7a0f1c1a58d156fe9cec88893e0298d7aeacf3960acf116dec22de193d1f2f06f2dbda5b3741775306b67a1ee71081cac8106f52dd4bf3d071d77307f78bf97252f0827d19d339828aa4c9e52190cf58f5ecc2ded56b952d25ebd9649c0fc37f5de391efc9fffe374f62d33bf12efd159fe26dea3b3bf29dfd6991fc7f1f80eff0fe6a636f5b3cfcdd5793ad5a77557b5a37557dd0f0c6c7760294e8706f8f135c0bf1c0ffbfc91e3014b0dfb1c9f077ec8c1dfd4a9bbfeb8bdeff4c36d7da79ee8ecff20fcfd36788fcefb4d2d6fd277fa77732ef335ba5c8a86a0ced529e97269c3085a7968ff13fedd30dece05e6fda9de368571c64f4cf8f1b9f214f895ab04b11ebb56a0c3367d1c853eee81be5f38e87b24f9de7bb9618053eb3b3aa217fa1ebeefedbd6f61bebbf7570c665da41c1a55a59246551d4774344a0bf2c4fddf4befe97f2fab70fb975d0d2186eeaf0de663e9fbdd517f29c6192f796fbddb87f2de8fbf5f24fadefbf81ebee70deb8ebf1d1fdbad2aa1f05bb30053c8010579efc5079f8e23267c9eeef6f7e126793b11deb30ae67bffe7db7bacda9c6734f9ad1fe23d9c32f58ebf9245a21ee17b6b935e9d50c762d65d86cbfc49ddc411858f75916150de2f32eccab55805f37dfd1f393f1168d47bf818d480e27b4f89ab52724f21171f48c711f33d8f0fb5361d48448e9033b247bec276073731bfffed802976f6eeefaeb91a8476a33ae7addfe71b8f3681e6aa8e23e643ce880e4c9c5ab97e4bdb0fa57742942afdb595a0f45867bde9607d954180e054f6d9974adb0f3f38190a2fb3dd3cce568f509cc75c03bac991dda3c477e05f7ffd6b54f6d7e778ecaf4dfbebfa2ae9f56cc5f721f3913351ebb513bd9e88fef8b5e1bcdc98aef04abc8785d7e4b3b0e5d0b83a698ecfe1aaa4395e7b1d20322fdf870cb7dde5784944354e0748f6dafbc871f3337f71442b70466e5a0372c35522ea385b3d62c2b6fde90a94e80a379bccaf264313c4fcd2634b533477e585185a7a99c716f3ac1ea1d7675b35d12c7bec31ae4e7a5dd767d96ff7b0f0f27aec59d8b677b2fff16baba7af796d63c214e75b03d27405ce88cc979eb519e6977e3520325f7a09acf0396e3e27e2bc95739363850d0826f33340329cfc6cb31e678bffe3d6564f9ccd639dadb0951eeb4c66aba5df8188cafc0ad86a3e88a80ef63af2ad27a218a7137f8527a2da86c96c95a9cc675b3d42b35f61f3a1fdf57103a2657fbdb5f9c05e7bb901c95e7bd62420f33832db66a5373dce568724404475b2d701a23df63e346ebb93798cdbeeb427a219a703e4faec7d5c3292ab43b4f4339f71daf5334f442fae12d1d2fff40a1bd39b9bfff19b6dbe69ab11a0336fb3551be8ccd76cf5089df920def352f06d781a10cd725658f8d5ac147d8a056ec894c2c284e9bca193ebba83a52666dd24258d724e820a31e5d285ee17baab5512c5b0ebb54b53d21dfca80179f6327f6d5af6329af67c6dfddad6d976f9755dd7bbbb5077b04977f0317ebc2e73fd4fef143377050531d40074576fe480629d3d0d687607df0263625f27a7e03769943f7c278d5a0a2fae36a1d7fb66d14ce32a11d5de37deb255227a699c0e16b5acf74d7eb6c95fcd6223a801f9b6e451df74a492465d0f2f4e88698903920f5fa851d6437e42e1c7d5a90d30036ca50ee6ae5661984ebf4abf8fbd17278dfb907fb86334acd498f179984f2de93b55a60efcd2ef914a95d2815c10ecaf771f7c11a38b2ad55120c85becda4ebe03c67c6afd885c7fc13aef01b23bfe3e90feabcee1ea874c125e6c990566d12b8d29697ddd76bed3ed2c0f2f4077ea411d86ce73707464036c7758ffa8f53ad66f2ad389ff68d489bf29ecb5dfd1289dd22f95bfdf354a07ae0bddf3bef3de337d9853bb7c50dae4f688c8ac1e609ba977fae3367f309fd687dcaf4afdceb0d6e9a63121dd3426d3ed2b8df93a4adbc97bdab087f990ab3eb49f36830bb2ebae5f7675b218f39dab3e1d44626be8ae99b9025d863373eecfdd2f22782e2260e7d01dbef6e7eecf1d3a84eefddcdd9d6377f87cdd17ca2feff204219722e7afdf7b90217c9e82c95f82ab09c8f583527d388dc9ef8f5f1c83c9136666e67766f2e4078f0aac1fe397f5f2ee26e46f76a77f4fdbc35ed60b0df36565d07ac35efacbecc7fc6d7c2c88b2e2c2c6ea055f5653b8983a74575d5041f361e6a0bbea420c135d8491749a3ca73c9d4ecfc33ecce3737a9487b2b1066aa64772f7a9bba3e8807677779fc2a8c11639e80208ea37a0fe7fc2a1d921cce81d6c8f1a1441fd5f0b3287106300000807e0620bf5674103f249b3860f5b8cd1850d88e0c3e70c7182eda18383c0851007a0be4515d45f4703f2b949c9218306509081062ba0fe3966777777b7109e1662500f83fa9f648381c6941f5041258a1294e8165aa67d2085a085156a001c98842caa40bbbbbb7f050da8b5226e70d3650104ea6fd280fc14441a3630649102066c5183fad768407e1a81105a20593952255101c01c228cb7c4cbc19625c4a079c2acf20a351a80850bc8c0228e37c0152a9a00e5888b24b46081460a1833fd329ba6938edfd1b9708513b45f8687c9114cc8c284288ab27843c70a4184b11a19571041fbb3693ae9f81d9d0b3c3158a185f6673e2f508218585a3046063fe0a23313e58dc5105045196568b9e207564431401530a0fdd79c3078230a313f7882c4e58c9c53924aa50a428a0ab2591a02ed2c48b4c150b1d2a1a20c3366804519ab2a90a0fd3134ea946508da3edd39ba082c9606f4168c2ed43fd698885031fb4c2105c865d2106e8cc14451156aa0ca212303eddf7e9f0804e9ce9a9b1e03751968a1ae0319c4a1c94075a2d9217cd0d11d77185258098214550000162a64607902463b8c4aa502221503fdf11dfe2224c8c9dc24639ee80ba4a07d06ed6e180c413b89360ca4409b0ddaff4b3b0647a0cb8576cfd4110f344e539c0063d2c4a08a996d1184c9821722660eddd515236052b8128796659ae8ae5e00c5ca0b989872ca78500466884943775594e484283d685f44616247e70201e8ae84d0c2e3055b66c0eba1bee7ef3d43360c8f0f2e62c898758fb80c8105adc186466933f8268df1deb3ccc862658c27d54dbaa26a610a0b868aa1fdcf5aad02bcdd59d6d38515786c716ffdb3fcbd8f3f6d6def8161a34704acb3f8be317d5b3d2243671e67f07f0f3723feef6df09f26017e298fc8402157fd9930856f410d0846d85207f37bb5b4bbc05fc87dff3f71fe6237eed3f15ca0fb16677af163b5acf8d6b3112b72496e95b65b1774d0edd666701ab9af960d5b3eece253191f72a6ee2693793de18287e77f47e7c2efc87e68c28ba328befb1d9fa3071c2d7eb0363d945cf0248bef7ec7cfc78a8e40418b1140a0421c47f0727af2e5c919ff113ea22b5c9004106e5085082b53a41cc78a10a79295215ce0048a4377e50233687d1e8902cc5593bf9ae87cbc9065770fc287ea7ff0193eefc7ee03c6eda6edd1f2f7b3463537b35c1edd5298dbc1df7a84666fbadc0ebe6b40a010f5b7409e0379d49fdfb9b6d8a7c0765fc7c9343309bfba94dd399c52638479aacfef026d37989bfe75fafb1b61eedf9cf1e163719d50770d08b6f41e4ef5cfc7d3438cf19b337e817f888cdeb25f775713b3e30af47142903ad72ea0d8ccfba6f2ab6f537fa646fce1ff346f3bf805e7749c4c2f7292db37e9a4dca26a68d3d602db1d4e8618b08319ac5258fcdf3f0f4f141d10e183226e90832e9720d2d81e1b4c10822ae5037521bc2d9a98a24aed5137e4f24c30dfa3fc2d704118b46e920bba70ea8918d30c7f04ba93c17adfdb7bee0f1f8490c14c268f3ece08fcf7b0680554ae0e4aa87cff758f5c5542a511ffb8d5195f897cffb749ef4de8d186ef42cd35e1945461eaccd0fd1b5d2e4548a1fe4198759396bc46d5ac9a583a57e73c9dfebb8e87a7fa34d1c1fc15e87209220c9a45a8779264dd2496c252497764cc9702068d343ebc7822d384135d2e5254409b2e172254f408c3018cefdfcb759267e15308218c727b92ab1b5f843052fee75c44ff1e42e1ef569feee914377295fff1bfee36c9ffd396b54bde6b2eb0fdddb13309739f553dd38d69c4554df70b28baa07c01ee812e57796332c30c517daf03e4a28fd36186ee6f10280fad1b07fd711a22263fd36d05ecb3a6c3eb30a90a8c1ad3dbfc3e66da6cf09d7e9beeebe67f1afb69995f0d68e67fba04c49c2ff3d65f5ffa6b05337bde1edad3fc6a40f37f9a8130e7d37018578928f6bcd55df9ac97cee6ebc9f475aef034bfc266da7c4e3cb4fbaff91fe74de6b16dbead3e4d4d0d2714e9fcd67cccd7a18538e288834e9ac9fd74d72fb3f974d7af6d04581efdb20893a78646552148ad147dca8602ed009befff11a451fcfd3c8daa0488a16bd4f5fd2e340a7e3f017cb3d97c07fe369b8edee993a7316b53f66954c66d2696a1bbfe67cee706aff43cc6fc8f8fab0b8676658ab58a5560c61c2579415a8551ad8abcf01430abe7e5f5718aad9e32f3f5bc451d9c5abfe9d00257e55f7f713afcec4c05ea9163c2547242915a379c0e733e29197aa7993a0f7c2e2417c27c863a10d27e0a64a1fd4df849afa45ca1ed23a67218292bec48a552a95258760a9453a86a92a1512bd07ea646e9489a516e8bd6f5a244a688f29bb64dd96c9b922a9aa629c276c7536666e69771ebdf5fe7e9fd34bde7793baa0f7dbbea2230feddb1cbd5209587f632f35bdfed080fe5ef9f861a1001502eeace9d74c7d520f4fd2e91cc5683feb6233c4ec63487ed4f13a174807465da1c112d3d76fa425a27305e3e27350a0942281b03e22fdd1d61a72e10935203b292fddb7420f11e839696814d65271bcc7e3e821cc69a04d64ad1a7328eb57edeb88bff7473bcd262ae4e9bdcd649f7f8f88e7f652dd42b4be1c20e9642fde22a3fa1fe4d7ce43c7dc7537da8579f2dd487569f26ddb9132c334a31fb595b7ed3ec4cb4caa72a7566046c772c6b40bbbb8fb10fe6ae5a905443a3f683f08e46596fbd8ff596f53c8d7a6fc5772b066a3db6fbd6ee6ebb63fd8eb47eddfafee5613d7b99fc5618f7c1931faa50f8bf3d80f8c1f80e942739c677e03737068c747777778eb57437e6741a33c67b988add819f858a0b851007147e6d23ceb23c201050e018305728fcf8f0798c94733e83f11e2e02d3b5e32b5cb48bf1185e7619e95407a716c76396077cf8369841e1d4326b47618c5810b3abc838e0632e20402e80422e142e0e28dcd91dd82d8f2bf3bd0f69143c8203abdca0107e901a8ea4f7744e59b3bef31e226a744ce8283cd11dd2348c5195231a1f8b4a4cfe187bb2874640f0b1ce208410426f8e8bb42872ace42e773c86f0c9ecd3809c8b3298fe3f3e48a3e2ff8feee28c16d3df0705ba8b411ae55c85ef1ffdfb31df827417bfb71fddc59fb9c124a2cba948e30f0a344a036aedc752875506ca31b84079870eaed90fdf898f3dffae286bbc2b8a6d2ca5bbf83f3cae68e5221f1f1e9eda75ff27e7b8a8bbf83346cc1d7dd2d128fff8ef135da0b1c3cca0ab1624d1ac51fb721b15f9e852c1efeeeeeee67674c7562ea07ea8656053d7c5456e477710be0769147c1b1a051f3e07ba8630287c25500c85f0a7511cdf77a063efd1b03bf0c9a0100d0ad5a03072419607f4c22a27bc97724ece72a4bbf759d84b16ef29b23bef99b0e5f5e02587e5f1be07cc87f99e56ce22e59ca7d37fed68e52cf40dd91d7e24ca6f64c48e43a378762525093ab54cf8d31cc63a0186cd00317377b33b773b63c19626cadc550bc2a0ef9f6233389875c7e6a0bbcfdb3bbce707c88af53fede3e9e3ac147dcae29cdf7b3174175ff0a351fe3f14e89e4db91756b650ff21deb3294fd5fdf2a72fb3bf3e979d498411c6945d3031d3e2a28a59138326b0400d26849817dd5514465089228829a0884363c1b4e8aea018034512142a3018b6d87bfd4acdb2bbadedb15fdfdbe8f298efc50761f78bddd0c777b6fbcd19ee3d7fdba4effd78f0d51385ef21d710c6ba75c36e289999abdddd4f77d2e5dd79efbd7eef3dac24ad082f991c6860727bac5faeee4eba33d448e73bfb16e4ddfdc8cb632b746fefbcf7e8bdc8aff3b98e284131f91ffc85106e7db56bd8510dcbb2a2f55684ef09cbe2673d6159113e21ac08df13f059f009015f84ef092bc2f784258410d6139615e113c28af03de1cead3f8bc18dc9685f77b5ab5a99adf39d7eadbbfdc5c5b62d29a1a5a7a5f71e843df8793e9f3873ee96616e9747a403a824cb566b4341eb1c433432320084a00113150030381c120b86e30145d3761f14800e89a24e604e9788d328c761145308216300210400000000446a261503e6149e8dbbfc970f5424549f34d9cb91c88ebe71d40831991669cb2ed2f877c43d5b3f8d6e0997f7a3d8e874da3367d5749751d0777b90a571c0853ca7fdc9c1ff802e558ed8df6e906faf6a2d3eb1d8f8bd05ddacc328e8f2c47279be8658f3eded26cf18e971f36c003d6e1f0ffa27a082166e08b466406252377e8cdb1f5b1a8168d444a0af9025ef00fb77fae6b86e5c370155d80214fd72d0ced47b2f78fc2583c5bbda9965acdab7fd938dfd5907ff2c00d22be0570c689f6bec37d420d55ee7da69ab145b79b1807854355784b77f5c86e91e0ec1484beb5c106afa05248fe1f713eb5933a7290d0097a8004892ae2e0e683d9340552d704140608853533e576fcd33529468d6dd64a02057fd1c049adb3bababc4ac08af603504df344973f4fccc59b172ded80b4a4d68f4143bf6773c0ca920ba51a0f6dfc30852da848aac8615a6c42f3f4d409b2244efa7eb6de653eeed04c9ffbc658520be78cc77be5ed7a30222b762d7e7390d8aae00232e58c55aabd32322b3f8ee4af91afbfdaa54a3b2cb9e75a0caa99692b1e93ef0bf0bfbba28ca8bc345d7e8c50e36161ceab29f3c8c48b609960e410bc58478579c5fee76fbdd8c8a9f96388e26e1abb76dfa05be74711f1c08f79ae61a0066f173b344f5eb77d418f34332707375a9226feb6ec7e9deef6d5d301a6eb6a9dba687f9d3881b0db7363baca1e481342a3ee1d65676ab42baf7f264f5049350f772fde1da4f0d4075296edec24e78c6f60c3c8072ef768bdc751f3ba6f0fb8609763104f3157036e9f437fce8dc4ea6dd6d3ed026b391b56ecf955d5ba4f132b6955298a51c8cd97c77bc969db6a991c0e9591896b21f6727f264bb861ca63f88e3a4bcdec921f8e5b693af4501e2b35876da342fe01397e68ae31c2cb5368766479354f2acf627720dad3a3a93a6f8888ee7b916088d70378f1e94489f5e8ee5f3f94993ca0a833bb92995d974a51aaab9efb9ccf20429230a5ba6c4a5f578ef6c4f0d97a466b4f2f3d413dc83948ae352823afccf565dd51e05470bf30e71447f4b5e7e153f04477600735b9f438200fd8c2429ec6bb1f8cf0f3f116817d24a4df5355727fa757b5dd901f5a39acd1337a27ca657f889baa2c5b40fb20c6e13ae6c95f7b3a54209c37220f488b47cda925cb60d27545adb1be2aab6d538c9a4ef427685c82ffd744d00d3ee68e93827ba3b64139a2d1403f484607a6893c0bcdc8852933cdc363b71990cadb020cfc5381bd171513d51e07645032def933e4d684cf31eae60745347776fda3d2ecdc408b61ac7684f22fbcd34fc1bb6e33387f0e72ab33240bd7eabdccec6174401440fa3ec105cef98352432f27fd0bbc93e31c897306911e3ef8d014d54e220b892894a0fc83a342e605e338af43088eec70481f8d67c76f38a2ce6fd9adcd79b644184db4ea226a88b96edaba35a91021c8052ddf591eca9e67f68784bd4e34223a13ddcc36e023c83ee8e25174f970b558036fe283259846ec7f259105ef4ae7c48ceafb682d35c1dedc4751cd53471aefa3ac7a8a42b27789c4832aaaf63c97389fab6d6233700756b783aa559562373814abc7a9efff4a63a40a958a841a3bff8830eb1a3f8471c762cd56e3606f93da05b5398d80a9f80215ae4ec6a8e915233c67935cb05fa331b1b69b6b256f8fdec417ea3751caa5653e9415a138822d7c39df5302832bbc17f80c1168919614bda08267f3b579baee52fe4bea250a45114e243659925c29d17f3a6de709f6d4665366d4e207a96e762e452c0e70efcd62d8057fa9ef2743fe4e820a71cbd5a44c2ea939c9ca9afb77a838ed14727a37557fb5d2bec267ade9c1942fcd1594052da228a03debfd3cf6645b6e0c14d5006e41129cd8e64d99ba9215feafcca719e7e8cbecfcafb064c5f076096b1437716cec0f3e3991a33016978012cd465b8db812ab8338600f33998429e41a1881cbcf33d220f7c0e36288d4200326ee805e7fc040362e1f2d737ade64059dc8d163a084a064c32a796909c961b95845c5d2495fc444050ed901f0c8e086e99d609cf3b526efb030f5f742622a3cdaec616b8dccf381d850d92322362702176402a1f839ae0b204ccd8028f3c7e82a184877765a045bf4c500d3f0d027b5aa43ef08f34e1e2fe1eebff4d86c95bac02b68420c9a82f4dd95d03166e16661ebf487956aef2364bbfc1f8e890aa0ce6b20304f9080aa25d28c426487c751d72118648ac8131f5175d424fd083ae8d7fefdd343ec6bf61c234268986c75cd151fd6c6fc0b8389da1837f411468cbe40d09d7d1eda9d237c3ff4edbc70d64d1014c4b90fd84c643f3f54f58a960c9eb2c100fd828f9c423a7cd44622c5100485f5d36657d1ea94f4d545bbf8d4f5a8b9e94554d2537e7e17bfa6dc9b29a58cd3c247ce70f679ad94ddbd13224494fcfae3f47e5d1e5669b4466557a46486ece110d3ca1dc807c98bf950e41c4f66f6416f8530bf4d5c8cfc5ceea5d3fff2f62ea9409dac3941d75bc8658568ae2c85c370e93fe8466ce3600e5fab24203a092000b56ca3043cc1029a422f6c94e2b4a2bf7c947b77958834d145bb9dd4747bf133773e12a5ccc5779fbfa78059e62ddfb7aca83dc4857d69be216b26c8290d9b54641dd5bc95fc1eeac826c71544e1aee5acded203e9bf225e73883ea55a607b61ae2b6a346c667052c3534f5869bc6ad1235aed84c8f2a1c6b4795b3108eeea9af8aabe28bd0964b23071d05d6cfbb82567620330edb714b0acc595ec10bfbf66d3a1e6be9d19c9a61acf31fbcffae11db6de5727dc42f9806e336e4a86401d4942db9464f0422d2aa81b2dc9708ee5488649716f4f536be30fb3fa959d1cc2fcc10bed9d3b2728c98e773f46d168c7990e47007ee80f3f520ad4a023dd3c11a51c85d7ab6636e8b0369f5babb90b8568a6b962c9fdb13830b63048a0e319198e1785bdfe5f1a910ab507ffaad2123c4709d15a3b89dae0a44f54aee191f8d49c822bc6698b163d93ba038edff0c2bd6eb24034f9da26f67296ebfc9b595c88439dd09f19c6a0ed21add4f97f3bed901bee1b44221f474627048ac8e1703c77785301e70f0781427a7bce369126ba9fb675398d8fb4d3e3401d6a0dd9a82f301ce6e606acfcb31153b82aab60b8ad1586399302fd5b3dcdd1520d8b8665e43e520b73a866e3f1a492f7f1d5fc1bf338678985ee77c9998c28efd08639ba27695eea56f582feacf8414bb1282b34d6a64a74baa976a0198cfe1a4791c0696768a26e65166e5e167a35f37803298d94073e4d197c9043734d411bf8933d37bbf188f298724edb8564d62a8978b28b2757c1589a95e69f301a165a621c909c81117acf04cbaac90527d6ef1379ad2f5417f707f7febfeb1d6684867af15d18e53e39a947e317b9ce49957abdd2b23c38762ee80dcdb0cde20999dc5350342c47b92c6fc989b2438000d0b3848721f82877e0c160a0f5a631d1452dd706818055087d76dd464025274bcf9659127b07e9b663badc97a62a33661fab790909015f94d3b12d27cfa1f87ee1f02f8ec1626618593dca0c34e6515c38b1674f6193fee038e5db97d1631ae8ed6b504452b29c2a436a7f028a277a0ace42729713037c183e3de3baa08c2212639d8df733773b55d2f4ee745d9f185ed4861460eae33a1a975b6d44faa7d30baa4b8a974f5f1cbbdcbcf619e64c8c8ec2b4125d0a7c252b004c5b266438bc6c679c54aef7dc11e1ecb29e7e0283674efcad06a99e6d834af36ee9ebefa5e582f0b4c0099501da02a2e39379d08c5263bc2b39306eb08b2b647352a494716671f9960a98a35fe85f61d78d963618e0a974d6757ac82a0169bcdaa3c359705a5dbd511553bf44d94a95c36f565dbbfe37392199e8d9010759fe2bdb44588d961f2fa24844fced231c0b38ce212c6dd88358d76aa5e7ef5c53e1475fda176d391895bb3c57959acff90753ab1064e6016f516e4fe6c53185aa3141e208975152d0591965227c0878e2c1049a74b8cd41297acac54398160a98d9de53ade3e5ee6ed5a43ecf449ed35e1c251cfb53d1b5670d2b545da6083f34baea4bf99eab86f8aa3b71d5f73dc4ef9af5cc4635501f28f976e267d5afb5306ba41e43012550dc22880c7f8672bf0abd807b6fab444d3b8baf8ac0a4235e3d50f39adedc486c395d143bbfe237030272ef1c9c7a8c755d9ae6b90a97a4e4e416cfb06861a9c6fe4f2a208126e622f24f246150b8b10ed5d587d4d9469154a0c7f6fc88b6378f06535f97143a59646b226edf8f97ece5ad2dfaae83ad0ebcabc0f3b20c3b1537f004046ee6eb8c9a325e4bc05c495dfb9c65a8613ebeed7dd76d9e5f9d07f151c0ad92abc7c7f638711cf86c90a265edddf79caf00f690334cf2740dd4dbba57d28b2189efee7d2c0b05dd50b72c9569ae0c9bacf80faa5c1e037a0fdd5ec35926e4253caac206f81e0484cfd0152e56c9ca3f6b13f05c5ca3b55b4fbe2c4af7baf03829e4c74f59ff9cca2a5fb5d8f094d4c7f113345feb958c33606f9aadc96e51704fb4ff9aec5a7087939a208c305f9d25087ee349cb6bfce8f438ef8f21102382b2a56cfe92e8e787e5923555b02b70225a17ea84623baab3b33dfd4b633e27ed2831d94ea3fca9e743b3c8549964f96e10c3b5db432885e161c9f0fad6355424282c0ca8705185067a0c0443f9705c400822033ae9f88f2d7bc575dfa56d5b80271c13b39be9820a7b012e86cc13ab032ec288d8bf507b63c3c699f2a540ec7c6c86494313703f928c348e719f4e4b36de02a04d261f932a2a14a79467965d4a97c3b2f31bd9ddbc520de223a0d76fd65b9a7471aa8b3e0b58ce33bbf71001a63996bd62ececc3831739b45b3145fbc3779d1967b13d5d6e72cf654b248c98f025578a4a8d4e5432cdfba06f513d03ee81ffa87dea1bbe85ca3b361581b87ec1eea20ae1d37bcc227454208b145913b84300ae06ae83b33b22a969e064cb188d679f62f5e99a80fe83a2391f0876729175e971b62d570ee1aeb426a7f3522624c21212964e61df5a2dc1652e438093b62f2e62323ab428baa5e649214d5ecf9f1d40ad34f503d6c312d4573bb4bfb088310e34ffe9b68920ea709f3ec5028751922480eef2a628d8faf31a2cbe34747aea1011d773131b6c3a276e534fb4167248e05a009fa9e55dbdf7e38554dd2f55374b1ce15f74b1016615534e0ac071debd51c4bdd4363af5d66a649eccd0c5dcb81bba463513da63383d0318f758c6e39ee2e0209dc02985ebe75627d2df779705cdaae7a9fdc116e5b1a3e7785bff8d057961e823be7107a8637bb6bbbf648f63be9d7717e0aca827ab41e895547fb78fa45004ed043b458ec3d651c2373771f54cadca6d8204c45f11ca7165c1eb498de67d823a928b99f3b13e5c80de0948e88f67d1f4aa2c1ce5e613f1ffc98007cb73e3f76a763fe76277a50f8313c0a72c035a88e459a51f92ee1e535a5020432d8baae0e868ecf8b47c7e1fd9e335a9457fd5c9f9a2e2629d591f09306d8310dd46f0c37f05df0825a8cc36d77a4dc837e3263bc92094b6bfabad0948edd576f275f592430cc8d438222ebea3aff6572e32ecc5d4e8f45746c62955e85fc44a37011d755ba6214567522ee28a383780a6e60f8d0e8c6b1ff3b855578ace1ceac3bfd7c9808140741fe0d7141f74a1bf76922116d72cc03f92e9558d125f8256c2669f65820f32d63ffdf716e0a7f3377046f39a476089408dce642bcf821257f5a5d0c04bf42283695b53c2442b055d4a862fdb8e90b6d00a39d4e3f088685fa318e18e616ba3362855600632fa7146eebf59683ee5d70a09ae1ccc116e7720046d79437d4132a2a0b706bac9cf6b440a7f3656ec059b9ccc27283c0b37047573356b726b6f3448bd81f65a9d7745d1573846c7c0fe0de9506d78b2094694a045b658ec90fdb90a6cdab3ff3db9e2672acbbf7600e7d8c7f90509107a8e2946da22af1ddc822c6aad746cb241bbe83be8420d9b6b0fceec17b099edce6b9e0a5a7aee4867e0e50cd424400b5d274380b2a987a40861d7f57b0df69c278af0e846e7d7196017888772b14f3e9ed3bd227d396f1248c7b3f8a896895896b7bba54862b616e2cf3772272eee9f40d315857035f03ce08ff77cc880c8e51391ae047cd9c2dd86e7bc81e54fca9be6ee8214673f88f51e2a82a4da1c1983655e9473549904ebb08682d032e906d5cac11620c3079559e2c799a3d2070673f79ee1274897829f4431fd0859db5913990f09808b2ce4dd63005e884767cb2f3430243baa3f143691b543f0348005cab4c037a0c732d1a0d18652d2eb2885577e219152b6e82c438fd891db25ed5567c17d82394339f98050746dd3d166e6956bb0ad68479ab90a123d9b585e546010ce073fdcba34f6eb7af8ec7d77fec19817c1d4ae64959df0a0ed1ee4cf2f3bc6fd1778a8a5ea0a7dfecd6db59c845bbe1acb02ef9a1f1dace54741d27f05f0555e54fb84601b24407093a1e50ad314b13015e4048d8b6745044c5134b4b0706b0ba3a09b256c7ccb1caa9a5ab8cd2832f1d06e30d735f5e73274b26556b2378a4a0b4336a6c962d35717a7599900975cc90cc1c377ea0aa7ad94607e5a945cbb8c7de4c51a4b6cac061ac65d4993e6ff2b75036cd41452bef2cb7bfa289989b004d67c98cd71d57932da498db90349a0012acd6c258a5f7c58fbd3f90396b3b3fbadd34a2bc1e2bb775a3ea0a2d035bdce3878468130251f4150a4065884081f3337d80a7562d6aed72ccc387fe792058e598160c55d7e9325b8876f8821d3f5867961efa46e77d29baa91bf986d497478d641d0796934adfbc628544812c2c8505414815c1315e9889e0b9194022160d1eeabf66720bc64e506d45419235eacd74f1d10829f5fb00bf34a605acfd25cd9ca84d0f4f77ec44e3495deec91949c62198de3ad3fa3897d3b15c8edb69764a0ec58645c43f1b8bc4aec96d8d0ba737d12e964f394886de4383df1948e5a6dfcf49bce5329044604739a17649436e4203b377768f786c92920f43215e4c2967c2243eaf32c3cf18f50f0e91ff758fb331a135a325938dfe6342d592a4e0f97bbfe72754ee87c0904dc7fe294d884252b9211ac546dd5382e38992d2df09720b446a0c9f6d7a4c400934683417248dd0d0770236c5acc29035ab6af8604030d288b4f51d7c2d893d42475811cfccb805d783813e0ca3e573600b23f75018036de227d1190a6ae1c41465c7d311560e41b5cd5baf8cb2215277a3ea6660bfa841db5cfc113a225eedc5b990b6a65bc7432c646861fcb1cfd05421506b60d929fc27c944ca61acfa5b0c166ff4184c41af2e5b05dc3ac6cf4ca08870c443edb8679f427187d6533a14a251c7c0b5eeca3db6e69ff100a21449cf39485f09aa477c2c635028ce10a196c5d1f1ae94645fb183f05e8e8fc881d02ca5414b41e12d444c969c651094815facbd508054f6ed442759136b6e2f8063563574241f8d71f66f056ebb0de5e4d820407043ac76a41302853dea8659eceae07543c36844f11812e97da62165ad3538b7a8e2256f545962e3a249610127c1b128da2ad166b3e491b5485d871a96cbcef1fa41c11a0eaa173e7c0da87ac8d9b8e3e2f3d38aaa479231cbd50e0047dc53673ffd730c61159dd4d99280bc91d99cb562565582d3e2cac5a731ad9d904aafa07dbcecde48c2c37c34ec8260a4f3610539c312eb36989e850c2c966b200749d6ec2284d5f654cb2f6c225f2c3558d8c23e10c0f533280a8b60fe8ee44a01605ccc2a472ad94fb881d4e37a39cb902bee62b87e96d73df5e25afab5954db531604805bfc5eeaa0dc8f35db74c08bb7c77dfd8034520d709719d1cd569794fc54fa352f863dd10367c7ef1f100d5431b5321c8f1925096d28b3a37b6fc382f41e646bcbaa7c4355cfef8241db18a95b39aad8e7e575fbb5971ca2a5ed0c0c3d9397e2795eccfd1489e62669d25a9c3e2a45bf4c4c496c85f2b2294a33902aba7c2f61a811693585c66c47c7f766c3810a2931dcc28d94a0d098072cd36135a02f6153919a3c9db7a807a23362151c64eefd7685b4f5c05380288e7b740548e4b859ba6f543b7fabd92a04a424502d03fa17175697629b9a8160ff4b111a571c8f095ea5d4b1bd06d33234ea31bdbe6153e278fc524f5fe82cdf865f612bf12be0146bcf12373c9a15aa49628ae93eb850e533b00953251db60ed8ef2c375cfb4390cd7f459c27662453ab9d10ba62a0074a971d6a74bf02e3e6040ee718093e8d48fc530abd08bb2e893999766766b5bb9722db97b83234eb2005d9d7ae4f06650d40e7384acc9b4285a1959841645a97a14fa2c4a0feaa01ef10fb0627cbe4bcbaf119f232a2161b30634411236484f99f21a8607e797d3fb41985e769be018f3a163c0b5f7129be85867409dd25f3ea7bcc4ffb21ae39e9525bd363e5b88ef9067e11833c77949dc7e6035595b71be61597b5b4123f18f03749fa1e7bf75e9226e38d114c26c83e9a52d0fb6b235021a09db77a0f293b8deaaf6437e5b70468893231dbd88357ac12484ce78bfc52c775cd0b4317947349927e775acec08aae07a8e38d4c486525d713a67a8b7ad47ad7de645d5038a49f3312736874274c5279e851346266a4e25d3a9014e99be56e2edc262a7536f3ccede58e9a8ab74279e6c4113a94e2075931b79a06e0f8c9bc40f3437ce9ecc7287063433a1fc139b99b68535c3834cd5f375e14daa7c544322e7866b19966079db0fcacd000b773971ae68bf98689ac43284ea8574ba6c3fe7d2011d4533332acdf26c2e0793a66a800e0132dd318ebe0046748916f802e30b1b776594c95ed5d09214d789054cf497c641504238707934cb30abbf80c4ea437395a67676e501cd362c4030429ff908e84aaf452d7bc85b2a2d06e00df317c60a79d807fe411c0c4c2f37fef398a52798327b50499195f48712cfa4176b6504ea4ea6ce0c78bbf0d0595f4d2c0e4428aa9832dd7b9199da76e259eb9a89ab2765576ea4f47ed215708fd5cad31863e7d59725a3771a2daed06dc9c2e315e5d1718990f68618facb08007e6d39e41fde56d1fa5b7fbfc81e392cd5d5f6baaacde80bea792a93e6ae12c00e9448dd1450b3258780021c7356177a23bcee966004469858f44c89b1d75712065004cc81149193a6236a006697c849dd938c43f37f740ef3375ce652c8725d4714992318e208c363a7083ba1996de30f6892921244ebef08836a3aaea5e6732f12cb7d2511fd76daa7f7d4169c60802802c28f54700d2f12c4435615cae44a2360a953ffb0a0431973e4609c2359d6e84e7eab43acd67bd3343cc58e244c4fca2ea1a4b4cfa6f87cb1103ab664a40298e7506f08527a94ddca095ecec4275008a97f933be18b4c6cbae635f175e21ef68afc145278062c8069178e03827afa79fd5c9c73391d064134f6b8b65cb8d7fa5eaaf8d586fdbe689978e17b06796ed6e1886b21a279c00988b794182e993813f0a449ca04801e232aabd4e5fb324ea9015b8eeb2c2dfea7ad4c4a68482a0e30e85c6a4411b32ab06d9c4f4ebf66056b54bcab494572a128fb9dc682e109a2a711e1c8b747a32af8551b5e24beac7609029ad617d34aa7c0d55b6ab81a0dc6b749257f256952ad50ea14d87b1f2d9a95db856d8abd342d6be6b023f7d8c14d3208edefb3c891dbd32fb547072954e973f18910cdfc2fc6b1393eff7da7c0f59ea5a6d221edf0b66a1140c50e652db48c8c8a08272569f9b9afa5bba6a062c01adc0f91e01605faf782e53268c4124b10a2218e3ed75453d0a5aa8b7ff87fc052ed03a038a69d8502385d89dbb1b580860e0e6f8ee2d0ac7d71c2c17051328debe30b0f8ad78fe3326c8ae37ecbf809b8a05e8b80c0dcd5185c5c26752a9dd3c2385c9d110688c2f183a551490bb11d62855f7607235dcf3371bf69fc0014559f4d40a09b7fb4becd9bad24e8e503b2067c178a09048253f4b372a92a369fe94a53c1cbd620e1c999d8e52629b00bb503e446b5601bf8cf12eb717e727cc7b8a5abf2440d361492c24f35a71c8204e14c01dd970762d9873c1855eabf302703787132a13d7462bd4f50ce8d631d8ccf47ac26a20e8114231e94a67f8df196c5b6b8dcbb918e37f88c77a6ff987876958f21cd514bc41c286213449d91aea61e07732610cf773424bf613e87d32d3e1b7bdab899bd7db6e5def96edde97f9f04ab1b50c86644a7452669170f917bc56834e6f84eb2dfcadbfa5bdfa9996eb709e60851527d7ea1a7359f1239b70bc3081af601c5eb1cc9c93a16b6274cec4b31f3e400186dae18c32e14ed5b92427cbadf5b0f4822be6d4349a45a10c545b693c56e640a8879493565af48a1b39e43aa4beca607da0ded1967ea154f0404d6408e043b2c46fc3149c1b3ec8e54eacce2cc3ecccd5d9151716ab7e63d0ed0551b4ebba4a123fed4adf6c81e065fef06c67b2e2f01947ee66c6755dbe239a00fe073d3ad62b70f447baabbe1952a5543ffdc621df182a216c8430c18eef930c23b5d091146e8e3b2537a23c64fccfc7169b1ce5914df2f56116465087d194d6fcaae587897c7bf4b6f4d3ec888120d7c8421b88d6efea1061324be6422a4da51cd7b56328be5c6f8e13feeb449440f95ae58f0968c8f4b3e219960c9011ad43b86c96451a46c74988abdc8b85866ea7d8ac9906f251653381c02ab65100ee3a6f07cc301604d3f272221c76c4a7eb2851ffdc780f6ea275e96912271efd8ec71caf1eecd9494cfdb83b7525ee3488e857750b08b1ca93f135522f474a18ee9ed936f9879cf4e72e1982bde91aee56829bee40168021ffddabc4c3ee61372f852a8951906c807ce68c837fd8d49741b161320ae3d0d532e68b2b279a932b3ff1271ef74be40ab16392db523a7c116f4d83c4f760cb198445800d46b0c7d001226a5985470c34bd0336f82316cd08c89c04058e372f56555dfc94a8e24074b02804b0d2dff681cc8d0bedfabfdd4320cebfdccbf2f6cad753057a0de83c97c008f8ecb774faf9f94b156b827a31937499fd9eae4a933dd1d3f3c61b19162952204607021baf0d0cac3f9577c5b24aa57712893a802c0c737acece6c557f2a784ca2d27fed1444ca2771e846338a55497c346b09a583bbeb855141e08db6b420b864cc5b628d9976f366d1001c426059fa8ebe158422828267d50f97fab560849b8f02bff4c81869787a4aeec5ca3ba9531c4d2e9489174e3d30729fd0f1cba81f5ba624df2e59a5e2b8c8d1cbe3812040cca154645b6323b56ecd5da902bd1f7ac03a570ba98b649f50d04eca97042d385a8ddb5d0b58857d92c4774f503947ab5496489048ad7055fb1522c684660dd0595a0fd55940e0834f763a6057d83924ed8e82e38df68699da1d0c9c0e28249c7cdc6ff4be68acf8e0e4f5ce884aca124669211d0075216ab4735b68d9004037b2abdfab06d0afdd616e5418c8298444ea0981eed625d76f864339d52e86f7d7f08c2967439dc1a3b36877ab5aa79a0e2b51ded782353e89dcc0a9777212fda5318b25317c33d3245d8d882813f6d8204b61c102082c188f4c922f142bd368bd070801388d50e896a8eba3106bc059ce32bc6e623e75d42e718b3e1f1ab6dc77382589c6ceb99275a3810a06d5bddbfc1f0e3c549f81fb2955b1266a00016e55da0b5dd12973d3b3b24a03b3a7504d014898f36aee22a38183a11b5fa932bba18183888735f5d71c8025010a0175910484c343b0184832edb319db65853d940ecd7e01a529d208be0bcd67807c7d15be8d666f18a5e2e57089d0d050ff7b27a756af413673e5d12e7d9b42e994947bbd04b839be513566f40954f9d02edac8157ac82b7f4a38c8f83bf5c213b582cdb2da4d965123b2a808fa9b737f8c51da56743d0b95b64caa589c0716b2c3dab28163f01ca7bfb37201bb69f75a4287019b3a91708f23912e519d17027e506b0561edd657084c030014ce3327085e0b39da0c2bc0a4961962aa134f85e1a09e054ab119e15a3626d7504e212a7b62ab9a86845e12384ac11f1dabc1262e702068fa76c14d08467ed3d00eb1be3e867219e14c507249e49719e0ba39fbb65ee68ef0195b741442a8f8b7519734cebe9b12f66769158728ccfec85c05fcc0572522c54d22330db63d8938ccd3c382f641a4bdd278de508d1172b918a36f761c61c9f516eecb7561073a23351fc618a72bb8143900a353927db00ae2f9bbb834e77cd23bb22c07c0e69cba33a8f45d5ed8099bd7ff8e4d16c737ce172a06a319ddb838286441600ace410be7dca2142dddd246ce678c8c9561006c97cd939b135a88b01b0581a8c525e0d6389423399250c708c248ad709d490c308708987d2c5f4be7fc93e9582530b7282ce9528213500be35af7497298a573596b293d80456447b810b304d7f048ae82514fb43231378cdb6113cce73be57b06d2b60a8d931c4ac0071c56ba89e505504fa41242e00df4ecc32fdf24d90616ad806111f7425e48215a9fb55c7d10920dcbbe3e831f6ee7ff8f157b0184e92be9e44ef991dbcf13aa591e6009a926012696fe42793641a17e44a902476f081825f7c2201632e9598f6cfcb15afb69c9c146a1d2dbe304985201323c7d956a0623cd6c0c1cceaf97a8a29256290bb0a6f7cf7aebbd3643b801ca3012da6a86d0cc709b6239470ca9986f8d8ad02a490113269117b71e519d06bb4f86395252634300ee89fcb017c70d5ae335a2bb5b73b08fb0320f33046bd07a0da355d7b811d9b7f888122d435099cee3fb416ecd78f03aae9f94232d7ee1c216f8469713137a560a8cb478b6ede66135e71387477f7081251ffe566d43c7fdd10086e9f613e1d6dab42f8ef6c45b4ca1fa4671346906f316121165fd48cdd9dc187a2b50c36871ae804b553cbee6ce91d7256acab2ab8a0fefd28b43c3377d7e2ffbbdb9c526281a4d5230b8ea1547cc004857653d08d2a12a56fa9f971c86aa60679ffa1152ad7f048683c609a0265d9cdeb2ac840c16becdfbf05a3e183eb41d5c7c24143c891c22e46b1c3d1a9223a4e6c6b04669505f4af9dc6c282284087257ec7071d40175cd389c75e5876bb34d777297a5a8a03155a5d1fe6b81a1048a0462fc8c9ec5868008c1ce092d228e06b6c0f88f8f6be12a0e70910f67ff12bff028a5b17d02580c566c7cbceb5ecda21eb1ac6900a72b65854c1503493366bc1046a61c0e7e4550fa639e3d36520ca28d3f22c60d284147889f83cb83bea001e69902be1e027265645c51e3f25a99e71abdce4d9bf3bb52df028a20115d01d7dace60f4cc6dd1030963937cf7b1d88ed2f0afda9da605785634d738b5deaf551bd0f20b046c17961bac0fefb41632972c80a8b2b2f2901fd47bd0c367320189ea6b307578ccdfb6e5ac947b29c455381e9ce3b19db4fd1ee5754bdebeb70b6d68ab8f67ec14db89f7acbe2ba38e1be0cddd4df7ca0d40219c992aab4b0419fbf57f4d1bf3079bf1681bae4fec5d965078e445a6c42ab20b5d3a94dc92f7e7944d80a1390497f4a3ce679b39041f2e0aaf4661678ab722bf9ab2c6c12fbb04cdc26e3307a19d7b435f9f3e5f3c8838006789ac092fa9c845b35278693b959f28aaba51a387c49dd91a93c34a105f1108b7f7966e07f73d8eaeb0f2480ba0011a6057f858776f544222d5628292099d391d766b7a1a65caac2db2f8e47d5434f22983fdf4b7413a0ee31acd291f89df1a27866b174796ee5f4fd6a4f6c35420d302390053e921551af0072f7d5da704689f84ceca0c4e627bf682de89bb873d8595c9211784e7970d0996658f7d42222a03a19857cd71a6f2e3e3ed894ac5c276b5a27436fcf669edf11ec93dc5a2e4ba584114758d6039f6540d1bf1a9d79c8b28475da488d8bf8fc142538added1949eff553b98fbb8cbcc828aa7dde1113b502a819cae3cf9b911e093fc5b9faf2e1d3d0c166c49443f901347925a68a7fa26a56c5c23084fb023cd257f2deb8c4d6c7b0e4b233a79da70b14941ed108a643f5e74112152c260eb18a384446207b0a0b36338c68ad9f4e86c088d5afb4951c76a24834b23e7a52d05066b1be4bc9a784ddec39447f37bda87c66d183552fd2309f9dfe3a41ecb0bb733c4a0e1aa400cda2d59c192af91b9a3722cc610ea5b13c3ed7990a225e010fd3748c389123768ea3f2e1745ca3af9d6fdafd996b86747139778bb45cf02b6f30ef9035f5ec2053032583ffff784fe761eb00255725c64ec2a72ecd2403ae4ffab60bd7ae2e1bd0a8a73f5eb7114b35fcf5d69f9bf7b918bd748782944f8d3f7354306d3a92cb8ce132161b09e8c07e4f31087ba39b05ae5f0987001d0149bb438bd6283c19c0ff0e5a1ae05100f165ce9c50b586d354254e6ef38fa26d2d6782fdb792892d1eda7e60900aabc634ef2bdcc3e6734b3327bdbe7a26b198cee4240617d578a6e0505832d13430a7faf6f15a7284ed00107a51c16c144b77fe288c8b20ebd110f048319b7df3e5eff1415dfde11c4d767af6f72f90a5458e0a9e9b1fc8757e58fb73531592ca04eb4db47e94aebcabb8ac392efe77dda9d13d407b37db1bf2c29370955c11ed444cf12f81e3ab5de6f1d7415bec9b43370597e9c75fadedba044a8b33d62715a6cd175e73a5d889b68ad6899ccb37ed733edf1e43e9610af2acd0248f67bc72dc560a54835c3e88f40602fb5ea490b04935299f64406ad0437dae2ae610b4025b01d5d91d5b9e28b8824380318ac39df589260bf5434e642c85f76f7998133eea6cabbc44b08257f9901b19bbabb3cb6eda831410b59c5aa5e1975dae9c334c8033b2c18b3a94978d0d83eb0118b123124e13680b6f72b7bd1af3651bf47de5ab4c70b292f1b5084a138967910f8d2aca0911e9b28a2bc589d53eef6b4674dc7ee7f06df28668b29c52147cff61ae094ed804ed667c1ff0c9a2b44d7fc8e747e5bc8b12fdad165d91aa85e85662460bceffa02944859aef0cac0a2a157a1ba518ba81be77e0eb953c80980186335962ddeb5b65a08491ef82d1af4d27726d1851d09f64c211f765ccd8c75da14492896ad708d85878bc29cdd112525f919d7b9d2202277069c47c276625b2ea7670abfe885b12a76dc61d063aeb0900731efdca90090510b62e973782f949fe5c06ee20e0e0cabe310d5a3f3027215fe9507cc746b86cb0ff71688b7e101124339ffb6b823729ba1b5657d7c79c9d000d7675b8a1d1fe9e4cb073d24562b0187c4e1fab51bb714f408480b9439c6a7fedecceeaf8549031957e6ef2da794e7d0007a7a64c49419adbb27ed3b9834c567a20afb308b383f9687f38aa92303c1c01a9a16238019b7a6992da13e1becff98d7cf29011c6c926d7a226e583cfd4bbd4ef733e79b617833b3a5dace41a1c2759fb1f5da516fcee9d76ebaca6a62ff84b52779423f045a9b1764b5af49b36e9c09847222084bd96500ec185550b9fa5795f56df9abd45355184010b19116aaa82a31322cea63f4d77a093de023dfe60fc4f491e944a29b251c8b1b39e4eda599a26a2bf85ee9426d6c1857d9faadbfa7718cb6395af33d9a796a3f3ec25d35934f1b2166676897659187e1f3103dba345b7ea647e7c2708288a1160d320ee2c35e313ebf101475575d4aadd19e05267878ad5908a8e5b47f23ef5743bab2538373a61cb0cdde3c0165ee3e839a490e6de3270eb6122bac0472cad0cae49a6568244c3cf26a5629909d401945bed905627ea201d4df6f854507a9e6956281ea4dec6a0c92d1796c8457b5b939ab46cd99e661df33018c6f233e4f7e0b48ddbe56f3363b0459ad7ab050cc68ec762e7bcc6727508b2181d093b65a24f649ce8d1272a6983acc044045ec8425050d315f1f47c835eea3e7f2e40b452da4a1b52ddb21c4ef70d724c33899f562102b6257bed5ffa81f3c4d297467115c0ec805d11a2ca87656320ecf111b99dc0c37b084132982ce1f9f395d802cab2b201efcba5bb6a3bc76e5918da1fff360bfba2511bb667f36928245b30729bcd1aec9d3a35609cb35736d8af2bf4179f548119f107f4562cab82c7cd16fdce85693808952f805712b094758b9c577503d648c26c46f8eabc46e13fd3c6ef27bc84776771329043ababa56afeda512807610f7152aaaebb3dd032b870416b16e1e55a45c4f91814f64a242e2007472b0b606f6306bcde633343694834b3de3ef78043990fd8be6a101c4eb391bf79e186a99137f4d3a43076870fce2fe9772d55646e04a734382ba3bcddb357421ad127a2b8a2dc6746c394442492bc45956bb1b91bddc238d14ef6fd7bdd9bf8804628832295001bd888b231967f1b4d1df70a95549247ac7efe7c62239707e701f29b2169a6366a2e576a417279eb68c55b97ce502336cd7c9de80b68ad0ba52ba1555f31c798a378b74853ee0965a922900cdffa86dc8260972a3f0b7e76ef76e536374f6d49f9b8b9ec02d4373f3197e3ee3a780cde84525ea270460b7aabbd78c0d2e771e1b517ae52f2444908345410a6fda993a98bef0d1224faf07204c0ddaa2a58dbea0bdc7f39342d9e74793a12dca790cf528aa3fd757985a4090a101c1e98bef1a79bb573827036947e3662cb98c7725a0ce2b13768ac1370746f7ed9cdc5ab517f6cd8e70050c3a0af37a43941e0f1a0096b35dc8f6ddf7fd229e20a19609c2195a8ce75c42172b141be033be6719d876c03201b555e1a3974a095319bc22bdd7e9e4569a12e9da216c61c5d0a62c23dd1cbf63928cc919a5cb7e1176c2be91a2d24544daa863f633d07d340bc0b9524d000069c933adb489b07e650bdc7d14f265919d512c3ea0b1d25321165f275278f51d4dba9d43096ca2350afe61f6f34689ccb7898ef472792e22177ff8daed65ace0d237e2a588342e29d3521f0af08d5c9aa4a91aa4beb8b30aebfe4eebf98295969d5c2f25cf6c4123acd5479e875fa9341713009718713934a47c3b5f27a432f706917ca527adfaa728edceeaddf9710fa408ade4c9ea9ad0ac5024c79a9c5a2161b8fc9c563006b191d75cb5fc827988cf23d1b5ea1f0162195bb6510aa3b4d18397e086c1a1b4d88ea99178ec74e6979e88a208fecdcb5f0e5afc41f44658881600981bd82a8ae3e5b0ffaea6a0ac54105e55ae7365a816acef240f4139da8bed6b6a0f247bc41754adc46397d4c9cf45e0b04ebf3bed2b9dbb4e8507a9c64e6e21b2acc29da8c6d49ae80ad68842fb999a4685bcac28d93872e7e6b5c430a92648d44b50ab7d93528b4a01a0c62c7618d7a5860294c4d0d2fc9a46c726e7d13f5aa18520f5238df143005ea31ff83b38593def263a859c9409394b8d9f5c022d91c4adb00cdfdaeeb1970909cc134e2b4730ecbc5f39385003fce64aac60b7a0f0d36ae0a61e040441005af99c8deb4709e85e61a2bf539c2cbf66451ef80664ac1fbe0580fc2b3333a6371875d40331e8072b0dae41b03cef144057f40165d2530301064b70b5006fdd596d355f5b398b94f08e09dd64f4263a33ae6f0539b64d58ce93464d23bddf710093fbcb667973888c5011d5e5fa0c7b7ae78bf076ab2726f7422b2b2e1ba7ebef454126b5b8056872b4140de2cc3f70767ce0ca92b8686f66233f2517d2106c651d003b21ea095056f244840135554257215ecae035892ec5d69c48ff565e00dc32fa1e27884e458d643887aed7df07739774a27a2730a164522d95ba69a817288625f57d9908e8d72beb68f2e6a3639789f9b918bfdf258b5a8c7a8b2280a77f48c7aa88f2ee3051a9f705e79baf85062044b428b7613362afa130d187289f3ca03e0eb357e497ad92cd6302b7409c47668858545d595d1e79b55f3d5b2ceeba1e5caca8e07308c1f95a3d966e1798e83f5f881fbabfededf8a661cd48308714ff71f2350fe717eebdb7a47f2eaf253ba62e0aa92558cb37e2a7acb439eead73692a09e5ef8ff6d04ea4de14479fc25fced0c895c110df778c6627dd2a37fd919542abc168a714524c490acc170a72d237c9da03ca11fe775a867b52c6ad3d19a6c4a9cef63ed89628f5e99b118059ae1b6bfb494dabf8d6a285947d073095dda2eed0f8669967a0374fbd8822f4342eb0501f40bf56f852f42f7c6091a2e8f7b51532cee40a2717495c10015833d3eb93428e0c6a85c9283162e0f83860404a9f667f4ff0414ad949e9b809c998d7e567faee70f5fee9e0e56dee5e66e3abeaebefb496d8510662ff3f60a94e5ae09062d15d6c58419933f32cff5e3e6729d6fc9bd18daa54e856260cddebf186314b214795543ee58fb28695613a1786603aa8e6033742a73557c2be98390aa8404e68bafa543448b3be0cfc09aa94854bb0383f96c19704dab1b460e175d98a33110b00a871b37ad88f8ed59f7b45fc0f8bce57e572e2c26e882e6578ba4398fa075c7d7ca536e15af2bf9b92d40c95a6ff80546d6aafc91ad1b191abc8ce198c93714982ece2624f70d4f1bc41baadb1774baa263e328fb430fa7dc219489e95b10f9eca1702c5c430fc4e4453cd91b24bc1209d36de1dbe366836101a77e3f34ce0163a0d9d2238f2c7b2af45431195ced99313bd43d19ff79bd9799c9243fa60f09c1a084049d04f60e8265930c078ba575fad74047f78603725a05c053d39c908727fea98700565c0365b78fa4d3b4660cd0c3c06c20a19b199390b0e7e2886841e00025b0575d297245d659926233b6d5ef2628f132565b995c0b11a92159d8ca163a98608191927501e8a50aa7d4c19f835046ee218eb744371df7bc36464c5b28a7dd16f5c42c68d0f2917bdc1519444d1e9186eb7719aaf2f8a421bb960393812922530bd344c721a0c82aefe793f3f38448e23451b5b18aa969ad2085661004669ef02b0fc50d34af389d6dff5d0739cfe45457dcd8cc2e2d2ba51c14b488d855d29b681a20b6e687e8ac3730428cbaa83693577d278d9e4c91e8d9dd2ef39b0ce339b1ee8e7f2df70f95f6a5416fd2da0ef54c5624953c912face1ebca8a949dd73be41b0e9aee84ef1510b6f278c212a03afbf97176d66ac7b84dc713b27d6ffe38502f212d391667da1403acf6b43d531877e496e901abb46678eaa76de55b0cd6414500dfe241e9bf4d2659cb4a296dbcc9e031992a6036405e1e1396940c9ca58daf0563198f0aab2bff64611bae20fe29d5690ea5df3942fad395da8ac23d05202f84eca6ed85426ee6285f589fe35d6c8a80ee553ee16db9e71e7faa13bee844564122b497e58f5269ebcea003320995fdeb4a860f5b4b2727be5d0be2b7aadcd1d5c44909374136a49c9dd18f7fbc3efffde31aa7051cf135734acfa110dbebc66e073fa83143bc5e3e56d009fa79f25b1239e1e6f23e03cfd298f1de2b16fc869dd2bcac43f224d8147538e218ed064acdf442b8fc09676f16fd1fe23d2ca7b3139bcc6698d61c478d61cbe44fe5792baadcd78d007e486acf7701461b96c7be31fb73c862925772be84a4c32acd6c5193f39d16a88500bd42b2b71abc9270da511da329240c9033efbef9d207b2b3b4f90cd301452b03740d02060450c16cb8535020dfd6b0155d90719ef377d950a9dc2857480b106c4a59c595f467ec02dd6265c257ffb879e0e6ecf401f1b9098ce044bb59a15adb4cfacc2cb3589f55057543aff5ebd0a2e5d83b1bd9fe0a872b398d8e8b60744ee4ee6be712570ecced8d33973e0fe1bdb6fb69fbccdb14bc6d168cf3b533cbdd614480f06e897468d970a6d9850b848a46e626cd9f39b9e6a6deccf8479bf6cf909039445ea50844360b14855f465154e3cdf1d5599e3c399134bd421c273aee0b8d12448988e58285f1d4f2f820c22fcce3efd2cd390236ece0b2acdc3d76d6687462cfe9d8a0fb0f735577cb4d08fae9cd3804a5038b3926384cc28493810b9eb4651ba901146c97222de8201af0d102a0837a50728d2c9d97a873418a13f8668c36a871c43e5206639fb011b434a3412540b40892f4805d52138ae5fce51c36d3bbc25b78478e865db925d4d4853693750f5fe043540c2eb8b4e36a072e9c5f1a18738e7f9a0b6cf57f622c4438a101c33a2909b1b4f4792a0ff20f98d08bbc690cf61d2f310bdf7ac63c038f5d4d115264cbe81140464585f4a7e253ef2eccb19cd20d740f949aa42cfed6014942afe2b40125dfba169543ca9c60a39a6179ae28b2b6491e4a7735f8ba4c02590bde7940932f5b620c388b1bd706531fdcc1c38bddb209fc00d70a8a1701f1422bc21eaa66a20b593a5da46ba9da73d019b4adc0a41792d551acaca9be34b4a984540f015937283bce7a86933b918d5fa2e38a25f36445a180452bd89a11e86aee9384add03839e2255f47b92feb0567242ebf9f4e25243d1fa1685f0543ff0c0bc8215e63d62f45e4583a095daa0a207f386bc446c4e6488706023149cc5cdd72752c04a453568c2a90a6ea5ec2cedcf18600640d8ecba8e4d5cd37ab9df43da15e124889105edd7aa9fac14677c39382584a234d7c980c405468037ecf4b6860291320eb752b7dac91f0d21e8d0f9c06a3516e64867a8e3877cf91ebef21d583a1db9fc7f1e5f3f2a3403148f5cbc2725ad249b400812d471e175faa51a8b10581f6ad89bc0a2ffa80be724f6568637f54939d771bac434baf4b8b9dff110f76ce33b111a2682d65cfa4a86283f04476f9c63a8c0e0793982353a4a33bb8da8d69961df233b4338f84fcde0e0fc54271c93965b18fbf6019cf52d588516c4d71de9021a12cee1b57ef396e17d66f608d8d9994e461e2cb52b4bf4ace32d3be711b24d5a10cdd61b6e3b5371f5cd57f3c3e24523621b1a8ba4481aae5f1455ea52b9f13dad2d00ea84813446c2c34f08a87c6d85f708f792ec44a755e130baadcd767adc5e201214fd67f8b1c511b76487ff191e9aea0e4e651e823c01ff6ee23a0484d060c030432847c564e56726577c796a96091e7ee72f8bce034eaed73088e52d52a89239f85c2b1653961df53b043ea1309dcf39f6981275e28c3a8e44a4239b2e858a113a107701d62b015a0e35bd46cceacd6d4e531f0d59417656420401bfdc0ef389cd693f65164ebbebe44f89e2631cef38104a50282e45e3827eaf45848f45e095e3882afe2577078625acaab320e8b3a24a21143661f5c41f38293a5641f871d2f35d529fa6b5a898dba20bc8e1fdca11fb5c64516493bfa57a0a129f440ea5f2ae06224d5e90dd1d2772e1e8774bd37f0b9de9c631b05ed05de79a7c5f99c955e10323e498b4271c6a58cdaec3b1da5498f541c74a5e47bb3ff5159447dd5436702e1cb1992c1555929f9ee49ae24695d1e5377dba3a48ec249fe2aef48e9253a7e51a11d47a477a43e322c5382fe031e2b7af886120a45b0cb2266a6146e9c2ba64c4f0b7e66faeb36f7628ac3b03d26d06a2a0b64d3fd7aa0af754195a07d601a9d738546c5765a5982c3316dea9f0f800562d25588220e0a89781b064cf6f1fe9f88edddeee50093487c97ee201a2c2d26f497bf791fc3485d8cfc6d411085280002393b7c244e60747da0e25c063d3222e96f8d4b994a8c8a232fb9abad837944fca29c9778029f06cda34540ec823020b93492aa806daf453617bcd81149698e5125d7769ae0388030cf0e17a57cf29c5b38faf5f51ca12343a889a6aaab756444cb438c1d7a003400872fc8806fc0d9ad3a9fdd813d073d3e620b2c1e91d180c50c382be8e459f483859124e1572ccb804b0057b208bd7f443b491846d08045205b2ba6b6d0966e72890fbb53b336c716abfd4fa921d2d8a22df958b2230ecb85cb2ffe8cd5720589b3cdc3ef9d6025ac275e7d80d1dbf62f5141d9d868c1c7c2ca23c1f88a5959b729f86f48f72746c7cd84b18b5c31f07cf118079e8f20216ab42bab8247404fc92e46d7d4ff02d6c65ecabf87d9bdc9e8483bebc21387b23ec47dc13d067241f803a20f1c0f48909f23234f154f211f4ec977a08b7ab09ca2c1414264c749061c56600e3ac4fb46ff614bef698640a03cd4ecb6445df8deea902a8f729bc298acf6e5b8a5fe4126753e0b10f5a8f1af8c06012f65b1c0935bc3133e92bade360737e97112b897007cae9e828071cccdfac20583bc6a7cbcb4991dfa771b52289aeadcbfa219ccc682b3022dc2cf4a46799b1205e02321f431bdfb0c2de72c03c7d47f14a40c5bba5bd30e3b934cfdb0dc2cc577013b1b01781c7b75e947d47e837623b72d565c6badc5f130e13b252514be5b30cd1db89c839da1386246940d48ae5fcca5bd6e12830a2953dd34ba6727a5e3b4c30c45a95af537260d1b18f9d4398090a5acadb5990d9ae1893e5d670d9eb1ac28953557a498f8b6f6b999f14cf494f64122c55e6c3bf5a48838b89efd3af2f1a06783d3703f6490a3a15a3ffa22c8c6ccc26d4d83bf9a99d272a8ba123627a46d1ec9153264a1a90747693ce36285ee5e6856fee328ff67c4183af00da04522d60b72e38f44f892132404b5c68da1064c1c5e747fa1cb1a1bd6fe8064d1aa3a696c17cb073bf9c69a095e3768551a1359951959fb788443a81fbf5acd215ab535ca853ae34d51ee5be733cc6b1b6595c967fe95767eeae634a18f928716dfd7982dbc85fed6f6b7509077d07b727806b2c0c0b5425381fa67c211f6d210f9c08e9d060b2532acbf8f4295be64be59595c0b7ab3fa117b80d46d3207764ccb9203d5d0899868a168112899bbe761ccf5c5e7017ceea0823fddbed4c992aff7a77ce3cbccb9fe3376e2bcddf1d91cae8c3b15e04b74886047a524bf3fc16fbabe9a264f4049e4cb842c32b1fb92293ef60395962e620e0d788043927c08b9be616e816b42cf51baa33754f1f744af38bf7311c1673afc632221efb15fa39fa5a83a40f221f385b8ac3044ff75586a9f715de42554b67ae7c3b8cfc88c4a6be459cc04896f11482f00935ad56094e5faa28f355a3608e2948a136d9e42dbb212188ed07a212e3ad8ddfad0f72b23113a6043ef9f973c6a17444261a094742e49b14bfe79a69db695684f62b06fa2bf41fc19202f416c3e36d6fac0e00a6d44cc0a0626529236f049abf9c4c806e52ecf199043d4d8cd0dbec676339ed9ef0179acf0a84de3cc6692d35f20832efc5cec3da6ac93a92b48ccf38764b7c5c22474de80e14a9a38458c865de1f50924986e2c328a5fd63445a9e14aa7083888dde2d2f596d61295d23e65df00da2c731cd66b509b974773302c3d6393e0163f770614213538eb9ff721dafc503137afae29c1f3a7206c8835840f5df68886273d2c1fb18e875bae650bbcde3797f988151a3f7991808f22f0f6940231d4c80fb049cfd3e0c64108e5521c134c8fa6d53144b287ea38352f943a4c014d628fd4a00e921364383a968003e76981c287e54e9dc0030afd700928ef112b84bbbe73673108d4560cea4027ef486b3d67cbb1703a507ec26c51e50db01146b819e3386818f317d4e3f84f065238bb7e92e4000b33c333e84b0e3629c8a94274d44bf74df480860ff8058f6e0044acb641ed83d7e382de9ba56802790126285403c4a428b9245138227b634eb43428a78157de8466c9ac8e8fcada95fade16dbad39c6585e1a4b8080b44631988f3b101af992e9b4678a7f709630b2599552ce9ab9897f6e2e331ebc82bb97f09f48a5f76c25c78c1cbedc2780bb410bcdba20bf6ccdd0426162113193e0799b41b96b564eca64b279405aa04af6d6722321bdac7b4a6f523cd773cc999b855c06ce083bba2e625390669188bc42c36f42179bd2025b98eaf6c7749af6f2cc777ec9bb8e5bcd7bc44a4d140042f19905a6c6fa204d28ec17c73b512cae365ff13ee525f11b680c56d2ee93dd908941ce88fb0b2060a2a871a592cd78a49ddbf5c282021e3ee2b82a70a23fc10052e14ddf1ca1c80f053599696cf81839e5e881e41c860dc19068ec173118fd10da68d894ec0cba9f8099f529410e2971740fef5fd5e341cffeb6e91b25c5c9776bdf8fcbfdc4f0e29f4016b548b42a2862dd6578cb7da936168d3d83a0bfbfad27e099842b1426deb86687c614b88b0177d522146a1a71705da3a8165592764ca49c73a4a673f7dd981ee8ff4ec4729dd4df3c4b3bd55b32ac7c71a92806c1b2a7985829c7961dafb8c006679466819d42c0c00752c15be2f7561dfaf5f9dc95779380a2b660ba23ddd18705fdc11a74ef6d07b77ed85db1d338fe6a4ea11d50c1c0f38be46667b9decd2b089aeb21755f6d83da4605ec34ea5590412d783850098b1078c01015dce4eba5e9192567be7a1c3e690a50e8d71cd006aa144ff30fd730127fdfd4b7b1650ad4ba610aa508722475e00c0bb90d9079684fcf01cc279f79b3cbbb7cab396fd73e0f3b45908853712c309817734306ccef21f36ff566f07d28393439dfff2227e0392b5659b865476beafad0521aece737bc1ec7c101e04aef3c6795ff56949d08b737ae65be47c9776a1ded3ea7a4abdfd874bd69405f032be20052a0a70da627bb5c2924eb1e9544781026986670d9e6b2fc700876bf2bb394f40cff87872fb1de0be7d480c08ba1716559f051cc1d3f3e5d42b7728d6f6799308b6e926bf82646929bcaa4d65a407ae20cd1ba4347dafdce93d452461392d6fb9095d4f6f6552c5e51d735ba311268c9ec417700e8a58328c25c97160496eec48b70d3236c1c5908e73b1d53b2b562f7d98eb9c1a6969a6b63a108f83942e2de29b009458c1b30f0b2c12dc2dbd2b886dde613600070d5cf67668e345521e288aa335d20a5a8e92244d761e8760e18ddd19a2816648c43203ffe4ab063f8932577d2621a1461f9815942961991a49fd31d3a63863238ad74a98ad0671d9e39d0b50a4bbf3b5f82f7e406a00167270b3b79c57dc758720ad2513e8cac8d6e5ce6820fec36bead0fdd6e68fc2550013525fa2a51f8235239758831425d5245a0a7831c178d40195587e75ff200f1d775d2eee286f7cbb7be30a023c15a6a6a4a8c50d0f2e38b14d7b2d7bdc926bddae777896f8ce061905515b96c43929f9987d536bfd780e3932090919388470fd8f4200f95741b44b7e8fe149171b532169c4869ca91c7baf382c0f91cbbef5cd6ad12ea6917c2dcd553361a3066ac9effc97fbb7d8b4721e0c71184b754fe0cdc186412c634eefe49cc44bf7de32851a667acfb25988537ddf6eb6fbdbab5f45e36c3c591a385ca2e3770909025ddf1471678a6605bd47dff9f237ff4f2f4a253815cbcfb4bea0c44af4943c9a32ecf1ce29c538fe7b7d548d8265e7c9fbef574fbb4e92c29db4019ac0da711e6686d4a69861649eb343108c2d964b5bf2dd3d2ea8ab10089511405a0fb82d00516b870bbe9cb6129e79589ea28d08fafb88059738f07182aad75fbc39a3e451a160a9861109f3313a4ecc43cafd7f415cd4c116d2684374708c7e0c4cd9e0180a8a83433b5db39fce872e193526b7b5ddef322409284d47c0b5b2aa508fa6f51396a68af29e8d83452b0313b699741100f84931a91f644c3c848b50c9b7e571ab96574fda4b74d4c5bac7c7959cf9e0ea9be395224ffda8bcf5f43f6232dceceb21a8425f0addc436bdd44a1342f9aa5811a5dad2b7a3a4c91e933d0ef1f781078572a5e59431ea00c9c2700a9a539be3ae1a56e734cd110f5de0f9e07515e4448605bceb90b48035e27e98582683ea1abc270bc46738374e7ff5502460dd822530c75267b3ce992ba7fcfc27c056ee3607dcc000aa46f86c7a4f029058c19df57882e0229176ea8a5161adbe7a8dda8c7350a5069736f786055fc069d784ddbc05e81c9e1223bd09f7a617306b50fa1c8ec57697b88d17ad63ab781ce45dabbc2a237470a3e758f1d9f661418a2e533844c879113268fd2a7d193ca32e86acf2b8ab3f51b508a6ff4849f2da61e4a5a5338f54a789e6624128e351161bc4aa6421853fa279e0f2e433804f1164bda6b60faf04627aa62492202bcad81e272c1fd17292c1eb607780ef67831463345c8d93ff9dfef5ca859698c29696ea2042ce9d44661b493405956d0a55d45974b31dd3d481a2593a5f25051d8e3e33cbf4783cddc1a5ff24dfef5ccbe8a29f336199854274b39e1fd27bf7fbaa277fdfd42d5dfeb67393d96b98f8fd6c82bf42dac1369d0d9e0dccca5005fdfd64e979793e4108e365967e411035f8ec2c411c0f33ac858dcda55ad7096efcffa8c8e6bf65e1e2c8adc8282d2ebb1088ced7818b8a6b4e92a502ba25a5e60cdf44abc8c8d1fe3dc40b991e479112e72529e953f10af9fdb771ddcf2253eab10d63850013da414da3425a6c344ccfacb64a3e8ff9eb65ab5a8bb4f1b5a50d430340a27e1b9123f4ed347d34d114d2a6498dd7bbcb6c01f5cc829c360e860f59b02cf957136dc87c1db7ca4d81213a9fc6dc98269dfae951dfdda989f00a3622a50473f51032540ee0cf3f6f685e4e1c9b83ba64847978fc033889e8ce14b47ad2023ffae16285ba83a0913b09ec9aad79bce61cff469bd268d49a976c0664b24b41408b82d4fac1b56b409e1c8191e032610939cec987fee3cb3aae3eb3cb0c8e722cc4940a1e3957e3d2c2cc4e49809f78f0e0b735ea140dd913d2cb8eaa73b7a542c19be8992420b4932b9d50f01aed09c7d56613729b6ef9cf0ad7c138aab3fa934a2c6855483b8fe81fc3fd17e911510383e11bf6e74409fe4eccfff59989c43ffa626b58a517fbc6132e58744feb912a4a93c32a06d809e22411c1f40ad98f3d7d902778a9af2823f7b11858b094590b957527a38e53e2058120ac91de996afc18b5e31d37149d3c51da80fa32d84d21186027f2bc8a9c74f191eab99b114eabc63f40ca71f383bd9e01c2c622fb1979b583bb2d16603840dd096812cc05d493e9a541491332e59c8f90d55916577bf440ee8e4d61518c011a201441758a9d647b39d479632d2680ba30119bc8875dfc11787760fba78921e68a22e6c74140f425decdd369da1e429b7e0b4017a1bc0b26080066ac7b611c9a5d154019443451965a934c50ea629215dba15b896a7ef27422a7306ee473eedbd75504a06ea77c54a534927d17259d20ad46008658d73958df49cf296f849301bc5dbeae4825d004f6887a4a056f6953ac5c842ee23ac395f84ffd6bd2dbe03a361693c0c9a4813d5cdc836a3046339ba6633367fc65c6d1e93393d665e9602d68dbf2a1c9c2a343b1d9e2bafc6386db8110f0feed0d43c9902a4a5022d8c4d8b828b6aef916f94adaa1c0665031adc0c802c01b2620485521d438116f657295785181e415092739af7a43fc9151166fc8240b75f2efe0ebd063c09dcc2d4bf3c639caeb96c589c13643be88fa580660ca7ef20a6203d96c4687be1b9bcdfcb5d954fcc968d738b2b3fbf81a935b73e85d4cb14379b474f99094ed30c0933249b8f2b52a44d42524686439f5d7ce28b31adc114d4a460034e9ed60d3d3b5b1623ee41b272bb45a7c43c54fa0ac3a476efa4ee2f438484de3cc264a6c7a5f9a83c47cc95cbce862e5bc58ff250782bd383d9a7f94252e33c2c98b6728c2fa3f6cebff45fcb7d01efc7afc150b6f24466337c333e22490c24249a57ad79fb1543e381454229748313a6402365688fdd26f8d02e79e476afa0bd9035242c1f5b56e2dd04fa991cc7ddc1e22c7c230c30e6eefdb922ea00f0b4bc5305b362377038467453bd818be0383fe38f0b17ed2e9662a81be6ee1262cc8206e0c52181d1c7466ea9509f93c360f9d57a08aacff2b41bf421102476fd096962dbcdebcd40426a293ed53afe85b1626087012330305b41cb120d2623998f41257d438c7e081a98afe3822e122457fee60602bf142fe25355f1ec8fb1c07a4076245c227ae43e8e071c72d662c1c846f10501de2e3e2c431e81f6c88e0c8c476ff4b274e08ee7e967ebd90828b2d89edb1596a04a9498e1bc1bf5291ee734d7f3b0345f41471a843eee3137a1ac143fe3abb9f301ef0aba8da7e00ec8fd615042a9fc0981031f87d1434b811330ae5a383b0d3c8421f71621d7eff4d81d61b8d68cbb4e42f77ab2d25b0284e4704a1d60723847779fd0563bac018f6ca16f1aafaf296db07c966a04f31d291eb54de17193b827deaff1f06807928b4f1aeb3e35234cff9d40f2847c20b3ce97cb38c3e03d8cc44d801ecabbce29fb1d6c13a92c956958aa884422e3e6250d7dda7faae9d7e0818a9765ddf3357ca5475a0940ee0255898efeac3a3d414d59a40b56110eae369beafd3339011efd43f9820e803892518c28e3a72eaf7663f44a0f15a1280cbe71111784aa49fbafbbb3b15978283b88341f1e1dce7de6a55bd557cbc9ac1f9eaaa468c7d7a904bfcbcef5712e0c4fd9982638153965f6b27bb2c68b84ec27447258d627a52cf46151fdd597b34b6f0f2a8b7067d43f9860325070f0ffb4660a373d2d631242c105f92224c1750b8256da702f1248c289fca0812582c35b75e1150464f60fe2511d052225202ec10e4d0184a6ee7229865ea29c96397d3983806a264b8a88853163d63fb5c4ea257e51da3059653e363d8fe13372dc985949322b872eda643c8475c9bc14355f4749941d9d5b89ff55685da5a324d83a9b19420974084a8a7c7e091d6ff233e9d8387c797bf65936599c102931b07bd5123e39a63baabc6145fb058d49594b3abb1b872bf4952a9e89e0dfe2cd3a03d04229407693a1ea05d358ce66c29ed7e651040e7288cae9cea58b9a8850df5291199adb98fb0bdc1170187d2fcf07f876763c57f6d3497f30030de2ee1b30de2f60e2f029140e97c37e8fab812fa2185c18d35640d9f55103ecaf0ecf96383109ee39508b6de96cb6080d86d1cc842d37542b3e6b603a042d716307b6718855da201822657421c7878fcda64de4e084db27b054ce7020a9e767d56409c0da5394d7eea3e5c336024a61795c9b90ead04b212f5ded0a5a219b6970c22487180c271f38eeccaff0a7666ef3cdc12225900b7063d99e3ba35f827e9e14284497223fc01fbadb5b62de9468d7423ad9b90901d5e0748071308d9e921cd916da7d7391adbcdf09ed30bff095de429fdb19ece67e82217d11eea80401ded2e1876b4ebae4879b34b0a14e259f8baec8a7c54a9ef3c6edb9c1b84145ac7b2a7c0278fddf54976cdba1e6537574c297c89756d52722d7b89859e579f36040f770e698ec62bf2497acd4e3b270ecd4e6a55ea29d5eae955ea754da97d636047b74db3dbf5cf3ff597a3f4aa68f45647a33a4aa70bc50eed7cc76aa736d36ce369b38772a176da09adcaf6ed3a47035ee7686cdb8c18a439aa76b30bd6a68d3d9aa756b3f9611221ea3befccd74baf1d5e45bbd5d1a087b73a1af32ed85108af9251ec4e071f96f22990850776728a25252da38f137be0cfb7c718b7bb1e69f766edd953e08561df7efb79fd93d82fed9776aa6df1631dceeacd2ef85db70e07173fe33bef5524be133f2f8ac3ea3c9ede3c22e91053e43174d1e3cda0bb7aedf5f47ac47468af371f51710848f0075c30f67a6a73cd126fd825f97c653bf6cfc5be61b13e565b7fd98cdd3d02a16faf7602f5f4d3e3abf578ae3daa235e92cfe32bc9e7d835b95d92cf0dc26192ec2bd73fcfae7f7eddcf8d3dc28ebd7e3b16b15335f494d66cd6eeb9254f54edea08bdde95d0b7bb22f28ad968b3765b220edd2872778a0af15e3fd11c22d78ddc1688e7e9ebcda21b419dd3cee3ec3c7e76a2f6fa59ad5663dd2276edb5134f3b1487f518b51bef76337d0bc495c6186f6e814cb0f2d11c17c65eadf5cde61e784be9a93df609bd76d92832ae4960d479b4da3bf663f30c203c37bb60cfeb8da2cee79dcfe93ff7f3ec9fc79ed259e2cf6558d9269fbb46f9dcd108b860124fbc279e3e66d75977c7ee8af5eb297dd11cd6cd2eb86e36b7448959b6ded1fa7e5dafdbcd2e78bb6673c5daa9cd3d489edd358a8cd3cf49ac6b93cfcd126bda6558d726da41a7be85b0bb527fbd5ff5571022d6a9ddeeb1b907d6deb1f9e1d076faedf49f6317b12bdb8d3dfab87ab3876ce79af5746c638fcda0db12f185d96af3f50fb8e0edd87474020e937c9efd73cc7a4eedc3dbabcd3d70fdc76aa79eeb7a548f3db32bdaaddb3b9b75d5e696d8b179097c91685fa1afd76e490c2a490efaaabd5e2dbb79097cdd3de27987397c5deb96c5d2e61dd8bdb2b908dc0347eabd8bb44726566e924e569185c4618973849de39c734e24290a4e729a260a42385df6084e14359d9abe42c127a6eb13ead15121a695e9f1616a8cb6545f121587fbc2e73c3d040ff75f3b6c033bd4612642082184104218e1fb42d72308616c202d46edf76e3f064c3762078705165858e1a6045f4a35166665d666ddd808015203e475ad5129ab8a13455595949745ad5a2d8f25b244ac023c31afb8e28a3a547098ae670ff0af2c0aaa4bea56777852c2e546f5b6d9057755ddead15237cb69aa0e5fc57bdf449833477b8dc5df0cea93914e54f5de7439bef75ebff7dea10d4b84c1ef5d4929274dc39ccf8a8a6131b07b57fc8951619cea7b5524df7b1a4e8d62d42ce59549275e0e4ecd12378497565408df7332980ebb3805000077d844af129b471842482dfdc4b06317767a451a5492d0e3453ec59c1aa360ed802829f0092fd804bb19277481e76cec5115edefe60694c4a00744197126ef93c5efa077eb392ada016548903502b246de452711bd4b5e55555154f5e4fd0164b31c11d91e7a349dc4d6b099a501b8ff02600160253499ae8d5149e01d34917173c5f0eed8014da6f3802693e8db2719d8ba95055dda1f1a08d141df9450ad0d09d5f548f6a83ac9439664e4a13f2c6249462e72199f9895bfac8c539bddcc0abc84b652513b41307cbd8350891e4d2ff97c588fce5d2de9b1845a1dbe468fa6f7504485c113fae9d3e10905ce2d8de9e521c571c41b0388971dbb4a86dd055f36c75c0486a7999d8d51abdd5115169ce1e7a975c1d0b2e0695b26ac5d043c03c85f36054ec7462c1238421742e4326eec51b53d641deed86a4b6c16914cb76e42d66191ddee0f3d6b40140bb4c9946df4d0287407cca2de092de0629aa8876c66c1a157363f5c894017aff509b35b1dda0b964c7915ecf29abf604a431b7a66dd0af5fa948600b0376b17b1ae93e4c09e5d05cbae4b9283feba8a75334b862e2c1f4c856e76c1f5da1dcdd153038260781956d4d32830fd0814183ef4e9ea19aa9b810213185ec6e77c98a438409f13de054315d4dc03b740bc123abc6e2e917408192227f90e3a44e8f0f2e8d1b4428f9dfeca511ddeccf279540776aae282e73ff8caaeeccab293e4909f5791f3bae0ec92e498cfae329f5d978bbeb239bbf608887c523b01faeb1d786a2debd8a9cd2c98fe511df092c8c36724f2f318a5774d22af3c490eead555a8eaba60794972549757a92e6776330b86a74f81d4e6ec1bbda3413c2c82ddba254f54ecbe734775889cde1591cfbb32729a59964fc62ecb078bdc3872ed1415a29e7ea23946ae2bb92d10cbf8757a33c98da2db0271e8d7231d2234848c9b1f0e1d7e866c5e62528bd9477340ba013c21765447c443e4ecd8e98d3dca2d10876e2e0186bf3e25a6511ca043dbd8511d10c321b01b7b449fdd79f3f51688e97577f4687a63c883c74387f03ba0e5d1a3e91a132a7c763416e8d17408631d7438601d170e05b9c5a676b0cea6d58bd9685d706673050496401e90140179b6873e109b33d6474d3bad37c78ca7f9da3e370dd36c961dfb75698f9825d15e8ffdc25eb1cfeb94b665da5dd93eef8ae7dab1cd2312fa743a9d4e47d334ada3699a93d2c98861d682357db21d3b1c52e339e8d363b1ce318fa5cf3a37d763db8cc1204fc91315fbc7c2213dc28e7dbbd8b5b47b611886619acd945e8325ac5918e639cdb161d9a338b03b35ebb2c012a6840c0b2cc11a9c59602989246694901189ee12b0046f405dc3a881d9cd6622f0e6f974e2a5917a66f39dc7288aa29e4f04760182b3edd33a1c448f68a594524a75a87fa8ebd188c02e29109bc13203bfd72ca3a88ba2a85391d24efd511df55407f6799ac52c6631d36e0e8c9e7acc683627903d7ea2f5511dd425d14e7d9268c75e339108673fceb479e7cd4460ea197d95559b6bbdd95df97cde95ce336a5966e0ec94cdf5b2ccc09f9b51f11945458afaf450b5665446d1d7671eeaf13a45d51ba92c52d4459d09f3d74504d60e298eeb13f45c12128935c6ce6be679d6b1d93d9607d9038e0dc03188f62c881e55acbe56919b657da81e74b1ccb83eaff914a855775d73be1231e3383b8e253896e0cc23c2d9352d7f70fc648fd563359b6537b3b9f3ea749bf33373c988c0916e56cb9d2be767631f88d8334b440e7ab378cde18b65069eb7aed9bc049e974e961938c6872febf0b4574abf5b36bb40915d8010016780ec40dfb1990577a616b7f8c98db1ecd16636febad727c69279747e5947b33ba861f55b7dbd9905531bad0beed8fca11f2dd62887f83cdeea01c91e698fb76693daebd16259768ff679766a2b097dfc768c84bef3cc350a0b26a177bb9905c777ae79ea939a8ee6a8d16258ae177d9da80440af9fb20aa3b6fed1093c4ceb0704f23c63f9e00ce4b93bccde3487e773ecd910da101f2dfbccb42c9b9936b34cd63a65c532ebd566165c3f158b26c866db31db01e511c6288661b571166920fbb008a28c3c7310e5733d3757ed23dacd2c1fec66d9cc6ac5b4bb3ee97ceb6c9d8fd82cb1d6c932bc7dcb2a468fd5aa5d96cf35334a6d490cea279b53e2ccf2c134b37c7ee0c182dd658d528c8c84da23450bf67cc247f8c191dd9cbd5af3d69cefdcf528b31e6d7e3bc8c61e595fc19eddba2531a8d8edb4389714e8b10e57a75d3554af0b4228e91017e82287377fba1eb6f6ec9a7538b36b211000fe800b9ed78ed98c61ac8375e625f17ca5f379cf9def4c78a859ed16e81dcd6a5a76ec115ecb3c87d7483c9fcfac8e75493cf42bd63da7d63db75c8fb4c3f949033da5b35bf244cd2e0b1641d7ee0ae89dbb128236679705c3a08b854222914f3d56af9b1fae30cbe0eccc67d76ec5647663e7664cc3209c1042d8823b5976d927d8337a68b357ebb1f940640cc3ea79f51cbbe77a4eef39bceeb9eb13d04336f6c8f30d7e83a00be7a575344b5a56e76617dcc15a30e639b51267d9476c0ac46cfe7c7a07645956a8f3cde6169cbddafc30a873ec9d6397773e64573a1e8c1e64eb33bb55db78b3f97329cbea7c763ca7f77cda4db3b9a52406353bf66d9eda95ceabc39205abd835ec9a765d8f26bd7909160c5fd33e2c2feb4a98893002bb4f36b75014471c19b94b6037847091f608c13e6d76c1d3f38ce1c37873fd8c7685bef19c9766b30ba657fbbcb988ed9a8eecef51c55e6bf564373ebcd96376027934ed1d0f487a1eb19b45a0cee722210fb63d521df3d7697dbd24d9cd31afeb1e8f5ddf6c9e77d7e7f5fa5cd8a7c753bb6dd74e697dfc75ec9a25a99fd7b27a73cc7bcdebb35dd75df9bcde95ceb5a9d10fd6d13a22d0b16b2221cf310fc8e3999aa59a36b5ebf49a07d3e8bd300d9bd629851487f5097ac630861debdcf3d9b15a531d9f6b16b3d93bd730ac5efbfc3df2bc631f3e441939f4dc358ae72336b689c773d0fd78306db6669d36b53baa6918b68d9c6e3230ec239d53afdbbc2bdaaf4bfbf539b59e7f6c0e8f3bc59ecd6f363b666be36a73675acde6eb7352db23c7a418f60cd3329b97c83123c66edf65adc750778470fd7ac86d968847d68ff66a3508674f13864d18364da03b9a599f32d041d324e7b64dad5a4dfbdc95ebef61374542f39d4f8f8dd5d180d3344dd33461d627ad7a28ad16f5fcf38f471e5e45deeca6e99202433637ee4b24a7b64e12e910a2ecb98cc39b47eee810d6e176eddbb36f76ca3ee1d4bea96c4fe9cce60fcee4896b9279817863607ab7c3679d4ea7a372fd532bad577534b64fb73a1a70fbb4d9e98e4ac0f3393d7b9c2e9a0edaece7736d3afc4532bd9325ce15639764bad33bbf8ecd699aa6699aae52271295d045b6cdf5684b6252026bd374157a27174c837878fa663f1efacf2d79a24e91eaf07cba2b9ecfbb02fa748c5e960ff6dce8a65f12d1e1a769b20ead4fa23b7d9a93364d6b3a9c1487fc344ded663851d813d49850a7b77c525e50f4ecc1f01dc700ec19a00fabe72387c75e9d0fa0c3cf3bd7b17f2c0671f6d9944e0a27cf69762d7be88e4278157a8f78636050060f33f8ce5d30f614086d63ec631fc61e03e03b57dc39b41d6780cee1476cc7833b1761b83b9f210bb2f4734218a498869a316a8a4a066981a1869a3f9d8646434fd16868347411a8276b1589fed1a8860d2723b32f2a14d20e70303a2138c5f9406905fac62341931c889241941ef005a2d44b59ab48f453fb64a049fc2b4194478226f17fa557b2e4504bd6192a456a29bc16e27cd8c2f9202ff2a27a01472ce07827312ea6b40fa7343e8333896f83c4a92a6827626084518467635d849add14606fe10c103f9fbc04e2b9a066d7057e8754e5e1ccf68d9b9da1c237cd3b83434981266dc01107c737068ead021cdb091ce363cc5e707cb50e9a68d64763378fb4cf9b7f5955de8ec88a7a26e0a8b59020385e074d72e7e0f8fcb868218e467c46860adfb985e0f81e50ca5a45a2c7ea467aa992d559154d684229078565155d459d34aaea02877b4583ddbb8a2aa59433bb819b9165c80ca1e6ab86547dc090a0c9cbcc510696e01718da68d96190884d55778c56c430f3bd673dc3201475ead3bd1722c9cf890921bca7e037b0f982fb57ce7583fb14185a76d55c35211921db9056407fb25ba9aba89675cdeb7a39f88981dfe9cb212a4232d0e47db2ef6a3099cd6aa0c94b7663a35d5bcdab5b4d377dd634599fac8aaa2a1957455531465851f1ba280e2a5655880adc9fa11fd80ffc1ccc4251fca26e705f8ec001f7e9480eee6b325e60906b489bf455d3851ab317290a9316d653548bc6bbd5f4a8bf0de9515715162c15cd56da6a64ec407ab1d5c8d8012529193b703eb8ecfd67b1aea2ba2ba83b081fad807523bbd94818356f2119cb7e8144c45353f2f35ef9702e4709ceb2c01c0a4f568afaded562a4cdbaf00183fb54b3998df652b31cdc27e1900c75339a1ec900c355d327d5fbd790ab14928128f55948c6ba516f46331246cd578d109c455885415b61ca6e325b1476fb014dfa990582fb903483fb1b4dce8f8c264846d3232930e7e2dde9dd48326aea55138aa24dfa94e2883724936119c5118aa247ad840f7984fa9e029fad3e591678132285647ab4d5381a65a839a3c1fd1c92c1fdacd42779abc14dd34556930de993cc026dfa5b8df3c13d47e39db297cdc1f9aac1fd49a9cc9c0c19d90438c17c2fb66c08a173ceb9c7474deeb98972eddcab925f24fa4889cd747c99311afd2522e79c8b437d3763b5a78892cef4141f4df4a12a0fd7ce467178364fa77ab48c62f3b264e5f1783c23d9088c3683fbf3e62312d58a49f93059678c467fc9eb9e1c8430c669ba739733d5b154534f51df7b8b9ee853e37443c19bea3998d9c838547733fca23461100cfc4e51d06647093ff770c0cf6a4e54f5f084585351df21cd5161528c8932d83d432ba2aceecf52b87a6909537de09e8ea769d2cc992904f7211715900a488fa09db00cce954da9264608cd17d804322104f814fc4645c235b86f55328d52018126fd998af443c3412ba04f594da6728fc2898a1746d987651c2a12514e578b9918ee29ea8ce9e760e603778ece393739e726779be184024f17f4a8126253aa10da872b1f37f81de6c4bcc8c09070471f3f62de8750d592b10f83d1a3ce6e706736382b4d174c51b37474c2c8caba1b568599c048443c611c34893e220cce52e21923ac2a6aa226f80962948439756a18b4107f81f3c70adca7341cf4a829ea93cd150d9e2eb1a8d329cb52d168323d6a2d46a381a3d19762a859d362705f03d22759a3016e1215da8f3eb1a24f324b45d3d768e07c70d5d2e01c5f2a20b8274cb40f43395511f6a3aa2c7f006b3353db32d0d05051d327f9c5e0f7dc34b88b3e795198e91b8d009c7b087eafc116bb192dacc05a44810780dd4c1662c03919d2d068214617a53e71335160e20bfc4e839f7b54d40c67de7de0f70c856451d65179426e99706e9bfe74c57b53d1277db1a6384e5033cb07df921ebd477226ef3f2010fc9e5f0e7c2f3f2960687cd4c4e05792c14f0a47e35d86a1e6270596c2f9e0ac14d3e3f487834699fefe62fac475176df2ecc32fc6dda68150a8c7b9695e0005ceb0e4eedc5061200af40167204a9c8126ef9006bf77d3e00c69220d35c694c2ec010956200339b0e0046ba0c3180e808499f8442720030f6cd082171f3649a8e1051dac27ccc42702c116576c81083070c10dc230c018302035623793c517b2e08248165b783ec882067a31af176b0730a05e60e960240e560ebea00d61828c2be40aaabbab6e6a3c09e314a1944f260b326c918439855ab19bd922084bd8e2099c8f15610bac0a216f50821033e05c7f0c8b3014e205862f10c39938c5197df2847061627827856c212448bcc2ec27aa9bf3c554f73ec5bb7204f5fcac3b14c82be17243deb223904750cfd5fc7c4a4b29df84cb0d799bb83e6f9577e0e9927ff60829e45d817c139625e52dd78474f24d58b74213f726e4154113778a3a092bfc3b8c75988de77b389a3062ba19ee511435dd4d8e87e37eec2a4c3763eac7c7f75d89cf46d94e8bdaf753d538320089b7685ad4c6f1ae6d08243e02dee105bfb73c24de495c901b4c5dd42794e8415e30f519352ca6ee8660eab151de0d4a657abca5822aff1ea64eddc4f9709d3a0de78375eacf3c1cb104352deb1c8d77c49b59cd703fc37d01e0f902f000e07e0070ff0178760a9e109b7645be7f5912eb0ae100dc47c2e5c501b8ef00dc77c1029300d1b83a49751d8ef8e15394162eabdbfd39e79cbbefd725f55c3be7dab917e38b2fbe185d7c5fd654c947e38d955de9962a5b84117603fd6ea62da6bb99dc7c5694c1d5bfa675b8c7d5a34f1cbe5afa84fec22e7ae507832fe75cbc2cb50f0e96f5eacfb6483c59af5fe718af78c52bc668d923e0df0d1435bbd24d8f24aa127e5f3c1b0cdfd2a307839a5d09c317b10123ae2ba69b31827a1af1f026cb7ed9fcf0551f0f8774de95931082e303296d9dc00ed5d1889dec0179175f1212c31be1c006315430b1cec406319068820d32870d7580f1b1417aec5087177bf45cd3e0067705467553ddbcaaf41a96f4a82f12f5a861903867764c20d0a4ff458fbab2c15dd94caa9233c6449900e046113decdc9f8c87125fdec51d5f20cab48112675a188c9dc5e7524d8a636a9a43e2492621b59937f4141a4d559aa46ada5468d2578a0b66629d894e9b4c6e5105f105050ea5a28126b105b8732a1a88228234a269035128e7037c47d1b4a1aee80ef53d8bbc503714aa4626da24be7ca166d1439960b449bf21505d5315eb296a678360b8aa54e1b098a0e9aa54956c445569f38064a82ad14c1b3bd894a64d8f2018f53d4f9b4aca9b8f126625ad4bdaec6672de0f9b96a9813ea84a5a55966e26e7fdb069999a385195a464cefbf16c5a264e5435553339ef87cd44c576ae73de8f38c1692627763bd7d91cea3b6ce77aba76ae9dac3217eb5932c0c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1811fc26c51c3289d7b3c986e468633efbd9218b80f733ac2866926a2cd173dea5782f09182e0fe34d31417920a2b5a16ec675956f64814251f8cd5724191a3f2704b8fbac775651b5de03e46d3b401d99006f4a86d68487444bd3deba12acf7ea8cac311144120d80f04b23267c3dd905e690b75821c94179609e0b26bbad4363739f0053b08432291482412a9478d9b91cd4ba21a086d88600c948124f80302813315354568c3860d1b369e1bc16686d5ed53c94852fd2102f29991901a4d63432291482412a9870d08a18d2eb5cd4d0e7ca1a6d8366cd8b0d1d9b00f161251cfe62627262626262626864422914824528f9b9b9b26f58f06d2332da469a64822914824d2eb7173e36edc4d48041b21997e4820754624e48fa626a6542abd12e926e7a561da47c74448229148241249060900b0f7121313131313135382267d59ab48f48f1e9037f3843c9a575372871d1313131313f35ea9547aa5577a00080056e36664f392a8a6d2744c4c8c7ca930221f8f19c9d478a4474343434343f3181953c55031534c8c813102c07a0bf5180d34693aadca39d734f46689dd5caf9b453f75f3e8360deecb4f0b6170c34093be3084c9e46059d0ba0167e8bb801532aec69a2679cbb22c6949392d29af4f89a3e1e1c4c606d2ca408deef9a8c1dd857642073e9cb09c703e38ac4772861bc9db802846e43ae51f0f3cfd09017175232076e79d81251178ba1bc94a092aa52105eae7614f5681fa38ca55eace1ee128e76217ae01a32042e008a23c191969034a94b661c3b174ff5123622a8bcda481fa6420cafbd13f7ac62ed4fc7ebc21381a7d98839a9dcd1b82112c3dde109c0f9f1e55961ef56dc88e198d6e03b70d1b6398a9bc70c1620c36e820063746f8810b16f011a3bb780e0353d4600b35b0c20e3062d800021ba8680315c2e006983050701ee1d8830d1846a7f4a8e4c4e1d8047402bbf81fdc6d4094286f00e165065eccc8c0093f6ee47a82b308c738f2c4c71aa5761d1d03ae1360d859d032f818ddd45c8c340887b385e17d428c31ba6e97d2b1b250005d9d284bba07db657a2d03e9de7befca1e3d12e067a57bd334cd3ce11602ac917dab1b411378841240487c441238ca3064c55da194b5ce681fb077f4a8bb9bda010f6f811e35743b9ce5e1681c8f3e71b79dabcec3eeb0408f1ade023c22dcc10352d7c6ad011b4208e18e3eb1008f86875d5ac394779512eff36ca6fedecd553e5b97e2ba753db24edd0908e76850d6bbced1682cad2b05cc6ff46567b4097cbd42adae74d731a1becf80328851b8f80343dcb2472268027d402113458f60757728ab3b94ee49f9de8d3391b64aac4750ba57f89c8ba418137d44992cc230caf89021f5498e38c051f449ae110711077de20e6fe04dfc51e34e5082a3b4b54731be9750df9de4c09ba25651dd8df7de7bcfb22ccbfabbaecbb2ae9badebbdeb5dd67b104208231de24bc988871aa3d18807672f0a521facd1e683a736a3c6b539d45ca3460f8df2b9019d1d19a1bebb4b08e14c69ceb08016aacbd2f2d88145cdae5404745df8986f5849f5bdef7b81f0c1f7021fccfbfd867f30efe53121fbbd3c18c82388941d3d827f344c1851c44d097e2f0fe631d127d9e5949e0b307c09c5c567d4e821c61863a4ba638c718a31c6d7a843bafbcdccc4c73b17ad30d680020a0a900b55bac6a23674b5b6a046c1052d1a67a705108f011f314a9f51a307299d8dd16bf48866479017e487ad0c15c21a6e0886d083dd4c144a16764e00630b788a429ac82428c08a19f9bac1d3675751bb6fb8b76d5883736debdc08dec94fd3a18d08a254ef6562741c8df72d7700f7a71b3338573ff0f4a614b06e54b7224193e9cd859ae5d4599d8e790053206a4ba051eacdf41238e0a97f7cc4c09308d7c053166e70026717044f5316375ce0cc039e5e3f8a432588155408edbae98e4728e9a1bbbba3c063e8110f1d9fbbbb29ea517fd457de5b4af99e7cafbb71778d1e413b4a3141ed4308a1e3a2876a8594345e78a31f7a0473f577577d7a7ed55ff595f728fbe45d47ddb2aacb7debb3ada4420800bf5bafad2c5f7583b0512305ceb4bc213c7a04ffee8e1e79b0a8373d4a49d0b4f40914030e3b60adfd3271a185a440937e02b07b89f3c1e1f7defb88871ef5a39e42d92082e813ca518e72d299f4a9cfc90661537ed0a21ebb2e02bfa7fc10044c09e2d6e8517f2b43cd23dc3dfcd027d9cde41eb8e8a18719213ec0108317d3cd10b9424d02a2d4ed0ece3b48efa07607fb29d63d9793e8ae6eb75331e8f5e66b379fde2cc2ee741de83a68d2378f707617e573b303034fd7e32dcbb2a25559f7dc7b0f56ae7ad57b417bac832613622470342611380388c031a04d801f7651e0e9970c9e6ee1004f8731934bc2d1989e9981ba68703fb296019b4ca8d4eb178a931c550c910c000000008315002028140c0845e3d13c0d44710f14001083aa4668481acaa320c9611452c81863082000400000000044004405009d0b287c5b387ecc55b5e4329ae508d11d57a1151ff5676ce1a779492bb3735505962154289cb3d228a43ea5145de09140a7db15700cfd98bdfad9ae5accc1a932a977ee54642e609a2600d6cd97915226f166a1676c5d700ff558e9f2074b372a2c018babee2361aedfb22f29d6ad2bcd205c599f1a32ea0c7dc7c95a7b8f45415cb859b26fe93582057fd299ecffa9c21b5c50290b31b6b4f8b6c71ae18b19809df68f559418940128cc2da712161ad1ff73e94d40c90570210c69f519110ba3ef53da936f3b0c873a81ea9440a459632e5d389b620f60662826a5c6b13fa0a9471451016e4ca5155dd1e6c0deb9f43caf912c1f9954bd43c2e53885ed06eb4979f94cff4f2c0d3365583df99138aed11fb9f3794837e1e689f1506b2d1f42b4a3973a5bb4f6042576b346fc82d0f96ee724bba0ee2fbb22dca407524c926af98efe0540baf965e399e37fd2ec03d7c61991c38b1dafabb7f8ceaec81c865e7d5bd09e4a398830e9c887262efbae68ff9cb769fd3ca42e2754e905c07f2c93df7c46b0638e7977375efc3891447a94c232f60b26fff9414982417f28db4535ff437e675562446d8a5e6754b6250556a4be514746da73772a8b46106722a54858122616fc87edf1667d7f6595b3a9570eae384abd26905983279f31d7fdd95af7bdfad52f882d3ed86a9d2d840ea8809b25b4fa4dd4d3f137827b5e3835076136cca0fd4a1748a6ad902cf574ceba664d43f2aa40f8d43d0e90c8aac6695b0214e1ca8c860d9a72923ed556c2b8e07c4597b6d0248787d250ed18165ec569a55db1dba53e6298d4a988828f01103d771ffa87d8d52621c92690eb1e00f4db3e3835c797c4036e2041c2e18792740ade815a4d68e89fcaad0738850e9591b829929fb20a103d39f182fc98d9e2e7081dd3e6625547d4a1bb856cbbd4c51b342c74afd7f441f51a77705bd1e633dd611439bde69fe55873c7a062fc6ad81274339f303220946d30fd31c1fb1c0b7c90770b48713de10d7213d5a32e497e19b93f354d3930357d89685c6b660d3dbc51827e30394b4b4fd461475347ae136d087d8290c1583f825146acd96e80faa65bea4a8ead7813fe8573c5006858f3f2092fd35713fc587e1e2d1086148cc1f00c9b3a48a70a2a2e3b00f35d7dc9052df115827d885df7ce012f44172cf11dcdaa2d5ad1597c80b61bc501aa0ba7cc761543ebf26ae97aba68c1e36f2faa392b87426a9f4e7ff665ae4b3c683caf28342aafaf2672bee2c31a7d1f308f577e4a27bc16f22698b0eb92ce1d593fdc94f5acceab07b104eafe0e8ae0cdf80d814b178d905e2efafdf298957d102ee15da78b9056a77e104dd01ba08e67f44ee8d2494fa82b8a7e87e308dee9ba09d289f53ec278e35b826e617aaced455ce98cd17e33ea863afa5eb1b689d5a74fff285ea32261d8aaadb8987d00c8403b465b6a4ba14e6ce0885ae6185b277213d68b669105b721aadc96d35f0d7c788c39b5d2dd363e3d70c9ec00ba4cd691e080c1099fcf42189b751966d9abea9b68316bfac8bc78829b0916afe630821c53e057e251b42e04b8f9dd851f4790e3270d68b61e5aa60fb1807388c22ff2b197867ac3f8bbc02df8e2aefde17341ab865ff2d0dcaabc6de97a2772fc79c41975e6ded2d05e8c17fadbc05486525e2f2051d6c2e051cdc7bcdefe551409179bf67c547b64fcae6fe75a226568d085229b3e8fd5ac2c22314787660a325882d8b2cd027cadee9915123a987451e0e13e024934f4918dcf60f058d286839ee3fa5632d9fc9a5041d28b25eda1835d472c30addf43d190fa8a7f8e3a2b142c8afc8e34cbabb9a55f8d188e0e1ca4975566599535427f62db94a7ee90889de2d1d50c919046f1e788e3b120c1eebc145d7a6611132adb41f41da94328210b8b65f61de336b4d31f2c0278bc7bbc5c39e847ef781d1eb4478f47867c996f7955cc1b960f598c616a1d8d6308dfeaba0883d6c67f7a1b7407e82002e6940074ae803a9db7e22e1073a65e628815b5295c74ae7acbbfb05160ddfb81c2b7032b5f0e94be31f0030eaccfb968d0756f45e6d404c0858d942dab7b02c0556071a0a6752ae47d33b4396c923a4808df63c9e260e428d5e6d7afa1f841085276ed84cf7088f398b554cc59fdfefe705de2485f369964a701d784605412b812bfbfe391f43a2ca5ae1e21c009945a2ca60e58b2ccbee2ead5c43d1a54312c76b7d74a23009d9e4cd419a07f946aa933d823a118baf7c03efc3ba2cd745c0ce6b03beb13515ace3cea93bed53b18aecff1c73ec5a5bd438446eb6a6bcf165008bdf338c7d6d90b5f786e0d4ac5d84ad145caba6a91755c470c5a0f57e993ee36df0a75cb4cac5ffcbb2e15bf1cb9e6aa9f1d032485b391e196c49d661932ca2a8aac5e61e496fab1db5bb1afccb914850f09a61bb2c43a2bacb266d3d592e3306a9c8992c93897f08a6008bfb40b42d4adb33061fe4085f7b32509dfe074ba72ebb2d15b80977eb799a187561e340f975a599bc90c119916181830cc2354a98cd428e0fde1096b32f9db865daaf0d7186b680d9c0bace6b3da1000a2460d4d45e07f33f6b96c41dc48afe8d8a7fb2eeadb06b32972cb0658aafae96b92486db194f440fae3feb1b8da3c15737ab33a99c81facbd88e6902f8ef2ad2e6042bbd4d92c14415cd46ad1c04334126ea27a788a5ec52bdc8dbfee16d481c94b5d8ad07f5c41c1fe22c835cb4159c022c964810e3aa098265bb4a6c4801989dd57939ba937a738cf2198c0230af190c1b4a26bc54ab89f2068a01b1a432142beb142b8a739ad720147f551b3ce21c88a0ade7006d1270fcddd138527019a57a78422fb16d0f15bd91948c53885cad424513434694ad3261aaf2ec7d9e26e19c57fbc5b7179900f691da4a1be3fd3de33bf9470d6aa08f89d17fa252eaa50f10fec2aebf1603c168120fc1daf9cd156628fd0918215eb14fa9c1196a6b333e66a2d6393a46a446bfc123d13c66bb9d97863203be90a6a651dbb38ef2a49e71334e4dc7bd28e71338cdd823058cc2765fe004df72d5cd87430291d1b716d1e6d6c5a785d60d7bce3f78906ae855418c0fd74b59043acd28dceed54f1fe85471ccf7e645f616c5087724154f6b0b38a3f3c7480c6c688347eb2928a19ed3c0a648b85c1e2927ee875a112cabcd82b787cb39094b59627643b6cf5084547e85f2d6c8ee9199a4d8c9ec0e5084efac417e3bb76124c3247e52d694f0833a7b8218c537f13ba3da7d9b17d73af0f479e22d1c4b34ae52f7feca0ff4cbfcce4abbce671e3c5a3ab4d2965e00e83a285ca038de9fad76a22b08002107f309ce25eca56b0bc9e8723a3b01831f4c944cd4c8d5f50e69685bef1e844e57a8a1d3b23de79e122611bbbd274f4964bd9b8f3b42675ba39cdf76f185c2018df3db51e9aaa790f4d4a67ac6146e2e1c3d2c9a22dca6ad12e9f9a2ceba85b6a0bffa0afdb9f82800e8a7d60fa98257254c3128a3bac56523ff1c8adccba3cc18ec23bdc86d4c113fda9267485d724bf05a9312e32d79534255131d85003f45d07108415070b3a244bbd04bb32950751271478a09fd5dde3d21b644cca7faf41274488661d8f01284ea2fc1b904783d73d01c2a07d8de85d69e19ab6c5fd4d416f37d56251d81fa43589eb03cde471f6348ed382f3ce115550f32f63eec94ed9d9891b387072ca48f418869b1a8e352bf9fd9a20fae5570d8a764e9486791f4abe73566e17125ef60e085db1e854aee61126867e8dae34e64d3f8fca9f1c01ead944a5df213c7151697a7f73a1bdcf416cf699e204fa37640d417d61f0209a0f55a53bad478b712665760af18e16a3b73abd7aaee1ef2097970718f41234d500c4ad3661871fcacbd9ce90f916061906bf1e56434b40826e744d43b81eb320f544157d99a17c35d85360b28417b643e7009a9b673e3ff14504bb45a8da3128d92b78d8cf7e29c9449dd7c1df3447fcf234b055a457d91639cee2dc563b3398a3b96d879f1c9fb44fe68926227ad48ea4fe9d9f070bb3649189e3672144b43ccf0aafb65e7e5160f852a30a2efd85359ed605c7b3b5740c91b582d4be8f0ce4c5410d798b7c0ea44a0546917965882c9aac272c138f95cd3c22928106b03a51bdecf12aa35daa2242ebf459aa5505014252b73ddf0e1dac07f8252be17451f0ae3c32a07c2df3cfaf824cea22c861cd8aa1801fa9b588afcc598e66996146a5718189666da602e3d1e8ebed6627a72bbffe35c64590ef79cb9c9447af002c10ca5f0546aa1e537fcfbcf6df4c852b71d63427eada4d2b29d3346645cb381ee4345f45c3dd5712374f0ad8767a05d5f276343ffedf4300e62519b2eb9fb373094c6ddaa4047a5281c43be1772a443d815fc89e8afcb719b8b5255a6cb05fd3dd5c2e0d601705f1e7e9dc714cb02c7b25c6532c8de79db37f962ed400b49c0a5aae0f19c3ed700006be130912daeabff7284da1f8b282c20bc0b515c5a5f722150cd07cb872739224e5b60f1f305de34fa04040fddd9c65c0efd5409ffca387c6692eba8936d0ded2909c7129c0991a1238768097a83885750c1cabc7a32b12aaa36d4f48548333ab8eb93fed0df3269d0c4a07cacafe088cc1d40e80f2dcf752efcd35da2d62689f9a4d227d83b7819fe0fb19f5d92ad586683f168b8b1d734acd1f9083b1083c5af9e109819407589e7804ca280e1ad5e0f12a70dc5b5aef283aed2d45b159ff91eff2ba4889ae3a69717a759f331f205e250219fc96d1f657abe1e19ad81978ab805813ff69dc61ee4325c7ef32995314da896afcbece69fffbba7f8a9f8aa278b135651988821b5dd68674343f4451ba1f3e9539479cd420b13990fc335dd1c39b45a7fb2fa06d0c6f9e82b7742ddc10ba88a27f8e42134a9ab28f1b58429f7fa513c7502eb0cabba701d7b263fc22858fe570bf4705167492d7e96c516643a69600539ceb13d55d90dbf3ad0993c41fe5254d0a8cb5e54d57e933541f302d6a169f0582bf989828e874810173de8a4608e8bab4c3336ffc8a0729b4c229bb3dc13939d1d7aaae1fbd80b7d24750e6575bc1b4e9cf305e84e26a2c82be51df577b3d9aa97b4f1a8504cec0f6becc3039a844d02797e30de1d77e2b237b34289784fc06027008924f57974e640250214be420ddaa5e01ff53d64b14f87fb7b9c8e66742a2a884057d04e919fd057beb9a02df0d85cbfbb6bb2b03ac357be826ce01604b637210eaf45555dd1284569ab491d7118bff85317a2dab04ba07d33a4d03d5bedd270212209836fcb812bc76ed623e1864766933763bc3b52568d4953e9b71d11d563b17e2eb00f4c52d15f8f8b9b9da9689b3213e5c78b54fa739696e5205e5b726028032e6ad705385aac24485fb41370164dc138e9618ff014e968aea34e48c4e66677de469d932596ceea313a32083b588b0f547d90d77effef2337da50faae845b31cec22aaf42b83dcfedb6ef161a5a9c7a654db165fee73f034ed34027c14fed2b142ef4ef9f8d62d859f8f3adb33d10217ab3ab80d97a83dbc029a98e68910ad863dbb9531e8f71fe9cf7f2d963e450cd54f0208b288521ed38e018a7696599161e1d5adbcd441e803218c80bd4891781fc86d23841e706e8548480d7246080f171596a3225102e54fc0df8ba6bae40832ce84cc85c0969c7609450d7cdf4ba2f879041e2f2068f60a182fbd0ebbe789299bacd96e0147404040fd01405912e5ef03faa173388764ca7dc18e71ab3a67670416e2a1c95d7e5c95d521244a2d9200e297b9df74d0161db03a7599cd0471abde5dc2d5010b58cc398679e6b744ada42d9f35a44bd3371552b2f1882e1062bdba56fb78781fc63a7df6b8b54e62301f1f39dc480a8194d63a79322688ea8dfe8cf20f4d9ac309d38d1eb96e0bbe6e42c944b81caddc73f27575b5bfd903cd7f97af8194351bfa20a34b8c57785a7fcdc466d8c2cbe91e79b63b701b8f9230c8048e10f415f0d5d1a11b8d623d069dba202e80ac91f8b38df6f6d111b4a4c4ef42674511e8200e12819250bbc9823c238909ba4a5eb904d3cc292024a0683b05ff6cda69214a45d94362d8be137c20325a734ee1cbe23009ee53f81cb33b06b3cb75dcf54484b09b485773ecbcda9737805730da9a96c7af047c8b39f090f0f0895c40122c9c44a51a884d496c311fa78db2eefa1dd3f20c49f1e96577feb03a721a766b5c937e9177405ce398ff1684d16d81c1ac6103fbf674ba7e300c9058d895379556ca3410010f82a2f1d3aad8c8a7030eb8f0b476e6cb30ef233b95e930ca4cc91433eb4fb1e2194e27ad43435ddb434c53798f6435aac754c6045d5e475633435d02b1d768014cb68c0c3b814dd9eb2f60a3e9ed561999284a869c602d6c7a165e2925aed38d5301f9d0f998682b8521ea2b0805511beab9bc3f1605dd542a3085572741651844482919259ff97384b7aebc6c31319f0e625e484451ff98d761b88c71eb882eaf7ebd4e82d76745bbb5f325ee4e14cb32da1b8ee6fe8e2dc6527aa4646fc474dae2c5ced6db52935fbdf4be575eac7ea2d84613eba9bc85f112306a9305f2eb26306f8fae28896eda385dd6b70be475e0032e8da480d3747848cb28f8031a8e84553832a7a3907876af9e19738926c0f00f1531ec3cef9d6fcd75c230161e8c82aa165456bae1e465e4c6d4e24d2e088dba5bda70c9dc8410250d90b5ecf62cbfa5e304283a2dd3e64dc50d407b47c936c8f60e7656b5d3bd34ebd93215775fc3ed2a9fb6567c2b9368c6a11119ca0e129be8c5afaf3a6fd82e59d8bce1c4a754a1e7b71d0461bab11d7953913fef161b92dfcd6b6853217c846fca97dbd9fa9805d22a14bbb9024e5fd15daf5680b4b2ea4be455ee505a3fd0feb6b35b27620c0fa502306c729f141b0076e37bb5b65e40f3b547af489e600834bb924437b88099a8d03e55fc2d892098b8f003c3a9f9e08a4ffeb1d755557a0baeb23043277d684190823751e9d6a710989c775c1634c8528bace9190f3defa5e062bab2e2bd1c32bb2128ae437074ed9c9b2bef9761c2964ed2ab2fa41e540b3fdbe3862c4004275006b400952d27043ad270cbb291a291ab6d072317a079571b44a6f4e650616610141be16dd2a3ade66151abad59568b01ac8293b39f30c0d157e60c8712ea29e6c14a5988df7c090986dd536ef86373be9b8d86f824886bd86adae775e3f56d8222bfdc32b81270ce7dbbad0a07c686854f3528bcf70b2e5a8b73444b0b5c235b8b52ed80543dd551b6fec82ff8835bac25f4936c598ae7fbb2a95061a5abca8c6140b936fdbf4fb02b231f0dec15e5dfc4c7495c0177d00ab8c6f6b4dc9c06319814dedc54a56a54ed928b2afba0eb27a31746a36a4244749380108d8f7e79adc69429f44b609ec90ec7d03c225da789b2138f128a7b8b283aaeaf70a8613b2588b1aa309408e8a7c051623413b4783219e0de793657e9084b918cb36c4b277b08dd6835e810dbf45755baf0b3a084913d0891b27f931d8f51ef58cf644ec585a87c2f8b35e5c061bcc366d903814fb44b72382ab080244b3fb4952c6889c926366051ba4523dd4f4090d436eeb011b2e1a1560f10799431615e34666403ba11735e031ed5b231f92d7750aef395916f3b32c2376df40d654a46a5852df1d4a20604230eee981651dd3864ea1f41a2b28be8459cb5b7d0752d6718282d6b3554fffe6f85a6483a9a296a8646e4528ed55ce65494e9b981003821021fec68c8a18e64bd542b8f96f90000d28f2e0939ccad1a4f08ac738c598da05903ae4490d87f62a7f48acd2336799b2b086c02bea677e979f0d5065956ef044f491db1e754770d142fa7b68b6d7b0bab8d47d65da27635eff022738973565792544089c096c43acb7173451a4194899828e6822ba8d6c0136c24746d035165c58ac70b679dd79108ea420a448c1e74aee2248a8e40e67435e692956da5ca59bcf0f7b8b920dbfc1547f2212d6bcb5f057bab67a7b725dfcfb01315c1975f41be545393c70fcb619488b5cab06823c4df906960845224d57a5561c3aeebf057807522434c24ae41bab2d2f231ef4b479dec0107ebeee958a3f35f10bc2ed7322a321c99164bded56e9a607c8ed431028d46fec95c69d7fbe4b122d4bcc730f9dd8bffeb94dc337e7308a692ab23d7c6eb9b73b5a4239c5233b13a22fe328048f7860f6a7f1ab152c3b707a040afbca21f043744dcc10d1fe29bd594b412fd545b8d2c8fc8556ca540ae25e80e6439ec912a92239c833408166b33abd61adf17456915f2b82b72c714c7ab0d81d91f569a03416cb69c76082d44b09d4f3be1493b7831672582bc44ce4b85cb183694544f5661ea16c6a68c81159d3e88acc45b1aaa4a04c5e85e54896051171ab004f4aa159896d297ff903a9cf03a69459a4a048a107f53889df6edce150a33a0100e4d08814325fd0ab21251ebbe725dcfef4377ed3be752c6d1396419b1688c3a6714494c059e1ac79f74ff79bfeb20e75173227980a93862f3b3d1493c86a770b96afd17522a5182154150308b5edb5779d453472c5341b24de61453004c7506344e3634bc48d557d1c96101f3d15b526ce1875a0445b84ddeb74cf7897c882a3eb6357c328d95b0a4f422d0e1a86957434424bd86944026f0a090a281147d6ea6155ab05a1840d836b49687135a92228fdc9a7dc48df50505edd0a85c141178e3eb08f81fecdba02bbd3d07c3ae10cc7aebaabe58bbd766c1108c48df7f74ec4a5ede556b9694ab779def801b03db5859427d4eeedd479d8d033f10befaf3bbc5cdd457c9f79209cf8a62ece3af58478340f7be038a3b8187ce17c86461efb12cbddf4bca47f709cf9b04933fb573f34ee6fd5ba9972949c4335e8316d2dca95c60d7a627300643a786197f760c48b51c6de36cf7aac940524d945861102855f8197e0ab452cb702e60af1267332f6af0dd8115c7c1b1b31d58f412383e04ad1abc69151e2f8ef2e570f96ad8c4cd18e4c82d0601b4ff6f065ad545b161f91c7b52b26774314462edc04de7d1e182f93dad30b3cfb5705c372bf53b7c296bec3b60a62351d53bda06605ad236aae139d654d32daed08be69c22c8a2d7702b703bf9c6833e8bb3da9b9c13b5d8f8150cdc9031b3a923c781ee6f74460c56513530f63a11beff2981804ffacdd7f88b30dd209c70c026d11c043141478db4ac2daea8489c22b64c21ae8cc06fc8edde359660a030d34e9d80d61bc025c2726af078c7a0d7ff6fed1b704691c96a08e4c0058b61a95975e204668c31a1133d910db9fbde5c42ad39f47fd7977b0a355a762f1e354e6f3e8b8baeb17381fa54b454ccf58973db93cde793a7297071e8d5b066acb7d35840799a7d9c48dd5e2f507db8a0a8105aa395965944332a366b1c862098aae5d2ed077812fbb655371abfa9e7ca7e9be5dcd7a1cad88158e11421e48e3cf636f98da8e6150470eeb05ce58c423baaa36ab4fe9bbbfe8cf9212305bd8ae8522c40fa0dce6ccc0f603689e820f9692fcb2515b0628fbc060867c8a1d630176745485bcee1f7c2b2890e5edb4075a9062b61ae86c61c849c2f2c8eb819d92a74b725e196221526faf73d0f3392a73a2f08b3bae04c987240eb875fdb8f9fa6452924af4deba6e2d5b4e1d9f48e6e269b3bbb3a51b52138758b42e054ff64d2ed2fc46814037acfa602517abd3b0d4f1e13b8932cc2a8e00d2fcd28a355f09a68ab61c081593b6e08c57b6026aac05179e430b346434206d76f652a174b3b58ff841ecc0ab456d36fa14d5b7537a240c4c892bdffbe0de769ee893d4d40fce063bcc07939c6cf03c4ae866aec22e42009011d35e4204c2cd48a1f9881226bb60a97117ed80915040adfe5be08138bb333d595fd87f242848fee3ff646eadfd3901f3bc793d939b82a2eecaeba584c9d3578d08c2b74f64375468fccaf7fea811097a06b49cf8009d979e676573d2b3a2aaabf8ad4e2a388bf997e1f69f01eee7e25da31a857621f435abf6445e99112a65ff1223c53af75bc946748e1269b460bc6b524a42ccc459af93f1b3939201b67405b67562877bdae3d2015397ecd9619aac2e2797a3981a3b47e385f416420b63dc19b0ed711d1ce4955be4868a1a2de7f520d2e9c43889e8e007ded5c4686cef4b05641848f86cb0a7a7fba932991d31bfe9543405d621a6d9912951290f581680bf5bc55e248b011aa53271e80c0babb2decaaa5ad942aa1a58cb34501f74cec9106e24e85f215022aaf2dce524745387e2414352826a0168fe8e2d32de23668aacb3408b1d5afbaa41f29f8bd7d590013884278eeac13be908c353898d7d973e04dfdf0a8280d3ba6f88bd25e24100418d66445b92e580a645054c7c9e75eec11075b9180bcd8f68549b6c1581239d7caaec4ca85ee6cc952aa596662731ec7cfad30b81e7f56bde6add90548c271a6d72d36590784c511af5eec5c726d5bdada02d19c8b3af7f5e58768085e3e9796ad8081a83c233aabaec0000b8ec674cd9a0e9f2423528a41777e7ebf08b46d1c63a3b2b561edf47a88b1b549578aaa90204f6a908b7d82d42f31c8784e003f699b9765523dace44018b99372d8c82494ecaf7523ca88d5cb6727c8d51204a12d4af0770f9936fcf19500ad6ee51ecc39ba43773044dfe6ccdce6b2d6de572a3933013f8dc10c1bb863eeefda511521df366508c0be55291eaa0f9d06f67c0e33a5258c37c77986e9edc4a3c78c2177b6ea726bf2105b26b8eb80eadde9f7422af016e3c68d51ca1804129916f3a1f60ed21de2a64b19309d55462907e7b8b65e6f906fed6dd17c410864dc2519e61f05c604bfe0a8394f9334e4dc2cfdc3f21634edee7949f2ea8df049a7f71f7457c6014c40018ac71d7f1611b41decb20b008825a6c4dfda77a4d46c15f8c650001d6c006b36eaaec2aeadedf09bac1c9c0e2b113125db8b956634ff92ca32d8bf50fefefc65f5dcef122250f1e35b03191c51b88ebe413a53b4b5dd67c98f39239070550cff49ac5419c07f040b977ca265c91745797b98886efe447b487a8744d52824d3264ef60ca8f08289696ae42d85868daa815d354bd48eff85e033495b6ab596e341db75fcd50e53c72ddbc3f66c8c223acddb42336c0b166f4d2d7c4c20acb1958195c2459291142f5c0ae85e97e37d0444284c1680d777321b7739437e5501e1f4ae7181286beaa05b353dfd0bbd4d577a831679019baa33430a26195dc367d0512f729a490847a65557c4b20a26afc000bce439176396e707a3292a58420301882d9bc2a0ac7bd6db0dec3589f673595790e86e3d2188dc19f60c574b1938d189b8a0a7b9113f453acaeadaf975e33aad43141688fd891cf33eda6f89e4529cb65101d66c89b412e777ac95449b47bc6f9e2122d21cb1c466c255d659826d44885f852819daa3175cf0ff27e2c817ca2f9093f9fe871dac24e14304c18e9603af529aacf40e319d1c9694cd1719e81d131e4e73285864c8570553c9fd31450738c712ba0a7a03a128c1800c68b9d5ee2f3a85b630584492ce666a6eba4981364e84b03d282020719cdd8f2737deb1dda6c4b879c26b06983369bb2a2fcecf87d59fd090b8d5fa6990103a7c9370347c48440147ee2fa0a1b9f4b9e2ac286cc0d050a7776b2827d71e2afa8ecbbcf348ea7b16da420c1cb11bc69a5e48cf7eaa06df73e22bdbdf535fe08de4f30519e490253a6eed88b28dfd833a9f0589bf1764495c36140ae76e834367ad9a67ff86f31863573c6d1bdf394164bceb802cbe13e5b826bc5a80ce2867728318c5955af4b7e5e2490a7d85818b261468135db65b51471a79b20d2c0c064e36d1e56edcf8ba9f00b4de0a9db53d09bfc69d9ecb92ec6e00e7c7544d8b24f80f41d31d6d46f77adc9e2a2f033d849a0357dbe91a5d09c22e5d28bda1a9690055631f455e785200e143f799d0ae7bc5309db4aa70fc862694a6a7157e24495a608b6005cae1ec3fd85cf42b454c6cb256bb4c4c89a24f601da0cfd5f2ad3639c7b64dca2cd34adbac10e323c98b004daa9557a1358e6799751225d2ef17e19cff4554bd984cc0dc513fa9324da0d9f02ff0ff374eac3ee9a4a9130aa003b1a33758e3af76d60b29b7504afd889d49bce08e8f087241eed2739d69cb0c3b478f9bdbfcf56e6370ca8ad3b497ece35126e72a17fc1cc13f04d378b181f2ff36edfc12edfa307a968fa81808f41f54fb53ca56a9b6ebcd4b2151769b1f1cb99441422fab157ad9d0cf73bff4cbb8f2a25c49f743232dbf6cfd9c16b7efbde44cf34bb5ef09a325ab7b54099a19da796b1d4d7b40b6b28ac2f073daf76afebb3a7b470e1e4727860cff464be8bea5b972585503385905191351cf5e61a656905d69d9d4ec9db080409d27971c9a1ce8d0d28110f979d159f9ef078b4062af1f28ece11aa986ae44fc60364dfd28bfd5f3e1a09b9b56eb4227e8502d51c81b656bda790e59005a3d148e1e997b2d5d14733c0b34ed9d46ed73a6ddb1035c0243671fe3237d0a7028145c460959f92c42ab224b0bb7596e67da3cb0a675991bc095b982a05422c4466d750a032820f74a71e2ad6647afb4cd5ad3a95052fd7475570395de6b9c63cab49b38a5b9876af515479377a60d8855be393a98d8abaff17da93e160e620ba51c468df476f8831852fac7567da12ab41fedbc9de845c2b1505c7a3e441f92baa035f18ca20291bd8492721234450e9f89d5331b6e613dd1140837f8d0da93fc18bc3a84c71a1a68bdefe7abb6c909b69970f2bdd1a97d581c05a0be87c30a35d8b6d10ab45d87bd83b7a197bae86c0d7fc852164e59273c918966ece478750a74c414cc3bec0a9f62ad0e34e367b162ae99c9fd8af2fbb1769fc1aa079c232d79e7792e8edfd0246b2e36d5f576311567aeb464fad847d90497f5e534be4cab63b7319dce45be8ee17b8c6ec11850f0dd7243e73452ba8fc359251bc33c3051f35a04a3a97b2fa40599a9f263c451c9cdafc376905c8a558f622630f2a8af9a1cd6ef987e097df0ae1851f949cc8fd050860258186d26e5846819a3320c151b0dbfbc4aeebe3eaf855acbcc07ef16d1b36c7d73b9ee802a91bcff53b27fa36c56e9856b713857ade745f7f75fd7f19c6b68b22544257ddd3e677b41a0e084b1fd71da53a001a2acebe65d23bde158ecaaca51ded00710e35e8a5e2cb611fc90380a8347b0ed8aa4efb929ab53a3130b2db983e7daa79c8a0239862e328f0cb0cbb94aa115fb574b0a4ba7659ceaadd88618a2962846e0d599a5c8857858141425e6642638dc3fb1e726a07d5143c87ff34f63fcf9ffedfb0740a1f459ed8e84cb1fcd9069e227a823466488a14eb9bacf972116b78507f49f04e402c772caaad5df672e0a3ff2e3ad84f18619f121aad9d940ebc4dd9ae3d32bd2d70e8dc2dcccbb027f10ac7e09760db614099821a25e9b56f5b569d79b16fc4199f2fc3bbc6b1ba8bd8b5095f949ea3f3298109afd2bd657c2f1997aebeee5d7d96b5628e36e2420604cb1120e09407f2fca0f0653e7a4096e787e11be9aff98f5c079a9f142f1c0536478dd3e4df34d2b4dc60d3bc5230714e151382c3cfb8dbf534d020827325ae108cdb7e028539be14f2d1e493fd12152c35f1d58316e13571c98b32bcdb6fedd02ce6c31f9e779a98d35b5bfcaddafb3478b58cd727d613f7ee291a36a22b65fa85411502c55d7ab741304f80a7f85220080e62b74146fd3379150f4f9338aa1e3a28424dd30e2663cf2e0650f71b4765061de33b406de538290693aa41f4e1f887d0f06149606441dec29f87f813c2c98af1ad849d6e1f98d8f551ef45efbbfb57b81e99cdeaa8c463fba80cadd5edba36fb60f09cc4c78d250e7c602f50d44861d6df334b82a7bc242359fb5c4adb02804a5fedabf82d382eb61a3478b8016980b4fc94d2138f05129b649eaa16c2aa4543a243395792bcd66c92ddc90735b89e42080b48fc3169c12cc3c0acd2c77beb1eef262b6c0b0677c348b61683cf43438c269ca14a7e38ecbf3cb420f29c7c370b64a5a48f15d5f0f0c61bf2765d80bfd559c5aaa2b0efd28e40d55b548fa0e275e24b5fc26f946fc9ebd72abcccb3890b541f264a4ec44459ec074a0672bfa59a23657dc5cd340b7a5a8f12581010fbaf35def7666a083655010c88f92c369d1216ce84888614c734ebcab3f8f31e3d2d3e8daaf2d1326ecbe8d6f22e4cc21e60617d9bcec01a8dd328774aacb98e3fe3f98c3ebbe1c6845d4682aa7a559c9897e40c35025cebf59e434ee560a78e71c5f362b71a14f649d9761dc1ebae4388b393e364b78f5b3ccb6dcb4035c19406000851d3889850c4b3b211dda22976df236ed0c39aa7b5cfd2720ae51084a6fcd4725d858e2cd70e876a2272c6534b2de93302c0a1382749431085eb11d29e5eeccbe919fb1f0d44b398a2d2f5d61502b568d72735adca62ec1e852ee6ae9107d7b64b2c152e374d10b48e35f977a7424635cc06da96c6497b8136b5603347f08d7ad55c6f787373fc6113f7a852e2abc1f3772973563871b2c0137e7853833a3accdf2504546ff4c594b6f54ae87c1cd54546e4b7491601a979675e56c14050f9ef024ed05513c58ce50ab47e6a5befe730e0fd995907dca1a7741b772b632d09e2db9c405a0468802603c90c01e8b2ac0b82f37eae3bb75532adf0bd6c1391d560d249d93f5aa6cb9d4f48cba823d96fa53cf79c3b97ada9f52feb4f284ff79ad3d5e420ea869cfe93e719ac716a5eb49505c212c6734014d38b2eec75a0ed8540adac662122928d906c6e47b18d191fdca9208892fdc3b6a0303d5fce55ae4680a2bd40d0f399bddce5ec15de65c0e211851e2aa2c6a98f247989dea31f230f293615bfafaa17bfac176c9a0be64f8ab822a23ece949280ce06ff9cf902c32f1854a68314c46c6d5bd12fcda8128b9c39d4ecd2b4bb6118016bd71345a206271ed286d857ae53063846fd8156d795bea19c42996acf50a27e85f239615d963d197b9f5da290c0a2549df196185e605c7cb9a3fa1e11e07e07ef3243cd57e236c3f02d89c658e7c8f3056f864476c58f71681229baf0d243a658d553a8fb54fac932af8f377d608fecb6e52e8355bf36f00c4258f81916c7083b51986af236333b91d245fdddf027702c5d52a936775c8b99c356f1d1ce8f234d7bd6fd3422b8cdb980a06fcc499436b2cf8a6f362a2096c0ddfd3ccbd787371cc5e4c6b19d62cf1ff0ebb29082ac3cc8f87b106d22203b25c8a0d50510e960e0f13fbdaf96bde101b92bf0f4d62f3d275e74892b5195504e616180b23f84e0d01ffbb43e9f8d6a82d710178b0b85a0057e921f2d1030f208cda480ac63907ac02f048df188d24452002dcfa89389efd0f194242a0b7b3282a860809e5818a2d51748f59804b4e9dbce78f0c6a0f42d91ccadf82c6f8bd966f8233bc003d8c8d73e4c352df0e504afe08d4650cebb7bda8cc3a50676a03966e3f486b5511ce77984ebd08ed41bd450ecd43de39238b6c46fc2a60e3dab610c94fe2a82595dbf2b77aa2c87982a81d1f3caacef29e1568e4aaa5ca059b60bb46e7745601d85e5bc4ed5ad471f665adcaf80a1db021c6840005ffa39a5658a4dd2060a11cf9036d794c96f4f2e353f3c7c6f3be10f75fdc294a57493033da0d33d0ab73ba9b849514f959de4e4b8a60b773c0306b25d3307365a14dc70d23caa31846250bc942ee302a891ba6bb13cc94141ad5975c8aa4b9dc11dd6347d4c3895ced26c5d2ac8651414d3a150d80159a331cc57f9ea4a0ff4d8a7342f3c1891b6620c5669755886a104ae1b4dbcd52cf2e46c05a5dd0ba4dde42e064de9fdcc494538fcc75ad173e3b3c8cd82f7c023a89894f7384e23277f9771d8b2ee4a4e61923347f99950d94561b337104c6c77739e1be064929d766d228c08a28cb3636f785be78839c332f5e298ac5f3fecb2fd19e0aa53d2951ce0ab142fdb8fef0f34114a3da7a94924321067721e35889195aec81016c087c10358d5f8a162371a44123c2fc9f1b47aafbe87eac07ae1e0c19240ca80cace7bf9493188e449e4e18c2f0b9d094912282d154c8114f3ed0cac56463544015f288451a1eed9e7ac66e929b60508fc832c84a9b2b080298a2088f9d5039e4faffe65b5c7f2b807c8cf2a1719a670a93ae5af65e906105b78d5c806a565a84d32d69ac2089c87659c2fb7bdd057c9a49479614474ae40df91f98a9de47940a701d8160bc584d72361696d84feada10a52a95f4a891b205304f94a60cc3ae482051cab675058a879662cdb28587ef0a3ab164a07b0ae2d38bf79ba574ea14801d0d3f3555544df504a437a9480d48cc1b457f20b67c6cf815027ea2699ca5a85143f3d42fd57d5e315a5a59387793ee678d50e3110f6237eabfd9f98062a51e0e08f14c25ad9495dcd55fe2e588bf2c1086e05314e4ba1ec41ad2a2b1df75e7d4f55e0326e3110f560875842398b07d425e87c507a075d5d0016b304ba1c82c0d8cc224d3a405a938d5765f523fe6e5bae78a79883b9b0f9bfd209c95c16b4188e2203347f1fa679139b823cabeaa7255f718f84a3a1d3d2bb061148dadb5cb93b02c1c0836a165e869b2290aed9bddc212d6971453d00eab2e67acae4c0402ce4a166dd45f9b746bb5159f65527cbf9214adcdd853939a854334d95e493ad30122f43569a75e3b29c57bad8515bf5bfdd2abc125a1a43b87bcb5a9e68972d5aeeabe50e26830661b0d79157cc4f9f0a34169684e0272b439bfbc36a3c564edb1f836521d3c6d40b3cac1b7c91bbade9518eb138940df5873a55185de23b09f1e6e454a267dad38b26c4555ca46ca07dec63af53b885fcf045946ab768c6769151241766102042b81f5911f3a7e2cad3657b4ccaafdad25e6bb8d7bd6d5a66feab96f4162de24979182337c9e65adbcd9ebfb418b67751ba058e63a7b200c433b845a1582c1f52569cc80c5f279dd87cd466f8c7d9f8e9d87d0c99f2add4431ce049bd18d7767030487e02dfea1b089f1732dc36d9415c709fac2e6f1969888a32fa24789a7e5a45118bf372fb5b00483004ddee5be5d17e7f056100d221cf39d1803f9a092c0f5e694688d1fe11c468e97e51c348af5ce3b7db676a9d289bec98e18367b6ecb4a3c7ac8e16a552502b329b70659ed98d2ec634d7669ddb35c1f9494a3fac0d1be748158fc046d843640499fc5e5b663101b656194a88143450a4ab2d0dbcb1923750c3204fed18a03e893e07dd878c9bce83403a6d2181d9f0d1d083e74cb600bed7f3c12370e14cc6e0092643ad47c420ded9c3d947d9f61fd1a8acd0736dd432bcf994969a6f31b2a940f773762f964fdf1bc3a521c16095187d01a94b580a3510a28a1aec82ad371ffd15e0e59ef8da8d10d08154ee4dbdf31dae1bfe17d41e20bed50718c74f2cd9ff025590b752373f8a3dd33cc31f38afacb8d26c3f3a7919bbc6d30a900321b4d80878aec4fa8619937f8495f7f6930a52d480d302451d5a486edf431bd9d05d4f818fb0acb960d2a17e96db683f5cde9c95d721008e04e94a4511cc07ce74b10244c422f65bdd05f5ae07f58d820a272aded9f66932e2930b4c4f72719910b9e44e2f3558d7fc638425da4603421a6bbbf4c58ac1d97542559aea3bfaa9f5fda5540c669acf52c1a7019071dd2ce7983aad64482259dd3b13f5444d72ddddf13c984580cb02efd34cf72dca1637f629aeb4c147bae6a20ad7070b3891993a30721f49a10a189986632bfa441ce679a5f70cbc26d1d68789ce8638e1ae8d187152fb3e885f6e6f8e224d9b8dca6fc6842a9a6d13f3ffbf8aea92ffb7002fa140cc3c337c2be6c91832a7c5749ecd975ffac92a6aa09234ef482aa689e2ef026895613acedd7480e19e5f8bea19acd24d6c0c6bff0579e2111e079daa0a6f2cfee07444becf946e94bcd864356871cb5d64209cfdd0cff26089398ba6d71cad24c1b605992bb7fa33f0efcca7865717627aaa16a9d804b962ceb64af4ee4465ba79005b6fbb207106a55a87015e8272b4f8869cd6d891b0aa502b44bbfc4dc22e764d7fb81472a78eb92378c9d2c37b57e5b0bd4368f9f83a749a64fb1904496c5941c07b59d437fcc253a5410201d414db030afb7f7a9a0c3c6ddc2f276fdc56a18e9219c58d814eaafaf269940b395981ba87dc99b9fff7bd87ec0e1495f3025a87de2836de7c09ae7742a56f6da2be9df59b85001f9eae1e2b49a706c8f8b1209e225424fdb30a209b7d5fd54d12fa3f79b029b0b01153168190ccad4cdf339eb47fc7b6fd183bda5d24ca7d4817da023443551a729224c65df481aa0611183db2bb9223d04e1817c20135b8293ef3ebfb8077b8210176eb4fff795f050d838fc48c8f9a23a51a776418bc1ef12264ebe8afa6851405c91bd1267082b049157e81f296243983a00785dad3f4153ec03901f962648ac8f4a85bae43f51c88a28d5e4bd264cf7a07c9c8398e2e11d3c12393ac2f92d40c8c7d02eb502fa51736c9ec5570a404aae25c5c3c4db8643d0df076e482d4305c05b09edb7e828a90c4f6fe42073b5811a3866fa4efc576621bd4c8ac644210c4dc67bd602cd3d7e860cc41451d14bb65423879f2586fc4d8995bee5db2fb9a267a7e174ebf15e4323e1513c56e41de7d6eba0f5e26e6478231c6fb767b11056057ff330d28325322c3f34cd618631a3af6deaa51f184a8746f0a5d9d96a6985b08e8982156cf6ab81d658c9fdc6de1c216ca94f7f505792b076871c87f6399015fe27a4bdfbcc1148a165802472cb24d0943287817d9958cf0db57ff376d700bf131f0765a84e3b3a5d631f159d02d63237c59964c1611ea2b924581d31c3efc0ef534e53599dc6d1e9144745b05d702a5a17b1dbdab2189a28f0b6938e91cc8498d68ad51f1d43fc650a364904b4bfd631229fe8d2fe2055e0540a758cab944bf14d6b6a837c23169da4203ffada05012ae720566e6953740e74ef207c9e718889bba7d318f715283c47a374af4d7b5024010c962f9cf853c5017e4c34a2857ef186002fca2973d4f1aa6438330a332859e11ffc21d6a62dfc5201e7af24517ec6b57388480e6937202c3aa263e06620cae9d90f18a22edc0c234876eca03c2bae5cc2cdd0c43790a0328d0db6230552cab5c95784c9cd481686ae4edfee4c5e71560947c917cae7d0d7ad5692702c5871d5187f4aac318c0afcb33a84818efea696d102a566274d727388723275d027226a873ff4523e3798ee7cd20e95788e678580fe358ec780d83fd0d60061dcddeac0143d3d52a31122a4a31c6803dadf844b8dfc6a8f86a9b906467cd165db30ed5b0a1d5403c2e89a20e83fa2084aca65529e5f9ae1fdc6513db1ec2b915b7460c4eb1ad90fd1ec70246e0c1e2f44186d8672821b7fdf2f802cfccd9ee269944b4edc3e721cddae0a1b38e2ef3dd8b3ef846b19c105e843992a5ad91492a0614d9ed76b24bbd44048763fe4d3dac29dc8038c5af8a38eb1c828414b73522551161fb4aaf2bce0867b1c309a7884c7bcd359cdd3a729359aaf5162ed453172575cc61a9e13bc53b940699e8b005d31b7989ef2425fc0a655896c24af9290c62b37596df86c9a987000e77fb7ecdac2850e8bc09b158f0f533d8a03b5557e0e9e61a620a434a63424129e48791d285c035d0b4096b5e2e666e2d26cbc109f452a56f366fa3a68aa7a6089c6a06a83074981db0649a530ac0615dfd606f058c468ac547122ff98498f1b47e83cae59bca51c9c116ce5a75bf058bf6b799d018114e6dc6b63b423b947b1513cae82e7045b69bf1268aa29f6527cbd06a72890caa80bb0b91334bad9681b035da80c279a12980ebf228304c9cad7e9627e81143006822a92af1119916d354653b16815db3f280e3ce27bb470fbda1e6c88c191ce0209e37cdd26273224a87aa14ad6639226486c8176310f71bfe232da2823a9a0bbaf5191f9ddb05adc53ecfff28c9b4fcde50093aad13e9c14612004ebf33516f461694f4131c011c36b02878bc4bf64af25d74b8f9791bdc4d4a82e85293251a320d045c5b00f1db02c6caf43dd191f96f3e6d42347f8d1167d8e3d8946ed16111a256ef4d8b240a31ad1c22f774c9f51a43da3d2d17e4aadbf89338a8bcda8e437bad3f53030a36865b240e665141150e7fe8f6f0a19304d46e1de2019951bce5c464659aa0397bf3a0778071ff84c8ac728e74656322b1ca3e20da866ef111942273368c33ceb1c92aadaf94015aa2327f98477721f56fe530b82310afd8c7bdc094d68d25701af7836044b04c5a8a6c7254655f22d49618e72a2be41aac504c428d140388c8a2e826154a37f6154cb7d7b24fba8aaf16f6e6f4cba95eeb75c698d718c1b1f6c68516315b914da11c6b641390b34e27fc977231490e24af7215cf2d03b56376dccdaf7c2392aea580312c614be191d3a17f5a4d7343556cddf55beffc62a857b44e24d200b7013e4be44f18065de9fdffb8bd9382ce1828df3de3d61e5698233ec609ddc272b9dcb00feef0477803aafee591a259e63270e5e14ff9ae963eda062c41271e7328831426925169fea90f4871f19c83bb824f74ac1526fab247cfa7c2668b671a44c3e56e83ac73564467123f146d5685ba4cddef3eb38e6a86e06a2de6a4257c2fd39f847fbbeb2951d95cd3549c1ced93fa855c6c9f5fe432f69069e452bbc7d933adc55cd8d55442cf89b2dac07c0d64c19f9fe1cf692b19702792a735be2eea171c38ce6034769d6c52d4e94567a8ae49abb41a7b26a15fd8bd79b797671dd0b12933003a020fb80b5cb5cf4f2606814210dc89e2c1d2d55f3e7e463ee85cdd45bc10b1fef1f4bd8c59c7e88094c7f0d11c3268b7f4d877c3af996117c20c00e2ccd989b42eb7922499d67bf075e6258ee4e9f0b6d05178ce8e5f2d6135599b691ea79af69b01f03ae5941e9559d1f5cb518f44655a3746626c8157596db9a03705b05e79c774756c39467ca8434a6e1866ae77aa630c5ea2cad11cfb6c3e0b2384c034cbecf24eeb614dafcd902464e37dbf5e55b3c59e23b5058f7453e830528afbe8faadfffb7287b559640b1adbe6ac74fb95640c9ab3b6bc5dc7a5ad96cbd7adc2e63e36effe30a4da0ee8a76abd048fee51542e7ea699dff7df0dabbab6b647325c2bf6f01c9d05cd4e986c9bb3a806da7523ea544afc603da81c75605550977b3142491b777d19a041cbaa4fbb42b4cafa0a417a864ce5c2bf7b39b9b663b73324d0fdc72ef5a73b6e78f8c3d55efc085f80384da27f4ad07b8046353177114073d0e63cfc82c6e1653a6d3ce249c8100dc082ee43ca7dd0ffb3a9b27ca384bbf0aac96940cdf37eb1614cc8d70d50f262e8dd13edbeaaa081b110ea8422281fbfbc9314c4ca0f86334862400bf665c4faf030219efd6f4f4134d7523430bb4bf0604d31fa45555c0cad26f556cd1e55436732743d1c6c62683c631518aac59fea38f4a7a6e0226873606125410bd5dc1afa181a0cd3cb83bf9f0baf72217a2c678610d2fa3ae750a42ca8450e0e8d0ef8dfc8f842c3ec714ce067930304a6a801fff28a93cb9b91c0551c7bb84e18c849c1584041a94f0d67cbe6d07561cf9176305f669bf737a3c86cac4f95b180380019f12e4757de3feaad00703d651c1c913d43b8c629219dd97549634812823b1d075a0cda37e9ca633a7ee975cf76d99b518f60b847a969f09fad86fad5ab1b2d2384f03a50b2b3408f55aa28c18fb36767319c10f2246d41ff725e33fe5dc7831643f6522badd1326fcea5aa936b3d879cb8be616c9a19c7b91f54c3f5ac6cd758803dcaa1630f576d68170c19143c1448fc0d9f5dfabd927ac5a55f8b270508ef4d23fe60faed3ab536b0c27b1825719c757917b3f06f407b5778e533cfcc6a18cbc1d303f2f3afaee04f0d3feff5a7d3dc14039b72a9840699de134ae145d7f5dac14c962a2267ddefa3c76729d7a780367ff8a61382aafa6900db4c8bec8790148d7c2950a85833839751a06090ff5f5b4baebdd2bedc0693a1f49da53aa783eed53227501acda02da14c666594018d6a603f9f907d92f328fa8060906bb540dd6024189a4bd68d312f598fc4971431084e95fdc0dd2c5baddd9716cf1e16ed87efc6c936da49bbc93b4990f86989f312933c7d677051ec3150e3d42ba91dd6d4bb9654a29a5f80576066606b2d38890a29728a713e9887652dd0dd51391214a820309229a69937f9344346d72d1ccccf4ede5aa29dbebd5a84d797e3f36f46b9cc84512bddae49f55919817d2b51d2ef987213b8db533fd3556a35aea03bebfc685fa78efafb9ba3596cce991a6b365244d615cb8d407ebdfe0616445ea10b9d8e4df6dfc1b0ea3a0ab4dfe719bddf6d241f21c216fa86ec468afac46699cc8e589b139a92297c8258ac227287251416d2fd194e99f91b657c329d3df2195e9db2bc744431271222e7231740dd989edac3a91ab5b20b595f2f06f16dc99ce6a937f0b50909dc8c59afe0630fda100a63f669afed0d5a818a584aeeead95c84e2235e55b2391ef357dbaec20f89ad25435c68d4b4e03f9dde8e68b4e44c6f417b9f804a7e8355de49addf69afe2d84541976c289714bb22f290fe7462317456919297a71221796856bfaeb9069218a9e699aae699b5eb9e24be68c74ba14d3aa9952cebf462ed98a2cd566f9a03929b68c6b6ed703ba30a6e99a97e3fbf2b57933bdd3718b53be39a96bd54c2d29839aeafdcf12b46b442eede05277a539a17f0b84d8f718038bd9ddab1e638a9e1d330694f9a1591d618ad9e994d97242cc5ffaf463f6abab96f83917262d89ff8d8a9cec8f8e199a7827a1694a5d3aede54455b777b561216f587cd239bd46093ef5db4c9ea2f395d240765e03c5b9509413a1ee84c2c98fc46427028c1e41b0623a0fa636bb38a328a9cdce896821e4b2d7b07234c0604e3ec27ead46092e31122025b2f31ab7b1719b9ad9794db39487bed7b80d9f7493324718b27907d9794d7c7e57c29f60351113b52bab0565720e3b81ec771e65f20b67f2763e65233911e7b8a8bda294dd5ddee56d57f56e18bdcbce91c9eb6e5f8c1f37bf8739167d83dcdddddddddddcccccccdcdddddddddddccc3136333333337777777777373773c6ccccccddddddddddcdcdda13b27f6b96dcdd1f12854622296bd4d06cf0e366e68e68aacbef3133ac42323f6666666666e67f1b8b22867514921fa6df7b7ecb1f80adc99c0ed8b258610bed611f1282fde350d062c3a6de6fea71aa2d85bdca533cbc5f414cad1ac05f3f423c85712b504128f59e5330ec1de471aa06f05f2168ad3eb0f75879601a46f20731cebb5f372f21bbbb5bb9a5293377b3a63233338e963191fbcefa7c861c3336813fea4a71666ee64643533df9c3f79eaf73ca0c452fabe6983bf654f5d33e4ca13d2d794682c9bf5af2df134cfee5134ba1a9fad0424ce2a9c3dbd581b635d8a94e8ea099a3213eb505e5c12db9f43b64af889634521efc39a48ed45510a0cc6e6b417d8cd48718fa6a6c5cf239e25296d2362923d1dd4758f2dedded43fc13ab2635ae6ef8dd115e01c39efdf945d805b3189e96ab5bf1bdaa6bb2e62ec8ca2a0fc71e07555f485df7b4380a4d5535b3e235c75573668e6f93b90de8779ab33ee8746d94484a2ead8cd44fd23a530bf5ef6bdb3a93c8ceae777e2673ada33cf6b32aa4fec3570d148a832397bd0ad9de7175fc8f4423918e76afc2bdbd5d4aa5d7f19b84dcfab9fb133526a343850e95d939dd0d5b2c5a68aed1b7d13277bb7491ffc067e4e8999030acdae9c14e2f29fa406ee74ce7266427672f84a0e6f4617a266ec1667019cc4f289b51064be124f8097e829960261887a5300e13d00e14a208baaaebfb63ad9d7bbbf7f32079eeaeeddeeefd4422966ef7c69e2708b9ecaafe465a63b9ce415490ebeee2392257dddd6396dd2c736c2ab1879895e1d9f6879581412060d47f1eecc1d8221c44a250163d980f71e39d3c1ff4783e40e0863dd8ed1cfc300023f5e4a9d5f8bc32e47eb3ba8356793c9ddcbfdb6e0fd9d684e5acddb387310c0c97aa606f6abc41924fadb7e7a41f3d7a60da0641aa3ce2c77e3003028cbe021475836a7143c80c19338f0f4ff63f64badd1e4fa68d74bc47848328c608a3a6651e37c9a3cf12d926d5b67d8800e97f2ea517edd5a3ddb09c42524f9e5ac3056c66c8fdf0aa3b6862d9c6251e62967d70700516fd1d465ae5f14ed3a688cada67daa4df69c87d87bbc1a81d845c2cbe62f3737df8ab09496f3bc1ced44ec35540f4bb55790cd9aa2fdb9de5313c0229c1ba6fa662aa23f71dc35abb1546d0123e5968da2b48bbdaa40fc39103af18579bf817fe2ec79bf2905cd53b6de2ee1c170f7cc226f66dc56376b11cfe37d96374a49c824fc6becb38a60aea4309d30a9f1a874b53d0189a0c2d404f9e829e564b184f8ec9d9511f3b59c77b4721d6aeae5f8c614e430be13235d0d4a513c06ac6d794c824525b4927694d5b7fbbfbb2ddd7d803a9d92f0987def1108d0baba93d8da4b395484f12e999fa1ae6e1ece16af765ef492263e601bd3c4924a6350e6467639533854b5524b7f3428c12a9e588b2cb442a0eb095c3c5a598e3e549227d6a120995bc80e405159fe0772fd88c7230a311337635706ca12817e217120973e3709831e37b8620b7dfbec3c17a418583d5a81caee5643652dccf128d9fc395230a6bacb938588b83b535e63e84a2a7f7fbd0a5f00573f8c48b430b4571395c8e1166fced0364b5d57c338d82100a74c1d7cef76a6315a2991a46da146725cb98c8f7309d65ff48dc0e97e20b315c8aa336c5efcf129984ecb89d199fdbe1d3fbf89c95f89aef596c586e70e8a88fcf7c8f830a8e1d1662f8c4f30d1132623e381595c3a5a6f8ef614b7d78e6fb108dfa6099efe160413114f5822a871266fc8886ecb89c195f736135fb06b2b3b1822bce110697038aa0d78c3972b86cac6674c126c7177d03d9e1907de7c20b02ef6d6407d299f141397cda8fd9c707e1f0c9d3ea3499c913c7132e451c2c2ec5d770b0c07841153ffa74b89af139870b2f2cbaf06a53fced5c78cd98c335e3376afbc89a71e370b0da14ff0cd9e160cdf8826ac65797c87540002b16a2782945231d54c81a335448500eba909a1456a4a7c915f979a211417ec0d8ac90a032361df9a6aeb6a062842da6c085b43175d542d284d6115a1649386945e1ba118d7448d11755cc4e7e1730f8a2660b420260eaea8b1fb8907fc6b644baa0c52603d9c2139f17c81a4684e1450cb62978a1828f0a6468eaaa0b2a4c903a5de47431031bd3a7aeba80c14a53170d087bf38e6cdfff547cf2ef9db98d9af411eb46c866d33281c118a51c8d605a54f8a493445c19c10a9ffa77f8e49e3d59000c0c15b25b958e87e46cdad7f4c94827dadddddddddddd0d499a4ab1b04d4b2bd5b4ffa317352d8c9af6bb1e515d4bbb9a1d0826fb746e48115e02a14e4873549bc60b92a0d9802e0e9776557c6ae9d7c9392f20c86e551b88915757a51be8bd913a559bc29e871524e0e16b4ab5a916e55a6c083d61052585bd0def2167640921d87b4dd9808120882a9248615c8b7241e0632f751723ad4c9bb6692408b026323486ec5635f7bb179502858b092732e0628c566a5f3627a5ce6b82648f38a334c53ab82485fc4d04c4c6a0f3fd3b329de42ad90f03c9ff48b6551571695b63965cea9d1e1ac87e4814e544d0cceeef1e0c66bfa7a12887ddfb61f6dba1f3294c39b5675495d81c1bafe1d23683966be1d7b9df5b10d26ddc89ec3cc73bca114ca332eedbd41f63841cc6b5fb5299bdbbbe33dba76048a4ae68a0e13b1a60487c6a1142fabf1619b9047bd9288c8361981c4fc81ccf6994f49c19de8ccac373667bb3644443f23bb7d13487b450d78e5790fd9d336fcb22b46e926a01186bc1b0c7ccccccccccfc981db0bc04fe370a72b28b407ea38156802f9ac4f0c6a58d5c92c15b31c40e66a9b4e38995b94f810c30eac1f0244ac4e28526c9b68680c4ec34cadce7edd20560eeef076063d0b9bfb9887494b6b453e78ad6af2ebbcc8d44f26bbccca0212d0217660e2e4cd767f302d9af7ee9d4ba6743265c6278c3419b2ce4c6b415b4aec26a65630304a3a1097515aa9093b3b3d3559061ea47066c089aa648e826ba8956d24ec4cc55d036b21375139e8256e229f0143411fd5acbb44cabaa2abbd8b5bbbb4cc334cdccfde97e1ffff8cefb841c08d933706f075a2b91fb5aa8934816ed676391cfb0f3eda0a94b07d299bd1a268361d9bb0c9f5ae02b3e3df1225c099f711bbf712cb25622fd35f68f21fb8e314c6b9b66629365d8679a125c6272339bc96ced91544bfeaef2388a51ab6994473972ad46869e2ec302d9b94a89dc64dc8f78f65e86412049a46b4e2487385979c4f768c449ab3c625c5671a921d77e844bfdee3ea3bdc540569cc4ca83bf3b2373bf359bd9dfc19cd90f3d9c56d3a6eeb49a5506adf2e0e7fde6d576ce9778bedf8ff06939170f480732c8082d7b75e974c84c7fad1bad5695f311e1f0f36f2f3e612217897fc01b03eff0820fc32fd8d969933fdcd9e9b129911d8cc2257f4dff5845765a94a9b9b8f401f28210673a8cc225872e2e895c992823b504790d6b1704ad1cd5512b2cc73ab9009f58cf07b0a969d87ac41ea432730f9e3ff8d4a1c035e7d576508f1f3d7ef069b91d5c6a54e446ee2245324528c29a5d69c624398c1a8a0af40e2932977361297feb2ad817dbee7458df2531f6dcda89079c79f62a334839551e2eab3a98a801466c318c315e187f17c320a03873b908a7dc7deff9ee33917dcff73ddf5d666e48bff7b825d1238644032c102be024c6e54ba51d14c8000c3b58bcb05a51b0e725e053915297bad4a52e75e9a54b6d6a154810e4e055c4f7606066ee3161404e90104687c2218450a76e0b1affa57cf5b115419bc011d49f3be6d84b800f6816a02e0a6040d5820cb4a8bc7427e648102171249545c3723fb8d40fb91e30bc0b0d9f0181f7bac7ece12e90dc92c8518b18637cf16ddae4cfb61c60e61901cc3e218031c68c04733d96c0b32c6248b020682e8004c71cc32006ddff87d7207de1e47f5a80d8fefcf6fb1de0dccb48d0df23e0666d107cc80de97902f62273f763747f6568ea12b3d8dddddddddddd5924c9ada99821889318172e3df8fedc1d7b6f3f108039f3079b3a25dff780405fb9b25ae22fed8b892192839c937fb500be0ce8217dc5ca7c3173485fb9321f47e47d0e71f28f80316e48cfc769c9b9d20e1d5c14f91b435397e56167b688652d9445626596c9deec6a9f60cf655aa06d7123451d4959fa8cd4e3e585069836f59328d04b82787c90ddaa8a70a95190db404e0e3764e0e5fc90a0b2dd985f660fc3f1798688f270cea6f7fb51326a5319a76c8290d4ff487195412cda6db20cfecc3543f164582a501096b3e0b681a7dd0a56f762a673695f11ac27d3c8e20a2bb385a9595cf19aa49d9e18ec0be9237985746e09f6241b4257ae5cb942ea714652f01e7e91f8906bb1017ef619672472dc122d298c14ba72e5ca95547f6ad0d4e3629bb6f9a599cfd0d4a5d368a6bfa692be5a6ec54d6407573ce10ab21ad57268039938f618f62f8dea87e11642ee63015970c525e7d9c1d5a4d942a55aa2bea9e50c8c228c2a88610855c8e006082874a0808026555c901b7169a368a46333d3d455142e2668ea4a0c5653f1027db87145ab0657e8200d39922229fb07ed8a2c76684225e7b968a4439362467663f697a4e8ccfe1d7c822fa4a9ab2836f3337525250c2631835867113acbc55e4942deed4c40fd89dede5be6518ddffdba390fa9ebe1d2fdcfbbdd03b3e62166aad0f33685dd28bebfb7f57bcc3f1b2686dcc75e738f6d6a8dd4ae36b5386a12f220f73de424af99af5e2c7322f75b555bd6e0d0d8cc13c4fa8ebcbb3b32f476ef4e81dcf76eedd6e71ce69cb7773b166184118886dcee1d1b4322f7b77dd80f723f2691dbeade2096e6792c8e4655b68fbf4cc3a800218771ce258cd32aa0509590ac226bbcb75af21328ac6163ddd76d5cc16db0b8bb3b8bba0f7cea90b481a3abd860b9c182bff738dee12ada0d1656e507886f0f0e88ce556aacfa0a6d0526ecd245c660cc3c9e7f70346aad9f63517e1352f3488053918b3bc82d6118863dff802268db1036594bef4d30fb771d6e359e17f166a98fa7d5d85a733fdd9a31725ea33c5e3b21bb1d93df86bf67636b955c50a8c68daeb1b58dd47ece359c86dc7fe1d37b9aa85fb69b90dd0edd99fbd9de9954bc861fe735d80ae4fe0ea622334fa4914068ead2754b3525678ccaa96ef1cd4b291ae99011c3074d10c3063f104308ed8964410a9f18c81b49f840919f2ec808831585309c20220c239e8431c40ac0b072058c299f27c0c05181f1c50cc070f2b142fad41518562001c60d1836aed58481b62124b28333fa70a667e6f2421b3ebdb90f991c99fbf005a7306a7d805340b13217ce3c990b6f5ad00571e67e07577319cef0a983357369f8d4412594e0530d9fba66c122f814c301660791f02d660775f8207180ad50937628c5dc6e81d41517349c16b3a48516eff2eef6b6bbabbbabbbda6e0f7497b7b82991da77bbbbabbbabab6dace15274b50bd62cd74125668cedd238100ee8057ab50b870a87cac64dbb40afb57163e34693b171a3c9f0e7e32b7e3850bb40af76b5d0d28e68eaa2d1d0f0695ba3691c251a125a8d46c325ff4ea3594ea3d996b9db42c84eae629b7825598662f8c92b49531d63848d034d5d3a1b2f25fbad44f67e2791ad925d48a309c5f0c9ff71447cb6a03ec685ec4231631009c56c0c3bf93b0707937fb1500c29a40a21919d2623c3a716e498beada9d184681ad522645318d7f27448d5c89f5d2866882b642687785071a1982864d7b30be58c46365e2f9a6fcaa7ceb5b9fb7577ab2a8c43d4d043066316a13b7cfbfef53e182304c2a9803dc7489b7a5e25f51c8875027333a1c12d915c1405b3638e40ea5879961b3eec6ff886fe2408a4bf5882f856bd514f216c3d29f49753ea6a146c14f6af055dac3631466a9d0859322c8732c0d93aca83bfa180bd1f7c755a070d095fcdbd03ada320f79fbbba2b1277d57f8ebdd7efbdf7de6b774223cda0b35fca435fd3c7be7beff779c387bd32f0763b6fd476ef2935f480350b0bf77682f3697797480fde03dc66356b04cd8a8f6b1694592f64785f507a36119fafad735e5ce27f0bfb060db9cfd3997b8b8dc32838059b18de28808765d664bc084d5da4100329d126a7b5046dfbd575e6a220cdaa8c9cb9f1bd62b0183398981d0c733b1d735b25c0ef0cd9849f59dcf57dd87befbdc73d00dce316dea9aafa7bef45e5d363cca7bbfbc33e401ed7dda0aa9ec39bfacfdbbddf1534dfb6b820985357f775a7bed1640d487f6c0526088107123485154ad040ca4c1a52547214775063c61b9f20ae68544c1240094fb494c0c3e47fa31a3f14e12c971c21093f302667ce24cd1494237e60032abc6085032b3c4794f0a000937ff50c293df87084131c22a4baf809a2069b22c305f385c959132fff2ea51d52904045896401880f1192c5881ea488893685dc585f4809e508e9c14122e1d4d5ab09b3fb23bcaa7c9420a30797d28e776922372fb61f88918424c490c21812c7d455941f9210a50673f4bc45231d2f6de27f7963c8229af3033176522850d6922352482dd101186401ea8379bfcbe1cd1ea41011647ff6dd0b1c92805fd292ed9db444fbf87918eea191549fda5ef3bce04099ba3a634a6bea0a27059386466dcf1fe471a4eee70da1078540da923cff0283277bfecc90fd90045cb9726566ef1f20d98783814d1f92a6626c2fe4cf206a302300cf9890eb417ac1919db228d05ae3f032318d6bd9e65af6e3dc07a9263f4c644918d8c4bfa4172a5e94cc9eb283b9fb3a012b24e0bcb84c149b2836a4d969ab7b2b224cd97fde3b7ab43c0c0998dd8fb95ca72e979fbc834ffb1e18bc2687b4a86151824f51d38ad0f40788fbbfe7f1bc973d43ae03ef756a35482a85184889f9cc906386584ba4b63cdf69cbf31d4b0dcbc3b087f3cf70e85707fc77c225a0af416216481049089bf86390d61032b337880ca41046f92a8846795cc8b5e2108e9342a450cb27ff67c8eefc0103c3a5dd7a6f68da7683249fa549dbec1dcd0a7f8078b4b87984ac4ca32412260c452592a5fd6301c94de40c4b0d8b0dcb0dcb147cca9e7fb59d36f18758da4e88e599425f5e763013e9d1f9e9e0ec422c162726933a16b4b7667132e40f2e75a11b246981d0b3702d428a6c0cac44b14ab1bc0e2918f6d0800555ce0e0b8b8dfaf03c3f0b133e31093473a86488e5f170120bd9c91bef216d7366f25f21478d123dffaf422c298a339e8f9e7f69940888a7156782b489bfc5f3f27548bd2784e5e56bad4476219647aba2b34ab1bcb69f19d8c3d590a5422cef817cef3bfe39a290efdd5d44721bbfe152c3300b49beb3d4742c371d0b322c2419045e91ddcb0f9846d9787eed07979889e4d9bd686a3fd86bef2d90d6e467855a8dd2147f28146572177a916218c2132bf87800b3902c2c241662dae4386e8870dc10f1e049e3f895e3b821da27bcc2824b2c010b845e722d42e4b33c0b572486213cb1d21808d2bfd35688c56a93139267a72d96b65888e1126b8a3f423ca91a2c356d8a3bc8ce59568dbaf1dc45e9abdf69d40d8e4514a3b6c3c2693b939fa5903a3b969ab8da207f1692a624a90649dbf4586a623c29961b1ca9a91049532092a69aa5596a586a72bc36def102229ef95cb1dfb347c852a38c64dfa3519b32b28490ecfb8dc08fdfbd4cae453d2dcab5d4807d7c1bde93ea7704d9c5d91f096c0a7ef336a8453f879d2ddb0b819ffde77746528bbe9125b437923d7c234b7c3821fef18dc0cfbe492dcab56c9c90ec21d7a252e384c4f737e25c8b72cf25cf7b560ad9a2b5685c4b0dd9c3f846fcb3b7211a69fdeea7c7f39ed746b9783a0952840b21435e21124208211108218431c2ccb32a1eb123b2a3f6fac6ccecb35720fbb12451677b11b7a83db8d469942ab71f5cc32772f42e2580bf47489d0e531fa687401d747049477cd2f7efd7c1a7f7df580c641747ca386cf37153b4c71362cfb108238c1ea1c32c83915b2d3d0cc31cc3308e08c61806318f8761191b6f1be1bb4faac9512335b996fc3b97f91869d392ff23452d69c93b1ce6ee2e37a4c8648edb1219185e1462f00125e041c80a279bd9a8a48d973535756a4600008080024315000020140e088562b14016c7c2bc0714800d729a427c5a9989635990a33888a29031c410020801061802c4989a99b941000a3ce0ca3d44e60a2ff3247324dc8aa53a2b07047a7195f73b599fa5a2f8405028674a039db61451bccf3ce6f61f81178148c012aaaa35e5779ecc4d9a72fce138f0422cd8157dd1b596f59779d894cb873b97126e0b8bb94133129df468f500c2b05514a826f69463a0f1ac577750a51869caec928b239569a3880d491a21a9d82e3322ee9ebe86894ea7357d0d5a5aa5e9335c235242126e6f0378e9a55f2bcda2cabb88a1cccbb5523666793ab6843ddfbb3dfc6b1c4b3a82d708d32160833cead2e120271f9d52ace0f01fdc7dd1138fc76cdd4aa0a63a1dce49bd8d69fa37da231c705eeff1d3f7233510988168d4433ac2b9c8127410a5fea6f15ad33d5e87338d1a0d2310c3305aa8ee1a05dc78fced106d937cbcd16cdaf4836fce552b6f0b834c4474e96584d81ab500f7ea5d1794fff02f715a8587922bf9b9925d3d28e05c248ae347766e214b1193365b9d9ae3880f87e6498bab61d101c6dfdafdb121cf2a282f133b775ab9a49b476fc83664fda6ae19c5a6d11082a2c30c8745c5ec85f1a30c0059a9d803b81d2e7ab070418978037b761215a40c338688b1db267324e08ea8d3a66210a64308d0e1124f0359cb4a7e14f6d43612090c027ff87d6599030e7d8c5f6d7f749308b772a99470946a253e5e19d21c13a6f5deba874267405d22a4b58a9298b9e848f643fe1b29b473529c9f5ab3fa4130e4e9d97b999641235a71f014edfd5edbc9797ba69b41d1b6a6ceae72dc254d1b39e3034745621670d4d9a49620e2fd5ba67482228a194be26f4b12930dca56bb5b5bcc5b75a87699b97074f13d1542485d775f73939086430c6f71d14013e7fe549ec814ef86435c9b38845f827066bfc7ade6bb4fe2fc10a8df12b95ab90b0bed4c50c2c78f98f41cd159878cd5033868b9e45b647483fd994e0b368a8c20f9f6cde729a8c5c9e3c79651569f91b653d2f43c13dab8ed84936c004ac62f0ada007a1705dceefb5c7e5d4a98337299f8b7b047ab72ff61e78cdfa4aa612cebbc49ded70996b99d00d5eb9a13727d1d2f3d8b36fc2d9f7087905843eccdd02e183c616bb3204d8dff41e8115b60752a84af9c5bd262b729755365d4d9d774e285c8c6f9949a17dbf696ac139710ebdebdf050c78cdd48894bc3e085bc4958e2e81057cafbbf602b5900bfd61bb3663bbc34e8f3b5f42721c8a06225440f43ac439eb5326135c7c19fc18a18361e90dfcbdd189cbe9b907faf9b5a3738027bd58d53688886ad963a456dc943e183995eff65b93ccd6643d722d4cb6862c3242912dcdd973dec10329a5ff352844acf1b4cd4a46fd65388b429d00293484db6f190163d61584178a1acdf21492b36ed1b11f03686b530d3b4936d53474a929f914c47ad7e3dbbad07bbd443718c30ac9c46eaef8b5ae987c277c0951e535ad78914149da7a66e6286d89eac9962ff9d04d6578c92f5658458f2f2e3f4a30ae08161a87b08fce4cc8a3a119c99026da6e0c2c7265075f79e3c40b2412c1989547eba4c997b84643748ab633864a54c8170b642aba3e844cb0324d1bd0e96075b49697d463bced406e74e9b6c9c69381bf3f019858aa542c0128039e4c3eab90065b6c3c82f1a68622109669fb04e63fb2695e7e18137e718eac61ed93a1c2ca68b4361fb824fe34b46bd894024943f2940130270ee282e391c080417e4ceb072cc3e0d10b45e2eff4cf55eeb7f935efec1409b119f60e3a5870cc71f9fd6a2385c853d9c1b59e95bd241a59b033cb6e9b08a0d7ed34e18e46071b715ccf076aa497fc14e22e9edb367821a39c37adf9584a28d8514b03e255c0f1bfab3d3b74b3da9e83ad8daacf090378e77bff1cdcfe7f472047f954c88d4d43b4b09e40dd3ccfd3387bcaff13637ca2fc9c7a761c0179f7d12982dd3aa34102d552e00c4c0a4f826cc7a766797bd8c4acc150ce8b5916f7f1a9e3e232c3eeaaa678b6a45d60a4844c36d148c443cbaefa44b97f4aaf47b9f5f0622780ebaf81b5531ee5739732dd835ec17c26d92ac3685b060958f0995ef5d61734a2dcde00b675db221ef3fa8221c60e20da417b662c9cffc61d217923c59c588f7a705ee28a24791f0898e32da5d50f97c17931b86673f2a06f2888efc1fcffc473ab8498a2299d99ce04d3196a7039a1be7a2b9cb8763683fc54d073ba28aa4b41542e4de1474a0e7dce4cd1fc05c869dbc708e19846eb509077afe5f70d90399fa2f2e6ec26a358c1b6acffc90839e25ea46b772312b14a91e03b7ef7d5004ee701fa6784cd0ddb511fe6e5c4eb21836ea3d8500f5e7bb3f53e49ef311891b21b6216dad09e84e95e6876de86932ff2d62feec501db2e2dba6b7b3540e7f9629940880e1a3ca3617e3191128b58815e809d77c511c0661f3d3bf26395a347ccfb4533a5a4588dda86f4fd46cf36b09e66960fa99c3a4af3151d3d8d13abc66d5475f42a880512deba4ac9031f3776488650c8c8dfed0108179a9211d6ab388501699d12d4505babd032cdcc36a01c1c42f1540a263a37f19f5d3d0d57cf954159cd7d1f6e11cdf8c6912bbd223f3b3a14ea603a2c19521d81eb8650ba0186fa3da63b23bcc9d96a8bddb05ebf241322f83c73cc952051fcf96ddf09dcf87fdaf56573ee77b0a8d19221195d54e6e0677d01c854814cd77f8a83921e0f13fda2b744c2cd90ae201a581c141be40e519e6c0a3d15671955687750900c8c4ef257f483249240bed162bc09688847bde8201c292d7e749fafa983833e907e2885356cd7eb5ac0dc48fe3c04faf19054295374f745c4c3c686ab89ccaf4ccad3977099e068ef73c611c9d2f413145a3db40cad1210bc00346df271232802c381d0e00dc0bae0c8bb9efd337dec42da95aa8449b34321c32e3244c26746b85c46e5782c0add880823cddd052c888035f5d608d38e0d202d7f535e05406cfa0c27f1a280b8338a89eaa6b028dca0f02992e5a16ba17704212db1bfb650fac8b5db4e5c3e18610cf95f396dcfa84ceb755ac796de6bc363351ac603104d52b5019b26897030687afd2cae21a184915c65ff1e4cd04ed95565a40b26af809c73776390b7addbdc9c4f73bcd769e6f39d98060a652769d09a83e5be11d6d95f475a3e42be8e2e2583584713713239a9f63cc041f34584d4963eb813b5bfdbb9cdef6b031939b27d6aa0d48b10fd4883a7bf03ecec92ac34d0fac2aaaa20cd4254d6113665e91b287148e081306a44143100385fc271f04e82596bb22eae3b1d02c8c9176517e27dff78b410688be283a4d19098d1511649428b2a89274996cb380ae7b4c637b279ca67d22574cc865efedc66b6ae93a188e2552ad545b726b14104ef956eb6b6629a6de22f897eb85406964465bb13d343fff241075a7b556d1e89e151f7378ab7060dab374d5a8250353da8844b4354dcb51f232be6e68f19a2131e0c70ba2d71bd02563bc1b6e11724a1d911dd2726d922121bb023914bd293c6d8f1c84cdec10d212d57104928ab43fa28ae620f740ac884b47adcd63feed0ce76fda6d1dfb83411dabbce30a70113a48462e4efad50305574da86399c5d5576fb2e9e33d6616e324b1bf2c283741bc6347bc27d940a05c989045f1e3ce3ef1cc7037215372e0eac6978c99411db7d4763b1ff741a29e76a1c3e8cc00086a74094837932f4da44f85cce846f21d18e034855fd7361f3b79812b26323f7cfae2389d83b77b4ac6666dac89c7d756cd22d1b0245e82e68c254dcac8b96dbc0b5d9458c59f9c8dacc8be2d81b84a6e33ab38ab05b2069002772169698d436fb196d97ed4d8e85dead59d38a237ec4e4200a27d75749ee83613129a8360df778c0c3e868fbf858ef356e6bd8e09cb83c10eecee8668b0f368c050995028d9bd3c55d167432963ae049488d609ad4f47ecc5301f6e923da8c79f95c931593d11540a873718332614ab40e1aa80b6a2852f8820cda03ceb827d2211cab3c2e97e1da33cebbc1127324ae2cf0fb2c8962ac04c4248eb56dcb7e09dd2d109316f35dd1afd27f48772a5266a89eb9d2899531ceabc2c5caeecb900c59903e7176071d5d5d9a826dbd2e05e2ad521590d08ed9de9539fe8c89c1af145425cfd9dd011bc9e2992485d8bc95cc5cf6fb8c760a87a69a490cd8738699ce84ef4c4f070a6e7e6ab1983d044732dd15a60aa5d8e01984f953f82b8982d9a1fab6065210efceb692e5664eb07be3cefceeb4bea5c21f479c2acb6ad4178f63a6837804d52e5331b5c331f4c53a287cd29c5b2e0b8a554bacea9dcc1fc15d2d5ba597a9021eaae342cd17434b1b88cbc558921de2844c176b89167a43558cc005b0e7cd586cd71549818e739e389bc9b36559cb1524fbf6e0c38f77766abc9378eb28c72ba8efc1be55ad026f0f999a6c4b6869430a5f82ad24642f0ccf01d099ffc474d49b1d7d04625e49943cc2a3b5263a8d6a04630331c392b88fb912ee2142a9293871248548761a7f39d3bef5789ca13983c89031db9ae4d25a97d8ccf093d7d3a3d8aeca7427712b7679a920f76425f2fc61a218c1a8c56730bed31d7a2aa95d3f54e047c1309a0b630b5564444f6df4773c3077f26e41ec2fc4b449b5d0208690b2ea62ed359508a47c139eb50522bc5086b41417e8d92d07ea991f0ccd1157c988437f0cbff262238b9b42302e417457e08b7546eb673e6bb1e05cbea084b064e67234bb47f22d527699865afc8ea5ccc3045ad8619e54d9115f68fd9ef20f47a036f93980cb99843f89382c1e23610d2dd9bfd5d8d961088cc10e6727ed846d0e7473428bb715d943831ea6369e80c3a15607917b4fe8437c12c3603a92ae7bc48f9feb880d893227d82c2c3a2b266705f1ce67207f0441adc8a1ac8bf85e907043f5a2c06bc3c12d7e7bbfd4adc7f676512c50f343a1eb3a4b62d5ff8db2ec66af091bc6fe7be00766b2a65f56629a9721fd221f4e6c1ec228c73a902f0080897d6895b01804590c690ccf839d9c04f8688bf40f95bede821040e29896b33f99851665af23c3cd7f6d6020b23694d0649470b39862270cd95514b70571466fd6c71f500f52dae41d98a9bbc86437d2a50f52e01b1e2c271bbb860ae3854828892ca3630cf4eeb570a8711a7448e7c6cc479c2a9dcaa9b15f77ffef1a7db23a62fb8d495615285e5df91e0a7433ed0097e43f3f52a70e84a14a06da07512272a06ef83690f5c01634a6148f370bcb7f713bec4fb75ebd32d3b383fa8f9e78a5ee6a8c01925d920e8cf4005ab487e4a13ba51c8ad5520bd3009e63807df92468b14ca9f3dcfbdca27970989d37c932254137d6e4de2cf2ec8bf1bbfe5479a294f106f9b519c1ec0879cd113a82ff890b5717c1a73e198a52afdff733a350aa2fe91d297c9a5b292d2039dff8b3e400a65bdd47f309bd38e20c6c133fa3cd983672aa650ea775df9049da1334bc207c96d22c11992b5956f356d68d26336a38146fac4e092e649748ed101b9ffe1711ffedb529d2a257812a24506b9fc0d482086fb38ec58c46d9ce259f043c2c02de2fc9fcc17076471be5d22a80936f45846bdbfac2782fdff9e9b11903e16584ca4b43639d753177d4edc68a7ffbc8108836991b0cc3964926940b1e8e65479723f341adc7a459a68e19581b1b5bbc6c87ed5cce0360d8efe0b08946a6524eefb60e089e8a6dc4f98463add1fce6257d215a0dd390dc5fbb39a3d3bacce155f3c36ac8aca93b74d59bd2a1cd3a1bd41d849bdf8ada49b3c415bb6e55280fc1a9b80009b060f7ebeadab97b265399302781e63216462eb38d7c7c3b2387309576cb9ec04ebbca02439f4f7377c6970727bd8fa6b568827dacc9d42247f9fdaea91ed9cccadc83d89a0b37b3c8cd3ca565e37f58999b0c5687bcdc9df206b37c9790a003ecedf5170a821265133a52a421c6a72730db29dd31823cfd4e1c7a76fbab1a991eb221d0932b141b3283b0cc77a3fddc94b062f5afea0f81b348f9fcc768f0e08df63219f10d56608b37ff0b127b5b281a6669f453b736025d0c02bf27e8a7dbae61f2ece507c864751ecbb41843c84f72c32b337e499b29dcbce61f451da0566aea6ca1e097d766e1e9df9cbe6b5bdd1feba6e07ac6fb4d07c239b60d94eb2b83d2585e3a5d9b23123f5606a64d3eb0a66c09bffdb4fcb3ae75af60122c954327b853e30d6b10964c03cc8b0b718a390d43c0fcefdf66c9eca22f2ee78230e94ff1e666fa54896caba91debd539edc2abc1e386f88b477992391d53977fc1b3bf3c626f55bad045040fff63d6c42cc4fd4fc9eeb07f8cf1bfddc17da6ac94d60dee0d51e072ba7144426f75cc824a9b32f93f53846562f19ae97294ac192f17df9b237da2d8deb7bcbaea01cb370a620db0a9f6f2afc0a445f003a7c35d94c0d700f524e12641662597fb7299c98838e2ec0b102db1c9a2745723ffcc3ffb462a9089741f7de30ec1935ea37eba55e7f4b50a14cdc71a8a5b82b1d56cbc5b369e3a228ed5172e4fd1a42e502c55432c0de8ded718b08d85323866e92027b9e80434bfd6897b6fb815211046ddedc947cb1a2b44ee42a622670b6656b5021fa63e3283e241b021c2da2fc312440770bfd425074eb672244e095c41f2a81291e07e4f71b08af5203821c6c09c76b779c7fcef137dc622fa4d7d65777d3d1161874ed1df01ec402c4c4bc1e8cafc724deaba37f801d665df00750ed4f6874ee958e5d7d8d07b4584ddb6009efeb4f706a84bebc8e9174e6fde770c7cc327ff70ac627ed17ccf8f52cf6ab047462136a83c76c749235f4bf8dec93387164a2ff3460909b907ced33811c10c7452d38569b7361340ec31db62842bb8300316c2367f4b2609324b5b50860ab8c5ea11e193bd1cc672a81c38928e674103a8400987ac049a027f4a16ae2afc653e64953f06afb82af059d6d975d521bcaec39c2c745d24b8cd9f7c28a0b4c2df43ecf6b894b1b50c6c5d1c03f9c29626f102733dd39c307af2193054b695bd34a629b816fdab92e38c41d6edd18703d98c3b8b004a4db31ae458797188dd61e194d2da16147ebfd8f58721f6fe36c30fb4233a7aaa41466210452b8d2e4e474eb9086ac3598d2833d193b8aaf0d51bdeba2bd4d8a3690d71f52c9c1651b9ad51f5116c6fe882e6a94af3708e4ef59c7529d9344152d68d11ba3e4735c5eee60649c545e89535c93909a96935f68251990c8a1b04695371902ff7c8ca4b18c7de9fa114b4b8c92b9368c3b47ee5d24c54614e8d493b3257fe7108d71aa858622990318a041be0aa04ef510fa51632425656b98626d7fe881ad6fa40337c2c611aec740c6f7d6aa2cf7d7db24447914a4902c3e460e2f06d95bdf1a83fe17c2ddfbd3ab3e6e6a65bb790770e6b19a08463f14a4a952a43f482ec4ac532c1ac08c5047906fa3bcda628e3ff30df9fae77017a41a50fabe553d811f1abb58b1fbe8bfc74537239b41373ba08c16842adc2aaf8a2869a2dc1b15da90e12ee13eadc215c53d502b1717934997ff02940609e535d3decfbea9803a848e74094548d516adbf1d582eb8cce5e10892820a14b7e4064d12ef36899df91004f2ef75ba3c99458483e81aaf39d33f5a8194d32ebbc06110b633337d2f61938cb7d81105434a59f0ad07e644585fc28e88d4a0ef1d04079e471e830137c0405f1a6de5e2c26443c410b903650c4cbbc0ff5312b35d2b0959737d25deced6cea56519d7228ff8badbeb30fd953a0a6ddcfc1e6c225c802010683438e907411441108107b7b306b0c4cc835d0d4a81e113dc52483281f9c415057d09b432f86710f339bd011240f2abbc988ab77dfa09f34c7e171f8a8f02992fdacf784d74757eff223fbf8c1068de5101abbdde4c08a2fff45dae86e9e5d94ad6927df45febb9667bfbd00246457900a0f347a2ff44abffb9e829ee868ea48e2bd532f0850c853cf3325d44c669ea51d3d9d45e0dade4d57fd73ed8fc1e11f0e52b392c9beec9ee54fe156af99c8a4158062590401f83e82d5ef849fc26ad4aa5864856aaa194f8494e83caff5075636a99ca33614408f52d26d1077b4efa17fa57776b5811362aa22ca5ace74efd770cab24dfd0ec6a65c5db214237e9c774684afd37c9b028c7d15e4e347e73e5e446e9c1b983a8bdefdedcb023e198d883492740e8d19b95b7c3e2ab731e367a8e509301f81e7c1157d959efe26a28b343ab1058e4f96a69f8cd0e2590eb075970ec514005f1cd9bbe7cce4083ed89d311f6df0628969d02f902679994a0848d356dbee78b8dde70725950f0db0bebe75f2c5bda692607871fb4666a1a24e4341ff03d048b03f082c9557bdd2f8de213b70987055a7b74035b1bd1da00c6d9069a15f509b47b0e96a0b0d14816b332c1d2f269cc5f5dd8cf32c3dda4f3eec5a7f728e8bf85d405aab9b17299520213948b969cc2fd30a9cc1e671bdadfd41b33a18985d707aed44a6a0226fd41aaad8fb671ba3870a746f4b0c26b7f0e9ac5a5a017870d8b4db3391ec404a1b71306209f275935c80c1d19fa11860fd24effbe123b5e11c920df09d6c3c60d5dd9dc4b0d91112cb4accbae8cc97d57740709fad3bcb0c44d42a5df6e3d6bde768b890680cb44f95bc151c5ca7e700a3718f68b95fa36ae7b94a3a42d7afb0d66f2ccc74709ac9319473906984640d1a162a5375e06eb20317009209ca965272e4cefac00564a6a26377e963030f06361c565e7d38b5e4458fc95d466d01148d514c624200bbddb554fad7fb2c375f0268291895069528a5eac6319d3be4fae22a04961f47b17dbcde8b97ccf7afba889bc48672283b1879406635f98a99217c0e3f2cfccdd620d7451d0d73b33f9d6c878829072b5a5bc7c84ca9adcc44a1841984831c2295fbb4a0eaa6421ab9db8ae2604dd8bc54e6044acdbe6bb35e11a1c30ab83994400072b55ef16146fc0bafb789b465fe5c2797cd9547dae24c710e97120fc1e9bbb7f8191ee5edf0c5853a987aa8b0fdd1a504795746057c017807122cbf11bd7a2b6113f81b40efd070ea9ea7a245e768e5568cfc7c6d4cd96cdf1be878028d579b41901dd5243dae9876b4de98711b4b5fde013cdfd69cc8747f4d13a5e360c14f37ad0d772960e6f4c06dcbd20afbba0d63bbc7646499f679e3fba2aa1ac8cc4043af0a9ac0528997025e41fc8178717aeda6e11e6ecd418761202ebcc7260c821eec3130afc68c8d9fe127836b61420a8f99d570d7e7c0b5309a4a5c7526b5d1bdc81c0b6ea9ca869abdfc5783abefc80f38d6fbd6f25d12be39c20ec208d37feed33cf4995c31f09d62d842c540ae7081081dd311f360506b4d5aacde0ef1f7a2cdf2f9eab03ce57d3f40aa4d62a8d287bab2e3d385ce346a21533063a250c47d9019c89e2078b361c382309b01c48e3c402d9278a2e22cc5c9ce068f73c13b3fa0c7d8f72c57e054dbfb1869dda2fefa978198b3e83b2bab94cfbb46e0b432c49f48be55fc52bbdc71e4fc5f8a557289479581338633e4ffef88f34d9dc4d2691232f6aff1eb1a5234e7a4dfc26b0f98ac6a8c6293504959e8577fc200dc26913ee0146b1c8780baeb5edec002248d7442eac3eb8ac0887b0c04e32935a56ae58be811da3618b6e422268a108dc3da1196a04ef341a1de3224226979eb8cb1285ab52ebeddf9e6fac7311a881674588e39c47425c1c03649a95b2824de38f0c14bc739c3d0871efc38a592cf642632835948f657804a540bdaad9de06b7eb30c7f6964cddc9667be5ab2580fbc1d6880e6b4c8f2239c5273e3981d8a626b34f8b3db63549d035d32801bdb2e442d3adc9a39a67994b5a8b3e65aac38f6828a7859fb0a814e34a039b7b8f405c14639e992ec667260ef88945b711ba9f701d1f21d53b60bc6b8efb66bdf7cfe89116ce80329c4b8694f357cfd85c95a4fc0a51bbdb18fbdc78f0d2ea9bb34b1d4943b61385957ce432fb98b35c91159fc62a3f62f71882f07fc0a3a1b3aea2a9ed4c654ccdece19e3f1e9df93300e4440e6c35da846739b81c7a9860da02b8a4f0044300d95e2fac6ec2aba5051572cc0ccc242f738a149f4a3b58173720212db6795887bd13c0f71eef91b789ccd2134e43f31904693cf054fe66f0ba3ba582607af0c8f41d9726bc384a4038e8a8e3e62e6c12895350f85344c86ee8c43cdff4d286a892d157546a3babea770a1450dc6a9721aab263412f1c5a4c3643b7124305d7ee4c070f9efcc35ab3260fea97683bc0774e04f27a5101d2de8031a9646b0ca8f5f0a02af2af3e3e60c1e321795f9f69c92d6684e87205c5f27884c18ab4202706a774b8977d190e3678abaad7a1b5f9bb3cd8f811b680b301166119696d2ac5b652b16d617c9d7c1a81d6274ef078be5af5e64ffa807f918e643be17ae03718073c799560a179da3aee44374fd7cd80fd1a282433071038d276efc30a73bf0eb5fb2174714c0cdd721a62b1806dd70346b0a9f78633da7786daacfb9127ab2e83081a53d70cf5209a6677261d2aba4a9e0c169a286e24b54579fc3d962fa164458f9a8d20e1b411b9cf433607d2eec3d7de934cd39497cad2bf9f5f6987f28161c919a0b1f734596993463327bf809797dcf328e713a5f6ae7634166b331a598bacbff64d99d88603507838464e1f94e6fa2dae44d2b5278b29a4a273f899ea8e374c59a85a9a657ea84ffb0ade66ad809f5db5182643b6e6fb630744074baea19b9a525d6044ae9d09620fa2d3598a70671bf2b6b38da57fecab21356e9dc08518fbc1ae2e826f4d009b8e6bb19b22861c741e532656721af2a95c6e4fd86991d390122ca8193e0a56a1ff2b3805203550b5081d51b37760d546d6de4e71bffabaeb6838126f5b1b1c6ad49f61819555640cc3f1616be019a3d273f0f4b07973ca355c32b398e046a6b2084777e2d0cf26ac8fe6e166d726bd07a37259345408daf05e644f882f3069be69789fa8d7b34f13b80a78f7357f08ce779fa583821d899f2496c2777a9ae82cecf48632b004955c59b73e2a2b6132c2b31cea8d97b5a804b7405f1a05501f548c621067af8f0381586e4ee971b458aecb6d9b259229edb1d25cf3eb63721c761b5cb257b7b41fb1f4def9f8e57c9181701ae16c6260e3f4d6b794ded0357c1da05147c76e3e6a4ce7903999a34073dcda1894f2465534fbee90c0aa076cf608f6ced0919ed3b94867dd5a0140e51b407fb8be71427ba1c37b8427c2e4d95d54a76dd91d667bf6e51efcd252003a0491f220bc81f060a5df559ad193cc0889714423da7efe075703be2dceda8245ada0edaee9c3e0af7d1bfa62d121fc4db3e442f5155598976702104ed0e0ffa7a8c6e7d8e5a7bc807052e79adde4aa210320fb0af51977a9a2d620dc3a58c4f4f1e7f37f27fa3885482367f6f896aac9866730bbfcb8922743257309a15998228da7acfe2d12f9498119e25cf8f7935ed82dee0e2477e318d2477e82ea28c80544a1861355582c008e9f2eca2188e00b9c2be71efc3fe0d7230c752f57dc5fc65f0ef8c9c6d899282ba78c80a0b2c6f264a6063a3827c83ef2d9d3d0ef23c2109176cc8f50ad7e3c67bfc11976d10ae869f1a5bc80a665538b4b777cb8de4ab2d609168efb963a0ca52fd0500028f80dc10bf6503311a65de717ccc1db5fc7db1196c0c92ac8e708b5482302290ff18060aa08b44e9d43f4228265ad77f957bbc2ce4102a997318d29bd000be292cb504d33d086d4f3d65ace143f55572f685b7d6cf8806b8cde0f53b982a6a1167918846fc9205b16395b7a1cf1f237050d3cc9f904a08796b17f06619c8cee714bfb26fa1e57186c62a7dd70b3b52c65147a0130aebe23e3654ea963f5fb6a6472566ae7bed7b0648c27fb756d9f8a0006e9726bd247a53818d4f12d67dba11686571269533646e55db83e2884e570b9a747dc32b0e075a4816d21456b7f6ac97903db4786f7d2201d4a9b2c82627b22914513a57cf009932d8cf20c75b14cf046979a9f9ee60b14595b99fa181f5a3245b814ead59b211c476e3aacadef820203e15600c2654b511b9dd9340220835a778a6151a3ab3ceb013756d9a768725d29370b9dfda03788e86dcd39754bd6f4f1b34a80dd0f821cd89566d379df012d377a568a3bac7142ea2fb05db11e11f70d6d998759443e10ef23533d217fe46c75237b761e83c10996821816b8134ad20e1d02266fe97b16f8f0422228cff8cdeec75560aad5ed56683f4f37023b4d310d099d2a296f6f6efc0d27ef1d81b991f3a293644f3597c7147db5f7717f816e8ab7f4e81aaeb3bb83a1b9cc21665cd099a0d4d2ac626196b7838eb03adcf5bbbabd5ebbd736012cc2ad1419fd14f0b8d0b6bab14fb80f2fba1e0010656178237254fb3fc4f5fd673a58266b2eff8ac8bae860b0bd19574075d3a5087c287ca83dc1869e7cda0db613bca7994c2268aa036b9de2ba820371c697bbdcaf62b4baf1d86437db2d85915cd339b376a5a41299775295c142303b2c37a843b3bae9d9c461ae45721f00a76c09375a87505941c37aa3050a95bfe96d2285292a14c120268dfde908c67a74c254d3ce70b271dc0becea42c740cdc58fe5100b3df56ea3f69add7b53cb7776c84ea9b9150ad4f7a8ace7a866d6a475adad40c58eed42f5feaa60f41d7e8646c2680083b97b41282985f51556c6315ffca9123f1c203f6ee110a89fa85f1ace7c47e8e9427b3114a840a7da14d4100a620498288636df5760d92fd9a219c0abd4585e6d9f983f24eda4b57988eedfc32052a1c26205079940f7f668257cfdc9bf3a93a37c6bf6336e646d47e975069f86d51a6e8651e4e7452aaf04582f4b3d1fbfdf06eaa7d5c26da6f4700c554e7d54ef7c72795b1bc698e51533ff6e51a19dcb7d60bc348cbf85466cf79989de129b5e1a49140fbaabede48b8968ee13fec5f61d885bc6d5e76cf42b193ce446ee8fbe8749a0e1d03cec2fd70492b9ba6c90d819873b76f2d6092425359c0ed4c49252856016daf04eb93abdf391c9426c5916838cbeb24be12a8b5bed1884e6ab542faa3cc4262b3fd5aee9b446edc08b1cdb3b3c73589f583b787049982e7e4b8b4d7d605a5fd15fe728096265466cfb370a8f93cea8ff01d9e94ac7bf258211a2a0efb6dd8e57153ef6e2d1b2429b50dea76097a0097294149b792938413c987c8a6546ef3ead4e84bee870618b699b861631e682ab29c175085b73516b933c4bf7ed39a8bb7a1e6e81d8d7e268af4ce2b997de8188ff9085f8b4f09ca74754e525aa06dc5ae319ee548eb77fa244d53f1b2e288c0c7f3e7040841f3f90780d91be7525c59dc00e02a9b0a05b59385f9c2b8bd222f29794ef1b34d5a54453cc0ea2d7abdef129923878a8f5beb458b01c6043ad87fb517c01cb3710c8cb7bd51dafb24d0720982f18d093102a93483b86f8b2db33c632e779b46a5ce0d48e647fa7c0d096211009592761c31287b791787d830374453703943e14ff45036c83cc4c471661245675488a1920c4d217bf6efd3f0a4fca3a6ba8b117182fc70ab2498ed91f4baada18a0a38c887f8515ab9d0bd005636bf24c50a7f979124e699498995684d1b9144cccd1099184c4f89c07a89e427dd6b1d299c3d3df32035fe3b90f2156e322570c8601218a3b14c361673b454136b281f0c3b5e4861638a00d525986000c32be94d856d13df7dbb1e0feccc5ae0cea45affc1028c4a02daecedc0da1d5cc3f70ca7b340787bd7724436f235d689166c139bccd25a9c8836db229c6b5a710ce2f9584c60d97306541a873a0a90bf29ceae496f7f30373fb80784f7b5ef34edd76f34e5874de3f82e2af3c66ede8c916a868dfc49b8e9588ca7cee8f74a8571a2527ab74c722bef40c282f16e5bff309e49fefb97c300439854f7e73831bf860053be47dfc15ff3fa04cc816e50d06b928cdd1f6e6c8e33b6981a255ebde6b8d9fb5908c7b2071e7c43ad5dd0c01bf7482d9eb72f26fba752172f29a1a1143fc0bb249a0ab4578a6c3e9aeb5d15813663383eb94fa933a1e0369424e5a7cd4b44474d5be44fdb633781c881bf2420b26ebdc37834ccd12eb75f21d07eecd1deace6d301d9ac22b83325e194a1f53097f0186cf6911d709c6d5593acaba12a0bdf9211a7affba64d3b68f96d15e1cb009619cadd9636c8de33780bbba8e7980d2f2918babeb04e0d5d539b16f45f6b0331ce875c37e59113bb3f53ac2e921251697f90ed0859247ed194cbcfad7a6b9270ef6073076a5d663f6ff98d87becef4f02a087128043a8452fc5e74ffbe9e06b3f8822c6f60d8cbf8fe6b28807125122b469d419eac8f67fc2c860f046c991d3b82f5ec1f44c8958798a8bd5cb0304a0675e0940e53a94556cd450f1e016b78f3e16aa5e891afe9689b1d82551466dff8b08cb7c88ed3624a7f792467813d861fea8f18f950099fb4027a9f563229eb1c8c82f1a19fd1d145ffa1ff0b37f97a0be8cd081118a84d8ff2d5a969462dc07711882c8647ca244dc438466679ad47eaaff0fb8a242f176269bc8089bbe93ee8637c1880624b1fc4a9884edbde07cb1e0214e23d5ea799c23bf912a66dea4291624e1e2ac92a8eaab2fc701034e43dfb254c4671df4af55bcd00e8bf47e769f737c15d92c0903ca564ffdccc5b2588b7f276b8c55fd19b435c0c50527ec132c5aa3dc5eaf5502695eca6cb6251304c8cdf3e32aa6bd9cb60b71bfe202f5538f22b812a3522a9550210051ae8bc2f3d7bb963b05f1a1b16af49d3c409374646cf7e70bac785d003bc658bc24e3a2b8c71064916875a80e2caab0726dd6a91a8dbf3d3a12966f6e534166b11bb14d24948aafbb17462c53a9a0ca60c9a720c229c8a74614107f9cab842b73c57c25b24e37adfa433bae543e2c9a36d0871da389b892c8aec7a587d22a7cee49c6f972d20a04d827fa510db5e6b1849bb62c5e60ad361a127d72033cd7106b2a2a5099e837ceb95071c65a54b01f68e31e59c490e102106be460ed8ac699696279ce2413213bb412a060ea9a1160fc2e240dfe8b9a9b6061fdb87932f562fbfee4f7075c6dfd4a3e55bbdc85b72c5396c7fbe8f454fd4180a6e4b7dca4ec30b4676461c5f4a576caabf1017dfa2089c44d9ef080b8d8285a57799c4927abec8fe5625e52d76462021d59f482910ac5a80e334645b17e0bbc84d4358c841fd4a7a2a170e5a6b6a3099092ab9b6014b20dba193779011aa91e965e1fb347adc05995b33f8c92b4cf35dc55ec256bb2988b463e07308ad11bc04062ffa033bf0b6543687aa11b0a5fe792a7691b0ecca53ea85a5f0b5a0472cf0862e4b021dc6fae7450b00a5ca972b8213de29ed6077496b2bda0ed95c3da6acea2ff053b92ab311f731de208e6d48479ff318e5fc48b23b12bb04b20d71db802e59334d5376d428babf895435e00153df05af42042a3349d28ec9a1949558b1465fb43fdfcb56052b5e37d22efad1a5b628c24efc70ae9e5d9d103899bea2751340ceba3078f40915d4f636de9312385139dc311d451c08fd0772615590b2527c9a652347cdfd1d7773bea8e627d7d123adda8149d4b5ed8932d0ac6a61cc6a810cc8a974f629632cfd1853bc1bba2c2ec0a329a8d08dad3bb9c549b54a97c59169391d5b14c462ed925a020ff1b0986cbbc4675197b3c757e93805692ab14d34ef9445de767073fb874de8e54aa7a39b47616405bf204d318711ffd0aa729897829d39c1e8c4f0f71d31854559f09480e6814ff42d7968bafcd17f8a3f1c65f5613c23e637369e9ad262e1c352d73e14385822954c27516b803891a94dea4ccf4645062cfb5b376b7d7a365f3e0a690d8fe68338c7d3a7a3159f9bc6279af92d288d8ec0566cab311782cb30e0102e31867b2b5efc3772963b3fb3a10046ce7b684f3e7c8bc7eb744224d375f367396e6f861820071a350fdd63def29fe6379960a0a55c178f6a15015f21c5679e28da0aca934de0f87bcfa424c2b9cf08642559eccba206ecfc09927fbd5e306f02950d28f07ae7c1bf4f68ac070a5027fb34eeed1880f2e6b2b34f746c0a0461fe24ad1e098e1faac681700cbbc44d2cc255d4e8b95ba62e04ed2d9b58c04bc2615c1888bef2558cc11cb5077e6d63ac09b10268be800c8424852c77c563ba217c4fdfb68dcb95dab6467203dafa2fb347205876da3e4e56adab80b81a22bd96eddec99bfc401af92f9b28f7825e7a0b069d262226885a1199d741f6e2ae3bac6cce1250c2816b0c1db08cb5191984a4210c756c0c7e118d7e97f153ec0c9dbfdccfd6f19d34a97c4e5bf041e813b4c396ced36acc777dbc5bacc30c1b3625acf0bff028956c0e7ecc0fbac91380159763c9b8bce7a8018a2dc36ab121dadf830fc6e05f01f0919c91f278773608822c29283ec1b8c869f746c6e3394b824ba1ae42e84c66b69988e7c49a7a68d138c6e111e507a585d67f878587c32d51d7b178cb64e53a3f7c2718097d6a2f7157afb9f7661092482fe0fd3c5bd8fda31088f7f04beb3b07fcbf15e4407eafca18a8050e9522f8a1dba7b3be999d43bda18e18a62b0cfa4e09c8d48c81e2a4c10f9161cb486cd881f923787730153b40bdd4676bf3e5f650b9386fc5898ca52c432975608042c80458dd88d9278ad62a46cb7132a3497837df712cdfb60284b3f1094305d7e06584b48b89b430f0c1c046338812c1f8a8bc4bb743ef4b74db4c55b8ed09e6ff5dd8b3fb7961dd9f510c682280161809e1b8320582b22149250947411db5e3e51ac66df425e8b80ea3c5ee3166f2ea07ce36608009e66c5f4a3a49e29794f234fb8f92eac5dfc94b9ab875363e4b08930bef6b89c6806f2b0c4db3964709da7552c7e8e21647b92e0fa0cc3290dce90e41c15130caf6a796badd91554415050959d712649d7b2b28f398f93c21d1da2626ef2020c7e362504dc0c97e63b767ec49d44b5593e529d9a66b2704c04a06072bb8cc80a79af9405ecc586895880ab04bc8efb2a2886e00850b70c8ce9930e1a4d8040781e2356dd0992cc69a8506d3807958249e5c5d8e11bbb3b801c14545a663e3ff270258cfc1e2e3b7a4b63350db5e83a32b8991f237b455496b8355297fe10c8bb1f6c0927baba46652d1c6e2091ad840d622275b6ff7ecdc06b740d825249301e8c9abcf80091428312a5dde83c18ced861811c7a49bbbc2f33c7a2600045be4d1891fa07c87dd40e511b721792c5e1a8f5f31964275e01c26ed296ed490435117990cd61237da9331b8839d9c68e088172cdee58c53b8063f2b5cad8301a91fd026370a38b48556552a3c3e5f2163dfc97736d7e10d098c633c539d78a23a7165b21c8226b0fff3ee5a287613629cc837adc942584d8e446c578cb936cb5b7e092a635e301fa83c400a32a820b80fb7bf0ad30b23700633492d5d99c2c0f1f9bd037c8fbbeb74504c5ba29e46d5ce1df479b4c6b5c9f99984bf7aa90206369ad562d01543086876f9357a30e144faf718fb335d75b7f2a9f3858bf1b4aa92a979620c4b52ee2c6012d7c0c676d2029493736b832e7a55ef2c108be0c087107af3ef5eb473b58f171b8b358bb52169fb174099959ef3fc94586d953b631b13b5e144fc30a8d6aa35753230941f444c08cacf3293e8c18f4fdffa0416af310d5f672d89541cab533be99d5d4a6a722c549a3148960126868cb8bb51096a2eaea760fbab525ab5f634aad5123016a2d5c202b98ce8e33394bccde595dff54a7a5668fd6b183d318efbd4ea3baa21c0474be243c957b43a3ef1af885ecf56a42ec81983c372cbca21a4d30bc9baf7ff17fd5640aa69058347397402fea30742881b64fa05463cced2b91e7dbb6e2f4ce9295af34387a33aa0491c66254e4ca6f4c18a9830b16f970d93ef531aee83ee0be7e6dbf0453d00e18acc1ab6613ef5a8c7b3b1c8d4d7a35cdfce5ec44ebb33b3d49600708ae3a54ac54339b35d0c8b40686c622ca8eb961aec959502b68b47b27f76ccbd1050366df85c78c9fe075c06e5faa3a2b24d8efae47fd8873c02eea0118b52bae30d3b55fdf11a3e8c4efedad9a8262e156a414d9578c516feb43875a4c2b5817350aee45741630d2556ca3549c33ce91114391fe67389ecf1861f5d3edd6c10540aa2b179b6507d6e860ed1418b233a03165db53283d1ff4ac036fd88c57bb93a9737ca2facc6263576803346e6013970bab8acda6f6d3e7fd7c216d24b5920908209444caa149d6b32b12a8eccc5407da997c295b90b1d8963279f0558b24fab73760880cf205191c8c9d1aa4864383c94157f160ec14acb4127e5d64096fc4df6548e8e4f3dfb4728574f2be730ba252b303aa1092fe338ceba3abd1042a27c412a87258bda23dc5255342f8a40bf99e31f323475e068d2640413e0634d1a211f6fad2df714193ba4a2a18e64287fb6ca9652ed4c03baae81c0f98d6ec3b16302a8c3187afd718eefe97446ac3d2cfbe41667a10cd4f8211b5570b494654366681c61d1506bb4b6a86ca95ecca42cfd6eee9be8768fbc5a91336e8a88d27113343b414e5a8c7dce3c0cc7007e1071b98e1fd4187146d49f56a61af5aa5f872e48a40a1f7969b08e36d299f4e9c74628b52f7386970ffce75fe1ac7b893489bffd398934c8ea443186685fabb323da7e7c9750b7500e65b4430461b7b354004500fdc15cab0527ca7d0b268cea7600f4af49ea096c459b4ae47ecc31be93a19113287aff3b28302b942ec48a083a08c76c91871ccd0818447ad19e8cbcb6908c1c33265083442c52bf2faa28f543822bb1df000bfb1d3095d178497210d30f05f18f104a711c3243a2db103dbd7d630a61e142217440284824e0047c8653c7243df3d600c5a31cf08e99b7d7bdd11a124b49e3e2af966d5c90432b0b18034afc048d6959166050c36a37c984c975f268775abcc8d340c4ce97fa74a8ee63012f28a40015ee085a9d4f5fb1378e8fad699a18ed7c20507987bdcfd20401b543e3e581bf9d988ccd6404ab8ba53afb7c9ce427bcd53b93f50a83401f8eb6323b73d0a61a42e4712256a51b3c9639799f7a03b878a8842f042c3ae3d5a3860a343a7a41349fac042095f7dc934034fbd55765751e29211116d0e1e881ef450cad4f478df965f5012579e4f69e916d6e9dfe782e7750edb26abdc8890c991ed9af6f22280415ac7295e06193d1ee682dc4a5e8c25802d63de343400b87b060268ec071439e5a1a3e2da199367a0a88dc8385ca301d26cd239241e4498f43b1e46cbe27dfd0491d67c28c765dc60ab40de385679677aea155f4316cd1c1d02d3bac35640be75a4f2caf4d0a95fc1b10f8343463ec2b7ce0dcf357e4102a259eb470c51ee3135124c57fdfe943ca4626150e2d68b41068251bb635121af7dacc262f2eeaae886b8a416c141c2a5e83201be77480c6370eca909b3ab768afb3f817c53af992b90c94d267650b642cc0fcba52cfe7adede322a91887ee1ae254afba26556790deb12ec495cc645c7db8710cb7a1854586ded6015d978abec2f9d274dbb4851e1107b2d79b7c5b587b5918dd1acec33b8d0adbccc4885f30e835aa605ba3c96b73a05fe1eed700be4052458048c82f942d6f55fb73573730c827a1946ec806f783ff1e78e7900b6f2e471a832473c8630c40307021d2f8f1c1c40a8982706c27beecedea91791a7bfe3a8aa02fbd41247a53811a219c8e53081cc29b5274c2e9c9b2c53803d00dbbc53e7f8fefab1bf30191ffc67d99d143b853696bb9f6e30902821557c2385cde7fb55e902444e8c9aa2067ec1bcc26712330c8a58fef367a8b1e9bbed914350a71cab1ed0484a172e0218f1f9f2f68642f8d4b5bd76a874095725afad58e412143a18bce6104854c1d4c512b67a59e445f72c78d172e550fbc4ef207e34b3f224c050b0040a07908bce3427786c0324adc73a8b10051261ed5e18e260859f1d5e34df0cc10c93a91ab9445ad05443607562e1202be8ee0e9fd44ce85956d945ce4994e4e183d4a4abd027c30dc4ebbcf2d694a09e558c22d85339a2c526deb30a215b9a97035d1cb567f00c0b63c3678543dfcfc7834eb207a89740ec905531026f85d5e8408f819cd0b1c608fb4df28d63ac32958636b58bc96b432c4059925074c02a0dc93f7f23c9cb531e86c1495159a8a9cd502c544674cf340a515329c2c181f4cc567e0c64a3a91f8c13b134d3fd163486d3eda7531832a54e4e7d5af330f82e1dbfc30674f9744ca2ac7b0a00814246739cd84ec383e11557eb27622c352be5f1a6dc05a474a5d591797873e48981283236f0144138979dbc6a962a1a56a007b0a0a510bbb908cff29f38a0fd5357724c45a399eea1a479c6c2bacb88e2eb2ed31910d30536c8c5eda66bbb788e64640d1826c8f55bd41502ffc0c0bcbbf6070ee0fcc0f667b2bbf51edfe6ecfb0cf1841d536f86c5b436e037604c9ba89d5582c3ec0bddd404e7b3582d96e739ab2855c5c8dd202e5b5638930a4ae459745ebcf7af96d8a4e1ef4a651f114b6e667192d64449c0c3f3b3fe330fe08ed4d96ef76dc903e8f8e62e6efc85abf32b3f64e3bc5bf2bbe2e365b00be597e2844e62adad2d55a9a3468ca983ef970ea62201140feca0cd55cf20c6718e22d08bf4b6a66b8a07c35b8b07062502642ddca8e17b6f08f1bb17a993d533bdfa87a2cd8ca813ec800b18fe50897dd4578cdc999121aa491fb5f7cab3bd55b310a34408a93e749a495fa553cb71c3860615bb6202468d65a77fcf7dce724c2f7fb6c9b76e4a66f5b46cadd2181c4530712de3f4341f6da39975a5c95c7a62c0949d79ec38af9dcef506b2187072c7e4fd2dd908ceaa89cd1696b0a571a514e6df414b67f450218c97ba48c67aedcceafc0f43b3b8486e5de0666783cff30c6fc82652028511c8d70c0ca80bde6ae1fc29c72307eb4f4ff7b083c3bdb17fe4f0a60618fb341ecfa5639d47e0f9a3b286be736609578a15a43b8942f4d22c17890ed8a6eab32183cecd717f6abc72425595c2bc321d906e0dd294aa9e71a737c736b8550fcdeb509032e239fae29503da06337dcf011f0439f4133d9950f1cc3a6d3ab270f25281c1877b69cff9c4b63129240a61feaae60ca0a98acac4a1681e063b55bf628b14d9e742102f2eef54a185562ea15f447fda459255f04abc4af832c81d42d0345634947455cf5ee981aff0ba1233904d0043de5f7ec6aa68d7505b6aac89b560d8089ea2aaea3e4ae5f24e5d653636e3df6b68a8f7ef929ac448c9c2af841376aec4cbdd17f7a9bd2b787c3871b1cfd1da45e3b2ca77255d8eaf3a99aaac4db9a37c95791e4e77764b5d60ae9b8b342e85e61495d698c74e022b95f2dccb7e17622940872983c0d7e96cb7a13d705701191c51d37affad087682e90ce63ae521fc000f79c69399100433a16696958a2b88a772ad18e0b52ba9a6ef3580a1bc7b4f1ecbe28c3c025ac689cb87e11d2d80b1b709d669a44bf4060c8b754cc093b02a848a18a02f9171496891974e88a049409d8b4f32d1e08aa24154396c47e5b11f8d94edbec87176f0c6b127c15c4bbddc67919d77c3ea7ac4a6858fd60ed9c782c940b8fe92d9ba63a633331fd3b0adc24829219c9f9351fb931f90aa19fbf3728c3ced32609cc648b46b857dbd4001dc09c04722b1b14fb21694f875bb2884210bd6fa372af6a616c04c295cfa9af88c597714f654eaa522d4f8d88a117f7b5a717c36debe6df5f91d3af1f58eff35bade5f7292a8d97a0ae9237212f2cb8061da49da794eaa427d31ecb5bcc2bdec9468c1d2118e1694195cc3635229fd4fd4b1efd2b9843d5e1bf137f00111a3fdd3b55654512c5b3aa057437b968ba3cc652ce39c3490e4380530a9ac6a07fc0d081d494084eefd22ac606e4c9101b2fc5734465952d5fbd5944b7a51f5cabffe74f6ac8ce47d0738002bf61a9e2020cde9fcbb442c0033d47a69957a5b748bf381b1596e9b0a64593e057cbe37a4505a62f21d22289b321757e9217eb529f4ce98aaa088d041a157867c83208313c91f7e071e88ff070bd8ad22a2c3526f9286a77e1515cd02a62378a460f4d6b387e08965cb98a6d1cd227bf8056b1f6fa4f554a2868718704a0eb3bfef7cc8b286329624993e12d6900a8ed8d6535ef95652c457386c7f4e14d0e9ec13f73292c3faf4052a31d83a0a0963a2a72f9acc91765838bfc0895bd9d3aac5bd9a38c088e107cf807482559735fbd4b62ac45df18f53d6f37363966c0045a2f28e61989724b88d365d28d67936bec4e0bea554ecd28de02a55ade15bace189797c334fceef94457f17431ca3736a8bbec830f3e5131e07d21f13953bd431c36f9a50b756827470cc7483d6251cfdd45b0a4607746e01e5311b3b6561c6f237e3e17475af00cf53dac567ce989c8ea6fe28367d2917075b8110b8ff40753ad2f2fb5d54fd3fc94b924aa18501e18f98d637444510aa964d45f904c8a3a5ad6b8c2a5ca9a495be41d676b15c6668a9dabd10cbd42eabec08ed92920f393a14427f82a7418bbb66ccee28372ce746a7cb38fbafbaf39e0ea7e0fdfdf2a2793121f5d8877c502dd48b4043eabe631841683059e3eb06c01081692563d555fd29880e61cf060e68bcd8b3b02a0fc20dce8661113f7abddfc1d715e8a25b10c4a21c85bd54e6ba63e6071ed8e70986ed2e2b463a25c97ecc8652349ba4963b252b912e34e58d7cb5fd1574ce8b06c69ca961401f4d3c4ae3244c7234298d9ba50afc0a7622542da325ba823d133ca6d6dde38000ca0a7f32ae6e03305e0cbd1d6f44b8daa0de9b3e08f2312b49fd9061a27a98caf043f2a163cc192c37e046a04b2ecc498d5a0632293031cb6066619aa5be8c56430040af509591245f457c94ec00807ec029f30f45d86005d8572c8310b20500b7c46acd906342ccc61b101096161dd893e8d5a2a2178e85f67b89420ba32a9672bc42c36d8ac5abb396b48f2fbc07aebd87d6c7c2d0ffb6230f69c0c6c753ed15ffdc63c2f67282507be1d80d2fc9da72bb9cd1b31a5e940a6dfa95ea239c83598a83edd782d2d6caee39508cc52417ddf0fd7c997d5668ed8445e363f502e2256b94582fb2d268a3f51fd1a71128d955e18bc198ba0b4a8c65bdf54a1433ff6e92b2b87d444b624ccaad1660fe67fa6dcb5507d06b4744b4192d653e88cb04f62ca03599f363a731a8135b48a5cc89d89740285672590e3d7be99b88280698a668c5fb6455f27235572fa5b1f17158a3910cf1f190e640a5654bce52b4544f15c0ef1f788faabc44fce625fff1495948f54c66ffacb82b55fd131810cb88e0ae2f0f03410296d80c227c98a8de829acbae104fa48f99cd0e723c5f0d2ef473d46fb05d1e84cb9b65e9f3c99f7299f6e180a0f05805fd3cf4d449166a1f8cfe34789139baf4330c0b15ceb9b87eb6e3e16733e3aeef90aad11a38210fa89618369b750cf7150fc481c7c258659af07a826f447cf0e2d9579a0a43b45e5fc75e09966a751f22040d8e00cc8e3454d89b55ad662194c9d8fc686073089f85d4522ceedd5ac70bda383143d10f51c169245fdb8de24f819e29522675a4f683a133ee925a549150e8d1efa3c43f1f0cbab2ff374f940a037a61027759409c15a5035fe966b4bff54aa593c47b6a56060142c030ac93cccee2da54dafef7af4315bea1e0e47b8ee80f3371c21c2113c8c8bae40d1970af1294908fddf1643eaa7062be928b611f95ed63a3b464efbdb7dc5ba694920c57077d0752073d5c14be4b216c387453b2e16c38ddd38508f94361ec7c28ab6840511a7860a0d080a201e54a9ae4acec4dbf1f700e6515e7700e0fdc67bd8220abd308ad876e39dcd7cfb0f3ef86ed5d4308a1aff33e978e6838d8651f30136d1ae24f19c3b41fc1e18ef4e795d9ef7768f9902321eba6443abbe5acccbe0d46b908fa77aadedef0dbeafc71018a5500fa545c88826af4a9b69004c6c18c8d121ca480066058f24409429cba0824a633d7168e20a780821056b0640b3f48726a28a86a0b48a0332b496c61085234c10314ad81be269208a18c23f7b3c76a0fac7575866659a6bde7e30a42dfdc9eeb317f9a86611fbb4db2328e4dffd85d4bac8cffe5f1310c8bd0bb6c3d68ddb256b0bbbe4b2cdc5dc2b21c3a11336eb0f1a487ae50cf052d66b63c3277d67c331406617b7a90b0822596e8e911a28817f473b7b4e57d17a1bd8432e4b81b329448ff3ab345b8c40de1ff708ea5b74417a15aca732372b489c4a4172edf801bb834834b170f645d1ab82fd425d0000474110abb1822b23e9f599ac14e20ebf3d991c3013b346a89b6de59cf5d0bff06512e425b5bee86d3d7c4795b6459b3f6d8e83504096d36884beee3a2cf34eb4568dbd45320010dcec8b1e22f3a19315cea9155c60c7f1925adb78bc2172f069736882ed741d4ea5c869075864f1297a011b2ce787103d3bcf0e8292ddaf0d0386b8fb722a277f05623b9a9a8a8b8f8dae3ad46a3f721473f92a315f9f1472b3c54f6e58f5454aa0dcf486e9b9423397a1595d1c759e5ac5189959519e4ad56566c785634e5e56824a58a7c15a9a222e5488e469d0d0f75d1d5b7529152fee85546a3d1caca6865349a3ee45442f648d16fca5bf1a8f04685f601140af5037d2fd6bb80d5a9f6b6ab8bc3a3478f1e3deebbf85aa23ea3cafb18c5e9030bd5befaabbcca4865f4f1555c0bc00f79f1fe2bbeff28f62f7ef45e4cdd77f18f625ddd81ba50f9f72e4629ff523a1efd2395ce85881cfd6e415dbc0d56f938eb68aacc9c90f8b744ead4bb0a44c8d3628b13cb0331c4e674739d58e6d3e016998647fff56f07aabd6ba28f514a9148f4b544e316947b6d37d7d8a94a536f1ae3be658d46f15f9c55e55dbcffa87b2f86cfaaf2da0ed445576770ec167447d868fac04247af124325ba0ff81de0a1f28e7964798c25c6c7defda3ca3b8bca632ad3c7682a31048c678101e359586000e05948efc1c80fc08b1ff2de90947ff1706eff68f6a2aef698a1188abe17839b759bfed8634fea5e74a486d90f403704002b53767507182e42c4cd7a2cbe77970ed6fbc71e42163a3489694f3c04283ad585fa90816a433770d11e9afadbd06dd111df3fe6e0c3d26bb6f4b8a80f4dad7e9f1b972e1b1556698116ff718c52924831fea3be3cae8fef037efd008dd30796aebbbb7bfab060380a24177d5c71fa7c2fa6c6e9037ebd7e7f07f8d7fbc7aec6bfde46c72ed209c4f4614d25f6e17cd306ae8f6088b2956d6bd76b0bbb08897536a767738210ca18b72791b8d1368af1ba664a393cc525fedeee1d3bf5f908bda1d4114f3571d98b87e7c692b6ac6bd991bdf69acd4973e182bbe1edee0dbdc7058c2deb5afab3b739615d4bff3bd99c8ad89c92c41c2ee9ecc81e9b40b2d9dd0c1ac81ae30ed3bc20ca477089bba53beec42349287ffc619a203661403109d33c15178e504e2da1ec439979b810045ae36acbd90214688d4ea2c714d3d4788411a6794b287b3c82696acca15cb324494e2cc27c396193bc01e5b8f360f8630dded324868938ee8677731b69b3b8f89ac541003b614a646f83b16ec61d21ae6783dddae28e7bdc893bded06143e8dedededeb2611c7c0de320809d3257b58fca530dc3cec3307a20fb9790fdefd4eba976e761e83c0dc303df6af82cef4e93a15906196490c1f7c990614335003140c87b5248938c991f332ed0ac0e08eb2f08ad7f9705dfb22610d6bf0ece1adddf465bdf6f753532a3407b2f167cded5c2aa05282df8c820ad19c81666d3c3827a9f4006b4361420d9424c03697f3fc182f6bb698d682c564f484208406b0fddd0760b6ed7e82716eca116e21fb455c5105c53b35de335916bac530dac59e15c20890421704969b95b5f2ad5cc5c5ccdd6448e5fc32ecc08da8f9a9a1afff6b7d66b56e703077c7e1c8ec3979bdaec5220a5baecd71566e79428e40fb7e276416c4472f997d65e5c4896c3c75b746cc4f2424b7033ee86735c8e37335f2c42d3aa46f9f1e280f0622257b8db5fd31afa66e33fbc21093e336cfe9929b43783ffe02855a7c07f70546bd145740aba882ea253d04434113d86266217f2c0344c9b9a68e4f4600554f768b7d8024cf39ca0bd0ee01cdcf5e0529c3b7df0d0dd3c3c2135e77440eacf0e609806827c5a1f14da5c6ad10179b45836b8e1ccf1847888129b1c4b469e4ba5999997977d40c728a5d7f00aadeb2e2e2ffcdc5c4de370aec677103264480dbce18202c93573b3b81a8bf26b297e23391714487e96d586f2c5d5c4173111a462263e224411a2fc2e3586b4f1cb3744831124f7376d9f89d3f784124308a2f43da184930d48a9857c4f2881a21a7d4fcc000bbabfcdd8d9dddeeebddfcd42fa1920cb9e32c5bbbd6b77b7773b076390fbedcd1813f23defcabc7f6b3d8c09f8de5b4b568899e59adbc690de1adebbfb432fd75ac05e91b2df7737fb410676ff5a970dcbc24ee052b8148e842b2162517027b2aeb8140e0547c2a1e050702680a8432664bf45df5fff3366dcbae00e15585df245cc294fbf05447f2ccf1611eb1529b3adc135fcdfbf55af360aa7f36051e0f1ee3d9920be357c095e93f32cccd6c8c19a76d8550f6805e4b63572b22488901b7d2a2baec04275850fadf28798f97f29c50401a806547055488d3e15155f9882c4e8533df981d6f7c21322587862c415aa275150a7f567861ed08a3fa01763a8220c2318c20839d041821545b81e94154891c416ace0031838e108562881521855547113058b1f40418253ff0ca6b1c1048ad1fe1c6dc25af085220c2d01288b204efd3b3c951552804058893e951531a02af4a9acc8d9818a72767adddd970f9758097f1b0cf4ebb3438d65415e3fd8e9bd187c6921aba6c282e66c7aa70d6a1fee48200655148ea89c84e10a59e38c114dfb2ee664d8b76459dc9450ff190d60534ca9869270be8282d619ea4357a0f5862834b3301c58cbdeeaeab5c23a253688cd1a5febec9fca5134fb851b73359bbdc6bd6f13d510d0f76264b362588f6b15b9b4af61deca512eaeda4aa0af9bd0c78db0972843948001d0f7afdad091b6466f8d7d76419bbeb97d5d91efc9583e9a4f13a9acac401ad5057d2b13a98c9a4b2eb18b57e24eb232dc3d2bc3ad646558e55fab542aea5be32ab2324c73b54087af59995e46b8c43d8517837fa56b273c9825bc12bfd575125e0c7e175d3ff160f8af1638418b6c8d5e3d197e9a56bd127f477115e97f145ab09f5aade2ae9d6b5ea9cbc89512a94c179d647b56c9c2243d4a6a3c5a67789172aa57cabfaff01aa29fffba793496368e7f3f611a2d0bf009d6f33714afc67b32d7f3b79366c2345cfb3c1aa2a7c2fada5250bebeb611640bd55ea564994ac7755be7d2c58cba8d258a55160a5367e8424157c42220589c0a09c9f1e0d1609b12cacff570a8cadd542ea7723a954b556ea7723c94ebb6aadb4fdd80ea2654b7215a37287553d5ada76e3c75dba95baa6e3a94ffd52da7e7a76a405513aada50d5a0d40d45eb7653b555d57caaa6aa5a4fd578aab6b3435a6a2713aad950cda0540d4559bbe1a7e970507644b68257a38facccccd7ac05943f1be2d1348f0e321cca8f658180cf201685daf0fc189447c34ac057a9bd6c533baa61f865fe00b3c6037c8c59658c8f999514f335ccfa353c0d343c0ccc97668da537c0acd2005f805949057802ccfa04f897e7f3f20298a83679cff6b4c905f033cc3a33c3ffaca5ff6ed6ef7ece4a9a3f8059e5005e06940cef326b74f9965965cbc3989504e359667d9627cd5a220db509eef04e9b6000669d01c0aca595597fe55dcc4a5299558ee61065396b9c55be6856d2acbf3b94ffc8d6b08e58191df0f4f860a68f504e006642c0fbe0f58c5ae5c42bf1fbe0d15849bc1ea6b1522aa6b176b89d7834560d5e89dfee731bfe71edd3268b4766d6788059658c594931b37e0ded4303aa4d9610ccacb134ab34c0aca402ccfa0440bdcc3a43bda74d57ea1ac0ac71ce2abb59493febcfd023801e19668d2eb3ca96594930667d161f22f94e9b620e046a539c7931eb4c2900b3961e00b33e696556927431ab54813b9447b34639ab4c9995248240d1a7442b048a30098c09cd506dc250d8509b30a08639626b604f783229a6c1a0d8611a8c07af068f0653f24afc9124b3591f4361a8a1d20e8a87f2102605655aad23b09e17833f011da6ea309f17831f011db6eab09f1783ffea30274878e2c991584294d712ba7eae947572247dfd40a198e3274702a34f4341f1c99148ff8a5ddb7636747b826f0336f2cb5aac0713d2d3260e7a30cc413d16d6c3588ff58f5e1ce44244b6e89881c7fed3471fad3b5b70f89ed58328efc430149798560c45f93121fc188a69d6aac210515c71635f091bde6f58b211ad1814cad8106343d817d6f44e351ead9909b220289f2aa605e57f5ba3624394a78d2fa45ee9d5e869e30b469ecc521b38950c0f2006da7b81b08b0d53a25c2ac56040c692199f95937ea6a92e2f3e04843e69dae326807d9c40b2c7debb1df1b30924fbd830fdcc3d1a48fe1d892a08e87b312e1cc8ddeec11cfcadc903cac502fe6c28deb1ff2c583787c23a83c226e9b0debf0587ebfdaf09e1dbd02e817c4b75839e9f1f1b8a5eff5eaa3544fdb5ab631a65b0aa55b9976224bd8a69fa79f23b3781fd1defd7d229b5a9020ce3efb14a527cec6b8956804dae83cd1aa37d9cf585d6f7d6fce159df13ea2f88fad4e66b98fa3263685d1ceaafade06bd98f085c331501ff6918ff9e961d9c73d3751a26023002af61346eeb62c3b4a96587e8379bd3f5b14ddb6f13c8f6a2c9ed10bd3681685fbd877af51deaffb807ec899ba586816fa361e06b968e95822a0a6bcb8eb539695dcb8ef7d96713880bd99c74fc63949244729d16daa17555426df2550f91e493a09c7a48a2843c87fa348ceb407fe682c482646bfbdeb60807ebfbadd94272c1f1bfde8510c92a148ab215563740d1218ba5e9bdda1e8710b441481c456b0f187d4ec4dcd0989e1854cc4dcc8d9017d4e3053581fdd0ec06fbc17e72c038a415085d80c0e5504ec5e570394da06a2a2de8e6c86ac3428753f268f00ca6ef6113264b6e2061e1caa010324a319e0024190040dfcf7b262c05f43f24d30c1af04b10881703e90a490596aa0265611b6028ff5ce96a9ec21b827e2cb3e4c89d9764f941b6f8e0f47a1f29f49a6f7dc5523af45fd387b578c0ad87c5524c630463c234efb50fc19802a6a88b72e8ae104cd123e88dd0857319b13074bb67ba6e1e0cf7458267b29eaf2228f36f0cb30fe74a77e170e9ba119275e3b96e584a20fb7d675da16d9d5c373f9cfa156433cb88aeb7c633bcbca09d42bbaf07d3fd4afdb0ffbd3f1a32e8722b83f6ee5377518e95446b8be3b5ed392cd5e1022f12897534b62cedb32c7a3468f1cb38914ad29d75b512d3788dc55c0e2ff59a5bf4c1470adddf7e86f6df906387057a7c4048ce113b49544c7e364813754290681fc49f9070b639f8f3ac9366cf6dbe39bc706945e36410b2fef53f6a1e7ceec636df93a9d9af0e7eed99d321029a7d8969b4ef7f9c0e7f6d56a6990e9f2f3e641175e08f6f837d2c752e4e1f5be21237f74291f557574540ad3967647069e6c5c89133a51dd218a3c20d07da04bf9f6fa233216bf7d07ecdc80e973af56274df340ca783730e97ba7a2af5803ec1096f1ae607b2720ee77011a6d1619ab55260d02c6903c9cffd245e599caedad0e863b7a0db6bdb6cc9f1e8f6351cd7cf3d7c1bba5ddd680f34dba7753634eb7a6c149b4b6465aeb7e27314fed86b5fb17f18867d6675bcbcbbbb5fd06b22ef6665de77bf476465de5fefbdefeeeeeede210f38320d3f7f05a2fcd0fe97be4fdb14597264bfdb60d77f372e1f91d0b2766a310c2e31320d5c64a0bd971a8021ca0f55f04587d7e4e17f3d57211f8d94ab901bb85694077ceb21b7858c6cbdf6b89aababf1eb520e870bdd79ad7e206b4aea4a49e188f4bd18d78ac21f4b7d9b31004340f88f3741e548b8139c89c5a1abe4cdda63e36ebcb96471e2157e9af0a00e7dffb0a0ef9bac788e388edf08052d51a58e8802e5a749129e1cc67922e4b3c4486a51409c4860868c75a125f4bd9194a3a238f9e949522467e809139f1d23421805e444498f4e112c38b072404c29569f4153fafdbc17a3caa00f0702d0e741c87d7f2ff441281a41a13d4ff91151a0fc3449c2d3384f847c9618e114a3a238f9e949b2453667a8c76392a3b4f34563c2bebf6ca0694b40c29970241c0967c29de04ef028dc094b8822891552e823020db6a0249794ed961dee6f73ea0e88c51b471215f2659f0449e87b027d2a2252d0f7841349a04efd36a72ae8fe06b6c6d2fd98591a92b5d4451e5967e8bea0620ad4e971379a0548a84f0a0f097487647d2a2e044169f04d1e1c042c4824291ffee37298213e7f7310da7bb1a03fab93f1c51a8db7c5e1ff626c09e45bc982addbd7a865d97b18f6ef9148148b0fb1b89fcd7d18e6d9db60d82eb610c28fddcccadc8010016ed34576e1ee5a96f5e8ee7bd01dbab484b4c734ef5d7ff95b0e65fff5f199aeb7e6e3d2c2ebe2cec68330730db4f74cce6f0614f27d8dcbcb8420f82e7ae2527b8030be5597629af5d8c3999581d6848fe9808095811f2106a185d1cbdad7a2cb61f778a13eb18530d0de4b0bf5ead1006221590b74c87fbd08b2896447f6fc98639f61d78ca7fdd8bdd36b9308f82f12c9a54d0340a9bea023837633812e579a1fc887c4a09c5006b268dbe01e3027626ea26067ab83818284ac91728ffe51d1809a81c9f4fe713aec0f5677134fd6c36e07a34e41e8f3c129fc161c3645e1f4b15b50ef5983ec90104e1f29d4a71296cdf67e518ba20d0305edbd5407a2ee43d85df840d8c7eeb4d83d2a014c024cd33d5a017f3f95e4b261cf9607f067bf833f9b4090f403c99ea7dca101e1d7667cdab4396ddd4a6dda667d6d3e86790983e441b243534d20d96b134955823f025bc50e8a803a8920c80c228560f2829308826413d54ea828823af1f357efb1e1af7b3fd72501ff0ab8a9536100c85d7376bf2c1805f52f2981d618ea0e743de99f9fc143c3f4d79987758d6a987e1e7472fa59e7e686b428c93a4224929428ac47d685b204101074d2f14727bb6953dc6998fe1eba50b462292ce5154b5d2a1f2cf5e34cc87a7558122f46ff76180c9e4ca7ac206bdc49d1feb8d3a6386bdcdfd91f8647833210cfb43d18285b63df8ae1d16cf168fca1300968af0e7dfff10981d69725f8a4a13018300a76378fadfbddb5e0e028140a45f721758aa21bd32cbf26a242f2673a921f4b4208a5cd271e9e895127fec728da2bb02e685dd0bf4547f765c12520843e64b53ccc6c26e08b7f38d0a66fae86b1d798903cb4a94ff05b74f8efefe441f96755fc13e7aa967336877f70b6c62a5142ebe27419f7e8a8523ecce384d665f2b33e5c5ac225d58bc1bf4ab6c636e1c48bc15f170894873635378b94d07eb908ec499b40829cb2c93b3b90fb75551e20d11e4898531f6f0bdad3829d3febc757bef295af7ce52b5ff9ca57bef295afdc95c85aa24a4a14ca7e43611a489fca0b4592b049a472214cf3545844a1fc45287f75940e653f42d9f7c9bafdd0a3b1359240eb8bab3a065a66c49beff57bdddebcfe9e6746c87de8eecea5f720ac0113b01b6afc8e3181052c2b5c826d12396118f8a2200ab1b7c1d7aa4dd9508c525e582772e223088af21c8240d910291b92246e552690fe5956b31585bf0d758c52f646b9639ad23dda2aa6a9a255fb304d5dd93aa6bd84693ad2f510bec8492682d972dad4a936adaa61e0934852768ac22849af89ba7e257eaebb5e897feb7e2c6519d6de1e8142174fb3d77613755cb775a2558ecc9eb117ad98a61f3ecb8dacf1afbfde9aa226356cce3496680ad4faee9944ab0703dfb2f66935345f5b031459af753714fe77383bb4be053f736112b6d232ae8aa1f5751ba2d0122de1993ad37f154941e1ef123675f3318cf5705aa21597e05b0fe1bf173879489e16ee61036d6f30dd9797d2be18bb5c0d37f77ad98677a5b0cf2fc7e0392011d6341c2f17d076e3987e291b84aca9f981cb220f42d6dc4097c3b1d6b26867d0f7d2bd97a0d5188628d0c210a06a4181c14dfc90a24f08f435817242b5e56a2c1722244482fe80d48af2624022ccccccd38ae242128a50fb436b4c6d29116a4b8988c86a41690b8a05c5e77cd58242f953acd0de0b0442d68d7249063108821118689a0ce4e352864518830c8bdc2d336b9aa6adb6da6abb6dbbdb6ada8c6102103a747bfe1bbafd3322af5273a9b4ef61190b0b10b2ff7a0803e9f1f74b6d8a316a9123bf387ae11256a2d667338fc6f6d66b9b8f1da2efc5b0815aef5c0e90c3817f9bdb1340ec504dbb2ea8e3856a737d587a7dd639603a4b10fd5e2c1884d69abbb1bd9be3c9d0251d4fe1ac7267259164e020fd6d264438018a3e22980045e923820972a8962204897f107f4af9f7d263e8ed7bcfa3ecf14aefbdb7edb4c013dae18045757bc30ae07771055957c92ab18448d196452e6a8bdab8a84867502dc81ccff195bac161fe01fb0eb848a35a884371a1275800ad9a38f1e96125bc84793845d9081f611d2ec238723a10b81cac08b77836f72051fe289419e5587890d0901326ab9f254928f71ca18cc37a3f82726a77aabf45a23e795a96cf28840d275eb1f002baa1bda669afa568acd928f6b0bb9e99afcb6ad2b0b945d67337834b391a407a591c97b72eeb6238338369b087655dedb1d123687c9ef13d0b3983c4f1492e5f8a898b13745d127237786e4d48c80c2f6b95828415121138e7eb0a5d9c5127db3378a960880ba23062e5d0ca42939c785d990f8c10c48f0f0a5ed80298f000e8844d9b13e6058961da8b217be2b07e3bf8718a140c3901c93ec8aea2b4e084c4dfe6a4615dd65d41663a6cb6ecc0b0accbe66b2de0638fd3814477e90648f07d58afe9d42744ea6ecc0bf2f253edd1cfdd80b30769133139a204e7b794b9fde81db37e6fb6c6f596c57d8c1f45d7accbe9c868e46ae26baf3d2b72372c497adc0d4bb3c116f6a8a8db9cbae110d9b41b22384aa886855c9c8cc886cd7a719c0e5ac77137b00d831b112238296b3de14814faf43591e4064dece0099da1af891d28110a4393a5588d3ff2ec77b3e7e4f529ff54feb149658ab2093f723a327a5d5ccdf5db6bbb177763ff65d495aa90fe32880fb5de46633ee31ce452bf6f929e16a29b5f21b7673e9fd76eed81e93e5637e374d0e8ce5da20a797dfd76af3333bbc4caf0125bc3e55a37d0de0ce9f021843ca073a9eec20e5ef0827fbdd5f180cff07277ea16b420649abacc0faf87f02db8d66541ee7858977559d65f0f3b1ed6f3af756df1d160ea16b4207c7ef564df565c2dfbd6a8f6dac6d28fd8c3d2fd0bbb30ec8aa1d6c738a743479b63d176ebee7dfab0a7d66253d4d5c875556e5d25d12ccbf6b32c66cc5dcf9dc32b8b5ad4b4e58d1616b118addf2c2c62315e31fb88452cc32af659fc38796011cbb0d8f1c0302c8bd66f1616b1182f2be50410e55ac01f46425cbf3f7485e067ff381dd7dcdfedb49df5c5ea61ebf66b913fce300da743075f0a7c2930bea7700aa7f0ac317a8c36f829dc18135f0cf8be85bcbe463a63a387061e8debe137e0d1e08733500cfb19a6193d7c194ca3f2f0678cbaad935ce25444bfcd365afe8034a5fbb154d4558c72738b35dadcffebaf8c053698b3feea9c7bfbfb3be9eb81ccfefdb55df696d7c6a3d174997fd0ded55deb2385a3fb17772d3a78d06b561b6cb1994204b974fbb1bfba5e47817c36b6c652f80d80f1cae1d487a50c453b72e2e3eeeeeeee9ec54d290b14ed8f99d1ffd21fbb7084f66f4dab087ee0c490052dec36e459f029fc09ae04fadea1782691aa7d9c10a9da24cac9c9c9c981b3fa4f4e9bfc090f867f0a9d2ca4acd8f12c7828a398f027b8159e059f82f2b34781fe131b46f8179c38f8faa7509c50f84f9f18f2a3591bb683030128965a129612a164c55242be4b48375840c80e9347838bf4b013d4a361e4d160ca8f06e73c1a1c376f22b1eb4114d00787803fd0f79ec533710ee53d4122914800203d18e680da2452591c5073402d527140cd19805691ca00b4724094df7f68cb3389e2006a2025e06b50518e13aa36b13c18fece076665c30f65e6a71261c1bb9aa797840f5be83571307d5cb2d855b462a92a5a518ea888480949344456524e10d3542c25f4c334553a5951a0d4124c0887a74906e5889b80a8146d15a64d2e15d108020000c314003030140a08c42281302822d7767d14000c8b9c44724e9909b320878118438c518618620031c0200302240322440100013bbcde27e2566dd18795930d96613cf3ccfe086cc1b64076d1775d7496e12b8bebb1ba30e39337b61b12ba0ba88b55804057ca43f1da77f83a5d22f74c206cb34d43bee498c9f6d17148e89e470745aef449ee5e22d103c16d6e322d064fda90e865b7bc4968b075fbaf6e06450476e1a7344b364f747831c6d934d473bbd852081b01db54dc418445bba63596c08766aa0e6b55b71553768460c9a6a26a0fa639415b83f054686bff5372da2837eda788b131c0dbd32e82d25fd004d139ec474ee79656a0acd1ba73ba84b08d4c7fe0050493e7fb49cf1ebe6f1990d94e555212a796604d62c404feed99f52491d004bd947c7a6d7dadf163522414aada803f74808fa5dae12d12665cae11a72eddf723b13ec57be4b66ff77cca28ada5883144a42be8be81a08a0c830ae0968d8db8d1426c7e58eb409f1f808f017ce39d41a7ad117e637d00cbfd38390ff288e13ac4fb3a0fb21bbf663b12705aa3e5a544a099d5a82d2878773ba6960b7e7af4a2ef44206fe1f2a9f09f4f166d06ed92efa993344efe0a833be0792d303191cb04dc00415343cd07f76bdfc7d38d346f447fc67c23527c7776d37f6f30fc2ce3fb619d8f2d10c8c4ccf5504bc9b62e144ba39c9e1bf56060578788c3ed3580e1d6945a0852b7c957023e9fe1030d5773619c084810a7b924191b0313156d35e55e7f083a21a0b1398e093e446a44cb4a4b40674026a47858cfbb24bcb3295a784e955476bd7f29c8270d5d3c46f0aa55870ae1242e2bebb69e73101e4d7a736a69009a32a5e190f686774a2109d369ec0492828a75bb8cc1a65a47cfdb5072a7517f70a156ff97c9a46d2e85111c03c18fc7905298780964683587b543cb381fda95bcb824081f04d53658b80b4b96b622501a14e01c62b781e9e86150bd7d50ad1f18c40ea56bb9c126dfd8a3e0d7b26c4d73acea79e1170869343d4dc4a55495f455882b137e9f80ee1750835c861a27d2899f400f4700f4e8eb000157d02ce3419cd1756f32f53390c80fd0f966588ebcdabff51b179da1060a770cd5873f572c4e3fcd6d61ad27acbeeea4b55bb0ca0fc956ec7de58e317092f8b87c9b5e6e812e07f8a9750fad3285707f982f77bb1d904b6ce88d2707da6b748d5217e1b86ff4026faf116bc3ebf9540d4873d45ea8e105f645bdca6ae509d7d395d1a4227ac361c396a285fe4efa02c818be6fc9dc91fa2c01084b3eff4a3477f0efab5bbc81d9a1c1d698c18e513bd0310eb12d6039fc2debe7d61adda466b609ce65569dfb76b56ec9c39b9fe8044d607e76d7a85e5ef014aa446503effea15237102246e40a76bf7fec98a6ba4817262363c07609ac94492374fbc34cbc14071c560b492bb2a134f0d577e7280de4ebe48961977cf0e585527605e426a5fe0060b4b7f690c0f5bd12ccddcc460663ac158e7bdaa87e2c0ef5d5c88021d7b0721055dc7502cd4befb0ae24430881e82385e8451a1ed0bb36ef0a78ded1b1530dbbae9271cf870ad236ae25c005c4aa7e256d42eb0d908ce243c77b409093e48ee833b9c0ebee55340a773b67815f9717b1a913e93425a282a696c0f04fec4e94a83de78c6907228b2bb7ba3d3bec42dac7676a2cca1940050e54bf099e726c3330ea39882b3d8195e723458b1f30ddae5da93ce7e48cdf8d8cf575a3013a3935cc78f6ea67c38bc1fd154026b03e46f4447cced10ccc27f130581ca889f917d0ec5f9a176c2a5371d33418d48f9020852c24f85ef7dc6be730b429f6f1365ae39d5fb9e3079ce789a808a4b3847842acde0d2609ed4ddb8e63aae859e9b71eabee391b1dcf4bd95665b316bbe81ec47535b99d8a608cfe5c2be3692d462bb72b2f3b14e8919624d68e270a8600edec85c28c345e1bc462451da47031286f60b5d90593aec03b2ed8dc0d760866706893c4de838de08bec362ae6821d9fa73ab9dd6fe6a40e84cfc2957877ef4107afa1eb314d2c62253b2b8d29cd1e060d511e6d2b467e09d5881231a04eaef82b557631a4b441da82772345490c1c75503d94b615f25807636ed71639d033c89e778ffe3a67fd2d8ac523783130f33eda0d981b0d56cdc160026bf00b5ffe832abd1b98f8e073bf0273e9c898650b1b0bf936e7038c9a8a74bf92378b6b1dbe2420edd9ee7e9b02154bf83241300b8793a0431f54cbdcb458eec82d2782f828f1d8cc1a341e8898acaadb5c34f0850900a08e17d58934abb1761aad6bba98dda7cf1a8992109caa4a4fd43491a7e4e7dafe63b2ca0f937b499586baccca63bbbeeb73e6188900d3e74c1dfa3f207051e3542aa958100f0a9572d7f0566bc5dbce5df4b57729d3669a6a3b145d8872e80d46d05ba7856bd1441e7e9d001a2547948dd78510979f4d943d66952fd8b41708f0e03aa0eb37d21ef934c74a2aa6b5534f699646edd8b16675cd44d1442ab6c98037884eb1ca8f8015446b8d6d06f31aefb930ca689a199464c05978719b37531e180a28e528c9d18f11ebf477717f558396ad3434061f22fbcef269b776fe4747ea18ba1e1f70c3b1c70c478a07d76097835e4487e7adaf1b34b623c03219d27c15ddffdeeace89e501c2368965979be3f618903798d119577d83ced1d7d182482645bd1c28c91e05c9c37562fabf58934619dbe29c2a083394249e258747803b8a69e7817d766dfa5e83cc285c647a119264823c55b11a4b4ed5c3155f526b567fb1cef6a3a85883df34b7ffb9b689a957d4100f977468b7b84cff3fbf152f68126c6853f761029eeb9dad419ac72d97ed09a4650e0c6b0ff282650cecb9e09d238a7ecbc589160b5c49534d4a6d492ccf863afc491af0305634bb0a62af6368821e9e40abbecb1a568460ebe925c2f5ab782a98285f1754a6f574b920f926565b578838e8b57c83c31db3e416fbfa8aa6559b74ffee4b42241841015952a2e1576080b76ec03020bfc037d972d4d72b807c192009f0264a2a52c816d64543a9b781c902a6aed6770b520224ad8ea68577a3f59406dd9b1b5aad4351901f8ed219c4c8444a0ba17ca39c32687c52c1f08e33377f10b8f90bda800b3c0e2193adff2389cb991c2276a956c511cde4a76ac757a57236141df86832fd0fe2cecd0ac47ec8e5bf16e814de88848a627fdca3682dcd7f13951f67fed78036c1794b7535d40bfb2ebe888253e6bdd5dd107ba5119af21007047f3cbcd6f9f3a111e12aa31934d832eb920831366fe1076b64f7d6ec01c9e8b19c2e60647e488146332cabd89ed7ee89f48e552b180881feb7cddf4de3a0808e31d9d46b5c5785866e25dee2850e040d6bb46afb7df4a396523e5bfa073ace3fc4da8bb2fa9fbf9c34b4e8a9ca4820a0d82b1ae1aaee066be8590e1b2cf989e77a47bfb25b583c69f0950e99c5ee9ed655f45e5903c21ef4b83a49d94c1a0ff39104ec81dac4b1647e57ea87d71b5db722d4714942fc16f6cc4c835f2aeedc6d9611e0d3028d432bc5934e5b30c1ca1ba59063472f5011d714cf332a13ae428f1b86b6c74f30d555492ebbff648b6f97741a0ae49947d9fde93264ef3b8b00a5c1e533bc68f8abfac08f43b474a73d74290683cc1ab61b456c526bd19a7027ebb7cb78114fca864a605a5b8a251706f3095bdf936f84684f652e22918528b99b5775fc9a9d1c585aae48ee3aabefe2b0039d1ad3469108aec66298dfe72fd05a859f0a01c5acae705f22d2495cef477e91ac15455b42c4c86478d0791efe5b604c2d39feab9806abd8b0893e663c8acd0f9762c7a80cb78a70467b9672f63da4e556f10375b58f003b382b27d2270b62fee2fd85e0932ce69997802c32394c9c41e7b7866d39286e27c4b2f239d773a10f680cb7f08a1cd62c4ae5aa64ed2ac9ecd592482237c366cbee6ff35f1cbbcf11752875db43552b39adc4a0752d920f8c0e649a6645681fb02c4bad830eb694a50c15c56e56d582e48489a5a80c78915d314dda43ee2d89870cf1e966df9e7a7ce9f277e2938fe8845578f2315687fa3444b06ed7d9152e9ecb066364011131d248a6486ac8a4d44fce7c74ecf12e276c4a0e238c5b3a197b55a6bec4129570a86c4e03c3baa611c765f2f290de122ea0ceb1069333038d173d4f6afc3c94b2b41a3d1e58a307d801fbab6641a15837b7d646503ba8b5b632f8988f62e1dc699935c9bcb2d93ebbe34ff9f941535bb30f65dbd029a364e9aa2a341e075d874586acbbcd2a2cb84a29a4b2d728608c08ac86914e98742fc7ad92a7efab9f164a6f90bc8bb8d382f428551204f21c33e37bbc7a0f5fc2a04d4a42204ad3336b3250662b0c16f6b4b2994fbca4e4311e03d0c21b6225ad4e05966967f461132909ad42dc56e9c6ba8b10358a4a2fd90dfd17e1fb466022e37714da48387cd6e84ef8d18a4250c1519d4f3e5353f4d8b224d6c75067a58bc624eaaa286ff9a44a6c0b8d577c1763a8ccc532d5e59a2fc235fd7c4ff909393c11424a961255d6f902259711289d685120a0b40be34ae05884c60782ba57a13ce8af32b7390f27194c3f27b299d5897b088e4acd0e3e305d43f1ac5a0ce0bfbbcc1992bb2f1fc2c61f9b0fd04a1409e0eda1d0d74a1912bc31610dd96902771859729ca33ed32236cd1204bbe1c171e41abb7129cb8d531f1c4e88595e7452df0dc50377e8a647e8ae060db78a016460648d156fd46ff2909b943dff63408394f9b2943734d97c5ec293608780dcffb51b15cac37df246714e67c9f2da3f45cf194a28e48d5d363b740eaa9162149296596f6045badb3179547a9a3e65f301f5271be3b76c04fc8a361c513096e13e168b0e1d1a74a687e5e8f4ae64837338d5cfb9d1b9c9b9737e0eb31f80e7db8cbe410ed11d67971c8a4756e77672140bc2373484be8dcb7571da10ae81fe66369b6ba160fb82c5b8d21a730e7323a9e1d1ca5d25cdc884168742a78405fc14ad69d695e9c4193d75ebf1c3136f2add2b12c3e4efb1731a00e080b8794f648447790046ad296f2032f374f28bfd211eefc34e5c0154edcc9cf6a0ea834eb42df8fc1315c4a47ce9dc517a75750806551056c4100b4ab55731a150106bec472e8e1284065eb090474a20d291de6b4cfc584fb7802a22ea09198a9b970b167b3e659829fbb86e2f4e47342a7a9c7e87f0e3b1d7f88d3582041f3b842c2a667feb7ff189801af05d3f5463c15d900ff98ac5f5f331a9059e98688ac2595d75c1e841d7488c6f96a9e8a1593dd9faa04556ae2674fbe4833b20cf25d12021e87af5fa0b14a4d8e988dafa5f2339bf7ca439b2b56012b3071a49d4154860ad50efe7bc6c12865abd2726165298b55e5d70a50f3d2c7bde1efaabd7b6845a727d2173af97c9d58ca04e831d16c4992d2496c2db1411ca2fef8e1886e92a146539c7c32e4eb3b1dbc26f870c9e91ae0404e49191271d4d71e7cab1856d3592e70bc11b1c140451213f3a3cdc29f1e221b02be68a641fc2fdef1ea27833c95657d906605ff1c9acea6327df8b67dda81008ac32e4dc9374dd504464cfa0e1a00053e728246512cb0bf28e03f6d4a046ee87a58019c0d3441819bf254a4c6678078313011dd3e9699184dbb59bcf2f36ee55b945262949bcfd67e6205e1b9bd373a4907029fc307bfd245b6d5df287e8a726e6ef07fd95b1f237cd09d989d906003544f48f8a71e9705a1f00ccb395df67f4f33c4cf966f8024b32a12f026635dd38e24bf4b10ccc5613e5018b42394a3651d2b12892a3b4268ac4a2941f295e13c5d25713dd410d8898d02bd3fca84cd8020655eb7cf888e724d9ebcb0edbb8a40bdb1288b7f0f2ff5d108c4b7289c8964cb799a11fd4e95c32f608d321f5fd78264b80a1a94db38280c57e42d8490e7cc1b1d80811dc3bbc9fe22eba1f2b9b182be5477001dc657ec0f9fb0da86c959fcd4c1f8aa05a11b584bb94920f802da1084f4260d3904620fe0480d0c8a05e194685e633a6e15a0b21bebc1fc95ca0b940409b61077fc4e68ffbb5c2c61334da673e82d88f43b9648726934327d97c7b06bd6347729ebc3dcc23cfe4fa9622bd1244a41e226a1511c11b91010575e2fa0a07718918e26157e1bd1716f526b405625d0eb56b4290f361110a2c888cd662141306f9db01559a8226d5b7692a2e86169f2969c0292100bd65c2f09a3985e89dd55f5bf34752f08ac93f3cfe612ca519e7e6a108b140010f0841182a343d6f2dc99e58a5ba8374ea49e34aeba1a6c76028dd1024cad11df7803e94d46d2151023c47391e4054bc24772cd0df7270788a5017155eab68cd28309aa05a211a825e2d4d9872b890ed34956654219977838e53cf36ebb61ccabc44cd0405dd4737b8191059b550c064e35a2c6480499038d9ea2fc0f51c8b28fe6bdd039cb458be7a0e8bc4e472337c539ecaa4018a8e26ad01e34a25243c3732d4ee48257aeff53fe35f4253faa699f36847421499083f908a9cacc47853389b0ed09d8dd09c67e000f65bfaf80b7a0d44d8653b87a785ce3effa000c712243b2cf06b11be9f61a1b1c14d04bb566297069c72196a7183aff7f448b0cb7d11ecb7c838855842ace61d99996723f4eae14b08c8fdb7cf315a660d286a33e78c29ad8e60af08a84158048d797e411f67d927c977e15ac9c484d8a9cd476ff263e277e40bdca79a0f60a2469e101af43964170cf00bc0ece98386a3ad3ec1d234061d5510f75772ba3d49165058c84fed92c1630f0077ebabe722c9736c290e7095c42c76601fac3a619d4f245fad8f5cc4993ad376bb7348f5a7b258cd45e6319188e4f7542837b11b2409b1c277edc476cb1d577682ff73f751397a1d4389be1e3821c0868d9b9b395afefa8c1397a020e4715e38f80c7f6b7b57182fed4773fdf7acb64ea78de7c7e968afd7a5598081160eca79c6a34bfdfc69dcc6a94cc5fd097b1dfe81002733dd3e065ee59a23631e91d5f1bb0fa1f1cca61f6696648c202f82005903db0d8ac0708b12a3c0b395245288618b648ed8ee4d172d50b18c7b57ff44d9b71278d67c40f36232439d4d2133ae03c9e220ff32742a61a175e8e4b6be72edadd432048d118a39331e25bf3b32f70d98311a0b80856a58e01b26e8127e3c2afd04b92c7b19e571d7273a8d081e4c1fa190164201380c70de4e282240b93c1dd13a8773371c499977ca733fc2598d0ba12b37202aec8833a8fa529326eb776c1ea187ff5679bfae155a12ad692872f88cf9ddad49311755fc69b28c9427170da32632e0ecdb16e16684d902e09ed2be0bf1b38a3acd7824a9688fd9c20e4c3e083f8b8f66ee67ad48e53b20a0e1ce1a08d60da398d71c76ce1fe057a246ef60e42ae3e2fdf6640ea1a769c75ccf11e5eec0883121c6688f2482655a94091aba059a8e7fe5dc9d66db4508b0164ddce39ee9bcc0765e216f057a5e22b8653b28fcc71a141c4715bf4b62a8c78803e33670a633796e8576bd4361ed1a4b5e4b6a7d275e5780ea126267955e63dd2b17448ae716190c568256ab982bf878a425e1d80005b871b036cdb65d40f2bfd3e51d0304a04b3d7f0a64f78af8a21ace6ce7093a6fe91a8ab139178a7b0219699f9ae5278bb08959b446ca6699fbb0aaa618476247db5b0f27da6fc588a3854f4b6ef3b0aa6559a17356a4211d265292be007f7bc415e8af3579247480f450398ef97c583f75b6767a3c8030023d2de42dbeb4d5d8db9659b1f4df1f83a70a4709db69318dcbde2865b12638649e082d0fb0c617181dece8d07a75e7a022850758067b93bb3d8fe3b92530168e22eef0d435055d8479af4da65dcacd10603deef93363e41942369f0f6333a3db3f18ff777487eaf59ef48356eb2048bfdf53944540cfa2b9250cd820cd1d3bda5ffc582c5ca458b8ab1442ee79b7a7bd6361a64f84062703331c2de2abbdb4d7323496b02b0eb12c99db80695af102fca925c90c39ceb6d7b989ba16da9b857619e607504e5e5ec178fbadeb8ab942c1f03a6f07e007c7783dbcd0b75d079bfa755376b43b69471b3b136644b3a05eb790f5a82a2034f6f5dcfd9875f5fab30ea0eb2d195900987afd0d9c1ddb2edd4bb6c5918c674eb542255b978282f102e5f51738f5bb4fba2a8051fa7f58dccb9d851f2db767101ed77acf1029c36c08d1732b412d10debaca16e7bf01b43a0b1cc4c343c5e519a9eb3df58cf1acb550648a40c0b7a130d5644c2f9579365b91d9b0ebebc7111f309d5fac64f949e0ce54c763de6bee1651248fa99f9c1b80615cff730270019c431d3b4764746298d4ef35e0da843062b3e436b0d6c3ac56cebcf5bf8f38fc0400f92fb24affd37b261cbfb7213a0654ec7b88daa45752c6047c5bb117f677278607a90fbf9845d85465b2f8afab94d871c7f81990b9420af3bb7dd41df215a2ac60637edb18c184b832c38e7cd82c4d979524c7df91c58bcdbbc2c88a86028a771af29117a07d584495017d59a1cffc1538149a26c010238394ca6376e2a0f513c1719cf387d70e8605abd5dcc6def3f421a632fd6dc944a699d04d073676a0d030ba1c62ad9c3376f70d7596735a895543e7aa17aa5a6b9e7fc4e153f2dedff5b80109fd1de9bd77f3cb4c0ff992e121ed80d0357d3b7889a35c3ed492c05de3810e1049a1c05d7740c7884529f045d4e11c209242015db3fdd672301878c4ed136c019008e40f1744ef3bbd5a6fe6f94c75907c399268940570dd0339441c6503bbae030e246ecb0aec9a87728c184a0309b10e5a569f2d977ce092404b489d86a7213415f656ae23a42aac046ed1d289aab88e9f288b8e2186297a0c015b52f1b8f1e3c2d249d3edc62846e240fbc6f22a9d6ae7d2035ecf610e118d12a9d348e6dd6503bbe6e11c455ccbd1470e2242d180e63a3ddf4f8ca507c610afdfd73292e31c0d3b1a8c48ca576ef22e09b8d114fe42e43194eb7dae4d64f2092b220e64e16656e8c9aaf371f10d7af4c186e6b45588445ceabbd37cd8d4fdfba977af1ca6e21457d8bc091f1f0f2eb19e6a2d68a203580dacd3c7dd23b4c9bf854eb5666e81fc521685c53f23aa3b6d556f239e1d92837eae1aa32736d6690e1845e890ffe45db31fec4e2042dd746fa051d44040884cf467de2ffb57c0e553e4c01b85c5a380f8685246f27ae7926801f687d437cdbdd4931fba88f99a47d22cd6622a95c1f528e0c03ab71e9f7983d81270de32c274ab32421b9378369cc7477a999beb906aa1b1d16b4e782b75b2daf5cc0a84c6d9ab273cb0ba27286b5c92c6de8bccb85905ac1171c0dbf1829d3020161a3b177a5e06d10601fbec2ae4bce51d696e1a5ab74e89c33177ba04f0e0138c32706dcaa59a57a566496f3e8e35bdb5a5a76637df039d3604b21599aefa523b117c012ff267c8995feb3181a161e730efe741652ef6f65efb02069d67e974822185d9647a5c846dfe067a53292819bf0f540e79287f0cdaa31e508d2107c3d23f13471dea65b7ceb3f8f7f825c3bb1f1030256eedf5907abf8078bca086ee5dd854f812a695e02e90a5485006ac2872a9d1622ae2beafddde60293cd12913431a01a970551cf5433252e1aadf74dfde3adadbab9f9eb6ee2626e5c5362673b12627cb7e28b4b13ea1f9b77d7c892b7be5b858af13e00f541a7676871b7d7bf81be100998cab4cc1ad9cb5e4c62089028e23bf400e55430998cafe608b34923aa11e8832fea04edd69ef54deaddd095f065c4fb33e6c7d776217eff4b7364fab12309c037d4e05f71e82dd847722caeaad7f8a15be8cf6c4cb58761fe19d845dfd3b71f648a8133878cb8a7d7e7d68d6de109495d14027020598c5a0d83a3a48749744a3cd810857b93fd53c89a436162b75141a167bf66c116b4d948dd83e86dbcaa95d58a7b586855128ccac94db05468c86e6a9b85b729c79bf3c8cc8158752ee5ac3e6a519de91ddf33c130e98270948f9edaada2ed14232bf76ada48e8a2f7f9446efb34406e88ac73c777e05ae9b24c5b515c67a89cda2a6ccd95c05017aa0bea56ae7027431c259f6458acfd437288abe0ee306aa2c3a732ae50fcd9cad2149c07005d8030491515409bca5a878ed4f89f3e7664d531c499d4684efa68ead45eff65c9bfe9a825c46d0afcb2db26957bde64b5261b4ac31b8a1478b366befcfff942f8bb2d8d7d4bb8887d222e8ef97dab9e2b952fdca0b5d056be75107a0565e5a049a90299d7c7cd9a2d213b80c4bd9032249ac009e3c8fda2c84594d89aa9550fbee505318204ce07ff1e5191c3cbdf9e928f2d79076a913f29cdb65c9684bcd4a7a6a2fe77844818a645214fa2ca01278069493cdb2be9d6c806b0579515e2d7133d93b70046dd5419f4e1034bec38880fb2688572bc45b3b8d4e2c4d97db465b96787df85720fb5419e5cd27de283edcc0f38137a8a88d69973c777cf05d8d03a0e21b5647c427138addc885c9f0a25a294fd6ae4729f648057c7b4578482bd0e4e4a32f191d7725315b7cccf219bdaea79d9b34969ebe5560d541099d6d0aaec658bb22b11d5266876d026b93b5970d42cc24431f02f47d80da1544b4e639d092cbd38a976b88b81fb5e18a72e874305c8131bb8f6a6c289425fafb5f8c3e4000dda0ad0993d57a5d4c1696440becdeb6560a33cc3f39ad68dd3325eeee258b0b6736280adadfdf8a579264a1fe4896974bd7f72d0de52d62cc783efaa8faff36524d7dfa3cb2729681c86631d7e46b5fee049b0be04bfef9782147956f52d084a81e3618fc463855e5901be6d9c36a653d237a93c5da4ff2df8c90090f84bab1b9422158e4d84af3a2e8b2c5b4cb0f4790e706d7a752e2e00db84961870bafe8e4550a4ecb88291ef6d8d9dca6854f8a7045542bcad3cdc28ea10c5746da3859c3cf05e2efc23cbb1a319a57eaef80b687724f69dd6b0632d6411b15b66bf51fc46692d842b9f02b7f069d95fae66e9d59c3deaab93690ce83dfb38584fc93f4ad982329b9605a49e8b3e753669ea86a2d2de49ce3c21d827b932b91cc9db759d7f0f452f35786035f314bca0eb5f87ad551644eac5b0e3ed4b080913d6a343838274a3fb58b8770bb358fd63f1af9751839e6abc61e0e0c20052fde2a73fa04663f876012849e31420b73e2da1053ecd0894e7ad966ec911a9f3e49d990b3e3105e84af9089d8ee8fa3e35352c4655ab4d32302707304cdb4b786f996eeb944081235be49376f6840934532ae1b3eb525d728055481fe397553fdd4c1ae551c61a7f2dac36bcd832df6a4409ccd1542ede1e6935d2248ae1159306b20b0465339cf4f61dabba66a3974d2b56a26ca836716177551663245202605a87afd1c2b267e1e44ecb74dc781e13d8bcd9b2d6de1fc308b08be396859ae5a368b046712f3168b4d0f89fc36cbc9be961a30bb3480d732c15e4008816267f5717c01220fa213fa873b719ac66c68d6ee4f9185569287f06f826601c8d0d8b85183e09620148f8e21232a4313c9a701eb5c69cf9a849dfdacf6bc5a4df8bae5d3ea58f31fa30bd289a47d7cb61bf1b7715de588f2495c040d96b89d0ffc2699a0e211fc5147f0f2f99e06a3c8fe39b5c851df3c1184d961d1c1dc21ef97314214364b46ca54f64738f5abd29bd823178b680dc6ca0cce3029192592fbcdd74869ce413d0ddd1a4408e8d5f9ce50220912131d34654916df3e4a8ddafe6ebd69f7bc3a5adc85c01629189c92b394b35890083a9dd14ce7ae857bcdcc07b8fd837cd6b9d832fa0a777e0316a2896fe803a2fae367505ced0a93d0825e02b3a0d5b16718365b652869f555144b186ddaf84ed4f2398de40720792b5c2c0e975546ea08e0c4d51561e35a275955f2e44c153ca5f37057379352d252c47ab64bacfad070c5a60dc20f2c3d616d944a900cf55dd3239bba2b074d4b779d655574e66368136248cea26d1f3ad5d0c862c45fd1a12e7a30afaca7f22fe97f354d98f2bfd751cf8dab837fde544123fc62dc73ddd5f8f58fbe67fda5394a4d09c635e611c578dc20eed734805631ad8d195fe7e3b9f654cd45dc0a0f0a4cfe5331a9a984e53ce8cdc14d2eb014e52b6f6ef436d1407bee904e0930d022344cec22291b0c75e727a2ecaa5fd28c78c382ae7dfe6d76f6f24be2c787f8b0c297f00ec3f1a39274562b8c54531df93144acdb9a35e91dab9dfbd65d160ec8b24ddd693c0b8a8abb2b4d462e5bed14d6730282d5b3b30f27fb2f645cb135f7e8de5dba52ffb2442a1a3723c82f7af087a227187b6203b3bf204d6c585602a736d99c6e0d9a12dee9b5b810f36e4a044a35036f6a37a32dd99df16858a6c61c3538bceff7061ea3b1b715527632c94ad0ba392c00d440981f5f03e2282a3a48f400d4f73eedf49682c6c2119d1a183fa4b1ff523d08439706bd28cffce9202c8d7bd0c645905b696af3d866d470e2de0e9ae36cb9d482fe0097bf0fff67aa2860b26bc6862ac45623e097c08db8436685eb9d9cf60bde51f5dfaf694912a17ccf8b5d5626a165d060e969fa293283fa3833651ea06e9da9001d092905c6d17daec3fa5e9f9b3c11b49ebb89450c4bc591490476158c76ce4767f7441258d818777c05c6d86b461de777fb67408cbd28e5ee92b44cf6e35e343f2590510fa25a5a7c28aa72ea44694849f14526a0a5aaaca2b3cebb5ee67944967a512191b5e5362406ae706b45f6e2252246b98f200bc007c29d340acc1910945471450345729c941b77260d34dbb63938e8a20d86355b44f69d729c2d913e1f03ee1b7372c45e47c98a3547d851cfe313008fd10e3dd782690004117dc81c073a17e5d9a29b69aea2e88a9761a55565a5a624a71c7d2548ad3c9271a28556bee631c74bc21023d220bd72234d41739a0375978069df612d66d85105e9b8c248c1ac18add7b58a16f9c5b8920b6854823349a5db0d3eaaee169a6e2559557e649387583b2541f22db2a7cb089bd991c63493cc90bac4a849d76b5ee6fe5508cc50ee018f288456ecdfadbaf0f14803ddbbec400cdc6d827b82317653d506ac8558d54572ee2b128fd14d8fe43f7ff7fa8b5ee252088f8ae0a9c6cb6917681ef7a0598876fe2a28342b9b8c098c1e6ece29bacde31da176a8c99d807ef1dccb908a761af0ee0462f743702780b0558042027a66ca6c657fe80de9e509d4a57a7f27f236bb34a92f0cae46c7991c6332c8220502ea4b0964a7b78c9ba11700de1e64dfb5fc3e3d61d4442bc1543f5d2be7c72f62d04b0d8a96013e34e328cc6399c7e1034bbd504f27e04bbba1248b21fd538859f4872745f79181ad4130738103d520859a7ac38dc939be52594c5fd7bdc5393099a2b9bcc6b47d0216ddf725d3bf53bc6e67edc090c3b8155ca2f15ede8ba7372c5849f6e0d1389e61eb4a26ae6551488aef9f5bbb98ea50576f4eeba28f03e676c015a9062629ca389675d641391d70075f213699e80dfc8c297f8a6695e2d96df8758c785099c3e80c7ed05bd3e472b12566295c67ac3cf3bece93a4c3cc04f4fed55f5f36053c3f1194b8b6dfc43613bf26c971350aadce185d2deb0eb385b84f116956bd5c2fcc5bb9bc967543afd7c691974ec94c0cecd10d5bd46fe7fb5791c57dd3d006d7c4088025df82eb5b3c127bf11c956302b7be89208fceae7922ec7fde528231289d49576797f53b9d28a76cd251f46b046bbd973672d80716525c66c32e0746cbacf3841570228878780d18077e083066ca69ac0e6930820ee752f13a04282401851ba8401bbeeffca78d51f72342fdf4624330bf0cfedc83224ac30dd49e7c321561d9ab4c53ef2a7a865e7e4d77338825d405ff8f499450b5894430e2e88abbf15060e6f4567704db1010e7dd789aed46c14b92507efed873bff39ee142ac853cbc3dfc58c2fa91c33f73a3e1a92628703a03850fab36683bdba9c143a4918127cfeed122ddb5cbbaecd69faec8ab8ca93a657c099b8fa560ab16d6db85e61a266ab86dded47f6a3a921f458e70243f8c0fe13327069956e9163248496e1d6a633af210d5d4745358069942409350c466aecf138809741cac78c1e759de049df5394c09b73ce258091541e75999ed7e1754564fccbd3207fb8630f951077f880e9135b3c5832f09551b4c7222149d85305e4efe8d21572f067a82218582af1e8913f2346109cc5b4acbcc55ad39925c462ec001ed1d4ae87420c597cd9e1b55689f86f8a3ea538dde66d01bd8e863cd110e0c0361a8a65243fe03b55b2a14c30e1dc14c883a7a2c43e25fd9255beb4879bc8c13bedf2161197422dd892494203c0064b033fcd3cacdb8c2bd0641037d8416fa22684ae8297323fa0946a96a667c0ad8ac778c1b53e4ead7ee8d2a3a469f42c28b13b223132777d13ef404bb0b5e93507ad226352fccf099246301c0e006ab8bc0b3006fa345adecceea273274555f95448afe627c625fffc0fbe5532fc389d7e681d889016640f538067d9c21cf1edd90a43d622283b3dc3a1632cb49d45017f77d7eff3f5ab8bdcf332f802472a7389036394ea4b8679d9101fa37ca4c2f549d95f0c189ab36f923f3493328a8d68bd91d3786e9ff46da6749fe14761ab364a0a6ad721d76fe98b9019404726dbda8e49e4e98edebcd9a04b50c13523c09480e0acf9cc1752e3d53cfc391d55effc09635b514b85ae7bcbd87ed6cd466785e2cecd409814c5bead400ff2a8912f01ab4345d1c5143e94bb05f18d6af669137b2090a8265f976d414e9757ce0505d34416585ca730778f8926ed398059a70d494b4a51f5082b59f6c123e6f35d801245eb362d46dc7e01241848d4ecbae3fcd815393d82c8cc7f6daa8b14e8a8d389e5efbdde28460a9e2f3839dd552acb9d1e57999a01d16ba4722f9e6ba22b431f58b8be1b8363b2e73a3ac59343cd45412cc6c3a5f58d3a1ad9e2bf8211d644e3ba3707b90b5a098f26b95266a174ee28dc953e220a2b770667ee8352706b517b7631b7fadbef2d645a912fd938b812cc79d39e4d16c32280fdd18213da29ac68ad45dfed573996b4051d8954130d8045277b8904eca4dbd13a971fed51d99eb919337fcf8dd30061f6d10c76ee35d52f2b9fe724ced64e234fbac25d221f11b2e07ef6321be285ccaa12553dd86329c505c58fcc4897b0939b8d8f680bef62029b74b4b8c47de430c7ea54d4cdf3e1101c111414096c4adcb164baf82799f3dff7a788ff621bd573df860535c285ddcda60ca4d4753d0e0d9a684322c2c5bab4d475d03d4ff7bcbb065d23ee4701c0547f3782ffa201b0804590a6403155be871f9f21415f8b4ae019726c11ae5b7f21d24e02ade216858e90e89aac487a41aac4c5d77c864a217b00d8d2b4981012d67092c10f83730fc72fc80fbb7092f324912ca77ac4219469b3bd6897fa0609fb582c888d1882a6ffab5d852bad1bd8b140c2ac78112e93a4809a2623620410726cbaf4ecd3ada59f2b0796e497ec2a9939530ba6a1475471179e2833481271d38f30b59082a2d3fc944187a472b96cb2e27b91f2822a3b266c21b480bedabdaad7abf82761ee7a0283004649090390818c6b74253c92689067729e7b7fb5204c1ccfc61ff25daf37ef7447d8e43307ef730489d5c47faa516306855925ff5047c3cd2d8d120c811194a51618e83406bea8911ccbb099f0a50d22275b84d84f5424fbd998c32908a9d571eb0b1e841c1da67cb2eadb57831dbb8af4c32caaf6d8dddfd2b164c72767813d5b4eff1f842a8d8b626c5f9daaf3e1bbb11d0537adb89fd0c711e3a55345b4d33f44b68bbdf2a5579f53439daefdf4de59e2df739b530090cfb7906b7a693a24cd519ac3cea7fc67988d44eb69f45dc70ca337ad5c1cf21ba7b2e9a37d974896c53a01e53f05a8da87047f056153acb01ff570ebfb304684ac2a0275358b7f4d63cf07fd1fd0dcc596965b25c9fe191c3348ac114a10d98325310ca6cdbc2c56801e867eb97fc1a52a316bef89982b4bdfc7f25afd2a929b4bc3ecaaaae517fa3259518003c690a59c76208d25d1cd82d602f69e94bdaf0788bc1af65b899547a825a73d22af93d5155959f5d8de4820bc1621951a9de8b66626333ceaae83f2304a45c1af534951bb4eb35923010ce2676a15f12145a2072583e2b10eb20360eccb9f8f6935b7c58b27d269a4cae724013031abb9c7127960a7faab6fc469c56143e6759b00fe00a9b0f0159badf5c7cc13bb1cd28368aa3cb5cd96237c8719b8e9a2ed1ca6e8dbd852e732622b01e277ec0aee038a4c870a24f880ca71af767027cd22f1dc927a2caebcbf5d9162aa246c7b18f9470af8ee0442b5741c3bb84124d9185aa10b7ab4bfdee01373fb4fbbb13fd8472b721d64ac069ac0d551a005e59dca20b0d78ab8fe4c2f427566fac27052f4fcf8b58c21b78428e0012ad019a2679cff0ae41c91b8066a2ec680c2e550265d4afc8b2e1d28cc7a165f147038e64583cdbe2ac7a3f51790cc0e10b4f5b9bccbe1f7e34d0edcc60d36bd62dff06cc9ee2041e4d5e28d01b328bb7af50e66f25c2e10e9f1e097f4989903f2eddc479048f04d190cd762afa540fa62f885a7f130195ce114b8e3a2c92947de8761a8b7e7206b0a238477eadc2b94caf6b6ee7e52a72f35a786b11772f407bbaa82fb41e5b85676d2f7e31766e1b783eb580c408fb06cedcc5861032e3f587d30d34f066dd76db3576f104894ae8d752587bafe458518426fe03249992028edcadb945d2f2661df866ee7f9aeb79b26c968b497a636fe01409d65dd6989818baa7b9f10e65142448ff04d7a8964ef881a5d6c334a31fb122b92098c3ae636e6d75b539c94f385190ea68898c962b1e89ddd033cb61f261fe84ca3f259276ad3aba38d8836aafd8a541c33a5ef2f1c309a41ed5aa01a6de8ccd0867fd78683d2b6a4a1953bdf84cdb99a951929f28fbc170958b3a70781d872f7849c58f336cd56e0b576b1acac0a3f984704daac08054192fdb4e1df367d228ee2b8392b5cb065f1121425f17695bad16352f6cb88f28581cd0eaa8d76b99046f63ef2da9a00ef8a73fb9c4b0f5d9119d8355265e6f050518294b23ab9f65df3baf627edd440071646fc3b04f2f767fb2e9c5524c5a50089d2acefbb70a0d22dbbd7cc3899b9b569eda950aabcd9726eb4c2d90442e69acb876d5a4805f17d2e96bd8fb4490a77c64ec350e81d4aebc794c83ea7f66c74ad6c6f17faf73c01e8a2d722319c292be637fbd3e4f1764a42928df5bb23a4da882015d995265719fd7bcd453bc5322c8bb102e1464c47bd531ad0e0524def4b83ed8eebe71a9d2d385d3110b5456bf8372a9aeb8e5ace575b46c8be3574db3dd7a647448685a89855ad5e6171e005bdd3efe5c983f6e367e23c55a899e4165107de9c30fd35b73d1700c7e182b911f75b858651f013b8570696423174380215213259908315ad497f13d9b165f9a4c4f341707caad3caa4c49c921c59b8219df41f666dc0d3e752dd34112498f070a86ce04314af4f3b1352b5281500ba77bc30ebf9c7fa45bb701695b8f9f2e0b13cb6169f6ec6758df6961a7a53dba655e1a53fc3168025a8f6e401fa60505762968f2b0e01ceb03348ee91b0247d8f33a2cda46751a6c3cd3dcd2115a3464feeff63b8c9bfbaa1e2bc13c5662c95c23d73542f87601d9ac46f6f39db6a9155395e6dff7bb1837f31821f46e990d73ad5b54a5a9766b2cd6abd19600b04815d950beee2593d590fdbed32ab5d25425fc3b7e0703376da41452dab1058e34f7635cfda382c2aa461e26ef7dc07db763c932be26dfe288d6a4aa83d665f0ef7ede851f9884f5431cee20a419ecab12ab91084e48c20507285101953a5c3719f4d6866420741d84d87901565ac779023e3e5391df88b6afccfe7bcebbe086b9adeb6b6ba363e8aadb633c374c9e3e35501935084e4ebe5012022e4b40eda83006f4753b992ce6f2f78da6682b0a28e5bfe7bc8b63407704dc0d84ca69a021bb1a041e830810c3a73a92354feb9bc430a899014cbc915610721f1d9b92594c4fd58274a0a1e970d2540b896ef8aa71e310e26b661bbbe7597288874d4ad9491e2f04f17a923f2a933099ab2d39985c2921541f977a336552e43cfab39242abd72af8f4890e90ef4080dc59099c7882fdf9c1c907fbef6ba854d616a20c5eb807410a5760f121cf4f86308fd15b9cda74c8f0a6757b8f75e3fa18dc944bb0371eebd5cca1a8d093917a89df544a7cf0424c40af83e23758c328f2a172a38cd40bf2579aea7aa890da49c3feaff55882173ea6db9180b73559bca8f748904a2b27a19e8ec24e87de92941581a3c5b08f57350e33fe350aa78dd4d76a5facb8e1c2b11f21f1ad409295720da9b6b00269482b71aac99f032c086491ac75b8868c9101446f3996e109985becb5065b626644f7345c681426d817a55388bf900619055ac1d6621f066889f3e0fac51b6d3f27b28f4e0b634fed1ac7881fd3a24f0ba570d549cdb75b3118fc35fb93c6157b11e6b0918269f7e2da582731be3488992f8dcf2501d1ef7cf4d363c7df8976bdd0daaf82561e524420645bc096a41d72cf9066c712b0c05fd2d6042b35a0d919a34270357382773d4d568c2b3e25389c7b58829818b56d0483d0033add26b701e2eca20d60cbff7126516c0ed43e4647ef0ef665c87af847b934dcb2390684e1491a5459060ef369fdcbff3a8843b1de336b0db06963a503d2a519fd805805f8379b5315956b7eb33f412f53cb363d75266bf2e5c9de55e0161a1fdaff7771b13313d8486fb44eb7260a25fb5c724cebfc1536f4628b488fbd0d36bfe821e8c5ef0dadc2c7a6bda3c345a9bee2014f46e0e482c2abab590747949f48fedfe211173c3ac74dd014aec6bebd84e0599fb13b08e1e13602151e08cf7b6da23729193addd042e357afc82979614da381a95a4e85f6bff7b40f9c3ae9c584097ddb40d544a0878543b11261f8cefcd4611b5b4769556944f42da51307dafd239106401461931fe18742ab517988d6fa284cc1af287b572420684d89c3095c65ffc1fe03a122671d1ea7447a73d1e174d02bcfa4d930bd2219ad80a56994cc8af38f9ff88603029c4095da2ec431f8501f9ef8fbcb32381de0679053af802cf559dacb622af6827cce67779c48e5e455fa78458103e83db66b7ca74e157203a840fd5de11ee47d57bc0623ac41bd4852104d9d9f971459382e2b06d4fcd8ba41de736b73bd812ffa5483dc6ec6932473be6a6dc0d27fd94d17cc8c021c4b46849b4a24dd1217f4b63e51110b80e160e434e97b788331c4776174cff9739c347cf86d4fabcd037e7630df2c5258d363f7e34046d341adc63b84de0f4e26b7f8f8002c736d65b19d4ddf57f0b82b18edf59294fd2bedf80e5c0c8d4f1d7a786663ceffd920f7e8be93bd3f00d488631c96d05569f5058e37b98dea0aab70043e805fd65e94c748ddf7fb6969a84d068bfab202afc9ea2e0571d9de93af3b9951566a4bf1faa79fd8a6c5d039540d56cbf61f8462b36260562fa13704909a1ed40bf6ba412e6ad37b7e71eca70b52e90060a3c93b9f1262515b6e9660056c3b38b02ddd492df2d669a34aff094bd20a848e92dfe4a1cb440f916ed59457bdd4f1aab599e275242de076b54829a0d6e589c2e8b5ebdd3ee262c81b600b320dcf215fe0157d9ab591fe627c437ae7abc8d8a647e3c7e023cffe2cb4951510501169ee6d9b5661e84e43e2edf8ec42cf22fbeec64613af60cd861b95c72f8dce068eb8d1c8a9a221fb4d18523f64035a17d95dd43a93f6e047c98e512c40bc9913bf6169319b162be59256ee4f9bff8a31c99131c8e19372434d43bdb2a93adddbba3c1d19ef50ab31f8fa85264b39ddbfc8603a385716a31ee6d27959c71cbc6f6ed5a4f507cd69829e592d26809d2f871c51fb069d7e49e380e5ddf5d4a9202b6452f98f1daad94dd054a500aef353b10a71e517267ce9a1fc1b4cd76b9f93477de4b1c91d5549d86870196a3614108a12284befe59a76b8be95728196ab0041e0d946053a16cdb7b1401409cf59d244d829706574748a69e6a3bbecd0e30dd0fe75b468b368f32e01091a4fd09c91879f6ba8ecbdd936a8b275946406febf01e277745f6c9312b82080e8e098d7526c185785c7ff817e654026d4bf340c25d30458674e969f1a6bc1d2c9e8b1fd1ccece71e1af1454317154c5618b6ab13c7bd00412e91ce275e4c9720dccceca7e263c83b760d331bfde9c29af5ab007c247f7805d5861c27f49a8187ae14389c6c68fd873055a371303fa8f57aadb71f7438d007eeda2c564d18e3ea7afde056ba4d9039632822e0ea33234c6c495f8e6356d0c1b57ace02cb252cb599b9010297d97d966b38c2881be93f67d5c2cecdf801cd29932a7653ea2b45f0a77a584a89b0c81b70128631e1b9ad99cc7c1c0fb767ac0c52902ebeebf514002db62cbf4cea7ef422aac5def2e149b987a51ca7d2871e1a10d074f3a452f3620843062527b94fe508ba88e76fbe203accfadaa61c088884b0071a924aa26d2e9f49965170836f02b228b3cd2f57530077749bd9e8e5a7599c11d8638cc2a8dd9cbfe1ac81f0336c5a6baaaf47529017cf74c39e8b333940a205a8d203f639fe4276f54633ca2ef282d40e42dd4d2d7818c0aef526b0737bf886bc87b16bd725f83ce6e3023404a0ced98c788bf2e22bb11ad16af244cd7038272dc1100b96dca0012893fcdbf18a232b312404404ba1fea6ed6a91dbf88b51650c2133a0618f69bc1cd75530fc6e284252fead21cac4353524a3def11a0126942d9db2cf76da0f785d0fc501a9ac598633f8869e18c7f09143e1bb3a5091a62a66122e584c6623abc1a519694c9551ce49fe3025cb40cf2ac8ae66b83a483d71f1fc502807115f7f2070c51486592a2fe246341b58253cb697c3310171cef4db98feac50aa971915d202e55fcb6c59b2417145fd72d0d44bec07a3df3f3c54e339ffd4129e2a7b110dbc9700faabbc5786864ab0794e40bbc184b71ce722b221204ba433dfe923cb2f0c387047a663c309bfa7a5c390c0fc6fd87f07123a1225d1afb203df9db6c33acbdee92c2e28f2c07cf21e8b1d9d48b18984c5405c038a9a92790de1a627d59f132c3cf7614b396756ee93d690ad1396a7856496c928b42d4ea350c554c297254a3d0b6cd48db2f29bcaf76339aa5eaca3f874b25a0d1c9d3f65c98331cc95e6fe1c1228d8dce178d3f0535861163d5df049a586a3636f2815dfcca26e338457a6b89a3306ef37d626545d4bafef143c89e5964bc01b84f100be8c0b745b7f4773d79ef8232d5a2f36b4b596f4c401dfe4a5dfec53b116042019bba2792dbc3d5962420a2d307676e4e34266faa568b0906b495d97e14f8178e8663f4e1d492b00635a9c5f0e2002a24938129768800f17e2c6112e482a845299e669f894862e2c16ddf91f8987a2b659ac2d9c7312a4f324a1061a5c11b72848b063d6a7599de478be9f2bb10753dd983b5e726c10b524f685315af8b20bacbee02075d10398d81ab60b02ae52ef11cb2759ce14b075dd0d22d32120c4a66487533cae9599b96f4c63e07345421770372bcf782e8aa271b8d67f0f9582c77465ceea09cd3724656f483d27056ceb94647a37fa56c1399be81472ec719af40108ca55cc3ca083021d802ce38af87964c1a00108f66f568acb715cb7c3a0827abcab33747b2ac3a1bb4dff1f0109893c03a1a0128e4f4f55be04bf537dbba8ea40291a6bc85bd27feac3e6bd24159a57e3538af88ce8578a6bea5e492f575dae917069c0c7e6be4d891b584e729b65fa41432b3c8374f3ff80d991fe620488650a81a4cf8968d767f4259c6c250c2934a1f9877bbf5a5ef96ef5136f19c8515b5dacaad470fd200814b861645fc2d0f051387c0e283f89ecb773b7d2bb1c3a9c909699c5151dd74811681b1fc1b71e89838ea7bc4c47ca0a05aef871c6ccd62a18f5902043df053ba8a2c1eba645949a5d6fac726c311844a29e8aa16bf32f10bab9f22a514b4ac0073bea48066c0df0c800c656ccb89b6f09ec5f0284a29602a13032d2f32ed10295bb62e0a339a756626bb160ddd94aecda4c35e3332bef594851d337d74761e78682df1eef44735c138ed11f4efd7a842800f3e245b7f3fcdfd3a5be3fa98c3d8c3a48db09648696e66752c12d03afb755bf0271d198b85fec584b3344f90a3834399a03bbbe300527a81a8ed354f2ad5b878440cc65fe533987086a0992ecc43ef072d5e37a621a58f3c5cf22688f21838ebe9df4237ead8e8455c89f68b30666681320711a8fd6e01f46b65c5522b90d2da878f5811d53325f5e2602c8545037f1081d8822cfc285f53ebbea0d5389953a3cf032e0f5762e3f2255378ba91a46e57a3d997e3311131eaef6da6f1cbad89c46643982af4b3edfbb75561172c945c625d8d8d06f24d4ae829aeec581e234a6c79017b380e3ff0c147ee4ad3c57a3f8c123e3c0d5f40301d9784264c6a2051b63b8cf0580c7ead64571009072344601c882d472018d3c15624e90c2a33865bc686d81112416430088ac231106e46f40b74420e746f85b8010ed6f48bcbb02d558c1ca8fdbbc3782c3421131dbf32670c877df5291998f667c9d69c215d49d110f53c58787e9ad313cbf1e24d23e42a4252a349e220205fc3c611d6c60c0b595d130019cb60d8e7f748f3110a1286783454a2d3aff6f3bc4f0ba3d817c7f9f810fe382c02e49af3efd7987c84c2e6d42b42e011eef15018e986fb36ad8d9fd281917ff9993f6f5fc228ec348ff18b9d4c54c5598e8783a95836a3dce7c152554292e62541cad57e1f8394a50936248b6fd8d0e59c1973cf9a8057c13126e29aec06bbcd819d614ce742c984d8230587aa16f22369ab1faff3d52a219dbcd3eac389367d41dbe5d0583f0394ef73337c56d3140cf79c71e7a13d9e069dfae1345c81c22f871ab40cdb5ff2d46908cb5d5f9ca1877c2ad801e3682aa68018ea57a72190ae35da6179d64fbb526c09b859c0d1fb1e9bfaa2b2941c7fb4e60278f05f8a6435e53db4a4a85978038757139624fc876a43713c22a517bb98c47030b78114e9780de2f1c0996319af006721c82180e5023c87ef1131a3dd14437e480ec0e781d6249a48d018af18320733c78ae99b95e4a9dfe02e263afc00bbcbd6ddc5392929dd7479c95d8c76c9d151e19828c1721f006d49d0f1677feae83847b818893143765953bd435cc7d140b606e31307176b263aa87a6ebc21533aab55f91677f9247bc57accd814bb5bfdf6f321399e18d2ab59403407d4a0ebbd50656e6e7ebeeb710312fad348af81c90f4cf52bde3ed8bc6ad10dadd1a355f2b3e806bbe8854ddd68db717370c9eaf06a53167c7765a7f21cb1db8132f802ae67776dbe16078feb52b31280421b50629827dd86070f2fd1684fe9de9820bd63791c4cbc84a445c901a94796834d5a0457cc5099d867537e63827515b4da364f2ce45c0460a726950c46cb35d194777c66d0ca1cee2add0017fe76058c1995af5fbbe6d2c3fc985135ef57d725e0f150320bcd978c927ca6caca601918630293620d9daf797eb15f08c04a0226ad054cde6a664e41425892fc569e5919888937e8c2f4c5b849a60879e734447c194a596b4ccdbaa1d40cd6adf559c22de103299cf63a2ca4d9a112404c4efc6df4347709e398cdd550b1ee49e01ebe2209013e2d7d1e78ddc671bb4f96d46de76dfc55d5b366b0ccd7174848a6ee913d3c7ff62457d33df68c142986538a7d8c552c4d5e160e0888210ce97c71101ded37a90f6da492e75d3a5271bdbbc76a3e5c505f6e9d49228f09219eaba97e894f4aae1904096dd2c65cbaf302db44eb68304187a156c6c544876fd4161677e43a30fce6fb11540f4e4eb2d1cd5228c76c36e49fd7e416c6baf184ba6daedf6e5c0600b17b2138712971127449b87a618db0e086de67e97cd6acc8b3ec4fc55c713e4b82dbfe745228b169b6713deefc045482e44325cf27a026571917b14a141e0c5a9f1df00b66918605843b3a86bbe77db1b4290ddb412f82e23f223d8fa5da6e5baa4b2f97f1e690ac5da04d0ef98a02a9aa2c2dbd7851b7e870a22b19648bd7d46c87e78d5bead3e50a2be71c67d89310632bae41cf0ab540f29d022c1bf20d77d480f2de97655f19d92ca7a3928a8ffe15a6d5a060a795600ce37161446745ef2a6e21389e7335eef1d247c315a07fc729a826a90df9687f60b392232c44f67f9393d80cdb35299e4416f3495f9b0fc248cd8b50f7913d171d892f4ff2217759d0c062dd914f7b800d149802ea2152695b601815a70dd9dafae9fb13007f30fc03a0a81b675d82aab9be09a066636a2053b3e1fa4ee24d0fcdd8d4b82397679edceeeccf7c6ed8f8f16245a830239df15671d8ca345aa428312ac2cc2028cd3a6a9b58a395dd9b48ca4c2903ae067c062a06d961803f3b0d60bcf3702c1f293853bf28e0735f21019fbb0b08f8ec3ebcf8eca71dc70232c2997ac6c5e73e02cbe756420d9fbb092b9f9b888d63b1dfdf3370a666993ef710a5cfbd031a3e77112dfa5bc6b1646070a6e639c0e72e81013e371005f8dc2c50f9dc31b8fff53c263893cb388abbfc9ee09e14dcbb029ee15f8e63a9a4cf0fc7bd23b867847b40c0fdaf07ce4f3e3f957b43b83703f75e80fbdf0a1c10c782722c13009f1f0ff74ae01c189cd302eedf8033c194a3788acf6ec7b92738c704e79280fb5b9c09d6f0e058aeef97e158b037f9ec6c1040430ac9e73f11c226563813dcf913c7029fce38caf78a9b668da3f8cb096c595e096c115881c09655e4e0265963cbf2011b8d0d07375333b62c1db0e5dbb2e5d14c617f1927959b64eb862d4b1bb67c63a8fc1ba0f2970cd8b2bc0bd8f2c5fe305ece8b9ba48c02b62c13b0e58b8097175b5681311e175b962c5bbe35ccf8afccb0dc84b14c5b96a52d5f1a582d78dc84cd388aff01b62c0db0e55b80e6c166b0bf4af360c75e5264b017ec3fc39655f8e778cbfd09b06539802d5f942d8f72b03f692505b0657903b0e5bb62cb23ff932dabb84e5107005b5631bada96ef75c2fe9f922ab62caf0c5bbe316c3ad83f058c34d164cb2a46f7c44683fd479bbc25b67c4bb63c22d9b20a5c45354ec861ada00c0901fce892906cd97bf06b2cd21ad73b533e50cd4c999c506b06314ff38547247aff591da193c3721448cac820481aa99233b708a871b53cd20512254ff26595b1acb0a393f3f96cb97d648d2b9d21420d8daa5f2af682c9004b6128ec64ed6b4c73b8d0dad1a19997ea42c2b5ba6a2e1a8aa5d6b85ed7e9b2c12573a52e540bd339c2d3da91b231a459026b5543c24fa3332ec5e91074a503213345d01d60ff1c5be05c4ad39917d2e6c6e1ac982c498a131a9c8b59f364f71138d319ecffc36d3861bf497180fd230b6ed7d019af7138353734d89d0d7e6e1202f6168ea569c0ef11308d38c2965be097e1d00386ff4ea0e042787d6a041e06688458811030303030303030303030303042082184103d7af4e8d1a3478f1e3d7af4e8218410420811240c3ff0c5b6bb5b46155cd72408a838742cbd8170ebe05477921b85e1d7006068ca294ef0c963015b08098a44dbddffdc49fc6e77a4cba15c0fffe4c10b7482a57cefd5e0bebfc11dbaf8c3cd0f6713c700c0be651e1c8db7f5b5dde801dbf060f64e1188eb1f849d7537ec081b75794185e3e588ac8c865c9cec6e24c94d313a899f5bb88cb3f97c7ed198f45f51d6657ee4305e989cb4daec03ba21510dae2425254c8c4ea0304911830c2a5edb2cfdc7f5c47e86b4acc01f9c26c5dfb218ad596ada5a5157d84b735c5152de0b75ae35d2a6fff85500f6d2200669466c4b46a26cab46e766daa2ad2edd8f4f8db4497bdb722c7e5f8db5d69a786badb52ade5a6b6dc95b6bad45f1d65a6be95b6bad1dbdb5d65a6badb525de5a6bed3f6badb5ff72acb5d65a6bdf5b126fadb5d65a6b45a1b72fa34b38aeb7d65a6badad6f2dc83e4916c3da13294cc81083898912940a1962486172c28425812a3961a2c48a50284e9828b12114355162e9458d4c94580a4295583a3fa8122596ce0c052d9dd0a2482c9db0a21e9df05114093ae19b283aa12834e9843572a7459ac3a1593fd89026c5d9a0eca259fddc1d5daa1f3fdf13b6b3e98daf69291c6bea43993639cb5970c65950e52c1a92f7f79e3639e4e12972da0451281dd40eaa85d32511903641952a88ca4675a3ea9289f777549b208be52996cbb07874e91669136cb58cf4f88e9d2e95acda145128162a0765d3a5f9feeda34d51a5ea1faa06a20a82fd5ba65fda1459ac3eb11ac5ea544f97de9036c5566c1189ad224642efff68da7449bf64ccf581553fae9727d3c57294f8232277480bc774b578e8128ecfdf784770f6fe321cb5825219a5b8249835612847893840ef2a1c37de11fc01c862780df6969becf516ca4db4d542b5502d148e1452482164b98952482185b0e5262ae545b969b65aa816aa8552b969b2582a968aa5c271ce38e38cb1e5a629e5bda8d842b949b65aa816aa8552b949b2582a968a15ff62b949aa1c25fec58a7fb5e24b796f0bc7c7506ec25a8e125fca7b5bf149b467a37213c67214d668742fc61a5d19df41296ccb04c5896d2bb1d91689c42b3ea256099296a875929960952061895800b05725a2973add6a092511d14b9da2707c8dce566bc6ff498225baacc962e1f82ae49baa3ba7caa7ea4d158e2f03169aa83b27ca276aa270fc18aeabd56ab570fc1451b29e0e8bb5c53709e2429cbd46aaa654b9545d52f5c94c8cf4e06844a2a644b9445d12854114d767a7f1477338d31a63ad560b6475022a3471e6e62773e1c87171e8affdfa661ccbc3d86737ab41bf335036837ebf8bbe31d0bda3d18b341d7680824bc1fe6aef098e054642d3711aa7711a1a1afa71cb01b4d9aca5371d0fdba75fadb6830e91c7757129187e3a8ea53ea6356e2df70963ff9ee0581cc67a4763ff8874093e5623775e6794735958af1a05fb6c25c94d313af911cfcd4e27f3204d7a9942e33436b8d7bf2e82333dfad8ff89139b890e88e9df0061daa44c3f94d5989bd5f170dd72ffcd5aea77dd6cd86d07bae9d04e27071d76a859b17274a4d63eb4f000b013e2830df6efac9f6a53cbf170d65a465dacf6d19c4b995fb54cc30b995d17e89663c5e5bdc0ec35187b0f12b3196fe35afa5876436f36e6f6669a847d8e87ebf67c6c232fdcfc649e4c97e863ff7cbc992e3dd557aad1fc8ac01810972db7c0fd2fa4cdbd19e1fc53f55b4982a5c04e66c0bed260a1e6341a7c12dad3691ab0975a8e8767bc0ea9e2a6be6914ec3123394530a642643504638d83b1c7faa96c12f63860df60d8cc5ade769b843d66d2a2e18861d86603cad806c10c0caa1013038fc4c0bffe5deffbfdf3d183fde30f37cf80a1c4598c2adf61eda349103f178ac1e531823b6ecf118e250651702e3ae6b1802fdde43352de51084200b7966912f51dc772b91468bcbfbeda2c6b797ff9e5ef7dfdcbdd73c4eeae6b834d82aee350e0efcc503e7182826ba3bf659a047beb19075b373b6bc6595dc269d3a74b19d6e01955ab9ca68b74893efc36e258ea7bf8b9b590bdb54fb59c6d996af9bda7643ca67da649f03f9aff6894144d631a1a29eff591ff93fea4bdc78817a1c2a5a93aef08b6c1e761b4ebb8e9b3e9f8bdee4f72b0c8cdae836a12fc1c0f3b0f67653f393c39111ebd23ef1dedbc60f8a39e9bfde427f7f01dd525ffa669211876901def9d2682d33736455a56401c10bfec86ee2036f4100c9bc6a5c0c7c2b5e19fe3cdc860f8bde32667390aec992efd70208e25f6c31ed4a7fd75cb2fabf1be63eef754d6d2ffde635ce60537b70ac3cfd9531ee3325d72978213e9207dfd9f8c525c1227d290c79f8c526487b67db40c8ebfc2f05bd5a50c8174093e9826a134d771222e053e9e2238e6b9f0283816f0e1f348c11da81e0ca11bc1101ee152e0e78e01865f4f94e0e6a6d1b91e7ed374118ee5ca6af43f22bcbcd6f1b06f0fa64950e6f968d2c438e04b3509de2881733c1486d190479766681a47810f49ffa3d1bdf09ba64b411c8bf3076b66bbbf5ff65e9a944997024ffd2a34fabdfd5dbb34ca852b6ddcb0716d1045fbc35037183dcfe0828026b8f9e22b5e287fe4581a5ff17297db341caabfd3e266437c7fb7a1072ca34b0efbeb2fa9e1cb41084fba3378e23613f8d0e5b488de2fba787de0c368e79c730ebe4bb984f8a0bafeaf97d1a5eb7118b99410bb275017be638e45022e74cb1b22b15a6ef11c7c41b6b08a105657b51b1a5389c9c0eeaf16dd2ad89dc6c30a6e0eac60b7d9783f576a566f933e9f49f8ad73ce39127c2729ef1d8dfe4f27ef142bf86ddf241552ccb8702be058dec7b7806371383f1b1c3f6ab905bebe4278e167d3a548812645d2ff68b4cd1cdcecfefdbb806379aefecbacc831e0f74a545e6681dfcab1889f53f03b65f8bd87d26e9987153c0ac275f5441037bf158e3dbc95f66e9a1457efa10def7bd525f7f1df8d9430c3a1079c42885bdfd587ab8623922ae026d0df98e31cca75d1805bcb2ea7456bc18db81137e2529e068dc0ade513b899bccfd0065fef30cc9e8d4bb9be566b5d0a8c28b8aeebba60bfcbaf0b7e841146086d684c37e852f0d420961ac4a3ef92952112212f4070bea7e83413fff7d224f7b74bfdfe58b4454b3802c3e0030bbb9a232b0c5f7c5ca3f66214f2e2033b212f31b8b3e71cc54f841f0afc541a3f15374d87021fc28ff07d832f5d0afcf872e1bb16f0552a7001c7e23074d0615c904aa552a9542a954aa552a9542a954aa552a9542a954aa552a9542ae5022705774532370104f9d79882eb6a8ec06057738407ae1952f302bb1ae962666626c5b3fad5e05c489e1efc7ed6bc482d4420e611e269aeb81063f0fb1853465c0a0bfe802722351ec383a36a1e3b364fa6c7e5b4a03533dc9314753eb8ba812c68047eefb0093d803944885a11fcfeca70e801c7873bd0b1dba00d848133ad4ce033a481043e432222f019f600029f6110dc0f631c8bc894438dcfd087077c8627a0f119ae0007124a70a6779af1d99be080cf1e8596cf5e05199fdd088e63b93b70a6a7bae1b31761c3671712e3b317a1019f5de55842dfef4038d3cb61c06767c1023e94524a29b51f4b29fdd8a79f3f4f2bfd58fa35dbb2fc2ae1572d52ed6177779f4edf7cd3ad0ea5f2fbff125d57f429e51c624e39e99c33fb39a7fc7c6c566badb5d65a6badd7adeabfe852f6d505ae5f83abf66badb5d65a6badf7d650ada1faf97ead3734e99c93caaf9fcff7a66306fbb496eef03d871ee1d31ad3e8506e4fc6e38337a034b373ce39c49c736694da5b5f5e593ff2ab7c9a633ae59c739acc479dc68348798339279593cea7534ebf445152297b659f0b770129af2ae5f522cd2da01dcbe95ee32b2f60889c84937889977013efee6fa24409090991bbfbacd3a9fb67be7fcedea5679f39ad3c6159a73fed45ddddabbbbbfb8abbbbbbbb3badd43feef5baaeebbaaeebbaaeebbaaeeb92d252494b32b25a2ba5959fec6369e4905be449d666b54aaa33e70d289d52564929dd6c5429a59453cafaf948abd1f991f323b33a29919d15d90cf9fdb1ce39e79c954a0b6964a5524a29a7a4f15d832fd28880525e5e3b0711d59db8f7a4dce4f62084230c6345718bb8107094e7423e16b05503210b36c92140011861e717e3161f5cc55abfe1778c20ecabebeea62b163b17f31f7e1f7fb8f9e1f734a3d1362b4dea7e3cb0f8f2e27e5f4a4a308c41718bb87104f3b18f2fcfc57c2cde602c1e4106631f65a28f4bbbe102bf7f66336afd6c4695f223099c49ca14602cf67031606c7b8131af5512fb86691216a3e329157764f1e53ac1f9314b8cc91d586e19ba63d12f218c9f1f865a94946e10ca8669d48f9b3d85b1cff1056328199f01c6de633cd5a538b31af1db531ee332329b11633cc598c257cb66410663234759515121a9d48fca3bf7d8b9e877b8b6eb6959817340785d15f49fcf67f5e77d11e845d94ff91784f05b7eed77fa517e8cfff9f8f4e9fbf531783ec5b1c1f48508fd1ec291009072af72af7a95a9808264a741f9e8949d66c5897c3efb8ded1569db3edb68bbdbd36d457dfab99f6e4fe6b39d642d024051c172af7a7569e00ae94725dec4676962935b2695d85ca3d42d378e2c19724936fa59ce8f0e88e7df00e1f9fda9b57e566b1dd555fd95aeb5d65a9da6d6876bad9f0f4046e35341b566a09c7dfdba01206bc91ece6fe6b36d598dfa93fe7c8d54a7f6b0f4202e057b121a8d8d07c1a560ef40702c9aa4f21e7b45bc6d557576a2a6d3a54864e7b31950ca7b7dbc995853ea0c366a2a9f19c160ec637cf80952803de481b1afda09fbaae22f3ca355af1c67397ad7f207187b29e53fec257d1d10677f0384b3efaf1fcd613be77cd014cde95626d72fba647fbac0f36b7073ce39e79cb3f19c53b4653444f3ce09ead57dd0cfcfa29f2ab216d1a6e3e1bbe587412bec9de6ddc6f4e7497777777777770c598cceb41ad9d3af33481537799046c1de8938cb71fcc66d2aeeee7e6f9721a3511b76bf68233c19222cac6b7d0477e0615857717b3215c6f0669e8fcc698c5004fbf9de7157b17d13a3573578231e17eee8c1deab50dff4542ebb1530d618f32218c61a32c2c13ebb0de8b197d9d3cf0f08c69c2845d632371d0f83b6ec5d66830d0358ea88f48ea76300eb9a53954a06294da4aa8575cdb18aa608acea926f29540e84c6249b0121dc566e7a3a4fa73acdd3793a4ee3586017e1434a56ba6b5ad1f1a62e9f94fd3a20967f0384e5d3975d92f54f6435e4d7ada58ecb3bfa7eaac10304c1d81f206b59811f90ea341cd0e56812e630e736179782053980ad1ad472b856075c0af6371c0bec8dac4a8a55af7a35c2d8087e3691b5f8b6830eae4bd1dddddffad36912f64ef31758712c9ff7afc149efb75918737777ebd45face6e6faa6591f5b226bb9361d0fcf4d6ed3bf35c72c78511a638c31c618638c31c618630e5de241e6022b8ea5fefb175d824fe2b30ac96752c9e72ff17964e2f3358dfe7d0dce857381df8f34a76914ec4d68ae514a68ae4b34d7249a6b944681efc513198d18657c41d3a5f8f2f3e7254dcd56226bf96c397bf9f14bb21af17a321a0fbd6a12f6243413fc028880b957a32edcfe1bfa6dc82d6ed615c1d8e727c3c30936b9f1f0e775407cfd0d10bedebfaed46de5e9ab506da50697ae10f921231c8cfe8b36f56aa54bf2492a4f1abd4987624f29a694d62fc968d01754053f198ea51d4b378f76278ea5b1bf288be1977f0e74d361d3f1f067cbfd3b3409f3d7d9c9216bb9b292557193d3380af6a4ff3af8f14e1d1dbb8f07d59de4ebe50713916fc24809f708d8b9112f10e04cd751b0cb5a1c671160d73fa0b5428b1dec9ccc9c29ae5e48708359602764043db8524be98ed7e3d212f58ef6e1f5c4d56ab57a3c24484a1a2612711fceae06c6b579419eea87ed1d29ec5a5d9252cb310971c5c3f3483c3c9f5f10fc80705fbec4318438e312c48c8b2b2f61e25d9746ef3c12c1f17fe5fa3b49c5a56cb1c20021846f872b61f7f2ec10756e8e0c6782a1832b851e7e035c893e2439535c3dcf48baece09fb892e8e14357ca1e4208a58417842e2bb7723c979470e5f19dc7e557a8e5eb6ae2eae1c7e3a6186d1e8b9978a5961fcf9199d19647a32ddfeb64fc68f35cc49ec722be0d8e0f572b9e1589edc2707194f871f4d936f8210d7baa853eae62cf73016d1e8bf8a3d883e3ca797ce7b45aad4ea753a516a76f643ce531317baa897ce7ba09a660b8099edc0467767c47faccbb0a612824c2b22c240a61374d8a8f27c795ec17c7027a1f707c1c0ef3810eb8d2f5f15d9e0b87792ce2a38238bd1ffce5c8dbe1484e0747821fd21ae048f07de5a61d1c0a74930c8702ffbdf0ac7446bec3da718e44379176e2482737911c0afc281d8acd69e5a4e2e08c73970d8deb0a7d7e186a212ccba0086226a1ab99843ee432214f39ec318e25f4f11d06ce534704d1f11ee43811717e687e28f4220bd26e7018f4d545a43d9ed7f3c0d031cd820622a74bb0127d7e3c3d8e2566345e74652da19fdbdc5c9a145f5623f4f7abe86e2ea0d08b6952fc3c1ff4bae0586ccc0f7dee17d1837e6ab746e845a11789441f7a187da748eb5593425aee246c7d73c287ab03e21baf85a7e861f48912dc164fcf8bbbe1829d4be9acc6bbf1b028a4e570291e702811e60820744a80231870fc1c5938e6df70c1f733082472c9e1581e0e7eec841c01045717fac1660876b8074c8220f8043b212390c1a2c742a2237ce01076428e40e12a4d66883e943d9d966a5f69f62e5d027d7c14f46bb52fbb41d4826533b2d00976590be8459b494b63d1ebc8400f38f422180d722d1cf10487be529b851eb4b99ed0e692831b7a79abb520ede190c7841e861efe95cd083d0c3d0c3dbc01c2b0033de05e893ec78b01730f38c7875be7c0ada794cdf30226e28c6e6e6c419c41c731c125c10921a93cc9a55162af7ad52557d373d38f475e2eda425b16800d15642311d7e1dcab5e451a40179b134008f500c72702c5234ad783637e3e700c3d1e1cd0c5b1cc8b7d5cc5555cc5555ccda97da6964dcd4ead4e8d4e6d4e4d4e0d9bda35b538270ff3619d67c22809b708421ce656304822b3a196d89292ea220e8e3f6484736f3cf562053b79ef68f44f6a1e37037fc495284f9ce30a6ef1a649319e48c1cd7006fee852f6fbf1e18c8c3eeec90a06ae9a47973e1fb38f760a24c071e7b1889f27166df98e4623288249d80919810daeae9d7bf083e2169172535c394a7c49ba2aa3959ab85ab50d6e23700cdd3816876f3894f8f123cf8359dd908c14213204a786b48a71456594b5acc0d9af1ad0374d1269399a143df5a357f17148376f330a02c49148ffb1572e2e257e8d39b88d839be30ac7f82f7e5cc59bc8722cf3634c028e479c299e1ce50b8ee7b980a7c7227e9471412a081c7f108944d8ab348906f6224c54452012242422908804e861b409fccb047ee8455f2b5ce188598d152e8633999444f0e3490c283e979cf81c2e25be48736992c9e60187121f45c9e94486b36bbdc413176012753ae15a1ddc874538ee93f8ea1ac94fcdf540ad45b2b934296212da0d172cfa99830bff7a971ca2eb619803e21b431f7a99cd801f0a855ef4aee361d1966d7c669ce02c9e4ef0e3e9144f109ea07c13d90df3ef75dd75d75d1cafcf02c0f5a1167a11111cdaf20986105f0d841f8c7129f241f86a1f9e0fbe5a8693e1ab5995c557abcea3e2abd11d8aaf366d26be9a6c1989af86f560f86a57ce85af1681447c35f8502e45beab390f2e453e8c96e1f86a8d41db894b910f9fc3a00d360984ab9de722732cfae388742308f767584d6cbfcb3f5904f87af11e48ba033f806041edeeeed7dace63390aa4d1910af74a8912328217ec6a7a782e76353d3b988718369051e36187b80216cba5bc978577702ccf3609738d82c1f0b1ab1f4ea38cde7df24517dcc78347c83649033b5c0143d8dae3d1a51e4ebe3d160ca56852fc1d70b842a326c117dfbf16bdc21043e0e0124d8f4fd287eb536bfff3554a19fa7bbd5e72cecf3e4f5d4a29a55f220863f5f9e42774879873ce39335ba90c65d7d60f952ba4b4f4124118abcf278798524482a4a4842c314b484888e46749ad0e88ebdf00e1fa9652fa1fea745cce0aa59406991ba8d4eb59ca821e2aa29104001316000038100c068442b13ccde254911f14000d748c46725c409405e320c9611c478c51001802000000000000024056034bd03ea6b9bd269469fb26ae6cdd77df591d10eeef4f8e4343256bcfe26e0e26cc60fc8edd0d339e811c36ce91d344a066afb58eac54e877b770d860c40c467171c1d128396f191057db038ca661a133fcf06a6035a4f74b4cd42779870b4ebf66fea96e46a185451cd2923f27ee660214e1c6f94e4d91c48c91424aa02ca73243439ee8a510304b028b4201389ac03214800c01cb6a7b9e00e486aebc36a0acb61ae2f36f8017005d4d1e65399ccab4f0fa4e879999c8203f93e9a51f124079573b1aa87821828b69b7c2baf8e895e6dbc9848f3726d5db5bddae3baef3d95c2879186aff00801156374556287f3e4fe03c8d31aaddeafe6deb47176c3cec31aa995e217c0a299a793897066cbd1fa70becd6ea095921926d86f49ab987a70e68ae574791efd78e3460d0e542987f2973362e49e35b5f97928745d7580a01efe20295b2362edfc219b24c60081f8dcecc1ddc129c9718ce7a68cbe99e57e116a910a8bbf4316e11d2ef595937eac02062cedb2bab88590d789bb5e496df78476c9bb0988d2391696bb70ade314f4a2b09a56756fb95909b7a3804c7aeb2e4130ff009b1b5a92b51868de47936e45662b6197d01657347c9db98375f2ba6a240e75b584c6256684b174b4c309866c18c495e74d4c14e1b31a14c0a175c1b5d5e61ea99005678c6427703a4cd11114bf91ee8b10372117bca8cf4b3b1bae4d207691639618e90e963a29f1b6560499fcc55f1e65ea9aab2dd448c0a2238698192b938eade693134c62a5fbb92f45c6db86afcd36b8cabfc060c59e7d4147272283afba70d7654121696cbe63711353907ca0103309eeaa6ce42c99e01df90d2e4625b1398bb8de2baf2513099654acbacc6ce0cbf50338a9acb7c28d1dbe65b98f16ade92f9814e78efc0f30ba2c79aacc8854570e5afb8c53d0f2faa814930cd31ad9ecd86a6cd8214869f23f5d951b3bbfda4f764f81180f4722a0e31bcfe3e88b9674a6a5b2e3dfd8f027beb0d2aede18a15522fe112cac4013ce6124a6e9071ec1671a4a127ad5c69d8c14c1efe249024f1b7f5907757669c31936e4f0d30e06bedc78c8e058e381b253fe01ed45d29af149f43f26801543cc605e3c77f528e4d7c7c8ed3518c82ff8d6c63f849617d5c0c8d11ebe93630d15be4cf6bb3797737c2c459f85e01311daa2326ff3a3c6e1e1755b8a65796058aa5d66e2673c95328bd9af7f07ad58260584c782795da7cf3345f277367e71f4c5a8f80d63cf267075569e9904e66449ac2b19ff159b9a5477132a9f50568ebf8638085df93f29e624a597d77bfa9fb6811792d6b07dee01792496777f9148023ea7ab1202eb8780448e8adf64ed6d9e4698a2c86f95201f93fce30d6492841ebe9f69ad25092a3516b85ed417b39d01cc55418aa11c5a5ec35bb9a2cae8377b8d46c578f975cf6986c735b8b1c0ad16886f02ea908bd0a57b3783d7b782c0ba46ef387c99634c31275de9cbfd2f131704a5fbb01076eb08f14d97bca6f8dfdd83ff7ef8ae67e3c97649709235c4a933e83908501d1f3873a0f6d2fd1bafec13251231f1a81d188e7a2a87ec6c2595bba24e7d852a7ef2a635d8944710103543c755ffdb0a281d93cf814d0c48367c683bb1f9e5097338d3cb0002edde546eab5e49f85bac0ce8d946bfd5a1454bf1da10a231755996e3f0d3de8f51c89bd71cbc8ab07f2082c3dfbb2fda692761cf1d6b7334f1caa42a48f2a54299aaa45c524a446814c9685dafe6a81ef974593c91f593070135d0710b588fbdf90c9edbe8813ce6ab296a022242379acbf5c4f083a919b1c3e1ba7b914ec1ddf40ccde4cb070367e3c438847e18b3e1bb5910afc82c797ec20b3eea2f8351b2c2cd7fe359b7f31f572124cacad007a0f3995854f53da71689f110edf7a859ee2fd001d1d8bbc644dedd44b10a6ab5e64d569ad44717075d07603f273ce21c37e573afb5a5a051dc6c56c2e10b470335a3513159d1318248f46a0c4fec0503ebe2b58f1690d9f6ca605a12c2257c7e26658f95a7045806832a355a7e724d18d0a2f6aedf2e1f23dd605f20300864b4be4a6751f48cefa6ec22c412ad935f8aa786fe9da03e5b0dab19d977bd960b60f617de1cd3e70c74097b81a24d1b84630049e14b814f82d43d12d09bac4714727c17e3310e0c42894a1365bc02d3110a857c48ababc56851d791caf22a08f8d7485b33360aa4dc06c552568036e023bcc11eaa0f09a23a1162e35cae8f2ef8d1ff749743bfc8e40701e2c865c347196421e7e031788e0c3e71513377c9e10c570233902b6edabc1b4fae533432ba9abfdd3d65257bdf26b01846864d90d5a8a73e10bb0e1f67183ae8ae2811cee54a7ab8fec8234066f869fe96dfc903297cf659e959f8b5ad0225cb67af0ff7684b851f7f933354f5ff42e674ce5fe10cc780e28ed3ecf7a4c962ccbbaa88bfec259f9c17c087445b602aac67971552edea8493e315775907d24bac5c819010f4f09a3455cc3543c4812ea2cdc4bffd6300b62091c4085acbeef8f3d0c61714e13cb2381efac33b69684a286686887c11f855a87c1b21f32ba19af67616cfbe1a7920cb3c5833b777d387571ecedcf079a40575eec53374c5cac730a21553a1541c7621a6c921681fee4eb5063aacd0cb0341765e44228cf48092bf555ac3c92205a5637fc08e40b7c25e0d7eb49a32bf8271b8a300216219bd169b186127752cd8d361640d142e2032abf14630e9ac20ab41f3c000018d4b8214c7cd5a4e1fc73829e9e10fd9e8b2e1dbb4cd607de02adde650c676de66f05b3ce092c487725906a6322256655c56475426e8cc5d3fbf9b863b055017b9c0732f12372080e853933ebb358018983090c2550e2912309ea4d01a2e7c8eb97c5f52495560b4dfc891299b46074d8297c8567bb9257b950245d21991766b8eeb4023ce9fa5907b8346af5318e5b96452bd52a7e0285161c99a67ff49c237e5ea81a686269c9c55da8daf28fb894283b0ea85569415fce2169706543b45d23f0030bf8bcda026bc0065da5b29398a91e0597df827e345d0e0037f75ce02ea3f4ccdd5704d084e362ce6706d62d6f2467502909fa522479acfca2cd007b55ed6bbf63d8933284c8c940c54b86bff86058e61b0d2a1f4998f36c3c86e11d19c4033819eb2cb832cc60e865806d7f6604d786cd88c8269d019a4d3f23643b840610fb8f8686dbf6a1347e057e1a4690415d10cdabd1dd1a9bc5e9908b929cd6fe5884814911d323b29aa1b9aee09679c32a02f6b93dfd2fdcc3d7155a28bca2dc6b23db7fc0c4a7d7d121f2dd0619d6e53dad731782711e6641dcbdc5979eb2e388941cec4b719fd2735006832b30e2e5e9a2a27ff66dc68a23e5dc713b2846aa5c4cdf454a39ae0c5192e90b76e2b0789cb9f1098ff3dc9493ca1840c347363ae0d077370b1d6864bbd18f552a3536327cda2d4a870e270280c9250a8831751267813b9b1cedf0c859c8c3a1b2107adde8a76c7060956295c07cf658626534c7da45d9cddaa73d2a1b1214d97405f1c0458f842ec88a734ae718025a0760ebc8a71d4adf540411e1c1dfffdb06e982c455bc9551235b81e0c33173a025689cb922fa961024a4415b760dd007001ca8db824531bbf48f95fc8e1cc208d994565299340a3155f52138a8964afd417684e7787ca7cd71e6de5902fff8612c81d5889351afe37438baea1526f6a8f4964fa441f1d30f2e89527af9053a5cba0a2eb9300ebaa69e025d9d9f8af31ae9f40aba39a8039dd4a189d98fef01f693b737f6c8a5d413d0216e89cfcbb24d620db1b7edf4d7530afc446a41f3e75177cf3ea7a219290ef477026db9bcbc23a7de24cb972754891ed75012837ea3beae8963c942f26a1063e098d8a024ced964530bb889d334731e261d1f3e316820ed377bb59cbdae281c40a4fb2d60292bce3c44b17ecfe8311a3b8f2ed88c5016754edd3e77ae9fec44741046d6301e8972b0b6e6342c2c6619d1805796f75ae099aa3598dd95a19fe4a52b08063f0bef44ba598bce2db90b7da181cb56b5f595b2d513961030d1c00b9b5cf8adb0e418a9aea648b6d072bf29ab5bbb622afa094bbab213130411adb56c9f6b6282da5efb667a7140bd67fa5ba7111224cce5b2cf576cab06437cfdcc4820db09f36903302e0369986cd9864727563220fde6042a81ee2b483e30467fe8a1426f5a94878b032b88a89e3dd62ba889c8d492c0f11359a10e87d11a098bc0d7f84998ac048229812077974a9c92652c1f2f030f706a06f7e8cce9f97729e72ed5eddb227f3480438dcf40234855754f2e945c34cf0a7be4527475110045fd729def10ec83c4be815d6b22fa5190c44813592990d6e9b073e57c90f21c7cd702dea982de6099f66cfe0660a733d7268ae3990070f7eac5b077a7de4f09d8819a78a11ea5802ed7cc62bcd242adc22d51c83010ca65c2691984e4bd2af8d576baabf28fc277c2597b6b43327bdc612dece5978430d6d581eed5b40555c4ebda8b3f827994ec2a3b79c3136c56e06f7cb26d46bd118c8193e1a0fc21d01a7d1c9a7ab61d4cf51fd1666b8cae788594a0bd26ce3ed0d12d159476433392a72b0bbcf259ca584df03734034baea9b2fa5f775c98e107e3455360c8eb6a9587a962c4f059098dd587169ee532c8ce197d17559916bd24883a271511267db030350201ff4ca04d9461c1170e9032c72d04184d5c2ad350949fc5fa54c85eb0fb2a99890a9407f79a46df8012f66639121947e5addfab4f32a70949127dbf67f590d925d51bf7e122b371e0a0896e215023dc907d3987813983648f8120816deacdbd67da75f7b53213cbda27024178c8e64e5ea71adb29ddc90be2e90d6f704d88082a5f380c0cd0e4e260ca34c7cd2c10662d0daed0e6d9b8ef613e62beecdafa01cfba264d060a67b696e172f61ae970d95c1d26370cacb495ebc9c8ea48c0658ffffd75951c16fc45d6a2e4a326e8922eb9b98bf42e2f1a0c68a80d0be45f101f0162f4d5b8b1d17348be9d5df9a5e149c0f4ce9b15a54958c167061affb011503a94c66446419cd806b839ba813ce01ba06e207db1057b09473f0b3c75d31149a9c684b4740107fc81d4a43cf4d54b3a5253727273400368e7424723a71ae79339dcb45c1bf282ae75e72ccf89b9ebcec5f79350d9c57633490313927adb3b468f752ade7f43f9a673fb36ea357ce6e0ea24b40b67d839b4b2cde955b6e8840eb5f4f104e3eace4ec8700f365438ab5805e896ce447e3ea2b4c47504d38e4b02fb62cf22f33088c9f7767d078d9da55eb77546c6f6c7acb583b4b5b01f2f7036de3fff65887c4b28c85fc6545d40f7801b7144a4596bff1dbdab0bcbafb79d5078b7bb15f6e73a9e1090c9244c603530514da8a7eb48e068ae73850a12f5656fc193711610669595e1edafe4adc782578c13f2b522f0665c309ce048cea7f109798a6e0ceaa409f2a162c530dcd7c7a4bb7e7f9a685251e5b8d32a48f994f23b24962f3ee518e9d361cd8c7575813eb850835ef8fb1160c88275a7094d8ca82320273621ebfeae9e0925dd787f32b53710110f296d3b66768192f9c8c4ea02fcf6ec024260025f4cf16f52f98a6a3d588a6ebebdb90d9cdf4c816b7b5af813d7e2473c7158b48aaeb8f11c3d7788337a00602f0811d50829b0b366ebaebf2e27a1718db5df895575c13a211a56567194729da3e6452c97ba80a7c98be80facc1f96f95d8e80b80b389dd5b31284722166999b08b66620f46e6e4ef5fd7c1440510c07b201bb4c81406e9b6957be0ec6a0e9ece5f47917218ee24a81e7edfccd6149dd81794139a8c8f7cf278fae251106369c187c42c3586f17140ae2cc5d5f19ce8c42212d8b29a6a0fe4f2c203b10e175ca3829aaa5d8ba176a2133832a9281d2fc0287fb06c3c49f3b6665fab933f01bfdf0c69d930d769892bd4d855b377df5d9903dea5a4125db9b225174cfc82a38517e51d92b1442776fa52115990f505664c2977e2d74f8e19c25cf64d48998e4ebc20042e81f0f8881d5a8a52a20b162f48f29fbc4c6c0a4af28a776fa2fa3c7b052217c93f676465030ea7d8d86143369e8a4f39e81a32c64427d69a7b4e40cc4073ee957314050ab415a3cf85417c4ba7d2bba68042f58b2b9a21624f462bd9cb91057ce0ec577bb2b1c45c2596f0c796ba0f269f409cba4e45f6a553ec6885ed3eb92dc97534c4739d774299fc65b0bcbd75fed8e7a06f4c567928e1a0c5cc4e5920b891499a67f1aac9c9014f86d9fe16111b49e826cd86acb6e4d8028a0036f6450cec88dbbc8e853b1f28e38809a23c4ecc9e844ca9996d6d255b0d94355c436e7e6fb43bbe5f1784617b4bb55298e3c36208d5e4b196faa957fcac9a9757cc29eb295caef4574658a9b1102aeb7713ec633dd22c699f2fac3d8532eca527b4aeca22e24b1099c1b0104205bc21774b4122f4a27b41a810066acc61be0ae3c25016410a04286aa527ddb6fb5ec817cfab5343a6dc1463f9b98315ebbb882810a38e9b9a3d7fbd558e8aafe2b6da4551eb45b0d294beda58baf6f1ec41dc03d22af791668a6105472d37164a951898963ff5c638c807705d9b6161428494249cb2f780431da1b71f3ffe62d00f245522b729232666b58850cdee93c00a8324be3ee45b248396bc27ceb0024f330a9742c92542c5de75496d504ff954831cf14fe2c5d2dcad46c3582fb67ad81c27a4688e66e19dbefc62502f995c248bf4c0c4d57efff443e139d4e87c1a5f9972a9a94d11679235a028069ee0e927477ef93420173bc39684f9dfc726edae2d3ac76547f1247efed82263cc2ac2847f9130466de057850f4fee6cbaba161021f97c2f2e76fb2d38387d4f345dd01889481fdfda3990cd27059279d54582f2ee93da25f6e205b4e5ba773ea0e183f3627daabefffcad35ceb0f2562bfeba5213e58f9efe787c4640380d9a24fbd4623509401676bca6538403cd262fcde8ebcb26f771d06bf9ae5256f5697a156256712bf5e910f3506387bdd97a6b3f815315abf0fd01d25a7183d6e011ad1ce45ea956c0ebb3d37e93ac2c6fe1a36c67a0bac4e25920473172b49fb580f4c4f02ddccffe8278280a7139125da84a2298d31a51cd664bb5b9faa730a8b95095b0012aa0322b94e86c82dea43f4c6b5c7a81bf59e1d1a42ce6981f2914ae01e1d108a5d870a1fdc73c5c0f1ec4a4e034a4b84655297839cd8aa8b70b3924e6ab6168ab01bc31a7853cc0a65fa26a89eb4e011886b8556016578597d8aa78a1bd5a8637532c311630981c8a9cf2ad31c71438a0c4237eb2d3cc822a1b51e86fdc53f2bca144d94be2303da2abf19387b850e727031d46f0ac240df3cd64fafd15023a89175b913721c0017184eec07e7b055da3f664d1f3a8f6647fe15e349845c3eb05ce57fece7f52a9c7f859165db76355c1657e3e1a80e745b2c65853accc73af5167f447767dd67feb48ffad87867c1cd959888a929d9250e88991156e1a7c3ed3df990fe1cab1153fc7496d57a2990c1e24c13af25110962cd2aca517425078e918a44a1120a517ea7435a842e5eee84d61e74e12dbece9455dc63605e4bad055274e11ccf5099d86f9fecbcb3c0a0ddcda88d8c13b17a5d8a8200e5b713e98b5f32df4189f59db8638c38fe6f26bc6970be79565c3222858c6c79d2383e0887129c04a191fd7daf8dbf2b4a7b35dacf2a493195f8ed7bc223a20d7a2480d2965f791ec793e33aea12c90fd102c9a5cdcbb8a236de243d460f2d8f5d8df55b86a20c20d9dee622de5b28c4eca1c75a0ca7e4a295ee1ac7ee5fa3921a94f5aa60d5be96ff0fec8b3b5e1a71aff85bde2d0e80ef0f51f8cdd024cf0d557e02bea767145837bc44fbff58a0d95e326c80be262e34fa00d9708e3ee11b33708262164772adf11e6816741f41cf52876f944503748a50274afff3e1819c51b86085899fc87bbdd153dddb90b19527a0f41f7625e92a3a6a19aa6c7bf591f98dfd3d838b1fa44aa4735180940fc294818cf2188f72ed4d982c1baf38c24ff964ca882b68001d3cf1f30a08b4463b4646b0693074b07fed9d4cda0d0db2b765ae40f2dd02d28b8184508df279205bc95570db52370cbc5f88191c425063422e31b95047c0c628dd961a478fd6e8702071a3e482bfe5bd8ba885f470d9384d3da4ad31a7530e727b9fb9a271a03d901ccfb9a4797fefe3a96264e8f168d3443870b66443bb6b20f0382eee26f0f652e90098ee04db74b587934970065b2adf3ef8f95dbcaecda6c5321bc5a3227030481cf3a788f3764aea959feea39b2663a37c15ed9bdee1d8c6c7eb9639e475a4aa4eeba0c173d329e42bfcef9c9d671780a855d2ee8826b7d9f1ae16dab3ca615e87060f0f804999545a79c305fe3a08bd30fa9ea5c9c96709060401c31884be6041e394d564f995aa666303939d33f585c313513812355e2ed1fd3737d4364a98e730de1128f37e9a8a892fce24bd2428a0175088fbaa40c24939feef117d189f17edbb5717815d9a2ba461e139691b341b17410559aebd433b3b35222c81e423fad94cce7b9af6bdc8563bf9279e84a6a2840fe7e1f07cb100ec3e220c4111257088fc9732c45a20c16e620e64c67e24a03b5edca7519c6df30ea1a733adb2291ec816439d75dff54906728f3018061ab7b02c9fab9320e0d49281b47f07fa0559d8775fa69582c99311e22652aeb0c8e575dc3ab7adc477b3a1a5c4cdaa004063ffb4ddafb7ac463b87ce259a0b988100d4b54d266348f0377b102add0bb6c1b9b164fd5e8d2761a9f2fe674871da0a6f722859e04e447191aa4ae34ce597258343dc363c4a7bc9319f137617b74b5822f0d53528f41e7e9089049480a8cc0fa98d52563c47aa6840be7608d8302088f44d141af7bcd48de130011456a7247da9993b7d9b13979aa41127507a54a4c0700e83e9436ea3a8461c0b63cd0b8509757b3e01cdc87fb049c70b65de2d0f2911e53cc2c582dbc07fa2ef3d78e8ce7f5c3b6ec62b01e10d7141044008afec6c1faff229c902094bc77ca070ccff526d8e2dc28ef5a3658b75ed015429eec08804288cc02e1eb91994844b512838f05dd6832fbe09f1e1f96c6b0f615385cd3944ad5bcc3bfb7caa791f1efc18484bab63fc60cc4e0ee756f2538aa8fa4ca0666c304c1db4f3d0325544133f38ff2aaa1d5034d167e4f2989d0fcc83932e8251afdf93d7f206d3d12999e7856c945e16ddda9acbc579ba53b0991ea6479da9c146090737dfe7ae48a6c0d7b2718ec5d85ab841f689de7a8a3478362f97fe0940423adaa46f39b212de99a2c86805210f32411da70664d00ac0c612a0678f814240e5ee39f55e9a133d9c095b86893b7fb8f3d53e9841400032363f217cf67663fa986224df95150b2f909d882ee7fdc10ec10bef025ee707d4689c87988919c195eb9ec373cc953777e678230882523e70981d51c2b151ebf0c2f67d9a83835686f8f9fc31af19a8e0a38ae6eff662c154aad526930fe1fcebf758a328b20edc847d71c7d8f18531648ac116f65273218719e2a02e5fe699b42ccb05fde85b477b7a7ba7fc21ef059fd5f090eb1abb7b07ba2393f530a5b512bb59db60719ec7e43de08b59e9dd267c08f4433ab8f030e0e9fa96649aa887a96032f08ee01eb3a8cc0276bfdcea6759733df5474a12ab59086d99bc4db919999d7b91191db5ffe3673cc68a570aaa8ae0ad7f32669604b87a820ed02ab91790a773918a3f2d09ce7ef8323628d3d1b37c32feee7389506caa7ad815596ce16f97098f41d408c029c246a12f36c63ad309f5caff3aff43f9b15fbb9ef499b9be5e8b906496d3928852b0a4dd96c3816e06d5449aca9ecdac4addf3d01b45149497cfe50059a7eb74285a6253658b34dc8f46c2087106956aceeb731ac07ceb52442dcb49006608edf177280dd99010efc3160dd456cdf84c393c49897392cfda545d04142248dd30ec9f08090f3c0130104242354b798c3b192d9c217d39a0fd5e1781310be2e3435e40f370cebc9c4b9a2cb1521c85082124293882f8a179754e131fd9e8eda5107c3215d388962f1fe84189773f515f359cd017a33d900f268cb78845da4848217a484391dbb3fbd0bc8781c40f5c2ab3b2105fb8347a3d7f61ca429a31f1791dd7efec3c20c33f12f4849973f5749fa55c76dd562b0fcc64e448818e22e8e03a1a701f281413b0830c53406742e612411640f828b1794334e720326d5363bc5b197c12a9c59840365d92e35268697e286c6da3602d55909f438ecf98656294ea685e4ae91eb6cfe5658a268007ef7233f4b174a8f9ac955503a1d925acd2838427bb4e87c9a3982f3cbeeb08ac75157b98a3c980e2885fc3918d5841826fe685b0abeddf46c995f6d234b2b6d78c6e63504e2715713510f9db30c28b230535c1de120ce79059d87a344aab556b701404753ad75956374111543699c896a866fb276e856e7d5a221bbdad63eeb2633b6f58a5df696581b8e1d9aef839adaeebb8e5ee17542efa288b96d84d09bf0a07d94db698260faad0e7b9ecfdf1c589d54be660e30374743e64cb58bc1b767b434e3feefeec55f240e015abde234fd6366c422285f42779140c86a440b940c175894a562476e2866cc6f192660dd75d76e6bdf1915e8101d4ed5f1d20a10dc15f5b8f7ebede0d0ab9d463d3bed1166f9fb02fcb44c33fbe2952ee776135c5dad7d4a5fbc93d0bcb20ccdde5ecbd99ca7295b9e129ed080febdb0400b57bbe0c9539fd5f7fcd11dce460256c55242faf04425e32b29ff98b428122f2ca3da11d266689829b8bcd47ccefb371765b5aae0f04e0a76a469d5bede43986db5df291de800b2f69c3bf1a28fee27d91badb115d8fa2c591a76c862717e1cf2e64e036d8ecc5adfc1cf68dae9c519268759ce21e9efb28888e8d7d14c36035301475bc39fc1968c134ec2f14a0b4cdb0943ee1f1c564b4a55c54c51302590e0392378befaee977c34ce189c171ae0603d99affefdd5892ce976ce44a63318f98bdb1e7e1ab35b9fbf6a21b5553919f00002a235a7f36279c5e5eaafdd32076d4f30fa86feaf87e1be60a1e64d199ae0d066952e0970589c54872d5d649372b001d2d39dd8ff2f8d858611e22b1133fb742c63ab83a04f9fec190646f630633ea11e287275d864ec276f0b6fe299956b29ca1d0fb14db9a0f958a1de82f7e03c0d1e16099d02f989f001c96ae6f501aff5707758d5f64cc51f2c0df3125fd38995457eee8ae151826cfa2955d8bf73ad21660d2190b2e92777b38d9742b45212bee7387c1d99d44767637ce94d813c67c12c93debb2504b5edcc26d4a16bb4d6be11d63e12aad925a7079b2dc220b22ffacdf7e92874d8c6bf6672b28db9e0da2eb39fc5268233814371dd5ad015051eeff14df4c132c3d494b345a32db8d0079e7082bb7979cdfc9294e7c59217d95c503ee319117483e2112cb5166464f1c13b23aa567973605124c8bc7467355bb6e9d4690133a8d1e2683c4dc9cafcddc686abee00aa7a6463e288e3e26244863dcf35ea0a8cd0c4851cf27952fcc10269e9db228ed1c897de400e75eba2a3c55e05d0b61da31439983e764c494e011cc36c7e061c4c49b0718a303feed3941e587f83cac00fe232996e8d06ebeed0b2a866d66298b29c2dde1ac75e81c2905556a5a28f95be25282a9eeac2d5f2b6ca6d225d4b42fe45d5ab7033045f4019b34e5343484a4397a102f22c198497d4c3418057bf2d9858dd40b97a10143a0c842c4545013d2c25607756c7a40da61236de1106f861a5a815db9636f36f8dc8ccdcbdf8a3417724edb86eb8beff79ae1a714e6f616f524a422b47366e988c37851667fd0bb7b5e4b47a6310286b0e0e31ae7190c1d2a30e688e29b763c1ae515f2cab29471f38a28b4de7e1ab04d16848f1ad7284a436bed89d9217c887d60651356800cf4a63fe868a5725df28b9e5206af4ff31b14c6ac58b3116c58b4eb0049441766ba9199fa7ebfef60f0a4c66613635361c660ed8762a09a9b8338f6a06c2b156245971daef4af4a93d6af083e52320dcd2bcef676ac2a9640cb3cfc1455878146e7819bc073784744b74e616cdd6d066022ca4da5c7546d528052745dc074524ed8001e1078dd6053c0087cce57f057653bcbd5d6e4ec8f3e2bef5286050d70e9082a7e5af1d04ab9155d1a27217d892ced11763f64121a66016d7169c589cd6f2e77ddcd804faa06c5fbcee35a9f72dd2b3561f38f42e6cefe935086532884faf4f1b1ce2ec1991b053e62349d19a10d20313cac86b20552e6f1873be2ad00bc32c50ea3ee0aa0fe9841023a0a125b18218f615952f2b56f01d3b3cc1ef357ceb010dde760d8f231fef7c9b7065fb1ee9f5054101fd2f88b4ad35244b858c61415c1ea0bb1263bc875be328f5650587b56b4593f547f849815601b944f5380ac03d3f8e0b845923127a8f47191c858579c796267040225070c72583ca6c6243b895ce2329272b580434903f99a4fbc17f415b123c1cad06a4894e36888710c159ee7a7caf408725173f906d4d88c6b1e12208b9759ecb2cd1eef90dad733e6547b1ceb610c95c396d63c3b1861c5c14acbb90667810a03e6d0d13ac6c545a6c40503f5939feaf3e71e3939f264ac6800229b7ee1fc4b0470c6e49be9db4a8ce594234d48f33d3b0544c004d3092698997842568cc98979b299e8000632ee299ce14db6a8d4988b7332e04a8732c7e68e012732160655b0b18768131649eadebb566f58cab3a2ae9aa30ed947cd21ccc109abdab9ed0c45c02d805bb5c451547889f00083c0cd7b7c57d4dfce9077208844cc23b770e222329cc759955507dca85c119ea8f6d239eed290221b0dd512a423d158c4a7f2f38e23ae5835e870a4d0ce128ed83d7a9aab2d90d703b1c4a3091d22ba654626782b63e07320f66731dc817b5391ce9deabaa8b7a38bd5eb2ea60cdb5a52dac58cbc34281db738767c28a13fb3043e0e4c65ad24b6879097422c585937c58b061486f0c975df9596892a4299d41d319620ee9d9bcd0bd96862b220e27fd32f0b8b17d18d4ab7529df55b4df908428062195feaa751a57427195f019108c55458aac74aeeb82407e7b6c750982ea212a9efb8c1772465d4053e0471ab90f4d81f5f318775de5bec31e35e50be1141035b1fc6ac3f6221ab51f846bd73794f24023f537eadb788126835965b125c134baa7f819d1723bf1195833e606c5e168b9ef5572d1fdf3a18986814095613c5e36ff34fa012adf45bec2914411c4fc2c1b671ec561dbd0da66ba511eefa35390d2e97906cdb53b361834d93a4ada0c3fa302848979a0bf177af7f8bb97058387990a2f1890ac0d940c1160d6c8dec4f44333de9b468ad2ff0ed4e7993b97f8e2de30ae7322690ce5dee573efcbaf01115cf222f6abe8c196a366d139491786ae8c70b383bafe60b6dae01ce27322f501b12bfebe7ca7f0d21c03a562b61ea3a28cc5c86cc54433881bd5afa079100c1161f9111417d4c1028b07ba70f069670f425ad697f06c86c9195d20dcf0035a8b38935412ea8aabb9f208e989a1501590a44c9503720d15aa1a0a6a071faa752bca645bbf71de0457b79536e4b990ddba5e6e316e76882fafba84707ac28f0b58d81728db65d96de24268c12ce6cdeea125d31f4303e5ca81af19164bfb3b2baad9d49a27ba57296fc2537b4ede9f9d3eef756ebcbbbef460da4a6b76d7282a8a49b42edc0594ea57f88afe26fc8fc0c8e514f44ff7ea117cd81f18c523b261124dc86634997bf086a42a115280b8c2a877cf8e0888ae7c541f37b18d280224e88cecc1582098bf060c8bfba3899ebfb370b089b1b15425419fb05c83598507bbd1c640ab74b0dc0b08ccf934ae35b981500a7c630d477bea5d11dac90ed5f0ffa7ed7ea3f7357eb0374cf7e4f468583de109297fd8a4e6bf34a2b7def6e7d2c1f2e74a0ee2a4ccdf500001446740ece212a5febf6b367f1786204278e5a802f16442bca09affc2b0b8ff94f03e0bc5d37a551eea839414aaf4682367323382a98a83c2ca433993c24a6fdda3db0e597f7c9964a7542b99273e2692353ac4f5a9bd597056ac640bbca92e14571761051353fba86fcf6be81d7d302be3855eeb055a97bcae0b777cc766788eb376710568e78f61c0bb6fac6c247b0e8288468191ebc7d8c0ec4bcaa124de487afc749d30e094da31a249d76e07afb0e03f809e181af104eb6caf3312d40e22f989c44711dbe246fd27c6bfb0677975e3185e9770c171d73fe1aadd77d0c610b49331f0e4355086bb4196dcf8d8d9d87bd063fd24a8a10f545a95374422c363008a7cc742b6c36ef8656e0692e7265c32dc1516c05f67370990d2863069ab3473522727ecccff3df92da2599cc32be9bd8393ef8c637488cb7f1554e77bb689db8b2b96401a41ed866a0fcfb2b3c6ecb1b9fc0a01fdba2c6a31de1e876d39f3ea61fc4e5263f9d9d5cdbe82276b46eee41bd520941bc9091f4a846904fa1dd6496f0db0677751008c88e769fb1fc65376c578fc2c97f1a510befe66e25046a22ab0ba34e72e64371d87e683d68470e420a4b79354453f5cf8349c7d81fbee83ee9e50069f44765e06563f5408f263c71d4c8f961978f36e2237c7d776f9aff2506a730239fc466aaa1cfd53a2beb06387b8eadf767735ed9eb96bd6d9ad9037a9de0150500916d01e987b6e1ae1d644ce656b5288d6d45917a928121bec8e5a4aa3c2893c65b6d2cbe23168ce8501a42c43505b8baf4fe94513d0472f69aa218f897991d05c706a2ea17b2536177faf4e91d08c5bb8c1dd7af0a09e88a306a5ad0e17610f300536a71f570069e73025292216e5b76d3e956f99662a2ed7c240658ebbd413ede0d7d90d015411f50bd8ee740688998e531367261f6d769de6aa505faf70477ff7f50d96783894619e93c345195e17532270499c1cf9bd464a3af4363268afc33aed71c55599ec3d76136e75dcaeca7895ac66b2c039047e4c8e67339ea9f4f01ebad839cf47911d3cfc738d180a06368b6c9ba3f7ee365f9a6acc3835ad6094d535afa9e063e7942e49a736361e1a73b5fa3cbca607623f54feab3b4493e32edadd00b919f8da8bd2d6effde035bd2f3bdc73f81ad95c3db0832d06da94ad97f6ec054815189de9ac0e36a47665fc4089793ecb76c909d91de22524408fc31b772e63a91a03aabfbf2f32371a475102d6ce78916b9e9031f01227fe1d5a196fd3dd59dfa884e91534c324d309045cb245fea0a7b344194a17d40de18802203c17e517285eb543ca75a9bd4a9fa3dc1951037ca222f7911d1343abbc4d4c524041809648425a421a50b114d46e885ec14bb83e6c6d96bff45a8fe7d39c89aaf544ef4bef7bb990944548d5aafc8d960731f25cc860d7c0d29da120111c8c7bfc8e780c86c621f646a4de9253efcfdc4b2e2733e50f92f7cdfb7aac4e006ccbd505c015a120713d68153dc0050287bd5ed230522a861cac8d3c99972a6c3d83f4e68334de158037cafb32beeebac474c8ee63be34bbc6be8b68b1778c83d2059956e279881b70ce37a6b583ce0eae232422208b999cd46abe52e73db0ba9734749223f92b88174affb1cdc265da710cb1df6610b565898e44cd2b351ee95ed46bb5b5cd5701e9601f00efb87840f4f807c01d2706901ef701788f8903a2c73f80dcdae655003ab80fc01b4e1c900ef609e88e8b0544877f02dce2c401e96e1f3c90ef0f8b60d3757e9b6ff1f342eca8ceb788795d6066396f990dbf330f38db4656066d1c3ff61bd70c7d786e7a0f47cd316ead8e38a779caa5a338077a8163e6f6c8fdfb7b37b6aab43483d267c4259b9257588e4d885e01ccb2a43a772f5454f798b9156f45b8e4e79babc3dc4940fa55f1f3f2259e40ed5712902721f3ab1ecc133a1a7b1f5558e953a481d73ab1174dc176e535467565d3a5cad1b11a56d14a014d9f143f5375497b8dc82b84ff115575a077edb2a0504ca3364a56fc4ab0cf006e5c6200e9b09f80f7dfc400e9619f7e62f195f48dcaaf0ba2a86c5bda713b80f9ab5edc775d4a16d40a5d51b98de69916c67bcc5e75ca0c2143ed4b706b709a5cca6a56e9e52b9c622a8bbab89eaf7b5afaa99de67cc8493ef85dad32f45d46ab11780516b56ca2f48412478ba240accc3918bf243b60fbddb45aa1cac893bfa97671ce5d7bf71d3af59d6a1b70e8b9aaeb5dced89aa277ff54bfc069d41b71ca781fc201f63f245d740992fadc3256d0cb1bee9dbd56c166ea52654077709b9052a39b8ec1039ee0b4d18ec4c7b2e36f76a57cce7425610f756a2f6b663b47501b1929663ed57c63571f14e78323775d4c8c7c4f014245de2e2d3725173ec4e2c8378e30466ea32955915d3de8ba62e2097ae16eb03256c71547e696d818b92ec14015d9994e2131b28bbc17879c93cd424614bb0045631f7da45e8f893322b6117f7a203631940160a95131d688acd2c1656421fc58b0f465ef6c6e789518af8db102fb5051dde63b6913dc72f1b46b3fdc18c3caece01385ac61c4605f8b7b8811bd76e63472fe3f39182f2c65e4433ea2c212f7aab5c50df33eeacbdc178b14c7c72d899da26071daa0f484e6a7ea67982cdf0e945cd4902f7b7b2c3982ddeafc0df1de406575b7795ef6950b3be959cabe1e060e933d0f373ba8010d5f3767f69de853f8e44648be4dde982be239764e3d403d1a525ff25178d602338c00f60cfbd448d67312e41d0de1f8d0cca815bb5f03e4d6f643c527396216d181c417bcbd25b86cbdc94313ec76e01d61008915119a94dcccadadc1170f1d2560cb38a89c5150c947ad05ccb6666cc8bf94bd376d6e55f6c2c33c96f24f30c9ff5340c4c2fb9aebdc9819acb86042310c3437eab483b6c553cfe8a93ec518afd7badb74954377bfe14a2a016238875c0e3dbd26bea8f69af59ee4c027b06b2df4f12ffcd407981272d03cfe9162440fd9e51a9c056fdfe28d9f95afefdc86e7572dd2a90ffcb3aac1bc47b0a405281120311834b05b8decc3b58180a4a9c9d2fce0b1f9c4f5e11f53bc1bf82e2a2af8f6c6e2df8221bd0391a53a4ef3af5a86debd92b0342ad84534133a0610234a1720453c9ff9f9fed84fb00d79682660922a572b1e7fd099b261f039084f236575f9e9e8cbfc5d255ec2826103ffb34f41c44dd93c0aa847f998057fb4e00f12f761dc7ae2337f2b02ac715b8f554fab3388fa047f2dbb9132498734ff20373f3052b5a3b50a6c3c9dec8ad80bfeeea29892f8e4e4ae8e7c8ad9aa3c36aafada393cc2773abfabe997ddc5e1c8652b013fffbbab7c48ae76c9ee3fa76e25b3f353cdff24042e46971a06c7a9611415d33aac4407c846b0bae2269cf658e093dc4e1dc276bc21bc4ac289e3f5f4221d77f97af5b88b05fb639d78474f9ca47a6805df94dfef77b90c6bb0cb6cef70cef1aedd20352fc57126c4f019547ceabc1089cf88e44b3a2ff05000ca8ecd1607195004b3c88dcdb11af47933dff16e0c786701f03bf1cb6abe71d045dcef49641d9650eae41b8699f5fc2c8ed6ed475d1126338049878c37276f9febe86f4f64203ec212c8885058ea852214b845707baca0104b27ce9ca22a354add2d59328e13ae1e3c3c241ad3e30401e8582e9a4f1820149cafd1c526a7eb03bc755d4f2f8c080e460af6db0c71a3832946e16dd0420f629ead6ffc015912d83d6ef5d673e3ae9f1a14964c26b895d20bd5de2b63f78f5abb602ccbc243b7ad3c74b69543bf59f2e8362b8f5627b6557a96ea1995de95db26106bb3e0d16d561ebd65e1a1db163c74dbcaa1eb8a6daa5ea3f45ea5de81d9e29dc68352d636ce7882fc6220940c94d5c0b5d99fa5a35fda6ee2677d17c6a0be513a43c62864c38711d6e6e2b6b0a7fef7912edc561afa196d4f9cc1d984d352b711dff7220aaaa92da1406601f77d1c61f14a16937b0fe3d19541c47b6c9c2b2f4c5895b54165155e0badff3d67db41a80b881d33726122718da49ebe156f30a3a4c9d16c77971d349299406ca1beda1bb36d299cad865a8000fbaa1318ecc93db87006473b28ab4fbd8681de66695776ea9457d5f1aef8982bdad17c548c7e7272fe7265000f77137c326b35cd1fe3e967ea1334b60a738f4bce81ca3f8a6e6c9d1511bfa757a509f93c9ac80b721323f9f368da86949a5aa52aeaf12e860cb94a7323d7b5e78e91cc8007e5dbc66101b66edddce3f8c8379554a86772c71798f95cf1bb67659dc402a6f19eab05daa99917997cb07831104f1b99956c04106062b3c8bfcaf19ea49eb1dcbd92173eb9b85c1cf593e9c4927d04dfee15c0cfa0c0fdfc58fdfe745dcdac87865cf0cd5ec467336be346a74e1a8c7798ef2b95d1c4ee2f556f74009a29a2f0fb4546e7490a0ad0ef43045d8237bc248cd37a61185be2d21a04139086bfe0053d9539b5a62d518d67bdd9b21e8c8c7d0f38b83c89b74b58d59dfd266f83bdf5003121a31dde514182e4a86e04e6ad85881ffa7368a9ac7a53f9b516d9fe96a2d09e8cbf11371bfdeea42a9b581c03dab778063024dc44548c3e55c48c067f364328a02efb8e0f9b9bf38347d6a743870f78f8a0c30f1d76e041870f38680f185cbee2f2e51e40e040050e10b08081050e2ca00d6410e89a1c08d982b4630a91a1cb22bb387c16bace3ab1caba7bbf0cdb15a28f831d7c028eec9b0099c75e34705cf1d425d01a1b6db4e8c2c2f30e2326f698d86841524799afc57c24221bb4daedae9e33e6985119237c204eb3c596075aabcc82f827b86664fff34334fc083b88ebe0796bef802f2c7205a3be9264be865e13b489fa51fce4b7c4ef22edef757aa491c3b50fbf17479070224c63937f0aac74989c2a62a7cbf4a20a333df30f759869991da9614fcf7c4f096b5ae6132ef571a037f4498e1254720a1a3eab56ca7882504e792112472b652c68fd96ce345b83874bcb74aa164437f59a53c2e811a3f1931c93a5d7524348dacaa9904a2dbc5a4e950d80045deb797b6709ddeb9f07efc127f33644c516cd82cc81a040806c2d499189606cfdb764fe8f270f885d9124b5108d56fb5da6fe27f2c62f262999900dadff4de6fea4e40150abd2840e99e155bfcbd47f543660b24aa2c82331b4fa4b32fdc7c96b3e6f3f87665b2b75c3ffec2fa7c2ac244d1178dff1a745be28175f40331b90cf45ce171cee2fc6944e94db9fde08754cac8ea972e31ab968391e3a5eb252c5f9b8715600275faa015fc8df5409550afd23921076e2336ca788153cfca6d6ac825b82af5d2425406129fb2657d08b1201d9ee4ae073d06dbe32ac3c82de490733a5302bb3a4d1b29c83f49aec037dc0984f513d6c6077ac23641f76eb116be58835b69ccc22ceebcc441e9a12f384f459e186ac5fe0ad586e87e2982ae0b4876aedd8c60fa37cfc93f538393f7c50232fe0aad5ecd2350490298734a58cb002f48bb7bf34aa1e5868e091dc4aa813d7b6f4060a6a1d69595134a281c29230aebc020a0cd0a95122a8d69670bfc1c38f5419cc973298cc51fd24d1a5b13f8db43e459982c9d2903909f7bd374054ec9568f3256af5a849e1e184119c3405bc5e6cfd066773cd80063a826e45a9de87d7d7bd7a5f3bb03d381b3f5420e13ddceb702026761f4205c2544b518ed458d1234b9d6d5d07661d15da0cb3c6f92119ea157a5f203928a704e9060a5bce85150d0897b35c21ef6bf2f7b18e40b82dc039ae258bee3f3845597f896ca6d7ca8e9fdce35dc25fab85e2596a433c22878c953a0cefa05d017daaad8fbfd7428ba3eb531f4e3da2bf61c35ea94996aab7350d6aa3d516feb289875f991f7c29322ed04a392cc56bd4eb2858d6fbd0fa57e6d88877df602a6d8010db5b5c03c50582cae2450ba802f9fef05ca35eeb472431ad62942c42b14bd4b7a0b5d8a1f9db217f51c54c31d8db96b4ff784bf529d98d1dfa6265ea9130a1c42c32d2538710618938009595e579b26ad3362dc764df9bcf7838bcc0e90e5883a853a61fc8d30f8b1bb2c3e93a9dfc98de4a8cb5d208457479ccdd3f74b07d365f9e904800ab8c532c62f3fdc0ae4fd1519aa69ef3ca6851cf7de2b4a784e216ae91bc4d676ad00257974c8496479c62c590adfa6433bd38ff6280f22cac385eb1125b9d7906720ff4b90ff009737c18fc4c2eaaf956584e50fae87441c8842c9e2c2e1911532ca843c044c996952ded62d8996d6d21759d3a178bce7d625f248e419d9f119df5dcd6244ee80d85a124b4f3b4bc53995de2ee8ea63b743ba22eae4deb5b896c78c1cd917fe0440cd8023a014e665b3016564d0701d0bc9274b687a0a1ac7a3a9150a5645b7c32cd8ef96e2342e610244497da1d042267dec44835a3e3d7dfe9a6c2e3d597f2ec1d06ca326283180bf5cba4b72e5ca751e8ed331d867049ab4937b2bb6db9a59429c9143806100670063a4cbcec7018a6e22cc8d93b3846c6137c31343865fce2a7c5091846be05c630e2863b908aa4e00505cce3259ea0dad40e9ef12b1fccd12bbfb3be48a4142efde979a9e91aa491568ea19fe35f70b0d0ea16e0190c3448bfc33a634ed4e9953ffdd80a62c50798470c5107ad4fdfa6e88736ee905dbee2c66f86452c6efc90adb816a0f325cfcc61c91749660db3866dfbd26f9b9cddc854f86edbb66ddd1bf8a9eece04818df6b62120891bb70dd6608c490d469996662e6ad4f050f05abcd4d70d115b755afe6fc52f86effb80be181aecbeb6f92252833e90701a86af0f249deed8631c93041b7aabd5cd8f517c248ca8c531e11953288b40fde9f49c17a24e9f6499f84a164f992371fe4ebf8263a2646dbf7d5bac566b3de5ff20185362815abdea698941241130be6401c9dc534936942c6fb170644ed7f5b4346999960f4a9306e3b67d9bc73826cad6251281646b274a7f584d1f4a296e7c934703ea9a9ebdf0f4993ebedcf6de323d609bde5fea0d895d572995064bf16f37a46fe8b12b782608514602398c8411c19170e3730c430a41c48ddf47dcf8a525ae8cc916c7c4974eb0ddf2d61d8a4736db6fad5e6d1fdf777ae54bdcd8844a47faff92c2c172438f75d79bb40cb7fbc4da2545a4b8c530c2ae4e8cb02855da460df683a1f4db578218a4bf6ef2c556af76e2d04f436930b6abc148030a97c8fc7c7678a6a371e3e770c3d8bf7da56d2b75737e5be90b8ddcedb78f61ed51b100c7f0cbf03f47b85df9f10977fa4a8e064d1f4658e9e3c7289128f26021ea889f2afdf05e6890bb004fc3b2f00ceaa3fb541b51f8589f238f954f7de90b6d066ec986076ee95320b8a5af41825bfa1515dc120a13b8a5771f97b1d5c6ef7e3e0aa51fb747a3e0bdb47836b47c1123342d3f3ddb9daca9fb4a2dcfa56f696969f9f64afd2d29b0b95b8b7ff5c2a6c267c86ce1ee22c672c6d20690c209134e9c30e18409274e66308324e64f9c3bfbc44677ee48ee934b15dca11ac5cef8908d5846c4cca10dd309657d8565540e339fb35ebc9c3b3759368cb008ebaaf5fc72b493529ede4fefa777aec4bdc71ef8ca3bd7715e4c55f152ac3c0af58e7ae75a588e5a8aa68f8d45a230fee0c24e2618502f61bd5a21e219760115847b22f1da97ef59b8109887c993aa8d496db32251fdc4d45e09ea3dbd13367a07940710e04a1a9c8a6f6104e6e13fdfc433279b0843fd6a25c5793ee49b1e75ba81ea270d4e2967bb9c0a4bc7797189d80fa078d90047f5e26d57bb5ca7d38a0986d3bb0ba7d389f362e7c50ef8e56a74ad3ed26919ccef44fd83a9f798db7679c3ec8c151b11e6329161fce70c588c45d9ca17c62deefc78f2fc69405dfff84f2618b4a7df2e5b53569672590e4b675dbaa296b5ac652d7398c35ca6791c667ae8b1d0631e03aa61f2984b0b5ed9643c73e23e7cb6d13c1a4f443dfd503fe30b9b753b07f55ce984427da8a7017551dff3668261e593fe7507aa650d22dd88844232b52b55860d1d168b9f0c269379bdd1755ebc332694ebe3faf125ac63bef5bae805be235bf18261e6af70c396790f5f86182de3db11e6738558ec935255ac1f79eccee75c86fad0b5b8b15ea13e6ed00403eabd57ec545cc633ec02ea93a82aabf5e43a72dd7000e8bc78515e071a9c6fe35d61996a7ecc01c33fbf343c589c4518c7ccf7d8038e991fa1601d51ba280503cad442903a519fa31ce528944798f3541f57eae7230ce5026774b65d4f3866c29a80c19a4a5721456a074edcd9429026126f1735381ff5b5ac8bdab5c2856d03d4d74f222cc2222cc25c2e97ab63d665dae52a97692330ccfcb62eeb4515c376192abf010708b7655d646a81fb1419767e189182d0df9efb82a09e48bc49bde27e46af505fcb6878ee0d41bd73cd4591f5c2f843c45ed4b76be7898b894bc99d6114e24e53cb5ca6030d33bfab55ee4c92ddc9321b1c97f6c82ef304a4c1f95ddf38c433a5af85ed2312afe6f3354f4aa05347a0c5cdeda53ba5dab7f6ad7d6bdf32897946939adf9c4c1090beb96b9e2335d7dcdda5bb77d588b2dca79151cb9c48308a3cfa277d429bb8753e654d8a73e7c904037df926930bf4656f3fbb60199e4ab87336e1cee9ee533db69ffcab17af4d524ba425accbf9d348f3a6d19c8d434dcdf29c69c46acdd085b89af69dd3abe61917344d339a93da348daca335ad6a5aa59a4667f609259a840131ae87035cc6853f1709c89f1f83fcf9fcf32be284bf18e6d3afc8949f8bd33742e355fbfa42fb448da3005b9f5f3ed8482a65d3f6212b1532374ea6779e9442bae68e06979c160ae92ebff6fd53fbcebbe196d36510fefa9e0ddc73937e3ddd53d30a3a1a273d5c058264e96d4f3df9ee859d0bf4e517e4db05f99b37ffb61712b942ba5bb5a75f90ef7e2e2ef0cb975f10fe3ed9309193974ddac753c4a7b32bf5d6f3130a4bffe35a79d8a8237e58fa4221dd6527d63fba8d3cbe7efdc2ee5222973f7a8f2e22a4bb3ddb4faf47b6cce6329226be497e5607f66ff8baa1eac6f62a1cbf708d6d2bc7f07faca1041b3291df187ad545be31f46a48748e3f56eb86b646993f21e60b066a90b5218e639462e7141bbf5d7653355750a9e80aaa1c1cedb46e4ab1f1359304369adae1a862d82ac586b62bd929c5862ec5727472d2398ee33ab23d85466eed66790a8bdc95febf362ea3cd1c869fdfe6f237cb86da4c9bb94c8c5f5859072737d4649735a2cb5c73a818fc3155356002c9d204a7237bd0df60ff4b8fc65972435ba5ff468e9ac653ca97744ad6a6b8f159d547e0e4aa9f6327249669c76cfc8ecf53584a061b8c7f63111e975dfe19c5ba2cb4b76dc0c597bf11fc984a593bdfbf7f6910f488cccbeffd8dcc71074d643ac1cae74e5ac1b9c47fe9e8b98ffd26fcc25f101507387ef114a53ddbcb000488654064e815d3155a66fb7e1cbd00d6d36caf759119b6ff8000f5e8a6cd8c03cb7de9e38f1b84be10d5955f4b1e3b4c6d817ef30ba910d5c5d1307d3707229a2f1adbf263614315cb4cdbd7c3715fdd809c58373cb1ea2603e2322a29bb8ba2bb7da9d3b3cba0e8a34edf79b63eb1f3a70bda160060990d300e9ed956618edb262e660cb8bd7d4038e60656a64a5ad89932e13852b2b70a51f570cf7dd732dc77bd5abdf453e540a65aa1c16863c3f14b0966ff86f65f473db840b431ea34d83c0dfa336955af5cfa79855eb994ba94f6f26a2eda33cde9238fcba0becf457e61aae4d5cdeb4e9a14e959961e643ff1da35857d97fe03f985f6081b461e96ece453cde34fc528e58c0dc425e19252ca29279506fd23d19421cb4fbc985c1e2243dfb9fe1e4687e924dd48542bfd429b4afd83a04a3574259d73ce49bfd2b74dab94a6ce054dbe8cd167e59139cff539b597b56af4e5a433c618a59c5156227401bb0cc44512175714b1dc9d5abb59a534c90665dc3c1bb62f51ba3ddf59c408cd7603c726097cdbbb47bfcda7177ff32f479540d830ba22d18dae5e19b9e2935ecdff8115f10b08a01b46d70f500f01c1d3603ff703a557fc469be9c81870fb239147592c6a999b0af43ab284db1f8f5a66868b5f4024dda6697758afbc555b2ee7e9b13eeb954dafdcbfbfab784e7f173528336ab06d832e34ba5e3a323a9d4d7dc4315ac87c9e8baeb6032b8ef4cc61663c36cdd221bafc4a3213c0e5978eebd66ef786c83b836543f0f28a141b46578f8eae5ea1c2baeb49cb304d57b1feecae9e79add6cefa8805377ad53cab84d5b8d33e6a5dbb6a75530b44347c5ead28433eb0fc6ae1b46eaa14965f4110ddfefb0a0286c4e786f6320e383724b9507352cd84e388fd4bbf9005474d97c271c452b06bd0c8f597a6dae00c6b4b2b65f8f15c7e2591bd5a4939e45c7e2521baa9cb2f21702ed79d2ca2691f91ae3e6a834660d05c238299e5b2cc88e5c7f16bd52a33330b280572434424a594d26fa494ef3d9052fa34729854b325320303f887f6a994f77815ff75da35683d9562dbfeb306319694d87e17c27263c764463fba7a7529bb82bda302591cdba1adf50bb5af327d0ba6ae57da0295eaff05ccf12f418ec0e10a2f9a9802072350198a02d5c410b1a4f3e0bffc531c9c30318215485a373842468305ab050ffecb73385e430c248678525be5844a2983094e68fd04018756105e3733909bcbe5d7cd0f38377cd5c6038e9334081bbeb4d74523b733c56fb7b98d03db1f5fc6975b30d13a4dca287bd52b297f72cc6d1d730e367ecbd060d337c2317defea536f33f988b39a205065303d407efc38be274383fdf168c804c2737e913ea7b5aca7cc6e7f57e955a83d52af82683de319eefb1b0c9ea9dfcf95be9a60d8be725d7fbba556833c710735638e3f10f03f95b2b6bd0ec9c1ba4d29330ce4326c547ad22b59fa012292d59991cbb629a526b7e40a6bd206bbb4d5abfa4d5b3a3c37e6f20bc9ecaec0e64e9bfa53aef7216754a100d5a15e815f80efe74ed9149edb584ab030ffa341f9df53930f982f8606e517f207f05c9d39ccef6850febf66f201f3b1d0a057008f65e6322902f04b0a5f0a295493033805f9b9b420bf22ec30e10bd7bf8713c00b532f5e68fb07e0850cf479e17673fb3d6f88bcef85f5e87694b873258b48cdb9fd354249bde2322e5f0178354249433648643776fbb9230e894bbafd43653459f150194ca07485f58a87be30ba1de5da0cddf48a932edf007835433743ac1e62e9f48a9b70f902c0ab11d269794b8849af988ccb17875723c4c447fa0425f58a9970f9ba7835414936d3e6a6578c74f9def06a846e589425f4a457bc84cbd7865723f444e84713fa09aad22b1ee3f24d7935415582906a1052935eb118976f0daf46a8896b73edf48aab5cbe287835423b3c251e219c5eb1122edf16af460847288713ca7925f58ac3b87c59bc9a57924d67c3a4570cc6e54bc3ab0962e263f281d22b9e5dbe33bc9a20284027a0209d5e71122edf15af264827a8850a6a15f58abfb87cad57f32a32b246af2abd622f2e5f9457f3aaf2425a79210535e9151f5dbe27af26a849906b4690eb75d42beee2f2357935afa3d78cc66b76d32b46c2e5db793541372c16164eaf988bcb97f36a8270725a729ef48a8d2edf9287c20fc7f0ad09dae9156f71f96e5e4dd04e833c132fdf1a261ae2ad09e2e118be13e9f6cf58d39eb32b5b48d5dddde7744dfbe9b94d839dd43780ec0c2cfdc2f8e3840d234bb2644e44aa3f524a29e597d4603f514c064ba5e6d79f065db77d4a3836ac3f40f55bd6fa55a09f94d6efb3590ed315e8a72b6a9876992ed611697bd25dcc65361f87e98f3737f587339ad59f99830aa509f6873b32b9c08680185c6c2f6d21a8ead19b07de1f600dded4930a5395c14e1691404c3c333333333333736466e639048ea5a5f2f5778c5fec77f65441dc0db65ba8bb87b0dddd0d85d36e2cbf9792588e31dc86a25d62f91987eb8e1e8d3a9a474719756c1c332bc7b4182559fc90794e8e71e4b9dd5a0b0876caaf2453d22ea594ce1db9786b5952388a5e47b65862675c7e1da9a203b2a6cbaf23b02340af1ca224b86d0736fe9cb16aee533c0fc99b037bf930e5c6e5d70d125e3e4cd154e6d4c89882e4089f2a9e009a4798dc9cb3ce39e79cd3a76bb2d61004423f9c9f6a50c530efe57c1c1868b0bf6ff8a9d4a53df0d0f4ab7638c065fa2de0324c042425897c30c10d5086a0e42849195618a107583dc2863616416ace79e4a1094552caef80e2e4c5d728f1c0d5722f41044f5c30d4048c24aa04516472b232840d6b0e02f02801b3a1e9ffd84aea8e31707040920110621c51046e0718b89cb4a6987e2ae931b048a26cc1c48b8a231f1a106165872326d0e18d10e16ac215537c6c70f38316540727350c8b23d54b14a008402c08828b295ab4643338e9f677a4020c25e4c0093a104216850bb298f1aa41c6ebcc82165f40e1e201064ac086c0c21a2205f296925849d32c19219d5864872aa694dfd28ba6d9a629e594372ebf78406254f9bbc70e7f61470fede5cfaf477bd92619d9b463c70e4e6e68bd0b661a1f3e6690c1a956b7908d924a0fa4c19ee1853438c30c0db60cdc6f5ffdc21dda677afa491b1b1aff4226a232dfe4e16098f99dc7c2301386a3fc90c8957efda3a1c895f2e9fbcfaf87fbf9dc94dc27039106bf6db6d674a856b0c0c23fe832d6bd1211d6ba0c68bf0adb03ec86556ec840fd04fdfa4668aaf63718a199cf4f6be2759180f6f563d0be7e459cc82fa2497617ff5a87bfa70e3b0b93e58e4844eac1d46f3851d3e6fc18a5c1086b30bea66930212ed360308da857dcd1a68937a26860fbf93ec14374c1cb4ff0187139a7cf496a1d26ba3c803f1ab9fc851e9b532cd7d06712689afab991c3448f1941808b70e5dfd0be1b3588261f377060e987f5c7f663fb9eedeba91f3b8cc680d7a2344c8cf9a7c16031723c5a1128a002a6800ad8724cfb70fc12c6987d21bd7219b6b388fcf955971828fd8c74c7975cb7aac19abadd2a87e9e698289bd0a7807cede75315d0e71e582bd5ad5d6aa50aaa76b020e756356687e1d98e84033f65c35aea61c70afcee3670fc32b178a15735aa6e9491f3bc924723bd59f2a48d0dcde671144059e4d8d0d4a6a11eed81c7a3d8bf59dcfe66b39da77e8f9e50bc57223708bf90eeca0fbbab451d21bdda73d411ca1afacd166e95b7f2dbdb01dd51ea45cb216887242f08c30924be38e293448f0c5a209484102ddabfbc6ef82aea0445a20b9bb22cd6f61147221604febaa84116494fe8e10550d0780fcf102b3c4a5c158f0f3c371c1951ab5542f9c1050b9f265d14565e7ef9f840614b435897e1eaa3b3430d2093131f1d8cb02832b4cf8b1e583a1cd8ae0c5314b60343c85a2d82606b44e1841a846185e52ebf7a8880434f151c5f3d51f0f03c53bafe36e5a906a9b0337eb82996461137b0362ebf7a704c3cd87af9d573c331c1b2cc8caca9082619589315dc102c0a975f4600b5c0b65c7e19918418460c41a7dcb4cb2f23708c40b21da15625caf0028c2ec9ab082d4c48bc8a8882caab0827745e452001845711431491e455840faf226a78314972e1e71b9f63fc513dd896a194524a29a594524a690b28a594524a29a594524a297da16070fc926a50feb8ed42545d8332be50abb5a9d43f08aa4cfda172ac7fbfd05519f2d00e16542b8039fee54a1c2c0dca8f39d20b8e3e7754ab704c627e5ef5741f568d4be188b2044aecfa3b8767627784b610445cfad11c73b3b1b25dede3e7b2fd90f8c22beeb5073907ab7855b5f96ddaa2dc9045eb9c06e97bad537be7527904abf96f2cd3a3c63c6b235cf116f5b9f4431bfe5aa779f176de0a0d43bf87cb748ec3d04fa56ce71e5f7a555f7b8d6bc71e399afc533548df5ffb4a73228f1f78467bfa8d8457a5a7df41b0cce929ea869d63fab006fd93a7314cfd92e70cd6fa26af7ee7d5d73ceda67b1c9ea6fb9c687f83ceead577a79a6b9af4596783254d6caf7ab60f6bc7bdbcd45fb12bd86818b07a2f317c910d23a38fc85d83b4ad8c572cc159b2e34ada399228ad890d19e87b34c001b657dccb68fad40e15d87125ef649ab2769e6cb0ce6dfb367183dbf62fa1bc46aef62ef4b321cb8b7421ef1ae313db1fe3f768a4eb8cd4a0e7e0485a955e310f1cbf8434a8cf2e2b80f534f343130b2c15cdfc10b5f102e673f47ae8cf4f2b6a18d7649acc191593ec303ef324b817ce0527c0bfdd6843c2869c91911bcd98586d7683c3d3dce060695032cd4365c107f0a71e4a088c00ffe9a1aee004f8bba905eec60f15e3187fce8db459af909c63c2f59f9c11c7f86f48d8509371aec9ae6761430d15bbeede4c93d8b076dd326a4d03a806edd828995d035c7e25617239948cf2d677f72929ce0d89b414d28511866e87a8a37fbe77aca8c35f7add0e5187ff7cf926938fa086aface1eb5f1bd1a23be1ef89183069024504031b4a1b69c342d201c9a78de28f0da5cdacb3e950447136e319ee322522f24cfcfe1ae287849571b2db59fcec72fc42c9cdc0c819da22cad5feb7ad542a751539297795063ba96748d8198b6772bc566b396dfbf95c67f2317bbad7bc1ee63a1957a59f5fbbb8923ea60fed4bf5b76de3ea56b76dab5bddb4a286e998c344260d33c3848426a1424c29730a554297d025530a455237fa023a840d59e812ba33a5d01dba4395241182dd85f89082e380904295489952a89239654ea13a730a0582ea00f13cbd06078323f3298c58dd6d8c310eb941c80d32e8c8e2deadf2a1fa80aae50c6e4c2ea02236a534206309a423b62fbf5a63e078b5baa07ef9d5326a51b1a158f0649e39b0f1e39c4558a7306cfcf9cd29e794ce84672f38aacc8f7ae9f7e3093636944e728c427c36c60d424370c7185b4603901021084a1223076e78ed7812e7b12b60bd4a9ccd4c9b0ea4d10dabd16d81bbdacc2a99dd66f71a62382ebf7ec0c10f49975f4a6c685c7efd60747d78c818fa22cafdcb435e40c1c9992edda54b9f539bdad4e68c382ea7cf6cf269fd93c96c35d8360210c0102b0001680100003e3870d8b8b8b06edc10fab1612308299572d5a8c183020a42392d2d362c2c3e346800cd9811d45a5931b2f685844205b94ea7d7cc6462755d0ecff0e59e6f4d50e9f9f2dd9e2fb714c2c26aacfed0a30aa502d528958816514ae5ba74775a2d8d494965b76994dbad067ba784544a2a552919958e846cc8197148672127931571312a9147e928f5b3e386f5c759edad26b79fce6ab536f5a02ad2270d967e1aecef3e75e7fc4a4f6888a531aaccc69819915174a9c81a5cc246b44de1dc9b2f3d21dd967371b8ee885c7985edee86739b0916a96371469b0d77d42bf9dc8c4bba9d4d456a30a9757be7f66b2a7836a8f0069853856703a8f094ce574185cf0615debdf9a9e02a68af82d675ac065bfb3a9c201bd2275eb04b67bd0a39225aa557216de2ada4db340a51afc2128c9bd22b7eb900e7f69760bd0aeb4f945e851289a85721673425f2e8703a180799e6a8f4add5653d0b15cd0002000a8314002030140a068442b1482420d184790f14000e7f98447c5c18c9b228c861188610328610000800002000203333330a000fdcf898a9bdb39ec031240594027a0c17b3dec280979e012428e1cafe59e4283686da0ab9343a097d30514a5b6b88d35f94af28878f88f61713f9b68c7d421e6249c8ce42e63ad4ab1b8c97d653217509b44fde45e29db29ea06816bc90738c1c1838151f7384640e36a52a8ba0b54b6941356acc8d161aa49bbac96cd914c6b59eeaacef41855a06737eb59962e23ed7b6f5d464f0413760f5d9bdc941cdf78bf6f07d4598344422f881cd3a69cbcf6e303b30b4f8ed3ca3f4f1677c1cbb3ba312f4a847b8c49105cb5336b54ebd4a95c4a0f13b9e9e98c0cba09c5bc7bbcc797794eca2c893327650aecde501be1c24b911de624ebe04e892ca0dd8bfc8656f217a1b1ffed58bb4b82078c4fd86215dcd8726e0dd62f2aa10ee352f7a7cb84b2f13c2c98fa5481f810a7592011093e96a1af5723e123dc500a2303301cc5228c7620b37e3c14e0ee1c8fec56765dc6d44bea0ca52a4567e41b3486c96575e2d158d9064ba1d55e475b7539e53000a8064ed4f7581f589da51f00c13922a3c1137ba6134386d378250b90ef819654df3b01d5121c6680890e1c6f5fedfbadfdf8b6de3c4e6d0375cf8a782e3f18320a0b6c33041b27cee4cd7442712fa26e69d6081d95154c3935f077484c10d5c3f637415a32587955d4f69d52e087436bae1dc279292a893c738f28dfde146c5434aa1e7afed5d88bbdc45cd0194770d94226231efa825402240b12d3a15e22d3671a2fa6acf20c4a856258f96f52133a9efdf0f24f92433fe834641e8b19872194c78b45641d9b7992052a2f35225834cc0a2359069c560285a933c97bc0d0d908f027c311231c55ed1f33272ce1e67c8e792065c74a0c102bb6c5a64123d45ea0586f2f38a30da1504b9a82801267767554961e8a4e1b890ae8a5904919f13b708bd46e8bfa3c9cb0822c7d56b83b6b089bd3ea542b75b4fe0bcd98c27b1aabf97d0904e58ae4010465c8acd5b7425d2c1f34338d8a4a0890e0f47a0bb1907b40f196bbbeae5e64f28bc1fac6dffcb85f0721e60144c477421e1831c0504343a0811524ae2aa9e0da61221896b02e1b8d13da3b7afae9bd9b5908541e43930c530223a51ec38aa06e7004be0547ecace8ed60b6ac94ef6872ca5be0d15106249e4f2f920b895496b8fb12f9096059f1da12485ff6dfb28751a41e84285028b9edd1b7b2e9c845ae1ed7e23dc76c2cdb00aa5f5230cd116dec71fcb369e2d8cf1030036b8461725b6fa22550856b128ff4cdbdd0c409a811020e474740a8d8520771f673b81bb48a021d9b388ebf9315caa8eb00bc4e33735518072b63b96f0ff1d77d5c8be8d3e8c71e1709cb90693e42000a239a0c168a1561ae01145cbdb24990f75ba479fc2d4e4649f0ffe1e1f97caf62df5cfda38e7d34f863c2916604e0d28af092c37307a94ae29fb8477c2d4eea0322e3a379618623b4ce3cba44580045cfddf9f874957cfe6e0c3d414da61aa670f400326b330729f7e13ababefc293791439c8deac427284d71e44f845a8fff2c8a2eec374d5399fca95bfb0c95597d2a2ad6166642d659a35e89446dc40e052ee56f1afc03c7434f5458cf327c35169cef1b5454e8e8aec7417491d27a9e5f59e7f707b46ad3f9b1ca4e469388be2651075954c8439a6e62f0fb823a07aa8883875baa7aab791ad45b4211633b2ee0bf0633396e7ac1a13fc225775461ef2fc22c6fb8b8cd3fa750af7062220162b644ad4761b1a06eb85defe44b70c148a3d3e6c81edaf5403ae23b9bcf3ceed991a5c8be7a6b1c56d81a2c2b7ff30ce22a835c35bf654d35d04a1f44c9aa5d34be85234a2ab9708456bc842093a0c286e2062b678e7ff2ef76f4a13e0673dae2ab19e63a9e592c4df09688dae802ac14c146bcb12e9ca4e841ef20c7282c9f77ae45c7b7d7502a0c827546c84acf3bfb2b8614c584952ea3a6fad09ca6c3a45925aa2ee81c872e2c9d097a7f4cfeeedd4a6256e433fac4f35871437d7b63ca773fbd90fa1b4dbccdf38e48b96f224e32115ba551e36cba86180b73c5bdfa22cb6c27b4464b9388107f1421e621ec853140068bd28ab9730d26e75efda51ba7eebcdcc048958addf923afda4f94b6e148e59ab95f93049251fdbacb2258e4dd6b66270b33d845313eb9c22198c5a7e64ab55c2610134a70d5cd7a9774ef8b080494980a2db1a5ba52cc318faceebde7a7d6f1739899a687fd48e501de716ac3e60ae832a0d8fd1de7eff0ff582f217bd05e7171fdc57447e09b866501c81f62cc9db424e0d9dd89bd23418f75c80c29aa5d599f620b45ce5fc6311b4cc3c6263796a833f6bff195c198c88b974d1d21382a6cb1bf999b323e0cfe5213113aa2954aaee57ea6bb7080119ed2c45869c73bfe00889cf28ba23ec5f08e683fcd25fc3e174108706382f70bcd50d3c0420fc15d2bc3e8896f378fe8bdc33b3cbc988da2d3df97de3579e9885380657a482ffd54f659b6629083278a0a03bb5330086071903f0b2950543a41ee0fd0ff67f9c671275dd92fdbc5fd201147e8798501a67418914fe72abc68c7f8b167c95cb4649f34e33fe59e10287eb5624a5853ea3e5e4b1a7e81c14cf61eb9426670bd17276408abb59f9a6abf753ad579bb9f7034fc3d2a7de9f7d71bca98ff2229483beec6122fb00a074b3be01432301990002024a80aed7bc2e1944cf2fc686f9653280314187617e17bee470aae127ae8a7523fd2a82abf4788702da713102cbb963c4ec26c0c07f024bda0521dc755c1d19f9155e19b527d0fdbc1b6d7e1f74dad993f2674a8ec72cb958aad31f06e9ff5d2256b08a25794c83fc4a8dda6679c2a054bba03709015c61748dee9380befc3b6707f03cd2254e4558e751123625fbb159043b749df54324644dda133d680816e4664c4cafb178cf14c000128d1d748f6efc2e70bc6be2d340e06d422a456106222582120f8ec896a9530f2c8c2d6041d7d1c5b1aed8a707bec300289322ba3e324265cfefdca2dcad6e666d0e5242bb48f597618114259aa62e9229d21f11ab6ccec9cf49dc3a07437b8baf50c4bf4f38787114bde3c62f4d838a7c4e7d06106c639d67183324e535ee4e52e5ec7110151528fc764fdb698b6bfdd2d6c3719d1c4d5ac371345882cb69e128d199786dd6bbad84633ead9d14f383a3d88ad80679b21f194c2956caf98f639d538bcddd8251fcf4b43d8762ec1d136d8aa72d78db737af7a9b63d27548b6927096e34c49abbd9b7d2901cbda000c95c9a5076d14bfc126d2ee75763467b812b7d3d6e40723d07b802a9afa1021a99bbe5efb72a0cd3dbfb7e846d63b808f3a67dc8b49d2f63898c0c5716205af43bd72c4dcb61e2f1772eec28e398db3557fde384c24ab94a4fb939d90eb1a6e756419fc537edac14b6abed94671b0188a066cc63c811737452d6eb9cd0e9f8c70944f209202a751b19d9197189b4594fd6983e402364e29228bdb806a4b59fb4dac274e0073beaeda1ef67576e152a54457722412f9b7ab41f435472fd343292c9102d95b6ca5d1822e264bc0b018e74de9052aa0b7a07ce81684f92bcb78898f25a4c5eedd34708fa5ae20d7b0ed4a94b293df33a546dd3d2f1d53b739066612215080980fbb7e8e6231da7f3b8ecab4359016bb991ae8148fed98426524b67c8e0bebd25853c406fc8531e06b58f82db92c0ad01bd20e058a0b5b28d3ec56293a6c09b0ec05650f44d0cc87285d09b209a7d2591c6e2e155fda7e22a6be2db9946e264b9d3eb7be899e83c044210d424f48760325f8239ea17150d3341189f2f8e89edea2242c518fdc02ee2a5fbb2da03b5686ce31970297ff9fd0f19100ca3ed7cdd06f31a5d00abaf5bacc309c29f3ecbe83489b9842fa27814fab0a04bde9be5dd9baf62092cc2a9d021caece4e92ec7567bc282061774f9a3bb72d7fd3024b2e0346e055af54ce9602f9ffcc0bfc75a2f41bec00c5e4d0c0e896450071e65e84b7b135248d7bddeb6870142f13993f652e41bc3427e9fe017e26ee91f849433cab0ef62be432dfbac29cd763b95d411daf2d0756e80add8d192b2403e04e040406dc7f6fe501482260f57b9d2108b8cbb8750e7c23da6053605a422dfed947fdb05b4de33c05621837a557424db19f08458bae8ba4813e47270de6db41561998e2bd03f35a925953a8f45f48ed9e2a7b99a29d62dac8c125a4d152bcbaafaf93541cc5a9aba342fcc9a6a86066a32f0d194f79b4a5417e4d02819cd4ccdb8957f37c2ee92e8fbb809d38d13bcf2fa329b5ddd839b01b8028f7c61f93b4aba73630158e79aa5ec0ce18985b5cd23fe97118cf7f07384d520f1c947382e5abc5fedeaa5d51f1c6531818b59c44d2a8d9f613774eea82339b7be421474df0097651827210ea442f798b2cde012f4f686f6ea9ed42e1e9775cb933bcc36305249f8fb526d9eb2ac332afaee46face44294186dba18de2867603e369403046dd0363c3d85a38a487d96beec93d4dc01dc916ced0e968ab76ac5952839192cf90f2fe455b565a47a73a31b73eda16e9f6ef2be4110476371e9571ad28573eeaf8dc4e3a93dfbc1a90bc84ad2a399ca17f0d8f8e9a386d52b16c5f6984fb9ed09ee574dee5f8317b2acceedca520c0bee4c2ba6e3640c2ccdfc5852ccd5aa65e1e4bc61af690af78367971bec96efa7692e6c2119d6bb394737a7829e3e8800f6177c94ecebbde089ea07f4b1c7a8c0e963d7fcfc8bf0aeb3ed267dfaa7f4a7b7a1603254a6f53bb4106b36fa74207b337a5e790b40df73224ea695edf7e4539ff4e931989f897c3ee3ab2883d56510196a69290acc4f5eccb2bf5919364bc2729c0f8a159be6bc3d808dd8c5ec68e4a43c18c8dcba812b1230b60153ffc5041f8487f40f42eedbc451efafb02920fe94457b99136496ea3e24ff94d4063a94f7ab5981ca3670cf744144b41061453bd9bc4eb6bf5df0320eb91f3d57008f24040d157c293da260ec01d9634d1d6025a75458c2955746602ab724b4bee6b2b8bca30be83ee8ea27a328a6861441482a877276739ddbee03fa5532488ace013aaa0528888093da4b1d061feccbe3fb1e4e7084f9d3a9048e858e54a6a6488bf6b614652d53c00eba4868d5d1782c7e0a24509689eff72e85e4e53322a5d2caf540f9dc93faaa4a893c94b81e87c1a6c4baaac8fedf387d88e097c33388f654ca1bfe74218c46246416d96dd24dc25f1053827b83bcab5b0f8124d45ff3ebf1d206003c519a4a9b3d47cf2e40c6611d7563443465635a66db8d8e4f82fae21a5286c7056a38600f051b9b135abc1904c9d5881a21f2b352a31b79e4a7c6455fd48db82d7ae8dec6898e2ef9b1edd2371aa344cd1cb4b2a6f9cce4f19a628e8c2293f4b195987df88d4143009017a9cc7f486d3ddeace7fd8539c7e898d7a43cf54cf4b4953ddb31b25fbd5e33f1f9321406dfd1778f27167748bd87b22a57a9a1dafcdfe98efa3f3e03c180fd90cff880c852850843099112746d8ca7956935a4e715aa4f053ce3fb92c576e912e4d052d4c2bad2921dc12c7b467b0003d42d55c34287c87c1b420845d3a9c6c4cded609f5926c31d76ab3aa982f6ea15532737869698c7578a1cfabc541b30620b9167fbc89461e03d2d578191322024bd3a8bb9bccab6e92d0ac0926206f7ff0e612a2b402fde32f7c9f0d7be73d89ec1151fafd62f8c96a191ddcd0ae14788672df6feecf3c18bc612cce560602f1402a8b8e64e1ef9747c6579c625b8383449642fa1372b37737f5a8b5f783117ae6a1623161cc8ab284050529e0f59ce435e7bce310037e319f15874c7f3852989509b472f8dd166e94c35cc184a55b7392412ebfd027d8d75884033010ce27efe776e2f9029a3f505b7e7bb6e5af7b568c0e3fa639bfc6bb9ee8321ecae1ef07eb8ae7c7b792e37816f3273da7b41f3fbc88cd1fd807d888b796bffea8867818ef1ab835def6c256e2d118bd7ef0b63ded67c1a65cc1a85315971afe41c1befb3df952144513da6e43ff8b5fc81c3cd7151557a328007746e6f7199856cea0a5d03e76ebe08ce010a600b77bd06b58a8342a35e969d36e38e261423d6c89261898aa10e9561a8ddc82e03f19066fff46f3ace4cc2d47aee995cccc116942a4a8bd0bea781d232b3539ed91fe015e441784abc9975c6626da3c993a671aef2966a4db59e8842049f058e1913c9bf043797f2afa21dd627abdb39d046a8540f51aa61b1439a0c679256662d013463666520f5b3ca468dc30b2c5b06944fd6b140b8968650b2ca04b9e0453f930c36e3512ddc26f057f7f42bc9dd8a1033111676f4900de29671f4dc5375b24f66bd1251da2c3d2430dc03eefe91e3501854fc06770cd342085b2255d0cc7964bad82723a38314780d949a0a6a96f05be156c874766b4d46aaf1f6836476e43218a69be158d12c2edc6d84f89faf098d9af1171a9e568d0604473134723e1a064d94313999ae0561e896313cffa055ddd2a06574b22bb5cfb61fc0b01918dc298e0f30782b76c6ddf3c1a7a0f3934aa12579771958885c7d062f7c027995d77d99acd7407ff0696e9f81c94d8e3d84a6be9a4fd9c4a5031428bb2fa3391946058085c6f179911d880ead0271ce1cd5644c5b03e899875706160c8284ff2ce11eda999fb7e21250c536b9d43e53fc6dc20e12d3fb10323f9f2e3bd85a6eeec302262ff7467dc08cd78ce9db74a59e2533c356336f580a7aea5d93db941d75ade6dc7af24ad2567eb495ccf82770dbde34453b60d15b8f57fdab56f0014da7a6270ee49b4daf9962456ec2da733b445bf5e47474d4ed4cb08ce11ac5c1792b8d19d5c3ff03710870000c28cd9aaaa9e7ba3bcfb0e8bedae8c09d6d2f055980074edf3128099756a62af9f0d6c3f68e4a7fee9ab3d2bb05050cb101462b76566a9ad2d193511e20a3c710438daee6988858e445ab63161bf7edd00c6148e1071f0fc58db4620423c8eb0d9e4063f09481dc22f55ac777e4cbcd4a22f66e6ad5ed13b64cf7692bcaca245ea17880bc85853ff0014b818454759e62a7e3bca705dda1544beec8d0ffa3862a3474ebc307ad589272e90b92beecd5f98d7e816d907a8df2df4ffadc5942d316ef5c172fb339a9e025c89ff001d53bff27f2f63a026c395574633af09618073bdd97038ce597a17592ca545591fe405138662ba9792730a68c8fe1f8c0f3f05b75e280074ffbf94fc3d723024f659907335bd0e89d4ad4bc4cb154bd80f388033e3de726df575d1b140c8c20b6cde54dc639ba43e111be2a32cd29f85dd8a6cdb09f0c26cc850782389e9233b30e72279467204be54672e89565532022b1e9842219c7fe1e60d0b8222b7bc3e11b406b73dc82da923c15d2507a503d2f83f7614bce5f72d14bf96a33c1c56723dc2dc04e8443078b759e388c5658b91f9991a5aaf8d2c0dcea1145d505844ed90858a1a0a6220ddb0e4dd35c7a6f9bb92a4ce3964ae4e5f0aa67cf9c91bd81cd76773540dfaede11dfa29522365b5839b43040fbcfe30d1edb555224090eff0639822d6a93af515f2610f0aa80838269e101f767364d266025ad3953e12a4416a32fead8f895d26cc258611db5b2acf699f63aaeaba3bef176585e1ecf69ce5a2d4698f2348d8600953d9f53e8f066759333002a4d0c33d585b7ab22284f7d08fe11c3c5664b18cd2aca84594f996ab466a9b92711a75d2e0e9f86d632e2ff31da6465db428021ceebb104fb0e713696643488ff4734c775c290055278093bd3f6b50dc6153c8a83ea3abd789cdf7bfc66b0109a784fd6c9e3ff033221cef8ef1c3aa0bfd934d186fc967f120ebee771fed24c67221779cfc601833351c08ca28b9e762026a3519cf4a9d397b3c9f304780a64a1905db0187e138efff2f1f765e26bc5d9479cdcce75af7877a44aa1edcd661e60604c20e321f782634899be4fc5b25bd423ee33fe041e4a0fb18727e46311d8bec3e225e1fe1c591e244e91030d9185ca12f7050aea455ac6ae22838982fc687556a0ef35969357966e451a0383fc28d5a7124bf5ebfce3574ea06bd6eae894113c71495425151817b2097ccd784a9f7e3322f5f3be2eb6d00faa2dc1ea61715596aca9f27de26d4ce45af790ac11d2e101c4e91efb800a2cb86fc1d65b4e2212e019f15bc7977d15e2a9cefc3985cb8e18b31124a4c9ecfef1b24cda7a8008e4c3e389157096e6950dfb3ce1a1a085c0630307698b904c2da417267130bc479887368bcd7a53560e22e6e19be2f32d08888bc3e5c70e7b20bdcc46c8817601ed838aeb7b7dffa1340dfce268dfa8a41f4967be1cdb5cf09448cee49ea198e7400a66d7cd89079ae01e880f5c12d4a450a43c7420a11d3b21eaa87687c00bf14b73ac1ebe1d0035ef86a67671eea01b3f6e042d9455725ce848efdc720aad13373d0d072aa3183d04ec50ac912362daa62a30cd5bb2391b0085dbed0c5ecafde4c6084e425f301da783f83e2ca53e66b83c7d8706806810b6f7ae9d424124f98fe8ae5e30ba5e58370cf5f50fb48046da2415bc58c4e7a9526ef98d1ef12d911a0ed88e06b2e9e08b5700740d99ae7021070805529bb66a5ee66db9a6871e90390b26863e3ac2d6771927feb486c0f368b0d0fb197ad728b6ab2ce3640d734698feac04555e9b9a75889dcf8e90e9db9bfbc2f3f4e731bea01d9126873a65fedeba28dfda24b2f144042b5c386049683bcaa994b01b98ec365a97b61c35437f124fc2a6a98f0d08f2585c5a38ad5dd71d2982689438132389b7c30c92529a42a8d9bcbfbd11acc54275476014e6e0012de6e002190d960c4589133d2ea280702b2b59a8eae5feb648eb6262153d9981cde99885f06aeb118584427847b59f3c448987190db1a03a31645b8c670d8fd1e317668bc793eae124c589b478e59f47a8fab939f26df1f294eea96013fa8727a53e2ac0ad37d743dd3373c8bcdfe5e9f9f7e302d9b05aa1595462196d0b67d065eb94b359bd7926e5b11b05f835080633b00739732309cf74e388e185e498b62cbe03917f6a203c7761342c2ab4d3adb5501667b9cb1a8c8ba67670bbb06fa085c14537185d2fadad075736444100f8b8bae33f68e4a8e71fc1a95a12fec2a70e73bfce841b7e4d685b47bd610ca0d2c47bc15c6b6a132a241627ec017a0ba0d838e1b1a136f3434d688d972f43d62650b7ed6ca9833f168dd6fa95a68d14f6bf56f88bcd8a057a9dbbaa77d036141a3ef769017a725f173490f4bee458547dad184ed911bc0bd6b156d1d6bdeca575ef001987e8b41d08ca679aac9edd88cc57590797413744b1b335ea2bcc932712a019ae916b2b3a5b61be64d46e44a501b2f1a2157e6752868b9e5a150a84612c4ae3ce19fc4d6885eb57c9067096d26b90c6a5cb34f35856c6b6f1d15e4ca849e62421681d59a8b4e5125f448e5bc424aec2ebc2f3e6ae6218759757843d68af375f896d982a3c28a5f4b2966238a8684fc571a707d4ae158c722164c97b4820634168ab95beb11caa5fd4ef2289871683a52764fef0ccd7dbb5f8f9ad119259d82912ce8e201a70b1b9ab599be339f4917fa0312ceec8ad15e5fcce601fce6cfac7934035ae05a415701605c3aac0fb3339a8db34e91de284974a583d6f3be8ffd377e7205fb41e58d06992643add80e648379b78b17e58db730ccda52dda56d688c9aca1b1bbd33d7f41dea817aaf941b4bc5decbf027ce3253adba1725e519ee77dade803274308d6cb59aa434711b07b998680953acb2632c64d2610141d0622b29ab606fb7a9f9c6f0071f7ccf1aa42b8017248c6cf5ae6036e92b6f70467ceaed6f1ac95985444baa108ee3f3ad5899353426ba279fdf423805ae5c3c8f5c1e21abc116ca83dcd5106c630348fa40e4fd292f71e61fb50c1c6157d1e95f80395a8cd5a5537b6122fae61f86fcd1d3e04d026c7393ad865fd15516493db1c8857fb1ed5b595c8fb96832a980618f35cffe3a442414287b9b05fd21b188442af614c02945be387af90854e8a9273203216bef193859a0a0a98fbbdb508e76511f492d0cf4e3df2507e8a593d1838d8cbadff14655e470768a9c15fa5fdcfeb36ec75fde8cb69930a140a9274b670ea49ac9f073b706c06de5a2cc7c5ae473572652591586ad6dea5cb5b1d432784ed0a6a17b192883332bbdbb203077e4bcb40e45718a5e1446e33b981875be32c36c995c7253bf2fb764275f44a47cc9eaf7daff7ce16a102a10b509cbe31848037549307de3034912b56a935ca751fb0798164d7af50c168140aee40be60aaa613926acd97128d1dd006e0ff85b80a4c985467dd18647821cc3875b1958ceab4d363fb393e87bf20cfdcaaeb2223a559fa395749dc2b0ba93655011483a70ed071672555d0ad221c7c33428b84054bf9f2f70de709742d08d3cfa1b43be50fbca982a8e2ae2dae6f5cd6e995958878669fa10fa5d7ade513f02958b8f24a58eb86c74439ed9b136c81c49f0f20e780e5c7eaf44dac2f80bd46c4ea43a6d997223bd873da1def4091b17254c4c94bd7aa6fe717111f2bf98a121b0b2c5a3c6820d2013844af4037e3bfbd22d0a0042d2f79cbaef049cfa9983a1784040783b3d04b941e8b737e6698c4ed273640dfe8da2f0b14ec81c215e8aab6b830c507b69ff4c947f120e123aee36ada381a7779162080cfa5f1a1ed96b1666f94f86702da1f995a8595ddf5a4f89f48102fd2ad8963082c3d044f3231357fe3403fd47ed634b35ee89a0a6e5bd583f22a35b4a0cbe5bd7af287f19641892fa561216028f9261b458de25844d48220d7ec37c4c14e6a30c0e3ef1adc0acf7d72949dd52cc348b060a4cc87bdd978285d743ea51fd1c99b62c5a35ee71918ccda3f5b4cc9924921697ad02e1de69916a1a2318a78ed339d096630477c8508f802dc39ef38486bfbf5789af31020ceb86dd0e619ef1c4f3d96658cbe01bd53d2fea7cd987f527a889b65253947d5cf5e4058c4e1bf3e1ff004365dc2179763da0707610d4b613e9b2cfe7663b2701f544dfd86211e0c2a63d3e8e6077f19011dd62898e7aec33cc9da73070ec48baa59f98dfb0ec150d20790bb8c3b4460a3135d42d832a439d47d798881cd4971f1133d92c340b6b1675689ecf71524ceb309c34a104a9a65462f75b579fdf8650c8d50f7f29dc42b35a8026e1d011e1c853b2e684c921bbb632fa277b36e88323cc2fdd6218507948eb2192d4db2e0a59cd8f3fb0884c901b17c8ccedaf8a4175cc271379230a9deec97f31943e42fc91b23da8cb53402afb86571ff044c5ec2a8069fc9b60c6054d7c562e12ddd94a177f44cfea8c22bbe391c183fc76d2336e861958b045daa12ecd6c898a509dbf8d9c24af344ae3c57b467b6c401a2be870a08b7b8e0563b5ca42c247b570b7af6e1a324287dc660fb9014e947373ed6ccbb00e19ab21daff9f80f3c169d6b11c9fac355fd452cd91bea5c6ad2b3aef9c46594aaaff351848ddc37d108e6fcc8f1c90175f9eace2b12ca0d99b9fe211a7299dcb7f6b6526724a60c2007b152a7e3ff735f8a842749e2096fd29711be40084106dc1c917c615b9b8215f22d6f1950fa9cf23b27c81d4a2097880be0f49d7a84349939e50c2f5ea8e3e40af44909ae14d3447d148cc1ac7ce6c906b0fd001608a38faf8ba6f269912706cff25cd6aec76e0d7e219056f2560590255630f76029a0cd7a4271b3113f023d1eac51a65c0df475f2dae8f70ecfaefb6ab79f85c9f11bc9c3b3435b358093f09960004246799bcfd793fea2d55afe3632d29ecf7d9d4c924b555b6b576e27434583797e1ab6c4e0342afbeca7685be416c17ccf4411e7ffa8111660d71e9604724c30408c4c2340aba592b2b3c9d0ef6d88b85f6bdb84532319c72f48ef3e5b953e2f30ebc3e53a0a2119c0682a2949674584660cf34552750a1d85cb9d5a2bbc4772bdd55a77d3bf1348ef44b6b59c1e3d078d4434fbb02df21454a212e2bf50480b815ecfe6cd9d0607953726c92d4d0f6c4941006409714e94aa8d1ad9c97c24e7b25bc967b3f0310fd332d9feca8b8b36a1dc465923fb522d026d5a8a8524e94b01292e7ee024d8f8367387698c8b88e4324d594d557a2d02b2f0d3678d4482740b18c210369a9365c505ded399f5982e03afc12054103874f57f2df6768b8c7fd2399651669e6f5f1de47d97f0fb0f23d5fd321881445aa37be38352f83375a7c5c4c38480526c3077aeabaa92a6e7ec05b5803a8c5ed157811dee6434884b062cf127a91d2d615460f2c162808c0f79d1d60a6027efd3edd17e3f9952317033a70ce287024ef58f9384b6cf6042940c92d05626c208fdba47947e055ba8ec37f45cff49ffd1647966f8fa94188e1d206c43145db727034d7004608e4ee06e3ebf535a7661753b1921aa4ec69a041e78991a579a1aa72856cb8258f7dbf4d92f99b680855d0d8421bf3f02f6927362a12a145fbb796e7a649b59ef8138e11c97cc28caeab182a296f87200bc889035402d697feca682eca4c23d16c7b2e79a50efe13cee3496226b31c5677cd90b503c505f7a62eb65a0015247095a471603a3821023ce309c2a805b636ac81f36176a5fb2f3056a56343203f87a66b6c361c0c9405b4ab9a42d3117b240b2b588f9ff29969d4c853816e3c0b6897137222e6c28b37ba8d8bbcc9aa5a0d482332aede5f109ea6e996014eb2e67e073a4dd38fd5bad5fc80a9df92785bafd12d38ae7798483de397d88328a0100911c9d89d9241c5e4b56228b5a3db425fbbc72c0f4ee7f7a07ad93d0cbf47b0a81dac43273c24601f6cc3cc63f53ac079b0f2902d13fa1e383cdd55645247311ce22d40a7d1e53908df2f2f574a2812a1c82c395caef311e926e10ccbecbf68982c2670c774539c8aa1efbf36be29106d948f22004377ad6f5e1b1ea97bfb24c274978176b429656f9580668ddc8f2fbb294b4a51b74bf704f404d1075e57ba284b03e8dd65a2834010479b9d8dbc17cd6297984fd77b23a18dde4c2e026317d74e184bef88bee491411c3231ad0aaaeec108ec1981e6e2cda2892907fd506466ac3837fffe9d5a5930d6af9fe8407aecfabc77400495e597f71531a1fdc2d27fa80baaab8da12fdcfa091e4dc558bc5aebf96c66428ade1d4caa3d5eb071540fa2c541a077bf2e82c7802531ea98aab6e4fe400d7394faf3d260226c4fa8ee3c49b2729c15c560fe32d31fac54cf160dd4a8dc7eb9366a1c7fe4aff67b00b04b1764c7219618a988eca129462db43715266d7bd9d6276ebaa760df5c7603f2168b2ac9ab2d6123720e09212c0552e2f838eafa3a1a2806c19840c895a29e0edea18a6219c8ac709a0a761107cddce1b304c49a44270de458ced617ab7ec860e7636b5c16586ebb0902c21ff0aed37a204ad9e6bfb6e75e48d4423c114a31f0343d7e1c4f0667cf79b34ed7a612366e2f27fc8672e5a116eb021bd4df7e8bf608925f7d64eb724f5f6090a298337c594d07c17a38e1e6538651879e36903a6eb551eae0d9df83b614c5b12b203a924cb1262a0edd41bd7a40ac0b43085a40e6a56964ea20e79064e12dfb8d7855f4e719cd4a324f3b4badb7c324ff3ded33fa46f173336d9c411e478e288aa43c036a6482b67bcc567fce846bce67daa00e5de0c7962983bb01bc9121bceb58408980a44db24afe2e58dfc8e3a4a17e0bf87b2ac2df3e6ca17c2f2645dd2fc6acfd24954360b1367d40fbcf95069c27ab81fdf32d8c0d28975213600f6bf3c66777ff9f7b86b2060bcc50e61d201efe144dd701a880374c3000c01b2f49500b4c7fc3906d5c64d8d4381c92bf5847d3d6216f71257ef17de4d26d7c31b3291bed6653d2f30e80d052e8b89ae45f2fd158f643363d1f0e95b22a67ab32caa453886fdb00cb6b733b4ddceac7c353b82c9be6ed8e8af79ec5a23cb4c16b67558cfb4f841574f1b78c25137de7fc19043480b57f3fcc2078ec65850044d00f1302d32cb53f424f434699337f20ada8a9459f51479586b34b54371f83e4e72a74839c55ab38095481b938a34ddcd78b7f3658edcac52cafa783272bdda959823efbdd1fd2626df0c1784e5d47d8dd996b8e021421cdeae1fa7444abc0921b84523bbf881ec8df0b54fd6a00caa0bf7f9d9d543a75601618680e6c6a5caa11bc4905a59a8e2a8de5ece7aec6ef06546e6ec6a71a3e1ff637f1be276d515c7fae24a64cd7a8ed55dcf806e448ad6b14299f84d8102488d84762e5135cda19b32fe0c89c611441b6cd0cdaa84bc40b682ae61ef32b1147ed8f0ca4384336c4260481aaa8978a4761fc75c5464106f5f1cfa4609cbc9b80a758edfc5b24147b3e843bc345fe10f37a0cc18a955d279061708f0e943007131414fe7276a4a622217a7b577bd7364b0913ef278f5357b077d6e36e4d04332d267ba29be50e8919abe9c0831859e5f51e34c024a473afb6c0d417951a9b97eb2601b46598be88c8de44a39d72d90818bffd3022ae65e18a251a4f12b28ed2d43bd5b22ed2c607228d9f640f28d4547474da4948c10ea797a21784692e6a860732d812d3675dc3093d35fb30570041118265efce8b29a895bb6463e3307d23c7c0c02b81686b983227452584884eb7f52c5a695b6738762fdd30242afd6ebc808202fd6832d9b83d84942b84dbc9de6703d02620c97ef824a2cfdcc7c32f43440430520f5989357b00636aa0a15e49701eea519d6fee511c123b566faa99624e0055a23ae0a8a635872b308bbff83f386f24078709ba008438c0223b6b763284ba5ddec615546b2ca532871564712b104932d3c5b8a19392b5b15dc858d01f31bc90661355b7f7cb3eb005700bb2a5d8119071521af3a2e22ff579490a06db646fd8161f91bdabca0e3c2c0c2637bd3720030add074a3b8ec0d05c09258b0ebb5b2529bac1ec0a607e3c325d04d1b12415c761261eea2bc935f27ed23cc8b75490d1621081bf6d454ab232548eb562c4ffa553714405ca1758ad990128d4b71ce1eeed636b2f79196e3fb6803f2ee00d781cc6125aff2d562600335537e8b8575e1abea4e8108d11114c5bc66deb40a19b73cadcaa9e9ecbb81b4998bcee2873f5d6346099507bf1bf2f2933809e64a347e7479f516d8c1c8b4ea08906391e3889ba3a47f58d88798c36e9a59f4e3d88e6f46224312ac58e3484a745eee39ce1c03ec6a6aa62b638e1f3eaaab70fed5aaa160d3eccde81f65dd108ebdc303a01dd6baf5153a562b3a097d09938645420b914f0c8d9d3c4fd74655e17b5dbd689a23db0d0f9c9c639cde1f05d96d7e95f929ee44aab9a258072238a3707dc712c06ce00fd21fe01400881aa5f73a94605c17cf90cc01fd28ba799a73dacc294209f83cf244674ddda31265d71b9e661b4736d449ded80cac69cb3f7d79c2cbc125617cb1a22632d287653fb6a9555981529d60a94706bc6b9a1e63da25f6bc45d86a131762eb033f5f557c70d7047254c08b184948467a9ff94db1b8f5616800c746a65985e82419c8c0e3a6d7bd0d2398731c3184bc5fbed9dcd023b42f2a2798cc900fb28388def3b0ae50bced563d95a1ac16addd70b7917b688fa8e72234d530ee22f7335fa0343985d844f41f82a4f35530bb42b37a3ef164909b7ac63f183fea32d68b622cc99032f23bd15add23dbaba158fbafd8d5613236a55b103249c36f692291e61591c66e2910e281c842b6eb1b556722a1e8b5842269c122ad9aa0f7210d0369c3a3b8c73aa41dba9bd61c00ba80b74ef6e3f45d085f5c27e5a5a21830f3056de8baa6783fb64ed978cdfcac1bc43dd761a418c126f96a1a0ea4f6c38f99dbb0c7a35c219486a87ccf077f19148a83c53708afdaaa6eb38de2c6e1c272196163beb3c3af2d4a0da1ed015d8d995382a4b00d324b8e071742db800e5a8632cde251d3ef15b1acb3dfe49de1db5861f6d381f11a81be134f8a1307b1937828433ccc6fe2037f06f294d28ebd1d82e510f0af7473731a4c0dbe7696070c40841e57022ada9b59e37822ec9a82b1763a0a13bbd83241a9f4e69ddecff6d3e84e648546354245b59483d1310e77572693976793bd52f5510c741ab37be7d32a083cf6972f842f42dc7263dfbaec95b9db446b0eafd712d4484e6fe88dbd8a857f6aa47319db68602e2ad65e21e0a4a6bef85d1543df1260f11a95bef604dac71d38adf09c10897233dadd28d0b76f725b095b4734d49890b4fbaad6c6113857857586b586ca3908e00841971010cceabb758041216c8aad3e92815154fb72108a2b48934fd2e2ea2e2c9bd897e770f9c01fe26343e01519f86291b79e5f94821a12755b82a03e2c01b80b4b307cb20e8085069fb1d2e146403db43ca4fc649d843e0edab3223ebf40870a71ac695e093d4b9acb5fbdfdef38b1d5eaf9d74efa1f4e12d3d6d304bcd5e42a1c80a687dff639481011a5cb260d28badadbc207cd53723c768092d9728f39d206c91e57ffbb89305cc9905194cca62a84e259828ef5a3630065be690e6d0544342e431e84203c4ef0f56c7465d48c8fe439eeced0089a2688b105fa7b1405948885a69278b0374694720df2893e31774a1374c89a0a8d612753c70cf36d08a98c34d4e70591053309b405ae99847e7a81ad2738d2df87bae87a29f151ea9149c0812fb3f631976c73361fd13d18b51be6aae247e7a076ddb81ff0ad53c25eb76eaf816207ed0f45fc6d869078b4b921532d85f862f425466d13925126f1cd1586f91fa5467fd0e770b9d27bded7f253d0be9c50d24505ac03bd1957b9bdff349ac9430d582f86cfa45206d8abb2c3717ace2210cbcf599b43415465488ddbc0db2ffa296b75aa82bbe86d8142499451d9357161a8cae7f09dd69d98097794ead05422545feff417a49871b8f977bb4241048c1bc2524954d4149ba3e7a70b78ce9c6aa282130551ee4c5ca96483b7137f31ae1251abd34e13eb332685c76925654aabf05e09222c689739de704b6e984ac512e538dbeb781c7885dccb6c5f216a180c88d69d1fb75d15fd2729a180f8711cbc8873e2879800fd4af0c34d5d2555ccc6a63f2abe3bf919f87b404f231001f963af238770c1f4b069fef70fe29f96c2b636d52550fb38468a0eab1c2d497fd2a88feca8fba369aa3997b349169d856c658e1a19e6a0ff6c33d34a68c38d4731166aed9373dd7070f16a46da88a1903bae14fb84af6771be9620cad24dcda14962e55f48c280714b40141bbc61ab562d5572f4c3d97f9c1fb930cece97d4baffa3ec4dbb7d4c119e80ebc4be908ead92a9fae04e73c26af6b2e2e641d307e3c732b2adee7a4ade914aa0e9df00446eb061c8acae8cf48c04ad558fdea46a8de54d7e0616cb0db9ecff7608f764a931a95dc337f888b459dfe696bd855b743dd11b83e69d9cf4a1c2dd41371d93270fd4134088d0bf1775cd7a45510952634da4e1f59e3686bb6cde0453557997dd4256d146a8aa0e05f81ae23c32196b69eef35e9c759644e2a500ccdf3306a9892acaef57947c4e9b50a6bc8eb98e8dfe0bf5536358c2abbce855d93a0403b48ead654a4c0f3042f254557a7b681dad5458e77c352af9eb850b5c7b44761757661e3f1229be993625d51fc1d6385ecd51b23167cb878a5acf26df563159e9ae568162b17b3c2a0990417435a7aa5089fff4ae587843e845c28365b2758f0af20f48c6904237f6dc9233131fb759f500c1644ab600bd376970dbc8321b9dad68d3f4f99aa1e246411ea7809d75959634ce504ffa6de11c7dc64c2eb4ee1e21e056dc5850161b258a417db9a5a71da4e8f2863dec22c928be4dc0463485fbc9f67cc43ce1f5dcea077d9ac5c69b474f178d2b084a6ac97b4dd02ec796ad1c6678caa713e7f2373185247b655651ab0c34911d7b64feff615531e634928f9f150673f04b47e11d627b57ab18e94124d4f8be9dde459df1ba46be659f9fd5db84d2274a8c8c728dd827d33965de6e2df75ac00833235b9aa42e0570c500c7828085ca41bd9284de2af68f196ae8e18eae940ef2162dee2e631df0514b69321dad69326ed2bd902d81535457bc930a73bdaae20013e028daba897b81b731e967a0d3a1912708e61624305d89f8c34b74c5dcdb31a4eb2bf0cae89986312455cd75a64804fdb4c3236cf5936f31a54e87c9e75c700c6faa3bfaee5961a7720b5d6973efcae14e23bc457ac43036b60569a81ef2b4003dd854efc74c5785a7c4ab6bc5f9e5ace191bee308ad25d10019e50149f7c9d5693dce8b2817e35bae2ba2c6e6cb5d42f4eafc4140280e25f895ba6c4758325a6eb291fdc241e7da5222d4d5c1b134b0fc6ca38f33956abf4c00ff7e1c79c145ca75b10736d73f11097c8261348a96b64dbd129a7bc21968faa6eb8dbf3bf3b26249c7aa3927a1b9ddce78beab43bff4f2bd90fc57e94ff3167a5988253f5f579413689a06a26263d21f70e4ce06b84a24d06d6fc0739142cfdb8cf4a629e3b6f3c6c8e5e21849d137a329dc03927cf31665a5320359e40bb4e371b6af4a435e548989d3db4529b8ec439521a5f5954025b89253adafa10013bda88f3e083df1c9c4a514d22313cd818459d66d24f8863b61dc4a50ccb8861d0526ec4b11177842f16771e15f96a80cb05e564f9360076ccad6e3af401943d3a531966baa161c34e31adf27441203d05a6b2cb88ff27cf99fc5215123d89755237b08af69b8fef629bc1fa03b97bb9c52cfb88ce6c6d9a9cca5815e8eae9a9638a01c1424d34da43905dbd9e68b6d03d67bbfe98e8213500ae20398d6e903fafb3703ecda48647af3e2d33f1e24010fe90349a0806924889a7c5bfa4059aef8e2eff1af0c1260649d465e259a4b7f0cd39d513902d3d9f931b4b3e7c21609a587b55e44180d41fae6bbfe8eb5c566b4e4b702a84c295a9b1bc8c22e45a793933a6998b1ce024bda2c86539de0ad93670549f09d5456b482d62eba36b2628f1cf865eab1b1efa8bf2263aa81264812523c8f2da682dc1eb79064fddea1a20e7aff443f761e51ad82473d750f52c1b8397819f2d6aecf48977419e38abd37b5a8c243ca41ac6652f0efbeb117eb143b4f8b94dd5fce95a1542af1777fdb5d68a25b00d8527c29375310535d3270637c226aaa310c9f53ff3a8c6a1ad26f3551929ed933e1453284d7424c5ac883d70e556b0c741b6fe8e717f53f53956c663338e5e528973726c7c7325cea2a1b89e391c6f48f5a0aca1f91132e27ac6e43ecc99abcfc139d5cca704195bd2625a7a521c068cb90f63b82ed7ab04e7848e2ce478574332037e195d7e2db24f87fd9f4ff372b8dad7b4adeae58b4695174e137430cd8fe9b609e040692e8210d45191193eb4bf7aa93cbebe58ec2328e9c17ad6b145c482e558a431abdad1f22114a921a43fc4cf15c0d0aeee4d7daa00cd44b1d693e1b80711d162fc13e44aa5995809cb8bff3ec6d6fd2fdaf919d0997d243e42f7c198b075cd2082f382ea76946ba77533467c10767d93f6050c53101d00f9942acadd76abdf8c8acb47a95e107b1ac6ad2c0bb81fc2b095dbc8e576ce34d974bc67c309c2223cfce41e668ee2cbaae092c8579cdfcef68d129497f905846e1bcd471716439e7f652630b42b7be0fd0af9c9fc2e9d79202693b1c82fefb91c1aeb928075af4abfa52f13055ab0784f3113fa67659ff901cfebd0d3050b111bb119c7c2bcd040bf7d4642e3d5660e95e12434db96e1f22626299fe0e4465bb8110ae4a3ac50c06bd0ba3d1cd57cf9f523ecbd085a18f84fd4bc615a3e863765ebc65f0cd9d7dae6faa1a9a156796d1eb9219d6fac00d2e1928db978e102a2d7c96c51e9df0ed68537fe24ab6fa3956e0d8708eb6e1a78bb43c41560595c1fff1050b61c5923069300aea28789b295a3e2778220d5827123d1067c043216c315889da390fde6c1383d859172967865adaa8a0c0c9e54f90b9bb8bea00d44c6b104046edebf44e0223dab5f5e065e795c3fa076a9714af83823bfe992446c32205df62019890f62b56297ab6b7badb3c3f912d92be9f5f775bdf737026efd71f5c20ef52ba7fed4335f3e7615d00bb6d98bb6c5d6a10829478fa3b0c351772b1db3d068ccc04758eb970cd50c10628da173ab7b4760928b8575f479f6d086c3c61ba2328a06c440cbdb46d905a80ed7ea01f065f97ab50b9853f252e1cc11e96ccfe813b67b3d4c01d8e44d484e9c041db0d9240a8f37be3de9410aa4f08d699bb50beeb1527e921acbf0608ff8e60cc6f6e4c9ea3ffd2124a01c23e8e8c22dfdfbb6eff46afb2d2523592311164c95f4bc36f55094ea42fb46c3a0111bc1d170d5640f97a1375f040616f3b8abea25622b574892c34d09359b29d42fd923479a29f89f00dc85005ee0c620d6c1692b4033a9b4d8c0a02e186c451bb07b5312bc9bc2f7859d4ee2743b7b8eede95c040a0f61eecc231836c2ccd16b0d960f9b5cff52759d3f34f7896df2156a6c7fb999ee287147967d99b9c6be639469b0cc2164c2887543f87d66a0cf9ee918946d7ce05d01e28c0ff11c19a535b3402366204a016ae7b5522f405962da088a1f812a7863b338c6c0f97f94c385fda5de018b2615bac4dfb598c219fe54131888a352b3e766a085f709ee4397841c7a648175dc0a948bb199833159cc62804e7d3c62d204de6927567cf603c61474b512398d06e8a9e730d7c5d94cd51e84e6d116e54ef4e188965f9376183bdd829605727ff265b03dc802389b8ed69018d154771f0fb6537817665b44085dbf6e37950bae81c5a8aabea253074de2f14c2e060212312b35841c3265e6b10f1c9c19bf58d1e67cf955e0da7a2e0092c8771486424fc8ce7168fc43cc8369dc5993f04ac91042b11ad7425ce38372bf1b74eb971b4a004cd9a33c47a89c8a3aa6bb41cbe6d4ea7fe839c2f27083634ee661110aea33699fb3866a124dd956bdf3612d167b7454de6ac16537bed5ad3295e7b556318dc0a9ee1e2495ed51b634ce8ff39eb84c9f2d52cb2bf23abf8d49472a7a7646e188f978f01e410953d545a33e075047e460cf2fefaa4b4b1c627d919081152e752250e64bfa9571bc7e1c625a52ba35a110a3adc79d0a2e57179b6a35de2a4509630788ed70e1c634a61e57676fb880f0b052ea41d194716ec05541d781f99f07e82e5974b6661b29303a70c03b4fd6647e7f5151c8c4fdc618af6e71a2f44f9418e801597ac152f8404c41f57fdfa96f771bf943e1a48999fa49b5a0c58a25e1c2bdbf87271e5ae249103ca54cbbff030a9f7ba06b62b09f25d49d393078eaadec4c9d52233fa5678248e3fece19b50128713c8e561041e1d762902438d80e4feadab033acc43d92022ae4fc2b85dd850a2d109e6e57d543e1adaf65444e0837f86c788fd8130186abd6e1d6586e74afdbb8d80e3f0ed009e1a9f2cd88ffb03b5bb6d6869140cae4435840b560b87e546290947eaa59e7328781ae0716aa17a3cd5011ecc666b9d909372416d809f723b679ecbdab706c500acfdfc858aa31eb4124bc8363c6f370ca8c27e2a18f4d3172a920edd65d210253bb8f7613c39c2b2dd069df91623d2d04bc967189e1882d852ce53d19e4b47ca6c07f5d56f998c9eb451e14fd3355a5c655bc0075975c9fa2cdada6bd0a2fd830b3b622f15b2318991ab51513f389e0b55c204dbc7db9d2c0bb108a58c56d802814b3bcd17bef9aa588c66ad3ec6495f77dc358b181ac420cc4ef7687e3da0e97330f64575396a1c19396ae78e4856d81e1ae35b7fb61a1092bdd0527176a69c5b0bfad101725ae297330060e7028fa02994bcc2fd138e1c323ac41427781fdb4f3f5eb19e437afb9ba1cabfe157f9305361b4df90e40b2ee2ae958c487221f0f0852576d3093a775b0f4358bf802cb4883ac26fa7790be0ae171109f4565fc8cd23a902cd409e0946dda483d0aa7a840d69cd2aaeb8032aaff964a945dd2c0cdb70b2a627454e70fbd6e0ee8760707bbd63f6df20b2013e08dcc2085e1b1bdafb44d8263fd058e7e5aa220380fa1088a194618888344d99acbbae5ebec6bcd33a861ce74c5e2d7e882a8391faa0611dbbce2937a6c082c73af0752205278318f308138c3afeaa581a3217366826bb86b689a51709630c179789df9a7d35ad89d3812ebcfdae8860345c6033a88baacf41951df347b08f79c997dc8c21b1bcc616e6bf098c1f297b4c6be39799f60e39279e8ec8dbf07bc5af9ea7d4a7b10e17871130cff9540cd37a29c44ad821ed3b4bcfdc38d669760b9d54c53dee49f8362df34b982c138653cd8dd64bf315cc5084113ef13da19047c7e85a4cc5f31c4b5a44425960320d8a6a0d1a4dbc2fc8425d1cc2dda820a867beefcb78761f4ad5d3be7f798043f6816abbb84ff622545cedd8d310b69ac51c25308f403c2699de846c2ab67b3292aca4847c8a7598d19c5076523f8cb84a02d80c208cc97422226b28139fd22b4b6c15ea80428d74cd9f7839cca5a75163ceb9273e9dba755729ea849652a3fd99e1c7754539e1375109975607c0004145bb0aa9072ef7b91d0eac730d80529d188437f0725f6b0189aa849eb25a2501a1b3777fe6206337fee3873d40d60a00e36f157b17d362858c007a1cc0d11fff6f8df2b2231e16b9104b061a0d2a8d43d29aa57702cda37aa142d7790d6d78d12d78130680041dc6399df703949b7436dfc6617b0175de5a12c70541def2c2a15c2662542859a3c9d2d2cf02d46b4ef763e70f0965703b6d421e8982e21370fe95e47867bac880fd03f4fd83539a958cdf7f779954a2562359cc7b2681d1f938a494bb13d0ae9eb6742f0199f681b2614964fe8606052d9403a1f8ef2f7139d431c71c2b33807c033db15dd7d08b8e23ce4bc6a3000729ba9c151fda727450b281b0118ae7294348b1241e0c5b1450ef098db4870d2fa013e4333d2a8acba8e24e3503caeec4d57198e565cdb4fe16335bf1e68817d2a05e285f05a995eac837483ea2dfa6451d9b17261f90f873eae877a12d383ccfc31cebf953cf6fe4783bdc1bee9ca52348f2ff9bb3274a47f6edb196927c254290810e1a2868e9d140cad82a676605d3cfc1f6f2bbd6a4b8dd591232ccdd47ae448e022ae93087448eab0e245184cf5c99ef42a36853a92cbd74d3c5992adcfbbd94fcdb131e7952e4fb74f91f6039c6c9678b656a057f1cac4bbec0f7e04fd6b009ac2e0687c72e43335c63d852ba0cc6e246be3f9c772a2b9b3c7e5131c1de370dd6f48eaea5d90b84fb093731a083735e435c280cac2a7e2763f28302dc407c017cb571193e94c89068b3328a3c75c88edbbf059ad912e467ab6b8380a81f38bf56cc547e8d7e05e597bf03422f4e75614c881f6bd1b2122260db21f92a855412c57e25a8254ce6dd74f95b65c1ba73f1138450549e3c287a4b12460ec393aa655f9d1eae89976e0de8e9e3f9ead60dc5ab4359cccb042a826c561eb77afa3960ebd266e92379a6e724727e4b72082768024885d89277d9240f97aa05f8034c40a021a4c91435d4050b29a0e112f64e94577bb5c6827b513ae13a1a9ce88e6027405f2d4d6af142e88ee35cbf91abc29620b0fc8596c1c76d0f390408d983f52493755fb2c7ae04b033570e1a910f9153322db287efcd50a47535b22e5de526e995292320404f9034b041bdefc218431c81ac3d38d7ce6b21aab3157b94c465b2ea3ad495bf0064ad7aa25dd981042ed214c02520a6c385b17330318edd128cfdddd674c91666ad665dfd1960c0ff72bc1624ab05ad45effcbe4e0b35a63ad166dc9e8b85f095692b5cd3767b96153626d53d43673066fe0cb6e94ab1da185f945a675eac71225d706714c4388fda776fbbbb3e4edc4c91c35b4e179f26951d60f77d40968fcdc2c4749e5fd95c9fde5ffbff5b9b9befd239ab4b28bdb92634e3cad9ad4a7541677c45971bf124f0f9e128f52ab6d62d7ee43ca9325a594ae28af695ad571e47e95a7b24810c6e0b2fcf81471e4e925573fca9ffd71f975c9da6cc593fd57cef2ee5d4f683f4fa51b67bca516e743cae2ba4da8f3b4dce53e40414219d631d9cc57f43a8f8fccc624b261a3895e2d1f1b3e401d2434249bad9ad53c50d6ae16cc07ca5cfaf8f8f8f8f8f8c45a4034e80a9986f0cb238ab056abd56ab55a11166111168166ad56abd56ab566ad94cc8b619889e8bee050bffaf57abdfa0585fac59a3df7a32c021cb94cde8ef33721d2933fef4d6d131f264b916bb458e417a32cd3183691c410326c2289a11c4f32dd1920dbe4cb63464fae5a849ab3c8e05933c540895ca58d4ce092174cc9b10341671966fe808d27979d5ca78d27cb825ca98d279716e4ba593fc94c0c9b580209998961e289cb35c8b55a3fcd0a2d24b1c850ca0d04d6f4b4d7c4124fb234b54d8c8c0eee675da599ab2cfedbe2c9cf72d4ff4afbc115db8013bb939900872bcec1e1dad140a4310d15739df7cac161cb75b0bbcf1bcab1fb40f039e22ec1add8e29875d91eeb933f6b04c8662aee107d62fbe810c772151d32a1a36f4fd6e5a8c7f5e47295d0b541d6056fb4fc9816ddefa3b42e1a343abbb540dc5a20d02642eb82379dad0bdec4aa59ebe23a27c231333cdcd9dd31c36c5d31db635d3178a3c4fd6893727731e8c6cce1fa2fc0108b75036e2c10bc0254592122eaf1d3c89f7599bafb6c91fcf86b89a8d87d5608c9ba7e6e0af6c49d76b86f5df9b18cbb75d99ea3fcd8bea2b42a86ccfeb40d5c32448f5812eb93df0ae54f41feec507e12d0122046e4cf3ac96f81f263ef88824c6856d436f06594ff8ff2a3705d2e48904c1f48e08c1ae9c1480f46807069486847b4234048dca9e2309c59867805b6bbe5584897e49dc7e4ff7f314cedc88d61b9d35dad5637e0d498cacdb070fb6e2b3f2ec025fbafb8ecb8a3ca67118ca8aab8b3e3584f3072795a9f397e6833b1630a6d34682339ec1ee5adb89fc7dc88e28f15b9ac6dbe6bbcd196d039dc9bbd6d23f33866cf9e7295a42da41bce9d4824dbf7964cf0e2f3d2bae13e9fbdf47871bdf478517bfdefb2587b4d7482fbf92c969d68a86dfc89fc5527b921ca894cb704afe4c63e83a85641888325b178f702e472456552a5ec10f83ba1fecfa569cf29c55e61758ae5e9d12a98552d8a921dfbd4a31ab3abecacec3c6a3fd0ffb89112ac8908217e78015769d8710b271a815c8931006b5c95818872fccac2892bb2ffdc1a90c8d49ee38f2d5d602e0861c486116c16575147c7540a28386492aae10252210dcd311962bac36dfcd1d3f77f94d655e4756c2fe50bc8fe5ac9e01d43e88e0384907abfffbb430821fc2c382897aab4be6e3758e397c29ae82a0e87089713eb9013d0a39f1d9945f5422965ca8694b2d3a4bcf76a9aa6d9e024e8f655ad17d26b42a1bd1a737777b7264d28e48e388686bcab11847618631bef22be5223ed208e88ad14b7318c38268914b6e042c491a755d107580c3f72728cf8e14985254ce24f6492618ed875bbbb310a55513f40f351970b6d1331ce8427d30d0d733fae0cdd322b481c71c436e41920964349828632cc2fc4a01634dc7b5d85a1e7795a8c1a36b5d72d717bd1c39f873facc953108a61fa76c491dd77b43d282ec4ff33277de979356ad4a8b1319145853435b692db301e6960d1246ec3fcbbfbc78e31469fd29e577123f618ac890b71e7b21cf4f4e4cf8485f4811a41f9971f53269860428a650a28b4c7648267da1b229bda8ba78735978b0b9744d1d112dec02c5b6c7b331842880c937c0ad3cc09e74fede5c72837e20f0f1146fe6e0ef35f5288712af584512a05a5e698e0c217751c3b89e38a852396d244352c59dd1d579a7456bf1059514714d99c1204b7831abda67bd4349a928191b7b8802a2161136249299d543ed6a8a4536af25f2cb4cd672377942ee816422d8ea390a7a05086f263843d5a7411b2b800b824063991dd630e6290c95de81734ec277a6790527e0eae23f91f83fe93388eb1b6316a55d44168491049b2c708840bfd0892bf5814877ee8c85f74921d7ff58ecd22710ced3eecc2864dbe9d4c8e724c654650d3309c53ceeed3e6cbf94dc201610f13148bd29c539b5a0bdad4a4cd97fa524d69cf94fcddffa94eca548afbd81bc7242d4423262d33f931d25e03c9dc82eb7e773526b4d83b555671bf9b9fe87e90d8c93cce21e2109191388786711a7ba086896537811a887c9703e2896b8858c33510f12ec7ec6ad0ba080447638a610dcb0e30aee27e18e288fbc94b4ce62c8ec6e6f1f75145f147af8926e7ee76778f9aff477777f7399b4e8856d0f28b853964d49ecf0c5d35676d92ad981231156c0eb2e1391b7a5d22db8a69b11a8bf12226690b8bd75efa6b2d9796b553108e499ee169e651a36413466789c5727f37672e93e5fe38677336672f55dae67ba9925be2f7a3f85205dec0d29412acbd2e1571dc0ceee7b2976c7337ea04cc34974997d5588d49975a8dc11b588be4d6aa459d004f92bf6a246b0f524dc9fd68abc6dad3a4d4b03cc5f0ad1a9b3329724a495bae0a77c673548d463546c10131d9bb549198b750665a6542a31ab7c700cfbf8b0a693e97556e5c5fed3991aff62fbeb8dadc641b572d89a5745b5c666662c01b19938d89392a4884cd64346c0c8d48145ff1151323336382373332c475460419220020c60cdec064886b00ac66e5e247016bc8515d14721418428dd3f272209868d8ce25fa382aba5cb04846500c5290080414233342cb8c081636942f184b182358ed8b4bb309619341bc0501aa7ab55989ad5601e8159e39cd9420612cbd825ddaa3d522cd4e9d2541e789c18a0460b52325588789c0033158a420711557257856c2ea10164370089e85b8a2360d5c80c8851660310880f4421d80a539da6381007f42c1460a1168af318a84a39a3053236512a6c92ba28a34932c393ca43cd36ddd78e4d65809eb9d5e4154e34d3625b77cc11d4833d26cb6c9729366f2e55d005b00d28dcda80b03a4485748242b50b5c95870c82d61122661d2005613c2fd48b354ca4933479d2e25cd1acf246c2661302f240cd3200531a54ee8130e100f601160254cf200aa4833d24c8bdc27b8117fa4d94c0c0dd30c1931605e5c5a66665c562340e1a3f5033e8fa3e8f467390a4eff774d7613dd1d1aeeefdffffd9a5abebfb4ff3e82d81b99fefffff17f13d5eaee1e272519d12f60746f771cde5d5211d02c73a74378c27abff2c41f869cebfe0e438e3f0c39ef579ef8c390f39ec4e3e8fefec41f063a053daa254d89a6445362618cad55b9529b74e3ec8450e078408c3898dd1b38ae9d8b70467280cd94858be789020704a0caaea01476e52acab289dd2af7b6d22429880d1bd5de1659239522b1b4b8bc099e776f8b5396a36ecc9826cd24614dc985b16fe2791e30789e87070f4f0ccfc39a25f1ffe276085296a3a8b854477b2c6b795c8ad42dae94dc78124522226a7fd657cc226a75d5c58f1350747cf85154c455f71f53894ded99da467698cace74ab06b04092c51336d0c10f392e98537ebe0b333259a6e8192b18318517554cf043184200aa01096e0b716730b1cdadfb6847e1e33c6ca7c135b57cec71814d1301b1d8210c2249b47ac0010f47703bfa1b0a181b44fcbf917a4c1288ebe9b1398088232f74a8306972c408f9ffff228092c289f223072e1f448a8020520118153fe8e28bd8aaca8f0ddf41d351dccf94dd71801f8004ab88155a4861c10a86e41e9dfcffff516ee36bc2422320220642624274386901ce7785e4cf84bd1af95918228cff7f874d44acf28991224a784085106280138b90336f246e3384391b4e0e18874824d2f8bb27981c639f5e728c2799d8279938fb74739c91e334e5d88d63db1cfbe492633cc9bccc6398acf589cb316a750aac715c7b006b1cf78994e3c30a2b05b9ca62ff4aafaf34944b429ad7a2ec3e15d6365366357a1f598e27192aee57611046595487b320cba7da538551bbba75969d951dd70af3c7337c942d34dabf4af12a05e615e615e6ffffafc9f7a9534a3e8eabb8efd355587b486eccede52a050555f58afa45064276fc29a066913db383ed7d58ce985eb28f45c731e209e4248a0a30cb19e431581369d1fd6066505dc19b9f30ad7b686519ded4214a391738b52bb1cf20dd70130987a427cac5fd2eeef7576b0a2911df4b392afacb51ed4efcd5369d8bf20c72149d41d05f748b3bc3fbcb69744c7c11d12daebf72c43c23c020a74a4e11a00c9714f1c9101e65082580c404423ba229993e66103308edc86401dd2690e9ba1fcc0c62fed08ecc1ff3c7f4d140d4e94389a664fe8064fe00cbbd6d1bde5aa2ff11a816e95af9936ec821a02a4e693924b79cabd84579e28fddcd85224cbaa46bd55ee3d5d6f55db9c789b5c9ea6fea90576d3337fcab99d3360f21b0fd373bfa143687a8d3071a778feeaee1149a06cf0dc2c2385a07d3a8980263c911aebc615ca25b73b8a353a74e5d926e449b4ac19bce14e770a16d1c537c0254518a61944f019952ea44a673d2b447713cd10eb74725a51ca6183ae71cd7241530dcb60d73da161f16a9f7e87e7b2d426242acc831b24a1936113273e5ef9b0c69e588bfc910a05ec25d05e18a04815208a043dcb0069e7083da82c38db845a59af11fbb8c86610e8be250bce17962519c49f176cac106ce94325ac7c2c430e7b83854d364178436e906c429383ddd2004d57b743bc3253e50e488210b11d1eb4dfd1ae55c92947e5e92fcd01e7a7fbadbfd87be4f4bec7fb8d878e2b2a9bd39e7a494e338ae5621ab2f8111836c21430890ede1e1c113c68c39a445417ba8e5c2f442570a8dd8eccea041cc0c4215995f996638305e08132d0a118a48921df6437ba8a93d193264c8983163888bf424d2006f4a2c904bd0296753f22f2de82c91bd437448ce1024235c81358d1fd6f4f81e7e5643a6641a2144429c2c112284616424c8960ce141a445f1a6f67e00428687350f6b3826a91f233f3f31b7ca854b8af8a1192e29a227b793a6a89d3d9d4ea7ae93214482a5a1a1a121818418434a20dd28a18412482a9ca0e7916e7847f47d3e01061e1d3684c9ccb0c990245b864d8638e140ed0d3e5d52048fdf208d5e9420eed86d03908f2b3e002a72850e4e1881f1b1851139e860020827ac28f182258864ea3a08e9e8f42c53197ceed01d7eeed01deea0e16ffacf1dba434dca985a0c186ab91db1458fb8f0791cc5c58d58be703b26dd5c363a8768e55a6cb53f6f5cbb3ef37f27595962215d77f721965f99e60cd2a1913afa14c2ff1e43ed56f8b94377e8b2fde70edd21a74307a7c31dba432bddfd1dce8032b09c61595400e13febdf64352818bac3181a2d1313676448372086704666868425562b2b3a54ace850d9b1b273a4a3a313a38e8e8ecee5e1840c2f5ffe0e8e9360033aaf692f9031c638834e74b2b3b36365c72cc1bcc168878a951d2b5462b44225c61d54ace850b1a24365c7cace918e8e4e8c3a3a3a3a2ad8f161aeacecb0b263e7cace8e1d3b66723a1046187705ab1174d08e489c1aad0cc4691c8e756377c4a1d2e843edb0a32c807362c71b6a17e5a3ffb7c41f0d9449a8f44d98f5b45434020000009315000020100a88046381309225c29aeb0314800e6384466c643c9486434910c4388c8118c618620000060064904108991aab210086d505b61f4d2108fa60407eafe5da663018990f94b4b9421fb326538f6692803dc0c684679019c8841043e1f43be243fef5a382973709529d3d14b03bb2f83281c5787173780f814fd93b7cdf1d11d7788d09cd571ff6eefb2caaae4a88329a34ce765ab17125490aad051336409704aaec22b393ddcf0b8cee33c0a16fcffbabc912d2718b85699a0f5139dbde0b5b8637be2c5ea391dd43bbaf7dd6f1a1ba93962c864333ea69bcfb00fbc9966b543086a2710a4d79c5003779c83fb182a2313996e5e6d38b05b275f1d29dfa7a3499f4e54c2d22dbfc26ba66ffcbc8d1938472a859e67fafb11a7e8248368322c3d2bcdb91f4937c2e3295d21086997d4db3f6ab7b4cac52df03e7504466c8094616c5cbecb40919d07abdcc5a870c9dc2f192f9440ab3933088ac3d4c46b3b47f260a6bae29b185ba10f8d246abaf40761aa6f71e2077a527f5bc3584263dd06285bdcf7e49bf2353fd2f882a8686d70a246f1ba555f7a996787d58860e0baa7e00b7a8f336db70e07a8d53df72a8731487911a94a2e7c5f190f63be0a5a19e50a404ab30e2589f2652dfe828ffe41bcd130c26000109180102c22e418f5731fe8fd3acfd2839a92fb2a3e13f59668db8a8a3d5c7fcf9609205a712e49673e8da2273b4ab55f1f1a1bd205f6c90a27d50db829d6adfe93824b6936c4680a82395c0bce6bd388e5e7958daeee39eb18fa292eeb5ebe59afa013145ff77871b65f85b533f5df9965df0df579bccb64b39a01db5ab1a549a4050bb73cd8118074350a589ecfada536942c5d39cae89b1999d33b7ff560e59f40ad65673c04172b89b05f6ac84647dc78a53c0c2c4b116655f97a289ebbfbdccc296063e37cf78687761a16b24973d24e33a26e0f7876491c3e27276b0399242035683d90632a99945510f1a080e953e474db1b5cb8b1790a64d5a760ba04efb3f134991dda555373e1363b2bb8090e063be126f31216f4aee17277b0b08e477e333abe7e22cd291b36db0161de2d99c09729222948a2622ab6847b18d369883616f077d8b3609082baa57a3618ce22a7222981c519ced93560f1a6630a7a4d5c3241c71bf6445718a2aeea537cac70db61f1dc92728ce2546acaf0eafa36bd0b1356460a8f964583bf1fe6d15e9e008f01b62731e016b527c263718a8e7b581c6d6f504a427e1a6865d566af8cab256764a7f279d44395b3bf91520bfa6e1897f039a07861b79b9eb0b4d36ff6243d844a380a8143398983dd48fd8e181b47c33a9bfe4a672c8450f5858c9274da3b5add2db6812b97c6fe08f56622d3ed643b19d369925b1bc410b2c9b16a2ab808552e6d015dd1b480ec9e5b49c9ad798c1396f29467644046ec42b7d10a4cfaaf51d405be43351786f80f4912006b3ded98e0735ce4fe83814c502323d01d68a78465e91c47ac1d80e87a13639ba01d1d757d30cac8c5a8160c6fb983d0c8ced1304d072a4c4380778e431e5791c10398394bd5eed3424e8f90aeb40870317bb2789fefc6f3b44609ca1faa2f30a86d857d60cff9dda3754d714824574dbc4cbfa0f12cd412f0121fb9e8a638d5d031f8a97b2b92f382e7fecd079b1338089e0e69d5ad7c531b4c01c1f9a7db52b02b277406d1f57a7d444be44cd8561d6ba32345cbd39f9f2e62e8f83ac5232a245a8862821db52c087878b90f59357ec05a8c513060b266344a425fe637c9fb3d1f4b6881d062fa0fe85eb14e3388c54e643084b9fc5d69c1c8d86ac26875f653a038f845667f4826f59617b0f1545e5de2afee76d08bca1fca87683bb6bc54202f6453553da3ebf41c55769de052adc81c6696a9b66f64cc54bf0a19d5a5ade5bd53badafb796be5fb9d74df61d9502fb66e2e4bd5157ecaa23406fd35cc3359134368323cc2ebf6c1286cb8c2210f4d66ea33b6d4af89c3e416319d27fd66e3f45a5f69e67ad5e7843959af3accc0aad34d732cfda48ec5fb56ee4d993ae7534d3c6b30c912038eae359c0b492842877fe594044ca8a67bba316cc5c6233e50ff2ea75a88e7a67e915d3f30fee8bb0a12e4efd61f3b7899988894c8e9b72210c8454601a161023974b79f41bd39c5f180ac93684261a7ea7b6fab6a58c561af9df8397a9447b02030559cdaba7cfe71b0641fd23182461fd015d9a04bf64415cea71b7c204e672fb56343b19a4ffe07d4b031c4987a7ff635d844c3c7cb9875d1284c5bf124c4297fb209af84d01a9a848d4850eb5b19a2cef1140f3057e9628fae8abd98a01104df6dc5885c7d30ad36bd9144ad5886787256c7c31a0447aa6e1718e86626722da7cdc8a5a33564faa5438548dc7e5d5ef9836f560eca213ffe205611289334704caa2536419c8cf7daec407593460e7424b17669a1e879b2f6baa96218ace99f7b8fda855f596630c3e99d1d61bd1eb8587b2a7658fb6343f1be1f7b7d593a002862689854939b1e2e3fea814d0d645fbf1204a2e35fbb3e6905b1db11709fc79d0ae055a4099e38db18a11c8da5da3b561944b1e210b686d9fd4133fdf1e5f4cbe04a67b578b36eea74512795b2ca2f14e4a8b6261ad0bfe68047c05e3622e8d763546c2889b4eb9ba3c1ea73e711e9b03c2c552fdd99c61ab00381cfe5e906ac454f48c89ce3514f70a0ee2e5f8170f7d26c9bbbd582788c06630ea909501581180b729edd0c1843296632ec4a73727608c560da07529ebd707e201cea3e5b5a3e58ee32cfe5c7ff595923c22a3c9d5dca46f0f716f78bcf9184bab863ede5abe9644ff0edee7666862218bfa17ac4d7e7432fef95647fee42cb8b497d5cec9d096e29180558375c1d2a478c69bfbf60c8597b9bc8280de25526d0f67c2cd725268b3d9872019583f9754ca0b685cd9ff8c1163d74d43beb8322d0736747340509b23233583ee21ebc19a60655bfb2be25807c9af66c557a1d7a3d8a15e15d627bc00c934ea516877bf2e26abd5cd6e86488f727893afa66492859792c314764960e2f60f32bbdfa8ccdffad79bfde8b0a15d65130009c1c5ec91be037b6cf1f4d34ae05016a7aedd140c9c3df4a63c14a88d944ee2b809be9958d0f25494a20f9be614595d3a53f9a6fe06147b86906566ea31e21d4e8576f27db3da4f1529559f61e91a4d63083b04e968e08354398f50e685b64d431fe04f11fc2109d5a96f8c8c5ca1fe2efbb0f42cca1618e2d78cd1cca24cc17fea83870573fb17ee1fb6e03f4412af228bd860182aeec68e515af62f75e274dd84e1a810e1008681243bcafe869c3ca6bbcfe9cf1a0416d9713578a45006c3c91e75a81c6abeade9845c33b9d1e7610738785d3cd665aa0711550787753f81bbbfee8074dc6b6854746d2f559d1f10285e3e97064bd2ac04452f2332e751ed877d419415a5a955da2570c41bd60b58d39b30d4db2f35465fd50170797495df1a711c3cdd6c70bb91c21b606e3014f91bf23aadc2d753b8a4792eb88aa585f43debdc34155ee02d93b276a26b0fa3b11e74c0b2c1a6eec914a36edd9f7f713666cdcb1e483cacb914c001177655bb1f8bbcf9407a6c8a489d15405a455d6447ea4d86974e7a408a0d1929370a6d4550d2778031ce0cb8f3038339565a70354a40e868a09beb1d46be393494c40b0b11eb7b0101e72ad0f20df5918739c98ebbaf48b963a73492ee684cab56dd951c298f03c49d7865f03d1348305f1b0d0f7cc2a2f9ab4e03aaae83dcacd2bcb094d487ddfbbac325c71f17a5646d96c8e45a7bc18d65d80ea97726dd7d606a9b3bc351a91b0402548473c3ef6dcc551434fa66039496d469149758a1b76aee2d7466e0cdc581d5ce3caf7caeceecee812b8048d474b93acd4edd088f714b493a699b34faf374681e9eb7699bc03e4755ddd716c335c0473ada6e58d7ecfaf598f92f8d08feb09e7c3ed391eb036f93354aa226581dc4fe0e7c87f4a5c846a6df94452e2b1da5c25c80b816afb1eda6273e12d7ff2e99747da0431911e00ffd23703b534ad133a820aecb6b45feda05b3aa46f880e8077ad56be984cda38b98646deb4587e70846503f57ff444ef6b4987081ba75061c28f3b34da1bb39345f6bf83ce1f273ffb5171687658f624d636796f8c0166b8421158aadb9dbe8bfa2d67aa72ff088d1a51cedb8f2b7dd63ea1f0377c8cd81b6211fcde5343dea16026777c39b8f7787e411d22586e2ef91d0861b40a87a23fd8188467a72b0d241d565154af9fb5c335fbaefdfc5fc761b60051f4d6b5db675bab9f21949bd9b2ec17adaebfddd37e59ee4c53402515d5f2bf3d7ae985535c60f443bd0a94e4be76c1e55c424abf5fac5208b02411a1ffa03ad4434d3d7a35fcc5aea19e2672c3e4ae93ca950b40357d42692b2c43a632b4256ef638233681dfed61f861b8e703738a3bde95cb9f6e426408d871fb3e46d8f2a800335b0503d0f7d34736af3bc55cee10062216e1132c132e16812c9ca1a8607fc3a79057da8bce70aea119495761d6ab8c7b6d3423f203b64caad275da2a4f89882f7c8f9aa0bfb5b00cc0aa8dbc2b5cacd3583d4bf91d658ec09b3d170240e602dd016985e15ac93918d604de20898ff382da4b56a86f67a42497de7806705984c5009e18070888144d2826e8ddd213c447e6497767c1a06ac207399252c97ef4aaaff8ce378f335d22619d06356cb58192fa5c023d1f18a0e70fc32471e0b98d210eb376234aa3cd5c8ae2838bc4a9e8242f46013f44f47352b0b3a0487f1b34a6b0f08db90bc76d70e45dae509f9208e2c0ef52c5b047989d2b0aa50213f03722e75039024226781e6cf517a874cd97249e2199f970639d29b0f5e597cb3e1daad2e82d5387e0e9fdaf344e8bb4cfce3e71598f5d8b0553dc5ed7da11e81a08ead608da33817930780155200f5cac8032a43ffa39696748641bbb100f5a56dd6b350f2dac0591168f91fce1c664419081f4cb571a6e0b8b2c1f33530108478f6b34416a1a450727ce298a7d7145f8b217163c454d53b5e0a51c85619f97208cb5988bc06a9ab9da90e61a7f5442acb69cddb09c7d9dd56da69ef09b8b28efa3048777eb4c2b3931897f23c62551ab7968f188b059b40d10ebc9a4210746ea2a51c41540e4882154895cf2aef65275d89c86682463644390f2c10185d60040b6f0652dc05115aa1d1a5af907abdb05b9d1578c3f77b8cedd102fdd08cbacc94811af724c72350e3535ef0059ffed948ed2ed3189f88cbe707fc1c63c90e4368b2344ab013403dfda2de93fad80afb4cce547711a99efd3473b75778812ccdde3f76f02edd3c96a3b013c45d32308c0abdfd5af0e0e8a46a49c20b8f22067b71545a3619d7701d8c0d375ad31f08c3d114baaed6114e9c5ce873a3a736054d2d0bdb497a3dcb1de9b811951b2425a50e4aefd242cec304d9e8b7cabe04c636e46f8ec19b1292e2f8c812915986a51f231e03a91e0de01ffd9baccad10d49666ac406cda687adffcf7ed3e3650ed091cbb3a7001ac65b439015428080712be4405432c64cb091b8213f2ff3f0628e32aba326b13ab7ab7f1df7a0957836d7e81490b44a0d1b79aee67669c842bde28ef8a2632cbec0d85a8194d9d2e834c45221b5a4c087ab08de1e4fa84d297fc90fe60d044e9ac7ac7c673c7fe1833fe1319b1c919f60a8a60bbf55ddb158cfefa000a97bf31d3ed20bfbce55b94999757e334b593a787daf1d3fdc63d9088ed1cd8d5aac436b21e9c91e058597d86441c128a637cb420b2be3ce7862719ff1452cd4a9b04126662b376b97dfd82ffc095cc3e26a27f095510277e64b321b5db44ae4ccc329f1d6eb76222cb8a894abc45a1b445356a5a69421173d6045229cd466b156ebbe7d92a5c32d0c95842853720c06f36afa2d06115604ee3dac4653be62e136421e27924358dd89c984fa53f22022618797df0b564046dfa819db4e24a05ea4e017854d4e64f2e41a85294c4aac8317064f5b8d8ccc6de54649065bd8f62509356b327d7c065a41c1f60c8f3741783b2c82df51579142d56b9818965c5791a2edf6a3e65da0e1ac0b1a42244285218cce59cc7939d378bbd1e77bf082fc85f32ce51bac1d691f921a19d2470777f3df6af3a5ee4727874dfff0de0eba53ccc90885c2d5c4f6b09a53f02c7e5d8af118718bcc8c0d8afa4454667a5eb4f5b1c711a9f1935c239720e9ede1bb7850926e59102bb6e603d69b64a38608f070dff47e4e91c51692420fc3b93480031870cb5771791d2620e69b4b88d2197c833668c2dd026d9e10a525877224586e773997264702765f3e720cae69d2cae7f3e1de27708deaccf6ddfe8212a2243a8344769164e1c0306ecb6aa2c52eeb7cdfb23fc31d224aca90c8381aee6089f806133a954bf20491a462c5ad279206e958801031ce1ff927fa314a61d735656395377abc28947eba09fd417983ba1d9d2d2f7a16e23c724b45d5906e81700fcbd4733dd7cc242c26375c7c2b34fcdb1046dcfc05798d6e11762bfe4024bf768b751a9f7192a297ede89bfe86fb36648594ecb341024226fcfa3587329b0d24cbaa022443c32a89ef23ae0cdcb1ded5337b62dab5f120735f135aa02ad55eb5182e6e9b1f5a8b029c3460dc57c519fdd9fb867a409df0ceecd15f16106efa4d7f20db05d27e9e1ec948e2970ac49b571b07ecfd3a16be322593082f53d2720ca4a17f13ea585c6e2cb4a954cf187b95ca1a2ba551d3139d7ac11869863eba6bdacfb747917fb06bfe063eebed9c817582a74a4279e808edc860b7a11559e97304f50ed3366e69e7acc4402be209a55236263c6fc5329f15e116b6e5cb9cbff2550089039cc8e59851b0a3c19f9713b6dfc144bd4e60efe9827d572ce84fbb0b301af8e4f6fa86e7038ca8270f3d6e4047a1635543dbca199837a62883f466d354869af10adeb210bf865e7277637fc173835d8d55ceb2e5426d761d2410d20123d95684350d6d7b1d319ab2eadf97ca87a8c650d6f0081a0f66577ffc1c369aad13616c3d8f610bf243d6b23dcf95d952765ed28f0e99e0270493c5ebec00081b766bf6940de6281725fac44bf761cabd88a89c2f8c944e892b6715f08edd2a2e0f8c566a176f80a8f1c69493bac38361a8ed345b9c2ab943c5ce268e8417d31a19183c4836bc21a93e08551ce5ed2badca2f7b66ee14141bd6131b4e281309f4cce4b9917b08aa3a8fbe97b7478eb97acd5b39dcf8093cfcd1ee59395820348af31706f17430146fda13fe0144b4542cab271020ef712cbb6d0cacc6d0aac2e0431f03b816e50f2860c24824981a02010c32ca8955d3511c99423cf2acce580b70731b999c7429e6216067a01cf0e77946615cb1cfda209ead51e0aed602f129a3420de3571ade3e2b5772caafbdd88bc55729bef8e94063e75ea19c35d7346c2738b5b04d073470956e60067891a976dae43fcae1e8d6f736a3aba4fbc109cb782b111615b2273e01c863f954c22c6bc0a512bcf6483bdb2118b54990963e0e26614bfa1ea20b66d00d9cd6bd980aa09ad26cd7b4f03c3052754cd139b15a8a168d647f0f5932917c6079fd2c7a27cc2970fce297ed162e4771dc7ed4d709a173a63618cf415721827a8ca0320deb264bdf6817986d5e9a95d9ff93db9e1791f6816d8235f5c98bd190a623e3a80a8df0517895443a6d9cbbce8df1601bc74378a29ab09977776905f78701ab7e8340e3544f4cda2d4af4495d0354caf549a344e47ea9d8b9fe383f0d7517e201aaae635e8c741d3682d6a5c656f82b4128061e1f44bd1d3970191dc9c1419e3169fb9657684c79e88ac2692aed183dd804880686909f94e3b062e809aa36291722bd62f0fe930e51f1839d625c59a4ada40647e8e2d2e685b2a42cc9e6626cf647278a9f3cfe660b5c2ee4997f4bad60fab299997a401a93da0e83c0763f0ecbb4e2d421f0d0a167e8af889e4779d5e0c2179b456c19feb2ef8e9e5f4854ad17ad0edd744a86e9d592d4bd8eac210c2e74a515b24ac32f7a5911e6a71ff4abe57c2e6ccbbe02fd7f4ccdbda22987a8ca4d10bec94f695161db15f736d56b33962a74ecdc89324038999da609276640d2595202662d086ef146dbe4538d7b1c837ae9e07b34de772108fe0bf62dab3f5290d14c14cfa9388d3ea90fb845abb98a493f873cc99c0d72a089b6f587f201532523a0b66283cf896ce9808b87b760b79c6b0bc5ca65d08884d482a38be7281fa9e11b81ab7ce0a092576b613d3ea151cf00e1e8ca39a39f38a042426d5abaef899902036802f219abd6d22e66be6471630727e7103cd5175377918d9fa7ff92d0d9c7e9456493dbdf41f6655ab7c59cd774b22f5401e6a4147c6dc21be382f52de362656164dd3f43467623a348edcbd21fc05b6ead6d695f26c6d9abcaf3bcf1cdae885609667c2c0794e2da174d750020e1b42fcb37085b98a0b5fbb21a796f0f7e65fe5423db624b5f500a8a95e50a00edb2fd37a823f0e03b5c34850ad3c7d39ee46020aa6ba94b43c32416b1678585e3d8ad2f878c0781737d0f03be9e170ef49bdd891a3ebd889be7034395677d39faf9e4fc18e6896bccd5842a8e64d853aa08a752d72d3cfb52b83a63eee7b7a644944d461ab6ab12b7d05dedbe300aa97a99d90fef36e97e63b357b3ecbefcdf7760509b32f818826caa37f512969f3711ec62e2d0c5ee4bef103e52b90096020186657c2d2c65d7d8396b6acef150a30495a917d7cbd8f2df17582e398e47a216b0066520161018ffba2f4177458dc4c5298b83fefa41e1fffd8a80925f7ea20dca6d79da71d227640af060d41b5032810b2684e8f48bb820ffbd541fdb3461c2d61c638a0d063c79b6874d42148bf1e2648ccfd00bd22a078cadb72e7230b00024c320b6db375e6e919fb8f009820b54ea9a1c952b6ce06b076671a62cb90a37441425568a3f3c5e59c51807c332fc39ffcd1a0ea7e6a1c928b81caeabbfbdaf8a30538fb6db7f12dbcba49f6e6d3244e43380b4c37358687ef4edf86091fd8a546fd883ddda73c67b990c29e17fab1acd4f40ed5b73417dc0ada09eb401796a556f539e7c3d4297cc8907bea80c944cc97c7036211872db2f97bc8ea49d48e792111607a2a55e97b355a36be3bff917d7a461755307b955b8344c1ca9385997fca3dafcf724a7b34ecfdd641c4a05aec5f2c28309a5c8268096ff444cd82d0207d9c807ec65d6874d69c1c0edbcefaf37c6941292d0544a85dec27bf27804654a7b68d88435d001e6364f616219934f2c514b34eb3795853a076eb96fbbaee694bda5e4a6b45ab36cb5daeb52f18ecbdaa82e92cfc98083b6dc782222fab853b717f2daa1d3d54ace961946c6920a2ae0223f957dbab19a783e1d192189ff265ca2fc31448732e7c3c6ebdae37a42ade5de69ddb325590465163585320fdd373ba1533a5129176d05e56267ec4335a66987c2425e42efee06eb2a1724e65dc8603f6f77b1039238d1ec90e2e4ea2598757b825c71656c346cb984bccf0d7aac823c65a185f9ca95df745e01d595fcab430c4b9ae459a85c9b141a72e9bb27be4499b5273e5ee4862b30eccb2d98adde9b462308ef3559b4d9080a358c8f847b0a08610db258136cc43fcd9c138136c9ac584914509377a1efa066c9d3468aa51fdcddea501812b9e85fbb7b3d0f8abe8f3cbd4d3498eefe0be0c6f1f6e18a0985d112b9be928de993818525bdd9a15028061ca07f326b9b08a7a6dba679c2c3b5f299e4c3dbdb664f4136c790c00dfb0454f8832679321741b85c61de39ab658bd6696a684dcbb700427b900d03345e503fec98d5977abd07287939c41cc19f481f0bc5743d263a19cbfefe166842b8c2b8cfcd99daef8a0ae00a86110f5d8f29fa779cd00482bb155180fdb91d5f88b49ca12d821310b9a8466dfa1c79090b53ed5718781d5ff68e04501899604f3406ae27085a04e37c56fba3735d3a30e4aff9255d8199faf691140383c3d1914744e912d7f1ebc476ef984925376e638f6b277bb0a8439a0ee7ff82139e7e5234c2543e8d10dbe5773b289fa25584c56a7d7b841201c640e4bc9d0dd85d2475eb8341b331743361b126825b133a8f666930024029262e422e24de03a77fc40cc37ddf87d735ad8884271b2265a09f4706813a799211fb8ff361267896cc92c918c215127b4dc231ede20759b30fcacb91158a74d5b70780eb9b63dd783bf839ceebe18b7287867e7ece94154150cd030ad176ca71903c38af8f512ccf4e7e393faccfb71aa0c4000e569aa6ae4cb163869d9736fe303bbda51d78fe7e4c8a743dcc6f1d68ea617f8a5144be8ced87d6f0cb1472f9e3da016e5c056f24bdc2f87ebbf9fa3cb2b96611da8a6f8e8408338f5439e0ca4f415e9d0a862f551ec2f574db93d3200f189fb550af5d737394f14b86710d51bd28e0f8a103916981f87ae8d6d2fd9ca2f4062a31dcf1a0cc6d5e45b537cabaa472d0c081398bff622473ec218b6d11b52147ebc5f02efc59d9b6ec1fad20b68cc32234e481ae7b1a6ba2c6a908e162d43390c34a8226c2ec11e01acf6f70717fed9358502269fa9101d24713ac1604078c741d429bba5bb93a5832ae125d7b5b91a9ed50905c7a6cabd6d0ad52c01d2a8be17b9727539c387b26e16eb11242b078dbca74c71d43ea016e7e2b945644545df438b61b2802b6c9f42130c9a44ce00963f5c4cef83c3bc4022e9eaf887aeecae0484571b63f46cf4620243863889f478a7c62d09ea037aeb6803a226278fb5ec724156acb62e706d47cf5b7a09b0aefd047ba81979ce391d4f17bfad8a050171f42ba040c32191e0e9e7bbb1e5fc10df94edb1d2b5d78bbd6b2e0203037fd24abe2401c0f00abc256b7173cf9a7a54a1a91eb7b82990107eb79df238525c275842f3b75e67ccc3ef1e4025d9b8f05b61b542035a68ea7eeed1b6edff1a5b062d9133c9d8b39d78740e8acce1523ae4dc604e0e8627dc64c0118705c97fc4af731c9c1b9164a90ffcb33ca001cf30d4bb1961950038cae0ccf0b6f5a846c291fa426f00149c9163cb2f5d77957c0a0b10a7d83c0122b2fc98a5b5f5db5638240c464185c8ff8ae4b170d8e05b94214994d0ca06255621a6f5ba5a6f64d8e3f84bd6fd7a8196584cc282a2cef82009c60194dd3c9f014f767827fb4d008b1d30c40ec17197b3a8f46fea5a06db999b14c903aca178b3e9278610e0d05caf47b49aed10a165bf7505397855d820c618b3547392da1b3835d22ff279986721117cb9e271f5a23e0ad49cddeda2f3c20f984490cc13d5c6b6c89487c67ed1af22996b70c5464b46c03c9995539e19bcc8034f394ecf4184984ecfd30ef1a54116e131ceec0542bd846a5e323502152d3b98a2aacd25c6b18432982022224142ec5d47d113f66047c3e7546c9ce2aab383ead4b62df454d56e14e1993d7f18b5f651505716d6e6e691beccaccc0d34b5cab2078ac8d04d19c555075ad24c9ae4bbd884651f09d77bc90ce45298a2c1ebebc38148d5b1766f4d55f48959cf1e4d990a5bb56b7a49c64e95ae3a8e713441503338291c96f7a3e11df02314a21e7c34c4a016402d32b366440f4224efa7b805ffe21dcc1fa4d655a103434319dc8bb41397657a96b8912439c1836b27da08fb5859ed138da13af658c0be5726562b35e04352bb2e5af38f15c6eb5e566d298451c0e505ed2468242fe845ca8fc565d83f3306b17eebb47f21067b656501ce89625ebc6d74eb4c5eaf7488ab236515c622ecc104e8e87f6037dd065a2ea45afbe8f9c142f5ff3a3730f38ca0a7ec7fb932feea13cff9c12e8e2188865f06aa588e736d88d665ba4fd34339e3226d3d8780ad55fc5e077c69303d9d3875407fafb2c4d955ec21628e52d6089820c1db9c5832c2ff3d51fefeb02a75de729cd72910d65b3bf7415bffa92e77839392de351be12cef1c286ef5034292f5f9d1db2bbde117bc81caadbaed00082febdc0e419c08e204d299b5967744c042b6be0b30635c4dc7740d840e35ab21543b07a51b832d3663bef8e9994086135d7c98e355f40f5cdf8b2203725773de1fc7daaba03bc2314d7b9a2c78749775ef059b8e57285e671141d8f4f0ea9ead1f2e9626b92d07926790661de0f25be2c7830f5e2272122e771be5a2f8756c16db0f706749d22bbb1c022bc1386354b43cf2dcb7a7f5b91c547cbcee5162f40c745d0bbbcec0a9dd3e589c95e3ccee5357c2e654453672eb4f962d8f5eb3e95b89a5960257791b4b275e38e7bfa9270cd185899d53996a9e9bd609359baa4a5a5ea3c99857d4079ce8968ca2c61870cf1975928b025531cd6886098c99f324bd1e306813a69cf95593e34dc77b0d0082d3448ac8d87b2e67805d84bc0f74a32cba4bc6496460961297693cc627997b7fc348650966e753dc8254059ba41bd4ef8e5a6f35a2236b925050bb3a31194f0315b9427ba58bb36591c59ea74835a594ed51d917c7ff6ea6e86e4f6e1b4f6452e4a7537e4373616964b250442e01f20861bb9881b6af566a32b549236986248cb8df59563507cc2dd26ba34aeb47b77351472cdf7f7de517c2a5a1ee0c3647d36cb507cc673e6b274f2ddae2640c814dae47c9ae69e21645cef5e8f6004771f04449d452ad8935b6db040483c9b1b8a25c12de1d2289a20b768252b43775ef260825ce1409965dff418e1413105621c3e63a4ba163431eb335e6d74a257c02cc67077cba8a847cc5c2dc2ac1aa99b04539b4c11ae373d29e219c86ad36b86781ed63552d843e9531bc66a8b654f733c3709c44a3d753304c2d3a71267e77a60356cd250ad2a7b5ff2167c4e9d95220afa4dcc2f8eba833cbd81dc12edf2ddf28ea8fabd17c82a6a814007c3a2b8541ed03097364ce27c16c3243cc3d690152611170ee583a1f459767c4f6ad1fc91749727a61e5307c8caaaa33d3fb2f6abd0f0dc0c462aae63311a37d199aedefa29aec8a2621749641716157b0e9e16a60344d1c313601c5e595559529a42a75dde383cd6809510c671238d77236e9404c73b083d619609c1e27fa9d8e108712a96e4b903d0f2bb5001390a00de18bba91ff68ef8abc4c2795d1324c45da0c193dab2877d8b8a16c893dddb893138821a40b399b00f5e4f60fe85bfebfcc98a928ba16ef39af41f0e5031141f027dc550d2aa9cd34ebb550ec74d3c7c94a7c890f6811e4502c9320343be9eb21e8302110b21a50a66753942b010915ddf0285cf737038ad6a60dafe8d524933ea9501d5be0dda297e901eb384eef028a4aa0ed92163daf30f96e2bc79ef03484afcb65cd3025dbb8ac992c91987d419d18a3e0a4344e9e77fdc7b326ae024ef809f2b310115d87bea5300701c20a9b6f93e2f63b826793de823269945ab8027022cc4ec44738b3a714474d3b190aec423953b23d34cb3425e80a5349e68da2626a31953810fc24fa1434994c80828c93baaa5722a3bd0a21f8a81552b64f0de0cd8cc8f31284be05579d01266edca7882c9a6db9933d247e17a97b3cd46ac176d3aa8b64158cff96b74c32b7203a9c6275a62ad75995a0ace87ad98bf2e184da71cd74010aaaec428cb8372c1c9d263dee140ae99b8239b647a6732d760598582984dbbad2d9ee9244b3d3a1eff528fefa0bada5bc79a2c03ccc9c0d4576e88490993e381f32783b645785761b6235214148e53a4eaffa3f00d06440d12db2db3682a9d946f4ddba1926bba309cc62739f243057be770dc7cb72ceef3f635487a0950acc0ac5f72c75d5b875b99914eab9a16ad34c41c66a5fdd3ac9e1b80e15f13870db79118b13d2d43b772654dd1e4be86ff40128616ea4cb4027ec30687a97d9834d6e07c02adebb05756fd7570dccffc14d83ed5f0231defaa3931a12a5bb3f97e2af4889124024c987c66b3d5d9640b7b7bf836561f3bc6a1c5d894780bd68a6d7a76fe4f191c645b984ee0da920b544a119588e35a14d4622d8eb33fa2e04ec94682ca9129bcbcd387cb5c8a03288ce7e6c9a94ae74f625bd857aeb8625aa9a10de247ae126945b999bc6ed80d3202e2facc3d1af80d9fb3fe9fa012e8086646d3fecc4b2400afef21553a90ced2f408088aa2823a94dc74aa26ff9250de60006f5aaef9f1a2d76c7d22f2da7acd61cf9e902d4da22bcb0659a818ae97118e4c65a1962af2c0b1728dbed292eac214df95ade386bdda70708e4d7066eeab360d84f90b052a3762a59afab18833b4f2d0ce483fa7d63fa141cf5711395e08c57492cdbdac7d0f13b08a5a05e1fcf9d9340ea58a43f0f796cebf99cf7b33e1d481161a7225f6f032d4b4fb50df25286d973fcb23802ac538844fc5e15a10a2af895d5766bdfcdb427298a2c380ce842ab418c9dfbd72fea13944a7e0cb2b2b55249333f87df4f8a3d908d19418b44d9c791174bc81a4214c576cd69671d3814f6ac6c0a939fe7c74396b4ec086d5a03fdd21521c6c2d5033895f166b876245554aa90fe651e483a0bc22105bdcad87d6a80940d815682a4988a4e9ed4e9ad2d26556747923c8c0cd50bd2cabdfc470d4ac10eb5149749d1a5b885ad0ddb1714658e4a86a8de2e89486fd2da25cab51d45ce60fea88441677fc8f29da578a7b4011dc31280a917df64e9d9938b0fc34dd7c6d9e036ea400e9f4aef77feb1e8ee4da5220d447809a58afae0a16f34d6d2f0da2b01f70fee46adfbaece4e9c35d73c293ebd845836d5eab903120e0a670abb20fb531c83b84b7f069228612aca52915b4ac0752dc14636bcfcfa3c82360ea94f9d20cdf545896fb97a01468711af6f9b13a02406bbd342dd8e10f23e7a5b9043f4b5b5d9ac0c43c4b065e5da83100841f80d071d1cc665d16f84b337c042d0e755163e03c3a481577f64a830682ec46941161b5f1d3dccfd4dc6bf6ab1e1060a2c4384a917533bb8e6d88a0a37b1b0088b516924f849794aeac85e81d88c1ee48878989d963bf2eb6568b5a3cae41d75e25fa8e217edda41c21a8af887d9b4adf12526e24bcaf1ac1af979c0383ea5a10cb1104dc0350f1c15e0cb7129373d1f5fb2604edf20816b3cad9b865d2bb55c9970c6a5d9b6d8bccaa5bbf7313f1452b0582d1797804e7861fe5b80bc4ce019792d664d79655d90b163c4ad7870793aeada33521beaef582fae87bd9c5ab1eae6b0ce7e59511fad53a6e364d17d4ea10da83f87e87b13538179b0b0d434b716a02e30bb5b8f40243531f5095640ac4cc00032abe9cd813a8b47d6e2fd96f989b4f23b974badcad4b0c628aaddf64c18bdc2d7ad8d68a8754c0e210094c6be943e4ed9527d231339a78797b6be5536f7b03542732a7db3a31937cd88955d035a82fadbe1c56c3a9e47b50a714803fead2626e88182b15a9bb9f312cf46e1f8a5427e380b5c93c9726ca3b9b8432a90d6fc42f7e15302e9c1eff3e1a7d8156276534fe7ee1743a02c398cd871b1f04ef0f9fd95671e8d934cace951111040303e6c0780d9f342c113ec8a422926ac8f9b68f64588cad72d1c4f48a2de3ac1ae6e189f8631384f7b2336d479221e618468dcfe0929ed6e9f1c2bf26aac75940f1813828bb21865cea91fd01f318d0aca8a6acbae4e2c8be8d77ec74ddfc3dcccb48d282a98939e761ad87b7dd3fe517260721d67624f5120d1a2d9d18aa22b8a4bc1fad35a84b4d69782fba4ff999f6766864e13467abb8046113d4a80eb50d5dff0f7c0e4c330e6820aa724a077f5cd3d691cc750fbb35cd3df0466aeb28df0c5ce4d0f8cdfe1b3dac7bef2610dd4894dd30d6b846d2812f53350a8648ad9b0ebe8ef301b4847b5630724759d15bdd0767b1e2af5b11706a4b79d81ab1e150d03896d45065de3504dcc35c58e132e145335ee29fe0250cb384c4be5102e760fecbdd2b05347826ebb4c76b69e655e24c5664a88f925e5e4c6056e728dd7dbe832ede8371b825d6fd2fb79b49f736bfbc08de29587d0b4d295fb04b58647766d29fb9f06ded67152c0970f9ac7ac0593a8f4d64cc0821929b83da239681eb76aa2884bce3ef9d45e4759a0dc0dcb908a1818fec43a1aad2bc081ece0c68c725bf09beab765cad225b06db3ffcbac6db32cd05440393ec65c130cbd8f9ace9c2e4c4aa16e2b89045ab3e2321165b3f52173ac94efb6adca09093032d0c700c830161a38216c2a734d06984e023c18bddfcbb79129110c57e4cfad0649478c382d1a48973817497155459e634eddc1dd351e5f2233a2366b6ec6bab7e20d6c1c86059806886ac4b7935f91f55a928bf1afa02c1d6440e822d33ce781449c829875e291208a89c087ac5ced211cebb703a8ffdec695a7b3ec1c00a1768dd78c8d3d4c1a98f902ca7780f69074b81441af32193645d123eff00d32e30786277a4951c677c620017f947ceddad5f33fcd7417dff1532840d0929e21a29ba0caba8503735060f697071ce19fffb093e72c903a548af32d4f83c1e194e3264154c25431f939a3b6cd983fc836865b6d0515577eab656058572270cbf116ce821d99398f2205d0dd54bd5d3965485bbc7e4de5953f616b855cdf55d3b2303c21daad7141c22e6f895db4d2b6b4a90e1b1969f9a51709cd367b64477693404ed2d2afc12014f3786f15963ffbd91aa7210eda618e2991ba417391fbed1dfa63fd1382be2ef4d650a584feb08f8b6223307e5d4b1a64aeede6effbe55574a552335d16bbb296444c87c756aafe08c650c910924934b26f5ea93e17ae03614dfc429a021768f6648a12b0c3a36ab25be332e7b9aaf1661b7beb5a913f90c6d910c2a305004695a130c1d64f79198e2679c9e03a23e666ddb54d2e4960b3c15445e6ddfa209cb5230a8a242a31ae3e314a532717ea4a29c6654bc24931ee453fabb93a35fc847017ae0af9822c259810e484b3e32f2f5eee11439e535fc729103d93d1c68a70fee5040e92af8eb695cbbcc03661ef22dd11176b6f37d9a8846c2a45bfde87ac4e1b6250e5ee126fe32271543f5539ee468e1096ff4d4d42976f801d995f1816d7dfce0447b01170361e978b201ac2a98187972c4a4e65c04bca9a58a0a02fe1679313ad5c8f8dc7d65ebf2d6708807fbb715bb3fd6c860857350ab1a06adfc02f33c516d103e2a428f7c4b0a2f773e8428749373c739464e5389583f149046b8c2d328b879509ba35a5bd25b7e527fc35581c85591f8d5c87354f27d933affc7f997e9b79d4368ac3c94e2540ccab3d6b54305b60e09ee2b37fec2921c2c277baa12197110deef9dcaaf8c0ed3f9743c7c9c8c85f250b79506ab0c05e6b024b002b1b70960041dc4bc4d217748e33a645e80240c39958e9bc4f6a990919a6c28b0357ecc942787d3461964922c602de2ae2f38fb9017c2a7b2a5d1a2caa2425bd3cf8e27e12501b7a3b5118550af7e0fe469791558b0e1b733a2ee06d3e5acc703cab5fa875b4090b24a074ae66bd9b71af1651a897d1f788aa168d975c08138559a5fc798b2dcf7bd73d296279ce383d9789221ebee42d61df4936bbb678b22a69a0b19f4a6077f9164c70ed20eb962a2a34c78fb5b6e22f7de5b4a29a54c490631081b08d908b202b7e9beacd0b9eb9f0a782aa700715e5ea26055db0b962e7b32c71186d5d57a5e5fc803e2d9fa09f0f80d7cebb315ad27c6135f45b6b2c85655898ef213233fa41faae4cb1f96a66d693f2b3f5e8f860f4e9410b7fe55ed05e987a3dcd91c593facbf10e7c25d552bee346cb510e7acf6576f28cd01fcc6b13577f0ac0e8e2a0229eb8f4e0c2d21f8966ff939e4352eef355df58e3375e3bb6f3ea8911f2abfa3e94721e0f9d38febaf3f3884609c7467787474d4d539d45387fc26e537f17142c029ae054a96b83e0901d726b2872c3f86868b3ff55dcd291d64ba87a00fc6386ad7391d6d75fa53299fd475616f0e419c9acff136fe4197afd9b8edbd9a10b6d4639fd4479f7b93ac8b0c4fa606179776e9ee477a4f541197ecb372c5b2d2e8ee8af1c83979555713da13b18a9845f4429b626d3c8a479ccccb8f45584c5918968238238c706db85b604b4bb7746a7b79c33218e3f8c2edaaa6dc31a96a726e84dc2df3db57191ecebb892fab0e59d612d4905358e6b74d6693f96775367c9d9379215e35f94deae55762f80dfe1e3c9691fb59c8fdd203b97d868d8cdcdf6211d093e3a7f086e542a1321073bf0a596efc91e847ea31ce4067fccf0ec1f83927833b1b1c8b9c4be128e5b23685c6cde15e28ac631096b938f6f0da61940f6e5bd7798ba9f75a5a5232a94fe1d88373f2be54ed837f48411c5dbfe9620f7348c96fba2894abf88d8c53b29c43392e9ce237dbcb6d7bf983edc5391ddf920377d506eeae0b8e444bb0d60b971aeb78f86d877896da75ee43903aecb7fdb651cbb1caf1e3d3f8cdf6f179f4eb6fab83e3531d04bffc1b32ef667b59f3cb05f2b2e1ed3d11e2cf8ddb42d8e226b3451deec3a939e4b1b63a5166eb641eff8ef84499e65f0829f9839f7fa1eacf1c9a433f433ff1e7508c4745f1bb49143ff784b3bf984310a7c1e8a5348e785094e524ea184caf46d5030fa797a49492659da19dea084e90e5cf881f26dd5433e15eeaa5d45f146f9d2fadc5c707631f8c31c675874f0b78c78ec73a74b4748c31c27c6de2c46fe213bcc11e88b68f5bdc925a5cb8ef6242a8a9c13109a738bc14027eb0260aedf898b463c7cb1d3b76ec88423470aee071f26312c4993fbc1af9f2a350079943d3892525ace4594496af82d7437e1773c85289b7170f670ec11ae94e76d07ce74c88c2281ae3cda332687ec777730804105c5e7aa9979aa99b886cb83b8235fe9fb6c807df76c8b344b0129ceac1ad8cfc46c7cbaf8e204e08df8d90e5d7f85983fcc6677b2c3f840df6e035f241d8e08e0d16d16cd0a86548ea533db81d3c82499fc23b292992200e5c4ae1e7dce5f2f380c4ec0d633f89c2afc3c67723e42c58e052eae5f7d24bfd86fb63cb1c4acad2e5bb3994e5ccff068f9c939f63e3e9fc018637b6aef38d9fb6fecce0f6cf7c577fea4feda112f9cd8c94989a636e8e49e5180dc7d64cdde49cfc69fb477e4de1aeca9f19f9d677f5a7eb3a4311fbfdf0c76fb0975f99f84dbf7c13ec7777d5cbc86c2fdfd85e8ef9e9bec6d6a55eb61568ee522bac10b3b6c950a2d4abe97f1bf9f0e8687b5b8d447e43f1ad951376064871bd2cbb6fadfdecbeb5d745fbcf59966537b3d65a9b6536b399b5d65a6b6f66efb57fb37b517fb32cb399b5f666d67e66eda33ecb6ccb5bfb2d594b4b96d9ecdabf2eac23a6a132f8ef3dfbdae682bbcea8d76ed692692fb7b468d95fd9b5d65a6badb5f7b39bfd7571b99fbddd329b596b5f88df7bdfdeec66d9b3d65afbd4ea586bab8579e938839be11dfbd95fdcd9bfdfc5a212ec90beacfd67dfe2e7dc263fdba210a81335af61824bfe7b38df7c73c20963965c87ff1abe8c45e447f931c6f8f2bd18166e5f714ef6739712156bd00fa5c8fd3e3489e294a32c41791d4a718f717fb692a43bcf397f3f652a4b7d39b85daae352339fe10eb5befe7840aa87d6d3ef08906156dfda2afa93fedc5eb6847825ffbd43e9efb9f30da420f900a5a9e8a42b3433f229bb93937f3b4927086dec281e0e6645f64eeaa49602bfa4fa4a6c1eb2c7187f7b382ef422ecb02cbfaf5c9d14b138e7094882fe6fe12e553b29dae8586edce98c2be3f3c68e70197e2f99906588fb4accb11f84a82e09517e3a7aacae66540fcbfebeb6ddbfb47fdac3a6ac695ab6ddcf969ccb1a8bb66538752fae4986d1287b0df51a5214a5acfdcd5e7bd46b7f518c1e6508bf7b812fdfd158d8fbcda56d1fc4d59eaae0765c95fd63f2301573b5ac15695a11ac89414c707412e3c2dde1e9ec455c8c0b77e73e4f67ed3737720ebeb6799173b085db710e25caed10998f3496ac7dca394dc3ef5c7667d10392655be769c4ccfeb2b22bcb50a8cf50289a82ab7d178be210961cf4806c2f5b5f831e901b6e14720e5a1f8b8cfc467b40500fff426d9d2392f6f7b547fd75fddda68d2d417b1446b9b8fcdd6cb61fce41977951702ec3f189d58946bc1ed0c6a2d7033e1dba9d1315214539ca4fd374b4b75be7d97e7c220431e734ec8fb2dbcb47ed85787c125baeece1572eeefd589423472a75835e0d7cfa93c86f5c1efe94e237f765eb3adbbfeef6b2cb16b30bc647b87cffbadbcd578645bfd1a213196a9aa669b1e8d5c0d734ed2fd8ed104a54f677eb8c7db6b914e7e0c7c870ef67b57a2db2a06adf4526aa866b10c4a981619173f067702fded1fe7e863bedb3bfd95f1cad4e869f73b8c372b4350705ad10eb0a3d87481c79a0107360e5d4e23062f4d51d93b251638c0933068dd2d1c95352aa422577a5076466ff966578115908c363f61f238b2ac2c84a55c03072bf2f41a5070436bd1e4db0063abd9c6b6e30622f559c5372ceaf8a26c19a8e30c62308c580d0094a899b6092a55df13e5da7996f4abd5cf8e438b428bb0d9d66be29f572eb554ac1f728a79c53d248c949279a034fb7eae706df7f30a8d5bf2eb72ccb33cbc29c5a3bfe16a8835c4ffdedb4d45e2ee9bcf08ed31e248dfd34e62477f0797ce7fa24795a9446f9d84f07692c2877d0c23bf4a1fcebf27cfddc3a8c4986d94fdccd8bc2795d0d2fd93f99461f5813a9532ce33fd84f771893dcd885b5e02028e9bb7ccb7791e2aeedcbe682bbfe69c118eb6ecc285feeee17c67e68fb409c18f4be9f40273108e244214cdb6660b8ed9329ad4f9b520c885adfd87a3b8f6093d2ad3b827514a2b9bfe3a1d93ecab28f555ab38d7fadc51d0fed9f8fff707704c38030a08931c1805a841989f2d3d1a3b58d2b34e94d986275ebc3fc7bb9d5afb6be9e9530ef1b76d1f84d86fd75c1aaaaaa1dfa49b2df4a4af97056dafd29b516dcf9f47b1f5ebc039fbee38ec7710f12ffee1fff6ea7dc61cfe33bf79364efeaaf4b761336ab7bbf31cce3597a74f8471ce21df9f71d773cd023ee30bfbed9c0c004d08965e8f7637fdddfbf6d11ff893b1e67c2be56ed1deff85f0d93eff22d3ffd351bfcc203b37f0bf60dd4c4a1cceff4623ebf3e36e5cfeb053f2a7695e24e62ab3b824d0c61d7f25be223589630637847fefcc61d0ffcc69e80d93c30cb9f8d656ca00d6ea0ea61eec7deab9f325e30db7cb7aaaa6aa65ce79cd3fde8fa8b524b38c5676878d8cc59bdb5c1b7416c9bf9b9b98d1a30a9f7bf2e8b524a797cc77e923c25262df996cc37c5627c7410ecdbfe8d2231f846d779cd6904633154c6e01dfa3113770f922479feb3e920f8a150eefc797c27e693e4b97530d328dfa683c087b3e3698a773ce6e1fb80f5bbeae7c41d6c92fd6dadf06fccc0702be6f1989fdf5598c7337c0a9b3c290c9027eedc04f9313116d3fa172a0116fb6811fa65700cee626e2c631fbe10ad04f9f3e7b72d227fdac039bb1befdfc126195e4ba4633eb345b0dc59c696fb3e3ac87cef70c0ee0696799425227fa7f18db7b6089665578803773fb23f8acb2ee7df803a704abee8cc56ca297fca18eca345f0b799bec937fdb7dfb0105813ff5f7097ca8135fc017eb0e6e20a3ff8aee678cc23f3f6600d2ac7f660cdf54185d5fee5988f0ed2f50f89bb1f12773c5266fb234f8b6702e85bb00468b14c35026343fb42208e1158133f1ef990b9ff47b67e5a3f2dee5e1ab11fad8d16773c12f361595625a99452e64ab18f1661e2da3e373c3543958c65d417f12413203f242298889092b9fc90886092899892afdc3fe337d6e79c53becf3a67cf6fe9d35f4e1ec73c9ebbe29d7eece37cece7765faaeaafea5f1731ed4192a4ab10b8837d921cb70ee6ee22eda7ae02cc3bf4b122d9c5e3f116c970e719cba84a1ffbee08d661b8dbb14cfd6925a084fef8317690f893c773b444501ff14e7cec31d4cc62763946bd95610bc747555667d2ede53a73cb1c3799fb6311d9d96d0957c6baea06ea2072667e57dc75d61e66adeb5cdf6279277e7d8aabfd28437fbe7c9baf7fe408d64522fd3b18ee3adb2258eeb78118ee2edcc5dcb8c3404fae6f4dab3399e46a93336fdd06727c0ee4183fd312ae3c7103b50812c7eb740dc08628433957d65d84c08ca2239f9c2b7b4d2c6de1234451ce95f9124b473957e645a06029e7cadc89a7a49c2bf3295a1ce55c5903c16489a19cd7c50f4a5e173f28e9205eb0220808a62d88ee4c3f99400747291a1914be7192f7840b529672a2c830e52beb1c6808c349ce95c11f287c722a22279c8a4081152749fa2707207c5cb034f9c9b9b224ee850b47594fce952579492c449194f39c001d1643a91f61e19493a41b165d17eda2c6a9c94a0a54895a41b700610708f8790ddd819fd75951251daea3faa64a2d3f5b3ad517e23dd249628971934ef56b8c3a5ec74b27898556f1706210cd224bea4596348c2c5fc7ebc012cbd6b2c5209925cb6f128784a6922c3f46bfd1f10f8bd5914ef55d0ad1cf772842ce3d69c0a7a7b43afe52a25815f8a55715fe4ecbf8bb98dc5125175242b1e8904fb350abd3f2d4ead0d7b1d1e0bfde162b3ca4ffeb534bc2cb15d33887ebf38a9f2a39275fc746abfc70ad9f6f05e3271d4bc16f3a87a829356a6c322d58088adfc08f97c842a150755616a64a321f7c0a1da47af91088c0bbc13b5c4070a92eb8aa20ecc0d5dab06a56aa54c51c2e057322aad4449de813bde237968a41b1d025ca849de0375df527581c33d3a5544e4484caae8e1d3ab28e31e678797a65c96f225395f8e3164f90589cd39c9c6b72af4f7dccc3772722a2791c1094fc26e6e5bb15a3efbccad1149adb97e6442ec58b70cc60dc1dc11a6fdf51a51c5f6bc5277cd52448c90fc4d9f130f5635085693610b6f893e198992f493a9df013ef4c2c4ef85225aa44ab502b34cee198a9fe298bd7d4f8ee3db9145e379f32310e924e414e32bf6d243827ff379ece393002a892cc7754892a51258a853ef98dcccba75952b061e3dfb391ca363889e385f8079b4b711c9bcc0cfe7c29d58aa9920c76a2d4775429e63b27a2595841a15e8956a15650d85b56cac6b6424f18aa44698bd4f0c5ddcd4f02ca6eef76bd44ef5c16bf8f7af8dd74b96f9e9fdfb8c780e0d22e32f22e72c743fc69e7b148abb2af88ba15e27090e3b82caf59018853e3b17fb05f8d3fccf6b279bee8a3291b7f350fea2697f25d468d14b581e7cb3ae5b4ae36afdcf77a5c69b811e724d63f467c7bb95eb189780595c8056a0a0a15fbc76fe41ba9aa7c61d8dcda88935d14e5f6bb7ce74d3a8cd7c45dc887fc86a833fb9a7c92e5bb2571742924c01af9734321888c3c5b7086bbfe212597e4f918eeee1979fe855ff07c14be328b809eecaf399e7fa7a6e3deee29382729c53b124b0085b292614d62c86cfe6d7a4098f8cd44fd7ba8877a97e97f1805e764ccfe211129655854c5a8e9680a931c95125f4262e228fbd7c84a30a5256ac0796338214df1a92ce9e337f0db8bec1f675e8fae17e6015a1daba373188e93897cfa9810c7b6e8356e7d095675dd9be08e4a3d68c9af9b9369b3b44abb9f44eef007f946d574b7dcedc8b69aa8fb38a2e7c8ee31d96d64ff2e95e503026f9665d957e7b27f36fb67357cb30d6531ab8ac9afc7e6d96ab9219bae47d3c91c1e73c3eaac43d42941453c8a3a4814f294daa54c092a2282472ca2558510266187381c1525051149293ec5c809c4a1946b113a9f69ece26c46c02eabfaaf79dad8bc9caf2a4495e0769d44248dfc26f68b4ad0b3222ab17f7f8d1063ac8ef3e3e31322fb617c1a8ec70f1ae7fabaaced6d15732e0add7ebf68382aa594733ead54850be4497f87be9c12d22eaee737fe9688fbcb2da18450b6952f887995af88c19a2f89453b246e2e67be28362b4663be2aac5a58e5f9ba30cb0e897fd921f1ab4aa3cb11d85442970a9e7b9a9f2cfccf104cfca4e0fbe687048590ec42ce6ef9859452da0f40c14557a57c596429e551bc2a2888a07062490baea603117c81032cacd8028b242c8eae507af5b2811262201dbd90021b1b1a63e82058d8c1924b8ce79ee6c9d8e2b9a7f9af7e7610c4b484076464f9243332fc9754104ff85c587e484938c8577e48494c158ca752053fe47953f7e5de194375d4827bdd97aa89dcdd8f42d8a024acb8a8482206394822074749f4a04acc0fc98aa72b4b92beb83d8d738d8249050da8d04135e79c732ad99067d339e79c5309873ca794f2619c36cc390590e7df1df2fc940af29431622a3c5c5482c8f079d85cf92141a1745365242a466019fe5ba2549ce49a1f1295209a464df11821dfc4295460b044a5064750e981131725430bf722c1d30e18d1adf9214de18365620a227098e2091c4c01032953387971b5fc90a860c1052a68a042c509ae4882357d5f9094c04115a5f80286f3f04d70617e484743d603473ba8e0d4831b6e681264040f968ea01c600a30aea4e0ca114b749103bb38d2a1ef0bd291098eaefa9880a2892c949a60802109060f9042c50c4763dce0082670e0a203a28a1cec40075e3c5de9d901045148f07483335e20da020243f060062b320c2d41d1e29d81c30eb010c20c2eb8704116465e602286a5216a8042045652d8706025062cb8e003192078818d148e08011554c430222a820c2c6c95285c8c01c443173bb822052c611c3dfdd090040e33a8e2002564ec808485a8861c6060c5039e8832c50b34943c89c28676c10f2968a18a0e5cccd042510c553c20c7071864003202638c23947a86a801183624b1a40524b250f180be010c8096a001932fa84c71618008092daa0022861178414500305062062376b88209175250008a26559260018b085c88e248154d3885c0043dfc3001c5a3f2bc68420b25208010020c9f277a62b082051a8628e30a179e488238ef080830bea0e208a1195a90e3c4032af4149ecd08390aa9b73f450289655a7e7cb9555833e4b185900872f7767768e33720691a10e5cc9710a02f3f004e394802e09403818ea84119f9bd1a247c8cac1825e58774e5498ffc908c4890ef03d23836454e7c70820443b8004b0ecccf39886414821cffbdeb90041326403f42f0543c7c9c1b22fa4dc725e58e271e81566a9e8c70770433e20886844da6b4ba534f327d42a7ed464c4c3260c204e80788c70f8f1f1e3f3c5e889be4a184870f8f1730261810f65359a9ac545854552a2c00e05383464d969aa71a3466d044b49426c25a6bad0779907fc099f8076470f5ac15a5b4daba2479d63a8b9c4af0d12244a70f379b1621fe14023d62efa9ed31a0105268428c3d1976f0fde5ecc990c7b3ec91dd4f5c186dcceb5f0fcb90f0727d222f573c33c3adb56e1d7d8fb427cb8d07e6881b0826b9b8c4181797eae222615e8379f93e3a084cbd3418dcf56498d7b6aabd8d0f585f5a9d2a04c26c31ffac4e0cee7ab2cb0b71ed7af56daa8faa5517171fafd6ce00466cd448491729ebdb48c19f7228428142fea4b3c4f39f8dc4b089f536be5fd678f99df572e2783923f3dd4d65893bed5dbebb38b091192c836fa49e7c233085bb2745eaaa7067802caf975f314c8579f90f2b867dcbbfe00afbfa2edb0c0d57c33c32bbb4e0eaedc6e3d9e53b1b155b17bca361974afbaa06e6f1cec23c9eb5b7d8878f0e82e11ded5dbedfad092e3098c7f385bd86491f2d82a417aa2d11faafb2aea7f63122f6278e11ec82b514b63ad8f746ab75199973e9dbed104bc433f699ddb00bbd21e7c386bb3c99733ecd89654ea739c598134bdc4ccd447fd689bb66caacbf1e75e7f52cc37286bb23594dd6829fd764583643c3b5f0112c5bb88b28fb913eaa7ecc16deb1d95b0f7731cbfa282619b5a8e3ec2bbc532bcef0ec6dbee4b2acf36b95b3cecd022f59e29dfad66741c20484ea794a27a5d977f6f2330cd419ee066a2130db50ff7a80ba9968ff003135a540381748a36f7d55fdf517ee5e727dbb557fed6540cb6bef56a77ecb76abbb3dafe95e72b555e76aadf52bfc67626262026202b2b17e5970f54829149f4027dea4837ef0fc1851efabb78910c76b2c8c6d18962dabba2afa313fbc73459965c53bfecf8437adf78e77287d38f68d2fa5945252da9242ba5900cb12ef448c19313162028425456d36b00616a19b7c4929d59142e0dc6a05a294c98b517eec187150df451b8883c210c628f143a30bbffbdc8f85c037e3d6402d42fca802941175c52565951c427e4845f4c0a4c827c7e487540453be2026a58849708ae78a3b573cb1a75feb775d34a4b3ec507fdf5b7f5b1ef6d7cde5fb5bb6ce26d7eceb3f6d8bb9d3be56dd11acabfd77b3b1708735b6be2d919dfe982fde41e17e6b73611ecf8d793ca3649e15de41fd35e1520df378ce70d783c23bfd32435b44e6ae6adde4359f6e93b6eceec691e6f71a7748624f378c56a7e5fd2a5fd3eef5ecc5759bf55bca2c9256670a8177cbfef5d497ebfb17e7acdb9317c59edfd8fa2357dc1dc19a081d49448bb0595fcdfb10c7e5a1cbcfcdfed5b2b9f0d0527f6e75d639677d140a85aaa8576b4b7d5b37978d6ef4515bf5f7610d74ce6beaa59bf53ad7b9dea273d877fd8aa96c22a610481fccbca5090c33c298e4f679f19bfbef53cf09ec6cab5bfdbbbdbcb575335c57d6ed0d3d2a71dd7b063925e184253f39bdd44cc17525b1248b8da5da6feae7e988a78844bf77ff3c1df1e4a48905de47dcee520a85055935aa46edeedeeedeeeddf069835289a8d5a81ad521aad195d52552a420dd0e2e2d9171d688d18a542b56a34faa22ddaed65ac3edc7b2dcbaa42e79e9a11271eb10d76bb8424495b630aa4fd84008892061712e7f7619e11631e489bbdb127717e21cf7a50bfed3e9f7228fa6f43d8710767e5d8ffcc0d57977e76b5ab9ef1d0124c0ed00100b71ae7bbc7dc9955133eeebf710f6bfad3e2ce3f8e5c0839e96ac2875510bb5cf125c721ff7a9dbcfa95cefe1c0afeff9c3e8feb323ae39ad246fbcefa4ecb05ce1a3133a151fe1bff75ee21d1b4af7860b5f695ab9f01140c201a49027dec3b05638311627ae0e43bcbace4f425821aece59b95f6da0f34d4a677d32c880920c28e997e7be80db587c47d1028ddc477e45865664f87528c3c7b24823c3176881051700a7baa4ebad4119554beeae07be80dd63287b85fd13818e8831c61869ac28893c5c3fd9477e4866fce41710bd4028778ff40227389de36f63756413d75f5671ad7f1602d6cba45b42bdc8703a8a93522aa584f1a9452bbede0b8531437cdf867a2d01f47a538fce27c6a4d3bd494ec0b94ff5eddaaf67ac35957a48b2e3f3d92d3c5cdddd31fe8094526ce3dc9b18c634e0e34163835b04a73e93c6edb760451be2aa88db7f9d7b463ec7f7288509c8917768a513421823445111679cb44e692f0c8b91ab53c6ae48688d72cea452d825e3acd8554429a558d297b4de28a5c4ae38b1abc8cb90674c19713b998fea7aa68c91e276c2850953524049fcca513b403969ada2cd0f1e28ccd6d44753c8333e8ec6b72c5a6b7f356752290bb32e14c4efe825593fc2dbd0703c46b06927f8ffe58bbd17abe14efb9dcfd8d7dd0ddbdac9c49e83db6f0371da894d9648b188e9c84765d86d27eda49fb49307b4931751eff590ed637d485d9b322e981cac0b34402159f1430e42df15597ebd5964f9840b9464f91e8e8c6189d0c3dbc3660492129597e14951451619422ab0c8f0fd3d1cda5204d7a3f9976357efcbcca79a0553e6922b44ad6a139711f7a54ea94cd425ea12af4c2cc1c4edb0252a77293b2cbe0a1c4965f80e6b0d1851ae5567ebcd84f745aefef20ba2deaa446e5f2ffbabd660a50c16d820074912ec47d270c3655df15cca9f273ebf5229f5a1e42a9be4fad5867b05590f371b5b8dadad4e9d39303032284c24ed012d7c8821074912cc2807e693cc1ba6c889527d4fce0591bc24305a0025074992ab0639309f246291464e94caa5bc422e759432bc7c2797a486b8d5915c28c85b2cc46a0dd7460c667b39d0ea9c302d135c19c6c38941728c5cbf934fafa93621f1704e904de44a25577945ae2f4b2087c85546c955ea70c6bb72fd98e501715943ae52865c97e4faf494e52e063dc1f893eb771286faf3e166f3b3274025b8d93c376805d6d4f8549560150fc70656dca5c2b85ed4dad42cb84253a0a8a9ff6c03e6c7a78a8cdb795393dfd8ab5ad4c20bf3dc712d809afc268e65bc9afab57ec43fb9e290eb771f712946120505faf32746927ad28110577228aeb0a67ecfbc705f8e8c618950cecb7101a691464e94fa9e5e8ffa561ad7e53b2fd230ee5ac39db648cb77f15d8b4f7e6387602e1b8f4d85125af01379996be17a1187492172e148d45684dac9b9fad18973f52d1c839cabf55d897b82b6ad10f305fcc67efd13ead75bffb21b9661b697e34df2abac4fb962dc8f76d9de31fb35319b11389bfc38e993eb8bb971f7305b142b7a53fd54eade5a2dac01e7ea5fc0b9aa88db3da79a539b2c0abfd7233ebd9afa586f7163d014b97e6cf2a483f8d78736063571aea29ee4fa3504b77e7c82b5befade04eb63cad537f4af780723b2be4389eec676e6c77f416efcf931f2c83cb7296ee748c492e2b60ec59d91adffa2f9d9aa80ce15fb6f33f7d7ca231f0f95d70b9bbc18e07f3c1eef537d5df887d7f403968c404286f5d5c8afb6faa90ad01bdf11bcc2a16b71c96fd8fda2689a4e5124b9c4a328cc40054981433f58b13b43959e45c131076b60bbe4ce2ae4c8cd81a60c3b0d10e52354e96acafdd5c70786cc03bff3b326a432c4fdba1b763feaf484523fa8c207ce4d1ae74e4023e725c8c74227f79d9b58667e758ec6392d288a1f986baeaf87fc97648592a634a0fa8a3b50bfc242fc07076b2295a17446a4a01ca3f489474e39c667e52d2971a512102121051173e8944fc39de037dd0f03f84d90ee4d01237751ee66a4ffd3703ffc6314b2e272f9b17e0e871e83d75e8f6e0ccbf5be51efbd87eae053d3fdd9415e7bdfbce6e437eafb21d3f777d7686994b57d4cea6ab5c24cfdc18ddcdb6bba1d6cca4b664718723fb44118387840ec19b91f92913b8ddc65e4863cc80dc7c80d9d5028140af5d539d4a3fed9bba136b8b461159d6eb5e41b5989e2f0f5557a2495e9d7bfe873e2ca7f353f5a245a209527de891f2d90ca3b1086ebd1c49853979c00fb755e844abd82f7bc6d17f38517459533be787a010a500e33408164fa418a5c7297b0c850830d6080860d32188109821081114eb8e082d1941b7220930e6d034a3f11c3fc805ff53e7cc1cb7ad57b8f475666c8286594d4c8b9478b9c7bf18bebd174d0c9aa5ab2dfc8eefdfc9f3f8fd9628cd542e8fe1a00d961d5b1ab782df83f9af77a2eb8c1a625dfdd01a026775755c8042184b58ae9b6d7e3c125e7de772a8af8bec84114688c91e5033ae0e18beb47861ebc3e9211415cecc88e44aa4695273b98c11843463f740cae262dc821678f564cf9c905c80f698a508e3cd06f214a3f9535b8f0e9cb4dc4277ec94dc4bf9b0647d089c9921388053ac1a72021283dc02c3e4d454b4c622c59120b7482598e94886ebdcc5575d0c9ba2eebe39012bfa901713c4a89468ef374b01499045d95f5e4375d4ccafed08bde21fb2f91255f6f3dc5a8d591af6a29e77ec7f2bf34f9fe32951539990a0ff11ca2dba8f4ad7565450a15d108000001008314000030100a07c5a2d16038ccc25cdb0714800c889a42765c1b88a32488419442c618430c2084003000046084a6a601010dd3415c0b5293676f7ac941718748bd22c768ee00b3c4158cce923d47dd6b34aff8887c1063ad253eac56a3b960549646f1e2575a67ca80c0b0fbdb8617fc271f3874f54cbc606f256f13a8ec6c7c7ed651f3662468f3187d435f68673ff60845244ada426dc97f0d661afead828aaeedb3f0b8ed731a00e0e82463eab209dbfb8a4b99f1a0123b7283d1a65baa73f4aeebebe73551acb411532fa1bb4ef26a9492c737a0e6d38f78ef0370ec4f0430388897ca83514e54c5dd1b396cdc17cb899eb706ae5c9707b1b5eda39a03e56c4e2e27dd4146602a1c27b766ed7e5e8d6c832cf2766e6d42e61c088309a28eb88e67d6c7bedebd40d23d07e8f2dcb3d587e59d78c05cad1e3772dbea2ee48f316342e503d6d607fcc64cb766282d97a31f7ac1fa79e0cfa30200a02d4fb535ea3aefaab01bc375ecb2e7ca0e31867197b53604227cd826f6752ce709a615b7e163da74c81abe01c0e4e1c72aedcfa8777e6c61fbb65e10a4e64d132f103f35f6f88b1376254ea551f64d8c6808d84c9eb6d10b1780d19073348d9218ba26cce286582655439512292f18c167ebf327202d334afd14c124b3277b13f85f929601b81dcd5aa226e259b8594498397275f534fc4ae0011e85df3d9a60db0d2f8987c4efa3324e8f56ef7508ad7276d9d7dfbbe6178ba1ccf76613d38e2dd06de8bcc1eb383dc7b33b09c8d8e15f5b6cbc42efdea3730b820f07ce32703bb6e6ac9b1627147e41d5687e0b0bc29a231fb0e184e635c9f7745ab78141c4e5a1e1f6351dafb94dbb5be798b111ef13a8564b43e93060c8cf94b5863b6612cb56c2b12dba668e4ae17246df270e509df238f96b35a2186e0079ffd07c6da6b563b1ee7b64401b2601f80c07d863dcc3eee8e399c1e5ef93890ad7101adae81f452ac53f2eef8443c22b7bcb83a69931db558fd490862b69b2d3908cdeb61918282cf57d1ab4848d5c2cc224d866d7da7e374bad69499707442528f177509741bdba06789b6860a6ee4a78e9d56c8032b3e7d6be802096b78c1c227b3383956b0b9b2aa778b6b25c5d1b947e2717427dabc2d972b06a133d78fa9f4ab0c489a85fdfb3b2c11653205a297428176fc6e30c19d264f232803b731458a878d876333938b39b569c190644d83696439620bd20d70494342099122b2dffda303b46b1b0122a0a50531b96648ddd03778e841b413df2d88af0ee6f7f02a2c168cb1fe7e6f278ca91a8f6fa504cbba34cb6184ca02d1aafeb91e252db48df02ed90ccff0ac9c0bba78c07ef1b633ea338c880386a02642722190adebc174aae46c45810cc313ce791b24e0411988eaaa5283b0bf2db295746b13964c1f1a496764cd517032cb85ecf4a178f384b2580e77981993903d1688e69dd880518ee416479600b1f432512187b0fb087dc1d79e80f4518918d4f1be051388be59ef2857bcf57f01318524961a75bd53711bbc8d4483a00a9759a0cefd012a3bf9d4f6154daa4c176f4326d8b01634099a0807aaec35fa0bf5e2412bf39956384c74b4025091c11147ad48f7af17bda74d326f6eb30a4356ee9333c20580c701c9e870bd44e18887722562714e8129bf32674ca16c5468daafc7a94fece5a5631bee05161e1e1431545f683fa2d83001f87a1b2a6363676ad5f5ef0f44a506d514f81a554193f83521c2d5bfd99afd7c21091589a25b3fc0b76ddc6a72a905533dff76622a54bf63bae7bd8d13645fe1da4fc5f73e5d9535fb8a2f229692eadc38fe512705636b6569ea51a917589b37261ea32336cbcf2f0480d7a184221a8761d19921f7083f952c7919cb7253387a613f2d579c2a93f69a716bd6e9c9e8a4ca68f81539e93a9a6ee4376695945fc210560f86e0def140e47c4be675c862a92e77896f5688ffc08f301fda784925e4649665f691f164ed2a42aa1d65868cf88aeecc7faad30a978a844ec0fd1ff59900eeb385d6b122153bd7e942a6efa7347b73e601af592e80e190b2188656e88e933ea6338a565e20d285c11bde8ba837e153abb20ea492c955dcdf685ba354001d37c1102ea9092ada047a3e4e709ea5689a8b167850ce48542dd935362e6a58669bb19f8218238f712d2d21ef4c183966e6414fdcb36929a5d86b70f71a32afb04e126a7c546825fda78f348d13104996d00a7ca9c01e00062e0e461d5eae6dd5099d65ab0dcdc04f767656c33a20a1be5b64b76cd48a9f13e24e84344a068e6baa67374bdc830370091eb319013c5e04a48621046d039914e354c009e69b1e285a19e86e654279c591d488a08543189f1f1995a914440632835ce4b63cebbf157bff8ee456ff4765b872ee0674b2fcad9c3f1d3e684c8bb45f8135708e64f4332cbe08c4073804128c14e6b5e5e46849534aa4570ca6451e5c2dae0805a9338ca70c0f9e3dcae700b8bc05ef29d963a946b83382725d2ee61944bb44d7ff832049bc8a4266ceef082f783b904bcecd68b5e14ca44dbed1e8cbad909c2dcbc0a00217d0220712f020eaa228033de631d9a0f9f4fdfbe7fdfca560908da23e35dec6f44136ebae9e332ced81fd4968b55f0a93f4db723c697557a1aa3c978fdc889ebc9e26260048d0f62c7e0678451157ce4d7febdadc7b3b6f67c2f5e02c70bc9c432021bbb003736c4059b77215d80b7a86e075de85ebf211fe27eb3690ea2b27347612b6de56ba3e36963c087aead1cb6c91fed3ec0bfe40b2aca2b61f6aa46d4bbe1319016a320a7dc9590f0d848532f157d1175d3feee5ebca3af7bd30fc388f4c323a200e95c6425e9ca5e77f94a08a2751bdf2020a55bed19c8df18df9ae8f424d081713f4152b1d1b3ca029e18f84556dda74e0db14cef2db5ced1886e5d3d02de0174acbb5de1c3c3e02f5244a0ff0a6eaf25a08e1b0f2560d0937182d64e4a1035c8030b9918a12b56c247ca74057f15fc769683d002c64aa3f2ad47bfa8e06763fac768d335b771bbfb66386286b7ea25b2f772621a8278e54f8c184eff77d8dffed80c00c647c99e62580ebe53c5567077e27bbe74ca53165281f04b410d0b029b270d35b2c2ad776d78fa322d5292b14be9a05e0abb9414d22d29f87ab9628509cad4655bb07c600baa1b27d1bae6699774215d7c9281a3f9d1c9608cec3a92c355785e17a78cca377e583381de193eb5345330824a0594f6ab97cfe23dcbfc3ed068603e4f5502bb3b2371a90e436d0b69578be65ad3401b17534fd0013f8c12b76ca771df91948b3076bb13a189d04fbd1033340f9e52cfc81b07a6c46c0a2c2a23f27a3ab87395a359e777794a34e15790779c4a533915e5463570428a41a04d61ded88117707515af546d648508cfa9c0a76a3ae7e90812bc6b1286d6ff4e6a2fed613cbbf8e99d07a4b2c0ae056ee8eb7e4674722a58f6abc2e3d6300ffbaa503892f613cefd8f9ee3806e57c5e7800b5ef1dc0f02f1939879cf7362597edff00de7789fb3100861bc663516ac8b5607cb3eb09bbc232d0499f16acc919a21ada634687cec0c85dacacac00f520c8ce466636261d3014a426fe6e7eca78fe6a6553f9d29883565d4a3e286a6625e7a9ef4b27686b4cc453a27be778ac34d6f4fa5453899c8132beb3dab0c22f7d0e6f12ff85ddffc701c6e6839cf48317a33dc7967931f1838487a243c3ae2e1868d2bd8c1507a0326e3aa96563fb100544b513d6afd4087a3de755c480a0771afdf98aa5ff637596427a0545644f791f9e948ff15e936de996cc657fe250938ddb9365374f6bb945cd49799aa85fd8256a2b483fccfe44e164d2c569e0692a13b46dd43a9be5b97f266ac59305725a9e225bbb92f1cef16279b8b97c88afe875bdaab5618e1f9cd2a42b0435b790ad87a031112fed92373fe377b1dd1a8e37a2444e52c3c3e5ae3c0055b855ba728743f7356f984c89474da4fba746a21a4f9f509bccb18858da72735d1ba3d99b8078e3998424841d3622b5c33f52fb26773a7bbefc7f42976ef5c0e09d90a5c96f599076ecd0f3bdca3b1d20b27f0cfebdb7b062582fd18756864585084f3478593cb765ac3fe5d35192b49a8ae734a56e5f3733c8c079038a4f8a0d85a6f2c090024b4feaa52758cd6a140c00430c882349c6c10201e0a05b72cf1e31b5240de3b296aa3d08db336eaadd820d8eb95d814b48b10d900b57174a144b49498ab100f3363a679a6dbdac7fe2e99254afaecdc0d12976ead1dfe60cd58fc06286e19b7502a38ac7a2e2652e753f62481caa0628b1b880a3e2b9bb6599a76358c52081e8a7ef31652bb2019c8eb0e31d452f46aa66cf44b287c9f1652c64a8afd4ec32fa2c6ca0a883ca2a28b97604b06245e051b69a5a093a4cfe5cf2ae4ab92a008e6944d30ba16a7ebb396f5bed3d0f82334705e09d7d40c853bc787ecfca89c85764c878386f38bc37d1e5a350d95b6b88f7137f230bcbe3b45472e398d0ca4f18b0bf851331f7741c2c66e8aaf342cc1d93134c23d84e3d04f62e9adecdcfd2466ebefbf3f5c45e4947bc0904875f0860bc26130238d6ac1a9811bc323ae60fd3b89dbfc27b20a2e1bc1a353cdac535d356f4c35fafc5b9c6d7eb09d143db6b8c77322e42f8d8adf20695a92640f1a2ff3c6e2efccafa55d26cd413bf2f8373aaa071570be8a35fbc94de396f7eca746b714e7ebc2df5881207dda3b5fe63a66ff6668b148a5fda0d04e7b75e1de48713f872e07084ebe81e8d98a77d06dba76142a65ede7ac07bd264c67654fd100133a36882c8c803972632b761842b7add9369e50166969cd058bab58f075cc96fcb255330bd57c0e52f418757505b97965a4684a10c400cf9319aa9f7248b8f584d22c7c443708f1925ee01b244a283d78f78a530a4ae099c48fae7061bde12ee9d12a485d84e5dc73c956c9ccfa9411aaacc09ecfa4d8bf121b8eebcc31686955e50bf0b8b77e0178cf922bc16cb4a0730ee9533e89d6c61ccd9f6212225f65ddee8a2447a18b25f5be1729012719109391ede0583e4f957b70b108f2bb36342a81868db27091726bc959896e10515788809ce7905cccad17d310702912f429033ff0bd22b4257d02cc67df8343743244f58473542126a3645b4651cb6454df0076b9730d82279cac18cec35c5f06b25e3e189f68b85eafa74594937a4ed5955e1ad5e8649f7084e27fddb692a6518c9862264c6ed770a9e9883d328f8de4d7e497302ae08dd2e6b80f2a8ac7f6c42cf689a2ff8c4c072b1828357d6787923d754be43ea70d0f89473c13945a9d6b873b99612807e42278901182a4c35cbb584ec388537e81cb4f0b27178e1cf338cdc79ec966042362a64aa241bb6811b483777280e8f892bcc7b3fee53116bf0cb1cb595e1f43c08c8fb9ac1b6c2b98de6cce02a539184c3c08f20a4791024153783735350b2fe988179dc32ea819f33c60b380c4481a165d5c99adfe800b5bc58bfae9a877de25637ab618928a84a2bd726896b3b819b8c9bf6330ba47cba6ba7357511580db802862b758a281a0f09edd432af63e7a4e7c140db957bf870e265b45ce6305ccba873d9d01759082bc69ed2b50ef2eb6ecc743b8d1eb98d46a9f39ecfc053ffe234606814aaa49f01f372c04242894e0045a027ce99e280a22704035cef42373050d6bf8072cb36b50be1e3d7293a2193f8837f35612e81cff570ca730086c95fce571e24d4d2b45d96acf6dd503b05fc6892256ce1cd9bfad4e55929e0cc7859ef0c3186336998011151724d58b876c70234e0564f591d9caef1aa9abd74c36a27a15bd5e43138047c74712735f521b05ec8d5cd97cd3785099b0ab939c3c9dbafb5977eff0f2f32e21c80589e4d96424532546c90f7b682c9aa8abd8a441ceb1668655caaf90e3f642482d1cefa029b5846e31b650121a171b0fa406e9d5f314e8019cda428809342fbea647e870df80c74cb249a3b12ba1819093a9b6bbb1f9402eb9afbf958d5c269d241b717027a1cdfdd6f5c6b82e487a7a3a362de290339a4b97a4eaecf74e74687aea51e0431fc179bc9b2d26877c2050a554555f067e653a958e90a5b709627c04938a14f3f11f581cb134e31febd0bac99f2bdf9e8694e59c8ec0a76ede05c8a1ec446fe0d56ae103689b5b39ecf06859fd7d198e1e43de68f60111bb905943c874722927244b97782df9d374f012b684287ca3c664cf212328a252ad94713203498a37f7238f01c114322f2cc0194f18b43ef6c7aa82bd7c16e21fdc6807c76804d8e4867f608d3ce4a50a93864e9ae2f9d11c20d3f5b69f27b253e027439fe0d0bbd98abfb6bf443a3fa13c5e5ab12137f521c94e11790fd850a220a5c5cd52f2e2ee011fc21203925c8706e0af65e8080d72c4729746b29abb989ce6864efbe1734498a29a53c4a558794a52ae25f0aacc24f6ebf27b5382200874b5f7af48112d748d007f8e2d30512edd5718b21ec281cd177ecc34fe808b6912dd83d83751fb254e995519b2b6fbe912451ac523d5c188b73214d4071bb0c1a8c4b5e29e10323ef8331c42ffd888689cee7346364892737572f8a1d246434fb51f376341885731def3137087c186ecc166084b078faf593772b34cf76c8e33b5eec937e9b102739f9ce27f1f743a93a6544230484a45bab7a8309aa81b5a150f3d12adc2cdd38ae0e74460e37e9bcced30ee877a6454e7fa4ee23d5e269ef57bd315b4f56751f10f921fb734a148a7cf00aea7bf0e3d2268a8431c138e8c799c0a10e2b89b655ba8950bdf46e8697aab15c56437da4f132e06d8fea136c707ab29b20b2050b1a4c2b64b95f7c63d7210d0c527912494cde1fa81e3dbab98418b9c2e14d363e0b36e98a98a55ab2c2a70340287f0bb74bb6d4d3f4fb31f997fb3e40e3c7aa676ace01125486e59698dbed2c86c674e5725f8e60cfaa14225cd5ccca44770c11540febab173e1c915aafe6ea479388590f3b9076a4d31b4770fa56c48c17753315c3f8d2de811125e59fd065683153cdbb33a6f55c75cf827266b4bfbd0bfc33f41892a1a4e38a9d16de22c5502382718d98fecbc05e432967e79b700d56a050b302de40c377e3bd3683b9c8fc69d750b2b8dfd34f4aacf0c3d4803800b2d02dc8228141b20198b8c009c4c18cbb3ff1d89747796a96ee6b40a5e0963dea017f9c55b1c9f868499466f305e8228592519bd83d77ba32601bf09f4e8fae2a1162a86388b6bfd3ad3a963bfc162082bfb2ebac3bf955b370462436a69ec6e69b8e1c016e33c52cd3c92fa86e9bc6dedbc9b206d8bdca08d88037b07f095a4d1d732540cf278347124a230ab4a50051fe93f14e87fcf1c8058c9d7003431838696628488079406a06510856c69600516428f8fb44b8a80d8b0e86acfdc10af303bcd91ac73b9c07faf3097916224e37ca64962d9c0c08da655b447743a15ed90fbda8296baea7f5ffadbf270c9b1e32276776a1da318c143cb606244b4dca190a6f2f014231c2295b67ddbc92f6057de520be0749f9b4f901070d0ed51bdca799beb0e9555e86bcd7b43ad8c154a486d5249ce7f8480ca695c16f5c0a026d8ebd5388d78b4be6fa4057a0f7abadf3806b8cdc12c549fd436d56da488614460a889cefb0d92761a72ac9d0b166312a8b0768d3cae1de68e4559bf2d03575346d9458f026ccec97a31187cbdf7cca852f9b9141327199559ff5dff1ceea43b027b85c8de3b9baf062bdd7cb9484e5399187acd4f80a7fe32ab622c2424969bf34b3318940084b0abe051f630e7e522dcd41181c07dd71d1d232ce41c69a65544471168e46e7478f95e1b5234f2d1f9411eabe3808baa065a8a978b78cdb96ae6437d1a49499ca7c97d1d7277d434b786dde88dae74d7b6856c4bd121200f584394c2ae3429781062a8d2bc61fc47699d7dbb34212a1d30b8237fb2f6df357c8435f463d254e287cc98245793f15c36f780093dab4b97cae0c48fbc3a434f007d5f15310518aeb1a40d3a65335c0019be608fd3543174d3a34323c8195040b9f38bb44e2ffd9a5a27cf0e471d5fa69d80475f60fab6b88d8434086aa545ba66fb27d7aa97f2d7ccb5400d368d5563b47e44b917bb147d15152304b5d246f5a7d241628816c84be13b695b0f833cec82c2b067edca672129b8422ab4ac6484f072bd183ea5747492ca13128c979fce6335239de87eb2617514a0ece298aed94562dcf682a2b82762a17581e0a6890ec28e128de89882df2aa4d256fbbe5086286d33726f5f2ef5ad4b4c2e612fdcbdc94bfd6044fcb51f01647ef3da9554d1c01d4acca3345fb8a5c86c4606411c0c5a98f90e53fc653f404a3daab7629108bdff06aa3d4b88514207c2c23d02e390d0d7ec3d28c18583054f1c3445c7d37924de5b306048bbc348fbf232229ef31cfe824c38812a6295dc758b7eaf446c3022b40359d5254ed180b634a7369cfcd11477547694be4a7e080f94bfb6beabe85686ba877fa75ae048d38fcebbece1a80cce0d0a4b0c3215c8915e3496b3a24949abbda3bdde5ddb6d7848dd65a756deed9d60f106dfe545bf381d325676ffc2480cd2db373871d549d8fe51edc743e0750c1a95db605939657fb1ce69d04c7d91bb1db12ff804b07f4cae4669cad22c14acbfbaef921b9769534422e354eb471cd74f113e20a2848b10eb0db50855cd10d2c8a6d555ee3ab0b8ba7cfe5d17a1ca505094eed3d56d6876d5f108b45a36f57e7414b548b3345ad9d0c7c1c97a2a9f81e0982266b7e79ce3d33bbf274962d08181b0edba796a3fce3b14013b296ab1677c61775d48f8292180f431653b62790bffcdc0977fd54056122b2d10733856eec127100c3b2cfaf5e06f37330720e1b234b43c84f920c3fcdd38431853316ec0041d043790846381531cfd06b2cc01bafbf2764ce4a5d2970f1bcc0eeb91a4217735ad922035c63917066e74cd2299fbebead360893732a1a2e203901f17a29addfb63294dd67d885ba3e8d7d547c45ba4ac42c89ad19e6a88be90361d97a98e797ff44a2c43625c5a7aa1fa08a272c784689d29b9dfcd5e63bee78e0f693d96d142d386b8d5173d76402864833a65a0019e327b5ff98787e0bbde638add3277c38a4517d790c95cc61ff8a573ec6705b93d2bef4c32d404c983a515bd1531e3ca0f52793884dd265896e36e57741f6e231099b7e543c5777df1260be15f0c009ae80aeb120ab0ce1f8404e0b372d3a05b255e9c9231b21ef40a133ac9e53cefe5a035f6f8d942b91cc31b1397af7fb16abd45ad36391b568c39c593f0ee74ae049d4ba685cc604aea9033b1282684ff0fd436024238264898221348a114e465fa2c82c579bc0a191ffd8011ddd3ea07e2fca18349d3cd1ec9584afe54617c1cdc8fdd367cab64a382e61c0c89296cb4015e6f62021bde83487f94a1ffd9e2eec4f1893020ee0db46da1e6600d75407ba51a417a01eab11b465ba94e702b039a4c3e7289f52631f86da84f752600469b257ee2b168b65b5c4c998f2898ec873a6d5d155bce613b8bbc12bc29cced3946ad2f2801167de9c92720ea75cd43fd454059ef7259bda4e3e65b0f920532695cd67a647e6788e275dcb26040ed420018da7083d2e0f5285ad4c421977978bf94b550fae2dbb65a605ea567c9cd5a267e8726010520b9e9e167a0f564b71a01647b99a3698df40886a278dd7f2513aa65b912968ec7f8202d04fbce3e050ec40ca55738128717ee76ca0a1dbef8b9374ab3cc526f4226e2cb92a22cba85692e48e5ae96c060529dea21682458a0aaa9006e3d60b5c85915192dedae85c141e54c11c35f493a3fdeb1806ad93b3523f5548bfb590553737b851bfa6511fd774ed2ab03814db00abb952002d04c120e5b3e289c2cd61fb0369e828479c5077d8ef65d663976cbc0e1cba926da2d68af26990516a62e512ac601af72eb24d69bdc05edba3d1b3222d44f5a1184155592c5798c6437e047fe08a6b5d307d78e40877d2d48ea47e93002cd04b4d380293e0cefecc809820f9308dcd65e297a51cd00c1548d64af010ba445fd4667b4367b1d1d6e646824491aa6411ea8835592787a079da042fdcf4e24ca06e00fa38f65ac4c9cc62209b4c88d21dc719542ac07b9adb7e85c0e21da80b271bb9c1d73484cc8e2c88025cf90d51ecfb7caaf5a082b417aea41d090859eeea01198364046fda4a069af143ae7ea4851ba702ea3729d3e64c009007e33261640270b41ddda3101908442049e1e8f1d1122980e6bfa641d804d858d87ff65bb43211206768e0d8b2afbd3ba0d066825954bbf2e1e3ab43743c28349f13dc38f59cc13f947fdaa57a3a48320d647f42c40b41a0a05b5dcd8ca5a9f6a2857864f81f78a174d5e08622de9c5c07c6712ad9b9fc1d4e1428e515f653a3c1abac9622992fdb72fed9e5a9aee17be401e8aa8f1a5405fedf9e2cd5f15f733d159395ce413f9f515ebc91e702f1120c16fc4d96926809246a5266002e34db38a14e3b50dc4ce527a049382f2a506441daf01f3acb60727d7b95b7ec8feed460de240d1a0dab2167622297275264ec911dddd01d22ae985c88501ceb2b5725056c4339084fd8a501666e478537a6fbc5e1e94461292e40a569b306e8d8b3635b54aeac73ad7451100cabc3cfee34452728545403cc86184ec5d1ed03a7bb1c0124c569dd87261f0a1db4e577ba0c5c9fe8cb50c1660c24ed5dbd8ba36be026be0bf2bc7138558afc052421a6a860ef5eec773617490e089fecd207b0e59eacefa1a1579b1c3fe0e5bfc7a321d2931c892d2b07ccc79e43c2c2d77139793237b2d51f19407c144dffef0702067e09f4a3a7283a63569e9b6a2a973885e11f7fa39dc58eb3ab0b9071395a4a280bc9b752811328590c948964874f8aead89ef2da4a60e71d4479a5c711e3b00dcc8239f02a7ae262be94e614470f40469585ac569e867cbc0c7290a6135430689e882d445b81bc892feb80196321caead90842753fb834c3718f43d0a1e7f9f4f67778ca607f47cc9e17875ceb07f9b60f0c6ec1e314e2d5a5059ab6d769c37beafa535dc1c84e077482b946ca94486987e4bd725cbfb6e000c22dcf083a5d5bc296e18d387236faba53c5245c2855b4a8f085623de10e84f2c0044b68ca5e0394b901c1b76802d8b53fc45439f3c4c98cde641c3146f09bc72792ae287053d43b14991a053f077d83c66554fce25decd0ad89222366dda253ead9e43d7948120a520cbfc474df043a8b9a0aeb5b30826c5d738338bff2d260110542010928c4dd452cc8cdcf38a4f056608d5c39e5fb3aa951168e51493702a61b5684d910189fd8be87a80ac199a431c090f09da2ada075c2300afe16c2329b3899b6800087b8a6081bc56f7a05c2be04e10dcbd54aaae71393bcb99003e5f269c141a379d24a97e7b114041270d836d7002525b3809eb3cc758f901e6a2773ca9e33f057c9ea825dd5cfa0245a0a904026e255965bde4679f8a143e1a9c90055b2ccc3e645d572bd0ba175694bbe1ebdc002cc6b1caededa69b23d7bf7243e66112bc34437cfd26f4f141137997e818514d353da6a1cb254144b686d76de9bcb8c3d55262ec2b840d5090ae5e87a79b37a1f343db772420bf7a0466f51381239a8773cae2bb82ad5825776c6a2d31845cf1c56b2236011b5b9aa3043c3b697c935df495792c9136d44e1a9b1167bbe806cbb194f25cac24a7883b1a5994126e87f39b78d07324b85ea512e01c41d2b728124d63a4a23e5548f4ad33b27fe6d8345df10caeffcc27964a004da02d57579acf80937bcfc92badbcccc1fedf3e28286783c0d803fc005806ba0c80fe704a0d00112558a8ba0ff6e04a54b9d9ffd9866ff6c14df6bbd5b1de079acaaae15b40fcfd127fc39406b4d6e5af1c80f48bbe2275ff7a197788847581638b300ce796157803235c6efe521e5d2e17cab15f3eaf2d7b7c7ee4e55e3e6e1be67fd098d3fb5cd198f8a1b8a358155644cdf48fd70aa8f7d0a68513465c74bf3ac0b1ceb623a7f5aedc4c825b9f2b4da3dd2a8a65b201e27d2f21164f8b602eaac537ed3c509c9c12726f751817c5e0a9ac43e28380a746222087d6b0b320af83939b738dba0838cd08843ca7a0074f990714eae4b789fa14191c80950c1124453655be8edd201266ac02005f831bcb0f3d9e46fc531a5a519a56ac3933080ff3876aedec5f2d3069dd15f10f45ff74aa09c1d5428b659b332240070ede5b3a4788200f580c5c2d1cfa9b65e3891743b1f0edba9efb95462803c3be406d13a2bf615981c1c702811e806bdbb13f657c94ef7d2fc28fd6d3fa8034a7b24aea0d470a94dfae1d29a8c7b89493360fff4cba488699e8cccbfce433845657860ea8670c18591eb8aec78c07f1ffda5b99d7818197391aec1366f16598a752cc88ef7f3442de500c78a7c00d30ef813cde01be150dd45373205cc99d50157e152038847e1b09ecb59a08506a44a072d504e194e6c491a6e426f070bca06a3656474da08cff77ebd33e661f835734fee60d4316cd21be8cf8d255e0ec52927ad602cea306ba93d548921138fda3e4f0112832066539ba22a848523f82562ba6ed1e4463a9b3399864b3cfe7ada753f2b928b305a791f1c0d5ec233168dabd0f08ec9652e4d3682beb2748d09f67fd0397228dece2be766600b894cb90e642097a15b1952d70db5d89823c91a0ed70bfbe0a0baabe8613a51e901ca00dcf50804b41bbe8b9a8c2bbdbff60514e0292acce04e8b981f801f0b28ac5d69f9f2d017614138ef6bddcaf4760bcaa8c6860dba60af6487b76e0fef5fa47d6e641250a7a3261792b93105c5e269c75d6c00dc26cc1bf01af84ee481e379128815e25e8604575008ee52330fdd0e5039f47a6021ff7de63be6bbf72919c08a59bc627d15ac20737d284d0d9bba8a2272584e41ee799f7b1712faf9c7565aaee667a71f69c35202768eb9048e6b8b60fcb7239185b106f2272b65190578c9b3d70b0eb63aaaf2e70aa074738e86aac3ff23ef0a61f59b122fb9077b1c3336f863fd6882419107628b19794298fc4395dd276d0f9eb868086f37fe7e2b1530a63b9362166fb0f869302722056d0e279fb23f520ce74bef39751317ce04a2faf44f20f0281d3fb0c69b18151da6d611c4107deb97d16c6bd9e09883e144d896157bb93d26455683513324c481f02614782cba76462120a9846f1a712477d68e423a897f4df2b8845e7ac1a49d3fb7d2862fc5fadb4f2ce8251100720a835c489278ded60e5fe89b515305a2a9d3a28f392257505a6a84447f8c320208c294d8707e1dd68ddd2543df9e99526be57406b23752a6bf5a736ac0a86b7cc2764473b0ef0d1225af15b0b61244a13df2bc0368440eaebf4a3020405fb4aff9e88f556211b9283601ca520a65100b4ff9f0a3de5917bb060a947e87b829686e5405308a0f00b158b4e528d77a43ec584814b95ada38b078f14b41ec418bd2abc171ec948e9f27d879cf9c33e8a3d2b052f05215b960b24cf2773c8e6f369cdd0586877f71d1b3f99c3393f4b10f7fed1ef0a02ec1191727c24b15dec20fffd4f5befba19e48362b55a99df1f6925c9c2fbb7ff6aa5739f4345610a962a8469b45ee8e5f7edba22b748a761dfbf07af95f3bc3c8fde0c6e5aec6cfef05f712f767066599a591ae3f9e5ad798e0ffcb13b616c3203f327b895adc9b8e3c011780d3c065038f4786b1ee84f5cf3d658b092706bb4b70f6e3e8797d0b34f076ef527ac7e50af906967d0404a58266a485903cfca1334449532775ef2f77f6555b8c3f85f79310ad50db9a5d88077e3538f6c2ea946e6449bf3a0cca75d09040d34da196828e6f7f16b4073933094a1f812d641802c6abdccc83bf1851160cfaf3a3aa2f0ecd2cbc83b10b699d65b33c7c3560ca59c5a2b624f058be4429ff9f003cb7c0d43c1ec4afbb0bf5256b868ceed14b5e1469c147fccc52ef059826cdb227e75022164dcbd25980e00e7abc02d679b82d9316f3bd1eb6300d5e7a83f0bea3f7594ca7d31cd98cf8f9640a74ab249a1a099e0cebf0b3f123ed3344c4437ef2ed9c5e8e3ddd1a15a5e5d2d3b595763d14400b7bfa72dc7598ecbbeb6fe178b8fc7d6521fad79aebd379bd7f5c81e94378b6c70111720b5ba4ef18274302ea3467f3a121e2fb8e2687e7abd45593dac27962203c990fff626ea3fc80f4b538a1f8b0224145b68d9f3ceb8f07674b0cd23840bdcdeb1e29b65dc9d159ec740c60a1496acf8db0e0bf3440d77ae086cb3ebabba6d3b7f69e81d9f1858a01311d4567e2c8ded2b951e530fd435675e90d4186337d6a9e2fb9638c5ff277e9a8b1d2f13dbfd0af6ea5ffaf351495019e37e0f9b88a3fb5ed5dc9df39e64b14e807d3fcb80b3a9fab96ad71d232f1e2d5719694eef7a385b700ce68b626fb0c43a6f7fc4d790dfc7cf71c9da61e746d0fb802a2a667485659dfe0af4b37a8a5c2491d68f2bc4aad7724cd74da37535cecf51972f9e133b71325a776c611a5aa794edab8c0c654a6ac76c41093d966fed9ed68b041dd2145808e71a04f7d4ce981cee7ab9bd0899d0f4b6d799d711d9cce8df623956337489f65463a5e11615253c58d2fab929580f8ca5fa332326ed8f8a2ed5335f42055c0bbc4e045d8d928e9dee57e064fc66c439dcf4bb619e2999fa3030786b6bdb3b4f81e7815e9a464a31b0245b251b15ae7c7f885f738fad1721cb7677f5e5501679b2d585cd645e3895a26426d78e70d233b63bd8991bb0cc41dfc243ce7f831fa902fd26c302752ebeb01555489ceb1618ce155e925be6350ee6da2173e1653370d07876c748f0721b16bb7534b875fc507631007cdd893f425413641c557dd909aa3d2aa75c134959f38911c201b8b5cd82ace6c9b0dbbdab82689bf4a3fc11442ef23f6cdafef8bb2d7268acae164d66aa83be1e6bd7bdd03428342e6556492980112d5925cad1c0f44b90cbcf8385f52a6c20b9b5c84bdec8bbb7cafff48de7bdc6369f024ce3a0f9de7dd08af119ec953f14611010aa1c1d228b0584d09b1ac6d8fce37f0e82d6b714cf5840130490ad516a903793629bf743daf967bcbe34440e2a3d1b309e1bdf09b90259f7aac374980af6e9d6fd2994897018c3424be505d62006f1934354d4ead4070300f2d5a4a2a4bb7ca69be17168152e1ecf54ad8a2a1f40e9418180817faf9e43aa71fd39156169f5892fb8fef8c3333d26f9c73d1ea6b55f7a7c03490a83fc0a904039879f1ee117904fa23091c4ffa7f703a4836f47123f2c6ed4a59fd495d785f124d3ec6895118b2f62696daeb58519dad1f3079d47ced2fc9d1f4d2382b1f5fb4a2cb80009eccebfa28d1647b72a462c77f8092643ce1f02af73964a2fea17003d31fdc5a2a88b4f539621d1e827341256adf9aea42501d0b230a0c680fe33facd77aba90076e3c4f80e8b63015cf02191877c267f0309769205a03f1a5bdafcd1f0a817119ba3773fa061ca898f80f97df1d11d607fd2203a4968ba8f5d8ed41a9b16973a3af7fcddce59d7b24f8d33347561cb2e12c7ee0e7961455ec3eb9fcf8ee4aac509b0c0e680ccb687fb4dae03318ca77f154e728fcfa82fb995c0ad1f0a5bbe03ab22554fc0bab00d05f1e386080e0c0f8c20eb4b16c828148291b5bed33a36e4333229d2769e596353ae4ec917d08d41c8daef18f71aae2d2da608b3ea469df56c9a5a3d6f35b17ae856e294a754b13db79c66756145dda1506cbcbbb6c30f953df1af1fbd9d5085f7e0db94671e3847c10552f3d0f00dd682517d40cd6fc2edb02e85403ef346d09aa7eb207d6690eb490938f8adcb9f753e7a05e0ec812bdb8ec2b6da37f324e463ff475ea4d246691b4edacc6b21d8613e3e01b3d984dc64d0eb31a6dab50a1ef6be5cb2e0fad64bb4ff7f0eede313b63a8dadbca35619b41c926ee29a3035a1fbce89679d94ed1c764a11f033fe308b31732d959405a0ef3362c6b3de3ce9ecfdea7f418d172c04b4f4b7fae75c153268a0bd646355292db2098390bd4fe0b51c2ecbd5c678a02185d6135153653d0a32d09418acbb08a2dfcdfbf50e72856cc78dc0d4489aa563e2306c38a97e42fc46b50d824701d01455d6e461c066419509cdb4d89842b4cb3e8283c31392132403051747517a7bacb83c7a27a67b1e0778e276a5f502c6c5a6435aaf006f8e5c2c07ae0227ec79656f9f937b7233e33c3dcd82e40efde94fdf6536be40262ee01227df28ee324d0d6b1dd6a1de9bd547d58332dd1b4ae10dc6b7c502f00b4d06efdcd2e270ccf873f3f24d2333ed42a1ef45790818b64bd159b5744d5e316f658101766c0c07b856b28178a283c5b7698094ecd69f867b124fff3874a29b2d9eed2ce818135867668e9ce532b7990a2c0caf92685c6965b940abf8b278df92e65b6b4fc5080b439b8731533a99ddc1691629e5bd32c7aebad7a2a5085160f38f1e344b8808e308695f988abf1102ac45a4e35ea4e916c60d97e2a038a8a0dcd36f9aa2d49e04a48efaae09e489c3f6fbb350191a135e5933cf053943f36cb23c754e7d247da4e7c6a21202dfaf9ba6466aedd9f31cf0953e848b2dea2882588f66d0c2811dcafbec4d3ef7ea3584c428c877eeec6c6f21845183573ee749934cd124790c682cb1e343c917d2a81e1b2a07018ef9dcc5624ed8102fe13de2fdbb0a2db1e12f61a86c851e5b6421dc507c3b2033d0fa8b708f4a0e9d9896ea0f597e1224a85288e44aaa5fa74439446f6a8bc4800d52bd9a87f3a108330a0730a4686a074f0dbbd9e6175d1f6bbee0fe0a239aafc9a5b94255066f5186a251497817fe9b6490d481f33ed0765b611b7e88372665ef6243202c18100354a12a4abb8204badba8c740788c2e116e1891bc34a25e64eeedfb6cd59b123ec9fa393eaedcaab1ff7829ed8f613b85a5b3036bb540c72563d403a639c590106c07c3eea71da60d15177a8491a6e526188c9e97e5a221cc904f2ed11ed03a277af36b3442b9ed897978b9441fccafffdf9016daedf7e68d3fe2607bb9a901a78a8e2133c54b24aa0d94844d091f8cd9f03490e1fb9d6580c5bd24072f9f9de26cb16548529fb0952bbe99f882cfed152c845d7155bdfa3fe180923c27bc7db382e6e81410d988e2c53ab38e50156d54a43d243e7d0d56b73a596d614462cf4be5f5a5c80a7f60baffd520d69a6084111207a62585e2d2f69c57f6238a4233d61c1c087ceca784a8bd784883b8ae1a4ce55de34a0801997c4a9960f95c365888002ca3490b66582cb05a7448be26d72956ef72b712633c97fc6b2be06d04001fc5e5bc5b77f001e38809fc362781774b90b0971c1d69ee8e38127d489834e9259ce5d282dcb1e39e2112e49603807074cea9854ced5b88458bafc6af6dcd9d7014dc1310d4035c109d0512bb9a554dbcc647c91352a6810de4ddb07a192f1e6329ac6e74b8314cbe36e60444792fac72aada84687ace6a5830fd968eab257e46f3eac8c22863c0036b9521d542878c80084c9b888a57c12d01556117a2631b800f46241c407867fae8be31226c398d8dcc8c3c6c98ec8215803dc05b529222a155d79ef7ee51034813b82b1c492d402ae00ad09db9ac919501c84c704196bf1883560bec1c34c877c4efe2dda92d2dc915a300d98bbb02f6f24ba1649bd6ce72bbdadd4aedae82251999f883a7dcd48d31fb6ab8617e2d6d166795858e5d99d04fc4afb167654dc907cd5eebeb29808d746ce317eb9696453ea8bb922471de23d6a8fb750fac5956af3a90bbc475bd4bebb50a70d619efd0a7d7532b363365dbaa3b16ff3e3455690a0f9ad0758b1420d3bcc17a57c00fbacb3337874259e8f0aff51ce22e09161d80263b5c6d1758e84e0731a869d7da463224083bcd0592a99489cceacb8bb92168b2d2ea2399fb7498d0c9c493b778b5b58cb0de72ff06d2249ca544ed9329010333651970ff44ec5d3fb94a695417b1a76fb5139d4f0f8ff9a0ca5c6649ff188891dc13702ff501e2c1de5e7378d5a24b39b6a2cad6ea00a5f5602239e6f1942168cc2a032642ac708f2b34e4757bea425c1934bd5d1331a99a0358dde18567f15f27852e8e1568f67ae887b423544190d6244a4d3353b555d1051bb3ca946be667cc0299ee9597b72ceeb9e9b6f89651aa5e4e2ef8067b90c57ff2b3e04353dcc8492feb20b159db4a7546f26b46086c7f79449ad94af381c10d6d3368468b9f10e0eb845cea84614aa54de8cd441bd3b879a8ee0e280eaae6eaa0c0df8815537882e2256ead5235886f65e2c29a62505e6d051d42f2c63da86109f30145db15407a289f7e12e6d35e6ef921fcd3d622d37d3b2810381d1b42950e99e1051ff21b9241c19ef63c0457f3ca1c0c1d84826a0775b54ed516a8f5a6c8631248a1f61b9e3d4ac69a70a0a46db80768cfa5959a62a2331a8fc05aca8429ab8f68edab40e5fa8d58ad0bc3faf6a96e6d60d2af756ee1841e6fa6cc94722a46effbc34ec0a91d16b811fd11c2090657369a514cc15963907c8f8a0bc28063532869c41b4f12973b6596068d8bac0f0c15408b6edcdb5a067d040568cb2ce73b7af4e3d37b4d5975c89bbd01de1f25f12001a2333597853f99d675e041d0882dcec9de5330a82559749f04cf2c0344c078ddd32dfe9d73979496a63498544181c19eef93d69630a4e73d116aedd6f3c31f09657ff8198424cdfc9a89fd42ab58eb7f3d186b567b253fd518f7e5e0e06f9bb72e6de84a2143767c29396dd3c22464fd0e0dbd89bcccf8ad2658d2b02d636132525c49178b02470b8bd458b0efc381059b2dfd0522a9c9139389b0e675f08c0c279ae3e89ef1f2a569698cb10883997eaa9275175e280ac0ad1d9d639809aec82eb6fb1832ba77e54a6690395477457225e656aad5dc26dbe81ac7c898343bd8e13a5ec6d5ac8a09ffc078791b9700887f3bd5214f1c754add90c9179f2fc26c1747b86f2e4c3da20e329e7fffed15ecc16c34d6e6affac99bbbc66b4c89ecafca69fd845ba12dc0da4f643575fd566bfaa9f7d39ac583db9a59129eeaf4ed49e0e128d7ec1f1045e86355c9c7e9d31d5f567ef1387b70adc37661689aa5f1409d3f5fdf1c51d60fd31d0b7bbd8db8e20f0763e96efcd1b0ea9c46dec7118f0825504e9ff7499db774da5be735cd06efb1e2c35a25f3819cb480ef4b41eab50e5ca29ecd6f7f91d67abfa51271106d65ff1efc4f72c6277970d92e52f86d0757df335aace4330a588d457d383e0dd7823e9fcb809e3c38dc539ec369b201eb0d562a586e38c75d1ae43094087092ea1b5379c926a18a82abcaa6838b3cddf4d2c54cee8c3dccb60bca5b8f7678aa6d61c4ab27f4ac5e7659e9981cfa4560dad92852488e81c96c0a3f115fe539e6c12c4c394d51ba67191b63dd045cc3607a589070702353e14528fd1d6f76a7763160d397b7e825f7d401065ebdea33059ec8d1c002f881b0f41af7ca3b05ff9dd86211e51c95525c3916e0a32b14cdef032dc08a16f4846b49ed37572351d43e965f5c980ed4c3d5707df370f6598039675738ac7560882a8fbc73e7e7a36a61621e7816582d65bb7d0b9392337b7deb457b976eb1a778cb10ef32a059d464d215e7bfbba46b78f25dfc42c613723cad8a44aa341169a5519ae4863dce160c4453064c42db604a015459e158315f5d0df8f0200e28c5080c4d7fbeac0cefb1cb304ed424b40ce6da9950d57929d56ee9a3b34f28d95c9c2644c3cac2940ad8c0f356a4c292978aaee8f218c0f7360c63e98c76bff521732075d98b6821fa3fe9b319aab43afde27c3b666ab0d28a0d8bde98c49852bf7b0ebd2223ea5d8a4af9f6015d54b4eac9ec22c1bdd71a5ba8518d28a1276daa301afc55a1db9375b4fee88228b210ca9133aa9d013febdfc9f800f945c11e826203a167c76b0295dca61055ef24a045f548742037297962fb17c2dadc3c54ec54114de095991988b23139a349a801cf505b5880bd0ddade9a7e00a18909712af9b9c47006234026494b6362027c963bf292aa789684546eeb1855ad55d12042886d6e50be7615d3e05360ba6a9362cd423bc05680bcf7e95c3b15ef0442bb19f9a158eb744f42da7947f052d3e6a3d7ff8268b8b5dd31dd8800f7548b5a7cad94632373772a5efa52f1f51045a9ea03cb2f00306704a359bcf6b8dcb46914f6c5869653d151cdda067d5258289fcda4cdb685d16929ed6a4b11d9e6bf670b9dbcb645096be69b2832e93846637914209e5c72bd233d80dd3e1e51e116c5d5d1bf9dafe7ff564a8a4c3640afd9ea05f6c58abf5cbf75d81f9aef0a889d1609c3c3d88ff5c1b8278cc16ddfbd9abcb7eb0198a54288c6d43a3d0131debb441295ec7f55b7031d17b69e0659b15138785ef7f0ca7efb7d58fd038f80acd1d078a9453a146d80868909fd23a08f252877fed1dda86b04cffca3e2596b70e776b8ee6dcc549218e51d58b85fef9e63812d52a0c8dd7f6e24e911c59ba1274ae100f4776cc8381c6085e23be925295a076654a9892bb5e8de39db4426fe0dc4584a62ed56decaff86c6556c5dac18284e0dcef115187196d43cf560da77910f02adbf3ea21756a95a1d879008967538c4dab1bae6e21a0972c944d0072ad879466a316c1cfcb2e4b00554062b5e2eae17be8fec5eeca32a58a0497797189ad8b24b51ce4328e957c3e30f627df3e6bb0efb71cd4bd47df8de3e91f9893af5991f8437965355f99a71f7e62b80b40bf9c5994d7576fbf6b5270cbe2ac3a6246f116acbfe499a003d7f0da22c2f34c28ac7f9a96d3fc1c9760ca37dd08bcd7edae6a3229c912c5a899c8fcfddea3e08ed144c5cd3f4cf7fa92e5b2b5806870ce593fd137a64d75a41c40ad2d0705446e6a96f5239e77d4151d6dc5463328ec9e115e566e31264614bdb80fe9775341e0ab1c9aa037cd8be105736d471016f1ccbd353f043f316acc5c98119a0835b74f55882ddedaac2e53928b5fcc4d5c5b02879c245460ad2e9a74775bdd15702939a3f9417b436a4783de0bc45ea22701b832452780f4b52537b543eec4d57cdd37fea413d4f8b815df1a84746c71c1b5f57451fc560ddd61ee237b4c17148d507244dd60125ab1ea4c2042a08d45152d80cfb07b1bae13ee891c9593d2d81bce25f37afb20a4c7973fd37b746213f326e0d0e3f338d9293fa2073030653bd67a9d580ab4ed9a9f6ea2104324a612cefde7ad043a85af9fc6573a98f190eb1f7ebf081d62148a58cd2ddc11a769809704b7ec623ea6605c5ee9bb0e58f0dd5041639ef54e83bc331edc58297123d27fb2a0ff284a6c8278849a0a157305b7685160469d764072c1ba63f386e50c6789b17474f409d96356845c5aa05323c4e14f5aba6ba24b44dea3ea95ffa70e42b8c63b5024095f8cfef02be1252fc70065175a5cfc89bf3dcbf71061f9b6ca741d82c282fb0834c7b2a35fb208f99bd4566939616b21720edf5d72d7581ff194e341c424e797351b745399da47b1e7c73fbb2997b1cb2ae4ba7baf2f4026f1f932e3bfe47c13fa0fbff8fce766ed8303e21b7dc13dc98b8cf83a83b1b190c0591f0ec36d6f11179ba5f4f18a863883f89ceec1f4c2e8ba1cd5f253dc35067e36e948180e00fec9d0c00866af51567b66d54a5ddaedae87b0886965c9bb40a46191c439eba1cb2c79144124492df5b0fd99fa78fa1ab41c8b074a0907d4cb377ef4891d07509a056f7bde35d19464ff7a3092caeaf99374444bfd1284a5c5d9ee4f4ec6c3c5754ea4c4b921244599307e28a2c2ea5ce02bea799904c4fd12b75068dd10ee9324210903f2152c5ad3119a7f11a0fddc99de0d2a3568777720bf5c8db52ff113fd8b2a71db0f87dd99b4ba742a6738b759feefca62c26a5a4b7e9c7a0f37b1d6b9cb2060596c5447f60420a01572fb2f4d859382cf3e718be661164710d42bd90dcc771281baf425d64fde4406c048475abb278afb3282b8c4b28b454742ae03f38c8288dafc02d82cc0939c7ac2fa6472813b417bedd38dc421a121055cf96ec29f82501f94da51f3348ccc4450e091557b4f47b7aa58bba57ddb4a6b629410c92ba61a1e0ace90c487e7fcc228c7afdbb8a499bcd9782594dc7fe9bbdfe08d6e59eaf032111536c6543bc0766c37e42a8c98161000743709820220deab225a3bbd6f98bc8d678daf748cf7965631f6184a8a2b4a3b5e973ac6ffcf136d0205d4d9a2c61de7ff87e14ee573c5dc55f88399e789b26dd891aba57a679d5ab16a5e8075a6c28426842561b442088de5a889bf715d3a93ab95e242051f371f8921bbccbc1de637cd244948adbb931bc9959881811bb86a24e65b2855bbe99d004317f963d88d244597de72c76e95a4a29531a11c904f47b98182bf547c8583303fd7cd1d80738c3a5bfd23ed8f183440f89a68dbd19b1a471a8d25dbafbddc240a2e5e8a4493b8e5c9703e494da31ac0a355bdb480e75320258c5a5d07789d7e2307b8f0f4639336ec199fbd4e41da908d47ea32ec7223f583398530d6dc4ef73aa5840ae650c97782503de30aab5735999a108b41105d2b00d6dfdccb08dfe793b229fce4cb36853d3b6a331c98450f16a92c86510fc23d5a52fca9e4914f560194dd81127d3f7cb6bb4d2db312c48886c77f112306a53aeffe6eee9f01a6420b50cb091cb893acdbd704214b9e64cd536b905e6067dda1d4d9f7a735e1dc89a9ff1ae093ec6a73d2be80f18b577229f06fb87a81d861cb1312a8ce567c26ae02036d7d3ceb5c50b7584c5db5bee79a6ef2593c7479bc4b4c2a7cae004db6756d2310a29440c16ec7ae2a08fb53c911307fd5f13dfe290ed7a7030271d489cb981866441fba4a916a7da56ed7914b65b6d35b85ecde1cfa6d39ef3ee6d1dc5d80ae3c2075d95bdb200a7fd151c202c3c55c59f44ddf5e42c3206e5696fadfaf5f9e950b4d8a7f6812f2fd80e49e47d32530c67ff4511abd555811089c2683b5bdf5614f8143694287b2093fe6d8ee198b81776460bebaa51008bc67348148ec1fde4ad4998c8ae7ff3150b83162f6ac38db8a10bd91136dddc684d88254a1300c0213b9e792f6a3a44051dafa1b10b086228a560af080f9ead66e98cbd0416b185123015e2d1706fc236a27402627db0cfa265b6439814b2a720b5eca822b4ef5b85d2be340cfb8b0f7f383976f1c1eaf30e5b46311d822942b7b1b5476039749106f67c081da75be05522c3602174f5a94bdfbc500b802def93eb194549194557e8532280d571c2f4fc0c8508cb871ef060497ba0456fc7e4b9045e2921b85816bcda49f9c17591a1b5ffd89b68d377a968fcfe58917b8d43591fe3c544691e89eaceb24006f2cef5098b36c506b0e08176b805973858ab4d31ebbe1856d65578016d8aad123f173e0d9b16c355da329809524920bda2fa66adbce1a9c49c98dfac6ea132323f83deae68e67b4e032065e5568d20924e93e6013b0287e94786d8eab786a813acc9fb32cfe34becbce26de053a277cf0f176ba8546199abda0cca9592b046ffa3187822eb88d8f4b844528f42f3de7127a4f5d802128cd8008537192cae3d9c2ab12f2cba235c6257ec6213d2789d047b345dc11163a37db23f8130020f3b64a7a7bb1370b305dc287b35b62689f16d131c090fe37395aea58fb0a481f1ed0a4daaaf2f94df8b2fd1cfa4f0249b75d323696d9043771675efb66e711c647249268cdcc1cc265b29d19670497823abe3d148617764fb84cfe25bc4b86e629c3e9f9307aa0122f288b1987608110c8826c4c23716881f3fc1a0683a827034981eaadb77d3e3151d2ef5d7a6952164d1edcd512035aa06281006314cb7731933ba9be801e275d5260101354502dc4d5f39c5024add0e876a097b9d350d6347c284b60c51ea8c30aba6646b2259196b7d654a333095648f57f00238b0e799bbf2d5352abaacf6552c9244ad20cbc20a17ba5d716b9873c82c1fcfec61a6434733b477a676823a49b219ce030b95c4e7a007e69fee55d683b7a58a33d900c0c99c33e927f1c808ce51f0cebbb5183c3953b7ab2431e25f5739ce861f640ca94f984f304ccbea6386d10df8f6c8499e64e1829438c6f6e95c9d25f292c6c38e4583245f99c5e47656a10105344ac9809174042d13f71f3c5d94f337217659222c18d6253f6d7516e1d79d889fd3b6fcaac8b1d9f907565e7bfbb328d477b3de45f883a5b0d8302413ca07aee105d9284915ce0bce06f63edc9d60afa25fbb2b2d708044659984a9c42db48c160a76ceb9a35a805645594a37af80aa7c7dc58ca09dba40b0daa70f2c169b6cb3039941920a7f2a8fbd69be0726cfe1d68ed15e8bd5d9cb38aba82abc9736c3fba1728bc34188035d08de095c04dc6c9be2853052825d9e7856cf0e0fb79217658c4c88caa5c44d0d7906bfc4fc8180fbe91844ab025d5708a4bd83db51e6e9806242f00703d2d15ec9e4751860cf677bce92232fbe8d971366e1a5abf5abe71580378261efb3b5a158d88bf615c3d7d8cc15f1fb1e9bc3f2c24a833d108b15ab24de299eb8b3d3d953d5e264fe41264480f50ed67b5b24bc7340288166bc999694d346bfee7f5b50f83b09e58404ee29460ae89e21f0d3666b2104062f450405106630d3caf98f0aa0f3b89a36b9616b1666d477e3def66eab4e0294ecee7fb3978bd916f4fb9c67a18fbdab14c40eea4ef078991cb47fd6a432f2ba3647663daee1343c11b19837c89503bc45aeb71088fa32534d5a44c22550eafd8694086828b0ee4d5d3a45c007eb35cc3f23141c5aa3b40b49d989cc42b73f3a4ba832937021b4b013be0de47251f6820a4058e3043e1cd559d06cd3e2304eb6072272d5cc248efd9eec5efde0146d04a765490f7c19c2f40ac066dbd74a13831c46a8e72d9488a8867ca4997ea3ed9de80b87c22935e84bbd3df242ea2bc1fd0c91afe38c4ae4157e141ba27eb1dbdf822ee8835b5272d807cabf8d2bd0625383c428eef21d4df7497b523c61620eae6adb6e14ccacbd9e49d93a940bb062bbce0c50a83804a28d46c0a4c9faa2314de058d880ced5cd1eae3a45822615885ccf82a582a0901a12b99e9988fc9b4ed5547497372da86289df7acc43f92b920ec88d6d5f48ae481e0ce369bc0516ef1d88f78b33a5812d482f80befdec3b198a64aca8574ae63a0f2a6cf6c258c5f8d7c2b868b021e79b5df89bd1a4af07871caa12f78532285e29c983b4273f6ee9ebde6f51711af120615e5087c6c79be78954f123a88b1d18aaa112fd4aac634b183763cafa95f37e21e100d49717c454540e04dab7bd40136db1017fcd6787ca052cdad2b108078a052112acd77113bb50c0a33d5fe696514b3da1b07cf52a85e6f72b6d1f34a579449c8c7694ff9e0ce63c1083e0a91ecb7d242956a18125effb3594c32017e1c16727d1de0d51030e2e6fe1705a893eaf709fe9896c4e0cfe6cced6c50b91de4210ee65b2b36516216a7c4fa9083dc3a57beffeb8c55ef3294ce05a1f1cdfc9be4d5e41ce811513322e59c8469223361d06a28969450c6eea902a6b8d752f16b581907c2cbf9ba9d78e602acb28be6c87c8243383c567524881fc7282b724d5ae0e34694f328722f496b18a320b6ae12b0245869e962c06c7716b118cc63c576748b4e3706145b61e4841ad32e3a3c71cc0b8d87b10c2e939197bb839aae49f947b04357863e3d2d8024ff678af4d58b8646890d8a082b85838cb59786cafc38c49b4dca417b1c3cc1e962c013df8463c5cd0ab0aed922fbf6f94a2ff70fec113dc9311a00047f88a5acaa628ef68548f59e88ea86ad0136c4ac42f24b87ae55317b19b6c7a7e4c96bba88b8d378e166d79db16c8c81b2b372922ba9f563702e2e8d2004044ad520b49c604fcfafb0cf9b6094006996c26b132ffb7f2b788696ce4eb51af18cd649f23bba484ff5ef888ae929dc8a1a399407ad8b082a99b82c47662bc81717a7396703246acc53765cf927cb7027b3512012cc98257947ea986f5768dbb0ede6880648ccd83539e458ebdac395d1e62c6674062f919968843d957048101528e0242febd1b113a446999d5f43760b374441b34083bc11be544b6e5023f875adb9aaa64deb98eac4963d4edb819dd8a0c07b9888ddda59afb066e36daac552562d55cb783c7232b9b70b7921cd1f04bcbc122eda7cb57a7f0bf679ffaa24565dc9a0837e72e9d0b4f453b4e7a84e90662fa908c8cda624dc13a0b5daf84ed25bf5f11ae8b9dbf7cfbf4dd83405b6a30535d18860b6e82852d993b6f27698c0810579a688a91c62a92771b6295bad71b970e4429024780df2feac15c85bdb8acbceaf3d766d183a17101fea325e8f4f57de691376ad0a75bde031aeea960a3e6b756b88485c896b45f317ca4f04ef003de91f6c743326d1975fdc658c3f9da9e8ddcc35d1a8bd6d7dc996667f560ee854fe6193951c173639d4027fc50231e994a604baa8e6f0afff0ee23a51462ca68d318a507a2d77a168a80a4eb986d941c7ce6b7b52e4937f53f5aac21a888485c606f9a73e5ae6ad353b9147d2e4039005931fb680c58b9bd0efcd87555f067113521695d7a41c8788ac56a53af03d9daad8c98fcd9961601cd8efba1e627cd79453285cf852e3c3025b7a29811069bc7a22b392f7a9ac37a7be0b271f091ba851ac49a1c098732711b5c1267678495b0fadd7607c3b6f5839294a8df58fcff75a51d19d4ec9bc884d23f555aeef773557cd0488c17ddacc7cc0927a39070adf6351dfd2b2990a0081e0cf109fcb37df8f2f0658a4defa97b86aa07b2113401db01388932febe5ee9331283d3846da23857ab7623041ee977f6681230a249adbf8e728809f7b54047a0cfec28a5064804cf69c95a8178cafad55871a735e3764b5add681007a63e2a4a898f51421150d36bb37cb816de343f8c1eb7f001805ea3d38caa8866dc93b8b6434c8c31dfa5f536590e9a7622fa9de6dc2c8036ac86eb6cbcc07580f40048ae3131860e98e09c3ec7a6346ea87a68bdb29cbc03f4a9199a88a5fba827f4c07a2a2f8092c485a8596c5ab45733e95d7350c7c66d371828fd638fe32ffecc8b3f12bc84006b6cf00448072f990a7a5a0eea5dcf2206ff43e6ff6fd86014dce7e80844ccc6c9be8c16767292738e5aa4dc801b2043983630c4eb36e9b6856c78d2c9a2f0a9de611dc1b3c4ce19689898bef5da1fc13cb15ad4934fcdd4199c7266c4fc9d833fa214d83e5fb8906c75cfae85f1679a815d34dbe206d4ba0b8bc8fde96eb3855250d87fc0d78b40c23880cee200aeb558ac870308da170a3880b960d27d03b82ac666e9e1b57f186ae96cb4031bebd68b055e1c6aa19128a3214119c97a3e555477991845e4c4c4c0c38dec262100fd043034965d265c010dc295c1be2c450a56f2c2dd95641911ffe4157701067d83749478e46b2aaef725b9079cac774ec72c7fab978da6923a133ce771412d0c3d8651c9afa401fa6062824c95c9f5722a1aa12b80c241201c9f570c44769d82e3c3f7e5a22dd24d8f01cc55659252dd1ec08987779927514f84febebe99bc6179448ebf8952a649d512a7940a8c38d06340351b01e9d66173ec4b29eda3ab8a2bfd6ff74ec068a1196667b80fc64869c250bfeb3c427601a3ee7a25f6d5793d0698deabcc19d759803f842129ae0a0902799961c4cb3d892241001701014bb19c9dd18cb887f8d1892ffa4fb4c9f0f9c00657f573ff87f63cdcc7f1f837a8e0e7651bc5579587443c40f2357340e24a7e86a1f5e7e5199493ab2ea4084929768aa8cbf38fcbac92bc879e1e3a921ed77313fa12190b76af7254667a46e485fac25b0a5a2b4810800fe945f3276901430e9742257f2397953498aa1ab992e5a0eb1b9f42a161747491b163b452c4c87c64f77dca39c060261b80034458a703a9fb39d85fcbf754aa76a10f96b7c6f96cc287a31d5325ca884d2812a902d38d7388ae396ada0278284a80b07ca65004b7aa33770d0651eef0a2c304171cf4cbf7fb46f73db63921f81c3f30fdb6ab9080d47fc3bef8546a0eab4b8c44641f81839e1b81656e090a3b5c0eb96e867a026ac7623ef57932099980dec402e885feba239dfed4419b1ffe99cba840e3840846d3dc28736a815d6bb12e53378e19f9a21d2c89f51b5a362438047e0d5bca0a973f5e92dd115d0247f7f82aa604bf1b332619213024ff2b27277a8e4c9dba385c7b0d2cc5a358e172a76fd6cd6e9871f47e86ff411982c277e1b3331955f5f99feebc66d3a3fb5e083cd8e002d733def05f6b4d92cb23bfee013fd463f1a502c538d927e7e27c408133061126e461f65c9384cf472d38d90c883e41da473c663ed6607706ca410b9b91a44d704651e1b2571fe7088806fb7a39e5f26a6f3a48d468844f1eb8aca03c7a3af6843b752f385b17837fc2e708365480f6280f32728a3e50fd7bd302067f6a133f3945d2022be58fbf28d24bd38679de0d9e63517e69c4c18568b1e58fb4ea6614585f58e42ff39e2f0d2c8963f39d2bd0e415897f7d99e1da03e2a328c6900ca02aa6a76f72f1906fda068a07db1cece80bc96a99d1c2dd8cf83ecd00943922febe8b2964357ebcab94e2fbee743a332349db04f6b5db39405d3628f5b1636ad7045d756e01a9d96c5042111f2505a4ec74bf432bef2ed8107a6e9fcc7dc9aeb6d6fb4eca47b7f36589eafcfa134db31b510ffbd594d07643acac4c6f01cef7a39ffa6b46b2d74401f9eb380d09e82107a465682ec8c7c2294ac04681839b1f8f2e00ae17ad4da3d634e442cfa0c474f30c9c7a800e260fbb18433fab240e5bb370ca477d7059b1e3ed11dd32cb9c4aa54350fa11e1c30dfb4c855e33458404718ac48f98b37255ea669576529069b94815b53f9d778ff040bfc15832bf835cbbfbc6093f95c0bb40a0325cb08c11f810126ba3ffcef30fe236da566969615e14ad844f13ccadebfca2ce30ab35cebb64fa487a1500d3aa64d56bdc2c485dcb3158a9b515565537a2842154b481f6ad5d7726618c6eea6372dea6a8d6ef814fbc7a80b58849d0ad0ee57a6fd46963fefdafda80feab85b3c0f69811f27d961949ae3136a704592199efbea691fd80bb5b9c7011134f4f22db1d9f69d0e10d41611d9f516f2ae9a5fe54805768037edde2910c5f714bd25ef030eec551fd3aeb11bd59ab6fdf2b4c5c4177c71627bab1f9fc023b42b38043a51996f3783e49408c7e8368fbf88c3a94a3a651a70f092055350ee437217c9957d7154a2aeae1d614a6238965a2b4769725dce31469f8e9de1da0f4c1a910bfa430186fb0c11e3cd353b33fa67281e4f7dfc19af9b365ebe7d5ce6255f37ccf888f70be40f5e032225d6d1ca5cb653a3221bb5ad0c7fd477a8e7f333b23828edc8bbb7fedc54cedb817478446f4392f089686262f766d92d369b3a1417f533d226bc2703593b7ce963d202532b67a0e78f4634550dc9f5c0e6bcd018c4e20c7fb78c86b3ed6cfaffbc0f08edf3b637fb99cc317ce6d2ba9165707aacaaea2b0b96b33b25141f223626d41980f593d02e432f3cdcbe2b78d87cf3402cbb526ce7475a905e4bbde3216ba27cad60cf5b9bd9de65bea062da95432111281fd7501b965cda095bda87fa8bbea77be01b2d3d50bcc0c723e63580e802b6542f57281f72dd89c00e0cfe95548cd497570a3040cbc5ccf45a4bb0d05e127a4f8e8e6f18a3de05a6966f642f7218af6aba2345d3809c9802f3263603d7d56d6036ea8095fed4e904b9cb0644511f005020c24c4a3bf1c581192bfc6c28e963b8482d7210332a8582f62cb9b500d3657cc76f81b23526cc541e85bcd8884ed46cf02ad8bbadb678420ca4d4407ab041f429d59595f534bc46585591f56c701f53e2511c48f55cedf69624b81cfb3e00b88a5d40b8b9ea766c034f239b5d73e89c860dc3c75728ac4cc4946ef2eab5b21a426ec943aa97c30956d4a3a3aded7b0277e049317174d9ae6a8006fb854ff27c2dd5f49074d691da43942006d7df646b2c41a49570e9b8acee65b746c6b95740f694e1e2b57c905184c07807f1611ee6d0f349322d45a20620a6c4227099284da8876cb2200d464c2203257a8310eb2a537193f5fcf791038e8835c02ae04ac62a87143cb6d4e09889aa2b1492db6662c8d08584d7d3696e882887667a2a7ef7b9acacbd5223815d164165637f0dfc6797db2878451aac009672feb1d56408b12666d352344271c0e48ebbd7755ec4e8558ebe38b5b751d5e26126fb2c08ea65b187bbc1b20689b910334095be4e630e9e772f26eac3ac5a14a5711ddb6c922698e6799e1232c838b34f010c0b7eb22ba822023199f9cdbf83e652985249046def5a4fa1ef3067412cfc32fce2574d2f45c3edf44ca62900a9c0d2327b24aa8fbfdd8d0e29f8bcebf1013db07adc38c6d2c04e1a843229756fbaa5782fa7df037f6c39f602afb49e98ccf45526155694036eb3a46827a42624bf57bc648aceed05c6c7ffb2244fb589e5f240d0f5084cc02bcc08725e84c3d84d971ed471f5f003df1e66c95974517abf68f03fa0823f42ce4acbb6c8e6acee2d88c91906bb114bd249c0953e41a0e4ae4dbada8d985bb5417feb71b04ef04b14c37e390e1f9aa80586d2a6f1220ff89fead63ae5ffc4f7ea473e5732fd740e570cdb3c35114a8ab92c4ed99866ce02300d0aaa7dae5d6f0297b6b16fc73fbd7b06de22d8ed18350b796707477764807bf400662c1e7b29c8dbf38190f1f8fb9dcf8602774aae0d0fc8ec4341a7d1dd27801fdfcaac3b2548b125cd6ed48357c3dfc409c3ae9d5bddc2952ee73a59e774095ab205635e996766b28469b7135f9371888594149b6fe7e0200304acd79af63661058ae39b3879305fe2ed1d44615b72330cbaf0017864007438a484c6228ee897c266aeaafa0849fdb0fbf8aa8b2bf13f0e5b7b52efe054f3a79b14b4532d04f402391645976e3af77c474264f2284f3d29cb1699c3e17175c494264ad52dca4810ec48bb1a52f9056039c589231597aacaa238616cec6dfc0dbee3c13fa72056fa6a83fc4035c3ed3cfa23736b14c6a9c4ccadc2663fda289773abc71509ec4a07ebcf092463f75d4e8c84c00f1827a06c7c4a1d7ddf81b0e2c3427aa820b5645eb1a3c050bc85be87a3b7a5a4e202e31264a6762f58f3bcb5296c1824c2e4bcde57beacb79ce02f157323a9b18ae1f0375b33aff1ddb9ec24c509ff1b3049a2dc070a5b6dc482a7cece0e0905a0f8cec48eadab2da777f9e51ed7a80f0078bbe6d4ce539cb98e4c98ac908b7d2611305b1f24ffa02db012c21030a14ca6757309a59a5036d55f465713544339018d286da5a35a14031dc64cac4e3678fbc29cad4612670c74d68f827176c98d1c60fe134ca71d505bc22a79902db85a6d4b2e61c7a8ef05e32c5999aef1f9290bde5de724b29534a29550675066d061243a243fe7b191546c86fdb79f1fc623b92c349ed53845467f9f12d6b87adf2bd6ee6226fbbe8a28b4c722b51c11efe43bdd38c7b10d750288047515787ef5c2795e33be7f11ef791f9ae87888afc74e33b472560797a60767bb75175779781ea7290d0009e06e7006099a7ee6e50dd8e7b51a5329b26d8d3d4ad93b5515b03361cb600fd4f47eab075923260eb6829c7d6957e015bf73836056c1d4c0d7293107fe997325b27a969eb682966eb4a9fc3d6fd8dade312b0714a2260eb24c561eb680966eb4aff1c67639335b64e525a22c0d695feb9ede4a6ce893d30309c00b68e7b97adfb5200b6ae44b74ddba4a4b4540240ece9cd5155ca4dee13ff4b259494b4a3302a958aab3e97d63d54bd7e3a40639a87e3269b262aff62e59bc810eea2c278d2f73f15b07cff1b6217c052f4508b831639e0573495a75aac335a40559ef430606c32db612b0c8da568b04fd501da2e0e9d13bd50195a158d0463dbe6bac2d0766db068551ca0f32c90b8ae3ce01da0adbfbc50d9761eb0fdacaa11e9491b7580b6340f85734d1a0d054fd304c39ef4d94f98d5641886651ad7114d9571d39392d252e99f13e2a62725a52f68895ed00b8252525a2afd431c8803a5a4b454fa17823ff1d4406e8a3dfed27fca9192d252e99f038a443efd30301cf75f2a511a895052d252e99fe3a417e87ef653477a4ef7826af30baa843a8553bb7162a788eab6c31f48d4eff47af854b7618fd71889baae26bd40316cebf8e287f12dcd9fbb1b5b6de53b34ef34db9187a269d2c9997e5102b3733310f9de4cbfffe126ebdff7fb0e624d9dea21ea6b16c8a0be9fcd02fae954e59daafe0b5f403b38f4a278410fe82b7c3edbe3cfeff93c28fc405040e143e5bfc29422b086091d1f1ca22b8888ae18225a02113694055036044474c50b0287e80a22222222ec8a2088e610290aed26d0501640d910904f16239b26598c6c9a8c414a4a4a8a7d3af02d299cf1c14bc2fc5829f54635bd8a31c61819e603fbd21f04171b06981f3e85768c2325a5a5120ee3cce95395616ffc572eddf2e998673e72dfba22b1c2bf7e5e5aa93912136634f7465b2703b375ff6405d3316c038970bdc1369c77ff8cddebe2ea75c9d4197f69d93143ec4bff1319256affa0f6575bc721511bfaf8d63da396403be6b8b959876f186f3ba49fe98d56eb89b92e1d0d9ebdc1a7129215d026e1bdd8d74d2e5e7c8182e0e5a48176955025f4729e30b978392b3f6ba369d792f3535b722aa1975309adfcd0e019c35c976ec6890ad5f8d736e7d6057939961228d70b7b5c2d574b866509d50e0b4246838182a002aa30eb82768f876771ecb02acbefb02064e58de6c423d08e8527a7b2f0d49e719a03679cb820f9d44992103e33ff8c43083720fcf127cf6d174710271a92409dacf3b1e63abe673b46db5abca80d38b8e622f954ef2d50e84395f7a5d6f910fbd08e51650bee587245edb80e2d0efe09adaa8808d7b8f1e4d883f95e7c328bd10241055465a5bdaf5ec24aab191794bed74b90e03b949191524acf766dbcf8b62e48900a254039fe03f2deff3d7902e8c9134b9aa5c6577da780ca1d0e95abaaaaaacaa792a0cab79930be8618a5d75fd2faa5066dfba543523bf8cc5d2b7cad48ae3e29e3c59a4a2f633c52af7f6f7ff6890270e0569ef4d9cf1519f559f56de9bdfa95ada301a38618a52dc6b6fb4249dbee68cbb68ec2d8765fb0ad2bcdf8a50d3982a4b39aca48d73e9d43f4c33a403bc44855bb231592ca526e5ba3fac707494fa0fc106e2a7dd5e087dcdd3af956c99252fa5bb22aa1005a2fd774bd6b7c69b0242ddf9791ab4d0681a1ddc391e17b64460173b31340bb1db6bbbbefbdddddddb7bbfb767777dfee0a26c7f8348ac0cabdd4dcab016fc01c2e0e2df9d5d6edc70dfa434bdbdddddddd47853c83e68417ab574508abf736ed89e8eede15f17d5ba76176149c284abaa7ee132aa4d411946a9152ed675987545da4e154f99130139982c514502c4187e8fb4e3e9982496de97066cf1f472352a70df1edfd5e1b66b4c0b28172041a62fed5b3a53dcd7a7f656f699df5d60664b31df29fd6510babcfc2b6ee3debafea1fff4c3fa9011902447dbf3502e95f2443bcbeaf5a78f05bcf6ffddc29b1b701d95fab5fc6877193924753da591f2dadebb7fe699ddcb7e0f4edeae72058ed5fdf80ecaf4ba07f3720fdef8314a91dc46bffb6f4f852ed9671660c841004e9c4118ae0d31349ce0ebd608730205fe0e3d301391880105145448a82340529880474baa188d4858aa822aab42075218612345034506ba39f245411555ac45082062a8612d51495944aa80a6a4e9e68a0e4a90ab41a1a40903cd5a1ca3f0021e8c40e956b3350d0161eacb5f0e856487392b522cd3d608b0a2bd231469aeb223c3cf7b7d6f74f1edcc4346f2de0a3b927a4631e0f441e0f6ea2401488ce3c600759bd94cccc2ce304164075a7d475a20b51d42d40509241523dab71f6a73726c4b4b8b540ec46c7f8ef463bc6b3f713ca20a59ad5c47f91374cfe5022cf9999f96930eca66bdb6edafd6813ae0303c305edd6e72423e10f7f6918e8c38d1f43bc3e3310e6868ce49e792f7e67474a5cd01cd024b5e3c6c1c9019f5cc70a6eb92d68dc30a63ef88b734dd0ea2b1ff1b9a8519da4f6d7f897d5f830e5f58cea9822cc4ab8c648c64c9ac3aaa931166c2496eaa5758b45275365622db28a2c2bfbce8e94689ac4f81149e58249ed642a142e96d4fe1c3bf416948b9a6b2b096554cc69910f7f5949e5a2feceaa2fc2556e35fca98c47acd5c63acdb1119cd31c168c42092d39826e37cea524c6c75ff6062d6e987243d10d4431744840a49faeba48f2f186d25cd34841ed0154c12b281820b536fa699c483e2428061840152a93dafe4e7848a9e67cab827c682767d42137dc509946e54d9ae48e192403a40050792301ad8d7e121528a92787a2daa49e98938553b99f07d6f951fb7ae9a6d15f5b27a4361046d40602a7363f090ab485473f44f2a3a439232d3a80688eb5e526a8649aa9c991c63aced5258168ce878fcb4773fcde49a2aaa84aaddb2995218e0fd9b0030478a00cdf89d84d19f6f0bb07b7b79dd1efa8376ee1d1fffe6d1d92ba6f5d326db1d704ed5c747875698e69b0214954f97d14557e9475aadcf112f5e980762e2e5028fb0671704099ab857311c1bffdf3ce407dcbf19f3fa7b60313b485474b8f67a4391ef15fdcd8864fdcfd392ffbaebea174ccf51610d606049f3aa63fd3b8a77f63b9419fe6582aa6756c44eddf0d9292d252e99fe364d0fcc95327cf7356339bb79dd1f7683bc242d3c4b7961eaff2f3e0f7f7ada507732d3cbc02d9602a9233d0f05c41db470f3e74a0b5a8d130966f527c34d7ff6e403b59bba5a4b49bc3fa6a327f7fdfd2968a549551f7c915746a0b8f6ef4d923a973347af9a397d55499b663ebc4b4f7b3b3d13684bbc87a5ad9efd83a84d150e15b50eb1a3ddb2eb7bab2f5985639d3312f2cd3ba1d5b8104f96c0341f5f2615623ffca6ab21dbe636e96d679c53422bc36ac2ff2a40664be7c9cca95ab4f13a7b9b5f4a85ebe7c99d5c8979db13684bb42247562dc45dd8ee98e0451e763a73a6be6d682d5e918a6453804d208e50f7c800ecbb85a3221948232604da59551c0c6441528a10b5968d90dc0fe0cc79781f173b4fca8cd68b2932971dc649a8332143e81ca2742a7c68f9895798b7b57f839822a34cdd069e2a7c25f185421f33461059c3a46e0a2768b45851112a153e1cfe818e6d1336255b683089d2aff3defa099d12ff0657cae712b310165b0cd5ab96feb20b37c9b6b5c5bfbcadac3e62531b826999571d3cbc8b48ccb442babd9afaaea754c5724d678ca8a98eb72e3b98c22108949fae8fee29beb25bbb3662430aac3cacff48b8a0a5451791ee201ed96a88d740c57089f4fb312d2317047914d08103546ae6d0877b113d2d213618c5344582b022bd560b41b6e92465a4079083ad1dddd1106f4cdc743cb5e5813fcc91d8fa142ce6a6457978c324a50ff0ee6c626b33ba29bc63cbc84cfab6ce2217f813fd43dd403993407799a8359cd0c16d01835db78331e312ab3956a2eead0f744ded4b6d8032cf8d497a3be1b352a99f2976540dd1ceadae8321800a85b5700f071ca4db4340461a00ccc908c938aa0ddfaec00819e7982052615c26e7de06b530d0f9feab0f25d8d0a596a4739e52f30a864290da5188b1ddac90a79465d43192ac0019b103c20c84df7011b0ffcb8e9808d8e9b0cd8e8704335b00d9858b6cb9c845906d37e820525a5c5b1cdf9146633f36320ccf9a3964a5a08e664ac6b34b72bb9653cc847737bc3734c517b68cedf3799b5b17fa3b9fdf9de689bdbad85b7ce657332bc5ca2fd86765409dad59037f266c6be6d06bbc89bf7de7bbd41863f0fe8699543c855b51da9806405c44c3cca522bd2351a7de7bc7515a6c9f993b5eba7d661b55a4ffa796535a4b72ed2c57d759208cdb0c95c6986691691ec871c3955d2685e181fe055ce7454ff9c216421753cc2b3240e2a1a699431c61c55b617392adcffad4ba42e3ae07b3f7eb0bbceb404fa2110f8fed3b5f750e38a24b2cb6007ef63697da569506a2e7533090800facb74f43f6cff75b0ae4bd5f1361f5020fc7d84b92e260ccb1607bf0db409ed64ff252b95b037a752d217d0ae54e1ec0a67744c7c0861dab434fc97c339e79c8fa4b6d6c98e6b7fd4e45b3fd39786a45a5a11afd2ab929bb06d3d5b1bfceb93054f3127c93ac23ac23ac23ae208eb08668b073caaa00c9b246a5d9606493f532a533495226d25094ee7f0b29ac8fc33bebb1b108e186fb367d767d75b4c68579a3f2f0c66d797b2ebdf7bbd445e8d1895d9f5160f6827ab915c1badb1a5790e89eb443d0de95794b4899443d2a6b3af8f3a24753e6c566fa77aefcdafe64c5bbb92a45f9a6a2b3a9d43c5f55a41ad2459416d2b39b0c22e6deb94d8a5edb8ea6372a55a7274a6a64ad194e65ae508ba92bd6d05d59ca53d6cc4cd1a304b9b35d376a8bfd0185649d62903ab6aa65d9ab53622a9b45559cd4a121c54732b42ace4aca05684a89da36445a7639674cc5c116271ecab5aa5684663130098e49a693ba3a7da760edd8ace935694740efda4c792edb8ea7b1ed06ea674cca86f9ba9b5414ae9e011d7a9a292d5ac2869aeab6a7eb5a2adbcc86a548a666a25a7a7633a95a254c738139e8e71a252b482f25ec1b1766515e1bb46de3c63543d566d982104ad9e508970ad7271545f6dbbc283758c33cc69498104b7bb3f7777f757e17bfe0484f0c518e10f845b70181dfa131072852f46f803e1161c4687d7131076852f46f803e1161c4687d39fb6433af94b5f4f3ad9b4e9da18cb628c1ee17bf1c117dd428242ecaa50db990f637c2938ab39216b568df0b1266b8cf0d2301ad66285afd221824e9c2237cda253913f6f5e32583bd68ea5036b47858896da6355c17abd0ec986847a7f04259d2a924d8cd547d249250b952ca28caf92c5e2d07193f55267e6f84b431956d06ee254515bcb92b2c2a2c6d76561cfe3cefcab5ad239a43a87fe392712aa54a5d3dc696db416683771743a66e6748c928ee9829c16c7be7865d0ab6b3bf32fed593b34c3b29a9d595ddb91300ccb6ae457d39999979997d9330ab8f5a49307554bfaa52b9d2a5037f5943fdad2442d56d658c32c1dd0681d412f1e17f297ae74e08ef55756035ddb8a33714827eb4927998d82d606cec439e1543ab565d4aca8c90ab5a8551562178c95b4ae3952a1b182c7f282b2ac3c76081f84706343f81c42f8b4af969451728e4b88313290eacf0fb6fb046e628c51db40d360e2808f25080b6cf717fbd2cfb22618ff018358dc5d7ef8940013638e165744f1824d94212d28acfb244a154b44c942e9791428ac285254ff1a318a938ad57d122565053460484c8cc9c40257b2722b9468019635c10a24b6b0a206562491c28514211c4809ba8214285286809d41ca0e32202946645a54d14596aa420c555c5185501558802ef877e16a6c5605c5c640ab29198a4a2d82e88cb2845a53c8ba402b285ad017490461810413a814f483a09913f439cea38cba4fb890441557d4ee61a6c0c048e3402c143fd0994273043671054d14ea2982e6085c810e688272c00529d01c814d6a4003b7ed1cba1a35bebf5c007ef530b6c82dc2afb6f847600b6620b1a8519fe151a3168040487f692666e08324688e3c19d0c04742c3750eef8604e484348518637cf04dc1ddbd0a7232853734837c2c4931d159c6899193ecd08f1e7cd87a7a7a1cfae85a5a5887534cf8596a6735ec3385763b543be9c3ddb7faad5a7a78e5f7ca5bd752a365e6875781381428b4c78f9921fcb7bc5b27a4c2f7409e0ca834bd6acad04241841f6c7eb001922c1d763161bdb52ccb62a9b2921850fc615fa41109e368188276371039711245143e04ed4829274ea2804778f0adef3a4b63e917ffc8d5daaddae4168128bfb763bd6747309a26f1378b007f7f7d4e0433d06e7d6458b62ec2b4f0e0870ff93dacdd87b6a14a3e972a35226fc91254747ecfb5b74e622c3d6306427797c73d33d0d669ae972839a9fd4c6a3f8988762e54ea4a3a39b563d4cf9225a82724a32067250129a5945525bfaa2ab949806231c66dd140dd8dd4382957bfb6a7c097aa45594c7356db53e0a38fe1952e6bebfce90fe5cadd2f3e562565a9aac6a28c2852ff68eebd2a3a7c32db8f97a3b9ae20849121841042dfc14d4cb31109047868ae77f8d1313bb8944e6572ccc058354c841042082174777f10be3b7c2ea9e5853731eb6577e5d5b7ce7af9130a6d77aff8f2ea7a5cc5ba1952fe6b49bd2dead2438d590f1a40d4186196145130330b99db1614ac232c292c28584838e9dfddddd588ecf0bae362690e6b5e42f2acc6b97a8e4e8aa7c7e7476888a8c84f289c144f8fcf0f5011ed53a9518fc3e5c0e8f4481ffa5302fa204ea86e0e57a2124896e897b8e764d6870ae93942550b752ad21041a29ed7c327e7d3fe448b0ada511ae6a571928d07b9142251fe5651f72d2868ffdca6d4aa7f5aacf0e7cb6aae4a83546ad990d7eadab6b9cbba42ed2a7095d8675aacb61d0c3edcac8650e6ba2c9be4fbe83b05e0f0625d73946db0d3eafe0ac92d7ef7d5d67df1b75ebc191bd4c9c71df66b6283ad7468b7419117eea2f6002dabdd4502dd95510445c2286ed94dc7be65f8322ee3bbd5c3aa92d52665a88ff84de4c34d0c68a209dd64400324c25d8b1a7d74b7436f9bd07961c338d264d8d0dd766dc4e7ba839234d677b28b1b1de323a81464f580fae86132843b162603aefba6e5e4ed7beb84f2c397f139ae7bd7a044051554b04cc176df7b6fb5774518fdbdf73c4208df7b0f46187ddfdb7dd25441c86b2342685141f99f7c113e089f4708e183f041f82cf8de8bef3d7e0fc6a5fb9a23023e081f363bc3208410c25147c9b604450f0519c29761a3f78f8328431a9ecdb3b171b77936cfc6e6c517f4e8d10386156398026fe0cd0df30dbc813737553442071d74a82188aa9252884a08ee2da6c01b7873c37c036fe0d02823c58a79f6055e3f5836e03f5924e1b35015919b4ac229902b2237d512951095909b8ac84d25e4a622725309b9a988dc643096c016e6649d79f63298c5acc26466cd9c2bc349e9cc2b9bd74f1351fe99661e9802c24811db9c4e9c8451368cc2b2cc9da8f24128c8cc7e0c8d3212fb30cf3e03814d30c53cd0c90b8456c6435628b31e5edf3647309591b217990af3c022200a024115ac09e6e4d4b650168a6871bc6f0b65a172a012394516c9220b50fa2253f1416a5f1af2002651fb3d571bf3a4813e76c23c10e0d9e145a6c248b01ca6fca553cd19815e281915951596aec17137606056565860f08c52c9e5593096ac6627caa2ac862130cf26b12659545484da30055315a0982c9ad2a6b8c124280b85b292b4093281291698a2589601d5b0037feeaf17e5db49e0f77c4d371cd048c0123c1198ee18b00e100fbc80aefc3c58e0a67292364d9f1e3688c8a788da6d511549b0d0627105ed38479624eb0861ae4bb7444f3091839394b3fddf859f871eda649d6aa42a338f1215e268618ada6d149569ba1c95bda5bf0c519f01cc5766b2d22ac9e86f616fad859f2b6fb409f4ab4b13d07e560114eea6507870d7d18cb86902fbe25f05d7eabb0dff289adbca525e9f2adc24a988fac80bd4ad2150ff36491a7f951473062f4a7058d092a0211f4687b801891a9c0b3090e0409f25fa65612894df77dfeef36da1f31728bf3f1fcaefcfb16b08192f6c5a129b298837971096259fe37355599665599665591c9f2b69310e64575230f3fbfe1f6e6a1aeefae1a6f98c629c270268acb7e567de88308ef85ca6d11de9c23e4d3337ee413da9d727e108b5e2b14faa7c6e1f6464606038eeff7a52ad8f4890e0198ff5b9b698a3b9f64d46a6b2020e195c7277efd7edee6a52c260c812572a15f9c2a217698eb02cc346937451eb8554a956220b84f1766bf0dd182dc3dd5d06b6bbdb324a368cbc474aa062ca49da7ea2051ed7b8daa0c9a8d331d74a3546aca1c2a89506f7e565f58940663c648d3f2bcc35963a25e6da8a4a9d17e6da8b3a27e61aad13c35c23d5391ad539c25ccbea2461ae617552ccb559e70bccb5abce15acb2ea5c992c986b559d30668c190373edd559c25cf33a65603364b4d8307a25a8fdcb3defde5e15735db480fb3632093502eebb744c0504e42353b9fd528952aec852c11549d14a42d7db7d94619611b46b54a33a09cdb0ad6b256f2b35a1ef79522d8ae6d6f19224dbd7f591546242dfd6b5115a27e9117c27be0005ae135f588269209c52a16f6d447310c8b7c6a25b8b0a5fbac9077f810ff9044339d28f326cfb5d417cba4ef27debbeba0efc1ee202280c3fb34bcf0d559805277501759f086d51e74b42ade74c7ea31c268803fafad3a8cd67a660504c1a15371f16c7fab036bc7a8b873e869173167298944c0a26f5eeee2ed5e14a1173b9c0efc3e6ef30344d30ed04d8673162bf19c65a7c4cbb99c07602ec598b5b27273635eb31adab51fd67da5d1825e9db3a3aba0256ea9839bf65b2f010570fbf512c3cd3dc4f370eb462b6f480efffd26767f2277c8ba33beb119e58a8c44db745b9746846000020080315000020100a8784e29040201e11365d7e14800f7d9242845c1b08c330874114420819620c00000000911118a919898200fd803bc1af6462351915783b70486f39f471cdd8d64b555100b0355875db084556db1a35708678bd66e6c7de65c9d8015441ec85aa25ddb07fe594656e4b286e0bc93274f0b386958882743a2dfc211389e0c140d9961ef224174f1da7d835ffd7e9610e9f3044d1a52ce0a069ec0bd81ec15ad17b41ed33cac98166fbf6477e70f1a123fc67f9d40b4d9e792aedce3bab69cf341d2be95bfe57a005270ca956725e869c6a59c4163ffecb442462541d47314a1d9b29acafaa20fe792ab76b483d0798b877a24273f2d057b5e6f56e060073a162e7abdc8d4358047070ebd7d8d33c680612431092cdf52eb63444ff0ca8ff33b907077531fe1e4935481af1677fc920a9c29f7d2e84e4b68d72044c4451e9d786262ce7ddab4e9049f74236023860beca40b2e61824de9079e673e677ddabd9cb9baa557449141bbc01b00dc92e5f4954660293676e385962c7beda6a14ac70c02f1cd9e2819fd785a4aad1dac0db864e46c9488dcb5ef87e53dc5102e1c39bd2e66becaba76a9ae0f2fb18a7b329bd14b555b2c77822d32644e08aacd094dc8e095bb153247517397c4066c3020806f5ae8e96d546a357bc930fbd982c46e8644657ae9fc231dc8bf7284f0aad566c32680b818fdd692a05eb14d518b5435e389811ca0317eda86f0429c64c744493819d9e815702f35cb6d644987a4445f51d2bdbf73a40a325bddaec447ffc3f07dd22e003703bafb5db9e8737ec74fc4d3de1188a35b703b7c967cd8f06facb27d4de91562c3601e9fab3ae5058036a17e768ed8505688084d154ab37ce7ef3ab2c6d37b5658288d1c06c58e2ed71645268d0e8ff9e9d690fcb2d4bbad1c01f5f2f20d1711fa28d4f46c7ad349a43e99b88508b50da700c9994af10cb535351822085986b481fff34b0b07169b7f5e792e476b09fe4b0ad2b74023146ac67ea5ff8d818c634ed5541d24f777e68a8696fa73e7f818af381377e29dffd5cce1a9a4d29bb4fe63eb01300ff4499c2db6bd3cd00b134221606fd8043e21ec216dfbf1c0f0f65d8ccc37f864dbc9d389a31aa869bdf3026e423f9ef1925b37c622e98fff93d2cc05cef494f691ddae33309c9b2a987b95b22346cd95a33c740a180819e317b97f93f0f77f045047d0179e904103c288e4f07f96a2695b185ac3aab206a643177dfaa42b3d3f6613e9d9a22a67fba965cbfb169ea345be70e89863c71052089ec7ffac2cd9206909b7d34aa7025639e9cc609b7a0b6ac848c00f7f424bd1b1818c90d78042c346a8603baaa2fca50359f44dc5b823c92232ff74a79066bf757fba7ee8d0f4f3480709fd8a062fc5b172f6f23add182eb96ef43e4dd5df9121555c1cad1808d7cbf5dd6dd2502ebd223e3aab73da7f094a0a9c16cd0bfaf7414578b09597b739c24a0380d8764a6c2352829d75146932eb8f931a2ea417dcc32de281d1f733c71117b04127810c76fda531de3269ce016ac224b2cc9356f1df7102812bb9aca3fb8ca24432e16d346453512538537cc1347b5b23116be5303056396902e7483e9a21f66221393eeebf1185bba8cbcd693a73910d986acf7e8e3ead0a2864ed107f53e508ada634b31982eafc54797c5d2edd1de98df6044c0e58c9445cba3b0d0912b39eb825829e3acd01e80d8cda396bc09cc6c8e742758303f2d3c829d56398d0517faa88cfde5c364682b3f2c296b54557888f366751d1e5c5d5d63ae6d3d513079475eb0aed5a29f386d4b8163f591ffc3f88b13350bb5ec35659254e099179150118a6648973aef2f0633eaf95480fe878af35c31eadcb6c47762e0f22098f592fe30a3b325926f911f7358f944a0e106bc8d350347526bc07ba5348427fa7062a2141e2dc030ec72e30245f7f5b6c2fc103d5d603feb4d36d3cb09436db308a58815daf2e17ccc64f8c3f0d8d5f16ad6cd47e9f48f379b8f6205dcc7c847f6703ccb0d47e0ae607826dc66bd972137adeb8292e79cfe9dadd662c1d4af57795dc832265043f78d77fdfcfdc996b2ba2446378be48a4acbff34f3291813ccb65c1561e690e4f6a9b49903573b005ff243b5b0523bf73e17b46a5064f56ef97056db2c29c499cd4a94324b3035c8a3b31c8066a444e4ec1230ae69916adf0a13712905504f61ec2299680fa97c6688a2452b8633b2b59d720088f246ff691ae328e368d55a4bae15269611d362cf6e371df54e08c0fc277fa64bf270b8df14c3078c848f0e2388511a549a6a31e3dde472e9140f63164509076786fa07a5a0b4bc2ff84084da3a8c95820f451d916bbe592984775215a66d1d81f0376c0a7b635aeb3370713c8c1e5b47381833253b1c582ff6ccfc085c60d046758ab4a209cf56e9b89b6759a02dfd5ba5f4513cc1ed0ecee2993d5ec61dcab168c23c6d804521245da5e9e36a0bae5a37600f190e58d9e77ac325e6690c4d72c96cdf1262c4f239e726771582471a18e39e9b2782f182e8cdc840b00083008617ab60af1f389962d21702aec89be00d1963d2c4bbf76976d0f6629cf3e1bccaf6c1d84b18dfab13f040f6f2c260f572e0c82c9b7e08e12ef7246f65389532dedf4b2644af11c4554b85643f98bdc2d4cb21e8651f8da54a11baac5d07f8bbb095fa990dbc4cf3690a19b7654d7ab38c91f94e70c16a19c0caefee38b71ff222539838553fef31da61ea798e30eece26f5151b18f07e92b74588ee64c8d0351003635abc7023f4c8848312d952afc95f25be1599b6359e108ed8fab77fe2209972b2e8a03c1ebd95ead383bbc6e2fe953373b26fe9fb5f672a6a1eebfd53bcf97851bc9871eb3fc5dbc717f5c51eb7fe57bc7d5c515e8c813bcbdc77db55ae6871e4fbf23e5457635f5e0666634f037efca587a35b90804ce96caa1699f65d212816e83f5ab9b6f4d3c4253a34464dc9f70a87f45f160da4359702160d5614e14d37524cdd264c796e51acce74177f22b26641dbf8216bca38088477ec69c0bbe248e82edb1587790e2b8f7af09e24eafe03cce728d62cab95829f193c6cea0cd2c8a43356b42b288cc52bb6c23110e6d068632eb2a815589e8dc29020a07895d2c226739f6384142b0ec3f4fb9e495bb4a41380a42f32af9de0f6a40edded58c2cc76458e51f4058804df6fd60d471ce0addd8e4d8de8d9a608215aa57ee4ce37f32208501ac2fd5ff95bb21c89437ebb5b4b0ca8fab88496a11a8599fd68df54ecbf083d23f548030650d4e3ccadf0680bf5ea129e03697cd4024395677c9105c94fb5cc0c4c94d3c863e630412ad86da0cd00f35b82a588b185e42490fdd854efb62a52fc824de700d9bcc06c95d219426668a49c096077344045bae04586f81724cc2686967915d6b5dad89c36658be54ced5eb40e59683cd456256af7191c9dc45da20ca365e431a21cbfe97056082537f2c8125cc3d1e7a18a902672dc98f2358fd770fa1cf422255ddc0043aeedf008296f87c2a918a2e094e6c54daa83f3a3c1db0e481f44825b0acde26cee587c7bfac5b286b0f17949d49f7ed3730d8a48b281ced857cb08971b0e8566d1088531d31364319119662e6a0e683c4951b8fc4915d44f29314518c2eb55a51b850eb6525e9d5588c5317098fccae9f9819285892a6f6e800f2545c9609387c2037f3078beee3c3d3efdb022555ca38db70d4039de4f7f344b5bd26dad0650eccd43e4c3669e56742efdc5abae52fe428f536179bd04ce8b73175aaaf1eb2857a8a4def81feb338b47758ea48697dde4c7f8a392dd57bdb80afa008c6891465896a9e571ac271bcc43e67b4654e99da7178cbcd926cafe9e7919e8742badbeb0b1e4f77ca2de3bbf47e877eaed2874b3d92653f22e7b2d6d97c57fb88ddd79142ff915347a4cfcab6d64a54760402156a7343c765f76c94e2e41ca4e3f267c3a3e5d0b0152b2f3cb6566c72b524917c38fb6a7b7db1f2751d1b5d5d6e4a5f0ddad3174e8f371b7b6b185ff92a9f555c991b6d16207e17fc4d7f8f582324b888d3c2193e7141d8c5f14b49ba4936ab660ae2ae914df55330de05bd2d2aefa7e3d17d68b379eff16f145af141dc86463ed42590a6cdb96df028262e86a0a3cddc30bb086c3af90bf06c6de5a39387d2b17f03454be6566126470c01e296e930c1e4b12365e67a1817836a1eb469b9869e617cf3da7fff013904c62eb8ab84b61d82bb042e4a28fd54ed5ae8616ce4e3e5521ec2b338d1f7b342859417249724aba3515d1130f2036de9dd9d4b0d0b1736f1ab815eadd616e0bec29eedc8fb2b87b39af91071c9527be1b44a960e5e24f3bba4a53db54b7064c5c09ad015c9288bdc1925e18cb0269fe8b5e35a40af4634d0f2850addcffd85d9928392921918476bf6699f99cde3073a0dee3f7220a78a8134e9cf6601eb61554be12facef2d9979279c1d254cc63b357a5f9c01edb04528ab995fe2abbb1ffc4e364b48895b2a6b0c019a22a8fa7aa7b5732ef01675bd272ddf822d7c67386ba8a2938fd83c18a0b6cb78c6a94401189bf74538b4db0a1536441ac115d6bc0bc613d3ce0ab88e32016895e06067fe50266e890f2a52f1c5dbabd1e23fc41497af5203972560a185431d6c265d7e53c2e532c68b8223c0afef534ff2cd4dfddc72f61664db688473726a872453c942055d4927487c54cd4c8db56c2ca12da371abcdb7d28a37383beca87afe5f39d5318d69fa045009cb6283af801c949ae8d46c4fd07c07cfe5fd8c4a66b3c84ea1881a59bfe5e96c79ceb3fed5dc745dd19cfb0588b7b654783057b3849a98f34713ac6954af1a395a4a024b1e35953c8e176c26082849f37138078fbd58de65ed0e2018b5b0aeb44f722b6371ccbaa2880386091f5442ce66befcd34bd5849f9a400f97e5e52c492102b6259486a79485fc407413b41f4ec7ffa578d0c1ece26921af4f7b8a64ab2dddf5b144e2537304848435cbc9c148cfaa7b3e8a1b2bb12cb8be7efeafd3ce6f0eccd63f79778aa666600fcb60ebc4948b7ecc475c4c0840f455859cf4e924210fde4f5a22ba4a1c0fbe927cb631270a8d2f9943847610baf0e10e0cbea72130466bdd5ed3b4ca25b81ae0d4015b3c39a660753f8cee400d3c36414c031b6bfc42589891a251579f5366dda7205ba879872551f203979cf9be6729b9f9f4a5df5b2cf2bbcd75ccf14a8039a91e4f6a67e280724441d450ea642874e30856b518f130f9273ee3bac556ea4f3944ac0d72cd594c0ffba0404d53c5a78442d1919342b0004c1c762ae99d1d972f6658c00b6be3778bcd2a2c370598bb1408f9953cd72ee21568c3b7e6c17c54d4c1059388ef27070b3936a4c7e52eea3ffa7ac92e734d76a349e6dfb9b48e6fe83728d1c7af5b31e84bb3131a752de726b14f5fb8ffe190fa0d76043b169ed852a6394c35888f20a31b730e30b285721f316327e01e52b64ce02c62ca4ac42cc2dccf8c2945598b985185b80f2b0005eb5a23a7cc6f7a20db5c9324cc06dd21101d1d581a106a02df29f5463a13562e86f8f4d979e5cfff80268f06e5e6c0e79bcf73ebac58574c2a775a94411421d5598a02b94f347a200aba436c8d9338c02dbe4e8909f4a1a0614d0e2a151cb7f55e30fa0a567df97326d8549a96bbaf1fbeb3de9656a787ad5e213baae1215aa710c31052314b7faa8970792387b401740bc8a4ce544e6dffa000884e57a41ab9de3fce64b1b812f079c15d69f8d3ad2eef751b843047c7209986f67f1b97b301ab03bf9ea9ac22b4290aa464a276b22c72d05217b90f4f19d51445310104e110f0abe0f9bfb51ef0f04fbbe42a40607c8bf14236f0ec057a11934576900b0447360672a75838e234b2cbe9e80226283369e699525b848622b09284a91cc85459264d2ebf3c8af529584880377d3072e70248758fd9f28bf3986dadb0cfeae1b2304ae54a78d4ea845d09bb5ce0cd0191ed920bed1890a4384ecf5b6174a113135582329a97bfa21896f3ad6b2ccdce7f9b6c6233fb4f7c9e2cacfd45d6ef4901d21934232ac3caa21581214a9f4c03f1de978f0b6ebb598e9b22eef2bba7e686a0fbce19ac6782951fa70192d448eea3efd374fade1385acbd5d24eed3a1b9a3e08a708014049d0a645a1899a5b0b1ec5cb199936b1742c3e18087143eead0c0692d494408119498e1612293e530957c212b4675850050293a040947209542219a65b627ffe2aa8232a4a3d16820a7e46a1efa4f2d40b5895c96b01ac886f21b27836c4bbdab4e0bb331f068247a22852d7759279eee52c1f9c9d62e01c0d0a5186702b3ae051411b3e38f83584ca805f958684cfcf96e070090368e1fd3b14d0c2bfe809871e5ff192cc09e79276d828871bff73039e201c76e4622fb90d6367c326ba796491281a9b399d48adbe209fa17f99c8b3a736934b6e790810180f7830dd5f67033601fc2d3353eda0538c4b224084aefbecb6a49828b37648696fdaefad56d8bb5b6b884b4ad2833001ae3678b8cbdc411cf56332393e6932502affd23301156a107b8bc1fc2dfab1ae07ae4458e371bed95c1e0974358f6b4b2f43ab1fa3a95349a830b1b2a32abb708e93b368e32f91dea4f15d36e59b9850a819b8f971fdaa4b6787bbdbdd755e9d6ba0c0505c0331633b8068bcc2d55a31d53e2e5138a975b1c12724efe793769ad45708fb6fea319c1756459aa87c68ca3cad84a554ce4ba6455b39a356481115eae3b6db7a246633719c47091614a5cbc25077304b2ba4fb6c45239dcbace83db3d05a2ce8d79fd4508e783cef0db91753801dd465e8e38d1c751c8693863f39e150a6f1db38b4338615847dd21b79558719244bead9179bffcb9a492a9c9ca48fd215bce56157e9a948b556ea9c0774320249b376fba699e95656fc20ce75949354a0e2cc4cfa0675136346a51b5c503b95a0ef5fed2d69a864d237b598113ba847752009dab345c330b2f6c7c3d5ac2d37ccd8e74c74a722cb864775333f23a98a761697916371b26d32451b6c1c3040d94b7a7d75e8d3d0e7f9009a5297eb68665cbb0673c8c600d739bfbe0e2afcfb2ac3abe70fc1b8293543bc318856264fc72d6d1b69b5511f93f3a34a81d3eb59281f8f03d7beae1cf5435669cf60ca8d31a1bdd078cf596d0e5a20a019c22e939c0b4d4772d3203c6a6e6866024a1d55115f8cfba61ac056a5582bef3b57caf437d3b4e83ae7614b27721607bce9ba9db7269c8ea3d03d955c357245c18333c093eb42d4c473182745b3d01908ce82a0f53abfc5c38eef99ed7cb464204d28673999d3ec0897e901fdb25c13d0c214020f9327c4c81b618af19b27759e91a1fc199ed05243125a9720c190e73d8b41c3178992b7562dac61ee378f98b78c503dd48011418c53930c0b14d8a8725edb262142d004b702a1ec1d6f28cf1d9004304c9aeaa171518f88bd49b009a519b742b3fc83d6e66531b5938ff7a9c514375f3f64af9356aa4f4098562fc54bd3d6d699572f294fd84d65164da8210ee5c246bdb1e700394b30564d9af95ee5ddfeeeac59093db5682be63af535dde0c814f703b5b91f97fbe7a6fb3049a4025554d28692e7e49ddc474ae2ac649051f4289ed35f0677eb732096f846775eff093cbb2604378bb5440045d8ab8e6e767abbbd6143f4d93503d3d21d1345c0509d0aa38cd7094861b5d3a41621cccb30cd7d8eeba1e810d3af73efe16a1a2712c0d7051953fe2880665373e30b4495d9496e3ae823c77043cdcfcaca6b28fa084b8ee9631968d7ca5865d50a666b74b3f95e55a3b857600fbd164c474944046ec3baaa0a0fd684d6c5af41e1e2efb4539a029ca9cbdabf1bc679fdb7fe0de1c8b233edb5a00a99122a5a8a7ef4631d1988f709e3cc5f30938098df43e96906b69efa9e76b23b5c00e8ae7e18bda965a40e436ea205274a1db1344d2745f7c6834d27866131eafbd2a3822b3e778447d3bc390014c274fe4bf34ba39b179f841bc6666a3ca55cbe26740ad122584b9bc7629dd4fd058528daad606a249ded69c07bd7967cfaa29d5cd84be040ccfde12dfb5b515c3ea28476d2008794192df62149f363be7c9cc649c28f3f2a43506a58bcb755139fb2c17034682c1633a84b5130d424e8ff48a9069b4d14ff9af6b871ad9db1816d1fd07548d50d20c6a9d9ed3398270da6db6bebb178ef4e4ab4ffb618c21ddb74bfac091bcf0e32aec074851cb4dec726aee4d8d0c8bd46af45e59203e2839b19db73a859c21e9da8c96bd2d409dcd42120646a3819c236e101c6a1806bf653266c7a494557fde8778bf5734edf39e02c8363475c34337b054d573ba32b7395096e2883f2dcffca028d94e9b061b4c8cdd0ebe92f90e9029dbf691caf0df7a3848a1f1de0d3f1f67748ee1e70d63c785b2151817a72de0eba078545f12643a0b6ee649b4b5b2cb2259ee106ff4b3850789ff031cd3d39b6c34d7ba49870633620594d0604f5ac11ec98a6bf1a1474c061459d2d8a1c0138b0e1607274009a980687de497630d781817c76f2111d0650dafd1cd0274de01dd23236aab0980c630af32e289bce91667bb52d4529377b4ce70bf4ff503c53697abb12ead14987640b9ed83ac67a7f1d6a8135dd8232a88edddb46c754aae0fbaecbbcbb13e4e31cad501ecb23c163a0a0d329fabecfc2bc0f522aa857da472289448e5deb4d5ea5d2215d3c34eaff0b323bd5ba4508b368d7200150d297b42a17a379f7839a11bf0c2174f6b4012daa3d1c959b4c4af40a3584be4f1856560965b4308cdbf34f3652dc7da9cc49affe20162d024866245d3230482ec869c0152bf14be96590564fde444269384dd3e769742b2bfce0871e7a9078cf116e82f547c9d80e471f0cba058d1d35f10b13cabf9dc2e2da05ea410a844a8a30a2785829d79789b46b0c313b2946009de7fa401a52af9f80ca54acfbc9992c52be57574dc840742beaef01a43e28499584d60793bd0448f963ccc351301940a77875db8d70456f13b2a6c394f0bd13dfe4bf4c6f4d540bed81b16448849d97e2b349d653a146b1a39f4958d7014af3de491eae861a635e3efa2144328d8bc24b955f67f12f49e7dbd628167a30192b0e4169ef9be46fd507e7c5d54a2e07553debe8a40fe6c17920d06524b3014c9c4b9ccaebe06da7154c0f5ee4249348f1e82ae88c99de22f9f91cf180701d24440764cc0b0a6524cc92c88cf2ccfdebc0f16f84706cafdf2c8f29ac9e7106019274a7df75f0e36ec438ec937ec24ba24471323242e04198995859c0c660677880f50133c1d1fd4fef032371656058dde388921b5beea432c05acc3acc07637d8280861cc06f614e0372bf9ba02e561dee635095d618fc2188b7be396e84cdbbb7604f3d3d31e28ded1daa0ea31458092e7efa65a655f47511ab0cb11cf86b14388f9a5df2cc5a68c48d3c2aa5f008b5a4e1a0d959db094cb4a81fe17805a1048b23bf6ce387ede9595908ec8cc3da0d5e66eeb5b4a656e9e3ce6c0ae8353eaaf17fe1a4ba7cc8cd9cc70fa1bc47dc970816300b03fd9a223ee85fbd392bc61b5dfcd842405ba881a06cedbd58945170c38a2e1692ca42c58a1ca18a4baf0e5518b16e9a20ee18a2e6ba94d9cb1482c6e1cd56ae376f132ae6b06de71f7cfa6b66a6f9c418a5015490390de202a4af0b0ff4b29c0a43aef91ac71ca2864e51f3d3135ad474960d7a7da465cb90012657fec280e6c715bfebe9b6645c82602138417d43de66dd936a8ae7c75aa73d6a1505bb23fdbe608ff7a30d325f3bc1469a1b862045684b22a8c6cd8394f1d661c5175422f5f5ed4ca8dac0aeb5019bb133078182f6787b3dee16e587d855caf87354c9db86b94af6bb70589964ed0f73b17603caf9ffc85376c786038be236b4fa78eb05b4982e0c5baab8fc8fc4667cc82a6af66aa9366f6763c651a92a03f3aafdf5ab412314abad1c193d0a080d35aae84c6dc9fae1f9e81e6dee53306db966cfeda5a70051de863bc51424d326e0cec6685d380d4c145c7a4ce9e4df79bee95df5e95d93c3c186d2accb0eba2c6377b2c6f272198b876c8134a332b224f6d8dcd7f8fe7089dc588617d7a8e989aeda4f764c3e51955123b1d79092e074e3fa22585535b2117cf6b4592f52343ec5a83aec4b2285315d6f25f4a860cc072d1144111085eccb5a2c35ff81ba8dfc25db2a0f1f0e7214c39084c1c120386ea3808eb79c1eb9dad50eaeef029a8275f15a39b2e75721f436b46f19b9dfbfd309ead38e20d6433a580074239004286757f104dd273a34c7b38c3efa3b6d602cd558e7376b4d29149c41cd6ac43446462693062ac9cf0875513e1165d343d39570c00748aca1eb227d64cc2bc4fa66f2d3320f0aa1c03ad3ec04a92dac26092a93987a9c7fffa9d4b7291a1ea9074507450916027e885edbfde815907c45ff7787c41c17421a03edd92b3921b62f939940b47993d52a6609b217352dbeac4b62b3ed7f703bab5346c586551f8909cd7025ddf06f2ef1c9c0e274b70b99f1b1c435d15e9e25f639c9dd25cf8b2065d36c90228e275bbf18336b9f645840503f9ab07f33108a8384c956634bb1b7f7b55a2f27d5a2014bdcb17a2d32f92e0872fb1d65d16c73fbc1b7b0c9934ab012142a22eb3b3c5ba3fe2bdbc7289ddf6216fb3c9b2321c311bd26eb362f7a093755946f60c18e1258d5045df881ca4759257e4291aa83d91939a8f48d22cd0b2b0e833d5bb3ac104370def8233591f123aa8d78e7a19d39acfd7b1dd5c146acdde282b3f4ccfb94ad77cbd881515e49023b0ca88e96f22e0de0899cad7cb156f4fe967a4a413a93ce614a2f10eb1d994440465d6daf33b606848fa26c00b3635663c4c8406daaa2fced03f743c8a75bed5a540d03ddb59ed19c98e5db660b1db7e2c98e6dc2f766b4b0c39f9cd80c402553e97dc926b993099e8a7d9f388c34ba31ef320fb819fee0e9c59a4c17760a5e3bcf32f9fe4ba17a8d6b281d65389f638678598563733e5e3e37fbc1c6bcf6194568912eec6cc1742b86bbf65cc18ddd71f964c80afff75950133643e98edba8120b2b3ec4c3651d66449f6a8609243991ae623421f472ce602d08bf19629a2745b5d6519e3111b6eae08cf3922459e2c399e9059c59adde1b654221fbad98cb4d37fd1b4f14b41622cb0e9221b0fa1ab47a9d5bd917b541873550d6108388ddc32ae1eb29cc29054f17ea02f64944adcca08f8786f5944a0b87d481a4500ca6ce31bcc8eda93e49a58154cef0edd804e9bdc364078fdc979f6024c0d7b24bff0b4d277d42e7b3fc58eee3407645e05f03bf0d8a0c6976c2cde697da17266635a9f02e26de1195019ac46e6e842ee36dace72fa2ad6fedc742804ce31a49be27b59485774dea4545ec9952b25acfbcc0639de79870e3eaf09e466d3f27b38529a52ba50e82e2e09aa8d3739ad842b2df41130a144aeeb5f154d6f1ab045a47171a8bd4ab6c6f91a7cb8ede3dea6d78f01aebae9f183018d712bb794ae7f547da2e668925a8078158eda3c81ef0f217a3babe3a04c9b09571cb88ffd5220680f542e6e3f3318668465782b4ed6bb5e8dee7362f9ebec5617eff56354673bd8a8ced3ae8c176cb88aba2358cdebc77f9a3325db15096561503237c2af7e8685c33d45b02a770819948f1ae96ef4b9c8de97dc62934aecdb19c72731f76a0b0f8aa9f8a8724a77825333bdd3b1cfb43efc88d563b9e0a8b83deb21b20395cc864c497646b94688f1e0b0ae0aeb30c3d9759177ba4fda45e6aa70f0e3f88e2e4317ac9b5c5c5f452ca169f8e62f84365aa11365b62d23500a5deae997859846f96f4e69a589a4326f00684262de720a58560590de704ef30f94411bd3705b88b3acb498e65129ccf89716337c86e72bca42c9d94cf8f19b1a2ea48325a72642a3c6c522f8d6776e132de1565152e9e62a8e2428570b148e636771109d3b207355cc7521fc5865648b34b6385258d1cf06a85f1cb5ee1c1052e5c3920a4c5ab839dbeae3c148b33be4718e715784e71d32ea1cbd5443762fbe2a4f73bc8226743226745c1c339216fd1eaac4e1703231c28606cafccc7dde3e411b8160022dd3ea7ce17d93e0f6cae0f00b054f6ef95d818d854ef9b1f918379a0fcb433c84db05d7b8da8a7425989c277f368e6edc2f40a05a08f0651e105647343f88c0273022ff88c3d8b4a8f7505d6755054132209a4f8fc484a7df9673078b49336a4e4207bc89252ca249bdd8ccc01096fdf76dc7239e96ffbc54917caae9932dcf13a9878867c76f83845131dff88d8b9a486f374516b68a1d60fb2164425766290bf0d1e92bb64ae6ff8b0d55de6b1b4ae29754c194da9db501d6276efb24c557a351d44316089023c3137b9aa91a6a10280dd7a5cee898d4acc1e84bc9c0620e4e52bafa74e657ca5069072f6f7670242b7b1bfbb31b518f26b3755a98abc2245c2f67b0404b3021333a31577e2860e52a49ee62544fcf362178eff9e59c716f70df0cb06f920d16cc3a419401a13931080240c99fa4effadb7ed0540bca24dfbead7880d2433d3145193d200a08d3bf0f6cafb8a29069d35c0e899d554d1132f52eebfe14117cccdfb4ac0de32f9a8e4ae541c29a39f5bb01f383b116c36f6d0a8d3b82c274430266cd294907c4d67e0dc5a581141b5d613763d4bc30a4505223c772006e217d5d06cdf575169ddc9d852887bf68fbc32dd68de0f38009a7b49eac1f3714d9f7cb17bf0576b08c0f6cabae138066f228a8555859cc723474a7c035508e8113f9adbf5e72afef2a43c21673aa5add6932d70ced6a0269abadca8c126587304faab4232a076e284e9c8e5772ab4904ccc4e23cb98f569b1b99a46b88d15f646d4eaac4e83e9066f97c78028590b37a7c5f7f1b883e82abe82e647d757776eade289fa192fc9888ece25c08b0e1615a680550d2fb3d2053c4cf40c2c9735a722996a83a285232260f0c13b38ca6b204a3ea65811ea6a30a1a14f9f0ac8a063b4410a4193abcbc73b6751b7df0134b9bc2bb6df34cda8f6f400037f01ce1a95522028000185bcadc7eb9abdf24ef57621d7203e3fdf5b1ea514054f29390bc17928b02463cda81a04decd03d68385ef202c2fa302e57db1738249e4ca8982a87662764d20dd078dee15beccd3da461c044320d8326357e9d00c7125015619b92071c7fc02cd0bff26e396925226088cd3d2bb9bc532febaed0f1bb5287bcf6063f09b4c5c7670895ab8d83cfbefbfafde9ee02d1697e2af988c853b35f3f2926f002dc162d51103d70d5d4b0c21cbd1b5d55e902f9c893174c9428028dd74648bbf6aba5f106053ed88dad8bc03b5a5723b3df79377d08a7aa138178a6bf546120f63edbd530a38f5dfcc36b74a091ef1e417b2ae0055030d2ee9c298c7f29951cd47529d3a7eab89e29691479efd0408d66580e27e6ad704378720869e271dd101c291d8f5452983d3671511c33865ce2d088561de35fc211ce10c518c8d8fef44de5488f61ef810388a98fab1b500c26158e4c192bf51bab8a9037bf708707b8081e1bfb3791df9a36acda12d63b0cd82996cfd9aff8d143fa220ca8ce99e1c38380ca32b27fce3c6b2e12819245a4220ebfad808cec8c2bab2fe0d4f905c29ceecba0f568d38c2412397747d891bd36323d32d194363b45c7e242451a391283bbd6ff29e8708bfb62e8686b53a939317eea48ab070083fe41116d3da3a4f2ab85e5bcc19dd5ccfa3d481991b058c62a1efb359715360232b4722ed0a82dcb115584a0f65b33f68529b0eb84552d7bbbfd6ab0a3cb8b04e050f69614ea99f4f8081bcf0b8209c8f378be578e6aa6d12004e14840210572cc3a20b8b3eac5f2839208ee3463a078f600c4a68e0605ac629f7dc294810a15f07809393d5aa5b3611c40fa19b2083e7251be32f1540bc261c100946223921ccbedb8d8ee84d5905c35c4b0f78a72e58e76f85d512d1362863d913b92d755b070a5714ec403502db7a4e365339162fd8bea77b78bec84f87eea94b00c91c79e801bdcc2d09145fbbc872ab411fe4a05121875930ff1b133ab05cb3894babb2c862fb089c051df8040091cce5957d278ddfc2c1dd4e8abe2c1c26644841e0b725e0a508b404f30c0a08ab1c2591d2e80d2740a3d5252333ec741b3e8442bfdf5347bcf7bf04ee743bdb205855bec2a782fddefccdb873ed77a9db2f5d35d3dbd5b50274e16b40871a48b0446b1ab40f1342db26a913a7b7c1fcf1218a0e57afdb3b7203b056c6740488671768cd056f0db8ef902d8071fca1a3e0c1a165242b37f2182200876836fb51357773658cef401cb13e155f99399f854aa027090b266b8789cc96a8188434f22b75f63545168b7eaf723ac31abd228d598022160c7d7684a0fe818a04229fd694f7412c67fdc75456ab4b975a68138190182b92e0023fb975641eea3d031d0e702af9d9b73bfc54844860a96647bd5bec8647f84c5789e00d0e002233ed4b36e25bcbdfc2691ebb3c306b1156b1f450e71b252b20c1a009c4a86b86caf781f92983bf958c243dd3896118e6e82fce8d0fa0828de235f97f608927be54317504f005f1268d17c74554898f6cbfbd8c38e9e15934e20e820ee839af1a8ed5ea176b84749040ad01eba430f286cc4aa33ad5e57806bde2427d3a9c845857f755e5d6bd7e21a2cbfe21aa44d51a3a9728f3efdd04558e50f71037f717d1526a34a230a2477dd6a412d718d21dac0451744c359f8cfd108ba220c6bd254908d4844ce271d6677502e5ac3f64382b1a5e9f83322a4b75ee5e7071e8fe8359595a4adaa6d2ccbec1886156435d9cbc985de2757a74acc6245362d3ba76df268816c289559c2a9ec2bc9239b069956ca516274eee6a500c014a69dd0253717ca72c34c12d5c338a19ac027c0a623203aff5c5b6e17e4416353d9acf1667ae70e60905c74fae565a818afc488a0f7691ad7d358d51d1d32d1251c168a1d86872cedc97824ec4ac03f997afeabcfbce6d4f22e1e446e70b3a3a9181818922c5dd055547f1949f3a74498f21bdaeeda97ca5b9fc562ed10fddc7becf889e38ad634db18ffe25a78b9f501033ce5ad772a83d77511c429e2e90bb92f14e36f714922c7442a2145c5330a313bca085098a3f53cc5e0d37bd62d39cb0a90447522c958281526ef05751107c69b413b50ef2aa809acc2d5df188b9b220e332bd89bca23374bd2be2e47fd846db3a91d57e5199419542cede159c88921d19b95395e9d4e524e30ea17622326fd2c26d3180c3e11ed252c885ac180e5444c46048e3748f9cd09873c3f118a3c6f82808b91de440ce7ed329590f6ae53a7e05a94a7ac84589ca8486528843f458bbab02c55ce26df680c09017c9e636c6d998b8bc036a478fc74b15798f22d944305396d518b04f823c5fd49098460e177ec6d2364d8e12a98da1ee2274a8375cfca442208dd7bc03f498650b24115a9b93bfbf16117c4fc28a7c959d44bedaa64e81567572aab8d1d14445a721bbf89ab2f8632310ca430c019035cb88f084bb57c9956705888beda3c8e0484d272e928fc1ecc32276813ab6cbea2c9b692b54ed72e65230ac12b26c94dd98c16773c0cfe5017ca3c8617c0508286f26750a9a721f877d9c40c10104ce5b31e9c762286a8ce54b464c02cebe20284b2b6ef2f4f575b45f445dada4f3bee1bdffb6531d0e2d95795807ef83b837f0badd87f47ac3c0390ee6c2dc14b95bffeb5b598bd66ef707cde3f10740580996d70d9c7e298ab221af073bc76f068b587979cbea65698eb5bb281f4166a187f36a42e43a1c18502035d71f46dd141cef8f7fc98f0c29e6d8e1c8ef9a0c457c001dcf5870801250cbc1246868427b62184f41d943c5aa73b3a23fd85b1dd906abeed877d328530382c7a1b7a314166abdcef8fae427c49db2f7c9da3d2d618c97088d1c9b041dab91ea6a716c8839d751763f54c92ded49d9900e2256247ce64ef92f4263b4ab9171fb353d401fe70a5fb572257fafbdd2fd8457bd913c9f1b199719b7e86070a481aa36bac96bbd85e071a86409f0466a1068668ce24d7c3843311cb51f02d0f5d3316377a4504d03a3fc1d54576243e96ec5b697873c93e2ae21f3c7c24bdd56bd56497ff2300fabe5b6b306a60348b416e2e40b78796c32dec83b98d63c71e73e0e019ecd24bcca1436469b9c9a8e8a38c008f9aab2221b3e88a0d2f8759223c6383c0d08da422b93eb11f710150f74ea708f66a6abe410801bf4f9fff983e540f8900900eba28d6e39fde3b756c05d7eb850ea241e57ad0ab23aa2fa50f727fecf1bb50b690a6203425ecd877fcd2a56c53a6a941e4a2b2d5d482bafd52e5dbed206a0d5267eb848ff0ebaa701a6d68633d9cd08774794378a24fad97a0b8b09e72edc41852606492facb01da6afc3656f766ac15321f707e2078338417784ea502690be82001380157fa99367eb03258f1a83f35a49db23430333a99c0bccaa1e838b1394daba14a5b34943f715c6c76580f14b1125cf0208cb77574a089976d511821ab4dc14f1c7cb26f736d3a8ebeeb2152861bd2db9b0467662f7203d592112c88b390fce912536ed3859252532f38fd8266aedc855b98804c2ba57fbdab772370d3233f2a2b3c9b6b4c204a338cabfa84bce5eb0c574151133fe0322ca8871e0ac2694d9a6f5e88a0db4a4ef40325ab492c77afed0d1720c35edff5b1ab49ec3301531cee024e0d7058c8c68ef05e4033b80b49bee4f27ed1a3706af7de0598fd9c02edbdbd4b925e65a2527dd0a7424f2bef7fd08f77438a68461b5eb619ad0d558d23020f655f3cf2b2f50eb7d05c259880c01eab85e177255da3cbb16376f48573f451e4af5d7c22c79a5278262ac1d55235f0519ab7790064acb938bb666a8cc4a3e245cca6402c72edcb240cc426391e1919dfcac9127b82172c648088d3ac678c478c8d28e046d6dca526b95b34809213ef20004fc8e3252184d71b84852ca5b6e8acfad62de1f41938e922a9d4452078ee8bca13a0755e620d116cf7d1ecfe1cc05877b0cd7030264f258c2e9803d6d24e9cf620c5cca43823afa2b3bc9a6652fec6f392c852e9b2024a98408a8638484f95a6312a6a95e33659f819d73e2f7b5a6555765227e1b2d4c8858fc71abc494b538df814342a6bd18273c8b9f92de7c594b9be5f609e3e2e5949f09a40b20b3d4bc0cbf09ee1267cdbc421fb1b6abaa572d3ffa54d19c9cef72faa2ce7100c538482c5f36d6dbca11e6146a5a610a48b823bc0a8b3cbd5a5ed832e1a67343c9b356c19ce159c5fa73233e56407dc4920d977255b364cc28db02b8de194eb2f1ea6bba68282b6be4215947500be4df37e5ef157a2db1b4e119c80245b0f241f19b475261a6ab18ec510184c06a93dcaee125edd9eabb51c1e31a1e50f1bfe1825ddc27ac9f3ed0297948cc1b8ba31b8660f437d93aa2fad99263546e2f259535b88f4d9c03c423da6a0ce2e7d2af0bded8c89d2e183981469a573de031531a704d5066a3285dee3366a1a5810eb48ad5d5e10c5eef56508301fe79055e038351c8235f9059c0e3eea1bd42524425b77800b45f0c3e3ed3a3f277770bce8a8a0ca3ac513830b8ee6e307e091064554f8f18937d8fc665c1552a17f0eceb0803531191b2996bbbaae509bfaa46ae97d58c18bb3a1b84a7394a41a01e1ac2b9b5d0588ed4e5c606c336c467ce2bc08bd8d509bc622b4ef78c00d80860a6c606f16237ec04850fb2161ae1427692928db52ddc7262f3368e18568e7b801c521baf01f3d90a5a422bc9b18aac6529484854167c007ecda89a105ed858e19ee8e7240c8b0eee39fae23e9a1d1a1313fb95622ba9ac3619bcd0c4973e7b8157448a171049a5f878c1f9632398044a19a293cf538759db9338379dd5952c1c922363bc9bcbf3f63bc2a9fccaa342a3af70937310beab9e270b6374b947f1749102e12a105965f0ffffe400346d60413dda5dd78a7115c0b844168941ca1c0531710c6a1883c408b36ff577835a087a4122bd9cac637af98f6c32ac3109a9df1045428425c92a540109bf385dae5cf04730f9c9dd4a70c8ca06c580c435ff631c888c036cd493e18fa1b630e6c2aaf3e8046cdb5a4b1a87433dfb15be0375fbcf23acc8fa0608b8e6dff04e6989e60df0126050753503726d85b96d16d87050cbbd011b2037075f44555731e600abfec822bc282a016079da030bceca71f588e3fabdff7cdb02a0907c3136d8a79823d70a297d9752228e51a6de729123425cf746774cb4684484f0ea21033b4c596cc855d57d655abcfef8c1d9f9588f23cd48c7c0829f0dbb6bdddde3af6f3c8eacb425f27c1b1be4cd1ebff49e91007ffa41813eb327ad9456d980af72a4f5b2f2de7c79268f83b49dc6a478dc707e6b4570c075e862bec4fbd99a7626904a46e9556ccde41fe9d9721069bd21311504617b2d31b14fe7a521b961846923c2807900f2fa93c2a60ff6c41375836beac4ed6a56aac91a96e4a3c929237016636371b1862b41e220993aa1c047423f049ad73ce0dcc581101bddf9344367091270846475579174e9120020934b016b99eed7b690bb313e6676140204711476f178d57d6ea8b428f80940e610e6a9252a48f45ba1310318ce4007feab53af2489aae76bc5f027d3e53d19d95a344726e5f82a6db3f3a9b1584ccded45b36d41aad9e1b4dd57e504b11c1b55c7077a715e9a9b0b8eb321c709227da898bd7d8b207cf012fd20e7dfe452a581536e1bddd3fd21719b1aaca3ac5acdd55902d79244205517eab0e7043954993ac3164161e7e9348193724d5b9ff0f9f136bc15b80113e52aea20af1fccbbe310e9b64d207927c14e24e80a19de8abd51bb05ac64163f922b1e760667dd424e75f43c37ffb715f3fed33d771bee00ae99ac7baf7e18a281197cda00d0ab04fb91458da47b11c1e5f2a9b95341f25bfedd8fa5d838443920052ef7ef92e2fdfdb0c41d7b3d65984c25731cdc2dbfc825c882a1208b65bc54d0ae2413c3626cc294b0589b38a559ec269e9226bed24cb4924d30a583c940b3e16c34d69154e65010bd42b0bab5ee9a9bcc812f9e9470f43f260cfe73a5e59d1a5a5cad95dfac83d57abb0cb55228e1e029297659e7f5ff24bdecd812fe89402854c05caa2912da0d9204ce6f0b3133ad5eb82777576e904a41d42e0dd2ef344562239cf8e1b6f36a3ea4c6df0fdf85c979543bd5a2bfc9192e1c7a32d0e64e956dc4402d7f2ef2edfcd170bc2b54fd004aa75ab774b52653b10b946a7b5bdd006ff395d07d78cb5eb41c29e158302bd81c0a9e79119010cde9d7837745f6aff9a150dc5ccc3422897398d0d31588a255a1327e655aebebbf44c452444e89ff9e648834c36f75ad486d4068efbe0241ca7d1eb8a91a6ce89f40cee7209db3d4f792fd089b9706e751012fdeaadb22a41bc99a440028af10f7e7a44be8d41e38d610186c4a8ddee8f70cc51062ec7c7d37183336b0ed86f02d67dfc8d392b01a652bd8fc60174fb064d5e592d01009a1217d80311c5028a7a7efb474ef2afdf499239373e2ad85827634d822c3135cb9a2223f244633f4c7a9797e9bfd75f07c64c076b67ab59b3c6ff1ee601b4d3fa7bb4129f9ff1108712afc1356e403a55b0aa56e0c3c63c3346c37ac67526c69b5a10ac6e782268bd52ab7798f24d94a1e4b2648ab7d00a7ceba0dd583987b8ed52f2c3ec4dbfd225af61231b309952cefbe16eb9bb1f5fa7ce969d1c3722cd0acad2a1e286e718cd3079bf846f921eea471152a31abb08a184ae5e18b4528e77bb6980bfee32d28dc35434601ebc1b610536e8f76117200cae327ccf177948f985d3e2711840676207433128522102e98e7f9a9bc1776f0d4a5dc973cb900e090baf1219a7646ec0dd37ef2e4766b7245d4a10156e62b04dbe97e309e1c0ea813049d359924e2bc2af7bcb7fad96cd79faa33c0d1990ad4fcdb67d3188e86ea32cb475eae66b3c710744d1e516b88e11540ac8ab30169457753e4d6161adee6029f65567bc90e2ebccebd3724da36e8c4c5f4111660d2ebb103586953d78d8a21be466f7fcdf46ff3e0b2e5bddfc34bb78f3ca5a7942bf792107161eb2470c0f614047c518449816e277df33445b0b397ec6ae07ac10413fad6f9f3c1ab6be1e5439f611e532f8bf6328649a268e950b36898596d93f770a13fa65f84514539a75a970c4267f5c7518ac57a9537cf203da00dcb25d4d10bb335ea3890b1973a69bfa9ab28b5a43b300c603ee96824dd1068103a168ad1ef8dc44de5cc85ae8907b6c0a96f02edfec5b9ad4f03ad6cd58b2fe4571c454766745e72c9e1359be86e596403bd63e38863886e03c750c31f4398ae3a85930df9f2ee82e64bf024bbe842adab8387fccf9bd4be1de680f18096c69703de1b5f4b0eea54bef90fa128017534eafef89481317920df58e281fc4101f140bebceba17187a14c2bc1175c200af2418c1e05f9c2fe28c80f182f7237eac51d4823e9ad06b299413e0dc820dfcc510fe1df2680cd243c6462da1a782768cd7cd541d545b9340b69a6cf86a97a7d8288673d6b6248b6a485702c3dd01a35099723b4cdd8588887a3395f183de3cb2ea4d658cf9c3501d6faf8142b885bcb098390f610b3dfc7194b9facd97400b06b78c347d8f80ec256ca28a19a1986bcb94916e2117894c077adfb242267bc7b412101dfb4ae945cc8a0566adf5ff4319f15bd4508c9bb16c79c9e1f94defafa158bd2f855010b6cb7c3084a4babfd51d0078096f06018e7a8e8e03778a70380c99a0a1903b65d1bdfb03f987ba659810863b1d0945c5903ceff4ba11b5277bb3995dde8c8040e9951fb199c815c749ecba769df5b48a836443a5a6ad63cd1e95ac0241144385c421590945a6c14210ece5103b2349deb1ab56efa4b883a40546a0624a1580d2adf873f0bf7cc095598da0f55716e8e2fdf5fa5fa34ec6bf63e25b0afd9760d93ba6caeedc09c5c1957b2605fc3d3c9ea0737ded770b9197ac43483c21fa880040fd2bcafb9da81119dd3140bcd32b7a426e96b2ea7a451f09f1f9a6c70f754cb673aaae81d76704be625ea46bcaf219587f0be666f528ff7355b6e6e08a8c07262a63251c1121ce0760206b8bcaf895780a2fb8e93f5e6fd1a25c3a1c0a23dbd9fe84db132d991bec638dcc1fb1abd2fec0ee6afe801d80add7c600349fed88ee8283347e3d1586688ba0c2a74c65bd7ce429edb313f0f4029d56be052a992cb19a4785f73f573fbff19e12ca293b0a9990ae81f1cb16e0428a1e120a98070c492d5cc77bfa8521d6121c288f5e90a1e16e035e99732a87d5eb9fa936270691f458f13800e739226007a052539a0f2b015747dfbcd319a0d7dfaa4630551e153a09f5fd23f2a75a32c73e65fddd784be80dac2af02ee1c8f49fd26865fdf0c0c7cf9504d79ab52ab205a7efaeb91ffccd2d31854edc0753b360f3962a51f98f38e68d98881bbca7e935f0450b28f2496de588851c5631b826a1054d312802ec5caaf1c6176343c9127f9029dde67a9bf89269a6786b58f7c408dcfeeddee7bdbf8a08005c353f980b452b117ad627fa9aab25607660e304b676f1c975d63789857194bf2d49b60d4a598ff77140f23001da7fcf84ef451d1093f549a9d0a53dfb868d253af16d730334f34ed08fde5e14b83328974f221e27a4d176a1572c96842e833a7e931d3c8e61d2f1494a6e6683c0e1f1b8c40530923da24c7ba33c731a7e033cefecb3f921bccdac1359d07a69898c09313541e748ac236b75c398199ec484b6c316d8ec4a73a38606031a964fbf27c32c201c0b4f8e052a642c306cc184d2a8fe00634daf9290ab08eec6d2e10da696a5fdc1246109e8f0bbf2bd87533286c6676b8f4c154b8443e6a9082ecaa2aac6df78c308436bed7a33b06c967646616a3d2f6a16d1d4970ed92149f711d1fb7383ab1294f650903b9f5f459e7bea9769120ef1e91fd8f4d31f3f77ed0506ab67d44986e5f0dc621e1e883f1bd1391309a8e3275da33185f7737fbde361d1a61dd04c9896b361dc295d94fec348461da7109c8d4453dd02b7df558811a0dc796fbec129d35ad7c1009f570f13cd3134d082170f8611c44ce510225e16a3ed7235d48d0f3654b91d7995d143437ace8521873af573e604cae31eb43241b87bd520a7b251c92829d46d8682c367a2a0961c47e4e719b7e3d50ce46db08849ec711a208c324099e7353050ad54be9e0ac78cb2fe0d9ee0e98cf5970975101cf13984c15ab37decb55cbd349a802c3f2b295fc199cb28e6f16c4a268e71e2f3d6cca0779643f8ebc65308d1800c8a4baa35b9a1eddf455dd630ff64afa229cba83d091a1eba3b62c0dd0b52e0dd09416d70755e78b863897f1b28aea356d403ab9768b759aeb7814c3e9d17ab01be2f7976f04a3a2d87fc24b925b901b093936379da51a2846037a6e5b6fd164ed7111fda5b82960348692d856fe84091e97a8c52aa11244946b81943601f5f20048001a3c8da82c623166a9d1fc5ee56683e1f525601bb00ba2206c04a3030da206e3f59fa0058fa8d37a54a3803554f1ccc650dccc7e0501d72d107ade7f83c636a75bb8f7a7fb1a9d35bd05e276401e90a516dbfede62caac9f74c2542481ea69cbbdf1608051f657ecf312bffa16c0c0f59d49fa4633a2889dfb2169fefa574e3444ac2692c5588324683548be2eeaa37d72553ff1c6c962b34d4b470c7e08652288c6e25bf93e62149714846d690941419ad236722d91304f3bbba407ee2458bd8e032dccd652a752da33f0cd57650cb3f89d267fec639882098c9ec470309406332f360ccc220329510e7a30df3ad52e5d156b86e2f65ba1f371654d6235bfad6ffae1ca01361c119fceb75ead402548cd45934812c6c7ce81b37f12337cd4284ebe92878df96269e6a371780bfc33b196fa4c353579e8e82573c8d3f907639593cfbc0c321e5ac40c57a9447d0a5bf851663fb3b38f8bf23704fd3499ce41610c7d6957071f223d0d5b34b5726f106df340085dc2fd0b1d499318451fedbd4636cdb721275c7a9e26db6e3342f91b6ab28186040317f835782b035cead3c3afade2a6b0a9a7ade9a9760be0001a66b45d2c412aec768f84d37b2013000534ca0dfee1f4905513a9da2b395c9a22da85d68b05de232a60ead50b9ef621713783b15ea983a11ee22ea527ccc3e633e5ace831c7f480cdf5a49cf7d5c99fa94ac1a8833ed8cd07ea80a2b720aeb10b22c939a09eca1f1ea8ffb66c8bb196d58c734ec3ff5491e9ec29a2b10a1cd62da432f2e6799b3632e299ae7e5a29dedceaf291dc7dd50b7db755035232f4c740d9dfda0232133f18ec2107d28685d147d03eb4137f0dc7ec2e4006047bce9224c329f9b3d14b3cab8eae890f2df3e87a99d0702012106914303473f08f20ff3f862ade431f69059dc1d5398503071578cf67fc393e1a194cbe9d72d03de98144af32959e52ea2f34104295cd4d729c3ed5b088981e470d3383891e4fbccde1f0684bf75e7ea580ec01f74320f5300f7052814b7bbedcaa45193b9890a82503a78be82303b989d090511df17056d9106d3d9d097c2121ca4e4a3270939f88bc6b2f99f6c48d1e4631d04a54e19bd6019fb773244022448eb9c6dcc78017e1f7067230e82f87d59c26e298ea33fb92813dd9701b850eb15838ba9113f752a1c4d19b2bc8f4d460f5cddcbf8f0de2fbb84219ad18dfbd9a97353c28ca9ea8872f0d97939cee51dd562e08af191b73ff720bf969b33c25d5c03209beb8aff3a4556a3168d43dcf9234b423d24903a53a2bc2d5741d4fba084456986144a139454ee6dd252693fa080c6e8a636106e90ae75d5c81b0d89c3783359f9c7d6935a77089d2e6682199c4fcd69ba2a842173227d0c364cdca4525dee08f54e676eedd001ba160dac346f311d08d46e64295e8ec2ab4e1e19eb32517be777c46f5f9c0f80a4776fc03d22fe09527fd755603a317696bd087eb9861ccd46cf855172ff01ef66904025179cbab383e9636356441809ad9b8910a010382714a296669ec1834964282a170c00245e0ccc950519f7a5817e35b8e823c2a3b3c085a541c11db1efc4cdb1a87be4e3276eb954be534eed0513b18637a8dcac358091b44982a867d17621ee0de904707ca462050b167aa35318f16ec8aef1ecf55b1f7dd0482956be7ff5d83f3d2d1706989857851a64840801be81358a5d5bcf0750423188ef0eaf6851a379a7fc725bcec408e702541dd1bf8df6aaddee784cde5a4b2e50c528dfef48e832984ed2ded88ff8a0f47dacfddbcaa3981c976a2082d673c1e24cfb11d170dfa37e8972ccbb2e51c6f57d34e9f79ac841fe7be11fcd2e974849c11ba28f0704ca8350217bd654ed70162c7dbf6246f1f4929d306c3a8812d1e8af30001299d7e7a03cf860a018bca5bb048e2acecb21c93536ab383b4033d45912a88dd78da2e85b5615969e388e1f007233fc058532f6ac396983b439b3cebc788d08da53dfa9babd8dae6294166b54bb21a7620aa3b457cf5dea2f56ef217afd0f32fb8aedd2903268c4370ecd23ada131439d0b7271c2385ac7f10864e440956b8cb6de00bee6150fb16d2495abaa61aafab3e215c9b6055d424663d018a11a870691ec5f352305b832ef8018fd89c19bb75b386eed17d00ed0f4c0d845a36995a0876d4645422121506a5ba9513f7ba86c6e6ec5ccd0eb59133959bde1c8a963b27122780d9650775614b5a683959d332d67340472d2deabce459170c96accca27d133c6032e6a8f83ebe320119d77a31db32be0ba2793d01a5af67a6964086e729949587e506823c0c5a8cf29754b638fa921f80c0f11f07fe47e932892933e9305508be839bb1617337d1146c0acaa2e0045629afa2f41c6171fd505dd955317ef94a0cfbcf61ad00ccddbedf40f5fcb22226db737455f951f352ba49d950020368813327d6f0c7c0116f02c475cf29fe747c2ce223ca013ef06bcb8e0446cc0eac3c7d0ea6d065c2f77486968f56cf7b778d5216b430ac8d07454a82ca163256bb22ed0a4ff9d07af22eeb5a50968690c7a1652453a734b489e940763f256a42828dff22fdc1e7142df0933a1510d4a793bc69ed1b860fa9b2dee984823a2986dd872eda8cf9b2e9d91cfa5df73ae29947da43ee0fa1a0f890c4c49148c9d780a0b2bffd1dd8569c230716ebad859ca4c081502df6cd8770c10a5c759d6fad879941eada6d2a476f83158bb8ef22a5440ab6664929b9b35f1f8e45e82e4b73e3b2e7f7fb90864c7091fcc749bbb1c240349d1a084d70dd148b3503a40ba7812b1f3481bfe7f03c39fc4781c918d96fd25de21b95f84e0e070540f845d9410f9fd2441177e3639125ec1bffe226e4866895bf2a8d2e6d7d8dddadf5e849758f35588acc36d78e51e2f3e5e63760b439b35bc5b69095647c71dca72eab700b7a430ca2009f31d0b7f4bc04e165529fb9c5351adafd9e19f417aab82ab31a33615aaef5e0192005c65fb4d7a8c31d4d4510ac6da922b394697c5da025ef4cd2a3d312904ef87f63fba6d192f29888425a3d7e0789e3eb1eb8a5a79dcffdc177c3d351c37310cf41186bc2fee49e9f2b34651264a3a78eaa50c66b320f8ffcc644b51bcb00da4b895239697929cb6f954e785265ab0b66e2d7dd28c29486227891a710ea475c893dffe0cebcdb088fddc6433e95d94ae0f22b99cd0d3350f341d580cd2d6f60f6370af8baec4d6c2c3134698e06ea06610a3cacb32ff57c4cb55e964b01ebb4f5b2093f1996aac84f645a3af2c0fa59fd9444b77d599d97ee32e387c802dc53279516e5c557658615fa2f9e18075c1de7577376c818425571c101c3cdbd3ee198da84e5ec183a0792c5d640e8d0fa62692d6260316263b05fac660d0a02ebd604b7de9a60d65d12dcfa652218fbf603d47df071eec284e00c5ca696683c566a7e4e0d8f07cd6f879a36be73c73e36f777b9612b4ee4d0aa53b4b90cef05727f29402c2c42ba56cae2aa7a00a81a24d816a9af0f4b03b99571fedf9f93eb578834fe48bd378a3d123a8c2861249cb0ee757ef381abf645fa5467044dd1b30f3f0b92d95d54627615df80175b3c82a80f487616e20529943ea0907d021b0505a6c837a10f99f283f5ac133c4b6f0f40610802a216924bc36f767fd34279ae28a71bd9cd4f67ab6f44ca18459e6d3b422ffb995d75e515be19a766c9f4c8707b4211ca1501bc958d0255de82b9a5a4544727f30509bd22ce70f3578e0c1292fe8fec8894934c17bb9dc5d15f77a28d175fa7bd0d4b342c2f0ab4c98be30d4dd5708a154ca047457d15c4d48c7fd2ee103b86b1df2264c341a48681aa330ffaf4f5cff6407f32cb1f0355af1aecb3017f1004848bf2df4724bde916b462ebe2cb85014fdb2623fad747ca8d98d7784b8f6779e1424907cd1eff607e71d23b6d15f382634c66869581543c02d85a051fe1af9092e767e7e0a64590abe20cf408aae3c0886c471623f875dce8f0ac464887559512c33a875252a7fef85e19b1fb9dfd47121de033886806179066debfa323373c7fef87a2e546e00757ce0a63fe4dd2fa5822c7523e49e61113d4d4adeb05b507171a1924d19d6c5d65a69c6541bdcac7a0f31448dffc03894ffc9399ccc3a1a15785bd1070a31b6ed0fb554eaa0f2cb19fc4295c8304ee54842a0e571040ea6ad201444ee2f0c8a2d8df610d4033f0294203f706008141a70e761a89f2f4031bd8d802b94ca249f5cdff6bee28a6ea3fcbdaa9ae054e6f90a013d9cf680299b24041d68beaa5caf57f3e5a5bb3841042b69432440eff0d870d457caf7c99be447c87f80af1b5f20de20bc4b7ca77e9fbc3d7872f95ef946f0f5f1ebe52be4adf1dbe3a7ca37ca17c73f8e2f07df24dfadef0b5e1ebe49bfbd6f0a5e1fbc96519e97bf4fdac628b66f87e8ed92226dff7eb4808ce84e678cd1be933d01cbf71bec18f688e6d70567346a2396ee3ecc6b909cd311be7aa330d34c76b9c6b70ae81e6588d739a738ee6188d731a672734c7679ca9ce36d01c977136e37c03cd310dce68ce4934c7639cc9383fa13916e3bc3be340731cc67906e71c688e65703e738642730cc63906e72834c75f9ca7ce3ad01c7b7186c179079ae3179ccd9c95688ecb9c5d70964273dcc559eacc03cd3117e7169c7ba03966c199cc790acdf198f316672a34c75a9ca3ce3ed01c67715ec1f9079ae32bce589c97688eab385b71ae42732ce60c750682e638cc5905e720688e53700673b64273ece5fce52c04cd311567dd79089ae329ce28381341737c82b31467269ae328ce26385fa1392ec1f9e95c04cdf19573116723688e8938339d8fa03916e23cc419099ae320ce56ce49d01c57390371c64273fcc379e99c85e698cad987b3169ae31ece53ce24a0399672e6e1ac04cdf10e67a5f3169ae328671dce4d34c7399ca19c97a0397e72c6e1cc04cdf10de7a4b313cdb193b30d672e34c7359c73e726688e9b9c69383b41734767a473179a63f21964f8be928821d0dd2111bc08dd1d02c16f747728860f9c88ee0ec1e081175c68e141e8ee500738b00116ee83ee0ead701034a0420630f019dd1dba8005ee01dd1daac03ba0bb431498c077d0dda114ce01dd1d92400420f0d3dda1075c07dd1d7240031e447787187020ba3b84c202962840c95002de4377874eb809434910708021030c15a004020c00c95b747788848f70440401e086ea1be93baff96e009edf00d584671b846e88e736c4aad5998d15d780755e83c53aa7699dd568711aae331a2ed799ea753ee3f53a9b61732ec3c6e68ce6e64c839b9b3319e3798c713cef70ce62e0e09c6790730e2327e77c46e72c031d9d730c76ce60ecec9ca778ce5ff0f09c61d073f6a287cdf89c5fe0e3737601ec5c06063b4bfd9cbbf8f939b700c7990b1c38ce64626716c462e72d80ce638080ce5141672d8282ce2bc871ce22478e33163ace57e8d071b6e2e72afe33143d8ba1f4ac02f21c8624cf603838a780030ece5f769cbdecd871d6099da910123aa3a083f3141d747096c283f3093cf0e06c02d9390a99ecfc343b9760363b17c1e37c85078f33d30767223ef8e03c448fb3103d7a9cad0c9d83181a3a0301c2b90a08209c977c9c7ff0e1e3ec03ed4c85463b4ff971eee1c78f330f40ce528000392b0539ef1024c8590721e72842849ca10c39e73064c81987daf949ad764eb29d6fb0d9ce36109d9d10119d7344ce35102172a681ee0eb99d9bdc6e67a4223f2a52e433d0dd21219c09056b085e0d614c1562781615dfba0d75fd86be3e529be3d09be7d0f13a14e73b34e73c54e73d74e73e94e730daf31fea731c14f618fd3910c5f1201a7b0e0a741d34e8a7398ea3465e69004ea98e93f4e780d2efa0e4852807ef80eeb80754e832dac167d483f3a0b27f4067ef41797c887e7010688ffba043a75110fe83fa38104a7b10fae34228900fa1415ea3426ea3434e446b27426dbf51a217a1441e02bd5d00b45e048afb112a808f40453809f4c891d0113e004ac2094091bc043a80178012e006a025fc00b400470035c093d003dc048a809f40933c01d4842ba1275c0134015f42957c01540147812e3903e802de008ac21d4019f007d0061c02d4018f007dc0254021f01468043e012a815380a6f00ad009dc029402bf00adc031402df00cd00b5c058a816b8066e02555e12b500d9c055a7e0374857380b2f00ed00dbc05ca81bb403bf017680bf70075e130d017fe01ea81c740613808e8072e021ac38be8b8437d005018143da4cf4ff410115019eed119b543524fd0c501806e2da25c8dbae06248f7907e08b45c15a1254e0848d615a30c375afe10a12525a2e5cc46cb1f355a121942cbf52284965b45105aee1820b4dc32b514cb058346cb1dc3072d170d1068b96d0cd1929bf4a0253ff980962c85072db9ca8c967c45464bd6e2012d994b07b4e4288468c95e6a297215b514794c2d452e534bb164304e4b1e43072d198d1cb4e4368268d94d8068d94f62b46c293868d9557e68d95760b46c2d3eb46c2e3d657ba9a55876153ab4ec31656a29960d462dc5b2d1a8a558761bb514cbd9a49662399fd4522ca7943aabd4522ce795726ae112452dc5e9650190f49b278af80900bc3fee2d8457979737385bc45d789c78e9534bb1889d086ae2a50eba45dc841097971eccb688b90c39bdf4f1638bd86908132f6d44b6889900c0122f0350b7889708d3f472c5d4522ce2a62cb6bc5c2d4cd822dec285122fb70b066c112be105095eee1713d8222641185a5eae181ad822d6524696977b462dc522ceb2069697cb4608b688b1bc91c4cb5dd3648b38092748bce41b9e6c112311e58897bc83942de223a818f1927fa8b2456c841045bc6422ae6c111781c495978c45cb16f19526a697cc04972d62a6278878c92588628b9888298678c95478d9221e228c102f594c155bc4426461e5256b31668bd80a1741bce42eca6c1107e105102ff90b30b6888108a3ca4b16638c2de22a652cbde433d0d8225e5ae38797cc06b7b145fcc31b3ebce4354db6887d7042e565dff0648b984a94292f7b07295bc453a8f4f0b27fa8b245dc83103cbc6c228a980724a4bc6c2c5ab688a53429bd6c26b86c112b3db1c3cb2e41145bc43b4ca1c3cba6c2cb16b10e61a2bc6c31556c1147c902cacbd662cc1631142e7278d95d94d922cec10b1c5ef617606c11e310c693972dc6185bc44fca487ad9671471d21a37bc6c36ba8d2de21bdeb0e165af69b2456c8313272fe70d4fb6889d44c9bd9c3b48d922ce51a9e1e5fca1ca16710d42d0f0721271658b9806249abc9c58b46c11376962a49793092e5bc4484f1cbd9c2588628b8ea698e1e5a4c2cb16cd1086c9cb29a68a2d629285d1cba9c5982d327a73318297b38b325b3482173908c872bc3d06b28411f907c8f24487812c65b67b802c69b5bf40964443ee0259ae4ec85b20cb850af20e90e546013907c872a57e7c0364b953b4b34096bbf3f115c872a9407849965b35740d902523f5b80a64c9491f3c0364c94a3c8e01b2e4a5d92f4096cc24bb05c892b378f00a90253b75700a90253f097d0264c9ba1d4f812c198a834b802c398a7c04c892a5e82140963cf53f802c79a7e30e204ba6caf106902557059d0164d9484047812c3b29f60590652be1f812b2eca59f2b802c9b09762564d9597c9e00b26ca79e9f4096fdc47313c8b2753b4f42960da57304906547e5fc0064d9520620cb9e1a5f00b2ecddcd4b20cba622005976552dc50190e544aaa588842c67522d4512c8722a8d409673a996e2915214812c054096d309578a952ca7ce08594ea80090e58caa5c8b48008450e44684ee0e11d9e8ee506d88902040e8eed00fba3b44a3bb433e280848953fd4e3031eb32c952ff3e0a9f23bd055bed08ea8cae740aaf2497aaacad7912328a9f281942a3f86e307e6f354f93dbacae781aafc9da8cad7c9c1d955fe4855f9375d55f9362f576ba9f2594c95bf129de653655d657ee2e6b5eae2c383e3848ea09f263c10a25c7c0ccd9c6c437e301100001059424c182f4d5a6451c5962eb818a3c4175e942181186180a1e58c32c6c8c2c61a6860d935fbc6b691c40d4e9a20b143942747fc40458a11440851a5082c485cb9c2449316a6123cc185082aa68862083161bc08a145165558e9828b31417ce1451920c408038c2a679431c6121b6ba0f103afe137b80d1f6e70d284ca0e519e4cf9818a941e8810a20a0f5890b8228589262d4a257882cb0e544c11850e62c27889a245165540e9828b31397ce145191cc408038c2767943146121b6ba07143afe937ba0d1b6e70d2c4c90e519ee47ea022a5062284a842031624ae3461a2494b099e38a2628a282a7f063161bc543e132db2a8a2f28dbae0624ce58fe08b20e5f4624839cbd4291b8e42d0473b66d88fb86a27f8cbcca5d500a8ad656666b652bb6b734e4de6335abba30475b5b3d43035d852374c1a3375a7ea8659e38aea29ed8dc1d8213e4fe5b4313e4d5bbf218512d28d0ab6b0420909d73a24249cf89db63986cc1660702c1d9e70c4f9bcef2bcd1b6c6081846b2a2424dc246fce4761320eb214ff43c2c812e643f690a5ec63aafc1db2a4f197a5b212140e597e4923597e4a959bd0e16ec8f29bda55ce89fae10c128eef2d4df0a96b4cd3b6381bb25ca817592ab9c8f2736a91e5079504327d542cb2fca42a7f5122597ebaa5a7ca1f5265afaab29412597a53200e065bd05a3104a737655ccb9d1a72c19540350cc38b2118144cd5f04c0d411136069432a09075bd9461a5def40cedda59df44238d74b882915fcee07dced0a56dcaa3ea3403528541ecdd090dc445783a1963a9ae9730b0a83dea7ad9a1a9e2b4fdec6c5ef659655deb3ac796f5e8dace105cab188c403d9b7fc172a8183d10377766ea7a09c34c0552d78b1867aa6cb6b7ee061ccbf7ddd947b6dad52d6b594e0de3eb8659419aa8a982d6ee083faf57202806525d2f3358aa1fd4f512069a2a760d0beb737aafcff5896751fc8ebcdffa58e2f708002b28f6effdfbcaf57dc5df57c11004c1af7ab939d39ac9b4a2a2c42adc93c53e3c28d8b55aedccc3a95e072a7f7e45d70381f845f5d821eea8a5ac02892e18ec9f4d7c603826812b9e42356d30182bb12c9cdee776ed2343f19b3bd1b5f2668f2523106c7566aa944ded107f99b6d5e81d792d9719d90ea191c9643debf770b1c4a6a262e4af5a62d8023fafd56af1b071cd8ec289416ba7cd6b91650b9f78ef4e4270d7c92e59b61092bbb39561fc77271ef9817c27dec33bf93e64486954cbfd06d91fe511b9fb638ffb4ae05a8258dbe8bb3867fc914d7d8fdcd91b839b39d5b53d777777ef76a9cb74b1a86da4cd58915925f1b442628565c5c5aa8b5517ab2871b52a2335963bab2e562d5821b16ac1aa051b5f29031212528501e67a5512bceabdfcc8b2ebd6f01f02407205efd31369692401c97a6831ae9734b2d41296c6522d451890ac472c09eb5b953412eef571da5a2ed65d346703118ef52411f77a91aeb368eb46a6abb610a4eeab8415a32e8925e6dd6875b810b01e8256cdf366ffde9737b66492d63df284c57947627f66b43c1c1ebc82025b118b71bda051e5058d2aa24155fb2e34a6d41206d4481e9dffe800bc4fd657a2f87d8db06f91ac1b9932d46f258ae20a31ccbad7a9fb2ac183ba249610d43c6ff65cb3c6f3bc5db306c7f23c0f0bebfb5a1200dc546aedbfdd6dcd9d936b9e377bae5953a45fe0ba6bd6d4eddd86a14b08405d722ed1da1d2ed64132a604045f2d2546ab873fc21de18e70ebb5e74d6f8a710a2a2ace98a24207af8c1ad0ac90d0a0d1a1d9a971d19509c69efd7993e5e4650da89d87b4c6ce73aa419287eb7fde9c426226090c22c045b83e808bcc6341a67937d3e4c878515e72583079c99131a3bc38c99131c2aa8ce57891ca6ec218cb7f545442784c5ed248a1c51421d5144e5358a06b290ce9a66cd8222a77064cb872f274669c9cc01973064737c6cc541ae3860b698b1eb4b0c0a001868329306a38313dbd94c0a8e1821f72a6743674a1baa1044ebcec20eab050d3544b534ca01314af296e90a698483a1ba8a250e25b20a420259a32963415bae6553e0b519519a6632f6740e57a6ab9543338c38d5ab2156f365f84ae8dd548a7003a89475fe720e3a529647d9b9677f63d6c912b9c0e7cb31508c4902af15824ef906f045ef56226b8de3a0aaed651d80341195dd82af1bbab47b8235cbf45969c637d9cb3d677ce5640398c2e6c555ddc37c2519d37325b7471ac9ea1ce7bb4f44a08c29a9fd57b48b9e99b737a2f1b918ca1e7fc5440446ba7ad69f5aac41bf22961242424249277e6792dae6893f7791e7f9ee7a190d4e402515d018659c3cbead100c49325e756b7a1c905a20ac3fc314557835febd4efadd0c52f04ccfa6a8aa1c339a7f8d984640c5d3ff01e10ab823696ead76287a57750247765a5870023ef1b0093ef55c23755d046529d241c55efe2cb005d67f896188a3fc8f528e4990315ad90bf01784848bcb26f043134d8b35ff35e187e1b8c37c9f2dbb9038371eb71c297234823e18b197e1d01578db96976fb6b827718c4da2db4ccdb5d6fff7920f8811ff881dfb7f776c5edbaf7da585a892bf14964edec63c5208aab95b8c44a5c893788a1189ae0c4f33caf82a128d65a21fdeaac226d56cde1c018d2ae9e8713698f9eb5ec03e7d7bc9f8dc7ec8171674c8138673458892b11058d438566f4ea7a29430665a08029c30b199451f61dae31b53cadcdb4429b2f18c753f834674de3e2d8b91e7f7e21f97945b07ad63004c1e9bd59a9c330a977c8fb98702cd50e95d61686496152984446a0cedf2319f4e65cfa8a5a41eb53739b1eba3d4fdca1bd0e7187dd29848b042f35c650cd6b06a398a6f534b2c83033b6be401ad1987a418d393f54f12ae322a38c30621033cf04328f0503fab9f1d945070e3926f7f6f424836794d20ac36233467ecf399b25c5c8ef3977ce5d01d16a2af2bdde39d362e47be7a5aec120d6498a372818b7ae949177a5571704cb4001538930cf3535831cc65851066e9f0335b61095015754d9e2090e55aeb8822be7d4919637a8a001145344210316e0b8ad54fe54b3378f03b2bac2eaabf314ab43727ec582ac7a73d732724ed17966379673aa95909090a4e0f8ae325b9b514461a6f65d527b9bd5be0b8bb64ddd9cf15dba699b512ea8da3b7c68628922a42859e105d741d4be4b69da8e505046171ec030b146066fe0faaea5ae3510d3c66e3431c68a0f3090e209aeefcad2b5aee2d4c5f5d4b5be4b8aae896d6c6d5eb9a2a646b537336d9b597ad6676abf55656b138895f181b052fbacaa699b5373c69f42aa4cd3660216bb25a28401d3450b70ed346d47438c49f3060c5ef0459a3670fd43edb774d356012d2c285366091e6e2802d76f4175ad7db0853828ada5bdd15ab2a4a87d56145b9b4d5666a56d33a967fc661d51fbac345d13a9d2d43e6bd7b5a652fbaca969435285861a24a145145cc4c0f594da47507c81822d6a306306543081eb1e6a9fa59b361b31463829d3458b32669ef6f6da676d6175e9daa24953b5b71cb5bf429ab65dc1106340d15d99a2056170fd5552d79a87da5f294d9b9017496b5cc0c31450f880ebaf96bad6526a7fc5346d2b4cb1c4132b766e54c500d75f65e9dacaa96bab2e6d6be1fa2b2c5664a4f6a6a3f657bbaeed4eb931c409be48e2055dc6c0f557555deb1dea05c630c344d20d7a18020aaecf4aea5aeb50fb2c25326a9f3545949ab6deeda676bbda17a1885396f606ab7d9169da768c145b683153c61b64c8c07547a97dd169da8e8048e3b485872f6b6e9002d7179fbad6508e94a092a50836c23c9172025ce750fb6254d744325d5b4d5b47458948e196b0cbd3de7c6a3f84eada6e3f4c132e4d5b3f3185588064a4f6d653fbe0ae6b555d4beadaf6c3295df36a3331813a2610aaf6bf2f4dd7aaf6c6535aa184540c90f8a10b25707d30a96b8d43ed834ad3b62d2841171318f1c40c1528b87e52fb20d3b41d1501444e09242b3e744101ae0f66e95a27d5eeb0f63fa969eba4a4a90f4ad794bea5bded4cdb91095ab00514515c7162290caeff65e95adf50fb9fd3b4ed185ebc6022f7e508354c80eb7f4f5d6b1b6affd34ddb91135ea8218334383031e505b86e27b5ff45f53f325dc3a99a36a6a2fa90bea7bdb5aa8c0c952f298822a64c0ed79d939a9ab60fdc6045182dbc48aa1203d75d43ed7b545d6b16434175a9cd524c5d9b6ada5eb8a2c50654aa9081c6165c7f5675ad69a87d2f49e987daf7a6742da7da986992a9fdf9346dec3491a6edfbe2082a3378410ab61881eb26b53f95a66d45c515663ca15303440ed79f4b5d9b4cd3b66218e14414279400a3050a70fd99a56bbca6f6a753d7bac64ff8899ada6f349d66d67e4f4d7e6781eada469191eab799aebd6a0cd832566abf971a4af394eeaa1a112295d7062e80e20d2cc6606a7206aecf505de31b48edba46d5e734bca56d22ae9beb1203b6b6da2d5795794ad76e6a9f95f88dda600d679c41e50924c69881ebcbd0355673d434c60c338408e38b932dd806b57734201d4183252e55b2e0968c6dfc5198361c66d860268c1359949a70ed466d31ca58010aba68d2430cb6701b55046a08f1044d1562a6aec0d17e18cb19c50fe79831cbdca20517a123732a752d09063af5fb0e59dbc6efb006fa746974a993479d930b1280deebc8c732338e4e585263d9358c653f8d7306a3e791a9de77ba3656ef3b64de6140de370535489d60ccd4a04e227582f182893a8f4c58fdf875c4b389c138ee308e3a8cec65645defbe1a8cece16abb49c4280e31f21823eb04a309a6aa875497832316eb18a2b53bca8fe90dd11ba2e7da20c14c56ba564e66e22c23ebcacd6e079e27085d3653aae8621e567336cf364cdf520a544666b2e5625919e7d7a9ceef6462a5f1565c8cfc7ddff77d53e5e834826cf0d72ff00ef53b6a65c55b43491b0120a7c33579e4ed30deb820e6a549428a291c37592387a79b9172133a2da2706404c1050d43dab022096774a3011a64e06670bd61c318b8ed21e58eb79f4d7954879cc931e15a3762ad612c4537a8e8462ed2ac34965eeb897186e689748547c3cb091c345a8437db3de77ce3c6f3e62c99bf40cca409dadc0611e73ae768bd5c552e5f452f209fbdad727ef3974e0dbc06d7ba386db5149366980dd27fd1e96587f473e8e46283f46fa8a81ba5c82245f76bced166f3b2032175a35e45ad972f77f8ac0e10f6b6fadec716115f2b8ac5e622c572731c3abbd8597fa4538c88b3b1491271379f51d376f3e63538d76d10712fd67bf52262992d6a55d78c9a33293a757306456715eba3dfa2391b8edb0d12922f9a34e25a2d23eda249226e46a353cce6a8ecd3c5da6654af8e562d7e95c3caafca3795792afb540eaaaca3b250650f2a0fa96cab0c80ca01a8cccccccccccccccccccccc2c446566666666666666666666666666666666222a3333333333333333333333333333333333333333cfc033301366c2466cc423e05bd1998b9cffbdddce97ed8dc8f9b4bd11d9ce37b2b7daf948f63644c8f928ec2dc8f929ec0dc8f92aecedc7f92dec8d76be0c7bf3b13710f636743e2bedadc7de3e389f99f6c6e37cceb2b7d9f9ecb437d9f9fcb4370fce67ddde3a389fa1f626743e47ed6dc7f92cb5370ec8333d9fa9f6f6f3b96a6f3ace39ceefa4bd059d81f6163bbf99f686e3fcceb2b71fd8f9fdb4379ff35bb7b79e33cf79676f537bcb39e39cdf545db5b71ba4bd25ed4d696faef3e7d264da1b6b6fabb378fe7cda5b78fed4ed0d3c7f676f6ffc151f87ffc3a7fc19ff079f08bff207c03781cf00fe04f81ae0bbc00f019f9bf0f9099fa5f0b90a9faff0590b9fb9f0390a3e7be173157c1ec3e7327c0683cf63f0190d3eb7c1ef26fc7ec26f29fcaec2ef2bfcd6c26f2efc8e82df5ef85d05bfc7f0bb0cbfc1e0f718fc4683df6df06713fe7cc29f52f8b30a7f5ee14f2dfcc9859999a1a0b9b0f257f9bc4398726dcdfd0d0021142957aaee6ec94f1e940d55b7ec1d4ed254aa4ef3694245bda07879f344e95357475d0fea0ed5b5d50d405d2696895d629bb669b7ec9655629558122c0956cb6ad937ea66592c8b6593d824168945628fd823d68835628bd822f689ba579669999688256287d82156881562adac950d628358201688adb255766997f687fd617d581f96ca52d9294b44dd1eb687e5617958292b6595566977d81d5687d561a36c9485b2503687cd6171d833ea3ed9279bb4497bc3deb036ac0deb649d6c6e735bc3d6b0342c134d7691768ff66867d81996c932d98b7b2bfa42f13dce76f93af16de2cbe5ebf465e2bbc4b7e9bbe5abc4f71ad82226c1f72e6c116bf966f962f926f145e27bc4d7886f256c154a55c4a936df17093835e6fd7557efb8803e75def8c458ae14a7804ccbd6c593051ec9022b881dfebcea71d16a30056379e4fda4e7793934b1961865df398a468c9f1e39bf1b5abba3e562bda4504861da80b23049e19062255e0aa2ac0351d76354e738e8ce613f393ee0e27298b2a0c02d05c25e77b9c8d832699dc59272b1a4a4a4725c2c17f9009694144f8f8bf56a310005299e1e17ebd56abd7a6893ce59cfeddce5bd872e6ebf178ba5e332dab98b873625c939588a2d8415429d675a6bba68af589256ebd5025ddeeb7525adbf74de7a934a788c76ced3ba8bf2fca35fed970b257005fb95e46351146696f13026a179ee7a015c2c149220915a3db7fd8a2589b5eb4a587735a9e47557f851af86e157a2ebac2b719dd5c3fa8b347a3d245f779d490fcb751e92c9cb45c6bc1d1d0a94c29ceda8aa9092949658284839853d4ae984e2788393d331a09fd50151f1311a7e751875dd87b6de436dce435fbd522286e157a4118e51ce45311459ab2f11bf62914cc6875f31b9b92886224f2886e21c00129d501c6f70725c8879802b0f995bb138bd237c73136bf2e68675f39b1ddae4fda33b0f6f8e43c77fdff755c54c10bf7325e2776e2ebe4925e17548a3f1e1e2705eb12437a3982489d737503a23483809870f8ca767ab1829fc0f65f1d098d773b3b32ff00664855f5dcc191f86e14d184e1dd62e6dccb977f0d3c9b5cb5bc1605ca493bcebd0c5f5387ea492f0636824e2d0a6243707e956a09eb01dfa6226841fbf84f59c7fb42b984363bd1b69acc9c54da69188a47da125c9e93ce7fd8a99307e7525e357463a1f0f924a702e924639c7192f529c87543c8baec4875f223e5c9d890eb933e62d599d4532c98979b3e28c34e691b9d5c3505cb15aae97cdce91d7af13cc834c858021656519439af82310bc481ad91c341a1f863f0243da8a68dac2af4826390f2f924c9a94e43c64121e04190a26d2833028184325c1114106c236912c0048ee9769c339110a14282449684b3425281f2818140f540f940ed40e14f81f7a73185ddd878aefa1adf350d677e8eb3ad485832e8ea6b4441393442428249c9bcdb119c00e9d806487e671682eb73af89cf89b873f61712119eb1cf0e195800f5707dfa4929b9b05a34c9d5542b84827d5694278f04ac283a451d377a3915402ee2b49ee7557ebacd5c5f0e0bd50dc5155212521f1449ea3d9afdd172a505c96b83cb13c96472d30c56297efa528459d17a5e85a295e869fa7c0ba117619ada5c34159ffa13ccfa1b0f7509fbf765ae35db1ced9494107b54b612783f8e4243a7dd395028f0aacebbca573263d3be938e70e4d3267f33daf35c6950ecba300db7448231619556984a04a1c4718ec97c96834a2174017c283e43fa2696b1249174e585c2e073beb399ff33c2475def49149723e9f64da763e63bd22597f5d09ebaf8b3c3b748718b9c9da7665e85a4f9652e7933a7526112bcb38eb9405f6d69fbfc0da42b04dea7c39a70c3b34cf508cacf3bce73b0f6349747ec2e27448a326253ed7d1218d74eef37dc592bc48a3269154c273d78d6024eb5b8d7c481e91ba96b476ae7326de75ce4332d921c99847e2b4be3896c7487396a4b4c494c56971235d9cec5b759ca3b0714ed0fcd6715e42f22fc980786975a7abeba0ace7a03e3a8fe5fc87eefc74712d24737eee788949a226695cc468f39bb38618b5ac0db6b6310ae652274371d4098c7bbd85c49564f5d697b0ee2299b8ce7a8b64d2a4c47516195b268b1327b9af243f37d2ac559f006c63916c65b5850b2657d9a11d9aa3f8d778b33b5a2b14613f642eb7bacf73acf71cb62a47b6021e4617079bdc6a892e72b5f22177ce56504a583d248b3cc2f1d01d2ac39ccdebd01ba8a5260f70056973acdefc142394ae752b0992695b7d1e85696bfdf57919a6ede673aa5c2a24d3b6b828a929f284c531d39cb1d3645d9d0c55272f2541c24b60e7e866cf99e3334ac7049a4113c78c4dd85c9d0e2a3e075d3d88f61c88f21c87ebb1d76134e6fddc5c075ddc9c73ce9e73ced9fae2a678d697ac5667adc8d832615d9cde9c17a737276c257a2b5204714e8fc79c738e3e2bb1c5dad1f9961bc56addfb07fac0c85c4e7ccf73abf3bcc52e1fbab8168b05b6c4f0463d4a56463ca4471ee19a928cdfa1314f67f51c1af370686c24733956cb9be2fc8ae59a36f33714697a73c28ebe760dd1e2cf8a1124d31604e3a41c2fc7d84b58f99c97321c275a5d0e0a7b50eb31ea3a0eaaf31c8af391f2fc86ee7c5f202e882e0e882e2e461787832e2e872eae059b36cffb098bfb4822266934d8b4c5f63d87dde74b7ede4332e9f9cf7d48264d4a7afef373263e8791b1fde2605fdc0fcceb57929bb3ede7fbd2f5438ad06c839164f5be5c6392c7ac464030239fa7edf503ebf159bd10eb9fb0389f2fb949434706d7f3efa00bb17ed3098bbb2173b9d661cfb9fe039219f9bb4dacc9243e64aceff323dcd690547293868e0b5c0f09bbcf95c0ee037b934a7eee731fd2c8f59fa6fe0f8d81fff9110e46632079f0f5235c0b3422029aeabd05a3b6f5e80a50c599ea799e93156a54d7153ad472d3542f045767c599ea1da86ba3cf6157e2731869d404fe451ab1ee739054d2f31fd268f59e1be9a61ee0fadd4599ac0e7b8b326952b222637dd85b879d098b8c35193361f59f2f69c1fef3d60f751d465bf7a1acf7d0d56faef3fabe92d0c5c1e8e27ce8e27ae8e278e8e276e8e2744e585c0e99cb8dcfd93ce73aebb99be75ecfb570402df390bcbc9bad72ad8c308d87b5cc03bf8c3d475fdb88a9ae1d6b018f96b483dbfafc74b5c1cfa982e5f754596f790cae2af8afc9dac49d8107c54f4a054170764f1b2c7cef892ecea34eaf117caaf7447a4eac2cc6c5f14b6f077a51730646795373068a3151f4aabae655f09e9a3415fc97e5ebd2369ea82fd7b5fd5284990a3a4da960fd962ac85439f08b113dd4f2db52c1b18aa1e73975ad247aea1ae84d795dbab65a90a0969e1415d4523d24223e782fca8baae019bcac8cd1235f0041a29681c73282074197d34acbd7e65fac4c55d6490017c7ade99aa18b258a63462446886ad75c2b846795b0ba718561ebab70b55ab1560f59ad7d9120922d1b6a64f317357a7d9c336f8b18b7652eefb125fd8a2de18f1f492636e72fce135b240c5e65915862e2bd2a8ad032ef22b938af67de270c46242df31e92465ae6ddb551a013addd518a4ed5fb7ec54f0c4551141f521716e7476c15cd1b5b405df3def2c4f00bc390a8651ead651e0b6446efa01623ebe5ee2a0e154566fec48f3fb26c8169b84228cbb9788f2c61f0aacec5b774a88cde8951e7e52b093aa4ac651ebf8e6081e1a0468cc381e34c595868e188966519c52c2df32e922253cb3ca81187c742d7700ebb37840a2de8b8f77be72cec346d3ff7fe7abd6cde359e9d7b97795ecf752e529d1d980e2d5f4551ece9b9ce5b3a222dc7aa23529dfb5017b6a787941dd121df328f2784c1ab3bdf9701461eead51d1a2b61357eb524c77fbeaf2541a7240a3f34853903a2464027328addc89cb18a18758e73ef27634b66ecf38bd341c696f47ffe4332017a7f71254d249f6382b1dc9d0a5dcbb9f7fd724a30ea9038bf79ceb4e1b8e7b54c0c6f648ee39c79bfa125432957b5dc5d0e1a130fbb8784840ba231914c82e33f7f8d003edcf1f5bbb625b04820201aa32b1a835745728590242bebca781cf48712cd9977189d6288689ee7451159473b9de305165fae2cd59fba5fae388109a34b05aa0be64cd4746aa4ba271ce15a3bead25e6b4bf4de6a5d248d62dedfba9178d74f581ccc689c33f022f923dc697306fe08e7faea272c4e248d5c6439debca47db8c5b90ec6bc279933d0235f386171484823237306fe0877d68f7022195322be75916ce20096d7bdb748a430f691b10688675dc9ea36ff6e431a357da412f12cd2887162b9ba242f32f69d71b125acbffe229bbeb3c826efde2b4948c692848f2d693d7cf8d619375f47bcd65bde6c815f9d1947f09f4cad2f0e8c792d9249ebafd65f3667f23a8b8cf517c7fae240af2a859681b7a12acc19087a2dca2f19a218b7c692e456178f53b9ba7ef3de57925caef5d773acdb9cc6bcdffc08e7a2ae2b69b96e48231b929de60c3ceb462ff2a9822d166d51a69877d78f704631135a675d49ebac7b6791464d1ea9847517a9c4487306de6849863903196787bcaf4891dce9c4cdd2a1d5c4b85b8c375254fe8d145d9ba154cbd80cab8949a2a91d1b61d6f9f9aefc506ada18c7642a87534f930c0e696a931ceecab02adcdd48b55e789f7b88b194cd0a8e539fd8da26e717a3ebaf8717639345c6e6ce1948b23ec9147e845bcaa251b1bdcd8f7052b1fdbe451a352da9a4751b923667df8dbe16bb8e24918d50c67187f82f8cc07504ae383bc417ff798e2d69dd751729921b5bc27aeb2d72a73867bcff56dcd5d2e66c1f4e757f547c4a8c934214b99d7a7accccdec724922ba65700156a9f99058aa465b36db044791f980f5c4168038524145198b3598a3656b0b7a28d528e33fecd5d617dd418eb4ed75cbdb375472c816a4fb2c568cdd9b37b76cf9e7376cf39bbe79c5d84172e08e5fb8e9ef4d0021a8821e3460ddec065a96092b0a27efb254a10eb7d6152536175bda8a1c61883d6c79f97fa9d757585efb3ecaffbebfe7825e28c3f30fa7d49ab1f91bad7056049ef93a2b57b73b558bddb246c5d89937728043faf77fbb532cf9beb7537f76eeff6ba5aac559ad6f24c3581e5286b9b875b801a4b75bf1ce174455d2f6a64a9385b2406b1de6280d539ff312155bf7f718252033f46b0d260a5c102c3da892b561a35c6728795060b0d1618161a2c34586186cc6055b1aa5e640ce130729796d1efad11d63510bee3144b05633952edbae6cb85d614546b2a0c7daefd2a01569b1ca976086ac890db6ea4bd30413edf0a02c407101f3e5a42bac170c8105b15f81d27a20901e223884cf6e387101aedc70f221a8d8846fb5621407cf800e2c34710203421441d0ca909f1139daad3fb7e1079b4fff066551e8334900644880f5008e80304c9ad39d450b54e140211ce0f22efa9e94f9696cdcfaa784c9955cdd4f058e2c1c4230b8f2d3cbab40d47c723b7abf33c92603a18165ddb28aa2c2b174b28886ada66553fbb2037d244f740cfa33c906655446fa21b6990e80b2ab5b3b9bbe3bb3bde548a9aa1537407523524129923a1904ae414d24a0ea41cb920354155416982a87e624644a052744a884948c703c4c78708f9517b9db0ba62ec93295c31f6bcdca91c533a87951c4c39967258e9d2a565e44c071414141444a51647846441052b469f20aa69635c909a6eda5b1e480b4a1354d5b29943298712101f3e80f8f0f1ad435ac88ffe21e4c78f1a2984d2dd143dc33b5b10220f5efe7cae3374d7321698d1e62d0e79a70d9da266e8192a25b4fbd10111e11bacdb0530ddcf6ef504f4c0587700a56b3f94a67460a56b3f3a60eae0880eb6742de6913c927840e191e3813453338bb1316e2d8582a85a80414868b654301b8c25959a51d8d39cc93ef81a37d3a960bc5d7c29b49322722389fc0847840ca5c4706ab58292a4348524c356ad8456af2342423b52886ada7e70bb692372166d672d55ee224e21452b546ada848cc21b194611a1acf4c2c2497346022a1544d5a0f7b36b10ec2e2d7629e9ca70c16a9e825e0d8ce709e9ba86a3f25b2bd73856b95c66e8149562beb171cd284622bf5d0cd2cb45fb01bed5143c91a0a0a6fd07fd41d3321fe40f15f9b36bd9ee75e4074dcb26e8791e48feec7ea8847656c6b18295078f7b49b575e38aad5144bcbd1cebb415216f3838f4b3e9e9f775e4cb7871da42f8eda55863b18740a9999ecded998edf481d393ab136c6a3ba415441542e187dba692755229427e926088b2341513741503b347ff34a12f483e6876af67dfd98c0381ea4399b3d46982e27889083b414e279b67b745f4786dc4833d5964e6b4e719d5595b32adbf775a476230d83ea5a493b687bc9020c0aa6fb32d2de4cf386f4d684bc2f6e2dc8fbaead01793f8c32d23f678c6510d5e78511c53f648c259d9d4a4d1b91bf5eceaa88903f668c7d21f7e84f9aaec560672a50cb763f54414e36af5a52292042401e20e7791d1902e4202d6d077223cd82b960af2340880e1201e9f63c7285fe8fb770e0a0fdb8aad4b46cf2c80505bd8ef8a0812048eb6f8aa102aaae181428d52075c55041437ded70b1543096ab911c5f4a88fc461add4ee4ad1b5d2dcdd98d32132fe1d8c5b1294550574a3b34bf382234e4328e545d3b9a55cdb09845cda0663a21344254b1ef4b68e7d168f7281108fe007dfcf8f103fcf1c307e8c160e497423f7cb4e8f23ccffbe1c33be87944e479e468240bde3d1f1e07ae99c3d82f7f401cb9ae95b3aa9d96fdec7ed080a9f33f54493894a62df73989890206751ec7120e2b6dcbdd208931c1933a8fe388b6794a3f69bab662a2e852e77faa40af1b8a7e6246d5b5924ab590139020a2a01f411d1424e4dad7111f37d2ad8477d0032907bca4dae40ade949a33da83a868b403a19d88f61f4d7b29b4ab1e8dd20ec382051d0c4cd77c7c1e0625d27c74d31f3fde64ac0663498576620ea347613a1c2f46a369ba3663347284ae342a45cda8a93c5524d23c9944429927a7b4cd668a9e81aaf3749e06ceaaba56fe64e181d4351eb9ae6d549da55029b4ab3f5966ba6923f2f90a04ab404040403f422e171132886ada2652d5b65c2e10e7e7ad97ebe56a4af47ed1fe83964424e0a82049a5cc8cfd138cdc94e8fb3ae2d16ea48980d0845c177a1df1f15677777bdded75d30ed292054fe84502571ac5c9e124e140d9e1c231771889fc763e95fae01f7c3f7809ab384c733647212aa1aab1694d13aaea2049a84a6827b41342234425a4a603242134426984a884d4748024b4a352423b20f7416db7791db109f90d902142765ce3d4b4d1a939eea68deee66c7ec7b52f1f3eee8569f049ddb4a6d15d55d77eb47ed0ad548a884a11d1add4cc1445d335a2cf532aa21f949ea19194a2a1a2522618cb202a4fc8735e477c902c784915c8756c1407a965f3358a3384e224b52cc78504a123103aaa69d97cc108c423b4dba1f99c3adff271bd5efeec586146d96b0457e5c1e34c18356d3125447efb8d348a2db9bdc88b904c62497e7e6ebf7d7144c8308a4afd64298560ba25440ed309ed747c7c533a95844addac31f6cb9f5d10d5cd5b39200ba7ceb7565c8ca5d0aeced2b46c5e6807529c8f542acb4f96ae9533aa9f2d33aaaef1989aa5e91a8f5dcbe6accaa3b3aa96cd075175d1ed45eee3f914217f76d3b3f9ffb3c3f9f47e662d996b9cf22a0bcc585229a1dd9c511cf5478cb1a43d5efef0a05366cc7c304ee56cdb7ede6ab1aba9901442ba964da1a724d40c98f1f57d51a92667555e8c424ed356e4f3424fd376fb1c77da603a211dcea954d78ad0ede1628119c38c6411cab81b15722222f454e761ba9dbf1c77889038e44b2a95634a1055d72698b10ca20aa26ad9f48a18cb202aa90ea20a4a1354d535a4ae758ef91c493994bae6e3f339a674edc79295ae1dd1b51f59ba46fb7c8e2d39ba742dd6244543a96894eee854cbe67d507a869a89b531f6b99642bb924aed6a8f9742bbcac1cb9f5d1a1e247cb5492a25659c55cdd4943b6ae748aaf3658fdb9b481055cf5e47fa83d39036fd6d27ea031c2b1cbfc5023372abc7900fd738d53590c87f7e0ed34d1b115268d7b3f91356b81b49a55230f2f78397333aa2b143f344e8583567f32d9b1da410edc003d9ec3c3ee83104c2e785b399835db15aae970d90cd48b543f351435f29edcdfb3c7ba9f3fc0402c940f5eb21fa02f7a0a5f8012d471ef4056f464b5146cb39e5012d777675be035ae224d579215aee50d5f91db4a42fa8f31cd0725291b4cc31a5ce535a9e96a30e5ad233753e070da2e59c02a2e59c8a09d117bcfa334ed579d8cfaecefb0451d5f91e5ae658aaf33c42bb524837a97266552f78237dc1aba5d0aecedfc07475de8652a93aa3ca90aa14a7544e2a43a62eb3b7383ded4835528d69d4d4791ca6ae6d699b8fd3a8a66bfb458a9912a89623d558a554a76e871bd41267a94e251c6a8973449d3848751efcbcd5521453d7cab00ca7aad26a4ad7ba8bab962ba5d511752ad539a4ab35fbc046b8ff3ed2f33c0ffc1edef3a6c80d962cb8faf354108b801dd97bdefccacfb6fab7a2bcbb2bec7e5f8b8c18729e6b7a31e456c80d2017432e865c8d2177c46e08445f28f3484f041346212debf78be67d2001c61e32d9077e308c3b7e30f4804271eeece75a2823e2f7300a0a46b1ee971d9ebcbee8a0c68534b2ea7ed1218dd798b155f78b0e62408d3775bfe820e5bac138d6fda20394ee8b0e4b3760184c1479e77c9dff81adc4cf9b9f3b7bcee6dd1f46bec77377ea30f2dc9de0275a91b5e83155aaa95ded5410a20b52183120837406d7ed44ed375294daef5cd758154a6f549fa5a60d06e32efc548bfa81895c0cc41491d44d2451fb4ca66b215f490a2ab4d0546d6a5f0623ce752dcc40953560a831220d2745e09a4bed33d31bb54524d3d6ba39e39ef5862d4b9801050e51a4c0b5d3932c5ab50f9b36d10a9635a8d8c0082cb2a001d74cd4fef843edefe4d0543daf8beaada07a5090a81e16d5838246053ae2c9ea6e91aeac87af232cd8971c9cd4d5eae0ebc8aa858508cc4760376e8c256cbd90210523a370384115ffae9514e85df3c8d26316f989540dc37baf23e191c0d6b5ee8911f5bbd7351e3a358c654779322424241a7448549cb69e9a92411552e75924c158c2ce345335d24dd592c148248e1c864d9aed2193bcd4791e1186c3143b5d7c496222476a8e393c51c8e01c16dce0a4cee39c618313170d8ec14c7c832ac408d18066c97ca9413726278548edd38410e5aca8fd108c0851fb227c714255fb05e8daeb48b3d070cdc68baaf3af8f6a8d11b23557d4fe4e1fc6431552fbaffb054905b5aff8d2444a0d40135518cc4cd2527319bb7db6d8eaf36514a3ce7bad3437b802a8f6590de6724dec7db9c1933ac33041edd79106776f4ce9a0f6c1118ad4b7516ac0d479ef4b434d11240cb6b279e2c4081b77600d429d5f1ba4016930eeb081096adfebdaad366cec6163849131baa6b8a4985e5b8c3a75bdb8c1840b8931a8ae1737beb86030e2a8ebc58d2fdc684307a52f51a86e30c2761871ea7a29438c2bcaa87a9d6074d5f062c1d8da810d3380685199c1250b33a2786919c1ba5ecc10838bb2dba95edd2f517e606a234ddd2f4730b501c572aa1c8bcd5284c988785c1b53d1d616ea92accddbd6cd058d20f9b2a58269194391a1ae652c8135d5a3a17adf50376dabdd6aa723210552501963dfb7aec8f5da33d33329a826cb302a36bf54d3167ad919bf8aaa31951f96c1557552a89b5688abd56e8586cf5aeada116d632cab345553402b2a17aefc6ab7dabd56bbcaf7661f81244b922d287049a109159c68a16b257791a16b259fe159a97cf6ba087395cf65484548c5defa7c11b85c32ba338ba65cddaac94159a2a9966c65f5b4d285ba302969da16a714268549a153175f1588b4bae849e93ca6d163f2983c262f8bf7e4419db1b79b32c65892a7caad8b251199a94228dae4d3b4c1c6c3a8ead3b42d4e37463d85ba39634fca8971676ca275484835e67dab4761402d83dd6ed08cb1ef784cd6832684568b1185c04d9663a8ab3c594e386ed0da9dafe21327ea245bcb2fe8215fb04ca9d0352663e210236d67fd6edab63136e1275d702521c8be8bdaab45115a5d0bb4acbfb16581ccd2116d632f4acd0698dab41db32183febc49eb72cfc4c6de525b895a8650bbb70db0a4adc500d4eee3eced8511b86e188ae29ccd27de1d18d2d892302437b60414e791d7a297d672bf75c33a636c21f3ad1bee51b7a4adae1cb7c912a8ee4518181db3c0b0c0fc5b8247ae475cc14caac08b1b39279d93d4ee7a2ca7711ef9562ca79103a4f1a8544b166b83550a15a2110004002020007315003030140c874322e180304b0351af0f14800d7fa254805a1408c33086610a21448821000000000200000333b30d08953f7ea888d757a2ed439313be9dcbd7ee56d8aac8deb5920eded788402d768bece5fa5a913d73378ae49f97da4dd4ebfcdf446f9f1b4362b802a01189a529b247bd6e0df71cf053a136f7f7d607d0b58629c013088029695dd9950c9931c8464a8104d940369dcf145503d93c11110606598c0389db88fc48f196c47d90757a4c66e2f41cc22980df1dfaccac1811e1c56e5c619c7d2da8e15fe834ebdf43f1da032fd2f8348a50599622c0ebf493349ee2e6fdab445a730b073fbe3807efe9db6a4d1fc64273bc9ee698a0df6236c53c43f0a0852d9b003eb433f46ab9b5515fdd29212ff02af0dc03234f86e080f597f21c6f9b6023f1c48758ebd6205ff22169f9be15cbb62e503c68817f7edcf1a978f8a967dbadded0914e342822cd3823b57e6cd51c57ff607cdbf4f7017c7549921833238af4aec4f4e594048fb8ca7f25d1c346d01173551c35cf671e500434634f7811eb6e1a1223b1df8bb5763414055528908529f7cf52cb1d8bd04491cb286986a89e2177c2f7a8a8106f71043fecb7acc161ae725695a59e05de351b4eac7e1207ad3dd0b52e7c58d0c237d69a0dd7c83064520b5d80b9ba6a69a67390a6d1d52f30b605ca3e7acc54a6cdad5eb52bc9330b535b96be140238b9fa2db31928173ef327b23780b56513d9090ec450afee3716034c6ab49ebc7b480844000cf653de6469009b9f02e98d39482dc543a9bb2b35514015f9d9c76eb7d3f2a7a4edd1fe5745fcf2bd551fb254f716cc07b01483cb5e4f4f4669b2fcf18454e40eae212456df5d0d9d4777a30a1dcabbb9a16e0908614f059657c7caa0a0bcfcb6bc73a8823cc165cbfc3eef7e57e66ed1b90b940411ab3abc59b5701156edcbe699ebe1b13f9f912846086abd75355ef657ddbb2eb5e4244949b326ee08ad1c3275fc9f2f4d2c12f4ffd4d28f8d61d9bf56f9167aa82b46e90e8f93e2693cf15d067e350cc327a5c70ed8ba8dab827b628797adfff2d6c8c0b8be1772ac0e6949c4b9ffa5b5a1baa5e344abf0655b4ee7b4df3b4f5b9ac532889875cf08501f62bc57c87e1281a00fc053a5b07074fa117b1e8e9c30d2c9899342444aa49e6e7c426c7f0e647fd5f375dc69afc533be67871d340ce471d10d9ece52ee0f11925bdba9f007fe32410bb564b6dcd0ac1056e6b31a210fc11b19f4f249f88d214f0358f7c2dae60d34327c0d7522e9eda51e13692ca89c4d147fc312b19dc4ee5d7b9898f6d812f75e1e9b11ae87953473b0d6f90ed55a34806b60040ff0f102df480fc3d8b021157bba427492896118e38ae92c4cda8873ee660fd76f8ea15a9fdd64e44791e343d7973cd42fa5bb0af6706606abee62c7a6e71fdc861c90dcb626060c991d817995c120f4b699f1774aa953429822e70368618c4b99ac7a721535070a1cba7825b2b75a64e823d2c2fc193177cd05a3991b60ed63ee7101804f083062d39d44d8bd9bdb888dbf296694d6ec6440a7f6e0747228ca808226bc01540f036e7741db754d2c7b9b41b96a14a3a928696448029b79635398c0364ec11c8c7118bd0b4c4c44136d09e31393c79e3984e3a133235cbc72c05ac14830718d3061d61421eb5fffe4193e19605d84e9b3ec6226aa6b069bc4e2722c07500dccd61028191002877efdff3e2d27735b2114ff3d77eceab530f88371729b494301ffb019b6d3bd9062506a75d1d3fd01b61d0416692eae70cd2c97e473eee5a02e08a297e3f08dfd82f178e1b4bb56e31e30cf94ed0ffd02624bafccb68f87f936960cea41f75bcafdb5310a65f894bc8c2a6f927b4728ee2c2178f2ff1dcbc00ca80a97f95ce06fc09f87821a51ac72f2bc51b5faef0a51876b680b54028e29258d736f3f045f3097ed932ca22f70a6e04c4a0086e0e6f2dc835704cf4a9585987cbf8a0d285a082f0dc80dc3c051b28a10d0e8b9e1315e89abc23235506cfa2b971e2c40c354eb1ccc683e04743742d3cf97501b1193e8eacccee82666a2834faa8d8551dc1d2eb8ed346d9869644a6f1cfd6d26ccb312ed3547bf62ca0b900cb9730c283d3effee11191d10750d7f0aa540cb94146e002bbcf6568d8396f55c9abdeb240872cba2ed9ad08e0c4be1186d44e1f282edbebbc13d05eb9d078ac2bd5b271bf1bf59e0dd2307b4e70266588069170baaf46b910482845470970fece65cf693cc5662bc44fb6900cea705d29d5d27b0e2cbf2626704c68efebe33f59df262d22758de4b768e8409cddc13c735fab9f6f64f1c1881190a416a2ce5eefaa9d268b10e8df51b9e60443480a0d98b1beaf6c7117f31019e5e20b95279d088740e681a6f2c7fa4b906bacdc8e3227a73fe940f4e5398c8db9c1a3f71ec0e386e57f40f1146490a7cb15f5e0ad561102da4c1c5712859cc96cf5db6b74652299dfa73a17830471d724a444288949c8f52c24d954fbb7be3fb79f270ee2aee4fcca87acb7ce34227e347fd119720f8855e96ad9dde969478f02c5bf198872573bb5043efeded993164b616f05ba9d862f733b605934e0b091dd7a5efc023bd8b99da0b343543dc6a74142c7089754835e30512823ada57e28d03be7885530515848f0bfed639bb8a68dd8c42c2760fccf5983f26b1f4d927d328056f31c222408d2bfcc85f72ba289963a1f3a10309921b8482c58eef4a3e538faf6a7ab0f2caeeb2be938e8da1498f709c5e070ba1557720654f5dd3f210c8a70e0b8de8d9e488f4e9b6521a011f81c675a80a86a439ff2623e2d0c62809557e0190d225cce8b50008d5f4ca1b02de80df17ff08c21144c04062377d4e0dd13336579df8215ddc49a1b61b7a97e9643182961506592e2f3254a70f3b03c7b54f92ded0f0af5f4583efe90f7ccfadf4076db20e14d4ef94f9c8f135ba1eb06f883dd1055d43eb24a999568ace5aa184dcb89428247014026868b52e63a229237dd708c68f38024358f988c8109eea3cd8bb0aee257691c80db419a573a1c45453c8f05c9015ce41d04fce60e652393d4b23d596269989a6d4325b1574ce2342dc5359fd4e1d8e1a595b33042f2aa4cbe944488e4bbb0fcf7a03cfaa20806850b4e8b268c210ecb8bcf8c0fa8f22b82a83bc90c226a3e16833f41be0cced3adc9859ab2b10800c3f90f4dabd546c72beee5ab1a8e0160f616dd74b026176f0ffa3b0c2c82e3cf0b8ee664b098a72ada5b4c7be3041d09a9e66b4452de34b8071338608d5bc4201d0f8e4e5745dcaf0b4c1e9b7ec05877fff0bf258b86d5f2cc21ecb9c0bdbe12d1aa250f1ca985c1d90aa88e0e68271c18299468406584d067583c65f8a5480aeb7086fdb4eb9490b834f97d18238380c6523b3c464d900c19352dd34d8119f6c0d251c4a9e66d9951bf9f73dbe1e383b0c05da24d1dcef0b670799beeab7c7b2718c7a38256816d0b8ee06ddef061383d949c60421b39711cdd24b41a9ae83863e3908b0674432270cd17241879441ac228ef2ae026216a7206b7c6cdf6d7f33c88c08cd0455ab77c44c7a7595c696f5ce2e97d1472039c1d44cfdeedc318928965559b5c67087b75541399183d2a353223e62275336230e5b6cc55e5a57d252a80dbe03d0ea0909491d7f4657c0776f93afea865a9722c1713856222aaee239f5ca9b4af0c1754404704fda8c403c2359a15cb296710ea41743554a2831126a0496400657bde9366829ba1b8661929d9cc1905baa566feb424e39aec0dd08ff7136de16c78da614decd6d7780c46db146b1b1b4d651afde217693d688283e606ba75a2ea14815cf87303c2f1ca3708612ebc9932cb6e0364e4e6efdb6d74b4bd99a614567b5378ab8c2bf74cc96410a6b5d639d37e28b2805b1cb500cf68137f874b17f92fdb4e0d089fbd646fdda1e2800b5ed321d30f05ba3248e6d9002c872d707ac69ada12a7fafa2f4630fdc69c8ba4bd7dfb53b843e81ad09790a2911417662cb8bad48444f611f4593e5d86131ae0e57e80286eaabe5f0d34fd3800bfe6843820a3722c94c532578a3aed2fc5b32e5cc4a46089b66330765bd5ad57f8b5772f810a91cbae6fdd9626624d9a25715ead613ee0c6fee70fbd0554b141487b010b89ee71ab9168cc53955107a9e20403d845feadccc21c907ab14adcb3e9975bb55e0aff29be3e6c9b256cff616c4b5269a63867ed8247b91996b224fea0478bd64ac052c28076b1fe61fdce24fce954427c7e4f6f509796407b438158f20065b4668fe9f1a47a03aa8ca155ff990236be726fb717d900909f61c0be2c56878c7b0ee39d0f64cc271482ca57cf03fa944a1f46676a3221b227c901f013c7d61eee1a50e019777ea795921170022f0bbcfc27202f19ef1496338cbcbe98abc67912c11cfd6a6514ee36e41e14c79d8521e2f16ac0d7f4def7f5a156b83e713841d970b88d07459796b6877f00af103c23a56d555c042ab3a62345cb55aab9a89e03896a57723f63cd82d7c50109484ef0386f20b52c3bc8c89b76a54827a657431f190c6e89bdfd4791d614582a95dcffb1a6051dd52625615f6e4c6c4cb043a290b808988b1bb5b74f452cae7e3e7e4e27ca50682260ebada0acdf6a0a0cbfcba9b01691383084403eb92238204d1e48bc0b9953b73bd192c7ee3213ce1b91a41680bff8874716e280ecc431ef1c88d342896219010c4a81c0160a5ed6c5c5484a076a2953f38349615c22f514f8ea22858f3d659adce4c4ce0341ac9c0f1634803759ce430854874fd76165fb12dd6dd47693a955df45b1e3ace4be8890091824543ce3af2c87f6b0ef5d191f217ab526f0287dbdc26e2aa22f243a3ba190b22f943bb9476515fe8d53caea9b801fd55b1e606ca2c222a20e2c4cbe9d19c9dda19bce3ea6b9441b47506fa65c9eacf69217162d88040168f72d374263cf3d361673e1297e514e16ef974d077efdeba0d6d9fa98889e57b9c0e64694c61a451d63a7371ed329ddf709fb602dd193a6edbc67e40a20b612e0d87b43cc38b1ecc6610cd5c750b3c8ce48634e27de64177b16c63ddbc4bb88cad4bac25b6a1adf0e8da18a2b500722f94b383f119ba4f570e352e006f238d61cf4ae2c745bff2b565aa5bccd59408be6db41c032f6cf17b63c4a2ea57c3f70d51ae3ab9ba881cab0475c54f02f3cb63d8480ca968950eb97e0e0749d0cf603c1337808516982004be68502253801883a1e8532103b483a4f10ed92f5011b8d17175f98aa13dfd715bf8558e7c51038ce039d982a1a70c89405a3c3ff54488ccf1f1a22fea05fe4815dbe1da9a40422a2996ac5a69d2e3294dc8f42c6b81b0d21484b8cc5813fcf0eb8cf9aed44c96a6caf25d0990dfaeaa770ebc24f0fc6e12ac24bed1a0c9c8f756054a3841d43aa18175f59c48c0cd98ae4b568e1e38cde0e2c073b3a00ac4476c855fc0cb93b142fab186ac5812fff0bded60128b1533fc17135674010de03512276dc58abe902b76d0e00336bba2d76819299ed8c1a2e7feb6151178b852ce048b9d7dc596b9ba987b9ad27e07bd4466c9cb500cf7fb0a767ffe4a3a4fffd5b13a4daa6782c72b0da5d446696560a33fcdd482dae6f3697414b19ee2ee2ed938b75e768a3689d3e00134a9b30fd7f4b9ec8d3856da46a9748d51e91ba5d2a511a46d63ab6410a859d8729fd3d090c6cc7117daca25f0317d61a72894ed1fbc27ece16ec909b90945fd466a6dafcf9d0cb5af6eee97f2b3aab1322d9f1fc021d77967e23bc7f4d1e8f9821f7c11f7d8b33158f6041957a93be51ad20683ffac898f4d5e6016a02a706077bb5f9df58c493b4db5bcd14070b14d958b05a966b79788f6b281a1d99642bad861f8285c5a0ed9398461f88d35f9a2d448cb43baa8167dd79d75b23391f5985b19892891393133b9c4e3061cdf93deebb6ef24622fc6fcd7a42dc38b2dd69df932685f2b82461bb361275271cce2a4cc201c499cc2245b37c0e004beffd401d5a52bfef0f23da426923f315a4a563b18fef4dfc4e7486474bc3daeb235077cee47780381345807807f9edb2c6bced3aaf80f5179815c78760e362333f6f6465bf930c28952f9bcd23db034148bafa0690043ed8ed5481a62a68dbf180889cdf19fb881f458d1461ac0fdc5b3d2cb17dab9f9635564751f21e1a9cebd11ceee73d64e27e35cf3b3aa7e902dd856d3c14d0b79e8c24c2aa6a0188862f700fcf06525b62c85c4bfddcc974af56d08ae711fea351fc9f41093d9d88ea0aedea1ff031e1b5c9a43caf429c448c22bf2fcc07d69ce820b4c73d4b3a49b3d8007eb886ac9c0592986958a093d82286b2a24dedbf2b466b1a866165b6ff708d6461908a9a859df7030ca1ad469a6946816f48aeab3b5c2d64b42b54b2395a28b81277e4dd5f10b5dc73f23d49cd9c40ef8efef53d6301f69175885298f2a129b06260ca382cb7227312fcaea036502980210c000b0956d2a78364c27292e7c974bc09d1f0cd9eef3e3a7a0101fda77ed1488a8dfb8e7be540243219968fbdccdb75fc04c4e456d07c501b5449abf942773da908960a06d902cd161fed95289b4174891be0e769276c553018af6c036afa3a399144e97ea71fd6fef0666c1d48bb4fbb1ec2474651c88614e979fbaed4c4f80d5f6e7d75f86278b95c5700b787db67e08cf503495ac6ac07502adea9ad55f72898813353233677482a5da10b48611139829a3a001620d5b6ab577ad5375f70a32764d5b2aeb248684582c6c89944eb2fd94d39051408a97b157012bc519ccc0771a4b68a0cb7de7f54e863248b52e1c2a6e33041ae2b9ef368459280d00649ead9660c3f88555d3883e645b33dfb35000ce696951f9e032c8fd2fcba1b4fca340b244e40682efc0c148f09486937742c5ff37b107af3cb664195b8c227ae7c37b8c2e64f5295b40dd796b69491b297ca1636eff8711ce003aae960966bb72b62e232aa2ce675a09a1fe998f40d0d8d4f6eb9569cc6d6c3862c93e6ba48622503626ac5f59bfdb6b9c2eda64041a335de0ab66c3d6e1dc4fd9e1f9d4f5fc8ce33aea14ca076c8e752a4f8331834cfbe3d753ac8baf7b388a6424c9f561a97a88b37487b42ea6d266628336374cb63fd4c1d9482da4f630e304e4640255fc29c2bf3fe9da95115a75c44fddfc6838f2689274a42855008f6906acb3337c4ebb7d113942e0b1fc66d07f39a16753f17123fdb579db1bf94698aea83721e2ca97519090d81e5029932ee1cf13e0a598938a3c22ae33b33b9ffa5a5119db148d2a1c2050e60c8e3cf300f13d8804caf82197ecb53ddea5e199fd95722ffaf3a9267122b99c7bc98f9a20b04910e5676292533f6184671a1bb9d74f187574c80c1f50abfd5a8064fb787062252f4258c11b257cc57f4fa0f4e7995311a5466b228a6dcedf0cbd4918c9ed8847c0c81971d76be283bc3868229b929708202a93265606e5a1a01c844d6290eef002efde8fc8921c6abee972bec72258f3133be6185a96bfadf16599f7c5e7c3aa24db8af1d1bd68c99176a40f2a1d743bb9d84206e3f54f4b450ee9fb64cf238ad605b21be6d3e6ce413d022b416949c49b6c86ca95494ddf842909ef52c3846f220eb257636cf7cf6b2dd58c5ec9238be2996614e3772bee6ddab279a71d83008c9ba4d49250024a8d9ff79916a44eee3c30ca0f4928d9011678b2641908a2083fbc4821abcd7e54834fca9c18221d5b063575e402c7f22abc8461482d634816787aeb0f08dbfde781e10780c3bc2e594890245a1719e2e547d98bfde292430994c5862dcdd9f0813a8f67e356545c14de0010e67ae6a1e936a9d612c583d6631bd809a62ed0d438ec6cf78ec60a21681d78306d406129c4afacc68b32430810cec832944e3a181e5e8d329f325436be66f02b632d659fef721f0b4f96659cd14dd900a8e5f48bb206c8e3c45fea58675b9731cff305f5e8361f5ab12f55d721c42af77581587d608098c7d476a3194aa6de81147e3cdf85eda17b09226a4465569b95d15ba47fa8e68e09f967f695895a48567d40bfa86b3e9f783ff880bae2469621a6e709447d2c461536312a022834f1a4745b64bc296f81c1a81f163c9e1d661015238150d698da3895b8a8eb20e0e469d30b58c873be51492b76c5b134961fb3058d52f9a2d306653a0867010aa3e4f2ac6961ca454392e82e48cea5c50faf422a1fc03cbdf7486caf1289ab0d5bbfb7cefa026befc758d0bfb229d44e296b66f4eddade5c614a9b7484fb3a276a1e5d853d8ae16fa0785ac42ecbaea8d2118ce98e6afd74960d0fc05a6b3ab88f6fb5dc06eba46846fd4a26114eadae4c5991b58eb029d9bf023fadc4d278d5851da0c40afa47e0327050fa73e527bd8f895fa593381806b0cb1562792a94832034a858b290747387fffa3a41b062acd4c87ff783872d99f234d65efae61b93867ffa93bc074d6c8c3a8f873a2822077f9029d0b697a00cfbde8585a74c0e12d6b528a06995f692ee434da3c4969539dbbb1a83b37ba91d41531dd0e48d55ec7020c2f46170190fd291da54095bda4320b6a38f61ceea89a63a222763f86b847c0f3ebd8c227b6630d09cd7fb8db422c21766ec8b7f61193ea58f0b4aac49e7c892aefc32f28c101cae7236f19e05b48a2c28172e551c93127e45ba0d78bbeed78a7c5f587a3198ad1555e9266cf6a135fa15d5a9002372a1d43fcc881e288d5f1ad1a4645c912b2f86829d0e1c2f1a2438fa73791878b79f8612d970a17279b44fef3801b98f5a163c469a53d212df36363a29b387fe5889a1bfed327ea60c4904ef8e440d54683b8c83ca0d2dd71ba5813506b9ef0eb94cbe1afb92cf7fe0258cbcf9a00c47950c80a9be8c67401764e5749f43b02fef57d48fea1cb3150f5e38a584c09aa90d66b16a6d94ac8f50815352432dc912d9a9db222ad563cc2644458df8ed8b59feba81fa0862273cb3e49bdce29afabf0dba2ca6184fb46a3ec484ff2821a66153e706c08a01cca71310476396441ac4d4b8feb903586b7dfa8f1c02301630c20128f534d676fee307a28f016c081827044dc9a4c2d2af7d0c98ed9e5652dbcd65b6f07a886887f3f0e9b1e44820c9a9c879826b7034cdd389b62b18546a91647a3c364b402af20015cf7125407c8439bb341122cf783c8199d08a74cd2f44829167930745b270f1ba30dd8ca64d2986ad420dcf63d2a13a0ae2b02bb84a1c587c8d0dc640a1200ea0862198054208f4943505c198eb3d776dcedc3021fa0132aaa22c140cd457131e79070b14061ccb5a19ca3b0b4b0dd711534776231e9e535c7b006b4849d46afe79c5933890b3c2c2d252533f6655e15435d3d610868d7c2899671e4392f0ab5a80d50b0b5008694070ec53f952a154f62c2c042cb57fa12dab71c00b8e4d8ff56a61210ead6cfb4efb786af0e06b70963a4b4d58918c16d5e0cfb97fc9c83167c6c980cd6ea0da4032812c517b4fa1858e06e3bca3c384581ab47b4c2dc7cabb0781b01c43f95ec1639f716a214957870ef4909d028d91d1886001ad2bbd82c97460ccde777e9d77da5e614a63ff129e4405c20d98050c1f6bae0a4a25476be9a79f5e2f442706c8899cb49b58c02adce941cef87eb21fba7829d0415ba0f89205a392455fcdf484507265a433479aa017815f2d7fc6774d14f90cf61a9f0f096594b6a350d2799403048fcd1110e3728c11f6df160d0574993f09ce899f38081294e5cedf7edcca4fe15b138a3d99e3f3a3c8691050ebfddf50da80171c05a5ceb72759792a16c1660ec9b9741bc8141437a2889f049a1aca63ec024090b9e962f0cd6357738159ce45e3ff8b6c42f5470b3d2417c2fc603b859479f1b7da869e861e65b8a6b8e47f1b634ab703b81048809e951a4e36f724d34e0137be1ff02204a9262a3e47689271c0d5101318867782a511b9bf92dc53405e46909283908f5880b7300df10c23129fd0f42f2c0a66e19f358fa188c939ee9a132ae0814e2ae5bcc38f9fb5f1a06ce7ac4ddb872ffbfcfb8d52068688b5688a1dcdc40a63e92e02577f128911239e43a2b8469410c51b9fffd73a95d8165e8498b66c45f6746f0e6907feaa75887ab6b814a7071888a4a3c091ec5279e92b140d87aaa401de943b5242917c75c7d07a7f9fcb6f7e2a7e99dc1fc04346128d650c5810c735132cefc92be8c6e9a3f1e839041ffa190be8f77a84dc984383b794187198878ef81c7fe8326df6f8db18ed2c2b583b2a6d421f8748d10122fb949308056a2346430e6bf7c602af5fa1d0d4fb358bd3a976e8e28bb3d48e55f1173603c1db38e812bca4d574659e4443e37f816247e1b55c0021b9a2af5a88aaba4d4d816b901806e200d7374f0b6b6b6e6a0d1968f6c52f0593b298f7f300f213a29107a34f14993ef12471d24186ad06c3a497a05894f6ef88058bbb8572b93b29e1fc095c1cfa5742f0f7a0cab72174f6ff3ebca8839d61f5ee04a62284310c62b69459ff22621bc4732f3fb07cdb43bb9e883ad38a57397dc4b91061388314f95d8031e382085d313fe35a10217d83821e4ebe0b2a166f4b0a3a2e743f14a5a079c49684a21ffeb57a63bf3f83f31b11cef23b4efd217ae697dae7cc31ff05f8520c5dfa8409cd1292159d0e08991cefe6b528d1d21ffcaa3dda39d91d4fac222384636c3e7d6e5a63e5e309fc49d6b794a44204ed70d1ca137165262b9301bfa0f594d996daefe42d687265d669bcbca3c64c36b410f0c5477917c638d8fca8777d5aae39b4585016f72cf6da88cff9c5731ef8d0d66693c6780d2761d965e6db45e938569404f90f555f35782980ad895d90cfc5a3f28e3feaff0335ba85f0607abc6853dd059fc8019390c238861704baf43202b66a69684b4e0ecb727589d154dac49be925ab0bf863de54b4994e32c2846449be41d6cd77ae2ea49b063fbe0eb8146b12eaa68f36f9b5d540fae76e4c2224dafdffd1afbedb5cfecbdfd6469dfea34ea0eb558d69beca5ffdfdc53741b2f0c200ecdc9b6a1571abfb431406357ef8b9f316de919307351e852a8989cea7e65f8915ea65c7a408bc0b33f24ca87815907edc8a8f5ba99fa151173e62a9d08f488f61e3175eba38c01fe306cb1e44c564e8043df4c72f6ceb338fb20fa686ee3c8bc7eecd9c9e731a97ecff615802b6f0b88a49f61e75f8647986f66ba2e746feecaee8b58d3e13809199710cfd7ad02aec3ce4f19ee6eed5da0126ba4a737caa64fbe03d573f1affc82840dfd1c3e12fdc0a721f9f20b1db44f2912d01c92d25ad8cb08dcf839c988caab55463c3b6ce1ea36e3220d9f1877d067a6968a2ff864733c4846390e6fdb7b80a0a0a51029c8aa150fd4bcb918435817eadc55857206972fac189ad4f76d6087be229f49fac93ffa0f7c14fc17322da808f9c84f9e226c0090136c2e98a9f05221698ead1950ec5162c8f52ae75ea224ad9bb4e20c378be27b382f6c65d23058268cd52da743d2776e95d327b279c126214aa218b40b361140ae7d05bd51e11d76e93ad84afc427774079d3a1f6a0d8872760950d304638cb313fcc384493ebde7d919b7c825e5b7b9f29397fb7676de340f670780b125aa9c392906a1ea9de252af995e0dd984a69bb7081f93f6848d2a8606ae85f7b2860260c7077fe241e038de91b51372d85839ca8f7264d1aafa8b22153ce2410d573d72730aefb5b574a09a13a53fa597b604c10b0c5d9e876730a9fc96990200bd180461062ac05a0ff425949df5975b5ca3595a225522fff2df9bf5ae0133cf3603edfa03caa580312d5262e5cb0dfc93bb494ada58b9c7050e83d5003cf0bb9e46ee046279424ccb89994a4a9f0adbff61a6dc86fbcab3fb6c7b6987a8a868b256af7708230268cf51c6505e48c4efb3fcd73bfe8cdea2458a33805d49820646f4e6652f886228e632a268103b80cc1e3516b455122fd7d68ca82c21ede9f51e977c82e34dd074dbb788a75b14dce30afb3a7b73d054a215e1ea5c9d21014b34d9c7175fb9115af041b040e351547b5420579ca7d326dab189076ff5e7dae9397e838d9c75571b3f6e97cce4c0d8798b57c21b6a956edbbbd28942a93437c5363c444b3f45421fc153e6f481b70302e4aa9c9c61833bcbeb92c8162ddd8670e5a344194d90d2e71c8b3e6c4fc255cba31c4013d97c42a9d01f6a0e4e639f1f35d34d5bb49949dd7bd85ba29326eb113bd607e6ffc9327140934d7bffa0bb809181e52dacb8a88f96c7ebe619481acf694c1c426a1ec32126a41d0e0c4e8215f52bff3fc84a39053b212b7f058c377581db47eb73ef476fa7adefd3221d87c6da1ba9d83928d7aa128dc29e369b8d685d4873b09325b9cfc7412c0ef5e83408319ca01626f3fac447000b5355196c4ffced659966dad332c6b2d090c6fc45d2d2b7f8f0797f0d1faad807ea9148c0fa8ee5dd9c674ac4ff0c5a2d19c9523f30815f5a4f5f11b8d5c8484e4e0bf5a77a21049c926e45d935091fe21ba3c71e5c284615725325af1e3955e2b3a4e2190925eefd9f6d0aa4914e199a27cb6c334a01a6e3b90ccf8aef57d918e0df5897a908d4e68fc6625bed44b738370c64a9339016470c0e51806b06b05346cacff2591450f6f07a80d0e90068d3dda95d7a2875cd2708a7cdf31d01eea2e78514cd7fd7f53ab8db7228822b5280f0bb00ae26ac5c4c2cbfcbd65100fa1635d855c01b1d5f32760e010accf0bb30eb0ccf467b60cc10ac37595ac1a0953df757997453059a511863bc1e00e67d588dca2c52f8eb786499c1042b88e2012b967b4be608ef88e91bb384c4f0d6e30473140bd0c0fca54aa998f07c74d479e0cf94f8ec59de8c173ba7b7c6642a434dd4147025c87de9ad9264b9308c5a6014e6eef86a6a68b5b4c153f7adfe4425f622c0b0a461c43d9db8ca59420a3d2207b33994882731fdedbc6888e0ee4f9770a4e8fc91ea3b1716d4bf13713cbe80bd68020de896eea4593abd138b1fd726831c276990210b3c4be3d0e455c4fb0e383a718ed8fe23f2e06511a018ee3b00f5c686b16381916afa2abe0d0839b4205027b20b143a9f8e76bbc38fe4c9d1c6604702d5852e5d1480bde7417e2da871b327016592ca69847cb611f16a84d0c0ee10d2eb73ee9333bbcde37b9418b21616e620837c3b07af0076e87f6bb2e579d80e11b6d95496fc445e3d09844d72ca98d6684cb9a5340d8b87c82f6832513bec10bcd9b4ad68df69354874765f866b85bfbf011ac4e1833b61907a4b50b95fc2424da4f99e8c510d19a1f5290660542cd481ce4a2ced3f20809e7f907b17858d56cc77d45f0ac89b57cbf7c586bf3bfa817d8f4ece8f5ae2945fc885d762116156cb7ca3d0df25fccf941ba251b58f1a0c9f19baf93edddd7641569726152c29e1f8b5d50bd004eb51eea2957781383c2197ebeb59bf983ac3f809166f0c0f95c03898e8381eda5513c69baf5ba25a080c4d8f9063b5f7f3ae2f5b579347942526e38b7185c27047a766983f573caf72f9ceca4a90702801fc23d678a17c8cf730b0c1e13efedd394381deec1d298e0c5d0db522ee7686a2f2059efc901112e347207114107d5a3271c5a682cc899f14513486f56d777826437e6e9662368a0f8d730c83b1078cf455bea0d401df1ce7732497c3ae337a4a90e984c7c14cc3abcc26c89893bc3c34bdf47c3475864b7d3a61c4e062c5033874542c4dfb38b9b7d5559b8c5b90d9c3f0a7448f1c2b470035bab7ff118c8be762d092e1e9f1d16fef258cc438b8e0e6948b666253d14cf39f133dbe93027a7baa04281d7d9fede0411b6be5b485f424ed51818d0e551dee54a98976eca0a9701786d2cff31ad4dd093392846c5f63908e73af73631aea0d6a2e54241bf947bb06e8af658a5a2c2fa1883e96677d59f2e8a7c2c7522547b14b9788517af171c5a7d47a786b3d2f3a8334a2f42efb4c86996816fb0014885d27a7fae21e3a92278d9315b5ac1df5ae270c0ae687f1038e4ac73a8337f447fd0da88f98d30a283f237888ac46c03b15b1a5db397d166602ad9ace5f004a4d509396b5387241a7a134166d1ca051dcf3061dc3f8f0042e877e15132716d39937ecc06d1101acab241e2440aac42c87903cd8badfde687ce458b607264785ce025544cacd8bbaa25372ae149ec939c97a43d90d859df8fe59f60ffee2c8b74d477730ce947ae6eacef433531c15932799d42b4e1722250011ecd2485029e6d06a5a978b9bca503d38f772c968242deac8b8aa31b2c41d75ccfa429499b7c2af31ab164703dcd63770cbfdfc78d202ea1d4e140743167b25124c63e2d9b86f944091649acf2af07747d0374a2d8b4be648952265fddeb8a92f1ce7f8c1c5a9faee1a78c03aac2077c143e73e370ea3cf99f75de73acd37cd466201fc2b3a85124d39043a7f8b3ea23262ce6890741a89b4f739abd9f14f207abc1bb9082404a8b970a5851430d8c4fd0193971af791e6770a1413cc273191dd4d1648430ffce2a86bccf8273180af4936a2e0dd9816a552f4feba93018ada6fe485a904c78eb02bcd68c637e1b987dd96fb682425781a9a240ed26c750f0452297620a76a733b9ea316238cd62d0ef492186c8eb97edeebf5038298192c86832d10e7348f5639233786f20becd89b6bd31be71688a94126618f2a2d25ce38fea33334727bb740bddd625661835ca47af9724bc1ee5a3a0df08e18325ddef856558caac312f75e573a8a9408eb6d4980abf584bfa20ef212b6c392e058fc454ea34a3714edc14dca0415c9374fe1d28a7e0ab7af1a7542347a5695d18707d47adc73217b0d608691777f02f013e9eeef3024c0c490c15b6ff58713b9a7e39393519fbc434b6dd1d00739a197aaf4641365dd46c92c5058396e50345a6521c4a4e2f0b75dc1129358ef1267902019a07101a587ce2c91508aba504fe25e52c69c913f153ec85a356f6bf45140f68b2b492725cb3acfe3285010fc7184bc68f60d24b611325e4489e9f1fc9eb1d38de0b621c58654304183343018531750dc6986189648ceec03eb9a8364be93b555441c8a197c182b642cd78332cc5c662bca51dd89081c31daae42c542247ed0f833f33425d2e48ccd3f90c95ddf8e8139f35846360c5b0b626dec25a354a58442d2692f21f16c534edc0d4880a1e9e708690d5fc2ae47721189dda32879a3eb12bbbfefe4960f81be217ee02baecc5d4933d71b2b6465fd0742f86e342e8da25f4d0dcd639f7b550075bf3f48462f8b3ac04dd98e0e396fb82439dfc2ddb7e7525dcb7b5c5af55b45ac988ca44b794016a447c70a61ab373dc4b45854286a50c19f478265097c87f21d65d060a0a19008e271a5244544dfc1a4825f5f4c6f32955ae3831ed78d32d7192538765e04391a7fb0192dfe6fa5c7f8c6138eaf6a498ebf653de37592f15dc7c502f5ac4449d7202fd4e09caf7bce38f24bc20284a90a1c86d958f19c8d1f2587f0651f12684bc9b30307d9bcfb40610d1c3744e3cc0e0e0ac844c6228284ac24c3820c7ff94b2a75de9ff4ce60bac2432e6a1c420c59313858952ce00c26faf13bd0ac9262a52905133e1a1319457b44da2d2b1a0f0f9ec322ce3bc78af5394a003fac40aad7d16002a53e1bdb5c3fae3df6d9b7110b4a04bf58a94e044fed6bd139d2d160c1d9c1390b443d8e5ae8252350a2bd821ee74f457ade07c63f85fba3f252a615d0ee2b3517945f1364f63e58f39994f89ee38bc7503c981de71b234d97d4e380d95f03a04f9287f50f5002ee9d447a85af16fbefc484a6dca20c12ea58a1fd5ab307fccf83d5e11c5abd0655d064fc81149eebcc30969f392068d4587be3416e0d0ec97f36813ffefa6b911665f9be5c67692d3ebfe23673e22a43581a63210f3e5571e55667e6011ae7170a242c2a122f3889c288080b81be8b7756cbaa79c18fcdca606cc0ef484ca463507b8702fc6aca2fa68b018f5865b5b2e9e8999ad6d24130d61745f1cdbbe73aecc3f62a77e94aafbba5ff77d626ad8e01234c6f690af230995a3a1c9ab4bd2f99dbc85f06c6a1bca71225d46d47954a8c42b8468469eb4dbb6775068c59f18581320765fe3ca43f5e47a8a246a11d6164fb619de87f863805311716bea97171df19dcc98eb498a2ef146501e61057829009de8922d30e8ecb86db0cc980803558c1be466a30242b7ca3a93023c403d20c8c3f5d7a38bcff56a024c2123fcf04048e301484eec27394ddc071cfb4958808084269ce9d1cf925cb00da3b792d5fb2258f20715292dc4ea833d2f65c37ce1ebcea2bd0f3150b31d414da934804e0e63c0be7192265b675da23edbf9e1fd397e0fb94a06cba4ce322ed0a598a0544d163957c46b96250139b5df6090fd1f636cbab25d4b5cb0cd64856ba3a16e26c2b7e54e417e14718cc3fa4541340e986483dd626036b213db35e5d09231741970afc1d1d54081a3fb489fe6d0955f3f4ee6c833a8aec59a1039c5cf8feedc84f47b5366f5014e4d7a08869ca54c41f5e8e61b153da669b2f90723360fc95929d2ce5546cf9a2c8fff38e61975b9fdec2d3f0ee6dc9cac6e7eeabdcdcc8dc61f970f80aa28ed92ace6b59fa5f257064c75a30826f677eaa07d8735d89b834a7548f0a721aec2e03df280f4673cae7f5fd291f0debe69ac825af09628de8489144f53f3c136854f9800ebf3b3af92bf761b3c4defdfec49cc4a3f387b43c59c4d13e41cc073e88c8d96d955050261249f1bc817ad6117f1e837f072b53ff54a5e13274a5cdad84a7fc7e37ad5fbfae9efae316c71f5bd2b27e1dd389145b0c04c5a45184af52c15010e16d9157a5e03aaa556d2d2e2e49b66c9a165d7b5e7a3959f583b1cce8ca92b180ee207d5af199724521ea91e99e3d0620abed19de4ba57710e30c6ac5d9ebdc8a2c87154abd2c03f50211528458b1f2d5515948210c31a31d82f2ac5cbf98c9e64085c8aeae810680f2d962faffece28b3bb939cc2ecddeb3d00b7c62a204fad76359d3e6a527cdcf33b8d9b494d3568c4af63ac9364ff5d869ccfc88a9e6103e1e0d1fa20f5932ce61767626cb02f7fe534fa823c44b703748a78a3b5ceb5cb89e162d8e1149bdb071a51b248d9b0896f06a5ad480bd11d6fe18679430de4bda5249b42995d4eaf0d98b897887fc4067045f5c48263d855612f16ba66c82590c3f022a729cc13450bd6ae594837f36a502a6c18b7cdf52c1dd84a4fbdb55221517a57ecc1101969ffda0daa3a1cbfe9c49ea2925eae2fece85028a392381115185077af582292531065192ad020baf038add78eeafdd7db35abef20a1ed4bc1aab7ff41c6b03215ebb90c597dc37ef12c0985effe1a95652104dd5758a5f9181e2e4bfd315d1f95fe33cc30b1226e54fa8c19741a0de15e1559f84e0b1642d819d5de307bb90fa8f6c6841eb1a71bd15f7a03bcf69388ce42d5ae17953bb5eafd7085ae3d4f2c8521c9fb152a946e2f6f0b35cb011b3eef40ad5ebd3dc8f08b1071cd5e0d327671e12aecfb50aff75a326c17f88c77c91063bacfa565fb0b5905d8537cede454894a2cca0f2ae95e0b0920868ad0786b928dd720b711bb19e8968b0756ea0d55b4185a4cc6ec90e684f7989665b96f4dbf58f51b6af5d0e84312b1a5b15bd2db23ae3ded8dae87e4a57c75a2e19785f12f91a5d0bdc4bc1f32c6aa8bd21468df559bddd0753179c11eb6a2b281df707de32e325c871e9efe0e06fba5ed297c1d4e9cef29dc9f28d83e45ecef8e947b8b00b46552ddf5231c54248e598eaf6e9a07cbb87896bd869052affba1b846669fdc1f87e1f754f979d1fa00ed34f435435bf5d9d2dad85f949c0d4d61543425ed6a5d5db0225f2770206691eb2fbe5e77a95812ef0b6644e248513bb34444d26e1c7aa1b9e10d462057014c2530bb95e9159e36b0bb8445e50b777f82c6ba0fc23c50f5f1f5fb7b87822e3e86e129b396a7d247c13e2b6e6581d664ddedf64d41cd38e79bb34518dc54be963f5e7ec0d545a3f2bd34d9b3ff2c0580b109f79f0c4a2e9e18f762cee8f7d0fa030a65106231fa751072ef2fa4658a3b57b0e47cd4ea43855a0967d5e04994f4ac58a28c79f650bc84dfd93e95a812c00b5cce66dd10b27a7e0672a0ddac4ac9358377b3daedf28a1afc6dd30b67e0d5fe301806f5a2e4896e7ec7c75ebe93a86160807abdced34809be700e1f4b1a03e8120ca39ab98808e8972d3aea8752d265e2f3f382e0b047b1b375ed57d975de8790ee76ccd0a00bcef3a67aeeb92fc0426a6543678e97bdd44612b968bcef3dd6108fbff527bfa972eaaa851d6604692c14bad4848eff4dc05a9f13cbb6d1884961ddffac25c77ea388f846ecd8526afc560ed85663f2fe6a51a27d0a67886dcd223e6b0196c447a210679ef1f10bc22e6f9bc1a453207ff94b6158b93822c7f1d98dd8de8525e8d81b0c1400abafe9c79d5bd805cd14ec93ae11d76d5169e698d7a445ba61c6a9e48959500f93637f1cea23a2fb39c1879df7abd08278640d070c535c8f45cb5946324b3403805a3f0a248f90993d82567ec9c9279055e1e56256915cc324bfd6e94f15d144442b5f7176cd8a74d038b70df5260e5f36edd32341f2d00863f2ed06c5193650f0f54a560ec0161da7dab6f0029062dbf73a435cf431d7a87daae1ff67d78d8d1a8bc7638470227cdf7d8df56ceb12831ce56508f82010847e33e329770e30b403cc0099fde1053d987729c0e3fadfbcf200a82f7e765c0a717395c6ccf80c00d26777743b5c5bbd1c87cc77884383802cf0e69e79468fbe78b4cfe0b0360bf83ce2e69aae06a46376fbae8c6da68eef5ac2d90c60047bba4fea85c10f9cc39b981c10a4223150e061c254334aba2fd070ec1e3b826790c02e4d7b05b777021965a90668d8a70efa8ef88aa62160b80889e1c309cd423efb0aeb1403dd6499a01a0b3d7ede72c7c84ef2e199b87311204a483504f2df016c01672c2fbbb376335d1012faae02f4536f498231ff974d9e97571cb2a56a18e93f61b08de5269097bc433337d712db4e18ca1139e9e0e0f813d3e84e3d898fc70d01e9877412ad433921ce48dacb8267cd0cf7d7c919291b835d6557527dc453cdb5254712737edb384c90d16ea1a809e79369b7a4d21409bbcf2f385ebca8a24a2fc28aa3ed7696b0ded075dbed4868fd9dba241ededa48afd756a4b60ea54d57c7160c847e0569c8ee047173e6236542128845c958ef12222f3648378849727f8bb4aa1db3aa8106d3cf740dbc88d3b3389da7e9e7058cee800cc074700d24898907005e55e073d520dc81b604f7971cb53cb864cb15e4208020ffa9107b56f68109481319cc8f99ba360026ff9fb54bdc46507a9f996b0366aab65c74415de9b2504a9372516321de28e1519b073e077ee7fca86cd8ac381863941240e5c0f162617203d2cb8c7df76034473b158e38c152d3685c21f4cb5d25ade07b80f40b5cee24f6cb6c3d9a4198d6a0033b5589b20d18636ccef01dfa6d648a3733cfd7597a3308ba22ae685eb9ce8d6ed9374163359e12b986610e1d79935116b6ca8e4d202a5116ba3dd8aedd9a6cbc3312a0d6c5d586a85f00e967de88fd645112a206595908b09b2d07b2979e185c830d682470c462772cdee39e0f7725a808314065ecc76719da1c7a725e1d1bcfcc018f1cf73f7ef31b18751d705553127ed4f51e596e743c34c4a1644f395b4a5ca407b274fd799b9dbbf90368b57ea6da279aff4d6fc202ce99e40855fbda0b4d73f0d8b1dc958618c88bd9c4587c791d399263382a1c577cf93aba3091ead160160aa029c4c257502131aaf80f68184cc3a86ca4994d909806faf54d8f2f81f378346e2c2c2934711acf016e129a0ed562cc854511141ad792cccd1c6ae4e2878ae6ba0c0c2315679b62fc8650c652f57e6183df7b26017b016c822691a2555383fb5de63772a99b0f65e56b91ffc6f4c56a9f52aa03d10b29a77df905782c9478094f6aac6c6989ec9d0f4d36324951010dd956446b78410fa98d0a0713f62d143a0db0a25e643dad111778b6a9821fa3ba447ee92a3290ab0d62588d6cde8ef1a760568a2b820aa445d47cd0c3877e1d98c2299a0150e1160265cd0faf20535457ae720e1e2ed8da4231cef03d0ee00dd5b14ea82cf1f4c8932e1080b269bf56cd28390e792f0c006111ea842582930a36cc765b3e314c97f548af1f22e836a37c255282ea56712536c995d70f51054ec860b7acb7d6632083c062aefb4202fa9ff659fb4be8c78639309f2a774d31a1f741258222668ea2929dcc92a751d62bdd05ba49248fad1211947f94687498757f763cced2a2829cafbf7e9f152d7e63885ab99294f019c44e548c5526c8cc21da7101cf451d7ff881ffcb23e405bb0b0c84f39db3b11f24591fda1a29513ebaa92ee14054fae750a872a09135d06f6bc46a029fda0e1c7fb77b9a8da3f684ea88273b0b7a7fcf4c2b24464208a41a4d661f412643789317da000b810957d897ca9d65a567c4a968005933ab326151bc26c8c673f562c65291ad0acc51dd3fe64086f0485982f411cd9fc07e6e5b8197098e37c56cddb3f97cc2b4baaf7b1527baff0d12698ff4e5d493540a1f61c2daa18f4f9317fa0439c414d6f8b04d782041ec542ac0c51a9f80932d64196be1de036eabf8cbb580ff352ee5eb0e44da231e15193cd47c10a6e71eeba23801ddfe7554ca5c6169afeb272b6e48be028eb3592310d0ac95609ed104c23fc8055450f18a586af20c995e61048ef530b0ca904dd958516bff03510c7c20e24926f89c37e0328b6e02e867db4e1e94aa5fa9710ecdc327d0b94f5ef9085b2f1a0243aa58d6e903a4d660007a4ad357dcb8f90e1fd4a9cc386cdb2cd67fc187bae3a943e869b50653551814b5fa84bebc7e091a37a77b281c041df8ffa48c0af4d0d5d60f40adbea2ff17101190989284aa8d3a457dc1e07cc6d381fd44fa53fe0f406f7c095d04d90cfdf84eb4b0e787b1cd44f5b28cfdb3a940a5aa52c93b71d911b71b45f8da6bf10bed6c93876b18a15e1991eb129abae8edd2012e25b4540f90ded72ce47c8025a09c28d62116387e938ab2c0475c03f5740f05b65b73a394b708daf0e144744a12171d2ff67ce169e1d9f099bc749e8e90e97ebf07e249a8a5a0a00f8dce2105619e1392d8a4b94f5368e03c7e390d9410ebe39fb430c5c7cef56f35c61fa01710381cfa8e6f7b8a427bf4c957609f3c4588f7b6ea01a939e4c68d1ad08e201bee1723d64408d97c42e248397230eb9acb7d4234223fc58c96b11bbfdc7f60f9346a4e3b035c6154843d4e49a358efea409ebf1eeea3297be2b9b1a32b783f21cddcd40e20588f53e8612ca54b0b6a4a86e3816d31b5a039be749125cf411cf9fe357991c992726a51c82365d7b5b5022e99577bb13de207880d3ae28ba4e2fcf78612cb5a133954f7c249e3a9fa73abc8969d8fd6b63ef3b39b2ec3552567510665c09406bd0b58853c0d68bcec33454f35009430d6daf0690fd6772b5ffe6f8cfa0a4735abaa00c4dd3d0b99f3a8b52a068f791e113331b28d990f01b3f775328df1b126b2c2d7336d50350d111b3d143e68981d15b614adae1339d34a7e5bedcb8c9842c5f920da8bfd010561730f95e0f65721ff8dd12349032f901bb0461a2b803bb5ced5f7f92b24fc9a7af3a26128bd2e93b67c3e6d1e11dcb3eac7c19092980268a7cb49c4df376d011491fd2ad24a0c9b3d14e93c4cb47eab0b41e7e52925680d55de3129f96a381e5538cee83067bbffa7d2fe47036d0981b67a906c7905f11ae11ddffd7f62565244db725232dbaffb8aee7a5d82e04120cf0949fd0472f12a352f84e314bbfa956da818016b485f57e1a618b54c9630a4dcc44006f40b541c97b18c6a5a9df214d2f355cc752abe664a370f7c55c8c945cd36336fad21751565fad9f69d8bb4c701560bea8cc44ef9ac8bf60e5858fe48bd37d568d77db896e47cd398c9b3ab744705fad9c8ff3a0935bf3690009bb814373ee1598ffa3dd001fbc1fb984b073e69b1053e8a197c948b5202093191cfe8919ccfff7d7afe7119a50c15af51fe89f011a85d8461185337115a4c23d67bad780ae93d79872d2912ac1d41ad7de59edd466fd7cf124742b69a14ac1a8829769f65a9083c7221a23971c7b4375d271752b433fd67de285ca7662e2875afb01ce0b799df4da97d76dc65288a308f3fb6f1d243d239bd829bb93a4d836e3a4149057908929d88ee0034c20bb4ec4337cf0e9ec94458f03c359efe211a023e4e7478c97538bb5f0a3ece558461794d16cee779a7bce0d412ca9e1d1e9681bf278b1e38ff7c283e4a1fbd9ca2aabfcee38d8c260a1759b9a61ef3fd984bcf923343a092a894ca5d17e9fb02bb653abfdba3bdf910f1f59c99f76dd16270d1b78c35f3498fc09af1c543426ff24fbdea4d21c415be0784e43971667103c2511c128084009359e65dd9bbeb89e7f83fc23a7378f0d475ca156227dcf42c1302363811ab72c652bbc89fd08405602f78450f5fd9e4f8fbf18366a26250d6aaa357fb3073f94c9c11ecb25bdd30d16f4c414de378a799b75d1dbac40e2ccecc5cc7382bd13378c34ffc48735532364f1a31bda8f20cd901dedd2d9cc782f0ada5a2b5b6f06214de9842c9766fc238c7a4fb1665bb110554f6f034b24f2d4d98d72586fb05e51215dffc38dd2a4234fb3fe2472a79834920a5bf9c0138641a8941ee1872590b159f5a844259e82fea0c08374d32e67c46e6d1e542cd73ba6b7f82ddd065f0cc1f5d86081effc3b19856816c799d5f7784f8ac23cb36ddd26baf78d5fd259b97afafe8520bdaa6bf169b055e267f2eab1eac7ed65dd8c78f285843cf31f81d2df15c686c663512376294945203c2308a3d61de601e8a5c70c8d8c8e17675f5fc34c77a7e50af2a008983c8e3995d44bfc38ce14afce361831fb2cac9aec253ab103f17a2b0a568c34eeff88f7dc7e0ad34f528353be30cc600ba2f0fc1075ae1e015a5b3055538ec98c52981b5da24864aeb700a331832b79bcd5f0068418054aab32fc3f05880dbf0e8f5ffafb0b3a48493d816d12bfe9fd257b0f998bcb9fe58f5e3c940871704b69220b3d2d963660f0195b129261edc186b3671e42ddd6f6c041a25844e7678c9b7a8d8ae88da5c1c4558dfba7c3f72d6bd43141bb50517edf210120fcfcfb2d7d0c1135f245c7f5600e3e637a65339f9248ac29792563ae0f530698265aa2d6dae76ce019803f37a308d47abbb2efc1df96c6184cb191caee1eac1ca361e801c06f820eb5adb2f51881fde3546882c965f11e50806f182d540b668ecb85835508ee55fadae1cd2dea1d8d6936d6178aff2fe9d4615d2ecdce9d24181932868efd68642bd3d6711c767485a180685d6b5acba285099f289c63aedf2ac3752d90f469d06b03e4206c69ee84968d02308e5cbe6b1b6d245aa38bd195aaa81c9444dedbfe6905e2e017776871a47edd3d2d36943d3f69d4d0ad8d52bc0ff94a8b6b3b726d29a2d8ee6fa6c0c6aab92b42380ab9eae952b081ca4b2a0ec3b44802bbda45cbef4391361bdf5f3f0fb7c2d9405edfbe2bca6b0132691bdde72a8a623571ceca3cacf5cbc001cfb5ef6a2de43627560afcf0cdc4483d6bc6ea0474c63f52e1cef3b2a86b9d55bdfd5e9bfb5ae1c9b422dfb1985e992c8b93001dfd498ce6718c388d26b5fccf6f072e11164f45630dd36d0c1995dc8291647ea71ba149b5081b3c2a518e8a327be34805cd3942636829383c92c0833abf07bb3224c8882685fd7fbd584e9c2af03521f5c2c3531436c868ce8e3a12dbec41bf9a3987a73a94ead608349ca3c9022c0fc22663d056160b4827e27e3cfd36df702adb002e9e952132febdc76a1badcaf093ae24f7942c1f2237a6abd77a116f3da5484dd22686b3b9927bb90f4b34e3aee511f6097216f508936688ab20edebc0a575d2487240a0f17649260e4b3ac247f4b888f2ddfed5c8ed4c808f17addbe83c86fb8151843d31e5cab3047853f9ba0401d4e6e516b2416867cb57b79ded283e875214ebe8a8259436017eb3c9126e7e6533730d7c151d08557315fbc5ebb0f86d1828afaea1e940e9b771ef2d2df14c295caaf3e0d2dd9f8b7c4685e1c3bfa414e9ec68fb1558ccf890c8d2a6eedaaac35cf5e3130f15ac657db8234689a60deb224d21708bfdacfb50580e936076b47ef201f645b3c40576ec6f90c2f99395caa1a9ceb580b7c13b4187b09c6a59eb71e9ab1f4719ce87975a2671a41e63099ddeaea5870b690b0a7a4e41dd3ae7026c3befe550e1de50daa75398c072370927fe8c199c976824b149235b2678f43af8423c237d95532a6cc5419c7064f0822ce0b8324850094ba162d0d88f4635da1cea02e63cdddc37d61a010c11ffb10de57dda994e476936639024bf28d00c3259874373c4a9b6e726265d6ef9b9ba8ef6f9118d2a4ff246ea2e7bb0ff970995d292b14838be52ffa0b90544347533642731c40c477194e2d42870ed365a65cd9166e61f8241f24681acd65d25cf30625ce131325928351d5606c3dc1d61c2d1c01530ba495f79f3748780d44c29f14b67ed3dd1cd0a3a39031f76a72441103d61a2e06a96f7fb2eb3e58d253106e65c239d57f1489bdc5843f28f7e0fed45c28d40cf8649d85b19f5175ae183948085b867fb3aa6f63980f0bfff79f7e038e44a59e3f78a6e6e36e0d2dbac091ab5f71dc923ba1b39aba80742c3c72d55bb7f48c9e4621a74073dfbe44494c353a88e85bf9137afa15222b5acbd3e06352e38feff3fada8af6ec5e256ce4bf064b46eebc4552eeb91101c939fa476d46ad340655edce56d8e28dceec5fdd67c0dac1e475a3f61162ea282ea881524937322a68c6511748b1644a058f1b1e352be4ac3591a17599936520bfdfe07ac20c51c432aa331e260fc2d5930f74b02ab878c5906103cc82d10aee5001a1f3c49d3679b5e5608b0e56eb01009d1776fc0f1c1aa9515ef6a751cb984838c2654299181e8830601eb3fe2fdb7da83e144089e4f97c3a79149d715cb63fd1e22d440d2b0394ce400d69661833423fb5bf4cf02120ce0af2ed0496c30a430d140148b413b3ff626f46e5a0d940b102be2b191434edc61ad5b0e274bf4799b9a7ea63d9fc24454cc9191131c323f1528f2e82916eb7a0b667666d113f43472eae6d51b7b6314d6d35c7b51d536b8b21a8ade8a9adf5bfb633756ddbfab58d92d7d63aafed3dbbb614716dc5e6da9acfb53dd2d736d6af6d9db8b6526a0e6a6bccd596ea5f5b09a5b656b7da26a66b6b22d7d6daa9adea59db63626dcb8ada16d16a8bb9d77633515b19a9b6d8666d4dffda5ed36b1bd5d4b685b6b688b3dadee9b5b551d69634d4d6f054db93a0b6459ddac6f4b5d51dd6764caf2d86b0b6b2a7b616b588d756e95edb6ca6b656b4da225ab575be6afb4ea96d4a51db02626d4587da8ee76b8ba2d756dba8ade95ddb19426d8bbada56d06b8bbad6f63a575b14726ded766ddd3fb55d116a5ba4ac6d81505bb15b6dd3f9daea106b2bb76b2bfba8ed81b6b615bddac6d4b5b5ddd63699525b83acb676476dd587da9ee4b68d9faeb9390071fb801d67d6f9b60ffceb16e23abdfd49f2f0e2438dfdef87212404ad7e0e79b4faf33caeedcba30bbd167b68fdc6101ffb954ad4c25bcb6b003a3ffd02272f76562136b262c6bf157c91ff9d248f67243d84bb7e07d232e71ed73af0f7d77050a081359cd393ddce826afb72c5774f1649d7931cbf5245c101af0f5eddb34074bb83e1e05dc374d22f4f03bc7530312fbd60472dc62bc528c7adc62a8b298eac8daa8aa889af8e5e8f5c8e5f8e5d8e5f8f5d1e5f1c5d1f5de5a6c727b50c71b958b717893c98568cc9163a1905e3b590cf3efcfbcc84026f64d0d5afeac10b0b24e4eafe3440072a434d8657b6d86ee23028357a44e6b45f91c5b024fe54435e2c1619020ec86283e6e6aa2c16d0e3439905c8da4cd2592cd4c6875db4803e2ddc95771ed6c2ac167f2ab61845c5c7da16601c99c06e31d08c950197d202507471610051ee948b14dcd8ecb9600bc7a4a98b1573ac20bbd4b18e81ea5db495c4f3808fa017d021f0f2f6a29c04be4ebef4468703ee0b6379f8c25fa4b7c08f041896cddf938191767b1f5a30bce3decf208c6d0258a5c2d47680211a46b5de7bd58769ddf78e203178b70486568a696df106b918a641dec38c1126761f431cc3a2c77c2abbe7081979b3fbd823c328c7bd5e2623c37c61c9055919ada85ce79649d4e5f67a8d24de6e7d7eb71c89e1b5d35224487eadda41c90f611b5233217c443e8119f6e95300c809cd798ef0b78d87024b567d4aeaf460796bac291d5926cfb83b3beedea3e0dcdfa3ebe39828c86d115200eef73891b34a6b2bae45c284e4479af5964692af7f30a952c39cbf938b8d7828782813bcfeccd3289ab45a6b46ceb0f9b5769353f6cdc73939ff167372cad7f93b69673fba31a9177a2235f4191ddf676a1950bed840875309fd8d154a9687e87349a25d0f4669e519fd5c7eb4e90b29d4409f939f289da8bb54b983295ecca6c9c59beef63d650afd34b956d4dadfa86061a666d79c5a7a51155458d5c9f956bf86ae12cac6fab8266bdfab564a195b7f17726dfbe74a2dcfebef62af6d9fc05265059b5d456c7ba4abd6056499e2914d2e5f766bc92cabe8b3994bd016fda60514a13677e2daa7f9b5e4d2dabe8e6e3bb6f5965fe9dbd65de2ae36c6e5ab30b7b9d9dcdd72baf037d4ce3fb63ba7e4aeee2a5e7c11797317ea5ddad7cb2e8c6fea62be755f7ec1c5fa4d5d03b8ee1130b0088287b309fe4d1f0c01e4fd98a06de17b5c6fef859d6d8b27875d99af6b87d14e2306af25f1e94cc5cff6157357c4787527cbb83126f12712173cc57d60f1a8b87843304e9a8cef91c665b67115723ca01daf79ec71381139158d1cc948ae87251f539343f1c9058ef235a0720c59b989583ecf5a0e862e57e9cb0718e6683ce60e98f992d01c1ed55c66369fc29b0328ce6d38e71bae7324e0b99ef47c8c7c0e653f1720d0d768d03158e8261ffa3c283a98185d45471f30a4a3c1a43b54e94bbc74f89ce93e992e89a79750c880fa73feb14d0b4c16db876fb9f365abef54f75d9ce457a6bfa0fcf7c116e0fb6cdb76602712ec6fc1fe53835ddc44d8d1df85fd74d8d5cd871dfd95d8cf8a5d69b1a317fb89b11ba28a7ebc7afd737bed6d76ccafc773b43156e112974d430651e4af8e7c4b4a720f7abac493c345f9c5946fa972d39b84a16f84ab5958482ac0ca44f2268d7d63981aeae73b57f839132ede7cf2d6e30da2c5267f12bebc8766a898cfabcc68d8c9479aebdf30265f4c45d7b04212b678efad72dd48a660c8b8c84682fcc7b172f7da82b5320a6f329267f33fec5c76ab501ef050b2dcede158e237b82a0b3172c191e4fa178ce417abd405f690c22dd67b8b5c1b93151c02d7b24922fb718c5c76af500eb0d0b2eee6f1786236b82e0b1132c19372f557cc6416abdc05b610c22fee75cbdc1b90153c0257b24826ff38cc5c77a9501eb050b2ecee795c623701d716a5e606a9ee6ffa83d1237941f42fe8d90f96c68d06290905642e50c72e12101711a2d6d1c18a8675d2d0997db0b38248e7422d87e9c6d52e7850ee35f88f7e5ae9eecab5a6da5b52b2e52ba1d2c105ec76548753ce32c240eb70052367ec402abc5d178f04b9a0d0374baade99e876e446ddff72299cb19092e54052b29b1a256b2d0e6a3953adcb916a4d0ea6b902a381ce3d70fc5aacda1def4e7752712025b1f111b403c7dd87031ded9ae7ec76f3b036e966e62788bc793d978e23878dd9cd05741f2bd183393769fb1c2d454df488cee6ac6491c78b318585f84c525e7212dc4bb67712e3582ad390a3477533d5e9e5fa93bab27885d34f4d188e248df1cb27935b428dac5d534c74a7c81f5a2b0ffcc6792237272f35f480e7e14b62a086c94a62409dc2d7a966fc279a5e2ed9130e2c832f1d9f1aa1d9fd74738b79b83ac5ae41bdbf3cb8200bf43d75810f54afe85aadf19f478b68d1bea716ed31350b5c3b757f7b64b12dec7eca721ea54eb16b53fd1f8f2dc0725d4f5cd003d42b7a0d2bfee7d1a25aa2efa9457c48fd45d7bcde9d1e509cc8b89fb2d81f8a4d84fa9ce5a7638a29b8492293cd6abcd6b19ee7d1a259d6f984c5794ced22d776e5df1e598ea57a9eb69887ab53ec1ad4fbcb830bb240df5317f840f58aaed51abfa165b8fdfe7269a0d2a48b31106c45d6c7ae3e1f5bccc3d59c7601c5fda5e01ad9d0efa30b7ca0ca1682ae582daf588c15f9a63d9efb3c4aba01749980d0e7d12a90266b6ed7202065b980d126106579bcade50873bbd4b5917a25562a05ecb73250ea90669a3c501dd04c53049a433465c20173fc864c7d408ebba9a90a88633764528173a0a64f2a308ed484c909c481c1fa89b11f8b2264e0c9b63042ac6819c59f9b8cecc76474683066c7c66d02b16da93900b3e510a33be3ddcdde86b1cfa13302b77139b070a6bffb605c216d03cbd9e6cc39c35e7cf8a64dab2a3f3ce83b2ae3e7ad8c5aa72ca326d9c4aa4279b4d1b17a675e206b37e398c912fe80e5e43ab66cbf1c970481f31d8fdd9227ee7002e664d03e77088047a8e95cc775861bab4ec650db1ad6949a7b84765cf8159d42bda5009b4002668bd4e944abfc820fa75ee74331782e66c5bff5184f8c5eca9522f81bb266099c7406fbedade119f605837f6d89fedf11a1813170c44bfc4675e57589c95448c7d5b24be8223a6f2960bb0eb30d8864d4cc53a440e0cf35a7f198475836f5ecc8416e20913f8ca0f9271bf616cdad0fb8116028b5a45aba0e0dfe04e7ab5c76b7de0b7a8ec201e5b85172179288f52e7c29bf0aa6ca9465f3d4c5c3e65e15cbe6e0ff410fe838a4141f49fb023285bc745bb63c30b2575d29dffe4ef80509c794b0d2714b98d1275cf09368235c95489727a39b07c5b9ab77ddd3c3c33f9001bc1a5f1a6f84c912d5c27a77f1241947f5ae3af8ffd0533404a9c7c492b51043cd74e349f9453025a7971be70e1e36f3aa28f723df1f408299d60033dd537cd39b62d0b17e115d389768f3091935ae6512fbf660bd58c69502cd0aadcd91a78332fc235f61dcb0e5b701016e9cf69db0a4e5999f1c32383e5393ecfeba9be3bcb6ccdcfea0d213722e0f8bef4179b3cd8ed082dfe648e5f707309c657d2dcb7e304d2c59626ed90372901b7fa76fc958cfbdda5b2c2645783f019b51bfaa5b9e9b5876394ffb344b84ee19b9a33f1441eb42da8800fb9c507394f927731d95ce8c2d75810401ab4590f43dd4f0327e4fa396221921333607884833d0df125a52d2e6e1623eeb2792ecc3828565a25c73012d2bd3e4970b6066b61472ca1d56afa1e4abdbea5b0247a4efc83005ae0a568472bd7100346bebf9ac18e6c240b1e6940f011e35b758a3f55dddfb8fbec5f461d291a9bc8419c8844e999895a5505c59dcd34a47141409eec4f5b56f63b8df7007a20b34c0720006069bb9e82c892323b6384755bcc3467a4af7e9e4ab7035c907d742a52c630b174c45f8c5b6229a0fa57801dc6fe0b67d6e58fa9aa6d3f5cae5e6a849474ecebe126e630b62729620077a747090f7d3fa0909176889301e51dd1c3de78aa091fef42906042e3f8dc41b5a0880e58575bab32a1900ef46cc8614e49ea54e1422d39e4466a8ab420dd88b0e68c81cdb6877b69b167ce1c39d754213f5165178d3d0e84a78e4f21d0359a408d55767679c2781626ab4b1a6249d56838dc21125f9038baedd2d9345901dea2e4c795861098bfb3ab26d6ac7eda9a1490e135393080d18cc236c4426e4f16b1b23a5ec0226a336e97a439c48a08b83265d09334bb9c70a03f944e613dae7d45201f9017ede612a3a1912824311327e6aae343db03af111c2b7ad322d653b883a9f76125eb02fce5d284c64dcd4589020ca1cc358c685e8f16abce4ff60fe80981d9b5dde26cfcaf0e7fd2b12d56a399baf0144e4329095135125364cd8b15564a357f68e5a078f6fc4da44a0276f395b931bcbea52e53217701378159c0b03fee6673e0b6fc7b5dc53f82807f62039a3a80a859a11d6cee526a3963144a973a6649f531dc274b64577112b5191ea742b9a81263512a9f4e35d8c6feaee021b8132bbadcd69bde5659e5ccd24194a325b766665e70e181d3e5d89d06d4a1d7cba5f8644ec66c459acd9e0669bab8264d24e523a9e59086c658a80d651f5fd76a04a54f9a4917460bec06860ad692ba743e5baeae94ec21167413363cfc39887c9ee77d173576270ba366745279f81c79a8690e8f4a7e32bafa71dba2d3ba3fcf77d5e4779acdb157d38f19f34b71053a77d1eca7425095924dde450f3dc127db46a989e450f1f67533fcc72f980afab6e06a8b198defe1a654adf2f065f48f2e74aaf51dbba812b7074b1edcc8f48101c3cbc638bdf15309596c0ad50eaba00da08112d7f16b682ce6734313bbafdccfc98fa395704fc4e6f5d01307ba9c3025d2b2c5224c5b7b4e03cd871990bfe6a5874204f88adaec440d2aa1c2d9bddc70502d86eef939b67414e52e6752e4bb022174954591c162d7ac4a22a6a393be017482bcf894b72d54df53daa8f13251e1d1825f5119ff65c589f4936e6babe06ff7810714cd50460ba2978e1834e3a8b7e23ff535907081938f445ed63e6a779575ce7d75fe69417d445636d99feaf217f11abb8108dc392a96b7515ff35c5eac8d3ad32425bc2de227a43adc44f9dbbdf50aba1fbb95e6fceeba00d01f34122e262141e9244c842237f6df9d602e63112fcdb522616167b49037d492b4130b5c94c5d01cdb7960004f585b339abac23fecf24589d91733bd37a1b82c655cf2f2943a787c1bc8c2a7d92090070ac9626ab9e1b6d82624f55b1e81185e7a41ab27be9327909d6f6e229e3fdd6e0fc7b267cd4d18b1210f03f6d874e00e44be8b0aec738929304cae3380cc27500d1e3f6488b4690b4ed9daf2aa003a8a06e9695d7f6af773e922e948f004788c111407fa0a2c9b8a9a0a2d6b95c78a5054b7104f98e72cedbd10c8b8aa12aff702ff26e1d40cc06f24727911bab7c9b99aa75f2d637f3d70f29119b9014ce3fdc09b422216aafb748bd1675d9615aab605a610da197aa7d44e60a90eb42ec41d91d311d5aa6887b541c10680c5040e184d882ca01815c8645dd27f02c797cf0ff70ad64949fb640f3163e33b88eca8c22242d5ba57064e06e0603143d26b12ca3c6ced79f7c9be170376b3006bc024eb67e50bf2282c057febc6c9f4114304d524fb49b8397d7b708f5e8b056fb1d74955cdd79ce46f4cf51bbaa91b40aab5238f91f7d22a8cfd0fdb9215affcabebd550e21811ecd83dac68365672c5b81b35e46117e43e0d11b79e39b53c4465b5f2826cba94914c088d7f8d08c64c84ddf913e6613774b9192cf7272599c98651024ee3f91a2f0fd10362f0bf5b7b9d49a3cab85441c175a0ddffb79cba49a001a65e3cb6678046511395dc8beeeef33445437af70530045897ab5ff9ae8eb7353687c0cc3018ca2027af431665d40ccba4a07930dc9c398e051a3c041866d1fd0d491b81f53b027ea804ceac14fd9312c831032f18f0f23c41fd8a4bfedcd66dd910906cc5fefde219b40b242ec99ce79e584fd166c905bd88b4a28da27224424217bef2da59452ca24653d060406dc059c0e1b4624243f5a0ffccd78a0daf5553b54bbf6c85ff1df709bbf991df5f1f7b01f919064d9d6de98d7536d24243fbb7a25a8b6f42a90f43c19fdc82d424b16041501d102c267005cd31314578c81831327c0614a163a6647241c82d882e02084435067f19dd606a519d38f129136a00d5a2b9d51b47cfbb5d60aee48e53f01a2162dc61af7c3fad4d61a7746a768af482263fb4fabc5888361c38edede8596bf02504c0647e7427756e8bc2312d092157d7744027ae286a21a6b1231d21721bfe3115e38d9f8c8800d4b5d9228010a8208d3642e01ee20c39e8f818d007644d201ccce7644d22116c4270d49b63fa501891db3d4a0c314403bdb9fe68663bf992e294bb2ec2865c9d19e6f87a4080d6dfbe4668fefe7c7c19f7dfeeb652f677fedcbc9d12981c708375e30eeb3a71f8ef69bf63ade0ccd5eceeeffcdd01466e84cbd0d2af5e5e88f59b3b24ffb10b4edb50ba41ef53394f366e8a77933f575541ff33a2c2d8b645aab2f47ba828a5c2d191423555a6be90f659005ae0bbe7b1d16003eb2541fcaa29897b19ccf21c2c95efb1c221cf9d9e36c1ff3e548d8735f4e8ee4be9c29bfa5ec952d693294317be4b937f3d99ba9df0c08fef771242c8aa12f5f04b55a2cfd314f84a3fafc39bf7e9cfcba85933fe6cbf1d6f42057fed05bd915345bb0d86cc16200f0ecd1acb119cc635a385babf7cf21c2c9affa1c221c99cf3d1bb0625e7f394438fa575fceeaf5abbe1c221cd5eb2f67f5f92bc78b3e1f9215e32f2ef4221d967dbdb68faced9ba91f0f1ebcad903df2299a955fb2f273af7a221c4d3403c2f6dce36ccfcddf8a70b6577d3973fb6691fe82260c1659d987d315cea014be19fa85907ad4a7be1ca2191ed9572086609f62d8c2061b945a2dd6cce97116f72a6c8ffa6642c83cb4f9338ce8c85a9a35f3c3f9daf367f8d091359f08094209259a5a2d5664715f0a2a6c5f8b8b1135d1c4892bcf5fb5a021c0f3da91ca0ea76785acb5427b5ad89e7686475cda7ab6666cd6cc158f8eac8c25773863b715a343dd82211a7c7e50faa16985bd2b74a837c531fdf5fc7befc559d5dcbd629cdd7cf1b59e7f9d138a46bf9ba2e9cbcf316b5a963dedb3a77d5bfe2cdbdefe96290d1e00ea3e75621785c65aebe3d7bc1dedb72cfb42126cb4cdcbd16169d96b9aa63da5afd11434fb9ab54fe360fd6614d1a928e50b951d390f521f265b42c769012d6aa41cb68834e18cd8ae1194b123cd603218d59e2500d8f135ce9bdbcf8fbdf3a97305092df919da8c1cacaba35ddfe8c91672b0ae86f64aa868d728498076d0ae5d4c46cb6fac1777075b75b0b8bb2fddd3ae6fbd95cbc1baf28973a5346b2c9d012bd29a7495b45272ca5287d8e1aa69cb5c29cd95d2aebf4af21b19a6f932b05ddfcb3187a462bb8355bfdfc1ba26192e19405e63e6d56da9b2ebc73164b464f4c8f0d9b58bedfaf8c2fc264cc598fc46ae9a4e48b2ebffec3a130297824c2cb2ec4bd30ee6a1404ffaf3619dd3ac41bfa529a3b4eb6b335fe8b083b976fd1553572445d30f655ebbbecc13fd6642a029cca79c08f39379fa6470d00e69cb6fba1d292a68069e00543bc3a9e727c88f5c4c924c199728fdb425cd69d688ace969b059a30d71b06e3d0e569783553a596ff3f9d980fc266e2007abf6d6db3697dfc4ddb30dd9b423ad71d0aca91dac83ed6abdeec9c1199cf9f4e997d37d9a0eabaaec67e18a6907e0b5295dd141483f4cbbfe56a46576c5b4cae2372e447644d8c1e417e22d487b92c34983cd1ad1c7b79e5903b3ea6b4b5303dad5c5a4bda690569441d1beec1a2b18447bd0e1fb87e00ea19b35753ecd1adca7674dfdfa91c35b90dfc4a60ee6607dd8d0f64493b28355e9f97730bfb933f7da8af442d3ae35176d43317cd9750bda35dc8476dd5ebbd64aeb5f09bafc26ec7eea539efab467c8ae149c5f67c4be259062387aaf004f035ed9f287215b461a5e23e553f9f5903ff70ea73fe7cb1ef2570e7ae7a013e930b569fc238de47648ce831d28c85085bd7210bb27e30a2d3f66493acab924b120f93049f7efd2c50ee98ee09c3e7fd2907e3ebf1ed34ad1f5bf1ef3e7ee41e987a594fe059211a7a2980f3c1750cd3fe05a4cc0742a73a4316bdcd2fb806fea01b93da0ad568ee07c9fdc8eb9e5cba9335367a6d28104b4eb0ef19edf440626039381c9c06460323019980c4c0626039381c9c0a4b22423a32c298b9225c946d44a7dba7339fc4e13423c53ff841b7bbe8e7b33f5db11811ef367dc80a2b6ff091ab5fd5104d85ad4e274d077b59e0cb3ab17aab042a53de27b7ced18c36c8d6eeeee78c6625f21930f90556b69f9f7391adecfae0940807d3f1308b02f4a027a9b2063fb9a2061dc7494ada92de69ff77e7e2c39ee83bac18edc0e4ec706fb7e266cb0ef6b7a9b92faa4280ff8fe80dd73870543b3894ef3f734608c397f39cbb28c6da62bd3a40d3ab4791b1bafc9344dcb7274cf7227ce95ce79bf8f3a68f1c5185f4b63ec08afdb96e5a67dfe4ddbb64dcbaead328ccd3f0d18b968335bf0cfaf23eef8338bf3049afdfc5527e38b37fcb3cf83fc9e79feb07fa49952bcf85223befc3981ee551733b032a4ac5c0e99ff7e98bdf6e1d7de390fb29faf399743cb729d1f69a896d8a63fe4ab9e87a7eddbfb8cf3b5b72fe5a9de5d33c43d5a7bee4312563bf5f147d093db213de05ef585a9e7fee9a6c377f517f4e4c169ebadfad99a07a6baddf01be7416967aff5d0b353ef9fb71b38946295df98dbde7239b614f785ddc637f0e6e1af1f78fb4e4ec7f62a6ffb42b955cf71aa0ff456bda6492ef58524ec14a7c3041966ab3e461adc075a8b7b4b793db647d57db91df2ab04b2d71ee5514a29ede1affde4766c5ba745d3efe19ffad05fab7e879b07fea9df2a4fee6ddb7ee334c96d9d137adb3c7fe776f86bafe27478333bb44f7deab5d7521e6ae7507dca0b559f0462a4b17d8c34b84fa5b614ea9bd9c17df6d96fdb57b32f7bde8d31ad8816699e860192cb5f6b08eecae5bff7aef6cd59848f878312a7478771297f1d7cb947cbfa25a02079bc46648db1b9ebf1705096e0a04df66ce40f6d18f0d9a8efa03421b5ef834d3e4033a8f9563d90ab9e0dae7e51fb7b2fc68fe337f351dff685abecb3e1372838e7d9c89e4d0f3aeed086c5001b39f2e43a889bfb50f05d65cd397f28c8adc9adf12821d42e123a7b1e53040c84207beee23e13eeae380e4a11a4cd1afeecddcfbc1368c69ff3f09b7b3f14e4b65f0e2a370e5d45a7ce071d6ad78e05d041498e899191104741045182217e8c8c84387aedecb52ceb664df6f1b5e838d3aff7299d35d39cc7c14c4e6ba7a59ea5540432cbce32ff447030a3f4abfde086b71ccc3ae06096d5207c5e9325d0fed572ee7230fb3a84963f7f520f7f85f1ec0c7ff6e4156f817e92e9934b0e669f5d3a7b77cdece3b4b5037ec32387f84d6624b34c8f6067a15cb2b33176a6a46767493736abb2b3cc5db326cb6cec4cba4bcf2efbc8598cb58e33cb7ef39756124410251802bf965d46f4971859f67cfadadce6477d68498dfced15bc3de7ed708fe2b14312e21287e25e4a8ee3384e04ad4db989f1df0fc497db319fbe185b7601767c7da1644bee834a3ffc3c1cd40077a1431b1b7f35d259935452a7527eb2c941fcf8352984beff4f6b953007f1d7236d5fbecc4ff16f5e28af6cfc999763bee6c924dec2fca410fe4c44e39730afee14dbf01bbaf1e3f88d7cfc18182166c0237ba4cb6ff26771bf5077a11ff69b78b4c3c8b431f6d91803610d3686cd1a8c5f9740c326c68ea36377a5b0d89fd961e7a69e4601fb727b28c36c1946fa3bf7817df937a64ced8f3a3875a436fd4c486d9d2b65935aabac5fab3ffd9412b269d34f8cd413122a549018226204114ef80842c4d20f2c2e3099e0c8132b4236b0938397292ce850451756754245ab7ab23064a451b7b0a19174806d04ec88a4c30fdad31085f8f1e7d7e3730ad0ef8b3a50901bdfcc241a05df12986fc244c1f77ce96044c1bbf985fecef97b146dce786da5d3294542e347592ce3224bcab86451b45812179e699145c9b8645cb22c322e99165916aa9ee83de8d779b4e596483d286d4b01fbd50fa907a11d77dcaebda5c5f7b40a749ce244698a93d78e539c14ed104f719264c7294e7c76dd718a131736b7e314272b6c89c30e045a7efadda79f04e30a18abbe0e6bc3997dfa3aac59058ea73b1bb2f7d8034f30c58d0e9e709f459cd8c243c62b5bd624b476c36f620d067460038552f9f17a55b163b6e4e9cbb7316bcccf9cd09d83f28f884484d8f18b9f0932cc9e5000d122a3133a7e84d198166932ee66de0c4e96e1d04d3513c2d47e7a0a9904faa941bb7a110909d08e015c741ce9f418a3cc284ab730828168e9884969a7764c7262c8fe3b39295d24d9514aec69dbd8518a972c5b8a962c1b013b4ab1e2b5895e47fab3e1ba1f7477445bddcdc09a4e667210671db5c15be5727440e8c8619dbdfccce58f0cea7ed071d79964fbbf9e86947644ca21e62eec88c4e488a8c815a3ec8834e4b48798a4d096455d12daf1eb9cb37e19fd5367acf5cb783b32bf8a8991f9b8f272745832af3d6d7a312f23f3edc8fcf462be104799fa32d3d3affa1baee5193a3e268166dbec73ce39735e4802d7819983fbe8692f85f234f9947dd072d3cf41aea3e21a109594520a45eba8482925f676f0e77bf1c78cef63fcede0afdefd426c2df6c7d5a99cd2a54bd1ba2a9d0974cc9ca7ba8fe1a0f33818bf6b32c676e7a99e4c428b28295059347530d2840edbb5c6eae30ff6fc89d730114abde472c4f8cb931cac1bf6fce8fde769771a6a433d8acb11f3282e074a6a727b12ba9d7139b6a75bb665714f0ebfffe8affab92fc4da977d3ff8f3a348a33ee75cf624741b7fcdf0cd2e9ec1da63edf3a350afc968a8988f5acac31fa5fb914ccac394939ecc977aeca5b08375532939583fff6447d9275d0eca21bf89d7cb5e7adca73ccce9d5cc3fa593835b620ed61cf99bfc26ee268f8bf136595465d7d7de0972bb569ef4f19a3a42fcfcc88fae748111fca46b47e35879abf7f1ac55aa83fc2474fbe6a739e79cf3ea95ac3e87fbe80d08f1c654e3b8d4e7f88ddcab8f87e8be8f6711e50f258f1c4172a9fa3340072b97fa6874d01287df487924b3afef47d9a33ece1c9362d3ae2fbd117230f0ba7dae59c38f664d7dec4faa2bedea2ea0fa57562cbf4e88ce1ef5a9cf91925f8c1b257db20ce57db965153f9abaab3e7fc3c1594316a99fd5cff5b174451af595b4bf855d4084d629a1e9c718263db44b82ce9742eec6fda6a550dafdeda6ee5fd4bd77434dc06fee77e037dbdf07697ed5cd40799cd72969ff6d048cb54f793ba9d72854eae3e6fe866b2f4787957a4ddb3cd4a7525fea370ff5a5b6e7b8d4dff0d496359ce18c6f132dd26c1ac5bdeae38798c6c1fc28ef1dccaafc59cb258d2790519f73cef93bbfa99f3fbf4602a5f276541fa3b5eae34efd0d8f51a13cfd2a954af5284fa35e85fa544a95f2b457a168f2d7232e1541048b31c618e34767e84e7a5c3948e9d3d944c63675d0698bad527a8d9efcdcb568a9ad94691f05207b29ebcbda45d1a1fc51ca3f3f3f3ff547e94749934a4a474f8e349bfaf267fed8af1fd59f7cc9230769288f22d6ba9b355c0e295f47d226d2a02fade8f9a154ca5ea98adf30e1a734cba630ba6d4f48426cd2b8cdb39dd7339ef64aed87964a9d54a21e6afb512007a9fc715043a271a418169b36feae482507e97742f4cb1fa511228dee8af6a77a86a74a25ad78d650f00489670d07c49a5a97d8d5461215a4306811058513d3939c01c3bd2e39f99aa6492e87a67de671a003296e842a5a7e766ece0ee2cebe99f93de4df9fdf8c223a3fde5e7be989e061c0418ae9bbd5417ee491e5d7bc305ed9186bdd75d4060b3ad41a780d9e302cee67c0709f665709f71dd8a13f09dd74bfdc6703668f81c456071d6a506b1cf09b187b41c334d8f48626bf98791a784936aae8f9df476d646152dddc30fec8a5b868aa5f9d149d7f7e1700fa19fe99619c614a29a5f55e2fd4c118d7d770a54fe320a55694664aca9712f5848eb83707fda38ee6524af73a3d2a2513fac8b5cd6beac79f9ca4a2e94ff0299ddfe660ad35c95b901e638c5f7869a5b448fbd3f718bf907a1597be0d43fa089106ad7242b1446847a4242d9b1d91845c737e618cd43a18232b82b30608943a08ce9a48e300b2867e44da3403bc804d7f628904060ed2a79145ffa543964d5f04bf29a169d327b941a116488b349bdfacfc06f5f13554dc597f7c9447a33f502ea13a0d6e42703501bfc1df0148f3ab6e06caeb8c347510cff7fc9d149dbff834236419f7dadbd1af4aa5f447957e8e4bbdd65a7ff6521a85d2284f7bad6d0d838cc6c1cc6714d1d33fc6a51aa4451493a60ecec40ce4474a29a591ca4fa8b52591201dd3114949acc7755a7bbe4e2e241e398ed6ebde7ba90c550ea818e998ebe3de2b821e8ec460049421865e605d305690ac5cc9b2cc5f5946a1b841a6c482c37d129a35111351a50616624d5e6238d214461431bbf7de9bb37d1b6b4588141eaaa0c27128e9a13cecd4e0400312101b4b6900012646521418927049c113960b9ce4ac0571ed0084a5a7090d540c8171f404ca8fddd65a6ba36cf19af825b3a28cc192c2d3616badb57609d7b6462c70a5a0abb5d61696680b4cb4055817c500b82082c46be2d821c82a20867ac3961bbedc30060e3c380ca9b8b3d65a5be4f29af88383b45057f447e0cba648c96be20e6dbc362f30c618e3284b5688cac117578c6d625b6dadb53b55328e9d2b39ffb0d65acb33040b1b37c1cfd3f88b5a8142c95a6bad15a56c65295b61ca5660d98a53ce2a0b83b57646952db8601245cb962b2cfbc5124c9670527b7244aab2a587f6e4e8e2428bc9d3d2154fbc08c3e6de7b6f184fb326621732d016495158789ac1e90b981c968069e19e1914f04505f95e30ae7d77883888548ca51892c2488a2752244951e588018c90a8e10443b41475d185972b18638cf18f272a7c8a2d720a1fa94413307ae86c34164758bcb050aa9d8f7be9a2e8c1a7f9e781e2887b94b3756a92432e9ba056ab050376ed887484cf26e46689886989212af8824b172540a0eebd37862433ec60c40f2e3ff840eae28a2d45f1a07d1bcc83b5d61ab9928d64c9469ab2912dd9c81770025142e2d9feb0d602e00726507ea0200261fa7aefbd4741b326625c04004d98486a0245966945feebf462e435f149526579a9f23d3347a878220823b6584114d6e5b2af8fb645e0cf185e137986f8e09801e84130da910d60c1c4c2162a3e5c49e2c24b45a2c77d7448c0c353e50a25ad2aa4780a9c08915fc438f072f4458a919414347fbcaeb53d336c6b73efbd5c605e139d6296c5e5c9b2622d6b33fe2c6aadb566f80b16505f641992d4a522ca15dde995d674e95dafae0c60b4b0c2119296238240d992595860b5d62a848be210e24757b1b94f338f5c79a20920409a88b1d4650b17389e181fb6645ac5eee44ce5951c94dc15e02e4e338c2a4a4aae56ab05242369f1a4b47ff44427b9d46ab588c808e586a41ce410242d96703165063092ac60592db2c84be4071b6cb8a7b941b3d7564b39fbc3b64eaeadd65a6b915690655b4b7fb4bcf062052da890b39ab8b65a6badb5d65a6b5770655b3b81d83057a08471628b99a413c31421531cf961454a972cba1cd9400ba72426887eb05c71a72f62d470c1529016acf0d1f2c2132cac885179946490a20c8810278454d1a459895131adb596049493e1070821beb89cc0c2ba57e424aebf1c20f1a457412cd84277d45a3ae4de1e2235e07befbd41b5666c973cf834ffb5c70162f490050952a005872a28289203521743eebd4a12c892051b0760384d1caed7f6c209436178b154451640ba7853919ea4223e4e45155f340d4e460051431231b0609483162427565c78a470c16114abd7de7befbd5766878a7dc364fcc3025898c6404113409204b915493c71e003bbb65a6badb5785b6badb5d65a6b6d13ca2494f390a2dcc364c2c9af0c110b929da31b8e3c89824b15fa6717ffb1a145ad562b07f79f1da16461fad9d9f571efbd4578c9e2c1a7f9efe166f8d2254b8da089268a98e2ea22c91018603124311f1e7c9aff2cbb3b40b8a030317a1b3c74592710c2d65acb41ab9573b53bd65abb8210282bb850f038ec56dcbef7de0b4be23571081b794ddc2cd813af89f583dc7b33133d3d5469b795e13b5b041442565f3451010d41af29885041c49598e440c945ffcea127af892ddca35dddcf734014e435f1664faf1cac41eebd374a8c89fa5c25a044799285964f6cf19ab8e9135fbc26d22a7fa35ec950bd183184248b1316564c0124672985912c462c09a2c308a47812d4c5052e6b2d144598604815613226fd806d409428d517eee39bd4f3726d8811db1ed10fbb18a15831b4ef0dc71407cfb2c409ca922dbad3ab4cab8adc7b6f8c0928312d5aeba7489c03231a8b09e6433cc5d8edbaaabbd65a6b12a6591337a5d7050d18d90942c315493e6070275f929c88718bb0e16e5c74d21331ec8f7d6d823abae4359109c3b453b77104c5bc26e7b99343d2b6da5a7b6db5d65a6b7f5b6bad45621f5b7b04936d2ba5984589b44873f58c8bdaf7defbf223a7033f8d83f307085680058f0f2643c8f072288810e2850ba6446c96f012265a4bb3bb73efbd51ecfb5a867d2f68a4adcd9fbf9f35d675ef2541185418a12206253ffc09a4252c3ff6b595d21a69a85d02a7fc63f42fc96b4bfc6ab5b6bb0ca2c856ebe5581f212d960a5c0a727c6987184b051b184c00c4229af140ca4f67cf2ea830b154488017277ca05d6a68b15448800a86744d3ac4db73641640b4582acc1a362e47a608f222ff0109e88504f4c4dd7987a0b7430c7e041d0855041404b04e294168c14906547a8c33bae872a575cc40decc971fe26dde1a345e33039831a8148d7795390a11d50c004002a3150000280c0a07c40291602ccc234d760f14000c748c4672582e0d07837118864110c4300c83200c03010400400030c83289b20601ea5874e088207cbdbe16189bccb94a6cddc22a336792badd5ec5ab57528521379977aa915d61b4c4a14d155a4abcbe337d96d5d0898ac6ee2d481c6793caa3ac4dc92dccccbc0834d439e1103bbc030ef28fc2d2ac9f3c5a057bc5158af2b50cbbd39f1b55980a97daab4df4620abbaa0745bee07ebbcf697af8f4fa9bd3d4c12e3bbf450281e931bbcd59446b10c85490c5cbd51c2ec4f8e69ca26bd16f24280dbebb26d6f1bccb3acf755e700cb131ff7790957366692157a94372fa0875e5e5dfc2d249232a95a9c1237d44354e5c5f6d9afdd53157bad2999acb221cab39cfe07ad9a74500d25d3eceb67183128b2a22d2832ef3b22b361ae0621ad46730c69f6071a1f5924c68a7381db71c24b1dc87cbe2bf6eb1cd44bad8883e7f7492808816993b3db5beb57b8a91df42cdd2203655a72cbc4d4023829cf433f49c2231e1191cee6491456210175e3b671928cc83968c5eb83c54af6ce455ebf9a1047a5e1db3722589ac2c684c31b04abc94dead38e527a901bcc8bc4ae7825c05e16aa411a1a434216f27966f3583ec01be11bd230831db63399ba68362fda3eea5dbcfc43503b7cb681dbad983dd75f1b2cc86d79ad7124f616bc075922e4cb38278986e609509183073186c71de3fe8c8176c359b238dddc51e8fe71146a3eeff6f112d4d5009b071d2fd2b23f3ca7e37a60bdd2226c762d1452a60d445848987e31743022a3b56167cb83c55dbc33be91ce437a973c60501ea9e3011425558e04ae9395ed133f927d34c1870f6b4414cd165fcc930a72b88ff740dc25a7e84394a1a31a1f82c215c20cb0687a4804eeb1bc0cc05b9666f8e93f558d4048458efc79279ca3708582fd00472d71d91bdb83157ba696418462971300b70a5278ee96f2ec370200296a1e9b7a8ed2b16b7633275b66812d4b3d6b332b5e26e53682d944446202d8d067582aa6b332acc87136eea8fda4ce7f42c55f955404b79aba2f116b95981fc69b653d8594a81da026a5883e9b2583e571c2ddfa012c4bd8a21e777450c3a306dbab376f4d44742f565b879e9f846a2647d855ec63ea60b279e8e1c85f973b8583597b3729b685c251b9ca4f5fe783c2b4c5f70e0ead5fc132b8e67d5576cf61bb4f3c191bbe112a92aa4af859c2f4eca986be451ea18fc4fb9dbd04cd128de8914abcd71526708b211b37cc67fddbd694d59bcf03fb3cf9f773b78d492d940ef98dafbc977837a8efb986002ab2bee7ad0136057ee8de652f90d0a988ff011bac2196b574c8fd5ae3ee8c1a02be9aaf37cfb65ed0807bd4164f0639cb87dd3031223e82c5192462b2d531adf4a0b9bfdcc9cdd17fed8509ae078d67e0a66489fa6e2f12055598471116abd5e5d67492399683896ce8158943f711f1f8faf5fcd679172faaf079d2696e9c7b006bf16f5c4286ca1b6593ec1965a87de9f945657644140d33ec87669d90fb52bf172ff8f59af5c182742d3b068d1fa4a103bef690e673b21fb37e16103e6b0214f6aee758015f7567804f5b8a84ed1b2592939d301ed2a73c6a7362a1864dc3bbda4541276b907bb476e839aa80b5a93b8ed69acd4251256b883e07a65b6b8c2d65cb0373b565cf80ece93af416510d39a56ec17fe2cca37d0321e44d5a4042cd5a66c65d4dd2a82468f187c255f1428362cd6da3a57952ed7bc7c1db603d7f624f0c734187fbac8f841959f3871185bc83e4da47f0b2393951a167c3944e9b687c7f2d2f28075c84eec10306abbc488c3b80c0cc56d945aac30bd5c969709fcb994216ee02c78f68c25f413d8ef62805b03f752e6a509ed733ffc4db58653ecf0e1a9436e323a84a4eca03d3455c0d552024d680c015e21b30e5b53d9e64b1cb8d1e7d23739ceb2c159775bb811077449004aaf83956a284fc55158dd9beb266caad5b8c1db669498cae396a1a4885e5c5966d2984529b9bcd3588e736b7f72bafbe76096cacd4e1dba4655e4c56a04147777e47e3a4b033e214fb76ccdb776ad073326224968c3649a5493b709cb64675f555bf1b18f1acb2c1be5994d34d8453585c9030ae1832a7939f5c4c6332a03d1891369175ee1f214ddb9828dd6ce456afb2cf279ac9780a735c834b1aafa106ef217b77add1a7bc5afeeb7b0ebf454cf98e9c2c29a50a0129ccce81a51bd2c5d8006db56e0ee49a21b58158fa67f228a6b077cc50e7cc76ef36e4042634b7f02c90196b05bd68fa80561c5c70b9bd6812a502136a5c59ed31793b16da70722959b62eef642085b64440f0841fc2151ac256136b574207ebcb7ec4b4e2dd88b6b679fc18b084b5c63a8e8db6a0ed7ee7102aa4f1f956b0c991d24f1c558e74a23614fb8bd14667acc25451d1e5cff28ca57d03e4e4f6f64db720cf986d7a052ca36a5db8b19998d0d40c47cb4a197bcf477c2187dc33d179a5373647536a147f18bb8e7c065034a946fa416036c609f111e0a74a651c5ee869ef2d7117feb9bdabcd8b62375781cd81f75b72763d961eb0355232d7021e5fe5ae0a9c1546c52d167f95c9f7d3c641dd26f3360c5b78ab2c3e7c60481ca7fb0fbff0af77b4afee5f95afd95dc8797bab5a97bc78e45e2516cf4d2ea3fef831223bc61edf447a2ea7f69d3d04454723c75f5523dff3387d096f80d9a804fe635987f473b7a708c3b14b15a8ac81daa9965db26e2204cc5e498d74522f9e74f8e0cff102b3d9e9e4de11fe7a42ab4a64dbf7324292d0a53f21f2c3cf850b611c5628a482b4a2a51b975a5c0d4bc6eda9b171d772a19c730a4b051d7aebb76f5a89b8695ce6ffa2ed118e9d42e3a657623e8b0a4cc2fdd55b345af6225d73947562caea0d66a86fb3f522d9c5e2052a0cd4cdb263282c07ed15d90bfe085de0a31a82d97083b6cf2198b7c4e8936e46c6b6a69bb9bbeab44496d031bb3a244c90ddc831246f8a9dd1244615bc1e30ac260028a64088732f773f7313a25856aa11304aec1accc7ac1c36fa9bffbf0fb88a66ca154299b0b5cda0b59fe00a99ad7a4bc65d22f2f12063e4e31842fba6449ae504d173e5194ef4ddb468fc37240a90e86131c216e0e03065571a36594ade8780c546d7027403eeaeaeacb019da9898966a12e745e426706c99c932ce23032b241cae46474feb285be5250531d517aff84ec7b9fe10c68cc482b6bf969ce6214b145496c78bd377309d31f764c4eec434ea03a028f6b7b75ba903b8709b506dd0ca2acb5b58ed416740395345c7df0cdba9adb2b25dec8b48b6ad1e222c4fa0e1b4e9aef6ab45c00919b62f916aa4c33168d308db0b69d81e19fe3fb00f6c5d2afb06b272ed2560aaf159982d7f7e41b5326f18a2e162517ea0f890394558065f97a822e1ca33a7d66ffddfaabe8152350a81903b019fb6bb1d339b3a48535b81caed4e75c2f24208e35eada8cfbf87142f90761a99fa7ae70c7b429028aac56fbfbd2ce4a6536792151c7e6f4d2eb5984da8512cc5cca778d5bd53057cd58e373a780682eeef24173fd49c672e3d6aae7b3559a1822fae86dbcb19f5538afd74f23567d2dce4ba03d7c69b8ad936cc3f8b76bdec392be751339b36cd1e8606ddca7a4335ceab9d54749cfb67006604568719880f9e0ad7ff68d7b3292d1b769cf62b14c6df9c22d8e53094f0307b73d71bb5097480e28f11932a26775f9e56a416d2c33d43181eaac972fe0aaaa07b25fb0b6455bc9d8e2c810e6315415e6d13b89b59fe126b6715c30aa9339e426239614c1bc7a33833ad1ab802833bae2cdd6891b42647fe2d02e2579569d0c9e60e7f506ed0071f5272054f99848207a17d5e9c2ea1eb8f7070b1abe79f58b69d26a199f005d3b50a7f835646f561a29bfe3e61299f6355bba7db453d64fe97e668accc6d56091949220889c41d411f2c13571204bdb11f3465f870fb659f63c875e501d3c7b52addb30a9d3acc14109cb62cc39d0fe6c1547e945a544b4d66cc22f229900e275358745d56a1c87de1863de7f416e63266724980f6c69c1f3f3e5cd348785e9560bf52409750b59f5cdd9b876396a5e704beeb790a9a3b4190670904d1635693683ac18ec3436bc6c6a9c8eb94ae44c5636bd6e73a6db91d44d28099673270763d23f0159f2164d2128ccc8af9985eb7bdae356e5b49359f335c435fa3a443095fe1ad936b9a1221bcd189999f1cf81e5991970079944aba2a88304a3059b3532748b4943f69cb01fd146724b7245a8e85da9b5628589e6c2408de45661e207b26db99ba0e31dcf6d2f08bb08505031bb8075a9f8803d21ba50ba1f1b4492593d24d34265539b99c7789e572cb507596865b968d39aa531010e8293721c8ee7efd01ccd2442fceeb78af6ad22825d869d540b0a9b88c943894bc7c88174fdf9c9d43f4e899c945a32b3ed9e5978603f90a3e496d551fc44a10a340342a2fdbe2ac6f2e9a0d085404c28a6c858e1c39475f2373cf7642246d4d7ac189f547db67ef917cb50a25f9c223786d9c382d55e913d35cca87ec659961685b7dc30ec409cf950d6375dd1a10a5adf9f765a3b0bc443cbf99f1f7530ae626c47f10312aa4a19f2fe52d31b16d35dc20da5842b053fc58faea2023176b05fb4836824cfdebdc8eab4c42466092aa0a8a10298d73269f91ef56ffa2190ce5364d391d893f1318310b395ca55516e5c420b9dfc1706b03c9e0c53aa4fdb9e87821262c98ba1242cec5bb87cb11b3201babcc449e8d9e421d4f79f91513d3e0fbae2784de6b07155f2a28b43e2d11e45aa968c546df4c8255b82ea0a66889ba7182b545325156d4bd12e77d53ea2d3f8829fec987e01c316abac489742ad0c142e122a9c5226df2d3f2dd5c5868b52359e41c5963ae2b726d31651896592f78e2f72b542e8f26b211ce482955739c3dab7e728d73dd7ad32760b5f7d3f50226861b735d0f8047469a9b627dea3e56c7f410a389969cdfb9b74a568551ca10ae44f9d7381d53ab39e1ec3541f4751e868d46098c898dd61fe76a2ac38e0e1e507e8fb83829e75c77df031f2ead935fec175811016fcf09c01dcdd95cb45af48714d792414fb9b405e87514d4a1957c58b73187c5ae6e82ab51ff8a57c82cad13dd913d459afffc0126ce579b79a150f8052e049caa36796130aaadcb62b6c2554510a31f3a821bd08b84a98cfb8f863447d4f859463dba39813af3a50fd946c1247af129e3eaa2d2f1453e16a37baf9ac5bdd6ac78fb99043054e7655d602dafcdbe8a97051c07ed8973fc4f06d21480569a229d2d31ad06adf16844d900724c46cb8853d14b33e13a528a4254d0ac4dba25278a927a8b1bd7d715feff4970512d6e2ba44460f3f3a782250857e021d938902d40f2fe3df30485062d05ed48de90c61e3e72322e1e43ce14e2177fbaaba6823db782a389fe56cffc2f9ad1c0815b030d04764907a7eb443e2dc34ddf0711b09404eb1977f403c17d4486e9fa7a9de6cd32b1570f31669ec8aca3b4612d06c353af21ffc1ef7668c2a911759dfb8dd27ab626ac630dd6714d28f89acaf1a5e58162d7cfac0b2ad831a78e18de0cc1c75621f9773f1184221465617c83790a9b41c771bec2b466d7f9f8a567aff228660c1a90348601c3c3244378da40e5db4cb3c55fefa2e85dd113071e87c6d16cf93963afb46c13c3cc61a24a3ade832b8458f327b09b329252945d7e49c07d8dbb249dab2d85fc180053e2987bdcb3118cc1df6ad1e22f99efe1715fd3b9a6376145930183c847581a135e16f8c316fc6c876050b756361584f2079b8f3c0b33ecac566d3d8cd18a8770ed783142581b65efc53c1e7618d2fcbf50acdc5ebdc5242a5f5355022f61027efebbb57cce990377494e33f03caf86a2a59c34d29ff163008271ecde1184d133ace1ec7f0e2e7c588f0a47a73c3c62a680987d200b35070c84a894cee18bc821a030d8427b639edbac6396084e1a163478c77e22857fd632d9010a7f0b88c7e3921ea8ae2bda7c9d5785826c912975307c01fa870ab8c502a19918c28d37b74961672da533a824d9f6268ca04d47fbbbd0c2498491d1acf39e66e360c13bc28d2830d9fe37ad85d777383b5801888d550cce7208ed2561186263c19f7926ac91f23c490f3f1d36090a6b2139f0310afa3d89387ae382b42da7edab003868e52b93304064ec82e33c5468b2ec7f8b99023f31066b4141f5c166533dd198628c1dcc82a6d6ed848441609e652db5e32a14ab05068dbb0508e4a6c2fe64521958263a06540dde51092248eb9d0dc32207777d29ffdec1aa7dada8ba27026c66e0ffa1fb47e2b6e88a9d0284bf2ca4c9dc07084f86c13655480c8808e710a63a615ce5451e72bf418040bb603a6edb51fdef10a5e6526f7faeda448c3a78cdecfafb09b0bc7eb50f0448db6baa9515e61f5a3d908b4492f4a6d7c0db851a6d9aef108680e14b3bf805e1d2b14ae03368732b7213b062c9f3da18034928f093e1d711d43b5c98a6bac1eabebf7d6db9bf2db9fa2a6c49f5871238f69d61a38b8a432160b2153febb012d8027fa5560a2e5754da1467548b0489f02bd5bfac220e841a6188a46faecf55601cc40192dcb91a439601cbde462ffa1eeb7e7b52e5459f669f2e80250948a024b5b9b9362ca431382b480d3201ab814d48881b70e9ce8745bc2691747b1c88b0fcd96796c0d95d0aa0dda91ee632c530d91aa9a2d1e6411d75c1da671ccd5d01d1527ea69c8e9f91cb94c1f19163a9ddbdbd79fd03b33664c680a650d250afd6a939a4aa14d82441ed40d9d2b62b6289fc312d1a068b40c4076cc80054f8f5708c361ed3a6977c2068103dd6cb529f102e65ae05fb522ac7b739e9dac5e2af1c346f10d3cca8b85caa2e5a78a5a74acf1f438062fe6c9c52292eae67c0cc2552660485879639e4375e065821385e0f6c25fc2682a5ab8a855aa6e9ea6480067843456b2b8657003ab6ce5249ba0567916ef453df11a60f76991ada9cbfbf4dc8b992bc551e6235643d38aa17aa5900e2a8da8adc72d463a0b776a98ad41065811dea7c8f34896820b23a3dc2bf789ce69d0498bdce2769a20b759114006089a82108333f28541ae99dc49406add04403769a261820b4bf988a74f34d807428fe832c99d7a8c37ad0d660c093561724c5178060b23f1ad55b68cfa439772a8efdb94e2abc3c38a90a3e0dccf40fc84e18dbc26836bb7a213a9eb11aaacb7bacde8e283345bb18e9ba6262935ce78b4cd8c65dc9a2b68d386bf98e58b363407c6bdf70b4a189085b1e99a0d7b9a9fc1338d731fd615ea16e6fe218618f9fb64e9fc3100580a94a0fae9f1f23ef011a19fb4a98678b95683a82d9fc036249f74286d985bd038ce4edc968f0a9072351010b2630fd1847b15d311131e986a26fe38586f5e71e60289b37a10d00d577bf816a228638ab81f67a9f0eb3b5bdd0c2df96b7122080dff9449bb41824465f5d8c2726851498ba13e86ad4110cc6d9e6a1a8812b1c76048470e811490d727cde573fedcef23cfc567189d36beef92f6dd6c26d6fb9b5424f3ea73601def996485b86ab9288141f66d4c0a94e8b13c384499d4abef55570a05217b21ede1a39282b53282a12ed05e8834829f0044a36b9356f17d311e7e5cf5ded8ecce66233136f8a31dfb1ca02b93188c160b6c01fad591246c1e468425db8def7f412c1fa41a11b73a1fe4f6be70bb9cc1399f24aa616a32faf0e57d3a4c804ce79b66a8421e8d3f873c9702f8246e32aba3b90f66a27f7203b49e76856e3c65e239b8a48c1f393c94b9c512cfe1348a0a5ac3bdb4bd62855d261254c8c68450f79d67897d4e9bb934a0e5d40e4e2b1250e94273fa90d8223585954a68365d90536cfb68aab8bbde8365927d6d2167376ac3f765fc40380413a1fb037174fc0ccb8145a2836dba1f0b78fd3b55928da3977fc5ed1d8ca008bc7a683b02258588a8f23a2475f96714c277e3afaeae8686bc8cd96ee013ffb5df9643706f35f45a0ddf9afa0d60f67a64dada94ee24534cc7aba16b09bde32d6700fcdf8770b176bc59c1eed0532cc1e37af317f4281d4d9d6eae6e997bb07fecb007e08cc40db8306cf7131b071d84f10fa1f7c9c7cedcf5bd8f1669e3f7c7b6784a4169559bcef0b1ede76daaddf9c331a24c4d455e2be76c04682a950e4482e0ea5d45bbf51d3376043acfa2b245d77c0ded6979228a9b69eb2ba7298b5344386b5c387fadefbdbac34b9e13a63a34dcfeda308eba31609be3a7332becaf4dff1cb970d569312cbf3d12b49747a54f5e2ab291a2a3d85443177bd62164eeec2cb44bbc9c2dce904809a1eba41c28616caf2b5eaee9b6e4f57a39f7b29831d815c906ad6c88862d2c62811b9f7143c5b514ed6cc992728421283f8bc494b46f8a07bc4c090ae6786528a631cb94b8868dabf6044a9458673580c76411002bfaa6cbc4c4d1004fe056fda059b6eaf0c0a4943dbddfff90c8c1c00aee39b99698a2134cb7167c574e30466977a6f9bd85f4af859129e73e086a5102e1778eed931f56ad9b1b796324b77cb462ba2c30f559d80977ddac0d712d36b62dab2cd4851896d0308b4f1c48aaf7b9d094ee2683dea5a56898da6498652188559e2f276859ce67db1e42dd4d760147e097be847be013a8905b6fa814ec14ebf2d82854cb7c8401aa36917a56f7bb8548c2962a98aee814646b7cbffa6a3ba195dfe623e0b6963682f36c472fe3afbe754231205bb8488692c241cb8a89cbf2fbb251f9b9a7e4ccee3b7e86959084ad3505e475e6ea25313d8411e1234fb30b3249d526e175594877640f9dfbc1921bc64523a913174a8d3350290ea949ccd917b3969233c5c729b921c1614aacb86f0fee80e816a0fbd03493363f6c627509caaf0694b8c98ee6c50be511a8ce7a18ac007e8210b5a887c2d935c59a5026ded7dc9bf651e288981c319c0f707d5156249494ab9d3b9f1a261dab375296f972d82430ccc17eb5d351ec6db27839c2a9bbd8e656a533eecd34ff4d8abbe33a58f052de0226fc720d40daa515d7b88545b55140450f2997530501e720456ab472200664a96a169b910d00a692572ca3bd712c737bba4a7de9b3830e64f689105cc130af6a435663ccb3d3ec20a57650858412a55fcc3e0c69989511b924bb5413ec3ebbbbac8af7e4579fdba73e4fd7204fb9300b36e7636131632b4d976391407f44b7cd2bfa1c11283db2eda8c3613dac72de863205937a60ca126631be9bd3ee24444ae57460a1bc6ec7e2bf63d2f385914b28a3d85e9d6994cf22bca8ad8927332ed6cbb313edb3d03dca380d2d61300dc33085790d0130e554566ad7b259ad0b9f72db1c57fa15505f354e0366077f06ce9cf8180c0095a01928943092a54453c26e2bf837dc687eb288d121127a0722c43939328dd3be3f5a5dc90408feb07a5fa5021b527b240c16aeeb3c5f783a830be78342cbc37d2e0ae89d62a6425bb6c86f58ac6c139b73ff13c815e2b77ab8cef1a343b9ca54118489f5f4dc5d927511b16f704f114cce186936f0daef8f752d8a699282f05b10c2eb7999d5464a1bd1b5ef17527a36d462635a5a92b1e51bf86d850f1a2c5a3801323490239e6db490453597aab57a096c8797f74cf4be60f5bde30b003099e68cdc15a417b45a1e139a5bde5fde916747f18a39acc7853173a9b0fa6ca6d9c659cc8d9d1113bdbf882fd1b82994f8a4ffba3308fca9b33481e95248ca2567d6565db4a307893e9c29dd74ea60eb50c3d631b21bb894ea51226707773cc0f97a1ba19128969ee44548c3366157d377403c141ea873886c76aa992733bff297bf9b2b429a373f529d81f45241ce59e671132360b10fd68480da84f49d30f132c0e4dd692044adcbb046a8204e20ad4158341a0a0128624a7dd9460732539ebfee6609d21f95b257c60139e8f62f11407e71e0ae4c97740d264f20ff1ce4b1c6d32e293d4262f12be3d5df2ee94109e7f1d69e9f8bf7049386d8694d7c90c8e047ed99b4d305c1cc445315130140aa65670f498eb3864808c96638a92168722d138b2920c37375dacd66973c3ef72590a11844770d9a07d9588a35d996f5be219cdc5b8b599e291ce492d28bcd68ecd77cb605d1e543c18166ad2ac1dad6355233230c9903e9804176ae6fb4f18eccc3d29a53345d0034dc035b1b5c0f53e10c156b5113da845ca8a1162647b9ddca90653b8510b54cfa74c55fe4e8640a48c953f55d1a3bfba3536a58398dc9bc2359cc8e0aeedf2796e6f503a4e8e23cc60c26fa227457eeb035a2dfa9c4830c8350490566d8667d373b8518f1dfb1d11ea1b3fde4fdd3cfdca756bad4adc61194e621dbff968137b38e1d2d446d86fc23165b0f1d8a42ae04e9a10cf856b28350da10bce1fee5a3b449631290805b5581f54340792465c9da83590db1543566071dcf781decd0de455702949b15f186391302c316af3cb902e0dc2c5e221a2f3e39bea07370a91db149eb2e893b4ecd50c700ff961e94d0b9ec5c23bf9868066bceffe72a46fc20163ec67233ea42bd196caee1cc66ab820ca4121b40d44429b1b2bfec49322576f24033cb277d064096a5c0bf742946b4bcae0ec7bdd6c9ef23502e085af641d681e579a450a548c134aa13882c6ade45bbc8b793248d9461404adea2a26af39d270d4e2720b93f745230d6833360aca785886fb8d91645c926a23f39a44e2dae81ccff5682a6adf239ba85f3883996f62c79c0dd8de1942ca4e8fd98b20238cfdb49b4527c106adf236ac83e55ee2f4f00b9eaad862209a11e6500807c241c6a09da97d5d9a7be3df3942b388408f8937ba5754ab7c6fef9f89fc38b386ec79e252f0d7bb5e210c27ab6080621b48731255ebdd831244464e36a0a99048b7bbdd68de7927e6280beb63ce73f5cbd5a68ad864358565c2f7cb5f4cc0a261b7f5cee504098f67fcd100f7d648c948bc7c2aa75fc089903af74cfa4ccd013a4c3d74f90add47bc8fa6d32fa4b897b8b197d34d18abbc015214d7a9442a3af239c785cb682fa7bf3c7b12c9b853e20f227f26f56f27a3f2f53793ba480c0a1b19809bd565b70d558b11ece8b26657da0318fd914b9128d9feecf52dbc690339cca246a8f96573e3c1f630489c09208745115a2b34cb13e509b7f4b013a1172d6fdc275b2a7f6ed058f1d8b58b1eac4cb96e0c8fd874f91693c1dbddd5d722951e108c74e85034a3e5b8b4a2e279c3bbb6073d37ecac9f1c50a01e414d2cb83a42287c0f52c4a691cf30beeb3844bf2a178fb1f2f555660dfada50f6ce12726020a209440bd89b08a3a6ea03c7e10bdb7bcb65e42560008ff2d2fd672a002fd94408866001e7e182aea03c1541335c76578eb1ef4d17eef220816f803fba49f344aa25172ccce4769aff15b376e76d2f3520b647f140d8b8e050ec6dc47d9f50957471fd615fdecb9ec9d8db3372be7f2b788f102975cd9102061cbb0e5038109eece97e27ab253112d5aeafd6709de208fac3abeafb68563f41f2486d82721716aee7f13bb6c04f5f64be9a2302d569d86eec452a883f411cdf68ed7bac39f5747b3dba380192adf21d58666595023f38af7004ddf4050ac5f6d4741de2114397b118c1756009ba2cdf4cffc1fa16168641ae1795d4efbdd42cf4151959480ecd717d3505172963476dbc6b4c2167b8e2cf30759e36ed09b3e02fa28f518fe65f6794c041b44bbb44796e8c0af196a644690803c0bd723a691513cf1ad9568791774226fffcc1ab4ccaa8cc438ad20e81cec412d992a3d8bf704dd35d6788c38988745b3bd993a28b84e85212981cceb1eeff12744b47bbef6b97d2d16e77822fbb06733eaac1a33cf52ce63807b221b831bdfe9591171df5f1beb62dec1ca9fbc4948388edbc3ec73c3a9fdf9bee443dc2099192c36d7dc289a0a345ed36f47616df1200b8c1ebe5da61e893a3c3e08410eec9d46349aca38ee89fca83ce7ec88d07222cfee4e3814d4ae3c95fc521898c48c44b1a89bd6ca5dd998e6cabb7db828daf3a2669b9c283842c0aad263cf97b2cb1c646dda1a64856965f83b85bc85af08afb709282631cf60913b7e85de02abbbe9acfde3d758f40516209cc14f632996622404e4460541cde65c78e097ca304db8b50f88d584ccf4a69ec9cfed946dbb42b3132f6ddafbb06df39f90057784d65bffc5945404c246e2a22ce969ded284e9cd0239ac3eae63ce45f6ffcb930dc7907bebaaf0fc65e10e87004f55e6b996646e6734a12847089a6b27f721368b3b0ae9406efccc7c955327e98e8ebff9c5d2553cf6f77dc6d1210e4863b9e9cec5e732c69c9470d15a06e34593f209ac98368131f73463c1f669a4efe144cc0607f2740781af25ad021ef172047aa8d36d448bd639e5e1ada25a766568fc08d63064649e97477378817af54adc34d028c46ef8c2f1671046f9b6fb9b18ea8edaf02e8755900c3db981dca0e827526d495fff4d28048271c49779249849b89d487436654a3809c775fac11300566ae4d1cd028ba672fbd72801208e1c40bf3f24541f9908d4eb3a4f272c81ec163e73a8768cffadbeab0d236387640a998f6a58b5413f4b4c935ae150a8c4ad360ec7d1f6c7415aebdf70a4651fecd7551a2b886bf3ef561dca84d0e5d3579f60942e1ac6d533b0eeab0f939d1cc08307f04e8868d779ac5175a5bb41433d1144e1f17b31d66236a1498e485dda70eeb91b0d91dcfd2847586f1b9236637c40299e97a17e93c41bf589d45bbc592cd3b6dfbb12edf77187aee7d056b2c59459cd3b5dd5555475312396e2d4b144b12c07e53a6f8095641b15ac557d42e9f9b61253740851155017a44cce4e358a097a15dbec9163dd35cdc53041572dbd6635b8f2346ad1df047c914bf0aef5721d694e43d141dd8552e9984484bb18e84c23fd6f5db365154e2a2027f4715c788ef3bd4ed2a3f1a5bf4b8368c0b5466ba4ffbeaef6659214a80e737816fb27a858f3be5c01eb342d9861930357d28ef87a1152550bbc8a6a6659c1f690fb3ad5305635ea26dd6e2124320eedaf315a78891ebd4642e6580e0beeb4c09c41d8343debcd6096f0488bd5d88cdc7e8402607392a2b1783b44c9f78360d1ccca57752111b4bc5082d6d1141d474006f3b8a38160e02ea119eb3c93819fa40176fc1bcfa855601614dcdb098450b9f2fbb63121884998d3e7f7d3622f699c8fee8417ee79d309d3427bf31cc304e0952ad47399fd065547d12a62d139218408794b8a2464e0c235e108e6827f377c8faf5811d7362d099847c083f72377e001cf023c1f9f8d7672fa3385e64301a9ceef16b820ee1b76301fa76f0588b383375dfcf9a9f7920046ff58a9da066f1768310f04d9fc9b2bd781ae4afe43ccca935470febc5e16a6a27e5ca4dace28cc13b3741aa9294198e50a0d326ea611d57785863df16f777a775bc6ce88c9219648057786a9496bbd9e377865880be50f24bc35cae40bd3af3a58fd35c8c4389dff775db4804e848cea5631cc1d30d358648fcbb8c89c1a1f7542fc3f124c3c7e427459dcc82d24e2dd4260a44d85244ff30a2ce117b4e06ea2247032f00e66c007ffaec67829083a38a7f3ec25743ab45b99d9265d21cc14b5b384afe9e8e3f0b3c91b41936b12fdfa1cc7c1c00a9cf6483edde99fffe1d33b024729143066de0733410ad8b180e683f9596fa07afffeb148b56316aa0b72731c70ba68fd274f4bb7bbf4428b21e0b1a45f03e102dec5913375117da2a7d8bb20a713d92768cddda00e3984fcf1f5b8570d5b4835ba7d76eb5cbd43e370cebe444cc4ddcb78afcb4e4ffe509772d0bed5c5982027f8bd0c411e487c3bf375e21fc27ca0f16686c2d8c410bf21e6818c6939737c2ce07c047bfc00108551497a167d52ff92f12b4fa7a45e33c2a9680b8454a0d3525971e65528a282cc70fe36ca93ffc7c4ce681a9019fe17f71312e042d5fc365dc35ee6ffe2920f72b2be68c4f25ffe6728a07b783023f3d33e9467e75fa2f245830c25846cf7391b91401bd2ad9f19ca82c1e7064ce0b386d3f2104a123ef69fec30bb65bcd40d57e0cf047717a2894b4b1663f3c5acc1b2d6bf71e3a1dc6db70c3d17008da6356269c3b4de6e9c7f09bf48a94ed8c90628d464af5dd3e31ad8ce5ca11aaea6dc66c6a3f503555c5379fc5d15dad99b00577013fc3a8970aff33a4aa26e3d4856674558b7be1b5e647955aedfbeafd9f51768012206e0fc4bd25769569322971d68b2140392e904604456d26170a2749774fac0341f78b69267eb430cda6242cb405abb8dc944fd2d2d8895064a5ae3a04d2313ef264ad23f50d7084b2ce74f27b72bbeb3a94f8d9ca7a89ec92a93932e85007661ca05d67aa03195b43fdb64eaee9f0e7003913d41fd9e074c10808740e0808bc7d874fcac158b8c2ef97f1a214e929c27e63b0090c8b8588f2b515036fa671057a46e7f5f77a0a298d090567d8745858a33b875c4d94c099607444cfcfb87aecb4df98e0e46f163e54f66e70b80713d2f5b2634c886b1f609db3da703b00cd7ed058779a0e21bc90c96f631c76027bbe9d71176f7454d0fddea88eb28b242c478113f5e40a8843827145b9e3d62919d3e4b61910b0fa10918471fd96a0d41c1175ab039e9b507058ac0221716eca07484c538c833a3e7cbb9e2be5073cdc8a2306615eb29e17f9a682e9d71de9a041e1dc96cdbd47d769e8de4f38596a5ff5dcd9ce7b1a7af29071ea7c6b32af5fd2740cb2090c900b95134917972c2937219d24a1c71fcdacf89aa1f9bb6c534f576a0bbeaf11ac45a87db528182e894a5296bd1d75f417ff7c406388e17d220edc72a6cb3836c803f7e499b671081ddaa0237c5bb547d284a8364d4d744c836142681e88b09b1368f328220386537ba4d3a407f13072394d4b2ed4b8f9e31e954bb9d01498dc81795919c89347292f3cba3c507fb3658eac1f19c87c2c36ff88c8eb963a98b4cce5f7f4636d83d98cee438969dfb52d3725abf3e4f919079301c0857c2144d83b0abbb90dadb4c51bdeedc7a2472d8fc4523330c96cfe498abb11b522863c9b5098067384488b37e7fd00dab22fd664f6bd91bd9b30456f83b607401dce5c175c07e35c7af43c2fb1e4bc868241af13a613fd0edb2ffc29c6561f2dab27be31f71a5fc59a29bec60ea1dfade0e6a65675181c4ae958250108ddc9a6053e1b74c7ba90b54e6c4f46159e4ba1bbaf4d00d9cd6e552880f1b06582fcb60f96827e3b0829a8e16306b5a7ad5fd951e7fab4dadcf0ca0ca6299f4d0f4788a136e7ff0059bdfe597371e67834001b29bcb33f34bd7fae585986b3c68d0cb48c300f72fd85885da2fcfa81bd751b0c6878940d53add37a50dd438483fe8856a30bd521ba513aa7ba322f2134ef2d7e11883168bf4b711594bba755abadfa3f20a09bf1f43498c0637ebcef18805715cd5b199434fba512bd16894fe81bb2a3ba303bc0d8436ef57c789267a2a3ba527ece296ba0db9e96969e953afa06aa117bd17ac99932a0d84ae222b38e9cd9a5d88a94fd29a981464bf5988ba520a8cc6682d1a7645066c8c2873163ab4d0c58ac32a57abc6d14bc3d3f231acf81099ef43e01cd3d392d011370909078282d0a0b85728e2ca5afc5a136808f15afed0bf2b3cc209626cb0f16ca575c8a7cb26b2ef068397f4ad473cb71a2d9245e9da96b593f6d8116c4e1e81fe1de000d4331f14f0e8551727cb6f14820db97650f0c8473cea51e2313ba5b0864745ef01b50c458c0e6b56022fbde5c4b710578235c872b6c6a184986d96750cbefa30f587e999066e8ea15b45bf9aa7717a51854428fc5beedddeb12191efa0f1563498e096fadfd67adcfe61b81559cf4ae9a5857e0860ae55af59f5ad083c2c88956f64d8cc231f7150e4e75060206ea824d1dfc70a056d2c41d01acb32a783961f3689e12f619c89afd18c878a030822f4a0a16ebb05c3c69a9dcdc9dc5ea2dc52f435427ac66378bf701aaba393cd92e31281f4cd6828a9ea4f613df309fad4ca49229936782c20a4b4007b10438b07a6a0efd9e2a8d2614dc9deaaa9a795e449049a9a56105656b7961799bb097594bb7d87630152d47e55d038236ca8b3135c5d1f373577c3379283a5319235b1634914d52d132488a938cd50fbffb908bc3a02a1bd3812d9fcd53c11471c1ab0a3b7feb5d0f3aa79f9c696b2c8e2718a7fe56b2cd2b592fa8699e32da2b4666d72119a2734a6cd0b382f14d06a17bfb5134a7a5c0f24e1b8abca3e1d60dd0d5c1ff21920f562c6c0a9742761080eb86d99fec7206f0e42cf0a77fa8be3bcfaf497e0d07bf392d5655684a6cbb16e15068d0ebf446267350da40946f900e728bbf56c37702333fc87fd580bd26214bc15f487ebbb642439705c2befaf9e3ce649e80757064c579199b862655790beba7df5a2d0d171a9f76f9e3a0dc48fb52cdaf1e0da5ce9d1c174711a9c08ffa551d793fe3b7098513a83b31f18d3bae84abfb375eab628d56c2d43469db26f8593eaa67f36afcff85c38e22c30d3f4b3edb25bc2459011d19d5273c47d3554c8ca47fd354f3b9050b031b7258e208a855836ac870212fd00bb77d5712a747413d04e088435e772279c4508ce75a25b512cd84140301c69edb440d3c885c54bf1360d5c9f4b859e0965276feccee9fd4d906289edb8d96890ec087761d03073aa050279e68a920505ae0c150ff1423d57768a1fe2c1532dbed67d2158437e80d8a67f422868ce0f33da919c586f809925ef22c7a2d8b9b40a302cea0f6914be5c0ed44b28b2c5b94301623fbaef1fb183d9868eea0a81d47d2e1c6efae16f85e1833b54bec0d20aab22b60466033f6d4bec7679c831da5d41577d4b0f7ba9d01dcb4b2996362bfaa15b6a4481a88229cc4b1e31fc7a88c534a3857adbec6a799ff441c6aa0b4def712dcedf88641038e18cc6eac02c656614e868b5f043e33af1f608476bb89a3480a5a948576c46c89ed450fbc5b8e833b1beb784145b2fd9fc5fa7579eebd30b1b0c99750e9bace3190b81841ee2ad10bd4fca6bae7fa34a8639ee85fed9262c54b97803cbaf75bb74b3180d3605b3bdd98e1e357b3a3ffbfd0a74407e336472cd2d0d974f0280946395c5098e8d433815df22bee4ab140c52b6de4f5c7c4ddc6564e2083a79079eed550c5850f18b09e04adaf39530440af00fbdd03b72bc52fe959fa2a8bf01004b9ab488847ab4b7c978447a871cf02066d26f28d4a61cf3e2e8d24cecf1ccc207bf62461c34e4ff4356cc5cc8c5c77af73aa74b34c4a5d18b61658fb8de50a1c92c2d993cba29101bf33aafd9a8c0172ea3c636a854b6653b7f14e0919b192ef37dae0c62046792b2656f3af65ebe20bed569f06a96bd0999fa5b5983af8998e11412ef63f96d2aa2ea3a7f9c11988b483d79f04a735feee6749bc42d04059148065765a0a5e7dc268998e17687487d99d0796a46e16d8d44dac2cbb8b413d120de2299c984f44e2c2e7d6d4b07debb90e6087fdc4a362bde1f6ff17eec9878cef5a5e1e606828fbb42c0c5aac52d2aba4d7aa7c20c5b1a3672e336fbbe87451f292a03d93e868c05be493fe6f850fd0c95382541783b1f926d5b4c0c5e08fecda6e52da08f176df7a74bbc03cf628a51c86eb62da9651ac20c7f8feec4d0b3e65cb288e77385b6f3fa213b132471c73704874fc49560702a109f8c2c14eb2d09dc67baa15f80f2149bf8060c4eef9d94229d9a0a2d7b9f177bc8890c18bc93802bc22c388843a248c0667ede9bc8011951eadca2eae8cc08e365427079c209b240489d43633b8a72507f8df04018cc4870b231130c54586a0397d79851128780634a1aa93742bad6304c414bc7f7ab9e1fa95c48d13914c4dfc9adf032115650dd7e22c3ebd831e3cf71b89c57ad4f7893ef0e0ef880dfc117262ae222b54404ebb3e688d831169a73cf5202b1b461f0c11c6731c0e59023b9f0faf161acfd7c51755a06aeb1a00bef5265f93c89a86ca49ff44aa7b16f586f6ad2e1626cac4d6cc8b4387c297b85e6c3b2e5b8f70ce39d7ac9baa41d286a97373bfb8bc4ce974edcd83fce5c5b3e0ababbf037bb208269d96751a708aed57ff970c6454b9c93d2e4773037a1238eb30000c3c81239b1a95f9124ebffe7d7ab6a3d821e6846d6e7aadb818b93820ee5ac75c8c6f82a353947d0fefe6c028bc5f97a9066bdad904b4881b09263247471dffdf78e347710cac62f27c97181e67d9e9d9c071a433f82fb0dc7d901a5b45a0cbd9c131b9c03b7ebaf2306d14fe3c5cfb6e78c78b36139a43d7eaba8e14fd4565f6cf6f0d9c4963e61e84873f1d202f9bac04121ff0dac4cd6aa2fb355ca3181fee80c51a358fa82b85e0b375629041f68b0414a5540e93c9ddb0c99e6fea1ca740e54f9dcc850d1e040550dd23da1a03a425ab76618eca15f0e55011c7a3e14698905ec6183f6bdbfa951b6cf1e7def1f4c12806e30dbe0d55f6a78f24d5a96841f84d96a8e4a4ff529a3b97d8f1b23649160761bba5e271c07e2d6f8b2857f0af322d734fecf103fc7887279c0dfde7ecd901dfa3df7b6f297033388803db58b386a14b876d6a4998da2cc29291b002139f616f8549c3b0cb41b0d3d509ae9a03f3f36e877032a9eb3fcf8855a07a644b2c03381b814391412731edc118310fd6e0732b1aec2e9e52b3fe23a70e1cf8ad0d6a55207babe937567b9e5a5beb3525abb840a1d5834b1758431e407f46e420ead7534eb8d04b82bc5f12b391d90134d71281ad1d4617305ed6a77328a9b2dc54dee0e637662b8b0be03edfdf5916465112628ff8659a6b9fe86d45990b35926a89a3ad2f637e4aaf153c55fe3637961e7506c358bcb222c1b23f3ec21bb0e78c84cc2af8b60f1f8e48242d1891e4c2e9a8de8e60360cd363b9326717a5b77b34ff65080f94444e49a0b35971265d66884fa4e182f2c79a597312c762dd0927252598be18b4524e511b85545b660a698d99c80cd65f2657346952164553e019c13b0372fff94e5dd1e5407a4c9e99042d1c1a3ae7940c346a83ae83a71bce1b0dac2cddb1a456d0aa7dec7bdd2bd932c9cf7bbdf1dd15b97ba0d8e67f23cc04df1dfe62ef4bdf9d8d9eb00c80faccc11f3ca7ca3b0714c6f7e813759c01e1c2f537ed12e29374bbb4f194c533888acf241817fe1923ff0f5224402d0f7f02a2ffe5a9774903708b4676b5a434cbc0b727f7a0bd2dfc65e6b86597acd5e8085d01df3c8adf7377ab4b9a54e06c8bab7ff6e1a16332b7cc4fa30a979a85b28cd905a79b4da223947b78c5b8ac331f75a3fe43c1f491ac702a85541e7f36b940197a82cf807baacad9462046997505bdfdb50989a591cb72fd40e1669bb9e01a33a91dd4738f9b008f205867d75a62aae695aed3feaf52c6124439dd3efb8fcb45e34cf9b39a8c14e69c17053548377f0b4cb1a836a9d29273abbc3ee4adc912f0937ca5a4e63d11f90dd8a0bb7aed2d7ef40176587bc411e7d010ffdc0ec9b4133ab0c8d65b8ce420304f8333c11e2552622b23a8317330d970e206e47100accb0f0b81b3ec5403fd6f8fdfa4bcc94c571b662bfd30023dd1c6c11869dcc51d764604a7242eb281bf5db316f90f2f982dbaa4a5df7bab952808f8f8de47fda61bcaaee884775918aadf96d1637d5a1edd13c45ca3e96764feb49e1dcdcd8c55fb3eb520e0540bb6e12b2d863c8a2bdf0eb59109d542b856e28a72a71fa76c58e59c2d17b9bb275597cecccbc7c6e413e598c6810db93e4d582440c61a5019d18e589f8bc1eada61fb39dae90ef17a4b1edf35334a93b5e68cd74600036d81058d4a606d1a0159ed5b51818b4da8aec6a3635d530e642c481135cb63b71ab0e8fe258509921e7ca179f306a0047a11b89a9b580a3d870c6bb56c81103b99abee1113ea4e1c321214a0dc0ad4896860f0972baa14f3a173d938115964725df06184928940af6e3b9a8a107d4658df5b3137bcd2c6b1813ea24b4641ddee5ef2cc43f6df81e7f86ca4d1569ae2a1de393ea95c32488a8f5b573745bd55da4a7edb45bf847a6245a89077560026cffec60649997b9ec2b7e0363a51e20fbaa87c81ca14b87260d92098e147ed358cd6979e39d7d404083f66a63943388fb506caa65d139f2871cdfdfe0903dd92f984423a049bb825d058f9ec382df1a0a1db48d637330581eb2f1a85c125f5883b3d173957742b401647fd86b91fae62c32ca9ef2d97a7147640bb0a5e0e0c39ecaac171dd7503eecdfdc55e2e0713d376e00ece39adfb8dfa582187f32ee4c2aded20df491e25e08161c4e720e27d0f794fac653c079f2c4a67589ebe449fc4085bc85db2ce34803cc0b4aee160ef77b725cb8b66b5047d0f8dc2e6824e46789b5dd38db6347aaf401d5b84227dd505239525af3482803c56d86da6c006dd0e28d2deaf5485d961e943a6ec328ac1a05a527aba980523501246ae21d16f95f2fe6b9b62eb17b5080c6757b7385ce9eed37f3104a57b54891ed126837a4efd1aab1e249dbae854de64d807d5028272853b0d6776b6696c015e14ddcabd52c890bfffa34edf2c586362e8e470fb3615a703fb375045ca4ac44df31a5c3bed3e8181016b2013ec987374044c2a0d01a1b67bb41245c287a8d5815a1ab8474587344af5144e34e6919d9bc5c87c80185a86eafd172af3d18fea0b8eb6b7ee4cdfc968307b3144993d4676534355789879a07e7ac4a02f3b0cdc73118f62168c29442e62114f089189e7c29086b62bb7678982ecaa3f8435228295afd742b455b1341dd02db1fc70c46b72b818a2b5a436421a713c8cbfa67ed5e3702f5f6db2325f116c969d7ebe39faa3d3c517d90559b731d13afa24530b33fc2c47646c1ecc8886b696100b0d9ca61a99f6375a45a4589d85c096a52ab5eda2c124e4117e91ec31d620cffda42fc399b3942716234af6b1932835e822d95f5a729d6fa99f89a488407ef9f14760334e14549c6131a019ad6cf5efce74d8aed7f2dcd331d359421bad3f3fe3a89279553ba406f029a13ce906f21d18e468b806755c78b22bf87060b94c12744f9d948b29ade73e36775c1cd6f90d2fdb940631e30817d24495029d89ebee97b030813e174ca48be159dca0dfcaf94e601da51dd455f500cd24d07a2001977e7f99dc345834c7f5bd9812f003b0d905f22c0ec156da4c58009b752b30185199091c2d6151c4200b310ed61100a001c460004d8eec9a6f693682fe6efc9116591dbc2b87b317a14c4d49364efbdf7de524a29939401bc0424042104455264a08016448727764565555596659149657b56b1a1a4323fe209201e27de18da985a6989ae8fd984132be597d71a1104d9299b289f18537308f90ed79739cd27676a3c29d2f5c7ec621ed001c2cb665466566658665a665c68d0d41e97a0e6a659a62eaa48f5b93ca2eb74e49c3721456429388e13ea5a28893c269e43ca9a26dd122a32544d951a30c63826036c63dcc3130689244f0081a0879e9a42aa4c07644288f8210829404c41537b506961264ed6de7bef92979b264c2634646b2c21b2f69473ce43bcdc3487806d43c8348987106b60f4478a882b444c9220f305955120d25973041024fa429317a0bcf043e2f2a1b2b0422f332f342fb52f258fda1a6b4508638cd3bc382e8529d898e59d19ca302b85f2a862465ab313fee17a185b39552d0f741dde91ab349165b2faba34c86c12a9245449ac9260611c2b4a438abb39e78cc5756960796926b5e3314192a18c2fc6186356968d710b30c080a4071635388896d4d492d8921cca78c9f8628c314653864373864353c4a5d1e1d2ec94b40d112e5f26949555e117c6188309c38129c3813943e2c11863bc84913418634c048a9be64fac0691a0f9fa78f072ca5f8f049ef47071d1d0c48797ca43042e38515ab7796badbd40ba6c6babe02de3ec615c615e61606164a430425f92727138901d97aca5064a941dbf659c73ce59cc15831213a4492d4c1b607928dba01f37cd5850962ea8a030f9e4f570620b524fd8994a0f2ba1fce268f05092d95293061321f7a109555659962b54a13dab8c092374c689353f55a99c73fd408b822073484913223dbccc105b551da053a555d3dcb6a2697b30a9e1154433427638d2e11f186309989902a407a035538240611de52a562239612e2b2e2c2e2d2eae4723846b2479f9563b952ad0da9e54ac7499356a43b9a2a715829923470096ecc088d85c538531ce517bb4f40e0e1cea96629143093038863872864cc5410337e4e454aacc9ce374f18631c61803ed00f1001901f2016a020465fbed07eb0ca9e511b9a76888ce909d213c438cac40c3c38a97529955500ab32b5496a5133adbb38a99d6ec4b0fe37f821e147cb842defa9c7306b373c1f05c30462e189fcf39e79c3549db683d24e7bc26e652a16436c40f1f506030e2880501d1c5f806321b1ba14d48e971d91d6a93060e4316c7ccfe98d552bfebd8711ead49da464f9d73ce3907c13a368c316e02aba6b99130c6788c8a1bb3e2c6b04818638c319a154b76c096541f324a6bbc4034575b8a53c94eb6460ae5dd1ec648f6a587f1af8db0e22a10618c2d0d1d2d3a73c0ba2de59654bd8125e689361e39ec78b9a2c64709a28ce009353a4272ce39e7dc85e3b8b7e1388ee37470b969be6032218cd261e85465a0119565f963d2f6acb2e3a2ed9b73ce390721c1ce964787c34895205df45b17668d54ad5a26260d26ca2d48d699c191a3858e265d7ec1891e3449db685dbb1bb82383871e2050410b0b62645e24d312fac85f7894e1a106d7a8815565d534b7aeeb3a3545fe84d54c2d292d2a90c612b08ac485e4850486448644c8822118b5856816e9e8dc7bef4dc24ad24ae24af24a024b22cb27ac49da464f3da3b163c8661e6076ee3a6ce4ab1322374d27b3cd094d3ba9919e0c0a2ab4cd1823d63831e403402c0879099450235f73ce39e7dcc1d04282c5690b20cc255c4be8f0c052028928283b7e35f9feedbf9d56d906a74176fa8751aa00a6ef9eb1205870a2477bc682d8a99b562e369486c422878d05b163d7af513370147bc686c6ec70cfd8d0d016f7d79ec30d609a1461f1c1dab2420a056493fa346190378b3a341e9f19eb01caa61dd833c64398ede5b0524ac3bce5ad6e4abf0335f8bc2705b06bedeafe5eba7e98fcf93bda9e1e7e060e7eb5d651fd4623ee1b81b8ce0decb65eaa23f9394ee5507cd371ae008109982704ec0a63cf17df74d59ccbaa39566bd0babe71dc462b64854a18788996b7bce58c91ad50cdf152e95f0be5bf7fdf598e33b7bffbdc9c47fdfdf442d17707e1c63f0ab76fb204df3736ea06bf6ebabdea1fb7ddd8a8bb7edd752439b0c3af397fa83ffc3e9cedf04795c7f739953fc432b4f51ebd87e20b45bb5be0d01fa86bad9fc370fc2c86f941d046985584e0f7c12879a98213347ef741f12ec2e8f57b8af77717c247b1c34fe181fe507ff89e7fe1eb0f5f24471bd8c1f7e167d0c668248dd54fd8dd9324f7f1927f283a2b064d37794b97fd9bf28b42ddc007d40fdfb3f92cde5f01daa81f8e2fbc44a797f0f7b5fe97c75b31f0121521fcfc9ec10e680a43fb7bc0f7d9463812cabf6213c0cebfe98c438f1effe664fd50b4bb821d8cf6e83d2d7e3c64d993cc9e312cb3edb1f85ae8d024dda4af458eaf850e2dc28bf0c2c50debf6a8570fc912b68dc8ed9188f375e174bab0a16f50dc3209804d3a8b246591fc6093374e56ac978582fe0eb12b617e88a8a1e68c67bd20b5f76f9036beefa006f8defb6d74488e0efe1d8fc2a3933b2ba5dbb47f8364afbd3809555344101122f06ef0717777f7a7fe1efa3809ab3a8b5267a313b6183c6f6429a594d2ea042c028bf03ba13dff30768097aad7bd15bb171be3223dbd148ea4dd3836e6676b0fc3dfea934a9e58e29e44d2ba015e2a42db3a1da71be777d381def9f59e769c345bf3bcb00706fbb4dee6a6411b987e3d0ae9bf60210657508dc65ef759ecbe724fd25dbd310bcd18de3b134dba2047acedcd19c31bb72c944115da601b3f2f4d40a36a3c6ffaa42e25ecb1757bf14fb221d9bcd09bfda46cb684512afd8b7f018314f6e88f6afa9b7bd8a34912fd6dd351451299ac5671ce1c34b9e970f3bd6e25dc7833c79bec282718a07b84fa44b93dff14b79184417eb9411d49ba6f3ad0bbbe266fdc5a27b06b7de2dd11e8f933d3520f913339e77ce5554d73ebba7c6b18e3fcf55011b3e4c8179f1c4892a8686dc6a9eaacf2820fd7e3818f265ae0b1e3091244a89002131edf91bdad42054a3744193b41991eb22c546557742564b567955613ba125b3c414eea8f35370593191682d27cce394751b969aea2b034c9062f2bcb8becd018cec450d444875471b9710eeaa345c10a40a6a85c70dcd0a52e52ce394f2a2fd6ce79686b9bac49da46eb9c5d39e712b89a08b265cc95165240651f3b5fa11e08a26f8f0345babdcc79a038f7a6a3c35976793c53467e7f0f8529637b7faf079db193411bdf832349f73756228e03252c58bc7f5844939a4576d51ccfcb34dca4176e32bb44df9d28a6eab7e93491de10a73306fd94e3384eb1c22988e24d18a4e7dafe5e9d9b8efbd722b7abed75d269c2740f697744931507256d110b84acb5af63759fd119dc9e4fc1aaebb442c56787ae342f79ad39cd856bbf09400f4065d0d1ed8cf18edd47776bad7d6b33bd38941e0a91a2be647a92007b56b04904ec17c4896359b3541f05e5608a47bfee6e44455688dc6040647404f0026964966c720b22b756773368c3734631bd7463858acf9e56a614ed4d045d0495a016d44f218267dc4d2458b4eb7bd3bff066117f474b1d1d2f81bbbea7fa78be7088fbf8a53ed5ec6e783b2cd21d76dad3ba236f643a699b8e22e4e7ba2ddcead6f9d06a4ef8e3a64a86e5ae61ac46376e7b292fd1cf22a5370cdfdb44d24e4ae9b655f76e53b9f768cb5ad97b29ce59e4b8cf2c2f553a52a7d4a9d31f7923d15aeaeedb53d18e9b117d7d429003df206dc6a07f1366719c4a4398e3e4a190a87e380bcbd40fcf84b19a5351200b6c390ef9d5c0156804f4a90f36a91f8640405a57fb8a5a8028443a7340d85752f14bd14fa7db740442e3f0b53100cbc0292512e7fe993170b56940fa7863c6f6e8e9531bdb6fab1740f46fef411056431056411848036720f64193e00fd1ae0ffe74b08dfab7d50d8126b7d5eadb3e9b27419a8ba091cff95389167f08c2c84d8bab4cc1fb9c48de98348faa668cfa9be318d9d9f537d996c5734495cf995dc3d7ae7563bd7615b2a74479b2c92d6857a721cc71c84f25731c12a4852fc79953a2e8ecfae18fe3e85dcb6c328cedbac226c3a05d9faa3e1e90e638332684ceae0f9e711cea63a7bed4b63a5d503a3d65edfa05d9f5c9baaddc34e99cf1a9a605f563dbff4b51f12b5d3a3ff9953b8f4a50bc3b8aff743c07c5d7ff4a14e2c7e3a65a7e293a7eaa9bede7a7ea7104e9c5f848685aff3fd5944181d07593e0c781b429c3770542fb2641da08d4895d85d04fc7ada3eb6a4b79a9da6d67d71f2fcdbddaf5b795e3904f6c3aa630a355ec0964c4ceae942c954665e80628c2b317e78debb6e93e67ce1aaa2a7b71deb83cdde7ac51179d39cb87ecc579c3d37de27ca7fb9cd98b2dbed6de7a6bd6a7fbb43e84a65fddddeb749f2e0b9eec147bc67e50a1823d6359726cbd67cc87250830b44317623f6cd13603d833f6832bf6838e4dea978196db05aac97f0313a8c00711c8a0015eba5fbf9eecfd3b7e3511d91978154df841c36ccd902a30dc404379911a3f8e603142c3210a10ca5726946b621002b2e5081242542214c821488e196af8b28507e543724c68814a141f50f8a1468b1a54cfd6d2820df9123b2108947f041ca7f2006911f203882d1d388107e542386092e242c4870f69d4d420dbfd2ed180dd22f8697b9d6a3bf530188a6321c7aeed58b61d77d98e5fdb716cfb573a27a5e1114d2f2d3aa229a57542715d58cdb1dba63589f45f2a9d4e17f6c1f7b7b42ecc9cebbd6f79c164d857b664fbcf765b7a735f2b3307bb78d88e615b2e6bc6f0ebc2ddb265b8424bb67fabb5ddafebbef04f695335677bff9b6e24a10b2a5a02c5015b04e5c4be09a80fbcf196d5e4b713511c9a5b12dd72caa0a422da9d62dc04bbbc845b2dec721c2e9668fb942b58b63f6e82a1d019147b49bc31d8be41db7f1352e256cdb1565bd8f6eb38d68319665b0bab3977ca34f9e720eb2188ed4fda21d88cc14393b8b5dd1fb78ace6cdcc22d5aeb54364954b036fd6ebecf9b7967e857c6a37da9cf8857fb7436fd6fbafbb669fd5f2a9d4ed9a66a4ead5513fd0b2e389d4aa92791e80f75f1129da86ff4917cea7967367dfccd400ddcddef0ddf4192b4c1ef47e2e71bf867ee1d7b435ea2f97e58a41e919774d0a437746bcd963567a23a30badba46579b31983da1f2fd1b7b0d4969a32c2a7f8bdeee7c4f96680bff9e718fe200066896cb1ddbe477ab103b0f188016abd21af0bd1053d9862b68f4a46efbd36d535473f05a143e9714b55d30c9a566fe6cd54b092d0f7fcb62e14fa5787da227a9b6c7a539b5e9e4dbf3a9d15780ef7130133fc6701ea688be646edcb858a00992f1436bd2dee3b6a2fccceaa69482c81fbcefbefe79c734e7d47d03df739f73d056f7c0cc1fb6fb4b33b54c2f75df8e0d35bd69cf04be8fe7b5a02f8e1d3a710081f04e1fbee43f8c654082138aae857d0d67e346967b49ac33df59ea2ec50cd21f2bea19ad3dd7ce03d099b846e9ce3b4374c191fd855a24c1c29d3bee80c0b855a409fda249bfe0e9bbe8739f03d02cd77f31a8e9037de76685b53edd815143aa3884d9f524ac96c0a65535b731cf2ab7fd884ec210fcf4e9a811a184cd87697cd2cdbdfd2396746c1c194222fcdfd3f65d4c74b739b660e264b78fcdf23af220633c602a6c93f08e86b8e02480bc05dc70b660c7f4ad3942aa1eb5f7081ffa558cd6867b433da49019b5e6a4eefe5c53c1ecfe5fd782beca5b64d6b12e9bf543a9da614d54a7a12b9752806b478d2f371f1a467e4c65f6f24fda49bd2bb184977b518671be93940858a584039a9bfb5cfa0e96750370bccd9c6a3081604010df8711514e9feb86e52b0b3117d771b78f8cbaeeccaaeeccaaeecba5ea783d6a0fe661fe3bf3167fbbddf4672cef0c9dff35cd5e4371020b9106f20c08284169e0bd159d5e442bc09c1c5dffccde8b06af2957813428b77f12e469755937f8bd159d5e4fee2d268d24be56ac3759eca713e1b2b7e8291a47bc56823fab611e9fe44252db2abe6b4187d8a6f915d75a8139d5a401f145d61b8c314db66b63926565bc553970dda7666715f9ca80be2572166d7477e9b8a1345c5fb2c36721b6f5c2d4c768099f3baffbe0e0c9274a834cef605b5746848020000b316000028100a860342912c0b831416c6071480095c82445c46361c8d460351281c0a8481300c444100c3010c053010c3300c55d29c9804002e007bc2cb977b834d0389c0ffabb40faa0a5152511d4efcb8d7d4c3bdcc95551a58392ab241ff22a7adf51a73c4b7397b502a82aadc802095e97b01a530339c910fe8e4bed30359c36afa047e1087d454115cb222199f16e246102d6c4ba42f5f588f802993e64a5b5028884436cd5ea349b3a93d149ce6b9f704a84ac221a8e7a9ff7eea3c22e2a828a4fc15f1bb3fd04b92542cc40c59a788b12960a502529097320e4b8fa5bed3639bd34951a496e572f32a42cb927cbf4d9a86dde830bfea6bf781f4afdaf7569f31ed6e2051d3331cac19c7c5843d36188c6c55567716427c8125f047d8572ea898651a18503bf91d27d5fa3cb888d7c027a2650c801d3ebfdda2fce66d835abda03b48c4e3cb26840669ab3d3771436bff4df3943aa4276260b98a1ace4cad9f3e907d8e57b2aaeb33e3108999eb012a0190ef263f6eef390298e3186b9e2bc1675c10a7a82d64458ad167a411afe00669e3e5589575bb93cd0dc682afac1750dfc4836a29fae9e3b179e90ecd6fb7ade24cb66df57820b838f3b81f16a0f67853584791e447b9ed9387ffb7aa6f96e7583f08e293f37566299a0c40728f6e558ca2487f77a5fcf8bb27baab2e84ab038899fd2799fe37c5cf141498de8c2ea153eaf307c685ee06dd98f2e350ffd1fbf031292377bf71710bcbddbc1240a2a61009067cfbc3e487fd36dcfc159c67637402a20ffc1261c31c44236ea694bbe4ddcfd88451513f10798164a5de511db05b85d2fbb3878c1bce518953801da96b69c46935c9a3cf3c620e9f3cdb93f4ddbeac0060813e9a4e143723605b73c1d4612c43cd7008032a1cc0fb99c330b230bcde43aa012bd5a960fc8349819c382a50813aefbbfc4d011c93f7d07ec13c81abb57d151495de36ad973249274f354ec1fc36260876591dd301cf0f6e66576add1d71be65cab7f959bba5cebbf5bb4468b002cd873f34b19ecdcc5de0186433fd7a000a267a4819972c3e58ceb00bdd64c2943386135853d237ff72a3d33c90c3d96f1623d663a8b9eaf9da4ff4f836f805d9797ddb2f74dfa33861ce5c5f648e34ae93d19d47dca69110ab912adb06badec8dfd989251517922e7549cd1bb622d38265a30772e76e420245f645fb90d9eab05f6a3a61bc75344ee11d3b9a764c5f726c33ba64b369c3affacb9d9122087d5f354ae2662490c54413d8252b5dcee3b1bc14f0d4a0f63800caded49ed2dee1089f181d152abbc5673a8de6dad2551cc3e3c89469c3159dcc3930fb70b224f76c69bfeb32e4260f86c805f2d4923cb21fdd7b0a3393b1cc5ac80064f5049dccb2314a6f28bf7bb85661f4975682a6add40681375f52932b25ad02e32d5ee0507c7953d2d185f90447e2bfd82fc355d1d9d06d5cb50906c16a7933a512387ba2db388a5189a56b599b0e0e749b95c1f9c950711c556749a650677a788cc0ee48896d5bd489e204a355438883a893de390750768c124b61b25fa5861b4ace3b9595e230fcaeb3951a77b33b7f3efbebed574c618101ea50031d31a20bba14521cb7a8a3c61ae88460204cd5f51a57eb32bce7d6256937ad390359893e5c7abe404cf0f4cc9e0d2923b7280c7431dbe7e286a27fe3b899800147c96f42e58043839b1d6f7e132cde5a101336e8bbbd5677c0ccc3fbf5471c932cc16930baa1078145fa01635b4f0758ff437f9e41f61611bf9647e4e69c3ec680c020a0d58b96e644f5348741ba82a239555ff33a6d8aac96c2c10f4a1efc2b011b3e403510958acc5e70890b6b2bc72b9a6b592f20a1c7b7e7e94e9e94d46ded576641d4c7b5de17d44ee2cb803c97d4cd57756a2335d89f1a57aa16b80ed1acf5d0679618a1eae3d57a50391e525d9a1059200ab195e6b0e1aab38a4f0bb661878ae28388f1b5c6a92a01a51dab1a821868e5e571e60499fadba4cd754713659e2ad30ddbac000a11f1cd4295f069bf2f6c5f98548702e62724c92cb10974a4298400098fd11123a44fe9eb1ed77832bbf74ef342303e4bc739ba16a86362731b39ce7ff4119d03e60d7f43e2c362a185d37bfdca66a2665610b1ee55afa921fed16783f2940a17be48d2c135e14c864dc80b60761263b825fadf9db4f41e49759d7babb796e584e1bbe2a8ee0bf1b1d684b5e3d0b9dd9d5676b893b98308b01657b9e46710a0b734881a3a95a6cfd6b2746cc1f7ad101ac6eee65e359642f2ff96a7e0d3a6a98dc7c5183475307ff5f0928a4763dd857fd2c917f4fe43b7d9571625d9ea5ed5089df79e7f00dc70352e2c613d3e70a556a6807217391054ab6ee9f47d6d3574154defff01dd5a5587a7a5bd57d6358a6a23fb7e0a43c89537a26347c2872c0afae164568b64c3c938e5b88066c15c1466e6906d446efcdc717eace394cf75bc710c8cc6c884d100261c4ae5e4ba7669eac7957097d63708df715b3788db580a82d7dcec6423030698f685215fbe747473b33d3d07a12ff0e177b50620125ac54aba12b2be695d99c2a85caaee6be36a211c448aff841880a839e8d8a4632d8b07e2ad01ba0d01cbe023c87fcfa959857d0a12bc0d963521233f5118e7fd57cdb3dc4b6f5c394e3f9f8f303870c30cb04ec81e9983ad03be8476afbd47743034da4da7a47d523ee8c0620418181fc3d9ededdda6b8cf30c0c71baccc41d5e755393e0d221270ae7c79b8023847ad870c80396e7de4dafbe7d8265a05e01ab6c910249eb2911f01a03326f00746aa0a19f8d663355a09dc1fe51a2ca84f6926906672e38f0ff043748ee17f25b974c469f5d21e710128c610cec9d48c89861d9d01e345b5e59592beb5d600ea181aa7eb3a91fc20a9b5875c26e2eda788937a85b1fc16755876bb6a2a7a9b04dbaa360c65d6eb9ee18cac3ca673e186faab8eab82c0cf5f3bc6d5c9149b97ba6d6bd20763cd4ba4b551c33b820cca2e5b61698777a900017157307dc0a2547b403db2ec8e117f34cf80b4800485a241e9c9696b56d407fb5fef823f19991942050dfd7f503cd7a98b4427141472106de445a2e68c0b2684333687362fc85289447fbbb67b7278975a0a70c1f726502a15c940d944846752f9c20388e28c9f50e5b1a930b1c8b6e430097b6113f61ab67cb3164d6f45f8ab6aa2c4a22e4855b5e543bb4dee3152328804c6ff4f3d32accf20f515a15b4787daae4c6d423c9b3d3bf59f0a9dd479eb2d6d1de8dd4ea8fd2c7791a8aa54b028dfaa49706165b60af262e544c70bcbc7923d58b3770aeee62dcaa7188aec015cea12573aa6a5cde3956a930a4b642a57067c4fc00e04f199f9513390037dc19c5d8e4d1dc54306a37bfb5a1afe54192d7f32ae68069d67ed2f2bd607c83512375d61a3f382883343d64a5fbac53d14d1ff06c9c1fe57af31e450d5419bc00c596a78ec8b950e4040d6933b46a8b6497c616a5ee859519e4a60e36268a13308baf9ab1684cf26a3a51941f5f3b23f1c2058c94c72ca5afab39e853f1752dff21f5ccaf0267afd01d80c5c34d507f3ed70784c2ffa95a74cbda30e0609d960ad6ec97e8a83cec05042d0ef2ae66c38763ec3d27175b330137866aa2047d22dd08078e793498c260217245324c41074b78913a6f5a61b14aa0fed74aa986fa2174a96f3728b28939e87c12561cc8f1ca4cce17d4c7408cd6a9303aaab73f62eab489582225b286b3a686559753c930e63e596e66205dce55aa81020ae4184caf54dc7e5750bc891c58289485ba572a98a1ec2219fe7a1e3eedf5df20a4b46031b0307343f4a64278edcdbaa5a11f4ac05442b7fea26a46e7be081842e9ed7fb1dd8375cf907d7264f51540f85b82dd10df1236cd0e6bdca6620afd8fc6c1c1eec57533c4950e1368c8d881ed8570e5eeaf6b920cf3ea3f3acf21cdbc849a0b107c06f0b2eb8b45e471b3a31aed54eb72556294405b2a1233054205d870a0ad7080da87de8415b016247cd51900d1a7d5e01a30f546c289b1e98e986a6fe06e53980295db84e975c06e5124c0eee881db83e1e530a965dcb41b859af142c110a8f9754cf1657a65bd0f11099a4f85ec69b1c26ddb9f6de295634b4401c1178ac28fe498641109f7d56e41824822cd462b6e57394a6e7ad99f9c067c41116f59516cf9e0fd73c1248a82a07f829b91e3aff1c08f0ee026a715db17607ab029a6b959508b77dbefac07b387c0428497e0f6a934895ab853e8c090a71e865728f3b9776d0e369bbb3c7eeeea1d7c7306e38b04d3c4b80838a88717e17c7c75900a47b89f50163b6ca9a30b0c787409c8702e74e1db9f7394996454f892a9f76471406349a28ee628449d1d1034c26433250d09c145fdc746fc3468e31c5d034601b1c8d947d4d208e6bdbc18c4b881f59e79d6808e7afb824de94582b57f2bdfaf39812c1feea9189c2b51c3a98de934a8a1d7ec5d60e3ac93fbaa86f4a51844c61ad35e86f756065e6501a7d6645e0ee75a8029872c81d1b7445debcd2e9e6f7ebf5974a5e6900ca348fde182a03ab85196476f6c3ddfc96fa94a9c5669121da417d49073129093a11502bccc6092722920a389d198ce8e5daf5af63dcfc5158887743f7db4ef013501845368e3d739738f7db0a57a291c890b951837e8e1860b4a12ae334a30f0a153c8f12ae4a69c6c2fc3f72c5fc3f5e3f1eff37f1b1af960d2289c91de6b9c9bd6c6818a5db547baed01260d2f4bf9e8380ff50dd63c8757547effc81a61b3d7dff152a7f5416026cea05de2cfcc30298855d570187605b6c6451541a7df40b56624b25465fc85e28701fb73d00d568fb2374941334ad024ee50f853e10060102884831f2d066b15a35ed419ef3e1fa16207fdc06a9a7d2065dccce598841edc43e70f9f2f2630dd198e52814bed723174774d28289a97413b77308d4aa7918ec264b99a3e3a58491daea2e71fd35776281e8d02f4b6766f243058fb10b75770fdffbea2165f72aabc59fb571a57d80ef5bf87545394e50cefb3d952cf1a36047947f807d0eebb666e1135c6d37debec11a6d66237e873d6fd80fa5298d8e98db09d820a3054bb0a2e96efa48521202e92568bfa2ef7a87ebae2046e931c3cc2705649356a4f23b4f07ce1c264c15a0ed318554efa0cede1ba862deed791218fc6ae687ff7bb0ca86512a7d2504a5749e6e8fce2032977d0c17c1884b3eb81b76ea846b8540bb6b36663dc52ccd74f40135f52ffe649a212f80dd6855e1b1709dbdb87c1899d018393e222a6cc57e55b0d6347106bfd7d943e88240ef8b4efab46b597b8c8634b96be1ba26ad8bd22b540deab4970010df7adb4f696d87d8f727b60ff58b0f2ef2936c30e91d2b4cb63aa759a0b99d4e58784468c371dda622ea174c7d73b49aaf5d4a25a91e46db61a2b5ba3439164badd854ac09e023ce4f816bfd24e9d424e50dbd793af6966fb06945ab18716dd5d34760c0fb574b85a027a8f674e9fe86c57a902c109f9da8b6f71b3b7242dbd333ef9db2ce574db97f07d4573ac724569242d5d0f73b6416f01bc116f91adcabe47768a826a5ba71964eb431734a16c3cab48b2285ab18cae9d0c16e2b8893306d2cb47694109f3aa9f5fcef6f5d20ae0bf837774b659b74f9ee329e4d417084e6ea217b1d0e01c141ffd58197872e26ef45e218b91bd3a867561434867958a375b026ff41af3d0052b5b604bea56aee67897f8e679f674a12a7742363290a928ffe2107a2e8c7a09c40ad9ec8fad97e4a2230e08110cca72e08c88bfda641c216dce13afd066990f66b1d55f0fe05e7423b1cffd78c24b1005b6dac01864e33c8305f1ca811c089184e80b818b54e4cbbc05210b9c54142939c7a63045d312868cf373ee41dbc7fa9a89f30ba368849924ba36b0f1f3869a33b1f79a53757e415190db1fab77352d6dd34a9b48ca6131054072bf1095381685824da37bc575824ac4963ff39a0088bc41ad2c92dca77f7fa91b7f9e59d9909b9b5f4c7fca84b5905cc495a8c3b624e909e9b2bb026a56c8a93e6caa76b5ef98147e68226c5a7ef8c095377bf0531eaf893a05cc0694b2cdaf5b2471b6f25b1b47be5766189a46db605ffb371d849f5e2f7916e78a2cf9c1c91c85a1efdec06a8531fd7b102db90f2df947f691dc8383f11535589e2874ce02d13a1b08d5257c924c3c9b9cc686b68be66d7c0cb3fbbdeb2d16dcd65aa149edc607a2bce8d4697b83c1237094ac7670808190b3c3a2120ea2b645c84c4315f89fe0a2564ad306536c7b9fc4a4a04c81ebed29258a0343ae83e4927e8014b548e9f2528aa39510c5c8b2b4b56c1fb61c6094bd0a9ad9d0b741c56715dd204d2875c6081e4fb926805f0e51fcc5f03c1f99c1b110f342bab3e072d4dfe49b6dfc820668a46ad2f0286ddf9cbf21895931d5b92867d3248e9352403820c42300ca1319d5cf024eb4bfbf870c79465f9f84c8ca07bad2c6db44885f2332e13803cdcb9b31a840a0987417819cd79200ce3af6f9840cb0092d8e14e743ac14624121de7d8289d144673b833930e418677131074a626fddcd61f035e230ffa2eb273a753f59626e9263790717d4007a1d1a6d58d81a4f27e5305f53786722e2382c135134864b5fed04653f071d422a72d19ee5cdba02ff67433a2e748fd30354f6c423a2a4f29066934ea15f60422b159cb326939b62d373005a52e2ddfdaaa19f6fc923c3bcc701f1e8ea595c44a7791b68ae3a5cd986b92d9da841a802a506bd087fd9b7f73aab877fb20b5d1c77076039e39de669ce87cb506fde59afd30679e671df90d405eb0e3682aa5930c4f7e31b4f72eec2e3ff82b69a3a58b703151f6bf2f346b1c63c5fe5d68bea80bf9eedb6e30c295ba88b9832cde7e6421833e882320eba3f01be268f363d1b60a0e08a671d5d51d1a28718764356be0627dce8219c07dbcc16e4911e8e9237022533f5dc0a94f35d083db3a52ffc2fb93d88c80c91a98c632e62114d09089f7855cb59daa1b36794adc14110872e875185f6b40eae9073876d18a57315042f4e4742991eafc3298cbbd75829a883436e706158374109fda43daac23a7ff0481dfa3a3fa126e1b2616f48b084f0d7e73c25d2834f3855c93cdd8d68ce561109ba216e3566ab758009efadaa48c67066cbb6454146425aec586b504c58b97f08a362d8e2b0ce24302ec125d0da2c415923a31ee8151fb56bd149d0ba67fb49c9f03207d18ce83b309b8dc302d224d83a49005f167ea3c0e0c0043b6a9703dd9386ba63e674e950d2420b292213700d78ec04c7fb345a64f12c22fbf58b8da9e0047b466718292213ef430685f18b4794199ed98939c4c1d670835b338d63941e769905134bb2ccc7f75241d209c3ca08c903efb994e7a4d4c729c2e74ff07cd720ba68cd006e126f91269f28cc53080ed47a97b33591b01693558b21276d1a4687c5c80be9e50f4e69ece5063930c023b6d90a9d78807b364383c728e18749b8bde8c31b34d80e4a684e7e0828bd4acfd806911671b0a8172ce296814d9f62c9d3a6a426d4af6d6bcaa93610c7cfbced2e7c54edaaaadb8dade71ffecd876ad8345e06cd3de00f58f8c9844ce0df2bc0324a64da4b0d38ea22be8316a6842ca8e1495a80b945b9b6293ee66af390249a72db259e2f1fabf370ceac2630b2480a41caf8114eb3556a11a43839ee1bc3ef8d16d438edf01b20aaeaeb92abc11bdac839c88d6afd1c6b507fa34b8341bb01477743ebbd08ef94c5a4fe9d492989da830a490e8827ab93e660b954896a1f6837aa978836066d05d188f1333ce18ef3faa475a6ad85c46caf709ee522ba5c36b4f6e63a34cd11a47d76a3a6aa656744b16026961dcbc0918ac47abd3b61cc37875533a9d21f1f67c201a7d3048d0f6d761b3e9cae7384fd12a10ced933d5971057f18ebc878ee35bb3305a42879b912a8cee8eb0331f31b2dc0dac0af1ce13a913303bce416915c1ee258ff32ae7fd06c56c328d10c68e45fccbb1a21659b4b5e465a8b5caee0be3ccb63564d0588052501cde4c236c53307d2176300cf46066a1da57e4de5dd1e3274be0e093ae3fe54249108e654ad3a569b5e2a71918f0bc46d22e2ede904fedba84faa3fa856afd19edc23568ee9484520a6a3d0f4896f8e831a9353ce2d5007a93e6b20eb4bf408a36125ee1d0a94c61604088beee9b45693051a5afc688297fe6137d175feaaee9862950f8242c75a296427d04665014c7c462fed193ccc706aa960a90c959af86df8dacb088b4377f349774993e770e478049a79af0144b23934511eb1989bf31253163bd64a6eb7d70da95469862a315eab91ec7954a86d88a550db573a40abbad262fb78baebf195074d21d1a79a6a5836e1f2b0d5d650bed561ec3bb40fb4045e9b7ab5ac98b90ca10491eadb8fb8883127c17c5be6151f73addf6c5c3b1829c4ad05a3d89f347ea9451363c61a31334f74881d2719852e3e82c8e1cb130e9058b62750d6080ede71ae59dc859d34afba63ec68930e915d2d30ce36b602b1893a5958c3faa797feaef173810ea13f9faff5efff498e470dfb112cafeaebc780a9b200683f36921d94922598fdab0653e731272a4c638c94bacb7c06a32a990e8064f74332920ce458826fefde8fcece307a46db527be07628aa49f16b1f6c5c09a7fbefc2605e100685f1bf7c87847985db47328f41720d5611a634159a46875384281662be628717e841d03e10950215dd89304bc2bb2e44dee0191fb3fe4e36b6f077d6c959c468c95ebe462d9a2b4bec887b91d41af40a6844deba7fe918e82ccf37f9294e89c50d9eab8f698f48428bf6fdea484812e5ad22c23ecd7421338e523ecbea4541e89526f199b62717570ebd6f59f4b4efab57b019c8208ffabd7a8193b1956ff9088e7a74ef74944846e5a04bd9c03c38da52fba9ae88a9d29868d5cc960821b910db878b172f1f9e3d5262adccf8d5f2f788a73b7dc0f681e9bd62a237874bc4691014f5dd93ccc4b361d21b4d84f1b9da1807e32e94ee81466492e0542430c88453aed76c76813040a7c53813237d5eef617c7395d134f90493829602c95971df55b2ea554b0ac697454d09a338fd5065f15ac16af9a3cd5e0a9364f3578d5e45d2d1eb579abc5534d9e6c8dc7b306af3fb68ef7db4ce9e6890ead95670dde35e45d83678dbc6be0592bcf1abc6bcab3064f5de3e359132f93bdc73b60e778712c68ea47a93d80a8899c5892496665303d22da7edd345595119601b979cd1824cbccc855b7c58b8d3d5da9f8670dbbbd70496cdb37294df9e49b3867bbd200c23a45428d2fb6b6a98a10d91d448f36f44a717c680e087daadb023da35c2be51f78200a68c8cd121dc32cc2651c16d55e220fb326f8c61d3012eac63c570250eca8c6b9c9e4cb8fbce7a5f3c07e7634dd433bc2675d10c5fc5e1ccdc717ee028d01e3c1617680c35659c574002e408b2752300589ac4414cafe828b8e8c7414cfae4dd494556febee81cabaea515e32b1e35805a40bf07ddeacd004e11330d6c7c9a49c6c4706bfdc31e403fe5398ca32c06605fbc9695b05f8e6f67cf3d8e1be613bbcbc234bec9c4061092ae7e4d778d5827e32ffe1fe4523ca8fcd7ed55f1f134ff6e6b6f687f6aaf6d898a2b0ff7d1ff6f910fa8ae9ce6e85522bd7e7c2363fde51031b3595023189297c981212acd3eda971cca2de2fec59684afd0b71570ef9453aa61ded8f51794636670efdfbadc5cd5422e47ebfda3082d06d91c3cc9f379e8860fe7882c67a3404d6e0194cd5ed502a207117e6e78bae23c366e01d0e91286684ed6a8c28ac0fdcbddecd01f8bdffaf9fc369246006d853d2935821061bfd66ad9be68039d588bf466b721bbd1500e226c006a0469ec375e3525be193ef506040132406fb49e4d6910143e2e586e461cccc501b45c2d311bcfaeccf1b63e40f8d6a634ef51aee0f37c73935b2d3295299c8ad786a3bd6ca261c77fd5b7b421db3d7ecb6eb840376f0261c9502d2e21b9f34e61844c0e8845a3b4ae229be924e3146655de6ad1108e995244326d7ad60d2b49fa9960c87e6b8e2794f6236a5f265ec651770d5cc9706e389a579642d0b7f624da95bda06c3c255333d2ff2c761017b6d978e1a10b2339259e229a003f8fccec5b594f25b4d41de4a02e1ee4c6ce725526e923f132689633c8a64c68fff2f8c69b5e292fc45ed41930e5288fc452b0e2f62ab851514a35e5a0aaa47f8c12e4c16e3244ca7687eb93b6e86b7768e38aee05bbd221aa08f17d91999950165a5a2c8bbb2e710518cfc9782b421784f77352efa4c7cf104258f089e2e78c16985ac06b86ce360c70b5b0f580aaac9507e8fc8a532dfd884dd1c457b4a92089c423d363384c63b4a724c915897e4ec4816745ed323c321b3f9af83945ce8adc2b37e8d2e9fba4c3f67fa34996eb09c45206e4c002f4ac9fcb203d43d1d80a055ef43fce41fa3a71b94715fe04d4dd150054424d90b87e45a3b658630318a2abb21f66b9fe2b9d75065c46582fecdfbbcad57a4b579c1c1cadc012874191731e0a78cae9b7d2fafc56f0241f2968ca5580ed3f1679eba1cfd8100b234ca9dc78be7e3d198f40bb05c4debbad77a5a504a61076e4dbef1b16903829bacda66ba887cd8d407e64951cd0e70abf372b60514c2ccad433dba3841d4a9a75e166480c672ca6d82f05750b5304c92e4c6d8a52c9bec2cc7d3951490881dccce8a6e1074b0814e2cf040805d65dd0ae31b442a98596fff7401b7746a1ed43613e22848e04566c82cea3631f991e32a9fffcb63ab92cbfa2615d29423b1dc2b296840a46ca4253644ab8348b831730f35333fcdc24ae7d0373f1f2f2ead41074cc5a3d06d5b54610f911b2b8fe4aa4112c66115a1a023b5079bbfdc6060d4cc565377401e438b5e1715368d8dfd32eb32706ba6d4c1886a21674936758e62ba996924deac882f033df12aebf6ab92ce9e8006ee0787e746208dcec7dea56341cb0bc2a6f06c36c900ec2181f311097487c6e7dae19dc35a385198575559f00e90cb183a2ff2974ce8ada8244a3bab4a31d7835646f50923468b1fed3f647ac39656145c5b498a85e4f8e374b3591cf3064940ec41382e781640141b20062d9de669019d88410d709923b6d3141c0e7050f04066379c095c532bc2c170d046e396120450226992863576029367583d1e67459a22c6aeec4ad8d59c510d9568f3cb26240298b06314881b803d0257abc364f1681e5c9fcf27d8e8a93afb1773afdd1da66171bd78baab877f41009b254e56cf789de81af6361b225f4253ca8a85008616b5516a19a74d55b611f6ad316d13016a03d983d4608ff886a502a1f453a19aeac6a089e7be51efdbc4653109edbdd6c824021c1409a66a3c549c425a98a116953f12ecb1a41e1d4c9b465e770a2520e543b1be560054085f0922169020f3c391fe82017bd2b2148b18466ae9925fa1da6df21f3815c76b477202e38cf482b2fc4c946047d3c4378156cecae7ba38368f7d5510f7e5a03cc4484874d4b7d99f0d1ec56f540c0de964995b4c61538903f58bdca9414f82184620cd1056c159318682b2e824ccb8c55ce04083737af9b8d680fa964b9679a21a2b0526a01b6be15729306f735a4b80ff2f35bbaf8eec2b864ae3a2c54a31ad7950921883aa2c4ab5ba18d320f2630414a216d241fb285c21fde5a3545670287ff21f526e7a840f4bd883a88e7db253e6187cc51190e5b4f8aa702d392660d2c4ac4d87033bdab3f9857da2131a83dc27c9e261fe746fc0e56f92570dcba6561d52398359cc51595e4b0089720b7737a4e891dab2612ecbc9cc62e72506a833ce2ca4e16044a0e23066415e80e684185c16431351c9f857ccec71b4c403ad25d98383996414a2150abcaab39712b3badc74bf3920074b66ab80518aa15933913beeeb9c5f513035c80023310d7c43fcfcf94ede9d041ecc1c2d7d2a25d6ce2b941966b76f24ca30a054127c336a7dc2f3758e6e6e019162a0df7ffc62c88f80aab80db01409613abaac99a36e1854449b0c1526694fcce60b694cae9d34fad21cd1318a96793b2dcb9711600dfbd15946a5f4630d6bc16e8b44c028fe322d542c00bec2c8af05392f688fa92fbb6bfee51dde978a1e2eb33b086f99ab0c5bbaee32d03c55917158c83486129050de6d5954168ec0bef89db5506384ab49f7d637f354a4536acf9d088fc35041cecc115e7e0f505b9475c4dee3c72a35276c16548f7d0fd1b53b2758f1cf9c6e0a285e22b2519781a2575a88560728d5d9417e2c0a06ff946db51646b1e17670f09ed3d0cea03eab1ed80793beea29a53eace5f75066b9600ae34cae5887edc1092a2e853e6600010e4b117cca4ef255d90eeb50893235a361886e1de221db0093a5f3e88ed7d0371355ef7c8ad7ad3e6f1abb1db1efce4519836c01a7d004c0347fa4b139f177258a773ca90b50a25626bd60981cd5e7f008dd5252f0bb7f5208206e23dd68d22a0003fbea6962257433de3c89853eb00a4c66edd229a363b5b75a48618225291e5cb6ac6d967d9e0781c846925480aa026c56df306322a4f75e5f9c9453d031b0c3fb8027fc41ca15f2c369d035e7b9e2e4a1ccb05cab00acbcf05296043289bbc6efe3410b4e8dac529e4b04b0d472420723e683d1fb38aa8362b46c622d2fef732c651e5f683c943a0cb3958ccc6020a2a1055e240b81697a6a5bcf1b9fa55a41bcdf864b008e1eafa21f2f12d09634dc6c17640c12288ffea12545b11e7d331155e38a9e53804281da76460fde848191a47e6bc2f48e083e97c35464e557a39fda8d9964e7291f0de44dca4dba7760e4d230d5878d2790a0425ade05f4cd953fb8cc191cdd9963580c1c3085a77612bfee92184200d197fdf57cbe9ecd78d646cdc8c0ac7e4081e8d130b3926ae88c300cdbe4a55c8ce1843b7839fba32c0bf36a325a128e637ea3600a25ae428736e9c03b7079d62c10be81c8b61e5a4ed4105816f99fc7992fa9e933023974e8e39909591738d1f383ee241e81451203838a5f4e35068b05efa3066717362b254061f24af8669e900d3aaecd0052b1e1674c546a7612689190919acc00f25ca4b816f4277e408f845c8664aabae2fe07aa1322364ba481a468f45f37e1ac00fc291172e82e671acd345814f2c585512237a14a80a891c662960b947577bdb5108d51a93d69711c3b20bc41ab81eb885967b0f651691e5eb5868a6ba0945980a098ee60e034ca9a8f4499749251084587e48b191b6107ca48ac1b3b6b42ab33935608db71ad92134444acd989eb5aac00507f27cfcb255548f8376ae9a873d98409234292c8990f4f3f5c0d1119cdb90cbf1b6b3553206a8a2faa26344c2664d27430e738bde74b814ce0abb9b1dc200201c6278f42c46d2f6c862144f25d744d660e36817da81ab471469512ad8d40222c021524581031024fed0903a72758d480af3d0b4a816a38af94604f63a379a543a3911aae043aeb1aaf94520e5cfaf901d8b13fbb6ade3b4e0f4098620488de050126a3ec98d1fa99f52e51ec6d1569b99841f83006bb31c318f492a72d0a4b47a093370bb1e0d1436180b595592c55a04dfc3c37b871502bbc0736c685ff9f5161310386eb3f0255a39e09a92960fd95f1da99b8f098a488a6dab767285765f45c733658e11afa0203a426515b32716d7daa5c4b8916402222e1c3642478b31477ed6ca6093713247fc8b8497b4690db28755e6a2769dbcd6e1a3260ffa9d104f9bf2ccd4ad47edca59d450677509b020f430dc07c717840a6a14285eb7ad4608ec6235fd889289fc1419e6daefd9a457e07c74c8eb84b6827b8b0a070e760d046be0d8b8444dde77250e3ba309a4fc2b114113f6b5398a08d33109baf25cd147134b40efce466260dd2b8a692141bfaa99d9c8ca2ecadcb0a295d232d09f87922694250f144eeeba000f26cb806ffa209a37eea8c0e8c3408ed147114f429bba4cd14b7a0a00d226d0e016c9fb6696460e82cfddaabf956be2bed55400cf2c09c1f28ff60e5901e3843922d9711c2409e74b9bb2037939cad6b3005121d2bbd4965161742fe69f05bd36b789a5c071e2b56c8b953340a330da8c11705bc5e5fed2e4980a84f79a87e2428da53e97bb25693312f9b92a792b5e3610fcd4634f342104a731c4de7c3519c44e86bfd4e0c48994f7a1b9ec33c10d20c838ab114eabaa1caf8d2a551f32d82d2c3f800cecbbaa5ad50d0c6e5ffd76f6d7328f60364a72f7a33e30d92e399284a37244475ef7c1c9006260a5c9307adb5e5aba64383133b2546af5b84eece632e0435fc0bc9b15e53b695b412321b2d0c042ab1e486f7e68f2f14e3dfc58bb2f18a6bd68ad31a09e9608b9cc633dde3e80f15cb5799cf7d7e6d14cd7b175b6e282adba5906c2795bf85124ae0d0ffdd053c1c5ba3d4c6b1027a26b96072406cc30cb80a66ef1df3d13014d71cc57c75af07960659b34abb09fea8ae81d4b301293efec169b3a78efc183098c2a6c2cd319907e4fb9979fa65dda41e88fee209165d8f0f5b82d49cac5ab7737c001aa63c60f26d25fb1091d746266ac9671df533d1081453d2e996b111d5cc210b03196a55cd5321c0b48c4dfa0c28625c87f83ce1f000789e3e2c3f9785f91e087e06cea8562beb2a5ac32046b85c3696f585c2f2608253b4e90ad5025746fc4394ae56474e18ed1eb986126046086be590907c2094e4e0903768305a0b4bb0385d97df6673707673c1dd1a6823798848c8ef9ffcb04f77f52d519c713a2d8c437c376195740be83f06315a6f8e2ae9574c427940afbc84787714f2d1929f4c665a827b04e3e26ca80e3600072123537c75dda709c5320be84dc5be2599d82791baffb06656b39209201a1f8403f850b6c9a188d803349a841bc2bd2365a6b3f735f6c8b505b7c8492abc9159116f69a93310980c0c7f196f656cae57c34b056ec11d4d11ef9981f75b4caf34b8e3389a50e06b8f14b4e3224bd2cc546435aca993d917d18ba015ebb13bd04208310c025caf1ba128c249382ca0018ae421db57cce6451eaaadc1f4c0a8c823e046c2904bab90e0a2733f7b63f4907e2697801b530c3f08368f30334a9132b4af653ec37848d36102a6ec083fb10229f621c40fbdfc0002f55698dcd77cad39b54a9f4886afd81b06d5d5aef86466d1b0b2be6bbb8d18291635c8c41133ab946db0f0749b0402b62a2323626c14bb9a95377d1a93262e0563b9623dcb4d09b759a9528aea1fde4c68fcad8c66ef4e24533d4808a1c17235870e90b5a88ac791a20bc09252c631969b00751f0269bea41b077008c32cf207dddd920cea6e84cf208495c8196d89517cd4ab7d977ec1402ed00a7881642b98c00b31b0b2a82ccb49547e4133d94aa8b41decc31bcec04968905828c9c99b6a8f13743a492541d1aecf0569f0b3f464f0b4ae6620226f964bcc2e9d8e6dcab14083a2cdb8798361a33f8135137e9cecc5e33777e0982c794b8579bb116a9db6ad07ff52d681578a7f499835574a4b2a85420e451b76bdae19254499dc22f43f2a10f49b026abef1575c50d8d1a803d9da1170905b6bb2602b38617d00f40eeef6944691980c890590de613f052b24a606264c5d96bd6c019111fbb8d502802308eb6d905ebc621dc6740c8cad049fbbdfcfa3bbe39ac7db03381442c8de7b6fb9a54c32251965056705720576c66232edd56c34ea6ca1d77017360365bb7cbec23e68436961c8813e1e1c2ed45e6b90b07fbf11538c1b7ff80033621a31d58bc371a08f03a9480ff7dfc8fdb60a055b3feb36903ce99fdde7394a45c68c986eff88a9537e98c2bd36982dd520b83654a77c5808fa2ae75f6e6b1b883bddde40414c03b8f114a4e56ea8175b702ddc8e8a75dfc8e55c42ce871672a024d829049b035f5aa51dbe5c3b0b887c255f3c208107071272b91fa20c5a1851fafb399015aef0e14413429c6802e5440f5213536130d4297dc75054d80f63e236a83d27c27e1c881bc5cb813a4548732d9d223fc4f1e0443ed35efb4ae67647ca8e5625f56aa5af584e85fd3c66d45efb60294acda0c50709ad8b65b81db79f7fde6832557135aeb3c1f409c77fb9cb8ab0cc815930713f0ed429f194c50b07723cb0e66a9097bb1ce4dd401105c684bb1caee7ff3610ed98d4d07caf4e0d7de995035f4a3b2635f0e5be7c23770317a2cd5d1dd7d25e73a02dd56da8f64676b09aaabd18e4d2ff7874a31353e840c993de505c4b75bb430d282b9db290b9f1b4c5e97e59e99405cccd4abd6a4fe6f68b802cd7c28150250ef4420acb81a467dbb4ada5b747490f36d327fd9890144bd6127a4d63e04035bac84ab7ff338ac97010305131c0cb20ec0892b88cc9cc1ff6c342979b8da40703d231a3db9f81d28365e0c598c04e98e9f663a1f460a18a85a2d6e83616dec648a08b9538504b142e7720e6561c688a2e07e24023e10b35d0620adb5618b6ad389073d9669893d9581c88e3b1b5b655cbc8b4173ba66025881eff4703d37c942c79c2efa0c64a10535c04d1e3e74da7e9c4154d11b6dd45bce25504b50a958bb8c365ee46e53a2637709f6345e33a263870612dc913fead6382c3f6dc735d35c913ae2a79c298142c631886d5f6b0b7a8f678c3565647f454509e4812f04504b90a500bb6817936af79df845ce6582e3fb6e96a14f1845f8355ee85dd486eaba6b655eaf25b54a760a16d26cab08428833fffc604b6519f7f93e994eb79d3b4ee62497001f1f6d830176121e9d956bc69ae0bc130ec688fb7151253b8ec2eaec3431185ff7b5b5deec4bbaddaa6b27e81034a296566ed051a231bfb538db647bb1c38039c2b99fbb8bb4b77778fcc1f2577b83b9160396e92bd0addfcc2d2a2eeee966cd56a2ddfcf4d2d5bb2bf56ce9764abe4b1fef557fd1c2bf4bb2bc67917323fde6a6f5e1d778e5f7bb17d6f788b0596c5e57fde9a2ea4bd96427a60fd4351b6640a3b08eb2d39d35ecfde62628822738c726317cbdc35cbd644d98a28ed69c956268435a9e1baf2b1cbdd4fb65a5106eeb6ec34520ffbc9166903a2f7d348e16de962a510569b00b6b21151814454b2c58a21ba644c58b0dc01dc688ab1c2154969a006a280b8f068ad745b83b9adbddce6d81c7356c4edab91fe5ea82b25875cd9811e052b5b737ea36cc8566677f90ceca781a8dbaf8192a5811ac822a9ab089a64754abb0f298467d83fde12bbfb99b9f8dcda76c55cfebf623aa59fb9bb254bb29a455150dde426961098152a9c49c5fce00305f8e307a13b801b7f38c1ba1aa5d44931bc2164e68713a01f4e7c2237814fbc225ca16f5257ac3ca93e663067c6b2a4e1ff7574fbeb487ae8cbee05f73cee06da9da6d8713f37754a3c4dd172fbfdd429920389cd4d20aecc4e459e8cdca4003a037db1801eb0fc039e01edf5634fb05f445d6e8a2937b989ab76026c8e54415e78922e4fd4e51973799e2e376b19263d30be5ace6bb80d462752eb0b6b2d87b3f9d7781e57c351dbfb0e8bc24492b110d829916198ef20e9d93c6b9d7fd6f9631d487a369dff104ff8353a2a47846599a68e4aad403ed8efd39e10d9929961cdd11c35a8e6c89adb6103da8034436c582ab60162f383fd4636a08d0f9a21363e6c7c8801ccac0935a146e4458424526a4f083b13639433eeececae31f1c03a4783c923fb6bec1e86242b1752259fdb4fc245f48898aed625d244f48890a40810646635d9f9de4f32739ba445b26aaf86794560602b17f61321ddd642174a84243d9a50138a902e9416caeea70935610b6c4b1392ac444c214da809638862886e6bc24c088bdd4f434392953c21d9c292224a89494384484b7ae88b98444cf264d304fb91ac444cfd4cb22259b13a228b82587277777777efe81e637fc72c7e444e152c17545cfe48bce43a5e388987bc54f292979a45041c265f9263e5bb4c9e8d5a6fcf2d7cad18db2083cb36128e8c0e5f2edb341932b6189dbe5bf633cb30cca46392bd0b9f63a5a46372fd8ccfb1a245130c09e32f92662d873342e90d26ef4287c38537f9ab7343c9cfe870ccf892d75c98e142c70407171e000f001766744c7098f12ebc0b3362649b0c8ef324249c189dbe9c8c183366683f43ebbbc9e0b418222d74e22d3181d1a92fa29974e24ac42a56b5ebd27a94949454edc24a4a4a28a73f0555c4844623559097940f122aa6741a8d1ce42067f18f7f42a150e8fa508bb338a8bdd108544359d8b0642d49594b755567eaa932514d5555652aaa02b9fcb223658ae8db36d61fd1837d4cd10ac5e5af2f59d28375b554bbaf7eb596be4d8c28b5243d7387d01397abe9b287b58455613f5749562dc9d4522df586554917cb3fee1f9233d1326201895e423c6ebf47fe7c989dbb0e85fe4640333333b73347430d8165f9c73fdc6269a151157790fe74d3d6edabe5369db9fd937bb2589335e764c1b0585a1e67b2a20c4d298baa2e15448a8548afd0a20c325e2e885712f1aa0167081bc4edab078e142c750255416129e7c09e740663b16d4a118bd55efb0c47c30c1df685dceb7d353bda2df9268b4e116807f6a3255a92b55a4b4baa922a8606611bfe916170172912a9582295f4385855a00a64f5cc6c352701c935a06f6418fc1d949e69c4112225464b90442a1a6acf595a40544555fce168344f1c31fae68864821ce4db1019a11dd99155d920f685ad0fb6a4cb1675d9c65cb6a5cbb6638ca3d168341a8d46b55aeba35aeb68c41ab1242b32f63956a8ec5876d429f43256b3b63eda634b1ab5674795244fb85f93f77390b3d0cefb396877b071e5aba356491dd520eff659d1e5aff7db4697df8aac8b1d591f2fd5477b275b495d1db5477f60a31c49966cb11d5d3bb223191a25a4ec611de4ae949be45f71aa885d2c283d3e41965d05733333333333734f2e227633f7b89a22ac04473d6e8bbb8151c17e1324495694219256dc537c401fa01d5d294783dfc8310d1d732c8a224dd49ca8d6640102e3295fb910577990db3f39c63835de660eaca3fc073eb844881e0742f4214447b10d3f85dc8d7164c56d1667e696c7619f3f43bbb4e79f88e2206739f90eb79f8783e084427148412ed4d5aa2c1710be60aed4b5ba845caa2b48f76bad19c2ca557bf12f54a75cdc3d5dfe53a75ca82ba5830b5543602f9494e10bd59b0f9d420bec33c109a280b8f4e4d1a5db2fb7b9795e1fffea1c74d05933ac88e2608fdbcfce2a59bea9890217c26d41f438290531650571826cc36118867e274d18cc9e71b273114ffaeb0eb7ff07564469da2d27c17071fb5b6c7f17737a08fb643aa81f071d440171e1212ac18c5edc638c31c618638ccc551cd8f871869ef18f7ffc2391b0f47b25b6371d94425aed39e860abd626c4ef180b8b6118f606b8d83b26310c932eaf7caf86cafbcf9216420a70e3498bd36de176dc94162fdd8d272d429703713f8c84cc81b81277e27634a947b739f0b664c9d90684e8b5dd80c0a3243d938778d23f89885e7f4f1e36f7cb4a9387b0bd0ed25e6bfec5731d1c9bb7321715f11ab4f3e5f0eeab5272b2733dc75d4c96a9dae321da76dcaeb6133e7dfaf491d933622437f673d67db55e5d771ba0a197b0b4fb3230726717439fb049bfdfae8c41c162d80b8e27fcf1ef57e38ba61a376bea042a666e3c6d01e4f6c7266e3c5141baf14f54882efd8e2bb09f7799c414dbbbdeace131a13181750c5c9fe74960bb578701f91970007df9d7e512e0f78bd617faa4dfc4dfbb87d2880317e0dc4b5e574703251fa362fc8127593ae5ea6e2accd7a15374686febd4f571678073afbf3a3a1c61afff7488e994efa97dd1714c7bdee4b04ee41ac9138e862b06355f7209ec673940ecf55f6bff75c8abd17cd17dd5de4d173b1682f5ff3a8caa0e83ac3a45f3f39bd533dd921f2deb544c769b0ef50a82dd3ed203e216dac981a9daa39fc375af1cccd21e83da9bfc696fbea853e6f671fe742b29d7cff911e6ceafe1840a40f78be1ce176ce41736eb227758a7d9c0c6274e3eee67af4b9a52e0472ca26c11458e6458c3001d835c9152755940229c056986e60c996078f08e094ed23c4dd1ec507b4b8c2b9a754b7ab2ce4ba5cd8db1243d18119811266cf4c4e5770c8c28dc022fff142205b104719e20a65ccf3f436cc3655233949a218fced50a20881e67d52bc43a24d616db982d2d18b79d941aa5760471f99904b7e32d11857fba64cd16d66cb91c9aa1f6d2e5276d3970d13445481185a60813f7d636da5e369616b27d3670f3b1813c326ba46045e152b87b8c2f317af40d6a0373fb65836aaf5b6bc9bb41498fa6fa36294da5a96e47f1c2dedd9a21ac742158603fad35bf4bb3aba0cd12eca7b5409ad4344d896eeeeeeeeeee6e6e96ec37b8ed23500b4b4469799cd1287483f9a1214614fa41e20834881e37c1400623b6e131a6d1cc41ad818d1185fee773871f421d2111e1fc8c58224a3f9da1981e2e68721f6246234e088b9973ce499b4ed953a6f873cbc0facf29432bd0a2b64981200a888b8987a804337a0141954aa552a9a44aaa381d0ececbe83ec02ad447ae54546ad4902c1982606f2a9554a9a44aaaa44aaa98f31f4745450002e828e249ff77e22426a9bab6b09f2c4995a44256c136623a05fbce62b4a081303218529565946a60045b2f5e038940010fd146e4bf4b05e3494cd22355302e9354c1b0d429edc0e888bc00e95b9226b98b0341f005a0066a5a9d425d402250c003942a10942ae9d1400d045f0082600a002d08126394514af9028d11ee7290577e0e726e45884a30238e3176d75081b09f83abcf5c620b4723559097fee983848a299d54543cef9f4b382215aa00572b1fb89a506225097e599a4a44e740617fc43a97b83d2ac97490ebe309fb796bcec97aeb8039affc1ede49217dd23bb07fb7aefd3bfca023245b73d47db7903bc186b96711ec275b379e805c7199aac0854b514a29a594524a29c7184bff1c8eb555cb589ab1d8e17284192a7a15951a2ddbe1e0188ca0070f2b1fb854e14a12dc922d23225de23655e2363d02acd1a2e06c6519667d749d2e25267c50ea946f962e4ca77cb375fb2748451cef4b2de9a99d095f9d097755fea0f19772775ea241b0df544d55946196220a15d133399c5952cd92ca5bf313b32c6ceda14ddad5c03f3b1c985767223b2f39137dd22fa7b07fe9089c9e493f05e9c800ff5115951914d05e83cc802f96a4c7978827fd3f4ab7a3e8072948410a724c71a9911d1a9056d24e3bb885993597eeeeeebf4a2022f0cb4c2157fe33f4b37757499e30e82a71f7b4027333333333337373cbf95db75652a6df3d243d7e443ce157620597bdf3514461d912e29f46c07c1f8d7a3492829b99999999999b5baedc5daea4c7a1b0920a971de502fbf9c78df85c5495f82ce122140af5c476848bffc0e37eda68ca39fde4e323740a5f4ee14b679a4e58983ecd6503ae25504a315063d20ca11942c3038d4b47145731fa93ac4ac01217929992d0ed2791216195804a7890b44a586e7ff46118866118866118866118866118866118866118866118866118862e832c78178158005f0e6badaf19623f15cd10cd104c3304d30cc1344330cd102c0bcd10acb3d00cc13a0bacb3680a20a1451a9f264f3442640f913b4629e79c93ce39a7c718a38b5a5d58fe898dd418dba34b77a9434a29e59c7604c6741a3326c7b320668ceeee1e6d757f6696927264a6d15ebb6398080b9c65b7709432c61b645986b1f449af8c6633cb3ccb649675465dd336e61eb62c0b59966519566badb5d67ac929438da62ba3d9ccfcaad775d52b9359cb205934599645ce062c2c2c2c2c2c52b24c59044de396ee31d4a8610015159f54d2f87fc1f3bc5366d46dce194d29cab35d4629634fa67122a1b14a4a2953720a969f6273baac564a97324a1967aba29471ceee93524ae9d1a5ac12eb8ca58c31c6a819410a4600c20873ba14a6dbd0c39c0ec4741b7a3082116ce8c1861ee4b3704b17bb692cd5d50a3f378256a96b25e7a671b1d726535275e3675545c52f8e067fcc5337e449df1b11a50bdbc550a386951cdbc3fe7043ea05cfc3b20b867e31b5ba565d8495b6cd6de35c75e3464a6e9bcd6e1b49fb41bbbed66aaba7328375a98008d86dce8fde8cb3021c4e9c6f01a923c618e79c735e53824f7f4e3a27776c97934ef91fa593d249bbd975f732c6e6c832d3f12df56b8c36e44ff7c901bf3d3e2638f00a7d5ea11d685b31f1e76bd280cdf5dfdc1e1da0d77d086dc6cfa0e1eeeefeef52769639f7054ebaf4350d1398af6e5d7a5df4a990f6e86bccccfc95d51ead578828b4766415220cf435b97132344a9f7e672b20c913fab55acb798c74e993341dd76d5ded5efc66a4fbedd98fb0f34fbc3f55b319e7faeeeb90f4c078faf2d422ddf72dfcc789212324a3db6e8c17dd2781b4b0e93e1973a9a6fb6410189d8fa48c6c45944d906a339ae2d014a526388c3c8c87d17900c68f7c5ca175a4e3011e46be85c7d1426782030c0fb4f0303eaee018f916ba91aeca931c303a499850d9da648bd64b59c42216b148032c168bc562cdc06dd5144db672ea5f5af77957461456b6fce32017652dac254397863ac52451d2936385be4c49b9a24ee29ac408ef6a1b217e74d145094c4e1802ddf184983984c90a94f3577e2b0304dbe597272082119acbdf20264517ff1c8eb519f06e77102cf3dbef147e1a9d2272997348d60441db00bf490e1ff85cee7c64fb6f24808baeb7a86a36e3d09f2dfa5a7ea487f370d539f68565c276270903e47631aceb2f7be6ba4c07b97e752aa5dba593ba8deb6313228aff27e512220cbe8a287e84951f234aa7fc6bb596b3751fe79fe52c139bd8c42636b189431ce210872ca065340c6358a36a36e3d09f5847a2ee7dde951185fd2449ae582d0fd595244959929e1c2bfed2243dbee22f554f49b3fbde4558db4fbc5084563e0d0720cab891c6e749c003faa4ff83e1323f03240eaad7c2fdaad70e8828fd0d88303ca0633cc0ed18e3f57700064494d64103b1091bef175947d0d0a28af4f40a3f65aecb5460515858ee06cbf5d8d579a0bef4609d07b2aff5ea605decaa3ca9214fe2cf6e19841669c8971fbf3fcf89dad6e115acf392a37d66e298e6b1f7ee86caf5330bf69a8ea53ed7dd90279c1c2b265cff06ecebf3d70e4712dcdd509feb70d478794231ba625beca5752f4f78bef4919d7f75de6db4b09e0d71a57ee46e603f4353ea5dfab63dfa94473e39ecc7e9489b789923322bb2f960628721469354ca8f2ebbda24b7af70fbb9d60fc4e00440d4600813f8808315990209c4134e56cc5c9112b6eae06147885042125b9cac58e2c572379eac706209d6de78b2428a29acc88d272b9080c5bcf1740413142e6b473833aecb079bdd780a42170a38023d456185eb379eae08723ffb202d76b1638c1d63079992a8c40df7f6b8643302000000a315000030100a8804e2905838d1b49cec1d14800b66805074563c134a634110a4308aa218638c3286000300200610a3100de924000d5f235f820f1d5f828f1c1f1d570c7a7da04b00ad834e00ad833a001d847ea8f48c4a099474ca09948b4aed901e41494709418948a946e81b2925280929d5da1dc187cea7cd87d117c507668128c51400b1ab0b396a7d8863932db0c330152125f98e05d8382eac72bf83d68e22dcbe7471600d7a74cc19d3f03a3cb9f6df89e09f90cee61cd2573267ac12881efa1f4273c6229aabeaf9402899f2e9b039632e8e4b480c13d798d89fe09c31a22b78385eceb63e736633524f2710131501b466bddd5e173073cf0575bf00bd082d6f3e50c8d55d821212f0fa1082e9efa503112c991bbcda628f2c4df0ad974216f6ccc6046d5f1dadb027068603b655d12bc3f514c66eaa6ed3c4ceb80b12b97383865fc059249137e75d286cd3cf6a9809483ddb2d4aca9b0b0a7f7567a144069c3c43632c7d8580b76a0a68d79cd85dcea2c42b39a31ac73c9362a9e13c46efbf9bacdad80caceaa7ef0beb2789c99ba3e784ac434e38930e2c5ae0fd92655d9aa85ed4309c22836b1d522ea121458899ea478903f3bcd0f197c7e3f22248df354d6effa52149bbb0f0e83f57342b0347b66d456222b143ac9e056652918518ca7240601802e40104ce065be1fec35d20a1c358ef4883310478d9a36d467ddb8b5727770a970a1362df737320ffd4e65bfa4a40235fba1b615b0c009b8453d703ee0c65d745812cd5b893a4cfb26f2ca911d98ec2c567f140600efa49ddfe8e5cd999707ee4559661e5792e02de9764e70fe879759e65a0875ba0f2e93be967d43b37785569f9af6e77175011b53a2edbea691b31786304b5e89b7d514f82fa7e66e71139290b630a0c1c007460c5e36371dc34b13bda842177ba322f9ea3a0dd69f72050032186a444c5478459fda783a913cd9d828e401c487606550ad9ab5a1746642dd06ba1e3556a9a470f995b6bef062859288a0bec2f50f4a196e58ed465e904f0137e3b8e99358851929e9bfbccdf8fc83da47fbf569c41905c6df7670d09f906b874b1fa8ca2e559ed2445fd174b5cf1a188686e9e5c100c2437001838157b9091accc1c7c354166b23bde6c022d59c720f840b43f12d185ad630e7cefcf27aabae99305484785f3e0719d81ef52a3b9e89cfea47269c43c9dc527c5ca6e42cceb16373fabc68ac80aad14668dfda38fb30afc9133384694aa5dfec1d22dfbe1ecdac41fb2c441f131628d0a2a941fd6d46196d6818eaa7f791aa65ad37e3cb96220657cea8ecc1fe40f569fb9c00f55ab8e100b778157587f123f4b6d2e207d85b4f6d34c1286c55d632958cd23ac90e28bcd905343fbc43e5807584db5dc6a4a4d406684e691cb3ce575073c940ee7814d08640bf958f88c92331fddf23d7794a1fb7517cdfd5629f4df3d47e743fa609de0a99b743a44a3f4a1f0d86d753ad8eb105e6d5de24b3c2e88fa29057b7cd19551a503200143d58be8680ddbde0c3a402738b53850dd08fc34c06894409b2c63aeb0a0dba306f4ed214034a991cc9bb23e42bed73c93f5abdd4b5accd4f41d327a04373049ad2fcd4043409af4618b404b2257291399efb390f697fa26348fe88d4c3d86c2ad1b66b2411889f77248e444b18b163e06b642ed0d2d29680b87d891f89b46e7633096be9cfd122f320342052f12c45a116197402cc524b86ea689bcc3592fcf3062bcbee0adf7cb2389aab3765a118c031d651364656b6dea9428f0896dcfe1d663db94b8bcc702177334638603713a6bb4d696443632b6e66196dca9440082aa4dff5ca5c24e6e745e807d49b19c229fc36dad28f62ac51d2282468dada440c00da9558080d72eb559cc21c8c6c76ada0e3f9c92241060fed5af96240eaf96b4e281454c9d2a7b1f17527a0f2bca55592ebe72a3b9d49c435c72c93503f9dbfc9b68043f53ab047d3189f8eda27749a37e855d2345df0d8f1804911dbb43a6acfa5168a9f3ab764f808427e097def3129db0125b41a1e6978dcd38a7a220ed035a2b2d33a20f34a1684790c903c54c3027133e1b52d5122d47fd6641a6d17a21be3521965a6a62ddc4fb0e30f26e7bf1e6786110c1316df6bb1b0dfeeb0b75a0c7e5054146d66a2ee3211da04a5a1c14a2fca14af6e364efda105d3feba5f4c131fb8d99c05f2f72df026c333c40bb4f32e451720fa6ab0e93342d483c2d389e06ab88fd236636217c60e919b6f0ac9a20276a9f60e9c25fbbcd4d24436670641538113098469a50eea6780394ad5463623ee4bf2ee401b5a681ae5de119ee2e7ac1e0502eb180716304ded0de8f8935757cb2e59645de7a3a897b076a72684c07bb520874485731aa11d38ccabc8ffc0d8c1f1ebe715ec4165e654bccd8299989e08ac8eac241ded3ea3e15e17299ce9ada158a7ee2fd5d4e7ea925570099d5105ce28e975d0f5240bde9738b1e5f1c21ac4c2b7d5932bf3cd2f1373b098010ea768f321a433e13c7b5bdf71701678819033cecdc050211997bc14a7cd60b2571ae1a14aeef33e9d5bc3f1b828259cac4021c637b7946509e7eef0c210025935edd071b331575b1d5fe68bc2e6a005209a822c81e8a038d24804927ab13b03866e5b1edf0bfe806408be29f95f06564f26abb473ef023743a815120612c886e048f38e61cea1c56c697caff52ae7b9cea1860f0e610417dc13a817d0261d9801050d94a205fc1b40488286f38d51b7e8ad18061e853cc87587cb56b00af6149725036c52c56b6983dcc6d2ecbdff4567135532f3057646134e47149accf2ed93689fda0ff280ae640ca52d3462f2c39d5391db0d1ad9d384919f2f44a0e57c865cd510199aa6e4ee846451218c941575238649740f29d1c5226d64680240a0051b633b274e830484e5ce9fb928b37bcd9f662edd6743440bfa3fe71a1245f812cf5645ea5adab0f0759fe2f5614671ae7d569228d0dec02a2aeb6cfbc3d88345d4d11755befc4dfaf498e959e3d67a9461ec769443e2d927347002bf841ea7bdd0a47ed061fecaeb9c9f663cd0860fd2902a8264400b96b35b84dc14fe1ed5a9379e38e417498e9746f87df231650f480cad48fc06cf26ada974c84b65b84330718660db9bb4a07ba91807ff9b3c56bfd60cf22cab066e87d109fdc0b4a1e58460c11e4f2d0ad57409bb5b16e5dcf0001c219b2d67d4398a05596863d6049b24e4974aaa037df24ca516aa85cae63d4f3c4c2b2a0ba94c9f021867fbceacf66b72887277627a93a6b408eefe1df667847723768bdb3481c74b3c3a67fd49fcdc84618b9796ecda66f49d7419410cb607e4b8622f692326037033d4d6475db6dbf10452af8013c967493807cd2d4564d321563d497a38b30c65032b7f173d55466f1b8cb4187f015672350b8a673589df1e56ac0f88611560d28c59d1313e3c10c148dfb1428277e0eb1722787e728dcdd617aa2f696431feaeced7480bcd889df65ab781d027c9b480bb5b6b612b2bad6ccc04f085850c96c939895d66c516976f1cc5ecbcc5b0880d718996c44a7624ca439f14ede0876c4191f711691a40aab2a2ae7d4f15384908ab3946b569483b72fefccfbabcb42963aeb7189c097eb9fcc04ff50dba358a112704528d85f8da11927aaf8746b3ad80464868a5d4302a6c8f482158464d3ef78441e9d615c0de651898730ec22e5c8c71034ab1acb0cc0b3f82f247050de38d5222b39ba8dd06fc6e3c5f9b749beaf5c73d7421dd12ee94d8598e47acaee75ef1fe4ad3b2d951b5eba2e6dbb47dce6172cc30d4b9e7a09290036c33be5adf8db7151fbaff2132abf252243c1ade753b0910783d8a9271227ea46f4fd10cc20fefc3deb91f41ec43cee40840a008973e5963a587e1edb12a73af1c03283ad6a291d891b219b67955faf6880c74d244cf62eabb3d2e9e42549d75f80f5f281c87db11056391ddc381c1892e49b27f4090b96240f69cfd21342f1dfc55890e3177630e0f697cfcf0d2d19838a9e4d6e9b52c9a16138b1ccfa097beece3facbfe105ce42e19b02bfb7b44149a5c099d5c3d70a5acdc22f1d30dd94642e3ef40d57a7243eb49d1bf123c79d6f5603378505789743e203cb71079006c9a66fc2de710aaf7575de913f0ad21dda8091ca02ff0b8daaa082ef087e35d5b27d130e97ec1bddf57791ed85b30dd8b518e5cddb1bc1e26f63d18dda80e5d3eb96664c3f24e0cd179186dc6f2604e0e0668117a0ba4ba442e10a4341ae39221c5309a08bbb03c6a510a7ec0a19e0da35a0aa78a96da6fc2989eba2fa9ca1d53a6a101a54c9ed809379ebf92042194a06af02e2d5886b45e55885df47cb60748bffd0f1bf33451765469f28adcb9a5d28655ed9998eb0e9774f7e2a6690f29afaff02a642520f65a73c4bf131a70be403841938d83105941404831ea19c0bf9c74c73404b88995e5762ccbdae443a5cd3b6d23fbea4eff269ad38540bffd6ddcf3bd6b976729956ce0a8eae70cf53df7e1d6fa32c2e4afac9bee0a9db79017bacc561f535e32bbf0a1569d2c7863c0eaf574554b309ce1c5ca57140ef53c192175226f92777d9d5bbe2bfc2673be72fdaa3964aca42099af6184eceb6776cec9515d19b63099fe7d25a149ac547ae65301a897eab70bc5320a4cb5c4cf92c1ed27635bd04685f29a599a196a7ddcba6fdad1213efd0e003f53b69f8dad2e46cdf492506ba796abb0e56e2ca44a5faada16ce36ca6c2ea5409b4559438bc7dd4254948b6f834dd3da55cc40fb6b2f956a49b69d3d0ea0a2dd10ca7860c17f984008ca47398296079e9e9eff9a4ba243c42933e07685049ca172416ab8c5120a8a9cbe75b1d70fb400fbc5dd2b0805ca448b11b6c12e6008cbc45140f615c3de468c8179aab9b251608cd9c848574fa5ffad54198b97e23074e6eaf03d37188b8a3d536f24d66e50b85c856e62f5ba4474f25d9bf5d0935604a8aae3bcceffda7bc90d2b57302aa9572811717dad5dcba3e3c72cd48db453c6e97e22bbfd65fdf03f5dfc4584a06f8fe7e3a02378c0917015a4441676c1b91abc1105a1c7d2344c88ec2f8dd3f2e2fb84338c306df9f40859be216003406b53b81ed5f336f98b151194b6b5ede43cb8374008040986f955aa3e39382b0887b0f5f0efec1ef4365a2e81d3ababeb97b5f96f63fa0991422be33ab78d6124156a633b91300ef4c7eb177199168860d74c932bcb4387b16ffdb0db4290546cc6d6d56c3d97817beeed56e1c6a077ee374821bb061c8bbf37740b559fb11ff4849181b452ba79188221fb04adf7ee84f9cfaee2745f087850c5482fbdb6d3e81b75984c8910cfff69f8a9ded6d98c4952d95a2cfbcfd107378dc5d704f2989437436038a08ff5085b9db247b0a7142a864922f5bb1ab6661d0c3108ca095df69773966c04b06b8d6e4b34012378c0b325a938362cdefa8f24aadfeb29a6e965638532467f25901c53a8a4254ed48b893a7a493272ab21eb32b940816139c38f0d3275ba66f335a3341679fa38fb31fcc393889779e638211f9ac39e4ac6ffacb51bf2cb24f547931bcc559252bb72ee6ccaec317b52bc9418d1cca10923267fe8fb31d39ec16d83ecd7b220b511d60a8b8c85d3f92afe10a8d83095a8c7e5f9882ccc96cc2593c5fbc082b9954d1dbc38141096e995dfc30699e93f40ac99cabfcca2e53fb1c2f1d874c920cd8da7498b44d660418646f89fa32f2c652f91cd570d0754617d021e8dffe7894450b8aed9d884935787fd4518ff78c0d6e8de0fa248a8102d8bbd326c8a17131fb5f1232de93cad254609410968afc5c966374b1320e46ecb14cc01e59cd5ee024e3e510d83e7d9e174bcf435b8e1baab1b4d4d303f01879ecfc7591c694173d1ab0e2edff2e091f80153d325ce496b68bc0615aa798ea8e20b8d07d7bf5228d7def9b9fd11fc3a2bfc869ed4387a9747c81f9e24c11cc0ddb7afa0d1c428b9c533473d59160630fbff33a6434856784ea31ef716a2bb5d6bf3eca1e18370175405841fb5ceb7e4a6dd0273ee5a0ea2c2160137ad691c7986adf7032577098eb9cad2754f34ed29d31f786cec28a2e7407ead6fa1804e40304f21bb8e5c2076b2fc9af658148113084a1007876abf19bc97f292fd236cd8b56983a401ba5ac42f5550ada2ca250268e95203ee86989bc3bd2657706b39e886d31d7b583b8db442d3f6d978856f5e15828ac5f55657c061fef954a19a487e21cd703a29d603c6c1f8966b8afcf32c5a10d542976ae15d6f427aa5b84807d061b8b53a046007e5e62484c9d4915e4052654a609dd05ccfa2c51136b1352739e9e16ed30fce8955ded90dceb611f3a5221d93169dbdee2645b55d0475976a5af5a54313f6b5051883c10bc358440dccf3f13a34a7dec808db4b0cf426f0762003b4d9cdd671949b34e7988660b4b517390cad3059c352e7b531d99aca30962bad86c47ea8938eb0a10d89f62a5d56bad14956b3998eb4639b452ec959699c23c0b2a59269438d460ee59f017e8a9117f0b24b5fb75152820e5eff03f4ef479f7a76d66de355fd81cf59e10a4286c8c28c77e8fe88290ec76f18dfaf6f0d634a955c8b2adca80429598f68254e113aead84265d719463cc0cef4ad45afb3a1661e8177c7da137a4412ea9a0403642b41e9d6742f9a220258232fbae7a3a71d023390057093a88755e41574c76bdf522fe8299fd9af51b964f5ecf96f117832d9a078f40c45a532d3d2a46cb54bdc034e661134958ecb6c5f0454db58c016406bf39a457ae498cbef1e2d6ce4373d58b58d20fc90d6bbb818efe435f2921c2223a786a691e3af297ded06def1090c83d68d18b9335d713eaf996b91ba9119762df7ae1dbe003835fe9f185900d28f4e1eda0b865caeea913a11ce78ef74469bbd07027ae758a18e9bb56217081a83f864b24f8637b30bab2505cb04ee92e16a35803f3ea42a90525025a90e0f69d6087e7ef441187397ea29666b07ca7e5f87a307ae3bcc671c3b074e011ac887d731c978f4c04a1bac1c2853ea240a9cdd04b3c237e25c5f6eba9f0592d4ea573e5faa3938cb8b7097d0d8dd8de90e641acd739df805a43e27d7f41b347e07ba8d36886f06bc39bfdea1bd265a84f3b7a914fdede1be60083c13e003016ff1718572de267297a96aa810dff53562eddf11fd4d15850eec4dff401cd9396ad2661c727e3dc89fe5ad37c9ee268f4eeae2a6114c337aed91ef0294637bb493fa6844d7aa60a982d1155fdff13b51b2748d803b0cf0f98a3a21e9f42b7dbed5e0cc28e0cdb780153cc6d11e17770b1be2b14dd88710889824b58b6ebe2d610ffb67021e42fec4f63c3a7eb6d21150df52a5fca6dc8a9bd700f9e0709b5fe5f78548441ad3fa65d384309443c34ba5119dc25bf612d061745c0833215846530aaacefc772f9b10b2e0f9bc099f13be00c6f2aa492a47efc03ee1662ee9fb110a78f69e0df7459aff31ce5e271ed4642630fc8ab949fa77958c3c2a1d37f5ff021db2feea69b018e47765744ae0fc6c38f0ab86ddfb26dd55fe29f9987c637f68a05f0f109bc2b8ae954503af0b00288e6b7c00ba83c8fc08470eb33a26d5a14f4f693078b7563b46506744fcea12925c54d229fe2bc08d81769bcc03c43c6c5f981ed190cbc46529649e177f2577d9f1ff815bbef3bc805632af6100492952455734dce41854a9b7fd53d48e5aafc356f3a9a22559a6f874f3cf1829978038a55a1e65233b6ff1d58c8cbad1df84b8fa15d98b749e6a606892fe7e9b78eaa84a8681716e9395dcdd27cf1944b0072b7cc3b5db7ea316e3a1d678b39daf55636ae254eef639b6b4c6e3bb8dfcfe2415f36b922fb91f12842b9160905a1e31d4a7f4ea3123a0e99dec8293704baa75a5214a60ff303158a0813a5dc0b59b1c90ba659159bb97bf78a9d17a1d9c6208e8b41d8b82a0ade716c27b71b2b777180358b8c1b1032e986294151558690b5d7a5cdbf66df4a546a92887509604a1bec53404eb5a32077430523a68266afbf9f985bda3ae4f4c31c0b999a6d354fa48741d94ff126c5cfa682298c0481fee8e02a47794e0479e99f34054481aa65779f6a1d4c4a61d7939e48f61c58488d424ac4d678bbd22226f22052460d1c267a5375bc0cab94038c838839889a10674731eba8a28febbed0388af1c00566b5e164b95e25e658669f43d4c181cf1cc821a2a42f767a14b6cf1cd849d08bbe1a719141826352efc2032d88032083d134a618180cc421775b7813ca6861b7627a3ce1140382b60cf22013b3fc10fc09c2d1c34fb289b95cbbf3a7a9f649b3cf0ce4b8c848ba91700aea81bfe62c3295edc033489d5a28242e144ce5a75a09a70f4de63dd07a4b8c6f24bd3151c2108d65407e970008bead3065f6403f8c71da39261d614e3b02f01c4829e94ca0520defdc76e7feb48722d963755473212e658ce1a31650d900ee67e90390b68e6cc0acbd542395c5e0ab062208d835dd95d5b300db2dba463f5d5be11b4030e410430d196ea9a82d57a88c72b488a65c06725d1d00a18610e5fe9927910cb50ce39785b8afd6441a198b364170ffcc2499b83103db681636deb9748abc1e2046856a645d9057aed707adbd4635bb126e6401e2d95e180a139119eb173ac138b9bf349901109f54d542ca0d270aa8056c56956218279cbd0d62544d06052646b177811045c52f3c20227b4e8515399468a3be7e65abaca01fa267936e405cac66da45a54673f5e5606e751b50da7dbbce15ea298b99fc4c0ff2dc6a7e6fb010ae7a90bc0214cfad07c85d80d44b653c5a4ad1115a97e30a7db09b4cd939c94f6c9061d700efbca531930e5cf1c2bff9899f46402bb4ebe284bfeea13bb809052ddc5b74cf3158173bc03969b8f7d982277c1a19b67550c0c6c23d47a30c8f79cf3e9026166f1b9b07ee40b3848fc42d9eca51a94a76256ed8c18d108f2c064ad10f8252e84d6dc892c63dd575d19436f718e0320720a70cea023cb2efe0d6f3d7883ebac8488a40c0abc8e215c097ff5504daf5c2185097bf0f5e43a0dd6e49b8118d5f01710370d16bb5f6db75cc068fb78c37e16c0169b31cd6df9196ac18d94fabfcc0f13126c442c60e2768a983672b6d8e9cbd75c2e2ede079a4ecda0285e0bb30ddf0209ea49db857cd9067b9081ba414c792621ea9e060755821e7c1ac60a190fd563cd502c1c1aff0ff53df6c2c3e1bfb9527ead42b3d55ff7a572329811430993636909ff5f661746544040f00a3406d04d5e9bc3c98bd8dfc765a1c2b5e9e9d2f5f20e30080e07135952c9fc4e184a9021282c1025e9ebd4de714527f64a8f6701cc15160dd18edc3e0ba732f41d0e1e62702ed3d035c18498032b5639e0a8696a0bfa941c368bf87813f1f7946dbbb1ead0e4b9b9d8f77ccc358423f96d92f6b7ae1c39c7eb4a9abb8aa8db39612a329d31b5915b036b5af73bfae2be691c303590cd0bfb96c0b6f4bb37df18072f64ec1c53caf20253745b8bf37a7e3016847d7e655eef617517277ccb1277c3ea58bef9ff2b84a8e139e8fa595d478bf67428b0f68f18860a8bc6092e23acf0f61ce1488d267ea22ec1d527c9d3190996ffcbaeef4198f93b81c44d9dd250ce912d6670bc6e478d1d41f70b387eaa458444d8f607614e97026aab287c8f2b77d30a95a4e6e246cf8373358db046be3c8c5e1cefbe94e11a3745164beeee39d96affa5e8f2123b9728da74980f79efc19658e74493a5480b0ed10de786253d4c63a43b11add96d8f6a0b60597fa0c17f31568800e0d21632d8c11fae9ce4f214e57f23fc2b2f08de458af1230b38053cef78ff0927c7824776066ee3ef4acc4b5b2e3604188ca7ce6928633cba5f6585b065715d6910b9f01b4f91bab7d06d14b4046046a1b2479ddb46790aa1af61b93de5aa8994a774df13c1c3e2e398c2fe23e4dba703c26e00d9845e82a3da6ae109c5c382d55866d41c52a8496d8acd7212f9a969d5b606faa661735712864418a2b94d581088157c31a040960528c92e0b5be84a88ffe3ebfd879c3e4be9c83084813ae18eba15aef2e8c2999dee8356ad6502ed313c6963c476b830babe2559762288bf5cff938d635e4a22508ac96421b9782f30b0dbfda0272b56b7aedd99ca5398e897dc8666aad9e0a347d6ed34f9945486b9e245e341305e319971e64135adf3c4de05171e367ad6c18f8f666da71a99c9126df5c2d55af5ddc29d9edafbd0a40b4a817ffb2b5ef4824ad94e4816150d9934b40d777d226272cb7a1449fd484c16326ba70b68d144385cdac149356879f933665160b8355613501e765357cf52bd8f2673d652df77e97486ea00016294950ad22a58658addf3fb0df0f1aa7578de2a451c802bc8f060c4b69f723f5e560c5826aadb8ba8f4a5dc1a3d294c5ff3e73018704b118b5ef3a8f9ba1824a111c652619065b5eec558a70b0c60a091e86f0c06760d6ce30e9c7e9a8d566005df51ab8f6fdec2dd614b40b9a198ec8bc58ffd4f316b19865441ea819e7477b61ac65fad80bae349378121595b082b01e9d646e5446c7e4f5b75ff7338e6427e7c660089c1866e76fc660092014c1659402c90e908ce3ed19fcab5cd9adc3ab0f8cda85a6dc37e10086cec4c52e753fdd2590d5b49439387eb00aa2d6a57e54a4027c9bdf4eb51b078dd0953791a9018f3a8d28b156b981a6a1cca910257ec41a4fff796661f3eca265f5ed223489c2709aaa09657bfa92b9ace08aca097b758f3e1990bd30fa49ff09a1e76c7451ff710178d3b30b180abd47743f54d251d7cd2be7ee9fc7abd1c500a4b6909983520be8ea6e43572c4db66404944f38778240e5d8675aae607d661d8ec631920cb9f30a62a6caf9171a87b8c170e89d5bbfb42d7d01e9efd060afb61a45dc1c3339b25effafa677bb8bca50b29ee86b83e759807c89c3b81c5d0b2934a2c62e2cb0cfae2a30b0b270c9ab00494b3d923eb6c0564757e7d8be7becdff6baeac0ef5fe114b06d1e7e18d2b1d6e09469cff21a07471ce3120823cf4a5027e2d048953f526b8bcd436a2d935904252aeadbbdbe38b32e560f5d18248ad8fd2044b574d5be49053266233c87d10591dd40ccb99a5499e46f5111b44c38e833162ec737e40b5ed393377df7108da9dcd1c54e9034255ab113448c69b99aa8e98b082b5b4806f3ca82a50c260f3fd76bb2d465fc8f7278bac79354384bf06f805c563f959e9ced2f9565e871cf6d09af088b66514845aa230191e9045ecd05cd600f4044d63166409b833041932c201941ea1a89da591ea2b13a070ad6ec95e86825ed019181399c44e0433be8a0965f292c9d896db65ac495f1c566744eaac6c868e7fe5777e78581325e590f9aab32a278604839a7bae634a2cc076a09de0d4c17af72da7ff2c30eb801ed70c90fe1db2b6f91ba53f7b547b2fc7a6f55fb5eb498a0d060786449bffa99b27e3e2d383a8fc42bb0b64102823f1910a0c234853ef11e90042381d548aaf027829d569781c5ecc6153cc7fd2aace32ad71ded9ce40744923e8165acad2b7336a652a347ed9233f484636977d924861fc811e2213e4a8a8fdf28f760eb8769fe13de15fe809ac2c425fd3460bc4bc1b46508b9aa3f2b503114a87e44e5d4ddd955d87029632b575643128fac34acb0c2ff3b6869441b7785d94b8b5eeb570e7a4141e989fe31e2e5a531a284f02975b2e9556e4b4982daec94a685782d4fbd46c6f26f2da5cc5482707a179547986acc4c67519583b715679153ce1205840ce6e563192d8ce3eaa8d1d3401fa38c87587351f69305a434a1d8a391ada4972a0728d2ef78a372e8a21fb67a1d6a2267c09290e396818f04c7f6c9457eb00a61f1740a7a479ecaf3abcf3665ae46bb63c3f0018b620e4ad221e136f452ac1666a604eda708c601772e396cc860a9741b17002f14a2e083b93a427f51873bec53a2a15859256be4eefaa01615e1f24e9a92162c320ecad231ce4751fa5ca13a0132e72fadb459f8665b09edbb8e2c02faa70fa41a461532a15e10d24287d26d9596f03fa35a8432300352c158ce42221b891785b23a58bc9eb95a009ae481b2a0c6cdaef0f1b8b9f7e68f1084823dd42c13f18a73d54122d51c8e8d6dc2418d0255211d793e2530478341242a50f7ed6dd3756402f261060ead3388bd0b66bf3f6ec3985dfe43272233b40c446f283468ef48d61f319394dbc56eaf6e3c7bd315a235333cce7ca637b9017f5f8cb3e7b546051a685312f37535e21f05f1dc2b6234b8adba1f227355e7d2e76ad3097fc8557ec2fbee2457ebdf232b51dc9f6a0dc9d4490c483022374e5804f1099c8d68af5fa8cf7435ddfec54e5f3c86a96010093387a1849bf838b3989e20bf8e0870676284cda702bdc476fb12ce9825e11e825892643c93af50ba30ce89ad165193355902e6a3d3614ee38b1230776a4697dc528a86980f04f7b755341c4780f76185c246fff80475c97dae63f2cbbcfee084550e5aaf31eaa5ea2172de041bb04f29822facdd164f4dfa817e27799ceb54dc455debb0b30ca87c969f68af996a72a85d60ebaa799b34cc43ded4f312a7060a0bd6561b5094d2ffc1263596029747238a711f52f2050e87cfa37782b66c3c22b681ab2c45df54017c8bb92b9bad8eca931014e644dc6882d6566b8ad7f367849e568d38f7dd7201b598d17434f16479f79de180ad32bff269b5037eb5173135752e59d23eafe37b650b1fbd348a29fe5968dc2083708e0df361fd66eaeef97d252e600d0b9321b77b870626f77d0808ef79a1dd282ed5405156f8759b3e0259afea5e672391a03c18afdcc44f8d57c1a9f1f5349dc246ecec95c464ef1945979e3b5e2e830e69f0cca49b5abe834b7114833f21dcf85be24936df214a817cb5c54360321051a53ce2d5c3d6abf8652c44e2f65efd46bc730523526217c9c4f488b210efd294a3a0cbe5dde370fdc7de34d70bde8ca46ca2ced9758b49f041026cf6db89a06f28bb3ad2986f3aa29c444425ea22ccb60e71446c1a3ec51a20b6cacd202a395665e2c0fd693dfb72c1e6584bb225b20b7e40a682c2f0a27c1ee4a8034406eb34f036e63ec9aa8b642edb9e599214d75b7545217a276ebb5cdfa38580bc4a6c653a59ee565d4da075d7c257f8434016107debb041761aa82e152b2f46254d510fd54c4d6d066ca64f17338e7c37f218f44c17263ef5bcc67d6a5b219879c9add2a69da5d078b21c0a2e58650e98ca70106762298e3c0eeb5c577b88352679b8a7953a456ec72d9f170f530275ae2ffa74539c2176ae0352c14d113f6f96c29b2224e65bc94d2cc253185e6d671a7c81fea240c96fdf36e81a0d2c8f383e23c47ce2633310d6886cd0b11124f7c40cee8771b1191d73ec31bb5195ccc25954c6f48de3796829b77dd63e959966d32bdd39a1f6775c890f2dd7ccac2d8960286f220e9e31796f9efc4a880a5c07657efd0fc654adbdd33eb08d0594eed6c896ab0053d98faf4add69026011d6a00a439aadeaac48031daa05c092d88316a47458fbb7fe3578c42ba213bc8553cd9f3b4e8e8958513d7f804c99d6f36234f99ee29cb8f19665287fbad6fd457b5f80b553ddedde406a2547aad275f8de24e4787fb22425bebd59ee127b2279f8547e4a6b9cfdd6bb8252a3a90042c68ebfab402969c0c7375b233301cae68b57058a9c94375ecff2c7086690b893405f5c18e9440f0bb78d5b237e70721bb611808e80281f13565d62e1f86902117a58f0d4321fc24bd2b21fbeb67b82a28ec326c48bbbad3beadb798d40439416445e38a1f52d98ec0c0f288072050a9aa8e58548066051608777a925bbaef11b81611c69404e15a3b5def4a776e6017c852a75487939095626f17b78a14c941bb9540e294c4a52c8d838a690316423ba20f0168499318db7fc7770e58e7aeae272ba03a8fcace6becbec81394e736110e09c2ef15d4e5f9ce19e38c74ca73cdbe52415c35276391a5f4a79bbae8f2c3abfc4c82ae6e8da7c9b767d37133c132456227be3df2e3add3e3bc9f538cec551bc746ed82b83ef47999b6deaf633b419e15bac1d68f6833910c17092c70ce032f4d77ab775feb22dc582012f20e071070654299075bcaef1ae38e0950cb44775d9c2b58065114f8d9d62a6802a701214542f253b363b2021602f9d708e9c8123474584e43431054ab387805016b4fbd89359a024bb1c2fba25996edbd02e102f4054bec758c59d51b562d6a08b0dc9a4ece8802732af9971fc483f9f730d156f4cefaa8ace49b5d026f275c6fd2ba17105764c5f2a5cc48e4279a7fdd1a9edced2aaa2b4131849267d83e643beec0625aa7f87f50983aed625e64a12ae706f8a587531fbacc7a7391c000a28b326312ba6676f923abb15b86710c3f7ae8e5efd8faad99cc49b0a993a02992113f5cf9b81ca440259af2a08080437b98bf3a6fa255deee561a8e88d1b0c199d50aeaacc0833cc6ec533f0ab8ca5e969f30e7f8509744f8002eeba9aa8cf20cc48be8118a599c9c1522c9d85633a23f8172c0472d568d48e326ceaf6afba6ccdfba20cae1108900de508f46fb75f0c3a0d75dc396f6d428f9109ee02bf6502fd4cea411bf6381a7cf16ee2d1ac282fd186d60c11d1a404d4866020bd330bde4c58db044acdbd0e73511dff78d00243270d405e401544a25353083611ecadc7ecb58f415e0f4f6c9fa6642b4972a3aa401e783385fed004ec44a70d609967b1ca0ddf5da1064799ddb11e98aa3750381c8e4ca02598e9756c13c232a7660a000d7be6404b5f792ac0f2914c3fad430b91c6a7920daf0e07f2100043428df71a12113164465f619926ac3a6bd18c8865e9fc1b22e9b2ccd6178ac5bfeca895d9f6235f4ddccaf87532d6d5d85ad48b8aa3caca7b90fb80c7df0891309cf91e56ed22be3ba91eb0d28c77d1076abba587b76c3941ce3eacac5e331a9702a760e9c9222b5a00edbb9005d4a1eee551d5b9998ad15ee5b40ee0f231ccd80c51d704d2013bb26b70d3da1519c6af39ceffecabf5ea04b569a7e9cb0b5a1f0eaddb1cf68b293a79f582dc3952ccb993defe85377a3aa41bd69e4cff026b215049c089f06412c051a3fb64b2f0037c405e474e511beb6d8edd17b3637919c42f2379e29d6cfde254275886c8f5da3ed084f1d49e0550d010158716d8714fc6a5603c51f0c9fa82d810b5d556c6b62c6944da7e746b65855a4a5781d233561dd6b2826d14806249a68580b5900d279e9b75cc084b307824259c176088b6fa3d2b5d972d8a81bb59f07b430c6d086f5d99a0493b89462acbc0a9bca0a81ddab9801cc4aace7232ca58c7d12f1904ad61b79669bfa5c66a5f13ceadcbe8f3d31b85c868c0e5afe4808384cb62e66dc584346107f39971ec3d21dbabbeedb03b7d439e906a5f9e5ee7a72aca2eeddbe637df01f611a622dc09cd5dce0c5cdd3d87313ce3eecde0d80934c780549b2f039e3ec2340fd57ec9d1d037e11593ed7b4483a064468d526523a9e359d4ab4332e26244abe72b8a0a9a6c4ccd536fc45d1af53e08e8ff68d2f1155183bf7b7e2de3ff29505cf077d082fe874c602ece13882eedf872bbbb8025c3ba2512a4c35003c6303482a76e2d1d7fd8e394bffb4b599a79496412e04e6e6b124b697791e8880c977ad268f2596c26d071825d4576592110daecbf4b2c2c47fc26308705a0f67d57328860f025eeff6d90003281fb825e263a3aa43e0ac9bc469968ea1c5344e4d744a0465c665bdb300ba2d36bdef27b1f647ec0d3336fc0f3406ed2f24deacdbc0c36fbe4016d6b218b02927175d64e7f278e544741059846d08d4af925b13d9cdbf18bd5b79adcacc10085353b5ce1ad6707005dd946485195dffbf13acf735c5b096276fcc34b657a33e294e85d4ad33580803051b09c031f42d5aa49650cefd830e6d4d2e22e47b08e1d527504363173315e6f7774a0cdc4f4b9027c5a2c8d0563e488316e5b83022a96166eb9a31d82e952eb22321eb4a7069407d4242149cbe038c6493f7e3c31ff4ec2868e8b9bdd571b3ef8120084222640ab9b6867e9d7c753ac2db496cd805c8f84a8bd7f58f47a098d4d73b2ea43693f42a68dcdb3120ea62b946d70eb4c49540cef9a5297389078d2678b0abaf3f664c6186b5d98a31669e249d103a5fe5b00f5d9a76a2a86fb0f995134961bb389055617e09fcf8dcbc024946447f86b154d944441ca4d4dba51450dba8c59114c3b93b999cd2c9886ae96f57bde80a8b2d689ab689ea67d70aed31f3074d984d034d4b803ed8f53707ebd6b40a2d10b6d0fb69301a8f443263ef26a20da032bcd40af611698bd38367874c7965940703c829332114494b189dc34ef0e6691674b3dfd06d7888f592362cf49487b441436c850418739bdf2913b650d34ae7fd3aa3520237f268e57b1d53524a31b7173a534083021888c2ef6448f0c32dde7d477eddecb13692715e5dc208c9892db3458e10ee16623e8d4f5152e406629dd06975ff10df549b91b85ba626d97ff335b4d81d9aa45a6e8c983f2922072cf5dc31fb8f818408c260f2232b7e1b9d20e82b9d719c3833d264c9f851db57ead8a681f66282cc3d177c25a452a2e5d927cdcb52d3226aefccb63a7a81ec0ff8ad2a064c48c09d0f61d7b04fa3a12c3a36c53eb39cfa6065809de2364d29f468492f4d8d1e53fe44130e12082ba863e1f7a94fa128b9e4cfa8fb101da4998bbd7c0787e4c8fb945bda2a45648db55f8bc3dc6fd92f544ca7ea23a109338bee1b2875a5d9cfb0c870c602bf3faec860e5082230d39c3d5d89713ce1135eaebf1b4602db09acff9b788c26278581d88c74e91a4b562ff2431f454d28f060abb7f90112b305ac32dac0f161353197ed5426895e3bea5295fe52d50ec01294f1b1b9a6281e897152380a7a8e971fdab82b267e86a758c0f7e851463d7d1079cbae446bc126e4d6375df4df0bcbb78dbe041b9408b1cdc0da791fff070022fa8daf69bd9006e88604346170e1204ed864c22e501d1deab93ae24de4267b07fb77f11d6397c580a240e490249c6a687919447bf75cd9ddd19a81a43b15854071d9925adababad84f8a2d2c58fa81fdd8515349c54cca7dc9be99a06d3639b8642492fa8b859866a1d9d5143c70add3211694f23077503cd8577568966fbdd364f42f632264d85f8ec379498ddd0f933170c4ef9dedc426b8c786be2b389421da73cd629759b81909cf7c6f1f3fbb9d2e0f018780b28c48672f484ff5dc2cf50832f536f258d093538c9f10055d7b6e0277c380394f02e6bd89bb9c392ce2516befa227876ed558556d989bc6a49740335aae86da6668f27acd852104a84c992630b441aeab24f347c8b6223cda08b14acfe516eb90cfcba3b5e58813b7b994e0d2d8bfef945e47fe0852bdf38d8f108beeb93ae39093b099e363559b3919a752eb1acbeed7b8ecd2e1104ec8ff9955ad03357ef483606e98cd31c07fee8bf9f27e2e839e236b7eaa2413bd73bffe318b0107e7b20b07f10ea8ab4a66e9c31121ea015258718c8fc1ca7cf0b9061e4c3ba2c24e574d298488e81c4e1f5c84e9d1b0ca8403f53fd46bc4378186a6e02d8b8646b7abfb05d8b29ba9ffa9ffaf5234a16d42cc5aa83d05b795ae6832ec1dda9a3a1e498299a8ed3e03f091c15dd6473e39dbe965b9f0cebcabcd963ab9ade382ea440f2cc60cda2e0d275960ed10b5ddb84431423e1fd50f355f7bc29708e4a1dee65fc45945e52e6ac04425f5b0c244461743442576bef1cdd7845227df9038c4840a1b0c20f758cc415c07477a54441b12f1a39cad3003fedb6c11dedb9d4bf8677a20e9ec1fd869528f3c4c28869dc7ca832aede7da04c4160811ac8ecd9b54a563c5a6063da59ab890f04ef57a866ca80a7e96b53c2fe9a13ca1c3bffa73250f6070d2fe98dc54c317973067cde4b00903dc0817aec2012960b6cc4523a8b058397f929ddc2574b8b26219a0bb6018c8d997c1ef52574c194ca86887837f1e8de516eebd8dbb5826eeea226d12844b4c90c3838c821c28115d64b789c1ba55758eea24ef252c921e091a1a2b9dea53aa764243d3a8087f7059b8df1c7986f5eb200d8d239c462516735cc0ab5762487f7c380b2e2a21a33eeecb97f08be45c938206e55d10b5fe24a5d5f10b948f53cd7350fdc051847c60105aa962b2fd931386b760447043cc85fb78a570fe58e795855d54928e8bef656404360004d3ef181d508e5231e6717e8aad2f3a1598b63d1c4c90e0a6e28d21f7181def9df1206255541105688099b3599f45aab4996a3c82c7982cc9bacbfb1c3148956d2b8d58afd4a7e99aec89d8ff9f4cba545686e28823d7d6123fe7f73b499b9114476b4acd455052bb458f5db6d6b279d288f0ccd73b31a470cde53e23b3d126c299a57c529084b951b033c6a90df8cb2aaa9824c295972b34ddfebdc620b2a0c35515815ca2dac3eb1ed61b4b7a56028ce6c7754c47440adeeebd69dece75d12cfb29baf7821f709cd7fc286481b743cacda4f20fcaa8daf565cb22ab1ea1694111e60e79d7616ba7c4375a3e5a82fddd7b39ca54b18db07effd87db2e7a43a6e5dfe0d021ff2dd7b68a5c9afb2ad2230bd5232299fb2aa41ea4d3af8f0f981a30ce6aa43ec2ad8034857b78ee26906b96aa3aa1039c60ef28ef4a03905eb1c9ce71f59f172dbc39bcb6a51ecacfc51e0e7c0fa2a92af42962f1663a5a5ec4ad6bab0a25c2a18417787aeb3a42e40c0ee624b2af21a526c77ca9fc1858da959f8fa574b83f21391249d466555abb0ac4ee38d33026e5a4bf5091580a521bc58a66b5da6c3fd8f42bbc5e576724c827af90a5a842b49efbe362143d33dfa08345a00aa8eb096471fa053839b06899e33ab8bd92b8f1862e263745b7087191d90a0bc0af364a814fc38da416ae0c4f0a6fb393a9dab4e77ebc050d4e15fc9ed410917746bba169b3cf54501256be94b397ba12fcb4e088b966041b65dae4883c8f28ad70c8d9771be9b560d7f782318c43bc8bee349ddfd2014064fd8dfbbe823ee2c28ed99cdcbe8a18ebfc3568934e59cd97539fd5c8b756f91c25aac4f9d54d630df57a3b228e39bdee5d99d1d9a3c8ae19bb46b42ab8dde11aef14473b20f30cc1b4ebd8de11e16a6afb169548a4d0ac4034c1e10c81680d8bf6c6d724b2d7d2e801dfc0b6d3052a4efc3de6ebd08ae071294c4a8a288290c78c388dd4ff80e8016eee628e444d98d1fe808b1012af7ffe37060857a49e5c297fcb907f28e46f512e2df163f343ddf4c0dc3ed69a691c8aa865f4553c432379a36bd18d5e99479489b91f87a6c0f42cae430beba2d3221aefc679d398122e748e1463909bd93b64d13c401c7d260660a36bad3b50c250ac5adc28d36f11b258b96ea34cec92ddd216d8aeb05ba530c3542b60939fb529981763eee5aa511c4303cd57d3ce5a0fd0d22129d7f564de7aa7a097427d3cb20f0e91cffacd1f76f397a81d78badee359d916c5258eaafd87acd8666eac0200b0cfdc302ce18dd0ba19099b5a11fa2b053f6f63836e6b61ec139f8f31c35e84dfc420d6d72912c20ff960ab6f73a7c4187c94cec7eadb47da4baf5b5c61461e43ad4563a3f38477cb78404fe83be505af64132f525f33cbcd2cd5f2b8fb6b4d95e18ab73c97d933b1c9f572a2c5d9503c08bcede304f27641ed69be9bba30df6ddacff749ab3887d6f6a51d224607e74a9da6d4e578809b67836931e5a2ca8506052e7443aef2ace8d2284c4e41295b11d61e3c0b189412b30e5f207391abdb4e1191cc723765f99f857bb37d3f85b71a9e9dce19865a72e8e0ddc3533aa7c2bc99ebf8b6b2c15066f5ac3d3da16e534b021d9be69f6613308fda4b2637f1f13cc50cc0c703fb37ec340c67a76bb97b0b30dc4e3f858d2d12bb125f8ebe188ab679ed394dac3c6405c8f21eca0c4926c9fd38359d04cc8f683e36c933e392c9b33117a5e9998004cf6d1641cdc4404dfdcdd0bf02727c87a6afd854df2786850db429914afe4ce21435ce0a2d149cf8740a319cb7a0ac7423aff6758b19d0f7e67f82de56ea93949aa790491ad32e1a51aed7f2cfd4810a1820e663c8b405f46f87402192462c0511e3bd7e6679575655319c67aa1b0ddf7c8ea11a6fe8e0a200f453d8a3879015809b46127d0deddf37f737210602939374a26c75d3c9972cc379f7c7f72072ad30cd3d67e7cb04298a07e8d5dae17c066357e5d338fc3400e36abcb40e9d30cd85a4ce18ee3097b3b49a6650be3ccf931a4006389249871ff1b2ff46999b91ef1ba4e2412550aa447b53426d4bd3baf5b1156bebce12f5b02b8238f489b7d02692ee0b33f4933dd81787ed1f751ad1f8b2a320d5987373a8e02cc9a3c9deaf40750981f3fe5fa6a51418909bac8e0d7650f991084fd92fd691dcce692053ff69d38ce9c6b2e2aca299352b0d7fbaf3cb12099af2b2ec6d4be80ff96bb2b0b37473ae5fc476774d7e7d92fce4e2d1f576fb9f7791f03bd7c2d29a9ea322ee4108b2aa8ecae4e5b49189639441626260e451441751e9eeb1361b5edbcc9a1506144ba217d52cb48918d02332fbfda50d53b1785f64f146640075b7de95f0d3a5a5876ba41709b7599dd694075fdea4e5c135bd7fea9b4a36c9000e983e74983f142291fea26bfaedea0f6cb473dce299ba132ede26a889aa058104030c39d25ad083434939d4af4bd76f7d936f98728410f2a03fb7c643ec9a5ae8715e4590c2aa1a7ce1c0702a87735dcc84798f9f1211a9bbd113c40e61e47a9c6b992a2b727c60c81f560aca5472ce478aa9309b02c00ddf5146ed8ee1697e400cdbb32df36a295ce45f0d90139c8d75c2b02cccf71023a538d5d77af24d855d65bc60abe9f188316cc7b9f01ab1cf71b52f76acaab9d883afd3d742b3aaa67ecdc0220ffc2726da0bb9028f3d29ec21b66adfedbb3f3e151e365c4fcd6d7cda5bc20712169b77fa849e9632a29abd7a121c2a42919d6be6a7eebfd7813f81ae93ed6ed2e371b5da8bead859e6fcd4d5374c14f27b130e28206350c3d1140bb5a59ec47c0da85a0cc279df4a252fb9a421a6da5aca935952c87760fcb800f0e58f624ddf183b279be716a146e322565347f29380e68b41afeadf0b661405b72223838a95d1bc6839604c35226396adab827b1e1b7c8cadc3d6da62f761551dbfc04dea57b29636521eee3ef650666c335f88486654b33e4cb79ccb71c0b79e79792d22bbb13264507b3d9ee8825b786ceca014baab83f58e57eff06c3f64b896f44b104c8e68e63a86528c8a1092f42608f1104cb8c5a2d5b28aa67b04224885f362830b299fcc878b4f86b825d258a1788fa5ac84fcff6f38379e8f3e72465f90a327341f87043458b194f74d595e4e6427b1a9c9c9cf75898c9d1e1ff296feb03ef68a4176e5702e969e892b3ce14ba7d50107047ad7d423c8878aa16c37589226bffe8e2df07c0f2bf3db5184d255b58471fe262a9533f16326ab291f50dee6ec08398a8cbcace3ca24bed93a2e0207f8eed4a40d3013f6c1e868e461f8fd7b1525c9083b8d2f135e756107d5af24aac0db11df9510f7bd06f9c68bfc8e6ad39c943875223122678a2bb5919d8d46619f313b70b26342acbcba9ca1b0240561e5ecd0275cc2ae78635cfe8825c6d26028ca11b30895d73680bb7dd2fc4c7893c3d51894f509b5a6a1d6a010e5f429351fa1b1700f1a7679173459ff233010ea6bfeae19c1d5d68cd93385aa6234969cf0058743edfa390f2b984200e5b4511bc1775df02242441de7097c2c22879cd0c190ef5d30a1284fb40330f827bc82bbe9f55ab6cddef8c89cbbce870bae84f6e8c57be20f5d4cdfd275df50ababf93f841d8a61795d4968b7b3bf610421c8744dfea4bd1494af59d74e24bb402548af97d431f94e5849ac1a9fe3094e93c9763f6855f79c36371ebd6a088eeb0fce259d0351308b8125c66c50df979f53f71ca803fdbb612fd48eaa19fdddf3596c36acc41779f1b99e16deced4c567529eda88054a7752fc5a685810d0029131266808ee709c29c29c2df9f3431ed83648047046d043799808dee20d8980567e15900880de046f97c04df89f73f79f38422ff77c01f447036aa436885720da59a5032dc561f24315cf978774e2b7a39ff45a5c13efcf1e733efd65171c69971e1e56e665502d2682635fc051cb72dce8cc5f466641648a1ff72394c38f7bd741412eb1a40cf12834b27293bd37d9726f295392321f08990894081f958f4af751f9a8a83ac0c5992c430f9e1fb97cfa172ebc269bbfef27e2545cb5774f070b9f5eb888c1a72b5304c5deef27d6ccf95f50b7b4bb811590f5491096fffdb0f0c7023c25e51cf02dc16acf4d4d7b4ea6e807bba64dfa9a974306c758137164b0fc6f099616619a6537c61acac2f2292873c860faf4cad013e3a49452a5721a09059b2d9ed4c115ed0752bf5ffb24fe3576a380b2972ebfc9b49f1a983511135318528a43184a71f79e4de8cedc27cd6650e95de72af756496fd9ee3d650f54aa9919faeeee4dbf5d8abbbbbfbb7bf3e8974f98b0099b99b161430af58aa7cf8a73c82f42634296cd70974d4d2e5de2158f1e508ae73c4273c82f028729956063236569494969fa4c9f69632365ce68c5ca1362524c3232a22e3db3dd8a4d9f3e78a4a5a42d9b9092d275912932511c387cc997542a29cee44cb4622d26b377f088639d8cce69c37e4eeca7fa00f27524cc2594f1f8899fc0c56e79771fb14709012ee296ee2f41893d1dfff6e8ad499cf638c28ef5c89cd5c644f7ee692d0d6cb65cd81c99b4b0d2c120963444141f40aa30c59290ac6dc2ca2849b158e3835d62e71216b1c635959c26ba8a9c48768c2822f130994c40898860db32616d6cb04dd462dad430fac15deee334b38acd6148632a31f110439ce0fe206a17532516b94b70872a6c8e4943dcfd4a5f220379b4cfdea63ece22e27be05d61dbd09f018b026b23e4b1f1e5476f87888f4cecf3a314a650c1939ed7ebf5e38a36b051dbee06d2a482602710f3958364c386164b703f8e9fa9c1c5e08836529fff675431b3b521d8845760c2fd346c6aa6869c5625c59e3a60a59440f369daceee8e1fd2881e861a5c2186447b865c8168071ee2948c0ed1e8a73566a2943446dabfd44c51d85c6d6033eda98d946d23f9cdc4820b24a4c79c260b9b63d112eecfd1810e6951903f3e34748526d28914fe4dd42da46ee10e924141fda45bf1bbe8473ae9b087da867e073b888a953f3d248764d85268a8873a0cbb83e493a01eea16076cf6a1b641b89b38913d16d64f9ab0affeda7981e311a2ef2ea58c4e93e3cf77f0884d11acbcd51d87aac38ed9bcb02fdf3fb471059e90068ee984b5b14318d2e8a2140d2f9c4c6c56a9626c2a0686576cc2c012ee4fc2533fce64d9edd25d4a97ee59a6655aa66559a7b2db3506e48b0334b0b9f634713c1e78d77cfa6d03ac6de8af32b0b95f320a9be7ab739d3e32fcd5b098e5994c7c1ad661bf624d7f4ef792dfc8fbea57bfdc35efcc5e45aa6c6d1644b83ff533356266f6a774febb2459ff4e55b1f993dcafaa43b02566b7269bdf0692a9a3bb1b49cd18638cf11ee9b05d0a59228e3449251c84fb53441c913c312ea594524a499dbabbbb747ffa392db39be50b37111888578e5061b354924addfa577fed2453958293ae38239fd82a7da44fcded93252c8b1edc2f97d42e4632c14d3a0481edef17ced207afe4c74f425244daa109f7f310672a4699ef1eed90f5dbb1bfa882c976ae7509f777aa181a29faaa6f1bfaa715d1d5354dbfbc40b01faa62bf0bb0b002f77f679511162fbca474d3aec6de04731f8f7cf94341c9e51e3df95274ab093ed2d802136f2c3a8c9c74c8e9301a724e765d548423d6e103a36ec520e8c0098e18a5c368a85b1737a1d9c7ec6a51348f7d576cae494995a629463981a2c2278a0a4ab5b8821b0b4b70df231668cc498935ee4a53a638277b36ca93b8a458e32fab60b3164bc2cef957fa85cd9e84fde7bc5accf164c2660e09c963b1c6639c5266024ebef48fc84a1d6017bd3929cd3eb0111b9fb12ff618bf2568c4064fb093362b78511ae5479b3b1c553106ec1ede84552a8dbee9be53dd4bb85313dc9fc5a6c9ed8486309c6bd85274d83d67acabbdd55f38a7737a2a694d9d70fda07f0463ff0d56fbe6eaf66dc4a67de00e4bdab43e2775f45b4009d63ea7b589e38cd9e9b353e3e8f58d4af00ebf165082a3d723cb4ab2cc45bec3e9f7b7f772f4d7cff1221a9eb2c61afa5f13f6fbdb0e2d519696f7c0acc93c799e159c745d9437248c3ca3f8d3d353fa1a7d4df59d15a060ff4ea5fa18a7aff5e5d2108e48c0d1c80a53302703e8e5e8fe4800ba90a6931107cb205f62989971f9189ef79a12773d1e52d3406f87f7da476fc6d3c0979717199a0c50e2199af65c4d9665327ec60c564ccccb5319d9ff8ba6fda6759aa681fd2aaf077fed1a2171f731bc1cdd7fcfcdd0b58fab54d66659f62a6f0e75987dc6a4549479817e138cd7833f65caac74ab29e2449cfd8bc7c39fbecb8346489c63bccb6755603e2ba2bd52b7bccf9e4b793c2476393d7de9f5383d7d0f8cd8c5dba1c9781558e4377229d76a33af07c6cbd15846875f5e5ec6af3e93311471607cf6930611a7fbecb9aefbd5cbe81e0628318bd783ea3bd577cf75d775aacf691860c4715584c4da1b3171f7457cf8e5e5bb6b84c4da73347448d80f6f1f23099ba7ea0b36cf1facf2227e8c3852fb3ea23c4df532c088dd2b426219af8146482ca3bb39c6779fbd3cf5741491f131aeca8bec5737c770d22dd52d126306754bc6f554df793b62a86c3a19717214e95ee5450ef9458c97cd0d9b43309f15915fff3b8f87b743562ae389a2521dd2af1dbe680fe3c60e514fbf5bf4763160cac2f463cc3030f530cd1da694524a1ff5d1d3416f767aad03236e019f05b460ae4764ce5480b34781b17bba05ebd612b9e4375991cdaaece686e2814df0fcacc86f3215449af93710c2f3ebcdf60578be9615e1f9dc1d8222c51cca6460e5b7cfacf3a516ddaa1d66134706c664d76e3eb0f6d4880dce9ec699a94425412f548983a3a4944ac7f28a222a1ab582d81cf7a19ca09cb8bb12285ae01823288db81857c4b062bb2084a007ccad6acf61ae51fec4f4798476dc0cf4e35d4106f0e36b2e123b809ae711c23777ef42dd4c1fbf27840e9f43901a6a901cb84705d9de0b82f29e4748879b81827c0e42d410e46d84a8c1e67984b89b51afc3cddee7f027207acc5c24b5eea071da7a701b0f1a1789edc1c30eee22d1f0cddc6f3d7e8248340c14c409c8e511ca08c833bc0c1749a521c309664e1a33dc4ce365b8482c9019b69b5f341e0fd363e679b8486a0f9897df7a6cb3c7369f4788c7cd403d5e0620333d1e06880c33cf23f472f3f62ff361fe7491681808081808a81808088d0a6447ea6100e16e86f1a78ba4c337091e21eef43c4208b81908c8ef0082c6cd40b07701f9192e128b93e011a231c3f308a56ee63e05e3e6d3c3f81cdf41470e1d1d7270e11c1c0e70030e30fc1b60001e078ce10d0002e06d80372dd006e952c0d70063f8028000f81a4002d88034b44b013f003086af0101f0344001cc00d2247197022e8f507859431d7a002e4b8a0efd650063b84040fc0c0800202e8bc869fc8980407e08d8e38580407e07ecf141402097f5e334fe3fc01e9715e434fe175c3d08caf80763fc0c50f532e0ea59a08c8f0163fc07aa1e05aede03657c07c6780aaa9e035797d5d3322e8b49c7b82c1fd56535e9d0df053c6118309382c410ace017502302cc0935c030403f0112485be0149831e103262a6097cfe922dc027e871e5ab00809064c27f79b9c5dbd9b96a6b26dc300d67ad08ad0b4f7ff6dbb471a6bdab360dd62f5746b3e11761613ec2c1fecac26d83fb37eb0b39c60cfac20ecac27ac21ec2f236609db2f1c715ec1561f88ab2662e87f1201f6e79cc0fedd09b0bfa702ec8f6a01f6ff562fc0be82c59a8823f6217c31ec31f3aa7a00573ec01fc0a1159844ba7eb0ffe003e82e1f6074f500664dfcb8a2a7e36305b3c2fe155f919680fb19358d7f451dfaf700a3cb8bbe22ec4b88004f27d89f37af7cb0af60b70801ed8304f6ebc2fab70d58b0fe2f455e486a42f4c99ed988aa5a89539464141f483186c3060d1b1b58ce7c873247fc7e29f3cb06b9ce88cae5fbd2529251d3921117a06096a3264d381e998009b6c1f128054add910f0f16008e472590f2750c67cf5201ebe96cdb6641896b8b6a0a5bbfe6a09f5bfe48e37aba398539aee5394fa7e5b996daf25cd737d3c57df574ea472f07065eaf171258c94abc7127b07e87df47232a6c3fa73b4fc77ee7e97c6f41cebbaf3ec78352ccb5802c5f59fef374502c8f6241b1a02c8ae53f0be66a5f7a3a2b7b79505cbffe77ed5730aeea4b5cbfc5e559402097bbaa37d561f6d1e5d92458db7da0c4d67ef47458c022506f9ffb5858c0fa9f8ec6a80936b680c4730a361fc119f53643a52a8bcddd125c51ffa9f087fa6a6f9618f5f5338fc709a3ead388fa0eb544b7a45ba8af3f3d9d6ac1983d0beace0e43f9e40636cb58911c92b19311921c925248a26ed9cf4e9d84f54d746d1fbb25e40d89b72ff23d77921db70473df815909ee58ee6a8788595e47c42c77d5f24558be3e4bfd963fbd12bc81b9c3dba394bcf0d7c202e66a41efa38752823f100318051ae930f71b98e31d183b8cd2dba2c7dd9811d8fada6f9bb6c98e796d9de0bc465f8a3811c7f8a0166b66cf299b684c465b5882fd939c69c2946ae06d21e653b627752b57257f7f9fc202ac459c7e281c28caef785f13887eb9e47dcdbbda91aef9d2356f12a11fa2eb880dc42aaefb8a555c3b3ee4168e4a108463e0785482228c822b5210c3f1c8043c2720c1510aa8c02c14905f847f71051b69bf14f01efa85e5a580df150f89fd25f69b75445cc448ac822f0562152c3f56c171a6998634240d4943d29034a4d7905cc9955cc9955cc9959ca691b42267f2e682b4240d4943527a252fb8cea1634e1d4f67c260b4a848471b1afaec1336fbcf0fb64fc4a6a6a222099330fb84dd2aeae6909ea4d312fbb70ebfad3501652ec591e05520c1f25781db9560a46024e0fc1fc38eef55c456cc22769f2f9b8f35fdae2d51b1b058f36561f3846d4b5a934fd1a4c4b09da66716965342011767327d617f6e09728ab6c27530614085e291a6434e0e136c963d75b381cdb207cfa6d7bc02eb79c1fce64f91be3c1918c1a3145f45a9eae8044b5e86e291cf955a03777e1b3f3e4f605491165880c32e48801bc431adf2414565db81516532e2c2898d1e27cc22232ebe20e5cb59d07538bb91bd70d4426c83e347bcb5b6de9afbadd6caddba6d1fb3125ca9a7b3f520bf629c41ed6787ddea5efb186377719ceee96c13476f47cdde47759a88b3d76ef603db4c3ce02ab0e2115ffbc68e638541bca93fc46f6ab556a5fa0f434d4ac139691afa43c827d556957d55f83129cc3638ab6ca830a53452ea3f56125d39d461f6034ba5d46cf149810a2aa83842cbf4ed24418a37241bda867e229cb520dcdacf9c3f68f2f414cc324da3e006723c2790e36af57480388d93941a993e1ea54027a51c4fd3f812e6b6ad398e4e2aa2d7afe33ced722f1694a7b9742e9e8e3f8b2761c0f074ea73744e23d3e70a29b45c91d5ec8a8813351fcdc7699a1ea196b4264df351b1997bc518359f54b7657882a797ee93829d722e25b992f60e026dff793ada12a660c46e05eef529d9ecb1c8bd62cd77052ac6bd5e1167c6e76034a72a2d8646352da3599daa6f427f341f1d8f693e1ea3284a3d6a3b0de54d16169b4ab9c0e8703c9ad6c4c1b85787da6a89cda825eeb5a4058a0965a55b3e1127a5dab816a58732a38dcba0fe33ccee331db68753104114b0807dbafaa3b52955cc66533077f798ac199d465696640c381a5901023ee168b4c594a2ae8a27a67423e08ededa942a860a474e14e1c8891d1c391174e444088e9c5022d54515aa9002eb49e1c060c511984cd191e088c9133afd88490bb2232628c08ee3111313e06c318cb3f286c4387800a6e4c2e1d554e452e2e262774b29dde386a2a1093f78b936d072025ff020290966e90b1e2425252525c914e1ecbd263b9f8b19b83df574b070a621019f9ecbb2fbfdc49ad3293b7d9fae96d4adede60a489cbf1f2dc6c294de17a658335f98f09429f20e70dc47450a2902b60e55faf21b8aed9f3e606da27d965f7d24285f1d36fd744bfed42a41ad0bb1e6664a6a50179e742b6b4d75a85bb9f2f8c81b59e27e4983fcbe99a4a1bfc276f4cbaf3db7f6e45a7b2a4cc866fedaeb98df1dc1fdd21be43210a8be067e5dd2b549d3380527aeb0da436ff5e9d06b5025aa419f146caeb159ad983556ad88d2d4e195faead02b4fb7fa4ec755ec7c7fad0b11277a52e8d58a0ebd7645aa4835a806d5a06e1b6baa87c4d12c9b71c61833adca8e295ab992f98c82003b7b039362436c1793b10e933a945364940efb7b50945599136b70f0d8f899060e29582b8d4e690fb44816b3d962997da5b16162567e5b252e766b7aa5adc437205b5a21c6186f8e31c61b3bb4b15114ca489d3ead94e2e9d3095a1176d747c54ae9d26972a60e97965c7aae043141c6cb6589f58f381a7d6109532e7f2f4447f01728dc136d68d3c2e697a0d74b90df44977f2f2b2d495b7041e92a69dad0cbd086386d481b7a097a8122de6cefff121471e4ecedbe401169fcc5074d9146defc3205f6bff985062f434a60f7a0581385cd2d492f414320f7136bfce94b10f697a097272f492f555ea4f85e2f462f432f482fb197292f44d89f4ef91a82752b733f1fcfb784fb8938fd325e9b265f7a3e4897f69c46a4116953c418315858368d6836e9d0ef64929d0948bbbe945d4929e27c4a4a557a9af44d8c97165e68447e65e9056332656b44ddca9f064533d294b2e0e24cbe45d8817c8f8fef46a69114e6de480a28014f6345b8d73e8b7dcaf674b3112398fbe8cd22dbc7ede736bd39c19c2aa2bdc4415b18b4c0da6bb48bde8eb0c320e0ce0f01853c37c1f01f0c67604fa7db2fe4a5f783fc9d9741fe07cbbeacc427d473d2e351bf7b20601220ffe37b80497a7c90e7220e1b8dbe80822366791d3804777fe2a2d75dae4ae783edbeeb5e7a2f230d3309ee7638feeebb0232bd01dcfdf3e8ae8ca1f7b4fb77af8789658c682cf35cf48e8e9a31e316e158e6c658e3bdd25f6ef6d1fdd373fe32465f5881bb97a9d22d4ea9c3ee72555660f30a96e18893e1d3f51b213e88f7e85af574e82b261d8c13d4161626e8c26443b0427c86f939fd7dff958ccc3bcc8fdf24912e21eecafbe812e23d21401b04ab019e9179ef673c473d9d19d6dba1c77ff7393da37b99bbe2d115f9cb55f9885964564e646456437ec3e33dad6804862bd87f055bf5742b46d08a6805e5262631c5a3d712ecbff2917121ea5686f97181d2ad9e02e6c763607ebc21443e8897dece0f1fc49d414e0383e74f87fe035c01f9f14a5c41c01590201fc4077193cc20afc4e56391b047047920fe881f4fe4f30a76faaf08fc1f44c0d5cecece471710e06a4788908fae4c09db3d37bb1fdd0701a38b931ea5a38af02addea6eb7c0f797590282abee25ee7e08b8eaee57e4fa8c9060573277d53bb0f7f479059bb1a69b18f59cec8280d1f5038c2ed6cd1d461561518445117e82b5ffbe68824fefde4e7f121f2fe42619f23fdebd1df9497af89d9b24c8bf7cf82382bcfc1fe0cb873f62c8f7fbf05cd6edf0a17fc8ef80f285801fa4eb582cd6b33ccff3be76e87df458dfb1bcf7ae4b50872e0352ac29f21be94a792f3d1f36ff220f4c6d582c49ecd2715fd1571471a490677d8c373bef7d8c373fbefb186f883c0c2237461a182f8475b34ab57363a4f16eb618c6ffb831d2c0f85cf147c5761f3de6a78fdf4817e70592cb7c79f18498175f50c5bc20fa86ba9557b08fa85bb986e093e283327da68f15981f989f2d5c885c88b8a064e3116905731a2e6c6fa987f98a628dff8cc266989f0cf30dc51aff15cbfb6f4ab7f2f4e9c054872bd6cdd198d5fd57f4197d48dd7a51fa96fc3fa6cf8aff77a56fe8cf6745b7a2d19529d8ff8bb1bc6efa742bbb10617fcfdf50936ec523b84b51c421723182797d43350411a78da4f0d783f6df7778ba21101fbfdae91ed403d2c3af76e4fff81ff708202f3fba727c82110701a36b08185d30609e2cc09ee44938af6055860fac80dc56309b0125e039ad030246570f30bada0be7bb802c58873e89d07e7ecb91c639b4677916cce5fda7cbafa4186265478a1f569e74e84f88acb410f2a45b598b6ecdcb7242643564b5d4ad0c2464b513d4ad0c1464a85b19e8c7cf2520bf5dd64f0c53b732508f9f971504bb61c9017a706092e3739b803fef64c6fbaf88ba95c3c7f1fe2b28ddca01f81b45ddca38cf2232ea5636c0b3a0ac907678ff95153ade7f15cbf1feab283aefbf4a9279ffd514d6fbaf9462de7f5565d5d4ad7cf336de7f75a55bd9866fbd6af01400a6c3921c7a5c4cb00faa89f7d339a144ddca04f81aa0742bd3f036ef1f533480f78f31aa79ff18a46ee5d4fbc758d1ad0ce3fd6362ddca2fef1f13a55b19e6fd6392ba955731534eef1fa3d4ad1c23a64ab7b22aa6a95b59004fe3fd63ae742bd3fc0cefcf7a752bc7f032bc3f8ba75b19003ff3feac21bf49325d0a787f16ac5b2ef7c1eb808f016586f80e442de03790039168413cd88021e01b6088cce318f2370c39c0101478f30dff43700c31404c0386fc0c07804464fe06111c1c1c6efe077366e0102182f33c427ff30ded86c7b9482a8e9b71ea101c37fe87fcdf7c7fc6909ff13c4237dc0c34e47110c119f20620826380e711ba71f33f0ef7e6199ff36003643e860891984b042472c1e71192b91988c8c73480480370dcb87f03f807781603760a90596fe322a93b3c423bece8d841c9ecb06edee163760aa003c5809dff866009b93c42d9c6b72e929a515fa346ccb374bed6d7b848ac15f23c423137dbf8ef22d162be1c5fe322a93bdc5ca3eee8d8f8989d98989b65fedb89f99e4728c7cd403baf23a4c6ce17e022b1350a10f339646efe5ee7590c68dd6ce37508417d77915421ad4e46084b880ceb79846cdc0c24e45b0c4009f98e01365a32bf03eb75bc076e3f2e8f50de916bbe868ba4fea801c5e570f3e67535fca8b919018fba48ec8f9a1c3c21ba1f4f17e005b93c4259876c536b705d241da635dc5cc30fc0e67984ba9bb1b6e30770915404dc3c80fac385bffbd1dd8c7afaa30b13d3d8b56511fa52d2a7ef58ca2d7cfe71865b32e79cb3e7ec25dd9a50b0a68aa981cd36b169e22f216fc8065536163dd14c64959884c91b59151ca77f944b689fc92564956682b3efba3923850d1b8653ce25f1c6364dfce96037c5683e47df8609f68f55ab1a0eaca570df7c8462ffed66bf35481ae2534f477d4dc61ae40d269af56b6d87c30636c758ad397e339b267e8d296bfc94787e7b3ad341db212dfaa4f081e1a3f229d9262c0c6c13f6051606f6052e5b4ae904927fc7297d9a073b2c5ec12e9bb4606aaaa2142549c90a242845eefdf18372bcb2a753653373f7c13eaf947ebb7bb22876064b383255c17909b6130821064f60558794a5eb30c3510831a8018c8b31c61cf72bdb6b175d74c1c273da68a54bb418b34e4527a594524ab318638c714e4ae79cf3e39cd3a547ae6abd553a299da739e7e6e9c4a794d249e93ccdcf69b75f343971b426416b123589ce4bc2a35c12944b824b02f56919931c3972749102a58fb315a912551dc89b19ab44734aced9a507d19deb9cc3f3562214b8f712b86e1231379e8dc743f1a0a60f3088219d37c46729dd5131ddeef6d9169749fd8b25509f12e06161716f99d497407d4a80a745cb34971a860c84b9b8a452297718933a0478a84f09f0c0f074a8bbbbbf4cea10e0a13e25c0c3b578818b33b19de3baedc471d2939528e6b712d913d02344c4269ed78b33128125203e62410c497ac0104a5c253a6d2809e33e8e856b21a2934a18512c168bc9198bd26127c57888ed602dcbac44a793ac154ad354a297b5e1346dd3d2e2d233ff34c2d0c5252553312ad57c87d1ea2a5125d2b9809db142e9b0898c5422dccf9db88d4371dd4f4b1439dc6a078e37aa563525aa0e989060c2833d1c8f48d0052218c1e34312335ea7b2457071a66b6cc40738eb1e9f8296be5f8bfdc345fcde9f113b0c462001152e8e465d10054d5411541d7bbd5e4e2c49c2fe4c68220aecdfd994aa8929b07fcc2fc1fe33ddba013b08aac0fe346c9a60ff1a36b4f8b01f85e00bd89f876e3181fd81740b00d87f4810434481fd1f10811e20607f23fe4428810980fd314084fd93746b4a9e6e89000af6283d3d720456f0231250811d853d08c78843e70d4cd072012ef874000b28184ac213fe01104c9b830f9cf8e087075030a1410b58ac682207d3e51ea357c14261a1f8a8582775b332b031b03965a1b0411f151b64836c133516c5b7b181d215fd460848ffceb7ea63561f09d7c77505f355d64d4e535f89aba69e38e18a2e2179fad069ea0b01d9be81f49f6e1295d3d4ef1b9d6653357d8df180ed2bb4f5b6f56fdfabecdae8b0e6384ded9a2dde408755b1b99bc0e8a23fb2e90d6c1376729f7d92d36fafc4a5d18fcf813e3a4bb2650f64fbecbb2f90ec4f3749e6eece126bbc5eedf667b1c66fe20ff366e9ed46e054b36a4ea3cd2cfbaabdd3c838fdd62c0327a599539fd35f94529a6d5258f953935946650e6d34e12f2b7fe62ca359466558b719705f3157a5964d4ae7742dc63863f4ee6eeb3475566db3c257046edb90d4ba21a9da86a466344eef28a9a4799b48366f47dda2f744b2f99f09694cc18403db12058f0bfb1da10a96a50757d8ed069d147bc2f1880919e0fc53b013c7232680b01702267e7498f0395a22c83e13a212663dc5604dc0fe9ba7e3425d0337ac063109571acc58ab138e603850620af68c8a0772e083230f3419e1488920bce0feac29092d1ce17e9a6531844e421229d802891ee0fe7e0e3861398005ee4f1d75800a26e0fe7702e378c42305f7d3e8ef8e35e10e0217b66f6c54c216044dd31a06f6c3f1e8c5a4bbe2e5020f0b36c3f1e8750328eca02b81ed703c7a0961899fa30f0015415b62411c8db658eab860637034cac2075cf0821658181c8db200658a2c28a1038255e16894852525985e545818381a3131f172c00485ce929836713c5ac20111a8a2e020f86831836587415f828b33b97b4d2dc8d624ea70fb3cb980b39f49903711f09ebe7006c359cfcc820ace3ecae9049cfdcc7e22c14646c06f265296dd5c330eecee293a0d6a5e1b4e93bd771c285dfee29a48d944b2e930fbf979122145d724f21b1fd90487709aecabac55b3c20a8c980dd25c9a57aa265b392ad5e8563c02ce6260138d764c2224ce725cfaec7df8cd679f6121e3b689b46df5275213e5e99b6884a1ec67946e45a32f98e06c56c1d9c72c8b91c9ec6396fd56b5ec331bc98433cf5ed6bf7bcd3e3521b39156955282cd1f56a9a415b21efdc8115caaed36b175d5db7cdb7c11477ecc9f3818bbb0d33b7d069eb22c8738cbb2ce7eb4f6bb138d9dde5a9507a63c6055331cb0a7cf3ecb2598c6a507c31d58eebb0818e996f7d407677f3ad98f1da69eb3d97f50acfd94cd3ea753609ef87473cbdb1ef6b3abeaa17ef69c7dd9883b6c638dcbb7b7437391e2e9784f9960f3e3b8c9e8a82cbbab2ccb69540dea737c3b9dde469c98c2a7b71daaa2b0271a67c4f93eab3cb222d99f9ecb40fba954cb3592c2f6e6ec8d90d83ecbe7b4fd0c8c9805b41d525587149498dbbaf6bce74edfe956b7abece9531fef348d635ca2d98d11bf99ae087448735cc2d406d3c73d272450c0040300471f9cc00966f99cd66a15b6887cdf216f91ed6f916d72371b3982b76c6eb8887cfa526e3ba2a4211f81e5474943d6009659099679c3da732fc1683f6bbd9c1898070953b282fbc31afdd6fba6bc215fde88d8519ee779de47efb381f5bc1b7978ff7d4ea340a0969fe00af5f35137078e9deff8660fdf9da8467d7b3a311dfe557518733a3382dd3eaba6a703d482fa0e5c7d2ff1f731abcf9160bfa14cafc7175d87d1a5a36a874d05bbdd58b799491afc6bacc938507bb095b0f56ae06afebc32cbb2150f09047b17cb5dcd899d0a15f6b6f0297d4a1f183ea517a64990375a2c5bca824acc09d893c0b2bbc33005d780a35118823027bbd983fb8f54f0f381c1e6eab45bd2e1d32abaa7c3251dfacb2749029beca804cc368641ce3285660680000000c314002028140e8a44029138209267aaaafc14000e878c4a7c549848b324865110c52083882104000000008400200a4951551000c3866261ebc9c5af229b17fb43f8e5b8277279203f152179ae4d74792e6d9ef682c14ba6fb6142b5425bd33ec5b2ad17804e27068b431026a39633a417aa8e1d026555b3b699d387ed11152134658ac7eceb37b045ad9679550f9dbe76bb146e5ee99fabce944c75cbedd2b4544848d13faa440dcdf98c7309e1b38fc24d6679cb78e2e14c38bc6f5a32e971d8b3946d4e94ce0c0ae66d15e303f1f672861f5406fb5a7a048f7f687ac993929ce04eb2a9dbf4952e097208dadfbc72c266d1d0f7bde90d6a00a8cef7118a8a6b09850bba7ce3d4342f768b5123eb271dfc0b9325056d06d9746bd9657d955eccede159883705b2ba01eef8174cd657986980992ee5b9997b5e941356bc5ec8ab73674a5b91f0b0f9766a98198d55ee64d4fe01a069fa670c6c28915d16ae7d9df931c4d90bd88afa1037c191fff3e10a92a91e60465336bdb822df3ef28837935cc05aa995c6de072eb799ed31751f06c6f2565a73b2b77548a206521681f98aca20ef768e4906fe76d10269ae10276e527b7ba275514b4f0cb1f733eba3d22dc940a2d9eb49938ae2f3f97d950dda2c29c0a31472d63e617219683a55729ed08b8455a20646f54fa121abea1a139a3ab158c589a60bf850ebec905fd515c96baa7f0876cd672d8e42a659f3595391a5357f7646d0ffe0d8ade8c27ab21c2e73486cd3c9d12e3db61115d7d1b90449130553023b1b6fe6b492665161e93fd36701683f21e84a31bab91843da7eb41c84bf3c27685f7b23b9df447518a99b32b1db39566d48031c518e41ea96803d5085f600097f19971e4bf4ee554669a6750a3dcbbf4ecb14f5c7057cfe479198129ac29f978be2d2a2294e67701d3df41dd5c2b6945dda5828705c1b9555181b06da5345989b823506ccde18d4fdc7e0ec5e6612c4105bb387f15e6415fbe5d4c3873d6e84843d8d1457a368762bc1d8ff18be017b1686b6b4411a2ddef94a50e6ac1d8a283b2393c21d662f404d73eacbf899b635d86f81d22d67ff58c01fb36a38f5f394881ba24c4d5b674566fd5e82c6d54fea6e006013e8f1be84cb1f54a497c8883b479006956638f03da7788835f41b512c9835f9f1d4ea3fc730bbce13656b0d87534f84ef3fdf61df52cbf8a0faab906b9bd2c5543bc7a6778a2b0a977238828ddb0c77af5a5fa4d115c324ca4151c9766c9e3e285e1755d44915e7eea8e8328457d334fedce8b533b844a306ddb6324986d78c6648aa3c6811f9f6003b16e65c4c4ca05f2ab7a15fe5a96eecac2021fb65c741b16343f7a6169867f871fdc867ea64aef2665c0d48e8b9577c35eb490fc24a603b3a7a610ee6a746e88a7134a9df0d52b2e23cc4d841178b15021e01ca81243613980e98d1161c9bf3a3c4b6e6194a4a8aaa1242af2d76075d6fa22e727a354d5e19a0c4de392211af52ac677d5cd8ede0d01019976313c21327897db658591cbb0c8458db1921a56777cc01437a3202c571dbe449678998e48748c16448fc9016603e226396095ac68a8fc9abf194225278dff880500a81bf533cfcc7b82f5989d51f4d766b611bc91ed9c1cf392f61ac1909ee7d8bf73ee7acc887fc8214ec8343536c46888861320ef5de840bfdbe77371fcfe83152dd0af7042bc208091251814b259276ab463ef30a9bccd277a46723eae6a60bcf98282bee6214b65ce7bc9c275744e353d7333721b2f566e6b669be8409f09789319ff138291a92f136c3ae92a1721b7e6d8b7cfcdffbe8af03a737197c9433c2ab4fdaaa02c85771cbd7a2eb0a7fa2a8fe1fc0db02a23f4ff3a7c0c77083e669eddc54c88404a61061aa7214de1422a0eac34cc26557e425d5121aa60eacf0b684de3a707f6cd2ccb2ac42634c6d8d9ccd02aadefed0e0b6d5881bc26a767ecacb7bbaae33f4c2865ebf745c7810bada3af36ce96e8f17036fc564ddd8d8fbe85ed186b33b92510463d54d06a2ea23b1cf2ae0473e14507c5364b6f27887caecf0c7c61753b718ce32eb21cffb62f9056059e86e7a7fb97d81f3a0d2824b2c0dce8121d9ab120d69cba927460435235c26ef753dcb432ae30e6f344d30832181dd4a5cd48ce41d9090f3a05c6239a2a884beba07847cba4bba66a5c41cf0678e021978499c9a4179c3abdfb31266f59fc7689f1802918c54543b0897b70899e64eca591774e8a1c893c987078430109c8b825659a9584ad2b9093b04f1769478dc7798cb26ce9b95b3adc2025054325b48f528ccf564f2d06dbf062704f9966a27f69efdb000748440955dcdc8f9a62f9f73918511a2ff8d2b987523e3bb7c28066621bbb5314eee08fa894cbe66ce6540a48015503c6a93045dbaafd8e3a0d69044859348d78c77420cc3c968a45dbfdd4c8608658c61e8481f226164cf92407656c03790b542e2006955c560787062b3a537e9e3b16ae44d4258eedaf5ceb91dfef159a71f95b0c54a853054fc0c42218bf7f1ce24e95b26943edd145a1df0609a344654f9f79da4a759c877d432598fa6beda0a696a21f7793261aa26b0460b81ff7f8cd464359ec4a155805ea493adb14eb136b184201149890541047aa4fa82b843bd2953f5f21ae2a8a57822c2638f9e473a7998e2a09029e708437477dcefeeebaa99932b303437d5f558a2e489a5403019ca29e7334fffe4785f4777e818d4dbaec9911010ef9d9e780b3dd30bc9b890f5995d8aa40605c5e3b00fe501175ca2a431765e3ee81c3979824fbee7cd12d31c2dd936544dac8d899804ea03fd3cef03cc05623dba237bb987db9affbc8763d21b73a01822e79adfd1d36ae5e2657c57ee22abe0e9922f827ff0330f838b94878b8f62113c62a865982f821e30267e5edcc84518a256185de0f0778dc1220903b984699e99583c5430e11a10f2e2d6c138e42f7bc48847456f71b788500a6a6f1a052f5b2a3893f1402a146913b1efdfa041163a5cc091502a84b1b3879b88a713254f26ab4ddf6e670a10f9c3d5db16d6282da0671506bd2a10607f9a0fb81a87624c9843d268a3c08e23e042accd3db244cc7f03149b8f03dfd8a62a379209009fe055ccd2abff248d7789acb14b4a7101bb1327272c40a733e1639402e849c13c47e79abc2eae812135e23a9b00e39cbc62a971a9dcdc8eb3811671142c92a20aff4c6e9cad98b348d2fd7c9ee9d13a9852dbef5953a37fe907efff803361925e55d7b4d0086e36c025b2e490021c7f38919e690551948f68807012f68429c7328d4e33bf7aaf45fcf6abe1b40f7ef8187e4aad5ed045615f118b9d046a76a32d982799ef12d7e8bb5bacfae8950d494740c84e83deba1d5c07a4994ecd264a3015484151eee54994b356abe52f459271c886260a6bb28e90fd41f0daf8a8c90c8cdd371daf0266ce247f62bd49c07300a28f8de509042591881a04f511c4441fecb3dd83659a1a9a09a341a5df64f717e929b31278444ec06648b74423c9511a27fb3ecbe40c3d36e5aa073311eb9e90cf6688c21fbc7a4dcb9570a8b099ce598a8a7301c513a3286c3e583ed1d42f3e1b6e8087281312212c09203af878da03926877b7039e502400040dadca80002f9f1c4ed51c0a93a1504eccac92773ec2d61a43b9f2a305bbbc10c6dd7dc206cc017353030d768481148f3eef31bd05dfa2c709372cc7591f070bffeaf23f39a4c89d146d3e3336ee24acabbcc09e3bd9801e986deb4341ba433cd8b10f94b107986d7fe1216eb1c9b4ef8ecaa72296707c351c94046e693701f7793a711b4a410c68ee48b76b2b1ce2948d5a039a51f03f1ed0ecf905c2cb04f420cdb3157d1f1cd2d7136a61bd816640f3d0858f5449b321387903e206c5e4eb49c9d6c9c6ba3f5249ab7ca92e3c05884d4480d8b74b9fcd28324b6d67bbb59b2261a2f850099e171ead9e9760a0cdd42ec2cdeaa4bbc83b9fd55c937ae4fcc3e12baf019d8dd7ef907a4d756a9384210bbc0acd62dfb2ece006b135dd7d1e7ac93460bd59bdca4fc2a54be189027cf8278bc3c60e6fe604ca862189b70f2205139b4592b45235d0b36898bb0ed5a28b9ee42daa83606998e25e61afcc55d1e80415f6c874d137349188d1cb52a2e5c2f9a4e77a6f55c4bf82c0195f42a35bfd13ee36b94bccc5a96c5026f33a0e45f6930d364d3daa14605016b0351a3bc3a1222c205a99a355e930eff9d6ce40aa6408cc4e2cea31a28d00b8c16ca010d405e23ee187f7284d790fe0442930efb09c540593b35f25394f7122bb21c5cfd1fa4ac43b23f0063ba203c2c9111d9175ec494c1bad466b85881c7e0e398ead1f53d67edaf5e74a406e74138e61e31cb4638a10d3b8aee4934333bbd57ee9161aefa8e92fecc0584cf8a6da81e73cc3551d7152dc60c42d6257091d56eeadb45a47831204672e966cc0637b535e2800574182382ba7de55620838831920f488e0d651985954304d810f08a0058d003d6a4402c518022bacb6c0e8d0afc8e0a97b55ff810173dfe929cd4f81e480233dbda05a9fb231032d19b49aae133f047d1379d104a1b4942e357a62e673d4f53aed22d73e61aa09e001781370c19f9b1a26de722eab7dad540908f0b98b416956a3636b2ab5fe3e81efc11a129b4d4d8db3ec16066be10731658881d8ee10245723b68d7e5f723d8e4fcc98308c79a13114216b58f68e0b4fcd056d18e915f90533fdb8924fbe3c016c90ca33e1fd0457ce4e97d47f419b1e3564ef111fe9789afcffa07bb30f4e28807004818b8fd9a5eca11a8e595245b4035a7662d52fa57b4de50669784c0208a6822ab638d5a800501b987f93820402a2d16172bbeeceea5a8a29fbb54a8e536231de11b06190e5b09beb9f6da074ee092b0aa6d8ca51ce5536ba8e550f347a8cff8e8f2984267bd3b071b7b8916cd694a882b44d9580e545de298b8e6f825eb1695b444bf39158544e633488967bc92cc73688f9f26c469144b61dbca962509b35f8d923a99595f936886e81eb002de52ca67f7f1c1a5d24d49ade5285e9a79b26575c8c32604999b62d58b1e88f19d7502b510addfd1666cb5dd3504c1387027b7d74224f8020fb08e0b9000f80924188a28af536de10674ba0f498c786fa2d7a2cb287468c08d04d2c658bb3e6422331a31871bce69c2e01ee1344909ce871f49f144194584440c048bb3f4a6d41f02f6aeea923eddb299239d36eb60c779f49b251dbe0d38b29e19be7f157e0eca69a770a504b86f9b5ba621d304b283bde239bcd3fc743414280267cbc7380ce9b3b3a722a38cbf1080781365b1cad144d920236abf3ea473c40386f17d9b1535dd63a6b6e5d8066067e1f6c72c2bababc986c7dceca3998c0e7d90ddfb47711a7df1fdac9abf7dddb2559ae9e06aacf6883e57149d8b93863323305eda527f022dd5ac695d2525266508b370d63612d07c4f2c6290be74cfc32ee2473d969f53f5bdf31fd8022cb03aff3b616c268f840a187a9f03b376d285598fb3461cb4451cc36f2c162cfcc374d4c5f2cf6b01b83de7ad3517bfbe62a06fe8fbc1229e70224a4608494ae2d06a7cd1589e996ba05d14ffe682def2e0f6784b5c38c2abcb95280bfc635d17667e573fa7805ead93aac1c550bd2bf825c15f6c308c48a18f471e8f7f8e74e075ff0c8a669b453e62fa0e6bf35ac9f4901bd27500377648185400df8122c5bbe4200107d267c63b5c1b6af588bf49ceebfca79342403db54b6f23729478662218d13e7a25b086138ee007475b325f9c24a6295070e661dfa88b02bdcebc59a902b385e336fa025b39eeeef60df7e07f082af90021e38eb4c19c974f22fe01ae34e48248b843c68c051461d988e445b95d7ac9c8a012fbe56194c3e27aa63ba323c50d0c68ee16d31218b2acbc86bfddc09e8be439463232331a15defa96bf0be9491ddc5a8039e3b1d16dd34b5481a895c4a2521fa32b22416d285f263e7f59b985187f322f0a52ea8640e625d998dd6d508d7555bb4f3cafa290b13e2ce4e08d5562cb989e7b1a97861112b5b50a682c9452119568990a64c3a486ed91c8e1cdc1cd86b248fafe4554a8d64fcceb9708c5c70013a165025cec7c89f3bc3166aa666592a5a369942825ad80566ecea32e0a7b9e9e1022e3112e8a79dd77f7f098e8e2d89dff0e2dce3514ad724d9564b450af260aa9e01454d7f1f61a6c3e14027b3e7092db51ca6292df176125a3a46972aea435d08c25d164c701cd14198a0535682a094c7c25211bbd5a25b65b049f4289560e717eb73c0177755ff7e56faac5edbfacfc6444326acbd41aa08b45e619e123810bee6e344e07724c39efe511f996ced833d9952008a967d64d0e92130cb63bcbfb421e692e7a6e70000e0e481fed0327a393565570ea120d315e1e28af8499224687b76063d874aac2885754dcc8605d0e1984ef2aa13a0c673a3d2adc0bf141fee344c9a84258e70d7518255e1415d68267b09a479970e0b7688910a9563e4555582e43a20c1bd1a66580bdc7f1f1fe12cfc54654484090df28ace5ad8744af279531c688052d1ad9635ff14452253ded2b98150c9066be06c3f9d4ad42c86c77b686920158d582599f7c9c5662665d93d41a8b221abd9f18feba07f6c48e7bf66fc505ef3a633876491925c34d7d7a88744c884722af38639fa98e882bb2d2a703ec3344e30540774b8329a1815b6dce63f4090669262c1357d925edf4e615583dbb9413e85157abb6f60f9f3929b69532a7bea11a6faf420b333c20488feee3a335fa693498fcac4e6a135ec4120ec7680b03fb8954502a9dd1382ac8403678f746a35be4e12d31ba22d0ecda05ac35b1a93d8ed216f6950b701090d1672385d06724544834466e7e333f96fc3415fd70bf17dca6b6f91da8c2fc3dc0e499825be654c2325781a29f279bdac851b78d815dc471d4747140132f7c766cdf8e72a9031e5f0b9d02073ad3a32d4c3c0b3c61d5e9faa0750e75a084ad18d8788c0b1ac2f553bf0cc3e59bf8b385a7df6aab6d26ad8c8d18656a502f5788cee27c74f8fd0475986578ab547a43daa863d89270a8968271015ef84795b87c94c32f39b24720826a3760c692a8c67e13dcf2e73d4c0940f5f3b199754fec2b684f683704824c193770469c1df09488a083ce8accd6d23917935cb939ae590d048bb93e4a3b5190b351dbc254f6b2d5ad0d46e21a70e2269e8018b96b42a339892ee3fa2b76e31657e4e4a5916383f3cba56880302ef82a37577d09848fe1667826938f8123810488be6184b677edc09c780c078d09d977021675cef068d2d9d131a2bee80654d2ff2b7517659dc5e32548fea3d3785b834ec9219283961a13f128a48c0735b83c073ba2d15a98b39a73c12fb124967fbcb77a14b114ade6148d33cb0a72ed8667509e12af65663a010b8d6f47f5d41c606afac4251bf97eba6143e633dff4564c2bf1a4589b6f70fa7e7fe16844c1157e54a988f4e575ca48880c1a8f10414194dcb88c0fafee18f5a701bc08413770e3bf16c737e43fbf2d626e5418c0a79e368eaa42a4914e21b924ac70bd2bcbda501d920a4b677b109084f9cfbffaa92cd22f03819c5b6f48083bd8cd8538b19b4aad0bd8cf0870a7acb8eb26f2a7a9249df81a94b16a44a70c432b6ad3637244d1ac687feefc1b9f3803348e9ab72c29f9f2ff07e63a662ac14a498a2628f7d48f99513bc18a0ab5d548b5b1613b73e2fef86a01f7072dc601d5e6ccfbea0091a7cf0f747996eb4bf7a184b178c6923e0bef91894fbdf98c6da77c7084d0a1750618c0a126292d300ad136ebe06c396c97cf9c5d6fcc9020bf8293c24b19478f2a91b552fde3b9c8673986ef75111cfda7fde880a989111f56b6081dd21513033831d066ed328df5529424e1b698a24f58e51726cd71e5821c0131ea9494a06b1fdcb4c8c9f92211e2929aa73e4f1879a57a53105320dd770cb0c46ae7f69060cc4cb7fd841f758c7bf184a2fea51c38780fd331992fef2f79e1d61ef0a03726faee91d91ecb01fc605721ef2305a31d079900d418e9ad00f6a2a763e3aa1f39a4c7cf42ec0dcd25f56aad5a063a60fef01215fc142fb312fce2825ccca8a78d28ec7bf006bd6c7af80bb1b680c4b2ef358770377a60dbed16f384f422df86ddc72775b12ffcdbb8b3f3deef85f6bda0b6cae5506b96a20e3066419c133fbaf18f940a0e3fee9f6479152345b7c229619c0e25cdff749a757eb42cd52be3d900d3861a770c58a31ab0f753a675a0675adb96e9344e63608959b96bc6a5b0bde8c9a8f3d374ca025a1fbc2f1b7b4a7b3aba0caeb1d3a6870d69b173c5b03b4a59f9ec51b9017409438fe3d9c00e7dc59a50eedd8d190634723fe1073f48a7b4803dafc8246c304dfa72f9beeeaabb0cd5d571d9ab580b81bbcdf306509eb4a877ded81f5c0bae68d3f54f1c89163f3b47834741510083521e1c7e6465ecd2c45606b17622230e84f38e14828ff08c24d4cc3cff674761b5912764b0817bbc8e5ea6b51f8fc866f478823124b507b4ca5f4dbf8bdb7f84948fa6aef3dfcc020c8e7588224be884f6a6755d45bc5b0924a54a9806ee9bb6c12986630cc2ac0d78b9c34d32c31f8bcb223847299c1bd74bbf426c4338afa97a735d1b90130f372ae34b8f42cd13104e4b653d835a26ff070b6832f26ec9ac83788f2a5c7b32358a96b6c1dfd7fbf73091ea30f75808cdf372911f49411f1862a96292e9d4d31257d5ed6df34f525f3b8841d919441a5447327c80109ab077ac2f5436de99ee06a28af4c363f67d5e66fd6a27daed9d92d01dc562ff5aab5e1582ab3c896308112aa1639c00612913a5812c56fa62816fdb6191a884868831e287cd8405c3cac6e5bdbb9872f40ec42dacc46a227ddc5242bc6c7b286011bd1d3c42af0ffb564aa779bafe6e120a4b18e455bab7f2ba13e563020a80ba03229566905e99d669ad9d2b89a9f673643ff4f5ae52d0d233eaad69328db1b04bcfa3536d3bf6964ad1029c64eb89eaa8eb05b1571ed10c4cd6f33a1f1e2877f5d5761af80ccd8df8f900991ac3f419cb6390929dc8a7caec39d5f456ee1fba9de03fe90b15e87f908ee4e26ef9c578fc398526fce2b98daf7bb775b956409d983d07d5339274b0ee05a229a59d1254a4b94f8967918a6f1ce9f30f6b90c3d393848baf0d9800c1d4c9298f2757307df1f11ffaaf64e090862c569d7d72a0df360228ffc1690a349b500dc5348ade3b88bf119de9b77b5fa1ef8917e033971aaaa98dc0d11efb57119c85bba2fcc710a9845786ee22ef0cb061218982add4de1a5c98508eb89b68414ab5f464b6f5405ec34292242f356aa0ec4447aca8c7e6663bcf44fa531b6d639ec48c2708fbeb6815b39b4e05d96eb6845a138f7c8f6ed2c180e4c75f7220396f4c4bd54ab2a57985dada29f5d707624dac9945744fb3b5db0640db5c16be6283c57f14e6392acf3a3ca2f67b27fe0f5adf0400ef2d3362a12483ddd437a98e43bc044dd89acb7bc9a15822789af08505bdf185f7e935b55ad1698301b78771d816fe7605b7eeb6d99cdff58d58dd56d48b98f4baa01f4ef35008f236c39c12bc37c01b6657704ff4c17cd693a865d3b373ea8e79cb2cd0c28907ab5234e891c3a5480f77ceca88ce917ee50e2d034fe3b57c7a4e81e9e6713c53e03ee9498c4ca84d6645f8b1d95d028d7b4078759568e8dfd17dd2183ae7cb97217caa5a5bcc6bde6a310414d4b1afd4851165cc8536990a7de33f65c2ad8e351234cd18590b6066cf25782d0996fd743c28830920bf55414ffe3883120fcefcfe11bd298a32e4d77f59a2d8f34994c998df0e74164b87f794e5001f70f1bd78030814b1c321904524ca09abb4e6a30698a7b7d98c82dfc4173ed2e81cc611e8c4b6af9d1edf2e22efef1f9e403453495e3af4f0641742bbbb8443f5c6d8c3d11063a1f8bbea21f0fab1ed2204a53d42d523a34541a79726847e9b7ee1532f9372c48c77ecc3c17f94bcd9d06bd82fef8c350758c20a830c5ec95f19ce2d5d35c26ef654ec289693b0a520b26acae54e3021c178db1821e8ce03eae33edafc40caea38c9a3d2e0431b3f9292098ea8a53658ab3fe59814cb6298c01e8af0d47762172954001d6d7f93df6dffedd9c195d4f9494e5a77a88c74e89a7f9b844b5ace5433ed227046777eeea56378e0fa28f7b0bae1f5a81e4ce77f084a51a14e163b3fd5f30095338802c648bb00f134ea922722be8a49afcd313be3e31c950b44e86f6be4ebddf8facebcb3159f0a782a20018a302ed14135490fd236c3691b8f1f497dbc962722037a182e4849abf4dac57c5fbebed731271c90e6e467f16dea1f1edb3ee6fe32699cfadfb6d273993bab29109610af4ef05d59056ee772edd25937d663f62ee4987d78007130ee0cb172849187c2ddc7ee384f2db80dad4fb196b988e0e64047f17eb31895c3ad8e118a9df0bc9dca699ed534fc96993cd0894acef4e4816de19da25e14c03af3a03b8a23bbe43b9b21bb740baff1cc0fa3be334160bc8d7a913671c9a98e9fc400e918c33ae49d53fef534723a91618dc70a22ceb24f3fda6b707ade37c548e4d236fd6b86759c9403a903b7bce95a0f59db647f82a3c9ae5b7fe8da3694010077359bc72208c6813cebb3288eed3ce2b4d1a9def39a691cbb93ad2802a57df8b2a60ecfca3140218f31b2115bfce2c6e3aec489903ab5e41d07fa00c71ec88f2a24cb532444b05fbf2fb2d66383167d5c9e951b4edf91ac2205d71ba16cc0b5231dfb8cb0c4f256b87a8ebae4f62805d02680cc14f925327522d9f17ab52754945aa8614b895b8454afd60fe730361d6ad166c578a09aef3fd6d90ccb21f42192aaed80fa3496da898ec06967620446803ae57bc53014484dcf42caf0cd3f58fe410a6e8bc5319066df505653772051e5327d6c7558dff1cc5869b637fed71d461b089423a83926528a57ddea51c4fae51e05c7b1a19cefb41a473d9516ae862e1646143ce919d40b635ca2c7836df325e14698099e4b24883364483c9282b5a6439a21ec4681f9ad7e20c4e63adbc11513385a8ca6e563893b0c21313b0db3551b058ee5a7e800b5de917a48fc2100af50c2bbd7f414f6b30bbe77a2b603ad41394980436906a561044f3bbfdff31b0008ce2ebd1afb7d4308658836780305f272a69012111fc4beab95356c4fe34b0b919c24648280c0a3f1e933165ea40806678fa690f3d46d73953eeed9682e47f1853795c5b820952f395f2624948e63cc6a0c5347f2f3661507253510f5e8e798fba0fe29d447d10b2d250a20e7c05ef33f9e11a7d01c45484a93578738113e33fef608f248f6e40522f5da07123a77aa1dcb137524a453b78cd0f5dd21de5970481d063476a4ab4afa6883cab238a24be3b57511c1c72dba283583d105564e909c58f30d5d5fbcb3b4db2317b3e5e36df5574bf4d2b3cfed806cdc61fede507491937fc717ad4a5df3193fb9a5ba0379d1085bb8d8fd34c1ce511ee5396144f89950689f8f456d4a4c8d522c811a0c7e0abe7143f73968df539875843eca3c2cf729a75d5231f3f27529354f5b542bc7622f27e1a3d6919a165a0d50ae8fdb2c99e5fc07bd423f41bc94c5a5e92112a532c6777cdabd2b25d96760e5635c64d032ff7a547eaa22352b714485d742deab5468224017d41395230a3f7eb41632d70e6ca83c1e451656cbb0fd2e920fc26c67640812e683bd8194acfb3a17cae16f48b7762bccd68be6e19817e366e302830acab2533dab61c111a742605ddc624d017d27cf24233aad3e24ba561ef6b336e1b311b7254b81aa91cd61bda166f3b18e665433388b851ec81a538a1bab1b72944feda7665040b78282d0fc4bd6a48abe9b1a15bbf8d70d8ec71ac6263f525471e8598b18a3fd130617f4dbb8dadb5898a151fad008c879da63de19766c1d529d330be061ad255efb4916512ce2b9db046352b0e91b6a2428a35556c683786fb7ac430175c44d5601cf76d569e7fc8db9462307c0b92132c1c1a66c1b6b664a295b204c339db526692efdc4a306bc05dc19d9fc5fbadcdfe9b3a10454667f3ea96498be10520ec222d177cd9976da720dbacda36504b34c8e1c9ef436705f84f9448938c68849e0d36ede2f81a2ad04cdba13fc339aecd03816cd1523eae14911565fb150699d7cec60b5f2dd16552318c0c716c4d43886e95e3d68be66f85432b41313d98e0913c1c0eade7b04206e945fad886f5cb5099dcfa54a9ef901ed49172570af07ea5a0f923e876eae882dd501c0d32e84a4d3acb0c9eb5a970c6f88d46f8dfe085e7d1afb4974228022b6fa6395641032e34d2559dd2ec6c842146450b29fa9444af572b2624e191a1b0f0b2b26794615d6aa99d8171cba590c28fc8be8176b39f2a25f951230637d69aba4eb2b0291398f54b2615d274e30ee86d588ce9ec7c6aeda8b4059d592a8b416799c1a3aea3cfd115345d405dcff8c7965ef01fb99f6803a742efe0c3e9d4b17d252fb092e14044b43224bf3deeb9c790ce6c2ca22903a3e10954c8784c938b214796a9b9528f5625548ca5206b800266692e47af88db147a88983edde6bb13a47c56bde515bcebf68cfdbc693814f027f428ae2c1368cbf6f21867fc9e33faeba1183681474a2230519242e6fde654ed3c67eb09959a4d930849a79046a015de72efdf298c530e2013c1628c5a4f3804f836272fae25df8cb11a632c25f58eca3b73d8a9d3c7bd03ecb0de53c43be7bf66f3357a910fc8fc8f6c5bbac44e5a81a05e81bc24ef56c42079731357db0fc56bff14c379d56d3448f85230fff9ddc9ffcab4f59819e52366671b1bee5b838d6f5a88585a0e538c4897aee51a80d5bfe4067a364d9c7140b206a20f6f8ed720e6e3c26f5f22089863d83407ae2b1944a2f7e98a5e79659f63f42ecae57fbe94c9b2f283d55cf0d4ea2bff6ada4d8f9121738cda48cb4806e254d31bdbde9898d30c3fc166ec9310a0124e70f3f6ee791425d27128a6d563894ea020394524c795c0ab963b2537a525e315454812025c5a8158557ac5d27f5751c05a8f5d2c69b829d0273d5798f5101cd21acbf2da190f5d8026fa2fa641be6ea528c4ce41e9f84b9bd2dede3c91abdd2f238457fb69ea302842acd0754da16e4d9b9441547a1708e2351d1db952f93d8c1ee6d52fbab9e2b14d7c8d11402c608778f5127db5e82a7960723915201cfab9d0263e9ee2f8bd3703034ad3d029beb8863776104c321e0003137f6290124a6d9907a7e732ec73486997ad80b2a023e83bb6e2acb3fee4b129901d91f6b84616440213d4816a53967edc77a21650a14a302cd24505f5ea743164d648766a7a12d679079ab507c6e598d5bad5b064a8cbff5e00222c7a27bd434d3f8c622e5241592b0171bc9f11c39718fcd1bd463102c6ca15fffcda5202145d11a28dcbe8b217b0a1bf683eb3439c8742007cb0993b3260f1753de6a50036fe08c869e271070165a071179ccec381978f5a5247fbee5f04340fdf4d89b61e14900ecea1c2df11aee4b01821dccd280055ee25efcba0e970376f723426128f50f5306d4a08fd502e93546e56a325eee301285e4e633ca436e5b097210af4185e7b46352e64d4bebe24b9a9dc23989f4790342652deec209cb890c8dac72c72cbbc55c5e4febda551441800f520645b5636bbf46bbede274ebaaf48c87967441dafda251d6f2dedd004a7b383ffccf34b804c42c07e4a54eb7e0b93a264495c5e3451cf6b8b98e7c0e558220a84cfea13b77794476235cf62e2e3f57e9b15409d5d0a749bcad0919fc038ad08387d04bf6a818d5425eed6fa72c4fba3572d06917dc2ae496720648ded9577a96aefd72521860a56cbe8fa01100c030ac2a23a9e0cf67898cc12bef261264c02925143c02f590e42d5f4fb6f3bb0f0b0ce049803a74b2b106a8b46204c8c7dd7e56d404cd9b4455fe6dc0a6dc3698ac45fdd3d46781ad1e6c3dc04855742f5f9538c62e400098cadd64a97738316510a460b01179af7c616aa39060a47a8b16e794c4728c819841196dfa199afc999c859c4b25dbbf0601f3cc597c39dfacc94d271758a1fb4a9485a2ae6c16b0b8c254eab29b6a1d9f60af238daa8daaefb8696c961d0cd00cd457d66dc4e2d1a1d7914c8728a83291fa770041d10802ca79e0d3a038ac34feeed9812852c277aa6adebdf660fea53bb0c9bfc0ef5e0aabad2ace34fd528bc7607a5b64e92671d235ae905f1fb91d0904c6febaefebecc9ed74d3df4ef7aeba375d2449a725c4d20f309efe0b42ca788bddc6d12112ae76d983b8dd8149ac6bc75847e43b0d05b4715674a80bd03c12f6ef53ccb0b2e0b03d11eb86e27a0b042d118c5ff3c242277e9db085c5740c9e09d2dbecc20ca21411372f67e925a95309eaf2cb609c30da4f3dcc9c5475f545dbe9f16be1f0bf77e07d9fb97d7fb28c683e781332134574847558960ef24aea19cefe44025ae5556ffbb1a6287c79112b9c493c891902bb2ee7d91d547fcddff104a02f351722062de727b64378b3654043c9459c0a05fe799dca993bc8bf633d5f0b5f322180b2e073e85a24beaab124556f4d37334a3467fc3b2ba71cdafc5a86e397421b889e5fcfc03a74c2909ae48c7d5925d0036da0d3e190dc4da2c5393dacd950442437825bf8e2ddf72d392ec5944a467afb61d8c59b0ea937161d91efaf5187f6349c0353dae5cab376574558fde73e1d4cabb3a67cf61adb548c8f1971f312c5f558e4c9668409141c92ab5c52f5daf8802faf08668c1cbacbeef7048052a2e61f9029858b15556fc148114da0112b1fdc65f899852d48468e39d4d4fd1f85acb8ba8e3a70384b860c09707e7151c63d357bb5d058b4a6e9984c045b67ef12e65b88ab4b4247d644e69ad515ca8c95e59a254ae2da89c44c1f31403cd0813e3bb1fc5e02d5e488378d114a39fdc118f66f603dd52abb4661147fceb8166d5dfe508725d2c80aaf037ad7601b261f7a8059e2acffcc415b773013ca2e76861b6bb1f166ae101205bbaff63e6fa8d991286d7e82b9384cdbe80390824ddb260e06d8c5975caf6e0b46765b7197e3f248ef87bb926b4c8d0bff9dc3c715677aa5d6051ffac7ebf76510df845600f232c7a6eed5975d030adcfb2d1ea07221f3d3d176e92dcc0991f4d4cf64ba224ec935b928ddb2321af0c0b6636f8a731a138f3261b50c479915a138e94aa22f517224740d0799d4a40f14f2408aa438e48b3552b567ca9e1d656001ae93788f437a9c5f6d45cac5084517c91b38469e9998ff5cbef164feedbaf1ad40db3993981a9f760f22c87bedf5bbd7b3eb3839a53901610b76ce8b8dbaa2bedce2d3a72e8c78de217f66732058617d3b943e0dd7bf38d0e090f4863917a12cd96d4a7cb723c994619f55627789d420ab6ec3f3f0f978ca4d1c03d46ea6b53084678d073d7d52f0f662394f8fe3e69375d5983a8f683888f7aea003c468e047eed8caaa1c183a60d1e805ac1bf2cc607de6ac380f96a67b4450a83163fd14d1f4870e37fe08455084604b9e272f520d29ca6a6443cb8a8fc7d508b4fa3bbc3bf26022899f09edf4ed99a0495654eabda48a9901f3ee9d1723cb3decc34310278fbb6591c26f8b58659b9e6c8f0ede55ebb142ccdc60d311423e006211f87adf1dbf4779e6dc18fb5fdce447454df293c84a2942c745c274bc067052447c5db9213395af231aa110d250e1882058b2c74c94b7929321f98e4280ee970b72ca50480b645a88acd0279a72f329bad3be77653162644ebe45182966fe16c9905f7e126672784010132fd93649d41a6d98211d01575b172085d45a31ea0f98c23a7272001c052c2011a37878d91aed108a6934a06bcdc5f35acfc3cada5a2942f5b28a5a01d33ce0d1b2bc7d6d3514724fee004b53ee288f6dacd49a68fd9b280cb194254e5f61203115a9ca8b4f182d7dd9b94c10281ea426d5b2846bfe9303653e99cb5a50aba8ecf1184632c2fcd0e977a20ed052cb64e383986a5538e2458f55e75c5dbd0bab49c718a8fccdc2b3a150b8946412d68fb0c9ad7561fd3dd529cb5b12c563ba868ad0f4a33abed9d390342e234f8da124d8bcb7de419da47f5b9803902e2463d48013d55ba5449fd5dd0755b2a2c294de6414f3fd205d6e745e86090f250f0faf1e06129474c00f3c65ebeebb5845e94b8570fd8d9ec75c5a9f0784153199e7c5c5e9ff3ba1db82cdc6ce903c8f593f7b4203162ae848041471a278292b878315e06d29729fe5e94231cd64951541ae211425042a1c8d2aad13a9c3e0ae93b44e05d140cc01f9d1f0c1e40fa4b2ca7eb634ccf422b88df5d96029f89405555355950ccf7495476ab461039f20a05806f9de95bb67db6fe12bf5a8d98b36a05370e9c71e404f0334c549fda7163b0b41b3fb145025b208890ce15a276067191fa0ecbf244e332434109210c611b4efe345bf373f868fa315fd51a176b9b795d4b1043893a0fad45f23d6949c582640dd66dc85725045f64705d4eb568de0f6efca633b71a00d894e35a7656ac49ea607294ad92979eafa8b2dad67f422c9c8ee1f12b0d49f1c92ca0876567170a817a8ec644d955cac1fc8753b5317b7990a2127ae3052b6567eff4e88c39931e06676477c66092d9a69e754cdceab85055ea864ef04e312751a6d54a7781f032ea655f43995874b259c0945467226107e6251088c7e901e3f841a12622e63881f67af725f89805ea8ae0dd9e03d498c07a359c246f3da8c6518e69e6097ce36ca803cf2d43dfc95851cb9f892af322785d4b51412f46b1579cd9cda88eb1af5914a060c2797c4e57521532dbc74ac9921ef0bca3a727d0ddd0790e7d002e4878999768328ebd6cd95f0a931778910b9a8ba742dc77f08cc407ddb227851bf47e7ada4758277202ff921762f46fde711df1e12570ef32c1694258722d8110e5051db0ba1c3912cb410be90b54985aa492ec644aca380018171851cebab6a0c17ece389fe000134c7bcb53d12a83ab2fe1190c7351e2882a0c2a3c019173a5b08bf0eaee086d6f47fcc18dc6a06cf48f89e421c0314ab9651e305575348f5a0e2dd7ce7c9feaae193ecd251727b5c273755cd3d4ade4f69f652ab4cb54d295ce922803ea261e13a6061364eff6e09812d8054881b182e3f292cc50357494b1719859302b1c0ff962b346ab17827625107e186260a68a4182d76b2dc3fc14d8e962b2e446193736a760ebcc6f92b3ddd9ae972a65dcd46b64ee4972f8165601c3656bf7f3b92710e1c9c157c136032b4c748a0cb817de8b8fd4a277e6c7caae09c9e9deab80ea917abe0dd8910ac6146ba50b4bdff4901aa9bf4786f5ca0430298a9f433a18e96e181b69c485c74318a9792974d0cf1c109c750186505f41ac648f244070829631675215b91f995745b6b15d579fb2308df96904017a61dee72f02073e6e9c0934cc8200d630b64bcc35307d1fae5e465c333f99956380400e9ac43363d081fa44079cc6499da6b7ceec41da6a0e152cd35668b5edb02870d9eda78f17bdc48e3c362639498bb07651f64f8b38c075164164165051337a005888788a6c6f6029fa1aec05cdf38f8ad00953ac6b6b5bbf13b8142fd48ba988eff5d575c5962e217784acaf1a291389f53c783108371876fe3e94a505c02dc4ca482c8046d74bc9bea25aa139157b0c8baa9f2daba69df937ea2ab6032aaa56279a9ba31ded4cd7cf9d5df2ad985ae70d334b540a11b616d11542e83db803f33d3133bdd12ea5b8d1b8287746fe1bbea3a8369fd40e6d491e01c97206d5d94defaa13a5deddd165bb5abe90951b1fa9600f2d26b7c508e92b70c227c27404a60abaaaa067f39d47050bbc1a1d44dfb7e9b5da94a7529fa83acd8282fdab4583971408c2ef699bfaddb4d78f651881857e64ed8d2d67365db6af9f363213c23a4b705936950890b65e3a35a41df396687dd02fbdf8d17b40e924519ea71f35d1636ad92f9bd27cc6107e4ee0bd77e7ff0cb62e5df5e2a82b4b2839f9a0349d864cc34e4a8cf738778f73a3277044ae1c4f4ed31a3cf6853ae73da936df48a1efca02fbae65daf25f7c4158a8a9eca3f3b18bc22dd2608bb6aa7687a2e7ea3710a19ad3362a99a8569440f48ab6af5dc51bc7526b0873d228b18553cd08204a3f8f074e34dca4c45416ddd499a7ab39021e4c473f3a4a32ec4992e5d9d88426dd6b68ca259f74bf62da8e08405353844bccd0ca0e11ba111f6902bb90737c1680b311473629f7057a34819c73a81e9f9e31d62df572f768376c38f77c99a807c2b98127f56b1462261073fe0a0a92b7da9d596d09b3dad05c44a5977b82e46cd4a9b645b9c1796ac7cb283b50002ce3106d8913320abaf759ea4b22d22aea9e16d089d1b12e42fa6e363a3ebca3d3185c354f8debd44eca9ecbf761fd29add2be8ddd57dba158c747d6d842c26edf4dfd7100312dba212f30adc2f2a709dfbcf1bf545972302b51007c26f42d15419e1c6a14386f26f7a3d707f3c2bfa612f9e4d90bab8940ed31d4b35934c3698d7caa290fac3b9de81b5fd5c7969af2836c9f4814a44a40e6be852092802ae9a3dcce47f32d7543be20df6ab5bdee394ef780c01d55bac903531490257873a98e17ad3ec90e3356bd329dcf678a4870f26806775e4b054ea2851bf27b2af5f04b8c7856fcbf4dec96c627a4a195cf55b94f5e27fafba075f94cab9cc5ce2491202e2f092d1dd31a75efab65967969c5c69a5deab47ce094c9a815f4057e6d6e72bc6203816b2c45160312777e276dd5162ef2ec0d9bb8cd4b01078b520d2cdb39ca2b11893634272f22017e6c560644e2be5289cdfa731197d32e24e7ef292d31551270861ea25fe1c24a401da01d47256232e0de0191c9a4174a70852b8b819f6535464abe6c723557abbfb89f52fbc704e2555b2004ddfbdcfae82df72d8dc0ab7dd888f77fe7e2c72b310c4eeebe8821d88721e775bc07c54347ebcbf20ec3b0ef9bbd4bfb2ac57527d607c9d529988c16066bc74df7a989f53e12fb504bee3b6d70551548bb435b44478b338489c49a89e0184d402d42bbe03ef92058e1dfc600f93f8e020adcb7e1966b7aa077712197502246db435ed771ee49ae7775016cbfb893f0aae95ba5dba4603cd11fdeee6e8af64759a50f0fd72d21c72309abe541b35323060b3626593aa086f03ab4b381b5ce4746993dfbe276a6f981a513d0cd3c899a59c9327d5af7e8ea003feb8099166ddadbd34c4a1da5c8f8093749032fef149d64a3ca8fb8979735ed15ab61ed5ea9487ebae90ec1de20931cfd5152db77db84871650512d9f4aa50adea8216daa4760fb989be13280d7f6a284e8cd3baa181d6dba974e6931d7d05bf31ae88636b6bf3c05b196611dca3a4a36ddd2ef74c04aaf55ff9054950912875ef25014b676e0039557fd3126df994a54df42a6e73f544d830656e1b809a9c9a4aee84f2a86fbd1b3deadb9bd11caca7fd53ef4228a2a9504dec238c12275db68d3ee2019817796422c38b6035b74d563cfbcb80af34de553f610046cc0fad2c1fbe46e4117b907664b7edba055c368a2c2768a10f7b81e4b40cc7824cc5df0a7dfb3fcecc4cfeaf50ed81dc2a4ae0a44c3e4fedfe96df8e1502892a0e78c9430ee06470673da4cfac0161a53e8431626b9ecd03ec6835d3674cb54cd0efbee60da71c90bb0a334250722d691b50e67b9ed935ddb8a4dcdd7aaa7fe11788af3e9abee0dddb6667e84818cb05ab2ecb2a109943a1cb5b941ffb3e1f8ad6c52a9a442ce48b6dc58bdf8560c506887f1e0c2f8b03ca43f86c487b91f6953640a8f37892d0511e3a61a47dfa46febc302d6b80b52b30e44044ed7c307fcdf9979042bc4d9f0e199f69c21f714882c57c6dcbda101910df076b86983903c521d2cfb978b195e7f0f59d4ec01163cb3e65a7345ec3381da12397c079ab7fc6d9884f651a0effb1d960b2fa0f5da56b12e40703550a942147d6e098a1077c6f7dbfb03237e6a7f529764dc682926ea2459b3c722775c30322aa5085f36595e8addf09322312e0c923a010527cc8ead2fad15ac47fa23a992479edd2d263f94de66b6fcd02f2a43f9eed8cca0b4397161f8be3fffc092188b834a2fc5cfc0a6c8e6e267ef2011d339bf5357821477791e73583c146361fe96ea0cad979f164c96dc3d2bd2c65e10b78fd04f652cbe416c7568c236720022a2ffeb369ec944414b0f83d42fe643e861f33309d70409232d1a04da24ca8320d6b28bb16258ff474df19af48ea39e6b41a9089ae014f2a7ab4eeb2dc29e51f65edc49c82d94a5cd2266e665263af9ed9230cf1807b050e2b32f8fe9968c5e22c094f1f2c8e86e17fd3f7b16d733ffa69863abb287f662c54348c9c61db5b89c2fc54ba05db5e5e77df3337e76f2e39d183572d3634522131d34efc7157c81934a6006e9b229f1ea29c43220a6412d73ed33d48ed9306c832ecdc4cc311ed645ea969046064345aae8c4383b51f9a17a0f4df11fafc9e33b69fa95516e1e846a85e9a9dc3192aeb09cc715e97d81247f67c999ca62d8cb8efa9e6828ba9ed64b40e459fa4fea8d15ab4d44fd65b00c413f93fd1dd34a51216d218ee5f4ae7c0d2d18f9fc9d1336afbdd9672cac22c799aa97b6544a227fde723eb0a83f71b3446e8b2903f67d79845bcd9cd23ae6403a4cbf1dc269d53381fe1cd32fe80988c6d04f451f364251eabef0637ea14d83b605f7740474c96666fb53f450bccbbd5b2c722cdf7242f88650a5d994b21789ed87d40dfa6b95c76983984c86468424e7c876a3b3ba48175056e5cecaa3728fbff6384f42243abb2b8ee098507233b2d09aa36d3e23bd128a19997898603522a7eebbf853f4f41837fc39a1fcb4c68fa8d086e26c8b5d910cad7d5bcb48cc375c57c025486a801409487fbc0c2edc57f610f828cd8620878ffd73568170e5ba84edb7498753081827db9a9dc494485bedd250ce9695a6c2368a2baf4040a7f9bcec8ec499c0d1e78dd002159ad90bb83712370f4ad13f7dad0a3f3e0b4ebfedb6b39b7644fdfde4a930c686511195104b2d2404ec169d600952717061e74db0ca848b9c723e05de9020e37c9691ac77f7c5de1d1ecc2d75e04ee9cc42f2debe11a861a2b193d22884b6ed809b55bc98e69e81ad75b5b8e594a08a5642945e19965d4384ea2fdcca762e6ebf12425c80edba9ee2badb67fb11da1e90ebde242fe58c3dce66303cbb153c9031cbb1c0a98752242980ec85f11576c02b708fce03212f2f7394a95c2ae4e76d149ab21bed295c0a1deb589eab004e026254587104ba4bbc059628c1f3d12ccb85542de6e94e09169ddc9ee5b5a0c2f19cbb64fc8f1b65004cc83811009c0b5a9bbaec1fb9bcf7e99d756ab0a4c38284cf2d9970526042fdaa6a295b13566711da3c32793dec747da5e276148958a948b87ceb211b7b630c0ae751da83fa54a05666b44c6ce95ae00fc74913ff6ac97eb8d45a3e88f41740971235cc3af17a432815d2d3d72f058442f34287f4eca20c165f0ed3596983d8e269e5f4b96765bb287f093e01f789cee84917b9d43dfe3571f9d2fccf439057c6d9e1ce2b2727721ab4ad56d8dfe6628cee664aa69b50316fabb316d7ed33708ad90b8a308cdb9c3dc689b32f55d11de29e5729395696b092441969c3b8b5129cb1e55374e006001e84ec1e3cd10c3ce53c92e1353b02132b8de514470f6d959e2627392c913c5dee6b0bef1a4312f245f2a728057546be528cbe0989044ed5696a9f9d117b7374e862b8dd0d13a857c64c8874cff213d832cb396909975180ea1324b43a54e79109860b49ec1339b6f38e5354631aa3bbc056cfa8e851b566c871d6fbb1dc09e41e7a0d1433be262140e279ca83c8953ac2d42b4265b4906292ccee6754b91d275ce5347639f2dc0ca2a7a41b603640121de79a9881ac8e89b3a01857ed5c27ad9e8bb1989031ee55a2f0b8620f3b8f07cb7515bac2fdb180670d0b78839cb14c14afee8224051a75428d9db9f3fed74c6754c87473996978c0064df8c5038edb93b3de54942f63da218c98f01094bb1a0a51cbb6ef4c65f1e0c65a044c6ae33edea1294b662a59ca77e191976714a3c26633ac6705aaec4f77ed4d2a924c6b4beb6e1c152ebc1514564f277eec838d26619c6b3ad96b1450cfb7595011a8f08981862272cfe5d055636483ae504be4943ba57887d6c9535c8fed7cb29b9875f28a1a0cd851f5944f7b7d0c8f500e1531864d34300323c85dfe090eb5e34938096204ca3820012d5702b2367788bd90b81133870c9d512a2c8ad35bf9bb1155103f84c10e4e6d74374fa3464be2f5ecd4a103d8ca50705cfbd735a7a5981b8e6f1eababec9d141f156f905fe10d323842d6837aef9cd26af98952ab0787d758558c77389906c4f7295ee79c90ac35d37b787fa45ac12546eb492d6e8d4109ee6646bd7d74133506622a654ae0254b7b0b6ca7650d621eb7b6c93c65dc1bfe6ad565cb0ace154f90942b9b0769e023914ac4f435fb53a7feecb7a1856d257a0ee134988e00023c3f51e53634fcde9186ecaf717c324c63f51fd0537bd1cdeb1efea453ad21a6d694607ce57e07183c166a2100c56eb471a92896531bd15515ac1ca8d3f8c0b71a40445c58561bcf1786f5990672ca5e6523944d9b479db7d3929ebcb50f37c8d07cab3cbdbbeebe38090011c162b0cd8b8572e2d320e1292e70c6f69259843f12c5b39a9d7f9e00fe18f72933ebedc6bde8075ecd89cbf94c6959617d13ab850526dc30cc5055a20d3b3406722bc8a5720388f684974eca5b49b02451c433b70331d74dcbd0780cbb94abf595b6c49b636dedea9abad87d9ef62cfcf66be7a4d2e0289800346ea6728af21b38540bfd0dd541cde232b0c8551552c79b55a624da6447fcd4cffd98cc58afc0b5883882b5bae2fa0147c98f93b5b49c864cb1554c646e35f51918a5c1f52159d5eeced29808bc639b6bb872d5c5e0f08cd39a28a51ec813cb1c88f133696e1f94e5fdc07ef25df9b0eed31c6a2b95c314481e3c9dac9d98bc5b29267eeecbbb2607488bb8f540858b3a5860d506b1924ae6f6432b4fb24619199043a00c1dbd547560bedef6cc4023833057897a2fab7d128f549450205885565132916a15981f5116e8ee7e3a0581b78e3b55d526ee1506cfab43a434628bc14e9579ee599ec20dd84bac09c296a6234ad8760d0412a0e09627c1e18631cda185ac4c1f84d960451c9b576c45bac26b180f3ed9d19cb6ca53d580b185e99c21b6612312a32bc6f0904b176368b7cf0764e778c313baf12b7a1850e21c90d8ea7c889d06b8b885b88b4c437e562c3e0faa45c1ca7fa2b3b9c18aa4461e5c0e5628c8088c5edaf0e4f4fb7b298ca2e76549a122101a7eb19f01db8a5418426627f15eb20a7620e8231bce7e99aaaf4245e31b11703bd901c357a1c16057bbb508e94e0d9e5014bb836392f9b3fe521436865f88384f676956e6dc2c7e4003dca5dad2152b4531b1adb5ede0ac25aa9bd73377bf65af7e95926e68d7afd5147eb1ef1ab63d22dc70e12811d872557269c63c509048c22e56a71a6e5e1c925bd200becac887bcf452134e620e1d24c925057291f1bca7b613b38bbad02608881d89f66a0c2ae00fa0f5347d4dd37458c086eb598fcd3a4a79dcf6128455d5b324e95c6c6c0f9f495004bc314156c0b3e60da7887e6b02eae310388beba2e3317e2d10672f1cca6a4a53768600b69f40a1bb0597df96cc744ef198a4ad366ea7d43c40aa31bbc78cd269e2badbf8c54eac037355cd6fd275fc93fa31623fb684926c566ad8bbee8eaac60081695a8e911c8a4183c8330310ddb5b0375d1b961b4d11d1564c19618a87287af33843d1a8588ea263e7bdb302ea7369a0b60a4086b525d9e594d1d120210117f358390187b2ec0a05447f7b924fc21dd2119ead42c7554879d842bc4af491b6d4cd75750b4d3fd5a3ac2afa19a82a0dbcaa9c437ccd9fcc1389a8f26182150ab5fcc40b729b85427d2d77dc321ec835c6c16143a230c67940f9d25dc57c000c77b9ff06b8ab28d2cd8cb74192eb87ad9df4e51b469f5506b162a598fc39fa72aa4cb1fefe14c481377c5012e99de5478d1094711b67a8590f386335b7aba78c26a7c0a57a243e93a89e774ba8eb5e5da442430b933c177419b34068198be786d478d9cebdfe5bb0a2f65b27b79730f780c4f9ded4fb2a4a298a4c4c67323c0df30f4eee65aad57598ef739296037d278828dacd0a5792e028baf8fdcee8d2dc2bb88dce7758c012e768825dff1a303312ecd3520710a8f613851981d66b1c23a6649d13247726c259c2da6979721584a56650034e02ed44c66b3ecb057d32278eb9054a7a8d83eae12402856d9e01b67b3e3b7ad1ce7a5b5320c69d7e26b8ad026a1cb77f62dbd88571a1c1f9178dc29cb0c6158fe24c0ec5d20a551595709025f891139799f086c81ab3e547fbdc4c5c499986538b9b17803dd5a0d0e78a52c87c532bbc4c5e9c57dbe0484eed01a02b08be6eab0b28dcd04507e8ae7280b71053d57b1bd1789015465cf1098abee12fa38515c2a532c3aac709ffba1f91ac84a69a3a5229c8f0d78231773fee2854f02018a232da2e7d4762682587ef80a2f33f296416b2e04ee0ea8da02a5da76e7f3b7e4cd8036ad223563c2627d23bd0665fddee12aa8f8622e6938112d02d27379fc30849e726500a9efc48e96ac0f83096ae7c66ed49bc3b218a54a3ecb32d8656a4f768c8a698d97e57357d6496ef0831d624f20832e6f2de2f459dfc775cec33d9237164f2aeb30a533540440df79694888ff1e690a466a1884fdb12257458bf84af4814e506706e3892514e6cfb252ab3e1f474b0a7b31238fbe567189b6cb8c0504b81bdd47edea56b1fa998516123ba3ba89e276e7d90419afe8e3f52df0a4d4b5fd1e70ded3ef0dcc746680d1078f8c43066676e93dc014c3586357cfc58ab3920ac258223f84ee3aca08b917b09d07d5530916d33b544055450c67b8ad5762df39531c16f4110e01b8c945facfe958062bee7189866aaa8a4cc1a5e50edc01a6ed2f07a6a71066316c883a1f96c6a54ccc2cfc8d21b1e4a5a87cc1c6bdb3adba06fcf2b24c79de87a372f204d270b00b5ab427b5e5d3e76c6f038c395b10d6c334995b95f37d4f9dbde51bf75cb8b4c2458c67fc5b454d97de14d51246410ae66d4af9ed30cbe986d176104bd09c8ae2d27b51b7a129800ff53022e07d63e8c378e830322582eef5b1aa79bd791cb1bb5c4e78225bf9a7eaf34777f6d571b52e9d54cd42ad6dec1b1da03614409082f0146357a3f4ea180a71bf50edf86ad5ce4c36c92692aa50b6233ef74399e6ddc1cae3c3ae48a73da8f74f9189af760364945714248717bcfdf95144f012dbfff9ce3514399eab7e2ec60503769b56ace45a5de5642f41ed1232684ea9090d9473b4dcfb823abc9e5b826fdcaa63522161b85fc7a7d760601b44b03aa66727a5a30d03a4a074bb421014a09cb43e3794079fd9ede5c20955a5e46dfbee4f5ed93b1fae472a025ab878f877ba2a546c7882a8412a2129f9d0a10b87acdb00ee90b03a0e186cb4a52f66d5f348d2396506c235b922da594322599028a074707bb078f89b2cdbb63c0fbac9fe8babb5f7fb66658ff769e1bcf955bc4799cd09291d125c09d50d47e6883e28b703bbe4a34c03986c0ee14fe22eee2df3373923b828107483e921ba0f7ac0b5fc87d4afa051fc6059023696f60bba7848b0b9f88dfba4e111093f1a4082845248931320292ff8c2010334479818717001dc1c003f41ec90dd0110c0d341f490280decb0d49028088aea4f09e080813d1951fa22b29c87f1cd173ec3a90715002184ca9411555b48002888160d10d5f5ea0830e5d9c562006102c853732027aafa47b4458c2393a58910dea46c87d80c96c716127e77744eee43e20a4088b991bb90fb013ce754417fef30d3a41c395dc141abf2372bbf71e5f48d1932b3f808023a51bbf835ce7c2f50fb0134b6efc4e0417cac801a1c265843048c01ea8dc9ccbb11e92dc2944fc448a9e00654635b0c062440646f0df14a30f64e88109d290109084f06234b40293b9538c46088384510b08385272c1889d5802c4df89e0c667e658942e77e8dd292f3019a08c39227e221fd061072a8a9c313202a29cd1919111107f477423d771a7223042982e6922a0d2020b1fd018499306884d605d6fe982ea30fe9b34c6f7a79b8d51c2edf50d7187db92118aa9ecde82bdbf5cbe7f269f4af93edfdd6d700e99c36d350e0e84223f4e79619ba9fcec829173bc5b42bf6294135c9877d47e61df7d501fffe53ef5e3e7740f7c1c9ce39987dad6a13ab475e8c78f367818c386f4cbb1284b264b95f6fe97633c88b939fda2f47126cee48438160587cbb12837dc56bf28bc19330ff375222adb261b9f211da1b295e29d9fffd597e221519041f2216ff23dd500f92dfff177a8ba054d1ef3f96703e633bd2e1cbd50c4e80e413d0b4557a80bc10ece48735960262a4c4c70ebb350742bffc8b81ea82ba58c314208ddbdbbdfbb31c5e3f1405dd44471fc31c5037599793ad486f3e3a70b5c107d21a2dbb90fdac97ffd92a34abb1c8ba2e4c28ffdb106f061385e25c46f91f169a0a8e3c6f8ef8b54e6c7fc345059b2fe09fcd9b3e5e3a013878ef941ba87633c28ddf9152802c79dcf29de66d3b3a275c59dfef35993cd785265cb057cb590bc5c7fcd3df0f8cb6d1f956938b14fee5340bfb3751354d59eb135ea777757fdc8819ac522e2f66b0f28d21286062d37b8c10b323100318b0adbbd6c6c872db77fc787b8fcb8d80e56ae92cab60bdb2f80ca160bdbafd55c8e21952006e50c2721850c2e5c9ab2609102c4a9ca9fdaf19e61fb80fda22c55b05ffcadeee99e5967967d3635cbaab35fdabf540fcf72a1f6a89f43defcbcc66ef4957399eba43353962a0853aeff7e093de92e47bdd8c43a592a6c47e318ddb24e2d54b64e7c61c26a14dea86c99da87317c20f3c4142d53a880b1a8980f4b311f9874136058f8efbd4a1292d3adac42e23f7c310148901fb238162c1eab20512d880a4610e86101e2c9bb54e89e16fc13aa8c71e197d03e118805b7e3a615b0172c3bddd3e1f88046467e39e5c31aa57cf092109b3132ba43ab1bdf870c6937ae707b8890026e33cffb21e9ea1e38847f48feb8801008420ab88f0145b739e69d97e2d1f9a778bcf7ce5f8ee0c627220109884c22b4e8c6232ef30ee5bafea0c975feec3e9cc3f9d191e072ff3f9779a7ebe7fe1ffde37d7f0e14a61b37e6d80f31dcb8c56bdf1968d0bc34bcc31f195074c46d23dee1362a725f9644651b03aea995b522bfc131284a31285a623a78b1c1f9f1deff75123ae420e6f20a01f13574aea8dfd3c2df2b7a6f0704dc5d7b5b7c87cf1b1a61a05676ce4688c80de237a0374721a43c381a9453024e88c8ed239be80f46f98ec3a3dfdfb9f841fe505ef9d3af4b65bb84ad364d2714551bcb458808bf0c546e77e8d01dfa6b5b7def5b08b7be7b039ec0f2af5e3e53e4e2c617dabcf6289baf9a66f336a1f95d8a7bdfaa57ed00623923f6ab4cf1107a696ebfd04b73e3737d9baff9fad566abe91aee996e90d003b19cfd234540963b72f32aeee9ff74083f5cb772df2fbf597db675454997724253565c12fbf627f7d7c84b037405beb55b10d7f1c87d01d2c4f5cf9eecfb07711f95b5af3a625b47f88fd8f757c17d546eab514de2ef0f99046f66123afe72df3b973dd9feee1fba3fe4d6797fc4e16bce72add66be7b2e3ca792806e2160997bbedb20796d502726790907f071b6e42fe9de43aeaa91dda6b5f5fe33e4ad4c34d680a8a4b423fa3f4b3fe2394234241d9610827371c110324a03f72c4bacefb23946b118945b1e30edf3773d594c04a8fa73e4fed50a56ad7efeaf7e651cc2ffadec5a9dff747df9baf371ba71e50a482a42262a040892b526401c4ac73f37463719d76e9df6c1dbca8ff71a2bbe2589b10ede2d8bc8ab3d6614bd9d786b335d46c945ff5b9fe7b48ffbdea7bca07acaf5ed47325ba2f0999456f9e6462f74912ff888cf25d87be2c7fcb7d92d03f329f4e2e09053a22d9752217aff447eed97579e3a7d25cf53d96acf458b2d263c94abff8c2a6ca2e1d337667f46d4d297df5eb31c570fd1f5327b90f07dcdbcbf5273e6a71fddba9b8feaf7b32b8fe9064476c7f2744bbb45f6e996212180c53d098e007295a18f962028f4265844d3459bafe3b59cde558132665fa5d5d00f77e47a13fc85fafeee72a62df8fe059da77524a4e8846bf6d18f5e80bf09e79fb611e1d47f6e5a201f0a721d41eb0c492ebba1c5382caad3672c2a0d8452efee35caac2e025ba78b1405421b0ce566eced4a7b22ccbb823daa73a2037725aad5c92ec8fa05059f6a80c95a1b2f8831248b1332a2c2a34aa2455920a8d0a8d0a8b2a29a68492950cd50319acbfeb8aed4a78edb40ef80d889fd2ba1cdbea97bf175e1aa3b729aa4f6dbed51e7f2d6c80e5341abfc6999ce9a98c8f61a4a48994a42d5e9ac47cd13d1d8f54dbd195947be91eface5ded612cc6b118939b7a2df5c397b88ec5b9977ef94c5930b673a5ec616ac7901e3cbfc7bbf46db6be33b5a386631ea1d3fe3d09aef65e3ec5f952f76247b71fe5c3de27f4509b7b49554ee8ddf8a8cdbdf0e317630d25c1a51ce7ded42f8faa26ac52f72c758f97b8846e5165e119bcd139aa7cb0f1fdc23ba5e45ae80bdf8968b57680c1ba7d07a8da41870e2a208c9123a203e80a7401665bffaed70e95f4b97f3d4b69a094d21a9c7129d74d8ebef724e5e27f7bcd8942cd4963a09452fa96e9d26f557129d70981bde45a2cfbaf772181040aaaca49163bc2ca555d8e7151ba9c4ac1fc3739cbead7abd9123b8209c909815d150a544e624854b9a8cb312490926a97a4abb4a47a623986c4925817252431a52fd9738d3e22120a94b96f53b2b83d6486b0077a5f4f93a60fc03132a4f499636448695cc22e26c625a96138c060aa26ad160ca6baa1b94879efbdf7ded3b830e122c3b536b01c2be2728c4b92db51fe8e713172cb70627180bf5b70fb6d6bb99de6a45a271b2fc78ad0c2354c0284f045b85d0c4a51ece0775903788b1b79a31f37b8452c66802867c44e2ce9b22bc2ad8f53146027960089703b0aa79d2af46e03d1a47dfcfe0e7a9ff590c73c429c467b14aa722068dda1966b5bb669d9d71ab58c99a728fb015f7b4ef9c85eab9f6dda7bea07fdf7afb9c73c2f4d0bf40a391aa3a1275f97a9dc3e36df51547dd7eb155dd4967aba15dd5aabb6e1d0cf3ef5d5a6c8edb4e6af81e14855f955d65af4b26c1322ba427e2b100dc2f9313ffeacffd3b366fe9835937ecd501c0ffad9674c177ed0bb71d332140ac505c5efe0b3508442904401fee43af91a97f1cd344e6e369b370ccc243ca0239b87819904f90fe8c7b54d88e8427f9b8d81a0d0f623e382520f3f55834dbdcbd4570ea73efc148753b91ff4e5d347fd0ca274fea093665c27b74e7b9c4c6e3819c7237ea51284fa2a5fdbb4c8a37eadef9f71ef28a05e8bfceebba8d6a85041e25344d1fc6e5f855a6f2c55f045b8bef99d7332734236efe9ceed8895221930b9833bb7a39f1b9f71e77c90e3e4860fd6c8f8effd8fd7b8ddba4375c4f2ff34bfc318a7eac8f247faaae10d7639db2f11ae73a9aa186c0b71391644d36da4cb312b59eeeb720c08323e868c98b95dd1960e04352c71f99f2a06eb445c8eb10087fb942ec7b084b903b81cc362e4a57aa09a10738554b8fc3d506674b842446a6e3734068b1694db0d518152c7dc6e28863104b06288dbb140c510978d8c2e739acb7c8d20b93189eb4534b97f638c8832ee0bbd2d7e7d0fb92ea64509fe38dc707ec4246effdb82de772dd0f04fa1f03f8a5aa0b174fd3b2671fb4707b5bfa778bc8f911baab708a53bd4d7b9aebf85f7d7b7bf43f5f217c5d7613cff6ac3b56ff49b3afdde1eedaf4fff7d8f89faba75a80fcabed66f4dd3fea7bbce9a6f1c1fa84b39219b9a28b37eec31930c9f8435fd3f2e9f3e3ce33ecdb691156cde880d5111900ddd86c0aed0bb2d0c75ed1dbc6b7463322e0c6a4654a0214d9a3469806cbe522a6b845e1a9be707bd26b5f153aa474dfc8e3e3faccfa91eef2b7db466abd9188c5b5babd9f806b7ba56b3f118b746ad66d3be37bf36db1133b1306f0b7d373064a65447acf69c521d598d9faef695a3bf07fbbd19801aed37d8ada8adb5d4bb5fd46ba97747fd90ecfaa25edb86f80fc91f17b82d04028a5327a0fea7df734b8ebb906b1179455aa3a8a452a9544afbfaa9542a957a76a5ced45a6bfd1bd64cadb5d667572523cbb22cfb1bd64c966559f6eccac09873ce293ffe9c737ac1dddddc1d9927c277ceb1a39f728e1e7c5d959999d9c67d631e1b8d796cfe86b581adf9d46b5fdfdac0a2e65b1b58f93636af718ef7369fe21c7c6dfe6d2e1b2ec8ba8d0ff952ceef7ff47d3e7d76673a5b7857d2a7dcdfc905d18f93739f52bebbbbbb10d1f7b735c3f6db6c38fe1b8e7f6f73f6744a57f0a1c275e79877e8ff34a51fe44ffd870c6957480177485e7f5fa155b894ee38f77cdbdecf8756bef982da15f2e0a514ea23f2664a749f9017c18e684ea199264d9a33f7f97d5cf7baad726a07fd16ec15028d8adcae5f689e2992e6b64083e0fb4bad9beb17a2472f14b9435a989785a2fbe4dc3a7ef9cc0df5457142efcc85cfe1f878a91ddd7bf9beb5d017f24ebf94cf80a223eee31d06fca3bd75d0bb7be367a148c8a5905f1804af3f17c4df1cd328fdca009a6abfb05dc3b11eb4dc0ede7e0c7ca1e5a0c2ee91dafb77455f1fb5758f07eabd3e66f7cdf95d6d7be681411ff4f9e9b772fac59fd9bc5b39b583a5cafed6825b87828ec3c36ff619f7ccc3282e887e9612a2577ec62dbb03ebdf6f0b199d1fe594304619611777973fe79c51a5e305a14fd83d90a77c1865740823f4214c78ef41789b5542fa65fbd5fdb03ff2505f08add6f585ffb8e7fc9e7b6c87ceacea1e0ba0a0024593d6d3165904a5a4aa57bf6cbf607f4f11ed177c2914e467436d37b8bdb77239d67474ede558145f6e654b03cbb1289e5c8e4531c6ed5ab1289ea815f57d4349515a8d851266f554465603f305982cee7b4bdf7bed3594440d4208a3b4c103d5e69c9366355a5035140a85aa1a0a4c2a954ad5d8482a549ab5d6aa56ab2c58dacdcdcd0d8b464d1836b41a356ad4b0d1624a7343f3c0030f3cb881a3329293daf15ecee7e47c90aa00d07c7bac189833b1279880a0bd4dcba1f2f74d18594861d4c4448ccd142ff4402d0f5e54414a810cc2b822072898c4cc393d30813f21c5152994e841abc186144ba478d24316af025c8e81a9726b5c8e8161523987bcfc912dab95f3aee71c7ef9675b8b5ffe7463f1cb7fca4d637eb97bdfd7e3735aacc70911bd6ebacfbb7f16606d564ff59e4d64a457847950b748e600e6e987b74a4d84370009b0ec1582089c63b2b531c1841baad54fad262cc084d58d79e34623f11ed550df1a1f36a156a2ab7a1c38fad5366034be7b7dcbbfa3adef347fc83972de3f720e9c1b3aae3fac8377f5d5371c52ace3c8d9de11f3f4e36cefc8f6607823f47bd0dfda1e101b5cf7aac1d1e0589cdce2e6c6889318f65140113c30096106962e4400f5bf32ec83002331a2b07225055ac200f5ff2ca07b1ed2ea7f7cb5a53e6eaa6da86fa5aea38a62f976cd3362626202c232b29e82c64c2a32b6bdf48be931bdf7b624e9228b145c18a560067c06cb16288c809881490b8781022b44d040850c1839b0172b4f189d01028cd111af1fb74612b9724378c02b4474ebfb80b7725390bc51100e48d323f398de7befb1d24ff744186e900327665470a60b194527b0210645bc3062424a4a810632bed081872ca29891001ac28841c5891562740142ead77b4b966d18758f898190dceee1707bdeca3fed1ff8d3edf108fe7373e6719e9883038deba9eb461f709c42bf9e17ee29f5abff068d4da13b1890a7db4830e8ec53b4040c1a82f8618905606c01d4ff90b08f560323726003273a90220650ff5bc23e45398c99411725535e80a609a0fed7847d34a0431429965802c413470021f5129cc6c90172ebc06f2875e2fb0f16b69cb03101517bdd612abb2ae7e8cb1a7bf4b87920276ddd0d52c83a10049e0be12b7620dcf81a100ec531bd6e04e21146c87534fe7641177e85fcbaa63916f3bcb73ce5ebb12eb41a85b73921a20b617c20fd8aef66a4092a77fde109219e18823b009b0283b5a8b45a2160095302343bc8420c2b9cc9dba119101e1e110426b1807d3a4beb442328007c5cae8d88ebab0a8d756d57ba933aebeeac3b897bf99dd44ded0493601698c4a3e8beec5fd683857d2c8c5d1a0637beb9715bdb2d377ed38dbf71ddebcbfd1b97b49a449fa85f10c975e2bfec6bd2d436ced159a6526ddf7940a69bba76bab19f6e5432533bb89fa91df3b3adb76dd3d249aa278b2a63834b98d0e0686c389c0b5c0697c16570195c0697019f7cd943fd7bbfd349ef81f07073d508a1460dd6795fe3b7cdf935c27b0ac27d1f828dfbdeb5c1f736fa8f07cb977e26297dc87af8b566d192929260cffba0bba9957a89cb9225c124cab920e45836beb7740f545a6ab9d10c4a51412488a46ab2f573fe03980493ba27001f43f8f8f0838f0f21ccf90e4218000821bc594108e1cd0a5208e1e37cd749ac8710d2c89c4cf7701fdfcbb88feb5b0fbb876e0108e16645034a814810a9b5dcacb8f8aecdcfb44eec2ffdf2d24b9d0529fed6480000c0cb5427a982b0ef41f8ae936e7cd7499dd44dedd43d207cfc7e0aa2b23637ff1bd196e43e415c27be13079340e05cc8f9ae933ef88ecbe81668e9a4ced25a6a7e1c001bdf0fb69c8db54d71fd8d8dfbb50d79746eddb7b6ae3564de8e9d86de657127f42bfecd86b3e26e7571d00c08fd3a8a39b1a4aa4245452c0663c4624026c644193126c8a8d034d174b9892f973fa77b9c89180ccca050b9eb2be34fde04cdbc0917c3c494b3f35733d8a7fb5e997ea982b0d396f1320e39fa9e99fef7c52bf3cabc2f9e196824bd54559818134db41feab32ccbb2eeb49b24b9a5c3e10e2abbbaa774fb7df3c7548a436fafe15f0148bf20131a2cfd0abcf7eeefce3388730f8129f4ab8100494185157a95c4a66652f7d02c5bbae75d46a910c475fae1fbcc858baa99f6ae734417c5a9d0af06a2ca62bbb7a4e325ee0373afb0254bde8da91d38fc9fc3ee8efa3935d8f7d9e380d1cbba2a26db51f97c21eb4a58099761b0a46281e5e75bbb2e51d9d53cf9467fbf3c65c2bb3da77623c7067b53999c3b10beef87f2082a9c9adc6ad3c1db09d1aef69e9444aedf17e1bf0dc91be1bdc38730c8e2a5894325fd7ab05fb3d73c0797a8be74e5a60184af32633b9b0b1f4277b7e11cfe33cea91ac3767fe7fcdfe99ef9ba33fe9cf3638c314ad819af8c08c1c408990c6b592d77f77785189605638c483c293bb5436503dbb5ae6c754f47735cdd23e56bf279cbb161cef7e6935350091feaa50c9a3f391c1fb3b94829a594524a699665b0236acc89af9281edfe5d0c736cb0ddfd64e005c91dc0130ebedc9dcbb125902e0fd7c10c2c0815720d220086750b5476c18e66d8cede18bf655991045575e60601a83df8720fd517f63d935059d7fdd977d0d1095476714a95031bcd75fdef9d8b5347a76e7777f7e6ee6e0ee2b1333fa646e69c73ce3979b253c74ef479eb74dca6bc62c2a2be632fb4e976d0041e1086caae0ea6fddce6967ad6138bfa4ca3a9ede53a3d67cdb953fb7e8dd32ea5b03662d584955b0fc975bc828118fe71ca293d321508ec6d4260f703b0cb5cd07c3a37fa75eb5cb77ec7ba35e7d66f758fea6bad5f9feae6595bf797f53fceda54ff8488ee4ac8efea39b563c5e9e85709db3685460da76dae7e3573f70cbbcccdfff16afbc57cd35007ef75bb4318e30e6dae92b0cc75acfb564858e6e42a06963fd67434d59a57888a19478eb9a6b473e1f24391017bada6984f7a106fe70edd2191c3875b4ebf5ce6cc0ab894e453e1bbb498877f05ebc41074879452bad12a8646a54fe8d76331f711ad30f4ba270881ddeea6b7e4df0dd909078b6131b7b9a0c7799605ac96ec7b66bab4a3847d9ff3f005574bd8f72e84972ee45660ecfbd514f0692f552d073671ecd0de6c5036df42443e16a0f4f2c1d1296d633db1aaf76fd5aa7aac27d6c28030cffb6853ed50642c1d97ff877304619ef7fcc2b1d3da47d4a3b8276c672db7001b13baa7510ff3d48efa4d3921aea69a97cab8aab19ed854c6d1e93eacd6f1b96ab2ddebfa6ba77bb4771ddd433f7bd4672dadbe6b9c101d175551dc7b2f7df86cc74bab7d4c709dc8e26227d10b2c0b8bed5e93d7a471faf94ef16f6dac2736be09415651d88ec5c4cf008be99e467d77425ef79dd03d53e33a6eda31b921f8b2304f4435613db1dd6bd26405855d6128768f94eee98434e91ef89074e0f889f409e1a5fbeedce065758edd894a73c9ff300feb803042187154c075e1af62ae1b637cb972565fecfbf88fa58c52c6a90407bd3dbeecf862b73fc9f055115d4af6c8ccdf9292fb15592e257bf9fe6f4a0aa52c61674e39a784afafab29e47c73328fece07d4eb5cbcf3df8e29853ce296d0588987784b82e7309acc7753a7660cf4f888ecbadf61936562b52bad98ffcbe84cb382e7752722ca480071b32f3348e4b5f6ce278ce3923437e679614760afb1eaea4b0ef5f17553e861d3b4618237ce66115565dec8b1d5bca28655c85b10f6ea9ecbab1e2623b5813217a40f189aef813996580e0bfa7fc54efe9fd6957ceabff6d5abf2acac4c85c8971e114e3824a19295e3459bd4029e6059258174cb12e90625c9411eb22c969d062062d6a208343eb995acb6ae5b8fb844cbcc08119d3b6fc7574c69091a141153a65849cc5c828a9ad31ee6a4c96bfdd0fa3a4b4774ad0e1629df7d49ba32f4869e43807b20e34e2995acb6ae5cc396592314d55886859d6164fdccebe94d510373f14dde0f46402272a90e1cc5317639a8c0182aa54506484114963aa487af201072eb4f8428b33aaa86ec0d142092dc25499363850325a206921446c0b2b97c6e5d81638c086ab2bd6ddbd8b96154a5b2d206afa8417c224e184c30c52b6900018679cd144122ec04109286360b6f5ef7aedbc76fea519e9d2c475aea39c10d87577779fa2c4b44515314c6262a0cc16cbba5e3b36b6b821db020568ae8dcbb1315e28b567614411131fc2c82283334986c8a2c5ed2c11628eb270b222225b0de1ee938526468e780063c50559b89855951511730c178f95c0c10633a05481060c14cf2236a68bd8982b8a54ee9ecee1757777f7d7d3cd0780ddeffa0fe61c0a701e7ef8010673ffe1060d288d9f8269ce39a7fd2b9498a64d9a73ce59c383ca4876c50c5740b1a9014a0aea8a234a69a538b8a248ea68f5f4748339e79c329440881c928cb132440eb660e1943d81a91186e660b583ad024409ae60e2454c105796fc8aa71b9e7aa094521a9520a9c1911c921879b2e4e5e9e9e829899c569461059a550aa2d070921ae2512bca54b183150fd275bbc909715d8a859524403e10e8cdd9512caabc60556099aea2d8168d6151c3d52ec7b038725b4f286db55c2b1d2074b960ab1c6030368388a72d846042081e746045f70456513a0b63059a277600a2092e69aa70e2040673274e9c3c485737549144c5d20a055388eb528e5738587b3956050d2837277771a7115cdd10abe2cb959763552871bb8731bd950d304819ab42695503102e2610ba5cadd5095a2d97cb5d76b7775c2d51a2448994981392550c2a215631a856b092a10458e35b90ee93dbd10ba917b775eefbf79c985ac13eb075fa7b0bfad4af76ea573f314eb75915847d3cfec21aa32f2b252b25427e790671f3156af066eb9e20edebd601791ae5565f81dc9b340fc8cda40cf4f9c29509e00b3b6aa8dcab2357906261965c8e4d212536850daa2b5647de7bef69f057472c3217c7851f61cff05c7b3b544fd876f62d10f213f6fb5be060b8c0ca0d2f78018b247a007232a272738b9b47e5767715e0a434f244193d096bed9c54b395fe964bdfcba532db38964392173b1fc27e41db2f9863ad34c3aa80f4cb66199def071a8f323a84d199acd06ab5b846f5d32f1b9fd2183b4ed930c20683fa87cab24cebec49335035d4dddefcb4c0996533b3519dd02feb107aca474a4e19cf70774a5922a852e8d7e50c85ca340a1f84ee31cc1863cc2095199c524e49bbbe682207236c772859e0eed3a50c7243caeeb8598f323a8411ba749293811e9c653426a34ba8aa40bf2a0ae6d860a194d9cf39e77c140a6667607f741507fa559fb6583246eb1f1dfa908fe2206dfabc36840e23bc92094238a16a01fdf21823e578a8ef7cf39f261f8452c6ad280b9e1fa8140e16553d0a15110900004110004315002020140a87440291482c188a829c7d14800d83943e6e50174843510ec3300882188841d010038061801042c8d4d4500d0080195ed4afe4da4a03f092092bf769ae1ff50afdd46eef9e7d4c2b31335082c819550e9161f34460f310519efc4f1fd5515bce842cc9d2637c910ad10d06528b9c89ae77ac714a60db14808b50d2d00f7c4c05a698441e92352114363391e71f175f06e8aced441c58c90ad231fcb30248e17c6dca3ba70b64c325a5845a4711260859a33477e1b57ae04bb04b8c0eae36bf8082fb0f266d17c26832c079034546cf5b872ee796c61dd5be801ebfc626da9b2a895d6ca822ea63c02a6d7d8e74622978d604be5fda5b615ad46d707de6c4cfa19d574cfd69508f3f09fa04e0d5cf19b94ae39eb710ae82190190af2aaf34f8941cfae73db8b82698fda9e8133c79f6b9dcae8bdaa0c5b6e93c19ddb9b44cfefedd42afb6c9006e550701aea56770687ac22df1cac7f0cd1b21d85bcfce0791245ff9788ca70e12881a8f226e3c7db9accc3aac4a8d8db7a3c4df0b3d564c0e207142f543eccbe2534c4fbb9d2d4c40301f29572ace32347998a1c4afba1612e07d83b37a3188a770cab200acb261059f0e8c6731f3803d1356c2d2d51e88798d23d4755c1a905b7621b8dba7e3b0ee34346fb8770c4c74377cf9171c1529ef5fa2631b31b3a1a2ad9ca336239f585a555427b4efbd760fb7c33c6c7959b436e212093ca351ff176be7352b9b7230df77346950a5fa794d744b4160841447f2b704def344e9e2557d786bbd16122d870482c8c3ccfbe3392b9879bc8146489d1d7aec675966cef82549516976b5d9fa395122af503ede906027e1052b67e0244bf8c5c879431eee3fc911d1071821cb13376228b4975e7cdf5d6f3ded32536b07ea1e11e416609ffda5f2ce11a9e7db32a7aa1a583cc3e8bd15cc51ea3a426866150d4ec3e19304d4b83e11a6546ed238de960a4aca2b40f3e2997d319f2f72c462a476c75a3567cee328d1c050368992dae15ad6262b7e83dde5d3f84b8d471bf30a96b240e4f4e50592ac8838940ddf30371d99014730fa2003560a65809682ccf05220332ca5f818499471b6af9fab97e950f6ec923ce11ec4ae98d3fbd2be5e40a931682cd133ef5459e113b6b3489c5fc1272c66c1351a374ec6ece96f5e2c2cce4ed4e776836b552c88a73cc72a3f9494d88be1a72008a94c901a7281869f231ee054ec619021674cdbe8287e3609491a19fb38c3227b9b983447f652be1c532c7280ace4a40c17c6826f55503a6426614bd4975403ea50b041164ccc823968c0311f307f5301683b520f24da64dabe2c3bf6df3ce91a07dd62423e80ad0d195cd2ee19ed0e2813c6f7c6020fe240cd08fe217a231d22827d234f4aefc1581a17d69cf56650a8490843453cb2e26698e6104820a1be2c9c2acbe1b21fee3b161e89e18e2614bdf393280650f5084f9ea0df88efdd45e0e0870b6e1a6f510bdce9d776724acb0d57d64281a22d61bde369b48bdd337315056e79c225c20ab80aa04007fc222d156316dce86c80b4267f60e92a0f12c3208dd017c3ec282bd81e73b940ef30b3eb6320fd8eb8bf5df70e59dcf2c207054aa1329e2422b4de2bb46cf991fba006cdf223aba1403f27f751de81011bd9ee33d62ee04bf8450c0d6729b7433a99606ffe53af02a477a74fade1169ce17501a3305fca1afeaf2d024cfafb821433ac8c27d920199ce0b25081521a173b02716ef05411006111d3c8d9a9846069b538e0ce67c16bcff75ce7e239fedecc21361c023498e75760c209d850ac3c7df9895d3c957b523c6c99419307a6d9d59aeece7777b4d6c9551bd72632bda81176b1cb0a320bd05c5ac48ca46d7a5097726cdba065f00f66bb986dee8d2d0a1164005eba04a09d10e7555b2a29b40f51d6e3436e55f5e78cb870618e5b5a688e77915d41c8d344f769fb764044d0a20f03647b1713fe5015ea44d67ead31de76d47e8ffb5e31163839a7931b062db3e8bb55b365bcd373738f5ed855d4686c386e29dc495df44de33569ead0f92644941b6ffd7a662dd7f2648fd66a73cadf2ea138e75574ce2478af3d8ebf7ae3be8b345f3fb2b59aa2cfd1be98f4ea54994184f06773e9ca554efcad878993a14375a97c304ceed15ae3c785ed6242041bdbf1f285973930941ea976fe6665f296aac2de81b092a37125fb8d7f74cc18e3bcce50663376367d12d601969c3b858d8911319731ad174b9fe9eeb0058dd885eda3cf966408f60e7800c046450b9b5f4b9e6f30bc4e95565281adddf4423d6bedab2d929fedb0f0a239c21c416d8bb9e9fd5ce20e5ff4e839c7afec53d7761963d29ec4bcaa29f163811f288fabf0d6b5f04fe4ec45938a77e2e024e367485464a3fd6ff986f41c913b666e32fc0ee087faf8fa8ffa9aac648bf9229088f5b7e4c3815f26de9621947f887d65e5de0b5a5f30e037e0ceb261aacfffa95f055b9a0953e2a13267373b55d6403093a69139b55e241db8c7caf69283d9e5c6b4bae920af3587e467b7431407c7001af2b63b7bae838938cb455ae6f877dfe3e508f7b8468fa1410d11ad9b5a08255501d9aa483d77754ac2d829ce2d4e889df5d749d02aae65eee9cbbb96385523a9d85c74ef30d3a3c1a6e75d26845797a32b39281a6e65ed0cb4006e14383da0e8929b0e2da76423061468b0c45a38cfc21707754a632ae082204ef61f4da1a1c800c4cd4fab255b549423cb4ce2e7dc1b05e3f08da45aaf85eddd6cf64c7acc4cec0de33ba3a3d703d6625f2a99bba402eeedb03dffbb70c89e2261eda72aaa49fd58637f457b897284ad35b9249ddd955966422e8bd6d42e9f39c2e543c3a1644e5df0223bf14673474c9a424c6f440fd32ad19452a3b40dd5576a57873e639b6e37573184f5487fb32a1f417155b6d4b07325524cea164757b08e4370ac8de18a90da921105b9bca3e5543ae0f8f17668553a0f6778739a3790df73aa6ece29984ba17757306a9f64a090b300253c15850ac2ba8513176a2af404609be34d1acc7ecd1e3a76c23d0d50e55935c3363eeb73469375acb61e027881af13b91e57163578bf8a92fe5cd6418f8c9aa5a0983c376b6ed17cf947423068cd596a24b2de56948d3ab3694c5c92c3f680e73f882358888c93ef10c2fa14e2e295c1ac89130494a3322a34cef010c808d1f8d387f9d50039260bed10fc0b9d8e243424bdb5b18c1e0fce31c82f4c731e35cf6954f4964a12a55a0c48327fa2241dfa03eea9721797f5f0362c16c65cc0b53d149a1e27ef570927e92dc06abe704cafbd610c1d892481b831b8a6391fe76c24120561ec82531a02ec1856515d46f7c51f3f7b4ee84cc67398a6bc35e580216243d8b6908ba993df2632939c782a5964b51e51b9c0c01fc3120e125042232254a62d2c1cd9793361eb2f3fc38cb8061c6232e2119603fa2f62e38305674fbc7b25bb7fd180d4c1e20cb84a349705f976d7abea836a8b7292f75ddaa60785331b216a9ba7e95f9097a1ebbf182d374447634e262986f75c55265642af6417e58c0ca9aa4105fe0ac9f5815a402b0074aa94ac018e88a3234ffd100fff70f99e0e87e32a294f27a5f6c3e1896f198349241aa2178a4dc2dc6f95a3edefb43fed89027c8c46c79b38c93a13cb4a1446f82a68a32eee97132118ff81e7cd13a34e4216aecc6979c1052974499860c7b9df242946660a83a40bf4a6d94b4b318f9c050b5e688340ca5ae2507cbd9ee95599d9c558715516c67c858f1d124fdf8dfa0fd3987bed62f6764f080d27b1488439e7913e7873bc856271cbc6f18ab89fcb905b980031908285875e77ef97043707f110f15c581642583c04d53f2fc870104e6e0f458dc87f8a436f80c294647a9acc1995086d61fe34641d744f6270a9747f51c9f5ad81e4e0a9655102f488a310eb13dc6fe93379459e8b33b9c75f993a658e7f8dc91a429a5a0c38f119efefebb49cbdf8601a57ab385ecfa0e68863979172d19ce8010073202b141825051db3a93dde545f0c8b49aefbf13e410c7c45329883268b8719e3337dbc4f646984454b22985910255ec55a1bc446f0b352c48194d6d57260f84080151ca834ed8e256deb8da97ef721299521766ac6e636a6e2d6a2b13401f34c70df4d2acbf5099e25cd1036d12150f4e5b2b9cc01a9f8a2a7652c126e57b598e3f08c1893574d587b8602dcec4e110c657c50b1530384ac91560e68b5b54cb276795a83737b00a70cf4aa30a2b49eb390eb1e187e44113f6de245383b9a6971f913f89ed909b31973c34aee6115d973848372579e5cce6e6f60685d7ab95bcaeea4aeb25b6d8c64746146b4bc94bfd1e397c6d6afc34cb4d986a0ba0e441f79ba7ddab19d7ab02b0e7f542cc410077c06bedcf4a851ad21763b4b934683bde7db65d78dd00096cb19cc4eb505c0ec8add4142397a55f1987988bfb3217793ccb2b9c0fa72447e87a2ab2ca6dc71ae6f678401873b91926cd66507559daee5f81c7fca9ca31db25444175928844b32554f450ff1fd5382ba6bd97613a7ab8c51fa6dd73310c0e4277bdd054154b3f5986cef1c17916eff97aaf101daa30f498ae98622f327b6d168d15cb6ad0aa558ab2e293717871f07ed0d0632d6d7b40036bdb7a9f5770849e35c73bc0d2f3d6242984ccefdd8fb00705b817b39438f1915f5de8308a1fd72142891f2f24fc02a52917c1353083c8344087b872fe14c4728620a6abc089cb883ecb803e8a62fbaf49ce48226d613c9d91354e17cbd1daa40cf7aa6f9f5e4dd50895f8138bc88a35f311c6ae368abcca48fb339eeaf66e108d0f1aaf523845ee1e9e42435250454acbc7ff73c4d8ada0a5483f4716e99229f9bcaf4d0e9711980aa0ac5ef5deaf433793a31a807f39d24d67ac0c986699a22506c2a8791941be3bbc49be1a5c25546c5396a8f71dcd24e2542e37dde32ac30606009cffede0ecb80d5e066ed34c376c238669697b2c3ad70e31b9b64e9e7db3d9e77c2daaf71488dca408352e16a95c2e001b0cb2e39ef6717a0eee1e931dee92b502a17408f0a1c10a42ead7a680c579869889dea1b6d4cf31586f81f322cf15b1b60e2e14276e5abae4b3f0492bcff1125337402d3d06e4604ead68e4dc365f480cbf595dd2e976ee133d7038df6dffe402335905db9f3b558c8e97b3610427921b091e831295ae947776f334c895b9be4520b898c37903293e569ad7eee3509619709a07d76bcc77c9f7cdf77d1a98a5b5c4fc78d5ae16372c90880b168b0a2254108c984aa919ec48ee308b7a22f0beeefb2d2769495d7c3c71dacc6bdcfeff5d9805be51744ddba4854a23acdb0339fc3ef5698a844aedf2113eb7107c858dabd385f31dcef811ad5eebe230c054917e20b99cf899fcb509c280ddb8c66385c21de9c41457eef83f31eee10c5b36d2589c39beb814c716a339d767499af372880ab5499190333143226f97dfd3fbb33f8be8f2ea21f3f2e2105dbdea14668256092e301893f045ccfb8c81251ad3b418418920a087fb72fb01824d50d469ca8c7a0490f5a6fbee77342dac74585910dcddd17da4741ff44f81db7a329b818dd112b72a8f3116291aae8629890f63988be654ab15881830157a903031ab2172b96ba66c1fe61c6bd8f0025b4f84eb801ff0be3116460decfc343176a61d4d9a572ac1e7a5c4b03b1eb7477e39abf3cd62b1744eccbd9ba817c6d9754ba7d788081251f2b7025b5afc4f53e38d4bd8025aa28e8f0a41aa43c06b8249c487139f503b2971ba499e9ab4e7694c6291189850a52f103e35af58b086840c9eeff494022e2870907a9ab1a8f0f0ef900421f3a459f645a40a6dc574e11e631032b4ce38d06255c6d81a7e1aee92f03fa2b435a59097bc80a1668f24300660f615449675377490f76645a366092136fc0d28fce62f8b03a06821f7b467c5ce0e48d5b19d48cbf12167bbf8d23937a4a4ac94f1d16d2b6188ba9453b5d391fd81a81b461bc78e320cb83795f52c9b2f3e7e786310f46cead5e5d122f2050e06027dabc11345e5ff653e36d92518dc61bbc20b480efadfa7defe9e43ab15a11a6364ff87f46b18aed59a3e7408776ff9fe89c74d028029de855821f14b0996ab5c08f45f903ad778784b1670d155d387a716bc6ebb173d8e9831af576116c7df5c615de3cb4e2a6186f4216cc0c4d19266bf83d31c16eafcec7240b901507351ebfeacd3268dd728758376126d536069dd1851783ca0735dbd70629f86ca7ed5fcf41c2859fd265003407beac89a614bb932bbb8d278c006a29d3330697c70e5d15c692e1d04fb3e20acb8599b4c1c2d26b5ac4b00c672fa53fb1724f7ed0eb3b9033409c4460f4cbca99b53eb97f4a1419eeadd1dd80400c290933e153b2d507b2c41761eee5d4600bb0578d034a41ead726375f017a67a7b97017f861dc24510241eb7ce34bb10c347373c4c60eff59c6431e22b1aeca01c4f603672e452982060e8fcb58293095c8414cd55bb0a7d76ca9319f9688dbb206c83e9f0057518f4dc1e18f3e8affb998fe153cf5128c1d518f8e8b6455b0078dcbdb81b1bc41087465ce892ea447c1a1c30accfabc4e8a4db2d61503d63eeba97854127dde08ac0f8a82d07cbd52f4b0375a5c62f4946320d2ebf0942a875e9b7747b09a6226205672770723ce7e876d0fd5f6a19d86192a73afa13b283e3b8034aca04f64636436d0dfbff4d4f04ec7529fecfdcb6fe731b3bd4832a33690e8c7a4d5a941ec60a587ac5b4213f87e4826f317c4cda49b4be82032ed343b4672ed7896091e108b0651005451d08b8150006261d08a28a8af00f4a2b056f75b4886729db37a75508a412c02bd00904541150649318805a01700bd2088e204e22f0662915bdbfd055ce18a807e611599c4497796c3eeca0dc1af29ec18c9b5f30c1378402c0ca2081005412f02a51888851bc45b009aa2b0b6fb055df38a453b58a3b1e89cfde88af712798bcdd9d7cc14eef211322240304f1e254c2c58a7702b45e3bd5d40ad378c08713a9bc2b554503fb8b8741b5d9076732a70f499e50a57348a4a0ae74a329bc21d4e3c3b4d5708e7768334e7001d9f6ebc9d7453e377ebd57d331135852b34c2d914ce4dd1727c49df0b5585f66e3a85fb884310a3e4e3dbe267c6b7804622fa7ee6f816ddc529436e4de610f2cc2c018900a131b2ebd951645b331ac3131915fe08332b4a16691e01c6915450ba56e6a02babb6703153e8867d912ebc9c5a056e0025e0944cd433e02a42ce1ff3dc4ef0749804982e0285dc819c08432d8170b425b8b159728e955fbe7cb786b21605b50426957912f1affe21ab75d729b622a6f627283a66140f93e3ea3effefc005450ffcde2deec22a8036a668087d9640634ea4838084bc58ffcc02c6230d1bcff231c8b2b0b0fef854bbc179e6fdd0db7cb545889ab276325a5dc8363a5726fdba36817dab7993c17d76b8fd8e43606c4ea7e58ac7fe38a391501eec578d772ca7461c06954157de748d9bd46373c559d562fc1da884c2c109cdc5e38ab343b760d5e43a139430fd27c6adf73ee29045893dec1b93f4f805157abf95542fd436312f786088a257d8b79ee9d7c6db51c42b58abf01911adf3b9f7405587365abeab384b77ea44f3e4c5adb1eaa47039ec29e2b2a098cd2ab0b82f547669799c6578f642ca2586062b4e46bd1f67f4bb707efe5fd9b6789dbc1de4d93f0f32e053ded3e7934b9433cf13df18807b28393171df08fd3eb140232470790a6ff8193e85bcb535a2ba91a1173cd11258102395af697fa2702b8302dce64837ce45e6e7f0b40c2fa0dd2d73788173987ab5929d3f01ea172a37b9548a7ef4cdffc06e31a7f62510e44149e851199e21d7dd6d1cdaa9960f10057a4eddd00748bd4eb133e4cb0cbafc09aaf19607e4e647018618b9fde285388ad00387cefd755bfedb59069da6a02f22566c07146fa5159be7d803c50aac0ed969740278c1e16a641af796b35c20f3696d59aae6456245afc5e5d46de8fc7749007889ed7120fbcc501e877ad1c206c1a31d1ea9dca09201d91f6b150fad6dc0e823b6fcaa8beb58a0cad85be4a11364016354366f06485f4c612871e01129f4be22d69457c3980a425a2f4b4b669b7a45bf34a39dee6d9d373a7a32920e31d01f227eba41b2ef11cab972ecd7e0c80cc3f1a1d44adc5571b426ff10f91b60880451513dc24b9cd4ad59aeba396e95f6ad6424fe4fc95e308f15c8f2db02bb8f48f5da883c86a891a98f8a5f4f6b7662d48e499e7f4c08480d1f54f1b341009a74259dfb3c29063f705411cc491c04ea345d550dffba34fc2957f4d4033a119ca58a83a105555631814972e29cdfd6692b59ecf2c1a02d8869b5b552466f92e5fb79933eb12519be18de5e53c06ff307e7690bc51be4af78c8c196f03e11a4b87752bcdcd9eea4f8b93ad60c97560afae286373d53c247aec6ac66ed618a795498241c05aaf3aef75850b356a15a287586b3f748588ce7f2bdf364e194ef451e8cc8808adc217407acee44a789bb3a3bd02848a05c0154296276903b004e118efdcb4a6c7b9f499a84f70b7d07087f90d3b47cec701d70c0c269d4e99585dace639fe78418c3e16cb891a08b801fa599e31227342a76d9779a2921c835b79d492e8da4c6a06528ecc05c2375fba700317919461b99101815a1df9004b3367c87d9b6055b286d8904098816fbb86184424de9ea6bb2649d30bac5d35e657c7b9c578d7cc0b14456a758595812678aa5e28bfcd1e1c3ef124a7612f4f7d577cc3060e63ff229ac4d16da7515f6aa0a261308fc605030f919e1f205c68ab232b8020ec3cc68a3b03abf22c71fc8d458d748e0404e356e97c64d0ccac43b4361e3234778fc88c75704ad7fe449cb2ccfe41ebfeb7cb4a7737dcaef76510028696001c5541d5a70bbc77eff502e79216b96416379e868cc611575218da9ccde44b4a04a8a0693e4d86f4a5906aa4b05e015a75c56147fed8859ea988053894a48d5b142b68b30ed164cc06c0d6f4471529a562e5477895349259517d8910e197560cf2498ca22ede31726017c6f1fdda9446f5b06fd7d2e4f9703e2590b39415f1c19ecac7eb1c2af8e8cdf29a9268c1122ff548ff0b0ce29d98963c14e208764012a2362bacfe581f28f9499abf31f741823ec6cc8715142d618f92402cbb1a0fad8de7016b5177dc22f7bfd437a4513d2d41d3a0c35e64a2016730c8c7eb8619f9d95701f98a6567395af1584071b1095210012d851b7def47beec77186343f07e706f4c812fecc31583a3ad2b54cd8371a7108cccb5e7c7c99088685770851835a8090a0cd55c1dc9b909b390d2e81870a1d9ef1bcf3c29f41a3f7aea7975cd17305335c50324bf6daac80021d98c95243658548b0cb112842123e6c23c8df29129c9d8457dc2a9192c5e31c06a41005e1deecd23ba2b2cf70bd99b60665c456de1640f5081410fb912b541203bc5c3afa360a1d3d0757909d2d45f505446a048a05ff9909b3ba4dcca33dc0527531a035afbbb29a0a464d7ac89d6848129e8932cb61665a240763b0da762d509084bb703775e0f3f33b03fe1ab9e3379173aa47c0cb4ee98a8b8ffc722fe42c7924f290c7a4839d77b162fee55f014c5ea85699db60500a3a2e5778789214dbed286dff9a77d765c24760e4efe1199c8ec48855e690b5bb67c465f17dcad3cd6a6d17f5c8456f563a41325c1ed5871215b7a4215b258ae22d4ac0bc0275235d85d48e343250cd3b65ffc00aca651e64d43d17f8c03b7349c6db4b9ada7c932da2316ae30020d85b2f1a0a5fcd9bed3bb37ec454ab173b7ef993abc9167d6a58834d8a7d14e3f6ed92a5569b23ba70a5782d72a115c2cbe34f9dcacd513512bff54148f5edc5d220b27a21f89b4693aec375acceabd375b64ed579aabb1dc16d22045241d00e6978e1646d9117405d3eac91b18bb1a651c710ff66652d30c2f5df13c5739bee3cea074e84e579a61288b41992b99bae38b9d1aaf4bcc5c566aaeeb714d58db9a8df94c2eda65ea5f12cb6dd530cbaf5dc6e8aaa1b7ff1b269a5db6d8d4ae75d4c9baee0bc57a8ee198be326158e6f88aaecc06c2727f3a66b720510b99d61b2602bee028fd996c6daa61fcb14328e2bad1379e4c68688b52745ba7ea3f5918e6dd054e7c159b04b84093b912c6f6c1d7ce38032a79b815e054ac0fc106dc59db088e0e55096711a3a48bb78eb9e95e5387870cf2ee07a0bd8fe4dae95081388c942a97dcc60315d7283d282fbaf5024de8e188a590fbe4b4a312d9bc5e16dfd8a706fcd96260069ce79faab46611c08bf82c9cd88eca52b23ba5614797c03f8abdf78c9910508c88183cb393d593308e176a1671075e8759d71e83b746e02e37235d083114a207e5a39a4b853f25bca3caa69946535751c05a338c249195d91a5f93a6ff2dc972a6519f863bd655bdd19f3a31645f80e5b088d68358a9e15633a7c2501a2366c2735232dae0d9e1633d0b6b14f22d8d2ec938c2bea6620129dbb8405c86ee900e75097640061260a72bee6c16bc85afec11959b988ab91f92e4dfeb56b4341aac03d952e38c93f9903e896f9ae0fd454679afb358c3bfa7fd9b654511c633873fdfe9393e6144709d87870afeccad4324ae64c10c77ccb3c42c42b1954532cbc1377cd0947b270b31ce14c4930aff95e7897e9a89e94a38a457f7780ffe4093b5d4c64cfc6ae7eacc1ba52cf3fe2b84e41186bc3939a33833e74e61409614c98a6a16f1df91e5eec5e1f73cffe45d3dd70058ef8705a20802dc6a7bd02631845c1059f5ce80531c8f1ba76394e4738274c9017285eff7b87a7b5e16c284ae9fd33586d9cf1462aa20a14eb077001df92aeb799c9902dda7e4b53ac128b33bcb88137f28643c124bf27e79ed890212a7339a49eff7366fd2e52373d51540f8abe1fe80e09f19f00c94a5edc5b21a448bc3e8280e9f4fa4817b6d07a6db8bbdc65daf82808b101e0aea8c7f340a59dcf8057cb7542997d3b458e8da113d96a34c3d469e5500418507df23ece9a6a2103e2769b31f7401ee94efc7eb9f91f3314722da423b41809d1691ddb4861cf1dd1c2be3bb2a5dfa79666c09060678367bdc20651f0689843ea2395ef4607dc948584a06182b34d1279e3f6d640e174d0885c0a04de1c30786e021890b94bc04eaced3002b0b8c15a039d3203a6e4feefbbe15624244450040d578a9d65595694d00fd559d15484f24aaeb7c886b576dd0fe98615f50aeb4f82f8392912e25f819f9c5a76390da20f6955db9bb1f4622c054eda3403a4144dde1e656bd62a65299e0bc56c82c7a0c131243a6a7a49ba93c0ea8bbada3c4bc252e309d14f9706124a4b2e4b054efea5e29e93524c8592b00dc1efbb324afd4d94fa9551ea32766e98a7548b3c5686288edb920f8356b4fe9df7c8ecd7aa42f96b8531aa8bc4d3092c0fb5ce7ea105a40521e7f82ebbb1676ea5d7d6ad909a403afbb03a6f00677e37e8fe7d4ea74c6bcbf16e10498bd3704a7ecb8f0be3fabdb428a60ae2e6ad8f7b42b8a108550bf7e8e47cc8d91c228160e2fdbfc9ff7762bd91a46aa618beca505b2decf124c912a0d64ee8a7362709977ed09b525a9ce54b1be7cf370d6f8bdc120a03853a6e9096faca98b26a371f4c26ec97d4cb200beb68a04f870e72c5a13522f91092d97b3160c9ae7f7aaedea06b54c97935da97e85aa351e267111b62baa045b5ddfc83f391fa51bc60ad0faf484c95d924b22ef63c7e3541fda059caf7cb1b3288e069fe0b44d2b5ab94005bbc05213f914f4349999669250b35e5a89f1ce53ff98c94d81acaed0de18c13f6393016b75c2a914c151d17c180cecaddeb89d9e71b0e0d7b00c251c17edfa2752a7534f540a7762812a30c46fbc2e68dc9efd73a4538fb032c9734a8d525e2011744ab9601921c6f440324ad1983286d3c6f7a3e1ac7fcf2dc075f71184fc1b3acaed041310c4ba595097f61c3b2e05f5426dbd17d4765041602db3c825c9158d59770ed604c5fb0984e2f4edca975af6dbd3216807e0ca58c9305aeb395f2e1137a7ff92090a35c11a7d1bbe4eb4865098674f9ae6a5e25838f6274978462850f41488edca61f6234e7135e6381a588bca0fae2de1d7fa8e0d7690c9fea8f70c9395b12ea7c81c6f0f6f74c9ddc1fd1bbde925e4b50b7f2b2785aaa6d1197e9a61b7909c96cf2650b710fe2b8317bbb3f9108f86015f2593d2297e7a8f980385e65d8fd10b0340aaccd82c2c0685020aa4867d11592db82de4c71b0a52cc3be962b33890781928e3ceeaed9a39878e7b4f12187a4b20376430e41748834cf668e6507ff57fc87aaf47ebf4c6eb3b13752b809d9ac6510882761d9724fefb5125aacb24a65a67b4ddca985d0bab5e5e4d627dc74962d42df2a8fc72822b791ee914f29e2a63ffbd88792cea77885dd64c6c6b15a096ea3cde000c9fc198a15f8074cd73a0c4d296a40ad1b1aaa6f089313b2020ffea2f0ee5052e3c0d8f45e07c705070127f94b11260beb81e5638e565b94a3ddd145a25e03a48c3361a3078bb415d9ac1c3e90ba9ed32216c5f07f1851b6ab508b24cf0e41d8a9f0d7bc02a379bc650501d7e0e39940ce9fa6fa16ed66f07801c0b0605b9a6c00319c6db2ac8eb0a727519b03671ee9bb0341bd51fd96b3162dda652470d543540189cfc0bc1f217a1134d5fb68009c22b2b3397bd650bc17b36cab78d52613a29530ac7a0352bf3af6a5fde52a1bb84709a1203845da5cb5e3c959b6098e7b53437d5d5ecccb142396dc203cef5dc3598a1469734e0b99da7e54fe68735f98e6786a8dd40e2f38aff2c2a3032e73b4592c200cc8daa1ee2346e6897f0d5c1c3fa7cd469bf7a50662155a2eee75983ac79fd5ef414bbdd6558fcf48fc38051c991eec3b7ea3cd94af4715497fe8154166fb6453211dafd4d373ac27a5d336daac9801d222000967273885582dd02cb565d72ffc5a9f086eb4b93d070f03a8123efb88cf51f83f6096f254d252cb1524116710849cf1faada0fe4010ce0e1fd14c98a95ccddf68734e235cd02e40519a9a6841567990d0bb57270cad9070851dc9b307e454161e7d342c0c5d2bf3c6364c939c63a025da4c5c906a77a945f66b9a29d5ac0ca258e1974c829e16ae34df932e957a87e48c7cf5f1a84c6365b4195e4cc81eac287a68eb13e18e0bbf1249f3f233d7a1760fe3fb5454b2e2a3398d107bc17a7e520a5e377acb5a869179d0d5dcf6d036fee743635604031a92d16688ca584963b82b39e2d39d0a1b925c986c8e4c4b49b2db0b0bfdd9050052532803b2f339ad1943496c66cb68b3a2eccfd52679dfe0d1d79711218dae194ad1d446b499e15d201359928f64beb0262c20e429dd6710fff9343d31d36161c58e56967f5e561f560d450f6256735183576386eb5f9b2944380bb6cf43ce0f4ef3e83c11773ff2ed081c236641548e3bde34def16d34339139bf10c4d40790401db0cdb9e1ee9ab8989658ecc086557ba9cf5292f5b7b02830f9cd4017a18804bc3ab994201c8dde3a5df9cc3ace04eb96b411549b2d0f13747cd4d6e632c99de14e2f4016ae0a5d0c4a5a276a8d8c54974629fec50d7e00915e8ae14672b2884d6c62a56b6d5621dd9c543f0acc130ab7c137dc1a9dcd97140565178fbaf4b582b00fa86cc0465c755a51b22243e3aed3c14611c86b996ee42f12560b4e79479ad51bf9ac05cdb01df90b2768827f67de2fbaaf0972ce890706048588dc5f8f3a6b3818d8262aafba8ef49f43c0a568418a12e0b2ccf1aea6150a72d0bf89dd611618b0ae20c8f7bd6d74776be610de6c9ad6e0ef25a193dc8462016159d72c013c71a973dc1908236ff8283844c1f8fa76ed86d1f2e81d6ae8189f89dea3b6a6f73cc7bd3728d779a1b6cb5cb6c7dadefeb3cee4375e601b2a90e6422773ddd606e573dc181127f5f547582876dc6e33df2728178ca7011d37455363dd48fdc243b552264fc73d52473028946ec57742ee62502d1b63f0b943360e24c041ef94d7eaef43dc89665da6b289a9b1b085e75336e486325629a94bc14684de357925181af033d1114d20978859f1a4c9015f7ed930508b0650c865187ea19445fa00ce992839b2ff816770de7722d7249b9d4fd060e299fd9ffc4c9e86c7a9da2d1f82644db77e4a3531dfde5aeea8351c3ccd9f0f8613e819c792378c28d2a73a609f6e1cfc8e50ec574ff093ee3ada1e68594a513c8dae009fc985d91cbc4cc3a8f7ab87f87dacd34c46bb4b831d1985705d73ae0d1c4540d8e74a59649645a13ebac05c9aa5a0ea25ec92d07c406817708fa852875c5f1a4b7b839a58558d0aac06cd46166eacc6ad98b137af6ed6e284f970ee49474e485d10253affec343c93e0040a6c6755b6488caeaba65768505494cf62f56bfcd6408d00654588ad0accd4af00878e12be1cdb7e81b83e3880b1e3fb72e285d5880518080f5d0970c9c1c83a4c795c0aea616033cb57bba9f2af538baaff443da9630da9ccf8582cf2166e495988d52e28e012e86b827d78581cf9fee5d76cc4ede1b1ffb6ae6e6ea5dcef1e6c2ea9786ecce96ef32bc4a961bb958b6c556dd95f39ba1946478021fa905180256c2c9db0e3235c3b1e978d3a23e57c0c8565a00ba084e2322ff1693bc51be178140cf14475cc21e8bb6590cec03222e557c76ee55b8e4769684c64fc0927546b3459671e157408428d8cb3e16882cadb26227ba0a42aac0e41805e15daf7ce1e377975785277cae504dcc4b534550cf44e981fbcda126b08b9f6186042e5ac99a3ccb423c977984b0f792bc69befd4c69b7dac3b66d66a6ea83a4a7821dcc759272fe554e329b1c3faba6313ed7f319b5940d7ab070ed0385f690b0220108019fb1bc52fa1afa708db7693860aedb7439191fa46aabf4e354562135a78f07d9fc8eb38d96f377d4ca57b08677e9c02c3ad771a86dc574dec9bf31a839e72d97da888f9db9e7342b4f2682c5572fa999e61527c4acc4b8b5ac0afbc1d0843246a464c54b9a05de14b310484bbaaddf8f30b513d409b8afdf0c19e0c112222623589ebe53ea35b2f2a5d78877876a16f94dc9471c0c4a4d06af64228d31d9a81bf195a085c690190a51f06ecc3dfe80c16303dc85870b2f0a3d36e8fcb4609949ff8105b1e9ae5c75fbbe708182bd82584acbf3bf2952d96774820db4a092c13f94639b2fe777971d167cb6b562401d4aa5699e257791c42df09d48f06baf6092476cc6da33164fdd79cda958529621a890b2d9c0e12914bc32bbec82dc3c6392b3242807534c34401d20b27f49243e4e24559b301ec0f70b0cc4b224beacc74b68cae8a7ece55f0138dcce414af09fb37152730a3449d8e07aaa0bf8b4e4d7c0dc4a9f89ff6a9e90f500742242c8e08daf75cd665aaed553706f059fcad187a828aef7bfec5025df63cd37e5cb69fa3e95f4df87289200f3c83f5940b27533e8c921ee15d1a301cd9db461d6a48fdf9d0f01d162afdfbfbb4c59fd350654612ba35b5801def32cc9536a6e877c7f1234bdae30a21092998222db3658b1db4c85ba3ccf21a0acf826ec5f7a36e9df6c2729d284e0663d91105eed769a53c96102f8062aeda67268de1296fa00496b4c8f45867d4a454966cdf70f66f788e0c1081a386775637b891c230b28448370487703bf740256c7e6252610feadd237a45f975a5193e043b0984734c709f7e78dce6611911777150bca08691d144863191bdf2a169d151f9337619077635e355b95615155dbd8b598151cf99410fd7f4b749031a00b0f04c3cf6e0f49c9559de86e8d58687c010662aeb646edf77a02780fd25744c33e5adbb0d42559e58314224f36fca051f51b14502f55000850a68ff16fdd13d2b6af73392c9fd03c97096fd806056c18eaae12fcf14f3d1e896f40b408251d3249960316badf5619585974b8c0341cf4a2dd23cd074b8f7d9768d6ef6684fa5bbfce5a72cd321c925e2cc9e554b946e30daba3a1dc97e1d27e4d286f42f0d82106b6a79ac5b17da06aae6b3a1b71f20dd5f89b7dc7ae77d5be19143d1cc8785804924af9a63ad9edc26a9634e7e2c85795b41c1480995e7b88d6f7ddacb24a169f9452b5b75d4e4ae44b0dff6e537a10b625e02d16220027381c23f8dec0f045a870e82bbe86d42735eef5663dbd0c29168bdc4b9495b36b4045eb5219429aff2d80663e40feeded762375d5dd59b8c6e553e896df0a41c9d8d290d670c85c891f9e1cb56c6ae03b2943eeca60d2f3c97129074e8198e8d035116bbc798bb21b397a8fbe915105b8b9e7bd2486dc7688e5d6636c10f6a11e80b802c08a278508a412c02bd0804f116805214d6ec7e0fc952ae11d6d905df738fb4d3ec19c969f71926f8402c1e44015005415f00421188053788b7009422b0a6fb05bae215890e881b7ec409f3e34f7cda58f03197fbf9ae94e9b44a464672f8dea6f0665542b02c941d3e6ca0784310443993e8f38d62c0bdbbd4ce8f75ed3d760e408664e4ab29dedc7edeb085d5468ea89a95a2066bc26f0c51bbb1f7c0f088bbe0bbcd42bb356133d38ae607e93294b81cd8984cecfa2bd4dada001f2ce7ea3fe2a3282088c203c5c6cd12cd0ecf91b836afbd81100882020ad6105eca51b9b0db3e73d823a8e19850b7cfd2b59813f6089503638c3484ce831cc131e41cf5e54c0fa332d49bdfbbe5746df5e98cb30a26c692a5050df1a5174ee4d090f1d96d20d278fcad207bed8b30b9e4b01be0e81b7afcf00f9d28d2547849f9f8efc6705ef7a9cda7378d23392e48d5f72ac5a063c4735497ccb9b6e460b040a037f30ceebf6afd590337ea239a51cf2fe4b407fe849ff36b68d30bfd954cf8e92fe26be7a16419fab44cfd8aedff5e9bd1927ea07ad018bf90b64f9001677cfb7f3451145c5e243433f2e16594beaf0a3e15097dfc143218222a4c545ee8789b22f8ac4b9f5ec06d3fb33282a78f21b1663b706f78128f61caacc34f18e0e58c24cce2bcec39c984b9ee9d86aa4c3882190f11e4739e11d1562fb9b09b83b0cca33ee5ad2ee0b31c04e20ddecb1ea96390888b13966bcc08a63160a3a5e260ecfe56f89a8e41774256ac041f710768290524a58ff9d5c9fc7adad0ba6ff0716699c846ee1e6e91a92a71b05754903dc452363ec0dbbab072074e5f1807ad38fccfbd4efab573dbaa48d044a509b11c2c2dc063029c663681f627b785f394c4e49544036c05aecf4a3db474e69bd010ca6e69b6a76dce58cdb0d1ae2b271e92fd0321955920f96d6c2a19e12bed7508a97ec5019143cc8a4fb3c9601d9e892126df2b7cac0f3d97f6305b2bf857ca627d440b14931fb4e5cb08574b2dc91bd264e6953983b4cab24a96c316b34c59d78de3a95bda8470dfeefce08d682466089e534883f408c1346fb2dd5eb49d12e0f2f5ecca96087beed7ef9c70f0e3223a8a3eb3fde952bb52a9496cb6a0072dcd1d32fa67b363e990dfd5d4415c4616a9c43fe0df50d6f787041c65c485105d66e96509f7454dec9039538a3e37bbca37543618653835fa0b9a089f14ca7a04708d5129565d54083979a620d8ff3b10fc284ea1d612fd9003f896f0b988c50f04e2a7b6936b38b817632103b056928978590d192b075eadeb9a88ac956b38907cea98c3196adcdcdad4aada4ef7087d2b8d9a678dc4d6ce2bd7a844c89684b45452abbfc68cb864acf55db04ffd90a35ca39393a0cb791b1cc8270e1a8f0f9282ebe41af9fb5643b414363537e5629ec0cef4748336eb0b5031b747aa3f4f087ed3289a0a44a27513110f7a0326873f54c513ad4af21081b3a832b41780b807863efa46b482f641ae08f0ee6c1c0a9fe09c8e1594d6f8c25fac8012848c7097e328ae890978eb78e8fc23af830ab2dbde7a43e1a8cf090ff3830033eeb50d625c0695f6f65b3c4a600a1483265a911288ceeecd424ee9c976a5d381b5b9893421174119a29ccf0d6348c11aa006c60d551e02a2601219d6acf0b291b7953e20b6974266648370078d82609a0b1f160c499178490edf50e5e45eb0373ae11f0b4817cfe3e46eaaf00c59f2244586f415b307ddede07e60913aae3132db529cf4b409942041ee7889ab6f72c4436f0704484196a5e623aab6a26c29be5f3dc029e598e1f3931783d451b30378ea6bc6130c465b4d46557d653285e406af9aefc5cb82bf70eb6c4fc2df642c5e0e609176b75f6009d45d69808e8c4c48f4382cef9a39543a9838e7a035ea8efc5b2fb164f75d52a6245bc0b282174ea1eb6e1225d70c746684d7df2c483ae71d507f9373c23e8bdb645a2a2d7b7f26e00025b92ce20827e40818d0438fbd164a7d513c0fefed8d3bb851922e08127bcf0b578634ec5239bb60f7ab123632c406e0cd698ee66ab79b31d5e52b7209b941aa942386b8f26c08e5bc2ecfe12d81406486bc3d44960f18c934fb2c867c8aa1cbf8e0100636b8dbe6040414aab116b23cc657544591d76f6d87c0abc4112bf3bdcc8e5e2aafc3c859dfd8d98f19891bf5e03cb37a94873627daf98dbf71e23d230d54a444787764f9153b80c4a8b0caa50b620a8adf4bdd9b6231c820fb5ba64a0e19cb8baf8ce36320e2f63ff9a43e464c5c9f019121c2c86a1aa29977fc4e180ccfb4407393504e7a0e00f94222be51a35ac811f5536c245aa32e50e179ee0fa039381c4b0bbb1ad8ac2b13f6746f9a5fd0196dc21842e232dd26c7d6a1da23ee9921b03c0bda6eebfc7a07cdd9e07c1ccf8f3d2986b760ad26d31b8ec34b40466a10f6eb73f31f38ffa2b49199d0f8ebce85809f766a3eccfad89aac6369b6d8c8a3d280d068869b33db2d346757f24fe6ba2cacdcc06bbcd849a48de6aeadb28196f8224649c778dbb03535996a03bc33e9def0d364249859ffd5300f294d4071cd2bc6ed985f3ecd293a17a729bc2f41b4bd6f850cb94d13a7a39b10fd5eb30aab198eaad01080ad97ee312bd9d70a3f4d7ffcb9f738453f1e3063cba70af24cc4d58c89f208f115a52a1c94a22899ffb062cabaf42c968ceb13ad060ddefa7d82daace063bf39bf28b82ddfd34e35b43a7ea86dfcd70d2f2fd200a0b516e1362b92cf36d92550c868b122b6d938b968306c6de0a07c3ffec26817345e8508ca4eee5dd21574bb7eb7d12838d7c5ad59e841a0b4e5cb795c0fc59db8953ba8dedaa7e752a9405166f0cfa77ff13a833c0760fe18cfeb50ba3ba0eaa7af8e0d5576fbdd2446f9c207ff311088c03dd9a4e12a13fea0217432d8430cce1c047670ecf0ed4e4d7d99b8393b2d2c6ed23ed837aff320c70b64151c724585e21a24a0647f2cecee54c71d06058ff1e3db22c76a2e5c826f0bea4b51ebb59574d8d3e0e22dbe5091568dec25edc226f7946919a7d9675a7f1fee7d51c9ecb4827a8266897eec4d5c12eb40924c1d2eda7482a86e871e727b833197220f68cbac23e0234e3378e5e3c78c2460112a3baca85568c1cbba36e9e74c97bdad69a5ac2fa04f6909f58b1fb94026571e65e2912b4da755f5f39a2b529a62b586f89e941efee5a7aa485aff051390b060bf3186588ceddf500ea2b4c7d6912eb948e9a2e83eb056eb4764085f6e699f291e31594bf1edef2ffe54048ad88c6743c825c2ed56616205fa7b9e7321f09c940df0ff3d3cd8372ef9e29c2bac1bfc1289cfe35f0c1030e1b74fb4bc7990a79a574b47e6f4b2a03cdae04bade579c393f11c3d768b627cb0daba52b5c8f3f97fdff6220666223d7844fd5ee7ba77abe84b55beddeaff7c5ec5da01701607f5bf4fa21002dc87f2c1a725438a1d49f2613fdc6b0a8afc94163e50fec03bab9df3e66e0b4d02d2a788ab2e17928e4fac079c68098cc361cf746a83f88818cb67bea0e7fc47e31128157cd13b4ab1cb113ddb053db2b513fc1414687c01378858d14c3cc8078f06e21306e2f423a7393767b431789a916b0282013f07d1607347773eb7146baf7f7f216870f043d000b0b16f9935b039f30c881f53b68390422c6774d35d906703a3c86b43dcb4bcb0acd906252ec64ea0ca106e8f374a1a01d593ac9ff1875d0964e429ef9d19c6eaf76139999cf7d1dca58a65a3cf2dcdd15363d19670fa94225aebc16eb90b37df6b56f7f630dfa5f599813762153f5e8230e9fbf82aabc73b303a0c41ccdebbd26d227e274654661ed964d5643b236efe435e1c603511a0533f1087a8a05155f6b6091ad825f9164b9def082d1aaad6257648aa228b47b2896c4c702129a46c575667e689c11f43b94525c5c942ff992f5d7a87b38d2957dd3185ca7cd4795be938f07ae0896d3bc48b9fb4519ed92a2cabdda11598323556dc25bbc57a593a420e54bc04b86a56147bc4c214858e08ec6d895c5a7bf7eb4a8caa9f7fd358455691292d713eba235a2b018c6b6af1cb244f8cfe79c9023064b43fdc4a0c91d9023464716bec80dbf60f352db3f0831c81883a9a39e1c3538f6c0192cb0ef8d25facbe7672fb8766bcd528a5423ef5b9f4b2cfb23082de9db6950d90b4b7c88c750abd9438c7ec01a8406eaf5c008acffc5f7a40e91b370772534e2ed236b79186119ba06d58caaaaaad107874f70fa41b098ff9f9a74752013c2950cd2cda1c16361729e270edae9b84b967a24d665137a1f742af0ab640bc6b8e2825d9b107c02e512b5757452f73b2b2621ab101e650083d836a0f10f9b67a3853c4294d216409ebecfc4c6b889acf858e5203e727f9bafe65ac31485c6f193d5ebdf714c726d62adc3ffbd349704039b18a614211452fe91d70a7b71ec1adc45cfc0991c8dca82f7a0b7a3b24d161592a9f97aa2dec04b47d9d162c89ed64241c17628cd081746167b4235a8af7b1b01f989889c45000324f75cc21bc604fd0bfab72aa11b5b2cad839dc77631836981802be5242908ab1c83d22dfb4e40d87065404cf1f7ccedbb9b3dab3314620e244666574c928f5aa2025079128474d18d91ddc81bfcb229b97e970f008b24b8d6d01289aedc1d976b49a37ead56ccbde6c834a0d23862941568f2780c8871bb89023c208dbf42128f9fb3905c17226c2c890bf4ea609b3bb839ac23938f5130cf60845885c7a3ee24f5abe9776bfffc8f6662a6c69009296c0bc5895ef447576cd96c093c824b50e9c1cafd02b4d3783796c48641e648d645d4cadc4659761782482ea7bafb8433a6b6ff47a6f7ae336cd768dddeea88102c9c7a2533568c448b6d372d63cd2b752fee5c7cfb614a5510b3b31e94f5c6e5a46b08f5160d81c04ce3728d671afe23c8256cd974a92417c190c00ff5789e69d800b3844b75f6b405c550ee3f446719c4989ddcd6c34cc5b21078b99cd1998a4d544891d943a619dfad16d3b91912917d53e57d3fe0cd362c730f0b0d6f060bc6920b338a7db8e95a962b3784bf2d90ec3c37d4967c013d6456513295b227a2ba1a407eae7ec87ecdc0632f82e263f5f46b4f9fb9a085d701784392d3ffcb8877b7610483b3444c518573a5d3d83d5cc9d4852f1109b35e04ba8b8cbae0235c1badedb34151ff5c3ed5553fc080eca6d35d038c503486b1f2ac71dd2538eeb6432444ce114d04f5d31b2af6586423bbf8833d5b5f7bd0d0557a4e2b82a06083e14455e19a7d05879000bf7c2528f64d8eed831d84cc1a22a6cc9d03da7eadd199a09e801f27f81951791691697c6f687b3eda0b3c852ee68090c32e2eeff0c7f61220122c11a37c2dc7229e89645c6b09f89e8dcf8c1e1aa70dad3ce0572bacefd0e7825571bc9b2620e21ec111aa707dd6c5c9e5e0aa535f4429f0596fe415694ee6bcead24eb8f4a967167545922dc45cc99706f703707d52dcac565dde25e58b962b23259505b8886376d3cf15c2480c28dbc5a703a0ba4c181f5f74aaefb4b54d1d5cf9707d9305402eff681814ccb8751ddd5c5fd409892f4b1539b397aff3576865d360bedc5f0c1aa8dccef64428102b8ac3062c008e4b2f96785672e81346d8386b09ef65d43d2838c89ed6e782a2fc997430b16540d89ed0a6bc1c2adce169db9658340fbf85c43f2b2dff3c4d7953d61b99bea678279f476d06dc10dca552ac4eb6ef4758e4e8ce3b8b56f936871cde50f62bc3b20edd33de9191921a5f89271124e73596e185d70a194c8c5681d34d4127af3ca97dde2b7015eebf7a84b0a4892054bd88c6916c004f206a699762ae71ae8410ba2a622688e0ebd5de9a1a12e35dc7a498881f583fc239364029a2df28ad88933ba63bb85c174412e9a1c71ea0f7c4e9617b57532a31556f646a0cf24d446efd641f05682f0eed90a27ca5c2f9a9368e1b5a6ed1d512673b1ccf3e30f533d3c8395d9fff96746077bb6de55a0018ba853afc17bc11077676de8083009f677d846eae130bac6b15f05ad473e3a5b010215780ccf587f40e0e1742472b843911ba5f374f0563e18cb72409d707063113e39e2a703c9af8dd11b896393b27431764a756cfe5bec793adc244129f922ed5103c1053b71247bb6852336df8a46e749280e365b7c606a7c827b1c1fa17a8f816577408b5aea5d211d94926abffa02eef1dff08ada5fc980240f4967a14c9fea56fa588e948ed8d5f8803ce79a56f2f9b912462295ea8a0f10babe1e3d003f8f3d630d864694343546bc62efe61e933ec6a1cd5e104e69278c0974f78bef9559ad152ec999c529a186740a0d32c396a9731e0417be23be67f20084921ffb8e1cc2b432ac20ec653d6fa9d8402a8619c13b12df24bdd9699deb7b978d33191d7acae7596a84c811620cf4efb29448f3ba2bc25e6e47d7a53276af9f7ed2e3b7638cd61c5d5585071f0800be39628de17c88cee9e3d3b104a6dc9c37a131961ace0c793b5ebc6ba9a7b05d5e921df3501e27f6f19e6f62590ea51985c281c3d7ed6f92b9790ce445f1054623adabbf2eef4efa2e02f489f2de61480cb79805a7b24fb4b9bd1e52f6ab255be4b5ac95966e3109421eb9e319c256380b145bfe41f8a7084b3dde05b0506d2766ef2f95a9395caf1b58de2497a277df72ae087acdb5205e62d97cc5bac5adc9ebb8eeb18db3485cd0d6368be1fac6a81b79e819a9a9b02ca53e48a43c20c8451e73817e6679b2809eb2c12cb5bfe76aef44a0e2e947213036ae6fa303c56b7c4ea6a56f2ee68774ef84473b560484c9986b29420b9d02963340db06b6dc958bbe405d79008ba12d73fd1e642465327943db0ddbc375843fdfa3e74e8d8cc8347c9365f131427326cabc0af1f0a84f6525bfbc2dd43d9c0f8c19ca5d127b836580ec83f2221ed00ee33fc957be57514d2367bb07334d0de5ffeb843913e857b74294631271cb1b4b09c79983da6b834bd72c8862136990151fb875b28a7162a987fc1ea2470dbbf12b457f87ede4326294eef61bffe55a90c3375862ed9bab46902ea4ef9b8db8f18c525bbcc2550b355e7eea5994928dbcff88ab8a35265c5ae07bc2d7ac074fd840c3257768abc702e4fe2ad0998f218d20bf471b152ed95ae1b7d7df8723f9dd8dbc2f5092b94286e2e040607e0ddbc980d6e39886fbab42d799078716e109407ad2e2174ac52afd788e334c177982047360cdb7693f19106c1f608528cc13fae4e93c65f58414cc7d9a00752e1182b4d0c988dfaf44b7321745af0eabac74afb6ce977207c2e7e5408bbd90b821f8fb24481e6f191511c236f9240fadec12c3141c147772683cf4025e50f06b479873425635c4d89f2b3b67ee012f8978140f4cac961ea5db842ef0542945148f5c5da49dae87de75edb547dcab1b0dcd759eeb9d43d6a47e09f87c43dee12301e2fa92b684949d9da40c3a90c2b61380752a77c5d1db3548a7d211323df0a319121c12010b8918a63ad98b390a3fd39a0876afabb3c02266e717cf5c177b9d9140e70d0a06b9d9c094f71f1b06136e012a9de784dbf9639aeab4a2b8388ba9aa7f97d2d600708731f05da39003195ca688e211161f3066fd4a031c50d0dd400b5761a99d0a81d4f6200fcd6ca6a949d02ad574a5ccdceb7047a7c73ede2673ce260395a44d064a45341775c19a316bff61962c87c8980274f911b14f6748d8f70004f46773f9744268cf3825793522ca622190039d968de6fb39b6f5ccd839d4df2e8b7df4e3d47879e30bdfe77452f05a3d126d87fb5e560d9f108872266377e2b09288dca5a1f16dfa41a5e9be9ccb9942c8004e26a970f887a4f8ed902dc39112f565b78614a692dc8c6657bbc2e5f2810a15aeee4861bb3f02ffadc5cde0d14085076b9772b37a653adf14c6b2c7dd28fe1e511807a7fc35805edb17477ce9c10815136954fa2adb7d97cf8fa0418c67719fe1075cba069b449fe408eb2bb7daf0a1a142950056e94530819415c56ac50a593120f85f09907546320debe1f81928d1b60282868353e5e9fb61954ed476265b5cc51d42cef7bec378fc6ef31cea0982aad22d42e64f82e856f9f4c0546d2bf25ab6228597f422adb677395bb5d9fef2424ed501df7b909250c250b0f3beb10ef6e7cfd4e8fddf3e254e07427bbe93040e83f7e0cc3b5190d4beae8a72cafcd990a46602f86ef8120c42bd70d1ee3c4b6e9f0db5f98a756d017ecf2e2bd6c2acce6a126976a3d0c6efab0c4fdbb481ca3d4971ecc5d5765b80f1bbc441b9d086eaa0c904453c612309c52bb13e306eb9b40f58af45d3ff2ab610134371f41216514d0b3b6f1fd8f380620d8e996e79e4c9daf506b0bbe0d2052596ae74685a55d1138ba546abc679f1b04e260efe66f4ad1879cd92c9fe029291d2023714eaeab89905e2251f15e0e8488cd0e182b901e78c4606dcb6933e5a7cdad3850f74e04a2ac636026c43f4af187bb04dce1f87e1abaacf13a6632635a3702dc70532dc06424ccdfa62fd4f1cc9577df88dbc14893894bea032858431a06c8034805b18c3ebedee74c7c965588fb81a2a0459d6272b6336b6221ec81801ac3e5f649996366263a0a42c219804467ce2d03f63e91cfb5fa1a0d3de86c0f82f7b8445cc5e81dd19e4b0bb81156bb42e3e278a86b64b714a9aace8a5ea1771a59cb59db11aa3ebd05d14e70af96170eea58e1e8acc34f9cc1d4c890b10974b8c9140f66b00c0c821df023a24fdf8170cc7cad4d06294a69fe82d429d0b44d8adf0224353ce35a60d9627f23539413b6ff2c501e9fe4fa79e587a3dbf9e4fb70a60b84f79cca2c5d80f5e87863563d8ead40dd5583acf2e6e22bded7cd6a79328344ffff570c8a908f112477e7dc330c8e48e8c8a39de9a11b236308394b344f6b2fcfb814431485ffafcb0d470a0124934b620e727d4a4fe8eef90b196e9729b016e0ae7889cba4198f5f162280a86937e4406c804483ddabb03e1476511266e3c76008f7afcbeb65bc5c537802d8648eb63124f610f188af45e0426f8b5f0d7e046531c9b3bd26198f03e51bfba2e240b207463edf539e57cf5752f902772e59d01e2ce6b17df9af3a9fa04d5c40b1901caa07d7582da3db12ae832229cbb091d075100ac8faf37323ea4e008d709e4bdca5a07383fa8f2fe725d0da4f1f000b1dfd4591e26564e2b72857030125f173c4016182006e8ce00ea6bdac7686f582f8bdea2f9dbd8d5af0638cf2fb2ce042420019318ccca7e4faa8b0cf070b158844298e4618948e5e5e8798c1c53711baecb420394894b27d72512255cae4b05e7947ff440b7550de73d93a9b2bab3d78221fbdb7c0c657e32a42d98a61682eb96eb28d0ad622ca25549ce21a46c638802d5ae58e60b485bc362b8c295d58abf136d864cc67a6f8dafe0c9f2ef12fa9613229d72d8e4928f08f1c7df9f095c3148f1ae8e4c06573e49e97583f4ad862c24deabed7e7047ca9cbdb0110a04cd0634f985d19eb4344ebf7afbdb3a1872697557e7cfebb82eb8bcbcf0e93c2c4dba0558147b956cb82a7b42f5bcc70adf0a9673f074e1ae88fc825f0834574d970ca43bd373d36d47f0e81646b9e6eefd4ce794d22a2477729c54eae0b949c1613352bc70ebd1990133003ab9a17c8d22121ca519dd6c338fea6c4566659562abb0320880c79d3b2f7b5405ac653bb8c28823b207dc4039f43d7754693b84e796184523a1c5d7484b71b58a99b4c3916881edd699e36635fc1de786afb62a473a155bc53db67e032f85bc96f5302e35516c8ab69a55ce7d5a7e168ab84ef1e1be3eaddaae3178f78f78b8307fa8a12490e7e170b226548a522ebadc3819b695287cf757f791bf43a01d1daa90fceb870107cd117e648df6fee77f06bdb228c2157917948c70afbf0f1f2311ae0360b1f32e78a2647bff3ab8b776ecaff39826547116fcd5db9aff2e8386f65d2a182f8d57682617af8e13f815707770f72eb85538b978f562da81ed8ad08e16d6279647b5694446113d83c3ac09c4ca89aafc79d9bab1f43bd957a12b4b9b0d07fa773858fc194801e88109b873d184d30691c8352fe1d0e0f064b0dc83b8634da197a18e9e7c89d7c7e97ef81f495cdfcf131710fa547e670790d4d846271a0ad2a41e876ffd30d6f89e502d1c40b1c9caaac701b76e41720c839592363b876f958c4e18c9995691038eb6c5d7f0b2f2e8971b8a939ef72fbc9a5bf901738505b17c2b747303b2eea32fea752914ae03b7c1a9bcc3a318d23903137e0d8b2d31fe02a1c1ff80f7d0da8aa43d9e4daf5d27c8325450c24a4f8a8836dae6f44a9633f207de22d89587f6056f804eb352082b6e0c6d5bcaf09239cdc0c4ea88a39728d09391dfb7603c21ccf7c4b6793886f53344f6691dc1a3d4282a18dda149ce63bdfd3f3253401702266ed3ebda6b70fb1848e14ab970166515f9ecfd38f8b47e28aab4ce760fe18666c80119380967a1753b439c99cd738da45921ef5a2a2c30c9216a14ffe368a3ef59eedb1324c7654302952447c069411fcd0e6fcca93e580f748320a30ad9f4950abd984dcd8b3c2eb73f01f4b5021ae455625c308ec24a07fa7aed25ce245a88bed652463782fa0086a2ef2e841e2c588dfe5a71f4e8ffe5d1342aceb7b03789080c07058002208cd474dd258b3e57cf4589982d8f57845eba411771f230048deb6fdbff9290bdf7de524a99a494325a0612069f0574fe0646666b7230e6fd9f4ef95bba70b93273985666d27432994c233568ba8401b3258b937442bd1a9148338c0e8f5d74c4273927a5ee15638c1fd41a000060b1022000178000e89402c036375de77938383900c029fa7252ea5eabbd5eadbd17632cf32ca35366d9c51896659ab67199b66d1c974a652ea552e56c6373d379d7d129bb2edbdcdc749de7e1e4784e0e9d322707274747e7fb5ab4d859f96a45a75cadbc8d82399c0db97574360a7e9c0db915305bb40567436e9eb8e33b3b74ca9d1d2cf5c517f33f9ca2df0991e36cd18829edb22730e545e40b0a727c1531dae11785b5cfd85a0c44c240f833f048480c20fc481848ab9afe19340331d0c15084ed35c6eaf83f80f98fd3a96b8c3d24fe0f3186613b6bd40b29eaa8fb21c71791a71711a317912d2f24233a505a3b1d5ce26befb536642a040d79eef81a02440a5e43b66cfa2e5cf835c4871dbe8b42f10a41d42b044170b8c14ade767c0dd1a163ca590d5432b7e36b080c55f2b7e36b8890ae29a7767c0941d3d590f38e2f2161760d215f70780561c12b881729be29187f1f4b8a3b8b559d689a205b82a8601e197984628904b2055b6b6d1027b427626badb5d6febdf79a10a6d630212a5720462f20416cbd40eebd189a9709587433d02e4a8da3272850a04c284e9c50279f0c187f1f2b067716ab6bf232dab286890e8657088098f0e465740591ee49d7e465f465e31d5f465db0505233c5d50275dab180317661cdd30eff5b6bb6d09eb8abd3165a393b6ac922882cb4ecf05d42b20ad9be7c26b3276e2c0b28b327ee1067234c5ab22041b742996f09e3ef5b32953a14d42ca561ea52484305489a2847696200d221e950d09246c9be3b6a49638495c49dc5ea926877e40a353b22b1a3962ba0ccd5bcde9430f0d7771103f3842cd7ae0ad835cf9e79ed9384dad1b538b3a097d27b6326fb8e5ad00cd98f351a20649cd2cf684cd8f4bdef5956cd0edf255988d81acc9359e080939a1aae60a18a295156f080828d756875fef0951b568231c632d8d88c0b1b9b91b2f1b551f9cc0b7698df5f80b3b0d7da2e48a694325a7b66886dadb53732c8a91db59c31c1762d677038d384450ba538d53f9ae23709f1e0117fea0d6cf93f66919c35343c7fa694724a39a50c02d35c9cb004122b8e7849830511206a668a3558184a29a55a155136045815585441858b334cf28c0a3befa8e54c9028be2a30febe3254acc19e10b140a94c0c8e68c972858a325065ce44615150c99ab062066bf01151180be2decb21895470d9418c131b7460819aa83255ca60894a9571a10c95a8d6b3a420428b1558aae842c514376be855e1de5bb443932938c880080b32600274c9ecfb19481921519d91b7a3162b92d8da8e5aac10c29ff2170ac38689da12c83e59edc31a75b168be20c9a42948ae0f6338f8b4c73e5570b5c3077efffa443ff40ffb0e1235e1f727fa61ff3ed63fec5f7fcf5f07d4684e992dc9b4e54f59ed58edf0b7ef6f35a82f144d4649ef6f41a9c8e958cdc7a8cd531f977ea771af519d03e76d2e6713467e17456d3a7f1cff9ccbbda661d388bb5d269a2d3f3591a693993497340af6a8cf69d8e63177ffe66fb48fee2ff6da4720ef6f6c82babf796e6965dffb2220ad823de6ef20d27610719f3ffb1128b0a2aaa7c08a7eea2350f69ae4826c1ebfe482babf9fe3086f8fffea957f8e961d1aa395eb1cf271b4150f5c59e95441b9331509728f30428f084420fcf37b442002753f7f84a0d58eec55afd23eb4cf3e02ad8082563b543eb8577d045a4d9de3e63b9bbfaf496e8716c4fdfd19b30323edb9019d56533bca5eb5430be25ef51eb47df6910bca3aea15fdd4d38314d35df0d43922edf9918beac4586871c6cea89201829959da64ec47ade0724d87aa2d267bcea9254a69cf39e7d412c534b5905932e7dbea5094e707a9458c1a8945c617464803c8041c4126091299138e001066734d80c147910931604860858a1c5c60844e21460562925802d723349c00650435e60447440084c788c122c68725ae15636563313b6c7ced12b63a6d41eb59504530c15c90ed8bc8cc9f67a17a3881091d846050535668811827617270011492094c401501c2440ba050803aa234059a314c637288d5dddddddd3d4affaa85fc290945db3fc49f598defb5b65677baed0dfb9916b21fd627a168dbaf12bb6922cf4cc831e668608eddc02f75883128641f03fddf2597178c5d2ed613ee2c9613538af122664c155a9c2c967f9fcbd5251958b5169f8195037130b0daf9429c698bd7b4edde7b412195b66d3a2fafb63994f4807b793fdc7438b7ea351dce7d43d7b6d15a6bed6b00f270aaee431e3e210f1fdb69a1fbaab7dfc922a21fb4863eb6fdaae9bb9a1bfad2cdec50ee1bc27d3a546f7eee9baf60e8517b2671e59e10dcf55b441825d44f5af1affa26e4e113562d64ffe6eb8743b34e34add6cd87321cd2a19720ad509cb52d05824a470fcdeeebcf279d5fed7c39fac66fd0b76fed98ea511eb5abfd9b57d98a5f477b3aa57354fa49fea43a1fbaf68ef6be85fd146783ca4f3d472db6af69fce93056be8e0e5d38a0477548429143458e46edeceeac95f6e5be993e461ac03e36834a9d192d0a433e6d1fea64152bcac03bfe07f3e76dc0b0c290567c8b4e320cedf197fa896ae7d160030ebe04da53350f9f6f71f01b8091f6680046da83afa4db53950d186e2f31cef9fb6ad5e1a6431e3e9b4bb56ddaa1a401e4df12eef7b55a25d01ea73a3a5787396b2b0ec5c3676f1ff2f0d9aa4f7de8da3e749bc12fbe908f391bdb0ba974282f17c2b6b72f81c268117ba8f49e3cb1cfbe9fd29c43490f36878a72a869a47f30c13bc1e515c1d8e58a51bee021b987a405262c58f18e1cb5c0e411f190bc96bc6cdff1c50293b4f1ce82913d9fe5c2813ce57c6988a52d31ba28a59456205bdfd2fcf3bd14e44929f50f9dce3964e98ad3f6f7260c09e4ff5be6c7a89948289ad301455bbe1f7929c8f4671309f5c3aa3bc0c176eab2c872fbb0a27c9ab73c5b346f8ab31402e0c0c4088a0e539ca9224a21850f2fc8b004054a4d50248450e208a326171051a4f4f4c496147610010f2b287201861964c1458809546090409122988c3cd1040f5720a145966b87ce92b315b2766bfbe645181105668c2c61450c9e94a002683e4f84f15f4e40626488234574004a224d874507f55a224393344b60d8f4bd0f5bb2b4c377e115a02c41da61c4b2e7372047963db9c433398c5f3040ebcf3062330d982d2b72f84f277da7d386ecacc8734ec7c2aac29dc572c9c0e52ad36161ad5521866dad8d4a73b3e34b85a41de65fc2d808c6189ba04402251fa4c49952154c6986acb4424a096953a2a6dbf1a584451625cd2b85a3170a2b746a3e3018638c57272831819225b412262c345787053843dc9c1deebd375038204b5e29287554a4792911a10426c5a4d597586738c319ce7086b31913839f615a087f944f42d1c6d3a3b3ce774a2709455bc81f93d9bdd6d6ea4ee99cd77d847bc35a31795bd02618027d493f8d82429e39fa135cdda8a1d442f3e917eda22d391ad4c195fca24dc110a6107d50c8ffa9fbccc2e57213902143663a99da45512185843ed8bfc89282bd8c1c0e0e7eae13ed5a33f70905ee6290e715dd2b69c89024514b9a7825e9b2d435e14952a0646a91214691c39cbd8f074b52938404ccbdd70ef110bc5030d231d145b1c18eaf24529234a93eb3456b747dc971525bdd5dd26e8a1cbfd65a6998ef098cbfcfd57971b9589d13ee2cd6ecc6c829854f8f4bee72754b28f13a92e675242a478d5afad67ed1d6ea56c1b8391036ae33224fe98176eb365b4664df35cac05feddfa7384070b91bbe85ecd7afd4254dd5aa47a01beb7bc33e0df39518e98c61487d3ff265fb53cd7dfe789d5f759cd1a501e217513959d8b091310ab04fd7bc8c1cadd9e64f84917fa4a5d96704e26ad0b759c8adf6d971a15780d8e2ee34bebbbbd7b8f90e29754abd2b81bb3b757777ea4eab6793bdce29f50ecbec82c852b2ba1e220683afbb82f1f7b13a12b8b358b3da8b311c67b517df38abbd36da1ac3ccead1098db43269189dd078ec5490e54777ea4e8bb0c4c6743d743d743d743d7426a822bb111c799df0d4ede057b2647915c9411291c37f56cbc5094eaf225c867865bce3ab480d2928328508fc2a92b48bc410a53ded78c85a88fefc89fbca962c4edd6bb5f662c7984e893156adbd1763ec628c619986b12cd3b46de3529e4ad12953294cdb368e4ba5541b974aa95439dba841d3654b963060b664b1584a95afd8d86cd9f36fb2dcd0297b7e47a178ee79744a8f3a891a33c3a8c99bcdcd4dd7795ee779383839393ade869393a3a3f37d2d72369def6bd1626767c5e33c3c744a1eda626767b5e2e1d16003df60033ae5063bdb8a87f268a0c11639643cab7b8db4861c661efad56d1a2bf183f9e39e3329a5b42e6411a058914189abd180d9528a2f36c7dc873895d2119483cb41617cdfd396fa039c3f4c87df6ab9acb5318a768c2f3c18b28726ab907bf80ebffdd1a7ee51d5e91763fe60fc7d56b02d8e2d11c514532c85ead35dc3216a41a81fa91ee26c58a1aab18eb3278d08e0902de1be082ce4f861d196be2988ad08434ec3e7e7d990c3ff9e9ec4c870b46b080ad1f719b3e5ba1165c82dfdef8b06cc968c32a49c766e5b9421250d39868f02b6288304b9ed4ba77f31fe8b31c659f69808d8fd21bbb11e197eec7ee41c707548332ab91af4eb57df7c627c11a6368d1bf145ae46a432c61c9681b17fd51eb3702ac5711cb7811f5f784c191831df92ab61dfe9db3a553f55fa07cb2992eab10dbbdec6309e8de91053a952291d67cbc3d76565c02c4ac99945866197327b96cb6658b35f75e8da6ea5d724df9f98fe0e5d996b4b99655cc5c00db8acd0bc14883dcffcc1ace6cd1fcc65d35fe1c0fe558fc110fb10bfd67d8c2f6e6ec00e0cb1b709b1c76636fd2e0630bb6e3c1c0dfb18c8bdb73d7e19763f3f04fa9dd652dbe468d89bec6fc095fdd4c79d1f03553f3f832b1cf5555f5fa557f65738529f7deab3cfb09fef451ea14de7d9924299f67458b42b37a9135f0bdf17e3949308cd064896369265e99c73da6aadb59ac57af23e567d8ab1c6aab1cb9fac1db5d07cf938fe042a427b3d01b3ef8eaf274ebc9e0cf1c4ccfe6692275868904d9f306dfa3cdb9cb56acf4a0ebfa699933851b3e3abc9101b013bbe9a406d0c6480b2289ede0f39ce160dc1b5eb5073d05b92fdab5725e7d0317fa40772d7b729d264ccf6b7d225524d82dc0e4ea969dc6b2d40ff0ff4ef400ae230d9f75738e8dfa73ac47ef597c6ce3b18370543fa3931bec04fc190d2cf58f66dc2b4b7cd7234769e823aefa02ac61721605487450edec7790cc4f91b5068fb9bcfdf75ef81ab9d8ffbc374b5f32d3e6e6dfbd56fbfd2ab1d5da3687bbfc2d1e26dbec5dbe400228190623c00cfd7a02d40ef3fd07b1d304c3df639a0d0cdc7add1cd410c4787db631ed86916a63df56f4021ec6d74cec018a0504a6f9bae711fd30eae6a64ef4fb50cd4b4cfa236f64376673db42f9b6a8d7e867de41c40ffd5c4cbbef6b5c939a0e804d85f8a6b60ed3fb9547ce12a329f5575e6f5a2c5a961ea1bb681e1ef0dd3b2ec2f8fd5df6c794cb2a43a1765721e612e168caec6ab598e06e674cf77894ded9aadd695767b94517394e1db3a9e3cb3e54d183cb3877af3c7ad6cf298720fdff4b9df400c0c45d8586adb736a1994dbc662da4ff0fe667d6bef9c0dedd778b345e7f4216a033f9e168c1789ef8bb1d7c0c67fa7efb97119a58f53d6da59ff6290c7b7ed9478b6f20a34fa6e43b2369e31aff7fdd578b6300679b030b7bd76e5955262f8ebef2ac1faf7bea66535f0be31382fae0803c37418b7583086dcf19cf20714e39cbfef3f633f5f32993f53e6d203b87c90c2b7697db713c9c321c7ff60cb92f7429e44b367bed4dfa5a143dfa0b578b624de74c891724b62c490f4fb28a5b352f74a5d096f054a25161f2c511ee5501eb5ab131fe350322929e90503d3ab851c92b6740a8ae2067e7f1bee5041b893fca48db3373f03550e624d7b0c946fb5cfe66baaf7b430ef22a21f41fe944956e4f531fb98679ad9ed6bea3d9c73d7ac37faf76bd559d6972e431f92c90eb5ed7fec0a867407c9771d43a9b469e1d5a14c8a540fcd4d87e6be7a886a9a563f82205cbbba2f5fbbe1f583e68ffc5a53af4ad9fa9aa7743834354f0a391ca25e34ed39ce462837f7fa29f9419a74aaeed537cdeb570df49f416d0cd25e7272b3d26edadbab552fbdf9135dd770a86a5ac8dfca7943d3abfbdbd7af5f37cd93421ea25b6a5f1ffb0cac2fa4e9ec9d0b61db12fb206cadb54c98d9dbb64fff052cbb831d5f2f1ced17132e2f264c2f2660b6b6b7a83d595146fee814b3843cb103ec71007c5210fb46dc10a3a058726289c8114bac2540acb94be45224427a893f2cc125c61269424423c35294a56e0990252196ae5822c0922c4b1e304083254afc9228856c22765972e9a020a593a5c51ac0f7094087867100b20f0b00f9a8c9b5149de9ff9012488b2cc78fa32483f9fe5153b5cfc25f6bad9567b6ea7b58e4f0fb789ed572ca417611d16ac8bdc1eade7bebbdf7de7b2fc65a837a6ff8394d12683c385370a6cca20db69058556da92b57a368fbd3f93326081c8e0b6cbdc12de43f67085467bd82b6cad177a46e918f9abed901e8a9c9f3b71f3c88d2002d1f172d9c1972d86ab970f9c4f868d06ac8ad93e3d56ac89d93298e263f5a31b3e3eb862edb67c75795a71db91b768f8093e30ccdcb2f1ca66c175a7793a1d03bbe7000b2a3065a8cd8c6461626b3156f50b3e5c659ca315cf3478a604b9f2d3d20a9969143bcb104e3a6ef4935ee38a4f4ea53a33e61d0e27cdd90e5a8c9a98c3f3e5bee72d76d44b3d6cb02ec61add552a49582f463ea519c1d509f136f1c2a9452cd63c3a2d9e41c3f5a2db27cba83e1f614e3fc7d5a95e747dab3b2fa7152c8934c8adb72742dcb474df3d3e2fca152e64f8de51f72cad0708eae451c25f9e6fa474dd43fc40ff0368c855de3dadc5b93c36f5356ab5aafd9a546ab21b7679aa3df90c38eaf1bb6ec02ecf8bae168575967ab5e914397cbc77bc82ddfe3eb86305bbe6e303373a43da1ef7065f5b7b7ad94c33cab6832a7341a311f35452de481e2ece0a829ca8f0a98b87bca2024cdf97548452ada9aeadacf3840b0eb4f30ac2e67cc6c6fd828b2528ad1a2cd108a54b4671a1c2959ce9f947f767fc25d7b1c2a3962f920d8d2ebc695fb2086f5a5ca1c0e3a6bad422e65105a64b90d9ead2539c458488bd32b638398bc265731b2533bbe6c48b3e536e79cd45f5598dcecf8aac234e7182dce571527696390a9bd4f6c8f62852469b46c0c89284851881462f024081049668092244d66c29299b69d61880a2f1c8184c949141aae201963c30b521c69020385181b906c6dc7970d40585fdc592c570b5c2e16b893183140c43471610a2305d29228741802480a529028c28d349581424cca888d4111853ae1048b25dd892698a6d4d003134098ae28d104d309987af896f8be2e49249104171abe5091c111494a40c248112e98e1a1c81527d010f5c4e55583d2b63bbe6a40f219f17dae15b85c451451846b08974b0897ebfb3c20e69c544e185d5c6df91e1133a099c1880a8ea42005410415a78dedf8a2328607edfa871f8581f9d87c34e9d8749c2051938e6cdbe66f8fb50ed5534d245fc52344ea4c7beefb639a6adacc791cee739e7ba2261d9e7c771d3a4f35117d1d9d03e7a52672e17c8ec6d14433343735d1d39efb9ebea0ea53e00a02d86faf03fb4d1335e127da7468afbaaf6d9a48049a657a6a2269a493a48e226ad2217f6a22a2261dd94b4d8401da733f7ba2fba9cf2e9b8f40f1cbfc501a751f81ee4d2893521d08b43df736a08fcc47938e4c4b27b4e73ef63e36c92324dbaf9b965668cfbdcf43246b1f444d118840f5ed47204cfba81f814269655f296a768b1d5f5392b616679c2929f567cc6c95c37e042290fd1d12a8fe8c79b590745215cd7967b0511265cc2bca0bf08eaf284fbca2a8919a3f38427cf952f7b891f5f811e48f5d4fb077c2a226db5f42b15d471a747a4fa278d9f2e3e60e70e14fc1b0e82918dea84fb57fd421d18abec7d88a4aa4539097241c149484c1c7b487e5da9bade8f1b450c8f2a3cb45678e5e2c10e434840993fd3bbe5a80c2c876edf87281891d6508284e3bfa186b3d4a524a25a6e5e56c8c81f2280a463ba3ce2ee28b1c49590318e71c26e84babcb3f6d890123ce29b49616a5f5eb7d3ff19c5256afd3dd7da83a8b874e4a65ac30c413e418b325953c0a8820279e1299e41b07525b866d100b480f2a950a6c3a9bd96fde52ce3edc76b6e3f990b7b980f9d472af717ab5637eea23303ff5457b0343bcb7cfc0b0849d3d4e81dadcb46c2bda1938443786c13076b14f8f2ceb37b5f9fa35a5ab4d4a87ae02c3dfaa9f4155a04db76d9b57430e5b3ea9cfbe7e2bcb40ecb395bd0de8cd56f619fcf8227b55f62930cb5e661a03b1de66cb4925e90f19eb30fb7cec69943e681146565dfc9fb4d313410e5dfb0e6dbbeaa1b9dde902f027f163cdca0db0b690fc398347bd9976a8c4cdd754b174866800000000c315002020140a0704e27048244e336dee3d14000b78823e7e543211c662410ea21888821886611084620030801840106306225403129f166f51b1de5a447d255574773b07494ca71e5a74fa46a2d01a8733a958e7c042dcac208c9b041dcd0356b869853756b89640730f2dcead0aa8dca4e86c1db262de5874b891283467e39954631a870729c776371c2428a6438f836463381b9ea41fd3389e496aacabdd99744c73b0c2dd56707491a277eea0026a7712b4360eacf0f75247a2d7d2dee299c431b6791071da196251bb360b7e906d7f92759e7082c0697879d8687a637a8761b05c70beb611377cb9a303afb56e246632f6e62a66ebb3fd205fec9cee33c3c56ffd2f39101ae46e34cc8de7dd69525c843f3d785da4dd0cac8dd1fb693d17967e6c77cae0dcc76bdce4d01b731d8a4a24447e494ddd826233c8295137bcc302f598a7cd26913c6dcc66b073dc33effbcc5d6f0678bc260fd4b27c57b9da6c2afb37389bc8b87d5d15e277edb6b79b28b58047a048287c679703f92d0322a61c5c6876747b33b025c6d3464ab8d0d5a43a4937b606d62f858e902980d0fe23bbc002be6d9adfe0bb28bebe973d61303c3f072baf7b4c829033261e49d598a9cd7439dc2ccc678fa33f1b8c0e7215f3ef779cb0ebee31859727f0aea7362d24eb5b687a63902d6cda2b6f19b82080eb49537220f8ca0787c4d37ab11992d6eab2a2abae6fdbe0c1d5449f896e56c13f21112a800451af998825e166a32fdd2ac21a214805b3fffd5f5ee91e1079eb9ff0ec4c1f1c94b0a881c98475511b052517a4069491688e6a5e51321f0abb31a9e87e30d7b107029f366603f5651076fcb16b4eec06cc7af0dfbec48dcc496035ef992d66cbc4c9961d76db776f75206feb73fedc73bec0e1784c5f3b81c0291d5c8990d78ffd71b6ae4449ab399e2ae24a933f7a0b3f28a88c11bbc8820cf177bd687fe1506e3112346f81e9ff01b93e46356fc154b1c47679b55014dab6fa120b161120d54936a1350df3a171ae302d020b45d8c6f4f7f283942888a0ad5cbd33dfd1cb4ba04fc30c4d5d03c50df098abf7cf5bef0d07020fc93c77541816ba54e3ee7061756cb803b0ab727160cba5d350b46d1770d37d8ce35e9b1b5a179ebdbe63896efb359ccf979d4c32e6467be09be0cbee7a9e74a7f705a38b693d10aafd38c1980c7e96e592d7b96411690b7336dd4775893faf0c08157521c0eaccc74038eaa20f99bd82110a36c725e2b1c788aebc90db69820d6281fbc42d9523866932999e5d864000310a54a77d5223a1c7a15850f10f91e37813bb4619b2a14d2e63699c24407a92bcd569df5fbd5238aec11bba3ebdcf25832972e55ae0b163d504099c4df567bfa796c7af2c870c4e66fd1ca2140d40fa126de598dd9f0afd39903c5b643dcd7dba18b68268e5abcb27ae0a58d22bc0a1e994cee78a19a008b8462cb7b8896ba15d406f6b9caf94c6e40e03be6a0f5bb31a5281a7aade6f6b3f56bafd2115478529339e6dfbaf22db0b8aa0d04ae900fcfabc6c0cc5cece6ba2c2ad95f5912014c4cf71e3776c68f2635c52d3d9c7b3f20d8d7846bd930f390db11dfc129c1fc5d73b2e9d471ee58bc467ae064ab2e682208e8fd7ea1933ca553c24bc453cf86eebd912c9a45da6955f7a60eeb5dc68b6f8e4fe3a045c4b6c498b41a16a8b2f99d82896c1465a55008b0584a0a6b90c55d592c4001f9b07d6e4b97c808d927d6c561b1f0298d497c47b56cdd0c7021f1b8a5b4c909de45dfd0ab480212f96ab7364a38d64ab517bd807be85dd8c3a65d04ce80dc609777b15625c8a78e2ba076f72a5d28ad6dbef2542321146f1d37761cd896d5f138ab9c8a061c9d1173d2d2ff2f6b8503ddc3c51bbb56d6ce560f58ad70287e7ed28e30e4c5c6232ad6156bd74332d6cbb2a7c0be5da16996152b2d567af5c3af3bd8e27fe1554c89b8a9615bca580d04ed0e86b65a8ebbab955899184460ad5e59e0edc96839c051659440762cb481aa337aab17d6844198d79a8a3d6ba4b802c4f26cdbdf7680eff2e879cd34989607bfe075a7755f15eeaafcb7d94e743a5b95f8c26900c86fc3724f9f374e7710e2708ddb3b4f5126f6b6cf9cf47786443279d6a81aebffe6b9bbe10da8c58b8d78eb72ed2ca3020fa78644328298fc6d0bf537677f41792381fcfe6ea09bc3c5faeecf918669cc05ff8d6d42d27f7e240ad22022031f741fd257be29f11190d3cb1b59cbf13edcd428a00dfd946b438e16f8c7697141bf8d745a671c8380c7939d5aa352a1e58d7da7ebe43b99385c5e67d4af31ee115d4125beb2cec53cd8dbf74634acfa89b9c382560e99c4c65027e01bd9610363d635148e2059bba7fa367e7e1869a2a5160940570734f0051a8bd318703fdb7e4ce0a2a33fac855f45e5451a16d6a05544b72b1b42fd0f5b3d5cee25713989aa617d99bae1f4089e93dde0e7070df83857aa6a3168200e8afd69f74445c228065da0760f7baed4c1e6c2394e6f82c4f4107b2ba29081c7e9adc39c30016ae19005abbf914d49cd9d2b168e41209c234daecd1f82a0f9c241ddcaf21fbbedc5a553d663c9e0e220e7a44aa6700dc417d5ddacf8bf7cda5e129dab0c8d6ad122c94725440eaa8961968d11d3235949fcab97b098644323976cacac62905695009c1b86e47dd7a42725f36ade7a6b066d3c4f5485a45831b88b67f39ad2279787eb77018e3636c77c58da66bbf1188254b55db0194ab8d2396744bb60f80c8118328af38f6d630f39f87999dc8b60354ec3130765870fde15e36560f681a1d8694c876dd217ab6be951fb88b85e98733049002b80948588a617ad589cb53082560422ced16b99c0b77995fce2d1f76338650779312b1558804751f794c5dbbb9211aee851eaa7129541d953df0d3576df14bcdee7a7d58dc4a75c8af39c75e9e34c17631d0fe815d8e0d8b002e0d86814c99bfa638b139f9e598796ba85d70d2ec61a77980cd13de150aaefb268d2874a6d8969528b77bebd865603eb02d297fe5e716d555d2e5e665222943cea132ac324460517708853626667be0aeacd6653b740651bb492886151362f68385886ba8e9468bfb12a2e08fd2f6f8c125e640e79c2a07844dd566740111d232f97ad1304aa03c3765e004a8584073458ad755e6153154f4ca9269fb0459781052fbd9fd4db7cf7205e41ed10157cb06a802854d4e374464b715cbe2ca779d316980adbb42532e3407960c1607f21fe0ac6384871200dc60c56b09a5b51318ad598b9ed97cd2afebddbe89b331afe2f349a9df9ae5c057555e12f60af394437c22779722bace5530f409d97762e50ec7c6e7d9cb6abb5997a2239866b68aa1396b80c501c177e02c4b3e594bb4bc202964e8edc201423d3b7e486afccde29933c7f88695e6ce5698b42b0b66f7e3d36eeba8bd9b789f94faf6b994520cf9ef48c0c0d292b301027184c136cda5ae8d71aabeaf211eeaadad4c25468876aa50836cfe33c6aa8510fd89df275b8b8e33977b163f31dc0235455112aee41c0dd9d5f3636c812baf6e58c5e908889a885896233745cf9c9b1f7e1bd933aef3670917be0db7811af86c3b84f4498dd37af5298ac1230c859386df90d6f6a156db3e9ce8691551cb50fa34d28d1a5dbf8bde6b550b4309eec8d22f5aaac80135cb6fa8a9374eff9407db3ff1d781f4f149391778cea0108215989c462c671a25de8548a320f6585b1ce899137e1eef83d442f513f80b8737236e2215f495977ef1e005e7096a354ae54826c7b87e18e4c07ef67c7be103dc026edb3ef163c46d10925f5d063acc9818c4bc59c666ee79e23f031d1b20ec2a5551ee127215144c528e5caf73ac295ef3cc6a925c2df72ebd735df085c40d9b1986f2e60dd967ea2e97304e052c33c997f04378e4d21cd8091e17fec6647908edca3a330d5e0112f91c96d092f56aa4dc1c56340f69d843e5a548832dab180421f61cfeda8801cc4225ba74823f769be5448196b3b6a7e6a89502671ca302c5b5d3a5333240c27821069c3570a2e8b7e054a65789990a97da59f04a3b7d9784616406a10e2b72a2acf8050ba53420058b07d3274f8d8dbd0f888e912bfcca060a4b0c5d8f4dcbabfd3ccfd63a03a02d6b9cf1792e67c4f9a032418d9b6179f0b3eeb85aaebbb8f266702874bfc318a5f8c9f677bba121d10c8e3566e21446f412e94afa91ae84eb542d435a52b590381fa4d25f4ff753af998974e31b923533d83ee0e11e44876897c9f3d7e0d4bf9ec7fe8e44f5f4945fd965fa3c93bc49ad347b91008307fe216a38a32203b6393bdb1a41c058c3f962d62c4713d8cb04c15ad3e4171b874f2ecc2f42b8be806e368425a0645bb8b86490a840d57eee74fd812e9bc82fc695663810a6cc42b5b95cbccc90eda8a4bed1d95077c6542d9e4b4a0dd89963234f1fb9a185f30c80a9d7952845b754aae2cc8f5dc17b9545db20c75a2f0dc0ec44e8512c77ab0b224014bca1bab85aa501f72cae5231e571c66aee11052360e614cdb6ebe8d317ed0f054fc923760e0e6441dcf92cc1753a20f9a9c100b977e022e9cb4cc2afb4ca47454e7fd6b53c91979511cb1efe85bd37f690c99925ab0119ca83c9bf727722ab9da8c7bb15748aa614534a3021d88590ae00aab09ec85605b089c585ca9c1c8a92d1fd142207939f53c52eb240c92e6a3ced966e2d14eee7f54640ba60c45095b694958dc48cac06b34730a3fdee5f3831e7e138c1e316fe141647fa6bd7accd5ac0f7cec8881d58e90475c1b207528bbe38502e91bbd4132ffb11857d35e1ffa6c473c7dc2217fd8b43814f59d3820d0649e5288d3ab844ba9c0d34f8774cb119d0fbcfd3df1b8af344ec84f00578c52ba1e7fd59e0447c9160b2e72f093b9d6e5557d8597a413e7aff464f51208c20471479dadc6154b49ee86cbe4db1a500ce5931f8d386666e12a5ec887c4afb0e45cecf7d12f4c0f88778fc295be9cff4cc5888698155b387143877c165d53abbaf18a059fdbf6a743a46de30b50550dbd6d14c06fdc929274979d1ceab2c90c28d0d371c8b450ba147c8e4bd69071af50a3de4d364cac7cf26d071f1826e47f19503e502e8db313d4809b003d9d6f8cb6cfb6e1dcdf23ff0a2479792fa0670c6e8784955eada53170d901058847f7a00fab681186e1415ad79d35f51d456b5411204a9c4964c70d8652b720c9937911e75695383c8267b17613039a9ea570a88efb5f4ca3683dc125076df9459aeda817dc4b7ebc3b78b7f9922c85b8026a1bfb150a11dbfffadb4c1d306b8a04ae2e0ee134256af6d6b6b1fbb8d13c1e5452043ce4cca11c5fe671caca1d7a98550906cc3e1fbd6edfd3b69feeae8a2b34c9ce8c560cf2d8dc620bbf1c3ae3e10946b0434cfe0f4f40f330fbcfa27f7e3f0e62e0523b9251cb985d7e71b16211869c1f6203bb7e53333c7930eb1d518f0f615aab669cfdb2c275b51fa9b27918e1209b78749ea060289101248a9ba680a410f8d66bbd99f83fecaede6a5087cfcf0a395f19bbfe23e3ca09dc947a43825202a0e0642e61c8ec120e6f5623316e05184058482e3c92ad1b6f6e594532ff77f581071e2afed9995cf42957b4e1c2a66e909de40cc129d3633ce3c1c3e838934198314273fd779d4d33bcea010b298ec776ab699b9b3857fcb0dfce0663db5e4f72ce01e952439b8d92893121992940e68dbe8ca5454db4b270205dc9b350edf0685cd163cb342e217c3b997440c8df514d6214d40fff0852cdaafef22f82f319e03f5c5ce0da6fc5ffdabc6eef1b7faa5af89402a027146d5334b829d3dd0a8fd1f26c97a904e68e445e61336342c25046dea151666555939baaf221cc0f3b6796ba09d0d8fb332ebd1604352d9d02c760625eb3c46da04658635e36189e7d179c38bcd740c4dade6826cedd06129fa405f2feac8eab0e485e627f63f65bc08aab7a00b8b9bb0c2c8896eef1b7ac3f26c756c2509e83607945a78f11189bd8ea15326d5efa02439e885db00e29df0028001fca6e4c5d2cbc5bc3b8fc14b464301ad4f37a492b447932c64fb50ced6e95d5332d5209694456c3e0d13398b1afad063c24ad6576fb170b1f8278e872b61f490d350902a74b5a20d7eddd9582bdf810e864fe03173ad4acf60242297b4910ba81339d57f89e464f6d02b54b342db3718a989d826809e232b906bd882864565e696de8bb734c8a2b6b89d00457a169211ec0e606e8c186b4044a1996b8d221b617c0aaf38f92c7bfaf6a19fe864f83e4ad40c9920c2fef22c4f53ebb9e6313673d6a17cebc5bc71bfa1cb783ba1400bb4e34a7c2787974a9a8a25e9d793c3a60907049892e539553712e5d3e905644a6f16594f24e45f98c9e4f1f9bc54642019d3db6eccaaabc2b38d15bba2c6a4b988ad85644056db4190bd0ff4aa9921ee9a2e5c3ecd7091f4f9bb66b211479240c9b2f8201338ea53649d0766754b2b8d5de82dc7e82de752c83ae264af7c8654169447657675b0c24859797bb28ddceae286139b6ae1ef32fa3717d4961f4ce09469edc4a5b5e81ccaa5c956e81cf79d5b761c980eeb17172ff23ee0c266000414b3812a796f412dadeb1d4b24c9305ccfb0c62360ae771155b0d6e2acb813c3038be6cc696cc6c168d6cd141ea568c5abe2aab6c29490dfe52d40596ef7ba36f5dbd797fb035b412be8e173ac86e0818ae6d8729f9da96020262c16b42d05d7e9b7f4c792b2613480baff3b836fdba3c0a7538328592b34f811f296eaf215101493c2f235d2a72244dc3c191be8864d6f43a7482ba81989ee5767403897d9320efae26ec88c0015966b116c8158ed28760836670177f63426e03777b657f62eeb60b49dc85fb014f084daeb44dad08f541095438a264a41c29656689f645acf76a078d6658c44d2acf7e1002b573bc46ad98a13d9d720b1a7d59159c1677694450d512bf3cfc62bf783980b3d229f6ecb0dd4765c14a0294102a2b7a8ce3be66331c5f34aae7b8228a9b44aa833a10df90b5d16c4e10246661b938f99bb4e0672dda74409b3a4fec1f8cbcd8d8420380b67748f27ea61565b4dd8e4fda029678120be77f0e2949a5b936e0ef942c754d8df953c9a9cbbdbb5c2203ee567bdb8e5c3fc0952ca5d00bda4bf60c777a3ded35c27a35e4b3644b42af8ee7c446f4b526782f1daa7b39a5c7eea5e61537182930f3e0c395b05e072ba1c076a3db00d19426d798d3f06501c840f73102245808cced580d0694ba1764af90fee0eaf20dc7df6d10ac295c12ae5f0523eaa516445d12406a8ed188409719ee27f5c433519b81b4e0c3888b188fb63862ba44b0e3504d9e641a301c2e32d61c5b302bfbbde30e792947ef37492cb95cc6b6e9049a7907f32f52fffc69fbf38e740004836e2a5022d6b9866c5b4aafe461e966ad37b984f91f23515d31f3b231e583be9ddddcff4f0d352944f237fb7648b1ab32cc40936f3edf23e984ec95ae5167244c28378ca1ebebb3edf72e94c5b3f59d7071eaaadcaf2f5fca1409ab6fd3bafa6e0eec2c0611292ab77aac929ccc5d3314ef178ca8a0dc184e00dc8ce05477e72791e19adf865b1e4b5955376615b622e9b71d4404d98c95c4f6dda0ccaa7544451e5e1cfa5a14252dcdadd2b833e90b4fae383d9b186ceb8531f1b4eac2ea0134148e0919a96cc93525ef083e570221ee87f4837190399b3ea1fe2566b615746fe6b5028d77b7182566f010472761b29520ea1f8dffb7a59beca1b7423749df89529b30d217c27f3be083e169a1cecc3ff538080a2719b20caa4103dec0761c590c1a8a4250d8f981b7c7077208eb9bddbe79492c8c34e50b8fd9307ff044e1ada08c0ced9443b7a4370b90de404d869aa61c873db4a58791977a00222279009ac476fa63b27761b76b11b7718bbb95cba438171deb7606582d19266d5b710ebd235888880e92f0a5f00f08b4c615d180de63acefafe98e4d024990136790a856a928708560f18e8a7474e346178f3a680d5549518e40bb9db4d13969da5c5ac0bba7f1468ba3b27b814a53ace409eacf88a4a886ec2a8294912f1d005d326ffbd72664b1698882eb12daae71d1a40f2f773084d98b9966ee7cf1708db36b012a895606afd2a29f9c2388739460acefe2097ca63563153e2443e79e16edc6ec5109e65122d92e887c2b4b2f8f63bd49c40c91eb64040c265b743635a4210b3897a4c6bc7fe1bebd8b4a784bc753189cd64cf0b3db222f54080ef5921510d8ca6dc0de649ea2ce9380cf79b5136cc757487d56441819bac4f51f656c21d9588dbd1d1ac970c5d84b8d6075475333c0431147a752078a6b7e2e85917c8a13303cb2bad98d35657d3dfb70d815687800c4955adccc7d3488884a72ec0c12cd770db1f3e4a2bda25d7f734431e7d7ec5b2c76c6bbc2ff8173d1eb37e741fd360e124dd7878a535047cb7ddfa07073ad2b1d4a0870ecc84b3077403bab3a0603669c5c56bd2968e7c969f126af2f6b6675c083052464cfbaabf07de7b7e31bdc431d1b2a1fafb703212ee1a4d0206b41a11590c424b44a994865593c8a4d7e5703316917aadf65480c92487585247ccbdcb3328d9747dfe2570398d3326aef51c071c20e4d9d4f08510ea00117f83d9d64c0980d2ec1b534e4f7cf8e20cf21c7d2033580d3bb5da3661d3e5087c9a4ed950f6a9d1796a5c5303fa0e0c0ddd3b7275c2aea080e2118f1a34c35ef12c0fb4e5e4b33fa1deb10e1b4be88c64c19502e4f9afdc3366694a18c13fe9486a98f86e68dd9f0cd6293301ab3dd1d7f6f406d83549cc54aebda7445848e57cf453b2c5ac1561c3895f1757fe2517f60b9b32b3a8e5b51683bc5be96f81e41826e34c77f1f2591271d8d534267c5f8c319c32363010a205651abaaba20aaa5fcf576d68383158848c025cd65fcc97c30ae0aa56bbf79f84361f7673f2b06c0310882d24a1ddce770f11b559d4ca417737821779fac53d4d65219daf698744ca3860d1698e0d1043de8fafd43f0d64066c05a5c44f59ec25221adb3cb9c86fcf917858ef3c2b65c237472cd7ab1980afaa8d9cdc230befa8d23fcf3217802bea63b94b2319e1454fbb039973f49256adba559266e30cb6bc373a3f0e28c1fd2eb03c8f101ec9770c70c2126496c880cf53dfcb8d2928a2f9d1da83869800e080e2f41152355a420d5068baef914f8fb7b9486dac064b0b52ea77d25cc3addc481dcb365b20b734807e21529b99e295b2b4e0bb1ed1a588e85e575afd5117b85066b73521075f52f2185df8c7ed3d270756a9052a7f3c8f947fd54f7006cad7561dc862fa16d767a7ec69f8c056b93a083011438f27619d7644627bb1501c769830e3d8c9f93559ce5768ca9bcbf8f35257c78fafbbbf36c7dca9d3094935402f0e6c46bee6a8af4112d3c78a6e40ac14b122d16e1f49a42eebb4f0ff78edf5bbe0491c846ac55bd6cf4e5d44f1287b6312dbf03218d198767d36e152aed9e21ceeb9597196f22fafd9f3ae53acc07b0a99757b7b2b8b6e399b4dee823c2e42d2c62099d7d15c87a61e54f9779e7263ef5e3479bdbe1879d9ecc279151281099fdf65375673864d814eb97f4e0b4d744596ada97f1e5dc2452d9fd5465598eb9eb8d914f46f8a500891b45a0522a4b95093e4e3bd764026341dba3be02203b62c71e9aea93bcc3c0192e3d4d2d1a1bed039cd5077243537ca16436207e4b96f244957c8beeea6bfb46e27903ccc143bcaebea198963b79cfd5d77303227324947764dfa16cc35df08c43f642086307879c917fb26a4d269786aa3cd300f4a2eda738a9b19964828fffb1c8f85815db29bf4c002fdb8616589def372793591e89ca6c0c34825129960212214b64d2b99da1986cac1163010b3bc14097c096880b6dae7e5c799df3710bf5026a2899cc7d91021f146556f2bfc17b5a46d30f3b13bd03723cdc659e09c00cb5c64d8a944dd007d68480d5f016d4adcccad2e1951fe96bc2c150bec5ae4f5644523485b46a2bf3d390c28e08cbc669da3bcd5a962bd2a6d4e888936961535f2eba46bfe1135ca53b009a2067ce04c7c3c99ea1383e91f24355c0c36a642bb59942d1c127be62d3e654135935fdf524d282f9dc25bfc4deaf63c1f919a5ed83b15c4f8d8186ddee3aa84c405a19d44107edac4499d61db346aa2190d183a76ca5cd4e94d46db89f01ea1d46c43de23e46ed40659c5e04f854ff269aaa02b09afcbc9ca5c87cb604f71212452d53c6e10ea1c15026b4fc714d759922d5e9efc8e8309ed121ba2d9b89891f0b7af5a6bfecf5ec09da21ae7b46cc9fd957c3505ebfd4feff6933227618f04ae0b15dcddcf5eb58ad5ee326411c6ab82880f351e4cf80107b7f6e47cad1daf79526f49a761034e81324e1146ddb4cc98c647923aeadf6d8185dacbcbaf1b25d60202d1f2a3167834b89eea68537812d1ce4ce567b1427dc6964347658193966a78ac4ac05aba2c386a217a4ee3ad83f8b5ca7ce0a5e9516b28e0d4d3603afb2d583dc975390334925100eafd5b9275787f9196338827f0a8caecf9ac2d67e049f81bf7e22c6710e2fe19cb0ddd178ce69b603cdf569705f6d2d60ccf79c47b05dc888f9ac2858adb855220f41a71b00bbd85a62e51a532c6ec6bcbff07fd2566f5c1794f1db142eb2a9cdcbe77df8a79e08bd86622105aa0121eaff3130e0ea9151b5080cbfe2c8e5861a193e986ec9f010ef4cf07d800f7e964c7f96029b260a1c35be05982db5a7250b281e48f3596a6e420c6c05511f3e20c91ab9921d4412483bfc70d4db1a7d38c189ac961eef03ff7e41aa52076968b344c844536ec8040399e6fcc1683d8d6d349bb3d5e72b48a58dfe65d4c9d8d4f4bd8ab8691c906e536524f92092d445f6e690e30d97b99132c27177b7aa07fecd312165c4d09cb6ddd7d678bc432128406f7164838a96cda8bcfff9f911cdb6beafd1fad246f389d2b622bc8a289452f33a3209327e1dcefa814003f573b56962ace2abfc3d658660944a45a1d2b0bf35a45c8ab338a4dac19b24f4b43491d6970e119e9daaee929670d1bb54174cbf988960a31210166741dc9df3a0f9e5ae13310e7df1313776b50ebfe4128415643e36c28487ea626d94859f199c5bfa5683f5d3430d4c07c002c223b780deb34a6eaee4864c49de74626d31e76d47de94efcbccfb2733af9702ee1e2102bdc8400a666942f7d5c1370c25a9e8bab9d119b18cd6aabc708d72f32f5639d6d4656a211288d7bd3b1e5db15aa4b285ef180f4c96935c07ccd6c3c1290a2ade2d5d55f2fc19ddb4b3072f948a34d6a1fc494d5b81d5588f118f2a507a71822f893aa91d19d64bfa6060d93c9051aa9c70b41728ad4f1b95d4dc236fa0326facd24ac01e62f2bf7682b2af525bc1acb0a9ab27da30de93638ceb5e539d4708295bbf8e58ee2297f2c2b4455e4067117a812da47b704cd8b914d1219e079cbc61a99b739ff5a744db2830ec66a2a6b051d16f79256c1650f626b2ed3268fc66a29194f5b69444640bd52f5d170217b2fe1050b940b18cd195f0716264e288a42ac5b55d48a0c79f9db51d870199d5997b135a70462503d107f5eda6c5378bf848ebdcfe10c8ee8f2732fe48b9ceb49c8f7f0d3706fe884aaf9f01334ac4781b100c009a000230c7fe9b79ecbe97c879642bd84e7a319301494c6148b2681508690427c5159b810ef3c0c08693c83075633888109371eeb3a03e81bd4d7f37918f176df5e49a59e489f1b4750d13942f31c904a040972043efae9b267b7084ca0ef59c7ae64393934ecfd9b33a935d39638acb9842e161d8d9fcee0eeab984cbe896d024cf8fd537c7b085b101a264210ac17730994eaf166d13648c4173b12786dc49e2ff5bafce72249971e34cf52b4152ef0a9125b2b84b1592607a6bfa08dcf1f209974040ca3a825559e43e37b231b105641b783ef7b05c2c0807e87923e0c0b33a2b3f80afb95d297b4621857a131c0722775ba54c5d10463458d1bf37baf87242eb76b049984971542f350940e603b16f627d3d286ecd9a4a112953c493a3e5dfd552d7aba425411ffba43c9f579613d6f311d22449a46b7be911ae0226a69423cbbbdc52ca75d32ee567fd3113f6a446aee3889114c350c29a20069c9fd7795096b16249acf27583b6de60ad0d1b177bf39ab79b7eacffab6aa94ec2c763fb43b162c216aad259deb762f80bf29d7ad64a9a342b487b1e102975f772156af9f3774b0573aaae37f341f2dd6f16c8aa615f3d7a4ab0425fa40cca72ca24225eaf6ecc6bb9ec1e237257e6e28aace60e4d5deb536344ad0cb547f0a4b8dab05fd29df35ac3ff0c5e28a538e04a582088ee1df59663e7be69367cebfee364a2c20f9dcacad0b1aa9002fa2ffe9c69c2de157216284ab9353f02baa2aea470dceeb06b78750ef163417d47fe33be0ffbd5ae04813258621cca3dbda7cbd9b645e1c048260e9bea03888a42941d3acf927605e816b5bd4c1b1134cf3af23e65581a6e739b0432edacc70b9c3ef3b99c82e25e67ac9ad54c1fd2950330a51a39d3511df7bbbee1d631c27372a5745b42958ddf7bce3bb5412e35190a119a8b7709440d855f805a5d968b816519dad3abc90b2553bbbe74629db7d058c443260816237d341bb5748c21c334181ff4ff9d89562920e58c641826d85ce73582203ae44918695fe2878cb746cb982090f8c33777009d0d58e8d6016741be3c667708db1d0861f623c2bbd5854c04c303672f0b9956ad4ed007b4a42853f6b3dfafd86255708e5df844cc04629e6162290cc9b923751b54ae213bbb1984084c5569a90db4bb7a9b1c9b51d7a123a542fa1d9aae28315e867903c0938f3d30b2a2ad076985ab017ad780a288a045e8452fb6095e590f28c0db828ad1875f70d07b4602c24d094834d2b17b4c6d3798f69ebd2c3b5723fc173c2d1ec087da70748586f159e0d4fb35f872b1ab10d3b826e33ddea230091078152dacdaa810c422f39a5f34164fbd324442ce00551dc2f99573f44c950b69ea57c908935334ffd65cbb47014aba9fd0daf1e3689d1ebdca0f8469ffb6d91eb71e1c8481392c97eeb69144946962c2526a17c6edbb6cdecf3154e81ca072d0ad77961c2edcda588cef4ca6084bf07188b29002e6f9f29933d83a18dfd610b2a0500659b83955e288a09e05649e2cc4b28104e56bb813e00183fcdac92f24462cd6909bcf7ac8f999a5495c3424d944c2d30eac3677ca134724c4da383e02cc011fc9a62aa4a27cdba3138fc9b96c7c361b4d19c4361e473e758f06cacdb3eb880803b69761645f67e2f2b47729f3eba0e3dcf543b0b849f54e54510bd0d30bac584dd3e5d6f7988bbfc66b9bc8057275e7a336a8b0484be50c510c3658038d8e2acce0f9b871ec3d9f0e46b6c4eec27e45d28906f766ebb64821c2166d64ff66504c6c08dc334f7cfed35c98e4c91f7b215d5a3d840305011e1158992aca9ed0ce72a3759c4d8a8459c132d0baff9bfedd6d138d5799150aa2d9a90f048768e0e987372bd94e9e083f739a41015d04c68dc5084c4683b44f5bbb565879a6216de9d624352375cf81da7f68deb407e9702807546108e618f28c7025c343a14f6938d2c33522b317e4c5db04f1a43a999563b61c317b353f8fbb2a20c95f2681b5e9148c58ad6af2ad911c204cbd2e1c69790317dcfb40f42c7a9c35de56a0e6c91ac5eb78b1565e14fbc589f3613a4cfeb5eaceb74950523d123a5adb9996db71e475bb1530ff50ad9ddeeca7b06ed98bee1f62d6fd2ad2e88fb2bb91a3f2943bb0cd8370fce765de031cb95d332dbc64692ba2bb03b2053c53a2b97da6127042457ec84b28436af75fee617fbb319cc84750de385cf19a6a13e3e34bc2c8d80359e7d713006a55d94247f1cd3c622fec16f888f2af7a84d5e1e3c8297e992379b11544f4db165a7aeda90af856ea2fdc326fca477d04272b09a3adc46487742000a95ead9f7457501b61c6218182b64bbdb6236f08e692b4dbd2a19fd046d9b765f72762121ae540c6a8cd63e92e5fa6361313acb238818e562a61427604550298a210115497dfab3101122da55feb4a14c54352a1b362c505794b33ee65ac77cb1ae95e16f6014bcbc882dd6621c1d6778129405c310909e1403602ee74a2cea527286c2e2b0f27ba6e81b327405542c7084105bda587b11b194557edf210b54304c16390658c7ed9f3d5c43b7ab5b01ed0c343966ab8c91b33ab048a5436af848b3292a516c7513d5f48cd331097baeca1076204e5a0fc929c55d004e9bb07055f4bafb9ea0cedf274ea9d08b4cdf0e3145045d34f338c41cbae5c0c61b53efd8bfbc6a16121224d762d1689b27d34267292eb24de9aa004483b4bf5f4e2dc0661d7db015a00e96fe2b70c4c1fd16fd43e9d21f6ffa24b44cd4f7b2347482add8a7d2ca2f882ab126c1151ecbae296af981b80f90c7863199c443befd8f293c6898581e7927d96b7b301d9591e0d227ab71b1a4615f9311417ed2bf1d701c3c081a81e6f0819287656620fb1baa38250c90a4cf22c277fb187bc9f35699d1244f65995fd09e3a9bae0352c2e7c85a92f64be21615e7e15e460aebd837803d5f141a283382091db045eb59c55149f10d76c184047d55a52e5d26c3199eaeb04ded3aba29b17f0730041d008cc183a031e64e0b0e3008458e175da8b5cc629dade8299332ab6102670bf02fbe4feabae4bbadfa2a7e1b0c48cd9b22361ad56834155315694b3b1090e7d37f21abdf8e6daf50f39f1dea6eb335122c2400798ab3307386150c1619e6f15691187e7441c5ccb971668bb67d313cc541c0e756de9c1b59824ef18a1ac1e605faeb5c39bcb868a2d4170493d77449da0c7213ae74df6e483a85bcaaa96ba61cce531af36f6049e6592e39045517a5e126087ec7f5fba901fbeccef93a5c4b15dc498c1c962679b961282cef7781e8f4c92000fa0c12926695fbffdeed4bca1c7fee7358f659798e0eb27cc34d00e3740b15c27ff295e635fa7a326c27c633cd22e36ef13bf97e97d924a6160efd21c058f142471310fb8501775a956f624522ab1c326339c942c0379092ef7d978466adc4efcc9cd0c00d4803400ef54569cf9e1c54e5017014725af1e888410f3a2d718b2ddbf0901e86611767ce3e05343610bf01af66d47e6c0a58b63cf0b41de3ad0bc1655bf5a14bec1d3a7c20436e6622252523b1bd48b6988d917f0f8fe5e60163423597eb010c83e35f4fc374cc2e482898705f8d7664d022da90800ccf6d4f46eb38bdd9ba7983022ae7f7ebc9677d1f880a3e203d62987d1f5ff924a6a1f2ac90b3a6a4b62fe443d44de5ef4489e186ea78a29e064545485dcb732551539cb9fb9435e4c3924af517572740d87dc4588a46a7670e1d4868e1f6afbbeae499df1b7e9da0582dff08270081cc079d812078f0d1402c71711a7d2fb0832eafd6741dd4510959d7cfda9dc4ec6d7ae63300c38cf99b6fcd67c4529db4d3c515ab5005510502e0edff1ac8a2b7d863a8dcd672280af758cc5be5e0f83ae63c5089406c4b417c939f09a6af0450c5badf397f05f07660feebad748dea874828399f8d3a24001086d6392242729ad83edb2271c826e50ac70ce2b5325f0a920fd9b024d50a4be3b508cd623956146ecc3092eb3a51e032d6e8fae6d7e391a4cd6779c8fc866d71e6b55194913cbbd1b57d3352de5f513390015079a322ad062708f0139dea92661e7c69db9b40a5662c34433c806758ae4dc91b4bd93c492902e4e209f8d08b027b28b7be06e2d96092b48dd2e488c09e5e6ead1a7f743b15d1b5b3f57a5caab4d1814d90e362a511395f7ad29580ed0c125280939bf05018ba3b7404dd1b5864111dbfa4c6e835142d1148e3b92b4fe4c86d8ea46e4b0b852a77ae254bc252d31222df1136ec37e2b4f6a564b983c8b02401838350e84f894cd5fe3708c4011da858d97a0d28a250b7b39d648512db4358935ce6c5dcaba1b82b1debbef60985f4d83b26d5687ab7018634bf1c4143d74b8a6e5f83b37887f1c0352447ce2dec363ecf235a0f57d6fdac7ba421943a8671c751c91c5b4515f03c99615097591242721548d510d353ee63057c6f31c42e4f2a9eb52683093fadd029d0344cf5239e70395821f590bb37023747eaa7ce2abd603941922020ab753b3de600b62fdd18068e9e2cdbc3c748a2679591f274118e57c3715315bd44ed2318d44dde48afcf3daf05b393b2d2ae1b441331c0970e73b30940221daec7c3bace740c2ec086d2c21dd7e3ad4ae2472e9da8c6e4fa923d8f4ad29697645588748b4a032aa2db79f2b9a937eaaa36348d04f19e608bfe148bf6ac1dcfbfca93a526f7127f353ecc5329cd1aa996007db9c7e446cd1e7b46c2d1938a44f48a931a30e61d3d259da53a7a68c9c82156f4e10b7d5319122576780396110328d91c2ba5bd8d69fb19d0d15e5e6b2c293402231c7842d458a866dabe772c257360e2a8d6802e0b28d32a676a50ea2b641b78b7911d12f2fe529af229e9f9699767a0d0a88a6db37880f39ca3b6f00baf117ffa141a2526c770d2ff31fd0d9cf10696ea2d07d84c2e99088a0b0206ec43460e6314e231944c271d25709c1cdf3086c1d8475245d22571755bc8724779764614d5fb626ec5e5a813c064fd6b0fa83d6edaae00cb51891bdb73aeb3a128b8a5d6c39958b318ec4e342b89d0fbbf0e3b4f1358a5b959c4f76b5729ea17446749028064a938635d2e0c30923b950d7947fa52871015555ec27a7356aba07b99e2e58064466171036fbf7a057ee791540145adbb741fb07bd9045d4c46002eb70a1914dce5750bef65ad2f42fa4558d73eb955fd5c7bd1c05f2267ffddd6202b17900cb91e16f7f02accf9d123c9dce336b0623fc966183448e65d6ad9dabdcf0eb65cd6694d02aef02d10ae540ef832f59f5a3a18fcd56097c8ad4f54a14314764f63189266d6ad1855f34bf81910fd24afd68fbe677669eea9f1cbd69242f49b242d3aac589537c2f3bf011f349121fd71a1c0ac54cf75682db0434f8cad15c115113d90da957534c97ca3ffa45a64627ea85f7b18e3c201b4f89585bffecf338539f3a97ddf07413df0c9dcb02afe51b2b505d4fb030bf17b4e85e1368deefd8161db96ce6930f5c3edba89b3e9b915e748825f2fd808552b822220c03310bfb305019e715dbbe7422c62e058b361d3cac647eae4fb241810fd13d8e82e7994104ad17d03ae8408a7a04aececcfcd74fd40b732a17ac9f3d23a63152b415eef8d9c3370baa57cb58676e9bb41403dab9be0ddc9a7aabede4c92c45ee9eca97f5dec6884186a47b4658cd9f09310d9e0e02080a8c3cd0eef2134e92f32b436be0ba309124c0db6f07c99269c7871e8d912374d7d3d0a9b3ab39a9e717264648d202151d7dda070bcc742fa420940298f0baf62ca5743311be7566c0e86b61fad1de4280142a3428c327d31bc3a4c9245e51d43fe55bfa7c69104a3e87d05581c7bb6d283e621731afb691a5b72b825ba6de4e2c7c6d803a0948bb7c4b37e36e101214e658e16ee3bc8a2811919432ff44758d630abfd3d8277f4a0fadf1f1ad233d89ac805690cedd86d313a63e69a36c0c17d1ca07cb0d764b5dd944ce405d10c8f6b84596d3263c6ad5867a3cb2756c760faded75b952ce36d597d663804159a6e632f7fa69a1445f7b1de1b22c64b6fffe49c853319790f810fa96f24a89908d3307eca03d86c719c8d10ed0ac334ad10734122bd1692175eac5af165dc0bf234368f907cfaf444b863512a33b551518b5b8c7690194a3d1899af92cfd1046765dd0bc6fb5dddb57bf562537f739ec3e1cff540f5714ba736146d9abbf1afa23dcadd7e5c092d810ca16fe9e1c2ef037294ac9a8a05698e6fd827fe6b2f889586d05914d142a72abf6539b4218b753c544cb14ea39053feb1dfebb5e29b9093f381ff063aaf741ff9fa903e88718a6b4f23e22ccb6e3857b22858ab68d38487fea61c1e4909bde08e6b6f88d8b6990aeaa6cff48a96285d3d7ff989dcbb79d7e782f1d8e3b2ed3e518901217121a781b7ba7d1e40c68bdbd517c44bc06565986be20fb52a76c7ba98b3a88c37e47009e221a132137f0732dd8be47d48531501585391dea7710f9040b7b10ea91769054b6bdcd7b833a9989f2b6fc33109ab7b8c2bec98a87854c4e8d7ba4ab3cdaa2e11018c4b7966efd6554f453eb4740b06c94ced6558b5cf46c242115b7d5556e9f2d1a040cc12df425abd1c0bfb518a9ef6214d091dd8ec35fe4bc13c09469250b216cb104b885d9e02df672499e32f1ff7e94f30bdfd34065202a245fa1e54dbbf382b8692874beda516c1c66928bcd728254e12bfc4c8fba4c46aa295a2f3563529de8a7a0fcbe4154c41e514ea2748bb057003777931aade5af56ca2bc1e8b8173ed24969183ca9c83db714794853b0f07562ad0d3aeafecedd551a03f3a5e8090012ad2b2d276598dc1e8a8681b3addeeba768f8ba0ebbbee1e6fd6433e16cb29181e9d4209b2bba92e58c4c044ab1d8b6d0a00f292aa61a1f2f694182e4193957bf861aeddcf8d42899e53018e2d5abc13df20c408e003b9af559faf17fcff21da512bfb838b8e5edd138949aef57238bf3301a4f6e10495f007bd7b59db6303c721e2f2512d025d1bdd0c2de51c5f72c5031ff12067e5f7f0bd6f07e39d154b8a52d12de32809befd8898306b278bd07043097f2317fc5452e37bf83e10289fdb1d978fb832759cd14d1e624ab23522ca872971ef5ed2cae10d66bbc28d7bc49a8922ead76c98e88878210a2a69f242342c1916970da22a494ee8c4628a2ce81ba78b2c3c62b98dc6a1d8908d5f9117406a03d175ba6c1f69de68c5f53ad616ed7d2b43db7f1c8102cb12c75b04b85a96e7e6c7513191be6c06e2ab758d2b6aae60ebd0a5050a2858c7c8f434190fdb1faa25f1e4d6ed5a029acd84f7d2e2bc46b3945b76f5f959cf5e12dd4f8a4177ab6e66f085362e964bc720aaa36b500a4b200b8b2c5ad1930a2176c96333a39933fd18c0b903fb1a855cdc6f2180964d703a16ade09dd2f302fe2b5e4bb9955bf0511b13de1a80d20f8a4e56b2ae5cd7f3b9e361872d687f9a5bfa55e61ab87bb3dc1548e09b66d8f7855522eaaa25632b65205c29fb4e90fc1009cb1217cd18518c981d0f835a43a38cfbc09f7d881760024a7aae71aa52300561fba26c17cdb546aca9e436dfb01faedfad515f09d799e9178e961b5adcea1499100d04036c6a7323422cb20ac5eccafd68a1cd8a9e5363bf60185293911e2f16d84ae8b8a896166eb456d70d4737a5d2a008c6960208acb8e7c19937a4c79f73584977457be1231d4adf295b904d01199e530c70dd6f79b0588d6ac94b55190802951b509f52e8a83315654f26432f596ecef9ae4802df340cbcb9318a888c1907e91383265e87490cb3f7f1f10dc5a8ce6017e651b84d4a3ac7ee3eb69af80d31d9433a960c8b04a82ff041c70e480a533faf274456259adbd3996942f8a41daebeebb4be5bccd8cdbbd2c48725159ca54930c705997a9613aaaed64de53c4513586d954d001fd046c67ca324657cb7363ac8ed6aba4bdccadbe9c84ce1e5d249bb757d606d51afd7ab258d741368a6beea96cfd140bac0e72c29a3f143c8814cdea0f088d1c41556d0b007da7fe3181996a74418aea8926881ae67adca23e67934dcdc9910817e91c8a603bf11f879fb32068f1f16d1837f6669036880276d0d7a4da04c9595933883d7352becad129a05b0dc41ed1d61888239e6fb406bc2481b78db14505f7193533032dd13f369af67b19bf96a4266052606ad023e88b4f51c5084986ba36e8384e0608aac3a9278a43f47b0fc200dea23b32efbded1a031e6067746201f732c2d1128c951e23e604a2cf415e3058a861d9844d8e3268b6ca53e46c9f53b44bd5ec933347e4e95be43f58d7505cbbceb3c48744145bcf60db94e40ee1f602b2c61aadd735d5b8c4c7a7fba3d340fe9d4abd64cc15440efec726d42518a688d0deb73cfb42d5edd5b6f8f2e66cadbe6519eca9d6a7db00d6481fb6b82c5b671c5ed2a0df22e95adff513328e480eb2de352eddf1b989825c6413c07336834a5b520c576edbaeea0f86549780a6d294c3091cc4b71d240555ec870652c02184838b9ec3769aa3c1fb4ec538758285162c1babd64fe8dce17c470541bff5aa129970800b2ad628585015c0a462f50d6846bb1b167651879e1b7faab2549d94206bffe7afc9a4cd0d409857ca5d40cd2ddd8fe4774a55bfc762840a77c8f90a0264144228b901a145f8fff52d47ebf8b5099bab63b83ad68ddc629c6a5d8d637f09d91a9e66c5abf56b007731161dea5b6ee9a555f9fa84a976f1f053def905ac21c82ec6bb6893e0fb8ab8699323f1dbda3213c9953c85114e0c77d979133ebd51f39e502e6cb6abd88615e9b2682b42853a8ef27629791f77e9cce0d7be72c22e4ec41720b773fe1b0ba929ca5437bb688a9d7606ae7d099c25cd509722c6fa7647b7e5096e2e4595441f1daa2a0adf512dedc71b680f3dde536843cb043c899ecc554a11ed499f8343ae708f4def971c91a85ffb57c10469ca5ae0bd9e1f17a54c4c9be6206d9ac51ec1939a89d5a8cc1da58bba0dffa6a93bb549081fb279d71474a3fd5e06075148259aa971c4512582bde1f27a52c82b57bc905c40f6a881438c2a5764b426764eafeb53708c61bd3e7281e49e96d498d8e78f16193199ca5bb33a2b99af360b13d8df4d45dee5e10dd51fa2adc36a0b1f31fbc9ae4c0f2226df6c94580b65b1957b436fa24614c075a7f1c758e2d2decc2fc5b8eda89cbbc711c8f1757e4dd37a1da1970cc31fd5a9891c35a23692bc610ba5ad9ac2d06dc60880cad25e7578c26748eb60c5b5a96d5d07501ed3278a3e3e6e7f476e71ecf3248fcf7d001a8a619d1e6751bbcdef7608c822704a455f3b3f5ad13328781d7ff9e9012ed12d4b026a45069f23e2e8a9ebfe6b8d2b2e3fe0b8fa330f465d97151834456bf030ba3aa2019204d82787946f576aac9d9382c0fbb88d3b10684fb7d90446663fe4429397dbcb394bfcc4bcbc6b59865e0fde9afd6ad83691767b61beca66e12b0a451fa225e438a05fd32d7ff69664b70d961488e604cf3eef57b2860f258b2dcc34119c06cd7c521784a74edc9a0f867619c83fee8c33dec25333954a668080b719975a5d25994c73bf94c75d4cb44277dbb8a13de16fb138925b026e38d7903d29d059f0a2af5e40f1a052ec35eca4b4ec27e5ea78de4f82803aa422aeda0e7b4e7d8006751076cf830e974dd4e637a7cf4c9d28b0f1680b83b30bd5e7c787ffac639a15b4255a05c390734270ff4fa3264c69ab81291a565d538329adeb37db890ec9a518bc83e46f578c9e412052df137966e5448d91d9bd508e4c7e24a66e795b2020ef2a15f3794fe1a76c9a4b66063be1058cc6ecbeb5332a451a67456d9a0c6d1f978be8d77875043125639b68dc70dce9b9502577902bdcabdebe92dabd11eb0a0073dc5cd2b0005eb2cfa111c040234b08c6c52571111a733fedbbc271a720482af32762e2b1a81802e19dce5529ced24d6a57471ab9a9d337803a58dedea95e64f741881621d6872f133a8e9d1ffea6ca849c8136180b1d62194bc0f4a46a751674134062c441d0004bc9601a8218c698285a9648f76cc8c36ea56c1e60967c2f8c7817352b48213e59b9c4c2eb8cbac7e71838936ddc52e8b0c608d78c3ba6fd5b79709a73e82fea1989f77d49c9cded3c5a54c0580120d39703901ce5b5be0082c62ae3d7d5803c66f1a9e2cf5958152988e6d0abbee3d57972b89714a23181f41aa274b244e025a147cae495691cdf38570d3b8183b43143017eae0268341673c085eb11fe24e8de0cc501fa769559c601c1cdb7fcf804916a5b2894d02cfabd7ff2b4c5ba8c02f4f7041e61684406eec88c86d967d7c0fac01c49c010c9933cb82a34e267af1a71924f84023821ba38093aca3acfba43855478ca328ee5859d33ae98d5aee4b8c742b6e70019ccf77411e3948a6377a1d3ffe9380db3445358ff42f65d290f021165d8197a50a8cc4e17c169e68a2ebb5eb5cb4da16bcf0dc0f8636b1d583fba83f683fbe4c4f6d32ab051eb347da06feedf8c0d84d18c60311402105e6b208d9bbd9d5306ed562f7598798f40c5405b59e488aa9ad5680debf28f39598bc50b11c57f9469cecd08e4d868580fa0f087187cbe6707cecdf6d05f444ac4db2bfcb179b205a3dc44054aa915fe4d8af4fb3d96772358454c75c0ea0e31dc48991b436cec5a6418e990a8d7250c741fdebd57e52ecf86c5f2f83da7d2fe16fed55f6bba90d373c01bcdc01fa413d445f608a69690e647edaa3f8cbfcc9d2c45fc7858f4dbf756c0daffde362a65579c3d0a0f5f4d61b66ab55c47bca99acb18e8fd60c12c3a733139fce5982bf8ba2a4796eb14af4f2ba74873984a4a864232083b4647dfcb23591bdb2bb7b4b2965b6045304c60323744982652443c586132e4e2e8a884548617c8c4644e30b39c42234a07ec8a218a293212cc41986a4184da81aa574418285ec808a88e4649c7222818a885890a47c903f442ce4187fd018837e8cc420592cb108b39402489568a5cb142c31a888419c901f388d2c8a884490c8157c8c3b8842c8718506ed474c8cb1268485e8829014a48f2a52852e5eb01051118d9c8c711a991419b520d9f041fe202259c8213ed110c1fc8c49315aa8b1107dd4528c5faa46225dc417b09038a88c409c88554e6294224c48357c1c212261398ad010957e84c4186328b1e0402905d942d507ba88396019a950199beccf898bfd39911e30912928250122e2e00295a119501069489ad1cd10a3939f6e3ec923c9a79b21e8fd606b49b05708cb6906e03902123b627a1d3d79c0eab47604c5684b6754a5823b4201db8e5ac0ee5108b0a3135e473a56809dd68e766018b4172c324d464f48b3e1012896d9a2942d66d93cb2ce48c682fb79b1edd2dce528661b257960640466c4a403dd690dc89410ca771f487be19241b371efbd1bf743abd0759df749d5684c60c6186330a46da159d99b67265797cce887c562b1f6ded109b57052751919e9a5c5696912ad9626a1412dd301208a9ac4e54653464c680e41fce97049961541bac090b62065c829720a47e3fbbe8fe8cb0ea7fd711b7c2b222d445ec8a43da612ed6061899442d2f607ddfc1128467e60af20a770fe06c898beeab406444b373f048a90da5a9027dd7b4aeae6f7a3d35a10a15a90138288d02bc594af8030d58e9e826409d2854640a904c2708b51158a16b5a3a3138e744c09c92a64ad914b37646ddb6e6e4a72485966b02344146626830ca32c5736a86ddb9450ca71db867beb8063cb6a7e1649b7bfbfaa1456b2c8d77a70c0834cad878f0d726a830e84af81d74f6f6c702805ded3df2568c7a111d8afdf773f7c37187c1b10bc016daecd9b14b2bff730f8b8e52d7a938424956d4928dbde6cdd5a4b33506be1d52f4db2eb6f2fd4a298663c85d49665cead16471a715646012526514933bcf0cc2082d485c49c1f489d03988170519554d98e0e2b3160a87081a30524434ae843ac599233760a40c46c861301b3142a0ccb6933bba2e534e124c08cca49ce8010a9220ca15558a82bc8d01a0c62708071a2c0c701b3fa258693d230ab71562171468d3a98d184d41798a816158e6ca853359cf4c95980d965d1a5cc0ea52d3cb8e050b454d5757cc005bac4079713829997734b911e4595069c8a43ada1665142ab36ea450a0ee7917328cf2a92239408970d84ce86b30f332aa4926005e80b15d549a15039a3ced1e82c5b33a6194e9a04c470f21907e7ec8c3a17308be16146a16852d7755dd7755dd7a9505b68d2a5cab972e51c60a6a4a4a31a09aa637ed0303d51904638a9931c374e1652909c15c616a70d680c0953c4c8899015ba8eda740385c1ca89f4e264c08c47b5516b378c396766595a705b8d080ae3174add234afa254c680e506785d18019b501c58e1305195ee79ef194f073aa38310c0aa6a2684f37e4604307495fbad0d239e55440073da39d01e8ea8c296704b329dae4494690b3cc79bd1e2ac409130fec869f285e9054741d4b12cc9a4e08cc88ce8a25842edc6af680d9e76264e1458426b21f436e44603bda21eb42329cb35a45a686d9023a662dafbbac1dee4c0bebb8d6ca75ac82c09a7bf81eccf65bd12dc216d6bdb2f4701086f5ee3fcd758ceb98e7791dc418631ddb686a879f190e7c55a91eb2362aa6c326756373581980aefa9e0b5f9a72e327fc84a36a6ab869bd508796f3f013a6c24ff8098e32b154bfad37bfcefaee47db147addbddeedbc2d031cd5e2e647c3cd3dc3f11396c25258ead2a8ade162cdcce7ba4dbc7bf17e8b5f1abfb4198ea3c0178ec24f2b203377934a711c0593c1155197bcbfe1b14dfd8ab840a5c781ea92cb66c5a654ddf3a238cd3d8e7a4f039517685fa0ad5ac9e07ed8bee97ed8be7e1ea5a254607d1d5d5b5d3f2b034ab5fd6dba51b5828aa3b0148eaa20ba6d87c6dae068eab9b3de5a9a93b3c9546f32d4e4d584d6c30ebe955dddd55ab95a39ceabe09bdbc64d2bebf6de7b3bd8ace03af6bddf2af77d5eddffbd75b12c08daa71606722ba39b276c76e9787605825bb69fad0fb8e23a79e6bbbc6d56762907f37bf9b737b7eeb307d0821be20bec6ff661b582ed3b6e65dfc7f2ecb3ea0c37f7def69b5b09fba0c620d3cdcdcd729385691d045db4676bb3b5d665611544fd8f736d5f5ddcaf5c319c5d9625088a7fbf2d72b3d22ba2c577de361365d7d91eb4b12ec41561c1fd80b9b2836f9a28410f7c0b6ee6b15a016863b5562beb5fd7759d8d55101cdfb6a56912521b7673776517c5232a85a1bab920000e62ba2841895901648381e809d15454d012a5b5d25a6badb4d64a9378d96ab590983aad45f9f4b06a1294de5abf1295e2d09b7389dbeffd12b4d3129ab572fa59ee6ef76badb5726f7eaeae69eff26ef7de5b83aaeaf7de7befbd3e36f745b6372e230c338c4f7694be711e3aad412541f54821c4049c041338a06cb9424850839ad16fa735a812ba19a20610ba19020a548b510714076408553070118f66109f4ccd96d4708484a144c28f1b88c6221c514c40717a797241063da9a061ccb8c5cb98058b18c314120526e450930c212a8028b530ba20342aa1419e208238c6e9c50ca7174f9911852fa408342ca1128f38e1a164e431848946bee082f8238511c909630b19a20d314050d28345090a72079812b44c89a10a14159ec62145c62e47e40c1ea2d39048e606b9828411840f56480213694952fce4b0810da3112baf28a29628928611524592900f302c7041e104b261964353acaaa983b18798f1d545862b240952c4265223151232454dc70b433b5ae43861067986b002892c05242bc61a64c6d90db52c648c8a28a489f825097963092ac8061f1897e8b85143dcf233a280419a70c403b1ca111eb10987f1a886114a1512c813d2c72908911166348a50e4820a640f1b4423bcf021858cb0186918d9004718316a4b07328c00030f14d9c334222189493dc4212b8c1e048d294a1095802083a9850f13076490aa2b5cc6d80c39a6c4a525311c79521a3ff8618548a4c231e260c2d8738a4c8ab8e0a0888a3263645e461858c81c53c41e4cc6a5a6314a883805847cd10259c2c642a3d3c6349a7e6e8831ca408485d885480a51aa2a1fed3c5b073fd7cd5a14d6a29b64733a269bd36473429e657f97eed265f2429e5fb6ab15d83aae42411667680b2be6ea1049067398737347835ba64cc9c1fe9e06953cbb76b3ec367fb3993821faed66ed6696599cee6b4c926a505db239660d2a7ff4fb36385159fafd2a64735cfd7e6502d4efd71fb508f3fcaa2034b865ca94453033dba22ba20615f5fb7907e4e609afee1a74455cce3f8b739bb209329afcca270d0d474343f3f945934f1a9a2ca3a1a1c9b0fada34f5b5f3f6334f6d8ef9f5196e6e9a9f793a93734feec93db9270718c4f4faa2d31a142b5b687ede9befed7d8d4bc7ecfe7b0ff49abb9cbd5abff77607769ca73337b7ed3277dfe940cdae799dbf86ff88bb5da696b19ff6ec32efcc87793f8b6b9f1aaec19dc9bf5afdae613dabe39e65b278cdb37e6686b3369aa796dacd4d1aaf66b59f8666ff36b3edfa2ceefdcaa563d9e2841de466f7f83dd8ff3ccef5f69500b4b78eedbd5fc3b696b1b786699fbdb79659d8fe92a575d6ac6dd3f5b3fe63adb86d95bbeb988ee9988e7952a214f502745a8b02eb6077efbd3a1ee8d8d39af599a5bfef6003c3fb0bd40efe089b7b720fdef859f8599af5f9859fa5f3a9c3a71deb1d9c5fb502fd39cbba59ff8465710d6e67991ee83a1a83f0f58fb0f973f5583aaf325fad586f6e7a4568fcd5957b2a88cab78f9b5ec7fbaa7a3f806019965ff9ccaf2ccbb09c35507d699d6bded35a6b1a57aec9b6be724fb967ece7058a1494252840506a4f9edc7bef35f7779f769cbe96d1efc38dd2fa94d25e294869addb56b906b7d70b6cf4bbc7187ff8f1c77a56f838ef67cd7cd525742c07b3e5e64c5ee99c73b6d6da99991773b7ab99196e6ece5a599d437ec2eba02d373602cab0fccab00c03323f0c24fb3c597dad80641fff7ebba8c5d979af70cef59573eec93db927f7006ddb7d79c2f4a4c6139f4e804e6b4eb23ce90be8b4e624c8bbdf99956f9bbffadf67ea68d001aa2fb8f5f6aff213d6d432125f8bf5a0f7fa57f5f430e7f1ec7eebd1bc8731375b1d7fde7f2f7233cf7ccb45edf7f9695cd47e98314d947d631b189bc54f78dd7b13839a9b28bb177eaeba84b9a31372b36e0fbe0962eeefc775ead7f77805c2ce0d6deb21e5fc638884ca9aa6653d64d500b3bfbbcfb9c0ed123d97fdea02adecce7c1ca761d8a5a33916c761eeb187ab876ba843ccd55de2b25aab6156cbe8e6b5a1b5f639edd3cd5bf17bd5622d0baaf63b7ebb7a6dbd5dfdbecaa3639d6cc565d9ca344ccbf47d10b4f606d5d070a0ee2f57bf65391a5bb30daaddb7ee6f45359c9b26ca9db98e596b35ad8718637c5fc3c07a06dda0ba1501e10f97015c370a2728af26f1ddbc7d98839f5d9804c6fc35e80a1f739d6a0cba9e7939e2629707b4712628aff85ce1e9a1cda58d7d2a295c69eef4044a12ba12d8cbfd8bc0d7951878aedcfd4769f7dbe2d88eb770ec8f4b48ad8872687b4f3dcfdafbdee7ddf2bcffbe6dbbb5df782784f446069e18b674eec118a6be90cb9ac4bef6bfec6d8bd301fcaf04c775409defc1e7f8fede2cbf040057da722bb9e7a60ef8dfdbaf55a1aaf2145eef0290eb1fa639f86dce062ce628e5aa8e7d70ab5bfd6a051ba8bd5f5d01cae912e07fdcc30515dbb0d3177cb687df046a073fc480d23a7eae6fbdea0b2a1d6131df9c760e0845b75befbdf5524e6d49637f16c7da10a58d6d9f6fce45efbd76e3e1aeb5af63cb1a9b524a6928857669c22e5f60a97b29a594526b29a5f4d27be9fd4bafb596725ec6c8b0cfe6d84e71deb4c143ac2d6515b695258ccddbecceb7557a57f46d0efd117723f2a1aa2d99d5a49e6a5235a8964a123a26b4b3de083dd7eb2310fec98120d7320e82af3564d87a8655a87c6d1302082805f48371b40f9880e9ae4e6b4c9e421dde78bddd34cf304de2a311dcafca60b9aaec7e80599c57b9629bac7e71c9a214d07e3d8cb1059a7b58bd8e7eee35e77ef59d79a2872b1d9ac81de4f6e3d56e209446f5aded50d2b6f971967e5982103dadaa377ec384f426dc1dca20dbc4d93eefd67f1b5518d6fc7d96f53adcaf38f72ceb32f3899e1fa4da153ed539bb4ce41e7e6f47dc4f96eb75519630acac5b9a9559d90d5985cd98ca17174b6d2c00197a21bf70546d0a502d2a0bcd3c747db47f1d6773b6afb7aaabb7bdfd3857ab73ed32b6ef6fa0ab955bfc8dcdc18fd3b74fca9094a06a010ad0cebd8757df8fb0dcb576f54d514d3de9dbe7d2fbae8467ab5d81cfb7ddda3c18e1b5d72471a277b8e397863067f3805fe77bee3f4ef177663e815dd4dbe99db538f62f94d638aa827f776efdd065963d7c7d5d2baa31b06dbffa1537c35fad56abef56dffd8aeff410fc1137ef74ec3251f68fdbd8bd3b61b5573e8efb388cb98712b463ee017c1dfcdb63fef7773ae732f389ee753fe2ee74cf6522f7ce3ee732b74e3beb0674725aa6659ec763611c7e9c3d6eb67a186a988eede0a78aaa632a68238475e336ce01eb596b39aec366d6eb3df7f1ee37d7ab82d86a50bf42fddeafe777f6cbb99dbe5dced5e50eb6fd0b44bfa11553a70c9ebf31b4a425a6a627a98d6eb02f8db6699bb6c932345ad21253d39394f6b9524f344cc752ecdd2a6d6e1e871c83399c629365766d9536378fa363da87b69b76eb69499ba6631ab66967372d6ddfa7d12c2d0c6925c871b9756c4a29a437e66df2e995d35a796b6f924cfeb0666eeef4b0f2ecfa50d492b4a8840cd9535a57a4090023170000280c0805c4223992c420148eea0314800b6c9e3a5c442820cb02711404410cc4300c03310cc3000c023008400c7206198ebd0011e3f2fbf082e744f375ab1e2ace8e0608543744b8cc64ef6ced1f77cda025d48224b510540da40b806cc4fd3746d030ab2272a36ccf0e8265a69b5cfc9f0f747372fcbdff773594a578f6110ca1449fd5dcec143c0bdf49d2ef0255c8ac116798824812c0bdd2d1c6313b8c33fa032f989eb2efc433a74f97e93506c0bf9392d8faae3b9b9b69fc03923df692f7369ed564523af72cbd5981abe8770e3d41b815bcf364bfbd17897867ba09b635f9ed93b879018af5d841a2362b44448e925a4f6d82a5738be25962bfbc07ac1ced743cdd825a943215c69ed8e16c85116f05204f26dd6678b0bdf36cdb33ffe56c45299213d5705bb4c3d1ca88820095140fe210512f018c29c468264c1e4af6bf1d559cfc3165a48cdbc7ad4bf6621cdb6932ddec4e8a15aeed3b2d804447802d275ec65d6e8165d8931ca89583bf88b1a285ba8bf07cdfb859a03a813b9f6cb061cd6834371000b524cf5593d43a3091c449197f04d21696895ab6fc4eabc4f004c1b277c109f4065a59d575d51df9281a31f04a97232a0aa8f67b6ab7e7101b6d44eb35a1481a8f80d09043f32e89b94cfefea95fe27c53e7b2f6b7f9cce81d9695568c5aa0fae8a061e6c81ce164509fceb0f8bee50504d7d63bacb5303d2a71d44a5733d3ec4089aa228dd938777506e6dc7898ff332b16a70f9870b4a67ab8865f4d89ead08303731442173377179ec6f46b4c1fddfdcbd2ff826c8a6644f3a984d3c05c927bb88afdca27bbbbd0752510c248c36d8341d3333180a073df6724645dbd2b3ee768d7362cf48a81d9a2fdc5ac60f23dc9e44671a811a5a141e9c6fe9057b7e976e690de62c01036a995ecbc552b905420a2841686455d5e8133d00e5beb3c5b236e0d1dfd843cc9e5a5a1e6ec02d3bf2f48075ea03a18639a1bcb56c10af364b3fa398c3d6bae17b008f78c355d8b3ea01e158b711cb0cace4201ee85b186b3a68fa9fc15573032d7f7e2d85e9999c9aa8ce18f68b016c19d3ff754d5dbbf14a4258eab4ab09f5c6d758ddb65e31df8eb2538047d8673be8be9d913ed94b50458077dad8ddbeb11781a03ff3cb202a5a0b9577b7b8287cfcab194d47020fddd9a34e14e502789e75ceccd7d225bc06cd3b5a395c805590f74b6e76313fc6c709613dc25bbad12b8888f91a23098d2342904618b6fa836d99103151bbeb2a90415b577742cc9a592c0350adf53020bfd88f64c8a9036e2a74582d153b9869737547df30409a224e9d96f7738ece148d71e81d9f2a1e04ee8fd30c2401f4dd09c22c0e723967b74694f19c102530885185c7717aa9bb465b0dc5ddd71107390eb18996c60b24a1d7fc9a68e7c9b43a6196b869f5c725743af04d166a043f8ecc7572d56668763e8995b5122b463a3b494150fa9bcb54e09df323b90bce21101c45d98cdaf8398e89aa24ea83a49b566e67a19136aa191276dd57da09bb98cf06fe8362ec0e1703e6b048f2b31d1d3168e458fc9e0564fd8745f721fbb15b5923bd2b95a7c26fe2c239be3788d39b540c00976b560ea6813f9a76dc13c9ba619487a35092dce44c2703e4eca7bd8ed977ac0c698cd2b3f79aea67b66d5dfb8851b62faa7d7fe11c25b67ae4569c094e32d299059bf448fd69d1c5a768434f22f3260ef327cc328a4b9f092f7553da4afd422f058dea42f6a24f49a256b14dda8853587ee199dfce60509093895053ab69d1c14af90c60d0c852e2f551ddb18bff2291ed304dec4a84618022b33e0ed3fcec75a0d3e6777bfc37bc18eafaa68aa475cdc41827be0c671b79fefff4455a8b52d43b9b31f69b6827aa5a89a401360b6d70f1f0a5c7bce8a93a36f33f581c843acb3dc90108761e7dc6dbc530a959c128c271d7ea80ba1f46f10fdab5045d1055fe74d623279fd43618b7f041b0d47d11035e89e7e9a0191e2d36603e32c3e0022ee456ee1332dbb2404a48d01d2db83e70063b6a77dc16c4f9d8ed3b0d6eed16d4dce48d86a80fb89d04f66688352bfb2620042a022c1df5409d4e198cc9c1886d653a21a5e70482c0ecca38d6851d39fc098269c9c4c741b1d1834f5a86795f830d83dea895fa4111161dce33ada67289832e623815ab55e1feea504475bc1bc65f831eec6687a7bed0083f839065998bcd978afc543620e7bfcdb009d6f16c6d127bcb10859a957702828f10621b4361cf3e3875dc05e8505dbcaaab8f6dc454b97b3f812c61957229275df3a7d91a21358e6b0ad2e64531b841c0e5dc93ddfe450c6db45734b5b868a850246e2bf4ca84d30b7f5b7685b4d202ebf8751772b231a3f6ac2292f716e58e9fca6f5c598e06c85aa981405a349000403124790e08d14ca0d6bda9b1b36ff0fc11bb2473ea5d0e17805547c97284583a890bebd73c8406d38cb4594be8fb20eafd4c8ddac547e5e41769c7c969a2b47832ff484a2680b786304f26b6541c9deec6a62b13b0a11a59e1661a6a4c9a30ce8f5fc3a3df6163590d16675512dd79507a53fe88fd1d09a8e019b80d038ac8a88108d0741f50e81b293b362b644a0cc103e4bce6a433547dfa8d90e974952a4cb3af60d90fa03d844fb10e9fd6f4979b41b615a9c4d1b61061bb58579f821bbd702f0d211ea980007af71d346ac701244ded145acc40861fa3ec1b66f5aceae2e92b20b0fd660cfd25a9f81cbe7272da8d063ef548bae23c230d87e0b272fefbe66543ed13110f0d9d701a7c401eecc69708cfe9c427f18be4cac8e05fc71d95ac45a089ae484a91dae9eda1ea7b49ae0262cafcaf650e720c8bc0189338f98c0f57a6468a26188c976fb2daa69ef5c48ff9250e82faacd9919c79ec5f9615097312643e715503fac6026d5e579b0bce07c7e94cce2bdaa91605da42cf83ac8660520172cda853cebbb3d7d291cdae41aa67c3cc7b081e2505a5f05fc9d36b44ea31c08c5d830f67c92847463f1a7efc2145cad83c0c729b7f88f71e11bb9842ab6bc8e8f0866239c8dfd66c25f0e7a8a67f0096c37dbc10626b1dccc151e1b5a83363288141b982c70aa0537942eda9276e98bbf4573d5bce0eb854a4625784156415e6082c52a318f6d29e1c53451a23ea899902cc7974da179e2a22e15f31e6ac31b10f4974552bedf2eeb453a01354d067ef75200c092019488310079a3a8bef1c8bd52d38049d2744796602e9b6bf2154f156d269c98d22d86655ea1e38cc8fcf34fec43fc8df5ce40b53e6b9c138f6704b3f540042654bbd804ddba08dea2d272509a5be71ad619dbe2067b98b3e25ed99c4534414f24fc5a32d67825e43444d7817f1f928ed106979e65af5cfde3551c9cd2a8b5fd38b7efcf268a9e9211741e808c64c80dcf33ff1391b6f4a54c5c481e3645089362234a7b487e38fee30042d356a88c2685e42dbe1275e267d06669a7846be7ea1777c43a61f5b6df42c0ecbe60dc21757464bc4c36caf45aa8002d781ff58c8ad1b73866e8cde85bc0d2a61004a7cf45c2541776a522c70396acd66c487bc1278ace3d057bc5fb0dc86742e2ce2b2e75e978b538de86e19d95fadef881515896034611c80c05599319abc0d95ba4b67a2af0a4c1dbe10e496b4cb86f040bfcbd093d9f328ab59d3e9ae09c73aa62fcd21c5289e840aa6909986e4370905fdedde5c09655860efc8292722537ce744ad506dcfb8231d81b30cf9466cd01ef18a9dd657dda2a2f6ff3f0af1b6f3febf40ff2a566f27e6c0401abf8975d56415a8bfba87baeaf96f742e72c16334b5d4163b366d2e024314e02cd6820137c527455c0256b8015c6a5c3f809a659423fdafea5b56724ac545d003edf2de1b1e01ebab468d080dd55c5eb562f9347e1d2822c219a160bf07c27364004d224272aa44bdbbe06eacd8b5e6c63f90f5498838a0f01e7c5fd027260a4b59c6dfd94440c4b780b18acd08d51807f45c70cebed4ca6da40d1bab45145ffc5d6a08b8d900ecb9a49b0f35546f220c10f98cafca7261449f08aeef0e2be8c15c8602d62be6b9256a877d082422f2283a3ff6845478d467cce7b86dedeaa1a1f1aa861dfb973fa289fe54932eb6b23711b65b1eb17dc2dfca155542af4d06d3e14d2ca9a4c40e56b91280415e7c8f8257a784dfd77f58a9ac863ef3cb3511db35f894425ac9f1f82447abd0d31f5de9f939be42cf9f4f184fbaa99bca33dab5a50402c12ab62a1e5f24662d29fc53038300f035dd680807d1e79f9a64b7c2ab8ef31c69482ebac6d38dbad7166c170dc38641aec83bb8dafbde5c620464621fba855b0d60732b0f0a532e18f073439c1bd87949fb160e8cbb59a125161b29df07590639c4ba53892d7db8c5af3720cd8f4df7e169415e0730002008a17191e68b27f7e941bacf02b56cafab1247337497b492e15f3a44150c7eae9098f68119a0250486c7979b4e7894309201f54b9f907a879dc8155af29b410a8f4e0ad9e290b1cb7e7c291205d304e2a8c5b406221f50bb731fea1c42ad2b82d5d3ff65112c506a09f9ca834e437cb58bdfa2e6c5fa968ae24d06eb1722b00be55940439e068cda2863d084c9a186778330bb0a231f4b096a4ca1daf916981f0e4234d43fa79246b0a40e18ccd20d0f0562e7b33b8ab97c1ddc073605738c8954d41883769b47e23d529da194c9ea29504fe52961da1968592e345ed180991f322c2bdd4f4ef520c711786aba18f48fe956cf5cdcd8e2eaced3890c5b2161c9b26c56026e0745e0c25e833a326aff3c85649cd0c6d9afc3a35b329d4198f4301998a6928d02679d3bfe9dafabf840c8b0dc92f4ad5fdba9e26452696d9e9b1327baa0620c56a4439a58d4a3dc1479067b79436fc27c7e0057316238c107e4d76a9b30200b3369dfd9a848bdbec18e6602db63569f2b091415987991138ca6f26f2c45da32019e751673573e78b8a26f9e5f66d9f67d37d9d98083f0ed40a9dcdef5652f40b7a280d0453500baddd453cfd5737f4eb681bcc4393428b0cf2206c81b9769c3a628e4d3479bb31d7d5e720ca179534106140018dbe67d28cff37854774381cba596fedab3740a03b6aa26476b3e3b083e48a58d90d0a83cca0d27305792ee21edfd48d254622ef5cc8ce3a0f11a2bb4d2fced46b090b83fff766d42c32c22a2fc7f0802df7a2592c307d22e5622272be4a6480c30a66b650697de4a5a9c917720c9889f920b12313f4c91bbaa7d0d351922b1d83cb9e937e6a38fc3f04adac1ffd5e4d436ef5e9440146ef607eee54d94bcf921ef5bef155c6d2eb72d9b05e9462fdd28ce4581b85379752c2022090caf78d9c6071db55d0dfb60eb49627f4fba5447461fa73fe4022c0237f915d9b464ea804a73343c4ba20ff2fd617f128cd601a5994f4ae8b28172d188938b8af53d3ee4ad4f25ca7f5f065e5a350a2aaca716bf47cbc632b46eb022a407c6c5225beb2a27cd494da0324c5584da9354a390dd506c8b623b68ab654ae20c3b5c524714f97f4596ce3fc9e63289b9322e586aabc130e986b703cd318cd364ae7aa411ec8ca8c0dd093c72edd3e927556ff084ba808b44c07300fe2491f464b1c45f3c60435add20a011fcfdb6fa9bdb720f15000b9c563705a8b104f83952af0aa9a8dce9025a2ad9626830aebe128256e0c4ff5fbbf020e914325f0b977204de8af47b6d21e25fad2cf9e19f804ed35522194cff47bb8642e09a567d5225bc4072871d205bd4a001bfecd0d2ddb9a338e8819d6716cb3c9ee3bdb64a35b303fd8cc5da167df256e32dff13af156ea127872c4e4132dba6632cfe6f6e39576efaf44200c9f5c0f74291e0ecc9ee5e14b72617ccb78625c6a8492dc2f33c8fbd96195dece0a953ffb4574b2cc98ba09f69effc7348af68d8b52b4545379428b88536e79f7ad3a3b2cf0eaec072e52d9f03c699ab41f63fad818cd7bb1cbc523299ca0fbe5872ee2bdea9a68807abaa3ef0fef43a6eaef8a5201005020e2b0f797355f470c6c54e2fd9794587fbfbfd6012f39279b8eb2231443381aade54719c1820e873552cd72bb41eff20b22f6931b0f253a0a759869ca33acc47ef57b2503c362f8da203073e60e34eb8744f1310ac9d965cb92f1f074b2862f162ed1a1095b642b246f8fe3d8e610de066fc490aae0e72e4a13cd57ce54f0cb8a3078cba789a5594a9bac4070e91073f9da21dd63446566bd0af9ab4971917e756814bcc2cd177d1f01ef19ff3b91048760e368f3aa1d11b128ea59fd8c790f66691ee72f89f3d9c9c25cfccf215566ce52c43194bf29612882df8430b157630666de6a88d5b8f8c4fc0362bb184644c7aec9cd51e1e0d2656c17ee0bb0a392180ff9544b0b3f8d2046e4331821f1360ab5a21552a212bdc69698a2b8e951682e67928acae80260e39e19a4b61b1ae3b23cf981a51c12134f2bd518e15edff931085440b7f0e05815d35ef282a2577f39338a55a11651db331d6b98a3185ae98c5f6de926e08501d2a185202cff25fe00515eb31f40da201b44561000b0acd925ed4f8212c39214789c40363371627ce68f106ed0f0834081d59783d8e6eefc38e071a0ff679a352e1a135b6d89eca517b1e50727bd78bd0c67a16a4a9ebe893c5f066f378d22351c34702ef6d12e119be300dd404252f7a3ab11c2cd712e4712f86059890bc862574a04cea8d756e6fe56674b05a1ce195e94417c636d34faf3e36a5920d15cbb780fdfe7cd3058ee9126c797631a12e0f058697d9d6c1e0b992dc28cf7df79fc0dd92cd57f07e43f79fed6376c06cc603de48bb4b4d20a3407f22258d2e0e2624c53be25b6dd4d49bb81df183e62902433b2dfc63017542d8843fbc0510e8881121ff432fab2a3d3691cfe97216102fae49c85143869a2accf9b0fdc14dd01f1e0b79e90110c31df53617c1049cc511e06dc4d2cabeeef69c326ef12cad1078e262de2de093144936cb0bf3325dab86806b736802d65dca812097cff0bac63ddbd3f4673fde1dab0cd58643ca7132b04a98cfdad301f625f95a119f5e74824c1e9fb8290a474654c9d05d9506af1130da6a9626d964a69de2eb915ccfd3d3a7d86af3a5c3beca0018f188c3c1cf2c9d3453b88685eac02b5cb1513746cbacd8ba07212d1a055501491dcb0b2919b5992e1b06c7171284d0b56a57110fd27b8b2c967e62bbf00ddf0f730dfd65363cb9d2acce7897e411a626c79ea797f4b77cfb19e11ad75ea0c16d8d305dc7c8874f6335f6986cc1a68cbdda235b728f5c5174a31be5bbe96fa889f660e7b4c61dd5bbb3b03642984eb9c5588ef9433852d7ff331dd5b24009b4c1d9f268ccd80fa495425648000eb68e80df9d63bd004b00ae4b4d69ec2022880910965456e58aa22808a4bd59d461e5e6acd3ca22a273b49424ed9d5dca60cbb9e565916d1155084de857fe3ed283c209a974830169fa914a787b63761dcf4cce64609dd39b933111b45ad8c8b00cac5849acb9e9da220210c8e9de9564da3acecffc8a0688ed274487cac62882e639738b3d01cffed28ec5c8ab068e50068d1cd04f03a5b1cd31007dadf9e67390f2770e397d12e70b90d2191a5ee08caa36db5342ca61ed010b6d1fe61f25e0126f82f12ddcbfb32cd4ba3569eb94bf10aeb6c27c56c5302cf84516fcf691997b34a29eb3038f94fc2abeecc68db887288bc4fe4422ab0d99993630f387da932e2e29ec2804e516dc2e1923c61044648a580f97cb63d086a4ba1be71d54afd4c755d44e0b5a1dd447280003dfb78f02df999c22c2b81009a69406cac1393825f916c10278bde5cd14f2d7a78bf36bc923a901b417268a9ce4bedc2b53c1c019a1d62da01c5463283de3b6fe85ae312f86a63a7047656cd8d406d69f8904a0b8f5d5f34a2960c4b5ceefe80946e90106a038db49242c99ad3aa3a58b2aebf913c97e16c2aa52cec4ab280ae288c90c36a78564145a28182f3ec9f357a885c143372867c5261d6c257d6ac4104253bcf5856e7d6ec19e5c3e107910500a08563bf31fca6f230b9b480d84f9a0d8da9a4e188ac026588aff5aeb1cb0ab972338da98cd619fcf1eea0549845d4ac9d38fd0d0da97259cb9b83ae376f343314ddfe328b327b19c1aaa411f6d5e1283d66a8f7a599482fc9deda8e59822e5c378772a95287009aa195045dcc7d97137e42ecd07d4c1cb942e4cdc2a5ca8b96614802818fd11a7f40f92585642de8da5eb7d2ee1d200c5faca557fee998b7732f9e3876b0649a284f3656e035fd3272053eee2a8f96c0d2f9054060cb53d7c34390ae05214888aa9d548f850f0ac9f0bced8935c11dac2bcdf6158daf6b305a6eb28237bc86b6e3fc60548f82221287f58955cb4a5a2425d770dcfc6a291356ca2d7d5634db4a0145fdac2a4be8797e9d79d179b8112fdf9a5f2d548d40227f3ce428ad326a096c60534ecd04ee1a107cdf060f66bce78f1db7b1241d59bf5a5e28578493d8c4796e1688e1442ebe9e177cfb6122bc1ff6e3d0d572ece08141c4abdf3bc86e5aa9d931b311f97cf26db8b615494ac108ba5a96086faadf72c61b9e0ff26d2bd064e55f8b3cccae23d906bc966575196d4ae8ce09fcaf55606ac08240015cf9a72fdcd429ad163a597d91b3ba2e88b44a1826e1daa7b25aba4f123e2b36226891c477b060002a5e4f61b5acd7b11a8d481bf1e5da6e755de2a516683cdc65a835980d02e1c6e2073c3464666919a301c635301f8f7bdd2f26794f472df4802d6242c141984155831cd25794b0a3230377ffacbae001a25186246eb9072a0a4e414c3cdda95a9a922204351d3429ef24fafba92fb6b5986d9b5de14e48c2d39f8043f4c97458516be4cdc3480a87998b4f9b17b1e1d52c87030531156a77d3fd83ae0bfede010bb3be78a5b22fb29e05b1a3e9850ca8f31ac86c5d70d836ef24eb792be8a54d6abcc4b55994c6e5894e0528d342bffa903435824742cb01f462c2791f404a10589c34b02c1b8335b0d40c1e4c3f1ceca2e77b430388c61e6dc806320cf2cb2b6c3ddf58d77eeae21b6611c1639626b3d95c60a11e1b7142ca985f4d93671ae20542c1127828410d5cf71eb48c236cee5f5c25610f5802be28835214eac402e87e95a837a26731394b184b8f20bad1f2433707e214bf385d13db855f3ee11bc04cc3ec01167d7a2b795ba00081d8f9a8fe00964217cc314a49d4a7592fbd9ae33ea136ae15af658083754a00dbc44b2fab3515afd3fecd7d250058ca009b64a7a394c959e8464f5f34aa73a08415c83df0cbf326f5087a80bdf9573abfb2b2b83581efb8847b4173dbcca11d220d9ceed1bb21a281dec79c6c3580a15167ce3e15276b9c78868516c014b3bf12698c1b80406e8813aceaf213a2c5c5305fe47d6a77b362e02fb050b74b7b0530d5c84ad42ac7da5f7eb2d838fefa155efdc980b83a22e2a961fe8a235f2a18876e6cc103a64b20afb6ade91e18e6d6fc2bd82a2881efc41481482ac848de0499270efb9542550931116503ed4dc6bc670f2d619d81267b76e359c06e00eacff875333c9111dc9229c8497a6627d9fdb7b829bf1207a46a59fb7fe2b02b08f3e1a958c012e5577a65a6adf40fc97a44c9afc44636beb2e4772c870e523574aea8242e785f9c24fe059152b373981efd10ddd301b71ef41ee51a9d59dbe1f14170c197e668c969b5ffe17771f29a3c5bab6f3bd969a9f40a5e62bfc332631cd86a0aafd474fa58c2f1dccff5954a390800eecb1d44882bdf17b4e2a1466a392344061e86dbd9576a0c21bf13e23cc142897f9e407de5aee82461f7e10ed672e55e3f482a5f59d84547967fa9013acdb95deb56e4c81322e86d0b6356acefbc60b007ea5d71193ed20d4dec6ee1374f001e9fbd69efbf2f6c68bb3f59536e75cdf0b622aba5c2c2a92f0a49fe30c55860e520dfbc6a531a3b650553ba6d2d15020207e40f8aec8145e7f1da1595aa16e529827c0bdbee505ab3680830dc0d92ba7fb03681b8e3041e66537a0c36805339cfbcfc01af46634e90553c07698612128ac82d2b554c6351a189b1bfa8ef388030efa8c3ef045345956d0e60b44d804824b3aceef9b302ecbff5b8c00a50e9171967662ca249aadea98590d688adf08db47110e12eb4f728ba662287e9f5b65d3381f26e2effca9bbbfe0f04dcbe4a8bdbb3faaefb8c8da8c3ba86d3f324720fe9bd66e2d564c733b72f6526f2ed32a2800befbc42611ca5579720a85b509b57684f5ed4877c419795e8ee2979027d33884c3bfc7ae23c126acd9f0b993817f2913a3d7f045ce071f88273402a62cbc41b590c9bce03c5da71bf0b9be6e88799e39e4120506c120718db303e308ff80a89f6d0b4c3ec963385664693d0472a1462854960b22f798b6f0588955a08f3218c7b9d24ca5b7f7605ee0fa8b9ebfda6348edd03eb8db7e3f6c78fda08c57d0285a1b8f718415681bbe591841bb69fca6a9402a2a5868e9e9a284c072e9695d890a90c76092bbc7684e2fdd72295575c693183d4a2dfa972d6891c9e453b7004e020d02bb173638b87bc25f0917742c1436f8a8cbb03d46fc6f95f5ba0bd264c24fbe47313ce518bf396926ce93689cfb4145029ba1e1bd3d8e6502b77782038a766e95383b6882b093d1993f7fc6063ae3381eab4adc1de0042912864b2aa9af856be50ff445711a82247d412e6b4c472dd53c6014b42568fe7f9ec94a4650de10b1b4f917f79bf42d784834a9c752e8b11e5af789df2a1779d249fdbccf89bf301a60c6a419788b41d8508f22fb3a8eec6b1f1d7cbd74334e6bc18d472e7d3a154b2130ea2849354e4a37e30b257bed5c5842d34cb32119a9f2d0b216c4d1c1c3fa7b75f045d7f0b27682457c2f4fb778b630ac9787bb9405f56b7008de2ad3aabe40f2cbed20f76e0b54ce3d17766b4d0f98bc1c90de08217fe135b2ca5f6928cac88185a35cbd0d9782c8d17832964dce212506118f361e674e7a9b30018e2f4d5486cecf910a27fccfdee4dff2bf5970f932b5c4e436ce79ca7f39f97496a9ddefc596adf816af1e0af8e4ef6f762824175c5d4622230b887a99621ac3395323a12c41aeb7622b1f1c4746714ab8af42e26f58d48d65c41ba21e94184846943f14dda9183c6a91f0c1ff1ee9eaeea81dc55594a4cf4286e6af065e0664456e964aff7d6da6bf989be30dc453345615ec82f86c0a57858df1b75d964f07b7e382803714eb1a0f5a4849bf3e290543209b8be20d32607d8a0419f1ea160893d99230fc6104a2ed61a55d05eaf1d74f086d3b93f5bcace3a8994a138a80a2c862102a0659e351dd8c34867298e57a9e16eddd498956419ea248d6102536bcbbf9593d46f09c70d6ecd84fc9506a36cc54e39980a9e37470831915d47e5af29e0b132f2fb5dcfdf2ef569ef11403696d3fe65590bc7d258008b810e3464d14509c667db99fb87d5b5727a24ea8dcecde2e0f65018d91d648d9e88b40e9e837bc5221b3fd8c37d9c4c8ca98ea2e620e8548f27cbaf3041664d936edefc1e6e3d7802358a10d9c3b4635d8349f3958d95415b3d3c09a0229d67abcf4604eed93c1dc4d107d6b13f6935c7ec124ea080084c349373da28fe861acbf053a2da1e0cc81340fb295100d9d03ba3069c699321f61e0649173c5ba343c662729568ab0faa939cc57ae1d3353ab3efcd3a78f29689cc9c92f016c8c82d63df8a27868dde18c8f466ec1b053125e0f1914d117cf822904f6e06f4c81973a2a42d5a6218f5089b31e5a62d6646069f89ca3cfe9188a69b58177e81ff592ccf8e1986e39913e80469517895ee8e014caec57283359221b984f036a4208d1e022dc5ed471faa5efc194a9506a866a3708485d00fb272606777e1004f065af9d27526f9b3f32c21c88206339cb0a070608e16f8c7fca7d9ba8355330cd3c208c23fbe5ceae1ae53180c65e929a4d63ba0ec2f8ac45eedc69269000404a8a08b8cd80b010409d9f2145b602e3881308d2063bc48ec3395fcdb9060076a3f523b39a5e5caab7517296f65e29194e630f40a100336a932d724519ee005c601665c614788ed92a7f03329ffc92776552862151faecaecc1372396edfacb781367a98e81a92d3387c794acfeb33b367d4d5b178828323a5219a2c4b4c6ca62babea705e7413b985f8e0cda0481b56a77a1eece50f861e9f96a64948597d5e3c621ee9cfed43677344779d9e1a9e7c23a5166aaf70fd86f275392d884521aaed95d8b2e1cae97146024c1f3f7b283c298f92d914c8b037eaa7badb599fdf85de2c1bff9cc42bebbd2037fbfdd7f36b6a7b86b4ca78efe1bd4f9edcbb3fa8eada3a63049f1d210565d63130d13942adda9197b98b2471cb8b33fa6fa5e4ea3972011caf3804d0928e3e30a40700388ebf0c05122f8b986b9012f8c2fc23d0c0e86db6520a08b83c7dbad37273602220e0752188c3fcc7b2c516d3f87637adf124a14b4bd8ac55a01fa527f93a6c5101578cf0532fe05324868fd9536e5d5c5118ec5adcd65aa50a820ed826c819a8b9c260fa0e2b2e7689faa0592b7b91bbf2b40fb98b55ec6a2531edb6faa2e048503d77613b105433f01c8e069dfac71987730a6ff499305ce12c2408846904480285f0cca9414c80751a0ff51a28082f635f76ce19a89e273efcb034c28f12dde25a0512e0614184ac58e14e882701f810ce4eff5746f34758f7667557f6ca9939d8fc071ecce04e1f36c1d48aefddc557f830438b2c78dc2c479b24573f170e14fae8f3373db7f6c829c87bacbdcc3bd0485ec905e8ea622c810845bab411d592f068e2c059510abc8ae4103a2afb4f5c4a11ac6f8dc318e38f5b0996cc61f5a555075b859698b19906346b4cf50a5cf104b5a7b89b6659be92cc8a04d9088248cac336844930658a486467cce9f2b6dc226b88c42ab2a8994e230b8fd119018e5d453c8b527e0b2c42625ed46991b85eea5ea90aa833f73fc86cd2ce5c70d7307f2e653d8a61ab2d2ac85f63d22c814d412c2c7cdfd4079efff0a75edbed93d3b01b6264973dad09bbe02dce6ed3db2054f45ccddc6d5043d12e70aa10e7017fbc8958a385ebc2f5f43242517beb05cad60ed9f77e3a704c7d52176250c659afadf760946c693d77e82fd98c6262ade9c7f43629a6813d546e32d6f26fcd6c3255ac2d16353b501e2111072bb5d41056f9cbc40dd38ea603fd593c6e6ce2260e534beaee9e5b38871caba6113d3ba1c46bb20f195f069735f3bd40866e64f2b51f9a07082805244ea41f33c386977386e862b89036c813d8bc71ce78726fb9211822549805c267a023859546b48a030461c0c2784bc2cd50a576b00450e6c8c0a37b665b618c86dc07f2469700f1ba1e165b756c83a924e1398b92bb189a38706485a25d5f9caa710b8fae397d2efc28c4cf11b01dd1438a215509fa06d05a0aa256790e0cc526622e8cf0ede64123f1bc296ec6651b83444b8c5d11083753bc1fe2c8332b2f02e3fc79bf98333b66328e7679733a6e2189c007b994547f72a81f0f0c147ead939a2481e54ecc861841c073a111eac31380deda8a87a6f5c270077d03b2e04bf1ef5d862a09cdc1e39a832b608ab19694340239414e6f16c3b1515a698bcb4825809247b32ee4552540f445b1bb2526ac289e9a39f86c8cc2135b112665c15303ed12456452362abfda29d0b9ca5187d157ec876ad84c5b196f734fa7dbe1357c7a03f8022e68565d1a371ad3cbc361c1954f269e7ee5b412a027e10f31afd548d6fe83c17dc9150243d1c56e6d94bf5d257568a0353055488a2f4b1f794ebcb82cb8ee973bd428ad4934d18d02fb7407fbda9fed3a453bd52cc5b293225c88e5a3748a4a7c21fb51ba2741723c8343914b0652533040353851c8b897b654d51e622f2c6d7b1341187989be05d8069ffba5e61adeb73275248cb07c5eec40fe33516ee9534cead05857e119bc192aa88736c34e8cc6d18837476e0ca228d2f924dadc64bd2449bb080ae705b74ab60f4331c12680a113c69c46da2990d6b1c5c92daba8e40246bdcd3f2a4fd56d8151ce9a473ba345249f1cd645a3c91394883ae49c5e558e0749784a08d6347aaecbe6bd1919d644a67a34bdab68d0398f45aa7067952f01a078604c2d5592caa405910ae886ae1baa263715705caa2d802cac265c1591a74982bb816d555d8889ef4b855caa20397e4ac357ac986c4bbcaf134486ce23a5e48c9db4f2b6c4023216f128b38da624de34a3abb578b6f2bb82c7454a02c8a16d02cde57bc8e45871e29546b3ab050304ed8b52575a48ad601410238f12618671749a4ce9913598c57e1b7606c1653569220a471e89380c215c645bab9c016ff166c0b2515a90ae215d1577c51c16db153815a41ac02dae25f2c3ce59052d04165269d9dbc56d870279d6a5e2ddc5654a7a40e835ca3a2b965f674ddb8c28c9551523f2d51151c3948f16c50d1a4f81af38a1d167a0bb40581c547594475914cb4736df10c6e524ccec66bd2642b898533a092106da2e2429738987488052295b4725db3b0bd0e69dd6a4a3cad301636d093e4d138a44800cf758c01a1ca8e3977e86090f4e4d2704d5a64e3e8e9b0dd71a4ea3e68c5667fd2bd164c85fd4b9c691fc200068700a594ee19f2d46b3d3b795c005ebb9ef569380b7253ec2fd7d3c63af5bd103e0d1146eb58b02d4cc9e219e9a48e2d5581ab308b0a8e19d2c6955890b5f05dd1b65058816e41bc629485db82d3027716b9a3911eb5348b9cc55bc2b0c37b4c4ed4c2c72c00f9936e1bd0748bce5174fa38ce525e464bc3b0485b51448b1b50244407520ba8d124456c1ca5482a57ab826ec5472ddd4038945a741d959489c6219da472691645afa452d7cd9b28688e9b94fe8a10c340b5dc242bc3b6b6f815118af12c070f2f432be6c5d475ccf64e767036a394ddabd0d41f40aaa7ae5322d7bcb09366fc4a9606033242581d5015efb3e8682755dcbe53618345a2bc715b44db22aa8214dad959e092851a69a477360e7412bc6b5a74b74547efa05e12956bb82519d2906d3779814a7f72d3f8ff843a73e63a8c9040ed68af45eab54c85a55670109154c5a5414bca6fd925d0a6bbc2141650d393c0d138d024f82e938a8e85ce02532d3a8848a0ee96a721f55aac8a74e47fa7c9d0d563c510aa393971c58d85b73327a8ce3f809242db38ca938eef3ab2a490da9e05a505aaa28a3583108af2a8e89523ce4d498364dedaf528d732085900ea6c089a82e2d0d427d529a2e170172c41a4854e0c1c387974a414368e05fb0a6500f42f1501e4b5027ac9555c5e30903a4e07aaf1fcc3705ba0e818d575f45c51158c3f1ad48660891f5585242ca1049d73c432f040345df3aca1dc6ccff30b5da40a186e6518664db9c262638189a008baf95498b8c363247d1f9e7fb440a64d5adb7bef2da594522629036705c205e70514535cebacfa335951d226ba5821f97f4600b1e57f3fe8d9c48beaccc5e9c5c589e70ae6e29cc2c5fc9f0fda5539e8d18b647325732c7c36b51fe74aac39b928deaf037a5a19fbade857849e9bc64a90bb0c34a94ca0e9428918bfc6388cc1f57ef431585f03edbe1d0d673e273abf78320163fcf7fabdf3eec03f87d417e7e7dc3fe5d873944173c53d855d9156b694a68993c8f693a2ef636badb5d667eea45cfa9980bb7edd24c6b87beedebd97524a31eeb6a71ba7b9cfec71aee8bcf89e46b3baf24784c6a7faa5404fce247a5feb4cd7bde7795aebf7915b8732302f447f7e9d1fe6b737b23138762391ad3d09069498048e5e7a1a0934b2b551f7181c2bb7cd74f22b95f1d9caa0323e212d7fccf7067777796f588dec4a3d69abadd6da6add9168bda59097d6b66e8d784adaccafc20a958f08dd7d42faa9fd9c2dff7492e1df18f30dd65a6bdd3b77d72fad06a5dfe8c2314bef66e75dd779672d12bdbdddeefd1dc7183fe9333857d72e1165872842b21db614cac2da358b6a73d74a8b5f86dad32eba3079b28763f6e9443012bda3a9154e3a8d2f74d00f41314fe22aac633e57e24a3c892b7155905863ea8af40e3925d1f739d9635c89832619a3817595d4ae502ae70cb528aa947b4a1806a5fc32bfcfc589f2428fb3e53e533e5354b545ae20b1c84f093dfefc16249d72b24044eacc9fa94741dacc9726ff82d0e37c4d31539c9c52cec8190bea525d929899fadc755d0d5d0d5d9226ab6f872f7a4e978b0544ebd3332567aaaba14b123313a46426d3a206fb27468d9deeb1512f89ab2c06a50567cd7481a1c71923da53f2cc9f443467a23dedcf20397a92184fe238526ed1639605eed4cae0fba6db0fc8a995816e420b2a2f7b1ae2e7be8fef5bb97be9f63b140064bb1cf7dc76ef6673b6a7db76a9a63893a7d6add6b7368c71d19eaa0954ca2638fcd2f4aa628a0dcce1f5f8fb3806c7edf1bbdf078242037ce4de9ebbee6197bf036df5edddebc960e722c7dd9ccd43fb35d11af7bd694eeede39675cb44fadfd0dd4660ec731ea7b3dac727a4c870fec508096b3b68206a670056685c8a31224c5d501d1da618593a8644071445a5821852013e0418f922836fa1ddf36e994bee61addac66434a6dad754e3be74475444156b11d3ddb7bbfe3f4b5eeb9a9656df4b3cb23ea4da6d605a133f7e40f32475cd835f15506476f32e9d4418f32363f488e693da4677e929c31de2bb8e89f4210173d5677e08c7048a4d0431a0659c5629dcbc881b32f4d332da2ec09c596425bae6cce3f56a5dc54c00e17a500b9e81f65b6f40eac265305f3f46548b9d0425e8185090441a10123fdab801d2b7c7b27013be8f124d3238cd9f1396bf598aa67034d70d1fb1f7d49681a4a17367d28324022beeb9519f528a59eb5d6ce5187d24592f4ce451bd24a7d546bc3ef89b6bf43714ea7213df67beae8d5306b9af57ab839e7acf5498f896c8bdade9cd45aeda98422e3ab169e1c077e1961029cc67fc7039452aa6b385afad40710ae823ceea628481930fc0df193dfc777feeadb02737f4f349616636cff4381b652c378b396dbbacd480ff72412e97de4268532fa85901e3f29c4af5f7b23db0347a0064920e7ddc833b2bd6efb0ceed06abd2dac334c74c638e39335429ba09c538bd1f25f0d9c9aa64d0dcf39b9accda96170fe9559bb534e39e76b52863dec9e12fc74d044f628dfe2dff12ba5fca868134c5e03c4456bed6b3ba4ee2f89d67688accdd1c2aa7d0e47f9da76380eed66ed6dd634edaa6cb0052584454c4807573647faa668e9f3f5658c5379a59457e2b8f77e1766307f25f077f0be068e39dfdbe3ef17c4610f8bb59de1fbbeeffbc007a4d7df79d64e7fad2b70de7d2c3de6af9b79a72b8cc14917d232db52484b4a48364515211d00d1755dd78d01574e229c4e88414e0839fb891d10827838b1638668012f20322f07c0a001356011784190524c852652f8643f5658a031bb800b5af8e00526501ea090b42015935a42a49aa1ca61682563e583100b8615040b5aba45441517c93565054023a0255410e405b56009a28ec889a017f7924209d8069b54a460c6b4199b5a5020cb322ed2c6a9ccf06c7a91c42cba2f2081b228245376aa2e9136aea2aa13481dcf61e5ab23a48efbc092366e02a9e341481b7f6f958ee8d1631ec3e238e6cb209f491dfa2e25db3ab7cae51a3aa252a284e4caaeef2929bbbea780d8f56daa8aed263837e7c37f0eb15fe407efee394be407ef2c6de653cf87fd22201d33a7398f2ae78751dcf9a517347de942ec9766d0f5a58ef6f52b77c1ed35f087b485e394f907fe2b6fcd758a4104b4e7dfd611d40e61cb211a627b2432adf65c9e777ecf9c534a9beeb3945976520347edebcb36fdaf9b3ea4bf8fc1edf3e51e8f9e34ceafafe9984fb7d148dd33b473e61fefe3af3d130b9923b51e8ff91e8ff9f7d297ef0362cfc7fdfbd3d34164d6fc90f61ccdac02d9be6f534531c088b6dc32062019561ca9c6718c35dd739ee6fe72a0f7246b3d2f94a06977e068b9cb5d3cb722339bc8b7bd2752b7febc992c6dbccfe0e83950c38c3e8fc6b937cf070e37cfc7fd30879d8b1ad4361b437e58b84ffa22755ffb5de7f9b8f649f6da273d673ff7586bb911e83d97b7e740f916f47e049ab6573d1fdccc725b1bf5b724381864a41ffde5ec99359dfc6985f87ccec11a0af131dfc31a17a76f01dbe196433048d953c6be943a3f73b6abf69c36b76927d6ee363f87a63d6b1c870da5cd38670d8d61080620b6ce96432fc8f6100daf0db3e5100d4ad4d4489d21f3a5b4b97fc3d1c81ef15fc7e3f51212e7a469d7481bf9ee4ef84f191ef5f1fbd43bb70c6578cc97ef3343aabdacde0fff1916993fec95f58642a86bd339706f5737ce9bbed5e971325ed775db7b1dd7e3fee653730547fffb42d7cf2fc0367eae6edc77739b3e6b07621d32dd17a923f773cb39bff6337d706191b9e5e3afde8ffa392c32b7fdebd15087fc3bbd1e267965dddca453f8537feadadc94d4c38df03aa9e353ead3fa5408b53fa4edf5a9113be7101cbd2f9b6cfa5586edaf79d9f4eb18583852fe893d1f999fb9b52f52b797ff43da32e4fe7a3fece3fb321cef0fe1a1b705fcb5c7da3bbe4f6486323da810ed7d037b8212ac5e7551fbecfd90b605a40dfd41c3d76a911ccaf4a0fe44e6be6128a43e91b96da8e367ee1ad624385a1f57a99fc7b8b2f35f2e7739eb931c4fe2699e7ed8d83334a1466989fe39fd8830d0094ddb94bea43f9eb06927b5c4316798dc2cf1571eda8f9aadeef1f0b0c8dc56f2b091dfc1cae3e270f4b76f85d83b85938ee36796527a1ceb1845e6a661868025a20a21c6119bb4a59018419f97efdbe2fbb870994270f1712124464a288c27df0e3610649d63d081182b31585f978f0b0fb6140a8386305056c8b468b142460118ae78428754173bc8a2e5cbd0972a52c8c000e20ba04f8bf785872f23c833bed4801fd72342a8a098e0200c20172ce1c9b231bec4b04597052686186079d3e3c74cd80086143050f059f19f4c7cd31724f6684ba12f51f6f8276f86f1f32cdb5f23f10018dc3023c110155a2891833dea4fd6c229cbe9f47d39f8bed309cbf76171bf57884ff09b81761c68f9313dbf4a9dfcf53da983bffe6cc03787e7be8f802d83effb6750065f3906fd167c37a094625aadb8b6cefd552c5eb836fd984fc88bd60cbe1908717145888b594be88bd527c5f7c172fe3e2c9f0dbaf0d20592ef06780915558238a2871e42f0421545321429f9a2b0c1a763bc84b1b91401c5e904c50785fcfb3eff3e8d7ddf7190b5481ab947128e0e2f339034178c81a6b1e5e6a1c29ed4ebb1ee9f471a7b3ef1bdbc28e1787f50bc00b9b47dc7613fc6d60a24458943879724a428f7484f2b2f5bfe7415499d59e425b5a51097d4964b6c29b445158a82d44141dad0b0d66a2da594565a2ba594525613a9339bd418489139953aa5019f8d511affac3d0847fd7dffa28c701461c2f1b46114e79e4e22291cc51f85e37f77e5b0ed4f55dde7acf5f7fd773f8a5d38deec1b20e6a144abccd2adcfb5e753221ab4e70df0f25454ada88aaaa88aaa28ef6e8096a702590b64812c9005b240967637c0ca53671447d25b67b7ce6e9ddd3abbb37d03a43cb685b16d61dbc2b6856d0bdbd6f6bf013a8f8d511cf9a79328fe7f9fd634dbd8be014e9ebba2396b9aa6dd55d646f4416d73609e73ce393a6ccf1ba0e4b9af02f8004cc049d3d8a9366d1265cb211c5401d8720807d6ae48244e56d594d4c9af04101011ae205a3ee42d3d1f6de710c354f4e64614ffbf4feb05481eed779c1295acd0f335b096b4e89183a960947ece5a7fdfbf28be460e16945514479b6356652936fdaa432bc9f498fdf31ea16861a7b231ceb9e85297b9e936e25387357de0a473f4390a7ad345f17432f9cc0564f9ae634a9b0ac4c7fee8a86f5fc7d4c14da7b24a3be313b375843ac2b9a5a723d32b45943dd6ed9fb71c7202c4d65a6839e4a4c990131b869ca0e4735ee79c2a4889e594b3b3034803ac5c9982aa627497ab9c73bae7607fa79c9d1d40aa58b9028bd15daeb5aa5083583b8114886450ce2904af3dfe04540892822c676787a9c68497434eae382b46775983e18bd1816ce68bd95ef8b098ae990f8441cd6451146446827a8cd9e6388e46dacc9f13ecbc1e1a9ac4212757f6284d342f0e39e9020e39f1b267329c70a51bf8a5f75e0bc3922a516e98816008fa0595255c97cbcd224b141b6a0a05268e6c996245104374c0beb0c40574cb168cf1162f6616594ef64d2fbee9bf0827a1c4bee006463c51450e1c58f15c141318e696279b17b1c5b460f89327b4e8c537fd17bdf8a62faa5c609bc5945bf4a74c4575308a90b2831f82f07bef1d63df25281022638c8bfec489c0de28f74f398b04a214dd50a425e88a23c4f080eb4fc768fd04a67561e21a226fd9b2e54f5c09ee9d426f78e2058b11615cd18104612c99c112991fd9a28b275f4a108417487af812832ef97259827242632e745eb75f5059822a61d222012e2a2a426d614d07a30829b37e616d1653bc092784141e98f560e5082dbc607204a571efbd5196e4800913f6de7bbb38618284dfc0640ccf62df3ba516bdf8a6ffa217dff4201342a45058a4604951f4a7bb837df2ff271c84e70c4b8068585244146e79d09f8ed11a63dc4507265dea4805032de6122634982c116ab0c5941dc2088aa24aede2862e95628cb95055510d61243898a10919623650f9e10375073f04e1410caa25a2e49a3a00143fe0b0644a952642e0454503d50d9c861c2421e2210a2c25d8a2082866dc1633862e4cac0cf75e2e2a2784c0a1ce9860318466830996e06284163cc8d07a428b253428d19f8ed1dae22318639dc5902a0b174dbee9f5a792bc308b0289193ce085091e5cb76c8c9f1ca981c5d0922e6a5ce1a51bf4988de439dde77b8bab44c2a04d7fba58f4f36bd3223f78cf481bd77abc1e1d534aa2c7dffb1dc737b3dd460c37efe3396a0a8ef9b3e723ff5322b57a3ee6b665dd1e3f0e7d783ee67b3d59896acb2cef63b0ba282d38f3633efd3a9f7e8ce3908f393064036bcba124558692acb6e6dceba9f5c7853dd21f1af0af3ddcfb9b4c467a5d81694d6ebf793de6dbedef76ef773a7cbbd783669cf3dbfc74cb2a5b124d2b5b56cb651e3b5e65f2ef9ebce9e7fc37ff3d421fa78a36fe8c3fd3b7f62f8c0c18183d23c6d3318336ce38302804c6eb3173d63994d93ebfd4e11b3fe77b876250779fe99463070a4156684106d50e521c8707ee751c80755afea0938e43c8edf4bb90ac793de65092d4a68ff16f3cb2ee6c48bd4e49ed2868f445d09e1fabe1b5e78ff2ef7bfeadfdd6c2d11f3fb5457ef0d6fc8678037bca9fef43046db9259257e6b8fc17ecf4a4a0e536fa55c3744875913e0d47fa9c05291d9f3ac1491307ab7999886682ecffe0e7a80371ee92e2404e85d28ed2dab9d793dda5fdf5f2fbd0b73de8572017a9b8a899aa6ffa452a301a915b56d0b4adcbc77e0d9d8a8b210f1bdb86ee72d15f0387d83d4b478a288ec73c668281e9117449065ff881513cf83450882f96102c168bc5629dd0e974252c9ecfc8ebb8edaea44e7dff9b83c4d16484230c4ca9a4c315295cd551186e214ed190de1087b11c86d65a6badbdf7de7b2fc618638c73ce39e7ac699aa6691a354057aa428f9468ccd9da0c70cbd2079ac4a1f1f26984d70949e3ff81963d802985e37dc12e2c87233db27d86f755e3881e71ea050404040404048442a150281425e2743a14509db56c6c55aa42e314a594e2144ee17d5ff7755ff7755ff7b5b2d65a6b6decc66cacce72d6fafbfe45b1026ddbb66ddb46abdd712de7486d54a38a9e41306e697004e75fa242d7b7b2c445d31f50eeef5007e7a620941bce908364916bca580e1bc16340e6e14c3e7d345ec0c6b5958e460c0080dbb45c4763064880d1a4916747a30be21d8d1aa0791142006146a6061e8d1b08008d4802006c984608332780f95e6b2875e11907a2e726aeb179447398a58dac4485a64024a52971d142a06cd9b4fd04650b25a571246272c47c0c8fd502349e19374669265859f626b9ae4d698ce73377924d6352d2c60abdc5806c302c34e94571744a06cc36f25e52076fba758ac27410c5993103943c1394a3185d8d6294358ad1d628465da318d02816348a05ed31933c465ab98cb4f21969e545a4154591563445a22ad2ab95c317e9f59b86a3b843d22b456966a82d1cbf942ad4a9934ca414af280d2aa7b4ea5b3d4b6cc162fe5424ce5ea683601b4c3c891b4c07cdf41c47b14c55b0d5a67385614e7aa536a53a65654516af68d1a88336fd98d24c6fb071836dfa31797e0563b4cbb8b2cd362d59a147ccc2ac92167abe56d2811ef1985914a77e38e2960c31ab94859ebfcda6ab3a6cb666791669d4977ad54926c61ef6bd6293283683805039a555df6ad53a1589b3977d310dcb2f1e9b79a40531abe5020aba3c2cb85029d5caf2cc9605ab2c0a42a5542b566be53cfea2fecaa31a42b1394f18e0c7acf3a33ee1c72f07e74711c73b4cea6c377ecc267ce2e99d2565d6df8b01f829933a9de9c71bf137feb49421fc7823cafff40872baa48ef7f35b903aa3ff7ebc91255943cac8190982a4f1e38df85b6ba97f47ea9072fcfc2c7564a8620ca073420e0e8e70bcb96142010850c2cdcd006c6a047043239200001b372384e08b7003c28c4c8dd2cdcd071ed0193031e08ca72a1818158c0a4605a38251c1e400310f0c38d2257b3e25aa95a81255a24a54eb8ced61c0fa39a495565a69a59d01720f03dacf71efbdf7de1f6f6680ddc380f773488c31c6f8c79b19a0f73020fe1c596699659659e6fce3cd0c7094c3ff6a3fde484d6a52939ad466689f436badb5d63fde80da9e01ca0861404d0a726db025bc20428b0f52e4d0f19b2cb312b61c6a42c539705e41dddedc88e23ff73b5e370e0b2e6ff6be4a57481d191e93c85da6477dfb3694db3d1dda9edad3ae4671d1c7566ba94fbb8d6a5853db97aed0fe43ea0662d3cfa06bac2125ea61e5de714e8612499bb9f3094a56684c29a594524a29a594524a29959d5c62eb59df4aa75628a2fcd2b02ff6323125e6fce913698aa6eecb9cb5febe7fe92fe7c1ff82c564b3a28a52ad562c56abe572016d2929516ccba222d49654c56ab55c5b4a29a5c364338992524af9524a29a5e4c9896599f6d947670e4d8d399887058a435bd9a581bea0279abd66bbcad9e599ad299b15a1522dbab2344671e803e5199bb1f9b1d8ae3cbea238a89cd2aa6ff52cb185a9bf5274769289b1877dfed2f9d3ff897f12f3c88650300ff512ee6b9ba077fd762da18abb4a9a6d7ed4353f7e021037cd152f091700d7c635dd116ef863067fd4ffe327c28f1fc278da78e6c72cf3a3def92b8d220d184d8636438bd13cd03ed058e3696fdb7f7bdb6094c66fd0ac6998aff4205542e6acf54780b0847ccafb26dc154569fcf300c2316b9b70d45f4d387e2f80707c3100e128d284e369b790c570cc9a8470d4dff76f0a477184703ced3a0b5da0eb5dd515820b0419c5b12d4ae39f67c2316b9970d45f8d70fcbe148e1f9b6ba8c44dd9243954340380024316000028140a864322a1481a864922ab3d14000e748e4c68603c9147c31c46511cc410431400840000000000106294527236090435610d19301fc342bc15e6da64a1db8dcab3c79abb271ce55a70e73565f249e46a31711d53212c539f81a7141d9e7bcbb54d8ba39ed43d09da0cfd0f6a021238721a9aadb719433849a318b01f27507a3f09e4a1040165f39396091444d321636b40791745283074cf44b5fb03f30ce6d1a1a6b9a3a204a671a1609740498c7b795074e9e9a86ce37b8b9dbfcfbc9ec6f2874b4f9d145dddcc0fdb28212b10fcbe9941522c03ac8c2a4b39a50d7d088673bb7c8a0c564e46efc236b5a7920a9d5a1869a8edd44f7db2a8f624d2505b624785af5de529645923c16fa9ee74513745046db26d17ee6ef941e35667ea609795b3ae67882cb373f44f2887e236c867e89121c12b0d6abccccb8166913e239b793ce1b934f5db30c2b884d105f177c1016eaee8bfcd27da05e0932a0b337b5af8360bb2247a9adedf5342b46c407537e3a877751f220c757d38e119a637b882b4923503d2c55bc48f99379f35843f39498e77a61261bc10efb08662561bb0880300a90d4dfc98def195458aec613ab2491781b0e983556080ef3cda6c254b68680c20a146d087291facf3d8641bd9cb5bfd4f01af16f5d3124e35d8a67a42c23ee05b06433cc7d1c426ae0c98e726e8648d77acaeaca4786e41035c14067a5bd74919080705f698ddd98ac5da7a3fc7306902802f9ee0748f59f3809d02a81a0cdb99a03d10a7316bb638ff351f1c4a97fc3c753b7e25adac0a4ba5fc0cb7f37e93116d8c249386d252cde7fcebb3f71568b190970e9461a3188872add2702f537c43133f6f04270cdf4dfc5847bc18fcd9d34fb894095b768ff8d6831f65ed4d8cf31eac58a4a500acdf42e17ddafe94753d27a416ea278681c354fe118bb79dede81a8284ba7e50099e6b9ac617821550f6372dbbf70d271cf95afab170f4abee2ea5685e0ec326ec3bbe9fc67744f783d61a8fe169cc19c62bcf5b8214af56fb1d8fcf061da555b1c97b075bf1192b4260749b8e2767c1c97db7fcca97fc4b4affd26367016a89e7db069f7ce9c1e8fddf44da4ffd34229d3beb099e611a70f0464e3764bc91476fe6592f7afa7a3f1ac8d6d53e7ba2ffbdde990cc22f30c8506ff4954aa02860f6013683e8b94c1f6ef45e753998affbabaacfef7102be7f9d1464996c3786579778cacd544824626a9c3dee168e53961d5c42d58a57bb0468b905035ec21eba545fb6e01b8530611bb9ecddf955704e8e044ee7e86d660e1f4c6d03da124c39f985ff00055bf37e58191ffe011ce4a5815063e320152e42f6935df76054aafa4503dba412288402eec9b01149b9b15f86ba7c2826c903ec09b52125343f539a3f92af97c243df631fb85972ea65a104eadc2dba91f68d3cd5b669a0c252c04a9565b984f428c2106fd81b659262efa176f355be02764e37f8f4db31e25b7ecfd674c49598f0dc033522aa20653a16a8dbc69227a3d677b386fb808530657cf92aa65f762d3f1a35300fe955b328fffd9545b3c956a6730f9ab8fa26e51f48d8a5fbbe0fd2a3baf7d048d66889932bf8c441204619682b3a0121d5e6e6b3b11d64642cbecefbd92f953459bc6833c963a96b39309ff88b54ca13932a20ab62f17a128dfcd39d5c7f25b19bff945576f8ec83afe651ba45aebc50bc12cfa02a85313cb70624120d32a46e13eb85afecaf27abc86f348c530da1cd88ede618cc186873e1139f5d694bd1540b3e463bc117bd157cecc90c8136c1c70d29f31b4f093e46208e56f54c7d02ed9b6e3dffab4a799d29e23a363e0b4aebcd4af62c42ccf60672e759e5d8d63fa0ea4aaea272e2b35a5abf9be78e2b103ea39fcf3a35b9c78492b53be65191ff84a2b6e1b8db9211c12073fdcc486480342030b90e2d7ed5fb559d497970d087d919b730ab3793ead91efe0128a6c09ae46d90e3e9cf6229f0970f0b1bc37f5de1860050b4e9cdd499c424ce6fd1f724183c35754155ef940fb4f48033930048bd91684c74a9719c35435ac6792ff04d50436c7705243019dac82b5ff6f95f548548ad5adf83b09e0c650d5dd981f1e0a382ebe1ae80ad3294ad16bc35e2186009d777e7831f0df99303e23ab8fb20eb34bdcc3e19ce53419de3ac70f7e142f77f437fe39c2dc4d3c81f2d97481f209b2801806e40e228eaad1ddf16af5b67c7087a09762a9669de75364146f756d792424f1fd9ac5cf78c8af0f94d16980bf26500b2d94537f61a68921301ce03b1601e4607804d842e1acc3fdb917d02de76ff0bca12df0d3073e3a8917a31a02938aecc484c0eedb978e0774f552c9675ff265a728fe5cf6f3dd6dd3754aa30fb17baa20dc08bd4dfd9cdec1725524b435844cc65c10b5ce76122468ad2206b0e6ea2b0742c830a741cfb3247d80cecb8fdde717c94c716ba0cebd5e187b5803c8875fce63db01cc9c78d937ad3bd0a620e5fbc9392c5467ee3a1a7de982059da1396a11aaddfb7adccc1032d9289f5db9e1bc1fe09e77c88dbdcd67390cf0c667251eebdb8e5f40ee2f90a977bc622616eceaf344ae4fc42aa5e34499b2b02d5d4fc5d5468b7f388eb451837586a213ff89c35077e35ce2958eb9d22b3802af9b93c590395da984a902b02ff7375f7fac4f0b469e72d241edfc2c58e594d53b3cd432c8b587621319eba9a1defa1bed338cb33bed12711de416d58d20198600d5d47429dbcaa91706b1669ba4551416e6daca2365628c4a308f6f804c9f47482a49a4de82320136a5f5c423a83434f20b9a244063f46a5e1d643c20eb0f451359e37133bc404c65548c0fa7d9c53a5b661c20162e2181a3e15c953ab9a53d1ee806f764160032004f455cb9892a5954a665b86e71dca165844fb5bd15a0e944604aaf40124a24a912655daf259526e554ac90f3ee5394807d3889ac6696aa6735f2e65e1fe660d6b85b40fe48451c63d1d20b974c8b69e0c8fa7a9c03cf951c14b5b2b53ff28a4528cdddd36660388845c2ac8f79c7774cb00169603790156089f82d811cd4ee6242b74d0910ffbc17d878038f261ab8614d0308887f1e97829ac507f4e75fa445334db036d0771a083da4c53916392bd5fbb7edd6b6c5505230ac5177aafb9f2dad9d82b35a509c537f95eb9feda4b2dabab65098d2ff95e77edda23582b8b84128a6ff25e77ed15a7d9a92bad843aa1eb1aa4de19b4ee15a59c86288ce0736a825f693ee54a9da95ea627b958b3d39c34848b78133e09ec8a766ca7513ded2b1735378da212c297dafbc1a85083a155555627a96f98f2d156c4db2959ca8c3fa3ff62c24a2b148a36e936d5f3387554edf47f8292f8d84b62b0c5eab1b10af0007a619a7e5da6ecac140eba6355ea372d24000c56f46f9699601130bb4d3cf265cacaacaa1945ecc9275c96813d6636426f0be4631487c3b41ffb37b9ef525d5303267b194c4f09e238bd370eec1a1020096d9917b0027697e6973d8a5e738d979c3230367117dfc8eb39f51033909da55fd849af4beea4a0bb797960fb0cfd57895fc59d8278b964bf3189ba66a8f4437657d2cb5df43b47f0e60cd84825cd3096977d6d3981b7d171f834632d210da5315ec31e05c20ccc83dfc4319e908adafaf830484507ba4269cac48a37e1986a4c095280b4145f97d9d12955a85b04d2efcfc8fe313e50596f49eca3ef92529fa61259f0c38b6216a0f79a3bef2e85d9c9ffc97a1a07ed65544bebf741f3e2054e0582d881e80e38604e3d94f3dcf3b0b1389ed02ec240a3b55c32052dde23a34905d30d59f1ba213dd71125aabc08ef0d30e2424fe61090028dc092202000bb72953f786948ae03d613c417e4ce46f028de695650599528396618a15804ac4c19ff988b3bb4da728230d9f1aae12c265d00105f0011e5976cc2ee4f39def05f1b8fbb750c3ae0a061735bd49f4a166a2b58cb2f110edd596689e0b3cda68dc9d5648e0a0caee7e5c8ae1ae6ac40ead23913d36d0cad93d4162e666acbc6c76ac9dbd7972c5a4a22dd2fb8fb106edcc1a091f8fadb812d0fdfd7490a7b9e2a2a34d17a215dc0cd08701624ed1c58f0937227dc7545974a276cbc3d64207587de36e417fefdd35b25a4b379a3b0a20bf14ce2369c358022b4e67da86cfad840510629d652c41bdbd1bf43e0c130e34a464489626d5bb741070c5a43f863a3536e3265cd1244e5717cbdb46b8b5e333d4e9b784a35a2063ad91d64ababca2402e9d6a5cd506808574047bbbd9cdad3bd8d8374abb73b35602519ad4a8c6b79c3f3026b8be9478e28ddae7be14b07d7bcd1dbc271ad13eb454b899a7615b3cbdde9cc54f57081a852a64b65a8841a8d6dc9a040ad694e67cded2835e443054a0fb09d1012fc6340a2ca309513189a4f04cb97b8f5d955810273e903e5c990202ccb40a1abdec25d148e9ebb15e09efcaeb3da701f010bd0c2a6bb32a9d1c2095d31c0b4f0a84c8c30b570daef4fb0b663ff2e0bbab5e1200fcdeb8622737f81bb6beadbbf3fde6a550c10e86dabda76fbde53343b221f630e5242e92abab5b9301e99dd13a010d787374d5c83aad0bb194dfce3db7ffa41fce513832a77b120868b8affaab34098e0634782371ce0ec6f6376bddb066bf906b0b0945002e27c4228b5caa867be3619cffd30544db750d5e89bd2704bf3f22554b5d7465c1133d36d7ee0d256a9d8722a21870c55cc26d3e08308cf39a601db50d12b18c9768d3ab8e3e84e180cbd81d5b0d1ac6b0bd549c42cf931550bb05dc2711746c1e3564839a5c65f2eb6c0b285acc8989a178b9771f42ab25aef37186a1439378fc82aff480ebda7ab7235c93f081e18884222a6fdf567567006a444b98757ba503b3174c33f2dbcc530d2500766e83c5a0a3e2d6d06bda38af7107e3988bcc5f22f0d34f721829985c262b179768a54ac9c94906186820993b44689ebd2e569c0948b350022fa764b9030e28ebf19c738d44a340348d34c3a03f29bfb177548fa12ddbe449446987687a86c9e4d28ca451fee0ac2d6315cf0097d0858a5201f93dd631c7214fbb924f36efbfed0b1d2df86fb1f30dc7477b0f7984964b301a47e9625f3848f3123dc9a9b058d0d96fd8722c484b1400ecc85b090408ef4196bed95f6052f104822988be8ca28dfbb190010b0296bedc4f5078f2f7a02f2ab1570866f063b2163cfec97e2aab9ba9eeea9f99a29ee6c4d7795c910633a672072a93ac1740a43ba7d18c06d75ee4754e64cd45027588be5c9706738598a6587828b83b06e9c206d1e465e26baa25f8f8459bc416bed1146ecc7244add72af2976917b16ffcae9ff98b71098ffc7c482cc9c32e4f9642f528a3d2f9647dbbffffbf1638d72821eee13db31a00d8a7acb35bd35c69f4cc1502780f0b1f7ecbbdc0639cb28756026d22b554d75808c8796c00e90a1857ea18822cc28a1ae84f74cb3a5010a0f7718f6931039d65cea27a9ecac1bc9c7c1aab993cf4c490ea4b675bdc749ab0c218df589ab6c1b7d535aa64429f5c3f0924c0e302e4d18b75b9b1ae30366c2efb09d40070b463346c838d64c61f340a6dbabe9929df0b0a92def4f5d17691fa86b285eb67d5630466b573bf831e7e55d33829328ade990c72bce8f0645d4b2e95e7cc780882672beab16cd555e23921c385937261e138cb3093a669693814c591922fecca2f440279da8c3f83a282146aaaaa0dc996546ae36e57554c0d3c672dda9a873f4b60be038d001b2ed950d14bf9d433fb711bfe05a3a6bd7e68bdd5b7a5c1c535a41b15f1c1b651aaf5abb29a0b49816373aa9e12623a502c05660e196fdb9ec5b30aec066ecdb22518bd4fe08a348f1eabe064685996070e35a77b27c0800aa2f5a7ea6adf214db95012af227bb02b30b62e7ceed34e740b9440220762e94334ffcf0452a2877db249e970932b38cbb7bfa111b743b6a032ed7914259a479b8b539492fae34151820f07f94b1d60d80b86954653e604e25348a3e7cc04cdb665431d3e2782de2c73ac988338cc2e8a1cb83192da1262b54bb0108ad59525f7d0bf04337e7aa46b7ba72d7fddf36e46ecae8f36d80a1e9521b218ab52b0c572a3a6a8153de1b08b3eebc18f6eaa62a20de97759dd42ca30e4879b25ed4db65fc06d7307319cbbea1838b70da69e3b87f123488bd7290c1735a12afc724394366cc45ccd06063ebe768f6652bdfe233b94238ebb801d820a72aadaf2b00700ba48af4a04e2152e9cc414bf572d8b4637c93321220288080691d91a8df1af1f184240b4d4c6367d7313d0ab2bc53c2eb41dd2adf81ecee9e737779f2051eb029c4c5c2387fa402e698f7cd264547ed5004585f2e9a899363d49f314b2da9b765d676e9dac5b28f89769be54348c74b601740432331b582850395c6fc6f96f77055302b026eba5110d8ef01f296dc61bfa4f60910df23f6d5622aceb8241f5e480ab072692ee003fc5dafb4dca46440b621bf2889c86669ce677779e665b06e03578bc4afacf3c745bb9ab884a8beba9bb4d5f1c113484df140602ced06beeff2f132f643b5bb0d478005297c2185a267f4cfcda92448cea1ff1e3a238b6202e7ee01109425fdccbdd16cc8d8b35afcc240eb725654832ccf5a3a1804a4aa520cfb8f339b5b94a9507dae7be1879509768f05464401cc029d983193fccaf638001113dae3bf77143044f558f7ea86eb0a3ef29631fb00030ce8c9c3c0d6cdc2b0baf8f7a896e6996339951526fd391c9640688c53183b2418e745cca98c05630ca92fe0bd70abd09f4df3383f533bf50567bd8375f064a532d14bf73a9ac78c3168ba814131d574976845a86c13cc696a8004692c087ecf244134e72e5b90fe2a2dbee0067400a70fdd18502fe4185a00814c46eda31528e317440f2ef0ddcbbfcc46a4173c464710504ddd66efcd0c1095edd20b056cfe802333319dc8550e6f3c32f805d5810dc31cf5118a592749d79621f47604e575405c8e020791a23d043236882c34eb0f9f9aaec3454da2d4c08a612856797b463608bd07f39c75df503de78d6d2803165bfbc06628fdcecd17a3a4a900a0c06d44c81ef7d9c24289680d600acb834727070e9c58c13dd6d18c942532d089981feaafe0198c519f2d0c15752465a4f9de06451dc2597605e4d43f44ea0b83e82bb4a9fcba5a63fb2e5e524a8685a398ddde83740e3e6addd0425bab6fedae5236d519551b73ba2799ee50723709c2ce11ad8d7ec351731e460deb3c7a46d6d607f480a90509a01856f0c8d1d1b54c585aa5411f68e939c715599ca1b787efd0ad8ec86ce55b450dc554e0797d1d646c94ec5a1564a2e95bdbdab8ef8692f36c5fe3a3a1caa65a7663dfb560755463f21e595139d0a82b97ac4d85dc7ee47d634d1ce084569c6823132bd623f0a133fb06eb6f1920f5b1fba9df2b2d3bd0eb521fd6811b6b48ffc9e673f8df9636bf5a6f0f3e59e403b6398879b0b8cf027b4db0ed673db49c089a012d681d7f793d0687dc9b7f1a0d1f02b7082b8ac43802fc096adc8e9fd626d37ea83f15a34e14cb87a7bbaa29d3ee4b92fe8ebd6e52f8a61b500c1bee9c3f8dae65b5de7ba174b4e52a04e9991134a18106790fa87026ed03570281ac54795b9fb2edfa1484298abfaf182d984a5bcd2a3cc253f45b8def61c5f64993246f980ca0cd73f6d6df6889bdbdd9ce41f42d326d7c28a6974fd39b57511618f98085c1d273f594dc70a91a4ea51edbe24290fb9bedc4ab04fc2f368c65d44688316fe590fb8ead95ecb313e42c2896eef6fde75e271efabdade510740ff4945fd0899b907ddebd47116cf9e5202bcdf894ba192e8274e0dd17b3d6167782eae6aeebedb8f568e7dd80b84f7ac8f84327c9862f456cbb91987c141fa5bc2f8aa3d600b73a0a31c3186afcb3c006028805c1dfc34137b1088d66f6a312aa7eace9d3da8781252baab1da7b14c46f259807e8c47b7b56ba88e20320fdd88894b85e464dc747e867bb02d9281f585fd72ab2c13f40727138274e5699beac0732511adcb5f19506560210a462d7a685322b87344c3a537c5d78fe4b472da7c6c14a7e6a296f4f70f8084dc6d79ecc46a9e8c6f97a39208f92c643f037aae8d26cdb62afbab4e4fdbe0d4a03fe1b6f6da9927ba60d65c3cb2b7884ce478b4b4460cab4b620b88e06569bff5cb2f13e10a554608666fdcc5a9bdc5590412c0424ddc4d0cadea3de3c7db11f99e545b02ccb4c8899e7bb9065fbc4aa3a8a3ea0666a379237f37be24174986c7dbc71af3cc3e364c9c92d6f749e10d71f936d1a3c1cb1f2fb86f72bf595b2ed277a204cc854e92313db1f07a7d7c687c4f41342c5a9a41dfe110407c7ca45b7ea6ab8cc5ee3b995a3ef0d903760b0ad90a09d69a610adcdbd6fd1baa3ece8b55b6978b389376e4c69592c8c4ae288de7d3e339f72bfe03fd771ef30aa2d70366aad909d0f8d708b02b270c7e5ddbf623f50d18d202f5af45c79b3d925d9a68fb01455c6c4162e7c3db420de5280ee9fcc8798cd2dc5491b3da16e884b60cc89ed75da7b8eb390c877a2948509336cd14a405743bf7ebc35678ded7c9dc75b089c1d94e71902d28fe62601448a28cd7fcfd764892002b3a051bb8e0d1bc88c300351ff88773c2c430f42df37ec8aa950a7fec2fd6de9121bf248a9ef19a68e1b30cab0927b44a4111896614888379af45fe809ef091e95630dcfcfe3953848b1326808cdd77193a26cf3931c180ea51868a31e2b929a9573cab00044f24171b6fb89a491a9b39253648d266b1b5b93021661e5063cdd47b0421d5c33929a365e649bf9d0dd8b8df9fad10aee32c386eaca5e89a86e89e13f2272bcef3533d7b02af5dcd9c593505850ad3579087ab6220d1f56f764cab6bff48e1189be84d1dd611c16be0e2baf9ba24193c0fa5eb4b16e450f687a33b1bc2f5834b640814f3d524b692f0ea26ca4378702cdd8ca3cb7daeb6d5db59f65e318ad8a3b0c896ab7192334927802f0180f7d90abb4de127ad205acd7a8e2fcc296973243b803c69eb3f71551d25b8ede2212cc5d7829a43bb0d10965c4244d688633161e9a19366ed0b6e910094cf9897194e6e6a2ee03e07c50b4ebc36db85e2579e53c14c20495506765dccaed22f62c8ca79beba40ebdb0cebda831efc424f422cbeb49e8a1bab5dce0557eb54ee0835dd56cfd57b876b868e88a456a5fe7b63a0b411586c82983d99afd1803d61c16843ddd8adde4c00248d08cc78800494e8edb397785c495b4cba2c5e5bdfa0d14467aa0d1b33a8ff8a5ab21d5df0d287408457b3effe622c3c86d82c70f7309680175384e46dcb1720a3bd7c7e36844129c700b74f3276444fc33ae397ba211ea6fbc27d05452ea823e3fc3ff8300b3660b7d5e55e9ec6ae87140b2421ca2d09521e01d5c6c9659cd246baafea50010c1084edbbd551b69270b0c07a8f3867de89eff4fa89a43e05d2ac5ef80b218c967a1a138f9c664d86ef739c2b18ed549dfd23a3b598340a162bb7148edab5c84c6449e78ada98d66c9e5e04ba6ab46db936c3364155db709ccb48e49729383a3a38b3b40740a8d560a6ba40fdaedbad1d706bceb3c35cd44ead1d0e5cf360a38659f8e9a5afa87ff1b608bdbef6dde8e3bb45ff1f6ade86a6f915ab102485ccb4fbb4181dc318f6b9756479f9f5535cb347fd880a7f0f6e5ab4c44574e121833c96cd4bc2dd37340dc641f872b04d2f05a1baecb8e4b65fe0c9de299597900b04c73d90542650ba726b851c3feff37743e4446e1f982cc04538f7b4013c9d6f2aa649e0a2c27123974428b60f8febe4c32ae0507c03c6581a49d3f5f2df3ba22fee6d9858fc831807a3876be9513fe68e385d97501b9c4a76345dd2ecbeee93807f0b795d4dbdc68dcdafd3ce97a85fe93ee3c7da15c1fffed051104f8e76b5476a46f0b686d69c75da327b8927ca583096dd9d0cf05a85f99aff1fea8fca78e9e0e943c5221365460bc66dcc7d2f9c696e8c8a8467b9e97e00095dc6abc7839b5aceae79ba777212ff1444c54431bbe015a888d4e8e3d42bff659c800730b477c6954add5591f39bb2529e8763b0543cf58ceb912d3d9de1cdeb9c49f420f7ac3e83d43657b86d1c46f0e5b02900305568b17d9285175250347a1afb1107380ba7b75a5b1889459e69d6890326d78069c2f8d8062011173520b238703289efbab1b68814333f3461e472ae58ab16ce99284e0a12142d5599e609a89bfe3f88d3485afe3a98fb30a8ae8eec2d84caf5dd1553e0f9dadd11db238f4ff276fafc5cc772ed5e2182c7a402fcdaf2f5618f4f6ecbf35b101272572f78b13855c85ec1ccdb00c8511c6e219de14dbeba5a8fa9a9416402924cf487358019829a5499d38854cb40acc66906fb210f89c22a1e50a1715d6cfdb549abc0589ffe38825757e07b378f894a62cb0eed23a3b7386e9f703a0742affb1be6ffb842d9a1d4f35be38eaf2452b8e93bd32d79d26d35d83b36df6aab14b05b28d8c012be3ff56d386500a7834769a89b39f7c5056d00d355abf59a0cd8b4ca12cc39fe85ad066d29a6699fd0420a9bbc36ff12d7a861f8be3aa782581c9fa886d702436f3cd9e9ef435a3ae5608662546e71a353de38059455ac2037d7203d81405393ee778ef72100a626716146c50bea482a62978a0f49ec08e48bd55b10adb84fa9310b0af0dcb05b605534688f954f0d273623c6abd59ce40a86a108dad8b76135fd36086940a8ed0d3002c28e8511d6ecc5380e41c2496e779fad9eec6846c939ecd2fe85768db49aeed488b0ce372307989b41e51820b08babeec6eb926f792d5284c8a6dcce5252980891c341655a22e0c4a84964b55d02430b4fa0b864efc666887d31bcac4575cd614b9398019763281d40cf815e467ae345b9c56107b2a6f23c792965305c2dfd3f60f21787000d7d86b4f39d454237b3a398cbac81fa05134dca3acef4782248ded2df233940e805a7273fdb9f63e4a28f3e8eea819400d790f441c8e32e6a243dd696d727e5df1ac33573aee1d6375fcccad16bd6a7e56a679295309bad515b1689f7cbe296adbe69fb9c11f7d388ca4f47ba31ae1779e85e2058766566512eb8ebeddda4d620f6d7e6bfbdfa6f379c1a3d6b59bbdca24d61cddbab5cb6aa46fa3ded3b65f776b8faca169682fefdd4e7cb3eacba02eeee8c5af947aedc4b2baa538ec9bf988b59488439eceb5729521bf1b7b6f9b6d76299082e18af08af3e7b344e030c0c62f8b6f22b5b5a9274bbbf791a1450b425b081ba209a9466b9e810c5537aedcfbd66a6098cc7840e0ee074dc77f9f2ca8bf5ba0c86bd1fefc6fb00f3566a20636cee0687ec1521266aa6ba0fef825347c135f14eb30e2cbbad3df5aeb4550feaf1c4ca2da372de303d36b7c5160cf5abe64786c586634251597acab7d960bd27474964e693687c14ba690ebff7c01c7d8d7de006132c84b450274c8ab2f7a6a83ba2775d738ce495b2a6036befc0329e3ad36c3be6c73540474cebc09bb848466777136c732a7730cb1e20f4e1b7fbb1f5caae5d3e1325be535c009b610baf65e5e46c1c09d1b15d92fe6d107cc32d7675b619a59fcfab9696755f6a8ad58c09791ed5526621a2c6b7bb841001c4a5f80abc4e6705e64aaf6adf5e4965c6a943bbb237fc11425919867347f35eef65513a7956c7ef1833178814a63efcdd08cf0f255619eea8bc4b14c7bf64d484a4db4597cea1882dc92eec5114b78e5c483975bb7ab21572471c46822911a067dee67488d733ef7149e3613e2d590b12dbfd0e9cd921a6150a0d24f31039381b4e8d33b54fa932692686057b7ee31028481e91aee68e02a3d19e12fc7752cb87516394bbd7b5cde004b7acc7539a6c776d9dd421239e4733b29358d12c79b62a0e16e0a5dba70c0cca710def800c3ba0a5356f85bada004911ac0d718a47be10475b948650e2def99627a67c8de37715d549ec1d5b6946bbd6a698ef645da96111bdffdfa7468228ac245eca7a5330ddc5ac8b0729dbfaee014b0398b166ebf3a0717aa0322d7f9b48485c05e82b156249ebe5a31524e221ae849f5b1b20ecadb0915e66e5e5bf3ea57f471ced2b0a8f2cbc664bf84c6c41a60504731b432645b978d9290618dbea7ff18d0d2486a926f958546c8d8552507a844576bdda4dc3a727d1310afc34a7b9f483c1ae11869090f794cefc5245330c4c406f7a1c6b14cd3c73cac07463f02e758ba1f8ea83fafad3a05d5f7ff15e1b4c5302980d8468ef6ab3f4c391f8252ee098b1ba75b7eaca103c591bde5199ed018670abe244ac9159700848aeb2f9bc50f63edb4973dd547e46cdd97cc15ac191d4d4d6270bda5933fafa0095eb50160aa401f0ff2049df81ff6ff553ba3cdf9a2842ea14229b8651672a54b9d71c8d2777996e0c9b0f1684f69fcb3725a3087dfe0c2bc46d9e26e0955365663e2111c4947f056f7bf1a2e04b284082518940ad4ed8f1796a080364a0f87e984e8ae72f318da68c1d0cab35e5070d9cebdaa27c686f7145898da3911c174edc09039c8ae912871433204f4cf3e8e3dbb98abc677b2561e26d406b256cd4075039d9cccd7455d2e47390203f87e5c8f0a5282c6d14cd05600ed7072c2bfe0a4431e603268ffc086c3da1906b91b3bd6fc6521e0adcf85a28688cfdd8a471b12b8f1aec0c188e8ed4af87e00df01b3fcf8e82c3a6d79c5364257f257660cab664a5aac642eb1b9265149361ccd2b1ae1cf4458b07e19d8e38ea4ed96e283cd447fa01255a0f0fe11d1aa083006759c41ae2d8a83c80d9cd86cbcc2c68adf7ab238123eaa2828232c4605b2090dd68d77bc41042fdf619c79d86bacdbb075c77dc0c74775259c2075ed31ba22b388ea9d9c435ce9a6351191134f5d1956933ee0d36d1a58926f9f8e68d4720b72ab80cb21a1ecfd9bcdba1538d4aaa7584438f79a4b4bb93044e3da9e211ac2c64c65afe5aad0b829882e2cb7f3dee6fdd2105bec3b550146c8c2a5fcb745ebecd4e63399a01dff73c6ede1cecc90176d7a94b4105dfcf228882a091e41f92a3950bb5c246c44734802aade4b839a07851b431be1993de81d3fd78b92d5457283cb2a265850a9b1902468248745fd822becac531d58fba868e8b0738953b1bcd578b1cf9ce8d7744528f7e53002c054d06d523cab7e5af761efa232e12fde4b0b1fa68aa20bcb7503da710bb549f0b3b8ceb1146cb2d2830b2180e649c0d19f566ed9040286bf7141908049a4a54dd12c2005fcff3cbf7a197bf2a255baf8ab3785cb7f23da362e05648f87142d3f9544b399722fdb63b2f15843cafd96bc8863a65111f329f87c33ff899a33b2bce167cb942dba0b17804b74e0f22c02a66ea2252da5b544ee3f563a6a3c0e99b9ebf1d4e65394db2359d76d47ae61012d928c82f4517c9bef2a10f940ee5dcf2a0eb3b88213d7851b137146ab2c6e45eb5b5df0e22d31290806f12a3fde96b8ff00ef19834bc4d05fd51914f03094694279f3c5102d045d427d75a5bd35f444a72dd0a8c0b66136cb6b41874b445cf3ef6733e84d131681f48981cb670387483cde39a8076274a205a15cb7cf31596c576f423a67bc8c3788141f4b8608f69164fd3c6abe0bd0d62f3b692e8962a9d13703a02a28728608f56e06439a2dd2bd0673c0890ef3d8628c6d94896fefccf968c6ba2d8ba5055b471906e30704436bac2b1f3a6dbee16c23f474c92435f3cd29a4292a8d3f9f46d93d917d23975cf684c2ef2363548413fc8259a11a1a96cdfe73c1472ee73707ee4afca07d26fa381e64a30183490a0b8b5d3f29a7706043838dcc9ebb76b48275e5523e50bad3a7844039bfb5ed056eaab6e2b3a46ac02c5c33f67b2dfe62f286198c0ee69c8930bd700d87b058fa3d6f9da42df6324be960a7e87c67db641674f928518d1e4cc60fb228fc8bd8cb3c2f8adee62d59a3fea699f928f322e49c3653dd382067fc68dcfbbfab345fef4e3f68f8b30a19045e36bb86f0451174df7a7b37500be55e02eb3b431018dcf3f9ec259b9eed1d287d4582b1457646f20f52446c605dbbda8bbfc883caa4c985e3841aafb35b0b66320b882a98e45d23c1a730818cf4b2b9ce2ea80eaa1210c19864c32255000bb00150a6f7f6b8da48a7a934d6fca918c3462155c2774c5e373ec745ceff481f92b3769a8308993e2aac9e6d2103249f4975b69690022ba0dc403320107fcae77d31facd325788c1f83c2f70ffe9a325d51510ed1281ae82d1aa99afc540a5676c218d9e4ab3cdad54b091dcacaa0d176d098a48d39622b451182697d55f04932c34345370e704bc4d4167043217a5676944aaab03dcb17a36daf773f6b6222f08e9148a030bcb735dfc03693a5aac15dd66bdbb4bdf2bea7cded36dff87e63c062349b6390229039c68a37286a64c7582d1d991fe5cc5c91d7f58855d19f7fd5d46c43ece796fdea06b8036555983954e5380466c80a33e0c7d43a15677d5b43bc6e6af41422159af16e4a074ae0fd860879c8a2c21eb2cc90986850b370413370b940ca5053a5d402eb808dcfd59c1ab61a5860768e45e7330ed99f0359a8b42c2ff659e4c69ba9070bc0111410a9c283ed669ee179c745570d77907c263c4d75d76691e83148e3e32dd9ce8e9f95f07f744517ed6c6ec850d815cd0b18de11a506104b2a274b3e3ae09b14ea918b1769d792db630fddc7875c9b4a219593f55e448bc6baa533a417da1a4d377ef13c2470587a22f0f17b723e46a50d5f4f556e2b853a32f0f33edad837c30c101acf2ef199013fa1be46fc437efffb53257a22af75f9b80f45a3a2ec76a46baa00d4bcefaaa390c9bf1640b82273297c0c1c7c332f416f2b02e214937b418471669784e4e2d150ad02d44262e238b19d4f5ac59f4950711130f4b8f2f83cca79931f1215ac4b0589735adf2eca83b6525b67470b17784c71d4f5333b3b61f456b3981600684895796cb9a7bc10977005a0669cb4f9a91326350f66a9d46f828c30a5e0d55237671b1002f6850b1e17125c285c5350190913778535ffec2aa9d6a4562145daf1b8f2483ed05894f4deeda76ca132fb41d0a1d016382102aa3c4b2d06f8a18e81dba9606009bfbb1948bf9066db698527b925f9734a950ce2a8e0d346042a5d616b5bcf3003962e1e785192dd8f099e54f4fd4e62a6c50ccdd7e81a8992e9c7e8ed9b225922b8362b920b8e86cb3868b15fe1f12dbf0373095fd84b8b137562643e9ba80fe31a817918061f30541ecf461786c98f8690c0da059d1453c212b9693754bd087f1ffbe2634634853a9d148f0c7ff54b8b820ed6380051a82181d35047efffd64f8d6bfa51e23e5556f28827dbe941e1d6e008879bb72f819c1a0bf02413c1faeeb707bd6c49c86b8119c0cf80452c0529775367de13b979e0c7e5226b1b2bc178daae00d1eb43d1f0d3a3c52b84243abc46c0443f8957a09ebbc8b2e84fe148595e886bf84a5042ce0bd51cb1f1aeeb1c7c1153727fe0f6184baa92f730ae88ff45e6ff5aa0cd0c347ddc79da0dd3cecbc6cd3e2536b61a0b24e3682d1943ef6c69dce1fe806d20a8613684ac418b58738ca1f4eb09b5aa625d8688a9313fc99a2ede007b2b2d7f57622a7107e2defd45ec3151b5dfd25d105dbade43664a1c65ab051ad2825dab99fab3a130322287a74160b76a245ad063cd47223daadb1ea38b709922bc4c821cfe5ab9140e464b8d2ba81617adb1340953768c938f208da60b705d00dc57e3d5468a8137d612806449f2abc8ddda0ad6bc27feef86824c7edc2fec759510d133019a2fb4d7e305a56251d051bff83765709d0a04e1f880ba84e91c8e404253797e741ec2de2c984868ec38fbbab042885facef0ec87f35b5bea0d7bb280ac6b5e913723e602e8e8765e9d726835fabf7927edd5d21a8fcd7622ed1f247596157e96857c55c3b8dc0020e6da62228d503d643a0f6e562210e8e40e4761c800ce0f000b05896f12d2735318b92c757d519b969962a64aec5ce51dbd8115cce1db5009c20a935a66a661f663f9ce8c43799f31b29b4d91eb99911d8a0ea64305dbc2749054e7448adc7efe24f630449d693bb6e996c2c339e932c51163b6410013a2b808d828161fea6cf90cb0e28bc3b623454cb18729c1f345b6e87b7b150782e3ccfca596505134a09712531552b317e0e3a5f8a9fce15800c3c1366f1eee074c7f02c88d41930e414b0e8b95422658c221ca68fce11a17eb425e58830ad9f0b3737762e311ee6880bbec4717ded5275d45754c39d3044fb1e9b7c532e636b77690d84a91a0dbe1b052efc1a56e7f0c80aa1394ab0a3ac1408dc46a127093ac9abb92bff2d8e0e56c7916f68cdb9006eabe634ea659d92a261d54c4c2fd0ac9ef87b5fa4c85ef653b26d4eda2a2019917361c84774e050ceb2977ead46705b29eb14b56fec05c5a6d029bd818e12a274c2970b4a20675347d319da9e228eac6732201dad515ac2cd3b1a8e236fe25bc552e4a91bcd19034c9f67fef220e42c3aad7f8d404146e0361a36de50f7c5c097c84bd0db0a5cd4b5632cdd20b866b471c114ee04f8df3ed3556add1149011d204a89d51d64650f338d5dd66cdfb68b911889ff997bf6e13722746ac7c6699a853b7ed36dfd0a40d1bc8182cf27e0f5f84986d734ba738bfe1dd75ba3a0ca8c3b5b2bc34ff7b93fb3522cfc03397b040930f3cd75398370b6c9bb0e3e859bef39505506a2c86b2d0acac294c2fa60e80e080e2bb64bf904f14df56e330051f540009e1010ba060c0c0a78c2b44c4a6063608685ca34eff4d8e37e06d39063dfb78dea5ce1e7e1473eb0ede1d2d1b65409c34d10fe0b560d85511bc881bdf50ccab718c4811825fb109172d0b387bd90beb7216b42d36c9e8538f38c3aa636050be0681f6c68e49c97e982a73c61df80748cf0b43d579316039e6d072ad616c5e422792eb6210d3b7ae5bee205cb5050d2fada983454b1f1daa2d2f98e771e7150d77329457966a0df2b29328f8940bc5f141b248dea9a6690e53af024ddee013563fb402f4957ecdf57a4e44da13ad27a34f3846ba99bf86da916430c8516624166c26d3a7301bada3e54d1f938dd690e283189b08ece3645be67c1eb1eff55ee11e4d98b7495c47545d1bff705e0dff5ab5ecb2230520c50a1724336bc3673124fefc6662dd8e802f6124aac2cce30403f82e4b152065f51e924194e566e2f9fac2800d82e3d8587a24fb5671623000afaa2a02e9eb9142d7da2a9f02fb797d7c995e6a4c277ba1692ec73705bb95464f33e7fb4548edf07579b46f98eb39eac684e5fd1ee65162062cbef301078b5702f5c4bf8fe31121daebc1101c54aca70df008582c46eca5f12f8b96f12677b4e07f44941fd7ba82ae5991c5a74a6ffb6364d48b978874101fb47afb2a6b7ca6cb3bb68ef85c179f225e6e7cb1a9816c4d8781257bf76f4456f4d26da1d5803e776ae54f5753ea269cee5333d4dbfde6c56571ff220dc62700ac6d9c791c551eea152ebd82f6082f1c0886e27264e9218af608e645acaba668b57c1e6fdcfe1873ba89686e8936a9e2a88bbc706b665938507bd9a8aaf3e1e153c1a4361b76a053f8d2e2d59f3f05d5bf5523c27897b59c65eaa2fc39f3fc1a1b994c9dde7b64b4624c4fa95a60ac21a263b0a36f32a8d6abaeed48f3e4acfaae7242e06dc8c844273942fefa436accd8f0a063a9717fb9aea6aa6a3c5f69d7d6a31a84dcfaf377ba33505ef0177210662c22bc182454becc81bf5ee49bfd329f716eebb3aa618c2a3079153ccc74568ac7eccfa28e323ec4a12fe397fb167c5fa9f34de56b872de4e64be533bd430c1c6dc8419f0f344fe126c2396051473bd8cba6a38c2ee85654e0ebb2a24f0b83f6c1178187b808035713b43b19477c3b84782d1d739c36a600531aa3668c8a15889f9d8ee98344437a52c2f31bac9d8df602682ec28ba1d02c4c3b559ec4968ba3a6ff6d6541745840b6362bd05188b55e0c01efc8256da46450ac355ea48963ee9a5a1e4706704953d55bce83a155d42509f215d91ba9e3a67478a965d7a81c2f130c6b47efd5f50b8fb93938c66210a823366bdc0b43c00791c7b772c7957b2ed40138019249f5e90808347d1c3478f0744c224413e7e796620b9a8ea3b433d1d69e88002892a059e2c7d251e2948e0596435d3b2d5438ab900328973a996b1ef85ef132c9ef19df2ddbcd3204326b541639cd034f3a169a18c08dda525166a9e11497e1389a5e3c1ac21435ecdbff044ac7d4e094610c7c3e8bbe41d63f4878702a86dda9a5542104ee933054d42c676b0b532bbb031b03fd6ac16e1938cbbb87bac4ce65b1b07ff0d4d06b5622369480c0ee49b2f4208ef5dfa8b95c7a6196f66fd48c2aa157f4f54657e32aadf29f277baac573993af60711e9a8aaa515c03369068a5bdca57d754ebfb178989913f51958e7bb1d01d14fa4e93b29042c5e505d2707e485318f7c3415ba8fb0f2914e04b76cf6f1b624a540acecde2159b18a10422b177b322801d2ecc89661b5d5d3b1d6862b6a4172a8f0be1c95a1562ea6f29a460116e331ddb21a4812bb6c89d472cd1e126a17597ad1faac12d91125b30148c96a2ded2852a33e6cc5e408bb44cf8d0d03b4b73fa90089d6e9fc17f0c7a400a827292a13ab92ea3f09e4ac7b6109fdc00c21a517bb2737cbe8f37ba9f5718106f3396e06edcd02eca8dde49fe375977c3e9e1db2a646fb444d3b8d838a1f1f67b02e1b2ac0e885da487e723ffb70c504bf948d5b02cccca1b013e9c089f2806141f41b1d5a2277c008b986c54ea48cb517c88e1e9f8b463341c27946c5368d5cd862d0734861219f02cd5d43497ef3f514a2f81c93028be8b91c739a22924243ab66b23f164d6bcd625a6a6a11ebc1b518737699b19141145ac38b334b99c9996dfe84425d9145189dca6853689ac19b53f41ba0ac0540ba20fc6f4a0947a04d495901685bc4b6f513cc75fc07c9b40010a43514c5a04b47973e72a96b6de52af8ee242101044ba65656e537383059dc2776719874b3e528e0764aaa091d2b16a4a6bea6a1a58e09017cf93bded9c95aa8b04e65a62d25151c75f6591c1732470e5d04625a2fb2813e9f8b75825fe9231932810a17a33f5710e58bb00b4ec6f3732407a870e73ea718f2d7387720679dbb72c9797ac334d70e0761f35abe44042fbcfe196942494c4c943a1f3aa3e857a31531efc0021c254202b8977670ef8d85071ce4dcdce7078e134d134de309239eb0b21a3b9c0dc81733b351bbd02075ea0770fb9b274dcff4aa4257aa427e1a53bec4ec25c99a917663317f608269c0fd19332fdce31e78036640f5af03f44c9b73c2aecd7ad6c12208b69023f4f2443856ed50894635ba2347e7f213822f953fd398b1e42243e8b455aae8c0983133d9b3754b78535da58ed17e4adcdca67e4ced4ba7648c23d47ab9d5c9bfd217219e7bf123c835b36102a74bd23306ee977b93a91f7a8bb98c77ba28faf22ec01b47ce18b52adaf08f37f79a72b4c2148f922706fb9fabf08008c3604bcd0c962f65156f16f65b1f7cf23a2833cbc3b60e552ddfec02a932826964d72b8138e523b9c69f61ff475fa1d676fa2f21c5babe102945327e0033107e7f500d568cedc61ea08e3223e1c7f8a3e8b870ab69657c2f0a3e7710d7428a2a393f8ec62b7d1b40ed690b35db922c6ea4d405a9159b4b2fe0dc0bd7371b5c0f13beba7957e0959aea8e0047efe460564593b7bbd0cdc9451ba602cceaea6f0544006e1b4289c927f690c48742f44aac540f9894ff656a5136be19f1cf48b5be0316bdb524fe15a832d51f8e8cf8508b26e17c5b98fd4790ecd6d39061dabf5cf851ecf0b4c248766f54a893875c6f8d8240134ea30ab7478846f6713098042019c37379040e91039e321364ec56f86158f7d6045e0ebf36498a2048eacfe849845ad53564d9c9f693e479c778a8ac353f16d49f321cfd51b0a01fc7570399ae2e80421a272bf9e7e685d1fa15580683834c75a3eb68c1fde59ff1549bace954ed182dcf5b2f6b51549d0e838238e8c2e0346a500af76ae81ff9562244a7b856a214fcca894bf907ddeb6c910a302f7ae922d57c7b736f547379f75e79b1afc268ec088a059c9be6846cced56eee1f7d0b9e95d1a48417548d4853f494380a0b25bd1dd1d78dc6ffe41c50643aa1cd4a428cf85f5b5b68ed9424b00a4049c951cb204ab45631f38484603bb4b901c710c23605b38806d83da00b05141dd990817d73a712682ced3495cea192bdba6784b784dc9baee72525afe1e918793dc64153244204899033239bae1c7a54e2cd5e70045f1a499f265545a354c19f2214c038cd4bac20e90e10de9ea087535b14ad1c6fb06f33686f9bde08278194f20509cea808c956151aa65868ff0bbe0e6f426492bd880ff1c03861881327707f30a737e0f2485683a4aa8ce0ddb9d6b48a30724af2ac0e6c599b105ea9d02a5de72047f61e0dc3c193aaa595c3aa352550eb5d71e4812d6526a9daeaa4490a0e245d54f2a152ce1e6a1dc88d03e6ddf846dbcf7b82ab6157c9b6b3c7c4b4be5456138ce981fba26477d9a3057c1b83cfd0770bff813571d88071620ead058e48f8a6dc68eed7256a170da95cd2409ae67b1c0a84c100a67ec43604a8044598c46d0368460860dd470197905335bceacebffc8a4f1546ac2c1607920c8042246ddbaa2bb7e8f054bba7bc87ba477020b1efe2e7a3a89a319f2805276bc91b0459e5d1cb80d364cd295d4089a9a546c2e3015050bdc7b3e7673bb6186e052efb5c27a3c1dacbdba46e07828790c8d8ba1554033c9b34005dd2dfd8911e4caf3c1b1fd4e2e32ae0222eb4f29f5206b972f509ac2449e4bdc8d1d01094b6b14552f0550d93440db4a6e4b22559e9c609fd34f092e4e615da67611e9fd166c12e6de08ec8047d6309417f4dd5b8b3453e37d45d265fada81d3da5f3046329bd50ab2407d70d8b04190e3344c462045a098a8f1dcbef0252babf3d89790dc922c1f8b80a3a143657ea9322c4e93a69431066fa4829665f95ac0a6901e564b5ae27424cb19260077b5c55ab9a7f28d9325aaf09542a84746c0e0af23561a24bed99f80d9d75cc1e019512bcda61b62d792d35a6affe4c8834d3eaa36ec59de0645ecdc5e3ad7efd3e60a0197175a16c562d6b165c13486530d3447d0fe10f2510bf18b62770b88aba2f53f55ee4cf2ce7d82609b4a1b4e9735eec53c157e06ddbbaff5cfd5f41236fea05a0ee0c52921468dc3b01e89b9603a4cb894ee975a6923370f7d1440e8da0c416ab7674562ccd302c2adf1d6f5d7272741163a1113be8bc7fd59ed5c9f91c7abc94ff8a39ac536121f557e9cc4371219612d39c505df9f75acb94a1fe842b3bf0054eb051aa3a9a7b93e04229cb6fb2bc602ee116eca5349708cd870af1641b27f7acff63170785c1fa3ccd84f7342b87087e59643797605c8d052355502f1058e8fea5ed22a2909aebd99b7d1e9dcab56fd2ea12aabc338ca7658e5b1f781ae5c429550c5b925f18aec6071b4b8e96d4de19f905ae40be63e6ab6fa986d5daf504195a3cac5b1f08f3a78e3f3b06f99eb78bdddb4836554d9a1b951f44505e4a4a1dd91f2b278c9b8f67bc310dc2adb1053a8a4b718a7acf0589c55107124e1d07fb21438cad48257cd2d58f60e7986105bb85e32133c7fdd4f1729642895c20e57382e8810a6a59162703403bd715dd399543066bbbd3a7d86bac0ae376a49c47c57d2d5e21982a79ea4ef1c964901b2e90231399657be35435a0996f1cb26199b3d0e89844c429c31613df97d37acdbace40479e5726e93057747d6e9a9153463ce56f35d54b93b5ed74039d3372bf2ccab9ac9cfb24eb7793b83a143b255bf283566b7496a7de7b6f1fd00182dfb6d7e964627646f9db36732abcd074ed32667a51459d7aea75a48b554cd5ec5466126f89847e36ff12da65ab5378b7437ebcf34a6d4a349b92c84d85a7d6a2e372f12476e55c5616c7bd80814904f5a14c18ed3bd9d16379bd32c6c1fcb0977b4ea92da1515a190ff666ead5cb09abd9d399b80d3654a2e42e71422e7cee07ec53434120f3e93b653b6d8ac448685742b13136127b60c750901b27302fe4a8d331fe2c246b22115dbc9d2f3c9f560323bb9b7d05273a935a9b882504793b8fbcf59d132368f8a04f8d722ec84e098508ed3bed3e583c661a085e45b56216f42364fd978417d34651a18560d582a4298dadee82a2dee1bb701350475b011886be40e477e5c31972a4caa6cf9f16872155f09742a2b5452864fbaddbd1f40da5b5b2b25de2db94db7775b39b000535860079f7c2566eba818a40e7db76fce66652b39b0d641b714c9c8fdbf0c4d11b9ed6ce5b395635dfea0e66ce34aba5e842aec1f247ec1388d06793090bd284c0cdb92df5efce4fb537bb54b6c2517f2177539835379cc19d9cebbce12b4fd08b64d907a1044b57a18bd9cc5e22d262da0bdb318ab177e29112a4d226cebaa355e2a1bd2e6a220b5feab47c86f198bdf7399d7bea8234faf4083847bac5d4a542e70df1b900840ea80536a70f2976345318bd4072e7242f88ea12824c5790ca396b174fa49bb751c47eda284024a571aa6d35aab06e2e2b8cb343190f582abdc66f72565e844bcfd125c73cb1c8406e77d465af75b77fda1c623b890e7b965f04d36a19a507b43e05b385fcc9f9d2210e00adecca645b28feb1b27a1624b8c46e05e4d5b0837d55512f11008e3c51af71573ae62b1ccdc1e38742d65883a2c23d952171310e16334190d7ae091f4899caa64b13701bde22a0f290e4e3c5d19763f2157a7728c1526e8475d7f71dca0931d7064f5c7e59d7dc207cbe90d43feab76931ce4e8d97891c22037cee017a11ed355e805415a70378a238621c824526ea393c3711327ed102c54730648feaf9c7f3725e1ad689dd1cf8a571a2685d2ef214dfdff98cb9637639b7fb1c86e93e77660ad4ce3a2306246be3f1941b670de0bff8077eda646fb9b74c52ca94a494011a0321036f03f9ca594e5a7fce39e79c94524a29fdffffff5a6b875cb88582a57dbab9515be1564e9ce86ed40280434122010881c251a0e80851a0a8d8cf160f638c31c62d68a9540a007c6aad8aceda16e6ee3df9d05a15e5dae5fcafd6aa2a8ddf2ee7436aadaa5608738e9c339673fe909cb47ad6c1dae5a4f5fb24a59452ca39e79c73524a29a5f4ffffff6badf5c4e5e22d149682e00ab64b9da371b48dbea163eed39a032ea8e7b2d4a7d362ce0a56d12db97472dc2e6f86ba867eb8511b7948ad557504b00ff44c6e1460517dc2d9bb8d834f398ea35cff871e5aaba211b6cbf93f44673bababbadad1cfc9796b55f5651f595a09fd09929793d620fa94f5a9d3a7aa4fdda793cb496bd5ddddddeeeeee2ea59452ca39e79c7376ceffffffff63d682d60054f4e995baa5592062882884d803078fe521458d7ecb489fac95564edbb66ddbb6e59c73ce19638c31c65f85feff595a6afdcdc6b66d9b084ca552a9541502492452ce9173cef9415eb4cb495f73fc58541630c618e3da2e27fdeeeeee7677777729a59452464a29a59462211b127daa508b52a9542a950a60ff00d12688b8829803878dfbb478c3636911671c7539b825baa0b66ddbb66df32ee79c73ce2d5ea9864a4ddf116ed43a18638c31feaa55158542a1509b8d6ddbb62c8e4623f81d18b17639f363f13972ce39e7ff6f9793ce39e79c336585aad00b4b050bef8a1b4882a9388a31220b443c0d0ae1b1bc6899227dce4a9f9366b3826a4e6ede75dd8ba730042bb04e980933613411e804c418638c71c580d3e9b4d9d8b66dfb2ba2b0cb3b1fc23befbcf3cebb8e524adbe5c418638ca594524a59853e442291482412c4c17d9006f7c1205690e33e0de2782c90e40e4939734a6edbb66ddb3652e3e05e3324fa58dad31edca8ad6809abcb5a2a56b037f5569f659f4943a21518820cc056d5be3d16d3c6b66ddbb6cdd0b49973ce76e9eeeeeef843a3d168341a8d606a05bb25c0c611dce00d30e63ec881fb62dc0759b84fabc07bff59f6f9682a60aaab90e87b6442107d86b8519393881bb5fa72e34d7693fd67d9e7d30243de55dc63d1437292939ce42427a59452b6777777f7cf90f6a1209eac33ad4a769dbbbbbbfbf0e1c3c7088931c6584a29a59439e79c739e29564a29a594d3dddddda507c45e2ee048e47201b55a63edea55c492907c4c4e523eb831c618e31d220a46146c97979db48278b2ced777131f7d8abd04fa97b5e69c73ced9755dce584a2cb1c4124b2cf1a44dad55e59c73ce9e73ced98330e79c734e4a29a594765dd775dd9c73ce39e5ffffffd75a6bad554a29a594240f5eef63bf5b1f6b82923282848aaba874842a2aefbdf8faf9cb31e79c739e14c38a31c698fa0e72db1ec4933ded6097a515c4937d07bb2cfd199233b6cb496ba5ed72feffffff9c73ce394d7cf8f0d1de514a29a5b4d65a6badffffff6fa9584a29a5947aadb5d65affffff9fda9394112434efa0773511b6cb49ebd76ddbb66d43b171dbb66dabb5d65aebffffff731c97626bad4d29a59452148ba2592346d8e0dca8a9a4b41da01f37347794f012253ac212252af63418db3d44ea1253c768cea050b10923398e9301c66e772927fdfff82448a85815b93db9bdd00c350dd590bc81c989ad9f3b949c62df754cc26a16641f862c7c131685144ed8ee09a1c7947e1f4b1ccd3761403c596764a9b01e0a52e346cd00212294446f8c50172a23aef88a151de18a15159b007cc20d4188d622d2966609097d0c3061e6689a1ec442c9c9226ed40c2073440e209a2d376a2a4c181084809b1576e46a80b5aaae5907bb58240b8b776461a998e45e8a576bf6d12a88020e2a29957c3e3696897da0931b7253c1d6e9f93dc7711cc7719eb30761c2c0ab015f69d6c128acdd65ad49e1652dfa5dd7755d5742ad03d8af7d7aa7d3e9743a2de146cda45dce87d45a55ad2a206045bb9cff34eb6057fd0f598bd6cf3ad835ad35e7acb5d65a6b873c24432efea5f89a627f847d10091b122a2af6419af3d0ec83445eba5103b98e9087421d61285431cf70c58ca3aeebbaaeebe228cee0464dab95beeeb91e1cc7711cf7b66a9743745dd7759db452ca9973ce39d7aa79c885ac200accdca895802961c284ad20916f376a00a871a36601c056100a0e23054f21858e3085142ac6622b85a4472b00e47c68ad8aaa805c5f0de07a701cc7715c3744d775ddd575d6aa3ae7c8390731b0ae284a792af2b66362c4c8c7d35a16ad8a91eb9d8899890bb5083df741f86aa5c913582fbe1742c3148323c6d80d4121f763e79c93d2cbf6c03e7125a609322fc8c4c8e020b303c97d2699930c0f484c324928e9b45062494848484a4a64f2c87d261b6830b96c9c747a40a92e483991c1084f8a8485261b88f8dc4f5c819fb80241a6191f4eb00b05d6490b1a84ef5f4c2f2ef7055fd1cff821721d825e6ac418bb5fb2e9450729e59c2f2fa7ffaf95e9e5c7cbcd75c304b359181f687345d60403034cc7a7d3d9bb46446066380106e68a1ec6e58a3291c7e269511b31c170f69fc5300ceb74608ad03a2eb04e32e079c2cb5e8a9b2b4a99b1e3ade7b180f07ef676c4d0e88009c4e1c247870c24c7c0a00324d4c486ccef33c5eca0870c91982284c434c105e485183c3132321c36d0d92106769a71c9f0a0062b938419ac1664a868a8a1da80e17b9081ba20c694818cb421c501b78188989e01260718667c68c171d30c1057de679af9e18a32ed44878e3f50a181ee6e9cae8169860d4c33483708d1515a2cd0a9db9a834412f096eced3f8af24226fad0cf63f1ee0b6043378dae36c3a53e16ff589866b07061b0de0ba1442d02507b5a0cdd0b40b80014164c7464263400810529100ca104383b8c6052ca449a894df60386d7fb4c35e4380f0b05032619789862e85032f0f4ff3fc6ffbf115e66a8f9eca9cbfd1322a060e09389986ad0713522289cf3e5bc4bac7004671c620bbc7829e2831fb50a15ad97ba51b3efe66af15244ad5638a294524a29adac890faa5d2e28a96a75ce39e79cd3da2c832918376a201187449728c33b1c987a100a014f100577c00c7980a497226aa987d7eb53adb5be4cab4549140a8542552fe08b9c9c9c9c9cf974ba5575ce9173ce39bb747777f7ffff7f12894422914896890f15522491482412c9a55f4edf3f954a752a954aa5b0cc0342adbbbbbb630b57b831c6dddddd9d79463e1a8d46a3519c41884f777777f74e76280f88acbaeeeeee56997d3a9d4eb81b376edcb87163777777a758cee5025ed08a9546dad44591e31151566641503f6ed444ba9122b8c8e353b1887a10422822124724b9e41381885bac015dfcff43933ef9a430056b7b5f72d20ae2c93a555629a59452feffff8f46a3d168341ac5d168341a8d62ad2cfa97c516ae7063c7d8dddddd23aa512854bb70b54b2aa594524a39673bc618638c2d4be50ccfe5a46fd29ff4542beb5596bdb067ed85611b84afeb649e778aa3ae4b9d322a4312cee9138cb1db5dc2d8ed2ee5743927a5ffb5a25f2bebaa2c6baf0bc33a9d4c4516e2292324259a8afbbca4623f8019a06652534201acf1e16d848078b20e7659abaa4fa77422401da8901891827262f2292119110901f1641decb25655e9cb0f1decb256559f4ee9a68d060fb80b9a6662054577afa006059776778d0fb7bbfdd3353ddcd6443ed554439211d13eeb4fdf748a7b297aa6796852975a478f7aa66152375cbb4b3927957352fa5f21fdafb5aaac5a559665ed65597b5d18d6b1375711f769580ed6b9efe6bec8bd144f8b378028d9081149f146dc7e4419b125e74784a121e747a763874d4907c7a3a42343187006c2c0ad066c8130207e3710e887739f039ec863b7bb94d3e59c94fe57fab5569565d9cab2f6ba30ac73619d4e96793c2099070424244444646484a4a4e4f331313919b17085a4a4c442906885fb1eaa4f3c4d060bc6931c324977b8403d60def7529ce490897e4affb7301b5a6b54b354cedd3db4723ba8db1dee762775bbd3dd6eab6bfb272f590d9da0325127e7b6d6c9b9ad75726814797b88da5e4048d7c30f345470351aa6186f620587acb241e500081a40b8a24c9ba1f1e38ab42c0735d85413034c4d4c8d073450b35d91a682473d6539fb4026828c068e16dc048d1e64d0e8d042638217684a31688288414d72c85230e67d261a1c9a03470348a094529aecd1b86400c769666e0772b0ea1571b796da8e7f3e9ad61f6b625251a070fa7f2f0061ff60e23412628cdd342ef713579e122c488304e891115db8309ee608346ed0c0e17e68e0a03eb04e62781da465825982209a20dc5d4a144d0d28a5f49f0633014493c2e40dd6898cdf415663c60629c87640ef33cdfc00c64f3a2795c944da9c73ce395b90bd641ec8469059183d6424c85490bd290686fbf799625a30826575207c1a4a8cec4980da78d7681db94f0d446f353a9c54bb4b3927957352fa5fe97fad5565d5aab22c6baf67597b5d18d6b9605ca86118eb64323c3817461e84b830a2e28e987988a4222e84711467222e2207081ea8d4cd098812ac712124dd802e50066c793b622ab6ffb8d006c6d8ed2e61ec769772ba9c93d2ff4abfd6aab22c5b59d65e1786752eacd3c9328f070424444464648484a4e48144290f2452e1422d444588c87bd146d8af2516438f00019aa5a894107a3b2201802008531900000221108571408db31049680714000b285a4a486e342a2e4896c863811021483120ca18600830041863c0ccccd098072287bc9d40bbe8227a12012e4435548bd8adec1339a97b76ae25b982b373600eeac56b045f1f8f70271d25c3c147f5fc21b56413380c17c2a58fee0a485c7d9c2327a48abea3daee3178f600337757fcd2a1ca992d67f9f9fbcedca3a43e79f1538f996e9817164eef3eba3c9147d74ba891548af59cbdc1bcf0dc11a8fc35487827ea646228775711bf67dddbdc3e57a7f24e8ddedacdc22122551597f9c99f257079f508fe60934c9d0231ac26a50959dae0d4c8912c6d434ef7f54680570997bce4c650c204c06ac2293c53b65bc235eba9b4650a9c4b884a2515dd4b2da89e1b15afa640cdf324eaf844a9eec9f1f1954c506ed09dd6228173276815335147fba4ab509820eaf69436ffb95f3d4f9111bcb6417c3541966b2417cdae62374b13bbf2b5d996d2217ad16a18b6c1d450d14784ec38e28e8ee3a049f809f3dc9916b9cc02951165d88d93e66be7ce2395d7f4108ef2973469f469c7470b607ef3f5f3cf2fec19791c589a208866bebeae47459d5c1b62adb428c2f0634242e2153d6ffbb308bd3cce1ea2cf0e67182e5ac3e313c8ea86bf14703754815a0c72d540147a19d06b86931fc9940c38a1ce6d79e627ae8f05377e44a68c99137f8a5a9a9dc14bcffc39b102a491518369a41c461b615450d49d712126f186c1222ce5e1c138fa6d64210a3d38ce70ce8d5f697088dfe7beb0201c755ebb66af2d2f3f79149dccb4fe712a5698420c810fc6ade299b96868b5cddcd000233602d1b7c1ccd08de174c7b7c24e275761f346aa8eed25896a622bd8e77813d8e47233d8a7a629d69c8726efc8d4b17b93a9c3f6d218e9ce9b440dd60b29556caf242a8f658499c444636e1312f14474f519257033112236f2a424e0be75acbfe7e22bd397a1f3cd78ad422f27305fdc1e76825c15cb6bb22a76dfde1fb060bcac625a509a0cf55fe7589746636d406189582ecc9782926e8b41ba01be3fdfd8d4f231efb8752ff872084f1be21c63c85d5777aab4590c84d2090a03c92b613a5f9e1b13d7e2fa7c362afd68f15f06167e88d17b0e88093f28db40e9806b0400ae009600a06e0e97b7acb7f1a2d8d55c437b84aa2b1e58c15f2bc3665d279bd3cc1a21c0b5770a2b62cbd096de71bfbbd453d5f2d47d16a5fd3a9672e5a3148eccfbdeb5e5789d39de6718119d40659b74ed553f0ae8048b6093df3d709c847980228d549adc10a5bc9068bd777d732ed59012077736b32f0554a382d32f4fcf62da6eb605748f39cf3388c0d9247032101220579ce36c9845661ee4f00b9e81c4d5f66e058ce314e65a74684458b30f661eeacef6ba4e73ddc7e96ad8a4feacaec3543f5a0b62363ab145c4cde9a5368a54c7058bca4d5c19890f6c33a7c69d0bf9d5b75ef6e5e912b3f840aa207a7836ff918c4c22e3f9783d11768d84cf187b4c80a8a5cf495845d71bcf3c0617b99f1c643ad6e83f44bef8695d1a2fdbb8f23652a679f5838d0417c7052163717a3f9d51389493f9bcb96dbe3821874cd63c5d15aeb942645eaeb1fe38e4e3760aaded093f1e041dde6b08f5f458a0a6145c30e7a7ef0e74dd5ef33ca8f09ec0a9a78f03b5256195293f7d77a4d7e6bac74287f5055e3d7d1ca85eaa411973767ace48d7ed351eefcea21870b868352829cf3baeb4a88fddfa4f50767f38747b2cca77678ebcdf9f27e4bf1b4e3fa88abe067e7f7f5e8c94454845cd2eaadc9d4ba754a692f7f4e68f66cd7e5c722fc5e650d76f598c2225a379281cd79ed4c11e9909e1cd7935e972b145ca21611615725634bfc006178491c74afdedc3d5160cbbe806a5d3580e0d86c823ad2e0c49f17b5de04bf5743b12ef293c8fb63ede213eb940330da8a69ab531af6d359cd45dc2e5412239c915f31c82a893f46b9ec379c21f8646a1ed9e0428cf73080d85e8cd8dc499dc6b24eed8e9e6b5faf923033c9dcc9ce07e5c01752c49116fdf4f6f38895671e8bc42f1113319ef468a3eb7e8907b0e32fc14dd07e7d10b2ac14880e5ccd14078385e93438bf244cf6b85d3759320b853179ddaf2ad3566c4ff1e061f49cc219d2ccfa263d12a04600913f77e6dca57370d0d4056c7602477657a912bd4cd94f46d10e27edb75c87833834be8ea6ee3498fb09271c6cec7545e43c304c9a6529040c800e1114dadb522c8153df56971f036c33691bb6ddd128c00b0b3abf3d3199e050c11e20d786821f54f3db871102050fcb6573e8112cb96181e28e61c3b41cfa36c95c3539dcd9ca7ea828775a0a1a2f44dcd971d23f77eaa369eb2eaa1db6792ee003a60228992d1f4d293191da4a876d420dfe4a146f8464c0936376f72191c0544b6d09d86b67e2ee708fd57e0eb0f045743784d905a4208d3b920680b30a8fa5a90026024a81c44e1046916ace7d2456ed2147d12a4605f5f71e71f00c453b6faf2168060aef89a3cfc3e453941fed21482a9f0ac1fd0903cadd64e3084d38bac43e8105aa7aff56dbcac001010cf8a48bb6c3fc14029fb7775c509e11e187182c1421662bb25010300f2c23e2bdc2b61fff3e92a8c6690f78f28567847a1520de36db9bf2cba51300c5be6947063f3519ebb52c43336e2ac04ef4c48e8d098ed6f6e9c25e6f9cea681af053509a5c303d7317c434e319a71b25d01fce89baaabc82bc313444e42cea273e7951861a82ce7b96ee2d43e8ac6298ed012bd50d97114ade67548f176c2764dfc3de3738979d5bbb602f5a2e3c5b461b3d0ed25dc41e4e9137290ef7d1061abe87079f5893fe550c0ae062c530ac52802d664cd5945046ca0432058843dcb34eae940d8e30eb3c4194a42f247826ca21251c104b8ceadfcb618e6b60046c5546f4ff86601112b0f8c5e5b8d7d6c88ce7b3e18044b1333a3853d1444200a4650308844fb3b3c1b557668e0aeb771f7c18040216e4fb70f14e2350f8ce911a08707f678fc35447ce448f56ced9489402a02113313d05825e6d297f501b9703656047fc03d1e9961b8747108cdeb5668199954a78c9c5089e428a773f1e8b2fe952de09778329fd09495a9f625b2600cbd5e225f5f82cf3049045ce444a31806b8e494e67af57219faf2592ced2861c887d7f70e0856138226ce80fa596f6b6f9fa99b1056c7a73d179c6b813d8d2c27470157bdeaad67e080af51c262b5f8756aeaf6faaaf3e390be0ad43f65e65076366c2a9f2be0390ecd22e07dda487c95a2fccb692ec7450148a2673950379c228225ca5ae92ea06ef35ad6549fefaa37b0fbb9a7ff0150aa43825986ba7f88616265a3ff29a3d3f821af5490ce0f64bc1b7de9dbd4bcf0f82757b56b35f48b183acaa3c6e04a6b3b3f3c54cbaaf958eba1ee51eb08cc478a0a3780d25a54681654ff0719683680ef7c220be47c1daf595528086cd17c3ff4299b2d6c00bad9317c597191f5a9cb2b629543c87b690239d7b8562e24d8777831561bdf8e04d354524db5965977d8d8bfac6e5be62318dc13710ff8d70434075d342781e332cf61b3241a979f7a5c8ba346301e2515a819edeab3a3698900429acbb9147b15aec329d8f8afad82c1a1e60164c0b1da2b5cf73436d02bff80a1cf23276359533408be97fc894a6ef81aa82751d40d33a9ef19b1253b308c33f22c7cb6fe38cc50d65349f8618d0c74dfde95e92644b9c2b1a4e866ead395a12a043bf70112d3651f1366caa6ab3d670c0f0ff89d985c8260db1a1968bedd6b63cc7e7d8d88454a49d58dd80af86977d49514d62a1f6809d75f1dbed2b0b6aee2f31a2211ce257cb0986f785c7fe06219409c6b1d1367811fcf1a977fcda880b86fa4e29d70247b4bee782b945bc6e7e1f6dabce36a3babf44350918c5c5a08a74a3bdbaeda8f033772f7efb93ed4bfad5d1d8599d5895e4b239100906ed9173debbbcd0d8ba7437006baea2d556ed6d84a65c7d78ef57f6b842d5b060ea15e2cecaf419b0ad9fa5a936272acb790540cf6108cbc43af646de84cd6024fe4a1a2cac26396b76f95d6d5897b47e350d88bd26ac2d12fe1f80f9e844e4dea3d4397682b6b64f1020a9a0a6c0ee1cbc3e538909b753e5950b849e0218ad040b14062a94c9763b663083d479eebafccb8c3d5ea063893fbc38d1c26ab417e7815a91d9e728f7eb245a9e5d86ba9782b9f91d3331cb66673ccf09cefd48049d92855e756dc8d990d0872373956fefc0d0fb98437147b638ee87fd4194aed669c6c73287f741851f35ff77b76d712f00049150180e04d918e114ca0a185e500c8c3fe08db5e0b6a49f72f9c296e4e2cd8d445cdcb14de99304458bcc92946e2987bc5266f642c01c09863d7088f070c22355e078543e294d239184e811b5e730d348528fbaf00fbba0244ecb71e1617b4093a204fb1a0012aa6ca80073eb78236db2c5ae7ab06f64d8133f87aa241e89b2dd42d844976a2bfe0a44893cf574476b9fdc6e0e07acdce12665a414a183c547c770be303bfaca28db99152beb301174af277d748f92a96c888e610fed8afb50d3e2292c179b1a457e326d321456873617309c48e7d433f52525f100be829842c71ed96cb107eef363e9ea68b7a0f283cc254d10e76448bc0c879a156fc13a422fc9eb77d8525dd95f79f7d058988fa78e7e6082fa7b4d80531ad697c20d7987c61c0ba4516ee98b07c710c110c6ab99143f94af1135b014b850c3688cea09153f4f5bffd9508ebd8e0d69550ed0da2e322244212c0069a0f656263428404b1db070922e859f793266c930056112a385d618eeb1438f57b61628dc05d1742ee9bd6b8503f52294653269aafafb0b8ecd042cb7c7c8cfb1b6e87c947892464110b2bad993cb94d2cc57be3d476162794dc7034ed41a09f799b112ce9a0716fdb2adaca8e101ae526ce3027d11205f29c145770c486b898e65c3f0f86129b61c42fecc6ed1dc4d67cf64624e5a143e7540ba1b3a50ffa4e117cd90baccb77866d649d81a284755a1618b35628b6b8825d7df9f88e41298c396365e6642948085866e064febf01dcb6b230848930cf079ca37cdf405db6cdda1466047816716afc6f606e1b599a424690e523a728ff674073205e0eb39c80c506380863aae7c184023d222bdb21f6db9e90f1667d5a25a3aac8e6a1806464241e3afe526721adcb4261e27b714d38c26cf461fc1bb77078897c0c1147dab28af1bdf8417908a29c6c400a66bd70cb96113fa9f7f89cb4b2ae0ea11a4ac4414a24f24826edf39319dcbecd44eae12c904ee3ad354ad194702796e87f0f38f475e01ba162891552f18f5005795e1df5137195381a8b64db1026276e2024390fc4b40d30090dc8c8c88db1b8c4295f6f55e3338a76a4dfbce66c962f26d3a59ae3b8d03e6997bcbc7c24fe702a510bb55b51d38ee07dd59eb9b12f882b6de601fbbe46d04afe22596507c533fc3c68e88ddb4d5ccb393ee47e7061b7bc6b846c4e296f03d9b24d20e542b37b119a8c72badaff1a25e5246e954d9c86b1cb2d628b0fbbeb60654702f77b91201116f1910c6802a0e52beb226e51b2df162ac689232ce6802ea8548d978c053b39c6e2085ea70e480b8b23aa1a9f9fb10fec261cd6df5c4501d724c20006810a183d8d808a9aea5ec306581244b4e40801949c86e2f6949cdb147c29086a4cfeb9ae9d107057b6655d8ddb68c6e43c6203d20bc6b1010bfbf7ccb4169da93060e0be2358fe3a6d955e115352b9a735b8430e3e9bcb81714abf91ab1d359aa8a11d044777b60687a3b8ee17bcb702006bfe11ff39b8a0720464330f1b619cf50f10e45b913813b79d72464627f705e2f6fbe6bec0f86107d6888ab9b866b865289efcefe9cac9ea5c0ead60305e05fd22c78ebc06498400a43da4f425c2772feef5a5c7a27abc8f5f647fc2739c8799b362a97c9e56e60b149a272d205649eca9dc043f0e378994892cb172aa37a417b763e597c6e0027a9c1de53b558def81f73a787c34e666adb0274b0d0e40eb8c5929d3a6facaba4ae113b581c0d8d22050e2abb552f9b08a4195629d61d24ef2a916b8721f883b2e06168ab45e86a07d5041394c5b56274603c1145ac5162c288a5d6d808a8249053afe04d213288a6f8778e38ceac4354b90bad342de7c6f2cc9759e45b342785105bef76a4439720f6436cbfd328adc07ee58e0c2953942b44b59e7dafc641d2286a1ac82010da993ab9e0ed17873e09250308ba8bd48852cdda244618920c1b6ba50bcd072753a3627d33c68004105bd6795b91f3dc16f224f206e360b391358814f24918f61c03381546e3bbcd21e992ea202df5880ec1e2c409b62c01d4664079cf0ff014e2ea8d102e8a208d94f39f68224d33b21480df9f8fa9aafd9964699f51ed9c67d05bad51ea255f6065ab658f572ba35d685053503fc0cb1c5e95d9e186f3b20435780a6fba4e193261646f01d8e615b0e41c34be306f5f36fdde1c00c3464996052bdd92b0c8301fced35903b583a77a7c5ab8b59e25288cdf49af2b4758ef6e7752566f5ec45a997c9bb5974876c7fbdc2f552ed12d69c156ad897245cd0832aa96b2b72c181d3f13fc0d7f1a9a9b4fd58bcaae083afcca77ceda7d22f5fe5d6b595679357d6c729299e4b049ef60f612c056d0794cb7344ae8aa178a0e147b7f080000770cb22d4366a55150aa0644a092eb4eb9b8eccabe67087fa57f969d775ec29c69c293396f0c6a66de0e86112bd45d5413deb247d38735942fd6e4dde17e2db829a984b7904c1ea47682bd6f4c3240058a2250f034fdae413a966bff26aad05df6e1ee15d659f9266f5799964947f33bc77a68ec06c7ec2b8603fc6817156439b1fbc045f7c8966fc80e7f8b4345246e79e965e54e7a4fddde3fcb99f94f1e8d3444abd4f73dada1b28f40f155309b59e1061c60ac095c9a42740c3c3e15eb8fc1f86c84e25fd385edb0a2d4733ee71abfba2b087f16ae6128824548a91f27218b66acea32510ee4d46ae1fc17707042d5fe6cc99f3a7f4d0d48b272f0ec532d2ca2df634a9a6c5b2965d2a52ef24150cd58b06b32812634678b45c20e7c536345eb47c683aed3f16eff2d562de0d8ba28565f3079053cf1b3c51bd3520455ee2b16df63c990abe91417a7270bef96b3d699e4250889b86605773b644d58694649c6e711a79fc75394deee63c9d552b43af218b37ef4c2e6f988e38b0b9ee29df5832f19ec03f806b381d3669952c3a20a22975032b3ee26d3677b1ead3c5cdaf1b322d40528c40c84a5ef70ce82f0291a130751bd41f6caff0194ac7eefd74c46f981dd189c62376a3e59869ccd11048dec52591e7ab5f377e681a3496cb5d94069d14f851cd6f6876bf9eeb014b64549da268df557ff9bc0fff83cacea7dd3a2c5e9efa9d540312003ad80bd0d0df7c5260cedbf688c5ea0fe98d1acfe28e60c7295c551f6b6a3d58a3e32b8b0bb97ae83d41a1c3e0a44781d988ab3de839fee4ef84d608c37ee0ad9c6271e42e42462be168300fa1e102c566af15aed924934bddde6a313436288bea61e7da25add2e6a7989b6d4c8f3a0bb38428688d18e6f5f10c31f54ecef66f214bf9b4984599e65a0e66e087d53cb9742aa41b13627d25f4c678330125c1dc75c1b3b12d542b95ade571e063d62c222b6a65e2959240bb1d2eb58859ffc9262c3f3537182d8b910c11f114e0583945fb7639974f958318f5f5786d4c2cc7a4fb49a086c5ca52e8ea2679e8386896c9867b943ae62cc90df13564a06b2e6ce20eacf7bd45a02f2dc025cb703c27c11a27a83a5c5507c8195a2b823b02fb7f0a4906bfb8a22a37b870182294bb32b374e14249ba272a7a3afd8f25387b998c9e18d202e90bd95ee372cf168d750fca6ad8ec82510b2918ae9b48068f2bdb79142c7a3e7585f687844bd70f86be2a36704f8005d2b4c1b18e1d8cd9164c91ef1fff21db8cc9953dbe9ef9a5d5d375f5f0f039718b00f253061429f59c769a5eefb249472d0b42dc628a16e43c58ca2b85c3b5a149070ac0a07e15001a5006b0bb86d1265349d1e3530964d1ed1eef21a8a1bf118d53ce63feb8f1f29c64686809dfb2ad7d22e7fe4712b8484293393d6a9178727f62b0e45b0c5ff9a4170c20b59c5aeddf212e46a32d99c6fc653c79b6c554de8c6bc300e2da7dfdf857d5baf34a0cdef745f0c73a0e3ce4424260c69621ee1580a904f486942a5541b888c3b034a73d8f06d89335816c998ddcf255c6671c10ec4e958156d7f1a06f11bd63a6af4358563676dba161e3bec9713013e0d3ee7bcbebd54f5ba86d54157a982ff617129db55291ef1a7504d1656e0b1e2f2954c4ca58ade3dcf681831025988f445fedf2ea7b7ff00f36746b95ee3e0ab6af3cc1832f662444b2732b41e138a7daddf19e80dc2c08087647334835294c8e930a258fc29d691d89be2b410648ba7c16ef735631dd012c807daf3f6518fe07918ff09fc6d334dc3adff818aaa1b892c7e4b307b44953e11011baaef1a17317b80853ee1bd2208d52e5bba716d9fdcc4bebd16ebfbec8d9d987a71e4b60866882fc982a3283bbae646fd9cdf070edef7b362860214b9ae1ce5d596f30aa068d011122188280b836159df9abe196ca495b67792919f3361b34d5afdead1fced6233f2c0e515f6e6acc0373055030ebeb25960e5886941b99589984521d733e4a8ff5dae3b595fdd013924914e1614621e8c1b9f82625f454848802889dcd06e1fe6d9c27faf3d074a54620b9a92ce64908bb5e224358ee456f1175f4325a1006ac9dcc382c37438a9b60e761e1c474fcbd72e11713078614b818c454c9b0aa2ad2274d95882851257084a7f226a1a9bcb52c985c08c9cbb150385b7d42591b4b5e3b543eff51b9844a5793b7efaafb133ca6321b3c6b5f451192ebf15edf5efbfa180742a159df456c4e9366baabb6f39a0270b2c5b4b28170813d5c3c0b9e7fb9ef1996c430d2351e0c41078a5d00b4a4b00cf95a8408059c811773618b2c90706c5d4bc7c26d55dc5b0be1deb0d7c49826be76d5355fcf5e8059ef80700fdec8e0b866003287613c8ddc0abdf0168c2c7397f884afeeaad7ffc21f4c82fff00b1bb20b148fced8ed69613c501033e994312700cfa7031675572d3dfe70d0138e4367e15d9722b830013122bb93a57aa10a57fc0d5e05b04ad45678f28515ec853f187186fed00346e4e80f7e21c01601ecf413701f65b21003037acc06e8e9b035aac466ce65bb146c8762111eb3086b9d0f163a96ea691f4041ec51125f4d36de263793c3e45134488815b20115c37fbbb96a9b07dcfebac4f8803f35fd3ef77aae154e3227f54ac2b5b1556d8b75df43756d3a3cca7a3cbec41bc30defa2664358cf56e8a195dcb210b63269327b7173f747d30deab3b699af29a94204ec82d742d298064ce8cf0c1c623250f0cdcecf032b8dd4d81b7f336c84dc80acd136ccf9f45cc9806c8c646cf92106c9783e83282bfedcdc8ba5b32a884c1e7ea74e59b2fe6b08a8dfe86b3c9e7ff966f701f57a6380e3aa73c61213e6c74b49fc2f413f9354cf051158977356c72457739f6179a6b1864f81228bffcd17af63ddda36bcdd886e9d27e71437573619bd8c5241a3285a8162131753ec1191727bf478b747e85d8a8f766feec7fe7aa0059db4612c725decc01000e7304ef2b9a869640968f8b64ac8e2b4801efe0c1f61aa560266501ef405aa843f2c8fb136aed3c633ebe662be0ce62d4d77db15c3f8b412a26e098b1b814d6a59c9f717ed25a9e43dccdec85ab4fdf8a093bb41075272d02b15e896a381a2c6481c6f72b0603eaad9581b372802f0de6784fcf356698765cc97b6f56f4e2eb6676165c63cc90296f05ac0a3c00567ff5de063eb09f605e8ae7832dd6849d2a098e67c2f1a502818d511c307c92d7bd7d7298a40afc828e1beb67cc4a6b39f1b8512337665cd6956807b0e80a9e90f2d4bad79255ae8488e41be6d742f570309db4e88570778e6fae09e1058f39578b52eab3eef077fe019ff437f5810e295e2931bc6154e48880e002cdae081287bee40b596bade75d20967236b135238084afe1f5e83814a169e68d5e11a7ec31fa8b121b580c5007ef2a5c750c898242bfa96512af445903abf9f85ccd32c81bec24eb41818ddcedd4beb4e7110acf62b53c1797a125bed68c82617159f0a17319784df14ef55827f5848db853a650ff15805b1181f3bf3937dca0fdc1a5ce6421943a684dc0239545012c8b03a106338b711aa898dd1cdef58d9d8d13fd39605ccdd0620665bb6223bf33a4d30758ca5dab00b0c0d146b34d94294d47ec2efd0c78268152f91b3eab612303be10411e57136cef78d7aa89395c711d8fda759f184460b5f245969d8ddd442ee14d8167ca0816eefdd169118eb37f2842fb5692db1b0e56a69c313712d4758c7ffd94eab426550dc2202a30e897a3beb1be89bc4ab91665089507aa9680d354ffbff193e2d0a1e566823452ff981fd0823e1c569c452581daff4eaf5327d48091e61245c2032bc999a4a0a75a58a2001f30d28aff4c454d91a9f1d41324df8679a03649c27302a49500b7667f2e561e441b005339e3ac216c50045111551801815e79a8d11e51699c5e9daa041aca601f24ac5cccd7cda039c3ec62c365575d0a2b53607888da1952ac50917623af0ce50f1e983c6b20ac030b15f057b78ad6144673ef07413da5b381df019dcaac693a2465171310e09c73c07f1c1956797fd7cd82d7d065f7016730538dcac87246ef586ccc4e695dbc698355cd22b3334f715fc235479fb8583e2284341f4ea494c89bf8b04fe3325f262a1f59e31679d8cad6219ecc56759b68ad363e5330a6a5ad3843eec4d2402a5d22c6958c83910607ab058e383d8e98740711045ef080dae1af743960ab149448ebdceb89c4acebeb35a9b81208b498a86dbf6c981d0cb06392a211557426eb8c459ef08968f70a45d61c29c2cdfb0bb27bf1db08396e131623ecffed6cff0085825dd146cde763c382982b7866dcc9631042cf7e4851ffead3842ccb3c7ee6ca8d0b2b3ab289ea032d8f79b21f6e8d83805286898eac9d9af0c70c9eeb2bcbd6e8751c788520a8c180d7053b0c886bfc006f335f6535bc9adb630db65511530140e42b9689ec1e26b599b743f1d3734bb7f896bcd2f060b5301fa28057729c8e9b1e4f60aa0fb0b8d88af5e103e36b129806418fcc512efb17cd9355b1c71c818cb184d3dae890517f580445c0f45e7d923755318de1e511ba5c21e763c8dd71763f483c5d137d7ddefc14446951aaf5648eef9e1e5b8a38488fe6770f1ac9db2b5a3d0977f5d5c347a44f1aad7202d58f947300d2c42b4678358d449001bd5401bc7b21c5f4ce03f1a922f3ff7daf8b487328a77fd0f7288de83fc631228d11ca4c41a919d2733539ba32442eab15e18c5c41e0affca071de03b1b03b02e1041b4ef8de5dda83be148fb02442633e5ebb2af51205c74d56319e55cdbdca92ecbae65baca393b77f079d45bb9f5018bc30bce2b3d4d3b48db718ef7d20442ef7c71d38a072c4cd38f16f0729e0d86ed73e4eaca149c88fb471707999200ce73381776a02b0e623ab9caabf9735fcadc7f4db2baa51db637e9b0aefaa8ba0882f64c2dd0783e7a630f684ff46ffc68390e2d7ead05b73331dec5f9a7f376c408520a793b39f228e3793b196f94a0b793978c525c65ec41a9c27aabd20da6e037620a3c25ccbc0cd4dcbcb10621fb536431388693d7a14b7b77a9cd55c549c97c17036cdd11fb6bdddbc1356fe63ad1d5f04c5312a4961e664fa75569b5b16adaba26562cf4b315f6d21a6bd5736bc94726d9ea40e229176a3c7f4b53991b6d1ffb645dac51defbfba5fbef89817af157e0918b0bacf28e81a39c34f04de1389db4deed6a506f5e40bb5d76e576ed75db56436d8d98559a50e1bc5d3b3fa2d89d330bfae69b504aa14c985e5257134ae46329ddf7c72bde248f947bf5d80ac3c74b06fbf82df9237adf568adf6407d7937ef21ca728110311e56ee67ee9649a036b382c37df0abea4d17e3bea89616e6d1b8eeefed04523eea8da9af38a2dfbc99dfe0da05473cae820396c4cfd9900c8accc72a653ddcafe83d2f6a265ab1c0df675fb99cc947be34ea5f8c1974fe70c5d91e750bfb5de420521ff69084fc0e8d3df946095c4bc63ee30cc9f52696ea61c0aee51087697914ee8de694496dacf8c215b3f6ab13a33f1d4275b00104d31d1ec68931814531af1925fd10bee7df9645ed8090878ba3fb6cfcaaf4ee50c9d37dce5a7231a0f706d92045b1258e3173ac38d9a30a721925955308c24c0cbf73219f2dce24bd3a1ebf9f2765cca7c3b5a1aa8e8daec2e475f0361dff8583ab748ddcde531c921357ba79ae8e4b9e9a3860fcb6b1d7ec5a390f98fb2320f00dbbe26b80b18bd97aa0651a80e1b75eaa80853cf8e947af0e8d1ff75e78a0a22832792c99d07766c1a54d5d3541c923510db7e89808ae497e6e04f96def1f7d0fd77f03055f8c890ea10794da20cbe6c9be66c717b1c9e1524039634d22a4c54a8023a5f2a1620a142bac429ba7b115cb0f7f34ca318d454cdf04d54053652de8689c52f4f9be5ad9aea71715c5a3cd32f9622a3dde5648c40561309c2bf5693a548aed7a03a7847941ab88bdf175d9dcfaa2ecec16439692f2e4bcec8fcec91e3ea3795737aff7b7de9ae78fa09efdd6ca77de7ed594c11d0633d687081e46134918604d1858f6441f00f015fa578839eb08a63f01cf83ac1d994465984cd833ab4f40cab59f8f15cb0016cd44ac64df9e1406423a30274be1f503bb5801d7f265aa489f7d80653cf7c063b4d1f000ea46915bca5653736fa82e75e3e06a2c40790cd3a00406803583765a085ef02c67457d9d52c92ae6980468a337a02fa422f55c5c23092b8dc2162d1070df6b4439e477d25a24a9c08f3d545e9c202aba659ec94b44935342f4cbc0a4634de7fe24d90c4abc77359c7566c7fd30944f10d6a4d19dda29ae080b6698321b8d2577eddb8829faa3f31d4468452589723cf017ae9f9a2663b03f92b0c4c51e535db259f709d9f189e69862019e0d31d478b4aab8b85ea5f30ea4300541be64345130aa22623fffbd23e7f53eccf17f29d5592d849c330aacf6ef246cf4d92b1b84d22b0b5c9f77cb1cb6c8284d4b88864366a102405434ae9e711fd9b051092eb12db15cf15f9c65ac94abe0f9897a492b78e20f933f72f53652096605f4406682836f885ad90248b30dcd458bea0be372668442f4685a65f0f5c9fe5bff10aeefb94d16fbae410dd225592dfe556b3146789869a84060b7f9a7c2609d04ab5b7c5c5107accbb153d65b857fbbee4c84f0cb7bf24df24a4ae8c3ffc023e7ab8d4f5cc6d5861697738e0e08aad3134e5cd13f7bb203c8ac55fcf3a972483f3b2a935c26631c3b94618e9906f69c00dde17db33dc883d38d3f3d9b2830f7c313fefe6e8a3315e667833ae95b58101fb45f75a992e76c243d88a492e4af1496c45db98a8225be9cbee8c0a990c27e4c07abae692e7fabdc5eb35d5482637f3b990f9af979f7711b844b324f63ca1998ecd59f31b859a0ab2de5e07be402473e616d10b2e043ef54198352127959acae410d206fb0659c45e918d683847fad1d184ac8cc843558b89bfe655e58163246ec8eab67f8fc89e8806ab415f1d37d027f5b69d3e733f972ce9fff135a0b34898c1ddbeeb74d0d03221c0ebe5fee1ebc1f06cc350b21cb9f498e838fcbb79a55298af62318bd2fc9f598bb56b7b09580c224c1908ae1d6089dfa184fb0bb3a6f6d9e43a9fa51cafb6cd16d65c58ab9ac03881a8ad659ce7d790975b719a76e070c9e200a3f2b669c8adcdd1ed42a6207fd0808344e2db65e047be4c8a6b871be234ae612430d210987dd91060c85012a432466bba10fff079820cfd7105f4eb49b253f97b71c3f3be97e015baa57183496282ba5604a44ca169f7cd35f8273471941bd5ad9384928937fdc7bc132941e843141d89d0a52962a2964774680e56fe883e022d821ad2ef237d37290829e6cfce4aad6a7af4cf025d4bfad90db346d9c0cbcc9eabcade44582e408a2846b82a2738a7358f230137dfa287cb619be12325dce8a144c28b93088c33893d0b07f4b94d986bf2966d973a691fb357992a7623e62eabb23d6317fa29d5a3f4427c6f9c80d96dab331e0cc05f9dee61c8f145a08a4187b31e19e8a14ccb411f037cf2ab9f3ba9d4547c3c69a13a7bbafec96fab6c034aa5b2e243282db902079277fb7c01416e7cacc41eb8f5698089a3b71a40c9f00f885f52f5268aeea5bb7bc0c09b80958ff6004340ff043895b026493f189b02da9480972c9c9f0872e4806539d78972626188ac0dbe901e25d880264aec5f2d633efe35b159b44f15ac4d24c462937f7bd08709190e8021dbc9b14636bd91ec74996ca35b94c4f6525d651bc50ef92374ff7c06b0eb426a5c3e5b998141008d3d0a79b8b23b0f0f69649527183d81ec0e447b4f927bd1b2e1c2b9b5e8d93dc8dc219a461b348bdccaf6c7f3f7373795842ec37d9ce344ced0ca56497cda31ec7eca0b56b9165280fa848cb00bd1dc0a9335d7c5c885df6d7b03891f326cc9f9906b27fbc1ecc03ed61d4cea43f6e8d6ee3caebb9f8e72722643b4df5d011a9613a349d1ea7e36a8d502953449b30f6c8681e6f9e2567b42275f7695911b107d80f899b102bd0ce95295d14b9f8c31e7ac73ed21a5485bec2ed2a57dccb44b8db08ef852d87c24c6de455c7de7f0630ff84dee908df337fe236b06f0e996eca6941d37c7cf16b80af7ca1f04705ca36a30c00095ecb756cb8357e67cbf2a8da98fbe69dc6a43f11db29fc1401da67b7b338fc35c9536729bcebac2590c8cadd2f4f4cca0b1f3cfec547b9291c5cb1f7617abe1ac2a84cce0bbaed9391f955dc8358b2a2ac2ca57050f46a80247493ab1ab8be984fd9db0d51cb745a7f962bc1fde482d3beab55d2aae9e68ae44b3a13f55b0eda17ff5b289a1afcc2e97ce69dc375b7051af51cf03204969ee3abd4053f21f74f2143c9dfd81a813d11112857d2f4d3972a5f89d833130872f5efe37ede9a41f1347f87e8bc374f2a5a1c540da0b296e98c7b91f8bd7b5764a0fcfabd6238d4f273f2dec3cc41d1fc703124c59382821a03c752b21ae621f4282df2cec79a6fdc2453eccb8b8f2f54536b038a8dc4a8d79a6419d6b6c84372d1a56b4dc66c50466b6e72edac2d66a012169fb6e95867a8bd9aca8ebb28a72b835c59f718652d3215e7a282d2d9343b053069ef9c5407b76716b6fb953fc5a85f5ecb951cf93b5d2f3b10b3d739ece3384ff8058068f37d77974d6dd47d15612fb2b70694a0b4cb3d7658acaa469c9558eb46950e83b8853924adf0778bace07e2a7d32a08cda00e0b7f4e64e074b4f28692da4068344d43300801c8142f849eb8b66b8b7a827c93e23ef69aba3fda5a5d8a74c9a0eebd29cc4770575be1ccd211533d17978b706c9a951fa6b5ba707c3a15f4e3888a259c43f4419c595eefe3f7f2bf588964e629ac40a5caf82507b608b65f5c15feb8b7e845b8ae5d2d795252536ebf0d4350c848d57c773392f005f370a8f3ecc086fcd5af9ed1e5cc94041b65cbb41e8741515462a2303c21f41580dbdc6cfca02d4aec001db3f339d0317328d9a426d36b441b1f488866002dea48b94558ca96fa472c73e8b4b5e471d62d642b40b243a26c505b1662fe241fbd5f4b3dc30a2bec39db259737d866408470c1a0059790598a40551abe9f557b3e8ad6aeac344dc4265435f9ab4d2cd8c92d30c07ea42c24628ce470293602ad0a1a23945ec0547f9934d825a270689560c363951c278c203e748e191ee52f79653d7e2ea293d6ff9fc3b13caf0b3f96d1a8c3f4c48e81e381c51cb0768a2a133178b6c081a6a2ea48c5d48b9232253146e64aa45221ccf85b77b96c4a25be20c01ca85b2f9f4e97e029274da707152a15848aaa0d8f651d88e502d9c864d98df08b70344b21477f9ee8a8d96c4784691940136de275fb1022caeca1f73b696ddd4c84842727193296d3e62a753f787543c4734c4ff74a083128b94ce236a02b9e8b1013b6c7c3c23646ce5a7f48b457d27f8ba3bbc3df86ebcf03326b671de05800720bc382d53e280a228123278fb137cadd662a8bd83295d9a072988664607a36fade6b395377bc0881ddfe96d1429eb9d22456a0b014b952dda189beb36745eeebd8c303eb4fb16f6ef3220e26e148768bf9525a59afed12220ae6fca755e487e23097529baa580ce3d22c5760b1608ca3df2be3387b91227ce2acc0b7fcd643b06a339b42e9f82a3ce9f66301f6a9de35b0b76316e3ea2c00da34f42001aa5f1c1251d865ef6b00989ace44207785d5dac6054e13d71ec782890c6d172fe4a30df9169857dea8f98d42c15ff01dcff441bfdec3ddd87c12a6d42955b6a2246ec40fa5b67273fbb74751a71f03ff75c1efbfe8043016d3fbb91149a260d75e131f56bac00fa9c053c65a13ee20b1354afab79c52df884bc39e12be4c90a752209031e521e58b8704d409dc7c6bd5a357471ad950b4e7161bb77f2a414eee74bd1a3551ea0ce4e51facb182aea26573bd5dd219ea5342a50ee0ec46b4ce83ee36c30eb9f09ed64ee8e50d9d3b48e97d5e8d15a112b6bdb324dd3d63b0d740c7b93a397d7791f9983147817fe4a63ab0132d63c6a9d57d07b0472807a48442caca52f5fc2cf3c4ff00251b1a6e6c3358cc2d9d5c18e4bea0bea720984108729a9974a6546815257d60faa27006041f81eb2990914915ac22e07cbafc1e6b3af9fb0bb82126e735e212e03734ddbb40941437fd495941256f57431663b1ee4a90c1ea269fe1d7d4fee14e707a56fad4c87152ca3d786f7812742fee7a6dfc8c5553d4b309c1b07260e036e03b04e671ca9d8d60cdb3da8479e8b4ce4381ce3a906f3024d50ea46241dfefce8903ea63e58e05ae2c351a2a9db16d5a4c31990993f38e3b68f9feb51ba518855cb90d39fcb372044eeeb8c64179e128385db0614a94c88c836fdd42cc9db0cdc944b7a4a61c36f7e44c868e3af7e0a5db69aef7d4806c2e9cff3ad3292ceff322d790c2b901d7ac496af640c71d1a281913247d467257111e525f64ba0d457dde552bd22a97615d11354b6e607d232c27b4ec6ecf5e83b5538ffbefede9298a643243d9b82ae4a94b3d4a4db2667b04035c5369d20a294056df3c5b7fd471e7b8dab5f11ad4368527a7c29204428cfc51f2f88c6cfd214aa5f701b56c84aa7090cc5919f1ed483b3792f584d4cea41b046b5a3b34ee8ae9729121fd8bf6fa57695e9643c3cacb16228296222472dc9f6cb7015a02f53461809011710e29d123323dd2f448c7ee8d0b5368ba0087060fd475857e3b59a1c14dd590ca1540d33b6b2d09de1dde7c1744710ba61a5be69ba3d82ee728547ca616c6b7d89fcf369ec80ec9f801d19b31cd6cb185e0b7220df2bb57aedc528adc012403330337035424873963255c7616e1517624e79c33e864493a9f3f7f27d407b09a3852975d1f747a10ea579e50bdfe57824e23d7ae3545c40c341d7b8901d547db828ebdc860ea9d8a8e36a6f358ef7c67350a1144d0450c6d8c1da10f86608f9ca6e25ed807fce97343601f804f9f23820e00e4e97334f584e7e977264b8232e38312f22b722944d5131f2d74a97ac27bfa9c69494444dfefecaff8f4b31852fe9593f05e5b0e4e4725d16edb743942cbd5cf9f750aae57d1c66025e88320a81e7af3ddddd4b0fb2edbd4b086db771ccee6d1bbbce1e1d6bf5014cef8ff8423429d27ac3d14e64afae71f0afde7ff50adb552ac6a1e1e71c343ad8b54fe1e4f7dad7aea8687b8f330eb6048b11223c20e543c789130f3f076d13ee59207ff850bc0b012263cc0d4bfef3c0851c45ff125519cc19fbfe73be8401b00eb1d84b47f3ee25749f57968bb289c414224449901ea4010053689e70f029120418276ee113d369f50457c30a4e16325ea8b8459248e10c5cf8ed0008c350c5166f03f41dbb1634729fc8e871fddf0709b4c3ccc2693e9c37b8ef7e171cc5e0fced9f090764f88699b8b217f102c0f69dfdccba6c6ea1a2b3952d394634038530a8a60631deb545f750b974d9fd67bb3acd62a001938e7dce31dce3d4f1f74d95e67875ea7d3e9743a9d0ee79c73ce3d2fe4bec339e79c732fecbec339e79c732fdc7c8773ce39e75ea8bfc339e79c732ff4f80ee79c73ce39dfe19c73ceb947ec845c1c37aebfc42081182e7845640cc810b2a24ac9b6632faa1a74908ebda85c2e58ad56abd56ab55aad56abd56ab55aad56abd56ab55aad56abd56ab55aad562bcb62612574004bb004cb6a6f86730bc016b0056c015bc016b0056c015bc016b0056c79bd58ced3056cc9b804698034401a2e00a879dbebdf5e3febf5310ad00afbd6120dd4c0fe32d529345db26179f3184f7a0cb64a51580d67fc03bdc8ed4440dfcdec66e76db3262e0aabaf48314ed5655f3f458adb373983407c5fad7f3bbaa1556b1f16d6aa9cbe84bf16a06a385fac84ce01a7cf8a5d6f58823d51d46e224b0158c3ce7f7118432d4b5553e00dcbca20cbc6fe6a13ac546ba5d683a3b5ba60fbb0b6769825cb940e55cbe8189b69977e6953d3e8164f712d702b2352c368187d8396e91aa69ee05edfa071d0309aa569748c86e118638c47a4c7559aa567b44b9b9a46c768183d22c18d0956d22c4b22729134cb6acdd22ccdd22ccdd2accab1e04c363339924371299353712eb89366611b582633b79aad662b8263d1b79a7a82fbad88cd065b0de782336d35a6f9b19d5c0b1c8a53712e38d356b39ddb699aa6699a2668a363b036c14a2372446e27693b2d264d8cb7733bb7733bb7733bb7b396655996b80666b19909b7b00bc630b8dc4e518d480b9989c42b7805c7c0353ac631b00cbc8261300b5e1995209cc9344dd3344d6cc305c76018cc82573089c92c725992cc64ea60a36913ac84432dd3344dd3344dd3344d934462d262129398c424262b8b25d2217ad94c04253a454c2227914b64627264632473511dd18c68462484484717cdd413dc8b8410a940342382227a895ca219d06563d2344dd334cded2ccbb22cbdd707ca87e903f5c1c2333d1aefa5592630914b243aadc8490445f412cd885c3c95f3dedf37224736462ea39811cc8865b4327a59125a0ab5423a42e6876a7a1d43ae904c25d550eb2b2d092de5bcf7f7fdffe6b336c14a98dc4ecddc9cd909b7733b459c5dcdc2e5fe3eefa5599a95996866792af35e9624cb7b7fdf3f8964f25e3c654778ea2bb79bbdd715b92cc965edeffb2791bc97c8e5bd40a78d029dc4f151a013e8f49576445a928bca7b7fdf3f89f49576045c618f22976b8b5c2297c8d53b1f6a59122b8a5414432dd0c98ed0ad6bb88f58a8a536bb9d1f47356cf7503b8e7e1cb9f43a628da318efc711cc881c95f47eee22d7085b01de6be1660ce950f9b03ac56b21f71d86338c2bb5387b64d0c992d052a5bf80ab4508b54240844cf021997ae23e8b6ec2b2ec4828f45ca8d509b546e468eb5ac73dbba72f81fc38aad1b35a80da4731b00f365f7f24e3c308f08dbe1f473023965e4764af21eda3957a82fbdc37e1167221214828325359b5c9cf2c4d97d2955fdbfcde4432919965979fcbb348a6caeaf52faab66aab97b20d0f86b76aedbd59866f86b1a6e5bc6979db38aeeb365cb7d968ede1c1d11e1ccede9c7736ef743c1ecffbf8001931e2fb4242c01ce67004f5fc2372389ae8012116c459e940136c1c6c7b527afa70ef401cdb5a1cddedae87c53ab8c3a66f758adc4dd8f4bb798c7bfbca3bc4680bc3362833ec16a2acf8d20ced675cd7b83bd19e7664067bd458d6c658994ef78b966e48bbed48ea6e5d6aafc7c8800ea555add5ddc7401eb67d1e76eb6a2a186c22b6bd19feabb22337e405bbbebd9cf90114776fd636612c56599a4cdb2c4b92a4a6595d2e92dca06b8f3695025ddd65bfc2d05df12b89242242427eed4d3e9b7305adb0bd3ed24bbfafa48af48ad47eceb2a8a9c0226631cbf99460dd5efb600a4ca03b42ce4d4becd7e7740836efe8559754fb09c17efd122b9e745bf1063abac334efc92da9b9ea12bbad2eb95b49863176d2335d82b1922c8ed6d5713e9f11ecd72721fbfb2658094585a5af221345ec4f54ee6351c5b642db2ab1e2273f02b4c79fb5dfd45ab2d696eebdb7543fcbb22c2b558c31c6b854434dd3344dd34a38047bd8a34db95c95aca4699625355113c6027bd8e336c9a5fa1da75245aa31fe124d3ce998d6b0f829c122d64b26586947bf56b42d3b42ff247bc0ad1b15e0c08103475531e9a0010c55661162aba4a8c0405568b074305880c142690a8d18d62bc5654a39532f505a6b0f8f172c2fc8fdc2c5870ecc01c60c0c178c18183a7c58a534a51c82d2105aeb8b9a17314081550100416c800515322fd0f8a194330cf4bc421059a339e79c737e79e143e73af60243042ce8b61b353466c8c10d261c2910504941c92165054cca89032911c09aa6a5b0e89aa6bda45c20057547ae5edf9636e56a9db4566befcdecbd5986b19661ac69396b396f1bc775d80b63659af3c6715db7d9e86eb3d17ab3d11e26115eb22a695694f96295ad92b25013556599e69cedcdb2c8d9f9b11c8e9fdabad671cfee07d343db77eddf0afba0037400f6eb7fe5577e65f9c9f4cfa5f3955f8d7a42bb56fbf03c1deed980505e8d67da4c7fa43e4c1f27fd81fa60e19d5fc96980503cc561b866792f8fc6a3f186f06aba47534f70ef0de111e1d17cb0f04c8fa6f3b96816c8c66a13ace4bdbc97f7da4ebec25536c39cc5597889b90bafc149efa567740d26b90bee82b7e02b9dbba827b8e72df80bdc05afc155dc05c69ecf332f4f618c31b698244992e4299ee2299ee2299ee2a91f143e287c506800f6285809f7946d98006160c204280311d0bc5744c4c3da7a036b690e6b6dd83952a02188ad65d720e36461d3c082f2030d34faf826ce0eabf9041b77ec45c60d5d46096436192e9c20a3450a326440c9c8c00a9afb6d4f0b818cb28ffbb10b5705bd3deb5ddd68586731969554570eae5ebffb8fdb745955d9beeb18b65176a692e867db7759b8f5cf5a6bb9eeb23121275ad68d3d6a288db5f0b6b82db4d4755fd0c2a5043c54805cc16aef8ebd9035c06185075cb06c908ebdc4a8818c71a3efdc9a80dd3158a0427d12dd31627002fd183a482ff2220302314e2d8891001d23c9a56b6f080952481a445ec81569c3f7d9d39ed75a9ad50b0e516bb527d841e5060c2a32bb632f2a3ab60e6c151a27a87020c36041050a83e5b4f38b0aaa8ffb5ff8bca0c18d22646c90d1a2a4c1d0b5195262d840ecaecc3c6c1f360c163f6c1db6c6ea61cbec116cd57ee192c28b1b68a0007fc7a19c6a3f21645fbf24fbfa27dddea75f729f7a18c03ef6279dba8060f63570873d6a2c169583d244cea9d3b221ed1a4c25552d64554bb12cd3348ff1a46bac4aaadfef8f368673320125b1396c4c25e18005a3c56839ae0551e1d0cd748c71ce4ac899e21230c7ce8fbfd36e0b1de367d1f16f704771572beeacb5b8bbf75edc7d966559863b8c31c61877df699b2dd45436f57261964a9ea64b19d3317e4d8ba00cc69d4a2762add5f16b58fb84b0bdf625db3d6575abdd4a87898ca08addefeee6b3cf423e33916559863f15d809b8a78e80ecb36fbbaa7bb2245ec7e3a9466a4390886d37e288d0e39d2c491db7ed9c54591662a54ff8b1fff99312187eec83fea41b5153499fa9926a48484b981e717a6ce741a89e19cfab92382df09e2c49ad22a0a8c0ec887e151e4e47977884c048a4fa1d6de211021ba9cf01021bb176a3ed8ee6fcfe8e06adb03def999129f1d0889c8ea723725ada849640dd533de20c3f23843ce849087910f8216f451240a093f3093d2e3b5241b80fdbfed89da00f79106acb9280be3e3ded48f5784e8c2509f9fa9c9625f97cd523c431f70f441cedab8f5d77665fb3ff10cfec3be2a9ea152466cfc3d1f3ea75ec4e8fabd7068cddd89d1ef3ec293efc159b3ac6ff09f183216647726847a8a510fc5a78eaf83f16d8590f794c079365a884920fa790d508040000090317000020140c8a44a2344d71200be4dc0114800a587c46686c3a164b2461418a032186a58c210418400c208400420c333366880066007e784c7517611974ba0c064e8745b0699d76e2c2b0c2ea0803e9e6deeefda1a58f0d765cb8903cc447173c08dd01220eaf3d0c5cc6c291f6b7a21bd7f8c7f793de9fe0aae1577e59f92a5229d76039567105a4f7eea692ce3dcd7fa4f12e6118363967693a6c4a104cf2a48a748c509e2a24f5a763277b8b6498f254413636b6dbd4595d9b2d47297f66756148c1403f66a11e18c72527e24dc43a8f030344b8ff339ebdea20d9266d1a0642008052be7594676899802833716cfe872a99182eb06ace18f829fbf89d812ea492c3f632f56f6b63ee5bfc2bf7da62f7391f3f687a371c21730da127fad2ff0d82dea74ceb320602817bd79fbe4af14dd098a83f406d47e1079f4b073fb074c490e0277c33d98a1d31c110a10af79dd3bac2d241b2101777c79e50328174f6bd08dd4d80d46abfa3df9e1340fe10781877aa0f3c49bb624eff3d43239e3ee0a44e569608c655167f2b2b9a0e5cc82c0a092c0342042c8f6e14329c12503076a831479d63b3a7bfb1b881fc14452d1480a2b663115661e9978f45d787c55085412e03fb8cd3b9870011234813741593fdfd8c98211d0c47204fc054353e40efef49de2afebbca41ae865e573f9907a4fd3c56b232c8befffb4a454a137378cee77a5c951d048271f26127039ad48323ef11109a7ca3e8be9b53e944fdd3978dd7bcb0368a459a39cbe905fc7e37d94a1adca4d89335dff697eea2ea6d1f8e456b3be3b1231819f60637458d3b893fee81beb9672fdc46b2eb2874b7c34fbfcfa2bf0cfd8b9e830618ba1cffc3c4135b6d6024b3c0a078cf2a5e16528aab0db240c46d5984db4fca7e4c70443302ef0fca7e59a28c11eab3f48ef826d9c17a0f9083b91881865675b05a61f95f2d9a00546e7aeb590775d730e5ccbdea7ccea9aff53f8e1671c42afac87e2e5f50e152266f4f60511714a573103704cd29aa2ab693e6119e67a0a2f7bf75e313b45171936d9af940ceb81c0b942f98e3a7b15c45433653701a89491205179f5c7f882231f1398091b7fc78ce3d234160a2ce4db6c950b65c0dd89ee99a192200cd0263032220c71fc0b077e11f6f7d510ce3be949e8a7d6069abe067d30bc2ee4c6f5780534e6f580fbd5fc70abce02346fe7c4a6c083a17994e434ca0cae53256e372bdeed4cd7d6dbbdeaf6355414099deb10669d24437f493b2a6918f03e36f03941449b6613bb153603d365e43807a8fc58290c5b541b0b3839409d0dbd2a429e9f305308de5fe8c0ffbd486f9ff75738012c27464a4375b053ad3396256fb0d13701ce0ca2bd008e743bd0517d01b8051e74f83a6e2ae968dc163b19761d529442ed5933b56e5c390fc58967e70ab3c6e4ffdb1e47ef477c3c48fd5be538377d93af0768c8f02b1a5bea9ee76269e14650b2c835a1770e617b33ae64220ebc3521b75de02721168dc7e08bc313543dd55b549f543cae63c3e873d8611a6bb74103e93f3645d9e1abc554fd6930360653e1169d0657db418b460fd4dee8dd7faaf2e5c4206ac9afbd1558847573eeea7d54dd5f3be92bf564588b013d060a8fa2527bc2bac8c17e837ee9dc097c2918172ff76404726a0942397cc53f3651856f04835a0a99a47aa905d44d34f799e6ffc4ba0377f7dbe751b72dcb9a108528f6541a08fda1cb35d912720d22d982728d2f2c980a8fe52a084535b2e71b73232b742aa1a191f7c9e07dbd6671c7a20ad3a0fc8d814b4f9c198ebc294230f429d0a9f44ab265794aeb5184bb453d4819b2d2810bbfb88021e0de71fafa320c917dbfc0b819e04399e0405f23af188266322f43ed0f22b6d1d923cbd74eb71fb48ba7d6118a4ff71c847586a10f48ef6f7dd9a9c0e9af3967c4ccd305fe0c0223f1699537d52a24ce6cd18f0aa8422f2ea3743a17ec515dab3ae9de757bab92a8b496b33fae0651616a60ae912f2ff1e6df0b6c99db3ef4b5841946f2dd612e8f9c8d8f6849b39a8ce9443f1a55903a095e2f28dee8b5c3606885ecee1f6b42cddb1aa00579c24908cd6c667d697d1fd4a4007a7bd2fa778af1cbf4ab493ecb1f8c254426f47f4043722fa8c16dd3dadfb009b9e9688ad6b8ea972e7d5b8ac5a60d15e9e009aca3a1903c05731516d919575e8abd84d0d9463e590ce924bbca6368558b93fd20e1192824c857eaf925e3b349d725b124c9d4cade25100029b9b438a1bb8d43c4afc2454b3c7fcf3a89f38c7596a4817496b7bf4d99033daf7f4452e8a2bb53a25adbe59fd55fe47d870af403416cab3d8a3f06e15aa93f678fceba63ed0b724a5fa70fff5a80be8eb498a869d549f4c1ea979e44f6a1810651feb7f5990321bcbc446e21aa586029d8d57117d474d9c83585d0470351964f1d0d91abeb817a2d0c97e92b404d73626cc77761ea8634f181f9b20e32fde107bc6d7b33f1b9cc8ed02e7394702173fe5916a75632a3c14c160a21707c003e98196897ec71167111567aa9999137840d401d09c80f0e0872550465a4b548c689f18772175e4363795207c7371f86ba23d342f1ce4d681c948a92a62034cf92699189d9151b2a6067bc5475d8d938bfd0ce07f170db5127dcda20d730c645d3861fcc067c8c513135cdc821f99c5bdf812ccd21364a6a7422fcc981f8ee96d3be5e02101d3b437e965fd66d63870d4b71b6e85c8e44c92d2016661fe54d6e32ab1c9ef72311b1904e49b45c779f2d37aba242bb79f589f9f6011f22e891bdf7f886a2b90e07349b8b115b03c64ddd13bf3a6766a717d48b688935ad664919b1a948b567b58bbdc161cae50ec9248e5f5c793580e60fbfc70329fa34db4d49c21b66558c3ac5e281350ed56043e49b93888cdf0d2b312bc01d5a01bfd6d1a7336ef9044ded1738842cf3405b44a6efff49520f2d2fecb6849435a755bd061bcf976879b5d6f556429a5650280d9d762289ec6286f43fc0d24742305bf2ac854790790e8870bee3d2808435988962b43c7fe54c083823df9d2ea077a2d021afee0db8e4e6dc7bc325c5fedc19d48452ba3792418c6fd2a9062d4cd174005d84f293d9c853be7b7cadef9d527428b93a5b1f1fedc128f8a93ced5687a78548de2a885e38a6abe516720aa7cbb7452364de0292ab789876667f8ae0fecb1d696e52991bb42fba12b9e3be5b54f1be5e5f844329c31c206f7a0c633067fb8783367b113a833f2f1e9e94349aada59421d23348b563e8791d998ec19bceb951a855b6e88f75830eb71f94cfeaecec423a2467dc21a1d767a7ea5a59698f5a42f8ae5cab2daf935b6a4bbc760690519eb5bce8a2ec36dea388cd425a09714cd808d3a4708e1a1a6c626cf6902e62c15dae0177550564ff2786dde4621c1e343c966a7889536766d617f081fa397f67a184a3a52cc8427167e9e3d074145b10bbe0874b069b115ac2c074389201140ac706c2bbefcb66867177c1a3587cb55ea86a084c7279388f002f2e8dd698980bec00d4106dadb44b3d0d0611635d88e6b11353b9a9953509a654d012847358d51854237fd9725cd76b78fda0344b4d9225e0ec40bab7fcdab967a2431b88b51df646d2966800f21a0c104d607335152650c9083249d3f5dc3ad0a5fbc0d51882f609a274ead3593e04331da394c611be0e750c5504ba21710787f62969e8a0260f2bd50c45c16d132dd1142181423037916e5400c06686ecf770f61cb2be779a9505db69f2bb275376e35ccb91dd61a01b8731b61e0234ea86289e6aafaf237e41aa576cbea7f7df68a74b5b224d3a7a8187b8eeddb294e8a079f6f8a7bccf7a1efb6d2bc6af1177e1bbe60050651a236f49aed685d3bf53272cd32266653777ff1026e48931bfe37c3ca1422936f995aa9b3a5cf0ca3190efbd5738d9d360abd6b5a5fe53e8f1b7a5a71b708bc0f37364d814c114c374feb60dc3795516309dcc2252cfa16ff2635b52416b0e4e286ffba51baf0cc7a6ffba642d53fe1f67cb809ae5abe97de3b059e56336498ec40540328ebb65932c6089cde3cb3075305e4e7f405cf232b911d2efbc1aa3d3f52fede1d5e49e3f923caecde153596fff93a8dd666f9d3fbb7a6e6bd359466d7ff267953ed4af8048f4032d120244866b337d341a14d817d2e44f63bd01409d988344e94d101c2199d1cf950ede2c1ea4ff5603f0d84d2d4c0dab18ed2a0dbbc1ffd4a2f82ce258dd6c6454e2a2354f9884500ac6aff962d6a2591aee8ed29790225af68443b4ccc7fff9e384b20f671e8b699f542150c7b6680e2100283461c580fb45315d6a057d195ea7c479eb9483a7db8bcf2079f4c1c9889e9a5c71050537b58b71c1c9ba7d327a7f534b51e612ffc67a146b4f1a8f88aac7ddec41944ba5ccbf978951c472a967c7f0749c4a6dd6957c5dbad9934d5de4ffeb20a87dd0ad74fad619aed8819d0bf68faa9c87720bd86aa89e5a882642e435f9064f0cae61486ae438b7dea7703aa764f4283c70dd86dbeaa7584607acc91c9311e1e30147b931c8099e60b6797d309bc018af10410228cfd7487807af51a6b33a0ddf3c2f50a7d5fd4f09e8026ba13d147baa7b2c5d8ceac4233df0704000156718d3526d9300fa83a8b1ebe298f2ea8dcbe636079a9423c2faf09f8137b9a4648b3a8a904516945840ff05fb52f84585a2ac1f6d7f2978c6333e20d5a13ae184204fef2740a500ca209a105236f362804f7c00a725c617b2a1a8b02f436c56db60d5623de98d30c01375fc47beb6cc2e6e40c757413d74673335656b01e3af3b4317fadcd21b2d96ae9c3d970af339c9871e4d4aaaebfeba0553c04f654ee6130472f12f44d3628edc693e1686ed2be8c403fff052ee2486e3f1fcdf77453aa6d039487f62d51173f4ece69fd1cdd99b9373687afb9be748dc290b887eddc54e6ad6a538485626e5ae8488cca3ffa0eab91a0e460971948146df6ffb6193c9ab16b7b74a1ce65f69e988bb0127bf84ff640c6bd6969cdc13ad0bb847a6854c4ef95a7aafde4771d856c99cec2e56b62d8ff1277985ca855729efcf9806b373937955fc4d1c067915ab6a95894e65327991cd5160f27110fd348b6ec9117e1b4a9854836ae1b68568ecf37a50f3d964dfc28a4ff2625b5803fc256ede106a6d277a0bc02394d6bba50003475efd1d0f9719e85a8c794a6ef9b7fb8f2ab20fc82a2c4a315a611cdec9d9445829417df117548a1a0d7ce53c4167373f95f1071dddfb1144265a19cdaa558d9f453c144957e050b81b2ac1c0dd7438c94324c49ea0e084446a4a338e0e6b23069276adbee6ee4169f2a2fcaa53b557160956ff4dfa51b87575428b0d26630813e40114743771b551230feb9ee8efa2d33f92a7523cb6f97e110662c9f7fb5dd324a7a43201557bb88ccb8eb50cbb6228a0bb1633d55bb46c7847d028bf57a2044fe4c009c3bd92e8667d81f8e8a87276b5d387aae601eb801136d874031618fbe1d80d05e62846cbfd1d721aa0b9d09fba64462842887917915b9455a7d16dd3a04b846a538b04129099c4cba969b0b3aad283e3366338a710e7b29011ae1b453db6492f8cff5120fc0bb565941529c6b3e9025d73c0f09e73c426c09dc8cea5b540c409ad1d8e14e0faf0985333c4e37977fae3c8c16c3d28772c5b8e8cc9b1523b0ec6f816d6402d7aa0114591d2e0d15016677c8f92dbdc4bca277a3ea5a4d8df9b53d5cc86561c58943a035b8c0f048add10b8d0493204d44e147905203e8d44e1a05e205d795c7862a0f51413b0ef0214db83c2a0ebca44e089e3ade0500e6d73739e4e14062099bf7ab38452735ba1739344501c9739b3fd58d25cec5b93a54d904be303f4b4b5ce282dca203a8225d468d38aaf89b2e6aebcca2270949b35ecf07a12d8d95b0f6ed5ca877db5b311ad46b92d43e187efdd0157faada38dc9e360f70f6060b793a0dee2d81e6b6cd6bec2278daa62f9a535b7cfc39a7dafdfe46dab0becc67f0fe0ef1f889bc7b17a5e2e684dfc95a31a281ff229f861052d0e9e0325bac72004ac8ed286e951b0749042b07db8a6defc38b84337192843af37d2d1bcddc3d367e6525ed387a311ff5e5e151292f84f631c1ecc4e49bd6cca8e05390684e19164d67a789ca7b4e3bb9ee33517b7ff9e42b24872525fe13bdc79a01a497d4eeeb9a6ee337e74418ed960c897834352bc4875399818baf66d90ca5a122d151686af6ea931f35ac7620485025deb7d151b3a739f04a9b1b25101d79fe8a1e828cd65b69930b4cbbfca73e89f36cd5a12a0dd106e0ba8084454aa1ffee3fb3ae3a31583beded2b5b82b6b7ff489a972b119acf1da27a66d1f9df1c22123a1eed3ed44bc8fdc534d26b8a3aaa8a9f5a053d21006d4c6ea8d1601ce32a633809e1b5cda4734e0842c82d3aacc5fd0fd0d124f048d3cef3a3d72d478936b92be78e9988068e4f2315e832053d077831048eff359fab889c527985e514faf6c79ed42a71a3be6e22b79ac79525ab88e85a290cf427821364aa9447718a90d8eefc67012a98f5623a39f6b31b3ad3442afa386017393b3511998ea1f95623e24871872d676526dfccb6ba56bfcfeda354feb26415f48913e9fa7c388c6f8e799250cf8962c78319ed8066b8d907f6d59f1dda4acce8979f633233b76fbe7f4a5d42a78c085a2ae079cd3b5a42160011a0e9f8b190691e2612101c074f0502f81b8a40eac124a00b0ddf11a4295094c3b0236c5d4a107f49944f3b4a6db816a202b563150b2b1d6a573bfe44880443b9b1a32483bb7c326495aa7f6055c32818afe03ea3a21daf5ccc935e4034d1fa78a955f076047a63f6860cb5c812898c31b323a0584dba3cf14856be23c072ec6f000793d04caea3d28f30358e933e6e62c7da4e5d2a629da62e61059f767c845e54380651ddf6d3cece02bdc3e49819bb30532bbc713dbd418b13117a0314768047b6a02827bb377a87fb0a5dd5c66ed089f3df6da871f05881c703abe5d42a1ee520166463a935dad2ecaf0dd924cf2f2b2bb39cbccfbaa2b6970ca5d8cfb8c25948c4f30cc86b7d6d7128d6a382b21f14d0fe44a9eb3e48b0b670734b83a6c4a75467dd8ce6323742440b6c85569c53d0aef4c006f55a116e942adca2651823e450d40b7124c10e31e35ba8976e9639762c8e2e4e5cadf8225e3500688632876daeec15c7665c65f01c3e09d9395b05498553511f150650c0a8f04d68a2c26cff801e46c086b30d69dc36642f85313b08cd90f3c3d749f75fd7c202da1f12a22cdd4f58f7e866b4ffa42a6a00f5d05e4aa96bfd7329dacf96fcc1a49c95372da01f5db47fb6144d925f4d21e6cfc65edab3bec425d56b519208b9785953d2bed646df8d6790a4b3a218a94bfbf7e24cc6e6ac852dad15c120f6cd208f22d54d76e0946ec15611daec42d3031685b778ecd140f1d4807f7b8e2f81334da96c649c69efb05a05dba113372d5f78378ac0565f4e34af36616379d223df8958088a67d46c8c22623480967e92edd940d14a89b91ababcee412c22caec5c0d9a2097fbcd3596ed1f7838ac5ae65ab57d0fe248f5d2a0f0a7c3957b481c85e46016354597c306025fcaad52aaed53205abcfbfc5389141fc76a0808d10a114d1c1de08960388c1129cff6c58dbc6c1a94c743e0a13b79cdcff51bd6012506a592336d4716cee31b8caefd571adc151acdb80d3c5a75c5560c89a2332cd56af8cab921149ec3d4ac2c6d038c9f6840e00137596898eccca9600f0072895c32a696f2ca9b655f5dcc19ccf101b74ca5a5d06451a14b6205970d1620212da47cb9f0480c8d06351141da3f868d229dd4c2c07aed94404fe4d305ea770fedb8501a84e63252d58b6b0330c2fe1e46ec41c39420ad03ea51ec45e661d2b0d76087c1b1ea11318ae2b19961d97230bae12f9c7a18af21c8686cfdc5cc752450ffa6ba2d99758d8e287efbf6db887cd48771807072206752404216a30462dfbca50f93cf953508c4a8878adff66102738ecb1af73dcc2e9a495543c187c154a3460080c05ae55ad3d8d0c3c097fc09f0a91181f0b363cbc334bdc443aa9de84d34f2f255d31fc6a68d8e1be52093b44e3092ff30f9ff66323a331578a9ad1c6678f7833a1a143bd9641ebc797655841c2943edfceb67021a78d2d64b33f8f9308f2360e7ae5b47dc39e7a15d0c83919a196066b90aceb141d06847bca0557351860225a26d339d957bc49c8006935a15d64e64db9be1889770517d341146663677e48881f461b02e32ef54c4783a0ec95f0d10478a5db4ed99fb91c5721d6c8fd71847a9fda44d55e8132366d6fa5bfe06409e5b6796843d7b4a00b4a784a13d5969206c9eb3d1f8d31056f054582a6f0d9be70021145ae5d08be90e1e78e20041c8f039778d5b3ae5c6521dcfe1665bc9995c8c2e77655e2ab38a765b66313b265b4a10bd800a8a4bb154a9bfdbcf7e75a1818e8f26095c1a11e9343b1941da0e9c3e6882c0394c6481fc17020a2880e021c8f11cae94c0c069a408a713421c93d6384820e42479ca71a40b280efc4b8a1d41b99acf55fdd4c8d226b67941fd66a721738bbd574e8bb2f71fd17a4cf37c31b2e79bb6c170ebe4289ceef7fbec9342e58885f41b0b6e242669c9707e7b7e424d9cac11453cbb4bd6735deb989cd5008e8e8d45e6f643f4ee8266333fc0df6fe9d3e892008e83ea2373f995262bcbbc27e1bb95eb91f0d7ab80ef875f80dedd4543241090bae8ba56d10597ac92173a1128ee43f1e6056ef25d49cedddd5697b2dd9378cd2ee17f07a7dd1226bcfda86cc9425f8c945e5d74d0976c5428804ba66873cb0d858af242ac8c0eba6462953849f70c18c5945a157350d960b9d2803f510d16695e4c15cf92b5680907244b0eb77c9336d0956e07bc41c590c027ad522a91cd4bf6701d76e30abba2a8f96305a98566abc5435dca5a16aadc489b3a3759a0532a350215440ec5cc1b744d16043246ca17f510abd4eefc14a086592fa44b282fb6a1fc3599e51d2b8c9d536b322ee95d81c6d074db8872a4b947dbfd137f199a51e6eef5f4ed90ba5532b95a7bc42633b510b8b901d957255819b6e483034c3c17cca4c7009bb0cffd70c62da1aba244b6e996aeb5feae0884c23833d3bce96c804f00430470352499c7098c4c300cbf019c9658f00ca23adad68d47dd7b2f6bc9abd1012b6532b58aaa23bea12b9f8a8aea983f37f7c71f7eff1d0b19bf61a6e022e7e7c34bca56e6f70aab26d7838788a733fdd438d21d155e9774d9ae21eabb864cbc6a1b1c37b8f4f45a0908dbcc440faa1561135fa6849de62ece2a8d24e357c9595f2665c79c243241c9638eb6d18bf5a1b0ce0bc37b250e736f210604965892473147f21ee4e00f800a1d24a816132edd6a8fda11eb1f1b4dbc7f95f330a15874e328cb7629f85e154cd808efdf4c3c8c5d563a4edba0571399ee3783e9835ef164faae986fed582036d85d96accdcb23b6eb8f5ad4a31e3570ce5401fe8b574cf134980ba19467fdcbe2087ae682bd42c6fd4e6b4fe325ff3221df3d77426d4797d03b87af249739165f1b7e9bd1e8c7320ec512e26117be6006ddaf5397e9364e185662a0ffdbb865c6099338338a4ac95636d1c793cd4b0e95b94c1ba7646066b10dbafa0ac28bf36edea55cbcafa552de83cbb49c45838d12ced73adb7a9916c1c253c3e6e26542bd15502d250a85f6a9f9fd9fddec7641e1fe9d057149b7c742488dcb0cbc1829bd68d148eb6451ab005ea6129bab1b2835956f2931facd654a27719232f3653cd3b601c6367206f7bf820de54a7ac26778fd005f66e0b0e0ddd9f65e870e1d992ab5b4f5f2823f5de64307306ef75c05af9d7f4167db904f69ed6499794882af5a1975841cde4402cd8e92aa98998120f3a4bca71773a4eed06fa195dbe10e1d95f78d0dbd72665ae911e101393595995c1823f695c682a7460eeae6c47c2ba85c2c9fd9695b32fa561384b42333c955f178d3c00f50ffaf39366b6f582d008e4781c2e99900d93e0398cc9e26ba01e5b87f3cb4c015a0a018068bdc7433cb6101be10956f17336166e6ff02d459530e1465d8ff13061852782cc9fe966e0313a5831ff191d48639047176273fdafac37b259873211bdbee6c56b2d408109ab066cd57d18b2eea0b1c3331c409a3c522e8874cc14ca69abe444b142508282001a8cb7959f8d9d8694541b25e2bd9092c6d7fe4a1bfa4d424679b536c4332619e4bdfb048d005d0c525e134be85bcf9a5a83c96bfce69ac0d67c44e90fc8c89a5447bcc08a69b78128c4347542a12a659289fbe5c18ed8c7731f4139e5012e8909760477cda9cd27a43b6512e7d0a76667c53176892062bb78b41c7cb0f353274de6c838319e81dd3b96bb02124bbc528702112a9f6c30e117eca70b33604c9ff1080c7fc0dc3086c902368f9cc26f1983f99351916e0d849bdc147db16770a36d43f12a71bc01a7910f6af0a1defaab565327476bbeda4da6d0d510522563d7daff289ad2fd479bfee1d9527a8b45df13734ee5766ea3f7948cd8b8bd29ac04640b6ea3a8849ed55db558dce01c28cf1d9995a4451063c6b8ad740556a62f1a572182ced5b6810bd1f78f52492f5fc547baa3815daf61267ac401c17e60c9a2c4e6347baeeb7b46adf633787cd72e9243ba7915d1e0a5698c03de52f04095a640f894579ba82f57b64e125880698e3065d947a06c98c810f5055a6b6818368d4f6e31c79fc20a74bdfa9404cb34b81009ff3ec061bcd39350af7b31d6ad31ceacb3f596959701e8da996ba8441a1cae893d88902a45ca6e32d59b4a8f92b7c5a5ec75efa2c37884bca705692b7dce05d3912e7e8ffaac479ab20055297cdcc7850c7344846d48d8bf602eca01dbbe584b7a1320c05cee29fe2031fafc1078b03b741dea78404baf229b16b50ec5666d73f9c1037ec7740d55fb78cb9d5a5a8bc3266fdf25609bd9427db0a74d51db3cdcbaec723c0746dadd25d78776f0b1b78d8fc4e10c5bb797344344a8894ee0398b2be0de20872e8ea82897b2f4dd27aa32ac2dd7ebd58c5b75c338fe48b61476d4152fa98093e7a72b5a3f310c93144ee91af439bcf391519c69b23b1c9a7621e9f0bc7f3a64d7fe768b8313c68deec25865e23e9c243f5949e49e3ad070d2b740a2d1b553ccb60245c4b2730f5ed232e2349a353f0701315d1b7c0d04f01f718c16ea8287c11e7818eb3b4958409cd261ff5a6e035a00dcb21c74974f0efee772a930b308bd0b715f65d708d6744711b6e4d33b6ff2e4ac4eed260f0fab11c58d4fef72b3eb7a90c2fd806b813136a3ae545020d67980271d98028b33a8021d2c19aa02441063fdb329bff03e4c1540f7cd805f5a739fbb5436eded1a7d4d5164b2c7950fb85f26ac95f3f02df06672bed334dfecd8a3dab7aaf8a86b3d924c4fca336236b1daf65cef58822f59a1e2239f7dad7935941329d00db854d408387e479cdbd91c8a1611416b9b7c4e4ebc3b586f6265a4577b937cfb149a2138df4b16c33ece82bcc56afa85097c99231b34c1b86e7010262b6f1ed3cfd122bf0e1d73ec481036ed60787be1bd34c54f841bb533caabb320bb3757948ec75242bb7d3889fc6bc31bc408bfae9d4db63640e5e6d6314160e70623420c12b78ceee0f12947964983f6f2c84582d9a416192f9d246d6e4922b5136cbfcb20f8277e2921d16185c20243ade0748ba2515c759ecf96431b5da927d2a480820d46b49489058c3d104c7b12c79de8e06ba3df6d51f05c306cde7dd19f2e54892cb4dcdaf44954eb1e385f874215833f7a07b90d8c8dde991ebefe609f6c4ce7787886ba30f3760805f49a0298dcaecac8325b670e0771aa04c675bc9bb0a4e20ccdd0d45c392b3d88b4fe703ef6ea6091f693f29f626d6df2a39afe771a2c7ad9fe41f421d683fc8bca17c5c9f59f06d1df3c16c1d9bc17b2c0fa764295525453895b8d0f803993b71b289474231007ffca825041b21a8a131b697b19e1f650a7be264138f8462007e72764b8b36425043636c2f637d3fca14f6c4c9261e09c500fcd0fd96166d848086ded85ec2bab71f180b45a78a6c449111581f0454230a438c78908453fb532d36de7fca802050475143386a3fbb7a8e2b2a54fcb2d9cfe0e7bf9e93d10c32fc9a8a6bcb13666227bf53a22b013248010fe43a2d1e9ad8930434aa6d1e01c87f4702ec3e8a0aad33fa7f1b0c17ee77a845db4773cfda7538ff825a82094ceb8325b4b6163670cd34a81990ebe6dc609f09ec6ff0a71d70f21983970292c8d7dbcbb8d447fa47d02895eb26103bea161a9063620113dd5085f6ae10cb0de67021f5bdb528215283da429f4f79bd7a7e37af30f998b4a0c989900a6f2b91342a06cd2f8c0cf312df37ad8171e8334ee1d3c2c3b00c90dba4dd1077c798fa9870fd548da46cbe119e0b70bd06301ff1b930fd4b8161978e5bcafd696cf4aba1aa7d6029bcf95e1e05e26de86f38ea332cea8e2beb4e5eae79836c5da18e89bdcd45db1ac20994e19ef5e661b40f0aa10b5d9c205d41f0f2870bb126a6c5c17a91a1e3f7ae1ea9aca1651620244eb44061f9ae98976979d414ae1014d880713b9d776e8844af7a1965eab7cba8323e24db32fb00205a7af1c271e15adfde3ef9034bbeefba7f506da9819a6aa0aad9c5aa4cc58ea12f2559ff025de09d0ac0089d0bb2a06c53bc1d718e5f334e3abf188077ad5eaf25f77eba8f583c1a1b9ce00f8f8a13971d917d49ad8155fdde9dbcc9517dd07c9f20c6cc17ce692f97029be8656740689f692d7d3a35b0788b90885217250a4d1785d0ed2095a12f7e3d74015cc65758006e07a90ad4572b936ae059c4017aa47f9905da9cb0eab044db500db41e3e3ea8db6290293c8ca7735cd92f59e860a68c64ef67c947bf71abdd8bf9a1e1b48b85ba704d5717ca64d785fad885501d853c58af13fbcb42dc063e600b42b91c5cc31116a702015b87850a2c878e55e90276aab1309013bcf65200fd4822ece05351e982e48a81be04fac5b02737fcb3509db9a7de645fabaa09ca29d68648f1073287b8ca5b1dc138706f117ff08d924331fc1764b319470ce5bf32b3a6399733f54b4bc38cc15c421b423ef86c08f74bee89b402107b757766b99c01bdd4581fe3731e80a25ba2fb4672fc56ea5e81778626b8613c5e5bc694883d036e1f9ce8b6514c2a499fed0da00dd828c67527298371dc1b400b30a318eb4e528632bb06c6c45857a2db8cd470a306bad23df12da3c996372d17457cc6183ef93de3c764109b3aee410a0a5bfbaec4811082900c6243dc8cb81e6886c7d7a3a61add8d22e5390339ea1bff0272ae8e2278088398826310fedf43b3d18e0551f80b20e72212acc32e8a8b5f4010211c5d4c4ae1a25e446c17411cb688d4663ecb7f298290335a4e4510871713d99e7bd65b0c28a89f2e71c2fe86f3791ac2be9568d553a46704e4d19b9559c1e20c11401b159340d074ffba0a80c6fe638c02311a8f17f83d52b18a624217bf073cc6e44e817a40d0b72b065a32e1ada7c0b59b0e04fea31d02889b04c16d285e95c0f4703c7570589d34f538d4dee7c86727028b15a3a8dde4ead84cbd444ba419f5ecfb4758f234bad01649daec680885dcd2bd040f85fb7e0b3a60dd07563fbdc864f9121c135dce0fb1f4e91a7e93cca4f15238ad4124298b1982c6921b51caada960bb7f13125ade7b7b42d7cca608fb9d9c61debfdb27225be634d5cca608fb9ddc013bce44862b48d86e6e8c59ef4c813a3e2a52a8b139372262ca7ddee3c5a1de5a2d2531713a91e8c8cd5b5906baf6fba4b71cef43a0e88f6d942783923a4d1e174fe200ea998d6f331e37ab3cab680a77cae3bc6435e771e56ba4c7cd14588f5b05ee596c1c25fcbcd890bbff69d0cbd32cc876af6cb2670c8ea6e6a37bdd21374141eeb9f9ebdd0bb21b89cb0af13fc690432ee0fb41f662854823c4cd7321b7011271525256d45af5140336d2c10c26a06095ee41fe41039b682d55c4e08c392d3b817ef82421a29c926672d5ed01633a50b19d28e746826cbdf5292780f18a98aeb5de8afc5589b61abdcedb7d67b8e5f6aef78dd3e6fe6940f166dd4e6c65b7e70693e29680a2cbf52fe6a1f2527ca244ff7731ac90d9468975936f48a737a730a10b4dc3246d6fbc7805cf5c11194a51a2e918625c10950aa34e27bb7f4e642b10896780e149f4094782a9831b56e22022b2fbf9993d0e060d9e69483409a369043b255ff37ee071b3b5a2c63f1731c8a0bf7a85f598121f7e2015a0b5b4053b9519e935a95125f3a1ebd5d14250a8e77a9d5918232c16a06bf29bfd6572009ce8f506c9a4837f888fcaf67a9b20a4625c2864e07a19a0a8f6e5fc103b5416412bd64f746e83c250f47e17318d45e7d74623dce52dc480fc0d9f61fee07d329efe359ff7f1c126d43660b902aef97da999482950be234e08e23b55326118e2212e72d6a65aab887a1a05518e9b8a2ff76b08ce2e5c1d8d2b8b1976e01db14e6ae67226a90e681681bed913ab40af26fc989106b2e0b9016317c465ae5c22652936ccbcbf80c93525e8b40ed202341354169512588e2ec7223aef162761185cc1ce7633149bc6a9846a0b402966ab01ca8568cd1b58ebb11d9faebd95257cf337a5520e7ac0efa7a7c12da7de5cf45e3eb06febd9d864a307ec361fd663bc2d8802c7200fb2d80b94fcde51f8121ce1114167964c45a0739640935c51eebbf0beb3bd71b535ba7389a4dee25df8c56e59b2528447251374aff21c54e193256a3016ae506b94830f2acec757d60f54873cf0e0c996a7b53b86c3652190f38ae89e7135880372dc349a0cf98a23ea66e028e2e6dee7d76ebca8e699403e4e2fc8b063765c70cc13718463e28cae287c9428cfec3181607492a391ad6b05badfb126d8a9702f2f267ced89405d4028230902e173eb8cd46c4d02aa9c8d4f5b805451491ba096e9b8e4e3aa35e2fc6f2ce9a40206d81324f04e651a8a5b8c1ed84af98a8aa12901a68ef258f5cda6bf2379c4524cf59f3a0bc07b7fc212a81f35f413bc2672548ee324550673c3d1b66e92486477f7d2965cb903e304d904ea04eead8d2fa78a4fdca34c3a7374b29faf148ab1c4afe063a36702b1986ddf8b90928fadc81b1f6389d141083536ba5c67bb2cb90eb623243ae414ba51207c6c77602c0e86e95328dd36621aaecebe291463c1589c0bf1e96323889130962a27d3c0b6d65a6b3a744a38383a6e6666c4acb87021adbcf8405a193518e524e9a4b6b56a71cd6dadb5d65af3b47fa51d393370d4ccccb8c9313323c61dc2d8da3f7708637bee10c638c1384d52ce49e5a4b4566b6fb5f7624c5115a6aa2a678fe7f36921adb13012122222c24213a1c13b81bf5677233aa37faba75745c115a5dafd4a51c2dbdb0e4f1a40b4d8fe1f2056b6bf754f776cfa203ab6bf8581c35a791d96c16dff975d60a7f846b1efd9c7cf193eefd47bbceb0cf473068b421f3ffd9bdf7596c2e989bbc2addaffd26fef00eaab07500d3def79fc396bab7a7f6a555f1f7fb62a1dc3575a3f36c06deaf17b34090f996a14ea2b8d02f2d4af0c5320df1e62191c0a10dd3e748aefcf370d413ac5b77dfc0fcf60ffa3fdca566c7feb308afa97c328eaa515d8d5578c02ce90ddaf4f357ca12ce3c0f6c7bbeaabf1a738c57abb9eeff5ddfd09d9dd43a23fbf084c43ddd84762b8ef700c59672a1e9d555fc21b3e61b13db6c4f3545575f54631359d81eeeaef9ec288b1e9fbc558045ff7f1531fbfba30e076de55a3b80c28fce9064adbf31e9da580a47a5d9cebe7ab7a7c55949e68461f07958dbf5e597dbfea358223bbdf2b5bb1abce56d8b73a539938e064c0c40f21211870db7dc0171faf5282f5d2b65a6477b75ae418dddddf6ae1ee5278a908f65be62206cc0b1733335eb870d9ee1fcebb71186fe22427e942aba5d5d6d88b4f2a5855fe5c35a98b4955ce55f6cc783ef8e4038269cebdc72b797cb8070979300f4611333536de4b69c76b79a41d39333370d4ccb8c9312386e4569c0be7d26adcfbcdc33144e76a88388cd32427add55e8ba98aaa72e5f9803cb01008c7f0011202122212c2c2080bd7220140004201104002aeab5d00c02721121c8347bb04f0f0bafcb96b520298d43f02cc28bddf5d859cc19197f60d0bac115823b046e001c2187f7c5b39f7b2d002667c26e435efca0d02fd7b4f8301f4ef73c3c7bf1bfe7a3c8ce7f2f8cf35ed0f8fc79fff669b63c601f3b9e0f6f09bebb1f95cbe6f6b2d7c7cbc7d5b6b012404207c2eb73faeb63d6e3cfa87107df5e76abbeeec2f80fc7b9190ebd1ed36d7713c931b6c7057d81e2e84c6000ce45d3d0cd53fc7c9ffbce6027dbea6ed017df51e7f411e18e401d2f98a1e0f8f50be20c8d59a01b2bf1f11ff78b6c7d55a0bd5057221f3e4b641210f72ad18ed8ffe216492d4fd9bdbbed86bfc8557b1bcd7b45df6fc2ce438971f31437d4604399b3831cb5b5df8ef0537fefb1485df831bd036a6f09c97ba3a73fe6e668e83237f007989415c7a3c0f28d44a29b542608580be1502ea4fafe906a3fda68f3fe2923338aa6eb4fb59df4b23528013e96e5addecd9f22d3bca77f8e46ea7ef880aaf2a499bf8ee087a8ca6905fdc9b04144002f36fcd3359802be1ae0814b2db90e4855e75380233555348da7ecd995b230bd908f90b21f742fe12aee1b817bb84bf006766e04cc38124c816f0d246717fed7d38e32fdc172e7aff326162442e9cd96fcee05c7d4990b3503667f6fbd0b5d9ef5fcbf408cec137a13b0e04b2b543cefc8614e134e1f55296fede73ff9cb5439ece3977c19188b503c9225920788bf4029e2b24e685e07f5c212f2e82ef7185c06c1c2fa09a1be40cba806a7266b96c08236406a806468c1945d868d9d9747111ed784e69446261bdb84d88410c104ed8365e150e96701b1ce213152351f7eeb15175aebe2be1f4f2d4faa6afaea9da15cb63a467523d0abbddcaeb749622a7ce09e93449ce866f63360bbbd190818b6dddb57ac828ee63dc1fa367e2517a264eff07e9994c1946f2d8f14c269d8f956702e7ff6c7921c862c36f93b4e15b2ed9c2170b09997a0b09399b301bbab7f14222352f04456ab416e05b3ac8eef30e9d0df39778b7e491f34cdce3cff28e0d3f5f22392f04ef67b7e491f342f02d1ce4094726b2e306087fe27830c78653c786dfde3c62c31d1bbef5e14585968feb8424cf908543979dc11724395788ec8110622d3c104a0fd60223f4783cf73df0f3106223acc5e3f912ef033d95cc2f3d3a739fab8bb1602c180bc602756810514323c68c5cb9af2af755ae2a99e5a7bc3dabf8f9eacaf2565171ab1795443a392b69a93cf053fda764a5fa4cf13fa0f7783e3257daf39fcfc7236d72f555a5b314ee453ba21dd14ef41be904ecee7e63a4e2530f63791445d1a75e4551ff1e367a588b0d5e3dea6124ea987297622c180bc6329a6c2083965db21b0d226e9ebb7b15637c7c453ba21d15155854c22fd2c1252dd5a5a8a874bf2a59c1f8e24a4ef12bcaf354a5a9afde13aae1fbfe15ed8876443b37404c7fd7df4daeb9d6dabbf60e1b612bed1dd6a23987adb4b85a3152bc0d5f121df2ac3a856eaa33953d5944f2548a0123868b21760ca1631f60371a43c0dc39958ca4942a2a4425914e490b55d9a29248a764654e9f958ce6cf9fae4a39cdff7466affd6ced7dcfb596d2d45a9d559d0237d52219bfd942c26c5a329a3e4b46b564f44235efd46d2cf5f3ab2b54533dfdacb310fd11121d52b80dcea8761b8afe08dcb2fe9d9e5a5d2b7c4a1dbe3bd18e6847b40373df5482215eecd06e3484280981b307b01b0d21668480d908d88d46103adb560f23b9fceef417dfc3481423bdd7a426e1018ee4eb9042f7fc0952121eb2d42974cbcf52a853c75830169fa3297ca6129812aa66c7b77ec4f61cdf212f7c39fcd455bdbddc4ffc1e97ffc7057f84be75fbacb536e53d3951d3fcf7229d69a99f1f1a3c3a9b94e7df343d1ae5fd7df953eaa9a262c596a2924847be2b69d919fe94e7f9155b3ed1e44a567686a7f5bcc3564a9df2f624610a944fa34cef79f9590ab7c94a461b876ab6d4d823b1e79d9c94ba2e85b6eebbc754be7c5169be48c7c1207f968ca49459cacb4a46db7dcdf8e4e3f9ea43a97c9c02b3500dec20f91ffc143e991ee5f3789af4ab39c9ff38986ddfd5a67da7494e2fa7ebc12fd2712ec89ff0357d099fa2d20bc97f39fe4c81d974f3e29f5467a21d0783cc59672910a6681db04699ec4b6975e664a8c6760f0576ef3616fdea65265f769c2f53e0767f3f0bd5d895761bf9f63f2e8fabd2573afeaceaecf8d495c26d443b0e86fbf645a5099fb025a35de3344d139d5ab4e35c9093aaf1d8c13612d6877d77f531476c05ec462388183b8815981c3b8816db6e8791b6ad178e565ae443675b7e3a62f19d9c7392f24d27ede443f750528d02310dd9632ccf3d8d029f9214a5b2b52a2a5640fad80ac55a6c940aef63236cc5c100ff612df46a94f715637130503fbd171f46da93fd0ca650ea7d7d32d4495bf561236c052361248ce4aa8f1ac55601f9c280db9e7f18c593c17dfdaac2657ffea32f4c79ec7baefcd485ff6d7c65959635a3de5afbf0ca54b85833c83006eaf1977078d55f61cd205b9dadd8f5db67291c67df4fa9b19b066054b83c1111bdc271465604e6c7af41fe34a3d4d38d836f7a7ef7991bb11b7ceeef4fa0761bb7b14eda7eda728ff25ef40861bc628c719aa6294a29a59c3264c89021235a32a80c2a83caa032a80c2a83caa0f16d7df1bde76e494490df9fe013ef84fb0908e18918633c314dd3349db0624e5831373739393131564cb6139f786858dcc7d77d4ab1862a46db7586bfd2eb8ebfd114daa08c95edef89d9e1fec6e8d8f73f6270c414b1fd3dd3e39be75dcf0fd0e7dbbc8fff7ef58b83abd4bfdeafae8c7e7b900b72ebc37b51948a51a58fad4a5b44e47b3f3fbd3215253c5e104a93f0902fc85f8d02f29546f9f84bf74da11b44c38ffbe1e179fc17f4f1d84b6ffd4befd7dbe6b49490fde18c111323e74a672a14fe129ee5d1a61e5ff92bea844544c63a4ba1293485c6f870f36894558c6ead5746e914ea57a662641131aa29b45a44e4149a32d2c048c568b76f3385be0dfee1282b5842583ba8019f4916aab1b314b853c01931d8888825d098c10b0d2066b0156cb404f7662bf724f0dc1d4208638c314ed3344d933401df56d610d3b535c43401dfd2b6dd0ff05928defb9f3c7fafb2df9b3cb4177a14bbcfe0c83ecb3e4afd39bfcef71cf86472fe0fe613e8714ef8c4f7841bd0767523e4e5f9fc39544fbdc456043c9fbf861a2aed372ef29f6fa9fdcb4271dffe89d56ed35a701b2c1879ea4cfe8b6d4bbaa3c68cd8fe2ba04a7d5086ac711c071dca92d134c109c2f8f4aa89fa4525914e11fbd5b824bd248cbbe825bff71c7e236be28b35d0c107b5c448729a9c76d63e6c6572ff3016e7c25b21ed391a593fc091f5438671b28825b07e04f5eec6854541ce3c47da481bcf91369e630269236d640e7923753c93491e21739e892d9574443aa2926847549236640d59236b481bb2e699c87734ca1acb058d54d314784e8d9511c904d9ed1cdfe125d7591991443b252bd27324ce33c9a4e78ca48d6772c91c9e236d443b229d292ae58876a6ce5c73aaa7ce70c89cf31cd1cee8f6601b0938724e24e71eecb45e647f7f7971992f2ed609320a7d992fcfa4ce19e3994c73c633997926b6460d1b135bc146188b9e2e5ec81fbe707926f05f3c13f9aec6f9c2eac17d8db55a2a80d33a41762ee00be82fdb615a360d18973d5d66cc33693460584020ae67d268c460c7f69f30a0cb7cc158aac6569c0b93c6462e2ec34165ba1f7152cfcfa08bb641786bf59051e4c73d498db13c93d718e97a44384d964b9e5a6b61e5e137f8cd8624870c515ade394863748e8da4f4a8121f1bc918e5c7489d94d24df81163c148f27293c5869383113e842c2c1fe4e9f5545dd8669b754eca7855a48c719a7416a50d8557dc353937e1eb5ee99c8b252327a5cf6cb75c6494f91145dcf35d672aef269239b56cbe3d5b0b2e2439e498c2712ce0387bd228d17544335f16c645fed5651d9636f75a3672c3560f321cc9a0f3c9e6994c121df2cb1c674fd7f1f9befda78db9016edd64bceccc0de2234b462090a824d21195443b25a3cf475412ede429bfa824dac9a29268a7f90b210ec4e92c05d6af6ee21095ac172e4035a21dd00dc80684533202e100e500e900d588765c9290849c4d92e772384035950e0e4fc88bbff0f1b0de17504dc865b170117c10fc59a5b3e1073838efb9532782a54354b27890b3146e1383929197ac83d7f4efc1375dd8c8dd79909fb66080911c6c816d0bc8d04af9131bad505febd52ff189842c5ec85ddac7f73de11337c62956f9e389558e3146fbb93cd5e7ea3d5567a38f8d5cadae5278848c9120c6e2eac74a83dd35d66bdabee399541eeefb11cfe47ec5276e556f8d6dc2dda6236cf7d2b733a15e6f3b13dcf61c7fc1712c2364f75986efe935e5e546602c313bfb02039c975d80dd68c0a054831cb72eb35f4dd3cc574a3cb10c754bf9f5adc427dc8e17f2f752fb38b53dc12b2bb9f6ca2fe43e453b25a37a4da7ef4d2e19bd908a6867ea6c9a1f1aac65842cdf4327da79130e2ccbb22ccbb22ccbb22ccbb22ccbb22ccbb22ccbb2ac6a655a45c8094218a14387eed0e183eed00b0061c8f59423a8fcddeadc912dbd7826ee458b1a23a1a0b5f0fee77ce1829c4114a0a031a06d480222bbf6a2e0b8faf6d699b086902bcac66cafd5da28489b17e4cca3b0fd6d64f4283c67c2d6e744b0113bfcf7d47c7c5943c82646483c90e1bb8491339e89933164cc8e7f77b4f55e168c6c3f731b152ffbcd377dbd54f6bb528876423136e2e3cb6dae2867bc07b6fd08c907f268b63c93f62bb0a5c5cc268b0d47a32773489bd6c210f2640144cee0e841e87ebe70427bd77c986dbe926d24dc9d75051986dc644ddf260f27ffc96f3bfe73ced1cb417dd3017be33a1c6708f9664affb98dfc13f9d33f9396b98eddda0c72606cec6b371a302f5b974cd60b64b41eedfdab61e4fb36bbd68ff455769510ca9c37856a93b8485ee8592cc819096f814342e49d88f0ba32c859c8ba42ce42a13973161109853674be834fd771d66c58037a0c44a592119ca143c6e65930f078c57f2630fa0823c115db9e1dc9e107eee57821bf79a1676323bfb78e73f01b8b4f5a0bc1778b25e036bf7dcf91e385b45b6bf5c09b8624fb3542126c71b7f49d862d1a925ec8b91137408750786fdf8d1b379ec7c440086fc418e3cd8d75e3c68d1b376e5837ac1b376edcb871a379737f93084674e480446b6d45fa5c7926e0a8befc1ca81581faf26ba8191cd54033f8dc83cfa73bcc133e81306670e4469cc43dbd8d175e270d981e253efce9fd9cde5218ff647a505b33b9c483a39117849c41185610b2942e822af1c91cd0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0bc36e733b16c90dd99d0b16fc8b19f8947cde4cc733ce7859e25840ca7e7e4b8085b6cf7961072e6393f4c3f8167627a676770b0b0e386939393e71cb6a6e21c056840037f5b59333cdc9cefde93c9443cf198261224a288489480cc7982f0e4edd0c9893b796fa9a4d3eb818c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c0c0948bdb5301bc954b86ca8b3fa387fbd2c956bd52a9b7a98a5701c8ac207c1bfb57e08fc0b1f043f3bf594ce40400f1f7e3cd499c7473cc3ad4f7d7dec79a8b314d4d793fad86a88ebb77740f5f94bbc07548d3fc2afd7e7f3d47b3cdaca0fbf5af9ed53efb9acac63a86fdf7e7dcfdb6a7faad47f34090f99d234545f354af559a38450d5631df2eda16314211a44a7f8063df555674dc3fbd47d08ba0f2fb46f2bac19e2b75f2f7ccae2ac330a56ca615642869e5fc8eb53fa948fe0773886d75916a9d99fcff75b89f7c93963ab51e857aa5b8967e1370c6b7d4851d4e5389baa7efa96bca8640e5576b5653533010005d315002030140e878342612049f23c8d761f14800f848c4a68481c49435a10a5280621490831001002646000606430da1000d17001ed439d17837db30ee2819583fe07cb7f626f1f207e866b2bb8ae9dfa2dd8fc7f4f9996ef0e27fa0899af6cf7fdf29d23f62a2d4e13860068982ceb5df90f5c9005be805ac2950dd61a5bcff50707bdee3e1867d49c010ef3192d230e758bae3f7a17c1e86fd0ebc70fe4ba82667ebfd5423303e846934fbffd28082e21321ee607dd3e0e4a97cd63c400cbd2cf6a4c703b747fbf2b1f7be00ad7df9cefef079e690e38ad1ecf5d58e2d785856e0f49424cd2d35fe81944c9910d506d4c004c102ba1593001f3e3b88ec1167ba555ec56011c7afd4c280118983b29f1687cccde69f6dcb3316e3c3b11b0de6fbc191b036880f9b45a9f38355e28217013f2b351bd9dbac0e006b7bf62046593a27aa42512ed78b7e011145b3cf2631f1d9b58758ba7adce4f9786259c751efc451505af31688ce1112226b446870e1e2976b7ffd8a5429cb308ea7f56c623ca7e49f205a6ab63f1a03c4109db3bf8a29d7fec5c3fa439823963fa69cf0f4aa79e12bf7d97b7d04a374058862f1dca243f13fdcf81709486afae3f7c2408849e075c7eea0c844ca36e73dbf3958394c722016acb25b4bc61724eea790abaf8322116ca62fdb243b68954108a70c8e1d0609e8e80c929f335898811d1b6a72e3c48fac28753de9a4997011f6b18c36d5cea65c6dfd70ac3ed901e3dc14c7cde036d0c95d22f1aed86d38a56a7e91ec8455f961c8bfaa3e040ef328ee991e8e5a023c1f8bf69d47acb4ea5249722839bec61b0e18c227a09ed5393ee63cef5345a0d7515bb0220f82c36fdb0f6a02b1e516d08ff57965efcf34fd6f50b74c7ed1242bce9418956626e68fd288d62ead94f0b663152916ac1200f3da466e65969a63847e019534be8c22d1c17b0575127b8a9fa06b7a7d4239d1f80210a20e4fa03826d7c7ab319c1ff225856c087d9e91ca3478fa10f8e29448089c62d7a55fbd63fc9712d4e7e6ff86acff03a1850ba6b776746fe0c8511836478d60e0dc00c9c6321c090fd96adbce8cd90c8290df048aa717a933274310e1bb0f98ccd8aac29e0d121c13ac738acd61016d91e06605a0afbc67220382c06e3fd332dfcbde40d6655ddc3e2f806a74931f190053613053dc280f369964f021ee6ea827c27ae22269be7ed7f734f6d18502380a8ebf77cc2b339916a07b1d9fe2b26ddb3a4fe241a96aeb2a07f17f556f732287ed584c5f2f86ee92adb2cbace27d6a0febbc201066b35ed25e273b090d81ef46d3cb40beb5b17580962cc43335677077e3527a889fd57f89795127c8513a82c3878a6d618d655a5d491e217101b031b89b268f08c024f8d82a2e778a6dedb4242aee934ea78dff485fb0d11467c2cb03cb2c99028b09a9ac9b4657eeb49c3b8e40d313a9b7404f7246c097b2f7407331ae52a28a7d4eed9f6f858359e66fdd34d4338ed8560f91200c762a7cc9b2e83f6d364ed9f71550fa21b26a3a65267a60fb106e5cb66f01c370c541c9ee3db481982aae2a5685812d9bdbd18cc61fd5fef42aaaf081bc48a2de57b683f9c5bceb583be9d7f64abb673ae4cbce05d396b2b95e4b82b61b12d388fda937f49cae89017b2c405ddeaed1efba2617ae846eb926a4bb1474de6780407dfae4edb82da3539dc98a11c4abe5842c4422dfe4d9a18b1af7ffe48c0fdd53ff51ede1cab83e02f3afcd9a9eafd46871d1c68a97f6981de2f9897124766d07ebd3032aea83e3551b99aac86c86914b298624f1e985b56cbb010d3e184140fb1b880f2c2f24db61bc6103eb9829f443993430e996c0d6b8f3b08b79ac2c8ca913ac866e808b23abf0c01e8c01faa30a00c4d268dfbe8a8636ff4818dab99a0a9e85ab5b79a302d6f91a471dc17835c8273ae255433a857305dbfa5e1b2eb19a0b6a7f26dc854a49fa9f2310721d1eedf7d7db811f0ec85bcc3c54812a843df7cde87955c56bb2bc3e604667048871073d96f3300fb15870274f7dfd4383df7ca210fecec0729539811ec2ce1968cca89a1610c3f2ca18f8e3de648bde98bac2ff64814d41477f3f2ba79ff404fed6ac55cd06491e8e73c996a7fe1faf116dbc268296ee0e46b1324127c3e8573863e41fc9a055bb69e8f44fc54a7e783da432be880cbbfc3baa2eee9a2155e76df8c2282e1fba8a8d1310241aa4b656798079b48154db765aba2e4b05a1aef3cd742375f32b03ac09f2e206363245184e23c9bfbc42818158ec91b42bb2fa2d6a7475df4ce1f37269cd3ad102183db802f587db1ad043293188727e2ee53073ef1ccc9ca585d071289bc01996f8e8f5f191a4bf7220105ade26ae85c0c1942bc4b7eff793dcea8c47c39bfc2967c49bdf956278352f433cefd620b40525f9e3d2c6c04f53489a01714045f33b6cbc6e8214e5dce58023f6e835c41c3148c3ba232907d0687f5120df0f401eff790585fcf99baa22b95c9d84d1eafcb7a07ad02fee61c08cc3adac08059c7ce70ea224810f1319a8a366799aee756bed6856ea6270cb228e31cd2e64fcc10e610a22dc51b10e91888fea8a73c6956eed28640404b4d0462028d83e7b574158c7e39268e30433f6fd7024c7ff81efa0967246eada81706c200a632487f9c29c2d6543e45c093134587cf8093b1dcd7329b7a7940d02079881f5447284654234981c3af7752075b7ed590a854ac6041ba986bf3ae8c4e46f95b705317b51b57d0a273eea013c590b910784426c67e6e7bc693858d2326ae242bcf0991930a0ab5f35519ba2660b5c067e192dd398bf2e1a1f4b92e12c87260a132f10307e884118547167e28b008ae2a62497097b0b5499bf34d2adc7081655179a12c6a75af8ee7aa150e4f067c0a9080babadbb404438229347176b7e22d5b25af63cf472e079373b3ce0a78cc82b8ef7003c660d372fd9b3e210b53e638c3fcfda62dc2541796636e761df1b9359936c28b9b526009e64c4a28e8a483587b92feb5fd870588e3d8cd38006075ff98941635087926a65a30ebcf85039140c33bf98ef7c32c186fb066acc3bbf26f9831e5d6de3f7f590ea0c1e81bbe40ae5cba5dd8015daa1a1df88b8c1d22523df5e30a724289ed37db5fe56f1c8acf711ddd3dd4cfe6dd34b7c9afdad7b3ff7a493afa6d3ce65d1dee1898890450a9ef6c2fb32a3c148cca53bee7647283c030940e7e0d1240897a764ba8c4cb04d6d29681e8612654c8bd2940e83722668235940bd667041a2a6c0218305ff2a9f07d20371555ef26a97b8266974b32c9324b53ecc8d9496d2488aa831592850d8e64362b2eed2a83ca0a38599d89222459135580e839280bf06faba35db075364564e046efe2a11405b8554b92899cef641e7f15c836b98ee81076e36499e3204907759c0105a96cbcff7f64ede15ae8eb137d2f5a890cf9bfe4b5d8ffc2a2e76ca7a68ca5b60ee8c5031114c075e518712ce678f6317589664cca96b7761752ab8344378f2a8981167420db65578dce7d6900fa2138cd613851dbc2970cce1d8743276a0f243940cabe7781e69086efbdd212d562d8104251fb340269567f0ad8abcc8bda406edc20b7024a728321f15b8e109d99df800ec1ba684ce2e025371969893dda939e3d155cd89c10081d0a818ab544e9cf63080f520a9b6d6134e76122402d46aa59a3917f4cdb14f4cf60f16ceacd86822c4ec4c1d9fcdccd0610ce066db421c5a6738982001a4aa6f2d0febe6f48cbba1f403180e8e7dc5419fd4416c0b1a3517b0d5e5cec08029d813cd97114e10960e07d6fbcea2fcab239830c80f1d7ebd39e1c1958b9dc40eed0521d7216585a87a38c6a163068af6abcce179e181c6387fd0161a0f1e1fb4f11938fe3b2a0814a169700b2c41cbb086b2d3cb99b3ef230112d28d5d6f098aa18ae513dbbe98a862215cd450caf4103854306e85e23ff078130b2f7c4493523a979dd9ec55a523b27f2d52027addc5548701da91fed2afda4cbab1b88fa1076f800146a5e036bb61ab488dd2894fbaad3f45fd9b9a33166df7518286a6a11242186e4d90534bb015ce8452ffa5985308053d4e6e665c7b6b79384d93c157c07b6a5f722658514b3bce8ed3d28b3b2cdf2b2376fdfbd0b257bd62cd96271e1db1b2f5f5f7f2735366c59b0c0ca32589b22cf7ac42a0b310e6e09644b33f65a4024a88525bd425b15e60644fe0be9f8b48f9a8d21bc57b1df93bc4e2ce58b45b1a780f3cd2ee92310afb3233aab260a824faa54f5577d66f70fac21141a05d283a2815e7dda946e3ffece5e2f98267d391ee2b64a3bbb783e5ebe8b4be8459ba43d20d7afe7d8f36eb542229f4539147e8a079301e2b2bde8d9f29c5763849207161dc54a93fd701f41e85cae4968e7779d83de2b18f0b135cb2d12466caa331cbac755de49c23a9d45c28cd190bdfcfa18ef4383f4b69f48b8fde052387e88da684abf9653db3b803545e0fd064bb20e754228e06c5a4910c3e83e143c1b719149a383aba45a3395de9facb6c4252d94305e8806b1ac58a58de7f5de8dda3d8082936a4b8dd56b9d1cc6cc3df71064f77651d4d6ea609cebf97c9248856c6c3f4c2ef30c2b03c0a50998fd54964176861d66bc3756dcf162d4374ca298307b71f7f513ff008cbb54a8a550838270a537a8518f23f04d6d25a9a5d77eb1a41ce74bcbcb2f48975017155d9458b9f4f27d54b2b1c0fae2fbefafbd83221b16ac59b27cfdddbb57dfde783f35dbec2cb160c9c2599f728f3b7790abe02b58e1b1d485970ac3e7e2f10bf262795711249bfbcbab17295096e3495c04e6711980f380afe1358e53b45cca192db861d171d2cbebc1547f60f5760fde015c3e6c5b56a9e178be043edc836944482fd78391197905010619a0878a0e0bbd5b0e8d8add01dde87d2c7ac88abea474097025414adf8c2c17a1b3d994bf662a279acc4a86deff8869f7213831ddeaa5ae0af641ac7165722e2a84b8d3838128b8b9cd4fc60fc0ce3416e8f7b7103520e20ca64a87bc0a22da60c2efcf8e0b833c93d6f05d2f5df5085effde29814c045a7bdffa95397823e86e397e7a80ff5d2c7758c1be1d98b37b30865ac5df5eb18ae79154f2e78803bcecc1108056f62ed872708c5d6d03d4b6f61e4ce576d4a6bbbcd44da25046fd88fa81f9c51cf2b2213972d2572c4b0321b66793dc030e582bb7d5f6603cb7c4fac6df4ca84d78279970d2f235ff6b35a80f00558b103d18eb1d95ee128755fd5f6bafa295514e558cd2bd2e46f077532e8c86fd37b8083d18f163e8f55da6691ab64526a567f41e0ce443a61c57098b417f0fc69f79c9bc8a2fa0d0b81802f477b0e483e9de70f3f94fe7489e7a7178e10f214f6c633538cf2688415b4ee2f967844aecf1a24acfdb1fa731b600073bdf349af57ee9a6b34579ed98ae74e9d976964c2ab4f8ffc162e6d9f6e44c1d42ad29689a39b84f229c80ac1cc6d20dc74d7e07655f800f15ef6a36622e871bc4ab61845c4b57250b26bb22c16b309d3d1839fe81e79b4de3154e238b19724d09ae91da83997c98e4baed36e80434b74e5636e9ed6ae91cd9667241a639780faffaa2b9e261e850b62478787fde31d31edf44d9020a8b665ef444b5a399109ce8dbf062ba3b78c4cc7b8c992edd1ebb85394455881204f89de1bbf743d17d7e608ab66a8d5cc1bc618a72a06e1a3e0ee1b1b768b3fc778868d2a55ecf371d255845344f11f1b096e46228eb229af8562a0993c9fd128f9a88e6ad413c527460670dfc315f4434512e6a8f54983ae9eedad75944d328d984391b36ecb225fb59279a8f25a2d9c7f8523c61472b0eb567d18f917fa3424b2590c6ec0a7d41eca1596c18a28dadd0c6d9d3bd739c1bcba26d5469d67f96094161529299dee8cf2a5860059494be39b889d5d26223c3da3e6c6ee7d9128094c858a5bc491f99544d722b530a31d49c58ec8a0783c63200c24bdcaa048f53fb8c284c33de1ab745d934da98ae3e579baa8972dfdc19696fcdf643e630d811847117df1ec63d69d1a05b86161e57ac68746326671b7d9042b60121fd3c07c7ce0a69882f8cacfce2d03edc44316e5553b437f2e0eb6875420c6bf3ccc334ab88616bd33b11e4844cb8d8a9db8043d23e1aa2179c87bf4e80089e7c49ad547847988e47242ebe22bf7b23e0aec2474b2614033b85c078637dbc18ff7623555c9e7af0f6595b12f14a3bd5434b1d7c78492af04dbcc589b312a6a7009ca99a58eb83fff4c8f6a03fa9280aa33acc518712d91e76c3ff85257670382f47c7641e0e031d4523eadb43d0297338b365e6fc1e9cfe8b9a0429f08170db3f9513b0406027040d80e43c7d68cb4183a92c935a7e612efb56842a5c048ab3850f806596cdeaf709dbca7ffa51f9c8141f94ac5ca98a082c3e586afc6ecd07f25e823af247e2e559fb1bb935501fce086517b1b74f22b90f8557f761ddbc2180138539182dd2c4a8f70187c5560f3ccf8e519cf704ef43d5291753733030c40fc7b76bb6f4c350a07e489ea66a3c1a8fd279c040fcc1dc83fc6176b00f66ff50f4944bc2111c82ff006f4c9a3780feca47ff503371d15b37f7dc50e89ad691d2746a85132b2204ff375e87df87c6f67a7f466554ecdc83f2a1b42110422acc73596c45a31633188e0bb092fff0d1d9e45ec54c89c8a2934e852ad0d221154fe8d4a60cb0a099025ef40dfae95d0fff0ccd3eb728f5561cab0a5b69b59c98fbf946a537403ea6188f5ae1bf5dd4f935a3e29fd86c9af5aea32edaccfa95b2f2574d621b5521b140abac0452779cf7a23053399e197e43affe7248c969817bbdc156eee78ffe5f371968789a17a43ef56c6274da6221486e4df694bba58e67efe6d9d4fdebeee5a89f9d59afe91f6a5d71cc7774efea24f987c648c8b897ef2fbfd5f4fb2bf288d8826d9e146d09e6403ab606c0e88749a5a8fdfda2b663979682264d91667aaf5f4dba15c4b4faebae806c0953846c195cd0d37ea0c9188ab22a6400a46081a97f3def38bab5e31570993c0d1d298a1f4373bab2bb23545a2f3f7359009693a3169e6f4c7c1277b7e4e7ce987bc636712d23fe61acc81044512661902a518914c277545f416d6895795334ce7650ce836cfd7da3ad5650a56426f9a957c07b3d43eeb4d28198719d64a017e0a272216f11d5410fc04584bd7f8aa1417017da667a7b37cc9fda0f8e17087db6a5a8cc18a1180ff5118a0f52a556684108bff0b8514f72c420cfc2d0c0e2e3eacaaf0cf775c846e75f2f2d70de41af5580ffb498b146e72467e071bce394b4898a560b946e6b7b0bbf622a0d320d8946b7365c6af2af5920a974ad989994372afb7895aaccab5f5157d4384a4add2c281b7b0741e92ca9b059e06a7decd418189c0a55f191355751107b97511a983134d1561331a980df2091e866b0e3526c42e4759a9e2c6092d62a4a06372eb85950064540c723882acbaff025f3557b623f0eab55d4732c8f36eccb64e516f47c1f391dd0607e266abcb8ebc2e8c6d35229fd61526bb884b8d0d31a1ff89db89c5c37d287b4122ef4c7e5fa46bd1a91b01e928e9edc4e189b0ad5d02a8872519274b420795b21164588289897cad63f5a53ef6b6426109edf7ff436dbfa550dec4b5012519dc8e05d228075692a3c6a8f4e2230be05ce693192349b9fbac24c22f467ee45e127649f78d77aa91f78250e68c825f8383c7a3ea421f83bbb78a0dfb9f5e34af4eaa96c3ddbedf5fca9646c178dc9f7edd1514a7b38a7d53dd72d9d82c1c720f80411b35f1cc64ee1191a1be7123106acd3b76b749151c90b8f5ffe6f8e8ae226d3a54d12446514b819b569f09584aa343dc8ab6d0d6ecbbdd51a94e1c952a9b9384ca0368b798303ae472c89aa0fc00bd94c342404090ccfd3cee9e6f4d0986a0d7250e557fe75cfdbc95d7f18295a3f55bde50c1a9adcf32848124c6eb941f1bf650cec0f2afdc49c3528257e33d3e76c339081440ec2d820450e0d9f514a98b288eee868a001ee0913aaeaf6b2066956820cede8999db6febcb07dde34583f2fb979477b2517988b87540b8adf0777f41df1cf56d43012439b930878264f1044cd494c615ad8639eec866313eaf6b56bb3cd7991674e1f06d340ddd2c1ebc18124f9d1f23d6b060731aa7e70f393fbe2a82a8df0bf8f661b6d411e3250d1012bc568298bcdc267b7f7b853896307cc2383ae68634788ae7d34e80e2a887b264e059ad9a0cdb68b36db9acb5936eb0c818d3528a9aa9208650165a06ab3c40a408a3806e9a3994a3a15c01e7db405d8c3a14d2cb36136bab054efb655d12f9dc287b797be7561ee0a555d945d10779364cfb9a80894b8b50bda60cebe9a8d6247baf904b07a924351458a33882131259fdfe7c79b9b4766dd2f0692ff3efcf67899def358de641b7118d67a34db3fb3bc714c30f85bdcb7527182914d571cade2ac35fb111866034bbc142ed29acdf66bead100e5ed09d4a37dae810fddb3a2f14357d01daff1268fce740c177e60a62a952c473fa2b0a4f0b64f1294b50ad62638679dc7b3b827a1d69e1279195118123c0c587f95e7d8979d7d23f0475006bf913587e89549f0550f631859b5bc7feca270b69278aca929f492d10efb32c7b945d646dc88b32f9ce90954e385007bff6bc369e1538a87f95841972a8ad6b6b42d1069140c276e07948b81b0b8834becb3cb722fd93a72c54be43fdcffd45248d0892c1597e06129010703ff6128a81c238506aa3beb2f1ca92d91bc879a03216a4135d18f755d536aed7f64a36542aa4c034d2fc0a9412dfa9b028fd247e3f0da04edb97cf62e2147334d093040f25756c3cde0c769d2149bcd8c60158120f303e9db4389775d9cb3ecfb40d52ec41108058fd2067c4f1610934360ea26d6aee843de7b6b3ec787dcd34a21183ec5dfe46a5ec9f9b24d6e5bedb21e7a1a4dc795432ad93609d22fd6a6021130a1eae3615ad09da63920d8dfa20c826907ca4cd9fa6a0d752a1e1db3fd187d19e0d99192c24db00866b9a5f6da7d89fbbc3eeebfc1a5e1b3339bbeecdf828c8b17e13abc685364ede5f76de5cf406b78e455ba22ec2423c4cbba0e880b9ac91718e17ecf19183d290e1abb33277bdc4ee953a5751ead280f42099d1a7b46e601b1bb2974f49a0b05e4f647d72383bcba5c6653d861623639ae131a6ae75399232c760399c90a9ca22a1dd7319b46fe1595996747626e48fb9ce633f553112f29007b88b564143f7f540dcd963aeeea4a213f8fa74b46553e04fbe8c601820ea98009a61c1502c28a7225bc18b071fd3723e88249256204817b84e7b75761b060ba8ac45e38fd129672e0e73f106b273641e2523636ada0ee725058f0b19db893a47180c30a62ccb00c1b4fe6682b14094a87ffa5bce7a0955050e88aa363d53b0f254e546065af5515c1e6f8e5c8135da5cb725a2fedba0df61b7da2086a2bc819a0e0cde4dfa872a51121132e8b52e361adf4968abc0bc2dfd84540b98c2b2b19122511b0f8b83f4dda2a3176645ff812202e447b44d315ac15010241edd55ede554853044d3db68cbb2d2cd5156764a6fad41478765dbe784d2f60326f5ecdf5cb4cfa4ad0f30bcc637496da8b617d654169a20b5fb5bbcc921f2ee9fe6161f1e5a9f0898f267a0476b3cc03d8a4e29b269921d42408140a17a63e381633d052c620b08424dddde49b833c6e0037510425cbc89ff8c56f70268626983123a88104539231f56d90ccc8aa1c47784c8cd2a88861d36336db8b1750bab339a40df101cd3333885f8103c2d9afe4750563641a2ebfcc412200504667ff3fd1322dcc47e65622285ac2dafdc7a8f8364336dfb2f6fb4f430bcbd24f9948c9ec60947127f630002a0493457c282b42731a6451f82fbbfe92ea8c5072fbfef2ec31545d26721054ee112e70a34c7a78305479441c00f88bc0160a33536cbe7e7608af4559108910aad8c345cd31cf6c4f3f112d29f6beb89229c0a76647173e18aab27be17bf3bb68e4bd5665f64e6341f16646f2d068ab339a860a09e7a57a5d81113d5915234ede0c16b2775305bce43aaf623f59baa842416e0e9ffc4a4ee00159b05999b0ce907b04527948e209e13df2f0a0d461a2fd500ec66ae29021550131b1f67753d91d9ad5876a355ece8b9e50ad4e66d82a0fdd71ed162a507b45631feda1eea1431f24fbc7f46ebd7ef479451557497e49ccc0fb9655b3d1442fea797a21a2c51c7e010b0fca1af992d59c7b6234590d51c8171804785d9afef5c6adcd6323cb24b9a6180ef656b8057129a0ca79b061011793b10df542b58ad5b70f77b7d331d6e2f5374479f066d7c6269b9dfea2bc17f26fdcf163a467af7f8cf8243f562e0c5dcddfd837e549b511e22e215db76c803e3bfe6d8092b7a9ac2651f8d8132d864709868410864fb8927acceb556e367537328ce2c1ad28204fb9fa3eefc7d218f3094ba153f5963e442d9c3c02fad6d7d7ef254ca7f703378a9cea68cb3ef72a04da9c79210fa652be64e325db389aa4ad6847bb11cfca22182f9ab08053b8369419f3ad372221c9bed2a61386d15d5016a5e6450c7debed992660a178012dc35b83fc861937bd7ef7c5df94fe0ca4711bf9b3ecbf5dd774edbb4e349926ab1736d5c3922d154d17e71cfe90a4215fb92a1988e3dad0ae4d2ede2061d09657d34b6e585acd673db59afb1901c6146a12dc18612d5e3951740b8e7c916d35b1cbac46bc7d8dbcefc0fbe48a86747c2aa6a139a70137445ae0dbcb96a0e91807e6d408dc50b0a66c270b836668b6184ee2517452f611111fafa219b51f3f45b3caefff2ce3ca4ef315a7e805ef6d0e8a8b116d44ee63417889f72e166687fafa85b9b4c7effc2fcca45696d2954cb9b8ffc0c3d80fd542c4c47fd7cedbe981f9d436c587cb2bf55b6c1766514549413690def1467b62f3c2c9836b31d18579d022582bd9f9dffc913ee1cb84cd686603f0e88d1629f30f785b985f2185ae34537d17c7149a31ad7a7d19530b73f8569acb2558002a606591ed868c0a0fc644352928425f63b2c3573d38396d776e4a16f3378f73054f49c58f1d8c315304435ad369038a66c039908ea961966ff0e0c4c90b70a83753287f96929ae5a5f432c229fac70790c3713884bffa2548237d406454035b81cf444dc7d0b106105511c7783dffb0618477767e03cb9c580503b640129b35ccc0fca34af96665e47a86dec2d8f789649ab1edadda8377a00a8ae57968970756a10633cd448b7b8540d13ec0523e24ce31d36ceb1aa8421020123e701977f0fe44fbcaf07fa3f4e6adcb091881bf57a7a4445b1a8c5c00d1878d2447601c8cb1bed696397c9e2d7114a0e648b46632a0aa12895a206ce033493a48c64c4c601b950a5278d16ce6190642a481af4232f8fa1019b32f5be50d3143048037ad52f35fe497ddbfe780284b1c232a1b2750d9d21833b8a297c12c4ae3e126d1785d625346f238f9f1d64ff25f598c31272a4c2ea13f2df110f72379be4d69665e6113f866ed65c793618ddd4d125750447ce3193873bcf10055bff783fb402e46c172bf325cf869c1dff935f1b26919f3e0181f7bc08cfec395c63c13676e6b486f39fb4c9291d3029d20090d0962363ce8ab11ab5cbb6133b3b71dc199b18a60df1da761b3e6e4652707ebc32b6defe9f0bd3a39ac5e550329b2b079fbb67a88409e9dd24d901b32b34eaee1cad6451f5d5fd5f7f97c6190d207a1cad3c2e665420c4696bdbe5a9a8d2d24f555b1bdeaa7d3abce0e05e9ce0a51f9b34f1025a37e8e90c96830a9e872fc5c6c75232ec77f25d77fb59010953d8328bd2f184f3346c819b04fa709dd772c2fe40113f89241b5b2e2f2a823a02297edc2aa435368c4ea2a2ee3abc25517ef2af3a43a7b565b4e17dc24c458ad92ad68da5c3571995638d4cdbd0915c79929b3dee7b70bac1d6998324fe9fc363e925411328cb1fd08444aeba70aaca2fc6a5ccacc8503a42bc32206a4737e4a02ec64b52972c11e897308da3bdba13dee2104a7aa6c8afd6feda3aa4999c15e2833d13a479ae23aeeadaf0a75812d1aa9958d266cdd9e3560a1088aad15927610ad70cb0a7b000433a1073f07437531b0c5d9bbb7e8f2d287e51518fb2adc61a25f564c13547c5b6feaefbd8e659fdd90a7455c6644eb2c0fe0b8d205f000208798921d4c183a4c86a55b3e850ae88bcd7f43741a2730b1d12bd72527ed1bdf777905c56d37a62ca1e941d113db051434f5348bda32ed228a23f2c1f40fad7892598f71a4f8e0a588952175748daf445347bdf1caba46b2eefd7669193c82cd2782a32741928536f38f495e7659a46f47a619492a2222efba2ec0506b6016db79f0561a98e16d93269e756624787c8dd3b420b1dbcfc8af0d6382b81646ff96b49cf258b35af08524ef39333feaccfdc5a1e327856c7a17d6a0aa4051cbcdd6d49e627555cb2e730df7a5721658090d05db4d334b20c7e1bfc4b7e8f0bd5122d472b689d90cabc34e12282c270308a99c348e185eb551a228c821cb802c921a368aed8c547733d06b9ef72d7facf7129526a023bbc0ee53288d2bcd29e032d4a6828299356a02aa9c15700d27925ec940e35886fcada250de709979f440e848c6e27707dd5b87b038c566556fe12c492d8ee1faf674faca6b91cceea4374613fa8bf78a17918a0584874031fb5a33888a8f6fe1b06fe4217cb4bf912ab37c0f9820013231baadd57d12dcc054a1b476f743261817c30b9c3161cf7c14db14e7dd1adf312614987ab95d6a8a03da2083905f0ed67e169c38c562f2b6b5c4e9b562e82b2957b62f3439aa0f3b45e522a33889b37e9ec07e52d9a3b5c081c5fd34bf28bff51d4881826676c931c6cfbb7c304d780ad422d599512c7f16cadfe67b08cc431fc503392ac26d30477fea26cd96b59b4354e4096356e81375be28a038d7f588277e99184162a0c1907a75b7f55eedb16c9b9c9542b38150614c9116185faa418d1552e5fae0a2806caa6546208c3394bbb53aa2cbeccc0c2218a3c838259f0effad7073fb0621b800964fbc430c39122cc4e6a776c6a47087d6e2bc533f25ad31d7ec5bf5a83480f01c756cb13e0b87c00233edd5ff971ed48e4d4b781343ab262fb063a382c4817a4a2fcb2258794c502209a4a73c644dcb6de9c32ffac251c3335a0cddd23cc5d892a6fff605450df2406c979e912a419da0c4adacec213d770f45e2c3722cc7b00cf7c789c00a313429786cf53ec6ac71ac90c6298c939a5c7e78285de319cb89183ad964df56ca6c16c59333674bb19ca616024b1d441ff72650525f41893e5dbc63c2bb14d510f3eac6e0bbfa4e83ef92e26fa7849b8ea883e8d8f87ee03a68e986f2ccc0413cfed4a4418ed689c139a5aee384becea33951abdf8a84b7e3802df978d0686d680ffdaf00ed162ae5b41003a258b8ef626347a78c44b12bae99bb4e93641caa98aa7251937f800fd289474f740d2417fc150fc2b1a68d5f8d4fed8bb152cd0ac62f81546409e59bbf8ffcd918127437a0be5e2f7bf5ebd3a2f79603ada0dacb89899fb3befd8835afa5afb0b2075ba3f0ba1824a17b10888f914e9fed8dcceb188640445664b1f290e9da56e2fe410206d802eacdabf176639c48662e59cc7178fbacbf3f16d20719771354b4953934619c478d1f67edeffba4d5673dd64f4eb554f5801e361663dff8d70292b95962325b23c24001a0bb8abffc6d18b21f977e1decd3b3f6337a1fc68c3055798a58338025c2240b4275c95e6a05174741e315c746c140375ee4b49ec2470474e5ce0d44751db34ed94a5c0743a260ac390a101a31e5eabf718982294b20a7f1e09b6810331100dd297f71ba168c200a662fa3759f1ee3be2826bfa609600d4b5e3cc9ff5557418b6ff3db8b6252ef1e4b98ce66517b21c887a3df189431e4b980e3e5dc453a70fdac60a05976d6ccebd48304a0d0a082eb22f73aeadb233caf60e45ade70ed0aa69b6813c2f807b99e09c1884a3bece796c1d4eefe21775ff4b2c6fa9e93d2b99a2b07319f6676ffa18f0271ca24cae2d93332583c0807ba4745148cc4ae757b7205e36870ccb1b84756b3e003c70732c20af611de500d677fe049f42b98d4dd28229b941287b80014368754acb9b5c64daea02254206f86fd2167cab72ba487caf8e29d98933e037aa6bdc41d635aa7837ee1b1baf372434dc88c1e75864df51404922d852b825280fedf9db09215d1dbb5350d605251d2266e2cef53753c985ab6842ef064775d4cbfca60b46c59bf749e5d8606d7abf264a40ac4e86fa74e184c895694fb470883c1d5dcefcea60818e6d55730c29a991b6ae12f0dd718c4840a19254032a2a269b5d523970f733bb384ee474b066947cde960dc2aa4aed9ff6c226d04609c8ebe81ed821201c1d88a46526842580ae5b6c5768d016516e2d5566d7ad62a52d6fce76c127622830340b14839eafe0289b8a3a4df457e39b45c25aecbfcdf34991a62389a445d9699610ae9a91e2dc28764c2fc2f4657046847209a868e70185077ca88a8d52139950a126e652abbdb310c05cc407c14cb4d607209b67792760fb67f81578815d13bdf567c4d7edff1d8e6dd2fcc78c0c1fe3920f4216599a311f6b34e67ad44c62601bb7fcf876e2bf68926c2f0d26c14946f4f2dc3e2f1339451cd6162626dee43535c88edb46a21f9b0925401ed40c1b662fa9e5579effddf220cee1817e1b672aecff467b5c2538f1a602fcf1f3bdbf6acb4b09f6fb825db06e3d37bb33d229fa13db57a307591aee3ed70e65c55bcb6c188c04182c1019f648d5d5186c5c1bfde91462f1bb0ccd801bf01499c43f2df353f385cae1297a328130c97f7960de62b14e367de8a775d58400f755dbf5a06b844917adc5361b9dd861354f0e94db92f3ccf1922fd591cb8cd768d1cb4adf4a0d0a11d856324f8078033eea20ab47fd68c21e26f6839db2d5aa1f62cfa31b2bc176ee71e44354cdfa53120991f013c7712aeb37a438d0039ff86fbdd9046b60d371ce620dba211eeceee2eea5b15aa28041adbb64f184f01c2a603347fb8b15af0629b690ffe2fa8ed661a4379668a5e13de10b746e7385da0f072d876f651b595ec149b9b25a84d6ba220a30d1ed00ebc8c113e6c6e7e80df22ab2a42e8f0d9f3fe17331d06b9665f8c259e54818149cbc7b78783bb39c6a0e128a9de5449066f209bbf1d8df21589f9d133783c7849f4475b7495b3dc402d2eaa1ba1f7a5afa856ba930d457c6055bd3a79040c1fe7c42258525779f7bddd8ea8066f34632a5076aeced4ba3848807bbfab79ab67d318e9ebcaf39521257537bca98ba53178d824483eb052517572b2acd4092387f910a9a7a142151fc0ede3a42a19dfeb271196328013832710d6767a5ce062806fafa6d0a1133dcedeca1921ee7880d60c7855e6aed645c67a3977e0a43e58de1b7ca5651b577781bf65476036534176830df99844571ce3e976309c6affddabc9901c2aaaebeb1e04c6f89b3e03b5345dbbe2175be341993ee0ae42bb049f04379c03d49fcb2cd8ce04ba834ee17775e4086deb34c1028671831fa6351212a5ede3e61808b8e1f60548a0b9f82903ec7c1045abc9ef5af98d1fd3d03c4f5255beaf68eb3cd4471d1af01acc38d313ef33764463d3a620df9f622924ae1df1c517f23fca4292963e5733d92023f8ed1f15586f7c5b937ad01188d414f3bbc429666adba1f385a28d1f6d18736b93ef6a81a5b8be2b079ba71a6ff4f0b634f84042fd5e0f784baf4e35459d72b9a713d95eb7151435883b6a49f9838ee5910fdb69e38c578165adbbdcdee214fd08462210f232b1743c494ec42da2e52ce69f5f1daea1be4ee15065388f490876f81f3da548a3284ed9aa9ef18db98062a6d357971eb3306d2f3adafa276b732c8349a8917ca7ac5f03a51ae4a1ec344c6f9ef80ba19bd6487ea3fffbe8d8972219c303ab0c6c52ea0c26e0ae0ec9c7ddc03f08b62dd4bc70d7eef76aca6e95504ae1104da618d99f0eceec85f6f471dc8697ddb9e37f45359e71c99a2dd658a5954cfbe2260987580eb295756834a714847f9b817d0d4dc8100b9c0319afc1759561d917a244ea418fe8f973ec1f14d3aae3a0531a856e4b588097f1ad8778321c9152ef51afa7016f7d6d8a3dd34e50f46a567256f8fb2fc8af82bbcb146941c2cfbcef6a6500e9c0ff8e4e525d0f83ca520d62d1007bbd4c931d5aa0550f170095f55d1454a7ca2b557dcb46a4e3cd68898254abe428cf2f5959c452aef9c28e013c7e93543341a47e306ff347d5e4e82e62d9034db9f5d8f8055e9f0428154c0410488e444dbd49eafbc20c3f5ee4e67cc61bf52672e31c5215da706d53d981e88e159758c2d5447fa7fa2ed0d43f10e6e9a58a28280ace0ee0b1ff99fe7e3493f6816abd025803a0dbbd485ddadaed7f5509bb144788ccf1984d3597cb50d67f3cc65fcb8db007a92e0a9f71cf49aa4b716d147595f4f76c442cad0c43a0244a1b0a923eab9a382ea9e326c38e991332ca816874aee99bcab6debe22b1b68c484aa672e1c295ba004f6e795caeadf8132ffa0eb1c280f7b2cba3a0678013e3f9e28fba8c6b235e05b11579ac39c47a8bfabb831be30b7fd5eacba12e7ea5e01b6fec185fc5502c2eea3a063629e8a42e3b8ef0aeb7e12e74814df198f4133d3ddf9d201193d64835407cc4da89c2a6912cd72b006c2967feba56cad3d00d31a233401fdc51ab641d1ea1da36f7196ea8b9ae787d5839f75192529d8299dee3a008e99df25e70df816072991c1a475969bc9105991e45d8f6f97bbc4042851ca90dc5aeaa4dd01bf4ef9f36c6b8b97c55b20ef2957d919d27651bbe971bae7201c10eaa4abebbdb749530731bfd75c8c36e717eed6ab99275ef49fcb24c58deb3c848f5a62b4539abcb4cf79e00baba8c3436afa2e32ec44f9269df7d5e396ad55a54e9eeafc0d5603f49d9de4023de54f48cca8689b81e83a7df07c626dc5e7b324c51b38b2a62440731cb662d44d60f1b9624a06311255633c4a2882041e76de335be8da915c617d9e9525e5d46afdc996f8084c5015419820df81f34a76ed95bca358d0b8949fd3d3384aee96f7d23ef9063e8c670bb9fcb76bb9aea377befd86de0ccd011470f975d8569749bde88bf61a01c1a1576d5b0ed6cbb3196e3d08fb31bf52dc8bfa4c390cec330f2f6da58941e6448005e04310e37596d7db218c64f596d2a7ee8d9bbd949cdd3055f1354c291fd40edd460f3b136f72edf2febe9e1ba43d817641d53c044c97d638abcb57d526db271987dfa5ab54cf9cb0d0abbeea81880bfd75f532f77508423f7cd0f058ae79a29a77f5d1e6de8eb16622b81e158067732e0063af5e595525e4076a6fd9b423a8f42e7cc0aef5ee5be0e8fcbb43e13635da19047209e8ab175363bd25d52e7ec04e1dd8e357863713f4aa8d1742eac9ffe63d22b59acc702d6848f1350075eec68fe3e12372b8b50bb2c5a63082e6c6065f31db533d554cd9061440282c7823113b0d3ee4610e08bf8954edfacf914bbb5db851822402f84a1f6b9f7754ab68857d26895103bdc31f4704f6274ad90a57c552a97c1b731ca22e51df44037617c1bd4b9d2b3f6317c1d7e71776bd304161228f7ddf47098e1123bf3d7d5ed69db9c0c8b64bed08257d08bab9ef148b8047414ddee862d5bde44359370a021146ff72e3d609ce2638187efb2237a29cef0d41df47a3f59ba02187c73ca6186d9631d96f3f0cf8e8804dc5d3672f6bd27f0686c97cf713b6975c193cc77a4ad25a4a3e9d3291936c87ddac4dce3b1ee2390ef599f0d65a4de9036c01e57c4c89b3b046910c4f7d3b573c45606dc2fcb108dea6ba140e7da3de768fe04f8d7f5555ed2e91b103fa2285cb388220a59caaa3d279a418fadfe37355ba8fae4476904e179c7a0e3f9f6733ec849819efe1b47d6fb5bc22256ae44b64b84906c215681da801f04fa8a7f25c86959111f0b404c099bc5989371b5caa9f1bd84ccac2df563b50d2622cf6378ad23050a46dba31dfc37705b1af830cc06e4e1c35b0689c2330b11cdb4a7f314671e127b4eeb213084c4cf2d080207284face814bcb3342b4c7f737c783d99b4d1de0dae423fbbb902a83aa228a6044fe1eda70f8cbd729dde55bd0c27f63111305e58d06336efba00c73f9acc6501fd8170a5ebc28da836b8b7900f46976b1006e85e179615195ac9e76ebc680773973bf8d7ab838cdb2903b4a2fc6747eaac188c9f4643357d13ef3af587843e87696f653093fbd75be7074d44484456fc34dd0424298887df3904e69716123fe0a1b6754c44c5cf898805f075c158ae4d9d9f304e347b59f18b46f02ba6a9badaed753950a1423f46e3fbe88cf53f1989c90f8a3047d04c6611fc1606109e6e2a7c030dbfe9f958faa5d6422f32c14f84d069c6bfb24ca00083210484281f30e118d8796f689dfff28b6b1aa4702dc997fd450a720b4285a97def7ac547d25f95b6cf955e73eedfc0bb00d4de9204f9f75c99b7aa19a014728f18bc27cc313721b7891f86aecac0c57666451f503f7a1f0710ea9d97d4a63f8e2f54c9013081f38dcca45bffaee323c05e110f8cb75de270f885667e8ae4ff596ef1bd0d38d1552e056f860b0514f44e598fb49dd77d29e018d5a433c852b646614e9982535018f20f15b78bff9197999921200085ea71932168b70c1d3f105295f8ac634bd941870838143fd1a5f701dd1aa8d9b3db9dbf9b3660790f5b49c0365fcd197eb302dc6ef96df4ea074109303bb743dfa3a04a675c89e885c3fc2bc3cbe1f00864cf81819522c8d4ac39c0253a2eba54dab4ce19a79becde33dc3b384858775b2806b5427677487a7122b8bbe526cedfb8623b649aedbb5f1894c28ff7e3b5f7199b7d5a896feff03415c490bd72fee5ae8b18381e17805a3abc9653b48e8bc42424a11eb2a938c91de413e43d78fa44b8be5584512290179766afb46352c2ca218207d9ea37411872a7d1da5d2e38ce73c1ce5490bced281a4b75f83f452057aab1f6e83fe4b7ea9f9012b36f2131d7398666dbab0459ffb3414dfd1cd5f1455d8a1d7871556bc14ec40618b007321d280e2daeebf4b84be02137b5e302c215d9241819e8ab309ee1acc3ec157469f69d2d1920516293f165999da603fe30711aaf70a2fa4ee4d0364f036083b919217bd62d8649df902d5041de840e7d6d21b9b79317edb2684c2b120628b828216b50bad15e8dd8f0baf9bc829dd0a6c546bd1b084e1f44ffa26704b7778abed2bca142aaa00f22eb80f5a6d9fad90102dcd404ce78c4a10e56106867351d08bc262d891d27eea00374c107b35729701616018c0f551c18bcb13bd77202895b4ab22de5f65fba91b4bbc96d146ae990892179a7f38e49991c90a9dcfed6cc0969a82e122b36cc985f385c8775139202880f740d770eb51257a21f1227cdf59f898a32f23f8717cbf06f20d22bb1559a316d1212ce1fc24872751ab136a90aa81eec74271376f7748a2d89b2818c8e77c3f3368f1ac584182e443a415aa3b7ccb3da28920e5d8c14ded3e8cd13d779939874314fb2b5172985a48bf931d4dd30dd291cba7bd61d8c0efa99284f773044747be1e72996a07803f31c3de372743c7ea69ef1db68481bcba2ee06407730ef5d7baf90ee26ea0ee645b707525ce9cd4def758ae204fd695e2798278969e8f749cf75d23b99fcab755ce9ccd50a2589e2140a3fb460fd1afc0b899ecc25e53e870f53cffd52ee977c7acdfafd8ab313f7d5a7e3cf5669587f56ede7f5ef7c11749cdfe699c8bd1b78e763cfdd5929cd6d95e21253afcf446d3efdfe2dff0de761a535af13f4c7799eb7ec167bf8f95aec99fc254c1d7c262cd226a6a1d7ace307695889dcc338bed2f17efed06df6f071e94f7351a4b8c77fcbfec295da9ee67f5b929bbefadf32cefd92971f7bf8e5974e6c75de40c7f3e661a5b7a7dd6cf4717eade3a799e6fa2175908eb65af0dd56694ebc1fd692fa9737c93d21f730d3ff2dc96bd6dea34a14125dab24fc3c29683196d9a2dce7107e9e2015c97208e73e075b946b694150668b5c6674fbccf67677e374b7abbb7174370ddd3d80ee5aa8742d53ccd0dd32b0bafba6bb6174b70372340f1f7f365aab56e8737f5c4ef069ee7fcb5eb39eef241d533f9acd66b814cbb1045b62747700ba5b6dd1ddb2ee5627e8ee97ee564df4f779b514df67f2b7cd6b33be25e898c9bfcf61d5c83d9ccf25f84def39f2cd46c71c7e03e90de772ecf8ef14c10fdd1f0085149230c28a9967389be5c76f9b18ff380befc491e52cac8f67362cf187f3dac872167e0ff4da5b2ee72c83b37e77e3d09d2a42c583eef09db88f9967e8b9fefd5ba56e73a51e7e065fa952c7b98913a7ff9d8ec7792709d632a4e264f2d1a16387e21c1e3fe31c86553a6fe0bc93ccc13978961f3f1315e78cfc5f12c539bb5fc375defc4cf7f1df5ace1ebcb6168bcdf28be224f3b5245962582cf623cdb5bc2a01f8b5b56ba3a3dbea0940c20afc609de2a4e1ebd1a8582dc5f871ce8ff3d6727aece0a9eda081393b3c53c74707b823d4a163c78fcefbc03ecf9b31adc43938977609fc1b9893a92dc7daee0473ee87222d69393fda5b4e77e7e82ec5e3b10f2de82fd2e60d9c7f6be9e1dfcff53d26ce7a3f579a1fe3dc2fcdde764bf2050733ba433d75a62289fdcbf3a3d11dead5dd31ba43a1a05b9c4c76fcdbdd2fba5b6828a10e15d4dd35ba43e1eea6e90e35eb06d2f461a5f771a5f87aa11d73c067c2714c5d5e5ff41ffe340fc5d2deb0e374b777a7c2eeb6d11d4ad5f87a79ac5d7bef7b9d1e7ebd65feebd5d23c73fdf14572a49ee9bcd96d95e63cc76b6b3e532edd7da3bb76eaee5677ad4477e3ac58bbcf643d972938c909e2eb81cf34c3cd9b035e9c035a519c39b93b2f8d8addedd2dda84e75778b6ad5dd291ba408210529b801a6c6942670567083274748784152ad073bb2981185b86c9af04345068ee565a1082d8ac4052801f37383a3811d2a32606080a722f1d00c36283925a0032c20bcc44009999e12258aac552f5304c14677a3013788586af115102a540e32bd6ab9515ab5b0a41cc000a894a7564154aad54a95029976140ab584f295ab6c5030abd54a48ca61fc85b57a8159a95e5e605030ac9b25d56ab55aa954abd4132594c338ea0953ca5bb2ca5bdce546e9498baae509ab85e5a9173800217b71d552cb52cbcdd28ba7dcc5a5c583a894528e5a7a59ad54364a289051a55c95b2919169186f94cdcd2b77b9614ab98bb7ac6c9cd890a19c3c91c178cac6890d99cb0d4b2583b9515a39eac6c913d9cb4d4bab644bed0d43960282854ac920e594725a49710a82a5f24979502a081b294e4e38b141b614c4eac6092736c884f41499ea07146a89cc8d07b06e38f90f999e41c963dc864ce53363937219142a6806ca0f297fb9899272948c8cb3582ef302b37298d4ca46caca651c650385e5a8146bc68188c2b209c2862095c3d848714205a93c081b6a8eac7cc6935432313633330e13e34ea8201829322c29323ee3281b28308e62dd40712209c6510e25c653329d4d8d8bdb205b52f912b994bfccd874508c8d941877f220187fb19132e34178108ca3666ea2a81ce5a81b29507e5039cc4d1495c338cc8d14270f9a71d50b1d666ca0fca0f2989b282a7f714495a4f2148c8d132a08c659364e281b8260dc09151483b29139b2f219d7412585b50488a018473914188712e3280fa20a82b109c2092736c85c1c15744388ce497741e672b3b4442ee54be456be7255cd9195a73c697594f297a3957b2ae58202991b0e60a97c9e3cf921e52aff01e52b7fe2c413294e1ed49204e32dfe03cb63bc6f9e04e1412d374f7e70f1981b270f5239cccd0fac9b167fb9f9c105e52d372a6fffc1055553373ed029ddf024949031012353398aa66565b34241a7f21b513a77777f220505182a997ee997d5cbea15e515c4cb693544cad5ab2150455ca043352a0a6ae5c444dbdc8840b76a992a65b31a82f58402623081294e2f39a2c83a8552358c8bcb0d0e1760badb454877e182451423ba94a35a55456945c48ae5a242e583f27625171559dfdc8840d782aaa2c64a8d153557d45c5103842e4a87a57bca0f0b46a7091d4af6f2e23b52aedea251322c585c6e941a0b16abeb6cd870d7d9d15bc852a828b2d50d96dec28a2e95ba61617942874596da4286650b2c3733587e80a507c5c2124512356ac8948b7873428792b1582ea2502847a1ba22502825504920d115d125d11245a9b96862b1bace868d9ba8aa92f289f197175413b2d48b164da45a6e48c95a7c4aca95ea9890a58e40e3441325d533338509979b30e54a5de9be942be53ca852539a5051543e303e338555c58635e5ae642d517ea2c852fef3f3f3937a49c14801065cc0c00930646d031854f9e9a4d8e2055160f878cd11ba18bcc6957e54353631a866a6746c0231316466b8cafbc55710681f305c85624d41d5605151e1a854336c62788b8d8b2c2686b7380d1a323168c468e9665151f9a8b0344eca552c2a2bd90c9b6e991837aaa776a5acf44eaa4515d3ed5ad180710459aa08316466c4906a49ddd878a27be13349a8669848f534a17aa1d56abd30a344caa59a618285ea9929a91ed5116a3071572d9f4962e689544faae52a9f5122d59372154d6b060a148a060dd48b1a2b883049f5b478aaa56ad9bc7e8830a959423743d34f5dcabbbda5512997192d37bcc6936e784d8ddfb849dd2401c06ff88d9b27371c00374004c1f01a21d4f80d57fa912939111348f5bc701858547e523d305ce53f7440c5a6e52dd50b962bcd24f1f3e3c5cd0c2997ca6b521e000780d7d8d4f80d5702000f80dff09a00b838006c6ed4d8b09248b954ac221aa65a4df99111a1f2b9e12a18981b36ac1a9b29415efc88a0537549cca091e12a672151c386ab9c55848a86cf38eb02ed8386ab669288f9916133c3c60c4f798d1a33fcc58c1a335c522e352e1ec34c122e2e3349c8a099e1e231b8c430c34665c5c5c56dd470a9e1e2345c5c96a8719a1a9751e3e231b8b8b8b8d2cf8b17425e8811e3c609aa0b316c6a9ae85adca5d5b500214b75caf58275844c85c58aca0aeb653533a3aa918ac108999a2cba94cba45433def9cccd8cc370971b282ffc859a23330ec375987118373abcf017b0aa8b551415170d5329790d123a2e542e53ddf8aaa5a54546e6a6a6892ec653ce62bd78bf60012163b9a0687961a39ab149b52440a66750b2f1d4728b898989f18e89116396627cc65336318e7a3184860311a44addd41ca9e1343ca986d3b879e244ca9fd0f01a2a1b35800882a1e135a448f5b4b4c4f096192f9c565556344f32336c5e1ce54152ab2a3160b8cdaacaaa8ad5538c1b31e53a9242c36bb84c4d159d0d8fc16ddc407122a986db7028346e6a544ec36170181c4a8d9b1ad54dcd11189c862b81e106c669d4701b6ee3a65538a9191a29522e9a29345034aca57b92b19e80e9baae0a0d142924743450a87c6a788b930aa7c55bad1b9aa7174e2a2c5d0c193264b058ac97171aef1729954d0c7fb1014296a289e1303162c0d8f01a36366e5455543832deea6caa28cdc85e8899b94139dda0a2a45c59b09e5c62fc29d575366ca45e38c138bd708271a261b9128c93ec8593520ceb89f5c4c28285250aebe989f5f49245a744f34465089d12cdd393154f7253cad5b2b2c245cbaa4aaa27256b5955595591ea51f9d34a0b590b965bcad522a65c2dfe72934a71a17b71d50bca29e56a414549b95a544f50a8705a9ac64d0d171d2ae543c35535ba99140e8d1a2b3a2518a7971b17168bd57529185f5549f5bcf8138cab822053ea9e56ac276664a81f744a304e43c01401c3c48bb36090807192b5a05e6c686c6aae90394247c36bb4283d49b95a6c584fa8705a5850c85aaaa45c2d4a344f55642d4ed3e23458a4664451b1689e642dfe927225d50d2bd5e262caa783b8b0f1d44a01400b2a97172b2a1c94bf60b162050b965e11411343cd91181c064f8ae106869b24954c8bac268b6e55c48b151122e8504a2b2284bc487122b364326238ca5555d0f0cc92d570d40c9f715511dac70c47ada2dcc4b0a1f1948d8bac860d130be53468ac6868d1d2d2ade2a2715a5cb58a225bc962d8a8b468970c1b26968ce64665a55d2d6ec3468a0a4befb438027e8812644365a5860d134b46e3468545bb5a52321a362a2c1ad6e2335a5cb584ce69a1b15902069761b384132b08068f61a3b2a2c269711b36aaa786b5784d14ba96172fbcf042ca46a96553d34497f296ee85af3a182f58a917426054479899918291814c8d1537a47433326f979a2bbace6b82d02975b295ebec509af9110373d3374a3fbdca5263847e6142e593ba51523da13cc681085aa150fe24c6656e92665cc6656e80086a79a1228b711914a47a5aa6099927562d3a10e22b1b189b9a26ba952ba15e54a897169756bd54f142e52508aa172aaa272aaa1a2b949a0aa5a662b54a1149f51451ad5435553aa59922c8a06e3c29d5d3472997135417a4ccc4b812eb9552b5a86648b9521e2448ca85e2021459cd169d8bab7c6a5a7cc6810892916979b969b991b90122684585cec5553136342aaf294107734344e5e22e2f2e3639a2a45c2e4e5e5e5a5c88a46edc6a4ae02a77c911c505081726b71491544f9154cf8bb35a27e52c5f394c6a060459b264c992254b962c59b264c992254b962c59b264c992254b962c59b264c992254b962c59b264c95283a5064b0d961a2c35586ab0d460a9c15283a5064b0d9629d448e1ca952b57ae5cb972e5ca952b57ae5cb972e5ca952b57ae5cb972e5ca952b57aea464ba83a46ab2e8da1b488d27994a0a9929323559743546800185cc130c992718324f30649e60c0f0179997979797972799ca5336329ebc06142a1fd5d393152b4a2c2596928ca7158c27194f2a7f92f1b492f1f42453b5dcc87852e1a86e5a49c6934ce5aa1a4f2e15e8dd5958e9427381886c6b920e39331e696e32d3f120051e8820c799f18f34a762ba75ba534578e81a45d3f116290e04c8eb8bb35c7b71168ab6890aac94b8fc20e3d0810071f0622114b0e330207ef3de167eaa071d8cba09904424243b9209f90f6f0a692b032f742b0338ba9581026400886e61c0896e612008ddc240147c66e0700224d5e0091d93b073757ead46439fb96bc71fbf0ca7152d98a379b69506dd3d05cd98f30c1f531bb844062970419025435d2e592ba28c344a879bb05af02fe9a1bde51f3d47435920a5421141c9d731980203519c60c6769ce5397bc193b93ceb81e2d9ac698eb93e2529f8f77e581f5f9bbbdb059dbb9382b4f6f569dd2d45d31c9f89da8044d182ee3ec2ffb5ee1ef2917f09a4b9bb59801fcf9ae6d8dd50847496bb5f3ae9ee15a820054947dd38ae24641329cb8f745f0ceb24f248b814c95b2221b9f65e2148ea83f887ee7cd18a42997c10947de9e491d4278d84705f04cef0cb9b7125e2618ac544b1d4797abf3c82c979933048499b74c39348f819cf2233cfa1dce7909bbe08bf6d1eddaf38a3dce7d01da9e2b15cda2328e8ee23123822c411d1667f796cb4b77664a8bb7147604760f098bde1fc85af97c919ce590e8cc546b0e9681e1599375ca5b3599de01268679e43444653f44f77460868727ee83ddd15e9a0fbfe58e26ac132fceb953ace8ab52420b5d922fd041551904237127cbabb8aaea8cbe96ea26e224688e80f78808812322a28620391367339f228d951a2a364049b469049f83014b931a3cbe109492b8726bafb06e63986f33bd0dd1ce8ee0d7477121940a2bb8fb840771751810974b704ba3b02dd0d81ee26c201dddd002116d0dd4e4174770210d0dd07e86e03747794ee06a2ebee1f3a1ca8800395fe3ebf4f6b16e870d040f8d856692c368494efeb262280ee88a068cf56690627395aa116221aa26f7876ff08e7df5ee81eea8ec8157ae619e2ebe5e09a64089124370821e94790c9d72652ee3e930531b5c20d48ddbd841c6f6e8a7fff08bf8c474792b7cda3fb5424ff87e4a62fca5644c24fb315ca8f84739f43fd2258146543220e43a22327e350c6b3080ee713019d1899456e7812793c6f47b547f222496f924d0a71560c6afab0122509e9d0cc73289c4f04e38c67910fadd051f8617d1297485f7e7904891c4126b99656881c2f1171669bf4609d25c644cf4433382b117e11ac49f2238574a85d2d43b74d77cfee845edd8daf3841db5d8aa03f10b4811c9c5f14837cf02472bb1fce2792aad3e503385c725c9678b66a2fce737d9cff6891dcc3b412dfc03a6f900b11942c41d07a6d163e2e03a08a41051c572e93e3cf30f572bf34b3556a4380ee6682d42f463857a7e7d286d42df6d78736e312876e25484df4e8ce86a7eefed0d670e2bea835608312e1572a86b67a0b6c28e27d5f8a53492c167ec5197d688b3e1e1a25ebee1bdd4dba0392a2bb5fa4d168057242eaee1bdd3c7407a40b7cbd5c8eb450867ea1bb1d48c6335ba537e74b271fcec0674205a06de86e2c74b70eddfde0829c236a859211420f4e76743706ba8aeeae75e7638b1f6217b502ba7b49773e3eba430bce3eb495022df051e2eb7d9e36ca346bceffcdb41c2c5af0fb6a8b3eff705ce4bcb85ac6621f8eabbee8d5c4c70ee48787748c61e9b096b5bfb11fc44690eb8fb949de6c74962b69b118cef5ab25472b64ab14279975b1b18b813122a2bf3cf6f298177dfe0b562bd463073d9c7477cf661e1645eb3f5de86e519cb412e74831b4e3bcb94988284e218cff86a16c56c66220bd5fdf3623b190f06b127cbd9cd90836c562d58ea30567185f1a8fee7cbae8ee4ae74d08897777d26c049b7c2280c35ada205bab44f87a1fdaaae3ede0f17460b410f6f4e61cf062d8083629c9819c46fe6f52502e5391e6b2e746773f13cd9389de0f67788ae29ce139bb8179d266b74c715d68b0bb77e88ec7b8c3dbf1766062b59732d5cfd1c1f3037e0f5ad8a3074f0f08fe0e2c77c979711d8f1923424c9c9c17e7364f2243847477f8387bafa5d9fb3d788ee61f52263a1ba585ee36d2dd0e267dcbf4ce1c4cda6b41db9d8e24740fe1ebc1789862b1588cec8ee70acdc3e43697a1d11272049988d7d6ee93654854ab444c767c246128ab36280716e11ef7451d4fd8fe6eb3a38a204eeb3853afd376a7187e584b9b71dc27ad93739cd5bc2570d2aee7c4cf93863f8ed4737fcbfe7d8ec121ee65f0ef6d9a4662b11dbce217fd6939519c1fd29a1d720fcf22ee611c7fe5b22bfc265af317c5b81f626d52123ade3f12cab60813858f24dba22e07095d0e0aba65f03c1df795363ec673064de0c004384419dde5d0d0dd7966b2bcd70ae1ebdd6a9913d4dd3abac3d173a7e3791332ce62311c8bcd66f845dabc5fc592a9d2cfe15f8a3f9ce5c761b5b4590e9ce139bb9f31b5fdcdf573a5b3679a2fe6321567bed6c812f837a1f0473a452191ce21464221929c37a9fed24c7a7c3f1cf2a1057f28df6732cad528cd85f331929a24d7470a3f93e3e72c7b09a9618aee9e859fe948c51916cb59fb7036824d339c1fe339cb617d9c230323d824d35d8edadd2edde5b8bd3c96f1873d9b7db6d525eb6e8f85b5744c8d0831493224ac8f24d2212fd2664df2228de6fb4c95682897c951c8b537b0ce47926dad5308576aa3d76806d922e10cb245e1d3e80531ad4492bdf818d6ddb65629b6b54a673850dd60136c049b7240dae4c10386393fcf337fc7f3087d786a3f3a7476c06820000d3e0690850150a1f1f5404cc79c1c10d33116c3b1585377336881736ee0e75ca6779239a3053d5a79cbd4e6f9fae3f922e93ec2bf6fb3d19bbdfed3fe96229d357f268aebd73ef4298394eef6d1d55221b932c85669285a22b9fbe5917c2df9e2277d266a12921f6319696d91284ea1fbe1b5b1d80e532c36824df7c36b84efd3f091705291126ca39866b134824126445d011946d0c930018fb91132dcba3ba6bb1fd0dd36cd804e86546e7ad8bce5b411e7639f484a99d7996d15fad1227db54549462c275e5451024a11303ca4acb40800bba930cb0a4d30d1dd46ba6f60ea6e5b7737acc6d7a337773641c0f573d3bbad7e6d0d1ce7df8c7b25c48a013174afa4c0d0bd32808dee55945ee17a453b1b1bdd54c4393c3c1edce9b163d27c787678683e3ce0cff7983a66cfe401be0eadc623dcf109431e3c660e98717973ba54a85222bfedceec4080f82d41d5e3b896ec0c530f07fb139c99bfb08b8627feba1fd6c7aedc2fcd72b4d9ccc318ffb555ea313c55381c31d1071f09fea1f0c33b414c876443bc6a69a5fed78e4dbe70fe6d961fc7628fe4de37fbcf6b163f0d74997b5fedfd21ff5ba6f73e93156252a73faed25a5867cd3a584b5b6b79deca890beb63cf9ff36c2be9a24833f6bf934ce27f717ebc74e7783f4f9c1f194142c4bde99eadd2d182953aa6f74ed071a5e1334dec619de187d38a21cdfa33cd9b3fcec33b711567c3f02b9d99661d4f1ce819db1b9e36fbf551fc6b6f989c1553fcf56db4e9168b33e3397a36effd65ab94e6afbfb6f637244b7f1aa6a493feb9363d3fa637cf382a7e1b7aa68eebfc519cf7c7bf91a3bd354be2bfd782d7de4b471f3f53ea4fcb33a4619da0870f96a1bd6416c27dd1b7c3f7a345fa5e38bc165789dcc31786c34a49eb55e65ec6539c36788d665bdd564bef2f71efe9cdf799be3ac691a987753e58ade7c44a36bd63ea5f8a9309d326dfb7837f991f7b2e9c7fc569dd56afd11b38df6bd6bfef818a93665a2985e5c45cbf74f2b85af0da3c45d1826eb3d7721c2d48f3e379f3582c1623b1c7dcfbb014c16a410f871fb497f42c96f86f1321434642b118cefdd2ace26c5d9a89e2e37668f27d68c1d8b743a617779fc93ece5fe2ac368a3d9c7f9b306b2b1d3f13b5796e8a7fa7576bb163997be153912467b534149fd65e1ee24ae4496c9592e414ef33191de582c2cf94466ff61ed96890b54933cf21252fd2a64827932cdba232634b24ccb64866abf4966d51589300e94e060bba6d6cf83c3392add25c27d38b8fc46dfd709967c633f16b9d377096dff6b9ad52519c6048f4d78246c8f112096b6969b9342a22c2c3148bcdb20de79268c999e750b514537cffa8a77490ee64ac6c96402bd23c779fe91fff25fd696eb3e3f0bf76b7d7ddb0995777d79044774d37ea4677e7ba8b8184aff7607d8c7f16d65f02276df6f4e64a6fe01c619f67c639f89968a623bd64f8373c4524dcbce12dd325374ff2918449c2fc48f76b19db22199743e1e36c588574f7adbb560260606062c2cf998eef3bf8df9260606062727d2621dd3d76d77ae9ee86818189f1606060627072300ce7fa4c8f411bc22a9d638ea59e87411be6e4c43099f3cdd504efe0a3cdb81482818189216a9a466a91a669c41b69c6efb55cd2fc15d6f79ce8d916b957ad674c9bbe36cdb13e699dfc5fbab474f2d7732ded387d2c475ae9e87f4bf2f0c759e4deffad7958a7db2a7d3dc6f8699e13ab451a2df66a1d2f815674d17355e61ef97882983aa6b7248f0949322a722f27568bbfcfa7e3c7a5bf3e9b3d77e7cdd5823ef30c438a6dd58ad3bfcff15f9b317ee15acd7e386ff65ba638c73f5ad031bd65cf65907b1fd2f7168bb3b404f0effb1c8a3b10d08f99e790bf42a2fb2165b2f7c85f403f62b19af8483f467a4322a71107e27f6d46f22773d9dddd0747e2fe2225470bdafa7d9f1097c1bde9757acdfead66fd45729c4d8f2713cde0fcd067c6b9b45eb35e8931759c692d5d9cd9664c6fc68f249769484b27b44850ae4f415a0b4c54cc7d0e37b0628b6e3025f74b3748c223e90ddfe086a9db222a4e404513154636b8820d7e60831f6c80a3063fa84112fdc24fe62a759c1b9e19bb8be2bc28da9c28ce12972e5ba53e44e4167cda23e11accd0400b1a4c41830574340069208029a0304514dd14790a1fdd1d0b3fd3bb8436e4b0eff3d757330a895e5f0c87f391d0861ce6e1b8704867b95fca21164bfa3c630bcadcfb7076841ce68934d7d233f8b5da5f3b9f96a9cdde8773bff4e138ce8f24cea4902809dff0bcd95a259a4112ddb2194421e75fc71327fb7a063fddddd5680636646045d6c94008191c75b7f75d2bf451212f83ae693178e2c31830b1ddf292f67e0fb38b41d71e08abb63a9eb79082b4449aa2c514263cf0493c4ea0dc2fe53e871d3d2550ee73f801be920f2d3825487ea429acee4cc7ef6ea0ee60200539ffe61887e764b45f0203ef054778010f5e00a5bb8b74f7829d17d8f072f799709e89e2ea987a2c66e98cc42eff70905c469fc72638ab13fcbcd6f4217d485e83bbe0032e60e2029aeef66e0982385a896d766b91e496788e1c397278b95fc2e2948205528452e820050e52e048e112c594766fd2bf7989536fc7611e8e6bc7619fd0e77f7184bcef43dc2345318116459a4314330a02446114050fa01f2ec387b3e332fa1c06f4c365f07e691a1192eb333d50d20ff095603cf30c1facb6627ce715128b25e1592ec91b9e44807eca1fe02b69a2c3d3844787fbf82977088962c00229e8f07860b656299e9ee7510f0f1e2246b1d8083209897e4a201608008a2e40c144db8ae937fba5993fbf653a7338a12800142c2f27e279eb567081157c2be854004537e1c1cb0c4e7f65b1cc6f0b4b9ae7c49ce75f9b63aa022515d0a4604a7b1f8ebf4222d78799e6ad0c7d7ca238853e9f29205310830d508043c109a8b4177ef8d6da68d4eb7d266b33e25e4ea4518c2d2eed7d5b9d612e2dbd6438ffbabc9c780227f0044aba13b89af0f0da81078f9c377b9d482770e94c1084b9011330e96ec2c3abca4c50a32b81164af081121c35e1c1435a5a0f73f796aff557e893da2a9df36d580219dd135dbc727dd9134378a2896ec2432e27ee09274f0cddd2bacdfe844b47822190c0e945737da6fbb9ac7304699ea3cde5ac4424c831822034e1c187885e3bf060ad874f92f6868e272e9c37d9087e18013882179c80a2bb090faf1d78f0aa25cb69f3eb7527ce5d5b694e8460278e747792ee9ae8a2bb9bf0e0af57487d071ebcbf653abd89294ddcbaefd76a250d9ce41238459f989cb7fb47ee55ea3836749bbdf7a8cbf1c4754de8b417d6d2d61eec4460a569f87d2e0222ba1bf6b713c1ad13810d0f27fc5bbe64d3d7097aa6aefab7a4105869af0b41115ef8f92ff92585008810b8badb56692e6d6ee2dc569f2f3c71e15f1054e912537fb0520c8227ee040199ab73746b9340f0d3384010c3c3983a10502c068473488ea727fd00faf1a3c9060101e1b87e8c2013208c3f1c4126f966a3bf84474709f4a3c9062d815b02870f6cd1dd9ecdb4dc1c3f87793833d707ed98e7cdf5b5897d7a7e240f5cc10331f080093cf0b587fd7398177e8869cdde5b16459b9b8478a0a5bb8dba5342054a7ca0bb9174a744527b38cc8946849878aecefbb66a45b7354f245d07a2e8eea5ee3a70d48199f672d388e7c0e7800438d003075edded619cb54832751bd6e997fe2ddf69fbebb85cc21b78b28119dafba5994571bec2a77e6ded487749c8ba24621a7082068aa081260dccba9bd65d06b6908125ba0c0c61200b18c88201243030d4218105891c20d1346fe02d49ffcfd589837db6e35f9887ff6b0ef3fe6bf563308f4747f8799dee4fab599779ecfb1ce6b976987c7eadbf3cacffe1e0789ecb5f2e1e269f38414ae6b28b225de25ed37beccbf8c3cf61b65aa7d72c3941231efb3e87794b985ecf53a4b376cb75de30fd7293b495b6bedbec64e9af6ffc4c67ffb5efc31fa6fe3fc43322c4645e5bb3d1bfcf647177c4138e78c0113d7447cc60c40d8c804167846884d819f1d3dd5e8e1f2dce9113f1c4e572645b7338a6625993791fced1d657f8bf34f3df32917bd371a6df678bbc9c284e9aef24af7d911c699f0d8f9fdfaacc0bff25ce3afd67686804d01d4d0dddd1fce88e86487734df1d0d10ddd124a03b9a0b74370d1931dd5dce16dde9c474a763d39dce8eee748874a793d49d4ed89d4eed4ea7ec4e2701dd0dc3a51584a65b4164e856101edd0ae2a35b416ea099e95a3008740b76816ec19ce8168c05dd82d1a05bb01f740b664577bf9061b560d492d05d0d0addd5b2d09ded4577b69aee6c347467f3bab3f5746723eace5680ee6c6477360374678b4077b60d74378c1a3166c84ce94ea607ddc918a13b992974279385ee6666ba9b114077333b5c6ab81475e7b2a43b9726ddb92875e76280ee9e91d131745068ba83e2dd41c9e90e4a50775066dd41c9bd10f3a25b62c8e028a23b1c20e80ec70abac32183ee70e8a03b1c45e80e4713bac3b1457738b0d09dabd59d4b86ee5c3574e7eae9ee00bc8eb80145835a32033504454357012c3e3b9e0e2c5b7b5d30250a143059daf4bf4b48d0a925bcc75604bd29e32f739d77dadc496b45ff5b5e0213e3fd9d7866ec5e2d9e4360623c9ce9385a70e2ee1c6f607d5aadb93829f824f699434d1c5437ea08d50325e309449840107cbddcf4360be946bd504c80c227497a338e8d78e27ea09474a39274a392ba5148dd2824dda823dd49207712b8a18eba514644243083046c1041029f69163ef84ac26721210249ddcde33942d19213441575a38c2ca148777f20071c504444ba1bc785afc7c394035eccc374034ac8102a8850372aa81b65032a4837ca866e14901388a8820a8eee540fba9b76e7430ddd33948a88203c3a2262ba43a42a24fc8ccb796b12f2801f07b8c0c3feb623643ad222f7998ca0f8c0ea4a33fe3c4525f6c8e650b48fb31487fd71f9efa43e1d3fd37d243f4237040ae6105fb7c7dc26fca0218e3c36c4cc10309d1055b4e7400e6423c4043c66f3e4280428049210443a0655504de8ee0274c7805b7763808bee4ee1588053771ff5f08369474a0d44828cbc8dee9c66e0240327269c92e8d96df6caf158f83978f672fac1897accf3f4f02b9d8d6013d8a4801b2840050a804037cecce51ef39b57eae1237951a439e0be28fcd00ae107c112490100e820aa80140412dd473f3c9090a6e7a5397ef896361d67eb52b5783e12f7c02773f93e692fe9373f3c30be01a748fef51f1e48481efe871e8e1b9c36e4fd9265aa14cf3cc39abde14924e34bcb4b7ac61f8ad6854737e2453c1cc3980677ef46feedfb6b6b19c7e58fc539c4bd8f4747f97df54972de70e3ace093f8f3f732b6a23fcdbd3ab660c5798d7e38b15892ebf32773f8efe7ff5acd8e98d679037f9c37e3b7d55b7ea617a908c2f2cd4645c720cd988aa2ec47cd3e934f9c1b9e4462b1a4bf2e072969b34f23ee654c45ff80927e7cb74c716338ff56fba3c5b854aa59582ead5b9b675b9b6c907bb04a5d893d1231c581d5662f6f49d8bdfbaf5b26f221b947739c996768b3631c989ca3cbddc35fb34e4e232f9bcd9e4b529c3895ba1c27b9374474a75882748a6259fb7116814f2211d9241cfe834f22813629533c546d91bdaf43b545a2388552aa9627b82c8c13e332b4453c3c19d2e389cf9319ba27359e74dd93171fb2f880c507297493d67106e0f21cc71980e7aecd33ac73f4d7003c465a7f0dc0c5395e5b5deeb15bb6d517fd85bdc90e9d0f2ff041091cd78cc1720f53f4f0811ebe8702746efad9bce5b4b30729d37dfcb63b6f423d502cced2c9fbd37aa0740ab99fee6600020ad0f444dbfb3dbc18ce176f367a1d674af31abde125dd1d768733d2a4444747017872e39d8e4b4b99fe1ee14a00ee783c9e0e18ecc50962187edb246724c6b9b41fdafcb889d6fe923351a44bb3a53bc7bf21b54aee8be214cab3e69f144492a111642234824cc81164929b84cc5bcae62d65484224bde1231cdd281a06d08d9aa11b25032a0037dd281b9477372a3f11d1dda8ac031a0562a77085049ed0dd292638008223195150e1d3dd281b22b08311110bc08014dd8d12020a02c0b92d3f44d0dda922426c6082103884b84277ab663c804a142c5084143fe86e172328c0052a08312e04e96e14165580c0932e2c70854f77af8ef85e2e70cb819212ba1b15041a0f0d786880132474f78c56de6638f7392051792aba4ca3bbc789cb2518adbcc1de16d24bcbc11ecebf52809c9ce00cf715c5630876e9ec783b30f09944718e182500d6bd423eafa8008cf60e097f076c029b60e4187ef9a593193986e414dd29199ddd427fd9da3bfbc2cf4fab96e2b7859fb33a3c3c3a70134948d4f4619db216124dba85c4936e21e1822102a0a1bb468f96114974cb881574cb882d74eb889f6e1db1a45b4718a05b472cd1ad236ad0ad2390d02d2456dd4202480b95ee2eeaae12e17ea6b15928d21b18ebee2b74b715beeeae42776f41852c524c010a2c5248a161a270450b283c218b8c6791230f7bb52fd24a1b66eaaf794b995f3bc4fb91669146717dec13d36b71f7ebdb7089ebd7c7f606fa2d2d01dcc3b8ccf34e929c3972607a27ee83dcc3ffb8fc340f2dbd4fe6b7391d72ef04ddd29406674b52ba1fcfbf60a548e18b42b82f5212825212da85284ea1a669c4c359519c8eafcde01c02fb4bfa749b7974847e9fc433c8e3d191fb25fc3947f30f07e7e572d56c0dbee3eb8162ff12db1b4e9ce1f43a43f16f9fa738aff59ffe17f49ac593e6b52423e17ff85f648b6a46b934c24fafcd4448d916655b64abf62ec1d922d626354d23b9524bfe4893b038654dd3c8f5ae1dc1a6197e263ae6184f32a4e1db3c5671b6e6f0d516855f6d14295b8b043791603c45a1fb471d0002173271243ed317216d5206c26bc147626b35f4ee904eb226019f7ab47708c659519419006ca2bb030fd08d5f243daca51de2e5e62de72d27ad05b422bac15adeecaf8ca9e8301a01be4fc4f67e0f9832d1d0e7fdb0d239fe457501b03087d0f4750e81f3cafd92ab554674f77737677c4dbacfe81bfa6ae8f618387b792cd3f0ef2fcda47b852c1909494232b351fcd846f1ce2c14ed0dffbde5d933d94b929366b11c6778cec407eb04e72de7bce52cc0131d3e7277de79037d7643b1495168253d21a98a6e07f2c35d407ef852129974441211dd9d73b4269ee7ed4044c4258624aff7739e64cecd484840a2028707242390a474583f4fc74e8494e44d1ffe0ea4191a5f2f074916244f7e6ded76a356d002d4946e140c5a8062c21125babbc78e03f9bd2598a3478f9f1e3e3d7a7af0e8b1a3878e1e3c3d767ae8f4e8f1f3f3e3f3d3f3c3e367c78f8e1f9e9f9d1f9d9f1e3e3f3e3e3e3d3e3c7c76f8e8f0e1f1d9f1d1f1e9d1f3d3e3d3d3d3c3a367478f8e1e9e9e9d1e9d9e1e3c7e78f8f0e8e1c183c70e1e3a78f0f0d8e1a1c3a3c78e9f1d3e3b7a76f0d8b163878e1d3c3b7676e8ece8a1e347878f8e1e1d3c74ecd0a143078f8e1d1d3a3a7af0fcf0f8f0f4f0f0e0d9c1a383878767874787a7c7cecf8ecf4ecf0e8f9d1d3b3a767876767674767ae8fce8f8e8f4e8f0d0d9a1a343874767474747a749075f6f2c6b4e1e6b4d768879b9625c501c8afbe0fe8a79c5f8e0eeeedda81774a35cd08d92a205473e8f1df9f11da17124868b23257c9fc7625edfe7b15c7bd13de6c371cfb5175d1f1020406cf0d83a620114fec28163a91b15450b8e10103be27134a31dd31763b834126484a5dbf38c886044a5654405c77ffcf01d9787c08888d104962abd37ec3627dd56111374783bb06b69b31bf544378a04dda81174a39ce84635d18d1241372a042826ba514b74a33ed08df240a75e6815752f4445a89049f2c3d7c3b3fb2448f38fb74cefc414d33c719df68273741f5fd31c67f01f8ed334c719729cb844faa0e7b893af082d22a43dfcd79fb420f64a9196e62f59ca41097cbddccdf573c839e280324289160e557466f3e87f88876d262915c9717e9f936349b3bd2c927bd8074e0deec373780dfe5f9bb91c889334cff28b3e70489a5da038c11910f7fc624e8effb5d5465f1997f7fb3ef772347fe19034bb1c9613ef14e958cb0bcbd5deda27cef1564b6d24cd3ef1749bfdfb3ebfd4da1b92661767992f65baf1cfe534fa3215cb51e6435c727da45c1f690689740e690981b5869a682fdb6a448809a6def4155b2ccadcfbeef7f9a44c1e7e8e9ce3cc38c99be608d271d65c8871a61337b3b5342f97296cfaf86a3d4ff7300f1d3c78f4d8ea387b6d8ebfefd6891fb4381bd69acd0989ee934fcbd3f6d7662372a4116412ce201baae84ea14065554354426c7862448809ecc8881093a34e3549c9c07382aa2b7eb4d0dd4052747bb64a458addab34764311511112d91227406277db84b99b04f4536452254840ab46ea6e1a00f101c80e4088e0eb01b9917f58691e1d3fa4c032193f9a3c4c5a3aef5009a25041075a3ea0c0d7cb8f6162aa0d69b539af327cbd6a299eb5620888d1f65858e992bfee93251296253dd8e302b3a5f9b89cd6cf067e10f013f4e3a35a3aeb7eb0fb013d5574e38903670d56ad55d2bd8271e9965540b72c11ddb24fba650dd0c343f7ac2748776391cefce1ecbfd6ea7975db5aeda1e96e2e7854e96e9cfba5297d7fe95adcac56b33c9418a2310fb2310f26dd3c82748b870e0f1b3cba776069eda8a263b0c36907d9dde12c5b11b776ecb02388db1ccea0ee08c02a9d37fbb04e1bcb0be2929cd95ce92c646ae9e0c1085678b0687c33c0f20006268f38824d7374203fbcd2f188222a4549a05a8afa21876eedbc5a666fc0b6c807b7365446e9d0d249d2d201a27b0896a3856d3aaee5751f490ee44d7384b5728478de87b3f5fb76bc06c7f7cb30ec2d71ecf9f1cd4689589b1486a251f88f4bd22dc6aff0f17dd2272a047dcb14f738b2f4b0be671c250a042d1c1944886e7812193f13e56eae425e046b928e022a868ba6424b778bddaae188c6d7fb41ab8619bab13829d08f1c8d4a8e27398e109bcd8a8c8890900851321372830c895112d26c1623e7df62f7eff730abb636e5a46e4aba6109fc9b50cb3545a32ca0441425f03152c71317dad107bdd966cfb3e91dd0f87362bd93e8435b1434f4f4265db0d2588c369657c8002d1ab680af776d9ef733cd8f479009067afdb87688284e21710ac5623121b54a62b1586c36ab1f86f436a3e49c911803c56240201569e51149ca6c522cf6795e7006c7d3e72d653fe62d2710bd96e267a2b64cfb6a67599cb7af81af64049b840c8595e600f4037c25403f9a6c502c167e93a5c5623b3c4c40a238854690492ca6c3143a19c3b1acb3d90c00dd9eac75838aee6eda84dd700a6fb8926aac78ad9a245a3506a8d1698ac39466451a49c5189e5a31301143932d6ac5e0dde5a522499618062add4dda2a7d91de70de8281886e2fcc89d46d110c3aba1b674cdef0bccd3c876c68c0c692960d195a3650354ad0aa0101ef470b96af5036711e49738d26ad1a2fde676f383ac9d77f8da4f97b7dffb5d9e7ff3559582dad698e348aa041a43d9186437385cf346f38d34563a6bb5dde9a21446bc6ab4563a5dbcb4ddccd53e6fd2d6db4e698dae80d9717d31a9187139622e8f20f698b06081a970c26b46410d1ede1ef739b3f5ca991cfe9e755ebcf54fff30fc9b8757b3e0baba5857426a3fb568ca7ee568c293192e8c6319ababb637cdddd8a11a4a7675b63d868aff33e4ed2b2d2f9734344deb241e324dcd716936e0fc7abdba2d525a1d535757f339b3d146dee64b46060a1056302dda4bde1fd5bbe658db4378491d37a618bd60b447c17fbfd5cfb71b473ccf36d936cbd60c28b09b45e0099c9c20c0d5a334ab4f7394c1c4126e41cfdfb62df0cfa1c664488096ecd1c69cda45a3241e816c2e2d75cda9c4abda3b1c48fa425c3d49299a1499bb1b76254d08a31d282e9a2bbbd2f37c10f673311ef78cdcaec25fd7ec6b3761f674597793770922d98215a30b60523a3c5ba81f7cd9ae6e8cd3c87bed887fb6a2d929c98294845b2e93dcccdd17a3f96b939e6ea247a5cce59ae0f74c3f3c622e251ecb3c57235abf35a2f5696ac1b1162f242052e5b2fa4e775ebe5a7db2bbdca5a2e5c74b727ceb2d2960b159727badb730f6750cba588f65a2e479f8f5a2e3ebc996718cea0902816039f29160b339e91387c5cce6c958644b4d5e2e4b55a7eba3d3c5b2b2bad5594ee6b5746dd52b5e0042d556da9845aaa1fad54155aa9285a29215a295b771b79ecf3e6587aecfb1c16f37e69e66ae917ce2752349b315972d634c7263fa82a3c23424c5a2824da6ba1722d14916ea16c7477abb178ada6a269ab9368f50d479dd1adbf25b55ac7039ae1be76214b39817eb44662b1249cad5d104017607061055c58e2420f1768d8c210b6b0812d14d9828fe77df9f1cc717e69e658ecf39a75f9ce88f3e1ecd0befc4846dfb4452e27fabe1ccd9fe6fd4869f3f678de4890d6498660164b5ba5373c8988e214ea824a77914417647769eb42a75ba6052ced69e1093c714d5a08a20556e3bee6d6e62c54690fe3fcb5a3cb737566c1a99be61947f5e159f8dabbd679b260c3561916a8f05162a1086fe6898520dddd5c60692f3771397fb92de2a202dddd8e694e34020a898080ac505a6188156aa8c21555e841158aa882d01657b658628b6f8b1ddd8d615e7d11d69475d0a11a89e2f41a1cc965f47ddf8b626ae4deb7f33df5e9f8bebe9ae43e156eb26091858a2c4b645940169e2ca82934d1ddfef23c8455ebaf29c0d04d8185250b2c1dc0526241c222430a5348816c519c428e4bf1c8615f6d9127e4619d3a780dae83cbc8cb62f9e264a2a5933c497a5f1427f8a2ad52ec134614059c2b5a90c2951d5c51c0951d575c5a3c418b14681184163ca0d08413402104506802851c4fa8c21336f0841c9ea093c553164264f143163956b0b0f2012b479aece0af5838dd6341430e83c1609ea3069abf4645c799fa7c8d9f690cf67967c7634639440ef370906c5674197d2ecff76b96067f715a12f4fc43ba654bf357be8f2b7d613cc9d22facda240ef33e1ca4cf6651a4619d2e7f659a6dc534f6657bc3398ecb611ee8985e4be4de776d06e710fce15224fd95bf23ef9b7d3b0e9b353a1de847fd1bee5a207ffdc0e264fabfb5d1de9acd4e70eaf63a2704f170aea54cf3f6344c4727c068c294eef630b6622eed2b97b4263475dbdc84236bafac094c9002c7e54cc04c703297b3382b1de2e18c2f753c71484cc0624ab78783ff6b58101184c551db985c86858d2baa748bf30a267039dd15df153addf476458ce7d6667bc3cd705f456b69b158d2ffadcd705f81927ed48c8a58215a018315309620457b6389f1748779e02d2d9e4d429640c35395a70f3c1d29610b4a5842094028c148093624210a49b040126c4042164860a26570f732be14e3b88fafe37c79b3cb9f898af34bdb7cd1f3c4792cce9aeb85e7cd45717ea2386775be682d0cc9f3c0fcfec26f9bf7992c8dfc4b9636f70a7f5eda0be7fb927e2ec74cf77fa9ce3c6f79f6226dba7769ae8f848c0422ed2519192111f21ea4f97d5c7a15b12a60388215421c61c711504658811142232031c25011b82802108ae043117a8a1053a5065d95045439eaf6c6a021b7d52daed48d1ce6fefaf0f4dcc4e1a56b71fe7d612dc5997139544332c37d9d551b8b5523c7363bccddfb667582b3cf61ee31245ee94d35274e98f7485e9295de272dcdf482b9a48da5edce218779d77edf0bc7fd3c225c410425ba5b487744981141c61074300426dafb1c539cefc1eaf2d7e3acf834c7d7faffadbd971349c7f93eafd2ff3be49b431032841a4360092105ddedc9208ef9e6791e2b6d6e003d7a787f5bf26ceb37f9be1d7e9c48182f81b60888e958bf077b6bb3ff5af87f6b54083edd3d3b65d3874038164bfad16483f06cb241a23841f09504010620d400084e8030801f50f984bc46e4fffac227ba8179067d7fcbb34e7f25b997f1588297822e8a73c9e8f31f90dd9d43773f18800fb6e8f6727fcb2f1f34f1c1101f783ec041c50a54a6f0705c78ce62b124afe15be2300f2768c8bf1a39ccc3451ce6e1ecb88c1ce6cdb2b548a8740f72d083263a93e5cd38aac5e1ef97a85893783de87800041ea080071f0f583b58c10e9c76a0a3d34117edcd66feb48f56e259f813c7b393e3289c9ff1f7f9e31207c3ea144912574b739d380fbdb4b95c93bde4e7192c6d2efc6babbd4d1aacc4a5cd798dc8ebf4c2ffeb8db96ac3f231e9e1eba0880e5a399022073507357000051c740007374f0847c865f43d9e41b1d82473348ae92dc9e51e7827a635a2997ff4e9f2eff358aef33ddbfa39cccbe4834d9fabd3488d8293268af6be686fb8d1e6e9617d241cd8e8f646ea1847a4e2a8d4cf4a17aa20069d42432232020000431100303824188cc74352d1883c2b15f10114800373c466944a9c09a3288929658c31c40000000000320030100d03083041da68374a093e03ff96a46b81d7bd73fe99cd6ffb092af5c3851221a5a3aea38ddc2ffb7b62e9adfa0b677dfe192b72fe10bf7cdf646a31cb1d540d1397be6574ca8685d297bbc3f09f33c3d3fd07c51d79dbd51be6125ef466c2706315a42344c758a11e6f8f6da49b8e0114106d764b53544211e2549e7e7932751dcdb15d9c593ef4c44e02109652e941cb09937c8c45dbc6bafd1710eaf26db9626d01930060034f9e4e7bbf87660f38f482a3afb9ea247ad456ef40282f805f30339b7543f68cbac9966349e09962c6f8795bda15e62291fb62ec8b42436ba725c592be1cb9472c654fa80e9e727611e693e9a317fa60999ee0fbe2870884dbf36eb6e4925dbc12adb99d50c2d6505f71acbde361b2e053eabc18c0de63a39dc70d7ab9067f4edb3ee2d2c5c89b5738ff441ee1668528ab59d31c75ce0430ef849e9f9ed4758efb573c7eda2ecb79b76a19f340c2b8a1270887aaf66f0845f10209cc625059525efc0d2bd3b9971eb2b21bb2e35fd6bc89490189cf5cf9accf929b89c1e2131336d3bba93a297684bc20b002154f093fcbbc5b02961c3f5669a79a86b31c6fb0abbf60e1425ec9b0b19b1a375adcca405672c61685dc629bc14b39f1716520164b3e95dbc7ab76d645f8cee2e04802824dc67f93fe56831614d86fe8910c762facc19d65e8940362d4832561941d6bb9c95f822fa58be2fbd3a4c53a6b3f21358bff8a60d6301613ff2718e2aec415be75efd49f235884a077e0feeb487097483c8cbcbe9a99849b2327a48526ca225b5e2fd6a90fe91d6f74f74ab7522ba55c5c191f119704ba8e3f8cc8286003f5039582819df56b321afcc32d3840e2d320adeba20b31fbd6f02ccb36d8fbdec91b5bc1b26f07d686844a4d8366a121426acb60886cab5cb0b72c7891a85a7473272694571b2d7f5609ef2d6523fd6b561b5ca21705a14b49a2a052d81824b69268fdd20c7b7344a4fe2e4a42e80a2dfc2a0a03cf4b50d0d07844b55859b53e0e6d4cf056ba9607554d101f9d04f5508ea6bc119c91fe41939e828de3ac0db9a167bf361e412f4dce219b1c0058143b7f4ab077d449f90cab332bb7b4eb1555ad42d4da13700f0a96e647ea6455f0aa32de61a29a51b91319323293a80778f026670baa2f95cee53c3e5bb55c01a62c927af7e50d882fd49b3ceaf4b790b3a459809326ff500af0c4283530fdeca370b10bcb9cf38316f7ec777649e39c38642825d1c889c4489204905d6d76ee82fb6f1b2db1904658a1bdff84c80e016065776aaaed91f1c67b726872e87fa0274a8301d0d5eae5953d77b0afe4b3470eac0f2146b3041102ba1bccf4a92d6f19a955475a8b4821eb0dd3488a24a94d476abc36ef62b78584a71f21baa1e40d521736249e29986e3e8a6902641168a8beaaeada4900bc9095160e41500ad8c61bf61632d33a111e676f4afe12de33547ad3624c6306cb96da0a031158baf378afe10107fe4ec4b755d409dfac744a7fd964823ee1e32422c5401d30b3a7630868c23e7c49197b024d55e8ff9f1417a62ab43485c308438e6c8f5a24dee612bb17f9fd29f66c5da2f9776fa4b42a2b261597877c6985997adc7e3120f94e24e7df1497ce25ce53e39b99d8411b3b61519fb76533edc82dbd209b122dcf539683027118d20882ffa4aced917ab1c4bff8529edd841381a13cbc80bfeea734b26a880217d81cf8b17974060944930b46a5cde31f98b502c58923b95d98e3cf33b027fd767d9cb9de920ca17d205b29e3dde36d7217175a79befa79a6e0760672da142556af74b53496ae0265f6f6d8f585503625f40c75ffaf0766cc84eeda17c8e49d545d886e8815dca61e12e85c67fb24c21e50525c29634fa055f0f3eea0d711e9d77fd69f5ae4054146d97eabbb3f8cb30a7d8047a7d89b78cf46e21c2174dfbecbacdb3b719df24da44207d0a19d0637e2ca3816c72371720cc6112bbc0d88bf26d06fa65354707a6efe1af916a92605c3bef4fc81a024506aecbbbf3f0298c4d0d2ff97ff924846d467ea8d0a7c730574a2b3cb8fa8000350acac4f823d00f1940110313ffd499d311c3ac186b0673ef238b210d8fd60e4398b97914ec1fb5edd968ee8c0bec72681c131bc5ae79724dcbc94cb17c9645f474e03ded3de10df64e167a2180658092058079336b921809ec705963584ab62ac8179798f8f65439193986e63cf6abda02beb32bab93ce2dd14be662ee606074d257b6ca27d368e51e60f6ec89a921305514259c6e72ffc08695d37d83bd87451fdcfe07824e5e7371bbedf2183ca6c4a5970d988c6b586e9b0278131cebff8f1c90517e621de45b58b060df4f33fd05c94f8ba964b541105e91e3a93bdd756542d669335c03c128bbc3dbed8ab88d81a3c6a21d3391ab0cb5cf8b0eaae20f24365b3d233408129dc8230efce8979847f32c18ba746eb61cfc40d63c0e6ee26975ed3b6219ff30388ec5007cc68c32b26c4f13e0161b07aa3bd1c0ef1890b0de2a95096085043f670d7593cd809c9a5d8c0ad9efb614ddf2bcdb3a22465245ef46d9a0278f4c7ad796377cc31a3f417750f31e072a04ffc13e1e7d75a768c6f9e6bbd3297fac847fbfbd318ebf387d79ea58dab3dcfbb98b1f51d73a83100dd00cd2df46375bd836841908252e3b9c0ab655cc7820b1c91ff3f5e6395316bca7d13c702af6b3e5d5431b6849fdd231fcf23eddead79140e0d68abbbaf8a9050c20d2c57a0705eb3db1baa43f36c97e71813f64f334b779462ec34c87c149cf736b8e0716257b0f6d61069b9fc69a42dace34f416398efe081002e9f490cfe7bfe1f6b5675467459ece9378122c90d452fc4b9c7ed45905e5209079697c962a539b0df89eefea640b4274af9fb03001b7cf596954e2cfbcff08d3334eb2bcaf0272508b9baa7f2a4ba40ea8bcf388e20f8e98e0fb2d634df5f6b5a040002dee244c97b70e4c3684cde3b9d9df6c80ad2169198f61ba7ea0dab66bce1fc34505fae8fd014605f08249b8fc04d44891f7636623a076027397be25d7ab621d92afe69813e2b3f0fe41881509dbcbcd5b213f6eadcaab7574e59b94ad073c9239cffbb74178eb9674a556371c4cce1a839842bc3f79c1e3f1ce3f49f3700d5e07f31d278385edcdb22c08b425c0096f9a93fcacd6394d109bc2eb65f441ef9efe08d569feb453ef186bdb85b9c42acbbb45c262d126b8595e3b761f0791b99dca8d4d75cc6c82f3da213b174cef009f0fc7df7d6342a574b403671db5c30fee75d8d495d42ec7dc1a19b4a3c8d70af33aaf51af9250c62fb44a9365317c1a0f337a2fe68c2893b968de7b74932476f73b01e77918806eb1f72c4c26d063507d7d2020e0bee03905ec4b43f8bd8dc92d6a6d6f3e82cd41cecc367b95d479614eeed81e744bce44c9e3a2c63c1189249843e0a3a77f976c2609a8422801794a4dc5261c896b58748c80107466c7c41f4f3334677dc5ad943f48efb1cb94dfa1cd9f8e2fcc862246521cbb0ed273378501e4d6e1e802029e715fc0b0abd0f8a6817e26d4e743049051e962bb822deaff617d715f029e26b065ccc2516f203444c8decfa06c43bd5cd7579885cbd09aec25ac8d1485b649380afac80ca4394d7bbc8a145f735bb001aa2cb543d85cf86ae4979d3868c6ad327c61e3bae595ab39e7f46eaceefaa573c28247b558009fa429c900fe952620feb2ccdcc5d974ef71b2e95aa172f5878653a2f95290bcd3712ae5b7fb3390ea2d87675514e30803bd021df3068f8e3340191945bbbe12308b055cb222a674b9091cca4aa167653325f96542f777e47963d99612703d98e8a8517709d123dd500b8ab3484d953536004f31ad0641e1e996bef815fd9f92d2cbe8952fb0b061c247755b08fb5603cf9f2ad9e705e06fbb648f59a48fe3d8bea00320b8859c59a0c5287d5574825059163d48dfc60523b33d67cb59c6a3371f744cb32497c21340dd7c0f7f88524b7c5b87f3ca1d9ff50283c0791baccd4d2ba118cff84e0c12a9e9f7839eaba44fdf7b3952fee47be735f7f07461ce08b9b02a90a830211db9518c2801ca814aebc81bb1b09cdf37b44f3e94ef684f20887c8bd48dc5dd94c003434b8725501a4583c6636028757b587632a8eddbb9588201db38963b42c2cc78ffc04eca524ca4605c27f83c9197e267070a5a8b905aae4b1274608aa5f1c2b75ba5724c44ed87136ee6313f5eafa74b5301c202117c001d9608736de73a3da2f6dc7f4a265265fd4c3e622a31b2e7564e4211f2eb454bde3bd31c7d9e305c385a2fb9ab5e22f01bc5e0ba58685038a2ec57e45b7b53cefbea6b2f25d2d69f759721c36da1c9ea61795556b3e28b087fa911212a4ef8f54f3d7710e0089290e4bfec355d157aabaa7ec0e422726c0e94513fcb508f320e2379ea43fb34af7d143df96fcc12bdc322f12ecac32e657f40e3fb074c7a67fc20a04cd50bfe7a9b917b4b430590fcc81dae47f39910ebb3bf87c1e1baf4a4b565de3505d3a48c4344ca7c9ffa36d639a178c660a1c008ae1847d974e1091655bce49e43cd92572ac9f4a049b083682161e7895c83c56ff5c77cfa0eeec4d89228701dc09db5789ca865f5817891bf97ab2951f71911bda71e26009ad8b6edda1de12ba03b34ec15a1e64864f2ffabd63837edb71223a21ba61e5a7aa102b058ce893df931357af916fa996fd0e7c0fd2fc5400e9c5c84ceac1531a3d6e7cfb470c0ebe49afe3247114dd38c9b0464c2df172cbbbb41ea0ab0ae13ebb6a704e562459d792d8d4b8cc73ffe33dcda87c48d7c10f3631b8e3b3b8de1c7cce25b9671b8e9c7e24b331ed78c5472a2ca1967660a49a9b9eeef8718a0a61352e8aaa4c072396ce6c65df16d62b598e1fc623d6e6f467b26522ebbc9d791a18146c06a110ff2b3a69d16860b960ee1a80a87a548be0486d162c4bab9ccc8d3f5e794d63c9c0542624c263c8ddfd21468251a933b0c67e937f1553b5c97c7c90348f22a4dd68b8f01e9cc763dc87755c78308108f1ea9c38fbd541e007e1e8fa15be9dde64c7b78e84f2c7fd7db79a692a36e971e97793439ad3002e2f2e20eb7f241e41cc89419c7aed5c767d39886b192379fffbe1366159bc8ef1294dc19e8dd220863ad0f4be5554e3da65d5976e4cad5227388eb7c02b23778fcfe8a57beff1065def9521e6204daf1f18ff6fe7f5fb4e61f5da35d9968140a0d8b6ce291c41fe57722960658fb042d087ba8ab0dd6f591df433c5f0fb664aed2993dcb6c5a917184cb167900f406825406da9913417b050bb24d25d577f67ad377a1f11b0495c14391a13b0fc386414de0832556e63e3b7f483ee4fa2ef1153c24636b9247fdb7b28da963463d0faf29c89f54b72ffccd2156d5a1f9acb27991dfabba298e779e7ac7ed7192e1f58b497cf8f7c38471aee857142a9c633e5b2fc4939a58f62f7dd3701c4d0298906318c9d7ad704ca7fd286f3f85c70a8e065756a822af506a50e4eb73248d1e0586c971b6f5bfde74ce61eb2ab7076fd26b444946b91624df73f0e63c588bc44c03753038a6c971a69203b2365649fc4e8083f31ecb1ff5583e8f7c3cd1067620f4df8f1ec95d3311a6679791769f25c633785cc5a41549cfb53c3150899ff436cc6cad837fd0b194fe9089c684528d332bc92e89f26ed60ddce529cd9b28560a2b2ccbf1f17f9347f8dcb3391605150575b469b89542e82ce428f44a807317959e2365fcea50db38b0fc161d9c477280e97f09f430f12dffe43bbe8c0fcd02c463c12ced91db119910cb7b5e79ea71e77f25ed1fbd02e7463be0080136c72b79d726e746d8e277b4ceefa1f60dbeaffcd3da8f179978548e2c09c79870cc1d8914be4cc0c1cb432ee7a78117ddb345b59ac9923be0e55036499a852d4922f9491b5f1454174d665a2f52bbe1006e156412f1b327961e3b1ea19f786b8dc31db6affc4c68fd0e570b6a6bdf4925ec0be4243568cb050f3f74e2ee67a2ad9ea942497699681506e79b4488d529ccc5135f9509958aec8113248707acd1dee54b3a70badb609bf41749386df16dfc2b0065be4dd9207e99256bb719611a26aded45c4e5a5df0866cada7cba31a7d08b214ea5ed804012239c0f801fdc5b66be981cdbe2b308e55995dbc808d9d621c6cbeae9a563341eb28027596e5783af5d7dd59a103999871411c32f84a25da1c88c75dd7fd3ade3b4428ae42fe6688af02c8e5d79dcfdcb7a50537c8f7d259dfdbeb78e2b789cf815743870736f92a026baa655754429361c6438c3d2362cd9d4773d8e85f8c5d4bece5be680b2c3a9e0892e9952b5c838f3c6bbf60e975997c8afce5c3587b8bff618215b7a08da46e1c1fe1bed45b54b44a3f869aee61610f4f77d9f353b484244e5f4ef133d0dd8aafc49bf4274c3cb97cdd169bcc4055f414989ee93796c36a4efd9d03690ab075d2f31668c9a1c9d53fec51693d6e578dccb23b2289c61aec9f31da51acd3b7213bcb03c954f51b778d2dbb4376eb00fa56d59e2c96a88fe88d53048106f69a3400bafcac5c5521ce78b2d884a0367047692a37feb31d10178ef9262754b0ea570fa094187bc6c294a1a10bdc6bf1db6384b261853b9b6bd1169a1d2666073b20c8e40594651523a76c371cb39d3707fd28661aa81464b47093d1ba86751ff7b296b58bc4e09bfc67662250c1af30109f0de1a9357b7e1cfeabdd8078f7e4eea13ac1b28f8e1d9c7844655f1d1d84cc08b6c89a0bbe165b2f08fd4b27475ce135d4cfbbd0e700f8fe5fe401f18650087030e11c3484d931220bf78dc386aab05dc1a123b60e8f7ce6a9c00549be68b08afc5a440a824863c43cccf1f0ec83eb664cf6b1409f7d480328968ae1bd9a8bcf4e706229efeb6185c072e0e6860aa8a13a4d6481e5dc8723bd5d7e1f0884248039850651953cc28aae4b649dc8459529c3e363f4ed4b88a3ef0740e81802348699b10f58ed774460ed6bff8306553d1187a409fef26b9c650be5cea6f754e44bf384fb941a73ad1db168a13bd0dc8be76d2ea37aa85f3e68b3c4e634be6efc400284be3b2c018279865bf7ff9e61989966f75773c251a24d5d331e92cdd00b10b491cdba57e3220f95d5ebabdf8f5146ec6a53d874aa965648889bb958b95d6564b57c92ff2ab50a0b256aab975581440ddfe80708bee8f785da569d7fced44d83e117056273bbc9e6f0134b6a11249d670c59142843c64e50115da477e29381854b39c392f525ee4a348e551b9b4fa53c73bb96cace336afbb610de27af89d952c0f1819c3cab0f56caac8f3af65210b3ab2125ee0f26aecdcd7a289658d7e110cbc0a359e57e113ca734a29db201581ce3b80c1c9a171b72c7b3cd9b247e77348e4bddf6faf59ec0b960f46f607d398759478e2cb8fe2aa60bb21a09f76ac6ed4ddd9f1a07ca159591fd7cbe33c1dcd3e5ca84c728bcf68c801a70af1b55ecdec3e69dc9428fec99231d1ae5e5cefbca173621c046eacb49047b58dc09768ae2bbed592708fc0e8051c4ff9f66dd07bcbacebaec3144d69904389c02cecc54dbaafd08022996359d09023a7fa4d1c38ef59171dfd45259ca3692e5330a739b92f444ff95621ee1c0df80a4ae5252425c7216f5cbc28beac9df21adae09311c4e8d6f63684fc40815a47d7445480d896eac1082e5640ca0ef11f489a60910925a637a5a2bbf1b9943922ad95304b4af322c854c4f95c11884cb61a4b86f74ccd203899ad14aae83b388fa7d8fdeb391c754f90a1b9eadff186ef235dd4b74ec9c4677543f2560e39de21ab2cecf8062c7942b815dc08f6e3f3c51f94c4eb3839552e1bf0ce4d1f21870d120387681d96d83f86ddf3d2cce6d7646a59ffc962a243e87e52ae6d664982db1ab300e138a8e3a217720e87f963e318895b362359944c6c31e8348d318c67e18bdd2f7b56b8771a33d32fe08fbfc5635fc0eee5c27f091667ab5fc44873799ff681e8b63e97247c23cdc2a5938125534582bd9ea727186229ef2d7118637859969553b617fb08d7af9143b963e10d6b24b054cb8584585671df2669ee9f1ce9384036121589ce0f1791103aad4b5c1c4eb4cbd40ae9abc667720790a5d963dc02d215a788f2ec4d1e4a4cec789d18f19fc6b6397036c5e7e7ff26df79e2872a61b949157dc9fa0efb4f638d05d1211470fc4474f26e278954d789135cebbdb18d4fe5d324b6f19deee4b2b8cb9d5afc94095570de11069d9c1c11add0d8529e53ebd5b98a5103079c9d006e4fd83be1309ba2b81b98c492acfa6366798187d9c852f5a91b62b551b35014c439eed8e2af9efcea0d94a28d43556960829b803959f3eb24f0bb2ae84d5d519f174667de45953b036fd78f398786b8d27ced588a3817939d5ce89f698999937c1d2d1fec8fb286106696cb30efecf0364b37e4db865bb7f6fdd6d4695a6f6d4a7d17b5594b1729a92cb314f5fd2d18a51fc3cf75801bc6a3121a0105373c4bc521b1dfc8741ae98a912aaa29d10da2c00d798a62fcb70e750046d336d25c4d8fefe3258c28236a720490d7653f57e915f7b57824e91d68e704164bbf145d094c1d50e5f3d87740614d7c2dfce1945f2309a07362b322c786296a8e771b480e8f63b4db4c28a26ed80a2c5e6fd65583e0dce024dca01b1f0f2f69f10ed79344d1b38c157f14f4f0b46a58a28f641a0f9c90d85f6e2cf31ebbcf6a69c46b440c0123a6bc6e986036dfcdfb80917f114ff4117a0ea4566a8fc6536706d00b58ee7f1bfd67c7cab0e38707e31075b215b444ea5ef06a030ccd94ca7749957252d6333d0e57f8208504c6699d4dca7020515251306958613422b0a79b92bb21ba0464948ed61258078f47fecd8d53ee752c0dc32c5f2fdd82583b808566dc868021533926476b9eb586b8c92463ab89c0bb6d29abb7e62f17b4449f81e7d4e0d0d986e34097eda9c061d9a2085c401c99098974cf3186908949faa86eed875c50a21154909574f070005ab189afa63a133e3acf76ff6df33024c955e2bd0cf57bf6917522055acd63ff9341f496b3a08f2439fbb630e48d4551ff3c6997acb1fa03f97a591841dfdf9175c9afbe7bb6d45d056847e7ad2152dd9d33681e63a30cb2a5c11b4547d2716bfe0686774c98e16c68300f5efa0ea9c21f87ad5c962eab9af33051fa34f5637d3ec0b0fda6980a6f588714caba9b9d823424b616310e8980876a893b080dd51094b949f77834e7b1bff857bc1eefa810da6010dee320771567d10ed4a0dc2524ff86ff29abd0502eb9c5009355e9cc7fb8aceffd61af6f375a5ed23228d1c89b45539b03600f6300f6e6be7e8d3f9826816865e7defaee34117eae2bf83efba4ceeb30c8c97e5e110e3cf59470301b9605930125c29bd7ec4748e47dfd2a8eeffd9072a89e8fd179b7f2b529090745d0cb8f63c08d07000e226693a4f9c0e007046e3120d2ce907fbaa17b12a5fb8dff918e08733873cff228023903b2586ab918091ea14f0a0314b7110f40193dfb76523a83c0465680f2958e83f82b074f12988420855db32b33f453234a1e84181976040db9d0f5891c91e0093e6b89b0de63716e33dd44dd3e5d7ec50af3d4921d03b18cc8a57615580ada50e247d6d3af8c8c448d755f965053c668e9260e9fc05353a6170cd379f20744c830641df996a44ffedeb291320fba18cdbed303c839f0ee972bc286afe6f027cc5483804f0e280277c7774cc808365df81e35d13159dca9c8e8c6ce9eb2563cb28c6db1c52cd57cbc6393f00d83fdbaafcb2ae81ceae03979d944d19b6950ef3dabc15122160011881786d4d5696b84aab87de03d3a077a700c0ab3d6bfe88e70f11517311c3335b36c98f42213c0f6f405359da5deda851c5f9887ede45bb8067a0e2add937bce11bb71e90e7ff7eba7c6f2db318fe9dc357c5f957d41e8983842067a868c608dcb392e609d9a92e7015a5f78e6e10cdd5c5bac10c59631ec3bfcb9e48d71a816bac6b4f807ed2c09c9bf905e60e7c8d88d9a31b028b59c380b43c7856a049cf67c8f57661abc14e2ee0ac9e45d79154bcd71f6c6c00577cf47cd0e3ef92cd38a7ada3c5a9e7d6b431a648756df6d4301a2a3e32a11b84af59ca6e1039b1ece6e132c16264c62164003b39d087948e22ae9f06caf66a6985bfe2268a54777fcacf3bf5e2aadf2fa26ed481cba424904d50ca2201ac593dfb46310cde0913bffedd08f84edf72c07d8ad7c938a8805e5c28d377f77355b816a0d9cfa6c6c696adc79222a222a126ac78a3f540ed7bd9a89438ec11232b63493166ef7537a8fbf5f5d46ad005482ec095e6fa624c7c592d83ed2e71207a0698c33ebb720dbfa11e99d6f666f980c315b4acdbe1c3087e643c9c7b032597ec742e03bcae87d18646baaa32337666f52728da52e9931e2699cbacd0e2a92beb7d2687e4789c58f1d891223ef9bb60e64c72a33fcc8322e8417255c19ec342760513953c3e9c72eddcda53fd8afca5448e9f231b8a64fe7be3c953bb9c3c4e1b8049bd9bafdb028bed9cff031b7f2c897448dbdf83d0b9a041ece3b26ee19413921e8ca1863f1f421bb4c30c68232f3513f367315b28a79be69d41316c004728efaaae16820795cfb7005061dfd41ccca2eea97cd96712d2627e0a8432c307b8fb5c0ceb7f64292fb819a7fd040b2d91b578508d91d49bf37f5fd4975f8b2764afeaa28c90d27ccc941176e728dfb7f9cf7fbad51e9aed73fd776a47287c5358939f817be036220ad66704dc60a45bb7ee160757bb1520ca593df36c489a6095bc1f6064f78530d1003696967dc6638e38a294188a28705dab032c179399f228ce1b61614b0a61ce9dd2ad29b9492e38517ff1c473e997e4efdf2288d8f565046a6451b3e55deb7fe7ef67233ac7ce094c74719beba8adfe25a53506b1252678e67a1fde5f87740a48f8c0c6098f8c73057e40b8b49751adc5ae81fb196d8aa6dccb97af4d612b9c7dfba3d68ecae610241d661ad592b35fbacdd31ee3fbdc0ea4f48899074d9af98444f5af67e9e5b897da57303d9e4ab94578ab3e7acf7cc42000c036b66c0b153f08bb279c7c42316e1f35d5cddcbd6f4eaddab800f9e734784997f357aff817522d821a65c7b71a443f50fbbc4e0057d66c10bed2acec1fb81b7350f4121d71a4ccfec8ad3e829ac27c07632b1f36ca0b21a4b76637cc708cbc67c279fd33c4688a199bf4cfa1f23a983771bf250e35c8d62aa97d5157af20d1f0497d746cbaa160302497a39e0641d29330d573df7dcd48c25621dc06fd9586d56080dba442b9a26811a7438a36ad904b6efe010b3540b1ca52ec20cc1cb06cf665759e159e9001a0f48062941023ab81267eb79fd6944ebd34f9a585b106ed70973d908cd37dcd748233dbe258d86ed3719adf0682a68609307b1595b8c53f1c6697c4f8371627c1e5c16dfcb84ddb4bbc97ea77c9c62a7b88600534688bc12183a6315b38709bff3fc03fda32a422b51e496fe866dae58a24e6956d2a0a25d53b4bba4d122854fc55ad8c390bcda3ece1cac4069ebf1c70f27789eae3af062d0c118c87937230067acf8008d1225871c1dd676682aaed64cdf9584aa74e067ca513a90283e926087d7c088cf9c2819d2212c9dd65d1f1cfa7004782d0d4859313a26c540b1251e5a00cbc4140e820c3a0433dd0250f25c54ba2f4bb3c9c91fd229d27ad74e0c04815a6d2533cffb7795e4d652c8455dc243d7e5515a8b036bf560be518fd7f44780ae0b1f87e2704ff04a0e963ec6f3ebfb216cfa5d4172c70f3918799583b13c1d5fe301109cfe8e5f9ea2a5d851d3eb655fff8573e719e0f851c9b22d89e7c4088704b0ff429ccd8e4ac1dc7fd5e903d5cf0a6807b9e56de79d18ca38c3898ffbbae5c45b6683e78928f574bd6136451678b498913637587de1af73c58124b147a92786ea5835d3c55f7f70ee2ea38c34ecb6bedce0553338af01705c2a1484e0d790149c65e0070cfd1464ff1e871ac398479e6cb48fb7ccf129ddbe1fe0d899cedf1c93686403785737d6baaf0bf401205c2634f6d02428331977eed5eda4f87fdc84c9b94a97f12dce7ee0c28137eab9e134f2fe22e5935e20147e041e035290ac59eef6b6c364f9635f7b64d197c2a427c0084375373c509990c9baba33876616fec01b93fcd10621f05b517ddda7ea8b9919d7e2110934e38b5122c90d57aaa2ac74cf2f9c63a47d09f672d4c7f939feb8680554d67dab8b678a41af3ee021bb154fa97eaff135ea11b2aba05f351d56f0b695c6a5d124b72e085f304d11c203394a9bbfb5c6c0ca8ef23412b1a22b658d7c855cd07cc6ce8882a2d8e09df806f5b9a22af38260ad9f787b9151353b4dc611260fb018f29268b53932e709b85032c37a4532f18c30174a32c0bd9a658b8d29ec6752052cb453e610df084ba7ce54c4a0b891ee93537a09d9d32233b7f156647d929be942a105b2635133c424cdcc910eedbdcf5fbf28504bc645e0c23be4ebbd4a8358a95578778e2beb4a4176bff452d002d3a079035e4808b7943071b7e24e6f734ccca7571d6c9b932d48ea795a917f423332de95bf37f308150865edf16c88b558033117dad43ff696405937e187ca2ed60d4f3491b4b63ce0e930a9c46152f838d9f5c35fc58900d656ac7c5e044ab1ebba2552203bcdfde3e89f1a364b4593883f736108cee74854446c721e11e8777c2ea5efa2b326abba0405b060e23cff3763b3c5e178fb02dbeb23fce9d6e1b4c5fe4971aead524780905ec1ac06e2a771a7b4c8494178ad9bd88b8a7a32c78142b5165e7701d5c855566404f5fe4c9ede238d735319aa5ee83610c47e459ce0773f8bdeeb34b733419ec182b9f8164315af4f5e67ba6c34737ff714d6fdbc2b142f908c475d218ed546bc8ca0265de0e7c752bebea247f69a2e7a6a5563ce92c27db05d0e86ec0642a3531d733b3f80ef2582e8249eccf44aa768d0aad618ec993333245422c61445283da01c81413991d0e58ce707ff4b46678703a3a624380d1df040111c4b2d9e05cf617976dd2ba8fd9ea32587689680d282310ee0a866cc90dcc8ecdb95a1bd4125b3509c026c268617b4f3ce67eb53eb90e8c1435330c9eee78eb98ad5734fa3afc5574fd7498270b33a0b0a05358f714000181617a8e37673f3e91cd5f1172b8c2535085286470f02fa7a1630e6203c92626bc6893d93130e75d1df643029d65cd7202fedb86f1c9f9db0d7b75c6c4cf7d8ad7d94a3b5999e1c7c72b5db60f39708c48db56e32b526dfdebef9a177ace24a33b826aab389cb82dff4c951b4cf60f092cf1e9fac6b28577ef258c0e96f3de85272977eb758a06cb32433c1c964ee0771bf1eaeb303a86369819a2c040df9ae29c5502d336601f5ec07d8d4f1c9324dd1479c75e7220997d60c0ef19fdc65c2c239caffe17ebab13033490d94a231c2a2248b6134417e78a1d4ee3e05fa461ecc6f488263f5e4d72b34e3b063e3e7c3d5de31c2f6b372db84b3a62ee11eccf096d4fa8ddd111fe31e861360ca4436614731131dbaada358ba27c298411439334044db2f19c6e6fddfa3716ba79967aae473003e6856463bbdba275d1dea5eb8d825e5bf91341e33c709edaca770812fac4db4667ac045d39d0cf6933cc61ab4414dde51ab84f8dc97a6bdf78c3be0b8d7d5c21d357990bc10bcca9ed53258fc14fef3bf1c1f423bc53697cd5397f9a2dd6e8de661716b0f42590ddbee78e6bd532e4ba80c09b2a3fdaf2948c16fa71e07af5b90410e0162b92f0f24fc33b695b9aca49a4fc5a076849f33989167ccc8d397c76a72460a3bc0fa4b289d586160dd9f59866ca2cae58f04408bb1124484aec25692eba2681f4cac9c743b54e62e8203f0464526c682f7580b0214e7e3ab9a281d52a2fe14f77f1a2262ff0d12e3ac354fae4eabea6f44617efca6c7e6dcf8fd9421feca2379fc5b7479b46e8f447f1f91895930b6bde8a065ddc4f65d05f15cc821cb33cd7d1e9af1864fc197f3be5fc80e4d1d15fc44aba7a8b8300b9ba0b79c9aa208318d590b2710d4af6d71a292f8b6175e50f95c7351de015214fb1dbfcdc8237bf5a9e0618319b83c11e63556ca9132142c51549f4830f622f0c199d9483d2b9ff8641a877c931ff327a3d957fc4f85c4362c53c8a8fe42834534daac256952a3c6e431339075e37a0169599208ddafd65abe587b43a914f236d5c12c1bed82651a2a56dc35f06e8a97722810aeba26ad05fe32f3e42e9cfd0bfc28e28c6078a7a6dab0b5d6fbc6e1b924e231e6ca7407fa1969ea19b2520e6d65d0ae915ca01c131dbc252b3bb9f9ff89a3f7518786d7104650203208b1f04eacaf3777b843a8dd5cce3740b68f462f5f06478ae11f7662d4120e592404f601898490d7c15ac8a0bc27e1784ef6e24b8f9d01a58d3e4a0d470d53b37284868ab0790f4948e34c98f3ee0a466fa52e6b79fec00f0e42a3937541d086370f18c31fa21d7a9da3101026c5c57cf211f8665217c5649f2e2578434643c7230195a725d1a69f819cd76f11e6b871603efe15dcebea524b229a4c50eabea8478fa31c939f6b75b2bac0e408298427db3b0949350276018d27f32ee8d73f411386fdbb0f9da87ba7d0944bbdde6203161e789599d7b5ff63d7e582bc3415e8463c2435913d73896e6119696761212168c090e9f84dee69c9487ce3e47c3322be04169626ea481716d682f3c185ceec7049910c9c68923015e02c3055206a20c579de308eb6ced489869d32f60690d968c56c4f46da2cefa38ccc409385b55ade8424f506a3ea17841d40ae023c68f37dd028c83be7fb63625a1ff987b4c33889fa189bd6dc71a886f79fa03a8e6015d78f7988b0713f297dc4e8cde4e5eca0875aefd35427f84d129906ac43a072974e2633219109c49aa94bc1d9b1a7f4d07f4273558b473ba75fbcff9f2f283b36a22e979628896f4c8bfa1dac2d0ab03efa9d73a3629f224166d28e680483401673e3834523d205441d84bcb6302c5e14d3c87c631455a4f465fe7f70b0d8fdb4f20de9cb16005b252176e6be1ba953ba189d69bd8524473827ec685b266873336da91983140440331555b1f22fda638d4aef0186a337ff99111c68bb2fa940856fe2204ced75184b465f76b756479cb657ba1230ff908dc21a03297d6911fdf47e0bae07a834cc7f349f507227d2b7064e8403764c7552274d876161151ea7dc99d37e50da29608c64625b3a386ae41a99a13a582da8d57be8f307ca2e0b754fe42dce0795800d1c7fdadff3196710584a310702dc9631e07777461b34f0b8d713a2b9d0c0586e9784fee16e087866a3f6a0a00d78f600e81825c2f562ae5d8cf70cadae5df08fe95ee73e08a9369f47806bb7d1224b516a57f90230588a648812635604b7bdfb49733a9bee79439982380031ea493e24656be70f53cb1a88535f598316ae3eec7f155710d04db6cf34433eeb9c8f86334f525082d4216a8d22c20b78bdb7259c9225fdc07dc93b5587d6c7954e603b2b0eb48037bde1208dd582d75db12e618404a50967265dc3f400629cfce1d89d2f4c6a8658e6fbf21aa2fc0bb520c0d963de05581c9a1425f29017c8ccd70654e91fd8f2c4a6f66ce0d0632c09b2edfe9f185c2cd93a36743b95538991ae66bb5336d065515c24490604363fb22800f408563ffead4c721c21117810709976aee1dab02e7a38734193afe632c4054a4474446714f5ec8021063ed8f6cd019dd1f60155ac4c8638bc9d9ea86982222f83b45e5db49a748fbaef97a3284b647b9018eef20606e21668df5c3cdc5cd5ffde0c77761f79296b85d3db4d4d609d79020bf82884abdcb53391a065189aee3caefe17516ccc679315bc632de47426c9bd51c6649bd82b230cf9bc1dc595081171a3526ffde5c0c702a9c870a85b414a841e93d855ce9f0e29acb063b51c3bfc19e4115afc6b59d34aa0f5061c22c4511b5668363f058419a80115a03f7a6eb248b3c0062d58426a0c2aa6410177fa114252e1d01b6e18662399f9f99fd408761ef4ced9e77b39fd99b6b211af2a10665f23d437dc067039f8cb94d3e5e6c39bdd8ed43e3ca7ed6f9f49525e962a3f920cfb5be764a566f3092c3db5ec6f0c36cb5f387666602bdeaa3e39e645e1e2ae11766cc1abd310ae7586276b0bfe54e96fdfca0b9f30dd202f53f85d5f845249584d5b61e68241ea03869c125308f6efef5d38a59a41bb2ff3d2ed00ee9e3e3cb76ab186e91b90bb3e1d3033a64ceb0be1e66aec19fab46e7e83f203a787615fdb4234574530477127b042054e28b41b3581d00ed36c0e3a6eacba511ad09c1ec04fd4048b117db90667bdce40634322cb2a23cad03a880d89f0348293b3ac5a68ea83603c29731c381eb091a7abb157b1e4e99affb373464640db7639f26d2cc1fa3c1017b75c199858e62445c3d61ced192a254587d0d56e0cd962042a754d8106f60f3a0178a9a1f7e5c0440c3d56e01b561f9a0df8085bd4ecf9e40fd24ee2c3b0373d5f884d3ff343ea493fe0090f191986f68523f2f5c6d67cf2f07af7ee3e15557bd9bfa5d42d4dd77e2b2718a42441fd9dc29b3372199574f5ce3cc3b4e1dcc0ff72700560cf6c2b04f9c8ec36573aa391900bdde4d6fc9e556ea56b528181d003d1fc1f9e97fe4798431c1457360ac1299bbfd7e620867e878732683a8611e640fbd0e46da357ac5f48a26dfb0d6e75bcc1a06859dd8f07fbf0cfa0568256be80a0f77a7f2cf17d3b86137c5b6e7d69182eb4685e2e29949a4c8fa7536571df2872afa6c76162e8e1a006340dd01ce068473efcef402ed68d04a0f300ad1ff1f95e65e08714452628e43b3ee81c15e49cf60a018e46aa488fdd12c3034caf19a2d56f62046dfe53afe130508631bb88a063050cec1aa1d072edf9b2a5ffadc4a1846a85b8551c1460dd977e93557265cf06ce34ff8ab6e787af38760139b7f0bb0e1f617a1e0752e32dbd9e67dc0afca151c1cc9977f66aa4999dbdea936bb567b59aaf7dfb101b913a8a1fbbb119f5f6ba218b61ab1b39f79c56b896fc2e58495208dbdee6029b21efab3b328c828cba7fed6fca4b23b18fda8e7b23d39255a926efcb38b15ef41f32928e5c901690bcf5aa5d582a6f981100891001782659ee23f60914bfb6b0e6c13e9478afbdd526ecad1ccd4fd15806e630d98869af16cc4eaf8b3303ed76782b2b147828822a820740f3bbeaa9dcb401492ca53c262636396f66fd48e868bd3012a22716ebb4abd39fb395d2c7e4861f14bcad170a59094ec4efffdc211514003543f7a53294162c5fdaed5edaf7725a1422e704f21f9929907155fd4640f2547398a3980a3d3e58f7e3a528c227217ea78e84244b39bd8b8166097ea28540a9e18ca94b15e5ebe8ae677cb4258b9ed40ee2940ec48bfca6399f17981fb44c5207be2f88dd42c8cf0ffd0391114a0c285b14b57cca2f4c1c270bf52eca32650fcda89dc7f9a0be787b8ce37a34fb04ec9e54e4ba700bc28e389dd12d8a4755aa3663e3de7577f80a29984fbac19bcef9f2cf9f27a732481ca5a2ef9c8c2b0075039bd8f49df55636122803dad5a6fe2d1db4d59cabb1e858865acabfd6cc7023f312bd68844213bd16eeeb017e8d6f9f6e5a9277e0e74406afffee33f7d6455aa992c43430eaba8ffdd94032679b7d78b987c44ac4a9c1265c06b0f7d7afd2d58693dba62a340ff348afed4cabd456ea98879723c0044a80de991f4e15a1454d90244f375eb177a62a6cc39f83d9ff3f75d58796a6cb1f8ac1cd1044cbf2d2e05f87058a3e1fde48930edaf0b917c414dadfc328717768bae5f93fc7d8fcbde292e8778423dc77f736f847600e6e218369a5b2257c6aae20ce1ca78837a39d4260a87bc5e6fa2aa40b0227ceb134ae55a198b4a850032f08ab56684162b92f959022444b4dc672498c5dcae34d13fa8985e0c4609009452cf79071871ae5287b3e9bf35f5021879f24b3b91a48190507ab90b816f6412dc66b06409901cb9d4dc3229b92e03b8a4e0cd670eecac765f2220788673f1367614eb8cc741d163e3c9539a5af14c39ba7e141a44c1062eec8fd35f1bf9a316b9e9efd1b8a97855d5cb997e81a8461dcc6c53dd1608a1355642f49805ef8b2c3492ada6914c508632262f2b15d5e3ecb2c1fdb6ae6a35398d3c694e656c64fe4412ba251b58bafa6388946eb12344d3841e1beb2588001f9e498e140f1e91c7619e46735369f0b370cc039332191345caa3c649df8801aa406aa270a93f322c3376317c8af9fdb19c4f7c6169675b6bc4714542a1e1d9510a1a0a57441bb2b489c7f588f3c11632ad99975abc22dfee04af09b3dac8b35a6a3737fa742bbd2a50265d1fefad91ba835655e5202db32f07c472b6436e100fa61da35999c4d05da64af569d6af054731102e1688582cd8f4363ce8afd159cf6c65a31d64d2e9b6ee709672ddb851d36bd2a6dd4b4a987cf522833f474c20697ca2941ffa1910f87d2cd3c22ce238530ed6282d8f35de4a7965957ae75028e7a5b48d4ec4b02f28fe891173e92fe38c308153fa3e095529dcb200c8c501b82e81686e6589584cc6f77efadb70b698022dbacce60097173f611fe21bdd45198cdcf0a015ddc60dacff7dc3eb0d445711f37d624950672179f9f69c18e212b2a38824d15028608411fdc8f234d5f236988be92649a227d05b73f59269b492428908c4ef763ec598ff6f4194a40df260d4bc4440ea931beeba771e38cd9899587213c085006069b2448710f3b2be7c4afb1fbedf4830f7032b6a2334da825a713b4fd396f2088ed4ca3fe5f964bef65f57164557ccda7fc291f72f68f86047726c33b2e3c8deb8a698e2fd4d9713127644b8da762ede9ac084e34f69a604c4aaf614609fcdbd1074f5fcb38a859650f5b878e6a91898dd057a955f1a362ed6e105fe5d0b6b24efd3b503a47296b9944cd990f89388f4737774bccb80dbf6fa61579ddc64014bfcc5efec6d5e27035bdf40fd0ccc16d53a96e45bd16996d5585d1604a073c1c660a616f92be25cfb18c476fed3a4cf4e8bb259a976e8f53bcdd6656d27686566dc06688bed5104f7941cea53249dcb6d4bf8fb136b381e7ddcc49a152cc8aab3c6680055017b4e0fc0b38a3ff9e4ed64ad1d71cd4013bdc293fb3013c1c32d5e9123ba54fe9640bcd2a5cdc8dc1270b873eadc9b04acf9d5fd5fa88f729e37cb3c8f73b5b0df05fdadd7d82fe86142b4c8ab2ce06580b3b33fd2075cb8ab28c8e1d7e505088084101dc9c8a0053f837c2ca1255f8297e6f3d51a9d1cd8714cd5e06605ae165443c29733f0b0bf9df271845b82285edc5e1f526931971ef56e687e2565274cda45ef77337d838744fb2bb4c7be3cd8ea68054ac9f278c71a072be44c537c7892ab38d9c05147087c3282288e4749adefa36a5d422609e4845a9994ca5fbb8d52281bcfbd415ba5c29b703937ce2fb7aff3b2dc5e90827e47275d5d534b9703d43ecfffad92512f6ffa4046241958619ff950544cc9f6ac8ccbad834afbb54131dd91dc8bb07a2d1d2153a98744c4aa76490b03e8ae2d5db1cb7cb0f81f9b5474dd2daa0d273ca9a36882867b10626a6ed7405dd64cd3cd21242cf41673a8e9907d0c680601109d3cb82332c905f9255b977fa388efdf1380232b81c0722a1f1f061d31ab5e0178565dfd04adf89d032eddc129f1e94d26fb8b35b86e45c9291d04a8310593aca9008f7e6e90534a582017757045f1fc7ee2253983c492e0424169cc4bdc8499ee7a4cf91b64fc2d9e3dd0cdb906637023ec3489800c18e9c81e6329062ce704f140606c24b8a0b0cfdb834dfad539ba37a674fda333f96fdf505629071584290e69099c7b977fc285ee336f45202573f06e0d4e657db77a297b50b3daba56b6ac2bdaf2cd19d591c567825a3c6425233c24be48f58b25d363aacfa58c041b89bfbf666ccade64d7902c8f4aa714966de4db62ca49bd08178c86647e13c1647b045e1514308aba8fbd5cb26ee154e9fa6438ae93133a13bde89bfdece19ede0fa11692b015583fae52ee3cbba45120542afb7cb5807c44afd8a88585a1b09471b5000af9ff7fa35099119343853b8f76962d189fdfa22374e5be571f2b37e7e5831fdb7dfc3e93b928da20e38f91faf206b2f855fa09a8b9ade454c7d6d2b4dc617ac6dabdf6fc8683bd25c63e64b1bad7807cc3211cb2750705f8b0df6dbd499a5bdebed6f94ef22641de66324ead409769a7db924526449b4bca01fc1037bbd3b45108ec00ce8d93eb88f0033caed0fe02d80ebb21235737596c5aa589d048e8dd338456f2aad027f48bf9938a85c51338415724356b4eae2116f940b9dcc6413d053e8398df6dbcc73712fc99e2806cc82d6a1eaf42236d0f8ff5c7e1c7c7a02b12e8f1b4193b49b4c4698198a9530e90df2f705dae902a606ff37f4ec119d01570cea543765105e3d511acd1715ce4484ce0ffd61c872da639205be36683de5c36389bb3ae277058859824b03ff124f630b12ddfa1c25aa44c3f3b7c4bf060357546b2aac30d7b38c007eb8e85c7b0da545e0003fe6f0e3c0be8790dcfe1812215f4e5d599f3f0493f7df4808d210e0b13fbbf74b1e3eed8aad36d9c3913fb3f371675c8e0bccf69035b889cd954dba527f81828b37f8073357fe9aaab04e4cda72ae06e68b51e855d305b4259f996022624707524053f5b553339058b7c4600c123d3788278a3654d32128c8d4ce7011d5ce66352f742b3209b639cbb7967fff48737fa8744bc0bcb506078a0f9e744b8fe78a9a6889e9f6527689b6b91fc0c30999fa3b5e02610eba40d67165163677a74398a3f4f9b639e0c7789d32524572e06d806bfd38c8189f3805986209c9e9366aa29a73056e8cdc4f88d38196f518a56fa8dd2a755ed655748422f7cb9e1cda6bfe858ee5414140a342ce3eff57d17142936c74383cb370ec7fcdeed74d6db785855ff466f2b10faa0f0bea2a6dbcd9da1730d6ff970cb839651edc489d1df1d2ffb1531e66b5364d60cd07288c4ae9889cf4d5adaa0110af74b41b2f9bb15cc1c52e5e6407edae12594d33b8ade11713230beff17738d84d7e4d29416a4ec60d7990c93de6f718946a187203040173f64610c965bd3fd990eae30efc6c9867d3d40072b82ddd2a9ef0134bdd20beeb801036b8d61d96495ab1069ff848270052b495cc422d235c8bbebb842102105ff861ebf459c98dc9df917219edcdd9fd1cc1caf33a31def957fedc3cad5d366ac2b3079857afeedcf6be00b3daea26af5617f5411dac34fbed15674b9eba46e28f62f18508d325e62343c569acf753062291e2b43ef0b98826f652c444ccab850eb1ed4d7be0a61303fb90c9df0b4ff2148fac3fd071d81049e0042c7850f43048286ebb4e9b89c150a63b9f15f1d4c477e12bdc5e58f747d4840209d29df5a6a3250369a2dbbd97d6913f85f391f35c870b0385bf95bed0b28266c9bc0bbe75a39bf8fcbefe3419df490ec3b4db5103b59e30ec243d404785e7285bb429a478c91eed0f008fddf50e4df89ce6bc821b9aed5db0d306a32beaedbf7dacf13dc85d7a317c83c4b886183c04b5c71b19e05706df40839a39a4359fdddaa32001bb27b5a154e91644c70ec49be4df903220e4fe7e75d79fb67a3197be3e13bbd7f267e1fa70df4856b6fc03d30e96f597fa55c0f85e39a415809a158f8126df273a4c63b3a87fc66c169a9a74724a945937687d0137bb13b7f9d99996f6242aea96c9ccb66b90103c04dc9feede53c40774e715eb58a7df3d226194941770738b88e709d167fa46530ee877cf774943e290f98603e94b30a31449eb36a21131bf1c9c1316a5aef4f453cc86e77a7d912120042afb9fbe5489bb6903a72b860e86d9eb78769180e0f0a2404d3bf49f791f8e00fcb298db2679cbf84cf518784ef164bd3fb38d5ca223f8755365c46abbf29044e386b5da499a7a8d7ad76c1d2758774b25a90a2e1d1e82cccabc68017c41ecfb8b5f70a1a3949af53999855290bc84eff3400784a5721fe672e685d9ed143c46e6ccd065c4e66d0612977c0c5fdda41a7321311740a0e52485c935e41408d9ed9be029ed5dd19c5b945a81af1d8721b90c37756de26151b34c1bbe5d93dcf3c447e9a3330859094f3ca8d6967788a40d3e800d90e626126230904cce606a2b5458e94300b68a42335f14d1b52445a1484a5b6501d3ab910982405acdf79a96fd8f4d68146392e01897fda5e04ca40f7e9474e702024a7aae31c87a94651cf75a1e33198beec06653715fd84cac4ece83287681f96baacdd2aa20d2ebf7bd0685c5af1756673f974434dcac10bde6d18a8498771ffcd4fae2cfa00b6c8a1e19a67a49301dbac6e37d5c7aef8cb8bf0b74c0ad7f21233ab05c4e8a7b036b28f2f27d24476fe01c69bffb5de358f6dcf6bfa777665292b059aa06eb3607840a6ca3f8b7621de6fa1e75c028e638bd20efcb76b15081a12979f4b8481edcd548dda2e4c7dcf6b5dd38f689d73f35ab19be9100a594f4f3cb0f399730bbbc4ec1fc33e2b0a1265790b139f670d3fb25568a416efbc9babd5bd36a0e58ab6bdfdf398a1627f8bbbbf183bbabfd42f49063279df666300426cc55e30f487b26fe6cf515c0b564c8f158ffdc1732a9755078dbd15340cad3e5cb13431922172c371b27e96b6e1089b1596f9a84b6a52005591d6155fe5ee90efb9008c7ac14e57ec8ef8f6eb16e3b55dd19c27f0f26f28731c4c117a8a4826fc2abc1007291d648758293cffc4de42b1f491d52cbecfc0f2000cb8675064c6cb8e2c7d1d3d7c35711a37fde7e17f7215fe9f0f007fe30aec46002bf681276b9e10a62d38552183d7e735a8a97806d1da06152d364d0094a7b3e96a4f552487ed5038bf86ac1dd036d6c4e11dd4a1f8006fab855a768aba1b8bd8817a8aa9223414e8be40e2d8d8a57687699278649489e918df75c6d5cc1ad201ac91b3153adb48ad3b610edad20309296a67fa799f03904d332ef897c989e3a2475f1f350554967e29479d03d5fe3aa66bce28245f880e67f18036b7febe239e313025066066b64df19bbbcd4949a166d323bef37eff8b83d68c0bab9829a129a8f8b7437468a435560715de37f3bf01c61486332170aee3b528de8ee521e57827b0e1ff90412fdf9c9c9d05c863ffed8f8b92d1b0b323bb03616860ec203d6e24ea1fa8758820b1422f9122c2f0769c6cf031ec8e1de7149b0ebba5d3a141432f2a6c6a09902096af08a1deb82bb295ed295bd76857a34d0f45a8312639b04d93b9fee7cb5c915f7be24688488652d273531878fd33c3e5dc0b134c8d3c09944f6b937a0deb2477cca175a444345545ad04067a82269ea4d12fcd1fb6d938eeefbf43945308e2a43cf5ff264244a58349d7f749a35ea8db1773c7b6f608b08d80406d11f382b5054dd152a24b0356a9e04cc20665d40038c60c0d501aa2ce5c6b032bdd42dcd5a32225e180e99840a0c5ef01b15d8b3102b98ada6bc7b410587b85dff96f033a07a16cab175e8f4089118805a3892c21980353af93379db6d3aacc4c4b67f7438ba0ca4ed29d1ac08b9cbca7e496db77954bc577e5e1c9033bca9ee7767cbc03f7b39c404df340b3d08e495ede62bcb08d7b6d2047ef23364d517a0402c7611fb9d91292991f0c453bf1534bf9053d389e0dfeb41e4f33e9d7dfa881a1f157212cedf794a9cc75d00a53bc4e412caab6baa55ce2a017d400cf560971202a0744c2c90cf10a1d840844d7945022589df58380691fa784ef412c237673b411a37068ccedc6e73c43e2c38268d23587d57b3b606dbb84237e5905e0448c142b63224058b913456ba89dd9195b87adac4acd9c7c8e0735082fe9a7af53fc210ba846b29b0c043aa60c9a8311a4db1036e1c7e7666981cb1c621c37a3535037e5cd96cb7dfbe6921534d765973f83fdf742f53a2997979ed0e0967b47ea3ac3550d06b60a6238386287c3369371cb7772565d7cbe58180da901d9f10c31e3b4717c9138c7ed063470ac0d4cb922f0bf649e8f3e2e1f6dc430ea72d2181d2a030f64c07c8f9bb2874383f409c8303d83d85250e45f94421673afcc02f8888b9b24164225eb589702271c7f1ec521b9b08f16fe4967d0545dfd8c0661cdfa57ef43bffebe23a153993321eb1f931681493bc882bb5640435bcb5ba528691878d6b28842acbd75c3d365e0821b28b844d3461b85a75b402acd819c5680b200c9b388f7993e204077c165e6cb25f598b89ceb8b5ea47f7670d5cd05b1fb00a9fa123b593dc343f594d84a933376e02fc18f5578f3a3852cc16bade36250408985d7c74215e40f63b0c5c24c28edfed1b91ee48a93eb4112f1f56ad6b85f76e3b69c9ba335928807bbe5e1661f003abc3517eba6022c0413b5c56de6d2dd9bfca239cbf460ec01016849798c53b9ed47262b166a9ff3114349ee556ccd130ed563eeb8951ac5a3e4a1e8367802b04de7f50b5b472722c04d0f7e69d0ddb612ed66afc3bba5202f5121ebbce1f0ce3f99f73b52575c58f10d16ff74fb4ae82e114182b0fc5900e7597f3817a9efe12fa3b92fe18d0de36f61ab97b108fada2e675ae2f0650a62409227115316ed0044e7c6180b0962cacd219c88df34220aafe0b436e5d8b8016665740e9362dcefb842e8d77dc491024d8403fccc8d074bbf5ddbb9bff66e12158a7debea555134e62c8aa0a6bab7eb3f69cc773ac376c3c31eeab11a14b56be1050030696aa1d2bf04fccd6ec2d4fa4d84c596492335748b2c850a35020885079456210debd1676c2e78266b336897817c7b920ae5c03432735414c4b92a3137ac4be696ffe7e620bae320b15c174da55e9a6667e966124dab9b584011deac4944575cb53e856d0a812751d85b7c81cc46d683499ad039a1906108e8bba78b5b6e2ae4eb1604f0db42ef68d434ed09fb709c9214698ccfa3cb91001b5c2ec5e37f988f879cca203933c96d459a420faada3bd4224f06b486543bccc81e3ee222075781c6a1a1a638f0c05116c2ee95ac9e5042d42ab22d022744328e09760c5064784c0e5200419420aa6a2dab448bd2f0404ac1a83333b40e7e43571281b0648be52cc9479f3d43595c5e0ec91013de4b41d3fb595f56e8ab3bc54988c30fa6d13aebd8126779a159b983aee958278f9970ab2b23b7fe2f6170a4febc299b5b52e5b740ba2007bb8065cea320a3e8a62688edad78a5760fd7268246734e0f073da0c36eec71fa2952dae4ea2763533ca88be1ad8317594a0f5500dfe13c1b55b910028702366f60f4a1cb78141eac343a047a21676e284f2054a492d284a87e9010f399fffe58ef3a97612f8973fa0eccc0d3799fecce47dd427b2e8d37d01ca0617bb66fa5325dbc33eb15699066ea87fe583c2f984f8dd1f93ae7aba56e01eaa58674d9fb40030d4c5b82e0694e3d0bdde6f54180f6eb09f2d9ed9b48fee06a9f723ac0db3127dc8e5e67ce9567a5d757e93a38acb753875fff3fe0e6f22cffa12a3eba43f61fc8fd273164fea5f2453b9a7de5055aaed81ad91e131f3ab5d9698391a7861bda33416f683e3c31113352856a2d68b1e2aba71b57ebe45e02819fe73af54585beeb9a71ae39ff8a0fe43cd2f4861aaf23e5c29e00ec8a93ae703bf353ca0eb069796536368aebd9d9e9b57cd2dca69a6ce0d1c6dce87c0254543b3782a276d92a688cf700b405575d39c0858acd84f59dd1fddfee518410bdb16f2e60e526b66fd139748cf9a7b5cdea72092988538d50a3c0cc7292df80b88024b9b5843ed825800dc0947bc46553e5be93902ea1d4cacdb30b1446d18f03c66e404cc888cd0148731f7bec7825595281e12c4a25f066e1d862ce327cd0ccdb63d68daf9cf3b00accc6ed1b6eeadba5582b90f8938798cfd539fa1d6e16841f5189f78536009048521faacbe1b426a80f036645a87d23e97541ee5644fb07d89b32dc3030a485f627f39fb39b37c63bc1bbf1966321a22062e7a439d1f6065c40ac26ba43f428a77f21fdcc49c0d6e83e24afe8f7e017c81ff8fe6fac83ba8550e7335270ebbf0398c3969f20184820efd797cbd01a701de34126d93d414975db08d429a4b176edf88d0261ff646d21267ce2603dcca1460490e41f6d6299ad25b8ce7d8c3251bef301427ce82a9e282fcf5e68d3a783c07ac1da9b32c8152723468b39127bfac2fe91ac632798aa4c87ad7c0de68f168a9172fa0b04d68722ec6a20c94b70d8e57a9bda43da61a4e62b0d7bc54746e9e86f9ff68c21874afc9459fab21d5d37c62c9c744b1f4027cfe8c6c3d6d1dddbe65c2f91ed3322ea196f41d9612acfbfe12bdadbcdf16f5d17f2f71613f40142c3318a0106480f31d2dcb25a0777271bfac7d78a0fef196d30c091897f407f207103a8df7e7b8fd3150e7baf5637b816054c348d53d27cc758333cfd58c0c8558c49e69feff989d16ad33fe2f4232d0a82e30bb39940b0e2c02671c603d1f2b1ec5911bea9bf96115bf99ae9594f9eb9a54796bed4a6920e34c6aafb393d0f22d33fbe577e659311e7ff8db73af4cf63bf07e1173b96ef1122e328ab7963dea8272e077bd876d67841ed0114d5b130a9728b2354d90c90e014e747d244c0efd6d56b353029418c9acc40d9246528647daabf1ba98f348488dee79ae0f1edae8d765e0722f0214447a2abbff4c07303ece5100a1e5efb8311eead9f5ab42d4fcde36d5de0eb9e2774ebe407f1f6ece8c532c646c3fb48620eb8eca309227027bb82d184462b80bafad9836202ab609cb8fb9033c47b272eca2dc5a6e6632f52c3b60523115bc84f0ee89105b3b3b0c0ba95a629b06a4212a97338a8c970468ed4a111617c1dd34150b39e77520cd6d8befe80e639ee164ede169ab6b0846e367431ac581eee40e98a964d62cb6d9545b8d703a2678785ab5da208f1a28a7f6dee486ad837db15b19939e93e9f6edb41e709cf4880c5382910c329ee194512763389e29a9fe8ab806785ab304d05e5e5548ab1d0acae7e7be3301028b0702dd30f70e01c3544de1ce4ec064d399c7f86bd110a6f9ab6506b5f3267564a80a2504eea736ea3d35be60ad114b493f200117c966f0f74031485668bded2ac68baab94f0d06967e1bcea613b5060041b098c8f953d1680e5adc1861a101ed2346a03d7011cb7a6ec26572e2196da2c580920655a8fd1a46eacb437335e833567f484e8c300e102e381da58daeb298dff70c9b26c266366ac61f7a69a5b9798e66bd44814603972be91e7c04794d4bad8847fa5af2cef6b4d803a05d9dd34452abe96a60884bd9a3ed7d31a7f7e9a4086d6e790fafbbe05ff7ec8e1a4abc60daf82ac6a92e2ae2c8e2f9272ab7111c0583d0362dedbec012ed713c5cc4d63451f6aee9aae8187967873783a93fba9a1519e55a0d1ff4f6f9fa0bacc85a3cd2472871a14fdc28ae60a6c966fa9d4d091a14acdf1428f65bbff7663bb5d6ce5c6822881228e2321fd3b2a60c5814d6600a71d7b401ceab89fa74430bb647bf8b41092e1c666fd11974e2135c08f83dd8aa6e23cbab79fc306deeeb2da852d453f5b39791ba21ac1102772d95bed83c6ba5cdcbcae713efc145b516fd317e8167dcb9999f5f35535e7a094152bc35cca8ab945b1b6e5aad69c2cd59faa622ccb3e91b1559ee19d3aff4844970dc944bb9d53e77222309b1917fa569724a577b1060b98c99dd205013cb75841331128ec6042246a94e6c36509fe8c56ce77a98d2413e1ee3881c3a0609d51eba6e681fea882210c022b0ca352744d8a288dfee220aacb685c2a6d95dff6eafc53a48da16471e17effcc42c96090ae8d5b913dcedcb7d10f1d9cffb494e9c19005bb8aefc3134a3edc74a7bb158bfb2e36c4e92a76534f23159ee0fd34b90222bc3074c65a83c36b70a354ef9aee867d20e7908e9e52f9c6dcb0482a1edca998e80ececde9f8526fab23dd53133ad34679b4389994e1679549d9c3b8f496c9dd5b05a21d536c2622634aa027d05f50e25a5b93ff641531d051b0e723e0fd12b1a9f34eff2a47d863c18bcc90a81cce44bb2906a309702a43559ec4f45f17febb7a364fff816379711e93daf0d3e8b8bab084fad6b9bb8bc15d870cffd28082cf4e61d6bf0746c2a1502dd694ed1ada6bc511be3cc13d950a349411ca4d9d587620658ee8e5619422e1abea698972cb359a7868ea6f147fa175e951311ac06b27b005a3651fd813f5fe3d85a525c4a597c79893b115c592236c41f42130c6f2a23120193741fcc810376960ae6b627cc0c02209feb1eabd52c38c83f330e5a49820d33ace60c68d7afccf8d3cd59402034afc22806a2081ddf0274dd05d18cae59f8091f84e4940a4cd90072836d17c4e0cf6800b6cd628ac0bef65826b32774f657d60aa393f3a96ec339458ceb331bef25e5189c9a105303f5150f72561eab0e8164036b94d0c297c011f37501901693025554f0638130f09126e9beb3b7b33dd12643310e96cce234845f67b861f06c6db6c494f0b9bb9137adede32c70d5988c192be4c48c3ab1fdbee40aae817d413435f9207f725861a269a915fdefd125b7656c4efd37904ea200764ca32c6e8975fbc0993121cb7ea7771791c1f7410faa06ade0747513f6823bc275bf25fa74546da32cd3162001c3ded2f3aafebcb54c380ccd68d6c90c48ddc6e438469af454d1f6c527ecdc144fdb0f8a98a8402a9909bcfa493690a4979d6ed4aaa1c9fa490e9f20051eb6dc68605d250cbf9cfc99ac6c1039b9f6782691ebe9a912b7b6b45ca10ad9c2cf16a87a1120c59a774ea287130a9de767b4439fd5c931c4cc1915a2e16178550a51509e4f069be9738a9bf4778589347b5ef971a023770265a3b1cfadc16ac8b2dcc0fa5b83ac695c56268672d86560786b9f05a5bebd32bc90d5a9dcf2ff09808501e68afb425aa0908d97ad321f5d0d87b265152dc7c80b09e5637c6328ee3870b9bf6b02796b93032164e40a329c65c0f9573be4b3bd6bc03fae2e5e0bcf15a14f8f42681b15f12188e3dd32b8c8a5eb0020af69daa45e92eedc847305d3dfa363be55c030c2f8b72311a7ca0f33c02a304e30abba0d98831c005d0cd22b512bbe218132ebc8f77871e5fd3e9d66283d68abcd36d8e968f3aedf97ff17e736e7de4daee0daa462e2c9e404cdc6d3879fc1d79d94f857aec693605f56f1801ae56e2b3d3589cde1c9c4904e7844e8bd7b794d885ac082d35642c30af095ac4f77b144f34d60773a380ff8e6cb81d71b2abac3d405cd2ce4cc755c2c500a49de7b9aba7ab186956f164e58dcdba3a403dca57339424f9c1f8684890e7780997fb9e1b4110ae0accb0055e045154bbbd6542d59b1b931352564780b2e8f324f8d3493378780d90576d8542307da92285a3b19c0e6898076999f3105f9f41444bcc5600807a3465b83fb1c648dc2e4db12ec6cecf8b8af72a76f181e676fde1d1e1aa13dd297f0c333285865190609510c65104b000d2d627a2f77cfd9d0fa59ef6f03d6833f7b9e63ab2a6105c0332944c13e834f8e503b232bcbd82b63c830397ac7934ce382478a83a60641ee11d8092349e42600ac96ad2891b66adc349a77a469b8c4720120c0b06566101a899077ab9a4b43afc9672dcaa786f5b540ed05dbfc140b281c714f08ec591e5e7158f6f9fe13ffe332cf26cc71088e160583e98aaf57ec0c33db11302f162d1aba68064936d35697a2be709ebfaaef2188d2f76e29fa35cb0e1885a04f3dac354e80687a7fdd1fc1b7501d9c378f92b97f2eea16eb54192c20adde855219123dcba160dbf2cb4d039005ed8c3c9ab3d69189c6fe29c8687d59193114dae66e0ae74498b7f47b64808d6dc5ab5e6ee2d6124dc7770150a0df3e7bb5b4ad2279f8b955d32785d7f8aa619724705c488306eabcd6b619bfd8905d32ee7e1a0da700f007acf9244a614fcd186d3cc3de2eefa82767dab977fb9ea4e8791fb25987af1f9b5f5a5e65175cd32c44066b0721f36108b425d0717530d3393fad8e99770de828498c27e0c4f292dffc835779cbaea02177a63002d92bc640d30828621fb6f9163ca8cf81cdbc26a8749eb3741861685c4d1aeeeac76be0de5239b5caafaded98bd34dcbbbbde3924bf64b306e650401482a64d01f0bac9fd038e34cd42bc0c245eb702398be6106733afc4c35cb08b9e4cb52fa7020019259378b0642b17e6695ac37c2e36881211906ad7e78f3fcaf8034230412bd4205b2e0d3e645e084beac5d29d4acf13323dae965822830f29c81740aa6d1e48c30323450d23d3528b39fe9f4edbdf6589b7d171dd9c7ab7b562b2ca3bd4f77330af9dceb117949d9c64be7c531f00e8261aac1f89fa5f72daed10a55f6b6a547039a81e38dfa63d07da0b1d598433c04eaacd9a096a5bab1d814ea9d52a2f852576ee0c02a9a5c6c056f6c7b3fb4574885560996b2c61aaccea4a24b534468779ea7abbbcdc716449f83a188954d98a1c93ed8e40ae117aba3a8ead6af9387b2858b6a6b1b5c1211ac0fe5e24c7297d744ee9a59381b97d22c571cbfba8c08c79355a69520810f9e8632a3af5a51e67f88aee96204226ea0b49398b35c21fe7c1e10b1f160a48e4064a024d2bc55e904f61b50a44df81ebf26c399385d1c075713e0cb90a7d29578dfc7b315eee5964949e49aebb51e4101041b3ddda0fc1073566d21532f64e155d1329d3b6abcce7e51ec60cca5147604f8af1eae7981703717d5a15e8b47a03d3751c3ca60c15c89929f44bf08965d50706bd63698a40925481d03adefcc145383c99638a0ca4872a986f545e0865e7923bcbde59df878def6d8043419bcf3594e06bd918006f1380ad2a93000e24690ea72925f9c273ffc370390aa53d5af3c9ba2d8c4ef2cc81e181680c345860353e3ff8ae22c8556e06dc9b12ae3124e6117556231959369185fc0775a6038fbfc2a51a99487d8d0ce004710d10de0fafe6946cb39197ae5892c97782123b7f7ff014f0a35c286e08387eeb6ecc5ba4629d64604f03b1e286c1d92eb5866496046950927125348c066612d8cdddee64a3266d736d791ec326730981a4ba7922dcf6159dee3f677c116ade8b823070c8c97f799b6f2ed049267d8c52830450a0cbdbdb13080e8d6ad738d6726e8f2b3f82e1008a345628baaedc343d27d6e7cdc530032cab6798d359bd5002f39c730945c5a5df935f0ea4091fb89790179b16fbc6eba333a18634bd6cab482ea535d68752122d592fe9ebbd118c026ed1381b904b60017043342731633cd96a79ab450f87ce93d94aed12a8317f4f8fce087220ae901a63a7d705b77bc4abfb1df9f0cedc418b8a5d7d6658fbe0c731170eb6f6d5f81e02b859422b8dc40ab23fb6f431fe8791436dcb1e9af274f377f57f453fd7780b42cb93a29d1bfc42da6f6f8c5908ec110504e8e2d66134925642d1584a9cd257de35805e6f96b4aa71391e08b8d5eb7c1415584aea98cc264a3d612c64b84ce1945de5f2f7e37cbab18185165740f178a4404a39f58053b579955424ca378fa30535dd904558161ebd34d64af042c5ac09a93fbffce5651958ea88f212dec20c10dc94434d93b6b89c8de85d9920c8094c46c6bb91222b2e7ca33ad61bc015d45508f2b228c5946e379f44a5cea85664344ba0e7cb15f005b5f62eb0aaf0a799dda7cfa168db841e021045076bf9fd103578437005d24521d8eacc2539048f6ad9a732daa095bfd27c8efc1b92911304ba31a0f9eca2d08e26e7fc04b2c53fb2996f635b4bd26966491771783fcb7d797ad4c0b54ab824d4550f1fedfea0278bde724129fa549edb6182542c930ddf40c9030248d30a00ff1a258c0a2968b64e9a0aa221fde601b181cc4ce19f540208145eb614159ae59ea008ff36707087520ea5c9c3a5d3a5b1bebb180ef76fe238431f6c1203a8af0d865a2618d10f4d893cae54ea554db123447e120ae94d3a91c042b449c1747dcaa5d2eb748efef21b84b8e52aacb0548a56446be9a36892f70b74a3fdcbe08aeea375c55d6c9561982b13997d5995f4dc44c7eb6128daf27ccc4c2f0b77f03e8f91fa34de7e5353612504b4401bb7305444b72fa550d46c36d44deb6f8e321fb6be060330fdacbdc442c271d66ffa0a32d2e05353c0d3cecf0b298ff5949b6864ef47b720bdcde7c12ad67bb74da3f6607aa3056c4e33ce1e03e28489b31a9e8382d1a57aabbbc14d5a24caa9dddb3446048a428a4d09e455d8e71b9076ed08eeb4a0df3414ace7ed98947383c388f8c3e0d9f8acd0738dc844b583d350ba8364513d5e4e937825d26a65ffc2c547c32b200bbb609c3848ededb6e16b0619761d4326a219af28a1464a58b057e4a451aa156f6f887635f7d2c27531f87e1eafb46cb9feb2e7d82dd2b2ec62b9187f942a052828d5715baa592b208c875863c4e252b767da9c9b54b27c075d2b0edfa21ccfdb06b47bf69f8ad8b2012ac82bf828ea2eae4b581e196873f1e20220a009110f6094388c0875211f56c3955e0344f1c35bfb24858d14577edbcfcfe935abbd0a0a1e61180da155038ad5b3f26cd46f974547dff45df1f46cd7cd4c40e9447da0affc07344a90d90dc23ab337553bbb74437a5bf3b7b5bb001e25402eb6c00dd7c9466a08368202f885a4372c2449c3398c664a6242030e26b3689466d99cbcb48c476c3555750bfdbd2416c037806e8ea2074044ab251bfa5dc12a46612c93ab108da89810527685c7f3f28a3888285a706880a7c7b5b3b158013839e5b1c884f627da983e7c29734b8c83a6fbf58ab343f240413cfc4f063345c486d12889fa1c991e5e5a0158b16592785218aadb149baae838f95937d50bc7320005350d8b64916bf4d04a6caeeae1da9d288e6dc144858e9c538025db5ad30e8c73efa926e7822393aeb91d29f1869b9f381514a0388d03c22b2f53e4a043ea6e8fda8cc9e5a651a543774e617c0b0bedac2a01e2fc574da5d805668ae9860f7576fb01a5c4bbac932df473b8e9bef7d9fc63030d41dbd837c6fa13a4edf44cc068309e2e20dad192991b12384f403c4d214278c20d3e08e79a55aa1351ecd2c13f85b83a3ea0bd11e8907b7c34aa9a9f91211071d3149d8753e938b58dfc2f3d2d68312bce5583896a040dc7417186a1adfe32f97dc740c1f38c22e72db455d708c1127228b47ad073de5fa5ee7195c3072f9f421b84969509c11e41ece90ce049d907a3a82414175066d11b1907d71b98985b6f2ede0630244c74780b2df03e63e9fd39ffd3fe0b78341ad4a2359bd1aa2eab4e07fddb446084b775c7cec263d80cb62ff25e6b32bb0846b89ff5b61ee2854e2fc3e83ec615ae34b215b93634bb196863efd200e3b6f1a01c04cd0516f51f344548983c98a996c5a48bbb0efe28597acf12bdf556e0914e1d14733f87323fe8e2cce74641b6cddddf3d241e2cb266f78c017626d81c4c44ac8f3a7e8bac6cfe05ba484ec672cd31ecdad2f8665c64896d686da65e15f3dab948bd45f214326d856cb0af5cd53e093aae79f84d61b8dbad1ae72bb75c03aed8544dd850bd1793d39c37e000b4363626630ee5e1f03e1cd5795afa1912251f9109fd11670e4fa66d1da456562df4f195aee29c0f9ad3cc8057e3a415ad212cc73761af24743177e3ba9301085435e0e215c16ad14dee9081ffb1ab8a85e548f4505f93bf716869453432d9ab5e49f8c7290caa27a69da5d461964c5f7d8ccc6fcf8e021c33e47f0b904b07c718200471cb204d5a6e037c371f8b2578e22e50cb4538be50812bc6065f8cc82430fd9a8e350cbad1d699cc8cdf99f6829ccc6ffebe8b75f4f1c6d1b5110bfabb6f6f8ac90c345b67945d5d4a63abbad30adbf3efd731b61a105d0ee136009c732f05aaafb4a6df734a7db3f1d5341c935c96a5cf4e7e586f967d030da37b146336152daa10be88d520c7d8336d0202539b480de40c3d03725026d82a6430be80cf4ac14835ea027e8387480ce40c74a30e8045a828e430fe80cf418fad25b95f157d5251f2c857511d304e26959fc676bdab8b53507d6b07144b05b0c6269edc6e4604d9b50fafbc06f26f3530d097d3bed0e017a82a5b523a8ea1295914c55252db29183f0258d3f0dbff7cb5f64f8403fc217c798a3c49726ed55bed9987bc58aaafd2c72471dcf18d9a584487b233c070e87dcc4241ca9fb1c9075ca309935c43b49d4c340fd5386c9d6a5eec8e1eddd1000f54b5ff037c4d6e40ce17d4a6d57211eefea3eb8dea61fab9901fe76f1ce76b54a39d26de5c5065c020b7e137166b922e86f3b3a6b4c82921a25309b4627e84523098ec92e35c5f99afa766bd6c23b907c73262d93c844c11c6deb0f6380d03a7add98bd9c5b8cb2b79093491783a8fcb1b2401f9c3c0bcf5478caffaee1d35692f09438065c71c1b40b43814fea31c3cf5cf4a49976f554d10fdda675fe35bbcbbfcbcce63d5e75d81f5d152d33c1b9bd6cb5cb2fb2e35f44d9157e5404e407279cd66cb2329ae8bdc3c7219c217bd374ad3cd5ebb7942e3032692fcd2924a103be1c05890f4d10608b366d288aa2288aa22806b1ffbdffebeb1f90a7101c4ac14171501cc25e4206bb06ec460ad64372e5c5eb2bd8d146e0ac31a5e74bd7bdb9b27b5b868a12084cb80f84a99bc0c76f961012dd13300ef00d537a848f21013ac208041441c410421c20888f010a0084cc0f3ef4c0c30e3ae470e17011e0061baa180afc51c554e08348278c23d5115c65c5135455957363049954458548157502a14c505515cc558222b45147113ad5f5c745023f4223f0038921e4318436aa245584f0834f8c109a203206446680c891aa9a8939e409f8ddc04f22e1d054d5b54785eae33aa3d9dc2aae2faaea124108f6f8d4a834ca20c0a41115a40f6428249292aabaf4b8f228e1e4aabaf0c0a3aaba3cf024130d7652555707525709fed2283f66e38ec7814ada11fb8daab99c7aaa830e6b22354122e1d0585230848e0a7f04462553aa96eafd2b2619d4a364688e781bd263215333e95157a04e2076450e0d54440c817a2cb41043aa8a4dd1535c19c040d51cfe3b324df1509c96a450f59fa49444295551cd9f4c506027a33328a9de514974bf86841a55f927a43aba238cb3009653525255d71a71544f949c9c52a5292412ce1292ad29130d26999abc044652b0542850d489aabae030dde0984ea52936a34a9a79d4ff929489869a4c3537f554539a32430504ae379ac36ebc7881ab0dd672fe89eb8b285575b15155d71a39ff048909268d443339a41294aabad4489dea4d555d69e0d1098714a5aa2e34aaea3ac30c2935557595718d718951fde99b7415ad0a57c5ab025611abf02a641555758551554992f4950b8caababef0a2460a0d1427353334531610aa420914d6870635a890e82b3828988b8baa4231a1c4fd29fa4a9224ec0a1344289124c9e96f70502814268da84061d2888a519512ce92124ec60e882d17e0e4ef2875aa5172b0a989d4a9de602739d8d4846c8d237172deca8b3823ec84c6cac98445ea4b36a6d2631b53a9391c2698684e89e6a6a45025d38c8c111247091968718026aaca0261cc50651143481f9e2c84d4545529077591ac50c1aa8215042b90150c72f34302c088c1118ac0381113037c81e19101062d804155bde0092fc0525515cd06e6d08006ca00030c31baa82a2fbc3831919a615441d1c4e94ba5914c124d260899d29398cc1240c8949e04635a90bab28525bac047089a88230d34a254532480055070fd93207b5c092509dda004a9220803046942844c12236492e43f0d51838569062571ee4f811add28418d6e6ac954a544bab119adc04915881f3515132602f9a1624289d44bf9d1290508066200f19840056c54d54d0845e5283d195fa0fe64e5c4a0008eaafa14ca0a2af532b8e60914c0fc0d14138df5396f45e664caa851ea64449122458a1829d526644056647252a7918c1213a43147090c89f9038eab66a92850f940823eaaaaa650d7151fa8c6168298c00844a1183fa650871f56aa4f1f2da8b0f491aa2a131f33e823884aa63492c1824ba81308068b2fb54ca940c90a238c588289256488c0824743a4f23f4922c5094a2aff131919199992151390c18247a1af823fa40518bca085045c2ca10402644a4f0a41c16498f0ec608f3cf64855312038415585aa089b098b9ab752494d902a4e0448f5a5fc294a3d7d3d5108218410bef7de7befbde79c73ce39e75c6badb5d65a6bddddddddddacb1c61a6bacb1c61a6bacb136e79c73ce39a794524a29a594eeeeeeeeee31c618638c31420821841042f8de7befbdf79e73ce39e79c73adb5d65a6bad7577777733c618638c31d673ce39e79c734a29a594524ae9eeeeeeee1e638c31c61823841042082184efbdf7de7bef39e79c73ce39d75a6badb5d65a77777777b39ed2237cae3514364eaaaa320202554c1da4d323714748dc136a8ae9f454729a30d1fcc8094cc23151818589f44dccbc044ca725557545717a512a652a95706da2aa2e074861a241595155d5d580aabaa8944ca3992952e4d4270ca8aaab8aaabaa898a2aa2a0a5f4a676c644e33a893890695bac179294a4a4e38f79a4a4a4657464ed41f615b51385606854b384b528f42e12f61516f5029d4e84f9f534932a42a8702aaeaaaa9aa4b4a8c1c3844f99289a6aaae28a254d5db98a47c4aa6844304eadfd692933fe1a47032fe54c5279c949511a54e232b53654a28507d5b4920fc49a046174d555d5054d5f5e40907502a4ea4849ca04e4099a1a12129a04821050dd127539c800245a80a25502449a2a4f4564c354fc2c126282413369f7252c544c24ebe34aa52a2337130a04a69943a99ac1219d0cb9ce0d8c2d52a0f1031845555153e5979c0e1419d4039368442d59b54a9964636a3d3458db08c0d4ee9655036a88a858ca949555d03104055a1aaea0ac0058098aaaa9cc04faaa9ba048f4c53e0ff9329759373ba0e78303e37722a0adf47a54c2454ca4492f222ce0daa2a747353932409dda06643d84ea80bb8c8d65360e468c388aa4a922474836a238eaabaa962d828037502a54656b60ea14e7f437a916c8dc3460f159499aaba8c14219d4ef49a4824250638ad61450d16546a742a292328aaea82b95cba48a38caaaaaa9c864cbd412227859242c6a6caa3644429254992541e1eae97cba5aa2a205ae06829038d2767dcc08c2caaaa0c1754321d9950194dca68525558d81764cc20551a996e423164e041c61b230663e8515551da9524499810a16a1325aaa0722ae971090b1326994c3774129dfe26648353c2a6e670f0a8aacae184f143555552ac89d444aa963e556fc934839d24490246012ad40934baa9a119cb8e982f2810c41702f0a20c5e10a1aa649650424626c91557c8a450f5e60aae5e7c192a8b0c63a86c6e156370d145185d20e122072825f86d3ee5c4e6534ea82835a2620b2f54315be4515520fc4ab6a8620b982a92a94ab430a4aa2a102a468b35aa4a063787a3c5142daa0a74329d4e4f223d16a82a63c4e79048385906f54d6471a34d5152d253bc145948a1aab0789a982cae10a28ab140162c70c757a982839231025545341698155841a5e4a24650fc2f71911430a4aaaacf3257a04a38a12b56ae287d4d95de66743a22e7ad549537e881d811554ca43054950586aab2be50c550200f2f50a180120ed41ac48e2861613a5911aa8a62288003058e54a65c7222811169490ee9e646c9a3aa284a0dcafa4302a46a94c415a19329748508352a8db24c13a81308951ad968a1aa2a2b0b554aa3534a4a9224cde13081425552e8f43758aa8d1258aacda3aa65a2391c25b0541b2c65409d4022541589505584e54955a54e26114ac6644a2579d4e9affc098bf57f5a527a2ba6141439350aea1960a2f1982b77a04e205c251173e5559f427d2974fad42864f3372824ee5f89b98203a9e2fc5081402021524f4291fe4a12d25f79522849555952b0a0f084aa42e5d428ff3984caa937285425dd14ad5030a8624e50d0346957922499e20911aa36618209254835553231114a92e447a754e80615fa2a289b9aaa98a6391cd30748249c25261a27ac40a1a2399c4a0a914c261b423d113246d89451e55412e91092953eaa1063e5357926885022630476a2c4fd2988680e47c688e67086b811b00945c006432088aa49555577f820662463442aa8aaea95a04650a44c265c5f0a52c524292f81919492931b9b53932af4c6e6d4a4aaac43ac1ef0a0aa42212954e8400086704802ec800213689007109468c0005cb280298191981214a2860c2012b84a5a30010f5e28010541d4e0c5933880486386760139fef8e3882ce0e0060e3938440f272cb0839a319628824b5e424c86b17260e1a0aaac1bd820067f21060f52c5e0996a0c5e30954c3407b84f40a947d1cade6191e45443aaaa62a9aa0a08948c4583aab266200342aa9aaa4ed4547522e68a19c45cf1e40a2455f5a8d37f951a25261445555983c4a0b26050aa3222d597c00895c231e5d427d515b25c51bdd8bc549e25aceaa56a89b15eaa1aac961b2c1a2c98e6f1aad386c787970b06a6c5d3b1ac8a0017a8ba2a2b0a4f02acea258996eaaa2ccbea5c4d2cebc5ba2cabe32281cbbaac97eb06292ccbc57aa92e6b0650e7727119c2888ce5b92e4f1a96c7b22e2316172eab48d56279aece5b16042ecbba60a65c3b5cd6e5e2b92c295c96e57259515804b0acce05038396ce0b0dd60d966559d7bc0600d3b1e8b05c2ecbba3a21ebf21829f22e2416133056cba7b384f5725d9eee18b92e8b881aa235014f1f89e3aa3cd5d501cbd319c2d372599daae5025612aceaaa6cb0c186caaa2c8f755955b060ae222ceb6ab9ae8e65390b090bc642725dd7e5326309715d9ecb621dd0911c600e60cd00001dae37ac962b07cb6375acea8a72c918b13cd53572a964aeb0cce85440c0c0aa1440c8d5b15c2ccf8b3583d581e3ba6092742cd9b1aecb237321293284d562592fccd33f30eb32e20273599665bd585612ebba84d071b18a5c9ece15ab00178e65758eb08a1cb92c9817eb52c0e5c3e5c3d543a7ea54560d96cb755933786ce878ae1caeebb25c2c4fb68a7cac232d97d562d1e0966559d60ed7025c8e14b92c0b83e4e5b2a2b0602cab73591eab89d5c3352f1eae23d7cbd56275accbbaac24560fd791ebc563755a3a96e556c71ac22a6221b12c2b09cb87cb48e7c582f158976525b12c971b2e01589ecb6af158f33a62752e1fac4ee7ba3c97c79ad765e97019b18a58309ecbb2ac24560f9791978ee581f15896e532160e45c028d141408bd5b18a581e1cac2245921c69c00e3e5806f058d7e572bdbc65c300d8912696755997655947542fd54d454522d615a82855325320e109864c5147124430a522814941c2112a2980084215451d3af8286a2155943a0291230a102628509000812b3c01c2072d3041020f6cd6810312b3d2000247c20c1f07c28815916091215e91c81c51a60c15e80a31f870c415795c461cc103262364581108a0c3082bfc70850c921f640800808a8e0038a0baa2458d4ac6c34565bda0aaa4a0e289980640e1d28591206c90a5c80b0c8c8b11232e2d473a3d1479e9b4740680a4460b9a02c00ce16204467a90d4607990bc300049aa3343c786961f7081812c2e345c2f453c46ccd083144116235320c11e2368d0e27a3bb44cf1582e4abc20cb124f9c88e1e2f218f13c21c20b598ed085d59224e6070568717974e81c714816042021cb0f51ba18400d4d78d161a20518597228420512016020cb9201dcc0a08c74218b12a9224cae58c38697229d195aac78c428430b184f4ce708a78513ec2852840fba80f9c21b345c475a1410f3323d4f7c03fad822002d43185962e4002e56788a78995ba4a00e265be8000d24ba98e13e192306598ee0e40c703143abc13a41961ca216465ea68b11181a3aee8449a707234b5eb47032831498263bd025468a344122052b91822c04f018118db82409c00c2e468ed0023cc003598cc034f1c19291a5a563438be512858b9196245c8a509280233845848069e262e42587199c28f2f1d0142180007838800e37140133048d1407d0c2080ce8c5cde0dc499417249e171d5a92746211241e216414f052e4c588078996273c520156cb0e1d205a6e6045606e67d224708031724311d76286e6c88319c2f3f17c5c3e90a5081a3c4eb420a0c587221f0f0f3574a7872db28090b03ab97384a7d33281023c800d53890f1118d2823ef8f8c01d636451012c282bf9ef150fb0824a15534c9112e5c9029a24916e8803046100190f2183246285293821014c0451001d7278a1030737c0c30351d00424e96100488eb8c420101584200f3ceee0401d74c8316508219000650003898c610b968a15aac08290690d34469989248cbce4a1461a5e04083fd0238f2433124000478cc0bcf0b0c3094c60c56328340b70b284ce7186186000e00870057c88e00359503185471c04e0d181215a98828925629117173fbe50c108ec70830d3226b08139e640030a0d13490881c412c31586eb0b9e2bc854e17a82c70917125a8e6005e142e4f241914390f4e0d2c155c81548878fcb8a0702d607a687161e66c8e122c035004b0031016801c01563d9e0a1e13ad262e42a020373bdbcb45c1eab63592ed50c357476e80892c5634616cf13972264ac172e68618307b2b4b42079394010b4f0d4d11e0220b903042e6364f13c297283111e70e0224b110678a8747c3892724102b30446ba18e924818391161b64814141160158a14511efc891052446c8d292489616243af8200b92540104c95204071aae97245a906869238c011cc9e18d2d3c6564a901881a80e81c1183040c0e31896cd1820018f9a244a7868e12307764e940d148b81871d9234be7888b0e1e238e74c7f220f1186164490b025e18e0a2838b111708201100120114c1a1c80d2f0ce890610b171d3a7d6cd132832c4140c06323130aa2074f122435b8c478acce119d194f94196e70b95ea878d9e185a6650034582e473a2d1e249d4ee7eabc74603a458cf0e0e9bc4c7901400d518cc4bcb8bc589d17cff320e1b16072e8eca045911f5a409085863db48871f1ec00e3c4161e236c5180904c9548199c00841fe8c0101acc00a78a1435d2a04d2460093795ac50052484b0a10698970650814293480e7ab0831fd06070bca1000c1801914264c08213f0810712a003b88193420375e20216ae3084437a304809b2b0c003aca05205141a264b7ef0810037040248167c88c0021508f5c083a9f4030d462842046cb22452062f74c18a0610e08618446440880b58700213f881c61962841ec0002aa0d03829240784e0600570341142100ac9810c066181201eb8830c2fb8c0c21510398405820432822eb23c76426366b802139660041a0c02880afed0430d331e871e604503a8704293484244cc0c85e480067264408d2e1e3f60014e96d02492d03083a762c2120ac9410d080144057ff8a1c71a6774e180053859228924fe9a0800c478aa4498b08422d48006840c02880afcd0630d35ce30a38b24841c60450290008d410c4f9ea8810622f090461964544105b3c30c3272b084a048229d325c646811c315061810783e70e971e161b5ab3bcc021d39a283808ecc0d3f5c3c583bbce8d0c9c1c2c14300eb8622010000003a36786a9881061b66d001490e4778301253e405c6e5e572716969e95855a543cc943d2a92ada9d2e87483c463d31d9570b298529a9263a628e00a9921644a23999f1a26ff8408559bcc7c20749d0d5860a0f6bb31af8c4938edfbd85fa0cfcece8f277e1cdbc316798340ccbd401db28ff66795afc60babc8dbe65681c5d40408841f8bc9b2ee026dae35f37ce163ee98ecf6b8401daecfe593defcd93aadc81b6e81b6f73567d7dc94cefeadc83b340a39a7052af1f4db98633edd7abc5e8795055a2fcb35e757bd5d950f8bbc9b062c2cd0970fdb0b5b860c33d7b5db15a8ad51c6875b8ceda1b5ee56a0d63efb6c5e18f364b9e139885505ea20ce96bd8dafdf94ffa8405d3ec96465fda04399eb1428ab2f27bbb11b420cb1b70b2c29d0e6574e79bdca5c1b64320a74e23ce74b6ce77dd59d590b0ad4e26ef9b6b5b33218ad8d4fa0dd1c644ff6bbbbcc62084f60398146f75ca7cff7f6c1969bc87bb6e381d504faae3ec70ff37c2c3b144eaaa65012071613687f8ef1795bf8b26458aa4da875bb1a584ba0d63eb373ba87ebad13db4fcd930f08e42d104b09b455efe7da7506717c805849a052fee71a61ad2e3af62e6c28b090405b6d0fe2c85c66b8d9d834ad45601d81caca1ee7f8cff6f56bdf08f4336e2f1dc7069fb12841a0760504621dea76a5a1261e56112894f07d3bf83ae7d9e41381bafba27dd8dd7a4796dd102874d931ec26932ebe978540a1757c23fb8eb55dfc5a1068edfbfe49981dcbf97f36c10202756d4267533679fb5dfb033a61ab6eabd79f36573c45deed32091622f46774fb12777e1fd0fb6cbdf8bfc597ad6c671d42f3cdb3a17c7d5b73385570ec3b61835372299b6c85d5036a6d8cd53d77edab8c4528f26e7e88c5031a236c3bdd7b6ecdd50745de4eb276f0aebd796366b33e27f2fe60c7f9fc09076522dd8f759c4f48b6d3974ab3fbb074402d7e0e66e70fc7792f7c22ef902935732c43e86cce65cbaeb266f2d92f84c207f185f235db6cbb9739a0d82b7399b197f3c4525691c441bdb362c9aeb3af336636a6530ee5bc95526c561cd60da8950cd7db38c7e9acac4ee4ed50960de8f5763bfb6ffe773bc776b26ae0ac5df7aa64d7ce57ed137947d89a80402050fb16160d5abe63f0e599fd9fb426d3893574ac4531ac195016eb95173acfadbe7c121e854a267f127612e30c2c1950f9a6c7d8d9620971bc4e08f5165f9ef539f93096cf7d103af1c4f96f94ec75cd97c580766533be6a1b673c3d6318d08791b9fc9c63533299db0b287b154797ccbe73d94a473517d09f2dbb16636c57e374794e61b580da6ba7b38cbdf9b2a5e399018b057446f6f03376ee6164d1ce10062c41e883cf5fbb89197bf5a550383894734ac9f685b502eaf7ad740f4a67d3390745de2f62b102a10ee689a56dee0dbd6226f29e645880d0ebd519bceeb23eac9089bca500bd6e62582aa0ef7ddbcdd759199d752df24e017d9755c6dbac9c1537f622efd367696dc142018d2e31ce915597a7acddb6b04e406db776f5ba8bcdba7b28f29e5716cb04f4efcbcf1eb608237bae89bc4976e4a9fb37a8921310287709ec9d2ddb73fdee5de6a4c849a40a024d784addb83f6873eed833be10b7ebda89bc592301f5b7d335f6fadac3be50e43d02cae63767bb32175b76f28abc9f1fb43d8bd1ff5ed65c7fcb22ef9c4a725da534b232a1d5c77b8c4dc824be36cbc8a2c8db8ac92422e1516b31b0f8a0d21bb3584a97def0e127f286775822a012defcedf56d5f258c21a0f061ff87184a26ed7d2ef27633a2d4888acfcce733f34961f954c934f399f97c663e369f42e53cd6700ffa96493c63735966c7d3aac00201f5fbeeee9b1377bcaf7d7e29663e33b4891f9d6a1a96c0fa00b5ee60db2bddb91aafb5226f532ad4acedb0f4a08dd57773e627d9bb124661e541bd5ee7ecb6266b7ed3fdc9743ad179010b0fead24adbe43738dfbf5ca50c75f400657f99937d9fb129a1bfc83b64c22e02560768adffaecb5a9f4777a18bbc4326dcedf0350d9590c9ba83b6e66674dff96f672c5be48d7a562c0e5027fdbd8f0feb7dcfb216f9941294d6ae6d4633baa6a11282806507addebc39c41347183b3a917795d228f6a7860908f4a961f2c9b933201008d46643325875d08b596eaebefd3c9f671779a7706c428f04161df467b490cdd8af5f95b38abc2d0ea12a6b9412e7c3da00c5d1e2e6ef72c6ac7d7d226f39c7c7872d4b38dd657f5fb3d2b0e4a0d75ae60f33ccdefbec57e46df3ae015a2164cf5ad7aeadee5e29f20c50d8d035577194d97ac37dc5c20075f57dba64d3b507df75228f4366f8b1c987fb4af61cac91655870d0c93293f8faadb9f6cb5fc57d6a988850b5890855454d3e331f299f9a271f0a821db0dea0d15566a347fcd3b3bc56e428100804ea2b2090cdc5f26015961bd4b2e6acc592b12a2776e6feb02e402786d89b7ccd2b83b2649250402094159349a487d5069dd3637c91c5f8d57ece22efdb2654c934030281429faa120704ba7f0504facc7c963cf199f934e104142090c521d63660b141a36c19df1a25b4ce239b320f6b0d0a3b7775d3461873869f45de210802b91a14db98dd7c5f59c311e609e9b0d2a0cf4136e76cf2b267f17d22ef50a83592ada5291cb0d06871be19e374d94fca8eee2e37c698c566a7cbde5a8bbce367e6f3a979f2018140ad430defc875609d41e785115ffc503a686f4f9177080402f51c9619747edfd617e3f739a18522ef3fddb49ef2b1e302ac32a89d2e32e6a09453c2fb960cfadaed38abb517c36fd3c7a0b1599ff5c29711be3c2386381f1aeb703e351f0b719c5bc012834e97ac737bade1e996b930a857f66273153e081d7606067deed9063f370bdd5af7bea0b53de3cabaca2aa7b3368a149f263e331f259f284f3e2fa2483736238863794159d7e760eed8648d4ce6bfc949cd4f0d93cfa786c9073bf9d43cf980402753bec9a9018142a41b9b51641dead768a884ac0f585dd0e68d6f7539ffbccd5a2cf20ea5be8a9b72c9c93301814020272010c8b1a6a112b2dab0b8a00f4f26fdc67ceb6db6cd2de86d6b23841637c9dc6dae0575cf2cc37266266dcff9ac2cd4426fc7b9e1eb6e75b23f354c3e201008540584345442a12c6874d0cd171bcccc5dcf28f28e09b0006de7ecbb18fabd5f619e15a08eddb7d7b59eaf7a5726f2761d9950805ac8a4f7eb89a5752de309d077aed93c276b2ee29b2540e36cb359dca2c3f939f77268b45e5bc5ee8eebbdeeb0d0af5f5b629b3dbbfb6f2a85b0a09731082163afd9fc7ef3151aeb6b9c23acd34e6f9b712893b5627f67f0d6ae32a728c4f319ac5fbb61d6624651d913ba679f73d5df6df944dd627ff7e13798319c1f015a1b96f37d43eb0ec68c6fa8bdccb1576c1b42f62e36515ced7d075bbfebd2fd9668eb37ed8d56ce78ef84d786fe7d1c71768eb96d785a126d1b735bf6d3e2aeb8ad159abf3597e7b4d96ddb5b214031c4f81bbbf7e7557a1dd18e36bf3c618536e2ecaa88661cddb5ae73cfebce6a15dad66618fb6d8dce6f9e9966d8fe5e289dd996f5e7d3fa6ab53e7f3a6e167f62da7af64f0b5fbefedacf4badbb6d616bf6e463b7d3d2d62ebf6899bbd0c93c67a516378925acb03af738ce2ba86ceebad86c6cee666719a28f41e6e6b319feb5f7ca0750f69e6def9fadd65aad7400ad0fda985fceb7d9322bada032ffb3bf10be37bba56c007d15d76c219ed8f1652da9d0765dac163fd77f5fbf3380e2299be16ed6fd83f57a15145e18bdcdaf315b16a753417d5e88dfba64d1c2077d0afadac9f9beb9bded91f9143af1840d4fdbe6b3cc6eaca1b0c176b1e66f96a19b510a85b14d083d37d920b3194a415d7e79a3f5ce51503763ec98ff4567f0de2854ded62264d8b1674c3a28144237ffcd089d6d8b69a8bd36d6fb7f2786d21b42411bdec82cbb13b6eaee7d425bcd354f3ce33306ad7c825a972ecec7d3ff366c6f01d4da5c6db3b5c5d61acece09cdf2ca6ef0c6f7dee0b54da893edf6da796b7bb739136a199eb5b6ec77f03ae696d07bb17c3ead7d8ec1f78dd2e7a05759bd21fb3bb313b4e2ea6694373be95ac2199a6fcc30c7c693356ed64dd0dc984d3927930d7fcc4a6885ad36f61aebcc6eab0aa0ec7375b6a16d5f31f304d0d9587b0cfb47d9a06b26f22e3d2974ff4a68360c8564d350092d6182ce18dbfd7a2db691c1cb723685e69325e864d2abbf9d1133091f5482bedbccee9dcfbd8bdf2df20eb98eb1ef5f719204cd39b21c3d432ca78dcc89bc43ad63ca26bb98c4c6640a5539854230937a6bb7ba26677e93b13745de2197924e5763beefa2739135d644deeeb43de758c40dcac9e6e32bf2c6c274aad22dd20767b77dfe8fdf6dbd22ef530a0569e7f7647691b98631ab56e49db2c973caa3eecd19ffb16df1f66729f20ee1520d9970376780a3ac5a581b4bf61a4fe7aac85b84c2b9099d4c3914957c663e359f9a279ffb536051a598ed4f1a9d2f3739af64b936bf8d89bc4f5574430c044ad96410e84fa64b450ac726c4200d9510154ddb3b9bedc79a31762cb1c825ce6789149f4fcd934fa834f2764add2cc168850ebde7bcec5dd6c722efd449cabe2612490148dcb7d56b76f76f998c55e4fdb7649a7f4b504a4ba244dd985c0dc8a78c0e6173fea0bfd98ec906d95c21914094e51c65aeedc95b636d55e44daa573e9442954cd7bb3462fd27d37d345442538ea0ef5ede8ba16dd0ce7728f246e5bc95f9a99aea6e0d69a8849a3082de86d5def7a6cdf8d99722efd3971040dd4e2959756efb55385de48dc2ffa850eaabc0fed43041d50f6b381f29528040211b132ed513a87e6a9e7c426fd250095961141142e19c42211d88e8177b18028b098b940f4244d8640ed0ba8a64827021f611c20043146008208c9011e287227c603d10c183103b3403e8100a22876663baa13f85426d25c276731fe538848620402864801bb0549b1f06d021132954a534aa52c544ca410032012800006c7c8839995295071b4211b6507b2b95648ba8a10034c89cc2e961860ebd28c40312218ea07230d24ca6930e458a80c1f54f3abcf8e092fa2a39b4348a07cfc8c6c63444a715e03ad527dd1dac0e61791e2a1edac8410d1d586f534b9e1cd60003c9914a890212c0c4124a249124493c5f50fca07338e5ac6f61cdcce305cded62895fccb6beced58240cd21e0e9a28126cac345f36cd1ad454f4f968aabb777372623084422bdbf445a97a141ac43068aa5b50f437cdb6c8fd5b844090e14a52520100884ba31b9189d3150b70f1966b93ec6f85d140365f1b6796dcbec4cce9a9f934e18a86c304efbd84a086166100c144e1be584f56173d732f705fafec9e86a3ff764b6b875bc401fcc195b5663c5b8cdf8ba409bb5ce323cfbe59c193b2e5026996b1743eb5c4ffc760bb42dbb72bebe30cf2c594b2dd0581d6cb81f6e3cab7c2e0bf4e176534e26a1cdfdbee11b1d2cd0e6248c335acff3be07db1c9d2b3c881dda6cf1b4b942f7ac403fb38c3dcec9ee8cd6c52a54db9fdfccafb267df83a04305eafeda67abb3b8ba973164dd99028d17f7952dde7f9949eced4ab3995074a4403ffb7b6edbbeac8edb3b059d28d0cca46c7da36516051d28d0066b85dedf6caecfa32c41e709344e5b999d973d9f19df7602bd8dedcb7eccca5b3b5f2b3a4da04d5aebfff73993d73dc87a8f0e13287ed8cde90d7664b1d5d75942831ed051026dd0f957f9fde0cbd9a3c81b8b2f55a9a50a4534a493048ab37b17b7da60e7da70eba08304ea66fb76f2bd79edcb18c6ce11a87d5bef4fdc5ae7d6f067d73e354c4a50a640a979f2510202411b748c407d42092bbed1598e18bb129d22d0799dfdeb1a9e9708f4e63c9bdbbed1615fd61902b5d0e7b7c7cfba3ec62f042a67752f7facb8c19ce30781fe75d5bae3e82d5f5c2f10286cb1df19abb24a9ff2fe80361cbdbee9ea93b5d97811a1d6c157e7637663db7ed60734b79536bf63f3bbfbd94368cc7f2584aec1866d67ed01adcd36773fa3cbafbaac3ca08c5977eee493afbdc37207d4df73d5baf96e6cd65cea80dabf2fd70c1b9ef1de280da1b23dfbfaee337c2e5b16f2b07db5ee3526734073c337e2eaf89f9439e3804ec757e666bf4ae81af41bd007dd63d8337be6b2cc36a06ddf5d7495b98c7f3fd680f6fbb76db2eafab97f1ad08731ac53c6be2fbeab7006d4a1cdb97ebdfe5a9d2e03cada43bfb84d9b9b6491101ab39badc6286d8bcdfa0d42237c18fb5559257c19037a6bc73ba3c417bbf7240c689bf2b2665b647edfc3f6029ae3cbb1badc5e8cd705d45fccd042c7aec3aeae0534de19ffd6cab285973516d058319bedbdbbdd0d760b426d8cb5b5fcd0ddc76a632ba08d490ba56bfeb07ce97d6a9880a6f8cc7c9e90728383df89d00d0e7e9c4727109af38b2f637bcde2886d144107105a5b632fb29c197c77b10dd1d6f0e8a88046182fcc574afcb149d8697452406dc77b674f88e36b9b330ae8abf661e86fda27f1ac1004028126bb40e704f45928e1acf1fe63365a07028140a1ce498d60b36e6d02ead8c3d83eefe9dc32c99a20a453025aefabccbd96adc6fc194a0c74fea06f1f74ffaee5c4f37e8da34302da58cbff6a597e18368847d03a7eb44e1fadc307f56aabb4d9662c59cc2edd8d8e08e87de8fdf3babecce733364340ef7cae1fd76b6b84bd07fd7777fdd11f6cffa4131d10d0eace1e7fb3afd9f82a8c8d8ace07e895b159289be36775c25cc279533a7ad01865635f99cbdd32942f0ffa72c38f2f6cee5f669689bc73f228652a9d5a93d2c183be2c5f371b6f6317d6e6e0141d0f50d9de93d72bf3cfb06b751a2aa1ef7480d6c6306cf816768dcf842594ce1df4b5e892c5aed7ba85d0a1191d0e509f6ee2791be6b7d045294376505b5f9dd133f61be1c479b2de40a70eda70c2ec24cc2d1f76d6d241b3ecd9be66db98b3662a753799f930faa41b9c9a4f94271f343a1ba0f3e39c4ffabdb7be8bf11cd4e58e77f6e376abb41d45def353c3c4c6745a020281402050470e7aa3740ecbeab5da96738bbcdb191d0d50e993c9265b67765f628b7393011a1fbbcfd86d79def66216799f4ca1d45779cda48301ca6e9b76c2db704787bbb54e1c54be6e5e596511dbee0aab9446928d0e1c74e65959c6ef1be21923f06d89149f26e68dcdedbc41ad639fe19c76dae9ec9d22ef36f37971e623713e519e7c5abca2e346e702d1b374eec9c6d5f32b458092ea28756393a5d346bf53878d06853a6bd0f74d4aeb5fdbabd1ed8bbce6c9478aab1d35e8ad59e60adfbfc711c69806c5cf3dceceddcc13de3845de5d32a1e16093ce5d63b3cdd7ed9e832d73bd8ec1962cbee94ce40d4b26d20c08f42513e946f7a273067dbfcdcde92e83d0766432898e19b471b3ee2184d8bee65e157937aa5306adf0caffd9ee6f36c6950c1a6dcbacd68ab1932f5f8e412d66ce9ecb2d4691f7a786c9e7c67472020402a1947cca89295572028aa98e18d4be1a276e8eb1bdcd33ee8441a78d2f67bcdd707ab3564f1404aaa7ef8041bdc20b9de777f90b6a71b4935d6fd7b61d7c2f6837b72ccf795dc56eda2e68e7671367dc8f45f9ef72416795ae61c9dc94783257b7a013b23aad659f1d7cfe5ad077fcefdabd70ba58ab77b25036718ccd9e9db6ff7e2214b20a27acb76118676bb00c74e2376bb550b6e7cebd4b068a5f6b90bdf4beb1f5b563a08d3976b2995f2cfd45e7a4182894d7a7df581f42d90c8681ba965994b6f95767d71f0cb462096386ac7a9556d6fb05fa3e46ebddaa8b0e5ff602ad2fe59b373767cee26abb40dbe6ce6d3b3609e56bc905dadec57e3f7f93ac31f62d50d8e26bacc56c3b335cb5405faeeed964b0b3932f6316e8fbbf86f932bf0de2c7027df9b958dbfb28bb65c8aec0707c8c1b14b99c725c5688de7562e9b57a96b3795701b78bed84d03ac6166791b78c595c5468d0141ad497141ae43657141a048506a3add345d81f73ec9beb09ed04f64857131ad4a88b09635c4b68d01a9712e83fecf6621673c52cce97c69504cae45b0c639e1823817673315ff79c6386efbc2d8f40bd216b38656cccfd3b69042a6bc6d146e8306bee569681ab08145ff88dc59ca76b0eef13814aebf7e539abec37ddc543a0b759fc66c5b5b587d0af10a8cb9659e66267f6eec353eae60a02cddedcd7d7ffb263de1e6b382e20d09be7cd2e5bc7d1bae8cf81eb07f43577d9edb6d5ecef1f11fa9895ff5876cc4dc61c08c4e43ba56ea4b87c4065646ebd4d9673cb7836d6a17ecde8b80ea12fcaf76e7dac357c52f6804e189bb9c7d8ae9bb55653d50910a875c809b978409fbdad595aaf3e1f86bf03dce4ece70edf6b75409dcd75b67f6d7b5e6beb83020402815aa3a112baceb80ca190d58a219c2ec3fa19e642a8736be38556deea4de680ca9b9dcb7ff83a429f1607b4e2d9f5e67e3799bcb6af1bc48e35fe37f7627bd90694d5dbbe76865e676b666b409ffc3671b3d5c677582b0d68c4f3d999db3d99e5432cf29e01f52ce5bb87dff328ad5b19d099db6cf7e0b5dd1c669310fa1cd7576d7bb235cc2e1cc4551b61751846d9a2631e038ae3736ea5b5f3366cf3c180fe6bec3e870cc68ef5ba175039ef4b689de5d9f67efbe372018d30cac720aecc35fbdc4a4dbd115c2d6830c3285bbef1d6fbacb280da39af74d31d6eecc9e8c725c8c3feee7a65bb39768b2b98764eecdf2cf7b4977920b7d995cf7cba7c5dc40e48fef9a4bdf7659b8e61ab027abfa77bcfbd627c5ffb14f864b7dffdcc6e43769b940b05f42f94ffd1315c1ad5136e8da542f199f994a07c663eb8347a22e7f438517c663e8f43aaad73fef422546df299f97c6a9e7c584340ae13bc7bebcdcdf6c5d3a309e03bdc2a9393d5ef6753e49df35642b2c52ec1c5cfe67c9eb16d3fafc8bb994cf199f9b4273e339f7ee253f3e47353a148390181e64db5617d32a5eab40ab9fea00ee34737e3b3f91e6e2ff29632041709464027f36ce19b71c666b7569177fdcc7c6a9e7c4020e9faf2835eeb1736e96e7e9fb1e33e68cead59bb8f5964cd622cf2d4a350d55171f1c12e1150281db6796b6b2b7f66c8da035708e23ff8dee267d7d75de4ed3075ed2121734e7ab318fbb1183b4a1050977376dc6c6eb0b66657e46d633ae54f0d934fbb62633a2dc939d58040d70768cf06e5ff67c7e273353f088f4b0fca58bdb0ef8d72b2171dce8356e758b7bf51caf78e170f5a6dab7fe57b77dc8d4d0fd09f92758bb9b6ffd7d6017a2fecfa0de2d60e5b26efa0ef39ebb27b36dad916371088492f2e0ed058efb5195a565dcdaebd1d14677baf74d64ec9be555c07ed87b9d9f9f08ccf61bd74d0ebb0661b6f9c1ba0913de6ee3d4a076b767350e60e1f3b6b18bb71b372d01c1f633fedebfb7fbb6a8062db8fcd37fdd6d8f1ce0cd07f6da7dbc7b865dbac6380ba56218cfe30b4d0abb73828ab15c728f3c311c2161b0eeaf2c42fbaf3c67932b7ee5b5c6f50d81136072bf6f66d4ae6066d73c67c677baf350c2ffed43cf9804033d4b0af349b8bc58ceb02b4a165b0d50c6fb50f563881ab0d6a5fc43263e69ae3ff18e7c5069d1e337b50da7735720dfaa283f659e7f06d0927c4c234030261613a9d5aaa41dd6bc3afb54b7cff459c2b0dca2a7bcedcfe7c1256dbfa53c32465329d6cea9f5252d0a0f5cde82eb62fbfcafaf80c9a1f46d898b13c1d3bd844de24520d79fbd430f98444a99bc7345442582e33a8bcf562d6d865d04d875da4a112c2571974def7cfeaf3ffafcd6132a8bc0f470b59bf17fdda31a8fcf8b5ba68df4a5cdf1583e65765abb83f36ebecab6150e6cc7e851066dbd73508066d09f39496bd96dfdfbf2fe8336b9d47899d7d565327132af4554e6fc31a89cb0bfa20f4cc2ace193af73952b9baa0ff10da7ed65a19656bf5e282e628ab63f79c93f3b6eb06a35c5b50662b9ed161d68db9d8fcd282fa3b7bdb189c1035bab2d02cdd3f77ec76cb7036e812a153d69f2f3fd75abf752ef27eb20c947db5ac4edc5ace3933dc64a0ccdd37fed7ea3fe9ba8140d001d618a8eb1c1b73f8be61ecf213f927ca93cf93628921c3ca1a6ef6d6e8acb419ffad375272fe897e1d225861a8d23537e38df3fdcb53e42fba75e647a71a52bda62720d04c7034c8e58dd6e6756e5f6d66f3edd8ed878b1b7d8136de1a2e6c50882784f959ebee5dc972172e6bd0fbe4cc5f9f74f8d86237b770518376ec26b16bccb28d95e5990695f2458cb18decbac7189e68d0c9aa95f82f7689637b3c83da792f84ef323ef78899cce2620675fd50dee89acbb86677b37029835a67a7bbd5350bb1832f4a0ab89041aff4e6667c9effb1e9f21854467fef32b61ee1eb29cf7011837e7e9fd15597f3b6c71c069dcedab9bf8ead6338633068ecd622c4ac36f758c3f90575f76e6d194b79b17447868b17944536db9df34d2bf2d7af452e5dd00adf7459be29db65f0b53c5cb8a0b9bdc6dade6b72de596b025cb6a0b76b9c7e7374cfd8662da874ebbed5b6194ae857ba64a157b2f62a66ddda57cfac25117afd6b8cf739872e43f9b08da0a50c54e666fbd9f7af7d9b8419682103c5b0cd6fef3df6acf46676b48c81da8cafbbb786dd4206b11868ae2d376b52ced8f0b70982963050076fb38c35cfecbacf9f528e1630d08ef0df6c10e79cdfb6ff02b5113319e7abf2a33bc45ea037e7fa97658b33837d6517a86c6d65848ed53a9fab920b34bbdb9ec48f1b76d356df02bd2e3a891bb30e7aab1db5405d6d0fe173526681c2db73428fd95f7cfe2016e85be86c8e503a77eeff0ab47533db2dc36615576905ea9d99bf695bbb3eb1ab0275ec3abf9da33f7f9935445aa840a595d05bbccc277cf3db0d5aa64059378bdd6331c6e8aaad91028deeb2e96e9d84f556e651a01136bc787a63f8c16c1b0a147a8e1fd9c4cdb9d7fa04cab07d36d6f7a6958dc569811627d06ef2be78a7b4d66b65b809f4e6173b6278a194f3e365029defd6e7ea6ced397fb54ba0cddadbed9ef9dae8d52a81c27e891bbf096d1268fedc0ee62aeb3be8b62281caeaf939e9aeab8dd6cd23d0f72f197b3df3acf1b96904ca9a5d3b9f652beb8bd58b40b18312469665cb8f2f8b44a0d3b5abcd6d7e9eb16c38043a25731bfddacf0d4ec72d42a0ef7db68b8fd5ebf2dd20d07c59fbea17be1c679e0e08d4d9f61ebadc5c95d6c2f6032afba5adaed5966de78608859deb7ccd9afd3671331fd006f39c2ffaabf5102c5a7ad0a06cdeb1e59c8cf98b8db5f080ca7ff3d91619ae2ef10ea895107f65ffde9bd9c6ac03ead9e3b4efd63a66237e86d09fb5c1596fc37ea193b5107a33eb68af9595593babcc01adf85fec87ae2bec8a714027c31eeb947f6f6eb15926c567e6c3a2f84479f221ddd88c424fbac1498562cb0de85768b1abd361c3b71fb4019dd6cdfb72cb7c99d7cc6a40fbd6fa3e6b677b6d838e06d4e1c818c49fdd7dd6626369990175d2ad6cd1626ff8644719d02a9d83cfd57a6b6d2ba1c89b10caf275d839573184595a06a1af326fd8da0c9f57ec3506d4796cb341776585ecb208032aaff3f9deb16b2e1bba17d01bafcbebfcb67616c316798b52232cde353df19eae5d40a374b5f68cde8cd5eb2c052d2da0f14dfb9c7dd26216d01a599bb0d6970fcb275b33418b20b43e1865fe7f0f65c69f5b56402bc391c50c6f74d7fae24fcd131028d4718f9640a8bffa565a089d63f5ef8f4e35354cae1420d03dcdcc7cee4ff1246b473420508a84e3de6801e4ddbb94ac4596f34f78d1a2022a21bc19b7c8b26b0fe29c02eab2c40ebfec0cdf96db45016db6e38c166756e7fb8c27a052b6c9a6cfda2fdb33fbd1a9e6a55a4c40677bf2552bdfafcd7e6d0968759873b3169d9c13d6a6a1122ab5fc41bdfa3b7c0e4b46028ae3fc8b9f319bab8f80b6336b3fdb36db7f73f75bfca0b9d6e67e66f8dc73b1c13e28aeef1bc336ba57a1b4ce07c536c77effa66b1cad7c91778ee994423df62602ea57de96d866d6586c0eb18c720868fe66efb5eb79de3671de83b2e795d96ed2616c1bb1c81bceb48080da07a58b99b9279bc73c3f4019cc8f41f82a6befbd88f5a0addf3bcc3fade769f1c32453c83b4a4b1e74d6991bebebcd9c745c271e543a732c32e81c8cd7b629f23e9952f76f50a551084a8b07dc63f8f5bcefafbf7cef809df5caec585fe7f01db4e585d83d8b9f9bf04d510b0764bd535e2833b3104b6cc7cf0a6175f5cd36e36b9177df963aa8ecdc10d6cc9ccb791dd3411b67763fcfc9d8f5fb9ec85b3aa0650374e266fe9131d72a86d7ce415d7319bb7d57bf510e8aefac5e9f37c659ca971aa0d95b73861fbecd36fc0c5067e36dfe2ec69edf638701dacf6199f3c59dfb59d8ad1f939638a88552767f37d82e5b8783f6bdee18731c9d6451be412bbeaf3e8f6fd6dbad1b6b342d6ed00b9d943167e7724b8759e40d9db45c803a2be5eb18b35f092b6b83be76b1d99ef2c9f6f06736a863085d7ed2e118ef84710d9aefacccedfc76336b5bd5a02c339871ab164a3ba19569d086b6c1ec2283f2edfc875bd0a0ad35699df5f6f2c914fad288541abd262d6750585d6c9261ebdcc2fa6e633ae5d66e498b1914e7d9d2bbc9361f93ce9f9441fbb5ceefc2381b4ac75f936821a3650c2a638b98bd88678b12ce0a02814082b48841ff5adcadbe742ccb3bbbd56809835ee736e3cb62953f996b6c0a500b18d4e5ebe67d16df93b146fc057d8e3db731da2759735dbda075be95b8b686b20bca6485353a76cf7fe164ac4a0b17f45908b3b3cc2e7c17ca683312a15257d8a3d2b245ecead3fd3df60fedf3162ddadffc5ba785b64556734b967ff341363f32779fabdfdadac293c8640f4277e8704e29dd9c537afd7619d76e8da185313e913dcb4061f6971b94f8b56a196e28528032e021030d9e31d0fafad9dbf6b27df9ed8b8146dbda64f7ba177386778681e2caa0b3d1f69db765fbc040db7c36ff5b8eb16518e7176847986b96f1566c2d76e7051ae19b11fb85d17b56d8ba402bf49a1f3256e5cbd8e4191e2ee456ad9d35ceeb308ef96ee161cf9f3762c75ce3a0426e6a81c60a9b84d7d61931fcbeb93e6956c09305ea4c5a77573fd6f7df321628738ce765adb27c050a6f8dd84e37a13bf7b756a0ad3f631b21fc98df4158053a1f9636becc1ebbb7e1d00cc34305da22eb76b5d536b37c971f179e2950d970c573c6c9a0b437b72c1e29d0763046866bce6e3bbf8b02b5f062d78ed91767f3f9a040ff3993ed6c6e5856eba4c85d3f36d13ce979027591b516676631d71bbdbf848529644ac166fdd8547a4e4325a4c4e384cb6c7eef64b517bb2745dea54abac1a6992634883181bebcfd72cbbe6e9bbbd5b304daa06ccf62e337dd7dd7b0dd541bf77f4a59d8ad049aaddb5ce56d8b638db09340ffdeda8c5d79ad336c1d09d4da6fdd629633b7f6e42b8dde944fcd938f29557212c573047af1c3f6af56f95cce2e1b81cafc99759eac59ab1fca39a5ba51f2f4a9d1734f111c119c6708ce230417045a2b9eb9fe74c6327eac81d0fa07cd8348633ea0efd3a37bd1c25cdb7cee3984beeb67734fefe7b0d68ffdd844030259cc5c77c0d303d73c68a01d388f0e1ad4d66308f51b1b93b2da371993ce5308f557b1633dfb5d736dfe149e1c50e66fc25a65b51233cc2e0e28f48c63cb58736c26ff06f4bed6e0d73b21966d56b701c5b16bad8ed967af3f096b4067bd19bab671da66cdfb9738898d06b4d5077dce6fdddc7b907966402fb336e35a3b46fce2638f0c6875ecaeecbff8e5ac528abc5d211e42687cb71f9cf8ca6a6b9d3f08bdd2c2dbac7b6f62586f8b8143eb62b79eb865f7fb228e0706d4737e9b6363d3b6eabe89bc597f6a989c6a663e339fff25a69af802fa6fcaf9d239cfd11f211e17d0f7fc1a769f4eded7f0f5b4804ac76476f5ca5aaddfea22efc802fa564ad6d97165b7c66805a1f0bdafaec9d8f2e2363dc2157802a138ced9de0db3adb2be2cf2ee06ea1b7800a10c33fb9cb519366793c1383c2aa0b2737c3da1b316df08992705543ac3edba9433cbf72da3c07302ca6e93b15ef7d8bd76f89a80d619d937f7fac29b7b4e4f0968b6b09fdf761b7eb558b6e1f983b6ecfae6e7f13af3bf924e0181dcf39080c2185dc4b83d3726b3bd226fd7271c5489b696518a670414db06bf62d92fe296f84679f271edf18356dcdeedf76beb708d2ce79442fd2d292999462910c8d30795b35b67696bb3efe655e4fda480b030e594de89534de9453539a577020402814a261b1bd30d390f1fd4e179ddc9f6c79d5dcaedf088a041d713029a5febdb0defbbaccefca750eaf4576640ada5670fdadae1f95cb76cf6b29c22ef99d3879a0704ac7395b6d95827660ec567860a5cc23135e15c6c09783ed013bfc6b1edbbd69e09f7043c7ae0c75cbf19716e35da6743260c9bb52c3c79d0089bc326d9bbfed3f3e341e395b3276b794eebd7af07688515de5b1f3f86b164b303b4b9d9b13d6bb8a76350de41e7ab2da39b99e5dcbe7280fecbb7318c7375d91d3e3ba8633536d998b36e98b3ab833a9f6eb60bdfbec33e596c0f1d0d4ad6dcbb3973b1dd640f7a3640ed641e31839e3d73d067598bf1abfb3c5badaf3bd46d051e39686e6ddb6ffeecdeb919e7f068807e73b5c539675bd9e474343c19a0cfec7b0d321c9f4396270628c4b5e1db6be3abb2e58d83c2facf5f8b6ddab7304a3868937f21eefcdebf41f3930fdeecf8c1becea31bb4c6b76ee22c6b8515fed4c27301faceb1b377be6693f93f10e8a6dab0323c6dd0865d6dd03dd8113b976cc6c306b5ed5a97ed1d86f36229d7a06f4ad9f5db56fc98b3ec4fef89470deaf01b630d3b56edac2c8bbc43adbb61514f6ed250092dc093068d1f61cbade696d0d9746378d0a08ee5e79aec2cf1edc7f90c3af1cbebfc2f668fe3fb2b1e33e86cf279df161ddeafde6ab0a852804058d4130844432564e32983e68cdbbb5d7deb647553e4dd6eea890a1a2a2193870c0a6795edfa61ecb259773d06b5ecbbebd76678c6dba2185436682d7b8cdd27afbcce3c61d0f7662e7a76cee616a5570f1814b68f6ec2d95cdaf8b0309150f7a4a4f52de5a05e94bfa8e42f4a658128475110832008009088cf0808000063130020381c18908683c188601ab75d0014000442625ca03c2a2493c8638140200e06511004611002300c03010c435124a531c85c07b11924c55b3a4b80262fedde329a8ff84d57fa59a1489ab133c5b78f1c747a96b29e439264cf8233a731f818dbe7487ce556729495121c0fb570b50ad0993ffec9cf0d190b58df27ba98a81805a7871465a544108a88a439f526d866588b207ac11622c7ef078270009298815348241aff16efe0639429a41561e29b76b7ec9ee0c832ced39082554560beeca44b9319a9e46b61f42d13438e30998af40a3cab04a1adcfc515348bd2dba0994d6bc9597753973fdfff536a7108d9f90007248e229af060be07c7d83c4a68e75785f2b947626010ea80259c22616fbe7694c94e4c1e6d8772d468a32148f9e1385e6bfc35372e9dd1a5b94e2025617c0fababec836845f34fe7b1451089fae6c7fc7b4010b67a889d6affd121864cad8f2a0b8a05dd94a4e03fd03f8a341b75a467c64d155a95328e7be0e165f61b696b74558031906223ec2fecbc9f11aeaea5c5e353acaf13e286be01206291b177c6c68af1bb19718991be182bcd4625b2614c8b6e1dd5eb4662cc2337f3582e3b7aa377d4206f6a5335d38caad5d163f010058f0e38271254b30c6a44b89847ed535337c56e5e6fa6cf42fd42af729e844ed95fdf3b241bbeda2f25a69a0a442adc132038f14a86bf42ff620de7625acd089367b3f5db46b8c37a323c48500dab952e214a2ab7442072eac3e277c15c240e4bf6b3b4ff67a9cf123f4bf259ea928f31775e676a96a52d3fa1652a600b984b2906022aa56efb6d82fb528f8f32fe68edfb485ee5ed461899f32537af0ebe29dd9c4e5d5aa265cfa3295f79d5437c86a8600215b5da4cc692bcf18da70362388cd68f3c5c0104d5abd69a7d98375810de7da0ea9de0992b892ec697468ce308807ca834b6cfeca13c83767c49be83451100242c7138e211088e8c63378a62236f6dede1dd7ff1be9a9183311ef18b071b0604f3143607c686a81d9418d8df63b48289c42b46a0795b6894389377a965a83c924802edd5a8b582b154ea81cbf6cc390ab344f1b21d19c6aeb2897bfb9ee4d6665119110dbb275562f5249c35ff11acfad50840ea0eb08b1df24b88fbe7e5a5d613c1dda635e280f69f959d38e7590885072c9925864cc8468acaa91fcb9cdba27d1977239562b97d059a7cb360bd971ad38687e4440f8103e5157bb4377221283665f433144af1ea3fa36a9f6f00613d616f1a1482ed6c76ea850b9484ed499dc336f400b9668c0432e462ca2f16ce07767828ea5eb554d401157a9646c64538a530843cf9848e32bfa592bca1ea6f82f28232ca3fcc9098f6ba81e60c370398540af6a14ffaf1732f2c98daa6bda0f32bada93fafc063b3669ea69329857a49c835c8bf8c2f6f1b119f3f53b3377771914492b2994942131b7f5c7840210fc626e1d088ba1a01ad5890cafd3255466cdda605d420320e5f283edac95b55ce8644150ea79d023d23ad66555527792f771c9ee89ff9c04ecc8a3157d2ce4ca6bed77d5f66f357765279b5d5a1909dd5d8429455d0c91d6393fcd80cce309ef4769b52eacf52fbbcabb611ec0d560c409e32b7595c4fd386b9006dfdf93f8d8c5ee9c2b2701500f5a2307e65a1891f4b3f4c52681525978cb218644ad8c1d5162cbb591235d48714d9a514ff385656c59fa38c81d1c485b1801e44082a0b27e70226f90ab7e31a04ddbb7a2cbe9d7a62e535186cf6b593c6bcdba1033e61ba2d8a398dc0543914f6797f784deb8132d119eee42f81d6d855b974cb175a1e361062a0ba03e93dd983392462f8c11a61a68fa3f2701966bc0deacab4e69ab580977d216c437d04b2bfbee3755193f68e10bfd3e8c1a1401a2cbcc26e12eb47f8e6af944649eab3caa172999c43aae1e520fd39a036bd7ad664bd8770a61f935d713ce406e221b39f01ef6e26dd6f641c50eef166d5cb448c1709e50f8602251851185173cdc274f24c9256c01381e2e6c97cfb0b5d66954d219312604bae24165554a04c9650d60dc09f85017b919c2ea7c03dc1a4125550961f7d977e81ad4f770c3a2190ccc94446751ad4016388cc1932384c0a7546993e4b047c7918cd40030cc50667d2f6647dcb5f6f6bbd0f56babbde18a852b4c549ccfa16dd06a1d43516d385002d0236f23536d4cf194aec0b71a97b5a501d0db4743be6f66fdd473e43b6a2319dace40087708dc21b22a42bc00f100d7e2d56a959de339c21776241e7860d05f0391d281a491312ba265fb5986bb8b779a33572f8a71ab06ab7d88919ce4ea74a0d0a3f1522131e04bb6e0b612f71a9c900e688224a04c0f818189d66e12f17c394b82a1579738b0b4077c7422741ac4230eb6d93d972e6df382db16a9ddd310c5450809df543432a7605745b6f0166376723ab5ef347808a7d3d8198191207752e115fd6b9c5e57ebf6a49631b58496a2789f8a91728c93a9ef70a710d327e83475610635fc7872c6f040bbbde843fef7d9505403efa18095eb2d6cfdbedd929f08e9f6e38d7723f796fd251122dabfcb27b5ebda8ced6eaceab86f430e47ed44ade9889b1a2c2d739336eea44205d4df56558752e2dcc496334b79152f657b7dfcfd99647c0e6d3813837c8b14915b5013d749b73951103c183eb84e877aa174cb7b9570dbc93c12f91d61e0369b6095e2800ed197e94e352a8c7c3a1750e9ea3b8a5db8a2acad9264d31fb6359cd008188f983b22c1f2a281176d93543e93ce244679aa0d6916fe7e12cee65e59fca20ed138e60ad6c8b2821cab852eb9db459724b9a225aba01e5deed722a1dc6b1850d8e9e6508098386b2cff4bf46ce003baac44e0625022e4bca8d6605449e5060500c73bd631187cef50b552780af4a524d840466760c0d1b7d4f741c86ada1e0f170ea6cb20f8b56b5e9a05b90fbeaf2fc0df6cb543a1b343ff89532c08a9d533529ec9d18e6010405609308c719d61a14aa7260db69053f3a531f2c188134a4cd806c49b65ad0f33e7c540858f2c5d9af7939a52c120c2dfe9b1c517e17ec48f3775aad8d94f4c9ad8d2e8722e0257d2f408b49ef4e0ed1a9c622d327b6364b3e6677d1891f1f0e52e968f011851554c6a5c88b95867b7cc08f556c14a205a1c695215609f9e070e11ec9706b1a3636693381efbf02b645d87c30219de2689d480507734e6afa80aacb81c30de7b521f4dae7d4f52c21770fe918efa0e62056e16d97dabecb165dd4c8e610a12a236c7945bfa5e900aea802f880a49cf3e4f1d181c310ea42ed700369d6f26aab02f4a44a35c175a03d83bf10b0c9444cc072e4c912285ebfdc70b8a21dec955afd1f9448ad79b4970a78768dae7ca9880301a6dc0ca203e84906d0be09ce3278fd62b7e9ff89bdb3efd2f2c595e80702b98251b5a13344a4b325d22cc8e50164781f5440dac08f7d442373e38be5ee623c1d9437e0e097e3f4ad454747e4e090281f13422956e53330bd4a4ea5cf80064cf72f45fd0b39baa7c4a44054c8f05fe7301eaf4a61a91510e83a01bd1394f60a58cd00fd0838e6041abd45a8ae8a0aae6211412abea24be3c96bf4a67504befe510d8ff4ba4079215879dc8c9757ff96a78c1bbccd6a07ae3a251776fee52265071d9db29aba4fb4180173f52b73dea8b2f6ec9e619bdfa48ba85573027bc5ed6ddf46522e8493a58302f14cdbab2630e5d8093d2d6612b3cadc187db93f515e7d8ac14c89ba31ae9454573174ea4d1206daa3cb3b11b50e97cb367d2a3e4b6a364a35aaf622069d3be2444804716df3c59d24bb7ea170fe66f04d0695861842308face29a9df266dac30801293a01f3ba81e7dd81804e8ca23a8c9840face46f8728149169bedf93c75208ad649dc8d92d377c498312bc469a3298d53b97fe2a913e169eaeed771fbe1c452b68035c49ebeb9ccdcfcac79aa66f61fa704449a695c40faf748bdceeaddadea53aee7cd2bf44f7ef84891e29e82a6e6521d1ee70e8661661b8b23a7e9bc831f705e1b5c286ab3612c88c952f19db5cdc99648ac131546682d1c3e7d20c498ea9f4d509810c9170b8cec64a4d1e56778540ce20221c168cc5b702fcf522cecaddcdc40a29f1892863b20ff574bf9c75100d3fe45b8d0b01260e3cb7eb704932eb9bdb6aa2038ccfca40e68f12b106807da2b8b07fc0e6c8ac80d599f94329c053f0de04114bfaf01f7b27c469886f2725df964f51b8056a6481bdb9cecfecfa2492bfa9ee5c42b2943d371c330fd1ad814e5d98831efea37a32c800e9bf2804ec8c36f87907a4ae675ee458561fd497aabee44eddf7270e22509a833e18bac166b082077145176839adb2f55c9b6986eb3cffc3b759350e7a768266bab7c458f0a62f979660db367e09df5758f432e0afd8b028669e75363deaa6bd5a6018aad4cba62714bf7af07a687fdb8a8c3b3b46950106ac52341af4f7a85a7c2d43c813cc065dd48fc901d92413b092586845392706545002e6111d225f86145297b5a3e57aa2ccab7a93d86ecc0715afb1a838be4e9a4f501db47cdaa114a68a66faa92d122c75e953601cf8137386ef8b5e550588d80f4bd698d6ceee36ca7608d2294f19af8941fbc3d33a830f0368166d0005bd6187cf94fb0ed82118578398650c6a18d14e973f120078bd2dce6ce517ab5693c8bfaaa0905c581540f91d749023f2e8ec462f14743f8c1be024731f0f3f447d0dcf626431d3e80e00cc5ca80b2806dc2ba40067193807e339976cb5416fac524e686311b554ba12511a5d4520a298594aa94424a21a59052955228a510ae4ac5bc16fa349618ec309635d8612c31d8616cadb1c46085b11d6359835518fde019c53056e314b0e1453ab7bf7738b3ab811b4341704a441fa7801c887f4e25fc61039947faeb66c97d1719b04279ea646dc0e59a231b7c3982e58a83cdebff746f540e642525a6c8136fca8b8bb93651e85a1ab881a3ae6eb6cfb0a96b01017870af0a5f2468791f0f6f1ae4cb01aad52237a6a143786d41d1fd7b865585c0f97bc2dbfabfc58391e2b2dc105eca4570e3709b6f14edd7e1e2f8b331c7d400f951dc517035993182d5676d22b9e9d570682899903b0fa003774be3d28a9a501a22d984b07cf94364495163742d4fb708ca5d66781b4003b77ad146321a158d22046e1618a22cb302d071852e5291848f7da4a5aefc8e3c064507471722649d1058317d5164a9d8bca18beb9c7583b6775b220c622628755bd4d4b74e09e56545b591b3a03f7329aef524f75a3964866c9c26e66b77e8f2f5dcb751fb15e3cd315015ed723b8d8039a09e9d11f0e605c69f730b89c13b3c388572148b4643a6328a9394aa81a354e46c9e2376ad8c2ba3564829d9e71ea166dbba00f8e5e47969e19d5b2944e90eb136ccb15831fcd8246d25a616a404f93b50162138c922b621fcf4604fdc0bca30ee8a95d207c687f3899fd3a5eaec65dd38c49bb6e9cd8a82c98e4d9a3a52cf2eb1cb103accbb4406fe7e613c723e5dfc855ae76de93e74eca8cca48814839d984b990441bbcd5e8c26b69a14e201c2bac093de18029bf20fa65cf097fc7f71c522f575d66253410b045537e303a0b4e4b831ebf3123db74e5f82e51457d28b514bb90b2347d492c1afa8d65b9bb608caa02fcb087f11036c56f0606de031117c903662cd6ab5e1af9a2376ffbf359471b636ac84909110a24e2ee2d8ed69a00adfa3f7810c23863532c5c4f0617631e666900f3719c13b948e5c5e83a2a77a088c86411a8380d4d8b64fd1891f1658d401e2b9332692cfa4bd2ba5c3d88229a3f7cc0783b0076ce878e4dd7272c00c6f444ab17bf1128ce694926d7ab014caddbc2e0f6befe08ca54bc95955d33238e0942890dddf821a0b80040fdb0f5a70a3118450d039b41006065069bfbc08df4f0b4e2d5a0181b9c444c210a427e00144c881f647139537f7cc783c1937ad9b49ecb2834c18c87927a16c96a8dffd2e8c4cbc37118a2cf4255e82f04dbd1d29f50c33b36c5d339a04fdf16cf5d1b37d3984595109192ac7d6b98b69b7d1422c46a00d6c8b2ea7f54669167116c98a15864686c884c30abf8dfa49e1f9f9dc1541ee69a72a0b87b39017577e2bb1e7b0921f302edf1281c09e86188b0dea94841039861e23905272e3c3c2333535b35d74c5604d31b6aad62ed26280ccc5cc629d3b1256734c2dcc129962fecf823c87045e881a5e4290ba83b0a043e94aab614eade856c0401099b53ce11131c3672cbbbc6b5e6edf4c693367023ef97a13be2f1f992979f2fc3a73a8e652a993d1f236e2c6083fb483935db4f34a245fe5180afa257cc8ce156766a55805a9bac4fec4b44e566c0c2b7fc9a0acd13cfe2d624c12e37be95c18755c9a7b31a44034511ad3c15e707143e79d4f4e208bf754d7cd441858b23721caac9fad2941ddace08438c5ca204b07e5c5354c528b86b1a46cda81ae091d85485d713d5944dfda21d1cb3bc86a0e1fd45b073fe2ed388a657dbe57af6ae604bd1fa7327f6171ebe0f3d1a4bb82df93a03b2dd55ff655e8bb6f3725c4ecf4acffc13fe3354df4701c80aca9e82195177bb686fdf1d79458b70f09a38a434e0977d4e00567ab96ade935108d6a911ca27b167c2275c93c3ef96300bc83da8eba85e3364685a5e3d0f6f0609aa6b43bc6a07e457a94a30008fa15e9f71f90d27eb84688e5f65bd5172205220ec39c1312d42f320ca7e4793fedcf055832d00310d4b50f65a6037c5d7ad1c39b2aea05b86ebc1657f924103e4ce89219ed628530cd053573134a9c76a2f9be8de64693d1ac8d08a437593243ee8833cad58d76d738c317f9bfe64ea5f745df1aeda5db032639922ab3c1783878269e7ba81a46c91954ef83e289248da7110dca0ccea4c2809e8e89d04e39010ec9c3e3c1c0141dfae93d552046bac11843bad0c71d444924a9d6441d72f95f44aef4173dde8c3cdd71ab64ff511958cabcc5698b6fc030961fa8b46e0d728d32c2480cfb706c9098a0ad000c2bfb45662890eac0f603031fa3822ef246621def6195746f9470478f34c27a60834b9654ea74ac4c6511427756a542e3149e601bd59e1748a64440ab035dc0762c3d1d2f04b81e26a1e449f0a60bb197e18e30523d490f72b9b822f912b288b8f83aea397f0a4edc1d30683fe294aa00d22d83c45d0541b90bc9463cce6d7223a35a053b8a2d62fc90bdf866cc9a61f85cb469d525fbd15b19ae989b6d245356b28831f0ee6a20d9ac4aba294ce45a6fd01a1b18a520a25949c3c424797ef255c8ebbee22896b35878cfd2486df68f7f2951537e825043284895328f63e054128d72c58b5df7132c7434e410fab924f413a8306e0768b9a3702f859bcafc508672740f292583cd2ac2ecb88edc5699e9e20d146a114e62e32cce802871132e2ee742c65584af582ee25c457888cc454c285e03ca8883f79e19d23085c365d5188902c229ff37b6a3f39f0dbea1fa049dec445ba7c2305e50e63f64d63e9b3533b6e7ace71b6b79af3fe47ca09b6b7f4d61f7a0e3258f4ee817779f19f0ea331d831689370c8be0f2556e66bc21f30d3fcff24788aa8cf44fa7b1e26d6e6418fcf786939c08aed2bb5428f0168d23f42d662c4468ef84661aab832a915e66d6794c580f41f1fae5bb368c1cfc4511a1d46bfc208cd4a2c7c482f4821cf9532073e48308c4cdbca45161035ae4bb75896c091ddc2cb5e68b4331f0b3e05d88d2293344a3b931cdaddaad2001bc2cb2832a893175abc5894964e7c89e4ff585eca56261f4209795cd25ad84f2dba3a43a5b6377f0b187aec0f6a62fa9b3aab8e0f57d67159570691a1b6536181065402fe1612b4315948f8d59e8fb8c5ffadbe3f7a51a9ce78aa8ffc991e1477288c77502e6f3d0e475ecd547e64a0f34a555e214df381f0d2f11e287bc17e5b1fd2ff1bdfbfb1cbd32598e35fdc9f036c07c43d97f1d2178c71a2c6c223befe02f5d02de978b2f6136cb00b4e5dd521757dbcd2b698052957b7ec450aed2bcc843e6e94f55cecdd8db1a37c4ed7dc27b37465d3b5b93abf80a3496ff759c8d504e50dca1363b724da70e4ef4b5d1d67ce214ac92a1bf08ad918df7c8fa56ca210a4f5ca6c4cfdb5e0dfddf7255f737d6a137d74b35ae4b6a41e856ec69de1921293fa6225524f4c3fa84cc1a3908139668eb8a719db58baf0486292995a09866ce4cbab5297f1f838bcd11ce241d14e53a609a8d96aad112491e4fd54483c2822df5980d3802d04bb50adc1a179773a03430e47bebce09d58c14e1a523e4b8ce22140fbf364b8353fe478224b11ca4299f6a9186d4af1fbeffe866cdeeeb5d9ad6d65b1ad7f29d4e4f52bde140ec6ace4dd009c24f5a95485e1d4772a7ed5615c58f4b52148917a9d04fcf7f25062345a36effb1bf6c29ca4d39b9075473161cfabfbd29694199aaa9e7ac24f579cbec301bf8c7389416be52785610583bf057d7acece172e60601d51447e5b2ffa6001810171d27f8250191e707182dac3839a0c668d67821dd8d1437bc674b38fe85a4eed3c837fc8c61e0d35d62b3b17a8bcdc179fd754ee2b29abc236d6acfc971be2a61d773a859e20091366e52fb60b1403f07ada7ade8513418de56901bcad3bdd12d8891cc1a729b5d918dd391ce9e61293260b87d7a774ae8fc0e97c9e7a2f92c5a8dd30ed0862a2481e959f737064e44849aa6d0ae6460512668a63145204d12b2f3f3861a33265e741050650a4e8d323d69c54dfeeb64c36dd704bd499b6e7c6640f1d2d6369ee2c1aaa39cead01b9d65c3305018f1d4c4543c37ba19bf14035f65dff76f60711a393911ed94ead81835ffd8995e8c86bfbf50a21b011ad0ba982f93380d8ecbbe4875e0e3c82be418274eb6c0f830916d91d3b8e1e93fa13bc722cd3daf3418d435967f583708a44e40a1fa8ec0d502b8fc8b3b17c6f391d947cf2eba556a2800a494bfa8215aee7e940722de576d6ff5e97fc5c14474be21ca5f2004625a3ae30a14645e6a05bd345add01b648f5083b35025f9e635ce6a5b74c029fadb65158ee1484ec9840551b7bbe217a7b6874bf71f6d94fa0f04b58b7171234da3d5ef8c0eee2240c66aaf2d02cf689c8598257dd7ece8fa8b59ae05aa8e4bda09c8539506558f95f512411031be75f9b01dc35e16f9780984540d3ffb6f13e4f9934a4abf8e4c9c84051f42f4aa564a711a69e6474b29b094431bef2ff6d8c301746974334c73060b312052cae215a0af4430ce4d0b0fafbd473bb2c332da7c079be44a60f0a74b0fbec0a12e8a9ae1372bc0843683711d8cd7abf7aa031fe1c49cc4b959aa4de8cb3773ac2c9d397decbfc8c6d3566a6e7c10656880bf78795d63860d518e757faf7ac1b4feccf2fde5b6d3ca162a9646b60dc60f42bd5eca13820c577b5b6d3f391a96c32f14bc83776fcde9fc888e6223f1e57fb6c6ff12cd7336220a97d75abbc3926f22c83425461e2cc94e7d4ff872bb4c6cb864c44277e0053382e234307e56004ff2deb70038b8f4ed554835dd2ce0a42b367d1141008445f09171e6e8d9fded83019ad6959b857b32208d75eec9981a72d690f5526c1db35152284366ff94fa7a432dcded3f501c232f1c61e78ff75e920a8c8bf952229878e1a9ea1b30835b11cb45019c44bd3f5d9349130186593e9298e5be2e47eeeae9b63630eebf2ac6aecfe24357ffc28f43fe6fa8d5880c299c5af675612c218e1d6d4543955d709600af62630a8f3e658a56b4e14e97141875f598c31d0e3a5fab40ddfe1e83741872ce4090f295dfc184d6e7d599ef74bcbf8f285b7f21623d7798509a4ca29131c10fbc9b15873ef7226515fde7be61c2350cdb73cc8eb049a4b52870dd7d769a41a7f245bfaf598953b1c680eeb871c719e8a33f1891005adb55dcfd0c9403d8a3513f029c0401c28bff27821429fa738c87d030fdc4bb89148474d3d8022a3a2c416a9955b0e0324b65315eeeccea0a79c0cab0de02af8bf464edfa32fcec0fee1ed806e6a58c840e517e7ae082d2a74c6efd714a1df7f849ebaba06e8d1ad98a960cf2420810accda0ef829bee0808ba5a392c0a86bfbd4a52955bf03574a9e449b56ac080714847ecf2e3bbe4d6203338ff0f698b61aefb265d92925f1e28764c67245f0db612dba7fad7cc141aeeae96f5aa38865942c5e954be09beaf461180da3bdc5b63f674e4f66e483c6e2ba13714224f5ba2ae76c400b7a3820813b1ae845d3d264ac8b39cb1c10ed9a8e7006c79baea6818855818e1c7a133bc78f32cf7314052e92f198451048d70d1e8547b0b394861244bf00f6b3f4fcb80eb4087784302b14e93cdd5a0af9af7a72d5da03e9e794f69e636b95877bbf83f616fa4b7f7f24f45ff407d05a58b965b2e7d3013523e16a6adde2ac1b868935e9a60d8bc4601e4660056797634614c17223233f43d40d8e1be173b05b12480969011d20d9608c0f7efadee14feaf5fee6de8138648edd94735be4c8df60c986886bdb96897c98fc80ff1db55785222bd02dcf6d98dc36499e02073d53fe2e125a5442e7c98dd7a74b4b5750e7924de2f644ed882c613f9694d16d11cb0f17a1bbb4fae96bc930f0351b41051bd9dfaa89fffb750a7eaa21ff022160222d80130d0d921701aa9b32261b275b39db301b858d9cad8d0d818dc686c0d6c686c0466343606b634360a3b121b0b5b121b0d1d810d8dad810d8686c086c6d6c086c343604b6363604361a1b025b1b1b0a7c5b5df30326c444d8b2b621c26a1b7b085bd21611d8dac61096a30922a8b5ed8720254d1041bd362911a4c4268d0b4a6b50e80d4febb68a2e3d8f30c1d927e828df28f68063ca3e8cfdf8968e26cb722531cab3cc0051321e5b79d91c4f98ecbd07cda43c631687d300ec440e7eed82531b1a7fba40d29b34362dad2ef27229a307354c11dc9bc4825a372bd9c808eb429e77f991542be3187c9103bc296f7ef7ecfb6a003933ccf9a17a637031337b6ef49b083ecdb0dc15059ff0b231a4409cde58f06a234be4cff46cd49d716e0a7922ce4aa81cd0e4fb439325501f8d467e63967dcef008bd7f3f5ec57598a571cc6ffa5394e168b9d7eaeb353165f6a82f90bbe3b61427aaf015f1c5af49d8ed4daf28c0f04fafa1a82ebaf8ae4474a60437f03b482e1dc7c180ebd30aa703d1366f194bd593693f0947939e65df8a2099f19666ac7009a86e25b184a771dcb27b0991c6dc96750da11c54b7c473f9cfa444cee3d7d9af8b0925398685495cadf9550d641b9b6f6addfd2b61b9eccd23332b3de994d4c0f37e5eb5e089cbeddc0c095da43a8b1a4723f7aedc00595c218e6cd4b4f07005f89175074e2b27f2ded393fef3fe24298862b14472ae28d3c618cbfeb3500a293528e81a20cede03b10155ee354bcd103a107e828708bc12f800f8da70a65a4a28f1ff5c7cc501d3e5508f39797461aa666f532426a6ea816a4125b5a462a0685bf49a91e9a856051a957df41161f3c52748cc777654d8d144645fc343be1041cef86530b886bb26c20dfac099d3da681793779d9cc6f2041d498b1334126dc85148b423a320d94e8a8eb405190a89566414e4dac9d090b5264527df0223db0b6643f2cd0d677ba89f7bdf60ff2a1d5b0c2207ed0591714178ad9f8113dec8c6a6f70b953db894e0cf4167b41c711bab4e1a0ade59310a65cdce539d64b784b858a3bad734c59a644a438b299cfa9a274eb0de0ccf5b65101f94a58979c4ec36f3bec9b4376aaef271f3e92ed4b11bff6afdfc443cbef07bef6a5dea3a3a8a9913ea8a8daae039bc0122052250b57ac5d332f112a58de1a7ff6644293a34e1f1dfc4c5fb4389df62eae0d7fab2b9f5902a1e6ff1c2a1a91e4073cef7984de806b97014e8a7c2ce5f398cdc6f979c93f24ca329e26c41eb7ba44dc19ac4ee35233c1a4b9dc563fb988409b1b738f573d3941941140158617672d4105e6157cbae794cfaaba12c297327ae02e5cd5f05816368c658aefd802a1086eb718c86d39ca62d43b8bc378c12799d56e54535e00c99eb3d64f80a2e1a8f943b46939d8e9f49562e69b7f083073710c342a80e96f16dc97b12b5fae4da2d205bd534851139ba4f27363be41221df64324ac4d7357609b93206dbd0a1fd67e8679afbba2ef2d856388ca520cd88129eb8da838e433707370fb2f0342a1e7c2e07295c2a869dda0957a6bd9018f15068bc2a16be400588c7e7b1b040af16afbde4492ca645d488dff38881ccfa9bc737564c8580638f5159793c647217c547706fe7b01d1a4cbd0b589937979839104bc27aebfcc716750fb174ee13f68a5e61db1bbf73115bacc35441c6a6a9d227e35bced26ae9bbfca2887976ba3d8f63dca51248b999a21a6351b6e58a84dadce75ded94ad5a9e63aacd79a59afc9441ccce58111bdd33fa7697571918c3c936b38c45eff8d1213a294bc7ced6a94e45bde3df36f03d091cff2d18d357f569e1fa9075efb52457be40149aa9d99c205140651d309244bc267783c83189c253397f81a73b961fb501c436e71ea030b92bc7c3f4b9e6e484b6711ad3579382fc2af2d9000b69772082502c12a41df71b1ddb334910b0963878b78d52e825ecd898d7daec2b2fc43d7d51eca8add8ac982a26c757f15096a9ea30cfc23f0477467dd37467db79b9879b11a17aee200afff0694847ab5d4a6d54eb04cda0c9ab890e9a7101fe7f20836ba3a90a6ac7646e55c6310eb33c7e5a73cb84498369c6befbae1cbb9dce0f342354f8e950de2c9b753bf313f343784b4e980d790d6af7bc70c8a65a984e60217d84eaccde2092605101adbc105463f5337c42e152d34346cedd4ce0782803f18c2582a57b5bee8bbdf90f1e2a8f752ebe752739772630b482f9e1d2c9c163aabcc7ee1ab789c28c9e38ff79a1fa85afda8956344bbb0bb2883f3507271db8cfd68f9ef35b8786d7125189177fe0d6e88bf078357b06142577ab4a142c3d3a80b79254ff0601874b7cc892602602940b502da0c7011ba69d174898b96305e3a8068d7e8714ac0a6ba2df3fb5f9ce3e47da2cf980ab4272e7f622ebe0f50484827d074c52d46736c535a56b865645bd1e0eebf53c12aa009cfc50a88373d269fc3f36b69021f3a964c4522ebc59bb88784dc7a6d411739d13b2850e43958c90170282ce89a7d637fff0a736c754b0fc3962e04c31d14737d834734b8d1b88e6d12bdd4ca8c2777063866cd43bfbea6e3c14ec6f51faefc84be7f90661fb87ce1ffc6acbdf7ea2c1cc8ce65300b0df4729261dc59fda289d0aedfa1b441f3fe99787edf6fcb1dc1f21009921f5c53898861963e759c4f062e24e45e3ce5fc13545608dba2370ff592e70cd10dc7d8a6225b1da064ea31899572e25899ee6d251ea97ee55dbb8f96cf7fd24a37c40d93bebf883c5a1c705f58f1f9a89bf32fc845fc459f4fc78481bc7d7b38cd73dfc2978db9f4acc09a12e50b0409fa5548ec75aceadc6263f50f6e748465fe2538da34787ca8f7d132aa779409ec2d9135c0a1a28771add07a3df03b6e0f6a8c7c87fb4e7ba1f9bdb7f8c4efce8ff9121b0c4e6588bd3825f752df4ff87d7fc99cc0c25dd3fd88ce706f240c6f27cca64efb8d1f7389c196fc3f1fc3928927607e54873c45d972d02b698c84792289fbdb62acff3a567370c81a293c19279a0130adc9c53f3a2cbd94c7a6162699bf48731a7d559aa2c04bb69e0a074850ea5fbf8e7e8e3e7d26e789d4e21ba6b56baf985fcd66088b0bd36a275f3f6b0c1254e08fc346d43c0acf9eb62e53f0f87e593a3fa886dedd3093f6e90ed1b3cdeaca690ecca9a8cc7a6e65a17a7f65935991366a05520747e7b672de39679a6590eb439bb000ef428255a0e995924f0cc156b8e201ed448318388c44a7496b6b681007b135f9868304c1513a8a9dd85b3de4fa8ffbb9189754057115b25f1ff12b923c83b5313049489d3742ed1715cbab0574142f4dc5a0840bef439e149f4361f1081ff7ce573c8bdaaf3af8984d5b81667dbcd43a2c5211be583a54a53a5c946b5acde4482a43881dec741c68931a4f8404ab8a1d13500b692225124011be7bd611d31e4a1ecd2cbdbb813b368c2a30cddfe2302376849cf0035b81cb2f5082b7813808ce2570adb431b03d05c7feabb97050f0d8aeb1c21f6cfa2e1f572fd62801c633c4641b10d9705ab6ed7d8be669c9b3f613b2a58fc84886cf56cd45d9498791991f6f356e172d1741fdd391114a1189d838e6edbd0d709b7a2339cfdfcdea0e7846acdf21b3a5a73b2b3c2b985616100fab920741f817f50517eb0c5dc9663b1d988769823950fdebf0bd847d210197fa5ced0ae4c85cf3e76f279344477ad42cdec4fa3a1db7035c40d2ee8788a82efefab7f59125b0147e449f774b50f274cd8af2339a8e5f5f3ddaef5e63a99e634a29921701fd471aae352ec7bcb3c05595ec5b031f3d3dd5594ff886477d44a64cfd1895b6c55f3bddf52810e851df8ae504022b82175dac2c72067f0947cd69168b6ffaadeef3a3e0573a16687a0e4ca1c5fe729a4aba4cc0912c2c11a10e11520b4f8b30cb3c043dd54e58df877f1a5dadfbbc8fa6fb3b6ad76aedaee4b41de9456bf0a4fde5eeff7d790940abb20e57099208f5334d9151b85cc0def73097321167a0c3b7b36fea35ca827a970dcad659012c040909c97ada39f55aa59ca466e8743bea672f63006d943fa3489bd8137a7b528bce01dff83db894ac1397a4af2e834a227185570627d4e5a9bbacea17444c641d8cba1a12d20e246894aa419d2187064afb4d56cf03220b72a45d9b625b9898d8a68832140d561e0e87d2834ea2e363ca30b0384d642c1639560b2b18a9114341d0628ae031e18d16e71208bdf11cae829554d2160b691e088152c1840291a00ac1e84426bcd62c377b03040da2814bc2e0826bb161849d1866180ea31e0815b6868ec4e703e431d0085ae85c106eb60c403b55129381d102c560d309aa60dc70cd567c700d5745c7169a2e564dc90dae65ddb06d902c376ee1a01ac45ac763d3576fb581d187b3f7163f6c0c2c1d0138b035b6f162eac9e99b8d97b607160e98dc181ad170347764f6c9c0cbd303830f562e0c6ee85858bb9273677865e0c5cd87a307063f5c0c8cdd41b93034b0f064eac1ed8b8d932f945922bf23324a7c76f47ee8d1f18b9163f18546db383a035c082c688e80bd3b9c5083ad7388ec28241d31d6932a385e7d7b46143f8f45097bcaa47913d53725eb2b156816376cf9825beaf6bf447d9c2ddffadc59e2ce118a407d659f263e7085f98cf4f69e648a102161e9d7979664c2e290bfbca1c90776bb8cca72f338a1f25da5376b6381384c0cb0081430163d216bf5a82c2984523c2dba6282fbd55960db3ab4639bb0a2bb79246d1c2c0a2320fe2f6149c5b42174db53b6cc36e3ba6f811eb537fa8c213c370ffc0a366da0c01ff49e63b2ce724b4de005921e3307f2faa09482683da1004165b100b33ecd66a3329869a849f58e79c46fea303de95b6096d6c18aee27866ad0f1da6ab8c52b564d881b39a3a46c8b72dd482c2fca0830557112b67104ecc6210340328975a52f2d904d12f634873b4f38212f001f0f743cf0367dbd2e7409db98f1e501de0a3042b569d904badb2107f4a9fa693c8303d7fe27a872589b87f5d9b42a5eb8f8fecb959f9501956035c17853287d05cf0c69fa8d5894bf188f9a250d0c4bcbd2b28685eef3b1c1e1429292ef26bb2747565fab36d1a0e23cb249798aa51258e067b5f43a6a3f550fd24b5907461208953df0320fe91e1738eb0800e49f6978ae4491f9ee7ffb3b11d79a0c86d708b16e672b0b71692d61be557f21729d7ee19b0f8fd4d78b269f5738f175ae82dac8bd85733807e2c4ce6fe0a2c009a30187432cb2d713df61dcc90111eaa693c6205c57d09d95f071bcb26c008b6584aa89bda399f6df656aa3231cf676d076ac12432d04c84c6fec89654189886ad87c51d5f35cc51aecd146787a1d86ea4714c93e20fb0ff1bbf981471123a6b79301a24d2a5517e9b1d45021af9693b64ed81ca276e9807fa185fe0748a2758b00f145ddd8c3c3fc338f648c84a58c821140bca2c1453c1b4ede3254aee5dc92fcccd7c309ed644ea4791b91e9693a6ea500e956176e0fa2cb24e6dd644c02d8a64ca26e850e3880998f818dacfe47e4dfdea3eee6651efca49b0adbbb1ab68ca280e5fae9df3522094840d61a53438de066f8745a90d456ba40ad75e8bb2f58f2662e7a98d55c6787ddc29e4fcf1c2bb22ad0ed81950eeb74938d6638c33bc068f44e6d8001f545c8be2ee30243cbea7fbdb80fd4ba791a2a466dba48edb2271014b64f1c4eb8fab1e0a7f29c18f3efcb56bda1ea89ed088fe56913114ab651c4b08835341ee9aa375f5f4e03fb789a1b1be8bd22c393b677f237e48d51f4a833b2e35cfc147d84f9bfbd4fdf0e7032bb5b7964563051b5393810cc8c0fc0f22810f7b299271a59b4fa3a160db24cb7dec9d6adc65ed736bafa6ebcdcf7c571335260653be36a9db1dc80e96b4c1bd16c5af30aa257e054dd90bf2962dacb149db45953038829bcd8ba566a5afabf1e03323bed2a77a9418ad5afa64f355e495d8985b15a0bd9e5c6c3577e36c91a09431438a939720618e6bb30f15c91b47b1e03929805d00b687f2c5fb1853e96b3da41190ba5509060e1b9f0777077d543326493512cd36dedd96ec883c39f904a010613bbd07538ab081a934211916f503ddf4dafc8efcc2a5841683204915728ddc694210fad434980821f9292cb4a0d52e68e016226e615cd1bc9b101e60f18929952e109d5240a069e1064cabd4d3cc355755c8efc21b260ab8321368458f3b23917c8c238b36d234be2bb9b8e35a2cd48ade396686693971d1978bb90e151cf115a5bf8f17caf194540339807d7d0e04b39c2a4773098e2955d792dcb181e37433a3e1a8d92d6384dc2a7f7fef82acf765f4a19289cd9878a4b5647805661e14faad13065d32f7b8b59d271cc4ff8fefa3a4d3ffaae3eb62b8e0ceb34d29780abb30f10953883bd087e652dcf7f1f43f731ea93e0ee06bafbd4e626d2409b753fb677870b2e2018d341d997f1139ced7edb07cbd047c3dc5913eee55ecfcd7f26e7e5ee5e1439934c38d5af8b53f2e2bb1e37caa52da748fb7c8dbb4e8e79367c7eda6e0e6d20257409f7e189ff31fdeac05d66e858ac9410c48fa5b5582b423b40207bcc65d55a04ac79ec4254b7d39476696ade2321d86e9e94bcb7f203e5f925b084b4eb6fda732cbe3e5cc30f2c0d47a4adba0aebc137299d78d0e8d0c84434c9e1929a190b69a90330e48b5eadc890efbb2024fa53c6cdf8b40e4999b5cb451d3ed0a56809a0dafb055b63a39b4fae0ae37721c2b7f9eb826b88972ccbaf06deac65865b0245837846d47346ba728143dfd1be261f632948561db76bae12752a7019fbf1fb5694f8e888c92d1a7c300b02e697ad73f71df0b0fe67ffbf911abf3154d199473319d8e337eee7ff830601a096dfdb81402f9b4fbbda8707408187650f749459608c5768ce0ca809ef9b33cd6e0d87dc91aa5eda6c14b93a249bd2ce92a063afefbf7a31ffdfa5cf4e00a18de1f2976b99dabcba87476e41681ef40fb555b146e9c3eedf7fc189ea3175446494db2b7b80e1cf058cbfd2119b773f62a8514c81f41b3172747c58c4971d81ab3d9ba78c0e58bc596dd9444522167bb7d5e745e1e8cb8d2ae50e67ffce3656c1129a3bd28a74beffc55339843c57c65662033afcd55db0b273e3cb6cc2d876f2ac4a94da3888fa59ad6b98b0356c48bfa93f68d736380d917df906437100e4c860c60db46ba7d6841f5a2d3d11b89ab11a9ae38befd51906f0e20c51c1751ea791ff970f12980a702f8b2671ed7c8691ea86aa0b8238f28ea3f999b27ab9ea6f11e9cbdba225efcbc3e0a715430e03b08544f1fcf1bd05d5d392f0ebc91b83da0fa59d0a10df8f38a446ce317ef14501dc7e8ea512698e70208890a3792add1a0615fe16e56c0ea5e84fafe1b6115ef4d9109374af53526a8453e1258479c3a2dd29b539b45f03c19431f568721c74dcf75fd89f6c893e2740499114173e1833b3617932d2a525345df46d7731a1a78ef1730e8d3300118a838fd3f9471056905b0bce8e49896228d02aaaac45912758748871bfcb1e11f6cea098224567d6cfe09dd5dd1474bc1b32b877ab796316dbbb02ad42065294d87eb37023db472d4130ba34e47c561a5eab106f6910c3f2f415e7b9b54be9a5534b38e564008711856ea2010a6b67a3fc4fe3dbd239b58891152713911becdcb70eb413e907e5088c046dbdaf9822d49913e50e4128489ae344cc83a6c9603240196e66b15a2adcea2d58ee95f9dbf7b713fda803a7823a3e89e9b248d0c782b28976dbba89defb31d0ac150992a4b6bed0a14cfcb5caecd6cf145d04449442438846fbfd21329051ebb20cb468c14de644b6863ac60f76d6690fc582249d7a3aabdc35203d5f097f1bcb06b6f9ab5ce18a91b08f133510cc0fffa22c91e7fc8e2698ffba2a3f954fc8f39e99043e99aa276f209cb38f19774d7a40a812e8a57891d7b1bcc4e9ca294e8a3e87e4d9ee56fa8ca319f50d45cd805b5aec51c8c5cb752214f7578ef74c44df76c0d16670f797e307199092835c675f9613248a899be97cef5948dc31d41d1b9b3328453c1fe258740feaf86b79fd29d6902618adc8e72fdb92211ff7821996198c832d4dbc258f3887525869665004ef5c011482fa1c0a93b3efd4a85a236a42939f32ae9db31fc075ccb8cf441d566678a270c889dd2e9d61767e37d8866628eb9d660a8bfb4fcbaa16b9247b74e1b84687ee66cd66d43b973c5a2cca51847c083389aa3587f0d9e388dd29fb61647bc3f7d94e1014efc37cb6fa68bceedbafd9f44f6179b63445b9b44410b4c81d6754c714a3de6a23f1b2bc6d2a8120b52cf0d86c8bfb294a7c3aa11ee0c6c29b94d52a64f880f3f1f1502a22dbd86b5c57536cbc3230dea77498f8e226fd830e1656656a21cbe303544e6ef2b658157a4a5462f18b5c91d14ef06b1958dc7b0ef7f4425f044d8e3e6ddf55d6678b322805e9ba28927e43462cf3e0d913060448b1155508c656564b0c6dd4033c53fd0e4259006576ab13b6a81a85381dfe59e8f7a250c224a5b183bdb404b2c6c2b8dab5aa6e0ccec5e5572df0a01cb0ec74ab72c95954ce31eb3eb12e709f524bff5ee5f2576fda59a34c06e5f7a2193dfc168c98f92a281a1d0604baac079a068a2caedfe9e2467fdbd2a34df48364e730dde2960ad9fc3ee415acc7d418d5adde7844e2e98a38d59eda2b217ea0f4f78fe3738f84d5c9d5aa71966c3336bea9d922423f66703abc5c5af06448c02ce7d44780b3750f26439c33f3f3f3f3f3f3f3fcb3908acb6022541a62495b0b4cb48c5402ea524534a29123dab000400000000000000b043db9b90305cc90b7d0b730b755d998c4ba5c2420d2798d226d9f6850e35796982f1b2894c1455cbbcd3aa508309c6d93b5d1b292f88dc8ba0c6128c1174085b228b514309359260c87141e32a964e6a291835906050fabe6523f4790ea2a50c6a1cc1a474b01cbbd0bbe1152c1c95871a46a8510483500b3535bb17221ebc3dd42082312d9a4d343f7bd37f95a1c6100c2975bc24db101243bf420d219893d83efbb04f8d2098f3fbb49b083fa347c1066edc08430d2018adf3f579aaa8733dc9a1558a0c32709011c6196afcc06421579a1b721d63e03004d4f08129564e4d763b79da1f08357a60ea1773f550174b46d6850d63c30b0ad8b871c3093578608a26a3923c613e22c31a3b305686d0dba172cabfe9006be4c0a0acb4f56dc90e512763885156030726c95d61264ed211fab3408d1b986c55d5523c21f2d67331be48adc3c5f8c201376eb40e1574d5b081d9c3aa2521dc4a95bcd4a881298e6fe98e6176a76512d4a081397cc955d21e5b3f4434e0c5561268ccc2e0aa2ee2f5238d8eee0236bca0808d1d638ca10127d09085797489b2ea6ce943d258a0110b737a10a253987ab6f1bab0c1011b5dd888c08e06c301376e88f13b763418e9c60d58105582a5a54d3cbb8c1d5f8831c61766628cf105b147d07805173f22c8a70e0e345cf18993bd6a5247860a89038d569426e5bcfd396bcc7cac386fdb4711d10fb2ef32d05885d7e9f77942030d55209f43aa5c9ed25b2f1847a5e238cfbac9336fd98f81062a144fc2a3c8d36ba36425f8828c2b1c85081aa7d054b88ca43fb9b6840c344c91858d09312663a30b1b5e58814629ce90dc17b6eee46413292c9b532adedde8fc4741f8d0d6298bf29fe88b82d3ef11e779fafc502c41dc45d88bd77150104f47c8294d14b934fa44bad4a5a84f5e1311792221a48aea396d21954e27ec3ff7d4d14644f90f27ae204185f89c4d1ca3b54ac79bd3a51e4de09f2faa9fbbf4c93b13779296b3245541de9830c74598e8f02536b1253b6db68466da562ca40c6531ae0497258bb4b36849ad94f04da953652a9378e249fe0e4b024d1f3d399abe515a46c24f417ac855cf27a290c042c88a58692c8f682389894fb0e8133c479ccb54bca8a62a45be11a451fa7236a1c3c41881981be9a92ecb85d8220efa3149ba7fa656a5884af9b60715a56bfa445ce2e5eebd3acae9082230f5ef2fe2ba9222e410cc6856c6a40af62536044a7e07116eb464bda46c028d4268162b450bb1ca65b6dddb62fdc7f479ed1422041a843066a9244a843b4997828330c504b522fca3e7180edc414310a66d358d6cfa746c850261f00b2e298baca0133c8030974e59d52a56789efe60f6dfdafb10413cae7e30a71cf4524e8bedb3953e98c7ad4fe4a4224708423e98aeb5ff9418bda0c4851546181138048d3d18d458d00d252ea7eea407937ce5881f6c23b7f6793025eb2fe1d1e74fd47830f5db864aa1a2e594457730bc491d8f24db46e3b683e9cb45b46988e9e4711dcc154dd35cbe66b4890ea6af10c74d2ce9dcfecec19c744747fc2c9153a4c8c15c9f4c75e414d25a827130d678fc89eb9856619243ab04627c5146038a05801234e0604ad3a5c47d481674d66f30d857e7a7896e4aa77154612582861b4c65b6dad9d3a90de6be139df488af54d3b3c1f4793b7fa7245f7fa13598b488cfbebe10d63d27004305078c1643c70500a00a1a6a30a9243a43b4a7fb5e3e0de6906821cf8eb890361a4c661fd93d577e95d4cf60acd20e79151617ea2643870ad0ebf812b849fd14d8a1820adcb8a1e34fa0a3c320650180020d3398848d7adcc80a632d7a60c73f8046190c2a6479e990ec42db050d3218ef3acae7111f8249ca8ec1143b8869d9cf75a35262307852f2de4a29a52a6fde6380512a40230ca60e77495e4eaadb72b1a20106d368dafac6dcbf279d2f98745dfa5152f29fd6688c1d387290a10214a0076878c1204ee5aecb1f84d0be971734ba60324f2594d6926779ae2e74ec10c39c00f58e0de8684019010d2e98cee45e85bd09d1798203ad0c8d2d182b265748e179665ecea1aa0593d01ff235316b1a59301a583068999ff8613b67e9fd0234ae5037685821695421695021694c216948c16844e16840016f10e4008d271c0d27248d2698f3a54e419476f11b35134c69574e95892046b48903052ac0718231c600432d0336bae015d05882392cadb6ef895e105a25185784ce295e6c2fd88446120c56a77384a02ac4070c301aa1180eb0a28104e38632cb9d4452edd43002348e60be2ee5232c59ce134d4630cfa7e89d9368ecde5f047399cb886aef944c732298e62e44b62853494f43304bcc1e97605b15264808a6384205b536755aed20184fc7ce923b2979903110cce923a80f93a03b56fa03936411a6d27f5a9093e203738987cea1b4e2afdf03935e3821412c448f8cd0e0812965be6ec85e5f98a41d98c7a4be6953ddca80860eccafa7f131fb2999cac98139a89cd38a7c9fb4f3d2c081797bcd7d5d2f4f12271a3730fe9905f16ea65aeab181419ec4f30b3f57b165a45103b3484f73b91ed1a081d13a29558f70417a2467618e215f5f23c63f08932c8c6b21e7521613aa5d140bb37c4a6d42ccd5447b6051376cc62b4c6e7721ff6775d773d01575234930a315c634afcb96217efad33c98c10af3dbe534e1b6de83c08c55984cc4099246e5f2e4cf053354615051ec44c46b875ec8a5c2dca22bbb96368f21275498d208ab581df7bf61cf3885d9cee4a964932a27bd29cce57d1edd3fe924aa748a5b14134b2a8814750304334661aed2956387dca7342c426688c22cca925092fcc2ac94c2402db82dcc0885295dcbc7c822adde4ea030e552e9835a975d53499f30c9ce47d2d6d852d57bc29c2e2f9f2ecd2df974274cefb7a7730e1e848e9b13a6b07f314f6b84897b3761ee3d25bed4447588ab264c93f3e90f9b75fe69cd84414e34520c118b242a260ce6b7172c897417db7209e389aae0d759b184f1b36453fa53a7d44f254c9b63aa520c55592ba4843982a71139adbe09c91551cc9884f14dde26e71411143324613cd5d5326ae9b3d69443ef13332261cefdd92bf54c3499ddb861a30b1b637451011b5d786206248cf1a57436cfcf4197be3198f108d39d3469fa3a5746be1c6148211f21c8b0be9873234c1e235ef8cedab1bc5a610623cc3526f462e687464a29c28c45983fd7db769eff3839a80893ca6afdf03974495d13618a93238d4690d5b624220c6b39ae87147287205f7f4a5e4262a918c214c467c995c4a410ed9fce5ab9fd2a4d0845fb25691ee297dc6f1097a810622129c74b27083ccfaf2a79669781304fd029a4f89721cbb7198020a9d2397d6f92cd7fe02b5bb6beec5693f383d1946a79f46471133484197dd0f45990f525fa42c2076384b2e421585e8ee21e189139d266d383a77f7325d7891159f3600ae92e9fd0daeb155429ccc0035ffa3c3c4d168fef704a3369b275ecc5eacb48a1a0c3b83266d8c160292ca43fe931ffb9327e0236bab0518b820ee39630a30e26cd0bdd0f112c9c5467d061c61c4cdae969e9a427f97d961666c8c1946d763f69970c5d7a1ccca7c7dcaab4c58b239c0107738d4cd77789b67f9312cc788339959216c1a42487d6158a60861bb00de6b3a07eddac3f75850db886535ec3bccbcbb26bab573a66a8c15c3ae5b6e7906a2f726c05950643303f2de77adaee271acc39e5149d79f5a452a30012669cc190d3abc93ced39557a6d7841815f818e2f1cd585196630091d3f462cfd7a1ea33298e4e5d7b41416b79f371dcc2083e9741ebda39392a2d248c88c31a04a7698859c7e7e825fe8f06286188c16627634f948a29fe09f0c1c627c8e1d38ac84c1b46e3e3a5af58cca1d16bc1856c5ca0c30186e929ad11a26ff2d0e1d63e06041eb281298f105938e27ffd5f7b2cbafca2a0d98e10553123ac40f41dcff4287174880195d3088b411a6e34ea91ced1d5f82b5e1c503fe0b1d5e70c194bb5a25eaf7ee639fb1059312375bea496625ad8cb1438c085cb1400870a4195a304911ad7bab3172d76ec18b81835817361e05657821466b20f553206f77ccc882b9422d440ad992fd8533b060f0746fa5f3e85cc1a46efa3cc9fa10baaa154cd12f05dd5d1bb2cc9243ab0c1d3bd68b9b51852badc509ea2bb42b4f9841059c3105bc2105bc7161cc8802ce8042e198f1849be184e3c08c267cbf82cf217c48c164962ad6fe635be99a438b8c3150702a858f2898b3e45762ae78ec0c5555e1030a26599161f223e50c11fb7882d126874bdeba3e6b75f0e104635f04612a23e24c742fccf0d10493faaa55afb470b2823ff86082e1b554d609ab16913e3ef85882394d8cedba10a9df7e25986d443ca5e5ba54084149304dca4955fe9330126c2418458e0e5237dcbf5e4dc2c711cc9ba293ccfc5f85d16b0b1f4630775cca23aa63672c9b41f8288229594c1f75dfb71d3a114c9ff74f4f1a7178dd153e8660ee3c539d6afab2fd058e320e0ed331c68e0de04001190cd8d10273e3c68e163c133e8460c8656f33cacd4b792408061fd54ea723285df2c7c1e40308c6492a99ec36cdef1c2954c2c70f4cdd1f82eb484b6182ed03e3080b274487f58871ad6c071f3d30976d47b14b3a7ca9200fcc49b4c5cb51b67a52b203530eddfa1b3a9ef8bd3a306704f73e69a34be42e078609233a46a867d987dcb8b103350ac2d0c1070eccae17d783d09318a95346bcf07103f3c8c9a8e8e93ccea54b071800067a47011908860f1b182b8a5750e22676f2332c7cd4c01054e4e468e157ec549cf04103c304a54a579d4eb3f19985218e450e21e6435997050f59986c338492259f58983d2be8149d3f2778c0c21cc45d4a5927ef8abcb8e0f10a731455d1f76b39c7f97368690e3c5c61b4db3521264c4e22d94c82472bcc93c33a927aadb56cc9a1b5da85072b8c6d51bf4cee5ef09479acc27c597c23950cd350b11ccaaa30adcaec69eafbca8aa930cbdac7ec3baf30f7a0c2209f2161725e75994f61ea9cd31f75d77b2b690a53e7f0f1cad9b1e5b152984ec911edf15b97fe2285a983f6a43aad554a1a8541a4ef1c7243f7db1a468b8136bc7880280ca262a14f8487f4b90f85413ebdc37b8f9eac0d8ad4725acf097a63b505030cb544787cc218214faa3295729acd3d61d0bb2fb516af6a5c04061865e8d8919d304b98b9f1bbe06b41597870c2702afa25b56c5a113c36519ed4dfa3bf3a449a305b842c29953a736891ca8441e7972ca146840ed9c761c30b0ad8f0c084e1b4d9a7b02e42c50ab98439fcb68898291756324ab5c0dcb8e16109c35878e6989fcc3a951c5a6424066e7471e346175dd8f0327474a002762ad0e20a1e9530a41c115a77fcb2fd420943ca6a42c52758bf79e70b30c0e824c617a4001e93400f49982c6e8d92ffa583a930163c22610e13e926629f04b123248cd73b1f9f4599675be8f108534ed926a5e0ad113ee8e108f56844f160847a2c425be0a1088f446421e294f64b3bc7d2830146bbf78d1b5fb40e2fb22e00abf038445a54fd8e903827cea1376e84513a76a060141e86c81b5508f520c43f9f4475fa0791b02d9d1d796f4f108ad4ed0b77a2dd2281c8e54b8c0c395d41f9020f4098777dcebd3eac4c337e24c605fe6048393ad354268a501d3f183c5690adc831299eaa0f26a54c629ade98d011e2c107bf3fdd945896186966c0630f8c7e0e3a1777ef2a7a30fea8cfb2a32abf4879f36052dae2485371d9f354f0609ea47c3c04f927f3447ee0710793699e782a5dc93e497630e9f3b8a02c2f5bce5d07935e8b977348bfa172e860d4cd7c1d355e31ece581c71c8c576ddb6ddb312ce92107d3cf49b418298a83d9739c3c2f5984fa16ab5ce001074358b318a1ecb28a6c17f0788369ddc27492694b925f0e2d1c63ecc081e6e10643885b275456342f4ec410a305ef618ca1c301ead10653e5575a7cc5da09150f369884da7c5ca9770b1e6b30861297be2b6b9a8dae06d3e9a4d457279da6b2c300153cd260fc946743bf538edd88ada0071e6830cca59ce4560a92948c1e67307fee9cf64c95c70cd1c30ca670ef9284c8dff70873282a7b8f3298b4b5d29d0ee15d2f4c4629ad117890c128233e7e89ef301a72adb540087028c0630ca620eef723e80822854a0ead1246ebd0b1800580014687b1811b37ce430c46ddd1cf7ccfefbeb10a50c064908102328c4718ea86043cc020028f2f98bb5312a526fd564c645e40428647174c1f5e59d4a8b10a3b71e11887c716d2430ba74a48a2a1f131a35a95147864c19c4f5aa6e68bab8a96940716cc61654988f0c9efded383c715ccd62d7282e7965910ad6048bae2a9b44a9469ebeee051056396ac4d1351fbbf7c0bdec55880158e22838cd7e1de561e54304e8e3de341a4589fd814cc29bcc547436d09fdab3ca460f6f3fe947e59d4e937cd230aa62e1129173f8487e00105934e6772abaeda6b929e605223bb748a641d9fbf130ce947c45aecbe0986e039889c3c3f4a4b9c0946bb50196dba72ce464b30a72dbf3f0d39425a90128c213bd3b6262809a6bab754fd2952b5a99160bc4d0fb22e2312c47c04738ca87b49977812e235823945cdd7a9f9eb78b708e67e19b548d5e7e95c2218466269e4145642daca10cc9de39cb091d966e21482b9d773c54574df423208a60b510f3df359391f08063d15f3b9eb1f98373547cec5922732f48141d407ad13a7b2d3df0383b6a033c6a35afc5becc103c307191a4107152e5ee5ba038f1d9854d7430813ce5d769d81870e4ce221eddd6c4e7ceb7268d5013c72601e25cddf52d8b99d706050725287d95d2af9d20dcc6341461cf5882daa640353746fcb7f3a5f0373d095e58296ee3ab57bd0c07c41aeee877f0bca45b330874fd1375b21598c2c0bc384689f6d42b81297c6c2ac7773792f291d151658984c3b425a3d3141e7ee15e64ff14d3c25b9f12757982cfa9f4e69c425cead30d94c50ea5a192bcc97254ee8a07222de641586eb38d14665892acce9114d5e478ecab2a7c29862caf42ef68a5b1615e65222e9150fa5272a770ad30749aa6355a8078f780d5398eae365c8a8b95ca3540aa355e59b92959f657b5298eaca929acefb288c91e2eb7e999feafb88c2a415edc3a5dc1e77e95018f74fcc54f5add5433d354071353e61f6339d453e9a0e1523353c61d0aba4c258881a62419d306788ef9e84942e5b9c30e558b2b409a174a8bc09936be71cb3a1ba19499a30793ccbe1eec2250d4f260c39665cec889ae7c8983085b90e72439ea82eed25ccb332772a784553794b18a48adbab24d3a52bac84e14f58f077cffd5f1f254c3a854a0f5325dde5da811e0c3526619e7ca584a4530e2d31bee81dafa3d4908421756e8f9f3a464dbcaa46248c77b94c4b2a1d489882790a8b63a9d32acc21a8f108e36be80ada9f15bfe38e30bb581221f77c700b320fd46884298ff8a5323de1c67a4698d296acbb944256faa04518d7f4c587491e82f228c2a4e625bd5af4489013611042e9db383db2e2d5351061d0d18d5ce2b4ba2b5ce310e64f3a5d9efa6ef708d7308439f4534ab9ec92441d3f90386a14c27c93dc92b2c8a972d9350861f090d24558b98c177710e6887a6a94526acb4b158459f65ac289100f25c14098b5e496c5beab1ab90061f020df29c8fb0793344fefa5ea7cfd42fc60c8716e9dce534508d21c8a43c70e1490fa52a30f89a464b1439ab152f1a1f1d44fe35b9d837ef70835f66035f4506e301935f2506ae0c194dbd67d7d2997bb647b8752c30e56a30eb9a3061d9618e2295eaacd0c49cda1e45032cb41e95ae7f34b8d38c0e10d35dc60c8c1a329b517133e477268951a6d308a0a9153f66c67a3424af9a1061b0877fdb983aa4e9feec2011ab061c5861a6b2835d448839d19775d22770e5a34941a673087a092a88537957e3e6630a832a1df6a3c0417498d32989258a5725d512177b66a90c1209fb79329296b5be9320e33a0c6184c962a17b27eb5421583215964fb90440e234a0f832923fec8fcc8c9e3976030995413f2329fd792be6036256221c4ae64fa725e3095e7535af4c456899104d4e882792376dfa7ed082f3f17cc294aa94dddb128a22d186d3ee354c5498bd5b56092f3eb19123b8ee89d0553c5cfef66b609a5e21a5830c9ca57cef94d4feed5b882f9ecb5472f2e744b94420d2b987462478be7137eafad82e95489fc5137c6bed627d4a082399b521fff0c5579255330e508faaa4b9bdc708914cc5beaed34e5ad27fb6c881a5130c972ef34e2d3dca4ae40c11cba84160f2164fc8d97851a4f30a5940de65a3031d953158cdfa2bdfda48c127a2a186ef29b4e16e47dca4fc1fcbda2a9aa1242eea56010b23ea468b3eadfa360f4e06e93663334475030253593ad2b9e8f799e60b4caaaea61dde26e2798a3d9ee95769b60aad53821ad3e07b532c154f2ba3627f98ba94b3088a98a4a2b2a65a8a80443aef0f0083964480b26c1185759fb67b2445910090695211749298f6012251efa3bfe3d786804d3a735f195ebb4c72298a49c4d925ca63f494430873ca76ee45be2e8433004699b163e470886536f73411c0483dbbcb85d4a5a3d0c04d3ae4e922221bce97f6092f922df7d6fc2ef03a399acecf5ea55677b60b89092497c0f6ebae581e14c5dd01e4af489650746111397a39ed6e6d4814179102342acb96e990353ad5cf61121d94f38309b8e7c89c8bf5fc21b984ca7fd855fa4aed106863b0b225f24affbdc006a6050916b155b594d6403a08141a794b5099ef2df9a85f94a9acead59177b72b2308886a44f99a42f25170b835fcee1fbddd67e82852928f5de7ee9720ea75798df52a8c9ea6e51f2ae30495321fd2f4798ebad30779b30255becca73569847c99d17cf3e428b56e189b3b895f6518541865013d74da93079a6a864ba3a94b85161dcb0dd10d14376b9ed14265d36de67e725c536539883b69b09b695b4c7560a93b4243d6ce5d65b6ca4306986e8cdc893e2a6360a83dc0eda6a219f1aa589c254f154ba09f5dee15928ccdf21c7fd7039478b19284cee41242d7921cba7ec13c64a491e9e52cfda324f9862592869bab24e185dc42eca950a9e943861f8b3937b7a96ad4d9b3079bc9ccc52f8772f69c29c42ccc8ee398def9f09f38bbbfc89f8dacf63c2107744a79689faaad725cce2c154dc557c0fa3b284f12559a8a462a8495055a264316ad2cb8712a694f6a1174a9b9f6712a64f2d498e792461ba20d38478ad98e444c2b417ed5b2f05130b43c214ad4432f72ce14c7e8461258b1c9d1d6152ef3793a32b5d781b610ebd596a322a4d5e4698e5e64c84761761f2d60959bbe3a4945584c9824a2e369377d79208a39b277ddbbf66722c441846b99ae713eb10a610512a33312c43184ead7c58e844d3b12a8439ce8776c812b13f5684305ddd96490f7ee62135085308917216248c6ba4046198f0ed9d4e84ad452a1046350fd1f361a9650284495fddffe4ff0f26a53e474e9dbcb1fbc1fcfed172f0fc569e3e9884befa8f544a08a9f3c1a0be751f3ffa45dc8329a48810b2280b2a82f4603c194b425f48bb521e0cf235cbe782182174f060f60f7a64dbfb7ad0dec1687a2b4f05bb1896dac11cb1847ab31b97531dccab9926d7d1b62b4907c3a5ae389d35f77e0ec64f22ec541c192d3939183c87784936be2a1e07c3cc8e0a9ddf720e1c4c522cff5d10f9c4fc0683274f35498abc5fdd60ccf7d6f50e5e7e5a1b0c6f31da62a7fd8fc50693a98b5d5297aff50ab4035a0dd0620da6b8369f6a3e77889f2fc4f8a2ea91181728d58231ce3e6a1d0806188f703c12630c0b68a106d3da2429492b3db5d49206434ebee3274a87701119636020c78e2f3c906830ecbdc4bb94a4447afa0c66dbd05ea15bce3e8b376e98c124b36452d48bb9193187d60bb4288341a95a917f11055fb000c950ba71b12e095a8cc124420c51e7f145deb939b4d6085a88c1e8d98476bb896bcb4b0ead42042dc260505e975427eca4112139b4c0608c14dd36d2bce97a3487d6174ca1438aa269ee1242f27788d136042dbc603871baddf5bf6288db05432eb7a03f1b4954680d085a70c19c3e34cd6cae554ef4646cc190937ab0fdd9329d4488f9400b2d9852bedcacf55829b4877ba045168ca22d1b93a45eeca494430b0ba611f74f5b912a5410b982314c8b8cd02d21925273280cb4b082d93d66de5de6a96cb90a260f2f3a55fc6c22a8e0f2400b2a98de3c46929299ff51cca1350573a9a4d2d362cc8ba839b474a085144c423e7838f9133943290a26d12d2967534a563415e2400b2898b2e4634b46b08b1f22e30906d392bfa408cb6f4232be00e3777c91830538767c099c60788dc9f36a22480e598b26184c249576499e98608c3f1d4f5d9dcea7db128c727672d13cbcae6436d04209e6ee341639abc4f57c39b4080db4488239e88cfc6126c8c96d3312cc92b53a5cf676b39c600db43882419ba70e23e1432c39d70221c011032d8c60f488339373c5cbba96a145110cf2567476b7a70eab12c1144158e44d490dc170625623a96669deca022d84602a135a41684f104ca2d29b34952c6ceba605100c4af256b6182afdc5dc8b1f18728a55d59ecb195b0b1f983dae9b1059630634800c2d7a60d6bbe42972cbe520610b84008701b4e08151440951714cbda51196b1030561fc0e4cbac43556a4e724641d9836f77d3bdcaa3de93930c4ae4aeda633ab9e8303a3ecba5c36adda8e90b2a2c50d4cbd13ad7b2b6803e3dd7b7e9178e5d0c2d13bc0784fa2450d8c9e23e97ef5d0125e177c41068ef731c4a8fa2f74ec602d68605ecbb5fbe5f919083e6661da4ff149a42bd1294cb230d6b7c71ef56f2ccca73fafa948e5a7820a2ccc2971523635fbc123f60a2b5718f968457eb0c22fb52d4aa7be5433aa2005df00f41d28e35598544e27b61da65246ebd0d1a90ab3254b62da5482f5376edcb871e346710c3e52b11fa8d08f53ec8729f6a314a54881a3283798031fa2c8a2f885b2ffec5d0ead120a497c80420054f8f844294f24f9e8c47e70c2343bf223885c0f99e5c7260ce925c73591224d1825ea977925ed3e32618a3ef271ba5458484a78840f4c98e349b952d91f74e464a9aaaae2d59278841401f8e0e31266af57d93f5dc994ecb7101f963058673711cd8a641556c214565295f6d35df3154a98c6e3f677927cf25927614ecae2a78efcb15629b6860f4998a35aec8fd029c26cad868f48989312e167d7494e9243c2e02b4aeb484a23d3c2fc0853484a922ef1af5ff372e1c31126d7dfb514793ea4a53780034755f9ab7e34c2a435aebb3e6ef12239b340087084e0831106392bfab7a1c74c9b6edcb871e30336bab051011b5d6cc0461736bcd841860a4ce00bf877803fb1527c2cc2e423b15f4bddcda88daa08c3ea07110b7141899c1435c44722cc1d4a9aa98f93453dc515f8408441a85790d4ef761eb239b474021f8730689d1c7ac7d73f4d7a8630c912e33d4207319dbd1c5a37f82884e973a7c8597452ad5557e68310e60aa22dcacecbcc773e06611272e6478e49b69d7c7e08c22cc1c428cb57e7d0aa127c91c418031de22310a6119f5c949ecbcaf00108d344cb14e5c1f25ecaf03118902e50c68e2f748c6182ae001911b871430e1f7f30e7f83b753b3bd5c9f483e9c56c73e4927a7f3f868f3e9844defcbfd8eda7a3c5757c307fd984747bea3d94f1a187fbc8c3071e4ef071870f3b98bab3c79bddbf114a99434bc3401f4883c0471d4cc9537e76d0952475300a1f74307c476fcd0a5e9d4e3d0773acf45b49de45c8ae7cc8c19c239ec59b10f4d6f97130987ef91a2bafd61a4de1030ec6d49e305ff1fcc0c71b4c4245c51391eb59547d810f379853bea47ff445aba74e8bf0d106b36c7fc7fc10e1830de6d8ae3f16c6b3044fe7d0da127cacc194a38e5d8587726891812df85083dd488321a4ebb7911ed53c943ed060522ac4137b11c9c27f39b4cc56f07106a34aae8bd748eead5d0e2d523ecc60b8bca117b2a5e8d3ca709611cf419bc841962a0f1f64308b929ceea2f4942c39879681f131067392102e27219496dcfe210663968892f3b1164ba6a44cf01106b3e8ecd82147aff996c060bcd7ce31ef39cbe2ff05d4c7ead91ea1f78221daf797b8ff127d7b170c397448f418f5a34605401a3eb860481353d2e965b914a12d9854dad53a9531f3f368c1381662363553f4083b0be62c216a6ddac7a4ab74e18fc35fc7183bc8b00090e1030be6f32cffd9cc662ee86707d1d1858f2b98ae2628f5cad6bd11cda155868e1d4c820f2b1865ef43754e57beaa0a5e0529c031868be0a30aa6bd345bf193914ddb1c5a0db871e3c68dd2c207158c7d3a2d9276af1cc99942a9d5249b79578a9d31b12a45b6e5ccb61ce514237030299f91ae633904e5f21b4c9384de272f49e7f6bac13c7a5fd4d36e83e9520ee993ecbb1ecbb2c19c449caffe71c927b26b3097b2c8eee9938945560de6f70ef2428d8ae1a13498d3d2e51115644754140dcfe5f568217c67309f0e1e6b45c65e546a0673ba203e44db74e5b70c86afb4eea04b326c4a07710c0655f91f23b622622606c3588630b3097e15296130ca08d9ab5727180c263f5608f3f98241afef930e72b2aaa770e105839bd2a75e4dec824944db63c5885fa121174c22c92677bca878096ec160979fb44794344a490b065de17ff4f49ce83d0b8905635c9e1142dea8eee80a86b3b4353a479d1ce559c124776fd2636d881aaf0ae658d6767d65b2e7a682f1d5439a5842fecbb42920175230e9eeff9deb2d0a26a53de759c996ad7228986e5cbc2798b32d4c8ed1a25fbb13ea46185c34c1543a45ed22775b9c09a6531dafd929649120c9a1a5e3cb68307014187d19e06209c62b9de0a5ba7343ff71e042095c24c1589dbb3b7c091dff215ae00209a69fdfeff41caf3b133218471d14b83882e1949945499d9629820b23982f9bef4f1e0f95d46705c145110ce6d6dbfad17350e5173e70410473d292373629cbe5b447072e86601e9db7153c7e808d2e6c38c046170db0d1c506810b21184582e4121145a77bd8858d2eb60c2e82605c1fcbcaba2176470b04532789a15ea935f1bd1f18cca4c55e79644df190810b1f9853c8557522268b9fca450f4c7baf272d87ff5316626470c103d36a24115447773db379c0c50e0c627cb32e76c0850e0c29eeacf2e9cd450e3a797376ab6effa92465e0020786b495761ac954acb46f60964f2a89c91739276e0393c872498930b935b5d6c01474c70895a95e12547ac0050dba9b24232ba2e634ac599c83adcad6b59da4ac11b690c50db688850eb68085f9ba2b4893943cba9eafb8938a676f8798cdbb852b4cc23d6bbbd3d7832d5a81c9cb8c76b95b0af261a9e35c9da57c593f45cab0052bcc22797564464a255cb40a7307afdc4e39d9c863a42d54614e79e76fd515f2368e4009de02376e90b1452a4c15413b7df874d926541864ddff68593bd3ff29cc663927eae84d61d2389d43089582e5be14e688e35eef41fea89e14a698a6d25c5cee18a351984bff57ae3849440589c29ca38733b7cd4841140a935db66c4a10280c2228d94adae779743e6136b3ceb5355599174f984c4a501dc253c65b3a61c849d4d4793271c2a0e13b3657164b846913e6d8f94474c89bce9834612cc9ff5f17a64c9857ac6274a8113985244c9843aef787e78e9222e912861166691b7611f4b784c934f43e88e4f61faf84c93e7e57c442dccd2961d02ced10569f84b174ac0f3a6478278f248c1f3b884d4891827922619e5461acc44bfe5343c2fc31717e3c8f30bcd66737f1f94dd88e30a57ad68c8f5c177623cca1941435edb27b624618d394bc8f7c2a4adc45984ec4d6e9ca5339a88a30b6094f59d9761a6a220c26c2f7e5583e22cc7521c4ef201f2a967f0843ce53a2847d6f0893b687f578f57ee2429883cc1a1dd74b432511c2ac3a62f205916f310863bb76ecbfb80e0ff91682309f8a65e792238418fb1681308893a839e2195a5adf0210e636df5691276446eb5bfcc1b0af16c95b5fc2567c0b3f9882c7db9517b116527c8b3e98459f7a9f74214e8abe051f4cd75945948abc1443df620fa6b3cfb2a65c2ff4e75bd8174b3ccf8361467799b430d197381e0ce67ae931b4a4d1d31dcc96e24ef72b685149763008d1af5b6d1fddff3a183dda588eed7430e414f5ed4d55bd85e660baa046fea5bbe55b0ea6d9f794a026feb738182f2bd43d75e0605271f1f0a47e8339a5bceb0bad52253798e34e1e21c279909c369853e48f0f55bd50321bccd59da327e556e1e2351867d3845259fcc4bb6a3077aaf594928cdd3ad360f64ae92dbe7d5096448329d48a6e24213a8361e457df64ad24214466306d978bdcafca6012b2562fe907dd1732183b47de4efcfa121234069332cd0b6b9fcb845e0c06f5da2517642ede1e0653f0997cf36e1f75301844b2f760eae677a22f18438ca5527f15e6e40583a5c9eb419f5d3082bcd456551f2e983bea576ed12f13e9b3059352bdec22e6aefd1e2d98b259d85f6fb3609caf5575f7327d27164c17e249d3bf5faab62b18ac6edecc3c248dea58c12c5792424afab72d75aa6092399563d57b4f52870aa6f1bc11715f4d89c99982e9b3e3e4775e6df7a560d0fccf213b488adc47c124b4f34eea4eb524878249826a27fb4b1e6ff4049399f03991171155e404a3e93c53bf222b554e134ce9a5bb32b622489709469b7cd9a936b4057709c6f77c49217cbc8d5409a60f23e242cc49307f270f22e5c86fa748306557588caac81a9623182c9df008293d093d8d6090bb586f962c82d9bbef674545634b229862a7bc3b62db637843307de978f1f6c8233221186fa425153d160453c5f2b812daaa7601c154229efeacd23f307956c890798f2b91f68121a924e31d44ba07a6506aebe926e25de281c9f6d243aaf2f7fd7760502522a775905417d781f9375efb2ee4b4a6e7c0701276e2acb5fce8383077ad6cc5741dd9a31b1864c57955dc0606f51cb7b2a57a54a706e6499d6f64c549a1eb2d68606cfd30cfc2f0933fc8139327f2c2b230f996a88f34636110a34a7da59b6c238485d152ab67750bf9828e5f613cbd26cac6544892b12bccb25d137eb74e8818b7c2545d4105694a75569f158620742a7527fa53f65598739eb8cdc8b5664815c6127fd1c4051791745261ec48b2737b0e2acc73136e7e445bdd730a43c85ed95f3e58f0b429cc1a415512c12e8529b946ecd433e2634c0a7384f38bbd1cdffe1d8521fe9bcab92a2461ae280c22cb3faaa7d97d341486ff944c6c43a9840b288ca222c8351d2384b37cc21c62ee9707717154653d61f0d3f9729fb690796e27cca7e299e9b5fd4a6e39611c9d7049fc269ad8761306f5924e789296f6add5842129f53c15399795da4c1843fcacff4f887f92c58449d5e5d74a7e09b3fb4cea0ca54ea7c712c6d3a9535d48b926e454c2bc365ac6342d2da829611293b9394a5a87a727610a959d51315ef5b6240c96dec1f298db2871240cb953d4bb2843c2943ef39e4f7e16d3238cab13fe43ce4ebb144798ad533821674ddba511a67422443679a594c90853c861524ad339a91c2ec2e8494ce57adf5baf0863e55688fa9d26c210ee7285fb0d1126a16562debda713891ec2fc1ad725c43facc91086ff112682382fbda5421843fe7d9c539d5813c2e8b1a1bd2372f0941f84d12dbc5a92ec283217844136526565c9ae190a845952bc78adbb97e40d089388fc96d3cb7f305ea7f3368b1fccc183eeb59c132fd807f3f79cc80a13592be68371478a4a16477fc5f760d2e55e6efa7b375a3d985fbe2c893c0fe658263cdc8b07e397976c89bcddb97207f3890b95dca61dccaf61490569d6c114621aca7ad4eb7f7430e7f710b573fe8c797330e7a8cadbede460109174bac3cdd8290e268dd1d93b9c9ed11a1cccf9913a255522baf306830875d56b153798f3e4450a6252da608ccb3935415de58e143618548e27d16623474f6b309fe8492a484f73755283d1e2a53209a3e2b29406f3c78b8c460a7ad6a3c1584abf2fdf728aba9fc1a4d732526d6e06b3584e91c3b9fe8c5019cc55a56d821a9d9307716dea7941c9680ce6f5145641fb9f9d480c06612e9ed49de5dd270c06e9c982c7f224180c2373977cbb53909cfc824174b490e9a283053bbd604ae726b2b729d321ce2e983c9698f0cf2541cac905a3eda5b7683ee21ae7168c6ae13e24fda616ccbe26b73d55e9f497cc8239c6c9778cf928ae25168c712ba34223fe25555ec114c92cdd64a88ca8d20a463f3b8ceda8946fe622611c0a0743815018080805d54d1b631408002028200cc562c170a86cf500140004372c263c3630202e1c1218161a161a08c2c150201c10854181202810060542c1602022d0c2ea0030763aacef3f044b870e0b54e00cf581fd7a02aef87f1719afee099cf49f71848b6ac740392efc3f37f0c8453a7d7403de00ab28bfbcafb2307eee171de7bce471a0feba18d1f3ba7a1a789cf4f97f405e9f502b87b0b7882c59839e402a50385fa3fe2a2a708c7ac3ea2e18c305ee11aec77cd036b820b910d271d132f9fe2ba882a3f2a19d16d06b8ecbf131c900fe481686fb17c02a5315f2380c06501775fbd181979fad95463f34a7a0167197f7bbea2a0a229d676be10028897eade2bf30198c925d2889d5da6bc02abfc3ed32372d800ff696c628ac6e34a86ac27b75fdb9075e486cc9e72e1544e57b6dc6d4581d09132af8475e7a95c973abd9ec8a0365f490a31e4cc404f4c383db9a08e2d929097c636198ad54bd40a05ec6efced63a225ee3fd2c3758ab017562d8bb973670e0b77b6e4c9fe05d59a932fbd736dd152a767c29a980362a424459892da5b8e1f4ff5e39e37206789f3d107dbb09271310840e6265abb1f788f1b2677d0a5c7224d80d2fac2de1c7c572d248add8d9b94ae14a34b5ee90237396f0549fb38f8fba7c67651731f5fb537c65948a215cae5b7b415799ad757e700daae3d039aa9a7f23db55ac4158149e50f0a41576c33a7c85fe377e561f30ed2c5719fa95e200e26835f57258d588cd8eed62f5ccefa1311699256048f1efb3e5b611373044861944e84259cd4c171b3cec6ebe9139c0ff977a998ab4b1106f0d57c5423c53b49be309b169f64e1a3e9c78557c0c1a9ee8872008a5552c941265d8f9410701c2670e0811bebb02fcd323a56069a882c139af3e6c29b00aeaf40a5fe01dcba9532b938ae6e741f44ac161ae155a1b6e48bc9e4b7ec7323bca98e01e3af01fe0281888a30e525bb9cc515244fcfdf09d024d3dcca2bd649b23a1749d89fde3a29e5e4969ec8f2f2081755ec434c15de4b566954061a2eee8a49de4b59dd8b60f2f50510af08b9dd595f1b0515ede0b28cd138eaab5fc41b09394f0a9b1ae8fe61d2ef6814e4e73795387edb269f4f528625f90d64fc2e1ddadf3781dc22296d7ca882d4111c2feb8d327e9643bf3f153daacfd072f631c9af939d90336644360a643980b1c38e8b202863ad9a9afe3ba8be03e1ec1ca21f7be0c17068254305034a1e2723b7070ad4edcea3056623ccae37f9da36f8b048a241fe4095f433b62ece0413009d458022fd3fc33c40eb6a92c6c2d44edb0c568014b3be9d0d7ab39f8f8a117d9d19ddbf2d120151181227184377f2477f6ca1fd1c13ae47c1fb5dd24e16774d02e48edc3fbeb5481afd4c9bb4658c4ab68a78a3a8eca22e6cd3d3d12a722fae69d6cc2554007ead81dd35d1d2d386cec1b1e7399f084b4946acd72ebbd5d039b54661214311cbd7df4f681a4745867affc111da47658171c2c9ce355a82b6f98e0d4f681b9e03774822efc99ac89dea93571898ae829d82f7a9bc6fad8ab765617e7d8afeacea9d1638a0e8d304e99c186d0549630894a0563aa78014325284ea13782cdd2ae14675ad9eb202ee80ecc290bdbd722ab993d12d41a67a32731dbb8cc10538a656e8832c008fff62ae66a9912929a6978d6613590962dec913818da0788bd85e26c827968272f2acbc16c03ba11fd3a8ad06324dc057e59f7e9c21f430f5b2c014bea4ff08d335cee3544bdef272cd79a1ba9b858e24f9904442084f8c9f3e0c2a75a25513223123a5ee6afe8a4aedc1d5da98371806aaddb24648abca28b66606223f4586655e2211733396290bda3ad4ed1dbda2e3dad798ef6e663dc11b42394ca737774a58ec44119585e1ede5d533fc234202250134778e7afe4c81ef930d588f5eaae0aaa6fb1bd611347821444000a456fd4460cc49af0ae204ebd4a134c15d2a13abc63ba2ba3a439ca128399ccda5305efc3e8cfdd309fd5bdbbab0c2b94150e9de5dbc5fcfb708311c3e5e73b5bcbb56b47723a5d92c08530f1d311452728b111d68aca7bccaf90f848d90aa5e54eab4b6e86957c2efc806c508637a66465eccc8b72e3c5ac3a4633c52d5ac5fae5bf5e8210f3030aaae834fd54a08ef9e91dab0198d38e7c2044b03d3f98e472ab284f03602ea7a67d150a72692135c8152717bf8d0bb6bc89869bd4b115fe338f9fbb72f092a70bf0639c39a07a9ca5ad81088047a6f0c39a7ff592c98a2fab5254cce82515a1ca7108144619d0a520fb4fec3ad7ae654836429f2a22d2bcc10f362a33e8cc08430c89344ce28253d02227e6a00b91629f08b6347b46f822f5586d20ff97e25bead968ccf32d4760ce8bad9525644e00c687644875d6262c71982094d50d228b74eaad1d2ff376f72acd2e9855624203d91ace3aa4b4b898036fe62f60dffd41a83c52748de5d27c7e904759783431ffc1112b325ed6d99178d8bd2ead221adf361c467232cb4fadc1626a10017cd4b4d1210ede70fd7f836b03f1c7829ce7201d9c2f1aa100fb2424fd42a86ea8332c8d9458ace43dd900fe9c4bfaff4b46a1288c54b6639e50d07ef7dc998651c43a782733a53bae5b2a41b63ade885a505a9198ceaa72cf5f8c3fa47f38ff9161d4926f34dd47da0c8e64972658d977e12629c24b0d5681c0134801604e5c43424ec097c856b7aec6c865ebdc9e33ac111ab44d19b3276150b875d94b39cfc4356bbc7cb57a1026974c2996896ef38dfaa2f8712132b5ee65526f7b908031d7b9162f75e4bd100cb15f3be58c2daf08c2ea1e285f1d7d3285eb416d317af8d1574adc9d95bd29e6a2749c6a7aded8b4efe6629dd82a75e0a62aaf875b379ef080bf14a5aa8ad1a7ee6dd3f8483272be51e114ce0fa53cc25a3ac78dd737b8dcbd44b51f6f06b742ee0915f45ad9e2d5cf9a55fce006eafeab40508bc3206235cd22c695ee17ef41f1ebc0522a67ddec7377424e808bae436cc6c6fb9f267c62b3256d66c595cddbf58f0ee59aa15a14532004b7cd79e226f71af871873c8878f3bbdb7dd368372f2beee6842357e82a217862075132498144615122a23ee13a664b9118b13639db470db94eb654bdd85937c34c0ab8ca279b2fc36b1d6a053b9ec409bfd4e161f36913a1b9ca41ec51f8a8ebaf9f2e0730de8548add5fb0c1267ea8d187656f76660a3182c5b322c841ac690d46c5824ac82bf6cc076bac2257199a1880ece13b64bf372f6dff55cd3fa3995daca55b6bece351ed7ed6cf6e54d8be5f45f010e7f1bbfcc9031b6043c0fb92e280f979dad768028ee931a1e1fc4e434a3e21b4e2bcac621e80c83729f90a20a91a1100becc93712353c605aa476117c105a6926111f8dab645d45fa782d8880e977c34bedeaafea9eb88558295a8d5a572789c1a44b29ba2321e9c354b1b2389b9523501a27ae392f0fb6604d04fbcd4919e64460b1a535aa0850a48e19c4ccd1015cdab2a80e4c7d0ddcad650a53342f70e29eccca81a65a705fbff9464033ec5eb4bbd8c5069c8b0531878b1e640fe10b85968a42efc3f28d17f2b772dbd4efd3c53ed47b942e0ce450f1814214af9035d5495f5d347767265f64ee57dc7017a4d7c0925d0b84d5ad4749a899e3894ba0cfb3c6707ba8c1c674784d95ca95b07906fdc4bf2da1cc51af9ab194518c2efaa8b7dba659d720424bd4d9bd13864f03e6dbcac62c223ab04a13cecf8a2530a548b9442397c8df8bf225abc49fc808afc48130c6d7b0c687f87fec1133f4be8ae901540d0d5283417a2b5908c06c9fbda990c1e9d3b026ad671398aea3edeccf4222fef8fa3f137ebd3a36bab1de42d1d90b3a19019a9f2849d3f54b9c03c47cc143696c202bc7e6bae0605e1d9749d840686e2230208108f2328ccec5d8cf1431b3d071b357152927b24f8570146dc175661927142ec972bc9a36b0d1a681a2a2fe70b1a80726d14a0ddca771d80ed6aed24a4896a8419f491e921c9ee364112f880ba4fd5ef183dd523273de6e583bf2abaca78bc44a08ae18bdc08dbe7688fe0900b350b4808f9c33a0a46882df5dbbc52a296edd72edb510e1ec8cefa489a36852e7d76a04dfd8254a0e6ce438da4e08c42facea6c0b42096a5653848dbce0360eb04d65d8d3974feab8fce68c43ebb21e51436f88e0bdc999b53648d0eedd5140ef19f4a5e35e724bb05c53a3c1282fd5e5b15b05567a25095baa23e744c731e00ada758dd522cceff0bfd10e791a03e8dd383855f9fb68fb7f48b79149cd414380ac957470296a1e30af17b11a2158d9f5276b15eb43b2f3800abc1dff4d500e55a7e7e6339b084a67ec40a819b81221b15ec9f27ad4908e43d7205ad2dd36aadd9bcdba1e5f618f7cc5656102ddf5cda4513c177a91bedcd7685381a645461a1e399b75880b928a94e733d0dad7b8add1b6e3f23d6a6107114d95d81417ef4440c8b96311e7d03209c09ed92da55a5dee6cbca5352dc6a3d1fffcfde11219211450aa8de77cf2e309d6d00fc6629c94c6388b117fbb93f9c5dbca38e823b8deb464808b79c814f01cc2fbe37c7e7f67e3f9e0e726b53ba3d2efe4851673ab50e5d5c5321de1d8b18a3e5f5b61dccf52ae78559aed0b1b9e8dbae60475c427766591d0bb34800eb449eb23f5f2b1e66d97c2ce531f9b5e1f58a0e6f109c6b0f3eebe9f9ae8dc3464350e30c691058e53710b383345858d83e965c5e8c603e6e3dbf910b7fab8c9bdd0a3563a75c451921802eced19d74ae5d5f7de5c2a808784f410793becfc3bc64519f345bc13084afe74756848ededa3220c79684d395e2411e7d3454c09ba2fecbe2e718dcf4d270cbb3262d32fb41953f338820ac53a0ce4e670104a980dc9912194deb788de50a75f96e100b93d0314294cd2c49fed8725b036b54c14100b294c3eb21ae94ec8dab09ec3598a53ef9e2035f7e091393a4924682c16c90f731aa253ce6fe9b7beff59a4ded8abd73250534eab431d15930be916ea24c8567833401ba44de39eb48dc17a9d67502be8f40d483509f4dfd1588b6e484030e30261713bd0cc0d7b3964087e52c1a55d7604fe635c17f78d79b3112b121640c7c6359456e6baa4eef5243130a9bcd820120cafe3d89173e823a91e818b7c24036470169a356df6551d0aef678676469a906eb524dab89d5c243582f11052040267d6b64052b793a2550f00d40fefd27cb70c0550f35b852078433955b55456b5c0d9877594508725fc09099640a399e817ea630f91fb212203f3210db3c2339688f5260ac7770be8360a9b20adfa0454a5960c2d4515aa2a3f33ab6c04e0133b5ecc642773b2e92c3f203f1b5c8a2648cc2c33df83afba5fa42cc6f084ed8fc4aeae5c54475e52562b6d3e51c37b5f4aded48c0d8ac6afa4bf4afc4dbc36da5365c4d3e5d968ce259b1520adb4ba1d8a30018b71c149dbb654c4ebe8d9e2137bd7acbf6cb175c4f116c33b1fac7a555d54a7386422d454a0aa8d81d22cbff57d29378d68fbba766c6b5f2f2ff55241c81a53176917616f6aa03d22a4eeb3da7ea11b95652166999062adb1a815a2b2608cd9241a83d211fe71b8b6aeb886e8f01b44a5911c9def7e089618223d508c9e8130a8c82ece2df4298927464381a38d3132263c5b989e1f1a085830a373e4a3f929e9506a5358c625dfdca11ff9765ad297af83684e098847b2ac9b64c0e837ae5f565f6849a2b1c7735d510ee8d390c21e3214f1892c6702666e1c068025465d7bf4d587a717a345acb97e567661e092376f40013ca9e02991942b8dfc0919be586d797eea14d9bdfcfbbbf36c134af050fb19ae7454989080c2b148c2698cdea3e6ee9c53aec29f83a26ec0249c9a74aa886e349731799a37735d8497f15906e95a9b720164c86e131c2e1b58d70be1a9f508ad41588b7c7a0cfa4f8096edc800fa3be5440c4792dd41ad4ac195fe84bd55bea045a0588cc9e67271873af72ac4d8c7d1f6aa71918697600e2fc402d42a6bdcea53da0e838d995370f8c56061891319f0982eca2675000a1974ef972b7810d15e36cd34646b9baf51aed67e04ffdba35f5a8eca7b1df53bf563143aa1e02cccc5fdfc20471462370a264e5db3d4091dca8936d8e0e026775a4c30c41137d08fc14ed47ff7ddf1175c6320067d95bde75a60b752e9e1d7d015576c937253b837410990fa37012cb192319e10b0a89485fd2a2c0521a783a40dc3ee640b7e7724124669779af1ff53088056ace862ad4db08d0d90521924fd22720c84f8b9e74e055c9d31bc3ac16693433ffa8349239c1b772bedc8546be175adbf63c01dde47bfd0c9f6ba38084d6a7864ea99b5a444a9952e014487cea91a145a259dd9ce6d2a2fa02ed4952a05002fe9854eec363bf51856ad11951954dafe87238878526a429e9e5f950a697fca7cac2564b1e864356e01ee789cf1dd09f1392f291e576b87302868ad17bc7d15a923587e01aa0d390361f224c3eff31cb5bd7796abdecd2550780967eda1b7c3732bdae8fdb001371b81d8f26c4964180101fab05de0825e997bdddc25319a7549d444bf96f92afbcefbc7b31a800e9e8d879d4ded0bc6e4db11311f74474891bcd2dc45d03dcf630703e8dcb2f87b0982ed272d214f675434f4b8e3b3a9c692e2b7999ec582f02bde5e415e9a0c97da6f98cb73f6716ae1ee22373a61db682292b0b9d14694371444cc15f0a87725106f4061472ed49e4c0bb6efe7b78dbeb71b730d1ee42d4c500da89dbdde112354e62db40d083cef8c0fbb2416c6c36e78906bf0d2bb907d7e4aab636ae79b0011db40e94a21b756ed0c01470148dfbeff5b897cc33eff01c01a007e01e4b2019765b0a515e1fdd86ba61e1f826cba8524c8de0909fc665fec3f39b3dd0f86e33e5041d49680ca6358599da8ae2aad6067dbe3b88ae5208472ec80de41a2283b391d74299fadc8fd0ff8dfba8462e407bc33cac8d10bc4aeba5aec0c67e7b9f1e18e62e2a2848e5b271ff8a0e5cd4357f4d23682870e86fcfaf57a2bc73e5a6d16a11784367cd4fba407d84eaf1990397599048592359d3ecbab17c9a7357cd7e3e652272ab51625ff31035a426d615c22102d3075841bf10560f8b1fa9a2087c7ea4b419010accbbd0051bc27bdcc95ee1f65a95cf7be006ed7f5c9425aa40b01a200520ec40c25fb82e75da903b6850e7edb2fe3a00cc61bfa2204e5d6da05e75abdc908ab41975b862e42518314f3621b0f32ac5390f7a9c01a8f1aeced9dbfd31ce1d5744f10eabe410fa26ba7b17eb5aa3dc18ac3cc79e2c3a09ff0172bddba5477d463bda9b06b3da72530d65de733923c4e426ca1186b10362ee073703e1cbb7a31b4c77575b445b7b10808a9db3503ceea27a417a3a2d10971c3848470def99528ea05369753622c2048a423e011a608f90f8148cabec7cfde1d2001369444e881e101af9626addb20fc31d5bdb36d620f8f90810a1b710ff7fbac2f874e7c145324a94d58fa0cd44f7ae951033c1c1b915a429dd01c135291adc09ad23d71015652d2818b5622e3425f556c7869bb25ef48185d84028e45f8a7ac5975a57cb9720337e220194b5c90029d5c04bd086474d11e6dc38b93258636f290ac1f68d073d14b0a4fa67cf69c09774d5614f4670f409c01d842c5c2b5d18df5de966e495912ae4ee7b8c48ca7efeb4b69b3d9c6eaf89a761f55881d465026d1bd5fdfaa9a42d01dccb34f17b608083f654322a44cd6ef0ec6917570597408b6d190efc4290a6441e7884b1da8211a3d11288571e450dbd0cfe8210aed0ae7aa5145a3eaa19b50dbd1afe834b42b14721450147b433d1b9031109ccaf894ef2aa3c8ac1bd423db01de1a5f0379452665dfcf7e12c07f2f7eeab4f2cc7c414a6f53097401d85b278e27a0c910a9317f945a3ac5f97bea646e7076d06ce1c5007c5e0f023e81b7cb354b110c64e91ea84b121aaa04cf03a5d20129db314316895a21b8799acb66b2f52a00c6e63507861bde2e361f8e67666bd77cbe69a54ea9513b4cbfe8fb423b4b813b552c34f9c9d5023983e660a624c5709117c31d4827e90e9666ca076ccb182190ff26582851cb5b9490fc65c05e2765c085814c3faa6402240069c08402d47cbe37d0f90db9bf6d12c27e408316dc94654fc72ecba4aabe799e261c50d9989d0d626d5e7923b73895b4115736b37fd4830c7a53d84004b7855deac6f1ee57bed07a7c739e4883662d61f874768d44790267fa268274db7b270de69d1114f72e826ed41a06e70d12b208819d094362772c53dd0741fb4ff563dc92d861d5a9692e078548afb36d08f7b3cfcbe76564336a1909e2124482887e742866c8802bdb407f924d64f024eb77c9ba600b60c22e3f5c838d585599d7aee999ff0f3402745561bb851debca70e5d29b01a5565376fd278265352b054237080d8cc0b068377619146bfd47306e56b1b9babf990747d3c5a5b889b6da576a7d0b8e6dee2d5a6af527ff84d9c89cbcd04ddc617dcb78147e933a9fd32e142a604e6d6cf8fa9dd50df519dd353eed10c1f4b94ad874f22f91411dd806958c7d25dfad7173724bdc25e3344db195bf7327be5fb25d4c2f39bffa30723fd6dcf8f935254c4825356a6913917719a659b29eca44244763a0f512527202777b69ca9407be72c46e86dffa86642b03f0661a139a46a2126b9d2f871ec0f838458b52f16bcdda25a291b8632e685908bce41902d6e6a83556113e9d9ed859fb0a6119e626731f43aec6a7b4c1787694a4a2afeaed44c4d3ed5ddaa2000b7a22e33f45a7c43b25b17ea642112d8c29ea7825f1aee64e9bae843d195f1e0727562c4f001a84252844ba247fdaaf0b20681899cf246a7956608655cdff836879de7c0c6ad2908460d959f998e088067bbfb223f660194cbb4bab235d1c4a6e8b1bc5e8b35ec99d71442b1b87c87a2c2e0697f334c320416ae4543d08ca953e5d64c4e3b3152d7a681b1597e26ca3f8631ec364a62f388646c87595218d181b3c8a173eca0c5b0256a8987fa614d81116123a39df6283a387926d024643f4b1db46d904745e1c8bfa2bb0547392a307f8c812cfba98ec389039c18b86192f2da4dbef509ecc2338fa9f37c04daf6516fe7e58287053539e21137186cb966608077c3d803bb0cfd3e4b5108037514aaa8e14cf1709361fb4191af580de71ebdc4056822dd78a79565492e68aeabedf9e284584ab83f0e1aa9a960ec66aac24515daa42da6c3aa81299f497523650a7c547d49d1a02cd53cfa4ffb5f3bf593b709012d34bc38273571a6b4afcf5d0c31a2e422970120b5000389595aca2112da475a1a262433d7fb5572874df82f62646a203920b885c1327e8c1e76aba0f8667613e9cf5022618f5e1c00d51e7f384611fd284dba2d6866b321da1c5cd351d121602454da75a93aae55e4959f9f0e811099b70e6e220788718d2ec2f2323734e0316eceaa179392afb9fbfabb61411fc5923d639baa830e147c35742652329f5a01991a60950a2515e595dda05a63bab37ffa04dd2d99e9a17b162de1ff475a5d341085a509bf55722110502a2a4315ddcb4e78ff77463ef53131139abaacc1d97e442e1cd500001e010e619d4b9176c07c0d85c77f25225b800d4f6b0ca26a4e056d3c233ddd9512ca1b0b2fd139c98034e1cf9ef0433be0d1a104c2d738d360d550810a0a1bbe7553113a01160cf20700d7437362b9bf98c1456786cf0da3d7fd99894226f36c89a3a7999b7e7c965f7ccda23bcacbeb969c2ad8167cec14e3902fcd61cc1e29284c9016abbbf8bbc31b7cd7ca90243ec5aef851cb6231ee5c86ad5f388c597b218c2450099e56417c153c7f857f2dbecdc9a2efe621b2024cd672331680e48186173e7499676adb033e35f68776f1ea69ba8d04394bbdae03c5d2c1b4a5a1cffa07c0f4d781772e8366022da45a899e778ce748139f65a9f6ad2d6e738b0507284f66bfe8a8048496c26924e53a1503c507058fffbbc6234ccffb3cc8f7f62d5fb1fdd5474ca2f207ba009f2bb22ea1d13af23028af21efcc36adc46cd997c46c33ee7f2ce8e9d2c6d176298c073d982f28da2092ab655983881653375b39f4d8ba8658e545297b456e644970ae2eb418497795aa2a1c76864409a81f0a0a2a04e8e693cae07d34383f8bcc403e44dbd521eab9feb8c412c1ac3a71b06bdcd89e9718531eca9c53c66693b03d96ec0fb4b8c7d32ba4c94a65cd6259e6c32e9510d6658c4ff1fd5771da7140d84e5a54ebe1e8fd26031409d62ec6d6ae3402ec80b959f8246c601e6452d4e8155440bf55e1adec40d70983a24bceb4b0e86a04d1aeceff9b5b27e6906be1119200674a07381fb336ffdc15bf1465795bf91093790f26153479eccdbce9977f7b95c580e55b25715119184cc3e62eaf0f2e716a3634040edd563c8baa290de0ab72d09d973217a76684f86e885d0e901212dec2df40c00d0e799131bad923dd1e34f7b03456f9eeecd533df8440fa0e8c5133df7143dfe74e6b636dc247892243ce3034001d41a5e29b1f155ceb5194ab26c2729b716acaea5c392b594c885ebfcf44b70fa703c6178427d5191046bfd81f286b5a0f74bcd8a375f0b38a056de8d327e58ee3b8254bd72e42cd4706fa2d95d44186be09a446267171ba50f0d33f5f910752f48270cb0470b23e8bac5478e6d45457133b8075327165fae2b760984a794a065090a6b0a92cabe37ec268f8529ce22d08839d7e76572b0781e49ff472a135d4a614cc55b51e9be7df7f456be7ebb16bd4cce350c7455e53d8efa44f767a8092b202448c7142ce9a8f0df78d469193f9fc17b47b49c8897076f5c6c8f56c8392816d6949da046cb06156c0beb545a3396b9d204ec5e0a26a1bb495f1a1091f65a99d9287c31512245523460cbb2bd4327985ed062ea01c0940494e8c216be97b64e27326e3098abc5f1ad792e679cb164c031acb98c59ada111c7d4e60541cc05d6d5a07407d9bc36f039e4219ae83ca2b2ac85865eb06c10e4c72cf2e186913b294fd6129b490a501c54dc253131d691018e8cc35b6d6066d001884c29d520f40a03e3329405ad5d2feb3cbf84937e2294b390a0c39cc3ec6d7af127ec23f737f8aaf790dcf7dfb9e50c995031577bd717bcf6ca8660d9bc58c5522051bf5a74523944a8e2ddc9d9029d4e2551680be6f3c5e00bdaab980bb1dc5c98b9a65319c17fb702aedc8cd6a5690e48455621cddc6d5760ab641003838dfb7e01c1aa0306b803f1948e6bb2a17fde5fee3e64aa3347184458b25b08573dd1d6bf1d0f251187002432ca05d39a00407977e8f470c8c29585a900b9ce2fa836bc45dd77f043ca59bc41831886d52dab99159e7dbc0f1b8701add0c2ef1f987302fb284d37586dbfb92a1a77eac9bec7783f30483d80410440a77d6deb0a098412acf9ab5ce4750127934b1141ea0040e2753d49217a74eb25bdbc2fd0a2b97788643d44ad1d3e2704fca02dfb61ff7569881832c7f51e22903f2efd43036503a1c85101fb96603a368fcf3284535538b3fefdb62d9077c6fa68ff2836355b49363e9aa1123e3348dd63eb2e52d70addb9d3bdac6eee74f9d225765d145bdd6cb3424552985db3f0ba18dd7a5e9dc9d707e196933ef829c3a802c0926bbc0605aa2d666cee190901cadc300a54d26e8ee03bea9901477d9c358ccb19860ce7020e4d4e73f94d5ada165131871ec122106746d9adf3152e6c2d8c1ef40b74dde52568fe0675ea9641f69598ef0f7bc0c89e3a68496cf130924b09d78b94452ab3114e0bd498cd18a241eb0f11ed745012f66c812abe945f64c3d1a0f4742ce71a939e7b0614cbd580f9582c8760df2013033ee9422cba249681a0d130fae5f0407070d139070d6c99c4d0bdea1d302af72529f03804422c07321fcee94388360229e10ae47b504851e4001d5909c517756536bcb6cf738d6df11c36e45d148c32ee563228df7b6112e65ea50a9180c1ad8b24cbaa12ba8dac426a9adecb5eafeeb8e90bccf5b552b84d7f8f3c87a0ff9deccc9bbf65aa7abe29a6ff36019b3b647263f92def687006c45ac6ae78320a0e76ffe4e48a968caff33718a055cefd105abbd753d1f1e72f0099495cbfb8f5bcc306098d4aa8da30c1ed26c57b9592cb29e25acce445b0cafc99b849a6275590fc2928accb3d554784008d2dd0cd687408012c8a23106d6b4bd1b099cc243cab862a2e0ffca5c8f62bb0a203eb5bca69fa95c22a2ec9ec92900ca8be8802ccacc0acc4ad6cb329f3f4f204b4f1e9bcb3285aacecfef1eb85f78628bb8e40a7e018b036c01cd7a889760dabdade0525009c3a463efcda0b76fe2c329007134ea5a735eeea0b58cd175107d1f4ede346a27f2d46504af9e5673bea39d1b0316ac53d76a0f689badf67471862fe859ad6cc38a40dde94c418db6c40c84ff5bb2f9c370cf0657eefb1da50e4b7fca368723400bc85fa7dcd66fe09d8411a0e8b250c01d369627a1e9926e02a92d365f87283ac2734dcb6acfbf63ee6b41259617ec346a202748e6adb9a2ee8955f94f551fae6f5b39c1676dde3e1b098ec8bdc93e18812d43401162db7fa702eb6c2cb8c4b881744f566b06f948bbc7287504128e1c909116b51292b82ed6d9addc2ed711739fbc95517e721aaf4a38220e07f3ec7579d66777046ea07cfd0ca1781afe676abfb0ab40deb359d32a19fa18f8847a2f4eec1f020598e357bc1dbe0831c275fb0290812f51cc22e7268e3818a821bd52f1ed4c295e8e3fa236c9556988cf66e8d1b3c462509292b3003fc6b4be1147b0b00e98aac0f03de96c55d0e3540b0a6d0013c0c3c0c3c0c3c0cbcc6f05bbb6f76e6d6fe96524ac1003a08a594524a2925cffd8fff5fdee2ad256a7d44ff8c03e102e10e3a0e420e099d337c1c1921030d93d0de2f4a925789c82f213ab87f06eab0e18ba2094ac97b61a3d604d9f5a2bca52566ab9d0b0dc88fdf71467ca034fd110408f2a26462fe3d7efe0919a75d14548d67d1bf65a5f7d545c944b31ecd1fdd4de96de4e2647d3ad6370671519c51275aa2fea798681033925b14e3f97dc9bdb0ffbcfe2003fd19673f5290206fc60f1f1cf0b6618b736dde12f7191a2341cc48ba166a9ca4cb33978bc64802f2e3cf481b810d5ae8232a4be4cfb264631645774fc2695fed2a2553b228480f63f2a7dfdbd7d00e360d72d0f811240564a061d206cc3a8819c9046cc4a2f8e2e94a0e3b93fcae1d6c0b8bb29aa930a1e4ec5dbb011baf286e079327ffe42c69458ede043a7400f991c8b0e18a629f770e5d9bf97aa43dd0400b52061a40d28f5694640d72f39baa04ad27064800831117d860c5a33aeee6242635b0b18a92ea2c5b2332892a0af36d5a33db993ae11a01d2a928cc760665de254f4545419e787a4c9dec77c977b00531233945d97ed47f583f77b0e9036c98a2a0b6e4c867b5dfacbb14e5eaa0591e477e12d4ad6798c1034951de5f93fb640cfa674ca3286be638dfae2509ed221ba22849ba313dbb6c1a99c7c3a3c79b804351709137f1f3fd9f1c53a028e946d7f418aad4ca7fd2193b4868fb89c25ce7cf27496b3d510c71aa7abb393b9e4702188cbcc04627ca291be57490b7cd79730f0ce8d091468fe74441a9d2253295f48b3588190932c0c62650870d4d144f99f8666270cd1a353b401fd0a143870e2067f83026010c46908d4c143d497a62274f4ac932c14449e826f724ff6d9a8eb944e124cffd20aa94a037b7447994ebe7ea4c6bcd3909d8a8c4a57663e7aaae72db6e275be724293132a5011d3a50e271868fc301148c714589e2697ccc1fa24ad0ad272e3626511236177a9fd5c33a248972cea7ff4c17fee5a56ac046248addd9449bd6f318aa03898292f604dd7773b5187ba432464e1f512e936943e7f5b5cebb23ca3187d9342a324615ed48193c3e4987471940dc7e040182361a51329d7de7ed544614e6d6d2e48d2b934a2260631125419c2494b8d993a0d44e467c0419411b8a28c9937abd93242af305d8484469aed3987ac7f2f1161125d91717971932779c0e510e76a5b2933c524c6c28fdf81d86504d096a4a0c423edc5060a3107b09e57f7fab2622e4831075b853428d6e90ee2f423e06d185cb26a9941e357a5d0a6c088215e5dff3f7deadc04620ca3944f6876af099ff75e0a38c327e0710b6b5018854cf642d35decc74f0d7f6bf6ff57c98e1e3c719762ab0f18752b7a9e71d4f4aae9eac6cf8a19cbcf624a95de26c92d9c176520e467c04c1b3d18762b4517b9d5a3767d3238747900f02e44c49008311b3c187c29e29e9648da7d81af38224201cb0b187623a41cec679d72489cd0dde0c3fe3cd80800d3d14b6b2dfa4cfa8b48e6bdf196fc6076ce4a17c15736d8214b355770790f7800e1d7828e86692eedafb1936ee5012f7649ad6bffd51118fa1820e8cb103c87b80db0ea5b2fd594d36deed888f2026384303818d3a14dbc24d0821d7e5830d3a14338b4cd56ad65fbecea16c3a98f451a34c4caf8df44846cc00f23a1819f11104310336e4803a2a0ea5571f1d74eead7a9ce0509cb30c4a75a7476cbc0165c2e9df870c93a3203dfe3c0bfad2f811a447d233de0cdc810d3794d96883ebb0c18632ec61630d653ad2861a2a715d77b39a4f305310206370000563f4d948431b1ab86c9ca1cc8619ca21c48338dfda4619d06c90a13c1b5fe665cb73a6720c255df727aa713f7c92188ab9a4500b6d2d1f9a85a1a0593f8e4e6975820c0243d1e470a28d9a1eed1c6f828d2f94c472bf3c8e121dcce385f27f0c76c24a3e84de74a124669d1f6ad5c4ee3c174a5e7ab2c899b1ed99ab6c6ca13832de6ebbc466c9b6160a5ff3317e8dd69c35ad1ca08d2c144f5853ea0419830cad66c106164a4acc478ce89d6ceae40ae535bb319127ebc6bcb14229478ef6a69e2779548582d20b933bd99f32dc3a74a49971768064b04185e209ff9283cea2fd791f6c4ca1ec492c4da7fec2c186148aed1ecc2449923e95a424b11185929bdcd96e4e7810ef6760030a369ed0cf26ed93a3dbc1a683ff918e9ac186138a3d9e3b6c6cbf836d9160a309853d69fe7c344779770f369850924f92df93fa8c4f9f440f369650d249e6f4bd7fa7c47e9550cc24bb9f9876a36ae11d6c24a1248fdf9a9ce395bd8d4828fdd9298da542b87d890c6c1ca160ef9a4685c9e924a9bac186114a1b65ff55ef948edab0c14611cadbe9bd9f643d19f7da2042b9f4fefbff653bd86c0ca1244bc70cf7f33c33103b820d21944ec9ef69399993a03a48d4084669ffe2d3d79c9c6b4c3bd8ee74e850440d6074fda2f8594f97861abe2886bcd93ba1e4a0a368c46af4a224c93b15a6f455d8782c508317c551926c624cba539aba3576516adb24c95136e7ed6e0d5d94e4605a655663c7ae4e5ba2462e0a3f2a63e5e4ef94c926450d5c946ec376d69363d0235b4dbcf6448d5b94edd3c4367bbd778e75a2862d4a82ead4a1f4c7b66d0c1574c009356a51f2a0da27f975345513ae440d5a94649f3ce11b32f8aa8134be8c94356651ee54dad525d7e50959b1004f16c5d8195c733c6144290d0d5899dfa1462c4a325d5d98cc6d51a68da1820ee8705d440d58144c92737bdc0ddddd5f51ceabf1eaa4d1faf14a3bd8caf81e3e780479b4203dd2f9914cc06568ae285f7e67657687f1d4b4e2f4b97ed3c9f16ed6604539fe8f9ac7385f72ea6baca2a4b64eccf2fd614f5ee1504315a52a516e637e858a29a5a2a42cf7b54ad850b27dc3420d5414c34c3cf1293a9814522e438d5394fc33798a924b53a7ee0a354c51dcd1a25447d73839ecb452f87557ae1eef559d567992a275588d516cf9480d5114e48a126e2a3e49a50495156a84a21cde538cbc9c8ed7c3070f20ee821aa028c94e22e3fa69a5e869c48c0f353ef1c6c847930455d5f0443156dfbfd536e8d768558d4e147fe49c08ff35f164722ed4e044b13fcc468a7f8a36d3260a4ae8244eac4466747e61a8a1895209722e6485ce24099e4c1433438432a91957b3061365f7d96dd18ce631da3bf80f352e51d05227cbcd697749fd09352c514c424992e7270fcda9d383c7d6a8445975ce4c2a97cd303f053a7420a10625ca9f25d666983a5da53489d29de7a4428fc8e0269244c944cd53ede132ffc744a23cef256da5ccfb7a0612658d7f92bcd2b6a784fd8892a61231e1614794127644d94f94b2d45c4ad68e36a2341a43adcd768a57ca88c28e4e929259d7b3aa5c444126e1a624edd6fc1615511879553a8bbaebfa30116579cb92d4e81051d2ea72277ea7e6e4ed10259d4737ec95668892691244dd749b586521caa1fef4f976d0b964558310e5cb52aa3fb2337949328882fa9c38bfd1bd934e2288d29b8ce61c7479186d12886266db1863d8f03eef0144e1e47c2641d59d3cf7fca118f4b78fe85496b2bf1f0a1e4acad4217f1fca5174c9e81e3b43f7e643417712de49da9c5888f7501026876ec6f4256e87f55012d65a42c920e7a198040f13523b9c6767f150ae8c77c2eac3494266ef50f8e49bd1b53c6728513b14e637c99ad6f563ee5a87b2a65e291132c7304de950f60f175264fe3c87730e055de5a7dc3ff4ed470e2569252839e9fc1c4b380e251d1eebffbd436612e1a0c6bf3d25e8f10d2539f6add2edc3724337944433281dcf39e5956d2865f693c49f786c2869104aee5ca26b28e6ea52a742a6869249d2f8c626e9262a4b43493eb9355f83cc79d255030da5fb6cda3272ba2ad32329c8db19f8aa733315b17dd1b81022a6dda60a410d33f8487a7ca0870f1e1a70408d3234a0061946789c91801a63e0710606d2e9e1e30035c480801a6150400d30f03803033fd20d7ef86841091450e30b6490f12a70400d2f74210135b850801a5b1831400d2d8c84d4c8821835b02052e30a02a861851b35aa30c2e30c0cfc0f343020460d2a94de42760e27d667fff0b800f54829b81a53287e14bd398e6d70f9f08aa08614cac94d692b5f07a907d6884229db24edbd12753ab635a0f0952ad10d2632696f90121033be2ea3c613b68613caa3274cd7270d26d88614d56882d76042d75882d75082d74802d640c2d53882d73042693dd4c8243ebb989c221493de568fd93e87bc8c08e553aaef62f3211483be911daf4188aa554308c5a8bee5aeaa6132570b2318aa9db21b185897f809362efa454989671dfd4ffeec31f6457935e99feb986218bd28c8334ffdf02274457353088317e5cd9f634ea393ab787e17251377b27ec74edaa4954218ba288c92459af4a04caf24e5a2d4d9e47a8ff2fc191917e57393eb4439e1d7a2738bf2db8587f6d8649ec43fde041e862d8afa1ffd53f9c69431accac185518bb2c93973dc4e327abada4218b428ad69fb6af1d31837cda260baeb3f83ff8932b65961210c5914b4a6ebecf2751db6d7a1236dc4ea5211462c8aabc1848ecd122c0a2756c9f0a89b34bea40c61bca278a24a103f7ee2c827390118c27045d1db574f0ced68608c2ac1181a18a348308606c6a8118ca181314a046368608cfa4318ad2886127334f4e92c3bf38e3058512ac94f7568901b63ab28e6b859dc9e9021e76a5184a18ad2c5c5c6886bea9224d9c1228c54144ce356cc667bcf9dd9c168a0a2f0f9e4f4261a4b563dac08e314c5dca09b3fab86ca5aa808c314c5bcffb9ee3e29111a64a708a314e510a2438a0af5b42d91a2781ede9e242f615dc7eb4218a3285d6e4e3a74850e19e3c6853044512a317dc7a7c6e8a9e21d43051d581f6184a25c5ab25fde64a6893040512cd10e267e56af8a910ac2f844b1cb5428f1b2cb242679a238629269c5f966fe341a098b208c4e94fd44b76694cb659d1b06270a1ef2e3e9a09a6312e107c2d8444987faac3759d6473b19600e4313c53a39a67cfb9c4e1e6e44189928ea7c7f8edf3f329e3051d0cc314691493ce87c899277d0a5dae27122b444f904d5b4555d52892d4a70189328963c39937c30d9a4509244513f653ae9a453248a76e97a3626c96a7a48146f4b3c49992e29ba448f2886ead6ee90a94c4e21471445c98e08ad50234aa2d6757ffa49ee9911a58d5922f79f44eabb889224d49456aa8892abc972362af49464228af2376a69cac6373c88288687fa09113287289dd2314a7e0c512a496e4c1aabc2335f88925c327f9c5199f49584284999467d0607c126080e23102591e9e435d137aa6a0f88d29a7892b9e9fd0fa55af9126e1ed6e5771f01a713fb2c542ddcf842f9bc2f46699dd30937bc509021cc744caac4fb946f74a1684a26e9e4ee3f39f6e44251cf74ba3c25933c3ab785f2cc763cf1635c589a68a1243ffe299ddfef3ccb42294ccf8f85d2f8b7888ca2be8272d7b99a25fb1e9b9dbec17d6492338fbacfad500ce126e9f8eb39882b19b121dca842317d6e90324a59d90651a16862f3a9569867e9e014caa76a4c8868f9f93a49a1e4b143990acd8d2814348858b5b679030addb7d9a677e7cc7ab8f5de675cc6676f3ca1b0256fc7e89e111e67fc483a636484043018d171c309c593ec6ef35e45a38c444170a309c538ed58b2ffed2e9f1d6c64f828033d708309454f77724ca73bf9cfa90cf33d12193e444002188c88e0c61232afdcadec2cf530d53abf52da419d85dcfa890c327c88e00c1f24d0a1830c1f6528de504231af09ea5ba269b7ec8e70230925258ae92fa57962fc38136e20a1e025e977b6a81290df61021eb1346e1ca154d2efc78cf428d232d03003c75041074880c60874e8d0a103080ff3239940878e26010c467edc3042e1a4f4a0dfadef60db16dc2842e163c9122bbfcdf54c4428e7b4af99bad2d3c35a861b4328a6a8c6ccdb0cb13dba2184723691e1d364ffa5e7835196d9b95c35d164d2c9c0286c7813a2e755915f9453c8b8d02d490cdb7b5341c4172561622661920e32d3677688f4a2e0a34910baa4cee1768382082f8a9af46d52a10413bd4a76f8eda2e4fbffbb5675527a76b6a70bbc42bd42ef63e743d4533da3be6aaad7c3070f915c944266be46eb955d99457051502b49f6b3cc276d92dea22c7fa2c8353741a379b628e9b81e9d73fa5a144eea26f14fc66951123c93ecfc8ed67eaa59946366993139644b923d591473fa9eacfef0f0bdc5a2924db5b3aaf70ef9258969f7eeed6151ccdbe15f7252f4694de4157e9bd77985ab9dcc6d99a0aef1c143d6a94f0d445c516edb8f93d48ba67cdc8a920a559304935956944d29c9e49c319707b70f101e66e42a0a27ef5a9a189eb34949aba220b7a3f3c78979d6182c88a462cd9f19d37bea37c1c813445051cc3d5d9ba9aff42795c8298af996f65defb9bdc414257162434b7dcde69da5287dc6d7ffe7f0d9df91a2b3dbdbb5fc725991b96cdb647be273cbc78d454651eef45dbd4195e0404414a5be52faf7eb94f2edd62a20128ae2485793c4581adb62048a928c25fcf22b63fafb3f515042e6d277db26d5683d5192234556a7ea9c741276a224953a41bb32b3d469443851d20c55e2e9bf6e92f526f44a79abf634130f95eb2ab946e99ae899c4a489d2779f122b9468264ae27e6d6777de092298288c9a583a479ce5c7510e442e5118f599f386eeab0c93250af39a4e6f7e9c1cfb57a21cda64ad5e8722942898bc75273ce8182243914914ece3bd4f6549d23a950c005110914439470df5daed1444225152267558df7c7e0e6132e37fbc09d21969a8001225a92ff37e2a91b1a482883ca23ca2e55293d838a21844e3ff9fae140f1dc720d288463f67b8be12538208238a2745a86879ea9c53b883ed0c0bf2c3870974e8105944b14d6ae8909f93c682d6808822cedaf94cf89344942e53751c0f99e1d32e828872a6c9d174f3203dde047b8862b5efe751b17b37c2b41ce8d09196034c133144b9d377b3a4eaf6f55ea410e5ce572568dd8b901324428872699df966dc9cd74ba88cc483033a74005932880ca2741edf74d69f6a12571d3a74e84823880e1d690439348808a2983a497ba6e24e9c7c90472375754702188cbc48204aaad3e8cd88978fa12402889289c8f966d08afca1e4a74fce25cdd87810f143419c8dd65a19e920d2876207e1217c537b5396f850d62b53a27eeab9dc5d7a10d94361830c72e7da3fea887e10d14331739a9997669a1695481e8a3a2a3dcc2d84c915c243293b5e559c0e3ac624e60ea5bb18eddf6c6287d2e86477fd763742f63a943e57a99079573a14eb32e7d2601e747658640ec5f07b9175219443f16d4f4e15d98ac4a1f0ff39be3a7b22702866ab86a767a76c132241e40dc53711379127acdae9dd50fc2477c63631ec3dc436146327a1340966ddea193664a76b6b2f9fed1a63e2b1aea1c7c40ded396b28270d99793b069983b85f105143e19324870ce2d2640a3f0d2521dac7d3e4121fb3e565104143319f3849f6203798a0e45d1039433964665cbb69c917930b226628a886fbf9155d166b2a43795ff64c85168990a1186a429ab8b13d9b3045c6506a1d3b414f86ed6d911044c450d8f0324196a03496890943e946a4ed8eab891f4ac0504e9224c6532eab419ffa8562abeec95632f342f1f3467f0b3b75a178279baeed7866912d17b6111959f53cf92aefd898ab6410bd55e299ec164a269a2c5e5283bf6aa6af20a285927cd22e466a902786259285628961843eeb1ba1d923828592d45682d86d958f252e7285624cb19e7418d9dcb78b58a1301e27232ddda4bef602912a14d39abea898d823f5a5424143ec7f9374894c81b5bc70d576d9ef589dc9573b9bf48948a19cf477d039097392f25c240ac570ad41c611d9277c4e040a05193ef67fd2b3c813449c5032d5fdecd49dcd3b25d2848266b7b2ee9874899f08130a9ad56c45789ad151892ca1541deac194dc3177c6224a484e1f37da88449250b6df50a3e5fb4464520409cedd9ec77ecbe7c7d86a224728461feb34f21b474348c40805259d8cd5a83629b22b43a408c5f64c8bcb8d458850cc1d654ff668da94c57a079121945309193dcacde6f841224228e898b435dc886d6e644580810c9440041d58168404a31863beed2c510b0146a94abcd131d97af81ccf2441c82f0aba2b3fdb4b902f0a5a7a1aee4abd282921c2f53a6dd071235e14a4c9d57d920e3289ded945c94a8e31689d58d9dee8a2a4d2cff429b9b19c3f1765f378e275c74fda0417854f25de666f12224e7e8b52bf26cf51624a4f63dba21c447e0ca14666b6538ba2f7de77ae6adf20c3b4287d27939dd3b6c97b328b828a3d41dfa5d9c75316851322325efe67539dc6a2f8259a7b4acf38b14f58944c6729d1d6d739fff78a72987cc2bc8893d1f4ae28a95332d4849f20bfb35694f624e9a44fa5d4968715254177c9bf59a399e72b6415e50d4a9bdaef4f9d170821aa2808538da24fa9378d53878e11fb44482a0adef6a1c473511a63dec13682fe1015c5ca1a996234e2575784905394d48d74dfd5185fe2c7142559343b69c556a528462db9e4f1ca5cb1931d6c21a42887c949e4533398dcd6284abae48637315b7c4e1f5114c4baf767123d1fa60d45e93abf9dea46590821a028c59f98042165478327433e5118e1576a2784c9d48478a2f8bf2942e43685fe5048274ae79dc4e81d4fe38eb8836d04219c28aefac94933a4f9ab1fb289722ed9f9a36f6e079b0e1d411219233a742c77214413a5d22a2a5ed3c4aa0c8764a2fc417df89eab90d6d9104c944bbb3795fb6697682197289c949b34b89dce861d628982599fe825c59b54ff56a220feebdf269f0cd71c568450a23452ae4bb83a539e931ef0ac43c824ca264e30c1df5dcdd408248d14826e4288244a2323c306b99f4d258d44a9357ac76f1543205192f57e7487d649557dc8238a31c67c2cc14c52f53bc411a53aeb24c4d5889ff01b51d0ee574a9e29a93bcd783808614449ac2f318b891ae42ac61f842ca220cb64ced9b75df77c4514d33688f2d26a629e9688b22751b3da9ca85e928c8862993ad941a726c93c098f1b380e21e410c551a3ebee33bded961c0f420c51eeac66b2ef6d8014a2bca3669d2b4cc7d22144d9841c7751fb18bad9200a1f4c8d4e5a63ca7d91a51122886236b13adde56d8ad3620f420251dc13ca7e5ebf04a184858028dffa9db898ece8d8f908f943314e3c99a9e304dbce0fe52073a3bb9f96f0c9d50312d2077baf54e688f7f850da36bd26b53b69db6584eca1b46692e64a13ca4c26dd8c103d144e6367fb33954d79939187e2d6291d4a3e40d6062178289ae82da73e84ea16888f1d7c83903b145e5483fca06bb2ca166287b2668a91399b4e72b229a40ee56fcf9b5b4f340bedd0e1eb993fb73c8d264884903930277a77bbb3e6daad7342c78f294d8b968e102287a26556bb92dbf4496996101287d2cc9e7c72f20ccf4e7a191cb69242a72f5b2f39db1d84bc017d720c4ac56d8b380c216e28e6e5292d2f254afe15d2064cdf5454b3b5cb0411a33d9af4fc216c28fe9a24e97c9a394486d7508a17b1617bc567aea386529f69aa4d92a8493a7d1a8a6725f4badd6828c898744c4c5e4d4d3b43d945d5bfe62027c9a6cc50f6a067bb369d8ea326652895cecdfb4c13f3e69c103220ba66b5699e5bd5e96a42dbeabb27b9c428f6184a6ead66265f22f4b885103194de4cac12e3a439d9752c8484a1a8d1bc94ae8b685493103014e3b9668b5f590d230af942d1830c93ff949b53931d6c18e205bf36efd3ba5675d3c2b4ab5a63e8fbb051463bd85c10d28592d0a3a33ce59e0e232e147e3659a6681c75ab42b65034352ab49cbd2619422d943d499dab4e2bb241f782902c1477f3de888fc94eb20f0b66a79cebe659de6e7d6bbcc74c82da43ae5092492fef4a0e5aa1f4e1d1447c9d6c723acd20a40a5e9e5462501993e6f9544844f98a4e4acdb60a9942492eed2489abfc532b511022857249a24ab46ecff0650a8942d94f752a61b2e71884dafa2150e0c6b54e5fbfe55c3ec30c1ef8819027943d27f9724a3576924f1ef000b2021d3a7cfc483ce8e1a3870e1d66a0d1c3439c500cedf1eeb4e4793c37439a50bc8fffb1f53235fbfc23ed383f3ea5e047901498f538837f0401821ec284926670d9f0b6cf6eb21d6c40789831d22395c13692c6193ecea590251453dcc851ee9a472db383ed2e10a284b208993942896a269b1908494231669af8a8b9fef81d87043018e14008120a271f4aa98dee1e53b3834780f038f390239446984c3a4207119d9b4523ff830cb5330e314239080d22b5d7e4cee320408a50d096cbf4a6c4bcf1734a8462926d1b43637793b83984d2a7893da6a413431226c57f7b5c065d308a9bd5f11fcf323d6014932489330529935388e2e9062b13939e849e10e54d269af28f9ff4f24194acad573336cc9408a2b8559b736ef32c9a0e44694f49b1fd9fa53703a2a4730eda9b422899ed1f0a2b7a932693a3b7f543713ba97f2a518c3e94eb3d9f5651627ba1187c28a5af67e5eceb4912630f252f7513d15f92ac8aa187f24923b3c709e72526461ecaa9e579479528e7e6321e8a9a3ff77cc5e68606fb0ee53afb8d7dea9ff2ead9a158aa523f6636da655c87d25965149df4b6838d0ec5d2ab12e227ad6f9881cca1a43586e7e78f5b6f470ea54f62d2499b60b9ea4971287b67f4331b935d94180e0525f3bf8813d97f62de502a39b747ffe437f3d90da5dabece76f7557aa681186d28d8596cccd3e9f7ffb56381186c28f89ca85cfd69a97c62aca1a49f76b399fcf88cf61d410c359433358beb955292ca98186928bb08f18c17d281186828a99929e936a6b7aecf50cea66e9214fff7f12533144c50bd5146b35e5c4381186528a6302592a19c36f5ac5f68d1b4e90e361f4339786f8678d34c208618ca5b9e71b5dd77547976b0b918612828c143d4893987134264f4e04106193eca0043c1c47c234b740e27786704627ca1e8fd66aa24b7d2bc508e31746743d4f76b294617ccf0e12300627001f5e0a1831e688488b105bce32aafabdde2e244348fbdccc6e40ec680185a285c6aeccc1c937d442da30c1e21d0a1438c2c1c72f6c2a35a28dd76b0f9898105ceedcdddeb74bbdd2e3424c6150a4a507e7af6bee133658592dc33324d4bd2d1499233ccf8401a190002e44da0021d3a7480418c2a949358de9fa563ba2b691e4932824619cf820f7080033a74f4894185c2e74f72a2aba7dcccd829943fa7d0eb26ef89a7d38f245d0a2541e67c1f54bcc4e347908c42294443cbcb9928144acab43b7a8f8aae9e502caff9b4799d3c7dbc83cd9d50927247988650724407b1a9408c2614f4e4784a8dc6d1d0498030a1fc49ed9b248a5d8ab684f2784c1db1e935a8d1a96b81184a285bc90e1f32b3e6b8382046128ad6632ef755dea9330d0231909090d71191557911e30825e134b429595b7437c7080521566d4c34e9d2feee15885184e2e67c92ad07914d399e95400c2294cb3aa88cbaa642474f3b20c6104a9d74739e136e83c8931d233d7e9c0f1e2367005112c060c4036208a154825e5849728e41077d30ca49fe53567e1d4b381d304a926a8fec604ad2ca14c72fca7a4a925f64494aeee616c0e18b9298d3497e6850efa283a31725f17b4ab892b66ec4c97861bd6b6c7adea969acd6e66ac6baf03a7969b500c72e8abe1ef35b09795ebdd145613b98dc5f32e82445998b822a6d7662b30f6471e0a2542b7ac4e64dd28d06075030068e5b9446485fffd1265b1456c493fb9eb528e597aaec2eb54d958ee0a045e9fa74099e5a6390f1e1e183052366068e5994e430ad9ed93aa7aa481645f3a4831d8bb2c87cf2eea5a87c3111020e5894936e30d124ad780e32fc8a82eaa4f24c7d6cc47c0439238d1f678b80c31525d1744789789356946f3b27b598132bca49c96b5cfecf7ad45761a9a65988a7912a4a3726d39faa1152549f8a4369c91f4687868a7266f993c486ba0d7d9da224a35e52fea89c126f1ca62809b63542e6529373d5a143878ef48347ec81a0933408384a519e8d757ac3a789ce92a25c2374fe2ccaa46d6c14e52cf2feabd699a194a228498274cda949f36a9ba128f7e529bb2e3150a4f11e1ee655d6f99eb2b1537388cf0f97b9f944c93d7a92737e39888f3252a04347101f65006923e0f0444909f9d929638ccbba13654ffa24ad3e39719a8d596fa29c9ba3aaaf3732ecab89d2079344ef739ffc9e9389ac4a64e6da2a4fcee4d53cc920eeb99b429d60a25c6b6a4cb43b47746dc61c071c9728984ad9f39125a7d23196288e90679ff3a74dd557a2e0c99414d57afa944e8972d6b0aa4cba9d44b9ece7f2f22acf549404e755e7d95521d765e19d5bfd73f2106b672490f9d349a226c18644e92bb3c88eb239b3c34794f399b0fbafb5ba8f7144a966375ac79c3be4868d28c6b4142d6f4acea74a8c684ff5ecec2e463dd63cd478d88fe7a0f9a47411c7c87cdd752e01c0167028a2dc57a71b4f7c31c11cf040b801ef33cf4494ffd42ab7736d8e55820311a5f3bc97e359e37f648728a9f849611fcfcf939c066880c310653ffdfdf3d13a522b44b9bb4a9f7f929d8480f0680352068f206810a224b4d6c70b3b4f9a9e4194ec777334bdf1e67bc4218882d6123e75a893203c7af000f2bb8264d2f811d405e1d183470f34469249e3cd38332399812310e5d099e3e456cf121b015134f904f77ed38680e30fa5fa3add98939a9421f43370f8a17862bc9f893215a3b93e94ade39b64727363e2091f4a65ab29ee33df433963fa37f5fd9cb3c8e40d70e8a1a0b79edda12bda00471e0a3a890b19bd3bd7cda90c1f3e4c1938f050ae93328ef8121fffe11f3e46d87ea426018e3b1493c949cacdfce1b043a9048d9bbbd51e4cec70d4a1f4a9a3c4e492b48174461a2ac8010e3a946793243eeee818b63973287b97789dac441f8fbd1c8af9a41e93b36538e2c08dec6b67998a895ea6a6d97e98f46b6579101e659c91821f41805001071c4a4296dded88d61374f38682f57a1284124c3638dc50b44e3a98f89ab4e91b471b4c725de610a7a734be053e74a082c4c18692d299479ffbc692adaea1f8195aae4a434e9e8c430d2559357d771855429685230de5d22173b2666fefa538d05050db329ee93736fcb3836da4870f1fc92106c6d0809d9f94034438ce50523352533dab69966e479037810e1d3b82e03043c13a4fc56d76fcea111a65a41f6770e3284341cbbc97eba7b95c3b82bc097247903f23d3087289830c2571f3aa474f275b8e4682fce0f12348ff080204c75052bae7516334316a85430ca537b9e7b21e538e27f90047188ad9b4d448f9ac0938c050d0595af3a6908e9cf166b007707ca19841493525639e14a733d2088296c68f6e1c5e288932b53be671ac3ddd8562fe9384c90f621c5c287d502d269d0eea5d3c1c5b28faba9c99feba3c79e3d042f1542655a2c94b06cd6601bdbad00b55addc2bb76c13936c26afa53e62a1d8e7de1f4cba502da14ae0b842f9a4f33f952d1b4de7562888dc53728969faae4d1c552829492ab19e23ea4f3ee1a04231a91691563ae5a4e5532826eb0d91496e38a450fc98417497a05fa36438a250b492cac7fa9340a1ec7a258bc8320d8f1bc7134a92e678ff6c130e2794849c949f2b211c4d28e668172506a999af64389850f23d1de11b75a46818c71254fd0ed1fb4a17d3a925389450504afecc953ff28801c191844e334b2bbfdbd63e34477e891b638e9f3e470ffc483af02182830309853df9849d921666a1e408e598b5e924f32a7d131fc90bd283870f13acd9080e23945534d566af9f4e9250077014a160a2243ffd269badd63f56063888500c32e913ed46cb966cf269c78ff82063045f806308454d3dc9939844c8ea3a8d9c61c68f1d7a1a031c4228f79eb893d22475e6d96094f24f844815e5116e00a3f42789f217ede5495e7f5192b5dd17f2355f947cd49feaf4c194aed58b720ce24e9da4497689657a176ef0a2682a7e37984e259f65752fdcd845c1467ad239dfc6f33cd145614bd67ace8d16d57a2e4ad63dd75bfa1e3c768c241ef000e21f40b828c6fd3b99942cb144f75b94e47472aa3229333ad3b62889f564a2ba68ff4f6d2d0aef379f413edd4795b4286899fc112f274c88d22c0a1ef467b351fa5bcd238b3cde632cddba33343e4649dff1bf2f514f2a16ac49dd24f31958143c7f35457be315e5a4c694e8246e5c518e1f99947613a1edb25694326ab45bddacb33fd6e1062bca2b9ef24ca6df926262c38d5514b3c798a95f3c7695ec862a0e324ab840ca6ea4a21c4b30f51ae6e4ec094245c9e74c3a61ff44b535394549c9796d3e68111deb6f98a2f0d9a52ba34972f8336f94a2d81b4d4cf2a3a97690dd2085a3eae2295bf2d5d5b164d3d33198e9e3c628cad9c498c442891335635194eaeceec36bee46288aa3aff1449a7823a40714e513badf6f4d522649dd27ca1b4ebcb0f5dc1b5179a260829be8f8cba436fb4e14c35a97204a4647afe484aeb2a2e2bada29b39e253547091b57b289929d70a31e7769620fb7ecb23ccd0dbdabcd3f16677bfa4f938982aea7c91fca45894fddc044b135eae712ec3fa7c98d4b144bcfc8c986c61225a14a4b8ccfd91b9528bbeb67cfa4a4b2ac9a12e53cb99397344dde244a929fba9b6f5066f3a171468f0ff800f2030d0d004941d2c8804be238b9789d99abce1d915e721c575372372251127e377583ba0c7b3a66902857b6dcab854ca5eef38892a853cd1d648e25f73b02f1d7f1d53d4563b8d188f2c93e3b2383ec06230a1ea4cbdda6b8a5706311e5b712e3b86e921b8a287acadf499993fce644943264cbbf6687871e1181f8a06d9e76a5431444d7738cd0136a3b370c5136713ec98e332944faf94be877d96f104271fb5635b3537d993dd19d632649333746dd370651507957efccec3c4a4e10c5289ee48cbe9f39c98ae046208aa1bbd625f487841b8028993096df732afeae27dcf84331543cfd9ffe761dd50f05cf1837e79294dce843e9fdab763fa7dfd4263e14d466e6bea3c74713da43f173529f623def3a787a288cb4f78e31d5e8a04af250bab212c4afbc69d90b0f5ca8eaa75ae8a6c7ac8bb89bf938aa27457728ccc967793a9bf835c125dcb04331ade74925d7d6a11cb4c809f124448782acf3eb513ae7d8fd7328cd65c939fc4ad97ee450d034f983facd9e602771288612a54e7e456398131ccae963740ddb3a673af4867290a269840cfb3ffddd50cc71b3a142e34e3e711b52da9b37e88c5136144ba7cc9254846b287f7c875aa949baafa486d275ce6a223bde5a6b1acaab413ede667afb9c464339c92478d40eadaaadcee058a78ee77b6975ec5d768679d37156bf2666288769cd284a3e65289fb81d22546a34951b194a82c926e7314cb5bac918b4f53479db5d7d5119934f255d08d51274520c05d9313a42c6138662a9dc13fe4ccaf7fbc15092f649c90304c042494af7de3e21cf3249ba42793797d05d222ee35990962080158abd61267c38d126775285d27dd051ec6c35938ba850d8ea505e2708d55d9929142ced3a9b8e1b01a45056aff4249de9b94faa1d6c4046121963a8a003be2040144a5a3a543ecf4433393de30c34a050b8b20c63724b6c06a5911f49073eca18413d7824776368c00d047842492ad3eb19ff3a49989c5018d94ec29887cca7bf0945dfb01b57bf6453f232a1b4f3e1f536e3fb0493004b28c893b9a9fda4d3257c2514cd3dae94ccada5b6dbc196831bf4768200492829a1bec3e82641c911096535f56c1ee7e00623692c08c13d82004728f89887c9ea7fa3356984a2d70965f92bef5f220325f541802214373e9958a565c2db4b8492e60b6defa3744647ec6e4080211434afc7cc5e360184501a1da3284f6d272783ec2083c78f4d7204a318ee7d7ac37a94e61d18a593b74d639cc92f6fef602be35310206a64f4e0e1bf28e853eaef6432a51f37be28a57b9ada133e2de3de8ba2c6cda493109bbddbe545f94db6cea5e44d9f42bb28dda63e99339e397461e87899ce6ed77a6c9939725118194b104289f69a9ec9818bb29b4c56d299b090e316c534f9c4fab8917766ee602be3d1c0417a347050ca168a6dfe92153fa2c06b512e6dfe96493629e38e2a072d4ac25aa68d7aebe231e591631625b94b52bd71a27673892c4aeea9a309eb23f220472c8a9ee23536c8e6789dfb410e58944fcf27b93ecfefe14402188cc420c72b0afbe6166e6319cf3444c8e18a529c8ef1478b347b90a315c50dc246671a993c28252bca259d6676b10fa173090572aca224a97ad22644eb7b7a5451b6cd615d4b2a39af3c15253195dc6964fe13a3041505cfbba7abd1838c1993e314e5cd20c37d5491d1c36c8a62f9871711b596a21cf2bc3e5e8b98f824521483baee8a512d39ba1b4549b49f0e1ab6dac1e66fc8218a527bdf6f967832675387a2bc1e270825ac3940519246f4847c8d61e9a71c9f288f6bd89ca2fdae647278a292a3ac9da313c5d3f95428f5529f522f327270c274ad31379d95cb2d95519673325b468e4d14647cf4a48baeb5abf303393451da9461b286fa26114a3251b410e7f13a55cc450813e593ca24335dd263aa3ec7258a9f33d4fd8fec8a5c7358a2a87772e1d1b70461e21c9528497ea1deb9c4eca26b0e4a144dc7ded9999e1c4d26f5e061d62651ee123f25fba6123e9c76b0ad9300062341c82189e22639f752b27f876d5340460f1e3f820041234724f02dc955ff20402081970a533b26bdee91e311dfe74d420699f94ccec8e188b2e9f36426b6c68c1c8d68d736b6c4cddd44f486924328a5564236c8c188d26b95e8209388cbe71751b4134758e6532ba2bc4147cd63a3ca43291185f7536a951a7d410e4494a45326da8ef2b68f2787286b36316e58fb0d51902749b2efc912febae72844c184ae095f9acb4108636fd7db75eeb6cee454e811c27350d2ab6e20c831084cd8baac2d114449fd961c4574e8cc934094444fb2c224f1d23640143c95a692937e54ff50da9e31651d5a9485fc503c2587bc99e80a531f4ad2c9125b2dd3c7ddf0a1fc275ab59992ece3bf87b288495ab3723d14e3a753627e3a0f859364dbfc4d1f25db782868d29dc454a149467c8772cdb789f3ad1d4a8295c93453aacad63a14dd5347b79f74289699ee09277328f7ba678ea153d4470e85d74e4aee637c6c310ee5d4bc6fd9dedb263814459f6462436ff044bd2fc9e18692248d5ebb8f6bca97e46843a9c4e7d38aeee81c4b72b0c17ca2d1ef7f5b43e135673991a9b304a9a1145b625c89bab8320d05996963632568288c7dc99fe4e40c657b33bd22d6a264133314933aede9e7294349abe6b4c16312ff3c19ca712776b831d53afe180a9fe39b365444a62e86b25aa94ed2ee3094cb33c612257cfad96028c8ccb4d174bf9ce47ea114d726948c1df36beb85b2bc69eec8c8ce1eed423176d4b0b26d62d797b850923309f1d2133a9e96b650124ad34d6fa4cf5d490ba5bd4fe941c68b532b65a124442b83124eb050d412d64413536593d0154a25091d9a7412338790150ae244cd67edbbd0f92a60f12bee39f95428db6d6613d553b4be5328d79a94e3366a2eaf14ca99f2275d4d5027280ae5282636c959846e8d50289b68cd7c85e809e5d6934f6c53236b45e484f2e998e329eb533a89a809059d564a98bb66b30d31a1a0a374fef70a2da124e69c74fcace9379d28a198b489ef9f95c994a02414edfbefbed34cf9070925499aaace3174506b1fa1185fa2e74e7752be11ca49d63c84ce5762e3229483107a72c7386bfa12a1a062de31e634c7104eb2c9d026c8f3e41042d97654f86c66493a9e60943c453d7e148151ce0df39dbb4d88e67e51bc0f9d27a94fbbad1d5f9442be843d13f474b84e2f8a77257c7a9f67f1102f4aee629e641242dc767651b0ee24899e374617e59c4c0c0f0d2583f04d2e8aefa6f36c6e838bd2959c4e3e314a880f9b5b14ff7eabe4112163ce1a5b1465bd93fc7bcf8dada945e9e624b951359366d0d0a220b29fe4bd360d15fa59946c3bd7be48fb0d9d9745613f99604a5022347f3e16251dfae34a9860a79e874549c5497258088d179e7f4541e71d6126cf295162de15e58d41b4a4320dad9a6f454127fd5ee2969f9cf3cf8a5258dfe7dee7d4cdff2a4a99d3eedd664da5f457452944cd2a479c8ae2697d6c5feff8e1a2a29ca254797dd09a3b7a8ab22933794d66be935153146496aa3fc94693a896a270e24436cc498a926eaa9a98d4cdf48da2247b68889d8d161b1345597449fb7163091f0a45490cea64ddb31e14c5b8bfa3e1f3897232bbcfef279ed04e08a183064f270a57d53144c8d6091a4e947264529a83cac9d1df44c9da739017a72dd66ba29cc4b7fa139f3db967a27ce2758ac9d3ffa863a2545f999faf2f26af97289afa89094d6f63ab25ca39bbb35ff78f47b1122593e2b38dcbea97478952e7d81a4c2651bc3fdf9c3e37d85d2e89e28be779cc2351d298ca3aaba4215152a2e44da2f388d29d14ae7db1e1724714ed578497aeee084d238ac1f488ff125ce4e4195112e3793be3ed84cb17511cf5581fcc83b6bf1551d052c2293d93f3e64494ba24e9ffaf6bd6444461942827ee47c3747988b27ddc18d4c83949fc0c519253fb4b1c3daba74294b2c543c9ebd7ae12a298df329d9ce8d5678328ccd89f902234778e200afe7aa24f327945571d88d2ac8e68d00c33220244492c194fac4fb7ffe70f454f4a8ccf96127368fc5078d376a7fa3bfaa70f05fffba001f0a16052a3097fa393da9807b087525cf96fb04ef225cb03d0839baf730ed3511e401e4a27d49a9226886852790078289d76caa43b79fe3479007728a87555c93908a119f200ec503031d32f4fde39f9f100ea501e11f2c73be949eef100e8500ed58fa72b469c24c60398434997faaa8d769be3e201c8a16cb5b2e3bbfa694f3b803894437e0ee219934e6bda01c0a1e0757ed2c4742ad6b4037843416309fe3d32bf66d10ec00d852d0fee41c9e6a13a3b80369474106fe2d24d299dd901b0c1d82927eac7cc1a8a1bf2fec7a42741e9d5503a793d881c21d7cc4f43d95c3c93dc391a8a31a75ac294fc41c36728e6b28f5e4233978e9aa15c654a92fcce321493a4cd35750913fe244379ac849259176a7fdc319477b3c36639f19ddf8aa1f81e5f3b89c3502e1dc2d56450d24c03433193d2bcf2ab1c5ded174aa2c7585d3b42959578a1d8eba3356fcae59aba509071d66e67c4858218a533cb77b6500e99f7c3069779df68a1d41e74ceebfb24eb260be5f07971214e6492f358286b9e3949544f3278ae50fe11a2edd9af94b8154a9fc7cf63384149ea56a17ca7ec4437a526774b8592a8f36da5b497f53a85d2091ac7cd3c955caa144a4a893fb9c43bc7a48c42d1f53d986c909e4950a150ae4cd9a24ca54f28b66990a93542673d714271d5355597a909054b916da2db9e848909a512328c0ea54a67f52ca15ca69ad13a6bec7694503c254c3f084f276a9250ec1242962c62d4cb060965554d229b84995c9a23942f33c79cb4c931d66f84c286fa5977fd1ef18b50d07f35a2456b5487088513c784b5184b0ffb008650eed039edda3a75d8072084625687f7de1d8cf249275e9ace098ca285becd0e19e3c9d9fc4541d98f6971aff1cca62f4abf321f1ae4dbbccd5e14935c62ec960993514d5e9445cb8449597b4a9eb90bbe5486cf6266eaa26ca3d397d251cc4549d29e647f92d56453828b724cb5fa75ea4c32935b149409fb9d32ca0413648be2865d11e92143694e2d4a27cd7edc9132aa3bb42827295cce5463d9c7cca29864271953cec8cdbf2c0aee51b39f8a63514ea125fa886e7a7a61519224911dfc93c7a6fb8ac288c855ad49771e5714475354e75342caafad28a790a9438eca8ac2c82437b828add5e12a4aaf51ef7c34544539f46e9a0c25a928885177d209ff616e848ad2d6c7a43f45413f9e787295249898a264594ac7d52437d5538ad25e2699e4d0fa4165485112b369aec3e6a49e1f4539c663682f513d26a22898aef5f624762839146539b1840ef71f5f6350944d0956b2592a6adc4f14f36e66e8ac93d7564f947c2d3d98a815996127ca5fab617ece46f7769cb84c74c79f2cd94482d2a357939834519ad12fa9e9397710ca445146a8174b935146081325fd3a25a658c949165da2642657c9edb61a21b2443985b727a5714e664e258a2566116d15bfef1f4a946c44694d1b9a4451cb44c9209498de3492289f94f257c22479fa8f44b9c32a3d34c9f6d121519e3b37111e4b091a3fa22093ca87a73b1d3de988b2f69a6795fce11e36a224084dcd26f87b8f18511ced9e33959871ef4514f36438c947ef2d355344e12a3326259324a228d757254544415a5b499bcc3b06934314eb63d83fdd36ad27431475ade48d25ea018df9a8e46dc522e25820120904c260201406226f5701b313080018401e8a046391684058363f1480035a322040342a221e1e1418160e4402613018060342a1201808088582a13020200ebaa72a8d0f59dc8e3311435b91c7d702b9c2ca9974472508f2da1e16aea488cf13b778423dfd7476651f072e88e61494b3ae8cdb71768c7515af4d9153cdb1186a8bf08beccc4a6790eeb735854f11bf72c15b5e9bc32cfe37d08d205a20117a20696508827ebf479927da46619557b1b9936513442c10513c22d7ee875634999995c4e885ae6a2ab557b83e0add27c14d1bdd9dbd98697d94eb92f5d243352a5502993d565cfafaa073c87bec36844ea9c733cf5b0995d84f150d841ed430d3d53363a6f2f53abbae2f415cadf935341e07df6364cc5f05518e072cd48d89afeb7bf3764e92ed494ea8052688c39a7a873a59dd2a3f96cf2aa3883b76286f653a718240eaf348585cbc1734ad99d82441a45deb55923599120bf66401bdb9006e00c388e7040693f70a34a8dcd5dfeaa3fb626757aaf2626fa6d8d264454d27138dcc08ad8519ddd260b622e87ba8d6a47adfa830060af408a808a4e064524061b23ea8f824244456f8940c0b19c4349ba0ac24d8c33fe813bb29d8adc4e026cbd4939af30eb3a0ec34f2db077eca35d96a8b687e1f208f8ba313870bef48a3eb27bc245a32605a4804c20cf8559a9309188060d175d4081ac91a76f7dc75d35100e72e500b941403db279496190c7d89e0392233a59391877cb701132aa422e83c76091e3126c361bcec7d0558597f59330016308ddea9221a30e8456de1f140f34ecc922e966184db04e902a34ab612da36e8323e89ac7ff189b4bdf7f6bd37058f6d7467944e779108910c66328f45292150cfafc5a2d54c68cf5f24a30aefaa70e22b8736fcd33cbdebb250f787f52c47ee96f08e2a42f8a771227a2c28da5bb8635140179cd9d7f881ab01e93b5cc9b9ca56be581966908f96d8a415d44e9d8d3b44289c9d6f7c5b47afee9cd0b7122a550819215eb4cb4a60142a63717f74773ac607fbfb5b82db9b44a043565ec234d6826d5fe3e21c79c6da34e0ded2a6f680c3568cda6066fae9b800f955e469fa5b7c31190daf3c40a727bde2cd133d1b0b3be7bbb80d89644186e55e29027b16aabc81334c53d9cd75468141fd2431fe5e8b1fdf8f6de06c8b88b6db4cbe462540da8a59cf9a7d441907b240e8ec2769894e5ad284949ac281b6cf9afd9f985b7e3134c9956c5e0242999866614d0617f05166205e4362dd6a22ac3847674ebf6013c8516b01e5caf3122e8d74346f771d770c96f01e4afc386ef00607d0120a443b1f49275611e07324a11746ee3df8d41fe462b42d4fe4c65413264ef7722c9f25ec87f1c7de6a99e4dba1f453fc88ddf19061490b15b49dbdc3e98b94fa05f2ccd16c53f09f9ade73f74184ccbb77e495dd0dbba7c2f36d622f54d4418858000642ced0994c6458980c43f61a6136958ae436801fab48411fbc1bcfbfdfc73d5718257d23efe7ddce13642b28a3e47cf48efd4377084648588445880b7d108be8d0701b1e8c03cacc3cba6811b59f07c7c01024046c1f782025ad500a7d51fad40e35cb026e4789398c0fd2213642c9fbe0d594e4e55323436ce9e361b1658790aa564e9ea9ac765a7695c2aab343e8450c7fb4ce8168463d0690291236aa44a7c44b3cc24bacc44a08044eba8806b11013a14de0b4982ecff8013bf087eddc8719d30e369eefdbcb7e0e153936aec51d96e2d4f92fa24b54f6a8085dca96cc03f677f05d0517e1081c800370181c84437032c0229f37266c1b4b1d2915eeab45988ad6f3d44ffd422a3ed9d93308c5e7b94be16638084600012480e36014208454c00010506171300e8561222a7b57388d381998e337f7e4ff9b317c4fdd64394b8334a4833bb8813bb0433a02067c301d0805db7bcff7a1d761fb5c83c7da69bc57917d34d169c31fb56541a34066da1122dc74608c0ac521c229b82d457773ef2a572609377f4a6fc99dd956dc9bf35cc877e8001fa0a11d8a1496c0c854ecf02096e95f96c9037edd8e7e6397ec0fdd71381d8c82842008a508e134a1f1dce8c789398a8fa4d03bbdd0128d51fa1497af49edb0350bba5d32eec48db811178b9b71a830b34458cf73d3393bf6862e11cf22bda19185ec4af994de28476abb229123796139d1deaee6aef4e52a98f68d7fe88e8071400e89c369700c0ec1009452a733cc543efa3b39b15d3ab28fd8013b6087d901da96cc2a10e0eda4be67f7ec965d60f7cd684366c4415228b78b3c160de249a0fe7e2af5dd04b7e016dc018b21371c0c07c1303015825e26bc109575fef81d8e41f6dda73099e25bec8e9bf84e381b8312aa242d24964306d6df589577d4f8081e46d5634e08c8a474dac50c0752e4dd1d0e3cf21dc0ba93d700846052ffa042b03b5951f1f0cd5d68b68a8a4340b781ea2c818f587d46c66646094d04ffbba0f9ca94d1194c85f346f20190295e724564a457c0d5587cb548ad1d40f1a56c68144774523a99f095cbfda01950b66e3539aef7b2c10ba889f76fa5a0f56a3120c3bb961ad315d65987f961a322d68f0bc5983b23b5309079e7a42de47fa84e9a7fea8d3fedb34d0173ae6f0d2ca03a1ab45d927fb0b9a76129753abb358e24200136d5636dc131e7191275e8908c73d943d63b9aa5f6e9c4cb7272088d871cc0dd5ea897635b853d5573e25588d5467e931da2eebdb449e248186e16b721719e90e1c1baab1d9e689441639c953806e070861c4c9f912d32349650cdcf0b94381451d10eb40be2ead712090bd0e9df82fbd11667458b477103a99ec8a65cf6b31cd3526ccd65f0482d2001e459bf1a00211ec58c8f54caf40a04120b4bd07f04ba3c37e87ff698f3e77832b12771168ed96ea50ea29a1b837efac3e43ff62cc5f2f693fef863ca64226973c5a5fb389fc59fc064adf17882789320bd3d42e5bcce429de41d30f7d1928efb4a01914804e508dc1fd1854e77dd9df1644011e5dca6b4ed8a7b814d819053db46fd22cb83416903d8ec55fb40ad25c751bdb46aa7ca6902690fc911c755b3c20347891b50f86cba6b490e151fa126dbcda74f130d28408a3d95b10334950c84a8f38d29e3ecf24601b67c28b841d4e99cbed5fcbe2504c30b40b7175779f70cf3dacc86d1fda454a3ce0f3347eb5380f070ecb75e0f1e7e0f8d9699028c412e745021bf1a3bffa1f108c200916b5dde2bdad1b24381a47ef6b5a704eeb047e7592725e89e121c796a61b9e11e052f9ef119350722dae5c476cd8ea02a91856f6d1c63f5ce7ccce7865fdd180a528c2ced962cfafb68c2f606afe4aff52b39da4217c3777027d5dd5a05c5a1cc85e9463a2e3dda04042f8915f070b4bc1a33853af102e72a9a6983c0f1c60ab16e306d4e0fe5717c173a12a5cb1165680412a7d91c730a375dc984cdacabf976cdbaa774b81f26f5c0b0181400422b80af8a0d88b150be82f43b04622db86040937eea8f8aa6fc1486db2825a1a1b08446d7c4c0df4fa828195a21a2e450f1777206a4b4e11c9a10357b46f5c0a11567ce918a092d9b36d6ca3042708241a6f861843ac68c5125419f1b870794925e65668a70cdd699d5b51b9860b37cabe3d44541671db64ef7f28d7a76a8d6754d94965dabe6c64c26e55dddaa8154742039ea4ec5dfb86b8736731bc91271a7571c1f137faf25a4da79e51040bc20554053a2dccad2bfcf69309b8a3b4175cdd5de50e5c0a24f57167db75a400eed70b393209fe3d708d584e5725eeaf5b60ea029616d43856dc19221b0e999d4a070686d2d0ee0d7e0befeef3a07a5342698474a638e016da6c3df839912312a0276ed38006a1d2f0fe040af5dd59520b5c2a1be1cbbba35e95da4869c0daa89b8bfa9333c56e559048c748f790a77b0a7e2bc4898e6ba697e63cb8232d65527abf6f285e464f4d6bc870c58ef81d5760ae56bce0881b3190c67f78037fa85585daa6d5c87a7cc0957abc7f1ee328a4eb7ad61f9f9c0b3362780ab0d447054c4cd347ca0af3b5355e3691eefece7c84fac0819d0f5c1163a595629e0140aea6365fbaeba40a24993808a13d6c3586c5932c29181835fbe05a7d049620fc8f162a1612777f6b19ce1d920f7db7a2b02f1f8973010946ed6e37a5010c829a4fb19170bb7dfa3c7a018f8fe0ff4e4ca4dc4cb6243199fc5664f51baa025c59f034c9c512f8c8d3a93112381b0d09b42cae83da6129b9fb9858574d5ca7fd76de42d8346a782967ad0759d0efecfc694e7d0d8c271a97895018a1c2dfeda6a400043f7c6bc4d9e229e0dc5339aef7e04df0169a603c23a424042c539b76b4e6b36c32515c18f24a2df7e546318056471b7b8e47b2e2f3ef4ecc036df94d99de20025d75ad96e12170c24f6331795250fe63a5cfbe721e4db632389e6f7eb85e89b59e81c6c8585d8fba3b2905a9e9864a73d0aa109cb224fbe6486adec7199926484539496b9d7e0faa20ebde1919f64cf2cbb8e9e78db42c5b93174ea9e81c1c2031943cefa2872952fd7d347ad0847cf293d19811cf248c0d44b078c0f6e3017b4157bd30606ccdd7790a246c2b5badab983a70d8340ab243b9ec359b02de050e4a4f8845fb61ca09d4c7b3abbdb3aadf0ec3bdc3647d09d85914f5056dd6515f8c178f58a4cc45b2925ac200eadd76413b3cc592395b7ff107db6b90e9bf9588dad736dda18a3dd13025175f75b13978a0ad1927298320cd74388e01aa1daa32995155b0c06ff2e9a9c38d01b1d103fb045499bcccc29b1d5a660634c06eec96fa1f48221f8c157ba56ead2915cb659b0ef2a81e851bde9d6a6397e0dd4b483858d4538030ca5e0c3beb8e720614fa5e267fa127c4b4f70210e000c1dd4614d6306d3bc3bbde7a45b60dc1ce3d5ea6239db58b480cc495cd9321825298f8e7405663e2a330787a64177da8982436be871d0b59c90c66178547d8a1e81951d194d690f12fc13142d13a59f2a10f2e84c8a5f48f58d447a5d3d703c9c5138309162c379497e5ce666371b6ee8d520d57976b28a3760cee2abe93ea2ba26912aab1cb0362db25278f503358e9427a7746c0652579f8224f72c0b4e108792a38fe0669a932637ef641473c275c1cef947bdd31b7d0de338c573181cdd69f2a8faf0075141a5121f5938cb8bafafce65e2a389c188b9bec6d7dd729da0d522c25f0c9237929910d4a0198d6185cd15b56b18c287744409c14ddc4e729a78e14f76ba6079ebd1962007e6b5a697fbf361ada7f0b0fb06287c356a3f58ff6cf73c5febb3d68c7b20f58e4eda7f84047e15a8a81d87d6fa9bac6e50c4ddf7931de7461c7b04dee8866c203c4d449e65f14e8faa38864d69113a5db6c307dc00ee9de20e1ec252382d571e7fb46c1c1232d13d41b0ef29a371bf4e3b9d33205f26a27c836659553e1c5c7c0501edf08636f24296f0fbb6c2c8b4d42c21c4e86805581b5c8255beead40cafdad4bd947425802fbee7890e896d5ab6f16b524156f3ba56b73228ad7b0fec948763d51a35cfe32f13250b3ea3d82c6b648dc843702096bd0ebbb5275db72ed8562ec980e406d0036a467042b295eb0f7d79c142a1bbeb33eef49253979912834343d4396cbb7c0bf271514f20018ec69e998b51f75dfee9778f2c5db7fcb968fb217b0bcf3f8a24666c295bd592520f4d02ba5fc1d774eefb60305391ed733cde317bb9db60283cbfef60ebaa6c6d45b8aad16df47c83b17ca39725f9db1d31327414661507f8c0b9c5a1174c5a2d35c94a3d42cdaf86cc5f0aae1682e4a8bcb82a27886d48d11d462d570d99f03046ee00d4483168a11682986a0bcdf2f5987f69f44488643970f0d957be2b367a141c33e885dee061f609ef820b6eaa6fd6904e04dda71927a0da26a999a307bd9ff531690a20ab434d45cd0d5045bd5988f3681111edbec4cd0a7f637d71ebbe502fd6fd4cd2af25072f0e8706b3cc39efda02888768913682514aa53f946a1b52841b80129ba6335bf7a501c744fd24a50d59b4aaa5f8a1f110a8b2685b5168b7c823c9dc97281c4de9680d4059a443687bd2e85d0387048202558f1c238b433b9c704ee4cf8773846eb060ff542976b3bb140255cfea5e6658e21b077957765a70b88cde5a42d904b5a57a7ab5637fb800eec1a111ce38ddecfd7d3a3294e9af34bd82a7d6c265722c48a34d644f6ef756e26785850a9d6b9bd5ef47e252d5cb91a230e7c46838344383333371f53ed40695ef6569eb04601369221d59c7cb318ec3bb1603fae1acfccd20cb01742311d696baeb2c62643e9389c71779ce242d495e89a0b7beebb0aaf67a16a94362f035bfedd91e000fd81451c457979a2733d74238a30e3476a43012540c7a917fe938ed45aa9bf69a28015c809e2d742b54bfded9d2a6571a788099ac561e1c68ab303dc068be84dc73cd25bb3759dda503f019a6b49cffaa42b42bee6a3345329c5f35312122c024aabaa5eb469723dc52d3c9749cf214a17e0ae20f34de242d1c9affbdd7c4a9ad3d8c9801d835823206be629ab504b9fafd7199253c9e1d5f6a9601b36d322e084e464d1a69e2e10f80963df0b15396275f22ff11889712a883cd18cd0a392d14f57ad5f9ba77754ea930396dea9fbee17e0faf6085c9514c94199ce1913d70f9fc1f0fd5a691a75bbc2030ee9eabdb949b31a42b0e285b38e8eb01cb661fcb20c13f0ca51c0c2c074d8adbe9d0455f635ad0f876b6aeb711def59e4348fc2369d4a1b888c4ae7b4f9cee507ac1e90a27c9538fb30ebdc6b05d6be345b31465e9c28c122d3157d6b70dd3689f417e6dd1332b1458401731322291ef593138d90fe0c9c6f21830c39e3fb453c32cb529dc9d40bf65bac7a8559c02aca2aa23da361692dcca9d0632edc42746d5c9cc8d6078f4c5fa37938c6461e1daee97a2060f313f2ee0a163eb7168d97e8eae19014d6613d15bd14107b29280dc0db51448438aeb11ea45c25441983fc1f54d763e30eccacab0489150231850e0aa053f8589630ab783df51be730cd20c27ea2c517820a4a30344c25542c12b177a9ec6fee3da7cacbe403b5d870924b37b80d52a24e2f14c43102513ee6a4c346c4613ec54032db6a128ed45190131b46ad0b3719d7405afdb7c1235f7a96402824aff71241c53048e54ddce2bb2a6423959e9901033368cf7bd9327ebf2d579f2e49bfd27f8ff9dbdd3087b62250b22c2686ba08bfea1231cc287db4a5f3bb829a20155be3c892b03097615228805c1f72cf00f11af44f0a97ad8a072c6dab0b160dde3a1350a58567167a8fc8102f571a390952f3db38f3a3cffae35de6f5e8dfc71caa4692ef09f717ff43adc91d1a43585bb071fdf25ee869960f4c4140f9cf519004832afdd99524ebe597fd469fb7708a50f14351e9d44fe5f8fa3b3526fbd112d39046ead80da3516505efb8064a3e50f40452e82b3f7713d472f90fc93ee64374f6db4d5bdd7c5f854bab6bcb45a9fd56412cc602aa2266219c2912e9b67f7b77632be30ea56ca8c56d0583412198a3e0d971cb4229b32db6a4769f75af4507560a1a78a27f3ca584d21a565a076c7130712a38293aa624eb32a6002598d85743f4d40f9d4d4f544c9e650c00d232b29a4d3b49ee5da866af249db575045c42f0c54d7e9a084c3c317ebf609985cbd18ef588e9def7be38b9c3ceef8bb9919578e8f6b01a7c9bafdbb9e75979627887be05e062f7f286986a7fdb08f1e61cd72afb1d5923709a43b5bb036dbb0130cde1dd745c4a09a843cf71acf14e402241c9ad98df318cadd58e5882772f91d7ee7a62b232f3d86e0c83d301a500e203c73b99c55b61f211e74321a87d498356ea2a638d3d282e13332ed1eb62423e8e9ca773f5aa0e9ef0270a33c5defd0a4e66c3ecc0104a28fb499b1bd5b84ac6fa34658567dce5adbb69b9428533ebb65d193eb22a89a6618b43cf6e6af0b4585c99a66a26db1425c565be6411ecb415bb1ec00b4d621052d6118d59775683d15b2b0c840e6c0a1e5cc1f23dc88ea06701fac86f5fb065bc51bb85de2967aefbb026e0e0a9caef13340d45e4e7a43b3f2e890be94c067ac147cd56655c696a9de0c07ad39746468ce40dc84fe26fc6d8acfad8121e7439278241bd2244401d6d02affb766483545f760b4a74ef25b700386bbe88f6eed1052df2f4a1a85d6768ecd44d463d195f4778612c37497e861efd01af15638927a5f037151ca96e3a3ebad6a22f25e8636ac586deb1ab0a083604e9e428479f3c86dec76508fb23bfaf07f198a03e7650cc85d4724b89d421b0a394db29f4532478ff1e5e96f8438791fafca142ac3830124928c937ee2df92023c5bb653b5e000392933e783e9ec605cc6740c0fc3056806d6029d7f53f4b04ec0400cb0b13b8c16dd9d879a38ae9c3c40d3fc478addf9e81c8b594d6eb2bcdcd7fea086f8adbba094b6d108386b31859fe89de7d56ed42f8a702c5ae38b17a03427aca0d47e47a048fda55f8d27a97d080c97000dcf3fe33b6680eeb3b10866135e679f3fc60d6214a3ce90904a01a2ba062d25df67c238d1e8801e525d2df2b41c343e1cdaff9d730c42545777b6596e96d2ad2c617780e3c684834183aa5d9846f02f4c8d97301c1d0c06483a03a3bce517f6a45799286afb40c5a0f56b6830e5f4b3b6d74fb78c9a434cbcd4421ae8bdc7a5c7e92885dde269799355ce0a32cc76ed0acd9b0ac9168870eaa9c9dccba7c77c6fb487f1029f691df45113c00c0e0285a69f1f48a0952dce1e02dc8398ccd7a7406924464229d4e38f875473ae44d1bef728e9ce661439c2550630466a9bdb7a70d82356b10e1e899b402af69218b21718e1f5c5ba0f6216afdd57a7fb9c5f829c83839cf07bfee380f585a968e73b06a6f394363e37cbbb9ecced735dac36b2273bbfea5cbe082e746c84c83f6da60a87aad13aa9e1f415b710770aa4b7e70e2f06c179b8c45e7e4202e8eb69ef1b2a04d6617946e1df3ea283980583bb3f251687f3a171935d0133626ddb8e17601c559df4e25431474bc1aca22a3ef75451cc99ef408f807bfee72f0bd5ab8a49666e3a20aa281e398f3b4c922748c0d1b51c7aea28c4bf76584754fa8fe11fc4eef6546ee1cfc4268a6a20ab9f31e6f95c92c124319e94fe09333bcc112fb9692419a1124174a3426abb00fa0e48335b060286673fb47550905a2ca702331fea2e1c0ba8c01937895f30419e9e1adc9b9d0978e9a5242b2f846ad3f3885a2cdd09fbc79fbd4fa8514622731ed566c77380713c62d691916a04aafebc880ce9275b1906107830d6771744fbee3e0a97a8380e20c4172f0146a4c97d359145022afba660f3aeec8cf2e51340074d6db64da3d7ddcce0b88e42993fa0b508290a247ffc8b906fd4fde2d7ce1db9aff3e66a344a6ed3e334152415793ed69731665cb56943129cd45b90af789821422c5390f91a0ca9954ef13588aad92f4310f0d569da08b781e545e6199156715800b8c43f529e72aa870c51d8ed69efafb14cb1f78c48dd8520bde3196514ed7f83c34ba79165078864d4a19de3a607dfdfee53549cfbfa42b77a851a8f1a466fa4bbb84ab4303aba751a527b7531b93c4d358e39c6ded1f4862f9b79d46937416bb169201ee9841b507e300f3c0428b931557a4d38620ac9d4fd4937975b5640580d2dc01faa99a596d135d35788e21544a44c111db859753db690af45db09161ad8d30db8353a8ae4cd368597b7d063babc8aaa5a16fa333ceace8051f79dd1dec60f7c77ba194217f5d0ad72ddd30e4200993f6f7aad3e027884a049f21217f308abadac611e4880ecfa02f1881fae34e025988fc690eab09f1552891f0bf9a54f930b6f225ba6de1739f5e1cf2c87f08246540b758ef5cf2aa918a2d59d8f8f3f81a03a9b407857c2b4bf5ca6d8b6964c85e2c140803c018e80d159badf640ae9b54e0adbc50a5c28c6970b93b060e91b2751b51c4b8555b230d61adfac7dbad1e948842851efa59715759268f8fd4d455e6d611e97e45c0db01e9bbee6268346a4caa1b1e3841c4a19f205bd83b4a9cd3dad410e51ee67138c3424a0ec7724291da14ff6f185e3c89fc483adbd2579493ee0da934e8f029c1f9d786c868171bb060bf78cdd549e8ab506b233a9f4e0b984cbf0cbf7c70ff576586293cb0888cfab259dff072bcdbb15dbd31eff406ee5ccef95e0d3ce92b81f7aeb4761be56884347ffa21021cd70ca653b2e37171d4c44ac13b43b664ec57a094d44727e755c28e5499804c410c46412ef050b35f892fa5196264e60eaf2407c9f7848d8638e70d740a0445d46e6456cf176aa207dcbeefc7cdfb32e4890f499b79d8a68a0505a8e71a7d0ad7ada8e27ec6f20b9ad51398c39b057c0de85c08f2d151a468fc2449c1682d7f333a2462b8793b596be81f255b9e9d0d3a5f3879576d7414e54c762bee02d25e7c83d3d0fedf460a87df8958877e60c30cb4fcc7d6f31195b384a8cd1db62c8d73a67c38b72edc718d9b7d5d3a678ab368336630c8aa1d2c1b556921dc3f4600eee230cdacef8ef723c888ae84cfcf4ab95316135bb05a40d4806587775001d5c617903deac92128d5a56dfc1236d417fff8a823f30eac8c5ea832471e361d7a9a4a7d753c16247ca1b3c76bd26e088667c34bcacf2a97b8c10f378f1206f38af56b86fc79e89c7d4e8b26d5cfbf5d4c24626bc4b1424ee8bbb0d4a6dcb1584c63b00060168500877731d5a376c00838ae7c7aac4436920bcab62e0adbba18e7230437e74940b3719b134960a7077cec20cc3096b7da80a0fd43b68c4f0c1012015e9eddd7dce36ae53950f2e187b506c08be30ce0d1af792be7edb15f6d12353ffb58783902e587405668e35bdb0ef200c46855fae39527ca08f44bad98b4e7aebf8c93eb81139b549c1aaca348d9a64f3047d62a2fda4da787348ed77350b095075023f1f74a2421e69108d939750351b9c3866c94d40acb0f30fe273b38198978924ff77580d82758366220e9dea3002ce6075af12107e55cf8dfcb02d8d971e2469073486271f23c340db5282e3b8778d42b1cf1cb4920aba248e5911de81f81f476e82449d13041687061586627f122eb63b84f093e8a6da3194d9039dd291129b83bc23e3f5e68a672681ef3c4815c3cd0c27590285d863cadeb61b09130f006aa2d3efea875cb4b42ab25048aff74be91985ceb430201320368645d42f8e51a2046d386048a203be24ac07155f7e434291b4cacbfd75d9e832bb10b7fea5425966f0370f47c64f90ef0ee7040b4ee79fb19c3a6e50aff566345f49e57f2027b109ab7896d320df7019e35290ad54a7ac47d3feb4915da70b503370532654e67194f99b08d5c613330de3a6137aaf009077374e2d4b468cee5a2d4779d937264ef089b5221d7cbbaa33e697fb075c44f26dcf56e3720483c6b865fd36a42ec4109e1ca200e864643575b56849648453fca36ce9dc004413c27ca225e757ee0c1bcae03a2ab44b3017ebdc873217b7c1cc283c07a30433f8b07f719aa707a0a2849349ed7a85abf61b81be5373e6e869d4846a573298b41639f3482a224921da50d13d3b7386d460e3a6977b5b9dcc6e0deea941be1b92aeb18e8f891e9d42b21d45bf2ab4f0998ad48352aec29fea88f36cefb3f0f64b695798e613596bc95f5dd0eb98556647f5d04c3839300328e2b8ae2d3f39e646fa58c192f53e272fadc0453386a336298bc0a93b094605f311ab11d0caf0d7db614302eb204f3d1033c925ca9e4afe51be81c064f4b1ddd23ca70cccdd5d3df7ef9db9a34926e097a16d02e940c6f1d9c99aa0e99078e75bf6d27e0c555c4a8cd99fa996f90f150740c069d025bc4e89b2995236197428016470d0cbc0d91ce593145f1f9b1810c4a020443a98247108d7b4998305be464686ed0121493c583f21a8e2ff8fefcb7ad0cd17cca8b6957b8336c2c87841d4a287a82e14ac96f241fb5c931cd7d9cb3149b66145d425c9c733d7aed0f6c9c93b0ec8879bc1c98e78b4b01894a8bd49d23c03139cee3a0f21ffc9e984692127bc2ff7b80f5eec06e185c20a096ae6166a75ecccc3af9a18bc1ebbed66205c960015cce289e8c7e9a60060398f7bff5ea3551ead1bfb5a3d1244205185b9d2a29bc328ea22134f1d8f63b69e9b1945eab27748bcc27f2e49ceb865343da10639f2a88fa8ab983df79212201319c4c3e30b6913fee2fe03babb1e97bf958bdcccd0e3831b7c510bc8622a580241edcb0270c26cdd3cf6ab42cb08dfc2a55e64a1fd01b2c249de4eb5ef84ff089ee532f24c23cc3c3532d1b00d0db42de76f24cb0a0a0f9440b4fa649e48ea18b3223f4935c49c2079c5003ec61658690a820ad6b463ace3f7a9c134caa7cd5fc8ec57840d660070ad74a7d8eeaf653fec284a0fc971a3ee8eabb256b8c78dfcc563cd4c2b8f9d9d3e5f93b36cd02e2f28af59ad08651b522f9ae7b41ac63293c4b4d16408028addfdb8d865f5a698ecf88d499a4416a08b233b57c804199a153486f7e4d9deba0c92eb08f0e0fc15dbde453d28ac22223b7ff8407785f9f954b1da68478b63546431a9d7157a0224ac9ee84b79e8bb4a68ca55bcb7766cdc20bafa401447a1f30ca61217e416aafb632f4942ef3d01f10f1aa50d621024ee96cccd585fe392380a35c550b7b0cad17a30720a78a42b5b20889ade8f3e0b8bc7a1172173e5a8f10603b973d647ba9c99a2aa06e4724a66d22ff576bbe1eefdd320e17d59c27762d0747bb6517fc7ea73b540ecb0e4ea68895680ea08b487321049f4537213c0a9c560d5e4ccf3714060dd7a0b95042eb108d2c8badb84894019fac50248f844dc8f39387265b481d7017aaf93b0c862b0f839884ce7dc4a7ce331a7e51608a7401278d540fadf40ad3e14c659fbde9f7bd864238258e0a0e6ead05b998b4f9e8b0689152228c8cdcb911c63183ec439b7bbe2633154b6c26c9bf251d3e9ffc563b6565ab5f09e95b8862ce268ab6e86e60a23b0dc1d079463c151710039a9399a8e4f87a2c3e66ed7ef4d2871ebcccab75355a62a693f43801f079b8ce77bc95d3a957ea26be993a67e48b8814c5582909210025e196ff38eaf2dc830fa94aea4c969790af8daf083d5609fe08c384a553873447d7226c9636505842551f2019660b3106f92ff57d956936452eecab5be717f83c94527c8c1b7df788964e501235f5b6141ca4397ef8f524a037e596b9f3c0870f2a0a109b9c3a0c41bf3130727840b145925eefaff24744b635cd4f04970794f4815ab81d3a6823e71b1c6e1aeeab46227a19a9c87b2eb44b8a7a0133c33e1607c400c113640a8b0fa777993e8fa8992b1fe09c04fc33728f98e964c149d38d2af470bd3c3556126c4a05288a14f2b8ab8de2a36e721a3889f60c54d1f05278675cec6b6da464f02056612ae3882f8ccc87761a332095d4feb873cd29360f92ab6f84c1af529c1f566bd1ce1da39ac3e9617b620014a590c6c72a42eaeeb34e4bb4d25c13de9d687d3d3da5e72bfd4e2b6239b20345d64a4bfaa5281eebb7a90c0e84de247fb9402c55ed618660ec9026393e6cfbdf68b608664615b472b5dc17705f4951d69ec344adedf5300e39e34d151d51746dbeb561b8fb740bf847011e99778a168237ec6b98e71632c49c4c4d91f5d8c0fcb2c2154a21b4842845097f494d9081a4243046de60d92d12075a0a704db53ddb18f94c7fae65bbd876a7ec0799598911d7c11f5dd6917bd72c32a1602de4458eb846dc5db7172692773110d596a4583b64513e4ce299700e70c06639186a17538e5c8e35e5b1d5229b35eb9c0fe089586a5c8b0d0d7a9ba7c81efbf76c0ce5c5745d02761993554bfea895e55e8985ba20a50185c01e90043574a2ff71167a979bbda94e7590f119cea2cc900c7cee9daee93d7c3292a270504bd5530615840519b384919f0599c43ebda9c4c5b740f12a431de7b2a4d5216a48d0de8613e6df0838722f64e50dc8cf4cf8a16b76088e086b0fd5b4197295c004ea6e7bace9712f3b9435b2563177d3ed4906098642c448b87aa45e8752aaeb1cf8378ae8ba9288e78d12445ec0db62ffa253a755e300e574eb02bae1c689f62dc16085c0ce8b5239148308cd91e9b386991bbb628134c0851c336a5800f8646db2f1ac3d4e298a429006e7727fd00fbdc0eb272f85dfdd1cdd86e3f06851094378799b7b9a207e208b8dc7bcc5991c014e3217ce4ea0501f2463e4b4ab94f9cbf5cb73d7cb0a541af076f0118061366d9d59d5be613ae30bf1357969239c3d4d0c18abb921733fa1512a521e43814d9f32fa2bdee574c4a27c2c9ceb3d152b085cb7432ec2c0a12d966bb64364839c1736fe23bf58afb4289358944ee9eef3a56bc3f0fbd1cb5b800ed105ec155b18c49e57d68b68b4e6adfb62fa7c8bc4c6cd31d0a90a84f1d07b101d37f2f58d8ef31ff6b66d1118f4fac61a604ff3752ac973ad483ffcbaf9bbf54f0f8ffc4c7247134218021d585cb9d31722da0e020a89e1b15504b635bf10b00e7dffc534293713aadd7c8920c740d054a01ba31ce5a3450b024e9f3ffffffffffffffff63affbb7acb2df0615abb69489c4bbf44be1c937a594524a29316c4108c88d9f90558138ce7e78900579058305dd6aeeeed018645c71031d400104d424f1a184628ed6a7713b42576d3e925036a9ea614d0e17759f0f24943c8e6837257b337ca3033764c8d0a1e3081f4728b78c984d0bdd30336c9803c287118a3945b59a78f16af3c64711ca969dd4a60d19b3a6fa4184625c5a7cc9256ffc4c3a8c8d1a7c0ca1989ee4982135b89ad4e3c0f3218492e81ac42997d13bfd230866cb788da7e308e311e52881103e80501ca1c39c52933d85c9d260bb41ba4f2cf0f845416563a3c83775f8a2681fddbfa3e899f03e6978f4a2d4f94bec55159de9325e14436a8d87b34d6b78eca29c1d3aee4d9898c34317e5cf1e6e2b64509b9da1b6c32317a5d22b0f75559250fa448caf61230569966c9c53e386072e4ae1de9f94767578dca22474cfe5492bd9a27cd5a9934a9344dd18d5a2184f8a3fe16a428bc2aa260db9b2cda27882ccb51d46c7d450cb827371abb536b51aeda924b966a3fd279958947cce732e51322939f91eb028c80dd2f35f634bf0784539e95fd19be175aa645c51fecad85b51d03d267d671a8f66b9072bca27f77b6e51f1233ee3b18a82c9d93a49ee932a4aca8310eb12635edd3a150525e34dd0b1a2b6b74445b9426b6ae99b90e29f53144f8aebdd71b113db3445514eeaf1f33e391a844ad18a6badc7d77daa075d9ecf4d4851506f72232789493670788ca2182795a02493dda61a8aa214ba9312a5ecf4fe9c5af00845490825427e040f5014538dfaaabf92cff77fa2dc39c6d751f6698387274a92a7d0e1f5bfdb04cba31325c19498a10499339ce8e9f0e04439bec6fd9da025af949b28094a70595132c79323d24469747938e15369d8dd64a2d8bfeba536094dfb1b268a291f848adcf7b6c9b94439c89af02fa95ae258afb03ccf4cd9f2983d45c7ec9cdfaf4449c62b41e7e0a619756224373e806cd4a0b1012f4a944eb95e7fd40f26c49b4466a679f9f19ab19b6a96e2e93bb4c9a484fd9228a7cd4990266b14b93d4742ad77db4f99ddf93561e3281db246f6c60312e534dfa56b46e64f3767e0f18872093263f2134bb8ee93238a269feab09f4d439f23edb8911a51be123eabc6b4b4eace88d2a7cda96f7212f25844e10413749aa7080fca5244b964091b53fd597b6f12513c953954a7077d216c449483a7d2fba77d163a868dc7218a1d223a6b7bac2d39a919a214d2478cf7c9c953270b5112de4178f0938f8107210a623e6693f73d873e08acbc464fd5333db75d6bdb836cd07808a2ec273d5da6e6cdde63203ab5ab7f95af0051ae8d9de47b907afca12ce23e9c9cbacb21461e0f3f94e34bd89920d73e94425d3b53ad557632f0e04349091fc374123bcac5e9028f3d94cb4eec328609a593891e8ad9a79b41c5f6c8435194587152f4c724c6ca030fe593ba633c69b7c71dca3f32e7e912ca245175193264c89021a388e0618782967442972083a7cdd7a1a0757272f339128d1c98edc1830e27a1f9f6ae39281ece6f36bec9350db6a4430c1bcfd6040f399446be64f31c1487f29b8e55a7e45b93071c4aafaf9397739393b7f34609d5071e6f28c587136de2fbd6fce38682acd5d79aef3a49966d28091aa64d0a9de363ce86d286b410a2fef93f774f81c71a4a72da8ee8bc1ff45af35043b936957834c14db2bc3cd2907c88ed9998ea98678588b6fc4dad77bb29e38186728e99b3b6d5dd405ebfc719ca1f6e7ce437969534d360dbc10d93438c1986682ff0304339aba9b76bcfe9a4b91940dba183841bf0284339365cd58934c9044d7a90a154828e899a6c2fe03186626856f7b8a54497907a88a1a46557e362af95391f86d28d123b73dcec018672d4543a851226997a3dbe707dd5e9ae6bb995e5bbdcbc55f97c060f2f946dcf7492c293a4b4765d28493ae7bd30bbb8504a2d4d9250b2fc73b45b2879da350d4f623025945a28deae8e36e936f3adf2c842d94bacd251b25327138485e207252b1f34c753627c85c2c77cd22466c812cccc11aebb496a4337520a7e00414269ddfd7b3d79da6a9d099023ec76a2963227f2163aa2ad375a4e0ca554066284d29ea792b9994c9694428a501425fda4d2722242f146091e3ff2a45bc921432809a2e307297b0aa1f031e7689d217b5278902094be3fa6df98c35d677e102014e7e4eec92408f3ec491fbf28c67ce20942dc9ef8b67df8a2206f94a44788f0a317e52d732f5945989cf9e045e12f4e5d096a74ee27a1c1763976e0c08f5ddc872ecaf321de739f4c2e4afaf46ac925e8338c060a508e12243692064cf1818be2ff67c9271b774efc3e6e51ee9cfbc574902364334ff8b045319de06132a6745f7753f8a84569e6c3abf77d1a7cd0a258bb9bfaf67a624bf9318b725af98b1191d260934549ca7fc6c634ba5d37170bfe8045f164f6f63b41563bb781238c1a3a5e51ea70b2b5627228cd9e1aae786e55a4672ae5e8f2d18ae27a1a61ee694aa87c3b6e88912361634541998a4b4ddfd8f00c7caca298ba3b6a9e24078e03c1872a4a1af6e4ec699ba5a2a0a9f2e563a4b843478e1ac98c6403b3a336f0818af2e5aa98a8b752aa3c681ff8384541a611239314cdd3b6860d1c3ad474b8073e4cc177493abcbf6f68b0e5f82845a9ef7d76476ef8db67a428758cf15bfeda6afa1845b1ab9975a7e69e175b26883cd9717ecae41fa2286916d379b9ebf234fa0845496c6998187426edac41511e11276589327d7ca2e44952ea5d44fbf0443966ccc8c851d28962f84fa6a9ba1d2626e144414b091762936ca2541bd765e6cb429d68a2986da5793a6de6479928756c52b5397f67444c944d693759922e5da2e86b92eaa04ba8ba2f59a22cdb61b1a6a74a94dcfaf3b56a26a17c4489827e7f9bdcd6493041348982876d68b75b519d214994ba53cfac966c5ae21f8972dd28d36f3799ae3f240a2aea32277d25f6cdff887295647a1d3d5c57f98e2828a94d7364bc37c8be11c50c4a6ab813bda5eac388c2ff8c9244789c7df42ca2e87f1fcecdf4e993378a2889cbce194ff7892806d18fdd3c9631668388b2e8a04e563149b4a8e610a50a1525fab9c718940c51b8d0a6aaf9d66da74294f5c4850e4d69a34b8428e6f9cd7525cd4c1c0da218b322269b6cdad4ef82287afa471344be8923e38128e70fa7c164ac89517540f09d7f23f64e7f28a9cf9ba4cd781fadf74331660f6ae12f7f25d387d3fa499de46f9b0f2555af27356cca6bd77b289abdc71cb3d34329dcaa4f90d5dd1beb3c14e7444d71562789ae351eca5be2865ceae6b05adfa1344a525927f607d1931d4af2a38fdbc9a8e37d1d4a25c8ddc6d149e6ea4c8772d0e03d7ad43c8752c814fae7f7bf39cc72285989a6b5533f9d8bce369384170e05d5317512fd2596bbfb8682b576a63629265eae1bca9d4648bdcbb60d657db9f174fa938e6ad95036eb9272e22737f144d75092623cdb24f17aeba46a28864ee9693a78f4d7350d051ddf47971a71eb494543b9fc644de27e7a86a2d606f1ae314d3b9e662889197eeb7492fbc7ce3214c3a48893b43ddb29930c250d563efb2e7b1ecc3194473bb46df0520c052bdd34b2d12419250c43e9e4f0493e4925d79e100c655142b593125a9412835f285f678bae756813445e288736b3afb8cf5d9aeb427963a488754d6e1d1e17caf74966d7cc399f6cdd164a63da294bb04f99acd342c184faefda3d793b59164a259a30bbe7293ae80c0b25ed3fc95e435728e812c7acac36c6f3562827f164b62d393dc860158a17169ffec7740ea242e94cf80b8d5e7d4ca17c23d64bf22b8d49896d60520b3ea450ec11dd4a19ed486ad0d0e13a708831a33ea25074f55b0f26d69307258dfb8042395deb24ad55da4b861f4fd06dab36536bbece622e4f0c0df24fce39dfeac309e5aadf74331bc7a490d3b8616c9820213148d0f8d184829a6998d217e220a140860c1ca41c4c288512229e6489cd7c3f9650328739bd234c286eee36b126843037a9c8128a399b0c6a3ee66bb361105102aa29464813333bc868b0f18e48122c6f1041020e224748ad6b36eeecc511314239ac9df831c9e1fa83a8080539fac3674f9c74728408c54c4aa812b3079942e79121143fa89055caac24f9931121947d4d644e77759246876d8804a1a449f4d3a6dd21461d0142e124fbfb24e65b4fdbf945496fe3ec9bc891e955882fcada724257e69cb10e482f0a6626858e71ddf1420dbbf3ceda53d3d349e97117c520fa5fede4125d4d52a58bf2e8f22c959924d975e6a21c1f166a731204c145497a120d325b591620b728a7783f93d1575be453b62896924f1c757296592d4a5af5348ae97f517274060e082dd2f53a6d7d19f9ccd1711685b78dd79fce974549a82b63512ea553f8e96efeee1c162599cb5ebe4d777cb55f51b8fdd3a72393891eba00e28a7265d0646ae3e67c42a615a52a9336752631b4785851fe1825d6c7b63531dbab280932be67ce1cdba34421aa48af2c63aebe2a6b76aee6c5d3baf7e8bad1435251d0f53949df3c69082a4a1bcca489b6bb9053143bf3526555fbd264b820a628659aa8d3b641a528998923273c9c2832931052147d637594cdfd3726c25e026414c5d3e16bca4fa74c621f01228ae2b59ac8c7283ab529ab099050a881a2944992c3348a10e22efe849627ca9a54b642456c88bf209d28c76c2e25568d6be8ca06104e94a4e71c27492709f23c4f830d25d4a7c35600d944a96eee94c9d589ce9ca141345132a9b3e90f426a1e256c032413455dfb3f3977ee9c3633a33051328f265b697b8989191a7fa33400b944b14bdcd52625a6523289ad254af29aeba3ca6b9528e960926accd0e52801841298083da72fd34e46da9049980c49600b2091b8a469f1d23a80020840a21c4d7e74653a49ce32790432fa9c988413af50b723cc283e6f258979e24694fc2cfbf4468df93ccc88b2897e9332a409b288f2699c12b38bc731195644694bca654c8f5342a589f04ec4bde3743ccc7564bb3ae44e081bf91911e5d2304287a81565196c25400e5192ac6dc50493d67646431464cdf7471d8d7f93a42085284871b351d227b19418d9305fe3861837cc9f8500428892b89dfdc4750f03904194faf34ddafe247f57021144f1633cd1673569150840144d3649064d4abb99faee02903f9808207e288d3ab9d3798aefae3506a40f85d377d2494a481393523eecc1560f697968081eb4ba35716f2bbfe43b541b4fee0c62879212479507e9259aea155287c2a90932ef6353103a641fc81c8aa2e412d3f82611de9f4b103994a3cd6f7b38796b7aa301240e70e842efe46eedeef24b56c81b0a1b6e2b4bf61cdfc6e486f2c62b951f13a34e79da50d2aed9acf11b3c6f05614349f6fd1244cb354b944c8002138800b286b2bc3b55c7439403881aca4166932f55ae54299334944ff89117fd58ae39090d05d5f964350deba1a4e80cc5990d13fbeebe3f44662848f36dbb369d329462347d92ccdd3e282143490c3a8a7637bdb7228fa1a89e43cb99882c497cc550d82043060f2f234f0986a19ce274d57c6eb84c0d0c0569279fb0ea77db25f585b26c50df91fe555ef242497a9afa133b5ae9d877a1dca2574bd470a1d42563dae86c463dd12d94aec64c93ee9204102d1493507b529f4c5274d02059485fadc235e6b0b96a2c54667669b9a3b117569e19e3888a8931c8154ab6f9499d52ef5b724c02c40a65537b26ff7e6cfb6aab502eb95d76a289fd964d8592876597bc9fcc32bbb682009942f135cf7e281fb70c9717112052285b774952b5e7865032240ac5a0de77b5c931661c42400522804007500001b31c3b706801028592de3325f364e3c7f509658d6aa542f39658f2292714ed5a4bcaa097b9798434a1a0ee4c76af96c7181a8409c5fca9f294186b4c06d9120a33ae5994f0262514f4cb77126e7e3fbd360448128ae7f227d70112709b80d704eeea1e108107948c5c19e680dfa1638c1c0508c00ece045e8c1c381400801d3ac640010102906860c6a0c10d63030102d09123fd18488c1c3812300200040000000040004c1846c7183698000716d0011d3570180504a00800d0a1e3c8208000cc0e836414200066874162e4907100000ca00109c8916cf066878e19331600800030e00058630712238c29ec0087147084f15128f5888e1cf713148a1bfc33c698f584e269ed31efa4a53b4a34d878c170425935f66fd39e349d3c34d87680e3c348616c18290c05a3095863470e1a3a6ccc9891003098803576d8a0a1c3cc9891003096b023e908238561003094803576e0a0061a63c68c04809184c267f130257dc967f4d0e03e1be32c8c9463060e6aa019c86dc78d1aa8e3468d1d394e000612120ec408238c14c601c03802ce988100308c6067688b5e5a886014a19cdd3ca4c6d9134b18c12042c97bc5ad3c963a49be8650d84fc2576e0c18422827951e7ce4fb6dba3208452bb74dae319dd8270706100a325dec94981c54c658e4178ab7bdb5adc9e7115f944e4b6a98a8aa1edb89f4a278626dc9595b5e94bca39a77c9f4bea387811cd94559737510d592ee3b670c1d3350c2404417e8b9129bdc474c6e69b09de5a2707a57f4d6ccb5c85e8d03115c944d0962336a4ee2796a1688dca2a4ab6374b6bcc48b4b838daf02115b9433fdbae7843c2d1fcf183ad274ec6e20528bf376586a10619d4668318b9345c1f6427a926a359bd58ac4620d165baf3019aeb056945d5c344b7528b74e6b8e1d3822ac38297b55cb2c59310db66403a3828baca2a4b3a5f56e3c4988a8e2b24aad2e17b134adbc5351f6d46c3a94247c29e98fa0a2e4c1f2cee5739c894de41425b5ed1fb77354d7b91153944f301ddf171ba2b3454a915999c99a66eed685faba8dce75213ba4115294c4fc7092a0f37dfac551942459f3e64c2e7b1022a260b3bfec0769285ceda0153f32890d149f283314f14451afbacda396704aa813452df94ed3b7af91132591117f92aa364990fe264a3ae47d1e314296a8494d144764fc943947af30934c94ef44133469ac39410669443051f2abf953bf9a84cbea12c5cb0ccf5955abfde79925f8cc1cddb111bb9837b91205e9d64199d8d7699f8d50a2f027b7f49b124f17429328fe6a86d02945f8fc18918431b2e4d2714d9f502412695a76b8ab9e6eec9e6c97d929e963ccba61041227c31e718e28c88b6b2e29ee4afa341a228d6004dfe99ab5f39a3a27a3d95be7414972d839755a046be279e179f7ae592aa2249fd59489f12f2f5b224ad7bbf1548f0e22cad9a45bc84d9f35298f1ca22073b84faf7bd77b6fc410ac959da7659b5597ec1b2944b974d2f8e9f7ff4ff41142a00d026594204a9dd963da33dd924549204c0602a220d6631e7ee733735a07e986d220471a015e8eb4a3c60b227f3019e6b982881f8a59a2d6647e45a5eb7d3019c587b33d9c8cd283c9082392079371a3f110b943294ccc26a6a2539c1cb44349691343dc83bb2387183ab20e05a976526f36a9dbdda383c9b039988c1844e4501a5735b945475d5b53240e253fbfd6d03a6e3a9d227028bdd9aa9d9ff81bca1d4e8baec86b65c91137943667ed109e22da6dd486f36cc6bde5643fc6dae3a85dd7cb86c47f666927d1c81a8aa3aa3498c5ae86f2493fbfd72046d2505a93754cb6a8ec378286a255ed98ec30c9c41c46ce5092495895d472c40cc553a2c9b7a679925d688b48198abba1d3e7b417faf626434196a017b2e4ad4f668eb4a3c6192132869226bd926eff3fed298988a120bf59434d5499ad31128672cee41b6cfcf27d35113094c4602567a3f4fb663df28592349a4912f5f688170aa32fddec36633ab7225d288bde13facdd4e99374225c287e7db6f8cf7d7f2cb205fdce7b6d4faf8572ddc97c3e31ddb7f648160a26fe78be4db18e4147832d8285827653e6fb73e2b4760a44ae801065c27e35c71951aaed41c40a6b9bdd757ba76dc689df269dd34e7910a9c245a860326a0a25f9e9fbdcead2c4a58e8848c146240ac53299e97b6a66444ea0e032f6234f2866d9b19027662afd4fc40945138da349dc249dc628d28482d8200a864da86387592c874110056110c43008e465496b131348201038200c4683f1903c1366f9011300818b42f1702c128b43a16040128418048320044210848110048118c4209649751e851650261e6a64589db613d16ded23f87631d261b4449164da43dbff931721b03b854feb34321963c25ec1cb76cb3911fec7ff0db63da8cea92cd5a03abd17c3633452d996eb0e84f7ed8ac9ac8f63af2be38cf71bd167cb818208c02393187bd142f4e98ac476a465c55562b368971fd8254ccdcc9f4094a3507e3216fd660061a86c3ed80256f5d8e928ffa3d130b92a3203841126fd4ab1fd241dc9bcdad475c93a8343ec57610bdf03e7ec43163bdc23fe59a7192dc147458646d2aa53354cb5add908a526b72c295cdc25b25b1dab674ed135e6cc274a40c236e1ddee1ee7521f2c02217792dd7ae8a73ee6f79544bef4d42f94dc0cf5e5edf0d818d3eea4fe4fb67078f9a3e17299bfacf3be25626aa4f97e6e111a647d7285c5e24626455836688e096d26b35cca65a86d53e41ed6f34c8ad6379f6b4b4654874e97936e59deb053d332c1aae48b0f89231172211086f26db68f88431623f0fb0a59393bb25b9cd0866dd0600f1dd3b859a53a92346b7fcf546505fcbac1986db07f166046e0f16d6e93b6ed36db9a5000c35cd327f1a9a55e000a11067bb21e7b670be83664a2f375bd7de24d78ccfc7f7f152a89eab3d0b8c9ee6245990704e183a59b242d64b5886433b0b05904e76465567f712c7fab39c500c6bf21e3948fd584753f999715f6c4959e8327510d3fe6a57e0ceba8159dad4c226af0fb7bfecd9011b8d6af7ca920024b1a628b1a8a98fe02028d1d08a4f656ec313a430c44d044fe42901c6951e91c103cd61a3e240eb563f44e4684178716324076f001472c40b943a0c7f5aa6f4cc81c7804a0ace9e618fc8ceb141d6948baae47b57c23400a2ec33a3aa8434fcb87c72d4e6acdd11bb6e5ad8dbf0071b3a64d432a1f5383c8110810564f1e63e02742a547cbf11ce5318771cb5fdb14039ec8b5e73914cba4d0585c9b3bbd7fec9c36fd2464ed15dc219461cf0e81138ec64c3f5b099998dbf9fb66c9c01c2b996562879dd025e9c426f771c881bd53c7e8191ecdca6016640e2bc9611a83dff68c395837a6050ad15315c073c261661a9ee0cd0cefdcb30863e389fc7e2ba42dfc52c77a7c8a1e0ab5d00d13ca1d73a81b3e8c84b27a1df46dcb04f754c35c7f435959ed7dd2f5b3893023950b6e44b2b8d0dd0c5d1a64e266d1374d5adfd359ebd68917863a13a7d6a92e0027db71914195c29168072660be4231a58427e728477548d6ea86f835b37a90a902a1246609cc9dd768123aec619db633881b3dc9cbe64ac62d040551a6bcc9b031b8f5062066b09a32566cbb221c18bb38d17b5a292236102071e6dabb1210f6a2655928d95022a118f7688ba1ad3f2447ed8fd689597ff668647c6d52b1d6c248ea3e296ccd58e7c45ed194cbde1ac1d5e1cec2eb7d39da0902b2c771932e0688a7eeef6b9c34c2f3e32367c69cb7a7c54545c2b28d39d6e36c440df9f093baecb2e1b14ba5b04f9ce2410a88f40d17e424b297c3d1ba63fad0defc27438fb133740b53d9e271e2dd802a6e619b495a42517c7066e3e1d14d314b2b1b3dcd0958f62129e3dfbf145bc665f2d4a98accab28e60361397b6cf36b68f910d79ecec4fc78e5fc929b5fdcc583fbddfa746ebde0e6c81f9c8a2570f962f7ade0df0a19ae4f6826290743dcdf53588fc6775096f4f7e2cefd5be1a3500d4acb3a11ffee0f2d1f1360f02d1143db106b3bb4833775bc8148febb1d77533875153e45ef1d9cdbdc3f4c4059a640bfb75df955285795267b1d87c595c94bee7519cd46bbf287cfece0aa6c327ee05747473c5dd83019c3b83b4b24d436301d34efe8d83c080f35fba07bd1a34e43676515b1e44fc4edbcfbfdf807e8f443e25f641d080046833a2a2744a0b567fda5458dd5f7d5b98249a5af747a699f96fc5c00a23cf44a278f4dae861d10190be154bc4896e9a4b197c2cbd5933b63029a23dadfc3452919875c87b90d966b7f08df4596c611187dd90ad11dbbee6cfabeda8ae06eec32fd8529d3842429f39033637ef146262eec541e7b45cdd78b0d9c982422a6107ce581c1c17603819e3d568ca4a059ed64316e0eb6e725022ec6c0d343e9508ae9314af05e24ee375787f6a7c78adb3d87327d19290e75291786a7ebc40e8e8302231a3d1f0139cea710037edaa9a1676390e1c4fb1ad7f5e112bd88b4e5adbc676def4c1d9f80fc21d5c176df8cb3f2660344718da237f28f9191dd0929615eb5c1f8100c8a38e7aed9091207f808fbfa774ecb6e7af971629feb881a82c754edc6ed2fb0e4de9b322a2c5317f9f465349a1b16d9d1a4041155b0a06c27e616ade83db42bac26ee757ba304b63a20eca0a703036f987e41c13729cf30ffa3381272485e73c5843c3468270847959f99dd10523d81ccbd72bacbc8bd566ed708da2fc310f158accdf18a231b0a8c4488f1536bcc6e597323c30cd8623b784e09fd52921a67242c434258b89b4301db8444387bbe514c41456cda8ff305f5d8d6cba0ec10e284d13bb877161b6037f37513a0e3e1538c70a489e1acba1484f153af6fddf890e17dbe73a1601df7b7024168829ec55a12c8b5c7a5ac6354bf165ba44b3540bf7230d8970b5a5d49973d7ff59282e2a6fbb9e5daa20b404062f145d0285a27c72702ba5d5a4621968d4342bd948bf7653a1bf2e87224582b4586a5b2f13a30859605295e08e7b897b165a62a3276088607574cd76d374bfd056d0c5484a0cd103145bd1bbc1a399124406152bf29d245efb04c0df1e3ca032172527b825c53038508d77cc4f848058eabee4c508f4fdf60860912a4289e8d63da40024c16bb478f30ac5aadceb773441b65e1358f397770b7e45be065b6c20cb039632755743597058241fe3b81210caa51142879ce61dc6eb09a45c59dfb29e9ddac956c1872b3d64557c0ac4dc428ec2ceaa2361ef15ab06b26e5cefe622cf9f31a2c647452ce77bd17522df5087b763d3f657f55077806b2eb89f9f13f19feddcf4169ccbfaf448b08096df3ee40c65662b007b2c99c970cd0e5cfd008be333425eb950054ea26f74e7be3a315d8748e6684898ac039ba078f43af6cfa57bd336a441b69f11c76ba59ffe0b0d2a2aa64cdbb262d3b5b02333aa82550d4ab882582aaa129bd44c30360833707aac3299bba1efa7bc34fc948e116e1347d4fd1a96eda68188b8d1d3e6858d930b89ff1802c23d8b0be1b21519995a7f48a9e600522b870ef7431f50b8c60c29c0e5e778cda4d503c067dce0d06eebd7865258585d7a31ff484faacfe44c983007f4ab5f28bd56a6c51d7191a23ca74ddfd2321330b9239c1d93b2155a364d9673c2789e86826a9d7ec2635912276071222a8ad4a3d999d6334c316872315037286a9d42268d1933e71b6098928cfb648c9fdc85ac1d10a309c060d26483af7537ae7824ce79dcb1dcfdafc7ce056f3f5ef499438efd396cdf42ba7b263cea1b4c59efff5661d1891da92041b4aef5825a8a32942ba90aeb1f2d7e48c9a79ca58984485791b6e28c8b6be1833f084b861849445d4fa71f572348513d47b1014fae97672869ca8941572f45d0e5b48a3de9fba40dad830ba50c7471a8a1db29da709417e6e5451361863504ec237546105889cc030fc505953a8610c34c364f82c03cc5b264e4af46fbcb47cc332f7fbcec181d78e9fff5a217cc0a22da02a587cc8ae4e3031a71ec00e933f1636a3a22ea6366d9c9e864593427195e7f05335ecbf5114c8d2895ea85a33cb4f7f0005e5640e422d9f97602a854cad6158e2dfd0059b7140106fb9955c56bb6b70c9b3aa971bde59713d39765771afd5a6df6ce727ee2b1eabaac12aa5f500673539ef92449e84749bd3ca61f34ac20b3a86f94c9a8535fb2571131131443d8a3eb0310fcd1197486934688698d8865bd935daa1ca95145cb0523872d53a30ecc9b17db1b6061df4b6acf543f2e9364d2c951b4fc596c9346506f7515270a1eabda19d6d1e259ee2c96e03b0f99dfb22853e8fb49c31fcc6c8a18c16f4868483bd6754c49931bd184650c04fc5fcb95445a0b0c8b49621d7f4d861f17532d6102e82bd207d171d4efa70508abfbd75e058f3a18c0857ac5adcb67e2e9b97794c08a7ce27cb04296570d9f370ad5e2b44f4d419c1f6a5232b13e6094ff934075cc98a4654f47bf51bb9aec695f4ac3dd28bca364f72511c16755e58c5ad20cfe69c20c052853c8483262c91cc76accf40202d5057e452e1700c0936f25cf437c0564877e0c2309ecbcf6cd01687e51603842ea1faa78a19a882dc4f09da947516c0198f2b34d3839f57eb8717c182f9b52eed77e86085d9afb579c5a12710421f50c98110cd4ba8cee1b33e16012bfad42949c547572d8c335425063a9f389333bd4da8c9990e2666924de76c4af691b9a302b1935cd64f1dc3679fbbd2584928dd4a58a0d46499a05fa92e008b7c2fffff3b6872103dcfc557f1568d689295560b17dc6e4858200fa9392889bf0c18762628f2b7a43c08291e32d5d49ac7f34c60c832d126d5f499086c32e357c79e7b891c7d2480a4a304516949f301984c113072a3ce370ee442ef101a72a103893efc83368bdc1e79ce917640a5d25b2581ef19601564a56cd919b181ed03682ea8b1c1510642344669c3761b25c152f70794b29593b2c00273039edb6068c57b2ffe256cd5fbc41e8d096038bdabe01dcb83d4fc043b044e9c976e977a293f80047b7fc65215cc9bd0bce0097bc11c75f4ccc0d7025a8780c759023943d79aca90b6b33d90ebb0469badbeaf741821c448126041d6641db5fa6cbf25b383a35fe2822db8fba515fb5602cffe91359670f73860291a2ae7273a1c408bb1d9008cb3423fed53b557e839616bfd8e209d9e3563cc06aced594ba99536c24416124b9fa4262987e01753adfcca879026c993d4ab58adeb922b7c2a1020b60ee6443dee2c6b461ae71e8b6749c51d4ddfa142fced6ad9b4e1e9f642fe968e80bc1c35b25e655f24b21c75c04d6751c84bda981d7f2b798743833508dfd9b6760e2c2aac7e7920dd581db2c32b67349f30141518239a93c3bfcdf9b1ffc34ec572679902229f64586beb5c1f1cdc77eb1829c0d1cd6508d987eb462fee0c2b0d42c3ddc4f24453ca01d30c503af4e733090536228c634944c3e825f037c19e7889d625a28f97d0451d85a6f2f19cd2b812a4486c5b520e470a5f2010f33b781d197de325702e347d16fb195819f954a1b20f31590bdc329d2a51004f16b010911c6d15b0f8bce060778e43c36e39a921c8222983dc7dbdac73a3d41c32c5bfb9ba1a2c5553c235ea1e63aeee850563fc81614cc778b66268c6b8e73de344aa08c9cadf34949787e1339d43185cdc4db624ce9f5c06e7a7f1802216584370707c432759106b81f94cb445e2a555000b6ec56e566f92e52348cc68b18c40922e0be04b4274a315c09165f51578267438344c13e7052edd2a1d5552b3f0a32ee6941e15b81a6c6c7735602730d52693d44d022ae32824a0c7b184bf55e46c1252f34b6e612e2326eeb55919ea871a47acc32ec19ac6ff65f9bf6d774f99fd60d5f036da575e0a49350c432a625823e7db97ba3d356072681fd81efdf1ca5e9181c4effe0b12c963617d9261767795aa80422c466679d675686e077d7cf4e0d4b18db624c7999343ef7b911b35eeab1ac7a36b2ce9efdb9dd52318815eb3a5546c089440b45ebfc13b964548283845c2faac217d0cc48b3d02d2c7bc463199f93f37cc91de69dd402e126fd47017e07a490fc205148f1ea63bdd6b3216b6b3e6af6b4c0687f6d2d89154bc09aaaf36c1361ba5d4cd9733e5afae129fc4d37e7a267534b550c67256642aa52f7599b1f8de62fa6a105618d54e08c0018720104117307b322738941ad98b603f80b11ef04c88e70757767b7beadf21a12ddee344bd73fbe5810df148da82c30c3e88e470050c2397f401248196a6b795d640cfed0903f475d97803c5e00d74198d75356692597c12678deff6c967fd51a44ca748f6d1a0ee8e8cc9fbf99e5d6d01c88c0eb74653878d1ad67c1eaec2e31406b2cf584911f6dc0158b32ef8b9ec83d7d29992f2a5f05b9735dd1779ff23ce1967e6e827ddd5c7d3d747278950cd360cb1360fe9ef7f273ea66b3d88707ed34ae8db1f58e68a8d2118bd63a6b2326c1e384f49553a97700a50fed7a0601459b76f43cf20f63521d4ca1b09c294ab4f4e05a735d4e8cd3086e03b53f3570823043fb3b2f3644e5bef0b8eb9536614000c732e703cc5945402d1de7346ba39242c5d48ebc91889efd7b45e1a6cc2cf0379852612328397aeef039ec266d29baa7a1c8d1473769b57df0d4b6d4472459c97bda1750365b503d22ac907192d813225e7a0e8f36bd0ff6dfd36a7d35c83a249d8d3d4029d55d89676b92176c136323c4497491a861a40f46fa636953176234c938047cca3a741446df86ccaf23614613a7f709541c07fb58327486ba17b91b1a383811afcaca3378a8a989ce3c8d75f228bca40a8af8de3ab4e58c77526cc616202db1f6688c4d206033a0488ebc679cd820d047241a0f9221c371a09", - "0x3a65787472696e7369635f696e646578": "0x00000000", - "0x3c311d57d4daf52904616cf69648081e4e7b9012096b41c4eb3aaf947f6ea429": "0x0000", - "0x3c311d57d4daf52904616cf69648081e5e0621c4869aa60c02be9adcc98a0d1d": "0x105a595f76d16ed474bf669465f7760d8ac3a6ac23bf8e47ab0bf91ee815cba83f284a26b85f39ee4edfd315d9d679638655fa1b271f033dfa0be167dc93335844d40a5a134e831c2311b939b811bb7aee0ca571f92d52784d35c43c9fb2fde36c6233ef754398ae4ee816f8209de3791fe26eaff064c6c002bc52936bd117c425", - "0x3f1467a096bcd71a5b6a0c8155e208104e7b9012096b41c4eb3aaf947f6ea429": "0x0000", - "0x45323df7cc47150b3930e2666b0aa3134e7b9012096b41c4eb3aaf947f6ea429": "0x0200", - "0x57f8dc2f5ab09467896f47300f0424384e7b9012096b41c4eb3aaf947f6ea429": "0x0000", - "0x57f8dc2f5ab09467896f47300f0424385e0621c4869aa60c02be9adcc98a0d1d": "0x105a595f76d16ed474bf669465f7760d8ac3a6ac23bf8e47ab0bf91ee815cba83f284a26b85f39ee4edfd315d9d679638655fa1b271f033dfa0be167dc93335844d40a5a134e831c2311b939b811bb7aee0ca571f92d52784d35c43c9fb2fde36c6233ef754398ae4ee816f8209de3791fe26eaff064c6c002bc52936bd117c425", - "0x7474449cca95dc5d0c00e71735a6d17d4e7b9012096b41c4eb3aaf947f6ea429": "0x0100", - "0x79e2fe5d327165001f8232643023ed8b4e7b9012096b41c4eb3aaf947f6ea429": "0x0000", - "0x7b3237373ffdfeb1cab4222e3b520d6b4e7b9012096b41c4eb3aaf947f6ea429": "0x0200", - "0xc2261276cc9d1f8598ea4b6a74b15c2f4e7b9012096b41c4eb3aaf947f6ea429": "0x0100", - "0xc2261276cc9d1f8598ea4b6a74b15c2f57c875e4cff74148e4628f264b974c80": "0x00000000000000000000000000000000", - "0xcd5c1f6df63bc97f4a8ce37f14a50ca74e7b9012096b41c4eb3aaf947f6ea429": "0x0100", - "0xcec5070d609dd3497f72bde07fc96ba04c014e6bf8b8c2c011e7290b85696bb3048fbf15fd7501d7fa66e865f8710e3373bd7042e4ee89e363dcea7ca2f46f118d5b5962967f3b09": "0xd40a5a134e831c2311b939b811bb7aee0ca571f92d52784d35c43c9fb2fde36c", - "0xcec5070d609dd3497f72bde07fc96ba04c014e6bf8b8c2c011e7290b85696bb399b5c77abc8db9a172a5376b58ed027e2aeb7093e96e6a3c67a5562ba8dc883562cb88ceefcc3c16": "0x6233ef754398ae4ee816f8209de3791fe26eaff064c6c002bc52936bd117c425", - "0xcec5070d609dd3497f72bde07fc96ba04c014e6bf8b8c2c011e7290b85696bb3d0eaa62d5a6fc84324f063334d367a9a9de80249cc2d39127236124cd65601840387a5048afefa27": "0x5a595f76d16ed474bf669465f7760d8ac3a6ac23bf8e47ab0bf91ee815cba83f", - "0xcec5070d609dd3497f72bde07fc96ba04c014e6bf8b8c2c011e7290b85696bb3edade635cfad607bde0f015d686f4ef823353d5217a87686d3b0fb5e8a46d6652c3f217d85f2ff1a": "0x284a26b85f39ee4edfd315d9d679638655fa1b271f033dfa0be167dc93335844", - "0xcec5070d609dd3497f72bde07fc96ba04e7b9012096b41c4eb3aaf947f6ea429": "0x0000", - "0xcec5070d609dd3497f72bde07fc96ba0726380404683fc89e8233450c8aa19504779d1fc6560c09761757261805a595f76d16ed474bf669465f7760d8ac3a6ac23bf8e47ab0bf91ee815cba83f": "0x24f063334d367a9a9de80249cc2d39127236124cd65601840387a5048afefa27", - "0xcec5070d609dd3497f72bde07fc96ba0726380404683fc89e8233450c8aa19507e9356e04043d4ba6175726180284a26b85f39ee4edfd315d9d679638655fa1b271f033dfa0be167dc93335844": "0xde0f015d686f4ef823353d5217a87686d3b0fb5e8a46d6652c3f217d85f2ff1a", - "0xcec5070d609dd3497f72bde07fc96ba0726380404683fc89e8233450c8aa195096bf19dff4e0e85661757261806233ef754398ae4ee816f8209de3791fe26eaff064c6c002bc52936bd117c425": "0x72a5376b58ed027e2aeb7093e96e6a3c67a5562ba8dc883562cb88ceefcc3c16", - "0xcec5070d609dd3497f72bde07fc96ba0726380404683fc89e8233450c8aa1950a22b158098f4f2576175726180d40a5a134e831c2311b939b811bb7aee0ca571f92d52784d35c43c9fb2fde36c": "0xfa66e865f8710e3373bd7042e4ee89e363dcea7ca2f46f118d5b5962967f3b09", - "0xcec5070d609dd3497f72bde07fc96ba088dcde934c658227ee1dfafcd6e16903": "0x1024f063334d367a9a9de80249cc2d39127236124cd65601840387a5048afefa27de0f015d686f4ef823353d5217a87686d3b0fb5e8a46d6652c3f217d85f2ff1afa66e865f8710e3373bd7042e4ee89e363dcea7ca2f46f118d5b5962967f3b0972a5376b58ed027e2aeb7093e96e6a3c67a5562ba8dc883562cb88ceefcc3c16", - "0xcec5070d609dd3497f72bde07fc96ba0e0cdd062e6eaf24295ad4ccfc41d4609": "0x1024f063334d367a9a9de80249cc2d39127236124cd65601840387a5048afefa275a595f76d16ed474bf669465f7760d8ac3a6ac23bf8e47ab0bf91ee815cba83fde0f015d686f4ef823353d5217a87686d3b0fb5e8a46d6652c3f217d85f2ff1a284a26b85f39ee4edfd315d9d679638655fa1b271f033dfa0be167dc93335844fa66e865f8710e3373bd7042e4ee89e363dcea7ca2f46f118d5b5962967f3b09d40a5a134e831c2311b939b811bb7aee0ca571f92d52784d35c43c9fb2fde36c72a5376b58ed027e2aeb7093e96e6a3c67a5562ba8dc883562cb88ceefcc3c166233ef754398ae4ee816f8209de3791fe26eaff064c6c002bc52936bd117c425", - "0xd57bce545fb382c34570e5dfbf338f5e4e7b9012096b41c4eb3aaf947f6ea429": "0x0000", - "0xd5e1a2fa16732ce6906189438c0a82c64e7b9012096b41c4eb3aaf947f6ea429": "0x0000", - "0xe38f185207498abb5c213d0fb059b3d84e7b9012096b41c4eb3aaf947f6ea429": "0x0000", - "0xe38f185207498abb5c213d0fb059b3d86323ae84c43568be0d1394d5d0d522c4": "0x02000000", - "0xf0c365c3cf59d671eb72da0e7a4113c44e7b9012096b41c4eb3aaf947f6ea429": "0x0000" - }, - "childrenDefault": {} - } - } -} diff --git a/cumulus/parachains/runtimes/bridge-hubs/bridge-hub-westend/Cargo.toml b/cumulus/parachains/runtimes/bridge-hubs/bridge-hub-westend/Cargo.toml new file mode 100644 index 000000000000..5712efefa709 --- /dev/null +++ b/cumulus/parachains/runtimes/bridge-hubs/bridge-hub-westend/Cargo.toml @@ -0,0 +1,185 @@ +[package] +name = "bridge-hub-westend-runtime" +version = "0.1.0" +authors.workspace = true +edition.workspace = true +description = "Westend's BridgeHub parachain runtime" + +[build-dependencies] +substrate-wasm-builder = { path = "../../../../../substrate/utils/wasm-builder", optional = true } + +[dependencies] +codec = { package = "parity-scale-codec", version = "3.0.0", default-features = false, features = ["derive"] } +hex-literal = { version = "0.4.1" } +log = { version = "0.4.20", default-features = false } +scale-info = { version = "2.9.0", default-features = false, features = ["derive"] } +serde = { version = "1.0.188", optional = true, features = ["derive"] } +smallvec = "1.11.0" + +# Substrate +frame-benchmarking = { path = "../../../../../substrate/frame/benchmarking", default-features = false, optional = true} +frame-executive = { path = "../../../../../substrate/frame/executive", default-features = false} +frame-support = { path = "../../../../../substrate/frame/support", default-features = false} +frame-system = { path = "../../../../../substrate/frame/system", default-features = false} +frame-system-benchmarking = { path = "../../../../../substrate/frame/system/benchmarking", default-features = false, optional = true} +frame-system-rpc-runtime-api = { path = "../../../../../substrate/frame/system/rpc/runtime-api", default-features = false} +frame-try-runtime = { path = "../../../../../substrate/frame/try-runtime", default-features = false, optional = true} +pallet-aura = { path = "../../../../../substrate/frame/aura", default-features = false} +pallet-authorship = { path = "../../../../../substrate/frame/authorship", default-features = false} +pallet-balances = { path = "../../../../../substrate/frame/balances", default-features = false} +pallet-multisig = { path = "../../../../../substrate/frame/multisig", default-features = false} +pallet-session = { path = "../../../../../substrate/frame/session", default-features = false} +pallet-timestamp = { path = "../../../../../substrate/frame/timestamp", default-features = false} +pallet-transaction-payment = { path = "../../../../../substrate/frame/transaction-payment", default-features = false} +pallet-transaction-payment-rpc-runtime-api = { path = "../../../../../substrate/frame/transaction-payment/rpc/runtime-api", default-features = false} +pallet-utility = { path = "../../../../../substrate/frame/utility", default-features = false} +sp-api = { path = "../../../../../substrate/primitives/api", default-features = false} +sp-block-builder = { path = "../../../../../substrate/primitives/block-builder", default-features = false} +sp-consensus-aura = { path = "../../../../../substrate/primitives/consensus/aura", default-features = false} +sp-core = { path = "../../../../../substrate/primitives/core", default-features = false} +sp-genesis-builder = { path = "../../../../../substrate/primitives/genesis-builder", default-features = false } +sp-inherents = { path = "../../../../../substrate/primitives/inherents", default-features = false} +sp-io = { path = "../../../../../substrate/primitives/io", default-features = false} +sp-offchain = { path = "../../../../../substrate/primitives/offchain", default-features = false} +sp-runtime = { path = "../../../../../substrate/primitives/runtime", default-features = false} +sp-session = { path = "../../../../../substrate/primitives/session", default-features = false} +sp-std = { path = "../../../../../substrate/primitives/std", default-features = false} +sp-storage = { path = "../../../../../substrate/primitives/storage", default-features = false} +sp-transaction-pool = { path = "../../../../../substrate/primitives/transaction-pool", default-features = false} +sp-version = { path = "../../../../../substrate/primitives/version", default-features = false} + +# Polkadot +pallet-xcm = { path = "../../../../../polkadot/xcm/pallet-xcm", default-features = false} +pallet-xcm-benchmarks = { path = "../../../../../polkadot/xcm/pallet-xcm-benchmarks", default-features = false, optional = true } +polkadot-core-primitives = { path = "../../../../../polkadot/core-primitives", default-features = false} +polkadot-parachain-primitives = { path = "../../../../../polkadot/parachain", default-features = false} +polkadot-runtime-common = { path = "../../../../../polkadot/runtime/common", default-features = false} +xcm = { package = "staging-xcm", path = "../../../../../polkadot/xcm", default-features = false} +xcm-builder = { package = "staging-xcm-builder", path = "../../../../../polkadot/xcm/xcm-builder", default-features = false} +xcm-executor = { package = "staging-xcm-executor", path = "../../../../../polkadot/xcm/xcm-executor", default-features = false} + +# Cumulus +cumulus-pallet-aura-ext = { path = "../../../../pallets/aura-ext", default-features = false } +cumulus-pallet-dmp-queue = { path = "../../../../pallets/dmp-queue", default-features = false } +cumulus-pallet-parachain-system = { path = "../../../../pallets/parachain-system", default-features = false, features = ["parameterized-consensus-hook",] } +cumulus-pallet-session-benchmarking = { path = "../../../../pallets/session-benchmarking", default-features = false} +cumulus-pallet-xcm = { path = "../../../../pallets/xcm", default-features = false } +cumulus-pallet-xcmp-queue = { path = "../../../../pallets/xcmp-queue", default-features = false } +cumulus-primitives-core = { path = "../../../../primitives/core", default-features = false } +cumulus-primitives-utility = { path = "../../../../primitives/utility", default-features = false } +pallet-collator-selection = { path = "../../../../pallets/collator-selection", default-features = false } +parachain-info = { path = "../../../pallets/parachain-info", default-features = false } +parachains-common = { path = "../../../common", default-features = false } + +[dev-dependencies] +bridge-hub-test-utils = { path = "../test-utils" } + +[features] +default = [ "std" ] +std = [ + "codec/std", + "cumulus-pallet-aura-ext/std", + "cumulus-pallet-dmp-queue/std", + "cumulus-pallet-parachain-system/std", + "cumulus-pallet-session-benchmarking/std", + "cumulus-pallet-xcm/std", + "cumulus-pallet-xcmp-queue/std", + "cumulus-primitives-core/std", + "cumulus-primitives-utility/std", + "frame-benchmarking?/std", + "frame-executive/std", + "frame-support/std", + "frame-system-benchmarking?/std", + "frame-system-rpc-runtime-api/std", + "frame-system/std", + "frame-try-runtime?/std", + "log/std", + "pallet-aura/std", + "pallet-authorship/std", + "pallet-balances/std", + "pallet-collator-selection/std", + "pallet-multisig/std", + "pallet-session/std", + "pallet-timestamp/std", + "pallet-transaction-payment-rpc-runtime-api/std", + "pallet-transaction-payment/std", + "pallet-utility/std", + "pallet-xcm-benchmarks?/std", + "pallet-xcm/std", + "parachain-info/std", + "parachains-common/std", + "polkadot-core-primitives/std", + "polkadot-parachain-primitives/std", + "polkadot-runtime-common/std", + "scale-info/std", + "serde", + "sp-api/std", + "sp-block-builder/std", + "sp-consensus-aura/std", + "sp-core/std", + "sp-genesis-builder/std", + "sp-inherents/std", + "sp-io/std", + "sp-offchain/std", + "sp-runtime/std", + "sp-session/std", + "sp-std/std", + "sp-storage/std", + "sp-transaction-pool/std", + "sp-version/std", + "substrate-wasm-builder", + "xcm-builder/std", + "xcm-executor/std", + "xcm/std", +] + +runtime-benchmarks = [ + "cumulus-pallet-parachain-system/runtime-benchmarks", + "cumulus-pallet-session-benchmarking/runtime-benchmarks", + "cumulus-pallet-xcmp-queue/runtime-benchmarks", + "cumulus-primitives-utility/runtime-benchmarks", + "frame-benchmarking/runtime-benchmarks", + "frame-support/runtime-benchmarks", + "frame-system-benchmarking/runtime-benchmarks", + "frame-system/runtime-benchmarks", + "pallet-balances/runtime-benchmarks", + "pallet-collator-selection/runtime-benchmarks", + "pallet-multisig/runtime-benchmarks", + "pallet-timestamp/runtime-benchmarks", + "pallet-utility/runtime-benchmarks", + "pallet-xcm-benchmarks/runtime-benchmarks", + "pallet-xcm/runtime-benchmarks", + "parachains-common/runtime-benchmarks", + "polkadot-parachain-primitives/runtime-benchmarks", + "polkadot-runtime-common/runtime-benchmarks", + "sp-runtime/runtime-benchmarks", + "xcm-builder/runtime-benchmarks", + "xcm-executor/runtime-benchmarks", +] + +try-runtime = [ + "cumulus-pallet-aura-ext/try-runtime", + "cumulus-pallet-dmp-queue/try-runtime", + "cumulus-pallet-parachain-system/try-runtime", + "cumulus-pallet-xcm/try-runtime", + "cumulus-pallet-xcmp-queue/try-runtime", + "frame-executive/try-runtime", + "frame-support/try-runtime", + "frame-system/try-runtime", + "frame-try-runtime/try-runtime", + "pallet-aura/try-runtime", + "pallet-authorship/try-runtime", + "pallet-balances/try-runtime", + "pallet-collator-selection/try-runtime", + "pallet-multisig/try-runtime", + "pallet-session/try-runtime", + "pallet-timestamp/try-runtime", + "pallet-transaction-payment/try-runtime", + "pallet-utility/try-runtime", + "pallet-xcm/try-runtime", + "parachain-info/try-runtime", + "polkadot-runtime-common/try-runtime", + "sp-runtime/try-runtime", +] + +experimental = [ "pallet-aura/experimental" ] diff --git a/cumulus/parachains/runtimes/bridge-hubs/bridge-hub-westend/build.rs b/cumulus/parachains/runtimes/bridge-hubs/bridge-hub-westend/build.rs new file mode 100644 index 000000000000..60f8a125129f --- /dev/null +++ b/cumulus/parachains/runtimes/bridge-hubs/bridge-hub-westend/build.rs @@ -0,0 +1,26 @@ +// 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. + +#[cfg(feature = "std")] +fn main() { + substrate_wasm_builder::WasmBuilder::new() + .with_current_project() + .export_heap_base() + .import_memory() + .build() +} + +#[cfg(not(feature = "std"))] +fn main() {} diff --git a/cumulus/parachains/runtimes/bridge-hubs/bridge-hub-westend/src/lib.rs b/cumulus/parachains/runtimes/bridge-hubs/bridge-hub-westend/src/lib.rs new file mode 100644 index 000000000000..ac66f383c17a --- /dev/null +++ b/cumulus/parachains/runtimes/bridge-hubs/bridge-hub-westend/src/lib.rs @@ -0,0 +1,798 @@ +// Copyright (C) Parity Technologies (UK) Ltd. +// This file is part of Cumulus. + +// Cumulus 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. + +// Cumulus 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 Cumulus. If not, see . + +#![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"] + +// Make the WASM binary available. +#[cfg(feature = "std")] +include!(concat!(env!("OUT_DIR"), "/wasm_binary.rs")); + +mod weights; +pub mod xcm_config; + +use cumulus_pallet_parachain_system::RelayNumberStrictlyIncreases; +use sp_api::impl_runtime_apis; +use sp_core::{crypto::KeyTypeId, OpaqueMetadata}; +use sp_runtime::{ + create_runtime_str, generic, impl_opaque_keys, + traits::{AccountIdLookup, BlakeTwo256, Block as BlockT}, + transaction_validity::{TransactionSource, TransactionValidity}, + ApplyExtrinsicResult, +}; + +use sp_std::prelude::*; +#[cfg(feature = "std")] +use sp_version::NativeVersion; +use sp_version::RuntimeVersion; + +use frame_support::{ + construct_runtime, + dispatch::DispatchClass, + genesis_builder_helper::{build_config, create_default_config}, + parameter_types, + traits::{ConstBool, ConstU32, ConstU64, ConstU8, EitherOfDiverse, Everything}, + weights::{ConstantMultiplier, Weight}, + PalletId, +}; +use frame_system::{ + limits::{BlockLength, BlockWeights}, + EnsureRoot, +}; +use pallet_xcm::{EnsureXcm, IsVoiceOfBody}; +pub use sp_consensus_aura::sr25519::AuthorityId as AuraId; +pub use sp_runtime::{MultiAddress, Perbill, Permill}; +use xcm_config::{ + FellowshipLocation, GovernanceLocation, XcmConfig, XcmOriginToTransactDispatchOrigin, +}; + +#[cfg(any(feature = "std", test))] +pub use sp_runtime::BuildStorage; + +use polkadot_runtime_common::{BlockHashCount, SlowAdjustingFeeUpdate}; + +use weights::{BlockExecutionWeight, ExtrinsicBaseWeight, RocksDbWeight}; + +use parachains_common::{ + impls::DealWithFees, + westend::{consensus::*, currency::*, fee::WeightToFee}, + AccountId, Balance, BlockNumber, Hash, Header, Nonce, Signature, AVERAGE_ON_INITIALIZE_RATIO, + HOURS, MAXIMUM_BLOCK_WEIGHT, NORMAL_DISPATCH_RATIO, SLOT_DURATION, +}; + +// XCM Imports +use xcm::latest::prelude::BodyId; +use xcm_executor::XcmExecutor; + +/// The address format for describing accounts. +pub type Address = MultiAddress; + +/// Block type as expected by this runtime. +pub type Block = generic::Block; + +/// A Block signed with a Justification +pub type SignedBlock = generic::SignedBlock; + +/// BlockId type as expected by this runtime. +pub type BlockId = generic::BlockId; + +/// The SignedExtension to the basic transaction logic. +pub type SignedExtra = ( + frame_system::CheckNonZeroSender, + frame_system::CheckSpecVersion, + frame_system::CheckTxVersion, + frame_system::CheckGenesis, + frame_system::CheckEra, + frame_system::CheckNonce, + frame_system::CheckWeight, + pallet_transaction_payment::ChargeTransactionPayment, +); + +/// Unchecked extrinsic type as expected by this runtime. +pub type UncheckedExtrinsic = + generic::UncheckedExtrinsic; + +/// Migrations to apply on runtime upgrade. +pub type Migrations = (pallet_collator_selection::migration::v1::MigrateToV1,); + +/// Executive: handles dispatch to the various modules. +pub type Executive = frame_executive::Executive< + Runtime, + Block, + frame_system::ChainContext, + Runtime, + AllPalletsWithSystem, + Migrations, +>; + +impl_opaque_keys! { + pub struct SessionKeys { + pub aura: Aura, + } +} + +#[sp_version::runtime_version] +pub const VERSION: RuntimeVersion = RuntimeVersion { + spec_name: create_runtime_str!("bridge-hub-westend"), + impl_name: create_runtime_str!("bridge-hub-westend"), + authoring_version: 1, + spec_version: 10000, + impl_version: 0, + apis: RUNTIME_API_VERSIONS, + transaction_version: 3, + state_version: 1, +}; + +/// The version information used to identify this runtime when compiled natively. +#[cfg(feature = "std")] +pub fn native_version() -> NativeVersion { + NativeVersion { runtime_version: VERSION, can_author_with: Default::default() } +} + +parameter_types! { + pub const Version: RuntimeVersion = VERSION; + pub RuntimeBlockLength: BlockLength = + BlockLength::max_with_normal_ratio(5 * 1024 * 1024, NORMAL_DISPATCH_RATIO); + pub RuntimeBlockWeights: BlockWeights = BlockWeights::builder() + .base_block(BlockExecutionWeight::get()) + .for_class(DispatchClass::all(), |weights| { + weights.base_extrinsic = ExtrinsicBaseWeight::get(); + }) + .for_class(DispatchClass::Normal, |weights| { + weights.max_total = Some(NORMAL_DISPATCH_RATIO * MAXIMUM_BLOCK_WEIGHT); + }) + .for_class(DispatchClass::Operational, |weights| { + weights.max_total = Some(MAXIMUM_BLOCK_WEIGHT); + // Operational transactions have some extra reserved space, so that they + // are included even if block reached `MAXIMUM_BLOCK_WEIGHT`. + weights.reserved = Some( + MAXIMUM_BLOCK_WEIGHT - NORMAL_DISPATCH_RATIO * MAXIMUM_BLOCK_WEIGHT + ); + }) + .avg_block_initialization(AVERAGE_ON_INITIALIZE_RATIO) + .build_or_panic(); + pub const SS58Prefix: u8 = 2; +} + +// Configure FRAME pallets to include in runtime. + +impl frame_system::Config for Runtime { + /// The identifier used to distinguish between accounts. + type AccountId = AccountId; + /// The aggregated dispatch type that is available for extrinsics. + type RuntimeCall = RuntimeCall; + /// The lookup mechanism to get account ID from whatever is passed in dispatchers. + type Lookup = AccountIdLookup; + /// The index type for storing how many extrinsics an account has signed. + type Nonce = Nonce; + /// The type for hashing blocks and tries. + type Hash = Hash; + /// The hashing algorithm used. + type Hashing = BlakeTwo256; + /// The block type. + type Block = Block; + /// The ubiquitous event type. + type RuntimeEvent = RuntimeEvent; + /// The ubiquitous origin type. + type RuntimeOrigin = RuntimeOrigin; + /// Maximum number of block number to block hash mappings to keep (oldest pruned first). + type BlockHashCount = BlockHashCount; + /// Runtime version. + type Version = Version; + /// Converts a module to an index of this module in the runtime. + type PalletInfo = PalletInfo; + /// The data to be stored in an account. + type AccountData = pallet_balances::AccountData; + /// What to do if a new account is created. + type OnNewAccount = (); + /// What to do if an account is fully reaped from the system. + type OnKilledAccount = (); + /// The weight of database operations that the runtime can invoke. + type DbWeight = RocksDbWeight; + /// The basic call filter to use in dispatchable. + type BaseCallFilter = Everything; + /// Weight information for the extrinsics of this pallet. + type SystemWeightInfo = weights::frame_system::WeightInfo; + /// Block & extrinsics weights: base values and limits. + type BlockWeights = RuntimeBlockWeights; + /// The maximum length of a block (in bytes). + type BlockLength = RuntimeBlockLength; + type SS58Prefix = SS58Prefix; + /// The action to take on a Runtime Upgrade + type OnSetCode = cumulus_pallet_parachain_system::ParachainSetCode; + type MaxConsumers = ConstU32<16>; +} + +impl pallet_timestamp::Config for Runtime { + /// A timestamp: milliseconds since the unix epoch. + type Moment = u64; + type OnTimestampSet = Aura; + type MinimumPeriod = ConstU64<{ SLOT_DURATION / 2 }>; + type WeightInfo = weights::pallet_timestamp::WeightInfo; +} + +impl pallet_authorship::Config for Runtime { + type FindAuthor = pallet_session::FindAccountFromAuthorIndex; + type EventHandler = (CollatorSelection,); +} + +parameter_types! { + pub const ExistentialDeposit: Balance = EXISTENTIAL_DEPOSIT; +} + +impl pallet_balances::Config for Runtime { + /// The type for recording an account's balance. + type Balance = Balance; + type DustRemoval = (); + /// The ubiquitous event type. + type RuntimeEvent = RuntimeEvent; + type ExistentialDeposit = ExistentialDeposit; + type AccountStore = System; + type WeightInfo = weights::pallet_balances::WeightInfo; + type MaxLocks = ConstU32<50>; + type MaxReserves = ConstU32<50>; + type ReserveIdentifier = [u8; 8]; + type RuntimeHoldReason = RuntimeHoldReason; + type FreezeIdentifier = (); + type MaxHolds = ConstU32<0>; + type MaxFreezes = ConstU32<0>; +} + +parameter_types! { + /// Relay Chain `TransactionByteFee` / 10 + pub const TransactionByteFee: Balance = MILLICENTS; +} + +impl pallet_transaction_payment::Config for Runtime { + type RuntimeEvent = RuntimeEvent; + type OnChargeTransaction = + pallet_transaction_payment::CurrencyAdapter>; + type OperationalFeeMultiplier = ConstU8<5>; + type WeightToFee = WeightToFee; + type LengthToFee = ConstantMultiplier; + type FeeMultiplierUpdate = SlowAdjustingFeeUpdate; +} + +parameter_types! { + pub const ReservedXcmpWeight: Weight = MAXIMUM_BLOCK_WEIGHT.saturating_div(4); + pub const ReservedDmpWeight: Weight = MAXIMUM_BLOCK_WEIGHT.saturating_div(4); +} + +impl cumulus_pallet_parachain_system::Config for Runtime { + type RuntimeEvent = RuntimeEvent; + type OnSystemEvent = (); + type SelfParaId = parachain_info::Pallet; + type OutboundXcmpMessageSource = XcmpQueue; + type DmpMessageHandler = DmpQueue; + type ReservedDmpWeight = ReservedDmpWeight; + type XcmpMessageHandler = XcmpQueue; + type ReservedXcmpWeight = ReservedXcmpWeight; + type CheckAssociatedRelayNumber = RelayNumberStrictlyIncreases; + type ConsensusHook = cumulus_pallet_aura_ext::FixedVelocityConsensusHook< + Runtime, + RELAY_CHAIN_SLOT_DURATION_MILLIS, + BLOCK_PROCESSING_VELOCITY, + UNINCLUDED_SEGMENT_CAPACITY, + >; +} + +impl parachain_info::Config for Runtime {} + +impl cumulus_pallet_aura_ext::Config for Runtime {} + +parameter_types! { + // Fellows pluralistic body. + pub const FellowsBodyId: BodyId = BodyId::Technical; +} + +/// Privileged origin that represents Root or Fellows pluralistic body. +pub type RootOrFellows = EitherOfDiverse< + EnsureRoot, + EnsureXcm>, +>; + +impl cumulus_pallet_xcmp_queue::Config for Runtime { + type RuntimeEvent = RuntimeEvent; + type XcmExecutor = XcmExecutor; + type ChannelInfo = ParachainSystem; + type VersionWrapper = PolkadotXcm; + type ExecuteOverweightOrigin = EnsureRoot; + type ControllerOrigin = RootOrFellows; + type ControllerOriginConverter = XcmOriginToTransactDispatchOrigin; + type WeightInfo = weights::cumulus_pallet_xcmp_queue::WeightInfo; + type PriceForSiblingDelivery = (); +} + +impl cumulus_pallet_dmp_queue::Config for Runtime { + type RuntimeEvent = RuntimeEvent; + type XcmExecutor = XcmExecutor; + type ExecuteOverweightOrigin = EnsureRoot; +} + +pub const PERIOD: u32 = 6 * HOURS; +pub const OFFSET: u32 = 0; + +impl pallet_session::Config for Runtime { + type RuntimeEvent = RuntimeEvent; + type ValidatorId = ::AccountId; + // we don't have stash and controller, thus we don't need the convert as well. + type ValidatorIdOf = pallet_collator_selection::IdentityCollator; + type ShouldEndSession = pallet_session::PeriodicSessions, ConstU32>; + type NextSessionRotation = pallet_session::PeriodicSessions, ConstU32>; + type SessionManager = CollatorSelection; + // Essentially just Aura, but let's be pedantic. + type SessionHandler = ::KeyTypeIdProviders; + type Keys = SessionKeys; + type WeightInfo = weights::pallet_session::WeightInfo; +} + +impl pallet_aura::Config for Runtime { + type AuthorityId = AuraId; + type DisabledValidators = (); + type MaxAuthorities = ConstU32<100_000>; + type AllowMultipleBlocksPerSlot = ConstBool; + #[cfg(feature = "experimental")] + type SlotDuration = pallet_aura::MinimumPeriodTimesTwo; +} + +parameter_types! { + pub const PotId: PalletId = PalletId(*b"PotStake"); + pub const SessionLength: BlockNumber = 6 * HOURS; + // StakingAdmin pluralistic body. + pub const StakingAdminBodyId: BodyId = BodyId::Defense; +} + +/// We allow Root and the `StakingAdmin` to execute privileged collator selection operations. +pub type CollatorSelectionUpdateOrigin = EitherOfDiverse< + EnsureRoot, + EnsureXcm>, +>; + +impl pallet_collator_selection::Config for Runtime { + type RuntimeEvent = RuntimeEvent; + type Currency = Balances; + type UpdateOrigin = CollatorSelectionUpdateOrigin; + type PotId = PotId; + type MaxCandidates = ConstU32<100>; + type MinEligibleCollators = ConstU32<4>; + type MaxInvulnerables = ConstU32<20>; + // should be a multiple of session or things will get inconsistent + type KickThreshold = ConstU32; + type ValidatorId = ::AccountId; + type ValidatorIdOf = pallet_collator_selection::IdentityCollator; + type ValidatorRegistration = Session; + type WeightInfo = weights::pallet_collator_selection::WeightInfo; +} + +parameter_types! { + // One storage item; key size is 32; value is size 4+4+16+32 bytes = 56 bytes. + pub const DepositBase: Balance = deposit(1, 88); + // Additional storage item size of 32 bytes. + pub const DepositFactor: Balance = deposit(0, 32); +} + +impl pallet_multisig::Config for Runtime { + type RuntimeEvent = RuntimeEvent; + type RuntimeCall = RuntimeCall; + type Currency = Balances; + type DepositBase = DepositBase; + type DepositFactor = DepositFactor; + type MaxSignatories = ConstU32<100>; + type WeightInfo = weights::pallet_multisig::WeightInfo; +} + +impl pallet_utility::Config for Runtime { + type RuntimeEvent = RuntimeEvent; + type RuntimeCall = RuntimeCall; + type PalletsOrigin = OriginCaller; + type WeightInfo = weights::pallet_utility::WeightInfo; +} + +// Create the runtime by composing the FRAME pallets that were previously configured. +construct_runtime!( + pub enum Runtime + { + // System support stuff. + System: frame_system::{Pallet, Call, Config, Storage, Event} = 0, + ParachainSystem: cumulus_pallet_parachain_system::{ + Pallet, Call, Config, Storage, Inherent, Event, ValidateUnsigned, + } = 1, + Timestamp: pallet_timestamp::{Pallet, Call, Storage, Inherent} = 2, + ParachainInfo: parachain_info::{Pallet, Storage, Config} = 3, + + // Monetary stuff. + Balances: pallet_balances::{Pallet, Call, Storage, Config, Event} = 10, + TransactionPayment: pallet_transaction_payment::{Pallet, Storage, Event} = 11, + + // Collator support. The order of these 4 are important and shall not change. + Authorship: pallet_authorship::{Pallet, Storage} = 20, + CollatorSelection: pallet_collator_selection::{Pallet, Call, Storage, Event, Config} = 21, + Session: pallet_session::{Pallet, Call, Storage, Event, Config} = 22, + Aura: pallet_aura::{Pallet, Storage, Config} = 23, + AuraExt: cumulus_pallet_aura_ext::{Pallet, Storage, Config} = 24, + + // XCM helpers. + XcmpQueue: cumulus_pallet_xcmp_queue::{Pallet, Call, Storage, Event} = 30, + PolkadotXcm: pallet_xcm::{Pallet, Call, Event, Origin, Config} = 31, + CumulusXcm: cumulus_pallet_xcm::{Pallet, Event, Origin} = 32, + DmpQueue: cumulus_pallet_dmp_queue::{Pallet, Call, Storage, Event} = 33, + + // Handy utilities. + Utility: pallet_utility::{Pallet, Call, Event} = 40, + Multisig: pallet_multisig::{Pallet, Call, Storage, Event} = 41, + } +); + +#[cfg(feature = "runtime-benchmarks")] +#[macro_use] +extern crate frame_benchmarking; + +#[cfg(feature = "runtime-benchmarks")] +mod benches { + define_benchmarks!( + [frame_system, SystemBench::] + [pallet_balances, Balances] + [pallet_multisig, Multisig] + [pallet_session, SessionBench::] + [pallet_utility, Utility] + [pallet_timestamp, Timestamp] + [pallet_collator_selection, CollatorSelection] + [cumulus_pallet_xcmp_queue, XcmpQueue] + // XCM + [pallet_xcm, PolkadotXcm] + // NOTE: Make sure you point to the individual modules below. + [pallet_xcm_benchmarks::fungible, XcmBalances] + [pallet_xcm_benchmarks::generic, XcmGeneric] + ); +} + +impl_runtime_apis! { + impl sp_consensus_aura::AuraApi for Runtime { + fn slot_duration() -> sp_consensus_aura::SlotDuration { + sp_consensus_aura::SlotDuration::from_millis(Aura::slot_duration()) + } + + fn authorities() -> Vec { + Aura::authorities().into_inner() + } + } + + impl sp_api::Core for Runtime { + fn version() -> RuntimeVersion { + VERSION + } + + fn execute_block(block: Block) { + Executive::execute_block(block) + } + + fn initialize_block(header: &::Header) { + Executive::initialize_block(header) + } + } + + impl sp_api::Metadata for Runtime { + fn metadata() -> OpaqueMetadata { + OpaqueMetadata::new(Runtime::metadata().into()) + } + + fn metadata_at_version(version: u32) -> Option { + Runtime::metadata_at_version(version) + } + + fn metadata_versions() -> sp_std::vec::Vec { + Runtime::metadata_versions() + } + } + + impl sp_block_builder::BlockBuilder for Runtime { + fn apply_extrinsic(extrinsic: ::Extrinsic) -> ApplyExtrinsicResult { + Executive::apply_extrinsic(extrinsic) + } + + fn finalize_block() -> ::Header { + Executive::finalize_block() + } + + fn inherent_extrinsics(data: sp_inherents::InherentData) -> Vec<::Extrinsic> { + data.create_extrinsics() + } + + fn check_inherents( + block: Block, + data: sp_inherents::InherentData, + ) -> sp_inherents::CheckInherentsResult { + data.check_extrinsics(&block) + } + } + + impl sp_transaction_pool::runtime_api::TaggedTransactionQueue for Runtime { + fn validate_transaction( + source: TransactionSource, + tx: ::Extrinsic, + block_hash: ::Hash, + ) -> TransactionValidity { + Executive::validate_transaction(source, tx, block_hash) + } + } + + impl sp_offchain::OffchainWorkerApi for Runtime { + fn offchain_worker(header: &::Header) { + Executive::offchain_worker(header) + } + } + + impl sp_session::SessionKeys for Runtime { + fn generate_session_keys(seed: Option>) -> Vec { + SessionKeys::generate(seed) + } + + fn decode_session_keys( + encoded: Vec, + ) -> Option, KeyTypeId)>> { + SessionKeys::decode_into_raw_public_keys(&encoded) + } + } + + impl frame_system_rpc_runtime_api::AccountNonceApi for Runtime { + fn account_nonce(account: AccountId) -> Nonce { + System::account_nonce(account) + } + } + + impl pallet_transaction_payment_rpc_runtime_api::TransactionPaymentApi for Runtime { + fn query_info( + uxt: ::Extrinsic, + len: u32, + ) -> pallet_transaction_payment_rpc_runtime_api::RuntimeDispatchInfo { + TransactionPayment::query_info(uxt, len) + } + fn query_fee_details( + uxt: ::Extrinsic, + len: u32, + ) -> pallet_transaction_payment::FeeDetails { + TransactionPayment::query_fee_details(uxt, len) + } + fn query_weight_to_fee(weight: Weight) -> Balance { + TransactionPayment::weight_to_fee(weight) + } + fn query_length_to_fee(length: u32) -> Balance { + TransactionPayment::length_to_fee(length) + } + } + + impl pallet_transaction_payment_rpc_runtime_api::TransactionPaymentCallApi + for Runtime + { + fn query_call_info( + call: RuntimeCall, + len: u32, + ) -> pallet_transaction_payment::RuntimeDispatchInfo { + TransactionPayment::query_call_info(call, len) + } + fn query_call_fee_details( + call: RuntimeCall, + len: u32, + ) -> pallet_transaction_payment::FeeDetails { + TransactionPayment::query_call_fee_details(call, len) + } + fn query_weight_to_fee(weight: Weight) -> Balance { + TransactionPayment::weight_to_fee(weight) + } + fn query_length_to_fee(length: u32) -> Balance { + TransactionPayment::length_to_fee(length) + } + } + + impl cumulus_primitives_core::CollectCollationInfo for Runtime { + fn collect_collation_info(header: &::Header) -> cumulus_primitives_core::CollationInfo { + ParachainSystem::collect_collation_info(header) + } + } + + #[cfg(feature = "try-runtime")] + impl frame_try_runtime::TryRuntime for Runtime { + fn on_runtime_upgrade(checks: frame_try_runtime::UpgradeCheckSelect) -> (Weight, Weight) { + let weight = Executive::try_runtime_upgrade(checks).unwrap(); + (weight, RuntimeBlockWeights::get().max_block) + } + + fn execute_block( + block: Block, + state_root_check: bool, + signature_check: bool, + select: frame_try_runtime::TryStateSelect, + ) -> Weight { + // NOTE: intentional unwrap: we don't want to propagate the error backwards, and want to + // have a backtrace here. + Executive::try_execute_block(block, state_root_check, signature_check, select).unwrap() + } + } + + #[cfg(feature = "runtime-benchmarks")] + impl frame_benchmarking::Benchmark for Runtime { + fn benchmark_metadata(extra: bool) -> ( + Vec, + Vec, + ) { + use frame_benchmarking::{Benchmarking, BenchmarkList}; + use frame_support::traits::StorageInfoTrait; + use frame_system_benchmarking::Pallet as SystemBench; + use cumulus_pallet_session_benchmarking::Pallet as SessionBench; + + // This is defined once again in dispatch_benchmark, because list_benchmarks! + // and add_benchmarks! are macros exported by define_benchmarks! macros and those types + // are referenced in that call. + type XcmBalances = pallet_xcm_benchmarks::fungible::Pallet::; + type XcmGeneric = pallet_xcm_benchmarks::generic::Pallet::; + + let mut list = Vec::::new(); + list_benchmarks!(list, extra); + + let storage_info = AllPalletsWithSystem::storage_info(); + (list, storage_info) + } + + fn dispatch_benchmark( + config: frame_benchmarking::BenchmarkConfig + ) -> Result, sp_runtime::RuntimeString> { + use frame_benchmarking::{Benchmarking, BenchmarkBatch, BenchmarkError}; + use sp_storage::TrackedStorageKey; + + use frame_system_benchmarking::Pallet as SystemBench; + impl frame_system_benchmarking::Config for Runtime { + fn setup_set_code_requirements(code: &sp_std::vec::Vec) -> Result<(), BenchmarkError> { + ParachainSystem::initialize_for_set_code_benchmark(code.len() as u32); + Ok(()) + } + + fn verify_set_code() { + System::assert_last_event(cumulus_pallet_parachain_system::Event::::ValidationFunctionStored.into()); + } + } + + use cumulus_pallet_session_benchmarking::Pallet as SessionBench; + impl cumulus_pallet_session_benchmarking::Config for Runtime {} + + use xcm::latest::prelude::*; + use xcm_config::KsmRelayLocation; + + impl pallet_xcm_benchmarks::Config for Runtime { + type XcmConfig = xcm_config::XcmConfig; + type AccountIdConverter = xcm_config::LocationToAccountId; + fn valid_destination() -> Result { + Ok(KsmRelayLocation::get()) + } + fn worst_case_holding(_depositable_count: u32) -> MultiAssets { + // just concrete assets according to relay chain. + let assets: Vec = vec![ + MultiAsset { + id: Concrete(KsmRelayLocation::get()), + fun: Fungible(1_000_000 * UNITS), + } + ]; + assets.into() + } + } + + parameter_types! { + pub const TrustedTeleporter: Option<(MultiLocation, MultiAsset)> = Some(( + KsmRelayLocation::get(), + MultiAsset { fun: Fungible(UNITS), id: Concrete(KsmRelayLocation::get()) }, + )); + pub const CheckedAccount: Option<(AccountId, xcm_builder::MintLocation)> = None; + pub const TrustedReserve: Option<(MultiLocation, MultiAsset)> = None; + } + + impl pallet_xcm_benchmarks::fungible::Config for Runtime { + type TransactAsset = Balances; + + type CheckedAccount = CheckedAccount; + type TrustedTeleporter = TrustedTeleporter; + type TrustedReserve = TrustedReserve; + + fn get_multi_asset() -> MultiAsset { + MultiAsset { + id: Concrete(KsmRelayLocation::get()), + fun: Fungible(UNITS), + } + } + } + + impl pallet_xcm_benchmarks::generic::Config for Runtime { + type RuntimeCall = RuntimeCall; + + fn worst_case_response() -> (u64, Response) { + (0u64, Response::Version(Default::default())) + } + + fn worst_case_asset_exchange() -> Result<(MultiAssets, MultiAssets), BenchmarkError> { + Err(BenchmarkError::Skip) + } + + fn universal_alias() -> Result<(MultiLocation, Junction), BenchmarkError> { + Err(BenchmarkError::Skip) + } + + fn transact_origin_and_runtime_call() -> Result<(MultiLocation, RuntimeCall), BenchmarkError> { + Ok((KsmRelayLocation::get(), frame_system::Call::remark_with_event { remark: vec![] }.into())) + } + + fn subscribe_origin() -> Result { + Ok(KsmRelayLocation::get()) + } + + fn claimable_asset() -> Result<(MultiLocation, MultiLocation, MultiAssets), BenchmarkError> { + let origin = KsmRelayLocation::get(); + let assets: MultiAssets = (Concrete(KsmRelayLocation::get()), 1_000 * UNITS).into(); + let ticket = MultiLocation { parents: 0, interior: Here }; + Ok((origin, ticket, assets)) + } + + fn unlockable_asset() -> Result<(MultiLocation, MultiLocation, MultiAsset), BenchmarkError> { + Err(BenchmarkError::Skip) + } + + fn export_message_origin_and_destination( + ) -> Result<(MultiLocation, NetworkId, InteriorMultiLocation), BenchmarkError> { + Err(BenchmarkError::Skip) + } + + fn alias_origin() -> Result<(MultiLocation, MultiLocation), BenchmarkError> { + Err(BenchmarkError::Skip) + } + } + + type XcmBalances = pallet_xcm_benchmarks::fungible::Pallet::; + type XcmGeneric = pallet_xcm_benchmarks::generic::Pallet::; + + let whitelist: Vec = vec![ + // Block Number + hex_literal::hex!("26aa394eea5630e07c48ae0c9558cef702a5c1b19ab7a04f536c519aca4983ac").to_vec().into(), + // Total Issuance + hex_literal::hex!("c2261276cc9d1f8598ea4b6a74b15c2f57c875e4cff74148e4628f264b974c80").to_vec().into(), + // Execution Phase + hex_literal::hex!("26aa394eea5630e07c48ae0c9558cef7ff553b5a9862a516939d82b3d3d8661a").to_vec().into(), + // Event Count + hex_literal::hex!("26aa394eea5630e07c48ae0c9558cef70a98fdbe9ce6c55837576c60c7af3850").to_vec().into(), + // System Events + hex_literal::hex!("26aa394eea5630e07c48ae0c9558cef780d41e5e16056765bc8461851072c9d7").to_vec().into(), + ]; + + let mut batches = Vec::::new(); + let params = (&config, &whitelist); + add_benchmarks!(params, batches); + + Ok(batches) + } + } + + impl sp_genesis_builder::GenesisBuilder for Runtime { + fn create_default_config() -> Vec { + create_default_config::() + } + + fn build_config(config: Vec) -> sp_genesis_builder::Result { + build_config::(config) + } + } +} + +cumulus_pallet_parachain_system::register_validate_block! { + Runtime = Runtime, + BlockExecutor = cumulus_pallet_aura_ext::BlockExecutor::, +} diff --git a/cumulus/parachains/runtimes/bridge-hubs/bridge-hub-westend/src/weights/block_weights.rs b/cumulus/parachains/runtimes/bridge-hubs/bridge-hub-westend/src/weights/block_weights.rs new file mode 100644 index 000000000000..e7fdb2aae2a0 --- /dev/null +++ b/cumulus/parachains/runtimes/bridge-hubs/bridge-hub-westend/src/weights/block_weights.rs @@ -0,0 +1,53 @@ +// This file is part of Substrate. + +// 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. + +pub mod constants { + use frame_support::{ + parameter_types, + weights::{constants, Weight}, + }; + + parameter_types! { + /// Importing a block with 0 Extrinsics. + pub const BlockExecutionWeight: Weight = + Weight::from_parts(constants::WEIGHT_REF_TIME_PER_NANOS.saturating_mul(5_000_000), 0); + } + + #[cfg(test)] + mod test_weights { + use frame_support::weights::constants; + + /// Checks that the weight exists and is sane. + // NOTE: If this test fails but you are sure that the generated values are fine, + // you can delete it. + #[test] + fn sane() { + let w = super::constants::BlockExecutionWeight::get(); + + // At least 100 µs. + assert!( + w.ref_time() >= 100u64 * constants::WEIGHT_REF_TIME_PER_MICROS, + "Weight should be at least 100 µs." + ); + // At most 50 ms. + assert!( + w.ref_time() <= 50u64 * constants::WEIGHT_REF_TIME_PER_MILLIS, + "Weight should be at most 50 ms." + ); + } + } +} diff --git a/cumulus/parachains/runtimes/bridge-hubs/bridge-hub-westend/src/weights/cumulus_pallet_xcmp_queue.rs b/cumulus/parachains/runtimes/bridge-hubs/bridge-hub-westend/src/weights/cumulus_pallet_xcmp_queue.rs new file mode 100644 index 000000000000..1b7eef493a92 --- /dev/null +++ b/cumulus/parachains/runtimes/bridge-hubs/bridge-hub-westend/src/weights/cumulus_pallet_xcmp_queue.rs @@ -0,0 +1,77 @@ +// Copyright (C) Parity Technologies (UK) Ltd. +// This file is part of Cumulus. + +// Cumulus 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. + +// Cumulus 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 Cumulus. If not, see . + +//! Autogenerated weights for `cumulus_pallet_xcmp_queue` +//! +//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev +//! DATE: 2023-07-31, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! WORST CASE MAP SIZE: `1000000` +//! HOSTNAME: `runner-ynta1nyy-project-238-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz` +//! EXECUTION: ``, WASM-EXECUTION: `Compiled`, CHAIN: `Some("bridge-hub-westend-dev")`, DB CACHE: 1024 + +// Executed Command: +// ./target/production/polkadot-parachain +// benchmark +// pallet +// --chain=bridge-hub-westend-dev +// --wasm-execution=compiled +// --pallet=cumulus_pallet_xcmp_queue +// --no-storage-info +// --no-median-slopes +// --no-min-squares +// --extrinsic=* +// --steps=50 +// --repeat=20 +// --json +// --header=./file_header.txt +// --output=./parachains/runtimes/bridge-hubs/bridge-hub-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 `cumulus_pallet_xcmp_queue`. +pub struct WeightInfo(PhantomData); +impl cumulus_pallet_xcmp_queue::WeightInfo for WeightInfo { + /// Storage: `XcmpQueue::QueueConfig` (r:1 w:1) + /// Proof: `XcmpQueue::QueueConfig` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + fn set_config_with_u32() -> Weight { + // Proof Size summary in bytes: + // Measured: `76` + // Estimated: `1561` + // Minimum execution time: 5_129_000 picoseconds. + Weight::from_parts(5_367_000, 0) + .saturating_add(Weight::from_parts(0, 1561)) + .saturating_add(T::DbWeight::get().reads(1)) + .saturating_add(T::DbWeight::get().writes(1)) + } + /// Storage: `XcmpQueue::QueueConfig` (r:1 w:1) + /// Proof: `XcmpQueue::QueueConfig` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + fn set_config_with_weight() -> Weight { + // Proof Size summary in bytes: + // Measured: `76` + // Estimated: `1561` + // Minimum execution time: 5_050_000 picoseconds. + Weight::from_parts(5_565_000, 0) + .saturating_add(Weight::from_parts(0, 1561)) + .saturating_add(T::DbWeight::get().reads(1)) + .saturating_add(T::DbWeight::get().writes(1)) + } +} diff --git a/cumulus/parachains/runtimes/bridge-hubs/bridge-hub-westend/src/weights/extrinsic_weights.rs b/cumulus/parachains/runtimes/bridge-hubs/bridge-hub-westend/src/weights/extrinsic_weights.rs new file mode 100644 index 000000000000..1a4adb968bb7 --- /dev/null +++ b/cumulus/parachains/runtimes/bridge-hubs/bridge-hub-westend/src/weights/extrinsic_weights.rs @@ -0,0 +1,53 @@ +// This file is part of Substrate. + +// 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. + +pub mod constants { + use frame_support::{ + parameter_types, + weights::{constants, Weight}, + }; + + parameter_types! { + /// Executing a NO-OP `System::remarks` Extrinsic. + pub const ExtrinsicBaseWeight: Weight = + Weight::from_parts(constants::WEIGHT_REF_TIME_PER_NANOS.saturating_mul(125_000), 0); + } + + #[cfg(test)] + mod test_weights { + use frame_support::weights::constants; + + /// Checks that the weight exists and is sane. + // NOTE: If this test fails but you are sure that the generated values are fine, + // you can delete it. + #[test] + fn sane() { + let w = super::constants::ExtrinsicBaseWeight::get(); + + // At least 10 µs. + assert!( + w.ref_time() >= 10u64 * constants::WEIGHT_REF_TIME_PER_MICROS, + "Weight should be at least 10 µs." + ); + // At most 1 ms. + assert!( + w.ref_time() <= constants::WEIGHT_REF_TIME_PER_MILLIS, + "Weight should be at most 1 ms." + ); + } + } +} diff --git a/cumulus/parachains/runtimes/bridge-hubs/bridge-hub-westend/src/weights/frame_system.rs b/cumulus/parachains/runtimes/bridge-hubs/bridge-hub-westend/src/weights/frame_system.rs new file mode 100644 index 000000000000..6c3da9dd3f76 --- /dev/null +++ b/cumulus/parachains/runtimes/bridge-hubs/bridge-hub-westend/src/weights/frame_system.rs @@ -0,0 +1,155 @@ +// Copyright (C) Parity Technologies (UK) Ltd. +// This file is part of Cumulus. + +// Cumulus 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. + +// Cumulus 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 Cumulus. If not, see . + +//! Autogenerated weights for `frame_system` +//! +//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev +//! DATE: 2023-07-31, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! WORST CASE MAP SIZE: `1000000` +//! HOSTNAME: `runner-ynta1nyy-project-238-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz` +//! EXECUTION: ``, WASM-EXECUTION: `Compiled`, CHAIN: `Some("bridge-hub-westend-dev")`, DB CACHE: 1024 + +// Executed Command: +// ./target/production/polkadot-parachain +// benchmark +// pallet +// --chain=bridge-hub-westend-dev +// --wasm-execution=compiled +// --pallet=frame_system +// --no-storage-info +// --no-median-slopes +// --no-min-squares +// --extrinsic=* +// --steps=50 +// --repeat=20 +// --json +// --header=./file_header.txt +// --output=./parachains/runtimes/bridge-hubs/bridge-hub-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 `frame_system`. +pub struct WeightInfo(PhantomData); +impl frame_system::WeightInfo for WeightInfo { + /// The range of component `b` is `[0, 3932160]`. + fn remark(b: u32, ) -> Weight { + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 1_985_000 picoseconds. + Weight::from_parts(2_177_341, 0) + .saturating_add(Weight::from_parts(0, 0)) + // Standard Error: 0 + .saturating_add(Weight::from_parts(386, 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_288_000 picoseconds. + Weight::from_parts(23_888_468, 0) + .saturating_add(Weight::from_parts(0, 0)) + // Standard Error: 8 + .saturating_add(Weight::from_parts(1_718, 0).saturating_mul(b.into())) + } + /// Storage: `System::Digest` (r:1 w:1) + /// Proof: `System::Digest` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: UNKNOWN KEY `0x3a686561707061676573` (r:0 w:1) + /// Proof: UNKNOWN KEY `0x3a686561707061676573` (r:0 w:1) + fn set_heap_pages() -> Weight { + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `1485` + // Minimum execution time: 3_700_000 picoseconds. + Weight::from_parts(3_867_000, 0) + .saturating_add(Weight::from_parts(0, 1485)) + .saturating_add(T::DbWeight::get().reads(1)) + .saturating_add(T::DbWeight::get().writes(2)) + } + /// Storage: `ParachainSystem::ValidationData` (r:1 w:0) + /// Proof: `ParachainSystem::ValidationData` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `ParachainSystem::UpgradeRestrictionSignal` (r:1 w:0) + /// Proof: `ParachainSystem::UpgradeRestrictionSignal` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `ParachainSystem::PendingValidationCode` (r:1 w:1) + /// Proof: `ParachainSystem::PendingValidationCode` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `ParachainSystem::HostConfiguration` (r:1 w:0) + /// Proof: `ParachainSystem::HostConfiguration` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `ParachainSystem::NewValidationCode` (r:0 w:1) + /// Proof: `ParachainSystem::NewValidationCode` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `ParachainSystem::DidSetValidationCode` (r:0 w:1) + /// Proof: `ParachainSystem::DidSetValidationCode` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + fn set_code() -> Weight { + // Proof Size summary in bytes: + // Measured: `119` + // Estimated: `1604` + // Minimum execution time: 100_298_586_000 picoseconds. + Weight::from_parts(101_869_369_000, 0) + .saturating_add(Weight::from_parts(0, 1604)) + .saturating_add(T::DbWeight::get().reads(4)) + .saturating_add(T::DbWeight::get().writes(3)) + } + /// Storage: `Skipped::Metadata` (r:0 w:0) + /// Proof: `Skipped::Metadata` (`max_values`: None, `max_size`: None, mode: `Measured`) + /// The range of component `i` is `[0, 1000]`. + fn set_storage(i: u32, ) -> Weight { + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 2_052_000 picoseconds. + Weight::from_parts(2_115_000, 0) + .saturating_add(Weight::from_parts(0, 0)) + // Standard Error: 2_048 + .saturating_add(Weight::from_parts(755_436, 0).saturating_mul(i.into())) + .saturating_add(T::DbWeight::get().writes((1_u64).saturating_mul(i.into()))) + } + /// Storage: `Skipped::Metadata` (r:0 w:0) + /// Proof: `Skipped::Metadata` (`max_values`: None, `max_size`: None, mode: `Measured`) + /// The range of component `i` is `[0, 1000]`. + fn kill_storage(i: u32, ) -> Weight { + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 2_044_000 picoseconds. + Weight::from_parts(2_110_000, 0) + .saturating_add(Weight::from_parts(0, 0)) + // Standard Error: 1_011 + .saturating_add(Weight::from_parts(569_993, 0).saturating_mul(i.into())) + .saturating_add(T::DbWeight::get().writes((1_u64).saturating_mul(i.into()))) + } + /// Storage: `Skipped::Metadata` (r:0 w:0) + /// Proof: `Skipped::Metadata` (`max_values`: None, `max_size`: None, mode: `Measured`) + /// The range of component `p` is `[0, 1000]`. + fn kill_prefix(p: u32, ) -> Weight { + // Proof Size summary in bytes: + // Measured: `68 + p * (69 ±0)` + // Estimated: `66 + p * (70 ±0)` + // Minimum execution time: 3_741_000 picoseconds. + Weight::from_parts(3_838_000, 0) + .saturating_add(Weight::from_parts(0, 66)) + // Standard Error: 2_455 + .saturating_add(Weight::from_parts(1_216_154, 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/cumulus/parachains/runtimes/bridge-hubs/bridge-hub-westend/src/weights/mod.rs b/cumulus/parachains/runtimes/bridge-hubs/bridge-hub-westend/src/weights/mod.rs new file mode 100644 index 000000000000..e226021e77ab --- /dev/null +++ b/cumulus/parachains/runtimes/bridge-hubs/bridge-hub-westend/src/weights/mod.rs @@ -0,0 +1,38 @@ +// This file is part of Substrate. + +// 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. + +//! Expose the auto generated weight files. + +pub mod block_weights; +pub mod cumulus_pallet_xcmp_queue; +pub mod extrinsic_weights; +pub mod frame_system; +pub mod pallet_balances; +pub mod pallet_collator_selection; +pub mod pallet_multisig; +pub mod pallet_session; +pub mod pallet_timestamp; +pub mod pallet_utility; +pub mod pallet_xcm; +pub mod paritydb_weights; +pub mod rocksdb_weights; +pub mod xcm; + +pub use block_weights::constants::BlockExecutionWeight; +pub use extrinsic_weights::constants::ExtrinsicBaseWeight; +pub use paritydb_weights::constants::ParityDbWeight; +pub use rocksdb_weights::constants::RocksDbWeight; diff --git a/cumulus/parachains/runtimes/bridge-hubs/bridge-hub-westend/src/weights/pallet_balances.rs b/cumulus/parachains/runtimes/bridge-hubs/bridge-hub-westend/src/weights/pallet_balances.rs new file mode 100644 index 000000000000..2571539f137a --- /dev/null +++ b/cumulus/parachains/runtimes/bridge-hubs/bridge-hub-westend/src/weights/pallet_balances.rs @@ -0,0 +1,153 @@ +// Copyright (C) Parity Technologies (UK) Ltd. +// This file is part of Cumulus. + +// Cumulus 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. + +// Cumulus 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 Cumulus. 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-07-31, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! WORST CASE MAP SIZE: `1000000` +//! HOSTNAME: `runner-ynta1nyy-project-238-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz` +//! EXECUTION: ``, WASM-EXECUTION: `Compiled`, CHAIN: `Some("bridge-hub-westend-dev")`, DB CACHE: 1024 + +// Executed Command: +// ./target/production/polkadot-parachain +// benchmark +// pallet +// --chain=bridge-hub-westend-dev +// --wasm-execution=compiled +// --pallet=pallet_balances +// --no-storage-info +// --no-median-slopes +// --no-min-squares +// --extrinsic=* +// --steps=50 +// --repeat=20 +// --json +// --header=./file_header.txt +// --output=./parachains/runtimes/bridge-hubs/bridge-hub-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_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_163_000 picoseconds. + Weight::from_parts(56_056_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: 40_829_000 picoseconds. + Weight::from_parts(42_182_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_212_000 picoseconds. + Weight::from_parts(15_782_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: 22_866_000 picoseconds. + Weight::from_parts(23_452_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_047_000 picoseconds. + Weight::from_parts(58_536_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_622_000 picoseconds. + Weight::from_parts(52_912_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: 17_723_000 picoseconds. + Weight::from_parts(18_383_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]`. + fn upgrade_accounts(u: u32, ) -> Weight { + // Proof Size summary in bytes: + // Measured: `0 + u * (136 ±0)` + // Estimated: `990 + u * (2603 ±0)` + // Minimum execution time: 17_089_000 picoseconds. + Weight::from_parts(17_379_000, 0) + .saturating_add(Weight::from_parts(0, 990)) + // Standard Error: 17_071 + .saturating_add(Weight::from_parts(15_647_341, 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/cumulus/parachains/runtimes/bridge-hubs/bridge-hub-westend/src/weights/pallet_collator_selection.rs b/cumulus/parachains/runtimes/bridge-hubs/bridge-hub-westend/src/weights/pallet_collator_selection.rs new file mode 100644 index 000000000000..d4f57a7a6f21 --- /dev/null +++ b/cumulus/parachains/runtimes/bridge-hubs/bridge-hub-westend/src/weights/pallet_collator_selection.rs @@ -0,0 +1,225 @@ +// Copyright (C) Parity Technologies (UK) Ltd. +// This file is part of Cumulus. + +// Cumulus 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. + +// Cumulus 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 Cumulus. If not, see . + +//! Autogenerated weights for `pallet_collator_selection` +//! +//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev +//! DATE: 2023-07-31, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! WORST CASE MAP SIZE: `1000000` +//! HOSTNAME: `runner-ynta1nyy-project-238-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz` +//! EXECUTION: ``, WASM-EXECUTION: `Compiled`, CHAIN: `Some("bridge-hub-westend-dev")`, DB CACHE: 1024 + +// Executed Command: +// ./target/production/polkadot-parachain +// benchmark +// pallet +// --chain=bridge-hub-westend-dev +// --wasm-execution=compiled +// --pallet=pallet_collator_selection +// --no-storage-info +// --no-median-slopes +// --no-min-squares +// --extrinsic=* +// --steps=50 +// --repeat=20 +// --json +// --header=./file_header.txt +// --output=./parachains/runtimes/bridge-hubs/bridge-hub-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_collator_selection`. +pub struct WeightInfo(PhantomData); +impl pallet_collator_selection::WeightInfo for WeightInfo { + /// Storage: `Session::NextKeys` (r:20 w:0) + /// Proof: `Session::NextKeys` (`max_values`: None, `max_size`: None, mode: `Measured`) + /// Storage: `CollatorSelection::Invulnerables` (r:0 w:1) + /// Proof: `CollatorSelection::Invulnerables` (`max_values`: Some(1), `max_size`: Some(641), added: 1136, mode: `MaxEncodedLen`) + /// The range of component `b` is `[1, 20]`. + fn set_invulnerables(b: u32, ) -> Weight { + // Proof Size summary in bytes: + // Measured: `196 + b * (79 ±0)` + // Estimated: `1187 + b * (2555 ±0)` + // Minimum execution time: 14_329_000 picoseconds. + Weight::from_parts(11_605_842, 0) + .saturating_add(Weight::from_parts(0, 1187)) + // Standard Error: 4_784 + .saturating_add(Weight::from_parts(3_297_183, 0).saturating_mul(b.into())) + .saturating_add(T::DbWeight::get().reads((1_u64).saturating_mul(b.into()))) + .saturating_add(T::DbWeight::get().writes(1)) + .saturating_add(Weight::from_parts(0, 2555).saturating_mul(b.into())) + } + /// Storage: `Session::NextKeys` (r:1 w:0) + /// Proof: `Session::NextKeys` (`max_values`: None, `max_size`: None, mode: `Measured`) + /// Storage: `CollatorSelection::Invulnerables` (r:1 w:1) + /// Proof: `CollatorSelection::Invulnerables` (`max_values`: Some(1), `max_size`: Some(641), added: 1136, mode: `MaxEncodedLen`) + /// Storage: `CollatorSelection::Candidates` (r:1 w:1) + /// Proof: `CollatorSelection::Candidates` (`max_values`: Some(1), `max_size`: Some(4802), added: 5297, 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 `b` is `[1, 19]`. + /// The range of component `c` is `[1, 99]`. + fn add_invulnerable(b: u32, c: u32, ) -> Weight { + // Proof Size summary in bytes: + // Measured: `757 + b * (32 ±0) + c * (53 ±0)` + // Estimated: `6287 + b * (37 ±0) + c * (53 ±0)` + // Minimum execution time: 47_110_000 picoseconds. + Weight::from_parts(45_234_418, 0) + .saturating_add(Weight::from_parts(0, 6287)) + // Standard Error: 14_452 + .saturating_add(Weight::from_parts(156_031, 0).saturating_mul(b.into())) + // Standard Error: 2_739 + .saturating_add(Weight::from_parts(216_162, 0).saturating_mul(c.into())) + .saturating_add(T::DbWeight::get().reads(4)) + .saturating_add(T::DbWeight::get().writes(3)) + .saturating_add(Weight::from_parts(0, 37).saturating_mul(b.into())) + .saturating_add(Weight::from_parts(0, 53).saturating_mul(c.into())) + } + /// Storage: `CollatorSelection::Candidates` (r:1 w:0) + /// Proof: `CollatorSelection::Candidates` (`max_values`: Some(1), `max_size`: Some(4802), added: 5297, mode: `MaxEncodedLen`) + /// Storage: `CollatorSelection::Invulnerables` (r:1 w:1) + /// Proof: `CollatorSelection::Invulnerables` (`max_values`: Some(1), `max_size`: Some(641), added: 1136, mode: `MaxEncodedLen`) + /// The range of component `b` is `[5, 20]`. + fn remove_invulnerable(b: u32, ) -> Weight { + // Proof Size summary in bytes: + // Measured: `82 + b * (32 ±0)` + // Estimated: `6287` + // Minimum execution time: 15_326_000 picoseconds. + Weight::from_parts(14_914_611, 0) + .saturating_add(Weight::from_parts(0, 6287)) + // Standard Error: 2_274 + .saturating_add(Weight::from_parts(201_234, 0).saturating_mul(b.into())) + .saturating_add(T::DbWeight::get().reads(2)) + .saturating_add(T::DbWeight::get().writes(1)) + } + /// Storage: `CollatorSelection::DesiredCandidates` (r:0 w:1) + /// Proof: `CollatorSelection::DesiredCandidates` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`) + fn set_desired_candidates() -> Weight { + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 7_288_000 picoseconds. + Weight::from_parts(7_472_000, 0) + .saturating_add(Weight::from_parts(0, 0)) + .saturating_add(T::DbWeight::get().writes(1)) + } + /// Storage: `CollatorSelection::CandidacyBond` (r:0 w:1) + /// Proof: `CollatorSelection::CandidacyBond` (`max_values`: Some(1), `max_size`: Some(16), added: 511, mode: `MaxEncodedLen`) + fn set_candidacy_bond() -> Weight { + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 7_137_000 picoseconds. + Weight::from_parts(7_374_000, 0) + .saturating_add(Weight::from_parts(0, 0)) + .saturating_add(T::DbWeight::get().writes(1)) + } + /// Storage: `CollatorSelection::Candidates` (r:1 w:1) + /// Proof: `CollatorSelection::Candidates` (`max_values`: Some(1), `max_size`: Some(4802), added: 5297, mode: `MaxEncodedLen`) + /// Storage: `CollatorSelection::DesiredCandidates` (r:1 w:0) + /// Proof: `CollatorSelection::DesiredCandidates` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`) + /// Storage: `CollatorSelection::Invulnerables` (r:1 w:0) + /// Proof: `CollatorSelection::Invulnerables` (`max_values`: Some(1), `max_size`: Some(641), added: 1136, mode: `MaxEncodedLen`) + /// Storage: `Session::NextKeys` (r:1 w:0) + /// Proof: `Session::NextKeys` (`max_values`: None, `max_size`: None, mode: `Measured`) + /// Storage: `CollatorSelection::CandidacyBond` (r:1 w:0) + /// Proof: `CollatorSelection::CandidacyBond` (`max_values`: Some(1), `max_size`: Some(16), added: 511, mode: `MaxEncodedLen`) + /// Storage: `CollatorSelection::LastAuthoredBlock` (r:0 w:1) + /// Proof: `CollatorSelection::LastAuthoredBlock` (`max_values`: None, `max_size`: Some(44), added: 2519, mode: `MaxEncodedLen`) + /// The range of component `c` is `[1, 99]`. + fn register_as_candidate(c: u32, ) -> Weight { + // Proof Size summary in bytes: + // Measured: `740 + c * (52 ±0)` + // Estimated: `6287 + c * (54 ±0)` + // Minimum execution time: 40_718_000 picoseconds. + Weight::from_parts(43_911_837, 0) + .saturating_add(Weight::from_parts(0, 6287)) + // Standard Error: 3_053 + .saturating_add(Weight::from_parts(229_337, 0).saturating_mul(c.into())) + .saturating_add(T::DbWeight::get().reads(5)) + .saturating_add(T::DbWeight::get().writes(2)) + .saturating_add(Weight::from_parts(0, 54).saturating_mul(c.into())) + } + /// Storage: `CollatorSelection::Candidates` (r:1 w:1) + /// Proof: `CollatorSelection::Candidates` (`max_values`: Some(1), `max_size`: Some(4802), added: 5297, mode: `MaxEncodedLen`) + /// Storage: `CollatorSelection::Invulnerables` (r:1 w:0) + /// Proof: `CollatorSelection::Invulnerables` (`max_values`: Some(1), `max_size`: Some(641), added: 1136, mode: `MaxEncodedLen`) + /// Storage: `CollatorSelection::LastAuthoredBlock` (r:0 w:1) + /// Proof: `CollatorSelection::LastAuthoredBlock` (`max_values`: None, `max_size`: Some(44), added: 2519, mode: `MaxEncodedLen`) + /// The range of component `c` is `[3, 100]`. + fn leave_intent(c: u32, ) -> Weight { + // Proof Size summary in bytes: + // Measured: `334 + c * (49 ±0)` + // Estimated: `6287` + // Minimum execution time: 32_953_000 picoseconds. + Weight::from_parts(34_817_275, 0) + .saturating_add(Weight::from_parts(0, 6287)) + // Standard Error: 2_476 + .saturating_add(Weight::from_parts(198_023, 0).saturating_mul(c.into())) + .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: `System::BlockWeight` (r:1 w:1) + /// Proof: `System::BlockWeight` (`max_values`: Some(1), `max_size`: Some(48), added: 543, mode: `MaxEncodedLen`) + /// Storage: `CollatorSelection::LastAuthoredBlock` (r:0 w:1) + /// Proof: `CollatorSelection::LastAuthoredBlock` (`max_values`: None, `max_size`: Some(44), added: 2519, mode: `MaxEncodedLen`) + fn note_author() -> Weight { + // Proof Size summary in bytes: + // Measured: `155` + // Estimated: `6196` + // Minimum execution time: 45_130_000 picoseconds. + Weight::from_parts(46_733_000, 0) + .saturating_add(Weight::from_parts(0, 6196)) + .saturating_add(T::DbWeight::get().reads(3)) + .saturating_add(T::DbWeight::get().writes(4)) + } + /// Storage: `CollatorSelection::Candidates` (r:1 w:0) + /// Proof: `CollatorSelection::Candidates` (`max_values`: Some(1), `max_size`: Some(4802), added: 5297, mode: `MaxEncodedLen`) + /// Storage: `CollatorSelection::LastAuthoredBlock` (r:100 w:0) + /// Proof: `CollatorSelection::LastAuthoredBlock` (`max_values`: None, `max_size`: Some(44), added: 2519, mode: `MaxEncodedLen`) + /// Storage: `CollatorSelection::Invulnerables` (r:1 w:0) + /// Proof: `CollatorSelection::Invulnerables` (`max_values`: Some(1), `max_size`: Some(641), added: 1136, mode: `MaxEncodedLen`) + /// Storage: `System::BlockWeight` (r:1 w:1) + /// Proof: `System::BlockWeight` (`max_values`: Some(1), `max_size`: Some(48), added: 543, mode: `MaxEncodedLen`) + /// Storage: `System::Account` (r:97 w:97) + /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`) + /// The range of component `r` is `[1, 100]`. + /// The range of component `c` is `[1, 100]`. + fn new_session(r: u32, c: u32, ) -> Weight { + // Proof Size summary in bytes: + // Measured: `2263 + c * (97 ±0) + r * (115 ±0)` + // Estimated: `6287 + c * (2519 ±0) + r * (2603 ±0)` + // Minimum execution time: 16_690_000 picoseconds. + Weight::from_parts(17_188_000, 0) + .saturating_add(Weight::from_parts(0, 6287)) + // Standard Error: 345_320 + .saturating_add(Weight::from_parts(15_166_422, 0).saturating_mul(c.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().writes(1)) + .saturating_add(T::DbWeight::get().writes((1_u64).saturating_mul(c.into()))) + .saturating_add(Weight::from_parts(0, 2519).saturating_mul(c.into())) + .saturating_add(Weight::from_parts(0, 2603).saturating_mul(r.into())) + } +} diff --git a/cumulus/parachains/runtimes/bridge-hubs/bridge-hub-westend/src/weights/pallet_multisig.rs b/cumulus/parachains/runtimes/bridge-hubs/bridge-hub-westend/src/weights/pallet_multisig.rs new file mode 100644 index 000000000000..5a70933e9edb --- /dev/null +++ b/cumulus/parachains/runtimes/bridge-hubs/bridge-hub-westend/src/weights/pallet_multisig.rs @@ -0,0 +1,165 @@ +// Copyright (C) Parity Technologies (UK) Ltd. +// This file is part of Cumulus. + +// Cumulus 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. + +// Cumulus 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 Cumulus. If not, see . + +//! Autogenerated weights for `pallet_multisig` +//! +//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev +//! DATE: 2023-07-31, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! WORST CASE MAP SIZE: `1000000` +//! HOSTNAME: `runner-ynta1nyy-project-238-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz` +//! EXECUTION: ``, WASM-EXECUTION: `Compiled`, CHAIN: `Some("bridge-hub-westend-dev")`, DB CACHE: 1024 + +// Executed Command: +// ./target/production/polkadot-parachain +// benchmark +// pallet +// --chain=bridge-hub-westend-dev +// --wasm-execution=compiled +// --pallet=pallet_multisig +// --no-storage-info +// --no-median-slopes +// --no-min-squares +// --extrinsic=* +// --steps=50 +// --repeat=20 +// --json +// --header=./file_header.txt +// --output=./parachains/runtimes/bridge-hubs/bridge-hub-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_multisig`. +pub struct WeightInfo(PhantomData); +impl pallet_multisig::WeightInfo for WeightInfo { + /// The range of component `z` is `[0, 10000]`. + fn as_multi_threshold_1(z: u32, ) -> Weight { + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 13_602_000 picoseconds. + Weight::from_parts(14_565_036, 0) + .saturating_add(Weight::from_parts(0, 0)) + // Standard Error: 8 + .saturating_add(Weight::from_parts(518, 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`) + /// The range of component `s` is `[2, 100]`. + /// The range of component `z` is `[0, 10000]`. + fn as_multi_create(s: u32, z: u32, ) -> Weight { + // Proof Size summary in bytes: + // Measured: `263 + s * (2 ±0)` + // Estimated: `6811` + // Minimum execution time: 46_075_000 picoseconds. + Weight::from_parts(33_730_493, 0) + .saturating_add(Weight::from_parts(0, 6811)) + // Standard Error: 1_049 + .saturating_add(Weight::from_parts(134_211, 0).saturating_mul(s.into())) + // Standard Error: 10 + .saturating_add(Weight::from_parts(1_448, 0).saturating_mul(z.into())) + .saturating_add(T::DbWeight::get().reads(1)) + .saturating_add(T::DbWeight::get().writes(1)) + } + /// Storage: `Multisig::Multisigs` (r:1 w:1) + /// Proof: `Multisig::Multisigs` (`max_values`: None, `max_size`: Some(3346), added: 5821, mode: `MaxEncodedLen`) + /// The range of component `s` is `[3, 100]`. + /// The range of component `z` is `[0, 10000]`. + fn as_multi_approve(s: u32, z: u32, ) -> Weight { + // Proof Size summary in bytes: + // Measured: `282` + // Estimated: `6811` + // Minimum execution time: 29_389_000 picoseconds. + Weight::from_parts(19_639_583, 0) + .saturating_add(Weight::from_parts(0, 6811)) + // Standard Error: 976 + .saturating_add(Weight::from_parts(106_598, 0).saturating_mul(s.into())) + // Standard Error: 9 + .saturating_add(Weight::from_parts(1_457, 0).saturating_mul(z.into())) + .saturating_add(T::DbWeight::get().reads(1)) + .saturating_add(T::DbWeight::get().writes(1)) + } + /// Storage: `Multisig::Multisigs` (r:1 w:1) + /// Proof: `Multisig::Multisigs` (`max_values`: None, `max_size`: Some(3346), added: 5821, 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 `[2, 100]`. + /// The range of component `z` is `[0, 10000]`. + fn as_multi_complete(s: u32, z: u32, ) -> Weight { + // Proof Size summary in bytes: + // Measured: `388 + s * (33 ±0)` + // Estimated: `6811` + // Minimum execution time: 50_438_000 picoseconds. + Weight::from_parts(36_195_308, 0) + .saturating_add(Weight::from_parts(0, 6811)) + // Standard Error: 1_689 + .saturating_add(Weight::from_parts(176_067, 0).saturating_mul(s.into())) + // Standard Error: 16 + .saturating_add(Weight::from_parts(1_545, 0).saturating_mul(z.into())) + .saturating_add(T::DbWeight::get().reads(2)) + .saturating_add(T::DbWeight::get().writes(2)) + } + /// Storage: `Multisig::Multisigs` (r:1 w:1) + /// Proof: `Multisig::Multisigs` (`max_values`: None, `max_size`: Some(3346), added: 5821, mode: `MaxEncodedLen`) + /// The range of component `s` is `[2, 100]`. + fn approve_as_multi_create(s: u32, ) -> Weight { + // Proof Size summary in bytes: + // Measured: `263 + s * (2 ±0)` + // Estimated: `6811` + // Minimum execution time: 32_134_000 picoseconds. + Weight::from_parts(32_149_785, 0) + .saturating_add(Weight::from_parts(0, 6811)) + // Standard Error: 1_082 + .saturating_add(Weight::from_parts(145_390, 0).saturating_mul(s.into())) + .saturating_add(T::DbWeight::get().reads(1)) + .saturating_add(T::DbWeight::get().writes(1)) + } + /// Storage: `Multisig::Multisigs` (r:1 w:1) + /// Proof: `Multisig::Multisigs` (`max_values`: None, `max_size`: Some(3346), added: 5821, mode: `MaxEncodedLen`) + /// The range of component `s` is `[2, 100]`. + fn approve_as_multi_approve(s: u32, ) -> Weight { + // Proof Size summary in bytes: + // Measured: `282` + // Estimated: `6811` + // Minimum execution time: 17_560_000 picoseconds. + Weight::from_parts(18_144_079, 0) + .saturating_add(Weight::from_parts(0, 6811)) + // Standard Error: 763 + .saturating_add(Weight::from_parts(114_298, 0).saturating_mul(s.into())) + .saturating_add(T::DbWeight::get().reads(1)) + .saturating_add(T::DbWeight::get().writes(1)) + } + /// Storage: `Multisig::Multisigs` (r:1 w:1) + /// Proof: `Multisig::Multisigs` (`max_values`: None, `max_size`: Some(3346), added: 5821, mode: `MaxEncodedLen`) + /// The range of component `s` is `[2, 100]`. + fn cancel_as_multi(s: u32, ) -> Weight { + // Proof Size summary in bytes: + // Measured: `454 + s * (1 ±0)` + // Estimated: `6811` + // Minimum execution time: 32_360_000 picoseconds. + Weight::from_parts(33_566_579, 0) + .saturating_add(Weight::from_parts(0, 6811)) + // Standard Error: 1_314 + .saturating_add(Weight::from_parts(126_583, 0).saturating_mul(s.into())) + .saturating_add(T::DbWeight::get().reads(1)) + .saturating_add(T::DbWeight::get().writes(1)) + } +} diff --git a/cumulus/parachains/runtimes/bridge-hubs/bridge-hub-westend/src/weights/pallet_session.rs b/cumulus/parachains/runtimes/bridge-hubs/bridge-hub-westend/src/weights/pallet_session.rs new file mode 100644 index 000000000000..25be0317154c --- /dev/null +++ b/cumulus/parachains/runtimes/bridge-hubs/bridge-hub-westend/src/weights/pallet_session.rs @@ -0,0 +1,81 @@ +// Copyright (C) Parity Technologies (UK) Ltd. +// This file is part of Cumulus. + +// Cumulus 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. + +// Cumulus 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 Cumulus. If not, see . + +//! Autogenerated weights for `pallet_session` +//! +//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev +//! DATE: 2023-07-31, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! WORST CASE MAP SIZE: `1000000` +//! HOSTNAME: `runner-ynta1nyy-project-238-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz` +//! EXECUTION: ``, WASM-EXECUTION: `Compiled`, CHAIN: `Some("bridge-hub-westend-dev")`, DB CACHE: 1024 + +// Executed Command: +// ./target/production/polkadot-parachain +// benchmark +// pallet +// --chain=bridge-hub-westend-dev +// --wasm-execution=compiled +// --pallet=pallet_session +// --no-storage-info +// --no-median-slopes +// --no-min-squares +// --extrinsic=* +// --steps=50 +// --repeat=20 +// --json +// --header=./file_header.txt +// --output=./parachains/runtimes/bridge-hubs/bridge-hub-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_session`. +pub struct WeightInfo(PhantomData); +impl pallet_session::WeightInfo for WeightInfo { + /// Storage: `Session::NextKeys` (r:1 w:1) + /// Proof: `Session::NextKeys` (`max_values`: None, `max_size`: None, mode: `Measured`) + /// Storage: `Session::KeyOwner` (r:1 w:1) + /// Proof: `Session::KeyOwner` (`max_values`: None, `max_size`: None, mode: `Measured`) + fn set_keys() -> Weight { + // Proof Size summary in bytes: + // Measured: `297` + // Estimated: `3762` + // Minimum execution time: 17_170_000 picoseconds. + Weight::from_parts(17_523_000, 0) + .saturating_add(Weight::from_parts(0, 3762)) + .saturating_add(T::DbWeight::get().reads(2)) + .saturating_add(T::DbWeight::get().writes(2)) + } + /// Storage: `Session::NextKeys` (r:1 w:1) + /// Proof: `Session::NextKeys` (`max_values`: None, `max_size`: None, mode: `Measured`) + /// Storage: `Session::KeyOwner` (r:0 w:1) + /// Proof: `Session::KeyOwner` (`max_values`: None, `max_size`: None, mode: `Measured`) + fn purge_keys() -> Weight { + // Proof Size summary in bytes: + // Measured: `279` + // Estimated: `3744` + // Minimum execution time: 13_273_000 picoseconds. + Weight::from_parts(14_200_000, 0) + .saturating_add(Weight::from_parts(0, 3744)) + .saturating_add(T::DbWeight::get().reads(1)) + .saturating_add(T::DbWeight::get().writes(2)) + } +} diff --git a/cumulus/parachains/runtimes/bridge-hubs/bridge-hub-westend/src/weights/pallet_timestamp.rs b/cumulus/parachains/runtimes/bridge-hubs/bridge-hub-westend/src/weights/pallet_timestamp.rs new file mode 100644 index 000000000000..45ab5ad5b529 --- /dev/null +++ b/cumulus/parachains/runtimes/bridge-hubs/bridge-hub-westend/src/weights/pallet_timestamp.rs @@ -0,0 +1,75 @@ +// Copyright (C) Parity Technologies (UK) Ltd. +// This file is part of Cumulus. + +// Cumulus 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. + +// Cumulus 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 Cumulus. If not, see . + +//! Autogenerated weights for `pallet_timestamp` +//! +//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev +//! DATE: 2023-07-31, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! WORST CASE MAP SIZE: `1000000` +//! HOSTNAME: `runner-ynta1nyy-project-238-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz` +//! EXECUTION: ``, WASM-EXECUTION: `Compiled`, CHAIN: `Some("bridge-hub-westend-dev")`, DB CACHE: 1024 + +// Executed Command: +// ./target/production/polkadot-parachain +// benchmark +// pallet +// --chain=bridge-hub-westend-dev +// --wasm-execution=compiled +// --pallet=pallet_timestamp +// --no-storage-info +// --no-median-slopes +// --no-min-squares +// --extrinsic=* +// --steps=50 +// --repeat=20 +// --json +// --header=./file_header.txt +// --output=./parachains/runtimes/bridge-hubs/bridge-hub-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_timestamp`. +pub struct WeightInfo(PhantomData); +impl pallet_timestamp::WeightInfo for WeightInfo { + /// Storage: `Timestamp::Now` (r:1 w:1) + /// Proof: `Timestamp::Now` (`max_values`: Some(1), `max_size`: Some(8), added: 503, mode: `MaxEncodedLen`) + /// Storage: `Aura::CurrentSlot` (r:1 w:0) + /// Proof: `Aura::CurrentSlot` (`max_values`: Some(1), `max_size`: Some(8), added: 503, mode: `MaxEncodedLen`) + fn set() -> Weight { + // Proof Size summary in bytes: + // Measured: `49` + // Estimated: `1493` + // Minimum execution time: 7_794_000 picoseconds. + Weight::from_parts(8_075_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: `57` + // Estimated: `0` + // Minimum execution time: 3_338_000 picoseconds. + Weight::from_parts(3_471_000, 0) + .saturating_add(Weight::from_parts(0, 0)) + } +} diff --git a/cumulus/parachains/runtimes/bridge-hubs/bridge-hub-westend/src/weights/pallet_utility.rs b/cumulus/parachains/runtimes/bridge-hubs/bridge-hub-westend/src/weights/pallet_utility.rs new file mode 100644 index 000000000000..a6c3b7703da6 --- /dev/null +++ b/cumulus/parachains/runtimes/bridge-hubs/bridge-hub-westend/src/weights/pallet_utility.rs @@ -0,0 +1,102 @@ +// Copyright (C) Parity Technologies (UK) Ltd. +// This file is part of Cumulus. + +// Cumulus 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. + +// Cumulus 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 Cumulus. If not, see . + +//! Autogenerated weights for `pallet_utility` +//! +//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev +//! DATE: 2023-07-31, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! WORST CASE MAP SIZE: `1000000` +//! HOSTNAME: `runner-ynta1nyy-project-238-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz` +//! EXECUTION: ``, WASM-EXECUTION: `Compiled`, CHAIN: `Some("bridge-hub-westend-dev")`, DB CACHE: 1024 + +// Executed Command: +// ./target/production/polkadot-parachain +// benchmark +// pallet +// --chain=bridge-hub-westend-dev +// --wasm-execution=compiled +// --pallet=pallet_utility +// --no-storage-info +// --no-median-slopes +// --no-min-squares +// --extrinsic=* +// --steps=50 +// --repeat=20 +// --json +// --header=./file_header.txt +// --output=./parachains/runtimes/bridge-hubs/bridge-hub-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_utility`. +pub struct WeightInfo(PhantomData); +impl pallet_utility::WeightInfo for WeightInfo { + /// The range of component `c` is `[0, 1000]`. + fn batch(c: u32, ) -> Weight { + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 6_641_000 picoseconds. + Weight::from_parts(7_103_558, 0) + .saturating_add(Weight::from_parts(0, 0)) + // Standard Error: 1_172 + .saturating_add(Weight::from_parts(4_907_384, 0).saturating_mul(c.into())) + } + fn as_derivative() -> Weight { + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 4_741_000 picoseconds. + Weight::from_parts(4_870_000, 0) + .saturating_add(Weight::from_parts(0, 0)) + } + /// The range of component `c` is `[0, 1000]`. + fn batch_all(c: u32, ) -> Weight { + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 6_561_000 picoseconds. + Weight::from_parts(12_252_064, 0) + .saturating_add(Weight::from_parts(0, 0)) + // Standard Error: 1_750 + .saturating_add(Weight::from_parts(5_193_404, 0).saturating_mul(c.into())) + } + fn dispatch_as() -> Weight { + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 8_646_000 picoseconds. + Weight::from_parts(8_927_000, 0) + .saturating_add(Weight::from_parts(0, 0)) + } + /// The range of component `c` is `[0, 1000]`. + fn force_batch(c: u32, ) -> Weight { + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 6_726_000 picoseconds. + Weight::from_parts(8_025_954, 0) + .saturating_add(Weight::from_parts(0, 0)) + // Standard Error: 1_746 + .saturating_add(Weight::from_parts(4_936_537, 0).saturating_mul(c.into())) + } +} diff --git a/cumulus/parachains/runtimes/bridge-hubs/bridge-hub-westend/src/weights/pallet_xcm.rs b/cumulus/parachains/runtimes/bridge-hubs/bridge-hub-westend/src/weights/pallet_xcm.rs new file mode 100644 index 000000000000..262bd5804ad1 --- /dev/null +++ b/cumulus/parachains/runtimes/bridge-hubs/bridge-hub-westend/src/weights/pallet_xcm.rs @@ -0,0 +1,289 @@ +// Copyright (C) Parity Technologies (UK) Ltd. +// This file is part of Cumulus. + +// Cumulus 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. + +// Cumulus 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 Cumulus. If not, see . + +//! Autogenerated weights for `pallet_xcm` +//! +//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev +//! DATE: 2023-07-31, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! WORST CASE MAP SIZE: `1000000` +//! HOSTNAME: `runner-ynta1nyy-project-238-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz` +//! EXECUTION: ``, WASM-EXECUTION: `Compiled`, CHAIN: `Some("bridge-hub-westend-dev")`, DB CACHE: 1024 + +// Executed Command: +// ./target/production/polkadot-parachain +// benchmark +// pallet +// --chain=bridge-hub-westend-dev +// --wasm-execution=compiled +// --pallet=pallet_xcm +// --no-storage-info +// --no-median-slopes +// --no-min-squares +// --extrinsic=* +// --steps=50 +// --repeat=20 +// --json +// --header=./file_header.txt +// --output=./parachains/runtimes/bridge-hubs/bridge-hub-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_xcm`. +pub struct WeightInfo(PhantomData); +impl pallet_xcm::WeightInfo for WeightInfo { + /// Storage: `PolkadotXcm::SupportedVersion` (r:1 w:0) + /// Proof: `PolkadotXcm::SupportedVersion` (`max_values`: None, `max_size`: None, mode: `Measured`) + /// Storage: `PolkadotXcm::VersionDiscoveryQueue` (r:1 w:1) + /// Proof: `PolkadotXcm::VersionDiscoveryQueue` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `PolkadotXcm::SafeXcmVersion` (r:1 w:0) + /// Proof: `PolkadotXcm::SafeXcmVersion` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `ParachainSystem::HostConfiguration` (r:1 w:0) + /// Proof: `ParachainSystem::HostConfiguration` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `ParachainSystem::PendingUpwardMessages` (r:1 w:1) + /// Proof: `ParachainSystem::PendingUpwardMessages` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + fn send() -> Weight { + // Proof Size summary in bytes: + // Measured: `38` + // Estimated: `3503` + // Minimum execution time: 27_523_000 picoseconds. + Weight::from_parts(28_238_000, 0) + .saturating_add(Weight::from_parts(0, 3503)) + .saturating_add(T::DbWeight::get().reads(5)) + .saturating_add(T::DbWeight::get().writes(2)) + } + /// Storage: `ParachainInfo::ParachainId` (r:1 w:0) + /// Proof: `ParachainInfo::ParachainId` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`) + fn teleport_assets() -> Weight { + // Proof Size summary in bytes: + // Measured: `32` + // Estimated: `1489` + // Minimum execution time: 24_139_000 picoseconds. + Weight::from_parts(24_806_000, 0) + .saturating_add(Weight::from_parts(0, 1489)) + .saturating_add(T::DbWeight::get().reads(1)) + } + /// Storage: `Benchmark::Override` (r:0 w:0) + /// Proof: `Benchmark::Override` (`max_values`: None, `max_size`: None, mode: `Measured`) + fn reserve_transfer_assets() -> Weight { + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 18_446_744_073_709_551_000 picoseconds. + Weight::from_parts(18_446_744_073_709_551_000, 0) + .saturating_add(Weight::from_parts(0, 0)) + } + /// Storage: `Benchmark::Override` (r:0 w:0) + /// Proof: `Benchmark::Override` (`max_values`: None, `max_size`: None, mode: `Measured`) + fn execute() -> Weight { + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 18_446_744_073_709_551_000 picoseconds. + Weight::from_parts(18_446_744_073_709_551_000, 0) + .saturating_add(Weight::from_parts(0, 0)) + } + /// Storage: `PolkadotXcm::SupportedVersion` (r:0 w:1) + /// Proof: `PolkadotXcm::SupportedVersion` (`max_values`: None, `max_size`: None, mode: `Measured`) + fn force_xcm_version() -> Weight { + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 8_988_000 picoseconds. + Weight::from_parts(9_227_000, 0) + .saturating_add(Weight::from_parts(0, 0)) + .saturating_add(T::DbWeight::get().writes(1)) + } + /// Storage: `PolkadotXcm::SafeXcmVersion` (r:0 w:1) + /// Proof: `PolkadotXcm::SafeXcmVersion` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + fn force_default_xcm_version() -> Weight { + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 2_571_000 picoseconds. + Weight::from_parts(2_667_000, 0) + .saturating_add(Weight::from_parts(0, 0)) + .saturating_add(T::DbWeight::get().writes(1)) + } + /// Storage: `PolkadotXcm::VersionNotifiers` (r:1 w:1) + /// Proof: `PolkadotXcm::VersionNotifiers` (`max_values`: None, `max_size`: None, mode: `Measured`) + /// Storage: `PolkadotXcm::QueryCounter` (r:1 w:1) + /// Proof: `PolkadotXcm::QueryCounter` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `PolkadotXcm::SupportedVersion` (r:1 w:0) + /// Proof: `PolkadotXcm::SupportedVersion` (`max_values`: None, `max_size`: None, mode: `Measured`) + /// Storage: `PolkadotXcm::VersionDiscoveryQueue` (r:1 w:1) + /// Proof: `PolkadotXcm::VersionDiscoveryQueue` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `PolkadotXcm::SafeXcmVersion` (r:1 w:0) + /// Proof: `PolkadotXcm::SafeXcmVersion` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `ParachainSystem::HostConfiguration` (r:1 w:0) + /// Proof: `ParachainSystem::HostConfiguration` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `ParachainSystem::PendingUpwardMessages` (r:1 w:1) + /// Proof: `ParachainSystem::PendingUpwardMessages` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `PolkadotXcm::Queries` (r:0 w:1) + /// Proof: `PolkadotXcm::Queries` (`max_values`: None, `max_size`: None, mode: `Measured`) + fn force_subscribe_version_notify() -> Weight { + // Proof Size summary in bytes: + // Measured: `38` + // Estimated: `3503` + // Minimum execution time: 33_194_000 picoseconds. + Weight::from_parts(34_089_000, 0) + .saturating_add(Weight::from_parts(0, 3503)) + .saturating_add(T::DbWeight::get().reads(7)) + .saturating_add(T::DbWeight::get().writes(5)) + } + /// Storage: `PolkadotXcm::VersionNotifiers` (r:1 w:1) + /// Proof: `PolkadotXcm::VersionNotifiers` (`max_values`: None, `max_size`: None, mode: `Measured`) + /// Storage: `PolkadotXcm::SupportedVersion` (r:1 w:0) + /// Proof: `PolkadotXcm::SupportedVersion` (`max_values`: None, `max_size`: None, mode: `Measured`) + /// Storage: `PolkadotXcm::VersionDiscoveryQueue` (r:1 w:1) + /// Proof: `PolkadotXcm::VersionDiscoveryQueue` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `PolkadotXcm::SafeXcmVersion` (r:1 w:0) + /// Proof: `PolkadotXcm::SafeXcmVersion` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `ParachainSystem::HostConfiguration` (r:1 w:0) + /// Proof: `ParachainSystem::HostConfiguration` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `ParachainSystem::PendingUpwardMessages` (r:1 w:1) + /// Proof: `ParachainSystem::PendingUpwardMessages` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `PolkadotXcm::Queries` (r:0 w:1) + /// Proof: `PolkadotXcm::Queries` (`max_values`: None, `max_size`: None, mode: `Measured`) + fn force_unsubscribe_version_notify() -> Weight { + // Proof Size summary in bytes: + // Measured: `255` + // Estimated: `3720` + // Minimum execution time: 35_413_000 picoseconds. + Weight::from_parts(36_359_000, 0) + .saturating_add(Weight::from_parts(0, 3720)) + .saturating_add(T::DbWeight::get().reads(6)) + .saturating_add(T::DbWeight::get().writes(4)) + } + /// Storage: `PolkadotXcm::XcmExecutionSuspended` (r:0 w:1) + /// Proof: `PolkadotXcm::XcmExecutionSuspended` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + fn force_suspension() -> Weight { + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 2_679_000 picoseconds. + Weight::from_parts(2_823_000, 0) + .saturating_add(Weight::from_parts(0, 0)) + .saturating_add(T::DbWeight::get().writes(1)) + } + /// Storage: `PolkadotXcm::SupportedVersion` (r:4 w:2) + /// Proof: `PolkadotXcm::SupportedVersion` (`max_values`: None, `max_size`: None, mode: `Measured`) + fn migrate_supported_version() -> Weight { + // Proof Size summary in bytes: + // Measured: `95` + // Estimated: `10985` + // Minimum execution time: 15_117_000 picoseconds. + Weight::from_parts(15_603_000, 0) + .saturating_add(Weight::from_parts(0, 10985)) + .saturating_add(T::DbWeight::get().reads(4)) + .saturating_add(T::DbWeight::get().writes(2)) + } + /// Storage: `PolkadotXcm::VersionNotifiers` (r:4 w:2) + /// Proof: `PolkadotXcm::VersionNotifiers` (`max_values`: None, `max_size`: None, mode: `Measured`) + fn migrate_version_notifiers() -> Weight { + // Proof Size summary in bytes: + // Measured: `99` + // Estimated: `10989` + // Minimum execution time: 14_978_000 picoseconds. + Weight::from_parts(15_370_000, 0) + .saturating_add(Weight::from_parts(0, 10989)) + .saturating_add(T::DbWeight::get().reads(4)) + .saturating_add(T::DbWeight::get().writes(2)) + } + /// Storage: `PolkadotXcm::VersionNotifyTargets` (r:5 w:0) + /// Proof: `PolkadotXcm::VersionNotifyTargets` (`max_values`: None, `max_size`: None, mode: `Measured`) + fn already_notified_target() -> Weight { + // Proof Size summary in bytes: + // Measured: `106` + // Estimated: `13471` + // Minimum execution time: 16_549_000 picoseconds. + Weight::from_parts(16_944_000, 0) + .saturating_add(Weight::from_parts(0, 13471)) + .saturating_add(T::DbWeight::get().reads(5)) + } + /// Storage: `PolkadotXcm::VersionNotifyTargets` (r:2 w:1) + /// Proof: `PolkadotXcm::VersionNotifyTargets` (`max_values`: None, `max_size`: None, mode: `Measured`) + /// Storage: `PolkadotXcm::SupportedVersion` (r:1 w:0) + /// Proof: `PolkadotXcm::SupportedVersion` (`max_values`: None, `max_size`: None, mode: `Measured`) + /// Storage: `PolkadotXcm::VersionDiscoveryQueue` (r:1 w:1) + /// Proof: `PolkadotXcm::VersionDiscoveryQueue` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `PolkadotXcm::SafeXcmVersion` (r:1 w:0) + /// Proof: `PolkadotXcm::SafeXcmVersion` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `ParachainSystem::HostConfiguration` (r:1 w:0) + /// Proof: `ParachainSystem::HostConfiguration` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `ParachainSystem::PendingUpwardMessages` (r:1 w:1) + /// Proof: `ParachainSystem::PendingUpwardMessages` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + fn notify_current_targets() -> Weight { + // Proof Size summary in bytes: + // Measured: `106` + // Estimated: `6046` + // Minimum execution time: 30_111_000 picoseconds. + Weight::from_parts(30_795_000, 0) + .saturating_add(Weight::from_parts(0, 6046)) + .saturating_add(T::DbWeight::get().reads(7)) + .saturating_add(T::DbWeight::get().writes(3)) + } + /// Storage: `PolkadotXcm::VersionNotifyTargets` (r:3 w:0) + /// Proof: `PolkadotXcm::VersionNotifyTargets` (`max_values`: None, `max_size`: None, mode: `Measured`) + fn notify_target_migration_fail() -> Weight { + // Proof Size summary in bytes: + // Measured: `136` + // Estimated: `8551` + // Minimum execution time: 8_622_000 picoseconds. + Weight::from_parts(8_865_000, 0) + .saturating_add(Weight::from_parts(0, 8551)) + .saturating_add(T::DbWeight::get().reads(3)) + } + /// Storage: `PolkadotXcm::VersionNotifyTargets` (r:4 w:2) + /// Proof: `PolkadotXcm::VersionNotifyTargets` (`max_values`: None, `max_size`: None, mode: `Measured`) + fn migrate_version_notify_targets() -> Weight { + // Proof Size summary in bytes: + // Measured: `106` + // Estimated: `10996` + // Minimum execution time: 15_194_000 picoseconds. + Weight::from_parts(15_646_000, 0) + .saturating_add(Weight::from_parts(0, 10996)) + .saturating_add(T::DbWeight::get().reads(4)) + .saturating_add(T::DbWeight::get().writes(2)) + } + /// Storage: `PolkadotXcm::VersionNotifyTargets` (r:4 w:2) + /// Proof: `PolkadotXcm::VersionNotifyTargets` (`max_values`: None, `max_size`: None, mode: `Measured`) + /// Storage: `PolkadotXcm::SupportedVersion` (r:1 w:0) + /// Proof: `PolkadotXcm::SupportedVersion` (`max_values`: None, `max_size`: None, mode: `Measured`) + /// Storage: `PolkadotXcm::VersionDiscoveryQueue` (r:1 w:1) + /// Proof: `PolkadotXcm::VersionDiscoveryQueue` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `PolkadotXcm::SafeXcmVersion` (r:1 w:0) + /// Proof: `PolkadotXcm::SafeXcmVersion` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `ParachainSystem::HostConfiguration` (r:1 w:0) + /// Proof: `ParachainSystem::HostConfiguration` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `ParachainSystem::PendingUpwardMessages` (r:1 w:1) + /// Proof: `ParachainSystem::PendingUpwardMessages` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + fn migrate_and_notify_old_targets() -> Weight { + // Proof Size summary in bytes: + // Measured: `112` + // Estimated: `11002` + // Minimum execution time: 36_625_000 picoseconds. + Weight::from_parts(37_571_000, 0) + .saturating_add(Weight::from_parts(0, 11002)) + .saturating_add(T::DbWeight::get().reads(9)) + .saturating_add(T::DbWeight::get().writes(4)) + } +} diff --git a/cumulus/parachains/runtimes/bridge-hubs/bridge-hub-westend/src/weights/paritydb_weights.rs b/cumulus/parachains/runtimes/bridge-hubs/bridge-hub-westend/src/weights/paritydb_weights.rs new file mode 100644 index 000000000000..25679703831a --- /dev/null +++ b/cumulus/parachains/runtimes/bridge-hubs/bridge-hub-westend/src/weights/paritydb_weights.rs @@ -0,0 +1,63 @@ +// This file is part of Substrate. + +// 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. + +pub mod constants { + use frame_support::{ + parameter_types, + weights::{constants, RuntimeDbWeight}, + }; + + parameter_types! { + /// `ParityDB` can be enabled with a feature flag, but is still experimental. These weights + /// are available for brave runtime engineers who may want to try this out as default. + pub const ParityDbWeight: RuntimeDbWeight = RuntimeDbWeight { + read: 8_000 * constants::WEIGHT_REF_TIME_PER_NANOS, + write: 50_000 * constants::WEIGHT_REF_TIME_PER_NANOS, + }; + } + + #[cfg(test)] + mod test_db_weights { + use super::constants::ParityDbWeight as W; + use frame_support::weights::constants; + + /// Checks that all weights exist and have sane values. + // NOTE: If this test fails but you are sure that the generated values are fine, + // you can delete it. + #[test] + fn sane() { + // At least 1 µs. + assert!( + W::get().reads(1).ref_time() >= constants::WEIGHT_REF_TIME_PER_MICROS, + "Read weight should be at least 1 µs." + ); + assert!( + W::get().writes(1).ref_time() >= constants::WEIGHT_REF_TIME_PER_MICROS, + "Write weight should be at least 1 µs." + ); + // At most 1 ms. + assert!( + W::get().reads(1).ref_time() <= constants::WEIGHT_REF_TIME_PER_MILLIS, + "Read weight should be at most 1 ms." + ); + assert!( + W::get().writes(1).ref_time() <= constants::WEIGHT_REF_TIME_PER_MILLIS, + "Write weight should be at most 1 ms." + ); + } + } +} diff --git a/cumulus/parachains/runtimes/bridge-hubs/bridge-hub-westend/src/weights/rocksdb_weights.rs b/cumulus/parachains/runtimes/bridge-hubs/bridge-hub-westend/src/weights/rocksdb_weights.rs new file mode 100644 index 000000000000..3dd817aa6f13 --- /dev/null +++ b/cumulus/parachains/runtimes/bridge-hubs/bridge-hub-westend/src/weights/rocksdb_weights.rs @@ -0,0 +1,63 @@ +// This file is part of Substrate. + +// 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. + +pub mod constants { + use frame_support::{ + parameter_types, + weights::{constants, RuntimeDbWeight}, + }; + + parameter_types! { + /// By default, Substrate uses `RocksDB`, so this will be the weight used throughout + /// the runtime. + pub const RocksDbWeight: RuntimeDbWeight = RuntimeDbWeight { + read: 25_000 * constants::WEIGHT_REF_TIME_PER_NANOS, + write: 100_000 * constants::WEIGHT_REF_TIME_PER_NANOS, + }; + } + + #[cfg(test)] + mod test_db_weights { + use super::constants::RocksDbWeight as W; + use frame_support::weights::constants; + + /// Checks that all weights exist and have sane values. + // NOTE: If this test fails but you are sure that the generated values are fine, + // you can delete it. + #[test] + fn sane() { + // At least 1 µs. + assert!( + W::get().reads(1).ref_time() >= constants::WEIGHT_REF_TIME_PER_MICROS, + "Read weight should be at least 1 µs." + ); + assert!( + W::get().writes(1).ref_time() >= constants::WEIGHT_REF_TIME_PER_MICROS, + "Write weight should be at least 1 µs." + ); + // At most 1 ms. + assert!( + W::get().reads(1).ref_time() <= constants::WEIGHT_REF_TIME_PER_MILLIS, + "Read weight should be at most 1 ms." + ); + assert!( + W::get().writes(1).ref_time() <= constants::WEIGHT_REF_TIME_PER_MILLIS, + "Write weight should be at most 1 ms." + ); + } + } +} diff --git a/cumulus/parachains/runtimes/bridge-hubs/bridge-hub-westend/src/weights/xcm/mod.rs b/cumulus/parachains/runtimes/bridge-hubs/bridge-hub-westend/src/weights/xcm/mod.rs new file mode 100644 index 000000000000..e81bd02a409f --- /dev/null +++ b/cumulus/parachains/runtimes/bridge-hubs/bridge-hub-westend/src/weights/xcm/mod.rs @@ -0,0 +1,256 @@ +// Copyright (C) Parity Technologies (UK) Ltd. +// This file is part of Cumulus. + +// Cumulus 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. + +// Cumulus 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 Cumulus. If not, see . + +mod pallet_xcm_benchmarks_fungible; +mod pallet_xcm_benchmarks_generic; + +use crate::{xcm_config::MaxAssetsIntoHolding, Runtime}; +use frame_support::weights::Weight; +use pallet_xcm_benchmarks_fungible::WeightInfo as XcmFungibleWeight; +use pallet_xcm_benchmarks_generic::WeightInfo as XcmGeneric; +use sp_std::prelude::*; +use xcm::{latest::prelude::*, DoubleEncoded}; + +trait WeighMultiAssets { + fn weigh_multi_assets(&self, weight: Weight) -> Weight; +} + +const MAX_ASSETS: u64 = 100; + +impl WeighMultiAssets for MultiAssetFilter { + fn weigh_multi_assets(&self, weight: Weight) -> Weight { + match self { + Self::Definite(assets) => weight.saturating_mul(assets.inner().iter().count() as u64), + Self::Wild(asset) => match asset { + All => weight.saturating_mul(MAX_ASSETS), + AllOf { fun, .. } => match fun { + WildFungibility::Fungible => weight, + // Magic number 2 has to do with the fact that we could have up to 2 times + // MaxAssetsIntoHolding in the worst-case scenario. + WildFungibility::NonFungible => + weight.saturating_mul((MaxAssetsIntoHolding::get() * 2) as u64), + }, + AllCounted(count) => weight.saturating_mul(MAX_ASSETS.min(*count as u64)), + AllOfCounted { count, .. } => weight.saturating_mul(MAX_ASSETS.min(*count as u64)), + }, + } + } +} + +impl WeighMultiAssets for MultiAssets { + fn weigh_multi_assets(&self, weight: Weight) -> Weight { + weight.saturating_mul(self.inner().iter().count() as u64) + } +} + +pub struct BridgeHubWestendXcmWeight(core::marker::PhantomData); +impl XcmWeightInfo for BridgeHubWestendXcmWeight { + fn withdraw_asset(assets: &MultiAssets) -> Weight { + assets.weigh_multi_assets(XcmFungibleWeight::::withdraw_asset()) + } + // Currently there is no trusted reserve (`IsReserve = ()`), + // but we need this hack for `pallet_xcm::reserve_transfer_assets` + // (TODO) fix https://github.com/paritytech/polkadot/pull/7424 + // (TODO) fix https://github.com/paritytech/polkadot/pull/7546 + fn reserve_asset_deposited(_assets: &MultiAssets) -> Weight { + // TODO: if we change `IsReserve = ...` then use this line... + // TODO: or if remote weight estimation is fixed, then remove + // TODO: hardcoded - fix https://github.com/paritytech/cumulus/issues/1974 + let hardcoded_weight = Weight::from_parts(1_000_000_000_u64, 0); + hardcoded_weight.min(XcmFungibleWeight::::reserve_asset_deposited()) + } + fn receive_teleported_asset(assets: &MultiAssets) -> Weight { + assets.weigh_multi_assets(XcmFungibleWeight::::receive_teleported_asset()) + } + fn query_response( + _query_id: &u64, + _response: &Response, + _max_weight: &Weight, + _querier: &Option, + ) -> Weight { + XcmGeneric::::query_response() + } + fn transfer_asset(assets: &MultiAssets, _dest: &MultiLocation) -> Weight { + assets.weigh_multi_assets(XcmFungibleWeight::::transfer_asset()) + } + fn transfer_reserve_asset( + assets: &MultiAssets, + _dest: &MultiLocation, + _xcm: &Xcm<()>, + ) -> Weight { + assets.weigh_multi_assets(XcmFungibleWeight::::transfer_reserve_asset()) + } + fn transact( + _origin_type: &OriginKind, + _require_weight_at_most: &Weight, + _call: &DoubleEncoded, + ) -> Weight { + XcmGeneric::::transact() + } + fn hrmp_new_channel_open_request( + _sender: &u32, + _max_message_size: &u32, + _max_capacity: &u32, + ) -> Weight { + // XCM Executor does not currently support HRMP channel operations + Weight::MAX + } + fn hrmp_channel_accepted(_recipient: &u32) -> Weight { + // XCM Executor does not currently support HRMP channel operations + Weight::MAX + } + fn hrmp_channel_closing(_initiator: &u32, _sender: &u32, _recipient: &u32) -> Weight { + // XCM Executor does not currently support HRMP channel operations + Weight::MAX + } + fn clear_origin() -> Weight { + XcmGeneric::::clear_origin() + } + fn descend_origin(_who: &InteriorMultiLocation) -> Weight { + XcmGeneric::::descend_origin() + } + fn report_error(_query_response_info: &QueryResponseInfo) -> Weight { + XcmGeneric::::report_error() + } + + fn deposit_asset(assets: &MultiAssetFilter, _dest: &MultiLocation) -> Weight { + // Hardcoded till the XCM pallet is fixed + let hardcoded_weight = Weight::from_parts(1_000_000_000_u64, 0); + let weight = assets.weigh_multi_assets(XcmFungibleWeight::::deposit_asset()); + hardcoded_weight.min(weight) + } + fn deposit_reserve_asset( + assets: &MultiAssetFilter, + _dest: &MultiLocation, + _xcm: &Xcm<()>, + ) -> Weight { + assets.weigh_multi_assets(XcmFungibleWeight::::deposit_reserve_asset()) + } + fn exchange_asset(_give: &MultiAssetFilter, _receive: &MultiAssets, _maximal: &bool) -> Weight { + Weight::MAX + } + fn initiate_reserve_withdraw( + assets: &MultiAssetFilter, + _reserve: &MultiLocation, + _xcm: &Xcm<()>, + ) -> Weight { + assets.weigh_multi_assets(XcmFungibleWeight::::initiate_reserve_withdraw()) + } + fn initiate_teleport( + assets: &MultiAssetFilter, + _dest: &MultiLocation, + _xcm: &Xcm<()>, + ) -> Weight { + assets.weigh_multi_assets(XcmFungibleWeight::::initiate_teleport()) + } + fn report_holding(_response_info: &QueryResponseInfo, _assets: &MultiAssetFilter) -> Weight { + XcmGeneric::::report_holding() + } + fn buy_execution(_fees: &MultiAsset, _weight_limit: &WeightLimit) -> Weight { + XcmGeneric::::buy_execution() + } + fn refund_surplus() -> Weight { + XcmGeneric::::refund_surplus() + } + fn set_error_handler(_xcm: &Xcm) -> Weight { + XcmGeneric::::set_error_handler() + } + fn set_appendix(_xcm: &Xcm) -> Weight { + XcmGeneric::::set_appendix() + } + fn clear_error() -> Weight { + XcmGeneric::::clear_error() + } + fn claim_asset(_assets: &MultiAssets, _ticket: &MultiLocation) -> Weight { + XcmGeneric::::claim_asset() + } + fn trap(_code: &u64) -> Weight { + XcmGeneric::::trap() + } + fn subscribe_version(_query_id: &QueryId, _max_response_weight: &Weight) -> Weight { + XcmGeneric::::subscribe_version() + } + fn unsubscribe_version() -> Weight { + XcmGeneric::::unsubscribe_version() + } + fn burn_asset(assets: &MultiAssets) -> Weight { + assets.weigh_multi_assets(XcmGeneric::::burn_asset()) + } + fn expect_asset(assets: &MultiAssets) -> Weight { + assets.weigh_multi_assets(XcmGeneric::::expect_asset()) + } + fn expect_origin(_origin: &Option) -> Weight { + XcmGeneric::::expect_origin() + } + fn expect_error(_error: &Option<(u32, XcmError)>) -> Weight { + XcmGeneric::::expect_error() + } + fn expect_transact_status(_transact_status: &MaybeErrorCode) -> Weight { + XcmGeneric::::expect_transact_status() + } + fn query_pallet(_module_name: &Vec, _response_info: &QueryResponseInfo) -> Weight { + XcmGeneric::::query_pallet() + } + fn expect_pallet( + _index: &u32, + _name: &Vec, + _module_name: &Vec, + _crate_major: &u32, + _min_crate_minor: &u32, + ) -> Weight { + XcmGeneric::::expect_pallet() + } + fn report_transact_status(_response_info: &QueryResponseInfo) -> Weight { + XcmGeneric::::report_transact_status() + } + fn clear_transact_status() -> Weight { + XcmGeneric::::clear_transact_status() + } + fn universal_origin(_: &Junction) -> Weight { + Weight::MAX + } + fn export_message(_: &NetworkId, _: &Junctions, _: &Xcm<()>) -> Weight { + Weight::MAX + } + fn lock_asset(_: &MultiAsset, _: &MultiLocation) -> Weight { + Weight::MAX + } + fn unlock_asset(_: &MultiAsset, _: &MultiLocation) -> Weight { + Weight::MAX + } + fn note_unlockable(_: &MultiAsset, _: &MultiLocation) -> Weight { + Weight::MAX + } + fn request_unlock(_: &MultiAsset, _: &MultiLocation) -> Weight { + Weight::MAX + } + fn set_fees_mode(_: &bool) -> Weight { + XcmGeneric::::set_fees_mode() + } + fn set_topic(_topic: &[u8; 32]) -> Weight { + XcmGeneric::::set_topic() + } + fn clear_topic() -> Weight { + XcmGeneric::::clear_topic() + } + fn alias_origin(_: &MultiLocation) -> Weight { + // XCM Executor does not currently support alias origin operations + Weight::MAX + } + fn unpaid_execution(_: &WeightLimit, _: &Option) -> Weight { + XcmGeneric::::unpaid_execution() + } +} diff --git a/cumulus/parachains/runtimes/bridge-hubs/bridge-hub-westend/src/weights/xcm/pallet_xcm_benchmarks_fungible.rs b/cumulus/parachains/runtimes/bridge-hubs/bridge-hub-westend/src/weights/xcm/pallet_xcm_benchmarks_fungible.rs new file mode 100644 index 000000000000..e0d267ad8584 --- /dev/null +++ b/cumulus/parachains/runtimes/bridge-hubs/bridge-hub-westend/src/weights/xcm/pallet_xcm_benchmarks_fungible.rs @@ -0,0 +1,190 @@ +// Copyright (C) Parity Technologies (UK) Ltd. +// This file is part of Cumulus. + +// Cumulus 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. + +// Cumulus 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 Cumulus. 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-07-31, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! WORST CASE MAP SIZE: `1000000` +//! HOSTNAME: `runner-ynta1nyy-project-238-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz` +//! EXECUTION: , WASM-EXECUTION: Compiled, CHAIN: Some("bridge-hub-westend-dev"), DB CACHE: 1024 + +// Executed Command: +// ./target/production/polkadot-parachain +// benchmark +// pallet +// --template=./templates/xcm-bench-template.hbs +// --chain=bridge-hub-westend-dev +// --wasm-execution=compiled +// --pallet=pallet_xcm_benchmarks::fungible +// --no-storage-info +// --no-median-slopes +// --no-min-squares +// --extrinsic=* +// --steps=50 +// --repeat=20 +// --json +// --header=./file_header.txt +// --output=./parachains/runtimes/bridge-hubs/bridge-hub-westend/src/weights/xcm/pallet_xcm_benchmarks_fungible.rs + +#![cfg_attr(rustfmt, rustfmt_skip)] +#![allow(unused_parens)] +#![allow(unused_imports)] + +use frame_support::{traits::Get, weights::Weight}; +use sp_std::marker::PhantomData; + +/// Weights for `pallet_xcm_benchmarks::fungible`. +pub struct WeightInfo(PhantomData); +impl WeightInfo { + // Storage: `System::Account` (r:1 w:1) + // Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`) + pub fn withdraw_asset() -> Weight { + // Proof Size summary in bytes: + // Measured: `101` + // Estimated: `3593` + // Minimum execution time: 24_064_000 picoseconds. + Weight::from_parts(24_751_000, 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`) + pub fn transfer_asset() -> Weight { + // Proof Size summary in bytes: + // Measured: `153` + // Estimated: `6196` + // Minimum execution time: 51_097_000 picoseconds. + Weight::from_parts(51_960_000, 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: `ParachainInfo::ParachainId` (r:1 w:0) + // Proof: `ParachainInfo::ParachainId` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`) + // Storage: `PolkadotXcm::SupportedVersion` (r:1 w:0) + // Proof: `PolkadotXcm::SupportedVersion` (`max_values`: None, `max_size`: None, mode: `Measured`) + // Storage: `PolkadotXcm::VersionDiscoveryQueue` (r:1 w:1) + // Proof: `PolkadotXcm::VersionDiscoveryQueue` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + // Storage: `PolkadotXcm::SafeXcmVersion` (r:1 w:0) + // Proof: `PolkadotXcm::SafeXcmVersion` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + // Storage: `ParachainSystem::HostConfiguration` (r:1 w:0) + // Proof: `ParachainSystem::HostConfiguration` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + // Storage: `ParachainSystem::PendingUpwardMessages` (r:1 w:1) + // Proof: `ParachainSystem::PendingUpwardMessages` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + pub fn transfer_reserve_asset() -> Weight { + // Proof Size summary in bytes: + // Measured: `223` + // Estimated: `6196` + // Minimum execution time: 75_319_000 picoseconds. + Weight::from_parts(77_356_000, 6196) + .saturating_add(T::DbWeight::get().reads(8)) + .saturating_add(T::DbWeight::get().writes(4)) + } + // Storage: `Benchmark::Override` (r:0 w:0) + // Proof: `Benchmark::Override` (`max_values`: None, `max_size`: None, mode: `Measured`) + pub fn reserve_asset_deposited() -> Weight { + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 500_000_000_000 picoseconds. + Weight::from_parts(500_000_000_000, 0) + } + // Storage: `ParachainInfo::ParachainId` (r:1 w:0) + // Proof: `ParachainInfo::ParachainId` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`) + // Storage: `PolkadotXcm::SupportedVersion` (r:1 w:0) + // Proof: `PolkadotXcm::SupportedVersion` (`max_values`: None, `max_size`: None, mode: `Measured`) + // Storage: `PolkadotXcm::VersionDiscoveryQueue` (r:1 w:1) + // Proof: `PolkadotXcm::VersionDiscoveryQueue` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + // Storage: `PolkadotXcm::SafeXcmVersion` (r:1 w:0) + // Proof: `PolkadotXcm::SafeXcmVersion` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + // Storage: `ParachainSystem::HostConfiguration` (r:1 w:0) + // Proof: `ParachainSystem::HostConfiguration` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + // Storage: `ParachainSystem::PendingUpwardMessages` (r:1 w:1) + // Proof: `ParachainSystem::PendingUpwardMessages` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + pub fn initiate_reserve_withdraw() -> Weight { + // Proof Size summary in bytes: + // Measured: `70` + // Estimated: `3535` + // Minimum execution time: 29_392_000 picoseconds. + Weight::from_parts(29_943_000, 3535) + .saturating_add(T::DbWeight::get().reads(6)) + .saturating_add(T::DbWeight::get().writes(2)) + } + pub fn receive_teleported_asset() -> Weight { + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 3_637_000 picoseconds. + Weight::from_parts(3_720_000, 0) + } + // Storage: `System::Account` (r:1 w:1) + // Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`) + pub fn deposit_asset() -> Weight { + // Proof Size summary in bytes: + // Measured: `52` + // Estimated: `3593` + // Minimum execution time: 25_045_000 picoseconds. + Weight::from_parts(25_546_000, 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: `ParachainInfo::ParachainId` (r:1 w:0) + // Proof: `ParachainInfo::ParachainId` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`) + // Storage: `PolkadotXcm::SupportedVersion` (r:1 w:0) + // Proof: `PolkadotXcm::SupportedVersion` (`max_values`: None, `max_size`: None, mode: `Measured`) + // Storage: `PolkadotXcm::VersionDiscoveryQueue` (r:1 w:1) + // Proof: `PolkadotXcm::VersionDiscoveryQueue` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + // Storage: `PolkadotXcm::SafeXcmVersion` (r:1 w:0) + // Proof: `PolkadotXcm::SafeXcmVersion` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + // Storage: `ParachainSystem::HostConfiguration` (r:1 w:0) + // Proof: `ParachainSystem::HostConfiguration` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + // Storage: `ParachainSystem::PendingUpwardMessages` (r:1 w:1) + // Proof: `ParachainSystem::PendingUpwardMessages` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + pub fn deposit_reserve_asset() -> Weight { + // Proof Size summary in bytes: + // Measured: `122` + // Estimated: `3593` + // Minimum execution time: 51_450_000 picoseconds. + Weight::from_parts(52_354_000, 3593) + .saturating_add(T::DbWeight::get().reads(7)) + .saturating_add(T::DbWeight::get().writes(3)) + } + // Storage: `ParachainInfo::ParachainId` (r:1 w:0) + // Proof: `ParachainInfo::ParachainId` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`) + // Storage: `PolkadotXcm::SupportedVersion` (r:1 w:0) + // Proof: `PolkadotXcm::SupportedVersion` (`max_values`: None, `max_size`: None, mode: `Measured`) + // Storage: `PolkadotXcm::VersionDiscoveryQueue` (r:1 w:1) + // Proof: `PolkadotXcm::VersionDiscoveryQueue` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + // Storage: `PolkadotXcm::SafeXcmVersion` (r:1 w:0) + // Proof: `PolkadotXcm::SafeXcmVersion` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + // Storage: `ParachainSystem::HostConfiguration` (r:1 w:0) + // Proof: `ParachainSystem::HostConfiguration` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + // Storage: `ParachainSystem::PendingUpwardMessages` (r:1 w:1) + // Proof: `ParachainSystem::PendingUpwardMessages` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + pub fn initiate_teleport() -> Weight { + // Proof Size summary in bytes: + // Measured: `70` + // Estimated: `3535` + // Minimum execution time: 29_711_000 picoseconds. + Weight::from_parts(30_759_000, 3535) + .saturating_add(T::DbWeight::get().reads(6)) + .saturating_add(T::DbWeight::get().writes(2)) + } +} diff --git a/cumulus/parachains/runtimes/bridge-hubs/bridge-hub-westend/src/weights/xcm/pallet_xcm_benchmarks_generic.rs b/cumulus/parachains/runtimes/bridge-hubs/bridge-hub-westend/src/weights/xcm/pallet_xcm_benchmarks_generic.rs new file mode 100644 index 000000000000..64c2c961f30f --- /dev/null +++ b/cumulus/parachains/runtimes/bridge-hubs/bridge-hub-westend/src/weights/xcm/pallet_xcm_benchmarks_generic.rs @@ -0,0 +1,329 @@ +// Copyright (C) Parity Technologies (UK) Ltd. +// This file is part of Cumulus. + +// Cumulus 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. + +// Cumulus 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 Cumulus. 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-07-31, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! WORST CASE MAP SIZE: `1000000` +//! HOSTNAME: `runner-ynta1nyy-project-238-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz` +//! EXECUTION: , WASM-EXECUTION: Compiled, CHAIN: Some("bridge-hub-westend-dev"), DB CACHE: 1024 + +// Executed Command: +// ./target/production/polkadot-parachain +// benchmark +// pallet +// --template=./templates/xcm-bench-template.hbs +// --chain=bridge-hub-westend-dev +// --wasm-execution=compiled +// --pallet=pallet_xcm_benchmarks::generic +// --no-storage-info +// --no-median-slopes +// --no-min-squares +// --extrinsic=* +// --steps=50 +// --repeat=20 +// --json +// --header=./file_header.txt +// --output=./parachains/runtimes/bridge-hubs/bridge-hub-westend/src/weights/xcm/pallet_xcm_benchmarks_generic.rs + +#![cfg_attr(rustfmt, rustfmt_skip)] +#![allow(unused_parens)] +#![allow(unused_imports)] + +use frame_support::{traits::Get, weights::Weight}; +use sp_std::marker::PhantomData; + +/// Weights for `pallet_xcm_benchmarks::generic`. +pub struct WeightInfo(PhantomData); +impl WeightInfo { + // Storage: `ParachainInfo::ParachainId` (r:1 w:0) + // Proof: `ParachainInfo::ParachainId` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`) + // Storage: `PolkadotXcm::SupportedVersion` (r:1 w:0) + // Proof: `PolkadotXcm::SupportedVersion` (`max_values`: None, `max_size`: None, mode: `Measured`) + // Storage: `PolkadotXcm::VersionDiscoveryQueue` (r:1 w:1) + // Proof: `PolkadotXcm::VersionDiscoveryQueue` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + // Storage: `PolkadotXcm::SafeXcmVersion` (r:1 w:0) + // Proof: `PolkadotXcm::SafeXcmVersion` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + // Storage: `ParachainSystem::HostConfiguration` (r:1 w:0) + // Proof: `ParachainSystem::HostConfiguration` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + // Storage: `ParachainSystem::PendingUpwardMessages` (r:1 w:1) + // Proof: `ParachainSystem::PendingUpwardMessages` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + pub fn report_holding() -> Weight { + // Proof Size summary in bytes: + // Measured: `70` + // Estimated: `3535` + // Minimum execution time: 33_141_000 picoseconds. + Weight::from_parts(34_380_000, 3535) + .saturating_add(T::DbWeight::get().reads(6)) + .saturating_add(T::DbWeight::get().writes(2)) + } + pub fn buy_execution() -> Weight { + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 2_803_000 picoseconds. + Weight::from_parts(2_904_000, 0) + } + // Storage: `PolkadotXcm::Queries` (r:1 w:0) + // Proof: `PolkadotXcm::Queries` (`max_values`: None, `max_size`: None, mode: `Measured`) + pub fn query_response() -> Weight { + // Proof Size summary in bytes: + // Measured: `32` + // Estimated: `3497` + // Minimum execution time: 10_308_000 picoseconds. + Weight::from_parts(10_753_000, 3497) + .saturating_add(T::DbWeight::get().reads(1)) + } + pub fn transact() -> Weight { + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 11_499_000 picoseconds. + Weight::from_parts(11_786_000, 0) + } + pub fn refund_surplus() -> Weight { + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 3_102_000 picoseconds. + Weight::from_parts(3_161_000, 0) + } + pub fn set_error_handler() -> Weight { + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 2_678_000 picoseconds. + Weight::from_parts(2_795_000, 0) + } + pub fn set_appendix() -> Weight { + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 2_685_000 picoseconds. + Weight::from_parts(2_758_000, 0) + } + pub fn clear_error() -> Weight { + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 2_590_000 picoseconds. + Weight::from_parts(2_754_000, 0) + } + pub fn descend_origin() -> Weight { + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 3_297_000 picoseconds. + Weight::from_parts(3_419_000, 0) + } + pub fn clear_origin() -> Weight { + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 2_606_000 picoseconds. + Weight::from_parts(2_717_000, 0) + } + // Storage: `ParachainInfo::ParachainId` (r:1 w:0) + // Proof: `ParachainInfo::ParachainId` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`) + // Storage: `PolkadotXcm::SupportedVersion` (r:1 w:0) + // Proof: `PolkadotXcm::SupportedVersion` (`max_values`: None, `max_size`: None, mode: `Measured`) + // Storage: `PolkadotXcm::VersionDiscoveryQueue` (r:1 w:1) + // Proof: `PolkadotXcm::VersionDiscoveryQueue` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + // Storage: `PolkadotXcm::SafeXcmVersion` (r:1 w:0) + // Proof: `PolkadotXcm::SafeXcmVersion` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + // Storage: `ParachainSystem::HostConfiguration` (r:1 w:0) + // Proof: `ParachainSystem::HostConfiguration` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + // Storage: `ParachainSystem::PendingUpwardMessages` (r:1 w:1) + // Proof: `ParachainSystem::PendingUpwardMessages` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + pub fn report_error() -> Weight { + // Proof Size summary in bytes: + // Measured: `70` + // Estimated: `3535` + // Minimum execution time: 26_242_000 picoseconds. + Weight::from_parts(29_220_000, 3535) + .saturating_add(T::DbWeight::get().reads(6)) + .saturating_add(T::DbWeight::get().writes(2)) + } + // Storage: `PolkadotXcm::AssetTraps` (r:1 w:1) + // Proof: `PolkadotXcm::AssetTraps` (`max_values`: None, `max_size`: None, mode: `Measured`) + pub fn claim_asset() -> Weight { + // Proof Size summary in bytes: + // Measured: `90` + // Estimated: `3555` + // Minimum execution time: 14_106_000 picoseconds. + Weight::from_parts(14_535_000, 3555) + .saturating_add(T::DbWeight::get().reads(1)) + .saturating_add(T::DbWeight::get().writes(1)) + } + pub fn trap() -> Weight { + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 2_634_000 picoseconds. + Weight::from_parts(2_763_000, 0) + } + // Storage: `PolkadotXcm::VersionNotifyTargets` (r:1 w:1) + // Proof: `PolkadotXcm::VersionNotifyTargets` (`max_values`: None, `max_size`: None, mode: `Measured`) + // Storage: `PolkadotXcm::SupportedVersion` (r:1 w:0) + // Proof: `PolkadotXcm::SupportedVersion` (`max_values`: None, `max_size`: None, mode: `Measured`) + // Storage: `PolkadotXcm::VersionDiscoveryQueue` (r:1 w:1) + // Proof: `PolkadotXcm::VersionDiscoveryQueue` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + // Storage: `PolkadotXcm::SafeXcmVersion` (r:1 w:0) + // Proof: `PolkadotXcm::SafeXcmVersion` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + // Storage: `ParachainSystem::HostConfiguration` (r:1 w:0) + // Proof: `ParachainSystem::HostConfiguration` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + // Storage: `ParachainSystem::PendingUpwardMessages` (r:1 w:1) + // Proof: `ParachainSystem::PendingUpwardMessages` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + pub fn subscribe_version() -> Weight { + // Proof Size summary in bytes: + // Measured: `38` + // Estimated: `3503` + // Minimum execution time: 27_802_000 picoseconds. + Weight::from_parts(28_495_000, 3503) + .saturating_add(T::DbWeight::get().reads(6)) + .saturating_add(T::DbWeight::get().writes(3)) + } + // Storage: `PolkadotXcm::VersionNotifyTargets` (r:0 w:1) + // Proof: `PolkadotXcm::VersionNotifyTargets` (`max_values`: None, `max_size`: None, mode: `Measured`) + pub fn unsubscribe_version() -> Weight { + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 4_683_000 picoseconds. + Weight::from_parts(4_907_000, 0) + .saturating_add(T::DbWeight::get().writes(1)) + } + pub fn burn_asset() -> Weight { + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 3_941_000 picoseconds. + Weight::from_parts(4_080_000, 0) + } + pub fn expect_asset() -> Weight { + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 2_775_000 picoseconds. + Weight::from_parts(2_908_000, 0) + } + pub fn expect_origin() -> Weight { + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 2_743_000 picoseconds. + Weight::from_parts(2_863_000, 0) + } + pub fn expect_error() -> Weight { + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 2_641_000 picoseconds. + Weight::from_parts(2_771_000, 0) + } + pub fn expect_transact_status() -> Weight { + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 2_838_000 picoseconds. + Weight::from_parts(2_950_000, 0) + } + // Storage: `ParachainInfo::ParachainId` (r:1 w:0) + // Proof: `ParachainInfo::ParachainId` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`) + // Storage: `PolkadotXcm::SupportedVersion` (r:1 w:0) + // Proof: `PolkadotXcm::SupportedVersion` (`max_values`: None, `max_size`: None, mode: `Measured`) + // Storage: `PolkadotXcm::VersionDiscoveryQueue` (r:1 w:1) + // Proof: `PolkadotXcm::VersionDiscoveryQueue` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + // Storage: `PolkadotXcm::SafeXcmVersion` (r:1 w:0) + // Proof: `PolkadotXcm::SafeXcmVersion` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + // Storage: `ParachainSystem::HostConfiguration` (r:1 w:0) + // Proof: `ParachainSystem::HostConfiguration` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + // Storage: `ParachainSystem::PendingUpwardMessages` (r:1 w:1) + // Proof: `ParachainSystem::PendingUpwardMessages` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + pub fn query_pallet() -> Weight { + // Proof Size summary in bytes: + // Measured: `70` + // Estimated: `3535` + // Minimum execution time: 29_284_000 picoseconds. + Weight::from_parts(29_867_000, 3535) + .saturating_add(T::DbWeight::get().reads(6)) + .saturating_add(T::DbWeight::get().writes(2)) + } + pub fn expect_pallet() -> Weight { + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 4_734_000 picoseconds. + Weight::from_parts(4_876_000, 0) + } + // Storage: `ParachainInfo::ParachainId` (r:1 w:0) + // Proof: `ParachainInfo::ParachainId` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`) + // Storage: `PolkadotXcm::SupportedVersion` (r:1 w:0) + // Proof: `PolkadotXcm::SupportedVersion` (`max_values`: None, `max_size`: None, mode: `Measured`) + // Storage: `PolkadotXcm::VersionDiscoveryQueue` (r:1 w:1) + // Proof: `PolkadotXcm::VersionDiscoveryQueue` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + // Storage: `PolkadotXcm::SafeXcmVersion` (r:1 w:0) + // Proof: `PolkadotXcm::SafeXcmVersion` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + // Storage: `ParachainSystem::HostConfiguration` (r:1 w:0) + // Proof: `ParachainSystem::HostConfiguration` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + // Storage: `ParachainSystem::PendingUpwardMessages` (r:1 w:1) + // Proof: `ParachainSystem::PendingUpwardMessages` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + pub fn report_transact_status() -> Weight { + // Proof Size summary in bytes: + // Measured: `70` + // Estimated: `3535` + // Minimum execution time: 26_154_000 picoseconds. + Weight::from_parts(26_851_000, 3535) + .saturating_add(T::DbWeight::get().reads(6)) + .saturating_add(T::DbWeight::get().writes(2)) + } + pub fn clear_transact_status() -> Weight { + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 2_678_000 picoseconds. + Weight::from_parts(2_748_000, 0) + } + pub fn set_topic() -> Weight { + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 2_585_000 picoseconds. + Weight::from_parts(2_697_000, 0) + } + pub fn clear_topic() -> Weight { + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 2_576_000 picoseconds. + Weight::from_parts(2_701_000, 0) + } + pub fn set_fees_mode() -> Weight { + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 2_597_000 picoseconds. + Weight::from_parts(2_735_000, 0) + } + pub fn unpaid_execution() -> Weight { + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 2_744_000 picoseconds. + Weight::from_parts(2_809_000, 0) + } +} diff --git a/cumulus/parachains/runtimes/bridge-hubs/bridge-hub-westend/src/xcm_config.rs b/cumulus/parachains/runtimes/bridge-hubs/bridge-hub-westend/src/xcm_config.rs new file mode 100644 index 000000000000..ec94063cd6e8 --- /dev/null +++ b/cumulus/parachains/runtimes/bridge-hubs/bridge-hub-westend/src/xcm_config.rs @@ -0,0 +1,272 @@ +// Copyright (C) Parity Technologies (UK) Ltd. +// This file is part of Cumulus. + +// Cumulus 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. + +// Cumulus 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 Cumulus. If not, see . + +use super::{ + AccountId, AllPalletsWithSystem, Balances, ParachainInfo, ParachainSystem, PolkadotXcm, + Runtime, RuntimeCall, RuntimeEvent, RuntimeOrigin, WeightToFee, XcmpQueue, +}; +use frame_support::{ + match_types, parameter_types, + traits::{ConstU32, Contains, Everything, Nothing}, +}; +use frame_system::EnsureRoot; +use pallet_xcm::XcmPassthrough; +use parachains_common::{impls::ToStakingPot, xcm_config::ConcreteNativeAssetFrom}; +use polkadot_parachain_primitives::primitives::Sibling; +use xcm::latest::prelude::*; +use xcm_builder::{ + AccountId32Aliases, AllowExplicitUnpaidExecutionFrom, AllowKnownQueryResponses, + AllowSubscriptionsFrom, AllowTopLevelPaidExecutionFrom, CurrencyAdapter, + DenyReserveTransferToRelayChain, DenyThenTry, EnsureXcmOrigin, IsConcrete, ParentAsSuperuser, + ParentIsPreset, RelayChainAsNative, SiblingParachainAsNative, SiblingParachainConvertsVia, + SignedAccountId32AsNative, SignedToAccountId32, SovereignSignedViaLocation, TakeWeightCredit, + TrailingSetTopicAsId, UsingComponents, WeightInfoBounds, WithComputedOrigin, WithUniqueTopic, +}; +use xcm_executor::{traits::WithOriginFilter, XcmExecutor}; + +parameter_types! { + pub const KsmRelayLocation: MultiLocation = MultiLocation::parent(); + pub const RelayNetwork: Option = Some(NetworkId::Westend); + pub RelayChainOrigin: RuntimeOrigin = cumulus_pallet_xcm::Origin::Relay.into(); + pub UniversalLocation: InteriorMultiLocation = + X2(GlobalConsensus(RelayNetwork::get().unwrap()), Parachain(ParachainInfo::parachain_id().into())); + pub const MaxInstructions: u32 = 100; + pub const MaxAssetsIntoHolding: u32 = 64; + pub const GovernanceLocation: MultiLocation = MultiLocation::parent(); + pub const FellowshipLocation: MultiLocation = MultiLocation::parent(); +} + +/// Type for specifying how a `MultiLocation` can be converted into an `AccountId`. This is used +/// when determining ownership of accounts for asset transacting and when attempting to use XCM +/// `Transact` in order to determine the dispatch Origin. +pub type LocationToAccountId = ( + // The parent (Relay-chain) origin converts to the parent `AccountId`. + ParentIsPreset, + // Sibling parachain origins convert to AccountId via the `ParaId::into`. + SiblingParachainConvertsVia, + // Straight up local `AccountId32` origins just alias directly to `AccountId`. + AccountId32Aliases, +); + +/// Means for transacting the native currency on this chain. +pub type CurrencyTransactor = CurrencyAdapter< + // Use this currency: + Balances, + // Use this currency when it is a fungible asset matching the given location or name: + IsConcrete, + // Do a simple punn to convert an AccountId32 MultiLocation into a native chain account ID: + LocationToAccountId, + // Our chain's account ID type (we can't get away without mentioning it explicitly): + AccountId, + // We don't track any teleports of `Balances`. + (), +>; + +/// This is the type we use to convert an (incoming) XCM origin into a local `Origin` instance, +/// ready for dispatching a transaction with Xcm's `Transact`. There is an `OriginKind` which can +/// biases the kind of local `Origin` it will become. +pub type XcmOriginToTransactDispatchOrigin = ( + // Sovereign account converter; this attempts to derive an `AccountId` from the origin location + // using `LocationToAccountId` and then turn that into the usual `Signed` origin. Useful for + // foreign chains who want to have a local sovereign account on this chain which they control. + SovereignSignedViaLocation, + // Native converter for Relay-chain (Parent) location; will converts to a `Relay` origin when + // recognized. + RelayChainAsNative, + // Native converter for sibling Parachains; will convert to a `SiblingPara` origin when + // recognized. + SiblingParachainAsNative, + // Superuser converter for the Relay-chain (Parent) location. This will allow it to issue a + // transaction from the Root origin. + ParentAsSuperuser, + // Native signed account converter; this just converts an `AccountId32` origin into a normal + // `RuntimeOrigin::Signed` origin of the same 32-byte value. + SignedAccountId32AsNative, + // Xcm origins can be represented natively under the Xcm pallet's Xcm origin. + XcmPassthrough, +); + +match_types! { + pub type ParentOrParentsPlurality: impl Contains = { + MultiLocation { parents: 1, interior: Here } | + MultiLocation { parents: 1, interior: X1(Plurality { .. }) } + }; + pub type ParentOrSiblings: impl Contains = { + MultiLocation { parents: 1, interior: Here } | + MultiLocation { parents: 1, interior: X1(_) } + }; +} +/// A call filter for the XCM Transact instruction. This is a temporary measure until we properly +/// account for proof size weights. +/// +/// Calls that are allowed through this filter must: +/// 1. Have a fixed weight; +/// 2. Cannot lead to another call being made; +/// 3. Have a defined proof size weight, e.g. no unbounded vecs in call parameters. +pub struct SafeCallFilter; +impl Contains for SafeCallFilter { + fn contains(call: &RuntimeCall) -> bool { + #[cfg(feature = "runtime-benchmarks")] + { + if matches!(call, RuntimeCall::System(frame_system::Call::remark_with_event { .. })) { + return true + } + } + + matches!( + call, + RuntimeCall::PolkadotXcm(pallet_xcm::Call::force_xcm_version { .. }) | + RuntimeCall::System( + frame_system::Call::set_heap_pages { .. } | + frame_system::Call::set_code { .. } | + frame_system::Call::set_code_without_checks { .. } | + frame_system::Call::kill_prefix { .. }, + ) | RuntimeCall::ParachainSystem(..) | + RuntimeCall::Timestamp(..) | + RuntimeCall::Balances(..) | + RuntimeCall::CollatorSelection( + pallet_collator_selection::Call::set_desired_candidates { .. } | + pallet_collator_selection::Call::set_candidacy_bond { .. } | + pallet_collator_selection::Call::register_as_candidate { .. } | + pallet_collator_selection::Call::leave_intent { .. } | + pallet_collator_selection::Call::set_invulnerables { .. } | + pallet_collator_selection::Call::add_invulnerable { .. } | + pallet_collator_selection::Call::remove_invulnerable { .. }, + ) | RuntimeCall::Session(pallet_session::Call::purge_keys { .. }) | + RuntimeCall::XcmpQueue(..) | + RuntimeCall::DmpQueue(..) + ) + } +} + +pub type Barrier = TrailingSetTopicAsId< + DenyThenTry< + DenyReserveTransferToRelayChain, + ( + // Allow local users to buy weight credit. + TakeWeightCredit, + // Expected responses are OK. + AllowKnownQueryResponses, + WithComputedOrigin< + ( + // If the message is one that immediately attemps to pay for execution, then + // allow it. + AllowTopLevelPaidExecutionFrom, + // Parent and its pluralities (i.e. governance bodies) get free execution. + AllowExplicitUnpaidExecutionFrom, + // Subscriptions for version tracking are OK. + AllowSubscriptionsFrom, + ), + UniversalLocation, + ConstU32<8>, + >, + ), + >, +>; + +pub struct XcmConfig; +impl xcm_executor::Config for XcmConfig { + type RuntimeCall = RuntimeCall; + type XcmSender = XcmRouter; + type AssetTransactor = CurrencyTransactor; + type OriginConverter = XcmOriginToTransactDispatchOrigin; + // BridgeHub does not recognize a reserve location for any asset. Users must teleport KSM + // where allowed (e.g. with the Relay Chain). + type IsReserve = (); + /// Only allow teleportation of KSM. + type IsTeleporter = ConcreteNativeAssetFrom; + type UniversalLocation = UniversalLocation; + type Barrier = Barrier; + type Weigher = WeightInfoBounds< + crate::weights::xcm::BridgeHubWestendXcmWeight, + RuntimeCall, + MaxInstructions, + >; + type Trader = + UsingComponents>; + type ResponseHandler = PolkadotXcm; + type AssetTrap = PolkadotXcm; + type AssetClaims = PolkadotXcm; + type SubscriptionService = PolkadotXcm; + type PalletInstancesInfo = AllPalletsWithSystem; + type MaxAssetsIntoHolding = MaxAssetsIntoHolding; + type AssetLocker = (); + type AssetExchanger = (); + type FeeManager = (); + type MessageExporter = (); + type UniversalAliases = Nothing; + type CallDispatcher = WithOriginFilter; + type SafeCallFilter = SafeCallFilter; + type Aliasers = Nothing; +} + +/// Converts a local signed origin into an XCM multilocation. +/// Forms the basis for local origins sending/executing XCMs. +pub type LocalOriginToLocation = SignedToAccountId32; + +/// The means for routing XCM messages which are not for local execution into the right message +/// queues. +pub type XcmRouter = WithUniqueTopic<( + // Two routers - use UMP to communicate with the relay chain: + cumulus_primitives_utility::ParentAsUmp, + // ..and XCMP to communicate with the sibling chains. + XcmpQueue, +)>; + +#[cfg(feature = "runtime-benchmarks")] +parameter_types! { + pub ReachableDest: Option = Some(Parent.into()); +} + +impl pallet_xcm::Config for Runtime { + type RuntimeEvent = RuntimeEvent; + // We want to disallow users sending (arbitrary) XCMs from this chain. + type SendXcmOrigin = EnsureXcmOrigin; + type XcmRouter = XcmRouter; + // We support local origins dispatching XCM executions in principle... + type ExecuteXcmOrigin = EnsureXcmOrigin; + // ... but disallow generic XCM execution. As a result only teleports are allowed. + type XcmExecuteFilter = Nothing; + type XcmExecutor = XcmExecutor; + type XcmTeleportFilter = Everything; + type XcmReserveTransferFilter = Nothing; // This parachain is not meant as a reserve location. + type Weigher = WeightInfoBounds< + crate::weights::xcm::BridgeHubWestendXcmWeight, + RuntimeCall, + MaxInstructions, + >; + type UniversalLocation = UniversalLocation; + type RuntimeOrigin = RuntimeOrigin; + type RuntimeCall = RuntimeCall; + const VERSION_DISCOVERY_QUEUE_SIZE: u32 = 100; + type AdvertisedXcmVersion = pallet_xcm::CurrentXcmVersion; + type Currency = Balances; + type CurrencyMatcher = (); + type TrustedLockers = (); + type SovereignAccountOf = LocationToAccountId; + type MaxLockers = ConstU32<8>; + type WeightInfo = crate::weights::pallet_xcm::WeightInfo; + #[cfg(feature = "runtime-benchmarks")] + type ReachableDest = ReachableDest; + type AdminOrigin = EnsureRoot; + type MaxRemoteLockConsumers = ConstU32<0>; + type RemoteLockConsumerIdentifier = (); +} + +impl cumulus_pallet_xcm::Config for Runtime { + type RuntimeEvent = RuntimeEvent; + type XcmExecutor = XcmExecutor; +} diff --git a/cumulus/parachains/runtimes/bridge-hubs/bridge-hub-westend/tests/tests.rs b/cumulus/parachains/runtimes/bridge-hubs/bridge-hub-westend/tests/tests.rs new file mode 100644 index 000000000000..4e0feca115e5 --- /dev/null +++ b/cumulus/parachains/runtimes/bridge-hubs/bridge-hub-westend/tests/tests.rs @@ -0,0 +1,57 @@ +// Copyright (C) Parity Technologies (UK) Ltd. +// This file is part of Cumulus. + +// Cumulus 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. + +// Cumulus 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 Cumulus. If not, see . + +pub use bridge_hub_westend_runtime::{ + xcm_config::XcmConfig, AllPalletsWithoutSystem, Balances, ExistentialDeposit, ParachainSystem, + PolkadotXcm, Runtime, RuntimeEvent, SessionKeys, +}; +use codec::Decode; +use frame_support::parameter_types; +use parachains_common::{westend::fee::WeightToFee, AccountId, AuraId}; + +const ALICE: [u8; 32] = [1u8; 32]; + +parameter_types! { + pub CheckingAccount: AccountId = PolkadotXcm::check_account(); +} + +bridge_hub_test_utils::test_cases::include_teleports_for_native_asset_works!( + Runtime, + AllPalletsWithoutSystem, + XcmConfig, + CheckingAccount, + WeightToFee, + ParachainSystem, + bridge_hub_test_utils::CollatorSessionKeys::new( + AccountId::from(ALICE), + AccountId::from(ALICE), + SessionKeys { aura: AuraId::from(sp_core::sr25519::Public::from_raw(ALICE)) } + ), + ExistentialDeposit::get(), + Box::new(|runtime_event_encoded: Vec| { + match RuntimeEvent::decode(&mut &runtime_event_encoded[..]) { + Ok(RuntimeEvent::PolkadotXcm(event)) => Some(event), + _ => None, + } + }), + Box::new(|runtime_event_encoded: Vec| { + match RuntimeEvent::decode(&mut &runtime_event_encoded[..]) { + Ok(RuntimeEvent::XcmpQueue(event)) => Some(event), + _ => None, + } + }), + 1002 +); diff --git a/cumulus/polkadot-parachain/chain-specs/bridge-hub-kusama.json b/cumulus/polkadot-parachain/chain-specs/bridge-hub-kusama.json deleted file mode 120000 index fc91654c6ff4..000000000000 --- a/cumulus/polkadot-parachain/chain-specs/bridge-hub-kusama.json +++ /dev/null @@ -1 +0,0 @@ -../../parachains/chain-specs/bridge-hub-kusama.json \ No newline at end of file diff --git a/cumulus/polkadot-parachain/src/chain_spec/bridge_hubs.rs b/cumulus/polkadot-parachain/src/chain_spec/bridge_hubs.rs index 5de4a49f8275..6ab2ede165a2 100644 --- a/cumulus/polkadot-parachain/src/chain_spec/bridge_hubs.rs +++ b/cumulus/polkadot-parachain/src/chain_spec/bridge_hubs.rs @@ -32,17 +32,6 @@ pub enum BridgeHubRuntimeType { Wococo, WococoLocal, - Kusama, - KusamaLocal, - // used by benchmarks - KusamaDevelopment, - - Polkadot, - PolkadotLocal, - // used by benchmarks - PolkadotDevelopment, - - // used with kusama runtime Westend, } @@ -51,13 +40,6 @@ impl FromStr for BridgeHubRuntimeType { fn from_str(value: &str) -> Result { match value { - polkadot::BRIDGE_HUB_POLKADOT => Ok(BridgeHubRuntimeType::Polkadot), - polkadot::BRIDGE_HUB_POLKADOT_LOCAL => Ok(BridgeHubRuntimeType::PolkadotLocal), - polkadot::BRIDGE_HUB_POLKADOT_DEVELOPMENT => - Ok(BridgeHubRuntimeType::PolkadotDevelopment), - kusama::BRIDGE_HUB_KUSAMA => Ok(BridgeHubRuntimeType::Kusama), - kusama::BRIDGE_HUB_KUSAMA_LOCAL => Ok(BridgeHubRuntimeType::KusamaLocal), - kusama::BRIDGE_HUB_KUSAMA_DEVELOPMENT => Ok(BridgeHubRuntimeType::KusamaDevelopment), westend::BRIDGE_HUB_WESTEND => Ok(BridgeHubRuntimeType::Westend), rococo::BRIDGE_HUB_ROCOCO => Ok(BridgeHubRuntimeType::Rococo), rococo::BRIDGE_HUB_ROCOCO_LOCAL => Ok(BridgeHubRuntimeType::RococoLocal), @@ -74,14 +56,6 @@ impl BridgeHubRuntimeType { pub fn chain_spec_from_json_file(&self, path: PathBuf) -> Result, String> { match self { - BridgeHubRuntimeType::Polkadot | - BridgeHubRuntimeType::PolkadotLocal | - BridgeHubRuntimeType::PolkadotDevelopment => - Ok(Box::new(polkadot::BridgeHubChainSpec::from_json_file(path)?)), - BridgeHubRuntimeType::Kusama | - BridgeHubRuntimeType::KusamaLocal | - BridgeHubRuntimeType::KusamaDevelopment => - Ok(Box::new(kusama::BridgeHubChainSpec::from_json_file(path)?)), BridgeHubRuntimeType::Westend => Ok(Box::new(westend::BridgeHubChainSpec::from_json_file(path)?)), BridgeHubRuntimeType::Rococo | @@ -95,38 +69,6 @@ impl BridgeHubRuntimeType { pub fn load_config(&self) -> Result, String> { match self { - BridgeHubRuntimeType::Polkadot => - Ok(Box::new(polkadot::BridgeHubChainSpec::from_json_bytes( - &include_bytes!("../../chain-specs/bridge-hub-polkadot.json")[..], - )?)), - BridgeHubRuntimeType::PolkadotLocal => Ok(Box::new(polkadot::local_config( - polkadot::BRIDGE_HUB_POLKADOT_LOCAL, - "Polkadot BridgeHub Local", - "polkadot-local", - ParaId::new(1002), - ))), - BridgeHubRuntimeType::PolkadotDevelopment => Ok(Box::new(polkadot::local_config( - polkadot::BRIDGE_HUB_POLKADOT_DEVELOPMENT, - "Polkadot BridgeHub Development", - "polkadot-dev", - ParaId::new(1002), - ))), - BridgeHubRuntimeType::Kusama => - Ok(Box::new(kusama::BridgeHubChainSpec::from_json_bytes( - &include_bytes!("../../chain-specs/bridge-hub-kusama.json")[..], - )?)), - BridgeHubRuntimeType::KusamaLocal => Ok(Box::new(kusama::local_config( - kusama::BRIDGE_HUB_KUSAMA_LOCAL, - "Kusama BridgeHub Local", - "kusama-local", - ParaId::new(1003), - ))), - BridgeHubRuntimeType::KusamaDevelopment => Ok(Box::new(kusama::local_config( - kusama::BRIDGE_HUB_KUSAMA_DEVELOPMENT, - "Kusama BridgeHub Development", - "kusama-dev", - ParaId::new(1003), - ))), BridgeHubRuntimeType::Westend => Ok(Box::new(westend::BridgeHubChainSpec::from_json_bytes( &include_bytes!("../../chain-specs/bridge-hub-westend.json")[..], @@ -358,8 +300,8 @@ pub mod wococo { } } -/// Sub-module for Kusama setup -pub mod kusama { +/// Sub-module for Westend setup +pub mod westend { use super::{BridgeHubBalance, ParaId}; use crate::chain_spec::{ get_account_id_from_seed, get_collator_keys_from_seed, Extensions, SAFE_XCM_VERSION, @@ -368,16 +310,16 @@ pub mod kusama { use sc_chain_spec::ChainType; use sp_core::sr25519; - pub(crate) const BRIDGE_HUB_KUSAMA: &str = "bridge-hub-kusama"; - pub(crate) const BRIDGE_HUB_KUSAMA_LOCAL: &str = "bridge-hub-kusama-local"; - pub(crate) const BRIDGE_HUB_KUSAMA_DEVELOPMENT: &str = "bridge-hub-kusama-dev"; - const BRIDGE_HUB_KUSAMA_ED: BridgeHubBalance = - parachains_common::kusama::currency::EXISTENTIAL_DEPOSIT; + pub(crate) const BRIDGE_HUB_WESTEND: &str = "bridge-hub-westend"; + pub(crate) const BRIDGE_HUB_WESTEND_LOCAL: &str = "bridge-hub-westend-local"; + pub(crate) const BRIDGE_HUB_WESTEND_DEVELOPMENT: &str = "bridge-hub-westend-dev"; + const BRIDGE_HUB_WESTEND_ED: BridgeHubBalance = + parachains_common::westend::currency::EXISTENTIAL_DEPOSIT; /// Specialized `ChainSpec` for the normal parachain runtime. pub type BridgeHubChainSpec = - sc_service::GenericChainSpec; - pub type RuntimeApi = bridge_hub_kusama_runtime::RuntimeApi; + sc_service::GenericChainSpec; + pub type RuntimeApi = bridge_hub_westend_runtime::RuntimeApi; pub fn local_config( id: &str, @@ -439,38 +381,38 @@ pub mod kusama { invulnerables: Vec<(AccountId, AuraId)>, endowed_accounts: Vec, id: ParaId, - ) -> bridge_hub_kusama_runtime::RuntimeGenesisConfig { - bridge_hub_kusama_runtime::RuntimeGenesisConfig { - system: bridge_hub_kusama_runtime::SystemConfig { - code: bridge_hub_kusama_runtime::WASM_BINARY + ) -> bridge_hub_westend_runtime::RuntimeGenesisConfig { + bridge_hub_westend_runtime::RuntimeGenesisConfig { + system: bridge_hub_westend_runtime::SystemConfig { + code: bridge_hub_westend_runtime::WASM_BINARY .expect("WASM binary was not build, please build it!") .to_vec(), ..Default::default() }, - balances: bridge_hub_kusama_runtime::BalancesConfig { + balances: bridge_hub_westend_runtime::BalancesConfig { balances: endowed_accounts .iter() .cloned() - .map(|k| (k, BRIDGE_HUB_KUSAMA_ED * 524_288)) + .map(|k| (k, BRIDGE_HUB_WESTEND_ED * 524_288)) .collect(), }, - parachain_info: bridge_hub_kusama_runtime::ParachainInfoConfig { + parachain_info: bridge_hub_westend_runtime::ParachainInfoConfig { parachain_id: id, ..Default::default() }, - collator_selection: bridge_hub_kusama_runtime::CollatorSelectionConfig { + collator_selection: bridge_hub_westend_runtime::CollatorSelectionConfig { invulnerables: invulnerables.iter().cloned().map(|(acc, _)| acc).collect(), - candidacy_bond: BRIDGE_HUB_KUSAMA_ED * 16, + candidacy_bond: BRIDGE_HUB_WESTEND_ED * 16, ..Default::default() }, - session: bridge_hub_kusama_runtime::SessionConfig { + session: bridge_hub_westend_runtime::SessionConfig { keys: invulnerables .into_iter() .map(|(acc, aura)| { ( - acc.clone(), // account id - acc, // validator id - bridge_hub_kusama_runtime::SessionKeys { aura }, // session keys + acc.clone(), // account id + acc, // validator id + bridge_hub_westend_runtime::SessionKeys { aura }, // session keys ) }) .collect(), @@ -478,147 +420,14 @@ pub mod kusama { aura: Default::default(), aura_ext: Default::default(), parachain_system: Default::default(), - polkadot_xcm: bridge_hub_kusama_runtime::PolkadotXcmConfig { + polkadot_xcm: bridge_hub_westend_runtime::PolkadotXcmConfig { safe_xcm_version: Some(SAFE_XCM_VERSION), ..Default::default() }, } } -} - -/// Sub-module for Westend setup (uses Kusama runtime) -pub mod westend { - use crate::chain_spec::bridge_hubs::kusama; pub(crate) const BRIDGE_HUB_WESTEND: &str = "bridge-hub-westend"; - pub type BridgeHubChainSpec = kusama::BridgeHubChainSpec; - pub type RuntimeApi = bridge_hub_kusama_runtime::RuntimeApi; -} - -/// Sub-module for Polkadot setup -pub mod polkadot { - use super::{BridgeHubBalance, ParaId}; - use crate::chain_spec::{ - get_account_id_from_seed, get_collator_keys_from_seed, Extensions, SAFE_XCM_VERSION, - }; - use parachains_common::{AccountId, AuraId}; - use sc_chain_spec::ChainType; - use sp_core::sr25519; - - pub(crate) const BRIDGE_HUB_POLKADOT: &str = "bridge-hub-polkadot"; - pub(crate) const BRIDGE_HUB_POLKADOT_LOCAL: &str = "bridge-hub-polkadot-local"; - pub(crate) const BRIDGE_HUB_POLKADOT_DEVELOPMENT: &str = "bridge-hub-polkadot-dev"; - const BRIDGE_HUB_POLKADOT_ED: BridgeHubBalance = - parachains_common::polkadot::currency::EXISTENTIAL_DEPOSIT; - - /// Specialized `ChainSpec` for the normal parachain runtime. - pub type BridgeHubChainSpec = - sc_service::GenericChainSpec; - pub type RuntimeApi = bridge_hub_polkadot_runtime::RuntimeApi; - - pub fn local_config( - id: &str, - chain_name: &str, - relay_chain: &str, - para_id: ParaId, - ) -> BridgeHubChainSpec { - let mut properties = sc_chain_spec::Properties::new(); - properties.insert("ss58Format".into(), 0.into()); - properties.insert("tokenSymbol".into(), "DOT".into()); - properties.insert("tokenDecimals".into(), 10.into()); - - BridgeHubChainSpec::from_genesis( - // Name - chain_name, - // ID - super::ensure_id(id).expect("invalid id"), - ChainType::Local, - move || { - genesis( - // initial collators. - vec![ - ( - get_account_id_from_seed::("Alice"), - get_collator_keys_from_seed::("Alice"), - ), - ( - get_account_id_from_seed::("Bob"), - get_collator_keys_from_seed::("Bob"), - ), - ], - vec![ - get_account_id_from_seed::("Alice"), - get_account_id_from_seed::("Bob"), - get_account_id_from_seed::("Charlie"), - get_account_id_from_seed::("Dave"), - get_account_id_from_seed::("Eve"), - get_account_id_from_seed::("Ferdie"), - get_account_id_from_seed::("Alice//stash"), - get_account_id_from_seed::("Bob//stash"), - get_account_id_from_seed::("Charlie//stash"), - get_account_id_from_seed::("Dave//stash"), - get_account_id_from_seed::("Eve//stash"), - get_account_id_from_seed::("Ferdie//stash"), - ], - para_id, - ) - }, - Vec::new(), - None, - None, - None, - Some(properties), - Extensions { relay_chain: relay_chain.to_string(), para_id: para_id.into() }, - ) - } - - fn genesis( - invulnerables: Vec<(AccountId, AuraId)>, - endowed_accounts: Vec, - id: ParaId, - ) -> bridge_hub_polkadot_runtime::RuntimeGenesisConfig { - bridge_hub_polkadot_runtime::RuntimeGenesisConfig { - system: bridge_hub_polkadot_runtime::SystemConfig { - code: bridge_hub_polkadot_runtime::WASM_BINARY - .expect("WASM binary was not build, please build it!") - .to_vec(), - ..Default::default() - }, - balances: bridge_hub_polkadot_runtime::BalancesConfig { - balances: endowed_accounts - .iter() - .cloned() - .map(|k| (k, BRIDGE_HUB_POLKADOT_ED * 4096)) - .collect(), - }, - parachain_info: bridge_hub_polkadot_runtime::ParachainInfoConfig { - parachain_id: id, - ..Default::default() - }, - collator_selection: bridge_hub_polkadot_runtime::CollatorSelectionConfig { - invulnerables: invulnerables.iter().cloned().map(|(acc, _)| acc).collect(), - candidacy_bond: BRIDGE_HUB_POLKADOT_ED * 16, - ..Default::default() - }, - session: bridge_hub_polkadot_runtime::SessionConfig { - keys: invulnerables - .into_iter() - .map(|(acc, aura)| { - ( - acc.clone(), // account id - acc, // validator id - bridge_hub_polkadot_runtime::SessionKeys { aura }, // session keys - ) - }) - .collect(), - }, - aura: Default::default(), - aura_ext: Default::default(), - parachain_system: Default::default(), - polkadot_xcm: bridge_hub_polkadot_runtime::PolkadotXcmConfig { - safe_xcm_version: Some(SAFE_XCM_VERSION), - ..Default::default() - }, - } - } + pub type BridgeHubChainSpec = westend::BridgeHubChainSpec; + pub type RuntimeApi = bridge_hub_westend_runtime::RuntimeApi; } From 6a94cc24106a99c2c8c788b541230b673e2017f8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?D=C3=B3nal=20Murray?= Date: Tue, 3 Oct 2023 14:42:08 +0200 Subject: [PATCH 14/78] Bridge-hub-westend fixes --- Cargo.lock | 1 + .../parachains/integration-tests/emulated/common/Cargo.toml | 2 ++ cumulus/polkadot-parachain/src/chain_spec/bridge_hubs.rs | 4 ---- 3 files changed, 3 insertions(+), 4 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 8279cddff5b8..1415b3e70792 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -6082,6 +6082,7 @@ dependencies = [ "asset-hub-westend-runtime", "bp-messages", "bridge-hub-rococo-runtime", + "bridge-hub-westend-runtime", "bridge-runtime-common", "collectives-westend-runtime", "cumulus-pallet-dmp-queue", diff --git a/cumulus/parachains/integration-tests/emulated/common/Cargo.toml b/cumulus/parachains/integration-tests/emulated/common/Cargo.toml index 30d6c7e16f35..5305a322c59d 100644 --- a/cumulus/parachains/integration-tests/emulated/common/Cargo.toml +++ b/cumulus/parachains/integration-tests/emulated/common/Cargo.toml @@ -44,6 +44,7 @@ penpal-runtime = { path = "../../../runtimes/testing/penpal" } asset-hub-westend-runtime = { path = "../../../runtimes/assets/asset-hub-westend" } collectives-westend-runtime = { path = "../../../runtimes/collectives/collectives-westend" } bridge-hub-rococo-runtime = { path = "../../../runtimes/bridge-hubs/bridge-hub-rococo" } +bridge-hub-westend-runtime = { path = "../../../runtimes/bridge-hubs/bridge-hub-westend" } xcm-emulator = { path = "../../../../xcm/xcm-emulator", default-features = false} cumulus-pallet-dmp-queue = { path = "../../../../pallets/dmp-queue" } cumulus-pallet-xcmp-queue = { path = "../../../../pallets/xcmp-queue", default-features = false} @@ -56,6 +57,7 @@ bridge-runtime-common = { path = "../../../../../bridges/bin/runtime-common" } runtime-benchmarks = [ "asset-hub-westend-runtime/runtime-benchmarks", "bridge-hub-rococo-runtime/runtime-benchmarks", + "bridge-hub-westend-runtime/runtime-benchmarks", "bridge-runtime-common/runtime-benchmarks", "collectives-westend-runtime/runtime-benchmarks", "cumulus-pallet-parachain-system/runtime-benchmarks", diff --git a/cumulus/polkadot-parachain/src/chain_spec/bridge_hubs.rs b/cumulus/polkadot-parachain/src/chain_spec/bridge_hubs.rs index 6ab2ede165a2..b4c6dc6f5c5a 100644 --- a/cumulus/polkadot-parachain/src/chain_spec/bridge_hubs.rs +++ b/cumulus/polkadot-parachain/src/chain_spec/bridge_hubs.rs @@ -426,8 +426,4 @@ pub mod westend { }, } } - - pub(crate) const BRIDGE_HUB_WESTEND: &str = "bridge-hub-westend"; - pub type BridgeHubChainSpec = westend::BridgeHubChainSpec; - pub type RuntimeApi = bridge_hub_westend_runtime::RuntimeApi; } From 7266e96e12eb3d96fe0a669883e57af11bbbb582 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?D=C3=B3nal=20Murray?= Date: Tue, 3 Oct 2023 14:56:41 +0200 Subject: [PATCH 15/78] Remove reference to CollectivesPolkadot --- cumulus/polkadot-parachain/src/command.rs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/cumulus/polkadot-parachain/src/command.rs b/cumulus/polkadot-parachain/src/command.rs index 3cafe2c53183..80849fc8c1c7 100644 --- a/cumulus/polkadot-parachain/src/command.rs +++ b/cumulus/polkadot-parachain/src/command.rs @@ -363,8 +363,8 @@ macro_rules! construct_partials { $code }, }, - Runtime::CollectivesPolkadot | Runtime::CollectivesWestend => { - let $partials = new_partial::( + Runtime::CollectivesWestend => { + let $partials = new_partial::( &$config, crate::service::aura_build_import_queue::<_, AuraId>, )?; From 65efb83834af8ac47c0af77d9513563ac5172857 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?D=C3=B3nal=20Murray?= Date: Wed, 4 Oct 2023 11:42:22 +0200 Subject: [PATCH 16/78] Remove bridge-hub-westend runtime after talking with Branislav --- Cargo.lock | 64 -- Cargo.toml | 1 - .../emulated/common/Cargo.toml | 2 - .../bridge-hubs/bridge-hub-westend/Cargo.toml | 185 ---- .../bridge-hubs/bridge-hub-westend/build.rs | 26 - .../bridge-hubs/bridge-hub-westend/src/lib.rs | 798 ------------------ .../src/weights/block_weights.rs | 53 -- .../src/weights/cumulus_pallet_xcmp_queue.rs | 77 -- .../src/weights/extrinsic_weights.rs | 53 -- .../src/weights/frame_system.rs | 155 ---- .../bridge-hub-westend/src/weights/mod.rs | 38 - .../src/weights/pallet_balances.rs | 153 ---- .../src/weights/pallet_collator_selection.rs | 225 ----- .../src/weights/pallet_multisig.rs | 165 ---- .../src/weights/pallet_session.rs | 81 -- .../src/weights/pallet_timestamp.rs | 75 -- .../src/weights/pallet_utility.rs | 102 --- .../src/weights/pallet_xcm.rs | 289 ------- .../src/weights/paritydb_weights.rs | 63 -- .../src/weights/rocksdb_weights.rs | 63 -- .../bridge-hub-westend/src/weights/xcm/mod.rs | 256 ------ .../xcm/pallet_xcm_benchmarks_fungible.rs | 190 ----- .../xcm/pallet_xcm_benchmarks_generic.rs | 329 -------- .../bridge-hub-westend/src/xcm_config.rs | 272 ------ .../bridge-hub-westend/tests/tests.rs | 57 -- .../src/chain_spec/bridge_hubs.rs | 125 +-- .../src/chain_spec/glutton.rs | 43 +- cumulus/polkadot-parachain/src/command.rs | 6 +- 28 files changed, 30 insertions(+), 3916 deletions(-) delete mode 100644 cumulus/parachains/runtimes/bridge-hubs/bridge-hub-westend/Cargo.toml delete mode 100644 cumulus/parachains/runtimes/bridge-hubs/bridge-hub-westend/build.rs delete mode 100644 cumulus/parachains/runtimes/bridge-hubs/bridge-hub-westend/src/lib.rs delete mode 100644 cumulus/parachains/runtimes/bridge-hubs/bridge-hub-westend/src/weights/block_weights.rs delete mode 100644 cumulus/parachains/runtimes/bridge-hubs/bridge-hub-westend/src/weights/cumulus_pallet_xcmp_queue.rs delete mode 100644 cumulus/parachains/runtimes/bridge-hubs/bridge-hub-westend/src/weights/extrinsic_weights.rs delete mode 100644 cumulus/parachains/runtimes/bridge-hubs/bridge-hub-westend/src/weights/frame_system.rs delete mode 100644 cumulus/parachains/runtimes/bridge-hubs/bridge-hub-westend/src/weights/mod.rs delete mode 100644 cumulus/parachains/runtimes/bridge-hubs/bridge-hub-westend/src/weights/pallet_balances.rs delete mode 100644 cumulus/parachains/runtimes/bridge-hubs/bridge-hub-westend/src/weights/pallet_collator_selection.rs delete mode 100644 cumulus/parachains/runtimes/bridge-hubs/bridge-hub-westend/src/weights/pallet_multisig.rs delete mode 100644 cumulus/parachains/runtimes/bridge-hubs/bridge-hub-westend/src/weights/pallet_session.rs delete mode 100644 cumulus/parachains/runtimes/bridge-hubs/bridge-hub-westend/src/weights/pallet_timestamp.rs delete mode 100644 cumulus/parachains/runtimes/bridge-hubs/bridge-hub-westend/src/weights/pallet_utility.rs delete mode 100644 cumulus/parachains/runtimes/bridge-hubs/bridge-hub-westend/src/weights/pallet_xcm.rs delete mode 100644 cumulus/parachains/runtimes/bridge-hubs/bridge-hub-westend/src/weights/paritydb_weights.rs delete mode 100644 cumulus/parachains/runtimes/bridge-hubs/bridge-hub-westend/src/weights/rocksdb_weights.rs delete mode 100644 cumulus/parachains/runtimes/bridge-hubs/bridge-hub-westend/src/weights/xcm/mod.rs delete mode 100644 cumulus/parachains/runtimes/bridge-hubs/bridge-hub-westend/src/weights/xcm/pallet_xcm_benchmarks_fungible.rs delete mode 100644 cumulus/parachains/runtimes/bridge-hubs/bridge-hub-westend/src/weights/xcm/pallet_xcm_benchmarks_generic.rs delete mode 100644 cumulus/parachains/runtimes/bridge-hubs/bridge-hub-westend/src/xcm_config.rs delete mode 100644 cumulus/parachains/runtimes/bridge-hubs/bridge-hub-westend/tests/tests.rs diff --git a/Cargo.lock b/Cargo.lock index 1415b3e70792..93a43899bb57 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -1770,69 +1770,6 @@ dependencies = [ "staging-xcm-executor", ] -[[package]] -name = "bridge-hub-westend-runtime" -version = "0.1.0" -dependencies = [ - "bridge-hub-test-utils", - "cumulus-pallet-aura-ext", - "cumulus-pallet-dmp-queue", - "cumulus-pallet-parachain-system", - "cumulus-pallet-session-benchmarking", - "cumulus-pallet-xcm", - "cumulus-pallet-xcmp-queue", - "cumulus-primitives-core", - "cumulus-primitives-utility", - "frame-benchmarking", - "frame-executive", - "frame-support", - "frame-system", - "frame-system-benchmarking", - "frame-system-rpc-runtime-api", - "frame-try-runtime", - "hex-literal", - "log", - "pallet-aura", - "pallet-authorship", - "pallet-balances", - "pallet-collator-selection", - "pallet-multisig", - "pallet-session", - "pallet-timestamp", - "pallet-transaction-payment", - "pallet-transaction-payment-rpc-runtime-api", - "pallet-utility", - "pallet-xcm", - "pallet-xcm-benchmarks", - "parachain-info", - "parachains-common", - "parity-scale-codec", - "polkadot-core-primitives", - "polkadot-parachain-primitives", - "polkadot-runtime-common", - "scale-info", - "serde", - "smallvec", - "sp-api", - "sp-block-builder", - "sp-consensus-aura", - "sp-core", - "sp-genesis-builder", - "sp-inherents", - "sp-io", - "sp-offchain", - "sp-runtime", - "sp-session", - "sp-std", - "sp-storage", - "sp-transaction-pool", - "sp-version", - "staging-xcm", - "staging-xcm-builder", - "staging-xcm-executor", - "substrate-wasm-builder", -] - [[package]] name = "bridge-runtime-common" version = "0.1.0" @@ -6082,7 +6019,6 @@ dependencies = [ "asset-hub-westend-runtime", "bp-messages", "bridge-hub-rococo-runtime", - "bridge-hub-westend-runtime", "bridge-runtime-common", "collectives-westend-runtime", "cumulus-pallet-dmp-queue", diff --git a/Cargo.toml b/Cargo.toml index 6d66695a165d..8a65b5578331 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -68,7 +68,6 @@ members = [ "cumulus/parachains/runtimes/assets/common", "cumulus/parachains/runtimes/assets/test-utils", "cumulus/parachains/runtimes/bridge-hubs/bridge-hub-rococo", - "cumulus/parachains/runtimes/bridge-hubs/bridge-hub-westend", "cumulus/parachains/runtimes/bridge-hubs/test-utils", "cumulus/parachains/runtimes/collectives/collectives-westend", "cumulus/parachains/runtimes/contracts/contracts-rococo", diff --git a/cumulus/parachains/integration-tests/emulated/common/Cargo.toml b/cumulus/parachains/integration-tests/emulated/common/Cargo.toml index 5305a322c59d..30d6c7e16f35 100644 --- a/cumulus/parachains/integration-tests/emulated/common/Cargo.toml +++ b/cumulus/parachains/integration-tests/emulated/common/Cargo.toml @@ -44,7 +44,6 @@ penpal-runtime = { path = "../../../runtimes/testing/penpal" } asset-hub-westend-runtime = { path = "../../../runtimes/assets/asset-hub-westend" } collectives-westend-runtime = { path = "../../../runtimes/collectives/collectives-westend" } bridge-hub-rococo-runtime = { path = "../../../runtimes/bridge-hubs/bridge-hub-rococo" } -bridge-hub-westend-runtime = { path = "../../../runtimes/bridge-hubs/bridge-hub-westend" } xcm-emulator = { path = "../../../../xcm/xcm-emulator", default-features = false} cumulus-pallet-dmp-queue = { path = "../../../../pallets/dmp-queue" } cumulus-pallet-xcmp-queue = { path = "../../../../pallets/xcmp-queue", default-features = false} @@ -57,7 +56,6 @@ bridge-runtime-common = { path = "../../../../../bridges/bin/runtime-common" } runtime-benchmarks = [ "asset-hub-westend-runtime/runtime-benchmarks", "bridge-hub-rococo-runtime/runtime-benchmarks", - "bridge-hub-westend-runtime/runtime-benchmarks", "bridge-runtime-common/runtime-benchmarks", "collectives-westend-runtime/runtime-benchmarks", "cumulus-pallet-parachain-system/runtime-benchmarks", diff --git a/cumulus/parachains/runtimes/bridge-hubs/bridge-hub-westend/Cargo.toml b/cumulus/parachains/runtimes/bridge-hubs/bridge-hub-westend/Cargo.toml deleted file mode 100644 index 5712efefa709..000000000000 --- a/cumulus/parachains/runtimes/bridge-hubs/bridge-hub-westend/Cargo.toml +++ /dev/null @@ -1,185 +0,0 @@ -[package] -name = "bridge-hub-westend-runtime" -version = "0.1.0" -authors.workspace = true -edition.workspace = true -description = "Westend's BridgeHub parachain runtime" - -[build-dependencies] -substrate-wasm-builder = { path = "../../../../../substrate/utils/wasm-builder", optional = true } - -[dependencies] -codec = { package = "parity-scale-codec", version = "3.0.0", default-features = false, features = ["derive"] } -hex-literal = { version = "0.4.1" } -log = { version = "0.4.20", default-features = false } -scale-info = { version = "2.9.0", default-features = false, features = ["derive"] } -serde = { version = "1.0.188", optional = true, features = ["derive"] } -smallvec = "1.11.0" - -# Substrate -frame-benchmarking = { path = "../../../../../substrate/frame/benchmarking", default-features = false, optional = true} -frame-executive = { path = "../../../../../substrate/frame/executive", default-features = false} -frame-support = { path = "../../../../../substrate/frame/support", default-features = false} -frame-system = { path = "../../../../../substrate/frame/system", default-features = false} -frame-system-benchmarking = { path = "../../../../../substrate/frame/system/benchmarking", default-features = false, optional = true} -frame-system-rpc-runtime-api = { path = "../../../../../substrate/frame/system/rpc/runtime-api", default-features = false} -frame-try-runtime = { path = "../../../../../substrate/frame/try-runtime", default-features = false, optional = true} -pallet-aura = { path = "../../../../../substrate/frame/aura", default-features = false} -pallet-authorship = { path = "../../../../../substrate/frame/authorship", default-features = false} -pallet-balances = { path = "../../../../../substrate/frame/balances", default-features = false} -pallet-multisig = { path = "../../../../../substrate/frame/multisig", default-features = false} -pallet-session = { path = "../../../../../substrate/frame/session", default-features = false} -pallet-timestamp = { path = "../../../../../substrate/frame/timestamp", default-features = false} -pallet-transaction-payment = { path = "../../../../../substrate/frame/transaction-payment", default-features = false} -pallet-transaction-payment-rpc-runtime-api = { path = "../../../../../substrate/frame/transaction-payment/rpc/runtime-api", default-features = false} -pallet-utility = { path = "../../../../../substrate/frame/utility", default-features = false} -sp-api = { path = "../../../../../substrate/primitives/api", default-features = false} -sp-block-builder = { path = "../../../../../substrate/primitives/block-builder", default-features = false} -sp-consensus-aura = { path = "../../../../../substrate/primitives/consensus/aura", default-features = false} -sp-core = { path = "../../../../../substrate/primitives/core", default-features = false} -sp-genesis-builder = { path = "../../../../../substrate/primitives/genesis-builder", default-features = false } -sp-inherents = { path = "../../../../../substrate/primitives/inherents", default-features = false} -sp-io = { path = "../../../../../substrate/primitives/io", default-features = false} -sp-offchain = { path = "../../../../../substrate/primitives/offchain", default-features = false} -sp-runtime = { path = "../../../../../substrate/primitives/runtime", default-features = false} -sp-session = { path = "../../../../../substrate/primitives/session", default-features = false} -sp-std = { path = "../../../../../substrate/primitives/std", default-features = false} -sp-storage = { path = "../../../../../substrate/primitives/storage", default-features = false} -sp-transaction-pool = { path = "../../../../../substrate/primitives/transaction-pool", default-features = false} -sp-version = { path = "../../../../../substrate/primitives/version", default-features = false} - -# Polkadot -pallet-xcm = { path = "../../../../../polkadot/xcm/pallet-xcm", default-features = false} -pallet-xcm-benchmarks = { path = "../../../../../polkadot/xcm/pallet-xcm-benchmarks", default-features = false, optional = true } -polkadot-core-primitives = { path = "../../../../../polkadot/core-primitives", default-features = false} -polkadot-parachain-primitives = { path = "../../../../../polkadot/parachain", default-features = false} -polkadot-runtime-common = { path = "../../../../../polkadot/runtime/common", default-features = false} -xcm = { package = "staging-xcm", path = "../../../../../polkadot/xcm", default-features = false} -xcm-builder = { package = "staging-xcm-builder", path = "../../../../../polkadot/xcm/xcm-builder", default-features = false} -xcm-executor = { package = "staging-xcm-executor", path = "../../../../../polkadot/xcm/xcm-executor", default-features = false} - -# Cumulus -cumulus-pallet-aura-ext = { path = "../../../../pallets/aura-ext", default-features = false } -cumulus-pallet-dmp-queue = { path = "../../../../pallets/dmp-queue", default-features = false } -cumulus-pallet-parachain-system = { path = "../../../../pallets/parachain-system", default-features = false, features = ["parameterized-consensus-hook",] } -cumulus-pallet-session-benchmarking = { path = "../../../../pallets/session-benchmarking", default-features = false} -cumulus-pallet-xcm = { path = "../../../../pallets/xcm", default-features = false } -cumulus-pallet-xcmp-queue = { path = "../../../../pallets/xcmp-queue", default-features = false } -cumulus-primitives-core = { path = "../../../../primitives/core", default-features = false } -cumulus-primitives-utility = { path = "../../../../primitives/utility", default-features = false } -pallet-collator-selection = { path = "../../../../pallets/collator-selection", default-features = false } -parachain-info = { path = "../../../pallets/parachain-info", default-features = false } -parachains-common = { path = "../../../common", default-features = false } - -[dev-dependencies] -bridge-hub-test-utils = { path = "../test-utils" } - -[features] -default = [ "std" ] -std = [ - "codec/std", - "cumulus-pallet-aura-ext/std", - "cumulus-pallet-dmp-queue/std", - "cumulus-pallet-parachain-system/std", - "cumulus-pallet-session-benchmarking/std", - "cumulus-pallet-xcm/std", - "cumulus-pallet-xcmp-queue/std", - "cumulus-primitives-core/std", - "cumulus-primitives-utility/std", - "frame-benchmarking?/std", - "frame-executive/std", - "frame-support/std", - "frame-system-benchmarking?/std", - "frame-system-rpc-runtime-api/std", - "frame-system/std", - "frame-try-runtime?/std", - "log/std", - "pallet-aura/std", - "pallet-authorship/std", - "pallet-balances/std", - "pallet-collator-selection/std", - "pallet-multisig/std", - "pallet-session/std", - "pallet-timestamp/std", - "pallet-transaction-payment-rpc-runtime-api/std", - "pallet-transaction-payment/std", - "pallet-utility/std", - "pallet-xcm-benchmarks?/std", - "pallet-xcm/std", - "parachain-info/std", - "parachains-common/std", - "polkadot-core-primitives/std", - "polkadot-parachain-primitives/std", - "polkadot-runtime-common/std", - "scale-info/std", - "serde", - "sp-api/std", - "sp-block-builder/std", - "sp-consensus-aura/std", - "sp-core/std", - "sp-genesis-builder/std", - "sp-inherents/std", - "sp-io/std", - "sp-offchain/std", - "sp-runtime/std", - "sp-session/std", - "sp-std/std", - "sp-storage/std", - "sp-transaction-pool/std", - "sp-version/std", - "substrate-wasm-builder", - "xcm-builder/std", - "xcm-executor/std", - "xcm/std", -] - -runtime-benchmarks = [ - "cumulus-pallet-parachain-system/runtime-benchmarks", - "cumulus-pallet-session-benchmarking/runtime-benchmarks", - "cumulus-pallet-xcmp-queue/runtime-benchmarks", - "cumulus-primitives-utility/runtime-benchmarks", - "frame-benchmarking/runtime-benchmarks", - "frame-support/runtime-benchmarks", - "frame-system-benchmarking/runtime-benchmarks", - "frame-system/runtime-benchmarks", - "pallet-balances/runtime-benchmarks", - "pallet-collator-selection/runtime-benchmarks", - "pallet-multisig/runtime-benchmarks", - "pallet-timestamp/runtime-benchmarks", - "pallet-utility/runtime-benchmarks", - "pallet-xcm-benchmarks/runtime-benchmarks", - "pallet-xcm/runtime-benchmarks", - "parachains-common/runtime-benchmarks", - "polkadot-parachain-primitives/runtime-benchmarks", - "polkadot-runtime-common/runtime-benchmarks", - "sp-runtime/runtime-benchmarks", - "xcm-builder/runtime-benchmarks", - "xcm-executor/runtime-benchmarks", -] - -try-runtime = [ - "cumulus-pallet-aura-ext/try-runtime", - "cumulus-pallet-dmp-queue/try-runtime", - "cumulus-pallet-parachain-system/try-runtime", - "cumulus-pallet-xcm/try-runtime", - "cumulus-pallet-xcmp-queue/try-runtime", - "frame-executive/try-runtime", - "frame-support/try-runtime", - "frame-system/try-runtime", - "frame-try-runtime/try-runtime", - "pallet-aura/try-runtime", - "pallet-authorship/try-runtime", - "pallet-balances/try-runtime", - "pallet-collator-selection/try-runtime", - "pallet-multisig/try-runtime", - "pallet-session/try-runtime", - "pallet-timestamp/try-runtime", - "pallet-transaction-payment/try-runtime", - "pallet-utility/try-runtime", - "pallet-xcm/try-runtime", - "parachain-info/try-runtime", - "polkadot-runtime-common/try-runtime", - "sp-runtime/try-runtime", -] - -experimental = [ "pallet-aura/experimental" ] diff --git a/cumulus/parachains/runtimes/bridge-hubs/bridge-hub-westend/build.rs b/cumulus/parachains/runtimes/bridge-hubs/bridge-hub-westend/build.rs deleted file mode 100644 index 60f8a125129f..000000000000 --- a/cumulus/parachains/runtimes/bridge-hubs/bridge-hub-westend/build.rs +++ /dev/null @@ -1,26 +0,0 @@ -// 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. - -#[cfg(feature = "std")] -fn main() { - substrate_wasm_builder::WasmBuilder::new() - .with_current_project() - .export_heap_base() - .import_memory() - .build() -} - -#[cfg(not(feature = "std"))] -fn main() {} diff --git a/cumulus/parachains/runtimes/bridge-hubs/bridge-hub-westend/src/lib.rs b/cumulus/parachains/runtimes/bridge-hubs/bridge-hub-westend/src/lib.rs deleted file mode 100644 index ac66f383c17a..000000000000 --- a/cumulus/parachains/runtimes/bridge-hubs/bridge-hub-westend/src/lib.rs +++ /dev/null @@ -1,798 +0,0 @@ -// Copyright (C) Parity Technologies (UK) Ltd. -// This file is part of Cumulus. - -// Cumulus 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. - -// Cumulus 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 Cumulus. If not, see . - -#![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"] - -// Make the WASM binary available. -#[cfg(feature = "std")] -include!(concat!(env!("OUT_DIR"), "/wasm_binary.rs")); - -mod weights; -pub mod xcm_config; - -use cumulus_pallet_parachain_system::RelayNumberStrictlyIncreases; -use sp_api::impl_runtime_apis; -use sp_core::{crypto::KeyTypeId, OpaqueMetadata}; -use sp_runtime::{ - create_runtime_str, generic, impl_opaque_keys, - traits::{AccountIdLookup, BlakeTwo256, Block as BlockT}, - transaction_validity::{TransactionSource, TransactionValidity}, - ApplyExtrinsicResult, -}; - -use sp_std::prelude::*; -#[cfg(feature = "std")] -use sp_version::NativeVersion; -use sp_version::RuntimeVersion; - -use frame_support::{ - construct_runtime, - dispatch::DispatchClass, - genesis_builder_helper::{build_config, create_default_config}, - parameter_types, - traits::{ConstBool, ConstU32, ConstU64, ConstU8, EitherOfDiverse, Everything}, - weights::{ConstantMultiplier, Weight}, - PalletId, -}; -use frame_system::{ - limits::{BlockLength, BlockWeights}, - EnsureRoot, -}; -use pallet_xcm::{EnsureXcm, IsVoiceOfBody}; -pub use sp_consensus_aura::sr25519::AuthorityId as AuraId; -pub use sp_runtime::{MultiAddress, Perbill, Permill}; -use xcm_config::{ - FellowshipLocation, GovernanceLocation, XcmConfig, XcmOriginToTransactDispatchOrigin, -}; - -#[cfg(any(feature = "std", test))] -pub use sp_runtime::BuildStorage; - -use polkadot_runtime_common::{BlockHashCount, SlowAdjustingFeeUpdate}; - -use weights::{BlockExecutionWeight, ExtrinsicBaseWeight, RocksDbWeight}; - -use parachains_common::{ - impls::DealWithFees, - westend::{consensus::*, currency::*, fee::WeightToFee}, - AccountId, Balance, BlockNumber, Hash, Header, Nonce, Signature, AVERAGE_ON_INITIALIZE_RATIO, - HOURS, MAXIMUM_BLOCK_WEIGHT, NORMAL_DISPATCH_RATIO, SLOT_DURATION, -}; - -// XCM Imports -use xcm::latest::prelude::BodyId; -use xcm_executor::XcmExecutor; - -/// The address format for describing accounts. -pub type Address = MultiAddress; - -/// Block type as expected by this runtime. -pub type Block = generic::Block; - -/// A Block signed with a Justification -pub type SignedBlock = generic::SignedBlock; - -/// BlockId type as expected by this runtime. -pub type BlockId = generic::BlockId; - -/// The SignedExtension to the basic transaction logic. -pub type SignedExtra = ( - frame_system::CheckNonZeroSender, - frame_system::CheckSpecVersion, - frame_system::CheckTxVersion, - frame_system::CheckGenesis, - frame_system::CheckEra, - frame_system::CheckNonce, - frame_system::CheckWeight, - pallet_transaction_payment::ChargeTransactionPayment, -); - -/// Unchecked extrinsic type as expected by this runtime. -pub type UncheckedExtrinsic = - generic::UncheckedExtrinsic; - -/// Migrations to apply on runtime upgrade. -pub type Migrations = (pallet_collator_selection::migration::v1::MigrateToV1,); - -/// Executive: handles dispatch to the various modules. -pub type Executive = frame_executive::Executive< - Runtime, - Block, - frame_system::ChainContext, - Runtime, - AllPalletsWithSystem, - Migrations, ->; - -impl_opaque_keys! { - pub struct SessionKeys { - pub aura: Aura, - } -} - -#[sp_version::runtime_version] -pub const VERSION: RuntimeVersion = RuntimeVersion { - spec_name: create_runtime_str!("bridge-hub-westend"), - impl_name: create_runtime_str!("bridge-hub-westend"), - authoring_version: 1, - spec_version: 10000, - impl_version: 0, - apis: RUNTIME_API_VERSIONS, - transaction_version: 3, - state_version: 1, -}; - -/// The version information used to identify this runtime when compiled natively. -#[cfg(feature = "std")] -pub fn native_version() -> NativeVersion { - NativeVersion { runtime_version: VERSION, can_author_with: Default::default() } -} - -parameter_types! { - pub const Version: RuntimeVersion = VERSION; - pub RuntimeBlockLength: BlockLength = - BlockLength::max_with_normal_ratio(5 * 1024 * 1024, NORMAL_DISPATCH_RATIO); - pub RuntimeBlockWeights: BlockWeights = BlockWeights::builder() - .base_block(BlockExecutionWeight::get()) - .for_class(DispatchClass::all(), |weights| { - weights.base_extrinsic = ExtrinsicBaseWeight::get(); - }) - .for_class(DispatchClass::Normal, |weights| { - weights.max_total = Some(NORMAL_DISPATCH_RATIO * MAXIMUM_BLOCK_WEIGHT); - }) - .for_class(DispatchClass::Operational, |weights| { - weights.max_total = Some(MAXIMUM_BLOCK_WEIGHT); - // Operational transactions have some extra reserved space, so that they - // are included even if block reached `MAXIMUM_BLOCK_WEIGHT`. - weights.reserved = Some( - MAXIMUM_BLOCK_WEIGHT - NORMAL_DISPATCH_RATIO * MAXIMUM_BLOCK_WEIGHT - ); - }) - .avg_block_initialization(AVERAGE_ON_INITIALIZE_RATIO) - .build_or_panic(); - pub const SS58Prefix: u8 = 2; -} - -// Configure FRAME pallets to include in runtime. - -impl frame_system::Config for Runtime { - /// The identifier used to distinguish between accounts. - type AccountId = AccountId; - /// The aggregated dispatch type that is available for extrinsics. - type RuntimeCall = RuntimeCall; - /// The lookup mechanism to get account ID from whatever is passed in dispatchers. - type Lookup = AccountIdLookup; - /// The index type for storing how many extrinsics an account has signed. - type Nonce = Nonce; - /// The type for hashing blocks and tries. - type Hash = Hash; - /// The hashing algorithm used. - type Hashing = BlakeTwo256; - /// The block type. - type Block = Block; - /// The ubiquitous event type. - type RuntimeEvent = RuntimeEvent; - /// The ubiquitous origin type. - type RuntimeOrigin = RuntimeOrigin; - /// Maximum number of block number to block hash mappings to keep (oldest pruned first). - type BlockHashCount = BlockHashCount; - /// Runtime version. - type Version = Version; - /// Converts a module to an index of this module in the runtime. - type PalletInfo = PalletInfo; - /// The data to be stored in an account. - type AccountData = pallet_balances::AccountData; - /// What to do if a new account is created. - type OnNewAccount = (); - /// What to do if an account is fully reaped from the system. - type OnKilledAccount = (); - /// The weight of database operations that the runtime can invoke. - type DbWeight = RocksDbWeight; - /// The basic call filter to use in dispatchable. - type BaseCallFilter = Everything; - /// Weight information for the extrinsics of this pallet. - type SystemWeightInfo = weights::frame_system::WeightInfo; - /// Block & extrinsics weights: base values and limits. - type BlockWeights = RuntimeBlockWeights; - /// The maximum length of a block (in bytes). - type BlockLength = RuntimeBlockLength; - type SS58Prefix = SS58Prefix; - /// The action to take on a Runtime Upgrade - type OnSetCode = cumulus_pallet_parachain_system::ParachainSetCode; - type MaxConsumers = ConstU32<16>; -} - -impl pallet_timestamp::Config for Runtime { - /// A timestamp: milliseconds since the unix epoch. - type Moment = u64; - type OnTimestampSet = Aura; - type MinimumPeriod = ConstU64<{ SLOT_DURATION / 2 }>; - type WeightInfo = weights::pallet_timestamp::WeightInfo; -} - -impl pallet_authorship::Config for Runtime { - type FindAuthor = pallet_session::FindAccountFromAuthorIndex; - type EventHandler = (CollatorSelection,); -} - -parameter_types! { - pub const ExistentialDeposit: Balance = EXISTENTIAL_DEPOSIT; -} - -impl pallet_balances::Config for Runtime { - /// The type for recording an account's balance. - type Balance = Balance; - type DustRemoval = (); - /// The ubiquitous event type. - type RuntimeEvent = RuntimeEvent; - type ExistentialDeposit = ExistentialDeposit; - type AccountStore = System; - type WeightInfo = weights::pallet_balances::WeightInfo; - type MaxLocks = ConstU32<50>; - type MaxReserves = ConstU32<50>; - type ReserveIdentifier = [u8; 8]; - type RuntimeHoldReason = RuntimeHoldReason; - type FreezeIdentifier = (); - type MaxHolds = ConstU32<0>; - type MaxFreezes = ConstU32<0>; -} - -parameter_types! { - /// Relay Chain `TransactionByteFee` / 10 - pub const TransactionByteFee: Balance = MILLICENTS; -} - -impl pallet_transaction_payment::Config for Runtime { - type RuntimeEvent = RuntimeEvent; - type OnChargeTransaction = - pallet_transaction_payment::CurrencyAdapter>; - type OperationalFeeMultiplier = ConstU8<5>; - type WeightToFee = WeightToFee; - type LengthToFee = ConstantMultiplier; - type FeeMultiplierUpdate = SlowAdjustingFeeUpdate; -} - -parameter_types! { - pub const ReservedXcmpWeight: Weight = MAXIMUM_BLOCK_WEIGHT.saturating_div(4); - pub const ReservedDmpWeight: Weight = MAXIMUM_BLOCK_WEIGHT.saturating_div(4); -} - -impl cumulus_pallet_parachain_system::Config for Runtime { - type RuntimeEvent = RuntimeEvent; - type OnSystemEvent = (); - type SelfParaId = parachain_info::Pallet; - type OutboundXcmpMessageSource = XcmpQueue; - type DmpMessageHandler = DmpQueue; - type ReservedDmpWeight = ReservedDmpWeight; - type XcmpMessageHandler = XcmpQueue; - type ReservedXcmpWeight = ReservedXcmpWeight; - type CheckAssociatedRelayNumber = RelayNumberStrictlyIncreases; - type ConsensusHook = cumulus_pallet_aura_ext::FixedVelocityConsensusHook< - Runtime, - RELAY_CHAIN_SLOT_DURATION_MILLIS, - BLOCK_PROCESSING_VELOCITY, - UNINCLUDED_SEGMENT_CAPACITY, - >; -} - -impl parachain_info::Config for Runtime {} - -impl cumulus_pallet_aura_ext::Config for Runtime {} - -parameter_types! { - // Fellows pluralistic body. - pub const FellowsBodyId: BodyId = BodyId::Technical; -} - -/// Privileged origin that represents Root or Fellows pluralistic body. -pub type RootOrFellows = EitherOfDiverse< - EnsureRoot, - EnsureXcm>, ->; - -impl cumulus_pallet_xcmp_queue::Config for Runtime { - type RuntimeEvent = RuntimeEvent; - type XcmExecutor = XcmExecutor; - type ChannelInfo = ParachainSystem; - type VersionWrapper = PolkadotXcm; - type ExecuteOverweightOrigin = EnsureRoot; - type ControllerOrigin = RootOrFellows; - type ControllerOriginConverter = XcmOriginToTransactDispatchOrigin; - type WeightInfo = weights::cumulus_pallet_xcmp_queue::WeightInfo; - type PriceForSiblingDelivery = (); -} - -impl cumulus_pallet_dmp_queue::Config for Runtime { - type RuntimeEvent = RuntimeEvent; - type XcmExecutor = XcmExecutor; - type ExecuteOverweightOrigin = EnsureRoot; -} - -pub const PERIOD: u32 = 6 * HOURS; -pub const OFFSET: u32 = 0; - -impl pallet_session::Config for Runtime { - type RuntimeEvent = RuntimeEvent; - type ValidatorId = ::AccountId; - // we don't have stash and controller, thus we don't need the convert as well. - type ValidatorIdOf = pallet_collator_selection::IdentityCollator; - type ShouldEndSession = pallet_session::PeriodicSessions, ConstU32>; - type NextSessionRotation = pallet_session::PeriodicSessions, ConstU32>; - type SessionManager = CollatorSelection; - // Essentially just Aura, but let's be pedantic. - type SessionHandler = ::KeyTypeIdProviders; - type Keys = SessionKeys; - type WeightInfo = weights::pallet_session::WeightInfo; -} - -impl pallet_aura::Config for Runtime { - type AuthorityId = AuraId; - type DisabledValidators = (); - type MaxAuthorities = ConstU32<100_000>; - type AllowMultipleBlocksPerSlot = ConstBool; - #[cfg(feature = "experimental")] - type SlotDuration = pallet_aura::MinimumPeriodTimesTwo; -} - -parameter_types! { - pub const PotId: PalletId = PalletId(*b"PotStake"); - pub const SessionLength: BlockNumber = 6 * HOURS; - // StakingAdmin pluralistic body. - pub const StakingAdminBodyId: BodyId = BodyId::Defense; -} - -/// We allow Root and the `StakingAdmin` to execute privileged collator selection operations. -pub type CollatorSelectionUpdateOrigin = EitherOfDiverse< - EnsureRoot, - EnsureXcm>, ->; - -impl pallet_collator_selection::Config for Runtime { - type RuntimeEvent = RuntimeEvent; - type Currency = Balances; - type UpdateOrigin = CollatorSelectionUpdateOrigin; - type PotId = PotId; - type MaxCandidates = ConstU32<100>; - type MinEligibleCollators = ConstU32<4>; - type MaxInvulnerables = ConstU32<20>; - // should be a multiple of session or things will get inconsistent - type KickThreshold = ConstU32; - type ValidatorId = ::AccountId; - type ValidatorIdOf = pallet_collator_selection::IdentityCollator; - type ValidatorRegistration = Session; - type WeightInfo = weights::pallet_collator_selection::WeightInfo; -} - -parameter_types! { - // One storage item; key size is 32; value is size 4+4+16+32 bytes = 56 bytes. - pub const DepositBase: Balance = deposit(1, 88); - // Additional storage item size of 32 bytes. - pub const DepositFactor: Balance = deposit(0, 32); -} - -impl pallet_multisig::Config for Runtime { - type RuntimeEvent = RuntimeEvent; - type RuntimeCall = RuntimeCall; - type Currency = Balances; - type DepositBase = DepositBase; - type DepositFactor = DepositFactor; - type MaxSignatories = ConstU32<100>; - type WeightInfo = weights::pallet_multisig::WeightInfo; -} - -impl pallet_utility::Config for Runtime { - type RuntimeEvent = RuntimeEvent; - type RuntimeCall = RuntimeCall; - type PalletsOrigin = OriginCaller; - type WeightInfo = weights::pallet_utility::WeightInfo; -} - -// Create the runtime by composing the FRAME pallets that were previously configured. -construct_runtime!( - pub enum Runtime - { - // System support stuff. - System: frame_system::{Pallet, Call, Config, Storage, Event} = 0, - ParachainSystem: cumulus_pallet_parachain_system::{ - Pallet, Call, Config, Storage, Inherent, Event, ValidateUnsigned, - } = 1, - Timestamp: pallet_timestamp::{Pallet, Call, Storage, Inherent} = 2, - ParachainInfo: parachain_info::{Pallet, Storage, Config} = 3, - - // Monetary stuff. - Balances: pallet_balances::{Pallet, Call, Storage, Config, Event} = 10, - TransactionPayment: pallet_transaction_payment::{Pallet, Storage, Event} = 11, - - // Collator support. The order of these 4 are important and shall not change. - Authorship: pallet_authorship::{Pallet, Storage} = 20, - CollatorSelection: pallet_collator_selection::{Pallet, Call, Storage, Event, Config} = 21, - Session: pallet_session::{Pallet, Call, Storage, Event, Config} = 22, - Aura: pallet_aura::{Pallet, Storage, Config} = 23, - AuraExt: cumulus_pallet_aura_ext::{Pallet, Storage, Config} = 24, - - // XCM helpers. - XcmpQueue: cumulus_pallet_xcmp_queue::{Pallet, Call, Storage, Event} = 30, - PolkadotXcm: pallet_xcm::{Pallet, Call, Event, Origin, Config} = 31, - CumulusXcm: cumulus_pallet_xcm::{Pallet, Event, Origin} = 32, - DmpQueue: cumulus_pallet_dmp_queue::{Pallet, Call, Storage, Event} = 33, - - // Handy utilities. - Utility: pallet_utility::{Pallet, Call, Event} = 40, - Multisig: pallet_multisig::{Pallet, Call, Storage, Event} = 41, - } -); - -#[cfg(feature = "runtime-benchmarks")] -#[macro_use] -extern crate frame_benchmarking; - -#[cfg(feature = "runtime-benchmarks")] -mod benches { - define_benchmarks!( - [frame_system, SystemBench::] - [pallet_balances, Balances] - [pallet_multisig, Multisig] - [pallet_session, SessionBench::] - [pallet_utility, Utility] - [pallet_timestamp, Timestamp] - [pallet_collator_selection, CollatorSelection] - [cumulus_pallet_xcmp_queue, XcmpQueue] - // XCM - [pallet_xcm, PolkadotXcm] - // NOTE: Make sure you point to the individual modules below. - [pallet_xcm_benchmarks::fungible, XcmBalances] - [pallet_xcm_benchmarks::generic, XcmGeneric] - ); -} - -impl_runtime_apis! { - impl sp_consensus_aura::AuraApi for Runtime { - fn slot_duration() -> sp_consensus_aura::SlotDuration { - sp_consensus_aura::SlotDuration::from_millis(Aura::slot_duration()) - } - - fn authorities() -> Vec { - Aura::authorities().into_inner() - } - } - - impl sp_api::Core for Runtime { - fn version() -> RuntimeVersion { - VERSION - } - - fn execute_block(block: Block) { - Executive::execute_block(block) - } - - fn initialize_block(header: &::Header) { - Executive::initialize_block(header) - } - } - - impl sp_api::Metadata for Runtime { - fn metadata() -> OpaqueMetadata { - OpaqueMetadata::new(Runtime::metadata().into()) - } - - fn metadata_at_version(version: u32) -> Option { - Runtime::metadata_at_version(version) - } - - fn metadata_versions() -> sp_std::vec::Vec { - Runtime::metadata_versions() - } - } - - impl sp_block_builder::BlockBuilder for Runtime { - fn apply_extrinsic(extrinsic: ::Extrinsic) -> ApplyExtrinsicResult { - Executive::apply_extrinsic(extrinsic) - } - - fn finalize_block() -> ::Header { - Executive::finalize_block() - } - - fn inherent_extrinsics(data: sp_inherents::InherentData) -> Vec<::Extrinsic> { - data.create_extrinsics() - } - - fn check_inherents( - block: Block, - data: sp_inherents::InherentData, - ) -> sp_inherents::CheckInherentsResult { - data.check_extrinsics(&block) - } - } - - impl sp_transaction_pool::runtime_api::TaggedTransactionQueue for Runtime { - fn validate_transaction( - source: TransactionSource, - tx: ::Extrinsic, - block_hash: ::Hash, - ) -> TransactionValidity { - Executive::validate_transaction(source, tx, block_hash) - } - } - - impl sp_offchain::OffchainWorkerApi for Runtime { - fn offchain_worker(header: &::Header) { - Executive::offchain_worker(header) - } - } - - impl sp_session::SessionKeys for Runtime { - fn generate_session_keys(seed: Option>) -> Vec { - SessionKeys::generate(seed) - } - - fn decode_session_keys( - encoded: Vec, - ) -> Option, KeyTypeId)>> { - SessionKeys::decode_into_raw_public_keys(&encoded) - } - } - - impl frame_system_rpc_runtime_api::AccountNonceApi for Runtime { - fn account_nonce(account: AccountId) -> Nonce { - System::account_nonce(account) - } - } - - impl pallet_transaction_payment_rpc_runtime_api::TransactionPaymentApi for Runtime { - fn query_info( - uxt: ::Extrinsic, - len: u32, - ) -> pallet_transaction_payment_rpc_runtime_api::RuntimeDispatchInfo { - TransactionPayment::query_info(uxt, len) - } - fn query_fee_details( - uxt: ::Extrinsic, - len: u32, - ) -> pallet_transaction_payment::FeeDetails { - TransactionPayment::query_fee_details(uxt, len) - } - fn query_weight_to_fee(weight: Weight) -> Balance { - TransactionPayment::weight_to_fee(weight) - } - fn query_length_to_fee(length: u32) -> Balance { - TransactionPayment::length_to_fee(length) - } - } - - impl pallet_transaction_payment_rpc_runtime_api::TransactionPaymentCallApi - for Runtime - { - fn query_call_info( - call: RuntimeCall, - len: u32, - ) -> pallet_transaction_payment::RuntimeDispatchInfo { - TransactionPayment::query_call_info(call, len) - } - fn query_call_fee_details( - call: RuntimeCall, - len: u32, - ) -> pallet_transaction_payment::FeeDetails { - TransactionPayment::query_call_fee_details(call, len) - } - fn query_weight_to_fee(weight: Weight) -> Balance { - TransactionPayment::weight_to_fee(weight) - } - fn query_length_to_fee(length: u32) -> Balance { - TransactionPayment::length_to_fee(length) - } - } - - impl cumulus_primitives_core::CollectCollationInfo for Runtime { - fn collect_collation_info(header: &::Header) -> cumulus_primitives_core::CollationInfo { - ParachainSystem::collect_collation_info(header) - } - } - - #[cfg(feature = "try-runtime")] - impl frame_try_runtime::TryRuntime for Runtime { - fn on_runtime_upgrade(checks: frame_try_runtime::UpgradeCheckSelect) -> (Weight, Weight) { - let weight = Executive::try_runtime_upgrade(checks).unwrap(); - (weight, RuntimeBlockWeights::get().max_block) - } - - fn execute_block( - block: Block, - state_root_check: bool, - signature_check: bool, - select: frame_try_runtime::TryStateSelect, - ) -> Weight { - // NOTE: intentional unwrap: we don't want to propagate the error backwards, and want to - // have a backtrace here. - Executive::try_execute_block(block, state_root_check, signature_check, select).unwrap() - } - } - - #[cfg(feature = "runtime-benchmarks")] - impl frame_benchmarking::Benchmark for Runtime { - fn benchmark_metadata(extra: bool) -> ( - Vec, - Vec, - ) { - use frame_benchmarking::{Benchmarking, BenchmarkList}; - use frame_support::traits::StorageInfoTrait; - use frame_system_benchmarking::Pallet as SystemBench; - use cumulus_pallet_session_benchmarking::Pallet as SessionBench; - - // This is defined once again in dispatch_benchmark, because list_benchmarks! - // and add_benchmarks! are macros exported by define_benchmarks! macros and those types - // are referenced in that call. - type XcmBalances = pallet_xcm_benchmarks::fungible::Pallet::; - type XcmGeneric = pallet_xcm_benchmarks::generic::Pallet::; - - let mut list = Vec::::new(); - list_benchmarks!(list, extra); - - let storage_info = AllPalletsWithSystem::storage_info(); - (list, storage_info) - } - - fn dispatch_benchmark( - config: frame_benchmarking::BenchmarkConfig - ) -> Result, sp_runtime::RuntimeString> { - use frame_benchmarking::{Benchmarking, BenchmarkBatch, BenchmarkError}; - use sp_storage::TrackedStorageKey; - - use frame_system_benchmarking::Pallet as SystemBench; - impl frame_system_benchmarking::Config for Runtime { - fn setup_set_code_requirements(code: &sp_std::vec::Vec) -> Result<(), BenchmarkError> { - ParachainSystem::initialize_for_set_code_benchmark(code.len() as u32); - Ok(()) - } - - fn verify_set_code() { - System::assert_last_event(cumulus_pallet_parachain_system::Event::::ValidationFunctionStored.into()); - } - } - - use cumulus_pallet_session_benchmarking::Pallet as SessionBench; - impl cumulus_pallet_session_benchmarking::Config for Runtime {} - - use xcm::latest::prelude::*; - use xcm_config::KsmRelayLocation; - - impl pallet_xcm_benchmarks::Config for Runtime { - type XcmConfig = xcm_config::XcmConfig; - type AccountIdConverter = xcm_config::LocationToAccountId; - fn valid_destination() -> Result { - Ok(KsmRelayLocation::get()) - } - fn worst_case_holding(_depositable_count: u32) -> MultiAssets { - // just concrete assets according to relay chain. - let assets: Vec = vec![ - MultiAsset { - id: Concrete(KsmRelayLocation::get()), - fun: Fungible(1_000_000 * UNITS), - } - ]; - assets.into() - } - } - - parameter_types! { - pub const TrustedTeleporter: Option<(MultiLocation, MultiAsset)> = Some(( - KsmRelayLocation::get(), - MultiAsset { fun: Fungible(UNITS), id: Concrete(KsmRelayLocation::get()) }, - )); - pub const CheckedAccount: Option<(AccountId, xcm_builder::MintLocation)> = None; - pub const TrustedReserve: Option<(MultiLocation, MultiAsset)> = None; - } - - impl pallet_xcm_benchmarks::fungible::Config for Runtime { - type TransactAsset = Balances; - - type CheckedAccount = CheckedAccount; - type TrustedTeleporter = TrustedTeleporter; - type TrustedReserve = TrustedReserve; - - fn get_multi_asset() -> MultiAsset { - MultiAsset { - id: Concrete(KsmRelayLocation::get()), - fun: Fungible(UNITS), - } - } - } - - impl pallet_xcm_benchmarks::generic::Config for Runtime { - type RuntimeCall = RuntimeCall; - - fn worst_case_response() -> (u64, Response) { - (0u64, Response::Version(Default::default())) - } - - fn worst_case_asset_exchange() -> Result<(MultiAssets, MultiAssets), BenchmarkError> { - Err(BenchmarkError::Skip) - } - - fn universal_alias() -> Result<(MultiLocation, Junction), BenchmarkError> { - Err(BenchmarkError::Skip) - } - - fn transact_origin_and_runtime_call() -> Result<(MultiLocation, RuntimeCall), BenchmarkError> { - Ok((KsmRelayLocation::get(), frame_system::Call::remark_with_event { remark: vec![] }.into())) - } - - fn subscribe_origin() -> Result { - Ok(KsmRelayLocation::get()) - } - - fn claimable_asset() -> Result<(MultiLocation, MultiLocation, MultiAssets), BenchmarkError> { - let origin = KsmRelayLocation::get(); - let assets: MultiAssets = (Concrete(KsmRelayLocation::get()), 1_000 * UNITS).into(); - let ticket = MultiLocation { parents: 0, interior: Here }; - Ok((origin, ticket, assets)) - } - - fn unlockable_asset() -> Result<(MultiLocation, MultiLocation, MultiAsset), BenchmarkError> { - Err(BenchmarkError::Skip) - } - - fn export_message_origin_and_destination( - ) -> Result<(MultiLocation, NetworkId, InteriorMultiLocation), BenchmarkError> { - Err(BenchmarkError::Skip) - } - - fn alias_origin() -> Result<(MultiLocation, MultiLocation), BenchmarkError> { - Err(BenchmarkError::Skip) - } - } - - type XcmBalances = pallet_xcm_benchmarks::fungible::Pallet::; - type XcmGeneric = pallet_xcm_benchmarks::generic::Pallet::; - - let whitelist: Vec = vec![ - // Block Number - hex_literal::hex!("26aa394eea5630e07c48ae0c9558cef702a5c1b19ab7a04f536c519aca4983ac").to_vec().into(), - // Total Issuance - hex_literal::hex!("c2261276cc9d1f8598ea4b6a74b15c2f57c875e4cff74148e4628f264b974c80").to_vec().into(), - // Execution Phase - hex_literal::hex!("26aa394eea5630e07c48ae0c9558cef7ff553b5a9862a516939d82b3d3d8661a").to_vec().into(), - // Event Count - hex_literal::hex!("26aa394eea5630e07c48ae0c9558cef70a98fdbe9ce6c55837576c60c7af3850").to_vec().into(), - // System Events - hex_literal::hex!("26aa394eea5630e07c48ae0c9558cef780d41e5e16056765bc8461851072c9d7").to_vec().into(), - ]; - - let mut batches = Vec::::new(); - let params = (&config, &whitelist); - add_benchmarks!(params, batches); - - Ok(batches) - } - } - - impl sp_genesis_builder::GenesisBuilder for Runtime { - fn create_default_config() -> Vec { - create_default_config::() - } - - fn build_config(config: Vec) -> sp_genesis_builder::Result { - build_config::(config) - } - } -} - -cumulus_pallet_parachain_system::register_validate_block! { - Runtime = Runtime, - BlockExecutor = cumulus_pallet_aura_ext::BlockExecutor::, -} diff --git a/cumulus/parachains/runtimes/bridge-hubs/bridge-hub-westend/src/weights/block_weights.rs b/cumulus/parachains/runtimes/bridge-hubs/bridge-hub-westend/src/weights/block_weights.rs deleted file mode 100644 index e7fdb2aae2a0..000000000000 --- a/cumulus/parachains/runtimes/bridge-hubs/bridge-hub-westend/src/weights/block_weights.rs +++ /dev/null @@ -1,53 +0,0 @@ -// This file is part of Substrate. - -// 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. - -pub mod constants { - use frame_support::{ - parameter_types, - weights::{constants, Weight}, - }; - - parameter_types! { - /// Importing a block with 0 Extrinsics. - pub const BlockExecutionWeight: Weight = - Weight::from_parts(constants::WEIGHT_REF_TIME_PER_NANOS.saturating_mul(5_000_000), 0); - } - - #[cfg(test)] - mod test_weights { - use frame_support::weights::constants; - - /// Checks that the weight exists and is sane. - // NOTE: If this test fails but you are sure that the generated values are fine, - // you can delete it. - #[test] - fn sane() { - let w = super::constants::BlockExecutionWeight::get(); - - // At least 100 µs. - assert!( - w.ref_time() >= 100u64 * constants::WEIGHT_REF_TIME_PER_MICROS, - "Weight should be at least 100 µs." - ); - // At most 50 ms. - assert!( - w.ref_time() <= 50u64 * constants::WEIGHT_REF_TIME_PER_MILLIS, - "Weight should be at most 50 ms." - ); - } - } -} diff --git a/cumulus/parachains/runtimes/bridge-hubs/bridge-hub-westend/src/weights/cumulus_pallet_xcmp_queue.rs b/cumulus/parachains/runtimes/bridge-hubs/bridge-hub-westend/src/weights/cumulus_pallet_xcmp_queue.rs deleted file mode 100644 index 1b7eef493a92..000000000000 --- a/cumulus/parachains/runtimes/bridge-hubs/bridge-hub-westend/src/weights/cumulus_pallet_xcmp_queue.rs +++ /dev/null @@ -1,77 +0,0 @@ -// Copyright (C) Parity Technologies (UK) Ltd. -// This file is part of Cumulus. - -// Cumulus 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. - -// Cumulus 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 Cumulus. If not, see . - -//! Autogenerated weights for `cumulus_pallet_xcmp_queue` -//! -//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev -//! DATE: 2023-07-31, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` -//! WORST CASE MAP SIZE: `1000000` -//! HOSTNAME: `runner-ynta1nyy-project-238-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz` -//! EXECUTION: ``, WASM-EXECUTION: `Compiled`, CHAIN: `Some("bridge-hub-westend-dev")`, DB CACHE: 1024 - -// Executed Command: -// ./target/production/polkadot-parachain -// benchmark -// pallet -// --chain=bridge-hub-westend-dev -// --wasm-execution=compiled -// --pallet=cumulus_pallet_xcmp_queue -// --no-storage-info -// --no-median-slopes -// --no-min-squares -// --extrinsic=* -// --steps=50 -// --repeat=20 -// --json -// --header=./file_header.txt -// --output=./parachains/runtimes/bridge-hubs/bridge-hub-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 `cumulus_pallet_xcmp_queue`. -pub struct WeightInfo(PhantomData); -impl cumulus_pallet_xcmp_queue::WeightInfo for WeightInfo { - /// Storage: `XcmpQueue::QueueConfig` (r:1 w:1) - /// Proof: `XcmpQueue::QueueConfig` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) - fn set_config_with_u32() -> Weight { - // Proof Size summary in bytes: - // Measured: `76` - // Estimated: `1561` - // Minimum execution time: 5_129_000 picoseconds. - Weight::from_parts(5_367_000, 0) - .saturating_add(Weight::from_parts(0, 1561)) - .saturating_add(T::DbWeight::get().reads(1)) - .saturating_add(T::DbWeight::get().writes(1)) - } - /// Storage: `XcmpQueue::QueueConfig` (r:1 w:1) - /// Proof: `XcmpQueue::QueueConfig` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) - fn set_config_with_weight() -> Weight { - // Proof Size summary in bytes: - // Measured: `76` - // Estimated: `1561` - // Minimum execution time: 5_050_000 picoseconds. - Weight::from_parts(5_565_000, 0) - .saturating_add(Weight::from_parts(0, 1561)) - .saturating_add(T::DbWeight::get().reads(1)) - .saturating_add(T::DbWeight::get().writes(1)) - } -} diff --git a/cumulus/parachains/runtimes/bridge-hubs/bridge-hub-westend/src/weights/extrinsic_weights.rs b/cumulus/parachains/runtimes/bridge-hubs/bridge-hub-westend/src/weights/extrinsic_weights.rs deleted file mode 100644 index 1a4adb968bb7..000000000000 --- a/cumulus/parachains/runtimes/bridge-hubs/bridge-hub-westend/src/weights/extrinsic_weights.rs +++ /dev/null @@ -1,53 +0,0 @@ -// This file is part of Substrate. - -// 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. - -pub mod constants { - use frame_support::{ - parameter_types, - weights::{constants, Weight}, - }; - - parameter_types! { - /// Executing a NO-OP `System::remarks` Extrinsic. - pub const ExtrinsicBaseWeight: Weight = - Weight::from_parts(constants::WEIGHT_REF_TIME_PER_NANOS.saturating_mul(125_000), 0); - } - - #[cfg(test)] - mod test_weights { - use frame_support::weights::constants; - - /// Checks that the weight exists and is sane. - // NOTE: If this test fails but you are sure that the generated values are fine, - // you can delete it. - #[test] - fn sane() { - let w = super::constants::ExtrinsicBaseWeight::get(); - - // At least 10 µs. - assert!( - w.ref_time() >= 10u64 * constants::WEIGHT_REF_TIME_PER_MICROS, - "Weight should be at least 10 µs." - ); - // At most 1 ms. - assert!( - w.ref_time() <= constants::WEIGHT_REF_TIME_PER_MILLIS, - "Weight should be at most 1 ms." - ); - } - } -} diff --git a/cumulus/parachains/runtimes/bridge-hubs/bridge-hub-westend/src/weights/frame_system.rs b/cumulus/parachains/runtimes/bridge-hubs/bridge-hub-westend/src/weights/frame_system.rs deleted file mode 100644 index 6c3da9dd3f76..000000000000 --- a/cumulus/parachains/runtimes/bridge-hubs/bridge-hub-westend/src/weights/frame_system.rs +++ /dev/null @@ -1,155 +0,0 @@ -// Copyright (C) Parity Technologies (UK) Ltd. -// This file is part of Cumulus. - -// Cumulus 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. - -// Cumulus 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 Cumulus. If not, see . - -//! Autogenerated weights for `frame_system` -//! -//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev -//! DATE: 2023-07-31, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` -//! WORST CASE MAP SIZE: `1000000` -//! HOSTNAME: `runner-ynta1nyy-project-238-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz` -//! EXECUTION: ``, WASM-EXECUTION: `Compiled`, CHAIN: `Some("bridge-hub-westend-dev")`, DB CACHE: 1024 - -// Executed Command: -// ./target/production/polkadot-parachain -// benchmark -// pallet -// --chain=bridge-hub-westend-dev -// --wasm-execution=compiled -// --pallet=frame_system -// --no-storage-info -// --no-median-slopes -// --no-min-squares -// --extrinsic=* -// --steps=50 -// --repeat=20 -// --json -// --header=./file_header.txt -// --output=./parachains/runtimes/bridge-hubs/bridge-hub-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 `frame_system`. -pub struct WeightInfo(PhantomData); -impl frame_system::WeightInfo for WeightInfo { - /// The range of component `b` is `[0, 3932160]`. - fn remark(b: u32, ) -> Weight { - // Proof Size summary in bytes: - // Measured: `0` - // Estimated: `0` - // Minimum execution time: 1_985_000 picoseconds. - Weight::from_parts(2_177_341, 0) - .saturating_add(Weight::from_parts(0, 0)) - // Standard Error: 0 - .saturating_add(Weight::from_parts(386, 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_288_000 picoseconds. - Weight::from_parts(23_888_468, 0) - .saturating_add(Weight::from_parts(0, 0)) - // Standard Error: 8 - .saturating_add(Weight::from_parts(1_718, 0).saturating_mul(b.into())) - } - /// Storage: `System::Digest` (r:1 w:1) - /// Proof: `System::Digest` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) - /// Storage: UNKNOWN KEY `0x3a686561707061676573` (r:0 w:1) - /// Proof: UNKNOWN KEY `0x3a686561707061676573` (r:0 w:1) - fn set_heap_pages() -> Weight { - // Proof Size summary in bytes: - // Measured: `0` - // Estimated: `1485` - // Minimum execution time: 3_700_000 picoseconds. - Weight::from_parts(3_867_000, 0) - .saturating_add(Weight::from_parts(0, 1485)) - .saturating_add(T::DbWeight::get().reads(1)) - .saturating_add(T::DbWeight::get().writes(2)) - } - /// Storage: `ParachainSystem::ValidationData` (r:1 w:0) - /// Proof: `ParachainSystem::ValidationData` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) - /// Storage: `ParachainSystem::UpgradeRestrictionSignal` (r:1 w:0) - /// Proof: `ParachainSystem::UpgradeRestrictionSignal` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) - /// Storage: `ParachainSystem::PendingValidationCode` (r:1 w:1) - /// Proof: `ParachainSystem::PendingValidationCode` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) - /// Storage: `ParachainSystem::HostConfiguration` (r:1 w:0) - /// Proof: `ParachainSystem::HostConfiguration` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) - /// Storage: `ParachainSystem::NewValidationCode` (r:0 w:1) - /// Proof: `ParachainSystem::NewValidationCode` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) - /// Storage: `ParachainSystem::DidSetValidationCode` (r:0 w:1) - /// Proof: `ParachainSystem::DidSetValidationCode` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) - fn set_code() -> Weight { - // Proof Size summary in bytes: - // Measured: `119` - // Estimated: `1604` - // Minimum execution time: 100_298_586_000 picoseconds. - Weight::from_parts(101_869_369_000, 0) - .saturating_add(Weight::from_parts(0, 1604)) - .saturating_add(T::DbWeight::get().reads(4)) - .saturating_add(T::DbWeight::get().writes(3)) - } - /// Storage: `Skipped::Metadata` (r:0 w:0) - /// Proof: `Skipped::Metadata` (`max_values`: None, `max_size`: None, mode: `Measured`) - /// The range of component `i` is `[0, 1000]`. - fn set_storage(i: u32, ) -> Weight { - // Proof Size summary in bytes: - // Measured: `0` - // Estimated: `0` - // Minimum execution time: 2_052_000 picoseconds. - Weight::from_parts(2_115_000, 0) - .saturating_add(Weight::from_parts(0, 0)) - // Standard Error: 2_048 - .saturating_add(Weight::from_parts(755_436, 0).saturating_mul(i.into())) - .saturating_add(T::DbWeight::get().writes((1_u64).saturating_mul(i.into()))) - } - /// Storage: `Skipped::Metadata` (r:0 w:0) - /// Proof: `Skipped::Metadata` (`max_values`: None, `max_size`: None, mode: `Measured`) - /// The range of component `i` is `[0, 1000]`. - fn kill_storage(i: u32, ) -> Weight { - // Proof Size summary in bytes: - // Measured: `0` - // Estimated: `0` - // Minimum execution time: 2_044_000 picoseconds. - Weight::from_parts(2_110_000, 0) - .saturating_add(Weight::from_parts(0, 0)) - // Standard Error: 1_011 - .saturating_add(Weight::from_parts(569_993, 0).saturating_mul(i.into())) - .saturating_add(T::DbWeight::get().writes((1_u64).saturating_mul(i.into()))) - } - /// Storage: `Skipped::Metadata` (r:0 w:0) - /// Proof: `Skipped::Metadata` (`max_values`: None, `max_size`: None, mode: `Measured`) - /// The range of component `p` is `[0, 1000]`. - fn kill_prefix(p: u32, ) -> Weight { - // Proof Size summary in bytes: - // Measured: `68 + p * (69 ±0)` - // Estimated: `66 + p * (70 ±0)` - // Minimum execution time: 3_741_000 picoseconds. - Weight::from_parts(3_838_000, 0) - .saturating_add(Weight::from_parts(0, 66)) - // Standard Error: 2_455 - .saturating_add(Weight::from_parts(1_216_154, 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/cumulus/parachains/runtimes/bridge-hubs/bridge-hub-westend/src/weights/mod.rs b/cumulus/parachains/runtimes/bridge-hubs/bridge-hub-westend/src/weights/mod.rs deleted file mode 100644 index e226021e77ab..000000000000 --- a/cumulus/parachains/runtimes/bridge-hubs/bridge-hub-westend/src/weights/mod.rs +++ /dev/null @@ -1,38 +0,0 @@ -// This file is part of Substrate. - -// 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. - -//! Expose the auto generated weight files. - -pub mod block_weights; -pub mod cumulus_pallet_xcmp_queue; -pub mod extrinsic_weights; -pub mod frame_system; -pub mod pallet_balances; -pub mod pallet_collator_selection; -pub mod pallet_multisig; -pub mod pallet_session; -pub mod pallet_timestamp; -pub mod pallet_utility; -pub mod pallet_xcm; -pub mod paritydb_weights; -pub mod rocksdb_weights; -pub mod xcm; - -pub use block_weights::constants::BlockExecutionWeight; -pub use extrinsic_weights::constants::ExtrinsicBaseWeight; -pub use paritydb_weights::constants::ParityDbWeight; -pub use rocksdb_weights::constants::RocksDbWeight; diff --git a/cumulus/parachains/runtimes/bridge-hubs/bridge-hub-westend/src/weights/pallet_balances.rs b/cumulus/parachains/runtimes/bridge-hubs/bridge-hub-westend/src/weights/pallet_balances.rs deleted file mode 100644 index 2571539f137a..000000000000 --- a/cumulus/parachains/runtimes/bridge-hubs/bridge-hub-westend/src/weights/pallet_balances.rs +++ /dev/null @@ -1,153 +0,0 @@ -// Copyright (C) Parity Technologies (UK) Ltd. -// This file is part of Cumulus. - -// Cumulus 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. - -// Cumulus 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 Cumulus. 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-07-31, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` -//! WORST CASE MAP SIZE: `1000000` -//! HOSTNAME: `runner-ynta1nyy-project-238-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz` -//! EXECUTION: ``, WASM-EXECUTION: `Compiled`, CHAIN: `Some("bridge-hub-westend-dev")`, DB CACHE: 1024 - -// Executed Command: -// ./target/production/polkadot-parachain -// benchmark -// pallet -// --chain=bridge-hub-westend-dev -// --wasm-execution=compiled -// --pallet=pallet_balances -// --no-storage-info -// --no-median-slopes -// --no-min-squares -// --extrinsic=* -// --steps=50 -// --repeat=20 -// --json -// --header=./file_header.txt -// --output=./parachains/runtimes/bridge-hubs/bridge-hub-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_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_163_000 picoseconds. - Weight::from_parts(56_056_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: 40_829_000 picoseconds. - Weight::from_parts(42_182_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_212_000 picoseconds. - Weight::from_parts(15_782_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: 22_866_000 picoseconds. - Weight::from_parts(23_452_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_047_000 picoseconds. - Weight::from_parts(58_536_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_622_000 picoseconds. - Weight::from_parts(52_912_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: 17_723_000 picoseconds. - Weight::from_parts(18_383_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]`. - fn upgrade_accounts(u: u32, ) -> Weight { - // Proof Size summary in bytes: - // Measured: `0 + u * (136 ±0)` - // Estimated: `990 + u * (2603 ±0)` - // Minimum execution time: 17_089_000 picoseconds. - Weight::from_parts(17_379_000, 0) - .saturating_add(Weight::from_parts(0, 990)) - // Standard Error: 17_071 - .saturating_add(Weight::from_parts(15_647_341, 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/cumulus/parachains/runtimes/bridge-hubs/bridge-hub-westend/src/weights/pallet_collator_selection.rs b/cumulus/parachains/runtimes/bridge-hubs/bridge-hub-westend/src/weights/pallet_collator_selection.rs deleted file mode 100644 index d4f57a7a6f21..000000000000 --- a/cumulus/parachains/runtimes/bridge-hubs/bridge-hub-westend/src/weights/pallet_collator_selection.rs +++ /dev/null @@ -1,225 +0,0 @@ -// Copyright (C) Parity Technologies (UK) Ltd. -// This file is part of Cumulus. - -// Cumulus 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. - -// Cumulus 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 Cumulus. If not, see . - -//! Autogenerated weights for `pallet_collator_selection` -//! -//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev -//! DATE: 2023-07-31, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` -//! WORST CASE MAP SIZE: `1000000` -//! HOSTNAME: `runner-ynta1nyy-project-238-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz` -//! EXECUTION: ``, WASM-EXECUTION: `Compiled`, CHAIN: `Some("bridge-hub-westend-dev")`, DB CACHE: 1024 - -// Executed Command: -// ./target/production/polkadot-parachain -// benchmark -// pallet -// --chain=bridge-hub-westend-dev -// --wasm-execution=compiled -// --pallet=pallet_collator_selection -// --no-storage-info -// --no-median-slopes -// --no-min-squares -// --extrinsic=* -// --steps=50 -// --repeat=20 -// --json -// --header=./file_header.txt -// --output=./parachains/runtimes/bridge-hubs/bridge-hub-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_collator_selection`. -pub struct WeightInfo(PhantomData); -impl pallet_collator_selection::WeightInfo for WeightInfo { - /// Storage: `Session::NextKeys` (r:20 w:0) - /// Proof: `Session::NextKeys` (`max_values`: None, `max_size`: None, mode: `Measured`) - /// Storage: `CollatorSelection::Invulnerables` (r:0 w:1) - /// Proof: `CollatorSelection::Invulnerables` (`max_values`: Some(1), `max_size`: Some(641), added: 1136, mode: `MaxEncodedLen`) - /// The range of component `b` is `[1, 20]`. - fn set_invulnerables(b: u32, ) -> Weight { - // Proof Size summary in bytes: - // Measured: `196 + b * (79 ±0)` - // Estimated: `1187 + b * (2555 ±0)` - // Minimum execution time: 14_329_000 picoseconds. - Weight::from_parts(11_605_842, 0) - .saturating_add(Weight::from_parts(0, 1187)) - // Standard Error: 4_784 - .saturating_add(Weight::from_parts(3_297_183, 0).saturating_mul(b.into())) - .saturating_add(T::DbWeight::get().reads((1_u64).saturating_mul(b.into()))) - .saturating_add(T::DbWeight::get().writes(1)) - .saturating_add(Weight::from_parts(0, 2555).saturating_mul(b.into())) - } - /// Storage: `Session::NextKeys` (r:1 w:0) - /// Proof: `Session::NextKeys` (`max_values`: None, `max_size`: None, mode: `Measured`) - /// Storage: `CollatorSelection::Invulnerables` (r:1 w:1) - /// Proof: `CollatorSelection::Invulnerables` (`max_values`: Some(1), `max_size`: Some(641), added: 1136, mode: `MaxEncodedLen`) - /// Storage: `CollatorSelection::Candidates` (r:1 w:1) - /// Proof: `CollatorSelection::Candidates` (`max_values`: Some(1), `max_size`: Some(4802), added: 5297, 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 `b` is `[1, 19]`. - /// The range of component `c` is `[1, 99]`. - fn add_invulnerable(b: u32, c: u32, ) -> Weight { - // Proof Size summary in bytes: - // Measured: `757 + b * (32 ±0) + c * (53 ±0)` - // Estimated: `6287 + b * (37 ±0) + c * (53 ±0)` - // Minimum execution time: 47_110_000 picoseconds. - Weight::from_parts(45_234_418, 0) - .saturating_add(Weight::from_parts(0, 6287)) - // Standard Error: 14_452 - .saturating_add(Weight::from_parts(156_031, 0).saturating_mul(b.into())) - // Standard Error: 2_739 - .saturating_add(Weight::from_parts(216_162, 0).saturating_mul(c.into())) - .saturating_add(T::DbWeight::get().reads(4)) - .saturating_add(T::DbWeight::get().writes(3)) - .saturating_add(Weight::from_parts(0, 37).saturating_mul(b.into())) - .saturating_add(Weight::from_parts(0, 53).saturating_mul(c.into())) - } - /// Storage: `CollatorSelection::Candidates` (r:1 w:0) - /// Proof: `CollatorSelection::Candidates` (`max_values`: Some(1), `max_size`: Some(4802), added: 5297, mode: `MaxEncodedLen`) - /// Storage: `CollatorSelection::Invulnerables` (r:1 w:1) - /// Proof: `CollatorSelection::Invulnerables` (`max_values`: Some(1), `max_size`: Some(641), added: 1136, mode: `MaxEncodedLen`) - /// The range of component `b` is `[5, 20]`. - fn remove_invulnerable(b: u32, ) -> Weight { - // Proof Size summary in bytes: - // Measured: `82 + b * (32 ±0)` - // Estimated: `6287` - // Minimum execution time: 15_326_000 picoseconds. - Weight::from_parts(14_914_611, 0) - .saturating_add(Weight::from_parts(0, 6287)) - // Standard Error: 2_274 - .saturating_add(Weight::from_parts(201_234, 0).saturating_mul(b.into())) - .saturating_add(T::DbWeight::get().reads(2)) - .saturating_add(T::DbWeight::get().writes(1)) - } - /// Storage: `CollatorSelection::DesiredCandidates` (r:0 w:1) - /// Proof: `CollatorSelection::DesiredCandidates` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`) - fn set_desired_candidates() -> Weight { - // Proof Size summary in bytes: - // Measured: `0` - // Estimated: `0` - // Minimum execution time: 7_288_000 picoseconds. - Weight::from_parts(7_472_000, 0) - .saturating_add(Weight::from_parts(0, 0)) - .saturating_add(T::DbWeight::get().writes(1)) - } - /// Storage: `CollatorSelection::CandidacyBond` (r:0 w:1) - /// Proof: `CollatorSelection::CandidacyBond` (`max_values`: Some(1), `max_size`: Some(16), added: 511, mode: `MaxEncodedLen`) - fn set_candidacy_bond() -> Weight { - // Proof Size summary in bytes: - // Measured: `0` - // Estimated: `0` - // Minimum execution time: 7_137_000 picoseconds. - Weight::from_parts(7_374_000, 0) - .saturating_add(Weight::from_parts(0, 0)) - .saturating_add(T::DbWeight::get().writes(1)) - } - /// Storage: `CollatorSelection::Candidates` (r:1 w:1) - /// Proof: `CollatorSelection::Candidates` (`max_values`: Some(1), `max_size`: Some(4802), added: 5297, mode: `MaxEncodedLen`) - /// Storage: `CollatorSelection::DesiredCandidates` (r:1 w:0) - /// Proof: `CollatorSelection::DesiredCandidates` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`) - /// Storage: `CollatorSelection::Invulnerables` (r:1 w:0) - /// Proof: `CollatorSelection::Invulnerables` (`max_values`: Some(1), `max_size`: Some(641), added: 1136, mode: `MaxEncodedLen`) - /// Storage: `Session::NextKeys` (r:1 w:0) - /// Proof: `Session::NextKeys` (`max_values`: None, `max_size`: None, mode: `Measured`) - /// Storage: `CollatorSelection::CandidacyBond` (r:1 w:0) - /// Proof: `CollatorSelection::CandidacyBond` (`max_values`: Some(1), `max_size`: Some(16), added: 511, mode: `MaxEncodedLen`) - /// Storage: `CollatorSelection::LastAuthoredBlock` (r:0 w:1) - /// Proof: `CollatorSelection::LastAuthoredBlock` (`max_values`: None, `max_size`: Some(44), added: 2519, mode: `MaxEncodedLen`) - /// The range of component `c` is `[1, 99]`. - fn register_as_candidate(c: u32, ) -> Weight { - // Proof Size summary in bytes: - // Measured: `740 + c * (52 ±0)` - // Estimated: `6287 + c * (54 ±0)` - // Minimum execution time: 40_718_000 picoseconds. - Weight::from_parts(43_911_837, 0) - .saturating_add(Weight::from_parts(0, 6287)) - // Standard Error: 3_053 - .saturating_add(Weight::from_parts(229_337, 0).saturating_mul(c.into())) - .saturating_add(T::DbWeight::get().reads(5)) - .saturating_add(T::DbWeight::get().writes(2)) - .saturating_add(Weight::from_parts(0, 54).saturating_mul(c.into())) - } - /// Storage: `CollatorSelection::Candidates` (r:1 w:1) - /// Proof: `CollatorSelection::Candidates` (`max_values`: Some(1), `max_size`: Some(4802), added: 5297, mode: `MaxEncodedLen`) - /// Storage: `CollatorSelection::Invulnerables` (r:1 w:0) - /// Proof: `CollatorSelection::Invulnerables` (`max_values`: Some(1), `max_size`: Some(641), added: 1136, mode: `MaxEncodedLen`) - /// Storage: `CollatorSelection::LastAuthoredBlock` (r:0 w:1) - /// Proof: `CollatorSelection::LastAuthoredBlock` (`max_values`: None, `max_size`: Some(44), added: 2519, mode: `MaxEncodedLen`) - /// The range of component `c` is `[3, 100]`. - fn leave_intent(c: u32, ) -> Weight { - // Proof Size summary in bytes: - // Measured: `334 + c * (49 ±0)` - // Estimated: `6287` - // Minimum execution time: 32_953_000 picoseconds. - Weight::from_parts(34_817_275, 0) - .saturating_add(Weight::from_parts(0, 6287)) - // Standard Error: 2_476 - .saturating_add(Weight::from_parts(198_023, 0).saturating_mul(c.into())) - .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: `System::BlockWeight` (r:1 w:1) - /// Proof: `System::BlockWeight` (`max_values`: Some(1), `max_size`: Some(48), added: 543, mode: `MaxEncodedLen`) - /// Storage: `CollatorSelection::LastAuthoredBlock` (r:0 w:1) - /// Proof: `CollatorSelection::LastAuthoredBlock` (`max_values`: None, `max_size`: Some(44), added: 2519, mode: `MaxEncodedLen`) - fn note_author() -> Weight { - // Proof Size summary in bytes: - // Measured: `155` - // Estimated: `6196` - // Minimum execution time: 45_130_000 picoseconds. - Weight::from_parts(46_733_000, 0) - .saturating_add(Weight::from_parts(0, 6196)) - .saturating_add(T::DbWeight::get().reads(3)) - .saturating_add(T::DbWeight::get().writes(4)) - } - /// Storage: `CollatorSelection::Candidates` (r:1 w:0) - /// Proof: `CollatorSelection::Candidates` (`max_values`: Some(1), `max_size`: Some(4802), added: 5297, mode: `MaxEncodedLen`) - /// Storage: `CollatorSelection::LastAuthoredBlock` (r:100 w:0) - /// Proof: `CollatorSelection::LastAuthoredBlock` (`max_values`: None, `max_size`: Some(44), added: 2519, mode: `MaxEncodedLen`) - /// Storage: `CollatorSelection::Invulnerables` (r:1 w:0) - /// Proof: `CollatorSelection::Invulnerables` (`max_values`: Some(1), `max_size`: Some(641), added: 1136, mode: `MaxEncodedLen`) - /// Storage: `System::BlockWeight` (r:1 w:1) - /// Proof: `System::BlockWeight` (`max_values`: Some(1), `max_size`: Some(48), added: 543, mode: `MaxEncodedLen`) - /// Storage: `System::Account` (r:97 w:97) - /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`) - /// The range of component `r` is `[1, 100]`. - /// The range of component `c` is `[1, 100]`. - fn new_session(r: u32, c: u32, ) -> Weight { - // Proof Size summary in bytes: - // Measured: `2263 + c * (97 ±0) + r * (115 ±0)` - // Estimated: `6287 + c * (2519 ±0) + r * (2603 ±0)` - // Minimum execution time: 16_690_000 picoseconds. - Weight::from_parts(17_188_000, 0) - .saturating_add(Weight::from_parts(0, 6287)) - // Standard Error: 345_320 - .saturating_add(Weight::from_parts(15_166_422, 0).saturating_mul(c.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().writes(1)) - .saturating_add(T::DbWeight::get().writes((1_u64).saturating_mul(c.into()))) - .saturating_add(Weight::from_parts(0, 2519).saturating_mul(c.into())) - .saturating_add(Weight::from_parts(0, 2603).saturating_mul(r.into())) - } -} diff --git a/cumulus/parachains/runtimes/bridge-hubs/bridge-hub-westend/src/weights/pallet_multisig.rs b/cumulus/parachains/runtimes/bridge-hubs/bridge-hub-westend/src/weights/pallet_multisig.rs deleted file mode 100644 index 5a70933e9edb..000000000000 --- a/cumulus/parachains/runtimes/bridge-hubs/bridge-hub-westend/src/weights/pallet_multisig.rs +++ /dev/null @@ -1,165 +0,0 @@ -// Copyright (C) Parity Technologies (UK) Ltd. -// This file is part of Cumulus. - -// Cumulus 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. - -// Cumulus 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 Cumulus. If not, see . - -//! Autogenerated weights for `pallet_multisig` -//! -//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev -//! DATE: 2023-07-31, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` -//! WORST CASE MAP SIZE: `1000000` -//! HOSTNAME: `runner-ynta1nyy-project-238-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz` -//! EXECUTION: ``, WASM-EXECUTION: `Compiled`, CHAIN: `Some("bridge-hub-westend-dev")`, DB CACHE: 1024 - -// Executed Command: -// ./target/production/polkadot-parachain -// benchmark -// pallet -// --chain=bridge-hub-westend-dev -// --wasm-execution=compiled -// --pallet=pallet_multisig -// --no-storage-info -// --no-median-slopes -// --no-min-squares -// --extrinsic=* -// --steps=50 -// --repeat=20 -// --json -// --header=./file_header.txt -// --output=./parachains/runtimes/bridge-hubs/bridge-hub-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_multisig`. -pub struct WeightInfo(PhantomData); -impl pallet_multisig::WeightInfo for WeightInfo { - /// The range of component `z` is `[0, 10000]`. - fn as_multi_threshold_1(z: u32, ) -> Weight { - // Proof Size summary in bytes: - // Measured: `0` - // Estimated: `0` - // Minimum execution time: 13_602_000 picoseconds. - Weight::from_parts(14_565_036, 0) - .saturating_add(Weight::from_parts(0, 0)) - // Standard Error: 8 - .saturating_add(Weight::from_parts(518, 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`) - /// The range of component `s` is `[2, 100]`. - /// The range of component `z` is `[0, 10000]`. - fn as_multi_create(s: u32, z: u32, ) -> Weight { - // Proof Size summary in bytes: - // Measured: `263 + s * (2 ±0)` - // Estimated: `6811` - // Minimum execution time: 46_075_000 picoseconds. - Weight::from_parts(33_730_493, 0) - .saturating_add(Weight::from_parts(0, 6811)) - // Standard Error: 1_049 - .saturating_add(Weight::from_parts(134_211, 0).saturating_mul(s.into())) - // Standard Error: 10 - .saturating_add(Weight::from_parts(1_448, 0).saturating_mul(z.into())) - .saturating_add(T::DbWeight::get().reads(1)) - .saturating_add(T::DbWeight::get().writes(1)) - } - /// Storage: `Multisig::Multisigs` (r:1 w:1) - /// Proof: `Multisig::Multisigs` (`max_values`: None, `max_size`: Some(3346), added: 5821, mode: `MaxEncodedLen`) - /// The range of component `s` is `[3, 100]`. - /// The range of component `z` is `[0, 10000]`. - fn as_multi_approve(s: u32, z: u32, ) -> Weight { - // Proof Size summary in bytes: - // Measured: `282` - // Estimated: `6811` - // Minimum execution time: 29_389_000 picoseconds. - Weight::from_parts(19_639_583, 0) - .saturating_add(Weight::from_parts(0, 6811)) - // Standard Error: 976 - .saturating_add(Weight::from_parts(106_598, 0).saturating_mul(s.into())) - // Standard Error: 9 - .saturating_add(Weight::from_parts(1_457, 0).saturating_mul(z.into())) - .saturating_add(T::DbWeight::get().reads(1)) - .saturating_add(T::DbWeight::get().writes(1)) - } - /// Storage: `Multisig::Multisigs` (r:1 w:1) - /// Proof: `Multisig::Multisigs` (`max_values`: None, `max_size`: Some(3346), added: 5821, 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 `[2, 100]`. - /// The range of component `z` is `[0, 10000]`. - fn as_multi_complete(s: u32, z: u32, ) -> Weight { - // Proof Size summary in bytes: - // Measured: `388 + s * (33 ±0)` - // Estimated: `6811` - // Minimum execution time: 50_438_000 picoseconds. - Weight::from_parts(36_195_308, 0) - .saturating_add(Weight::from_parts(0, 6811)) - // Standard Error: 1_689 - .saturating_add(Weight::from_parts(176_067, 0).saturating_mul(s.into())) - // Standard Error: 16 - .saturating_add(Weight::from_parts(1_545, 0).saturating_mul(z.into())) - .saturating_add(T::DbWeight::get().reads(2)) - .saturating_add(T::DbWeight::get().writes(2)) - } - /// Storage: `Multisig::Multisigs` (r:1 w:1) - /// Proof: `Multisig::Multisigs` (`max_values`: None, `max_size`: Some(3346), added: 5821, mode: `MaxEncodedLen`) - /// The range of component `s` is `[2, 100]`. - fn approve_as_multi_create(s: u32, ) -> Weight { - // Proof Size summary in bytes: - // Measured: `263 + s * (2 ±0)` - // Estimated: `6811` - // Minimum execution time: 32_134_000 picoseconds. - Weight::from_parts(32_149_785, 0) - .saturating_add(Weight::from_parts(0, 6811)) - // Standard Error: 1_082 - .saturating_add(Weight::from_parts(145_390, 0).saturating_mul(s.into())) - .saturating_add(T::DbWeight::get().reads(1)) - .saturating_add(T::DbWeight::get().writes(1)) - } - /// Storage: `Multisig::Multisigs` (r:1 w:1) - /// Proof: `Multisig::Multisigs` (`max_values`: None, `max_size`: Some(3346), added: 5821, mode: `MaxEncodedLen`) - /// The range of component `s` is `[2, 100]`. - fn approve_as_multi_approve(s: u32, ) -> Weight { - // Proof Size summary in bytes: - // Measured: `282` - // Estimated: `6811` - // Minimum execution time: 17_560_000 picoseconds. - Weight::from_parts(18_144_079, 0) - .saturating_add(Weight::from_parts(0, 6811)) - // Standard Error: 763 - .saturating_add(Weight::from_parts(114_298, 0).saturating_mul(s.into())) - .saturating_add(T::DbWeight::get().reads(1)) - .saturating_add(T::DbWeight::get().writes(1)) - } - /// Storage: `Multisig::Multisigs` (r:1 w:1) - /// Proof: `Multisig::Multisigs` (`max_values`: None, `max_size`: Some(3346), added: 5821, mode: `MaxEncodedLen`) - /// The range of component `s` is `[2, 100]`. - fn cancel_as_multi(s: u32, ) -> Weight { - // Proof Size summary in bytes: - // Measured: `454 + s * (1 ±0)` - // Estimated: `6811` - // Minimum execution time: 32_360_000 picoseconds. - Weight::from_parts(33_566_579, 0) - .saturating_add(Weight::from_parts(0, 6811)) - // Standard Error: 1_314 - .saturating_add(Weight::from_parts(126_583, 0).saturating_mul(s.into())) - .saturating_add(T::DbWeight::get().reads(1)) - .saturating_add(T::DbWeight::get().writes(1)) - } -} diff --git a/cumulus/parachains/runtimes/bridge-hubs/bridge-hub-westend/src/weights/pallet_session.rs b/cumulus/parachains/runtimes/bridge-hubs/bridge-hub-westend/src/weights/pallet_session.rs deleted file mode 100644 index 25be0317154c..000000000000 --- a/cumulus/parachains/runtimes/bridge-hubs/bridge-hub-westend/src/weights/pallet_session.rs +++ /dev/null @@ -1,81 +0,0 @@ -// Copyright (C) Parity Technologies (UK) Ltd. -// This file is part of Cumulus. - -// Cumulus 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. - -// Cumulus 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 Cumulus. If not, see . - -//! Autogenerated weights for `pallet_session` -//! -//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev -//! DATE: 2023-07-31, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` -//! WORST CASE MAP SIZE: `1000000` -//! HOSTNAME: `runner-ynta1nyy-project-238-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz` -//! EXECUTION: ``, WASM-EXECUTION: `Compiled`, CHAIN: `Some("bridge-hub-westend-dev")`, DB CACHE: 1024 - -// Executed Command: -// ./target/production/polkadot-parachain -// benchmark -// pallet -// --chain=bridge-hub-westend-dev -// --wasm-execution=compiled -// --pallet=pallet_session -// --no-storage-info -// --no-median-slopes -// --no-min-squares -// --extrinsic=* -// --steps=50 -// --repeat=20 -// --json -// --header=./file_header.txt -// --output=./parachains/runtimes/bridge-hubs/bridge-hub-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_session`. -pub struct WeightInfo(PhantomData); -impl pallet_session::WeightInfo for WeightInfo { - /// Storage: `Session::NextKeys` (r:1 w:1) - /// Proof: `Session::NextKeys` (`max_values`: None, `max_size`: None, mode: `Measured`) - /// Storage: `Session::KeyOwner` (r:1 w:1) - /// Proof: `Session::KeyOwner` (`max_values`: None, `max_size`: None, mode: `Measured`) - fn set_keys() -> Weight { - // Proof Size summary in bytes: - // Measured: `297` - // Estimated: `3762` - // Minimum execution time: 17_170_000 picoseconds. - Weight::from_parts(17_523_000, 0) - .saturating_add(Weight::from_parts(0, 3762)) - .saturating_add(T::DbWeight::get().reads(2)) - .saturating_add(T::DbWeight::get().writes(2)) - } - /// Storage: `Session::NextKeys` (r:1 w:1) - /// Proof: `Session::NextKeys` (`max_values`: None, `max_size`: None, mode: `Measured`) - /// Storage: `Session::KeyOwner` (r:0 w:1) - /// Proof: `Session::KeyOwner` (`max_values`: None, `max_size`: None, mode: `Measured`) - fn purge_keys() -> Weight { - // Proof Size summary in bytes: - // Measured: `279` - // Estimated: `3744` - // Minimum execution time: 13_273_000 picoseconds. - Weight::from_parts(14_200_000, 0) - .saturating_add(Weight::from_parts(0, 3744)) - .saturating_add(T::DbWeight::get().reads(1)) - .saturating_add(T::DbWeight::get().writes(2)) - } -} diff --git a/cumulus/parachains/runtimes/bridge-hubs/bridge-hub-westend/src/weights/pallet_timestamp.rs b/cumulus/parachains/runtimes/bridge-hubs/bridge-hub-westend/src/weights/pallet_timestamp.rs deleted file mode 100644 index 45ab5ad5b529..000000000000 --- a/cumulus/parachains/runtimes/bridge-hubs/bridge-hub-westend/src/weights/pallet_timestamp.rs +++ /dev/null @@ -1,75 +0,0 @@ -// Copyright (C) Parity Technologies (UK) Ltd. -// This file is part of Cumulus. - -// Cumulus 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. - -// Cumulus 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 Cumulus. If not, see . - -//! Autogenerated weights for `pallet_timestamp` -//! -//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev -//! DATE: 2023-07-31, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` -//! WORST CASE MAP SIZE: `1000000` -//! HOSTNAME: `runner-ynta1nyy-project-238-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz` -//! EXECUTION: ``, WASM-EXECUTION: `Compiled`, CHAIN: `Some("bridge-hub-westend-dev")`, DB CACHE: 1024 - -// Executed Command: -// ./target/production/polkadot-parachain -// benchmark -// pallet -// --chain=bridge-hub-westend-dev -// --wasm-execution=compiled -// --pallet=pallet_timestamp -// --no-storage-info -// --no-median-slopes -// --no-min-squares -// --extrinsic=* -// --steps=50 -// --repeat=20 -// --json -// --header=./file_header.txt -// --output=./parachains/runtimes/bridge-hubs/bridge-hub-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_timestamp`. -pub struct WeightInfo(PhantomData); -impl pallet_timestamp::WeightInfo for WeightInfo { - /// Storage: `Timestamp::Now` (r:1 w:1) - /// Proof: `Timestamp::Now` (`max_values`: Some(1), `max_size`: Some(8), added: 503, mode: `MaxEncodedLen`) - /// Storage: `Aura::CurrentSlot` (r:1 w:0) - /// Proof: `Aura::CurrentSlot` (`max_values`: Some(1), `max_size`: Some(8), added: 503, mode: `MaxEncodedLen`) - fn set() -> Weight { - // Proof Size summary in bytes: - // Measured: `49` - // Estimated: `1493` - // Minimum execution time: 7_794_000 picoseconds. - Weight::from_parts(8_075_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: `57` - // Estimated: `0` - // Minimum execution time: 3_338_000 picoseconds. - Weight::from_parts(3_471_000, 0) - .saturating_add(Weight::from_parts(0, 0)) - } -} diff --git a/cumulus/parachains/runtimes/bridge-hubs/bridge-hub-westend/src/weights/pallet_utility.rs b/cumulus/parachains/runtimes/bridge-hubs/bridge-hub-westend/src/weights/pallet_utility.rs deleted file mode 100644 index a6c3b7703da6..000000000000 --- a/cumulus/parachains/runtimes/bridge-hubs/bridge-hub-westend/src/weights/pallet_utility.rs +++ /dev/null @@ -1,102 +0,0 @@ -// Copyright (C) Parity Technologies (UK) Ltd. -// This file is part of Cumulus. - -// Cumulus 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. - -// Cumulus 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 Cumulus. If not, see . - -//! Autogenerated weights for `pallet_utility` -//! -//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev -//! DATE: 2023-07-31, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` -//! WORST CASE MAP SIZE: `1000000` -//! HOSTNAME: `runner-ynta1nyy-project-238-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz` -//! EXECUTION: ``, WASM-EXECUTION: `Compiled`, CHAIN: `Some("bridge-hub-westend-dev")`, DB CACHE: 1024 - -// Executed Command: -// ./target/production/polkadot-parachain -// benchmark -// pallet -// --chain=bridge-hub-westend-dev -// --wasm-execution=compiled -// --pallet=pallet_utility -// --no-storage-info -// --no-median-slopes -// --no-min-squares -// --extrinsic=* -// --steps=50 -// --repeat=20 -// --json -// --header=./file_header.txt -// --output=./parachains/runtimes/bridge-hubs/bridge-hub-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_utility`. -pub struct WeightInfo(PhantomData); -impl pallet_utility::WeightInfo for WeightInfo { - /// The range of component `c` is `[0, 1000]`. - fn batch(c: u32, ) -> Weight { - // Proof Size summary in bytes: - // Measured: `0` - // Estimated: `0` - // Minimum execution time: 6_641_000 picoseconds. - Weight::from_parts(7_103_558, 0) - .saturating_add(Weight::from_parts(0, 0)) - // Standard Error: 1_172 - .saturating_add(Weight::from_parts(4_907_384, 0).saturating_mul(c.into())) - } - fn as_derivative() -> Weight { - // Proof Size summary in bytes: - // Measured: `0` - // Estimated: `0` - // Minimum execution time: 4_741_000 picoseconds. - Weight::from_parts(4_870_000, 0) - .saturating_add(Weight::from_parts(0, 0)) - } - /// The range of component `c` is `[0, 1000]`. - fn batch_all(c: u32, ) -> Weight { - // Proof Size summary in bytes: - // Measured: `0` - // Estimated: `0` - // Minimum execution time: 6_561_000 picoseconds. - Weight::from_parts(12_252_064, 0) - .saturating_add(Weight::from_parts(0, 0)) - // Standard Error: 1_750 - .saturating_add(Weight::from_parts(5_193_404, 0).saturating_mul(c.into())) - } - fn dispatch_as() -> Weight { - // Proof Size summary in bytes: - // Measured: `0` - // Estimated: `0` - // Minimum execution time: 8_646_000 picoseconds. - Weight::from_parts(8_927_000, 0) - .saturating_add(Weight::from_parts(0, 0)) - } - /// The range of component `c` is `[0, 1000]`. - fn force_batch(c: u32, ) -> Weight { - // Proof Size summary in bytes: - // Measured: `0` - // Estimated: `0` - // Minimum execution time: 6_726_000 picoseconds. - Weight::from_parts(8_025_954, 0) - .saturating_add(Weight::from_parts(0, 0)) - // Standard Error: 1_746 - .saturating_add(Weight::from_parts(4_936_537, 0).saturating_mul(c.into())) - } -} diff --git a/cumulus/parachains/runtimes/bridge-hubs/bridge-hub-westend/src/weights/pallet_xcm.rs b/cumulus/parachains/runtimes/bridge-hubs/bridge-hub-westend/src/weights/pallet_xcm.rs deleted file mode 100644 index 262bd5804ad1..000000000000 --- a/cumulus/parachains/runtimes/bridge-hubs/bridge-hub-westend/src/weights/pallet_xcm.rs +++ /dev/null @@ -1,289 +0,0 @@ -// Copyright (C) Parity Technologies (UK) Ltd. -// This file is part of Cumulus. - -// Cumulus 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. - -// Cumulus 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 Cumulus. If not, see . - -//! Autogenerated weights for `pallet_xcm` -//! -//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev -//! DATE: 2023-07-31, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` -//! WORST CASE MAP SIZE: `1000000` -//! HOSTNAME: `runner-ynta1nyy-project-238-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz` -//! EXECUTION: ``, WASM-EXECUTION: `Compiled`, CHAIN: `Some("bridge-hub-westend-dev")`, DB CACHE: 1024 - -// Executed Command: -// ./target/production/polkadot-parachain -// benchmark -// pallet -// --chain=bridge-hub-westend-dev -// --wasm-execution=compiled -// --pallet=pallet_xcm -// --no-storage-info -// --no-median-slopes -// --no-min-squares -// --extrinsic=* -// --steps=50 -// --repeat=20 -// --json -// --header=./file_header.txt -// --output=./parachains/runtimes/bridge-hubs/bridge-hub-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_xcm`. -pub struct WeightInfo(PhantomData); -impl pallet_xcm::WeightInfo for WeightInfo { - /// Storage: `PolkadotXcm::SupportedVersion` (r:1 w:0) - /// Proof: `PolkadotXcm::SupportedVersion` (`max_values`: None, `max_size`: None, mode: `Measured`) - /// Storage: `PolkadotXcm::VersionDiscoveryQueue` (r:1 w:1) - /// Proof: `PolkadotXcm::VersionDiscoveryQueue` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) - /// Storage: `PolkadotXcm::SafeXcmVersion` (r:1 w:0) - /// Proof: `PolkadotXcm::SafeXcmVersion` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) - /// Storage: `ParachainSystem::HostConfiguration` (r:1 w:0) - /// Proof: `ParachainSystem::HostConfiguration` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) - /// Storage: `ParachainSystem::PendingUpwardMessages` (r:1 w:1) - /// Proof: `ParachainSystem::PendingUpwardMessages` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) - fn send() -> Weight { - // Proof Size summary in bytes: - // Measured: `38` - // Estimated: `3503` - // Minimum execution time: 27_523_000 picoseconds. - Weight::from_parts(28_238_000, 0) - .saturating_add(Weight::from_parts(0, 3503)) - .saturating_add(T::DbWeight::get().reads(5)) - .saturating_add(T::DbWeight::get().writes(2)) - } - /// Storage: `ParachainInfo::ParachainId` (r:1 w:0) - /// Proof: `ParachainInfo::ParachainId` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`) - fn teleport_assets() -> Weight { - // Proof Size summary in bytes: - // Measured: `32` - // Estimated: `1489` - // Minimum execution time: 24_139_000 picoseconds. - Weight::from_parts(24_806_000, 0) - .saturating_add(Weight::from_parts(0, 1489)) - .saturating_add(T::DbWeight::get().reads(1)) - } - /// Storage: `Benchmark::Override` (r:0 w:0) - /// Proof: `Benchmark::Override` (`max_values`: None, `max_size`: None, mode: `Measured`) - fn reserve_transfer_assets() -> Weight { - // Proof Size summary in bytes: - // Measured: `0` - // Estimated: `0` - // Minimum execution time: 18_446_744_073_709_551_000 picoseconds. - Weight::from_parts(18_446_744_073_709_551_000, 0) - .saturating_add(Weight::from_parts(0, 0)) - } - /// Storage: `Benchmark::Override` (r:0 w:0) - /// Proof: `Benchmark::Override` (`max_values`: None, `max_size`: None, mode: `Measured`) - fn execute() -> Weight { - // Proof Size summary in bytes: - // Measured: `0` - // Estimated: `0` - // Minimum execution time: 18_446_744_073_709_551_000 picoseconds. - Weight::from_parts(18_446_744_073_709_551_000, 0) - .saturating_add(Weight::from_parts(0, 0)) - } - /// Storage: `PolkadotXcm::SupportedVersion` (r:0 w:1) - /// Proof: `PolkadotXcm::SupportedVersion` (`max_values`: None, `max_size`: None, mode: `Measured`) - fn force_xcm_version() -> Weight { - // Proof Size summary in bytes: - // Measured: `0` - // Estimated: `0` - // Minimum execution time: 8_988_000 picoseconds. - Weight::from_parts(9_227_000, 0) - .saturating_add(Weight::from_parts(0, 0)) - .saturating_add(T::DbWeight::get().writes(1)) - } - /// Storage: `PolkadotXcm::SafeXcmVersion` (r:0 w:1) - /// Proof: `PolkadotXcm::SafeXcmVersion` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) - fn force_default_xcm_version() -> Weight { - // Proof Size summary in bytes: - // Measured: `0` - // Estimated: `0` - // Minimum execution time: 2_571_000 picoseconds. - Weight::from_parts(2_667_000, 0) - .saturating_add(Weight::from_parts(0, 0)) - .saturating_add(T::DbWeight::get().writes(1)) - } - /// Storage: `PolkadotXcm::VersionNotifiers` (r:1 w:1) - /// Proof: `PolkadotXcm::VersionNotifiers` (`max_values`: None, `max_size`: None, mode: `Measured`) - /// Storage: `PolkadotXcm::QueryCounter` (r:1 w:1) - /// Proof: `PolkadotXcm::QueryCounter` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) - /// Storage: `PolkadotXcm::SupportedVersion` (r:1 w:0) - /// Proof: `PolkadotXcm::SupportedVersion` (`max_values`: None, `max_size`: None, mode: `Measured`) - /// Storage: `PolkadotXcm::VersionDiscoveryQueue` (r:1 w:1) - /// Proof: `PolkadotXcm::VersionDiscoveryQueue` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) - /// Storage: `PolkadotXcm::SafeXcmVersion` (r:1 w:0) - /// Proof: `PolkadotXcm::SafeXcmVersion` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) - /// Storage: `ParachainSystem::HostConfiguration` (r:1 w:0) - /// Proof: `ParachainSystem::HostConfiguration` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) - /// Storage: `ParachainSystem::PendingUpwardMessages` (r:1 w:1) - /// Proof: `ParachainSystem::PendingUpwardMessages` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) - /// Storage: `PolkadotXcm::Queries` (r:0 w:1) - /// Proof: `PolkadotXcm::Queries` (`max_values`: None, `max_size`: None, mode: `Measured`) - fn force_subscribe_version_notify() -> Weight { - // Proof Size summary in bytes: - // Measured: `38` - // Estimated: `3503` - // Minimum execution time: 33_194_000 picoseconds. - Weight::from_parts(34_089_000, 0) - .saturating_add(Weight::from_parts(0, 3503)) - .saturating_add(T::DbWeight::get().reads(7)) - .saturating_add(T::DbWeight::get().writes(5)) - } - /// Storage: `PolkadotXcm::VersionNotifiers` (r:1 w:1) - /// Proof: `PolkadotXcm::VersionNotifiers` (`max_values`: None, `max_size`: None, mode: `Measured`) - /// Storage: `PolkadotXcm::SupportedVersion` (r:1 w:0) - /// Proof: `PolkadotXcm::SupportedVersion` (`max_values`: None, `max_size`: None, mode: `Measured`) - /// Storage: `PolkadotXcm::VersionDiscoveryQueue` (r:1 w:1) - /// Proof: `PolkadotXcm::VersionDiscoveryQueue` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) - /// Storage: `PolkadotXcm::SafeXcmVersion` (r:1 w:0) - /// Proof: `PolkadotXcm::SafeXcmVersion` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) - /// Storage: `ParachainSystem::HostConfiguration` (r:1 w:0) - /// Proof: `ParachainSystem::HostConfiguration` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) - /// Storage: `ParachainSystem::PendingUpwardMessages` (r:1 w:1) - /// Proof: `ParachainSystem::PendingUpwardMessages` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) - /// Storage: `PolkadotXcm::Queries` (r:0 w:1) - /// Proof: `PolkadotXcm::Queries` (`max_values`: None, `max_size`: None, mode: `Measured`) - fn force_unsubscribe_version_notify() -> Weight { - // Proof Size summary in bytes: - // Measured: `255` - // Estimated: `3720` - // Minimum execution time: 35_413_000 picoseconds. - Weight::from_parts(36_359_000, 0) - .saturating_add(Weight::from_parts(0, 3720)) - .saturating_add(T::DbWeight::get().reads(6)) - .saturating_add(T::DbWeight::get().writes(4)) - } - /// Storage: `PolkadotXcm::XcmExecutionSuspended` (r:0 w:1) - /// Proof: `PolkadotXcm::XcmExecutionSuspended` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) - fn force_suspension() -> Weight { - // Proof Size summary in bytes: - // Measured: `0` - // Estimated: `0` - // Minimum execution time: 2_679_000 picoseconds. - Weight::from_parts(2_823_000, 0) - .saturating_add(Weight::from_parts(0, 0)) - .saturating_add(T::DbWeight::get().writes(1)) - } - /// Storage: `PolkadotXcm::SupportedVersion` (r:4 w:2) - /// Proof: `PolkadotXcm::SupportedVersion` (`max_values`: None, `max_size`: None, mode: `Measured`) - fn migrate_supported_version() -> Weight { - // Proof Size summary in bytes: - // Measured: `95` - // Estimated: `10985` - // Minimum execution time: 15_117_000 picoseconds. - Weight::from_parts(15_603_000, 0) - .saturating_add(Weight::from_parts(0, 10985)) - .saturating_add(T::DbWeight::get().reads(4)) - .saturating_add(T::DbWeight::get().writes(2)) - } - /// Storage: `PolkadotXcm::VersionNotifiers` (r:4 w:2) - /// Proof: `PolkadotXcm::VersionNotifiers` (`max_values`: None, `max_size`: None, mode: `Measured`) - fn migrate_version_notifiers() -> Weight { - // Proof Size summary in bytes: - // Measured: `99` - // Estimated: `10989` - // Minimum execution time: 14_978_000 picoseconds. - Weight::from_parts(15_370_000, 0) - .saturating_add(Weight::from_parts(0, 10989)) - .saturating_add(T::DbWeight::get().reads(4)) - .saturating_add(T::DbWeight::get().writes(2)) - } - /// Storage: `PolkadotXcm::VersionNotifyTargets` (r:5 w:0) - /// Proof: `PolkadotXcm::VersionNotifyTargets` (`max_values`: None, `max_size`: None, mode: `Measured`) - fn already_notified_target() -> Weight { - // Proof Size summary in bytes: - // Measured: `106` - // Estimated: `13471` - // Minimum execution time: 16_549_000 picoseconds. - Weight::from_parts(16_944_000, 0) - .saturating_add(Weight::from_parts(0, 13471)) - .saturating_add(T::DbWeight::get().reads(5)) - } - /// Storage: `PolkadotXcm::VersionNotifyTargets` (r:2 w:1) - /// Proof: `PolkadotXcm::VersionNotifyTargets` (`max_values`: None, `max_size`: None, mode: `Measured`) - /// Storage: `PolkadotXcm::SupportedVersion` (r:1 w:0) - /// Proof: `PolkadotXcm::SupportedVersion` (`max_values`: None, `max_size`: None, mode: `Measured`) - /// Storage: `PolkadotXcm::VersionDiscoveryQueue` (r:1 w:1) - /// Proof: `PolkadotXcm::VersionDiscoveryQueue` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) - /// Storage: `PolkadotXcm::SafeXcmVersion` (r:1 w:0) - /// Proof: `PolkadotXcm::SafeXcmVersion` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) - /// Storage: `ParachainSystem::HostConfiguration` (r:1 w:0) - /// Proof: `ParachainSystem::HostConfiguration` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) - /// Storage: `ParachainSystem::PendingUpwardMessages` (r:1 w:1) - /// Proof: `ParachainSystem::PendingUpwardMessages` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) - fn notify_current_targets() -> Weight { - // Proof Size summary in bytes: - // Measured: `106` - // Estimated: `6046` - // Minimum execution time: 30_111_000 picoseconds. - Weight::from_parts(30_795_000, 0) - .saturating_add(Weight::from_parts(0, 6046)) - .saturating_add(T::DbWeight::get().reads(7)) - .saturating_add(T::DbWeight::get().writes(3)) - } - /// Storage: `PolkadotXcm::VersionNotifyTargets` (r:3 w:0) - /// Proof: `PolkadotXcm::VersionNotifyTargets` (`max_values`: None, `max_size`: None, mode: `Measured`) - fn notify_target_migration_fail() -> Weight { - // Proof Size summary in bytes: - // Measured: `136` - // Estimated: `8551` - // Minimum execution time: 8_622_000 picoseconds. - Weight::from_parts(8_865_000, 0) - .saturating_add(Weight::from_parts(0, 8551)) - .saturating_add(T::DbWeight::get().reads(3)) - } - /// Storage: `PolkadotXcm::VersionNotifyTargets` (r:4 w:2) - /// Proof: `PolkadotXcm::VersionNotifyTargets` (`max_values`: None, `max_size`: None, mode: `Measured`) - fn migrate_version_notify_targets() -> Weight { - // Proof Size summary in bytes: - // Measured: `106` - // Estimated: `10996` - // Minimum execution time: 15_194_000 picoseconds. - Weight::from_parts(15_646_000, 0) - .saturating_add(Weight::from_parts(0, 10996)) - .saturating_add(T::DbWeight::get().reads(4)) - .saturating_add(T::DbWeight::get().writes(2)) - } - /// Storage: `PolkadotXcm::VersionNotifyTargets` (r:4 w:2) - /// Proof: `PolkadotXcm::VersionNotifyTargets` (`max_values`: None, `max_size`: None, mode: `Measured`) - /// Storage: `PolkadotXcm::SupportedVersion` (r:1 w:0) - /// Proof: `PolkadotXcm::SupportedVersion` (`max_values`: None, `max_size`: None, mode: `Measured`) - /// Storage: `PolkadotXcm::VersionDiscoveryQueue` (r:1 w:1) - /// Proof: `PolkadotXcm::VersionDiscoveryQueue` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) - /// Storage: `PolkadotXcm::SafeXcmVersion` (r:1 w:0) - /// Proof: `PolkadotXcm::SafeXcmVersion` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) - /// Storage: `ParachainSystem::HostConfiguration` (r:1 w:0) - /// Proof: `ParachainSystem::HostConfiguration` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) - /// Storage: `ParachainSystem::PendingUpwardMessages` (r:1 w:1) - /// Proof: `ParachainSystem::PendingUpwardMessages` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) - fn migrate_and_notify_old_targets() -> Weight { - // Proof Size summary in bytes: - // Measured: `112` - // Estimated: `11002` - // Minimum execution time: 36_625_000 picoseconds. - Weight::from_parts(37_571_000, 0) - .saturating_add(Weight::from_parts(0, 11002)) - .saturating_add(T::DbWeight::get().reads(9)) - .saturating_add(T::DbWeight::get().writes(4)) - } -} diff --git a/cumulus/parachains/runtimes/bridge-hubs/bridge-hub-westend/src/weights/paritydb_weights.rs b/cumulus/parachains/runtimes/bridge-hubs/bridge-hub-westend/src/weights/paritydb_weights.rs deleted file mode 100644 index 25679703831a..000000000000 --- a/cumulus/parachains/runtimes/bridge-hubs/bridge-hub-westend/src/weights/paritydb_weights.rs +++ /dev/null @@ -1,63 +0,0 @@ -// This file is part of Substrate. - -// 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. - -pub mod constants { - use frame_support::{ - parameter_types, - weights::{constants, RuntimeDbWeight}, - }; - - parameter_types! { - /// `ParityDB` can be enabled with a feature flag, but is still experimental. These weights - /// are available for brave runtime engineers who may want to try this out as default. - pub const ParityDbWeight: RuntimeDbWeight = RuntimeDbWeight { - read: 8_000 * constants::WEIGHT_REF_TIME_PER_NANOS, - write: 50_000 * constants::WEIGHT_REF_TIME_PER_NANOS, - }; - } - - #[cfg(test)] - mod test_db_weights { - use super::constants::ParityDbWeight as W; - use frame_support::weights::constants; - - /// Checks that all weights exist and have sane values. - // NOTE: If this test fails but you are sure that the generated values are fine, - // you can delete it. - #[test] - fn sane() { - // At least 1 µs. - assert!( - W::get().reads(1).ref_time() >= constants::WEIGHT_REF_TIME_PER_MICROS, - "Read weight should be at least 1 µs." - ); - assert!( - W::get().writes(1).ref_time() >= constants::WEIGHT_REF_TIME_PER_MICROS, - "Write weight should be at least 1 µs." - ); - // At most 1 ms. - assert!( - W::get().reads(1).ref_time() <= constants::WEIGHT_REF_TIME_PER_MILLIS, - "Read weight should be at most 1 ms." - ); - assert!( - W::get().writes(1).ref_time() <= constants::WEIGHT_REF_TIME_PER_MILLIS, - "Write weight should be at most 1 ms." - ); - } - } -} diff --git a/cumulus/parachains/runtimes/bridge-hubs/bridge-hub-westend/src/weights/rocksdb_weights.rs b/cumulus/parachains/runtimes/bridge-hubs/bridge-hub-westend/src/weights/rocksdb_weights.rs deleted file mode 100644 index 3dd817aa6f13..000000000000 --- a/cumulus/parachains/runtimes/bridge-hubs/bridge-hub-westend/src/weights/rocksdb_weights.rs +++ /dev/null @@ -1,63 +0,0 @@ -// This file is part of Substrate. - -// 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. - -pub mod constants { - use frame_support::{ - parameter_types, - weights::{constants, RuntimeDbWeight}, - }; - - parameter_types! { - /// By default, Substrate uses `RocksDB`, so this will be the weight used throughout - /// the runtime. - pub const RocksDbWeight: RuntimeDbWeight = RuntimeDbWeight { - read: 25_000 * constants::WEIGHT_REF_TIME_PER_NANOS, - write: 100_000 * constants::WEIGHT_REF_TIME_PER_NANOS, - }; - } - - #[cfg(test)] - mod test_db_weights { - use super::constants::RocksDbWeight as W; - use frame_support::weights::constants; - - /// Checks that all weights exist and have sane values. - // NOTE: If this test fails but you are sure that the generated values are fine, - // you can delete it. - #[test] - fn sane() { - // At least 1 µs. - assert!( - W::get().reads(1).ref_time() >= constants::WEIGHT_REF_TIME_PER_MICROS, - "Read weight should be at least 1 µs." - ); - assert!( - W::get().writes(1).ref_time() >= constants::WEIGHT_REF_TIME_PER_MICROS, - "Write weight should be at least 1 µs." - ); - // At most 1 ms. - assert!( - W::get().reads(1).ref_time() <= constants::WEIGHT_REF_TIME_PER_MILLIS, - "Read weight should be at most 1 ms." - ); - assert!( - W::get().writes(1).ref_time() <= constants::WEIGHT_REF_TIME_PER_MILLIS, - "Write weight should be at most 1 ms." - ); - } - } -} diff --git a/cumulus/parachains/runtimes/bridge-hubs/bridge-hub-westend/src/weights/xcm/mod.rs b/cumulus/parachains/runtimes/bridge-hubs/bridge-hub-westend/src/weights/xcm/mod.rs deleted file mode 100644 index e81bd02a409f..000000000000 --- a/cumulus/parachains/runtimes/bridge-hubs/bridge-hub-westend/src/weights/xcm/mod.rs +++ /dev/null @@ -1,256 +0,0 @@ -// Copyright (C) Parity Technologies (UK) Ltd. -// This file is part of Cumulus. - -// Cumulus 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. - -// Cumulus 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 Cumulus. If not, see . - -mod pallet_xcm_benchmarks_fungible; -mod pallet_xcm_benchmarks_generic; - -use crate::{xcm_config::MaxAssetsIntoHolding, Runtime}; -use frame_support::weights::Weight; -use pallet_xcm_benchmarks_fungible::WeightInfo as XcmFungibleWeight; -use pallet_xcm_benchmarks_generic::WeightInfo as XcmGeneric; -use sp_std::prelude::*; -use xcm::{latest::prelude::*, DoubleEncoded}; - -trait WeighMultiAssets { - fn weigh_multi_assets(&self, weight: Weight) -> Weight; -} - -const MAX_ASSETS: u64 = 100; - -impl WeighMultiAssets for MultiAssetFilter { - fn weigh_multi_assets(&self, weight: Weight) -> Weight { - match self { - Self::Definite(assets) => weight.saturating_mul(assets.inner().iter().count() as u64), - Self::Wild(asset) => match asset { - All => weight.saturating_mul(MAX_ASSETS), - AllOf { fun, .. } => match fun { - WildFungibility::Fungible => weight, - // Magic number 2 has to do with the fact that we could have up to 2 times - // MaxAssetsIntoHolding in the worst-case scenario. - WildFungibility::NonFungible => - weight.saturating_mul((MaxAssetsIntoHolding::get() * 2) as u64), - }, - AllCounted(count) => weight.saturating_mul(MAX_ASSETS.min(*count as u64)), - AllOfCounted { count, .. } => weight.saturating_mul(MAX_ASSETS.min(*count as u64)), - }, - } - } -} - -impl WeighMultiAssets for MultiAssets { - fn weigh_multi_assets(&self, weight: Weight) -> Weight { - weight.saturating_mul(self.inner().iter().count() as u64) - } -} - -pub struct BridgeHubWestendXcmWeight(core::marker::PhantomData); -impl XcmWeightInfo for BridgeHubWestendXcmWeight { - fn withdraw_asset(assets: &MultiAssets) -> Weight { - assets.weigh_multi_assets(XcmFungibleWeight::::withdraw_asset()) - } - // Currently there is no trusted reserve (`IsReserve = ()`), - // but we need this hack for `pallet_xcm::reserve_transfer_assets` - // (TODO) fix https://github.com/paritytech/polkadot/pull/7424 - // (TODO) fix https://github.com/paritytech/polkadot/pull/7546 - fn reserve_asset_deposited(_assets: &MultiAssets) -> Weight { - // TODO: if we change `IsReserve = ...` then use this line... - // TODO: or if remote weight estimation is fixed, then remove - // TODO: hardcoded - fix https://github.com/paritytech/cumulus/issues/1974 - let hardcoded_weight = Weight::from_parts(1_000_000_000_u64, 0); - hardcoded_weight.min(XcmFungibleWeight::::reserve_asset_deposited()) - } - fn receive_teleported_asset(assets: &MultiAssets) -> Weight { - assets.weigh_multi_assets(XcmFungibleWeight::::receive_teleported_asset()) - } - fn query_response( - _query_id: &u64, - _response: &Response, - _max_weight: &Weight, - _querier: &Option, - ) -> Weight { - XcmGeneric::::query_response() - } - fn transfer_asset(assets: &MultiAssets, _dest: &MultiLocation) -> Weight { - assets.weigh_multi_assets(XcmFungibleWeight::::transfer_asset()) - } - fn transfer_reserve_asset( - assets: &MultiAssets, - _dest: &MultiLocation, - _xcm: &Xcm<()>, - ) -> Weight { - assets.weigh_multi_assets(XcmFungibleWeight::::transfer_reserve_asset()) - } - fn transact( - _origin_type: &OriginKind, - _require_weight_at_most: &Weight, - _call: &DoubleEncoded, - ) -> Weight { - XcmGeneric::::transact() - } - fn hrmp_new_channel_open_request( - _sender: &u32, - _max_message_size: &u32, - _max_capacity: &u32, - ) -> Weight { - // XCM Executor does not currently support HRMP channel operations - Weight::MAX - } - fn hrmp_channel_accepted(_recipient: &u32) -> Weight { - // XCM Executor does not currently support HRMP channel operations - Weight::MAX - } - fn hrmp_channel_closing(_initiator: &u32, _sender: &u32, _recipient: &u32) -> Weight { - // XCM Executor does not currently support HRMP channel operations - Weight::MAX - } - fn clear_origin() -> Weight { - XcmGeneric::::clear_origin() - } - fn descend_origin(_who: &InteriorMultiLocation) -> Weight { - XcmGeneric::::descend_origin() - } - fn report_error(_query_response_info: &QueryResponseInfo) -> Weight { - XcmGeneric::::report_error() - } - - fn deposit_asset(assets: &MultiAssetFilter, _dest: &MultiLocation) -> Weight { - // Hardcoded till the XCM pallet is fixed - let hardcoded_weight = Weight::from_parts(1_000_000_000_u64, 0); - let weight = assets.weigh_multi_assets(XcmFungibleWeight::::deposit_asset()); - hardcoded_weight.min(weight) - } - fn deposit_reserve_asset( - assets: &MultiAssetFilter, - _dest: &MultiLocation, - _xcm: &Xcm<()>, - ) -> Weight { - assets.weigh_multi_assets(XcmFungibleWeight::::deposit_reserve_asset()) - } - fn exchange_asset(_give: &MultiAssetFilter, _receive: &MultiAssets, _maximal: &bool) -> Weight { - Weight::MAX - } - fn initiate_reserve_withdraw( - assets: &MultiAssetFilter, - _reserve: &MultiLocation, - _xcm: &Xcm<()>, - ) -> Weight { - assets.weigh_multi_assets(XcmFungibleWeight::::initiate_reserve_withdraw()) - } - fn initiate_teleport( - assets: &MultiAssetFilter, - _dest: &MultiLocation, - _xcm: &Xcm<()>, - ) -> Weight { - assets.weigh_multi_assets(XcmFungibleWeight::::initiate_teleport()) - } - fn report_holding(_response_info: &QueryResponseInfo, _assets: &MultiAssetFilter) -> Weight { - XcmGeneric::::report_holding() - } - fn buy_execution(_fees: &MultiAsset, _weight_limit: &WeightLimit) -> Weight { - XcmGeneric::::buy_execution() - } - fn refund_surplus() -> Weight { - XcmGeneric::::refund_surplus() - } - fn set_error_handler(_xcm: &Xcm) -> Weight { - XcmGeneric::::set_error_handler() - } - fn set_appendix(_xcm: &Xcm) -> Weight { - XcmGeneric::::set_appendix() - } - fn clear_error() -> Weight { - XcmGeneric::::clear_error() - } - fn claim_asset(_assets: &MultiAssets, _ticket: &MultiLocation) -> Weight { - XcmGeneric::::claim_asset() - } - fn trap(_code: &u64) -> Weight { - XcmGeneric::::trap() - } - fn subscribe_version(_query_id: &QueryId, _max_response_weight: &Weight) -> Weight { - XcmGeneric::::subscribe_version() - } - fn unsubscribe_version() -> Weight { - XcmGeneric::::unsubscribe_version() - } - fn burn_asset(assets: &MultiAssets) -> Weight { - assets.weigh_multi_assets(XcmGeneric::::burn_asset()) - } - fn expect_asset(assets: &MultiAssets) -> Weight { - assets.weigh_multi_assets(XcmGeneric::::expect_asset()) - } - fn expect_origin(_origin: &Option) -> Weight { - XcmGeneric::::expect_origin() - } - fn expect_error(_error: &Option<(u32, XcmError)>) -> Weight { - XcmGeneric::::expect_error() - } - fn expect_transact_status(_transact_status: &MaybeErrorCode) -> Weight { - XcmGeneric::::expect_transact_status() - } - fn query_pallet(_module_name: &Vec, _response_info: &QueryResponseInfo) -> Weight { - XcmGeneric::::query_pallet() - } - fn expect_pallet( - _index: &u32, - _name: &Vec, - _module_name: &Vec, - _crate_major: &u32, - _min_crate_minor: &u32, - ) -> Weight { - XcmGeneric::::expect_pallet() - } - fn report_transact_status(_response_info: &QueryResponseInfo) -> Weight { - XcmGeneric::::report_transact_status() - } - fn clear_transact_status() -> Weight { - XcmGeneric::::clear_transact_status() - } - fn universal_origin(_: &Junction) -> Weight { - Weight::MAX - } - fn export_message(_: &NetworkId, _: &Junctions, _: &Xcm<()>) -> Weight { - Weight::MAX - } - fn lock_asset(_: &MultiAsset, _: &MultiLocation) -> Weight { - Weight::MAX - } - fn unlock_asset(_: &MultiAsset, _: &MultiLocation) -> Weight { - Weight::MAX - } - fn note_unlockable(_: &MultiAsset, _: &MultiLocation) -> Weight { - Weight::MAX - } - fn request_unlock(_: &MultiAsset, _: &MultiLocation) -> Weight { - Weight::MAX - } - fn set_fees_mode(_: &bool) -> Weight { - XcmGeneric::::set_fees_mode() - } - fn set_topic(_topic: &[u8; 32]) -> Weight { - XcmGeneric::::set_topic() - } - fn clear_topic() -> Weight { - XcmGeneric::::clear_topic() - } - fn alias_origin(_: &MultiLocation) -> Weight { - // XCM Executor does not currently support alias origin operations - Weight::MAX - } - fn unpaid_execution(_: &WeightLimit, _: &Option) -> Weight { - XcmGeneric::::unpaid_execution() - } -} diff --git a/cumulus/parachains/runtimes/bridge-hubs/bridge-hub-westend/src/weights/xcm/pallet_xcm_benchmarks_fungible.rs b/cumulus/parachains/runtimes/bridge-hubs/bridge-hub-westend/src/weights/xcm/pallet_xcm_benchmarks_fungible.rs deleted file mode 100644 index e0d267ad8584..000000000000 --- a/cumulus/parachains/runtimes/bridge-hubs/bridge-hub-westend/src/weights/xcm/pallet_xcm_benchmarks_fungible.rs +++ /dev/null @@ -1,190 +0,0 @@ -// Copyright (C) Parity Technologies (UK) Ltd. -// This file is part of Cumulus. - -// Cumulus 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. - -// Cumulus 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 Cumulus. 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-07-31, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` -//! WORST CASE MAP SIZE: `1000000` -//! HOSTNAME: `runner-ynta1nyy-project-238-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz` -//! EXECUTION: , WASM-EXECUTION: Compiled, CHAIN: Some("bridge-hub-westend-dev"), DB CACHE: 1024 - -// Executed Command: -// ./target/production/polkadot-parachain -// benchmark -// pallet -// --template=./templates/xcm-bench-template.hbs -// --chain=bridge-hub-westend-dev -// --wasm-execution=compiled -// --pallet=pallet_xcm_benchmarks::fungible -// --no-storage-info -// --no-median-slopes -// --no-min-squares -// --extrinsic=* -// --steps=50 -// --repeat=20 -// --json -// --header=./file_header.txt -// --output=./parachains/runtimes/bridge-hubs/bridge-hub-westend/src/weights/xcm/pallet_xcm_benchmarks_fungible.rs - -#![cfg_attr(rustfmt, rustfmt_skip)] -#![allow(unused_parens)] -#![allow(unused_imports)] - -use frame_support::{traits::Get, weights::Weight}; -use sp_std::marker::PhantomData; - -/// Weights for `pallet_xcm_benchmarks::fungible`. -pub struct WeightInfo(PhantomData); -impl WeightInfo { - // Storage: `System::Account` (r:1 w:1) - // Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`) - pub fn withdraw_asset() -> Weight { - // Proof Size summary in bytes: - // Measured: `101` - // Estimated: `3593` - // Minimum execution time: 24_064_000 picoseconds. - Weight::from_parts(24_751_000, 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`) - pub fn transfer_asset() -> Weight { - // Proof Size summary in bytes: - // Measured: `153` - // Estimated: `6196` - // Minimum execution time: 51_097_000 picoseconds. - Weight::from_parts(51_960_000, 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: `ParachainInfo::ParachainId` (r:1 w:0) - // Proof: `ParachainInfo::ParachainId` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`) - // Storage: `PolkadotXcm::SupportedVersion` (r:1 w:0) - // Proof: `PolkadotXcm::SupportedVersion` (`max_values`: None, `max_size`: None, mode: `Measured`) - // Storage: `PolkadotXcm::VersionDiscoveryQueue` (r:1 w:1) - // Proof: `PolkadotXcm::VersionDiscoveryQueue` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) - // Storage: `PolkadotXcm::SafeXcmVersion` (r:1 w:0) - // Proof: `PolkadotXcm::SafeXcmVersion` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) - // Storage: `ParachainSystem::HostConfiguration` (r:1 w:0) - // Proof: `ParachainSystem::HostConfiguration` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) - // Storage: `ParachainSystem::PendingUpwardMessages` (r:1 w:1) - // Proof: `ParachainSystem::PendingUpwardMessages` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) - pub fn transfer_reserve_asset() -> Weight { - // Proof Size summary in bytes: - // Measured: `223` - // Estimated: `6196` - // Minimum execution time: 75_319_000 picoseconds. - Weight::from_parts(77_356_000, 6196) - .saturating_add(T::DbWeight::get().reads(8)) - .saturating_add(T::DbWeight::get().writes(4)) - } - // Storage: `Benchmark::Override` (r:0 w:0) - // Proof: `Benchmark::Override` (`max_values`: None, `max_size`: None, mode: `Measured`) - pub fn reserve_asset_deposited() -> Weight { - // Proof Size summary in bytes: - // Measured: `0` - // Estimated: `0` - // Minimum execution time: 500_000_000_000 picoseconds. - Weight::from_parts(500_000_000_000, 0) - } - // Storage: `ParachainInfo::ParachainId` (r:1 w:0) - // Proof: `ParachainInfo::ParachainId` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`) - // Storage: `PolkadotXcm::SupportedVersion` (r:1 w:0) - // Proof: `PolkadotXcm::SupportedVersion` (`max_values`: None, `max_size`: None, mode: `Measured`) - // Storage: `PolkadotXcm::VersionDiscoveryQueue` (r:1 w:1) - // Proof: `PolkadotXcm::VersionDiscoveryQueue` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) - // Storage: `PolkadotXcm::SafeXcmVersion` (r:1 w:0) - // Proof: `PolkadotXcm::SafeXcmVersion` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) - // Storage: `ParachainSystem::HostConfiguration` (r:1 w:0) - // Proof: `ParachainSystem::HostConfiguration` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) - // Storage: `ParachainSystem::PendingUpwardMessages` (r:1 w:1) - // Proof: `ParachainSystem::PendingUpwardMessages` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) - pub fn initiate_reserve_withdraw() -> Weight { - // Proof Size summary in bytes: - // Measured: `70` - // Estimated: `3535` - // Minimum execution time: 29_392_000 picoseconds. - Weight::from_parts(29_943_000, 3535) - .saturating_add(T::DbWeight::get().reads(6)) - .saturating_add(T::DbWeight::get().writes(2)) - } - pub fn receive_teleported_asset() -> Weight { - // Proof Size summary in bytes: - // Measured: `0` - // Estimated: `0` - // Minimum execution time: 3_637_000 picoseconds. - Weight::from_parts(3_720_000, 0) - } - // Storage: `System::Account` (r:1 w:1) - // Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`) - pub fn deposit_asset() -> Weight { - // Proof Size summary in bytes: - // Measured: `52` - // Estimated: `3593` - // Minimum execution time: 25_045_000 picoseconds. - Weight::from_parts(25_546_000, 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: `ParachainInfo::ParachainId` (r:1 w:0) - // Proof: `ParachainInfo::ParachainId` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`) - // Storage: `PolkadotXcm::SupportedVersion` (r:1 w:0) - // Proof: `PolkadotXcm::SupportedVersion` (`max_values`: None, `max_size`: None, mode: `Measured`) - // Storage: `PolkadotXcm::VersionDiscoveryQueue` (r:1 w:1) - // Proof: `PolkadotXcm::VersionDiscoveryQueue` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) - // Storage: `PolkadotXcm::SafeXcmVersion` (r:1 w:0) - // Proof: `PolkadotXcm::SafeXcmVersion` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) - // Storage: `ParachainSystem::HostConfiguration` (r:1 w:0) - // Proof: `ParachainSystem::HostConfiguration` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) - // Storage: `ParachainSystem::PendingUpwardMessages` (r:1 w:1) - // Proof: `ParachainSystem::PendingUpwardMessages` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) - pub fn deposit_reserve_asset() -> Weight { - // Proof Size summary in bytes: - // Measured: `122` - // Estimated: `3593` - // Minimum execution time: 51_450_000 picoseconds. - Weight::from_parts(52_354_000, 3593) - .saturating_add(T::DbWeight::get().reads(7)) - .saturating_add(T::DbWeight::get().writes(3)) - } - // Storage: `ParachainInfo::ParachainId` (r:1 w:0) - // Proof: `ParachainInfo::ParachainId` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`) - // Storage: `PolkadotXcm::SupportedVersion` (r:1 w:0) - // Proof: `PolkadotXcm::SupportedVersion` (`max_values`: None, `max_size`: None, mode: `Measured`) - // Storage: `PolkadotXcm::VersionDiscoveryQueue` (r:1 w:1) - // Proof: `PolkadotXcm::VersionDiscoveryQueue` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) - // Storage: `PolkadotXcm::SafeXcmVersion` (r:1 w:0) - // Proof: `PolkadotXcm::SafeXcmVersion` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) - // Storage: `ParachainSystem::HostConfiguration` (r:1 w:0) - // Proof: `ParachainSystem::HostConfiguration` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) - // Storage: `ParachainSystem::PendingUpwardMessages` (r:1 w:1) - // Proof: `ParachainSystem::PendingUpwardMessages` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) - pub fn initiate_teleport() -> Weight { - // Proof Size summary in bytes: - // Measured: `70` - // Estimated: `3535` - // Minimum execution time: 29_711_000 picoseconds. - Weight::from_parts(30_759_000, 3535) - .saturating_add(T::DbWeight::get().reads(6)) - .saturating_add(T::DbWeight::get().writes(2)) - } -} diff --git a/cumulus/parachains/runtimes/bridge-hubs/bridge-hub-westend/src/weights/xcm/pallet_xcm_benchmarks_generic.rs b/cumulus/parachains/runtimes/bridge-hubs/bridge-hub-westend/src/weights/xcm/pallet_xcm_benchmarks_generic.rs deleted file mode 100644 index 64c2c961f30f..000000000000 --- a/cumulus/parachains/runtimes/bridge-hubs/bridge-hub-westend/src/weights/xcm/pallet_xcm_benchmarks_generic.rs +++ /dev/null @@ -1,329 +0,0 @@ -// Copyright (C) Parity Technologies (UK) Ltd. -// This file is part of Cumulus. - -// Cumulus 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. - -// Cumulus 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 Cumulus. 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-07-31, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` -//! WORST CASE MAP SIZE: `1000000` -//! HOSTNAME: `runner-ynta1nyy-project-238-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz` -//! EXECUTION: , WASM-EXECUTION: Compiled, CHAIN: Some("bridge-hub-westend-dev"), DB CACHE: 1024 - -// Executed Command: -// ./target/production/polkadot-parachain -// benchmark -// pallet -// --template=./templates/xcm-bench-template.hbs -// --chain=bridge-hub-westend-dev -// --wasm-execution=compiled -// --pallet=pallet_xcm_benchmarks::generic -// --no-storage-info -// --no-median-slopes -// --no-min-squares -// --extrinsic=* -// --steps=50 -// --repeat=20 -// --json -// --header=./file_header.txt -// --output=./parachains/runtimes/bridge-hubs/bridge-hub-westend/src/weights/xcm/pallet_xcm_benchmarks_generic.rs - -#![cfg_attr(rustfmt, rustfmt_skip)] -#![allow(unused_parens)] -#![allow(unused_imports)] - -use frame_support::{traits::Get, weights::Weight}; -use sp_std::marker::PhantomData; - -/// Weights for `pallet_xcm_benchmarks::generic`. -pub struct WeightInfo(PhantomData); -impl WeightInfo { - // Storage: `ParachainInfo::ParachainId` (r:1 w:0) - // Proof: `ParachainInfo::ParachainId` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`) - // Storage: `PolkadotXcm::SupportedVersion` (r:1 w:0) - // Proof: `PolkadotXcm::SupportedVersion` (`max_values`: None, `max_size`: None, mode: `Measured`) - // Storage: `PolkadotXcm::VersionDiscoveryQueue` (r:1 w:1) - // Proof: `PolkadotXcm::VersionDiscoveryQueue` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) - // Storage: `PolkadotXcm::SafeXcmVersion` (r:1 w:0) - // Proof: `PolkadotXcm::SafeXcmVersion` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) - // Storage: `ParachainSystem::HostConfiguration` (r:1 w:0) - // Proof: `ParachainSystem::HostConfiguration` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) - // Storage: `ParachainSystem::PendingUpwardMessages` (r:1 w:1) - // Proof: `ParachainSystem::PendingUpwardMessages` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) - pub fn report_holding() -> Weight { - // Proof Size summary in bytes: - // Measured: `70` - // Estimated: `3535` - // Minimum execution time: 33_141_000 picoseconds. - Weight::from_parts(34_380_000, 3535) - .saturating_add(T::DbWeight::get().reads(6)) - .saturating_add(T::DbWeight::get().writes(2)) - } - pub fn buy_execution() -> Weight { - // Proof Size summary in bytes: - // Measured: `0` - // Estimated: `0` - // Minimum execution time: 2_803_000 picoseconds. - Weight::from_parts(2_904_000, 0) - } - // Storage: `PolkadotXcm::Queries` (r:1 w:0) - // Proof: `PolkadotXcm::Queries` (`max_values`: None, `max_size`: None, mode: `Measured`) - pub fn query_response() -> Weight { - // Proof Size summary in bytes: - // Measured: `32` - // Estimated: `3497` - // Minimum execution time: 10_308_000 picoseconds. - Weight::from_parts(10_753_000, 3497) - .saturating_add(T::DbWeight::get().reads(1)) - } - pub fn transact() -> Weight { - // Proof Size summary in bytes: - // Measured: `0` - // Estimated: `0` - // Minimum execution time: 11_499_000 picoseconds. - Weight::from_parts(11_786_000, 0) - } - pub fn refund_surplus() -> Weight { - // Proof Size summary in bytes: - // Measured: `0` - // Estimated: `0` - // Minimum execution time: 3_102_000 picoseconds. - Weight::from_parts(3_161_000, 0) - } - pub fn set_error_handler() -> Weight { - // Proof Size summary in bytes: - // Measured: `0` - // Estimated: `0` - // Minimum execution time: 2_678_000 picoseconds. - Weight::from_parts(2_795_000, 0) - } - pub fn set_appendix() -> Weight { - // Proof Size summary in bytes: - // Measured: `0` - // Estimated: `0` - // Minimum execution time: 2_685_000 picoseconds. - Weight::from_parts(2_758_000, 0) - } - pub fn clear_error() -> Weight { - // Proof Size summary in bytes: - // Measured: `0` - // Estimated: `0` - // Minimum execution time: 2_590_000 picoseconds. - Weight::from_parts(2_754_000, 0) - } - pub fn descend_origin() -> Weight { - // Proof Size summary in bytes: - // Measured: `0` - // Estimated: `0` - // Minimum execution time: 3_297_000 picoseconds. - Weight::from_parts(3_419_000, 0) - } - pub fn clear_origin() -> Weight { - // Proof Size summary in bytes: - // Measured: `0` - // Estimated: `0` - // Minimum execution time: 2_606_000 picoseconds. - Weight::from_parts(2_717_000, 0) - } - // Storage: `ParachainInfo::ParachainId` (r:1 w:0) - // Proof: `ParachainInfo::ParachainId` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`) - // Storage: `PolkadotXcm::SupportedVersion` (r:1 w:0) - // Proof: `PolkadotXcm::SupportedVersion` (`max_values`: None, `max_size`: None, mode: `Measured`) - // Storage: `PolkadotXcm::VersionDiscoveryQueue` (r:1 w:1) - // Proof: `PolkadotXcm::VersionDiscoveryQueue` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) - // Storage: `PolkadotXcm::SafeXcmVersion` (r:1 w:0) - // Proof: `PolkadotXcm::SafeXcmVersion` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) - // Storage: `ParachainSystem::HostConfiguration` (r:1 w:0) - // Proof: `ParachainSystem::HostConfiguration` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) - // Storage: `ParachainSystem::PendingUpwardMessages` (r:1 w:1) - // Proof: `ParachainSystem::PendingUpwardMessages` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) - pub fn report_error() -> Weight { - // Proof Size summary in bytes: - // Measured: `70` - // Estimated: `3535` - // Minimum execution time: 26_242_000 picoseconds. - Weight::from_parts(29_220_000, 3535) - .saturating_add(T::DbWeight::get().reads(6)) - .saturating_add(T::DbWeight::get().writes(2)) - } - // Storage: `PolkadotXcm::AssetTraps` (r:1 w:1) - // Proof: `PolkadotXcm::AssetTraps` (`max_values`: None, `max_size`: None, mode: `Measured`) - pub fn claim_asset() -> Weight { - // Proof Size summary in bytes: - // Measured: `90` - // Estimated: `3555` - // Minimum execution time: 14_106_000 picoseconds. - Weight::from_parts(14_535_000, 3555) - .saturating_add(T::DbWeight::get().reads(1)) - .saturating_add(T::DbWeight::get().writes(1)) - } - pub fn trap() -> Weight { - // Proof Size summary in bytes: - // Measured: `0` - // Estimated: `0` - // Minimum execution time: 2_634_000 picoseconds. - Weight::from_parts(2_763_000, 0) - } - // Storage: `PolkadotXcm::VersionNotifyTargets` (r:1 w:1) - // Proof: `PolkadotXcm::VersionNotifyTargets` (`max_values`: None, `max_size`: None, mode: `Measured`) - // Storage: `PolkadotXcm::SupportedVersion` (r:1 w:0) - // Proof: `PolkadotXcm::SupportedVersion` (`max_values`: None, `max_size`: None, mode: `Measured`) - // Storage: `PolkadotXcm::VersionDiscoveryQueue` (r:1 w:1) - // Proof: `PolkadotXcm::VersionDiscoveryQueue` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) - // Storage: `PolkadotXcm::SafeXcmVersion` (r:1 w:0) - // Proof: `PolkadotXcm::SafeXcmVersion` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) - // Storage: `ParachainSystem::HostConfiguration` (r:1 w:0) - // Proof: `ParachainSystem::HostConfiguration` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) - // Storage: `ParachainSystem::PendingUpwardMessages` (r:1 w:1) - // Proof: `ParachainSystem::PendingUpwardMessages` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) - pub fn subscribe_version() -> Weight { - // Proof Size summary in bytes: - // Measured: `38` - // Estimated: `3503` - // Minimum execution time: 27_802_000 picoseconds. - Weight::from_parts(28_495_000, 3503) - .saturating_add(T::DbWeight::get().reads(6)) - .saturating_add(T::DbWeight::get().writes(3)) - } - // Storage: `PolkadotXcm::VersionNotifyTargets` (r:0 w:1) - // Proof: `PolkadotXcm::VersionNotifyTargets` (`max_values`: None, `max_size`: None, mode: `Measured`) - pub fn unsubscribe_version() -> Weight { - // Proof Size summary in bytes: - // Measured: `0` - // Estimated: `0` - // Minimum execution time: 4_683_000 picoseconds. - Weight::from_parts(4_907_000, 0) - .saturating_add(T::DbWeight::get().writes(1)) - } - pub fn burn_asset() -> Weight { - // Proof Size summary in bytes: - // Measured: `0` - // Estimated: `0` - // Minimum execution time: 3_941_000 picoseconds. - Weight::from_parts(4_080_000, 0) - } - pub fn expect_asset() -> Weight { - // Proof Size summary in bytes: - // Measured: `0` - // Estimated: `0` - // Minimum execution time: 2_775_000 picoseconds. - Weight::from_parts(2_908_000, 0) - } - pub fn expect_origin() -> Weight { - // Proof Size summary in bytes: - // Measured: `0` - // Estimated: `0` - // Minimum execution time: 2_743_000 picoseconds. - Weight::from_parts(2_863_000, 0) - } - pub fn expect_error() -> Weight { - // Proof Size summary in bytes: - // Measured: `0` - // Estimated: `0` - // Minimum execution time: 2_641_000 picoseconds. - Weight::from_parts(2_771_000, 0) - } - pub fn expect_transact_status() -> Weight { - // Proof Size summary in bytes: - // Measured: `0` - // Estimated: `0` - // Minimum execution time: 2_838_000 picoseconds. - Weight::from_parts(2_950_000, 0) - } - // Storage: `ParachainInfo::ParachainId` (r:1 w:0) - // Proof: `ParachainInfo::ParachainId` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`) - // Storage: `PolkadotXcm::SupportedVersion` (r:1 w:0) - // Proof: `PolkadotXcm::SupportedVersion` (`max_values`: None, `max_size`: None, mode: `Measured`) - // Storage: `PolkadotXcm::VersionDiscoveryQueue` (r:1 w:1) - // Proof: `PolkadotXcm::VersionDiscoveryQueue` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) - // Storage: `PolkadotXcm::SafeXcmVersion` (r:1 w:0) - // Proof: `PolkadotXcm::SafeXcmVersion` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) - // Storage: `ParachainSystem::HostConfiguration` (r:1 w:0) - // Proof: `ParachainSystem::HostConfiguration` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) - // Storage: `ParachainSystem::PendingUpwardMessages` (r:1 w:1) - // Proof: `ParachainSystem::PendingUpwardMessages` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) - pub fn query_pallet() -> Weight { - // Proof Size summary in bytes: - // Measured: `70` - // Estimated: `3535` - // Minimum execution time: 29_284_000 picoseconds. - Weight::from_parts(29_867_000, 3535) - .saturating_add(T::DbWeight::get().reads(6)) - .saturating_add(T::DbWeight::get().writes(2)) - } - pub fn expect_pallet() -> Weight { - // Proof Size summary in bytes: - // Measured: `0` - // Estimated: `0` - // Minimum execution time: 4_734_000 picoseconds. - Weight::from_parts(4_876_000, 0) - } - // Storage: `ParachainInfo::ParachainId` (r:1 w:0) - // Proof: `ParachainInfo::ParachainId` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`) - // Storage: `PolkadotXcm::SupportedVersion` (r:1 w:0) - // Proof: `PolkadotXcm::SupportedVersion` (`max_values`: None, `max_size`: None, mode: `Measured`) - // Storage: `PolkadotXcm::VersionDiscoveryQueue` (r:1 w:1) - // Proof: `PolkadotXcm::VersionDiscoveryQueue` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) - // Storage: `PolkadotXcm::SafeXcmVersion` (r:1 w:0) - // Proof: `PolkadotXcm::SafeXcmVersion` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) - // Storage: `ParachainSystem::HostConfiguration` (r:1 w:0) - // Proof: `ParachainSystem::HostConfiguration` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) - // Storage: `ParachainSystem::PendingUpwardMessages` (r:1 w:1) - // Proof: `ParachainSystem::PendingUpwardMessages` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) - pub fn report_transact_status() -> Weight { - // Proof Size summary in bytes: - // Measured: `70` - // Estimated: `3535` - // Minimum execution time: 26_154_000 picoseconds. - Weight::from_parts(26_851_000, 3535) - .saturating_add(T::DbWeight::get().reads(6)) - .saturating_add(T::DbWeight::get().writes(2)) - } - pub fn clear_transact_status() -> Weight { - // Proof Size summary in bytes: - // Measured: `0` - // Estimated: `0` - // Minimum execution time: 2_678_000 picoseconds. - Weight::from_parts(2_748_000, 0) - } - pub fn set_topic() -> Weight { - // Proof Size summary in bytes: - // Measured: `0` - // Estimated: `0` - // Minimum execution time: 2_585_000 picoseconds. - Weight::from_parts(2_697_000, 0) - } - pub fn clear_topic() -> Weight { - // Proof Size summary in bytes: - // Measured: `0` - // Estimated: `0` - // Minimum execution time: 2_576_000 picoseconds. - Weight::from_parts(2_701_000, 0) - } - pub fn set_fees_mode() -> Weight { - // Proof Size summary in bytes: - // Measured: `0` - // Estimated: `0` - // Minimum execution time: 2_597_000 picoseconds. - Weight::from_parts(2_735_000, 0) - } - pub fn unpaid_execution() -> Weight { - // Proof Size summary in bytes: - // Measured: `0` - // Estimated: `0` - // Minimum execution time: 2_744_000 picoseconds. - Weight::from_parts(2_809_000, 0) - } -} diff --git a/cumulus/parachains/runtimes/bridge-hubs/bridge-hub-westend/src/xcm_config.rs b/cumulus/parachains/runtimes/bridge-hubs/bridge-hub-westend/src/xcm_config.rs deleted file mode 100644 index ec94063cd6e8..000000000000 --- a/cumulus/parachains/runtimes/bridge-hubs/bridge-hub-westend/src/xcm_config.rs +++ /dev/null @@ -1,272 +0,0 @@ -// Copyright (C) Parity Technologies (UK) Ltd. -// This file is part of Cumulus. - -// Cumulus 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. - -// Cumulus 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 Cumulus. If not, see . - -use super::{ - AccountId, AllPalletsWithSystem, Balances, ParachainInfo, ParachainSystem, PolkadotXcm, - Runtime, RuntimeCall, RuntimeEvent, RuntimeOrigin, WeightToFee, XcmpQueue, -}; -use frame_support::{ - match_types, parameter_types, - traits::{ConstU32, Contains, Everything, Nothing}, -}; -use frame_system::EnsureRoot; -use pallet_xcm::XcmPassthrough; -use parachains_common::{impls::ToStakingPot, xcm_config::ConcreteNativeAssetFrom}; -use polkadot_parachain_primitives::primitives::Sibling; -use xcm::latest::prelude::*; -use xcm_builder::{ - AccountId32Aliases, AllowExplicitUnpaidExecutionFrom, AllowKnownQueryResponses, - AllowSubscriptionsFrom, AllowTopLevelPaidExecutionFrom, CurrencyAdapter, - DenyReserveTransferToRelayChain, DenyThenTry, EnsureXcmOrigin, IsConcrete, ParentAsSuperuser, - ParentIsPreset, RelayChainAsNative, SiblingParachainAsNative, SiblingParachainConvertsVia, - SignedAccountId32AsNative, SignedToAccountId32, SovereignSignedViaLocation, TakeWeightCredit, - TrailingSetTopicAsId, UsingComponents, WeightInfoBounds, WithComputedOrigin, WithUniqueTopic, -}; -use xcm_executor::{traits::WithOriginFilter, XcmExecutor}; - -parameter_types! { - pub const KsmRelayLocation: MultiLocation = MultiLocation::parent(); - pub const RelayNetwork: Option = Some(NetworkId::Westend); - pub RelayChainOrigin: RuntimeOrigin = cumulus_pallet_xcm::Origin::Relay.into(); - pub UniversalLocation: InteriorMultiLocation = - X2(GlobalConsensus(RelayNetwork::get().unwrap()), Parachain(ParachainInfo::parachain_id().into())); - pub const MaxInstructions: u32 = 100; - pub const MaxAssetsIntoHolding: u32 = 64; - pub const GovernanceLocation: MultiLocation = MultiLocation::parent(); - pub const FellowshipLocation: MultiLocation = MultiLocation::parent(); -} - -/// Type for specifying how a `MultiLocation` can be converted into an `AccountId`. This is used -/// when determining ownership of accounts for asset transacting and when attempting to use XCM -/// `Transact` in order to determine the dispatch Origin. -pub type LocationToAccountId = ( - // The parent (Relay-chain) origin converts to the parent `AccountId`. - ParentIsPreset, - // Sibling parachain origins convert to AccountId via the `ParaId::into`. - SiblingParachainConvertsVia, - // Straight up local `AccountId32` origins just alias directly to `AccountId`. - AccountId32Aliases, -); - -/// Means for transacting the native currency on this chain. -pub type CurrencyTransactor = CurrencyAdapter< - // Use this currency: - Balances, - // Use this currency when it is a fungible asset matching the given location or name: - IsConcrete, - // Do a simple punn to convert an AccountId32 MultiLocation into a native chain account ID: - LocationToAccountId, - // Our chain's account ID type (we can't get away without mentioning it explicitly): - AccountId, - // We don't track any teleports of `Balances`. - (), ->; - -/// This is the type we use to convert an (incoming) XCM origin into a local `Origin` instance, -/// ready for dispatching a transaction with Xcm's `Transact`. There is an `OriginKind` which can -/// biases the kind of local `Origin` it will become. -pub type XcmOriginToTransactDispatchOrigin = ( - // Sovereign account converter; this attempts to derive an `AccountId` from the origin location - // using `LocationToAccountId` and then turn that into the usual `Signed` origin. Useful for - // foreign chains who want to have a local sovereign account on this chain which they control. - SovereignSignedViaLocation, - // Native converter for Relay-chain (Parent) location; will converts to a `Relay` origin when - // recognized. - RelayChainAsNative, - // Native converter for sibling Parachains; will convert to a `SiblingPara` origin when - // recognized. - SiblingParachainAsNative, - // Superuser converter for the Relay-chain (Parent) location. This will allow it to issue a - // transaction from the Root origin. - ParentAsSuperuser, - // Native signed account converter; this just converts an `AccountId32` origin into a normal - // `RuntimeOrigin::Signed` origin of the same 32-byte value. - SignedAccountId32AsNative, - // Xcm origins can be represented natively under the Xcm pallet's Xcm origin. - XcmPassthrough, -); - -match_types! { - pub type ParentOrParentsPlurality: impl Contains = { - MultiLocation { parents: 1, interior: Here } | - MultiLocation { parents: 1, interior: X1(Plurality { .. }) } - }; - pub type ParentOrSiblings: impl Contains = { - MultiLocation { parents: 1, interior: Here } | - MultiLocation { parents: 1, interior: X1(_) } - }; -} -/// A call filter for the XCM Transact instruction. This is a temporary measure until we properly -/// account for proof size weights. -/// -/// Calls that are allowed through this filter must: -/// 1. Have a fixed weight; -/// 2. Cannot lead to another call being made; -/// 3. Have a defined proof size weight, e.g. no unbounded vecs in call parameters. -pub struct SafeCallFilter; -impl Contains for SafeCallFilter { - fn contains(call: &RuntimeCall) -> bool { - #[cfg(feature = "runtime-benchmarks")] - { - if matches!(call, RuntimeCall::System(frame_system::Call::remark_with_event { .. })) { - return true - } - } - - matches!( - call, - RuntimeCall::PolkadotXcm(pallet_xcm::Call::force_xcm_version { .. }) | - RuntimeCall::System( - frame_system::Call::set_heap_pages { .. } | - frame_system::Call::set_code { .. } | - frame_system::Call::set_code_without_checks { .. } | - frame_system::Call::kill_prefix { .. }, - ) | RuntimeCall::ParachainSystem(..) | - RuntimeCall::Timestamp(..) | - RuntimeCall::Balances(..) | - RuntimeCall::CollatorSelection( - pallet_collator_selection::Call::set_desired_candidates { .. } | - pallet_collator_selection::Call::set_candidacy_bond { .. } | - pallet_collator_selection::Call::register_as_candidate { .. } | - pallet_collator_selection::Call::leave_intent { .. } | - pallet_collator_selection::Call::set_invulnerables { .. } | - pallet_collator_selection::Call::add_invulnerable { .. } | - pallet_collator_selection::Call::remove_invulnerable { .. }, - ) | RuntimeCall::Session(pallet_session::Call::purge_keys { .. }) | - RuntimeCall::XcmpQueue(..) | - RuntimeCall::DmpQueue(..) - ) - } -} - -pub type Barrier = TrailingSetTopicAsId< - DenyThenTry< - DenyReserveTransferToRelayChain, - ( - // Allow local users to buy weight credit. - TakeWeightCredit, - // Expected responses are OK. - AllowKnownQueryResponses, - WithComputedOrigin< - ( - // If the message is one that immediately attemps to pay for execution, then - // allow it. - AllowTopLevelPaidExecutionFrom, - // Parent and its pluralities (i.e. governance bodies) get free execution. - AllowExplicitUnpaidExecutionFrom, - // Subscriptions for version tracking are OK. - AllowSubscriptionsFrom, - ), - UniversalLocation, - ConstU32<8>, - >, - ), - >, ->; - -pub struct XcmConfig; -impl xcm_executor::Config for XcmConfig { - type RuntimeCall = RuntimeCall; - type XcmSender = XcmRouter; - type AssetTransactor = CurrencyTransactor; - type OriginConverter = XcmOriginToTransactDispatchOrigin; - // BridgeHub does not recognize a reserve location for any asset. Users must teleport KSM - // where allowed (e.g. with the Relay Chain). - type IsReserve = (); - /// Only allow teleportation of KSM. - type IsTeleporter = ConcreteNativeAssetFrom; - type UniversalLocation = UniversalLocation; - type Barrier = Barrier; - type Weigher = WeightInfoBounds< - crate::weights::xcm::BridgeHubWestendXcmWeight, - RuntimeCall, - MaxInstructions, - >; - type Trader = - UsingComponents>; - type ResponseHandler = PolkadotXcm; - type AssetTrap = PolkadotXcm; - type AssetClaims = PolkadotXcm; - type SubscriptionService = PolkadotXcm; - type PalletInstancesInfo = AllPalletsWithSystem; - type MaxAssetsIntoHolding = MaxAssetsIntoHolding; - type AssetLocker = (); - type AssetExchanger = (); - type FeeManager = (); - type MessageExporter = (); - type UniversalAliases = Nothing; - type CallDispatcher = WithOriginFilter; - type SafeCallFilter = SafeCallFilter; - type Aliasers = Nothing; -} - -/// Converts a local signed origin into an XCM multilocation. -/// Forms the basis for local origins sending/executing XCMs. -pub type LocalOriginToLocation = SignedToAccountId32; - -/// The means for routing XCM messages which are not for local execution into the right message -/// queues. -pub type XcmRouter = WithUniqueTopic<( - // Two routers - use UMP to communicate with the relay chain: - cumulus_primitives_utility::ParentAsUmp, - // ..and XCMP to communicate with the sibling chains. - XcmpQueue, -)>; - -#[cfg(feature = "runtime-benchmarks")] -parameter_types! { - pub ReachableDest: Option = Some(Parent.into()); -} - -impl pallet_xcm::Config for Runtime { - type RuntimeEvent = RuntimeEvent; - // We want to disallow users sending (arbitrary) XCMs from this chain. - type SendXcmOrigin = EnsureXcmOrigin; - type XcmRouter = XcmRouter; - // We support local origins dispatching XCM executions in principle... - type ExecuteXcmOrigin = EnsureXcmOrigin; - // ... but disallow generic XCM execution. As a result only teleports are allowed. - type XcmExecuteFilter = Nothing; - type XcmExecutor = XcmExecutor; - type XcmTeleportFilter = Everything; - type XcmReserveTransferFilter = Nothing; // This parachain is not meant as a reserve location. - type Weigher = WeightInfoBounds< - crate::weights::xcm::BridgeHubWestendXcmWeight, - RuntimeCall, - MaxInstructions, - >; - type UniversalLocation = UniversalLocation; - type RuntimeOrigin = RuntimeOrigin; - type RuntimeCall = RuntimeCall; - const VERSION_DISCOVERY_QUEUE_SIZE: u32 = 100; - type AdvertisedXcmVersion = pallet_xcm::CurrentXcmVersion; - type Currency = Balances; - type CurrencyMatcher = (); - type TrustedLockers = (); - type SovereignAccountOf = LocationToAccountId; - type MaxLockers = ConstU32<8>; - type WeightInfo = crate::weights::pallet_xcm::WeightInfo; - #[cfg(feature = "runtime-benchmarks")] - type ReachableDest = ReachableDest; - type AdminOrigin = EnsureRoot; - type MaxRemoteLockConsumers = ConstU32<0>; - type RemoteLockConsumerIdentifier = (); -} - -impl cumulus_pallet_xcm::Config for Runtime { - type RuntimeEvent = RuntimeEvent; - type XcmExecutor = XcmExecutor; -} diff --git a/cumulus/parachains/runtimes/bridge-hubs/bridge-hub-westend/tests/tests.rs b/cumulus/parachains/runtimes/bridge-hubs/bridge-hub-westend/tests/tests.rs deleted file mode 100644 index 4e0feca115e5..000000000000 --- a/cumulus/parachains/runtimes/bridge-hubs/bridge-hub-westend/tests/tests.rs +++ /dev/null @@ -1,57 +0,0 @@ -// Copyright (C) Parity Technologies (UK) Ltd. -// This file is part of Cumulus. - -// Cumulus 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. - -// Cumulus 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 Cumulus. If not, see . - -pub use bridge_hub_westend_runtime::{ - xcm_config::XcmConfig, AllPalletsWithoutSystem, Balances, ExistentialDeposit, ParachainSystem, - PolkadotXcm, Runtime, RuntimeEvent, SessionKeys, -}; -use codec::Decode; -use frame_support::parameter_types; -use parachains_common::{westend::fee::WeightToFee, AccountId, AuraId}; - -const ALICE: [u8; 32] = [1u8; 32]; - -parameter_types! { - pub CheckingAccount: AccountId = PolkadotXcm::check_account(); -} - -bridge_hub_test_utils::test_cases::include_teleports_for_native_asset_works!( - Runtime, - AllPalletsWithoutSystem, - XcmConfig, - CheckingAccount, - WeightToFee, - ParachainSystem, - bridge_hub_test_utils::CollatorSessionKeys::new( - AccountId::from(ALICE), - AccountId::from(ALICE), - SessionKeys { aura: AuraId::from(sp_core::sr25519::Public::from_raw(ALICE)) } - ), - ExistentialDeposit::get(), - Box::new(|runtime_event_encoded: Vec| { - match RuntimeEvent::decode(&mut &runtime_event_encoded[..]) { - Ok(RuntimeEvent::PolkadotXcm(event)) => Some(event), - _ => None, - } - }), - Box::new(|runtime_event_encoded: Vec| { - match RuntimeEvent::decode(&mut &runtime_event_encoded[..]) { - Ok(RuntimeEvent::XcmpQueue(event)) => Some(event), - _ => None, - } - }), - 1002 -); diff --git a/cumulus/polkadot-parachain/src/chain_spec/bridge_hubs.rs b/cumulus/polkadot-parachain/src/chain_spec/bridge_hubs.rs index b4c6dc6f5c5a..95b1b8b31030 100644 --- a/cumulus/polkadot-parachain/src/chain_spec/bridge_hubs.rs +++ b/cumulus/polkadot-parachain/src/chain_spec/bridge_hubs.rs @@ -302,128 +302,9 @@ pub mod wococo { /// Sub-module for Westend setup pub mod westend { - use super::{BridgeHubBalance, ParaId}; - use crate::chain_spec::{ - get_account_id_from_seed, get_collator_keys_from_seed, Extensions, SAFE_XCM_VERSION, - }; - use parachains_common::{AccountId, AuraId}; - use sc_chain_spec::ChainType; - use sp_core::sr25519; + use crate::chain_spec::bridge_hubs::rococo; pub(crate) const BRIDGE_HUB_WESTEND: &str = "bridge-hub-westend"; - pub(crate) const BRIDGE_HUB_WESTEND_LOCAL: &str = "bridge-hub-westend-local"; - pub(crate) const BRIDGE_HUB_WESTEND_DEVELOPMENT: &str = "bridge-hub-westend-dev"; - const BRIDGE_HUB_WESTEND_ED: BridgeHubBalance = - parachains_common::westend::currency::EXISTENTIAL_DEPOSIT; - - /// Specialized `ChainSpec` for the normal parachain runtime. - pub type BridgeHubChainSpec = - sc_service::GenericChainSpec; - pub type RuntimeApi = bridge_hub_westend_runtime::RuntimeApi; - - pub fn local_config( - id: &str, - chain_name: &str, - relay_chain: &str, - para_id: ParaId, - ) -> BridgeHubChainSpec { - let mut properties = sc_chain_spec::Properties::new(); - properties.insert("ss58Format".into(), 2.into()); - properties.insert("tokenSymbol".into(), "KSM".into()); - properties.insert("tokenDecimals".into(), 12.into()); - - BridgeHubChainSpec::from_genesis( - // Name - chain_name, - // ID - super::ensure_id(id).expect("invalid id"), - ChainType::Local, - move || { - genesis( - // initial collators. - vec![ - ( - get_account_id_from_seed::("Alice"), - get_collator_keys_from_seed::("Alice"), - ), - ( - get_account_id_from_seed::("Bob"), - get_collator_keys_from_seed::("Bob"), - ), - ], - vec![ - get_account_id_from_seed::("Alice"), - get_account_id_from_seed::("Bob"), - get_account_id_from_seed::("Charlie"), - get_account_id_from_seed::("Dave"), - get_account_id_from_seed::("Eve"), - get_account_id_from_seed::("Ferdie"), - get_account_id_from_seed::("Alice//stash"), - get_account_id_from_seed::("Bob//stash"), - get_account_id_from_seed::("Charlie//stash"), - get_account_id_from_seed::("Dave//stash"), - get_account_id_from_seed::("Eve//stash"), - get_account_id_from_seed::("Ferdie//stash"), - ], - para_id, - ) - }, - Vec::new(), - None, - None, - None, - Some(properties), - Extensions { relay_chain: relay_chain.to_string(), para_id: para_id.into() }, - ) - } - - fn genesis( - invulnerables: Vec<(AccountId, AuraId)>, - endowed_accounts: Vec, - id: ParaId, - ) -> bridge_hub_westend_runtime::RuntimeGenesisConfig { - bridge_hub_westend_runtime::RuntimeGenesisConfig { - system: bridge_hub_westend_runtime::SystemConfig { - code: bridge_hub_westend_runtime::WASM_BINARY - .expect("WASM binary was not build, please build it!") - .to_vec(), - ..Default::default() - }, - balances: bridge_hub_westend_runtime::BalancesConfig { - balances: endowed_accounts - .iter() - .cloned() - .map(|k| (k, BRIDGE_HUB_WESTEND_ED * 524_288)) - .collect(), - }, - parachain_info: bridge_hub_westend_runtime::ParachainInfoConfig { - parachain_id: id, - ..Default::default() - }, - collator_selection: bridge_hub_westend_runtime::CollatorSelectionConfig { - invulnerables: invulnerables.iter().cloned().map(|(acc, _)| acc).collect(), - candidacy_bond: BRIDGE_HUB_WESTEND_ED * 16, - ..Default::default() - }, - session: bridge_hub_westend_runtime::SessionConfig { - keys: invulnerables - .into_iter() - .map(|(acc, aura)| { - ( - acc.clone(), // account id - acc, // validator id - bridge_hub_westend_runtime::SessionKeys { aura }, // session keys - ) - }) - .collect(), - }, - aura: Default::default(), - aura_ext: Default::default(), - parachain_system: Default::default(), - polkadot_xcm: bridge_hub_westend_runtime::PolkadotXcmConfig { - safe_xcm_version: Some(SAFE_XCM_VERSION), - ..Default::default() - }, - } - } + pub type BridgeHubChainSpec = rococo::BridgeHubChainSpec; + pub type RuntimeApi = bridge_hub_rococo_runtime::RuntimeApi; } diff --git a/cumulus/polkadot-parachain/src/chain_spec/glutton.rs b/cumulus/polkadot-parachain/src/chain_spec/glutton.rs index 5e1b1d67df27..d78a1c8635a3 100644 --- a/cumulus/polkadot-parachain/src/chain_spec/glutton.rs +++ b/cumulus/polkadot-parachain/src/chain_spec/glutton.rs @@ -24,16 +24,18 @@ use super::get_collator_keys_from_seed; /// Specialized `ChainSpec` for the Glutton parachain runtime. pub type GluttonChainSpec = - sc_service::GenericChainSpec; + sc_service::GenericChainSpec; -pub fn glutton_development_config(para_id: ParaId) -> GluttonChainSpec { +pub fn glutton_westend_development_config(para_id: ParaId) -> GluttonChainSpec { GluttonChainSpec::from_genesis( // Name "Glutton Development", // ID - "glutton_dev", + "glutton_westend_dev", ChainType::Local, - move || glutton_genesis(para_id, vec![get_collator_keys_from_seed::("Alice")]), + move || { + glutton_westend_genesis(para_id, vec![get_collator_keys_from_seed::("Alice")]) + }, Vec::new(), None, None, @@ -43,15 +45,15 @@ pub fn glutton_development_config(para_id: ParaId) -> GluttonChainSpec { ) } -pub fn glutton_local_config(para_id: ParaId) -> GluttonChainSpec { +pub fn glutton_westend_local_config(para_id: ParaId) -> GluttonChainSpec { GluttonChainSpec::from_genesis( // Name - "Glutton Local", + "Glutton Westend Local", // ID - "glutton_local", + "glutton_westend_local", ChainType::Local, move || { - glutton_genesis( + glutton_westend_genesis( para_id, vec![ get_collator_keys_from_seed::("Alice"), @@ -68,18 +70,18 @@ pub fn glutton_local_config(para_id: ParaId) -> GluttonChainSpec { ) } -pub fn glutton_config(para_id: ParaId) -> GluttonChainSpec { +pub fn glutton_westend_config(para_id: ParaId) -> GluttonChainSpec { let mut properties = sc_chain_spec::Properties::new(); properties.insert("ss58Format".into(), 2.into()); GluttonChainSpec::from_genesis( // Name - format!("Glutton {}", para_id).as_str(), + format!("Glutton Westend {}", para_id).as_str(), // ID format!("glutton-westend-{}", para_id).as_str(), ChainType::Live, move || { - glutton_genesis( + glutton_westend_genesis( para_id, vec![ get_collator_keys_from_seed::("Alice"), @@ -97,18 +99,21 @@ pub fn glutton_config(para_id: ParaId) -> GluttonChainSpec { ) } -fn glutton_genesis( +fn glutton_westend_genesis( parachain_id: ParaId, collators: Vec, -) -> glutton_runtime::RuntimeGenesisConfig { - glutton_runtime::RuntimeGenesisConfig { - system: glutton_runtime::SystemConfig { - code: glutton_runtime::WASM_BINARY +) -> glutton_westend_runtime::RuntimeGenesisConfig { + glutton_westend_runtime::RuntimeGenesisConfig { + system: glutton_westend_runtime::SystemConfig { + code: glutton_westend_runtime::WASM_BINARY .expect("WASM binary was not build, please build it!") .to_vec(), ..Default::default() }, - parachain_info: glutton_runtime::ParachainInfoConfig { parachain_id, ..Default::default() }, + parachain_info: glutton_westend_runtime::ParachainInfoConfig { + parachain_id, + ..Default::default() + }, parachain_system: Default::default(), glutton: glutton_runtime::GluttonConfig { compute: Default::default(), @@ -116,9 +121,9 @@ fn glutton_genesis( trash_data_count: Default::default(), ..Default::default() }, - aura: glutton_runtime::AuraConfig { authorities: collators }, + aura: glutton_westend_runtime::AuraConfig { authorities: collators }, aura_ext: Default::default(), - sudo: glutton_runtime::SudoConfig { + sudo: glutton_westend_runtime::SudoConfig { key: Some(get_account_id_from_seed::("Alice")), }, } diff --git a/cumulus/polkadot-parachain/src/command.rs b/cumulus/polkadot-parachain/src/command.rs index 80849fc8c1c7..c10414057faf 100644 --- a/cumulus/polkadot-parachain/src/command.rs +++ b/cumulus/polkadot-parachain/src/command.rs @@ -178,14 +178,14 @@ fn load_spec(id: &str) -> std::result::Result, String> { )), // -- Glutton Westend - "glutton-westend-dev" => Box::new(chain_spec::glutton::glutton_development_config( + "glutton-westend-dev" => Box::new(chain_spec::glutton::glutton_westend_development_config( para_id.expect("Must specify parachain id"), )), - "glutton-westend-local" => Box::new(chain_spec::glutton::glutton_local_config( + "glutton-westend-local" => Box::new(chain_spec::glutton::glutton_westend_local_config( para_id.expect("Must specify parachain id"), )), // the chain spec as used for generating the upgrade genesis values - "glutton-westend-genesis" => Box::new(chain_spec::glutton::glutton_config( + "glutton-westend-genesis" => Box::new(chain_spec::glutton::glutton_westend_config( para_id.expect("Must specify parachain id"), )), From 7c8d13770108bb083e3bb51e77aca5436ec636e5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?D=C3=B3nal=20Murray?= Date: Wed, 4 Oct 2023 15:08:17 +0200 Subject: [PATCH 17/78] Fix final issues with glutton-westend --- cumulus/polkadot-parachain/src/chain_spec/glutton.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cumulus/polkadot-parachain/src/chain_spec/glutton.rs b/cumulus/polkadot-parachain/src/chain_spec/glutton.rs index d78a1c8635a3..67277c67d47a 100644 --- a/cumulus/polkadot-parachain/src/chain_spec/glutton.rs +++ b/cumulus/polkadot-parachain/src/chain_spec/glutton.rs @@ -115,7 +115,7 @@ fn glutton_westend_genesis( ..Default::default() }, parachain_system: Default::default(), - glutton: glutton_runtime::GluttonConfig { + glutton_westend: glutton_westend_runtime::GluttonWestendConfig { compute: Default::default(), storage: Default::default(), trash_data_count: Default::default(), From be8cb5bfeb67299a8cde91a022333d81d9734383 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?D=C3=B3nal=20Murray?= Date: Wed, 4 Oct 2023 15:33:29 +0200 Subject: [PATCH 18/78] Add unimplemented for bridge-hub-westend --- cumulus/polkadot-parachain/src/chain_spec/bridge_hubs.rs | 2 ++ 1 file changed, 2 insertions(+) diff --git a/cumulus/polkadot-parachain/src/chain_spec/bridge_hubs.rs b/cumulus/polkadot-parachain/src/chain_spec/bridge_hubs.rs index 95b1b8b31030..e66db1c70204 100644 --- a/cumulus/polkadot-parachain/src/chain_spec/bridge_hubs.rs +++ b/cumulus/polkadot-parachain/src/chain_spec/bridge_hubs.rs @@ -307,4 +307,6 @@ pub mod westend { pub(crate) const BRIDGE_HUB_WESTEND: &str = "bridge-hub-westend"; pub type BridgeHubChainSpec = rococo::BridgeHubChainSpec; pub type RuntimeApi = bridge_hub_rococo_runtime::RuntimeApi; + + unimplemented!("TODO: fix BridgeHubWestend"); } From 6d7dfacaf0bbc6905412e058fd01707b06ba110e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?D=C3=B3nal=20Murray?= Date: Wed, 4 Oct 2023 15:56:51 +0200 Subject: [PATCH 19/78] Add unimplemented todos for Branislav --- .../src/chain_spec/bridge_hubs.rs | 16 +++++----------- 1 file changed, 5 insertions(+), 11 deletions(-) diff --git a/cumulus/polkadot-parachain/src/chain_spec/bridge_hubs.rs b/cumulus/polkadot-parachain/src/chain_spec/bridge_hubs.rs index e66db1c70204..331077318fd8 100644 --- a/cumulus/polkadot-parachain/src/chain_spec/bridge_hubs.rs +++ b/cumulus/polkadot-parachain/src/chain_spec/bridge_hubs.rs @@ -40,7 +40,7 @@ impl FromStr for BridgeHubRuntimeType { fn from_str(value: &str) -> Result { match value { - westend::BRIDGE_HUB_WESTEND => Ok(BridgeHubRuntimeType::Westend), + westend::BRIDGE_HUB_WESTEND => unimplemented!("TODO: fix BridgeHubWestend"), rococo::BRIDGE_HUB_ROCOCO => Ok(BridgeHubRuntimeType::Rococo), rococo::BRIDGE_HUB_ROCOCO_LOCAL => Ok(BridgeHubRuntimeType::RococoLocal), rococo::BRIDGE_HUB_ROCOCO_DEVELOPMENT => Ok(BridgeHubRuntimeType::RococoDevelopment), @@ -56,8 +56,7 @@ impl BridgeHubRuntimeType { pub fn chain_spec_from_json_file(&self, path: PathBuf) -> Result, String> { match self { - BridgeHubRuntimeType::Westend => - Ok(Box::new(westend::BridgeHubChainSpec::from_json_file(path)?)), + BridgeHubRuntimeType::Westend => unimplemented!("TODO: fix BridgeHubWestend"), BridgeHubRuntimeType::Rococo | BridgeHubRuntimeType::RococoLocal | BridgeHubRuntimeType::RococoDevelopment => @@ -69,10 +68,7 @@ impl BridgeHubRuntimeType { pub fn load_config(&self) -> Result, String> { match self { - BridgeHubRuntimeType::Westend => - Ok(Box::new(westend::BridgeHubChainSpec::from_json_bytes( - &include_bytes!("../../chain-specs/bridge-hub-westend.json")[..], - )?)), + BridgeHubRuntimeType::Westend => unimplemented!("TODO: fix BridgeHubWestend"), BridgeHubRuntimeType::Rococo => Ok(Box::new(rococo::BridgeHubChainSpec::from_json_bytes( &include_bytes!("../../chain-specs/bridge-hub-rococo.json")[..], @@ -305,8 +301,6 @@ pub mod westend { use crate::chain_spec::bridge_hubs::rococo; pub(crate) const BRIDGE_HUB_WESTEND: &str = "bridge-hub-westend"; - pub type BridgeHubChainSpec = rococo::BridgeHubChainSpec; - pub type RuntimeApi = bridge_hub_rococo_runtime::RuntimeApi; - - unimplemented!("TODO: fix BridgeHubWestend"); + pub type BridgeHubChainSpec = kusama::BridgeHubChainSpec; + pub type RuntimeApi = bridge_hub_kusama_runtime::RuntimeApi; } From 95cf37f5b7a0325332d8ba1cc1342368d2ca92b0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?D=C3=B3nal=20Murray?= Date: Wed, 4 Oct 2023 23:28:50 +0200 Subject: [PATCH 20/78] Unrevert the triply reverted... --- cumulus/polkadot-parachain/src/chain_spec/bridge_hubs.rs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/cumulus/polkadot-parachain/src/chain_spec/bridge_hubs.rs b/cumulus/polkadot-parachain/src/chain_spec/bridge_hubs.rs index 331077318fd8..8cb1bed20410 100644 --- a/cumulus/polkadot-parachain/src/chain_spec/bridge_hubs.rs +++ b/cumulus/polkadot-parachain/src/chain_spec/bridge_hubs.rs @@ -301,6 +301,6 @@ pub mod westend { use crate::chain_spec::bridge_hubs::rococo; pub(crate) const BRIDGE_HUB_WESTEND: &str = "bridge-hub-westend"; - pub type BridgeHubChainSpec = kusama::BridgeHubChainSpec; - pub type RuntimeApi = bridge_hub_kusama_runtime::RuntimeApi; + pub type BridgeHubChainSpec = rococo::BridgeHubChainSpec; + pub type RuntimeApi = bridge_hub_rococo_runtime::RuntimeApi; } From 65d24064de8d05fb56f6b1469553b20b0dec0726 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?D=C3=B3nal=20Murray?= Date: Thu, 5 Oct 2023 10:55:04 +0200 Subject: [PATCH 21/78] Fix warnings in bridge-hub-westend --- .../polkadot-parachain/src/chain_spec/bridge_hubs.rs | 5 +++-- cumulus/polkadot-parachain/src/command.rs | 11 ++++------- 2 files changed, 7 insertions(+), 9 deletions(-) diff --git a/cumulus/polkadot-parachain/src/chain_spec/bridge_hubs.rs b/cumulus/polkadot-parachain/src/chain_spec/bridge_hubs.rs index 8cb1bed20410..238acd929ed9 100644 --- a/cumulus/polkadot-parachain/src/chain_spec/bridge_hubs.rs +++ b/cumulus/polkadot-parachain/src/chain_spec/bridge_hubs.rs @@ -40,7 +40,7 @@ impl FromStr for BridgeHubRuntimeType { fn from_str(value: &str) -> Result { match value { - westend::BRIDGE_HUB_WESTEND => unimplemented!("TODO: fix BridgeHubWestend"), + westend::BRIDGE_HUB_WESTEND => Ok(BridgeHubRuntimeType::Westend), rococo::BRIDGE_HUB_ROCOCO => Ok(BridgeHubRuntimeType::Rococo), rococo::BRIDGE_HUB_ROCOCO_LOCAL => Ok(BridgeHubRuntimeType::RococoLocal), rococo::BRIDGE_HUB_ROCOCO_DEVELOPMENT => Ok(BridgeHubRuntimeType::RococoDevelopment), @@ -56,7 +56,8 @@ impl BridgeHubRuntimeType { pub fn chain_spec_from_json_file(&self, path: PathBuf) -> Result, String> { match self { - BridgeHubRuntimeType::Westend => unimplemented!("TODO: fix BridgeHubWestend"), + BridgeHubRuntimeType::Westend => + Ok(Box::new(westend::BridgeHubChainSpec::from_json_file(path)?)), BridgeHubRuntimeType::Rococo | BridgeHubRuntimeType::RococoLocal | BridgeHubRuntimeType::RococoDevelopment => diff --git a/cumulus/polkadot-parachain/src/command.rs b/cumulus/polkadot-parachain/src/command.rs index bc1a60fa4a56..0be614077243 100644 --- a/cumulus/polkadot-parachain/src/command.rs +++ b/cumulus/polkadot-parachain/src/command.rs @@ -788,13 +788,10 @@ pub fn run() -> Result<()> { .map(|r| r.0) .map_err(Into::into), Runtime::GluttonWestend => - crate::service::start_shell_node::( - config, - polkadot_config, - collator_options, - id, - hwbench, - ) + crate::service::start_basic_lookahead_node::< + glutton_westend_runtime::RuntimeApi, + AuraId, + >(config, polkadot_config, collator_options, id, hwbench) .await .map(|r| r.0) .map_err(Into::into), From b7028a2a2ed4c8844b702eaa5c49ccad5fa6c909 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?D=C3=B3nal=20Murray?= Date: Thu, 5 Oct 2023 11:12:59 +0200 Subject: [PATCH 22/78] Revert changes to deprecated cumulus CI jobs --- cumulus/.github/pr-custom-review.yml | 4 +-- ...e-20_extrinsic-ordering-check-from-bin.yml | 6 ++-- ...e-21_extrinsic-ordering-check-from-two.yml | 10 ++++-- .../workflows/release-30_create-draft.yml | 32 ++++++++++++++++--- cumulus/.github/workflows/srtool.yml | 11 ++++++- 5 files changed, 51 insertions(+), 12 deletions(-) diff --git a/cumulus/.github/pr-custom-review.yml b/cumulus/.github/pr-custom-review.yml index 7a9ad1f4d8c1..fc26ee677f06 100644 --- a/cumulus/.github/pr-custom-review.yml +++ b/cumulus/.github/pr-custom-review.yml @@ -6,7 +6,7 @@ action-review-team: ci rules: - name: Runtime files check_type: changed_files - condition: ^parachains/common/src/[^/]+\.rs$ + condition: ^parachains/runtimes/assets/(asset-hub-kusama|asset-hub-polkadot)/src/[^/]+\.rs$|^parachains/runtimes/bridge-hubs/(bridge-hub-kusama|bridge-hub-polkadot)/src/[^/]+\.rs$|^parachains/runtimes/collectives/collectives-polkadot/src/[^/]+\.rs$|^parachains/common/src/[^/]+\.rs$ all_distinct: - min_approvals: 1 teams: @@ -20,7 +20,7 @@ rules: condition: include: .* # excluding files from 'Runtime files' and 'CI files' rules and `Bridges subtree files` - exclude: ^parachains/common/src/[^/]+\.rs$|^\.gitlab-ci\.yml|^scripts/ci/.*|^\.github/.* + exclude: ^parachains/runtimes/assets/(asset-hub-kusama|asset-hub-polkadot)/src/[^/]+\.rs$|^parachains/runtimes/bridge-hubs/(bridge-hub-kusama|bridge-hub-polkadot)/src/[^/]+\.rs$|^parachains/runtimes/collectives/collectives-polkadot/src/[^/]+\.rs$|^parachains/common/src/[^/]+\.rs$|^\.gitlab-ci\.yml|^scripts/ci/.*|^\.github/.* min_approvals: 2 teams: - core-devs diff --git a/cumulus/.github/workflows/release-20_extrinsic-ordering-check-from-bin.yml b/cumulus/.github/workflows/release-20_extrinsic-ordering-check-from-bin.yml index 32c3ab0eb136..d902e57ac9e7 100644 --- a/cumulus/.github/workflows/release-20_extrinsic-ordering-check-from-bin.yml +++ b/cumulus/.github/workflows/release-20_extrinsic-ordering-check-from-bin.yml @@ -6,7 +6,7 @@ on: inputs: reference_url: description: The WebSocket url of the reference node - default: wss://westend-asset-hub-rpc.polkadot.io + default: wss://kusama-asset-hub-rpc.polkadot.io required: true binary_url: description: A url to a Linux binary for the node containing the runtime to test @@ -14,7 +14,7 @@ on: required: true chain: description: The name of the chain under test. Usually, you would pass a local chain - default: asset-hub-westend-local + default: asset-hub-kusama-local required: true jobs: @@ -43,7 +43,7 @@ jobs: - name: Start local node run: | echo Running on $CHAIN - $BIN_PATH --chain=$CHAIN -- --chain westend-local & + $BIN_PATH --chain=$CHAIN -- --chain polkadot-local & - name: Prepare output run: | diff --git a/cumulus/.github/workflows/release-21_extrinsic-ordering-check-from-two.yml b/cumulus/.github/workflows/release-21_extrinsic-ordering-check-from-two.yml index 69d3196ca3a6..93c0050ff6f2 100644 --- a/cumulus/.github/workflows/release-21_extrinsic-ordering-check-from-two.yml +++ b/cumulus/.github/workflows/release-21_extrinsic-ordering-check-from-two.yml @@ -28,12 +28,18 @@ jobs: fail-fast: false matrix: include: + - runtime: asset-hub-kusama + local: asset-hub-kusama-local + relay: kusama-local + - runtime: asset-hub-polkadot + local: asset-hub-polkadot-local + relay: polkadot-local - runtime: asset-hub-westend local: asset-hub-westend-local - relay: westend-local + relay: polkadot-local - runtime: contracts-rococo local: contracts-rococo-local - relay: westend-local + relay: polkadot-local steps: - uses: actions/checkout@c85c95e3d7251135ab7dc9ce3241c5835cc595a9 # v3.5.3 diff --git a/cumulus/.github/workflows/release-30_create-draft.yml b/cumulus/.github/workflows/release-30_create-draft.yml index 89943715cd22..2d11dfe18cec 100644 --- a/cumulus/.github/workflows/release-30_create-draft.yml +++ b/cumulus/.github/workflows/release-30_create-draft.yml @@ -44,12 +44,20 @@ jobs: strategy: matrix: include: + - category: assets + runtime: asset-hub-kusama + - category: assets + runtime: asset-hub-polkadot - category: assets runtime: asset-hub-westend + - category: bridge-hubs + runtime: bridge-hub-polkadot + - category: bridge-hubs + runtime: bridge-hub-kusama - category: bridge-hubs runtime: bridge-hub-rococo - category: collectives - runtime: collectives-westend + runtime: collectives-polkadot - category: contracts runtime: contracts-rococo - category: starters @@ -146,8 +154,12 @@ jobs: DEBUG: 1 SHELL_DIGEST: ${{ github.workspace}}/shell-srtool-json/shell-srtool-digest.json ASSET_HUB_WESTEND_DIGEST: ${{ github.workspace}}/asset-hub-westend-srtool-json/asset-hub-westend-srtool-digest.json + ASSET_HUB_KUSAMA_DIGEST: ${{ github.workspace}}/asset-hub-kusama-srtool-json/asset-hub-kusama-srtool-digest.json + ASSET_HUB_POLKADOT_DIGEST: ${{ github.workspace}}/asset-hub-polkadot-srtool-json/asset-hub-polkadot-srtool-digest.json BRIDGE_HUB_ROCOCO_DIGEST: ${{ github.workspace}}/bridge-hub-rococo-srtool-json/bridge-hub-rococo-srtool-digest.json - COLLECTIVES_WESTEND_DIGEST: ${{ github.workspace}}/collectives-westend-srtool-json/collectives-westend-srtool-digest.json + BRIDGE_HUB_KUSAMA_DIGEST: ${{ github.workspace}}/bridge-hub-kusama-srtool-json/bridge-hub-kusama-srtool-digest.json + BRIDGE_HUB_POLKADOT_DIGEST: ${{ github.workspace}}/bridge-hub-polkadot-srtool-json/bridge-hub-polkadot-srtool-digest.json + COLLECTIVES_POLKADOT_DIGEST: ${{ github.workspace}}/collectives-polkadot-srtool-json/collectives-polkadot-srtool-digest.json ROCOCO_PARA_DIGEST: ${{ github.workspace}}/rococo-parachain-srtool-json/rococo-parachain-srtool-digest.json CANVAS_KUSAMA_DIGEST: ${{ github.workspace}}/contracts-rococo-srtool-json/contracts-rococo-srtool-digest.json REF1: ${{ github.event.inputs.ref1 }} @@ -160,8 +172,12 @@ jobs: if [ "$RELEASE_TYPE" != "client" ]; then ls -al $SHELL_DIGEST || true ls -al $ASSET_HUB_WESTEND_DIGEST || true + ls -al $ASSET_HUB_KUSAMA_DIGEST || true + ls -al $ASSET_HUB_POLKADOT_DIGEST || true ls -al $BRIDGE_HUB_ROCOCO_DIGEST || true - ls -al $COLLECTIVES_WESTEND_DIGEST || true + ls -al $BRIDGE_HUB_KUSAMA_DIGEST || true + ls -al $BRIDGE_HUB_POLKADOT_DIGEST || true + ls -al $COLLECTIVES_POLKADOT_DIGEST || true ls -al $ROCOCO_PARA_DIGEST || true ls -al $CANVAS_KUSAMA_DIGEST || true fi @@ -206,12 +222,20 @@ jobs: strategy: matrix: include: + - category: assets + runtime: asset-hub-kusama + - category: assets + runtime: asset-hub-polkadot - category: assets runtime: asset-hub-westend + - category: bridge-hubs + runtime: bridge-hub-polkadot + - category: bridge-hubs + runtime: bridge-hub-kusama - category: bridge-hubs runtime: bridge-hub-rococo - category: collectives - runtime: collectives-westend + runtime: collectives-polkadot - category: contracts runtime: contracts-rococo - category: starters diff --git a/cumulus/.github/workflows/srtool.yml b/cumulus/.github/workflows/srtool.yml index 6e4366c63cbb..ae473b481370 100644 --- a/cumulus/.github/workflows/srtool.yml +++ b/cumulus/.github/workflows/srtool.yml @@ -31,11 +31,20 @@ jobs: strategy: matrix: include: + - category: assets + runtime: asset-hub-kusama + - category: assets + runtime: asset-hub-polkadot + - category: assets runtime: asset-hub-westend + - category: bridge-hubs + runtime: bridge-hub-polkadot + - category: bridge-hubs + runtime: bridge-hub-kusama - category: bridge-hubs runtime: bridge-hub-rococo - category: collectives - runtime: collectives-westend + runtime: collectives-polkadot - category: contracts runtime: contracts-rococo - category: starters From 729bd76518f6ed3f95ca26e4b22f18134fbc894e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?D=C3=B3nal=20Murray?= Date: Thu, 5 Oct 2023 11:15:31 +0200 Subject: [PATCH 23/78] Add westend-bridge-hub issue to TODO --- cumulus/polkadot-parachain/src/chain_spec/bridge_hubs.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cumulus/polkadot-parachain/src/chain_spec/bridge_hubs.rs b/cumulus/polkadot-parachain/src/chain_spec/bridge_hubs.rs index 238acd929ed9..623cb34d792a 100644 --- a/cumulus/polkadot-parachain/src/chain_spec/bridge_hubs.rs +++ b/cumulus/polkadot-parachain/src/chain_spec/bridge_hubs.rs @@ -69,7 +69,7 @@ impl BridgeHubRuntimeType { pub fn load_config(&self) -> Result, String> { match self { - BridgeHubRuntimeType::Westend => unimplemented!("TODO: fix BridgeHubWestend"), + BridgeHubRuntimeType::Westend => unimplemented!("TODO: fix BridgeHubWestend: https://github.com/paritytech/parity-bridges-common/issues/2602"), BridgeHubRuntimeType::Rococo => Ok(Box::new(rococo::BridgeHubChainSpec::from_json_bytes( &include_bytes!("../../chain-specs/bridge-hub-rococo.json")[..], From c5b2eda21505d9ae27a0b0206c566de59401a4f7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?D=C3=B3nal=20Murray?= Date: Thu, 5 Oct 2023 12:37:07 +0200 Subject: [PATCH 24/78] Add size to runtimes array --- cumulus/polkadot-parachain/tests/benchmark_storage_works.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cumulus/polkadot-parachain/tests/benchmark_storage_works.rs b/cumulus/polkadot-parachain/tests/benchmark_storage_works.rs index 227168c88b7b..c554b5b3d6be 100644 --- a/cumulus/polkadot-parachain/tests/benchmark_storage_works.rs +++ b/cumulus/polkadot-parachain/tests/benchmark_storage_works.rs @@ -24,7 +24,7 @@ use std::{ use tempfile::tempdir; /// The runtimes that this command supports. -static RUNTIMES: [&str] = ["asset-hub-westend"]; +static RUNTIMES: [&str; 1] = ["asset-hub-westend"]; /// The `benchmark storage` command works for the dev runtimes. #[test] From a34cb378d3c0ce385f01d7aac097bebe85f4f27c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?D=C3=B3nal=20Murray?= Date: Mon, 9 Oct 2023 12:40:30 +0200 Subject: [PATCH 25/78] Add ChainSpecs back to repo --- .../asset-hub-kusama-genesis-values.json | 1 + .../chain-specs/asset-hub-kusama-genesis.json | 77 +++++++++++++++ .../chain-specs/asset-hub-kusama.json | 60 ++++++++++++ .../asset-hub-polkadot-genesis-values.json | 1 + .../asset-hub-polkadot-genesis-values.scale | 1 + .../asset-hub-polkadot-genesis.json | 82 ++++++++++++++++ .../chain-specs/asset-hub-polkadot.json | 62 ++++++++++++ .../chain-specs/bridge-hub-kusama.json | 94 ++++++++++++++++++ .../chain-specs/bridge-hub-polkadot.json | 90 +++++++++++++++++ .../chain-specs/collectives-polkadot.json | 98 +++++++++++++++++++ .../chain-specs/asset-hub-kusama.json | 1 + .../chain-specs/asset-hub-polkadot.json | 1 + .../chain-specs/bridge-hub-kusama.json | 1 + .../chain-specs/bridge-hub-polkadot.json | 1 + .../chain-specs/collectives-polkadot.json | 1 + 15 files changed, 571 insertions(+) create mode 100644 cumulus/parachains/chain-specs/asset-hub-kusama-genesis-values.json create mode 100644 cumulus/parachains/chain-specs/asset-hub-kusama-genesis.json create mode 100644 cumulus/parachains/chain-specs/asset-hub-kusama.json create mode 100644 cumulus/parachains/chain-specs/asset-hub-polkadot-genesis-values.json create mode 100644 cumulus/parachains/chain-specs/asset-hub-polkadot-genesis-values.scale create mode 100644 cumulus/parachains/chain-specs/asset-hub-polkadot-genesis.json create mode 100644 cumulus/parachains/chain-specs/asset-hub-polkadot.json create mode 100644 cumulus/parachains/chain-specs/bridge-hub-kusama.json create mode 100644 cumulus/parachains/chain-specs/bridge-hub-polkadot.json create mode 100644 cumulus/parachains/chain-specs/collectives-polkadot.json create mode 120000 cumulus/polkadot-parachain/chain-specs/asset-hub-kusama.json create mode 120000 cumulus/polkadot-parachain/chain-specs/asset-hub-polkadot.json create mode 120000 cumulus/polkadot-parachain/chain-specs/bridge-hub-kusama.json create mode 120000 cumulus/polkadot-parachain/chain-specs/bridge-hub-polkadot.json create mode 120000 cumulus/polkadot-parachain/chain-specs/collectives-polkadot.json diff --git a/cumulus/parachains/chain-specs/asset-hub-kusama-genesis-values.json b/cumulus/parachains/chain-specs/asset-hub-kusama-genesis-values.json new file mode 100644 index 000000000000..ab89dbb93253 --- /dev/null +++ b/cumulus/parachains/chain-specs/asset-hub-kusama-genesis-values.json @@ -0,0 +1 @@ +{"0xcec5070d609dd3497f72bde07fc96ba0726380404683fc89e8233450c8aa195014113a7040518ced617572618050673d59020488a4ffc9d8c6de3062a65977046e6990915617f85fef6d349730":"0x50673d59020488a4ffc9d8c6de3062a65977046e6990915617f85fef6d349730","0xcec5070d609dd3497f72bde07fc96ba0878d434d6125b40443fe11fd292d13a4":"0x03000000","0xcec5070d609dd3497f72bde07fc96ba04c014e6bf8b8c2c011e7290b85696bb3095cb580595ffbb4fe8102dbc244e7ea2babd9f53236d67403b046154370da5c3ea99def0bd0747a":"0xfe8102dbc244e7ea2babd9f53236d67403b046154370da5c3ea99def0bd0747a","0xc2261276cc9d1f8598ea4b6a74b15c2f878d434d6125b40443fe11fd292d13a4":"0x03000000","0xcec5070d609dd3497f72bde07fc96ba04c014e6bf8b8c2c011e7290b85696bb3bcf23f8ad989027738144b5398e5d0da5ec936a3af23f5a96e782f676ab19d45f29075ee92eca76a":"0x38144b5398e5d0da5ec936a3af23f5a96e782f676ab19d45f29075ee92eca76a","0xcec5070d609dd3497f72bde07fc96ba0e0cdd062e6eaf24295ad4ccfc41d4609":"0x1050673d59020488a4ffc9d8c6de3062a65977046e6990915617f85fef6d34973050673d59020488a4ffc9d8c6de3062a65977046e6990915617f85fef6d349730fe8102dbc244e7ea2babd9f53236d67403b046154370da5c3ea99def0bd0747afe8102dbc244e7ea2babd9f53236d67403b046154370da5c3ea99def0bd0747a38144b5398e5d0da5ec936a3af23f5a96e782f676ab19d45f29075ee92eca76a38144b5398e5d0da5ec936a3af23f5a96e782f676ab19d45f29075ee92eca76a3253947640e309120ae70fa458dcacb915e2ddd78f930f52bd3679ec63fc44153253947640e309120ae70fa458dcacb915e2ddd78f930f52bd3679ec63fc4415","0x15464cac3378d46f113cd5b7a4d71c84579f5a43435b04a98d64da0cefe18505":"0x50cd2d03000000000000000000000000","0xd5e1a2fa16732ce6906189438c0a82c6878d434d6125b40443fe11fd292d13a4":"0x03000000","0x1809d78346727a0ef58c0fa03bafa323878d434d6125b40443fe11fd292d13a4":"0x03000000","0x3c311d57d4daf52904616cf69648081e5e0621c4869aa60c02be9adcc98a0d1d":"0x1050673d59020488a4ffc9d8c6de3062a65977046e6990915617f85fef6d349730fe8102dbc244e7ea2babd9f53236d67403b046154370da5c3ea99def0bd0747a38144b5398e5d0da5ec936a3af23f5a96e782f676ab19d45f29075ee92eca76a3253947640e309120ae70fa458dcacb915e2ddd78f930f52bd3679ec63fc4415","0x5e8a19e3cd1b7c148b33880c479c0281878d434d6125b40443fe11fd292d13a4":"0x03000000","0xcec5070d609dd3497f72bde07fc96ba0726380404683fc89e8233450c8aa1950fb63b830f923ed3561757261803253947640e309120ae70fa458dcacb915e2ddd78f930f52bd3679ec63fc4415":"0x3253947640e309120ae70fa458dcacb915e2ddd78f930f52bd3679ec63fc4415","0xc2261276cc9d1f8598ea4b6a74b15c2f308ce9615de0775a82f8a94dc3d285a1":"0x01","0xcec5070d609dd3497f72bde07fc96ba0726380404683fc89e8233450c8aa1950b062f0665fab654f617572618038144b5398e5d0da5ec936a3af23f5a96e782f676ab19d45f29075ee92eca76a":"0x38144b5398e5d0da5ec936a3af23f5a96e782f676ab19d45f29075ee92eca76a","0xcd5c1f6df63bc97f4a8ce37f14a50ca7878d434d6125b40443fe11fd292d13a4":"0x00000100","0xd57bce545fb382c34570e5dfbf338f5e878d434d6125b40443fe11fd292d13a4":"0x03000000","0x15464cac3378d46f113cd5b7a4d71c84878d434d6125b40443fe11fd292d13a4":"0x03000000","0x3c311d57d4daf52904616cf69648081e878d434d6125b40443fe11fd292d13a4":"0x00000100","0x57f8dc2f5ab09467896f47300f042438878d434d6125b40443fe11fd292d13a4":"0x03000000","0x7b3237373ffdfeb1cab4222e3b520d6b878d434d6125b40443fe11fd292d13a4":"0x00000100","0x57f8dc2f5ab09467896f47300f0424385e0621c4869aa60c02be9adcc98a0d1d":"0x1050673d59020488a4ffc9d8c6de3062a65977046e6990915617f85fef6d349730fe8102dbc244e7ea2babd9f53236d67403b046154370da5c3ea99def0bd0747a38144b5398e5d0da5ec936a3af23f5a96e782f676ab19d45f29075ee92eca76a3253947640e309120ae70fa458dcacb915e2ddd78f930f52bd3679ec63fc4415","0xbd2a529379475088d3e29a918cd47872878d434d6125b40443fe11fd292d13a4":"0x03000000","0xcec5070d609dd3497f72bde07fc96ba04c014e6bf8b8c2c011e7290b85696bb3b2f278bf7750703750673d59020488a4ffc9d8c6de3062a65977046e6990915617f85fef6d349730":"0x50673d59020488a4ffc9d8c6de3062a65977046e6990915617f85fef6d349730","0xcec5070d609dd3497f72bde07fc96ba0726380404683fc89e8233450c8aa19506f114d556b001da96175726180fe8102dbc244e7ea2babd9f53236d67403b046154370da5c3ea99def0bd0747a":"0xfe8102dbc244e7ea2babd9f53236d67403b046154370da5c3ea99def0bd0747a","0xcec5070d609dd3497f72bde07fc96ba088dcde934c658227ee1dfafcd6e16903":"0x1050673d59020488a4ffc9d8c6de3062a65977046e6990915617f85fef6d349730fe8102dbc244e7ea2babd9f53236d67403b046154370da5c3ea99def0bd0747a38144b5398e5d0da5ec936a3af23f5a96e782f676ab19d45f29075ee92eca76a3253947640e309120ae70fa458dcacb915e2ddd78f930f52bd3679ec63fc4415","0x682a59d51ab9e48a8c8cc418ff9708d2878d434d6125b40443fe11fd292d13a4":"0x03000000","0xc2261276cc9d1f8598ea4b6a74b15c2f57c875e4cff74148e4628f264b974c80":"0x00000000000000000000000000000000","0x15464cac3378d46f113cd5b7a4d71c84476f594316a7dfe49c1f352d95abdaf1":"0x00000000","0xe38f185207498abb5c213d0fb059b3d8878d434d6125b40443fe11fd292d13a4":"0x00000100","0x15464cac3378d46f113cd5b7a4d71c845579297f4dfb9609e7e4c2ebab9ce40a":"0x1050673d59020488a4ffc9d8c6de3062a65977046e6990915617f85fef6d349730fe8102dbc244e7ea2babd9f53236d67403b046154370da5c3ea99def0bd0747a38144b5398e5d0da5ec936a3af23f5a96e782f676ab19d45f29075ee92eca76a3253947640e309120ae70fa458dcacb915e2ddd78f930f52bd3679ec63fc4415","0xf0c365c3cf59d671eb72da0e7a4113c4878d434d6125b40443fe11fd292d13a4":"0x03000000","0x7474449cca95dc5d0c00e71735a6d17d878d434d6125b40443fe11fd292d13a4":"0x03000000","0xcec5070d609dd3497f72bde07fc96ba04c014e6bf8b8c2c011e7290b85696bb36d5c455f52f81fe03253947640e309120ae70fa458dcacb915e2ddd78f930f52bd3679ec63fc4415":"0x3253947640e309120ae70fa458dcacb915e2ddd78f930f52bd3679ec63fc4415","0x3f1467a096bcd71a5b6a0c8155e20810878d434d6125b40443fe11fd292d13a4":"0x03000000"} \ No newline at end of file diff --git a/cumulus/parachains/chain-specs/asset-hub-kusama-genesis.json b/cumulus/parachains/chain-specs/asset-hub-kusama-genesis.json new file mode 100644 index 000000000000..d6eeb567c25d --- /dev/null +++ b/cumulus/parachains/chain-specs/asset-hub-kusama-genesis.json @@ -0,0 +1,77 @@ +{ + "name": "Kusama Asset Hub", + "id": "asset-hub-kusama", + "chainType": "Live", + "bootNodes": [ + "/ip4/127.0.0.1/tcp/30333/p2p/12D3KooWHGksh2JFMaW8AkZvyhVpmiXUJnCQbngExTLMdq753ZQR" + ], + "telemetryEndpoints": null, + "protocolId": null, + "properties": { + "ss58Format": 2, + "tokenDecimals": 12, + "tokenSymbol": "KSM" + }, + "relay_chain": "kusama", + "para_id": 1000, + "consensusEngine": null, + "codeSubstitutes": {}, + "genesis": { + "raw": { + "top": { + "0x26aa394eea5630e07c48ae0c9558cef75684a022a34dd8bfa2baaf44f172b710": "0x01", + "0x26aa394eea5630e07c48ae0c9558cef7f9cce9c888469bb1a0dceaa129672ef8": "0x042473746174656d696e65", + "0xcec5070d609dd3497f72bde07fc96ba0726380404683fc89e8233450c8aa195014113a7040518ced617572618050673d59020488a4ffc9d8c6de3062a65977046e6990915617f85fef6d349730": "0x50673d59020488a4ffc9d8c6de3062a65977046e6990915617f85fef6d349730", + "0xcec5070d609dd3497f72bde07fc96ba0878d434d6125b40443fe11fd292d13a4": "0x03000000", + "0x3a65787472696e7369635f696e646578": "0x00000000", + "0xcec5070d609dd3497f72bde07fc96ba04c014e6bf8b8c2c011e7290b85696bb3095cb580595ffbb4fe8102dbc244e7ea2babd9f53236d67403b046154370da5c3ea99def0bd0747a": "0xfe8102dbc244e7ea2babd9f53236d67403b046154370da5c3ea99def0bd0747a", + "0xc2261276cc9d1f8598ea4b6a74b15c2f878d434d6125b40443fe11fd292d13a4": "0x03000000", + "0xcec5070d609dd3497f72bde07fc96ba04c014e6bf8b8c2c011e7290b85696bb3bcf23f8ad989027738144b5398e5d0da5ec936a3af23f5a96e782f676ab19d45f29075ee92eca76a": "0x38144b5398e5d0da5ec936a3af23f5a96e782f676ab19d45f29075ee92eca76a", + "0xcec5070d609dd3497f72bde07fc96ba0e0cdd062e6eaf24295ad4ccfc41d4609": "0x1050673d59020488a4ffc9d8c6de3062a65977046e6990915617f85fef6d34973050673d59020488a4ffc9d8c6de3062a65977046e6990915617f85fef6d349730fe8102dbc244e7ea2babd9f53236d67403b046154370da5c3ea99def0bd0747afe8102dbc244e7ea2babd9f53236d67403b046154370da5c3ea99def0bd0747a38144b5398e5d0da5ec936a3af23f5a96e782f676ab19d45f29075ee92eca76a38144b5398e5d0da5ec936a3af23f5a96e782f676ab19d45f29075ee92eca76a3253947640e309120ae70fa458dcacb915e2ddd78f930f52bd3679ec63fc44153253947640e309120ae70fa458dcacb915e2ddd78f930f52bd3679ec63fc4415", + "0x15464cac3378d46f113cd5b7a4d71c84579f5a43435b04a98d64da0cefe18505": "0x50cd2d03000000000000000000000000", + "0xd5e1a2fa16732ce6906189438c0a82c6878d434d6125b40443fe11fd292d13a4": "0x03000000", + "0x26aa394eea5630e07c48ae0c9558cef7b99d880ec681799c0cf30e8886371da9ceabb9d5dd4f04028168fb9ed26993fd50673d59020488a4ffc9d8c6de3062a65977046e6990915617f85fef6d349730": "0x0000000000000000010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "0x26aa394eea5630e07c48ae0c9558cef7b99d880ec681799c0cf30e8886371da9ffd52a3f716e9278daa12da68261ff683253947640e309120ae70fa458dcacb915e2ddd78f930f52bd3679ec63fc4415": "0x0000000000000000010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "0x1809d78346727a0ef58c0fa03bafa323878d434d6125b40443fe11fd292d13a4": "0x03000000", + "0x26aa394eea5630e07c48ae0c9558cef7a44704b568d21667356a5a050c118746b4def25cfda6ef3a00000000": "0x4545454545454545454545454545454545454545454545454545454545454545", + "0x3c311d57d4daf52904616cf69648081e5e0621c4869aa60c02be9adcc98a0d1d": "0x1050673d59020488a4ffc9d8c6de3062a65977046e6990915617f85fef6d349730fe8102dbc244e7ea2babd9f53236d67403b046154370da5c3ea99def0bd0747a38144b5398e5d0da5ec936a3af23f5a96e782f676ab19d45f29075ee92eca76a3253947640e309120ae70fa458dcacb915e2ddd78f930f52bd3679ec63fc4415", + "0x45323df7cc47150b3930e2666b0aa313878d434d6125b40443fe11fd292d13a4": "0x00000100", + "0x5e8a19e3cd1b7c148b33880c479c0281878d434d6125b40443fe11fd292d13a4": "0x03000000", + "0xcec5070d609dd3497f72bde07fc96ba0726380404683fc89e8233450c8aa1950fb63b830f923ed3561757261803253947640e309120ae70fa458dcacb915e2ddd78f930f52bd3679ec63fc4415": "0x3253947640e309120ae70fa458dcacb915e2ddd78f930f52bd3679ec63fc4415", + "0x0d715f2646c8f85767b5d2764bb2782604a74d81251e398fd8a0a4d55023bb3f": "0xe8030000", + "0x26aa394eea5630e07c48ae0c9558cef7878d434d6125b40443fe11fd292d13a4": "0x03000000", + "0xc2261276cc9d1f8598ea4b6a74b15c2f308ce9615de0775a82f8a94dc3d285a1": "0x01", + "0xcec5070d609dd3497f72bde07fc96ba0726380404683fc89e8233450c8aa1950b062f0665fab654f617572618038144b5398e5d0da5ec936a3af23f5a96e782f676ab19d45f29075ee92eca76a": "0x38144b5398e5d0da5ec936a3af23f5a96e782f676ab19d45f29075ee92eca76a", + "0xcd5c1f6df63bc97f4a8ce37f14a50ca7878d434d6125b40443fe11fd292d13a4": "0x00000100", + "0xd57bce545fb382c34570e5dfbf338f5e878d434d6125b40443fe11fd292d13a4": "0x03000000", + "0x15464cac3378d46f113cd5b7a4d71c84878d434d6125b40443fe11fd292d13a4": "0x03000000", + "0x26aa394eea5630e07c48ae0c9558cef734abf5cb34d6244378cddbf18e849d96": "0x000000000000000000000000000000000000000000000000", + "0x3c311d57d4daf52904616cf69648081e878d434d6125b40443fe11fd292d13a4": "0x00000100", + "0x57f8dc2f5ab09467896f47300f042438878d434d6125b40443fe11fd292d13a4": "0x03000000", + "0x26aa394eea5630e07c48ae0c9558cef78a42f33323cb5ced3b44dd825fda9fcc": "0x4545454545454545454545454545454545454545454545454545454545454545", + "0x7b3237373ffdfeb1cab4222e3b520d6b878d434d6125b40443fe11fd292d13a4": "0x00000100", + "0x3a636f6465": "0x52bc537646db8e0528b52ffd00580479057e7fc669134c108066937498f56deffcabdbfed5cdd23de7df45177859443667fdf148c27ddacef7c874fea7bfacf0ff7601c76607669e4cfd22b21385f3413725de81cf61ff37d2da2684904df6de5bca1d2214bf1291137797f01384d18a596312fcee19f07b8b273cc3bf26fba5df7138c2f798c5e0fe5a11f0ed1674fb20f28eba8b77f1ee54bc8cee2ede4d77ce1d66dbd6943526b197771ce6c76f3ccdfb3637cde3433c9ce2db7eb2fd704c0725fc606900e3c903319258fbc6a3621a689f7cb522f6fccd430b6af8d78a886f87ad883d0093200fb8741026c1b7e9aa06e4dd4d757892bbb10e9f836d1e93e4e1896845bcfd9087b7328c6be4ab4c728d3cc636d5867437335c230f3fc336d461100f82ba1ea0e16db422b6a145650e0afbe5f2eeddbe70c2169d8349529e66ba6b6e9a8936d92f3dbd05f1808b6e413c7842cf30493e664bd1c6243965b0fd686ff3b51fdb51b804d91d814bf3e31b11ac05ed404bc7b7e62f0f805ac47433f8f87d13028dee3b9c3bf1f1fcd68a68fc76249e3f653cf1bcb391d698d5f6b665ad65566b3cf5fd94f1509fce73c8348b4ca78c54a768954d7d679327a444a1829f76d2fea4d4a496e00f80f8d24fda162c544c69eb4f4a6dd14ae1b04565adabccb2e235fdc1a933cd2215ad4ff474ea943a9c43aabea4329a228df2c83781a2ab933dd5f83d8ee3c7ac8dae6e413b9842bfb7a9d3da0f0833d91cb5ef0fd611180dac493ed8e6b53be62ee378b4bbbc3810ea83d52dc88a3af44c0eabb56c5b6bbb84d5767431e9c9dc0a2ae4fb7b7ceff8ae000c9e088931c136f109609bd7f11930a3e33bc0372f273a2e1d9b171d89e8f8367178866d5a900ecae8f81c6cc31d638cbfd88647a43cad0c9e030dce00cab23fcd0d09ac050159e9fd69778b6f321d8ca7bd75dd1fee1694c59423ab8276b4ee4fb75b6d3a0ae5d552b7b756040d91aadf6b1b43bf3b09d28f3611b57b6d5fbab6f3715ccb5ab76c679337c17a7f96b0466840b01604032cbd633509602da805411deff696450331aca48118aa24c1b94fb3c81aa1e3630ca4c0808bde694130b8f2648f68dd288fcb2a3bf191dda47d69f83887b420185c69ce2225c14cfbccb4db6c5d80876e59bb6535eb596dee34d92fddea6e564b3acb596d412dd8d2ee7016e11f74fc9b44dce3775a500ba4d0f01ccfb3c81bf2ceb4b51f5c976efbc1778759e5e60745767b0b02a2435b2222444851465712c8400bb42b0990f0832155193ce826edcb974084bafaac010d333de8ea83a507d61abafab8600dddce93480f3328a1eb133228a1db9788fcf9793f3fdd5e8a1bc3d0c14fc323b4eba277f4be0658f48ee65ba226db7c8b3378abcd1da6759b0fff686ded476d413500a3f9ef6f0ee1bbe3b897b586592df5bbcb688ac023f0c0d76da65068380b664dda972f5f8eec685a4b2f8342638b21006886476897f97003a02dbeda74190fffdd62773787ec21a43e563726d516444596f6e176b4f2a16c3b1c7ed98e76d98ee6acf5663e56b797e0f21c2cd6c1b6dbbb386b3b7a0f226652a470225e0a1114a59c789e3aed3444aa6eb489a8a134c9d13edc4bafc4c3b7317490b69e181d33292d08ea2148fc43c74ccaa796354074cca44812832f5fbe7cc989b7a0e37d0dc65093fdd257809e131bbf7da1097ef738ce726d49695bb2783235146e1138d90ea2ad67c1acd5a1ad78e1a1ade98259fb66db70ea44006b7fd308d66eb939a489d1c468abc175d48e502d41b7cdb861d6cce846312605d18ee23067dba58db2a5e79e128e607b4bb4ad3304e6fe80a8d81cfe4c7b993b82eddb53601d813d2661560382bdf7e8f605195fe8f3202561020b9833c53934f4c13635a321f27e5e3b8c3b9eb36d1e6c13e9749fd8ed56a48ec3f1eae9adc97e697c794b66adb5e33095ed250fb669b25f9aaf9839f1893d7dd3d04df64b931d1d6f7136bd65957b7add9e8ec32d5b5af7ed9cb58eb4351f13adee8ddb8c008e7b9b439cb376eac82b03495840e5e53c1ea3e18f609b4a4222036c53671adad4a605026cc30d1fc48c863f00dfb89c16c66b5a5aa66b90a689907fcbbd6be70e17e12f4f1dfece22eefc368b6ca445f63966d8061e93e9993ab478782b66ad1f509242bc62b6dfb913bf6f93c8c68c7f54d0cb36eccae81680125c79044b44243eba4797b56ed3f96eba3c740e4e50b65d06655b5e3e6ee3e9136d8dc392f2c8436ba765b9eb08a4d7ad36a7e9ceb9cbbeb5198dfbde9d331a77fe744bdeda79044eb7e6a34edfcb6cb2f8da39843f5d667c47843f5d4ec76178271152d4cb88994fec782a52197c8c4df64bcb5b2ef3b9da3d6695e15ddd7692b6e6c30d817791d652c74f5975e7919f6e3927d79df8c4b6eea4492be3e7a77d609abacfd5d5adebfa755d57194d1d872d2b6bc2806eedc7b6bb3278ab4d22dba5a95b55d68401bded87bccb2ab73c7cb503efde64bf34f5361f506a8ab6e6431e875d56b7e5790e8197d41dc74d116695bfb7dc2d77b98cbfdbee8f62d5ca23ac008b19d1bbf5f8d6ceb6236cb3ed56daad8055dd1241ebed4d52f2419aa2b219d9de8ad86ed9639b20dd0eb3c7a44604beba55657c55197c9b3bd5a1c3e12a6bbd939aa468db6a53a7ed08631275f9e93b752a5a4b5d1dc7e1f094cd645466c10cca765d28dbd4adbdaa8c3acc5a3fcbf13a176ae29a66886b7949df7eb46fc38ca23cd3e5abacf59b4d64c3b76964123526d51cddfe48ed3b87c4b757d9769b43b625935acc68e29b173f3fdda3ad29abd3e52dab4d8ad65253afb2ba5d5d6675677fbac906756b3faacbe3b82adb5319bf4d1d3e0ecbac3579f53dd226db9096a67d6658cd0a4f3823105690811c02e1869c36adc6566bcb059b61d21e63d2fe0058fd5ebd5f227abf4f00dbc0de9f6d5a901aa8f49e07df6cce763dc0f78dc7529e16e4f82ed3c178dc83e8da7babb5226a9086257844d5f0f0bd3a5aa3b47ba520d0d8d0905e797fcbde617601206398c2979c76975528dad5f89e92153dbd4669f8d68c680d486d4152d6d03edb1365d2c6e826eecb978ef40a14ed514a472823e7d19f0a45435add2bd57c1ce7b220dadaeb65ed6d6ea071a14a4e0ba25d942db1e32f5856bb4a0e479b529021c51629b090828a9683f11bff5969bebcb003588ded1b0fd1de2cab29006b41517039dbf0f924b661e628829a5d0e337313d63ee3371eac84d5baf1a858f3adbddbd7abd9727bf7b6e7719bbd9e653414181177504389d372576b45ec6bdd7641b06df7f636771c9596bb36733da1c4ab4b43b942ad0827fbd34d18d07b3ecf23efe7a7f73b89603fbdbfd8a635bf4d22fbd3db1ad62d0025b70c07ab75639bca6f7ffc7d6d6f4c6a4c7a0f82f1dbdddb3cc2e769b431e9514771b8c42b01ab29007baf330d1f846daa24826d2a46629b1aa4e1e10fc036afe1174eb8a2e173f00de7c037b6715d13d0101e631b3ebc0cdbb8c3c35f6cb3876f3c20e5694151aca6008ccf36f591d8c69d07db70bb202955dafde21bcef1c15d73b47bdbedb1da1b8f1aa4ddadd61e935afb33d20e8fc356cbaa5b6d5ab496da7acbeabb7d339e6d478f493eaea7cfb04dbc7b0e2b5214add4a753501c631b4adefdcaaa13dd6e51d9b6d598747de7cef663d245ebf5e954d6faca7c5ccb5bcb6d5d88ca5a479935264977d382e734aea93edddeda8f7a75bbbbe5e4ca7db7b2ea2d6b53a7929797b557cbe2ad3697d652ef5be666dbd1ab244db7de6c6d7431890793dca93726c99f491495b4b6bfe3308edb2cbe614ce2efd48994a608fc7e291fbeaccda592497c6ca665ad2fddcdfbf9f9f9f9c97127b522dcbef208d22d00a56aa115abf9c0ac7683b5201554d12d48054042ba05fd84d156b3c15ad00f16ddba357fe71058d04f175d5ff3e55ecae66e1ad754acf715eb2abb9dffd8667a7b639bf776c936addba34260f05306cfd7cbb677c2c3296b6ded24120f698d8fb7b8cd22a28ec7e1976d4f596b9e3aefd65e308b6fb331a9ca58569b90d6271a7ecaaaece931abf18d49d3715ccc5a4f597ded6eed15b3d66d42eae3fad1c72426ed1b0f8ecb5dac3861ed2d5a8d6ddcabecf6b6d9b6b5d766ad1fdbf0db2d97b5e66cbb1fdbecdb2dbe5cb6b7d64d9dbdc59710cc1d878c027b77e7bba9c354086c6fc18be7becd475f9b3a8e3626f1711887db3ca2f51e8771d865ad4bbc7bc56a05c02c51e351dfee8d6f1ed7b8b75bcd07b653a731a9ca766f7367bb31c91d870d8055acddf9ee16c636adddadbd30b6694c6a7797619bbd7b639bed2abb62eddea6ce1e877198339a22b2f9b299d214e1bff31ff5d95eda98545fb7b74964cfb4f2f738dc7838caf36e0128f12e16565300c6776f6c5367dadd7d866ddadd73b0cddefdf1cde6b8636cd3bec8620eedded8a6759569f7c6c3519e770b406977c76a40b016f4f3d3a36e5f84618c6e23abb5e582d16e414af8d253b7202578e9ed66c36a04c01ab4da0fac41abf5c01a9cc430c2862554f00e100e300e500ef00a6805fa00fe2006228a11c910cb10cd308d61da326d61e2c2d48515c2c3c323034a8153c0154419c42a4421c42b100ff106b18a8908d00c11101b84f88648c62484a90813165316d315310fd18ce825eae1f1e059e151e155e179316199ce3099611223120116610a02b402bc02fc22ee000602fe019e010131c56182c344c6f486c90d531ba6312636b8311c1bdc1a2634f01e262f4c5f98c0c07ee032980edc83d887e887b887c807fe438c43a4433c4344434c43ec12d5c07ce02f510a310a110ab18bf884e884d884c8452c02cb81cf603dc02ff127aa204611a58852221cd80cee03e3c1b560ea02ebe0a8b8299c140c0886439c4394839bc281e0396c175c07b6838b82f3f0aee0801c0b380e4e05910bb10b710bf1cbb482698aa98a69cae483c9cad4832907d30e261e4c564c544c40d30b26292619443b4c3198543055996a30b5609ac1c48288875846bc43acc32465a23245310161a28183827b82d3829b42a482c3e2ae381fb82b5c0f9c10dc0ef8064cc566d932f60e8b8795c3d601d201ce61e9b073d837ac1bd60bcb85ddc282b15ad82c2c1656cb7eb157d836ec18cb865dc3aa61bb6c1a160d7b861563cdb0655832ec13160a1b87e5628db0572c10f607eb83f887272e60817582089420f980073ac0010d3820044520808806ac1d360b488612c4232c166805f4f292f090f0b2ec0ef64a44c2ca60ab6c0c1606fb82a5b22ed829db82055a16ec0a768a95b2526c14ab82fd29454901142838816b4306160cab4505205064bff0000a24008795606db77d5ea0d829799204089038918412269020b1d62dc144091224555b253d2048c28709094280c44709254e962cc16409122437263584de0e9440d244089810e9e969a2013e4a28e9e969a2013d9e15ed49cf92247c942c814489921004f170d09a08019325484ce04409099a2059e244fb30513202132481c45f154d89124c9a60822409244b9c68254a306922023e4c48d084124ab48e5783259a5042c9123b1e15ed890994f02079f2c4044a8a306962c993274a2890bd19b4122c71a29d28e171d204068e640fa829f1496289253d494041a284044a4820810a2ca144042248a2023d9e94f6844709254c280188f6c4878912274a9860b2e4ae0f4c968480c699d19458f284c912273e4f284162821e279c48028913254bf42c21410e8f124df4e4e4707768234092844f124b24e1a3c4c8c8d9e1044b7a9258e2b384c9121a8e0e8d4789267a408044890f099450f28412182787e6a489065c2e0eed8992253e4b9c34c1840f0992887170684c9a58e2938413122c81c4a7899e27489638d149382141d3a801a94c5fcc814ab792d5827e7e7a4bee46e425f012d6899d5e6bad09117280030811e26a1e647ebbbca175f4b110cfc1371900c22040dce38a798a91e1ab184e939ba49bdc7b5305dd6b104ed0bd0a323bf7de73efccf0b957801f3f2084ccce4d0d42c730c6c7cc103eb81042ae9821dc6dcc0c193284f03d38bdf72074fbe074efc1f720f383707a3e1e7c3d1e012264764e420879e16358c303428670a19b26e71e7c6f82cf0a8005d7317455052574ec203333c551c30c1f64863224c82f88678382ee45f820bf017028c42f148230147221661600f380904310c21084701986b88221071986e00b7108866028149a1edcdd65c80c21ac98210c00c3062dd7d84ded3908213c7cfc16b6e7e07b6e5a079942c8195c667ecf41866e1752103e081f64f81e43f8981fc307df7bbbfbdc830b23c77570dd2e2f9ca6d718beb70b213f085f730e4207d7c1ca7165bdb71584ef4d0fc237590f00d3249dabe47b53febbcbd5c217dfe31dbbbba107e12e33c35d08dd3ef8a083d04dcfc9c9590098aaaa7aef4186fb9cf576e104a785efc1e79a7370775fd3d1da6edbcdd1f6edee5aef6d8cbb3bb5277350cc340b215cb8dba6d720c7f75e555555358931a1c1cd6600255094f42079228911ecf8134a9660b2040993254930a1440842d004c52182267a908880c9121188a0899e1b4160376ee0e051220910f4f4344180191c320090b951a3f2512289274c9270e283c467c90846d004c906b54123f34489089824c184121463a2c4092792c83182253e4c48e084da08810f0974d850c204121f264b9c38814489274b4690a3c6124a9c2859c24913486c861042c912273e0438808d8e279a28810f006c8610a24633001142180089104a7892e8010112113059c2c4932498b8909e9e253c41683c0942c6a78926483149287102a3840789cf134a98f880f151228220464f7c9e2c794209019e581202254e9c0882394942498f124894882009274df83c41b244cf12269440e2d343822442a064899a380200b012272140e2a4099f249468a2a727891c958f93247c9e04214400444a7c9270a28489121138792280d0124a9e3c51e2c4891134a10412274aa034a1841227489278b284124a901880c76608219c5042c9939bc984123e49800009134f96305912021214264adcd50c808449134b9e38510205890942b0c489122848106080218610620925489af071c2044e9440e2f38492004061a2c4c1343681932646a06404110a1325aec794033f58a24a30498b529a92b42851a26ca995a24429954a712abd24514a2f4a9428254ed2a294a624ad5492495aa914c525296dc92589b2cd2569513649a9458912c52589b2513649942d458912e52589b25138498b12859394364a89934469494a5b8a1293b49624ca966092d29636492b9538496ba552a9f492b4d27292d2964a25976408dec3b6d676044f926801ed476c5d6a0cc16a3c5e3b407549ab6c19638c355edec7757ca44164e683c4a468f1c8c1a4f8a8ef943538ba9874372383c918bfb7288a92a7e4792828a98c11d61e22dc0404cbbdba3b77767fb4b98cb326f6d93cc7ad9b117cf7e569ce39ce7cb8db5b5785e5da0cf58956d913bcfc42082bfc744865b0ab65d65ed3e3abbccc9ac0a6cbe93c92b6b501c69f68ccfe64ed294dfba8585684cff18a5a7b73782003d006ed960da35ecfc9cccd228e48a474870c5534fcc436aeae1775b5747bd3f931e3990e27796d8c97f1e7a7e1237c24c37df2d2d38e3bfc820b190d1fb1118661570ca4f56af83ad22a331ef9782ab3b0596463144d22f2719a1eb389d2548f6fdd66458730378e83d70c8f200938a202497a9e9052c50a2cbb05db70bf5b325725d3ed33dddadf358bec18ca6867c4ddc26226a749444e34aec6363cf190aaf2fc8a55997a2a2be23e3d4e2292620bff2691c86f9b83a10dbabe60bda02c5469f75267c10a1112146f1681eda03091f7f3d31a90a547525004ee976ee29c4cf791eff16e0e29f574472b5bd3c550b8a75bf27252d226ae27f76804d2579ad6b18013e09c73ce394772d3d421312903a476d323bd071f430e42da85d039e7de7bae0d101e11d4e07bef3df8f75e6badc9d1012e26ed14217cac03e13e2f6093ed27a5de4f53fb0121ce14a3840b2385710cf8de7befbd07617cefb57e3f0e6be37b1be3bef7e08310be2a6d8a31c61879b7b911124c923fc9479069fa4e2edbc7ddc369e5d4d92d1ef73ec6462b146d777231c6dd297ecaa6088694524ab95208466de4d9f3e3eb521a22135387a7a80f26498a9292a2284a4aa6288a9297524aea52ca53144549cad382a63310d1d007d682249370f8000d7d700de46f8cd3280793b043278f394666869121076948723570779a383e92bb9921359c69c8926d229f799a81194d002d3d40e0a27d740b02029569e2701c3111e16b300fae5b6badb5e5d112cccb3abcb435e776dd9eb7b5c6dbcce072bc2f846e448493d7efbd078fe09c734e08168fc3efbd51079844bdcec829c2bb5f16b54f7264388d6c3ff99e739256285a9e338aa22899f173ce652f73d3463c4409a7294792182384d139f75c150e48c3eeeeeedbe1d49961d2b27392dfe0a8024c5ae6bd73ccccec989977df3b3384eeb1dbefeef24a616666e75c7c9d9961271dcca264e6e7f809d0bd353333bbf37ba3204cc2987431e9bde75e9c3aef3df8de739419425a5f3fd25a72d03966664719b2c139e79c7b71ea4c74dfc2af8c6e2e9d79eebd9841f8de83efbde71c141dff324b08364df1b93be7dc3a2edd7c605c5e7befbdf736e1e11b418049f27566fa4c0eb6717f87998c02cbb6a7636cb30dfebd5bd362d9c5a4f8291ec6f8378d6cc3182fa74e8c718adcf190d6edf81e143d3d5a4230f8066973137c84efbd1824f2818b961670d1022cdd827c008475ab420b80da6a3758ab0290976e4156bc742575fc4cb72a006d694b14db9fb44e65db386414184d9177ea147daf14a521023f1d7eb2a8bca3399814bf42b0e93b657d52cae9cd8d3026611793a63b29f5f4372593a6efc4618b8601ac05fde08ce6d12de80761a8251bf9d6566b3b8b6c4b5a275a7db827ba1387a09d386ce124dd89c3164c6a3dbdb5e5b8a7efc4018b9d3860b105dfccb89af866b3bd13872e98d41a8aa63e65f575f58aceaaa275f2e1969fb29d3870c1a4d63b7108d2d98903166c53ead63c67e2e39b8b33a39d38606152eb2ab3b40981b613072c98d41a8783408e67588d47b5da05618c94183633f3a641e395d43215a42abc5531c3eaf0148e835973cec64c0d1a9fa153d8a07344a3615e63f41957339289c9e04359ccad5bd32504e3b91225484e16d3e5a7a9132f519398d752c7d0276e0e811765a2c3ac31497498ac46096a988bb671081e872dab5d5416cad6c9f4074004e24b536ff2a4d450a6a628dbf0bccb6fbccca1d55a11500656acbe923ae695d4325f1abb65ed35fa47879fc9ce35b247a41a8f79e39bf9d01bdfcc9cc61bdfd8380ccca9db90344e7d060bd13ad331a73eb3c63514ad33378d6b620e5f236b5c03e15b4f5f3af4eaf575b5de24be42514445a1dce82bf3d443596b3f285ae1ad26f14f78a8cb9c87a24d448f87e29a0926596fcd4785b4497c0d1d8a6b26aab7a953b546aaa11aa24de2a94311bd32690b6a7c8a2041dad5c041c2d5b8dff8fc7ccb99af416a1cc75bce14363ef3d66a681c079de2067f328dcff0675c0dbfb62ded8ee370d846d65a0d0cadb2635e236bad26e6a3acbe634e23ab58c75099b79e7ebab51f18ad3214deaa48b4351d8794029b6ebdbeb66eed65bd4eb77a12994e1d66d43c3211a10e69754d851c95b50ef10563e89352c364f2a30c1365f5f59555f0f038a414acfa7e698b56eaa1bfa913a24260a1c349847a88d68ad6d7f014bd320fe715a0e74c1a25484e16f016cc6888bc8697fd7a0a5c60d139ba4d818b2a6df105b3ba0d4504b5d44ca6f6710d5f6ab2f0b25b5b590bba624557f0143502655b521a22b2e37ba686e27aa291c83ba41793f62e0a2cc9285baa9ea80f56177e8005d10fbc682ed4da8fc6a425d64eeb26fba5f7bbeba4cb7eb0c5fbc11096977f400376ec6c9ce19e7b35dcf0e08395189bfd21363ff44c6b3fda0f38dfa6cb64fbc1c791046b413e00a3ebd5cc8f92ad88e8056757b7201f70d1568bf039de3685ac2c96e8467cd5d1edd5a8232244d32b4cd7aa8d900b845fe57bb58cb81608bf8850fbc1afaed9c8b73d9a5fd1ca4dc41ad1164885e1d17c8a56ee4a44f36566a391f82e33a22da902a01ba90aa0f9728da8d17ef0f9d71a21b340f87c237c10c136ad9196d61b5547f321adfc9e0eb3e931c3d8668275a21bff0eff5eeac74e5e57ac995ab706abf1a8bba5e1ad2088983140ade956b36ef2867cbda857ac9b0cdfda1da6d16ade754801f4fb8f7e9707e8f7baa3ab94693fdedd23bd53599561520691ee2603ae06beee98b15eb1eb557695fd3e83d8b446aa3b96d61d1970370be46ae0e545abc42c5ab1056a086f2d90bbd921b41af823546942150d770a0d5fd74ac373fb01a160757f1a5aae2d8764da8fd6fbc33695464b619bcad3eff0558635d29ecaae46dacb4c36d27eca5e6ba4fdce2132d835440e79cdb4c924f2fa51da5c4ddd2c0d170b26c16361127c5d2cbd5bba05a03445d9d2baa90b50787db89f0ff70ed9bfdebf5e4a5364df9ac16a3c2c21d836266d2b82db1ac12aa8efc6fa3b4f9d698dd86e7b7ed44d9d29cac735f096641b38f1c24f990fe6eede487ccb09c19a4e93c72478a44d1d6a3aac0e273765af77568efa705794a608757747a170efa926eecb191c8508ff74136b39abafe397a711e784ba8f6c273eaee3b701e1acc28edfaca2a0dddd3442d16da478c4b59b5406859bba355d6e1e79bdb7e4d5a611d794e375a1ea9cd51de2baa24d5c53d44d47af003d47529d481f936063127cc5dcf91847d9927bd08b45137aebfa0e856845a26b4f90e66952a1b86622f476f9d6d3f754d624f45aea508886fea4d421fa84cae69535a9af2bf577857cb6ab57c7e1965dc77154366fed15caa899bdbeb22692caa83f2935459f58b4474a8942050de54653af686ba4da68138a5e6981fb148d27da1c9d026b818d9c29a0a87ae00325e0a00652d082951c28a6b8abe147695cb000628a30c6084320b2c8817f7f6f39eff13953b8b756235580b59c29b056b38f740a489bab697f147335ed2d670a47a790aea67dc6d5b4cb28afb4ce9941f498c46fead3db85606e779756caa232f91d3e0e90001eafa9b345358aba10cc5db20d45eb5b9edfeb0cacb229778a5649697bb7e648ab84b462ed72f44cbf77631b77f372f8edb55c3786c6edd12a1dad58b71ca67506069392c57e05cfc9825fe275e2dcf66a6109c1a6e3b01358757fdf3777f8fabe74ca9efb3be2cef33ed1d767e35edf5f265f3fd73cef8fd60260af5bb371c2edc33c8bb82f5f5ed6da72d7dbae6c44bc3565326b02e36ecd4eb66791f6e54bbb5bf16a45f8703b0634b6d977be746feb6b87b927588d4785555a11f2eded0a67d0d2f2d6db9706d8dbfd7a0dd2f3f500a15722dabd26a0a75bafa4ead547bf0eeaca3fedb0a6a8cceaa5856de0ddce7b74ecf5b5ac12d23aa218755a644369226aea2251d6c47dc9aadbb2450c329c193f54aab8224b175ac2e83287e7054ab1ae6cdb69619bd0dddd2c12a255665aef9218868414fc93138fc357d69a6a0d48b58e44694b3a492bb7c545f3df912b9c014bf3a7bf69c479c124f7496b0e26b95fd469897326dbde1960d505b5735ad8c6ba33c2b7689de611ac5bfb71843f35d9a6a6b6f085a4c4bf6f539925857f72d8bd6bca2c78bd8ca7eb659b13b3153c270b796ba226760b2f99f1c853b7e235651c45cbcc7df9d252f4446556a3a8a0e597a64a3d8ff06ba92799754f19f79b3b0c68499b30a0e5adb9d3829afa696a839aa24d36a8e59fa4adfdd8b536f271f8652ec705392fd8860fab740b40c98ab20b2b33acc683e1dbf906fbf9f951414ee3dd5dde85900a8131e45ddea54eb0f73de43f7efcf8bd33583b3c2c21d8de5abe96af7ddbb6f8fb7adf5bd69a84579b11d8be98d4aea6b35408eccdf72047b47e44ec6cd409e6eeb6b94d40b7cb29b0377bc16a3e30b7a5df2d21d8744b083631c9da4b08d6985479f474524fb71a2ff30bb5f663fad5f846ca8eff2dbeddda9149e1c48e5b42b0e96dea5cd9711cc621a3c0e6a737e7a4574e819eb3e3d67bd67276642da7cd09c72d1cd9b695b522a2ebe9d47aa1fd78b79c8ccc69583232f388d632b71ebc705cd7cc0dac63a5bab59af869daa2db0ed6be088317ed1ec31046bb7609c1b0b7a90373ab35eaf058536fad883ad3d4778bbb7159660e6f60385edd657137ff7bd58a887f976b848d8f8e83d699ae2ecb8edfa01513b5cc675c967eb791b50644e6cfa65623f31a996b2499efc85aaba9365ae6a31d2df398b5f6a372cbdc81b146b4225a57eeeac0e8df788f47b3899f4ef2d16c625ec74c46116fd1983a910a81c5c498d03ca275ccdb1cf28eb1ae9d3b3197b90e8de3f0ccaa8ecf8bb22a7abc35af296b1d6770ccb8e3f8220c337af4995bd415b36d1dd976bc4cf666ae9999df9899993935756edcaaae9d3b7152f3b2b231aaf1f715a3cb18d6cc85236bbd2393b2e32b78ce0e9a850e1d07c0a75bd7716baf49c78d79446b1d1f4d1d00dcb2ae986c7499ec3169f4a823abdb328f9943b869d0c6a411ad3d57d334d91e1dcaebf826a28e545228db235a653edfe61099d3380e8fe68e8c9c644ee334649c14b6b9f17707c436337f7754d826de3a0d19b689f97bcc9c1526bd0320735730e95d47e6b05857cc745c66eee878bc15339a5b36f8d33c32aa31294d111d9ff98c0e4ae3aa3187d03cdeb266ae367722a5f9ce1d9a26db390ee5e1389fa6c9f68d4379dd64cbe8993711f50c6ded479db98dc779c41d0785b29d83d6f879388f8c3e43a16cdfa035bec6715ca4a131776828cfbc3c4f8dfb6c8f4ec36e1b0d0cc5e3c85adfc85c154c7a9fc99c154cc2d257cc360c26bddbc8960b93de47d98ac1a4f71ad97661d23b8d6cc760d2bb4cb66430e93d26db39b85056b743a7e690edddd27ebc8f000bc2a477ec30990f26bd5b30577cbd315f4737cdd58c5ea99ede5a113bad439fbeed66b7b89af7e9325367b7b81be96adee5885689f5a415ebba5b5c4d9de92a672646493d58959544865644932d237efb9de711f778378bb8ef16b6e1bf6f186c13ffbe5c5a11addfe12ce29a6c8b44c771a2ac75286b3debabacce3495399964e6b39da4d5ecc9906560afd5d4e6a5f775a62decda395121b020dd260f16696d5d7abfdfe26e70ae54e19ad6ef8d6d70ae54c1a4d69056d975b7f47be3f1288fdb42c334c4b09ce30bc1e04e9de9ded4d9ef84f489763eda98e476bfb05a01302609e8cd1e9378677b0956316619b6e94940ef79a6f90abcce15a0e7401a25013959d01479edfeda519a22eeef8ed68db225c75b8623ad00b05b5011cc3882593d9883cbd22b72b74494dfb62dcee47942a02405ce561e877b10d4d6e5f76da9acba95d5eb3cd4ad78f9770b0344bf4b66d53acf398fc37cc94c74be30ec32ab5232bd825d04af1614f51064ba64d6fed0d82dc8db5cc48ec30d2ebf5048664d8c76d97628e3e338781e79ebaf5a6f73676f59d671d862f926a53c0eef24226fddb244196d6b2f115f227789e025cae639738dcd5bd38c0036dfa6116c1e87e7ad06271ca15a829ee71665cd8cb6aaec9a3b933a6177abca2eca5cf17565d5a77b2814bae896a89a2e720fbd316db25f1cdf0a55dcd5f4d034b326fba5d44c5bf351fd72dff66d4791624ca2fde80c93f8db51b63459c6a10756748e6e413c08445ba2d68aa8414aa2f7ea6caa6ee2be3c38463fdac47df9221f4599485ae57b4a4728a321650245bfefe55df6dee691c6852a2de9956845e9ba15524c142025a82193c6852a0d5f4fd0928214092c510032062ac827da9ddb5fe6dee606acc8997e6aa0e10852c0e1e77daffce8784110a8b0e24400568ca0e5c7c78936465ff90132062afc40518094a0274ed0f057a26863e44cf4a78d91d32814ed5198f0c0076450c1193f3f3991fe48f9f9d93b5a9d689781911ad020844048f1e54b4e3b0e1f21c351b8e45cac827b6f92100698ccca8be252292e5d1fbce652625820ecc5b2dac519cb8ce27ab559dd6547b40794dadaa9fedef7fdbd7aa22bba53dda2720a8ca648f5f8f88a566f4caa68ed69f7690ea1e44c739325b9aca58a288a7e018944228ba70843557688d61585427c5d53ae29d7946b4a95d03e3758b9802e2a566cae53d37b1390bb195df4e445a2494e734e5a17e8a23d573febd3025dd735c5ca96440ca5500506e602baaad0ba17956bca3505e61710cc5505e6a2b24018cc0261d76824bf30a3b7d1bbae29d7946bca35a54a0fac5c4017950be8aa7251b9a85c177f5a59207e9f55265bb9ba6e15e657b6526556b189f97c286b4c9a33e69a175f53ae29d7946bca7351064154aa50d14be5f5872c5b70d14590175ada3b03cb9205cb8265c1fa9025cb165c7411e405dbc4eb02baa65c61058b952bb06c05b1fc416626078f93ae2917153f60f2adae953e602b339383c749d794abcab364d90293e1714db980b02c54ba72967a711677b3565c8d7b95eed7148bd6ad2a8ad605ca72616bc5dd5c97956b4a90d586ca8ab72c0831786c2535459e3b3cf0f25365ddba4e65f5358561388eb24e5dd83c454d6b3afcacd361f3a1109d164f115ec4a1297218f54b24e2105b9f77bf2c49eb14a163d14217b0c1ca1ab2b4906e5fa8e18c27636b0d2d9e5729d7404607d1ed8b350449197af52ee7297eef4f7e7aefbd338bce6ff417f3e9c17c7acc2469954f5e464ef2d863e461e4f5113689f8f94cfc2a93516021ea33f5b33ec928b0497b66fa59bfa8bfb9f3288f355515456133af24e248450d73680274fb420d413d8617bd32e8f6051bb2b4957eada9376b8aa1b5d43157e87a68a9af7c1543a19b3b3cd42b233b61b046d4523f24fa95d5d757cc3e86e2b82bf4eb6d1e1171c7fc17f5e1be5eb1d0d4f1d43139c550eca311bd8e855edf6fa6e3eb6b481de68d77b4d8ca29e6bae89730ef7ae8187dd5a78b4274665726b36b16b1baa235bad3f0e564a55b004ad8422fdab0650d5eba4b972a1aa885e8f6c5186174969e6eb56fab3bab945adeaaef7d525923f8cfdd878dbc4329b0faba526f6fd487d659a5e35987bad58060ed8b360435a9db176da862ca30a9b54a9d927bec98758a7f61af3d33cd87f99b3b3c4ceb1ec7bbe3b7d0abc4de617e601e6aee26ab33d3afabfa4c3d7fbd72167723fa2473a6158b395f266b5cc3b4ca348dc35099c39c46d6b80686d6ab3974990ce631190cad23da33d3d5312aca5e33ad3d333d2f3a6516f599baa2543c4bcab39f1ee1dd4469b31ad2ba7f8e622e4bb7004471f3c52e56e3515d9776df2aace85d6a846386c960bb87eaaaaaeca2b524970fd88cbb592d333db366603cd461d7d572ed82b15bd8260c31b60bdb5cd5dda76a299d89a213060b64b7d82c5c64815cb08ddc0a72c136d7dd770f15acaa4c34ea01936f75b398812d35fd9d1484c8d575bb4e182c904945d7f8851ab290560bdbb42fd480a5dd178c3750d1ee397c4c182c9038d1496581c0ba45de8c962aea0c6b71379bc5d5b8535a584bbb4f18ac114babcfd4fbea33f545ab5b3f6dd1ea33b5a4d2d01d879402eb99e9958fff66a9e8d52bd34b6bcf4c4b2aa72ced1eb3098305e2ba5c31d8d6a66025073dc3a429d8a0f1c0aa42153c4c614a2082f03085276899ba0505c92186f60a56d01982c21004c6b60dea2228cbf2729095a02a825ee046dd82a47046cf30093a2785394cddacf0031cb493c218edd849210c2b90418514b600292fa4c045cf4c72d271f449018b147e2043f20acc11bee6d7b422acd7cec9d6700c815552175b74e5d13cb355e6609baaf9f2e29b96c32dc8e5c0da6e6fc61259dc0c40058b659abba1a900fcfc7c29a75dba1b9a0bcc871efa7ce3d1cde5c064b6d39aa4436a3f7666d77958392e1e3c6e6539e28cac4e5df65cb5e76aea6460d5a923156d4ce2c12ad6ae66ff326c8ac2a57d0e0c4c2ee7aede3bc717ff39e62d83450a4200587b160f6c8679990600631c8b62edc518330c1ef11d43b601808d2c1d587b560e1a1c9610ec0626258bc643f00d600d0083aeb92d673d18aaa5d2ee05ac95023683d9a88185ace643a7e7f2b9fabde76a373155398ed53b45d19c8a56ac990626258b4966cf8ab45e1dff5e9d4fbd569f68f5ea9da7a29249fc28d573b57b7bceedebb9da51f95a405b954bae70392cf3fa92b126d002d1072200a10e6ee0411fccc869d4e86212a98908da0115379cc309d8aea85cba03166cbb17584760dced8b33a8214608b62c47d802661abee12404db73b68d44e4351771cd9fda328649c9c2c9c7ecca60636cb30dbfcde6b9e913a58974c8c2c661c838b044f0d492ed4382c65847437b8425ffd88649f2ed1b056c62d3a56401e379c8095c2b05ccc2a464e19e0e6bc87645635112939205bbb7190b62ed3de67683610d9b3077d37220ad72a215eb9c88394c4a166f866d96baf847b128c32447dd94cd74c5e61e6392fb4c7cbc9b74a293d798bbd99c23603f233821d8c6bc324c95d82b257ab542afa2f98a5dd66b0d23aa571bd4eb0d1daf0080af6f45c4abfd708fc96603e20e93891ac91d66ad01811fc5b43b26d3eea21aed1ec2d1ee93a6dd2f1ded6e650ba4d21f32eb2a331f598fefd841801d0000400d0074e820e9c89123881c343403a0c1814300386edce0716366260033366c501b356a643568d0380d19991d32313100888181d101331ae51861180d2612e1108542374273ceccebb27159560dabaa6854142543491923a709668a71149bdbb51ffb8ac1e68b5a11affdd8d7ee21e7da0fd7fcc9dc7e5853c66ded15b72db8edb9d0461d78b52260fbb17753075e5a6f1b875afbb1a57e94317e105155056bc8f6626db2866c37cc9d86d57c6042307843bddda232294bb388f13105ed1a9e1f14f8e724720302ef5ecc6aac2730c28d040fdfa1cc2a37dcf603be4669c713bb2b944046b7202570e902740b52c2101ade7adb4890db72a8b51f905ed9ef4f60399701628af039de24b0168484337a8085e3296ce1e52404359a842cecd825c10a4cb7a02450e999bf1d3cb6d91102164c6a6d471012e6d03bba0521018c6e234b096cdf304b088631896598c4eee61d7e3397d5b7831914595400fe5128de2114f0ed0bd6a47569f796d37888ba8f5356a1886ca3c30868e896f3b296b3737fda07f6522460183b1642bc258af0d99539646640cf99d61b2f605228b2081d8a2ce2e7adebbdcd2214f5362b91e82e7411e5e1871edd43b4967a662d87e57db8c83b45e324e39b8ea4426051c6c7699ae2b7234d9177f7e7a26ca972ae0c5df02116dd82906005f5062f8f042a67b81b28aabbb72a6b3cc434db3402290fbb1b284a39d2d5c0d998449d5c404a7335aeb65754ba1a3e02df68a528c653a73726c934cf23f092d66d9e8942ba14bb2b38e79c73ce317f9f19ac8d87336b4cbae4abac42d1d5df1cf26ed1ba6dddaaf1b0ba5bd9152cbe85de43536744b10ce8395885a242b1008c42d178087828b047693c84e88d876023edf13c8d843ee561569d33eaa3cc1dcb5a8e05af26a2d6e7df7f6559eb6a3a251f7cfb04efc33b31529a220b697d34ca96a67b4048602dc80867b4083e97c928b0eaf3661fde8190f2b83bab4d86d9cec624e8c370371056e351b98c9eb060c1a4e9375a901661b4bbd95e2660dc65a48517dd82b4d8a281740bd2424aaf1777c354d85ddc0588ca129839a7bae49bea4b0619341278e767e051a0cda1ce14cb8094153020873ad0e6c83757c3404c983b6ecc816d00c036353ef399c15c08362f040340b65d23dbde916ddf98b37ab38460a363c7e199acb515af364d80c028225ccdf42a7be2a9de8e5085a8961a4674631e06e6d58c113df44b08b65a44532707173160321a9acb69a4a23cd334024379aacfcf2aabe8080a2750b0fbe8b888ce1bbff16b1a09d15ba2524f9aebc89aec689e1c6f8d654d76748e8f329eeaad690e93edc86e64bb25c771f8cfb20593a620dea60e8fe37090174ce2302c398fc0bca2b5fa348f883e69ad157d526aec15f650631b1d9fa7a691185a2b398d8442175d845d9431972d59858207e623ec1556ed123026638c2e31cc41ee86bbe808eae9960e1dafc6ab1aaf463ab2aa4347171d1993d145878e31ba90b1231472352ea70ef6c63657dc67cef3488d57b4d6b8358338cf23303b7a452b0c7d526a1d9fb776c2843e7f04a01e1de6307466a5203edf3c527dd21a3222a2b57a9d1f7d34ffe6111d4460ae83d6093300011c872d6c1ecbb6ad2ce6613251751a0ba099d4c905f6fc0bbcef99a680bf3405fbf7142ccd22f414f01fcd625ef4378dc07c742b849d74fa368be8384679aaeb78280b7d006fd348e859111b0f519eea363e71b4c671a48cb3642da7ca5a8bb20a45571e0fe238b222d96dd05aeaec3159117a1db4969a1e26aba51e9d46564b1d80b7a913001e6f1dc4e9d409820a81f10882c7000490f1153c461fcd9dd12800df0e00a529429f9d52e6a2cb969e5e394b8fc137fff9f989e266ca73dcab67b2990bdbcc57171de61c06db6cb1e8d481811955a3edc2a4ecd3ad2c83d979a43a4ce8d5e8221dec479843b7a02388d195bbf4740430fa46b7a02364e9792b5e5956b363b7da2402436ba9611eaae6e33c327a526a98bf69247498cfacfa70679fb766c656b28cb188debab2959e6e5157f6ae2c6bed2611d1ab3751e830e72bd8a6a250b8adb00d16ab00b3d251e9b8b59308d6d8db24821d86d610dd31aa2dc3d54cb7ac9d1710f18fab998ec3757bbde05825609581c8a0e2a50a172abca8420b5bc13675c7e8897fdc4d14bc65b89b153ce791c136d55fd678885a51998c67a7f5fff39440cb61da7888ba5ca611988a6e172393f2cc57af9ec54b9b44aa8b687d52ea49eb0f43d78bdd3206db9cca7c3a8ee3d2d3776450b8711c0019146e1bb7568bbb6120182d130c2f3014e6d5e8f330af0e739eeaa1d5c2a4e9fc33caac2aabf355eb2a9afce32594ed195b60d3cb91f93d836d42140a7748d47a82993a222a0416128542f33b77e6a43c30afdea61118ba5b9834bda275bd60d2741ac7612efc13f3f93dc30bdbcc4fb74653675221b0ea15f5e11d18980bc1aa33d07ad1c254a6d7eb856d469fbe67b00df6e9fcc336a24fb72a1d9f1994edf92aeba95e5d4756c4f57c28eb097dbbda9e598e5719b7d5963994838aa03129e655c61dcab669322905c3f1d6d5311c386edcb801f36d181b6f3df3d1d499a1426036666c341b35dee64e8d1a34be4d83d66d19ca0373d1d78bd03402f3d1ada9237a28862e16264d0f4d1d989745c17f9f597d3d0f93d5d73097993a8d17f0c37f544ae32160be82e7bccf87269110add545171dc7c164a32c688a6c87be1dfacc2a8f0fb7e8308f993aa2f318f3d3b90bdbc07c3a933161a60e0c150283c95eb739e777ee54df167d5b7418ba5998347d942d174c9a8e65db0593a68bb20d62d2f44502e68549676c12b0ba5cf4740672370b04c45edccd56e16aa64fdf2a7a5a2f3d1d0b162c284ada84e8155945155630bfb748c0ea02f5f405629bead3970adfb4a09f9f1f2939d3dbf5ea8f1770bdbae405003dc77af58b1760bdba9b3a151502c3ba4d1d2715d83b0a05142457337dc6d54c5fda5c4d105733ddc9045ace5dcdf426136839fc09b49ccb7a25c27acb99de5bcef53ad3d32d2b3bc2d54cbf322dd7add7a6a5a70c649b43652d87b3e66a6aebd2d327407091dd729ccce0774aa0e530e16aa6cb1f26a3a7f34442ca13ae66facb68aa6734d57fb04869e65b4e3ca43493d220113f8196137f81cd81df1cf88bd254a73415a59100fffd02eb5e9b97ce91d9e6b48984947729fcfd44793847142e6d142e2d2c4016b230238b39b4a02cc6c0ba0565319f19ad879e61527bfbd15efbd1281969e87d1bc05a90152fba5ecd56cad02c258b3d8d953072b09f9f9f9f9c3f106922eabd81b55f4a621bbe1abe45f379f8c098ea3a33930595e6e720b51917640a8b2f046b358dca6052b268fb28bb3aacc6a3b62e44c06a0b7280b3d926028c76af00dbbc3f7722dccd6281eddb67a4ccc7ee21f511846d765f217d94d4241744b69b52172d70c3166168c34f0ee290e38eb59b76c611baf8c24f1160b0858b1cf79976c30026fc608b11fc7084292c21c7fded46013f7900031659e4808b31e4b877f9c2ba25ba6e5159e589a7cee718cff1bdbbf74efddd3db83cd3a94f87927a75aba2d6ba7b732eaf833b4d9d37756e5db4caeaadcab65abe9656ea4b65d5373b42bda295c77a91dae677518fe7dd9d3a9cef9445c5cde2699b6226c3a43dcc1e56ba3666c16a3e30be9122bf82e7489a05431e3e0e2905e3b77e77ec78db0f8ed2fcbdb5ec24be6f03f2ded88689b87650b81dd36da4f706fba1a099c82ce2d8ad0b4d136de27e3cb72fca9622bb2114010e43b082af6ce9f6d762ba3de6b7e501b6bd67667766b77bb97f5f478160351f5812ac5801095d58a2cae3d81dfe7db3babd5b799ed5f8e9d694c56cad60d4db3215799cdbd692f24ef14b6be471f13bdd63c603ffe8e6b4efa44d6625b92e0c6b797b97a70ef372b6bd5a44ddae80850b7bf9da5a4ffbd1caa80113496af05a1226b577e0061940e206974482490d023a3802470732180e968004e080882038c831330a32e3c387cc1ae9dbda8c0cd6d3ba4879ea5b7abf6180d1dbbc48000fd277665d2fadf293ec695d88d82aa613315581f1664198e47c907830c9b911c6a4f6b581df85bbc36de5f42aa594306e8bb08c1614aa81aca4945256524a69c94a4a29e3b77a8d314659490a219c2084cf87dc8805c5e2df7b11625fabeee371bcd7d804b68fe7c84b5f567b66ac403a8410fa68784be600631f64c8001215400202adcb11380ec04900110720e200412cabc5acb51ff2386ea70e758a7426451e560e99467da25ebd4e13f5893acf445595a2a88f6bea9474417c04f1410ab51ff13ccee3396664b0a502e3cff6237edd8c8ce36d2f74b51fdf5d79f9ee40cc418290483c784c80a2ce6198943b8e65dad11779ec79a69dbfd3e8b61f7ba6db7ebcb9036924405dbe02d425459bab9962a2a58673272ef332c7b93335df49ea1d7ec7b2b237a96a3a2aa7c01eefbcf3ab4944ee97b65c5be63687507388a8f534873057eec19d1a4585bafdd8c7141e1ea94d607902ecdc04dc7b6f4ee04108e104608c31c6382710a7699aa6690253cebb257255b82aba74612c8ca58c32b8e0627ff6a75d6281c9390199f36e516dd93d182719aaa576571e5d77769479ea83c53412981e5f01f8f709b41c29534cfbd8a5dba7788e4bb72deddb77f6eda56e93db978ab12e8c6e3b91efb09df7e48e6b774b447344eb06a7c05e57e785de57e7856e877387dbdd8a316489688874a9db1cc2d46da16e0b532e02b6515e89d90561d7cdd803cb7c0f2ce63543a7a89015e11dbb297b68d1438b1e5acc7564f0630f2c5cac3db23ce79c63ea538ff3e21ccfab3dee3db4c066a2f07e30ac07961e584c588f2c3db2f4d0a287163db060ef8105d6630b6c340a392fd4a74f580f2d7a68d1438b1e5abc1f1f94d1560f2c3db0e891a507961e58f4d8a247961e59bc78a9bc5096f3f25ed11ee7659a2493f83db4e8a1450f2d7a6851c69359dadd797167f42ec5e4d558aaaba27808587d400fc8ddc82aaec65d4a0c888580f1c8c3aeb2ca25abb08d75aa0ab6a9acb0c23657482c6c7351540f2c6426df038ba43db4e881454a913f4c02fa611b299604b2782b2881184b65a587163db250145fc1a6b7ae0fe84708d8023d2ad4dd1f156c63c5abe259e9a1458f2da80754651559455201f4ace8a105457b60217b60a90fa887165eba3e2955e7a5f7eba597d61ee7a5a7fa807a6821b3c060b2d2a1acc64acd15b1c64a7ccd15b1068b186bb0f4f45a8325c6f8de944929b01eb7a5e56b8fdb122bcc8de699561fc7af3dd72d5a83f032ca9aab09d11a4419af43b7dc96ae18ed715b446e8bdbd221abba2dcdd558bfb2e668ada8cfeb2988323abe46083542a811c24c8d101688b312854bd58345b0ac76b556c4f4cabbad2d91c553b65ffabdf7674db6dd763ccd90767706b4fbcb781aa521b280765f000d11e7be7c59340461c14ac3f3b546c805e21e71547ea43b89f061fcfed1e77669b046b09a0facbabbc7781b1dcf5abe482caca0d5b4aea21b1c2d7c6835f1cf07988d6ebd64d70666034b8b1cdc04df4d7cfb0cc56582c24d9d3629311cd2ad8249fbb88a2d6d4bfba2cbba699a2607e144719ccb6c208410c6e9d09a1eefb2e97172f4d1f8c021b91b29e50c47816d6b5b6011980618c77855b9a65c54faeae2a2b2822f82f60ba0b6441cd45b036cbbee15ddfeeeb2f7e461971ea3a2ac68aab2a2aa28154dc948ad8ee4a65e55218aa2264951547c3b8f5062b88bd4f529a3c2a01e955d52fe0a5eba055d818c26a25bd015b2f4fc4e9d8b0b26555d3ce1f37ad80a93aa2b985459d674986d97a98290a960d861d67335b56130a9b202e339847bb930e9b92b9854dd59615255dd72170ece01e6b8b894d84cf5560593aa3b2ed555d1d55d752706db5cafeebab08df5aaaa7806d83ac136d4ab27713748b89aea559515dd23e16e384b95e991aba2f7585665b60aee2d5dd78a7e2f74656fa2b854ef458a12c302a91e3cc5a52ba0a6c2a8e07b54465d198e8b13c37509c456e1b8f4bec36cade876678529cf00db7e308b7941e4dcb117ef2e488971eddf053f1d5f7172efbd6744dee2cb4179f8deebd0aba4c4302931cc1deaf2ce515cd8265e668dfacbae0dc3516234258635621feb6489282e1ddf344dd6cde87b5dfbe2ddeeaf43e7dca930d688f748e1f54a7169f8288fe8fd8a81a922ad4bbdc75c13e6125db002dae5e9ba9c3bf1542b830a6381bc5f59363fca42af32f8189f8c91bac3d748d122f0490e5a2e6d0cf9adbe6fd35aa0fde5aeeb8aafaecc61692d529ae9efd00535c736461ba3f65cce1d779e8b566e8c0884a5f9a1ec71cdf5492d5a5f3f175f1d421d4865d7147b72ce3dba53625820ef55d90bc6ec400c30b2f43bc7a0362d4738f964d698f43807a47ec7d1be56d8a6fdbd5b71ea342a0426b7d905ed24777371cdfb7baf41fae5e8f74a44bf77fec16ad3d2affd080820c136929297f044747b10b669419aab21756b996cd7aac0dadfb3bc77852eb0e88283a88045b7a02964e92a9b83bca8e2b5466a4c7a59a99bbb8122be513804a455626cd33026ede6b8d91e7c257e018675f3420ba0ae2dc801b51ffbc72e09d615acb4eb17a492dbbdad22b043dd3d4e2214454d4a7dbef56cfb1cf7dbbfac96e22f7a49d7d65ed47ecaead5d3663b958c406b8b72eeee156dd7141c673576db5e683a8e9bb2edd84ad5c23044d39666e79ae8d01282b9b7d69c7b7badad6c97d8997441000926e13860bae2a421c22679d134490cbe67a61d840e3a37412cae86a57c5347fe4988e539e9a4c85d1291b44939397ac93f7799a4ba9c73f0b9ea53567b66a8a933412c19609be957b05b4230111799910c9d55980447ef0ded079f2fca980c26cd81cdf082657c063b2964cc2a930a91286e612a714b33367a555e156c9299911306938a48346110bd88a22c0631890fb1bc2a8f8a57c5abc23613062e0f58e5375426a3f9100b1659f80dad080e830b93c490bc852f9d73226c34c244f462d27b2bb188ab68787711ac201699432cee8634125d7e270dea4447e63aef96cc93c9a807e9165998c40db10002ab2dc8b99b98a057ac49ee26864298895639a2186dae46d28ab588147a5566ba422c0ea86a5c9a4f61590106b1345f5ed8d946dec92ab90ac360da1282368a607981e56afcdefe5a26047350d49ee51f0bbef1a8b14b33cc9a65b529032799ac965ae6560cbccb60cc24a77749f7298b89794c26c316bcdec40e67939dd6f23bad6364448fd92d30993b194a026e11f5e1e671148af66947ab7bcf4c43764e8babe1439d67bd07454f0bbc0cad32865e4c8a8131f0dc31b76262b22b54e90d43b7202f9a60062bd2e0a5b36e5fa4610c0d8732e2c534c0ea9b2d21d804695cd143b8d92686b61eb41fa5eb75af602b7c0593f83432c6e26af82ee32c2ebba830a9ca3c84147669fed3e26e689c2517ee3a72bdbb6b9a26110ab950280693f8613089ffb4382e5c172e886d68e05bd792e362740747325eb0ca3de8d63072f41ec864f5b54c4c0c0ccc54a346167391a85403e62eab1750c3e8c0d0f76ec5381ac7614b08261fa59135aeb9265a27997658bb2adbc5c940987c8f960706db60e7bf2d6c03cf6799c9cc30a97da26dae6c476bcc452fab3efd1e93d5fde9985fed46a3d12d984cca4c9f64a64319d373358ce82eab6f943d30de16117d21c745f36756afbeb22ac3b73299d6c25360fcfab4b43c1fab32d3f492ce141c3749481f3cccaa8cfb3482c49bbb2a10bbc4b81a34b882141fd80cdb5ca10e9f035a5bc874bc2503a74e3b6c2d5a3152ce2eab9a3ed12bd4ab4b1daeae50714e6fdb1aeb50f13c87c44fd6ca8d514e22fbb8f19cc54f2d425aaf6ef1326edcb8dff3d489b2cad81a4718654bcf4929d498d8e14fc37395263bdcf2f21f5d66cc40587d3f5de7df8f14b6191dfe01fd4d39e50f94a3cf49494ac9d1a92ac6fbf08c1935c2e4c4a4ac1ea93482bd1ac58fa46c7c23a3fcbce68e485e532e2a5347466beacc2aa3606e3d84cdab4abc0c3d7255e3080d5ab9e76bd0ca8d8566d5668de370151bdbd078e88f6f641e0acdd06bd0221ba234a1531fc1c048792947f2918ee4e89a3b352e294f8dac6e4f1898996aa39a3bf33cb1c6a93943c13ce6576663d6a062176dc90c62d83b545154c2c01ccb2e201ad975992ce65336bae8aaa494957b9714fbf52a1a4d7ae4ba84c9a0e3d0a565d10803d472df0ff6778cce870e73ac48481e06cb68605e7d54dd4f43f90a9b4658e8a2d7d7a35373073b4f8856ec38aad7f7d3f031d9e39ad0afac3129446b0f668d46bf469fa6ce0826360c866197184cd65a5ec7e1ea5636752c9ed02b6af499559f5afae9d03129613e1a653b23222398d1885258764c943dd133bba62c90ea9a525d54aae9524af8c3a590abc102d6c25ad8e6cabc3b8371052b98d1ed8c6e57f0c24bdf8807ea21ba7dd1654b5bf2bd5f4f32e9baaecbcb82f4cabc75a943c95c9930f392576cea96ccb5536726278b779e43de21465d467951577c0f6612d99df877eaba4e553904b6e5ae788ab64924b6fb7bb5d46feac4cfa9f3aebfec62d225fb7aefe2dcaf67ed6416603e5dadf75c4d413941eb316929ac255f90a2e8a3d5aba8fb704bec5405318aca1ef5e07bef617f46e431d70552b4627c51a79e196dbd99c65c17aeb160e87b0fcd22d5dc11c5cff837abb04d3cbca64e143d66d5d4647c7042e623215ab95fcb5965f436b1e3f00856d7a543af323d5d3dfdf18debe26aac4f6f544e45de23ad0b398babb16e8d6c3cf497cde955fca39548fc3b12e13bc4717556d445d9dcb9f14779deb15f372899e7c5d558381ea2156b6e44adf78ae6863577e279201dbd8a34957598ac7971376f6c8383560cdea0f575f5d0f3d2567c1f5531a8ad97c19e624f524af97ac2a8888675ce62dd7ab33e43abb46e8356ccbacc269505125f65ef38ae4606f3988ca2915599b62e935519eb96bb224559a228a594925297225a044a2ba3c27d5a5ebaba2ed7f542d771f8650d5637f390ca8f0e4387454634242d4a137a3c454557d7c5757137ad8beb12add1635e994a5316c533a297154361b236ba1b8da845eb93123589320623d4218aa20e217465b81a4b08566d09a3dd9b960504565d977e652d14f549cd2afdcca0eee6c036547565b4a328993932d826838f775ddc186cf31ebc1f7ca66bca15b6ca4e59a0a5c27cf8a208603412156845b8b7e6455f15c89060d2e6b45b4c05eb6112ace26a588649716e3feab13acc64065b5259c5dd584eb81b8b36ae712fa3f9164b81c1276112df7d092631d1c3365556af9e24ee0689e95607d8863aff8b3078b9980a56db96e6e91d7073887c875f2027afabbc3bcca2bca432cd3a40fbc324fe14ccbd02dc01693947adc4ab2d37052e7eba057901d43dba7de10634b4649b2b63f811431ada9ade655956bbac5bd525049b0e279c88c4e65bd7251b6657e0771a81d4adec8a7c4545b972b278b7e6906704f62bf21e6fc18c3f3153d88fd210e1e6431141a95bb749249e69e5c7e3304fa4ef2f838fb06143076360b525b0760531b20455814aef1987931d26c25f2a5f2bc235840d1bdb38e122eecb9735c2c966dc6d1669fb5a11ce6d1a44b2ba45ebca27dfab8a5ad4a23cd5e12595523e298b54bb16dffabe657acd22554b6bee4ce7b62bbf5cc1ecddb22aba5578a7ac11d7d9871d15d1ca7c133aa45711492b9aebef9694f2cb7ba6d6d6a5d2d6a7cc9a3b22f84af4a468479e87a5940f4e1dabaaaaaaaa2e48f7158c0f65f35466ed569fbea7aa09ca4b492d1ef9ebd77e92d7e1adef944ac5993dae89b4529773a73acf3c727555d1fac4b2acc7a963495955b0ab6afa5e10b6ccaa4fcbdeebd665653b1611ebe2f32d9a51b4be9eab27ba53160884f01146d85e69a370c9722219ec1b0fab66a2ac6e8bde79ea5c71d8e1f0a3862afa82ef02d4568f6e5d976561d7e2b8b9d7b19d7ebd3647e77e9f179cd89c934eefbdf6cc4c23a2996df60416bab063134248ab88ce6a16a91ace5373c76adb7abecd79ae824d9d09b326b3eb33eee6881aa28fa6683215701e870fadf94974aed2b0ca7455fd7155d1d1be7a55654fb89b2034e437639aead7b11fe16e92b81abe8dcfd0993f3abfb41299dff985674871ec47551abb95517307becb79e4ea39676c5cd506954d73079e6744eb46383f2fe9b441270aa90b66ea6054088c83dada0c56d9b608b6a8ca5abf8bee83b89b991ab44a1a415a86c6d08ab548520f65d82d29baf5b52eb266dc0dcc8f70373034891647b58c2e8a17c637ee7b6af1cc8ffefd48f48be6ba3cf624eee60957c3c7acd6a54bf35e8e5e7b66ea6bec71ee8cce23a275e13c72f5e84fb89bc735a2f34f8bf854161ad15a6118f698a9835dd9c6beaa095af48a8216cd0c8abe47608b0ebb4d22565b97f254564bdda343a0d4a357c7ceb348758c4875ecd5318a1da37562d90e861d1e1b618787c7a864d25a6f7367fe12c92beb99698b320c1688bc257f86c11ad15a2e57696b2f2a6bedc96b63942d856838c19281ef5d3a1761ed99c9de8330fe65ce7ad783567c9fa0730fde65ef3dc237e39260f125dbbc478549eed5a5d2357b66c0bb8cffb2e8de974a6f178dc316cc166881b8c777cedc14ee826559ed9c31678ea70edf6ab3b55a5aa6a22bd76db65ab3acbd781261182c10e6b72cd2b47395e6a0c6e19771cc5ad3297115669b16d7c5a015000bca42101ae6d0eff6051ac04043171da4db176868415b8fbae41f56b7e511abe594525e87d8454456d1dd17688dc07e5dd3e5e72b8cd6edf9f7378b543de94e5920ef6eeeccc75bd7454d9d0bbba88c88a5c0e02b767ddea276e5e3eb57a579a9f49bb240f838dc16e8bd2f15b6d977d13b658d68bd9f3abbf4b114d852615269ba7652e936f7f10a666666e6f7debba8c43775de9f73671758cd0706abb53e65d5a7a7cbab619599791c23f579cbca76ac5fdf49c49ad6af5f54567472a59eb29eab23858f12c31ad1ba97e2d2d65e6bad0b82d5da12f5b431ba963ade4d6f59840e663102ade5a729dbe14fdf59844f8427e8de321c1777bf788315fda8f47b0eb6797f4fa6df9f0bab14a8f4cab415baa206a15368466446180414731400303020148bc52312a9ae0b3f14800dadbc565c1da9590ec328858c31c61844400000000400826900006a96d4a356aab466cacec1cb426b475eb5eaa6dc58e937597b340aea279ed2777329c41239940260d08077d6ca4246f4d2b3649b3cf07d03237a7f62a5735e873c626a79661b098935da8a18f062a7c13a651a7d3d1df5a854970452cd750c826481e8d1ca46f407e7f213b71904abc51bcab47864b40ca3e909b3e535e819fec3940f5c55c8bc930f669fb843097545bc3d9da8501417a2603d1aa05c42d99926dc0460ab5b6a3d8de5c1abe52fe44c465aa89687ab38c9d7d6e962254ec3ed3b539e482475285296c1a49a3a7a7af9329d8e860d0c917f519b6c1a09bf1e5ad8bb3816db6e635d35cd286f49a6bfaf936710f4cbff0f98e6322f4dc2bf8195099ca8f634b181e4c19b49b22bf39f61bc8e05b0ce29a30d01f648ac0e68148c02bfa7180ed9084d40fd50406b2259ee4636ae8149ebb98cc4e2e0463756231b397644739468dc466874e3dd483734e758af724d1b62b15182c5db8dbbbe7bf9575a91f3f4d4a84a4165d89163bac8e101a5f471899c29147b39ab1a0721e3e475b92be2109a5497370bb4bb76a6fb093595eb9222a3b70b470a9b35affe7db0a36beec020363f71d14a467dae684d76c586add5b16d3642d4463d5389f15b1aaa6d31c2f724d20e6bb398575c16f4cc3499568d9f21b8d9b27fe173d4b0770568404fbba83ae79ef476e0575f495d9cef3c534f4aa6c37c8dd9c02f1c1da906920cffe88e053da93e4e69526ff9d2e749984774ba6e06764abb5b200f9c47f45b9ad18d8eeb49f11887776f7b86fd41eb95ac5f708b15119d0966a96acc4b481dbb1986732ac170e1abd403842d7159e2892dd4eee1b2b44661e5c038d7de484073e810c38171eae14d00f491d5018becba07b09f4ae2b3f48a6c7a3c02b7a207d1474c8a6138d551f8e4a0ceb864e43be8f93a6f6e1a8493ce25eee5a6e15de9742b4138ee6f6d6628a54c5cca4dfdfed4de72e85a7213402ca78d61956cc4ac10b39588bd41b45f2844a1e6fd353b2cd2bd7e288bc51f9d387c6c2370174bc3cc10c977d1a7245eff5fb52393bb0a5142729b4e4f86e11b9ffb4b405cf22c18e48c96abfc570ed0df252521a0090ab0e1314fc782317588b02593b55387ed57079393e5bf785d2e5fd343ee5212b2a7be5bee325a79b9b48eb1afaa453c18c882e79638a64803e41285142950b9c0a1234d651f99746990a2c0faf0f19f0e893312a5507239844de9b758e4b0217cfb6c0cc393ecb33544b3c95f7231197e8e5d7ade8c9aa690fbbad7a6584866148bdb795c8a98cfad7815146de5834c42762a232d967879d7e63f2aac90803e21277a7163d8564fc44541f96e618c3e8f697b20df8c7757da181c3839c3b9423f59bf85a565a8c371e1dac3f72dd01de6780f8429aab12b33641fa87b71c44d5214ec78cb928ca206441475c01b1b5c9ff5e6186ef8a86d4c6a839174c9bd4054a9a187315578d92215baf907ea2dddfbb4f3ac7a207a79f86d635ffe414737cd973f6e99c65611f351117222ff8c31f9ea11fee1ff47b9fc3d617c17b218fc43b640bf152dbf5690635972f25c77be8fef387c924a924d23b4bc01a9ff3efcad0fb8e9a810137c3de9dc629f8023d65151419434c3749d584565e31d5dfba751d324046e1dc0821273dce9359d66263d6167feaed7062055dfc119dcde54a6ed9ccb045e3598bbb7bc7e36eae223907e255706132cab50341ca491d68655ecc163e0ba5d28301153f1de7e79310c159db1c555ab8f9c93e192a8c0dde506a6c508be18c6a281f684fdd382b90a862f9d71ac8f52e711555accadb0c55d7ee893e336a36fb4ad43c5b1e62c367b900bd9e5cda23e8ebc68855a9ec8aba94bc856e813460d86bd204c2f232170bf7021c859fd4bc6519b8b6a2181f90a88ae822a05931cf121204ce44c4868567c3e70dadcf7e4a06733c59824cf6beb2be3ebfb7298e9eb9a0303adf4bfe819e19cc96bc307ad21346aec1d80b406672a2c77edbbaaadbfc8103d579d519c43d582cd88ea50eb4ea329a2737a2d8e1961c451937420e1b0e7c2c2c7c1a0b85b66f0de19707c4464c93c04848700f8d41ad0c7716926f861e0d3fbac439fe17d75f4b9e462c1970d3bdc2f4233f19d618acfdd53f8ed340f8ef990f81019d7d027275ce1c0b465cfcfb89079e5becf0ad505c3db3e8d88228e723a0618204f8b491f83aea88d1ef1e6960d52da7210ae790cbe4b1727ebcef05013a4e929ddcea12e6da310c60e70c12bf333144e24ea7183798700eedd406c3e2f7ee9534d4e9879944ed19e96610b8ba55891e02f2eb2eec505b79ccbc82ddcc42e4e1f71e2bd65ac81c0ba898ea894c600f1b2efc758304adf39792163dfff2d0f619049d74fa906eda592c80beedf6f0661ffe1a33da6ef3ad2ca71351915e89a06c86c2a9317e769011fedd6e39c514bd4a8a79618ed08085fb007764d73819bef6ed0267b28b1b92d416a9652561a30d55c9798328b555298a198ce9a87db9a0af1190470193bd096b9afdec73f7f30c705e3927893641599012dd3e0e26bd7d6c8875d63c011d9fccc5a69f155ba67a44f90b22ed3b9055249add0191027744e90abd9f8e9c64cc0b2bdcf0b413f75f5854c900886a45e092f5c94faa038e9b6e846dccfb3128a99137194716f3169694f0805cc6188ec9dff3ac6fe082ba65cc13f4da2ca0e2496a528c724d40c639ab754ad661ec93c10bc2569eae122f9fc4ced75c488bba34fcef8155e62b36d255c928e9c1a87f14fce1d4d022a6b85fec1e760494e481de6626c481418b2e3de957373863731ff271b0cfb16632222f45db9cbfe246f25b9a0d122f4e73660324fab39eedc7e620079f50125624514250ab7780c418f4111258a1f10124101a91681cd1a15fd636f1e6cb21e156a20c6e76080427d5f9582381887bb257330d34feefa5e321d44c0a785cb9ed3680a55df47dc93c4a4d3cfe2347c7add0609cc403ea57aed5a1c53290ec974018609b46d911f2205b2cbf013097926af9a7b70c412aec29dc235f5dec4caa7ed932a5694ed57906219e3da136f7b500eaab7463bc9487b94cd1bcec9c9c8f480425c3c6136b41641477ef32ca48cb98eaffdcd05e2c567a1dd60e200b363460a0bd358c8f226180715e75dd22a8d616897c0630b94a113cbdf3c20e3d92efefad6775d88db819d730b46f5f40662e62a866480abdfc4aa2a3e5086659fe4c8bed818fdde8cc383e67833dd6250988e69b6aa2a8fc1044389fc469b62760aacc98a5b1934d93fac8e56d901377cb12100f9fd440cf7581dc36caf948f9c1cc4a175eb5b3ff55167bc4214ccedfa662be19e2530845bb4a207ca945c91d45bcfb054df0ccf9d58fb1de25e4deac231cc7a85964252ef1fa7c6605f0ed922f6eab610045b8d3ca63b6360e2ca15f960891bc949734a515d013b00c92ec6babfd51bf917196868cbe8ea5b70e5d2ce6e0d36b5b0178cea1b1186de775f6187448ed9431416ab04831c1112ae956cbc400654c1d7d4e01e653bf6330daa4f37e35380076d33a85cfb80ace410f09ebf7450d3404f27c0e203f08e2609590c45457223433529e2cd4840dd0e85e4980c68bc3fb840b7db10c087e25dcd8d4f871a5f9af585b2c01b54c73073c3e166a84c3ad0ea9ead2d49687642ba67432f565278e8aebdd03ae51eb8f97420499e58bdc41119035c548eb2450908451b7cf1949282f4b5b258c0edc6b88fef8ae6cdaa037ee0d82c7508d05a5ed4707105d46650bc7921cdc2e0c53387ef1017d1bfc60218c0f4a0a2eb4633eb75c77f1564cde2067ee2e81547c8710ac886fc0a9f795f9c5bc56c190d4ee744cdf8657bca4a06718238e024f283ee79530cb59c2eefcd133adbc7c328cee5b7f73f7a94579b514a49118b23afc389412ed5573c0734d2bc48052ad921c97890610f92eedc3370f9d380a9131c94ff8502dd2b3d330a2b9d1210665840fa798289706cb70757accb65a0174f3f23d4567501da3a36e6eaec947106c5643ba0cf0e366ef4dd8e36aca8aaaa829dd7e16a72f5854a1851cc96fae84d99f38e8d837112265d08b586ba26db6f77b946a43aa10bdacc356307da248d1b665f7a402fe1d9cd6cd491938a694903b50f072ae47e5aabca5cef1afe76412e8755bed6cbc6dd653ca0bfbfbbe0ba6f1acaa58f815d0cc6fc62c912ce947a2b30fcb4afa9e9bedf71bd528b3af994261a9a48e1f30a42fe6ef960059cda9f0f7a293cf74cd1f48d58c940ecd7cb6dc20079e89baa09eaf49757323dc53cadc3d83dfa4b32ae4530deb6a357680f103cad0e141762c598c199bdbc299ca4eb0fcccab7aadab24e0a5d140d8d2c999b588680c775c3725a78c92cb4526b049ca81c563170b4a6e550ff6d106d66218127a8d65020b92368dce149171228fa751ccd79cb7065003c946a43a855d86fa14630dc6e86fa8151b2a935b605ff13655677c67cd8296ad6bf9d1e2c3790de741661c20d1139eff03a12af221cce7fcb2f1b9abe32b0a4b2a7693ab17c14808e87cf01e172999e4ef748cfa978cd493822ff5630aca26ba86ca0ed3b142b550b14b13f6e0c409af535b7fac12f9cf1057c599d0e635d9e045c0938b0ad97dc02a97d5d9bdb729cb6620edb4b1807bee8ca1a5bb7fc7c99322a1ac3ca337a27bbbbc441ebe9a394992038045023e8c8d58fdbaf24f6124f593aa5fbb6e418a87b61210a83dddf6cfbcb97da2a43823a67112c9e03c55795081e9bbaaa57feb485565be5bc94faf8f17818564b8f1325bd59b12756d66e24670506c84d77ade6165287794dfc9b429641c48df296c6bf2e5c16fb2dd96be62fee4ff3b299f12917a3eff888d01a7000b6be6e9eb5f1c2f593a091270ed0dcfea3f77752322f367acfd53ed12620447cb3eb504f6c4db86de008053f582b1901e7e2fcc27ec42291b67988e1eaccd2fc60bd389e84d9097741c1f67f73d64fdf1ac48a34e944a94203eaaf25686eddc95cfdfb1d5962b0ae4554178d3d68674579a4e9cd24c8e9edfdba3ef092b194b198b26978be3f09418b630d2f188f7c31b4e1b1bae3716f9097f85d24d0a1204613e879f659390358139f5bcaa0d9f2b71b96329a80a88cbeb853795368a98f1b9aee7369aa05442c2adab2388cbe7439d16e109fc208ecd89e7346275fd2711e1142821c601f30ee7dcf739015a7965bfe3a323d9de5b20add848fa8a441a614df50e7a7606e6b8375f0cdb4419a54e1584d929fa47531991d26ed31827ad4a23f5125af445d47fd202ef3d46060dbe22e4f4514562831ef58057f4819d9ab19639d4e727a0acac1432a60bc579aad293cc744080fcc15ad2e1883d453932ad1482f17968095fa4107e39b82b4b0393fc226fc2eeaffcb993a01097e9889949020a8e4588f029c2e660ccd521089dbb496b27e4b398aed838809a6b26351ce1928acf6b084b3a1613cdb8bb715b64a6e89f326fa856203bacc24641291092c12465cf41b243b3a0f7146278cb01f882f002f88f2003ff4c81e921c3ba498ee987043f35b6b1fefaeb14a2a7160bae6522aa9559197dd07e4d780ddda85101abc1f2303ab6c6425f1a0173bef388bfd851971bb43da7db51e16c1e008d1dfcc46fed97e42e1b39380d81b742a16f3e02d296839203cb53030675235eabb6a1a8e0ffd9f6eb3e181218ca842fe4852cd9817eb0e31415c0152bc8c5d2417ee50987c7fa1ec98a294a851e728d9b14728bb421cb35e83a55f6684ca381f249b15a21288061e3be4d1684546dcaa8216117f456fee71d5f013e2bdd1a29c004300c5108b45476eca70566e0f50d44ae4c3e92388cd1b81b5cbfb6fa99b0451704eddbcb98266ae20b8f0af16b8fb7a480fa6f51667aa5932b94c50dac511985c02b8c05fa0719835c9811e56427f3c82aac14d868c4f1edfb681738a10ee9aa205e3dc8999827639b991c7941ff9542d2321192febfd94482a4a98f318f8cb3f3ecfab542c8db791b87809a42d0ad4e17a899e7920ccfd378874d3a6d2595d972a9a6653df383a223f7939c49d297313a3a3554c9de8771af7bd86781b4307a3cf9d5810b84fcf048513c3279c11b0e8efde5f23d5773df1a0ed8b6a6ef8426de9e034a528aeb366a984a8e19e6408c3e84324aaf97a50559bee056511ef597bd3d2966c31e6ea5e3f367909675fc68221fa7ecebf41ece1641c8ab93c6526884218333869231b04bfdf6eb670eacd596c4f889448cd0cbbe9a37b8e88810b92c1fbaf14b4311f2d6e7ef622646800d077a41090263504f6029952198aaaf074c6815258830e15ebd783340c4b36bd0b64092ff0dc6ac592a5e59a8e98bdc87d0a07c709ca17906a208e246192b403da7f44bb2b2f366225baa9d86f62fbd7167785add5ea88fc53e27895725e5b97e52204abc2eb060c0f329d3c96a93aa870d04b3576078cfa06ca35b2c82da3459aa16ecb90d2017743e21780774ff3d3c20ba8cbd2f97cad7378b9902b07c1765114bbe7dd2bdcc9b9614624ee9052d02454fb0c1a3aea581967a1ecb3600cc819ebecfe6225e4ef3e3387ce9ad703450ee8b8fac04c9cf285e9c63a01b53b66c7e869151ac725921d304f3ea3b8a363b4f07859e9d526f58b7171f961f83ca5e4aa704ba99e425a345a1e0cbca0201cc48b1168c5f528c6db3ab2b67f87d3636b0653dd8e81d37cb926f415809d015b1b848901bfac452e3d906cee89083a5f24215e24d2f035e26f7b8b2ca19a9b45b31cce44ab0a653d7e4064d27b2c757f9480af32ee57c163620cf7de052a786649d518a6aa25f614014649c8529b68e8332acf40d69c907c660f5ca7e92fdf6ee24387f3c0a55f28e7fc09c060e7cc3e7ef74f71c64b9c6bcd1337f3f447c4cdf9e69bca2ef8bc317580e1cf2397231d6e3defda3dd0e529303a5c5c9171681d605d5f240f905861057e78ad8e14afa803c8b1a04259a08aab9503b391f8b355147573e72387905222368f9787c3eaed217802ae4a781c58c94344be762ac7ac395b78f0880344538c9a48c3a0445e22749b8b6e45be4ee4535559764b65ec9e53eb4958b544fd476b42bf6ecd8335f775699c56e4fcaf19dc3da01af06731748e8bca53454e763c3a2226fe692a328d6c90698e8b4a27223ddc39453617636fbb2407529c2e90b891ade3b7ded7a3fd018fe9eb71eb6b5ae33f2e9473a14f66e001f4eba217e67b12e5ded58f05c02d968598a4e941100fac923dcf7b53f35ae18804a33ad5904cd8bb048d012df8f85f34572b23f84774bdc0a167a615e1c23a52604ef6e194ced065ab9f4585c4e9ec1f37401c00101089a94222ab56739304e8bd6062a9e73f9959072b021d5c5ae37f385b0525e7e4c47d805a69289113381b17132ee1ad3df684af2d913ec97a60bfd1edf341061ac54bf72367cfcb5e79554cea307fff7ef806dae9ffc6c2cd822083ba900b1284751875234dd5417468e3cd382e61785f82a5546083ab14db83d93a2ac8c5b916eb18498712cfd679b36723661a55aa83dee7cd0f75921e7841018ea0dcbceb70339098d7fe6116c7f5d3176f8bb3f075e55031d1803cd2a23ece609d7df1a82517247d4f2eaf981114a22ddc0f2e75af036447a46513465de8253cc8adc2a5dacb55f956830f7684d5c72a396e0ed30497a7c5e2c092b44731c2464a4f2bb1b24fff1d4031738896c635236024f5dca41f5aa1728c1298c1eb5572d3f2021fa2116d6450cc8787515311fa6638b78bd81c73312d82102e8a45ab915c0f0b03ea8f44dc7fc5f582b32430b21263171d39e62dd79b678d8b18223b26b462b45dc697d60617940b4fb7109cdd4ca16467a76dcec7e3fba9b2511e0fed65a80a14f43f51dd3529a078d12d0ecfd6b8011b740f9f594a36dca324567c624f69e1894d459917ee919cc2065511935dc86e7af9778ee23addbf17be6ec91e51d653786502264ba9b2dd171e529bdbea9e4313947575deb9b8479fa115790bf47e3e5d5b5621efbdf1714f90fd4196d2496545c985ee8dcc73dd6058a2a78f14bb17f32fcf0318cb7c4f8185707fd611d176b279b67900c0e823501ee22e22fd148090e6c5b4a85c69d1df9f16883e17eafc686adef52b4d034ef05ba64075f121a85ba65bccd0e486a961830a2ac1ec482d0467fa46494c3efc84ca825836fbd9d650ab4c0dd981fd04c8ee96275f40f40a07a919e754041ad77701e8894c900cbd58a3289356f4b9002694b7ded3df3f7266869a76a75d3102c438813ff48a447110b5140c7836a3e999196d30334c25b3d9b7e683dd50f566461e03fc8775c34f48c34efabc49643cb570e9745e684878429b4142e5d527ea2d9f07c8bca02c2e23d0ad48b24ff4f568274fa72a0ec74b7ed951a0391f5c7b09f5bdf48a08551ffc84d454361a9a318a36774d9b8a5eba5fa53aec052140552a571452fa872713ea45634ad2585b959c1009a54fa361b14048f2d4c9eab754776a233f061aa99ce7078bca63b6a847279f5b0502aae02d86957d59cd1b72040119a2676e1136d5dde981aff904082b99806e174c7af50e365b94ca52c6601e088e1d5223a91e58ff93835482c04b961c440d7ea1cd57891487852164c60781b106a4f85488bf03636a29a9f50db895d0b5056fa54d2251c533621274ff155bb0114cc4788caa8facc5d5df1be3d294a9a24ba18899219d1a2caea30dfb7ce666ce1506f37ec287bd78933afd72a137527e393af9a4202745500486b31510677805540b0d5429ccacf964ca303ea784cae802cec243a3b0cca4981fd4420a1746ab5954d4cfb42f85c2627cb9218b2738ab5455155c7814e8b77539d7cef5cc5f2f8430437502316cf0d1622acef66faeed50c441f7464456756437a224f4a41b30d9fbd210e8aef8d89a00e2844ffc90b7bf0b53dbf56f9fcd35ca8453a61b574f96c11c728ff4ed868fbeba451395aafe44db9b6d821c97e1ccc4e3c94b81fa2e270817155859c44669f11e9845f820c2bd3ca11d0288e65b30318114a5ebaa2376c3669b67831468cc4738db4bae79380cc8ddb492e38cc4c112d7eb8bb22ca4e7cbbda074df55e10939f50eee9414c27bd4c1edc2c06dd86e23e440b8d2859e20c5a97b4fec4e8201a3b5ac826e3e6be86f54281a24028593c60bfaa5c237b74e9a2d2357f142aa12880aa5a732b77330921133a30af2664444c10d80e19d58e8780ce6ecc7609f7e24f02716c699651887c2b63d6e3af23d5b8a85b40bdb522e3084e56797044f78620ab744bb000304c3743d84376dce45b84dd9542cae5856ad206695b1a3354a9c2541b20afd985f85fca7afd3d6a12a76afd2c447a594b17fccbb0c4cf729b3c5d8b1c86823e54e2bffd932a0599274254ec8c33efeabaaba1db0a183e0cd3bee2ca8f7208c8361b9ec27466f660f27325296075eb43ec92a9f9dfb982b5da70b57ac8d44ea834b48447d389bf19f27b4177c956052cecd8f345be61f9c3e928bef6a66cc56a8f83dcd022206ffcb84dc7fcfa91afcc04590e5c1659cb7ee43c176b0cf237377ea5d9ebbc653fa2950e7a0a8cd6148e76008a1a2377f3e81d9e6b987e8781c4f8462855d4a5fb99a1ebc0c8d292b651664afa647c95f889c02fe91e5834b9e4feb6609db901c558b27ced20876d1eef3c9ec8fa87c424599c6b112329986025734d50ca45f2e82cb386f89cef1c10622b53465016a563b10f0a0de7d2d27e97b5a9628a1f0206b7536003a44cda11c0cf297295507482eb6cdae321b63de3e77313f95c565deb24ab979f8684d7aafa007d7b33e4e5a3c723e2e47f1509ad0959fb50a8c861d472ca12c54cdea9c82db71d9c24662bad7f2c5c75c2216abe87a91d275b1e38e6679797761d652fdfe8f3320f601a93c926303878c5712cf6cf57c918d2b45088c2a872d3e4cdb3b1999257f8de84fec269d798b3f72171eb71c25a170484174533ffb360a3149a8bf1a19c30a094a410e542bd3d415aa974641d2d3afc17a48a56f1538f30822d72e818cf44bbae67440660bc7df73466e75d4753b8cbc9182269185989730556d0021c7e1701e90791ad46bbec5f7af1c70654d4a5d405c1d4f8186cd2932fac3d3b4cdc098059dfe79a0ca054122b60a26bdae38a254185bfceac535553433d03bf66e23b84964a9634da6f7bfd445de5d086f72698b1778e3a0fa1c75c91188236592237ac487690bd9ae41e9908af0f1f9e54c82c2437be65e2ec7273c875a5e43bae25e7c493243cc8d28854ca59c268c653e2168cc5f0b8757a532e85949c879dd8ef4983e58562a2d725ac19780b57c37789cad3e547d9cbb8e1e87d69878f25dc204a42631f82dabc31bb17a6866220060603ea3f5f6a0dd3ec6a23f2e581cc8d41178f6bc55b9a99d29c64da0e3331723853ebd554222c047b316849f3aae63d2084ceb2c27483731c8ddbb07a0b2be199e22cd666a8d47c5040ab907b3848cd0ec46330f03b33d85f481c228e2594f0232fd38a1e27f04053746e4cf52effffbe0d0c55edc4bbfa9691b61ebd8b97bdcad4ddd9089445c701fffd138f85d0bf4fe00019a6b008f5125109942de194aabc65b8fecd0b7000773ff9080dd6b87af6e72499760e6c888e3de4d172bd4b576df66bd48213332c40927b5e132609008357c97bfb54cc2ac904fab0ea3cd78bb1f942b14c30f7a83440fc4377ab87d69fb3ee5d6fa0dd10500bbf58db307bdf68857c4016a3833e7fa9cd8ad8bbab3ef065880d8860ce1f1f2021ce28d74e1a1e65df17a386f41e9eb8edef17be9512225e5ea4e140162b044b58b0e585c2d40df5e1c5646b07693cde2911e35166bbe74ac6d59c61b8d3ef3c904cc57ca130a88c75a55f6b80eaa511dded0aaf3827896556707d43deb1f0845816b8b459ec48a1b531f75a1c40e2a1e764f32e1257a5edf8ad5bdcfe092445a32b120cc09f8b65ef0177a577c46ed641e00e933a4cbfd93f1c0f89ae4355749add9d36bcc9b0beca92af59fd31bc86bea0d42153c463c132fddd79c64903d0b9a6566d407b03d8841a2fb385b3ce944e3440bb4615868dabbd78b7abf0b467be7a1d3f6ba035503d5853388bb2479fbe4cbc2cafca06e8092d1c4de4692ad85dbe1f9ddf33c210374fbdcbf856fbf1816dd1a271ac3279f28e2dc7735c7a0c61989dd543b2d4429fea250c6700fec3f31a4696ed34be126b134b3453904df766f0e733f917286d7d245c90b46a24f9e64d07867087bb42c4fbe419ca6ba30c08a51d2d8112751f311adfd0f2610720efc10fa58981396213a3e7712172fcd4a6e56ec0f5858ce5f12082df46895a74333c56c76a16177bceeafb5271946671adac175ae46c8c3d0cc3bff20d806031b021815a97c577865158bde4c5f6d82d1c1f45397d50b3743139cccfe9e262816229f2a10fa255a1c175a79b4b8cd72070f9c2c1a30a503d95f39e2ab874f1c8c466af1151f69f29ea7a6e0bf7c68b5b678a2044f484c620a7c476c6d95775428b8b5ad9a30c4d490ddf2a678eed9f35d59ce7490416d33d14fef20f04b141ea5ce195c82001431346b33106445774a3668bf643f6a5a1b9a1ebf441e405b840803c9ccc49f32b1e7ecd974815882b024d16fd8a7c81a99515b3faf5827b33ebb3d4545831dfde7999013c47c522dd0e240fd8c0987b8d9c4a079f7ebf20253b92aefe7a398b733db4e1302b31973761a0c2c0f47ea81eebc94f81a91454ba2739c6e57dae16832c18d33236c63c44d6d7ddbc4a3db32534860ff3c1c854d4803688635a279d6db9e480e891d6b5426cc42ef40b25c9915416dc408ef0cd69f5f08af3c9e07d8999d19afc6eddb8572c328657b5226042ffe0c5f5edf195fbdc67d5bcd327e69fbb9d3a3d08adf4f3fae4fbd712e9d064602c667192ad757fa92de3185b81b12141a1f05ca42b97269e6a2b861029c57c8bb836f986a1b623c95ed3d55006260c43e52e6a25cd54b2015a0346c8fa1965109e6b03598cbb4da2a064156017d81efaee2cacaaffcad6fb58356b4b00bbcc1356b46b782d7847e8b721babd700b26be6081999495f9fee3422a6c24a15915af84690d6ecb7a04190db1cac783ed803f35fb251aeac0b5a42c6efdead070e568e3fcc437d6dade8cefeddeb6bce1c02b14d9a15863e819b7a55ad374bc2170954ed44356bac0595cd23b56fbf0d328f33ed942bdb0c9aed0dfd1c68d9b321db5ddd602766ad6e19650dc9781c2d4aa98359eaa20414b90daf572a789d72184e174cd2c80dfc393dcc6d00a023dc7088e76e4f1ab9a794f86158fb618205fa05014c4731f152211cf03ec17baf121f818667285e4197797086fed27d1177917a9bc4817c5bb14c812957299781e778608f197fa8374c182af1ccf2b708d2226049d76bc0794c8745b352ca251016d8b31faad732d83ee26b7a212058bf1750d4e5bff84c654e0638eaa87c1e4e74b33542a0c13b82ea0265c43de487c9a60ef372d5b274b47234d942795fe299b63109e9bb9902a660ad5e0480168c81e500dd022e94de154961a257956386f0328e9a6f564fd356d07bc503a260ea2739f61adf30ba50cd878ebd9dff025bb32a497c22082e9e56f6a2260cfb005253ee416aa8bfeab2a5d04ad6842b2af8dab77c345b91664ab41544bc2333de90f8235dd78f5172ec45811341d6c833e053e875217ccac14675eca413a2a4e4cc09fc865e4df6c425459bfd718ed51767c6a82f3d0dbb0862994c703669169e6e74644ececdacd2255624fd04291bcca85d0caf18b0cff7e73c09c2269b5ba1a3d1a45dbdf204f44003cdaa4c934ad21b0be8c1e6c21a071a28b25ffd1b98c5133a060c1a2fc15ecd578c50f705e10ff1c868137757c09ec9ff3dd3923d47c3b624e9a5aacb37ed0b0ce2bb88ce1716250218188413ede3e7972ae5031da0be9c3ecf47b0ba444d272e328ad377314d87e508f73ee7d167fd4097d27d61ea04bb2855c5014d6e53a96755439852c652a5939e028a43b0d039cf8067dcaf01825c5effd40d40f40a6daa274c6cb886c4c36555fe8b19d8ebff65593d9442181618532c4508e838332e76ae16991c355fa0ace371fb63d16b169f1df67dd4cbc1f01ae1400a9da4dd0b75b812e91935f36463cf0587fd97b41fe8a34927f863bd48d794cc44e13aeb280c4a0c49b7e7ad5e16ec3fcdd1dd2019cc61259a1fc3cb198826f106ba874050746f5c2990821eabe3ca064280e905bd23e6e2d065e726550581e444c73ab63c3ff17c2f97e2fda7fe1be5e7d144639cbafae06dc43e9f27a9c303a54319fb1c6aa5a39c94e606d940871c580c617e0b51b5485e6cbae4afe9c0a9cec402ceb79070466d61eca72e79f7ec800839a2c373369e0af2aab7273496c9e7b51667612260fe4c7fa7e3bbebec43930d097a1b793ecc6f1b9e58a7571688dc9fbb9196a097bd6783ac6aa0de647deea0493a08099de019f6f08cca84f7825ff43e4c8a83db5c68405e4aa6d5881e00113999c16ded7c7059f6068798065baaf38b90774470ee9ce1b638e513a18e07c07246390c11b974713d1a21e226664eba24a700bdd0034da30289a277397fb0cd36ebdc7ba01d72a120a3a4fd14726cb614dee1914f3e7b97dbb93e0d1d03314343fc659d4bdc52b60d71741e5328b7fbca4ae880b2a54b6b5b46ec9822c1977137d3323414f7180d31a0898a7bfbd68c12a88919730450de0f6175e5adfa41386838b1cbba0c5230926f58e0e4d28dee52e812e19b13e2491aefbd2c77d9cd8d7089df974f77328a7c453c02003f722216a4a3c1811d9afa0c2c9b78e205d27b70c070691fc0a6aacf14009917a4216c646578d00dd810a64376be6255f15601e2a83bb850c54c68963c75a4f23275f9e20b744667117ad65236729f6963ea2a281f2fa9dbd18d83bf03188bcfce9247758aa289cf7f0ec24d108edf500552d72cb5324c327e63bd36ef50435062b2cdfda610ca53d528720c7fcc2538a6a1eac232a4acfeb4ae371d2a4dd4a035a139a01a8dd2e13f0120ab9fe0b6ba00587a9bffc61ff6ae86a8747aec80bad82cc8e663ace54344fa2b31c5860bfc3a5ccf107ac3f1703be6c1827320e8b2d9f89748f9ee8e76a187d578899c0e4f606f35278461e549711f493f3eb97302502eea4ed43d7befd3bc7fe46b01ae36273a5f60667afdee0c69c4fae6c4830034e46e2dc5b02488eb6cce0f242507fac9688796ea511499afd89c683d9a24955884445e90884beba2c2ce213ebe51a88614f0dd498ae67f2b1444adc2c738047a85a58a8b96a557f89bff137b7d1d1429d23c530016d2045c22b5e41576a5f55cf32dcf2a12629fc05a707360b17edfca103807c02f127d14c2c66e1fbe7bf48b97b44e0b807c35346a52004ec0ae46cd2d82f2efb2db854893fee14afb5b8dcc93c11c9fb6f590d648f7ccdb0babc2b8ad51a2734e3f500dbe300a477ea6d9c190ecaa8eacc6a874b7c64118148959f99b8e1f774b2df7c15a071bef904f55e89bcc50396cbc4d48414252e90e4ca28e970cb1dcf8277e9a848d1a39bc3a0447a627a8d26f1b02e668eb73bc5b190036aa9b4b073c24981d98a95a85455fd46498277c002507dfe75cb1cbf851e75330d9da878de35ef8903eb0b0bf9c49730fa87218083b43f4643329c101529db2e2986c868363e3f628dab40c9016a19d0832e4c952bf85eb08bc7be6ecb51697ff18ea7d40abb43adb216ead6f6ffd147cbc160379dc05bb2e0a077c8ba044444720d8bc06db03641edfdd44e80b0772ba706f67555e70fe4ad392703291e7e60c99e75f1d273f5949dffb81363fcec227514325f75b2b1aa1f8168e2f3739aae0cdfeec4739bb6afda644b9a7d533375f51dac5bd707343635577dd0bf41e5510ebf7b6f5165303ac98bd8d3ac12446089716304c4d5c8e5e872396b438de298227036fd087ceb1394db5c26cc96f2e375dc4de5d0a56fe41d7c77fc761f02331fc7606f607b3276f31d85cb35e5f55618ff2d2c0da9c9beac86d29780815bf711c2a597816b85d41958b1cc54f5f210723b869678f3635bd64f4f6745e47cb9d9e34f6cd87c1a14ec9af4e84c053b6a2c0d2bb530059fa9e1150a4c618c3aa1bdf44e51fe573bb4691e5536d302518163effbe091a9456465cfdf115e4e71988e9eeba01fa41020dfb803516a1cd447eefc89e1dc2cd302034a3292be632b699490603d71cb604d96ba9b8ae719d5f141826efc2716e9732e8e27da24d49d675222fd72c016ee235fe59bcdb0e9391f0e1b85533e34c237138fb7e2e801a529cd379251d6f8dc3c128a972aa323788c78bb1f1ec56e56b0841cd792bd74767f112c9a052dad20e8e90610893bc133a5fb65ad01bd641e24c88a754925491417c3b4aae84e801980985730dc8a08cc1469617b3f563b56b0218034f894dc0840b5c117fa077fd7f659d5f254b1bbc7a7a05d1b3137107141bafb24278c59bc3720faaf2e8de43ac647df67db58ce6872022bf4f92d821b4ba137a7dd9d30e449f26d7dc982fe1b5a58a1621d8ca0d2fab016880acbc5d62513781bd9a8c0eef7dc2682e3d2bed92884f1716b93c21458340523b41b866084ab3ba3b7c653cff2e44a7b14c2e5976e6f2f68e0f2ea19ebd153d27135d29690c912113898f5c006fd3fa920658b1279c379aa2a15d7bcc1d2cc2981045e3e02645af0cec4060a73feb48375d0b983915e2795eeb720139f250424a252c6a3c90c100eac4ac58c5fe55a29fdfae5bd0f636cb0dc8cb0584fe22569b4054db5a87505cd002589ce53526887f18e0b4b837d877e933ace7164e3cff1e65def311895b776c4e137fe38dd9601777103fdf02bacfbbb7bc424e1b90ab5295aa248b216a86fba3a0763e03bda0c5d578dfeb0c8121790e81f25aece819c4ade8f2a27fdf890d55a6d4cde94fdcb80ce72d6f1544eb08077328cccf582aaa088e15113d0a104b8e88b2b6a624d3c30934f40973ad924656d18bf2195517b49cf2c6d8c3e214c59816be16e818b8706d729293c12c7e9fca2b728036bac57a1d5ae8c01d0046bbe19f12780117578737c1173ae1972240d5cb6b2383a6c866fc270fde2c257cb91e502b91f604d3d55a75dccae33950e13fd91bd66d32e6111346917aca48215e858c726b6fd4a57287bad766b97bfcd634f6cd1e2b9731a6625fa1bb38de7daee91acf2b874ee56cab629de503f40e65580fa7e8e282b8838d37b103fd90c37793342e4f1402d5a27b68052aae8d9ac3fc21d33e74137ea9e0fd78c280bff0b991302b62af57cee014d8f041747030d5baea572629d2418292b273641ea8143c472fe4fc01c53704fdf65b245d01d6f52ec49941e52c5980b4bbd82aab8364dc2592814910b2003ab4a1b93ebb32c77fda7fdc23a63296e918285efe09d5051b62d2deff3d6fb974fe332301c80c435164a0caf147c9a997556c86d0db62b60db4b22f686d7774622bc1f27274965e72d5d9c78b6aa9162948498ad3b306ad10374ecac44575b52e4417ec7e92e8a11e3ad60176b5985df128b6c6fec42017be2e71883ba8ee21cbbfca6a0c06c9583061a1f15c924854925304e577a64077a5b8c0547721299699a6942be082b841ca28cb0eb32466b13971135d169ba05e27e19b31809e3c771cbac1e194235573aada4ec836d36abcf18791dbe0439d35a5996f801574302c509d901c3b1c044e97c658ef8620424f26e31661cfbeab1423505b7f8bf16f28cc4a833c9fe8690822ee991c0ba785a015a8699ea7038f916fb01e4d4ff48f863fabdf5c0f36a57279d5b4458069b830bac0ded08882959ded38efcf2218472b9e8e2e4799b53c6f9203cdd0eb51d01160c4e30e98e9cde25ebe6dca8fbb2ccdaa4335cc8a4a8c2a92a82d625d7073bba56b5ead5e6a8f743d0ad348fb10aac04827ea832b3e507bfa3fb63865ccc0c1d3fa0c40976107961435c6d1084c2a2104f34e51a56a88c21f6aabe24ad513a931844535f34bc4388b18e30fa85220c3478ee36cfbd10d451f77197ad28f3873bf28d97fc7ed612298b00fca45299a2c1ac43f04868a7087b0dee53ad9c0f4ee6e56fad3df3e1504c419e350065598d5e44a68ced7b27fa8deeb654d3e6dcaeee949850a894eb1c24f6d774b51cfc5ec6ccdf5da1adfc1c7f013d4ef9c8e32bac304f0a9c10d645e90235c8648c3c4b5bb4df7bccf92dfcfd7865ca29b0d7ee9dad6558d7c4d2e68e3f8ddced8add9442863db62d6b56c16d6a816de6789d7bd45f99433e48d3ea1923858f0b5800e9eae0f7f762a214b43820135382e2e7020a6d061f38bee7b3daba044fadf3d3e9a5ca9c1489dc00eec504cd608a83f48502ccff50cdfd382cb3f47403c32de9b3fc65aeaee32804bd4ceee23637a3c5e34cceb73398465e42de173890d56912183403d2b960639d8059079ec0dadefb8da4fc49e6888777751cc32f04e831d4acf38bcfb15ea13d1f1fec6314e40ee29caa174adf61211b1e8aa077f34fc53f74edb3a1320e583fa89c8b2e3f10811daba080a7d833853347d66b778c4bb50e7697967fd77576d82cb54e0ea67131553ee966933d4db6c267ae3a14ca0d268e88abb2dbf9af547817b136daa543609524c61024125744a72d22de84172782555b0fc7ddaca4e1efc96e432cc1ff43a5fdc783762e12144236ff3e08ded0328ec4d90e7e509f56ce31a2ccf5b4a8f1996952bbc1285280f7268e339d7444b0977285951351e428b040cf749ba1c0008c8a8f4995cb408548acb29f0f2672523ea2ae9895c43e8e6da33e428886445e8cbfbbc55e703a52b8af3d3f9d6aa9d24deb52fd4912fdda2b199bc4e2c25131780ae74a46c6c80dafcffa9097868eb42ee7ccc2a3c5c6714420d347c20f8c3cbaf58fb22bef8aa992f9cd8c433b176ce5f726c608480cdbd3574e0a8a0f3ff30d53df857b50d27bae11f916332a58cf5fb684668f8b364d524b31714cc1e50f29b4638e43ce0a2ea180d2c66cf94582f63d2209c95c8c033262526cc34795bec1091d550a242ae726862197edc2248edd53af17e2ecda67ac9aef10109662e33a88b78ea44c7e28f7779341da120bafb111d6722076e0636e1d92ddf86fe8c6eea4625f4173dd4410997a26e37d4caea77e1b53606828b36b914cff9b4ba407bad5f3d761e84f1b8e96af0a7595b8a97a28e2eff57bcd5e41ef6d1505f7d57ceacdcfd01f777f3edc810a6a722ce5e568dadddbe0138aa67e9c3bf292f01cfd61f057bfd7172da48d751d02dd04f892f15541e6956443d844538d523dab4cbde8e63c99f3de15b67a9ed1d074629cc7b5b870d8fa591c44f657dc343bb92b6c335b130d2853cb915c84fb9be82930103606db2659bdd0fd8f8cdc5c18e2a5d78e3718db37da5ba0aa145810ad90285836c81436cfbffc5e18380e650125c810ec75aa5a370d543a77df1db86824bce93820708e9113d499c18a237b5c36425574b6df5cfbd8b1c64e99be44344b7432e7f48a49555e0c961b148ae4e2f165137ff07c481d3a419321d4427a0e96dc27d6e560941f82a8d769fba2116ab734a0109c7f303e74a0f14b7cfda0989193b87ff36c8848b870219703c792a9d73babb6ce5a9c304b7c5f621d724aeafb51d89bf574440b3fe79f8db1fc9e40fa6cfb8550458a2c0d040fc469f622540176fded1f7bf4ae02481b002cd577e074d1d19ac002adf30a2337c55c99f9566e4a000a76ba529a8f688b1af0f7c69a99bf0f0e78589e50220a805ed7df24f409093984b93668a7eeedcc768fe244fbb7dc1c9b327ff337d049b99ff514485c4ae2245f18ee173833d0cfcded5248ccd9e940534e2e194bb06df04b410e255945f4c0269d01ded1d3aa9f380dc0cbef4c46c5bfe557a94d9312816aa5a1306a1098e45d467a4904ac489dca48ceec4f4a8f0eca538faa01ea7370d0037564b039c2a9eb5ea408a3893d789fcd448dd191fa8899479baa52770514f25d1450d3164494c72a7601609fc6ec50170da54665b00d3c1e6fbb11860b652b989b28479c7ae92e684a170859aa21034ba90282b835e754764c64b027030d7aef4dc9b6ee3b8e38c659dc1e4558d64d9adc14913cccd75f582a384143e5644034b7729bdf8f0ddd74d762d3ba06c83b3ab1165dd9822a8cb2242d8c8779c0098ab072905203f51147810af499d5d9657cee82cf2aed98b3c424823a9f21f2ba556be1d53a41d3bcad3b2ab7f212e1a68e98aa203bb4467e7041a8ce0d62f3d5c770ffbda6aa20e0c4e2e7850257f036e660513390fc5dc86c74f0a09994e68ef8285e4d316f4b71c889839aa24e3c4868973a0dad2343d515ab095dd3cb51e21c73291c7f05709816836ffbfca6ec4393f6372054df1b126923ba6377f763a16baa712aa07102a93079a423b84ac0406b17ed44d48a4b2a6c602028c890b048338a1257b28a41c83c375a61c27bb759a86af0357b61053c05fa8520412ba1a5c1d227dd90bdf2517e4cf9f5049ce97ef87939e96045f70a932ce3919e128e9d3034700d2cd23720ca695720be02899f2bd4e2f8ff7caeae2d1e4d6e7806d8e2f60da37996707f5c7768fb1810f4edd39914ae3ec636dcb13a06794e51b20da0a92632985633690e2d0602be05b412204aa7c147a60f21e03d35f20e1f5e300303424243fc02b127eec7ed5a66d921657b90eab54686acc519d61d3017fb5701256677142930644af441f6a0cebb384360db9db03487626f99296be5a52b2849b7cac394bfe14832236620abc953177b3443d8bf7a10d75402443a2f4306e8c7c2543e673d3c648907d059a333c613d04d0d94aa06613006dc6661134b3b39cb16488fb6d3b0bf1316178b79cc7e6bd281a8ce331137f6c9310143a2a000faead174225ad865d880fbd1dc3eb682fe1d1dedc2caa67a9a21a7e91b09d9a4cc76c61765eca04c92bf1d13f26098a00f5e29c03440c00ab8faeddc66d51ca9216093e67ee49f44b352cac68bc3ced8ea49994c370a14898cbc40b3da926785d2016905da472442a400b2a27deceb5a414960e772a4a52f738526edb7c4a56911dc666f351e9380c77064e0ec2ac13410062885fcb2d22def92c3c00e25498181168cbbe68fd90ce83aa19c0bef16c0f1e7ed4c6267ff232df8822bada17c9578a3b170c798062c10517a52285752fda92a4096e2a46244d0535fede2b624e1454884a7371b2258098c76907c95aeb943e9e57efde59f4151b764498bea0e8a65b6699e00a102c7df8d2acc849fa1a0cb3f4a3c2e88cd7dad010535fe9fd24406dc1c641614f1d98d053673bf97cc620a1808cde30f7867150a3438566a5f349efca77798eea679b5d3aff8fb8cbbf9d510530cc882b4a43fe7913dcae6162a38830673b4b040567f1b131d7df432fcbc6b6b21c5665cbc890a7d4009cfd1b906fa67ab334cb072572a3c72f6acce05a398f1fbf446e60150e27f1b296d2602bc94c14993412881a1971e765e43932406d23427c1b6b715c7e3090cadfe5de374c168d16bc7f958fae89fb40ca785a4e9a410e59c5ee84ce08f0340146592b213896b2d330c18a811813485c5e13f0c38c8c6a3489850bdc9a288dead10bca0fa9550f4177545004bf7da99f6132f30304823d784299ed89ed1f25fcc55370448c65592e3c7b12259fedb5a1bc80b03da3c642719d4626af135086d34fa3703ab6ed1e03a6ba58ff3904234e9f04d037f744c51d7b4f9cc491a454005122e6902e272dc0f45ff3eba4b4287f58b196148305fd43fbe906fce2add3a1acc7867e8391817984ea7800f95a39ca07fb69bceebb28a79926d191528b9bbae7908e084740348cc7af973177d14a8599358d37f50174811d89e41ac86cb313188cf97b05363ffbc8ab35811413736b8f9fd09c3254997d2f84552da94a67c75ef417bd1656c17d3036f344d59ef5aabdc876e1dc436a378da250ac90c74b1590b7ea73a13b1beb03d0f11db3162026501e04af9506ea3c2185a901bafd69cadfab6320ca5ea638b3c806ef90740497ac62ebbee600bb1bed9a3ed6a424b3df20adb5dbf37f6c3c2d4135b61859f9de5f172a6a9307db63338bc2e1eabf003a10753958d8bd217c8cc7d6f14db0dee24d9de1f3ffe490dc28edb0ee83f86d216734e6c755fbd6f13308167a8468b60211472abcce5541f1e247956fabd1095e55326527c36b4edad374316961694adc90cd303b4fc94fe153f03df6a376dda7e589c2392b2887bb3c9a6ae88b5da6b2991d792436019cc9840a9033cd52b2f046bc5293f29b7ae5a9fd3800cf318ae8baf66848435cea816d93bc26040dab0b6dc3b23e95d5a193ff417c952564b73822240b14309eca341a0cc3316cae30ece58ad6eea0ad7790a809fba8203eca9a9c902dbf3d4a539f4a404829391d84ef1ccced2049290e9fa5312477dc259a9859a8b627ce70f0edec53ce72f6bbc3f0338503a25c49d96ee8e2a84caeb08edfbddd03cafdc10f41496f917f1d3e42a8c7475fd73bc57187b78e5d644b88fd5ac81f5dd0fa8afb4788ddeff88bf7aa217e136a649e327495a253c47fa7c077538f9a07a3c84fadb107da723adf04e07d24a683950005d2e1dd0a2d1035dd0e66f14efd813a4ce3980407a4ed3c1532f7999b13278486c3d707e6bc99f0d63127c91973c207a90c87c775fa1fc3fae26cd075558989d1011af480abab9ef8999b6ce4695ce524cad0d3e2c072831692888b3b1e88f600b335462c82a2947fd007716d9abfaa599eda3c11d780b8c90da8855fcf602c2a4968a42128786aa557ea8407246601abefd0bef508d1a1e19ab594aaa58425d6422010f55e1c2e7724a1e11abe7f8f428f6550102b12e2c0847197541b60ef987783cf86c9d1a8bb1b2d79052f219295b4a52600c02cd8041f7decc0a2712d911a5999171abc32103068035922d860555a65ec4e246e4483f027253d86c4e217d3f4aec82931758a5181e2204c998bfa8aa06bfb9fd4cb1d56e1c36ccdebbd45b738f3d5ac9463c4dde31bfde4525c72f8dd6b6247beedb1de3085f7e4541d1378893858af75546cae7e8ed33f0c534965fa0fc81c185c390a3ef8f2429010e1cdf292caabbba72e1a1d1ca4520c85f00b0ba450e92607ed2e450f2de347a9e34356aa3da49b5619014c4e82cf84e3ed11d7a55647047a9c6428abafc7cb72b742898bc74669e9d1657fd2100486816160f7b417f852c598e8a8eb972b29b85771b0dbe1dbace2fbe31609d82621c7f7c1755a0eabe55a66d00bfc13b1321941a0230855f7d6430b1ebd4d71be49e74f0e22806d46bca7bb88beea91f440a3af73a2817ea8bcfbc92d099dcc5793af65e79656e0024a9dcc681a2093d610806d57065ee1e5006bce1654b1ab353bb4eff75c0fb5602e63335368891e006c38ed190f9826e03ff9b80e21a51370881bc249ce9668a5031ba702c5ef57d06e95e05ef97adc2ab8758b7f6727841daf74d47ee15902d715f26897d2aa763edfc42b49280340578a7b5efcfa720e4d00babb409978e69fb034ef6f7b3be8df0dda23f05cea2f34dd0ffc64260ce8df3b09ebd0f85309ba48acabbd3f4e95800ba48b6274a2cf5739fd659948bf0d7b4f57f3ce589771dded4b598016895c8dc35a4cc7087f2aeb5e182a572010dc477bbbb3f6005f12ceebf1a88395ab54d133f3d1bcc548978d8d7d42dddbc1f4dc2946e0171633349074835a393917dc1d7a0ffbf52b7b8a4266b4877b4a2dd723078bb38e94bdf0d5eab5ede034792a24d7a975829cd2800902733caa0014112bec6125f5573f20226d7e5a9156614949676b958ad1025e9990149542bd27a9ee2811de5efef0c7772cc75eaad6e54cec04c8b0baa950caf903fab0260ffa644f8f46acb244a6dbe02b6f0f42687752649d3f12d6a8810259075315d29552448f48387fe2f891980266a95249580d6f2aefee3900da939502795349c7fd0c501bf88095a9f12d848ea7135c6d2ced284ee2322c1d51e5a96a65024b7bac5ae5f4a0834e07620ce2b5012aaaeee8012826ab3b2267845d1ad0504676e2471aecd67df62acbba1dc154ae755853984ddbb5f872aa1800152acbea00971d3562d5715e0de70960e28973bdc1ac721f61dd85c1a3cc99c819fb78b1420ed8a17b75943998cb379a17c6440368f8f3a12745491cb133402d561859da8c65d0453e66999585021b83648960a124820ff94c10adc44527fa4f18797bd2758a74b1fc6f615c73591acdc6f6f33c6ed9f450136327c1b9a5081ea811860790ed082a1d241d6965e6c522d4db1d035746eda8548258d96518cb8ba3be6f0887293ddbb0de43f387bbd0949b5b99f382172e5100288c444ebad57c1a1b4a81154250e7a43f27d8660ad282a85fb9b8f362a263b68865574005ee06d3d32131c5901263ff286c9b82046cafc656c14e6688ec76d5e3c7b15954273ebe448acaa515e99d6851bb60814306f65309a88505e4528c1024c025cbef1b0dd450809186e7a56489829d80fbe51affda5f1d19fdd0a0907c4ffc77c6316ceb834ccde53bea85ec0620df32ccc3adc176ee74a41fa10bebe6bc22431e30c1c62505b71a311018d890521209bbcadf47c9438eaa287f7f1360f63358d2527e3c39a1ca9f32e1883c516fb3bca96ee5bdd1b61df7110abad638da6879d6948f2ea96ad7d09c5cd8d4e28dd8d29a58f5b329218a112a0e1b94745a8cb68701c98b472243f2376ef7c9c60313332fc9917865d881d79611e84c5e9abc1c92dff1387d2227f84fb7f6d44ac6222934cb8979d56c4d589643685fc9f17cc20de59c1311bc6e3e46e1b89d00529ce3ca8daf067ccc654f95cb0a7dbdac94658263dce99f7c93a7fcdb647e577a8a782dc37c7cd580cc3f9fd06b80b0a94fd668596197bb54cbe3eed5a524ca63da9abf7e878db443b59ad6de640023bc5b1fded551dbb4a1d1bbd73b308157fc6fd71b2820f3355c014cf813fcd641b3cd50d9990a49a38a120cea4ac0c3f291b4d99ce8d5e96f606f7037f21b3c6f06055172dea242fa6948a6adc5a526567c96ca2d60dc3cc6d78c6638f549cfca2f1362f56b7995445aa1a80bb41c8e904d4678f7cf81a30af225158c6452986b10185da59e5aeb4543f880a2575503adf5da848bc99cde20695f10c58a79c513554b21e482afec3b045a42fd98997e780bd0ee5b72fb39574e04d58fbd9056e2c2939d34bd5b2915374389ad161c79b555a5f68bef8972b3562ce333c3b87c80ec6eb3a3041a804897d00f225c13e87e59f4327d70137ecd024011a281d9b4eb5c3d95417c82369f13f070080e27e310311c0cc110bb64058084190a54031526600fa639ccd0e371681acb251799848086b9b08f2c4d414e550a1c006dd5c8e5bacebea3a8ebbdad0ee8a8d9076a64e7eacdda14ffc03b1f691da9bb48721159d35e9668a78c6442321524f52c2c10dce1edbc187ddd71db9149a348337add577c287de396fc620b9a2506215afa915a8e756d59743459ea7526214b40188b214eec57bee2874b2c031a5c2a80e37202e9c74247172e1a160b1f8ad12b7e7914220ff8c0b876096c1bc58fc15d33304d202e76af99e625c8a123a65bd8e7bc0c31eefd284e7c97c01d3eec7f82d856e80e8c827bf4677daf660623f61cb601ca250292c0bec2b5deed8c50a86ae73e63ccd203c5cb5f608a39d06da2dbca23e4db314bb79967f18bb2c2095f65be5e5a1fe4a2583ed826d31fe2be035630474cce423410d3c3818eaa22d80311540982862ef61b4bb1981a44c898031489f4a6c5925ffb73db2753fd6f13ad36f8ed134a0b898807f905b4a75332677ca2e559725cf2a6bc6776a826d0aba22eafc407c506d206fb7f1f860f56fc81091d9fe6d6624d6a64d473dfc7b58617d3bb73fb51c2dae1505bd5bf284372559000f4376313bd5ae495d5ebbede20111bc84e562857e390f6744e68fa7fb437b1b8eef47f630d36e89cef8b468f0ec74a7857bfb9fdf9200cb41a687b8bda77034268e8a993ea51abed7ec6d115660164f2be04ed03b731d659141db48ddcd32d46d9a2ff330bbd1fe64a0c827b23585996b1b054ec22430cfb8f5adca9ec62e9a58581140919515318eee84f21ccdb26f17b61de45f4b190e32ca7190541c35487ac62393c520662017bb1e6a5953b266fc311e44b4b33fa347a6fbf349e4c94e4478ccb69fd29f7163f7c36eb40483752cc0bd043b70f9e604a52f960cad1d8a15948e4607bc0eaaec4996ebbad05fc68b616a4702343f183e46a6ec4f2c265085cffa2b5a4131c770349e890dc1a2715312e322eda54b4043c69b132c361d2768759e1c26deb5ab148ec0768d4354e0f4c78f5a06640f144cb7ee2990865cb185026f90ed71f88ab3b8de70bfc484147defe3b799feccb47d6b1db07184ae27f754224d472e1bb736f270a64bd66adb75341b8ea0805e0a0a6be16822aeaa5dea75e9b13b2b0e2d3ee693285db62fb80dc8ad76a613831ae51172f501835fa65304352113935947f593df1085b1e0c73f7c506668ec74a2071061a9980d90c9957922da2f21ba44bc447e6a82460cc942e437a6210301fdc7f771a6e721e63ab84b6ea4d2db3aaae4f89fc235e889c0cc3b1d1cf52db0f3197f34d4b50d26909e868bfa6c4d0e17061017288bded04ccd00c07d3c1d4d75de386300695937912350b4595a5e3815c42d737c4119229e4436a8e403ec2704667f42cbad32ebf8c8698a2cbf4a8403d3bdfc798f9ab3dbaa47f3414379284936b0920bd7eea2a222e487f4a5562a68fac7fe1ec4b8699fb1f31700372b5bcf9b07d8d06afe2666f1dedd811d06a88838e1f363e85f0202c960ab7ff65995f1c3a9c47e6c4b18d134d7742dd899bfe5bfdbdc46d2443426c90da8f80fb4d940ac98094e2c7426c3f1857dbc121c94773460bc6d23c23c5fe773d2f0e7956c7d38e4ffa39d9f42709955dd7b9381cfbce359256316b601fcdd75fee41f01171d881543a5d187495319d8f2c81b44085c0b0d6e63a878bf0128d84a1b87cc6b8f682bda433df86ef1a6b5429e687a947d37fc1c4df7e09c63ad5a00cd69e8f1a0807635aee458fda8515af011116be90015109ae3b1f3769d217829afc76568d5e9f7041f17ca3cda8f26faae65089d79444c94e844f8d08b56d0cc563517e8e5e7435154b0768ed00b0a838b1c3ac9bff29e9a09681c1c9d12eb867c20c336ce2c71c0279009c04a00b0f22f851304b0d043afeec9c6b4a32339011969fffe0d0971d41e967d6d5a16066f10b130cc19ade910e1e3b27f81c50efc8f1957ffe57d2a4ce3484100c999e0f10d0d795ef2bca9c3de48ff7a58f9bfcb32e1d548e34abcb3f3438cf34260eadd333407311daaaf8232e9cb5b43dee26155ceca4a9b245598127ab7fdfeccb858354200b606fb27a75d985a41ee5d72b1ff2654fdc95bcaef925a2dd64ee89411f99c43c45c33128320997e6b3b8233ee0dcd286fd9049c19b1c8ad1d1b7af877a745069edd8b5dde6f2ef2a983c4232e1813d93ae916fd197cd40e21abadbe08508aa647956a891f0b44dba5a85489f2e5fd794ae73aa405f18402138047aa95ecb6771e687b47dcac5c4197c8a29be1a80f72a79d5b0a2ce9cf617d640b959b920cdf4106e83749dce01111ce1e19c02434f01862857633c39af0961ac97073be2cd8748004208bb412fcc65cb8226a4622eada4eb30895b31ec651998723b4093482e4d78b804ef8d072340ec3dba8b7fa9dfb431007455824601b6fba4d5243eba42dfdaaf73ed2e9da3a0439acd9fa9c5111b7048670cc395921f141903d10a7c5d30201ad130b4770df4e4b98a2b0d1f732f7176279085fea0ce0fbed7ac655059c597e68c7445c7e4898c0b9b6bdc05e16d3e0a485969362a0947020c7cc94be8373d3888aec1cf59104a73c3f530a0b88e3d75e3acc408a66f3548fd07fc2da3cc482e11c0895f48491cd7dbc59bfedce2509e5f7a1eb40734488763a1d1fecaffd1bf2ac6e276dd73cab32a2f4f80affa4169e1bb368a4da18aa77b06509b025a8bd2f061ee12dbd349795cf22482c5ab27ec41d724365b2a8063ef0b4019b556ab399f2a0221a28fded92bc47eb45032080cb4a977009ae9ca9a34f4749de0b30dc79c0aaa37e253097c6e514335d4baef2362b9ab8c7498563857e72ede9793522bc41f87d4c5c4fe89b345345fb3baf0402013c2ee26d4cddc953e08b59e664f4f8bbae8c412d3e0164704d2731ed1bff958be1545d3864ee89557a6611cacc3c8c02cec06aa59acd878d47163681842a056afa8166a584f6b11ec08c59071818c2abb6054742c72cd25b42ef59ac6bcca2fdc805536274f8b235f812015a60f13a84bc9e15740d6b25a34a8b82e72aa912a0c3a640fb7dc778b8e1efc74c008fc3e915058c15a79c901d683b9d9de5389aa54cacb17cbbd8d2c6fd52bb7bc82ae33dd3a80d7ffb2635d3f7773cde86c3a57aaf1ad5df256e6e97d83a4d8448b4d7e374701cb4aa82fbd21621d67ba36f208beba5db7d6635a440f6e894099cc4049e4b0acd42d23b9ea9fbd06dfd754d1b127e5bca1573677f46feeedf5161e863301afdddb7391d48f92dfa8b0affa851358b97afeccfb7ad629fdc6beed5a66547f783f508407e5cd4c3b73bcc2afa111c2f18acb17a2e86b50de294443c44e24cc2c8c5187029964e9ad282dd24d5f32f61517bacb32d8f36016481e8462fb0c3e3a66714716c99b4557e7696789b87d96e02de749b861eb6b487e740fea057a685d8e7c19cd5d592c8ab4e680fd3297a4b273c87d61d01a93d1a65487c595ebf656193558559212b44b9874514c1666a0f58fb68434a8835b377acd4f88e28bec58ced97f1f8476f90fee1df9b9cc30950e6aa8051175e6b1c774ccf542900d1a288f98a656a2e739b55e6657a181ceb17c60b117f705e7c86a55f2e83a04484277b1a91bef2ca1a371e860de516bd1f66198e1b64de43b6015977b1c0ad508e8cd802ec44e6c9a5d258e581cd1bfc581916f0b18ee3b0e291e6c806c4df156b8e1d1b0027c8033352c954d6aef4face0d7095a53a065958899c11de00adc2f6bab1982ce0a06fd9d84fd041ec4af182e5cf3c9022a95c04e0e7289dc9e32cd4c45ddb4bc711536cc8c5eae26332e6f6b845b92bf76f6a19c1f6adb7e613b5892b176e32f436795b7c8088fbdf5415ca9ceb502acf59b6c6e7485f44a90facd9bda012c5e0152be79533bc0c22b43ea1b6e5a99f7fb49685e45b9b4b84e6bf65fbbc013f52f775e6af4d796e11edde585269f387d0477d2d3d1964394a1c611927ce6364a291cca1fb3c7ec620820497b24d0af1138917da12358387b1242a98728013aa139b7067c9eeface1c70a8828a69e3ea85df30fce0762c722165cb35b9ec8042e5f18b33074604f6667ea68fac0e26457877339ad9ea61aaece2e4a041d4b40ac87293d6ac633bdb3d06030b472dfe6d6857d3dbf5b648636afe5c209a11db9a141536bd49fe5e05f3dbbc2c6a86313af069400a6d52f9791e08b20a68fe184d33421346e5f94f80b7a0e8d105e9282cdf73454f8237c80820ac6783e5679081984a0b9214df9f89cc1fdeebe245e754b08b565f415dda24881e3ca0a30beb019892825df68b2af4ca8dfdbf299ce46e81fa812dbc7027685003898e76ef707d40a1f55717851c1a63eb43a698ecf8cb8b991cf0ca3461976334015a52cac3785b4d225090fed251b9daf08bc97421713b375d76e1b656ee9d38c9d8fcf01a6bb6185bfdf3bd47ebac311cecb3ca0963e8c5a3229c12b3937ac94a2b16bc107baabacc98e913cd1c406f9fbf18d5228fd0116f73846b662514956619400f1f81ee291a718f62b6013800f50be7f9241a2a10b6221544293d55b4a0768f9351e1c5ed0e80e6a5ed0065e4025d79d328be6cc22926a8a1997640d96347826c6414cf51402a02747ecd51ffbc7c32fa5b7debde244963dbe42c937024d68f180fe8e3dabbc775a4b6cb13e792400693b6d7a1d50c4cf2f030ec8c799994752385a1fa4ef6fa51609daaa298fd9676d50a898c35bc3af7a5ebab65f4da5417da8eb1928a1b10435ad405ce9bf61614c7fdd65b8595d74f6acaa5879744458e9de9e542bee5a420b487bc05bd83618eca9359d0db5f99f26748aa0e31c85a7c8f2506ff3b0de2e096847839661b0e8484849b7e812fdb8402e0eea0d0b0bcb71782386f33f7d9258a46cd07b26b533737aa1586d2695ba386feefe101eaa78b3ed1446db05e9237caede96df736740a859cfbffbfe1e3401c4eac74d333333cfcfa07c1a69874d9c309925a744f21b3989cccc28e007abc72b6a72cd7d49c0f3f1e6c383111a5e6d23c050681822241f720eb32694d5915a7a8a1966304ebc0b4db7c25f94f4549fa0e91931538c1b46a396aff38d54179e21de564c0dd5a595e522e29a29a8989c277a28232256433924100b5c487e1429e046377fb7b715e21f7e1fb4201acd8ac6c5d8af54a713669b0b6b9e9629da7a1cb1770d24664bf8018e210f694fa2674e0a382895f73627ec8fbb8125a336318d3e28704690bba1503fffb5c496340e39113a381a5d3a2ec214bce0eb236ef88601736d914d26d9e6a1ae4bdaa66c570a705b385bd1e54e231b98f41110aef540db151c51a4f940225ca27ee070a347fc2b73afc6ee9a21035cd66809b1ec0a8dbb86cc6571abc2e3a1da58c67b7d435d954f8cd6596179eaad22b040176a28bbaa004f3ab52d297eac58a2321402c26a85f144acc78164ca37984d25437c74bbf78c64606bc7f912048f4cc957b3296fbb17c931d402ca7346ab81340c13253f419cf7a846bf83330d74a041bc5e440d9e4ec628e0df0a7db3f061e7906e1ab2984593aa4fad32deebb7d09a98b716ad7695a13c78d5e2d05b8248b391ae529b11eb929af6d3a9995d402fe482590af3d1266a580f05f0e467ad72a840ddfb8cad40085dc43f4617995de2378266a9b8ad132ec198b07c85562ae726b016abc879d82f33b28e11c4939f0443b50b8a0255b15401e9bafd8e30ac13abb8629499dea734f18d4137c52df8209aef254b79b10a5ae8111580585a01cf6a6b78eb80af2a3a90bb1500627cece78a9577de6eaa88aafe9d56225026e40beaf187b504026b843b8ad32ece47d9f8f4948b364b913919c0e0c001607b81dde30afeedc4412af6c34d4e12e2be1e619b8253b71d7c27d92fd098ae01f85442f273e1f38fb713332a6a2b5f5e0f2b01c78f9fc3afc4d126c0df8af1a1cee02ae3d4473f83c7f271a5b5ac18c09ee49d5d0538bfac135782fac18bcdd882c3744ba2efb825abf5470d54dbcfcc5d8c2b5fbb430fa60b45e28ed954b0658c874f23e5ce5dc77ddb682dff3a33d456ab8d2614021a036e1da455baa9e59217e3dba0a74b855335e948029f8fab8012bd5abb75dfeb06ecf24c0c0d4f12ed30becbe0b3632609ca10a9210818f2770ce337844d286b87aa8ac7ba5cb21d228195913ac03e8d1ba2f15687c47de0cd2a8a9ef1031c563066a27444738e292b5c387c6b28701d389383c4b6a4c5d2ba4e461df38f6564a7818052f5a3585d599fd24baee91cf1ad1c9c0fc8ac278d732fb837f9dffeab7570774a8d27d078fc9bf1df41fc00ff8b0611b58df0447996981a3d709144e830b7fef4fb0fc523c32258850ba26262f82daf3e27dde0bfbbc840181269fc19c45a3faa6156f3da0342cfd780848a9037e3ab494160ef2865bf92b2e7b78d8c548ed2e9bc2e8e21a1ad64ea0a4bd173b8cde795a0aa1676170a44f6cd419ff4f7b999a5ee5b965c1d5975b614fc5f3f9848b6ad01fdc1a64a115f479fa3007a4f74bb65c4de3b8856c9f73f7378e2209b9a8d807e9d659b57f93c5637ce7201c963e809cb2584d79fc7b2ad6c7a20fc085b859a0214cc1293acbd061dfc42a109a8994e8e02cd1da319e301fbd5b792e640ae313af01860d5041ff7c2a8771260816f5271b68dee95b5ac60a423486d28fb9848f3e7a1e5e58d92a580a124db32f341d73adc498a157109df77e62abeec70747d6541bb1c318e90971c0c5b696a2285e634a01b01180dfddc94b4aa3dfdb4cb70f86fba1fb582d3d2730602463c2aa60d1808d4e9a46b48f61cf7461a1d7c971ed0fef865c72f301d500f194d5d952a1324cef2bc085a4b920a44032d94388829a3e063b3541e75bd57317005d473a28c856cd63447853ca8fda607eb15d963a647a46e3c0b7c9e6807fd30299073b6d58b9df8566f4ef0982c5166a9d3dd260aa20a3eae0bbec73b89c3d509dbad54b6656bdf5d856a93077a7ffcafe7b6fd36f37e89da3e5a7ba2c0dbff85e0a0c14c70d827b64150c68819434b0f10c69e883ba350777f77c53e27e941e468c70cd07bea78679831eb0686f95abbcdbf619969a1c977b26d31b6bc3a59f02a18572436df5fbf884309c86e856f70df171ff2598bccb90fdd9d9361cb737f6f323d6c049992831c89bb8b6b6065a6d3fdb894a1920412648aeac3bea4004b8d2a22cb421f7a46d2c109f568a5634c9aca6883147b28cbbc851548e4e14216c31c1e153a365694b0b8f9199ab2914ccab5f78cd0096763083439bb826c1da3dc194760e85e883fbbdff36acfc54ef7dbfc5902e8faf0415632a38b63d1075868a0f460fad3ebd5a4f0b7e494d006e232b18b73e24271067a5d6398772d7d6d0502d5a7f8618478d2939ae166efce018a395f7702a082f5e181679b0529a7eab721b2de5c750f1c098c7e2d70c80be2df61b374054e43632ca51e642c8ea0931cf14d74a1ebb6c252e03296a87816e9ab747ac4781914fd7006281172cb06d43358087069d041e77cac54c34e88520a4936f4e395f00febbb31267482a850fc8b8b108295536cbd28cf76b32874d5ee070f3e165048f8290a418ff67c8d45d6110dea7a5f11f1bfece3aff80222ac1f90552f1b98bc0810677f88a4a60bcc5bf532e53b0df02ae9d84e19a0b588f8ad6b26551e2d80003f55841bb61165e64f8e44ab280403fbab3723bd8a8c1f89ae1553be30a38d54fd6c709bc767a4b15ef7166d971df91eb92482445056efc1204bfcd835310231fb36b4293998e38630493a11717e1890fee85d48e01affb4a96fc50bc7b12febd1fc43d46db73138c64a9fdcb5f7e67240eda8b1f0ac9eac27350c6c63e5310688b57cb8cbff2f3ce7b83a78e5e7266477abd2305015371b303d37bf62c45252b22386026e090864d31d3cc3bbf1c50b626c92621a010f60e782d14421f5912a3e24b664b0852d1d788947138efa60fdd98748c46c53874600eebe57ecf8dd57bc11f55db216856db9d3aed723c161509e147b8736d9036d02c6d52263596a9d0e8f5ee6846586b5822fe5a805fa30632bf75293e40a6f8a2274252eedf5ad0ac6d0b03508ee9e8f5d44ae699ef5c3f633cb1c965a39ecf81383c5f94d714313737c4c07f6d77562330ae1e79527f7ef782b920bc4028a0690e662ce370d51e48753c1665ccd58d264c2931817d1a52443c831ba1d5908aae128c3d380086a2c4f9a91a2237ec36f9c55f0422a8a7ff63ad0ea903b657d97afb1b3a1ab03213fcaed745a1da8ac0438a0c130733fe1fe837008e883cef60eaf89ec6794240838a60b76b3dec7e33f78916ad4a6133d0ea9ab7592f525ffc5f0033388b464a1adf8cea82e06d91e57c68a4957cc5c93d2a09a9ba28b62a06a18f09d5ed03d240e02f5c5d84e6f6e088cb4f0c28b0c4b55354dfa2e4c4d119a4092a9eb05ae5f2c01042a84ed446e7791ca283955120de31f5065c288e9323089f0740012adaafe927132f50b2b4a8561dc9871f75543d87dbd254e20c7cc857e0c3cc9f18c320c3038b45e16e9c7220ed8594da8962817ef626bcdf3e55ad4bbe642fcf2c98339f8b8e2a0db460f4f41889a2c982a88d8a3e682eda056822c85e61fb22a057e32c715f6a48bc0c571814b13bf64857e4dc825bab89623d58ea7b6f881dd96079974f178ac118b0e9cc746113a0abf9bc2a25872657c937e755996bab8e59bce120fab050645c70ca7ac22635a0a31cc27d1f1c51887b5e3a8f25369299e8f0b8c1680e433b33e20332ed42cd02fa3d6ae8916a2c771a5739e6dde808e621fb1abccb8364603eed07daeca328a4676448c914fda53c65da16d80478235bbb4df28153f087fd98212458e74269e3b7da6c5db70e8807fc589f91591fad8af905417dc6165b0132013b6d4921c59fca3583dc6a2c8f8557a6bdbccaf131cd89d4dfb1386bc1402d1c6206e91dc56e3947d45f34954c0c30593f6955f2b84ecdec304043bbce10144c873f88b332bca2a6b9be098e889d1e2243aa26e8be7a46f80db4dedcb78f2343d09c38a8ac04c7bfc7771b6e62caa379c8bdd2392c13e8668d99253e9a3bf593332f203a37c22c9a9b818d2c6e1fd162d84961b0c5e729efb1189596c2ca7e1c7045986aba60aeb3aed32957869f86fd3b92e189fe785dfeba7a83d1de5b8afd3b8accfbe61f3c5dabc4195da29444fa9b252a29090e394f6a7347d448e6c39b575d5157681ff04790c0ca8664ebf8c14894fe2a1203553707565e92d5e60888c25c06c00636b10b9a059dd0980ef5a863503ab3f06d8fb81e33be405710e1576f5a9d8af221338606b5869cd6eb873427e198797243aee566be548ef97e5049ac7d133a278b5100b0a25731fc401a7dff70cf79065a9bb94848da59d15cb7356d41539d20e88e5707862b023e8e7b6a678c9e538564a814b1cf93f3377d6ff1f9909225a94cc17b64efc656c4b0b9ee94fb7ae2f75d165374d12d10270b9b9d3926c297dc6ad360244f98bf4152f987c46b792136c44462d5d717e5310956439b81b2eddc0d485cf60b5d9ee28f9c964f6b1f6e7d9a0de3dc123f5fc66166118847a9a237d043c0e84353f722f207a7bf095d174bded1a11af1dd18f2f4d69046d442bcbfcbb284307ed44accb1904fe3d3114c5fa69de2aa1a723aeff75b934e35ee14733a211e179aeb914f5d2e22eb025b8702b47d85ee87e42ea5c07b853ae15eca349281f40f3f47e5053363acf48777c1a2f24d7b4859357fc8aae3b87d74a2fcc64003a76b056bd5ca1d211cba948853120e5b9caa403307c68423323c528623db76325cc3ef31f5125d60274af8428bb1393fb45e18fd43954ff97101a0eff1a4d39f17a035498d607ecaa59b48a1330d082a32359df822af736b18e8b2b801a21323f3a086403782f2ddfd8e7d04252a72ab75ba39be177e586adfe6b3af0ed7fbd0061e01fd4a013f893d33bc7f4c8aa1d71024658aff43a86ea75b24acda650a39618c18c6b14864e20a3f964a6dcb0e9100f4add6236aac94da5dee45e285cd3c4247315ef080e157b29c1c7e4fde959133c45dbe3dcc8fbe8ff2b0d440ee7a8f2c5434bc15599f3fc215cdf1e0e88e9881d51779601810bc554da20a173ddcb2fe6cd4123176f482855e35480c0493b999ea5b7f497f9e76fe7e18c8a99a844abc4a42824cfddc65d493145507d7f1382f706e926683f7f8b2e0d07f021d8433d7a0dd4fe13f824f3a16da3e623af90f7b1e775cadfe6973d706166f765103238996bde4ad09c12407f6256700290c5df4b00eaa27eec3cd352263c61853812f23d809284bddaf298394a1b2adb2cf332cab6c54867d41e320d916699587692bd64a2a84d72f2a717f9eaaaa8f917a64fb89efd2f9571010c7fc857c7c59913b46526b451e4fe4c2c6696f593991d7172de87c07778bb8069002f7b8fc11911d28d15fcc9f3715f73c8a4945b5e2380d48d86746b35e725bc85cb7c5534e441a179760f8df12b97946a4c7885f316a191d5e3058d86a704341a737ba7f7197010ff2310bb9aa67db306085fc94460ac227648e58d4615c7d1fe0ca351367c5220c18dfc3980495a3973d01aa77f40ccdf67d2ade7d08b04c03ff4f6a2c241cabcb56a51a42218b30905965388b41b030c08364450f55f88b63affa5bd0a3fb7e26aaa53a236829eeb140899dadfc5ee0e8513c48a3758e99c97a417947e035a2977a25d409815a903f009fcd758dce7ef64ee5f71c4974bb65d186675cd32950319a90855bd33a489c9879bb43307bd4241d09dde0ec067ddffee712cea40d23a51bf0fe35e2548be1096d955247b837f32826c1849db4de4de7b4b29a59449ca1c0ae909e60921b8bdda3a730740da5dec75b51efc43abf179d5b0cf0cfb54cf69006e3fd2597eee0665b90e32a34661b7cd5b5bf6f2e9572e6800f1a641ba1cb1f5ade52c7d496368173117f73feda20fd2ae202065f9d728c0491f4780be05a79ec1569076dd4b5b6c5df9cac1100ec90ac33edb1dfb5096631f1168bd3c02e9192a7db9ed87ae5849def20d86be2d7ba0fbdef27617db52a59dd0491a63c4fd5c4395415fd6306b6a6a6af27681ed53b228ad36bc8ca0c08c1d811e74e35f6d1f33d97e0e6df2ff60040566ec1e744bf962f4b1690e1fdb7fa68ebe7d18eb8ed1ae33d04bb5fd7b8dd8815e4a29b6202ceee0f7ba8feb55488784565b22334264ba534a84cc08116b9dd25aefc51563ea13e31e24476a9d3a74a7566bbf7b31aed6defb619cf356b78dfadc367b2fc65f86c0b67195e3a84f8ebb1fc6397fdbf6711c05e22b9c5d44a6b12d3fd39cbd6d4076b8215b3ea7e32b8ad35121b6fc8e02f1aae7519f9e8784a6e4a7466ba8cd125a12243d4e84e70ce1d9911921e2395e8413e130286a6ee32fafa92981c26ffc474d0914d367eaec1899c9dc7b901cd919327566ac87593381e0780f1336899842cc9a69d3c30f0cbe92b205489aec71186e90504040070c52ba78be9292c55752be7b8c2d7d25c1ea2b996340c143faa8019f3d2b8e106638b50bd3a0525a398ef33c0fe4f90d6e9e43269d7382190443216bad4894731e8d482452472285422626a55209542a99be0cfa1e57ec443741ff6c0d683f18b0ca1e9a3bdbf26d0d28f1b535e70e249fe8248b9c73ba3ba5b4d6ba752553a8036da7135207daa84551012f4aca8e3e0f256533a5b5566bedbd17639c6bced467ced4a2a880172565479f8792b23954adf0c252a9085dbc6851a908ebbd18e39cf3b66d1cc775b5eba8cfaea3164505bc28293bfa3c9494cda16a8517964a45e8e2458b4a455845305a2b0c2386a8c50a16183144cf715dd7799ea7b5769dbcd6394020ed023d48e7905ffd3eeaf3fba84551012f4aca8e3e0f256573a85ae185a55211ba78d1a2521156118cd60ac388216ab18205460cd1d390c19163cbb44043070d0c322dd0d8ba9229d481b6d309a9036dd4a2a880172565479f8792b23954adf0c252a9085dbc6851a908ab08466b8561c410b558c1022386e869c8e0c8b1655aa0a183060699166868162fb50b0001f8a95d377eae7ce7ae5d31bcbff094d6aa5d317cf569ed8c37f1249d53bb660af0ae5d0778afe13b4a69f560c0047cd52e057cb5e13b6bb52be62d0bdfc95befa53eeff57a33e7a5a8cc20a1c5fce84906f0a3fbd4f0a3d70af0a32b39c08ffe63c38fbe24013fd21a05fc486d18e04698e1473fc28e612500376cbce042cf8c1f1df684d389440241cfa3e1478a23801f298c003fd21c03fc486308f891ee2ce047ca436fb67ccc020316a0800420c0860318a00035106000028899a1816506f1c6bc0b2fd8b8118095df110300fe67c4ccb0f0820b376cacb048914a9d4e2412087a9ec9db36ed02400ccf715dd7799ea73d181000af358bef24a88240d427089482f33c1028c2334e04007ef41c2f62c78f1edb89e1471fc24344664406f9be021f62d3906961e3c801830e9a143f3aec09a9d49f4e2412083acda7f6436be8cb7bb6fccb4286f08567e16fbc0b1fc3dbf81d367e05002c6c0a1aae1934313a66606021c70b385cd8376ad868614586c57f2a753a914820f87ddac5e23bd08301597850bb5c78d0c677a15048e4c180332fd2ae175e74e3bbd148bb567e94e23b49aa2412f54922819e8854ba3350d4567e9c4a6afc387f6cfce8352cfce8362efce8af1b3ffa8f991ffde6851f1d88eb47c77942cc8ff3891d03b7562c2d56f8fc7fea74229166fce839347ef498cc8fbed3c28fceb37f74190c3ffa4cbe4de182e185997dc3851658b0215383c60a8b192c31625df9152d58562dfc301f03c6ffafb048d162c58a058b742a753a914830be33f160c0186f62522a954c26138c3f9d44dfc9937a72427d9e9c6813cf7462677460fc387786c0fc387964317e9c4666477a90c8f871d2b6fc79c414b243950ad60a2f2d2e5e7c2a954fa7da8fd7f8cb6f1c477e15c9085b7c8a5ffd8a8ff12c0f03434475e8f22f565cb06849f1d2628515ac95c8a202ab44ffa9d4e9743a9d7830608a3fd1ae157fc2f21d0a8ace31b766f128ed6af1a8d577a99476e14fe91c33a5a6a4509f2929271eaace2c993536e28ff3c592e2c70964c5eac729048b1f27acc58f9308971f67ceca8f920a5b3e06fe535705f446df4fea7f9c3be18f9347f5e394a9f871ce583fce9e961f274d3ed52e2d2d58b0562b54a46051892116fd8ae8f8bf9107aadc1015a650c2ff8c457af481deb5359542a1b40be5bb940703a63e954a49d1aefb293ac7dc2310e5eb3ff5f95f531e9d614962cbdf9208ca8f52268da07e9433d993fa512291349944fa482852b60e142a9948a7931f25cfd780afd3cde3ac6033e767db9470144afd5f980abd4785374461a9e276128ef2c8f63f85d2572291248d6c7f53580a4171943c9e38ced8fea018dbbfb33ffa1e3f25454545bbbe57f1be5b59d1aefb2b3ac7f46040d1bf768dfe758ee9c180f643edba1fea1c53aca2487d8ae206a2c0b7e9fb4cb5dc8fa7df725ced962d636cb94919962c65cf96a3a46d49fa51d6b67c39ed122d92b248e2a8450486dfef71e5dd4a52d66659a60c4bbe780be9e28fc551c5762aae54ba154fd298390382a7d3ff6ae5624b177b9cb15794e52ff74aba2c01ceef70de36d07d7a69cc3623ab0fd3fa307d703e4c1f39c5e3885cb3297517e2e50a8eb58a5d0d41e701e7aeaf64e71f4938bc8dc5faaa2f1daaf4bc8503fdc9a0d31ffa936be8914e7aeb5e196615acfbb0fd27c55603dba7a4a91bdf4a7fca17fbf7eee01ed53250eaf5af952e547451dee9463ac932926e6ef015ad38bb3a12e0287d6ea02c2ca55c01d42e1773f0163dfd486b2728f5a98f8c417dfdfa9231a4af5f6f648cc9d747853c50167d94f0243c8592b24c636ad7af3f658dd2d7afb2057efd2c5ba2afefc956e8eb8332c67efd936c8dbe8a238f8ab373b8010720fe51fae4e0e12bca038da93e94453f9bc431832051fe8c53884dbfeb7448b70d411ccac218ebb06edba65da23982d5d3a1ed3cbf81e7390dc00e7b3af46dc4fec0bbfad0989c41b0f3d9f48d6c2f0746593b20041c50fabee4329101671e48a1942c902869f2fe01691cde06716c00eaf012d99c07f395c7e05a87ecd302d866409c198036b481b2e87f3a080d3598dd6b63c68c0bc200ea1b9267db5a56ab2d1423a45db81089449e4e8138a79388457f27f29c06e0987bb40ee8c1647bf4603d9bbe480b609bf1609445df8379447839230f461a6990e4c180e093b48b07fdd9a2276997e85f23fd1132431ef4678786ecfca3fdb1e98f421026806dc68a200e65cd009c3f8238a010bea21f0a4198768122887304589fa4650c340133e87bd08f3ebe504a1790287da5c5eaab2ab7e7c1c6ef67d3e73cd8a6238883b3fdafde919f87b76ec8c15b5bea1ac4bed41567c6081c2aceaebe92a41bf7c1fd928e983b7367d680d24fc96a2b2bc7579595639db25a305ffc85d0d13906a5bba4a4ef4f91fb633d95d0db38ec56a26fad0682a2db277d7dae0f0d6f9290db27fad22e4d25dcb60def91d90c098abe3db74725ccdb869708cfe531726557a612e2edb2a2ce1d7277764c9e4a78538ac8c9d1b9b11bc3a10ef8bdefb81e7963f13dbbf10daf10afa22f0ece855d984a58f70571f9fe78dd17907b513c9590ee1b5a287c7cac92da12fb637faecdeb5b736bb663fb5d8a57a58a83505e25f4dda174354c62693495706efbc38956d4b6c7f69c4aa0fba05528141a79a6d0b46596c7eed81dbb1342d923286d6776964aa54aac927496c6a2924e599d94b6311b2379a6d024a588146d736c8e8a8a76dd57d139dcded8977dd91729246d15aba22dac888599c2d12e1999322622f3c5148351963f919291eda00c967ad377f3a774f93769977812be288e3ec2504a970f6bcd64d241aa4ff5d9fe2b2926222622dbffa471d8ad229ea042e9ab1471cc28e212d989c661b748bf29668a6d7f949448c360db7fc5daac685b636b4c4944fb75a5d142ddca8a766da29fa1dc9873113dae1873604e3192a2ab0ccce19150d7599d210975ede93921026e51571e95f7faa63c2ebcef85db9bc2cf7b8edb36bd7dedb6d1d66d349b588ba835673b87397a45975eee5eb1eae01aabb13a44a5eb4edd114511b4516190ef4f6110d0a38892b24e4091854557182ce599429d2285ae38382940bcad42d79b1b1b5653d8ed15babe5e2b9e29e456d566a56b4dadf14ce1b64b34d61296a63f3f2ced123d4b7f277aa83008e84f6190ef514ebe2fcd4cb2d9cefb0b29889ede446929146956b5fb641297782a1b252c34add55ab468a1f24c21e6d9d9d96971a485a6b3594b4b0b8b670a2f8ce2509c161d1a8bb9b8b8a4f04ca1a5353f3f3fd58502d1f486aeb0c20ad569dea31f7b8fbf0e5750b282f69a9b42ba71b843f6213b3b4e84c779dc88cc652fda67457c85670add6194e539a22fb982388eeb9f2ea2d0858eaffc5d688f79ecfe0b96670a027a9198c3128dc6a06ebce6b0c525a358b3d1a107b8c15db9ab5f00f195ff0bed37372513d24814023f90f63ace04ba8f62d1c293ded25bbeac5e26b4e0c0538a65cbe01f5732db8f2cb67431c30618dab8107b9cf75bb803b8f177a127e6babb30086843e053f0bfd00f2e664051ba8c1f563321f100dbded1878f8dc5d17e77817db74d6957e58abe9ca2d885414cde929e9afc35f98fe4bdcd0fab99ef7f7031337a5068f39a3163f2363fe41923ecffb09a21cd9009a9060812489817deab63f15cbb66c89b8a11b88fefd3f0beb557f4eb7dc523fdeeb18fed89351dcebd5d000cad94a1015138e5eacae9a0fa54ce486f75f6669576719b4aa5d2ae1d788bbeebc2b93bef3c1127b5cb1347fc5b04f073df0110ff563f84bf9b9bd621377e95a6c1a2fff0953fa7d2fef2974de6bed05a0d6ccc3d8ba64921a783b6b75ce7c2a9b40bb3b0689a1429340d1e70a10a55a8c20ce8bb7b8300e7df70500aeda22a565a5c3c3965ee8f377b75ca501a52771baf710731cfd6a182bb0760edc17900ce25f3c75d56f0a4b7380ae2b82be215a89b2d3d66c43ba51a8ee19c2d4fb454a331a61765cd526dfbdfec0cd234795bd48d7dfa206deb307174db8a4450a142850a252af4acd556b0607930207d9676b1b46b8a41f25b3bff8653d91e3f9849364193a55d54146b4a80130a5ff9b3f4f4993e2c5a589efdc1503794657ac9b6bf8a591e3f1cdd166b41106b02d866c49acc85fa942b5e5cbcf0a4c77c6068e5e58f648b7bf92619935fbe4ac6805e7e0bd9da5efe8bacd18536dffff0339f68c4fc5a7f7ade8fb4cb9be24c32694568221442310af3258b3fa3aaa69e0074ef0b18f8e2d0eecd12e1b0350d8843df9c9c49c2a5b6fee6c40ac3b339fc8870967f0bfd72aa48c32fe783c900a43f7e309fcdfd88bae95e5eb48b87acedf92fda35c58f085f390f964d6ff8023a393dedaa9607cba63ff15ffaf883f9ca4525493e22bc8583ac7db02fc75b72546f773b59b3b2b6a5385bf4ec69d1f75b603ce92dd2b7e56b29d33d17b3fd286531604cc8f49a329d689281ab294ae9f2da1f8cb240af86b260782fb47d185e58a78c8767f2c078f142bbeabfd039bc906e108c857272b8505412ca007daad7f67fa171d88dc56c82ed0f03a3edc7d039dc1584872626cebc993731627832b4cbbe0c9dc3bd20f9711804f45bc8815037543665f2cd7cf137c96e70006535a1c4a26ec425fb66ca8850902f3fc02a8a51b80c8dc36e2a8ab521b4eebb8821c306caa2e1072ec3d29f2d3006459235ae949936b428228fc1b50e59dd340c02fa190679e519d0df30c8eb34037ad40d8d31c928cbeda36e4c321af3d1b7a249064e938c0492e5ffbd608e60fbab6eb6fff819b1fd3f188df9c48c0269baf196e9456340ef2fe7b7c77c33e63d7eb0eddf1e451310db1f946f4457d964d58fed7ff338146bdeba1dc5551c2f8efbdb06f6d5a16e9a2255186e18d9a3b864fb8fa89bed6fb5ab72a05e4d5341f7b71879e50c3914edba5734c3c68c221d0d0f06e49e46b8ed8a5f62fb3502f6e94f7b51da75ef8886a6b1620c9146915c43bbe8112ca35da2f8e36d6bb950fc116b380890fb51ace51095f8caed6bfba17eeb3d0bda35f50cb6fb50bb3a1106683b6bc5d4c98b745e27ca8e050f636c83c5867eb94525dec2e1b4e9fb8b35f1c75bb29a8841f29be8d38c11389cb61465f4eaee1c8a4a9ce56f43e3f07d45b1f60270fe28d6b6db15130b24163418d63fb5e0b5a073f6664837b7ed0e9bba64d97741d3e4f928df89da752fca0d2d8b80f3c3b9b79e812279020807f6fd3b6660cf70a0fbee8374b1dffa40d0a7bdeee3be2d7ff8daafca18a0fb13dcf259cc7ca03ea60ff5e2f90225f2908b898078080feaf1f024c103ee2be299f760866798e7e27b797876fd6e52407f28a54e1d069cf329add682ae290ac15f4e77b903b0e69c31f7b903d447b28c1ecff6efa4745aedc599eb3c296b705e9de0b9a6220c90fa6c1de6ae62eec9c10efa81216f0372336fa6101367e21001f3953f2c34f37cbd44a3da23075ff9d77af0953f48f3f0336d7ce5aff5acd9b3757fc6d8e0ffe167b068c47cf037fa7713e5772693ce6dde39a7c8e3065fb953fb94754549b7efcebb904f49abee469ead0149465276e6d49a4b075c800d5edbee3f6bad2aa93fdb5fd61a046acd01be32313129d5dc4359eeaa3580340d5dc93379f4c7fc23989138cb6dccd041594e83d4c064329dbc65b58ae1c2c5e9743a99a9d389e5ffe444bb4eb4cbfe6b7421e07c4abbdae342e22ba7b9aa987b8e0049fe9f771de8ca1a9dc7b3a5ca529322308dfaf480437d76407d9c407d74409d407f72407fe80ff5a13ed407d35cca5cbdd39cee4e29d52e1e95a4019f8a2304f9b6a68717fd11427faaacf5a57c6f02943ca410700437c6209fa2f3a838d3479d790a5e712ace9eef74bb685df7390d9c064e836f8669950718a6358169538ea18d69590e01ac5f711242ddc622ae4917fa3ec3b5b9475cc301d364c6344cfb665d8cc66c790b73dcd7ba427dfa76054de3fbe5e514ce7d55f0e2a2cebc50299e4f87ececec3da3337b84dea7f6e50bb5d509d0753c167b01064ceb265917d855ea795fcc5ca6d8ac62538cc69864b259b5f5d3347916d22e18556c47a62e5cb8a02e8ac8c9791103060606d75a719dd14e2f9aadb6c268d711a03bcc61314eafed2fa37e34d44cb6e2b5e246a68ad1543155aca58ac5bc70d189c3cb32de8fa115fa638a9697cda442b6381652a6be7c1729635f7e7742fd69fbced3b6765f9f7a4f1f047e0ffa4ec786fa0e7532d1ae6df35c08d4c971c00fe4d1ae5ecbe52468ad5cb69b8fbdd93aa9cca1e3dadd4dfa204a73a05eabadc1ad5b87273d06e3f04b12a35d39871fcdc767766df6f195d392cc6a7852e7b0b5d65af35b1ada453f871fcd57aed2f155135a7ac797c45b38c8da47f3960f49bb72c6b856312616a3efc7d0d88a6f969d5e34da4b46c33b33c6826743d767c16b7e7e7e58b06143bbf2dbb833dacc2744a3d154315fa974423c53c564dbee2be626b67f0b2de8fa2ecc588d62c6663299cc0517bc1b17d3680c6a767a4d993ca365da3dbd601867e3a874aa2a36530d994d19d51146886cff2cceb64a88dfd038ec13b60c0076601cce1bca9aaf1ac818e411ef949211b5523faec47c3faa4e3fb6d8273fc2b04144caa41139fbf1a5fef8c2fed8b234f6fd51668e48dd0c2d0050a21d9a668ad3a6d63dfa94205ffc4121aa0892e5cf85a824c8953f897eb42993dfff5b026a4663f0fba37a50349412a48c0fb63f253281b0fd3313dbff533521e76a3569759141e3f0c1f9d85ca88ad10d9a73c6a06964d03453eca1cae0db24a33138cf680c163f1a65f9d3b607c12fc29fc27f4b6f7a4b7a93af23fcfd0fab199b1fc019f043e18b286bbf561bf6a8a81e5fcd7c950450f5e3479b6dff18958e8be138b7f834dac5c212aa6256452595e253cff25d8a259552f12a1e001e0cf8ffa276fd9fd0c440a375c852d0a45468bc6b592a8b0803b42c61b55544ed5051116bf0953f8da661a6a211c3bfe15f121d7a47ae0bf095bf8e1dda854285aa984aa7a652312b295fb747a12a0a3e25fc94afdfc5e0c1802929ffda9522c2006b4a358910b83bb4035476689ad40ecfaa62de42e9782ba5aa68174a840156b147dd29226a476a879a1279d4bd43dfe0a3d23bdb3f06edf2504e543fd8fea724b6bf6908dbbfe4c4f637510561fb9366db7fa45262fb8b544b6cff093382600fb6ff37647b0074aedb3660bf9df56ee2585ffbd83abc5f6fce39cba0697256c9d9247f00344d167b0440e72067a041870c95e25943ae9bc18301690a890618688809c09bba6ebbe6bf2899aa6817a52602d03455b461059007a05d97069800da453b3a737ed58eb736d54ec55ea8da51c5b61f553195ce76b9bf8f431b8c6ba841bbea6541b1f8caff7ef7b613bfabc18301ab7842004d53c5964b80988b005e0d553adec2e1a48aa976dcbe09bf09e74c00958eb3fc6b1055312780f347556cfb5b2b9e142055007d3ad5b05e158a014806a0bbd603705ebd6feb6b9a69294dd9a069a6e8d910f310406d4580a6a9bb4b400cdad5e246fb507d5c1fa60f8b271335c8f85e2ce2d9917a71bdb5ca26bace9300279e6d7c644bb0566b91005d6c027f808669a49837f366b311c4b39cf1116fe6cdbc9937f38e78b3969437f36632003def88d7e3cdbc19291683aefbe6747f905212382ba9e208614e9753e61e70a8cf0ee6bb9c52fa404a6be79c93064156a4489122458a14995be6714395acba6df6dd07ad5d9756bb441159b55489222626d6d26a65d552258a2851c47e9d3f30994e276b69b54b14a9962a51849e685795525a4bab5da248b5548922f64932fa13047cefc53824bb7d455c932e449019df0b84bd44905d9c33ce5896f3668960738cecc2f3b48bbece380c026e13b76810f6f9aefc40abad9733c6a02221d18804fab47dcf93828c5aa93825ab564a6dad9bb52fe8d75aa90de5ae75b3b6d64aa9b5f7da7a696d8177fef3065f01c1fd7baf659c71c637e39bf1bd19cb6432d9bdb22bbb3963d9cdb29bb14c26bb57766537672cbb59763396c9ee955dd9cd19cb6e96dd7b3396dd2bbbb29b3396dd2cbbf7662cbbb29b3396dd2ccb39cbf0cd59866f96e59c2f96657c6532fbb6ce222ec6debe627df98a097c6f10b5d669ab38e5ca5a5aafb596d2aff55e3b7720257843359d4e50462827e1c954ba265f0814e15a4b207d4158ceb98a38ce15fa3ef08aaee88a42e0676416310927e84d42fb4e606b50badc9fda05e6400ab364dd9f5a06bc412071e4613499f83cd8158931e8f01595fdc0da258a585908fc942892f31245b22c047e4a14f942a10f043b258a84c04f89224b149185c04f8922df93b48ba45da10f04af4816023f2548454c40afa574d137288f1b72b8f85e3d5202f348d99cee9476525a52ea9348e40c1b3172de368eeb3acfd31a04fa3e100c8544a218a45308fc40233df23a6e34da463e4b2b1f7dd82ed2d509a4800b2ef29649589b318fc7030fe64902f34c9f3e5facf5ae10d0df9ba41d8023ed6902a4800bb9cee975ce7777777777f767a9a2ff0d97b5eaab6de3b8aef33c0a1a7d6cef06d4e12b692407707b0f9b7a38e65d6736a48dec7972eada793dbc3ddfbd49f27ca5b5cbe77c7777771e27d0e78544d44553b481461fdbd32ead5d9f76c9255b3e087652864222d168248f6cf93166b890249249a96432915c27f0e444e770d085a273f8ee5020140a8542d94a1d35a50968f4b13b6ecb1aeb6b2bd5dae70752914127594616a71b36f5789c36671d66de1a703475524b3967476bd5aefb55e7f05dd227a8d34a8aca77256fc23c669c37aa950d489992ce7cf1177f9455d8f247b944d6c24ffd28673bb2d3c98fb2078502da72e3648df996a69ea524ca2129837f1c6df9f9864554659d29533242634a33caf217459d501cc11753e20e6db56d2729e79c529a5e6a57e945dfa578d25b9f4dfeb1819ca07e9c3526d87cf1df29c2965f002953daf951fe984a3fca23a01149c424b3b1a5c5a76fd9b29333546a8de9a984a19d37fade04d8d130ff286d4ee7577e79d9c3e17d95d0646f7506987d6fb55682968034fec13fd926d7e41a9590b46d88a1f0f1f934aed540cf5309471b141a713bae83d9578cc0fdca614ebb3076101f99cd90f4e01e0c6a4ca3792aa168836ab76d9d765d1a2212d29887473432120a692cc33291766ddf691ac9835dbfbeee345775e5aaad55c41d2e024e0fbbf95e77efad224db3895847a4710cc7b8cbfd8864b9ee867888765d51a4f1ce4ea9466350373554a936654cb1d26cbef86753cc042bcd7636b8bbe9c180271fd22ed487740edfa7944799d205e5a576ada43cca8a38fad82a3f3f2594d2054594be5211a5af4e502a27ef6f8a4d19d47f271571ccb01371861247950df8d9cb5d0e696f848918690cc33095f0db26258c8190481adfdc9034c6c1382a2108dbd4e01afcc344e3177e996897f726dd77214f25d4db5442dd9476c0120eb68bc450ac79dd97c46aa271d8dd8901b25501b9f2771e86902d0dc81c6fcd1a87816c4d0fc898b7e6cb85c8d61481dcf1d6bc7124646b022179bc35713c09d99a414899b726cc9990ad39849c796be6b813b23561207bbc35637e04d99a4224cd5b73c799205b1309e9e3adc9e34fc8d64c42d6bc35651e856c4d26e48fb7e6cc3315646b3a216bbc357bdc03b2358f205fde9a3417816c4d26c81b6f4d1f0742b6e61312c75bb3e641c8d68c42c2bc357f7c08d99a549039def21a87816cb90764cc5bfe7221b2e522903bdef21b4742b61c08c9e32dc7f12464cb8390326f39cc99902d1f42cebce539ee846c390ca4c7fc08b2e54224cd5bbee34c902d4742fa78cb79fc09d9f22464cd5b2ef32864cb99903fdef2996f54902d7742d678cb7bdc03b2e547902f6f39cd45205bce0479e32df7712064cb9f9038def29a07215b1e858479cb7f7c08d9722ac040b6a807648eb7688d0b912d2a0219f3167d3912b24581903bdea2373cdea2389e846cd120a4cc5b14e64cc8161dc209d9a23090336fd11c3f826c5121b2c75b34e64c902d8a84a4798beef8788bf238f7846cd124249df96a3e0b213db204356243b6e7671e74446478f67cf006a3213576f6fcd311281d1ab13dff5da02a6246ce9ebf5a410b2262607bbe8b14c008d1c229818ca4406484f36f80e0851f315e7bbe0eca811dd40686d6ecf9344881004b60fcecf9364041014a5ed4f67c073ce10150b8f0d9f36f50420492bcd0f6fc1cdc081590485608e7f330040d1c7199d52ce101232db2170f4440a405cfcd0d8018c26207e78820745831980b8628629593b3021810b102164b81102154e0ec94000920296e781c0449f80f167fc99c034cb88dca6b6652706289f8d303852328096bb42730018af7f151c2134956687bfeac1961468144e56708930a475266354b78c0484af6e2810888a0786e6e00c410941d9c2382d03989c15c304411a79c9c15c08008132c960221429470764a800410931b9e098224e60fd27cc92607989836a359339382134b443f3d50388292508df604264001faf828e189249fd78ce051200185f3fd67084e85237a56b38407644b4aa72fe78108644bcaf086061036b819382f8288b1b980b18668c9ab9c10062cf863274252f7b413da48c896944e797cdb4978359c535226644b4a510d0b3e71a8d0d91821ff873c63848772bb7d26661bb5250f1342b6d433d41dc48a377cfe276b4c09a21bd0d2fb2ce74b96e92ee86c1e73cbfd67ca76932c5793c7a63fc795ed1f1aa9480014a5e0f08552130081a81cf48742010f74a243a74f15e03c538fad2b592073263be08d74819b473c582cc240bd19f011dc1ac89f3f686ea0befefcb77748e84e5250dbc71269bb684bbdfd47cebb2a532fc5b2855cf95f90498b945c59713cd9fef96f9857177f8d00fe95ac21c51c52d690b7d21074d6b6dc5f6eaf5eed7b15294522a794524a29e79472ce29e59c73be9453ca39f3367dce2a6595a2fc2ba59c37dc8f004a11f495cc73d63967952e523eaeb3925ad0d1b029f7f3b38cd97e86a38b2dc18dbf1d01fc770b579f79b8d8d341e063c896443e671b8ee2963e6d0803de9fdc8fe026c5d17eb6d3da6dcbefc43187b6bc275bfe268ea77dedccf7d679efbd3fefe3b05e2af29044f6fc6dda21ab2d5de0195be2cf2f7fe3af184f39254b7e16e7fc3b6b8feb2ce866ae7f455bdfebe35cf1aef5eefa58b472143d2a9b940831f4373c6b49f9c03be2cd7ed0e2a6aa744e95763d76fde97d0d79785b5beb9e3229ea6bd8a3eeadab373195ceb5a0fc928866a7d7ccd4a15c7b2dcc4c450ad248c9a74c2aa59f931414d1096552afe572a73d3ce74c8598422c299932a61f34c674f3a3a444451c419358127f4cb050674275f6dea4f3ba7bbbbf9ee7795d0aca096994fa0e04c196580a0a8d2693c97e7e4e4e287d7ad56b33e636af13a54421de77ce1729e79c5eb79d5ac00e7ba230b431f79daae38c94f6a6b34cb6fd41a2d0647399cb778301abb5d7ea215ae79dbc9389649e58e61185a45dc35c444e2ce7e8c472ec1b7922bb71397776fb9c3751fee5f2f54fd3583103c937f9260b91716219271391334c148aba10c78526e76997a5a0a69962b6e16a6a42a2fcc395419d5fa19076719dd6df6dbf7520edcad96228c4eaabe913f31171dd6f5e67ede74d5b8e8613f1366bb15ab5d55abb24fffc9862b12963aacd978f4659a63cabd16e7eb68b4050bb501e3c21fd9cf34923518a944a3d699412a552505229b5079de8a4c48f9622a250c45145e4cb3983a224988645e1b74926171ff1958bb319125cf24421081389c54824edea9ea473f8ee4e9e28d4fb8442cd4a3f5306f553d0e2e69d44d4f6248dc36eab1ab289437676bccdcdb00e8ee15811dd36699c13c33998086e9f3486c144e1b66b8881c44e62a230ef1a629b9a58cd0f148d5fb1172aa567e0c41e62b5016f49bbea48bbee83b48e1df9a2ae92dafdf91185379584766950f8f8dc50873cbbe24a7745a1b5dd3de22b4f89a5c45eb5c3636446c457ce13e3312293892e1130d82d22274727168b0dd9d9f9d72efbdfb178a9140e1afd0d4f85728be68f36fb42e0e08854313b0bf5bdb911750ba3d128c53b85a6fd636bb5dae8feb8af142952944413ec0695a1b03e3ea7d044854da2425b9aa5ad58a15df657bc676596c7f2581e558cb4572059a16d4f8f770a47fba3997e4c9993cd7c39bd4c3513cde6c7ae9968f3f49d89c99c1385a282323dcae451af124ae96212a5af500f0a6dce077399a04e3a8885a9745033ff938d4d4a3c09452871540d39bd4c3553e964a2d921766727f46a6885106d96b638318ba3a23b5588c5dab0685b53b3229459d81faf9705626fec8d6a09b85be8faf3b342e7ef526c61fe53f86ddfa1baeb7dd77922f72b344dee46dac571dc4ad364b12659c5388ea569ac8b52ae45d358b1b6e8eae3a3a445d75aad458b16a08d72224a51c528cb5b20a93db5e714ea2375365b61c4db2fbaca565e0d2b91b0db2e74e5e13985dc0b557d1163e19dc26d9b60307460e81a8bc180d1e2a19c88524c37a71765ddec53c5a9a8aa8aa97442d4ac33323ba1ac27be608a80d1352727468c182ede29c43fb55a2d46fd1143d7970c193256f04ee1ed99cd6632a090a1a98f4fabd57af14ea1dd89c5622d6aa4a5a98cca6262b4cb7e8ccee19bd68ee2608fde684fa5d3c5d022680ecd99e10e79d35acd97f84f0dada13f6668faa2af53e8b01ea7cd5027943e8552ba10511d215ffc4f421a34b4fbf8d4a8a15df66b684f9b60baeb9e530dc95325447584eeaef56a846ea48676594c26c3a25d37f612f6c982dd866d489e94cafc51357f4c81f2a38a2d57decb67c91a272f4fa16f947007709f7e863a506056616fdf23efd36b943e0977c89bfb2edca185d7a2837c9fedf7a1884e0ce113553a72c2cc4aab5cd9971ab768d7663bdb424f21dd5e1824f4d4869e0b77003705f0929a9a8d22ead003dc278ff2a050caffb09a3142871e600e75a000ae4215aab075e801eefca7ef71da29914c5d9493395fea7ce17ab002b69ec7c3175629c3fea43da04229575ace584ab18b766db6b32e2e5e8be6509e9f78a8effe2494d2a5ebb847bdc77df7de9f4294a8bf45d37061f59527b77e11a739ee5d340d273a11cf453b0fcf0ea10e3b9cf6ddc22a57dcc6fdbddcad3b5f391d14a398a814ca1c6b8a1c239a0100004010008317000020100a07c5c2304cc268ef0114001869a65260521c0ba420056110c520848c31c40002080063006666684801f5136e41a15706d3345bcb8c5bb26a9ba971362d336cceae45a696d9db64aa2034891fe3e08ccb636e4e733fc2f9592e0f7038c9f508b76738acde155c99eb118ecf707594d361e25954624b494b05ed5062d148a75c1e7175566d40cdb3e37bf20f2e4fb94cefb0ded3cb2bcbec51501699bca1ab16110e4a64405baefddc168fdc28bd6fd03d0f5b77add8380f653f4e451475f773117c5e19ecfc1ba98ad900c573f3a22d2aa7defc8aee5f296807c02712d0b25739b238dc979772c1e38c7f114ca29d15a1784bcae6eb48b35741a67354fb2d897e54d80d2743c678dafc9a83f17582b8bb2a055200b0c3e84091611f8b80ff054993fa6c3b423ffe28d64e7d803097c5bc27039b2ccae446ee5f09fd9743df075be90d591feae6747d041e9c09f269d1f0ce9c38eb88f1da723fad2979c7a5df8f537706dd1fe87372fd59cb3b14cf7b5ed5ad6202bc95d2726e3f22198d2085fa9e193a3ff09f43964f5a762d417b5d88bbaf716e17e233593789abbb84f6a4d2589db2937e6ccc935c1473538b9771e05eb9555804fc0ec878a40840782ef3140ffd7e4a8066685c3a4bbda3d97977b697cd74daee279e0d4a77db757d9153a67838449b70130a6c1a80dc023b100888932c4cb1ffcc475eefa0342ac7f66e3419f9a78e773a42d13ea52c2f1dbc283f818ddcff44de7731a8916788a027f354e822e2dad8050de23c264d8ef04dbbe40d1d65bd281b764d51f8362e7d3d2af39d8a4254465ce82d3630cce82f12479f384a1b87c2bd44dd9467328d575a489c11760114e11c56d0ae36c7e27508a17e4c356a77cbc48c62993aab364dccaa661333bb6d6296da3635a3dba6cceca68919bdd1d48c6a9a9adddaa666f4a609b37a76db756244854b1eee39b57a30cadcba43684e0d359a412cb0ccb150bf83bedd2e058c510d40030162f6275b6243f0235fd2dc34bd2cb25e9861df5c36a1ad363a6dc1a7cfb7cb44d6cb171a9db6c5bf37b66976e0eb17e2640ec43a285c03ea6d755aaac069a514575916c2d4740f48d172f27c0591b449743e8a7be50734acfcd5c34f31ba66a318e5af0ea37fe9bf3579e7b78093b5288101972bff2d3e5e113fe53bb724150007758020af70468f614b51b9401be6e872ea394881e4b7af242a7b517b2f32758d12216ebfc016b0b07567aa53fb04119c557ab6fb4fd38426cf41a122470fe6c9113047a3fe1d9d7230a171a50b946d25703b4bfb5458a55bb7ca5c80222a03d6c5568025b502ddf07bf0b9d7c3ac7ea3c1cd4924393d501de59882078cb7c880490d5aa94aa6cda473cebf3d1144d05d6af00fa53cd80808b7615da714c5453eb374e1bbe26eef776919754b39379475dd72629ffd622050210823a3a47d2dbc871370bf6e880af5d95262cb0b36edd91500403f2d1ac556d643ddf1a263f52b32cca2497518ba891c2f9631298948ab960772fa6dca96f2a4dbfde2d3e1ab89d01063c78607aa6a443b55f2eb7d000ab2c00a080da1c90e9c8563c19847926642c0ca3e6c2dcb3bbdb96ed7124467c8b3d5be11a643e7347e53008a8b0a725625c85130a48351832b5a190d7ecbb7fa25b9cab37f7e8bb38cb4da1803e84abf4eed5c8faef18a8029faea070c11e2be65ad513f25c64f30922770e587932c5518d9a27dfe7293f81909c6b4b02e355e0b460965ce0f28e0bc55db8fc31d6ae4578bcd1103bb965bff2df0efb784eccf4a8d6106fe9a1bd89e85ac35d7524e422ed0f457fe415778867ad0a244e421b502a43a65009d0920557fb096c0aaf6161bb1315fb915d26b4d8ee7f6fe79c3b8e769d2a58072b5581eca7543c28fbd440153deb1481b2d704117ff843592ab85bd77684e46094b3fa824c1aa73a601aec00cf073da579645ad35228523de488d3dedf548b580189e76f8af1baabafaf2387731b9f6771cff5d1b3684444d3ead82d48945d34f59dc6e0aafe9246cea973ec01b49a0520ed73dd028398b9fb7b151493750c0e5f8fbc3ad412a73fc6c9d4b052e9fbee1e0f0c1d8dc655ac8a236b3f187a40db71c637aeba66cbb12d9c839223b239ca33bf3ed57ade3f237eae19f98f8256c26fc914b781a2a32364044c7ae08705fd00210744513e6628c113d30ae0510f8f58bcaebf8dc687b8848b0158d1f2280345094129e2074e7870378b9e50f88fd86debc064858700ed27d5d65c1c422da2c69962a93031f21aa17f61532052540dd750913d431019c069bb658a8a6455d280671dc0e32910ad201d6bde59ff82211b5b44c74adaa71e1b71a1dd1d7359329be8eecef532a24f7293c9d0cd1a96c8930877a9b3d75d40544c4e5539092ce365f2e005ce505f9ad4f76e4f8968373bd147af60b3a94ec65d46687a7b0027514f8edef515b7efd2d6951826f8cda9b020dbab9e8e157caeaf8d14e8b2bf92375d525f0ae69e9564e214f0d37f06203d51676e0f457ede83c05d30737a45cc7dba3d33d94c781fae2a686427c02fcb82fb3daa023be47fb5951fbcb422578af4351d9dc242680071d082a864d1611fa3756c8680921350daae283279a1f7858645f0ad5416087300e185c98aa03b6537fc55416450d9481e9282c41efa363ea3daf2bdcd6ad50f71df663a3a13c60534924ac6628f991cbfe7c55ef255966972b90d543fd845aeab2ba46e2c6f51db3e8b735b1cdc23685a5e146e2d52f3c612314666fd71a0baf41eae1d264e643e67ac9882c370d8f10c28527b906104f346b8f2cd87b75140e8fb10935d2c67b59409283599d42ad6e1f549fb13acb1ad6e6ae7eae6120f14bb6fdf1a477fcbad2fbb32062430a40e7ad7d987555010640908fb1bb4a68ff16c23be0fb1024cecb626c550f9c76f73b34ad7d7dc0189a034c476d7bb08d893aaa44445b7e90c21dd11eead8d8a13441ba8920768aa0eaa41c58d97dc18f0ae2e013fa9395ed59ccac6bddb46ef39937d154bbcf7e9d435cf6b0714943563d17b919ecde5063691098f8da0c6c5fb182a6be79d6cc986abe6e67bb3203dcc76b6b067fa95713771bcc474a58eb36766755eaff682e11e215068131852c7fb6e2267d24feba052b707d99115d186f1a1de47b61b624e2500e5557ccfb9d60f90f2224a4515b587e4c433562faa3ada9ce8d24927257930162324305d987f0ed4ac25d5953aedfeaa85b89059f34d2eeb7bcafebc9b19608f8a42a926833470e90359ed2efdac9c1e65dc8b3acd72e90e2d1b6c5be856bf96de1ce21796a40f4fac79cf8e9e6187769b8dcdeff9a042ec1ba4191a95364eb31714c20a47149f6c8dd61521e6d545e7c40550eb0377543a12cbe9591b1ea4e4f04d67b3b9b6714fcae8df363018ab83a4479f9c7c1ec86ba8395bbd9033b1d54b98bf4b6b45a37b2310643d05462acfb72586775351b6f79c5c2b1d6c928a2bc906e9096a485a364ca56adb6042f6c5facf4adda4a12da3b05fcb952a597d908c22da621ffbaae01c644ba197a249d34a914f2487349deef52d101771c3ff8a91f0e67f78663045dd234391fd4a4508a7725758e83b7b1e5dae84079545c2ff257e4e15acbbd272a53c3c35635195f672179dae68c08b0f8cafd416955bf312b0abf8156b5dd1a3c7260d9559a5ad5c0533d6b3d993c00137cc7893b33a5ee0641a55db674ea982c5860dd57493b8c04272491c6cb05567c2128c49a542c31e0cf0ecdc43a8c8634f3cd92b0a21db7279c997741fc09807a5833159c4913c8b8a52371d4af5a95b7c0b1a3359d9f9e0f8663fe4439b7f3d92c74c2fde7a12beed96477286ed3c97f72d0599bd8179fa1698448d78ddbc007dc8ee4ed1aeb385e402ebe4e93a356f04076f66ec45b045a2b6d2739519b8903544eb3bb3cec4835ecac58b0f9226f980bdd3a825918ff33d55f7028c052eda05e2abe4429a270c99596c1af8334a6fc2b0cdc2460dbbdacfd9e82a15e6bb2e0df520d33717404043c0553c5e8350b898fb5522e2ad52dd5b3d9d14d56ca34ac68feac07fdf9a450135173782c0578c465a90e801e00407f607f716f73acf0a1f36f73744f9d13f10c178725c0f7e6a97887bb5d7273bebd061a71f925379c8979f1b2d222914a977c5d07e331467b584faf2948f46e2bab167359bf1e4cdfe0dbf46797ea688bef6121e22c005f4d5addf7b9b93d718a524763a6c030b3dc2c19003ab428750513be64d123479c46e78b94476a5f625e48bd4e6ad0a0be76d1a57f46a4debea2529f7585fa0e457ff0703d1b2b8e1e6406d2e2722c9b2ef3125f2a144f79e7b3bdb4db0f995fa669bafad913b2d303e456927b975d8c9ff62e271307253c1228939a72cd85c89edb1ed8e2db8e024095c2b9b46e05ef64e50500074fdee897a180c399e5ee4a30942204837ff0eee1434e3fd2148866fbc11909e239523739c2b524bf925986c51294f6b0e74eba70ed04d26d72b3d484a37e2b9ec930d853ccac91bbfb95efdd98abd5333d5ccd5c1feb6ccc84b500ef7b647aa5a874975f8162b9f0bbe410b933bcc2eddbd546def9b90a172cc50e72ed75f7ecd3225c841ab32bd6ca474e5c3e7515dde330011418089afbaf56614568d1d1d4cdb6a2b8badf65ed354ea040cfc4b682343320603b522e0e4fcf9fdb3b0452cc07556b0e2d6b2856630591a30ae0a8f74d4e2652f8febd0b2c8d8ad0336f9c11ffee5ca7dfa901f40e4009ecb44956bd0b2ad822c5a4aae1695580beb1b09de7c3dbdba3921913b6edf383ca0b887afc2b6a24ad3f48e7d34e441c57779707f49b8b1e43c8c27a23796e550d63161fe3309014891eb4befc2a6aefddd47981f258d1384fed12ffdc5d863e194ed5fd65344dc269ad1a2f479603a09e221ba7454271574d8846a7dd8cf5d45255edd9cd81b23f247882626352c42568e0e63ae7fd78f85e389f2ac547b3c3bc06e2f87762462a94fd3448a64973ba2809b0b0cf35ad1fa399efbe61a62fbf714f9e246e80c72e98321f17dfaabbd172b29b00bd979386cb05a6402178184eb6f40c4f9e3e608324297f7445ffcf922db5bd40edcefa1afa675383360fd853fe658bc0d70cd362284c8f19f6531919238a14d06bd1dc4549f647bd4c205136f0e33a0dc335be0ef9c44bea9c67e95128c117bd067d5ad24fe19b6eb008d8f6ea43101521b832e4614df8a5cb41f86733716c20b394df6e3db08f5401b6a654c66daf4dc8cab92c91fc1b8f85203f172896555cf664d211f4cd4679a09b5cd5fd733d80bad65b5d878f530a17219b27075c6de1c34681548ffd8d6f25ad90919bf918d1c0e40fe65e1d7e1ce92aee6f494d71017b33271e567e9c1e3bad6813874380a6915e67ae96d42df1cf8c3ed0683891a069f43419bd00a06647b2a4e67681b0590860ddbc475715800ecf438d0fd0c912a232fae7c2030c29c2d249cb5e64daa079f707fd11dedd3605af20d800aa8cd4c649b12a3f5ef3f80277d3954167e739bd13deb5d55307c4ee507b97acca4001a16f08661caa7ac769f2af6c85617e60490df3c9fb6545a745fe277bbfc66e928000490a61b6e62f31ca83104242f9f383b60eb7d0515752445db7795fc3e45e657de808ad4d77dc2da9e7e4ee4c3bd2d0488402cdf555e157b520462a8b6f18902c679dc3b459c8579a398c938a2c4b6a1ed7d9a7391d1406e1db86fd2f1485916c675008f8e35c0e5acb57280917c527bcd335e50985d86be42f2c0a3cf0a5007d8dd4d686adb315ab565e0cff9159056c3f23f5246bf86478496178575a842efce2b7cf18a91dd2ea363b2fe5b2a82900620fe9304664aecc206eb6491d22b182da3182d48969efd7fd71d08e9daceee05d4fda26bd4b463df833bc8c55915173e28e797a3b7d3caede09eb46ea543b9d990cddc61d35682b4505b8ee647b5e38942b6971ea094c5208d4b07acb49f5baa1ecf3d4427a1a06cfb1f17cff77e5817b54f721c20b656c7c2c63f7fa07aa81351ec4960ca1219207488ad3ce9abbc895f1fd7037423b51e056065b88ebecbcd262830e80ec01a5e039014a7b616df8c51bc9762c65935c7f36766ad0ae2233994e6f447426d42e58807082338d99bce6584973a07076d7e9d0c24b74ca01a3ada1f507a912224668291e5ca1cb85432b81220cf1729a1aaa0cca4aa707a002ead50c79cc261acbe93947e944f7b9010262ce53a7a5f44e949794d593083ae9e695ea7ea2b8c049eac94565be80d20cbd73987e2215f6d9c4ff1bb6d066e74a2c4bf5da6ac3cf9063e7a4c79ecefecdbe278932cffad58ccc15ac33750d411faac13c74a64e35ac0f22bcb1482da1a149ba897791bfd011239d185b91b520a4ff7fcbcec0e23acf8024046563c5693d059444d8708c468c7e22c4e842af1e5f8d906681da6866b75df82e4736325aea7b085dfa4a6ef0dd62eaaeed95c784ddbdcdc456e653d9e0d42066061d1d4e88ab003a5a04e6c1cc09b2c826eef59c93dab740d9348dac3db6d18c90bf939592ec367ad487bf99674aed02a1d0aa39a37ffccccece2793572783b7415b39a3273ea3da9eaf16b59e603b0c79b11286510017322c5adcc13b4f5b210db2209fecf18341a829fa8161293ac30076ad242c132dbe054065484c1f48aa3c594b7339513279d2369d1f9a35c4cefa8190b21888c4242f30168b9693246494996c856e1b2bb9dc534483345d1f4eeec0302d35b60dbbdbfd95f1d0c305650b80808c33795abd19c848d1548272ed7bcc146ac2ed24f93d884560ecdbb130cb04fbf1605ce7b012cb19e3cada3e0262aa167ac8e01e80abcc2eb8c71c0322869e6d988f9ac7a9f2d08e25238f085a6c0422a954a18dc05b15a2022f6d46773276c0dca77e159ae318c2de142efe3ce91a2fa07f5118209872428252edf2581e1c749df3b09d7a56b0b9f0a2711050d1dc8f8d4404e7dc6a337f0867b8260ef444df02528ea0f51568803eb030dda444fefa8a64c49096f290164cdf7deb34df1a9e0e09970d2e02eda49468c88d4b7eb0527c110e2a71c12ee50dffb7f5f67af6e861eb239835df2b0be772356ec1205a3c33165ebb9a0dac5efda95dda92db62feab48acab2b17112a75b73f3738e75c6a948cabc0e27242b5478db8e4ccddc9d9291efc1d51ff1e9865f60c77fdd1cde2ec1308602b3d8571d6c323eeac9a8608f28eb54ec499743f081939c0a6b64a5c48c7c48ec43783e8a9de32e3e8e39b6f44d38bd31bf0f6be37583d52bcc46263817b7c00a543fa212b0b2c9d8941226d33ed4a92cdb3b6396a66b92565b9a698c49142836ef3e6a55d07c0424559e0a535d1c74246909e3a8d501a07a269ab7745f07890a0e25732b1fae6c18cda393c364180d91f57e74d34dc661ee43064df7340b5d7d7cf94bd5a207bf2269b17854d0535e5499459b1774056638932434194b095f15dc662c68138252b16bc40a2dd95cf52ce64786573b8e9b0060e6ed429b98fa351a67376319691a8a20b42f4e884a7355f0795e815f58ed067a86c1e7819472e48d35da0b8ac5f0f386031fdaa1adc163b1b6533dbbc55b2d941b43d1cf585588b6981331244c71aff4d7472249b11ada37635b9f17927477f672cb0d659fefea07012119c854fefd9704913235ef5e76373dfea1880358b8fb7dac7d12d8df6eb6b698ed9cab58810adeab119e7ea81138f4376c3359bb549eba9c08eb7ff6a6bbec2d5874f91305a489c03ece617a80804656582f364833364d4a4b30cc18ef0742f17da171b009bd7849e21c8655d2c56b636a54f0cec9993b5d0df22006ffd7cbe6f291379a64d3cd0601e4a0566aca4000112d2211581075638a4586c688d9232d7a7a881efdb32478ecc8027e272de720cf34f12adc4b52c46afce308c767439ff07491480360066947127ee152cfaf7861942868f14b84c17c759661166ab05e73120e7e618390d62534892bb30726dfff5edb239bfa3af9fa06555429c0306f9cf7665c735b847427e11782864b67b37817d3c386d5054b85bb4823cadff2351637dac4af24758679a9c837f1f01a76a84c8b2534937d4e30d6bd66c3f7428ef0c5f2c6ab82f53afb1a17e3e0854563c1bac8f896cc4790914bb54f25e360b2cc920d48784e85c84c06910934816c97b373cd4c4110c3c620ab2e097783b57085a8dad514a14544b81a4ff60a582dbab79e70fa31dc4b43020e8edcb90be868a0075c93ddab63153422b392f1cffff0024473cd54529a966ae013900cbb831a12569691de319737e97e975f0e53f44ce246a89c594cf5a2cd39b94da6baf5d8eb21333b87949d254b21727468b80c14c7c029b9d2411623234a1ff47629f4663b937937759a53b0a8ee9c6f5877f888098372e067dea02b6a75e9f957497e78b42857a894f3b4efbfab95a594bdff9852eb4149da69356b74a19d6fe4123eff4e492ab7bee9f991f601b48bbbe09a7d91675af05f87a1bb2152652bec0d908df3f3a2c57327c94683fb7153f4a18f014394506a24556854930038ddffe93fdba3a16d6c87f33e725c22398a0cc0ce66c17a834698380bb292836484b4c42f1d197084752aae9c94d703ff1ff70236414204ce1535e127503631c67282c113930072e6b884c3eddd4201a6ed12d83d3a812784abd9c53484bb2fad75013e35a7a55d635425cd4a99f4c247aa371e86ad63522c3cb45037b34ea362d54b0d14dac71cf94490539d3b84b8461ae59e1780829a582c8ac41f159370bcc2b69c8dfd115f75546ad6888bf1301f9df1a559286d49169829a46bab6f1916b6c2ae0624452b2cf12a3a29330a3cf993dd8d761f36a3c7454a3c68876786b88bc260a62726e15d92a69daadc92a2945fb5985bc5d69fab8bc97131079192392c3dba1bda23cc2e18f375f6b8db88c46abe34504639e04519bae83af0f8b40803670fa6bde1a98adc453c364a1d570a96f98038c6ea8c1b2888a89d6fca3e257da360bc5c0d93f27d02737529865d21f0457937a3d55e1cc17dcc4e19c6f7dd9afe0a5fc4246826ec11c1c4ea57a02cf47c1c912e8bbc96e07c5ab31e2e24669dcbac0a04c1288facd859e8db9510db4674cd1242ec69ff09d5375f53952d66b330912981192cb3757b1938b1a0cb12335e1e55e3ad00790734d68d702583f576af170501350cb00c35ca98b5a0bb0c6f08627baf618908eb7eb43deb8b1ea0bd88fc3170108deda55779af37e9ed4af8e405ec0d99dc894fb6ed87bd75929fdbebceefefe358ca7eb76721038a8d3e8bad497bf9802de469c36af5a60efd5549b772844959b52411784547f9405d9b1dee3f7cbea8688372f2191b78e11495d6b568b4c6e22bbb04ccf3e5dabc3d8e90a41eb4f8ff1d5dd53006c240580c3c2ec547704bcb041ee53c9be63ee83402c92a437ed8064e66d866f69c4e66975dcedc0f4a6155df92e9ea58efdcc0b92f80c9b38edd4bb1e6400a677ecdcc158c8214d4a225689e4537512ba800cd3fb1a5cb5617fcc5f724812e11791c02933e8f5b6b4f4c258998dfe31965eb3a671175f44c2f55a118b808c766858056225f1c72c1d13b49a8527755abc923fd285ba025f4e069dd8408f580d6d881b7f49728403e1a5a72dbdd9e9b1e59f2476bee0a608e72e56e81564791e71619e92ed777f6bbaf1c49f144e237b7d53004be6237bc342e8e34800ce58046e33e14b30d061a68ceb89bffcc698288d033e40667e009eed799ecb2dd74a77863596e1dc38b02ab03613b438bdbf3ac510b6b1cb63b68c03277b9d2dedd7d98ee8dc6147de84afbd22f40918659e777dfe6ed2774666baebd3322151a36e2dc5249337217f4cc30cc7cfbd1245c1b99e09fdfbd766d527296a8dc5f53e15ad372a9cfeef1d513b7efba8a09dc1d138fedc8d6e0a853b11d3eb360aad517889ee0eff8ce19d979f30d698ba54a2a90a92902f9b54b116f9c2e8e6d3b17c1fb0768a04892d5d692340ff2db7cc940c61ff3365dab42c71fb9f46f095f3aaf8bf281b5458dc15f6b6b8f4e289c2c502c7c0436022aee4c5ccdb6c962501a8c45681904ef16c26e1798a0c90d7a8e65ba6ef2a8600548e127d7eea2bc427daaf0300548a6a9ac67415400faa7ffab50187eb74d0fec770edec7b2696cc631e423cea5f10e82701064a55c3ac552334ed4025db075a76cc0b9a68dde9919612e3294f03c355a6ca4d896fe53fdcdead0cb026e3bffdc614116b8bb225b59abf68ad43bf863165292c19fcb52a434f616bf2c9a3a4e03adeb0a34e95b8e12d969570ca6f6cc39b372a59abc8474600d57ef19a05d5ea1d98f7834193a7b69fa8576d1174560723db1b8c05c6186782b2dba208bef23b8d91b29eb6b53db123be15dbc603aa312d3169943da707b6e3d3a35967631a45ac08a8bc4fca920c5411e7d4f2a25f6a29c3e7353914de8b443168fd8b534700cf5f58276a179294d8132976d4911689deec6f302057099e0bc70d025672b53bf04288b537c8664434e02e2c05e16b82b9c23c1534c784d8a7e964ae0e502d57d79be61a2fd682141a0e52c109b671ae31699c6cf7d6d45c9d9873671881a8d28ebd5f69b8537b8273cd46e68fd5caa0429107d7286020bd6038a4737d5472b99896dc6a9c02596d1c69f4564c5a3ddd7e4a02af71e8fc5f357ad9abbf8b2d30b4565feb31f2a924e0b062afe150becfe00e48f8297d50d742bec416f47ab0e78abdbc75b84dd873c454be11a73b622a6e4cb5e78aadb87182f87ded15d65b71cb873e1f5bf686cdb4ec04acbbe03ee758e47b376defa217e8e990dfd71e61bd3637f295b2377ca26526b2dd2577728647f677a33d173d44bf4faf5f7a84ebadbcf5a1cfa65a7702e326b9cd3906f2dd37da3be8dd4737a6efb4b2da1e61bdb63784d0ce4a71b73681fdf1c8edde6cefa2631fd4d83ed29541374274957a78b766754ee391efdcdcde45477d54637dfb950ef59e03e3b18d4667cd18f49489951a68a0cbe8fd3fba73ab6c5e63870fe8bd2f8ffb5d5fd984ad94bdc88f1d61cad2bedc691859acbc18c0dc01e540c6df740dd3bfcdef7b97fd134e0e0e540be4c822053f0ef6cfc6dca1e7ca3c632c90afad151a3673327ebc558773e60c7ba50dce303673b9827ae6750c70e694745f05f81b6193fde79f39404eda80f675e685bcf099188221176803454173e2cd1acdc354d5d52d687ea57c8e38f47ddf706e24b1d0c4be5c46ea8f1262932bf847f083cd9b86365f949875099b430cc58637432edbe3361db807f11fe8a0dd439b83b4eb0a42ec756d92e8f8069573decbc107baaef35640218c118847208fbc91cd4f344d09bdf5ef0a12729a48376770eeef825f24435b473775b71f8a62917795af081910e9058128749c9be87b726e5c398425133e9cdbb959b6a53c0136187eac3f62f41827f3edf9be01a15f231fa7c3e05b7344645e8bfb2019e267c53122e49c2915f38f70d46ac7888a20e3c0dc98babd07852b9c0f00e15674b2e642bcb8e074e1fc9d67957a726ded1e06692fc48b85b13e73e5930adfdb026e3285f0d6e7a841059142cea136d0654bf91fa77b70a69b451285e54767790169c5f5eb0a3b97ae5e38935467a9b7753145f0c3579f09329884cd599089cdc86679f6f0f34463b0de13922b7c6c723d551e7659e7e4183bed1008546351949df4f908d57aefbde4b8e6d045ce0eadfcfcab5c14e1d37e6197a9a52dcf83ec09bb39f0151713b961e1846a625256bd26adc16a9250f925aa5ff592849e170b560a0d15aedc2656011fe635d18fc8e98f313941dd1c290bf0d9c74d6c462049453fffc0ec5e41ccf3e822813af98084b1466882e2640b552096bad17c5f61ee0da358ac46da92604d9f0c5ce755382a8d200eecef91af538971a4e0dc125c251382e5114111673b3d40bd638ee98ac32592b2d2c6614588405d7fd55e98facd31c50a84311370646a616b0df9ec57b76cfab933d84cad2006b2bd0d7e8cca4cf7fe0d6a5a9c40d997b4d05adb1d067241eddb7ae01a9f90b2a893de34d8c750be272e79a5e0963c8d88123addf74b2264104d8078bf394c403a161a83e8d142cd627cfbc7551f48e64bb08c3eb7ca8c68d63e8f34b88ae7b1a88c3e64a30932024cd909357ea4e8bb87df11429cd139e8a71be4f9cd77856b223643d5db12280b2ac326e093280cb0c8d699c11173d6ab86f2547e1bf9507478411f878e440b4bd6982386f48f3e658a72991834112e07a663126500e5455cba11a6195cb22a09531c45d1b73e530603c381f21f1735aef6754398aee5a0ea4551543560830908a1b1dbe9487a9c19025077a6dac56150e7d6a3c110aac0d01c3257b8e244c46c30f03f44572ce564be7a2caf3f703790c4a7e7916d8fc2cba8b4b3be318478e65e5e227f071e8c52a37442a394c84393eb72233d295ddae1d70a707c48295103d0886e2091b2f5a5da008c8f47d4cb48f9d5fc4fb60e2a2057937b3d90cc2e36869090a688d724aa19fd123f63e9716752163791aa065485ac1334e1f1ab616f0fb27ce2c4e41319cdaf7e088810c23ed6dcf6d2e8402b6d0122dec53fe562774f0a4a4e591ab94139ef2f406ddf39700699b817d5b6dcb1d5fdd2312b07cc48d5aa22039cddeafd23cbf66dd771df0a9ff5f79688e226d00949909e47545dd3488178e6facd1b81b23424d8e4361c173699e740a6852e77bcb3d167d48a71cb5af3b10d174e8d4655951f4ca545889e1c55ffb62b19228365679d47b010fc99ea875c3854c81cbe228771fdd98b9e43ea401aa9d735b2ca8f50b981fb891ddf7af0a0894005634a7e378d410bdd60f06edd0b6d77d2ded4deebbdc095c124a7f07c4992dd2da7f9096b72ec87c7b356a03eacfd5cb192e74febaf6c6dde110b019e8db7673378ba40a28dba74aa692b5e785df7b093c83908fad453dd829c4408795df05cd9245c9d2687bbacdea50a44e86e8e06e46f64af4c6c51569a12a47c6df0ffad300bf4f2bc2be381243df05f37cdf851fdd8e3eb11d862cfa802f4310378f8d5479bd821fa0e48eae240166940338a473d07c75828a33a20e2f67d5848b4fcacbf7d2a4c8debbea960dd0348daed737d9459b89f54ee1e621050397a16bc45e3c785957d74edb88b5f05a361a014aa90c0acc9d2e4f24e285e179debec2829c9e277cb410499c59aeb77895bd23e4f91b83ead217ef358967a38042d1f8267e131be36f8b25cc087149bf2ea7f60d100462da31b3e215e685bd4cf0647bec05885071c0af3c117684bc815c58427fa131527c12106c0b0e9f28b91db09c2b192e430ae87d5088dd267c75bdcd23b469d0c414af4104717c3a21f83c2bac889b101f29aea182731f5b62a8ac95c51d2d658127f02c90df8a1cb845b63747de9e703e2fb19d92cc950261d86a697be84fb7b84252020d9881457c11b1b196a0dbb0b6c24b7a710500dd6e72177df0ae60c953cfba663614595e87d0db78ea5e92b8c5d207381d53816f7fcec4626b4760ecacf97683ba8f4a1a1a87d0cb1f57d695132c0969000b19f1cf19fc886d2fa42f674caf143f8199d5ff7c2f801a14152bb2bfbe9596d9a4a5f16e3e839a52be8723d115dd08e894d823f9e2d72c8cd22394c7fa4430158a26cb9c28d36366de7316526363fe4091fea0272464fb5af2c4c65ae08b2338a101027b8ed7e6385ba07d42fc02b93d0bbb6052f8a853e1062c04e40d9a91d3c7ea0380875bce4b22694bb39cffbb47a8dd32091608428d9b42825247de622148977847530ec356c18b308e70e14f6b182644a6a25aa37bed41c14c8a0cd591faa22d6884e95b52029dacd68dfd1ee1feb1d0be9e6c0587defe0ee502a946ff9954a496b50c3906a627c9cb68e9beb0890c59ab8e67bd022daea62e0f671df45d6a692c9add0368f32d4046603c1ab784833710fb3f57c8cb5becac626e2c29dee9e1f3ec49d388746ce82103210975c1b7d8ee18f23770fe28f950d160e0b513d1991b18620e7de7b7044cc1b46376e10518ecce4af308cf09d771ba97e5890c4bf1c546bac5390f7a60a747858869a19669d989df843725a03371d8afb55440b7a7efab023c3416a8e131c22841209918d62349704cec6af10bb0608ca439b01ca962a706cf696e7107c833a88444e9fbd9454626a79b28d43d8d41d1df7907c5855fdb4fc51613192fb751817de48cb4651b880e1ebf9d2f61c1fa6ebb6b79b3a2632ba49c9e3e159c07ede64bb3ec1f51a8a92835a5764fd0a7e0404d265ad3dd670709608758419f27356bb4b62822c3a2f513c20a5a53f7798bacee38b75ffb3d956fa277ef14709e86f79c15e1416dd2399ff1dad5f024f860ce4eba724cadba79a623a1c08277c0af573c7fb14e1b09a7243642a2dbf8cd5158ae6595d5ac1bcb5c59eba518275c99d1106ca334e30c90f48121e3c093e65f4b767d4158147d29ade5f37ad8b56ec4b8a4f9f02316c2401f2537f2468b94fd742de19be1d0e22a4b69534397c0db1ec0ccbf5b5228abf4297ba91e3d5abf5d6aa40994eed2a01e713f3ae75475ab8184644ea9adf8a5c72b000c4aa00955b44dcc74a54ce00dd0a2159f1008b192c92cf723960a5956ce653ab55eb170cbc7d55d85fd764055e2f71249fe947a0b974b0587558068eb38457c423af5ddcc72f53414f531edc6708580c98456854d8443364556191580967fd0a20a6bb6193c6efd6d16e56064eb5b4f9a6ba868c0edd819988afcc4c84da45e117308e15a85e372f3d0944275470cc85142ece657eb8d420e1bcc06020f99211cec9e87c4efed37e0364a0dff8e8f6ad02cb634198f6071368f9a483ad623616915308fdd10501b4b41e3f31a68b82dac3ba05cfd51ca3494fdab29b806f8c99b8633d9a6438195b04313c0d737f89a58a46dbf611e04c6d8fed00eaceab7834686ab3443e8dd324b753ec171988f8545ce626192f8abbf710321796965bf46b9c55ed1375398060f7f84a9802c3c4516ec8da900c30825684efb019179e58e47b5b2845ccb35b1b2e5cce4e8b080f4e1231771c188f94f2c350e90fd4711d2e1d15db71b6730c0ba6e3f460d8bf980d282f827ebd6b95e268fc6bd86c0ae174f7322c5cbc075830d0195ed33a0dd11e2f1428e8cf4f97410de8fe4397bb1bf7c908dc3d6b86882e04ec01a37f78e635a70afff6564610c64d5a15b1be1dd606fb30bd162be838d9ec6327c4121fb36cec84664e5d68f9b9836e97a4f20646fab739b102e522b64cc17d5d98c00d097b0bb31f35b18977292ba7dd190b0125263764c92532db765e0dd25aed4fd2e84fac4ac97bed347c960f8379e9a485cadcbe4183993ec3ee576e2a50f4dada3916f2a8770900355e8e505ed6bcc2f61ec36bee669c919587a5014c9ac52de337b7db23f5665c0c54a6641c6690c8b149b17f22bd11dcbd390dadb438fce14dab2a3b600973d395702f3c2b4176a080e13de58c03d404f76df1d481e4460994b181e15f37dab587bfd6e94cbdabdcb07d87cd59089b2fe868c74b1a848d4efbe2c41a9895f6eb426a5d16e0fb918a144bb990c85a9b3f7f3025716f52bf0dd24144571c6b0df7351e1bde8ee26b7a827c6b0c7fe179e914bc95addec580e407faa75d164f4d1dee3ed01ba017ff84852191bdaa1e3e10f8db9c984b5afef17a063c97e57155272bb2bb9e123f58a18d12b3650d50e7c14919490f65e11757523ad8403b809c6cf72c52ddb1211f086d0312d2e2d39ed2fc9f7cb365c865e119e29af9ab204f55762ef39f794dfebd1244cd238bb73d740e6fe541caf98546a3609287d3d1f2dc06432f5a5dc985e6cda6947eb5ea5e9df2adf6accbd171c7bfe81fd18e2265ee6243ffd9fd3a7c2bada7f2c33524843970d739b60c1adfe0f57dbdfe9e6187c2cba8062a807a53e1370c35638a6d99b3b0c6f71067bc192cdd5d5e5cf28ce863b8af3df2c40e7dc52064ab3da55ab4614eb6e234886d1535894ae7122ac4fe6115edc88d57a3e892370032e5a39db9d918082bb9d6066b8251ed68e486781ec979b4040b3323bbae72ebe22a7038c393c89510db8f717dc203001a4a5be63c450f3e10cf521e1cd77a30b79d18554268dd134fc4f1f32cd4290a9c144317857983f039a5ec61cf64689a92563a911fbbd66266c0b08d18d067e1244344650ab67b6270ff88614f7e964bacb42029abd901bd6305b486be62099d22dc92ab35103143325e6ab027abd54dc5e58a755cc31c394eea5b37f2216810b09c7b99472681e3476d4431810a589e789464697bbcf969ddf8b4e8bcae731dda3dc3f6283ad178147cc10e65cdc747c698f8c8a10c640835215eb83f18e89ec046317447ade7aef0f8c99ee152f55e78f36a54d48f61ca0153841112b015f994f271f24ae48aea4bc72a0941cbedc1b62387eadca0ff7469c390d704a80cbc26321dc113e7aa34e57ac497a14b820023a33d9957387a3b07a70e918d810d2a41101bfdba18abdc3985237311daceef640c0cfcea01738eae455314e71833dd49fb4c03d3595cff377a904b51edf4fb841bfb4b9a0801b9d55ab9db80f06ac7b008d2b0664110aa32422b581ad29cb22677276124b2ec9b1beba280a7498126ae19c7e681083804456167ce43a4b5c264d8c9a1b202e4a9138caec7b8b14bd7f94086b59cfe67beb2b4b04c7063ae407b430d8872faa4bce9d1f036681e7cd4b486aa217b8380be7521bf2289b75a178dd8e9f70c2fc77e31efb04a1524c4113ee100d3132cec15e33f13da38582f59f0e2b40880ca07567bb871d27b2881b743b338f8ec1b9bfbf2e8324484f8b98f76d374932672f803ef272adfd1ec6f96bd8f8b43e449b78a5e065d4a952bbc19ef606b7178341a169ef42503af143058b1d7ff22d42a4f2d8332b59214a18e63afaa92f30992feb224a22ac76c7a287336d41537160a387dce745518094e70387d1307799b7a21025cc268880ad005f54d80963f5b64975173908a23521c940550039ba2b43c8a9e02b674d4b0a4807879eba09e742d95f7cb87d527021d355bf3e8cd520d0fee81caafc0b6f04d568d89fe65c6899c3f6d9e0cb995ef937ee61811ae2fcb560ad798b3ff994719f16b8f300e79fa4bcf30f1137f08405b1877680b73f9e41df293cf17a82007cdec3eb88b2b816888accf8f247fd8e88c6d75e25f088380f5e27a5dc0fd8791836a52d9ab6a3662eac6365c56811093fe2cc07808a232a6c56300391139ad7b8c58a5eb23575926bbfc4c8b550a8f4adfc7b61b591aac45e22133f49415ad375fdd77e5bcbd220c8695db3ded480778b70eb7325df8fdf5c3d98f574a8509708b5a65b2efefb1d70f0bc735babb42f70a1911c8a6e20f5bf5e0471709cea5649f1dd0aef685c3753bd8b5c720da7baa25acc0e870d1e75a7a1ab6fb44a25f656ec20717471a718dd9d799e3215523674ce0dd4ed28c9205c73e344cac8601f32244ea6a06bd54dcaa1a92f8c32aca5cce91247628f07fd4bbd9c774f7ce97fe8f15431c12bec929c296ff68c33fe950e0de50160506cc49369080e8a9b0113929d529df077b086bcc22e3475b9e1c22458632c45de9143d8b9810423c0d9212dc61c8ca3e607b621871a528c5d4c0051991eb95f682ee2a82391b73437283b8a50e7cb3ef35b3cc81fca8ef6272ca9fa54620487e3ec9a12dacc9a197c86218976950ad89fc71092e48ec7125b6547483ae132583c75934825bd42ca2eeb16dcc5fee50254d8dcb8d27ccdbc234b513893aba51b7f512b51a7281572c7615ea683898728e02c8180355a382b464908031d4e18d0c80c03c8acab8ad57e91ab3e3b958a3d43bb42906b2c8c365d37c67e8f7b6b4f58b173006b3686f33e10747499c2530f77418cc651adcde5cc6e7640f8a7fa052f2d4b67c5a7c16a7003905c3a4c430cf624243e0c02208ee674bbeb432c7b9e62666a216c7a83389e21c59e48137fafebda554a4c880717ce99b6711a660a1d5f2e783b3cd62de4f3b60ac54c93a6b1fe8fa1f851476c901b11e9e6e2192b96849dffe38cd8c908c090cd838306af090e5d3dcfdf386bbcdf053533da30c6fc96a47c116bd552faa558233b8ec4046809c0c4699c8dcb628d15f81e413a798acf638ee47dd64dde3fe22397b07784b64ba2c65f4fbaf6571d1b1a2a09ca00e1e91a8bee6963c3a4b9fae0910507945bbe8e642e6f289569cf96dc090f3e7891b0c1722f93fb0e8b8a56fa167f4a74e1a1a486baceffc616c3e0bb0e3280fcc7f987f289e382d3873a54385d0766d218c9f0d1099f006bf36950256a71f9969249eeeeb0c4f3d0054c6f5f338e542775fea938885262b685c6c1952344b29d125042d1716307699944c2acbe5d6e3d9480d1610430f2b4806614e794f1a2941631f1dd9188254aeab20964c565ece323962dfce0ed288524a08607c1181c7b45c1065ed545d7c2cea790a793643e0a3b73194e1398372d53e2adf9dac72a00002c1c45d300d92d3f5f21304ca0d868d13008d5cba813a7225f788238cf10a6c190389d64786b9288a7b63227d19a4ae7ee2681856096d8c99237c20ce16b60c770cb0e5d4ba393ddb5684bd07474f11e5c35b9c2151437d77a90850cc4f94a2a69c537033014d8106c0ed1d0d2a920e5cc2d379f8503b1c242cc411a4831305d11b81bb08c9677becef293a20274414855235faa03ee2bde8c153e1e96db3be2db637dd2d792317263fc89ec7e6039139d962c7669081535c6abd3936ac726571b0af61ac7df8b45a48d6524c559d718835f5f4f5a94902251e5db7e97dd21dba364c748d7e10e49c99ea30bcd707ad00307c993bbaf2800caa4a05d1489c5c0067a8345ab837ecd3a6fa1366e7134b858b9a1d32844c3fe8309afb86b9064c94380045c20820bd87b2412636489aba680c8e27990ee125a44d1ee403b4d7a2d32e0852399951b4b263b744c88bf44c6def874020d7024cc9a46966aad284680be4a92ce784ebb6611f7a82307c9f6935b2c66567ce8d40444c7205ba8fc2a15e507a190142a6042000f4b63d5e93dfc01252c189f9f97165e9afdda5539cfa9158cd251d1715c3ad9e8501d7f774145c3a16cf006ad7c02d77fc3f6c6f276df5d1d40f1815cf4bd539edb96ee02908d75be6587f6c134636ff7d57392157d225b59a4c28e8066a0cf28b99a9457a71b13e550a625117b5e068821d31f415ba58ff25c68e10934f2c99dad7b2e7d7794cf6216d10c958ffc160b376c8402c324b2248d8864bd60b45dc7f7f2808082f90f90127fa3a8ee4172fbc3b1ab23ae622dee20580334f4e9c9ff565774c5f165ac1520b7bc3180260e3ed78c2bfc40e6838c170466cfde0b7aa81e93c3fa8c724998648db171154e68871a0b100fd9f061c2544a7a3400348f4f57aa847ae8e047921c152efc3715b1181216848a81564642002abedff706d80decbc92fc4e65fb5897c4dde1231d4f4230810f2aac83924cbb988e5ce22227b686285f6211820c17a11ee67e583483b3094f8d7df6075781306fc34ac5f5967953cfc5e6f0ab2fb0767b0eae71d2fe8dab47d7deb87030493e1385719b8d4588786e1ace0a3c325f87496252954587d96c11a43014648be948e72cb3283fd2e8466d0699452a1c05f76b23c7e1ed9f81af95402747e089d642550c055f5fff5c5b2dbeb2301798eaf3af35b3eac2cf847582ea0b0d169a24f47da78c64ca4bb92d8c4dfec8dfa9acca8ce857bd279124698d245fabb878511e8af7a31a724cb4733c844c33da1f62fae0ffdd0118416b5424f41249f26be16f5205efd3596985a1c6247f6bce5c9475f486bb82e96984081a06798fada31a3830a06cf3b7921cd7105e34a21f51b5a910217069e8e2b983824795f3a63fa6b3a043b02c178be046f1c25ef048118bd318273dc3b8d337178beee26119cfbd6e9c5155846ba3d4c2597fd23cf829f0d723b9f2b365a1a20efd350cca5faf1fe9d25283b58db21a358dd6f427377b19f7e845efe12182f84c2fbe077c0400b3b1bc255b6606a3bd5c993e805691b20efaeb57a50a8d547e6b98a4cbe6c30f34737dca4a9a7bf6eebb2c400aece0658c7adf50f47a7d5c0b3b081c780ece87b1c5547f82bdd5d162227be1440bcb3395d51a7c5930a438603659d3155a08d348a893987d7f27fdab87cda0e33ef61b11a5f0f69eff9a8baf58190969a6dd8eade49d673f83a141157c7af828075e0c134159f01d218f942d3be88c30e13c151aa0a0d36fb6ac8d42bc35f6977429d5d5c712b803df1f93c6f939f36ec0aab1c0181b455461f93f5cbbda6462358e887c6cfb259a0b0a7878aa233136128a0e37201ed5d5e42fa18698e409e3e8022cd55e79e75c0b9fc6f056a961f13b51135682fae6d452c23528c88ec05ca16f5736c3af6a2d54231f56360a3d1e513562c57a4dad51e5f6933ad50b30e0c7e7c0556a1770fbb1fd24547b5c956e28492fd0b98358b04a1013c674dcd3b62aded43579b000893e0d5032c1550fc24e41338d6b6d0d0a66dfa8d826611c667e13caf94839a4b46fd6949593aac4cb85313656b62bd5e434bbadfe40639bca45d2eb32464e084579905705773ba0a88843972d45a876b3f024007ea915c47c4f902d405d3b028abb5a3fc640b0cf5c1e7f07e69540ae33ea625a2e836e912eb09646c7f1b392a3a16c2dc2aa6b7ef023bc8e61881df71a1c8636af1dd63533f3ce0b4440ed750bb9aac1e9931e61ee44f35000eed1d5c667d5c3bc05ffb7537731c6f5cf1a71cb6fb943af363b0a96687fd21c3a63ee9ed8737626729ccc1899f31cc8984c07eb866693b3c21b52eae6a1852aea623f05204e8180f142e79d1eb9a151f3a7fc787bc4c0eb1e1beefbc7fc99bfafc26d8451637ff4179cf120242cd39108be5adf2c5b40f0a3ccd3033e042451d9295ce08ba9eeb9a4dc492173058b4baa4264c12e14ab086eb1dc6bee9791a3d77ae5eac5c2f0de3d333ebb81afcc515a46b4341dce56f0c129dfe90ab8267d259221021a3d043b57b08c244341ba76890355a1ca4b8c399095b2b88d168df891999e0f0791ab29a462d6c693bef70ac38aa245dad0cff45cc8bb92efd0cf8840d802ae0c2597beb2fa95f269c4d234092b60878c0a8c42d7ea9f219bf50839af27f918a984d2073510693ddd3255b444539b0527f065f3758494776b82b141bace982c0e310d4aedf36b5c01ea8a77c7d09f23d5a5006b027cd4be1f1d5c501f516f412ff15139c794c38cbb1f37710fdaf27dce103304308df4384e1133c37cba32a061e79628f7b1c3ba31e05c15ab210435ba37cfe6aa3d45e0ef56371d49af03d0a02aa33dfa24787115ed2c66ff8caf61cd915046a0351a7fa0a4abb2e704184b6c1692867c29ea39fc40bee250b392c400b887beeb79dbfdb60baad790a7aabcd8c0c4a802757b272d0dfc3bef63a4257cda663fd84d6a8b8039de87f28148779862e156d6a53e73a4fdaa817d03ace161ae9ccbc043a5478a0105918ab55cc9a88115536f6739cbf42661648d4781b4cf4165d456e63381e4ce114e6f45cfceb9f58319aec1f12034bc24700fedf4f4063dd5e280280cca312c0b9aa75f31c9a07d6a523cecc5b163105dfc80d2c8a34752a29aa4eb161934dc15fab53a62546cd43f6c8dec8ed81d27afe5c3bd17b7aa16fe7433262f82e62403832414020c5df0334a0257d8a027415bd76e25e3888abbeb10d4ea13ad317086935407526513a7bf021d32b7ee3220d92a2263b956fe7b1c3f3c29cb3863f0e3e9acb51b48ae964821bcac56cee003914e190049830510ed8ef220a791d0e1f5e84b76f38f918030f5f86e1f3d11e8da39469e15c23a5827c5a1b15acdb79b7df30a36b8e8f1a014f540c3d8ec9d03e06e3a5f83ba3baf1dc83d882d59c48136e0633915ffd8cfbeb78e382e70f932c0af50db4b56da88c1efbedf8dccf701827a4922c053af9587dc6c32d5f7ae3d6b87d54a1da93c0e9d5ff7c492ad17702879125974a68752b1a3e543b6189939078fb24020303624f66882726cfd0acc78ff95d20f6c1850fc645aa33a29ed31103a68b00387833b3afd1333ea6434ec646e4848ffc10e05c26e20e29b429fdc00eb4b1fb110b7126bf2fabc902cc5d9f4c07c331777c621a136630a17e6c022b4567a0630ac70ba18f8f62c223eafae6c54df828b8b4f48843e0f98854da90618aeb11e48ed6e93357673781d70922ed215d74dc039b80e6998e34bf4bd8b6622b5f5711ddfac4f581777020d66c8cc0e35238cc1577c224f4604a1d6ba22fe0762f2fb8f93243378730b6e56500e46f6325b9e099ab32470efddebecda7a3c50b7ae46534f51fd9043591c3b40dda1ddc1fd62666cf5bced5141bd235d97262e3982de2b925bd3aa1fd560cdc549586c171f64490b369bc0d0ba6a18bfe40acd9d9d4369fa465de06ad4db4776e329a29d9b4f1b83eaa186fc42e76b76d5266ea1597e8f8cf72d0fb87e44d32f62fc3d26d7be745899739523693cde0fea8729f88ddd89dbe499f5456ad1db287da6b93b681faca31307fb0df2ec87d91160b21bb66657fb4a1fd509d62d11f78b158b0cbf2754ce78679d56963d626f8590bde17aa6d8417de4c0449db5477a07f58616d4c3e76a7cbb42c2afb43f108a0d6faace4e293aaefac79585a9b44b537a9906a98a1355e220725718acf0c711ee988221a8f03408186c979d2052c40cca80abd5139abf5c8c55690eb0b55dacb2a218fc90fc3fcf77d8782f3cd22f105bca0ff8d4b3ce5af304e9aac9b2e0360302f0522c4383673e26e691a86c10845cc782b21e5ddced4d10af7175871ea370b69dead073b89fa7f54ef54e8d9a8bc8ec80bccb6660145da4ad9836d33e687e98a1a2f23c9214574e77765880f31813f0dbd3a2be5eaa2f30d2bf173a6f7d7e04e00e7cd096c46d8d432dae283ac415edf69e90d05e32fc427fa4d241c3a0fbba417084679e12f0ac82d5cf9d31adeac12c54d65ba85029628730bbc24e09cc7b4942112f0d9afaa19872a0337f801d083641b8b5dace080f4b68482f7d87e33e454d0bf401b16f25eb665ab4366824fc5c1dbdb719bd3900e86e149068049cd63b449adc65a2d2669823cfd85189200166f6c81eab9fcbdf6f6cf7cba17c658f939e8fd1ebb15c8714304f88e9b7a775e637db3bf28089394275c94bdc48a42ebad269705006ea0906716bcdddf1b03a937fbc780ecddace066e2888dd734311e5d84c7b0b70dedbec498b94031edf8142f73b2f4510abb177d2bdd1a1cfe30ad9026e54c84cbbc52b983c25931c5a6ce265ab5b038bb63f62a480064143e53508e344b7a0715600b7fa43ccbd7c4a3dd76bbd95d5b1abe61c5fc9c74f853460dbdfc18f8d7d46d767477e0008c3ba94a0a29f8c5b9ba1eed64d7ee014675d35731d1558c1d2f12d42dbb524c1ca9403b26c6f664d7e18c89197e8a29d020ae472d0234e098de8e42f31cc96dd6943cc54712fa721bafdae63776f6a79f1c21859a0e1683bc21f4460e9c2e1b12c43064c91030c9790c3e6948957bcab0b3558224fe8a1ea300c96f60e0fa58ed9fee8dcbbf791743ecfc39e8e6cf3a4c2a1d3f4990bc803df6b62707793885b16ed1b1703a879fbee4ba4f9e4e28fbfc1bd2555dff2d3abd800af9d08573a5c24d75c6984eb85972bec40ecbf8b85da6d918786e167f389f2a03d7c00907bc8cedda1026932b9b54cfae85ada6d5fda174096937ce8cdc2f38f8c46397dae75e59e847a249b593b947976d07a7d22e04d0e307be5989167e225452a384c0c00b625650ea310784f549081bf83277eb59a87b158dfca2913768e1c7df2d72a0f9de25bd21e0eb85b5afaedd710dba5a6df9d313b8077864d0ff47040b305e8e85b2fb19ba55bad37edf8ae5fef9b8a22575c2dfd6a2fcfc1d3a8bdd5ed9a031adfe599d28925d7ac868c66ce86e853b485f92d8da7481791b011b0659b3213b73672500605814e883839330a639eeab792486e9db61a425a48d72a1ce0cbf9904e5d28cee2f59e12f6e41b1709abdeb3b13914d5eb25931c0711e3c5237d2f1bece78cae799caf4ab7eaaeead0cc632c450d251b4a04d5944c5950d0d73d51769d7d2ac8d0a650adf582a16fc3b3a3dfe9e90574dc66dcffac47d92db477f9478fd0af6bf74fc961af29f70705704250ded60335d66fae7de8ba1b673923057ea6e8f393d88cd614a3648b41127eefeb74906a94a66d2354fea1192b0f56ab55e79eca956f07f0d4338ef97332594778d8794efdbdbe172c44bc655b6ebab43fae77f47c1cbfaba9a0f155653b4938c3d7306160df23e5724c1450275f3258d1936e31354fde8074cebbf4a983d5ca199580a131ef415d58c5a6a9e865f5899234f9d1175586ec71c7430438a8d1c5558be019c274faf0f541fdb5e3621532ea76e445b0c7dce4e46ce41d0bfdd0259c9ae43618cd0536dd636b1b8a0fd331a7101d559a0d47b9cbe2594862e33b17a91cd67950a4f78c6f71023051dfe2371f27b72dbcf55c73aedcb0cb0137268d456978e366d0e0e634aec1dc90f66299ce0dfa765350ac5329f38054af45b303b2a196a1322bc41ff7868d66ee112ca8812d46270d332e235939bfffca6fca834bedefc47921883f4932412c406a08698fe3f12594a964a4604b11eeeb121b322b10bf3e9c48a75b5dea95e5e04fb5991ea3a441a94db0b6c03b87a298f83a451018aac10fce1e5d22f6ffc846a8dac483a9ac61cd4efaad180183b9adca19c9c8f28479db7e4892a7a8178f5892c39f1266026340404feffb1d077bcfe78aaab11f20bd9153cededc1097571bccc302980c704b317c05e23aeb2554344a495b3becaeb98ed324046f6a9886e1bd6d081e3eb5f3951181f8048e81c616a9653a8ce3fa8c52b7f1402fe7422767099b466d2b05c2ba41194b246bb738795fbb8fdd681372fb73df535a97e473ad0109cfe5749d07a2f4c709c765da53120cd9ffa30a4f7509750ee39fe1ca94e9081f64ac4e40dae6b54dfe46b15295e7517f1fc4ac8ecad0f26f6dfab2675774de80964ea6ca9a46c8f3fcc5d4db23fec1f6d441d159f362f67c613c7f18876c249901ef7616cb90b2a4ba02972f1f8dc87de15a99db179f7cbf9e204078ef5bf255e6924451c180b12b4e8a47bc4dd45f5360fa0bd82c3cc5dd3b5cbf1686e325833770367277b6c1127bf0ae2c92a2b6f00ebecc895c820ced66723ab85f73a2b5e945f7136bc880518895ec2edae908c33717eb9c04cf85a4c08e0a9996e0c18885fe1cfe8581f6bfd517dcbc40324fbac00924613765f66fef88ca4339b51d13feba45b6d11595ddcae62386275ba7a5a0d8b2aab1c5aa10f5afdccf85a4c9ca1f8d7c88c7dca2580b6e6b55c099a8f380470ee5c74b03064ee9a3a77d74f156ac1eb420beb218c08f8e18332aef16b470f63aa598d73de136e89a9ed0a95bea9efd25856ed148bd2dd35dbdd3233ca6cf0b4c542db603ca66dfcfdc6e13181507f1bafea69895d67583466b68b46500fd8e7ce1bc78499a6bb2bc39a7ad2751a15bd196d88daa0d2c47e5fa71cd0cbb186842ce919fb7ba05c1ddeee538a4ecc2d96026c45057ef084ad0f5920d41d710ec5caa7b215cb6ad567451f9fcbc2e73f3758f8feb6c2f106f7dfb98a3c7f9785cfffccf6cfd11a04f821e02a0278923e7dcb664e8deee68bd115c6205073251323d14e3668d152f700f4179b489684369132c9142910160f5d0f94521f18d5081a5a4e867a04d7293a37c8606d3dd2831a34fa572b006babc5d6fa8eb75aadd66bd5e38d1d70ed9c048f8cf4bbae3391a8adfa5ebda4154b2deddf6a29bdc28b4064851230cebba32df309d75a7f9c262129f83f7ec3fbf984c3ee6d58e6ee3daeeb1e4c91faebc7eede65eef7def6d3fe4afee829b8415aa7a8dfa3adb5fd68ec1f57b5cc76c43fde27ec4b1a07f4238cfd8d67b0be435bad56cbb5ba3a60f7ed667f7dfb6ebfbd7ba3f0f0989e4efed8ebd76f31871bec430dc26177ff92026171100e7b79ad0076cab318fdcad8b8edca05db5a6c0e986f731c8502f4eb793782d8ea7a5e4b9c3bb073e770eedadb3ace5dd9b6db9debfeb6fd0c8cf6b96efcdbb6ec6edc4e03b05bf4528691621852a9d4b701aecd9a3d6056db2f5eb25f9d4ee1d67ed7755dd7755dd775efbd257fa470d7030f6e3af8bd7828182f7a9c7cd0ec10c30110e81c378db31f1b7080899101493a384a9f63684f0d9da313e240911570953ff889401ef93d949f6b70f7bd4ceffcd0bdedd385effef679bffbb07750df3d6d9fef3beebd92871eb86755a0071419d4a46be15d20810872f18cffa1eed0560b9c41364e91165f921e714af24afa2289f749225057521a922e5873e2401004bd8ae017ca8c5e188661d802d97d8a74fc91ef914a5c3c2b54d96029d4a17b8f0c45a07b45f186ae0c4b2bf4893758ac0455d25755a5a07beea3a07ee0048e87e09e1ee99efbfef4753db157292534be051a7f513f830ce20ed5227a87ea60a8ee502c3aa051a041d22a60a15cfcfc765035373532b0fcdb7ca3480aab2aff8fa44780f0ff332fa28eeeb9ffa95cd891f75324876790415c5c7e495e108cd7fb6b4b2290e7852f9d1d395b7da463dfd2ad649323212c01fbcf883cee57c04f0ca478e8e1765d572a41a1baef4a0ca4702d5355a887d39c98f8d801020e486205af80e8fbea8c6b2077cf7943f0cc8f4c0c8c69b4610701704832a5eb2ed785d623bfd23616d269022fd149419bfe2265010c4894be00d3256ae81e8a821cd4871ea136fce90ab0bf77cbeeeb7fb61b82bdf50d4187d0705f04ec54a6321cf794524a29a5945299e7c816814affe332d6dbc1e1f5e57f9c87621e99def999f95c31c73d6d9f99e7def609f3dcdf0e7ba77baecc3f52b8c4e33a4563e9b30ec621f330301fe4e298ffa93b3dca18b2b189b4d89215e84187639892071b47c7e76827632229b65dea3baf1ee7d59c3c9937918e6788dc64210b59c0426bd53d0c919b5bcfc83cf754e6ca581999bfe20d32a5cc158150aca42b5d09a149c98b9779f1b67b98ef8180dea1236826ae1a01e5419bfe2f482a45abfc29131ac5cf999df0bff073c59fc524ca0483dfb9f65055fe33640556c06171e63972e679f073a69cc9323078a624893ab837fd4f952187c09c89e4700c19c4c5a61f9fbe69842965183918ee068ee40390b3d5410af62d713f9a46fb3fb5af406999b680d600088bc34f0ca430e7b592ee5b1c22b56a82e2513190aa26ad0d4187582b76015a6b6d899e8a642cd03e3a9ddb0910681f1ccd805640fbf0501bfe303eb715339fbb4a0e6ac3bb87d034534b81fb81dae76bd8691f93daf0cf3464197074c6efefe9f3e56f9c22f81927bb803bd3601aed339236ed2313a3cfcfe7446df8c7d4501bfe27d287abbc64820ef5f9c1c10323478eaebd9891a99706e7ae5d0d0cf17470dffddcb7c1c4c1f1ae8d81318d2f9ef57470a19b3fd486dbd1066ac3ff447d76e04009f0d31939b6a197a005f7140fb4e91f920a68d31fcc5d6302f6ff3a09d87f475f2140f724e071a03e3ea88ddc58607f6f2434adc7bd2fbc8405e8b42bfdee8b7fe9759cad4ebbdab6e410a7d708b4efe22d62741d1d5a595ec79155459b4a892c4b3b87ebaaea588d3b9105048bb2e87b6d4b8a2cff1e75b49bde7dbf928e4e08a03fe8e49df591102d8a39d10cd1007705a69c7a29738046c7d95aca1d6801247dd796b2075c308d2f25912b6521e609c68b199998ae943fa0fa1b1b1935a8185e290ff182ca74a1051aa919255883be5b11809dca30ad007c3f180092aedacf8aa58a3efb8263cc09f533cc1a3a37787c7e04b083478f03ecd0001e28d0830f3f6840080f94c410247dd7fcb1e6a6d72aeda3c71439aacf6ad4ef336ae8f869ad75b9e91689fe7101ec701e3dfc003b78037870eba47b701f7e700d08e1a7a579a0e5b68acb5f6eb3c03ce6560b990b394764c867ce19e1606e7acd392688dce69c932e720ecacd8f9ca3a2e52ee7aebc1ce62757e4a673461d734e0b990bf9d9b5dcf48e480ff9d9b9dcf40e8999d3fcec606e7ab744cdcf2ee6a61379b7c4e6457e76436e7a07e5e6477e763437bda3a2e5675773d3bb2a2e7f39cccfaec89788f9d9dddc74999fdd912ff18808b987449beeb9dc74efe534a7b8d6aa94843ac773e490f9f8c47a7a6034d0f0e2e171edecb4ce533c9a61861b0e1c45376ed86490812886186a3a3a341b366630c030949323848323ab5123f6c20b3095ea659a2e175c68b5d042784483c62d952a9a31c35696442459fba7dddccc6c6c8664c810aaa991a150b11831603434afd3c9050346ebc50bf06866e626235314136383812132996ae348eb9c1729b3ce295121561192754eec7585288bcda8488b9bab73c016e9d675410409232dd7eb9adacdd04dfab77e00c85ef5903a459f95e80a15dc50f4596d5db3747da2cf5a69e8af4ef4596f5db5a84df4598fba76d13bfdd5057dda565b225d95e8d3da9a449ff6d5d648e3e8af47f469616d97e84a449f36d6968996a1dfb9e8d3cada2ee918fa3d8b3ead505b27add3ef58f46987da42e922dcef57f469676da5b4edb4b4b654b457d1a7adb5add253f46989da5e6928fab4b6b659fa893e6d515ba37627fab4b7b65ab4d9ef4df4698fda76d1b2936b3547a45d893e3957734874127d72afe68cf4eb883e39d8126dba13d127176b8e89762efae464cd2d69b29f66d127d7dcede4869a83d2f48a3eb9597352da8a3e395a7354b48c7e5a459f5cadb92a5dd34fa7e893236aee4a43d127676b2e4bc7e8a74ff4c9714327776b4e8b136da24feea8b92ea80bfaec3aaa449f9dab4ba2cfeed59d917e1dd167075ba2cd987e4a449f5dac63e2ec64dd2d01d26727d49d93be409fdd10142e2f12e8b39b7527a517d06747a3a2cd02f4d9d5aab4e97f439f1d5177579a7676b6eeb2340d7d7645dd19c5d06777d3a24d57f5d91d75d70591369dec13099a3e3d57f58c9cdecb7a4b9c5e25aae14a0d25215b8e2c394ab2221f239f52ecd6a3454f09568f68a0a1f46af110e129b95c3b48ec945aafd3c8291ec166586206f116c3c1040eb1487663c90dd1262483131944a2a118a0c420d6663a5274441acd061536c4590d862a3088434439577244211b4e161c515654a386685f787ffbc2fb9ba46855aaf77781145f2d938829ba5c2e20e182d87ab560a485f0084663091ae12d9662221516c9662c9911da844a27654834444221c3daeca5fcd3683754dc84b39a4d159b708848c61519a190ad264b4d282b4219a1c2d82d8616311e764443f3afd689c82974b9602001236cbd5e1879011ec1669698016f31192664c02259cc9218d02604e30406241a324131bdff0b09964850a873c021700692204dca381b5f682f554ab5d2159148045f1f09c22e09c6485096e5daaed157f46941ba91409074231d91608b045d442c129c910e7b2debe25e9d27e6c0e386fa41283ed91e02cbb02ab66e7eb83ba7ba0dc65c1ac2fe1ee9f6e14cba997026dd68c84c92598533e91603cea41b0d646e28c8dc53e4ae22b7152632f715b9b1c89d456e2e322522d323324d2253255c90691328325327327d225328329d22d32a9eccd48a4cafc022d32c32e58206999d88ec47644f22bb122a32bb0bb23791dd091c32fb1339647628b24f91bd8aec5664bf4206323b1637c8ec59e020b3733103992b112799eb11b926c143e6aa44ae2ee821736dc287ccd5891c64ae4fe04cbae50a05f62bc6fad8c31d066b58490e8316e4c20a7ae0fd4aa59a9f5eac4a9f1e139eec4a9fde124f284b9f9e136fc8a84f0fcacd4f6fa6459f9e947ae4a747ab5df4e951d1f2d3ab11e9d3abe2f2d32342a24fefcacb4fcf66a44f2f8b57b4449f9e51cc4fefc6449f9e16323fbda3257d7a5d08f9795b4efabc4486fcbc2e287d5e24667ede97149a9f17e654c4aaf4799920f2f3caaef47997d8fcbc4259fabc4e8afcbc43467d5e28373fef4c8b3eaf147be4e7a5d92efabc54b4fcbc35227dde2a2e3f2f11127dde2b2f3fafcd489f370bcccf5bb444cccf7b7326ee912ff95a4efafc880cf9f9b9a0f4f92131f3f37b49e9f33342f3f38351d1e7b744cdcf2f56a5cf8f09223f3fd9953ebf25363f3fa12c7d7e4e8afcfc868cfafca0dcfcfc665af4f949e18efcfc685c177d7e54b4fcfc6a44fafcaab8fcfc8890e8f3bbf2f2f3b319e9f3cb02f3f32b5aa2cfcf28e6e77763a2cf4f0b999fdfd1923ebf2e84fc24b59cf4492232e427c905a54f1212333f492f297d928cd0fc24c1a8e893b444cd4f52ac4a9f242688fc24c9aef4495a62f3932494a54f9293223f4943467d92a0dcfc24cdb438f29344f3ae8b969fa49a1371b987c4cb4f92cd8df449cae2c1dc5bc28b31d1676dd3ff8263cc09f533cc1a3a37787c7e04b083478f03ecd0001e28d0830f3f6840080fd01625e242e26504b6448c09d9122127435066526854d4aa105db1652932ba6971d485b79c880b899711d8123126644b849c0c419949a15151ab4274c596a5c8e8a6c5511731265c4b5e4e86a0c498902d7122046548ca8c46852f61e4de8a1a6035e6588d6de9578c8d7369c831e9365477e8cabf34eb9e92137d7ab22553727caeb326faf4849c44f1f95c875cd0a73704e549cfe72aa4449fde4c0a131a3e5759127d7a342a92d458e9883ebd5a15243b9f2bac44449f1ed19523e7e7fae2a24fcf96a51699e1737565d1a757645483707cae2d2cfaf46e9e165d6e7cf6a32bfaf48ebc2eb690e1b3dface8f3b6887089e1b31755d1e77521a145e7b3dba6e8f3be8c60b1f1d989a0e8f3c296b002c367af3dd1e78d314125e7b3d39ce8f3ca964cc1f9ecb326fabc424ea2d4f8ec432ee8f30e4179f2c2671752a2cf3b93c244f5d96549f479695424313f7b4c3ca2cf5bab82c485cf0e1389e8f3125d39d2c2677f71d1e7b565f122ae2cfabc45461e94faec2d2cfabcb7ab4597199fe9d1157ddea3dbc516e5677ab3a2cfaf45840bf9991655d1e7e742428b6d8a3ebf97112c379f2911147d7eb025acd0da137d7e3126a8c8f84c694ef4f9c9964ca9f94c674df4f909398982fa4c875cd0e73704e5498ccf5448893ebf9914265496449f1f8d8a2434161ed1e757ab8284c24222fafc88ae1c79f199beb8e8f3b365a145663e5357167d7e45466dca7ca62d2cfafc6e5a7489f9dc4757f4f91d7d5d6c71b3a24f528b08972eaaa24f920b092de3e7b64dd127e96504cbcbe72682a24f126c092b5d7ba24f528c092a4d73a24f926c494fc93d6ba24f9290931c3c2ee893340405878e127d92665270cc24fa24d1a848e53fa24f52ad4a9b9944449fa42b325cf449b2916e27294b48daa24f925167d127a9e88874eb1efb4eba617f4fe6672fe9b30af9799df4090ef93942e93366e6e7494a9f289a9f4f459f336a7e9a55faac41e4a7ce953e6fd8fce4c9d2a74f919f3f467d0ae0e6e70e2dfae4e11df9d9c3eba2cf03b4fcdc81489f0d70f9c903127d52e0e5670f46faf401e6e70f4b0423d914c78ae0fbe0fdee3ec1d46fe34b61186fb85dc7851cd995d4e526a52d1a04f3b3542a11ff74fa0fe22706647e10c24f8a29add596593541dde07fff96281efee0831f7ee32164e30e8a31f3b062c0848ab4a6c448691075d1227ec2283d82e9db1dfc0c49efeced6e0e3fefd991ef3df7f476f53daeabf7c72fe93d28cee167ede127f7f47df8f93dfd0a5ceaedf8eaf3d7f5c87bcb10a414a6a3035a52c77c32521cef3ec5ef7f72f36b3832088bbdd2dfe97513c777c6538d9ffefd7eefbddef9f54ae6fad7cdfc23bc9c93fe72d3bb235787fb9e975e7a1d8a0695f4ef1d334f37a3b7b0dabc28a59452d2ba6929ed4abbf73c863fa5d42bbbf6aab43dc8e3287304dbc6560763feb7a64e9d12fee31be638777777d20637b9d28b9f2f49e48756abd55a959494de13815c89587aaf4ab5b4e1a707a3fdaab3830f3f3b0a1ad43067d2983eec4f1dc84b19461ddc628562cc6dc3dc671dcc0347fdb98b47d277fd44d6e3f0c7fb9579bce50dc5b7be233e2796f931f81c290ccb0c9697e3ee784beebdb72290371bf3d89532a30f377930eee026f75dd9e33d36fae7aef5edba37ab2ca84308ab93b13a19fd7b005eebbda0dbb74ea38c4e29096c95eef0dd4e4609f4c562cc02fb3717d85137f453cc811c2dc60d1a9b86bb0074b54355b92d2f68abc2c1701ea760291245114752e8600a36cbbdc7791cf7f67ab6bb9eb565e7d9fff1eb759ce5acadf58cc7470dcb9dbd4371031bce2723b6221f18c18a09b7143a188275d7e179b31b4fdfdfdef1fe2b73f7f6415bbbaf2f6587832d2fc7ed70d32b57ab0d6e76e5257faead1c0b5e983ec86d31f683945a53fdba13b648d69629541873d8e2a6303aa52e3f69d872330c0293b8be0c5d6ed207636ed2560d5d7e36ee8e34edd0fe69df6b771a9841192803996c31e613eeb725ea5e12ee294820f2be411918f313a5a33aa660124c412698822edc207863c4428b308236374d7ac214ec822978c3f4e99f28a50f7621ba156de127117d108beff48a72b4cd0f746a3f20b00c835afccab0e5260d5b983e58e467068730173f1f246a15fd5bc23dc506b3ee5e27e326ad4a181f249a82e50948048243e01048036b6148c12e60a7bcddacb408638c19c6294a1cede0f1b3a7cc0086ebe7682ab83e0e3ff329c4f54f3bbdaa74d54f695cd7da0aee6f157d9d56d16f928ea76e2ae51ed87e649bdda6694b203f601b5e6c31d7a135b1b66ce166e35ab32700fb3b95c327a37dee2967626db1f2f444ab933153287a08df29c62ab05b81fd54811e7ef8d9bdf7bb0804447ff7e0bdd773d984d0e57acd99463751ddf74cc910e6fc515da9c371f794e29eb28409f6a745740bdfa1455aad568b88953f9d72849dce664005ac35e92930a0e14cb960cf948633b5c2e2e272b33125595b62246b4b124e04627109221b83d5a99738fbb9c90afc38d55a83b1ca60eca7b5abf2827bca09b8dc18294f7fabd56acd56d98ebdd3337c632cf3a5dd494cd9c10b7c083da8019529468ea26889a20a5670ccd3e9ea983c5150610ace272cc50e6480f36d414d7594d25a69adb5d65acb5a29b5a57963ac5fbf5b04a2b5d1c32d051312e03c5a25523f8e6dbe0e0e0e15c26871c6c18ec3e1961224049cc71dd0c0360b42ab416a3d8eea34ede61e04b9cedacedaee8a405c29c3d8bdedac2d2b0bc6fab6d66aab0b5c0867bb9faaea76930b82fd076cdf4502506c4b6a5fc7cd7e8e65cb8a05d8a90a83f1ad257552f5ef1dc7d3e823eeee9e7c1f48f7594819040df6de34398e03630e73cf4a20f423cbdbdffdb205d27deeff4afa3fb58178a512fb5df96e3e1efbfde6cf66e867ed2c12409c548dcc4863c0ed9e69464ab9eff7cf3df0588e0d641cc7f13530048fa50648550c3f7c902cbd3c48c3912401f9c0279148a50644d28765b799c11208a954c29547d82fe2da71fcef7ec58dfe5e5944c795bd2aa28853557d43d821b472452a1363fea17e1017e267dde9aa35df14825f50ffa7ab5c99475bcee83b0da65c2a985ac13b395a45dbeb0a8331f76cc78f0d5f6f99eff5cad30fb602dd22c6fa9d77ed05d6d868cdb182d5fdbbbe36ecbaa7d8eb9ebad875ef7565bb07d2b069f75e8c0b8211779e57725c5959c03db551acd77dd65a1937e9771d67ab638eecbeeebb5ea971bd20186b256b7da15df7d0cea16f329d6a3e6549a993773d555505c1d1d2cf1f6e4a3fd3e0aeb555f49d865e431da76d6de966f1fd10ef7d74429a78e9c3fbaf14427a21df0f6901d8a92cc6b0fddb310f5a1bbe08ab3be2876fbf3af197cfde44c96bbd1a8f62ca4c5b3a177cb1a49285d91e9d0bec3bcc7a13d83a81ed13d87ede0fe40e95ba84a82afb1fc94355d9afa17354dcb432fff2dc8ac8637587c4432bbde963c6aff45bde3b8e60d9551553be589a2089fcde617587de3b8ea7d3ffca6175a757b11989a8eed8b745d83e91b52f25ad519a7d0aabf78ee3e9943f9b18ac4b38acc518577bada5977fb10ec330204c25d154a24aa1f82fae1f76a83bdedbe7a1ee7c6f4799323f1eeb0e173b8d8fff36d8914d62c81e5d191404be7f10e93f8a1d666b353daa54f6084b54492cfdc3f7e11f96429ac4bc10f0bd44951ee6c58f297d944248ff853f64d5e4e52f895a5512552a5105101fe67d880f535ffc52e923fcaf14e21f7efd5e892fa81ef5b10d43133936a64575e7de922d7d3e596bedefa83bdd5b6b1f347b0479df95c8cc832df8df8b1f1444fafbe13bc04d6b5fb44f22eddf19b6ffd1b0fdae862d11b6b0aab2ffe3bdea78d8c14d6bad1893492286dd52dad960ac367862a46f4b3f4e861d1191cd5654546f18082ba3de90cc7b42a5d6177f1755cb524893fa42ee7fded7d207e9bfff4a21df93ca21abea79610cef07b59e5670f6a260f7646eba2784fdbd29c65c6bd9ab59a9b54b1e61cc9e8c74c444a603335fefca600b7bf664ded496b210148c75fe11d55785d5589555a1a1994c2693c964b21f746e66d1db4e443c5d5fb21b8f47642bba1dd5964c2693c964b21f7878787878789ca806b3c96e3cdeb94c686846abc16030180c0693c96432994cf643dffad6b7bef5ad6f1e9355aee876d472bd6030180c0683519b4c2693c964b222988c0a0dcd6835226a83c16030180c466dd4466dd4466dd446856047b735ba4eaf879931afc16030180c063b82e9dccca2b79d88c67679cd6b5ef39ad7bce635af3bf58ea737ababf2d48a64cc17dfbe5ea9ce6a74014d2c23246e361e71fe1d943fe97b457f47dd4179892a40f7df27c07b52f901d27bff951f68e283f49ef71ff8be2b51b757f4bb762dfb76a4c5c158df45dc525e537e5a453f5ffbb4365edc52e86006f8eb4eaf6e571e5cb33516de700784f7406eb0d0c2f44b5e50e95f5e7c0ac6df91823153dacb974afff2dd5727de3de5c266baa3f6a83be277a7bee984375fdc955d55f416d57bbdb2c77592855fcac54804eefc08dc5dd06397e4a1aaba77724755755f227b207b5455f72f785e4c8f497d328ecfbdf7b4037fc885b2cb78ea9ba6efbae36f29adee84651dcb7cafa9a46557952d8b68e1bb5cae2292783bc2de1a12c2ddfb10ee7ea8eef46aa806235752212aeb9eba5c2e21aaaa7bd062b0a6603cc1e43eea4a6bc55ce944cdc148e9bf680121024159205c89b26f805ebd94def43fbea3eef877cf83107ec67cf74268abeed4efbec7d89dcadc2f45454d0cd0abfb30648f5b0605894ffaa0f0415a547728adaababfb70865cb1e2f25cafefd212bd2dff741fafb30fffd905513d3c7904afc39ff9a8d42fad22700fc1712659f44d9125580d2bff804bc3c8c2ffd8b076958225ffc0b09e3513a284601c18e5f66be24f3305efec5aa546446e6a554805a8391bedcec3ea6a4aeeee96bbc7204b7c80969e223fcd20b7979f11bfba0543c418455a9145242f5b86f805edd52481398d207f8df0b119ff409a0543c6165f59542c2075d8892f7480b97c8263d3b029602bc3ce913f0f2a4f2034d7cf897fe03f55f3e01a507cb0ff8974c14539af7dd1d3d4ac3ddebd41df0bb37eb0ee9bbe7a93bf7bbae568f3491745523c21db5e1eea968805e057d7fdf23b3e991d90c0a121ffc970f0a0a9f84839b5df72ff408771fb670f7a20b774f7ae1ee4118ee62b8fbafa34555d5fdaa44f64a247b1592bd0257bdaa35187b943bdcecbaaf32e81154dfc31bee1976883bc4b91731003b953dee8260cc95a8c246fabdf3b5cafffb4c26dcf9f673448c36b8491f088adb57777cdc2d1a80ae6ad95545a97b1640b3999010502cf662b318737d619bc5e8315c544485f0d191cd62cc17d3ee86dc06d588dba086ccbfbdd63aa7c60ca80d7ffbed3584700d5b0d2635643566504348c89b54c5eabb0d544c543150c9b08a4895441553c54025ab25003b252e31e6daa54bc77d25ab0a46eebbcfe3d83d31987a47869ec2ec1e903db87ea6c156a7e374ea915187c7b6dc5d0a90661171dd091a5746fcaa096de23faa00860c30e8b45dfc1314384694237c942d688eec34c1a40eb460b0ebba12100f8b3f5304063d74327c0286d9011718c57dcf7660058a7b196c491212987b276ddf52e5d239f5eb13481153b2673c3801e6c8a22d701d732dc2d923faaaaad5a3bdd4eccd70d589611247abaafad9be70dda2fb92f837db16089248f0850482f4412e167f24c73795fee5eb4e2522c2f52bcc11ae25927b12d9e1d1a32489e42a51dd29aa379bad36afe212d1f8e2225905d3af55b40dd27b64a954d281249257aab5cea1ff8249240997482530ff02f3234cadaaa8e97eb84402017e902bfecb876450132048e3575adda9b50804c70ed3171f2c59cbd9afd89e5e44ebb844dfd436e8835d48f14822810cd1c2b654e295a0e795c6cea10f360efd0b4112974825dd8be45855f443d28ab692488fa4c47b9184e16c75eaadaaea83642d222b9716ae1f929556ed8b86eb57d8681f0cb9b1134390f42791169bac97a59044560cbe8424d23138862692292ca560ccb528ebe8b889829162c7dd7b5f1f8bcea95f9ff64edd4255f5ab25e264055c3f9b70a5aa5ca580ebe70fb71448b8611a5c8b3ae704a3bf57556e8331d7225cbfa8debaa771c5edd97c48ed6038013b955fd8b07db0e90d653c5a55d96a64ccd586edbb0dc67c6281781cc2f97a366c4d30e613101653f19a60cc21ae498cd9a361fb4f301016e7108569f9127b8dd5a3d59d9724f925963d226cf34b2c7bb497989bf64b30bec4b0b52f6c35490dc74def6ad79ce9a69f5ae563be1ca5cf75b4cc1c47ffc7bdaec4b4962d186df0d3e28c03879ff43fdc53ae68c1b43676b8a5886284f3ed5a13fcfdede75abf7e7d4a2967b153b00bfd725cbbffb70c63b5b75aa948f8d9edee9c37e9fed5bbbb7eb5360ae81f2fa4889fd9112e9d558e1752c3d79d23729442644090842844010a0b4020845511a390227a5495fffb73ad1787c4776c6c8d04672e0867ee888d2dc98d890df704fbff3052dc3e80c20738dbd86af8eff3f82da50755e03205169c70896255c3e79e7d9f757a55c40c2128b12ab0a0049424ab1aca262dc59616ce5dabe12b8f2057429ab0b6b47c86c68def5711e8e65a89c64c6fa46cad602732c5f235c2984db11be3fd2b336293c9548225d224234db1526908fbcbccb07f0c4d088604c23e36bd5f9818d383a52966224d32d39b603786fd61ca3ce25b65f755555e8b306653ecbe491663fa7cc2a511a654e698d2648ac1944c653ee15b7a53cc24f3b3e94b8b73c1b71bf6245f7f5afcac9513c5bff7de7befbdb7be48fe48616bba5ecb4d228c5c786100204d495ce53f2e110edf8a40e10664587c973296c87c89f0bdb7c502f8ea96a5d28f4b844571a65af182482578efbd3559065fd3e79ae3bbee00e07eaa7b7afe3e8dee79f1f75be81e187fdf85ee39fd7db34f9abf8fd33de1dfcfe99e187f1f86ee41fd7d1b7dd6fcfd1bdd23e3efe3e81e9bbf3f43f7dcfcfdb3cffffb3ddd43fe7d9fee29ff7e8eee99f1f701d067eaefe3eea1f1f757ddd3c2df1740f7b8f0f76de8d3fcfb3bba47f5f76fe89e17fefe00baa7c6dfe7d127cedfd7a17b72fe7e8fee81e1ef17a07b6cfc7d03f4a9f3f713d03d31fc7d05748f0c7f7f87eeb9f1f717d0278ebfff80ee99e1ef43a07bcebf1f81eed9f9fb3cf4c9f3f72bd03d34fc7d0b748fcfdfefa1ee7c7fff87ba53c3df0f7d8726f6d64f9998bf4fdba7daa80d7f98bf65fee1b53c57ad325e2fa8f45c34b1ba13435655d447068ddaf027d1d0c4b00d7be9f367c30e729c0814f31ccc7362017cf589a529e6a6cbea4ecba08d3f8e2f3164d8471934ec9f0300a4adeb64de138162de731148090fd9c6f6430a118201357c00ca215009a0ab1c4f57394a57b8aae15d761594e38db82b00fce7c3ae6a288d20f2b2caf1bebae2fb0380a41dc37d2a0299807ae4f86bca4176c770c11ed2b10f69d2d239fe50780f496b0fd99806d294a573fc79489312daf4df214d49e81cff933421a173fc67204d583ac71f076922224d46e81c7f194853113ac73f06d24484cef1d7214d55b46982813409a173fc734853103ac71f8734fd809afe3548d3149de3ff0269a2758ebf8a3449d139fe266992d2a6bf0ba4a9079de3df026982a273fc6990a61469224d503ac7bf244d39e81c7f92343dd139fe4f9a6cd0a6ff0d697ad239fe36a4490669aa41e7f8d790a619505313d2c4c4b4a473fc69489392364d3130c1a073fc5f90a6249de38f431219a38e43f14d9fef97de8a3aeecf0c814d313f1be33b53b60cc969718ee36cd7575664d9fb363693682a6d6c229058da6811cb3c048bff914146fcaac9fd1ebca4924e64c077310dca36b69f3a72b6cc71c14e7a2fc8cff05e1279712bf9bec54bb46a82e2e161e012611b2dd4455d369c4d423053cc24333131b99631dbd862d8dfc6a6c5cf1b9b0c43d0211e3744153594388e5e0b42474787ceecc9daee5a6bffb8b5b32be2e0a68c8c9bf6edbde3783ad11d5565dfac4118e903615976c73dbd29d375b907fea183abcccb82f67b99d9c4efb47b2f433f3b5bdaaeebba2ec4f96222de5a71ffe34ab8b2d22e0ea1a5ae29398e70dc708a52366c5b66079dd14a5a02046f8c3a6efa57ef7fc0f79641547c690ff44120f4f3104c4b0de828b9eeada8837dfa2dd2af4fc94c662f33ada94c7fc8a5be02b05219fbdb031b67a482ebd7284c307d0ec98873efbd0f72a4f75d97c297ccdfdb07c1af06073961f183585cfaecfdf5b0e0faa1e8e2971ee448d25ff2f677640a77658b5407a5790846f1a0f54112f9011184c5dd399603f203eecec9620e5c0ef7d2e772885b08dbe096c2082f0c3a1579a47013197da04f6978030dcc7d62fdee0f4231f73f1e52100707c80be69ed2ef72d84f9bfbec7921270235bd99c3dd38222559818be500096e23dc513ce1048e52a40b97ee28a060c17405b8a3c841140c825f48c50a9a42d3f74852ecb8524a2f1eefa5a117867e86d606ce34de5fe1cb55fe39ed63696dc3bf8e60256b10464ac711686c279148a41f6bada55a2ad552e9651cc750d461eb87a14cd844186c2a2f396238babfd15f35e6f55fca3cd632864977cc81627b5477c256d197c1f461ca7c4b653ee1e870657e2cfacb34bfccffea4ab758c6ec2f3f0272657f9ee3d1451e25fc72c30b7e79d0d21e513738ce1fa8d83158dd9df4a0b51593c8aea512a896a88ac71fbf7ea61f4b3f8e7f4b3f8eff8dff4591032678c4f7a51842145ce2966208300cc6c4c4d878b754fa308c9843fd71fcfaf54bf57e3f92e38b78c3379216e700471168fcbe1c6e52ef46f4be6f1c6be98d2f2f667dcf5f7ec4cf7c1fc6d43d31efef49748f0c09e405c3fc2563488a453187f14da61fc797211b9b1adf0f82e25b3e99af0ff7c707451ea51b6e798a7141307a1138fc7cfd087914bb9ffd35766f93bc8c0f8a3c682987d28f5f3f1d965677c4567d3f83bffffefb9b2d2dec1c8fdef1c711c854b69ba6bf26d2fe3876dd8581216160a8088ee408f339e6653e86ce104d3ffe8fcb50ee47b27b1399c226203487693cc712e63f18d27eccc83dcc98c3cd1762b5981379bce0ac832b48135a2a63a638464f2e956684a4d247a6f00784e2fa39befb9e47dabfdc7b64f7b5ec1822d057e6082d95d18777d3879a9afa1583e507b00c7967781d07d638ed1a5bb23f7446d2f14b891cddac38fbeba585e4af1f3af8965e9ec935988ba12ee4208808cdc2aac607e13c918a85d6ca88bb7ae13b95bd1a2f907405d2f005b257a00d6b90bd7a81ec150ed9ab22fb7dd79d7f213b249dc3757f7aee6978de9ffcadbff5b732dedaefec775da4a82209eec12d45ad08ffdb8e2bff69687832de362184bb0adc3e90210183366408672867cca071f331883abc8ea8c389e67f2a0d928633ec8e21061a621075a0a18383c2909303e3539e07d61079d017c41bbc949bdd9b6ee278de8986c63b91149b35f0bca052b9d0420b3c29fb9ef7a74fa54420cff3ac2700cff3eca91475f0fee423eab0a517094058830ca22b9cd2885fd5f81748234eab1aa57de233700fd2103a4ce64f2799cfa3cc93404e4777c31cf727b0e3e26886a883bfbd755bf879d43d8db92f451e4e714e3d8cefb47445f6b91779507c6365e420e3ed8d78c389ec6e168aa519178aa57f79bd68107538f64acf7b6bfff43244a0938c1309f3963cb919f3a77cf3343437369cfec6c23c0d0d19f336854fa79fe1c3e9ff699e7beb44f7dc3cf7e00d4971cdff89b47f4336ee1fa7211b5f3fbdd2925e19448e30470e37bb7b80e072cc73254a048a79f0de70f63ee6c17e2071280a23c5b784f918f2e4a697c2393aa77f30662b649d7832e3bb32531ce3ed9319cfbd15e29efb185df137d1d1c2e9e47d1096a6398efb191fa3f368b8fea934a712c5a3854f7dea5be800842f90744545967dd5fb2bf53458a9b72f66441d4a1a344a551984e212c6649fc6feff0908c5e49335a92f693cf79cc84ab9e0c2d31bcfa3f91927ef81bc60af7cf363441dfe69ca2028be29b37df261441d68bc570641f1a9ccf6cbffa9a60b2d7c0ba50f258dd28b943e906f637ece28b397c4cf2f7df0647e922f25f106efbba20f345f963e90e5975e44d441b3d085fb9b32f7db3cf7f6899fa7d287b6437ed294ff2591878cb72f8a37747972b37b5b8201084391e541381b520639bad9c588f1f66394a19bfde2b30d6c693ed3c056c60cb64222b639edd3cdda06f7f6870e0e8330da9ff9165965d8717f3b11a8b342dc8f4f53e6d3a914c21c885f90d9b99f2165c8dcad20cfe07e1832d7e0a6feea6655c5fd672af33896f9c495515e4824b87e37ab3bdd0a5a55df064d70ed6080eb87dd0cd7fa1e699fb829e4b022aebec32ac9b9147d65adb5e600b99a3bbad93d74b0e538ee2de7b55c701b5240f0c638fa0f1d4ca90ea694d2fea18303b053b976912e98f496f41da94a17ccf5185b8a2a5cf00dafb5b6fd6c6b398fbb9ef7430e29dcc38f83b587444f4ae96981382739203fd8273d49cc8144bac13e894422b91f0217cc913ff803c1a53057f6e0a69740b8921e71d37d0bd087ee49ffbdbf67d13de13bfd72e89ed49824ded03de90349dd87c56d6ed61f8cd96fd83d8bee01f282bb73b6f05bf7d01cec735b74d4a771f6a31b90b819f382a0989634899bb4a3b69487600a33328e6ed61e4cf3ff741a47e7a18615088beb1415a4242680f5c16ae9ca9695369a96ab630e654e9cef98aef2bf6314d83fd3c0f59be3de6f18c777c277339bdf7b11f008f6b72424edaaec49b0bfc7448bbbf075a1a2d1dfd6dcceec143fb9b733ecb5b6b0b5796eaf00765fa5181d47c471b3ebeea3be711cc77194963db8d97df5c1c8d528ba5a72381d690ec1434c1c1dafd64a710ed2671c3985bd06fb7768963fdca4a287e40f37bb372f0f0fa9cc3a3aa679cbfc7f2aea7aa853c67cc2dda9fbce9dd26ed3e866ed7ae86655bc30d9b35a171cfad97fa9d0776fd8d23cd8336cad49760ff7948a5e129d6329a5f91a7d9eea68f3f9e271c463add51d4ea8aaecdfbc4d992f8c3a83137aa17be8db37a98fcddb19653e3d57f3379c4dcd7b357faaf9aee661d43cad79ef456fdd6364447d4d0c2f7b2f194d0c5b0f866daacd3e514f1fa74f14ea6b48288a42fdbda86f51c6ff78eab99f21f3cccd8c9b1930fec6c90feaca2635352fe3c907634420b29461ac216b6a504f1f0c434aa61e14434a529c222946d590f6747373f37fbab931dd3c0de54c36303c24b1246029449130be86b46ec2788a51672a45534fe3e98334299a4a7d8b403462c88001e383b0983e90174ccb521904c530ca8c7ad4932c544d4d08d694281ea8279f44dd297efedb9bb77fa9f8491fe665d4f8897afb94ac331a649de2a6fd14596934618a7c907c6ae30f8a3ac020893a548e2c513c527ff337a9f2c76917a29e2b6f6e66fccd0379c13765774ebe799bff441deacf2883a0b82c33d501c6df944150fc65a67ffa9f4a81504fc9c624d9b8e33e7c1f4e309e0cdbaba5ffe3641dba216b942de851176f911e44bacb4dfb28d28bb8498d8cf45f7ce68462c4282f08468a058bff625fc6be3ac77e75c248cb4ae4a6fd174f43562b5fc85118f44465de7b55957def65ff8e30ca3c56f345596b6e5a53e826e9b3f7023fd79aa7047d18f55e7efadbf78e78303a1304c533ff5365c88e21f3c390393491f984b3f702c2c3d9cc8e73e9f632ef05c9b675e72befe9e495dde5bd7688d7174c805dab0ec63c9ea84f486d90fd82318fa98a821ba61c101c19dcdd32ffc05726fc21834924ea2a69100becd316d89141a0184d6e9d0a41877cc887ea0f194cfa61682c7da9bee97da87f499ffb16840ebd50b7e2a74784c5cfd146b5f8093e0d9f22094b8a84c6fc34951ce9eef73f5dbca6255564adb5d65a6bada536534a6f0ff4d6a2365a44b9502d5d742484901fd4e6de12a619f6eedcbad75a64bf879a7f5c227bed876efabdad02d415577e750a237def1661afd7ddba5fa27a896c9b664ecb3ec399b65a5ab03f0df2d346b5d02d68111d332da95cb18c55a83ec16eabcda6f859df69d8a9ccbc8fd2772963b5d65a5b7a4fffc668f914a7fd48b5b5d65a6badb5d667150a5e9b914ef329f95efa2d45132e353bdff2d93d02dbcff6eecee1b5b3b5bbf77ab97e68ad3d6d75ec3edd96b315a583621c1c9c731cbdb8bd3a99729372cfb5ade4bbc964eca7ef25f163435b99a6d2fd8fcfb083cb4854556dbb45e3ed9483a36f992e1dcc82f2aaaac6d52b0f7e1c8930c3fe329fc251d384be7dd367f0af468cfef949ce9f94a1d696a37dd7f19f02d83823115c385f7cc316cfac1cb580334e106dd97724d856f60651af36ac24c54f64b8674f601807ee99932560b0bbaea41a595c5c7e7a4c0549fcec591424b8318b8b8b625bb2b80801ec54e666982b825e01379d02eea74f68ca058b0d04987bef4c64f7785f6d75c75b55c5fdf5b2b4b56ae52a57396fd57bc7f1ab57740e67eb1c278cf5b9bf23a7e2feebe9348e9c9f5d0d8f686edd1771afd339f65bacd96d5cbbb730d7d5e7be2ea17bbae7c0e7be3aa177c2ff3ebfc0f0aacd6b95f720599be4fd477a46fcea2b9b741fa38a40b57ab59a3ad5264e9fddd7afa0a7e3b1e566b8670c412d090b607d905acee28ef4819f65c41948cb4c433fbd17e791ca2f65589a977ea9e4bdebe4d8e183871f4204bd90c89ecca81039ae0f8224c5a69f622acb94a638b68d4cf29ef454bc61084c7ad34fef49a44a7d28eeff4a20de0d4d3ffd6dd75e66af34ddacd4049487a8838b3af8774028f6ecd75e29c7715dd7759cf760f779f53c8ff4c1fbdb799e773b8c3bcfbbf77adeaf3e454943f8105ac1295ce04ade4081612856e04a361418a438900257b28780411f520257d2078375c88a1dd20257f2050c722bc0956c01839d145cc91b0c7a4bc0958481c11b52b2674f70812be90206bf30862b49030649a452cf726005aee4077131102f0b586861fa439cfa08406b6de7d0075b242530f61415bc9accb49f3e57f638453b7501e72eb9fce81e2074b092ee87f413defeb5df955c196444ce8a7b57cccaca60cf3f30e5c2a547103781b1fb53550d59f51490e0a0053810b2b55a2beeedb7ec121230018217e860156444cecabe2b66d50519e12bef5d35b86a580969e2c3be901d9e4848131fde73a5901d55e5ef955c496b2a84600a254f38820cae188239e4045474c00216404154032d56bdea3ef3f8f8566bc5c54f17b07f576910570619916365df65571cc75912c8d39bbb17ebdea1b51fb4a5cbaeac11707d2074b012fb7908ceddffe3b485dddd8a53778f2245135c70be98be144d60c1fea1eff8ca69e08c837520005a699a8f7cc2c101f706b1d8db7180ab3872071efce481d2b7650e62f1e56187fbb9891c1024964de8ebf899290efa24b0d40169a51ea56588e3eae8943a42ec4fbd7e72efef001e6e101e9dc55e894306b70e0e33f53537d0bb236a8d8b6e6bfe02bdbabbbbefc0c1df063fb3c993c3a4b41d403bac7c6aac7446dd74b3eab859df74b3d2709d82eb0e1c2a165cdf861c26ce8eb596b32937ebd7f74acbf186b64ac4a605d7e09ed968186ccbc49804d3ffb87c47f9eb82e9935a989e64a8bbbbbbbbbb3b498b2c01093671cfaed8022fa18653b8674b60822975d5701e291128116811c612ee59142ad896594707e7314b0bdbe09e2dc186af38f2d9ec15453e5b6dc2084490117f469d43ffc3a26d508ecc297c8516ec02eed9155128adeeb6d6ca89b676a20eae3e5739daa5fa2cb79fbfa24a8950ed0b46ff2210b1836e4ac791d56d7e5f43168ba3d8abe5ba2b75e7f4d732737f39199216a922cbbfeb6a97118ab17631562b8cf4297e8cb2dfd8ff2baadc116e5f51abe8779faba32eae04c9aa8471c43d65062e4c9fe50277f7d2eae87c896ad8a2b55f5115c64c5d9816e1dcded3a202d495577655d5b764df70a6ae6ff2c725ea2785f8814631d6fa4ef6ccd60567ea72dc33db16983e2d4291701db62c07d2bd0ec7b6eccef1b2ab2ae3806d639b2912fcc38f4bf471a93bf48856d14fe2a404a6d405a777d9d8f8ddbe2237e9d7118c794851bd8d4deaeacccc2d4f0e379d6786b1bb64d3df01424c7ff7e7c98143fd82e077eff05455100ea4a48e6984ff8ff354ef782c8e450110d4c4d101f2bc2e088783e070aabd8e6eba3f770476e4088cb5250a666d19f2d352da4f473f595b8664fcc455473f10dc258a8777d99fa25650238cd7dafadc83f712d98a7adc186b79ed73f6ed9dd1746e8cf5efedeee96d39f6b55c40cfbbdf4f7de8178cf57fa4f0ad1ea53800dfb3bfcd97bab77b57f7fad9bdbd6bfb7be965d72460c33036f7c9506abff7be3e7ddcdbb168a43241dc1bf12bae6c629f44faec676fb03fd5c34088ed77df9da5968635c4d6cdafd51271892e11579f2201f4be3d6f057a0896dd2aae8e56c5711bb818f4614bda33701eb0d8235105081ffc1dc2b2dfc3820f418af090d590953f58661af43d480681df55453ac2412aeebe579c8e21b8579fe7213891c70ddc351173a859c882177e6413eebd8f6c12847795abb55ab1743b6f08cf725078b5617ff964a239754e124e96e32ad7ed0491de885f91ca26ed7df5befa799fe7796548695bd07b714322db5519470ef6a72d60ff17dd63d339fe35342f70df389968f4f71ef995d9fbeefb2bb3f7a20eefed1096ab4edb723dbb7e9d3cc133704b217bc98a64536e6cd88f4a37d32ddcf4d791904422916c180661ffae08ee5a3f4e31b11e4ef89e6290c4240982c102431404430453eb0edf8d8ca6bfa5d289e3c417166762119104547c4d71d381c487a1d1dcf4d25f317c2d2125954af44ba6ff715a2a95aec9549abe5432cd908d41db62a9f4a2589a2145f2c1fba617c9fb2572e63d11e88a25d29bc8cf4a89543291332ffecccf908d61666efa908fc84df17f2acc104c143f1b268a9ba6d283a048fe084d472613e861102f32de1fa1690beca55269e2e2a6bf3cc1fef4495fa50b8e01f7ac0aad56837b56459259155be09e5531abc2361b020cc7e09e0d2128091a9e01371449242193e22a3ae196e2aa4919010cb794236051cc000b7edc51cc208a9422b0601a704b29229604197edcb324d88670cf6c329c65d09a28223bc260d72bc65c2384fd2f590ac3f0bbf421d9c37db04402b9b74402b9b7542a8198ca6c45320f31c3e2b34cdfe21549d25f5299a989cc16931eb421a4d96362430c886574e4f38d512290cfb3b8b4bc6f1c4304f29e6554a3826944a0fa2c23dbcf373e89403fcf321aeaf9c63044a09e6719cd68bef10b1188e65946b717df7846047af12c232118df58460482f12ca3222d7e9ebe718c08747a9611110ddf184604a2e15946349e6f6c1281789eb5a5688b163f77bef12802ed3ccbe8757ee31711e87c96916c866f5c1281667896510bc7371645201ccfda42bbf18d4311e8c6b3b6d464f8c6a00824c3b3b6d862f8c6241128866719c1745ee7595b886c7ce32b02d978d6961b173f6178189eb5e528e71b772250ceb38c6248fcc4799c6719b9708d6f6c45a01acfdac284c9932743b37ae2e2a6dfb09f585b5ce2f7903b84b5058987230afcc6f4fb71f88912514cb0a392f8c94fd4cc977e66e67b5543ca4f14e94b252b064c1e45fa5ee510c9bea415b7c841b2c9d8c05009e3d34851c34c1246292378c2bd74ff234352060d09e363f1ef4b1981cc5492224a16bd2a95f9d608d53c7113cb986d6c3268b69a1a9b194a68ca988370f87e8d10ae4109c948e2e72d957c358020478f1ca5eb5735943298b8ca65c8fa629578ed966b63b3396a95f82af1868bc507c11a211559f7b303b0e94b644ee9e8367f1c0471c21659b7cc292aea104b1f4a3f93ef974ad413376ff92385efcb38e2278df79701ab3b3524d13e35331922a03e355388b44f0d8ddae8427d6aa8c818419fa9f79761043d67bc7f4d16fa2cdfbfe6c84ff26746a614c134194550c102f6af59c214daa7a696459f0f05ea5363650b3d6f9cd03e354459fab4799f1a2cd4867fad0a566e5860ff1744166de15151fcbca50f300fbe3f98c23e981efcfc23754bd4131ea607bf0592621832530c73efbdf7de7b9ffe256b66d4c7863685fad850a1511f9b1a6d46654a8d86fd6ba8501f1b2b35ea63436485fad86021a23e3292d460a13e3264d486bf152a44352b35443264508305c3bc9843e9ef2d7d7e7ccbfc23f534beb7a1519f1a5b8c0c21b4cabfc64601f0bdffa0b4e1baf3b9f0fd9137276855480a4b4f2a954aa00d61c8c6a00ded857f8186fd6da8c4d464acc42042bdbf0d16ea134345a616c30a8aa8c6068b8d136ca0404dff276da6d0a63f49da94e40d91be1101bd49e206e6a67f0de40d1257f9cb90c14c1219ef2f4336f3329260512cef933edf9f792aeab85f7a1279919862cb1598b679bf3be79a9e3e8ca93125514fc87cb302ecef820c9a8d918d146cb8c88fb38ded2604f986043727b031c55051fcec16c8c6e045d508f9795f061557f9d708d53c9141bb32b6eabb82b87df0032e32689dafa80328e02c832696aa32dbdcb0d7c4ea8ecdd0ad89a184b0bfcd50ddb9b1b1f511ce3268339f65d03edbb870a689c590bd5e48901c4172041892936dc688595b5e2f97cb058b21f4f29d18b222476047901471c590d51a64632be28a81c47740301623c94c9949486c75e7de3b8ea7d3bf699e6c27db149c2fccf6e4c939cbac2d4322c9da32b38225e6ebc2fef7ded91064f8fe8dcc10d6962797de7bbf22ec9fadaabc546621b8f497046f8ca6325b937845ff6c3830f96a75a7d66a1f51179cab0d76ef389e4effa6a9a3c3c332dac2cf146eec43b28cb6303a323aeae2e70cdcd82359465db8b4b8b4a8f859e2c695641951a9d5b0f849e2c63f24cb088bcdf6c4cfc78d7b4896d193a1a1287edee0c63424cb28ca6cc6c54f1bdcf805c932e272bb31f153066e0c836419311112d2e2670d6e7c2259465a8a8aacf889c28d692059465688888ca6f8190337e6215946538c6846b42d5afca4c18d7748d6162d5b8ab61415f1f3841b9f24cba8c8eb6594c44f18b8f10c24cb28894cd6c5cf17b8310e92b5a58b51cba835c5cf19dcf806c9da328546a3e2a70c6e2c03c9da42a556db82c5cf18dc380692b505cb16db169bd1113f6170631d926574c4086604b3e2a70937b641b2b6582122e2826120595bb8dc6e5bb6f0f30537ce21595bb6d872b4e50809c621594648622ca358e734fe719651909f226e5c8364190519b9aecbcf6c8ae1227e66ce865946aece697c8f509f249ead7b3a2626c3fe2699496866aac52031c54c341e9c4db15a85a1713169c9a618cc13ec3051628e608f8161ffce566fd12bdbd8baa359bdb44b84fdad0d3b27e2203e2702896565c1688ad57bf358c5f759dd719e3bc321c12e7ee92f29de7b673e833ff320d862e945f29625d3fb8d51c9f73f5e63a312d7af3e21b2ad263207c13f421c96ca767326c43333df2258fe08710880ff7100bc2d1a757470dd39c2f5ab1c01ada7a8348bd64b4359aa98424302080000100023150030301c0c87c422b1703ccf24690f14000f90ac5a70489d68590c44c8186508010300000000000020090000c041aadee8409cd89ed9fee00474e6ab19a2a611aaf307abb09a5ec692b81c6b35102bd60e6a0c17f40c24dc9921ea0378ee870cca0304423320118f6b50faa29ab90002288cb69d97b0e938a06fa6803cd044271b2169742eb212942c8fc0bd068e9d566a121dd795dc8478b969201d978419fbc24e813fc74a28da2ee25743eb67b337b7b67ee52b984e519b6eec94547130968cbb2828cf8fd9c88d5773bacdfdca030ac481ff676bf81b4807d19f9e9899de4a4bf5f9e4489e0b6268ed4e8e4e29f36d4cc028163e0eb84fa1621d508e94ab326f191343a5c44b90cd5b76af2080759bcf6968d50863a54dc5c816e0a13b83e700c21b3020e9019092e0b1619b7d21ed251b7c9ba3233d59dd4fe758347c45b544a2d8d5bdd8e30bd4368bc49636d41a910191d999736f58686dd3f96e6cf900bd2fc46edd2a840dafcc9c31007368cf72efccecda0176c714c47c318b03ec4562af6b271a7ae8c7e20dbf1b699c8cf294f372ab0358348823eefc8b18ffda16ecfb882abb16daa7b0fe459ba9ab7db20c736d9be9454f8bcf8d70af45f3d89e14363931b0c298359b18028aa5e2601f9dbfdb36cbb825fa8040d0d94448a38216e46e7f60c9bd98906539d1606622e2bbe97b03afeabc9d261c331552b9d1b55f94a917f4ad339cbe619d70a515f70a350e601b712d556f610eb9cb2d622f6db41014cc49f91f982e87001021f3ca457f42a4322f9136376907ee13d0f2054343b0134ce8391b8ce72880fabd2cced32486c911072becde396729aee02d44eafed9d303af65d2498a627aac17e27159c8adcdad1c9a37021919e8adb20142eb46db78934ad69e8e6420196c773b8822a38b8a48103b04d05290bb40af42555c811ec10882983e103bb8fda54a801db83c0c8d58168fb681c5bc20e2bfeb28f71db2ce02620c0c61f3bfb3ffce9f3684a786b5b8673ee9f2c16306ed40bc10327997c9deb6ec3e1ae54a2d0e708b88fcb6ddac383f69512db7448416d9e0ddabf8bcd4ddf0f5dba5c2243ffc5d841a343a0f37a216472e5625fcaf5d5217e1a6a37860d471c0cca41fd83eb8c0fd1ccc3cd2919e950cd4a23fbe63d4ec945e61654b96b14b76e296281d35b6a24c99011038bdea721b867a4ede1c24031b90e976c05940d09b5f9d879a75b87dedd73af9cac6319e93d69afe6492cdd4bda0249d380960cd7922bcac41ef13ed0039b38ccfa8e83f577c497bdae3fa57470221280f4b86e4cef61652b6865ab794ee91510afea796af11317674aa7334fba621ad20829ee61971b84d8fc27db900f4bc27fdd79284c8f2c32c31a82447a82d180a9395523cdb7873442152756e39948ebe507e19d32b0a779a689a910abb62ab4b34b130b81100c019893c4405c8706364dc046a049f1a45552d0498d061cb161cc136e26544c171e98b29aa387cc218a19346f2c6fa350140a35b1812ea875fdddd2acb1fbe3f754177470123bbf45ba967eb33fddeb2911ee88ff0a174f2d222adfc51d78e394389267c371eada144dbae2469895d9295ee6783e4235a27e9e22a3ddf4b74087085b7b77dcc42290993539489de57aadf231690aba473c4faaf0bcb304614e6fbd06a554d406005acde28d25eacf8d0165db350b24304f3b314b0445e05c0c76572f08245085a8511f643c42db9b1609184e1493571fb4b47e0313e15cbdecb5a48be4f2f2bd4f7d776d34a10c1f5c24934e798d75dc6f3d6e5466ad466ed6cb6dc4f29325cc7f714ccc69f500508e75694b76ed78a3309bc5e209d5b0e12b67223a74cfaaec5770f4d8cd044ea25d4ceaae65636aa1ffe1019ae814a5a8d121062af5e43cc5dcb9f87e04d2825ee9f4631e81db42792253625ece8e8a5bd00144f3e2d79a56b6357d31a98f20c3f4ef189432cf56ee9b085f6195223f501c6451ee07d23e555442abe19e67964f1592c0a3b72af4193f1ab81d5a7686e48133104683ac3e995b5a9a6c50c7ee709918fe2a53d36df096e838b7455eb9a4913cd7a56075a51d646cdbb162b4d1e404429585bf1972dd6e9bb5ecbc3833783a4152becb0037c650e52624bdde8a20d266d691285bd87cd867e8d8d6ab1a36250fc79cb5cc7f338569054690b4344cb5e1c65e3b0bfcc1f2cc62a868168a8b061168a71b162c7c8d6b54c8dbe344140e4adeb91aee0f05c22a22627133c81b90eb6bd04c93e875195ee281d9fbf3fef986db3e2ac38189a616a0d3b2c6bfc3105c74e5f445b1f25528e843644afe23826f700437b08322f89355e1f397a856396af594046546169b62f4c7c65567689280bc40ddd3f5d2e27c3568cf223f22c2b7270363456290b34b66268901f24fd7421f5b9e9742e3d0b9eb09c6412d3ec01dcdd074f2725512a21280f6021519ad846686931ae920db9c6e67e5b096c3484f7f472ba23a27bf4611dacf46f978842d1850b8c7a1cbdf54a30e7320146b93747aa7b0e86b294dfd836a5a06ee6e1d63228bbd40c2b42a37d808fd92964893518512633c597072e206caac9fe3f843e4d121a19486620dd4fb07f7f01c83c60295fd8a80d56215e14a3c741384a09b96e0142b65906931a36c6a334bdb226ae7edb05c5a7c467e81943f70925c9cd6acb74e3f054735fa64e1b965b68ec976439cff08b8629f713c18c4d02c5d8754d944765d9ca24387c74b6099303e9f4ca174f54f2d470ce5a55701ca94b815d84d9e839e17c85943f69265b7fc77ebd73055eded40be83273ad554e3a5c9da95c335354c7dbc569a9f87ec2acd5be265d69bfe1950270c17b315536044725422981b93359441798f77aad43dedc548451ada5440f476032aa993eedfa7a6b54a39693e368fe5c295e8953437e71a628bd417bf19ff14397db4ffa525cba3f1e96e3b63f32287125659139c519d31fbd17f8bfd84b396adc7e4d9c06ddb55b063f7078d0dff044791409c1c6c77621c2c598efdbd10910954984cb9f14b98a190173b71a475868931a6a1ed43877f35f7e0c3594e2f044f61950e86e682306b40894437a11112f763c57366d88d9f79a504c24cc5c3f7fed0a9c5f225c183726928834aa65883708ab08b64144fd06de8551a30b9e7a386e6c7d17c14aa29e62a3d889ca5a7f6cb16e004dea33f69c1cc87d63315b65d34f3961561e348c406ba8e09ae44c862d4a15dd72d3f35d0196fb085f386425fc6c929a3d6a49cd6e51f01235b0ade4a5602c0df2b9d05cd02aff2cc47727aa847afc7382a7c36128fa55b37437ebc520d7a9a29b38b3891b85852ff65797c52eb8a754ed0af7355325ac4a2664566c81c0bf2a7351ae442940bbf139bfc55b9169de0b2fc104a37aafaaea4dcc9ea37d0bb81d8bf5fe9722d0cb20b3563fd8e854f4beb2318ad20957e9291ddb1663a57868d335a7f9663aeca1d5dc6914da09447c53871fdbe58d2d6f4128677c78ba7e8c46829be697d0ac9471c25ca7a4856d0a25522d222972ba06cfc86d1179eda77b8f697b429e222263b27d2a223e1eeb276db90006adad9eec18dbf390210cd69a1cee1e22e802f91a9e1b8982eab2f4b175bc07c946ae3df8ab52dfa7f2f42c941b0ac8576bf26f8b95b5151756e8db5ec9bc4077fabbc374a0ff7e9c944dc04631a149e0550a3dde2a3e6d1b239df71559cf4b714ca5ac20df077a5c65de32bfa21131622ec3c59b95dfa6956818c1e4790a4743f3641de6baa2f34eaac2b7611595a3730cd95417ec120f507816abc16e687f6749993d050a24867c752fe21407180fba1f091a3c84388bdff5da8a63ca8be04a6714ac41c9c2bca8169354f8e0ba2ee7a7d81ecea534f1dc2ab6434de47282832ba93ce0c794d2cd98611887188edfb57609167732dae3467c0164ecb6fa3f269f8a276e9e8cf50ae897c7f5213ccc5710c39a2713688e5a81606fbdb57996ab62eeae654ae5120bcb9faed588f5d2645216da1d607c80031c41f07b284e69c530fca223a1294572c432668d0e54038931f8e4035ca001ff675ed1cf4fde50df0ead2f6eed281f01b1b8066f35d0191ff8d451e39f15fd053739f5ead175efe698ef5d6bc2125a4377ebae1e5c5d1f21950db57cab2f392b7f5987733b53ed1f9fb899dfeeb9d32a3bdd99ec34fd350a84e56bad5ca66440a7b243a30b38e551c0298b0c1071bedde7cd125af29b74490a7e431195ec16916a362fa98b13570a984c4a2598fb1a6640f6dd9298874b1deeedd85889a1b7e4eef63af95de28135b8f2d2e25a0d9216640c6b18972d3386d9f134d6a644dde9276f414cc6b7b05f269020fbb23d502c8edc003b097112649b65891f2dd607281e3d9a127aca465166e106ec3e0e7c17a76da689101e21332d72b6f9dbc386aeecdbc31a978b768c69ad99862f5267eabec473264c9b553f3f51c8f827300d30a536cb66cc1358d9b00a4909a84a0d8ac2765bfd48c7855c42e3da6e1aef0739d24faccf639df4a4d19b3eab4b69d8e35af7a4c7a1a3d58b942ebcfe93a94850f430b07e9b3ab835d013da5858e15d75defcf2a15be010610551a5426bed30ef71288dbcab4214501647df34beccda9a131c8255dbadce1a7091e064257bd21c999f2429d05d08b4ba85f591198df8632eca46be2199b57e84c440b32f4565a6b7c6074f9f65a16216a66ee3c475fb07f71e9f48ae2994b1252e7102e4ea0ab73e83b099d0dffb226cefbd137987a3d2bf216bf7271a026a999ef393f990acad36d668b70694b5615986a9375b8b37253fc12daeb02dfd2a8ee59c981417b3ec7b5409ac53e2c70dd3dfd2c9752166b6d448cf1c45ecab3c3b68a4817ff119b28a85ad4bd99a3bac124018d46df0a5c3599120fafb486ee33cb0c204c76a3a2a0b01e4e62c4d78cdccad888c4fe15d840ffdcd75a195f90056ef99eff716c29f4946106d1db542d106a2f85d0b7b47656595ba3581a86d6ccbbfaad2ad2ad9cc6f16f252e086489b7695f088b3cac01e3d583850114d2d96ba3bfa9a512959fe7051df701930b1eddac1abd11f3b6f5f4a2c4f2baef0076030db28b8f48c80cabbae4b5997d9947d95a9273515c5e05fc752390b50993eefe7c922883d1a2d81f3642680c267eab26dce111742d13e6a3f6ba2cf80a7ca68cd245e38be12b8663adc1bff630e3a1493785b0c572927b190638834188aa0b86e056af666f9d464163c0d4cedb4233e7474c0816562e0436debe58892a587d2eeae0d48d87c46862b7528a2f724dbc565faaba17669c77aa3cc43144efd51cdcae19eae0aa14993c53a4ddff7624620863812c463fc6fa911d624f8e01049b814e74e11affb58d3f47e22c186b0055288d2b59d1dbbef5a70ecfb65c76a43c6e25e268a4b730882fef63ad351544ff8c2df08b5b95ac7b869263c5c91c4ed747359a10ebd18e13f9b9baa02d448515224975a7a137cce0cd29a04e5efd27db2ebea584839091361ffe13bc5a71af7d557d0a7fc03e5421f8277a7e1256ee8213286acfc0dd2c9d1d149c64eeb61d57c2c4168766ad48de55e5ea5fddb14a48a59689b6f30bf61fe54ef6108b26d51f393abe9b45be1d898bb172cecf236c2d0d00ded5e69427b8bb527fa71289b72e8caa0abd77e36f3f14a6a560a388018e2bb4066f0be57f2e882f025c009c46a824f6c06e728638423cb29158245999386354b6e0f7eb5921c2a8a95336014cf5cb3953ed0b95940c80bc52a83c256cbc5c1fb969a347ed8d558b834377b7232ccb74e9a4e9017329d957c66fe3fc3f77ea122b5b0e3e21516f1a662514b22746c9183199020692a3a18c6c551cf32781479da171d21733cc60a89e340ae03ff65e0d1750de37c76600a3c752360cadc65b18b90f422a56ff761d52092c1882f6e65f1b06cda337beeefae57570999e6d9a6030f3a473ff283df3c9454d73605503c88f80934a6f8443bc3e9b2f8a4c9109dbfbd1ea401af9f8dd3111666ebf5670e1ad321c9f3e5bf04e800618c5985155d5fe7127d3425162a52242c327121ce5e79d7962497dc524974c912c44edca65bce8908e6981b29daf147754cdccf17a2bcc8307150cd1a4e95a2b03e3baeb40372a51514d1bd8d33ef34d7ba700b4f67e6a04947c7727ec0813b58079ffc79b8fd0a4a11f61370ed07d295480c32adb29387bdcbae5eccab4796e47ac6e3ae1dbca8920347c6c3171453777d7814e035f40bafb145205c6a9d56c69b6819ec0d96b7e0d1a5073688b62bc5eddec56dd911293ee4974a9951865d73adb5d9b553b361365e918f0268ce70cdc2752716ed60ed4e6cd247a4d84352d89b8c8c65c656e48b0e39a749e5fffd2c2df05eee7440d8d05cf03d04ac94210b02575d2e30d98588332016f81764cf55ad4c2d519898230ee93c33fd8990fda1ff789e15dcc5e7e57bd5778e00885d728c40afeba56324ad4fec8a6d26b4922337db054635a1b753704512c6dba807c0f83288933b381634debf5efbdfbbc6d8739a51a093a015590274f82e11d360e9291c1d22ae9888cb6f5aacf035ff7ec1013c30cfabef314858a52bfd13a69a51815124535dad4194c5c7d8bbeedfd88414bd7168cc98859cdec0946a35d805a3ac21fff3de2bd8867930eef2a96605e3a8e5cf2afd51001a3959f3011ccc1369e0f251bd0252d894159b30c628ae9963949cbe59c639d5ef072a78a0e84d96a6cf925bb4748124105a524d52ad9484b76d6ebddf74105c9cadb82b2d4d5fdc3af8de40159ee74e22ca37a5c2193828e564705ce7519e827ccba46579ce6825135d60d694b9918d3a1fd20cc62a7bda8ebe92680a0a28d3d14d4974407d2b31daee3a4945cf6723ea39e68249a8afc292704534d6ea81a31e0c66a26bb4019ede65ee2f491754497f45e881e3ba60bb608df2b350509f39522c0d4d9d1285f2280874b20a9357795df403bce82b9d699b7ef882ac63304f41d740f28405815befc88cfe032111241c6df3dc54c0899be65e8f5f1ea8253ec58c67c97276e383fdd99aa57cf8fdb827b2fd4ac9a712d8e6dc94042ffff497ccb5bbabc980370368f4fa9fef0660adb8f3dee66eb70b1aafbd319cfb36374573c59e0d7a151aed4ce6080a104f21445fb5b719988e4752aa3a018e3f4764b12dc6bc16d3b0656a6c6e5e66192e3d17bf1d3ea1bfe29a8bc46c0003c1c040f1a8a0e5f3f0e0937a9cd0927bc050d3bb1b2c2156e590255e6c291eae8bb93a6146f19d78e39a9cc0a3cd4e04d2cf4f2852b57e67924ab0f010f5609ccc42b52a7a1e020d9e2bb351ad8be1292214f03960eec88a0a1c8b610cbf3e9742c1c5082a648fd8b3de1405ba81b47497e6e90063f0da2429f9e7da53a3b527075b99d89ca7474a6769bedb686cfb4c3fe53ee90b935794319555d687db31560dbfbc77ffb9f42b2ad6bdad98b543cf2916e176ac2d68db418201cebc605a54a1edb4b4ee291c4a0f964fbad540e6f860f8d6b61f40af181cc4fbe7ef675f200cee30a10b83a356ab42fe2103d1c1385249bee0e6a0b6023913035ed964134c22553170459658cf749aef0f31101199387cbeb2f4bcdcb737af48ec5d6e437c4ca2ce83a349377926ad8ba756102f582731562c5c717f9427dd3e8e6bbea32ef3227a6f840dceceb1dfc0aaa9ba130295580d8edaebdff5e46e9dd47783ef09ec2ebb2392d61c566f55eeedd2bee13fd81684c2ca455ad5c1ff3f7eb5a4b2de059334c72ce5ef7aecf58e0facf7616ef25c0e5b76ed7f2dd2bf3325fb9e6dcc1f83f8c524ed8d9effb422be9ecc89d063bc26ff2dacf0277e3c0a0356f9bfbd1fd81ad2045245bd073d452e2b8c10ac90339bb22a1ec052978f67bfcf2710868ee5d3dea96a4e51ff188d85640d7fc1f4e7bb02aaa375f27e7fe5864af5625c27b7482e0233c5323fd798ac88f5b3f08758bca7457fea9245d1bbaf4ca137c7a2dc7eb6a4156843a852d031eccdd582e70fa73b101774aff60d9ac7ac9f01aa562d3f92a08abb66b5e667f988c0b91637e2f9406993330fc2eb9c7031c0111c5b20b4fd941121b2ec787081e7c5e411839fc79ec70124bfc2098bf960600661dbe9a00a6fd0b22d418b017147e0087dab5311015b591b8c656d6a486b335695da54cca2e27b4aada9b0a5fa250f80463d709347a96a3f7cd52f215136dcbe89806b06af8aa1d0feb162d112eb1e2bab6907b2a6941037ef8aab6a546ca478ec00b5fcdaf3a539b77aa6bd0d00c64a74fc61549ef3e1f3af685323190d7a38bb2f75aaa0e28bb0f5cb5bdf59342dfd149c5077ac54e3a077753e18f1f621a06d06a6c5dbc54355765f568abf0d201c6cfe7c7ee7ebd54fb14d3f550efd54377f4721889fca4596b4c3f8d3af6147ab02e8f655223ddb394887b34c1276c2b963b8c6a239dcd5f5e78ccc01ffa0945158c674273230a5f86d2d2b47a141a66b5c11a41792a4954d663dc7e056cd7e2481b80043cee33af1bcb5837c6e055a41d0927c0b948016b40ef4c82db2cfa27c46a1489059ddb7e60f3b5d5a5d16e7b133cfb3d4bce5d98aa1a1a15c090c25e4441fe3e3f95a52d51f27ac9a6890497cbcd7060edfedabe3d63e53bd75a3e34349bc395c353c1834eb52e11a2bbeb4547d1b6d3b6dbae67d19c9abd420192c2b0fedc3c70470d7d956b0911f26a818da01caac9417517bba22fdbb74469dc6d66f8b75114a5a440d9c1d5573407899a03c150544d15ae04ee8fcee7073adf6466cfa7db1573f6862bb2272d4ae48b72af2538ef54a78734bd15f3ddb0b117441406beb1efd9fc03d5eac03d7a128ce191997b9b8ecacabc8af042525af561228565d51fb6c81419d72cc25aa3e2094eee6e9d266f54dad391c187d42dd94b7ade2de46aecfcb14ff768b020804181030c843cb12864f1428c089b17ba75fa7fd04619b77f4ca24dc3c3ff189b6bca0c91142974fb520dbd247ce39dd8c1fa384b65d11785caf64745c1aa6cc017aee3d7eb72153f0aa7ceb02b15dd5a1e06a0a42704d2e6bb3c8fce6ef91ae9c6b14d860a7fc472544a13023dbf40dc6b72641d278b68c341f82aa707a17b1f99339d960f2db6497d1911b7e1a11d107321960c49a7f56fb2f32143e9cf3473090a782d171bc6ba68d574774d7d0752b4262ebe3a3414992bfa16dd73d2ad21b29986776278dad0fb067aca481089ec324dc513966e11f43399ba8c1f3e0ad4062892daa684ee40a87c8ed6abf64797bb412b3dc5ef2582452585780a72e83c54b30fa6f888f0199ff99448ae82a8cc3d98bc0fd6b2fa46c14b8bc47e371ca3bb16aa47fce3e97a1a6a91a947166ada4c454de369cee51b4bd93ed54332337aaa782523000f648b4f101769570dcf4c509677c341a32987093e217739c6a9b539071c107f01ee0a7720c13a6d59630dfafe512c37b3873c1cec57fdb75b5d812c9964926a4fd6c9e9f391215138b25baed14cc89569c48b53c22c55bf7e823545358127187f3c764f31ce8f09072101f381099fa3856ffc27154248a33c89e002b233014431f8db6b29f433f255163141a4f0f87c3e24a1ed1bc564d6265e6ac1daa674e27c06c2648fa92c8acea90514721cd9c1d519b58f6759f5f3c7885c11fff3a338370144328eb033f40903b0507dbd747cf82157292e034d85efb6ab280fa6ff9219d6ec671d4792656f69440477df7fec5608559923d367b75a3378d1edff6153b65e08b20b39ddf2426c47131fed6929590812047352b0946c52be2964e5a1da3db0ad58c2f6096804c3b085a82a42ea08662044ffe2330aed3f3da0be26b1224e54826384ee33e2cfd577a514e1bdb10a0544cf1dc77ca9c864aa4861dfff31b57ae96c429a102ca58d314e2884215de95539244214036c8c48151400f4678d92844fddde0032b2d16bca3754dbf0701d80e3cc36ef32c81b314ab1c16d3ddcf7b23149dd88c4310fd6c2d8dd315ac6a661b7094892ba8fd9ee677535d32be9055a3d09b09ffc77e32407263112cc4432e322ca2e4280de312033e7289fa9c88d034629b388f2594360eb867439e5072960d3b12453dada7f80c79caa16bc9bb59158bf07d87c633399545701e947cab287023af0516572d90f4b2b0b2a066a8a783d143cc0920f4f773044c9ef3b2bd0f30f609d82978c567131a03db0a26392343ed15920237d2576f01c9328747395e02152537d88fe3b0fdc3707664d50d3934c4bbac3fd92a66657585cfa5fa88024589193363c9cbcd7f65beaf0e7a70ff105892ba04f7e40b26ee5d777e8d213108579d312ee0d24f89884bf23dcecc4fe265b85e30ca4f8a84189015e21bcdc9c3f41e11d89fa04f10d93b9c3c6eeb37669d8aadb0161d452317c4f217191a53f8413221a1391361ab73ed0ba0f0c9fa1fad6f369940086eaa647fec4decbb1e169633ec2e612321302ad17e5c076606b4e52d4bae61594a8e926c45f7136c3dadc54591408700c45e7572d17066d7fbf72075831400768a34840e288e51530c5e0c3ccbaa65f20f5d90c220fdfffada9a95427313c3b04a074e27f49fe47a4837b8037151e83b5d54db1a52e4efe04d32573f65838614077b6552bb41aaf32a91b30075095cc73a88d12cf0f7dd4708e9f29563404b31dec443bc35899d92b8378666c8b5b95a98d1f33784700d623d63eebdd4741994bae3656b148ec76cf10e955680fb25a2c8694446991529a65f49595947e45dac291027e8ce33ce9a5952350f89530c436d5162ae010feb0cf62a1ff07c67e0922a77638eb0cc8b315ef9331c5e85a49f12e3d265b5be0649099658bb3cb6c401897ebb86ee31b7534fb170b69e84ca202098e1ace5df0865a012fa2887f76d22e4f83b9a3becd05c2c20d37e046a2cfd7fbe57e46fed05f4218289ce6c0c702731600987134dab3762b9da8a3e37b0ca9e59c900f77eed0cdf77c3ddaa630ccc2b98034818821225ac0d7ac8e30d682efd47c8ef79dcb5ef212c3ef0d150f6033d9291bff5c0790e8526cf29add35c545e06c2a33493e505dc4cfc6eb8173cbe11cc0373ba12b806556df710ce08bc4fa4148d4db0cd4f6789c8a5e08092bfce8246c11c0b24e47010a41520d013d00f80f52a39a9f68899fefa098472cf0e5dafb291264686b0913f77246847e5f9b7fc36c4d366c084c177931bb6850cdce42bf63a09e3a30f8fb6102a05f7aff9f0709597f75824378da1911cf3fdef9ad957138a10f85d42d25c1a5195352ad3441c9c28cb5696a915859513d1703dd399e5274bdf519ee17da8170cd5226acdebaf9078dd72cabbc8b8c9fb49c8c11fdd83bdd3133e9167d578094e38bed3d5156751fb001f7a1f10eb920c892c275eec1c32c9df771bb397a520b91e6cffb891313d3d6190dc72bdb19e87f214294985d9635fd1140cc75fe5738223ddf7c7ec41d218a68b183cc15ba470848f89d24fd1461222db4f83ff3e0e88e6bb21267b72b6916859fc0ed482a44fdfc65d167cc2b45b780f8567a15f810b289f22a5841fe419fb7e69fdd3133e22102b44d0276b51e02a05e681f0319b2e8e7c266226e88c5709a71e9774795b1e2a6174e5c81b8649ba04fb7c6222c9ca855d8805c55382a8efc0b09dc17912cec41281777bfc888e3eebad5ddb035c646c082b099252f216994e3a3b04d398899ba611c5b56ab4fe4b4cf1ca241cdc40f0a6f746ecd7774ea3732c22c3fddc97cea909f0054a289c48ca2a2aceca6e2dc949194ef754492f9ea37e03107055985e98cb327da62c88999f8f3d3c1a170fd709c73d701b6300d40f4c48cb061a0377573a3bdff418ea392daf46220f29be1a14ecc58d6a77a5252684ad6e5379aa4b2c0238be2109d3f9c5362fcd9fb02b9235b0abefe97af7cb0f38154fc20e7f425375d754cf864219953e1200cca76c2c20ac36742d2c8c86563c3302d144983f89f1bb616010f10d96d4e1c0db361ebcbf46ba07cf63f986446a909744cc6603be19204c20d1496dbf7b7ee98ed553d744804dfe7ddc6c8cd406ab2c48cc2233047898ef4bd2184dc0ae619533a2d17e4038f43dadc7028a77ba579adb29fc70e57b58c3144b0cfa062bb4ca8bd85386f8fe2169413951cf995589ee6505a89f65a087e4cc43fcdca02fd5d66f20b533c96227dfd9bd191add8dc04261acdaf379fde880008476918ffd5053abff36743f7006338cf8f6c803a0f0d37204020ac126271d324f3030567a51d1644f0308c19a20387903ca240876042c2a3e0f7b7376bf0e8fc0dc3c1f227b4a66631401b0a72fd60cbcb4953b6cbfaed90ac8165fb41a8df294c45cad60c85c35314e4e66aeeb3bb9cc57707c119e93eca8ee84fe9b216ff478c3c1045b7ed4a04330d0e93709e8d67554007c86f88eeb0b28cfd94c0a88ae5b13b9172656594b45469fc0140f1f3b554a3e757be215815baf5fba25db37360eb7898d9901ab2efb28b8bf1b531464c0395ed96e1db653d95eaa0387eb3985dd065e0bc6011504230a56325fe67ebcf9cb56e8d0bbea27fbb8a6625b415aadcfa2ac5210f5c90f111b003f4032d670e140fb89bbe344f8adc4a3439cdfe94ffaf3d148777a01c338cd874704904d2dafdc8c08e31bd9942d69bb05864e35116f51f4553f3890bd828b7163acdceb4d3acd65c869bfa6e97e5c8cff5fdcfe39e27eb17a1768c425fbdb68f4379eb1d30c16f0d1f1438c44f9455f345fb384d58ff2e5cb7bca39a475ca0abea704a15f60f602047262efd47819f9466491d2c482b682958a2d178d5fda4223637ccf86689e0c38f59fce2ff0cdf34f0c96158ce028c96adc6a5d3b2b17a5bbca9b8c096602040d6caf150802543b402192132915f1d505265e991b54a6bbc83f8d339528d4f40a4d952e8239bcca8e256eafcde4ff6078f2458d623e20ae064ecc3930415bc9628b56c1fdf2ca1dc2f6586afb0230aded6f97a9e254e606f4423e19f40826cba7e58fcf2f9f8c0ed75114a52df5c56de571e9b4a97ccaef9719c9c2f52b215091d0298bc005b49314c81d5325bfc7347b65ab9919f5633120570285cc7d8fe3e0285ff056d1739a5c167d65202322dd28501c7140517202689b164aa79ca5569cb69291d60509ffdaf8afc99660a6a027b7657e47b2ef245d383ba742fcde5926001712a17ccede2958451bc2e970fd46436c68deffc329b7616dfd2002f5b097d9ce4b15ff2091db0bb032f589815dc07916d7af9c5ea26659b4b4d6c8ef87304d247ddf4f2840c7bf11247651c4082a3875262759127a6672e244fbf010beefa933209a329fa19670cfadf51046967f27771ef1e2df290caf435225ca73de1c5f3957cfed35d1311772113366f7e2e88f0cbffe5a72a1e0cab14b503f7aa2a36bbd41ef8bf85cd942b178d1d3fdc99504b6c9d88687170b2b548e7374f54538b22a47a24914b13a7504777626e0b319ca0a73fe6aaad850d33e8164e32a00e53138cad4ed09960c8dcad735221e3da274eb6d5ef51419218124f085705b88df55114933a942e576797e4ec6f6efa51d60819c16d5b72e5bd4e484f5963256e413d8b98bfb011050f72f9f83fe062a2703fbbffcba7e267133951a3b15c161259733187c504914dab1fc546671ca3319388182ffa3244d333db0c66d04c0ab59eba3e1058f205147f53132f5d15469eaa3c391ac50dec0676cf8067189eff4098a8962269b38a9fa219bfbcaa9fad014909becab8112e4d393f47d032d7be081e096f5f7974e0ff02110b79e40d3a90b01cdb8fbe060cd830bfa9766f72fdd8502788ae88d767c22197616c9e99faea68564432e78b7225883382d1e12f983884ba5b4d05e3c7c6a4c10eb13925557b899a049d4268ad05c3bca81b3c5ec820f591580040851b703c877b9004a5258b9cd490435d74a55953e53c45743e67a8612d9744875d5095bac6ebef1dee9bbc45a743d702922c2fb17a7ad951e27814e637ac58d4cfcbb5bac7d6622862f094ee559eac38018eefe3167dcca2bdff4f7d3aa4b96c28587b397b20fcd18b1561924f73144e07de8b3c039e2f9a1e0453a8fca5af959ac87f6bfd2923ff30e947b495a80240d913d33fa53d52bb7efcfb5feb91c41fd48b6b1ff7a5fd5574fa67d18c3270926f756ad5a235fef9f48984ce46be9c17e681108d7077971cca777de210034ce2da506714a79359651c8e9bec12377ecf46dac1f6bb09e6159d02a7fe3f346d1923936662511fb0cefe4f4c79a4fc588de462853202e5350c1cfde1fe671a6f6ddea83be785f65976a3d7c417a63097d76e486872aa7705381406056100a066c9b4b67ec875850ed43f864f3cc1e5d1490836d7dbb9015d40def0d244573109e0caf6acd14c8231b572aae6ea0544f74503dbe02af7edb6bc63b85a8c91a44b2e374fe6a2483f8c8459ad02847f6a234a488f00ddbf006b076281fbd0d2b81ae395131c28af085715c894c742b5b25675df561560f131b75a10eac6548868bd625806e16c2178b0374911eeb370cb9f15235db9adb05a905d55a7185bd780af4d13d2ee0f12c830090cf8db31fc6eb7ed6d6cb15c633646f575613eebc5b674c39937cd0fb01db6e9ce9725ce9d1a9e31f8260f39d1a4a322c4454d034dc9a2659ec57a9f5be28eee17a466243e03de33f5f71ae0c6116fc95e9117f648035fdbe6ca94fce4430444530385b436562b34e102d7a257c85f6b3a187cdfae2679770f7ebb6f63d05fbd7c74dd2e2254fded371fb5dc3e0c1ee0b7eff990c229711abf346032ca6d10ffe4af011c1345aa30786fbe36534c5097f3535480aa3c8bad37a51e83abb698303c6bca250979b7b0f5cbbe4bd8fc15ae68dd2f7b1c0932d6c9218a94ac4c03a766eda3f6c1e5c1e542136c859e092301bc45ec8bcc338d0b829f5f83f8cc4c0e7d0a73d32aa7e4fb07d35048a9d357abb3a97f1d0870f4fefc2827aa1de8e98522ff82204d1d404dbcf7f9b333733b696291d013c80ce03cbb9be23dad96659bea4311399aefabf65b822700dedf8a21d76def42c01a9cee4b299159c263a9a5c151d7aa39e370186861efca55957487600e465b7ab84a0f0bf5d70ba70cd83300ccab1883dbc334fba09b94bf2837266f691d996822e5e42dbb5b41b63afab4a652ced7d5ea7e6b33aa161790bcd9fe21c4a392a9f34d308b5326bd69ca8206bb8da9b4eb494265f7e4b822c94240882f1ba3283d13c9da68402ff8995614d1ab3b5ca0a83f0904b69d38cbd0bdca08ea2a668cdf2e2ff8cac437785f4b532840e30cb329b2d211584fe1d4fd5247f0ebab84aedd0b358c4003f04411abe79898868f78e04855254833cda8e6143aebe298cc01acda9c6f0be861ad835e7775154b983160987256dd34c7a27626d5dec523d4d90bc8d722752a67edd40699598f9277e4cf1022a38b0acef3a7b19fd9cc67b45b0ac03072d140f83efacce937c4d0b8a66a064f6a54ffa6af5bba8ae520b1cf3d793b75040d7eb5257692ead49f37b643afa236069472112ed40d0b25246c7216dcefcb84327bd54cd9a2513aa96649ecd9faaab70f8d645212e6cde7514df1a83e7ac8cf6e694a65db10819223099f7bab7e6f3563c13f5b414f13b1121040b34d3cdc09869705aba32a8e484b61c97885a558be2adf9ed8dd787ac66b93ba69728dd2a03076427b6e9a0fa2270649071425204640789f9cdd81b0bbc6e66fa2221b0beed8d62adb4ee6051214decd92342f373b684e6c34a55e16c15e188667dc62e389399d285abd6633f85ac412e47cadc0f099f92335203d93a049153e00516cd107cf784de505029730ca3f75928f4c14030e80ed2448e57f400fe4b5a7f943135f45e988236c0baa75b0cbdb88ca01ba3056a9b399dba913e530ddf64bbeccf6e0bca397174287b0e847163ae61fa070bd9cdcc616b3a20b72d2798d01968dc8512478bd20e362973aeee254f8215c61f41e15fbf82c516cc818aaa6a6a5556fd70bb0cda8cfa4f990146e4733c4bd2a0f2a75899e9818d286b9860756b05cea4897dc30cc8406b320cae389e1808851b9538d767fc271419c5b7555645c5a919486d6aae7194e944046f7a45c00586a1c66cfb5084b61d08eca8892cc6a0da135fb1bb10de9a8f59db6e2b2f179ece396d55ba070640eda5ecd6657e70b39f7fc6d4d82e2729684912d9986bf850f145f55a7f0cc83f8f185b5adcdb886afab9a594a0ea9d285bedd024b4b05e09c7f2a0bb6f428b3b911e1caaa12ffda407f844dd3c43df15cbb0d632f7fe5257d80e41249d333a8043717cc21cee7fb6fd9e770c1188928d9783e43bdf894373ddb134bfb4de08aea4eec2ce06b74b48a3aff7a48dd5085276df3a1b8415abf4eec5d122ca6166abc8eb5d8286344c348894ab251891ba1809e3679492698cf3fd70dc3741c231d9b1196f9b5b740f0a032f707a85e55983d336475d4a0522b14d5d985b386850aad72f16abac04f667904050fb8a58090e1c58982ded80c34be516ba519c333b184303a5e7a513b75a3507c5ea7e26559a847f38a6c1da92a87d3d01ae0eaf21572be01d5b962ec6bd7be698d868ffe0234f1540c94839880e56742065aa7edd5ddd901317280b7fa1b14f1ab6b111c7651b44f81604e4e0af57ea5556ca0f90e43a8751f83a47082f1f65ab2e4a7d0b24e8ed6eb08c422d9b26b370a5f8c0a8e2e805d430b38e5a65d393502d5011e2ab066ef4a10a9a7fea8f1a2b9739c09f237a0c07efc2ed0481490b9ec5cbfb5fad8075c653e975f603731a8c85857213da5c2f7bc8555eaca70e514610214c15968a3ac022f74f6688fcad769d6a7512b9e901768fb252bcaf24050ee40f0ad736b9fcb2ba1f9b52ecf3702cdf3e1a2430827247816149f6f8b8e154b4e776acba261d4c82c78dde4aec03f27194f0f399de0ba5659d3e7054d478be7143d4495c6e1db83c3ba74f7b27044c2be5a114ce476ff7f40a0205df123e31e3e68e8366f0b2642471ac9255635ced366947adb5930c106db4c039ac37e4882461bbf611ba2ee2ad8a0d6f086156ef975ecf16a553ea8463b9163b760589177bca76ae271f2c19a91cf34ae32f82fdbc1ed013a74e5343252b8b84cc782e6c1502ceb9ae50cf2aaa816fa3b150acdb1ca857cfe83b7cb18ca0dfc0e0f910a0c076bd9faece57db1d85106f54ecc0045bcf683b8a2336b09335a3d0d08d83ea84f6a908158ab7747074c0dc0419b99bea234b0a58cdc29140f0a7cedb06f67e3ffde13d5276b0372c1e3d9e2a9c1c02449074397aa6bfb2cd65261809c9ed9fd0b549e9c31b50243d32caadf63bda8ffbfa20526770e477dfefaee34abf7eb86de21238403cb59c9b7953160003ff8ba4fffc868985300152fcdcc4e633387ea9fab13319b46896131e4f0b86f4b30d2a3f9de2ea8f4828ae7ca2f46c8374befea11eb1244eff44a2f2c210b3cd51e7753437066f19b3e98eb28d6804b6318828261ded5268d373ed569122b0487766c16fd16cbc12ebe6dc84ef9e1fe647a8aa6c6886d1cbfe47e06e84796d2a074a122f7ad171d4670a01ab9cd6553eb28a935894ba01152eaa59e5c1b27bbe82f8d3bf6d554342d6b5c9471401e285756d1649b688937c675d1b199fb9ae0d8f45366d06f51386b9e28d4c6b888c70c636c4003bb5fbb14e3eb9d49ab3bbd553d922acf767ad5d2e1de6372d461a25f04f0bac3a1206fc1b5807502406a350fab1a98fb21cb85c01b5e926617277c1aeaf15ca07ae5d488fc15088ddeacced62237cc700912fd8d59d86381725f3bd429336c4b4c0c4425b22c8c78d2bf0c45c8b882a4b58820981e14cd559bed70df3432e3f2239e281cfeec293ccaa549daaaffe4b3f292cdf58a16ea392dc733df534ed5d10e0bb1301000ebdc57c03550a8aa137feedb368478392b88f12ad3a649c883249fe61712002c86143876c34dd4ef6bb51325be9177d3d2012ffed28a0442b9491d0cd11d230dcccc4c4d27bc1360c2d48fb6b6b3d56a784871078e3e48c6c5f897bc741335b7348ea5dcaa50e76621eb626fbb4e8f91f79c7d9e24c7c534cd8f762cbe720432ea78089dd327f9c6ec0c2203e03dc72797d28761cc18bc355d8a40fe0228a63b6ff7271b84f2ff5d7e20d41a2b09ad511bc229988353621411178027abd12b274c1f3e7de35f1865dfe497af9397a850f7b29a1dd2a6504b7d8cff921661ae8a67b199cb48ab2d806cca427ba1383e74d14740dbdf1682d5be2c699cb6e96c59e194ac70a88d9d44a55bd94f0f5feedd955ed07ea7039edf4f6ea73ac63728e29bc2382ab04cd4122282069fa632b8c5e83c930ef1d7c5731a75630a3ebaf4e9f804d5c9444c749ae9e703898fc2eb8044b7a5b03136fd586de96d050a512d3c0b37034b3332f905b5edbca42956da49fa8ad4a8c30048f33cdb2dad5103f370b6840e446cdf15266cb1c105af4ecb54386b1acac1d624e606a09fbf5088fc4ce6bcc36644d4aee10b5ca0f77b0681bd2019b987375c0e59ef264407b21c19cc6321040d75590ff2d715d8dc606a34154d2be7c78aae28e53440c7b3826bf2a8a3147c77d728b3981334649176940a2d59897f653a3874f555f0b0e3d2dd5de858ed4e8772c04d3a23c052a7ea370a524cde6be8bced56a90db4e2bd5844b7832ec21e0e929e5552968a2eb83852858480b1cae2a2736a2f2da8a3cb0c2f915399a64e2410f0681ff857d17765d0b81c4aa20d82f3c57d182435b62c0eeb2dbc6b6e19dda7d5f0bf08ba651133de2d8748bf6fdc7cf47d6235c18d360c78e80678358028d2ddc82b018797324c46949e00d94f7b60c8e5a464feed26457f49134a2ff0d291fbe23a13368a8bce3bd120966228d73b38dc54898db01a688a09e8b87a8886368c77e8976dbc7459c0c8fd3d031dde65a993248e5a1194348967e1958f32b7e6fa8e91c177477b6c02251dfb7f87fb28856de7c04e2c48c340d93c0777e30d36382a521ef851ab069da781b512fa835ef1fa5e7f56538dc2014d86c87f3ab46fdd93803d91698a8440f239de32da7f64caca26da6a69eac011eef7fbc793a029b4e2f3b7825b8a502069c837f17779625a1dd7f939afe01758e493bca366a500acd6914934b79a7a517155b8db751ef935a6a55f05567981f6ace5136777708e897b64faf38c3a7d7cac9a9dea0a7439ff3d57f0b66d519462ca38dd7312d791fc62e5fd6ad7b7c4a302275e1a589523fcba5e1e59ff5153e7627d619a175549c3bd99425380352e8057a9fd03d8011ab4a7824c52be9571a5528e1a494f7e7e4cdae4ea59ae8200c4c5a400453849ac4c2f1538d02f9f1cb5c634842b6c187173170b9d4efd8e161353962ec7c5f422fbccdab95e406fef513fdb165246e9ac758305a8fadc26f501ba94416c110dd1ec320c46c1508115e1f44e42fb6c4768e53774d9a2f72a48ab356d08c8f722a49705856adfc42c85c60dcaf5e1a974a5ea73e84892358b081764b6f4599e364c1cb9cd133e921309131d2e85191bf69b8f6796de4428bb5fe840f0c9d864971c847a74e708f88fd1210bb6aca5a4993d3236e96d734d7f5b77b600e5c8881bd1d53614c1cd8181f3b76e34368f89d0bf3354e1b71a3d5164fb4166c6b2dd83fbcef454d52c8cf075511be72130155285d8e808bd9af37a946d0ecd287035f826e1760e7d60530b70ce9cdcad3833c9e479df112b937308f951bb0889af8cde30f0a36cfc5f874efaf98f845b21bf4cc8345fade2cccec715524cdb8f56064cc5641301335775eac15b9b5beea3a923534a890d4059d88be89978bb53fee7261dfbeae7f91e0d21d180e077e13c7676116739224002e3b780255e439395f75ade6338cd1e6522a2a6554e85ccf14539721a2fd59c1ce4426d837a0d6221482bfbdb93eb7f41a93dd43aca76f7bc0ad760e596027c3255438cf822d5bc50f228a5c01e4edbc345d298d54515d1730bfb22d91dd967a67b5280a493a06b48ac66c9048dd87ca66b9fa1fdb68d145d1874d46b5a06f1fc227ad9ffde5778c26269369efdf4081b2300131918e2bf01b3b92629dfe14511f575a0632502e47b9f2860b7e2db4c45133d360958b818455fabfbaa9a58b3775061ed020dc301b56b9c1434df0c2c6d9d07f0a62d87bf6d2e03ee8eb48c766183719b42919cd6fa476993f8053d80684f5a5050ed6359928c3e07bf4672838071822b0a7b5e088449183d3991f22b0b40af3323f44a8b056ef12102f5b8ce05409bde8860898385f137f7f1db91ad2b17d02802102d0bc0c7a1ee00c1100052215c82c7bd760db3d59f20d115eaf3e53da62d5669def1122d03aa59dfae43602ab20ab9ad18703dafc2d88406b2963dbe30d16599a8795942d06319ff47971db1b6d7a05adb5bc29f61ef688abc320eaca7b9c3da3057675468c47e200fa0e9ff6515be4d97fa9e17af6df757b7a904dc51a30a07aca05c009c2c2d9c0ab283b1796b7f4b209309b20d0e73190b151b7b691770670f5715c721032fd5b76a94ef17c965d280a404ff7778948ac4e30217442ab6e94a64517b02fcdb8477b010c6c1b8383aed4de15f5887d81a7b04884dc22f7cbcce63b1fe8a41b1db722fe9242bf9368246dffd3ebd1c4c1844039eaa92ee3b6b6f8ff547fab02e841106573251604ad6629bcf57717fe57270e21305a16d50fb2b12e35d57a98f38ea2f714746cd8af49eeb1b54109c754f8b5d66ef04559f1819e073f6f982f7c85f15d997b6b56d482b32e2b1ac878bf139637dbf870b51340c5b2fe273dbe5e802fa1c3a78038206656417285fcd25050519ec661f8ed8efd2b45a8eec4bff2e544269595ccab7602648eb9b86cb95a3d9c0978edb73a56d997e224f55e1b6b163045f0cca612f147652987de0c3228702ef2902d867bd89f0278a39b771fd0ee9474ebf0fc8eaa5961ace88eae1350519f1dcdea9df2de3a5f304c3db3a0311011ca101b0877da1bcb78c2a5c3c1299702da7eb24cb0728670c4356f452aed910abb60b72a3de5b621749a7ecdc9addaabd83494be59fbd9b9e9ce504669208195eba8d38d2f2f617554580e083db5391ce0fbd253474d7c3a62a9ea2848eae89e245bcedc06d1ccedcc33c72f684b24b9d2b1f3d2f7ab7aa93bb36924bb5c22240c43e16ebae74e75582eca2d0c6b7645d606f7a203fe3edab476791ab27b344fdf854103dd07df8a737ea7e7643b9cd62092c9fc4339823279a96f6edd6b3985666220e88f8faaa5154914be31b27091d9f19bd73da25e497124b401b098ced3f8ee6c38405d3a356a16d10abd9ca31756037e244cb75a5b972e072534c0e4784eb5693d9c3a579e030be63b2eba47b3ab14051aff6fd647120501a36f23b53bba1b9357f5234f9457854e193046df2ea9893294ed18c2d74534088f4915601f00a305f74a462649baa2266c3e4f1e3d683177e5289c1a1f923c1151b8f5b97dff9ddab922db7001049c8d0c2ceb6e02779fffc36cbc132cbfbcac22d4ffbfb085b04afe2b604043ae159b52ed3bb044d3c64a51891af042c2443f71d297fadbbe1c4908b3b2282eee7e16463677aa3c67886faa7049e2199bfd3712560b02af91560a32c67effa8e8a95a5066200358d73dfb7a91e079e9197135059114bb37d011689d7b8ce14f074576316f575cca66a36e22e737681e704e8939fdb97b9b6122db12da6919b67d9579f0c14249f243ec8a6fe117add2dc9109f98ca95336b4eb0c88d2cc7341b06a7bfc48646d7de42cbdff4d8f7a87fd9cd6e58b5daa1bdf20eec699204f5d285095129ce7479abf61465cb2e2d3320795434d499464281f3aec62bb1aa5e9500835129fe47e61b9ee8d577faa8bfa48a0b7b91151c3dde32987f7ad9a1b62ed8ad4cfc3c459d310b604fddce0e1c3d3aee5cdc79a2274ec2564aa3740f3fdac10be4e7abd9716b7cb22753d251b959ffa878738888777d17a7326c592b9277dd73ebd5b6fde55c7d5e69adf0f89c6f1058b08769643da7eb313d7476e3ac33f99d933e1f91808ae1b210c86b7aa595739908ff99fff533c831aaff99bfc9a05deca478f9489d2ae49ff9b405f5143dce7d6a9e2784f9b6c8b7278c77b6b93e75437691dbc9faa8f8cd73938936fcc55217d7947a40a3c64b2608a886761f9106ff67e444a14301b8afd48df5dc57c96f058e85072d02b1ca260fd5491d51657959cadb731d2e8cce33814f0628682ffae681d7976d817aba263c948da0164ca5fd746977f99c98a4bde7681a0662983fb68cd9b7202b8c0939caed6e8e7e21d0406f82556ea55c2cebd0425ed554c9fb00d52cd5d1c890de6f98ffc3a637fd2224ffa54fb8e0037b02c41e1e4c62f20d16b704074c936714883787281bdc44010644c860c78bbfa01cb159c6376bdf390b6163cf24be5e075b33bf6159072fa080795eaf38a241ea72dc20715f55ebb3a10fecdc69cb5bbc55c45c16b321770438ad869f27a8c97253774da228dc151d1d17402bba11be05322b6748c7975bc8bdb190568c9312ca321f45630a31fc3b6d7def11b3ad94554089a2680b8d500d631469f91d2695a4808d94454fa58fdf91b5201d210b73a8f00ded49dc5d9f2d1b093d419a0d19db6c67ee1cd733f2d0aa0a1bb7037d3addc668bde42463a92e798dbe0cf502f3b13df3bd5264237bf0120476796091641d228f8308faf399ba0818d99523ebc14f039f58f6c469abb41d64490ddb0b359f2c614d7dbe096b1bfef40b03f43ae213a31f1d61a72c40dc381ec9083892f43a43b5c3b72146c8258339b6f5717afab288f4a0de5b11cf21262fc6b39402fcaa390047b1e6e15919fa1a23cf4c75bf1eed694074ad4c6b1f35a08f0bbc518f3ab1c3b0fa99a8179949af220915844ca17f4f774581423c0519a4f48041fa40387817c033910ebc5a0c679bb080187d17d13b05cc44cc85d5d5d87b024d025d59f18436a36695bfe62d706751853c055a857b728c73cc835050827e217aa15cc3988b17624ed1211ba1f3e519d0dd0a1e57b504d870d8fa219bd36e240aaf321d65044885bec956f5bc3e3f931ecadc6bc6e49b7b4bd98ace189d67a9fdb0d288513e225eabafa47337a37b8888f4f6c74a9ed45ced0bf9fec7e74d254b540046a997730973aceb40bcfbd777afc515f4a5ce42aa0429e60e1de9b3fe46af1d1e719744c65e91311498f2572adb4a238e6bddd4f13600797f267a51812121f1f388388200e298d079885bc75206ab1fcad7d9d6e670fbef913f4fa6038a96e42531b8966a18f763bc031516df8583279d1a4431e84dcfe095886893fb5b9bce40ef9c3c11d0c405052f9e49e23e8036512d9d6efc62acf20b4b955c54896369238905574f66c9e037e64479d5eaa6e2a8908e47002bab065014a0f5933ee2cad9b8b5c347aa5e72873cb7309a1e7e4489d3fd4a1b78dee6cab3af9b2e9045b9fe96000f364c9caa0267eac2e68ea832b150a995180345cadf03eb40904169aafd97e21905b54855470d403bc9f4af965ce804336ae27c0e7755234358b6654022cd10a60b810e110b1f6c59ba370ab306a50acfb4611281002a400d5705b1805f2dd3bc0df41be6f6f266e44c2ba689bc025398b6cdd8221b4307d0c7f934d63866953c4af539b7ee482f3d5743bef735d875bd1c6e0bd8fc2689a2c00b890bebe8010cf63432ef0f4f7603486ecb5c044803659407558f09119c026bc4feca81e147770d297711f63482b62858d113b6e897adc25bfba74c6351ae3fce48bef9f2df07bfa23c411a0f2197f3056f1f7fcc98526218b603d88b5e4e59e5578da8f8614a35c0d74882b0786baa3b245499e63c60a5b6e4759296f473339421a0a4f6038b29bd50b65f438e6f3682a3a49b5146a89a461de1738904676f1e5a466f380f1a1c649b2227a585469465d4a07b2689cf43faad9b0c65669f343f96e9386b35cd2e00b770ac17544f0f14e6e365a2a53744f1294b69807fad4249869141b53772eb9a667cf4627bfeb3e73afc8ce85b33d0e3e5a7ef0b861c454f5f883a03f0705c42ef7d924c76f7ae5c4f6edbb33c837807b1a7fa29dab2929fdd94409707de631cb364fd644e975418f3e6e0ace7fc9066d88b15fedb172442f80bb90b331ce22b046980878f2498ab5c056afc50ec44887335ede6c0725fb2575fdfee30104351c81a6e46a2df314f480193f0fd75398d76b9e0c3f36da54073e645ae188ef910eb78ce584712c6de4036ae8698201a694aea345abf5b49558e283257daa3d21a92017e26b67f6d7f918a363c6ab976360f6e809c052b6c5bc09425fee5f2e49d76596d05c7648663e66286f9588522578ae09555bf4169d701509e88157318f0c2f4924d2dce25ee941f17670cd2820700955df444a9f08a38878cb181e3af94797ae30a163235186712a659a54bec18fbcd64fca6fa7fcd065a2f677260fc601c8b547f3962dc41e05e2865a8a0d5bffc6fbd32bd200303dda81e9f60412b875bcdfc79f2e38d4832263a207a411e122d188af00a13c7b258976a0d14ade26260df4e68ed71dbebd13a177a463d4c0856096938c72989691569e4274e4702362117568b0887a195b5d40e3068baf34720f3ccc9ad21ad62bed2b5c8cd5b3b605bfa28bc82ed6662a027abfed232de8f6abfcae5061333e6292753f7136504490258fc094fcc8a2416487c5aea3f87dd3f09b34ff670efd5d8ad088787998640294ac56cff9026e067608e1eafbe212984176148be4ee70eb9b879b8307be8a11b207672382cbe6fccf53ebf144d618971e126c4260ddb82f918570e91947883292356d67fa6ad7d23306bd93be027a1cfd7006282f24b26fc89d2b8f681cdc7fe2f469240985d5e9b58f5d245b16e107efaefdad03ba257e986b44b58dcf2cb2f03edcc1887025578b65616124504bd774f23e9bed47a911786cde065f996de261f1ad9dcdcc6cef1edf5f8275e3c4baf8a6c55cc4bc8705700fce3b25ccabf0b736547ea5818ecfb612b6b71f83c8c1fceec547c50d929e63d8006d16d4d5c9a2501cc5b6b19ae55ac711d7ffe45e7fd609b3306538dd320f2af90566a32c617d81418ed06db6b89b4c14cdb285fc8be03aef6be5ae374401632287c9e04cfbdcac72b9dbcdaa8c81e1efef4f35ca80728ef156b824809263c5c15f89090c8f826938ef20a0b871b0faf652a3fb0901eac4aac03a8cb6f741f446e1ea3e6e62c76a396433123700f6747873d276399815bc0c76558a58e8baf40cfbbfc3c7ede333e8635ae50ceb94a7e87af5415e03b7f840da8b79181db09537a8f66cad8692265c3e56ab15588dd63f735df89046ca4f8e60e1396b2644299d85e7a48910e18056784c7a53ae036ae121692a453e1895972a7f8556263365347366be403dad36ebb6070dd3f89a31416f180c5d042d18f0a120a9ca0578fcfe3b9171d4a085622871d2cb6d00dd39dc7d3cdc403f5c9f42dcfd220e98248564ad6484c4e7e0bdef876a0e26d6a103fcc1648106c48b412cb131edf8c02840d3297bcecc88486ca89267c5387230a1491e1573331213aae47864d5df5082926795c93c913d18a388a572c7456e5ca449be8a300f82606692c5499160300cfd008afdf19e14d8b312db324584361f942b9a26ee52160deb13928bd6af0af618ddcd8559117569647c7eaddf91e8842f19bba4dfee15fa8ce701d4e37b72014950479ff3ec1be4b9e61e170e5d06252cf3d0994d11ac8a4eadcaafd1cb34f30c3216dc9db021f023d1d600bd9e65f574f0ad6ca2c5ac8e8f3ffdfc83cf7d9ccf31bed9e78db191368246ae81960904ebc0b6e31f87936ae7d769c11ac420d6372e7d1c3b7084de3f142689d6905a3329841daae1598f99c353cfba342e72e322578e497d0ff7a49a01f34a192005be1d95ad06fe60a184caa03ba0d5ad626556d8c222d340ca0aa30072b71cbcaf833b7812d071f6f1e79f7de0ef35d7dcc38b1f6d5bb583c1f13c46713d18898374eb37d0bb918e7ffec9279ffae4157f6e1dc24ebee51aa7d1344acdf5dce37218600dbb86ebdc84538c4bf1b728795d9d5fce8ff39b0ef33f82af961eded04ab8bc0890f11c5a80327fb007652666a165358fc7d5a1a0ac14139bc88426766a4812273598f75b1d8ff91976bf14068301c3413ff78f1d99086a336335350a88fd274c0c883caacd400c5d4007340d8d064cec5b193bdca9467824b6a02d857abb1e56e60db7e0eba5c5706afe5b8b2c8a527310620a12bcc0ad0bb4ead3db2037966c022c963a30d49e571fb0a72efbd7f6533b86a520acd50a1fca682dfb83adfb9b445eadbca0741a25908872d7b3aaca780d35a37fc36b8456a03724a161e15e742223e8054a8e7aa43ede298c4187b6418285574915503d92c1f04aa7226e0312577840e3d4bca46922d20c0278ac690fb841d86701c4a394b52ef125f7956917e5e2504030823dd6161f37f314bd19aef6bae5994658b3dccfbe149af5b4305a7521b4925c2b47464c73d14e8bf7a28a9ef1220e5322fb1df1a901ec7afa12e1a693d0fcb4c82bd07c99b5041b0e8b3788c8e4391b3b03e7d365c55c312231b1948ce51063703c5fd861009269240122499b97f4c67c58aec58a245ec06d8ecbe8c1b7e94474de25ee9d406ead9ba33427adf1eb473a4aaea5ae92362d15a96794d8812091871bebce1d4cb4c6dc1c41436e8501eb5b9411f74525f24df3543d89baed0f78ba258d7e952936196c463e77a5626357024322c5074bf59ee1494ba4cc6fceea7267625752ebb3cf5de2f23a72f1526b9a69977bff1562dac1686b84882598226ae933f6384d75a0f0f8dcd49bb67862372802cf59251af69f3230f6ebfa662e4bdeeb45a6802550aee040cb008e4bd02f8069bac1914633c762db6eacbd6c4fe58527e1b25fa3b1c68437807d665aa489701c0cda0d0a172c4f7ec94f783e8b45584937fdac5942058aa742954352287bfbb1337e179349662c8966cdb6362eb60e1d8f9fe4e3ce6bbe064987407265b3556d175ce8d83ce982060627987f237890033e1ff4f3775e2c3d2f70754d1ee5da1d2a517f8fda086e985c97573b5247e255bc3867aceb0cca13743a8ab40bb5c1fb0b58c7a73d35dc55e630b19c909755b9a01f54db5f1765eacd795e9bd6412dc076566931cc960986b53dd8c1c7b0049189b906dffccae3712657185fa4235f1d44415cab0546468bc6249fb92e4fc91fab4670abae04a29ca8512622d03f08f51ed3593264ad3032bd2343118a19a2833fedb21824bc61d6734f8029c9946402f55170e92faa4b101bb9a265706ec770732953ef69ce5199fc969a2f9b69c9ce7a078b882fd065e2aae1f523b53da2822bd3e56a9208d1efa09ef473726c6ef2d3e8d807dd58e8a993d929fe7366961607e797670124303f0a4b6a0c5f7bcf5a601b3bade5a8b2558875635ca8043c318c1aec942df6097cbc5606ae1acbca7305ec15e154d8c8fd197c9e68ae704206f6a62466c299c81de0300b5ee7145822a60e276bba7e06b8e5747bafd5cb4c55ce3a49610b6fc030d30bc9e86ea00e9196d7d4ea8484021f93a04fe81029c058068a7a46a6f718e981f69d262de046f5abb89a6e706bf5b6bf0501399e67cffdf8df1a2a08416e0bb6f039e0c9d41642123937ef6df1dbade942da372c95da93c5b8de6c6352ad43f2d4c6e06cc7d419d7746b83d8ed93a14a504c480017834a7335e305fd2b81d836a517d5cf6f8585ea53dc7e80447f8a1747fd0e0a5c35bb173af4db8f12c6400b3dbb10740f74ae6e79a92410fe9bf19f42b3960a7adf4c7a4e892fa6f159135faa68bdedf3c0801fe3e873146c9c5c26cbde44dc654a24b2754b3aed05d1e7cd61063e66fcb7c5074ac45148620c7a1b5321af90ea9505dd64e0777a034b9bd61b37eee7e4da16ad0873a4aa696f3418c5c12c8ce07f9a3e1c5b23a790749fc47f2ffec868b0d5525e92142d499668498f980aaed6c3d57c72013143e3fd1c045f7dd3957c05e78bf47c2fa7a125ff212e17e672223557d82d2e1cf6ec2d28b994a6a3dee93c99a2caa02e041eb7c71ce7c19b7529ad2337d7b9591fec88179da4ae019269d255b4b8e5aba6e905222348b9c2c38f3cadf5485ade18d5b5d7fbf446bed6f4eff00940a249939f56827dfb087d8cd229881c6ab1c225829c40bb7fbc4f3ecb450a286eee12e7772b435426f06021c077b2778e0610a99ec8019c5fa0fbd696194294bec1b5e3c211063b079f0e0b4a1ba336c1ddb32000b35f0a280827a4fe60dce48c50b454044d46a5ee93d91fd273ea3810890144f31b839d1811097ab6763b62fe35cd6c8d614d7e6410feac092bf5b6af376f794cc86f2b802b75262b445d2c117aca57855e2779eaa1a2a1c6d0bb9990ac144723e9e2be348a9d99026795b24694e8e7923b3ca2132c2ba0b4c54b301d3e29f0f32d52675ad0b0b8290d24c6c6308ed42a48b0beda5ccb744cdaea14f105b7bed9ef3ec8a9f143366ec5507492e4684b9a41fb8c40084c50e4eb7ef94e04a41c4923baceb27824ed952e45808a0af563639e7d98f8eed889a8bf4062638ed8b4452e713eeed69f55e7877c7f291af11c150e543d6d82987ca4fbacac5339985ccd61520e8a2d274f3964f5393c5fa94765e310441c5ae73ca45c2496b8ea283588025d3c8825b0b0fbc044c2615060101104ca278062fb9249662893411fca604acf7ee45ad934dcb7b543faa8804d1d73a3c9e039ac4307e8d89a2053a51a665ab01002ea8d7746f482a9c4a37e2070f533a0dbfbe086077792f9c3138ae87b84fb88ce41e3ae06b008c9844ba1ca126f77067e7e2b10b6a8205ec4677e3239ffd7f3e6068a4f2828035e8618a98d30b0b32cb60df0fe613fb77338276a35536a6ff9e6a24864caf59d83f1335d72c1746ad7e3c2486a41c57c6d2b984f355ad40b7bbf8dfb25df3d0a37a6653a8936aa0421c684f7bcc60f8184ac27a7d8e18bfc197ab259aa2bbb26c95c543a881454427a4a89f22e2c9cbf190eb3b50601fa104aa4eb6e3ca487e58f23e340628a232d5904d868889303d328571f2fde236f0cf1499303de26223fac6acea9d4cdf61d8c00374501f153727dc255548d53e8c8d264524f558181c4fb8f1653a8453957f510a09e6cfa11fdb144533e83811ee1ac3a23348b19085a3d87ea8536a958874cac6eb05318d0653a4fa026f25651708466f6d9ca55f8df915bcb256891b7e80efffd574ea9df1e53a1c4a7c6bd615963593f301d16bf9f5851f56a1761edbfb3aa1f7772cda88486b54c2f829bc3afd76f91c90739c3788298e475d15328d04ea25831b20799847e0d1a98b0cd07eade10e8187eef115bb4b5e8c6fd927009d6c00006f5761ef436670fda1285b8f92699e76503fb431c710c1b9f35ac9c807d621ba93b94070204d5e9a821ba3d1ce76b82f7dc6dd7524f12d69b74670a51980f677230c8b4a4f091f331c13da70b11e2fdb7179138a0077efa80221afa8940edcdd897cab32073efb44b19878980963c6862182ac1802622e01a0719acfed6f0dfadb8de4c4eb8b9a7d1cb345b83e0beb029e4c5b0ec5f240f2359909beba5aa22ce7fe7b4b74fff3cdb43b442424d084b64dc74458360f2b1207a1a475519046f3795d183d68395fbc9bbcf5cca2d5124677859f9f11bfed86fe76e4f6312ff5fd168912b7de54957835398f432ec8731aaeba39e0fc80f287b193e0f04176039ad103a82959805e5dc81c15804f2ac044e800731c6e714210b4b80266a287042c521e1d5c36aa5da03ae85db77e11bc3a273ee26af911959f5e0e420083051c8d1d31e2876b3efa3d23825e540321b5c0ea0d5c70d72b613602f060603863d25847e9534f5cac1900ad02888e8ec2470e31cb8792d3f844cb121988962b81eeac97ab0180ec365b8dc38e79ab4c02d86de0a6488e57f90897f690c556d241db2aa6650ad5dabae700f03bfa4a0d97cea49b71c879425ec4d33367c8abe27a5fcb4a8023d7ddd65f263f43c259210df5818eb24740e99a3f73243263029faf5f51e9e4468fc55c0c94e0ceb1867501b6179a76e316469b66c6fa949c553aac313457602df29ef0f53e3dca9e981df0e807212b80034b29703ed4ae2dc5e1ae17990466df1d3e2f527bd42f5061be5a9227bc2b352c61c34b451b56650def33800ba62aa67223b195cb2ee568ae2f823b6a4a5d37ee578a3743b92cf119e71d623703617b43826121207a2be5092a22239cb471e855d509e7f0203bdccbf6f919bd11faf889f522ba14c2ac0d93bbe23c9900e222576109e1866bef556b9d04046edfaa384529ec94f245c9311856a5eae928fd881c8d8032e06160a83519368441cfdb268c30ed75f6bc8a4c4aa4c1371e3fb99a1920028f82fb95b121902239dd215cd179ce054d8911158583effde22a04b7d666c8ac0af43d0a87eadc1e9b9a47060675220b2e9aeb7812314c294dc212f9726e90b8b58c262406251c30bfc41d03926c144a328c40712ae703081b9b5a246f470dec32bf50cd0f9818637c1358a94a2dee05389ae6b9c8bad5987b9f65a606f9e5a1cd8474b522db818d5c6e5e87b155935eb02e0052bd5fb02620a7ff447334e2fb79f3d4a9cceef10c50464062b0553155afbd044911079f709f085c2c53f801de6e66bdf9549dba031a21ebe0b3bc7a720748b590866000502f00c6360b02116848ac09d7fa3d6402cb6425708a4b2da2467b5478620dab10e3be8622c3e90f0d2d4609c3c1c10e57f7e2b5e237e04b2ead9a2f542e3d9e4e30c576d2e399133025c59826fc4b2a08b07821552cda0dd6de3793e9232be151f8e1ea7ce30d6020b31b24af52ada286bddd0e26e223071601081721a633ad0031edcded86864cdb62f4191d5135d5865a17ee1203c428615339e2f5dc4f68101b183128824880e1302f9f014096118880685b88ac83629e806cc6ee4f2651b7b9efee8964ca042ca87cc8e52c5006c7be370380905ca21806882fa5c2696fc4a267d740d8d2acc3401c3936809a606227946a4f4180dda56e3743acfa55b2d610f87aaa1a6e48fc445d728ac2be833e10152c98aaf348bb72317ba816a789abecda5e09470a45756323d28573fbb4d3404db9340163e797a89bdd9d0ffc6fb63f9ce08c2d5efa9f4e01e0fcf5a01d2073a19849cf6d887c09cfed632883045b568b5949d963b6a7a73326a3ebaec671783b6b456b40554fa4677c62fb4033b4a38dcb4c20bf115715fb7331b3b7c77f336707a3d67ad4bd1838b5e1146fdfa04998ae342df65369f0060834ce17b7dc677cc25c7fcc6ca3cd103b2293b8cf1b544a76e19e629c661be76640b2976f7ace2e20f2a62d3883dcb1e62194fa01620ae2066e959390f2a8ebf05932c34dd3933fb1fffd27c5375b9c4107365f54854468e2684be0c3427fc7883853a59a86a535bbda4b0bf71553abeacd4acb6113eda879784c433fb0c8c8517bdbb4ff4565c3cb941589abc48bdc7b277a5eaeb1b08dee56f1d471941f6d56b2dedd6e0d25540430dffd8230b94e4b92da925c7d5771d7e2dc970a1d0c6b98c0cb7a55b161b1c8c55a72937841f8530ce2d99fac72c71a5b77dc3dc78ded88097ba31fc7289585ac9c27beb89917aed8df78d93373d333ae16c53f70de06f128d05cd395f1ddf008d374155308785d54c27204057c768e86a892ee791fbbe62206d391ddb206ecbd37e0e7bcda1cfa4b233d556f6a691223b66124377489a72afe42fca9de633d988fdb56cf47507109a7b26e65147136cce55040583c48817f65174cbc5d81bb94f15eeb85cb26914582f38f5f81e28fcb557fdab5c0fe67fd085050ec3e392d84663073542b8961f426adcad52217ce116657f4f45e4f22e83b2e54120b11e7c927c47145edec79fa1c6dfac44c5e2bb80f0ea1514d6b51916a3e13e9f5bc878c69340a276cfc29067778e3660f4a6ca1311d8b3f2bd263a28ea3800d61b9ece6c68279eb0c1726869f3c69183d4b2a8ade3441f15afaf1c44fe18fdadb00a4195a23162f370f6c6133ce0e2ea23bd3e42a6bbce6247f00a9b451f1d09049c06c4f92333e68b6368f98603a0264f495a5f7644a0c2a8b1f348c36d4085493bde2885695c69d4965aac44798e14c7d90ca7dc1b25fe31289c92c82838a1201d783ac01ec70737b405e3fdeeaaa68281d326c1cb64c62545140219302c3f4a65e5dda6941978400e52aa1abc4d551bc680c758aa22696ab77a8f8a5e4c37162c5e2d1a6c0e3bda3de38af77344852b8b9a50b1dd39b33c1961a5f85be4d1e192b046e43daa75b803a18216f780ed256c5706c200b3f87d15d9ce958a7222d09ebf64a5e5560e3812072e3233d7cfae3bab365e3d970c5071c5e8129a566b02ebbf1dd4707f655521bf4fe0354dbadadcd9d5f9dc50db13a93033021136d36934d34464841f6baa3aa10ef89d66bb3ef40db3966fd92234cb5cefb90d0386d81c8a69a8fb1cd0ac804bd60f3708f9fecea585d5be52b4c06bbd0a95cec8cd17bf2b29c70a6ef8ac0d950e4855b30987300ad3fab8d9fad2ebdce5c18aeadea077591d2195d5c4c137a05300b239a9314d28b83be620b37d2bcf3fc1c4c9da380efb1d6703ef454f096b69ccd31a5db154c507b7555d9f35dce31b9934a0e0361a52bf03c501e89c27161ed8a1456d21d657b74df9ee587c18091f8e04ed947f7c2edf14e80043ba902d1885c25699408d1bd50abd4d0b096a41d687103752168c3c3d062ac7dd9190cd936f60c7fc99e2c4d2782aa2dce0e617c4992ea784000f6fff5683c469213de9fed75aecace12d627b6a4c6d93aa1dd58191be6f7a7d188ac45040360e0e0edcf57f614f40207cc17b0dabe693486f9422ab3690c91a306d798e8a706204a51e1f56ba0ca0ecc3a6e71d83ad2ce7ada94902e9cfdd0002c3b48030974c0bfbbe03e639de9732cf073069f90079f795acc3b015f4c0f64b94f1a4fd339e191e9ade5a3b5b33583decf6e6bdc3b7323aeffea1780fe519ff3cb13e1a4d960599582212225e5c436788b278dac38cdc0f6ac74de5191dfa8d47646b06b4f25a11b046cf3c293df4d8ef5fabfaccf49a88ad4fae42555caa77cafc61aa2fe639cc7cf0055ad97fab0fb882837e4eecff2487f341d983b5e589be1f7f604bb47a6efa9e0f4ac62b40c93c90004d43ad4086004520697c3c07cdd04c23d3f1734f56140d15a6f919094b65fef70324ba2ed84fd3ea49dafb7584736a135e42f2ce392e8bac32bcfdab62a2e3a39d030d9a3e0421cfecee46fc2621bb5558aa5e248a151a624e2391fe9a506b1bf82a7a219aa1e9dcda3bb04d857b2907c9d02ef66b7ca39e540d15ea0b92e338ce8decda41708fa2203740b3e19cc5d8f59cacb4fedc22c808acd75b2ff657c0a371f31343a5f996a59fd00305f3aa17e90082bb4d2a1fa6e42666e4c382a34252f70fa709f27113c2496bcb55781b900b180c5c1f20c805dae3a587d6d351460bbfc6dc0a259ef7a48c800d02996cc856b7f33ed862f0a2e2ead35d8789b4ca07bac21ee374d7efc55d064bfaf51a8cda6461a46038c51789ec019e74c1e118d2e5bc57d856c57917e8bcbb619fe7fd4c1d1ead36ef53f739d89de6ddffe8de111a802a120c1abab2cba9adf4da57914718e34321bd5a1255b8afc2c8ff09d1c485a01938815eb1f0c04c56464a5c41043eee16602eeaa3b91d94b9b364bff1561f8feacbd8a4de546fa517a9b78c5e063361ea3223926a0081bec71489e72ae20b61aa58ed842c2e64094aa621f138b2a8dc8e0c0a22edeea7f04d68ef5786c60d6e10e886c11e239200e067ec1e3bb842e67be74ae46767c1c869297228ce67d926564d9a461c7fbc2791ada234a7847a8086abae47764617d743c0ecb2478eeaaa829b55c844000c842632d25ae2f512b5e94a3149bd1623bdc033e44ea44e168b4f84f9e97308d0a17e070022c8b19789c9db8f5044a94211c76528422c028e3904cc32490402e34b69a9efe1d89ea3503ea73dc41d754866df52c41c34208a15396c7493ca8f551a36b722230f4096d536c1507c454a9b6e9ae41681f1d3f6ce56bda9e4ec6f55206ba340bfa480c6dbc907e2fdc26a299235eefa26e31db5c853ea39602f93c4c6fd275ab908b68d0b38425d24009a6ec1174e366ad0a51b78f16b3ed5bfe7d2e63c4f089b3daec8dfda42e5c3640472894ff4fa5c31016f47361f3921e1758bc2c1b91d6e37c3feead07ba8d62f3c03a5feb5d0b9d80fd50b97dac837993c6f47e45244c5d5a1738dca26e76e452a811ebc4da92639eb36a66af4f86d4e95d183b741d5a467dd26558d1ebf8daa327af036ab9af4acdbb0aad1e3b76955460fdec655939e759b57357afc36b04a3a37de0a14d4af7ea97ff5ab7ed5cfed172bc8e15333e16a54ae0a4479bdccacb85553891342549b55517b696b2a4b58c5b56625ada67a383844bf29a0e0fdd6edac369a5ca6c17b7ab3df66b1c5410bdcafa5293a7eff676adb9356215c4e697ade4d778335ca8af6e34046effc431fab7d6f3e9bcd86b3d6a72f67b7dd5debda5bb3dbe4b075f28399b6b96cbd7a8ed3eeb7baab82157579fab63bc9a81a3c3fee0e651b92fe7577ea46cc5bf3f7fdb25680be49005c7bbebbfa4d02aed811fc312b208473225cebc1bbf1663d5cf719fed25798c589445c73c5bbe6263aaed655fc352b26923333aeefc83bf1a656aef23bfe76a5cffdc641e4146366186f9173edc8e46f5881009d54e5bafebc0337eee87adee50ffcad9cae0cccfc2d2b9eaa33dd5c4faa77e6e6705d4577feae56dcd839ff5cbbd8bbe02dd4aebf10fd512b90b873215d23dcbb49378332bd9a6ed5df351fea0f7c05199e4ad53517bed3f4962eeb55bd6eaa5daf92f76bf3e7c30e5af3c02a1f0d664f565d6e6a8f8bbad47bcbd76bb76e7fcb0ac8f6c472d7b5f61ddc8d80bb57c47e36fcbbbd03173e00db27eedf933e97f50f3eeeb7e4d6d3403c3deb1975dcd73d03e38d736f14fb6e6cfcdab27366f2b5d1475a329fc2fddda2f355bf2fd4ff53410fe1d3004d427a36fd15c3b2f3be28ee8406801efdade61f8fa2fe1b6d004428565839ab3e4d726bc83a4d424bddac74b4d29ba1fac743431b65743b549c4aa24addacba34a9db50f624292d716be9a24d6e879a534954a99b559726751bca9e24a56b3002c074aad3a4a094db4a9726bd1d629d92a2256e571d5ae9d650739a9494725be9d2a4b743ac5352b4c4ed7d632039961095ba1d74d152b743ec6912d3d95f5d6c59031a9d3eae91a60430adfb30922005d09f197acb4405804559a9ecb017abf5ad01ba871e4f25b90054a4708e4bdeaa7a7590336d03e82889f74a5fce948144f230bbc2869e7d0df22d01ba5ad26d0eaaec9f9a7849a421ddcc6517148cdf70fc2ba657b1f86f98d0599a54f111f977326424b7d4f75e3258d22098bb43b9326551b9f7f516b1bc1fd73fd9c21ce67a258d04ecef163abaa3eb399a3fce1d9bbf9ec306e716a19d0dd7c6db2eda784e10ea7c3e80f06240ffcd4442bffe868be85a46c1e8575b99205dc710deff80de61fa187c877130fbb14670a03e0478a0c1a6bf511c20541f213c30f6d94fec0186f599201ede098b3fa18471fd0ce38bf845308e0715b09f08f2b5fd0fac079000d9bf4196d957389e87f619988790dffa832d40d83e87f3701953808d5772703f14e84b47584531a115dd0f20fd3381917459dc1f14ea33f85827dbba14df6b60fdb878d129db9c03fcd45026f8b703a98c141a62ab685f49fb3a9dc002102f0ff73fcc0bdc63fb38c6cff11e0e15099c842000f91f3849f27bdee7517e3ec059fe3f1b26ccdb0cf94caee6f40753c079ae90caf32b505a042cc42a417f0dc3f59c0181915ee51d79fdc7963785fa9a8520356602a4ff82d81a919625abe2feb8609ec00ee6d02b3c99067e24a19fca681146fb19909fd7053fad925a3ced46f7831066f15e118509222060669d486b89c0c7aee3c72a881d2318048a7f54fd4b1b1761b0f0d8585edb4f315108ceb72f04ffadd4880cd1c1a190c40c6882b64b888836433bfee06f354bc064183ddebe46e31fcb495d028a1cf08f5b065372063e114f25ff9e19015e63837ca739b61f08fd92faf3b5675444dafeb40e84e7f5475121549c2a394a174d8d788679003d701ebcff456294143537f34b7514060030f7e86229332ec2a1da80a6aee7f1d119c4eb692114cb3bd9bbb58043e82f41315bb4dd38407cc92d04f444abe0c24e82e7b7881e3a4bbc2a2e98427d27ab970b7311fd1194a28b98db03899feb4291d047b25b77e105e837c1345e889a3e4ddc4d2f4c43fc27ebdf0b71d93d12fcea8baae389899ffd4218d82fd96ec0e00ded3b41b3608c9d3e4fdc9b3054573114531a98f0866105fadfe19cf0154a2888af2d3d8272c648bb7590f8b16328107d40f60d19be01fd12ec970c2bd35388bb29c32b847fb2fe96a107db03826fcc683d3891f8bf669800fd906c0f94148d789aa0bf67dc989e43dc0d1a5a313c92fd170d1d621f107c93c6f5c059e2fda6c104ea8b641d2be3acd9956a6d004ed2493c3657137f3f13ec59e3edc369e2fdaee104eb0fd9366ce86be991a0bf6c50bc1f409c4d1bac2c7e92fddb861f665f08b671639ed019fc1304cdb37bf1b2273dc538e710f70e391059d105b9c86789359dc0e58e5fe5d0b40c1a3d58fc16222bfa61ec044cf619b1e84cd2860133e225dfd9e7c44c86ee25df15a63315f16d180f7f8b7b11ef30790edfd71a52aec962fb7ad4353e0d012b828febd985e7ac6a1cff236f2646c5ae668b70394e80428688f21f6516d0599a76138798e3bd973474a456c9e644b1dab399bdbd4d642321d3bf5a50d158dcb6366222b368d9b21222fd3e58788a66f436483697d26974ac15d409f51fda21e70fe4d5b7c0e8c54986d6e540bc9971409693a116b17f45b143e18787513a545280de40f53fcacda614bcc0fecc8fd87f26313a90d65fa134f7af6e9fd63f43f0beb9d5017b69fcbf8655327326fd4f2333fa7f8035e8afbfa4cf4718ab823939cf286e251c48d505a5eab57aebc0d6cd1f570fecc62f8b8fd3b18b1ca78ff42d2d5ab024e0797d12536957e3b4ab397cf459b59c79cf6bcc40da6e803bd6b1f03e2e6b36741f9bcb1f2d8ad4b7dde691d09427456c11e1f43c623262f1be6c8cc8bc1e6a6d0edde4bda6fb2fe122d51f58d9a1d80919da7290844f59b4c3acd41d5f8cd5d53f5b599b9cc93cc657d8457b94d9cdb7b4267a57887a2343ad8ddc150ccdd94b36ce09e909976d971dfd0357d79833528717c14e113f2ed0319b84475cd95c8ec44e5a7a5bd6e81cbccae69c903d70d97e99517f7075edb17d957d0fcae456dee3cec09f357ee7bed9285f71f2a95ec3c72a75dd0786e8b77299df013dea2d7bc2d8d1dec037c4016f9df4855c70676c63ce037047bf936d2f976b4f6e8050bf468f969e965e8d5ead1e2d3d2dbd1abd5a3d5a7a5a7a357ab57a540131ba7bb97bbf72757377f372f77ee7eeeeeeeeedeefdcedddddddddbdd7beeb4ef32c6fef02caedaf405beeb87c47c5d29fafa7a3afa74fa74f5a6d31e3bd656489c20e0420001f6fecb1ade7148b082f46090c90a06e17097a9e14e0467f6c849dac99b50529d02524f14ed2b6961433332ea03ce53f30239f67b8a1249479984d5e88f0d3dccc45a5f46afd8c005c575840abfd2f9874eb140f3b306d4c32140c6a94f1c8a13773881bda67818175ee102162d3a92cd34b264f528720193335a66be248e8e794f37332fd769ad040dda7929158fd5b950a26fce9a339376ee2105051011fafa012a14275dd9e4efbc3449c769c40bbad339961ef191a4ed6b828a647974fc96b35748fc9e8279e9cb1d328ac644fe9a73119cc802b04895f41d7519c246b232e6ff834b6ecea919ce02a46a42b9579bf4062bdc84233c3d44e059a689989117ae1084495fa1ee5036b7c0db6459bf34019596efa9553d7f29e382037ccf3fce028ce962b8a8d4173bd32499d980d235faae3725dcf5f9e00baaa8ab4211cba539f7a64d01b45ffaae6385683650c2cb646db1b74aba6a9957a5b8b6b8dba45fb1bc8b525b551832c2955c2be1b2f52e36f32f9f80d47d048ae8f7c6572098556d3a65eb7e74dbcddc5f6199b2effae39d690545d670fe8a31ac8ce968398ad8ea8ae7d6aa5908dc9bf9c170f84dfbcd50f9049a4cb75d8785f138adde2463b3afc87703443bf2280afd7eeb26222242f69672077e0c160cc10cf3da547fe2e08a268dfe875030910948dc86898947aaa8ebf2a45759cd349a71108a76804444ca445a45a4ae295d9edc14d7ab7e006edf527c72639986caaecb93ae2939eeddb8b9fc5056bbf850d676971fda7249c289252ac5e5e7f65d9274cb25664b50453593624b19b77419ba7d9758b75e56323e83a4baa5cb934652b9a5cb139727f7db4697ace8053c9996a6d83e431e2a180c0c0ccc56c6083d7121ba731762bb97049346527c1eddb9f3d8ee6df7beddbb90ee9c2a76cb1897f78d2f847b772138db5d08cf8a312861886a0f7a4a5bd75d877b777eb7e3f55545a11552faf626392bc4884ee9db85780f5faa885446b7b987e7d17d7b78eea5eae80a015f7a380a1162ba479f104b154c8891ec42bc9bde424a079fe2f3f06e3a8fd2c12dc51608efa6eb78373db33aa583391f0c51d76c0f1f8b7121d10d7595d1674bd5910aa9853ba59060906294e3a828e6d01fc49060b652273052c1edd4110cca182115cca482154979768621ba3030caa22df00d1313544f3f948569a1b6fcb682213a1d26c671a28842fd938489d1d6245d30180c46082668524acbd51daa82c975b973a80aa1fb755d98233b0e16bd207261d25041e2f66192306fb4dbe782e896304d7c7e805ee2a882a98a46d51065f5c351058e2a24ca52115dca32a9929ef8de9f2111a9ba999e03962aa4db5b96222a534437cc915d55445b463c10c42441dbd3233e7c0ff8d3339baa3667bbe9aa21da3abdaf42a22d97db54f6d9f23795d9141061f8ed5966754e37d91df0a7ef88e52abc493c8aa92d5797f9226db57c05868809e36813dcfeb6d5ef986c2a7b58ad8ee927bbe36253190fefa1156244e7f4d28594ee72172be4f4524e0fcb57ce2c1ef5ade5a66f42a4699ca4881a27d9324e92659ce4ca38494ea58008ef5d88d0a6f8db7948ef429cb6eb98be99ce56e7b4733a0f599a241706c164f8ef349a465034990e5ec774f07c10bc68774053cce4e2c30367e78153403069faf6148f6d23a2ad39678a68a688668ae8f6bb912bea7c288b33baddcfedad8c71c1c41ac68bfafacfc6b8baa6561be38289cd4b635c5d3353faeb0fe5dd0843a48a8d2a1fca6a1edc76ce4eca52f954c65215838985614e781e45d7fdc2b1aba95a6162305ec404c51ce9968c504c4fd7cc243a20725b057322c60524845bc6bc6eebc00ab78c29523356c1baa68421ba48ba66950386a86bca14900f6da5543ec9948a05629231aeca03b154c1a67694245c00a57c9f2d39188ae5010a110f7e923514423cf81a06c1a4e9a771923c7229a039a33f5340b4e573bb0093b2cad40f5877209627d84df9e0ba9aeb7e144c01cd1b2e88264d9d8bb642da7a21a21d6d7134465f88928850b6fb79417a49125f8c88255704beba267b961db95906be186472c5cb15cd9b25cc1b26704b05a3ac3e2705f10a5c176eab60a538f61dbae509f642445b2a8e1345a2db7f09a22d15a78aa9ec4b904af5a3026ad7fd1a54c568cbf4beca87b64c168608153b719c288a3e6469f4461788f3a6727ab8773f5dbe294e71781defa1dd31c2df11ef9dad4ec9f4d279c81c393d3da2f5de63b23142def84af14de72183526c75bc97ce2fd91d236c754a3759bb03e4737b8641d41488f53ae67539c19cd1a7b61611e9eb41ebe2a2acbed5baf8a0b8ae14e2900ad6ab1824dd7a414ad23525c7384e1451a87fb5e2675721e955c70cddfe0b126dc52469563fc615c3e4f6450e251eb53a4c0c2646136383c415bd20dd3e424ae262aedbf9dc3e4c4c35a482c1c44a1822d8056292de569fc1c43eab82b50a76faa1ac7e177412ba1c278a7368b3271fcaea97395495104bfe71dd86f1a2573a10635c1626061353daa788d4355f1093ba86ae5eb82344eee7966292883467f45120963031a4db30311b34364888254c0c26c6ca78e8108d8787549e4c43801a3e7a86a682b2a08621e9267982e8ce244fc06e6912c36d9318e60dada006d610390d8826b5f7a02d4acab833f346c6e701306f589fbf61de04e0f338cc9baf26c6e765ccc861de749fa751c3c6bc093f7f63de943e5f336b4c37e2e771cc9bd3e7779837289f27c0ac49f9fc9d372a9f27e7cdcae70f306f583e8f8059d3f2f91ee60deaf33b12306f5e3eefc3ac497dfe8779a3fa7ccebc81f93c10f326e6f341cc1a99cff39837bf193f2fc4bcb19f7fc0ac81f1f909cc9b991b007c9e02f3e686cf0f316b70f83c06e6cdeaf3199837333edf83b6b4cf03a12d1bd7e1e58cb9ba3593b8b38769f47d68eb065bcea789cf8644e37dae8786c68644c396a626b791682c117c4b13d773fb35c61be339d4d15b98638a99c3a8b2711d7438933ad8d0a1c6351b3abcc9ae4123004d87d33c87d7ae11802d792e8de7701dc63975a0b1b35739d0c841c6d81c93cb2d19c2a2e7908c914d149431ce1b63e49a985c0a3826b8258e70fb3818e0dea0e4f601b0c5edcf24b97d189608b73f0ee1f67fc5edcb5871fb31b0db8701c2edabaab8fd940f6effa507b7efc283db6fd1c1e57270391cdcbe4a1047e472515cce06b72fd6e0f64d9c0c6ebf04c5ed874fdc3e1883dbf73817dc7ed782dba74edc7e36b2e0f64fe10e035cfaef6330fbe84bcee7873974a9e57c7ad55f0e6a80cbf978c7e9cc7add3431e995a9a85a139189a847931c2a20cb5e332d43c2a49d6a9936674a53120dc010e6a91aea886fca103d18c711b97d5025e5e7c2fac650dfe87f8d850fcc197d22e68cbe07e68c7e4c2c62cee88360cee8f3d5c1dd20de50d770bd07f390784336c59607be402e5f8a0671fb5eb4957de3fe652325e919c4b26317898fe68cce3c18116d65471eec7b99412c3976e2c1527e342720873928bd399e044a2997f4ec31d7f96ab932f3bc5c99cbbe1cc771b6815c9939e31a7c8213e2463971dbac0896dc0ff0fcca50cc2543805d7681b872c5aeb9653d078a4b3002186e592d07f6ea8b2f32efb472e50ff09641e8ade72a570671fb6639007262ddb67abb11e4466eab2069a4d610eb164862a8244168f896484103efa8140670e8086a28d510eb453108bdf4dc289241e44ba90597c0c0e772244d3d11f9e68c0a4a548338efbc35076268533ae0c3877627b4299df02a57b13b2a0fc1f3903ca4ca587120d26fdb8f999e8b72a7163d63b81f05c3712ed1220a17997208a43c553fc9f0f36888271cce5e5d8b1e2df4bf1a623633858aa67d29b5f378a8efaa8e6a4b095ccd962a1601fd992169889c6166716ad044bae5672c4340b3b467e77a702c10f9ce944eb871c148175c64781e92fb497a0197a4050a84908cc174f943a05cdd90134e4a3f4eb0c185ea80c221d7921b30c1b5844811a02eac412709c10a9f10d05083b0e52545d25015aeb86207dc922baab8d0ab0a2d842fd7a9bbafa802a59c43a2eb670b207401fcd90286845689bc4ef238cfeb3a9751f7a3240869e838269c2eb51b160c70c44754a000e868bc020b3899c7795eb7fd082109adc1ebb82bba503b0a1bcc19fc7e7512b59d9415d1242542c8624b5a820328b48ad3357c0474cd9625d59f28bcc0fd2c718519ba2557b48126bdb6684118b670814bab57b4e1f34e505d1409db2b09912d9cfa041ec702aeba90e05c516875082ce0aacbb53dd1bdb070848513697862e36c003621890a5db001e71d0d6d41c51986b6a8020543c84176010b0c9172548445108494f89840ab43e08176010b0c714fcbb62e501a05e5a4bd8ad4232d48c0042532b0c22d190aed28a7eed751bfbaa666bbfc21ea146204e60c3e04e60cbe104ca3074aa499922024b92310cae2d726c417912c0c47f0da489f8ddaebd841e1087e86d48b6f25e927ab1cc765f58809931b4a2e2643687131f1c92a4b21d26b07425b29e7735091ae399d8f72a62d95bfdce58c7acb4553a9769de5a16f77aea7858080744dcae543d1ad9e2f6988880e4e4543447e2edf08da715956437caff83b5dc31ff2ce9f7919559395dd65943159d951e30e9395b1586c645719c1c9ca9e32664719b9b9ca7e1aeb9cab0c013a18b85d19e476df673db073bb4fdbb17ea221608ab08639a60035d0fef81547d3581a4b7e7923df8bec59cdb226d2ad17c96f6ac559b9c7bce1cb7ff74f0beb0dc4f2d376a83b935421e9969d4473f2cb6a2ab33cf4cdb4f7e81a5a3397dc00c9e5331013e956ca90cbe522013993dc80c8e51e965bcea41e3a7233ad7ee2704b1997af8e2ff40cd135daa5973b663ba95795086d31c9734e9c7a9acbfc1eb3e793cb07b50f68dda59f4b84007467a8a3bbd9bb4eea271debd58a91bac8e51bd1e307bf8b744dd9495da3d349fde4a5690e5a69253241251c910c018d3304d7fc72d264f1b78a7267922ab86ed949349752d4b75da55b3d288bbf71dfce1307f7cdfbb61dbcd835cd3d68eb4dcf75ffce8d440411bf2cccf17de378ebada722ff98b93aa428d29a24d3d79d3086703cd990e6f9ea0656c0471cdfbc9989f2dcf9ef5a3d3ffb5ce2760cba40eae2b61373721768f8ea583a7867c9769ff7da3a7d0f4d607a1f01dd3abd6fe8bd6ff37d0c866319a4aff7f0e258f280aff5a3610ed0722510b91ba2a4f0a48c41e845b18c02a6111e87f69c9ec4c99335e27d28985b1717a55ad1560dc17f947e21ae680b059ec31f2af82ecc015a01881e38f271da82329ae5715b083411cc6c04347672103263888c0eabd7953504a0c3e55453a59bc1371d20ce2c9600dda9e4ce2c9428e1f618f19ec44f3fb73ba6943f99996df79d8e5d1741afaff76cd08b6d8754cf447ad548749c11bf7a15c49d080775a3d803e7e40bb19c43dcd60171b1582cc6406c7f7046771bc794964312b9934312c951d61122bd73c90f906ebdc192289edc253758e2ce255134b933ee5c12c514b73b9a377cfb9d15668b0606b483254f50c18427e476b95e2d898206a8aed96c771494f483746b05525d2e17096a4f1227b5274143662ff9d5646c5a94386f290acda2aecfbdba2eb8463f1b3b2d708dee8e6a7d559738b350b2a495e9800190ca692bb3fca293eb8ecaeea87bbd9ed08448d77545be107bc5c55eb4d575d17de1f6ebab3b6a835872b172e6e8705e7447a7acf404111e1cb933090e90c8b833c90ecc703fd39ca92da2260e2198c616e55c62ba99587c2527e5006e2900ce0885248102e0188269f0cbd69da799383090335bec4359fc59c2b8fd71e2e0a24963c2cc9ad3575ea254bc9497f4f65918073741e19aad867b9feb0e621a5c6f33e2d497369777c0e99511285fd951b1546817d360c6c13d4c839fc49cc14fb1651bc138504ee2c6edb892e8995eb860d45a6badb5d65a6badb5d65a6badb5d65a6bad2b66d2ab79c716375b391185a2412cf44308c6d157028c839b0cc138d808038c839d308d22c6d1764e1a3c9d5ca6c29cc12f9b598bcb2f621ecc15bff4a02a2e1fe42b2e7393205cfec1a5c2bce11dcc197c3e3b611c5c8469f0915c7e6d72998a7b4b369239c2d5212313638498189822c0c0a88854aad49254ea45c9cb8bcb162e2ea82428548b162d2d2c59b0b0ac60b1b2a232a4a292428494149421a0a09cae389d4424a2681282c9540a42a9145a1186200c043f207c9f5785e77554741d7784e3b61f6c9be6034dcb7a70b3592b0fe60da57407f3a6838c843cf02d426d0f20bd622f38d1ab4999852c073161cb0dd0e07a412857b84dc420daea81b2782cb97f3fc74b6cefaae5a029889ae51f0a137b1b4bfa9c1e9044ee93db7200bc7d7e0f39a9edb3bb3bcea6e8e71df9829c4dd734df862d074d5abb1908455b8c83c9e2f780633e87ba8c0a72d2641b4591b67867122e983057daf4250771505639a8f2d19d3078c021ccc3d11b94a0848ba20be34e255c14b9dfcc417c7141a5c2bac305a9f74711f5a61250cfa91ef8a612c073f93c9f08c4f36e7f04b120a8b789a89739f17e5ff5de57400f395788305adda7ea1ce680f9f755afc234fff5de0ed561ce63f933cbb057b65cf5a9faa8777eb52fdc1162ada71ecc555e9519533b645e2fc38133d421f3b73ce6f56f21daca622c6db1dfd15726a4a10fd54b981f5417a242efb107f56c7886b9cc08f3169a9fa155fdfb3250657dc05c4565ee591ff4bf674b7afe17f0d77b23b5e5e7d0f53e672bbbf6f06b6b4bd49541899355af8ddc3827ab5a1ecb96cbb48c3f825c98d370c7efed0ff0c2bcc31d30579dc31ddf4df90073d55587f90c77a06e0973d5597518d687aaab47c2f4050d77a8ac8f7fe6d5faf8ad7df9032c7f80d7c74fffe3f4f7cb8c1ffdbaeef00cb9aa1df62087f7f84ca3acafe7eec128654edf9f573596dc85f18fc17fe15802b9e1bf965aca248919dd99b3ea3125d791feff2ae88d25ef08afba2723232313fe70c36f78873bfaaaac0ffe4cb51c634b9e3bf31b0e33fa30ce3bc33a873956936718739931e6df2c80583f12e998b9f76f0201bbde5b826ebd2a0d40b77efcf76d20cf12c80d42af0fd5ab674b19a7d7c2058c6fb9077300dcb3250e996d98078078a70f5f6dea13bf7badd4677778afa7df6f780260de0cf02c7704cb1b652e03e4876a53e1ebbf54f83eff25776f53a1dd614b20def700f085e1cbd82095f519fe0073cffa80795b1f2df7c620956d6df90dafa10f333b5aec946183d03b9600b015071b845ed502541f6dc957a51acb21770733e8616001e577be676bafca20f4aa6c29e4863b28db6a6fdb923e08f568ad30ef48c4facf90873e0284cc63d2e033bf0984ccbd2789c5ee0c98853f78f7f7c698abc612c855bdc7926fcc38eff15b3e93c490ee71388f30f7c6ef25c7c38ef0e2f55417e6efd1e2d566b5bce563cc6fb8f5117399e3740d77c4c81c87e2a0eab16316d0dd6badad95bd592a8b4303701e7d789739871deef02ef36f07cfbc5e2973c3f308e47e0fc71ffae3c08f3231308ff18fe5901d3cc42d6f388c0d52afccebf57e43c97365f8c6c88c338f319639f78607602c81dc1ba8d521459179a46b9883650520ae9e850ae0b92b1ba4eaa8f7c0acb68870c7caed61b21562906b8a26370b2441770edd998510b670b5f839726f00f1671d2d577d66cc9917a72f2323f3fd24c9c193243978e23205a124693092f972663eaf85af8ca33e3cf7effbbe99f73033e6bc409c5140afe667fe143fe6f3d631c59687fb037b9eedd12b1cfa315839cc3145f6498120da2ff57ddc837f7e30b9f340ce3e1488a19893c9ccc20849eebc1194bd1d7d431c6ef0c103412f9c22fb16fae001e09df26c0b917da459f3740a620b61222da0de986ba107f88b3b9e471fde7fc36798e306196f94390d7da8bd9279c957e638e818bfcbd8f2c70e2f82eff7ffc3c1dba1917cbc616ca2666285388edb9c11be8e9569848f1939a6116a7346588237fcb7813323cc6754303e33ce0b80b1c51ec6bf0dfc38ef8c3d4e2ba06b8aa83930c694f7afabf55da803e636b5c3bededa9447dff296d3d7206cd1e3a487fa7df35caf6815c4b71defd4a289364c2319cf9641aef7fabfebeed50a4ee195e0fd4e4799913b42f4fe8d32ef910360cfe755af7ab73ef837c201708aef1b6bfdfec3f6a8b69dc8dc1b4b19f66a98c3f3d828f4e19f2d8384af23873e780fad8fd92bea437de3509c1ec7926f117dff6ffc01de5f99d731e5c317fe7bca07eff238ef2d4ecb8ca97a1d5214b1549848308f59b9538b1f1ac0a8543d5263905e4d97310b73a02c102bc4d9ab9e1e30b19c48934f3abaf0855252fd6c133eb5d66aeb0dc47212d5233d74403d1011358cb6b2f7a83d3c24a44f3ccf761dabd35db43ba777dfd99e9d87fc4e1b8f8ef8ad74f1d5eaa0b01ce53ce469e4d99e8ddab3f3e0bed954fd965d3c8faebb688518d1d9de5d88f86de2d63d55bf7d92a96a534088dfce43fc668518d16139ca85942e9e070a0b044edf6e7a36a6eab5a7fc6329f1902c2b5739cb4b2f5b28554feffd43194594125b3aeaa40091624bd7ee8d3a261e8eb828f2e40c2f978b64794a0a0bcbc843a688ef2ebe53995f591979481594674779268432f290598a0793d98518d14939ca272924c5a68e62539ee571faf693ddd93192ca393d88499e2c0f2de6022fc84006442e172952d6bc4f93a70f716d2fdb254ef294355f8a4894a0220949e8e2648f28df893c64970282c92ebbc6c48b92650bb51065b5500fded19da99c495925ffdcf9799487e4461eb207f7409c24017a86c8498649469e100421fcb85ce424992c279269b4a1ac5981202ab9c1123d3c3a3ff04e2536309a1e1f0495d800d683e711794cbf5ecddf21bac6b3d5fb677b782310cffb8f5ecd87f74620bdca6e05f28d3dc25adfe3470309c714dff32c11f506c96eb529fe24b3093e1b7f346b9ec71e5c88a0d7430fa02dc54b940331a5a3edd42ac4148f4c7bc643527b6ef34eff79631ff1bcb3ed23bd82758df7926dc37a354f6d0b09358c79d239737a18757a35af8d958a1e686bf650510f47523c3a21d9bb4f724e2d528085db63d2190ac13db3299d6c27e579160826b34f72eb2c10ca6a422c279250c3286b5e1b855a8807e26c169aacf939279dcd936548c75387643c5936040fbecff4aabfe6b2d2b25eba3a9d59f5cafe5fd16e307c5386e8f32720115566b8cf19a6944f55d8a76fb0ab64a6df7c7ae5a214296908ce341fb6ecc33d45935deca3b166d9c735b30d75ca6a17fb502fc43588b40a6233558358cfafdba98b9bbb366dcd969ca8f5e7e4fbe69c73ce39e7ecad3babb479cbaad65a77c695f9ccf6b46634a3cdfc3927739e12df9c2959aedbff78d6c07c3157b3c5a3d0edc37c3161b7df2e3d98acbe0b1065a941cc1e7703ca466d16a1e8d7190fd9dc03b19f62bbead5f60a04316b1f1ccadaaef60431a5d3b7fd4359dbd63edd43053951d9c939b3591f74a8d627986082092686a0f190a538b3a2b9b344a9b431a5c33c44f8e28b2ff83ce45741d075a716eaf0eb37b95b9fbd875caefbf19c9c8da91dd9294fcd32aa846fe62082aedb9a5328c31190b809356071e4022790f8270b2b00e21a24e10a2f266264f4a32941418fcff604363c29e2a0908228f87453e002b605178484b6d0020e8e9c30052b887a7a101b027ae12788a4220ba1074c5ea72c92f004124a162fe0e2956277261a62900517f9992169e886892115ee081a0891d40e2980128a54b6285a83d08a12a67004104b4f218991a2be82139028a24c882dc1a89a610922329b411741a456051717625b13c8b0041139a4c6880a57a820899c5d15b278c5c82105182267dff094402185263ca107464f3441a464054a043da10a2514cd2710410db1d92f204190d1ec1f203c5134db05495e0822a70ac0a00521951424c10649e4ca10efd4529d6fc8ac020f7a5c64fd67533a1f3791841217f959fa9d212d5eb0828bacdf19c25d140189f4ecec1b3b433c1b201144566b24e583f64c9b7748d805144124b54632cbc3a2a448148866915112865a9a91bec842901358a40156d909254700ca380746a4f8d18ab0a0e2683b2aea428c530210a4f061410d7ee612dab08518149c2425ad2a07191df921876c6828226bf582064d82c82127160491f4b5deb33bd3085c483a2287743ff821a915a0d0e4881cc2b920c94696e241ef9dda1d8ec20fb048227786e0e043d60f11bff0ddfb6777e6117cac9044ee7c1fd2f5bc487acfa6787807efd91d7e91c10940e4ce90161859ef1db43bd30a4f981022773e3b644322ab8c215c133e7da354c181041f0c91d452bbb31de1c788d61c1d21fa06937346e584e0434591a619a0c80f5c243d0f1934d6176569ddbc993abdea1cdabf4fe4805ccdf2c6c50e90c81dfa21fd822649a491ed3ce4a43c240ee531e3c620f56a9a1143971bba597d5525c4ec65909a93d3ab164248dcaed3356c8ba897b979bb710b7370f672a18e6db39c11a06748d3e1d956b7a1a1c9c96e8347523af5f43b7687e3216738c58451161d79c80d0862595ff5558bdcee1f51dd2c7b9d35dab37333cbb41a88b1db015d2d0ab16665103f0e9cb495aaaf162841886c2aac610c5d12a0004b22bd26866002a46f0b2ea316119018dab121c2101239a42a01ab597f130a449e20810c451396201432114313a29215825005d1ace0119a686234b597f89508d03344329f7a667c5355021890c8211b1239c54c892924d948821049ad9154c6a7d9851640e4ce10fa21aa131c91d4a28093b686d060c30d62e4ec1b294929e831525901296dd138010c49e464821248246ded18e1c161a0c2082e923ec583a4a776c8113890e003227c31c4459d78c10917594f3f6b507dddbe518225cf3595c412e8a23cd90d51f05c77d23388e58fa8ebceb3846e8b462f4211150d15d970228dcd22cada6294d543454497b638a4a42394515151116a8b1dc56e037d40c4ecfc33882577d4ae9bb99c8084825e7c974c13af9665a3cb2bd35c5ea30b14bd6a940f9f5cd4e5d5354f5eb5c605c8e505645d5ca01093cc206e43b7ec9e88a50b900b50d740d12d8ee4ae98445ba238445bf5484727a32b12dd2ee29762ecb6a886db9f0c74fb1483db7ff9910bd02d4f4d6eff04a3add5e97582c17e604ac09080896bb842a20e66142ba3d3135ac6aa0114aba3798f6e2369ddcb55ec66ac25583f2c9f5e75768aef25cb8787e98b2fbe6803c9592147d073dfd9ce59f0a09114f98d35046292b4b27cb8554ccb56deaa5bb17c3a960feb75c9158cb656462b2b3023d8ed9517bd6a9612279834fa2b23da622dc1f20103cb0923da9a24b732bafd15186eb37ce68c66b97a15633121ce5bae62b7572f9fd7ebf6af40af1726e3e04983b92dcc9aec5d86dba79f06d233f0e4daab99c52d67667019a8da1ea4d09d3078b887340f6f2b67f8ea0954e0d3356507bb250c170c17147c6e1f460f0c091318b4e6e7ea34715273d0cc19fd0ed60d61a1c69cc1dc0d75b00e76c4b6838d1d1218db6ec8491327dc0d75b092e7764375d2cc19489aef47394debc0ee758c01bbfd187d0ec9edd3a118496e932006d0bc991e47434313d288622f510a63c060d2e8c77862cea03406500c184c1c9d1533c613f3a613c23b588d1a4294f5151515151515157d5ec725c170711e0c5707c3c559d7ac307c60fcc0800246d0bc61954b99bbd2cc9b994ae5a438081e323b8f2542273b6877c2673ce1c815b93160e24bd4e501ba523c980c9f1db4463890f2e16ae72497eb4ed2f4926b42ec6037906e24dd38a22d71e846ac83a51cc574f1f4ec3d2a079faad5749deca6d79bec8e91aa62bba4ef9c6c8c87fcc03155b331556b056d6ad6095e273bf879d0ee18995607bcc9eed86e2823c1791df3d6b062cee8a7d8142c2574ed6507bb217443e886d00da11b4237846e1c09ddce32bb2a1f03e8e4d9525ce25a9413b72d14b73b1891dbb6432a523bccd1afdb270245affa4ec00082f1d32bcd75e76d26c48d8639a8ebf66b7a6edff0a25713bcf164ce1b49f3a608518789a3be4f336fb8b362d2b8dd12a2f6f9d0d610a2ac696bc0e60c14d7bd71445b37384ebc71446fb850bfebf66f1cdd7071f3318adc16bfaea19c476bad1fe538ee9e7d3776618eda8539b8aee3ce7df6aaf48ee34431e92589b23aaf55c9cf96759e0b73701c78a94d05d9a823cc735d1b9a5ebd24c170d1960d8e134514ea2f2aba291ed9c183560838851c913dfc4e68533cc0870fad90f0e027b9933db42f202699d9540a1c8da4565746af288caeeb3a1b2f1b2f1b2f1b2f1b2f1b2f1bafa41a4949318068ab06574511e5c500aa11830b43b7dfc1baa18ea849d71c711dec37c68bb678c87e36f2903182621ce91ab63aa4281263e8a9aa84b8d932554308464f528c0e1603a84481f5aa91f4aabba118405d3391527c6e3fc55584d411812b3b583d81587a46497ad51dd1ed0ff15fe8cb1840305c1dac13c32d6300ddee508084508062d0e0f6678aab84810244e79cf192645f9e744dc903c3d535e54bd2ed81d5fcdc09a3a936002ca4d47a0b7e55b325978cf46d2cf96ecf4c5f5635d3a669daa75dcb461c9a650be8fe1da7c1aa5d2bb98bcd8659673730d4e1bdfbecb6ad6ecfba7103b96fa3f76c345d3cf8efe3671d239d82a4fc9075df67f97b4ad91251ce71c629d6876c7be54dfb698b465c4036d9877164dfecd6c5d5c05047ca33eb23a594ddb4a2e26d29efb6155bd66b3aa762ca9e62cada89cbdc75ddf9b3cc853ab67b28d6b469a763f8acd65a3b53e6d56ab23e68ef6ae6650d5a1acaea977c4d2f59d1722d9c1fe00f10c7d47de3be992cdb14f7ec38db33d34ba7d774f0252f71b573a18e7a1f265bd6e3984cb62c8541e8e5256e566df9019ebbfdb3ac69dea8dd5a9fddfaad7ed3324e6cd6e4384b79c137bb86cb998d1c6571ad767267f14d1962c615cc3acc51392e47b76dd7b43108bd99c569460147db09f5a1d46687c9842ee11de52863bffa4650dfd8a1576d739c88dd41fdfa5129a5f541ba9e8e3eb472b5d572bdfa8ed3744cd5cf1c9b723e8a2e6c6c0650cfdc23758d6ca94faf3ae8259f06f5ea75bf976d9b323167b0b51dd4af255e1df4fda37c66326fe6dd01e5fd6a02b1a449350991bae86729626105933bb1b002c9b577626105d0b519800ebe3625f8e817a210a67b8d8439e3455b28ef77106d9d7eba7714d1f230d91dee821069bac7e4694c71e211d435594da98d089ac639590bd82e97839e87faefd48824970887746504d1ad460cddda46fcdcfad218da8ce5ea721266c238f8b6679bfbbe1067333333333373bfe65fabbecd0e47ba459328ab6fd37d8826d116ed69968b26dd3e67c41975d136bc688f8ba98bfe5c9736529f7ecf4a860da7bd046d61e4e866efdb74beccaed98b19e54ec7b2bb36faa0ef3eb34a5fce77409caff33eaa2da91533fb696d6c2411b9ae9bddcb21973e7bf70e79e85bce6c9b15b597dd01f13eb277bc7da66b92a054b2f77667de355cbd94f2a53888e0beb55e3a3e11e74b063283d835e5c4e24e2ceef692b96271790e5d1fccb533e639e7ac3434b7d66a7d64e798d9d2993983be0be23c3df75c7b3b88267b5016e5ee9c38e6a552b8d5969593c22c75e1ab21aababbdf83cd0e36ba49263366cbf110e6e1da30d0388eb97e5ff7d7fdf440fad1ab06c10e9c4d5694456dd8ec70e7e7d9505677af56b4c5426c3f94122709c390894a968752defad12863c9397af4aa81744d686a09aff22f54094396b3f551bf727e0b4b96692bd3a485394a5779ff0710152b003154a16109b4d5824a183c3f852f781c8a527bc57ca44795ef1b7fe4e86c0f205de38921d875630fef3abce3b438f6884fe2a4688d54d3b97436555ac14a6b2d952bd0ce1d3547d735ddfb3f80801f6883f8e0fdfb678ba8d7cef4aaeb55f2a3579aedf10368b5fa5128314786c49ce912351121d9a5cf82fae59dde8220bb9d9da24ffb9dd92e2bc1149fe024a39447d4f7a11cd9324876bf6bedb344af988f288a2d39933dd2111e877e44f0458d65ce0d75b44f2f315e1bc71ccae27f9c39b4c535982c3e0e2e1f44d510bdffa0b95d779cd6726ef6d79cc1d78cc4b283384e1451a81f3497b353c4589f933153c4d0744dc92725aaf48a6fca4b51fcc60ec28298f2b283442550e8c9321175bf94915ed33aa88b6ed510ea235d33956881f44ad2455349108c2edf76a2d157fb744d0a55d33700b704f9686614c81173ecfa50ae582e66c3e96f2601a1e162c62ed22cee20ed88b86d968f7ac5a7b9122018a59dca715a6ba27da677454669a76929eec3b9dfb391529a05c9ae1644bba5d24f1262e9f387d2e9125d436d11d9a5ffd152df3dd0d1ac8364b7f40e75945e92b1a9ef938c019983f8d54125bb3aa88b3492cbe7239089f4e701992fbef8e2dae81587df63461bcd626d3cca3207f312f5d5a52f3697be288bb5dbf2ef5fcb68430305916fcb4b1a1bbde2b71ca7f9455b1d44597c185ba254b6fc2a65cb15cd8b2d695c6c6973739ac5471551d164327d8a371dcd19fcea02b10113025c811edd622f9ac56c86b90a03f316e68a1f44e9fc9c928fd367d91785e565df14959f3e51589ef22f3b1db3cc96ce3eec035e1d945d1735967c51c7a1a871de96715e96b1642f5cfeca5832192e5f85a170990a97b370f97c144444651a7afeb220daa536e543588476351bda99b7120ff42c909a6f318425dd586f2096eda3e40544cc59e5c66d94514f5f00d459fb3037d0e57e0129f98442a91024e92cd4927f27d5aac6f5d55eab3885735f66666666661928559f9b27cff3125f56a4d64aa796552dab55cb9ad6a65f7c516badb51af96610e21cb242915b7265b522c9a5e72e6be09b32449069257120ced7b965d58938cfd5d0b9e2d99a9d5a3659756e3af86a0d84e8675677422381ae294f63e374a63fae1fca9d2e671ad4ce1994a509976ea301e68a5e1b67b3cad9e4d26748b8f4ade4d25bc6b103d3f8a5362626738b4b6d2e95e1424626460a3131305180815119a9542928a4522f4f78797171828b0baa090ad5d28496161626b0b0ac2c616545a548452545092929284940413921e174129988a2e9082653c908a552588430048940f05bf27d9e12cfebb6e83a2e09c76d5a6c9b9685a6d1ecd2cf5a2fbd01e60db529800d3d01f8b7d961de4c3a6fd893c237674ab1e812713a9f88951efa3a86a99d4023419606666eaab1e078df77cffbb66ddbc4979aab076579230e65693f9dfb3cefdf9765d90a377a230e8b0d45da5ad1c4ca15ea45a83989bceea6a8977777cfcf7b19db058eed3372381ab15aa1501b4572facab7d3e9b462e9108551d8a7d24035d6356546c4bd4494156559967189339dbb817a88b2b473da5158266d5a5a394ef74a376d2334ed352422750ac1958be2576cea74a476d1d6cb4d8c14dab27d9a4845b3b925237de33671436d2e2f5177db2ed216eae52c63ce8bede971b9f71ed43fbe2fe3243322daa23fda595e936aa993cd0943300c5d509e3d599defde3dbb83b2d4653b89b2b4f390464eef224eb4da3fd3c824cde9fe01fa832564445914322b645cc8629aeb3b4e7fb1d8a97e61e5d94fcf8856c695155b72355663355663359611d1560da22ced1c278a28d4bf5ad1d0644444b435c922a323a4a49b692e16186d4d321baa4948411c278a28d4bf5aa1d4a05bda5c1aa32ceddd587faaab025156f5b9dab9f175b57f1c485f901175cdcab5d3f0f26ca6a5d33c7146941111717aca39f400cb533ec097e52a31dafaa1adeedaab0be86a1c8d5d8dda5c149a8bf27275517e14141494a3fcebba67634e0766e48966a77fa77327ef742abdc4e0692c33a2abc58ca8b85c97e660b1a91ccea6b27f25cfcb32ab63da01719a251b595cae4bbff330d522bdd2522c638a8568923e10ab508bad41da5f602c27c5f2d279c8148b4d01f1bd749def25967f6fb13adc4b2fd91d91b258beb39ce593a4e3244fe37657c6765d1e67e9df754affec8e9196efd4972ccb5bacce77ceee50168ba5477aa55597ebd2efa3f72ea4feb342e8bdd3bb32aab8eea732b2eb6adacfd5e6ad316d88c2281135a2489a76204a0a2ba991e95fe9a7ea85f7954ca497b94eb6c6583b3dd2354994e3441185fa572b1a9aeda54d27d1d6243be6f2f9017a5d2d486421da325d2b5d3bc3680bbc762662234d9b379c98238783be90156546595216d35c9a4f46c4494819516b62113784e3e96ae38aefe86e363443b76f435499d9a1ac974d9f384d29f5348dd21fe015798aef1f8f285144d58dce0b3a291dd535cc26b157a84c6cb157288be2bc9722773e47c5d3e928a6b84fb2fb694c7967db5c88e267455369a4390585e304c7eab2e4f3a850b2a21b6d340d4d6f233782bd1269682e0dcd4a6cdec224dd6b1a11b9fdda83029c803694d5a7744573b1957ddaa01791ee456d4784a3ac7e10776cbbee35bb5717d411e982ba97e7930211c507e50428ae7b28ae49d4bdba97e7d3bd6ef742d9bcf0d5273427684d5e842efd77744b7a06faef3eb415eb97997432a2599fafd949cf20961ed0a53d3ebda2ae39837e2271f843bd6db95e515a2dca90d1a52894ea458869a3a1e48cee89e84464f473fb2726b3aa9c9a94e245f9b9a979ed3c646a66d9b5ec3bdc37913b6ae6e68e7a6564448fd3dc51592d77c4197146474f88cc39e18e38a339a3515c283e3755c7d8f6ec3a5976ce1e9d8a4e48b7bf9d8c6e9f88a8d531af664f30caea13d1ed2b21b22dbba4dbe78e10dbe8969c513744593110f99c11ca4f7352c46e9f8fac64ecc0486ecf1ce237104c7ebc1af945a457cdb6df7d9e9e7f7e605d43d93559fdce324ca857477ad55cc3d37210d3402c573436a66ad670e7cbbc327180a759a39d5f9a38446f6e13870a9d351d0e14977d4bf033de8af9c534fafcc33418070b318d3e55d1575bb637739b57c7e24e2d6e7fbe68cc559f5bdddffea611e0f6b39a9b9f1ad707f3268739438871c8601afd1dfac6ed1f9923c8c8c418212606a60830302a22952ab524957a51f2f2e2b2858b0b2a090ad5a2454b0b4b162c2c2b58ac5cfeaa5554520c9092825200149413014e2771075134e130994a37a552388030046d40f06b7d9f57e379dd8daee36c70dc5663db3401685aa6037fd5f525cdad34e60de5af7298373d67d4f357332a7f25c3aeba464141117576379ddc5c7c54e3ea349566ad385a6862aa6063d38393db57a11f1d6d986bb53638363b3811b9e3d08d3ebb41eae52a378ef460d7d0cce26cd666ded26643892dd2d60026ab8fc5ed6ffd6c09a20d4d1533dab5822abd1277b039e2bc000524d9b571f5be518aad72a63f6b21524a6be5cae790f2a9f5c1a7563c17eec8516ba7527a93bb3f430427df9367d5abd90e44eed90ec4bff39a6c59d6d5fb6fedba199bedd9eb5ffa6576cfd2643eb2dbb80d44ee38d4e6c7ccddb6d3d8b0e99a9965e7c699cddc5ab7ec5c7dddb65a6bdf3953bbd8376bc4a9a40a4eca997489dc7e90a2265d4c2f9a1839e9bcd75a6badb5d6aad57fd65981341b892517551688f3963db4fa805010bc15c7f7ef25bd752c5d1cb3cb1d21965e0f82b56402c7d92bca69541cfb8add1537fad34dffbe97fe79610e931580484d7cc1d99c38ce6b5a956211dc05ed9cab8f0608ea9c33c21cf39c779eb9dc71ba93748d67393073b98f721dc71ccf9046b47351d7cc265d93d518f1cc510f7151af8c7a88cb89d4838b322a1ee1fbea0968ec0734563f13a5b56699a655156c26681b370372a73806a93619ac22c96a56abc82aec3292f66ce423331b2b57512bc388a670dd397403a1a33b87a4785dea9a37acb96812973fb7e76cdd7978ef9ed37d863988f0008fefda73b4ef1a185ecbd1ecc7311773d267b988b23a21debb0efc07fe7c409e10ac0bf22ccf90478ac7f6ee9d15422799caf1420f043149cfe674b648877b2a6752d60e0f39296b0839439d14b539fcede87228c40e67f999d52c136546239319d1e56bda3524eda8ac441950f6fab959500674f988b6b27345ba4c6e6335aab14b7e0c6649978f2eef6877a9909a3d427b2da22ded7ca4ec48d39e6542475976cdd254a2cb45944504bb250f1d959430c1083f2e1e5a4213262471f11336a08189eb870888517ceaa22d94a21774e122f994fed05625aab65cb9288c161d21cda4180f5156bd6de79c4184894bcb4a44e7e521daa2ae3ac4313391e6ba13c6908ea77609896fce9474e86e9fb4354f72b4157ea2be7eb9a2e1442ee4b828a6c4a8544c15c6a11e65cc90c8000000006314002030141088c462c150341eadab1f14000b92c44a76501aa8418e52c818430c0104c000000000000844c3040020ae3fd620dd612fb66963cf813bebb508f13e51c45bd44917af9683ee8a9347c0708dad824965686c12b2c51e98f889b402b358a0f2ed8ea84000fd970c8b17067433cf5c20d7090a4b3a0da716307110b65439017a91e70ecb5538fe9ad48480f6ca9c63ea18332e4cee3a26e125313aa9c35aa666280208b42bf2ed6eee5475e7c9248b4b9e4a4e677a3c49c9096c031593b5924c49ae60fc72817758ceac6b1597428a5f00437a295b5b6a8c37666e783daa0a5581acf339ddd9c00e43b263bf70a19ed8d2fefd7aa37ee902dea1f22ad121605378ad24d37a36571ded84340596c19d01cb257a87b5138644fa966aacaa1d00be1282a3866b40ddf054466428d49cd25c1c604e8afe7ea3d4dc7a55b5ca23665de655f90c4bb35989d847f95dcf77ee90867cfec4013b43b2228a078647dd71e9e160bd244992d001b7ee0c9166f6951106c3ff2216784129cfef6790515b888213bca58fdd5a724287841a562060400f375445e86b9315e2ba1f3c54828cc35fe4f7ad652f540b9ae0e1389f63aa0db382e9c41d203eb4c68b86faf5719c6274fb9ce911593064067882efb8d4d61eeccf7e38213b0bed0b4741e22540d66afd89566742e3c3305a6e4787184847e5c4950baf4fc357104e742997a561fd815350092bbdb03eb647df03972bc3f454124912754e0005c8874b508221b8947f64be4e2062b8f9d8013d84f20b8674d84d9fced69877fd9ecff8a461f8d96613ec3e5685e72873eee93b6d762aa0b735663730f11e1412dfa1aa65790de1d65d46879beff667568fa635d08db636e5f1f34e318b65f4e612689ef1d434745ec169cfe5d6abecfc10efb14adea1f68696a523ee447f20f1d22a600621512e02f170a390efa5a2c5421f67f24cd8f1c0cf651903ffcc161677f74d05fb8023772fb2b12c24da54fada613af954b0ad4243f04561784bdd1ea7151d086708634c76e1d9b08219058131fb863bc1b3b8eb8fa0cbec7e0fd3843956b9fd7864abb8e5df36da8d91f2edc20c2c269dc7a1ccde1464f66849c3209dcf0b420b4930c622cc07e1020cc1118064db27bb62e1e3cdc4e496c544e1fdd187a41104151eb9c65187c83fe11b44200bb34f8061f64299a540219225294f240703c62519ea0e855939f9eb786c870e441cc9fbac316508b00521945553bbefc1addeed88fa5097a25e803350c0844304cfee45aaac5a3e425d790e524f422491f3019d39132632ff6882373f31295c01129b81c314452a6ce2fb51684a16fc20c7edc93f05cb338dff6568497d9d3a7400b3aedd18f292ba803e9315d5364433be86869953b296c0541070ba35afc89aeac2e618cb5535d28ee726fe0f070901ea3a760063901cbb82235fc6048a6f9e3de816c4adaa96a057aad5a4bd73402c3ed2e00ad45a028283df9aba95f674deb9e414daa75c935f46bdf7f77a5300fc8c3b68c3eb83045e8eb2b4e075074ccabb56c16d15eca7595dd757e8fa442ed75960cb03554eb8d48ca27c9f135fb7c67d1559fb6b5fcfdcc59b369fbd8482e05a8dd6ef44ce9270b32ede37f006af249bc493e435286f9598c11df0709934c67baaea68cb3018a9c98ca536258beba2a6747f1134705a1ad925c8073ce792af6c72888ad9e27ef6a46742780889a595aaedd824311e8741f5022b8bfa3bf2c8cb951c698e1a264ae3937e5163ad06f9b88c65865897e954bffe3fcc798aa58f7a2998678d083f99c06391e18ff3000afd7e966c296c8c43f0bd313b26913f625e6fc783a16ddc692fb758f9dcbe5d1178003b088c7c5e1af8582869e0041893649d0bbc1e15d1b7d9a5cefff4b9c7e3123613179f47b0fabb5376c02d133f2996b95a5d5c0e80a2d3a8078cfa8a4377f84942dd9f0ac0fe93eba97b18c4c6abfca769002c5bc676d9268b0736fc5b408856ee79f4d236cabdce1d9348031e2ebfb152afadd7186193ae02990621e932c4e720c7b8e08dc1e016847606601f0a142b6d12a608eb7a110111cff263ca9a51c6b963799dc81e1354968fc9ebb4b113df93c33fe1c6b1ec449710f804d0f8b3cc3e89bbfd899809dd01f884ee79b038d3581a193bf1f0f5e3014ce8c047b113d4d8cea7cf54a3c5f5fb1a2ee209968267deb67fcecfe01fdbd6381c2128b89c4773de7c704d1f6ff8530261d11a17f79dc4dac3638eccf76dd03268af212ee3336881463917104ddcd652372ac5cb5674e677c911379151af19b09726a289594fc854c5a88ec76ebd8e0e08419b8c22d17277ca024c2e7446e9eaae103bb2da78624aea6c4058a894dc55f0ffc8af4c7077fc170125ef2a9b05ed9689c395d4f43b6a122fc8edbe2f5985e87148101290232fb4a617c275af0cbaf695d50fca837144a1c0eacfd4adde3d27c1d81f86644845c7ce1e2d436b7e30dc062aeafebd0b9fcc6fbcf51204ee4c1b089699bbdab257a30e03a16e393d35bea02d74d6939e6b4c056d730308f677e32b03aa235c2483add25301c463dc200528d5aa057cfba80e3872267c03050b53e7aef3b1c9f706f5b0969ced7c99fed134df5f44eb86f5132064e3a6d94e1f083a3637acdd247248c5e1b0c1670571d4a1cf9e8561ca5d1da273097f7586d11e9c3b3a473633a33ccd37f50b30467ff8de6088dbf85a73307ce827537998f36b87682cc37e9de1d483e696e6f0cdcc08a7e27ff177aba6ff025770c27798b5cab755895fa005b538ebc66e55bfb0550b6f020d5df1d0215dd47e7813c40b09127009a62212078810bbdfde1611c4b870fde4d4b87ec8b55b0ca12f3ae15a253e0577665428dcb45c300cec58b9e89ab03b744dab654fe8b0deaf26787cb361a687201b0912b18b2427a051ca5897044051a4210b7f03b4459b0fd680b13e5ce605fceb5cc4a25ebb504639e04501a9d303f84b4d151ca00d53fd15f0382870f9a5e1802325d9e06606ff22f93ccfba340006cd6a224564f74a76cbbd3ce383548ca281bf9355ef113807e88d6138a8d7403234e2447b936c504c3ef0723d0f0c86f75d2f3eb32e79f430aa523a6f6917b88ba1b5fb8425d9dd00b319122b3adb1ecbdbe945c07c5b706835d90819fe9451f5f44e25387a618f1cfd28e6cb20c078ab7be359e231f1c3d9a33223867d58825e2429cb5822b1157fc6ec9f6f98f4668bc827b82cda25278c87ff7fd0c4be3cdcf381a7fd5ab6242fc7970f7855478793f68096e8c654a5bf452e2cfc425415c6af8f5183a716bc1ba026fc67b5e8744eea2c8481f4e1c7ef7ac74ecffdc54534ebc5797ea7222d394d8455ef689e5f6bb2f069c6b0760356f39bfbb3d945281a6f6b93b8fdb72a1ffe6018bb7fa489b830db45a6df1975003d14a890cf0fed7ee0ed5d4a428d64f5d938f96aadadafa3b6e0660df7f869e9d2be9368ad7a913285d158eac7ec457acc25e31ba6c321010c873d86d76d649b3755c9d19d0c45c56af116b8d72a0d2b18429c3c1a7de8eda291f223852c085e51f0a8684cd1633c85a280cafc4d547b696b735ff67706c9f46f6e727d6c7f0694e0e38dfd57f2387f6c7d22e9938741d873c73f2bfa03b4c2882d3ca3c8ba1b16fe57898cd2026bb09e33c02487e48fe435e9d9bd2658af6193d44481e45d1a859c00d1bc43037ac5934f9d92c90a58e5300e4e2e9fa06fb036efcc75f607801c88b62bb2161bd35be2da8a723360b1b1ff37e2f3212e55a5819f9058a4afdf14770a19bbe2c9c66c945af73b84d6c69d7e56aea3430718e75cc84dccaf3bfadb56e4caab4300cba4d0a01b38ba3b4cbe06f1dc3ffb813c3f16833ad5dde4bc8e8c3d5b2c68e7df517b18e1f8ee5f6ea03e2f591b8236d1a15d74befbd932452638002a01cc6c904e4f18a6708148bc68747516510831ad60b58ed90a166bcc13dcc313159ca1b89ee68104f4dc36fec49b5bf8d151f08bd093e5477dc23a1a84ee242e955d27af17377c982ee51ec3891ae92589e0232d77265d440f9ce25f660913824076089754ee599253dadb99ac68cd16a4d4c8ca1640d661d36386b655cb83d4114cc34c1d355f1498c5a81ba0c17cbf3435eed27beb3876137144a819a434b17377cae4d61a9946dc7aa4c8c5f69424b7fa3b4178e59acf7d0ebedda2b2382934ff2bf04d25f8836961b991498e40c923ba934e90846e34274973110f5dcea8999ce5db02828d880d517566e27765910506ba9039822e20ce4c0e3bead55dcef8a45c739b2989ecbcc60841813378ff310264292c8ca19905b3eba167bd7fd12048e7b560a979874c0c23876e1f11f7c8c80b66e63a8e7750c25dd31f7f95c13f47eaf63392a40600f7e4b83e6373ba3d49ac7f0d15f13415f01e4b09362c428805fe24f7857e5c5f4cd9a1b632b3e6a777c92d233dbce69df0c04c34d319df5c89e9c8d6959345cbba509f98a2c503a7190a0f514b4dfb15408ece193936f0081e31234f62ce08f32ae2b1ae0a401d0b4307f3c8f91366076496da8c9b5f037c34a1edad2d12134b26e812e06fd986ea0bd52f557151c5bd8afbec6b2948513f37e147c2d6876356c5b63b94fc203cf3ae5321ac1dd69ab4522378fd752ece732ed237940e4fa249e3a4422ea982678a8e1727e54e15af84de6bbc33bf8b15f0277d1795f47c178710e1cc311863440289dc11f6c636497bb91f66efa20ec888bdd8bc8be18e3a8ad25e4fe3b7deb99579bd8a07515a2d73d37ec7d29aa5946795d93049c46112380b554bfe8c6710d904929d1cdb6790e6aa3dfc90363a85eadb53f04709fad1db71cfae3f00378d3d10c9def2822f088c1a288e0e5b6d38085ef9d7f9e12f3bad777d371516a887126b0c077ba858d086ed1e8e74ed4c21cf1dee45e8f208ace4dff16c3ac12ab6bfdc3f8c6b720161590a372ce16bf8851243c02f89ab20e855d69960c69cc1409967cdc0d732d95087ac0e7a3058e630ebe9e4ca664ae967321316610660119dae958c58e4881302784c458f299013fa046493421782c91076f281a913081108318cd90e185cb50aa6c2c705cb3c0030c78660183ebbf74914261a36c44b20a95e5f735479d5d8a57d7b56471ce06ed8ed45a69461792eeb17c92295ef60176b6f02206d04b9ba5860aa7e023233710833e7c5be7f2a0c02b166a4e38aa9a7c8f54554258921852ed70d5dd8f73c482adcc59d42c1e2cb40ba734726af2c200715726a9f0499c912250c3d55121d29456e7feca00f14bf2b8d43d9693e7d61e496ab9c8a8490c9d7f1c81016c946a29831ee057512fbb0b4f8bd80dfc540fa0f2448c1d812b618d9533fb2d8811fd086a359ba0f3fc8f8bf528f8889467922ac34fbb0bfa04158bb7473de95b727433eb4494f71fead063718bdaf51809953ab28acd9bf36f21e4955ef244b498480ec658133cb9c9141a4fac852d424611ca2e44d9c57257734d9d532058b35122bfe500fb56a2a73613703ecea75f662195af303ed36605107efddf864b87156e053fc4f874038cbad0ec2f959790b60d0e00266723026131ca78f6344b560a695249975d47c560c0f61c0abd87b091bbecad185d950346c2b5ea35c19bbc2fb96dbaa6c8f62ed0ea87116899f067a348cc14fe7a1e6d8090ddbaca5525ab348df138a749bd3bc65c4bcc38a4c19456e7c55169f38a23ea6f9b25046a1756e830ae9f3cf1365b9b06e18e050b194a196f0a4b9b6e07316201bd2da9765cf7c7d85533f03a82bf55768527852fe4f94376dcd19867fdc5f2a5b033050aa1efe6949e48146066600049714cdcad7cd335a062fb66989d9b4a2444334562f24381fbf4d862b392853e37a9bc13026e4a04098c71a4bed87454ba939a4631353925b4a5f45c6f7dd04df453609506d18bc135496dd80eb113bf08bb87a133b908f58feaae5bdfdf3c6fce20e3188d96c7c71c4480c89dccbe1c061dfbfa176382b69fe34335be04ca54de661ac8a1fca2f401604acd8144cea6de601c45753cc4f56dd6288f84afe37aa1b47fc4cb6a541983483f2bc25ee606e79c2bd92cc5a95a7abe2933c38d23cb143ccb5d889a0dd7e0f1ec4a30aca31d2804d39e4fb4752d7b531af46b33164f294a0a672924fba4e9e755383e7889930b96c11ee491da5712457553bedbe119083db9ed2c5a07f6f9a985f55ec65efbbaa6847f480aa3ad2aafec65c9e1fd03fc39381609622ba3e83902fd188c94a525e8d94a2bc4482f9766d45e87430c7f09e604a239649ea2a5e2ed370cf6bd2212cb0f8689eec04f82f01ada0fefb16cbcc1a29e3163bf1490ab082831d7956a070de03ec733b68131a42cb8ba8a14e601facb070332cea4c89ca9e1dbf42329a0c3af744889ec4f4ec942291953d20c2fb83607d570dfb41aba18fc51df894383b62e38a8aff0240d44075b50d0542b0a7e801732ac2b9e5ddea6139205898f4abeee62d9c6c054f742bf1a7e5ae0d8be2dd1be2d8c0ccc838f1ca484633d98de7b1ca6a025a3665206d195b169e5c46b719bf65fcf35216f7ddb78a826f493242948ce9b6a7eb96599adbe9d30210fae93f533990b17b87e92c435f8da3f483e77cde37d21e49cc197f0d878f3431e3612938945c744939805ee6c4184357fcf720241568ca108e03be2a1e279b376782229edd6b18d651f6c8e8e0ff248d67323ce2e071d7d5472cd3be6788cc81038e271299c6b28a3b59a49ed201876249463367fac230bff27f7d5b6e234aee8049b7b6fc0e898249f46ae7e2bac77336f3d8e3fb63ddc4657a751e799bd35b21eac31564b1efb91867e3c4dca1d2dfc8f430d81632b7e73895dc1c438b013a46de93eeb5d939a6a9602150741c73cd2e0928b837e313a074463b470096171ddbf68c916138d4e54b05d17b03d218c479c04109824d06b5a578648814b690fa683420d21db9d33ac9d63b9f7cef6dc83ee35fd6bf3cd7fac400cd15a3d28731ea2a5a06335ac471b45c3e7e553c5929f4d4e0b852437f0dc18421df5a11ae6e57f829f1b8197175ddbfac1e1d77e1903fc22276a57ae08da0842a1b99a490f9d658df6dd9428711aca2d6074f7dc35125d088b0e1be4e15c905058fb4ed61e3d1cbf8cb90a20fa9c99033b9411cc3ea3db2bce80d0763a4ac3b12b9bd411fe70af6c0fff9e9841a61b490ef383f37dce1a3fd4a14340fc47d75d905c33e16ba21c9b6847ed3072c42a4377153c124954588d545055f884a7fbbbf4122ff0da4625e727a388e3224816b63b17558a008f91cf54b7cef5734da61d80ecf580812d93fb25099f4572230a7e4c107296ea0ff784903475c1e60d217bd45fded0310233151ef13a0b4204d7c28b410018866859fc5d486afd72176e1258882bf547a649ada5373cf9714737e540476a2d8391f5a2449616e75cd2ba0b6420940524be37c171727b53354b62454485a6b7daa24e0d0b33c4015d8b08c88b509f76f335355d0f268e3bc1cc418e27aaa00579ceea5aa551188ba8eaf148aec16acbd692f66a74e51c3add3871580485a12d49fc5c580dde540c85e71e3e23e50628b874d39c21dc0627b6a9b063a2a3a6eaed93b8d7c4ff1c3918155625de96d8496db91597a82710b7a7288c1402c9a49113b901a11717ac083b9ffdc0db644fcde1b769eca712522aa94e2204791658578bf308971c5a727c831d806de8186356121fb5340092d38125c9fff1e0e347caa2a73aef2e986bf0bb4a1fdd8a0bd9c9e766559a0f96e52262650dfbadc746ce43ad270c4e33c085dc2363fa87bf50a96f403f653ed634684a318d545c1d9f008a70f81e539a9cc5769c27cd935e00794acc504bef456205a64831ca1b9aa35f50dad29f9374a541b85a0af64d1d0ba99252aa70256d259d203eacde2098fc804c00e9e8f1130866e75a06d6ed7b33a38b9fffb595a326ecbfcde1407ebbc2924d34f67d580d92004c23f934a3948dc93a3b9f36521bb5cb1e49751379476c8c83e162260a5aae5485a2826106f929979c048ab288999aa8ce5cd1426adff1998e55dcf14405084255ef738ae2c735090c8ece40c6ce37d54a98e0ce2521a02d95af7232611d70e85c1ca5150f34ecb382aaf2f2b240c95788e84afa721a323509cdbae96c98cfd9c1b04901e0f2af9726ab9203c3588c9c993682c40144e56546d4e18995f6e8d1b3466aa84b5f252552b9b11ba4d7b0478308bdd78891d71fab751bf5c87fec6f4f8e2f6d86034acb2371ad23dc5eecbf79480fdcf6ea83602828c99990ae514a53a8bb81490ef7888ed6fc80350c0a09286e7f0c0019589f0b06525e67e0c19331cea6e8a436c490e767d7e17fcee340214e7c074c35f5efa6b87f3f7a0655b79d6056589d2c63dc24e56210ed4cc924bf10e60374251a97188b2fa17dc07f146742c88b241a527aec26e7e2d9ac1e724ee9f062be1f09a404430b5b6238ed5754a0b81bf21b70249adab0a10e02f2f4358f624b45a8952c2a274dcc3de7ab1105f3fc4ceb3b2a3e106e4366f1158fd61743eb505a0218788a6d03aa82100a92bf90d0a4de0e10af47fc38d2f556c3ac4ab590c7a81a9e4002405f5c49304e87c6f3ba6b23f31ff2b1e32f353e76633b773ddb1e0aca8457a1f9f469f757c9fd18a5e3d44f43654d959d4d558a246a20d50f489a9db762fc65499dd90b726a1d6476f8e574ae22a633c3548964038f3f601ee63ee823a008506c40563265e25702603ce5411fa1f6efcbb5939e53635ede61edf0dbacb8864a81208e4bb113b05601e85a879cd13c2c46d760ef651e209cb255cb49c5c7d723ed7295c4a068ef3b15ad7f9ce428bba2c1cabfc331904db2dfd5830365208593a90ac581c853dd31fa2f3a2cb5270c2ade004ffe51f604cbdc926665448f35cb0b51ab320c51d62ed7c08817254f3d20910b080831ead4b2c8cff3e096c25513a1da0291a9cdf42e298153a112ed8e6bd5889e9fb73752e90ad33147961b9f53060a514e333d23becd27d0bfdd20bca07116f619ebb03807ad49b1406c29dc6d5ac603bdd257a4a1eccb28886fdbbb41485df76262c331af2f86fcf324e5091cfb165e85424d26a9b2585b1582e05a209b7bbb940eae8f952b4444ffdea31335cb931b5c4ccc4d9f905b38b6c9aaf9efae50a2add3d6a7081ad132d9afa025ad971f055b1baf832ab9b5972c647de7fb02335def420522e2bb00e8e10edfa08df6b5eee3f3e79d7db1273c9a3ca6b0da09c24fe5e0c51f790c46e926cdfcb5839928cd5562c546d62eb5fcc9191e246ab5d49269c8be4492c513f33aa0c14c72356de6010af8db4b883ded8f72f817cd9dff92c28ef92a86000f2069c37f12bbd157c10c008a9afb37b1b36fe29aa16cb473db2a90b67013fa4351dbd2f1f4c0689173e304bbe468b0bf1ea7f3f57ed10c2aa670f2392d31bc1adb773f95a375428d5ade5388bbdc9ccefb952acfc457fbb8fa1e30a4bbc33125d12c52add5e469ddc04b2f97329ffd63b61147de939e9d290209771dbf7d11fbf04147049def364d5a9e420da4d36eca5a47044f6094d28aa4aff791a9cde31ec32e55d7f8dfb6104a4f15521a4032f742a68c5d19baec06ce174d744b6fa3b97593710290376f85acc54f0218d66a4f7b866480cf2e172e5ab747dc7bda8925579a11945f8069c8cea4a99e5087670758594e706137c2215a90ff1c088b9af1aa6d1e899732edfe5e1e83363ee89f4024672a0adf48c7dbd5161233965ab9e26586dca95c9378d44f20bfcb08b91791e7d0a06b132f38020a99d3343053c22bd60bc386581c9f9d3e655586305ddd3e87dd6fbd8e0ff03ac774d41b8948b71defa8c958df53b8153113a4906d5827ed1ac4623778c4c48cc4bc51253fca7ccc374673a305389c88724fec126480c07373f2e82f1c01a4c4ee8b98c60c7f4bfc2d394c4e3928c249ad3532018423a43820c131b4b2a2889c31141ef910bf275da25b4d3fd1880179791e2f256ee02efbb7c81961d281349de7ce57146a8e4eb94705f7a9287fa132dca3e91c78d141e226b8d12828d7e784922775122944e555ed3e527b79a87faa8c81282111b9f66782f81fbf185fb4389d03a7038c751613f38c493edfb5799572de541f10a4eaa1d9b1930558533e04bd7843c563885aa053ffe7d822b382dd46bb6e60b357d23fa9dd6c1549fa72828f9e1daa7e3990031b1eeaf18da07d22dc5309a3ce98921531785c4713c65cd33f71fceb8a301125c1849e053d9bc06c235e1ef454d08388166187cacfa45ccb4753a9acb94df3d6a06c0570b34d933295f6998265e0c20109baf7ef73e8b94a8fcc7e30e2c62d92e4fa2e68934f773f6f8b8bec644f33f2ba4965c02617fe0ed574cb589471c76c29b04fc09ee175ba801ccbdbdae0cc8062bb7eb7d2cafe8893a1531c5fbfc8bfe204a17fa64893e48408228ef4a5c1293e18e65f9b92ec069b02bb96cdb7a3f28fdd243d16c4ca276a201ecb227adf30bee81641b8fb49c90540605d9b81f6d083a23629cd61b89a91d571a3f13ccd406e13a156b5f4de75ae6371e0ca9aa488c34b866767a5186210afc06e1ebfb261050e124c1d8b5de5cff2b68aa443c596a9e5bb7d51c5eb088bb7c0ddecd918d5c086083c3e7b1ece3a0616fe0383bc178a359412f10028fc19ca63388883709cbfe70ad834dfaffbae01ed06f01e14f5b1f91ffc76e3283b2d2cf0ce39aedd2a8434ff832098c327eb01ae9a9abbf34b6131870983df568b34ce958466b49f78bd22843d8b26052f144a5dfe71fed0e00fdb9185b8797e6e427625bde1b0fe62247089ab24bb207dc80926f579f69c4999f9f26d4b240bc6210fb154f6ea945600a601e40a6590184f0688db441c3ce3a218d6157667e902103f0e97b3fb3929f54142fe0a03922fe69edf63218b92168a2797adceb47d30329df2d338b9f9c463594a7a6d3b27fa3b289ae20bb6c63da23e235be7598a6fa8b49c700c621680fe21bc3bb90d0fe9bb4b6118f0aa2a5feb79587f4712c6ec1a484dbcb3444727fa8a62599bc157b281086cb6606e8ec58d394c21f2eaa74d43ccf1acbfbe548b8079dc8adadd5f9d3b301f90387dd72458820c42411282793aacf642dffcb510933a88180426dcc2b6821011cb11f131400c211abd607deccfdd5ccb3a82671549d5bf8a801f3d9e01625e67f66403e33b619434eacceef932e48214ece0c0b17c745fafb3561d3963700ce2307388ad7ff059676ac06a30ffad837e92c940e02a60120295125ddbb9beac39fb4d9c65f0edb540629a49ed896cf85cb6be9dff9426213256d655392fdd2b184ec7b7025049907ec20614a9ff686cb750ae4a5a9e729d0bf2380238bb8d85eedf308e3a7c27e7a8bb5a68b16053cf8ba475a6ac0fee6df509b35ec3278d97b8555eac7f5c924015298c0bce4777903e606d19d01ff1b1cbf7978bb4edb62ee92aac26023440f0c3886874e75bf987ea6d6c1e14b5aa0549b98f9a5e6adeb3aebec2fe97d8e00e2fd4ae180182e5eaf530265c6f4efd08bbbf159e6b366a12222332a576dc53dc8dc8a0b6121e16d3dadef9a509d0912aefec675d27901de159e55032238b3e8db2169ecd97ac5176a480be3ef86588432a93c20ba2fe84ac8163921cb7c4b132ccdb9dc37c0ff40548026e85cf490cf8458a0866a4fdb8892a55e9b682dbd1efb9d7da6cb912fcb43952195ab64ca4a941e2b306ce167ed1858b7a3c786ccadf96805e204aeb26b99807307cb96987dba7cf9c87ed0f14875afb6f1de8b5007806e8db4a97c5d398d2fe1aa3ede862e6f2d01836e4a15368fd5a7bbf3f6814e9db50b97067ab3d9a0b3c8fc00156ee9e538ae030b7571166d10e3a0939cc4b9d6ad3ec7f23c5f58c2e4730a9edb4b60c9a4e60d16f488d96b570c6b4d7b3b2d7d6820422fa7cb0e19413745d04061044269961b29ca90f4306018386c817893f0df1a06caeed19cbb3d25c7c38aa0141c407f8ac3458b559fb034dc6fdd4ba34410513474d1dcf95c49571e5e7e586c06bc75b677fb5a9e152bda205751e4fc40c70e0c575021975cb1a5f13de27339796ceb4538476ca468a6cd3bc2de0d5cf1b8c2c9bf7e781a94fd6ea6610a58d30d79a16f2f6bf668233d342fb205092b9b1156d1fb273f2e93144e4c14270fd22ce472fe3feb86e9c5cac193ba44219ecfe021e98cebb44ee0245b3d8e6b1e4695a400c64aeea9758d0f344573b9e0cdd183e92aa71520abfb819ba6ab5c0b57442f5a25e8d8b6c94f46a3bb398dbafaa51ab44d01c13283435d66d55faad44b4c7aeb310ac5652bc433f926513e37f63182d81941cbd97d82c2ea100310b3ad96aefc21df83699ceb9626daca711793df5533bfe5696d2b314d0b2d9c2414ce2657253c9fbf2e8309ffa0ba052eeaf4ad3b5fcd373c36fc3f80ab763bcf31008f48c0c6affdf22ffa502773d19a7648546861cc74607e5356841725c82ab67572e45364ddd0658796c3daca0b315f60ef7ec0da218a92c8a4884d166407f54dfff30119ae18b6fc433e0dc1842456f115ab11bb26735610dddee6085e53fef99ad45242a3bea6acd10aa25f041730b0eac1a83426e837e2e5085ca0ffa03d1715f5f6b4f37bc3e223bf1715d60971e964933b55997d39302e6dac12394012f586dd0df4ac46ad7243ff1c1a433aeb5c88fe448c2f65906698fe0e48afa67b7bc2502612525c4dbb2671ec0b06f908415acc55d05e4359dc1788d225808610bbc3728eb6a412abd94802e239d8208628f5a00010e25e8187ed48d960c89ece68af0528f518588a12a0d0239161db2f5502e3aa40aa2d57848a0db94c91ee5573a5e94f5a1368350c7bbf0b12fd8af59e124a4957b21ab2e9389622dad09e3bc08e43d7b0436085d036dc05bb614563993985bc7664725490586b6963c5088c3ba3e13572198e0854045b3c60f8bf122ede85d465fa0572a7dbe6f4229a73a746c1eecb294e011455b4cf93a4cf41cbb741961660eaa897597aa16f945ebfff24314f33dcdc2b6b2cb18cf5562037b0ccf2b521fcc9f661b01cbc72f31fd5933a5619fc3ff04e49fcc325ab722492990d68644ea9388bd138c0e4685151b3524af3b1c26904a5ae991c83e4a40c1294af2601219777163b38837e489b0e72d1214bd661b7ed4894a5dc7d223ee30f2ebca6f83e340c5516528aea5ba43e137df145d078dc048c95bcd6499b72e8323293ff91bbf87f70a00730b174205c9695b1862b9b0c37fef8898907fcd545cf1cd4852c91c5ccc29576b463cc9baf9c313f2dc6aa772e7ecaa4d3937c05544e7e0cd385091cc9f0d44da438b1931c507f5c77f323a1063c4aba26021c64cdf98aaf14d6994ed52925907d3fd69a0858b9f3ededfc1d9021baca03989e0bb2ed2785102ca499899f6a9a632a69fdf628a0c8510665329920d33131dad9d1ccfc5443f71d64fc9f2ed29b6e9dd7314872f79a30ca4105f99880d86ba8383c65f9b6b3fc7e00a4d9693506e7f6d94c0a5bdfdb7fd50fe2d2708dac38e25686d4cfa2898c80e1e9f4b8607cd5263b0d0cbac61c5d88a0f34369fda5bee3b78b04eeae178ca51a7f5d5883b23d2725e36d4881c0181287c4820d01cdb9f95c86919559dcd35ef8f90e8e4f33e6136845138c3a3f84f7b766b9e2af07ae879eb93ff743e4b6b386bd91969fc25ea30d31998648af99c0b274ece316589267f19917112242d31d14b33b4b8ec4e9122d327388fd54a34d0c99e550ac2b7b65fa7ff11643f4c1b535fa606af6c285e6b0ba1ab5cddacf944e291a7fa7dcf77d7b2fdf52e3f558d9e11ae8cb5bf889e33a09a3f48605faa8c630bbc258f821958f3563f901c5f1170042546f71af9d2ccbe2cff36c0f28066a99f1667037aa430c593c1236cb538904ee0434b04275247956111d485801d75098c841c744824639d56b221735755374b81970844e036efe0d11d4c2fee2099da26c04b363b086f9fa31d9fcb5520b60ecb76a303319c8a629c85108284124566f4fda2f41aeaa4b24569e1bcb8200dc07084431a247897dd289800a56bff364f271bd6062503cd0aa4be5dec2b35e74a01e20c192e01b46fd98085330511360623beeaf18397aa08b6e458694193887064360c03be8f5440f7f80182a5d6c430c9297c2b1ad6bf47e71240f4f7722926382611643991874934d3ea8d8b77dbf60134970e979c5435af8027bf34c4c85556df23175faafd3e004243d468a265eff6e1b8a46a4a1b3fa0d01621bac74da0e8888898ae79adba0e8a00476bce22ad2e688359176664fe3462934450d3853afdce38874db7a6fcdb240f0369dfcea76231e8cd879ed5cc8990f56196d6217602f886edae3d31e7d73d06a8e90e79021f19220935cfe4b56252464a1309bc9218267d8224f9d56f1993cf9b0bf3ed0848df91366df685728cca31264bf85545494ba8235f3e0c7d941a59c68b39e471230c5963494067381123e527f729188316e3a92fbde3423ae1d9fcd1ff82910ee5c5902e8c87aa52841cf44448c5e9686a16971778026d1e7aa0a98dcc8f801bc3dc194da250083581973fbefb459b0cd5b9726febd3128d42982cd36208c2b2720130e192ad6012dd89e669a61ab8815d044ff5970268434d31539af3d7cabe3efc4f406c93570e620dfb90308508203447d8a8f96eb369b48a180399922ffc94b59ec777815c42919a5731a640c6697e0704359652e033720830f8a240d3ad801bb60c235f99c31f904819ad0e4c19c921bbe804a6c9a272fec13f3ed8a51a601a9bc5bb67acfc9f9a8ee6caab33a2d4a3801662f799edd782cfd24f2851c5aec4d3faf3ee462f2b8874bd89d04d8e51bb053ca5ad84d34af8e79c0e086f921790687de45c7e452deac94349396620e599881b4ecc92c2c05bf08a0c56a30a34afb89efa1b5baa37c3bd35885565371cdc557c4b64095e60f83801dc8ad5d492fbca4ab5e0c3b36065779f844bbf84988abb3e720fe73f42ce620b472d4eb18a89790085934f3b3252e2f0a4fc5f5d578b9dff40c6abb9af0ce3d9214c6b1384acdcf983386bade1dce252ec913ae143dd557b352aed0a4457e3db4fe6d34296efb3b062805ab640a8770a1248646601fad75094caa59841401911ba180c13246f3c4b27234552e409d8499145b9f78684f4e184d3ca777df631b9113e6f77f84413e535a6fe6f4b87f021238961bec077cfcb364c52d417b60acf106a9a1332ef1e0f00091c2229d4172194eca6aaab103d97c510a3b23bce00449c0bc29f7c495a7926f1dcb149787cd93226570e7b5518689f8224851b6e15743047bcb3c41b0d4dbc790b8729fd8c63ba8a2f65e537f4e452e47e63b15ba95f53828eae6fd550039863485d3cd48b69f1f18ef21e718b4e7ab97c88df60f70c3fdf6aa491215a938dc9018f0608251ee20504beae515ce1764edc9db1f25c11f7f039d26a7f427805182fc6501cfd1447a80604be5ce42a34d0dd5961b9adc9df03cbfecc7ddd034798d4efbe98d89b91bd53990e95a6f39ad5191e29612f6f171ace2a74233cae892a0b191bc1c0c8fca5f82c34df557ae8ff1adfc25ce13ae59aab7caf3ab600285e08884f3a37be2514e01e88250653c09dcf506072e017511cc575f9dbb09f30eae5a9423c2104a9448c646248960b7aadb1b20f53261148a66f98eec1119df42986b9785c7f6d668cc74764e5db6059de6ae2c59a1759969300558fab37013f6a3d0f12294c6300038a11a5038a87ea0fe1a0dc3212566b102229a19e0eea38a74b87e5b1945bd45a64297611c43421e28680aa678605098659ac9968185f78436ac88780e0e1e27266251f976abd4f531c30352fd6ecf4212861cf3c7ca26098f440aae4462710ae710e48387f4e6e979cfb4e8213af9ae22763a266ae214e6fbcb4e642f37ae5fec67cccfcd43c620b590ed8e27a958943f3c671c78ef2b2ad29d31d47c89d74616caae9f696ccaa7b1e9cb5db427d4a265c6a305f485f0d5459202364e7cc2c7eab48dfa2cde7f3b0e7aa0d15fca0fd514b46c0abb9b020f38a5dc5f95ca91dacb50d9678d1b9625ea1ff1fa32459fe0af5881baaeb55b3b442f45e72dfaa3726f4cffe41530b381962f8538902e258e1dac354acc12a4ddc6bc1feba70fdbe02595f998ec90813ecd9a9016dcf6582cbb4eb5b1d0787776874c940027c3148c7b52195a3a6cfde1145575706d2a5600b8e9dd615626cf3a06fefdc47a4d04285ff954db99e5572e20dc47bf86ef9f712e908f051ecb8d192260d15d45d49efe49044aa15d1b8155d8a3f584527e6ea7d32bc84c7d5b0a7169853fe665dfd153055eefac5f67a5ede4a0d00632d83db2bcb9726546fac7cc8027e229ed5b93e0ee69b76e5405cadee56115c07dc15c1263e83aa31d61f148f41d17770e61a9845fffffd80a6069b722800819d48ef4818eff8f749c1ce9036c36edaf5a48115f686a3ae63653003b3afdf5ac0de4962920ba2f3ef9078c7017572fdc0d72062b51fe3001414762f8c7852fc561382e02e6a20fc72dd1c956fcadd594252882da1cbe8f3f61704e9dffc2fd04b83dff885a47268517aeaf4e7bb2a151330a85a835c2b313b988377546ce8a4fe7fdeb85efcaac8b1d445dfdadf89cae74d81b5dfec1acb5c6abbb1ae3934038cf0cb252cf7300e6a46d1d037662e5e763e4a1f920a1a1b128fb0ce5495068c8465ae608e91f5f8b433af6c6e3b96872e67834393c4f60ab0ef1d7a7c70f32a63dc12d1d036f48dfda1b2e35ac4a66e9dd905c3f828ccdb25e08c9d247cc58c750be8b3f836cda943de1597a7327ed55807c73b2f49ddf71e7b4b0274b2f0eb8ff45fc785857727ab495127e181f6e00daca698c1df06e4a5ca3ff5b1318f30146f2e5f3c515c1ca47c53eef9ae5ac0bfe141d7e8a6ce79a98a242ae07bd21a204bcb10cfcdf58f2f09b412ce9d9552382cdf41e8810525486b0c28c555cb432f88655b2c0363d411c01a51587d69c201d30c6d5c10a41cd40dc2f50981541c1e82998cbf1c67ec794b99d3cd6f561e020351b98351d298ac66dd094224c482f304a347309bf48cd37cb6f45050e06c2f500a1287729380720c25eaa892c2160b743b3468269060b5233dfa70ce60f9d68eb6f2b58d6e778009298daed2e8ebc98eb10944ea3787aba4431a06c446d177a28ceca3542bc31cb20d68ad41d8e66518a029a8005171ce2c52d7cbb5d95253957229147bb0a9d1efbcb4f4333cf4a3f539bd6b784a69e6b6aedbd12a1c0bdad5bc784d4113e941fac79346421e56fd43aa0e8dcdc981df8b2e2fdaf884a5cd5dcde94312e0d50d7323a84abf6d66e70270df7c851db003c75e50fe8e48c628c121c3975b1c6c99204c3d1bee98d0f89071aa62100eef21864b0e17469c0a646d86b00f0ec5ad90283c490fe89264e404b41c84466ed0ac203a41083054d0382d23ad2101eb1b40819838f7c1b5da17372f53c8d551158bdd0053d683558e8fe4adebde5ecd9360afd1d5aa09583230857b5d5348e76d43434831efe9adc0bba0557e690784f20116cff192cb6bc178fb4ae1e2ea0b023a1d309ca3975e418ec390c9b669a40a3130d4754df66c3d412034269c1ab4eafe5a322b97c6950025a9707daf305f87c9b2f894a189ac974fef123fd31ddef3c02786b10bfc3b232796233fcd72b6c7ff77b96b25cff4c84e448c322835d245fd09d3f7b06e9f400c1db5c2252b251bd605aabf5b67e67504f03853e40daf3cdb118ca0f061f45e9a1ccc4be0cd232d928456875804ce8af9f0b330eaadce6773c95b170d02547a08618cf5722deab616d4d7569f7bb822fcbd304382bcb619b7e720d9afbc43cf5646464d5167472991884140f266486c560126c73ccaf7c1f4081930192f85ab995505373cfac55d143689f4e608c40043601042fd814ce0315dd31b084824b528d95b7450e34b2b07d20ba2147d512d67008cee82ca9df0b0d131d05f05bd78d46c08858989d79e9d66f9a9a13eed56641033a3691cfc5fd017739d3d4daae04cfc6e769105db011d9a6a36ec39b14abdecdd278b4921fd8a65c8cf4976cc7ab5e687bf6f1216a753e18ebf4d41b20da5fb121986cdb534a259a3825e5a81c93917dabca3d70be23d06314e5d4629293ea45c5b7cc9cd4e719bf722383ad295ae93eab2406caddda902681802a01054a86a809179db45b4706a8b85bf20f3b14b37c2b6377ce0e998783aa46012cd42a5c206b56a2e78694ba06491ac97d7bebb177de3f5afccabfdbf629cd3375788a6513c905acac9fb282f9f9849d33235569e93ce280137c412b9ceccce14878bc9a9afbe1ae96734853907d88036da844542c6e2c78dfce316056645dddbc3905190b97247928eab26dbeead9cc1064ee35840d06fb753fd85252c5cff2aa73b6a2ce1c4f671bc90487a8d4021ee5af2b9abc9277c1a3f42327a2ef79fcd68bfb8b5c8de8f4a505dce10258a41548714ea8464e97981cae4ae0c6dd20e838132f12588e72fcf92836f4508e2abca58dd962835a268092cf79afb3f65193a5f4e4fa7ea81a1f0058ec521b508e8eba68a55643df572b935c5d819b47c57e4f99b0d4f5dd396aedd434b9c38760b1b570326b43fce8147a52435fe8c725c99308e41d1c2b324ac7ae298caefb3acf2c218b8fafaf51967fbbcefdbf62be5fb25a610957a45c5e324d10fc0a12a291a2926b95d6bff227c6c3ae16be07c2ac34f12b558b0bf305c1a66be106cae482c908bc2ea62026e1ed70b1c0591d8b1731b40085728821e6c8f5670f6a5359e0e1784b76c74f52e06780f53186bb5b2871a76958716cadb19dca2020779170ce32b650fc25960d23426cdd4569b79129bb3ec9acc96cc8988cd97de97f1f32cc8d0fac6e1556b7322b8c2d92620ffeaed027b588ed31880a36175ef8425983a92dc635cf4c67d7a0a4b68d3200581373e12147ffc9ac8005657a5594b898ef3d627e52fe9f012243837b89ac54e904ff6ed7dade909d5755831ac4d5731cccafcd6da29b07207dac16ee299b87edca1c7b84a38134dff7070e3a4e470418fb305f14c2fb895c4ef3fcbbe97f06bd4110ee92dd2c1dba456a86e926abd4ed635e3b7581549e4506cbaf83478d99330bafe250f9a41629614241ccad51e518e2260c2b72eb701612d4a170b051f2feacacc6a910e1ec32b94b6cd17eb32ff933be0c3c8449ac3e3ae5be3b6dcdfe3e5650705f95f12b1792c3fe65497932449f1037e78b046e860ce139b43386fcd616098054c2728c0775fc9cb856702f5703ae3aadf24d2381ac4848a07457609aa6f059bb717ecb364a14821d5801525730e84be5a6e10658d28a363a16009bd075cce4309d0a854249300e693cdd70a217335d87cdae655097611683b630bdf3c8f4ae9dfc738917b3abe486694366af6c3edef94b2333a144ffad1243b6275e122d78db0ecc58f733ec3bd50c99a6dcce362d463c507823e345c15d9095287c69355c5f3f72c82042fa745f3fd130bb1523b6a89a228e2df4e9bb44e5a7c680409ea1400997b27013d0f8f6c2466872be9500cae77eb96ca45a57974329965e24d314464462d555c84b76e207d7c9cbb29d9fff200f081914b18a1376dc131e520c40154b877b77d5d50aad1ca056563dd9ac45254d9ac7bc12c60736268a83894f9b3f945731d5c9a79b05e13eccbccf341bc07b6494871f47087148ea743473d06462d31098d484c54fbd9e2eca8611d49e5cd9855082ecaad610c59d8e5e1d987d125b508b6237cd2bc14da363816402d515d73f00a8a5208179b07bff2eb20ea3fb92a3e0c5a220b72e792b73ae9ccd271942b206204dded28aeb8f686d4d2a9e4457cb5ab6ae6e098dcfff2054a2db9787d16c04bb7cb78ee329cc12d22359cee3d241eec0aa28a94264d43c703890b6254a51644a410b62a2c8559f74ce3a030d3567a943e883bb82e5ce6730ab693b57740776fecd3420c55c9bc4434ce652daf6e51d2c4e806275467385a689b213c316ff8a9d18c424f662121bb1108b98c520d6622606b1118bd8c522f662271631108b98c540cc62eb033e001fa39bbbcdbef05b4105f7387e73d45c533f13f68ad384acbf8ee5b465f4ca90c6a72baf5e1ab6c4e27d8823fec2016103345304e8292c23d70dcb75042c9ad6704900f46bda272f0e51d61849c2e08197d43ed8fa005c847a54cec3bba437db9ae13d067b5413b185b4d27e6bf0b03300b50dfa99950b4d1206b958956e5eb1fb39a0be28f3c9b0072dd905c2a983a074595e8d742d0467c48040e1403a6118d2b4f00467843f8d6627382d62fa7bf761daec5ee2ddbcb48096f8d5886cdd9755106f1bb17fce2060d0a3c610430103bf86211e1d813d0900b8029859340877e428e01070c2d7018ca122b84d41305e80438e04c31e1d46180ac8b8350cf04804ed4910c257c0cca040b8a3c71087800204da35eaf9f854cf9c6895c883359ef684b4ebc8719b61014f95fb98cd7c94d46f2ff58fd44c9793ec80009cbc3dc1950527454cd64a11bf800c62e3594a64d9a38a7928f13fc4e1e0d632b554fa468f0b4d1ca40f24a628c7537b075dfff367eb5c01b5494718f528c90e3694e51edbe613c99029d6a824256aab7c25ae6f913b3cc56a3701972f7ca2fd5cca836606993769be643e48d78b20ad22dd6d27cf129ef89cd51036ecef5a9759d324047a7cd5cc0092db73ebe9571d4fce1fdbd29514ec5b2f2e6f6b86d2cbb4f54422a896105582523f72ebc4b7e437079384209fcf95e3fdba66bf2f3e1f4c5f38f14c526fb7bbc11f604090e2586e492f443e939d31a48f9004df4228831223b0c7905fde13a9988a9af8b1aba22c0c5906571592defeaf7ca22c99203635bd42592e4e950324ecd70c9705550042e05b1de2ec7af19e8e3a2ddac0d28fa340fc28f2062cb29012ad22885e7eff6362f256755efbe34e2a762655975ddf0e833396a43458a5286473acbb259a133c5ef52261798e0c0c214826d5b9d9e00b5e1e1cb06aecc5c4ff9af231501d4d5a827f5855301e1729f939c6d83c63e568f88a2cb75c46377634711fc5fbdcfd20769fae9cc9865c453a22ff72a1a4a54e80d6024f2d2efc86d7a0e6a733dd17257d6b53861e585b76bc5c442c112c3513509501a20816f26f42673130d65eacd561d960ed4a3ef58c27c73fe78e314f6ea9e1977cc6932674fcae16d1ae22f3e05fc5199aabf7c342d5f65721f2e840f8fda17ea8617127f2c3c12863868e561bf9c58129f7a77ae01c78abc49740abbbdf5c43ab3aa459fa7cc68f5e001a32d384201d8986696bd251a4239f7dde58dac8c8651eccbdc319c04c25f8e02551487f2a0d30bdb0543b7f40ee11a4a04dc5e1624d123be2e9a4efea72d6fec13740c7762bddcd4d1b7f602772df26cc78f3b5ad6111421b7dca04c18026ca8152c215f90181b8d04e33a55dbf306ce75f5874d1c486378a0612f49a2c0bc24d2b220ad7921c25144312252b1023ab989ee7a0185301a1c5db43dc098501e972fa8612a4be398f51c88fbd33806c36876b1967052d3c3533fe1516c3c8ca1cc5363e332af8ff4ee9900d49e94c668e717e18225c5ac57f3ee59dcfbfa6c640cee124bb824c3f911bbf066faf4047496eb2d00be42ebe859fe790aa1edde70f1a313e49195585eda0a55ae0857eb2185e1d48942ee58f663533e5a94613f58b3f968cd2fbf9a5c2a11aa2c7e915a0aa5e079d362152449fd35f30b0d3cbe9f301ec5c860c003b3d9b5687fc113b2ca467ec057a18d423e628fa353f810b5ebc6621d9c5f3c07d04680b5194b98fc666a8e1ed97085e6e67cd4eb4ad29c2ecadede2d27f903d3a00b74fd84a218f9c017efaa77ca4ef68d27e67b2f6ab66194c4ae84e585fe5cf313bc69306bb0af37c6d8d7be536a502260e40ced83258f301d3187095ab1cefe25542e6a0d088b3402ca09e56b5184d01ee2178e53b4833956e842cda7abcc047a94c6ce556c7d3402cf9e52a60d99bedab3381328152b02f20b3dcc220d848725f7d5ce86e59a495278db02010e540a3e2efa8f120783bf84ec5b11457233fea24b1903cb1df635778af8ab6566b65d0746dd60790605007972120158157b0e835ea2cde733991eaac708f67839304a160cbf5a390639ad344e78301b2d1c7c75109c601901290b01b94b3acd14348c93a13bb7b7e1961404d195a806d5277444d21b8e8019d67a75cf274c0c2f5d03b9306cfea252d2ab235a4eae41cf0d7281d177236c04fb972af6cf134748fd794d8590e8648a023a1b4095609e879b68509e1ff28c97a36f14557201d21d1995be33c0bea9e26057478ac08e26a67b7993f513c53d1a7c0735ba3b9ccbb046d02de7120c7af32c13c38f391fc1ccb931ce1d5aa6d4d42bc61dc8f4c27a898fe199294f93eb45b82e0c9040df5e4df88b428f2da0b638836488f083465934e65b4740c126f8c5fc60479ce7cd8a5d8725e389901b7cabf2c427b4dcc239486d7550f9aaf8d1f9b444231ab92b261b9f492ccd95e03e7fa11b17481321b1e3c05e8511f11ad0e11866fa47f7c21fa8359e70ebfdf916e868941854921dad0c8666493ee13df0847bfc0a087a9fc40954eeaa7cbf9a7820ca34283ca02673869fc4f76523fd268142094a86d28731bf844db09479a1ef659eacc69da9d2bfb2638ff6b600c32dfee1db8d3cf82eb7b236325257a0bef615338979b2b780fc1360a530b314c23751b0c20cc2fa39f782991c4c0d2c61f6fe95d99c3758a1b0bdf22aac7c3fa63164789c1be6f2e4f383690f8f28c3df7207f0f507c80baccb085804ef909fea1bfc8731be937be88e1e686d776f386daa687ebec036911043ac9fb3b9d7307c9dd6e4816d84f9ab52806a2956b1ec345e3a93cb6f69548ddf2f312f5c8d749fe5c0e44efd85d19df92220c807217137c5b000061b06fd80c439193a68e27ed102435144191e15f2c456670a1b420570d8a80b3b8b25a1a86d3290c31b547425594d1215295a0190e0a826e4cb43a8a259d3334040e6d363195ad370c48ac4e770e3948038a11b832906af3272384142a66c08598c3f6c99af59a082a1cfd2190f0a18b6935efe2d73984f9b6b5a283754685e7f53b07b6c0c8aa2e0c0b1e84c833f39db134ffefce730a8103c11d302fcd361020fc3115e2b1efb9715d2c4311e6178d9e70239d538d8910eb3bc9e827a80060345199f575dde4c51aeba218b56eb743a2b76da0a3b8a580742f9097d5aaa8c1512d4d55fbfd73acea72f5cec7b3a955a975bf2045b55ba87f82c4f16d39c3856708c482a88f963b5bd88a302f89b4ee34513df9b30704fd478f90949d606aeb4c029357f7743e2d62d41ee670cbf1878eca7066a5592c0e04a5fcb25d41215efa44531233a82b3cba87273bb1390c010b90ddeae9c14b2cce6e9da9e49350a62c5246dc182ae911db08ff26018907b8fe0042ec5fca4a2d36b3ec599fa6a10a30009c045fda962dd8354171b63923c12de7fba2eb76e7085154f5f06995b6cef564e18487f7397c17c72be28675930c5ed8998bb642c531915142e5c2b60227163273291bf62f4ef6b3471c34065768fbf67595b64c9e3afe32fe143dbd53d04f25e4cf5d1c75bdf6898f67bedc73d870921ca1d3cfe0d3a18020b724d5bf396684de4ae8a020cf64c78a17707f8e93dd084ba5ccaf7d02090288ad2cc37546bf277976fcf7617d4171dc8e9a676827ad309dd0295512463379d5dcb05f9be3bb4f37cd53bec977f3db060ad48329da3d74cbcf863ad227e67de68e32ec1a1fe665596cc1efd46da138765130d45526176cb169066f3f624f0a7cb005b97a9cfb1d1d353d828eef346c264eb6fdaa7b25ccc376fb4cd1505dcfe76870745313e645bba9bc88a5b0b5eddf3d6c3af16a36e0bda420621dbee37223ac8712735c3a75ddc6b04f10f6e1f5df40123e5f281336b8c094e2099a76a66945c897571b92db6e65abde3b984bdca6e1a31022067b551ff7f07464516ee87272aaf53a84a0a81e3aaa75d7223e983198e43466c97df89ac10040ff09a5c503919061aa2d94382ed0b567b7df0d296d4f7782f120211da1892006d6485d6a960eb5cb36c3c8f469a17e4f812035f12710e75cb598b2eb1723bed286ea0b5002d1b373f0b76eed8d03164c8e5482a698fc5b1a1e692091d090f325ec16a7095b0c8bb8387b20467f6b6d366a2ea38830e4a742323d7133aa05971fb6965ce4609d06b264f126ea52edc91cbcfaf8b7517a9060228f1610cc203fdc5ff5076246637faa46649cf395abf599baf9c7e3982c6b1a030861f4f3f58663bb63958d34358766ef4436cc72bdfe96bc8a316a2a4576c0d24b9f0ffc4a7e9a0dd5f68d1fc12f8d36e56ac63f9fb1c111ade5d47adecd9aca261ffc51cca3467facee975316731f4415a300bc308b0df9883147327a4baa6c959499e4a57375694d7e78ee11c4b2ad82be65ffbfb9ae7152f4dc79dd41390869358314863cac608eb8f4242d61fae230644196bfd351d81759dbfe734b7f8902223f1001b6d8adc1e1a8f4edeb3c804e5cc78cb1a975c7c8ea4566fe3b96b1d6bf3864e20e8521e7ca079e4f7a6fb4271f1da35dd94be1c1782998186cc7a2de703caaf2b5a08cd96c7f9869a31c029e297be05d14ffe05979e9007a673bed4facf74ff24cde374175abc96d66246c983ee98324f2683c92eb29b9b7c71869c276f46987d9c1268e25791318b0082425ef1bea2bed465d1ef4f45f4d2eba8556974f4137cc77b15e9760972bd164485addd2d64526b2ea6a6ad20d88d74788e71ba3503c44944dd76838d45b9659014ab9cd26342e62efe9872bd1ff0da197a5e0487fd30e5f4f0143d8bca6623ec834e868032e7db4a13004c3048c7d1940636528905987e81342c7ac5820382250840325cf835761bca29a61b30dd99019e88924167764b9bb040af84ff494869f9f64a08fdcad74fc12e76336db84b9dd0d48716007c02d598e4eb069b774c78205d3067b53d4652a4a2265936b2d9537bd78c32fc851a19d003a2fe658f0d95283bf0f3abda672cbdb57a109d2b3d736061cd9eea479fe6b299380fe23853a2ded01e55104a69dd81246dd5d3f47086c8b1282a1f2ad7a0c39ea0ef49c40ee9c65c3deee9a7e68b1489b94798e0b4dd614e1ac914afa41f0c494b02ccfcf3349ab9c865e6b87d068c72d26abe3197538a70d8a916d102c67f1320d2656796c7f0a12a14cd779131ebd119bdc4c18b217f574f560ad51994ce1cce38c394b2a3e7228aba73c253be21bfb3aab81d21d25eb357906486006e3a20e8769da248254ef8e2180056bcbe86b937d8f0b1ef6ac0cb5bebe747e278ceeda436107e67dcb672325162ffe1090307f792ba001a9e360c7d34b3b7cfd4e1151b27334b1db3057dea4efd1f7e7ae4d2271cc6975ea611613e69c38d3416656636f712cd1bb87f9f83cd99241942546f39f0a97254d324b22b4597249c6eadd60131495b4bcb246c72aa362687ed58a57361be3169136457a533fb009ea22bb00b24daeaa6452188618d55fac98033b9e085ffbcca9646869cf827f888e89acd0a2ec8f19e998440577242bb99ee656bc6e32525383b916842e2ba3c57d02cae159ea9180d279e0ce6d69c6f3022eaa564f4e50cf24fd3a11e06bd86740c27f1ea1fe2b40875e90b551a3b2ef6359301bf7483f4f4d1e09f46d1aaf37b2e32c4ca5c3e6e4f116431750074023a81554f51ff5816e2ead40529275151b0467312fd3c6d9f7a23aff8bb29c65f126d20b4daf8bbfd583f589dbed3bb4e5319ae12b9d3ad890e304f399350f0408e9eb98dca1c06172f42089178b994eeb168902ab1d27815dbfa64f6151886fa006a7c877a48047ef32f3c05518cb7232c2d32b681187530137791ce4576ed17fff7d5a2066436ca2b30b12bd3be6260a74a7c4bdf3e4430100cac019b88b19449d907fe506e1a676a38c1b01cf0326e53d8a1dad5523b66b10758cfcc85c8e18e44131fa9d8fe52c26a6d917eb1fe24821e212a5ea2ed4d22134f0e4c06bbc95103e5de7d49fbb0e1007f8a06ea616903a29ce8492589519643992215c6485ecc99939b881c2783d477d74db03d1c490e64606a8d976341811a8b934afa1b3deaf1482aa097cc33be34b1cf7acbc1a828a9409d698f67f4655e63e05e657f36aafd13f50f614607ea6b9e4489d82077f4b266d532e280fb853cb11182fa491a11c6494270721fb26cc0e78f002c113d4261bffd87669cc08ddef298f8322e900fd356fb6a5256992542e3f18251ce8c09db1b4e1546c04090027501261c0f6e639aff54c365551257b2296c60dad60d0cbb67053e41d055b628b83ff946ca1e2e06de2346acad67b8b1f40e6e81a164740007db4cb5a0d46c4d97f26a66df04e49084ed61dd76a7e3b4a9ebdc877728f013606c60028c7b1e270f3e0d25aa66faaf9f0470f71c6d9b5f06842ea58b3a3fcf5c0c2446ea58951f60d901484d9462d56739c0987a490976f1410e00181faa891a6e9a5d9e9ed9c43b850ea024c86bde19c96916d4c7b01a4fce85c0e1a61a9b5d84b0302cac4f330199331d6afe5fbe295f526bda2684342dd6c7405ad2b9619d6492594e596918e55a4e32be18248c9eaf86494853b8e00c918b2ecb12ee930a211c8451cb6c5ae2574c7a51ffeebe3fd8c7712d4c21046a52ee54d0d02140c6574f85549b8dce878f64db107030f8c10fd4b9734c1754b677277632bd3457b4ad53309c3a2bd358f76d2dd3b8a2ef0b3715424c1f4f89475a4d46a5b2c885a5c1553492b43677515c6a9d87d4617d34cf9f6c6c846b6375931f8135278690c5c1b4535ea48c72ff1f633fbc221b88f48a391c59256fe23dc95ec44de65d764d2afe7a8d474ad8e512e1f75fe092e723273da4cfb275ec8dba5648d536d5fabeea3dfa0e6a379b70ea6500cb0615c3bfe26a51e93f4263d96bfbe98540a6039b18d2fa3bf34a73b107c1d17e42bdf9e8de244109ba09644317dec834591423c1186289df4097bdf01f2f8762a50f2890ffc7960d605bc15eef165729326f35ca4fd4acd9a515d4a464a461f4784d7db10b01bbce22d62b2946b4aa5305c2f0128d13e1b7039a712f41cff67f4f5e011433c631d2c0b482454c098295d721d406e4056fd77944f9405631ab6c8d445dac029038e4eb521fd24151ac684d33255d4c30ad313ab7647a9c01e6a8c69b0d2fd3ee08f56433a963c8acc395ea9a09ba290d51a31298c1602ea0dcca07e6ddb145271e2bb88ea9e2afd89d68e7a6e925ea374e100d3d4775dba56974bb6f4f4fc386ee25e730e7a3680812d462ed02965b723fe018270733c6d9f70a2cdd06bc8cf3c158cc9704b8aba6d80f9ec75d8d9d8f70afa0c5a23684dc8d52aedbf2662e832468d441cbb260cb2d8517c715a9170dec582f3eaf4516d9075d20679686faf3247a4591da4f7a7d2940105053230f5e0189139c216aad7b66088787a571fa8a0e2200980428726a938aa37a0bfbdb45f2d50ffe79dc2826cb7ce33f937b8dc1bfb7e6555d9d50654da22882cd223a2a822cd9dae001528570dd8d51ad4957b61b880d1ab0215766a5bcb29362f9a7b6345714b6ae8ef38d38f4bde81da6ce26d1e956754fef8baf7d87a84d32d2ab3eb8ae4e62f894db4e854b3ab594a616adaa09dd60bf1411c9eae119dbc0df441c9283751233dab69919f74324546ead0e1f70b1dad1e472d86152080862ef358a2e55365eaa89fc145a25aac3897d5547a66ceca54b733bf6a0acad5285a46801489af6d39993870067637fdb50d180b9563f7f44af7d4c09aa3d915e52ab48900094014ace7880eda64142b3e8f027affe9077d29735dd4db3a8c4a2ba27b3a125a146d0023b0d4560b48698c8f8854a44f627711adf822a70428ee8bc49c7a7d8b7cb8578d196daca68f2cec935fc55b8bfe1545f06cfce65c04af439986a6f4c23f45f37c9b4b81951d7d95ad2598fc263288b0d83c6edc3db535f82fdaa0841bcc1646fffee37e82b7c5dcdd6a0e30c1478645a4fbdc7f6cc8b962940c3283d205e2ad1e0597303ffe76853c9a99ac3f432580699ca113cd65a5023eb5f84a63f88feeab3dc8c65aa05d4f384c8af5103c852300cfcc81349dbd001ec64aacffb904d5fc5d0071bcd30ec86aabce97be62aef377485d4bcab1c1dcb0988593a76eea91a1bb7a47caa049d23c514148dfe98a9de869312a3d4db857c1057c34844df2a9284fb0978fb844102efc713d3a55b0e4a57e7687ca326f8deac6012669923628c958c168d2deb462fca0b0fb2a33bb920e5f1c02448541b9911ff6fe41726ce5f30c4be915ad6bcc029476ab017da0e8c6aa81075c9eb207720badc5b767bd460ed689c661ad6b7e2d752e968d09c07c8b4aba288112ffca687e5e07068b4be4f59d5ec35df29d3fc4e8075173ef6593c7cbef68322386241fd9d96bbd1e6fa7f2b056a93621fe39b6c114409d131467ace8375d76cb31970852f6aac4aeb051b1f6526748b1400fa5bc7c76ffa8ad7e8c8bad5534c287bba5818cc09ee81c53c395f028aa8a95ea807204c26199d1746fb915212fa30b44f2d2fdbe1297b7c286caa3137eaa967254da51ac5282336237a8556a22680351fd028804d66cbf6a3c13826d7cef6145e447280377b0d1e11babd2f084b5cacd797d45cc5aec9738b0bc029cddd0d6380d07f9964a63d8fe022d8d63b316dda1929d55503edc0b201ccc26f9bb4df1aa6374ccb13977548eb137d5ed1aefceac1d7e8d9a7f52233dc6378d9c6a36a8d00024bfdaef897835d58a5a42fe72c94040b1510708244b516882e25ba3206789a0f58e9d5e31c0dac04353be3655c69f009b93a5181d811f0d62e07f3147305c8bce6a5500606db7c796c5160212364ed81687530b914483dd8f2c69391a5a6d3cefff9d7f3daed654be81f68f49dd55d6b6194a44dce95a1f0beb89ccf863837b7da1bb77b87b6d41e72f75a5c6da49ea330c57ea76bfb1f7f237c115a207ae82211157776be06ab383589a5c945434372245cc92d0adfbdd0100763a48455b83e5130a5dfa4b25bdd3dc9d5be2e8ae49f041fa9bff4146c4cc9e836d31d05a83ea5876d3b5cafd18d09255b0a3e25d010b1e223cdeca52d6bef95afbef3312a92f97c759329e05305a27b321c66b168eb765a9260df1cf5454584a2a09bd0ede0c7eda96ad6814db37890e74110e61c926a7905d59e5b81ca6fa30cf919fdf73eea6870d3ee99ecd4c2cd5acc1fb8b4f86cb4eb56ac91a0bca0cec78f7316b767b23ba403ce79a04e594e1af3ef0ee031471f5eece37e61bcaa617f0127f6e4ccb586089c1624d71d0ff8057edd03e98f6da740fbc7f1396c910c1117ba2fac9a40c7c327d7adf6bc15dc38928b65c2581b6cedf4269318c0ad5ce527e2b4a73981635d116c272608d068945b88cf4300ccfa0262d51c542fc9d3d9da96f8058c07e617f4a7f0ffdd376a1de760b0c11d5a228a2565c38a8d7be9a985d2ddad660073d911306003990f1483b1733c2959109844abb2a98053341e1a78860f79688b9d3ec6ea89ecf2aa11e5cdc696a810f9cbf113e635b90888ad858b3010e83ae1735e6c265183d2b35e80a395ccdaa5d3cc61326672420da04cd233c4f8e923cbc0d81a69b5b7e0c0482cf95f628dce31675465f4b844f9b232ed4d65a816f7925ae6200cd4429e5d2269403a82e1c7f127c3bbbd91aa3a00fff24293a46f08cd5aff05e20eedde5135af5ce76e723847816287137d56b9552c44f6a284377e4082038cc32734ae33284a62a6f03d3a028b0fd1545dbe910b41a3c3737ca9d5c4751c6b3b950c8069edd6514f2a83f8854192e7eac245a9f4ae686646a487985905bbab34d650b326f670c62fcad0022c79518106c461f9dac41d7d8b38d13d62ee294bdb2f4dc206b02a481a5c18122f69973266f1b806165a875865d6d33456f39bb3f33159f20c521df7cd2cb50f84df5ea86d3b008c98e40dc714a050d00846b4fdc90ca4c76489ed49bf7a98a3eb80c9d598a7ad34f8cd8a015903f095a26417ac1c09806e224c2f9001844f8960f7aa5a80e7d028ef2ec63b09b20455bd87b45191d8a93b228842c9f9dd47e517e9e5c24632aa3a508237353a40699b77e0edf96e41c6ba76e54c30dbd68b117d7025ecf557916e45b90e6aa1724278b4fe45beb9cefadb6d649e3b073d659265e45848ed13e9cc1a5a17df5b2429b6622e9e1dc5c96cba665e50e14fdc462d38869ba607d5241001cccfff38e45f22549cebda5f4abe1ba6f7ac266064efd2730e13a7ac3914834e2bde130136a1b34602bb5f6471c203dd58736a0a59c96a63c6c5aa6b700d69f10f5ceff65f83552781ad5d269287a909d66c7073764eb8976426c856487fecf2d3e70a0a3a25d98eff7140ac36a5e37e03dfbbf21fef5c6261149e9ac939d7188a2abf5994ff0e0476950604d66673fe1e7dd07d66910d9443da65e0fd9d5f75135c57b2aaadc69e266a894f0b84371d42c3966af2752911505bce78d0e96efd29cc4e58e68b50197cbb29e4077cf5a0265090f6da59617b2a0f5510aa5fc4f09af09396f1cc5530f191c474080dffee0d895bf304095e1f177369972a43b0462dcac40455f254fa0d8f2a186a9c0ae0320aafe5bf8a061cab4c2ee713591ef4efa6075d07a376d3b02c09b16270a360422189d4057d36d39730d500e52a29a2399724538f80f4ede42fcfe9a98da892dfd6488843f4d8fe3cad80ed072e652031ce33c808046d2f3100ad7e946cc64a317a48820f5ab3c9b8aff3c9691a8326f9ff7a0659b07c163429e3db01827432b41a1eac3bb0e2122ccb7246dc1f28b9a6fb952b0b84e975ac5059a599733e8ebc5b1bac7414f6276201c4ef09c01584516c187be01f03c1db810e28fed5247af526c749dde0aaed286f2a6d1deddc7742291ef6534d31b121a33033ff079539b842697b4ed48d2482069244a8a461e994d08fff8b3816e3a40c79a521994c6499ea991bcd18e2b306f5bc97a07b5a18d6e93951c565cf6f1e765accdf5c9d061260bedb2b52aa0c4ee48248a5797e45847885c0637c2b54fa47261f5ed979551e4ad25a37c08a3f43e823fef0330681afc51c1c060fc3de387fb756d2f5a049e800a4be1dc5c80f910a37bce1f3185d3e2f7fffb08d60648976488768b9367f2a783cf478485a7eaa032634f33d818afb683ca71ad5ed4fe5eb14d8d5bf586bfa7c4213bab5b421e41dd51e16228e1e7df113f2b2ca7664e9972bd28c2bcaf9e45f6a9fbd2766cd53caf5f7d03b284b7f4285963cf89ee4a3c433752f912de2072f461db0f264a326007aace8f997d555378a88d7e820803aad8affea5c1b0d21de57c7dd07ea7ae37205dbb4c026c9d5052d6379795febabdc8f00d685b22045719592b8d867db9fb54078a1d577b0c711a60b3819f288f104fe3f36e060562e5c01f077c81669e01d6172891591e34a8f2822b9ca772f995e36f04bfc8f52212ea2fe9f7ef8d454d8e333ddd5a308645820a43d46d21f45a47f86987b54a3ef25cd5b9d60202d484873e5f70ab71c86a98a6833794bb93f460209ed772c0393ee3a635eb7535baf92ae0919c23d054fb32d497b153151a1093d7019aafef553a01fca6c75b60ce1941998a88c75a860cf481fb25b5da8fe4c3fdf08dc12a59b9d3f95de546d0540295ab83de1b4b9524d6a297afef166b0f93237223f6fa2ed477c3ae7900a949c04cf5ab1aef21c2f230493014cb1de174b141dccbc701be223b8db1390bcd9b427769fa117823a26254c2d32c1f68adc9c7bb1f72292a230522d4820bf350c67b3f3bb55875527040a15ced974330188e72b52ad3b3d38976b7a694fb5fdc400e86d9dcad7007e9513e45dbedbde9c146372eebffd7fd5faa0e974cd8513e57026ad1f8cb20d163d0953365fa8e7ba637291e15c96917dfaab1547beae084855df0305dc0b40e25540e2d1e78f59bfdaf7d62b810402888d80dbe02809e11712150218f845a78825a9a7f6d0b14fb26d8e10b5c156a22ff94a5be40aa7060aca627ba4208a739367c1973e7e75dc9f6717f7c7f8a6fe0543beaf0b88d0ec18d7502899aac8b4670d17bb5118f83bbc3cb77af6b714cc8b68bde9c8f6798ada73a2d509633f0860005c7232ad0b3a1dd89bd8645572a09be5a304479874391a2237b15abea0ee00cfd6045978ea1dff37e3fc9023e8626583ef8b703fade4be80c4a83e12f3d46ad3a11411611dcefc7e80df0a2178caf42ab32d27c7dbfa815aa38f2839e73b1b9c38222ac8b04c5c3f03a2c7a5d9fcb82a046a88fb1af524a1b333c27d0a0857ec03e2846e0db9e01b4d1bdc571d99508aadedcd375da3f43b572182380d9e88f5ce43e3993a6ea8512106a1c566be12e21e231978481c06f14933187d827eec28a1546538bbb8f712f38e1f35be7b724a73791626ddd468f35db584521ef84e3622a367b9a68562e09e14f49aac6c983faa4666d8b1e08edf0b8dcd9da7d6b31ac320e13bb3cb5cd946c21728b34c8a8e61919838ba8817b5d4e9a3990eabb10ba8193401dfbf09c7498a2f29fdc3881ab897c8ebedf5a100b257cdddd56f42cd5ec1aeb91b1c1cb451ba356c8d15fc8608701f5c80ed6f847caab58e4be2b1fc765df1a6136e697223a27e77e590c2f6e007a63fdb0af4c1b0133cf1529c0aa2013ecb964f83c8f3ea59782e6daebd23ef90279691593ba5bf9970255c15ef50e7ab56ed6495c8e5109a26ba318f71096a7f9c1b7e50c6b4ec71ffbdf441203ce6148c96bbd533480a3a272eadbbae9aab21fac27316148c008fa6453b167713260986af6e38a34eeac928ef0fe1a0e41c9a88788d5887bafdb11fe3e887dcc93f81b762b4027f32c8914501218745db32a14415da54906cdf43fb973c1fdc67769deb5597f556e7e8e4c7ee14ac5af0a658b0c0e61740930039e3784d76ce79e9b4825e50842bce1e71ae2b35399f29eac674b11c5e2402e5588495bd286048110d8216ed04d24acc827a5c2f4b3b220241472be1336f6934b19df2513866b64d8171031133b842ec6a104f5065f609d83372b187b1362450198b4fb12843bd839daddd431ff1592ce06bf9dd7007d4b46e6fd4305d890087665f24f21f885c2ef29a261ba68382d3d461cbec46e0174ee99a2fe8bafa18fb2a24c4e3fab8f8a2256ce1591c5a13b5e143116d1ba476bdda8d6c068421d840d1a5ed6fbc14d41646ed5ad9f8d5bdf57c507606fadd8ce0238a089f3248bb31be81c784cbb7dbb2fae1187d9ae60c4eca1b8e11216b0c9f3e84064c0b51dd5a8aa20c8dffaf1d8beb78cedd3c23606f061707c445750e904b50e33ccb5494da2b9da42c9e0703b0bc781d78060eec21d788535a3135f677a37e6005197e972139d6ffba39b6dc4fb86e0a59813e8633c370420f06f2db921f0383f4f25bb1bed0d0be122e00a2bce7c4358b1be6066c1b8ad6f523cc212fd44587a109efb6098cf49398dee407e2e105e04c63151b0fb6b6958269885189067bcbe447eb609e09fe72f7ff0c87e050149541f014b7fffc075b3c13c6e60726e330104b0307fe2be487b94552d41c482c02669c520b880d4123cbfa26b841a242d68c6b4afea4048e864d52db9de93bc95f14ce26c868559df1ff4cbcd5f987f528b58e67fa8937664356ca3b1230e4d816477a53ed803e51d6bc0a3460e2a5e6eddf1c067dd692cfcf2309ba213c4f9e93c5caae6a38ee76b31b8ece40c806e27198d13e31362a1f55b3f23b970a124c5c5bf75e1c43d5c4b2f83c40b056e6844b70d56205e55493af97c11b88792f844e00e4aaae1b469669abb0674af27349d5cfc45870a46bbeb62e17808002894948020c0ac6ebe7fdd345f5de1f1b70c4bb371ab1bd8eabd3ceaebfbdcb79fb4460869641342b6947b07e60da60d760d3546361e06bd32806c7c0c7a6510c1d08b4387fbc5d08b7241ef7cd9781c7ab7201bbfa2772bb2f12a7a4b3f36fe06bd25978dbfa1b7442f3764e35fe8e58e6cfc0b16a72221d185de1c19d8f81f9448e4917308d7d4d452457941cc6fdf3ee911dae7759226ffe2243d4967c9f7781d285c4c5444acba2752b0eaae8a5875719ab0eabe3062d545998255f7c68b55f7860a565d1b47298fd7a1cf79bc4ecc771eafe3e20cf85832413c5d9c8aff288ac5a9b84329859ca229b74121a76cfc86424eddfc06859cbaf1171467005ff1b8aac50b8be724b95c41e3f13aac1a8fd7f14179bcce0fab2e8cce1156dd151d20565d169d13b0eab6e804b1ea5e0709ab2e8e4e8b5577a5d304abae4a47285ec70956dd9dab3c5e67885537e7278fd779e2058d0ced3921c9fccca1961c0a3995f313bab3731515d55738386fe971161f5f21c0515c5ec39e06cf7396cc3c3e078abb7660d20311ab2e0c2958756b14b1ead268c2aa9b3262d58d3105ab6e7dcda082559787db1cd13c3ea70a565d98b73c3e07895597e5288fcfb18255f79e8a74688ed3eb4552ab8585424eb11c85c250c82998b7501e28e4140f979179ad3f9c068d1aef41003a7e0a39b5e33849acba3857b0eaeef0f81c16ab6e0f8fcff161d54d3d3ee787557726e708ab2e8c1c2056dd18392760d5a579e9f13941acba3aaf797c0e12565d1c97f1f89c16ab2e003ee3f1394db0eafa709bc7e708b1ea26f11e80c7e738c1aa0bc4733c3e6788553749f7201e9ff304abee690a0e8202416fe8a94900a80ff485152f9038158f83bea88253f13af4c5d18c41270c3a67e804a22d3dd016234ec5ef405b9ab4ec34c13efcbcc53e709588dc11ea553ffe54d42b534bbd2aaf2863ef09897df0e2cdc7621f3c947a51a7a2ef5464e36de80e929da09d13ec00d19d233b3f3b3e7487c5a993ef31c703a0f294a3bce530f5aaf870967a5100f84abd2d76ea95c1f19c7a533a7f512fcdca69bd3731f5e2b8b061958bc7bfa88255318f7f81c42afaf81756b0eac5e35f24b10ae6f1323facdae1f13241ac9a79acf5aad4cbd48b92390ff5b6e0e138f5caf4f055bda9d455f5d2c0f88d7a6f6eeac5b1512f0e9cc7cf13b06af5f819c42ad5e3271256dd78fc6cb1eae6f1738855368fa5db788d7a556a9c46bd281affa1de16334e807a657cd49baa798f7a6978d47b33807a715013c8c6b714b18a004d58f58311ab809882553e1edff262558fc7b720b16a008f47b158853a8fefa85765c775d48bd27101d4db82a75e199edb7a53f62ef5d2b0a8f786c55feac569512f0e7b5b8a76847aa7d5332a8a7380d7a037425c06b5f9f1494b3409cdaee894b17a006e7ea222c0fc4186cdaa5e7ad58b9e931a3d06f88d03ac6edcfc3b404c8e03b800a25ed55707f071c3c5010e204355af0b2da626314f6a12f38b7171950154f5e2fc86015437eea384d64bff19e045bd2f1e63801c01b88f1217f50271154ebd3e7ee3ab9bd7e8e9a981d3b3eac159dd47c94dbd2e5ea327a6e7e423c0717ef8ea363ccfc655bc9b1af751d2c3e3e1d9dc7836ea95790d0f002a365ecf69086183068fb708711f8480d9516f8ddb104287103478d4db7218213e2164d4a817467b4d6202a02631017098d7e8a951efcd69f4d4a0711f25b5de7a00f4c8d42bf3f754233e4a7c00c07d94c0d4bbe3356eead5711ab7d1326d2e4345c68d8d1b1bf751d2522fcc557e199e4a4b8fdff0b88dcfa053864ecfb6b98f920108a067c848699b9ac4a723801932bcd7fc98c1f283071c3f78ea95f1193fec8f9a1f2c3f70dc47898c7a79d0e6e4e1323c19f5dabcc69351731f253dd4dbc37178a97a53d7f1aa111f253874eea384877a792ec3a65efb9acf10404d62b23ca526317948b98f129bf9193633eea364877a77380f2cf5f2f0941496fb2829d53b80dbcc7a05f019dfe816a3de023c87a6de1841e4a07cdb3ee77d9414a05e9a0711e3393941dc47094a4d42abb7f4d9679a8466936c3c6d920e46bd28ddcacefcd6bd70c72b1d4abd2bdfe976eea364d6cb42a3a917c6776a123346bd3bf3a526d1d9243deb7539d724bae9a30446bd31fed23bf5d23ca77772eea38445bd2c3e5fcedf6a129a4de212444d62ae4c18282e3589ae54afcbb79a44b7dd47c94cbd3387c1d50be3283589cf1af15182b2721f25a87a5177a9d705881f08e0a3078f1d3a0620001e9b83ee3c0034e73ed09d0380e61c07dda949b8ebd09cba83434b5fd1ed2a3a7f83f26f68e936e8f61a749e06e5dbd052dd9941b7ba2383ceba5343b9eed0d0178f41e961d098cf50174fd117ef81d2f34063be03757119faa2ee20e1547ca5b4ee9cc6d49d13b08bbad38296ec0bcdb090812658615950cd093f59e08175a1bd820c10a1c1a26806822890c2605b284bf715159a84ab44220ff7149aa4ab4498873b0a4dd29548f370d547c949dd69712ad69d2638155d16babe5d7b94f30e611b48710b99d8600596e3eeac82da39ee369476682f4a6bc12aae48b0e5c78d39e3ec3a49ac822e1bbfc3ea95f71d211b777e6cdc01ba3b413b2d9f8f5916da8b93d4d153d1a9885537c6d0a909ab620cf50a070e70263e03d303363e8704367ea8579067c618b2112709d6c427354ed28ba3f8e2681ebd38b23940384934874584efe224d9c8d9f8a60a14df9d4c58b68b7026013570da6c1e9087e3b88b4205431c77b39bdf378453fc73aa3cc5c7df7fbedfc8faeac9f4930331fde437b2be373d4209af07b440be0f91f60469bbe9e404f3746c9ff5e4268d12d18e6a2122cf67862f75bfcfbf1001cf7296ba847678c8733f8fde933a44da01d0978fa32fdf214fcbb9ad7462f95461e12bf218c10007b0aa63f998be7a8fb0df4ff47e169ee84787487b623aa9f00c3f7a3a50ac42b1b00ae5a74b56adfc54ef107942511ffd4e58a80fcb39701e96aae474ba8aa902393de57cba4a2de274684dd74ea6d3e9ecf93855995213e01571aa4524c074363d479f5068bfd3576b7cdfb9d87da7ecab43a43d9d7eaa48486baa09f06a6754440258a50473a5ba7d6eb507a7688e207cfd0b9bd66e72aa84659d07260ca284953b881de50f2044c58e393176c581355bf8ae0d87c107463948420ba4c085229edb35c5f5d2cac408061270e10c965f54e0621abe78d87113ce4038137f5111c6cd7495b04194686692831ce420075a922abec82ca594ec830fbe35337c5723ba916516b1e354579b6b658013a21dcadcb611b992d1b51aa7e05477acf155a311a7da085a2e28dede06ca3eeb278516a3e421e0e365a38ed188cf7106ad4d112f43785c8d443dd35ba9bfd50622a2e3be7943705c85dc1db952358adacb10301ef54c47a20df294fec25588c8d3f5bf8e46a39e29d5fb6d0d642117345b8ee019128b6533fae2233bd797698b584921168d32a3cc3650770bf550c61d147af2a4f2d88f59a5c5243776c6b06e4cfb9d74768749ae35e497042e32e417ecf0457838a6922f251d423bac44e035adca2a44e4d92ed71963a4b06f9be13196485e86e0c31ca61289543059e2e221c227027326769ec003178f92ed4578a0ccf5866cdc4ee94099b0d0924fe5650a826785c965098d3597c150c642168ae0e2d9dac44518ca37d0c0152e9e0dbe509d8dafb31a51a5d9711c574bdd18f53aebba332c32d626ec063fdb5fd0d498d7b5beea5731cc3bd728ca4750ef63188661f78ed523a014ec2d02a560bb2681391fe157af62abf56abd5a2fd456e21f3ec240fc53f4f3c3473cef30948f68a81ae7fc3ed4bd6714088a32100a05f3f806a49c750053917f10990830150f439909cf70dce377ba7cd9b61cc2d3c925ca5b58e88823381b9fc7478668f4460d5a147ab9072c84162a443b71de7bf37478de8675ef67754857251c72b3551b1b1b7f582564b2411c58088b48a52658b7bcc1c73e5dd8c28b67889722b8c7071f879a73db32ac76c3e083f627f2c0dc870301e081a92fa6d3439e9fc8f362aa2f3027e2a775092530ff8980393dad449878420938e08139e4b90c435f4c873c3cf462aa42441e1612aab1c5a9be81dcc177e3cba667e2b19a0406c3babbbbbbdb0819cbdda65790c745c43166ca42502a6d25a24dc8542bd641744df2d397ce8c686068aa81fa5f7a3db5fe9c87567682675a0bdf9465f8b41bddd137b58ced63267a1360b17afb1957fba52f853e9b1985a2b03108bc03d9fa6eb325dc3461fd4126b0e83335c7659089ed89c5e0552282af23db8410ab342656fb350232b118c6bd74d3398c962a472f76d3f61cbd65376d8f42192d711c7b3fa0a9b43dc6161686efc696e5a1983ad4a10e3c313ff1c8290773b1431df5c8c11c5c3a7b3d1b08003686efb29012b88a2d3803756c005531898db19b01540de1c0c66d3babab10dfa6cc37e5ce43596b958538d331ca43a6214e096ddb2f0b61d9c6422c24c4425c762ea3b75f3a378f243fe781a92fd876ec3b5c546881cb6419b216dd6acc32d38b8feca69bb2ee3cba6ff39b1fbd6d8ab190aaab486016333dc668e7fcbeaea6639e0e53e6015104b3fd2c002f3eba88c5903eefd10b70c5040e50a8e10932d8785347a1c5d2f079bfa7a35028c8aa937bdea3a7c3eb1e7c9785567e7b19eaa01e3576229eaff069e1e30eb17366392129b10e3299300c65b13b4dd77e0a6168379cf176989a9e6ea2d02291d9d2b974a22874087b3cb8078941a9cfc10cb0a637ed86f9fd9e127ae59f39bfafbb4a4fa7a368ebd47254cb4fa856bf5eb1d52bc833bbd79cdfd7d5d8ca40f0e1d8702a3e73c277f987fe9fda4bf5a268fd9c5c612aca4ff4e4d99659ee47f010cc6a2f3d07a3280f68b3b7d06bfac9398e2ad1874358855524328b6d28376d1bc6fd2031b50298e5ea10cc6af51c0a7de957fad29585783223107b6f5c0f078bb257ea139be01bb1f43e6cc19ccf7c1818863911266e88b086221e983301898c4084253c5c9500e1381b5f162c219b6e91249ce5a05e713512cd0f15899e1149f1b5fc4622ed72e53726fb582252b7608f2d31a885c626a210a76a44d2425588a00e5b790da9590efb5be9b3d03bbf8b5aa137c66277cb3848ba6c778ea7f86efcd97e32a06b1288534750e4519e8399a2d408444f9751f8380a5fb49964244d409deff2976960651220d987c4130a84af7d34daf9413b4d120a1f07e5133e29c5b784af7fe3e5a314bce22e5f471d5f4da4133ee9924df8d845c431841c848c8d483825bb1c2c99f0753faf00ea0439590e823a3108662433ee4020fc4ca35128065626f190f0caabf231487210f375704ac7cc8f98a9a34c333a3365a94e582325d76b04bcc2f26d82e067f1c6a9117d1b902040704057118cf239aca5e5842054411505d091b89a3c308a9f97bd1f117270830624494593d941ecd00af98e9da90fbf831837cae5a1d7b3847b0962d1689b28759b983c452323a393daa379211a49297fba0ca7cfd11ca52331fd8baf5ecd4b0e62201b4f2749566a351a6da50a7be654392ea39b1249493cde919527252e136a0909090945a3afc656509095737e9f0ab0ef3332fa6e3a31d59793d2e938a9946a8419719aa675873cd1487eceef83a512d7bdf421ba97bc773fa943cc4dc9e945ccb2dc9d3b119308a7e4510e795e50aa1090a779f045564a5542f2c7a17047a943944a1d4625cbb2f7ee4478eff8dd97e87b27a2fbac4bf0bb8f962c77b271c99c714911dac946977ccc8e512399f862fd000545a389d547a3ee35857e36bbf6de1dcffc8eefee9336f5a925c70f221169d94963a6de4e0dbb7bb086efc7ee660f7010037aa65fa23d94e8993ed307f44c5fa33d9448763c42eaee5f1ec2096ad397f53ce98ea66efe9aeb7777777777f71719ebc7251d87a2503ffeccf97dad820fe5e41cc3c86d3afd041f8f5805dfa77b9f77aa2f5fe49b7a30a0a757dafb4af46abef928dd9135fba8398c2a3100ecc1aa8f4ff6ed3edcb568b13ef5e9a2bc97aff6c4faf23dbe080fc798d525940c318f7d89eed9b7faf29d5f8487ab4bcc63d7b6f387d8ce5d7df97e5287d088ccfaf2d51721f8d98988c7aec474ee44e5e7fc3e4964bbf753bd9aa5378a673b79dd9d4ad9cede7dbb8fcf8665b35fea0d9b3ed8b5fb649f2f51c80304a77ac6a43ed6efcbda835337f8e02f24f2e99066116e950c7050e67e4816bb90f8f94788c28218c38486b025412e280c4b89455cc7441c170f61bdf3641ea9a4c4222e2341cc760075222ab3410cb2159cd4b9241add9f8ab8a754958a051d556fcaa55e9b227ac60655af4d0aa5ded45bea3d4a25657ef54eec1c77841d754f8987f9280b6a6df12816f50c760fc33115b96c8c2e842a320a329aa7cf93a2a05e6147f3fb50a83f95b2b1c18e7ac5443d837dceef43a17eec08433a311949562731111331910d11b3ba088eac1e8249dd17be6c0f036141f66247b62fe5fbd8b11606070cc3902476592f2f91914a0b2590c58ed2f21c7cfa093b7a398947d1a857dd31945894b24517c74e1b3b53ea57fed5af57dae72cb5ac9cbb8f067b66d2204cb02a8684532d34da12f62548442f27b5c7545f4e9e9d641f827bb6d2402775888e88b651251f51039d9cc382580583823023ec8561737acfc16a38c2302cf380c5b4ac657a894aa1adcb4ee4149cc25a9ef29363471852afb425f2281bba999029c522937a55aab3aa54cea32b5fb264c9120dc330ef68c862c7b22516fb11268f2c9652e54b1a49238b5d2ee9d59cdf2797b04a48905807abf220273ab02ccbb16341584b47ca4f280f6853ce7129345a13853c2a746aa00396854e0db02c173bae55f0b9a09e835368b42a545a1616ce44dba312a8ad869dc39e7106db94f21c8ca508e18bf12952a867b06f72c862d73c212c4751f9510ebd202cf545a5e39e7209d42bafe5d8a513ac62397639d4ab52afb46319e632e71176e4512528dae3551f9fedd97d56aea1200f76d42b99d433d8e7545179c765ef3e44a67222debb2f513af7ec2a75086da52ee1bd4be2dd4495a49c8576ab572bc75a0ebd17214cdf3e8489e5444af545e5dc5b2a4b1dc2f4954ac4ab2f2af5450879ee44f4bbd76ef50c868261d8ab8dfa0843821d7b018605590c6bc2626f200c1bb218861171190a8661d8e386999edd47fb159cc230a4afc38e3cec68c38e78b44eb24e6a2761ef225661d8fc504fd9cc06fa2a0568b431a857a6638f401d5b71a857ae5e6dc7b048941df2bc0821af9d887e5697c8ded9fb4b68ac975885803cf1446f04b25877eda6fbf870cfeec5269cf22886d433d84dd839ec1df62c03b2d8b52cc862df5a167b49c862476c546311a7b05fecc8623c3ef2fd21654c64da0d0c384e86a008b161aadec6b3153e2d7c1093f0527234d2ddb1e39492c5cd30c8d7fa59c598b18a138b7a9450d483ed854ad8117760f0f5c00fc1aa582f9cc23624ea910423536036680904a7b8dfce26108c793a7a2061e37b7a38c53ba7df69e38ee9a56750c77be91ad4e15eaad7882ea317099b9ddb680ff7e0141f33c2b7f100e239f844279c512ad9d2f9269ac11917b099bd6c238c6cc2604de93b96b0d1721a8c6c92b0a6c441982a9dd33a8eded9713c88d8f8d75f256c2681f7e861f6744ca955097436abb37b619dd180833237a00cb8139dc0b13854f3b00708b78e57de7584d423e20cf8a3d2c2c2a804a7e28f883fd109263908ba102935240171078713031002752470040e6b71c49df81367c45fce117786380d20ee1461fae57823e24e0224007516d0ab2e1a11670cb100a843005813dfe3549bd82e6af108cffc1c7d174e07f023f482688b5db9dded7d588d88819d01ac228e00a6e2670a6c7ce682268458600202409d2802581377e2913823de0914d878a61b031c80d5cbcf8e653fb6b12a7ba65875a7a56161c2ec38d43567050eca30bcdda762610b19db38387218111591802a707a00811371448fa23ada821ea6823009ec107eb4d0fb615aaef7015605a6fa1bfd60aa65aa55be6e5ae61a8488659a4eb1ea368ea00b96638c5e944dc02ca3907eac84eb43990b99b06cfc91dd7eb2415213ee7708a73e77ccfa8e72676a035fa236875e101ed0424e75e788f4bb73517cd1ca38f478404e71bd3382d8ced0422ab8889da77195b043dad6bca64e4ed53c7a3a68d4fbd99a7a67d4989cc3c249e2d4657493468b1d815ec653ace273a569137c2c671f7c3f17196ea65b013b835e86e8def39e4a6406f5cc04ea99eec177719230a893811c0d4495cae3733890f381a81241cc2941cc494154ed3c3e87055195f3f89c1744158d4797b3d0979a64c3860d1b366cd8783174f362e8e6f066e8e6e6e6e6f0c68d1b376edcb871a852a9542a956ab55aad56abc3d5210e0e0e0e0e0ece2750af8408ea554faf0c70172e5cb870e12226262626c6c561cc392168eca13e3d06a03e4a6a2ec4fbc8d6a45ed538aa4935a926d5a49a54877a65a3d533f173be187a31f462e8c5908d5709f5cac69cdf8742fda994ead5ab9b39bf0f85fa53a95550af6e885645f1737e1f0af5a752737e1f0af5a752383fbdbab104c7d5ab1b3636a9d48f427ddfcf9cdf8742fd2e8e85c67822c612ae87b2e0e162d7435d78503c5c773db48587935d0f65e1e1b0ae87aef07059d743557838adeba1293cdcec7a280a0f57ea7ae8094f0d4dd273217a6a8c253d13fff1705cd7434f3c5cd7f550130fe7753dd4e3e14c5d0fed78b8afeba11c4f8da35ea984846a1c09d53812aa712454e348a8c691508da356af542fd5aba57ab554af96ead552bd5aaa57cbc6db30ead52a681564c3681564c3681564c3681564c3681564c3681564c3c8c6df00f56ab52aba015a15dd00ad8a6e8056453740aba21ba055d10d908dbf21ea15ce0fab5738ae9e89c7f9b9219af3fb50a83f95c271c5df58d2ab18a0be81d4ab96a29e89b7b149a57e14eafb628096ccf97d28d49f4add80c3576be8b48de48bf1ab12b2f19a6d241f8c5fd5cbc6d7d0cc36926fe6771564e3bbaba1986d245fea775564e36ba8b48de4ebe117e7c7c6635d0d6ddb483e1e7e715c36be86b26d24df0ebf3140365eeb6a68b48de493e1e6668ab18453f13514da120f77d2f5d08d8743e97ae8e4e152ba1eaaf1702a5d0fcd78b895ae87623c1c4bd743250fd7d2a1ba1eca3c9c4bd743230fe7c205d5c2e2e2c514a387421e2128e4413dda22d896c3a8d09621fa02a9eba12f907a261ef2d4742ab465a8e58996252d50b4b876680b9316224ec5d3a02d52702a5e081a796a28db1eda3c2f8eaaf820cf12dd0ff08bd35264697ce5384950a7e6f12d45bd629ef81623a8030475a28d479d8055321e0f4f4527357fd979cec7a9979dba83ed4ecd735a515a171b9f132494e3c48aa628c7470a1b9ff3b39353d352c4aa1836b60cf5eac551cfc4cf9696a196211b7fc487bd218755535373583849392c1a94c54f4550a766e5d76607676b2a4e5215be9baaa1a9a97100fa4204d7e70e79209cf141263780c2ba58c8e4062d7b831fcb4fd1406ffef2693c9e866be8d4c0c7a7515335b3e69fa7a3a6e6f37a401f5c65a54975e6e9e07711ca3605693b6958c5b5c66b0e3d1d3857d4a02ffc17e77bf485eba9e8d48467e27b0b5f0eabe2249d5e1fad327e719224ace13a3935cfcdaea32f44c013c1583fbe44777878f67a7e1c7a3f18bebb0c3aa31aa162b70a3965e343b560f2e124f50a888cd7a85820db6b7e8d50b140647cfb0c19db6b6e436f116b7319f4462b833f633bd75cd3f80f359ff4aad8a932afcdb7cf38d36b848add3ee3d0d321e3560685d686424b83decfcea853460d02b0bf1001fbf007bfc436f4465baaf4ce60d97819ba03bd31926c3c0ff4d20cd9f81ee8a539b2f1297a6b5a367e86de737b2627b63d3e6a3be2f90790781b709087bcd684d59ef1909f5538819dcfe6fc3ed4cac6c6f68d86862f48bc692a858f099bed2dc7b68deca04abeff4155c4a0f6437e1e63167793cd746a40f38028b2838d1548f679a63e8244ec4086442be3330d9c7c94f0c55134ffa564c0b82a3836580c6e8965dadc4a5ce7994edf094a8aca0a4b0bca85c54b0b17303136be20642cd7e45d0cca9669921267436754d8335c513ca2c20a8b9dabc2628f4716e38ab8a2f90d897a4fd0ae86c280f199cb3827e3e990516b7c3064c080716e87ce86cea8f18666bce67c6e6606cf98c1cfc139587677bff80eefee6e9d777777cc73dedddd38efeeeed5bbbb5b08a77a77770bb9f17777738b5542f8e6dddd57b04a888d7777b790951aefeeeeee6e213452de424ededddddd6d04ab84786feddddddd2dc32a21326cde4df320b10e56470360a77dc0d1c30e9165e6188c6373e6397807cad60700e0d8e9a1a94eaf500aed0b0a5f744ccc73625476c8a16c7528dbedc546b7968b3e4ea7b8a0d0c65018c37271f9ca056545d9e250b631cda94e3868a7cbe572dd78f95e284f97c9cd6ef1cd69b258365a4c6c6f5eaf570daf05d562c3e572b968a4746c354d6b9d7027d06a2c96772a31b7652e97cb25c366da50e6b2ceb845936934145a19d863f0d0d550189731f318b4ad6cf18aa710cd25125609517d7505afd8258fb84e606984d0bf38cddb88573c5fdf91a579376195909bdf38cdfb095e35ab67b04f286884b878cc69de40bcea19f4b52ccdfb08ab84b8fca50a5eb5cb6585eb0a57fb1ccdf80a11affa5564d4af179396db38cd594eb09e60416169ce2d9a338b57b2d5e29f1603b538e80a1aaf719ac72978255d5454215d56189d3ce5348f4b78255f3d837dba681e4fc02b6c22a1797c82e611c8fba9157f5a343f8257986b0a9a03c12bcc6584769af7609590ed3487fcfa706c502d686e67699ee215f692a9b9cd692e7995b17a063b8d8cc738cd539e0e1a7661d7f99d38ece257af36978b5f2e7eb95e16db5a2d568bd562596c63b55a2d57afe6ebe57ab95eaee972f5cbd52fd76cb5582d568bd5ead564b15a2d57afb4d7cbf572bdb0cb57af34974bbe5cf2e5922f56afb4568bd562b558ad5e69ac56abe5ea55f67ab95eae17f6c25eaed7cb62cf58bdca5adc42a13216cbb65a6fade25531eb21d5c337a4aa537370ea0e34f505e5e1b5bd362a78c5c30ecfc12fd8ae28b42a97ca455dae1b2f7ef3628717322f9e83b7966a6bd1ad45d38aa1b90b1a195a6328b42e28db1b14da1bca76636dac8db5b15e5eee425fc43ce675f372f1a279adcca82e605c7c0665fb42a175a16ce7caa49933a68d16fad2e2e53978ae4c9a396336df85850b5b1b6c276bb2266bb26ad0886941b5bc5eaf57ca09cc0a4b0adb1a6c3597cbe5caa68b14956b33b46ed5d6c96b7182f2937b946dc65663692c8da5b1b4eee5f4fdf49af1ea17bf368e8567faa6b1cd5c2e97cba6c6853bf68e7b0ece5abdda905a336ae562c8a81bd286b4217d1bd28e68bda12e7cf2b363aea8e7e48a62700d65cbf5d0cda07c19d47b8253d861d01a0f0a8b9d599f91c5ee1559ec93694ae76030c730fa92943ee372124fa14e9f9bb73883993a4e618f41a1854121639fa19053298abd07ec3c4061b1ef203364b1bfc05e9bb0d829c5fe208b3d063b4c3c62b11614f6cc0b761656580c4531ec2c5358ec2b77a2e038c1f9e88962f7dea1b8194df0f55988d4aa1069af376431ae08892d47d3458f37a8d3d5db01acc18e7943b0067b8fc11b3a01c54411e88083322c8e522f8d8545862ccaa135991ea4f44bc4a2a45805a43bcbe139169a42a12ca79b4e2c2867a92bcfd12841b897eab9f06d67390bb782625aa9283548e9b75bb9e9275a8394be72d351e89516e52bf4a2acd420a7e7e81c8c42a58d50b00a9e9b85aab0b4b7c3c55bc09a4bc4a67c1ee631ff3998226cca69026ccac52c0ccc29ea31d485c56368cb61e8edb129879e8b7a8b0cd9947a8d804516489014d32f3c6af18417fa838c6551e30fea043786c0f253e845a2ed03528e72161a2425252525a5526005e5a69f9c85aab0dc2b9d57be7214ea9dceb2424f47a1dd5574a45414944a8193af22e162b99fea4d414abfd276350857937840dec82c45a29e318242a18ca420a471a30f2cdf084ecff027479ee8ea9927b6f015d133dca367e4e51f30db88123dc34630a25ec1cb7374b160022b129bb3c1764e7addad6d745ed2d99534199b61b6b3b05e7e3c76fe3cc7158bbd513ec7da27cc642c27bb98868f0fdfb0a5c065df145f13d4cd075d9048e32ea1a4e560cc8674635869fb09fbdcae95b6f93ecdd3f9744de5b30a3e2c5ac8794424ba6cf964215957b2524c2a2d2b37345c94ddd8db42fdc2715be8d49db8a86a5fbd7332333333333333b30e7679f97a554411bd8a4344295556228cc844d4518dbdf795ac3874256b65e8c65ec92ac25aad168d8ccabdb14287d95ba4641dd1a357d28767b2a34af57e5af56abd6495a66d92d5d52ba160a957ba564a37cdd351250dcaf43002e809a378458b091f1d196ad2491249e7e9d8a0f7a33b7793463b27e7628aef7a875a9dd4a33f5fafe2d097ea95cbb348e452b9a8675e7ea74b8a4a853d233f1722ee123dc1f64824051721b1d9b329be264fd84c3a01a15111ade2add659fb0636fbe49564f54c86f2f908775a28cec83e3f5350a48f5c0285346a592489a44b0ee1ca20b05ab26e3bb1d5cb128a1fb3c8f4300208ea70348a57708b99f0d111a8c34350873b09ea2039793ad8c5fb713a9fa3b593ac6296e938d6c15220da994d16d5a57213be91bdc00dc80ca03cfbdecdeac9c2c9b4132dc4a9ec1b479570b790906d091545c9ba421c6aa1a199a1aef8ace87ebb8aeeb7a9e82d78cfde4ef02a12f14cf6ccfbed2ed88cd9de9e22d5e452a09810f513367b249a91e874e8ed60e1a1b3f1f1c9749a9387aee9e9256afa4653aed1b69b646525ccc7e4529d967232691aa432e533e59432270ccb2a1f3c7ba56fa5deb66ddbe2f6a9d5b96da517efc73637493ff6b1d97b38e1263d74278a721f25df490a2a967ee7519e8f5991a872a6eba8f649210f9632b72ebd742a3dc8c996ae452b85787e1fea9f2d3494b27dfe6ec75ac8c5f3b1d55b42793fe6bb2211eda95efe26599cca6ec2faa4858f7f20dbac7252e1bb9235af5d429b2db19984c266d2653326f34ba91775aaf7ac948d4c0f23809e308a57b498f0d191a1269d2491401db6da59a4cbaecc8d8b5895cd9f844815cf47094697ea550ba17c92a3273a39d5422a55c824a4d5146ea27c28188b67b25f16ab82449bf24ce8a64513240364b3df167c555cdd8772fae59b7ea58fcdee22e5a7b737b909a7dec9a22ab49064b590cc00843af3d95d5c4e4ee65699e18a0f96f33996438f07cbf92793772f4a6162554a8d491d17bb1374e1b829455182262c0c0ba32041926d8f47ca4fceb57732b10059394b0592f2931a9b58a12aa667f508145873c3f23b8874211c4e7508a7b22390222bfec4ac63ec1b952ccdfb308cea9846beef905392c7f71ccc3c58de7d7a3cbab7b4948e84346df3414e7656d43defc7a9542f3fe59df743e5f3f2579ea35beacb0f1d90953a55aaac40526a4ce2d40985b7937713f56abc8253d90d0e0ecb8f49fc8e7f9866a69bd28753d93bc9ac2336daeda92f65b31410fefccd24cbc75627a7b2cf0a5b36c6f29888453079800c703e9383345fe48990469fee3ab232009bf080ed48021b57d0c4fa4496ccc2076b929ff364e733607e1f6a26427916109c8245ccb2f045cba643e95d7a97ded7b228a9f0754224b3410d70879ff5b34796652446ea39fbfb56a2c4c2c76b803a48f0b3ac8960b34ba3afcffd36d0f47cf44b7d66035c4d3893fd6339a036603317fd23230771252a99461be551235d796405a7b2b3bcc287bd6386d459866433236f079760966d5be528bf44239cc15ae99cb6759d562f74699b76d6ceda659279a6d20adf6d249b3d49fb6d38d8eafdd0ce48ac826d4527b1e7835bab13a9374e6a96c6e2e6b020017845c32be01547f6240f656e64d1e4e3213919297c575a086b5a1e0621e31512497777f4b110c201aa0192e108e885efff8818b1e1e6897837f2f58cbcf4c02462e490c642d8041a5918bb571c1c167ae7ce49efd786f3badac3ddf6c8c63a02c90824596bc271271b9f3cc9589cf86e4f47bcf9a434c527f09b25ab5a07c6f682f021b1cb48296623a491916bb06540e45f7e90df2ebf7d7a363ee338eeb6cf6bb0464e49af0422bf3d7a3fb68ea50e7b73584d9b00944c2f1319b0cc6a4f0707895602e1971d46b01428c2b2f2c5870f56de07cbd54224a295f5c54763623052c2168ee00937858d5390e27483600883e01f68580521d71b7530963d3247ef07c38a44b47caeef41161f691fc29aec59d5aaa7a383cfa0ce1069bbb35093521e3b33a63110ec439af0c9c32027391f6b768d5537f3915dc3fec918c83790e959989d6990d30da2cff7f27cae138b110811720a429dec177b0cbe68b143acc220273b67f0c14397c5b07ab30f89d23216eda4b16d0f862441044036868549084118dad371bb02c98e1d883cffe031e4dc64c836b310f8ee67777c08b38a7df05956c8150c9c14be4b63251156dd688940ede4b2e8eb03c1a9c8052570e1c7f251ae842d24d95b4d3b6be728486064b34b09e5235cc5a0cd4217163128b6ac2c793fc458ae4dd8f8ba7336bee7600877501e7f3c1f7c6df37e58c2a29ce98d29e77a65846cd7eccc9a0e2c7bf27e50ab55860249b27ce7020d9b44a10257ef88323242f49cdfb7a38747a68387b623c88e1d3b22843076a1344b2fcba523cbd78cb426560bd2882c5f0bea555f636259430290168565cd08968b60f9f06a42b03c6b902674b5a1f9ab314bbdf3a7abe8a23883cfd12ed176f5cc12da578033a6e0d45050af609cf9ced7804ee7b7d0cabfd34d75e5b146554b2b81e5df18163ac1435c759044459aa86a0b3f037734a0388377b6c3d7a86aa1127778ae64329934968a0e53e988537cb54835ce4485f4926823121d2613d521e5922592c5c23013c5962cc9b22ceb4c5487a6699a896a424273ce394db4836e7b3a5e2f1642425ab224b2220b1275269ab2c568afd6b24b4c5487101662e2a1ada077006b385e0b82353547ac8a67d85a50dc8196e1cefced2bf41496b9cf81c923cf2ca6f3351f56796f2ba858aa06747b0a96b9fe6449967f42b520cb1d74a48520cb8fcd3fd5db58b07cee470bba3341d5c6734c5d9c1837b03cd8c891a7859294a2c964327d72ca74e8c59fc953e2e8d7334ddf3330e20a0400ff04fad0e77f2d3006aeb8b30c7e0f705592549e0393a70f9bfe7c3c7de899687bb49b9466f460e3351a1c3f93a76b09a98b4826ba48c45054e0628c593f6236fad8e1d90f3235befef476f4d9fba12f9f6554a63166ec5c2f10ec7d2a656c112cb68be3da0d68e078d8412db4a45d4438af231c249cb3523f380d243487be2528d7895245464251a8f58aaf78343fd4539068167d46471009fea46e834a7ddbe7fbe763c94108bd1fa22d75d164bbd11dd1f2f4aae7fc3e14ea4fa5dad5737e1f0af5c691737e43106908220d412424fe9cdf8742fda9943c62acc541bdc28c7a863fe7f7a15af1f5b2586b7e8c197150066463934afd28d49cdf8742fd291bdb3fd606d9f86de3634836f2b78dcf90c86ecc75b7d124d827ddc0112c56fff42acbfa27eb1f18675ca2db48446439c29a780e6aacc65cdec04199fbd2f2c1179f0d71d90b11d912d3d53398a47049cf6091873b25b18a93efae2ff17d2345784a97f5257ede48111e79eca7a45ebd44ec1fab57de8790f71e631d8223322feb0b578407c3e8a412081c4f495a8a2bc5c8ba52882a7c10be3b5b3c17c7de53d25c72618aebd4c288e8f34a3711209f5522ef192c096a09cac64b6940f8525c163b0b977c694ded091c94b93010462b234f84937f3f202b8396b4e60fa7da9424fe87de096465ac93d533f197c5110fb52fa873c40209eac018bb071f19e02ac2a8062be160a54b06acac800d72b27d27b592eb8b65e561d7d30bd6481647a7178b231655b04a1e1161863803e23895ef5349911d2f5bca9651de4a086b8c81dd98ec8ed816b8c8d9ca87ab4a623c9098d10deac80cc5c24cae346ae502514991a162440a4a4d4a04504e68502470f2c53899c07782f11d7132cd9c8298bc944988d7f5e051a0e378e88670a51db80a9436991212db7cb12531b53a95d0328abd6586ca2e60251623318049982622db052fd10c6bb0334abe23acf1b4de344ed29845c96db22327b9d811153f6f568ac7ce711a1313d5922356e1c95014283092d9d9c524c8c22b2c540293a4fe33e6e6f676a870aa5b7a5d6b7cd99b1f606fdf0894651d1da72666b9e6682d3b63dd1166fe61e6ee037c68e3841e057840db9507b48c5dc141997b7245407b59f86ce8c3b04f1e2b08e214d55ef66a2f3b35f069cf9cf8aef6b22fbbfd6aaf1d1c268fd5c9297972453870f150e69e78ce07f5ccd144fa3a49feb6b0127518552c7e3b179505edee42bda3a8e99c8ca1a7c350ee2e68e92de8ca5f28cb5ba86659d01311a7b6bbd013134e6d47d1938b53db6550afe64fcf6cdfa60c9262f8ae0cb2dbefc965b76b84f6b2dd4d41deb7cb2d63d25d0bc55aa86cd1ba9693eddcb64dd3f75fce0abb9d85c2965f919f3fdd48565ea5dec9fab1db49bd2dacdcfe9d68ecbad2d4c02783ac3c5f1994a3392b2c3f935000e943c891092eb231118b6c9bb6022dfc5868a1cdc2b9dfec18cc4ab0a68fd1ae74292bdc3e207d0975844858d34160873cbb4a4e417921a720fc578aad04c9e722c62760265ba9542a6d496d4529463e127f7ee2cf6be336fed9ee662ffff0112bace41715ac1a825f349fcc8d3f3f3ff148c70313ecf4d0c63fbd6a263c23df4d15f92323249338c8b0880583c4c2d7af0fa9a5943f52e5d9b3c79f7804ea40eb8233f27322a1b74fcef3d196b3f17d363eac59ed036be49cb7e97e696e5b73709bf127662a50a7bb94ef232c013612a08abb7cbbe20ecefb0a564661e36ec36d5ca95756b652c3edfded5d7715fab27d6efdd347b6666d3e5067bb7c1b81cd6a56bba051d021b0f2dca6a96ce7b696259b290a1318d919164661821fcbf18cb46178e692278d3e6825132b4d40d47590551cfc6cb65367e3e3e24ffc916dd034ed173362e5b55f39872aa8302a6ac2538af67670bba4d117af0c902ccbb47a65ac76b259115b9a5d022c5725a7388ebb3899cd44cd792a7c5148b450070c56bebbe7334c32e1148eabe7f7a150bfa4e2bbcd6a1f295c4c60e292524a29592c168bc562b17c5c1b365db27dc0f0dd1e926c4fe023afb0525ad171139e8265b80a2b2fa998f218bded81f6e154b338255dd375190a2c7cf2d5ae0f494aecc74aec88c54260a5e95a3713a8035b7eceef6b1ecdea151fe119f9134c245f132c963cff3412acbc8cfc6a386575fdb87a157fe08cfc9c50421c705e67e3f3bc20646cc7a957119c924f80040197659f583639149439b924de332aad201f2fdf4c9a08ea942e9b09565e1e61097085239100a54b167581e80a561e421985392f077ba39d13c3300e05659b1cf732bf5120dad24df4657ed24c4ea338130075e6e5150057edea22589575172e34326a43d119ac0c8365dbd121d276d22599c01a29930067a8e8c2168caa50249f60e56f13597921dd831c61517e4d520a17ab98109d529ef2eca77fb2fbce9e8eef3b9db0792e4be1d3fc69a6f048a1739ed3668ad6cd393714ed5bf61945098eac8c8551948089d5a228c1131c8ae3b8ee42970963951d0867749fddb743264be96c7c2c2f3f645ff9cab392a7a3e59c4ad772ced3d1f21a5f76964b17ab4c97a6b37ce51c4b17b31fb29b584c540a2bb7b3502198e999c9644af178645f39b742b76fe75aba8c5ee91282ed90b12619cbb574db7653bdd2b583ddaa74714a4ef1656f79e9924c54e6b72152d56442afab40523e24f60905655e660eb0d9ac570138d9b1d27ca9b267fadd80687ff1f159ed9fe532bad52b73b363d7a8b723476bb4480a95dd7783e359e61e8a3b1e9cc1cc373a59fe90953e3c1fdaa7e7fdd05e83445befa540113b04e3b21216042abbda0f323693c7e9d510379aa0a45859c1ca4fd9a2fb30d7d63ea8e0a0cccd47736530af43f50cf69d446be34351752c3009c7b281d3ca31ccc6e765d937bb13aa633b2ad350a886718a131aa1d7b272169514ed93e55c4aa7d2ad7841c8d8d34f4ecc473cee08dbc4cfc141da7247e3149cf28e9d08abba0894345d6ee3fb9298a63821c23c545786a24fcf93e9d4f6247a3c68dbef2792552c876741448907f40c8eaf4258c352a39117a205e02a4225a08e76ec012cf5a46925cfc4e28b2c94080ff110867d7e55a0ac78cae4e9e8ceb5741c5d129fb0d83d9894d499a80b85c5a28f08a50418be8b6384d338710a567daf625af1c52bd8c76865faedf888c54eba1577293b0a4f68eca465ef078ab783c539e55c54699927ff5a544ede8f95971f581ce5282cf884ba7ce5c4e5f32e2c942d6c14a3503b5ccec24259b054168f2b73aab470de0fed2a1509966f2f793f5258fee960515f7e98299f15c8c642514fa13d38859da240e1c0812f68848383c3a2bb11e5f168161616ed2df5f20f95b35424f8df73748ba76305e5f158a940be0f49a12857c14e19b0188ae94458753a762558f51d6b65d89d6cbf93893749d99561354e7050a69bcbe6799ee799ab987c1424da0993fa4326647b046d6cca76a55927df3739198ff8a85b1ead6047b60c4771878f613eb0d886c9eddf4fd30c7085311b2c866118947cd412c846d9b14d9a46b98aa32f7cf27d64b4c47ba9ebbc12e6953a93a95e1c5ed6655e128e3b3ab21812d66ab0989c47acaaa291a08e0ffe3cc2308cb551c8725e9b1a6f332b95b6996540599b863828d315017570704a9ee5e56a9bbd2ad51e70a6b908a8136dec01b1103f32c4233825ef85efe25879207e90f1017764e20c79f91e5007fb87fa52f236dc7cd97879192cd8f8a42369c1ca222c503336050eca7030acfcd52cbcdc49c519f217b39063139086364c6529f9962c4b452aa9d0823ad04ae628b3f0f5b16791c562b164608a06aab03363cf9a6f338c5b580958e528eefb1a7bbf6cb0db63b1ee298a41a15ab0d82ab429b08845351273ef1d5339155874daae428360580db2552c85de255c36e5e41f0bcb39245c6c12ef2de762f7712c2d261595abdc23ecc6e2303f1df2eaef0e79f5721731ab16c7fe32bb7abf7f2898937a51dfb1b3d85ca052eafd625a50c8331836b3712c29293589573de0b577e8512347784622ab67200d971b8940405ed7b85c6ee1bbf1655fb1d5331d877aa60f73efde3be62c0e798cb4f84ba31e73c863c4c55bc4542330d57bdf054579f5eb199416d5c8ec1994a37a06e52b2f94058570e6abb7c8900bbd44ee113787c52acba1e55aea65a9d8b9af505649a1a7a39c9cfe9d3058a415e99888454a32e50a1c9431920312dd07421bf01c380f8434a20dce8d1b97c889189150e3fa49ed08ac3211234ad8cf484f8445fdf76525226f8401515625fd6e2496188beb8ecb02acb3a8642cb6a549cd32854a00000000009314000038140e87c5a2d1702c4d5561fc14000e8ba64e7c589b674116a390510a10630800000000000000009b00007e13dac4679029cb46983e4aae9a8f055dec1659fa219bb11bd79b982b4e359a637e23e9f818b15ba9e0a57a63c4ed7c8e16809aa9fc7f84104fcbc26e5c77ae4419c014357f850475169081dd300005d7c253075f62450529fbde3e779ec572963df1c06eeda37d53b0db34c75619762975b2b8fdc39583ddb261dae428af4d9c434478e0eed2398725fd01675adadffc637ef8d71f289525f93fd80d8eedc4fa00d71f62beb6ca45076a4aba4c6f68c28bcf95cb4393d861cbbe6bac63419a8792b2e8582f51d8f98eccde021e4eb5d9439ef490134d5a9ca58bbf436074d6dcd557550c1a2064a1042d57038cb1390caf4c2ff920a4b18529b48a2363132f2e110aeb19e66a09b721590b6ab184aca1f0a0910117e31f9ab922096ce0d3b161ef8a7c761260509d5a0e3a99e1c5c82fcf09e1a742e70156713a374285d83e35583ec39b0e023676de441c3eee75a94d76492f4f218ea72954ea3fe23ba9ae019a91612e3ec4d94f2a49c0a4501ea888b3e7e8c79fe956f5ba12ce807689d23e5e3a0b6db85e4d1cb316ec6c4131793b94cb8ee8ef70f2180a60d30c2b8748c01008fefdb35f0df6a64683b0585896820e8e27504b21a4bd274c4eac937165c2fbde5ec7b61f6feda6dafd1268de61ddb531e2bafefb9737e5fde7feccad7fa64813a24d766d64b936d9fddeefdcdb2e7d59e15e47a25ba46feba6dde7fdb8cfded38f668168815090694509a2a476e57c664cde178af98b321aa92bb75f04c85c00b64090932b9bbd589e7de73a2af1f4b842af22936f91bf7365e84c4e663e198c9a3b57f9bd86947661aca88a37ab7e953a752eec9d105e7769e45f131918917b361fcee2b11066c9c8f211fef9afc19050d32dce8a3194b3cfbec38af1496225e14d90010419a0cae41dd12d349d1790524d8ef6e5291f45a12f5c2928d3c787c69acaa98feb6c16e75dd4269dac356f106d22edd46745391b423fb50ed5b019fe55f29785204996e0cab99cbec7ca8cd2d6e1f5e2da951a6bbec516701faacfb5332c634f263c16d207c959087d8c3978af8d7de8e7505dacf3f8406cd54c5333ec8b4c81e769107d8999a820ed6538ced579a62a7e8778019cacfcd00013d21d85264df1dee326b67db8f78413df0604afac29a5819268cb79c7a144f6c14a94dddf0de2e6a551ca90b452748b1ca4b7bee445f1333b19c79719954b5cf2116e410c4ec8590b7c658eceb8d63918206de471b8e252d044be1c229eebd133eca3aa465bf1bdcc34391215c172a049babe5df845ee1e90ce12bf0f460ffe042568051ff58969f3e445c73796456f410320da9fe40b389661fdbfb19f12af604ed89d831f3a90c11a8efa20e2728d80a5c465121e51aa3a5befe77e8c269552e7a083fa49ce436d32591b213b33f84d8409164caa246ef8110909cbd2071c6a6b744741b4aa95e02c24a954c62dc4ac3b104d6d0cd360264b0d32dce1030798db9f22ce31639458817dff53bc37a2904d34046090024def2d368591818f270aeb1b9c14ba1f3f54031383fc607ff5134b30086836b50589572cb5208082e0a0509a5790dde189deedfbd19e701a772a147f5bb8ee03188a9bea87ed383e2f343353aee4a1b6f771e001b5987187cc6d7ae0267b24f369b34580719680a809a2f3d49f4a5e09dcc2a790355ed29b7009932d8e3da9e90a79741718d199a4620c2eb9c26d4cd74d8b3d0a872444a9a95dd7933a2e87e0c836b9a5961a0173165ebfe7092cd4804ff771dd242eed8d883eed1ea2a7cc00acf794e7c1bd186c733dc153194f0896b91aaf8897cec23c8a234f095fda46641619665234d19f26140375ded1411a85afb100df4218f2709376a4d8f9aa5cba006a7494a0bc36358357b4648cc038e71f2d9706dd6d304d0146be6c184525f1113b9d2e59b8a539c65b4ad27110e1cad89681311754d274f53931947baecaa4eb6c0abe58e3a3e043218395bdc4f813a2c0eb3d407c723b99cacf19b9e859b60faec9561e1ecc62dfbb1df061002c8c6e53a131b6f1caa727683db7464d58f96548b018640e12239e68eb96dc20a005e69711bc4da1c5ce8082e77b69d2a2defcf97bdd76b1a8851bf7baa3656ab0ed8bd3f0c7d8365065886bff8472986addbc08038e8531925fbced5b4f4e353913cb4110f041486758069843c39be423be45a988c8b68dd1b52074e11b4be456347213468bce21aee5c5b65d4ce7d0f365b48010c5bd8c8eba7bc123e9b526d55830046ff17c5a58e39a5cf969ad16f2f495e4a679c8884a68c7a70bd1c439460e839eb5fcc182d7454d67cd3a606eb8ddfd107eb9dbef0f0d4a1eaefbb86f91053cb31a7da8d5a167bccc14bd580bb121b647497a1234a32eaa503428f402408e2bf34363f93eef6ecc25f33f01777e2a649ded35fc4cfd3e6a50b0c0d65595254875ad5148d3405958558897972990523c821a7051e9bdd60113b7714011363ea3edf16a9e284c07164ba436fbd4ab919d2af0b0709466c68c3ea4f70628734acef87fcbc65600a5162f280bc19d8466c657f1735f4d23518a84be12494468b14a385b2fbd538e1527ad7b369775a3d5c72160d41d91aa9b289e2aa689d4e022af1d1793de01008b3fa9ab7ab2906634b91b64ef16930a11f8c999a87b667f42e917b573d07d97a82bf3d2a866ed4a0ff7fcbcee9c5c08044463606b5482642f66180a24027d2e141d85ca38bea1476fe7b3c4314d70092358206f7521dbc31f420affc288b9d833ac6f66896339f9271192c8003ad610ac848fe59f047589a7426682037d719ed1838d6b48caa4075064d414d4014e94d4e0e4f83701d63a93b72764e378bb9c4252a279c335bde6374d79969720cbd87c0d21fa721a3a2da54b901dfb38db735de22eb6ca5c45f79cd46f6a2fed9634179c97bf792b92883546c10f33b89e3435997f868a3eaac69d69710191e2744c92e14f7d95078f9162ef42b142a53ac1d971506269621f1be4e947aac2357716ff53647f1142b6d0e9feeebfec92fd7eabd32911c209ce7133aa9d1084acafb0004eea1a5b7f8ff2f72cf4fa0074b356664945201a53a8ba6c1a99edbada72a5a95a9f2504886121615f5fb085376fa09121eb43555bcad456d55b87f498cd094a52018f8833f687602bb98c2dd4fb5a81f81bae7db9fad7c44735c1530a4daf20cceb7af10b63abfa2368208a09e9ca258bacac770dcaaba054c712f76ef1f6edd730b25210c82189e4d18e1e2e982bcccccfbee920806d6122feac147b38c60fde781a419f9e1d95f67df653befbf7218cc0e9678222424e8d31fdb23542dc06b99554889e130a1cb7621b572bbe01cea7ddef2afeb14345ff5133da6b8dbc32a9833a42cbb9244229bb46371aba5c891e6db6dfbf9b8182d241f2b2c48b341eac3906139a4239268b75af0493c7ba55c2c8b1dd9560f258f70a1869ac4b059414c35d19268b75af849362b9564248315d1560f258b74a3839b6ab12941cc35511228975af24305be6a2b0b0e80a150f3b367e98f6166fc1699836757f8dc095bd284b10ed5a29836a174a9bca84920cecfd681615c9aad8ebe2f97a33638154478ccdd37102bce5470054822f78401217665f7ac4bddc30211a0cdddac1cd7f76488d5b9f18259fb7505aa80e2ca9ef43909733884f642326cb48f45ca92b5cca3d70a5c557af6a824d0ba66f01e98a7ce4eeca0907647addfbf5f0bf136ac1a147e6f7d6492a100c6143abb56bfa07b819fb86cb06080805c2066d927f44effeaf71745583e76c87011b980a2d984e5b972bda6d6d0bcb4030b46dce6c34b1ac99a4dba90629df08b976bbcff12a6d312c4707a383a44166823f7156a118682eaba2d359fad64fbf5b58d4ddcbf096226bee95a89d1a5c59f01c5d3afedbccea3f809312802f3c541c9a422de0423f00f3de08f88aed92272e52a07332b7b46b20a1fa1052d056a3910ef3703af0f153d40942f6054be74a5f3e2e0bfcb0ffbeb0d1028e1d44d8c20594ee63035c6149abd330aad29f8c685d4c7ace05b6c9f96b76169472accc4a30b97a7f1f4134286b7cfcef8619407299d9ba52322f168ed81417866b791c644fb158f9bc77baaff90cd860062adaaf1f01f14db03c66e0fc7f2623fd7c19ccb73448c06ffd77456109684055cbd2b80aead730c3937946e7369902feb339e44e2db27a20794a1f95b62633a0fbcc922426200e946ef7546790babe7a2a349eda50508a00fc4ba70ea63d30f7b5e93410629280125a343ff8755591b67707d956392583c7ac304568e02de06143701bc79693b6edc93875d94e42bea27385d3b327b086d149b2aaea2522ac5f3a48ecc090a3fc18b38716627144b930abb8c23138d4c8f3fdf7271b5da33a1bde6c9992c82f7733b0e07b5bdc4908715187d3379285d8afe5ab3e61de3757c8201b471db1892d11620c97a38270e4aaaf3ca63da3fa73bcf1fa7c2cf7565dec57d28d0c453c51710f5499d88ab74f5a14dee73766bfa309c3b0db96dab70eef2e1c12017c6027aa023a5c831a43c4104bec3bbb1b36741044fd04b1c2799964454fef1d3170af6b244080009e59040a8d01743b31aac4e167ea9f68ab272cfae33d2f42ad417639b9763ce6ed0b2da4f3230fb49876159b445c936bf2c463983bde244825c3437e7a18006fb183b6179ac76d083f591ebaa72518a1fa5859727113050f3e7a45621a3542cae18f669b9fc203316bdfbf8e8129f4498d3f71d49aa60e60cbbeeba40b25ab534902164c50809fc7501eee436b445aa752b0404d5f7b7175fd7cadb49206c14bdd9d95daae61309b3c29e8470b876e93ee1b0e8edeecb894a1fe21f29b01fbb8a7d681d00836601cb80011d87768548cd2f67fd6eaeb0f8c8f52a9edf27c8031b3ef14d3719ef988674809478453e9be6c015b994385cf41ac4123e4a75edfef68ed058ade2a62b316a6d011ec31b85cf41a68cab81cc7150b04c9d22ca2cd9350366aaa795f3c65337bc99f052aa6b6f43bfd7a0f9660a83ae6c3983151eebfc311341fc631463cca734ed16cb609a2d73c5f2c9ce9655b14bbcd0a3b21701122599a4ce60810243a08541b5ad722c03d9520b68f8c3010b7dd9d88c192fe43cf1b853fce5bf4af1f91b54dbc26411ca94a71b043b394bc092e3c00739134402f1c61df8c3cbc0306cf1d679368d7005d083577d6509c2180a884762861c49f0096ad1893e3be114bf8542f3044a717c47a8a1b430484056641686a91c48f42e43c0db0a736f499356b71bd66d66fca5533a3092ecc8b5b8011717a1f60d0d52bd9014594907f4a954b5e0da21888239ebd6b5c1c38f59ba6f145f7d766432046b2cb33b86c1aa052f003f46777f0c556891ff5078226cfb54a5591b1cf391daef6ef8baac5792cf273f852c2f41d0db9d430bd33b628aa15399ddffbdeb013c2cd934e170250a49ee3b751f0ba730af69e30c77e43c3c62e13d8b8a5ea503f1deae4d85994c3ffd163b957a53fcb1fbe0ea977e660d7d1b48f38aa63f1e8c1888c90a822d365da3126bd28b95b3f41662b0077e567edf5e6ad0b3ac2c36d247d457680ecf511c1aea273c705a9dd426c8e05a010f60efa3e26d91601608c97f0ddea157f8762d88aae3007642c247f40d40342d93784f7c71a422070a0bca336718ac048243548498c6c6406b740a515f2bb892f561a006d05e8f7a2430e1fa95a0e09a04fa1ca33cb3fc7890e2cb6d35dada7065c5e6dcea97b302c4bef11b5fb738629fde38e46b4bd28867e583a1b59e877cb16dbed08af69274dbfed9c78368460a97ae9271e844516b4055c8764f27aba66925bc2122a2baba2af69f1ef7eb409c051c66415ef40011911067774d86c08750d39d5b6135877c822d2e5551353aa55789bb48318dbf24b907ad0a14fc47d79e58dd61d204b0c5680402e467c63ca49de2a66ae2a77a2d11481695e13c7dd7e7723af30c78d13c8237a884be40a49f2bd66cd47a24a1fddc26797a68a32d04efcf5833ee0433ed07e7daa0477b8e216c603ce2ba017c9e7237390403fcbf13b0d4306fa80a223b2eb9db08688f50fb04722a3166f122b01cdd073656e25f9f2f1cc58a546b4320d3af61f3c4721ca71e112029e241dd64e879b17e58247e0184a93f19ac1f1a3e81efe0da747d657c0b867114ffe615caf352e04b8a72af1622537201b6bbf0e86032caa8cadd410e1c4d7e4660ab1acb21daefbadc112d46f98eccf474f56fee0b805f962dcaa6735a1b5b154c4b71ea66416ef7d656e4d4c7b371ec98c0673ed874bc014c073adfe9a5e8e81d746e37d4f4df1acc561eaa3490a610569a1baeaa44d4c3a4ee93b40bc8e57d22141d75c2bb8da355394c05621f3fd4388606abeb80ca9cd3a1158c22135431476680865a9395e7bc32618f565a1afcf6d065d7bf583a82f00fcd27c966893e095da2a50bd31dbf6d109bc49ac188874c8eb873f1c7fe50d74755ccce0bc80c3f2f295cffa8bc29dbafbf5b37e47728256ac8e840371fb191711856b7186d11b321d5ea140298e1d6680ca4936eeae547a78090ffea56bb412e6c10dbdefc2770c31585101dbd1fb140b777b841e5d7d71e6b976bba55004b33dd8c1a09ed258b42610dd75dc411880ce17465f8e25b48135b38f162b3060b1e4f5aad49597ab944e75eacd6ae873cf05b68b7bd78205b4d95aae9f54b9fd7ba2e40741ae85f640c05aa967fa0ae73e6c3c6dfb3b40e8c32df1a5bd3ed8690a84f58fe736aa0fb4e8fa2f95ca2048e3e079f349ce03a877f98f038bffd31e9f5a439c37d564849ff7d04e7b8b3f5c652daa9e2610cc231c0c6afa57e8bae96a533d78e5e19e87b26c2b5154f252129fe2cd4459d2f951a15297de62abb1ce0673aa385d7edd0dc518c49c17304b9580ad516c1a97a8cabb962a549751128f15fb631615104b908c4bf6293c690e2481339de7c4878845f5c4a0da6f08d0cb8142d78433567b3c3525605cd0a720861bd430a010120147454117e5e75ef738adb135ee13e4b4b799d17daf88672203f543876f65056c73b1d5cf0d096aad2a03fe97e433d6d49810af86ff5e0b93b0b3db55e35af9b88bdc07a7e498c8d737cb6cfd05bcb25ab615a00ab0e8a91820a6cd6033a0a3629b9451d5d50c8ae1e2d8f5bd567d3d1f12ae7787f43d98f2805ae2f23d7d6d742800d5329b1cc7ac5051288b9f2716d7fa207c4c4a561d812934da3bc9cb3d8e24d3eb1f0cb02e12372d13e14578e3da4620093e4373b30cd2639dd4122e8d9e8dcedf6551a09bd1af8844d1b73b58238a1437e64859123022355fb966460a13d6fc6b473e21f0549d9a82e682ff82d8d2d74cbd09a69740d3ad3f8e4f0f63200124e7b34854aa7f0a4c1bb5eacbf30ab542fe9481fe0a6e9d76fb6ac84fc4c3f57211840072b981d57412727798e378815c7912d1a31e851379eb9f5cb1ad0343c990b5b0cd7123344bd0f355cc5e83fc544b7d2187a692d7cdd15974005c9a811b51f586f124c40b8fae059cc034c211d2aaf35afbc336088385a4333c192c8d60ba03c92f84efe4a67324a596f7fafd8c566d449fb296cc577fa654d8d2b010cbf2ed19c7d0f66071b7a3ee2dcac2654dc2a2d6ca2884910ccb6de759d8bbfc4bf4004c34f09e307768182c9b4327c6d31be0dcf1b8c0d923033869431cc09e3aa0b83c20f9789e2bfedda58eebdecb90a7a0364b760c837f9570503b7abbbc5557e7b8530f28748b1268c0a6ecba044c9eaee6de7fabd7d4d8c7b7db000b8eb68a8945620d88f138583dca3269ab87378b217b4751b1979e11170cde8d46b4c2df3fb7a5c4efd96a0acdcd1ea3eda2fc4b80060c87c1c5406d1f41accd702e8914080a68ccc8e1e02052937d75a877a737edb13be0b53917e6326d20720685450080629a0b9042c459f8f7b00c549c7219c96e01139ce3b790cf481b0e2763607940080b951eeeefd5bc344e2768bc8fc37296f5dc4f66496ea30b04b06f9715240073821952e428d7020005a04df8908ff23416d711c66b4e0627a0e221dfee3a9745c78a054caafcf10d1d8a8b2299f6ffe34853136e1843fe20e8499888c21dc01ef5626c3051244e24e281a713c334be0578247a32e2fee358dab1032131fcc418590d0235057a422a8ca0e54fbc2589a25df490ef04f7d5dfff6e0ce89a7579c7f0f6b15c282b18276f6214d80a9f480fab82f53fb357dce367b4010d2627181904e945016338558b1cacc9dda83bf570c2fa9d527b39c5d814b0a21d75366862c6316205c4e4d883d94e415ca184194889cf33f3ba6616becc2b120f3cce75599ad23838c0f1d22c1540d3db5e7fb1923fa65f7c13df51c253038c91e428ed1a6f9c2f6860d2b723fece56f5a8d3035fdf0fd24a5a4fe17ddf35a9ae839528cc7bffcf07c929e83fabb32c471665143b30e76d6d71086806dd0545b7753b93c57ec1dc7d834fc41ab111bffdb2715357c87411519c7fabad026bc338c8cfe16ad35dd695800337ed2433260c60ba45e97c5089cc5f100c1ceb2489c46a2b36ac8b60bc5550fc92b44da662497ee9ee724a2c8200a36036c0714f765283d74372bda9111b2afcc16cc472e9debb3eaf1f67d6f189c4763ca3f57a12758536671dba285d0899d26f05f21abffdc38dec15f9932c9d40c73e6afa1898c4a85eaaf88f520ba506e2b7f3e9490db51c609f23979caae808dbb49dabe243a502924f671aea9d1bef1e6edfde48b8887c3c42cefa476bc054f3fb638b3f134f810a13772b90ccb4412629c66a16785445175d6265296f222623aa44864379c2010e051780095030202d8e9d7c14723e6e4d90143ba5f0a3cddd4f2346830508b4fdbb8acd9d10c3a863d1bb49a59ccf3a0de1f755cd17a85225a2251c2fefdcce142973c6dfef37cea51dcdf18b5fa9da0db6e527c5e22659b597c4c6f3133b6cb5e2d8b588bd3e272454a34cb15834237a51ae1e85e171b1d9c6e9418f02587f6b230009407d81acf024174d3ba721dd63a2a2a847eceb81acbdb2147a5b3872756d32a886e1136546f0e2bf43724686edec3463886394743086597c066222037c461819d434de65188306fc9d0bbb0f7235e16b4166bc70fb3b57f04dbaf489828bd701af1c42086c8e3f137f05f46f9c12c8f891b52b2a98266c743aaee43f1374dcc041601323265c8a6a6b452be9092521878b4899adb54d8ea442f8ffe7849345124a7082e0d65229123693609d684855438ae9dfc7139958eeecb415fd86b8a007ee984e8c36333bbad4379a9ab1b5daca0fcb808a878848c72b8c7299b3adebb135e7a091b4a963a350a9e684dc89987241573e46eb6481394700521c5776999b3b009e44872d049ab53f754850e572d430b5c79f63f2127316078e3ef653f1b9098fb7d4d20fbc6fdd058cc5e301a8f891d6423c016d6b17cace8d016a28d7e99224b117a48799d51029823b7a0fb8203c40395ef233faf572b34462cb5f96b134bbe5695d873cd97e0c23baa5328febe0751b3d303b43cb853dc8cab86027232268e13c15dcc450dab3d832b464082eb41da9e4a30c2dd426c3858892e00f314931b4408ff90473e07ad2ea2c4d8c56804292c0b21bb14fae3388e0673559764b9e9d1ded67572d445d0919af9ebcf1e38460801e857c4b00425bdf4d7b17d644f90d16a470a5fce7f5290ed28a2c94d5646c38c6b81b578492860041d6cd58190e66b15d8b7ef48e9e1724e47161c7904b8a1f4491a19171216c97cec085e2e230dba5846ae023eec667e6e5f5ba8937dba5d136815d578d90db6c2eb3d69556fea0ff64c138afa84f45fbe6eb225bb84b1de84f6f5dbb2674e075b250858ea4aa9c9ba28e03571577948ca9085a02365083847f17409ae238c0285e6970557465d2d296d9feb3cf98f9efa2433637904c97e426dbc02ec1a3058a5aa120535ffd97de2af0898d538dd5c8be6a4e7eab12f7204288c0e01b684ad99617fe40f98dfa981db23c7e2c881147bebbdf466a2f0d67711bce9b054cdda757df2cb8518e745c86fe71ecdaaf0aa6caa95bd4d439bc09ccd77a634faac7bb66c345348a52922f707cf6712ceb3039c4342330657340286b1dedd224712f2b367631f7639786146d0eed7f063231026aa90d2a1610fdc1497aad027c531680ac69b7f246e30180256319b1530902031682d6fc4ee1d47ab563af9dfa0f05dbb91ccf2f1d6b95979b7708ab4a4975855636e0f2e10fc22b1fd0354029398871484330f307eaa378bf2baebace28d83041688af406c20342141f2cf6a5837f67273a5245a160550f51c9e088441f0b71f83182e608ec3de5b9b94fa7a6c17ceac5c09ee85d620a634f32476f867c73c32dcb29791b2e546bbb4df1184143da8e8535fe9d39c1f581333295e1ea08329d4d0b9d414cbd3dd2d1b61635cb7ed21cbba9ca527d322fe18a6e75682ccb8b23b01c3bc24a0fba32ba10a2e70eb0c546b6670bc7f94429898e9b9f8682416016e538c6266a99cc9a187d11b648e6756d73b9634c90f9933ec13f7c1a2e5c00d131a87f74630405de07f7113301be9110946351f345dd48daf149841e636e7ab9189dd54aa2d0482ab1433829dffda6e482facdcffad9ca9194f4a4746cad2552c052a9dc93528fddf7218712b57490515f4a23495c9a44d93a00c407aaa6e1825d342ae56201a16302d181fd8f2f1d2e03360a080b019118ef38b7f93a6ffee8ad601ca528dcc917b9f943b7a09fcbf96aae5316f0092cb06d10b3f037dcfcd193c45dea0f572a232d15866d5880ec1480b34e0dc49625534ae3ad62fda1d39dfef836bae908f3a5b12616d235a111eb0f6d564411efd41ebd55c241dd55f4f2d273a8bcaac0e6db01c4fc00362a50c55d4b5e68f5a37099dd0a26d03d39f9657d5d391ef3b7f3e5792f636e598f3c09847b51523f0ad432758d4a45c78ca775448020154b84f00828997187ddf65a1dfeb854c6428839f65cfe73f8e3621647f7e1d700d0d9afb95af5827366ff4f3524dbdfe4008d28932ce2173e690e94ce189657e55fd9fa03fca6928b124167a54d3db8c36abf8bb850725878029e0e1c3b7ff906651e24129255d5466db7dbe46806524f403056c2ad98e1eae37d56ec0fe9cefab19b89b2bfa0271ac675a7163bbffde8301d2a1406d64a3f2e142d8d16ef141077fc5ddcf6b591f15d557eb59ddf493f92358698c24afc66d28f32d592b34032afc49d9e0f6e4d25e454005a9f25f35a257886b7e667667b0e54dc612047bbf081b9141f281613cab707a8bcb21a140387aa376f149b94153d1383fa689faeb30cfa1eca7dad556789e2ead28f297b23e77a9a40c9d5e519cd4962dcde7dfe705f7fd57294ef60008c825d1d772339e411448af3c18a67ed2462ceed7c438a24ae69b8a0a7d3490aaab8e424d0c7a5e7daa1271d7168e62a12159970b4e52207a1a81f9bfc8a3e70416c4713ad19a1a3ab89510ab374bc46406cdeb04c977809c9f83863167a0d9f1c3fdcc8b7a45a348720c49a44a15967758d7ea71464b57afbd745a5cbb0273741015118c3cad730f3234aa445fe093c52eafa93ba88217c3a78caa89a2da32c6532d33171eb4a2d2085e0087291582399d4c892b98dc852aa7e1bd8c3cabcefe0b112227a0206e7ff976adbcc83a5e9d0a4c6d4cf57c078b7c3c28070776c3ba4c13b063671783e52e09203887f83d824b9aabcb9702738bc14ec4a7de3a3dcfbf63781170a61542fe27ed59a1c9d8c95f6e76db78f5d1fe111f13c1ff3bf795c93b39168aa1ffdee885b631b08aed39ca25aab4d28df3196a03c44c39e26b0ab22c6da3e460fb8a17c584f2d26f7cc467ddd1f9f5a8c0cd0e00adad6defddeebdf7a88b788db9053bf0b12fd1471205f8f5eaa929c6e0505d33731b93d329ce26ecf69937d2de10e98221ed96109ed2814ab862f9261a1ba185060441b61edb8302e949bb383a11812907cdb9015ecd403c0997c84afb304dfc0038538cce97c4506c5d6e0300432658012a471fffbc2c9395e5286d54f8afd7b014f2fac32514f33f0c8d7b9f6397b3da14bdbd35e1a3ff722a5eadc8780bfb112e8a313faa017ddd1412774a02bbad1813e74402f7aa3837ee8404ff44707bdd0818ee84617ba161d7674e00140c238fc9abca78d6e7e3eb6ed4803e6fc9a8f3ed0b97c5588373cf3c6f8356553a61762dbd51fe10fbe3bb43c397f88d482fedf95844cf51d493aa6d9185b669a94db12888d76af8ef7813599d788c57de3a2db093f6a4203fd12fa03bf6596737c97121fc181993766ba038ffff56b8c5cbbff98df307c3d4ac34e785280ef2d2b841da5dd3638f9a8d98bb0f56ecb7fb5e5a471c60a6b2a6ec09175ac74faa1232eb84a7fce40dce092ec1a902698e87eb6bb26a3c93aef85a9a506dce8902d77e2aaf3e16f43024a2fa8eb3ab73a873c7d7b348e201503215a755275c1dddcebfcb9488380eab72194231365acf3b67fca1c4321fed2c4139b7c61724fd6f96fa152092391bca14192b9b3642af3bc515963dd5ce75e73dea1d603dceb1c5699b713b70d6fac9146ba41df7280eb9c4a4ee403276d0d1697ce3a5663599db46464789d2bbb6ce955c1ef68ee74e2ef5d1e8f01a25adc9eb974c0eea3aae90837e63ac52672b85ab9d1f88bb6c78d7a03b75d73772f7ab3064873f3d2dcdcb112e445f9a4b6e605db0bf4969ba3e9118dd77cee496ba46589dad28dd97ee97b490cdcfb98934465aaa696f4b2495aea35ff095fc2e4e0b49905757d95608b6ef8bee9ae203c218e1b67e95de9d88727986d7a6392e6e272ede4a5ddb78f6bdedb4e75fc93b04daff8a6b944cf4f6b47fc710367bad61ba81dc420f62551c98a67d20eccf793b0af577ed3b0dce9890c3fe99e4ea33582e17bbd491ac6f83b71c5b5e684b0b3a69ec12de9d56f7afaa7498cc463cca5b721bd6092eefe2873a0a1aeba7dd9ecc0f9ed05dd5d1fffd66ed4be695f3f4da83b6b825611428fd6155717e80d11244d9d90e8dec9f5f4b9527c4ce9e0fdb3718cfcccd2b1eb96e23d00c4092645c3d8faa7904b938799397a8964ef373db52a90ab79964bb27e8aa2b3b637fbc78066b3147fecb929012af4f875d892b3246025f1f203ef504208ec4b785d2b39b5f4642c3588e8376c9522e60a4f26bca6e45a7674e46e3b2f879aba05625f670fe11b6d64894727186c1718b3b3c4ca59ee279ff1b5ee86931c3995dd1ae0ffec07d4de8faef2f1f28863e9245288ad80b2f3dc4027833ee906fc08948442ddd8e2bc752ded3b067928dd9c643e00abe208a96986224b1ba87b9de6b64a54209591863366829e867342b4a4cc97582bb0c1df53c88023e843921cbe3eca629c4b6da274f088ba95c618971317892a0ea27c1652748e461a4d939bb9bb42247cf52e2a3a244d8f493b084c8cb5e72e360e4955030f55940f9d9bf5b2378a160d111c658bc19b9b48bdf8371d9541503579f05f7d12bd8ac22a1eee864dc14032a83a7e143f6df52826ca36e048828da55716a15287d49ba6df75da55f80fe77bba112d73eaddfb17232fb4ad4b5a8672d38ac88201c3ba7eda7e3cc997b20564488daaa0962b698068b7fbb202d587a1939c73ef8d4aec82a4f30646780d18f0982b29e0b340c9f6ae1e9156afccd0112b4ffd7d4c180584c3cb3967943710f4c10a72288b54d83f0f6f7d94bdf696cd2d8937c52aa73f2a1463944f0cc7dec18160c6baa82e74ba013c7657bd982a52f0d384db3f9078019a9cc4c5e81f99538ed47a46c524ef709815873f461b72131de2ce0d15b23269eba7a750350ffdbed939a0682cf000ee7032c06a6fa61c43a48c87a6fb06160e6e36b6d41103275db05df998267e2e3756f983fb93925b4524bd7c41c08583be5c10c8ec6b96dd61920de97a03bb034c2c0ceb0360e295b2e7042f3752fb83673b9a605f0c74355d72ef0e707256bdaa1c404cec3ca20d218ca2dbfd7543f47680d359941c1bd9b08b11843eac69ba9ee075435407b0f130845fe066e79d11846e7a63c7417b2303c53549d0d5f803019693387d982c2539ef272de876032a0b7140ef12d7865ef581eeb2e74a1950624d7054a1ed7623bebdc903dfdb9d4d963bbc60a190ce93dc2c61fae9ca794ffa756e3742ad1007eef198d48380d55caa4b08bedee03407e901256219a7ed9141a953c02218d084c0edc1211b71ff1641b6dde89e6a5cf9e75e2e9a1782f25d214d70692fe286b998d6b76dca2eac487f5a8bc772901948a3c2c3a7ead4c703c8cfd70dbf2ef8c6ae87d90ea553130a4cafc9c1dcffa4aa5692f6acd4baf7dde1febee4c326eef8b782ec126f41bf15ebd5ddb3aa794f3bdcafd6212448e13c3366ae9c715871d28b820d886fcf633046cec155fb79e938f70530b43cd0759c37e8297530e7591ff6c5180056879c4168476946c468812b40400b8d05d646ad866c398f2aaaf8e8cba4f99296d6c6d5fd6fe9ae31c5aa883567ce3114954fbd54cb407d1e6c47e8ee0db2368532ca1c08d921625989efb61bbc69b89150e5bc0e4142ce33bc8d6530ddcf77674bba44792ea3547fabec84b9cf885992eb28a901103246aabdd21217df5a089b89fd2169a80172e4c1899f2a9da7172fadc7906048a0db84030af18eedba2abb3cfd80972be18e5e5d36f8f09e0063aec983864224c42944710ba0d8b089f01b4067c27cdae72e90a9ce817a704a30d39944014ff3383fc73a6dbcc6b85a59bf718840fa753c7daa8dc40e1e17eb93d1043c5e94ddefff758e6a206d6b33bf90a65846ddad020e91ddc110dc885adc0542208aa0e3967ede43bf6ee4beaa1a398846b1a3915b14b1df0b84ca3e970d2644b41d49c25c987fdef64b1557eb86c1c557108daa3ba528f1ddfa3f9607c4baf1da728713f3784cec5d7645ff316f8be6d7bd3896063434456abdfc8ef5695038b3564aa518f0d6dfdc362c46701a61f0d72ca0777a3f020a9760dd53d233a5bb71d9e08b1ba21c80f8a2c8044d786a4a67820e5427c8c4117acb272d2684cf4e7fd169b912c2b298aa99da941a4e888ef39644a4afb5bda53e691d46d294a8c0e6579c2711464fbf24109cd616e27f6cf8c63a3bd9faef4d8f100843e0ac2012a5df606ed6c330d12fcfe852df1ea2893e8d9dd6c4091600dcfa3e251f831057a74f96f68e4194d8eb1373bc31886ae4c7d9a622cf99eb9342672054381d31c142a5292f081f3a1c15717db4c778d0795517ca78932b88d585d62dd32374e457031edb2ea50b106d3ab0e96c053d805c141b7ba6a051596002c4a4dcc93e2e3e0aef6028a060dfe1da0ae624228b69c5c7c57d914d9737c2869e0b031db4a673641ad7c5c81ed2a896cb4dd8dc7ddd7a6f00f5758d3158608117df0a0d720f30a2ba898ca74e59ec06438051bfc609d529c1091e6d5b7ef0efde1f8ab2d77f34849e32c8797e1f89672ec52291874001c325c2973e59ec4f0d75c0df8afcb9f6b7ba1ccce15edfdc117d1de96756f6775cf41e0e1437f45069c82ab699a79c30af15c13c16e6e8700e35040b4e98b978e3597448f6a02bce108909d8ae5926a58efc196117b1b3f55ad7bd72f4386723ac3f6dcbbd5383d158b2727add5566190712056b89fd97dae87e82d0d39b0c44f026c0daa24dec061aad55f86f2c873cfc3ecbdd2ba5a4b19760bd69c313f26e37021637ae6049358e9cd67511419d23d9e57f59add52d1238ceab6906c3d7b851a74aa766bc715ead5cc63b54821870095931edf4d35dad646354af6bf0a927742c9260f9f78f3f8cae05e9a11e1306acf1c8dd728675f4c1ecedec8bff4526f1ed868c4debfea2a447220b19d4e2f1ac588c24247bcae3526c7ef6a7f8f8d001443bd493eede2e729e5c1c592b0707657480a3389d2c4eba5c950c8d74c7e752008d4bb04ae2997667c94d24aa902122c47e291b13a45e08154d45d788aa985218a225484349afcb2c2c95395e8bcb6aa121d52a5a66a110a607a47320021b3774df5f6041e38c67961c82a12d68952e7a5b7dfd431481d52e05638429a5b2136b46e921f557b65261ff670663ee595325dc8a9233ab519828d93ffe03436689ad0e812413b5268ed44b66754e42664e9b7f7ca744feb71653c4600031c13f93b8ed201396c390db955ac4353c60bf1147d334b56aa4110e41c49b1ae9c3b2b7c3d03bea2271bfe76ff1ea7d5d8289681b314f608f8b5321638504821ced52150844dce9f1160c397cfb1cf7ea2153518bc3f45b40b505b8b2417e84e3837e8d1bfc65e97f785b40ef6bd8d1fb8993818fc667faac553d213b7d5062e58717fc91355f590eddcf5da52c61486698b411935805f89adfda762b608e5ce9baa4e3426dcf7ddde4f4bc920685ace0497c9de82659fe6000b1b7b5e14a10dca72e4c1b816b96bc08e7b4f81b3d24d1373a4a24df1a066e363928d53a00a929b5224588769f1a894d909c03802515ab24caf648882637f77568d0aef6538d73c9c0e31bfa6b40e27561a868ad8a8dbb41e6c87c79b95dc85696f1124762b9d64db114adf1cb588c62a40fa23fb360747dcb5739e01a64fbbb9b6fcf6c17a1c45bdcccd34b612370827125640a341c02da72bf01dc7a3ac65cea45176a2aa2343eab97eae94da5f493c760ac2e0496ffbb689d8e05b5c862360e1529df4081ad08aef9143529f802f521ef8ef61b0f209a79fb4d697a978b66319251c2fe91668c86671e62512e43dea94b892bc6b2a11029105a7c2d132d21dc73ccfcd06d415add1bb2a357b80789957f43253eb7a771ddfe2118580203982cce7413ac7633a5f0d8b1417806ae6c8c84def0b929219094fe0086dfda1d59322708b33528b1b38a39b025e194d04b1890b6875c016914dc08e02219952667c311649cb464d2fc0325240de1804e11472fb03e3c8bc1cb27f1ad86ee47574edc40721861ec55a80c48ccfe6006bf65d2572b944ca0c4c7949d641c876266d519da0ae46318151cc0de88971bb717b6dda3af15c5108bec791475f8ea5701a0cd3d9577d4501d7a620efcec0ebf5b6ab23080a7c7c018515e8c45fa2bef7ab1eeefca2c2a773bcc0fda6c0bf943ca007de75e00508d75e5248de4d1d695c7dfb250113b46404900ec4942253c914b2afcd30bad2c40f96039e1c531798e54030cae0b90098f65b1aa71c3765b039a5cf8d04dd2ee0f953792f0e2a4e775a61e83211a120a3f468de7b78f240730954f930c94d51d6b05f787549a4b3402636efcedc213af14f004bca66dfcd653845593471d940c9dff51cbe9a389c3736c6f7db1a4fa7289838922b9dd31b42cedbf5fe91dc1195d94be4f308cc7d6fa6d51a10500445ceff53410e2dddfca04fff769a3400d0da7097835dcf5289b76529b0df77d9ac2de338fd1be805d0270b7be09dc58bdd1a8c018760dc4de432d18e926d7baa66b5a636a3c26137a2a518d772c5a165463927b6626f2fb8ac9739a95fd86fdba511ced963daa8c676c81e9c74d231bee15e24ef2dbbabab824da9c6c78d735c03711225714fe5f552bee2daa01ac784f1792d839648480b7d437b964dea57e01940ddce405598e0abd15d1ba168ab5f98e0987af100e56d11cc66eff5856fdcd0f5a08131b75d3733928541c32470efd18d77217f052e68e65427d2ae0de839f588363619a2f3b08f5d099f8b2ce586dedb6b55032e1d038864ca411317247f886933b478ffd9ac9ae077743915a91be522ec5cca14d77d052f6e223f3be169000c235750af07c3ce619ccde81e2bb505a050eab8c1cb63655bd884ae47f93efc570d60d0d76891fee3ae58f8785a6b59d01741ac3cdef83cb67ccbad9f2c51bcc97f84780f0659b2d7e58c127dffbc06f39a6312801a56a7367d4510b2534fbb861cc222147c49f372f7f43fcb5eb5e34b3ce46996b76a1d239da372a7d10b19ca030d7097ef554d54e867534b55124ed2a1717f4a053d4728e9d8d09e992710da650f68925f4e15460fff3455fc75b343f43f79ba1f0749f1e722221d6df9fde05d9e87745af9c137e064c2a1124d138447bbd9aceb16830ebe08e23c05fcc46ba33e24654a6c3691aec78d998453460a3e89f6f068ff590edcdadb9f6a0a82ca3c52d48591168f274adb6a4d9bd72febb002c4783957934c078bf67e071c9f92b8a61269b6092e0443c42e74ecc03426a429b3fc879997d09a4fd83c4eb215439f96248f3625f67d453b08dbdbbd1dc7aff481bf98650d4948a471f3633359ba977b7c98236782b7942e52ca809ca97da843ba2fa57a5d777701250663b55285799689f907085ebe12d2844890dc37eb0cef891f133c89019147e5d7163074672f15facd84d9b71bc8e41f7b5b1ae0fb80ce22d45ebd4616e07547d480dbfc4428c565740311dcf783ac6e2b0997029f1e5e7f963be68ed219cde61a90058a5e94eb8e096017ce0a88c8efc296cb7c37d04d9138c97e38ec2ff9c5ee26c8bba99548a7ea4a1987eeae092c1776641a32cd97c825888ef03b3175cad99dc400aeb63fabf9503b6cc6f7c021d8435339085221d4c518d8db7d9bc86bfc3987c891069c340ec910fe91e5e0df4cda0b4cdefb5282123080ce56214f8d07519ef48cb3ab0e340d8ce096aebaa23091bdfbf6beef7568d73f94f354afa12fa206d071acd066d7d5a8b57f4e4c43c402805effd583db60b01070edda4382622b5564158a342469dcb733d367ed9f92ee842b39d7df479895d44482ea102d7191053b4295ccb525052d9c4946152950da8df6b4291d1249d01483e4345bbd62675bd8d62e70d807ffe3eb89a97727f26636976b80027b0263d750900bfa59128190543d8284e35ba60998baefdf06187744939c91b5a4d14dbd6602b5e13b91f3f328b8e6003333bc558b618984303a0a59eec17cb331d15450b8a60cf26f2bc8cb793f9115939eebcef22235c9cc7bf96472229a0211f9a68a042b439196a59b8a9866db8d85805b2c615875a2b0cfb203de85875de7100130d70ee398c2df712613ed3a1d1a6c4993c002d0f06a6e14533146a8b41f8abb43766ed050d414de5202b3d5d53fccae95fa7704efd8f58c5c460f729a75025bc6f3f4ba0cbb8144b5450cf4b35e76eca6542019811c86c3b3fa7ca156a84d79bba652520638b3681c34aaa72af1cab2c71b609a056332b7442707d43dab58dede7fac465f63c2a2e6cd8f5688e528ec43645ff93a51d7f74377d365ca10fc3c4d4202b1dcc6f429cf357d032a4e426d265548734988a59f04ef4fadc8674655e964f91e3036bac2c55333698b654438274391c6f62bae9302b3bf94bc9ede3c2ca661cf4935d63f7b6b821f416e6fad4e524f48a783abcfd979b5e8db2a55b6d4a16c9527863904e497da018515e25982eef4f87e43b16dcdf7fb350ad4a281a161e87b2006e3addb3f9268d6c583e97148f34379c935f4ab20651d94cf9348f3c2ea7bfd16959077d975391ae72bb6c6657168cfb7ea96d9413d3adfbd361ebf50f9c55ca77d156c3e5323aa75eef835b0fef758a2dad12d9eb4233e7d1f55829a53ca1c0bdbecb041e04b9ac0a061de5f48a1d65fc517e0f5aa737cff142849880463de5674ec219b6bd73fabeb1e7eeae69669564aa3675296b502fc90f919860dcf2af5a89b26ef04262b89ebdbb333f76515876e4a480c854c7274c1c1074ec13ee0d4213f7b8610b8a8adad1ad86e7fa3225a556518a750a2f82dde9e4299c7e95ffc425c57fa2ee747e657918106680b9236c95574960bbb43b6f9bc4c78ef344b15643f7d0f4190b6acce49380e1e3ec8fad63bd25678e87af2b6c537a02f40a5a68b4420b625f67a80738430bfa25fb55492b27d23a862f29f953b62cb650c87194f51eeb170bb7d8d408001497c7a7edcee78e1b719bf3f0b0791acf665abd1db22d3fc3aff85840a7286fce596eb0b368df1ae47316d088961f791af288b28e117cb663db9f6303b0eb785b134057fd85c1af6b495da5fd5fd57c71d16fa0a651191f56a5d3e71d58c8ae428070c8dc6bfed9fcef32b499d61146a485023dab251082bca3f5b031464553d0fb6be3e75a959796d3508d3139b960afe98c1905725c3a5b5ff22514c168c5f5f13d66eada4f14814b24a5d295cdff69d0e6fb5c2aa8ae0ac60741fdc2660361050c6dd0251cea5a87d58acb32dc4e46562222f8af2dd7b17eb14ef2e4e8202a2fa47178bd9c60023ae174e5ff59b69bd40c7c64fc3f66cb6d2f2077bb31d1e16e5cbbe3ce9d6246d270670e4596fbe2ac3efe79f493444bad0b24883bdb051d2bb1881f61805f25d9b09388e43b8cf864e0fbe746a190d857d6627541bbe0385ff0f4c012779a6c81e612bb4bc77668866d50bf4adbfc55e2e63cdcab48c27c9b07266584120a810a79bedce38906c0b0d99e74cd6234f6699e3b0cbe9eb76d3e2dd20f249b59f286dfbeb16326249f83b28b8238e9b45be6da5c5083205a81ee6ed0666f36336d0614698f0e2b8ebc24515a146fe1f50d68fa5f97e85903366e54663f9d7d274debc7b3a96bfc6d096e08b2c779b37e17f712b86ed10b71df9949ef74aef138730fa27bf52c59126453093cb1a49d53a2fada95a1bcd5ce618dee84f4da9a4c5a1eb0c9215a69b287d46504c7b7ef0f425e21079158b42dc86fbc7b21003386f34148435c0b4d05d245b042823e79b8fe25fb8f28004e82f0831005a0ef2e0107ff2ae9645e1a45be92aa5ccbf0d0959ae97c2e76ba3a7badafe69a057ddc3e9e708f9bb7173b578d0446a972f4001c08fe231e374a25b9c812a4578516cdfda4925cfc0d008b06936c65099716c25dcd5d048582165c41244bf8bd8d29ed9acf6c66c2de4a3fac448c87fea8b9a48ee2ba82cb53a865385b5b133fdfbca6a7db8e536e48c7e7b8eae9c1e6161313f35ff72238f577c569ac3542579e1f79d1faa7321cceb881126d28f7d2b3d961d59488cdca0bd77e5a0c3e5eb1a0ba452e935a2460476fc2dc227c864b06bab7247850c09d5388be01b957908b3c235f05adff9e8bca6e912075443517e8ee1f7404c2854d78605b589484f8ada9540dcea296007217b5e39fc7cbf5845719e46622c3b53a9e5345d0cdd175712f106ec920b7e2fda4ea92a12201537637c7f8a17fc85ea529f927f15ff9f9e311c852ed0be52ebf38b068409da7137073f1c52c0fedb4101a1adf5e9d9816c0a90c9a680372ccb3e8bc39cabb77852aac096601ef8ca3e82a37f346d032bb3ad0257a0d1485b6b397ddf647ed18a3558785f6ec5e658c948c6cd295440c313282b2d3ecacb28c547615dcf0e1a3305cf5837b71ebfc3ca1bb4a85753a39a37b29ebc21adeb3e3c090bb97c49f3e7cdc657fe2e3284f2200d403a21fcd50fd8c2edcacb29145ef4b6ea1b11f5eae0ae7358f2b8bcbd931fcd5e5bc8284608260a373d4b340df2f5327d37e927a17f9e0ca764104da656f309da8e984c4ba948aa990fa600b95ce59c46994ae6947db1471cfa3673d0ade32e2398bfef843f855415bf5bd70f30b6afcd0805b601e4a0ae84153a0c005397c8956177602b3d40267b0d591346c4ca41e5f47eed9d8a6d17c6926aea5fe00246362b25bf0857172dcad451c66fd08f4e71eafda266691ab69f4e7f3ce403ea238febd22c0a961bce3d630e63351031aa65d7721e44eec499852432ac267a31c15642954b40302ef6a55c6ac416ba0756449007b152c601db08803dff24510f17c394364bb0d6add74dabe5b0b4b7126a716906b8d5a2b1e91111d007a509303e3790e1d607338d2a02d5f97f964f49cec5106068cea642b360b5662f3c5f41f7662cd94811d3652a5106396ed25e141c2365c614c0dfe842771cdd68e151de67d7f3da21041aa7a7674d06dda4e65195209b4ca35f6abe4ad4a6b82b5871f6602f90d40e4084528eb425bc809f92b8272ac981911cee299b7de6d88afc1d647f37b21bc953e1849730c8f325fad16a08dd28619d1239b6f620432669f527655ee2c74a6adb633a8bd629b379c77ed2810893c3265cfe2a2dbc9f8f833758ba3f3dea05a16339e16d0843b67c47f9a1478aaa3d594bfc9e843f82684f6425adfa9aff3dae1ea67e579dd54da2cbed71d9f13d49e53ccab72c85fcfb5c9493267017721abe7449996e6b84eae100491736be2a103ff169227ed1fe17850f23e0f0ca963d64d2ce6b4249ab16f400f45b87aa7f7e2727a40a9cdecf8537eb81110f8691b586f3e85c5b0064ff2623213811ed169d1cdd1bf48011cfac41fec0aa62b2bd3c5efb0b2c21c2c5cfedb54f7770f5b2a0bc3bed2f3a49d040604aaf3a3406e9b27726670e07b3720ff9f13ebec6bdf5c1b576f0efb282cf7eb613c1172da982cd128e8aa856936002fef7aee582d333ad21e52b4e4403d1c2caf4dd3bb100f994c097f5cf9ab1609d286be0ad0a21216be71b594d1c87721b51682618099ced4987ca9e8a71ad648c93b6f32ce3db38469d6f756156785110fcbd201bc560d0a1d0eb709cd7967c2cc3c21c5452bfb34a18b58b7478918416a55e994a98cba9e3d2e4c045024ad2a7ce7edf9bfd3db94b495e9203b632326d342939f5708c66e5ab7158c90f9b098e75ffa64b239c3be1194ad1bedbc9cdf419f73c6bbaa8d6ff0639de18daa92c986846aeb6b88b5fdd465b87d9c3b6e2846d4faa41ef9e7d8b10bac2cae512dc57a16ff1464ffe3ab92cfba66d340fe257cde9d4bb7178bf8c6f8ca5809330680ef889c3e2bd5b90b98500d9036761801b0d8e16bacde710079f29f278daf5223ce119605641429fd67e84aa7540bf4fd59f7b41e6f605d8576f004f9c032a7ace57fdd8247bdb28c10015a26e4f3c6c4e89c28b2dd22ba86850676c0369840af4b9f6c4a6c10bcf7ed031bdf7376f5538f2fe33e855e6be3c3b63e05a98ce5c516a19a5fae0540129c710306401487c11d4ec855d747ba31391715e0c123d80de8a05848200a896f6caf64b965a4ee91d8fcff0a94ec24e06e190002f3f7389d63256901c144896235fff24c0bb272cd633a2451d4c49fe7580f42f8e13fa3c36538fbdbdfe5d36f08cd58451daff52bcab1d66de13e9552041582c65fdc961ba34a3454bcad23b2128df3c5e496b16113c62a31a3d8f143216ffd89e6a46377ea217bd15fcb731aa949523749ac2f31ab2435259babc47f064d42aaba5d739fc4ff27537ce8abf927f3dd565f3bc8d74f12937379af7db9a64cae287a800d686210ecc214e28f998159fce8124f9f901d890e72248cbf1a9b413bdcf67e44fa48b62c8d442a50244e5962957e84f20cf3c049dd61fe644d467b7af86ffd2f4d090968bd47680dde0cf1d27c8b76288a491f34b15402cd159492ccc44249ac5f59f7421355a283a68389c28fa6bce2210d7a0b8015b4d3de1f2e4568f6e2f5f8e39e16d920c75344cc2a7a36e408bd0934ff42e4bc36347f5aa17cb025f8a08d739f3285669a7b5ce529713e4070875aa7968528026e43b0954be7398a08b9eed21b79d039c2ca540a9b81d45577f3cd37527396bfe84ff9ae8cce099b8f1b57b11d36ff56f8d048ba95e7868c8cdeea55df344308b540d141a358f2eb3fef4214a8188e30129f41acba8828c5cd0772b0b6c59761ff592e4cbfb664509f21a952fca3062f1197b1f0ca8fe5ff4830a2c84db0a582bb19c83ced47c8bdcc763f01addc592b02a26ddf7c0e701c9dd9b153be7d8a42081e046c3e8506f82ce088bc3cf99b94f28504d13e96f2a1eea3f0c8c2d8c986e9bce47fe97ef0fa7da2edbf07fbfd24a03f1ad45fd2f4e3ad9823730deaa7ada021f881136435caf7f4ad0e01dcb183dd22c737fe15e60bc0ad3c52638d8a3bb295be90fc29fd0225c66250950172125e93c14dd9cf927f150182540a64d7194e76610ba8a198f2fd7e24ed5beb923fb05814b5a4aeaa81545e9101afd1acc8e53d5bcad4ebeb736a21e9fac36340887ba0a3d53911d861ce18bbd543aa76ae00a9c9d0c1741b39821c8c177684fc98e0318061314927f367ebc881b97db83d641130ec83044db3fc60f58b9ed0e10003965315920ac7e8ba09249c3f8969e445810a780c9073ab2ebf9088f92696004300f4954606c5f45bf4233c06134274defbd056fee131a89ac5d8886d6d8848492c49185a92294aaeb35c8cb8ebd4f303ae3c7ca5a61bca691dc5cbcaef0d34e239f2baafe007edec03e6a4195412616f84243785c780ae3a2bfabf72b4edec64a55760d8b159be1927c41e663f7535215af42ae259faba654a14d7cc13472a8925ed7847a110412df8a4016eb43f8f401e1e83d39566cd28c4d33234b7d94976391e823367034776ef045ab1022bcb0195db258991174bb4e97099410268e22631a34164f1387f61b094fd12b84e676d2e2536a4db32f5e7511c63c4f4d71a4561338a537110857fa542d9cdc877096be67ed259f5506e7eaaa54fac90edc23576b51fc13aab9d36586f942b4540bf8e8c161ff4d7ad5a603da4e7faafb70c7d7dd985c18e8e047abdcf615ac74a3c18b0114f1b88dbcc79ef30803dfc1cee734ae0c2a5f6c48b1ac1fd0eacc87dd3d46d502a35882655eed26a11ed76f2f3e57665c2b450c8d6140a319fbdcaae3f831580534457c48642e8c5bf6b4019f607adab1aa08fab06bcdd50fc8fa1a0575ae31300e0282d301c179c120c38bbd4469988097494a157f1daf6f417aef78986093d9c99e1b4530d5aca1e4498a7bcc1966dd5673fe5fb55fdff4cedd53756a3697213b34f6a110c61971fd998610114a73c3593586820a5134603a2f17db76a099abe9ea09c1266dd2843c173c4e73212de8aa4e2cde52a4b650ac70a46e9050b042ec14c2f320717e9dbd66b7e4c985a3882c9d144f37344d76847f6ac8a43ad4e3bbc0cc1827809824475ae429c33e5dbae200b482d7845934c4695d7e16a8ff355ee643cb76743906e5b412d1a27d8334a7c02903a34443a0fdadd863b83cb56e443d7d166dc6a1d28d8ed1aefa4fd8fc43e298b7a516dd0a5035229cb4adb846587b2bc8e4857dbcd0bdb035c3c52bee6ca9a1ba3b9472d52a17f92576fe25b6cab55eec0707e6c488314b29541102068998eb91a1ae77d01822a912ef276cce01f3878c45557c29c5772308a0dbce5d8e5dae4a2adfe67b20414425da18cdc70362a9fc8a0db6db02e9d09016aadc1c019ed80b6873aacb4e2d408ca1cf4ab96bbccf7b153c875efcc9a37ac64d3ddf36670ac3bc123d64222bc385f19cb92c6199a2cf7ec4af665d5820def856dfb6a3eba78dd349d874a803ea81c36780eedff876ea2ab0be7c3f622a100e88775eb37b38852c5471e9301fc6c24a93c1f3d47adfd319e69db8a47eb2140872f9d395fc19bf305b9740ef68a142469921d0d35e040ba5d2f9d8d95f395b8a750381b99ef0dfe8b89bb8eb1e2215c5374de16912235acb63e9e771338e8598388f41c2b7c83a7068801e7ed126c2bf19b5e8b2659b5a19a69a8cf7019706f24af4c093c48725362c0d0ad82f6e3073f8bf1db0d5e68b8a5e439fac91634b3c86613341d8f21176ec86a60e21e63d7325d008a31357586d6cb6fde76747f3c361783b5e1e24be3603477263fed5e6525feace71f46e975220165cf53a83afdc1637954e8706428e3064e91c83282ec6a1da02e74c17f32ec76ce9c28ead55d48f7aef3a3b359e2c635780883377ebc0f1bee3b4f9259140c7eb2685feb45002dbb6353855f3072571c1bec7bfbc93c3250c9e4ef8cb7a6b1bdb1e987b31d42a9adde444aa798eb06e2f9fca41013c4dd716bac5dc9b5896c746e32fec920c170598d29306f0efa9d386334dbafa8908f67741d799c38d69ee8c2aad9640c3e94570166cd8f473295d244478e4de1b2bcdf4e205949d9b18d26a404c178eaa53633d44f29c0300e2d4ef8d73f0bf95b84e30a85ffa4752d10c9f37adbe7694b43fd6ccaea2d7e20b6e0f6e4f0674f8c0456fdb327acb95b5d0d02d81513280886efea019f783545ffdf9fb1d4f5aadbc17895023bfece19adcb49b45cd3085b32a15bd787886ceea3cf13688721af763b741f8bc1c087f6288fb65d016a4c1b3e4f4070500cc868edecef8005b61948be183f58d3d4ca74f6975c5a838f8ef65a40839e1d4f7cb1c302e782ea2d9400d29cbe2d6528d4dc5b723a3546e446b5d9fd3025c94c952f889f6e19c7a3a95d19802744f86577e77a1becb39431a991596b9c15c84c763b5df37d9196e2dd2bfa2699559d74a157e762a15b1a45adca3a97f76a7afc06ed529696f27c8eaa3e5f5aeb5f7ada1fb8aded78d58d1ff07e3fdb1e559185a6fce16dad8b2f48e9d22b8d379f1eea62df38872d6f7bc9792f2aa7b3d864db6bffec0b47a8d0ce19cb491bbda6e21b74b2e30e43fe45eda3e188d2b815b31e1773091cab60e7f73a49ed84d3e46260e7d98e6c35aab28353e59956714f54b2d5cd80f50cf1939c615b02445af81fc9cc02d7ab9258b96a22001ab6541198aae7be1d9e97343b61079bc15efb1b0e53b6e2598516e40b3b6b269306e775a77dbdc0f2ea9cf57e2e1a225e68a121c4e9cea99f43f9d12f4c1eee0bd5b42ab8b867ba25293a5beb97972711f13405de4ed2fe19ea9138ca51548fa9f223f21df1b14bc18afc8715ba81a69d39543dfdff4c0843260d4fa5301c3fbc8e4e22eb73fefba12ab40473ec2b95d2ac69d4bdd3a068c14b4c6f60532a3d6bbf41a53c308b6480955e6c1dd38c5bbb77e7dd1e9c1f3aebf3103765c88aa3763351bb77d0d50243630aa974fbd117e2e3f2e86903b35d4d9e745445fa74785982c3544702ae74d5f023ed1dc80805ff22420073a672827b7577a094db4f8c208b0431d027f0082657006ae6a23cc3dbc9c696810701e22ccf5d5d69e80603627cd830cab8851524edc0b4f3a01f2fb29572aec6a69d3c287cf2966ec9c6f067769ddd54512a772eb21ad8e07837c3a8bc06adff2880110b2c19ff35656e87d33f17b0157a077ab706ad080d147046f5fe284b1789df2711ea66b2f86e5731ba2bd6fa0ab2af7b6aaa07eacc019ea7953b95d1c76e4029f16853ee68258c6a31baa31f05ea20002629393900605d8c2e4626de958fb58b81828ad187eb06b1dde211cc279d33119543ebe555ca4c98f8cfc705515b5f0529728f1d0c6553412f166e26908fa23fc29f7257a180ffc934c425a482322ed489a9e06399a301bd5fe3d866e749ecd721a4c733424cd2e4edc93804b41b62e766bf6c2541b7225aa4c0145798f5aeff42863083626909c356ecf0a1286ef739b9822c241ac8b5ca7049eb817a9004f7a3b5900d97e754f06aa530d1b786aeb21f2d15199d81b7c5910941e45536126cd2ae12172deab6845d2f2f83b8d5cc1398816cd900e940589224fdc2fed560d72e0cb92988da303240b120a8d3113b549e0c559594ef673660b92e757cf80959d7d10f7115959db628051f43575124fcf3b14e31815d51e79a02673654e1d31a45adef50828998305ead4d62bc07058077af0aada10a0402417088f11e0f548f6dc0b51c6a3940c0608afa9ac1a703f51c1750a855670c70cbffbab39032f60e7566172f4f1cda7c51131a03e8b8c53f377f225f5218d96985145a608cfdc695c2e8dfe9a2e74b0d1799b2f218f7dc53578934153826c74372f1c647a2bb949bf87396fc870ca42c4040f9dd431cdd5815afd702b3ce89dcc2963532c9421be9502bd8be704107586a6f819a2bc45df099dad7bcaa3fe1c133d77df6a0e68c6414102aec257b6c5a3d0b9c247faec783e42697e6499f43db97233a1bd38e939124fdb78f29bc016a86325424475cd796890fa52d8bde3ade5606005f0e01f54e64ae4b9a9441a49ec85f9b6502f801cb0174f728b18df46bd4e13f72831b53c909685133839639fb723a6c4dbafa69cabbde93cc56b85687acc18060155430156538e9b6f7eac455aa2aca61f81d9d340ef84bb5bc058c6914ddb5c533bace0b487d6f036fcd17fe32797e90b616dd3430ba7e9c695fd02944c00413a5d6d32162a26bc981d21d4124b96cc5a89c91e4fc141c88a76bd712058d345f524961ce5ae188284929e3c44981349a9081dec127776b77dbf6a658bb1835315b13b8423b412fccd61b24b3e384265da1eaf8e8fa680b160c511c2fc31a1f3c6404c97896243b5fdbed9529c509cf4ba24d5f4b11e200c664f014da1605aaef7bc8963fba33468236c34ab3ece12b3e8463ea6566bf183c7ec3f1b1ce0b682603bab7fb23b7b8af288960f39acc7d26f2a75e95d90be950a963f1ceaa6e273685b7d0d707d4d6a7ea51d32a5986b09dc043a64db52ca8005786d00462b0571c96a0dca278af46c88e4d49b5bd57e415e155869a39d1427c4d1a0a6cfce0b0f66e2f5387accd409e614029f4b9d4b64040c583589dd918c4b7f0ca9e2fd3788306a58ce36c3d03396286f8da8687002a8693687a502c9fd54a832ce92205c44ae2f1ce503348fb8d37160a83c7a635cf6e50f0609ed8287d7a648c98f5ee4925b5965c4146040c6314a97b523af6bbe36ed689127f27ccb449cdcecfa17a625980b4800a22d89034b3049a888d3794d1ebcfbb1932dccff659f5246d65a74e9a3d54b97edeaac6eb909fcc9eabea5723f19d913c6430bf99ef0d0733c6eef90c355f5e2602d488232cc6e8ae8aaa64d276188cac14377d11d561a4159facd3b3789500e032621ddb86e1e9ccfd003e0b02305ed4479eff5059855e9a4262aeb65302b7a9358479ffcc7836446bf48f89686759fed9aa43674ddc0072231a1eae754098d815b2bea3f3b2ac8cd17a27f7f12a6b8b37b26dabb6438d83d8edc72df03c145bf47a640ab39cfed06c8d2c11e3e7d583a1ccd00c4fd009ff4a40498002b94fc199ded2c68ec2351f9dbac1740f68f0827f284f053923c3da3ca6f55aca09c546e4f5e1b7c6a0f05a2cdc89af5326721a8092abe09f301b93403a4f1179a511c6b9002b59d1b45a79cb0557b7973c56ce07ff7c63821995c3b06cc0655f9be71f354ac2663b6e36a465fc935c7588f4a4a4f7e5dfb6cc4318142ab8212420b6fe8342774c2060d68c210e5a01e14c6eca902656a4b2a65a326bd30d52bc090d29e244e68642ffe2868539af81c670ecea31896bf3dcd2b5f78ccdb57dfed5904e4d3899833c010740e143449183483187608a67a05191f8ae925519b9518bacb07b784357de385f179674ffa959163ed01e39141c7350193d90167cd8133e7444e44d1ea2fb39183e388c1c588c397c8c1e9c0c3e402fe36cbdd93d954e0858390f1fec460e3ec61c8c450fdd041fac880fff470ea7630e9e460ff6829fd9df636e44e60cc0e75469c9072ad125a3d5dc60a2bb2b64d7b2dd9d9d8c9d579f125f54afe55248e49a59b66f292242cf14d71cb2bc7f61c5fadca748b731d684c5aab034a661981509a870524c8c935c8595b68cf7c25198e66896e40a9f57441db7fb38b316b6693b60438d26d4fe45526cca57b0b6f58ed95f98337e07b13bda9a4ff3dea325d4f2db7867d0862eee85a5bff0014a85a9c83d05c29986f698d975614e7807a9c297c570fccc85b936ce2934bc454626ad7d6c58157d070884acb7c2deff953a99ef5c58f6dde1529333ed805bf0fe2720d8f9185ab9d8052e6cfded0a9aa7a2f2c50a4450472bc3a8c6b9d4010389a132c4893992c8472991a91a2ad97b86ff481426e5c295b447e3f1da2d77b954b0e86cde902a0e9ac54f42b4bd9d1f11bfe2478b9ab65cd823d42c88485ec108b646bc7ca175e23cc7c25ac86d2f7edeb8394b668e61ddd90f37080c0b5b90ebfa3dd1c1770991687cbd51a96db8697b5995eb441fcc554a13ecae5ff38621aebfa641eea69bba40e67f2d85bb291b5599ff06e5bb9d68f0fe69b8255407d037fe57630f26922aa6b39131f8b53310b0145bfcc85b40373e8f1dfd9c98a79944c6e5b6a35d7d78315b140ce7de85bef028c72edbe0cc38f84c594a9388e41ca7569a419c7001c9453ee8e784e2cb7024f03b172af15bcd4f72c5741cc35a4118692784ebf92c9b731d7bfbe65623203888ee4b810836fd3d4a09b1a35a1e1309046447727a726344e34fbcb725ec8b1fafbb27b00f884debc53cb2d736330c396438e0642f1e46de163ed9de436a3166fe543c5844648901af8c7dd0fbcc100b3878a6ccfe1ecd18dd450e1874c4e06dbf8c64025d863efe8967b9f13bb7014b9c4c833601492a4fedb62e08164a11057e864846b3dbb9552cca14e0064dedde16424973f9e379965580f7ca767a86ecaa7223100b5408ca6fd11681d008646a91c7de3d9104df42e60220c1f077c7c75879a4917d84a366d1ca6549f198db12f1388ae8e0841dc6d2fe28b4b7ba4a90a7d78bbed7589fc1cf156174d75092fb48d0acdb190bab188742b8a05c70a8bb5e78a285a4be9f984df774d283ac24e87b2fc89c406b1cb69d50c6dd136b7b33db4d365a406b5583cc30d44d9ec15b39cd08034ea867edd70b0a89eda236282bbb3fe011edb17eb99b49a7f4682500242858ed0e7362360cb0105865281c6095bc6d70238fce049f4471e2cc853453941283cab2aba5b4b4c56d65bfdbe9022175702a5535d6b76ce7e00c6ee5a07cf59d0649770f993fc7004686e4e8d2eea2a95a86739dccd08dab1dc96239872b58e32e61202db3dc786c33ece8fd1499dec8431361f7f1b705f03fa367cb389d22b9bb241b7cf62932dbd55fb540afac930fc5acb13cb5845f55e5c19e45589385be6f6c7866037e0fb5cc66f450e7f490c96bc5f9ec17ec2e0eb61652ccb36ba09413fba175f16a24f3f031255c44a95d34c1b613a842b2dd4b767f1a251f50a34f61a1df49f7b2c412796e2d35501d8d7e39ad911bc0525d61ab6066b11607842262d875e03271a352c89d8748d6dd714c88a41976171ea727624cf5518ffe364840291be62cbb13baa770b15f9abe03dcdd4fc0bdb554d14b614a8eeddf4819b53ec73cf0c4f7b9e250e6bc1ee583648d8eef39b586845ed491f76516ed1b0e624264b1dd853924ef32cb5506a9327b6948cdee470ec76a06c726b5f6dde69f470806d71456d7ff274ca2b52fbb621696dc7ab1cccb4aea02c90b0f1108b9b5e2a53f72aa28bcb9a06b4779c4affb20e8154c84f5d0db085b57878f6f5bfd97d79589d60a325913dffdca35e09b4bc455909186d17890065b4f0bd6b25be08bb66929b7431606a391ebc32133564e7b5f866f32c7d0b163678afb8682e40dbd6566d7f42f83d1ad0f32a84fcadd9cd3b834325b8306b3ac78067d6f049bc6f17b712f96ee8dc67b95df821c6152554b07b8f1d45165200d5879af71540e5b56e43c1305a32701b6cb70c10e02ede05d12ff8192d12d4f90dac8282469bc2b09b9cf2a5cee3476ce4701b28b7ea73f853abaced67507b9fd88f7ea82ac51442ac53eb2e7837647a6723681cf9a87fe95084c2b9a65985050baa42deb34983e9fd6d67250f1e69467e243d0177487ee5fb6b7ee78234c94782f6a90f62d9fb1c19cf6fc2921edc96ebf447b746754a9bdb6996c8b4914b0e8f44cbe826710e55335be7c2fd0efcc5e592701998210a559073806a936b8c915d6010d56760aae46a954779c518cbe568ac0c3b45aee3b988e3ec95d173619108e9a050c72de04dda912a19641799391913f38c87d6d4abf6645812a26ce8aaa67bbb48c560d9e9e3fe31e2fb51163e4d35c9cd96f66058ae33cab59895480f5583008d24d32f04215efecbc83fd645d085307428797a51c92ceb82e6932368e5667ace2baa9bd6ac200b5dae92d98d873473696a07caedffb45ac8200deb0f789a249dc47826ce63399de06b4bba4474f8237a47beea91cf5b3f018d23ee045b7183e05c466d051dd079f1bad08909f56534d317bd88c55285b2de97319a031b2ae2a56c57206462b5c206f7b203b63b8fc689a425fd58898ec7e8e10eeb762d5fa180e94b2d327196ce1549af0273e520ed9824651bac806e59cd5daa7a7135302bf952360f5a7f20741772bf4e12c4fbbe53a308bec8f24a06527d89b0562530f79ff2b656c9cccba424d7c58551711301cdbe6acf6c8e88858f4e2d545a789f22dd34eb8afc526be3ac98759b7026e2b3d2d0c23164b788db67e477e77043456f83cd2390c935d29be28fe72df6b393f7837713a64609245d6676d1cadecab6746d2ea46b9c6c55d283e2b90c6baa611319908b5229a38076d7a97cccb48506a7977d517049a3a6fcb0716d7ae758d23a430f6b9236bee385e8a8ecd58f33114223c04dcc4db836712fae2ce5ec15421943b814a271228cf25a7a89e4cb2e7398f21494e47c4da7aec22ed01c36c27dd1eb4ffdd69eaf80ff1c99977e322fb781ee6a0b370ca3af051d8c470a1b3d561b8e8b06b29269efea91017759aab58e602bca1ef9d5db381208e6249676da54239e74100c4403f14c7ab1de092bff989e9335eec16ca43b7f43e8d3a57908a32936503fd8db6d355fcb4518798ecfde7ee6edd7f848ccf339c8d719659958cd4709d0f462b8d7a67f6140014a0e0364072ed6c1b88879671ed070c05cd3ad33d0ed82d8dc783fc604b4b9cb8d1f01f90fb353cfeeb21eeee61efaf7b8a733ac75eb0c60ec2e38d3b678f24b0a2adce45c4920b402723b6a8233cf9821cdcefa21b2a204b9ae06dfa9a54e03470309a1ba2f9238e07fab0ac2e864ab1eec95d4a7d60411a51b3aa822b494fed10d32ccf69919c4ed6fd473a5527cbd70c2c6c514f49c6d8a24066dbd2ab2d7bb146f3a138d8fcfb15b7e9a5c8640c2af210d8933c0f0038b7b3334b2b517e06005273676a8a9bae802b55b556f5111b8ffa545accb926a4e67cb49ad59053e788d82cb1d327337d5a90dbf3b323b45d519357725a82b69f9dca7793374365d72bbdb3ba84b4a21603bbae3ca52b59ae50b167980faed04c7458fcce6a42ee997f2752231b599d7f26a0f4d49e57a5c044e8bc2294e52661fe5479ac6a04150a7a37cf0a9fbe50439f4cbad9cc1b40694b1009e0b4210831bbe8ef8d269fd70ae4e23bfad4a68859d873a389c08f9566760abb9d26e030e219e10846080f8ffceba3e08a0aa300334e146a63fbfabe96f7f54883ea2da421f5d8f22d3536a2adbf59c2f90326b3e8f03999a9b552a2159b177d726b1e5852dea81939f87b39d019acfacb2a364be775193b3ec96a6949051e6ff330bdfcd82632e8f5c82a689e0f859cfd78df20cb262717e00018ffee84fa9ad39b15533708ac426818c1fdde4eaa776cbcc2a293aeb09367470b4312b39040668764956ae8b457be4a9dbdafc79042aae64098940f00f90d3f5a20f9eb5fc506bfdbb1b5b629fdbb8946dba6233e96b5774c472aebc0176459bff2d87c9b44a46553e07b36e89bd3a60cf5c8ae9394a3815560aa6e72b6c5ca3196cb165b70a1dcb3252ea858ae716f1704fa1ece7f3d85ce29f88f034446dda80180d23f833667a375d7d09e66e4b7d0d7d14c77bc22eda83c7a8bc24ce47c09c3a6f2fe57afac773a8b6cb9a3aefdd8d023b958ad0b64566c5d8a831c4ad8b678e17b5bebe2811870d0890b8794f835d18144f0a031e1773e4bdb8a365d0a51018a9e335d17bd8ae2929183eb2056403dbd97a75e3246f6fc000cec6091fb68de3dcc232c9b8c7e508f7c3b3c675b401407a765af13532649ec440b4ef42650358356fe5fce75a540bbfe04a16bbae3c15efc600a988d794f6108ea25197d64bcff3e632909e7107e692b13f0bebb012cc903b3a3619c549f36c06dafb98cb77c407d0c90fcb55a919925067ec09239918d10b74190670bf4dbb611d768ace1f2551ac2c17440ece35525d10fa8065f3ccf2f3098ba9d1fc9945aae572db02a1a3d1d730616a2f7342e41e7e86b5361d1da37a5f56d8f356e3c9320c10915692d0a559f436036c3b9650dad127e73775391b7a5774481576738f67c2507676736abc99850546e2e066d4c78c511e6a59b989d2e85de54c1acaca5f4653a906ecc89e8f743647009ec144fd3e2be4b82fba2e2b765304f62b3925733c957ac1d8ef26d601809d61c3ee02a197f6f1459b8d83be6b7f7fbcbfaee242cf5223bc985caf011c89e74db2e66ae8cbd08492ca9a2ca5df47ce8a00d640339d8c8adeba679123601b778c64f7defab6e9e76761985e3dc5cc47cf8edbdeb4757e6dd68e2d71b60c3d4e8772a2d1bc7745990a6c3e5b2d53b475f1d62deb8a72d9e0431db080a8c6e7f1af10401c6f844de3f2c2ce26767887df418efb6f32157744842cd16757fb2cd65bbbbaa76ed939659d5bc8999c2599192ca9656f8832ed596261d659013b18512346a6ac4c0dfa19130fb7b6dd1f24dd45269681b89b33fed5a40f48cd122502d941950d49f9237f04178b9a2eaa78c638b7ec4a5b144b024cdd4905cc6b2a2799f52ddd69cf6617302cf8aa1b11f9b290a432e237ca2bc0639086a5b02d999a776002a4d11572c1db79a43d608e1b43bd2b22dbabcf7a9826786b9d408dca1b57bd29dd149698e10ce8f11fb8247500e2121128bc3f0ba80e231202d1f07d12e038a12d61030233caa53eedc2c2f8e4a63ff28f3eea9991a4e6e608f0e4c41c67a9c4c686451e1bcb08c01239c1cf89ce6484631c7e57d668b37bf1050190b9ec64eb4f61b68ab51ffe062ca7314817796b8898fc90d044416d2bcb8a949a39071f34582fa561dda2d4c3f45693d02675af8d01fa4b8ccbd3e65f7af2568a19c70b5e31092d9ad1a7ad59db21237155374a73ced3dc60e8bb7f17813b923f86094a4edab58bb18b9a0c7d67ca72fb38d636e7c088445a27fd7358f785d43a229e4f9f962cbac0bafe52ada25e0cac1278b31f556763581608ac711efb0919877fb60646259467a6450b36c1d7028a5853c934552bb45f2a60124526eecd7c1cd537d1c637a1d5f432a56fa51f393c8507f44b558e5e6426894ec90df5a3b78ed29f6e8529012646ec0d5758776c848e73566684cb25bfdb0efe8074028d0ce154c233868427cb1546fc04bcb8d81fd1462a8c3442ac19fb35ab0f0f4dd4cb14aba00225f69001092b3e8a7e82d6466b9b336d10942a1faf29c4a60a270cbbb265199ea3698e5682f62c7d215da9e96cc2522f4e94b18a6ed2d06825935c9dea15758fed2b6dd03049e2394087ab1269e53b832be8838acb48234f72ecd39e91832aca740ef3062f79c1e0d4d9ecfe29c417e7c593122e33764ceb14b2c3d16d49fdc3d23d3bd01cb9fa2780ff5c9d5bad5551d40846d9c02467bde90ef5a56d08949130ea101d419c0a7cb1af4d2d437d666bfe589f0f0a98edd91107163d3fea1770f88402cb17a1a336c018676ae1a7afb27a1135136611ddf343072698378bcafd0e9726f90ad553ed2f15cd52a1eac08f22cd5217e623813c528ed91e4cc337dfeb47ce6549b307dafb82091422b3256c80ef55d00afdc0f807386a5a1c08fb6cd0a661a6dc34470fb4f6b6f055116accd407aff86f8d1397430732ba8e849d7d81f3c30f61ce078b043fc9e2b7289f741f65cc959a8ffeb05e79e3474481fb74e72e8b47244d7d986637978dccf9cf3cd33ec003347db4967d080b2705fcd7e5a1c01ce91d6119c0087b66ec1918fa689847e26deb06d0a9da629532e96950d9d86f3db759c5f5036a6882bc3cd40ae3a43b12232d40189a6ec607ce15efef038d4476e78a47528f0cbc03899af904f0f4607a708c1ff6ea2c85a7e410d9f51486178661219a9626eb7aba0a4b279d1e78741317f49f14b800d1d9025e560b655bcdcf6f3c579f248599e1fcdea704558d6743a5158a0c48efcda422aa783430a3207ff47ea8c38c0b61911bf9cb682f153b9b28b8554f6203b87446a02ee7c8b4c9fb2a56a81030f1950d638a8849b0021e78f1b2806a66a72bca0de0a3596b5027bf58bdccd59f003358a7c13bda9820328dd0af5caa8add27e2e5601ce1e22e838b45ab68ea54632596a29e7f5a40c11defa19c8f7020ec03b1ff08c0b8e35feab5f7837c495d05453fd21e9dbade8c2d212e34cc6a4b889d0a60f1f1d6430f0150dbe6215fe2aa0bece26b9c463efc0f4841ae2441497a41279039bd817c80003c8f7eea41248123c0adfea30e8c04196a2253676f35cd8622bc7c2bf9e34783d93d690bc4679bc871edb4a61010add6af269b9a85b39e23b853373666454ce00b303ec683f006f23478d5500f5445a8db5eaea7ab86ab5d2826689244d8af6c30c9d7602a1b4e7a7699e379ce5818e31d1e8485a44776da8395694a94432ed940357ab5d96a79fd57103557908fdf2c8bd8ed35770d06aea229f5ec7a72b73ba28e181622203d74b0a349a54511cdadcf60fc0182e5bb762be2eb516b8b798ad2505bb93c4586de0a113f58a4d89d2349176a2665a9fc3ed7b7c0abfa7c2aa572a55d5fde2371a50a9b9c8fbc7a0a3cebdc6276f065e1d7c9e034cf071a5f30e6af58213a09eebaaf96f1f59bdbf6773c5d999862a444d1f6d0220f1ed33b2faff156bf238df2ed4f8305103e4a366ed41e505c233ecbbd0155906d0c29fecb0ca0db115180af5570e6f698831a54f261aa32f9a63c0825a799f48878727fa24b4e745723ae8e683722e724390947f8c1fc0e491eeb781c82a4807303eeb14ac56547fd9b1fa2468bed46280c0da727f2c587f780724b8dd9361735aa16bee815e811747555d451300c330d665bf7809c9ffc500f783950a6746e719b1947ce883bb1d701ee207cb4447c3f00d3869b835255f9553c1e55f59affbfd8ca027f23220f126d9fee37c76161597b524d59815f03384ad88b624627711dd3285edb10eb8370510e1622d2439acb8ec1f6d7fadb0c2f9488eccc7db247114255bbfc65ef1e4e6153804c5ff4e11562d7d44ff10a00a9044128fca8acc734a44bbb0bd041da0107f105bc187b0bb926635da573a19378817ece9a4828ba10ed1506ce81891a0ce3089d86ad0d2695e654ec7efa8c0116ce20a6a9ee20a06bbad041812c858da92fce7f3044533d7b4bd9d6c4feb44ff89062cf149843e7afffc05bdfbb79b092cc87bc245b4b59b512b642280280b41eb301c7af5b3040c2996d72e610192d2209c8033b9a74012fe98905d2bb8261e0f9e239edbc45eafd5b22b3a0d05cc91280d9b043cd1632b040c32bec72daeebac55a7228838265e3c0e155bfc528fa90702b0ec98bb9cab457e9c724028d9a1fc9c32c3d5432008e6b289eeaaacc0a02a9938da4b5dd938614b2900bd2557b339fbbb8b536a5bd8f3118150b958d808ba355dd698fad48ab1d05bde886a85a7abc7616f3b2d54d73f92fa2aaa539c6c050190ca107982c23bce877be5caf02bd6f3f9244357cd04b0232ceb2f223424f16dedd94204cc30f3cb4defbf7ac2828acb23e71d04a64d9934a869eaea5be674b22d94fb6fe2dbd3bae3bf0be5dbfc20b617030a6a6178128c04a5ca2dbcd64982e6f39f04640451d7a25f02390e25f18402e1642590cb84829cb1b9e2772312e3499aa7a0c4507b5b340a1d00e55448e4973e72b56fa4ece6cfc02e0596f672a5641dedd9c4758ff33e7fb364a2882e6420b9e02041e37859ab2ef81e1b57509c3c98351c1b2c33ebb5cf6c4b732a980fb3720c548c34fa993f8a00bdb0b79afe11e1193684e805ab7583ce79e581b25c526fb7b3e95e6a7ffc4984344390be107f6d1e345df89b484d710937f2b273a3fc748677d0e646861f3842f8f55d4910c6a35a44981615b01b904ca2b941e5e1c385548ab2634486e4b46251b6a0da05390fa714e0e781eb6bd070076c754ec7b7d5fc81c278f828fdf5941f00b7fcc859d8cb66cb685a6ef1cc50b6264c9b581075a2db8ce3668452c8f1e2303e5cf4f80b233312d8461410f6b3d702957e81e91f3defed301c494150a809233862114b972c73f3d553e47e7f3991614334784eb5c2aaba417a4e313805917b39be52fb837ca3c73651dda14e9fcd7772d85629ae39a71f83b22e9cdc74f8854b62c14d62e11353fef13cff13a21b03c236e76fe35b36ec2bb119fa029059e5d98ed93070d31b2252e8081500d3d08b13b1daa1935c7e2fa481f5ed0848ac83da68ba0ad2c444c0e8efd2a8120808ae20e56b1f73f752fa06152c90c381db46eac3f566f174181269eb30a48ec393dfc91d500345b95afb8745a2f98c295dc44a84aa85753d4221b90e09ab4225772134a344aac8675627630c3686bb988f4a8987b804e5650d8130f086f3d7546b8132072c28e3cbdcbc0b719331b3f594dbf8c4bba4c6b82dc7404d96bb406c7ecc3df3a549eb8966e12af3de0f6b5528a4fa045e34c44e0d50107866950e187de3453ba13946c7313a3ad2f6e0721c31064d7eba63d7d17ff4c91b0c20a5b06cfc86f62a5ae030426e2605cf4a8315d5c848c0ae073e6aa9f0156c04dab6ee46f6967bcbbda54c49a6d30c6b0d960d8f217df7dc928cc72cf3d10d6de01d971f3f4b822d6925115445ea9d9546e054fcd3bbbb3b11bc3be47b9a0ad97997599d4bfa06a80aef44d1acf9642e69d4049a4f661015bc6f02dd3889e2ace2d2f9e0b8cc29736846c1b46896cec7c7907867f5dfc9fb6fdeae73b2a4285015ffe5752a16c5aac29b254589f91dcda3071985ab702a3e90635a609de4a91e27655538f6fe4e859d8fcbf55ebf243e22aeabe761e74324d379ff20b1f3e1c95e418064afdbe3021244ca554acad46a9592397a805c17902041b2174f9694256558b2178feb753ef2b878660e1e1e170f86e437f155ddefac763024f72e07cf5f1e170f0f0f0f8f0f3c3c3ef0dccb53f9e254c8c3535d3ed4afc8bd9fa37e49dcebf25ce7d363757844be23d27542dc5d2ec8b92abc98168d1a52952651b35cae94caf5f7e9adb3cacaf5dfac32a368547c17e41855ae0aaf4b4c0ba566adb2a41eec373b8fdb91fd8ca259432c13f7e34fa2abfa7b9f6b56eaefbb743ed7eaf0a4aa72a304f0236d88ac7e2e4d31c4c1c1913838cf2bfbfddcd5af3e4b6a169666e17cfcec9529655a9aa5fa8e7d30e57e720a91db6fce1c6be594667d52088a66557109a5595f6c22856873b10d3e3e7e5c822d1f1f837c7c1902c802f2f1a513cc12f2f16550b35c1f5f3e69d68fd67f5a8c03b75a3bff794c606be7e3b3ce7f35f204dcd2f92825fb9efe5183548c0b8c8a0fa4626180a8f8422a460646c5dfc1b880aaf8ad0ae3b12fb02abe0f6c0b9c8a8f690155f15d7509264e57c762676054bc794c0dac8a3470d098c1c30c193764c4f8183637363050305eecf0e2a4c3a926871a1a1b3433356664a84c8c8d81a9302f332f578753feafe3415cae0ea7fc67e870ca5f860ea7fcb9abe31f43c7df46c71f860ea7fc6b74fc5f64d8865d1d4d5e9d2e728177dcafce635bf0d7794c0bbc13973cc75f7e137f4e0fd3827774ac4cf29b68a5168d8a488d8a1f955e8d92489e0efbc1a49b8a1f83621402028a43313a612ae237f193c438254251c52351b3acc4679e999939dd193ee2a4ff20102bfd0783302f8abf4abdbfcbffc7f6c38f771cfbf9bcfcd801e17ac7f9847c001ec77e00682b5ff5f2715441ecbc5b9bd4fbe3d4cfb349bd5ce1d8a4522fdf1fe7694a27556d88a47ef54252bfd249d998fa9dfaad9ee77d10328094c5f90ec8ab541fc4ff87bfeba9e47cbc8f2f89bb7ad805e1d646e7fd538ff3aa6aa3f3f255363a36c8cfd579f9a95f3dd569e9541b223abff342747ea7a5f33bbf637592b8aa55fd56df9312f23dadaa9f7c1f7686c04b7d1784904fd92384bc8e3d22c8ab7e5591c4ab7aaf9fb448e215626390e779ef7e00f2aaef8e4810cb3e16895fd717800f001689df1f40fc7897fde0fdf1fe43f5384f71aaaac28e88e3ac5e7aea558ff3c37e4a2e110742955ad94f3e12f7befe41cd52a9ec87c463b4e2f93b6954bc405ec7ea00791d9dbfdbc579afaa97f54b22087f15140fc7ca377544fc75bec77bde716aec7ed02ecec7cee7a6ecf77353a657cd5feddcecd86fca37ddacece7aafaed7ccfcbfa3ccf9d4fca32012f8e3de2bece77f70390d779d811b9afb3aaa99755f538f54be2e2fcaddfcfbd4fbbf3e1e7aeba20542a15cea756f73e4efd762c927875b85b8fc0799d55dd795953aafa2571554f57a9552a6555bf63b951aa5f3d4ed5f98bf33a38b5afaa7e48e2d5798883536de0fdb93644e4e3bc10f9382a3b47e0d9fc201fe7715eda78edd7c4d5799ee746e13ccfad7c75ecfd5b81bc17b93cdf53bf242e4f74b2c93c95a1407e7644662e90e7a9feaa4acd02623f78817cfcb89bc279ff09e4574f57d55f28f080fce7af6a43c47ff52bfbf9ff5cc6b450d56ad509f12c9fc2a9d3b9a5667da720fed896a5ef67ba94d2254e4de9ecf84e4bc7875b2ce9c7635a302d8d8a1812900aef8fba44f48121794ecb6259fce36ae7571f9ba5f3ab5f3dd72cd5af5eeb7c561b9278fd378e03f47a81d33dc27ff53b95752ac5495de0748f48fdea7fee0e55d5d928292dd7a8d4c729cd4a7dfc9826383838ef55c77e487058e7231feb7c709e4a1c1c8ba37ad7d9796e714e542ae9d272a35ad6c63f5ef92acb8ddab136fef3aabea775accd5d22fe4c6956eae347279d1397fc26ae52ffd9b85f6c22836294964da05c95fde2931be78def52f0aae84196f8393ebea4024a26cc7c7c9945b3747c7c49045b3d3ebe3402efbc7c7c99046ec17c7c69056cedf8f8d209dce2f1514ec1fa9cff24146efc19650ef5a8396c604ef5b0c585cf430d651083172e7c1d750ba338e6e2c2cff1850bdf9b78ff4142a68f55dc8a4731af78587816a6cf3253669a9d8fa76a1f212d75ecb88483a352550ea7facbd453e756952f8e939b52bd3fcea752a9a738383838385aa87054cf1d8e4ae59c7a554fdb3496a5251cf5c3dc70e3f3503fac0d37fe8dfa615ddcf837f5a381aadf8c1dea274387fac5c8a17e3636ea07a346fd5ed8fad5d4fad17cfd6468d42f6646fd6064d4ef2546fd5c6cea678251bfee45fde8fd30a4afe3d7d48fa3a95f763f0792894bd80f6e4cba9f445a02de0f439244ed62b368b8e41501798e134dde653a3a6a62fa24f363fce884294686a27330241bde513afbcd28386248f387aa6c76fe078f32cdcecc3a515d98a5f2614837ca677867d1e51a3f3e9a803fde84fc6979840ea69012745b97a7c881146ec68fbd117eb3643af19ef00b0a0b7bce924d3e7aa322efe1b368a9e347798fdf44bff206eff3a397262f1ddb5f8d8a9e2bc1c1b32132f3fe33ff73b3cf5c09468353b66dcaa61427f44efe30355689427adf5686a0edd3f79be9280ba48845a4a32c1af5fa711f924317385dff388ddab63f7478cadedfb3377833f3a346c5e806ef8353b488eff2d1c5c6262eabc4286e6cb2c5abdf84b6e8d456a4f48f58b43bcce24affb6df1c8a427f34a4ef47fa3774ffae5a6b59b4bb6cf9d0fa94f6288d8a443f4343d10d1edf291fa3962e3c976e2352a3b8979c64ce95dae0d910f17e2ee75a7a3a763e10e619e659d3b46f99f6a1194b2d17d3439f4c6bad693ef4e243d1085a6104d41161095fd67ea358d4a818af340aa959de9c7ee4b15c4bb32e60e32a35abfb08e13dc5e89e3b36f9ee31e9f2990b91eee5cb9f4b31aeab7c63171ee53afabd8222227028516ee49038dd290dc58d6f7ba86313cf89454f3ac809922c1679b5bb59907f3ad8d1efe920b4ef2a61e723e17741b7939d13d9d3cdf7c20e055025e5fb8b7e3cf257c472a3c9f4b0dbd44bbcfe1e875d3bdb50342a7eedda05354abea6f538a4b2b54cb9b0ca853d34347d080e9e7ceda150a358ab92ca4abf2b12dc9548b82bbf9d78f27bbc6535b272715cb6c228e872dcec59b91e8a593f7740c8ab69b6a1804fae5c8805122c9a462f3e3ac5eff11c38e54fa7d50a85fa3f355217ae7f17473dc45bdca11eb22ba969dacbd7aa11f1a912f1bf9f1b6d06ba288858d9a3fd4679569d08de612238c544f00ebc455d985b7867b8fe71c96b129b4c894da64ce9e9193c1193a8f7a042f96be59bf83747396efc8f91746efc7abfffee391521155ef4faaf5458e4cd095b0d946d7c52b87eaf82b7840d11971bdfe5fbb9523c201f49bc52806c8e4017f6d085d9269c4bdae937cc0fbb0433d06538861d867b41c9789c7bdfc4304ef15bdfb41567b1944d93373b4fe3b22c28ddb439bd0ad9e4301f78f01de33ce9bd300ccbcb1c3d189f9ce7659dc948c9297e092737c393a3d941d3333c5cc68b31726a5b678231753c1889b75c1ec25e32ee374e49cf853946a3bc467166da3aca717433693e3d6f661f8f170c46c644ee2193b1673dbc0a1ef4cca361d738d5e3728de7d2237baf82079d3fce3bd5708a5fc7953de4de8f32935996d198da9c337b6e54d5b22cd3348f334a66969cc9e81042e89c13ebc5a4949233ccaba07db71a5aa8f2cf989951382e4beebf181baa5cb29c92532ca36b1d591c3d074e65eeeed994d9a4a8271efcca297fc8f2b35b659459966513662e2767dacc30b9dd70de6474f6e19ec5daa351fcee710ec97cf4e081c3f6ca6f58e314db681475c916f2a9a16a83d8a95159e636c618dda7bb239157869b76bb99b163d4e2c17788411573d482753e6c91c88a2eff332af3f82b3633c9060fbef7c466964df11bfe24159be2c18ffe44c213d5388c051e7c7fec89e74891463663c2e8d2654643baa4d1a2e750ecdd73a1586dcec41131e7e9c49c31331279f9bb286782dc0ade51d26bd5a3c8abb0c3f36f6e52da2fcb60f4e189c4d6f9f0736c659c938dd44928a5785cf0b78a1bc7491c78f039761cd6020f728cd11439c819334308d9fd33f7ac778f4635b333fbc7192ffc5697b3397f5eae1c63c69fc128a4e421d8296d6c34aaff3d877bc738fb6e9b6db322f7c0fb9eb5f04c8b47363bb9e6516630dac0e1f1b8fc132693106672f4efe74a28bfa879a746f14f18ee25a3311c7742f8a38df143e204d3f9f077163cc66238a9030fbea43271c669660e3633bfe91a0e9eb8c8f24547098580628c586597b6819b88457fee2162989431b28bfbcf8b316252c61831897d8c9894f2e70358c0e05d81a0b76469d61663703a336a4444148be0cc4c44da14229a4231f7e3d7bc0de90e4fe3587337d1b7f0a70907510fa3d4856f5444a432d2e814221212a2443e436090caad7e3682adb62ba644846c4fb7156c696f58694bf3ca16787cb5a5a8048e4be02b386712c5a22a8a88a6709d7e4f43139d44936812c92824d65be39af877601c2a13f3d22c8d827589ecb7f7d1d1ca2e3a6f47a99d442693a927d112ef98becb5c18b2a8d15353ed2b59e019b5d17598efde088c8d66c4c5da687fa453927594e8ba8be54cd4d4fd1197efac122a4ae4d3239d92f89d65970a8baa90c28a2db7b58905e8522e92b62682c302745d2a2b75950a5b51c402cd4d96934b573ef1e0fd8f5b5c4f7fbc83051305dadaf4b4e18a084ea2a68d1b42afa0469c13f08990b7b81d5ef6adce87fb5627a4afe9e90f2ed62554324e080adde16db36812354a3af158449e035d5d144e4da13aefbc72051eccfbd325de995df04e1b208b1235caff8566e194bf505a063370ca3ff317a754e0d1fff8f5e24e08cc7b9837e259fa30d6061a79bfa1ff626160601ec626e968179cf277a144b40d97c2c1ca75cc65e9d2f684378b886ca085d01a8949ba8ff6c745ab90c28acb55ee521bee974c20179377519940ae8fbe2e1769e09c95df8c81a91998be201053376495ad286201b7c5ef5675c814787348a8515308726afbaecda9ed69754e6ddb7375326a7b3a9944265993e0fad34ec8cfa52fd8c298dcd8b1125d7f0742efc0fbb8ebfee5250c8c35e2f249ba7779cea5daf4dbb40dd2972e71cad9259fe06490c741e13c2ee83a7dd90811dfe58d44aa74fddb1a899fa47b68bb289cf28732055e34d25e7ef72bcf79a8faef08c64006d808d8a24896dd10af34ca9f16d11d5ec6c33cd04da68f5370e74ae0943f97992812ed240fb7c3e3e9bae8fad325aa44797a78da24253e7747a02b5a242ac02a7f07c1f5ff7e5cdf7204a7fc29100e482784e6a2408ce014e5e1a810d0455f28f0be585444b3365bb320413a1fd307e984f4a5f48723109d81bb74297382bee8968fbea01149f06b0af18e8603dee14cf4a99d42d60a3198aee0b828b03585a0cae5ad10e14e18e4c007d73929d7f41fc703bac4017530299be20860e89e08272b1fc91b2b15ee7c1a763685860ce97c4c4f7d601fa09be856e1e5d7d5bc28166dae686391df9cc0c4d1293485aeff56fb6a2e9d0f5c57ba055729179cf237553a06fa03076bfbd0f968ef030582e31983eb538851feeca22ffaea272d749d8be2fa734f9c81738cf09b1f3a88b28272bdb0029eb40b06013b71fda7954679bc6264639174e27db1281645a33a8966917fb7a48b025b7cbd83d2b9a04b41c7a423416782ebcf61f98fdb729d63039be13a1786ce6e23d0e2bae5ac70dd6a4b1c14c62086cb2de13a77c5f5e7ae70513ac7084e881b7a29f992e7f8734decc74db0e2b4c441719d0b9a175afa9ac263978c13e0e0c91090eba3afad9a2ead3cc511c070b99a5d2038aeca4b2b2b2168e96e3e9b8e0bab5f9aa551ae445f3af0b0ffe84b5b7222606b0854f977ddfd5677751d088eeef0e6007800d0e3145f2c9a51b857b85ec42978a509bc8fbeae3b7dd5a5215f3b8d126d22fec026e06c116018d6d1ff2e81da04f1ee85d0d7e0316c9b1941c8ef4da1fdcc655cbcde853633a2c2fb5c9a5c9726f0fb5d9c34cbc8dfbb1c140510b040c20a7ab024660a148cb959d947e6c9030ed6f61eed87bdf6322e7f9c0f6b2ecc81595d8b83aab6e196d749ee9c396e7fbb983aae7237e0ede76e0eb7dfed09b39fbf06b70f70f54b72e7c3f93d1d1f7b683b462ba0548246da0bdff80be8ced164a35bd0ddddd0bbbbbb1bb6b7135248c375ef26502c0cde37a90721f5d00b5659c2c2304d4ad41f7299f7a6eef326b67154ae5438291c3cdcb841eda0430e366ad8fa3466c888d13072bc8f1f40787aae0b0001f009226408111f7e1000100308a2881004288011031c39c0100848800216c080063880880740200245c0b7f9d47df13ddcd3ffb8355f43f334333f23f332311f03f3302eeff2f22f3a5e8b03a75c47d5de0004555b38b5e449e03fd8c4c77f304808c87f7088e73f38a5e73f58e5fe07895cffc12200fc078d02f01f3cf2f90f2205f90f2609f90fbe86fc079588fc07977cf8af817ef8af9b08e0bf0e02e2bf161ac07f3d14c47f3da5c87f5d4588ff9a8800ff755101fe6b2323fff59101fe6ba423ff75d201feebd710ffb51202feeba504fce7400af8cf9b2ce03f0f62c07f2ed480ff7cc801fff91422fef32a0ff8cf8920f09f1745e03f37ca29c29162e490b2f9af8717fffd38fdc755d4fcc74ea061d682cc7f0c8698ff980c30ffb11a5cfee337bcfc074770f9e19d8009833a9eff060e64c9e7d7c13babe7674196eaf9777807e7f9814056eaf95d41a00f0380ac9be727c011c8dae1f913d000c8cae1f9213001c8aaf1fcdf0520ab3eff12bcf3cfcf0464d1787e0ff0ce8ce76f02b2643c3f0c0164025b30381eb8a5b56c5a00e0d6a955f3fc05e016cdf32b805b33cf1f016ec93cff11dc8a79fe0c700be6f93fc02d97e78722e0d6cb737777f7b64999cf55294d66e43ec74fa052f17e0993e91281c7210e2e2aa65fc2e4e4a2d23d931e2e2a5147edb0e06a770514ba26c0d61530aab60455fe12a85a1be08d5f1b9b87f12f5e7c8e3f9d5ec7d7d0d03c8f9f99f91e5e46e6591f13f3390fd3e35d74fea52eb1f3da92e748e0b123cf9180ed8cbc6519aa5affcd223c020e017f8013e10ef00638037c01ae004f4023a087e803f49136401be90234015a882ed241f4001a881640fda1fab0444469c84b485210249fa3001801a0c84574abf44ce1190222f423c84765bff96013cfd9d6006ffcfd19b6e070fd5bd6684b03abfc75ea360656f9f7a8db1758e59f53b72cb0ca9f55b729b0cabf87ba5dc12a7f1e755302abfc77d4ed08acf2d751b720b0ca3f47dd78c02a7f1875bb01ab9ce01bff55dd6cc0297f55dd7200b71d70ca3f55b71e40943f8eba01a16e438028ff1b753342dd900051fea8ba5151372b20ca5f87ba35a16e4f80287f1b759342ddaa0051feb66e58a8db1620caffebe6054ef9d3a85b1820ca7f46ddb8a85b1920ca3f46ddd0c029ff9737b8a801860c316090d1c20c15686a4d3dfd78d1834dea8889a7c126604e67046ffc39c832e5ccad9314b2b01a4e1ab54569943fec7ca65c7f38d4dd5b159f2d0a87a251be05f96c4f1ae59b934679f63d9dd9ad09a73a21b8877509f8d97b9589d37df9ad3271badbcbca84c7c4898979e3c320f1907857f33cef3dcf83a95b149b091815e4375070c028ff982a57e54f6b0cae0da0ca5f8bc2107234b9d80d8a985529d3426d097a316a75bbd2a8a2ebdfdfd3305e7ccdccd3e678a761681a841b90df5818f5db806ebfff8bfa6d36b8d98ef7fe5b083627cd7af91d8c05ccda5ec03b1c0c660059f2dd32e15df835f6db9e5cff4d05b00567ec16036e69bf2db91e633fef616cbc52a66bbea94a69e2b9e677550afcacdb6c70fd3fec688b016f2a80aa97ba39d99ee094ff563716f0f682bac1a06e3380287f4d06d71f5617988f794d7b19996ac32af8311506aae067d5aba6da5005bf9bdc0cbfa83038055fd6198c82afc9c8c1fd7c07d7ffbb214dde7fa7c8395c7ea0cbbfc156f6fc322f64308bee6ccf6f7580015bf1f96bb8b8b8bc8b8b4bb7942627d77caf4a69d2c335db54b5a52e3867f20e7cad0bcd0d5a1c3620bfd99c5c0fda9ed858b0996073627bb2a9405be294bf0c81d7396172d285cea83beab2e8aed0698146e13f192cf4c871d31965b56302abfc65edae6014146af77546465de8c070fd63edb270bdbbc2f5d73a2cd73b2f5c7fe9fbc29609ef62339609ef9a64ec47a387fd4ef6f36e3a23dee9de9f7695af04819775462e5609258468d77c9f8b756faa4b20f160fd5e601c672e09e47ddad2d5de81ae673f36322a02b72eabe0fb6f56e07fac84ed09ce79a12d6d40bcb364738277e8fb6f27e00d04dceade7f2b016c99be470ff85f8e4f5b82ff558fda4fc6df54615805bfab1aabe0737586b7caf1e4140cc0472f8c452f3cfcec6802fec8f84307a7d3494a4ab36f66c9f573e2314b0c934830a72169485a16198c42946d7cf0e87e2b560c8dd259add648ee7cacb6130ffb1e9f156bf7e804c3b0ca01d82ec34a4746946d7c9d94837a466155785f0f971e5732393052fa3f374a6c08ac728f610fbbc865d9cbac878f1e99c99e1e3e20ec1ef002a795dd9eeb9c1e58cef4d9ac0ecf8648fce1b02a30efd12797308b3b94983f7ceeb00c724e2e67e5f634c5fc3309a167fed66b547fb3a2ed9e49fd83b9cb126cd8b0f1100bb0193aedee7cf8bb8effb1430154f1cb875877cdcf7109651bdf2c523d773e467ca78bf3dcf9708ec4498959399e7fe31766d1e73f316be6f963304bc73b7fc62d95ea4ddcc2c199e1966420aaa3ca992a8f241318159fab920a888a9fa3aaa6b8aaf8389e2abe9450b8aaf84edbeb12abeff1aaba84ea611ea72e81f33b5ed625fc79a452a954ea7bba22f1eecbab2a12eff6f03815897759ef158977733e088e97c27e4451a5b1cc28b0cec7edac92aa8da593aa24ad5ea552a9a22bbd523e5a38cf8d83a383a3f33e5a3b424e9ee7425a5552af5aa9785ec84efd30a21b5fe747fd783e763e403e48f580f03c92788100e964a2134c8b466ad691c3210bdb5896d4c7d57f271c55ca6259b0342ad6a45e65bf7971ece7e1fcca3a86a5b12ccde21bbb4c07de8721293d0c8921a5ec37b957591cfb9d224ddfd7d5d30ea7d758e18ca9ef9d14d9cdfce31ff18f56091525dd11d32b997f247ef747fc5d4c737bc62282abd18ce366c1d6642244b3993601f13b6b3313e0ef626da6e98f746fb236f261de66bee9d975c4e5633ec6dac88f799b696d848079d31f817953cc2b99476294983ec6da4c1be3a2047c430c4c7da91ea7b2974f7832c8eb777953fdced20a3b2805a7b2dfaa87450457abd89dd50aa7b287571a9541a346653f2d2c721d78993d021e7513fe03e70e28dbe898612f98f6d96b1ea77afee41c8b59f66e0f7a33f922efac280f1e8deacfe243e15d9baec2eb41f01ec05d0839a27bbe3176ee1e7966d4b188e07ef13276842cdcfb7137c628bcece147970d91eee7cf8efef659fdaec228100aedcacdec10d04e0bad70aadfae28859208ec5d54b3709c62ecc8ec450679f1ba4a69a3c7b1b3c0fe0f4208bb2184104208218410420821eca22122843d5db48aabd5161c5ae11d18432ca00a1e118df21fa2510e89aef440a873a0cba195667d738866e5b02b0a66d13c3f246256cd73ff805b3170f8211566cdec805b9ffa0f42910366c9dc805b3670fc077170f9210d98757a7e0805b650fcf009432166c13cc12d1c3cfc07577002667925e0d6ea0664c22c1e373f4960ab073f120e28c12d1f287e0b308bb67a76e09f00b3b60f800e0e6096e999df08b3b2e71f8259b32500a8f21cfee3295c7e209885bd0d7e1fb855e4e32a8c0461967c863b0072790acfaa592f9e9f47f768967d7e7ecf7366fce99fc6c7802d180527c68558d8802d23a0ca87b8c13b09e094c3272bd8824250e59fb2386c5c1e70dcb05ff3802d0805aa767807da80533d600b0ef9802db8a407b6609300f8dff0b8281f3bd8af75b01ea4024e0900b69014812d0e4023b095640adc01efc01070ca3f072c6cd8a31af6eb4b5b0a4ec1b715168151f06b854260f80346c1174bb8e23601850a2fac0283469d0283f8264685407c03ff050c18568924ee8b17f6fb01bafd30caa9866646060b2312300416fcfa8943137050f286245b3ee0060fb4a1035d706069036c60620d1a5003122d1948c3126850e20c492861c00c17288305c880449623c6f07151812d8c7851400c13088304c0500496087c01025e78401788487ae21f03f3e2b90841b1c19015a12b04280eb8820b341ad0842dcc600013b4206301465ac450c012b26093002bb0000301555ce1c51057904e075082156a8e5051051a034c418519234559c81420095388210012a4002384145128c24741301406c04f00829d2000c6e207bec2076e021166c2103612c24b08c256f8701501e02b006025b89c8acb53f414c12570c9f537751cdd6013e8440541b00974c2c30304c88f1f3e7cb45a3b3b3a3a3d7ae4e4b0583df4c083c78e1d3a74e4c8b15aa9543838a9140e1c3cf070e3c6cd0d0ab5c30e3ae890430e366cf880776ac41ab7ad5b2abc53bbde7e0805effc23f177d7027dc08e42712049087807f6805340fe5696ae10b6d0b882068d194d983143061364c88861142386cd126c6c60580103c68b2a5ebc385d399d6a9450534343050dcdcc14333332453232314988898141020c94e2be4087feecd09f1dfa333bf46787feecd09f1dfab3437f76e8cf0e2374873d7028acf04efbc323ece7e4aa2d70cf4f4d0f4d0fbfc9cdcba68ee3ace7f2bd65532697b9fb47cfd15cd45bc2fd8be7994ca6e7b87fe138137431994c2693c973814f376d66988cde84fc81181604bab9d8f39a402993c873e66742fe3dadb9bcb2ebc8fdc6737592b7bdb62ccd72f9ed6633803ffa3318402053887760be3f7b01efbc7c3694d5e0b697e9c0ffcb769033ffcb800024fe97d9e0c71226efca72709704f10bf36d304be66fef75c90e0f06c6f3bc9ff337294c7ab8a85411f02c61b2726dcfa4874bfbee7cbcf6cec7f33ccffbd9280f3e7730d0c5d4712f9c83737c2fe06718067bf836b8e3335df85e97307917c31d1fcd85cfb0870fe6ce26e60ff4698572b3982b948253d1638c3c1ac5df2cf99131ec21b4c2a918e13366b3fe9e9e598cf6eb87b165dc02a5b414c3b02ab1c6e2e7e3f237d13fb2271628db40828df5e0c6cded93f7626a59340a6e30301adef4c37e7971bbcae84934746bae69fc8daf6751a22fa5a6485c118dd282fe967d468da891b6b40165d906d4a82dda92b6852acdc0fb180b35f26ce0cbff7149f945a4eb1f3b1b8fbeb8e5b6b6a5953ebac47783117edb2170495b62a322458608808bcca12934a45945684b93685e994694051edce89b2af7024eb98b5da1507f92d657520654e06985eb38aeffcc625ee99cf8accdca2cc2e2fa0f812d6d8955feee46d7cebb3d6cfadbfbc3303d7dfa476cdad22bcbf61f7d6d4acddab6ed5be995e595e5a5b43553bb017d5388227d5a5afbb8947dd42284fba8f4860b2bc6fe948b3b89e821dfc0adc601cb2d498049b856eec7b7a374144e2551248a715b9ba073d1e3604cffd9b8998c29fb1a54c7a53b3c99e9d7f9346fbf80ffe2c50b48c3dc0c2633bb9a130d5f0851fe3072512333b305a7b8d02a1d036c2a4a5c888a3c2554e02be9dee595c4efdee58d74f6ddfbbc860d5d925031d27db4494e6ad00209555c9d958142052e765191c190dd24e37b5a880c1bb7d0f1c2c640ae66d7c45d534f2108a1cc9ffea5f3399d4c27cce497c2d0dca02dc5c0fb6251dc6267060d5429a3af251c7d19798e3c6a2d9a25f3fef1c53b33ef1fb7e01d2cc6fc176f4354ccb7cc472d624cfda8114d0c4d8c913135267271fd63e6fbddb09addd9c574cc24b2e3d2efaabdcccfc8d0a7361d8395a87c36ae8c2310d93c773e26bac393d1649c6454beb4860702531444d7466f4bbc9f17ce789bb6696b23848b0bfd2412e6a935e2f22fff629374eff2f23faeed4d373358df3802d11219800cb3ac3af682ae7e37206d097b6d48735f8e1ac193a31b0ee882f4c7f062943fbd42c5c9bdb97c058a2e5c1ab9ad9a3ed6205898eabc9ce95da2ad4ccc6bfa3699ecb4128be69530f0e2bb3cccbffcf6dcd39787f98f2ec1fccbf7f4248a4593c825d623dec35825548cc8877925dd7bf608ccbf5825f2612c55f21b970a87ba6e17561dd7543d0a57bec0db9e73a7ef0fc3f4dbff11f4e7a47fd42c6a892625e21b6a8445a3fc07172c9ad5acfe1b10b5fd0e0f7e4fc37c4f6f59966599a6691c07636370f63433eee338eeb9a75a6433fb39676632797d03dff4966b5446939ac5d9afdff4fe30b6a7a64a932852667aeee98dce87e362112a1a354ab34a4f2114bcd837f02907c42dd1d228a74bf4b58a82b906fc829727bf33511a4ac372d96dd9d12ca718cf01714d384f46cb9646d1ae388da31bc2b72d556a948d4b95a89666d18fdf7fde8932112c66c9b0661e5e38e7122f718a7eaaf3a148cdda6c90222c8dd282075b66f654db78836e32696d7003b3b4f7d7e22002ce19e2370e5b454095b6143333b939e734bd8ad368111de5668534ab7e672a56b34b3b6e06abdcedb428ae6b4b300a4eb991d0d09459650978773a88dfb6c2fd3425cab510bc2f1609a1b934d31024ca6dab5fadb01c11f06340b84a7e6727047445206a5fe035e46877e7439f3a3b74d3464d1be7e2e212c3c1cafd46bd4ab3740ffeb1327917770f305d90793925349e5d4a5cfee3178d9a84ca91f8336a0c37a3ba1489dfe4ba8bb5692b0474bd5418afb24bbec0dbac9047d42ced595b1a02b711c0d0300d9799b44ec688116386cac4cc18dc0e6ffb1846d8d8546ad4a8a346c178f1fe5d0e602bc6771f4491a07066e0b6c4cc2264b46c46886bb01cbef1779a973befca733807037ce3af75f34d2f3899a7303a4d06cb68be330fa3f3c99eca60195046e58b04f21aae3fb5e17678356fd3f9606ff3361d5f1915cae06a5e46e7833d9dc133da4d1cbc27233c46cd4197c31c0daebf90e714397dc91478f4c8c652239a3fc18c59d20281d4d0840d32db673354a8082121ac861b42041bc1a0f11bc9c5160db86df0a715f8d072d47258a577767f6d1e9d8fc972a61d278099c6cdcc78a98f2d52206d7aba7545de16453ccae2462d6251d2f58fd5086ec13b7db7708167b24934cab7fff8e51bacbe753e5b14700a09cda269b403d71c4f7184a30baba6434764c70c81b7fdccd73cabf3a9d981abe961124da2198f0648dc9a270b48b41976dc7bb74406e06d8c5aa158d0236a44a9113da24694d249976466b82c3eee0ac784ebcffd805b457041c0d142f9b81f7d11712ba0dc92eb42340df6eba2b8d0421f5cf83c830b1f42e156119004175a98820b2dbc01a4c185160e17765ad80c97e3300385c4c0850b93700bc702fc61c3227e71e703650a3c4a8962fea34445388603aafc7de2e0cb3233da735c96052c02cec86838fcb92984121242c5f050891bfd7efe1ab4275676cd8b44124668fc4ac2086d481158a5c88fb5c9bb2a139309ef6e6fb2147220984834ca4f37873b26c14b42c5487cf9493a693d3771b4d2add22d8d6ad2d5255cc7561461b9927bc205760a35aa071e7d6b82b1722eee7c7c5c08b5251db166ae207da15f239a95c40b8ae0fa33a781d9709dd170fd8d261145b29b6d7671505bd2b62022aec74595f88ae04500953e1b57c7e5b7bc13fb0200763e5664d779636b5b36206dc9a42d31515110362805efc0cbc9c8f9959183b58b88b667c2e5a50d87a300c836eeee2d878e4d4b0e8e0660c72a1e61dc13ba0d8992b1d8a21cc258dc4897e4135edb248ce0c1992abd5d798a23a4e152d8f56f5bd357a34cffd1176d42c609e10069a807ce54b9db15d6be5bf5db9d0ff79b57fae43a0ca6affbc5a28ec229011419c2a6ffd8681e65464242d4148087adb61489faf01543b8a729120dfecc2c68b117a66431a5bea285d745442f3629599752a0f070605d0632c85970fd3d887766e4c897df2cc9781caafffc89ff7c05fff9132719948e3b55f932f5f4d485a33bbc08b4a4512ef3326af9a06f71252389054eaa6b6c23faa912fd5fb498fdbe268a2efcac0b22eb0c64f593b11fc4accf54ecd21d9e0ffac2b9cc54d93335ded8054ef9d38c93b57b72fdb3268d8a55fce6156b3caf4a104e4a1ec9231979248da491c4424a4c4a9913ce8d1bdfd3120b288f2084379e1ba9513d6eaf3ed455f21be7c83b36be5ff28ecdf763b085848fdbcfc36395871a8fbc8e59c4a4999a1af6fbcc7ea8cc864d6d35f41a60dbda5b92600dfba1ee17939ec67ea7191b39e5af010f7bc928bcd3f255a5120fbcd33fac48fac29845b32ee0e3461ede3f2235abf3e1215e2d6a3e5c5460e3a46ec08fad042d4eaeb086311c59e10c9f64021438c1e2042510824b666994471a494919c05e49987d25f98a474a46467c8616403184144cc1520619b011145100dac20328008dc0e5581ae533b52f5fea71332a94519923a3e01241e25522c9c59e48bc98957271c4574c4a62820636bc4029065ba650c3cf0a54700508c400743454c5480ad490650636e0c20dda0024055648c3941764210d53b83c8b4655f11c19938ce20c69e439ecba9fe4c27537f2e07f355d10eb35357046ed33341aa0ca7f555b0ba7fc73d45603a77a0d2790e24c861a0ed75b6946859709efc39a604d30270da4b5f0e745a40877e07dad7474fd5ba9595a9af5c9a025cdfaa491dc726595eb4a9f7c01f9cb57346ad6e97f82ca90821ee8e04a10caf00597bf14f21c8e0c476083195ed0459434b8fce590e7fcc8c00b5c4ce1448a14707082cb2530831b506109413c8842125cfeac1a8351fd3dd467543f8f7a6254ff8e2ac3a87e1dd563547f8ccaf164547f4c8d8c6a543f75e1666011174208a15522c9854a7db570335ae9f3fe72510d84aed254722f5b9a40f06646f3c843f22378b946b55dc2fbb0d79c319e93ebf0617c57d8e3dc05e987616361b5f6bb0b02e3ed4bd16cd4f82dee41ddb7edf7dd7e86f6b3c0ed2417c9ed2f891cff4da0e6490456ff398046680157f5df10b72f0605aa0c70bbc87f466edb0f5a2456178bf7c35e89ecbf24b78f981f1f93fdd142d7a2c48d0e78313e2a012ff4a5866d95c8fe9bf0b1efe9ac1bc62b8364ea6723c0e00051feab8ab18151feaa8a29552c4b908c27338468bc3f06e55fc6a782667ccd131a4f2374fd7fc642e9aec6d3c8f5c7813b53a322b9335f1277e6bb1b00bcd07e49eecc53ec356367fececcccd899cfc0cf9db11980f6b1aff95869ec17958850e67b3c569aa7909ba9703e8e2ae5c5cb542566acdd3603353c58265edc1b2fad55e28695e2440efeaee45a1a95831da209d46fbf7d8f7ff13afcc74637760428eb47d67378768d60073b0247dafe6324cf79615b49079b03c46cd8d064500c3a2551a3c647a046798d8f4d1ae57586c0abf13635ba460dcdd698aff5cb4870fdbf2e2169d48fbb33ea87b9e1facba85f1602cb8d8a8989791835e61dc9834d925e0809bd5e7c92ed47c00177e28511494600a7f88dbf034527bd74fd8b4bae073d1982e2db6bbcb4fda6757b15cf692cfac6df9be86b220fcbf52a32081e859d86566294bfbb6466f63650524a09048f955082a1fb612510c25e3ff04a0024ab781ff66a568213afeb8f65716ce93a9213469d4fe1b27c089b6a74e3b8937e652abc34d6973b2b06e4478df2e71d38053ec2f5f7266294ff46d4a88e91e3642aec02a7bcc0a92f5488c5c2244ef9c0fbfce8c8b39079672aa88072fdc8736450129ecc67ffc920dea9797fd805ce69a51cb8053cc3a549f22870cafd48c9735c0a5b5c7f1afb3909bc70fd67ece73916aeffec21afe1c4b04c86e3eecbe50b4967e0ce40207be0a1200631624b1142efc59cda87bdfcc8a167eab0e7f8d2df550817574ce031fc9e31caa1a486585c380f086ed4876db9fe127bcd39e78ccc8ccccc30cef33a1f291af68257302dd7a53479d7652a8c8e2ef66a567c8cea001b9253ae3fed2c7de3d8ab518ebd5210457b4f0abba79ce2f23a22d1422b57888818f66408bb39024fe67e4d443b217de5d4449d902e6a94ff4c2e828262603f11c24550b3e00be1028a102e82b2a046f1edacbb31a5ebd8cb6f5c081737368635c43a215c602fcf71f79886020a8af38f4d94fd9c9e773afd674d4474bd720e9c826f1c4e011ec5202f4681304e196a1412aee3c38a0477bba15cef278d4a6a9463e9de8a1ae58fbd2084101a15dd1d97a9303ac1edce87b60c6a0821849dd90fc2f467a3b581a0a930155364b9b20b0265503f16e3b2125090451af18dff84d268ca21cc062d013fbab4cfbb1ff662b8156d57aeabe07af68413dec45e8e612f6c8b7986eb5817d733105ccf9cb8cca97ed82fa5d2e51a3f3a34217f68ff60594b0125caf8d1faf37f3ff77bbbc41a4a8c99995949322a6a1b6054f4f890087b8ab1b008fbfdb1e84848c282850a241cad9060658a778a81a21e7522fe98ac4da64b7eac4b98f470c96f325d317be69d4c4a16bfdd6a9bd5b42376dcac1e815926fcf27b97bb1f580c97ad141bec937091ab03f13b20232b7adb23eeccceec91d9866d11f9982500bba43dc2e3722b9d4085144dee37790945c8e2f67b7d4507494850b6a1745997a9b0427429cb1c78544801748a51c46bfc5989f047fb6154839914ff79b97e1cb8f1e56b76ce2390f48d1f73b17a44b44cf8953f2f773fec70a595d281c88ade1e8738748be512f0724f4bc948fa4af1e7ee088fcb312ea810c2160e32fc2164e566a4fe2116001f42e88221f845348b8b8eac5cf871d2d285901e1941085f36c3289e74e5f26d3b6d3b13302aa85cf1c113b4d4c4586902d3dddddddddddd0dbbbbbbbbbb82a10a2758dc7ab90a27537678f0f96164f3bf47e180564aecce2736acdfa84671d70633cb7de521a06cc3166994102eb614f1d80a2b4757fbccb5cc35cda1159494328734b3610e1859bafd459a052f4dbbf82ee192a440c1ed2b1cb11556926e3f11be69d9908edf1f8066e1dcd4a5737adea95193b39753a3e09759194ec1ad7a8d3dd79d8f9499bd5b237dd39f178b7c7c34943961c53b7d57ab1cbc03dff48cba1c7d7939862ab97d842aa9fd842a6796d061f4ef0eb68688b0b5006cc216110d5b45c8fffa0ed12fe5022c66bfbe4448688f6094945b0e57a226205f7e11b0250355f2e51f2119d5f6bbb9f2ffca1d34685ca963c68c2b73c89071e52a468c2b55363657e2c0807165eac58b2b719c4e57f2505373e50d1a9a2b6f6666ae44c9c85cb9434ccc953ac0c05c99c3cbcb95363cefca1a2e2e575a93e9cada75573ec75d49e3ca677ae58c2bfb3d29e3caf7a4276daeecf7248c2be58b2bfb3d59233df934d29b69191f8ad94c0baffc1e0174cecb518ca02babc8c8fb9d587e7f258e2b1fd60c5b02952c97bb2f89db5d151886b9768361ee284ec5d0c29b5896d90fb354b04c9b1c7f9bdf99c5de060687c0eeae44c7a35e02651c4f62f0c4af69b6a75ba39a8c3b3c9849d9bea7e79c94c6a0d49e382e08f947c4c741398ea39ab659cf47d3565f45c9674dd37af4d0c01b326d1196b131cb44143144a34e319e0823384fc6c8021ad551466c48a3fa6391212d8096444008e1b5a7dbdd8d41e9c6dddd08773f09a0878f86d16bd6cc62f4db6814efd0c734c8a9adefd6c4ed77fadc567641ecb8da737586c0d39eda55bfa669af754434cb6d5a37b72e881d37fb55b38ec8be6a7695c52ccb5e8647a3acf03099c4edf77e1b37df288fa1d43fed120bca36be0e8859de12cb286cef6e77efa2996527efdd3b79f56f5bf86281278461c67d97a5b159a16761964629cded3dcf7e6da11274cd874acd62af9e1ae5d9f4d33c5fede31bd1bc8fd626fbe8fd665d5cb48faf647379761d89da476bd3343ff37ce7cce8cf874bbcd305ef9c7e3e6c0364c1a488e5cea79985592a5721196019a0193835e76fc1294e4deffdfb89f9703e9cad833bbb0677f60beeecd9b3e78573ce9a8ff953ac36fd32ffe3a2b5e6e31ba989360995b646625ec626317d8c4d22bfc6feb86052b3da70e74f08873bff83584cfff2624fb4336b23444c0cfd9a57123fc61ea95142bfe6d9e565005e2ef6f5ae9cf7f0353db7dfc9abde0472518ce3aa8e8b55bfde5a706afe631376c1a9f93095a6c2a5273cd4d3c0fbe69d0f690661168f7cd3904e26f0359f52ac13f273679e4aae6bc52e9c4f6797792e35abf31d08de0e3ce72e931ff3474c2ff318cc735753f39e3502f3494c0ff33430d5c67b76b9541b0f2e716abed0c820cf7fa6369446cd97a9dd64bef749e4bb78a677b1f0e537f33d0aa7e6679c96464d6e89536ad47c4ee9ce97266bd35925e065c2bb990d676d84d83efe91eda3f64ae46f7f447b6a95c4d74eeefda33c67b3de84af464dbe0f67ff9ccf36a63da203ead66838b6abf83cbd931bd148348b680a22678757c09e6a99a6cd14244101489b99b347777f42c9dddddd6116d71f8b5c857011454896258d8a2d4f2efd346d7ee8efe7b6e571e10d3c2eba5ca31d8b42f634fb8dc9cd7ee21be9dee5dd26a1eff249e277ffe3ca323834939b3df42c7b6a2384e9e31b8979fa3d8dc1c0f82be91ec6dab88ef853abc425ac5ba8048cb775514e3235331000400000c314000028100a0704c3f188404e24557d14000d87b05070529ea75994c31042c618430080000000cc0090a6810039d6e391359e1cd854951550f6b842001e6ad2a544672f2823e3ffd9761cf9b81ceecd39ecf27e9c24c5662eecd26460dba102658419cecce12f6f22391e552d94d47e20392e6236f2dbc8ad787c06f5f01529c7dfb57707f8003dcb4cd2f1d36a8e9fe00d4cd07d782faa78fc07540d9a07af9561a3283f89ec94ad4986cee665152033243400a65e340634b6f2f899a3af0ed3d04e96f9c2a1de14e0e959b20d9f59b34cd24eb165fc5039bd06b38d425f5d4f1b05100754dce29b3eb4a622adca6a8a91854ae10c8db697d36857b25ff616d0d0463ddf619d5ca404c29bb976546607ee9bab86f36a7fe5f871043f6867658d9115a5a2d2b58cf4fc27910dae8b5821838b0210e367af00d19286ac36e28ddf4178cd4586b878372c10dbc8894c3d6714ca82249e474ed4c3963564f0946986fc66eb672aaa3ce90d777d1853a2ff8110c17b837da122298bd3fca9f95c4fc5bca9f29f5cf35f69a576d676ad8d96da47ebac18f9a8a9b7cd9277b33684399c1c15ff354fc55b9cd8ee5c0ad632e36ea34bd5d57813b9aca6c016dd3faf8ef4b703549722d5a037032d57190362a165c92052172977c26f7ab3ba4bf1d137c130907ec70978f962dd5f684db2decf652722a35c4014c230f6614605fdb7e73487122387f0350489ceb02c8eb7fb742c2dc12f4bd6662b78bf41f3c03019319834ae4f8ed16572cd303419857b91596587f7ea5e1b7eaaf74e0ce1c4e5b28469a8a463cb3ac1420656a62f09cfdce65c1f9dd6c0d5f3478bd0fefa1cbe4dfd2c54901a0a84ed2c667f2eb46cf4a62b45ddd6bda88ba6ca4ac5cffadf00a840262d24c8f336a94a4a35733785c394f6c83cd50db59b9632953b17b3d402067963eb6b7d762f67b390e17f813a91be08d3e190fbe4af650247a69df793f46f001a64a1a2fd33f7c4a9aea343151b6e22c62827184e0e3835bac579c5fd0d1a0456910671fba2a7196e5fd1232d82a5a768fc53199b87c57351ae3fb796f87d6b470217f34b1a2b028dd70ca2564971af7cf2f987b4770677021f5d3dafbeb0fd43b2ba2cd228fe207da3b2b65dbdbf81bd727277acc9cf9593bbc945e6a3a70af888cfeffbbe7211a1ebc86cc0fa17e8c188f080002a64d5adaa706a53e982a54c0ee4e92924eb2b13a832f3f1310dd632500396815b7c193404fdb279d99ce90921c1f5a2cca98c17eaaa2f165a359422bfeaa41d088c875cc109fc3ae9f20cdfaa54e79a2055a20de926972b13853a89cede2fb017a728a52839f0fd7ed030914c03c04468674e45f45e29f9d6f73f86854b0d4005cc91efb68170c351a22e41fd10eca581069491136241064e81d4b51a9dde258727e7c2bf1b87477717f08a4227c64aa4c6c148aa9bb586b01891bb93d0d8bc2ed91f7f5134fe5f4bef3743cbe9734b723207cabda42b920848ccd812de4f798c32c07c09f276445df283b588907dc342ae56cbf54d687955ea68a194da91028614f4745f08e4334e0408c12d96daf555caeca0b314f678f21693091c972fa4348361529ce73f6288611d9edb4239212b9b2a2534fa9cfb29374c591c51aee6439d3d95c9d3329bda2a5e882211cae989452164181c28ee69aa790c7b383c715767a45b877ceed26accf2a9cd69fed49e2c372fc1f58b8da4fd8451e97cd98e3909359e78a8ebaf8cf9cb1bb78527c48853639e08df31d5206ed961ff2a08619b1a3b663ee17a8159fb83ae6d6fe5af20f5a475d90b8dda06574b1748a8c526e73206a8cfaca213baa1304e91a9bfd221f6a9e8494dfc9d3f1cc3916b1db225f22fa915c124672227bed7b95db358b14a645092f8397a79ae13ae421e8a2d1433b16dc4b0a3b99b9a1ae42b21f86e064d9a7ea571ea838345c65b839c1147a56fc87dc18d11d28eb0255739e1c6a310850f46b118d4bb51126477502167f7ec9d5723887dbdd198e0d91756750a48ad858a4589a84299f61711ba04408f11c95378f9c9d388efe852118aba1b88e087c5c176911f01b1f1bbcc63ee4d7c0a09f7cb8e0ccb5fd92e450981af43c2e99b5f018b0d2e17db4e9a1951001315757364b2bbacf3e457a5e83a34f4da1762f05200958289734765729e9141ab470387fd924db3f1c726c18eb1ec8e4b7a7c9773388c66e92e9da2189bace49e4e560d83b2091dc46abbaa3c56af72cf0d05ff5d209803d609afe2b6d6093f7924582e18f3ab333d52675b56de93eb0356d84dc8794f33ae5e747756d4ba23b82ccc50d6deec00893dc099da8690ea5de2311de74a09ec5374c83833721bbc925cdcbc7c693658bc0caa76542742ee46ba498804618e3d059dc1d8286756655379112e7c7bd49172ccfa79de0c5ad53e2e7500cb864aabd4c05a2aeafafb811da20486813b357247743643e6045fd5233a294e933b672623391d42af199f19e408d3978db0e32cd68e4a6f38bf7e145a1f4a3beabc5b03c13b58187a938fed20a18f627466ab931e65f841e83236024f5d109f5874881334874bbd1bdbb9bfcefbd2a2937ab02d4be2961a677ee06bcded5a442e3afd8746de47247fd44a6f5a7349bce8fcdda6c4bc3b33a8951a4cc31d4635111b61c87a3c9109cc6c537cf9bea11dbab3f81d7060af2f61c52cb85c3448d3d9be0b4fbffa7a5a0f52956f2565990be2c2e322f08970eba9a80e0fca461fd107b0588c01ddab040e91270668b58bffa453c638658b04edd8950a7e31d62b3e7a302fb56ce38b0c786448bd36a6ff526c9d342e86dccdce68441df45bc5d05861ca7639a37135b416f80729630b084ac37c295d9ab31c4d7ffba5ca33fc63062ec35ea9bd09ef77df1fbeedf35c1d4580dce9ebcce9514cb3bd6f842c769b16ab5cfef5f2cc379812d8ef2d5f3f571b06d7b64d26a5876b5c7ae39ee7ebfa875d5234a465a357414da47e07ff4761a04ce4d0e242b48b7070c5842d2c913210e15050a6c636d708c3ebcc000cb650bbc66d9638827abd9f25601d0294e2c5da29e424b4675fb846179c7d07a3d48e14926a172fdd8a4c092b9b449e9b74ae6203e8bb5dbef7ba17ea69478f00196d9671e319dab9ea8295719246c68da01222b2f4c43b6e906972820aaa384432b215d36a6b769100c0da142dc209012d72e3372d79ec883dd6ead23a593a7399e3247829fd772d2af342620b0545bb2ab1dd7fd4a926f2845b54b091c35d4a1d6990fac84d3fb9884c783a24527889251ccdf2e62331616d5ba8113a2b74d9d60a8ce0c46dc0e9e45402226da611c9d5bcec403b30dff76165121ea60bfde3d62c518a1bca67fe1c78251ddd08e5807756bc2c70f5a8fce46605661b217291df2ab7637230da5ce88c3ef00b31340338271f478c3b9a040758c2c556b34627e4a4deb53b2e3df8387a426bcb790c6196f71d41a9350613e6e872abc706d7431502f81f94da65b5094cffa8c0b75e4daf5a396eab8efd136aa2d9a956d18573de46910997295e854a68fd230bd6d4cd6921f5b6aeba7e0435ca8f6485c9d16c015a9861f71635329f990b96b7ea631a81216895d06f736d5fb898f2230829ba5bee14108320b6369c25a967a003063e80411453bf02507fed88fffc01e666efc8fbad07f86cb2b426ae7edc114c29e354e6d099cf01dbec5f0b94c98f7d8ad4187dbb8995f052f29f8bedd7d4920d6110bf1c483f573f683e98679ffb0368e44689eaf5b3b69e43864661d66c1a791a084e03ded7818465afd1719992301ff61648dda5db15ea3f2a5b018520bf375c71c9a9e00784da7c74e66a4df472511960522a9e4f1c74d02b44f2d61804a5abedb85cf69313126cc308bfbb160a10e61a0e1bdcd5da5c97cf8b3094bfe18cb5a722238f367cf0e8ce5702c866bedbe36cec35e24a5d87a56239c5a723b7c006b1386c1f361db75957a5dbda5d155c59fbf40a023887562dedafd03409e9a6bd36e4d371dcc9e0ad367296abcefce79b19c706e9679bf1e96884ca44217840d164a1405e3790f394b8d0a1bac1e7da613368b79d286721cab2c99458f362bbe27b131db7dc9220a97a959336bbb444593825bbcb6adcdc82ad28027210deee6673984bccdfe3fb0a7ce63c490f76e775bc7eb23ef2ec255acae5341badd4a61eec7a997d3a130420439e7651d8271cf5158a4d4cde79e391546aa36e8770191c1a85aee5cc31de00c1e29f591750543ee9ce64b49b63b9aa4c8323f1cf52dcd67e9d9419e0a601b99f17ac4c712870161536def9eddb5b39c9cf959014afe5dcc53d8e6674fca7dc74e5eef651f6ec8bb9b2e286047950e7eab2fdb6a524ca688c523a660c16b7a5e7e72271e58d580c7760051174a02e9d2197129145dbf13b81c4e6e04ec751f755224de9323fa7869f8c8ba90db76ca6a64a816c1252366aeb8edbf504a97949e4d5bb02edb505fd22ce1e88dc32241811c18b52c81abcc63fbe97b9ea66afecfd13ff58f2db471a2c9cef8fd274b018f158d07a48710d69f01a354b85b5b8fcf322fadf1390e969245df3323487039801e4bdfbbb791e2c622c22374a02120f85d658d8950c83a4094b2347f7dda781ec807b8174e8daef0065b6e7d50856199cf3f2ce4b4b458a7e076be902a5bf491b3468800d3780d38ada6a2f861a7d89c9ec323f9c5b1b3e735fefd99e20a51f56890084dd833a28a09cc638362f43f746aa3bf9a996fb65a04913afd95c8aa5e38152e181ce3e8e0900728264b7b0563c2c178859763f35eaef88f790576bf5ecaa5739b9551b7b49d5465a11e511746c6289a13f7a6ba90d6c8fb184e59c840ea0c131120d27b5a12cec4e1e888c57282cf204fa5cb640c91c218f9585456a57aacf65d32efb6d4f02f95f5f2a9c23890074f62d557bbe373cf0dab419bc7b03585a9c44cbb64d49ce9ae55c4b11ee59b1c7039db5974a1b04bfcb4e51b2f683fe126b7f6abd0358c2ebee2f874050b11d8c0c0849dc7b0ef78796354db2f9998c9c21bb5856dea61a6da7b44525f19fa7f888fc26ec101b30af545a09d6b28115515bda38b29747620df4c889903d58c841d5b2b37d28df4472dac7a07393b540838b7edb04ebe72941d8cf35354ae6199c334912b97d88be941f82385a2310a4ceb362fe7c6ee739af48a98d1d5217dfe9664860ead25a0dc70af14e3a279627923b0871a8e8a3bf7280ce567056280f0314ff91a115ad60cb7459b555de9e834cd7b36b73eff5eac65d84f5d7ec4509ca43018a860abcde1897fdb33b8e07ff77d44f38f07df715bf68149950aa6f53f67cb589136d33e7f2958cdbcceb92efd8e9066afee5d5e8ac9b763fab954b0a5e52e960b21f0882d28c5b1fbafafba79b234471617c9e308e13efcd940565cc37a53cb8f55a5461070042342982d723725a4aeec2d40acdb057b463986540668d97800cb7f40555765f966fe682691b21bdcdf26dae5fa4954935735bfead817bd8bb4595d25b529638c49d57c7cc427d8793d678b35ddc115cdb2dcb602b7123622817871d42d57c8afdc19296d4da9e9eb90cccb278b1be98647a885073b1015958a9990a8805880bb93429d291c4a1aeed119b99f7ca894f496fef42ec366dea48d01da901f44233242dbf8e4bb5c07386024d6c363598f437282859742a7f828b8a3f0f733675e46b69d3a88a2841a839cd534e850e1f5c4ee3e81134577dcb89327d26ea6dc7dd7136f1a803d2f62d80dac077bdccf2f80d10ae66262cab2e9da8bb5ad38817343b9cfda790a4d5ce012a2eac515d9124b4f3446995c9f05739196b505e6b70128cf2782a932b54bedb29027b2d632a45d5bf5d90e67ce8817133c8377358d20c0c11bcd185d40719923dae547d55d191a56ee5601785f42564932c23e84c5ce0a2641892d7b36eeee0846a90392b9c54dcd57e897f05f0b50a12cbf20a75d4c448a05e69091db93370ee2b4117ddc7944f9629d27c920b3759008510498615b23b7c869b405e45d62e4e86828a622fed0bb22211dfbd22512dad346fb92bf4906cbe3192f7245bff00f50da73ea02611e66537bc9909ba2eace8908ecde0c1cf304a2c4923d221366fb35ee921133ccc5131bd34d3854c6262157272c595573e60bd370fabd1caca4e88c044c0b4f6885cfe77ecdbddaed86e35848e46b74288a9030735544f02bc6135433b36f022068268b450aa0f1e93bd5b006e19cdfd6bd129cb02892dd1b667d523d1827526982d6160a707b1190db111ee9d76cf0a930b20b83f66165464134127736b3b96054118c73104ae9b2bd874b9be0690871311e5a2b8c565e65e141837e5f00a33032f84157545dfc125b37d3617a56d07f8e62ef268b346b52b4a4b7db03830a5d320d08e160fd2f4e77b615fb65234847f1a332f7855f81f8e71a1c2e311e47e5860aaf5b4719928bc82a5e877cb18ff73d4467a49d7684a852091f1d7eda6cf50cd7d4f2b233a8f8de5570ae1401345184fb1e0916b8bebbd18d2bf49d3627b4a7924829803f04389d470f0725b3116c2ce483270f26f56ddb2fbe85eb37ca0471db910e3ef34441f9c2180160d519119e217cfd0ac141dda7ad83a71b4471ee0c9bf8fe5195f64e457514b98db7b070eab3216282c31af4d5df5adf2cd70bf19d84d1cfce99fc8162df256c59a15035d7d4883eb0def13ffae5d1d7e2589efab9bfe3592c656a9a8669ac1b3c87fa749661a8a24df1fb9a2e1f78376f938b6b36ef674bfe84befb79fa06ebf35ef5d2270c069d6468dbada2a87df47e95d149e5ebc32aa907901b7f9f227aeb9eb418cb3de9ffde7bd173acf8b47b6ce322fe49b53fec898793d903fcb7ba27bb6f720fb3cf14bcef9e6875c33cb9b6cb3af1799677b3ffacf7b1f369f132f5cf63990085e9bd3435ddf83043faf3c009793d286308b00ecad951006435653f809e08a0024a989a002988289ed50be0a742bd4839526b86513c4eeee532a1c322989859635dc05a7e6e38000849a41aece1263d0f1cf8c4525726739db8edbceb8b471d6206be91993b5ba5b33236a796473f503a70c916e749e03637255ce05c59eb347e79e49fd85d05febfcdd6530dbf29ef117d96245c94c8e6b8f2db3c179b706b0502c7756012086bd161df0094665183b8ad2740c7e4671a6710505e01e5e46ff3d64933b7647fd9c5b48b01f5d9321b29440a5dacc3da192e90a803ab93db1f905736b8a2dd7aa44c1904afb92abdb5301f4fc0f823779b2a4452160fb08f97cf409bdeeaeaf736095f4b27706e742996a8a518d666080ff888567e4d6c1dc3152e56a3da8297082291829a46feac396bca37a0e578738d5a2d2d1541894b554f2264fc863c1ba500819bb8c149a0916c72c3f9d6edee01897a7d00e94a8002f7f2d98072b881610b528b380be4e9164464f83ad383858ccb7a0eaf9cdc4070b446dcad229ce5b4041c29b24101290390ee8a0e2d3f371794ceed58751f2a081ae3c50a1f454fa36e0ae4ea6762ad4ed384cf887d93e74108ea6a4f83a5ee68c45c810985f6780ff9fa293fc4761194a82755024cb1f47a1f684ccfb490ff1192ecff71f0a0217681fb842ad72ce015376d01048b5a94fecfaacd18f53e6374b0132eaecf2f560a2264aa8db6da3cfad1c3ec4ea535502ffddf15bcebb5e3e0144a2f91e5b1dcbee80ba4182158087e02b27b0fd5401cc94b3f6e6f4167211d396ed54925242d411ac99cff02c079cac1046b34f71955f8e022330dfe69b4d524a838b2225a9364475cca5dc8d446c3122174f95aa4e578f04b34a7948aa050286811b580fd035120321c3aba897086702bd87a0f6abe3848f36d284d26725d7ec280c8e9f8942611f9b9e2a5f05ae2acb723151044b1e3b8d30c71a5b578d2efc88806c03459ff0be4a945c4268701300493374c7765fc06a2993d05400c68a41c53758faabb90a9d3a228fe319b28650955f27556a529500b8aca39c019730c49b109ee4162d66fd065112ab8dcc45014f89682f943faf1cbcb01cd940999d1db63bd36a9aea90209622adab08db608aa2b4b10e6846e810295cda67d6298ad080ddda60ee63b4260b81aaee4106ad4aa64a26837bc4e1b0320c807e1cc87d5acba740b998e92da838e9e055575c25b2afeec4fb99fdb48b3b088a6277368736624a1b849cc29905026384d1e12a045884013c7c3308e5469502a0ae0327654172d233feb5526e48989c98fb0342bf219ba24a017ce50d3e32ea94ba85cf11fb8e7c79b60d51a6bddbeb138ae95684654cd5f0bd5db0867924ce549f9c7006bef5b73dd7e626438a9872a57003e650e30a5cc64ad16fd0b2e7699250650ad252974ca62c4463eca18c1f377afe548ba3d8f2f3662f27d151d4695410c5f41c81d88417b7bbaf55b99493b07d0eb93e8afd4c5e817aee5c2d5ae61db18017415c1ef010689f7e7bbc06b4416c101237272378dc807353f5b67673606bde219a5d3e1f00703bf03d571392f71cdea53b47abfedc15826f271d92be901c444f621057528f9146b5cbd303ee717668258861e61b264387970224ebdea8e464fec7da70a5f25811c8187ad7f205ff5b59c29ebb0b96383f13afaa77d8158483089e12aad550c0c5214552b3b301c9c2fdd52211e42c05e80575a1394e71313567181a9f888e3ddd47984e813908d0e2d535a3441f4eed6307ce37ea5b82650d6c4c9766fdba6eb4f849f374a10cbdff3ba351db580b33b3ebd1cdc9f57f3e52071534e228a5ea54da6af6cad3e414fe060d0b6e03e2e48a7b60eb4119bd000702b2b61e1d1824f1fb6dede8eaa21759a55e366229a9b122fb7e9b26a1ba77b38d5988e1fe4721743160de971478c04c107ebc6b0d4e7ab366c459b60fec9fe25b292bb214a9171499688d4f9a6490b17aa9e638c5a175a2f8f76acc6c1e45d10e5505c21c594e70fb1c174c2ad76c752829528fbcbb09350be720edac779584f2e844a8245e0a1e0b46a9c6f970fd2161fca9450575df9a4a6ca4db46a2af49a5548b1257c9d2b22d52386681fb5044735ea8be08f8d7efd547e0cbe0a836d84563e50fa1844d41c95d8317534c6495c1c427d82c83ee0d520f1482c7be74c214fd6512af4284bac8ffb2b39bda77abb4ab8484d9f809916952b1cfddf3b281169c0f04519d46a566be33205abdf2164cc7d2561025dafa3980243284e4e1da463c5d4520a03bb0b36488a295011ea331bbc4d606cc24eecba1445c982e3e04374435c9442817d026c121fc42c043b3faa0c05167a0ea06871d6425c1acb4f30963d03e2d42a343193340960b59c6bd30db4470d5ef92735983f1bff446a0973e8f46ec0a054c87f0a9615dccb26a98248432e968804d37772a4d96621fc02c84dadfa6a1a4e27899b259fc7eb9a19982e051cf7e1c8e159c53fcdeefb55dae9e59d824314156474c7458f321375ae04997786f3f4aa3a98d61e63c737f6f704b7be5efc82375c60147080e7c1d245bc57834059646ff6c4e2b51064d95a2d72fd8fded80b9e0c33150cbe5a870e18476387ad3c27b0c54d1bac3fd52a1e4f90ecac3a5294b22c2db492cd21d4de816c32c93696a692257255d1818cfc3e82fd3dcb47088b9720bf29cf7e3e8e0e1498dd37435e163e75f3a63dac345c19654f641f6f2830662121fd6ea925e43eae924803ee4469ec24fa4dcce80f2503073a20a48b5871b1bec972daf8d82d10612dc5ccc14f6477a69f2a5c0d28838898b3389fc414cdfc31ab1240e33d6491c3ed11bd37488c2f9ee05a53b9ffd1070af82541a2df9b3df7075942b849717745f19aff8f88fb5f1405254c1523de0daebebbad63480d0f2df52d3d9f9e8cc644de787905619dfd4780858199dbeb37af98396135817b40c859e84889e06f6a185897ad098e14102a903dc24bf6847a359068c88588474811a3905136406478b04e6f54a1b304b36a6a0d61bd7376882958e8924c5c8650720222d3a0002c0c32187a99a6e8061fc82af202ab2e79903b2220787212db8b666ded240b6a8dc87d6e633a63186cba876d432f181ee4b3a931e104ab3bea6721b92409f327b94f47178a5e04ba82a7a3d0e8aeae2e377a06fba90de3274249175cb14f6c7b8de5dc3df50585347658415701f0f530738ba55b77b1d881dd1256224f1dba98085a902b4a10acdb31eae1a2c016edd16b4dc8d696b2f2b3dc40518affdf73cbecefc0575a2b4796bf3f733c3ec1eb49ceddbcdc3c458830c4b865a5653036ad0f001495b593b5077e834f0bfdb844b14e8c74648eb941a5f2a5841ad1a1015990d84d532321589b96c26907a98683dd5082f2d55369bb12761da3e0e696fbc84a29a067cbca7ba9fa969cb7c70c32593113fd4f65b19c36beef43e6316f9527d2f12f6004b8ef7432405a87368c658c48eb34980375422d7c152eaad1328e64d3207c5f5d780703d30645d59930542620171dcafeffe3a56b92266f7bec0d73a963df53ac8eaef3822bd6f60cf23b396e8675e627792b4885a516e323f25a2b0c4cbf93f2a44587acd9a91b16b87ce282de0de54cb385d40f49d2249175e27da7353a2f10af850111d8f53d2ea31c21ed289e88d41f1daf9b1095f6530266273b81224f1ae914b43eaae491e07eb24979eec78d5f9285649c80a2da3f95c368a9ba37f2538971f4f77704df363054f967b95839d10327fdd8eae427cb458dd6e4e7ac69dbfecc86645748b7c9da2888f28c72d5e110290d790aa850558b6b1912032906a676eda0e251a54a37c641d5b9872d176c9fa9f868e4b72926d0a37e0743444dbe53493da27b5049a4889661f6b14b650b1c39c0f50a07665a235e34988e71658d68b36709fac70b849355c8f772a2d0bb7cf54444fcd7816d23abe997930e6fa07aa6e4811efe2b67891d6ed75e1ccc193aa724bc2dacdb6e1160ddce10f5d7ae1b11b0e24698a3b24a4c746b8e68e72bb0c88c586d9e36d612a3708e0ceaca5a1c63e8e0711495d1301552061dfa1af9f2e063e0234b11b194d23ec0f8dac52329e10cbb6d812ed2aa8dea7603a272a06faa01873057ede9ed41f94a2b362b437a3717a9efe76218a9633d3e6c9807972a96ab5d55b587dd2245da4458b8a7a5c7ea447dc26bd259b886e2b5b7ea5e809c37a03adfa65f06c23d56ee6113c87d8c5eff43e599b589910a93f69dd8f6f3e18ba746246f224c53ffdb2b18f3fe53bf14c02e264a883372ebcaac1714e53d3962109110e93721b659f44ee7495e1556533a185f78b02b57a18577290de7dc82ef3a810f33fcf6e6e9a72e7a62c721ba2c56d927e0ff169ce3eae39d5b2b351a4a5a944a3cbfe45a94bcf70226c65a4afe23b33d4c60c24c496675449701862d9bea2a0ccbbb3c8c204c8ef75023307b2aa25b114f18953e72580f6520731db0d368e2d738731e0b1398faabe1f450d79a99d91a4a927786154ce45aec1236ca1d4e624d5ca0bc650aacd906de5094e589566916af40657889af3486a780a2b9c9a9964b57980199aaa39329bbc3032fec9f687fb5746d9c2f819447d44e2768395d363abf78d332e4400919f6c673d9f2568a842a9026d28a19445056ac20c51aa15a0196494a2aa014d30a14aa506358214515615a40d24a4a2d63008db699e5f306404bec0c860f4822d23e005460663176c19812e303218b960cb08708191c1b8055b46600b8c0c462dd832025a60643066c1661d786153172f12712bce940b4b2a5bb8232f52c95ab4839201a3d05d87b3b0202c3604a679f05f6d434933ebce9298b3ee248959abce499959eb9c8499d54e49cd597596d48c55a749ccad754acadc4aa724cdac3b4b62ceba932466ad3a276566ad731238ae00791c68a8b7c32e15728b8f43b42ad6e40959019e8944304b5a12e579afd0272053c509acd641c3378082e207917fecc3425c9e448c740786b061711c685e3894b24b63a9875242e3dc5da3cd4aff568ca4483558ebef458c32f347beeba9a269326cee47dce524426fe7ccec05ccc9a755d766c4e889bccf4b45d364d8dc8fb86b08e8dfac7096542d11adc2f9ed5e4aeade9c78484876e88da8510a0a851e896ca62b5e2f4e292faf898fc2b4275fd29fa3d4a351ba4f776b4ca394eebbbf38376e3548a8510a45f2dbea0667760dce903b83fd9a066b94e281e7416058705e4113d861e52a1b9beb2ddb9cf314960f600a0692d0f27747b70a4e1c031b9c489ceaeef3ecf50039fa89f42d4e00aaf52e0736f84c005023eeba05b900bf9a42696b1b45fc4f04c410ef181bb64af05402d85a039e11b02fc0d0b4b0d100cbb2f6690f06363d442e34edb203f1055a185603d0c1f0524d35cad9b9c28fb55323127a42f90ee49a9fec2640474561de5007c44c50b23c862d243b9e54bf0cf8d431316f9f266e7825cc5729ac2d93da97ad15376d95bb8365552622e0a6937042f1cc5c842fc11fc2fce75e4971228ddf506a717cbd920c1d717fd265cf684034f71369f7d007bd5638dae6eaa2489d6b4e37ea52a4ff4eaefda316f7897f045da7e5d870ce85da4a7201f0045b1d36aa891fb6a99154c1c237f1c60a957c8af1c6de09b7d26ae62fee2cb667df891d49862f0b67b7abba3759c595898334da6061e268cddf4cc07685cb54210e73c52f9bd70128886b5a70c38d22cafb24d6e6caa4d9819085275d09c7780d2394c58866d5db702670ce38eb57dc6b63dd8448447d4f9e707f9bca945a065a913bb7266a59e00e6082296e51b2afc0c9855c611e4c8e7a6b87b5675b47be77a6b2baf1ccd3f909e426576c22d18b1346dd173fd67a8777f3db1988fd9f382b7a15e32c8ae23503b20b99be17fed9cae5d85e17b3ad48211eb4aff10823b7bb9589876e4fb18b0b6c66cc53ca6b0c2f9fbf87cb6ed5785cf8be877c03e373b30c976e182ef3eea7c120d4abacfc6db8f097bdfebdeec1465ddf33aa1a6988915ade38ee8b66d45fcac5fe59d81643655c2ccce19d21791e22436f5dc4ee81487a3cef437db3d62e590302a1e8fa1a75dd1f41013904abb0016ac6a7f42e782c771e375d697a2bc1aca48f33fbd5c6f80b0c773dd7762649c72ee7e4e095263512e33895bcd6f87708b70e8b301d114e52014754df87b4ab1cab19a845dca84e41cd4d6f60d4e82c28a73aa647a9b60b4a3756ac431fba9ede583d40948bb545a494d3f06bc3d1387a13a062a9afc766a044bb8f70b920d232a3542f40e184d87f8253f17bd88fb89a25c820850019f9ca383bed2db1138b965f806ee8ad4c3e9b94d2da94c00f2bb87bffb4b13aa154f5616113e289e0f102f8024750d8d75460f4c1b462c20524a35ff754f4cbf29cf5905306629a714f82b92103ad9a054338e459e9412220f82b34badf3e43ff4e68b45e6b9b830eece727887b26bbac95dcfe379fc30d1a0c8c303dcedc0f933e50c91b555ec4324752ea98b4fdc2f209ea9a9b340026d329e844f5c3265173db907b73a7206e1363efc3738433fff763f346f16290b1ce7481dc4c9cf09420c32227faa98ee8a41fff72261f40371b064a5c5e5ea96d2f8bfcf1c3c7888496a7fae4076000ac3eadad248fda958765c7912c1e22bd0b8ebd20a0f7fc3a193aaef0955ec54946de98c9df528ff3399949fa90c65f9853c72e56492a1956f0636edc18bfa3205eb914ca68589981dce0d792c22e1b86ddff551dc1c1e0ab8db51a530ec03d8f12ac90150fd142ed3bddb105a450b770a5f2d8f08df601c67ce9a93e98719a5ab4d5634ae026546a017bf25485f71e17b087bfd73694a7ecc2f7cbfe38974b9fc8fbae4feb5d865838a01ebcc6108ad7518f5c06a6ecbef0b1044b4bff808d600f7778ee0d68e85633fbebfd04aa766f3b64993999dc1f30228ab9c0df267a927107aef6d0f56c032040010198c8304421b371804163297f338e12a4d4526c3ddb71da03e08bc6ff68fb42ef8ff4fc4f6afb33fe5f14d7256a5da16a07785d566dfe7767f43c4e1a0cfcad1a70ba0edc066e3fd4b826a439a6bea69a349f4f78016d543ca7dcd130b1a6a2b21873057831d17087a1fb6ee18574f193b3634d63c17a92eca950beab496e1a8d9fe9dbc1cc267bb994846d8c9393bae17bd12d81f5b633c5c9ad796cf557569650815a36d3131137966ab0c40d5b2e6b4a7faa529fb8b1b47e470fc6ec38cdec01981d68637ba264094484a6d74e5a40d50e349e8916e8d594774dc363d76b1e1ebb44d043ff626354a90e716892c8086cb4365191913d2c96e8104ff4f5dd86d35118ea028d46c791bbb646f4db1d5c21dc8ef9f3f632623e1fc43aa95647d8996d150385001b2cf520519312d0b107d385d532a4ac5e5b1b9513b6334d3ed7e9fe59251df44bcc29d595dc102ad38a460a8693e17d22077ba18163a8296451f5e553ea50d6ed85b3c2dcbcd98762f91cd515187b64950e210d5b015e6443beca397a89bb254f831b943f357196f4a9cc3e158fd96ef35ad029daceb501e0253bcdd927d12a7af344b42a07596d6e7fe775fd11dd65053eb6eaf44694acb90f8ebd5538a26b18694825240c5de4a35871af85eb06b129cc52c55ddd9ce2ed372bbdba76002cc6eff0a550b9300640ccc2992af8a3ea20a3935cd3ebf55b444d253ab275c5c3f995b6e8179f2067e35b158acc821629e3f79a356d144b803b76d80c21343ee1e11717b053c6cd6366e99cd1d93e491da8a4f9af77b8c195c17acca57be08e59d56528ab2a43ed35fb53cadcae21de4a44b307ec5f407a806af500f606752ce2c4084b07e909fec4f2b62606e438a5c1353304f411e06d2476546df6b1b57aca93e70cae33643358f805fd629be4c694b655145359fef43085a2cf9173d38220418a33d96333087857465c386757dc04ae51c68bd8d8bb06430274cc78c5ff199db7256c0b7f5498a4fc43eab476396a0a2baca1adc35f161670e72478e88b6e96f6f6c5b4bd8dd9bb10fd1e246defda42d97c1d0d57275ac4310b222ed1e75c204cd905432e38e93013b28db440481e439d85978b3e592c1484c6a25922aa895e63f11e342d2cac8975d4a5252c695cefc829c5656e4d4654d42cd2dc034e85ad4a1607992ba24c1b46281806c7df490f58a4a87f110f6998cc9a609834ec8c652297e0bec6061d8a956cb07a855802a20c31ce2480b34bda36f863b0f5c5c0a9a4599a22ef9fd714564ff2c1e19a9eb50feb18795dc07a9a2c378d811114fa811d29a2194720a70f5b5f495be87f9814992802d6bfe85bd7656812951cef5829b0befe626970e1a6a491d402bb64807cca4f7602526f4c41a43839404d7fd280bf00ad6b715cb1991993d63a75791b0eb7105a4f0af2e90cba499fc1696a4a335d9f2ca7a74c037de9653924f7ebc10f30d30123a0f87735c15e50ed7553b709eafc41d8c628d893cd064341aa7cb38a353e722819710d963d1a82da84a69fdf155b9cf2e0894da90d975f65d8650331e4a230b0a5773e5aac96c460472b96540c9a2233da046260bbf865a1b9ec79fe088f014f4eb4d9fd2213e4dc04833d79251397e7611ed40e501dddb48a31b8da6f1522bff74de4a0c308e94bec7f1e653139a2653c5177241476412668a808e2b0fde35fb54cee99edfb10182e75d376058fd4ebf78e2eef5994bfdfc383a5bb50f91efea71429996d4fc5f03f2dcf238b1237d7d4fddd3aaf90996968a57d2ca1ed9f31920d897168b75bd7493436154b407cda515e312d14eab8de39f19f8b9a71075d8285753c765fbdcaa91b7ba62c3c46051506d806f27c611e2a08470d179395e39930b4f6b2779a4a926eb66af9de605f537ed9ae0ed68ea242e4cb5dfeef1b350f6285e38ab96826d1ee41a14e2534379ba90d606352a30cd58046104cb64b9b820a9df89145b5284abc13443048d1635207baa8d9f524183e3fccdf583e03da61f681a96c435faad3892012445c4e37e4ab65f8969b19cf729dac3df5a8d02af16933494191575b72a7aeedacc6dea98d4b417a124f58eccc2cf1db35f8e558a026c3136d6944c3021ec8c986f02d72df87bdef6b32b04c575374d4d85bd08554685a23c28e0a61100fc0e1044fc2ad92fedc2763e1ee4198dc686c8a965628baec25e1ac184aa4a74eeb75e1a12f0cbab2495c712e72c496a64acf68200db32b6bd2470e76388cdbe8635825689d74e9060dd8ac2485601cdaa72e73e9945732d435639b1794e3696ae978c482d2efd7c0b0282fad82d5b62059d169b8f5c0359988d86a55885a288e52b0f6ba1ce8fae7782548c245082d8a4a54e074db0e483407604e846fd8b89068763974dacd1ee576a4431247e2edebbd6979e1bb2ebe05a87364886c9f117d4e7e5bed2b573ca600e542cf0e1e8ca8ef64c38dd741904fc37b341643919816a38e9bbc684aa769ecde03124ce5d79e1823e8e19a5414a822ba76a181151de883aeb053b28a57b4337122df60b476916689fcf3a5688a29b4b4d2d863dcdf4cad9ca4c7ed3873a5824b105da0d844d8adb6c4ad2e00221eb8bb9110d39def3da73d5758159eb97f2b63424a0117527329b508ce58a9db0bdae10ffa191bc7c8f125a513f0a64a723ac20fd981456548aa2a052b04d040e49e7f4c354dc4d0655211fc2860ada3cfd4a6dc63917f56b8409e78ecdc4137416ab240fc6a5250408cb426cf3a82bc4f440d09d0cdc70e707d14411d06cb1e89b74fa2046190477f0067046e671cf0653e62fefb0233b0c201bcd87067c31855dac1b9c4c9254d3266d8452fa4451abd98b7344945e1d38c095b9a2900b403b8f00e2fbaffdd50d27e29a5098c29d90dc77fe22a7a394960c6e72fa5475084ec4baca68ab100384120d0795c588b2e448e04c75adf6f7a485b261eec96e40869d53071ac30dd991e52244a3c91b77aad7a0bb45a6a4bd7d72a54a837ba095b2db39e170b7a679980c37e95d408f5289debe3f686778ba4a5914f2e3eaed3c9411d3c1d68211378351e97c3c9a0c1e99d60d8f854cc5d9f2e8082f17567995d69607253dd9dc19f5bc2aed41d6f6d24781b30a0368c5bafd7673f9b069e1f1eb28118835a247db69028eeca99e217c0cb71eb8c70af6cbe971ba8f9e1db29fde7dbc059458eee86d1410c6079230727969b0f93eb646ed44d6d911ced08e8d7a5816437a5936815a1441b14995d3393af4d34c53c9b68e44f03606f192283980a7f764c83fbc30c87bf407df9e8095c5126b3a0c47b24a73159444c905a42a2388d1a34b1595a821ca09a48f40e3b783e42dd0148b779135942487649a52cc9e8bce42b2d31658339cdc314b638b64b44eaf9100179b0b4bd2d7b085c31bc8c5b572dd6b9871fae92bdda7b9868449dabdc9e1f7a792c980b431623ef9eeb95747da86c59d5b7c2ad5e1e1bd6c8736b55b50a627f114af681968820642f8513f7404f733c0e5c335ec21d47a4622dd39fd2206cd61841f9291c8146f93bc0f9c25a05a8bd5849188ce0ed6b746ba31a132584a474fa652752f1b36e11c638fa14d6c88d67a16d97b872420fe04014236836c16431b3d550b1200d6b457f0bbee1004cf28763c4a56383c9e5327329333dd7f59b6bc72036529cfd0b9c9faebcbe61e83de08eadab971d690ac8f91d9a12e1bc7388ea7fe6df3f3606cdb76ebe399fb76019de2de5e637868e117ce2b549a3fc22bedf910aeb7344ceef005fed5ea373ac888723d749ec352fafd06eed3c297c00c132844b9c783a345b1f54dfb41fde82cc78b262a048c63e1002b3eaa532eedb0a313721f6a2c39f7b3facb408848387885aad45ef3bb8485aa5965ec96c41c7b4a2e4baebe2068ca18ea02ebfc39d7dec2dc9a1bdea57f6743d02885d5209cedc938b03152176a3d227e0a46b40957d32802aae60960e9d6a83fbf03210160964b405e6f7cc635b96b114c5bf159a37d2758631ed3da4126960ae015c6ec0c9a00b202bafe60908a5fd67d364b61a7b6425a273bb69962a13f9891afb0cd37eff50320f676a7861475f72f6de40d0e2723a8d78ce6c8de669126a7f43928273a4e07b086df6e159e9def3943feb69572a7c11f9bc39da5b96ee47e147f82ec0ddd0b5583f16174b0141a2640cd741a7bb1f3a84ea1033d7f5b5b7861a5783aa1c9eecb94eca89fc91c29ca2fefeee76a1d09d984f43f7ea4a02fb3c9332fa7640ac39d89f22801552e23b2c47dd68048d8113a98b06f330dff8a7f6192c0abc993386419fdb6e80d4b84d3910fc7cd0a4fc3a56aa807f7621cd36ed9f9e57ee33ef9acf4d1552efdb30f4543f5eed255b4fcf2685a3e5bc3aecd52e80612737c31b64f699021bd581b2bdc8c2b5adc6f7f68eed478c8d6dd892833ff32e6d5cacd11c749e81217ec38172b40c66cf6cf26727aac5558b9f6a255e9732d5bcdce01d1c0b212a4711df7a50603ae18f647f422a4aa48b4971d6d9900ffd0e54faad261703acd1f3f4d81b3efa874243a600e3441a8491c8080037f1e4af26e07ae9048144cf40c237f8c8b1726e6c00e73ee183fca87bea15fdcfb5860a5f97d66a928b56fe2f6ff28289637a92f3b7df95e6bc98fd3e5821168fab3b515be0ffd8f1ad6517f466590f6d55abaface26fcba0b383de4d2764a5bb5aa67d81216fdd5f32ed68f3e8e6a0d12888dc747135fecdee8e6f662167c3b66f070f325e39f344e19ac96d3088bdbaed90c97d188f15b2731a99c705d8f6798e211af5d9a6c64254bc866c6a26e8e1af1341de0f363bbe1f543ab3f8f2eea2f04a0426a0cc15a1b7b97178b6b07f903071da88529c12301d2b4319bc6b6c42d68764e6d68e82100c8983bffaffc638af81a288c3d80a4e61e338c82329d6856fd18682976236847e2bc00db64897fcf5b6fa0f033b00f4701d47c7314857b24a86f258ff610d6c19aeb990ed0d13259e21ce25c8528a88a8f845b316545ccb669b75d8833a4a575328eb161cac1943b453bf4ea2c10b90d27ccb58372a41727608cbf2e1120a8a8bec53c09e3347fbd83da5d71db6b521a3bcfb3f944b5ac339e270d70b56f491bc65856cab33210f5bbe5efba8d0091888c9b2243bb86241225b848ff0940ef43208ee7cb5122a6ff45c0d691a594d2719537a75ed75188689d72f9784e85890d95d6f6a6a1ca0a5588189c46c4455f5a3b78ceb7d29ce0f2a5f08db89dcd4d99355a9d0b44a59f0e7664f58a643b4cb7b6ac28e4ef8beab25405661af2528cd7bba6c81a7c2ed5c2dda8af17bdca0436419d029b0fce51f900accebb7c861f73762cf0c08d51b0407a67a1988bbbefbfe6534e0b1617bb6d2b71ba39fb05d301f1ec402617889879388a8b485c2bf1ae7538f83d64fdf313bce4aa421ab96e453bdcfcb29b6e19f1b89cbac7d6d27c88596bb320388b566f85048deb3ab135e44c9fe8d9c7e004628df3e6cc50276c8c4c36af9d137e81262016394e543192e467a1a23af80360bc59347e0a332b1e568ad95e1b0c511b1a4ab20148dc8e97e062af6156245838b924d3464f3ff48f6f41b5fd686b53e8ffcfa2c390cb87d4dc46e59d7a3899697faa6bdb9fa2810aabbf0bca571dfc6b1c174ef7d92e1dcca22114c8f206d419e5bce68b4761ec299b0c85de8a859bb7de877ca1ef4977d3a37417cd8700d96add1129a7279b1b4cc3d5611438f61131715577cfbaa62919d788a8ac6a32ef24bfd50aa5e42b8d19afc48867870494ab7a2d24d911364f742bc738a005ada70362a6a8e0cc6360cc6e9b5f17fe64cedf53de3e6a133961e89db66f87344147d12553dd186ab55281565887801a61aafe3c099c311cd3c745e68cc724be59d72e2deacfe3cec71ccbaf2fe72896e6351425b4e0435caa4e3cfad5639be6792fee92e5199f76853af546ec62be90661424537610032955e11df3d3d3eb5d70cbe18c08082d7718a17fb23fd8274b8c1a6ec4b1c777f288b8d3e39e933766dfa98b5646ce7c61255731af3aac853a190759747125685fb9ce0fa61cf49862a80da1d17f493f3486ecbb4cece0ce49cf9ad2f1c8dd0863a1bb2e13cf7cd028d55b6e6fc3a58be82f5fab3dd572e02cd5466431fbae621b15095d65ce6ed96392498e8fc63cbab4f1de1e66a2dac438821ed64bf463004776f043c176a503a2a53a99f9daf4d4a7b0e4f4287b72af5d11881f584605c2ac801be8115fa582e513ec856dc9347e31fda9dd1b84351ac06bd659fc4b317ba1f15aa5fca84423a78fb6e61bd406da44a9fbf2d8c1fed4dded3f743634402eb265e1fe37d15e1d85121c7b4c4d75e611c31aa51e617a8975dd7bfaa1242ab502461b9aefc836719f8b1f0de1b914b85bdfa829483368c7ca550d8990a1e67b11261d4d23554cd46068461c9ba8313e2dc6b176b7932ad3b7f5ba339defa8f3a734a4e583e5795084d2e35f14e6661525980083bf451294f5b731d83a31e9deacbe6b8a5963bc0868eec135e386821b70ac4f0ec4c71cefae40212f420b503a01f430fcabbc46560d7e3397073a259a5e12ea5d746c45e012c40659f3401717f6197cc29b322cdba2516a0609bb936ce0372e1fb7cf43a2c6885e4357dfd9423d8fc6230722707a54e5d721840bf6525e1068bf802895b8d2a024d17d105a49f75a71cfc46d10d9a031d637321e6c0574722338946264c716a5f6e1b4f04aa45769e8cd125a3ad205508fc58c7efa41f1b7698248403dcfcbd24db6f1498ae4453359d79291f337dceb4d6501fc61f826a0266610af4879787ad44842a31691c4e449ed2a584602dfafe76dc0922cd42d2859ceeaf5ab52f0da7fd55b0654026ab283fabfb364be2c0b00cdb9758726f61c65bd02f00725000bd7235639811374dc0ee54b55b0722545545983148ef9616e394e98801e7a94d75b7f3901696b5c871fd35e42f46858852988e4189d456c8db9b536e0676d7c73ac1742aa5f2b94afcc0a9e8054de5c483aa0dae8ea37e100958fb2e720465e181e8d40144685fa213ba0a80abb0961c84fafe078bd762a88ca85acc31260c30716484f3dcdbbefea4dc7a4b89a0550025620dc5e0724d3d45867e844a97c920ea107a93e04d3f32dc575c14dcf2e7f7013ac564a0f68426fa335f9a057b29b4b804d4844a53361c6ba986031632ed61307ba156d3c88717a0aa58b28f643cfcb784f4be2b652e379a90b1c536b3d278064136933dc1f4f4c26f57de01163b1aa04111dc629f9266804802e9c61b32390c6b9c9ae106b2ffd8498a87f612b0b6122d42fbef8b640238986d6a6645efdce83f91128accaf15e25d1dc612c511d203d0fdea2b8f245e318816c62a98d61c26f17148c1467947222912dcf7eeec4c0dee37e6fb82b2924db4a5ebab9cc50f2370810197899b2db0cbbfab6e2966f997a7db66c1b9bdb4c86830c3ef11959995731463d46c9d6790b731523b41434591268a5dcba035e3e38c4b6fe19cf74c02bde71058cbd6e8e7645fd938abcfd447edb00c198146defee8a95eb58f52a2c750e5e146c0e59c651778e81caf5dbaa3282f682cd27700bddb6f1f5484c646ee1678247853a7a7b916d83c9f415dabd73d08915a69fdfc1acf6f8114a73b6d7487089bb8416a5ebf09329d13f3644e10a92315e27b422cb0c1c3847cf0c000555273ed4af3451ab7f8dc1667c85c2dfabfed86153d3fadaaa98172093badf5e142d04b52014b2958c53f997bf4047e9cd31522787aa9bce2a2301467eea98811285ad3632f3ee2547c5d42f1048697388937181628ec7d7d1d696835d13745c2161254577a2b1431f56c8d60c8ac8555b65432798024e31ea97ec8d21defe3b4520f843510f8b229707b6dce6077146d52fab928cf5c91ae186e912d966ea160561ec897247e55f75bf1e8b275c59a7d5eef70ca15ec47a073f028d7298166cbfc6e95fd2104db5c031e933b810fe97d10729b03d6af061a29145ef26a94af94eda5149241a55ce8da5b941296851d944e900c5fab56f88816d7e48e213db0126ef40cd395304389308107d375cc970225fbdc40b12ae387fe592c7c620df0fa3239a9033bc2d1cd2f0a8de8309c72fe2064ce23ffc444d65cd8a8c26f9fa5a70a3af7401a10bfcf90e70eeb422c0e992d0c42a2743a29bdfd4ed4a38a8e8fa85adf272274492d7092278064f159302f45306cf8d37285d0908ae6ea57d06cb4578a16bf842bb4b86b962d387ead8f15dd6f67c94c3366937268523b9ceca8509bca3001e849a45a86e92837cb0f6c3f1ee13e8a880ec2eb47ae2d8c81b025957536adf35461ecbd0a9ad5a7d7d9c17e3618bbd630d05162311d4b332fd7a7bbbd9a52049b59e084b9bc34996e83a311f82f0f46ad685b55afc6bdbdbd2e6a53342218adccbf2155b3f584f9dbd1be56baaa4826c4ff1e89e3f898f2682b4a4e30db343104e7e26c82dad4473d9ba164971e4ba332f8f765b6721f66d31466d0590947a7215fa3297e1c4493e6349a5d9c41a8ce16684339a8200c863060cba0803c6a881cf879c04b34b40731362df5286ace024694ca1b1d98c03083e2e56b1687da9727d40f21981e4347924307d1e7b65711bf332f13379d4a073dc08c10d17b6ac267a85101e195509b03fc1065a601598a2e736e443f91f95ea1b26c5251604c95e99f2253761ca4db9b82636070396e5467b23a101084c1c49e26687adfb8015bb89b9d113e5416a4047ed52edc0ad5b90ab80d6d964559a2e19ee845b0e234e748cfc284de03ba1b71ed06719fa8f36a4e5d4d59c303eda8b4b7cf83970f8d7e8f834d1a248fcfeedc5e5966dfd0dadeca209451f7568110a8b6feeedcdc37702cb711044c07b3beb2f73055028edcee91fae7d6bf959190ffeaf626252a50c9df266f9bd2f2ccb265ab9dfafcaca28aa15deeee84032e1514fcae3d3c549d9c4b806cb7453a567cf021942e500d0af09a3694ce60347d0962b089b4aaa5a9307b99e8f69e7c1257741d165b1154a8e801159d38558c8cf8643c0a62b14b4e479f9d87066c6b5906c8ff8bf6c15c69ba9ebba02f57aca8536b4db916500dfa228df304077337fabd0a9003bfff8fd9a869949b8a8360b08f9585051bb2490e2cae96517e7b179dbd68aa5314e689a2cc2f37dcc25191274a20db0e41f11bb5f34656bebbb8b00a93a21c3f3fc37ff5373a0d52c543b46f5a56260af27924fc1cadf1052357aa7ce72ff35556814985cf676e72f22ee20136939c005cbfd5fda39756eb07d889fe5211f67cfb559a6ebc2d22ba458415584dc18e867cd49f6a233719760f964c1f033f5ef5e9f04c0ef367cd9d408848cd3081fca884c76820bedf6b855b21884ad4ea35b06c4068516335dd1a61d1c38c841bbab38974b7789661119edbc78e646a2054107a57d443a6ee9a4422e73e91e0a55c40986fa1fc13df3c815ab9830417fd233815504adc321a6ae2245c961540df0f480c8b208ddb1fba19bac4c246e41cc7896c1d7a4de50a34793b238f36f9e721e31c0824da18125ad467c1029ae63fa2fdf7479c64b18bb8271490db3f1aba7e44eb2a64352969291048528a72255f087a0db54c5e24d04b4c20f922816666b63bcceb4e0fc42420f14ceb1d09451921a6cf9f9f38f7a1f73c9007d3d5c58d4a9612962020cf65d6a29347efdd7a6e6580a2d9e46b9be23576d27d3220a2019f07f1633eb666a0ee2791ce205bbfdb5d66af0af16ab1230981dc7f0817e48a3ca96998745b9209a76fe3fb1fa3acf526b2af8b71fe579d09eb706a807d3e01331256405ab919b253912e410156be76f2bd3840e1330de10b27bbccb31d841c6ba931aa60667179e1005c095296142160632669cef689d0029a59eae12fa2b8c3a26fdbf158c58294cb1511dc96430e00adb010c5df19061bc0680b442f2e351cb38efb238c574e4308e60c0e8e4f8eaafd6e87bc3eeeaef312288d030208c05012f4a88cf4aaac11e2347508ff0c1e04624776b0f771619c34bc9d2d508498864759d51f05492abdbe95c65e964a563523b5e22e4b4396dd2895da16d26bb97a3b12cbaeaca5bbd150da65adda1b45d34ea6eade54947a332bb6ce6299ab596d6b18b65a8c467b222585056f685419694f169a45944832dd140de9e879260593c5578cf8b604eeebc7e5b70f2538b6127a2489b1fab643888ab36e8eac4664bfdf70e3702c6123aa0ac95b347c3978f19db90c200b14b79079a32686293c5b21fb1b11010afa28984ab4c0ee383458dd8683b9d720507b1b1d749723c1d8311c583d0d82aef7d120761d118c6ec3c0d47318e87b8f2482765b0ad53d9190c3a5a2e954cb9a38809d83d715a438818462e4873b0883ca9b6f91d1e76494a99cbe71054d5d25f4de5a1e3e09dba13b5754b2be5c851e0dddb0c9b8420f1fcdaf070d0dae078726d66382bea87a6cef293dea23c46d8b56bddf3c9adb7950da5067137a24098fd674aa94fff673f0d811671ff603a5bc0bc281be1d43d4cdc7cd541a8bb14d7b84fd63a6f0840bfd94f4379b4fe3a0b604642ba5f9b4198b438f36f45409524db7db9560b3db73304c1f865ab4191620aa5f7beb24ec98fa4a647afdd71a4fd0ba2522e2907cfdc60214440b6b49668550fa5e4b7930b84a96652b022748a01d4fbc2a04c696337ecf6bb005ac08790b56801e4155856754f32099169da9ce0569b2f0cd5a1e4a1b1195d7a53e7a11f0f734e5bdbf18bad4921b893ee5d77e3b88de07db203dc5edea71ee5fcf75ff7ac0fbd5fbf87ef3fbe001c921f55c84264d0fcbcbbb8274efe79a6ff110a8ae62360ec4bc7da97fd3cd314987620823984aeb9dd4463633bcda31cafe2607fc37a8824bdde53071c71cc97f1041310e62c8e810f66c56399cf32b499ad7e08fa4a2250e5a3c1d44df0b54c59f3e448f0df49a040a7149f38866d74b36c36f91b872387f03131c9afdc981b503bcb67878fc8918e6987e52067f09000c5147f08aec59583a6b5bad0d62c2f0bd6df2c04c2d911508742a3f644fee56bf257e08f6f11027b4c1c1b77133c4933cce51f2166bda0e5943bcdc258a03377b6fa5e912d476b684fae2618fe1a64b41e49fc329fd8ace42124824ceb20325e9cf47637860bd53f0ec9f306aaa0d266c14ad7eec0c21a4bfc2412e9a088ed24e3bf7f253e3a5a0c5d58019e7dd58e5cbd94ef8c1a55f3b4c28094590056aa7e9f1536dec9b73f114fb74b4412fd31350421a65385cb3fd47252636fdcfd52d9059bfb8ec9f7bfc791fadadff88159893dfe371c233251700a24d652572b237740c8171f2ca14a5ceb80fe6a3b54e6a85dd496f2bb19292e6841e48688147fa28579422dce50cab171b4475929e259c1fed93e49523338b1b01c67f9657e0f00ceaa3d344ca59408fb485ba601ce30bc0685b4c826749501ba1a57c4b985d4830f286b9c78431b6751e62eccb83384d58a627254d447acf1106ef01ffe4f2aca87e851ad7428cab12a9048f55afaef8a4a8f6db9646dca64f992d7129fc5332ffb1cf1eac798c2af3dbc45f78c259c5546cdd8c5adc8127d81f43c47bb2c4a06d464397014be5095c95fea9416a63e981a1aefc5c18708f99f55b83e2b7ae75b1850fb421858e8a94aafed8e407a9e575c441988cb7c1aa54186792123589912b853de8b30778c2945b0246a26d3a2e2ba676fe535f5ea13d2af966fd0eb66f7caf4715c23d32e304491154df3042a1d48cc6f657daaaa48d1728ee1aea23e1dd62f549b4f7180925dc774ca4306e887c4c6ef9a1f01db1ab6810d1cf600d519bf8080d8e47eb0009f15ea822ab121f12a8aae9ff80f24a2c1cd1666ad61ce79f2f5157c0074b684110a04874e2d3805a70f6cc4f35f711152e72088235994a5ea7cf6cc9a6af34d1a6efb88e434e68fbe63846498b23385a8c2ebe65ed74a9f82fdce6f3355a7a8c79634161d357c347d1fe482122cdb6c9b0d6b7e58f06f288ae998d44e83dea0ae03060ee8e36881659d6d0c35580843b6a25a40345cdc04eb46de01d28c48dbde58e19ae511fae6f456a81177018cd4d55088e63947e1bec11b357929a1bda8a13fc4a4aca4bad22eaa9588ab712d787c196ade9a4a11be8bffa15b5e519e9be381d20a833c9dc8ceec6241f206154a36a02745b29b541d30132f42466dd0443dfcdbbc85c91524c9a9d0e508e3f295f3312a7fec3fd0d3a4b19991ab69f24a3493af67064206afc451f435643b9de0cf3b2bac6f2c817d8c38837df4387059e87a2c71acbc4b02041a67181819098cb7b0e1bdb7631664d21fe7a4727ca5ef86d718a0bc058febc5a59d946b3d9eae0ce2d8f7f7131cc69320d65925d3dec869aa2977b85aa04a26a4aaacc9a5bd4eb30bbafd66efcfb332f07b3472877d5c0ecd2a3975de0c230634ee9a056d1188f73d684ca5a1eed7845df338e3e4356653451eb0fd3ce41974522f4108390b185659a84cfd394bd16fc459b1a4e5cf8fde375aff77b2f48af13c3a0d46519e408b2f46e136285f0bf759c21e121dcc89a1b7cd4df835e0943bda0c94a99ed919cfe7c37c1e3427240dbdcd0a9113a858b4b21fe77e3a8528401399ab9b7ccc668fad401322903bb96217da609552a971bc2c24e79d065e649da6901961feed916aa0a63998d6db8bd86e79d7704dd62d0b6eb11609cbeab84b986fb3ae41b270efdde8d1e964b8dc9a46c483a5c10ca07067c67b2f4467fd02e2e17d487de8db04a9fea9f8b89c4af465577d13265ef1afa4bb488448199fd6c899ed5ac4fddbe0aa27db34216f90823e57159eefdd1807d47b3a92661e54085d7f0056c78e5a8307c91095b2efa2f6dd9308e80d85278a507cdff8c989311f3ab01b80955ed386211555de839405dbbc6f0ce3c9b935b541771ad700d1396b86d9c8f5d1b43a5259da5b63186b0c174be21de132a96fa6143bb5fa4ebbae3c266db3d81752abb77bb3d3dceb97c1492fd36e549d057e8d1b1c88ce31005d46bf89c60c1c3cc29f3a97f5bf7302191d17de669042bc94066852934bab8ee3e088f3dbad5a0ac1ce6562c6eb3c9254cfc4cd71505be4d870dac8217badb872b6215eda2db55f462ac221a0a0dac5c03f731b7d450bdc92917cdfb0a837ed22f5a41e4d295d42aa9bba174d71e13158b980941a58f2de208b0ca9969a8c7b855e5900e2d8fdbc0336ab04c9dd2df451c6a6aae9e7379af839dcbba4000c613f9602d250e9c90a7737493f8369d1cfab70f0a308a9ff19246a856b35e18b971d4677192a7f5e4e4b0483749731ace4e0a614d37ae71c5fdf75232c6393557b39709e80b3907024bd589866e7ee77052f8db7158331e6293e0f1154dd8e93d7f30599a3ee0fc1aa1d95a23bc306cd38fa41f6137362b8e132f31a16f949d24ea3e7d6ec2f0ff2ec8adebe6aa48ed026145358b25c27fb162ebf7a36f85b29d0a382275715774fc46f22e2b5d7ff64adb42332bd536d884b34351c1ddfd37eacfa75f971c76ac73556cc954a7b5c6c54d5a1aea1770e91b3181e169d28a805df630f7c990662136a433e63596bd0b6b76d71a6444489dd64d29b0cde49f7801b300b50e6318351f288d140d7791a8cd21b7693ceae034c9f0a1c3b435a3368d639014d203e6523122284ead7d9715c5ad62c6841d0b316ab586a5874b557f41c6a9ade038d7cf231586a602ec1994feab0d872c4042f5f4ddb374cff2f83d18cb758a5751515555acc6c3ce26fd07610c8af4742b73ddb66f0b3bd2111608c2fc08df2cc8221062abe4b0a770d7143f12029805de0d652768548981849086292520e21b61602dfefb21cbc81f84aa9ae1e8774283f3b8f610d0f4271f6e72e392d150c58ea60534bc2728408fb1c3b50d259a290414415366038a9792a505ff122ea53811943847bb552d814793a155c74db104786e51d65e3ce0c96d988265769595af74f3c50cff8e133f56f7e430c9fb710156552f7d66ff654ae0b2a4a3bb408f32a2ad65c448929b802d6529b098b832b20ce9e0961a5f754c24ad62c2341a0a36c582e960b070394afe260845da0a3b7a9014d987dc4ab200250fe8324a4e7618ccf0cc3c8ea63e60245cdee0f29a8e2aed1d915725e32ebe788c2f503e444535a4592d8b4d1fceae604959cd2cebff2183b815e2979cfa1a4e9aec339f43a92a7bc17426d563a1717f85d28090a1b00d215bacbdf6e66e6bba734953530455254bfead8f59a97dec42c5954dab2d605c93b5704b043894254e09b475df2a664d51c7d65c558304af7f2507198695f620894abe69580246056187f20b9981d0235906115f9eeb300df19db725b053e625ee1b2368d1dc25a12d3062c247db4efcc8160fbbadc478dc36c3a0e9290e2ab2fe0134fe046116afc186afe569a8a0a10a75b13bcebddef2893ee427bea0d684646ef7960cfce22ff0d12b3f8ed51c6fea96dd0dc50a17bc319acb054259caecf6888a7c86ea9b2eb0ce2e159855db55d52608558c6470a68a57e709136cee73a22bf387edc804bee915d75a85d47f0321097982b6588ef0ec1028474603144b2d720783e070d6e5e626417a921d8f8dac69259428611957561f996830e6f43f994b3029518e32175e85c651c81c054081ce4a3f4b4bf77b022eb832c85d1352168f9c53004fbaf4cb3f8b952d501bc391c0c226cf6d4b181c59e567b57986d532ac922b6eb7a3c7f3087096ba26124b140b75dc3071d26a3ea2a15f40599454859bbba79a222a4e5e2343cce5792a893508221b6893dc670edf72a0284706e6bfa68c79ffcb31fde10053df834179dcf5b0bcf313ca7aa8257d6296a20180c5ab36e27304220fa6c2bd32a5b854506baa0ac61135a461ff0172de8c0e7c56e6cf0da058e0a2d073e9cc91be846a9c2ab8f451aa0bcaafdb06963928caa1e56c68310282a23dc454ee3ded7d7776173556effb83b5eeded036927aa20524c85290f95cb79e90594ec3bfa44bf9c111de417af15210ef0741419569414563e8c7d7c38db351b802aa849af12e8ca6bf6874ccf547383cbe6a2b7a4c3bae3f6432a99d9a6016427f94463a754806bef8b826f7d35ede5a301887cea411d0e02bda237a1b918deacbc19c6557762d40e68240f9be37324ea77925d32f748e29315890ba94276b7de6c8a0e74f23959eb4882b17a51570d31c02d9f2936761be4cf92a40edacb774a4a0f9d4e1ac2b1c0764293abb386b7524a50a2adc1ef1264d15c0eee97c5144051ddabebf49f6ad78c35ee7d4b5afa0dfea6b96ef3b7feb02c49f88c6db4196025c84a6152a0f810b2b052e71d8c045fec0856197005450210031b8aa348bd9dfb79de040dfa493b811490016eb88cd597150e18a8dfed6f03f1efa30848d6d82addc9054839a3a11c33c81326c21a48fb946b8dd827656845790f4b70cbbb3da055393f495965d56a110d20302a6ae810dc196dcacb82460c5231093434ff5615cc0075a174dec18404ccacfdebe42dbf2c211dfdb00d56e06b35d19b05005e0b908556d228aa8c0629a9383ea7906a2c40e208563f6db99debe2426b3ea04c641246885ee50803bcf40d8bf0f113ca206c3f97a5e808f7d15e8e68409db03c571d402e622731cf22be831ae0fe1ff10f92ce66177d3bcba8e67ef2be8a2c690953e8b877cc58e33620066222ff824122b9098424362768eccec9bf69d13d333c4747ea883787787a28bb38f61bfa7a0cd648990d9ec240483eddc055e271e2adc121f8b9f7537b03a243fae5245baa36e49c73075cf3e7feba0907aa3f32d44910ca1d585b6038bdf41f0f97cd313004e86d69381e2849afc9967229c122750dd2bb5c33505f5710eee6db9ebf5ff27e89bc73945669fc4d1f9e457860651e04de6738d34ff6b99da32751131f3f9f5791f5c78c55926f904fe77b4c4fd91f89c7c22dc43c9c83debe34c1807af2f04fe284656ae3d9d79af8f548dc54a4df1f3c6b9739c279f947ece26dce7c5283193a33fcf6fccff39043699b49cc31d7d42147af83773c7edc2acd566ac2408a12d87aebe1881b570729410c440439510fabc0763cd6d897ddb84bf4e0561a71d3c247ede206e0c45420ae3983e95bc90c1f52f2fa11308ffc9021bcd7f40cf578288dcf00506a09fe4bd4bf002df28081d5b15f5c66d14eb539350e6b343d2271b8d962a9b9e10f0af61a0d2c5884067f12d8bd7e2deedd6cdd737681cd5118c052f3c9a488d26b4cdbc2b3bce744d02b628e6d09e5cc8bfe7cb60c616e10e73b1a3d41010d144d70e6ca081df220d0c71db2490560f41f1d7c75514fb665503398cdd61dbc3d68857cfa7d000394176f0bde1a51d7daa2681dac06d5556793ad11eebae8f49c6330cc399f2525d02a65e186acc38144e631ef98846025b4fe21d2b2cca0e19c93d31d6f5b558a3624c7353e5c7dd1439b4b2dee6d7b84463f595be8ce8f28f905d011fa21f20870f260940f09ddd6e3787ebb0377423f67b8832980625f6d53ef9c133033d740ed6fec1529d3c5a065672e5484b95d289beb4beeeee10f5419a9f9bc18ea7b7da9acf2413c5e01df1ac3754f227a988d0266a372b43dc6d790903cf0bcbee78531a241c09e42424277b0de1ce64e7b5eb0e300bdc91b830e4f5679896e69537dc306e1e6d03a3afafe51c5f09eee72713d5468841e25e1b90560ea917df5cda0b455e69be3e2c059b3228a3c0caf457fa92884c9cd55fd058655aa098fc51e8a81864ec57610ba12f2c88e2ba9c36b1b0776cdba7608040c9b7405f16855c9ba6ea922216158f70dbb3ab13dab24f4fe04f267a1a17dd74a12d0d01e86343dd54fa2cc33642420eb19798ba6bd4869d3c8bc8088a19aa85267343a8dda19e0d2bbc568178a36b0fbe510d22a5134bd5a2f238a0f19dc9af6952d32ad85dac48a828445888c705add479307334683964558075c74a10b504ead37d55a5090c5c61c5aba6921cecde761f458e47d5fc32eb1e8feb11c90bec5f79cb11c863f87a3dbc66a570ddd0a463154f5690118fa8a0f1ce36a89178aeda42491a302899927d6762e952f731fe676a2698991e9dfd6ddda931949db6e96ade3c208a549792d6ddbd1b29d29107f08305ca8b436960fec708ce4b4cadfd1b3f92e90a64a09d020b3c74685ee3e1d952292e1e0b4609032d8643fc62f39fe6e6d4c607f70be253cf97ecc352e91b67305cfb2812516d14101790e11b49e05c322ab46147e34b56adcf15e90046ffb5fc51682e4d3a937a1046b6ee58604207d107f673b3b17c58ae56ec0ba2e1d5217666ec1e61a4dafeb68b64513424b238df1bbbd583bceed7da10273dafea7936eab0084b31c1c7cef9052f350220473619e271ff3f61c9c48fcf89a9700f599aba190111c25b49c4bd5eecb09da4a8d33a35de4ba6d86bc617f9019df8c5b45cfe0f00f8cf4227e2b76ffcf172620755e24793ed7e70a08dc0242cee9fe80217b19b089fa0fe675c21cf39e242e7185fb0868d79d795c2eb2111e9a3fbce8e75dc2f9d4bb339078affa09b194a13ef4a591542ef5570a264b33c51f21b54d09954f7f28b27f65e16f8fd7b624d4df47f8da2e59c635f6070e0909c6dc4b6dc5712d99a070de6edbf6c88695334ccdcf2908e48146a437a8caabfb4089738ca703513ce6eebb90e5e927a5c9ea8d02b3c7846d9f03b3e3526e55dd5b1c8dc60b82dcac9e77ace9a0f637735ecf6005597cb50e3ff6c86b1a592c0b90e62b84f4d784fdbcf233b0392c3ba68200f0ec98aa9f361e0879e38ecef759b31f0e7f60bd0915948cd7ce25297a4db639fd4ed626b6c014fdbca961f8923e9e03ec40b4c151f56686df9d67d9407e29544ce3375dfeb37bf06b9a6fc35320e549155c603d5f74f981968f820e94fe50fe12974acc1dc774a984affab59921da034750407f89175e86b8e75db67601059ea30481e861deeffb82606b6a60cad52c685dc199b9d51165631f4158c9aa4b8575f2cabe76243840accf0578d516439ac8ce5d432a317a1f3f7aec35903e0a2fe466efbbc2bea2de03fffb5f23a13cb4d0eced4dfd7404278fa8071069dd10eea5abd19a400f5043bb09e7e53cf63d31baa593009a710c8d30860c5206bc915aaf0928a6f1dd1c9764ef5a7dafc4bcb2e44449d3e174782cd0e5f953a12e72ae5e5f904b7cb54166cba3370794cd0c6ac144cd23d85684042201731b2bb6353db540a160afef886884cde6028d1f344d45e98e32c4a63828d1741ecb7a1479635184a252c8d9472e6f1f2d884b2a9d68ab3a71d5ac99823d63a457ea656c456cb411d728e0ecaaf457b475d1592ca04ed8f21b0e34d7a377875725a03e900bd00aaa082e65dd688e35f4550d6881b485a9c668499fc574af3b0e60fdf3904be748405a7f9184ac55294e9170243393ab2abbc60c76762c3133eca2b1c0048cf720bf11f76dbcd68b970a61aa1bb9f23abb4350ab88cba5f14afd0b72c88aa52dd04c9c55d4c885d320305917f1ca4727e164069a0c80315223be67e31eb7692d6ce11c17021648e7b1cb0b946330d8a82a04f8388c7fe4d443a20ce9d8aeb1db349e2bc485fd648fe0a7d972ed2889642702d5741018c04699c19590133a5b49beb288a71565dd0d8742a653e72794f92de7dad877be74ee6d3c129ca1264ab6e87dff81a90a66cf1a0a97ce5c3695ac9fb7eaf3ad82d546962de75ac2e99a704592edace59303e187ef0e6d89dc53c3cd18d1b35d5c079257f8f553c9bc048f228632b1f6aeaeaac3ad53fcd3716eb32228056575fec7bef0c2c60908455df285eec68d5d22e8f923971dd398b8b0a425b5c958e6dfa674257e759896c6787714936f519dbf2e88e77058bd97952b9d37db2100c827c126a68e213803cb192de70a4328da56749bac46fe00573d16858c95852ece03200716b4145deb15aaa850273e503039b18cc5a4c508ee22cd08c918ec3a534819ad561b521f682d27521f8446edd2a0860930b0a1a49cc6050813193413d0ab984162c4e2b18756db8044b5ecaf4fd325fa04d39bd53ead0f243103d20b220d73ef35b9c9720614d2394b08cb0c7d7df307fb2c37f4cbd00b52103cfdd4bad907a6b83a13f15ce9945b2bb8ea554e464717a2a4bb47b6f4a8a562fa7fe284a759d049131d9aa39e560ba0f832d6016fb0b41c92839a58b7b98f33397e88f32a267c9275b4d2b3312f2d64c3e5b8c601f56cb933f42544e736e249f3e2e74ca72ab3081e2733a9d351672a347fe22284b3146202ed69e54226e2c78903311452213a0f181ef38408ebbcd076231d7a186b681818ee8fad0de4a2fdb2b7002bf5cd569890681d1a9f766c3da3b2e1f471aa24eee688d874e07e16a0851eb36b79ce9754ff31aa7659f155ea1c7fd5dbd39238dde3ff83f57a788856fd2e60843744a7977320b94dbfa624de81858699d0b713c61f70482649022267d13a2db85a320601c2f341455590445b42778143e5c51be34a446a0e6b87a100f70b078cbecd1b51648c757fdc6bb4546973d5aac2a3326ab9638c3f327ef8b4160aa39682f4cf14c5fd49a0c2e77610b965c7bbd4a81edfc96d4395969b05852ccc2e7147f4038a0211b3fc3df14c237b55641142250ae6919ce557528555e9b1f687c12c2aa3d4f6743fc049ca18c0b6d6c6a771b534ee6b48a96fed7fca0aa5c2df7313f9014a8b596f14a7de39028e1309e54dc965109eb5b31a4921062781bf98523d3d651ca868ac627867e72eea043ca27c5b55eec91c37685ad1d9ae248988d46468f1ea476518ef2229e523b51e29b5541451e5cc65bd7f1cf4f7e6e5aae33c753d3700a13c64b8e4718edc8c2b28c13685c7c6148197728b689991e947e75ff6b415e6f8cc9109c2bf08115d2dcba2af9c34de219f91614f333bf35dd98920a147087e0360dd7885172ca6bf0314dc1d0824c0833dcdfbfc9a089e9adfe19248afb224ca39bebb1850d617011f5782d7f5b67049661843df7ad9203884cff4936e2a40aa2108a5e3031c0c0adf5bd74725368dee047a14c1fe3f8980087a04093493d562e9f458e8e8d8287af60dd73510bd4088538c3a0c4ba6495343d7b2c4e521475d5c40ebcb3a589d3f2bd34f4a094ce01195d8814fcd52dfb300106a5fce080d5150a73f80e083cc52f3920fd62a366d7603ecc24d8ea24b9ba821c0309ad5bd789e7d7587ff13b238a5b47329ccb7414359fa1656d4a298a6d26208684e149ab4919938659186d19baf4a3d1034e678dcd9940feba8d9f49b8beb0e2e2b1a07c7e88b36c426ac049870b17902480ae300dfaa73d14c6988ac42ea0d32c680a2876105dce823a259b53985115c5f577cb1e6fb3ae08b42a80cee50b352c4eda885928077dc25d88e852303832ba0e2e8be0610a82bb8af42edd0c0e47dedd37cef588ce2e80e73093e85328b07bba272c0512af834379418db8266902b8df42111faa4f9fa24f6ccf41fe89bc66219af9356da6ad0036e18fc81e5d5fd12bd01f97b41436c4f7b0e5ebaf0a33ba547fb8354a5fc8fad702e03675c25cb00f75a75564432579bb7617b70db82423d5c3042666f6052273e288420b60c86fe9327059690e254504014fab3eb04cee5397f7f92eb392221a0575ee002da14e90941f009d13d5405524bb4e9a52536f754a445ea9d1396017789ff402b64ccbb95d47e2400f0eeff84bf4302182e87842a5e11b8a486f6281a93581b41b8ba47e0c69db31019bddd3547cfd8ddca13469bd2ab0d909bdb2d83c318e887f2206ad6629f18334ba52d89ba8ec9704c48930984e5b41a3a189f7caa4977273eb29791c77a172f79a889233431c1f49b986ab4b3537672f4bf8f7c35b1020d5c609df19692750490b79e2616c6af669e285d5e560fa0144b2557cf0f192ada631eb529188802b2e2069425f25e0633b7116cffcc4e35e806ba2e85ffdbb962b600affb102c3bb2c1ffe4188179288a8eb371f8a9563412bbe317920fd92352b9fe8a3fa44ca19bd525fbd3477f12ca2ca6724bf02712bb3cc73a5013b7fcd0cb04d21bc57ff9fa4b639321203fac4901dd4f9ec3af35362f8955e00e0bfa7bbda03d5abff664798fd28758fd3f89587042e3a7aa47de9f9f897dfd9e8afdbd21e79970c9c65f53c62b8103de6f552c7ad7b48149ea41f6f714fbaa1d5587528b26da5b1aade1ad017db27c9544d3af4ae3976466968b324f4b64619adfb2e290a3364af3ce9d92b2fa0e7b9adc9a5dda4350b4070538fd3d689acba8f391ff2697c263ae7ea3d894074051ff9deda6a5c0b458e22c1664c614f3e0ec5d62949bfbd79bc32500020eb3fe7cd2242cddc73819794bf112f355cd81bb65d29f1c9bdbc9a9458758dcac0a70b28e41e4269ceb132227840ccd2e19aeeee5afc532587ce82a9e1c544fffe3db1dd2b8825bf8c2ffe46b5fb4d9fff5b31151b8c43b55032d5fed9011ef30f4c06371c084eb3a06858e002d34ea4dcb56970eb4bf8817ada1fd1917a35b3c84d3eb23b479d0c73937dddffdcb08667ffde4f6c38bd2cec3df4e352afedeb7570b5122546b9b8638649023d5eea66fa3153c87861291a135c741a6000da6752488356284731ff8937ee86f61f9f0c46212c44961e883721e8f1ccebde6e02650158abd9ebe3d214db766d6c268cf1dbd5038e7ee5675229c66d2df0adc34fa0ea93120cb548d8968fa0bf043960667674553e5fe1eb8140e7521a839eaead22f3b099e79d88338244b7c1386cbee45648ff753231d48e54a16171c38696d9d4fb83de3c92fbd616b7f5077fbb87674e773c455bd43a2f7041013a013cc6daa3c53aec9546514010face48690e2f08b29c1cb4e094d770c92d4728d36222e20360147fb481626774055c9f7f099299dbe8651dd92d3f76914f4a074dd736b97f470ed20c84ef1d830c825a1828c28f624618b5b0ba05fdd51129ab2c45d17de77bfb813ed4c008c074a77723679598dae83a9427328224c5e92f03120a0738fab0f28361de4a5b6b023256ede68a1e0569b6301ab85e14ec328772fe438e717aa5b8b1e25e61b6799cf422e8fb436e87e363a485400c03ec4c33264e293d41cd16cedb35d09748317d59babdcc1643ef959fdeb2f1fc3309a8d1a5cce45631bd2f7ae4bcd5a3e1f88513c64dcc7bafc5917c1be4b5d08dccb148e2363b225280bce3cdb0a0b29ea7f652b852331c4d0317b2365488e22f5113549c3559fe1a9ff0bda90d78a2b143514f4559fce3072754240a7670bf945b8d01572be554fc29d1a420c37b49a918dd1dfa639bd5cc4850bbd545a50b63d8281bab967f361cd4c42e306a931ae279fb60ba93282b852b88263cea1f17eb7e287ff42fff55e3a12def0c866ac3298a5fcff9ed1d674e3d2df60a4bbc7728f0368ddd3ee656e5afa1b715eab56509bc81a061b0c2365119387491f50ed5f8e307385935f4f8ec2d479394e892dc8a29147f4120fcc87ebdaf332da09d58e95e45f324a7115cab44af6807b93453aa1c6ff3e05084d2767eeafb27f0876603cb189c8e93d53d0671278a051784407b7cf0105e4a0ef3459d5e04b8966061373154d0c432591e96812f0b9b3f187b9301125f8ea7ef5046243323ca0e254be3f9e13a8d1241310e9eedb05cd81c0a3e300d5767bf2dd7904bd87a3ad4052238b626a81aa0f4861d9448404c3946ae85f72f5757ebf8a0f688ea1273d813498346783fa9b92dc19604595038e971811733662c4c32701f40c022aa0f5a186ae9bfc128fe0716dcb6631b33d3b9a9f779515a89c58b06ef6c4b358f1c185be3996aa87afd4725d86e1c96a32572eb5024d54201ac5cd15fc93da7ed10d105e566b5244f48c248a1b49a53fe7017a2bdbeb5e889c4a17afa7b39d4a56cea162898a88e517e7d76637724431c057b32e55978def39a5f6118131648a10bc45170950645e6a518b3c227ef59defd911901cdc9d398ece0d96f62bfb230a6e932c2d2e5c6e514307fdb34f137afe902b02819175ed404ab82c6f993ca1e84f2966b318d71876d61658fcccb9b51cdf6a8c816ae455a00a0ae50b5e1ecea549efce48a516f5ac7c4937a8d0c3da1a8f001664f302a2b702397db0cbeea05ca77dfacfa710422ae10d9c489aac55792b5ccb1782543ff49a335a67215320b6197dee008228fb213c2ce2ad6455bdd79628dbabab644bf264b00a49fcb4d6e9bee8bc0704ac854b4fa0327c50f0a4ad96a564f8d2dccacc0a7304a8e6269cfdec057482a48f574b7b05ff70a91d92f6c8524609af439654d17e550c23b110747217a1bdca2838638f8e79c5c9acb4853c19201697ad90e54a876875761b8369dcd7906da46922a50154ae49d2b8c69275ef28463e364a66f0d131f391d83b938548adda3d7146eb89b7c08b572294726b1085a06d6d92336cc22f0b4356bcfccdbd339596c60016a9ea633fd808cf7046f8e108de003ea4eb4735a24e363d95143f8d883a0eb54fd6489f26460dab8be7f8e13dfcd11f1eaa24760d1e1cdc432798be7ac2632bb50d7e0122168b45e5f0b0279600625d243db9d8cdb7d0cfe294f99b95ac9642077daf6fec81dd9da604a53022234e83ff43f5a20a6e5ad10eba38817a967c167a24409d1109b322db50e4b1858ae956911543a24108a8919eadf7eef23c3af8feb38a58546f0027e006d9556d30e5d3e1c21ecdfc20dfd1357961377e94567f935d65459dfe6f74232dda4939fe090ebe003d284483a44ff36d93a1cb5ea09f44eac81fc15f89a6520c4d29faba375599635825edfdf89437d701c6c30d8dac4a23d4827522a13d9fb146bfd0e9be58c67d81be8c1022c4464a9c8a2d6cff5b7877537883f1dbf1b021f2eaa2214607c7133bb54d3ca4f2d58ddeb2a6136fefc6d10451638635b2bc5bc77d31f6fceec9e91e8faf6e527f10721c26e525cb49eab0ed68360650041e7aa24b08f5d3087b3022161f1f050e57938e94b3de9789f4382c37468ab69fd414e84ddfc90c6fe5b173aa1afa65235688375545812be5ce848e72f2fc4b69607657eec2882359e5b01f19943c0282e03337c2f4451602987502b44a70588c3708f145a268c39dc58231247ef76fc19144422170695ce0e720000935e7009b8b549fc6b8ab6edebb62383c8cbeca9b0dd1d209c4ef54e9db2a288101aa81cf4728e94b71161075a792b35427fd5a5efa4d1b88d803731977e3fe4efe7b10490b7984123b48d0853f57e2246ddea04896cca6d59feeb5c9b75466d118d0d9335b53682bbef8c8e57051f836a9d650799682c6d843e004d34ff381f61b84b19cc9c042a81d7ad583058594d3ae9757d737a5dbfaedf23a73345f94feb8cc6d150ba9adbb6dd77dbee6f2ef1a0d5ba8aefe633e4870290074350008437b99dde7358823e2498d37b2266cf198a9b788cc60cad0e6d641bd9441a217bef2de50eaa0a650a260b879cccbc950e97abaeb22e989530067b5b0963a8fce48060c121e777f886d5f6549fdc01f8b23ce57d7d95cd34d0b5fd71dae190dbc172697db0bcad0f1ddea653ef63b152879bded7c185d589977b0c2b73b03af1da53fb3ef7be95974c999eadfd92a09229f7a393beecd347a16c7239d8aa7e95ea31d90e7e6685d0f155319827b99c182ccb5c5a1c255377e1d45b78b06152fc9117a5ea3c9cbde674fcaa3397a3e794311ec43cd563c53c1f31577d636e07ea52d6b823e6269bdd7469511b56633c78b18ccb813a2627733f9c2c8cf924972385655eb6d291bacb5d2c6c566ac73c66a5953046de4071663f25aeea26bee9df0ee6f18d51797fffb8a647a1d648a724fa4b2e07eade4a93d7f605c66378f41e2da25804612ee93e3974bb664555b762c9c0cc32166bed3793e870974fcfc588d3e914818e65bc15cbed51df3e9d79e39366c54bd151a2480371b29497bacafb76eeb758472dfe750d61b49694c42e7f03bbfcce65ef93bf2d69f69b6e9d993a7b3751e5e5f094673215593daebe7a1472f1be93f5563a648ebacc519f5174f3936f0e2f2f3e188f4ada8a69f2529ff0da6f3d5fd3481cd27d94a85dac402969fea655c8dd70f1d5b794c74c2f618b00ff20931affa0105482ab3f081404a7a8f9d7c325c02ce2ba0dbfd647e3b6fde4b51fbb78234e87763be36eec7097a73e0365b0cb48b752e7a3b81ce696b7c30de0c9ebf0641c08afe64178ae1fc023c07778356a783b4e00ef00777941bcc603e2323c1d979e01be83d7fa003cec2df994c3f2c4cc5c2b370988c5ead4f3316983c05e4f3f404c62cc639c9e79a72128414ce81252482a33ecc2d8de38bd0c7665392c3467a189462e0bcb216461b1d964f9a7332157695c8af35880c74f18c0d67dfc5c01b76e1e3f4d005b34b3043f3ca6ccf899c1030d272c134fa3af008258265e0087ddb2f1ef86c5cecffe71c6f2d3e5e9101422443ef4609383cfede0f78ccdf193f4415fafb195c132d2c8eb488c790cfa53761c39ec8d3892f18c1e87fd68dcd35f6ed84fde13bd8c530ba0bb516fd2cbe2f1c530ec97a55a192c73b20dc4329409e93c2c01c6c4fff0648665b2dfc41c4fde86378017c0ab711c8f00bf9eeb375ecd693c19dfa1a2bc8f2feae519266350e667a7633206e5bf3cc6ed8e97f36f9a459e30398bb4853feca24229f6eb780ac42eda04e8c6d3207651273c5c256809d0865e01c63061177d22c42e3ae4c359c809bb28119669c22e0ac5e63c5c01da4827c09827ec92422c13dfc3bbc9c72ad84a79bf05b6aa8b1669136ca9bcafc116e9dd27411735025d74f4d2734e1ab308cb444ad4bd9c8e9dde3b581d9895c132fcd3699e5d5ec6583010dd0eb18b1681c22e6a8408bbe88b659cc02e7ac407fb75ec01ca8d36f66b19ecc29ecd79596ef38fc695d7e9cbf21827400d976782ac7e8da741563fe36ef07db0d41ce376d4cba745d8858232bd72fb2d2428d32fc9f02264f5e98b5d1894e9b7cebcd86dec47e3667f1900f61897c12eb65f8d94c1c2e5c88dc6e37b62be9837efe54be3c1971bb95f7616efdbb92c37dd4a9991f14f871e96c1e1f68b95967f2f4aaccfeab68bdb4b58a653b7ed2719c37e83b6f7c963ded7cf5efaa79d2b75fabe58192c933d86f7c9cbe2b93cf352df5297c12e785377f1ac8c2e1ab9b4875d14c90e97a1845d74063eeca249586609bba813b145c92df9e460c98da74874d0e13b20c18860439aba01b2e2491e4d03b3e279a0399801972487c75327d8073f6606373ec98d1c7b3836646536f62811b2d26c54727320fa281ba600bc23b04bc3fba60b6efc0cef9b34b8115e94076fbbb02f8f3d5149b76cabacd024a25488c0092a85a4100b11bd787bdf0fb63f4ef7c55f98eee2cce5385d176f0fc8e9bae03e4bdfe5c529bdedbb645c0ed7ed721dcecfb82058def653fde5d27e2bcc46273e809c7cf0e94f6fbb3a7da71576ceec0ab339e6b3df98364776ec37328bf1fbf227efcb0ee306507d1e00b3a66f5c65eaa9d31d6d57f34dbdd57cf62f3bd9d5b4f3ab1ca89f7e0375b23ba7cfdf38edfcb89d03a63a3f65330d746c7f9c4c87dc0ed531eb43f5697dd8ff385dfaf63eb63f4e5765ed619c723a5e9c7e7239ac853a589d7859ce56aeac4ebc2e7779bfb92058ecc7d7e5fdcda529958d5d66edd2e720a895965bb293c8d118e592aedfa459313a911997a3adcb8bbbb89ca3ff7ef4e5044257b91c7d97dfc41cdef492cbe1a4f7fdb812b64d1d764bf58962186bbfecca94a54436e583bbcb9bd3f1e22e672e0777976f1bf65586d9d5e9288cf3be9dcba14ed3bb811de3b894d5e9fb635e97c7f8c695f33e974f60e762bfb17357d957f3a7efdcccae504f7de74a2f3b7bf2c7a54f7937e4f9282f07bd91e5c8e4b7ac52cf458579f072df7c8cabbc4f89ebb2a25fe590cf7e435a08a95de5e0d3df60fbf5b81f8c4ffbe3745d247718dfb9f6dbb92e96fb8bc7f03e1b17c673f0be1f17c68d1a38d1262ba373f176d148f07df1e237ed2199419223181358118c0811df17677e71617c83e1c9219f6e95437e851d9941921546042b62a459fde2a7fb2267462109e574fb11c6992f8c0ec6279703a3f984f3c42a47afe490558c4201797decdc9d0bafe74922920959245e71e3fbfc3e5b1f7c899d2f665706d8b9fd1d1fb2088b4b6d8cf2832e0ad12850748cf34527f7498412896eb4e2c6b3cfc7dde47d3bd7d41e43c1321cc771bfe929829cc41e242cb9b0c985530411ddad7dc4ca52ca96cd7d3e7bf2478d2be5574e672ebd997f92e6ccfca633cca75939b29bafd32c594963a7186657d40a9e6e65a744dcc2526929d1c86ef59d838ebbe9322b371d8223c49e2a7d7cb4d3e5b793277d644f0abad33fd9a304729b10c6198d4ea3401b79efca34225dae3a9d51a8a7bea13c1a4547bc32056fe5725257ce22cd8a77f1e62b42d18d4ea360af4883c3e3312491a60525cab20c957abcf471399d2ea594d2e527295dacec691612f2ca6f95cb41414e4a798cbb215f56fe72788700c05bd8582484f5281486ee743e0eff62d7964674d8639645a05b9de5dbacac48d7d0592687e490c6d2a759d1ca1eb659864926b2c232cf28f38a0c95cd99fae9dbd69fbccc975267ce7f948868e372f8e445212f3a39425e1d2074988f54d2ac287b306f5ed1ac9892591dce9c8d2c91b71a22001f7d6493c0b9892b295f7942941259ef4b3900bc151f07243a08e2c1197d934aba8584bc7df9e8c3e54879fbe5cddd7879e9897205cb933ee802f0178f02f2fa48b90e9412a144640f43183999cca019247b6473475a07efeba73c00de2afb88124dc6a1445249a7232f29ce68a0636156044b22a557b04845ddcab0e8d644037449a132c0161d03bb640f18b825bd005d33680bb0c543ec8a422ca30568139d0063e285d420bf707188a2c8a21b4f3136894e8428511125e22f36e956bd4d84b00c5c6c09214a06c88a9fbff192a681bae162436ebceca16cb8919ec109d0868e01c6b08b5a41b1903d140d3308041ff000910e7060034396d04006309e2cdee0062cdac0863514a9210d68b8e20c6628434b49066813631c03b4694a44c5d08f6de5d0b4a25b17011418663d5d8faae76f09a0f5cf368d19565829e39f6c29a56cf927dfd2a351a4949d0aa551bc7f6da5090bb21b8b1a92c8075ddb214924872411144a1455aa2c939743cd8af2146b2211264a223944d42d28e54848e828fbb166308ac54f255df6931d791d25c20809492b54d331f3e2904b6a4507352b7e46d7d2ca4ed2287c6a45b3a2cc9ac995344ab7d806990dbab883ea73a336a253138aaccb9a902674e3a507532b3f548966257a67d3fa47069b94124a283bc628e79c2a2a634bb3608c10622dcd523164d91c639c72cef938639c2308310d420daae69ca766c1db487bc61aa76cc948e7e79c4d19ca4c360b7e8efa8310c2f8c5286394347e598c91610cfc8cb2eb4e2a2a89c5ac47acc919a5e5c8cd6ad67d69167ccb968c7d755a47cc228b764529e3a58431c60863dc46190f1c3822679e3b476c9248747a54b6fc8575103949545111820a0452528290120193698949025d274507a4548aa26404890404d2111ce7c34da0d61f549d6d8362a380a6f9404362345232aa4096f5200b82613cc02c40e90ee8052e9d493070a9d4811422630e6212b19f68253a723918bf69766c4a4ab9877be2a5ddd33d34f6c41e297b2627256721866198d47a22dd4173e6247139a86523a49e12d4304949a614958e53982573ec39a15029367174dbb62959b2395b70399995d1cd6c6e735a1a3333d8ca0a77448e7ca6c2a69450605ec4e28ab91d92a5c6a02c167d5368d32fac18339139b28c5c3c56cfc21d91b37d44bf73b9ab6df7b19da785df5ab6f337de56dbc6e18039367bea7a3a96114e49c2208c69c11263cf4923d16b2f96e828eb9cdc11394d90224db36a50552d50a60fe5ad1e0fe1611e668289e800f184043142c77dabd70022867e2ca08793d80ce524cd8931f5e8bcf26eb1ceca47f8f5227953cec73927c6e598968d442ec245e66f3a6a993622d9272236c27808318a3424085ff26e224cd738a166e36dabf0aa9673124e62b201e731a9d2989991afdc1139f15c56bb78ae095527a18bf7c21be3e79993f125c997e3707039a28d31378ec5aa19576774db39ee881cedd95f581a0c6ec300caf43f8f238967c032fd1ab00e1aa61ffbdce71a34bbd889d4859ca42727bb356d733fc4ea1d2193787cb34cfbf4a16987777b0a97b359191ddf2e7239347b925d2749f37c27a94268a3d5d13cc748286b9f5ab0c1a629e17c59158adcaf3bd170c2109529949064feb8f2544f174229a9704ac2e97492599ca77dcaec27b9bbf2a4921076f22a99792aaf6b96c42a7727959c431d1fc631c82074900d5df6db26e64c4db36e224c6f307a7c8e23c68ca35bfdec5bf470340b7bc48e6156d5ac6e55b7601344bc26e66d34cdcc6eba95d91f7ea0d8c8e20f3a88451e1e9e1b9fc577b44dccd36fd1fb2abcc428b5d130dd375decd8316252d82874dd324a6619d45ab97fd8cd9e758b547af6ae5bddb34f096de8b3947bb5c67aeb99fbc174ec5be476c86bff61ce3927e576743f911ebb9f7eb2dd0e956bd7ac8431d17e51b3115ec54bf1be1ff783ff71627669ef6bde8432b0b3da4b9ec6d9d63c6ff3563fd46f87319b853066b3ab1cf5db6f54bbd548479a97c5950eecd933acb91d3207fdb45275e3d42cfac4c687340448704687cf1aa7efaa3f2f3d6c9b803b2f9999999919889a1a3cbdccabf0844d4ae7ec2270a0888c4bd8e0cb96c9195d8f662d200a1d113d209406f0e0f7e0d30246f6fb7147efe6affe38ddd1c823a247b3f83fe217d0307ced4494b6cabd478fb647b388985474a37fd0c90246968806b04b0828c3e70d42f9d1307ccde3724adf4a5e11cdc2ce7d203cba8436db47f6d3895bf48014b1a48b3ffa6e5c470c3b92248c19fda6b7d1f99d07216bb483c3e2f8e6edfb4dec3f30503aff47b74a5646372a8dac4ebc6d573a4848441297f5c5d11f062a0e8ba359bcd94f88b6801eb1b3c34c077d1fb340d89ac1201c40d4e0ee16618925b73bee2e4fa6bd80b2e9335a3a67e9329b991c3173a956e6e9f18cb21944f6fa9b9ed9668d9bc98f4696594aad8c3927fd7ce47266e6753c1a56faa885c71d5ef5956dfb9cdcd2e2733badabd7436e470bfb756b18cfe67d7ceb6bbd8695feb558de74f0dc2e8988309da272185139669c73ae2ee30d5abf713b2a13f1c27eaaebc2bec57ed995e122ae6ccb3f6a571f713b785ac35cd88f06d7b2921bbddbbc5b0649dde99937c3323791c5bb2d3cee5bac32d83533538cdb68ca4c078d237ef79594fd543729f634eb4a263b99794a87513b8ca4fa6ffba7a3a3def4865da5d2acfdb2b9fdd399346e9437b6fb2861cc537a96752592fd68705506bb361974e4c949a1c72e78e50bb59371a4ad72689fbfa159d82c2dcb1e776ea6d3975a192c1325941134bf185bb0abfd7efc40a7f7fdb8b172bf819db3b0d6df90af36c6b9d96fe7632971e3e50b29cce0e35739b0d3dfc0ece9c2efc8c7df90968fc5a8e4743ab5851042d810b2921c9c9aa65fe331db75d6dc307dec34b29adbd5f84bf730ba8ebc4d7c3498bb412dcfdc693f0cdeba51f6a1136bec19f52236d9e732d165259162d87c366dc62d3397b387da3d8cec9bc5debc8930b33ca165c578b3f84af00ed618106adcfe88aa3089f5c5bae3a99d529eba9a4119257c8f9826d960ab8346c0c2933bfa086e190f2aff604eff3cd4bf1697b944e24e978fb28f270b238c8aad71e9b794f86bbff4379de2c16bea4a24af7627efdbb99fa36bded722478d3b2350e3ce67198532da8ca404efb494af6dc58750ae8c7221841042080f21843538ba75206a600d28618c66b19a05191e422a80e0216c276c30015dbc425e71a594523ae00344ee97014109151e8872bf2c8a2134080eba2262c3a220ddca3eb517016d78b3548c80c8e4ec3713a459fd19b57ff19c0dd2acd1b3f820cd629e78213c31160163b8086813e3dd608cf9f5ddbe79ccc379418ae22bd4e93b75f810a45b5cfc4d0789342cef7cd49a086d09e4424622206181422ab57facb85fd64b5cf86d723ab4af7464dfbe591f37abb68b58e83a4e7231b26ecf8c8e7010e9336311cdfa01a459fd229ad54ca45b41fa42ba01ddaab75f44ff681a8823a4832cd17d5048081e369ad5fd1add3a95dd5072aa7ba1844541282cdaa99c726483ad52458f001d9c220945a2c8dc299240e4089decc575ba2b1f553fa5e89c937e524a29cdb0542a95b24ca42094f142f804c81a313fe129f8f41221ace330a48b6078875c8e9755189771482773e696674fca8d4a29314a29f6ceb81cb9cd642d65d08e4ea210f378a0fba2108ddb341a6996948dbd67286dd9b49b16155d980ba74002931b8d48ef74c851192c23f994e1e9b2bbfb2465f4e9d81395acd8afc65df9146a016156568e3a8c2b5ff9a7ba75e537ad5245d43c9d4ea8e9e26265b0cc3c7b37f1e4b17c7a76c5a652a928ba959b68bd6945eafb51e3ce7c05074f42d1e1f009d4a12e04d3bf038944fa36a3535d12c18addfe842e4a0465e29bf35ca8e8b88fbc6d8aeef4d44de76fa6cb4b6893c3e5924ea59244e8a04a75c8e5f8553750e74b1d2a0cbbcb993be67192c8c5934339781cb99cd34f9fd1f5e4724e4dd0fba3b66d62347fa8154d33ba10203ad747ff47bdaaa3e845b10caaabcb0f2817d508b3d449b7dae5a86f2e5e741285e610da3631bacb0f7cd45dde3423c8a12c25925174cf22cbb78c61a7bc93f7eddcc48e30878cbb669daeca8bf9067be882b658d9beff65d7c5e99b0b827b33cb639ced97c3a9b5d189f5d14fbddb53e9505da63c89fa7151dfb26397dc0f9c85e772e9a5ce9ecb21e61dcb300b73acfe927a7b74f597bfa4be1272698eec98f44ee71f302037e562bf1f3775e670b08ab37d1d36ba6dcce548f1310f75fe4e1886fded61f49bccb22c835c9665ec7255b6367777d9b819777b71d27df1254d596b069d98f919e9f1752e87f98526543a4a08e9a69d2d00cd751be7cdb8db8c6e83e996db9442f7d1a2cc088ca93ca5a6914b1a26025d19046dda42182399348b48b71ae38934a547ce34d07dc381cba92e12a8590c9bc541cd5a31a3cec374d4f9282be4094ed9f81252ba690787ed17917498a45a0ce3542649e1c3f4566a868ed41b2d6a52d4b8add3b8adab3f5d4d5f542297342b56aedbb49626252b04944aa49265914a96156124500b20fe63298138250863f8858b0f51ba0b9b84e9a9bbb0291f8c08c6042dc27830231af7036322f5e9d6d73f41dd6a614696d488552295877d9a45b50ecbb48e398ec46d15e3a40c370f7589cad3dc3de53210779b5024537c655034285c0238be1b3d7724313777d5b8adab1ab775dddd74d35a33995eda501b0af5214a37a14efa10a893ac90215459f8600a36e090ac2ac26cff542613aa14934427501e1228dd5ab1d5a04425d0a6c36c54d2598c8716356bbe721ba954e9959d86c94ec3b8ad4e1e58f062d4e5a95c9050277fbad2499a908b431c1dddb5ce6a446d570830a53e44123689d24d4d2a6ddbfbd5270add669beb2ac98343ecd16eeb362c25856e9d46b74e2371984a6daf0201c6440163a4a84b7e504fc284faa759a1c203f5d29320ddf424502f5d85cb59218074d38740bdf48db90f513aea9ad08befe0c46b4e228d8bf35db8f80b2b0475171742b2429ee0413aca0a5181010d438870483632926665248f44fa4dbbb02bbe4dd9d45f7c0817b73689d25dfc850b9b84e929ab39b93837310dea34a59b34a26ead72b4b6434b4137de2474e367142814baf5f1ab6aa75a3d7a37cda3b7211fa941cd62d2e4095d44f26ad269af0f6262eb13ba9eae72dba96a1e7637de50355535afdeaddb8afe61e60a6d88005dfdf8a602daccb7683bd9fa9238e3ba96b86933b869c82d6b393d9e8b02bb54e7867004263f8052f08b83827b4113d78914046199d81c0a60161db86a68c30dcbc4771aa017201654e4b672499b7d65aff85ab91f2dca981bd1ae4ace341a49dce588a6604ad8d58365e2a90005abc81555148a562bd5a733ce868eba204f28ba912a3d5ae66963a9edc14e5557b81bf3f2e91a927023b4e93b2103d003300bed4524c098f88da56e5ed61ea4a24815ba1b271cd578d5528df07382ed45edbcca21915d7ecd6c946204a67292ea8b59805f9c4213604482f78f758a710503c6ffab545fadbeb2f296969fbcc36069a15aadb49cb84f429a794e364851d7d7cc46292ab2e195fd66aca3da56b94c004718a104cfe5a8c65b4dc5414dc235268930f1af8a862a06f8552ef8fc541f6e487c0545244057165f5109914913ce8bb7eb3712dfca356e4ea4a89c5a8e187d05c6fdaa4fe9f1d596a5858a231260a8b8d5552d5858be91522f980f83a5856ab571b51962effe41273ffc7ac1d7c641228d26d465292a278fb5e2191184878787877011085cb00269112d2ad9ea136144d07db4e866936a925faf57d66a12cfa8342c05fb3009dbded9a4db2377c404f87627751e5f2937ee5723d95452bed2f2f8ea06e86af1f89a05b4511d289b95486aff3824479a33d24cdcc8f3af3e61018bfd3236c16506c1e50b61578bf307df209758fde30e7c1dc7337c5d15e01378280c2dffe015e016bc70192aa1071fa838c2caf935d8a5727e0b93fad5fd0646a90d753683449aca83410601a7f2e413ba123379884955d9369eceaba46eb395bdec4ac9432e4d944ef29060b67549b382a0ddad522c9a35c4ff625cfe5e2ec3545b7d608479b55f06495ec569614dc8d6eaf16d52b75a4a78d8856129d0c0c596e0a11b0bbbdb388c769b566333baf1073e1900a93403a744c54fe5b42635bb240fe2709c26a439c96e3cb700daf065d2f6d1a21269aba2d39c6842cdd28460c0630322581169532235d7c06033a9d90957259578068900b00d3708fdb991044ff0b71297b83726100ad1501468d38fb1c88dd10337c60cf41a60194631ce8cd26bdabb1700186942f1954daa755b9f6b4d4823c38b5fcc537940203756855cd735926eadecc7575b798d44a75b1de1aacf8a52bb4200eaa90f617ac92651bae9299b845dd1bbf80e4e12a6a3ec8ada95025077711ea9bf38fd0b2be4096a79a0eec20a211df5d47770200ef78824e56942af4dfe74a627417ae92dbe75ad3e424ca4b7e07256dce185dc8ab343905eb2f115e32bd2d0a2967f30545f762b8daaf8ea9f4af413ab4f8bfd60a8d8149b7533561f229547b3f0aaaf3e1ebc8f87fbc5d7aa03c0e5747da45b2c8f6f24dd825c0e0b8b2769703d0dee46addf604ade13fd8dd49b0eb5e4419c6e613fcd8acbdbd01017a956b0e7c0e5d0e7b0c9d4ea236f908a861bab186eac5ce8aa80428dc20da969569d4ee8ea56d3ac98245ef5737d5e140b8c8716d56c325c96759d0c2906c56f736287da79f40bf11569b80b0c138362166e8c53b83136212261fe63f55ff115b7c83e91a65f11a60b4c43df402d66559dfd60dc8f7dba6ff623a55ed4370ff10e95e70d4cd33f3060a8a2665f9dfd48f7a345dcb488a3459516ed108317c0fdd33ffdd33f44f4e05e1fc3b1d0ea135f42f4c6e07ee89b19813140cdaaa2eba0fe6956af8005b085c1960c20cd4d7c5571230e6e1058544fb11b950ec7faf90fd703c907578dd6b1d777c8135c7b4864f3f6ab8aee8102eb4001d2ac28b1fa344ba759f1409ad54d401a7ebd7a05cd827e016c1924e91f20d1c1dcae78bde6f4b0cefbc08daf26b8f1dc086ebc2694821b8fbde0c6266e8c2653e949a06eb24324417aa9abaf6d3bf9d3a12cc9d2a2162a48d0815b6b1796b8b0ab47803441224c64977c7c8da24a015badeef1950ad8a2e76102c7b127bbb0c4ddba72ecc12e2c71f9cc58923602d390ac1685a3bed9d4e91f09a5f22f654af9f7a26421c38cde3f240b1966fbb783160586412a227440d84176b21fa953b15f4a9562bf1707c0fd342166edc0136162ac4e54229e4853bf0061e2895c2e03aa35dc789e5a86ca93655da752fd4de86acf966456d165762b9a768b521f24d2f44f51ff449a1eac75dc6f9a7d7cd807884eb7b657ccd3ba538f96184eee26a3b2d7739b424dd8877f90dcda5de39e411a88c359ae4338be89f0d4575b8710e9164715577d220cb5f1d54898d0dd6cd50ea9447896408bb025601b602b7b3ccd02b626bb2a1ba0cd0d6e7c14c38d67105c214ff028dd749315427a7dfd8964577c04c65488f3b5bcde5a842018e16a5ead71ab8c3c3837bdcda898c7976a1ea624dece9b7167151db34fb37a344bf3b84b3d48050948d0719ccf92669ddf47fa9cad3ef5a759b16d2369565dd2af1f8efb76eedc7dd4737c559f5a7fba55eb468b36fbd5ead59fea5397549fbaa45bfc86f76e365c4e770d12fe6956bf605111133afe2acf4fb7be7edd25dd6afbd52240fdead712283f49d8b5456199782ec936a3cb040005c091b4694230b8f19a50f5a98fbff9e99f52943aa3db68b86deb8ad4a0fad33435344d6a8244b2740db40d30060b7953f4c28a64addae21030c2a93f1126be55d4f1458b686a579ff8aa3edd5d02f6806b9ce63b0468d3cd2126d5e709338536d8e33928401b6e4dcb7020831207020b3913fc408a2140c1a1807b41e53476698faf3ef50c6148831ada90c516fed528dc58a550052cdc587da010addf24941c497cbea4934836be22cc0c016b1d57378c6e5e05428dc2ab52c09825cd8ab7de70f4d74653d13f4ba00db402c402b4c91e5f830069e8fdaa4fb7b83a4474391e2caeb83787b08a1b2b146e7c3cd2acd821892fae09bb201537724ab8917bc28de7947046b81efce370702327831b218ce9ecd799e046ab092df10329860005f7020e051c0bb814dcf87a05bb468faf4d9a86164598a02a547d7e6cb5e24279f2d534dcaa8636d42caacf66a372debcb567d4255c7faacf139dd484369c5a801c98c391a4459aa882f80ab08482105e5e18233b0823f639b191379a33ce11166777f7c426c5a68c37415db7fd4a3676571202c6683f29e5c4e69cb3bdcfbb8d4dac679c18a4c97806ceee8e33c68e1383240863b4e6d18c9cec1867742c6577632daeaa9be3658c0da36972774378d28c31c619e78c9299d91e462c758b67582ceaf810c67ca40b7fe12b8c81564ac9b0a594524a29a56c96568592a28c524612090a1bd8b6520bac45e08f24d23571868b9a7561bc6c128684a3c847a2dfd82ed3267108601c8e268035db9535c7081f260761cc462bc55e6e561a6d32f6c61bc4489f1114c3b02963638c61184782d3064049842e5092a00b2fe12988267854808e6816097a7d4096aae5440361b7b457d5d44e0b616e20d17f740bc69dee660291a0977f040f5d24ea659b2398e71ae1c3e576481e9e8e87e74668779a1180018dc08742a1e1c412152a48802455434a0fd5a1067027eaf63f17cb3f1ee60ed7c5bf99dbe25f0e771e4e983b55ff5ceefcefb477b6dc699aa7eeab5476ac88ee2e542d2d94f73de0fa485d9ed52c168f47102aef0766f5573c1f20abdf8a314323f5e9a58ef26aba956a71532c3765bf7912eaf25f71c05df1be075c393da88231a4dfb47cc03de5a88a50f1bad38f14af76406ed5b95206217dca6925a40226e1f6b59a9a66a611a871ad842b23356cdda93b75a778d3d2047f22e207650cba2fbb0c67b8cbec977506b3e6be020808c80a51302178f4108283d80933e12797a1100b08217808d12ce6d12c1b5c3ce6f168181bdd8217f37864ef61035b7fbf07d8f2de03b87d1ae82242c6edcf40570374b87d18e82aa22d84f1e27d1c60cb450bfb9e400bed760ab680a4c096eafd12740559710961196e0874551ead10cdead1854e8587ed4144038a601733b11a22d23fd8c54526005b9c02231d845d7c8491f059ac383283ee7833797cd948b73849a700b618079075845ddcf3351276b19218b04f143086f93c845dbc845dfcc3324cb08b815886f94b86fc0019808bdcbeb51e5f5ec2874b2edfbbc75060bc7061801f201c3ee24dff1ae8aabc3d959b4ea56b995cced72ffd2696bcafaf8fd2e34ddea7c42db5b4d82f5e89eb23be14df9d71005b3ab887cf2bcbd27389d80a90c55ff1380acce2a778cc04257c8ec27ecd3e6c390b90c5677bb24a2e93ce1dda98c06f82ba1559c57e7dd331ee877e77533c862cd36f4c25fb6120e372c8db7d1b3134d91b1ba5f32997532a79369ac5858f9f70990a972300816ec737048240d706fcb1d1ad296367aa47599968c03c8523e4fd316382191a353333ac183334669ad533339333a4d734eb728c1a385c0ec0e556ea1fcbe5eff7e6c56595dbe2d86db00cf73b76e160192019ed40376a513a56fa4b42b08c0d760931000ed553da64bfee805ebac5ef2e5b1f9d102a21063880597d940701c8d2e91cfa3c84f459da531a8beeec757fb7bab6ff21f2c724b88594fb41272dee079d1c21efcc4c4d363363528277a6ccd280cd26a0344104ced8dca72cbbaaf341f768bf8ced14e2fa88ff317347bffca199117ea0b85ff6d50b3780a4477bf4a8fde24542de0fc8d591390dd39fbfa182b9850eca6efe35774a4169f046c4856f4fa582188d66c5d175e69d353337c608676ab219c8351e0d6869342bb2b5353333ac9e99616de4d17ee96e39690e8080a4ca854518d253821072ef4c9f6f81adeef328e852addc79136ca57c5e832d95cf791274b56070f63fe87a61199de9f92071a0e39ba9b4a3ecc99369310120cb46e368561f002ddbfbafefbf946c0b257d7a2456b748a42f93dfb93372333e9bdbd7fa2316764c67de699198575a79e2f9d3972da594524a29a594524a29a594524a5bc39ae96477f78c4e9e470fb6375216198ac18d57c116e300e2e10f14006c8d4e23ca80ae8e655adc89652296358dcae33f006cda61240a22848923ac05f0a8955d353a76dd9cd8652308bb705c200a69189d23451800478964538260a1fba0900e09ae096ebcc9ee40567c57e34721b8f11c078e7ce0e3257cb002a08d124258269e890d10b5b8dce38370f6ebd7d16fa2c6a388db0fc29a875ccb99c862abba42f7c1a220b1281661728482ad34036de451a79b60151d34421704a738f94084cfe6c2afe67e336e0bcbb40bfe0bc085ae0b63c0567689652bdabb43790c61e64f9e490237bebb547237a972d77ff77262a9eec6f5a3af97f213d8b9744685464a4d8ca89262ea4a242ec693ec375f7dccc8fd30cf2941825ceb0cbb68b08cacc96af467689d814eb89be703b2fa9a7703b2e010146e1f834bb850093fd8f0f1a48829dc7e5771fbd4427913654a6f6e90546cc08a0e02187e6a60cb104bc2ec33346ad48e880644612686743875fb5c04c90c9c1052840f110df8a1130488843f940935353540345831fea26ae94e0d3369704498182f2da73b71449a2011667e3a410224c20e887061d6752ad55fc41ac03c8c9693c098f99b9e4fba2f6baf832c2384f44cc24a788890f96227ee642277cad8731ebe4cc9f445b143da5837d60263244796c2d0e97ce47494ae24c2e731697dcc49279d73ca68052c7b8665189d33a334a318868d6826a59452d3b42ccb32abaa12cb3256261b506b95149318a51493f459961151444d8d363f08848de6b41154530313a2076603886c6214abc1ec8d109106888dae798d3e8545b4a4fcec7d337abe13c3a827e7680394948194262da7ac635683150346891db35ff6918fec59f6917db33a3bccac7c817f69e9284d4093bded47e5a4234c4a8b0018d3dfaf3c0ca697aa8c7637e5131b7c9911e226918780e8b015ddfa5888a1b0100dc4a111a2194096759d4ac5a251c179150d10543b506559d74518e507fe4ccb48e693eee32066d2ad9691a717666a3061c204886ed5804c58063138463aa51cc9294772524ae394db286a9aa669d968341a5955d546a3d148a354a352d24d4a8d528d528d524a279d73522226957452a6f438a8158247d300e9a227b7ef0789ee89c001a23329a59466cc3539026d5a5a8cbcba2507d4614e2f2c152b07534a8c0074330028d1c041a5c6a672355e36d78d8b66c3fa508306ac813c401710debf19173e06b6e8618c0b9f030c1700bcb8f02d30606bd4c2c58b4396e700c30a0000707871b1de61b4e085c72a70e1f10948e0c20b612003178131bcf29807c2f0593c088f9494e89d95b8431a2cb700c648556bda53f424a7619fdf30cfcb302ce093cc8b328b2d10a661a48dad54b62e5572ccc54b8bb62d33b2354c767d9638d19c68425a134d486ba209694eea4fe5e1a126435086b6ed67fbd998a85943afd7eba509fdf413ee958a214d98fc00458131f1cc509828c893cb79474879bf1a14e552a1fbfac70a8d851bdf4eba3573e3fb09b461d234a437d0bbc9d584a04cbc26e4f3da64745d7d3a4da8ebbaae36e4ace6a4593fdb4f8f66c5eeb1877b74222661246eb81c95dc68139310fa00bab2134099086df8fc027ec191fbd1a2cc08fbd48d7698accc027efd900d21d6242c130f852a3454a1c4a09b1ecd8a4bb86bad8b2a7d52d95e71536da89a92aa217d0e64384b6059649105ce1375ebf8722d1c1a88dcc8051f8eb9bb79d8e5c285fd837554db84a410a4353d7c1de92cbf4ea71b5fb50655274f986ba4987ccf6790864497d8fad34fba7738f1ab96961e3b921784c18e24bee291f88a47bac5dd6aac6546873561fa4da77ed374341a8d4629292973a66ccb54a98ca6cabf39e779c948c553515119492093ed24ffb0f04fb37cba85cb99f3c51291346b492d827d15a8841d0a35b915a80661424e30a095ca04e3b7e072a4f4a93f5528d2d0a2eae45626485e96bd79319ea89d79e36ebbdace77deca3384af92977dba45ed122736703f1eea176946aad7a8042d5785450b199a1100000820009314002020140a8603a2e17848a067abf20114000e7ea0507262a049b31c8721848c318618000000006000606066124000f030187d638f5b2096d94b06daf9986e6efb4d5a8de7fae8df02fac14520f21a20ef19818bf45cf0c640f7511ce561262dfc287f3ab3731762a531ab28d2b816f94d172f2a4f8a66a2e210a07619036df06190330d82bff11722218adfebfd79f5e543b4c9ef8b667aa6997f877c8fe1a09eb6a60c06e94186ca8dbdb7d102ad76887cea69504da30d2b68aa538687c706420bc203e1924383668fd18990cd4d69de2b56e46903c06c6a71da4721809feca3b0d04e221fb8eaf71f4e2994ce535b04eed2b0a577ad5e75021f63959b9266d62cf4315bd5ab41e3834da246ef2290a558959d98938085a8f91b109e00db8ec32c0f9146da8915e0e5c6022ee09754cd5422c01cdfdea35e30652004aa4b143861c35f781d1ea211b7155cbc55524d1a0e1d23de3059d2c360a41287fc732015b12b07ed8ba0b4652e857f92262778ec8cf3105031213c0b3c6f2360189bb5c96eb024d2fc1734b3c2805fad176698e522538c93d4b13e13ca9766b9172e5774f69f8fc9719c4a9a305f7af090992293081f85e019d3f1f1a7f88213bde85936ce08b83d675dfc4786d14f3a5aa64d096a256be3ceca9b7951e104523b8b61230a2fd1e87af946a40b2d31454f680c60014e50a07bdf830cfea0d96e7beba68a0bd6f1f1dbfd77f5f6e1062a5fb9cf92ea3511540462cf3203e395cd84c58082c414415984a0f9cf567ef17da0d70b76cb1100ade8f9c71c674586749fb647b378c393e9679a3fc46691911cc5e3f094750a2b6e84294cecfe3dc9569b3d56f962456ec543140a6b682ecf7c816b9d74f693e2ba3dfbb6f945a59a0533a50c0bda7334bf54a3b73c563183fa6e26d69e32a2f51dce226e7b4af1b35c0b5766ebf4c33c06e3bc2c35af04d33fc75451a7d7d3b86cda7477d5145a7b537320d2e1562ff4d2951724effd1212e934b7680c8361fc0b3b627f04a9f203d4af2265b777c06e3ee6394d00fa56922616225fa1eab2f2f781d2ed7f4845488fc50f262a2a0e4482e78bbf21816d3180f64ceac64a537b565a58b6e2e51b35087000e1888a772506f02735fd8f0a5222f0c885677edd4ac7f25a90ecb061554aa82b599f27a193af50147b208a31cb0294048c598292e82c052596e11c6f6dfa97e52f77844c3ea9f4c2445bca5624fa04c674ead56d88f089e61333d970b238be0c7da757be14518993912ea0634e54eccd54b44b1041946207f6fb18223443a21e2ce16790b43f83306e34ff2cf56d91acd88e0be6dd94dc1af5b838f8e939367265e139b79490b98f809e4671220e1306d7b18b62759b44ff744abff4ca29ed8a121aa2333c906325a2a48062e98322719c9d33b22929e314fa4d8d992094201e572a26c5a295dd515a8ff036f7c80577dc91885dd32a40cc4117415e85b943d94e71687e0946b6290e9a02232171583327fd10c0ff07d43a100bc72c6bb1085de450e522506c68ae974fae5e29abea2aa0a60bd38a85196a45892d0a9428a3bab080e25780494dc9cd2d7feba87d4eefe0dd05453a4132f502335c5965cd9cb3c8f8ba79d0e173a64ecd97381de52ad9e912d15049bb6c46e8a83811920f14709f171b207943662dc444491f42c06278f1de40d3ab44be1b99ffec1c4a2a91cf3dd33fddc421c59835a59771a48aa8afb9bdc73b32c2e4a2bbae96b6b1258feed46cd53fcd6be99c628bf1e8aa5bd457069a46153bd6733ac81508810585c6b82b71e5af77057fd37c9ab7dca0bef89eec0111bc44ac38ced77c271ce90dfb0f1d53b12110bf21a2b35d6d08fb63ba323f4b9f2b23afffe7c03d87761b5624f7d1d98780256803b42c4f69cce54b86a47e61d2a51b3f51c5c2fa2ff63b7b7608fbc4388d0b20189992ba44fe8149360c7849e3aa1fc39c35a8db06b8838fc8be609c51119cd7503beb7b98360663bfe15aa4a5c67e15cdf8924703835829f0a2d2ef4c618cb002eb8304a2aa4e9a2f784551db4ed6fe5f00a95ff9daa1820f894a8c89275a7aa8d050f63e248dac176da62173d79a7b39e76932425ed23294c32f9dec3baabc7d4171bf0a7bdbac6e69c1452759d9da5cb224c9ad949c36c898d896655326da0a45ae87567c533445f7a96d1838a6be6cc34c4160b2a1f3bcb151292336e58c92246980c135717638458f6308c16f6cd32997e6824df1e6522c2c7434f0b662231ecf493050157b408956a7adcbda66d7defccc6639209fcd34c62b0d51918426f6e1796e91eff476f67ca4726a29153c3a1a9d1e361888925b10cabdddac102c7d4b17726383b056a4d203be3c12a3773e86dbccde2ae6062a2755d2b10fc4811d896f8b4032320f2806bc39cbed193c47479268ce8c1854a918d17109c5a9240b44c570a6ebbb42acf18e7c5d6fa4fc4a1ebb26add0057fe604b8fec57b201af65c54e2aab2c89e08b5ee2845362e1a6d9db61759f108a7fc9696060544fa78d411462be9c8d5ea3cc93b11791797c2dd8e7085346bbee6dfa3204a440e297c56b3a88d51820379a7baa6ba5dea245d05bd5d66a5f703b21a4ad8fd264f4a4f4fa49bf2a5304f884fae905400ad0abaea7804b81721fa77cec627afa83e6f8dc402846e51915ab4625343836a2a6a7a69d79d5c64e5cd067e465d1f5ca2de3e36c33dc4692c6a48346157fec7e6983a403226858d8dd5a34e8b8047e509455bd312ad0f0e75f7b668d7eba3384acc0afdf08e3d2cd45c0e0ad7ad036a8c49733a5f2907eaa0b3950c28689ea6fec32adf6a5840181b14451ecbc9755103ea06d7c2b6f6087728c2747deb5771f1db369bf57bebf0c122386a4463b41b8622e49a45231e7c131ca3c2e410c1a892f0293724d1c0ce31c747f6a1884dfb4e49fe618808d482f0a454717fbe89f27527d61d896299ac0321db96b4f9cda38e90faf69623bc7711a62789bf050666860ecba3ccf5e4ed209e301ed2e0c07288716770d8df94a0cacd658d9f50457eab876bb651e8019763ce4d55e62ec2f81db537909993a0a0c488265c1ca778a145b0dd806688f6345a1e7a9c81f2f8c1216246ceed4cd860629d339e8fe0722cd8505aabe98ad1eae4a1de19e7e3a870270f328e7a57502b3c877174177e6ba42c58a46d1c6df9c872a1c711b52bb5c1fc4c47498d0f38615bba49854db097df0de171d449bb7984521b046382cffccedbc953a91c0d9993b8e39a8d3b8ceb1618d67fbe9a802c44007b06b7a793d96679d1e0299ec0ac8703f4d21d10585fbb66078893f241d7153297a6c1b32eaebe2f940e8c2a9550ebefeaf419dee242af00a68206971d39435105882d60e34263e1f6d9d82ec8374361f8471a2c21ca4010e644bba0d60aee9c1278352f6d1d271215e134737ecd5c49ff744737411b3d750ecf13014cb5eb8b1075718d1bc8e4af14582cc16c3621f5b07dd73169d20a697d47f43f7a7bd02a58fc409df722fda4e1a4b08ecb3336aea553071ccfbf9b734ed8ed0549b9cf524c5a76529d99b994fe58f55f1c28dfd42f7ad3a30bd780e916bf9aca5173c2c0be606b098ff7fb8ec4fae1f1c2ef840c8a2d169b2fe2dc85ccd985ff194f554495c6d3f6ce3ec1f8663d8d9a4b235ff757090bcef500acc0eb48fd72ee41ebae4896004dbe761de9977b4cfe7faa0f2a7c9b5532c3cd4ef12cc129eb8ffadf9876c57c433b506175fadf075fd01a7b4d5a800d6a473583be0abbb26a5a67cebee17d26d55235ec047d124e4fc5f0ac7d802d67154f4433541d31e0c1c78b9dbf48ed0796a6febaf9ca4e3f136d17d67bcfeb599b1332f3e80da0594d7c5ef47e7d4b11d810336e5812d678231c3af815b140e055cf3466e9741ae28903bad95d134fe64ea3b5c8793061c82dd7f06e6975b2684424dca0ca4b9a3a439cba5ee26c278083edf95b12084aca76226f276439cf640bc086db55950a462f1ed8d2036308675aa9ca1ddad0ac81748a35d228b5244c1a3c472decacea51916c4bb77ed9ca80465e0af2e8ba5f470bd6ff94a62589e3407851056cf5230bdd4e991e4e69d352b5949081d690f7b2212323356d66bfa3e399bd6bc0d8c0ffabb28a2c262bf2c9176f894dca2c28d9aa438ecca53d994caba574cd259765dbf1207d13b56fca29b37b255480b2927154687216c11294c730f9143a669798960b531a5bcd6ca459a6d2774c9f4099ba0f9b826e3ce8b3441620302f476f3dc61bd614fae84a37882e5940eab0aeb20a34a3e5646b38c8cd08206b49cdcac8131a4b43bc5f6e21bcead8d5106dbc1faf94cb3c215498b22cc64a58a620efd51b15a684540699850a177ef1b950192ccd9d51f70896e0819a9bcd2e77d29b076654e0b1e92ccfb6ecd51ec5f6adb547f76d8de078cca72a20dc12d7f3385341603f7d9e6f9eede131d50d67bb5489210057e83016e41d21fc80599a7ecf37b6046e0fc4cae4ea549346204189f6184e38970461e6c25d0c9e2f5eb1a2b3ca08064ca3fd015fda4926673866469ab99a4ffbca9dbc2d3e7dab81ab855a833cd5b0a4ab9d71db00e1aa1b0d36a015a61e01a783d3806e6263f9ccf74e8d807a9d15a29358d51c73f8f7409b7d659616702944235d26a7b053cb9a8df5ebf69d59daf59937a273d311eb11977668c7b3d8bb846c85cc99765189155913fe07ead68b719db43da4bbe2e512c2579a18d5acf9131d179bfc4de1bbe53b2bd19f9fb905da7de87245f2ace8b7169256a3a8d5693d10603d6e0c7da90041bc073c8a65689b07c53d7e18c15c45b557d109ece0c47c2289f954b3cb8e55462d4c9cd03e1547698782774c6fee6354f355bc8a810e8d96285c7c8fe349eb218aab59e1031d9db53e3ba549f19bbb03d925586ff98b4378483bbb9d74897a0d17688eff43a43b42536d407a1c858eb1faca0ed198d27dcba98cea6b5d0384f1701bb60112905a8ddfdf83d048d59f8ff16865621e96625eb14dfc3216f374b3986770857b7cefcfa5042e0c7da702b533975cf3804695a902fa214808fa2103f87cbc84d17c380a000f7c4e3f6a6f0754261ef139ea23c8f523cb03dd6c35fb41cfa264550b6584f87b1319649bf4ddbf3a4ff6a112eac3f93b5d203428ea1758a4ec41462cb1400640837ffd00d1ce336885d882a6258116c1830871125abccfd520c5158842c1881a6561b4cad538ae0c8a17c53110fbd796568739ccb1ab018e403a64c428457f28f0229307cf4bec1e2c0b8755d3818a3f2a94cea94a080e01a90574b13cde921679b06fcaa9491afafabfb1a180b98e47cdb96fb91c7ad2cc890ba004c3ea2964c9a22905c3e4001cc5133132543dfc267c46a947c8a12a3e74a2b4ff0fddaa31305b9aa792b45439d75c157e56ea0b1d1eaa18d57b9e45b12ceef115e8ee6e5f02b069c73d2f627acf423c5e03976e53e990c12be6b081cd5700ebc998201da3e81fb5a3962b759ef5c8819486d33f5d8a344f2d410845793e97425c3173fe890fe52822eac71dfc3a3bc5c82d1b42115075833274f0a1adc04164d45a95f2a4d63e714dfdc4bd01d3cbf9a37840ed238363e76730890e4fd02da8e9b8617ea9e4a3bc6171f0804c01052d9dd896f7564bd0178648008ce90b8ba42ee0666ca7ae23692b9ab82c1255fa80fca01188ae181a5ec5cfae2848f4905d04e24cfa946d74d052494e69e39400714fcf9f75d8603c40fe8a955775162f0ee04ce9327ef816bd9510ea54a35ec8f860fab7bfa926ed6a0a7bae6fd5509ce61cc2592302d73e7e8a598b9e870038b912bd8892e0fbbaa16a52d187e13b9be83416a01163d99581a7076bbce20a652caed4ba77a442560b390c1f756d70b77ba1aefad1aaa61f8c7b05713f0ac502cf9c66b5dc5c6560f50727b563053c71507ad429520c36ae9cbb7485694469a29a792aeb2e53d1ec1a789d0040c182013a4b0ac0c6db01b002a07598046e5cfa7537cbdfbe99549b65013435ee590060e6810500c00a41206ca4f5c915002acba6abf9bba27005f4713d5600926a465e081e983409ae0200ec65719a600c007a116196713200f7e24311bb09290519c05a1acc009c11f10283386600d307e564d68db7defb5ee06c21cf2cec1d0f57b481d56cc59a4c509d8a87063e1dadfa958c885e9945152e9052eeeed44cf2d80c73957b8dbb266e00530d4b9578df454a4698898068da0f8aba4d21aaed2450af11b48c979449e5c6cf0e204134673d006bc00ffe00aae9ed9ad09f84eea27d7cd8836d0a48691315e5ad5258150fb4e0cc67b8caa023190a1154068dd664f188361c5132211e310201b130027c3b8a102d1801d29c0463c06a998d1701e8cab1e2fa31f2a52c7de2937d6cb51effe2e9f6eb90c564fbfa14b23bbe958b946700d0015ef3acbd99343e4f7700da59251f606db31f90748cbdfe3c234eb14db6e6433f2f27dbb2e04ac0028f27744aad2112a15fe6e24530ff76b4ad6d48f79362354fa0b2e41342ea41e1929def1fa826a67c2083fb51c7bd010ce792b675d58c85ee261def17bf806a6b5b2208395b992bc73f5944e67ada6729dd2385b122ef38d07c27e4b718c5b91c7d5e0eb08ada8bf6b3e8570f2fbe6ad9be977a6b5db3b05be189a727516b29d08f3663d91ff20666fe004c43b2fd2859a54d3f12efb6b7802ff703223727a770ca3e83787ab9a8468d572c8721ebf2cb79850aa68c0001a89bd9c325eee48d899783bfa0801e88d3157be34397551fd4b8bab235a422c18e41806a33e9cc16ee5afaf57c092c9778c80a335f93fa79139f15be4c4831e7cf4dd5fefc7512aa3c4a954e8641007011fa5c8704e16adc58190f2f4d7884bcf1474df1e469e51890f08716e99da48116080228f381c44bb972816c510a792481b6821c7794435056ea8bd3be312951ad779f7642caa00f03ebc3e73e0ae0490294483823b7f53885a5419b486e06713aaca92f88793eeb318f76c01e28300350daf0d8cf6e0b0602daf3b1cfe9e0c88c0ff75f9012b8be44be6636f70829240f5b183033f1c7a2dfdc1d99fb00294066e720f3208d108004f4687312898dd27a79351f22915b4edf7ae63808af832a0f747c808abcdbd232bbeb1c121ee0e03df323a68e9b3efb011716c052884f50163a83e685120de0fd6300b33af131cf0c01a5b7c260364300aab2b44716481c02f87a9127737022dc8934ba8b431a7f4a0a451768052db2a79cd0be3794169e615a1a73a7063f6c05c133b018b1c6b140534f45bdde56e55cc399bd3ca9400066e2f4fc6b87c9b1fc6f33807be639d20a231a13ff7804a3a97c3b786ad8cad6c417332dda796f5d7802aaef74237867592b0a3d035f89e28e3b4f42f3ec967029e6746782ee97954f91980a3615245712172983106070f4136181bba1e5b26dd1891e9ff8a87003a7a08e0264dfc9acb493eadacbab90d3597d272312f4ef195c9a85041a7c61570a0696f9761ab6573636cd451e06624ae281755e65a028d474f72b1e6bc87ffbc2e90bd0a59a6c0f290ca49d8d5127e7e99dac7278761cacaac8660f2e0410394c02c45ffa0ef5cb6f26db28144a45977622ae21016d3ffb24bac0b133527a0e5c256c6c2e70e969f401a1ae5c70ab59d1c9526744a124882338da93dac78ab7432d2b4da56e1910fe26019e4a32fc99c5e5525b02172e42cf453c3633e1307d4838f6d9e43128845ba51003fbd830d27479c20b9a7f16cd46b85dba7c8d4a02bf60b06e3ed4abd28bd69493982af907d5882ee58a3411b8012ad6feb8324d840795aea1eab8894006177ba0c8d142cdcca2aa68f7bb3a3b3b598f47233286447cffee230dfa0174c6de58d7b296cca1951da25e9069706767cf74c1a8c268478c7739a226243911b9d4246f25c981f87792c543f9625cd85e2c2c35686783dc86efc8c41d84b2c8ab7b3c3b7bb8992a34a35f0a3355dd38b6878e50e115453f6a470b860114bcbf292c529c43a05cc146285e7da39d6e9e3e19a76b76768f510191058a3af7aec0d7c40bc5ceaeb715ccd906ec2d25e8dc742d82c72f91c0063a7be578b848fcdb78c54528db7e958c6d09f3bb1e70bb45d9be3c92b875296cfb73bf6de7b1e0998fcf94a8deb1ff8a3c5af7443b120034c5d6d4a632c96e9f00280a17bfcc68e7f5a47e59cf26e8d8e88cda4365b0f8df03918216b277a0ddeb6f1d9b8b8fbea88ca0332b94734f07d52dec6e4804c121a6a0b01958a4e0e2a8da71a6e24bbfa88253bd0c9211fca7a01aaf70e1a5707657a0203a574516376040b0c1020e35309cf84846e285e3eb9a02f2bc15a0dcc4d0c85c02b334ba926f70e4e2a6604a67b0d7dcd8941ffb306f0a72a15a7ef56c0f32ddd17539f48feac5c49ad8895f7a991813cabcb07756b1ca59e9904e9a8cad221588521b5a7f06e81db87e379ea7350769ef8ec0c6ba67a8ac80aaf3fd3700a040fcf7bd3f7e8d484d1405565b0d881ff28012eef80537240b3302424289e924c0624114191dbcd87a3842e61154646c1ffb515e640134830e476fc5ea58a6ae6ab35e241f28c52eaaacac61e36a6b994dae83720c51afdbd82127fbbd9172b43ee1cdebc4e7310c1257500bcd13b17a94a5ec250c10fa7f20b7e568d40bf144b599a2e612db80be4f1f8fc0fb7ae46aaac3d2c3f98ffb34de87dba30af50f6ac267390350f30bb202ccf84e826b7ae5726d834d38b23e3de1a54045515b23cfbfa003abedd19151610d57e52daeb08785eb6006d7f9ec2b219fd9dd407cc71b7e3b3911fe32f9a0929fa1d4712cba37015d8d6b28a508f4592b766b115528609fc776b14b854fb8240a480cd62d43ff3bb64d703918fce296b4f260380df1adf05d69ee36be5f76379d0db7fb82e608256e47c2a563692f89714e71d5bec58006529a55df4acb2f1d168b53bc072f8e1907531a251f4cf44181dcea2cad80505c36a951610f910dc2e504f4f0f7cb1460631f6708b4c5c16a141361c616bcb8b230f225c41681c9e266ffa7710589491ce7450153309d8708bcd0a48a46e902ff34fb9c18bbea6d9f7e0afe66b8e12cbe92cfb879c5c03c484306ea364470af17d5dd602bcb0070ab3607333a9a64ea8cde5a0e3728c334136bf5833997c1ff0a7fc20017bfb3a24275fbac4163f0371fc5facc17a843701128a9d0159f7bf781fd3d232c83610162da064f3742987994899499e2bba9d34231ca990fbbaa92137593f4f19e68bea9a9928a3d5efb4a12f3ca0705d718b8ba1e583d6f02c8f62639830d8e8aa0d5915315fdf091a4d0b9a2494aaff4d68de80a0ed44dba87e90d9cc5c7102e16c9734327e420cf760694829d8cbb361e7c54a8bec368fd56e8ef70eeccc0aae1f171c8772814bde09c41def848a11cc8a9304ceade95762c3b2d6e465e19c4a1da2e4d019e597f04ad3dd43ba40c77a324c5e3dca074c5da94805f7b9c536aa7429d712c293cd7a42057062a45034eaeacf71ecbbca2016a0b84dd042dc2221807db41301145a6d2570bffb7f7af6460792d85ab43fd63b5fed89a6f02fdce8b93f06c31a9035a9e6e0605240af61cce62a62d9573a4979b135a451a74df096e728b3403b00bd51ddf61d9995009d94406b7387fc7358dad610444a99f327304d65adf07d8a00d42a7e2f8224dfe691080821c8322b1b3929ae84e4adda4f1670298ff4a09342a09c13d9c6c25be6b0e7d7002fc994d4c95f5aff1950ca0c0791a9c02a04595eda0c6413601b50c6d1784784152e94c1584fe29feb1ea8dbd58e887a9c4e92f03d95ccfc507029a4dab49fecc5281d884ca50be9fe1341c88cb7aadbd75394f6444fb4677fa622b0aa3fcda9f21d9846fc2b1738243485eb0e8a2922918a7b5f4ccab2b8a0f6f1df1855afdaffc75f2be3f0fb543296fb98f3305eb1acf23daa29d5fe76629ecafb11302caba7cc55e8e3ec2b8c057efc4315f7bc29e1c7ed3da3677322c2e33235812f4d665296918fa83e37c966fb3cba76db89933efafe0407c4ee5a850d08637273b2cb593d61220b0a0c0e8cc23cf9302b05601f2c9176b1016cfe7726fbeb10f8ff68bbedf9612946df84f7f48b7a78abbaf085f32e4f4cd72527ce7d82000d59d607edbf35fa4a205f3c4479f7c4025bed8652eec69d4ea5b321e68ec47fe245a9849abbf5ac74b592198825ad269b8f12b31b6a9cbcc63dbb8b882116c179dc56c3bd289c5ca8d17b508e0581508ce4017aeb2b63e57f816caa1db9bbf5b8f3865886eaf1a0e47ca62dbb39d1393bb8dfe80fb669934b1c0847a051730c7ca1ea2e18e7e30fa3df710459a2cdd9046a0f8b6cc8b1e7a756aaf2f1db8d685e2d57e09e065ea25be7753ac8144fcc1b7241464a06bcb390f2fb60cb09f834c22bb55166411e2a1e02fd4adc5f6e0107fe0b5cf2c9b576c136d863b6e1d8dce8d06e0106ce16fc055bdbec739b1d52639b1c879129ae2654d8d4010f187de54be5c001c6ae20463f1e1cc6f25dd89b864acdd24ea4aad2b8511181e7b17e3d7eae3380d44a344a317258210961f152b35021f8d1d8af1b0fb0b26219cfb7994751e430a65b0d58958e02020a26cdd4535ca2f059cb91ad9e3f7c0b2486e077791a36380950b9228aba7b1c4b0349e2f7d918a8706c66f3c2d1be5957eec44255261d31c98e89eadd09cd1b2a315622705f9d43ebd3f7ba109c9e37d205ea09f9a21029900256549b48d85eda96075b54346040ef1929410cbbc9d77f6fef48ddbc4e363826c9ec07b0b74d34074c617a00424ab5f268aee9f97a145fdfb021eddfc12034fbaa4e51a82add3367e68b8ea8240f957b6cf0f9110b38ba79cc2e344a2ee0aac195b7447df42905eba39174a350ab6c8bf3811514bb9a927815198e9d1433c7840d20f148756a0dabb7b6e55cc1f8006d4ae04bad2e223513f6398db767933def32eaff6a51bc62d0a5d021a757a9c5ce0fc648f067117878c7a985a7327d497af099df34cf69d78415fa460c52e6209f8d03d55e42c2fcc72f64177dc0ce0dc748faec12907d0a2d3af8557a0046eecfc579a04f8eeebd55f7c9885b993677d4d6b56d68ddfe71fa804802c6db16035964aa22edb6af5820a2d8245d1a6fe11a7d3c5d950e5c3a4bf9b5b2455a6edca61b9b92ae56fdde80a00ad62e8e171279f81879420d1712a2ec8d3f8a0d11c91af2472fe4e16a25b158cf8fb28524925fce6d5a849bd0ab7c2380e12b5b1b9bfca5139b33341eca80a6747e25eeca2e3e5324e7ae2184f3fae59deff23c48e775cc28913d91287f9192d1d24588d1aaf6126aef4cc83aa2b90303a8d7c3c96fd51a82c0834892113ae442c059c935387e53416b001e35213c8fc51a87627b43cb66727f96db6f3e8f97b134274763cbf22eab0bcf6e014000fb7c4c71a1e6d7076904120e2ede5c5625db6309018d87355b8da3bd0934c3ac71e07050aef06f7dc8ccb30838d19599c7eebc2f722c9080341cccb8da98343ea41fe933fae8147424bf42ec3beac70eb9ffd9888bd46bc548ee67cafb7c58e606e1d39cb8945fcc33b2df9413894476715f1fc9ad89449ee79a1a4186d3f299173f1dbe332f14f2d4c13930c36f718ecec4d5cb85e4229b212f183a23adbc01f94e9a5f26ee5db623adb0c0bda823a164e979b600ae1bb9184326115263a7ffe6d1a0eff1ec49460464529ae3cc2ec236b5013493f188df08310efea02c35f83a4ca0ef9b70b94c8a91c34962e51779b913f2670edd8f5c765ee3dda9304b1563b3ca6e412fac0a8da5a47e6909d8bbdcb2a9a50f0603c9ba299a9d5627b8a4d52f8496afca626d2263d06ee07227eb0feebfb4cdce3448fd35608c10e30df328cacf0290c391e4d21a7effdf5b01050ad30cf0bc7b8f97616c0b8c72dbdd2a771801f0258e9f09e39ee9323245e44ce757943796f47b82f83df2d28ff45089de8580e6184104296c60b0967b5acadf2ac20c49e5a60dc37df8edb37b17776465d4965d65112ba29210abf02cc2a4944eff9c384d00d5ec7515127ec332c1e80b242f58d14f68000a520ab4e5f5ed234f897d86592b8b0170a7db9cbf8c87945d3376a91e366b5785628397b19fea4a10a68c19333d9e6e85d97cacbbdf79fabfde076c2f0b736e09e864dbc52190f9556c1b93012aea42811631127b1c0af0e73077e5cba25c5c6fa4485a0f3341e162aca85201d774d86be45b8e6b6b734f945c86346960bac57634de936e5f2361c456ae27646c89e4aa5949e09a8b6ee26700ca87a0130c5011058c404707824e7af01132329de37f67b6cd1c7975857053bc534e20734a34ea133a8627e6f6e2699238a166a23911b0486a0da730613ce67d830da8319a08f6c88629471ab6129880cd01af46c6c990f3ca5309bb852790ff556c1cf502fd3523c762e591fe35edd4e91caf0dea8aec6c988dbd7e50b98294d6cd1c3aaf9057278566c841215407af51d11489d01933de5f1fdd43281f72fbd206ea3a94077505b661f26284d8546136fd17da3a2875d862eb31fce678d516e746e77141d73e092960806948d6ddea6b5855472ba03c7e0a9d92bbccab647b6b6b297a059ea4d5754f17e50c753b66a7025cdc1237b2a06f68545117460710644f9392578f896ce332a3a74152c257c56a6f8581a0bac1e2033983c6ca22281e795ee89806b9fdcd1ea071d5b3cb681becfb21a568c582f2f1d1eba87537459190a1723561a17848ce7f83c72558e81d7dcf35436e64af605898befe2b89eddf9bba60501ca17822c9fc57ce1cdd47df2330e00177d80ab4e2ff8ef9ade9f93aa8eb42a93a66c845dcb7e34428c7e0b4f5940607280ca36b3261000b49732e01da761df11934a130c97f0d567163953a601d15f3103095fcd6c8dfa73b62a31b3609927db778b7937ffc60b30d9c32c16dbc7e10c632bb251b943d35739161fcc76daad8d0861b1660520ea199f54c004b848423d8e0176d3fc7c0838e416dab1ce8239d4fa0d7d23fbc5d4bbaf4014274453ae28e413df0bb5c9cf6c17d29c8f2da6693e022b1b6557206d3a12c10905dea9606f355a8465cf01f545824ccc23bf69db1ce59322cc4553b6aa903c17395aeab0ced0b86cb3718ba22345d1a20c6f7ce30d318b747539a0548b4a90338dcd357a513385a6cd8f868e7eb1f60a6e3228b5ae305e156dfd65930e87acd1058da74e49b9ffb0e22eee8697cc16cba6496bab49e5b69016a88e1bb1aa1867ee45f56f9309171e24bc4ffe359e75c23ab135c568b37ce6a351702d4652c9efafe86842a3d8cbe33b237c47bd358acedce18a4bdd06c0fa0f0331c20130d4bea1551e399ec5f6e074eb12abb4644b73ee6a252164e37e83cecac4c20f7e4809cfcd55ecbdfe62fe9f7436b83ca04cb77fe0429400571ef80cb9ec0b5d82d075518e2e7534ebd017034f838ec406e18cea4283f4a9e6378d662a20a704188a97e861ef27713061652644a7bc61195f31670c20e85ed19ea219fce8b59e916e9d9ad67a854fb4f4bb2687cdf92d2c2012feae325ddea80c2e4eb971c2eb65d339adef8f498b146eba0fd00c1272f8303f42ca38ddd783976192d3440e8ea69b4156df776df5be6fe1812d7bbcd1b16581c331ffb33858dae9b8c1d7106ac70f3c78204ee264769a570748bff10ce05a249487b5f7a68485680e538e9062267081603d2e2ff897ea044330b279d2d1688888724983574d7582264be846759ecab87530f958a725bb6b05948a83a7691b621f629778d4af3868e33f53574b6bcac99e058d4c2f35a4c0a2d35843f9fbf49de0ff74d1db017135aa1ecab4e43ec9514ec5469363e60548886de68f7cfb1d280b6b484ac269a3714a713add392af97c662e1399c9b44c665a66392deb95f148a14da7321769e98432718d8dc157e1569ce5402bf6ab714fd47cc95b13c52eb8a83d6ca0bf2742a3f4c5b1a219ed3d0aff48e5265c0982a406deba5e8a852311301d70c57c9d3c802a11461c956d9abf53ef0f4a0c0035498817d6a790768bc91d94e4e3564e3baa8e6219715f910572f01e211bb07f344581aad8502f2e0d4d46c0dcaa0a705c9b92560b2b4ac36ede4db828e31ad39cec62612c832ed2e69523b3ee39005fadc846b7f42c63d0827699457ac1680cf4b7eaef88893c2bea13c1dece485398dab76f6e31e41743395e5d344a1483ddba5887bce412b9ec51c99a1dd2b473a98d415dfbfbb07472ca2525159d4a03fe13baec947edf480dbaa07189b53435901aa3f65919d2a5b3cb699f9782b9bd72223c29be0a04f391d6717796684384730d22dd64f5d2b639b962293ba0f39659a6642a533397894ca4dd9942b4da1818e4985030da05683ff95af1bf6d4f5d486bee5e7df3e69152440b7841f8b8b13740d1be262542838eaf2ff2fc183d5f84cce5e390ec2c0b9ccadb71528448bac7faace418524baa5f34036e593bf705c456b886207f57fe6176a083226a91aaa4fdcd279a9e63aba57d99252922d1d749862794fdfab01b146945710404c1ae919eed14c3fd99a1e1f9d1e7a2c1657d7011e0ec9b119d6fc2b13959849b475928a6a9cf4889fd2f7a69fa869b126ad7df2f30673d22f7eb47a7aa6f0a8fdc1f5969f71296431e267cf1d3714b3f60cd31d833809e4dde4b6f1d47ebda1ebdfa011faff6b9b9494c2e00ae64f0cae749e71fcbf7cf30e422a10b960a63c9d9b532569114305a81e70090c94ce75232028a12389236fc34927a38d10644309f45828663a16a4a3004c3fdb0504003904d1a3e895698dfe1ab94171ed29f88065c45f894faa64a4aadfdd03e594e65aebfb12b427328e4d7e21d59d2745dfc1980c67f30e0bdb71504ec537a14ce010d6460ac3dbc2eb96f25fd04cd237f8eb94931c9e0afd45b99ffda22205e3f5c8d2e8d0ae199ac8abc189170b3a41897ccdc0acab9749b1e00e2b5682312175ca52a8623c03f6842b34a4dcb71ea65c39871f614219f8f6bdd0f366fcfb41572622e742fcee695717ee5f2cb17d24e1965b74a60efcc21ae9a9d3fb8a90b5335f07241c661aebbd5bb98052c6bd6b3ee7694c4b3c0380529794e35e59295565660bb540dba89bc1be5c16b59f187fb7aafd8de5d1fdc1dd1aafbda29d089a872bfdc78b2e4846a0a8d7e55be5db3a80d1f2632400c8ca5d2030ef34005e2bffb01bc0e5ca942a9cd10cbb8733f028f77b0f8b08501aeeec57abeffd4088b6e330526df5625447f837078436fcb45732f7b8f83afebb4f679ee808156922d8328efde1b9ae1cffb0e4bf178ef9409cd53faccd1c03ae7eb31beb2401d8ad193b42e4ba6f379b80bcce88b8a945f61549dc585f1a4318d0ff801b285edc0b6b59fd057db0b7b9cd63f3f4a3b3b7f6372d89ed26072c3a8396db0fde42740c8a508fbb39e9294b048fb0f3097e150e69b81646278e35b649197401331fdc21acc20f71f4945110cbefc1ae87f8bf1370e8601c3494f95c235b8b94220f388d2955734a4f2366f6cec5a304b601cf92e5fab2484beb53514434544c9f6868b7a63f1b6a1062869633df84e44830c2f3b3e7c374d6a18ddeddb814ed437b467da0a3e929e08c2e75f3e765fe97d6a8b5a937d58a0117a372f676893da96e98186b5ee87db70412dc1f4332b22bd50504c3e00c8e537f6872ee9ef26d214f878e64d8eec0bbf46a12f38c215d14d324abc287e7000703c34a3581492297e2b7d1ddd10328c0bab5d27f5149dfb057fddf01bab285e681eee42bd0479d9a41db6ddfee42a30d093ba1668e6be230028fdb043860eacfb0db868869237ccbc68205b0f77b3d6d5f2db0a0435040fd0baed3e8b17f576704305917b5697c64af3c5c268def48682648ba01db87a4932e989787fd29bea4b86cce8a0e7b9434cb1772846997c0c8ffb4064ad9eae3a2302b7c727435378b0eadc8e58df15a151f472e4acf3cd212a9a96dfd5ea300fd39b2cd700ab683e382684ca4e2378d4f6cfe72ef9cdb60fbdf1e65110c080499936737c92ace15b36bddca66990cff8b848803dc4691595a8dfcb4bf5fefeaa2fcb7d646e14a9f69055372d10901ca2b18439e54dba6faa11a7e8198fe23d85d2f8e7b520163b46946111dfdda1b7130edf52a4b6b0a28b223d379da071604738de485e8e1b3d96635c4d93ed9cccf6f747c012be2437d4c62c04310222d0d9b0dc7d03a30d8ac0b8ba575f29aefa6ef564ea21627a38aa83d606a592d8488e63f6f3687b0221e69553098e9672a954f76e8684ea2fb1d058729a49e7ae2849b7c54294f5ba7b0649b9f1c18bc80e592fdc92a66e8e38bfbe3bb6212b5039ca2144471b7b2a7760071c1b0528ec402930fbaf3be91219670ff4c3d7c5ca80ad38db84d0e0a59403e49772bf07615950dff67afd8ca9107d8b2d42c5b88b29365e1fbba93621391ba9f1545112729ab226c4fbec1e7ac76eb3acaf9502a900d2842a40c078e914fccb4ee822ad2a67fc715a46ef2894b0320a8b933cc6863e9e5f0599f34e5b14aac69c6a0a24673c58f9a92bc2662e7aac556ad1f51220b6f46d97ec7b8b433ce1176ae0e528a5a4bb71e5c56fef70430ea8b0dae5532021bc4be924f732d64384e4ee8cbc000e91d5a940ddbf898d7b03056b11de2e4b1d3c02b9cdd1922190f473d2e63205f639d054aabea8d438d56b098edf585415dc24803f9131852c5d560b758425d13188719baee37578507722f236d7385b1eef8cecabcea03d74391cf769a48394de1948b1712fc5c8a2943a030fdc01dd7075fe2ef00404c144de6f36740bf69397bcfdd67d46f60ae72d8d56706402be95205f053a182b0c7a0035e5c32771682b0e165c5a5a8b3c74b16384b674520f629d8f2237ac94dde22c4a8d589df953004558cc52db04d1323116488617ee8ed33237c50131180f10d123de14142c523e4f8134e4d9921ed84d9dcefc14d172647361d2fe73f248f64f06a4532100da0e20ceb3a0f37b68316ce95cf81ef6eb6531fd722fa0069d378a980f24fd6c7c1fc761bc661b5dd553c6796b89e423a310faa673647a9bc7922be4ebcb8f6afc09e47fb0f40c51c2fe1daaad6f983af73906190ca7ce618e292a79f5c7d7585429be83bd7263fd863d3e2c99c595dc89b6cd65464dbddcc24faf84497c415045d6097f2657723275e571ff3ef04c6e788d527166c8b6b5a9102c95e6492b01daef7878624d41554f4cc52b3b4a7d543ff259b679f4a9d44cc3011916e417e0bb648bf7abb753b59d35b04bbc87a644abb8225e6561223d7d72594ef223f0bae8af3430eae49ee46f99900a4da3a08a482ab94a112298bfcb17b40923f80a619114b0220747dea903e5f56ffc1f729a69de42572521ee131f00b12cd8e46351344ea35f07e79810f7c62c166e984b915f0099dba5976df7bc429e4f47df9989be166e6a97767343c6971a7c427f381b10c510b0840cc56d75843f38a043bd432a9914caef18054628452a963b222499fe9fcc2db8942d231228e42e4ac7285fbc9b24493f1afccc8b7b8985588e9681885a0699a2b0f05f3d4ba0491749841851130b031442980663fe40aff6d60b2e13b5a19e9e103712021721d01d909463d54e2d203343efde83b7725e60ceafec99d661c128cd1bdc1da60c95931444574cc16810eb8cc1f11ade3a17a3781b0e04d9995c8c263ad3c3365f2b2a77730862d31224c80556cb902ea184662a7386e1263c2ab909024de02a47fa83b0da4c6ac2f991d3106ee72c8880712d36b77d88a29aaa67e4ed8acf0999fc6aec82e26d68ea4df37ec7f8eeb68e11054b8e88bec4ace3284b05734d5f7f4ccb8c2bf5022c60a255085ed77411caae275a3d4aeb2be503d3006e3cb8a8ebc4252e9bf80ccc097addb46e2392f9c801d61990dbc8e03e3d044b7aa2018e0aa2010f18d0ffa787ee273e8b0c17bc506a14bebed6be47db4fd82e0a8f2011fa8e728929ea158f7f80a670bf4af40bb77ac369599e5d5747c6777a89a00c1edbcebe329780a52d473edaa2449c290eb6511371ad1a93b8c4011513ed6309c2389d9ab7a59501443b4b272890262b791d87937043284de338b8b0ea06b0ffd65e8f26089f57510e848c3ec849a46a00856bc1a75fb630c3e5ff4be269c16fbab79584b08bb0e2be133936a312fda2f070ab178a4e2641f03275398d1a3e8380f371fc9fdc495b28a01225f9d1cee11749e6f07270392206f947111bfdfa379bfb06b84ba5984ad41f645cf7d8d95097246629c03ebb444b2e8273bfd071dd7c71042e477d49ad0806e74464830aa7e28f99b93708fb453fb3fc3cbc503fc737565537f0b1da38e7b1727d50bd324c86fdac7efb7e83129db87140bfd97d5bcae3015297b16ebd34234ea7b237ccff24c5bed759e853f78b418008f00e05b9dac0f31872b56e809c4697a394994cfc89b669d7773f36544c56c2689ac067f2ba31a338c701912fd2f6d5040ee974db01e48e67df9186bc0ea01fdcdf4642d0d667eae82620db3e309ecf5d900877e5c805594a48f8f25d14d6c00055d428e6463f2c1d883d4fc97b2cba6f17cd642899803497153dccdd9865e01aecb1589603485156987a26c104c80898008009c81ddaee7f2080000840875c074af9d803581ac808e7a3773e7fdfd79e56eb0625ba675440bcdabe3f84d2e5bc07abaf6dd3976702655619d8cf9f74b6baaafd379227c0e6aa9d761638ceb2b1b056cbf4f9b87727cd44df75176f7841e807962daef8c1906dd508f18a7a8831a6eeec579fe51b581577d88c1b50e095c2d7cef1db6d55a2db3983a58c66d72e0015d017d65d7d8a53a129206145c322ac184dc0c96161ecdff198da65913517f929063321f1f6fcf36dbccec5802be36c4aca3e66cfda9ae4882c8d34f9ed96c1d5af84e5b49eed509a0b1b2af00f95f180462180e173ca39878781a61c7138b5c5e3b93dda504ef8835911c739bf8de31bab1f5fcd0704ccc2f2cf4b8cc2be19581ccb323932798f3e9c94085bd7692ff227e0b14a2a045aebd3b6f7c10a44e55a7e963c3e88a2f4fc4f0b0dc1a091d256ad8544637058532a1f5b68de0da96ca25596e9666814a26d138faec2acc7362ba88388b3a1d76cf8e2285e252c1380866b6484ed6b6c45ff3b084f2602a6d9018987b383522d29a73788093d9b37d78d876c182c14217fdc936d7a0e56b64967e6ff0418f78047ebd0e56b113dae070185dd9508b37047050c2d5760fccf5d41f59d1f9f1064670026aecda9096c66e0d34338a7136c8ae53b6f9cdd3a729603715ba7264e0244d2ba033709022072fcb3e1f172967999ea4553efae854431ed8237d56875fe8cfa00f2c2675e54d7ffb787fb68fa7f145246c1234600776544adc30233bef32c21a69f1763482d4966440c5c29b2a50956085dc9f541011f0758c1a4c729a983d81fdcd6d0a9c07c31efc3d3db1293385ba90c5e8f0630cdb76e79f1d2ee65b67e9d1630e360fdb47825f8d1e6862369fb6d4da84236aa8f440e2063700d4b19fb401ba8d90dc29f9e74c141089b939052d6310cfde4ad06ed9e74742b1dd8a19a3ef362b40de40aa5ef42943d6e001adaf250bb6fed33c052e5d8a2f15c23f0e7f84d8feb9006cc15ec6686a5a0f77febf835dd8155971fbea1f5a861561bb43e4d8d5741dd0f5a9fa818036bbcfb13a45604243ced7a7301cfe532d420f1a2f029a5fbd80f32fd87cd8a8bd645ab75572130e37d1c207a463f6a0049d9d8fda577eea94a1c9b3b300ffc9ae0b6724396653d7652e5aa357177c1d9895bdcd3098651532b84136c86ff0bf2463829dc2a900e4c1a0e23abe67e5850bfcbbc25f714098d12d889ad4e04f1c01228b7e539610dfbb127be3c5b6c497c3e188573e1455d04fb954ba5e00058fbd9eb76bd9de26bd2b49ec9102c6ba7ad652040cb36090dbe788c98c13dd85f78d06667c5b78a3d879887fa0489b95fec69ac674a5d08a13610b049ecef7cc4941139fb5bf378a34a64e5fecce7900980d8a7430b354fd8f4d8db32f65c8c89b0ee656ac5b61efba292582f37b33557234587cb18411db49e8a567784a96b72965fd46242cdc5c12b32b595639a00a4ff6ee95a7e3f6014bea3f0b4f6a97a867c4a5f542f30fba6a5e2cab8dca7b2e38ad1d9e37435d275188b465995302a95d596fff34064d0f337066699b646ff179a7c1bb7076a4d2782b090c5d2e8f5625a05802aaebaf441f30c67175094759f5994c3d390e57959c784a933a29df7064127ea6164cbf08346843e6e2f92de402f4de4e7f55ad41ba2dec57fbd35b4f1d7e8694e63954d169a03d34ec04a0b40897853d06699ab53d90af165400d5d4011925ed650c1f38f5741846de8474fff75653647a2070dd6929bbe1899fc48d1cb8da0077488ce50285a1abd4674ca404233331e3ad3c52b3d34664239026c424ec9e6437442579b13274692665be713c7539b6e77a6be59fca3ab3e07321e060d823ff67585d222127459091a918734ba8741130a72951ffc10a9fff4d990b99775e43fa5d4112cb64954ec820a0588f4eb0227da7151ab9422bdd8f51c5f781bed27c11d11e7cdbdff6c3aa870da2241ed11d7244068f12760b2bdb05c5d00e4bf50b3407bc95cda5013eee5930861aa3668901578bf03a865ce14eb22ac44b29ba54c9812ff7c0067e9c1697151f9e60163fdba4adf8a0333743c1a51077b4bdb9ef4356cec974dea6376e0a5529d0e0cc240bd0c03508953334c23285286c6a301faefa5050dbb1a4d680387901525d54de8866364340902b40de4a2140d2f7e99f57022aabf3bf7fab747840616419766f8e7ba9d9e9ad850de4420f8440ce95b8b09126a352caac3c94412c705d450a41e1f51360f2e5d195175ca9d3101c4bc29082b43ceda6603a74f33a0ac3b3f8307983e300a98fa5805f8487c40faa26b2ec7cf57a4e387782fbac0e9a49a945a2154a1a58ee9429c72ced228ee3c4f15a8c3338fe279537a6628c77f40ad707e6593181a49d1df8f21ee9b0b56a84ed2aa73e9d931eb73db46fb711dbd1ec5c852e6e140ab51cd47caf66631a6a49db7b67fdef685f1150d4beb6409774796f9f42477ca0d578680204b35462be7f48ef6f7e382dca42f9bf6489c612c1c0798475062f08d698a281182a5254e7e04c39b573e758e4585d0bc9f38b5e6520fd1d78e60e2c27290bdf23a039916bb5e61a0a4ae88791cad30da65e7be8d9350d08465266afc48fb1763507813b912f7301d37ac745c6610ae96f741741c6a507319685aafb8b96e02b98931d80b62092a9f636a0b47689ddf0267980f67212a5f0ad964ee3d84203be97bb48caa7d184b53f91f53b4b804ebf93670e379281b41f9429025e7ec4d06b1cbbf23e56829c627774a7b9e04abf3968fff88ee2e1695686e94942c9223a62c061eb4358ae484c7da4315762146b4e08a04949180a4466f05eafac825fdb503b77fbb22dbc360c311a8ffbb85bb3ad136f048b40d6c7debdd4bed26b981765e43a55bd2e73a63a329aaf4884a73e21ac340e2df70d4a5ca7250487ab297b81cadb8e3b1acfd1f6c390e751db1e3c8806433ecc12156a5135bd769ba9ffa52e7736eeff2be7e169dee501693d5b91d8b79139045c95d70026c3ec8cbc31c3a5d310ecd83ac44061d8563819bb8aa1f4e95c9e048da2ce113f2942e04c91b241351d28f9cf6d410970b62eac0546bbfcf1957bd2e6cca62288a99731ea6f559432d8db6bb188a08a85c939cc486c776de3829b5759d1d32e0ec0e2507f9a3e80df6bab903255baf8e12642906640f123faa445e30307084ff92688cd0bf4ba8d7038829d42af0b538d1d7b956f6ad56b992a5feb5114a2b94228f47c9c83dc153e548f248b9d2344fbbcc9430b6016536e8603af5d9defa42f56a9808abaa814ab1cc918eb9b705679e9690c63665bde9103bb5e01965f4c0093badc0e3decea7f0a915fd37ee571e8fdebf576bde2409949d7889381ab7ffad552fabfadadb8fa786e87d61c9d30abc76ee163e40c30fdc2e8ddb13d2b62b21eb682946d8c0fb16420243db7933722b0450f875b2720a10bd080aadda041c684e1625dc95768f3f231510f74818044d3d67ddf9a6e393dd423a4554859e3fdc5ca3a058e974c418f7eb7757881fd430c438971e8fd8ea347e7ba171f9f8e607886c7ed1b87033a07490ad325e309087c464eac3e366c5348417e61b1646a6ef1b10dd3743dbf1bb5863bd9f081e1bc1107d783c609260ee5116e8663a14151e38f419c7c7c1c0957918803e724c914a0cf6a0a802424d579bd06b9b414e68411687b7c30c74e3d015f3d0c054163a97a56d6b3dd8fe0bdd36d0211611d0ae1d53b236718f053a1b337ffd23e2484138f87eb2eaaf49627b9038f25b6f56aebb35b0c9840529c4b83811e2b51dd23e106b36ced719e99a2cdbb935e0d32e76928448771dcabfc2168516918cc8a5f6d07924d8e42b77e0f2e2e574d893a91edf04cb646789a508ef948117ff851e4f3251bccf56d4079d37e6174da269d4afba1ae9aeca4654e81324113a708acbd132e7ad6847154e399562a359406ef5a04364728ebc75b3fa165f67da94817dc6d3c26edd05f5b877e7558711c2412f84affb490d16cdf6a2d5f092c6d84373a9a5fd5af45112c5a2cf7eebc0a089c92a93a0dfb8e9ad367bb20e4ceb437f9fee9f5860ccc0b5961b27c6aa7ce36b42855b42cd6df9df3e6392e9093d1e847a7b9aa266f868913b684f8682ea174475380e8d33a5e9792059b40e9b624690172c6079042ca300a11c550b276c213ba9ee3a0ef9997a2f48f80c1a1692e691dadd9496e98b744a1e2f81903388c54c8ea7dfac5cd0334daec3559c5e4633f8db35a80aa92eb358c83dd3d8c6ba24a461b79c82cf70f57518aaa6059247fe7722c1a5b1e6d8796afdc990f340960fa53e3d72f7108bccb068780a4a6679058c5277368496f21ae6a20b268ac87f3c681420b7e252322d19689723b788741c22b80f5003ee5ac372e34b0c8e821c679902e0e75cb3346033c562319bf903497bf8444a35dba721f96633eb2308bae1423a6e6bfd4eef6949f95c421c5a73411e0e5fa1e95e827a4f9f8f3b178f15b8c919e47257045331f08bb1ac327e0226d6e96f2a5ebba6133fd484b34417b95711ce86f1cc1db097b677ae177f477331717f1f6be17723c3ad531e6ebcd5fca1d3ee0d7ffd6874d21b212e4b5d00511610fe2f131b7a07f41d3346de6f77a8b68d7a567b2d0867f1d4bc5faa4bccccb5b8937650e7eaa85eb265fbee027e602efd7880d2bac75b2a9e49038d2699fd5a4b1bde5a413a3b900e270d5d972354c755234ad8afd019a92f9741e6f728e9b08b9bf02208bb48266e831066eff0c6cb3ce331b0ff425892e13b5f6edc00db6d6260e1088b6e17d59bc9769c317af8169d3b3a0a448e1b0327d71733bac2a3305141a2aee94e4f079edf5b827cc45c1b5fb4314fafda152f295d178d3ef8a24e3b374377609b2f8f1ebf1dcd2be052a6783c5ef70d09e6ed85ffbc1be239e7b3f2747a379bc81d78c9c860c04bd2d2fb22fdda7a31f2545ff7bc3c05ab2344fc766ff96adc1b86de18fc91bfa7aed9396baf44416a0c564e80bf4a3bdc54987b35038dbd856398b74ad53d805b6f35b8a9be487492229f512472415583d5ac1b0c55706a362e27b52382fe71a35033babaf84f29ead7af9f7eb787264a2a7c410b352dd174fce84aaad36e5858dcc8c55885aff1e35fc7d9d8079329a0c26a1a98ae8898bbd63f4636249094af8c68bcb421b84439a7cf0228766a67e51a23ac83257ecec930acd7f8584173a521d83b44c8e7bf04a12b9fe6207ce5dcd6fd9974abafa3b0ae78f3c30e9fb30c9df0379cb2de29c0d4e37661ca828d6ca5a166e538383f3a86948f227c58befd67183a15747dbe60ceaefcd7cefca149d081077da243ef40cfe420c308eb182241fa4f2ff101aa077d6534c660dd5d3a191cc46951738dbbb5174d0c46ddccd5f016ece39245bb0991f529b48ff9e47814f29d71b85ceb4d7426409d426b78c990828f57f0f206510d013c7d071bf25fa31aa242431bf6625491d1cff59fdfc8742d321b2c27e791982d50413294539a1a38c04802e9d68f0cb5abffa8881c29729a2e297c735a6be8d082623e1e0364905b0c680a56b4da8ae10e5508c23e800a0203dfba72cd99d188fc4a2435bc00b3453b855456212ef9ab6e1e3e1187b4ceba01fae9a5eab68d1a05862e96906c553609457a8179054aa4386067bb4f72b6524a6c412bde65bbd0ee7dfd93a2bd5df38ce99998e4024f4becc41886d299ae5db047dd7164e72b5f5392b83c66c986cec853da0081e12077ed1ff412c2e3abbb5785f1450266cf577daee254ee32cd6ba3257b60771f5af354d052f91da04a42525bb5de01cbf91db06eb5ea5c09488a42bf034ce6397f80e6a7a55bb901573a7708f3a3eacf330bff315517807aa6f15648e2d03443f25e97bb50b45037418a5d5347a428b174dffbdd7d39f0ee13dd6f2d1da69610f4b6a3ad42af110bd7c4f022ebae5bbabfbe705948232184d97335cdf0f73e013d84a09ecbae436546be3c3e6de8140b2ad461ea335fc0324854804973a751605c3cb559d5ba02df6c07025d32342f6c59a85d57a8ab7ebc4ee8921274673fabfd3564d179c45397797d24b49ef36bf676136c226f992006c4f2860f77fe96a1fbbb0acbae943b5b85a846d9dcb365696ebf96b96ada298e30199df43762e563e8c60bdcc024f44de763deb81f228acf00e38610fa2926c3bc4e4e4d4beef6c2c04abb2431564cbaabca7d4ec1c03cfe12580ee8369a9eea97f6e3793237ae57d08db468f31e1b03db6230672b2f86db7eb189a795091b76033ae82e86db10ba87a14eab892368367536d5b92083b7793f2e7b360f053c02f4a8a1f4352834743181af3ba31c893a85e7a3ef3db7b4e408987466bcfbbc1a512eccd85a372bb5bfbbeb3c4dc9beef2ea88cfbc6479d28afa86e91cb32635294580c0b72a53811dc2d70fc06a7df4def528527558e5b6f483f30a25813a65a45f2a0de6d03268e7fbed85545e2f373b5e851d03fa9a0a79ef05bc76f4124db4455e94052bd21595b85c5915bd58c5ee009e4860f4576c1d76a78b73d5e7ab8b56a189bed3c2ecca2866a5abd650888860f00dbdaf21d5c82ba2c1d7019aa3606e29f47f995b007eb21997beac0cb7c180cfbc1b5e7e5cc4dc0a407fc58a5defaf870d9efc6500411677379566a9d5752ce04a1f15b98fc522ca0dad7dd8b8d9e321d61a75893819d5306861dd601bb570c68e76786368240f7e635665d9d8c470c0d801b13e4860f719188127f863678a0bace681938289e9dbc760f4997d14a664d733fdb70aa5dcb81c845c06d84b0d7f2bae516589dfdde6d0438818f813311664626f1f2b251a210f65c1db691a62fa63180085afa72e5e2fd16d699be90e5a53cf561f206d781f4d080db0105eaecb20f7f5d0138d4f25475a3a28b5f4e98ca24ba250179ae3a84311fd11c9b392afac3d5998009c8fbe0416a3e85bd2b1a6e87f1c5fa2a60a27362817bbb671bdea6b4d73d651d39ea89226d98ee521cdbd58dca566c65b9e010939fb1f09a7ab5681bab09a84c92cf1b407a41bf709397134aab48ad88e6a0de5fba7ab7e8f5e6e54731c216a7d5a542811f1a330a9344149a3a60a023bd239451a0345881013b6037ebbfe7391830b9cb8b6abbe00cf3041853502d6dd1172a7a41472767697c3a1f1a3d1f2fc432b97ab94e5e10ead603d6a75802260178a380e5a1ce2bb1418af766a17e0539ab898ee8d6e6ee4b7b480e0ab85fac7a0a55721865c6fd0c88c80e8ac717444f515b5ef33de1044c6c789e78e59a53e261d6b60dcc4567cfb5f9b3b8e270717c09d1cf1af7e704ad36dc22fb7669740a3d2110966e725b237742974c6334c0c2590d3cd96047013d3dcdb7085cdc84648efc908263e4d8798e210b80008899a11a02e15134f9efff909a429f4a258cef416f905dab9a8d5e2ce6a0845a682895a8e62240bf8864324972683a10d5962d9749df0113158231568ca0208c3657d0fd8599690acc35c474704a9adb5f87cb7f3522010cb674bd449157b42bd177b4b9c088ed14e41ae82c7ec82b1c6365d125cc55e58afed1af04b36715e10ad1a6175c4263f9351573b66775bf99089b2e990959b217cfe3f4a5ff634a7622a33f8bcd25e52a9567416667240b896077537f494d4862f07b49a5bc6b721a6e2c56e4ea8b761ebe7e7560c22179879d8aaf2a2a2f3b3d2b3932c53f6cb2eb77a38c54e169668db661f6a0dad6779afd351637abaa6012906b148a55968b0be6ac7eda47369ca72ec4fb18a3adaca830be9b761fc4deab5e7ed884feedc133d57e4041d60ba59b05f8315598fb49bcbdd2531e39a9b121126e68bf6c037ade52373435d8406fd7ef4f1b43e3b9cd9abf801936035e43c2329a5ed86b0a043a2ba9c6086fbd4f65bcb24f45251b13d4728adbe6f760dc3d888b3dc5d86fb4882e013da27916c6f057bf7b90213b1e0bea1b5c95111e350f1dfe2f6d29b9a4bf16b0c2627de540c31e0e9c3d61503f7e0a24d9dd75b5109d36f76a339141afe9efe8115785722855ef859aca518d5763a33cf954f45ec892af005fcae76a9e65a8198dfc225fd86d2f24810d685608ed815287595b229df50483f5d00b0ae017adb89520c17608d1d78381b7294c2cd94a590d3b4340ca76c39f2df7cf03da04e6212eb7e25c08c260de24bce2e3a80b2e6c3cb117d66f5b2684c5d8337fe6413a6155115ed4fe88029e328a0935a54a2259f44b2d82b6c1868e9c023c27d93bfb860b1100d632cfa67afc7c79fdc880d43bcac9f0876cf324f3515e38a2767a97b018c7059e33c868ad5177bd982dab418f40f54e10858cf28597a3597b8c6b9237f10c7f14117adfa9e22a9fe1c5a135e2dd2c37cebacfe5af0aace3198d3876e45b90980c8cbbc6e75aa28bc1c298869733bb5a8d09b67f08093d23935c832026aaf10fddfe5ca63191217e725145cca768c2e67a9ce6f273beb431859e55623bc9408fe0e7c47b39876e411622bcff300d1e219be1154ccb82897cc605755c20e63b3d38e5db04e0aa8f69e653d3ee2d631ea390c3a265b4fbcd3896dbc07581e410f55f81e80715ee89982f95fea89117bd785aad5eff1d2bf4b33c6a9259d46f61bcef2d625f8fd584e7c2368f11091f86d72896387a92628b56d9472b232751a74c61c6c49b68938cecf86df3c02453c3b15387acf2b5fa9500c6135b977a184af89fc74d916e98d6776e04bd9164373300ae650fd3b15feda39529815db9bea9eb1c553111ced92b0440d7b5a3ebc39ab318684a684200df3dbf63df1e114a6597d6702ece009eb3ebc8db68b3b8f93e224138055d98d55cc460218b207c675c60c91055d7dc88e6b755e547d1ddb648b661199e3b46dc4f6404f5ac076237c53b493382596a87bcb404bc7c50de9d73477894fab39dafd9d97b9f7e524705096496caad712713c31fbe55a29769d9df1aba618d89ae34b3318184d83996161f6da9935aa221a4b04bfbbc5479960f5ea586e7270fb2f17dc0b4469b26a80115d722daf11f849c735f4a55f05038cf4607f590f037e7caca78f13d970897b227b757e88a5b751f0c659274a23dbcdaff0fcf390a4d3b4c85bb942cd0580368ef72b27a48a5a2c89bb6d1bcf55466814f7d8a24388d90b221968b3adca2e1906657c1e376724fa2eeda09a86a83162f0d415adb970c59746b43956d647edbbca1e28288523f1dd90811b94b8dc4d048c3a4d25c444c773395a303ccda74515f6beddc04800c8f58a99c91c3d26e8c871195c8ec2b5a40332a9524358ffeea395359c167282d8e70408ad0cf67a3d37bac08617dc83000e7ebd9b3ca9eb9c5241f2b8eb01f4b1af18f9b4a9f9b3db0b4dc2ad25ca41ec0ddfc76e5c27981a0c3be831a67754c2e3aeaae65d789f46b3991ad3a3121f25ae1758fc97517ccce061247e3a09df32ff3290f15e468ad036c1964c40a3e0288a7b7ac62ab0104a6f64f2c34cd4ae8293a1e9c2b08a7058b5db12968bcddad07b131544589d6c0bb2c057a7c58e4f786d523b392bbb861d991e956a15b474fdd483c2e0736e07b319b7d5d917e41fe6236c431992c274511898bc9c0e9c74606877b0766f9b7f5c31022922f0c13e0cfecbcfaab78c5843eb76b02614b1a316a598142c4517b43af4088bf5394404120cc0c395cd45694844024ef87921ed32d5da858c3c87c9b8adb1261c5a5b62d886ed89c2de35d1126bdaa933f5b803a2468bd17d3cfde58354975631d8350b88ad4d0ad1db915b8ee3b26622e2c46f18c6129d5d46d5dfe484b99da58829e12a777062b066f30de988d1f1dcdd66dc0b7dfd8ae1238c609162e7709efc49191b6b99a662e5d8c2cd21bf73a96c379c99486f3df37b3d9a36b6bdcd6226f2ce05728ffc7ec5092725f24765ad0114779a481dd3d68e98ef0c90af35f11fd1b929429d3436d92f7c28bfaf212da4b8c38f81eaad4698d939d20dd5f928775c8f83c62cc3b4d66f9decaa849ea212739b413a1f24fd58b1bacd38683ebbf83796fa1b216ab1d5e3bf72c2669c74acc8e25919f08974bc548f17a9097e8167deb2767ffb6262db65448eebe7ef839e0b8fbba7b134b81ae66a8fd64e914aba7b2349a5574c582c2231cc1665620b51d5917101295a55b93f6df7319cfd5f240771e63ca38fbd6522eadaa2441e52c0491a820151a393aa11957a8de7ff4b14fabc1a58ffaacc5dd8705cd411283272c4dd16c31138133fc097c9d9c9536a9ad58226632b51be0e109c9f0665244784db095888de00d2b8e5ad1ab47bc502554dba9954acec589ce320ff8c0dbcc356c04c2b91fa26f52e12d80f42f711a26276de00f05787315accfba4cc821cc746c443da4b97c8f96626130ac06f0f82ccf1fe13234b014132cc648d3b6793e64b953cc833c4a087b80f3b9a382ea7182f3b54e97a1d694fdce9ec91aa2447d6ff350ab2c044e817fba82ea628b0029cdf19cea2ef276aba51270ed3e503f2a269c733814316cc91421d917b70e40829d7fada9388c588917ce264375df57950fbd46f2f486fd822a3a04942a4646e07da6754c0a7d5eb2e530dc962f931201d494623e57b02d7069ee6e6484656d51913441851112f7fd6c026c93fdad08f36d5a8e26250bc07fe567be022cfe41ba04ac66ab58caba09d79329f7115251ec8429870d4f3897fa2a84ecd65968ead335febfe63059daf833d9ce6f23483d5a75cf93abc2e6a4f6b1827a5423130c2102a5164673da6793fe0bb840386de34eb50ee46f157dff3a3207615068d9dc1344f8e2b50830b7671593607e46e35d22854c1ce1a7b8712af54b5325746cd91d2ee8160b7ece2e9ed5c0be61e1a8f2e93fa1a3f27592791ec6b3cff5e8f222cce9b35596a62ad18b71fba58a44e4f3ad7adc7023e48d5cb162c74eb130e544445d893ab1ca792a26c5cb57515a468ad4066b0b15f1a258a79e6a580c6d32ee745c49e4db778cf5b8ba9c25500ebb62518a8ec6babca771b0aa755cc66f1101296043ebd07f82fd5e7cbf11f64865e296c3700f2c2ca1b2146a340d2e95379f4ba021a7db491005f1eeb590476686ad07d81071458eacff1e78f874432c11df9ef1dc53a067bf6bb11a151fcf085d945bba07e402ea73d37a7632ad190057a139f3e60034782197cd6184c9a236aded1dbbc5568af1cc9670c472d27290c344e67b11976144570a2601c57e9e199880e669cbaa6358287537fd95e89b58c1077f43ba3907382d2993f368210d635cb63b0084e781d95906264d543219a9c43f84f69f42a722f52395960e39eaf68feb29b87b5a770a4daef5bcf0a05974243490e2405819e634bfc3612a00c77c9eb8e795f3c1c65cd720d5a4647efcd7b486fa1f5a33505c496e87a233c0088cd0bcdebd5abdb0f678e7db0ba2225b910657599ed5452ad20ed01a223dd5e8613c049ea222ee58204018dccda51ad8b577c8b2a09d1c624f9e078670d6fad272de8d993e30481980e54efaf21ea7470965ad90813aa441eef0ddc8955ba194260ab01eef46691ae6317319e04d754877e0f50d4c880c9fec103035268d3e8dddb2d3f72019db8af1cdab98f2f5ed44b16927c438dc03fa04c44ec2725407970e84304f4606c427edb3602aba4c8a475abbaf42c354bae3b9eb1224b89aa5544a3b60f172437088134fe116fc8e0e22a2b7aa8837466d8c580414434c62ca080fd24b297b41a62b6f6ec6cb7520564ef14d79bd8fe8ca7f6a56ec16f2217a33bd9f8940affd3609eee870c0a3b9ca43048360a7cac5586b0eedae535391c6f004f6fc37b59b5276cb634d57847c498a6700ac38495894b2b0a781cd861e7da8c2188c01b08bd9c2d31907ae18aa5a7e1e475b08c532bf97b6562b07f9aa33bab631e09bc0ced9e2eb64b589ba1e7d7dc7cfd2348307daecf93a9868259adfeba9144d48aa060e8396dc9c64cbb89190d2289fd730925062a04905ebb444b49b944af958b4de0049e5529ad49cc55358fe774079c01a320330349eefa83cac7fe9810139e6075a51eddbc2fb4907c571407cf67ac6424fc2bfb9e869cc9aa936f6f567d9374f03e7d241a4318db52c62eec245b823dcdcb3da1d668d1605ebb5534cae4a5e59c3c2c2870b0d7787365fef1f0fc14450648d18bc81c22050f102918ffbca8c1a9fa5c592ea7b0fde401412834b370ada59b8eba55105fb0e954d8dd29cf79d6f9e2b6cb3d9d616a8881dd132ad2950e0702cb08cf3c8df19f1163fe0e6b10e5ca1d360bf2b981a76fb951be05c0fae4ab6a2378ed1a8f1fe1b17148dc0f84a19203634d52469b7b1ccadc3b7d8ad3c0bd099df149e67cd7788c29aab431692f9e37aa163d50ac3a44e7726c68b081b9887ebb821b0db93b8f50fe9ad86e5de1b58416d432e45c3029f568ea0dfd84aaedcdcf5811f3248901b3c814b4e85041bf705d49bf5e0e242d46c7135d31f30bac9d4fca8bc0b3eb1ebced0197b651df4c274178e50f0ecacabb6347c8368b703d386e39000b492d5e05e78af6b0f346add22fbf1cd79e4dabeff751ada47cbb475035f02ec7bdd7b0149ee23acccfe3614fcf47ad16e78e636d86bdaa4912431824596b9d04211a711ac9881fdf3e21509d2581658c5628dfe22b7d385f92a66d3a99e300df316ddcbc1ab701cd69d918523e35600580e3f3b59d64db4d71741d1264a17968eaf12f4a4554d1bdf6f4cc1ff27532367bfc4db2eb34561c4d833ee376c9bb229909e8c2a7187420a46a738eda1d5e0df214a6bdae093367990475d8fd6cd98a3d0423be326cad45bdc2fee870251aff78ef70e965e65cfc98913c28fd4792f318c80c5438b1ee9f59830c425cfc8f937d94d16724ed958621c93930d83d032e52d970cbddf0c70b1c48def96612ca460a88a36fe50cc6d092b9ed0b429fc4038d1f8a3316377714ba310d6c0c27fdfb990f580b2409ba5d99ce60969cbf85754f69894fe441bd7101716a30a108a1bd499943e0443e2da4082aaf287db9c7979660ec2f15f1f6a1dfc755922618132ec4db9ce0ffe1d90773b5fcbe9b7c529ba3fd0fb0b409dd63218a542ee759fa2756fd1ca9876868f54bdd98325cfffd5dc37ef240d02b6af9d79c9b90821876cef8a0cf22572056a19215a603635106d7a84544fae0618fce11115fab7bea6dc3b0db3e7bb370e26389a4846fc1764923f60502a08401a7162ed3957237efa7afcd9e3cca2bf4049ac4df15ecca4636020d543107ec31814c17a76f6174bda9817fbb29966efe577f135770740d0824a098d333c4d28e66a5b30d17a41724a3d325b8fea6692412a2c007fe59d05ef5ac00867c2df196ba682082e532d093b3e2ee05bfc8b447512695a053457662c83362d248b0cb02f2fd1d9fb938ea27b5bdcbbd4ccba6f796009da026be3890480dee23449973081093d35b2ead0dc4ddfd7d4483f34faba395c77fa5b3d97ec9ffe0e3d254f996aedd6b2f4c7de118924e85bfe52f444cf1a066a512e16182829f0a8cedb0c54a148a8445bc2632de9164a920f25c64d7087263af42572a657aa16d83bf69bd381290cdf054351414000270429829a1558a39a05096a663e84a4bd4bb0bcee01ed64377ba12ded2e9db806bd28230eae4b3180887315dd89f81be3c5f28ad08011709a72cafc126bc4f53500afe7ec873379a917626f9a9a566bd8452bf3acd314d1f1146356b806f4cc635245917d099e48afba5744f976d81295e75ef13996ace9177d745f4795ee6c0bd7e6439605f94569b68409fa219743890153721a2a8863f71a09228304c126e28415f1f10dcf72094aff0add33f995d88b61a3bdf26a8270b2344fcf029244fd5e0eab6c13ea8e8d32ae4c7e9bdc247cc0906eb7ec19094a8a126eca450407e9cb8421f0a0471132bddc677c8eccfe5839f2c29cbfc400aae8533d1b98286939215e32d6b6bb20b5168a15a3414348aad61cc2a0e06306f11ae216eeac5db1d9388b06c6afd731b7601627cafbfb96a8fe7a9c7ad7660aebcec3b831abc197bcc6814bac7eb7377ee7ec22dce424400e543c98eeed06a25209817a814fe0529b461656696d2d9dd0ec5b69372e082871b78faea8116512a28a389aae08aaf6faf88e9c02bf09e5a50df2b62b4341139f707f9f2199b99080614bd55d795a9f944084704f7f6f441870f06fb215050bdb9ae4960ad6b2b430d5046341ac54d1f428b0a383bd6ca9b545ebeeb9614ee1fab1b4ee9c00ccc6cb2621f0bf968665d469631087f9c0ff0881382e90678a40f921cf86b8095b1a3742e618038eb3a171496eed6cd8c6652d1813f23bd58e022ce0c40635ae6bdc9911e041cff4d4c3a955bbb20de533e6089e195bfe625eefc43a975c355ba2b2215fba4572918f97221000179f334b4d706c8ea80801d1969d3051f2f1df2cadbdbc5f54b534cb52bd4cb1b0fb8d6b62263100b4ab18895ba8149033d4ce5b6462261a4eb2e5f44a7ea1c1b49eea0eab528636eeb3aab8c9eb446f60d2402ea7e0aa4b85c662cc7d92be3eea2ffda3add740bc17b7a7f2d16ee71c7191866a86620bd2e6969dd35200c9e5f4187bbd5acbdabe88a8c11c27f103fb617b19271c998d5279be33c1a6e1af097e37f3d7d84963f53f8a42247a1de59983ebe38a1eaf2e378f8a2ee3e62613a6d4cc5b05471dd4833af7f2a6fd29b85093c6e5e17fbb4f1c2f4a495404a479c2e971ca704d0930c05b1e40816c9d02cb14caccb1e7848fcae19351d4b9141e1f08e6f431cf7c44c30c0c2a53322020565aa82808c2b13e1740eed2eef5948d60b310c001e8df94ff4ffaac82ed33ca1f19396ebee75daf2f3d3906bfd9bb0d9da79eff90921a586cdef7451cbf64d2cd058f3c1fe4ffbbc8edee076a4dcb636b68992198af5c363b810ce63257be8765221d3a04fe0d78a3c0cba5477b2085b82cb69ea2aff9b95b1bcaea734e42bcacdc0a479319ec7e881cb1907e5d302f4609ac9a443dcd64f785086f3e49664e40ebcf1e7ad76fbed6d2bedec52b6da42a45b6b80a73d5cdf514a986ac84eaa035f4b8d62223a17ab54c6b9fd787d0a14983f2fd3c8c22e6637a3456a387d1c6a415b2870d6fc3b950130edcaabbba59ff7d96fc38f6be5b20fc78da005c9a9425525e993e24f4cf77a0a38e855cad2732b9425312730d9f3dd6c87b495cfdac81e0fdc5d3274a1a1747b93607f7be8253829527e32fc38f4e671dd7c365500e7e11efb1f6d1688013d9d9e7ec3e7c04565d94a06641ba38fc98f21dbdb91632789121d5b1a37343afd636f7f7af3a4d85c906d2d901d43e47626907bafa323e250d6b66ad70d61c9754ad5b3e50ae80ae449ce380280ee9403bbfa41a6d92c63971bd26dbf5858cdc252bb9a46ae59e7c7427e411c4ffa8295c3a28ee8096286e603135a905c99e9e5bc6c16d5cd732c8e62027bb9bb6c6926abbb42edacd17f22a4b000b020934a3166506756effe2926a360582ead7fbc4d38458ffcc3fc7bdf267b6937a92660393a5bd4dd77aa88bea6b44a1b83297fbc908343246a8a5e61eb960e155b7dfc18f207dc5a537ba5e62087c349934cde44a9438475cae112be2fbe00d1abc9247f5da532222210204dbea39c843e7f8035d383b2c5086a340071ba8af48ac7cb325242d38ed3c04771e08b71364157ceb059ebaabc9e62c3c350dc18d3ba0e9956d6a5f60d38da31b6da781e7f33aad6c4301de1de170e2bd32c50f493d2a201fd577a2334b772b5da6f890ea0e4484a4639caa0368fa2b14504f4be5881f9eda1728e9c10ab19337b34801c6ba226e2a7fe5f58f22a5ad0917af0cbe99cd03d36efa602da0fac2a64cc701f7c7cb83878f7aeee022adedb1fbbfd3f7922ee4f817bcb16c5c1b62a0ddf6b8a8905b1878180f3527d00c959df0474b02278d111ce452042bac010f38f2f5bbedfd7a24e6915787f51a5ae1eb81b0d68273d2becd85fe63457422688e37b08510a5a89e3d1e127583df87d41ae68c3623502169574a8e661fa8460c2c74ab562bb415b915b9bb6bcaf2e732c03d522bfe9dab1573c3fe3f7facbdafeab28d128fd0203ef175cd2e38fbe2b0a52f0a2d25d42923d897033bf3a5e8b33bf1b75b8a4fee3ad3e2e7788dcb32dc35cc09400599843ea2a9ac306401f5236910a5c8aa83d4bc2887873f99d1013efb0d2fa108b0f451ff2b9f1b0dead18135a7eb2412031c8e02125aad20ab84267365ccb068032412a7805e766d0a573c962a8e99e5eb59a4422ac8642dd9a835e34cac51d2b503f6e59f366e5a2ef0c0d59c61a211cdefabff1b6309288701bcea887183aa0676d17f296a9264227d3ae77488957763432181d280c05f1c8e2ba1e9c826ee45a660701c5c0995168b0a4adc24e74f3d7e4c105dbce62967e2bc516c7358e661eae446704f5776f329248bd73419a2691f5624bdeedf519567d3fda1c8d448ecd965fc6ff34d516a401c08b6b6d93521048f4af07fe8a371f39279867a9bcb7771e946c3f880d763c0cc75f8e58afd9db44f24fa5bc4ca5977c98a2fd7749146634ceadd0dd5ca3a2bb9ed952f37f27fef9bb32b7b66ed1a50e17909fa4bd61c78889290d10187d3fb7449751ce19c25421e5c7b8203a2412188fbd8f2d5a0369f2a7b0829e7cc2f14752bfe7f3753b513af9f7e221b21fe1e3aadf3444994357ce1545ec56f486655c3e5b9102df7b96ba8e19ee3e759093058f77377b62e39d6a96bb11c90c9449592e274ce2bf14c78a5a81c41cd54d858f65cc9e54be9753fd26f4922bea6186087c1ed067069b4f705dfca94c982fd07281a425a9219310a0abe1a6ecfa32e011d4445707812a26e1d6e0f767c007e444f0c37eabc447c0068ae5b6fb9a5dc886756cd10860523ffd3d0adc5b7ccb83dcde5b72519968a3c2f6ea47e7a3c9c9dc35f409e11ba87d1d822514e791df285ebbd0ce2d21346df40ccefa51908d586e278f8aea2469c99bc041067c9d6de3e812508ac2deb1ff96464db270e1100c464f61a8418c41c4ff506d4805d73f051268ca88c7d14109201fad076a3782b8a8f49dba3b47f8221480c24cd6bd3ad374086418c614aff0442a8839818da0615ce286ac7415cc6260c1998424a40820917580acbd305355d0bdcff6c0e24f791823741e34ca933fbe8189261aad946b2ccdfe2c83d540f25078ed5568836ecd27bbb5a46955bfee050ba5ec786e7d2749a92166824cf822ed2a87faaba309029b60dd1e27d087bbd91b06dbd405cbd1f8b1bb258c90c3bc71ca9ceaa038eeec782c037491643bbe8145e581331c7e7a76135263527348ff841eba776a6000a2f9faee22033ed89c9cecb30a6a04522359221576cdf42004724517429b5d2a687e4638b3a8441d70176c3f38e80e252d0f19655f69bf19c4781c88d840d6280ef35ffd081b9895a2bade66aae3cad68d87e2234b1d412f7ea3f4c998e0c8c27d6d2966ada01e8315bc6e3c48ebf6ff72954838d2a6f5903779868e8c520a7d4a936c340170804aa29127b292916dbaaee3af6c3562d344b26a2b788d122e35a68c52022eaeccf9c43fc050e537c8e72ed03d843d4017d9399c0389c68048deadd4e18f2e6d3dfe6b9ee7ce305a8f8cac462e365e545279923857458a46b8c75c387e1885ef274fd0fb8e20a1574497990d0f41730dec89fdfc730e42a6563a1b128842988789152409e6dc2740fdf560cbebfa8d97ba28ff879a55d1b8815f755893c006d71ac4726bd0b31bc63ecd315f5ed2ce6ba50d7f63b28f8ffb48780b6a8315829b00fc6b2ef18a33f0c0cf92363b058dd086268f5311dae02b7b8651a848575636f3051683dbb538d70e0b3074fb626f073ce509e1991c816be4aeb523eae3e2ee50c0d1a2ee1519c7a8c1fc1617bf1615e310bd9ee739ff65deccbe5879b610d525459d5fa16de60a8c5aad8ee479523f41abc1f39bc3eaa46990f88bf7ccd92caedd047a63eddfac752b5e96369954009408f043820b46b6d824c573e044aae411b703c1e7060946fda83ce8e7e03eda4423fe0ae0e60e0739f5a825a1af09915729b10f00dc0636b1f033d774413a08f0f38f0904f4dc16dcabf07a152a30be0b70a2060aa6dadc1ebe53e010574a317e00e021870d56bed82676b1f037def401320e651f6e7fa34fd64b25a352ae385721beae9da063bd7a77ac5c0c3f2a2141370392dab44930fcfa6f517a93f1f90e7fb559f7676bb74498596c97365a6864a617229dca74cf8bb2646057d210c91e2171527beea5ebc8a5ef39e57e1e3430a1ad0bb56a704c687752f4ed24e47be3ca154438139c79761aab3647d9411e5224fbc4062dbe154ec33bb263b50f3d96d9628feb90a7204c53065f67c2fe918fd3f5d938078642506597c27cda7a504ba941aee130cffc0c30d58f7d458b72fac5c67703fabcc56883d22da4861870c567d923e418c2b8e78651a69f966a8365ea99f616a949d991b4d93872c34de292308d164fc28c97268813518d08ea68ab37c95f374e37973e44fab3816f24c1844df163b880ce60a262db2c8b8152392f91b696896b40d36a4b0c04e44aab5732fd0d238180c7eb21d35144f76c1d186dd4a88a83770cdb67eecd8862b641c4f24272e59b1efae25ade08b6cf37a1a03931ccbe17147670229c8d4fe5f34af80ad79a9159b959b6c43d0ce6906cfe9748012f7aa9c1b039546cda5d996e7f1746b602f67e519e0136b01fa8c729085d0ae22c1417488ab82e71059d548b6f90312442e86965b40e4e9763c94c7f314dab62a318961819693410d418dbea7c4aed6e7e801eff4bfa9ffdd0676d29062bcb88874377cbf4961787bc98005d112caa382a4f3080ea91139f396052cf81d41709dc2b78288fe61bc9b4c5b3aa3c524b12257eb38ec0be46a7add106f011402e6a233a162f0135caf034aaf728351206055a50399767c1d7cf1849791e28b1a67087328a5d441c49a8ec687cb81e6492b4e0064a9e361e91a85abe2067434ed07f081eccdce730b0e3daf3edc4a584906166d5b9384ecbdf796724b99524a01d507190873085db12b1b51ae18968dbefaa7e9680f652a95aa5df4012f82b27ad124c2451ab660112baf2a1949bb15cb3854575457545734b941aac90da290160703c134f518bd36d21e8e74b4c73bfceeefef9b1ca18b1a53b7c911802ae6d968f4a3ad1bfd88763bb646d1efff818a699a7669a351a783eb48bb46540757eddf36aade6754e7558c45dab52b62bd6b3acc8d412839c6cada966bc8b82dd79854e3ea09d8eee0273d9227905606d3fe6b1455db7834f77234f7dea248f460fe7e0e24fa6949f093deb51ed993b64e7e16bb8be93fbfc241faee2bece13be6195d679285848a2a2aff85248b3a7aab099227153e10167ee4b379deb17190308c64654e72d26661d8e768cb0a7eb69ea493d11ab397e2d55d1ad2670fe90ee9e13fc10a4cb2a84bda4c3d1a6a3ad99b7af0cf9f5b27022e52319eccf37972a783eba583947d8ece5e85ea64aeed20d1ad9724612fd3686bd7eeee1569ff1584eb75718fea88763208910a9ff44b77accfbea94987b5997a14a0665f80ed43ed16c825654d076e3bfd50d2d77af4663213b263ebf26be9d99bb0a52a4519f22d998bc366b21aedc6a8eed87ad3dc7b294875c7d6236a9703563e98dd9298c81efe7b082c8e4947f670028ba3fd7b8f48ed4f454d87b405e18c9a7a14a0424cfb8b7697f68fb475402ae93348bb961dbb344f5b62b4595b2189eec00d48cbba9604fff51a85ff1805d262929b0ef9d66fcd7edf7befed745b2fbb2d89fdf516352561bdf6da5b8f75ab659b8e5d1a52464d49642f5f7eb65d9fc32d2af72fb80169a93cdb8ac915bee41fb1cb942632e06994f4971657f2fa7d983dec8054a8bdb7df49f16ab5c954af3242a982694ae2bdaaeb80edee36154c80edcc24f1b44d57c4817a8b4050e67e17812a3f89877780ed027ce7250da372e58aed8eb94da89052ab875f6d726e132abaa85bb762dc2bfbd42fe360585bf0218caa0e37b6c8834f35fb41b8c9e66e3077c2581282108490060c7bb08ad2bae40215f10fa73a490f794f15a5153bd92d5011ffa43ac910c442b54045fc93ea24100bdbbb4dbb052ae29f14c4c293dd0215f10fc4822f5011c44263a1b9dbb2d8920186c58829c1ecf66ebbb4b0ac7477f7ebf66e9fa491b6bbfb1aebbe2c192bf8bc7bb79bbb77d71423a60463223901c37c7777abafde6b19d7dd5f30458af3fcfbc65c793b952d05ec2ce4cbd89076116a56560256c4f40b3c78e3a68673ab92694e0312e16543e3bb23febb05e20ec7006c54be2180212ad304a0f2cbc8f8ca448c0f95128c133f3c41818aafb7201b72308e2878703366bccb161cb4dc371419e01a3f28b0381f788271009121a4f2c3e6f251d0a7f1d2b2222384f6339eb711cceff83bfe199fc367d09df8fd506426ca3e8c84320c96f32f515e0173fe301fd832f00388cbb6d31f379594ff0866519190e737768bdd22498cf6861b2f6359dd8da38cd893df2c8dffbbc1ec6ebca08be33b2064b81596ff616db2df188b43e6c5a5eeb3ecd2f8cb8a85d29ab6691f4378086071706e308f322a610c91d5df60ad7af83ec0a874a80ea5023be432e26da787bca1aa01677128f004d7f097e21f836ae2f539bcee54df6f5149e3c615f3d86a7b353537482d8d70a5e6c6e00fbabbbb3bf18473eeee1cf6329d181f93196b40b8caaf84d61b7df2d7746ada263ae96f6e00b03808b035fc9900d565c82cce7c36e588714162a5b68c2ac7ca037bccccd5eb4d506f5a306fe4e815dacbad7cd39dfef8bfc2848f210a581c21946089a142a4aac439e9ab5eb1974dda1583d9a45cb12c8e7869565e4632131e235481dd007b60a5184173fe42f8fbd0fc39160fa3e7af6ccf8f7d7c153a3f87c7e78e2ba6c578c555beb9d862e672b4f80057e326f3e05b21c245a0632ea8f11a87eeeeeeeeec50077f10033ce730c033380331f95992c4a7878f304f511429289607dc9b9aaf383f353bdcdf52acb6e927b8adac2a67c05e55d934100fcf32110f0f37598982daee6dbbce8c029732fbd7093d7eda2ad34c03ecf5105fa4aa2dfccc2f6e2ce1c94f1655e4c93e04f130b7b9ca8ad9c96a79c6af9b10ab349daa728a9a737fe5fc9759113d4ae6b22d1eaaed431516b3ab7e30bb57171b45f6d8871a06d202894cedd9d23644d4ade12318b6d9653df9c030c1e060f05d5f8e4375ff1d73777777df0a0ae1bdf7de835f17eeeeee8bbba4f222776f19db92fedcdf95adb65b6782d42bc2e47f3e25f7f7defa5fd5b75d9a25c2455e93da50c45ccb7a4b6296656d5bed93dc3c2eeff932af7b8b115ebfb7cdd2debed2fd547ac2a569528f1c2ac143f38c86430821dc7e408cf3abad951d49306b6fd9953f9fe1e0ee6e0e95e0f17677dff3f7de8beff97b9173ef96ddefd178bb71bcbbdddded10f280fbe2d2c2b2f25244bf5671f7289e46bbbbc3072384105ad01d02f1094970e41af7d2f4fbedc5cc1dce3806aff79e777bd632563cd39cbff7bafb69b83b04f29efb24c1f860c717e36b7fefbd1767de7bcff7bdf77677f7410895680ebaca24add880de707d770abedd0fe6708df7bbbb2cfdad0be13b87ba0f46dd8f6269f679a3581ad80dbb634308217c6ebde5b0bbbba13333fbe6fdba1b7637ad6fa574f78fe69afbbdde29b8fbee6e748fdbfdbabbbddbdf55f7f7e173a84372ddddfe1a3a7cb165944e83eeee8e9017a334e8d7bebd965c9aaf90b00f7531494583f7de7b0b581a16bcf661ebd97bafaac1647fddeedeafdfeb3ae2f7de7bbdf1eeeec26a866fef55f7e70f7ab7bf6652b69a6f1d14d5ffedc25da752c0ba3f0a900e9105d7d8b70db184bf07a724bd84d949202e94a34f4b4e4b4e41382da9a7a11316a724a7208081ad4c47fa49c2ccdcaa35456fb1ba8d8a5bf449e809942ea217af76981791688a4fa95d24aa3b5c869bc122dd3ac44f732fbe217ee28bb2a8c71045e01afef2c521b2a01d0fb1a4b967d1f83e4411b623dae6886d9bfada8eac6e735ee461743f23b56177694ea248d4a7e6227ad57554d57911ecbca83696f24dc8f3a2f6577eaab0307dcb7edc25ece1515d61761bc60876c809259a7326dae67900cd22b5fa6e83e2d62d95a23946e244ec8a54f6a2cab46bfb5861763be4844b3967a9f4cf719247db78b57d807d98a9a907337785d9cd542e68ca1cf8b04f650529e72c95fe39aea6618f471dc0dfec48e6022958bfce7fe7dbab6adb81dbee3812b0f5e2d5b8bbbbbbf760d6d9bd6d0d148eec6e1d90acbbbba77677df4136d73dddd331606e193431c2921effc1ec9867795054b44d91597a3d8586d4f94cf876853bf7f86040985d4d8dff5b8ff33d20314008e7fb87fdb02b1882203c1e3cdfb6e57d8971644cf78a09a744b2329dbf975c7560bdfb5796bb530bc3b05feb31fac31f0be26e5999a5a22db1d9af26df69f736b98d32499f8f341ddfbeb94beb71bd6fa1839f0a445d2764c8a202d930eab575458cd4ebdd1dc88651d39c134fb4cdf3c2ec38e8396871f849f3ccefda08153fafb03832c035b2c03b65a57821b1a8dced50c741fc2ca5514a2c94291d87519946f58759540e3fc5b559d2a2483854dedf775de3fd688e196677e51c3244ca3939c84773d773129fe63888e5e5509eaca8401529aabfb424a6a8d5578ff1cbfbd6c908916f658f5934bb1e83d965fdb4367f4273fc7d3d8fb447fa4d4a4d87d70e5a1afef764b6b84f07591d8d7abdebba88fcc47f7d0bf6dcf2ecf2cc41945d280fb96cfca48576f3e8d7b5c762393b5df9d16469a2a69d75bdac60ec737d122b0957d1dcb57115d5c64930aaf28f0bb32faf028bc591cf49aa0321db94cc1deba5e07a61545a59e65698bff23c9fb954e58ec2f9895fcbc2e4dfea4040be85bb43a9fca4395e99f357be731f9f2ab2b7b68eabfb5c55647bfd655d94873aee824cbd9e3497882aa778761cc449da866d9c757c45d3c19e83f6a9c8686ef4da94ee22c6c153849ae3cf2843d1a812cd05f1d54b2f2abe09814f16477b7ef7715407f1ff50d9d4cb965ad95cb6ee1987cb738106356268139801543f753400584791be8358b66eae07b96f5d911fff1f4016c7662b3fc1398ac79efc774a494a65e186e8aed09be5fc55e8119be3082496f327d1b927978b2aedc9b7867f4d89e304f85fdb4d76bd8549b95dd95e7fedcb7dae6d2a99191b58abe73e54b845ccac63a266d96fbd32f72ccbdea9b565eed8b38feafe5b2f8c06f1ef8a54df42f0a2e9d882643e05d012f2adf7e78a6df02ddabdb8c1ca1fcad47d74c6852a225d64f482888310846fa469a4a9691a69563abece8774cef78ff46f92be4825252137e6fa134606218c569c988c3a56f5d08a96f524b65d5f5178c1ab9fb6bd156a3a2ebfa594bdede7e11303b63228235a88a0eb931f65c54b48f8914a23f37d6b3c3609b8bd4d8aaeee5c07ec313b7d007d4be30f45e5f724ef2f34af8061cf8aeae77b9fb79ddd657e36cf193eb890dde1eeb274382cbc438cb284284790a4462e660389dc4d98dd8c513691314aadb28831ced8613fd84f7354346a85c84f1df683a4b650c5fea7b7c50e5fd5313ef3575a4c06f27caa9471dbe10d63f2040f3c9fba03ffad61c2efb01f25b40d9327b44d07e4f9d47ea1cc87587a2e3e04516a428423cc83613e291b6caabdb7d7b355479674b7773b7ccd40e8eeee59f27efd9e3feff6a5afbbddbdbbdbbbbd7a4298b0e4eeeeafbddb5ff7eebe76efdeee959992887185c42f771702c3e4879612f9dc9ffb5b241edd9154fedc9f3ff727ddd777dd79d7d71d1bc924f814bd263878123f3a110ff1a9305525c4834b1a3de5a9aaaad8534e54178822cff98b4b8885e5f154455e24f3dd3b02c477af67eb3c0a7d1934b974059f1ae65f3e3e56a23fbc0b8d7506ddb1d5e5a7ab54ca4fed530d01212573a4f203417b4c14ab1b954125fd71d4d5316425a55e403c953b52252dce23f1e22c4e8cefb7168769c60c2f2ad78841d550f9d7c6e51b0d95a54731d14b4691557f905834d2556dd3d3f81933be4ddf33361bd3f41867334c34644c33b0f2abad7252e1591cd3e3ccf8fe0a0f8b83c6f77f7b8d1940547e13c5c3da984cb4324f5554152dce56f045b6a289ca0a73499899682c32d1aa3ad00fd5908942cd4586c9c8fb157ccedbb47071f991a61363b3315d62b8985c362b335d9909cb4c9725b36c6472a1553551253155919f7a224f6b5a69fde442617d5e15459e09e4425b06bd98f8a937231ed403e84fc13b5215615835f4d5900be56aa24a623e0655d253ad8fa15551f48930341ef153ff0bbd80ae8b47ee53e4518e58be7ad674b0bc7c165255d98470edaaa2ae22c9ae6be757d47e8d7635b5ab8a8a9ecff3793e97d02ba242848bb494c1857c19b5224e4d3f09c9a18ebb11722195d1c7caa2f2e3a77e61f9d2f7975a7ea585c2fc0bad6a09e6f95958361b1386050666832c50e20f7fc79f17fa2a0cedc2a354fe12cb4acbd04a4b8965dbe6a078c1bb0013a56553e2b2bd5c75965c7cc8852ab7557dc85fbee51dcacaf7bb17bab03846dfef40428bc3f2fd5ea8cab3d0aaaef0c37c8bca6352d381d96c4c1518158dc756956d05a6c5532cf4551522ba6f7929b9d79715986d9beb0a33ea586a742a2c94ab8ab7bc6c4a5cb66a4771045d56179a3ee42339aae2885695f3944b01babe938eb990a72066c54c85927e445f8d21513049cf3fe7bc485e312b1bd14e23aca08c6c417d416d997887e5221fa40a6a5351bb0705b523918dc58976589a8e53b846bf913dd4fe9948e41f195a4f16911bd185657eb307e8831f2ea6cdd7de3783ea9e364df2b00436a983918ec2109a54214914ba708ca8bec732abae4addd99c894df27fb48d8f0084a41843d1d302087d8faba88fdfb3cc40dbd8a8af32e128249e0871cd918419e4c9c5c33c417def611a66b742a62476fc79db0b096aaad919268f6d09d6bf542c95aaff0d23aa0b84176108f35055158d06daf8d717c961eacfefe3791ba245dc7cc8bfb621a6f82b5f2447fe1053dc84f8e09fa41712646e4386cc57f16d88163e583af9a626706801095250c223372292652b92b36911e7c73dac3865c24fcdb4c64ffd938ee88d9f58eec6437eea973c7373ac97b4488ea44572b2bfe8f591663409af9147beb50d1912859ffaa1d8843060737ef8a93f080336e77a066c8ec523adef1a3f09f7683e578f463989c551d2eb339abd468374cd34213ef8af6dc890ebaf8d7fde086fcca4f93747e6641c549babce56be020d43a8d5d671aaa534505d208854459cabf8e40b6f079007f240813c331ec5c4517dc7effdba856bf07c9e5555f783b3f6cfda1b23a77f63d45682edae44a9712876b1386858d4e38951aab36039ff2ea6aac7213f3d16ac4d3c433c431c7230aafb909faa909fa8ac4f8bd93d9edd42f517d2b57b3c8ca37986aaffbedf2aeaeecb742d5d56b767eab64d021842667eefb9efae44e1e23dc6dd10ef1935e2d3fbed5a78c4a81b7c7a1fbfdaba6b2506735bedb2fafe06a398c74f8c6308d778bfc9ad8ba17db5752bb5b381ba6a67a3bee6b1a0a4a0ee578bd39dccaaad73a256cf74c87be609a2320f0fcf6bf64a62904a15cce7254fd3116bb55d2f2910ae56983f135bd148a49c4573ef2b5ed2dcab8e4c3ec23ccd391184ac254284542f24480c8387a7c6e7de0ee6fb7e5c4d010f0fa7606d98080cd81ccbb7878f708f35b246d0a5859bc5094c9ca0652a5811332ab1aa9ed9758f4a7c232bf89c522f51f9ec05c3f8c1ae229669b32b862a2fa8cbf96bac8476166221a22888da59685516276a32bb7630abc7308ad54bd2aa6a54881afb8b4ef517bca488595536574fc33c6901d2ade9f4b7b695571e867f561ea6a5fbf18f65edfbf7b61d966e61f9fe1616161a2306cbfbf75a54de9484cbbffccbb6b331bebfe5593e06ddaa4285c4172245a966ef425930ce5a56b6de3aa8a5217cdb8c62b64fcf9bd2e328ced9a50d07da71589af71dff44228cb05462a6806366cf5b485503d405dac2928ac56cb551cf6069685003246feb9e497a59e36bdfa91889f1630fc8fa2948a3b7be09d2cfcfd196158534daa0189162a8117e2cf2a3b2f2b6533d55327a6cb7a83bd5f7631814d763d8cbe81655a260ee16955f873ded80c86a53d2457e921515a24219b554169088888848285b0d08576529053c29e025cd44a526130a4b44943593e6bc83e46fbbe10dfd859448246b941283d9754a89f5cd0428484e6bc7ee986ffd8eadcffaf9538c1660cd6f62f46c7d13f3ad6d88163eac1ffd681b529a43932c04e5581b0f3f5d51400316399ba3c5fb9743a23de4279ff41da1c934aa7b1e67959f5050778f77a934bb273e6a82bff5451a1f15a29b83988a99c5ec980852279e186a08df6b3ee2478eb4263f52c945854238d1719553dec5ca0f0857dbc40f4dfc5b1f7cb4a59878ebd4d6f6e99e233da71f227e8cf881c998084a110f0f09050d010a4e6a27c3d51e0daba284ac695f516cab5da768ed3aa5c958c166a26652c1f8cc647188226519ac042bf9cb5558492931965f60c33fcbf9776a7178718ac0386000872d0161f220c86d20eb307b0fd55d05d59fa148266ace8b9a9bc2453ca5399e99229a52693a6f885dd6b775aa64072aecc005392999c9e8e77f8bea203f71b5292f591aacb3f82aa442d447bdb69426ea54733db56bb03619b7156bb3c41b08fc303d788d831ec6d152b846d360713a0e4b435b0ecb79c661efd2a997c30b68c4c10533e0e02df841cacbf88286e90d3362b82126b534324a6d581aff6beb4c306c88f1b286a58971f1a2450d302c69785941c3d2b8a844d1b6ae659e81856486a55919956169ba4e75b13471601be68239298c8385c4b035346d28c32a83816b748a0c4bd3b51766d7a996d2365d07d5b6e97849aa6db609148250dda4bde9faad61300e787344737e93a39178dc4c6433d924b5ea922a861fd0b4821a894537876eedd33da91c5821849619f3f3a788f9f95dbb6445ccf82e2fefa2e9bc746169fc9932174be30516ca503016978d85e6c74c313fe6855846df44cccfd128667e4ce93b2e460b982e0445ea7b98fff81006e6e54bc16442b4944631118a684af384e1d3ff852ab1b646d23d4cb9ba085159e83a41c30a6acf91b9b231938d7f7a3a88884856a217937111b3838070557e49d3915b3f692e8789c04bdc10697fb13452aa52a72ca0499ac27ad2c7683a26fe26463fbf09eb49f347dfc4dcd64f1669eba1212530ae78039313cccd813ef8e1226773b460de527ef2972520dcd60565ff24475f5a0ffeac7bfce42fe59c25c71e5d26b496001a35fb1d7e50a815b52a377d0fb73ec0cda4433e7c530ff9f07748ece126b334d517a91a8f05c271f6d96b54c8ebe956422361524563e12dd49cc7f7962243464b07a582da26f6931e72d4e67494ad53d591c93d4788303b168a915514ab906e1328eca03e212cca39ab11392412121212faf981dbcfc32e1959c545504a4a47d228ebbd9550bdb3c0e2a70a4c46d6b489baa70421c2338487a7f24bec87acaa33b2d242e1a9584f6d4d879f7f3cd5f39392d28509bf67b0277f4baa744f4fa7bac79fd9b9a3d862d9a511759148c4ab388222604f657f632b4a5555d1a14787ef3df6b175afdffb115f3dcc813d667af38eb0a9bc3e9be7af71f4ce767384e4ce717333a4fa57f0a66dd80a5984264d104254c36fb2a80641544f4bfcf957a724cd79454bfdc56ed1cf1045f8f073748e6e18bce941514c291e2de2ac01ccc56761564561be778ee55643e4cfa871c595e48a63e4181b06b30f53fac06de71f14f8c12a6e098ac5e1b678c1e08dddb5cf98be18e36ffdc1cccc7093ffb425aae75f8d25cd9e2bda695ba6b94c09db807aa300750c242790a3a4ec1ef40c583294958c52be08063f2896c63729bf80edcc74828423759d1ca1a8a6ae932d82f0842c66adb69573ca9cf7f361a71d22c2882ded1486c4871b13eed2a54b261cc53da18a72e51cc5c49ede4b392707b3d936fb04aebed6746673f0a5a386c00134d474fa5f555555d53098febdadbb0c43140cc3308ca9680ccbb22ccb3001cc2e9ecc2aab7c9a8b9c65d1facd28909a1affedc0a6cf8cefd97b5a4d73f139470d89df5cfce7f45b662bf9e93d465be2dba693d9f111a642e32d2e77cea25651bd378df27014d0cd4d4d0df71f34e1112d7437cf3f0712185b5929a6622a157bec79b1afa9ab61385c317e5c2d0570cdb2181205337bebb12c7bd6e63d9818ddca475ccab86d18163d53fee883ece87a53fdb123538adabd9f2d4f3b3ee2c389e62049092ba39d14b1669a0e86dd58ff9ac3bedab28f96653d4685e7e8173f3e4657c33ed2f7597c0c8b2fc62ddb64739689a9b82ecadd8dee060962d9f709e68db6e97894f94cf89d64286d28e1e1dadef67ef7d50cbd9b9a379773141f79f3bd577d8c31c618638c4f5be28ab1fa5859958c2fbe0abee6285abfc8a18b4aaaeb24e8495d156c23cfdcca49164042008290fb503112578c64eaf13efe8e2a65e5fb7cd47135f5e0dfdfc19b6f2611bcba1f845477fb0b6a4bf4f326025e02fe6e22f0cba26b4ae2ed54db8ef7d647dac8120650c4acde5d96a6fab568acb5debaae7d6e6d1b5d3f916172959103b7eec948c0abbefd68d99f6d53b92cce0fbf5e956a8ede1f70eb4a6feb6410e922d01f0f9c00210a8e951f34132e273e0072280439e90150b78d47d9dddddddd0dfb7378b7fc967f49ab5b4635602bd33998f06be4cbf7dedbdeab197aefa6c2f7de7bef591f5f526d341afdd66c447fc8c73e88949ab6752ffba72d81bdbc7e3599d1f812a39d75c96fee412ac8f7812e163517880a4fea024de1875b06d3a7c6e51013f69ba305fc9b5ad3dce39ced2dfab0df2098a78487090674f8502cced60c71421f54b35e23e574283f3acc344dfbf11e0bf2dea3564704a8620fb525ae7fbfdac368fc77d14e6e1d5b5142b86d7370232dd015625057eb41aad109b6327298ddacce0f6830763b0c3a80bc788d9a43442733785263ed5af6f78693235e60a422a60c1d2e2d3fce658a989a4e10b632ce9fc3512f7fc49f12f0bc81a7007720bb62bc5c9923d3afa3663ee6d751423cccafa3b8003c10bf8ebaf1f4d751369ec6afa36a04f043fc3a0ae7837800fc3acae68bf87514124fc4afa372bec6d3fc3aaa008fe3d75149bc11bf8e42c0a37e00bf8ed2f107f8755403befe3a6a016f805f472df104f8759404bec7afa320f03b7e1df580d7f97594039e01bf8eb2c033f1eba80abc027e1d358157e2d7514f7c047e1da58177e2d75119f8267e1d8581f7f1eba80b3c140f792677977ee7f7b11dda3d0669ace073481b52ce392d117bea1b6bb443afda51251cf8e71cc581efaf71d48fefbfe9c0d6952a7fff0f3afdc4cf01ba01ba7ed2005d3f65807f2aff0598547e0bd0f513145be73c95bf0274fd44818dff09ba7e92005d3f456073627b005d3f35b1f9d818b031b12d41d74f0ad8ba16aaacc4d6f550e54f82ae9f1040d74f3d361e74fdb463d341d74f3a5bd74c2a3f1274fd7480ad6b9eca9f43d74f75cb41d74f06d80a40d74f04c0c18f43d74f466c1da76c2817f9a988ad63203f11b1d55016aafc02a0eb279a6d86ae9f86d884a0eba7d3c6d1f553105b00e8fa09005bc74c80d83ae6593fd1ade32395ff29f798b66ea36c6a89b668fdb4b2cdad5ba13adaba1daafc5c65b97535373941a0a83b0bd49bf496803607161ca935ea3a5941182a465a19c8337ad692f01f6d3b6f731c2e65545f716e66f4fe151ba6cbda15810b9039eba7ae1d09bc762588da12af76268099d49680b51b221fab324b5ba2aadd14f1b1985dda12b1764430ec3de370285c23c6d6f588fac750efa23d4abb17ed2927f229d48bdac368eef1f433429f43e9ea434bd3d51a6627475a46bb1eb268c729fe41c3fcb7f9835594d6c8677212e6eba960948236224d9515961697c798e6f2a23257585a7e7bd17498e8bdf7de8bf107afaf9a48edaeefac8ab52cf7287eac3076d767bf72fde8c545c36cd47033d77b97d42e79ad601addf1b7fed18c76560bcb8acab4acca6ad17414a9ddce8bc5b2022357544a98ccb491f32339e9f17b1edff52a9a4e0e8f178d443223c9cd5853d3e9a024529d2b161343b3de05a593477a3bd5fb778faed6639aa6699ad6a2599a16c364c18abdda1aaf04d55beb61599665592bf01733c9f8c159b2ec87192df312a342c2aa12d4a77d8e5e696dc3386ea6c6e6c64ccd0c1a5406ca2d638d9f65599615eb9ba2ee544ca47a16ebcbbe2b523179c19948f4d2d274c08f4464848f697ee30212b73f58453985ddc20802d4bdb121a286101c103536a60a76b5b464a59226430669fbdd91b454a68d1a6e4642f9620b49cbb0ab2463fb928cebb2b20c939a8d1a6e46cbaec8a970a495ec3d5f236e5020e21dd86dea1251a3ae105c2472c8d5abd8d232ec8a91480f366ab8999136aab2ef362ee687d24ccdc5cdd4d830cdb42aab2e58c10a7233353637666a48238cf4be9f6bc07e5e912a49c2a68aafa8acf4c32ac8717266c6aaa9b961f38654e6f8bdf7de9befc22e8b8b96ace04c8dcd8d991a9615162a63bd178e84d59de11abdafdaa8e11a7da3bef71d899aeb6f2893bf8b4449c8e75eb187c1ccab5fae3ea2cfa8d40c99643deb10cd0000000014e314000028100c864322c158289889eaec0314000d839c4c70609a48a324874114858c21c61802002004c018811922d226007ba4a3805db096deb887e5507ced0ae10e261c0e9b19746e5b929f755c0ffcb3cef2c44582f75559974668ebeb56da7eb1efb99dda78947b1cdb1dae09218c0432bd2fc175134994bec46b7896044bc7845173fe2c46e51df7b5c5f4d7b468778eea0215fcaebff833a484a4bd0ce2ce335e07da76140876a6edb49d4aa51c6211be3ba3af749d6011de8bc2bcbc0262acd2e602a31d2caad05c622c4c465aef88a761d099a9e13182cfd81d5820acb5bdfc410d209c666fc18b62812414403f748be91de575773fb5e99c06a481b3298f4e5c9e96f94829dbdfa3281179a5780a823e469ed3f7478e89e3e340296e090d9c867fd7ecafbe138f3be13f2450918b83a0edea7e10c578214c482445510693fd4dd3096b9f9453316e0feaafd3e254f23effeda894f27c2286327dbb21b4f1dc1a052c46580c9cb48c933798bbfb5c7798dc156380462d862d70663e3d1f5021501299358f6960ac8022055da2c9d666158184b78b3c2a4910ad7f5afdd70aa7172bc4b39f75b7f305c14fa83138c818e0c4dc2a1286f635481b8b5e50a129aece4051e313008903750190789dc00e52b4f35babdfc66c812ad86c6fe7fb8b49da677f616d3c2eb5cb63c3cdc6325abd46c020fba6ad3c338157eaf0561db2f6724963d12e1ce3d073e6996670129729a24a773d49b32095f6fc3d4ee966d6806db66580891697a6ca1cf6c96c852bffa6ac5123d4ce9ab96971ce1ca6d8261bb4aac90c5c0e89b3ec7c0bdf368e2205d0531ad2c68ae65f9988ab1cdab096ce4a176ce37d7528d1d5c5643c29e92bd2156fa78973b10096a42a77c06210b9fe8a0540a08dedcbb00cd4588150c9affa766a82dc38d31225679a762f493d833dc12fe15efd44b4d321759b2357d499710caa815353771b9be985cafdd988b04a41360e942333b09d3ef01b87231953795e00dc4b4792c986af34d49778d9c8edd1f9efe5f15aa5f22a03f0e58e2b24e20e35aabae5faa921984c76921e3e09012b22c3a9c4ea107543e1c7687792c94a64ebdae6803a85c5bba2ea7dc0bae537fbfef2a894384fe30a9e7194f497737c56d4bc0cc2b7bcab69ce96d70161a6e1f33a0db085493da11408663b5a44d61eba45f81f5971383822585eadb935519a7fb343e98f9263c420216bd974ac3b8059847854aa9a8ae51f18976681fa418583c5160fe606c2275f190c53094bf7127032fe0b11f566ea93fd59946272098fe834afe4edb1906033c7e221474a8a08cc10dc6484f0166e55ab720ee3daa4001fe265305d369aa6515146df5571457644fd935a450720233059b8479cf53315ac6a5b04ce8e403a279497203fd8d333160bac88518688e7a387d4cda16141c4ba9abe0e8d26f0f7e8bf6b362a9d8bccf757433c01810f0ee17dc8a7a09b82f24291fd00c9fb2eedb6baaa982771704c6a8394983bea0e35c9980a81a9d0c305293cd0511b03b021926bcc4ed1366eefcb3c69ec85aa801308457349fbf77d40321183302a4fe376bc68f069066890bd2ffd214a46061284d7e02c8ea3ea2e0102690a787081b0deddbe775eff72461f097229d9f1dd4a5f98b1693519c45c56d0a7092e1e943844002b5e7d2573860001a00a6f8fea3f68b84dfca86de382aa46630d63efd1e573bb02a1320a55cc6c2409998937e0192d2914c2985bfb4a99509714e2596d20feca3ee61e3717723a6c2f39235017ae01f56fb96ecdd8a056ac21415f9f67c0d527fa58b07630b70b7e9b7c43f32ffe48ce070246f205019762b728aea5866c6ac6ccc8b481e175361fd9d223a29582a0b145385b49b1f2040c0b024cc8dfda61d2525771c08eaaf84f8b890737008e1f94f60e948f751ec22a4517e795f14e4831a2ca5bf7fb2560d6b3d4809e776a0ece2ee3c07126286ca1d288ded7941c9866045587840d63c9c27a851884ff912575897bdd5583b9bce9f3e36eb46350af565d53fcbc480b127b1a34392679601aee5f5d0adabf947d3569529af0b22b5c5292f39e46a1d37b86ef056177891f3e36c03c873da93dad86c53758c1ef73a7a45e34b73770422d20a35c80ad331ddf391642490009f5e82edbfb99cf4d5daacc3b280a24520e4b57c98c3e5522a10dd178149334e3a30e4258ed06e6eca138cb32b33fadebba18518c588916746cbb2755f6516994956e1fd4b3a275176734b739de8371e2785f46a61b6f38053f1566622c4f708dd1dcd79b3de551a4eae0954983ea896a10070868366062bbc0450730d29d897870edc77995a73268228b1792b50826bcf273f958d31008a49c48ea631d85d946f20ea23632aa0661352ac1ab76dd545f929a34bdeaa73f5400c13bab1dd2514f7e5d8f64c9bc959a705c3b4c1645345e8b51c2933f2c2c86240d9a32ecc72e285161aab34f8decc3f9aa05ae2d2e8b9bed17e98954a73fa244567568784e1afc910c73c1f22b652cca5372559712d4be4f883206f0bc11f7932b07dd15d755970702baf56fd8048de4e02f62db55a049e805b024662c9cc74cf6ebc4c505de6011c6e40764fc3c81fedf71c1ba480708a5b730b14dd771ba0e61f514f96774b284a1ea5bb3dfd973d2ac9f17236188d6e843bc87e54ac5bf61443159902361484b9f2424c08f9496b22c51b3266e0b4299fb7788b1dbe7f99a094fcb637bd9dacc0ed90835c7abc51bcd7003f596cc88ef17480b4a42e8ebc2d296aea2802179fa880e7acc1f1db576d1ebb1a6c772c6625681807b69c84c344566c597cca2526996caf8c084b934419549410328816e102be24ad1191844fc2e0f6af3df93b0a533bac7e046a1c746c55d196247d0614c6b80759dd9c92df8a8d02a171b4ef6e8c3446b16eff9e17813767e709fbfb045e40b5f92f74248782b1e5dc0b6cfd7dcf5ed4feaa2dac00ba408617e5bf5e7e31199b08b633f658fc9e8d959357b5d0b4dc307fa17ea03a38ff78b734a1c057d96bf3f86e6640593f1a5d5bb8521413111e2fc2497df3dfe082ee75c5a8635d698963b8739e492941369fcbd7c39a9248284083d924e4035dac2dd47d519c1d9174ae68e11f06440e25604966bdf6f9cd2490449644701349b0dc0e3089a87f315956f1052b9812e4fc5930e2ddee35898fb4987cf21fc181072ff2a8db4165318b078d6200bb06cc4e3b04e308442eeaac112031866e4029e4ea454c8ae38468b6f0f9ccc6b6daaab470f5207511283ee8e05696eaad5687e375cb944c29d8de86fb73e8d644dd9b9d586e1aaf6f97fdb2790ea88594765ebd0cf52cfef06e8dc2ad0470c72c103bd994dee6b40cc1c626a79a75856181c9a7347308ed23c045d5e4395a11a272683580569044aa1d75c1916bf761285b7e7ee1d643d299370ffb55aa254affb56dc740a7f5dbf386161e6b3b3f33bc7f9ff4670f8e1fd9786bf8f45d82e9b7c1d988b443e947c91b3f48a0bc70d057fe70ed4f8e7abc711bb4c8070efda593b8fc2dfa23dd028ac48ab00805cd3bab498cdc529ddb4cec82125342cc24b1e383a4b62c80f1b6cd1a60fe362e4649cbfbaf2ae5b3a200394d423ecedbc5b24deb3f4bbda08ac494525c7aff24e24b211ef7ac3a1ba29c99f5b43e45be3fee2b9d580de45ed02cbb57c8b75c0a27f1d944f761d7f6ed463b68480a23fe4096f36abcb1b4e809de1edd44111b945244115ca09dacba4fe1a849a55933d725081eef2a55d3ee3e76ff9a26f0ae7fabd59fffd06ea35fe39e9ae61742eb9914dfa9c9a6c4696f2d28f66f8c50df936d5cd6011841eb51f9a08c7d773da2494b54520d07f0e1eeae3b89c7304ff0977b0b173e086591fb2f41e61f189d5afe3ea41ead48fdd518890e067ae37799f6d75d57ba0bdf07ef01c75ff3e32b6cf343d0dea0c82862a1b85dc1bfc13e3a661d5d0f8f16f5520f8a43d95600b686e051431385f7777b8185db2096c4c2e6ff28b96cb9ad6e678d58fdbf0f9c14c3b5b816937995293fd7265f662189b5d77e44aa24ca9d984be94112d6a34d983f5d420bd6f04f87edd43903fdff4bbe86f2e19c81fde9045a636141231906966f634f0d30d69c594727dd87cf6646f688ac3fb4a56785d383864d899bdde7d3854b443c30e601c6ab231e97efedb3b4befc7609e97bae6fba18f14f13b7a6ad8ebf2db76f5577eb2b743355c6d53af5768afce912a790378079151b9416a571d8adcd5db73b5adfc20ab43ff1a36844b0eb108d001f151292e0637fd7a3c3fc074f6da55815639ec27e14f33763b6e6feeaa7d37bf74e8a0594e005be558ae7b756791801a3d20d0c0529b1d409d0afefe34708dbed0ab9c0e2f20a181a56b5b14152e00993ea3bcfe2ff745edbf1b52deab0958893d76ece1b691e3885edfd8bb7e572b3ffcbfffca23c0fc3ddc5c0ffe01ed6a918642a7828307b5acc04417f058e75c746c12b78a6c3d9f87d5cd203ae5473192fcb67a914c65b8041cf205ac63420fda7be34d9fd364177c969277c2f0120bd6356c4f92e1a51388bf46bea10532ed6c84ac1262e0de89c0323b060fa28f3be30b5f14519e713cb0bad1d7ffe92ad9439cfb81fb05ce2729015dd72ea798d851043814ffb5137aaf70d0bbc9f2ffd89ef04d24f55eb26b1a7cbab805450b5f136c1f1e45f2e295c8ff0bd39662db3d7726a680e7b58453c097b18d395cab3d1982cbb8e53e6df77bc9ad30d039b8a20226287ed04cd174da1f778e44cc81a25fa507bbf0153cae82276f3bfc5ef4e201dd594fbd2f453e4df497d360063baa91bbda60367d01fa2711fc408a3556adb00aa07860a6418413c81195376db97b34dfe07f8217c15ef495b79048c15579b92745215cdcd1ff7e04adc0bbcd002cdfb5331593aec5519e7df3b22351ed2ab7436db2f956055251482d9917497327432f8d19a12078864184b2ca4fdb61f2120a6325a8b50a00ef2eec49fa9b46401a84d237fbd250a179aa282ba2aae70eb65dc20fee68dbe4caceec906d2b063e0a40fe3c6726de9f88dc5a25b8ee87c7fcb6485c240c062e00c428ef8a92d159daad073b5c4189c8cf51bd7b69b51c738ddf8b15bd9ab8d8f1bdaecc5e189d3450d66e26837ed74b909f4b94ff182fc017a962d894aaa60b3c2d339c9a6cbc2f2d1fcc2d5b50c4c680ab72fa76274cd3b73601fcb0d7c83821272ec62b1e66f76d5fd027f8d19ccacf28ddf3438fb631c27e6289a1f4875284633a89ccebf745746d7b12260724507cabe3bac818077bd97499679ac64a1a19c85e2a6c1b76df1830ef60dc925955f9404e7dfae7ba0b8c51ba2efd3feec96fa3fab34bb7314aafda3969194a1b7a97d220113a083170e3248c5aec178f6d192e5e383df14f08bdbed806f482351eeb127bcbc3726a3b83df1696302cf7c7d0b32ebd1c9e6a5b3f363ec14a0284adb04fcf37ed5092b1a222ae2bbc1e594bb66becd137ff73affe710b5c3055ceea058e050fa62e7ef2537285700c3c88d15d6aaa5fccc7971ad3e955eea21181facc4855e3a11149c5e2be0216ef0cde870cb68d976c5278a010dd730900fc6d1074317040944346d29b9645a826d42a49252ea166a522a963d605f269e1ec98aaf863c8cad6254878f78f3eba72cffd1815813f6ef402c3078baa5b4846d75ae03c48040a7b137a792a654489f2062158f7518597dccd44d70fe79c44f25a9031355a349c7648c4883d99c94c6f3997e1ea312b51a62ef45c355f283154b307901fbf3737ecc861f1d01ddb08e28418b162c53e391853c0b9ddb0af361e1415a85e48457d3da859396bcfbc00d338efff53051f14c5e3849a397ca8f4f78028b540726431a4a8162d5af50c8a0f3c3ef2916d497b73308d1227d1fc40dc2a8d524f2ef56199c0bd26d653e2b9ac0b5c5f2294c6c9894630945c2f2df4801924c95f6f9faabeccf35916b85e0aaaa43af1e579b04369676f5b0008138ab10455536b232587e244cb65ce650b3ee6eb9ac92bf779e53fe3fe56a8df4e64d03d1648f61938a2ba3377d99e21db6481ab5f9ecd5ee590cc7f9f776349b2c0c7ab89ebadfbffcf522c517515270bdceaaa43944d86e2ed6f5d4f806bf173810338b101e5b46872384abe9e0ff0c48ab6d67fe64e91544554a6cc8685050177294e629bb5aa8d8b9c4bb18196f45724a97b673aecb4db0b8d5768d9cac9a76e254ebcf9646cfc11514175593cfbb70e0bde21d34e2719f4f5e545d19fc067881cb01ebba62a7d05e4e1448d947b0b365db77f6e850b5695581760616950a3cf15c86005bc1752eabc952e78c71bda3ff2aef304fc01770c6292b31dfb9589d9ce744b55014e0246382a21ab5e4c64486050875cbe27acf2957b0b42c6fc6817a3f983a15cbd40c15fae3f4f32fee37689579a38e6d74b1120760b43b247b6fb5ed22a20b72b24b5ba5167d2aa542db7540f997ba72f0a3659b9a4a3eb51e76c8b8524ce02018b4af1f3a9fc2420fb52cb5436d7469930c364dd053498caba3b7fb40c9c8b6fb214da6d7e4ac3d3b52870b4f014869cb66c335db77d0ff814c71974c97c44ce01683b810fe2ba6cf25d3e96f88f43b570d800a515d8b0e9a356c41f8e867f3422115d554c515800114c8a0065225efa7c7fc4e49a39c2626150ee58860e46429abf4926f8197bb21b107a3c015ef5071d9fbf9f53fe965318b5db21c61f44f9da07708a1d4e27167cffd1a7507b05f09cafcdd610302daa37ee1d0caced96156ded284ed8380fd97a8567fbbea1229a5916e707c3bdd35471553029c0e04101464dc25958e05f3cc895126cb4924bcf487752680f72910cd60e60dc60b5b15f824935fb4995a44cd425e4fad2c3194b2e33748e2c70284b8e21644ce1291121364a1f693f4a08038a7f2e9cf2a8b49395ee4c124e36636739b20042daef3147160a8d05af5e8d367051881f9d7c8c40fa23cc4f220e904c8dd3c682feda25bfee0c8ca75f5ebc296b6c2b453e01d93794f05b240be0f620d4ed020ec0cef57f0b203bf739960c2bea303a27720d8df524638558968f7a773b80b7264cb18b7923393a6f39fc4f7223f160ccffe098c72efce8d2b76ffff6505b10b2c7ad33ef1d794d91a55ad170f5ab43134a069c20da9d4a22419230f3624605c59d7652caf9827a13867a0f7e126f46a86f2f044763f2637800b6b4264192fa06e864cfd13be5a9add8da412a8492159350732bafef835e86778b746d128fb153c350a27e247890d949b926694be4da24f1f19dab7a0ac8f626c4e4ba70b430c0a53b0f660aec2b84b4fd56a7a5dc827c6691276febb83a6dcb5d18dcf0f183db3f5a2c3cfe1dd81185c017078c6922e7e2f207dcbba08bbbc6651c6e529ee931a529a6b0d654a63e5cb782125421b3c2996f26ee59a2f10b848d457c2e56a0871c4ce8ed32f0c44b3743bb5fedd2ada06f3ee1b8dd48515e0fc668a2f37727565d04d9c8d449f3749c3260ca98982220dfb6a2057b62a24082a5b58a8e556c33903b5df3246bb7777c08d09b7e4408b1101df967e24ce63e665af41d7b3aa694ca8fd66f4143905463b933ac92742fb243e2656f9c414918a17964651ccc929a4b3b3094c0afa9ef10786181740ef8f34316bde9c0707fe5b1fd051e8d3269e64fb3dfb3f5569202b200888f65b1506343570d7275407c2f7e0455a95611012a1b27d71f1daf1caee09ba00a7fd8beb7f5e751c48dd890953366778150799d5032e677b4700c4810a10f8331a76c9d334d50cb872270e320f90c1963bcbf623f7a01ad867a138e7d4a7985dac70383bceebf45bb17467527e2350222041511def1a70c5ad568749cbb5b4f7a08c5bf0be0d47a03706682c4d833773f8b77e047b28a6a251fb4df10a5a22ee3742e79f8372d26fd4b70ed445a23e9b8dddbc0165c737ec2eb10fd4bafb673350fff583c6bd4e8f4771e15cc2e1f9f6b15b878befa847a3f00c1c8fd60b317ae5aea55e3edf281fb14d7084b0d46294e99bee6dd6966634003a86a61ebfd2293b78dd586e3822079a85d3898e436c8b30c52b0f359a38f08eb40320b8eeac2851b45aef2227598b42fe030ee3da0ac8e03aa9ade485a3ef7470cf230b39d38e26d72bde485dcf7a0b8c7c7378749200a0e115078e422b4a1a573bb4f991428357d913c3209993fa29a6e2567cc4d0f7cda2a1a230df4f3025a1ac5d9462725ce3860334ca053ea0419ea73fb2b5111f743af1fd024ad189dc0dcbb6d5f45fec49ee6b0f57896e5f8ba2f813a349943f2624898864a306b0b8e5fe89f2c4fe3d98b8c1b02a06c51e8fa00709aa6f016b8ed43d795c16c2e4d080af40e4bf29fe953057d25a5d45e802ef82b12aa19707b86c90be1e32b80302ee0f4db92f64b5803da5a440e04785d61aa623dbc0e5141b7d7a8ae2adaf96b0d0f2b41dd58115e61422120382c2668a6935746ab3e83e651263fc0a25a3d8c24e1632d93a6f38f3123a6830cf5c6d96ed0efdf0fc3326b5742b2a0100ac7ce8ce20c81540e040ead34d9b8cb6c9c1f7361172344282778330df2dc1eabf3ee7c30e82e7294f4cf06a7529a843c5c29cb74939446da25582148154343bb8d31ae40db3a626149d2120a32e6115ca041434469673025bdad4b3b740bac93ec1c6ff93ab4752cf45d68961005c360671239c5b4c40b4ccb27909ebd7b0fb6c158d0aac22fa8e15b0f18ac2ebb820c98471c713cbecf12a0d9b7a69c713b7a2ab8d13ea4cc12a6cb3cb68ddbe33d8597e5d2db52feb028748a4e79919fd76e938c8a9b9ceee01bc9cdceb4fe61121065224a21649e3870584c6ec49b9d520444ae8b84a850d861d540c04bb9abc504bf1ce46396e30ae1dbdd153833b12ab0832a6039a0d95abe9ac6085735118a0e3e7b9847d13986d7cb1577db8d90c72bdb918a251c99c22d0b7adc4ac58dbc21dc8bf809a7f76e30b9f2453e64ca2d83e921d5c5dddbc9d89aa6a429bf6b74760da6bceead2304ef8e042a169921c8eb05fea45b920a6cca495af57fe5126ef4a8ba8b0921bbdc1bf97837281849d61d9b4ed1d165a6da2572c9903ece5a2077ff1eaf88b65504d6d1662e40d7fc2e5220ccbe849920e007a3eabc67a1eba5bee90d024ea173fcf8c88e816cbfc8ba0692fba74c62fe610f37ddba3e7ac42288b6ba7af8adc0edff460dffa34b6a1c2c6e3eb4dfabd1c7b786d60a4874c31e86e37fde635a573f3e7f982fb941b131690ac8ccf53f5a200c5a805c1dde1ac24df0e36486a011486a9031ec16d1ca82841d998db675348160446958f078c02d4b87f679f30c23a7364e79348492dc44bc2559ea688d8f672821c25b9b67507afc2ac5ea1b8908fad724c3a7cc9db3d3e41c2279db28eab62aa92a7c084e3d82caf32b58c8eb15d401cdc1d89a205c485aeb6e808ab20f41a0e0f34ac914da819e010a50322e2dd79ed2b7138e9d5e57d97d068d6ecf3cb611e7098882e4901be81fb418fa12de9d75e0e36776524203080e76f1cbf3a500d762a241ee4b70961f6930c4b685a0af8f1ff39fc1a5fbb78ff732a4cad616dca70ddd2319a3c430556b5332c07ba93187af16886af2b04811bb13f1b5eadb6d0093e5905747eaa88715b63a2ba1a53a52b7ac6981f0a5da0201595ed7929f9a6605653773cea4b610307f1db405e2f6a92016886f94e3fa3424eb48d52f7d748dc20618f9323a7d94caee606b4db321a30d0052390991d1e177424bd54b7a33a6b59b605896f06816f8046e20bd5163081a13e3d1c9339ed40211529a85cb32f3af371bd54f565b7e67d3619689700488bebd0908edd90e1341ff4c2a22bddf21acfb36c3a51a0434292d6265194d42710932cd9c9f098051606618cd251d69321bad881e71252ed5c4918ecc204bdbdaa52997840c3b1164fb11ec451048ecaa2c7c9b414082ecc56f5d2fe40510bb588cf75e9145269a2ecfcc5dae47b89a1b71c10689dd213a0b141ae9964cefb20ef11bbb5505fd444dbdada8cf4c7de87ca5306404d1348fdf28d043d4acecdc481c2f8c00f6549ff24a44167d28fa95c6d4d30f2160ec2995c00742c3927f77ae195c4c04e733c4c77f960d122ae2de5b945a13faa54730a1d66cf0fc974daf790a8e72e9d1fddc53860329737ffcfa936795141e9610ed0c496a94c9cb1991c1b358cf3f00ead484241ed12abbbf7ae85895b8b725bfbbbfbef97aa1fcfe128bd354ec7468fadecabf02784504295703a2b3376dc8a8b11db7fae9186c862dc32201f8d09312e15cca780ff4f9102801bf37bfb651655d8e1c57800b88a3f6ebba091b62b354e3784fc17e98af12c7bbe04af064d450c49ceabcb219e1d1f030df7012d70d107e7effa5741d9013606139fe61f608f04605560375725fa5b71e4a8e6041ee2ea825a1a0bb1ab88b05eb52999928ca1e292807e0666c111466725fc94e05a12eb446a76f8cc2ea32e000a6619b8482b4f586fcd42abb9faa776916f800db05889c0a46d11c21c84ccaf651afb36d96afc3881238ad43d171309388c2410fb4af38c51af15e763a2c92cd3e295e927134bec09cb4682c69d40e0811e3cbe6445d42cc44bc0f98f1442a86d861e1318e7a610ad716af82f0347e046e789bf14af7580e05d986f1f6c22d8a1e461a17a17f2d9164fe948a2e4a67c1c5bd814e9ebf7879899468d37fa76ccde8f1f6e2f69f896b0f53d9ca978a40fa105bf1ed5e8f69622bc95abf57bcc0223e514422fe73e98306e904ea482ef0bcc6acdccf182ac8c4959ab218c229ae3d0c1030dc9c1e6b7fe1bee71566b51fb3ff86c77bdceb8f842b6578e567cb65a13adbef110b0fd720b1c3c2905c25c8b2028b704a54bf05d65d6703de89b2de48ce50f1596315391195f26ae8acbda641419ea518b8e8494b86d46f5999d1e09364a6daaf2c3249d8e387a56b85d07bc3e44ef9b7bd3e2eee033e9cfabbeac877035e3dc74ab082ba300bea6b60bcdce4a8e9ef238387beb6bf2b87a29dce11a4f0345a4e970573844338d3bc514065a9fdd71afea1c5df6be2211def5b8d81095649c92988b087e29148876410a82cf19aa46b72f45e6939c8637c135ce0faeeb392317301cf245650942c76df51b60205fb0cb5f1b9f27b0f428062d474f17d8c47e1700ddcf50111238113c162c76257c22be1e1b8e749fb9110028a82786a3363904e39cc55bd122bab3a5d54620239009015278ac6069e5596e0e1f827fe9e8b08a1b95406417eee750aae248f5091db7579c01f0dfdd807ba8253a9264eb496c4e5311fd145ea3cf99f842365bf78ee2187dae4ff4e967de762a6428080edbb0bbd6c928174e9c902658a8ba8201d8500389e71a8f6b85c3378de1753a7584cbaa1a504ecf6dac39453b5002619b1368db1dbba695967d3d275660d42a94e999c2ced324248ce0f1f394319e86060476bfe2e9798cced5d456feb8a0784bceb3a8a02b4fef9a38cd71bbde86dee3b15634bcdd2c689537c1250e1818dd2473869a3d08fdc1f3e17f8ce5d557f00b746dcb68a275c328a3cb76e26ebd8dfe4958bca2ea0e154cab01c206cbc0ee7e7a74e1fcf92d27e94637132a71f8d32c0abf772603cf6b482420ce3bb84d2e704e959af3bb44c4d5f2f672e50ecfef5af4257ee03172e18b538c6cf09d9f5daf7290afc7d0a6a21b06ec345b1f1aa460f768477d1318fce64c0eb61f96439869e6d67c5e36ba6b24bf287490c9b7594a25efe97ea5b24c256a5ba921eb46ecb436ec0dd24ff20a6bf49431f3197c754ed94959e2a5f10d24b0225c82bdb7cd6d00ae3be47d377fc592c2ed8edd7e9c16b7b08f8ab8f2118300e1c2f590c2fad3ddfab3634184d9c6dc77f4f6d621152f749ef010d2d386edebb1c4f0d84607b8c0b802ef76278c749fdc8bfef34289cbd0607605ead349320d77d4de66dbfcc50ad0960ceeba5583fc5357fed5906c960b04cc3d5d01dec2b3250ee02f833a068af6d28987378b002be7fd24cceaf36a43e046acc5a2862eb0ba4d1fba305b9a5c0e256026c431e837f5f6551df717a4a8e230bc96148a242d9aee4eb2d832dfa10cea6e6c0d905453841ca91e2a742959aa02f57426bba7e62917401f4a50a5841d4a2733057c108f4a5d433a75b6afded5d5152a8340e49ca6e368d5589007e20b6e2521bab77f1840ddcfdeeac47d7bd1874ed039d9c770404e1f68f490ddeaa5b484d09f80dea4948230f8babfe9388f66434860c34d57f6ae13354fd6f1796efd20700f63331e83abca4fff4a3ddc083a200b7849491c568933ab4a36bd024f8d64b5a70861fac082f154829aeb5b83e89040c0750fc200ea076f68384b0d8b4c40b61ccbf466fc3d4e7242157471a69421207b1648dde3cf19350a72bbc5bf1070d119d80f94cdef62e9d51bd6c1e5103ca7285d7015405f0a6b72516b54aef4ebfde999805d1d2029e7ac80c86bf4e77a2d166e72d4dcd6d94413b4d55d70e8b2e45f13a5fca1e148da8b414cfe061e050b30d1ab1c8151ebf741e59dcc425d1fd2a8e301f041f2e7428bf07d9e49a40edb06259a7728d7daa65b8bb5526060a2c20a2c0143fef1550a49c89843e9c7a07b466da2ffa82bfc0a6ff1377fabcc97a730177b2d1182857d9a51ce1328c868991c802dec05bc3b81636c260a08da31853d4a2cf02d1a1b5fb81d426ed0a07d7a3b3c2ae6c7acf264965eddec4776015a6c5d1655d1170d81ee433fdd08802d8e76024eda0e5f13017a43aa86179176a9bd0b2925f66d6c4d6a2882d9e4fb2cf1d466f673c76c4f5bf5aba274ad623f1e20db989847523330d89d5ab26f986a451d36d0803b569674e882234bb4d41694f2068409f44aa7b99493dafae5ba74692977352e605275ea78dc82be1ba41402c08071a3bc2c4aa17d3bce1c58c2cbd5b424d498a090f526ec0793ddd0807023c5cb5a326aff1b35446b91d026670e94231510fc3af02107a06a48e1f5fa33a603dbcebaed6e57d35836e8296da3c7866b910b32f8d0cbdbf35eab5ba1e4a5f6fef7856ca5a47b3930373b2760d0c5dec3d3952292e5ea00f75b568db8b47e6e39bf283604503d735c3449885685f80b5830074cd91dfa61adea43fc402f45af073a9af08c325d2d4beaac68cef0226dced70cdf05a45d5dec70ffa389612485291e567168633abdf8deaf96cbb3982d5447882466ea2f56e0b9772ad63c4ab8a6fa8639e6204d79c4413122b9ec3cd8313d8651711b7e0466aec3617fff0bcc1069c2dccc02e37d71888291a459a7197af0b9fdfad8618f13efd8b2f1f7bfbde6df6af2e720d87037270e2a69342dfb8434bf2ddd016b2c17cd109a615a76e0b7337b4e29b4a4f3d39508532aac180cbad20136160917f59dcdb705dade34644b8d2247f7014c986fa734f5a88527fe3b0fa6f68baef49e0920bd65aa81916a7a074ea553fbd083ea9929db2100fc8ec830fdd09620546f46f136d8c78ea9ed22b2e30c982e2e53ce1892be488012c26d56ae01d407557103ca68e042c58aaefd47490f3e370d5c30ec2ae71bf83bdd32e9b9a4ea274fd8a305d5b93dcf95b35d48fb94a3475750491cb8991e4ee812445eace2ade8c43f90d242998c0b0be9121d1c814ea3037414e3a7bdea024365f0388162d10c46bd64320081353584d5af7b136d50992679a2e961e047a0d218589911e4b2bc3267be1d51c92fa87c6bad9b120d94ebc4176a466efe43eeecaeb07122eecd2101406d6723770b5712bd40f1026611a8cf13ab0c47b656c9ebf6dc9906dd4adccc6ec9bc33141585392be1a15cce1176eb50fec0c34f5964a1d8f03c8584662a9427e686272a3311d2de9ba91d597afcaafcbad2344018c76b81ff4f189d1aa111363ee41723d0d6f5c7c796cdaa35348da99b3131073cd1c27c8d247dfd5c2491d9556d2e508067aa79840d23da9a3cae4848e439299349c9065aca89c946eb0c1633d23bc39c0b22e129d0968438aeefab9b6ac44354232467ec2a746547c38a5b5fe7ea69e02e5f75d171183442e5cd77531ea87b6c59377835a13db304e303f89670eff7edc49bcd23e267f1e49995591ac837c4c2df656a8c69934487e23f1a5f6287eeac1b91510164765ffc8cbf801fdaa2499117c95c589bcd21fb0a24614b347cbbf2caa967a44fa9f09dea4d40fe16b1100f546e2139cbd9f51b725accaab290df90a0726318521a4f0a79423ace9cb3ee7f7555dcb8deeea44c241274d92bdac33300350881ad34134d3aeaa248536447851763ce602a190e11a517e8a3bcb89a2e0ad6a6ea511c1f8c3962b0bb12f5445bf566b69e9c6c23e35814ab142276562e7951979ce3f01572c1c2c54ccc2ae5a3c21a1ae7f8675091fd4e13d855fbbb9831ee4800a161d162679a953cbeb90951e6cc7ac547c2fd2123ef8d4ef3b76fc775c2021fb1af66d4b7d216b56725121e5104568aa551ce7534f5bbe4d5443162d4a8b14b9759ae55fbc11a29c444f9f4e81106be4393c4e261e2d2526ad7c2501e1e69bfb9578ad6c690f1ac8925a0bdf5801da121eebf38f52923603667a707b6e1b3d7be49a58a3eedcf4eb08b15c57e2b3d95cf4e137ed809c767f596eb589a6997d0e7d0e684a7fb84eac592f44751b0ad5bbb0b971ad8bec6a0d6e20f323a6f2b8f56bdf19b925506ed41612f48ecd7cf5da55ed69b8bb4a1c01e063a86caff354ab61be810eae448e6efef4a870495c5bcae7157863424be8249e7b08bba4bebe83ce5ed519a20f12ef07237fefcfb5bed0b60c321bf6640392ee2948391b8aa61f17ac230438d3c16323bb3f96bac3146315948f3db9e90872bc0477e235967606291818b8e7b8377252a5cb8967f5a119251baa90a38f021f40be86b018c84825ffc4b63ec7642ffb0cc52842536def1c84aea85248f0a7a8ed7246ea0a5087b4c5915821c47b9139402ce3eda4729a5a27caa98f17a53d9ba66eb9c52b217fca1a670238007ce5abd3c9c228c86e9878343207306562b09f0057c729f2632762c088d0dfdb47888a4e8c6010edcc91dfe19f9158cde38a59593aac8ac3f7a0263718b174d1daafcd47bef94c2832eed10286313cf9605ee5affb8ef5f434454e943cc892d2d6d1582191b4a5a3b42577a964a2f65b4ce9a8ecad6934ab6beb6947900fc552f8740de032a96656dd133ced765d870066e59d0376f9ece31c9f7ed75f0dd3fd1d77fde4ac33919568834039bccca041fec9ecb8cb2e9180a827c900671948186c080a81a8fda486625a1fab2cc714fa2c661e932a45ab3a43be7b6e6096404f57af64d6fee250561f3bacc2d458097505e3dbc35de3627d6217d7a4cc4f273e45a0b14b5cd2a03ce906043d301d1cda15d503bbd586c59a56459b2c1491635173398b3a513dae75e0c52795c41d898ee20aea09fe89c61a6c68422d653c395ec6d58630b1efa0070e9608412a0a7c5024358acf1efee5657349d199a83165585e3331b348132cf798fbee3f6231e87548ca676e453b788bf44153d1a6c1a7608641144f9b5b722176d6f481cf97ded6c6372129d8b617326a82778e7fddc0a54dede8227f30d0f8cdc0524c51432884d0d04ad363e98c4eaa8ea628ba27a09773bc26eaf5fe009328cd8efc3f2ce01f0cf00a11381e0a3f4115f099318990edb8a93e1b5a4de83f065ad5705ca999dd28bea6d1aaf83662c95586f41d7ea22f027469439b3a054accec70900dab3e129edc516b1a8bc00ab5222d9f65abbc71f4fb9964936ce57406f91f8ea79b6c9217714e4f7ce71ce15460245c250437648f0d829ad18d1f639be8485331e449b4022cd2ab5d78139333a09343ea92bde12cbd9948892e83af1a654a23b2ea1f0bf60246329f69a5fc95e7f2b1da15d61bba57cbfcecb266e9cc95a0783cf1a932d857889872d9ca07870aec888ebcda1e69e34c4c1bcf5e8c479afed6b21eb56e934ad31423b6c0ff8ea5d6bd589a8a1308547835d6d37e0c907c855eb947c55f3470e2a6b82ed1db3765ac2a9c5274643c6cc632839ad777516bf9d60cfc548f04d85cba58929275f4ae5012a642f55cf51ff0bcf7d55a871fb210459d71190e0c0578626232b398c5ac8645b2621605fb4064d0e564f0c4b02f7609ce437e22ff76b5389929066b9495c247e224fc193b0193f673153710f18de535382a046dcbef7cfec178ad31ae930cd9aeb37b72e1945d670b7b82541130db6e72624b0114780663928feb660aaf4d88909e51b58bcaa5942572108f874dde98c61ebef640beef50b48bf095e318b3992a7a9b74b0a49c239cb208daf6222760731d6ed3590aeb80db310ffd01ac05f42b042aeafc78a2643b729d838ed1a73efc9c2607c42d491864cf4c7f96f26c30ccdcf185c386bebb80d6d0529edbccb38b9bf62209fa3cf1a6c680dda708527f21f7313bf873879cf00b64647feffe13dbff11c6e33341529787ec6fd0032156a6f262d4edec3229fb95aa21284e603c12f6eea5d6b0b4c7ae274b5267b22830e74a09f11db7b36c6c06313fe27b1fc93cbc48221eff618699a84141fcbe8a73c71151ee37a1f8ee88e010c2d06e34bc4871b95124f6864110eb79e14cbbb216d3ac8850ab5644c35a56c0c28bace3b298316233f90c080c2f526194ec3ad8f2fa6900e8eb91f14280802188b9574cd00cb9915a4d31ad0fea384327bf34c1cb5320fcd870c01d1721bce921b46ea0089c3db8ccf384638187170978616cf2b89139c524f4e459b6da178161aa76448993a69c3287602bd9eb4ed937a3062243b3376abd5d677e46a942ec598c522acd08d3a71a7afc22b71c70d32d5c25e4b577edd2ca2987d6af79f10e0f295bf05895bff5f388811e9e758a95ff120b5c3121d98bccbbf9d8eabadb9327a27e7cd1414455fd54e2b4b7583fbbc61739e3f2a85ba0c417b9519fbf5f6d38943b5b6b6d5d7c61b8a2029c5669dec1cecf982c1761385571b99198736ca2ea59a0a5164dd7bb40a0640bc3403a77b5e08cb6176540563f53c1e6316098082093638bd8f4eaa97d2bb3d4dfde2b637f1f0aafdbc6b6715c15eff9b8e7c50636f2319e2e94da17a9f86c878049ac36c287420c870b7100e0633cb31629ddd30b3deaa88e07a732a0c34620cdc8accc40e891dba94b2e00e4612336bb5b2eec19b44e656638fe821e3f0f4e10614bf341187994982a3d532c358e792e4582e55a908eeeb0d7ab872b51938c941f518ca825cc374beafc1a4a820ca87138d0e23add462fa33456fb46244d9a1018670fcb1d330fee58ba7afb382839d91abb53162cfd9b13a269ccbe79704801c00105edfe8d65fde1c3e53f0131df26d8f9580338a4566f4ea9411039d0495b8e5bb5144464d1abcbabc20c27f5cf2cd2f474a92b91660948b02ba202cd525b718e6739e61eddec530e11d8728962e1bb87cf521bee800aeb3681ed89fef6f5e43f7d9c14c39cb283a2833db7e8a2b9e0bf747f9b62d47c11ec79c6dccb431d059000abf338c3ae1e7892cd004e899ded6e494c2b9995da58c6049f100fe85bde0d13d6fc13051d1b1d1b3274e0e76582a6b98bf93ff9191e7f55a82828d74c091e5d59ab89d374f1d27d64bc9c7d9afeea8a166ed783831efd4a0b33a4728bbc742fd9c69786e92ea0e29576afbceb8fb34c6de35ecee98ea4aed0b224559368b144a9cf2f49d5ab576b7021ba95eda525a27a6a69ded7fa540f3ade5e5989dd5d81b7ee7cf9b946ef074fa51f66aa88264ad14159ca1051d54dc083dffd4c692ee2f7ea9127624e237fd01c4a764d88111307f8b039e2a56756c0b30c1290bbb0d68e947b954122ca516ac6f55d741361bd0f12e1b3ad42f9249b14a1d27d73d02b801f54269868924779d1c523d13bf774dbb7d4bee47f92f0a86ff9643d6a86cea1d8178f02055e0e94a98c3c73518ea6729d79788139148bc12ee9427747360d2b58e7dda38995c5c68504ecd68341d47ace3ac2b27f162becc232ece31885537a77e0abc2a3c03c208f58b11898f8b67704d4612363825c8ab78a8ddb11ba562efeb0bf1e813bfa1414fcb73b8e8756bc1d9d7fd260e0a9bece8b93116e00a9e5c47b015388c63c894589f9362827175080e72895e9fcb40fa596132a4d33fe7e2e2315b0320b8062188113b039ef850630474ad1d0ad3a320b15836e0d70ab10e54829d4d5f5154f15b5caaf5579231462aaac12140554f7672307d52f335d32a5c7892f7dbab84a461cafb970a034a88f8f14e6047d63f4a26e0fcd2c578068c9f4a97f940fe3b0fd14cd3086aeead0144dda803944f9be29a33f4329dd7843086052828aa8f74a96df1b1173a6556c4abb716fc6958bee727f3ac0a2acd7638c12cf9ccca1e3bb1bd64172fd4a92cc94cacebe1460b6c07621c059203fe3f46683ac102a7abbb49ce954a9a4cf286bb0cbd8cc85c4ac4b0065ec87d24cc2652b516461af0db165d2f506a54fde88bac5a9f0f179a012220d849d0cea89d810256d089524a16e3b9d3971488ffaa29224873b955bbe775237ace191f8fb4f1e89b3dc2a4d3408d0439f7f8615fda19a08bce4a614bbc4650a5286bfad4d44ba224c0042f8c04fce269c118c70d54e636044db498638224edd402133c7465cf5ce9463c42f2a20065b25c8421601308a6dcbe404bdafbaf0289f88e65565c5d0867000bd512fdceb65bc27f07b04c12ac642b40cb8cc2d206a2e1405f48c25a809f02b00a1407c6b3f0caeff39f684a19351accb5baa597d4f4973b50b8e136c3d9babaaf523188fa431fe0186dd259f9954a75a5130116469bb1007450a0e55c605902b6071ae87102326771f4dbe5fe130adca52d87f89c73023039100a8909b41bbf8faf5cb80af94ac43aa2453cb1dad77d2c6acad955c22c97b67bc630dc2b32051d144db5c12b0c019cc3f00a5381d774e6e8565cee133a881e48227e29ba8e2999be307265942e2fc677fe498b37930a1e8e9ae095d72e42c6cf949203a2f4c905e13d1bfd166ad1991075356340b39a191ab59a3f8c1483c2f49995f1c30e225cc4a6e6cdf887093ed7726244494f5007a757be496f973c444c42e1d55f0508afcdae60976c2cf04f32d42d205433b81a28f15f2109dc966dee7eaaa80a677cd52b225a4e75a443705e33f3a2b12fb68b08837fee121b66bc1488f867e89e8416e8ae78fc804ca911f0325fe49c55ad090d26658a1dcccfdfabd5699dbd409a6a064af1792f6b72e52cd1006b938d4ce9556e60781c68d617e3f4e6ba391fc6c40597b2a4b4bdf62633877c30e781ebd29735f59930d906df1536d2571b263ffce29d2158865034264a7d6c076c673f932a529913f09049379ef7fcbf8ff7b54d3f31ccd63ed12afd701ff8b27c6e5769fcc60485464a1888790a1b0a9bc0bfd9c44b99f35439d81408a1f3ac5b4ac1900dc50265e3fccb0f50a1ae32ed61bca9474b58ed664137b205b9e56937b5a9954fcb266af004e2f42b099006e5291210f74e25506c4232b532705030534352d975af9b44078535048f3ace542dc53b0e46b4eccffbbbc8eaabf10584f802e6ed26fd94010311e40717c0b7ef2c4eab815569f9130109d42b4e22c7b00d0bdeb17c6b67eccc78e2472c242e58016193c9ab366a8cfe0c33c2a4bc0c1740f31195e1f1db2e014796325137c16590aceee36b1568c69c433220fdb625e460604db96e49b4229c13f11b134b8df88b284b1da8b47e2c484cb9039aa704a0e5828424a602171b16236aab34518e40418c94c250500e9bad12979fd5c9a402377245e8db56f7d6f935bf1e004fc9d3bbe48bff001e1c7ef2dbd39edec951e8a2b290fa340c3512567bd0e63980d8321af004188d850a850184c126bc632466972a888d4e0ae5c4d6e20510ee2861b520f6324872b58549452dbcf11e3093af673029b93b8b1b70895d525fda7718175f2b1ebd104afe67ca1266e47a2706cf9d9f20034d33d38a0256fcfd7496e4fdeeab60ed81965241010c15b4f2a4e4ca0df7bd9fad1cda13f91ae8569ebf2a59abb4a71c898237bf63331a52576594eaf4fd5cd1146a1de4cb0f524507eb1a32471e6d13d35082d69c0f0d69ef799cc3cd76a5d2c5d5e3b59b0cfd422bafa723a2479e7bf4f47bb637424752634eb2d9d070dc695e9bbf53099c424a86864dfb6b19dbe0a2129e479cf38873f6943ebd5caf1568f935279a303fd7aed2e28b81b0cba0e45e58f101f05890d02be8185619d1ef4f9e71b6e590b92fee90a152101719f23dfb539d1de5429014dd4131cd50acf68151f32fee2be081ef93af27f4622e661e1f2608977fe6b200101f11f5d220a092090eedc3c4fe918322645aee1988cb4c62cd692c02c809a940437e4e0102ffc493e72b39f3d6fe05b9dcc05a5ccdb389ab3e45bc1b82b152a80a485b8c855b0065669ae0ece7247463e09024b2003a49f42dc206f7d8686a4a9ce87ac163f7468d896c5cb9e12e26a96a6afe8ebe9981a281fc62bb8129e9f5b8ca7b40e44416e44b57c20beb688806ab4ee770fadf602f474309d3119c44d2ad76fbbf0b8c1092f17e57ca26153acadfdfe07ee1802eabb8bc14f4ab481670b9eafb75e98c374d0702d2ffd09f6c6e10421b517f28e833c7ee25eff163b86f65b7919cd83ebde2127edf62bda68be4e0c6734566d03d172ea79a631696808a81b8141d747dd30785003536e2efbfe0a13a798a5440a1478cac8557d72b18e3d993115540612b083efcbabee9cf3e0919d827774a9d34f593b9b2e4933bc673b8590192d3dc2cb02816ee0e4bcaec066565df75e3a393cb918b801f953e0075f456dc7b3edc0764b66b1edea7806227843e662aeb413013902429860d3f1ec0df2ada8342d5de42dfe3aae2bedc4ac18622e543871d513b7468a58bfe5ec034f4186285ddc665001ef1cdeff99f6e481f49bdd4300e99cbf4ad2f1d5a2f73ad7221ded13c9503d6832315b9b5e228328a84a71031d40cd23bb6927f2e6061d31f7c1da3a1396dcfe05b8340e5c800c7be88b903a006e4f80956d3af3f9d6ac1ecf1a8632aa55183fa3b16a620ca69b1b4587934ae944e0010f9403ea0e0c4d9e90e24b70513c1a983c83ec762819fc6c67bc21e8a14af1d3d0b1646e7bbe85d2d05bda16309f63588e8b30a6329046bd17e3ec17b4bf6f706a1e204e7ff316f165cb56b8f23cc293e4c130504db2691b795c731a67e146510887e3820cd530027d1ed61337483c2511992789ab9093bc9b878590b6f578507ea5cfff8319e2555ef3920756ee03ed01cf3285f9e1b7b9d6483c73bf08a50a7d74f389ad8023899af4e7619c67b0927ff7ee2d485a0b1e2c7fa62709eaf8234d430e7c9a73e56982d18b61c07d813688ebea31e34bbcc2581f128b78356e2f37c443041e75f640a0902b79a8ab4fbe2df6bf10ee7e5bc194fd5c8c79728c3d0de07ce9f96c2491502d831d031a727c2a8359f9139389d20219bc0fdbe9a3382f65dde653ecd25b0bdc55bb8b1ee1c986df55bf386d0fa29ce3ae678f372ac035ba4a542c084687bec3ab07f15bbd5eb6cf78565b1ca545b471139a241a9c939602ee52caa5027eb157d52ca3ad38599379e448fc2261dedab3c341be0e6881481b68eea1dbc3e2dec2bcfa613b6ab29090dba70e452fee7cdfe17a795b43eb2c95a69c075266840975109a832b2329682881fdc89e3cd51a50deb4d8003ebd6887e891e56b62ce9cb93251014e504e72f0ea7299cf4e0e6fb386371b4c68bcfcb252fcb6f2e4a929168c4df84f7860096f4a61ba12968857533cd3db8c56392c2e927dd4b68c3f9cd3da77085aa8eb2bdb5b9b026de5c075790ec1748f64c7656a98fd03065ebd7047b3c083990f71d721027d1110c81dcd92249a25423dfbb4ee003bda87521adb4f32ea2a2c4884b66f75adf6681fdaca70cc79654a1baa7ae2673a97f7a4c97cf980bc78631771e4c4ea227591f6f134f93e32e8865db4c5f22ae5e816307b624e3ad42d2566e7256d0a9c58edc010e041471c62d60639c47b407a9f48509befc9183a79885107fc8d8194fcf0c1ed2903b6e9dcd44c6cb00bced63c7b72c78f79b8da11662e36d801672946a0c98aca20af71063fc04578f95be5b1a4a2dea35e38c9605d07b01db15fa7c82237f87120af2d0cc94c97c41be7e9602fb5912660c77b598edbaf67996c36a7051d3be94c94d26ba97220964f055ea766144c4ab9bf7b28025c7a560d7c61593f30c77bb33969a840bf24cc57df3cb4da7e49fb30ce562004b82c28b84f4bf1992465d2f1eaf97e4e710d234e7ea3650f8a9f62253956403c9d8396b094f0b1d509eb4201bed643579b40302cbfba92609f676814513c252d5ab55182264ace920bf687798bff96010384c019556c971464edc926704b2518aecbdc4a42780b61a6c16da43f1e5087b35ed1af700668d227f88008b587d4743b9506ff23f9ce090a313185ff7f5d5e9d4c33b2acf75d813802eea1c227cf8749ede128b4862cb7304e26a6ae055b321411afc03b5788609920a29e431075474741896671fa5d1c0fa7326fecd029a5d0238039bac7e19e858d6d2e5bef61b24f7514f14b15b35ca645ee852a1edda68f0d322a83852b25802c536c821bb340b1eed12aca484b43ce7e19d3d604e0118e49de56abad817508e214c78b40c04b0b8e9740ff668940124f18869b64c674e7e9727864abb1b9593ff059190adb00e513504d5e9bb4cf71323c2c637bda14c3603d7432c4c0f5176176efc5c1cca43cc4de437a1c9ff3fca62f5d1d033fbb379ebd1aed38c25901b69b3b960a910189b1c1f6fe876198fa39372652446138db0f213e1280dd320e70a40bcf2e67815a003431a4c2ae2b52a277d93f9a426f87fce6587e7a91e7ba92d303c283828694dba0521558172c09b8f7d2e62553aa03130230ba6f694f758e7a5243c3034ec3d7e27e346fb57a33b73f4f7cfec09a8fcf5d3a3cc1a6bd6f789b2aeb356435b1ce65bb00feb277adff1e961db1e9ea0805c2413956e1f132312626ed1008edb426c720119503196eafae5a42a1d16b32b9b48573fd7824a775fa595a7b98eebcb432a825952598f0f6a8e58530dc3180712e180380a017079ff862498e68cfa0ff2023392997981c2c7de9b2ce20fbbef281134811a4f14ad4f7e43367dd0f590682e2b90580f324e4439f177e0a983ef86076337975dfc5c3e873366e0329b53a40f82a0c8d26588373f161e6b96af98166f77db16c21bb01887ae075b685cc49dad321411adb1a3586087d987ab05e1bf03de4d92e6cdde0c9315ed0aaada14f8c1697f4f3b2b717b99e8aec6bad870b8ed34c6790e3e74ef6de89e24130050fd5dc1b0c80ff40c71500178d2cce582a2e3e574e794bb009fe4b4e9990966fedb23240bdb621cc1d359ec9678fad4281231d1127bc9ff04ef7f31954aa0d0dfdbb3f2084781f46d8915f23542998a7e7a5eb5d2242f7ea901c0cd089e6e6e2c00ee136ae34909b231dd16666ceb2dd37473aef46aa53db6be50c1b4ecdd86c49e7f09e31f6f8e412c95fa9bdddd5230c871b6c3e9dd3d7c136fdd462555e02c021909e97628cdb90465f0ea881202d0a7292f8e3009f861faabf545ab01c30d73c052b88f6257d7d73b66b465f41fff8325f657eb4c6ac967d44b9e4f4c807414c9b9c0208d7d51e18c44066b725c46674c5aba0bd90abed64615c4209fd0b4815decbe9672610780f5e68931b91ff9611097cf30006c1239908b22763a7175cad4c03a159dc85df41615d952249f8adc766eab5494b2c5ade7e076ac10d9c8169028e1ec4111cd3efdb1d66f743f05b03de08cc201d1a379376ab84a5f04f1706f15767c50dfef24d2cdc303ae1069902f214b0101c5c4428d0d2090aa80f5430c1a3df78e77ca13f9462eb1ba4ee0b23464eb3fa0cead5f8a25cdf1ded8f6853d2a4f173d5683c9b494fa5dbe02f252d2dfaf55133885b66551cf6c7c2f3b28ba04823ab95f3e67a17b6ae4167f8bacbaa6254853b1074c82feb7db8dadcbaa1cc2d1a0e571943140e660bc433274e30f74e26808e12bf78475b0cd6e348a446a518f4033a9944909d62095cadb1db3391fe0e415cf60cb46c822a75d89a2915b063a169729907bdd28e556d348e3bd3be48db5df8d39195c331aa9cd28d9d829f0b45113d6e576e0d5c8202e18c0a35402ffb7e73fd5a7a21884ad04a9fcb97572fcfe915fa0d58aa4211be84d2ae52db15b585d664092c01b576cce4ece5bba8c5495688114a7e07a06673bd16f1dc8d69526d98deb3b491925f53fa50115b3aabf8bbed506294bc69f2b168e8e7b3206496c3b0028cc535a7cdcabf8960a8a102500848f84e0931a23cea3d6b223f3df215a34c36bd5eddd18a1ab16fcbb4b7908988d55eeb889a910248d6edaa635a4e495864f6e16b0c889f7a35b7bd50594c3ba1aa4ac488e91fa6dcf0b662d842104b809074c904bfd67f182e23b142b9cb545da93c65284e95bb5aeca77ff5ad88f1e079e6164ee162fb0f7baed87bd209f1d3e0d2d0423c8a1ecc4852a6a915310fc0e8671bc1f76c8c7f7a6e2b967f782e27867dfae50ee0aded7b4993c8d2de62cc4b8a53ae7a1e4a1f549a7a87dfb9b5a17c07456558b625e2b8f7d55e5e1f420286ac0e69934e0585f4193d0d83d8b69c5c50340f10a80210d560e2a519977377ddd6dc1134bcefdb31adc08fc5bb0e11b4b7765c7ea339bf26e3212e2893653a2c73d4e7541a3c93cbf054e8fd8b10040dbc1b3befc642ab3553ab8b3c77e9152d112acda60cd8503cc5866f98cf09054bf91273d23f28353efe184c3714c8ea3376c4230e4c7685fcb532067685694bd4d97da117a25da4518b58c1b38b46c2bb48356719fbee4985fa9333372ad29c5ed88b5255f6721f5de793465a1b11c15151fb0b7e4762a0742688fdb652089c9df8c35a029f5f3f29f709f8ac07d17feba01d3c4fd2bb531f62fc4aad3032ad0833fc40bf5f5ed9b71766c7a12f195c8382b36239e14ef5642937760cdd18cf1f1ce3e3524dbfb8724e2d156e688ab0fafbda3f7d2303d6ad0c3260cecca7a251b8a728ae01feab538769549df5e49a152e22afabe239542ecaf603b6c6898f6addd142daaec1fa4935e4b3b61bdb02b4abec579d0e82689fc526f993ae4b79c42173ce57d336e04b65f60f812a8d42f8c2fadb2c7d9e359c1e11cf0fc1ec45a70fe39dc66b0cbbde06007daaadc808bbaf40699b758ae30376cfb4854c3caaae07be6427fa27979ab91b31de77ad8d4e4e4d6395035e32d2ace973d9035a5e472679a355a2faa87e454df1a94cd8e18c93d03d8466b4f25f1d1d1aba44dd50a0881042380914221d0e756f6165df5a8554801f29f32ad0a76456fab89dd0e73d73c42736cabef7f3ade05f03b2e6d17d21bf62c9a77b2e858fbe7105e3c2c81fd39309353d22c1735f267a387ce87a4090a1626fc1ba5e3f6ac2d4f7c3a1398b3d8ef40b4594264d81b3cf8946f7c3f5a4acf55ca47a3eaea3e55f4f414a1d550d45721ca188d5eff6277ce891a9b6f3042707f2268d487be8f1c25fb5d143802d94082e7db2a156eedf70fb9ecef150989509750ad7bd9cd74affa39c197431f5d09f2794c21ed438678dc2293b028da4a2ad70441d037b915f740ab5ddf3aadd8a4d9605c72fda563b443ad7f3e0e195fdd1562f2e8f64e093a20f087b74d981e1eb68db6d5f5df51ff25b93e3cf10f9c58754ec0cc998d3689a5fbf343f051de4edd4d8b75cc3cc071a91be96d7c76dc4e2c8cb2250b5cdfbffcb92e51611011fc7c78ce4e890cd0ef13d174be8d06c14c5255dad37d873560a37e70ad9e14710f5e83160451c71cd4ab3b8af992a447e6b9ddac20d415dbb943a085fa45fe88df3a3d76bdec35c6858aa3a749396259b86e8729c4088eed4ed1f3273df158147d293ae2ccb3e0fe6c0a2705bd6ec66ff3838a3dc47d7a7090dc3db645097e2a74dfb33004c1d73c36e9a972a70664c8480caf335a4ed3c77176c8f9b6df5913c4d4b332a59105cf7ba29443aa3a7861448c235a268aa510a07570bdf596f4c70791ea174f1333cddebe340283e66c495407f86d27b643cf22c8d4753daff960b2efa2330e42c3e0ede6c43987c3cfb9c904f7127176793f44bc0ea4df68aa1d49e11543f5c4978a38c767deed8d89574c7d3494c9694922743e11ce98c87c709b3de2659003311421d4d34f95c25319f1bbf4f0d8e197f6442e54eb6869d6fae009c803d626f45818d3d6fdd7ddec4142f4858c035b7ade97902112020d6d3db95232f0e60522e665d1d9820efa7ee5f0b719a87f119850a5cdb5bea323b07de167eccf775ab04923793611f8aa06c7dfc34d8fd55c17860049c9fb070c294325a59534575408648cf9ecc05af13c84f2727adcba6607a9e7afe425322c45208b11229ab43cf0240315f4b21c2958450279d63c73658e5b5e0d5510632a294661cca045b2c230d87847590a631d1d1a9903685184843721027e40134beca144b43c2077f1a66fbe421971760bac6e134b82acc970724654d2c70e3b1be1c229006a2f35727871ec41dd13b96a9ee9edba89e31f0b23f2b0bda8056c6de22068689afd658cfca2ae3cfca1fab2455c135745cae6eec2d4038c90979d1be6546c84edb9c1a56b65cae876893f61474183ee24038386f3dccbf0dd184d83e11c82fb8c984445f89a82d958ce4e9a0c03f18ba2d680583d5e9e287dd78e0561b250fb0ec57b008c36d8432f207c369bf4a3618c51ad68ba0d284f77c6113ea335b1e20e89b397e4ea14ae84cdf8f3d3201b911d3eeeab50787f9b08e890733420c09e210e8166a9d7a0eb0aaffd861ffcb13991e2a66225b5599a365f51f3eefed7947e0c5244fd2c7a119883ab6cd7e74a69d9b136b455bb2f80a01d3d47761563f8f5210c2e1dace2d6eeafdf4234d4c219fc6e1a28270986a3f308ba2a2654ec11bd72576edde36fbcdaeb3d519322355d94aa79d9b8d5689089635bbb1cf0b88f765ff0707bbc67ed73d83ede9b2b745304d54ef52f3f76b9a2f11efa6870317ebd9fbac1856dc79e3fd2836a246eda403b3786e805a36a64540a4ae17e6c14399ef3c2630fe421a2365ae05a33108d538aca3de16e63b64c8e188fc8dc32a63b96d04fa45d61f01449c4b41f6f16ffdc16823a4725f0594e5e5a49fe74ed2aa79d287188ec6b61fe7c4f089a27fe048f225bb7b3adb4a0edc0999950482320ae55823a326f6dc88b67aba8f420098a7756c35f4636107fd5f9a5a868cd5a4b4dc68afb7cb3bc99720ec5a801ac239b127aace9ebf13855b120bcb65061d4b2b9e26aac8c464a86f6bc4039e920a05d3697e063be115458c5e4607370bca2d5ac7e61c05a33c2cc87055b71acb556d5a7f4f41a0a81881b5449467defd7af9e58963e8549a970a7d0c0584c7e25b2eaa9f1b67286d8d8f6d29af87906b267a953979292a3e2eee7a240eae0bea53a20977b0f41eeaf6ffcbfc5457d67de682c2f842a856a912306ab9065eccacd02d07dca6c44f601fae6c21fc8e35ee5949f3c4aedd908ef58fc2b763d2400ef1e2b074a561e1ab8c925bbe9dbebea1a0555e428d836dfaf32638bbe2058b358008008338afc76d2e61db55af785a8dfbec675ca0ba08ffb8450ffb9e89d16eebe0c94c64969156eec8f6be9ecc4acc2a2328fcd4f92ee5abeafde5cecda8a0aa7617c97f701544061f261445eb2f046788e0a50750159c664af1cac1b4e3f0248b284d9541f32cdf042b399e6af23e7155f463967d771254259a19f6ccac7f290c48562e29c6d7d49d13bad66a2ef3e4122c1c5ee1a93b4a5c6677e16dd758fa065338192cdd875555e67ce412afa01fa582199d69c16e02acfb805d56662d888c8926a7a10b4c52bb1a19c87470faf8a78e25ac78ff8121e5c6c22b9d4d50f4ce0c077a33d5bc84707d35a469a062f5b200e06bcb36149ba124cca631433610fbef87cd313ae8cceead58235d0d5c9f3e53ca5e55af954ab8c31c512e146bf9f533da721b112c7689403e94f50625d5290b9a6149fba672032245bff51f345b0900213c3a642aa36f51e47f55434b846367c1828c40426083c3646a3f59c54320835c7f437bf53dc91788aed71455d9c4b1146d7034d86ecf72697a312efa0b350030f6c69510b68fb7c3a958b05c0e3b4b69d4ae48c9f69b5d20e48b835cec609063819128ebb5815234ad78e7c6c6c0c72c9e1c858ca6992cef888ce193ded51b64d39fd9bcc317350d809139d3d38b94ec22ba0457e17aaa4ab327c0d0de3a39c66c1d09c5e10069b6a832840ee451b11d712c2bfdb36cbbd43982d0545860dc0ead34c50fa870f864698d82499e63fb403441484c46a846a0826f19d51fe4422bc8806a17c51bebbd8e028f4f80a5ce2e3ee7508f96b208314ae38663a8183b1d6edc5ad53b11e1c12f7bc95eb5dc0acef65d59761508ab5dce49e4101877d095f2c81c1339ebaae4f769d70bfc52f439d0249a10edb9cce9fd1e3540806caadf581b64e440c4c178c40ab0a280e26b825974c4717d3c31044b57006adf0bb04b8367d06c453b0a4b50237ce0400acf3c11842ce52ec43721417f6eec8803e89fb6cdbc0266736f4e66019b4194c88857456037e46d1c11ef88e9120466e7cdad1c7843b07c5265c81211bead01f681e43faf08eaf20ae7acc7fb7aeb0c5bb60fadb239969de73774418dfa1a6ebd557a1965ed522e9df05a30fac031141fc4ae9d20b46e090d1ea18c4b3dd792dce24950d2a56d496dbef51399b67bc09181e9bb3ea22844a26fdfe7546285d6040cac5b85e47ee9112f09818c71c34941fdf3d4475c68f581cf45541a8d692b7153cb6096c575570148c74767c9bcad8945fe0e9b53fce6ab653971ab11077a51976c8d585f2d7b878b5e591211695b2630ff8b32e26ef2e2a4cf79140bcb70e9d73a284240dd897c20415d4151635ede170c0667e8bcb2ed669b40b100592a43919baf2aeb844b08949228a7964868c450b6c8f5d5ebe58d00dbbab9a588914f962dc2e9ea9bf5e78d4e40dee3f7e50b2b10f5032205c5fce7896c5dc404f87b0e4be683e643d372f43e8d8219dc80d30c47f79632f9b80b3cefbbf78758e408ce914fde8a6a191e3c7c6a182303967d6cbe57eaa0eda4dc9defe6723feeef3142d02c1a4ef3924d0628539fc6a55a35fb21e19bc99d9245b9c8c18fcdcc9b67f3da3395f0a00fb0308e35b5ebc31fbc90dbe611db415f028ba4214f52d21dfcc2cbfec80c93a94ddb59857c048bfc73508395f34d8413cc2bbfffc2859a0c8e53143e2b063fde4a09fa16643df1a8a93401ba4bf2cea7412ba04f613a33dc9f7a5b55ffbf4c094af655acdbc7a41861aafed58b6ef707a28b44c3dcbcee634d846872822c1319332facc5e0f0aff71f70df7c2b5f8878d4f2efc7b9b39594cdeb488d551f3095c7a6b1ba11ab76df476b21336511debae4ad40590d7629a9e985f3a71b725ee18e3b1a2c4f5441ca7f2318e8c7067d2c55bb25216d0303fba3d5eedc622ede91c7de3e134579b9ea832350df9b0f357979d709f1611e56b83c14340b8b991a785d08eae05bea122f6b02bbd2bae3b25a2374a14599faab8f7ce8c080ead4bfa217782ca3eff0f82e283366e0cbfb123a2eba176ff789db69c1f4afcacb078100997c8be6e727504f1ad83e75c220952382bdfcc15f855b10c4c6ac3d7fffad043d9dbe861a183a4cfab9dd66bc7e85944fc0ebaf6c0b397524d65f815f82995569a17c2d945c52ed64fbf5e29f5f4af15003d0c5af9f514b91c9027659fcd633a3f40609099983a71194ed45704f745355be6147396d246a6a7101bd4a2efeac1994abbc2086779b9c038cf0374fb0f2c9a31d82002aac3e02720a6ae67d01a683dc5485ffae2d664b4fba7c25230f1a3089eb4ab1e680038c25ed1dcf06dfd46deae6847d2d24d2ab366eafd82f3c4661c74c7df74120527d1b2871e0f448ba45435ea09f5a558e66ec73c5e4d7f632e8703ea0fd574b8a10786c18ab89c5c1d5cb3f9fb9ddb397d4ee3e71260ad2fd6fd99777eba2b71f001df9bf71f4764e877a3dcae06db4cf46967e9bc40b68ad7f3e394fddbe26185623033b08621553cd0a0598c906a7cc195b8798e052e14d20bb509900956fd3294986793d28274fc460f953b7cd2a2a0a20d2838149000c81e5ab2b7d9f4fe9ee334785716da053b0ac9405bf74dc4d74e641b40bad77bcb24ee80aacdc894bf1b51f87278927bef9e926d9dfb470fca5d340763717b2fc52a1492e372227e39651d7f4fec4d09f62b1afbc60c9d52a51297d5a2384e136ddbab635658b54a1df7131ce498463cafa588ddbbe2b621c468173019adb1cd2e86f0dcad9317d8c03b4e97b0592667a3e7c161bc9465e988613e3c36521455159a910880f1ead3eb00199cdf52e2ac5d627107919cefba6dd1e78ed31d3d33295975077927c0deffb34141b80e57c169df98b6d7a823530b841a3df99fd4c816e8ba75d205401a86e9ba84c08aeafdd8ae643811b335370a3bf1ed63a6286d47f6bf0b7ec0d7545ffc0175bf63d9a9227506f2ca928cf631d3cbf17f76a841277048d9b7dd276ad47048653d8f152f4db7c53ba10d923e0b8041416052e3104390d55209cd9a80385146c8f303d4e3ee387e5d0b0411af93a4723cf971c5a08267cb898af3401943420ad464d7fb1b1b8359ea2af8c192f20a431652d93008e2c7613f8432adc5a9b0a64202684ecbdf7967b4b299394019e0c060db70d1e5616dcfa52c679978517b95a3d4ae95570b56d317af47313dcfdbad2a8434343238299fa3eb1e6ee5cc430cad88c218651571dc1b9e513fd821d4a29a5924a2a252dc29def490dbc1e5659abac32ca28354d522eb474f5fc8eab699aa66951c7dd3ecd5341ea21e8c90f0441ed751f47e712eef79ea799386fc705eda6791c16c2fd27efab69567370d3be4ffbbceffbbeeffbf881abcfd3243841100441105c81a0c7e3f99e821e10f4802008be075c819ea8fd6baf7a386c5ffb62ad79e2811ecee3f94022dcdbbce712aec73d101e06e161fd1f3cf444fd99595caf07edf1d09e77d29e276b66e4a24ccb9a7949ffc99b147e4ce8c93b86abb8072a773b0dcb53fbfa126752ab56b5aaadb41e3daa179ef2be5a7d2bf81ff02da8d54fb55572e1aafbf525cec59e97399ed2b2f769797fb2ccf1b03e98258e87d57a3e8fe7a9eff90e5c7970a62aa70798e5932a6beee135d75f7bcf73587b0ff720c8691c478487f5f35168f53d9aa67d7d1109c4229287dfa6e5cfc30f7cafe3401088e8342f33358f487fa0f75acb03821e8ff620c8719aa6bd275b0fbdf76a2d52bfca1ede81fb795ff5177025edeb964d340eac4f1c55bfd629ba562c74ad351ed60a7e8f1e64b4f72ca759ec710eccd108ba6a9a56b58f55d3aa56b5aa55ad6a55ab5ad5aa56b5adbea669dd5beef3f970d8f31ffc04c7711cc761cf8341bcab9011f99ef33e821cd7e52d3ddb719a8c472ddb96e735d640e5935a6bedc1bd5610041f04c1f955ebd119b54468f0fb683dfb050179ee82bbbd25a97d87f914afb3d86bfc8987d4ba6ba2e8cbecad2c661eba51ea79472a3d7848f3eed12326260cffbfbc4935f778c29d4f5fda44d9ec0b4d750c90ae9cae2fa3eada984984bbe54cce3c25e321953f7e903034b872462ff5fee62f3f7d49e5ebb587e47db466fb32987b4c145d7d352fd9dd3dba2cab54195b73e5ef1eb4888794fb8f6d595aff8a48e07b158b3cd4de62d2b51d883792cde3b66fdbde5bb4fb9a41215da61e7e3957f0ed57bffb5a3ff0c3e05b5c1fc41febb3d55af0ebc123c243ba1da6a9c36e8fa992b339658f297bccbc03573b12b9d02fb0f44bf565ab89b556f4a8e228fa5b70d185a64e43bf0719bb7d5cb75289064d6ba595d6590f9c1e3d7a545a69edb171b6daba69d5652518a534c696add5e8f9f9dec3711c4729a5546eee79dff0feb2e7529d2db4d8428b4a63a4da09eea74926266ac6e46b1f33b5506befa136c377dc9f159c91a5ce963af19b504c94d49972078a39e3ac8a87fec48937f1b015cbd8f3317c60d000836f53356510515b9eae3d5d7426739e2fa853d0f3412beeeeee5e90fb2e2b1547c95ad147a4e0aa5259c95c651e7aa1e36115eeae323d5f47d79755b2341a4fd5259eda1e8c3ebe2e3cb32e24cc7ccf83983699853eef33d4859e54266577c626e8437853146cea92426209ae42a177bca1003d12aa43a1d14b7025aa9ef71877f362bd7f8af14ef78c373dcdbb94e5d7fab95772dbcbcd6312b23df741b6e73c1bf5cd3d68c67b46efc520a1afefc52262babe8c1be3bd0a825fa1f0bc3fe7f9edebc7e4c9409468cf6f9ee73309f1fce78378fef379fef39f4ca1d0dbe69e65abe0e8294864c66fd9c88cf7642332be3e8791e03d2353190ffa090e09099191e32923993ac6675aca48a6bef76fbd95abb7724e6badb592eae609bdc7f3a40a45cd4e2ecdf23d5088bfe76526cb3bc5944463dfe7f3b69ffc799697f841341b21bde71d1c1212427a0f0785a69e578ef4c946e87bdefbbcacdc96398a3d4fc2517b5c57181f4d406825f483c8a755d2cc91f2ae427b1e04227932e9493804036f2234e859f0864283bece3c55abf8075c8d3cf4151432d2a1261ece4a29a594d24aa9a43397a742597b486b793843bfb596deb095524a5969084b2d29165cfea9aab3594c6be2a9953c05d52dcde529293508f4a0ff3cb53de83de00a443b2454cb28a21025dadba44b5aab3f955fab9492d65aa5e6788adbc0957f9d4d9584d5d98dc5622c4fed49c3c453f299f0d0dfa50e8da77cc7539f2f3cf5b121fed068d210539e33c81f5aab0c32c58d21fea8333044c7f12f441ff305f1653e8d1bc860bf1d97fe075c39d1f92639e9919faf9f6a631305ae5c76679ef27c9e107f380e13628acb42fe982e24c8d4f63fa4ce1062ca7f3e8dc91f332661a810a28f29047a8428395844b9df070402814020100804028140201008040281402010080402814020181fcdfcede33c1fad55672f70d51965a994a552964a592a65a994a552964a592a65a994a552964a592a65a994a552964a592a65a994a552964a592a65a994a552964a592a65a994a552964a596a65a9e0f781f51d874a8152c171a8119ea34fd0f3379a859e3f5db4095a8726410b21faa045882f31f983622161e66ba15d097afe2775686881068d1959983143061664c838dd9c4ea62b984c252b944a31aa102306a90a8904830a3060b04c8185652485d14834138956a2b0b212824228047a020874b5b8f7e384cfc7d3048f076402087e36dfe72dc1f3ba2cba8e5302c7592ad66e49d8360d09daa447d075526a84e8634e5a040f113c9fafd69811023fedd3a4bbbbbb7b751c1c1c1c1fb1c8381aa3fe9e8b4bff1ce3bb1d28dd6b76a96df9891c4bdf0483485d9fc63c8505b8aaf904aee88cdd7838ffee78b37363a6f749402023f33e49f72078afc6a3b88a6e6fe258442a34763fcaecef9838b3f46b802beac1605ea6b1899adf71795b9b6f0c0573b8f42bc8447cf19a5b69cd4a155e2b03b670536badd5e9265d6eeed55d7aadb5de006007405728aea6d55a6bad5e6badb56af6bd7eadb5d65a6d75ad6a0f5dba536b06265871a3e6d1b8d375be8140c06df37069fafcd9755df736dbeefbefb5cfc35f92138af7f28f90f49ce144d18fd9c4d84046c5d57d07aeb8efc05547dd1f773c708f1e9270e5dbbafa1e9413e3397d82fe32c8f6d2856c2f7feb1eecde62cf4b1ceae0219d8e59524ef70772f290029199928b2d9aea803f89edfb83d453524a29fda5b4564af06db61e820f66d3fc28c120f4ef97a178ffbda762cc5479d959b0633e0f6912eefc5c739c6d33c4e43323a5f5f33e5c5db525b5d4de9df1deaf26e2461912be8841b8f76448e842d7ef538d7eb66aadb5d65a4b5f8370d94836f2bdf71314a23d97a90b14e23d97ab4bc8f7defb085c9ef26a935af3f6de88f63beed7a4d29687dff6fefb326de223b8da8341b4ffdefb40f03f0d9b84501a9aaaa9a6d1dc6b42a24c7342b8077314730e5f682e8aefb358728420e8e4d0710962e0829e2d4f416932b3508217547274cc82ca8ddeb40582ef79be11a64d1c35e77bff658f7bef376d6923ded3262e4f79b4e52175793869ab0385d0dfcb08f369f0bdeee3f014dfe78143beff3e70c8d4dc7bd2a99c1e4dcb514ccd6525ada99a2dcff3ded39372dbf6a34f7bd43375e9261e4ea969cbc3b96d483ce49e6239e57e048378f71379f869ef2bb8dab62d522cb5b76dff792aef23a411f63c4dd3fef34ca6211d94d1772770e599b40765f49ee4c04f236d2bc155ae82342365fb6f1bf261ef39efb9bafd141150a2a38e010aa1413eedb5f7f0f61cdeb457bf6d7b2f6e1bb51b9d2090edbdfc79a8e9cd7339f9c015a5a34df3e6efe1aa29cde0f71b6de229d3f6ad1a675a2010a96b6b7b8ff7d196a7be283eead1af62a16346607aeebd951abfaf5df638cfcb5cf6b2e779d5f3bcb7a3972cf9a3934c74c8f3ba4e72714546162931b8a29c05575eae5296640c53c9c4d9cf0ef1b2b4524ac981414cd684b7d45e358542a64df3640d29e97758b24a3814030c3d7d2ef49c884acfb343ba2c6df7e07f2fc11821abc5c85b5669bf6f01575fd7454d430f7ee06a7b0ecbaeab21f03d7ce4f358c097200c7005ae500f579eea15d2e73970f579ee43f3076faabdefa3792bf9907f8fc475077e21ceda8f4a4ae997f7912f825e16a27bebf9c7717b943738a40383889e7b998ff73f788afe87d2ff98c4005794abe0cacb3f78f809bdc5210f7ceebdee6b69ee2381fc01b220711b830829c7c8db2d07765b8c97710b3e75158c07f3912f461ec23d984de087fef39ee62dc47b4a84fb8f257fd0e7f217fafd31d19fe82d1824c6d36c2446c83379a58e8bf19e670a715c296faa435e8c904771edbaee3bdd813694a96c75f86391f0cac3c0a367c1df8b3eab691ce7599a577e8b4444565e64e944b221d9766a8b7bca65ef3befb9e78674f92341de92cb26ed2d7dbb916cba7b966f1ff974f7a207c120dc1be9f2961e90c8a7391afa2cf6776da1ba5fc1d143119743dff7fd095c7d1a969ad3dc53225a5d09e1ad448764dc48f73682df7b782ba1d1dd7341bedfb6efcbe00a27ca1da6427bf8c8a757f24782cffff009e1a8bf8f89f6e417c2321e7e3eef81eec7f3f4bd4f7e70dc32dd016d4ddaa2addaaab1daaa3d6a6bb65ab5355b5a2b5465b278cd39ab11344a93681f278a5e0f29d56cad32efe168dbad7878e4601d10fc3c1ca547677079d87868b5d0964b52b3c9088d0326ed352533f4a9946bb3596e8ca8af65171b2b3cd57d09c67253aaa237f602eb786871ce44d9a773b8dd6f1e39b38f75b1f1d08ae0529a3468eb5d2c7547dd3fb2dc8040d0a370411faf4d5c6d44b81b7f3e2e171bfa71d96982bb596e3a9fffc1517f0e0631e999371ddcfd7195601ffb71e229df9f1a6df5efcfeb1345dbffc03cf485b53f4fb47d8d8bbb596e40344bb4fd8b3d1f6d69fb9f87dd0babfbb80fee2cc14a53aca742a92d821b165434e50785f319ffc1d55cb8d0f6ef54b9d8b8e04c15974bb089b27fafdd2e39dafe36848ffd8f134f7dde7adebe7bbe042bc5b47d4ff7f1cc3cb45e151fc29d29b8e04f14dc2373477bf38afb7179426d5d6cb4f554487ba64ffa157713c2dd2f3c725e5853c5bd65b97194e7b57b596eb47d6179687f9ee06e9ca3addd3effb114a6ed7ba56f52cff13f1f971474e29d84f5c10057b4c3dbf391b9c3a30b57c519cb6366dfbe7d8a37ced9a4945aed3e7046cf3375e28bfd928dde2f2cadc12e4b7c913f78285f2a89b03b9a99738245b4a7ad89ea9e824136d27cee6be680f61c94fa76a2ec572c65153db4bf05e14e282d361be901d3b1869220015062ab904ae42655d005b7a19420517fcc35edb7a7a2264912f934763169a2dce5cc16847b64c3d1f5b5185f34e931c61823a9bf6892ed0a2bbc6866aa904201ead27b033972c6736a4565dd2450b620dc48299594d239a787278e3372e6451db4f74011e556a63b2064ac6b24d29d28ed3defed6596f110080f352d03f183875a4abef6da0321a548db8fd15e26a2c038ad9e733a10f4bc53a341e28bf6f40897769f2449fd4eca14556f1adada2dcf1dc4d9b6e36d11941a0f8960d0dd7f4b7331d6a8a10a2eeb052f4a00b31657614fc09a91d2c551183e111db93c65fa7cd42ccffda835552bcffd288aabe4ce28fa1e51d1dc471f61a1b9d11493698f9c686e1b3dd17267467b2f89a44dd8833f0fb90ff72c1cb78d5833dccc96459fe655c741a4f67041a28ef138eaf8994fa1dcd74029569fb780d4db7b710357f36770b7dcf91c9c2f6d12a9822d3c603393a40a18b119d057d18d803523a5fb24d1092c2fe8cc24a962cb990149e926b680d49fdc66f5426803849d79df3bf394b51bfdf95bde5a08ae0c020aa13fb39c790806b95aee78c879a10c9fef45402302100c443355201e44102cbe00e1c69938a3ba3fa15c28770a2b92cee06e4e9684cfa7e38a95332bd854c426b12b5fc5eda266464a076279c88db81f31893e5c733fd2d1dcc80bcdfde80d510582b1d03c2192c270b7a0b92a68ee472588aa184752a22ab4a315686e1483510d484ab844d0dcc738fa016ba2821053a313c4907beebdd109462cd00c36508de6402c10cd86ada6526834f7231a4fcddfb6cd7dced51cd1786a7b6edbb6ffae06c1b807f540aac289e2de0a01099afb28554dd01cf7125645732399e67e149ba851134771ef24f644a6b95114cd719b3762799e1904f310340514f390fb2d83605c00c134f723eead35c2fe88355156ac602ee63c7040449c8ca3e229d173cfedb8a27770c5e2314f999efb1d20576f100c04f394e8b9074df1942973cf3d0be6a878c85d4e3662e221376ae511cbc3b983eb3861f0743aee78ea12f1dfa5ff7214a617e2b9f41ec5df9bfc8be010faa2ffb0119a4d2c4f7f4b134b06226a96ff5ef4a6154bfef2a67f12e1d2d3d29fb057bf1ddc57a985e63ee3acc1f34050104030501040b0a9e28ee0e1641b1024f7f20b57ddf73c720e31e476268a7b3987986ae99da91a8d20ca112bbe704f8f7057debefc8f0443a49d35f0c035b3924913c5bd154b6433d17f9334f71504622abdf65434f752e62167c3c5e07ec48a39a487f12ca2ef8118b1268a7bce8ef2e5b84f9c19b1b6e75a9a1bb934f7718e6afe8110a2241bd0dcff869bfd0b61282e14508e8efa7c58e629d7ffe37eeec82f3ce4966c3eb85bee68ee47ac19472ccd3d279b1cf7de652e1bf9d6c6e950051a351fb6d4281e212641538f0f4d3fd22dd28f3c68da6283c2c4903aa599461d52a545f92347183a238694fab0654f44d1df294da526b30e2e75f0b0d6184f79d6c29850074fd5aba914222a6a205d60424445adbd142c1a49a5340e1e4eaa9960a5eaad7961067aa4f7a7e3143e405d4a59658e21b84298d076cb15c765b0004ab40581e668d450ea9402a8e5a93ae80da53d9f2a3903faf821e87aff5d4c59a1e7ef93d62a4569ea38a4b5740cd29e6b38be413bbebafb240e01417f986af73ec7d3660a3bc59da2f3e2d498441f53477b4254c5306ca10a7abe26256a25882a4a52c22542ec0776053706b1067a6ab18992992acd89cd132dca0f9ec622c1ad1988b9833b6b17f4bd7e51592d23fe1a130f67ddf1b0daafb6d668acfaadab6b7c5bb1c6d298448d89a7fce9f42ab8a254a3a93a3bd7351613d79af8ad35fb51daf39bae54c70b2d07ad61ab277575a1733a5d71cc02270cdab147976a8db6a32ce6e116ee7e29dd435d94355d966ada6be0ca751493baa64a4799cbb5a3ccc5816258ad6edfc793c9a8c51894474ca5f686ded09b2806f0382d5ae7458fbb17048b9033323fb8ddd39be8238e20faf852dadbadb1a4fd4c15e8a7f57eaa40996221a2e65f2f588f0c69f07828bd892ff3e98dad1fede4f9b08c2feeddafc3d1e35390b47f88c280c63c84c1fc1cbb9ec1a5efad7c157fde31f8f2775c5ca9d424c497195fe67b703d427c992f637cf9342b58331647add5587ca9322bb06079aa5e11c3f9ddae5a70d824657b25339e43c9b566a2e66ba2aa944b5bd66a9af6165c692d2b337f46aa284e1324bd8953a03a310b1a138dc5d2a6f86f7a23f383169b0feed658acf9d6de3b6bbc3ea9442217bafe54e9c8048d05198da5d5485b53894651672089ea576133870e5e5a772be89c48a60622a7a01375a28efc2dbcf4f6eed2dbbba9a5a707c56e51be4e05b2274bb463937c4e6b7a8be94f0fa4ca03021da52747089e1d247c689aa03f4c3eaeefe3c4c34984bb4bb08febe3b289e94f4dc90b59e1706325d8104a3a5365a299a8c9bd896544be69c947cbdf7d6aa8342d29d11c5c130b8a854d95cd251d1da94b3b5fda29e9680fc57e581e6ef9d3f2704aada4e329599ae2289d92173297601e4e3a84bb9568134db61246e6ad814268f8e3aaf1d4f6f9d468f8e392bf3f2e3da5b73f2da3871a75e22a97c5a6258e9aae8f9369a229e9488d7ac92676f837ee1d5c714f4120f5b5d78ef4404b58784845976c74490b3d4b310fe71597f579b55a2c16abe5a9e855bc7de161140f73a6aa048ba8f9d6de5b82e296601fd807f6797d5e1fd8b6b3c9e2cbb4798b51d9629e8ada447f7f5e9fd7546db12de6c9d962f56949672be99474f4fc12ac04d3b324d3251b3ddf93e3e9c2533a9df61fdcedd1e819ea424f2cf47cfa7979382936b14c4ba60aaeb6829b4d2c1a138d89e5a998f3f258f1657a341345636ad5396a02680a5fd429ccb4a84fc0d99ac0e40cf1e3bef5bd83efdbc729fa38f30ef58e38f3f3d04bd1ca7b21d14ade48f4ca866288a84349f44a8ef989f2dfef11e595fca1fcd957e64d84960f2291de949aa67dd45693524a2aadad14fc32145a466d394ecaa755c8a8c452c7d8a713d7b79c0e3cb464d1f89aaac49b1b172012b8d0fb6a1e9e4775b04129826c250b20e8e4504a29a5f4e36bd308375535c724a93985f2050d2ece0b08b397045bdc7063206136a0a1f162674766534547d91274e2117494d9b4a6b474cc620a4d54828e59f82036638c7186669c317f45a20f59647ea1108e9abb91f1f9a150fcef278eff854231ce39bfd067a70d4236893ea48c829652c2224ac6504b6f8cb557522b9f52ca7dadb552eea7c5bbfbb84927e5e8c7ab0f04998e590001e626d0318b2935fa150a3d170a793114fa59858c88ad3feb7fd3b6e8cdfb4ea41ddf7ed45ff7c58fa4bf8fdff765ef39eebd2fc65008fc888f9042fce9a17bc8f1bcd0f23b4eeae0a11b2ecd4a1c062e573cf0d1f7e8d1639df3a3248257df6140722e0d9c96d25dfaec6d48d2a54b972e7d4a77d79e7ee7c5701e7ea2bee7c52e4741c5120f748066e39e82446cad1ca65fb746b5ead5e974b9c4f318dcce8b3adcf71414fbf25ba4bf17d3ea06c5fef6e04ad32214fb9ea4207d09f398f6abf80e02895f87c4f7afd563a4a010ff88eb3bd6b2844d2d7b74778f8fc4b5e83157520565688ea2aaabcc8c95d2f83462eec6c3a8457f4de3aa4898f89ae61e3f666a352ae59433e51eb85b7e8cf4c8e7550caede4319e21d6ff48c55c716b9b9f70589445ae2a91da3fcc2435f02835b7fcb2f34751a4d97683a57c0842e5c70a3e679d1253d799f1e71f700247af8f3e5fc7892d67377f7777fea2ea5ac5edd024162b4d4645e6cd931dbbfd6de9be00a8afd9984582718e4f5964103509a0f4061672ca62de1c73810aae7e33ce2a82a9d38aabe577be8719af9090fc7205db5d688b47cc97aaad23586bbffb4a4243d94524a29ad2c1fb8644c57ee3970d5d1f7362aa9273f29a51359539fba5870e97be05b29e594de371fa493beed8e78586b7ec27b62aaea575b9053a44a2be35b0b6efd2f173979aabaaacb5970a914544b1a9ef52491a1e09ca912f2fedd6baaf0fb77b0a92ac0fb77b1a91af2fe9dcd5405f1fe5dce5409f1fe1e6baa86787fef355544dedfb3992a22dedfcb99aa22deff634d9501deff7b4dd5018abcff97335508787f90355546bc3ff89aaa23de1fb4992a24de49614c8f681367f126e6449d4fb2644bbae4ebca98b491b39b8fb3b6b7dce52f8779cc6d7c26f31ecf711ddf99acd99aae2040742f24f03c024f23b023007b11ec07c06e002c718ac092082c6b264a3e112c69264afe10988989922f04969928f941e09f28f943f09d28f905c076a2e40bc1533651f28108026485e3445102e8ea837c01fc0800ee215fc5c38e188c8e560ed40d171c1362fcb8a381bb195806eeb4f0ce0677543a59178381597017a58974d08fb62622bcb2bbd7f61a50f7da36ee48d8c7b3bb976c7bcde6b49452de48779f73524a6bad520bc395513a2a1eba8d94b97b37f3b0ab32b5a04e73f7dad070fd77f7d2fe851b97a0851d1b5f24115ff7dc7bf5d3369799eeeeee536ffa469048ad514a29a594bec93eadb5d65aeb102d1bd974aebfa6699aa669da96eba673e5d3e4a822002cd5004ebcae46bafb9c93525a6bfd3c017e68011244fa9c93525a6bd5344df4dfa494d65a354ddbb68dfe476bad9aa66ddb66ad9d5f354ddbb6cd5acb71dc7fdab66dd65a8ee3baae8b1ef5bce9d2f3388f2ce237703584c85b7025e46d01dee3380e88efc09510df79deb7e30e790f5c115144108fe26e6c960b519a8b0d2e44753a3c3a7ca0e74587872387e745c767c70a0040a1951d765c9898951d76887a90522c3048aa1e231e3c90543da8004e3f4aa6530f028811001fa71e0430675e66068dd733327c18c0eb9920ab97e02abfacf19ebb6302fcd00224887c192f024f2744e0f984089e5386c0130b21f00c02c7f8e23fc4bf004270f4d01f08f740a97f31107cc23f601e1efa1300cf685c040f001f4122002c7bc092894b273eb07c12002c7b6089850acb14965578c0720b1e58eec0d20b2cbfc0cec41f06bb130ffd75608fe2a1ff0bf629d8a978e89f03bb16d8ab78e88fc2ce8587fe21f62eb07f81e7120ffd5df064e2a17f0bced83f621b1a3364e093bfc9c318fe940463a63df41ff98b7442fea0fb7939cc65da6d74e7fe7647fbfb6b5ef39c7976b6727476361ad6d6ba81c5643633994c2693c9642c168bc562b15cdbcce572b95caed9bad991b15c72bbd1603199cdec668786d592c96432994cb6cd582c168bc5626db36db6cdb6d936db663732d63673cd6b76341a96d6d25c5a4d8ecc6676830383c16030188c2593c96432998cc562b1582cafc981edc858b3e6c86c66373839ac96ab060683c1603098cceec86432994c9603db91513ae37bce2cebb648aeaf095f15766f483839a18edd81c16030180cb66377ec8e84edc0ec4e9d333b7a4f3bbb37249ccf0975f48e8e9185b187915e3930180c0683edc026e74e5f93d64ce772660e97c3e570395c4e9471db376fa6caced99cc5e83d67d3c99d4d55b49e88b7d531864c23a12f35ed82a8422a99b3c8133c7fcf7d4e4a69adb5829aa669daf669e0b66ddbb6a5e1eed9c2f1578e8e84c576244d1a6c54e2b25ec19b9ab6bd94d24e29a59452fa0f64ae9fa70beebf95f4edace282cbda728af6b7ffe9546bef25d55ca34c21c1b4cbaf584a9ce3e59f94a19094528a5e7e0ed80ae84538471450cef1f2b07ab27a3ef284875e410fc240f8157687c6da7b495a701ad4faf796e7e99b33adbd9744cad1de55fb5b8453f3a7e3a17f7a73c3d57e7f3a4f780884a7a2fe743e3a8ef2ffacacd4d0afd45aab07c2517b524ad08f1e6fef25ae1ab8aa1255b322c2a08f2011d08782c8447c95665a7b2f8904561aed513cf50547335530de9f634d95e9fd3f9ba92abd93aee7bd1326bda9d3221c9d9597f1138ef1265c02e27a05a6f7e394e4c7907923a1240c03b3e07b64ceb4287a2b2b2b5f31eab592b792fa1114c9177dc5f257f0a8caba22aa3f5a91b2aebcc4b5be28175921c29d501272c243077d3329acdd918276221ceddfa713da25aee5900bf79884bbed8edd99aaef0bdf9070e3a73355d1adcefc74b43f092672182bf062cbee01d3d6fba4dcf99f8f29b8dba58ab63f517029d5a4d8a9d24220fe336fea4a82c389b246b8db4bda02bde50b2bfae8becb31be7cdef3c2da1bc8d1d38332f311ead29ef69f77b1b1f64a2f464a29a5524a4a29a5d2dd29a594fa9c93524ae90f28a59482efd55a29a594524a29d5346ddbc055f7f43d4e721c17a957c551f63fd89b79c8232727e7f3bc39e7a4d4f35eadd58750b54fd3683670b5e3529a19697e70bdf07046cb7d74069703815c4d693c9469eb5101571176a7175ef43c4ffaa455dba67be7d6fb6028f53fae97272fac979aa9aa2fac97978b8d8b8d8b162e33cf2bcd26f6c5ea09c47b4a3730884977390a77fe7e61ad362ceefeb8bc12ecf38f2b8a224878d5ebbe7981f7dc8a0bcc59aba615f1323e977809ae9e786f4e7085819f54d0256ad5b4254ef4749a2e4f27ce43c4ebbecea3e04a034f37b0bf829ab681abfd9b028448a2892382f8bcaf822b0e7c3562c1265e3b62db2cb86ae2ed1133e88c19d3e58c199c2708040cf9400d5c2979ed010cf8ed63ad04be8f03570c780e0134280d1ad3250d1a9c6708e8d9c0d591df9cb0df0726e0ed101cb89ac0730ef07c1db84ac07743803ccfe7f958700581b74a80463c4704a8035711f88e89fb791ea6184f9718739e2b43f01f7015855cf21cb8aac0736010a9a1e8be0b4a107c4781f7c095f4c07b1ff8c09504c17f21f889e3023e5a7181115800c97bee2e8508581720c1532b8a58e2091360808af7dcc1953cc112533029c11327588288021a90020d6ca0015b011968a1a0015b01421c91c40a38602489268e48a2829f4d9268e288201080440b943c00090620a08a9fe04ab240024830000143863880eb88130748c010341370c001123004e889784fbae025b882c04b25de7377d9819fe02a023fc1205233f1459e822b2388b83fc37aa0705f3b8f47b4925ef4f969f4b76dce34b5d65acf33ab5c1c135fec1381797868df08dc830b70101eda670217f1d07e04b0121eda1f021ff1d07e02301217960ec072025836f1d03e02b0640096515a80a504b0a4c2022c8fc0b2092c5780a5174db0fc4205d81580bd09f614608f8202ec535ad897c0aec509b0573101762e4a80bd0b26d8bdb002cf2524c093c908f074c2c2f38908f08c12023cb100019e5496e059e503f6a507ec17c14ad88700b62f3b60ff00f69db07f04db1f621f096cff01f695c8b4fd2a6cb4fd20ec2781a3ed1bc1d1430e60fb49b07d21708c2f0db0bf01fb1ab09f0122d846db7f62a6ed5381a3ed632047db9fc27e1134dafe0558da3e12fb16a8d1f6a57869fb0b8869fb51c8b47d28ec5700dba700b6df8572eef815777a3c1094f5e391e3e191e3f138cea1dee73d98290d95da4e55fd7b775ccf6bb0eb79cf7fc0695f3ff4fba5e645a6ed7ec1d141a3a346874c070e0c0d4c0d8c0c06278626a62646f612d3f6e5e66547874b474cc78d8e1d18174c0ce6066627c615138bb17979bdc0f68b8d7e9969bb5f725e7474e868e978e980e9b0d131d391a3430706a605f38281c1d8c0cc6072607462625a31af189847cf3b58849c71b171d9aeb833f43dbf5f58f565dc93a1335540bcfd2058868cd95405f9278e4ce0098065fcf0ab07f232605345807f80047e005806ec358e1325819f91d19aaa01bc03201081ff8165f4f002781ffea433553f7e89269c78153ef5f800bc8f3fcda64af54a30d180df814f3c9e874ffd0936553b3e890530e061f029e601f03bfca93555306f440214f039f049877f791d6fd299aa1c7f802390f81bd8143eea71bc693655377e882208f81ad8d4f22e6fe34db0a9aaf1448828e26960d313f1f94dada9a2f1f64dd8d49a28fbf661e092ce6caa60bc103f23883f0d7919a027dd8f0196b08bcd0a2ecd26ca3e76b1096390649c667c8461a261c3a5a5060e547843c78b0e397600400c4c8a071e3b7c04a087ca0701f4f06346cb0c00c8ea070218a000428200e162e362535d669acb0df7216e268206e0668a70436fffa5f5e29a2aedf794917e873ba6c78eb21d6d769ced78b323ce8e393beaecb8b325cd96ac2d5b06f82d5d3dec97d796b02d635bcab6b4d972b6e5cd96385be66ca9b3e5ce761a676d6fb96b7bcdf6d776d8f6d876d9769bedb3ed37db71b6e76cd7d9beb3270d6bcfd69eae9a3d5f7bc268187992cc488c7fe2c8c7a932fd049ec604f29eb11947f29e3019af9391bc67cd1332fe0112f81a794f97de25d86ce1f94fe43d691e80df011088c0df8840debe63030279bb8e4bcb03f2761c07b8fc124d7c9caa1befc4e770226fbfc1d144de3e43850ec8db9740bd12389e891cdf80876940deaec3612f2f1d96c8db6b9478f92416f071aa609e01bfc35d3b2c206f6f01c059314ae4ed344900e08dd861c72be0550ac85beea4a40e0f393c92c85be2f0782378f8031cf171aa548fc4ff90373e8ec85bce0260d343ca0e10801fc2c78f47c00f000179cb980f122680570f07c85bd60c218027e2c300be88374011794b5701644b0891bc254b46d208f17a47bf103f2344de1167e6837802c41c02fc90ff4167c8af86e41d65a00702ca3bdadc0ff2e003116f807850c87f3e9c5380182121101fe406c86c65f3838c003a33391a4726ee0cc0e5434b00ac1e687ec47cc002f0ea51a3ba49cd78b0e121dbb1030062605c3a5a2f2c1d6872c470c050afb0e6c68d8d998b4d8bacc64e761dec39ef38345c335a3258271a53ac048bb1f1c65e091623c2a1c539215c82c5a60aeb70b8149b28fb25d954e19d89b225d9c439154badfbe95eb8f365a66787e5467bb33b834b638cb4f4f2d0061ec155fe601ee2cf853f271e6e48889fabc5cdfb82a8b25cdef3c3de4aaba45028140a91483466e3e1fc2930d817e3bd49937c2d89822b9fa555144aab332c88ee85516196c5a4d562d530992c96b5d6c620916e92e8d3a98a5e5ad46cccc3e9e5f89982ebbde8f85a2bf6afef1124c269e1a35c13a2bda03c1c28140ac71410c7e3f88add2b2aac8fa3627fd44b16eebdf7d6ff9a4cf170ce187f42a1dec2ee8555144a07de4a74e82f1887575f724479711cf8a5e561bef8bee0bbf1e034bfe4e228ef4539b25d626132fe64fae8269b0d68d16bfb5a36da251e4e11cbc329a2892f3726615c98879b136ef7272f72bcbe9b03d612893eaf1c307085f2d71e85fd35548e170a85caffe45ff86b3c9c24d2894422e5d0410e1d780deeb62d3dff743ab5707051bf2f2c8aae58890e1c382ecc53fe381ef5dabf855dd65491601335dfda8bcafb92e69f5e24588ddfb6c6ef5be33729c667126cbee8f54f22dd8b65e0e0757a75b16be29231be5618ca7875d1481b162e07a414b1f130cf0197bff11cb0f130d2134d29a15ed3a67f4d3e27315ec657dfc62b997197b7f1455cde464e22a57e921befe2455c60de252b99a99e37921b0ff35b5465c5493091e825825d188efa38fe056f25fae545513c14cd2db6c8f1a81a1d502f0f73bc0e30255be819bf452f12ec443355313fe78daed5fd91b8d6f256a251ef820387d7aabdbf867a82f2ea9e494c482d1426d9c0305eb00b7b7947d920be8cbbf6386eeeb6b097288aa770fc7c11cc53f505864265cfc145d5c7f13ac29771255ac3a8271ac7e33015e1f237de0897bf817a236c3c4c96711c38bee28d037b0e6efdfde19d0476354ac747d05f47f8a8f065e60bd621c71c1fc1558e4c49ffb5442f58e969bc0d4c63e7149ba8f92e98049b1307b1d3fc5a7eda44afd34bb3b9e17bd1e595cc541beff2456cbc4b4e2245fb242e6f23c71b3b456e24b1f137b29219ad6697b7217a9d5ea7282798a7503f3d8f9aa7978727989fa67838452fd14b529866437b170df5f52fec4eb931770dc7cbb86b8ee3655c43a11e8757d750188543abd571b83f2adfd8855d1b4f85792bd1e1cf3bc5c3f065fcc2a6ea6b4d18e17fa14bb9fe2d3ded4cc1edac9ed4daefe3deafb81cf71b75d9b8a172f97d757c7a035b47c9b781afbb60ef56cdd2ee9bee91f17e9efa2d7a7ecb5397ff6ef9744b8d16c578dfbfb019580afadad6c26c0cbc2de96b6d7b617afe8804d3f345f8f5da530b109682ce44af2d025f3a094b6befe1ce6a35db6fda87e95823d3550ebcd8b2c31ba594d2dde98a4e4a2fe9f5a4135c497a84fa60563a29a5f48aab49b93356cd531504a3906dd0c0219ba62ee8ecbb7c9c91369b1290bfc61bd1f22e9903525aa411353840f3d7789a4d45f2d7f89c5b641355f7b34e2dfb1aecca9799f64bef496c1ad17818c122ded36fc2fbea4ddabee8492f48e9b9bc379c24dd3ffed760ffa6a7df7d9cd92db23fc5a20f96af1c4b8ef185fbc79b8a1a7d64c359cdc05248ad95f03eb2e1b4c83621f4e07a94b2a9f430af646646299b1250e3f3177179989c444ae95d729ca819b964278a16a9f12eefa264869ae48c17edd8978c226be416578dfaba0f4322b9e4969cb7f5187aa6e0ee162d74fd8982db62d3226ba1e2a9ffda5233d3f53d0e23f15889d23f5602090fb917c5740b6c89a3aa2b4b9a16598bcc535dd8d2d5a5eb3331552d2e950b47d5274d554bae21d257dc231bce910d476f1bce14ac68e26871453bb248f7b9cb73c3dc949f3569bb59b9d94be23e4d3e15eda45e92d21e1374f90fee4a2814859597a98fe02af5327e8acd3f995ec6672cefd5674d554be9e32cddb0f1a7d80cd954d5182d99f1224fa31c8c0b05fd9639239a108f583030648c9f4df4a9bebf65fa56bb896609c37f8addc0fb5b2f10deaf6db8e4acc545e3558b1697e74fde1fcdeed1e2baf353a4ff7c9c5f7167ebee8a43b2893efc2b0dcd71989e668c58d187e9eb2341136f5a643267f4115cd9dca7d89e70ea29e6748bac45d6226b91d937e19567c1dbcfc0da53ec694953e70c1a138c6701dd789a370d23e84f4b2944147d2c582f68fa30f22403fd1b79d3c0294ced0abe78cee20bddd162560526692e0d1a24d2fdcfef16d90ccc824d187cc597fa54f3eaaca20517930b1b9941d715579fb0f054e9eb54e5af251cb58d209fa61fffeaf7e82ad18ea3eaff7b9acdfd53cc539faecf9aaa8c8aa16203d28f94dec0d7e25214989ca251bb6976d32ca5f62996533cac513c84492a928a872e4f7da52f61a96d60a951787f4bd77f2c058d39c5407a83ae29058c37684a414771c9c5dda20a69a2ea8ff2965a6849a5877cc957123e24dcdde314ab949e62a094ee834b5fe220264df344a2524a73fff39e3bfa6f1757c7c37a73e20be8c443b0c6c37afa08620cba388cb7128d7f73c205ed481c5c6983b39173e840c2701774790a7ffd9b137dd8af7fbbb83a53d57da5f1970cf18784f1118646da6a9e78cac6d7075fd1c78daf38a97c8a650cf312eff81d0010c3e39158cd836847c61b61071cc343cccbe711c323ef706378c4fc7f31318afe65c4e0b9450c0180a7b07a873c6f62f80f83974c1c981df0bce1014f61358f3cabf0c0b34a7cf9dff13fa5b0030062e6cd44fdc3609c19c6511b41c7b0814f58dcc027597cb181e9671cbec43a3cc6527738c723b11a07ea398cc46a1d5f71bc1c18f5166bda7ae0a25efe0bea25ef70512fa87f54fe8f6144fdd77f16aa51f814431c780aab7364520cff43bce42300fe3f5005cd4cf8defc2c9e3a0726e9c05358fd9245317cd72f58145ffe75f80745987fafe6c050bac781a1a03069a2fe43fcef6937befc4b29bf2d30a0e98bbef07044e36195f111dc443b1e566c1fbf0dbc95c4ee95cc5059247f979348919fa4fb9c6fec14a9f1f9734e92bfc60d1d4df32e6d4db8dde7154945bf41d7c9e624f3900a13ee065d26fa35bee53b6ca2d95444feee8d68f91adf7dfed9c67133cfc19549609afe86adbdf111a412e3b747e64cdfc8281b4818fc1bde3770347e996903479ce9e8453ba22f4634a3259ee21e7bcff21b749d62272c3cdca718b5ff5e47c15f420eba90d3b3a9d0d49b933ee8c4c30a3ef9380dba5cb403ba807cfa14b3b9dbd34dca975bdd994bb821afca7f289f87ff115cd5f8ead2d282bb77c1f96b80b7864b0bf5ba1d0fab0b2ee86a724f8f6fce54e54d9b517ad0053a016ba6cae56bcb57926e714d957cdd0de6d5c0ddb7e07ca272c2e254df0bc991c9059f641355bf059f6a60d2745d169b69eea87dcfe268ad8da2377d69bded29ea09de525b4a375bb9f0b0ee508cb7d5ff1567aa648e2591f496c5a5dec966aae28c7c9afc499a69f567aa40d7cae95940bff21ee8a4ce145cd04f145c993355a7d844d52d77b4126ea8fe7645272c5c1567a85cea7d5e3739eb32829fe7ff31f834f09e549881f7d5d9aff729b65fc37be2e80dba38bd4f31f0061b44a3ebb3e06d4758b4728aed6f7f175ce2d7037e244ee653ccc32adac111d5177de12af99aa8fad63551f5a568a745a6657137e802639e924e5c25da9960ad82a3050e958a8305099c22da118976be245cd03555d20b97aebf21e14a9d2e724447d0b8b89bacfe29e6a9edeb9fb03855299fd253ec143bc9ba16d7b7b8768b4cd7b79e8c1c387d0b7134aa84a50a5752b90dd080869b895f69ae287fe0b7f5c0efdb011a25557020c9063490012a3030c5059058408a28a0a800052670c4c896c0131180c0039c68c2010d606209062c4009052460f4798a2505e34931be9432a54e29193f2345e37d8892785067a2fced07f2b6d703795f5207f226e5fd4af20eabf0bc26cadf72206f7b2f89f41f52e1c19928ff587ba7c8fb922e9037e991e4fda105f20ea5c8368abced8522ef4baa40dea4a740de3f81bcc3239fd944f98d3192774cb8f30e5f02793fe989bc493702795f0864fb80bced7522ef4b6a226fd23b20ef6f00135736517ebf9030fe314be41d133220eff01790f79394c89ba4809c8011c67266095be8e8b8842d7062745cc216301d93fcb61bf87d35f09b9481df4fc5ef100353fcb617f87d91fc26690b48f189e2b785e2f7adc06f12057eff0e778ce63e1ad977939ef8fd3bfcb41db3c307fcfe4dd2fb6a076cbbef12fbb5dda1b631dabe68c8cb274d557ef93c5a5e7e8fa9727919b3c3fd338939fa6d75f715c087212f5f871a2f3fc67d68f9f8a37b2261fcc17ff7218897dfe23eb07e2688971fba0f355ef65080975f69ae84617a09ae4e25182496193464c020b16cae98f69769ff24795b1bedbf81bcef4cfb6b206fd28df6cf40de8fa3fda9c839da1f03799b4d912f9091e46d66812c45b62c2bfb4491a1c815c814c813c847f28e3192b304f213f9662bfb32078b40de3110c83b7c40deef44dea426f2be0ec8db3620339197c80cc81c6c01792573394fe48f4e89bc631490779880bc3f89bc49a3bc2f286fdbf940fb7bdd138db19d01753c1e50c703ea78401d0fa8e301753ca08ef6c7789bf1bc42a157e8157a855ea157e8a5fd31d6663c389f8f07e7e3c1f978703e1e9c8f07e7e3c1d1fe18d7998febde8feb7e5cf7e3babf63fc31a6339fd954f97f9fd9f7997d9fd9f7997d9fd9f799698ce7cc65adacb056582bac15d6ca65ad5c96f6b71fc63e7365f70bf9636b2261fc6362c2f09f44ba57a6fd7ea1fd03af07a8d48b972bab1e64884600000080001315002030100c07c4c2e1581c07aa5e7514001189c05e6a4896c6491454c818448c01023000000000000000028ac3a313f2b2836068880c3fdc6fc2ef17866d8855019f2f05ab43f12b5a75de779abf8175130f1e119191c5406e022756dd4287a2cbf24e91b1190100d4b28f5336a4f07102304084f638534d80ffbffb17c9aa55224c6fd67cea55b7cf231df060d3d0737fef1c15e9a4329df138939a82e0acefac16fee7364314acc4d398a8cd3e83f79e106585ab5ff74d7444e25ad2a5b904864124a4145702ea710773cc512d57c7b0fff9b6e7893c0e68dfad89003c0c505b192d7367901ce2807c3c51d6abc3353122acfa461f9b5e150216c3b54408799ffc8721fd38d3fbfcfb223fd235488b5400ff4bdbefc98ec7a7667d479f853e73703bb95f3908999bd8cafdf02783609d91e29a4fc58f0e0b4879652df0b28c4f8e8b005554bb90d161b0af5037e0cd65b33b217970aa742c41a52f9c73a5be5e49a4f80d7c511a1f1182a4447d721a6fc9d7574d5e5b3d5acf8b0d2f021b8f8aec3f0049062bfb38c50faa30bd55d7ddfad6dc9672e00ffb19530f58786bceec8f3233bf645ba0ef45c4c48a6f4e0085e9188ddd9abef2db2d33a5e7826a76bcaf95383afa4facfd073e49475088b4d5de9feb9b5f0342f3959d1ba1a3b07ee59af37f9235760bd004573308780b4726d0457cba260b72434a30d27198c282a461b6141882d5af02d8f2ea8f61e42782fc434e4a1d67155e78332c1b93001b9a10fa116925104b5968a643ec8862adef3ec884222136cc94bb4dd8cfbf496a85272886323e39c89d25cd0cfc45c69fc08659d5b62b4c61014e0856dbf8a349658bb0b9940134ff9cd87df3fce58ac2200f6d36af2fb1ac1dc8a6e72fa6b4bd79c29040d9bad95446057abcfd2cd04c8979c100e6378ff9140516a795100d156f5900e91fd130f5227c0737db49e7a6c0b6673971bb6abe134f3270ae822b3ee2e33a27213e5b86313b4e3b5fb7c46b9eeae95feb8fd2b60f816ac103ef9602ac53577d4f9caf4284bc4ade1e2052defb11416821e0c56970f2718a0f656453e1ca2e6023fedbf7be03e4b4b82730985eeea15cfb8bb2ac338c9981b944f09a79f8aac80782bcb186ef82641331f07066e6babb801416d2c8d2b78531e22bb1e13a92ddf6c0114464d5c9a81104765960827792bf879fc32049022ce1b284b9b06f66e5e8e6e583900ba7338ad974a9a78679752760a485cd6204b8509567295d019b7e08905a31f417ed2a3afe6444906c5f6e4b28ea55ea740d21a9af967b81136a8c09094c14c12e5facfd81a509d8bd72dbae3e9c0ca3c22feaaeaa070f7c624561545ae27674d3b9a124666a6c4aacca7e234b8c84d5788fe17f897f310ea5c5028f2b6e1e7ec284c2e85c86195dccf17d9269cc719239e494f5971e2e505fe855f3676e09611ad0fa7520b811976d0f4b12c1d7598c26d171f3784ef154733ac63c1685680e47299d3d560b9f6147f301d957e809d5040183704f7650eb3d74914195315863211287926ea2a0d0d66aa7aeb11eba1ba3b5ed6b3d993c36dce4cb6b6b900dde22790aed695d041e4a630fb5a28b74275e5dede2ebaefc0e7c639d4b8e9f52c0c859ee0ee58d5d204166a08b9b1d72543ff109eb0bc61287a39cade1e84a44266906cc90365188de19f034b3278ec0912a8e15338de02f90a5727a6c163b0fac7e488809292d800184a964654e1b0b98865db4f2b9e28fc1d98a57cb060651046121429597dafc75c2ebbecc18a6531e6d978f95a1a800d70989ea64abca14e8328be22dc209e9baac4c3db202ca8ca74a5a01697ed7c8f46f66b4c1516541197959ad61533706fa9851f87ccd1b9b9866d88bb5f144bc84416e0cd197652a21bac9510b0ff28a6fa5147fbc7e065c4ad6f048d9c04ce451d919083183e31ad2548a6e9a10527007957c793fe4da7582c18cbaec3c10a8ed3d3c0b438880cf2367d20618c432462d8afd79878ee52a3297686b757d720a54ac69bbaa4e21a43fc97c3227b1f46ff0138561f9cd5bd6f3d2c5c579253af0acf8d7978b1b6dff0a1f0378e45a8f422b7b79867f01cebcbcd24398025f16461ec49b61d909041bf3d2534d3fcb87cd3714f4350ba049768d61eb3097837a8b5efc566f8944bfe08da005fb3187d4618236bf9bc7cdbdb2848ead9fcc4f2c7e8617a2c7da8a9a6482bcab94039731e3ec7a277316451d15c1da1c96fa9397e7342a18e053d7dc4d5ee5440c103c4d1a6ee52d04c2d09a6a6a2c4d96bfabc776b3ec8acf977b1e6e1e5681b4cb2840777f4cb54cd87ebdda062b782a7266bacd1f5c7c1a583ab9eb72478e5804403007ba9f88372cef06dfc05ec5b0ca3c5cc25c2732d6062087b905baca686f453c08a3b9e8a779445cbfbb1554f74104fb2a2db78219b594186ec56e0861a4596a544d45fcff0ec485fc25e43a2e47b02c153a1df62dfd373ae8c379c05dc7b2b36733b208dc6d6631801e4da42f733655699800ab076cdca99745b8b8c7ee88ee3ee2fb84b6f445033929ae4b0687db7f696dc276eca26d7108168bcfb80dace58e471842a65ab0d9d771c1f2b96f011771c888e59663444a5cb033412c88414beb371c9701c8168efa1a8616af963310c1dc4121a123edfc089a6dd849beb8bed2a0e5191b800fb6723210bd890ca7e4ce9dd92d86685b077ba22c98fbcb0c84406c1963073edead94c543a602a34c3b134801978567605847b5f36f76340c9240a206c458450fa6543677c92a10a01bf5983f311c1a4f6187489fc62c97619f8da70118da42d519d90d7b8ef76b2529a496978b7430e59d90906934705c79ffa4015b07c8bd3f265451d7e3cf5271270a6947c6952a14211c4c0e8c1b9eaba80db9777925d11878202241d66ecdc691faf1ad33bb96eeaaf4507b1769ab31a376c44ff5494cd9e29f52e51286b820c3cab027904c14f186617fc44bd761d2a20e8ce62dc4744a7b98c89318128f53c160360245690422d0a80f1a99604fea1e0cab6a010f330c6ddc89342b4a899065f21e85ff1e4626a90ac222d1f9d1b505377dfd5de7a5811797d8ed1ea64c396bc60f22166b64df0670334e145c7f2441ca1fbf8edae0e69b934a91a1d6f3cef75d2bffef7d0f27fbddf22201beee9582a5791f561dc9303ed885588db1b01dd474b71585e8bb90eabf0dcf5b773bf20879087fa9d48730f246482134ae92e809fb902a7867f6e515e0da6bfbf3c0caedfe9af11474eacbecd5195feb2929f77f52c34b358115c16a0c48b6e2b129837ef8f93a3c3d2082241ad41e0ab9a054e720a4c5b6c94fc8fedee29628680a92f532127c24ee3a32a6526ac316b1ef29f0dbaa64472968871256d0751ea5c6e5d6629873c6f626b1f988137e72c2eaa54a1ac2ebd1b6d144979301432132c4945d14bdfb69fb085e696319c031eb77f7f426ae2ca4212601d335b4ee5f33e41bfa0afbe7fea69c65e89e5964a4297208a3c4cbf1a8ab961553cf417c6dae8c85962a260d140180fd95ba180436fb7d2d18c39ac81aef0dd6c237f8a222c32de9020b7ac7308c5c10bd80d36c26a132c577cebfc26f274aa62f5f40e71d570317379e6587f273a11b272b3440b40c0e149b79124c3e9e6ea8166491b34bc5542130fe32fb5eaf69d5933544a1834b9d4f7798461614c00ccb257275a937d07f5a1fd1050548ffa33c6b66363e5ba9d812e1d59554541285639848b93f4ad74dd413c180c0235882631b0cf17e1a8dd95ee2e03ac8f3a0ff396ba646f898476ce4e73c3c77c34511af4479f94fb29083f06eaafc3f88d4a261007ccb9feecb3b05b29b3946c62afd823ea71755304e525a243e5156eb892b94039764f8f0f386dc0b063609ea0b2b860f233804f6f611ed1e3dd18fd35ea7a24edc70c3a493a5f204aaa5a11fff701401f70a4df9c4974c5146e6753f63a3898d4e7919965883d5ec1e82ed9c1a1cdac3abff4ee7df5c18cbd05fd86ed1d3e395ed2424ef0af2b2b04f1f5b46cc19c0077772b14cbd6dd28f97980ce3c98475e1ff16a4204639b4d4a7c2c8de9b3b690f238a57a6a0324a61623b665421100c2c4c7b12abb0e8b4a214cdfcf5866e944928e1afff753c7a21adf72998a4f445256a7f5d837c94de593513d4d6b95b2632b7c4433301b2b3eb57c65ea261e806986dc5033a78df61a4c3a1d0e7cac64675a717c3dbd8cd1881d6daca0c9d0e9c5e18c6b7c4bebc59d75a0b3071467ac37057c950f6581d0011191e2362bc85aec3bc9b16cc183885ff49301e1037e863eb07755928f9f9c1fc055a4471b81787f742eb2a981b320463a27996243b16a1c371e80c6e08fb268758aa178c18296fcaeaa185c825d81499b73c31151b1d0d2ebd992aae2e8974a9cb39042c2b7f44a893dc4712438fd78423a9dee813ed40296d74acd08b026a24cb17c22ba1cecb68f1fb48d001589b2d8f1e46465f6e8587be4827e698f2e5bb2c32be928a588fa7ba41b18361164f46536da348dc4792d7b0281c433da24d4f055e077423d5b844134c12dda1a3bb7bfe2229f6a8f953e3620c463193ab5ba5a46a92476d9b08c1f76dd764f29c76859945cc66369ed7e4f0939606136eb78eb6d76a53de9ed5395c6856a01d1277c336c555a484f6684aa44feacd1f428c5084793b62049ff7291e620455a75be9e0ec33b7c26f6c677933fc5860541e91e16fa3948ce58d0087cf4465d46a2d491f6fdb7f0bc01de7f8b14e8a12ee42773da9225cd5497f6f46a37999cfd61ab1e40c164c9c58c2168115ea8d6f9ac5aabb9f799ec123b1f75b3cd6528b35342136da4ee1ca16eec18d5c19bbb3eef5a4d260f91026af79ad2e02244508f00488f428466d0152dc00f118ca5eb67f6e98f541f588590d9cdcc2801faeac0143c515c269ecd76149dde6f6b6896a68e788113dca3a42b0e891253d5ea41a012ce35e561791d837d4778421366d18dd4b60b1c958277d262373ca84bfd3d871cadb0526cddf52401e1dcddf54a15c8783cc32ef289884f4c231a64345dbe3527948183cd2cbb0df3115e62f9b25dce6caebd4edcf54d7ad95206ec38a82ceb1b222b0b16234f3e58aea3d5730a85d7df1ad7d094b51b096cef1f94f05ce7ee7a5912fef28d9793b2367e36e40107a721171e7c01ecff346bcf2ab681f7a66e08c3c81c3ece89a368fd0e1ed9227f564d9e652babb87add9bae75e01bdce7244d030fae62c37405b143a1fe776805279b40e77dbdfabc6b14152efc8873ce830e9089a94149e41de67173155f80c917b047ad713188809d3637f419ac7d68f9ec71e62f586f5642f85aa89a137b0f7a36fe0b5ff78f024841018402d976dd279e1f2c9361e0113e2e49bb32f1a32606b5ccda35ff9549c558f368275f53c16672a596d19907e8662547e24f7996a20d1ced8cd781561764af54e40dab4437901a5aa8eec57ae8a016d0afd42ba9a035c28cbf0034edd4b86e5ff904d4a2ebc2f711833e7e6a7f6ad4d111b4c606b1934db1162247ac60c4ec9e69516130fac80e4db681abb03187425a110c82d3150f0ec6c90f2e0767da07c2d3875ffcfd0b4ab7f0ec67eb19097cf00fcc801840e9e4d32408d2e6286189c8c048e50140ff6455ad02d6de983521359fff444eb07545e9a522e40b175545306c47d8d513bc415c283a8c64e45bf7e63b14d6741c6259034b1277c1a805445393753f820d0036f4823e3791a0d15ea00ea61fb5e97524e3167794c2615f3b4cbb02313152e6c22a02c40abe7f311c8fe82f026382b59bcce158eb42a10c444e3190c6807fdd50bd73ddd43fe452074988fa105ac652d0d6f75884e831a98673c68e059ea3870a97f06fe05fa55001fc51c2060283997c2e605fa6ab02cfb345abfa385f7200c8be8bc65e2a70ee6831fb9b4ed9827b7c781c5b3e3dafd72ab06f74622391a4783a8d74808b3405dccebb52852ba8a2ee32b39439c1048d56ec2a0cd2feb120984d51b4121f19bec352699a963225f34f5dde182837075933bb4030509ffb9938213dc14fe97dae3708d16951fac3222b02351887f8039d01add21dbf58681d03780235715f648c456cee5d2778ae646e5c6af0f4b7ae1dc5ff7b6580ea143b144981e7c1b5487d0f8db88139ff1e1c47d67c442b76e305d55396f534c977f613f965e9ae48050965f27aa3f58e3ee9d46ca2923dc886daad0e3263e16563a2ff6a9438cc9c4aaeb3a6bbe2599383281f97a7a0c31888d2f2b17041b9933252ba458dfdc9d15937e562b2f77b04c73b840312208b829148bf9b06e89904e9e2c321b41477fa08c5bcf869838c896e8f2eeca59f35790d7b591befcc51e6d56b66de614c1f64bba09f3c072efa9350fdc31894e4147f397ea9dbc403cda5828fe49b4af003e3ac04622c53a3381d54b0e4d0520ad03af789275a3bdb36fc29ae02b190db5901cbc4fd92fa86090f73d186c5a6795fc92dac735148701888a9188530b6a0e91cdbdf939e8d8c24a8605e3d38192a3f8d445dbbf9423f09afbbeadb290b3b12b6210ad8fc9f6ee59218ad3dccb0b5b18f3053f9aac1471a551ff5901c12cd105bd6c259002ba4c45a354a31def590fd5eda92a117b3fb9e3a659453eb9a34146bea6262a02dcd3218a009c8e3015af17fc96555e864e9eda3b107aaaeaa57d67bc9935d2889f2177fe54aea603a1abe00b2d37e23d5cb06308c6f06adfc8f7feb72b741c075a5d4fbc6dd97f8cc0da89433c1fe0a52949c76c5b365d2a15c703ff71dbe29f60823396871cf698bcc14a800452666767099fd8d3447abba0b20f7b181b956ae196903197477ac641ef73429d439af383096ebbb9a161174aef7268c563b9f4047c2baf6eb4fda043b7b543bf6ba391816b23117233002a143ffa3310c8431767a36037f667ca258f47df9f939a4b415b880fc16556c577f4bb2a10b5e0be52805f38988280fd1ce799ba6e902c9707231548db7beb5427f09f721cec969224b754358a54686b7704bec5b430bd2a7253564ab91b299250cd23fe3c42a48ee5fe72f7ab0c0f1e2c2542e0ae831c3286f61293aa4647b896fdb9a99f07370e08103d55a33dc99f448ee31ffaf5344944412f35a10dd1035cc50f81c6179ebf3d83cb8e5b203806212eba0050d8d119185c3c276e3ec45d0a59321a4c3f8a19651051f23b3ddebc1cd255ba3ea420ca0139ed12bcb938cdb222f72903d0926c8bdcc12ec143c31343db804ae13b14b23ddf8a2be5d391483c91b6881311cc13acd644a194be85ba03bc17499795f567b085e99b0b3d89060ab64c6076fee1608f5715bc7d98138881ee14c480b240f987c2cfcfbe6fb061e0f286146f2300e81f9073824c8dfdb9609d8d044b9ace69c1a249bfe9a60ccb5e0b682815ee8b3a3596c56e9d7051b8828da2a61a1c4649598673b18599544877a53034efd7b6b3e4245b3696faec0ea740f23dedc0e784d43d0bc668acaa16864f643216c5f7094f30969793f0e43921955b08633d1c8c5c79c30ed57e275084680c8f9d6545377a834f8ba015b95b62a86bba508310b5cf72bfd4a221027604f5a92348bf3ff1c4be7bca28216a9309474069f777e0238cf805b8b303e77e41a1ce85fd20391a8fe857ecd237d36b0fb7429897219dded7303935fd861d650e1f6746bd03c69862c49cf86a2e10fb9dcde3cfc56a49000ce4b496434fedf2c8cb4593d4df17149d531077348a1040e28dd38fc661131e5753fa878af9b46f8f8dc4a345f17400daba5e22c300dfd9cda890e3ea66b8121a244937767c663567acd4714c69403cdd38790a03a214e3bc9590d838f9f2bfec63426ae3844b08813b5964085266c0effda7b1071f29ea019f0021155421fd49312404d880c6cefe62075c2201199a9c03b9d3ead906aa620e16e99e7d4a7d348ff5614cbffc9d61c89146077525b1d848d7ac0537a8f0d7574e9706ec92de678e197a64d1cfc127f7dca5fde5d6ba7d37890d025920a8851e136080ebfc004798f4357582fd4fb601fd877d266d180cc74be8ef1a5813e2eeefe320b4dd45b516348fa2ea03147180c9c0e532065e761e173d4e4d91aa89e6a0395517771fc1e6f834cd4d82e98a5c6d956a760f7fbc5a6ccea8e8768f65b937de5329180b360da6eb77b5552b670716e24289af955ca9108f7a502c0e5e3477f609628d24b19a83972caf07d7bd44ec87d1fedbc1ae89fb810b6e5ac68bd9678928b83ffaf8715ba5326c13c35ab926da85f90593600a67d35645711428e00ea082f99310f45f9dd620296cef4824f95be5611a630a8b5547c15fbce005a2c22b508107308585d8c981f10decbf5ba3e62d56eb410573bb96c27f4884dc540481aab0ac0650019b22705a69e9f3dfaeea80d7494f38853f9033494135949a2abb7b6e5a6139a80a37b1be03b434415cdf973f4c6c70dc117240ac22c11738207065be16599f64d413f93a3b60b73f7245a1787df3032aa56c9f189858c3e95b70e02cad7b9940af2e61d1d5b154d67a34c905e086a5ee5170c187edbaf34254d8f038efe983d555e181e772a6b1fd97a7c37cbe6f6bae0d82e79661cb8a15ab4f5303b4488dbdb53a6d16a936894a73451a2f50f155647ce6e9768aec4f73fafb8d4913560830e232ac62f08bf8bfa8d8886a11dfb654245644e5874a67adce293e4fc4077f541bdfde1c5a1e75f5646c05871f97e20b9c20167d3563f0a465c6933531b083e8efa5a25482ed140093d65f3b638fa41ad62e7210a98b511da41cd4ae797b342e111c249ad61fce8a0133732fbf49c7286869ce6b687e1cd24d5538adc55b6fba7c4d0737c929a310a6697ad2d4f4dca2b17f4d603b4a81e9d6ea3c6ce4653a9520e74364d09de1f76f57e216461a33393384a76c4d3b84e7a03f93f19df2009435254f35f1cc748019bc1703e06fbd4d6c2e888e84b7814eb3686e023e7b7df34b801633ed82f4b61356aaa783021f986c012c0285ad81ebd55b1571ede6af80ad9bf90f93407d6a96fa506e0b639f865ae65f54fa8a3671fffa6a64fb9fe6ed0079a29a73ee2cd8a2c629de3daaecd2665a660290a38a01df7b8f6da4b33279aac8d20cd5584855538fdfe47e87d16f39ee4998f9bb0354b35d738e086d4cbfa03d89dc9ab03bbf12d7990ed91dcc3d9c8de668bf1e2539c25a8f672676fb74c36cb9afe6d52ced65adb43c15ca5a936f04b63d495781e706eb6aa14176b318a7ac894b834c177d70c859cf3c0f6367e22b6e3b6f56f540c9fb0f5bce6087ed9393b1c649d85373ce65b087a28aeef02a3e1a29951ef4feaa0f76bfbaa7fe55e5fbf2669f25a13b53e4d1e25f57b6e46ef07129a734f660c1d41771ac1c8811747636f665a943cdfe42a513d2443db7a4c6c9a10aac856d4952b73351edf4c2803652edab701016d5965bda1afeff856a48350d46fd7c004f09529f21fc830aca7e90c355df268bde7179d4ff73d488bd92543bead1284b0dde8592a3da4237213a16af661b15c43867c8184e4c7996ea65ddd8cda8876b61326aea23326a8a3618706ebbf845451831ae6bd786b3453d062735d28bef66a9a9c44b4db35354b207cf1062f2e8903da120ed15a3b2b9a2acd6afb14120503481daace3d3e63c6d28c7e8844f135e9912bd8fc58ef9d511a5ea1f32892642410843485970e321863f0cf0dee25c9d074b998cc0540a741ca8c4ea01d5e9bc1808b889ac447d12be79062c8277b980a944b7bd14fb6565676e833ca8aa916fc05c383c2ce65b9370528fb34c238e93eb294906a822b7ce09c112fb02813e47f99e0d3173024e357a3036bd9e1b2ccf964cbc8cde274b5456d6c644c2797b25a163dcda88f0f0fd7c3e929a2d393bde682ce70d605805748a725ff3276087ab17a51a10e4fb1cf03ff7b25feff5c722792f27a97cd4eb908c50d134a6a9c7f1ae110a2648d1a91012d5d8eee03589c79e74fb7d0ed0e1ebbf9f2f8794dcaef61d2089fbd2368f28a0d4b7723ff3446b3bc904dac26e8c1b557c8d2aacdcfd4cf47506e731c11eef82ee389ed5515351b8967b98d28827412ee1cc64ff0b4dd3ab606fac90ddcda9487f9b498ed6a842288ada9e808ef48c86af8302a848b55cbf7938ae8d1622af6cb9b13ad4e9e3fc3ba2dcfcc8badbe1e7e0b7fed86b57a3f646f34dbccc7a5e3f008efe45ea1a25f81383827869dc1423ac87736409045da4ff5c91e1dce44a962d40ec5bc49bd2ce9b8b3d564ef6100493c2d065fe4f0489ae3f5376510fe21d899f4c8e3f611fc2d38714c46ffa2028b689c7b125c7d840f0ef4afc38305c6a9d028d54e1a8dfd8520408fc3ab19d044c9c66b14ed5e7bd3029e52a12fa9493b2675318395eb03deeff74e3824c69a961ae17e6a8e80435304333ae11dfd59489ed5ae37da3a9c4c804f47dce19148a08d273c968bb1f9815abfa475397576f92025c9684826f14a569270c087c4abe78fdac500b39f2aef8207a065e356cf4a265e438d4844e03ff728a619245d6b3cf165344193a0830cb65b1bb770719d4f419600a741d20200b62308b5834d6bcc8c2cfce72534cebe7f40821dc6a8a56e58d526abced24dcddfa79276bd11c294cf8492daa7a8db03cd25bb1f5454d0cad1dbecddb3916b9063dd03e3ef8b5e4c9e0dae35bfe504c60412a15f1357ac284633f64b2946dc73a6dad47323ff9dd833a44e67dc6f55ba9082e1574de2e385f8fb4d768164c88152d5fcf82cbb59aa535e3cba8bcee78795c01e13cc23d4e80ad12a881691efef27f739f224d635c90e101ee2b6304ec4775145c7643b1609d85d54624b880fe3689eaa61e3f6cee6ca742f77f9b50ac333bf3a14639333454846e2245ad4fb988edc76267efeab148ca9101a5371d75f57376f1305225c1f0dea30e5443eb2b223ac4f401b762f9d1c2f416f3e35c88e10fa66561e7f36245d467a59294fc8166184d0b5e52c8cb7be8e306b777dbedee535001dba0cfc750c566244deb798f1f73a398d9bef299663a1332c9e28b2f0ffebb84c31f20e75a109a87eee88d56b4fc3e96401133547ad1d14f7f62370b23ab1418aebdeb406f63ad224547ec3e7029869fb5b861317ecc15b13eb570ff119d4507741a3da3c5909d63b94d2be3ee6f876eaebeecd577a3a7085fd37c024353e888e19fcf7113537d9b5b5f04e915dbc7dc1673035f514d58c2dc8424b73f864e53f8b0ad405dd762a9d23ecb4d8c3fe73ecbf4e2969bdce456972d78f3248096b728ba943baa00d216bac1ea566fa5950db43a4dfc9d71434ab0c55670f683c8bd64278b6ab98622a727c69f732bf60f40964b178b8f5716df5202293cc6cb201e172f6248f09ef4b8a91bdde266d738eca8754e906fa457c241066cb251a4a0add59cf3ef8afda6993e1b2ef137317a47daf5622002b8fedd99022c187c0b0bf38ee3b4a13f9a544b0d89ed236ec5f0abf55bc5f344db71b57962965e8b71247fd551123da0fbef20fea39db5e8d0eea5c4a9a0e2f0e4c3ec00275437f935b84d63a8403e75d4feb9fee1151ce750ec665ed843e8b58bcd7d61e4d0c7ed6eeca65bbb115c1571da6a0bf335791af254e172e3ac1268b2326cfcbb80b7b0f77ece447086feb2e66c8013138b962f845e2a77a04c20f26a206840d33cbd96f62b872a314185e14b869c070eefa12202feeb289f8a96b2eaf71e2ce36b0140bc217740aef6579ef2d1a078e5d44a1bb13ce5398782bf1e048761ee088c5cfc7a2098e024aa07dcb8b9c119371662cd4fd356b224cfd79d1c0fe6984940f1fd1289c7aafffa57745fe48d6fa815bbb3cc1c7c612cd6c298eb803c3c3f1614cbd2df180df56d104add52618c267536502a3a5ee7cd3a9a70f350634ad0430be45ff786943e6ce3579e0c5ddd231a86612c86f90f492c15f7dbf9de77d5f196599f45745ae10e0b0327d0d669121f14f54baedfa6e7e69b4bb46f7e574fad499aaa4c38456192d96937646681cb2236d69e8bf85dd5bc57ce108b9867a9b6513d7fd4e7a5d927303113dae61a25c36243a7830518c34c67e723a077523fb2aa815281ccbe1fd5ae93609a46f338330edc25701a3e452b4f32c9ecd3185a6772ff5abe05ceb414a542d3fcd16cb91ae6bd54d964d4c474416634a19ce85908a53453882c67d08f42b7702567e10c743e24d590e4c9aafc6f57d51fac00dc0deddd57bba6d05fd6f843e1f9f57801d189def55ec66ab55bb601444d373d1fde1263c430ef01dc4aa0d34fef9236f2ab0dab24d99b7f68280ba6400c9c23fd77f3bd1367478ed9efb868dab2a0c8a55278c5a8eb5d750fc4d701cbd3bd86f0e0fc87ac73a7fa84f451e7fe5f1e716cc4283dc7795687f9e5eb3801f7fc1854edcefa75a3c15e0abc32563a8b9cef81d0d481bd5251e1dcc30733877d3faba44ad7e93e7b79b62dabf5caf46de06f39f1760243f2a8c1e3f19d9d258a3b335ad066e0acbeb737780f08214a825058fba26249e99f359e73c62ed0ef4ed50c65eed35ec51c7b60bf0fffdba5c223c7ea3d5dac01f776d9345d85b1bde110234f5a88cbe78a6e826fa09e6732d82d90ae91f3a200e8f67ee248f1db4edc8c16f2b125328453ba50cc3cc293bd101ef4a57f232cac0e1cf7010d9b9d2d0027119ae2f13c6a14ea0fcaaf93cf6f8bde08feb19d73d360f7c1d37461c13005f4753b8081fc21114818c951feb997a64fa5af5269f1f2e35fa2acb741ca28a2fc75bf1c2eeec11f30186dd167879250e898debfa90b6ca482b5a1197dbd81f2faefa852b51d5b0c5c7162e5d1c021add27915959fdcc66ba3e3fedcfff90229ce6fc736d72b28b4872368e8f3a503a1cc828063307c7659ad555031db39af1e825827b88220ef1cbde79e6c40a61d4fb6d1a4fa53e11e363096ad0610cbc24b44a2b1763e760093cc5c886da01b593356b0c947ffa00c0d0994a831f0313a189c9ba04b94ec52992f3389d0df5bcddd8b15d76ad1a673ccf0234d067b401a70b5c69cd81ce8388daa488e26af7e4f62999722146243af899c5a57c0ad4f6df20af2f7362da8cdaf6536d85e2433e870f0b84ee0df237c4e3ec4e0f8a67c6c0154ff0716ff4896234e57fef0d7e50ffd7a719fe8d774fb42131d20459394464dee7b7430df05a87d3b781b8e8d7ef5cf96a92c7b6a4e1fbaebb35535559c51b95e24ae188c3f0a3455bdc7572f0981b89c253e6e65fb938966f7d5f743b7906c8edc4648a192378d52e74b2c2e36bc7ad029b2d2b07691b7d3d8e5f9b653f5216e4ed5f146458552498a302c694eac7f5c5f1a990d6209d37c034caaeb4a1cd010169eb034f8376b53207ba80503e3e465d5de32b1e4320e90c8eb7146d8afbc107d39eefaf5be22930089482e508f1cb572486c8a88cecd599b938b52f073add496c2fbb5046f195ddcc9d4dbc1087feb9b61bc4349642e8cc15e46090a6bb02c520f00002f23b256541eae1bec6c87383755d40778da5ac96855b9df3f7c190697bf4bc5c579de9d3e0c5d0fc6c869ec9dfae56fd6e493113ac364dcfbf483809ea6f46cf369dff9b49904f30d548e2b36bfae434eacf759dba714ba095623f51bf121e0dc1a981e878c1aa7d60cc4cd01d9043eb4f1077c38f3e6dae19bde9ddea7426c5edf1417a8a19ba815cbee50dc442d5e5ea9aed013480e5b6f10e744f33e615a92ce449982f115224893da998c9d35a1866b0f32d3fbaa9dc7077aea423729b9cd81a86282940d53e7f08dd7c0ff4153fcacb018de5b14af9d80a976b14b1c679f1d75373a3333e49a548914ed65dd37a5b6d0dc1b7b04688ef747ef1e2dda4e46bf450affbede77b333767308a659e23b74b871b94cfc7e1ef66baea7b5052903907056232eef966bb01f549765b7719e821513123281e3d7477eb4c88c341fef6ae5b47be31e8baf44f5da64b32b1b4aaafe62fadda2ac3f2b0c3c30ed69640537bda9525d562a7fda3af97809d84351dd0079488216c442db331320bf58e0b2aeb7235c5a5fa62f1b2afbfb5af3ad615818e7009809bbeaedd426ccc2e0cee8467d80d58aafc239aa8026f7ab9bd3330edb0878c7da44faf67a15bf5ee26423a0f7e190261676324ea8de3e466761a2c39d74f1d31f591ad3b1d190cef5ad011b9697374199ac1d9c8c7896d1dd02dfd1fb089717d0e972e3b5a6e5fc25f5ec2877f27d7ee0b72699eb97af94efcd3fe5da606a0aee64307366f782d8afb2193a070026bf35f01f7f327271dbd58d00a8e0d18e8c6701239f615dfb32b3eb117f745df30ee43bb67bec76105ce03dd60c245232173d19724c6d4ce6b8c20c044a410b920377c8ecccf95ef815c91e221ff10937e599dc49c40eebed95e98055824b4c108c92b7fb22b48c998ce4457ecf4e004ab6db109672c13229de1850f95a67becc1dbe88ece439cea88fb255f65d7958f395f414d3d42231eaca10266b981cd7cce496cfa8861d806b40f0ec1de2ede242c21083e741b4ec8c07076f19dacbef610f75158efe0e1094cf3432abe15a9118e4c3217f3a551906f24f5d030ccd4e252f8a57bbacf13eebc922b1cd8740a6e6da8f85ca8c478666b591cecfdeadfc4888c661c45b506478fc217cc32c21b6526b00da3a3ea24cb54f2b404b9f719f415fa334b93b0fb8ea627effb3a099dfece18b1cb98bf0dfcb204cc89197cbde0808018f5c466c43f750ab9a16771417ca826d92400a2e52fc1dc33a78ab55758cb65fbff571ea84a5b98ef999b2efebc18016bd5120349f568b2ebe290927fe28c7c7a5766e9a2a1e594b22212ffe194240efff0b98c941f86724f63525694e3baf0a6db701234c93a581e81a6372a3dda86390a77c3f1904d80c37ddf6044ab8a44893dc740392c93cde4833c15737618beb021aebf74e2a05fcaa145a03269c7af41a65d7f1f6145f6c524df38a6e833fbe0b0fcd597b92019e190e4f7fec7acaf671f719b107c677bfb2cb31bc0dbde3c06fff21d9baa0318f9380becc7e65355e56400ae3ca29928a083be37e13fd3dda9791b86cbced8e3cf4bdf914ddb9295dfd08cb8d920b7d94b054463f5d334aaecfc78f2d5233150cd00eba8fbd9cd2feaa3f60e07ce87bbe45ef11122c5c222d4e91a2c600541c7d0e7e88869b92ef1985b45894bf0810ac8857c786c2d148840217d682f9ab021bb5a45497f41266117160f4677bd406815f688f4b23741890ac7159369a11912e5f01c2b057c7f8e0092b8c4bd3bbd83d3e6135ce497b19ccb0121c4cdbb01a4dc70be05e980312a6c8bd99db9524f6be9484afae155f3564e402395f8e7530aaf61406c13fe5e14139a0bca229565ffb580ada0ab61e0ab8bd8bca4f487d27645c3888711f1ce84fc21b38ea55e89a0377d3a09fd244d0136667936df40cec1ac24268bbe7593402c6206c634968071acc94a4c9c478f9cd669125de68213deda3ad2c6fdae164be892bcfd392f9f0264e85e895c59f96d74b6dcb2ccd30e1dbc563276b09e7e029931f1bd5ab8406e33d52bf9c4a5033db09a38eb0d46a4fe644234a9f8c4ab662644b42ccb3668cdb79a93a9c11038d36f9d2765919d39ae89a449ae98e91b20c493151f65e180f34c8ed0d8a9283d10b1b95c640e7783328829130996ecaca24518b2260526d4119c941b40c23edf0c698dea12bb5288b3186851172d789628c61c0d041293aa8b684e1130185a98f30f75da3d83c58481b3a844257027e07cbcf5e83602f57275ebe0c6c89155bb8bd81946072551e3905a04fdabd157e6ec4bdddf3e06b6b7bcd645877087071d41976b0ea469c55f3e083b0a1833bef06bcaeb45d2e5375af3b64758414d14b84f495d749df45115867dd025b477e1299df48217a9df95d1fc1bad72dfd75d1ef0e1ce9d2597b05fcc54583ddadf39e95b04d3dfe83e20670c589086b599b56dab1bd1df09faad3fa4a088c8b0abbb9c0d0707bef5cf47fb4539fdf15c15a91e1afbab62d47ad61ea5f2f13d54133182b3aec027ba6a54904eb87341be3f68357c91fff4482bb429ab42c1f4aadc6008fd34d8501bbf98d1ffb1b423c09315ffe13907582707422dadc335a662147fa01f62301f2ab00e3930f6fb8bb36dce536413382906f8ced9bf3e8e5bcf5625e3c3b0fefced327e6f5d5f3f06c9e7c31afdf9867efe6e907f3e6a9797eed3cbc386f5fceab67e6f1fb79e2e9bc7c751e9e9ba72fcecb1be7f9fd3cf560defe5c1aec96ebdf82564fd8774a64a392ff2cd8aa04ffa4546c2debbf45ad4cf06f4ac7a612ff2cb29564d2db5c3dbb5b40ba008d93b9b9933fdac36a3cde3e040880a91820a924c6e14dc90ad78833546ef8d62b8e902b8b0aa8aac6067a830d62713540fcc2e29d73a40b336617854011471e8a3296e382507357ce7d4e8be3d3631946752e8ab1be0a42cba598cd980b61dd2ae4e38e5aaa03368215042924eedbdc61abc8feaa8bc33ea9cce7f9e2586716f038f112fce295c51551c29ee86238e228cb87434a68e9aa23e7ec17a071e77e94fac917333e3616bbe84be1e18a812f4aa618e45679cfcc8a732a56e3dd58b073660bdf889d5fbb6c638a64105be2a8cc21c1f2768c9dbc12b532bf1c303f815ef2ae2a1d122d67dbb17fbc1996ded7d725b3135f9c9b6352dc855e949178b00ce6a51c33d3cb8773888d664914c6a985864c334ef4d5c0bd3106a2e75da2d3f17691bf0e89bd9af074d4a0293ef8511b504ea10b310608d505d37fa1203fa6fbca1ddd2717dc6ec7173efe0d567b530c6516bd4e4277bd1015de1249574ee0a2eb428ca0797d84a425b3471cf8adb688c957998f0b1fa9a9a0ec85296f9abe9e3a662f3422c8403aab85f17b3074acf50fa6ef514a55c1180a5c002d6ab57564b205bc29b0d02681a99ba14fd3d13778efaf4c6a385e42cbba1dae00e9fd122ff3e03496e417c4392e96ef96eaabd40f9f62767c81beca7d88fb4af154198db58df8b5cbc6f715a15e1892cbe7b64ff7642eac585f794b8fae884bf58b3f5c2052eb96bf501d5bfdb9fdc8002d6d68d8e01d472495605e1b77c77ef354065c82b99e7be404ad4f98ef49dc662ee6053caa59d0c0df7afe089242ae16efafedf0491638447bb979be6022689526998fd460c40802e15dadd4da941541cf4a3270ff4756329969560e2102d94f633e5b16618792cca36d1fb56784d28247b114c57f3b30cbc294f9d8b5648325c51611b5400d396c85c61c7435b240d52d8cac9df8f91e50956cd241ac23910cedecf3ed4af6015da69f3406974b3c12b572f86a2fc54e9ff5782a730cbb2040b8164fee7bf16409e0af02ca6b048a1279bf21e87888b82c17199878b308fc2293e55ac01920f7e1783383f195384f84c529eaa543ce1d13733b3859027d2f5eb66243e561e2930d8cdd371f4e7d4c99a7500af2976aeab833aaf310f9b4fd4e8c2898a66fb9fa21d5d2ef3cf99b6d6b913dc5ff320a09a5c4088e9e8f8fc1cc288385b58cb1e33bb0f304a0cb1d729c992bea13048602668cad11c1d24b99913de2c460eb1b1c13535fed0db8bdfb475002fc737564a6ffc8e1e5b77729b71fb677ac84df41b0cc285a92c5a5ac14d249adeced044f8ae217aa1e9c0e3fd283a36368a92ab34b17e4ffd65f80528adf8d52f95cdcd076071f461421327f46c41945106c683f7f01748a78a48ec98a2ffcf468987a5ca52831262302a409a2ae8d0da2c5a5a05864d9d2c843cbda28ffc183c4938883ff88d4b66d3c6bd952ff50059011580c3a18089a6bb067547ad8e0d8f77cd9e75a2c21a3e22c2dcf26ee65b32bd7e0aef677ebd8a34074114f389866eb02d8357481940fae0e07c97909cae00921f20e337c7748c4860eccf0775ee89060ed7d3bebe26b2e5a824f80952c0ec1a85ca7a975614d626f834e15e9525dc05abd7383b4e76c107bd92f3ef1e36eaa1fefd14669036b6b57a7b9502e45ad1012064409d180c2b1f10f271a97e1db24d3848782df0539f18f143f810fadcbe85a78a4a700cfb1a318d61be05f7f7d540352ff84b2f80f6070250c16c5395f98156ecfd2465c0ff4e401117a05c4c7645d547f0b6c11851720472c956f6df60e765b4931f84dff64bf77ba5b73b5c9c2e1a6c09d0d48ec9208520a870ecbc7405f1e93fc778b34ad51a9302c96cd9d680090aadbf940e8a8fb27f6f262dc0b2443ec6149d01c5d49230348f8fca174dd43a81d5bd0c0a7e474e06e11d1522a1cbdd9122fb8dba255c8c25cd5c54c40b6272116d3e6232d4d0e76231512e522aaf7520a80ff0fb5f127800229e0ab7c97f0edc633c79e0fd6a1cf1b9b548118eff758fe7140df0e379433f72304a6dd73716b940fa0e70f1d6f24f5aac6318cc42529cd59058fea65d538348474687287f3f1b8fa68d45f1124b968a22dbe42ea6872263b4cf8bd669be10aa1f7e53509df4ba9fa3efef329b464874c8296b6250f1377138d9f82e50547e54e9868b79642a26cfa42df2a6958acffb57183a9b6f5cb21a242a0b16e292b2aa168d0d05348ca4bd1d023478bd930edca76c9592e2169277898e23da131b9e5599ff249c8801b2cf38ded3530d6a7056f2cc80ee2b7b7dce70ccd647df682b43684f712be597ec2f4d941311f9418f1ac69582ee7003dd6981f1011c07b9b9e48e52dec39493a6b977b17f0065a9168605eae41cf2194809589a053f0c72272dba4645d81a10dff1a11dd3e53e5a0957aa1bbc68ead312dc9811a3f4017ff44a393f401c42e56892ee894165a4be0375180ab1dcbea510410d08a9bdf7f1fa83c31c8a43fdcbb2211c3707b6a01221a7b13d75eb24fcf616650b0cd31d31c96fb119c944d58acb998d8ec94e73f1d77c65f9b4ea1a2b7f7ed8a3d58332bfbb8cf189f3296a6b66fc2408a64e0f623ad3fef80cffce864148fc2df6e26b13fc835224f047a53ecfbda25708a973673693c430fe6e014950b6046d1323d1b380f1ac4e6e0741e378c2cf7dab6ee8959724e3dab5959cc83e0278095589d40137a059d15d1b5e6f5131ebaf6c255ff763ac9e34316745ac614a532deb522232d724ba1126148581091f53e2afe7fddb285bc22c87355059bec6a8d7d468384e168b76e2b9e8dbc580c8a3302bd32baf2f2af9cad942630e6dfd5fd44278d24d341da729432066ba699a09e1ee30321785ba8431a5921ea29b6b8b67e4ae4b5f2c0ac21447cd0ca579c2e466cc2c49726b07373e8d7927f6d34bee47b88d3925face2a7508bc9b4db49029ff206fd2cd97ec77af1ceb28de5b26e6fa6fe5e1d8bc1a95ab598c8801c7cc9dadd45cb34651e771fd455be6431673c1d95c221e239aba810e97e0862a49905ff75055f0aee883bd982c32113f51041bcf0cbbe088db739bbf13290a2e1b587e3d52578a5d6bafc31e738a132dd6e615068fcf2e747936a8b7385b23719a6032e2ecf4d0bc07b55b062862740f7aa0ac0ab0a0f5c640060f7f0fc0fe4d0e5ae93760c82528d012600a4a8d68371290c9e4d9c6286409e4b1214c6cd9d8fe26f8f7409f8411617477a5ffa946dd863040ae875fe824c4f4dfc76d8208f32ac42619eea049b1876481caadb743605242bb6e0c9cf4adf2b74d011008bcb19922f622267e16bb35c5c3bde8fe841443bd40430e2f2407d6f37df33634d8cef24d60f7ea7cf8890e3e7d6e495ff9a3ee1128a1203fc3f4e1392722dd7b5716ca137e9251599cb922410d64cfdd592b9b0213e69bd818ed2a2181b3ee6eb7c38596c313c1263307a6ff5fe955acb52524c058bd1526604ce61099bf2b440e4690c1b80f74e7af5f9882c894d98b103009d117f41089fda4ca14f6d09e243db8ac6338b8b50173f1ec525745b1275378c78500996a24ff9ef75fdb591da8de4137280efb2de8b0c2a7d3ddea37e99a38b61c0743cf27388029ecfe132cf80b07f95b73393a769cdd08be1292f7ad61bc97019770e56b78e8378f0aea4da7362981ec6052c8c8a094bdad46511360ab3936289724832d747c8286105127d254445f4ad16dee6121136a50ec2cc55335ff8b8e662a2080e139b25ddaa27aa68b22300efbaa25626587a840addb64253ad545ab6fdbdbab5437b2a66170ab1a0db5636da5fcc91ce60d895229b85c24ba8ac44e022a07d5a8f51ed26edf6d160b63b8aa9099a76ccd8034d59e6a00341fc3aa1fc64173d6e1fdd219b833f7cd0bdb0fec501526a63eda1972c836d7637fe81af8de358a59738ae15f44354edfd735d655603fc261c0a3d6131e15c14ec2c472a9fedcc1a44e1b045af8a1a05c864f40255badfbe45af1d4af4108b5e763c54f07fd5d49fb0f06151501552c4119d40cca36700b6b43d0a2576268e13d32ecff069674057068e9482ccae4544045a500dab16100149f4b999aa648b4ef11bdf421cba3c846461c4252bd0a11fe7f9f6c09f37039ac9ae932ca0ac5105a07ee9af9a4150c2559c94ccbe33e910aead4410a5698c024bf59813882bc0def9edf71198579d5bfd9c8348a1368e7975c90c8fd3734869ed95f687fa8ad9170b98daca7121f0c8848fabdee065bd17b8e45c59c3dda596d5b829d2fcbc92a2beb2caf565b0b601b001adba96059fbb4af3fbdfc37985da0aabef458274617e3d4c1ad4d2f7478d4effac224b36dcaf00ce00c0d79d0321f3aff8f4a0298505681df11135e996345c555ffdf59b316f12d166db80565cf64cc6f2861f96c272a99be8c9df7250f457c2423d956321c58fd8095841b73afdfc07a6c1968ceabd99b354d9720c84c8bcd0c71c9584404925c0b6a0c7b5e52e7241766cb3ed32866da35494c60d14cacb384f090ef93b2252a06d3066061a9bcc05e7ab15dc4410f5fa32a4d96fe187333014ca87a1837a67c5f1d304b12937e76855a01803b9b5d1a66417840c3c8fd49248262c11d241128e27d2ec2438bd36270bc6f8d9709fdb1876467e2550616da9188e24fea2dfae239eb99a6fd33472bb3c9de86f1088241b83feb2a1264082d8ae1e47510520e86ce7c354bf6124b2629f037f781e2c2ac23c10d7c90caca43d3e1e16ef64d88e69d51660c383daad4a87644d41d46de3634616997e76432003a65bb2e2ec73665fa2e3d9e79968971046f08647865967ca0d2523ecc8942043ee09264b270c736e08fdb988c39af900be15810564476e9b374997b92ec835ca5e5f3a2ebca4cc59769bdf0917d0eb90ae0ce07b9f1f32aea322dee87947846cd3c5404b4e11684388677b29f069a16dfecf674b2820b266dcf6a48b7a81f90399d3bfd2d08d6590aadcc15dd53ff5d5c634e7008c43843202b11e53523fdf941a5121be6aae64c469a05c3491c08cca13a824c0c4acbec81a22fdc8a550afb6a45d36c5ccdf6014b4e44636d52e4a1b42ecf234ffd807ab2be966e939578987e54156c1eaefbba25cb78a82554bab125631fbb0d153ee34c6afb98a1bb3c6e5b87a0de45b08aea24e8294a0585b93484679723632c5dc7134a963e16a0e40182c3223b41dca22ff1910feaf57f9893ba1d0396007f0b91d247dea5cc12d15d55c415704244df1ac16a4e94b1cb25a8b0e17142c1882006140cba817fc7d0cc970ea62922bcba89907832c1d3056c2164449fe41f9e9aa7096a96ed41bd5062a11a4a8530dcf31d4647c481b5e1850f3f0d9e22776fbb45e99ac290db189435e0b192af17e2aee5c212efda8c5a69fc12294cc77b69b41052863c306cbb14dd0c30af55517e83f3e0745ada3fb8dbc1f5f44179e0b50a022f951f1957ae44624ff84a66b60b6fa7d262bfe427ca6df62e391a67d631dad3f3874c91b71cd05bed6b5178c88face28678f0176b68d6a1b08400dd0910f5a27871c15e4ea7c6001c2cf3dde8a8cd5375ef6b3e4bccc9ddaf7f32217f39eb5b3e44fbfe2c6b1273532ec18ec3e8a7d2b8a8a7582672708083c252afef60099541dc7064ac3d2e874a398d8f67a07f962b082ef54c77b47dbbf173fa1e9347c6d305481a8a412ce3db44a0d3492fdc180064017462138be569aebf234f8faa07c24ca31cca01bbdbe12bdb8dc21dd7dc7a1ee387a3db9697b93040994709ff436c328794d6d501fe2b0d11cc8a4b1c1699a08cf59ef36f77565782573a30240e53ab5f99358f8a1183ffe3c24e48ef0c7c2d21b0f7106277c73cc163ac6b0a45be1d77b9fd0f1e963f579bb2493129bc1abecd5bf84c402e3cd8b1984084d15344df7dc70b89458a3e3ce02fc025b9321a7a82e2ac8eb83875c04087825fc11c534af8c91bf6afe4d7ea8474c98c489eec9a407a8147a55772f554cedb1477e63933f9375d5877f16dc3c70e1468db9ba653c815a7fc251d9c5cc410632ad0fab6c327c3b30175f30dbfb866fc3f100ddb8d7cc0ee58509697710f2071149c53b9a67215385657a370d2e59707490d08a938a32314251f74c0611e85a6b7cb02554a3bb4942a477f1446295a7d447ca934b0aefe6f4d4004d3b93e722a1a4b9ff89ea0e9e08af6460e75900133040f40214762474e48e086b8c98493179d43fe10c39bcb18692e94a7f4238accaf23cca82a46eb042c2faefbe722ec0bcc1d7ae6bc9503ea18b3f3e217d2ceb2812d5acf926125d630f44483369e6d8bf2fac1ddb1d66ffae70bf02a5cba18a3dde10f1ad503604141f3c999cf5c1b6039770850440c271d746f3a92a0e460d49ac0542dca35c0fd43ad965841c08018710e50a5dccb8e1faffbc26b06e6db1de93e929889cbc30567811f85a4e17594826fc0f61ba0d7e0ad285ebe622a1f7febd02a012c214971f44ff2b3f56a0fe70b98b7013a1e7e184a633ac53548790afa489ea53cd0de107a2731bb195f7d3150ef44e873bd32ef838e8388c54ca54da432d0faff76bc018901d0d92f72088dc943f4f29a75f47f060016f994f917b39bb191fe93d14aeabfcc3a53d994d9dfba45748c6ff8b5206b951e81d2f0b66cc98464cb0e516426c43505d8334e43d15bbc581e2c337f4f021f4d3c562525be8a133765b1489b385643e851b5114f110dee89c52280419a9089c56cff8f5c344d82269c343c9c523a14cb0a5a70d4075293aed18c0b8f8b711af8c83194dc0004ff2349c0312a0e2c5b58c4c69b0fef9efe674d2f158c8d51800875c2a08518f881fdbb5a19952bd8544067ffdb11ab096f6480602e1115ea81688c94709c5b589190af7de49c6e9d9559e4cd3ec87f114470a06509c52fa6fc22a4881bbfec935d5400ead33e1880cd0cc2c1d66364754bfb8af7d4cafa5a59a05154e9e6a20f1e684adb9fb8099a4fbd045b9919419f4216160a873bce07548540e5102270af981f759e915490a1b3ed82e008ce6360d2426e4875eb4cd4dd640c829176e530fc5fdd1d08908db150e2090113055de22c225249c653d072a4827a8f092987e040de7894d36cc69c1df58b6148121711dc346bae7ecb60c92294cede566b751c7ffdc0ae5d1e55067c6e2c59a74afb2cb3d5ad93f5db2f43fa4b8c8f8719463c7ab4590d174c42f3db9a30a80a73d9001e44dfa3079afc1dde43ebc1a282aa55893d2c726635d36b742c1578a83a37b17fa601380c7c74c10225534e32a67626364846b2a34176f62a306e29d825497dee6ec3a620d242849898a1ed1dc64dd25b3c8a89b33ccdfa0acc390d0f0864ab2f8fa13fd926ea370caeec882cef77a443d647a4e0eff91d37833d4058aac65121d29d4530cf7ac3e15b678938cb8e8d80650e32c7aeb720c5054d7a7a3ef24dc8c54dba169ce9b51a88e5c1d8e6a5bf32540567d1f6354f68cb40e2c70347536dbbed62b6190786b9de7b99a87432072a796aab60c346fc5c0291ec062dc02a6ab048928bd03300e688967036826bfbf5e82f5209c1e70aec83750ff086d0c11c67080f89818846db022c2c401df425c05d87154d4378409e58f27d97618db96def62aab7bfdfce7e9b2aa977ce4d05f5e6144a3177a1c8824d7de9e0ae99f1f320eac9e61da97f41ff634bc4c9be5858fc6f62b8aa23a7b96e3637b622d3408c34e00fb68eba845370639c821f349950ef4d7d6891eb049b36a602858e1aa522ac0681a83421700f36af7cdafa69334a0d145830a64a236792c982e330590277cff295d35376eb98bf16ee679a85db458126328a6a40b852219d2e1c6f8cfb371f2585ebbf3cf70dfa3d0d061267fe4163c5504ff2e1bc01626bfde0513282d731788239c0a1f7da4f81e816755238bb4d515bee6ed083f5ad3adc80317fa3b5b42c681439d81984930f9d1945e0d4393bff025a67ce0647a7ebbd77b29adcb5cbe15c2382f5759efe466da8917c7c411cf1227a450bf18944977a08c948acf5d09d467e7999d0f992b8ca4b241270066a0f7835eb084ad4cb5dcf69064b4c448f429ef0e9c7d72168de887cb0db8a9d72115c71d31e3761100366dc06a9b50cfb39f33e0d86166c7ca6b0cc6663c20979d6a5ef1e97de155e5e5acb60f31487902676b845d3bff60bd0da0ed6fa3e0f40b9e0154f9908b8c1964fb299407a2ce9c0f334157929f98c2030659224842dd33fd4b79f657aa92e761f9e3ee9b4a693b2844a740a6c5b92e9b0dd2b71d66615a64149f2e855669ffda4714644d27bdeea27f770e18a384fe0e88a4091eda8ccdc19d196bee8959e5f8ec07a42c5a4173a83d10616a3021d417a872e8c23cd5dc21cc65b7f17d93905a55440f9144d39ce8e22c086978eadfe6708cb6dcf85168e283bc8cc1d204da94a993e408f3c7b5141b37e492a1585cc9d58247e9d7b459a05c0afafdcfd75146987d00f2500c748811177fb85a862f49992888ce3121dd57a5dd1c83a184932234cc94f0bb7507f1339f404905b16d1cb9b6764f828db1f77fc297674dcf9c91425f684c8e8d9ecc49afd272faf3da2b21cef3dc3a2ecd66a9e5c5be817db8d6c822524734b9adac6490e91eb8f9e1097f0eada68049b221f6df6e999749e50368b3f9902e08a26026e7a9097f8f6025552e5dc2372a6c72da2f8c17057b8916aa447dfa027d7309b23295b55218e11c444e75d9395be248304470f60395f5584af85bad4390bb494b37f7d932e05d39b4b36cf3648d04a4471edcefb4be53b970bf81dc189f99816d44a8a93698642beae1158295faa341491209541cf631f86e4919c26271547e68c8f91e2cc8b42678c26d35ab11db86ccb2e2d7edff468fe5cca6fdfa3104089e3791e7d948c149a5e523e7bd23d256e027df71a4a2abc11405b6bcbeeb5b58a17ae8c5fb0dba16c1b560fcbbb09e6f83f4dd24dfa2dacbe243ccbbeb8301e12a25b0eb6c6689562f48e23d1f961071ab2d6481e7647fcb2fd2d12bc812a878d9e83061e372ee28bb449de167e11729f1e14d6c676ce4e21586fc03399852d91e8e3e3c1b12e30641b182609b1fb3f890620c0057a60f0c93fb83556613b53af1f8efdc8a03f3639082edcafca24253e46e9215aa3bf1a6d87ab7c9c6f5956086270c265d1321cd2ce47cb71b7d15fac4551aff536960b57f86ca89311acd3eba0a0bc90443766f9602c6fba2dd516112dc15a2e0f2e7eb98a671f2802bcdf5bfd24faaa7c9e414998a2831b0bb218cc73907c6a2451908e37d7eb7c923537ce52d521e5901e945e44f83107c70cad622020162da3d51bbc2a8c34b7768aaa70e5377356361e3ed4f542b4d7c901183794c1787cbdff4801e792176b569910760f99fca1d1b05b7c4eedbf47cc6e4f36d8d20d09766751a91661c7a83bbc82f51013aa735818ac8b485b97c13dcc27c3964750d38015beed647f9fafefbad9b128440a0ceb83ea555682a079eef1d108c32b117c68ca00f43028996f7352f3cc4d8075604f205beb89ad60c8a9fe0d690d60a961743ad749653e0328f134d9db9e813d510e2fde9d6b37744e3eca99ca93aa5180ca81c51701ae89c4c3e24c0201304d0340baf53e71ccb2056548ddabc9d3551e9633967a9392c03f5a6e86ee3c0bdbf780aa2b9e6267aced642af02d99ad142070e9e5e7477dcf306e91190bbf038cb6b9711b80f11c4d5e563c458621e9d7284395cc04e25f7ca09302a31b79121aea674c765647133c435341eee3661e39472d369612774f42a307046ff07f1541541bfa2c1684ac46f5ee146fb2f0eed407ee23246e017cd901d7fe38ee6d907bd39fbcbdba48acb1e619448d3250e733048c81bfa70472b62b86e402d4c1643da64fb376f3c961652d97bf162eab57b4c623ff2dfbd6ed50cdf365f19a99d72921662050a44417ffe49c07a1e58df3f9588cafef58985cf9166560fa2c782f0d6fe3e05c7b2b76dfa23db9895457e2173d1b584e8ef1336d499fdd36e2c035967cd1483b8a8ff1df5b60b1564830c964e8c320acdbb2d2af04e37550701f393fd0752d329c2ed221cb4f0512f536569c1b8bfe69a80a799506a91a0d23ada0aa3e6ad9e842c212efc979bf22be15c42ef76eb2e9f22ef2339946a301790a71eba4e430893db5faa0de2819913a1b433299536a3d2adfeb9dca41a8c4d4c0086ae35ab740b7e35c77c86b1fdbe2a16e60f1f052bbd57a2246874ea278e219125f0af16f565d89ff57bbaa509d1ed1018f82fcb6d7c8619c11ca11e339db1295117478ab36865e1615ef11516e77b2aa15cfa8709325d1e5b7ddbc38947b127e7bae83c72f0436aae44142553290383b7bf023e17003eb255e0bb47616b5ea3b078945c7b4c93f9b04d26220de2d832460f7fd953a0e0e5091325d940c69dfbea0d4d362c4b17b2abd07728bc8ff2c2fc04e71dee542d2426cce4a06f9ce8c5ebe6aa08d1c5889072ee6f07ebc3443923cbcdaed05e717dacc8fd711de8ba88cdc326123f347e06e7df84838591f242e5f2e171991a91ba622dbf4c2f457c6d13bc19b2e2fc157232d40b3990cf1f19fd2414f5ec4df892752948cc0be1329108074ff9042f340969aebf9e8c6010b2f9e41379ef7520f94220bdc94e977e57b8115dd64d374e9167034f4cc13953311d143f8de6b8f66c3820fb316c39ea2dcbea2a376d4c6490ac61db0767aa13b84bf09448f9be892e47ad78499cd94ea71e239a7cb9ab2008be2334ccea47f63e1b0cc8381097990a2ab9f8b594149ae2e1125220c176a3297d843146107749ac6bc80c5acdfc73a4c94c4db875f0b8708c8861d6f52ec9fca5ae38dfdd3ae04c147fbdda818782bd4a2eb12eecf4e88171b846275523858851d77e2698777e2b6773cc61ab8f6c0332f520232413bd4f8402d28263002113a629682393377265d4820945859e4474db10d9a73a9b3b27194e2e453404589a2623c021b684131722ec693778a30e8e6666160b2ef95a03978ab752b4468718dbb5dd54c56e64ca84f8860cd8f0aee40dc90a8a1bb27a10a4a6747211da203e0c9fda046817cb007795c76deee804796a67916678356eb3244d40a442aaecebf8b0f058f57284f366e239f8b8380712250e70a37533d8fe61a0cee50e6e7d7b1b5a28473d0028b6ead248cc2b411c5eb984cdb7ef35ff20bc1280549f9a458d784dcf8f2feb5dfbce756193d9fb631237a411df51b156a76e6c96e39d04e884201bc28bdf1262c312dfe333e3f0fefdca0cc2a9a7ca05d287ac3408edd8c5f02d683fa24ec817f3e26d03ab8359ff3bb71fcd27c236662bb61a2929ce8b9113ae4bdaa03ebf21c29b48c92ea9743a6dbf5a9b6268200222f2b18733bd6db7420c1927e0cf36fe2a8ec27bd5d260d21acd34c952a3e8f9cab2541ecd9bf83b62396c3acc6f7cdfded38965a8f83e746741b8fdc45aac25a16ef8e8e8fc41259e7c4aead4b7bfefae3c74b867873aeb1ce1bd7464a8dab4c99591dd5a47da388e7248b7d5e0c1ae56bb5f0de03a61124b6eb77e66df52699f1a5d323c8f715862d902b4b4990ba0eeff66bea7d68fee360475979f00bedc8086f5a408c6615fdb094bef6c22315ddecc86b6aa50c6fedc6f51630156500afcb9d8f4badf371a111ff81af6eb3148f614342cda8f2d32ab5e47980afe4a16dc8ff04bc09bfed70667e3d550b7283f2584359670f0c26c1b823bf3d42fddb58ec2c9b72bb3275f2b9e2009f171a815af12340cc91f191f95242029051048ee48542361ab7b02cd16adacc26e9d56de80a86ba821530724fb9a5cf64dcd70e8e6d0ef835e9d48a86c4c63acde8e8a5e8ca2f506c8a889c8acde387c325c17fc6bea518cf3991444dcca397ee3635ac8345cc6b723d0cc2abb9c57db02fdbd483de2b2146e3908566182ba6c4c7955c2dcc391ff0d018b69fa1129043c9b55f92245e3799968377c4aa12c39403107476a7c591cea7840606de571a90f2934082dc27d45d74bb5d867da7c0d9ff2f9c13fc349a6a83dd396a5c23d0e886d9c845152ea3ba7f7a3200ae747eaa7299a60449b282473c446e3282bc38c6fa273f6ccaade84b2aef77532fab75ae01ffc3c84c37f8342089be078a82380f9200a9e090aeb6d5a7941213c919032da3797e38eafcc31cc1eca19929f698dee1ab5b1b2cebb405e776f26cf06bdb7b4d3ef9023da4552a0245f368713a030a583aded7aab2764b080fc546802510c0efc7115635cbb06e185f82a48bd6bee4c1cf29acecf7acab3ecfb8f757c42e48257d9f8f9f144669c126e81b954b075b6cade689cd1b3bb738fc98257b232024f086d472e040f19e51b9bae6a5826d52a0eedb7e27820ac8d5e0752f3cb28f7aa0860b38ba809b6d39e93379a0844bf17ac62db4cf635c1ad3aea2cc2bface449205d2f2ce1857984511a53b58a5656e40a57d57158e83cc6c20a0ac392fe319b5987138ddbbd97dc2a1db15a3974d08b7ed7b1bdae53a4e601b7dbc42a7900f4e6d2f18f4e0d90cccec6191a09062d79004629679f727ed285dc899d0a23e49b17306aec31e2f51579a0dcf3008b15f677901aa1901609372dcb81a9c067f9810e3099c1b0404b21fc109a1de1f3634ed673f04c02c20495f23188db2db65967be8ab0cfdf2b488dfc918848fa35a09017e426cf8e653f398a89c79de06e4b00734c417c41ff7d58bbd832d9d0d8e7bb129b8e049a430a28e886b055fc303303f3ac1a06152e50ebf4338790a4d9979b03d88b098f144f0ba34aba72c8f2452646ab3fc1880226e9c35973d718f4ea7f6e178ebf63a216a7ea4d57b93d305b1f388e1b26a109bde77e32c32f93717d7fc2b048a527214a4f1eb4bbba84470bc64d651137464afb3f7a35a9fc6004dcd239ad63f5a227a83c2f03a7011a3465ad6209d3f2228766551ae9c393923320ed61e615224a39115887a180bfff4c90933d67c33a58407b369931c9c44380a7c862ccb8abaff603849b14ad779bfc13c9bdfaf227fbf1de813d327c9c91c1a7f19e4f0c014fc384241b14a31d125597803ee9d38f8d0b2df24e0966cca2947d0261762dbb9655ab65a125ed5802064eee7d33a02366bd7705a8d29b92c5f929aa42aacd727ba1d30d298c1051402d21437ccf7c5faec7f644bd8dde341b0ca15143cc4bb6e44561ea12808d95b6ba822f4aab063da3a95bb2950c87069f578ce6a5409cd72c12f1646e2c81197df8cc10d3c872f54933620d6d145945a69fc9f791d7255a042a68bc4e94730c2f3561ffed3543ff40578321af679ef7f626d6597ea11696306fb9bcc3ed1a1ce89a92898c962caa9fd6bfa0429177f7f376eeac920d81128ce1a101f60b00453a82382354052f332207d6852ca388a1b2b94330c1e2970ca5b1582b52e956ff6cf0ed53a824199261668a754891658194b168120da76e09706bc57a6a55e61db0b7a478873bf1eec5ec16b51c4383a5b50890b0d480e90303dd9b7b98c19e221ea5939b1fb2b88e32cc44651323161f3a1400027f653c7bc0377a01c83c98725cd53d73bd765c97c6fcf6f32f02e7753ba5319178c567829069e7e102ffce63d7f6b2e7b3b2240cabb4ba31556f8629a8bf4a579bf5bd74059c73c7953510f0fda854f6fe2783ab8fc06b5bdb7cbbae895e1bf527fee8cc70d414bdaa8b5fff3ffa30e611c4b8ed73e8e28f71be284c1d4102a44f3a268f5a3a4babeb23a2889bc6a72f4489f19c4b02d5ab1e79356725c8ebad612c61d6fa40fb5fc71ce99232644889ccf0fbf3142d8080d2bf3469e07a53e86a2840ecfaa59256fe547e8b69a8ed953459c22f1bc091be1a345886d524102a217fde7781ea3555a9fb42ff8c9c3247e05c3c37d245d444d98dd08fdc8ddc52999a4ab130b6d11475b248e29d07ddb4072077bcdf487334c44bc56a851fd82cc721a3f17fc7d36f376f49d18b6d924e617ee7df1883ae691d19d0b25e86b807cc545b843b9296b04573b3b8a6ac9105dcbd2eac0506bd69eff6dce7e758e9281af37a504aac371364ce9ab17cec1289b72bd983f39c46fb6ef480f11c7e94ad7438efe8eef2d374e25cdbf95fcb15ed42038a2b39006ac7aed9dafbf85822e83e4bb205907addb12a1050bc5635ce72159bc6e898fde243a58db3e41a820816b5dbe086e79ac4790a85d27d0afe535a28bb104d8b8250a621b85bae6a4a33f280d37a11ae4642aa20f1e3167eb71c36be7ed01fcc01010e177060cd798fe84ce1dffd80da68dc760e9c70f91df3bc60ace4851d1f0299341045c363e3e9263af5df7d4ba58d3f9a2cd9e3d10be393190941fbc52230e33645b01494d26c1ff02310aba7f103eba375f16ce3cdde9e7a22c14e6ccc3b06b67270f00aa0067e7e248ac8e724e75736cb250e8e751272e5252e58a54e2837014a7f3618a25d220576b345d4936731a867540bdbc3cbabe464bcb30e9b9f7adda14379b502ee105afd994beac8928018b8f5aadfee09ee3dd6e2500177869706b8ca0af427cbf01391e1896abec9cbfc81a698fb00c11396973fcaa3eafc8a6869236013d1d0e225d952e59de6b8695f04e3c7cdbaf897703cef105b703f70889bd312579438011def64d9e172bde5d26946cf08ee29f1ab893479dc62c8021acf7ffc0d7515270a222c50d00603cae93a54a5639049d94a0cdd437191e5de7da0963ddf22e85ddb61dc2c76736d4d92b933b18c60ecf3abed352ebffd42890e72c385c4dfca5f9d1b9d079e5ac39a46f4fb93769a5f002a48fb61fa4875ecccf75a7d0de3104c5de97c0d69d2a1ebe51ba43fb0d50e482404b148f93502161e6bb6191506253ae2f5fdc55e9c913cbae0868a253c8e34869dd07ab4decd9256be470271bd75109379f99ed2a1ce03c1df4d77ac8646cac78a66b3baa0a7c5bffd96f20dce6fadd0878111f075c7f291adb1d6e1296bbd289e022e4081a676376da7c1f75f784c3720736058817c7e109d5e0abb60afe4026b5294f1869750a0c14d25fc19df42122ec1d2794b8a5dac7be76ef820f23e1f966fb18e0ea8e4d51fcf683c0d38caa537819bc9024ae7d44e22a3cda7a940d3ea597f25522a5cfecc766f1e99961ba3851f5f138a6c4ffb89c1761520dad50653efddd5725910704c918f7241b92f8b472a25cbb9424df03bd198f92fe55b5b5bee1010a1c076db016c01f94743789a335ca68576c45395889854025f6abf640b0faa6ecb5334d112b425e24ede501f75491050b3827770392ab59cde1a4de4fd3b60abad1e6b0908cd0d73d2a72e5dca065f065cd20663a7e6fe8bb0b5597ac860a03a3c13b879788043b33130d199b431f5f60c2ed8f6d0ff1fdbd3a7c82004ee43eab5959efa21bd42d452c808318687e4f68721d0244b506098e230bc8cb50833a94a86b5383ba9b59fcd4c17ad45292616c0f120bf31d2cafc93e80941b591d9ea348c880a64e665eef94f7c71c282332a4bac002c8ce612ef143cd6081eb0c83166651b56fb04489b6442c93cc605dab7d3c466c1b6bce572a48c472060effe63c6f6343c0942459cc6d76b07bdf4aeeb0aa589051b12c1751fd61c0cfd4b95892e02a28c47cf2fe5b287ea3cff9da2a6949f10ede47a95ca89c06410eca1d7cf9b837d9917c134cc56271be0cd6020f5cc9b41714484324f862f64ff0c4627b4f3224970f0c8168a6c9307695255b69239e5391a8bd47b6790382cc1803d37c78753c0bb5ec2226432235a50de758dd701647142fdde9b211bb5c9b0810597051bd3eee1b64d4feb6a737826425942673b3243d9fa5447ce206c68f83b41383151f42a40bd243f23b4891ee6f1a774887afbbb37b1a250833bd0c2e91a31fa794173e54a0e583d8baad9c5db7303217f7e32ba383e6229c074e655af0f32ab1a30bf5ae8b7d0549ab20857d393858920ce6744006912353805c0db2e0a4c86eef59cc0794adfcb67761b0a2a4402e7f0ab1ebeca24c49ae4424c2c79064ae5703e0c2a23c2aca66c20721106917cebe4bbb5a22987499b57444d5e728e3408b2caff77a164401ab631141c8d6e170d3a8c92cc54e2b817237a89a64ed9846a3aa0abc0c8e08d8342df7c1f4a180bcbaedade486f3a9cd944a38add3961216364648413adf102a5c8f5e1a28befa3796c8bb9ccfd7789b2f8ffe38c80ecbf8a09379ff1e0d5c353191460df84b2021c3d1b6191427c53ac0b6ecb9456d396665dba088079615fdf03d5abef3c51148f4da162a9354036d8c53a7c1d1814f0dcac7b1814ae24ef5bcee166d8e3de568731c2d2e425ff3117011de5a304a8a47c348ee7e68201f836bb56f9c0c000f417a0f2dd32bc537231aa42a4de51af2b16f6b24e93f33bc856d2cd5f12fd9309051aa3633936d0a3705f2f2e14225403f5bce3056daa2514df7141f4824ce46735b65c2df73d9e68151120d4cbe65770ce2ea1c0f186cc9f883d4078ee3b8004b44c312f50e0f5caba29dc8d48c33839beeced4a3cea93819261cc6b91103de5fc9ca1be9c380393ac75aa7264f6abd958f219600da2d0c289433e34e8e96ce8af90094c377620a9a4c30f1e587eab1153f80d46fd7f3478121d29a372491f2451606d8576b931ba48254652d0c4d5d98d3cf58959d60105ed67259da44df56312641dcd125052a0ab2445e69a3870eea91a9bb9b54e08271555260480f0d301058887e44e3e6439ea12c0aafd32699c0d7040a152e4632628cc0990c9d40a92ff6e9382620301fa7f8485e7f97f10d56e3f9a8be1da724af434870ed3337929db90b60fa1407ba22b99d8e316c43b84083e12980272a2ec02cedeafde9df7ccf8bd1168128c01a22f03b0d461c4f59606620bd9777ad099c4b66d48dda846c0cf29ff910e169739f1c150a3212c46a1bed15f18594cff48275f5a92bf445629c77790b673f145a6df9bd5825c859aa34a56e24804a70c32e4a01809c575890c4859b381c9a62a7bec932984ae481e12df616bf89abf13e0d75461b9c68761a821e043113e8efb8f7425e72528f877ec5a97d544888a49820773fd13239466967638aa1d407fb93ba400b49e09c57b09219c039b4acb073c7825b92ddccf0920ae1c2f1ccbb19ea629489b35f6bde92aa84460221f7f2421a2dc69908560274a62c5602d2681d228ba2c270e50c36422d55f6969995a200f9cc697eae4c20c7b0c29c0f0193f4021f83dc318f5c07157e5690f139dfac9eeeb06171d8f8a0fc78ccc6a3934027de0203eeaf88cd67980d178933352f398d907e368d80f2e8503ca15ef90e8c84e04798491a0a981e3e17868c72cd3e5df0ee5a88c6b404b7e7f9f1d4d9f317df4715de8933bb5b96fda9a17d786f4a37ef4b99d1115593b470b27ea2eb8163beb9e023ee4fe1ed9cedca38db90d91d98a5904ea8d368e274ac19644c31fb70196757bc4b23aa4bd58e19bc161b6ef104de9f734e76629b8cb7c4b4681a4e84b166742b881825c0c06d3ad561160aebea9f9fa0e0a4c8d7547b40559613e4c327503a530376e623d9d79964a6884edb11e36ac3786c0d352eed742444966ebd71ebe15584f036272cb9653898416c4ce17892c2953375f975c1e9afc9833a6859106dfb9c9ec02ffb192e9de920f9d3a58318405a56d585c84a4546fe5a40b45bbcc7e014acaa422d707057a4aafc2b6af7861d4934042b20ccd340281652eabcd9c9e436384f6212b00fa513ee51c129f0846aa98c2b4b7460b1b72dca59ba891261d5eafe805c51b4aa6ee1f80254da114ea065b7e33f1d9eb06276efd78c7f0bf32d248ca49419e7eae397f05943ee0d166704c9a2860a49c16273a03de45e32595af959e432aa17bcfc0d0c9973be205e02ae011666d44c6a1bbeaedcd6e789337dcf08d6f7cf31bdce86637b8e14dde74c337bff1a66f70a39bdde0a6377bd30dd3e3e9e7f0c411f1191692470e0e8dfca702c8000f0d153ab802144b7450cc243c66f36b89aa436d810182c4c3ca6081aa9dd414ae861fc4e7fca190459aa2eaf236dc053014c2fa93c02fde8a2b10ace08ac02178f67f1a67914ba82869c0dec3876330bf18e4428d7075b91946011a8265fc61e317fa05d56416982564b0b21f19a1810bcc87913aa5364ee95fbee0173dba87ade4667b929f5ca26f3d8767d44a4f42d679bdca3412db12490bd6c06c6ef03e4a0ffd68195d429ada586bd859b625b65ab4eb7297c7abdff2f703c8052b35e8f4cf1e5841aa153d1eef82e2c6e914748effe7a1462c9b9c8e76472a003c9b18afdfe1a0963ee746cfbcf41a138d46d721f874120ca7c78333fdcc0f6c6b790199246a979153815614e532a2caf947c16ada9ee811762d4cc71c0d35e7e0cccee6f79a57961193a317135dd793b6fffb93ff7e3918fc8dbb042335b838d8df3c91ec9e7db8fc2b9ce5685587b446284d77a9f744c9e351d7c58d3ea6fbf27c026e3d8600effe109b74be759d0e9c5aba117733fcc5d05ce6533a4834aaf3453f4c394e6fa6695d8f0635cf81e1f35a0036eae5eb70a0380c5e351fa71bf295bf9aca827d02368ed51b7b477dbbdbb19cf739b87f1351a6d21437fcc73a22878443c09801b1984897d81ca4dc1807862ab0d970377c48159afcdc736c98d0e34b5726f214d2494a4f62b3b56807611f19d53a0c003f87a40a7897619591f79a561a7e0637244d4cdc4d23eca81cb889e12896756414c570b313094b4ff214b5184e2569ae92643055ca79bf05397d91e802eee1a0b401b6fbc81b30b7044495dc270cad047858f476f82fa341060bd95afcd98d266be1529b5311b98037fc0fc67cb2135b1a1b8e7138f6e5dc09f23b46a285ee44fd526c4a81d25a099bc70f0b95f1903896b710f628f2056e3515127ab94ef7e19f00e19768740dabf5d639b6ca37fc68187f1f9ce3dbbbf0c9419efa98193246cf93961eef79e3d47899a4f3fa2e0b19dc0034ddcf684a3d99ef36ac4112d2233dd26b3c993fb674817ba5b4e1f2a92955b5216c5da40f1d23beb25cef7b9077a248426d850a5275d78e9d5c527698a6d05d455393412872f082966c801b587447bd65a604b4891c4e613dbae3fe97aca53b3f548372b926b3cb3c7904856d3c0a20c6618726edee5a7291eea7e7b0d102fc1d46f695364289a442e337eb249d0dc02cfed6d3eeb3806ca2beb12bf12c5e74c610fa62299a113e27d6f93d1d45e08aae5f4ae202d748619ddd6f7f67dab7b64fbbc982aa6ac9b5f5f1d56bdcb37ab9164738bc06c25a25f7b5348800f1c2330abdf20cf2cbde90a35b26f9e5feb55100dc6de7f982bf16fb562e5575bca2baa0ad162d96d9e714fdd29d786422caba95e4143976a768eac9ba83b3f04447b3b7be91287ad301aee6eebb56da973ace9a9fb281e39a42fb4fc274908597c649fad6e9d9e2aebb14cbdd1bb7a3b3336978d1fdb0d7f580f2a2a66d13e10593eb8a5c33303f233e169e99230e64522e24fdb853ea8ddcb4952308d01970106bc910e06fcd889de917bb6b9a9cc94af7089c96af964998613ab4e90fc45384035c385a0659c74232645a40513e2c29b4f79e9e14c30a1e1968eb70c78f4b01e1ad4771ed6200344023f7707d4b9e277b5d22d4bf7fcfef5d29d82e3254a5d48534b3eefd143ddd0ba820853684f0e9b231868604429325c4400b226abaabc482b166f859fc3713598686e7051e45c66ec08e25cc31ef7858cdf6040be3351919e9db93ec429043363e84997afeffda8702d2b2bdbdf7d1cfd0d618f26f02aabcd79aca3953e58ec5bfba98b026985d1375b1a7ff9034d8b10b2777a1bc12a4c0c7634ba99c9cdbdb19791b72723c8e28859ea6bc0180fda3acbda09496a13b9901e0d160b5e46f2e8d5e4a4bee53782063b0efe10eff0101e4fb7bc5da2834ebd9ddae7a11c41d5a5c830ff532d2b29213cbbafe97614924bd837a780c3c257fd7783e2fa72ad6c8cd4948690d866e5ca5ff9a9e2922ca8c849553e29fb08cc2f1b7845ecb62540487944d740426367c101ac185960628cfbf6787dea6c6a77bf644a6b0e8a370df4551669fb00defe70ad8e037178f74e7e0b7f74668da6d9b33cc3c407052e6f38a0ee5f3ed781442d56c68479d3c95d58e6970d87dde8389e97f56e1ceb274ac22bcfbd4e223a478d5ca6f4145e651d46b25c4b3489be65dd47d0886ac59dc60419765aa1654af08cb901ee0f1efed5f4a49681ebf5cbeb6f9c1ba4341a749fddd917a20c42304209e0030688296205c80a19aa75f1b246c62b018dd986948a09b08e30001b5e9d929e795f14d8ec5d335a4df43a05b990db22faead7b85d3431ec28596fe4a49e18319a577049741adf100ecd2d41a63f054f71a8795515db392a963e1f585417113682583c534b50a73522d459bbe98b35ccc4509393736c018762e9ec2fe8fad5329560c20cfc76a079652184ffc62ff103d00824cbe5398e4dc4953408a8ada808c087317826eb227b3d250f188d2021409edb88f43c3982c31dfce449708aa3316b95f37ff33c37c3c41bbbf837af3633cc2a7f34e185049dd79858394b3aebdd21e4d3494d6935affe042bfe21767066ecc980274923caddb67190ca183742907b395d34624b10838074ac41629585b94e6d25ef29b4a69e1cc16d0448902ecdcaf362456d0fc983e32bcc4cf1ecfbe4420078662962039fbe7eceb22af6c1be8cd2afaec4c304a4f17ce5de37827c7bb59b7be41026996a34bcf71bed59d4082c042aff0aa6edd0dc6ab10b8ec64e482618d490419b7f33eebd98d5048bbebdff0b14607568e7ad82abd7caacf5f7328629f3e415133238f01a71cc25bd22b58e3f69c8dd6372ff8e66a24aa8f4c41f2c843a17c982e3b5cc2762d4eb95f3000a7af9a11e6918df099ab0219d584c82229c14679d36fc8c54437ce47c36ed59d0eeddec74cc93a91731d7f0ac0068aaba9b99e23538da44c108f5f96cf378c5c6c18055de83d341d594498038397bce3720f3cb0cf4a8a3e46e697ceb100c6e67dd8ecc0c1733f2b46695a091fd376335930a556a88b5e56b44f52e8ccb165b0c3775871e0812ebee00d216a670ba2aecd768ae39656c52ac91912f17483af9c41e41291f943f0b77638a9705542ad02eff8fbf4a61442deb65e24130f14cc22133dc01436f183d84cf3af1a4908ad666e522603cb3039984a2dea77305fc140649e2c4d30544d60317e7bbb281b00d20b2d5de84e06c94ca54904c1a142b2f62b00a52d79d3a577e87ff07b90af62b6618d092449c6e16a02045d8071e46fb99e0b7f6fb39dc914fb0dfd1985aabea853352a164c9bd6786b4aef7aec2c5e3d8b57acf5765101b6b969e1d86890d65ac33f984d4b7af0bcb02e43352bdc64e63233af77e7532f7cb41a257283fa270e37fa622b0721e789f87f8dd7f192a3dd5df6ade8100e681987b3b2da0f4e69f15c95b8b331b0a0f0b486f893076c151d0f97c34763e5858e27649a2eda85ca69bbfdc1a8808644ff8721f41e21f0c1060b3eb3babc074ba3c1c4a8ff87ee4928ea175e1e1f3f268bf68f18f3ba163ec2d8c5f8348535c0b0dc729ae2c0da97ba1a349728e77f9921e4ecfb0569cb77db8c951659b2d04e619616b15ec6fcddccbb0f48ca1cd0762497b4f15a97a4c3e9866826d87e68ca434801cf21cea127a176a4d620b91c73541c3c8cc7feb996651f809d79cba19d45f20e5fbc25248e2ca84b7e0dd2eb3dde05a798869b42e325c36b5d8eafa443e162547e71580c67f1466a47f5621c4cdd4d2bb9a2146f2a209c6c0057e9813ca4a9ff33054345fe9a2a0174be74839d5aa945c6d769f233ecb1c6782ed5fffd3f38439bb72e940985c32dd703250d6468da3b62ac0a48fa32f6f68945451374d4ee0185153295b4fc5775a867883422176b407f00c1fe4b22786c62934bfc851128a0546cb640ab1fe8f96562b2ada635de800516dd730b04e8138577516a2bda59201908fd896491a2db6d3274401646177172bb1c9f3d7148f59f0a011ff8262a628973faf94b88f5ac3836c956fd62df9338aecebcec483f0e9fdfb4b14aa0fcca5681018cd2129678967ee393b1acdb2f6bead44109c614e45c5a9c76fe3236c342e1c5afea5e4ae137d0c8b59174f0635dc8ce2e48e676cc539b43662cea4225d3a860656c6afe24ec37935def58399fe95b346f979ea3e762b026ad5eb5115b58070c7315a6fdcb1fef5127505a58b91d88fbf4aad30c97902f6e1759820170505e43d95823361023f9ec2528e534814fbc06540b977b6f51420c23fe8a0f461c09c287d702be3c8a6c548774fd96206a20445962a07bb105d8a0c0c1ba8499a3625a976f2e6128ef1735085b6213ef7bbb0738828e1d02b3c03eb819d8bdc187936eac536758dc60dbf905d8e533fc8216eacd2f4a9458a1f606f6efe80abf8bb889deb334b8a3de2b69f09519b570bf88b6dacd635eab4def04bd56611bfb18f41376bd76c80b403e5d3d7a28d6d73c4d56d07a951bd1f2869ca6f0f1bc1e131b796ed9b87d07d100d463c0b74bb93c8256e72440ee633d7b9efe683cd71eb370466ca02f889ee37994d1ab4f90da9b37d5dd56eb390aa00e39f267d6e0875fbde78ed39d9d5c3d7a97dc480fb59f8ee1ef11d1cfa3aafe08daad2916c3dcbe209045dde0c0bddde01f52ac37975564a188f0a885fa0fd8e53156d56b81df397d4325acd5c10d7154c876e3fb113777746b9fda2d84e343ad89ae0525fb9cc8f40677eae5944503907a78680d194fad9ad7e0c66bc0856bfc9006ca5aed0bbf7c9c9c8bfe92099d64c41e9e86a235afb51a130f8c315d3dd357513469acc068a2caade9fc4d829c340857131a2c656903698d9caaf62e602a045667e0ee63f9acfbe3cac2c764d9d07c7529ee505fd88d16eb57d1904c67e6dd7a3bd678ac5a2e44d6df872d3913e58238e38c30977564ada27ccc2c916f2ee7e16e3f1d49e7ccab81d5c5f2ef00ccb300831a7a401ff16aee409949aabf25eece10f6c39dd360a6fed63b266c0f05a67924d53e9c6cc2c89ee23111ca69983d1057907d2370990d88680c17a716446e0d267fa4d40d112df984de427c4af5c52842e4068680cf3e79c1a78465fd7978b073822890c908446eb20676a4487abcbd6b210c46cf9240c344a1a258841d068584c401298e6f65420801e9d8423c1686603c7559095cb91e39f1c1e444fb8eafb70bd2942f52c2e5ac189f5ce2dbf1dff1ff5c17c7ea239ff02b7a00e821b335c4962c4871fca639cdf22fd0ac399716020adbe9c9be2396db12b90cb91608e68827560e345105feed84c410581050e76c73c05ec1447c529885eb99bc1c4f7707be2cac0b0ebb81d4f45e7a5fccb37a7edcbd18da80decb2a663134f823b567f65fa7c6963db9fc020bd4c4e147c1833eacb37390d2a9034860ef75d0d2d2d2922da54c0103108910f010e1d499cbae1307986fc9e47f792b3d24d6f8c4016318641d0c83e29edc6202fe0bf824d86a224503855f5424f9351aa898d40de5d75e47d031bff65a42aaff85c5eb06feaa01de1193e545557b19217d01e1c583268a90ea5710d250aa2ad5b55716a98e1da183f4a5e545156b02ef88a9c2375278070dd41178079ac337fabf581334612875448a63b2a49ee77939e7777189a9c23b624b641a28a781c23b624c6028bc2316856ff4a3b925c6bc44aa3f0615bec650a9fe181338c64414de11c3826f4ae03cb128dc46c756d0b5dc5dddc768397679e603c103130ab0039a1f623a90f1c16db44c0f323cc8104066496607b79179d12146460e6e332386128c0c0e2f646e90e1c206b789c192c9c138b778b15a82db681725b0cc249c251256e411dc468f46701b53dc528645701b1224c2f80d414c636282d0ed88d1c26ff4c754b98d7e1dc39fd1a5dc6aa1b98c2aa14b5927a33ac7a4f46b44d12514cd65974673a85296e55c2e9713a2476717694c4acb603e34446b3030286a83bff4bf10205c05a1805437bda85a29fe1dfca5cf4fcf1d5cf66205674ecb5e489127c494881df1b123b24e4c96ec8a29e13a3131f01e638cf14a4b76e9d2a96cf221bb3c7db10297bd24e08549bf62b2649d702abb6262e03a610bc029e0af9e264b0268a8d216d04cf1c2a4653430f0702aebd048d102c31da42418958e63044e8cc9ae85eecb78640de1010942813c084b378780512de01e1ab025c304fcd5afd029ab5fb5649aacfee55f501a29fdd2bf4263aaf44bd344e95787c459c350351a283417ebe1ec1ecdd53a53c8997e28097eef75698b7cb055b381516998732d8753aa6b31a91c444820d518638cbb13a6c8ae2fe79c73fe1814a114270c303e612abb74daf5e0ac954d594e3003a109e537d5793c3ca5a597823386e6501a10d040d180a064000d54d6299bba16aa84e6a28451ce34a3ed7ba6280e6ea31fb5c16f948849c5b06419f8fa498ff13fb2f8e48c726cc5e090924972eaf231a68ff7e5d85aa55dcb9bb8e2001034a5a2373363facc983e318c40654c9ff3c9b385e64c7409a7e852f75d8c3f9f8cd14297d05c8cafa13934c6ffc8de9b92ab560c4b7ee99f8101bef85cfc8c29c44bbb15e828b20a84e03486c57964c868b9db741f930546ab166b418c0531296a21aa94756e259a4397b28e9b3ee739ae7e5c8d248a9990c150fa5d5a9dbb3ab456fe18922f6316e952b32ccbb2488996336618d6bc1fc9d72f8e2886eabc918659c44361d030a130146622eb68c9ad1716a60f465f542f38c556897dba0e00356e9cf853fc63ea4d54e086d45d06fae01ae509219a731bfd313497eacf91a30159677c34067305ba43aabfe64ad19cbff49328bc6cf0a272977eef33e9270ed15a0ea71c44745f8b01418bf38a10c7a46250b88dfe9894f3902449921f832294e28441aaaf48f5eb20d52ee30566468c8cb7f4d8d253842d2340f44349174792e5c25fe0d385c708e625888053efb067975a4b84cc2fc4cb5dd7a12774ba33518df313245883133f367db0d969dd9942746a0af1a6a45a88464f701becd25ead4a3ac444dd4ac63807eeeeee180391d9f481829da2b211171f285d9409b269e4459b42c4b4731b138ade42c583671a9101058ce2217df19962140acd15d03442a6180a8f2ba1db88a60f149c28d13452a6181d331e4591f43a721c3d971a2e85a2afe4d2173f4e4bd3c82ac5a81996a576a9e152cf2e4c8e2e65e9529b9266d0050ade22f5c79a0151473420f5a8237c485da41e750123a420e9eeee2e7ab532757787c9aedc52925d2449922c6417893a114763c0247e924463c83ab8c33188cf23bb32466b658a9f04bf46922419b6344eabe68f6b62c031f89b35b22b33c92eb4467e0dbf92ec8a0133c10870f4a7ce10db90e6fcee4a48b327a13c429a7d0869ce6fc33ae1d79c0869761fb8acf3c4cffe83f4fbb0c44d30f2e307b84d7e738832d5682d6b235adef2d488cf3113d641ca032618429f81df20cd4fe6c778881aa44df9f1039ca789db342067fc30e4a339256b2ec47f64f7295788c24c49ddd11926f9c524bf72056066c02ad85b0981f3cf6459eec93a1c22cd5f3ef18106c0c0a9329623498e6f9635cc448a7e3f26195fc41c10cdf21b4dd3f43cb3c449f3e8bd898a47f27b9d39bef9a6b8a304ad8da85896e690d58f5814c5c75063799e5a86c30a5f2c1f2f51c6f871f4bc11f43c34cc0fe3711e8c81e61761a046caf1c53cfe88f1ac274911ad1529f1f87809bc43fc118512c51a8c37bf34878c2fa245621214732006fad56c30d0f76be690522cc751060ac6406b5dfa9530be4f4b4a8a59cc3967ef43c5f3730b2fa15fb4cc77d1d2bf12c5712c9598e0d748f0c717d153cb5cbe7b7f2d7341715828fa62a944cb7e80e1d7c650fc0f95f91f9ac4d1b2ae7bcc01bc437cefcb1a4e6abe182ac149bd37a71c101f44310738009a3ee6f8a218cad05a8d54fcae26154db416a64ab4cc052d3bd3347f487ef3ada4654b6cd5ca5434c5b245a29e8628e600bef1300730145518a3073258554fb881a5d45f884f64e029373d7144930bad75cbc653583e0e1f0ccb96063b342449f08f74ddf769fd7d5a6b8d5b6019eaf243dde92eec1e87a1ee4aad75f87d2ebe21fa8b42517fa00671da755dd795e0772e7fb6cc5fb5ca0fb1b6e150d4d8ebf4177ea18d24f0971fd6a0aec2586cbd6822bbb2d65a877a8bde82f18ba821688dcd2ad88ad62c25c818c78f318ae20f3d7eefe117fff3d037a7e388be3945c7afbdb59c9a3fb6de6cd5deeec3d8341f7f6fbe9cc407f198c29614934fa2581c4fc7e3eb29eb8ce2083aa5dd93e4f7df7b1f8ee193d9c426699a6868bef9239bad300c51efb10cd408fe11255199711c1f8b4fe22751f1f5547b9d32cc1f65881ff93244176f2792323e1445f193f1799ee779a189a2f83d182d9793f5b975d6462d695773b992767f8a3f9a3fe2711c4fb448fc108f62eded6a22ea7d68d1f89e288a3fbed744383e368f84363d554ebd8a30df7bd696b4c3ef8de708be0b16fe73fc46a9954babb379e3079ae6388ea359d356a4dd972d3da565f9f1875a26be37457675ef4e9268bec049fef86038b6aca4622b05aa14bb9e8a11157a3270f0403da565e44f8925068350ba94a50b5ab32284138c8ad2546094a622e22c12df4b6b6094cb47651df3432c59e77b97507f88d63014fd72c228b804780584ba9275960031141804d383a2b7d8e2c6443f100827f80e5e21e2c4694d5389aff3e92cb410b24eb7e555445803a3d2a8ace34f5cf194ea079bc83a541a0b2d8410fd91c5ce489742d15b6c4125a2218a51f4550415a8c9183ca1002717fc1fd65d0703f32678f9ec3a14773a0c418ddde5afb5eeb4ee3cfc39e80f02a13bdd7962a745af3bbdf368a56305c565c7a53565a65bea942f9983c48d38c628e20d1129cc39e7ec758ff5e32e279402c65230e973e7f968f06ebc1a3a583725d5da6d3a1b4d25d5ef36dd839ef79ee7799e276227c050f44011f4bc16f9a2588e64497a1f688a5fe33cdee71745b20c7ba0e0d40810cd34384d300c41d37bd0d3ab28d26be0ac3dfcee7511f61e4bdf137ed65f0b47922c5b370e739bfc5dab06dfe8ec48b3e6398f563a56505c765c5a5366baa54ef9923948dc88638c22de109142adb5d6ba46f4be7623cd39a1143006267d5fc3493f1a3ccff34c9f6c26e9522342d4a55fd9aba183e96e8af760d654d2eec5cf4c824972e683b9023382a4f7b998510385eceeaaade0d855d349738d8c94e54a5b24598e64499ae0e8f24c107cd22c3df3fb1ae7f9b069fa80ef5a9d622bd47e961ff8bd99ad7c9ae5812d41c040530f4a519fcbe56ed8e158e49a27843842874f00e1240127b430754ed4c0876e3575852a574da53ac4315e878493bca26524d49f2e98237479c6e7b34b6fe0fc32c61e8258346884b3064a815840a9ac83d399bc811326bb6078b9cb2eddbd5703a740f24a0d944ab5d6425e8102a3d20c6e396b30698649cf14268b659965f9bdf41513d6e40e5c80ff62e3c9c61121ea1a74fd1ed8aa792008a29a246de891ef49b7710436bfc421e8e2b8bb9275c0c7e168fa806055f8bae575a98d251efc1fd946129fe4446b39c5cf426b39d52489e2ef312ad3bdf721f818ad15095fe3d728aed9b8429a435c3c468b46176138bea8c330f45c78b8e57ddff77d9f762866b5cc3f5be5af5a1d0882e1e307b126a9d2fc226a35855f6f09df43b428fc07df436b7a8b4ced45549a6bfac70fcd21e01775a099a44cc1af4a6b7a8bb740fce4f8369e6c24f1993ee3977a20083e061f63348bb4d629e92d3a4bb94d7ef2c699cb6d0943345be00cfff58320065b56526c23091b4f3692e85eae882e5ebace858b53aa41f0cb773349f81e88be39edd037a765881695ff765df932be057a9e0c19ef7ded48f932fe47cee518fe187aefb97cf9e1cbe94544f72ae2f5d475a8b622bbfcd1d7f7614b7caf05feaa2ccb10c6ab08bc83fcf0858c52468c97f16e26f164843264a0a48cafc990d18af1309e44c9a2f2bdb07b418d78df85a80cf9e07fab95f77de87d887eafa7daeb29fd5e643cf9d2aae1b4fb562befc1970ffcc01f43ef5f5efc56efd272d47b01b394655996a58c323487842f3ed8ea5c1e46cbfc172df2c3f3718b257a0fd6deeeebbe155a147ef9dfab08bce35d7cf8766188e240a2a177e4fb12ad79fedf63f34859b375a80cf8de936396daea6b2954a5241ade70daca6f9de40aada55035a4fba212ed5c4caf23d1f1c7f13dd367145b7a2abbfc4910ecfef3f4fb5c9caa642ba6768105e959c775166d05f6f0c6d9ad42345fe0141fac819fed55c4cbe95504883310c02ca5cee23a59329024ddd35974960f0cc371049d325aa24f7e187ed69d46bfd273f2afa6a748ddb5146994b305a96721c72fedf093249a738664e875a476724af377e92886ad2c50aae4724ab6dc6d344e47f0c596670488eaaf853a04c925743692e89c60274ec52e75415dce67b15c5c582e9fcb6ae57dab154b8f7ffecc9f68ce79e274fc5c582fbed58bf0b491c438fe0b1797f3dcc2faee6d24c162a1369260fdf7a9d8317543744d27383f330921ebb0bef47c5cc5c2ac13647966f964eec877c73ad0819622a7ba4acbf46b2dce836b30a9d6e23cee723ecbc5bff899acf3e2f57fd661b15eb80059a1cb67989444614e1b4ba461cbc695b4b3914458da78ca3adde3b77104def16423091b573aaa94b4f1642389b03cc169e38a8d2b1d0b9b118842415497aede9f5c9920589a660a8aa00b2882a0089eab96a7e6cbe95544f82e6859fe699aacc7ab0fb5ccc5af563fae9e85d670ba7af03bd3c898aec0d7e690d57f9f8a541a8becd25a9a385dff0b172dd7af939c399ff5306058ac164e572d9c7e26114fcd95e992bf6c85e3eb885a0a55e9eb29fd919db24e117887a7e0bf9ebe5796947c39bd8a2071d93571be9eb2cb4a0abe9e5237f1eb2a22baaeebbaaeebb4ceaffc2a620bd3196ab11375e7bda8b5a7b59ba228865ff881622becc44fd45ff75df7fdc05d156137e53a940aa53c4ba75bb518b2ab08676d6747cb60c2b36cd2a513d92af3cbbf4377763acfd3def8e4f8ef6612affb518b1a6c894f86bad36227b63cf54a22b22b3ff925d554d9044271d6ba29cf0212e1c4526593f69a9cd29cc1fc5d193e198e22aa5bafa79a95ae55c33e5a6bad3d4f772ded141ffe388adf8f2d2b296ebd8af8fe87063ff04a98bb2048afd179a7bf3bcf98779ff91fd9691ee37773862626e67dc63b9a8f9969d1a0369e3ea645e34ff334ad1d9408e93433315d1855859fa97fd70496ecd2baeb3ccffbbeef03411004c3300cc3302cc57731fe0bf261941fc37c192eff123eebc5d5c33c2986ff211a4a65973e3f8cca2ecd4483329da70cda954c9d14eea46a27ced530548c5a580ba332555a0ba3c2a812aa76e25c9a71559a9fd2fc63ab5573a94f4976691c1c2d3b4fa8124acb744aa8fcc257b23683f01e6cd5ac5819d1175eb98d7e2af08a969dafc7d6eb69fc37a764cd4af9ab14b6a4a5f76789d6deb244c7ffb2353e59be3996651352291895c12b3232e57b3aa2353c8e3ffe0f5d8ee47bab29aad42bdf34cdcf3f8e66ab36bed70adfada464eb45443a7e28993f0e648d3dcf03bdef7baf0576de077a20dac1e8cf4b1897405004670d5c4a9f0c35d3e8f4345e818a9282828282828282d252b95c2e97cbe5b49496d2525a4a4b6929a89c96c260162d555bc6dcb834323d3d3d3d3d3d3de5a0a0a0a0a0a0a072b95c2e97cb0295cb9f78052a4a6a2acbd3d3d3d3d3d3135457050505050505f504a5bd1ab814865bce1cccd233b9c4261cd1296d6a6a6a6a6a6aeaaa9e9e9e9e9e9e9ebaaaaeaaabeaaabaaaae4acb5357d575e05218754ac14c7d1617158e96b4a9a9a9a9a9a9e9c9a37a7a7a7a7a7a6a7a0297b44cf780e1d2c904d3f44eae278faaa9a9a9a9a9a9c9a3f2a83c2a8f6a4b13b884b3c555f55a60a8ce2ce137d5d4d4d4d4d4d4043269d937b5a465b8273c4f18987f976b29fda6a2be2970e9e600fedff7a0d8929169c1e5cd67527e0e2edfe7507e4fa2da4a9acd2118eb2e77e110adbd7348978a9fe923a25a8af41be2a5e2935e298e9ff8e00f111f1cd1308753c688a8adf8fe1bf2b94bcd4a2a5304b492ba290444f594db7c2fa2df6b14acd259017397c524df3d2fff8b888c168de493e52b67f2c532af5e145768edf59442958b0b5a5be9dc72416bb93445fd6527b642b4067e6976c91d0a9cb0b75e4e2f22f4a7bff67a1a75a76164570a55680dfc0ecdfacd143efc554ba338b8886868a29a44df1c02a245e3179da0d3d8755467f92202fc37a7e18f38cd565297d5cbe94544f73aa273f1b5d7930bd6875a06e359a88b8ef52e52a89a02cfee6cb9bc8a7815a1a73c1cc22b640148999ce2d4759a538c759a73d65aeb2ff5d2aeebba0e4cbfd4f33ccff3643453ea1fa660962f3b795a3a7c456f49fd33dd6d3e7345863874c1dd0148afa175766e6c6cbc76f42bff8d30bdc113a63cae653ebe07fa3550703d662100ef44de5b58f23967020d99cf3805e213f330431ed7c214c93b92337d214c5f787f8126c30be0858b67ad4c3c86dfffd0b2191e3b19804a243c4f18987f570d47474a76659d1adcb5dfc3330793fb9c2bcd399c344f1d612aaa30a53ad330b4a1b53367a62234e72b619abb9c4c470eced7a8908590b57057fe4ca55f533e726e8002dce54ae17366c2544b98ea87ce9a081d0126d7d2439d57a6c22c5b76cb88227a4a43a1b1b43e874fa3abf46b0b53ba5b46b8f0448e94c4a89d2f5a0b2d04a7dd32428627d2324d757e7e255ae6a2019d02aebc7817a6335fd92d236678202deb72443a7765a9a5ef985c39cc596ab78c087a22f93101bc06d7c13eb84bcbca774985e16e8d69a6d2321c9f737c967dd6f13b3ebf5ed2321e9f5f3369d90a9f5f3769998fcfaf9db4ec8796f57c90cfafa1b44cc80ff9fc5acac81fd15a749596b9d0e5baa58e4986cff9432d7bf2f3eae72ee8f363262d9b7d7edc84d6606641ad50bf3ccb931964880186264c9660254fd8096f09005a8408be92a23f7cf45881070f5acb5129de416b3a87cee928eda49ff4150d85025acb5a6aa0b55c85a2b5bc25c5b9bc949972d30c98171930d017f85d9c2eb849bf3aa7175574d639b7802e41addece5312a335b155a66efa9c906a2d5564a14a7d2a15ff0551a9f852297e4af5e32a9ad24ee7f427aa584abdc751a0e02d30891d6b6f7546708a5ff2ad4401f163ff5e348fe030348f782f9ed9a58dd448fd7f6cd54428601a4201d332bb72d6eed83b5310e6ecbc13b76ae011106bcf3c02ea0fa31da95b611b65267d61d2b7c32fbe671ec17e64ecc62362abe5628d14d7aaa418ad59c13531750fed6aa45dabd6e974a999047fb632e291089204b3007b006601f68007cea4f7dd48b6b2123848c7168d348b28aae4799ee91363c424f93d994b0f93650ebad854aa45d711635331a918160f8d4d651d8cc6a6625266ea4d54c087b484316188604e1818937479cb14dbcafcb9e9b2eabad589a1b47019cceb8f49e1e510c06d4875cc08a9c6a5f9684ecb60d0a398aa70063976268ad1b3f490b08205000ce537fafd8d6822f528527fa20821148145114ba4240cd7fe855e169b7298cd26e04f8155f5acde4d252bf4f54b67d70d672da6cac3faddc44f2ee18397c5a68c3ffca1b530a7a0bb8d0b18659869300d0d4e4e4e099a538af9191ff3fa6370bc8786c60ceaf4a135f409878606ea5a0645491a281a282533ff239399060652345334727232aba7d1025ba84ceba58546b5d0192dd449bff4d368a14bfaa5d19c15e17b604e4c2a676927adc5a4c8772d93d13283c6a4740c4aa232ad978f496118ef99ca42e53de40b292d634af5bf90d2b827269581d34363a862b2c46481827a095f1086e10b76485370e6fc95756247b84b27e06c432832f9a184a84c7e17bc27e69be01478608a9e19efa1392d9369d2b2198d5ed132f0677c87d650a754a34f28141a95ea1a2a956272a685840bde33f35f4bc90caaa404f3ab577af99996f7c4a474182a894165f2c7bc951e4fd19867b2fa18985f7d4699803fe367a0535e1e7c2b322d24bca732e36164fee5e5659e0acccf787999190ff34c64fe65c6c37c13997f7906cc3cf854627e35f3e06b2a4830017fe6a9ac3ee6a9803ff332f999c4fcea99cc7c465b88f9d5379979d07b605a32f961de7b484fe3d249cb689ec6eb2f9fb4cc84d731aeb475718a65c4a0811dd7006002c658bb2e311318046e7383a1667ccc43e11d51c294fc283029292386ceeb8fe5c079c8bcfed80b5cf6f2fa6b311aa45ac66bd327c6939e7b58bba4e80d314040714077407b78f520440dd0e60f31c618632ff4c431e3acb54bf75e4e716b88a71e6a03fe8b4a468c9611ab978921c1d0f4293fd4f2aa7ab9e03d4aff267cad6c9af1341ff34a4a324fe367fe47063379e3f4c8199996eb19344cc859f29e9996f7ccf01e9a96f7d06879cfb7bcc7042638051e7041cf8cc72d25539060f2f233d029e0bffc94d5c378341f88394103029a11d098c0652f4c4dbc3820d5ff4293826c9658bbe09424c5f1fbbeeffb5e98624dbc30bd30b9699a3ee59be6909ce616aa842e85690c14cd41e0c4e9ea51e03c1f48b58ef9b116c4f0096231286f9ce6af58cec23a7d516999904f1c6166885064f8e4e7f45b95e54b548aa5cc1a0cf9028952fc1146eae5ec7939e7ec658f847961ca31a9ecd23906a7f9ee793450d81ca5c8af1c69a0bc898e0cc9b7d57012f5fe47f67e3c495de6ec3897187b8dd814d9d5c271d98b0acf587d8d95e26ffd0a6c6197954d628acd7779d26cd144d1409965139a51181548cd9697bae9d3fa60fc3181716af326c208a46612ec220522355d7ced4545bea8627c18c6f818ffa2d232ef094ba7a6ecd23f9c22c021358fa4f9bf22a4e657a63acb59835b2e970c192fb4a42c9df344d1f05fb45a9c96634ba7662b57918a2d3325bf12347dbe374f10821ca462eb4cc911ffc85844b5f9fdf87d68eea45131291c93c2b598147e1768ed445d1693ca2ffd18bba03450d9451345c3445476dde0acd140c9e0e0c0d1b8f462b26052976436a1609d92684781f2bd8c47292c934b651e9b43721a8382244992243dcff33cdc81f96b0090c941064b577aaa8817783a538ce650a5ec7a51753330148ac674386dc5b0b4702c056e73a39fa4998231e044104f3d554a1c967a90205f98a4f01006ae83d896342797eab7e1a4198d61c1e2f4bc9c63aad05c59668c73324b296ac4cbffc82f280d547e99f05d96d29acb522a964e65d3064e348779ecd0e0dcc1229aa389ca3a248ab16bd5a289a281ca2efda27a51a11f1a93027ff5318a48716a679ae2564dc90f6dc391c160cfea49b16504f81d0d1359068234505967448728a0898689118d49d9e04473259af3d09c175385a1a0a07eb48874e08c32a132c62fd212a4b8e5a51e9adf93c12f83d198d497c3592b9b4c9d9d88524add2c221343ea24fd5a9a06a7879995e6b2bc92eaa79940d9a59d4a4aa68897e2f7528cda48d6101ea45e5a43739ea24aa90ebd5246637075825ab6f2b2406192f4f2cbcbcb0c0d0c85f1a7b5b28974228b0f380ccba74c92243a3545160175907a20087a3fc40421a62a86062a36c507c459c350fe8554581193d24cb470de92a394655f159b22ebb81324904a754cc7a6b4a43a968458961816a97e2fe3d6901d1c712c5e54a311e07b3f602f66f538e0aacf3252b205a1f7c26289f38b49b995d4fc5a3943e43420d5ef39de44faa1b5d8d44bcb8b0acdb90d0ec3f37c5175b915938a4d65d7f7c38963b6c454c5a6b2cea3436ab84cc9a93cc0801401a94e4d98c059c30d702a9bb22bf6b2b249872801d2a720d25209181a266250c450805ffaf5154a54f1548bb1c0e9714ceaebe1f4509a281aa81795f358bdfed7152ec31e7851e117157e51ad50314aaa072432940fa674a9b52ca6eaccf854aad252c0203dafa8723acf3387e57c8125ebd45e545f0f50ece08a4f6b619a731efca80d2e8b41e12ffd31293417939a3123ada1b99894dbe8ff7a3863b66434a6ea4bc159c35061789e1e1022055b98e9c68963614e064e74495be0acd140610fb88cc603fed21a86c5c25034506ea3bf6c12c313d34069b0e53df985098732331e9b7a51ad7e5543733434320b4eef499ad203a5b238bd07fc5a4cca7b5169d96a85a234b8093361a62727272fd54e3574089c45132090822f4c60ce5903676ee1ece427480003522f7766169c353467ca00fe0a9d2245bfb4114750670dcda57849831dc039e751ca3adea34b2853aad12152fd31a9fcdeb90e8925d57fc20053fc1dd619a280a610cbbc6749774c5ab67afc5d93f334c075c2c7df3939ee9e521c86e195947cbd251d4d9fa6f4050d9496bdbc60a817a66c02f8abafd5c8233857684c8934365536ed4c6559b5f0955c2e97eb015b48e43397e20d9c200151691ec1e9e5ce98149acb2fa4fe47069338d12c399a52a7981c4f2996580a768452f8468fe90b292da60f26711993e54aaa3f268b4d949654d75e542f2cb28bca6d5e57f8cb06210a52107d21a58d70d6caa6175538c594eaf385540a3e8ae6aa4ea82de0153d15956a19f89a5c3da598290d712bcdde8b14bc907a910203a459e785c9bf1594a27ac0b7d213e21896ecd2b1a998546c4abfb29300014d29d912d398947ef180e63d37434dde38d11caa842ea1b92614b025ad9db92c59a75636a5de44124d312bd21a9a4bcba6ac538ba94a1b90754a5489068a4469a0c62fc44b3081afd040d53a1a26b24e6d8abf5e545542c83a1985e2c0b9fa568ea60d9c198b494401befe180a700f1055d2e17b625ee6f5c7a0701e32a3b5d854aa6359521d83c1d76255a4fa6bb11af478797f41677c2d4645aa8495c09ff9554be9e55739e79c3308fe0cf8f2f2ab96920e383d345e879d9e9917f38b39673c4576856397ff0b69cce497c93f0326ff4bce4fd240714073280eb114a4fa6352ee4da136f3c720092d3d60959c8029aa7a561f9342228625eb781fe61eabd7b2337ca1812201f062052fa4f0ea5739bd7192af8970926f7325bbc21604b8db7ef5dd4d5ba3b0edd11bb92a92cb12a1edb7658fb60b36f55585b83b122143b7d5dd8fb8afbb4af1515f35c87bdbed26ba157177163e16dcfde6ac17609c75710ba486575c438f1b61db4dc32705fda6ad5156dab3efbf4746fb7dd504e4e0a2bbbfeeb6b0f7b6e286d620f7099c30a5b3ef6d55dd16f6ae413b39b11fb7dd47b64d345bdf6d44f4aead7ae3ee28ebbb1aadedd14e4e0cf742ffb2371bcedd6dcddda1f8f962e4ee4642da86f23b667f5389de77dd6d7b374945b2a99f14f451da4dbbad46bb75f700d8dad667c6da6c29126b136a77942449ef3a538f5420eeaeddfdf5cbe0410a8edbc2d623f5c7c855916eab4a34535bf5e80687b665321c9d9b9d9da36e1c3b074d9623b473030787cdcbd2d4221b7b44c3dd07e0a78c1a77b7515f95f62feee8b6ce368d05f2c449cd0c4e1e66b36da477d5afb9ed28ebd00fddd6d76d57a11762ff61b49506636f49361b4ee867ef6eda0bb1ff670c1eeeb4fd6edb91110ba4869f314ee0ee4dfc8cc1b26272603d0da1edf708d7b6fbbd15219abd6a4f0c1c316ac070778fd1b9bbc31082bbbb878670eebf4443abd1efa3a4d755bfdd4146b8db17cd585bd06fa2b7e689939f199cfc267a6fdb0837d4aabf89defdb2481e46dbb77d74a412bdab12bdfb481bc9c348727701f809e3593d10e17e6357d7dd4b90361218278cd0ddfd7c910477f722ee4ec4dd876cb1c5165bb8bb630bb83b909f2ea2ded96e5b76b65bf5dd976868dd48bf8dd6f7866b5f687dda7e67fb48ca7e77fddf444c7e07d04fcbfe003dd1bb223d6d13b9eb6d15fa1eb785b9ef6ab4da8cf6eb26b9bb1077c737de9625729f655f2257257a9eedb63bca6e9fb6dad428b7226e0b237255a29b1b1d6a2c474748c74d2c47c591dd98e1a0ddb881630767cb6cf6abb6af1b84736fdc17c716cd36d1ece65d876ed8a1569dc16e8ad4f5883d526fb6114b7443e4aa443c3c6fcb1e1de1dc9f6da4b6422e78c8d8a560b4fdbeab91113b3301ac68a6063d6ddb6c6cfb3be86feaec5f95e89da9ee4d6ddfbfed23f65924ee6ee3aefaa942e9eeb077bbebbbdad45bbb5f29fb6d37b65da3dc7cdedb7683d24d63673b8810cbb64adcddc7e7c8a8252265d36e456cfb76538980b8ee6e876e458e8c5a229b8675c9c66d5c0b44b3573d72d72049aa6dbb40533791199423508c82b87b90a155e8c60271d7232fcbba90830da04e58e5c082025a4c66ce011cb0c41236408041004c142ea840902a2c60c2c30a33f8dc1d48cf8f9fdbd06a537f360dabfbe2d824950577f7715b5f77d39e68f6aa469ba5fdcbb5f7acc5b1ae0d3fcf1967e734eee10961cd6acadd67c038d011fb1edfb6b8990a4fc657cde87251792a2bb83b8fb1c6dd77b8eb70f7cefdc658c37fcdd7f06e0b6b896646dbe8c66558c1b82dcc6d37cdb6e2826e5e2321f71b2d77cf71d1e2eeffff5f93420a3c4cb0a8c842042e21f07fd5a7eda2d97a538f5edc91966d5b1f24b66dd99ee701027a9eb10608e8795ea16dfb1f815e2fd1d0dafebf42dbe6027a1edab6adaa90abbabbf6d3a5a8f4d3e5c7e588bbcff0d30587fb0a2bb8eb03fdd06dbd6d22a47ffd0a3cdeb5028fbfad433bc86d61eaabd27edc61f0aa1c908346a0770ebac7c2a0afb02703bbe030a793b91ea2a30173187a9dc6d8b3e3163a1fd8c11d9e67c718eb4c046310678cf54743c6198359860b187f18f48c4d98cedfe71a1f7739774cb8c3388f7808198beee12eeb8d712d639cc317b24cc6f9eb32e641c6f8cbb805fc82b1cea1093c0dba601918c7083576c25fc638eb1f9cbb51c4914bdc23c45e0ded937317d33b2b1d7c855440f6ce330570a75d9d97b176ef00b806d8b39fe7e9d8718733f6010eb30a18672f678df10d7c83435ce69cf30704a7907397318e8691334214b0e9222627007b7906eeb0c69e95e41f71e779fdfc81f00fda5b26c0ee611e27b2c61fee406c62dd9473c8a3f18ec639779f4bd1853d8c419cce070b07e7f10b33c6188318f3e09c63a03f2ce64e47c16846d2365824330e419c7f649a4c43d3d0ae1daff0973336bb53777946ce197fb813c2620d4c7a197bd8458631c6582607e023c58c83c212ccb8051c62ac33ee30114c23ebc83399cc60f6b0c6196732831dd69ed681357661119718e31d98268f1ac4618733c63c187f32320cdc65ec7558070dd63ae72e775847ce38268f58c4619731c63c98461e418dbbb0c318cb1eaf90b40d0f6b2ce20e068b220f39830c0d06408773fe32b8f1190387248271c619636ce3a01fb9bbf7707717dcdde5eef2d3647a6104b8ea05983f932bb44c3189400db258a25e81d3c21554aea4558527b9428a9da4c584039044804d8244ad55052002344110a2cee0e868c1dcec5ce17201996ad6d089c0887554ac841c545b3c2087d312dc860a093435544fb906a808d686138e0a36bee60734545fd238bdb870a7174f1cc80bc2bfc3c15dbbd36efb55df3d47742cdd6d61db16a4beb7b53dbad93476b6de709fd278420a722fd0d42208ce10414feb1825131b90a0a1eb1bc39dae84518202285f6d6a33cc82c302729f4b06c5aec6a4b193446e6c52d2ba1a171b320e19ef850e7f3c4a905b8185202c1c7237762cbc5e90f31cb0c7736443ee62b48d0b723694e41063d593831e62c30eb919220c258c05e484bcdc427724420ec80027286ad32bea08e0830d61c7d231136c2882044415a8500ab724c02593de0f16a8a333b267b872c30bcf350a195100ca9d0aa08e1b3c108121374801c48d12133c34912371420cc0c1cc59e10ee466e8d830823abe3174d1b22243348d510868830e1a4b4222323e42469148b984c6232a7776353a23a8e385f98da40f3a80227263488426a8879ca74f0f7f2d7ca3b7e35321f541e2c4144222df08ce7001b2a2e990882f30669aa810ba90b880820d6308036f9837644594806507c6783c5a472cbb14fe0728826377e319e9767e604f46b73c19386238d33a9a72e1284394d9c094c3248ed0d5d5e86a7c16c8a9e0d205f16c7834628d6e6615d3346ec8c16eb016d2369df66a40076000f68625498924a6a2ae2861012278b042458a5b24b46740037022430c4d5e58a284850010e1d9b9e142e104007ce7c4097cf438018d99013aa9008b1145b4e0e38387468c92fc9a60e203483c1941c40422e0e480175c293060014132fcc0073fac1040ac423d768ce053104c321106592af0c4a343e705063986e08c4c0738e064d39220094011213e0f2800017670419523044a2461012b303491e9c0c0e8a4980a42931e2be888e00781073c008824487aec48a1c448c847c846c85bbaaaf741d692aff0a87015f905990ad105e514598acc442ed2355c23a4e1cd9833f24b8e8161b05e782e320b9f9d4b26bd318b61983bac31fe3cc65c69192d825cf743ae63e153c125e534b28145819ce795200a55d8d04520d6bd94445ce0e321d7b120ca18676070c88902e864d034e4fb95a19070e71bf58e0a29c8855039184e6c1065fa07256dfaa0a441cedb22e7953154e4cad746033911c625833bbc1b6f88a518e48c04dcd0f9905bb5ced736ac9b1086b5c50d9e8d7007e4a1579a47f86a9b8e051fad6ffc8ec869f28be96ac898c65dd9d58c423c1ba000be986ffc6a258c1286f842c60005a09570c317a3afdce049e54ea87546ff73028d8ea75c7dac0e6b1b0da45362c600330803787a1fc8d23c5e0c17fc91daeb4aad75d6a00eb538ce741a7c0174b15232b2c00fc41aec7074371d0e6768aa1ce9ca71819ccb1136b0be4e260c724347831bd09ff72d969003186491620a0a29dcd0922d961004934f8f8f1564eced073eb849e15c85e00c322441b2451424883201089ca604fc58000d5eb0822746d001258cb881a1f0738300dc0b84db0e418b2a2b5c30c5093660a5ca009cc81043122443849840f322e3084c80408924aa50f9a131c3de4c58b9d06006508cccdc164b2802119cccf02283f582279c20c1083ac0010c00510002fc0c40003024415264055138a1821034118941152b88e289138c40044510d1430e386851f502178c40044c644029b769457c5866d50db0a001142700c10796a840103f6c1a0c457c5e2c73055140e1000604a1b46903084011213e3b785cccce6f80c50aa240811320f8c01218a8801005507a1280222bece091e188bd5cb03adfe20658cc000550387102107c00031510228802fca054830dfc3c71e2e306960424b06064e522031a334c3ef410030c3812f8a187242948f8e8ee27f82952e1e2167a099d123c24e4238417e82c902b908dc03939a671308cb4c935da867e1926601a79068cd133328cf78265882f5cb8d067b7325d4e134639839c195962187ea0fe3ecfd3d8dd166684bbb5eaeb763fdcb7bbcbf8d9b9e00e83b97bf6b39b01027a21f65fefee3729c8f5bf69ab7b5bdf5dff5d7f4752abb62ad1ecd57fd9dbbbebbf49419f9f9de9eea19f9de7ee28f8a96960a2e0349d7077173f4da8ee855985bb937eea29fc090c069be189dea1dbb6bd10fb7bb6dadc6f5921da6dff1ebaa9adbba37e6a16dcfdf453f370d7a16347874c878e8e1c3a70e8b8a12347474c078e0e1d3b3b3bb21d9d9d1c3b38766eece4ecc476707674c8766432998e2c870c87ec862c471693e1c874e8ece8c874747472e8e0d0b9a193a313d3c1d1d1916327872c874e8e1c3970e4b8912327472c074e0e1d387670c870e8e0c88103078e1b387270c470e0e0d07163e786ec86ce8d1c3770dcb87123e746ec06ce0d1d393b39b21c9d9c1c3938726ee4e4e4c472707274c47662b2984e2c470c47ec462c27168be1c474e0ece0c870747072e0e0c0b981938313c3c1c179777d7141ffeeba89dee77169371c1bf442ecbf38f6a56cda4e56e2eeef67c6f177b51db90ff4aa40e092187ee22dee36350a6bb4db55869f38057777e127666205299b765bdbedde567737dd3d1d987477ece7aa06777ff1134f7177187e6222777f7775fd6ddb9ec7efa0a7d9702c91fbafd98ee2b6301a6b74f31a09ed969ddd04ede498cd7008e5e0c041db3ab3999a13cba109e5d08143db99dd98c972ece4506f08edecd8ec66f6bab8f6c66d61af9190e721ee0ee3a73fb9bbccbd65db76ff4d7ddabeb5b877b77f63d7577d6fdb68db8e8cd67f57b57d7fe8b6beaf6ad4b242afbae770771c9dbbdf70f717eeb87577237e7a94dbc2663bca0f92dadecc5af766c6da6cea4d52abb641abcddd3df78ce3ee337efa09ee20477a542e97ba06b3782249ed7df7d8f409404df6ff9159d23fd4b2294830017ffc294a4bdfe331f9defb2953aae4d75f057ff755c40fdfd1293a7c8f874ea922a24bdf8356f93e4497be473f8856f9500fc561b5c516fe553e7c8339b10e3a744a4bf875e85027f31212507ca4faf392d252872201c5870e4840f1e151a986c13f04937076af6b783c48aff4b2954bb17b112b913f92e48764d9caf9c9c72d2ae1e31c962d2bb9960e3e96708f7e1d7cf4749f4d9916ba2f9f89fe9e924a95fc1f9a1b5b65f9e2f84bb8277ccf6c4189fcf2718b8af83844a920c1447cfc54c6cf2def115b63ab9401df475aa4df88a4fc1e4582e587e6f497a5d2f84bdf23fed7522a5f87ef111f97684e53a9a25f44735a69e97bcad7a60ca7feb245a58afe11cde9375bd04c942ce11ef1c3d612ee097f6c29e9e0a347fc25dc336ad347a685eecb97413ff95f4b295ce23d254a050926e3e3a7227ea6323efe9eb1e52d1d9080e223051ff7805b9c507c8b14448b8c48ca6f449292fc9f29d342f7f999e8c76f2ad15fc5eb3e0cc0c8a5f973ced86baba52c4d544e5ad2a7aa34ffd23944d6bf04cc11693e894873d880349369b81486e7590b97ba1444dbce5753a4ab2c695e4db94d56caaebcb494e632f736b08d1ddc06468ab510ca5c12ca9c8d2bba0bf58361d6499290e607735bb22b97392dd32d911ad4e2ac853ba439e73f977c3899c21d9cc75321e85612c0aa2160adb3e8aa0c2337ea80f4dcfb1ac8947a1a2aeb309175c8f7b4ccc5f356adee5d5aadcea5955faeb3693e95ee5768484587656bca951407371c3b9ba97b155adfdba6d1d61fa04f0a4abaa9eb6d6855770b7b5bf5c886d6ae44ef6f2336c9e6e2d855a552059523a82ca102802928988234e5a7c0d470821a98a881a8ca4b952b0a7006618b95244968c1939520aaec1802961b5cb0610b1b406043056c80c186d4dd97f899f341ae2917c4ca1536235a0c400b255a28dda004c3210b0e4a38dcfc00eafc41104a543a0c914313a52672488107097077cf420a25239c3b0c399526e083151121e4e0940394730702d8e1891d987680a2431074e881bbbb0e3a28427a5649a9525285c28c1658b420c159841a9c3f58c2140ae88084a51c000830b3f400022001000f26016070042a78285a4242801e78c8f9a1e907203e2ce9618ba71e5ae8c1460fddd2d4c943103f1401c4152066f881c7871af84000206c14a00505a0a10027fca0041e4690b301e20340fce014a246102e082217448e338892090bd3014ea621400c0108149c859530c093d300338480c129040f420c5541594c56708098219630840a8650e2e52cfd0df1340493217618e0062cec025d012d019687001eeefee3e70164d041d1b9c0ea5c2c7d8403e05042800274c09482b340206ea0c10d3db0c021f03c000ace03b8451d0276f882b0bc23208005a51eb478a24a5725d3908506294f7c683893a49e3449024ac22141135298a41021410b909aa264214106a2e49e144539714d4face07e9060ca1bf502918087d75d2712d8c055e23e097890e54910eeee2d532be509035ad70b2859a03cbd40398fae1c3dcbc412b94ddd9660eeee3723aa12e4b8bbd191d18f12e8d89e6c444ab042d19522a2121469d9245b8ddb6e1a6a6eab114dfd9a76e35c773552f7fb43ea4ddd444c5822a4af7969eb0f5012dbbeeea6d16636ae6a9bbdd08fbb7e8d6b538dd6d9a67d8d8d0d324a72bf661ba9b7af79b7fbc489fa4f9cd4d0d6760bbd52d73f7192645369459e38f99aafa101ed571ddab64d037aa076df9058a0a477b7eb7bdbefbe6b0b04445b677002b4672d2b0488b6ddfde282d6f67d559a4af4ae4a24e3ee3efc0cb262b6346367286da7b47dceb4982d416b421369546819a822c60ecf9209f6b87b809cb6915422261b88dba6816d858860ff40e8858408ede0ee2bf8291425a484a19d191258a270052de1439014221524212806154ca1248a298288047d144d413058984e2c4b0485491042162a5516153099926aa5542815f8708549054e4b2aa8c99d2a10962d31fcc032a5eea88f85c8dd1d8965816db70cb7f5c8119adab3d720341b8e8561d3b0772b84a412bdef767f5a75db6caa6dcf662d2b44db51d8f6e848fdb1d9b7d5a82909d1a6beaad0ef1bebae4c62301d301c9b1b12db0611b92a912771c263f64fe4aa441c972c1e84ee0ec561b8a3a3df3338b93b123378c0dd8fe8f1eab183e331db4dbea668c6da7a5c3c66bb49bbdf1b8e05b2875425ee1e5295cc800277bfc01e5295cc5085bb5b407dd5204d4bcea2228b196a3300c540c459546431836b061a33c0cc70ce70caf0c40ccba045862ccea2220b19b03cd100d82dc9f300bdb71dc5e76143bf5d1cd0dbfcf30001bdcdf3b8b05da4be37767df65d817c80de75d523cf0304f436b6a1dbeabefa2f001901bc884105670c1188410131b410830c186e004394007cc00004038e1107a8bb756937958856e4c813273534da4d75d7274e6a9ed6aa48372436c837a1f10216b4254d7268d2a3c90dede693a4c90ddc7d053f9b3c7dce2a01117c60d8d181261098a2892b4e4b2fbcb4175878818793176a583b78d4b076c0ec085fa8c1e2a97277ff61b38d1fa0563d7255a41e369b0a8487a7c7bbea33e1c163b69bc06c38a17623091569d9b6dd9ba61abd6bc309d50001fd267a5775ad71dddb6ad4ee77d39e7d5d23dcac5d676fb3a94549801e2808e7fed0f68fab02a94835393115d857c9d0eaaeaf0d770428f643b3b144ee6e89de9ff5b5e18c7e5c15e85fae4d10cefda4dbb3efcbd21ec726bd6ecbaeedd16def20f67da024296c7b04f4383609b661abeb69bb656f2cd1d06da56d570db2b9a9fb2654c45d714f345b89906e2a6ce8c6da54f5e877fb30a3a41b4bc36df7e869fba6b6442f8cb681fc6e3711d2bf80b8923ccf0b4888cda602d9aedac3c3e3baea5152d0bb9b86b3cd6eae87b5fbb5ad4243b7f5c5b1b74df4baab50111e20a0b77958d2914fbaa92fb4be6d558b666a90cdc6b63776b5b1444846b3d5887dd5a0579f76db4b1e89eb4816ac0f44b510a589bbbfe0670b58c9939226387e2a4121c9549226d6133a38e12c1128b15e18eeee4b5a2ea8c00524175468618ad4cf24309c496a20c17222614202a5852596f02cc9a15444cb911916b228a285bb3b0b4e5808526409eeee2c080000bcdd51d89f3d5ba3b4db85ed21d575b7d1d0cd16b4ba2e7bf4ee2ac49e466adcfd5d8d5616da1d2589912423358cc01839594e315edc8fcd91116de3360ecacf9111ede76747595f35cada6eda8fabda6cea0fd1ec558390d0c00cf72e06b0a11bdb22fdd06d257a616e10ce259addd4b6c7bd18ded180b6d723a1f5dfedd2b68bf35eae732f57d27b64b47fdc1596b48b7e866e6b6be875f727ceea411314f7166dcf54dbd16e9f4d6a99c08ef62e3222e2c4dd2be0eef8061126279120cea2220bf75d6f38b7655fd7757142ecdeadd0d06dadd9ee76dd1db4e4797c982441f2b01bfb49b7f461efbe3dd2bee1c0706039519e75d77f2131388530e1ee4fe79098bbc3fc1ca2dddd881e52d4233c3c4cbea668c6b2c063b69bf414a91b06b768c6b230e400436870f7227af0f030e1a1be6a90213770770a103184b3a8c8822584132c21a08428bd425610b223e4859ccea2220b9f2d522ba6c2c5a7cadd87ca59546481800eb8bb4b058119ed7dc47e4f90676fcfba5f735b3fc9dbbc6a5ccfaead7adb33f7b7abcefe755b16e96b74603764ff7f53917e1ba96e51cb223dd08eb2dad49fa3bd8b7e808068379c4d7d5d5c90760f0dadedab120de1d8dbfea1db1a8535da2e00fd20eddbcf8de5e141da486e4978789800053dfbc292de55cab61d19bdb820a09f9b3afbd92dcebd6da0b7f97f1e171e8693c2de926c36f5f6bfdbdf7bc9c3dcd9b7fb886d8f6a6cea6c7dd776f62f7b736f41dee6612d0bb404e848dd6d8dfaaefa2900ed2d042829a8c8c3da1d65ddb3dd3eeda6c2da4df4b2db88fd41dab7bd5ba11fa47d03628990806a6231588e1b36db6a4427074c96f33c43b7f56d6c1ee6ba422c6dabef02799b87b9ef6dd36efbc8e661402fcbb6404c58243c3c3f40ae77775bb3895e776dd947dab7220f7b0115b1a92fcb04c8f538d75ddfa6beacabeed67dd787ad40407bb74280beddaf4d75572226ea0bb1bf973c2cc808e7baeabfbbb66f536fecfaae349aba0aadb37de4fe0ea2ddd4a33d93b2bfe65df5936cef4c95e2f33d6e7800e05fec6fd7f5afbb69307c8ca66e173ed613e46ddedd40091e072c96e37960f8edaa3d6ff330dade41dbc5a9b31dd4ee23751301791b188d257ab711006c462f114c09ec9de1dad77d1e184dddaf7b5bdf9b8af43836e9041d3a1eb689de97bdbdfa04a8dd4240336c2375c9db9c3b70e0ee307eee88e2dc31c48ed98d9f3b70eca8c133c523073c12c0c3071e3b3f38f990d14309670f1bf498a287087afcd0c3a8c78fb387aff08115a4ac80b30279fa08e283070f05707787c1172406880ddcbd053f810801e4e80492e3ee2ef8d943e5ee31f8d9b374f62c7177237ef684e9126904ce74480ae3fc21c5ca729e3f6e387fbc70fe387d489d3e74f0a1a48aebfc81160f603149018f94271be021c2e34f8cd071a4c38533e3eebea364e74b80c213277bb742bb9dc1c9c35c97b5fd8b636db847626d3b886d370d3637f6b65d9608e96f296dd3f69ecd70eeff1327357bb7424941ff6e37fd274e5a5688b65d15c948ddadd01327352c11d20c4e1ef6dabb157af67dd7e3963c71e2e25ef5757f6a6ad8f76b8cd8566806270fdb4749fb55672bed66536fab9087d16eec6cbbec2bc4be11db0afdbb2a92bbabe0678e1d678e0ec7951c5b5ddb573dda2e9c398adcdbdb0b1ba0ed28ed76b70b670e25b88ecfbb97e848613dfd606920e7d4a93a759c5e9765e17571414e590da76d249676f369c2210507cd891222387ee0d8c18183c385e3c4d125e1061656dcc072a30977f71b4cb09e60dcdd6f2ca1feb7ecbb48a2ac8e5f80cd56a1b5dd517ec9d4dabe512c91526db8994d9d19ed77fdd7dd436b90a858150dfb387350bc13638211b9aa12a4f304595c1e1ef7c76d6146ae8a5480f366876d697f63ffb68bd4976868257a9b8aa4b6b4db8eb2dba36fdf76dbeeb3eff7fcc6d1d8f76db6b528493dba69b790bb12bdaefb513eb5d9ed5152abaeb35568df76cf9f3656b8ba83d86ce1db86a36da2d992a1db0acb71f71d65b5a5477b1b39614ddc83d8d4f5bded1316c4adc80953c2ddddb57ddded42d2bbd2561c949505774fc14fd815ee3d434da6b0918ab279723a6d86f0c146ca918d1326363c6c70d8d4386b88b8bb6b5bd577d37ef61662f95953e33530ee3558b8bb9bb48b7eb68d26bcdd452d8bf473c46983c9dd1f29a70d27eeb755c84610775ff969a3467d559afa6e231b33ebbbde561b9dbbe3665bcacec2a3b83be8a70a5678cb12bd38550529b52753b93b133f9d58c192010e159a54d080dffcec57b571df6db3a947372ece8633c2cd6e5c9bfdb246bbf5212cdbfebbeebebd2b0cee4e8404dc3d021070f707b8bb03dcbd01eece00775f80bb2bc0dd9b10e0ee0770f721dcdd00ee2e0493bb03e1ee0570f71fdcdd0777efc1dd79707702b8fb92bbefe0ee3a28b93b0eee7e83bbdbd0b9dff041e4aa3b347513fd7bdb9ec3c68abb577172772a3594b320a7ab73f796a66edaabee2a24847371b4ddfe6dbdbdf03ceb10cbc299c2d29902093002dcdd89b36618b711bbe4dd7775d9a34dfb195a6bbbfd1d38dfe35faedbb6c1866e2bedb68f7e076d13b9b8a37f5d5c00dc9d06774f727729ee8ee4ee51dc1de7eeaf27eda28db3b13cfb556d47aad1cdcd916ac4c3d3b2afca83421228c0e0c6ae6ebb9b4861e2aeeebeed2149ef6a53df963d5234db44403c3be1ee333f4f50e2eeee074202f4b4df30b82d2cb7ac1f4c71f798bbfb6059c18212773761c85949fc705b58d06a5bdb974a8d2beece43e3f9e1b1e154a11d640fa92dfbba4d0cddd676bfb7fd84bb0128c715c014389738b97b4bdb507ec7d17edda2196bdbee1ebaa944b3bfed96665b89664fbba97fc432b91549a2a9bbb5a53806d8bbddddaa49bb88b6936c377676c309b92b119387d1f6bbef8d9dbdfbae5f43db5158235114c5f1a6fe6e59a1ddf349bbe893de76a5fd267a692d3bdbedbbeb6f9c4d6d42db49aaaddd5192fc4d7df6fdfdae2dd2a7fb28098b4407d60460b83b941f1c580c966333db347666b36deaccb5497ad7563dbab991b333db3a82683a74e4e8cc663b6663c4ce604138a2774d6a5f771dda6d0d39826835c0dd861c00dc7d8ad7f051aebeee6d259aa94636fb555f1788d1366297ec1b8be4ddae9b0231c219adb7f508126bdb3d2c12b6dd3224f5bce0ee47a9bbb3b75dc43251c22271c1dd6feecec2912434b5878597bddd8cda4df42601725b87d6967d9ada33745b6fab6ab4db6fb711cebdb140dc9645b26d381a6bf4b41bee6f698b9bcdd85bba4659836c5b906a5bd528ea0df7bb55f74a7371463be8a5dd68fb55773bfb1d94e2de5ddd8d83f2b7f5dfedbaea6f2226b74d03db0afd6ed5d75da56c213615076513b92a1177b7b9d7567727daecfbb4ddae3828b7f58f70452c6bdb446fcbbe2a6ddf8656f786bb01b921b1b7a2db0b2f24d6b66737d5a606fd7bc3b1b399fab021d876bdbbb7d06f23d6fd24f5e8d9f793ded5b606a9b722bbc5bd38a1df416fb3ad48b4fdaab4dde25ef536b4ba4f53839ee86dd7a07f6f7b9dddd4bfa9efaa444846ecebe266b0bfa97f5b9fb66bd41da4dade5591de6653679fc2dcbda3a84449aad1bb3b925af6556937d5e8ddf599b82d4c6df7cd6c6df76d0fd5b8fb13772ff253c6c9d06d7d5b36287d186dbf2e4e2592b23fa9658db6910b8e459b241b6dd3d8d96d6f9c4d8de2b6b0a4a01fd7558f66aa50bbdfdb6a0382981d77dfef4dbdad466b3b7357da1b05aa14a8746df1d7891a650ad188080400008000e3130020301c120bc6a3019150cc32c5d60314800a7db65476541e0993308a21639831c81001010000000000800100003dee659c88ea50935af234c823a9da1e864e72ecc15840da257233fd7cb228a9659c5f2543fe486395c0e3e429a21c4d015b9cada0aee6a2db80bc6b16d91cfde9e6eb7bf8a323d20a956db1b25d586f8817a2b569362c518dd49b00bf809913c9629cda23d484c10d3e7e0731da5ee798299816b64663373b8b23e418ba8723f456344f466e8733eb1a6505845c92516be2e61c71562ff65bbd31be594edffc46f3dccd15e94d581af325fb0680bb124c16b9c1e6d3ddca3498f7b86bedfa652ffb2a66a66180fbaa18773a1b7e3f2c450b5aa01dca7d3b175798620e336a28b4064761b64710a7a5bdfc2cc03348d501363df7677fa6f528cd9833a88117f07b1f99568232daae2eb1ac5be00f6b038f8b30d179ed8d61899b985a4f58bba5d21832ba47127f1e84c6c90ee10e45ce044c3aae690a7030b82b06a3c21c12505f76e0fdfe57ed18dbd64d4c6520725ff23933843f5e1cbb3765f79aadfc3057b1c1e3df86c7f974c030479f1caa4159de432bdd2ee776654b923b9397caa1c3f6986f32554c7ca39df1c1ffb7dd97cc9ebd42b559940f0a3253f0cc36acc162e0b7a76d1b008fd1513919f9bd2b9ab7f0265356b6752b56aeb86a697eaaa906297ccc8a8dd76ac76da5be0213ec725c7982c279fdb3c78689899275767d03909dbcd6b01d82d195b170c7aed42998f4c80add58bb3818cb9a713176267292872bccdd77e5f5ded3de368041f8db20c6416e115e436ae296adcd772dded827bc963bc93c87c693dff4b9d1410d4f1819b05f1e8be5f8132918553f48d7376dd97558cdd71baa04d3cda955dc7fd1116cc809e7bf9e037883c98e85d916fd3b0b0686f1ba3a73a342233f86b960c25e052baff81bc8df81613cd31b15def6effeba229b22fa7341ba4e6df23398e24fe998e6dfced01e5933f88b3df6c6fe74981d084ae29b6ea7c514dbfd59a45f41f805320f8ceff3f3bc41d1886b66b29002fb4afa8921119dbb2b5d82e547f0bca6a759e850fd0e636786fe3dc32505ec13425ecc58ecb636cd82b1c3f902ffe77bfc97ca5980bd3beddaffdb1f87ff5efd7c1e1fdf67777e8654ddd2ffe3609dbbc40763321dfac12c1fd8492aea3af5c73a3faaa0e5ab9c9b81971e781e059a1cfbcf532e8d716f9b1f8d331497fc86e81cad2f4ef157dfd436d8c592b0e8e8878c622adb83f8cf6c1ac6089fb2983dfcd2f064b071b47e59b8ced84113dea17036822b852701b2ee7a3121b0039cd8a0c5e3bd04fafaf7cb27fe85848f05b5eb7282a17ea68dc36f60fe13d02254f388bdb9d616b971f87609ff3f5a42f16476afa79129a5078046a0147e5abe8fb3975f123cb3d06e3f4d30cbaaf399a16c9f7549986b04b2af502b0672a0e556545743df84eb23a3a201203cc82c6cb41e8f89a2d57279c740fe7c41270d71233be80c2d0dd964c31eb5782aab4f6c412f6fd0dae16080b37a312dcb342d3c20bc9f323c63b3f21a611a781ed248ac1ca2c425a2e42e9abe961405095d26d293fc922fd7f791794678f09adf8c99327ce45bd246dea58db11e70154186011aa731af1ddac94ae8d792dfc254a50d90229f844790143a5cbd89023e56b6ef6724444b0d9a9b1f8893de2df431d256b80a36885973ba2f085273d000b004635e6c249e41f7ace9a6b5a84c4fa1ea3829b7b3d3e229e542df8e497f72cc364e2936eb0a1204b9d2dc943e2bae0a146d5760ce5934262c070730da99236d2f254e12d1f5565040e11a81fc302ccc05f667e375328a3e523709c5bbf62eddd11f233d71032e7f55296ba12f75dac75afa9fd3fe56d39daa76ba3b6837cfcade97ff09c5293d06dfe8773b3bf3f2b722152c673b30a6dab6f7cb5f9c1f144feceac9e4a6b6f87689d7db0186fc60bacca0e8103c9cd7b0b35546e922d96f21ebac0cf301827ec1ce727d8d88cb57149736b52e45ffe72c7782e55e2f9cd73560cbb98420f7f189e999e7b70516a45f07402f64d10ae4bd3f33a26fb25de8324a8486749f00637970240bcac1e7fdb013ff023bc8a0d96e547c32f37184d78ffa65f18670c45b3bb1961ff0c162fb173ec3e7c515dd1b49692891d629b1cb6b80cf04f7af550c8c6b9cbd062f39b644c54694e776c4f498c52617f67dc032c1255d2d5db085493c835112b4063af28aa38ed6c33992b09bbf5db5ecce8c55e309d34140ec63be717b7cef76ea7d02873303f8fdc2aecfe54da9f8c81269e9c38289fe9c5f9fa78fcd3b2dd60ff4d519059f8be609d5424f4d693d04148e6783d12d04a541f88948f1e6a5a36e8e9d521a69aca400fd24c0b447faa8f8e64b991f0ce3cca56c2e9ea2149c391ee0e94dfe8584866e234f144c0bc0b877a43f4e97f0079111efc429fa32aacec80bd5f762a3a1f8b2542e02e359085ebcdf388a573a6aed81e0d6d38a8f52e482f48886f4f09c711a6bfa4b2af3113d1c05206fff676ab1374818b7b322e02684b1078ed727be6b034bd721354485012aebf4d42218aed64c9c6c7b25a4298422fcbc511033313ce892664d00fd681a1b2ab173a61932ad7ad73756f31b66bb026bab7cf951e21b5fef88c7ffe408eee378c0837a4fada67934cd77d3f0b0597cfbfed4e1486559eec319e04160092c9cedbb5de8c663a046a31377f9b91701cff27f38307fb0af10303c5ac18941e6ddbe92e3c422af19459e5bb554c4ea22403b125020e48245b592a0f34af982f0bfaa85dac8d1a5b26282fc39a7238e2b5fb923eacd0522437dd6cbcbecb896fca9bdddf2f5825952d2819efd9faa2bbb9ac17da3410844ee9676c00e2ea456ce382c2c52ca45ef39e7c184bf7e78e3b641e259237233ca656cff146ed47be6cbb332dbc1041f406958bfef19e2c03334f88d01765ceebe464cf499100ec32aa49fb746d1ef47a56f615293cca2e83ee0b40813e90ed314615813e04d5b413453e3bb4d6f0e96db7321007382a783848bd35dc03641a6a98a37ed339f66b3ea91e3124fc4eebe33275b1f49daeaa4c82b277ee3a05f8cb02c85ebae119635724449dc623cb942bc7b52290ff9e8a5802d0af953eac1e588f1872b4cd48b1b7f214ae327961f55d99194855d809b86d54aff887b310d16f319dff13ef9422c93a83b4df5b684c202d62465630415c4b1282b91c996a9c58f66a82ef141ba5be676c8fa6d2940bca0a9f5b64c88f4a86e8821010dff849b28005a7d98f22da722e850ed1676d938d511c7e3597c57b3451178979690a4360c6180385334802d5c3a8a7d515c9557b3cfb4ce03b5416a9d645708563dcd3019195afa3cbc10d1b1cd0a8af5fc5e782d8cf29ed41245784017b83de0cec943ae13cf2ffa4e58f2d91bc5525da8865f2357614e693e200e3e74ce65fb3d7adb7349a1e335f9b74a972e3f8e95e4752a0be813fa85b8a831b9e3ba1c713a5239c437be67d81ab50cecf2c265ab1904e98e0a8b0db0fcc96c5fd14c63445d723d7f5a86f81295bc8ba4af72f77b4b73bf82ed67e2c0e8613563f62673f02f47c2f53fca2d70aed07c3aa58f6c373a575aaeef6e4a7e4ae9cff0f7617a7d957273db092199f20dde3efa0d3e4e77a7c7f85a025b1c301f706b1b329cb277ed85767ce3fd2ee00634e6cb991226a8981d93ac2bc6fee57abf4469d1ea1b145368d374d9bf98f955e0d69013f7abdf2c893cc41f4a0ae552eaf462c845e1117fb6dc52f399f854d256016e1d0d30fd80349557787f865cd98f2145c6eddd44aa0ca4a05bc7be4ff304538f6368a89e0c37c7cc00dbf3b29040c026a214767d703a85f38ee0723af83a383aea174aebc0f465f60738ddf8db9f6f929fd39cd19c92dc39b7417a744f17f6eb204280bbd3d6dbd4a77e6972b8fd083f7433dfdd88c517f7804757836b6bdbaf6f79071c6957688a11133e77330009c005244a55ce01cebc762c5000879e0a0174c3f0cb7912e52012c3a47db9cd60d46f429e0ef2f8f06f1418b8dfaa1c300657b4739b191137884a747f1c2de28929442c0bd00ea01019d48c0c4206721bf4ec62dfe8984be7ae083b98fac770ff5d196ac6d0981f971acae20aaf701f099e3ea1eaf4a447a7c4270d10ebb5b5bb025e66fa18a03347ba815ee2d08903fdee986cf26717be0af556057050d75b50597d9dcdf83cdf9872f408f5b0f3f7c36fd5c0541ad3700f3b663711ff0b605b56fd4e36638d9737c47367de37160dbb4c0db5495612c1000c5cb30f551455f0798e0a80b521e13b6c5b268391aa0173e4af67300ba9fe7259c287e0071abb670f6a3e39405b527a05fe3152703bc56f867483fc53aac26d61342ce25d0d54d5e37e20665501b15e1c2a9a6234a091afc2a2d90137ff47f004ccb236a19fd2aafa098dc8fb428390eb72de1cf809ba5952b102da8fdf799dab3ec1e2e556bc0ddd2570e34e4cc0c8a233a4dd043c028b2b77aedd5088bdbde643ed0a7a9fecc105f3ce5843795904d90904edab9e2d2161e82913b9989d94787d060ac68fd9c7cb456013b8bbe3c6536ec1c066edfed0260824db24b7f95174facd2c091b236bd4a4b4e24be872e2d31816ae0863e1234008001b2d55e6cb9a0ee4119ca72a00b28d13afddf06b3095c64cf04697cd6f4da7b15f9a976a5b427996e3cfdec05986faf6778d8b07e282dcf7a047095b4687c63512c80f5adac09c7df83a21f5bd1a96b0d9ccca2ea41bb1b385c4c03c36814127458cb883c6e12d1ca3e7d89da2a6b20b1d1a875fb1c14d0cd7cc0428f8df2fe2da740edaff0dd709e6227ec6f56c45019c0952fe1ff667d877a814f190a58718a81024c90255a7bfc523901646a5088844fc7602249239f3338792c0efd78e1958c580990523f33d73e46f7e6d81c586bb8c1e2b3c2d3b7d1f38c534948125e7262ae3d43ed2ff874373badccb0884c358c356233d02e64381bd310525aed24819fa110466cf98528bdcc6cc95a89a68112e9cab4e6c3e1b7ea2863d5cbf54033e487a19ef50e4db759961487d70af26056e2dd5da35a6c38f6126d8152cd3ac972a1ae5e187a6bdde4ffbd12bf001edb6b9c60f35d7abd6d9ef766b2126abe22a20ecaaba91c83963cef5d84ada73019e157636ae6719ae4d8cdba9bfc27cd4d3475e189a5efdb55140afd6cde6d05d27d1ad8f69f77f00e1ecb0e468b393595f9fa65d0c32ff180f3fa9b29a22d30584c5c2ec53bf39879ae18abf17f0fce605dc7dc211e0e3537b5bf125617d84cbd46fb83870e66bd14eb612571e77d656b4c419e8f83111ffa5344d6e34201e67d5c7f036b9a3e9c80117108e09a5a0415b24ce2d0e68d64dfb172de7228eadcea6871ac36b2368a14d70e80a2b7fb21fcb0f6eab66ddbfea52510bd4266e14f9bd113532259737d0b3763a12a07d7ce077343870d487c347e2ee725ae006f848bbdc97802d1b6bd3e37a5f598b86bfb23098ece99b5c7457a452c8dea85847bfcafb24609d7a04c4623078205d02b5a01ec5e77b26800b2a6c4d866e20ed9ef3b056b566828e9f1096cfd0f345bbb44692a387ab5397b12e9f021a68c6ff08ce02605b93d3c704f9e0bd2e5d43e995918ce42e334c89354cccf6c8b16aa5db64cd7148ed3b80d37dadde538af990111e88330dd502336894f627f18517e6dbcbdc24e9310dce05cff60f97cdade1af7c8b573b5b876fb6c099c03d54a650a71389ac1af355e790187e26fc05e9dd727004d5c4713e9f572ca535cbce12fd2ac733662151a8a1488967df4880e88a8013a6037d9d0ecc5eb7b44b5eb7851d5fd5dcd549efd5d4c38e00093f6d4a5c56d2a6728d5bc3edda377b9fd9997f06dfc93038de7b3412eef2823876b0112b3c0d3871efb8d80b7b58d06f2998807c10568be09c09f49397641a287f1635cda61fab9f7fb937dfb20d4f96431d7609dccb6d9b34a87b4d3c80015f12f0e99fbe729532d9bb8a29f2fff3be092d7a18e8a8f9e28b7c88a60225e983bcf452afcf8f2d442285aecf8c231c802cb2158ee1321e1c3470ccb9ab20d3dbe154e43fd023668e0f9b9928748899fee3e202c7ddf85cef83ac81dbad8659177d3c109f145b7e603f7f734ce949560ad1561745d7d0a7cd350df7d7add93a74a9777e69848e430358bccc6c9e20f9032b838e62f75dd4dc5fa741079d6efd602fdf834e23612b5e4c2341d2a3ddfb62e4ba132aa5e19dde5b3ec0b22b71639f1addce982e2b253759cae3b9b1099d4e8c2ca323f03d670ddf7645a1d374eb98c2fb079d36f865fd1ecaa43be4e18d5a9a65e38b130e55858e8696d73af3224f0acfdffeacdd01b0abba7b03d6fad1087efaa7bc6ebbd933e7c627549ea6d76e55fc2f37c941949c954861bef2acba378b9a0b86f83732bb3402a7ff3cf87ae50063f877c1f5f1f1ff2f2726d4233ed7bf66bbd191de5f6f20e75c5d0e9c66c0958bfdb1f9c865674b6d1c708dc50a4b5759fed9e50740aa862d1344853fd11b24e419dc2df04e3efb1a9a492e7bed18843cf7186674e009b92f9c6e8a9caa6844b5839a196389a6e20ee5b4a44dc6cd9df6f91bab2ee971484392e716a7080b7c467455215b9e50dfb127f2555b90f59191669e12ffd0134d56460628c10f93949742d5b15f138b49ef24b94f037e5bc5c6c191eb38a29adba797d1fb5552619be5f8c3e80e84b330c09b5701b8fa491895c1882877fe8b911f94ed237167eb18b941ad7fa40f99af89ef561fd08f3dccde062171aca7dd20e7dac5d257bb1d4ce91f00e80217074c44cfe9bdb5ba6112b39efd81a7d0f3ff9deced98f727f65bb07d1ebcd94fd37b2fafc6334428bf259dfbe588a31060191f8200ec8738943e54296ffa2f50ff0362bce10eb998c7a2ca3727ee8a752de0876c3e177cce0b5ec3a57704b78bb3311f06a2a39e36ef41c299c4120df1e0c6c5c6cf5b58d678013b583fa5ad9e89384b61f629a34067338daef057366c84bed6df28355f46698109ff9459ebb073b909227278018f0db33ce74a2b34bc5f8a570dedb27a0f9fc32b39f44a5eb3f5f35f4ad8bbf46b61fc0a2c20c5065fc6b036a79a4c77f17c19bdab6c7a779d899ba00530c95b2dd2b21e461b7756d4d7887c6c3a58b4adf2e1a2a7eecbbfbbc8a83ba87d3681dd93ecf7a5e09f3830106a08020d614ca21cecd920b3bb223cd24332e60033530839e5bad2ac433ae6b8076590a38af943698d396d8a5d196170ad55ec8c096ec54bb2aab37830441655674a44d004a3d7d80693000880d40361adf359150a4a972f1c784977f109b973d29e224d2dddf429945e2e0048c2ed5ca4314b53427a2e828d9edf4bc2f1476a31b5e137486228f9440ffd7ef2cae308e9a1cd9456e134c03735cf795a81a532410fcdb8579639fe02ba9f58712eec0f9cd835b7ed4500a55766ec26af5243227dfba01a8c05d7e19c453ed8b0b4551487f15efe583bdcbc66b6ac7968ae519136e571b7b7e568bb21b33f8d8cdcad063be073d7a51cce460bf7277b6bd163cea71db7f98e58a67b589986bfd7288a24452d7e80a8a19915e572632f7b438547fc0757725e3942a9794456d401b7a92bf88bedc4ff32f732fb94bf3a9cdc78e4ffd6066cbc05fc325e0ddcae5ccab556f7720ffa8e3df6da5345a0dd14f3c3d01ddc2123e1a0b3e771f1f1b8b6e8d5291a67cc7e8bed7951820989197ca777a2b7b0daa06bc6fa42e2009642da0fc5aa1463dafda6e62084164b12f67a03afffa612b999335c2d48621fb5d14f7cdaf8b352cb3467e3fb0cdb17fc52586fc7ac1de332d322ee60887d671b7d40a4d70e583eff3be14593a60767cf0409bd08048a624a274e64540a49a585a1ef969171abfde5e0b876ff34a0bb23d8ed9f0756f0f9fd6380f1ff38422fd57b8379e0c1d5d724e54703b2ad3d474b3b8f351858dab27759bf4074ad1dca21d4865f4503915f2b07a307cbb8f3619d7183b46c6d6d409fa1292737f022ccf737bf80def42eabd48918b9436c40a4ce9f33901c25cb2417ee75ee1042b7de7f6afaadb174d9e548dce53b1e4482645e1fcc2bf0478776f4452fe270fe330184a3dc3824d9c17314c103ba3ac49d528f959d6c3704e51d77b9b71a0dca88efdbafe8d8496f5410ed179ad60f38fd5f80f087450deb331405ea3b89bde2227fbf7455992e766cef84438d2b00efead5d539242712eb392ef0e0705091e62fe2b02bfd79d21ecfd5084d60cd81be131ef6c71582b66c85d22dc7444307fd37346d719dfc7d5a731d4cabfc25a95d67a471d6cfaf2a470171bcb7b5d5e812cd0cff52af70d307165cb2f48e4d9d9743b9dc02adb2234efe6f545b226cfb3a7476aed8890aa7c6ffc48dd902b90faebfa4931b483ce7dd96edf5e6e572b4fee733c44f7aa0f7a21a5c9d56fab57cd83a2610b602157ffe346f94aefc6c423aa7d1177329522ec4adbf5aba63830c1784fe17a82395bc486dee591a5c3218b175e02f13dc67016f79d7713ff93d5bff2f28c461c15b3df49b1432bed704a402327f011406950c0e6d2574af311b907f1bcc422f9d0b57fa9dbe4f38decccbce8af0d977db7f494970f6694c64762909214df537b2f4c15aaadc9c95252514555030415308ccc5a4e3e85370523120088baca44f40ef9a5aeb96b1a4f8f95d2922f37cd6b7354aa7338d5bfcf974daa9929d4b590cca9e8e4cc7d6306529ed6f6650eef868464274266d68610c7f7c19c1e2c32a6d29e0d64fd470a811103a13c3bd25bdc2d3524cccc3d9a7117a23e2e8f6b3b1037ad92038809e1ed76a5aeff303b564f6b082d0ccddca1038b8e2e54656557a5d69dc3dbac121af57c8ab86986672954404e1e7a9dfe868d0cde77802811aee1b875f8664bb175cfd6616dab45af9a5365f534ac2ba352c592d3781333cc4338d19945978ed997b4481b4fe0db6fdbf35d17e0271dfe02d49fda7031c356648f73a6e9049cb1e00f3e74e8444df7ae1670271f9f0b7ba3452a002f461f1186f12eb68a883c94ee4ca1e32c6c12a833eae0321eb44ed38859a156779df0d335f6376c789bec65c7ef860a54be6d5d1517c6b14db619fcf964aabfa2a4d5426128a1562298345f239e866f08ea402bc3f42911d17aa94a334acb12718e3b8e982e4bd9e7d1251932fd993751d5072fb3ca51fb81b426140a3de63f8ec6ea79038eeef44107bd96b7a2af2277a1577ce492d62b3b85fa38ec86cf2e1f2c80a368ce111c49b2dc510b65b89a82650715a88249ea921bf562e105aeec9d5e9dc752d74ee65f1811e53f54844a30c4a68f1398262f9954481dad5cc8490ffde38225fe21ff73955a8da61b86add6d135048ce9247199579301a9dbbd302996957c2f68d39a9172ad648ba43019bfc406248d50f51b529345015742fc45ca04ca557333a3d66c33ccc30fac0e025528f43d98f7fb37d744521e63f2f3cba1383882d0a39b62faadd62ab1884718f666df22bb65165d14882a42f40d42c1488e1be461e9e7e1866eed006a6be42748ae25147f1484e11c7e4a2a06a57d8b272241f1a525f50c8a1e47664fa7d1216921aa797a36418f4ab32e28519d51a9b05ff72e719e5a0e53426d784550dca2061238dc6365ab61ae40de57e8985d6e6bf62cbe3818087aa13f74640f73848f03e75c73851db1b7f0f6beda5b0567ad9c8bb55bdf76d3890c3c36fc4279d8cffe09711b43a3dd09390341e5ababa233711455ad194ca375c238b0c916d62378247768a7fc6c8e1f4f5978b630541793aae134c6daa511f5de419042dd0f5dd3a25583ebafe511eb2d1e5bc3d4a9d1b1fe550b82bafa0e01d9166f743dce8d5400c0003f8267bc02a28a56d23299d5fd32984247768864eec2866cd6d3b87a50b6cdcdc61fbd2e1e6bdb8fd148dbfa3ecd1c7364938f27b7195b5e04d6643bc41138a5fae7edbaac986fc43c8190c728e4a1bbc0fed7d1e428783be1920c182bb170c7051ec5790ba12950d76d7210b35fbd86f443625e387adc151464818c624f4bcc720eb097f947aaf661713615d04fd23c171543c25fb234069405e7417ddaa416ca11c153df0abdbeb0d0e72cd0747b29377fe4af63e474b0c20f696c936713a0a06eb0f9f038ea2831f700a7029be943a2270db52b699fbfa45f2d2e41e6ba2d59502f62be77117960a66c4c5eb78bb4f78afda5cf1e6b33c8cf91036b90d90b6ce87f1b64605cc0f130e9123a0dbbbdb40b130e10ac573da971e62f8a1625b90e2c4d78f95ba39aa5e4e1df7c4cd97c2c19d36f2a7ac67351277424a3ba81446e0f4315dd7b32392982da8779537e881fa6849ddcbce28de7e1af2c1d27e64bad0b425231ba72d793613a1e035e789148665497e2d5b88de59c4eecc25378d93dcd9c4630c34d1592b646d1ef90b5d664327b2bd3e0f0ca02ca6028856a6499337e4601d8750329404327f90ac117443d96ae790b412665394d5997882c644a7b39508397f5a8729a1fb3ed95ef8d35869ab4524119fffb9b0e104cff0a1476d8fa7935120de9371567b620b0bab42ff09ee129ed8984467f1f4ede7035548abb3c73408151ceb7e01b02fd7b2abf30e9dad9410df3f61682b861d6dbef143f8e23d4a19341f6e313ee3e12fbdc27670d6d2b340a54bafe29850c64f0281178e0c43d6d2c2f43d804caae436e2a81b802ecaafc97895d507fe5f927ee029d86617ff324a8b7fa30eace50caf3584dcc8548a96b0b1e7443a7cc11c50acfdb3c3983d38bc6b9b205f869cf7697422cf61659e4a99f8fb7bd8a58e17a7769091fa3223181464f102fa42996b305873a835dd177a5998910a8f8eb4eb66919fa5c776a20f770d51c6fa8563451ce8b5a0ecbe31b35c2135a1861dcd13361157938080646cb3f39abafb1fc24258b0cd2258c308b5ad18a1c49349fc0b84d3de8dda969ab55aed705d04bf4fbe392972edc2b003cb72e8a7cf1d760f8f6c4f91ed399fadd87e1741febccde2a6e52c34371e84c706a6483282c8f069e6d95bdda9b66212b2152c872b09158dbebd0985646220e69346f308c9c5e1f210b97bfabec3c4c7a8b921442b091a41fa2e4be4e81c2b05d6e073db38b03559634e891621b65d2c5b88121d3e819944038ec759023f869730e5001360311c8158082e0116c34b98728009108e82002e092cc24b31658049208c82105c022c869730e5085c119162a55826d6f8e395d3e40de374621a7258c94d6f6637fec13ff807ffe03366e30095bcd377fe1fdb847c4b28b2dd177ab7d84da89938813e70e7e3e8c69ce798b5e77df2063d87d905ce39c7987bcf79f20fa80e22c45a319958c30f2ba176fee3f739612fad510ca2c61423e15ea8bbab0038849bda509e74a30f561cebc77ee9d15f72f42f7f777770f7e66e4e1e32f96315494daefff985ee8937fa6065f76c92e3dc73ecbaf73efd071fc3dc05c69cd398b5e77af20654fda8b0560c26d7e8c395d27efead26ec2f4018693b5f1ab271aeb933db6eb3850ee32a164a8cfea546f76e5afb63d6f4304c949f497ea824e1f3d935e527e118a8220668e45c39364ad3179d6538455a3fd6936ef071a5f7c46fbecb074b49ab72a81a55cac1bf530b5731f8c92c9936f4a0121b79640574b31ff6c37ed80ffb570cb2a644ca5067d34c1795840a38508958ec05360f1008818a094955409cc82996936ce051a5b63db5ada1ed053840b766292519e2cc2d8be9160ba8318e62a1d4e85e7a74cf265f3f31028917c2038e6f7df27aa20bf813983e0140e7f3fbfedfe8e9624a049a3c55bad5321e9cbaa13c71a30f571c7b4c202d676f54b486dd8ffad17c94df28590f56653847408cf65bc29fd3ea5b3462936ef6c72556b178ce1697ebb1a31e7b26a03efb7195d5b86e80c483298f507a742e253a29441eeb06a40f5fb8b6dd479ecc7e8a43a600ad9f9365e4f939c42ace938f2304baa19392bdcd51bf92cb4bdc40694bb40efa3195385e091939447a34232b12f8d608616f5640486af48f04b2ae0f723dc85b1012589929147d386a02fd065a8a88bd4247e0c4e2e2cfb08fdcd3ff87057852ecee22136dd8229119885c58174377a339c43d0a6d47e6ae0c293f1c96ca61b7430daff4113a8ef95e490809935db29f948d1256c97ea189d20a8c654b3bc6d84bfecae4a7e305f2e5e197948de7d8dcbbf00134e8347195436cd87dcba40021214a84339689d189392354d05d928465a422e3a4f4016ce3c1d6a7c4398214737c436a85668511c34c2cb9fc68d9a5f5b43261344b49568fa946741af81f9d1d8e65b892ed69f4566168606763a40d626a5283c1538d708bcf488cb4d282e7ac64c3568cb47d3204e1552362eb5756227b5e57f7afc7acb35cf987bc5ae567a8a634676cf2734a9345e35559fd77fe47547609d492697e73b9247550faa13c68915b7f9a9d677e6ea01ab27f63fd9e56ef5fcc0e6fa0217524d7dc63502e270092ecc701d397d1a8ddd8ffa923423617ade81d16132ccc5a84063d331def58537e5543df3f8297218578c6a1c2ffd1c150620bf7b1b6bc842a3c43083d5540f4ec657727c4b8e1dd52dfd9df258138a9cae8f8abbb46ac438f0e407bc484539059e5ffde07cca26b604ba0955c9fd5c7a8e9e2fe200a2ddbdb95d117e2873cc86bf901c0f69127b3d5672815b115a67f90244f1dea630c98dcc8a9a84c6122c1bd89711f5016053d6781dce084265f8bfe0c66d1e3cb49d88cb53a333efd97454b3b2906d7e13af82d04aa1d64853748b15cc16f8c3700d18c433f2c06effbfaf1e658ad1b80745cf6e3b29156b6523c14f594379b6713a24c08ba0148d32762b0ced3cde3d983cb77b754795aa6dc87e69da69ba9da00a407063445483497ddd99a3d6c1d99159a40eaaf30f5748af43176e8632943fd5f47226d836403bb7b308fdb9ec40f506ed321b49254ee9400383ac98aeedfbea89475c6243856de277981a24bfe10403a65bb2fa7dd679743e23de44189133143c8028836d1f5079d5822a6c838b7c69f49a5ddead98abe7efebb4494b0287abf1b22d9d1b033e14e49d6bff61e47c123bf0f24e90d2dc30459acdc532de191062cb56cc98292028733103d60c170fc2c8fe7c91085e8040515e0f8b11c38f70adc55255230dacc5e80dbddf876bd1540e5434883652fe2eb550f898de6b8af1a2edae8e6dae87adee8ca6151db6e72a38da92b3fdea78ec22a9e601205adf6487db53a2707bb7972c9bceacfe48c4271650c2f59089d33a3e157e133ba160423fe6be49b9080c1ac5d784930bcdbde115d9624b0d67f0680184967ea0ae3087aad5f318ba6bb85be89aaf2185517f696450f16e3ca310b6843a21714df01abc1e329acf2cfc4bf53bbf324acc8a4941f6db43b5a7d3446a495af8fbe7ee6bd797818fe14984294f7f1565cbabfe2de2605639f884c8e0509df674115de1922690742054f3a23e908c5b4ae8224b50649b2b28592f4e4d864a5e698a499eebb2a34709262d435db68b487bbcaf39c0f33f36c50891ff8514552950ff6707a60be14498124d8789893215da9007011f02315d6469384a9b8d1fe61280780a2207129a61722e364d3085f0dc9314048fe888e291ab1985a5b6c7a30cec7955439525c806dc91ccee548499658ca1dcfee92d430ab1bebf5f164eeee3223fdd05040849bf5036493a665c2bd297c3139a619efaed980e54ee160ffadfc1c889c2614e3204e168ef41161bb6f0b4696d5c46922234c42cc47cb141299a2c4628a3b69658aaea9e1c3453b99361918d36b2052fe29f1c316d4a3f3ba55bd1759534676f893aad68e5c49f1d429064626e727737af00f6a9c2d49b672aaf48397ba599dd39d5ff1320fe772cfd8356c7d55faaa57aff630eda0611cb248f0506de7a81b9c23c20e95ee0c323142814b2cf9dafc2c8f6d56362d3ee29fe903dcf10b489817ce891ff822864110e647873e5dbaafe23705356cfdf79606da9b85070a6eecafc2b9be6e2d0d9c09a1cebd93f6153791556ffa32edd235b822222c68adfe87ae522b3196422ecfd9dd49ee1094670055a161d89976e91b7718fccb161e3aba23116eaa5eb9947494a7a6a2eb685c6630a84ba9612028898ba2542ecf8bfc4d248556de390ec9cc08755cf05e76686646a8db6809669ec0ced2405d529f7a1fd7ba236d51139f2c19231e46651f9d1cbc51a8509585573891b49b998cdb8e5343fcd6f60dbc6269618003b80ca66d57289269ede86e83b6c0bae2145677eff1ce86c56eb50bac56fbd473cbad2320a43a6ec1c26bfd0a1c74f1d772310d9c111831ac75e285b1c45c6bc73870f1fa5ea4f32c58c5c2bd181a7ea144951b08d79349c040fa9501743b9e88a10b3a4ddce02020fdcaa141db9db2ed7a585febcb01fa8aa7b567cb165eb9e8c9a388bed88f75e9880a5753dc69454e3420eba6bd863f6045f26b91c86b0d615fd1d06fdb75d4dcb6d97c0ccb54d23c50e257ccf9ced592b8d712b86128b57794273112c95c1729176c333c3276a2625af7d9c5960c97ee244013c0aff1effd118d333e7fb112e8da9fa8a5945f9d5d30d80280c8610722ed1b503ab25f60ffd5748a0358456f49bd5e8e6bc540ca099c301f8960c8801248876fe8c2a4e604037521b3f0bf600a6b57e2d872bce921584d3b1b2d09e4488885315c6fa6f6e1f7314bda0e91e4484bea4a4c6299c2e673005b43252151f3dad3ec096d5646555e55ba43680f38ff02f0dc17a8bdb98809fbc0ea65c4ae81ef7e71dac4324a826a5baa8cb79de68ceeb3db8f55e14f35efb4e53c2e7da043066021c579e638833882ade1aa25afcbf6d829f87d0b29c692aeadafa3774d2e4cb680b46e2ed1922a760f9e4588c44bb5444123a5242a49060a97777302317e5d28333958dcc2e90a3480099a952c594eaabc6c55b822e6428d58317b25dc4c50a4e8959e67d0c53c36c94f765b85c3007039309704cc4d2751e8bc3d4f14eb3512897db0242cda521c396819f2b22b0cf5aaac3462202a06a7c6f8e312553c999ec179d1057f4de1f81d452929f12a5aba5891f64d8dc174166009c1c3a290aa73a416ee9c9613e8156788000aad9c12d7a08cd23ca98d7ea27ae69084417553c858e0a01a3b0f62a521a3baaf7448e4e195866d5d35c7c23832727708e5432dd624eece7bbb47d724c396ffa0ad027ae7e8cbd53b0def6bccdb3b04f3a2b9203f8d55bf66620e4b8d9aca33363d2310636a043e7f6cd9c65025130b5da90c5652898fcf2a30d61d0285acf45d1d4a70a2179659c9a4f8bd4cae64fcefbd44688bcb67c09877d5deb69b23e89b540a393d4ba86fcd2c0355be5d45b9de4aba252b9667687259a70a450ed4c4bba594de20cc726a15e2332aa31e5ddba1b2aa876ecc6c48502a08cba65280c0c37ac49c1ca82c7900be581df2b625464c0eea4901dd7e728cdcc5943a4b09341fbc77902f25c2f13d776db314dceb255d4c86a1862b37c01ae08009e5f95eb610aa4cddc42867b70fce833d55e57563b7f0867688f1d6f3a1f4563fcb8ff8917457e7d17cf45ae7e2ba8aea73c5f688cbf3831ce02287ac2bd196121dda1353d41b1319242c35f8bc485b1bba784d25b417b9b0627252675c1d4ee5124f595622eb5d9136c470c14d908380858f97338fb30e99a1eddaa59842d78d0d01e521b94b0a03d5229ce24e488241805fe7198460c6a689df4ff333babda62312ffa55507b18aa6a0e72d3af3058019c1078d39a8f07dbd104e09a418fe77aeb2f5f7a8352ef260c121f5e0372bc60e1d3b8a2fd992840f5f8ba584b852c7311b6197394978e9c694b29f60a2fbb86f8fcb6dcc200887dbd483c286d7c531dc1d83206a7b75f5194cfd6dafdf9986f4d4b6db5124ba67b67b8cedabe48941563d3fe543f4599cc14cf75bc136b4275614023c78678d58c43319a9788d6bed6ec7461f889a66072dbb031353a059097875cfd561364e933c6db3d8e4c6d2c92c2295d192469b05efd68afbabf1fdc238f7ce295156780c73228117b461bdff1212ce5edbac1779a09d14a8a7da6c1882f3c37f812ea7e4ae4e390cb765aa6ec47618aeb7155dddc283e18628348caf94de880441475d7235e059d150412ad754fdf046bda31e8052f1b30ff37654d1f99a025c3ffcaf3c1af6ae040b1fcb92fcbc35e9a05b64d397183ec5c7c44febe71c96b9682b9ada3cfc80292fca346f904c87cfa9353098ec5bc82e77f7b70c9e166e9811d94531cbdbdc0572cba03164816a215ea6fd28291bd4d69af0ae5c0591f51aa611f135a1bb958547147531f3f7a91e82f4c05a7ac2d432ac6b7153a490c2b7e0899c554178eb113882d495f6adfbe4a3f600b045f79f18345bb9282dba358a0dd6168faa7a9b5ab7141ace4aeb4be6a85a6808686710942452b698c881bf60b130280adb98ed8fae54f4c2205544f242623f70ab469d810e91faf429778da5a3f4865d5e8b0775ca0c59e6970a27f91a15ca3b297ccd1c18d10ba03b2f3a209bdb1e2c45c35c45bc826b29b8ce2c370b4876583810ee479560d1f250bd8f9b8182fb1892d3ed87446412c120f2b94b2f3496e0624e469ba9545cb89e6bc6a599b6a32a66b7feb7562f6923ac5e30b46b260504b44002aabf786ac239d50874480a05c0d24a54ed9b21559a3c8bd20d3a40ec948bd70c19fc52ed4eec6cdea3e47c8b740c5807a9d767394df109c48f60f485f295e49660dbddf1396a57a4d555d44885f69b52f3f673d929bab12b5444cf80bd3dfc173e5fe067c3d913c11d6f4317b27da0a0d31d0f12286929f3fa2728f80ba3c0f46c023dd250f274de56f523a2fe21cb0a0de2a2d89628478ff187908060747978c39b9e64d2865246898bf1eb8cb3170f19f2c60bd269318e741939027bba3351d0f59d065d0ce9fac5a0e9c9f1f4020c4a32e6fb976be9430053f400435085453e992f5198cdd3f1b1a6e7515ecda3eecbbf10e0d60ad8efba699ffc3c067cb3a902c42de72727af65e56c286bc1dcd3ff1aa77b02b553d9d114409c9a35ab8fbd0c70f9270308b0f4d3624cc86f668ba06282d01157458a07b53199e1aa8fb3a8e26e42bffdb957680e5a48feb5894d16ddc843770e2edaab3b9639791fb4a5184872ea698035f25d6a0a0490f41eb827cfdc046b4a5e74997d3becd83cad5ce9cec90f12d10db50ece5759eacad0a8a27ff0ebbb59c9ce8ade7441d409dea800ccc9a9d7e445ed83e288647a04571e08c031994f8cb846611ea90caf4a63fc6f6826cffc8a8e61490af0f6ec96affd9d34ca82932841c9fb653fa97b8a1d0dd25719a5e8aa86bb40d8f0f1c896301ac8c9b8b71e25e67dc84a3120b08267f04947807f6d0dc0768589c06b0245f4f1e7b84e69c52d3655d111b677f1048f2554ff282b61a392cf1fe4e6b0fb28bb57f641d375a71a1a41b6a89c943030615ef89fc1d1d3b62f9b861ff8c807441f10ef459253c7bd0b17de15fa99cc3f694b13f6419a65b921f0d7d74be3fb94997f5b40a6e3537787678c53822347c0bc4367e63e6508117168a18ed70c540e8ea21cbe1cdbc58da4939ab8d658cd7437697418fa223c1b8d91734576722a1be8c99ea0d85b51952c5f4ffa7e90e8419483091b516a58022ab556d2aaf82c7a0336d310307e810c29019ab3f77401083eee45df672d25bf0827bdd230edc777b5c6d17faf84756b9c6e5be41be155c4ffff99c4d14a3f422c220dcdf1319faa296fa6a42395134de2c0b096095839d48dcd62643df62a4c38e1272d1aeeea6c70e5be6b9151e44d4b44e08d0fac26bd2a6403b522de09215d4e6e94b0b11037439f0d5738a68b4fe9434a517b6d179ad9757fa6402d8c37736e0b698a6c1d453aa40776e6ef8453067a0d94a8beceffc9915f4fccf8eddba18ac23587d87be7344f36db2809e8e50fd510856591795b5485d13b37908dc9f262348a565d4454be145e2f35419ac364d6abc3ceadf87ccb510c63296eae9bbe1c09617c2a54ec53674c3c8d82df24b87a07899f06b9a96d2066f3386e84c18d4c46695d9b87f3cb81e89b4be4c9bdaeff9e501b97f101c416498c52a4fb32aff9659e06d18a4c76eb88d58c91c7ce6e8f1d70d7278228887680237a2e5d3c644722c679db34bbdc18905d43d4e3b65e8868b9af1e07fff7c3db7f4cce1f5305b9f5121996c0e3be101d8d170c324b0d308e23f0b9796f5a287cc1231f1bcd43bf240ce7ec0280ae1390b24f56d5b5dc7152c1d31739b17ba18c218b31470f951608d32391c8a96235920841ac7c470731b3eede838930db4d23472cc46bc4a9ec6df3c88ca5df34f2ea5fd158c26a51b1196c04da62c65720cafb9784dee7f4a28dc361b854cbbfda7345642f79aaf81877a874f2e2ac79ace45a626304fee509a8b08f9e9b41b6fba06771d751f5860c61f6e42e4db03fbcc92dd33610646f46f24404520b878970fb2dc34c1594d3757eaefb8bf793ffd900f65c3c0aa2876cca8b050cc203c8484c6c1c6d2f1e9bdba98135c162dadb07548c8812c98f7291140216a64707d41bda31c50b0a406d00f7347b5a24099875c49d3214c65142136c45b4e70ca146086ae2feb0511c26827ac60dd51883cc6155a32c19dfdddd3cf26ffeac57c5a08774b2db39ed0d403142c689a0cd0d67a7378f1f56b256390cf28267c5c5478412de000c34bfc0d24d19009eda74c4934f0a1bc7f17111aea5f754c34e80990c0e0898d336704a125ac253bfc3393cfa492139455222a43baedda2fad6b08fa59dae001fc5e588b53161c73860a1c03668762679a8b174c69056ad4e8387e2063966107ad757530853104f41d8924863a8a891af59f73e53907dfb7e93f47e672efec2b10db5c9acd6ffeb5ca97936a6fffcaf96a36ebffc72986fe35843392771ce45ac39b6b1e3c170cbddce29c262256047070ea14eb350f87588922c2d8525f4b4136dc43c390449a50b950ea9b9f9eb39ad2d46afb9fbf3387026c750f6b141b159036c31a25c206ba59a39e4d2c012a550d2fc5948fdeae2f44f79871d29c0a8bcb5d10cfd085c4f95e7bafa32b3752c011bf18d18080dc4224d3287012f5995b3c19bc204d9e496450b93e1da398789a3a4c2cf7519861cbd1ac827ffe8a79a589cfa93630986e65c7ccb72b26e96b6cdf031002b531966db231376248a75188cbfcddde01e4866c8e7cb56b3fd040c7d32efab9bbbac7e5657f08bbe6d8da8b3c2f3457bfa592393489efdbe3ba6434a2851d7ee3b1094d383fed79353d4c2413e1cf8d94f9ceecd84661bed0d34f1a02893b92fc76d55f2986406cb7c19adf2b9db851ed53745f4f35e7d2018099e0dac5ad54999d2fc1eb381200549ce87cf11d138f22c9d53b5a5e9ef4cdb6472774d5b48bd77ea8926eda6653f447dad7f9472116c3fc71e66c3acfc9871e782351396563e1824b6e19d430388dc0f6b4546fdfd375a8214e8663cc8f1275d394e8de606d6dd26109b56c8b99389049a1bce3355a6778efb74c69921d24cc7a0d2d644767c61dbd5280a6058afc66b0108d07700b208582bcde772e746c4584f20ddd9024236f35fb7f84cc7f894b296a808faeb8c7f286b44ba276204e02b8835109b8ab9df27867dee051a64d5ae54101b777892e2f993e908e72925adde67a5479a14eba3bb5b575a0dc5eea1789688e28607600119cbb5a75f6f4bbb6f0e210bebc2d08e4ba479a6c1e676b454f4a98ee60b001dd9c5c15f864600b780df36b0853bf75766fb5fd01248042272785961208cbaa00389e7382fadc0bd03c72055c603b94ca6a3d7a048ab6be39019000970715c3cea8e9df53ed07e02a8f7aded4fba567f69c240e0841e7a4cde9b0d0c208fbe169bd7bd43195ae564759fa62f75934aa32500c57f60f86f005a17c9ed131910609c59ae8fd5b18b7adbc1e502515b993504c076d7c381da854c1632d001e2f9bc9ed5ab48235ea9668f9687bdb15cf0b306cc73063f14be53d569cb2864875e0d49c911b36660a7e92b2e00702eb896671e259edf27d343528a2ec72e984cc0125e5660c4503d198f7ced2dfded22965e9ebd269a983f349a561b8689a9c6a106ea3441f3f4e80bdc26e33b4c362e98d53de326517425e7fd545798f9306a84a295d789f4f17f7e185043278025415ef127c65357d138ea2eb845780fb1ad2dc87c6f4d84532df98e1022c48f0a4dcaa4bdab7f1fccf2720561bc9fdcbcd75cc86c7614358fdb4e5212fdfd53b19e9ca3a4d391cf516aa4c0653afe1a97e124efc3c1cb327cc5216dc0bb12196cd033dc66754f885b0f50203b42e64b41483e8e63e06f2c6b18fae01cc53ac54e302c303c0a6bc793975ca8125bd525106291a0d88a97fadad7f7d5ffc1ac45a3a8002c04f37ca90361c5381c4517db14c2d659cc847a9b70e74c50a2ea2ffe8bfe498d9c783bdbd1c455788cbedd4b989db71434a88d88bf99fe5bfc0e9d49975373c6f72e2d8a4c1373b6b04d8d8dc45910bd44d2da822ba90ac03a4d14d3f5f070d3061ee5a2fa776f21157ea3b64d20aaccb32dd4f765f4c24a944e38b59c8cb35fdbaf5808b748a9457bf512896b26a3b8054c874a1a4cbf04a3b6ca8531fa67f4d590a0bc8763ef6586348cb3fe3207f11f22be2efe3a6d356e605da2c5dd3ee6e3c8cebdc924cd13647fcadc22511ac55fcc1c7e40143256a1438d91564b52ad8dcfef2ba3e0fd73dc52697eb79a0e29d9555ca1a35c5e5dab94e5ebb2108bd1f161e0999e0fc7d2ca0839b5e5d624ab51226b746bdb95ca4ac0185659fbee64889104ed4d0cbeac0569a23b852989075f14682fa44c0ab94d8e40598862e31ec51493d90fb779618a3915d00b3416a0e684546c8a6d970de28a72c694ef7c5df72c5cc6384f8830fec8d2528486efd0f775867317c41fcd772dc88c6670f4a0709ffc7d76909cd12c1d64c627e470a4c022c9e62b3770f49595cd8326d5c36595417f2631384ba5a3749e843ca81347b8d680fc9a1bccae96da7a51ad7954fd84e0079bbed98b3cd97c048c127afa7db85b631c9f40bd1eb0538f8acd32450d0ada3399f7ba35f4cb773d3a03f3e5bf60c5251de12cf143ac63cb5264b12cdbe956aecac9611e7a3e9a00cad55907891031e701d5224728be7bc629892266d9ddd44ccd0ae0bb06d2b512b31d89a946863066fc5257fa6a80f0cedffdb99b5f1b10da60f031d2c31ff94cb8e1ae1fba5254c2c001d605104c7436999b0124e835fa8c6fc34c6a00665f656979485227a349e4bacd634b5675c22338c9da5e5e057eec3e223a934c4372dc2a30b897451bb271a18f6b87d6d14a2c8a4dccdd289faea89ce412f1593786f505f47c4acf63877369499635670a78d6b78c146891d1ae279c8efc22dca7e94ec2d858149b746eacb0a6ff1a6d0853796e12f6fac49e63cf4958beaffc1fbabf2c54e32200294327178048d82c7553b6c9a5f561ed98154b49ef04c6ef68f0233ac9b5ca2efe6f37403b66fa3c7d56a337f83983eb613b37482cd8eb0ac81e090741bc28250a50072b85575df97804a3d4bc71144d438fe1a960bf27b6e4ad363f90598e4ef5aa4adb4448d4759039b061c55d8d948a4096ab158a94a979a25dfc7254eed41b91919f53a9102e70636364c7f1e70e54210afac629dc90b35c5cf7ea7d73f5be7f1af4a06ab0d35cb0d839ed64f17cda9fc349a2e26b8134ff1803532c280bd9201216b69ccda1f3efc4a90ca64d67698946c0eeaa0bc93e68b53cf7e0d9c247dde999be820451686c91aff34a3d34f9b3a9d4032a41274b2720802efff105f85fc9ada1733891ac422aa018f5050cbb7047559cb7a3cc4f557f740d650ac11fc18b887d651b15a21224abbc91fa3507eeb6d4af5e69425be41829a133dbc671030c9c91d168bb65e146513e1dde1f08022ba33e28a6a1327d98dd63c439b83e9c6a5f44070b64d9bd255869facaef8c0c072c73ee528db37b991be52ebf4b83229b2d471224a3909a6489327e7f9747d26b2433dde34e3dd5245c4315a4f2e0463bb2c5c363a618d0f62531d163c2a0dd77ad02523bc92075b38532aaf0dc9f03eeb265e48b18880fd1ca5da3fd6a85e1507f4dba35dc6f2a009c5ba7031d980434b83493f291aa412cf79d99e1027a7dded0d6522f8e95189f78662ed65998d8c4d706adf6f840534f6c04826ed20aeaf54588391c642503e9073c14f4589d79ed674aea20672627e36139a6488bd3719ae94e68e9fe8b0377e9d673662187807ae4fe1784fc8f5aa23319b1c0f89a250fa735facf027db001e2bc2a84907ac48befe926bebd10111f0a9792228f3283c63b9aebb01debeb4f37279b6bd7d570956dccc4ebeff56cab0204d3945ad58ee0f83cbbb7c74c26d0fff85b5567eb7429f50fa91a9b17b624356beb6de1d41e9b2fd2a088e20d7e8c681d8b656d58bdf22755797d33b653ecd3a1885c30191a5b847b98eb74205c18e39fe2635071db934f10a35886cda7fa8ccd976d2da1df40fd3ee45ae200287669567688bfdcfb057fec8138f407518f9355f3c1a5ddee0f643b40559fae89340f0a59c7bdbc6613412a106d8f2155c1b111bf525ce3048ed8b8ae9b21830fe66cb6964b4e9db0b0424f687ebc066b1728390a8d3fd252ddf3e83a27f40809ea799a4820ae3ca88943015828447a0554806725d83d91496e9efc2e58327e2801f911617f5020c70ff46d93ea45d6b2bf40b0abf1d77971a36fdeb826ac88067036e53912e511c38c0db6be3fe5c95b9665be2cf1de55b4d6aa2a3e676a057c6e14712f278398826cc00c4b0b0b6d3968b18b5278b9b68e6061dcd476d1861f5f7962b224fd6c886999e36eaa9386e7a46aea58190e467503dd34f116636ec1f3df852fcf463138ac66ca0c6e4a73a73404e50c69705634997ede811476d35901bfbab1640829b3aa9f8f47e66c4a27167cc7840759dbbc9b149d454de5eaa97ef818d5ac3f15fe98ee411cda9afb0c3490fd90c40b37daa3541941c281b00d8d5e061b0940462d89d64219c960ae9f6d9f60e3a40ba4e8c695e485bf915ff207c5414bfeaa6044d8006370fc8832d0d80d80aa343676c60495a2996b7ce16e1feefc373ee235650476c7eb5d33a19abbf61d9d48ef2423da0274d7faf1287dc93ab1f28c53341e1fdad31528a474eb5c53d5d04b5b401f0625349e02d40a81099778de2f3e96c875119df3c9435d3cf5dcd19d7d35751915df0f4e8bc03c63c43c80383fff46275cea15c1d7f03f46faa19b5528262b6a37bc1b2c9f316cf38cea4a45cd5f42c21db345dee2d32b63eeebd9055fb647c212960928f7a84201b245e58e3eb5111d090ca7096d0cf29b1dde5a8cfec6fac66113214b02237e7c914b9fdc9e74e21e9841d7d6f8542ed010cb48cd080d9a5268a849a0ca41c98aa4478b09f6435abc46c608760288bce5ef28e5dc0c9c12abe616d1d9d0e7e2b9877fd43a1eb73985743645381f8fbf6748888ffdd2d6177f1af64a6375e9fe7dfadb358774005f2dd0c2fc4c25a9aa5fe7294cbae508572a2a389a59afe0cbab987e0f06a2b5717ef9d6325dcddd27434c06feac91507d3cfcb9e37f5d686767ec846f0df479aa0825ff5f58e063a09fcf1fcf897c53309719866d5501746eec85eaf7397e90d0487e37bbeffa517ac92ef93e392c02893ab0b011a96106fe3ae29840ba1b65dc7378c27253bc6d4be69062ca6f44e5058abf1309b8cf43d2cc8e79f1a459c93af05d6025e1fd1a02afacd1951735a249d622f68f28655cd15e87071355b0c2ed274e8b4ddae7772fd8a42f0b26c42677cbea6d315cfb68c1405f54dcc738aff8cb43d800f42a431ba609be825d81974da239faf29a461cff32491b40404776e5f5bdac47c4aea82fc77c9bee61dfc4e315b090ed64a7ff0147c9d01d4fd436d70887078b24bcb507c9adb1cff96112aacfa10ef82933fe5b8da8fd04f7b20b3af2f7458f29e6b9eba7e05b7662d3e1a90cd81ea624320d72253720fdaba563b641f92701aab7ccbba563d53e5bd272949a8360a2cbfe526d20f9c045cf5483d6224c3a9bae0a59ef83c8c694936af8027bab6ebcff742c8025e156901a31a9ca277cfb54695ab4a3d176fa4e7fe7dddb1c8ef21353b87aef16a529f9ef95763effebde676902078eeee937e5647a4b4853cebdfc45b25af9a60bceea2ffaa77b4ef41ba76a528db5eda48eba3985ee938c7df7d768e9f438f76d7b1a39f549969a47eaa577ccf393a59d4976e33b3f866c8d51286b3a32b3995438adf739052746a2c18c14b11b9e63768c72cba3ef799b89493ed5f4595b647764db93ab6510ffba414405db1de0923cbca7d36b93ff1dd60968ac0dadaf1717688cab0e9870d5ce86ff583fabd36059975491de496b67935d2427777f83c3a15682a68dd5ada4c7a486acc7054b180b0505d84cb3643f50b11a4aa2fd9ea2cf3b8d9da2cd8109c7200f6a8427839f4e9f3930f7a698b27155b92bd4386e1b0aa70dfada447e5f944ace184ea5aa3094ef0c63c45b0fb69fd62c5e2c930488b6cc687edfbce673e23980674cb44d07d6710e04d5e288fd489b838098c5966d69012e79bee5106639785aac11c5c34c727187cdae0aab21935417bb16d51ab838ef42a9e5a9d9bc588cd71e11a183eaef060512f92438a58ed4b09ab9e6884593876036b2c1d6edd728e81aa6649ccc343f51ee5dad87974ab6b67b7131bd5b89256a452e020f7bb5339b24ca2defe2d1aebefaff19fdb3a1080f122ae1713d5384a3ad2ab885dbfcff94d1c36466459db8078cec98da8b28699f867f29a28b8d05a20add910385404259350cbbdc9975eaa984766dcc5e12c09fd5f0be747c16ade460e732e5cf575d354b2d2d47674b487f04c7d59ca8ade7ead042ddb435ba50dbcf73bf67ca9a5c752275aadc9757b8ec9d40d52447cb6615bcd158cdf26b7f02a15128f75b587eda101f4467e13663c01cd058fde644a9da71c9467f9c3d6f7045d8e5ab4c4187cd007acd29644707f25a7b327fd7999895f60612332f16acfcf35df3588d3866d3d3cffe57171c7ccc7e45a0edfcbcf68998b575d794d8e989c7559828e86a75304384a636b123ca0aa73e32079567b4df4b4c8499b789caaada59abd553e507c3301a18428e4697ddefcbcc77b10771d62b91ccab555dbbd9fe46545c86a91880950627db6fb060e9bebe9fb3068b0156679255b31b53342fd9ccc6b3bca2d4ea85ae119c6a75497dc68ac3160551b8209406bdb3aa4597c03e0a9a6eee4da6577f102c74a224dd8ef13f4140f3b1b688afd1277f1a73b072343d168febf0b87c9922fd19c4c753885b8f19b25266f83c77e533b137843d89f7819140dbdae70ccfe7f9491e8f9bbfb5450e2eee4b3da5560f2bc607306630f622917cb96538d8659121b2d3b1de97836a98758dff910799e9e343f67b42914d7a630347ff09c70f5293148c000606de126787546e459e78574785392de8245ede4d1de3a9be8877f2dd023271a2b6a97593fc2509f086de9873764c6cc60fb632f1f4a9e46c252b031137168f13be6294b391c9482d9a20e5598f67d365faef4cbde441ea747a4bf7291cf7e00dc774e7248fb4f5ec15add70c752c68d4036b8a9328e4bb817a031023db7770baea8b13d12101a41bd5df9e1a321d181e6360c426629d8e91c815a98844714eb7978a745f130480d416088bac7155cc7285b707f3c33d1278b3c89e43d3f980f732f337f224dbd3e9d07907c84c959c8db55565eac55d8139fa98c4bd431161f9cfa544b8fd92164c198303051e783ae3d77ca51b9fa4018ee9663fd3bee4041c2d015354f92edd8242bb5ac7ea2513898912d434b106c5697dcdfb414e0a0ceec1227d6c841c3a7e491e4a75994e6ed403ff50b6e7f9d79995261c2becc4af34caded1a0261c7664cfa87366b31757585754094031cc22f53c58c80219354bb8ee11170c8742985c0209b10ffb988ec48833761c29436ec6b5f1068e836bb7f89c8e9d2e6e128b5526bb7ec26fd003fba82d415101099daee511721f3b16941631da01d1113607f9a848dd0df533c112a1cb6c51debe0dfc45fa5a40b27b20a18ca0b9208040b3e4053e60bcbc9bb0cd33bd257a4defbe214ebf8da15367ad88885c0d321e9012ebcf0fb57176dd2e147f2d995e2e26ee420f26d837d5250dc2b74f716756116c0c8d1953a43b343d9a3635cc7c3208a53703e0713cd81a61fb5218184665b3305513735e9dc5e732f19fa0a72f146088ccd6efed2c34ca6879791ecfd8f5a47f048e1517f5b96e651cee3d84c53bfb10c1f661063f0699a39e19f4c9467b79560b59a1a6fd678dbecd2afb2157f7dcd0252961d5a602cb44f6186fb54ed9c0ea14c91e3afe4360afcc08452321970acfa659c7b49653c8f8944d09c8814d9ed9a7d38649f44d1545b56677d9970fe4873bc67e9bcf23a1cdb0ffe08ef0b6eb5522c0051cc820ac88311ab1b768517c81393da1acc268458bfd7238d8f5b51825b6209a3c61a8bf6ad053c062bab3001ac8b9d21175b9ac5c86e965965f22748e09df5e46cbace698788277f14cffbe9027d1291ac40f716fade2898ce575ea5e30ae2ba920777a426546872cdfddc1e16d645898d3e18d584c7456fec7b3230f1eba13abf93ea1f8bf64c4c169745442f746e6da4d98d31e3fed45e8764be97234a1224888428ccc81992147b1d06733b4485418e79ccd6b6514b1ea5e10c008d234d7581771e012209d44585f64a4c9b26357c16c0309736d5efcf176465813c803ee71a7b782e6860541fc6f622709dc3ca0dfa7b79fe75da097e96783c465a0d00f32ce51f4928e20bf0d3e047b2f8c6cb1246f3f39e66c6a1b56e913099c42ba75d97a707c17fdaa913a3367af6f6d23efdf6d5bae7bb0dd7089513145f2b9297992da902b994519e45996aeb1b3ce14055cf134e593cf65f5cc1ecebbabf3a07f9421b4885d08f25ea57594f9e37fd5ea7c135701a8145103af15a0620b5f87956d9f322abbdc99a280c5016ad0179c1bc9b6a518705a77cebc1d445ae065108bec7f21ed7baf7c1828abd7917f51f988ae8a5f3bc676ee6155176eb67b0543591762e3bf12d40eeddc4592b686805f839cf3fb05baeebc9e725c98b77cc81e03b9e8c6ebf5287de75cdfa77ce53ffaa3bdbc51250cb2f7eb5c90256ed26c9d2f61dcfe22412786f06fc9cf5bd845376405363b29e4ef1608d22e5066c6642d8240e80e8d8783676754275084f1754e69e897dbdbd6b07d67e9008fdcfc52ceebfdbdaf791743059ac0d24711066d246b324af061bd9cbeabfba61ec3f1f52e107e036b525d2a458ee223877e6d6857081200d60dcc28d688677bb745449155cb0e21c6a2388f4e79c9725770a6dcc9aff51a43241626dc2e7cb030bbd1cc046bb0c95144ab6273951321523e035082ab805d2930ecb76aff81421c20962555a4300507c5898c8680b59fa923b1401a05f46d8c1ccb76d42e3009b951bdbfe1fe3c8057300ff87acf466310f4256dd1d5d0076673f9ab10c402526dd041e28b0075e0048d1bbb116fec3044133041e20c1dfa630bb8c91efa218a01079cba9702cd0deffdd19c37e0880b65a8bbb1f5a4aa0e2b965da0cb8945456286c6f8a3776742562c416ed14ecf46b4a916da22cc25d41a31f3724b4be2cb48fa4aec4720476a6788f001fc98777265e96e1b9ca32dc52f775c5d7f93a0daaf1fd1a170145e6315e73227eb950de493ecbe6f796e5063e4118d348ffa65914c8f36bfe05c44cbfc2164fa6592a8da1cd78beca4371319736e3e9f046cdc2cb6954c23246c73b04e9a8de752212c58b4853c69a26826d7746d8678e028b4e572f74c261dfcd2742cb6ac49098252e3f538f232137e68bcfa7a5d0c9b171f848e4b5738f0e5ea39db3eb14f9365c1689753b9622cb32626fbe2c58e2c3af97e931d1853ada4f36e70231acada9c1c3ffe2a84cecc7f4cf2e9dc4d8d2e12ac4e62e21c9e89b4feb6fee787759bfc55963665a0f0ba30320575299d9002f4eaa4e22a7479a3b9a4d6619511e393a868bc61bb3f650276c77850b00a08d415f5be4fd8d5652f39fcf197caad26694b080e84fe90dbacc68e25ab4b5b5addfb1c18283366aa31edccef878b09d2be99ad87b9b91ea4d02419af1e02d1f29d8fe25e70011dc48dfd27ced842527362614602d4bd6ab948d55591f3359f2531f458113be51507e847813d8c26684ec99e7e960a291c0f4779084ccfc83fbbcf68111c0520c6da1ccee94aad26511834414b67c965d8e92cc647d789c639f7eeab37ad79a9e0997f483e138d4b5b51cacefd0aeb0ce46c874b4a6b631ba96466397a11429c84d3c30a8a9ba43826df808f2f762df306e0b313f638284cb7b905b060e850167a49fdce68a6556ab5f375a561a734713b3c0a987c0d4c86dfeb393425613d604a870b4947e35476f427b57007dc51b3308ba6db38329cb7d2b3adc1b10c943a273a9987d7fd2e50f20fdc549c0707251ca05f1add63d07e50206f5e8126009fe65ca59dbe064e76979fbf0be581901f5fdd5aa0542f0f385040859f8212091e51ab5c3f12c645f58c32a47ca65122788da5e63553610d771a6b5ac9e95f3c59f940148381542755890f8f3474ec6ff1264d2e3758264eef6003e83f1a4fc1f29bf9e907d44b6ee7701c29ee97a90d9a51db1754501fae0c609ac37be51d9809b8c57b0d9214b840c68bee15b8f1e49a3291ff3b7d75790cea545c9a2d4aca94e048ccb61ed30ba1c60b0c6f6558eff4450432f7eb4735a04987b86a2e651e0b2a44ce31fb44ff5ec1359112e61b5d4247f91cc897d6b783a3a83df05bb7ce63cd4eec9db274666688758efdd96731bdd32db2211a39b3d28046207ae24e2d2bee1e81eb7e41f1bdd366445d2101638a704febb7a2c7d9a55b2a26f416569d2a6650f131d8076f4b001affe99398c43a653a3c80d76f7466ccf7c002a99863fcc4e1f0331fef774d471c9f753adeecbb1de551f8ed42ac53fe778fec54641383321f0c4bd9e29d64ab5de04027a04d8ac4745bfbf980bfd8b453c96343c5c6d8c388b49ce7d7a761ba4e01e766ad03bed57e12a7f6dc0c70659fd97e74d0403f23efaeb4c506b5783badf8d5702ecea441eb57141a82d0a98c6d3767cb4d8922f020e4b88ea1e9fbe88e24f41fa5d22ecf4ed84f22d187aae2d8829bc26f6edc8664ad037ecf34efc2d9d57a5d6470d3fd178dedc4a702fe1ef59c0e71e1619fccf72262446696f3faa5cc926230a4be7f89e78522aa060f734a5e538454821bc7e30462f74cf9a3b49f58b90e9759fc82714268302bf6903af54b22a6f7b95100c647f76f05720facb283e68162a8b9e11a9978529255a9aff99ae466c8a93e87c31e072e8de42fe5ca7557db883a2530eef9e614003701ffd01f2c7b7f1a36b97f268da32029c61b44b76e38746ac6e27e1fb0b129fc8f9038a3d0f7f1adf482487393ed983cfb0583c99be0c0b8c40f59abbbc62610d24507e2211b1e2403bdbc7b46380cdbf8bf7085da1e39226e9e8c0ceda2a9f299b4dfc6bf5d080caa3fcac9b9625162c4733c1114a2d77d08ceced6d4779c2b0d7d45aa7e4377ebe8d8a9b345e72eaec93f940b598e1b2b6efc7e231428174e8d673a8fbdd14d65132549b063adf8e6d2fb739798aa9b8a15062dee0f3c5d83c711c102cbb58f11ada90e9c047232892d319b60fa95b368711a4b70e39d9774e48dbd22ba72d6d20f18503c9c26d7f14c257c5675143481887910b5b6751452f6eb89e4895a7b145f3acbde9c109d3c93009e97c9a855987895509bf4119134d7daf174dcb98e5a9aa347e34566a99ecffd46b1d5d93db2c90f787cba9d31b72ccfac4066542367515288a28cb169888e756aa666d6388e4c8c3f978393d0fa485627b99c1400db03c1244a0dd844e690c33d0e006c431bd41633e78ff012e7eb76fc8ff87eb301879c13a5c5243349952c3dc9b83a88e4741be752bb0d34539d18a610fce009ca880aca083110717eec7c0ac4778ce30801948ff17837eb0496e8dc471f984b442f579b3c1fd8636cc75195ce13e26ca087945edf6b0c07f0a86afe0f88b37e6e155e98fb329e94ba6f5164efad425f1f3852638f046e7f69957eb47c02806d2a45307b909fb340d98829e3e1f186da5e20088012daefbba09900713d7043a9a7139e9b1a519274b833b9a1b066a800a92a4f88a866b294678317e3ac056720789782ff0b5b831e94d20cd5f8996fc2df138bd2f07de39e45994fdf4421b41fcc430a16d55ebd11075848629cb657efd1daeb24fc18585f064a943318505fe365df690788f201f4d4ded02915ec92d31a74b3fd7119fe05b13beeee0bc19682448580a10bc3a525431730a83f804ecf15f0e7b5bda5c061b7dcafaf5ed2a23706baca0c31651ab6bf2113c7c64ec88f1492028ecd31a495f6a05408042a1fe710bb6a310841a5cca6c58046a4dc891cfc476e8258073656e851b52654c48c5466663fac37060dd9a882f06003aad6cee3ac650c30be19ffeae0ed4a20ba33cdd04d338c24898f0f6734e096beaa484bc7dd5084f364695248b170a4423c37c4101da122a6f215929be9a00a27cc21762feff9a6edf25a3a8fb872ea23af5908b8220c3e5c2151967681de15a443954f4fbb0e9232c0edeb0d749c0ef353344f0f0ce05042bcb7e0cacc1db925aac07e571f1af9c6586b995142efb710e45073f518bb6f0cba277043c949856846af48b55b1a9c4bd0c0c1cb822e678c4935b5bba5c0b6ac556029570f640aa3caa67ca28cc2a0375fbdd983c831440b87b18f516c18dbf6860fd3f3263c5198bc596a386166862393201a834e9018515b386964bd41529de2aac32c539a0cd1565e0c2fb24349b084583e9134aa0e144153cac81c81bff91e718435cdfd46a30d9f60c46b414d63764085348027d768fd683d2a9a7884020615a9b15f6358b0684b90b9f472fc84786c507741c875f0e4156f45f0fa486f1226c9fb991a07ba30f16d6c8af6f5e242e086c9077d890de4759888d9b3097c018d6c6914d3a481b3425c6916567c9cc52dc52a87ea8a1c2b36454825866d5a39ba0f44a61dcc8be77ebd5071550d0892e04a0fb7cf763678facf0f4e12ecde50f0489a03a27485bea1b4f7a0e009942498b1a3ebedd7de4e879d5c5cad75f9f6b9ee3efe68d2c7c8e5d9e3c7cbe14fdf99fe4c1fa0ffedfbdbc7cdf5cc2a8a14054d546bec44a8f7623a9a99c0fcc11e72fdefcfdfc0c5d9c536c184fc130ff5460e0972296373625500f9b9331f79ecfde953a90ead7775430ccf04ecdbb43727761279ba9baccd5b20244896652894147f2941a4b1f5e2b2e812a083b8f9f04fa3eccd2fe847b8458f83cc93ddd1d2c5fe6e719de8906169d21585b4635d1ee7b3809d27d564a66b41fad6d9c7ec55fbcd9c2083594c6c70733cc2812f8ee771351f79b298a7a457424dc5d6a6120d156f696cb8eddad96f9b143fa84c80a5c2fd038bec6c4bc7c595e2f78ea63e72d3ed9454a631731987117fbafec5c2373cc26e4e9573d827e94dd236475c24c3f292d9d75603ae845bd1f031ec6aec8801d280ad17d5a4eafaacc4b2a06eebd6541936524888d8fe5fbaed0ebcb91d7b30e973d472c6d891f576ab6fe7e1a7ae2ed6bc7fff1e7e269ae9c3f4037d6fffdbbfb4606fb0108a3eda86f744d3662d61499c36539d800ece043c2476241556626921f4bd042395d620d800ff708d73cd1a935299f86a365f3a832545be170244ecf0cd10ab6f0dac5745a8232b6d7142551c4d6cdd941baa87d99c01de6036d97838f7488bd39c4746bf8e3d4242966ad0896437f4ef9a3f1b1081b602d91303c1c89b87e1adc83848e4b0794c5676fb476cbbb9505251a38c518f545862f3b63a990f7d53155d6aa54770998a235b7470a61f197634b05a49de2648101e199ee144fb68466d06f4c5e3b15bec84d0c7ca0eb69132cecafd550406f26c58c7a521a1ce88cd75e1330b1a90a76c4c817b9232a61123b0862d679ad44fc7cadd2e18a38dd1520bf755aad3e93486a374c3794a4c92e76ae7bd93c2e711b5f5fd701162c3a1d24bd59494aa5e1957bc904c514089d22192af43508ff06e4e563e1717d52d92dd96b8a8168d17ffcfb8e761cffb07fb0951a368d016e774b5a5263bb2159169b04f881baeb2ada1231aef6a99205c5524e300c2412895e1c67c28367106f0fc728ffa56ed82e633969d3a0733533eeb16c98a068a0deee249a8e23384daa886b9859746823441be0fb378538c6ae605ec33de350ac243735dae4bca62b345bf47896ae66a8f66febc302841a9a459c3b4bd106e65af474bfb5fb72a522631c43aefdfc45240e6f26c1975e0c7a1c5301cba0170a92a02876174776a7e881ad0dc619be9d094949408bd95bc1281b82e704b1042ba2cd7f3f439cf2efd5af48f50d2e8ae9a20a28dbab4a6861a7b0b775809850aab98e7a870565a46b34e0fbb784ca1209e851e53a135bf30803131063ab8c4d88113d7fa40fec7170d6b9e8ae68b8834c0feadd8d4e1e66b56bcb56bdd03857dfce5494ef2d785c99c572c2df5c00d8c965148c70a5bcd51108fc7a395f6e03c62c622875c3e6365e3c8de0a5da7903ed68c7b9bd230a6166af18d7b486d942be2728fc2603f6b674b188d59937a213a69893e1245009fe9f66872e963461e4f5be3e7b5d0c6e15b0d2334b0ff40fad167b8319d19a0ffbbd1ec1ff87d0a8b7c186467b0cd088ae1deb5d03a403c1c84e77849973d13ac868259e2c11778c083b105ebe9e2c05e5b979f23c155849f5917b6fc30314a060c42a36566980f3cba20fb2a77b97081da73f87dc2e10a16aa612b0d4cf3bd248c0084fbc534183515a03ef2d7c2577ad0bba1c325588cc7129153f156d00f672eea4f8d0a7261969babff75f8f8ef7c126dd76fb11b3677ea4c67ed73f6a3c67d8d85d648816863083af4b9d52e9636a28ba6104bbcd259f654b39b4ae6f1e90b453e4b5a83a0d81f9ccc467dd3a006348c4447722d1e3865ea7d728a728ffc149a40774ce43b547be369122aa0fe389d5f5610e78f35872aa5916bee91b42697a4f44de7ca1c0eccbd123182cdbd2cccfd94e29b2d94b9e4ff9a3807683b53f534fad702c5efb2a8a0086ac8a15247da0e107c9935691eafa0ddeffc8bf39d5e5d9c1c8fa8658f57d221b137d902d4b7e44c78179596af8d0c6ca55a8616038a8bcc85b23b786626ef1d2742191bc20c72138a570be5108a93b7113f09f6a390803f33538c0f800f7406bf9a5757057042949c1317f134cf258611bd3562c9d8d0b25aeb7ea1f18fb2a5475aada91959eb9ffa094311b7681cc16f31da2a2a27466bc9efb4abf4fe1e0995c6559aded30e767faf33795c3473859fc862dda7d012446d7c2ea1866a9411c3181561bd0de86a9636c45f2cf830354f35360dad04f172be6b41541b44d5ab2ae9cbd0aae5634fbc8a9f13c9075bb54ca096bab2c8f4ff325260c3c3b2f06c2f6a008cecc578e0f8129a65f552c50980da0d3139078402f32cbd791a77ef94bdd4f13572b4a266afa9fa0bef7548f2dac226a47886fd0803d9a10f30b2e40af498bbc3414ec60ccb24da66b08e6197759508e13ee09ed164591b6da35cfb3a522082bcd7df3089000607226703441afc31f875e09306bf87d3c104e5461310ebebd2d8c17d2fb561821e1dbdaa1bca82162fd6af32e7bdfe1be05d380d95db55cb9e4abfd08c2044143b52a34ac5e55673e65a9fd73fbe2f98a12aedec86c82a21ce1e2249fce181b8089dc8913f8c0c5a30720a2c9b881009cb5f3c745947c9b42b15279e081dc68f08a244fad656dc4fc4a7f9cabbe943104687cd19dc43155e7326042d753cb0896879c74a56cd597a6e7bfe29ef62cb9f34cd59637a9c430076b238a2714b6945a3bbd5a57fcaa5f89c6d630ae6e2b5250a83308f79a41db937b080a89459df071ee631a77b27feb527660aa452bb10872a59e05a358787f63cb072f318fc9c1a24c44678bca0c2c43638e04766b7036bb1f6d6d6b22b0dca530939a989bed586804fcab6de674c67e02ee3f081afad3cb6012e3819e47549eb53d83aebc0981e523af374d3540310b849678716d4d013e2906924f4c12416589fc96a64b172804ee89df1eaf80e3b15642799b01df9c278cffed2ff91c75a220fb27eab0c6c8d8ec35d9dc9927f70c0656959ad8d81151921d2184f050aa492813d83ae30da571cc42868a8ebc7f9c9ceefbf15f8b4ce559dec196ab28644bc10cd621062c0527299b9c0cfc68d83b3f5c7c28334cb69e314ea882c2b385a50ccae271f2983c672e882b9e622fbe0668995cab8c20520bb091db19aafc32873f4b97b1dfba953e543197085406d0b611032feed3345d8c34101e51f5a26d83a6dbfe261e14990c3d8e7034667a047e487b418464e815cfbc1d5b2ba6ac0c7c2fb3107fc4b6f32d3f2628e191a153dde2254cf8f3c51471e79ed88867a07104de03bf2ca86998d791209bd5e3d4699cdee58d10e0a4ed191ffe45fd281fb025ca66edf7390e08134d8dd042838905ce7870049111eb2af9ba1362a91bf51484c3b7ff9653a4a63d480cf1c95f7912ee297a14933184cc7103bee99dd5362a4921763a9619fe5026b87edc94edc3732b3db73077cf7a960b8dab7a0eb27bd7a1b6635cc9e957bd6eb90c0a9938b2d3eee1957917371470814c09c09284318fa6b40972c1d23002ac89719910515e9b18fcde145840f7e2b53800c1d6dd8928607b4202bed6b331cb8ac0e2162b6d44294cf47c2774d1b09fce39fe433fc767c7dbebee31da282f248f38c927f744334544cbb7261d28a178c25f7a60e181630b9c6545f7e16e89b4f0195006ecacfedc01fc91d1a667080de5fc58dbb680ac62556ad37a248cdbdfad1191b2b9a0801c96bd1f2d05eaa7982a248819b14e51f6220a09e2829cf4f2c2e782ca781b01ebc60d38b1be91dfe906b0150d32f2e3a3186f6835e3240b9f21fc230237e2da5bb3b2a798f9be96a949a8d215a5357a3cf8d2954bbba2a4c8ee9a63608ec724195c986a0ec3916c8bf59bbf2a477b02d6a27a170d16b70e51f3920ed22103d08bdfb4656c7d319955ae1d46551d42cdc0541a21ec0c54ded0439c74e85399c5815dc9f9c63613d225b3e10cb30e72b80a099696ad130f97c8b81a7de1b3bd16f6167ffe60860e10a4d69f634fb9222f29d2244d518f357d437f5664423404a3d9066b84c262a1416169604cf464dea172aa741b52d4e9f83d839e38fba86164a2c294c185ccfe3482fddae827e92ec63f6b350cf9c3598b35d56187ab70714ae3d3b893a0a6b9bd14ccd85de7bec2e03d0863331ed5c928d3065823340697f8aaab9c096324f8a4421ac198013ac40e15f5a677ba40d8fab75b8166ca49ec72cd315c9435bf5f9c92988792cee0355d804397ac05a288ce28d28c32af1d078879d4840271c09eb5629361e1237f13a1258e39594941e08db98793e71fd7cb21e79151e263964dda874ba78ce27dfde86d6b8f9889a9a255ee8bd1bf8f429df152d14083cd9965e7d223bdf93690934c618b3fc54fc655830e3fffd5c40865d3b4a94bda5105baf57e612a2a01fa0f433bc70f494930133f931a6420229b8e289b98f3d7926681496420cea356f83fa53086606892a0a0213a603d13ff074b241366b2255e8ca9023fac02588af12b0c0a424b7f65965cedf81c3a00a281bb442c2ef2738a281f003a388ac688a153f5e2d3ac8a6b0f7ad31e4bddf1294ae5443a24cecf1ca5439f3b41e2d350e35acf08618fd78723bd90acd2881fbddc06eb363459c5d59ff77939e2bca493cb5c2fd4ebf220a9123c61a53fcf0e30d13c67421165b21e6c49e79bdd79947544a8c3a757f6fafdd1ae2b8d41cde50e860853f66d672a63f0f9474a46d3953fea819f1271579579e1fc0805f73315a244367fe4b5534d1d82f2f0640f93da141b9a7c974bf65e0ae0dfd879df08d7d94ac32bb1dbe12b4deb2b83c3f3507aa0fa49637b36103a09e8e6fc41aa3233d7dc96561667f31685b81ab96b00d77a3f0893a8933c2bf71fdb9ea1589de5d46d15282e02f891db85cc1c663132eec6633d6315e4077c924e1b35b168b65a4d28bc9ac0e76b2b68e8f08e8a1abd17287dabbbf91eb8289c96c42a107336e977a98139a5f923e51f4e6505218bc70d6c9e9a77e01b5e58f88e4954061b3a9865aafa12c193cff497bab629abede91c9b695b73d3ac637e7c8647d8caf77ab9b7dee5865754d56d1341854238ec1dc9d0433ef3db001f6ba2d76a031e3d94f04b15dca91af604df0348d4b2d7edfa7df3a61efe88523aa66f993279f71626ab0d4ca5790fd507d1fe00e19f0423fcd389489544768333f0c11897353bf82f521af5fbc9f940fda7e89759ccb9671dbc54a23fd2892337a3e5dd605c142ba4efc4144fdf5669b11f403d5994cca8e8c17d4619f10554467515647013eb170bc904daca3d414350bedd43e2a001ceef98efa9572da4deac847c5f028acc1f5d6d71a3439acce8ec5976cb67048813106fe3b82f698b5571e0ce0ae41ae973db898c8c6c7f58ab0feae3b813852350456bdda26f76f1f9075ed7274c200d179c74555cc263d33a2371a9701fe6675ad4ec91f37fa9d754cf1d9099649f5b2ba4b91d824d65f55c97c3a52c248a31aa5d0fbfb610388e1901dcca87b6d42858781d973361292d0deee2eaeb73d5b394d198d2be12866838d46c773124dbe0fb0ebb6c5a81f867df4b5f8867de1018ad56633ff2651a9fc941beedfeeba868fd3251ea161f57539a9bd76434cc904c243d06b70abe31d4247f8fc3f031200d4cb2907698e56eeb70698b94699b120cf654cea5ddb483f00a4e153e388a9f7b717b75563f86fa31b391a8c22a067c8dedf3d7b722702e0f8c10a01492768130a35abb2c64dc5e7378af9be36ca23144c922f3e0a9384d7875c181f7c17c8039eff2bc6b6392ed914fcdaca82cf1a4743d63705a1e2b6a421e920ed9ee96fecc9da949e3f93052902cf74995934f4d004ae83c4f70e521040aea839f836accd8e73a02dfb73678317b836abaa14527ef55f254acdd3537bf764f1bfd7fe2654ff4b904c524ab920b28d3e0c7f082319878b01855cd9dd2b573b9a1271cc25065694d52cc55db44d063110f80f230e647692d130e7cc225362ce7945c6c79c330c218fcc4eb40184df4382608e86c39cd30bd711c125da953967155a08e69c60e432eff0883de499d7cd65ba8c5c245c1e9492fc91848f247424f932937491248a52920b24b992e44a424ba7430021a3023ae0f8523a2d81012c3d9c422f7512ea39dd9c32d2c9743ae114c2a90820b324860c157b906cf4b0c3860dd2195d66490c990fd864b1b1b159916c3c1b2a3617087e7a7c20d4a9e750d429db58414c64c8014201e5307152a98d7665a77a5ae5f7287984b640ad7a92ccd14fc3505e150d7dd14786bf4aa130dee4a7c258fc502b32456968aa2688e62745312acc3b150482acfe4f033de9e8e8a45a61e6df2854923ff4edd0206afa6f14a2e4add889aba9343f3c403934c5c3279f9442716a48045195d2d02f69ad461fe26c5a4daaa6d2fca468a8114f175bffe466ff948f22a197b3279b0fc52729b28b299ed4131e54eb9f54ea0226bffc461a8028129ad97bba1e7c9e024aa58052405fe691351a51b2f5449a45b268598a62141a2812244890d0d3d1d79f6c3d11093ea9d4869e34d5343fe5a77acac34c94a1d00504b2003654b8a2c256a1012a8c50a266d0b24493a820850a205061cb0a475618800a6f9454b862052b4264b1824e698533567862852b2bfc0a2c58210f163a10461e2c0051620188851656a0010b76b030821628d0824e89853225231f941840056d61ce89c32c31004aa9852106cc520b2c307232c244c9c80f4674308219f9c2881673cec982024a46c23042c79c73968ce071e4c8111516a065013f944a7c01a614cab0bca4e044e94a0a3c859e1296327a24818213a5520850102aa17142193d4a6d944ef072821325149c70c20fa53ce69cb30572b1873ca3388e4cac54318de238fe0d55c21c7ae25cdc389563a58ae9862a36a148c31f5a821dfca398509a733e31c134a7094f2697f25cd431216502074cb8405098334af0d2a50427b444714b304288127a284be0a512847a4ad8292153659ffdab201e5188e4ff3efb5741e57e95a8138a3efda388e3db108a3e1c781ca40a00c623b3c7451f8a6b68982460a422ea501ce5274a142609c049c85fb5ca392350428096395bff6468cc794231cf4bc8f194046332143f32fcf2e831464094392986a243c506088a0e15a01904cc9c503a00113324427c485026c989cd8be3efc0395ee5f7f8932c1e146a4e2aa502845032406ace13141d2a5074a8509e975003843067c90026a836159e971800090f3f481432409111ca00c2c7086346082396a69a4782848692e3d0a7a26306f7734a2dd0450cb62ca182114c2330601feda37d04825f277f28af502b922c59e27311f5df58a2c8f2c9a3afffb84281e04784221ab3eac7d36987c7688767146936ea1f0f451f4a0027082086003510c18a6083082d11325012018ed207a5528d961930700396ff010c821f01ae541f8a3b5d36fb8b5a791cf3919200e898737e41a286c26f4cf22c1d9ea3f617252143f19bb3cf9200803a2095aa1833e764d2e3858a157e6864543e49958c5ff89d6a684a200c124202e69c55f49f10ec9cb3cb9710bc39671533333321a060ced925063e4a20585102218b180e403002842b2038294308841840b80a297d40468f30a50f98f8c0880faeacfcc843e8839e0f6e66490c99d207002805c09052000699aafc2579e455d4dbf947ce733efd8fe537fe8a4552327b27f213436a4a7d8a3ed1078652e8a9058aa14d2886242f5f8552852aea020d5f933c14a752d406db9c523534af124914f99d28fd904553a991d69424494353bf4325644d593e4b877fb02c3ff248f9a9dedb64feb193a238f48132d0d3d007ea4ccb51ecfd6d4af2f9c80273d1a772b6f928f4944af151ec389c86e2abc4a014ed3c14a3ba984395a46ca8121b8a8330c6d95f99cb204a668ab1d04dc91a93f01fc54e694619fd68f4618ada187d9893a236b4f5444ff444296ae3026d3d114d98715236e4915c668ec3794ea9f283c89204739939c94356f86027bf544d4db9607481890ff005b90f07b8e00c3e5cc007122ee800990990c9f828436685176c79c1087df4a100327dc0008d181cc08f3cfc102306373028f28384810a3028c00bd6f063490cba39e78c810b7f08f28713626840021a14d1a066062a980112338832839b19304006780092420d7ea88106081940a000c48a200408248f40ae08e4a8063210a48b203b083265900f0c7245904108210969c0205db040080c08098310216cb06510426c600dd131a4a64c98325a9441950140215d14a20b19800d5681d4d8800586a40e51e1067cdca08a1b1ccdc0043730a410434e60c8060cf952586916e090300e094284436818a41eb20182cd2b25925189a4a44402a134bd9843f861f2a385129120886c9e39a709b344244969c690d20c15a51955696686128990120739d052911d4a44b8904109a4cc520760943a28a2c401182fb8f2021ef808818c292dc0d2829d1c5860070b84f600640f708f1634a087163d6ec87862055d5610820ab0a860270f32793891c7ce183dc660600c1f73021986cc39271e61f0f00200108f13ee207307bf232b038514784941998210ec38c30ed08e1650c005053dd4d1a58eac8e2274a4461fd2532a954a59a9424d74ff142b552889d3fa27389c0763a19b50fccad50fe7b15285b69e889a50af5b59454d3bcc237d03cc1b3fc0a1031c367028014701de3024078e2de2084094381430e340220e1d870a74e438218e33ca0f922304720ccdf249b2040590e38b39a74e094c25082a4117557ea11200c25108e36492640675c819868a302b98730e16e6188ae30b3ec707e6dc99e30d11c414792390c9ff8d377adeb879e384374478c38341dc20e3861e67b8e184116ef4e04659c58d1e376edc10a10d3dda60a30d2e6d64f9e1a88d15afd2d3c64d1b591b2db451848d3fd8a0830d306c7c61830b1b5ad810828d15cf4b9e9412f20c85e248c38ee8134a81a2ccfce361d6191f88fc9c5ce69d92cc3de507f16fa72473cf0e5992b9e767a5da546858a946272bd5e8c4e87de6045b4f8402f316eda99eaacdf3fce591304a06d0303a020d0e1081c6187316410112e69c3493059d396702f414218d6cceb944d316a873c9529d742982e4192298f1c79cb38b520483ced0e69c5c9841871960cc38a38c6e861733b8cc921832a5278ce69cf309b00df22bfa38cde3f3397dbe14324530a8ec3f21cf97e1a70a4796fed1287b65f9e593a83cb2721e59cfd2e10b555ff2ec9c7e486459493d1775bef2a32b32533283f9479a434f5652a458be5148ada45237c0d0ea1f0df464942999474ad2a14c4512cc94fcc04c4da631ccafe2e07f7d157eb9d4624966f01bc7bcc3efcb9e29ffa24c52ceb308160d859f4adce147c75fbd91272486b47fd4e87dc6ac1abfcc46276fe7a75d7c5d7e8b9620f895243da550a198da214b0ccbecb1bc12158a291a7e5aa46f44a338d1a1f28d405076e850f81999caa30f4d5dd8d085155ddce145115e685eacf10502e69c5c44f8a287392797956a7452b27e6ef64ff9e2895a0446d01736f8a28d3967155fe48081031846cc39b7a026ce93c70c74b3ca50fe47a1255e9480a1022f41734e2d5e042f46cc39bbcc21fe8d3a270c21c2d044f0528718218491c59cb38a52f4c8550e83c44861ce9985c5588c6fce8985184dcc39ab28c98f1c1f688c3d460962cc31e7bce28bcf9710c6d0630c0fcc39abe8a2852e0ca0802e8aa8710308177aa841e2428d1b70c106980574e1c2092e8c48c30b2eb8004a630c17978b13d2006496d9824c1a516c11260d35ba6ce1c41657d43091b6486d01b4c58d942d4228334b62c86831460d3cb48822cb2c8921a3c5153546403af2b40052430a275a5c3584d0e2d282ce9218325a78a0c61f5dbaa8d1a5cb972e56cc9218326a7c28f28f25b628d1fe464de6a7adf1a7d013098a5b2cc57145c1ac1a49f24d64b8c3178aa3b7c356103d3d6d81d92bb3b857ab5ce61da0d3afc86f7fef4f9f933934558ae193d95bed507cca9f482c0a3f291e993d1b1874310519339440451e5464a1625311c3143198c20d2e445e804415ab2a14c0050d2e2b2e2454e14309859b28a6d8f2650a213e10c79c734e11c314341f708114834831e60365c22f7b3aff91d948738c51ad0cfe68a50add3aa850fc4916aa5c41a104142928bc882350140380a20d1e85fc284c487d8902cf3973a21813059628fce03f8a655013a018a068010a0394a0e0a30c20202003023ae0004117103801022d73ce09821fe69c530518becc65d050f895612e7af0a3a450e50fa568de4f10cd497117c571451f241a5f45692b831f298627289115e80b2f509edf438dac3d63470d0d918822bf530d497ba84151134963a4076aa2693d11aaa551de1ef393a8d698c34f9f48f0c3f023e3b9b8310abf79f9248a8fd968c542f1f04994c859240a55ee1cfe8c915c662e96610ee147aaf298579cb5f5235be4839f679443962b161d1a3348b5086a9ac9ec85ac9114bd0f5cad5824f9d1f059f4b9b86913570ea534919a73f2df2147f4696202bc147d9af032754a5274e2810ee6cc29459f5ce69d291ee88007a0cc39f42d1145210f8400a8b5e4f3c411e803a4493ecfe3d04aca50f8ad564dd0347142130668620eb2858c1e226c39c3cb962d5b8cd822c4952de016be05a8021210c7df213fc8f383542cc9f2d3fccbfe7924399e360e1c30840611389045c96571c05463060ad1b8a60aadf1a3af51e593a751fc6c3af8243db572497ebde82b1a59a491961fe69c244c11b4c8a1a50f267498186262024c34d18315305a6628e10051c0f728c138a007304755aa94082084431a425668a0a5e706ad3083ef9d4c3b3cb4f544a3d8bbd89bd013a9449739a7151fe05c1635dd2c61c31254893596e032e714014e1ecb23264bec31e7ac0287879a846efa0f35711e12fc72a904172db324868c12424a282182122d641964cef9019865cc1c6548748099253164b2383133339345cb9c59b0cc921832597cb2ec94f133e729455b7a7fa0669d52aafc25aa7c72f579248a454990b6b2aa7c92fc225104cb520c1fd4df50c8ca3445e61768aa86a436f46444435fa03b5317e88aba4037cd4faaa54b91a6c44dea32fc5442630659fb2bc7bc2ac30f0a3da544cfc8e63fad126da02529aea811fa23105592123da3254759a5f947532912fcf212282b167d6fb3543a0a3d9d7e68cc65d1673a29294911882a4975118862f2b908a5fce8136592fc52baa45f24eafce46734be57b6c0d21bfa4056b973f89564985b9a939f7e1e8ae4178950a8e819852c9b91d533f9ed845f1e1a7af02bfac655c8a2462208e69c74931c1e9d92a66ac2074f2ed0f0c1d3ab72484391d02f5b4bc607722145710659aa51eca3b8776ef263ffa1ef95afcae1fe15f9230f87827c523541d405ea43f3933a7d48feb8fa91458f7e28fcc63228455b9a9e5a200fff1b3b1d9f64a9725866be627d2882f92496343fa8434f355e69248e43e3932c0a8a63198afb49f0e9f8455f66cf888ee20e13d68fdf7fa4a914cd9c648d65aaf394df164932d3328ba0a6f93d1a284ea1c84f1c7f872757e4c77fb33879e48bb267f461f8a95ae01791a55866d527aee81b8942afa262494791ae5894ff6a259629928783a2478aab91b51afac8d60e7f1c593aa932c5849e280f73f86f54fea71a7f4539494f29fea5543c87be576a3a8af4fb4c5b9af22e82bfc3ac43713016ba29775ea9441dfe9d5264f9a998d0133976b1548925991fa425cd6561e288c3853882e2f0c1082b362174ae4439b2e2dd585941bae159f100375254ac2802c88a26dc7062c5163180b9569ce0b2a20f3768ac2064ce396b388f8986a68b2ed02c45c96f1cc5fee517b2d6c032e76401094e58438d39e71e6c786c9c40023248f0734e3dd6f8a19c253164d6e06bf4ac71b3866904654a2320334b62c88c20ccac82660445e69c5dc80906cc083a2081015302c36596c490298161cd703003263543d147c7069a1f7a2af3eadba34da61f7f958a873e4b87bcfa01c1bc491608446d6a50ffd190a9076d8e4a1b6c48d5b8406da02ed0209a9f542a454da3f811fdfcd053aaa6be0773d1c7d2e129f9d1d3687a6f8825e2e020a154f595df3f9092e54769fe1d3ef2cb5a1334248234f58139fc521f8a3e293145a64c5f8a627a4aa52ab5a15de4d90a66717038cf5659a48987acfe51a8c98ace0dd44431cf1fc546f52589f14f121e6af3e14fabfc8eba688482397594a1a456abbc4f94a682525e296a6a327df8436de8c9e643510ab5a1271a5aae542f7a46b4868692242a456dc8cf2614a9498c2c0c3fc268220c1fbc10000c2e4a5f1471c5c0428a32b09461250c31bce8d21743bc9cc40883c607d0b0e12a230432bea091421823191020e349184bce98c3cb1f5eb67801cff8728610676066a0c00c0c98d1f3458d2fe3170580b101301af005205f0430461863e8504699313031ec18401a45ca2041195e784003066a946860356cd2b841c98c9a34c248439506096204e185e785072220810b3eb85889e0c8165aac44c075f9a3cb1711c010b286348d827333ae56a6f2862af4447368098b1fb0b0238b25b218ca42491660b298c1e87d7ac0c2c32285c5c582060b12ae18e40a3eae187305982bbc08f990a28fd1371145a1f1f9f8d37f4ad60ff9df2896214f2996a2cfab3e2123b1473cca50c6d31b59b3c80ffc4a5692a18f3c41982cbe983a7c46a09e8b2108644078e186f24fa565d2b18a2b73ce93893eade16f6a955fc852a9c44d43e61e2ba9d40dcfbff113f5d1d7847249cd399fe0f2049720e69c55cccc39b3e05f92b9a70a16e69c2ba822ca9c53055ca87071c2e5ce3927174a059710485c8a5001081561d8a0c20b154550f103153d5001ce921832545499461f1e65150f452dc5aa9c734e298cc02d475250d942440c5b3a30e79c52d0683131cbe2cf790e0fc5253a46efb363f43e6264317a9f1b054d141e4431ff80220c1b507829c92f33384504a2990e851c14df48fc8c48fa46e197e5371a8d39fce87b9b920f820f8080c9132e78e28c3927179ca795f38496d21358f4f0c3057312edac0b2939014efe1d9c4872dc19e2e89b48e20bc007a128925372665818137e62c984055a664a0e855ff6800a4d0c32e7cc83f33441471367cc4986acd11bfa544a481c7a94555be86802017392df97fcc78f7c8e2a9fe4a1a851adbd5164467da82fca0fea3c7e08b28a4ad18794b265c9b6c5c89613b6d494991e7dc801403a80c2cc08385084d8c34fece1872a8f1e954756b609c52751a38842f9fcf0044561320525c4a4a727070885c262480ad113f991a2586a01b52ca1c50b2d27d012032626132a68e12815aaa06ab408a18868e91144cb0e0e75dce0d08239e7d492a10830e79c337a909991633c3d29829b1e95cf1aa2a1b8e94a14411a02f0c169a4656e12800f4ed968cc2a6f87afe928f64ec19cf1203f2351d330534705561d0948a52aa426a4150899538f0f6460ce3986f2a7e47f61568d99872cb1d313278f3ca8bf32fc48b2fcf226bf6ce9530b2c43b1348120e799d2245249ec90840892a841298b0d598ac8c285ca0680703022092749c48043181735c385831c3456009104c5618b1d1e2afa70ca5ff581b47c42335066008c0cec918143347004ac72015e650355aa84425578c840cf9622722c958854ab58e3a69992cfc5102596e187e2e1ef5fadbeb124b18acc4637277145bf6c691b25aa2fafbe177d23983f9518b6407185049839271e2feadcec9ff2df4414c2000873ce3bfe9b7cd95af205092b900802891e902891e04800a580cc0fbe1de37fe0eabf4979f43e705c208a591243e6024c5c00cba4a7237a987362710415479c31e744010ee7f992a73596211329e511fc082a132886232ea97444e908235860c41894d187a74ca905b05840041678e2070b8055f83c91a3f879bf3f95188afbc7e7e491517c8f065e86628ae47181a6524f84050ecef34f688828c09cb30a226a20a29b738e815916f9ed105103224030e7aca3866cfd93227828c266ce8945114ecc39b328a28c39e709b060c1e2441358b460e9a18a14583816212c0dc072b1d060216188416418828f21860033c49721ac188234c41043a05e205b4f34be291391e5271a89e3f314c55cef501b9a32a552d494ea3f98e4f9a3e81a1a927fa8d613614cb6fe09c642a91c4ac38f72f02b4316ad0962862068802003c4579a001c421c21c44a0819840001080d041108105909082241842088520831b8205b4f842a9f9cc0047e0064ce397f38e38750dca8f155fb88032509fc0e1fa9a40459e469878fa68bbfc347a6ba98aaa139b940319b0a3f05ae2866b5cdabbe72ab99aabefc6cee4643531e999da4a829c55bbb8b57f61501f840c79c938e2b725c0162ce6902089820e08039a798082c11812510e0a304012fe69c7348600024b0a3148135e69c619ef4a18b287cc0e243e903f7a16727f3a1e4830f451e60071b0fe8e201a5078c008f0784a249f4c8275b4f4443f6c0e79c25a831f530a6070bcc39e5a8c1a1261c13fda0ff0e500f557ae8e1210f1ec2f070060f5dbe59e2e1090f3b73922791925f147a7a506732359e8c448f9a5a9aaa78fe91563a147e5028fed9f911a2a7cf447e5cfcc65fd127592bca125bf4c7232cb14549f26b5229d5579a680ef8e9efe8c13e8a3d95a25fa44b52548179fca2f1535f8679ccac214a7e34d3d028af82280e665938a71a201a3aee26a8f2e8b347df13f252d4e64a697104a2279a3aad5254cc948c424f0fea2ffc9020213f0709127aca2bb28b28d4f8645e921ac572e726e1ab52b48bf443b1cca90c85fce8eaf3c850fcc0e71fa96dc80fd42c20aff52a8fcc4e4030eb9c3cb1554343c9f1f354359c86e2fc7822b307446d5439d486e22e827913ed0fa238d545dac1ecbda6a1088260fef1cb57e53103d1530d4923aec81f4791fc532a95a2391c955414503d5191c028401e42ac5a812a0d7005a2428854500a6558c52012226e21ea201e09df288544a8bc108304257207f2c81866fc61d489810e1bd061a54309251d405875b1aa000ce5562ea02c8114a46484c5288a910b45628a888a466089c1ea00eb4919485947a95ca27c523aea8c5660a445a9c5c11118474614c151d4430b06ad285a538cac283d206f407241540591109108624a399ca094031b3bd88043200d60d0f7c767840d03f844f0c6a0e0a56cb886ba1812c2069dce475f3df92e7e55c39c733eb541733036ace69c93a7380936ec2d9b8a0d139856aadc50c5d40273e8af5a4256aaa04cbf6a95281ee6cc1afab42a931f6f69133581f9c71baad0530a2ca50e499d916bc8c93a8b1ae69c299eea49c590ba5222a4e620a83f5063422964eb9f707214c11f6fe873228a42e5074929451f20d1a7156628a2288442a150ad15c84555eb481c813af841a20f0fa5000d8dd9d321c7d3879d30ec74d9680e16e100a444f57d24e5a24ac98fdf2896b4cc477f9be0700239e692e7b9e8b36487871963ad628d3a64eb9f9447efd3fa2764eb9f883ea20fe7999223fab4fe09ff32ef0f5cb176c80777b8fa3cd20695e45579ec9ce7d677248e2b9225aa5aa118e62fc35795fb73f831a35a47e2b822c70f51e3971f4a258e5dabc10a723cf124fb8bb41a7ac62f3f0e361532277ea4448553b94095271ba022f4a48a2771cc39e19873be31e774838d392709d6983e84d14282f9499aa3b072e883ab261dc860ca1f73cefd5352f55206a052bdb3f4386615e5ff24ddf5d292ccdff841740a1be59413e69c239852448a14211ba0f81f7d7d4a01f3377e99a144b9d93fa5249f9f84e829e5006a853ae074e2c101a7130f2dd6127a03c5a489074a43261453af4c6196a768a8690e4da592a2a3484d2b9aaaa9399d68a88906a392a2af572d1a8e700ad43a8f621ffa7efc22912471846e549bcacd91b8e484e45522894449287e600b49298648c82fe7795695e54af5475995a26156b540308f226d819ba6864855cacb31f137859952a03d8028500222814ef8f9f2a3c54f2efd98ca2033030d6ac10c49cc508520500aea409011a5a05390014a51ae8862c39c93cfd20c81cc399fccd20c5408ddc440688c501de0973c7cd2278c8f133e5a7c6e7c5a80c2c69c738250aacc39271413149a39e7c4f82ac2a9a1b9516d2a3d3db947a80c3fa8c79b73f2efe9b93d574f0b13d43994f2230bfc72131e7e10ff07750ea59cb80e556219660f0885ea2935c0014f8e6c54fbc8c6e6033bea8b4295c8c33ca266214a4c93e40229842e0a1989209862424f5f7ea46813f26f7faca191557222e4c4033c29949ca88027f360c1a3464f02ce70b293801238319512c082134a241071120209284c0f6c64a01845425779a33828d2175ea03534abbc4f1d7c72aba7cba614c5d1e6bfb14cc1480db3d404cb0c53850fc513eb94241479c6a1a14c73098aa22e3f1b6fe8f394643a8a9d9e34ab699b18523245c39c593a8846a5e935ede2935f36a224985b618eb83f550e5b5c6767ce0946870273823a57904c782831e1f228ed0cb1c3e98c9973aa51b355163581a2a84b4cc2984d88cc39d3f8a0c68453b3526d2a3c373a261d05e888a0e3c19241fe5862c7122e4bb42c0997545922b444a789376666965c4b689690304b62c8e4b431e79c395e88440a45878a6a5381a2438564b1f4478639b48463c5a652c2c963ce59861f04830879090c0cc84b6050020315f0cb4d6048c1d033a3c0c962044e0f6509c74be108f5e0dce0dc0b8706878a23073f929e9eb58348b10c3e3c3e517268b81953642c0216f98a78a8223310a940114d0464482328609210d0c1098a0e154a7e56aa50fe41d1a142bbf863e55225977583952a5425ee9225720e280195883127ff508a123f940862c59cb3a7a464923ca4983442e9a9a624c78ff51c146954140a3de95c664e1e91819ebaf84459c54791869fced4480c89c8fc51e8a955aed0e46a24b98276838228fff279774b974ce972e096734e342e0be86a41419dd09cf38c8e35e73443ef745ccc39cbc021cc39c9e8c1db9cf30b4992b7e7dedcebd25c122e00ee1c848f59124386a38383034c17b324860c17c5162366490c198e076ec579258eca2c892153e276b8bbc3635a511204730d0d3f8fcc5e86424f35b9cc5c2c297964955534949e5229dad2ab557ecf741241fa3aa46528ee14c9ca21956295e477f1bf7791869f8afcc2eced57ed3c965ff481db869222b8bf92fcc8fdad72e8a9243f90a67070846ec854b9bf88e61a1ababf9558d2bcca50f6afc8146659a9b286863e09e626f4944aad5a5e4949ce1ac56b67ced9e5c9ec0131b9c2b8fa83ab6f14bade987362815929a210af2bcc39ab107bc843e69e92fd2c024a981925ac0225ac2bd53dea9752359a738e414d4234fb5b8942560a6b823927178fcc4e3016bae1a3b83fcacdfe29f69039a7184237fd275332a7171af71a57b3fbbdebb8dd4a8c7170a4dc8865c8d31a85302e5f207171375e6de6baabbdb398dd1ec69ce72daca6695cd52ae7b2e776eb3c8c1de0801f59a4086e1e78c0b8e8e33b242dfed2ddcd9aeddbe5f26bdb655faddbaedb18d66177e3d5c31864a93852163bf3ad75d6f9a6b1eeb1cdc318c4b80c3f2943df128c31090b5e6fae1db765aedb19b31daaa5512d708531c657ec8de94ec3b8dd5d1a677b178a18df3480640597358b5dbbd6bc2f9208eeb657be59d5d77255d71e82efd77ddbf9765d1897e97df44ec637127b2ca90a4d773a6759d66ebdba2e6f0fe326242e98c6eac6eafdad5e6c5feb614cae54a387310a04df08e35a8431896a00898a9ed5ede6dbf5b51ca63336c5def2aed7d576c679efb84d882445c5b4c6b8be58e632cfac0f298a2bdb5d6f5dde57cdbf5d1d10090a2edb37b359b6ed0eab977b120876bd19a6b1ad3fc3387e691e467ac276ace36eb59abdbc7355b3c0be919cb8ecfdde3b4e5b9b653ccbbc8cf4019e693ddbfa394eebef397b18f307751e127b301e127b56a20fc643227873491ec8364dd3bd5bae39cf1c9731162235b16916abdbbefdba5c567946da725d4e777f2defacceb2da3d8c7170784c4237e3d864ff2a08e39b4dea00c76bbf99671bbf367beb46e240de39f3bbb9cbdaae7195637c5385c4c4b675767b2df38c77cb73d7c2edd577ddb89e73b7b3de40962f866599fdeb62bce7bdc456335b3bec5edb2bd734ad84d661fd725bd7affdee9bb3bcdeb7db6ab36bb5aaf74da267d75afe5c7779d65dbe84409206f4c56f8669badbae72f76e1ec6e183283144e59032703bec66d9e52cf759fd9e5118e38cef91d949c80485310f240cf42cdbec6efd358e7798967918871904aa2424b2acd33adf2aef3a6b312ecb18df10912e906bc735dbb3ed9dd61d678fc8f8dbdc3dc6d5afdabd320f6322921159b5f7ea1d9665b5d39add46240b6897fb8cbbeee517b6e56e2be239edba5bf658b61bbb36f73026c27675abddad7ff3d5f7d2b0642d635bbb2eadf9c6f50ef330e6813444d7dbe6daed97e6aeaede2f4915c8349df9bd765779be9e3f49018d693777ce79f67bfbcc85d0f2ebdae5cdfeb55cef2e888d699f691a56f765f3d6ef614c9280e0b4ee7e77d5d73dbbb7731ec62cd20434ec72da56b39a9f5f9ade1ec623e9072cdbd7d62a87e5ee2bd7bd87f147920066b7f61d7fcb7dc7b6ac3d8c4911c8b6ccf1ca716edbadbbb2ed610c81dd65d9767f5fddd9ad755a45bac2f5da3b6d672efb4bbbdde5615c8aa20f57b6d95bf3775d37dd33f730ee0f78abd9bcbdbef9eaecf5e6613ce400fddc725db7bc771a7b4d0ff580f59c9febdacdb06d775725390f1b976d4d776c6776d3fd390f639e7fc4f877c0366e5f2ce7deadd675edf230f6c8ecfd8812ba79506721a31c0563a33ce2b4b07d6dae6339bbaacd59ab47f9e26cbf5bab5a866d5ad7373918554c67fb6e8dbbeec66f86b36998931d146a6314abe8b9c7fe79d66cde5dd79b752bf7bb631ad7dab65ce7b277ddf6bb61fd6299bdbac318632132d336dd5d5ff3d52dc6bb20d314d3939b5586b2ca2a8cb7f1fe95655def19cb72f759eb90715acbdf5d9da6e9bdb1cec3986775b3d757d7af7feebbba39b16ab9bb30abfbcdb8abb9cbc3b88b28b2fcf258a25664165afb1ad65d17562bbff6660f638cf77351e7b9e88331c69a77aa8a6559c6615bc7312cabdc0f0101d6cedf6615cb7c67d985711ec6262737fda32cd9d11ce591d963f224f928d210449767fdeeddd56eb9d5b8f670709c383105dd2cf96f14c21863146a45de18e5d0755ba65d17e7f8c575cef5cb7b57bdef75b39ad9afde5f99eef4f5b5efbf3a860de98e5fd9bdba4d7bccea9be1f49ab7ad5cb6dd6e3fcbb8adb7e6d8f3dcbfab50e1832d1c2b4237f8f0dcf3bedcae98dd3aabba97e44dddb6f39d69ba6a4ceb8cdb300f63b10c3f54b6b1504f8e7955f57637ec75975dae77d7f6dbc318e3f283b86cf5d6b8bf1c76b3bfb0cd3db862097529edd2d9c6b7bddd9ae5eee2a80cb37977bcbb7ff1d77ec36177f55e4ccbd796616f7bf7ac6cb55fdb96377665dcf5dbf54e55eece78775d9ceedc72dcce37642cdfcc72da6ff9abadd7c39883ff758c83b00d9cef9cb3aab7965f5fbdcbe11908e3a01a38adbbfd661a777de62edd51d1b6ab5f8d6f9d7197a659ed4403ff5b39cb65ec5e5963bf9d4cb19aed9cb3d77297aefd7a8c41f037132916b339bbecc6bb6ab9ccd99b1da1edb2bf69d9d66e6fdccdfc0ab256f78af5e798cdb0efac87318a8bc25dcc66d7c5b25d6db6377b61069dabb6edad5e4dbbb2cbe5005deed42f6e5f3afbfbdca55dd9eff091432cfd3d3f1bc673c5f2b6ebc5be66cc43911fc69d4fe6327e695a66f7bfd69bf530c6f855efadf23884b10c5036ded9ad39cff5332d77d70dd6a37f6f9cb3fb6a8c5f7bb921967e9c23ce73f343618e82f14d039e68ba66db79cffa6675bf66e4066b40ddf4b6d56a3b5beb67b9e3e9b82e6f7dab5dbddbeed67a189b9c546c63b5d376e71bb6611ae7611c3e883a7a8e3a7a1ec220436733d7b99c7576ebb4b69787b14e139e5d7e651796edde757b590f63308f439f571a930de334ce2fae5f2defdc330f63fea17ed52a31c669853918b7c25c77ee6f58d7b7acbb5eb3ab621ec63838389775337ec973a38331ff6f256ebcca3c633c7ef919b941851f6a258e1ce3b15c893a3cfc8c4216aab404dbfaebacc336cd6eb6671b0b55aa7a921c5dafe5f2beddde3a7be9ed8918ff0e7fc22618634caec42e86ed2f8b5dfb314dc3360ccb7a17513930703ae72ebb1a875d1de3f7e2588debdb69ee3bbd33dbd9bc70b5befc5e8dd330dbf5f51e0e6659ad0caec86f075ca9be1b8c57aa0f63152bf4b9f9ab699af7bffa67f579c518e3fd45384a6ebfb2acafe7f9b7ad9df370ceb45633a76bd6f56bdbb887f198bdada4d3bbea2be3baab31beb76e3d8cc79244e1d04069a0254b65e4065f9d75cefecab8c5eefdef1ec6a8f1c465566bbdc3b8b51bffbdb3873189dab62ce337e334a669d6560ed33c8c59d0fe3996334de31aa675d7b58731c6a5aa63cc808c3f87617673d5da9bb5e61ec6ff636762eb953776b3abfbdf17a67115c624aa24450f158e32607d5fcd6b77bbda6d59efeb616c248e43a77a69b9bbb8c66f765deeda9887310f334ae418638c936332ca517c2ece75f56258efb2f6b66b9887f1178ee2ae49c2755bdbf7c2367b65b6dacec3188571765289a207365dbd2eee66995f4c3f965d1ec6185b934a145143230ae5810ba8511cc74791ac1185320149fda207514759b5801a4a73a40423471850420b26b08064051354488196b080135240d1a070820214b0820925ac40422f5928240001480e906d2818e048342a47a005b85845614f94418d1a0a3f8fcc1e2d59d42502798400a5280e80e71f6904600aa1fca1232090483eb802e04145a95200006a14cb7c420715758403ac48458d0c20c2cdd09058981e00c1811c81905e95c3221cc871480b04d026f9ad7208a409cc09c25483cc0f3973a8f3ad730a8583952a37d85003151aa648110a8a3203d0cf085b66490c991c418620f033f30308538d3eaee4900a21c7536b2cc34fc2041023bc72f59c6272fc8af2a60117404000449b738e23939448533534ab3c1a852c8c3998e3b918d63185141cdc3820ac6232bd80f302ad39e21f4dd9bf0747197fcafe3d94521a56e1811ef10ff543fc51443b8f25074bf0c7442fe07090830b280e8a450279e186860fa2cafe20cae8c32265cc600c10443a303b48a324397de105bac7223c4d2e8af33f965a023508f1e8e400e5e8d01b7ac43f1fa8cd0bf4f443fc756a68c8f184ba8a92ec919c11f2e3ca9cf333221209464956f8a9582acdff1bcb0e9674b0a4080104610408203c30c51244e4787a2e86733e69009919e624820314110cc7e8c3ed546df6178160569185cc395fc02305527e628042268a393590a58f10e69c3e1840a274040ed12780d49c4e1ed4fa0b5fe0a3cb9c9986e14795609401347cf0a22fa840c307e79c96a4913292c53846aa6548172909e9844712243626920b486af0405243433a6284012dacc0c20a7828400515e80252c06304120a7804600127904c9877dc8054421952026a80003f4807b8a30f03941961ce390b304b77ac4084320310c01d728430e7077780018114000feed802001d90382072470866e6cc1d4dcc3989cc3224d22177642973833bae90a621b3cc2cc40693903b7418640a3203993598734e40ee2092b2a3da5474549bca4ab5a994474cf2c8cac9232b27482787ec21cfea039be844a1c10c6430e7fc63ce19033f6030e72c4266ce49d2df0ba20c5680441f734e52141e9002680430c070734e120c17b8e1c7080a30e165ce491ae2050ba81939b8a162ce39d3c304863d863832842073ce990358000e3f92c8e2458e3927074b64601052187c8318e69c243d6a70440f6592580137e724b281140094f04890031e734e52188da15185081d5230e79c739252e0042905b894822d054fe69c4c5c78411f2e20c7932aff58925062a0a1086a96c8e9eb3cb272e82836093fa2513432225964183e29d6404fe49857ab4cb938ae281224d9e897d01369870050d0c50614cc39271f63e098253164eaf80243f943df0ead239b7362018aa2ae23cf395b608d449f3a4c75d411421d454e708217f05186af12a1602c642486a9f2495428a6e8f8a927ca25c6fcdb49d12ed2b05435249853e507853f299a1bca023da5522996f815fd9be6a4030e3a3c3a14508709466082a392099688212326cc090e708202cc39a7982a62764a404a80883d68506492e34974630c690673ce14e69ce1600e8f629a650e048429338fde869c5a8e1062aae0813d0609e6afc401ba69e9307cca2727a04505281b390e91a38f39c2942d6041490ed34a954bf2559fd0b5ca25a9facad328528cacf95154d1d056984130eb187d176af1e75fd16b5a1e097f87fc47f439b5b2d1f85c0c4d6436caa127ee461637c8702390ec8d2b6f8081c3003d70180147a4b87aae0691252e8c67dce6dd5faff1ef542c52b348d450586612635287881257bdb28bdb755f99f6bb5b8f0a912cbfb5ac7377ed6bcbf7c69887df93d6f8ac194c26a01b159124aeaccbbabd34d77bbed7de1ec638435f27c32712496310d1c0d669afaf2cdbf676698f690fe3fe23aac4c15962cab92931aec1aae962f2e08a254473e303910c74bada8cdbb2cd6afd5be71ec63a3cc638373410c1c00b4490b8b8e6aee67ac3fee2b2ec2fc075f6dabc65b5eb9a96afee887c3f575dafaab59e712eab41c488caddddb15defee755f597b18e3984ad3f8de2e3314d30d0a6312182216e857be3a77bfdbbadb7aef3c8c319e42a4886af7e5eea5659a779bb671abac42ad32942a4488b8f2d535a66dfe9ae534d7b1e89b395e35deb74ceb55db86d03a8cb3cfafd6ee966d592752814ce3aeab717de3aae6bb3f110a6c8f75f76a57dfb8ee32fd4484e030feb7fbabb3d8db7a9f4810f96e9ab397ee1ecbb7679508105dbfb08e67b5ab1bb3dd4fa072355fbb71ddb98c5d5723f2c35ffc6d766dc736966d6c1391c0b575cbbbcd74e7396fd8261281aeef7dcd79be7e6f9bd34420b069aef78e7b6e77b6319b11b972f9f57dd32c577756b94c1f92558e65f65ef6affd5bd537e8ba9c713d77afd9cff6d286dc4deb4eebf9cad9db5a7399cf17d71ac6b3da79eecf1572715ceb5cb57ebb31ede26c50b74b67f9b2f5ea2ac7b78d108def2ddbd866b9cdb2e7bec9cc20fd66b6da8be7fc9dbbdb2648d665cd3bceafec3566bb2c90ab6edb77d7f38edbb6acdb1a60cff356abceaeed5bc52c2099f75bb9deb0ab755ab7311a64fef96e1c67f5dbbb2f3683ad6e4d7717ef5add9da572a3332303bdf7b559c72dc7b38a6d7f5cdb7bb79a5b6ef5c66d0cacae376fd86fdfffde0bf3637397666fdedbd6edec7218f0abeb6c675bcb34777326d35db5d36c66b9766fbf6e7dc1c53bccf25cffea7acbbb8fcdb7ac7276bf9661fdb9b2a551656b89e966fcb27c195ae54ac524fc71c08c0b6e772fdb751da6f995b59bf9c8ee57abf16d777c6becb51a665ac0691dc62bc7adedaca63b0b6a97d9edab76b36eb3d7f62366f6d07fb5ceb0dbfbde1ad661a69b71468fae750eeb7cab57df7a2b469a6266051bb7e9ac6e58cd3a7db72dc41827c708ce1223373a3001f3578e19e8674605db629aedfa6f7b5d5899317e61260fecea5b6f766bbbf72d77ddc338fc86be51fcb96972a3da546e54336338ce72dde534cc5eff5b773cb656b1efead6da8561d8bea3cb59bf38dbed75b3cd980f559282dcafcae52ce32ead6d8ecb56846eb871326307b72facd3b0e7dbc52f8ee33a3328f8da75c76dcbe9eff65e5d1d9fe5ae396d2bdff6adcf9de0b57b2dc79f6b5a63da6f74681db7dda5ed956d6f37ae99206399d67aefb2eb666ef34c0cb7d87f976db5bfceea55e7b8fc6ebe7bf79bdb3bef301b866dbb621aa66d666df625b05aa69deab55afbfad976759add9d87318e6a53a161468ecddaba33fd57d5f296711f47bf966f2ee74cd3fad255c391bfe64eefadea8addaed9516c32f386962f0ce39a77d56ebfe5cb8dcc7577777be3f4a555eeb3362e2ed3309e6d5acddbf2ddd9b0366bde6d7a63d8dd7ad74990b7cc65bddb5c638fbdd6ad61add619d71df67c04d8962fd6ebe6ea56ff621d8cdeae2c5ff5e26ab7e58c776a68ed5fbbbfb9ecf68bb33a0d8d7597deb57b6dbb3ee3191a3bcb966737d33a4e3fbfd9199b9669a7cc5fcb9a9671daee5d773b8f67c60cedd25876b1dcb9ac3ee7196ba60c2ebbf6dbabed8a65956b8c0cbeb1ecbaff395fd9be38ec0ba665dae9bbbe7a776f354dabfcca1ec6384b66c6e89abe9a6f5d775ab775dec4c85d7759ab599db5edb3acdfa836953e1306d769d9d5f663b9db2ecd552fb66bbbbbead6699b63f57293909319302e6efb9a77b76999ef8edf2fba6ce34e5166bcd8b87bed75e50db3553fe75ddc9bb5e5fde65a2dbfb583c00c17fa5e9ef7d669ddd5d7ae58b66dc1ed6ab3ce76d716d3d76f5ed08c161ca76535e374dff8555feb2efc39a65dddf5da5f57d6340f631c283359542db39c66b99c65bbdb6c491598c18257eeb3e638e7aeeb5ebc5e9165ec56ceddcab57b3b8d68c68addaf4bdf6e6b76657db16b7f116a4604dd953b766917c6f7d5b9be552a9e107477671a7bcd6b67b3ba2f0f0582ac3e147ead1d3c66aad0b25aafc63a8e630dc84186192e596397b517bb1cb7f19cc912a5da47373c3354dcedea1abbfa73f63cd39c8753b3c4944333fe60bc52ed7267660a6ec3b07bf3b67597f35b67a4e03acdb9cc71fcf29bb36667a2d0aff5edf6beeca6af6d633350bcb5af9fabd7cd3267b93a03028e6558df3ccbb6c6b66df399273aae6fdf3e63d9c661fb6e334e5caeffaff659ad99bebee3e1f83cbf07c3cc07b0dee92bd36ecf5cb7eb96a1765e912b329bf1c0d57b6f1de3dbaddd72fd9a6962cb5a56b3caf18befab3f11ea7938f8793a38335bb6fb588775d8a5bdee34def5cc74206795e70bbb1de357d6751ea3cc70e0bab2ae69ecaadd757956779519267acd5b6b9ba6efbe57db382dd763d9657957b3e595ab1b87990d7059bfc66d4cdb6c73f96d19e69da744995922735cd65d6fb9cc5dd9e69b87c91b6694e072b6b17d6f875d1a86719987314a27cbed9bc6fd96b52bdb97f63a9c49a2fb2ef7bb6d1d86fd563bf77a36919898d100573badcb38fd5d6633aded0c68ed6ad66ad8b6bd66d77e7106039ccbb4abe32edd33ac62f9e2994182b35bc5b0aff772f5da6ae7614c8ae0d0cc05b0bcbbdd39be3ddfb06b65e6886e2fad2d56b7c6fbc5bbebc6082edfbe7bcd1ce7d6de2e5b40dbb6cf56cb328cdb6b6f1b5984bd19e7ead63be7b2fe1a6688e0dd767135dbb82cebd6d60ccbc5d9e7b64e7339eb2e0e631c8ccbcf334364faebb5f18debd6cbb9d93f0504b32a489ba9c0c62fad6dcd5e4dbfd62e6a354301cbb3b5dd6e5aa76ddbed9a10f9b9ef6ce5d9d66b6bad5ef9414d6682d8b0fdf7e25edbb7e6bf1b88cab7ae7ecdb9dbcb619cf6428c573313e057a6e9da6d7eafee39cd7a2b71dcc178258e3ccffc9065babb1caf9faffe5a778f45a236ce8722a883f18722b8c319095cdd766e5b7bbfe332cee5086019c7b77b69fd723de3384bd580190870ddcd326db3dc3b5bb9ac6598b992695e77bd5fffebcd5a33211db23567ed55f9a57bbfdd867918e38865c883f10ea41b747ee97b697cabbc661ad779283087e3cfaf5a42a42f4886d8cabb0cbb57c59edb0ec3ca5c9ce5ffbb5ffc6a75bb5c2117b6afddb6f6f52fc6b5b641cf59b7f9a5390cbb3cdf4dc8bdb7eb4e5fab6dd75edb1ec46e5cdfd7c659dee95db1ea615c863fe6558a24c8ee18bfba9a39cf98d5577bd8065220bbf34cc332ae33ad66ae5e1ec61cfcbc8d42fdd0f82a4eaa81cd59b5b9c3f87eec6adde6610ce62f491411c8d218e34c313db9298fbe0c459da1f0bb810448bf5d766d98cd6ecfb8c6ba87711111aae707513838539ee0f4fc3d534c4f4c250b0ac6e3138d59d53fca73d1c709c6cfc510e399294834c8f6339d658cbb5b66333d032c6b6e379bb1eddaba3d9741cd328d6b5c7777df1dc3ec1f5add7dd37abeafb37b6b27032906fbda9bee58b5f966d86f9947f2a35e5ac66bbedef2ca69db0f0906db76b7bb2ed7ddaeeb74bd188337412432f5725d676fcdd6d6bbf7bfa056adfbef30ed6659eb5efbc8195639efb4ceb3e7d6660fe3f0d32a7163dc2a3f17d45e3beceab56e3bd3df2f3eeace9d5fbc5fae697b67ba05fdf6dff667ab69ddbeee58d06d19ef9bbb17c6f1ab5dbd47a7594edb18c7b9ab562cbba41e97f7fd7a5fcd698ef1ba828cd5af9bdb3886e98dbb3215e47e6d7a6719b72bc6f5aed321e5a1b52c77fbd25acdeebdd81e63b9bedbceb4ac6f0ddb355b42c2e3ebce304dcbb5db5bbf32ec8e9c79b76d2eeb9996026c739cd636bed5bdfde62e3b78b7bbaef76bf7bad96bab28d0db5f5a6ffdfaaee378d63c8cebb8f6671ddb57ef35cbac764fc0b32dff95bbaf9d736daf11121dbfd5ac6ff5e69bafae3d2199e0b5ee7297a66dda86dd8cdb1ec6b7972c31776fd8b6bbcb694de376bf8731698e6cdbaaed8559aeb5fc9af530fec6328cadb956ad62bdeb34c6f95682cde6ec5ed96e5bd796ab4f92a36ef6ea1ddf5dc73bcf2e5e43737391e2d076cbdf59ddb96cf39e2f0f63121c79ab3657be3d76afdf2e56496ff02be35b6b755f75ff7fe6610c821f911bf7ca7cf3d73aae73fe8c23dbd8bae7362c6f8ccb99b61dc606b79db5bccbb4fe3ce7ad9140ebe79bd6edae7539f7eda590d6d8b4aeabb6de4efbdcb9d54670b52c734dd79dafbe2eec83486078bf340dbbfde2576bbfb71a486ae44dc372be9ff5b51bcb3a0a298d8bd9cddece76cc76d80391d0c8bf6befb0ee7a7bb1da6d67641cc7ae2e7bae63f6c278e661ec4332e3efd79c2fac76f56fdeaa8731a98cbb6d1777f1ebb2db5aadd31ec63390c8e87297f12cdb4bcbb6b5fb7a188be5aa35ee1ed217cdd99bf3952feeeabf9d8ff15bdfd975f1acdf5eab330fe3af77213a8a9da74913953836c118a38c4862e42de3bac631ec6bb6bbef61689ddbca6daedb3e5fcb71640ec9cb65afae5dce310ed376b77130ead70beb2aa777bd9bbed7c31885714fce929f1e1930fe95b8498c57e412d21716bbf9aa7f6597f3ab77174ed1b783f1c5aa148c6f9ee445c6b656b9def6b75a7986756103a4b6a894d1e78935ca32640c10004048090a8311003038241c90c72312b968d0ed5100148004549a528c46561909c3e228444194310619630c20c400316666a6881a0044d7f783e2adef2cda98ebb46e119a24d51197d9d81224cb0815bdc861e4ba240d3417f00e5c0fee69860fb6812b7b3ec6c5700deca5d96dbf0e6e1a1d1280630e3120e6099b7107deb0dada929938cf0cc1f452f8aa3b41af82525438002bf1bff77c3c0bcc177b0159d7292d7f8cff3690760a3b4edefdf290cff88f977da1e204080fb0eefbc2e937ac20245fe75bf0ac987a949e5c6e5e1891541d9cd3daf0deb4cb5885a4378de8011e0403e366f95aafe6e6514e5ff8b2e77db636d11924596a2988f3a3633b87e7e035d02f917da5c43ecdfd2569ac9d8a83ce171acf07ea16599f782b831e6245e254997d6faa24c39db1d4fb59ee75ade92d2de871f31be556b6337b507f2829f6b3a2e75ad62bada9e790398aadd940eb65b2d13b32e85999e93519f4a6ccf53219d391268f1db6a469f565e8b5b2e96d32f44e99f56632e83dc0925bcf04ef092145490094b45bbb9eb5ad5e83456fd24c2fb341efc05ccfd20652d363c945b1b8613374652709050200ef19a9991d5cc31a8f1b4b139d18bf5981f9754990e86792364094415bb76d1a1c4d5cd1e00e3612a24954af3528f23376a235b6fe10121dc362dc42559383f5659b30ac60af61d3979a94e9b48f8208eade7496ab80a44c5f8661272ec0f4c22179fb7b51cbaf4667e8b12a98cda45e3fd66eb3ebde497d5d4d4b9cf430958f20d9a002f858992f064bae619e7f1c7e444ff6bcfdc99b1c536de70632db0513f7f865153e6753a8850c6fc74c0b9c9416fae42dd11ee8a400e290f6edd665a2462b163a8894db5a743d9ab55b863f53ec2713f939e2c8b312f2d7017be028f0ffa1a6fdc65acad45e23d1c0b89bab70e06ad032dfca82a5ac55a33f2df05dc5dd8956056b2233910ec4f55edea0e1d7cf11f3618dd81b70955bca61dfef803a445443ccaa0d777d130e563c8cfdc59ab88a52891783be5c524a6a94ea2a77a6eca7bb51d490847e5a075eb8199c9a1b97fc696433bbd914c6cfffefca94cbf46ab9af2d145440e757dc4037850e9c175b07e482348a48479488dd13a22341cc1f6c2947a21b90e4a1848c20b27ae68b8794fba7bf2e36ab97167c50570349e076be6c60254a3601b8f31cfca32d9c60490aad4381bedd30e873cbfdac10df472cfc682ceb96505237d44e6c09f662e25ca5149f0d7f9ebb8025249ed2a058a399c411f375738a8e30623c4b29097dc74a63333881d9dfc2f25fdb6675ebdd64a0403fe70da12cc28e8d00a84083c9660f79a6a205a7c3d055ba86e56a21cfd563e4dce980db3776aa8a61a0c42aa13dd33f98d82ef1ad94438f934144e35f650194e5007c825c877ba2ea0c8ed7d6ab9f6b32961335bc0eb721c40efe0af18c4673e5a9a520bb2e029b57821f0bb2decd22e56745e51f5bc20f3bf99d4d35ae4de0e89127e5b63769f63a369ddec71a96c44d972982226d2184f68cfc6f8fe0da38a80e61eefa76cd7ad011be828a9eb7037e91d243539b94e79c26b400db20c437bbe02eb1f0f06f92451b016796089487b9a6aad5a086f20bab4ec261f0079ca0eb9f74266644ae5d79b795df3c1ec46eedc539c22724f5a63a70e610745974dc9c4fe28fe40407ac1b33789b698c7bb8d82bcbf7bd70c1d897817cc3d666f20a634b564c6ad856f255fcd9abfb8465bbf900ee1eedc0ed135a8a746a7fe8e6a4f70f8e71432350b98fb9c62b921635ac3a11aea2154c04f8770484771d2bb2744febe46495221933399f3f66a232a674c06aa4f07a8ede38e102eee27abbaea9884bf918f3c3bf3f2982fcb73b909e22f9baa26371ee85d3b540b3040b8cd226170176014da778d9bface1f309b4298558713216b6d370f21f8537b29cd76457feac0044c5a903aa33750f4ec27575d32b3ecadc77194f158f0a99782b3e87cf6a2dc7fbb2048f9a23d5eb87c267d83f127bad7b50298d3aba7bf84abab10ffa3127b675706baad19ba886ade51ffff4bf20c1bc56f81f59193aaa6a7df19053d6060570a021a4f721e38bc98e993f1eb0f7f89a1dca24341d74f00800cc35e6b3a16b6428895739e0ec7c3632a9f38523ad88e5032b4460736773705f36eb5831576613641efb346a403983644d03506929385993c55fbbb3fc00af9a5d64d34fab6e75547f809771ac6d9907ce75d1034722db2c5b3950d32997ec901c1cfb8ca622c4e558c857c1af4dd136b8ac5ab36c0eda6de0d1b8d31e228d3de08ad5031be94562d349dbd313ec7cd40a5c379f89bab93ffb8cc754e3abcf1fa49680e882a9407d3255b199a1ba4c24cd8285e92a0477b8a33ea6dd288c0cfac58b1d4c8c12fdcea836b136ee89eb3d5bd05985ea0feeef1cca7a15391732e9deb668fef59186e0612c6569c94b0c29bd68fc6d11689e4a444218801342bdb3f0a1642ab509b7945c90f975fc53a0e3e11e241de21252c21c0dcf1a42df9514e80ebf4fd247cdd4dd6200f4944cedff6c71cb8a76ac600f46574d5d8e128b39e022e17fadb43c38d3bca54f958f80c225b8ab19558ca8f96f12f9b22226d6a8fa59da829b70831c730939eba69a9597f6f2369bda1c03b5585f321647960c1de8da488d64194d0371ec81f15d90984c2ba4b5f048d4d5811d771103b212d3a3e20a9650e143830f58a04c277a31ca941e1418d3c01f98a681f369a92ad8adbb7c2d16926f15cbea905daab98d9de829b51dfe3cd5457aad8207ea23fc27c620d74158513c5163f2a157da87d68a14630ef42a27be5180f8f9650151c4a2218e37e84555c3adef30ff0fbb5696d20b90f5d6413e9f12030f8dcc803a1034293745db0bcac005df29f1e26cae039cbd420d3c248ba93233ae077c0c4acbab811f9658d642bbb909eb80192d9724102af7575c7db2afb3ec04b78c0b78141a2439877a9ab5a4b4dbd638573e4f22a5619396dfdd0db256eb2caf5db6c438c96f915a17f33300a8dbd66aa3f9a0ac25f76c729cf1cf58752a48d88e68f0e69b16d89bbd5ddd7f30abb7aedd45bed09ee3b16817acb037d1ec8dd0e42bb9cbcd7ec8552abebd02b5605fb1145e9433d714ba205332192f462238ed1de5a5306091366e035353018d56634900666968ae32e142c3b9471cc7b542ffdc2692b7f163999a65ccdaaa67eb4769a38f71b2ee5058b087ba2b52d48b9b10525aac49cebaa93582c8245cfaa288513b0c56db41b02fe8366068543796e6e4d84be8aa84e0bcca1e64d101e26e765055af7b81af521c21a151fae718a7addb6e90c3d9f69af19510df3c5d5cc3e278f319ca285368eff45a7ddb6915068df93f65ebebf65b700fe29b035e6e76326a60e5c1d7526641efabb22960f78b39cd3d5569f1747bc64e50695f99403a4fa5ed3af965ee553207a2f048e9459fd1f6a0438b08a676ebe903e6b73348ad8b73c635d81736b423899c1eb7492175b66a732be52f2a0c1b08c15d0c84befa3d52b989540698be5f5792f99864fa2ff8e759c844bc6be1d6e29ea3d0283e4842896c9898ae0a670d622a2575fadc082516b4c48bafa42ad64ab1ea9eb2c4f2b20d151f3f78e93b5a0a2f44099b9249e139ab3eee6eb09fd1c6ca3717ea6fcbe11fdc2eab9da3c4c98b6b651242d0d877a81bd52eb8e9b01776ebfb5b9e6e08d8cd12243f7411d27ce576f189c7415f593de38562fce6695ce0c02f094fb51e53942c17e0cc96a670adc9f0aa0350a566f39810e3933a552a542a18dda741f7a351ea589f475fe37bb09156c070108fc781037a4184d703bed0cae715842fc0be8af68e7b6ea6615e9917bdfd5a51429ae77b5c40ca2cffb411fea9ea557453d331e82f1193d0506143100fc06bf9426aa5332a090027bde08da213ec0ae645323b681161e7223297cefc8f8a8d0cc68ab4c367ec3a68c9a0585f43bd868e97e055061f8c3e7b03d784af27856472234454c68d8cc0c78b588288953a76834dc486ff5c53b884e2442af16556f948e2053bed9366966a5780e26b2e999670fa50f10888508343e1bc060b49c75dd961b287c137332d31345beb17face00f927d730e057953b9a1507d194ed87a70a35b8a6147e058e02e0559ef1288327a8eaaf45c568e7cec9aa9724e932ac485d0a952dc54b53d52f28e0505ff40934764edfb47b34c8232ac9e88e2febcff974ac8b4eb97f97ed433c18fc6b70bbf37cb82efa74d56710d43b6ed5c08c0b45fa833b4b7afd059704da0855d2849ad9bf31d07b73916a1692c1ca01ac8618a8411bf5ef030a81f273ab7e01ca84fdc9e917c396b80f12c23149b04238c6d736e02d1af074d097bc3a7373365c2717a709bcf2e9d59fed68aa386d00b89a79c6ee93a39a7ebfae1be25efbda47ae76832a329db8fff4635d16b8877fdbb4311aa33713e54bb91a38746bc0b913d14b77c428e8181b39f091ff93075d837ba1bed6c0e437def9dffe4a6ed64828cbbf53fc66150d5a945c44fdbacb36dae7c87c07c94029fc5f4218a20cd132d5e39019ba92e4930f1b223b80901891167fc8ad43abe10aef5ff7ae7ade1926d87de4c874ad0495fd73ee955fd93669336deb7cbf65ecebe236e09b18917df5030ba635cb201e3320a7b3f59f740fa31f62725c7a0502d08b04994520f9a004fdb4d381238e63619f57aead829e66b47d48eba617c2485f3c00f0aacd1c6873f984a45301af7a07e12f347c571dfdf391e501af3a1d149b0dae83139446fa7907059132d3bec6e681573d2f0cdd38a79a51fc3cb2afcf9a48584b0ab5cb613563e001416f2a6e50340c6861cdbc634d8eccbc61062704e681c140426d7560ac160aaffaec466165f443ce737ce93a8a816e3e54a7076029b7b72e78576f72bca9fa89b20832cae3e5c0166e8fb363ce0daf7adfd8b99ac3abfe8fd83ff0f0aa1f799cf0aa2968a25ba51a14d748babb9d688a83862a23aed5130af81dc1368a81621014e6cc0f8561e33635d8be470be67c50190f8f55c3c0336ae0dbcf0e0c87ab616e97617ceabde27b661f821ee1b95269f9083b2524288102c97827eec50d996ebb13b83d4aec96224976105b6306fcf72538618d98f11c721b08e12f5089c9cc754b8d8d3803e7b3cc57bf782cdf18b8ff2fb5b5d2f4d92f47e6ee3783c9c4de968e50e64aaca726ddaa77e42b2d65ab347c5934441d34475d722078c00f01ef7807b35be8e4fca7d6c56a9fca8837bde7d8b1796cbad43ba8bb6d350f2ee945375f8f3d015f658579fc5170e0481b6a36ac2375a40f606e056c90f29bf93fcbf0cf2615b8042bddd7f67fd77c8d0e4cc8b65470f1a90683c0506aa3db96f37283f461f54ce846a2c341ce3cd946fdf85208f48e2b452ec01731013d635120eae545d9cf0d94c3c17fb20bf1182d7021857d2e58b018060508ac41c17ba3cc7bb2db2fa1abb6d2f19bf7467ef3a9dd99f6ae821bbffbca64d9f118683ecb2ba945927f0a0cf790e927b3d0e7c09d437f5c96383caa1b18c6d506a328438ce0bb916baa06616eb7a1c5a8ede3c2ce4a774c117cadf9d01bcfb88991edbace18f0212ad7aedbfb06fab0546cb760e0b7e7aea1b0476edf25b9be14bb70c1ce6b37cc8727d2e7c93efbe873449d8cbc5118c7465c1752e8d3777a23d55f1fa9f79eb32303ed2febe9f1f5fb8e49991d3190b413d66de94b60a7fcc505ca46b6eb71db78dce20ab7e5ce0f13bc3fda7e6dabb14fc9db4e4a6ccfd9effbe67309d6f3d11a899a7cccec4bdb127508dce48f6a38b03ac779d8f74a73e71b64d8bc7aa0045dce1cdfd12f2f08ded9541cade3b9ebe0d1c3c31a6d6cf1832ddc0d5c30f388cfcf5998d53021628c64e33831f4d19caf19286301385351586e4f21aa319ecc2d247b35d0c8b0b1a54da357eb877f0d07620711e5656963c541ef65600970ca21c07548cfc4caf26ec21e237dbbc14c39e463445f2eb2305052766679048e8f8901ff694f6602987377e4cddf74f62cf4904fe3da275105c9298f4022b3184e31ce37bb22785e057ace38d6dd417b4c461ede4ed0e78c81eadc7048d7866440c28b2d4c79f2109f69e1834419527f1eb2f30598acb2dc840e8f90f527ce963baed5a7134158630ea96ef0ef6834125ed796378d39a6c67a94533e16abfbc9c3b265b27db3ff82e2a511b812048c73d407c4d9f17ae7bcc08c4a8ffeac293f523f84fdf34cf0e6c455da006dc980c707caf428bdc32ff863bf867523b5cfd6e9a7cc051a11d733ac8c8c262860f0ea6cdf1263d88edfc619b1393ab409a0f3b2bbbc476be933881ef323be7d28a3bc804d4339d17991ff50729242e86958201e362d250504a09b9c764b8a2731a499ee8426fb9720136ad1006d41bed45f97b68cae2fe03573d0579948ee8431108aa22203cb19591d50e77973c37771fe172b37f8ce96a9f88f3a7e59f8363f04aceeb6ac21cf6565d78c3fa274cc7b9eacfd0e4c3d63db95c04aa6cbd8b15f13aed15674913cfd74e786cf3ce2f4e996f3f7b936580a3c3860e3b72cb3d962e28c46f2977fdb7f60d08be430a889a9042e4f1de0cbe4772e954b7b39de3b6463f5f8c36c7419125f0533c781427532a77c7d5c21b457ad262e84ddf2062449d2b5a1a65cf24215677d4927f9ea073f3609c8977dc3c2ae220d5277fbf68ecc3bc3a2fc5194321d67c7c3bc8bf0722322e5f8bdb871a2bff27d65f863eb89797de63b5b3b299508e7032f93642e48e30d46b36bd8ce95d4fa2ec8133afe4d611d732de821261c8016e5c00ce0d7cc060dd130bf8358276bace4a90a00ad84f1929e5b7f2114f0dc9dc21831ce2611dd9cb4797d48372d32099c111683086a3d88734dd2c7c8145636639a5fd6fc87c93b55ab5065b46a077b37f18d7eacd14030a4ba5646c9544d1647c2cfdc31ab7de970576c066a9a30dfa45eff8a94a28e5e484328bb5ecd6c8648dab88be8f8ab5d362ed425da39aa094876d3e713557c3e2fcf7e0f21b61d106a39e011dc2ff02fa980a5d6088c40599b132b6ece4e06a22f85897d72cb9386dd4deb102dce99155dc3236f7d99ed27a004c6ed30dcfe6ea60e99e602b5d7bbbd78b3822ecdb1798b24f28cc7f5ba59f14020689c8d13280f8e054b16412ee2461de1982a2c4e4773e0e7bb510db32dd76cebcda11ce6cdf0418276a3e4ce3cf43751f87663d31b6c05042c3d5e3ee1446aedd611aad5af5fe69e877db89af244df09873cf4f70f07f60d9965360ddfcf3d3ee46df3d7b579f53d5bf63ab65400f877460337889a6084543012b912b686c09a6ed5723721b0d039422a845f688577b65b38945bd17b96888eec6b252f165136ae0966e83c1e28fb714a8ca67739f477c7325fed8ffebe1f838328d22c6e3c4e3fe596ad891e915784e42fee61e64aa1b382b1089d0a5e2cbc70369eb821f6904db3026184521de1b03af39dc3469da64c444131bc4dbe1c9003536514d2df11fff58121e803471843c0325c078d086e35dbd3ec368daf9110ecd8ca324f37002304eef7b374eac238617cc98069080683ee9a028c6427871c2197b1cba885996252e804005053fbd5db637c9139e1749c5007eab6c902f627332c6d35cd033c47fa9faad52f8ea79989d7bf38bfa3d7a9a5a6fc5ff3b37ce34e3e47103a142fb91520af7d34cb518aff580f87452b3ac00163cf939eaf521484bcf7cfd6dc178ac96f93ba65f1d644df809f3e80e64545f7102e64c40c941214734cdfbe8794ec003998ecca47cdb5a8b6928fd789586c50f733370fecb3caee77aecc6cbbd11367fbac3c3168f4a4a1e1d87d64dcff8beaef360cbc80053ce0c02fc756e130c8bca11d7f3d00cc0fd107c1f0919babd3c45ab8c4c6d7f2d798805fea8b7486c41b79be7326fbcfe3010de70fe6e3ccf3cf3a87dc41b767da68a40153e0104c93d0e8a4275f92f4fc23e13a2cc3aad142473f1124de68c44fc49e19af20c38c68300ea93f5238f49abd34d1d48a662e378bf638f4a2e189b8e24532a56e92c2b205b7a00c491901c9920316c83022d1b2f650e75a4a209b2d602cd97810a2ec2b15ef60bf5585fa3045d857e99bccb297fa3d971557f1bc2d588fae1ced14b166a849ffd2d111dc2682dd80bc1083a38f788609823200f7ae3507b387da6cecbcf83846f05bd841da8d427e9da613ad3d5a6f14967e9529caacd93b972ca2d7798e0c26cf9847e32d1de7ba4a930b63a675a96ebf86676ecd4ccc673d4a0ec9e259967ea1897ed2f009006cbfd9b2384c622180474161f6dfb118178c8029f33564e44f743c4db3df118658659bd0b15b9ba05afbce03f32f02afa53edf1929cd35c1644dbdc7c6750df69fe5273753f03a2546503dd2381fc49266bbd9afc93e6d00bce7891fb7c632476002333a5326586aecdae3858179774aa43ae83c002d923a30ebefd9108246e77bc6ad1f7207b0b55e53ce05d0d2e7efbc16338feba2e10422ab9f6460103ab2791ba05f2dbfbf886a08d10683c25f9ae9d9e42c6267dfbe2e708a33939bd9efcc08a7767340b7eb13589a59e316224dca60725c0d8c15b73e8331322e9e95ae31d145010b19aea8856343928d1f304dcb15662a70a8521e31f9e85f8243f38a20194dc50a46d583792e2bffa71c63341ca5acbbcb4237e9e68e561c4b18af8ba198505de702f1b3623cc8ec9d79f457b89f5986820acb6d211397430240ff73a794196261a6232e3322b705701d53e0343669ab0505cd614af77fc1507152afb46d11882397f48396a53e07a9d14316d05a1de73dd7b3b00adc30f01cd01c8989c324ecb7a80299185666e5aea887174e58b08d73202ef22c969dc8d1a8106f4b8a0acd1e99857a9d8f77b1df670310408c981e48ddb1408c2d9a26856d94b9f05721607ed733dff3328c478b8f61e49253f8a5afc3ac98827c11bc00cb35a2bf770db2fde4d5c6f24df38aec42671dfb62b413e02176106868398add9a15073c3845d9ad076c54d3d8c9d6b2686c0d71f8c3a1fccb5e39d74372641302919358984e06105616136d99aab76889372c9324b40f9e8219c60e146dc48d594241d0504353610898eb87c30ad808c596bba3f7d3c1003d342245e95da9e7ac1d077baf21d09e00c02dd8a610c08baba63a58d0043c3dd65304c5ae5330826f25eff5a82d1891fb81f1a3db10aec4c9d33fcd0e3313f570736e9bf3e1285c8f76a176edcecb54ef01498f6c6051719120e4b776f6da20c810cc070a4862b9fb5b34dfd0fcd49b83d6170c83ca073a4486111631a9b946a461958c3f080425f269d488ed9d68d60a149443c14d1ba9b5c054ecdcfaa4c503b8c12dd94bfb810b566c90d860652f6dc02441bc4387d60870ca44b9a286d4b99584c2944de7f2545028362d790a5e838a9c91ee9ac58d649d8f948d3411e24db04951338252227c802be598fb082bd745b7fb3d484cae6ae1234e3baf00e0d96642b518e0b628e58ce6dfc6dc2bed1857565acae9d6abab4ef3b281bb93829b2b52a88911b5e9fa60f3ea72c2cde6bc4c3b86bfe66cd17946afe86a5906de5e6661f226934edf704ef536dd6c3dcbc5c2879d633c07e8661c38b7828b0cff7c23469656ad33f0f45d091bdc5fa86cc1f40053ddfee7a434e25dc51b6b07de9facf4448bf768d5f077d569ff33da60ad7b3517bbc87cc0515879a43eaef74dbf4b03ee3c908d0cdedaa42f34443e64ce1b3dc6cb29e753e9d11fd1fa401c0b3ba438fe03f4ba6cd34f23a61bafaaa3afd6649d3ccbe27f1464edc807f4ff952d7dfb462cc69b2bd30dede565b9c0b2650772a6a22787a684992d52bf68fbac672da2be7fc4e9e8cf1c74dc9ba0ce4337affa1324ed7ec62d43e841d7936c6343e2408dca6743699f99d9696618da3f4a66a9d3392a25ccf40090ef92bf61baff651212c9e4483e20cf56ed07574c611a998a6fd896f44382e400bc31f9b0354b0bfc45c93ebac3933f9ecba85d31f146763d0c7969ac3549694a27c964383d83ae57d9933d3e871ce6cf82c04867d6ee78c86fbdfe2288b3f91a1998483fabe378af466c0271b941773fd3384fcbf0beafe12dcdf4e6d81f7b1381ab57bf28d6dd06b8137b90b1ef76e13dbc2f2e8e71d0ba3eefad05630edc17da266cd0192a730a3e610b462e68d9600ccb35cd2111e25dbe8c574d909d297a0845289fa28aee83cb9cf1ac8b99ca241a922f387d693bd1586d29b7db85a1d13f090603bcbad561c477cd038677b9576d499ce0c0e7b33e51b8e64fa92497a57ca17256ff11f3fa626289b8471c994c1436b84ed33191261d8365cd967b2aa89da146ca8e82368c8577b84cc7cae6ec3e23742c599b10bc27022539ebe271eb6cf3058d7f11512b30628107eca551cbd08d84c1bbb56fefa7d5989b96e63f4566835ec34c9bef68eb0f4565d70a69658ea95b8b9b352e8b42e99faf0604397c5b53ab0ac6bf064689f85c63c6d8afd1fb7da0bef04562922fc74e9e35e4250ec7795a042de67c57deb9068b2e5b644bdb1f30bd02bc1886cc673ecc71d1f0d65f0258fa0d97b90fe8cca118e6915659c4c16501eb5f5468361e8b61ac4213eca4e76f750407469f1faa9efc8a66c5d8280f939bec6355ccffab56f5b957785a00fc834fdea02283ebae2bdf3db3d632aaa57ccd07bed7373d9f8dba684b2f320b26eadec383e150c021bfa986ff678ebbfcaef457c487ec5ca88fa530de39a0a9f7a01912393e76682ce4aae89e942d0ca982fd3eefcd7816a1e2b0342ae236929b020b7413f8e1fef8dbb7e37e361c078831310e81f45454bd0560eae95fc70946fbe5773bba720cd965245f9b3eb589e54d4fd4219b4f6a5be5591ad88ee954ad7d4a6254dc6e10c3c1be0619007042cd58112c93331952e960bb4567f8a1836b9d9b89c208779e617884c63e6c1fe43e70a23e08202e98e2fe61de2d29c3af9d6ca8ebcbd5ed533dff0bff019cfd748c8835147a2e0f38b1e8e340da78962455db7f0d4f333fa6e776b7838c9c5bf41c1f3032b7c6ff454fc98c23ec900a25aa5de4c7aff63ff99e732f12e4bf453efb12a03779f7c4fadf209149040e13a3b4bfc8b2f3bf117d7cb6c3263e68ca6492acf1050fdb5cb68c6d7da741d3e5c69d6e32320cc624ad5fa719663780b10c1e3abad0caef31fb745522d927005bc318f2c13f7813d9d2b10a0385bf80e9ae69a261f7de60e3a0cabdd91a3db04eb0fddde4e9ea9db518ceea9f3c1268679cbd66de4b5c4007976b455b56f513fc7064aac9aef8954f4b9bc15bcd3b8934e74d2a627fd471c029eea898386cefec782e69c7fbf1e4c6e3ac4b0a982e8282a4172966fb40209da1c5dc912ffe55dc1220dd6ffd073c6feb8938afaee1b880227ffb6c343f5d0f044ed67bd34fee7a5d0dc10344b2902bc6844e4243012f8d9b4b817ee9c2c33cd88a6c4268348b470d7997557f38fde911c63a4a517920728259c30bc7f08a5b1abc3e47e48955572a73019d83881abcb127e51184bc07ea677c61cc67c1e509b5868f42bc34748d3e097e04372713e705e1e497704ac4b1ee998af02e61662fe03b5531457acad19bd488ffcffefb7e77308927c761b70f6989370ff62eef52fc57a5a308199f3c26393ccc787c56bd36d840a0fcbbdcbb409c9fa1bef9331d6a7cdee9e2bcd1beb307a3fb4d61fd1bc6a1c21f5c7420bb4f0220caecb3e28a77a4673ec61b90e724d28e2274adab4abb776ea29ecbde9da9f420a9673411b26926a4515ea9cdb1499c68ca2e5f22ab495b5887238b88e3822ac7686676add2e9a52bdd41baab84aae0344c8e88e06186987288213e5a728718bd32f8eb4bb93ed167904851cb599003547273d0c82ffb9ea6547f098841a74ecc824d3660ad8c6800db25a4bb15329e2edbc454f8a60a502ed6b5937252e7aefd74e13ec3ca9599ee4efa852e0ced99597eaed17156fbf6d5f799033552ffbddb97bc23a2a3f6815e384013f608697be12e1bc195d161f0c9c6c6ea508c66be116fb418dd3adf510c51c4528d706a52938d43e5271d2f675d659568f2f842f9957f6fd5898f641e52bfd23b17a380f1e56d169eee35f97b98a822a862f01e65af6ebb530c09a22dc6bebb1f81d0173c195cdea8e49655673c284e73bbb2ff457ea4fac86b3117e56eb5f71b776b433e87b4fad7278ec05d39863e89586ce19c0c32839df95f3e83c0a33e6903e4188307ec6ddac8d8bffa522e06620bcda54b86efce6fd967c20362c32c2dc9e4f387fa9386f5e964348040dcbf9823af94c99df30004e39816fad02a6fb9e5e27b6c9f30b7efae6138ee36c60eaf81fef1ff68fecfed3070e9c3bc27d0bedfdf66f5be60d79687635cb87e4d9297ac3fc5d7160ed10ff2853c5632dab320f410aef4a0712fff2f6ae3fb275990fa270c0555f1d36f0ad6b65c8c5ac12078d65c513c406a57b41ad2dc05890724551e55f7c789710d07c0a58b1283ec4162d26ebd3c6735f929d29008243bc79f8487eb9b72712c00e8feededb60d0ef79d411c44d97e12ed895102c8255c732daec3b313d6e0761c56d69538428be6647b14e1485d7d65f279e0d65fe17c70faa0cf9c73fcd0f10a45f589dc2dc79fc6f764a38c608dada5020a1874fa1d3f19b45c9b02ea83e6de4ed3c9d29e99fb16144499a8677646bbd9abcf63154bccef85de94fa9fb2e8d559c1a13ee0b87bd33aa9ccadc8d9dba87e0af2a379600d839f0b6f21d883e3a2f1ec8534bfc69f187349396b90ba98333f1ab0f56c4c9ba1b0790a591f3b6a827e455cb9132e6f25af9c794c76cbe8d0a48f5856898ec434bdcf51947120a682092228134b0d94eb6e4549b845de106fa220ede428d603ae770542a111824dd592f3120f0e9bb0ae8fbed236d2e7c5c0d58bfae66ae90e0b295b618446ac85cad3d3327d73c047dac1c734f8434b8cba188869562666ccdafd6d5bb0861d624c3b04458108b7368354598f106b0278ea8790cc1af5c32a6fa191bb190c1118496e3f2d34c4092295fcc32f629bb607b90fb04e94c37e32e9629addb410f38ad8da6ad655842ebcc368e4d58afb05a0b2ff3001c3587816acc79cd9e5eea8c0fc730f71f8b9765e35eec30c6286333d7b7a42b65187719fbdbe34ea5d6a97b3d42441d068599f23b4f5d87a58ffe6a2b04dd1d2f4cf77c4d1432639fa78a011c69bf539c5eb5fddbb1f861fa32bf0d089ed718d8949b150ef971ccbef349674b9844f7efcd16af52391d5e7def7a3f3f4e911ade96c43c89d3a177b342e6ba53a76fc090d1dfde045df65345f3cf0879d12883c6c310cc74a3a5e9e2a2fc4169e21a70ecb775121e04504be3c8da705984436d44998a238033147f29022d1ed811d2f1b33c0899254e734ceccabd72c003a94b99af296e581353a91b699051076071a99d571cea64a1b9bc324ab38ae4222aaad3ae399d281a79cb7393831b2c5c55d3029cc4265a2ad13d6c45ca48cf8096c30eb8b6f45bd20331b25703b3356968a9b14ff49a75f38c2226fd36eee8b52c2ed650908215717a70c02323fa4b0485f1f683a7aa4cf14deedc671a4aff6dfc9f385b21d349a64cbe83ddccf85b64a66ce76d0a41b95f29152f29e27fa10e8b740ce84e077a7fc2b44b3060a32931f6f3d9a1e74be7a19cf04de11f309832ee4ad204afda40df6251d26b6f825e41f8d910f974fa5540fa002dfd38600921f5917d6bd7f9f54903af287257d1e67f9e24d3c3fe8deecaf9c79cf8bfbb13186da28fbcd615de1bb6b2c2f9ca99512a1f8f9ee5144acd9763c8bc1c6ce8632996d238aa6b8b0449246ff11e57b5f79b46b7e1516c505e3fada026828c799185816cabf6d462df5bef6772473c162e3a58452c1b913ae78a94af10cd5813df3f1be0a5569eb8d3c26d4ee7225f5935bc4af2fed32cb261060dc8f41738b4a942f70bc65e777e0efe22856f103b65570adcd3061d98d1c5d495f9a1ae472800c43062fc59187867d6b5d93eb581c647f4d4674e56071dd4160560a80cdaf1bac770ce86af02b06f2c1c19c812080e82b9d7b0c68a936c51ddc8b5eb0e43994686ebaff9752ac03c68526abfbdc914b394300cf26a086c49eb9a0bf3d475d16357e5fde717c75c2dd23f5f4a51727e94b74f8d371e08d556ca607a3f433b3fa3ddddbba8f4bb78a9ed68e972b7debcaf7cf08db0c920477e9866df0e9741dc5dece37a0bc268595ef068ae3c61fbeb63364ff3ef410f0f8711a2bf24797d245f2be76b215633a296a875b9c1987d4ddb5bccbaf7583a80cdde32b851219aece1a099b22661d72636dcc7cd458466ea908d3de9916c4c5417c90da78b26805a040f232ffbbfcc2f11addc5116b4d3cd4f84056e8f5783f1d001c180a64ce5ce42ca42a789ef4a89add108a7e4d603abdd058caaa5aa8c80e32c10df098dde674cf16da70b9ac5dc6d236004d8d0e84cd36d4cba71233a6a55063b60ae8b1e7d179f17c93bcc1c023ef2ed0f2c0b7eb2a6ac726d791595cf3075672dd72b6d558dd4503be20ac7ae0982f20b837971053e21d83235c93d6135e2013016f9b58b5acbd36694ba8ec209be1f8dcbf9dfb9142edda44a3b4ae875663d69c55aba5c1c4bf55a5e762c7ab4f4e7320499407bf4cdad6d265ca261b22d990070bc1476ebee5ad2e347063bdb82d975e107a669278165bce0d77f1316b475fe5f471b2c91d5f217307853b31da0653042f29ba4ccc106ee34d54743099c2a0a19f178f829b092005e32275f7076ebfeb06ee8e552c256d50c213e94dff8eba29cb4bed86a29436407afb2ee10ba0659234a666821226af6e0753503ed943685bef77c44f7003066428acee563f48a7f4202608aa6d80078ba6e0b006d5b20238c8bd2d603ceeb119f808cdc52bf2ac94590052bca42cb2800af0b381aecb4f6df49f1b183555bc8c04a574714cee8c2721cb0e2616618ac8d403b93b649a39470fcffc47ed94b6d732cfb6cb9a0e72a6d3c10945f1b39e233f7fc2f6d240c14168785b9e9338df8612f9728ef055c2f07390c3266e8e1df55bce0ed4077103f809438f8e7261240c6fe24a0b243779d3e63bcc482a6cae4981635f503e0c166b813a7fd1dd455bf66ef56aa57751d89fc00fcce8d1f8a460e02ecf330d4c96807708f756df112016c93042c1b8e6482ba4401c35b252cc7b58c092e7ff40ac46d6a5bb620d24745fa46e139069533fc5a04273e83aae8f3bf17167c9a42ca1e8ec4bb6f69a01c7c088b7aaddf1ea8894da4127f80bc0ce9d91ec048cd90dbda0033f0b889ef299dfc8a4b19dcde4054c0b18928d1cbd081045e4bfb04d0173c85afee020aeee039e590d8f5b73693bed9750891a29ca29a81334b70ecc1410c91e4bdd88d6bc465dd085d0af42e6c8eddc26f633dcf312c10fe101b71fe7ed7380b660cc0267c81739102f5414c45df607641c6609777bac0c8d0ed9a8d9699a4ecfafd1bea94b3d74bf6865b9265bb02e2f189ee7bb4f4b5da1dcbdf2a38c357a989b0c581b3200d340d1a1fd76119b3504510d0663f0e7209b2c2dc7b56e555892ec777dc9fc47cb234811c818acf838066e14fbe70afb94a61ad3557ecedb62d17e83c4edd6c7ec14c608c0e61760585755243844f763bc7ed9a4d9455dee30b5516cbcabcc343ad7d947ed1af537ea0d54a013dc09f59d0b4f36594e56d86d53faef4e13767e45f10158524889e65815bab10cf380ba72267be0281c7cdac025aeda21bbe9ca000ae8b43a52c4f3f9823235f71681489066af3ce2571f17a37a441d8fee3faa8cb2c3069a26706829e98d01b571d00a407e7798e31ac7ab39ebbf11d02199aa929ceb3b081f03368624b5a9df34f5aae3921c075bf4ca171fa23cc2b08d16db666019a4a33e7d7fc380c590fc06e2ca59ba67cace018346af4b9a418a8a9c3c52e418ee61cf595d12e974402861b877fc7098c84968ef50ae686704176c30058562962ac04636f4a81fbba230efd325677ab2c20e38c7bf118a6ef8a3fe288f75591bd6ab29af7104219a21a899f7fb5ef2094781e32c8867bc1ce1b713305f1d19bc159439b8837002d6b00620be15c1a7c93856b441790a329718eb8bb17c83dd3722b73dfa52f621f0d536fd4ad9bb7d7dba50264ef0692cef9d0df7270bcc9fdec61948d10d18c5349df8505bb87fd27096c30cac9239e4375672cafee57f65dcdd64e2ceb91c9e46a13928a15ba4ff9171729b91cbb744fb92ca7f3842bc51b8b6b1e12f17299acfda0beb2f04ff5fd05ebd1d4f4ed1f274b41e1474e91596f9e3855b6c1be71c0c0843843be5c34d8ddc4abdf8a1184228cf8731db50c873c1aa6b4b714fa4cfec37c175e5ef315b7cfc6bdcb922fafc80986f581ff6803d6e5ebfe1cb4782fc8960f3782557c4a21f85eb37f95e04e959029282234f16ef71c0d23f9ecc90fc5c538716413c3bcea0fe84d37c44c2a34de2ee7415e79215037302eee8da3978af1dd83db7562e278afea84a5c3e65430f636d119b8eec7f16a304f2e10587c3ab21e9fc4945949c51eb3e9b37c68e1e2929cc1bbac7f7732e886fef44b1a7f23247c9f6dc74f95f367d5e6231e8d9cf4e7cb4396e0d5286abb11f1a2d0afb4a7f6889e5a05fe361ba31d588c87fe6dad71413b2869e3ff910c938640c5923bae4f5567a9d7438e41de5403b3b48f350b0c4a30ac141616574d280f4877b078b30135a3c9965c3bc3dc56f0f7f32ac3a6cbbd9169f4250f64c0f2b09e3e0dd1a77a2ef99f1faa8f129f47db222564fbe02303b1c7acbe758534e590140c856aa7a512156cf378227728b4678c769d61321d42347a3b4e220c7f865d16a10e2c3e101e085db7b35658d14d79f56ee52dca445e6f23348a9a0d095122ef2c9cb469f7204c4516cf4d09031a3d83164145c26e16cd44accc96e8cc44d94163b39224400b6462022c5d1b5f9d8669b1d8fead348d25e0e159350c63aaeee0aa4d70d197b62daccd5c7a5bd063c427d3878a69e56fdd8e5fdcc1cd42c140956ccd898014219d60e6d3f446dbe9ac8fb409739e22ae8f94bbd499c2f525efbd0faadb1216b389201ec4270d1838f93bdf0d63f20234454b75c6f14a865baa741a4cd0487d3cb4087a62e0dd0ddb526f7ffc5fc2efad6ff41fbb1cbe5cfab18602c1556c244daabbd2362eb8ce493099091bc2b1fc3c6a1cc9094efbbf73971a6e6b9be9a7499142e3668fb29643cbfc80fb337e1b6c4ef6e23e340c9a7fdef38634f2761013d3a8c0a225498aa2175ee547090820ec7d08078738b6b83be597c77ea68da01c578aa46fea3fc5fdb4b90fa31dccc3ff9d8340a1dc85ac7b47e57f1b97ae1e59115fadb949f5f5ed403072f88cc3798e3ff148b38b95faf12a300832ee1e91dc3ca8a3e7dc10f6b08e7cfad60113dba1937f065b28ea7102df8275011f7b5b17086334d38e9c994c393b84624a1bdb9cb07a4f73437e5f4956b631da7d51732c613cb1f842d306d3322fad8fdedd07cb808df1aeca7118a130202e07436be7717729f1ef8151407139e6f1d1bea407ef06980ae3d11ee0538a03a7f561eb461cfa3715f53ed4f7fdbd6f6af894d42e24e1a88af241796ed5d24ca898f3f2043e6f0076d8e443619628bdc3aff365988034b8048340d55af08555923c39a16054fc1da5cfd790db3a403f96ca45e8b609fd2a59aff133e36f066c1ce940d69f0c2fc67748ed09f1241093554f406568abdaa68b5c34d68809a99c6722c457dc1342fd2d68797a2c5f36620a8545b0d90ca2e0e068d6c8a0ee88956b8dbf3284515af4b0750815c1d192500e2480c927817874c0c541f0be120507e66f5e90a05a69c13ec6cfd0da66649099428e080221a28c8bf666580ce2aa38554719cef0ab5cea1e4bc1c703517c6e37b9561ee21167c7aa70d458744856e5744a963fe5345c00875623932577ba3e17da975151b2a5bf6cd02e778f438c903e368af72d2af9ee8c329c50a0f20ccdeece91d79ec9dccf8ae3757a98ed218500897f406211379a42fbf72d63114ce2da1c6793aea564947c00b7fb0cc634e4a2c9ff8ec77683d8907a0ade84148319276eafb792706046363ae96d648e33a27d5a7b21fc4599964c1368fc3da05178149a39e7edae86c48ba992246e8cd96e40fd82bd00fa9df0bfb7885c36d29365cb93ca95e2d9c2d38c3c779f47db270ed29607273b31fc3acd061cf5629bacfde92715aec7f403f2d13848f7b246c1f9dc997403fe3511f1324bed4e7098ac76268b1479d6c387386bfdfce0e7a3049682da5c72fc703c4f20badf913d8c5211ece1c2e90fd8a7e2bb937433c543864c3ce418bf33d13a58303c7bbbd12b16f67a3a3cd9edeb22e08fbc433837af542c66887b6241df3f5c0cfac35abc395f1d3dc70569222f44ba32150b9b59a6e73864d8b1937bde83c53d0e994efbde6b70a9b58059b3679cfe7481a960402ac60e2c022ccdcbba85f5045c058c7394234816b1a94b9836b8f136bace081c2a7a74f4f3791a91049ed9b2fd4f7d27de7ede9be1af16eeaebc1177788a3c6e5e4fc7c93648f8e69bad5ba024a70ecc7d72b35443230e480d594995805e2c13be01a38003881b30c24f067d13166e55bf7919b210e22cd18aac22804d923e8574730a6c602a7fe5207df91b27f600044d9a75c94ac933cd6e50a449577a9e3537d2e1d7d3e601de2f5b1da65672f6af4c32f1a8b3ba132dad4ae52deee90df9a31bc949a752b7ec14a09998ca7577b9e117aa8359fb37b7c46f433661ecdb5d3f8ff2fdf3cf7c07d6bb61a34f2f57063b64f4f900ff7a4a4c38f0ce885f666f37757d3d9ce92f2925f2681028a4e87677724174bbafbd3513ab3f2289564965e231d172cbc743ffcd66e10442725599a147eb6b43c2ec0fb09e26f62b84581da1ee80917c235e7aafe7350144e8a65e8a9ad4714d9433ee069087bf1d69f5d0a7c4f5a38d5609858cb053749d9d63ba105e92681b44aaabd40f91abff3e0874b1f3994214e4b05c817921fa6dc9c8c2962e6eb2a45c7294901c308a4b30ffccca687e3d5d7ccb1fc754136174985070f5e0aa07b680f66162dbd618bab585352aae901467395c2b18f16bae602a48d7118e50ab0c3525f5c2183bf8368972ba99163f669b41ed406e0168000a555d0351f35429c40b6d71f60c20eb59bb385bc836ca0af2dce804814b510477df406bcaa89ef1b0c376cdace053d41467d85c66dd7aafc0ecdc8a61d1accd8be1951be31909ea9c93cbef5e58ffa54ac2a7fa8f4b74193a74263878eeb402dad13e983b4dfdb85f039a1ef8cb3466a37beaff1bc6c85bb45d6c50dacdd4c4333a3d5acd9d4420fd3a28d6a964ce70c5d5a9008c6a29871107b9501d5cf740a55c0f12b9491bcd7dab022794821031f9e8f7ee055710e1df2e96d0a97bc97367ba4edcaf5b3cd75dbfe5abd55feec702f0a9e4d71abfbeefb15cce8fcdfcbba9243b7ea3ca3eaef4af346ab96d1c4fb09f7e656576d228277b6e6bb96c7e506875aa19bafdce4fff06097d551181392396fc0316538dd13477e4970c011aba74308fe34d76187fb39405583c8e65936176342f2bbf64ff1b99bd80e2c674fa6eebaa36fc90fa6cd49e1628161eb44e329d45ca07449bcfa792c0f5291dbf87386c2a7cf0c8facfa180890f1699054a71cfd1516999b5d5827e23f8f1960019762c080b79eb67a07d7791ec1f1793bebd2f19b3eed61f97ef6c539993fe1c96574c7e52337a1e9c7796ef67751ec8d0d770d0123e726dd1a8fdf2d29401d490d4f5fb9d4a0be9f5ad56d3c12beb56a14793c1ad8dae8aa8c9165092848071e28c06c9c2987d774c40ce339dcd1bd93153dbd1af55e6292901ae2f125a18d93f6e7f206110b6b1176c287cc8330c1af8146d429f396422ec98eff4a3f146a841767ac138d49129e44c9ed15f20fec39a330b065aa23eac7d30203162fde3c0f003824e326dc6ec05588671d2a4aebf03567d6edf4bca94e6605eb447c6a1e08f199174320e2f22ac55cbfc85afab5a32e293734692813756ac427ac503ed64929849b737defd3a1318d668aaf16ccdbd7c39d45fee33b30fad793e1d0f9eff0362f709de03f7148d48dc3e8c3199f7e90184f4b9eeb3abcaafd04542fe6289f91efb2e621945d011cf9ff295fd3cfdfab8b86220823b49f0988c41d251d47090778c0450ab4586a119465fef4ef3d5d30b32ba566f36f848196891f0d004b4a447ad42e5bc2d0cef61a881c349f736ddd81e1be171e39cc7f375396f87ef5b4c65fcc358843ec814b08f3f8ac7a8f632bba1b5ca463b5eabe1af71eed6da97c692238fb024a02f4b68110819bf19102b5475b937a808564399a232296580d57ecc8d3e538530ae4ac3f003fcd1183e0a0e41edec5d48ca79eed6c73fbf32039b92b836bdd5d1f7fc31d3c9ab0939e4a749638b60219447abc094d184fb43acdb67cd1daa98c4d420dc6a33f62c26276fdc98eb1d08d1c5a3c6766c10114edec80d49b0c2810f031ccffcbe5234b173244e8a05e8dfd43de9bac5a3b242d20e263471dcd2e327e2fda0c2fbde0750381fdcc69e3e02866bf4b23c40ce84632e31b19a13151445c22929a0c2e60b17142c91d7864fe9489332ab1112ef71f511e1d1323f2d651543efc8cdec3964352072c007dc1866252c3e57e86cdb4a003b13306f4896201193793421e685d99763d81a9b4ac4e0d7364ec75d712a10258c572abf8bfd1129503822aca927be7b41e9cfe0a286c6003b2743b7775fa8ebcabd6494efbc46a318df3e173240bd4b1bdc99f585512d408bdb8f1ef2fa62b6673baa08548ddb110f8908a08c5568b396c36166ce330cf60d35bd649781e066660320a82fc8bf522f20dc26cd5e7f8b8ef5fcafccc1fa570cf6239541585c9b3ab1aa7cc624f7e5d9b3680adbcbefdc2eb310566d8a43383764837d045014e8b73f453898d165cd45f1afa9ce47d7224c2ed21b7547b4883bd7b0c146adbd189e97c7ad45d42e2f6b47c2abdbbef6e46dbacf05f74aba96cf9ecd1b1a46b484338241f970a2b591c0c5a3758a5b71f31373a395c30a8023aff3dc444873e1b38ff706cb90dcc1b233fa6980012b6a20adcdcaf6218792064d34724f6d714a4701f198d43680a44872437e277352db96bd9ff20d13af0f2fddc2c2f4e51576bad8af8be73d6603cac47b8ab4b5b2ef209428f0ec146cfb8720cfd0a5856556ce89c89507d3fca389c42f39561be11e4bcb9b56b95a99f1780d2b0fac1311bec8c80cc04c930914127b56cb30e8d98000b888cae79270f5423b3b5e71c068629b5329ca2c93be271fb3d2efcf1ccc2977d21e73b4f65eb7bbc8bcf14a8e4fb4cc44381d1dbaefc0cc47208ce375af0671c60936ca34a0de42dc32fc79f408655e3f18ea7befa03f3d8ad4e41d00e63f7fa679f0d0291dc6fe4302c0340c7906bbc043ccff05b3e606efc6ba8488152b4e928b75099b79aca5be35e9bb578e7540b6f2bd1bfa287d21bc4cf98ae46208402eaa5e198403550de2f815c365dc3988cb3783da983d0fe2d9d8d9aabb84ccbab9d71c2e53f36507f49b54685c33e15f5906772cf971f485af37e07c04efa7d048749b58d37e3c3cdc886587b9a670edc98f6002de73ab2b4a0a28bab16e2122140a1060d878f4fbeb03d9bc45ad161d755641f4f80677480d6dea1c6f22b38ca879f745c3b942ddf9e157e16132018b77c5f85d8cf106d551c2c18adf525c688ece9e7699a963fd062cb26285229d9f8aad8bd990d5907de0438b81e948868875990c7ba34fbc7dc70f505944c712cf4c8aa8f3b397c3a8e2b6affaa18ecb2e53860d81832c861b202346c4bf57229617436451ba392a3ed2f9ad0faa7b7328c1cf5c8df6a5151c901930daf1efc1161e6bf1c3d98a49bf3db12781e9a88875f059dba30cd42fd81d1e2b1f9c5ccd3dac4ca86597642e491654350bd49d9b06ca02db29d23bc8db9778120edaafdc04e3c9bc1803f2984ff78d529c4e415e52520511ff2071d0dc9e3614db450d981822a5b84e5b97b7761965e94b1ddf74003ae56e86783eccc1d760381ef6e6ab1d65fb14bc9db37f2a0ca90a84e6c0566de27dfaa34beaf7eb1ee53095a2acc1f5a3376e6b52c7e89068fd0f578b0e578f3c5d264392d7c9f93597d805091cd74cbf80af2c9cf6365dc3da8be297430c83361b793c3e7f46d55ffb0abd728d89c0c2163d5f75ec7af852ee6ab295f56aebdbf6ebd8ba13e4dd305754cfaf7aea064e86253ee2476661600b0aea1bbea6844d5a2e66c199a08370af05c4c925ec67a3cc28acdfb1ceea7f87f60c61c073df64df3cd4fdf767a034a72d9e6fda15537d86c5930345b579bd6c46fe2b702857a9fd6ced44a3e47287a5f3054f3c9e8382dbcbf8a3e00ba80f2feec1b62d73368db22de065e1e44b46f677f769baa6fb765da17f00e2c67f84c63d2cd453923453f63700f99c0db51223faca7d5137248575839100d1d22df4fe13e2014f16adb2bbd2371a480ed1c9c2341af33a19d6c7dc303e67d3f417748df72ab2c72406a8a121e58d6aa351b6369e889587cfa7130ea9d1dae833bc5840bfc2390e13d1682791be3f2d00586812ddcd4daef2cff1278d7b20b1a4b7395821f50a83e4935e2712c06b6086e7acc8c88711ef8703cd8ddae6f5252f9acc5cde50a69bd862d01bb09e6f0c2f25db267cabedbd3a5c9ad4bdfff0dc0e267bec03c821af38e1bbbc313ee16a868ba9281c001aa2eef1f67f04c17c5fce85680fe699fa0db9ce580e569df25d463f28258f98b33e2075ab7b3a36a4aab9ef543824c803a9997a308988d326b948d6f163e27d7a161b1967d9c5f044a5c6c5ccdcddd98c9eaad839e61f0b4e90812577dc05db892cd3f8426b0c1e2cdd1cf97728eb857e9bb204694ebcd914fa653c68d011e20ae7982556c293498541b89bb105fa6a5fbb9b66e89f12a23f48f06be6193852fce2594e415ea1c1f352859790f1ed72b967fde579f1fc74be7cdf5f6ea21a5c93fdf35c450b006691690954f3c805acef556022d7d4f311ea01b84572c1724c4f8bfdd737af4c0f243d29b86a2530ea191a477a57869ea04903f4d2de7a5998d8a55a670bce1f9d0dfcb0bec7ecdf9d9bfe3d13d2a04a81c113e28d51b5b0c9c86bad3c942f6879c8a0c02e3e9fdf68daeb14d82d568654e0aa92ba4c187436633763de405371f451cfe0b8d4e43136f11f2cbaba0fdc89087fda872fd983b2f3299d02fc7d90c2a7909f98c9eb32a05c96f8f755518685c156d750206f519467f3aa095fa04bd176bda04a45d7433bc8be915cf0f3b7fe142565bd1ee77785651a7028c36637e409f2a024474e8f4e640c85ef3b5ea4c020b7ff1f5e7917a092a3fbf3e0f3a57109bcf328b7eebb3fd8ba75397d78b512c08b7b497e89083750d8e5ce3658e3b9f73d395ef591d0eccca4c6a14421cfff892dd9dc7d6a928c6c30ddddac5bda5f679eee972f8eb94b4e5fc0177848f3f6d86ff14d53f341bd4c22c70e5fec9b69c96f777a1144e176694f3ff19caeda25fc3b6a89d1e557ea4d113dfccc23edfc8a13fe8f5d59ac25af118d285930cf8d95caf6cbf3de35bf8f92064d5e3f2f3ec9a6377778b2dde28cbf93116bfe5c4937d6de313e534889ee3bdc381aadc9b3047c8e2fa118d35ce8e73e8466d0127e2a9668bc3b10ee9643975d06d534689d317c99e80aa9f1519daa5b247a6b19cb5b127337c3e7c39fe9fa3f883b077226f76c2f374b7cbddfe1ec9dfdf669c2faa318a26ceeb02e6f3ae7c33c47338f534c6f2a8afe1f3e563d74b5db167cab9c459dc8c19f7f77dbaa8b07164de385281e3b90bce57404ec7b5ff2f550f12ff5cc88af787bde52e334e371cb924b297f7de860e97fa23f81efe6ff649c243e0337ef770e7c7c74f117b3477878fabd8711be77bed953646ccd4f9acee25ace14378707664dfc3bc39f27832d13950e8a3ed89ba3cbe057a5378f50bcdcc9f5db0d3be019827f4ac042741047226a95660dc8ee3cc35b994f08feaf87f8d9c0c04dd4a641d5e9245844688df362f733ff5174c1faa4f4a391f23434540a31f18d4f04fea75800a35f4ad69030adbbd09ee01b7f2885e2187f36a8899d1eb5ee00582ec872edd5b278308093668bd48e71c15286752020defe00fe3433869937a9ff92952a879d48cfb0a29038f92b455cae984fe11b638b71f39024cd19daed691ddd0f5ac674ff454b79ba00a7fe0dc20b59694b61c1926f73d04242797f8fa73c7124dced045ebb2c96b1de0a0e76a6e201d279f4b1ab17e935d43ab3ad2eefc7489b51daeb335f0566f4409a665b07c593444993fc4ec52f732206e21e7be70a13e58a8247d8ab26e919345d157bc4cf8e7b5a02e69ef7e030ab572db81a3a3f00ae2aa25a62db5f5d6b34c482e4815796d177dd4e260290a7019d70e13855df2c9298bc5e59cb81c5c502556386a5677d4ba4c1448a330e73e3ebac37da30d1a8ef6276f13effeffbc8dc6082eb269ee6ed572bd201a4be0928897e66fb81be46eaf51b1a8b79979270386b245162f032a369cf0bafafe026ea39d16974781e7ec67a212412043182057e20b46455d15f8dc507e43e5339fb1c8dd91166cfe7b154c2ac2a32cda4c93bcf0d2955f41a08bc8d4b990f6697ae0b0ad27df721de79ba5f024ccd106c9b6b895bbfdb01ac3d592b585ea11bb7b45573c017fd99a01a5093466b2d0778b7b90dcf8d48395945fb87223647a6873c8a2227957be09773849667150b51ae5d3a7d7e49d2cfdeeeb7eb5ca242abe4e765787840ffeffb0a7fd21a7433335553b9c1a898aee71c53f852b4239dbee36267746921f6aef6ab57413e1901fa0406d7ace7fe4cca0f0f79d617055995da410e5bab31fb1b8fee8322c05549dfd38883904ce3b70a0213ae8af915d75e0ae4423b817503f0c4515a7474d9887f614ab3e6bd7c6c3d7a8ef0c73b79031746a18dfa28d57ecc7508e578627ef62d0966c4ccd886a04d9a910b0a66c9a14d360d6ee5482687a31ce956cda5b147b8e4b634fa25b68b30a173586649270424fc4dac19700f2a905ce41a7a84f9dc0057bfb86a93b49c5ab42cb1d42bb0ecf8038eaf86ba0bf5aa08c7bb6b2dd186b82ecaa05ea43d3b4d308b2536ab39b6477d43e35c49a428f20188fe3298a889099532baf5a253d7fc01d4bfe00bb6dd3b5f9b6f61840cc5da755a6ac98e743f260efce965482031fe46fbad39bf6ccc01dc1d7b6c187dc85512bc1e5c4c5e8dfcfd6475f873314d073e641924fc9ff68c198a7631cc2fdd3541f769403330673bad6526f88ceabb5752a64927eb7590dde3c68e6f515c409a3fb66a4d963a039791738510621c5861ddaa092f1290d746aa6d183e3b1c406e12a111edc46db2dc15b723d20937f5f878451e93104a5ae2ceb7af89ceb65d5e22988b0ce23a9082be025ff103240560fbcaa946ff3428c10508af6f7382a28ee743f5378ff054d92134b39ef3983f3a80f7445e412f82b5702fff6ef6841e31a406dc98a6f6e2d7d11bfde92392d133bb1625d029808df5838d45a5df07c6842db16389ce9132f20c17cd1592e538100f65fef89b469654b477311aa201e3bcb08aa1f3c81d10c3ac4068ecf146073e15c755027643747e771333393a593103255a8c0988d32dfdc2832253fd8c7e829df03ac2ae18a49b63e5f21c3e62f138876f1b633db6bd9e3c2d1b73574bb722658a521ebdb815e04bab95da92992e160d409b08509afa6fd72751244b0e13bb6680332b357a65e96d562d0d3589f4d20184aa27e1329f18b23f3877bd615a5fbbcea25ba55b0e6ed8b5b10082eb285afa47cecf412663dc55a5332fbd7b2501f7b8b7674d8a6baee427c4eb7fb39f75227214ce568fb023e3a790cd7bddf341f0de828346eb529edc4db4d7efcaaf0f1877d51b8f2676246c00fa1b91f3f2bb3e5a8172907c54d1bba33036b97a2f11652069a13577ca8760c843e1c12b667faea0cf5804474d707d693588f54d55019bb125dcfe9133d16d0d50f3c1d7441792d62bf64bd15398576c01ad45fb64e2400755a4b65aa0981d035b29630a1b69f1ac096d9e24c11375ca98be6ac0d15582ca1089423b252650435e2272c32586bcf3cd64717bdc286bc5b0f336a7cf0d516ece83512919be9bd1272ef70187ec938776d5b474e8d153bdae9c68544fc1a03f8e80632b3fc97db0a8e626591e42f16bbcf98d50b1a9d75e16bdc41b40bd1bfdbacf3e3e2a89ac163fedf1536c59793f3e911644fcb4d6b6be421b25ecb56ecc2f5b7f6348dd7f97b77cb6a5af7b5974f7d6140d3f5fcdb3519ab0b3eb1365305746fe51ba859cfa37acf60f9dfafc7ee6966c8fd821df2839df5b45dc4a328453104748f68a9a2a33483eb6bf604754600bfd747789a9fddded0f8b70dc3edaa3b948477057830727ea2ec34ba958bd4e39f0ab8a1bb37ad7745ff6738d4f85aedf799f34aee8aa787153d6a6b303cde5d19336c2d1169b6fd0ae53a45baed73f951ebe0afdc7722e29b31b0d3f59147ed20aeb8684b18e735d526226082456e9dfc3f946aebc28a771833e36222027f86033789725063e69275f5bc55dfb5b720df34d9bfc8a857f8e9ddcac00f0dfe0b294f82fc4f0f73955f723687360dc1e469d7afd9bbb6c4f3e5787c7df59a097c820b7bc23d1afe41893e64069b8a61bf82e97d8af93ee7aea6e2ba11947533f0c7d151675678eb3f10497b0d0aae3f966f3de3f50a7c2394fb566e9f65dbcbab5ed0e31f5dc4c30075e45ac9838f9636204a6c3da2da6b9b5f63b25bc47a99bd7f0048dfaafb8fa411a76ee4a9c3fac835b6f77575efa251bf4582f7b43ce779c5b755bfd4b21f17e39d87545fc83cb9403c688fa72b173cc7e9cb488fcd75959666217e730bb74567d99f4be44cef21d974e83a85c7f6d493b9aa7168ffcfcb228691f5cf8bdcb3cacfade030c69137dfb647113dc71bf69e24abf6de4cff327dd8c6912b3d6fb6efdcfb7d1d8f2c24f992a923578046fbc1005ced76b53bdce6750670d2dc003eddbe7acb93cebf544604bf9e1c56606056d1c39a4935fbe96658c9437e6f41c727b7cee1a554a6de2a90e2759da9792146b3f6f57d0ccb2e959f29adaee8b25b43791f1ac3a1c87b29ed51b5ecda65c866573e9e6852c1c54763f834eb09033fa48a19830a1124e75c3971a4e8dc9408f83c2d7ccb3b1e309866cc0f1b16d9f64af4a7991bc67b82665e29c80d4b3055b39396b6e6fe312f31b7786b5660ccabdc6e0dee355fe215e325da47678f4922b5327976dd56e0ad4573d2ebb8366f817be4dfcee9f8c0cb4f27fcb2302a23426d196190135cfb16cc093f10f9bccd4bc3399d577fa6881098dd2ad82334249b0cec444c2534163276d91da34a35aefeb67c3b17bf28ad49c104bc03017ad32c89207aafd2c926dc982eb4b7cd2dcbf6d5417c456d3bcf7e6659a0471dd1851b92a67643cf0cb09e88f37b518a3820709a95cd000b37dfcd109b865e4a7131392eb00ae2a3fa18fc014694d1ea63f5cd1e0539dab43088b69d519f33f905667494d3eae0ca36ca2738a314f0f4947a255155cdf6e6ee568a16ff3d77c36eb90d0903eaf204fed00382bd41f0a9677a6e61537cf8f02eb572369493f7477a424c9abc58396bcdfe125fc07f905ba7f9513afb518ac7abdabc87de669afbc7d9eadf5b90b632d28a3ff055e8e6210bb24a3e691953fdcd1c2a226e90ef2baaeb4175f91bfb8eb2fe79d4ce7d06cae8668e449ba29571644719b1f8aed00c34342e1a2671eefead59a30fe8c7ca6ab5f6289cd3318781fee95e70838cee98bfa187cca02aeba270d78e9dd89d6b5a251c27aa344f206167b92351c84f0e5444623e274780f3d474edaaf1c086caefb90571a19e591dfebe0bef972ab488f25ccace49dfad227160ed0c7ab70a861fe3db7c53698a7f1f594878307c68d785b40b954187fa728754e93962d9d8e82115a27d253daf9d7eff63e3bb55d7f5a80fbaa45d90bab44abd2d0337d5e7fdd0c8fc8ea5ff718f016bcbbbe1dae00e09665edda183b6eda497ea83a5713479f992de5469075e65ba923400a02cdae0ae070b695a7560da43c3e8ec48a553a1c3afade0e24b383666170c5d814cca39b94cecfa51263ca2f838ffd9174366c3ed33bbdc256cdab15e00683bcf9d193c1bcbd65aae1f8502aa7e80f7cbbc1c982cc026a01214fbd67f41262ffcebdf5abe84511e7019fd6884131ae6072c9c0f82bebe349cad25a6f15643676c154beb0fbd4a9108739e76afda1275321182dccd4d63484d2aa16370b269dc15aa220e223e770c36e7a8b0d1e730901be08effc7f730da760537bf5abab9a349caee80fee657f165673adab9c7d7da9d81d01d565f6b5a489e3b14eacb945164dac752da9ad21951cee4316dc82f12682e95d36b11937f7761b4b7f532e96a7305fc12d1423eea71b1ec1f124afc34dffe1f53fc3a6f8bd7887bca11cd0e869a378009d5cff2df32f0adf0bc42e720ac236fe62a35bcb593819b35d2b1aab79132f23fcc20a34152170623fd11b2a73fae653b449d6e4be2bbd2d34bd138fa5ad829f6460a15aff60551215d2aa20ad16b64c920be19e4a092e34e105bbd46ba1a811c7420676acbc13d76f160763247ff8236f709ac393166a27b9ab93bda55d3f190b3d7c03dd1eeb14343b27fb39cf6923e526d5611d060113e220ed5d018377f5cf968beb00ea2fb94992bfe79fef7d0ad7e9362d4442588498ac2cf0d5fead1b7164d70bbfa0b709dc49123805b37ae54b50c85fb65e2cf0f7c65b7b78b2f46640948e112dc22ab6601623c360e740e3de1cd0232dbf90afacf80d07cf903b877e63e4cf29bdec4f0cf038925edd16c2d99bd75309a14299674a50352b6aa6da2a72c1bd08b0f496b660adde395f3ce1d7efcfbdcdaf3a20ec1da39778f1e66f2488d8811cfedf1b8c2b02e1836b93ecaebbb688bbe2ffb16580ca4ef5e88c2c4f789b569e989898261b676f8a8da7f858e860e28913b9c0c28310d062dced1ed3c9af29ce070579cec1e394ce2a4c66ac1a5328fc0de094746510100c010af3fdd60b13aec3d0f6079a6fc98ca99cf4fe2f55046b3108dbe3ad929789500c8685bfbafc1600618798cc4664610e97e0ced50592e68e52ea3137a36fff9693c438794684e600c8ca50694a699c3465f890abaccbbe3f878d59daa76c71b7df322377cf1e59c65ff341f7c1b01997dfb1bcbc4e5d932ab6f9e4278421827a99a7f8270e506872606acc5759ebcf2e43df41d756fc301a03a37b824d3b81249778b12235274a4f89f83c315b4bcef09248b73d7f99aba905c07b7a3ce6ec6ab92cc41188c8724c520a36f4108c292035d0f8741278a491d6155d2d867f1332d4ce4c8b939ba158b78c4d0ff65d64c60e34ec32ae4a3faff18be6b435d76e934b032add1e4d4d816b93debdf68cbf4a6b9a3795f3dccdf391eecdb5b6ab925a43fdfe417f8ad827c93bde02c5a73a741836039d1f9eda8f30437a84b714eccd777a839edd033ef01c0b75c95577d8ecbc9ad3ff37f50e9eb25cf8ff64bb882bd98fd2b485ebee0e9c1a8cb8e5576a74a9cbf76fa85b57f949c3e117f52952570682d3f243db9d11c8488679a6ff44f52218e58aeffe96b06fa57a47a43068d8ba88f7f66b26501dc0b03f887dba7a3644d2c41b78518bba025ee6f7df4e4066488efe5af1ad962d6775bce06a3fb139b6e63728338aa20cda8e8031920354ac8ccc727aea5379f07227bbb95160d3170bd874b345ca50308e304fe233a206fd69503d723c0851149c012036d6e6cb5cc8a593b03a894fbb8fa721bbae5461a3bc6042e702062c76bfc7c203ac019ecc42e3a56005e4e77839fbfb05d80d8d028d9bf4fb367bb3a7e859bff7d6a8e704898070df9e8b34fd343aeb79f1cd2b8ef1f9f16cbc41aeedcc9a06dfdb8e753ba3161151cc71dc7c15f4c89fa279fe8a5ff02200fc59c2e8187e9ec01c2aeee378b5d3d9976d91165f32c03c66919fdb6c2f56053fc7ff6fc3607e65080bdd79861921b57b1e571084927387408b8f9e148dd15f720a7230bdddd68c0531f29708455328cc9dcdd27007a35081a10f23548ed481eda8ab24a36f6442e090ec1f8309189bec5a2e6146a26898db8ff4c9e733011f7eb49cfa5413d7bdcb65b1879fca8ffeaff46f698de380054720e2039c68b0bbf10bcc7f4407a00a56a43cbc7ba8285fca1a13df54cb69e120389104bae5adf77dbe6c1fa4d4552e572febfb14c42ef4b2f6b65c509524d6ac747bb53d52aa5d9074f8762fa154530828dd68634cdd235aa7d3b8e9d5c3dfaf01ddbb98a3373fe6b03bbad216c0b772cc5c00cd48d16ef676bf2bf8aac93f60d066c488b0d794587befad4043bfc6feafbb2e39e03c0a9c778e5b6ade74829110f67e007f69201290f629e34abe48643dccc6896f4e855e85f3ec1cf52f172a00c9b53c68f133842dde7a9af7eaec89e073bd0d872904587d174f6dbc2192743bc791e4df707039b419bcb4350b006a7812fbccb24e0d2bd8f951e2f9c420317916be52c40cb116321ce714d0522ea2f02aebbc1f66ce111e6797479fc17402b9573619c15e0409d2bdf1e30547199313e879fde8e20a0431b727c3b86c46cedd1757f5e6278c086eac7bd9e1539daefef82b66b19c0c15d3561cc77bdeaf55fe6fd206ee79173c27ffe6428c74e84959d01c4bf2dc23232212fa166267ecedc1a2d316d62f4b11bc7eba02453a2b6b5fd5d59eef6a70f64344856b6fc291e5e6fba244e8c5e27aae341ba9f4dbecc6dd96ffc03df10f6ad0d7ea5eab1dfa7aded78281d1d3c079501d7a8cd65699ea8028be8d9623b69555713742a97754600d4b99c5e806cc262cc3402215431348579edb1d8a91cf88eee754adaa47a08d07fa952b4b5947d27ecaad5faa88fb0a6e5624018a7270b6502d3ea35a16ddc560e7d0816cf9b8e67ca2a1fb2e581fc57915609040aec5a0997e1c943ed6e1377bdf3cac1ccdf0f36301646068b00869a6511b1c9a5fb25599de7a87f02411430103c34df40008e01f2300b3534ead022ffd1d09e546c5e21bb5f4c26f574f705be903dfc75d97c83bdbb333fb8c886a3822b76427e5e3ac9a301947089b3532cbe4f634e1675ed0d2145e970de06f7e65eb68e36d857f37fd3c4e8738e58a2ef0535c371c2e5ed4ee663cf441f1c8e7f900d3ec95d4ae75ef1fd4f37189fc7831e7a769bd65b2ed3de415ca1804c9bdb2e93e32acb8377f7cfffdf97102d42657f83e53c5e83f30bc43c3b9a2942b5c676a69dc3426d724e7fdcb577d786ed1c601aab0abe8824b8d571f3cb06429e48920cf5fa458220f32c5d64083e9fe31fbc6121f0fe648da255182ee0b8e7599efdbf77e9ac77ab5c9f4261949dbcf47ddd3b82e63b2e81041101712ed1e44ce21dfed02603d0379638b037b72230b2726855b784edfb24e332dabfb2507751ff72037ff00a30d81575eb3ba9b90937ee8ed32dd1e8b878b9443e66f9164f38a578cee4e4da72ffc600eb5ab63f36533ea8d9657ea3b61ad2c235eb8bb36a3fba0775dbbf5eee5ff7b7700e20fabbd3b88593c33397968c15b7e3db4d549c46d059d2ab2c02d49077eecca7838d40b300ee3b4358da1e7263bd2279479c22c35116c45386cb79a7ee6afae151ca60ab02c58fde2e9261e339d302fd0bb0504400b2ad1d0796a5fbf72f7e65c7f4ce81025d91a3ceba2504f34c592f0c132c6765c340f3064e3f7a2e7fc0c1d9587012a0a2375671fa765dc1f42320f3fdd2b70a80cceefb6e7c6b1cf5625feffd149cbd421448709981f441a5b1a3ec181aad47a5e3bffe6377063c30dceef57ce659bc33ccc09fb3fd5d109b07c79457452d2fafcbf6c66e79a756d309e73c064998f2dacf49c8c6eb003a933ae22973932626e8aec2b797b4ffd71cf12e97e8e7435b68d6ca12a91339087def89b759af706f088278ec4a6507562411bf31576ac8189a5874725a66cbff210774791a651a019f753d26d689542e8b35c2686fa8844a53901652b8854416a9540dd95eea61e7c39b4e86fa9f7f67f450088468ac8e2efbfa1d52e08386dbf60d6237cfb583cd23d6e10b5f2c1231a41b53a160047341c213d6979f20de7185a0a537348fdf05166eba8623159e44cf8c1b8660ccf9ab1341d8e6e705f7e2b029ec68711f256e8cc47ac31ef9c6cb2d36a89e52415af15930003157b5c7df267600c3a152ffbd530822808f74010336153da42d87f1ccd664dbe55610c8af559d6124f81330e9e7fe7219ab981c7be6e8a4c31a574de0212d1de87ac819eee84372de8d771c22297d0f98a023d09b7311a48008c26081a1b660aa15c274b66afcf6e7b64a470e9065e5310c407845858619e598d03b162702c50bcedf1e95e614f9884dd82096a728348443aa33ab1cbc943d3e130392f55c580fd0d4068305497428c01f631bc841aa25613805ab4ac135eb7eb65c6d6defa3c6693c38aea503039bc43c8fb26da6afc60a10fcc84bd5db8b919eec47c052f99934ed45c9e1c3a29701a8ce9b082bac0f245f4890b6896fc487284989464967a69afca1f81584e41748160d067917a1fba987f14ed30f31bdda4ff9aebb64dded4a031a9c2720edf7a85601201644c0aaf42f1a449d4647cd7942b3bae9694a1160241bd81b309bc11f9ddceae0ce69bb08a435f6256f52865f50ef136aeb08e64f4247a8cb8931f2afa2f6df12b094cd45ddbc00569b8b5a5bc0f07d366ca7289d1164da672886485545ca66a31bd1c989969b72df5e446fa5a0f8f7ab0986fbcfc0e73cbb360b70ff48d40947a41848ccd57104f888c0758f4d26885f95538ee071be1330a465dbc1f3383da33db4bc2aa9d85ae70f54e2e9378db8292429937f0805838be7a983ba73c07ac23a986af5fe0d2913efcd56de80351e571c3605265aabb9a15ee6583e4236f00a0c87bcfd2ca711354b7c76b0cf964fdd13f50de29a579767fa690a30a83e6af45564116c7a474e106f4fe9360451d3c23bed6095b3abeb488a38637c6512463aa5f65f2a0d89075e7af1082742dfc2aa05b280ae24ac4a00513fff12082eadc358c3deff7c0e3b01cd865a8164bcdcec2f7392707f7f743fdb7108b9f0661e7f73e7dad42904e0ea9a335e287202b241808ff8d1e5c8f17629e496240f248079d12095c3d0973394a052bb42a68f90914f7a5970f00e8b8c1bd844dafe22fa5fef2090413397f73f77f1209969c62054f206422ec660c9e516abf064740f3475600029bae571a27a59b80a6b2472dc0d64cfe2392fccd0c9b2678f2f17f4d8c1be0477c9b216b06fc41d6fd799fafbc4506be7c35865e8eea97477bb1a8a53ed7195435b96f9b11ab8e09128017c538b6d0b163546ac2de24ab058a7e4fdc6ed6b927b2edf904e26142f99c5d43f83bef5dd531412dbdb42385d273ead2d1629827169d50dd12329dba9a19a0e821532ad389f2b5253bcf1851639adf2d95c06cff0ec91332e99e335e2a356ec958b1a5345e4cfae7b1b25e57a77866d453a59587a380f735d90a4edc5bbf33a6dd92e7f4c7bdc10e78032733f7775a4f79d78eacfa357e93c11e4dda8b1bfe24f59f2d554d6005b5fde96a2d07043bceb8ebe965ee31fb583b932f47627547e29ed7f592ed632f62018f63cfb5d67a655aad6e9526991ff48b732adc75a250c530faaf22b58455c6246307a39779044bbd3b58441985d6d244d9cf8a7b136f7a5ca7f3603335b7928fa69a4b2133be297b9f7706ab95fb0f6cea71207434493325d162dd5c5ad45db86d1e2fd3a69651c2936003556716e803002ae509da6f91d7e9c6e43a449504c753367ecee0fb75dd4d47bab555f4fc594196f6542f4c93dac95e0b701bffd028498e9f6f91135aa017acb32783c302e25c3013cc3333cc3333cc3333e20d45aa3ad9143b8434a3249d14d877fe803ffc04e6b71a724654a2989a57f60f87f000002c43d79dede24ad0fa70773072a07669de31f6b36bbbbd68b111f9337bca7f56c92dbe97964dca0ea50328fdca8d8e7b461a19d9bf17d13861a6b4cd860a9e8d4abde5e833175f6ecfab34fdcea3251832fe7525c9c16d1bf5e3630494326348b1d7129759626346c52ac002fa4ebf2f28e793439c3d265c50bad65d451656648fbcbd3a0bd595d4a592c39c89894c1df56ddd9e4b45cd34fc8c07e9928f5527f73c5635045240683475fddea95dafee40ec523988401fdf1a4797b68ddfb0f1f239880e12c5765d439a4d03179be70c6574aa8135ac975e432f1c27d9abd4f4837315ee61883040d8ba564053d7a5c2400834917d41cefb165f0522a7f2e983c8c76a9273f7c865be073cc7e5d332937262d18eac56f7a4e3b7b6d16d0ac8430bd992ab66e1a4cb0807e16e6e142d584f65c2c9633b9c2428d1add322f95a9bf582c387a4cac703653155476fe1b35987bcb12154ea7565ce8117232d59f4ce1d1396cd59ec755d7e650c1440a233d9e648c2e26308902042650b834e8098d8c5a67fdcb5c22d2cb8e1d3c0244070f1d655c80f8f0d513278ce8f0d18049131630614263bf2a6c5bd9b7d64c96b09e1d599f5fdac85e5bc70e15640323132530609204074c90a09fd9495be9397eb28bc592c6e4086838606284491110ca56f3769496c6ec8408aa8eb961524977dd740c1c403c8c144c8690efebf8b964ee8bd45cdc621963228445330902db418af93bd1f3488ff58109100c7a44374b95cd6fcda5c7938c01c4c3b0a860f20375e9d92c743c7f43c7e13b144f61e2032f263de0c1a3c247c9db9919ed4c7670a6cf3361b372b3e84c74b0caac91c97ea467b127392899e000fbce71bf44e89c59d6be468ec90dfc9e515acfca6c28716203577f5452c47e646cf1c562d1420c931ae8ba31a65c63db9c7442037b3fe8ac290d99e2cee2d4d177946be6113aa647882c4a1a10120be4e594d2fee9d388ff62b17020041696c9f849d9dca3c765c7d2e183905758e3dda3f95b6cd0bf0a425c9180905670e2b5669bd9ad8fa59210562cc5bbeba4dba3e6370859c59e8321aa784d93d64a7bce9f7adfb8b1630777710387072c961192205a40212415235c282004159d567f7d2fd99c52750a84eacd4143680a038494a25b9131699759a4120e42488180905124465e7b9dfe66318d2842812c97a9c5337af9cb2f164b08283e7180104f8ce8f0b105ff08b20502423a61e9cb162b3547176a1df9d163840dfe3102c453c009d5ccd3d9a97ff13122060e0fd944fe5aa56c19b5d326a1104d785e9af21ae3a24b9d895b26137a7363b55c191307d19f473f7d6913a54b2cd36bf98828432cf16d6a3e359a6a2e7e0e1cde430b228454a20d1a94ae5a694abd8a126654edf6a7ebde3a9a8499e23a9d58a537c85e12a97a6a66256fb37e692450e9bddad3cfe6eefcc562b1587290a0d1c58d921d3bb6b8e1811b376ee0f03574582c350881c4a227d7747fd4aaee3ec2bc173fca7c7468521d81aa07b155db41d7538df83ca649313a6777d94218a1df2975fa52f48a2b21216411ebcc2566330a1dd4ecf70eb0204411e6d8eeb91ed539fd2611e7c775ef32a1bd571f82885cb4af274f331a7b14720864d059338bd6ea9242b51324c4106d7ac9f971ff0c3fb6c017098e2d4a4afcc75a7c859042a8a1592aa5a387ffcd5d540821d8336dad35658fd8d1c5621921e1d643c820b8ed53efe15d8fda648820d4ba72c3687b92baaa2e420271ec391dc64d069d1b2dba100208a5b4572384d4ce6c8e1b37029083903f98dba995ceed28fdef911ced1f380305217e408b79561d32b7501be211d207a31e992655872b702f1123840fbcd2ba364cf637adec82d27ab0a186af8077702183903d24a3bc755521424ecba420440feb18ea1f37eac336bb582c2bf03270e8f8a1461938708820240fbdc60bf9acfbfd64a30c1c1908c103fbad4e5f010949c81ddad2d6372247d5dc57e301217660dde389cf78527a4e73e1050e2ebc58deec238d369c0c1c6a84d42193a784d2139dd3eb6d00f1c1c34f081d12f332e3aecde35e1e3207c5ca5e9d447bc6bff6620991431acdd4e77e51e6eb098983afb11e7472d9a54a9643838881a30d27e352c26268f1841038a43bbd0691397aa9cf86bc61a9597c7b54323cab6410e2063d3667a1c255692e6d1b54939a43632e3ddae56cc8e56b452bbfbf31993528cdb3479342969669a4863d7ed2e96490eae3711a4c1a5f93b969cbef51101f683068fdda37eb28eb2625f135fc042167b85fc86606f9a53addcb2f257c2109a22166d06b9368e1a95979141a2969019b71a30d27e386163d082903324e5fb58514c23c2303eeadd36ce63f066c47e8f02e74bef4570c8ee67872a549ed36a530f8417e109b85ccb8e283e11cf437dcb8b7ce4ffac2fd31f35f3727b5d07a815122c35506b97dbdea82a5ea3aab669a9031bc83102e987bcecd478df6dbf43252c2255bdc20640b2a2195ac293f3fd3ac19846801d1aff4a9b715919e93464816d637a6fb95bc124ad3178b8587cb20040b6f126ae5eaa033887f81902b2077645dfe5fc828d31a620554ef633add35b7b95daaa02755d11db21e449572a871430c1c66dc50e3061864dc100307175e9881a3032154b8d5d6b9cc42b39657c520640acadd7f696e7a8c7e215258e88a3e71e12963ced9c13fbe704148143811392b65d6e7521a3342a060acdc3e171bebc6f44f487dcc519fda12ea21ba582c23407404bacdb8107b20f207b73bae52d30ca9320f03113f9c7b5cf4acb876c9b70fe9ad5169327c8f4e1b227c385764ec98130281c81e94d155bb6be7d4e5620f88e8e10d2d84af90b24d07791ef6d869756a4d7bff1b1e8e49968b56af5c8d5edd41bb5742cad472fa4e646d381937ecb4e164dc384e10b143d2f364ceaef369ef5f245e62b1e42011a9c39d63941b9ed2c124ea5d9a19a3dc3587650b29cc8348e1f17139e8fa56fb771251af350eeaa0857bf749a5b37a1138a0433e7eb4d18dd2339137f872f251dea3501d64226e505eea90f33e32d7495d44da607c5a5d9e212b1f1e1136ac65fef2b4fd22e3cd2cb20654c5f66e1a1964ceaa0780f00e302c161207028477fc0f113598598e2b572666f3bdd270dc11fd1b54ade9d86088a0a13b17f9a8e3a394538a9c6117aee6b57410efd39ac1bc4137b4d5cad0ae29831b33fa9b328896324f06f5885f8d9a3465f2ee0203913168b23c6fe728c6a3ebc5609c58e1c956a896598b09226170b569dd28fa2e34ea6040040c7b985676dacd5648a516887cc17fb9b1763f4b8e9012f1c23afabb37cdcea94f9540a40bca18fdab9e59de0a2d178e5178aa13ade65ffc3f44b670f22da576f5bcbbd044b4f046d9a2df4b6f261f8964c16d51f125848d06572f225838559aea8ea5847a712f164bc9488b5cc1f0a7a3e6de9f0d3187216285a3589775ef7a0d667f215285db66b547611b5f6e2e870815ccde9e3d5afbb4cd3e057429b1aad589d686cb62c911061937b4a0818814d231747679eaf2316991884421f1511eb3e9a942c844a07046f94c21e48998c79f9092b2573609f1b01b3ac12ccd574ec9c8d39e2618c6658ce14568d0e4919c4182021126e09fddd36c92b2454a9780d4f2bda336f95aecb194b0ebf45a7ffc9d7fb1af259204eddd376aad42c434e2c37ff85022483895dad20fb25c49997504f407f9fafb4d6aab458c808eea2575163fa3c35d84c5637f8cdf3908d9a10811f264f2644ad51d77634486d0860f6a5e8e4e076e94f168388988100cfd31e309ad31c7bd4482b0c7556f722fc48c9972dce0820810767d3a7a974e1b6205447eb06cf5585a7e6cb55f2f16cbc8c872120fecd8c15df040c407fd6729755c652aec3f911ea83b9ca8af0fa54a8c6288f020297257061573329dd0c56259be0206b2c010d9c1a639c712f1aee64fea22a203b3ca60dfba5a7d70ed192239e853b9e91ea585ce411a86080e3c29d6d7b6be336e8881438b2688dc808de23767d039a38cad8bc5b2cec051e225ac63c716767810b1016f426c4d2b957131446a805a99712664ea52d234446880509ff34eb8fc9f5f81249e694186c92cd66a84120d37c2c684b2f883e8e73d7717ab45b150c6dc8948a9d5bbd481b1050e154c60c1c9ee76523284cc9af6e415e84ead516f186132baae484469b9e61e1a5ddead50aa76fd285d7c90ae8a316185ad5b6d7fe91c655b26d1c13fd6c86415cbaf7dff868d67e62d961c6dbc8e1ffe010f4c5471a6ca55a2a2656bd49180e9c00dc3811b6603370c1a37cc19378c19374c191118d142089354389f83da86513248adb760820a94bcf29c5973a7ce7f728abbb76fa36e1db57e9417135378a332d4ca71f541bf654c4ad19a4a215c874f9af763b1a03121459ab48b9a4d311a43341985b1238a6e56be7013e73a2b91310985da46957aa93b0a2ff762b18c90e818e1d12de0d121d0020a1350a06537ab8afb98b6a5804b4a9c471a934f2c4f7eb6d4b6263d86b430f144be51ca49915945bc72d2094de5da9d8da94db7b360c289b59e1655f76d13a6df16f999cc47a3f262b18cf460a2894bc46d181de972e7d3e347daf801048c1b63e0f0c166e0d831c9842135aafede9351396d8209deb4ab17a7df497976b1585aa0e37572896d6dfee7b32e6f695bc298756cce1be3fa785b8943cb0771ae534754bc582caee3871a6a4c28818ca793cbc70b29a733e2243a76a03189c46b938f0df5bed744120b136a52efe8dc174a172f2691d0bfe3cb6bc73545e240783890312c961c6df08f1f5b6c8103c7176c4c20a1067d615294bcc8a42def01c4278fc88536ef1cddd59e9968e0704432626bcba530a593f652c262a449234e7bbd59ea345e9a3513469c7d657489772775ffc562f15142a2e38bc9221ca157b6a6d2b625be34b765a208858e1f1e748c65fab7911c934458dae1f774d2d25811222cb593d93e48a93da72787384af17b31150d22171343e0f5e2aef95fb3e7d5c562c981a3049342a04e9cb6b8ef378d041342983da7b399d5ff5466c48bc920ae4d1dd3b5bfccb71f3511845d7ade9a35d6fcfecb241067fcd352881e5d71099012de518209201a594affad8c519bedcbc822e11d4cf263f207f4736acb584dfbb9bc582c39bc75ec48e38c891f328dd935758f109e42979ef4c17d93c2b48c792963178405ee4517133e98253f835a4df65a9d408298b1c5640fcd7b47a9672ba3b88e165f98e801efd21cbf3d6b89e94a80903010df1164f5e0d181491e50edd2d53b7f55ead3050f06f9eaf444cf06f9c398dcc1d3f791e1272332561998d861f3517ba5941811933af0aa35fe7353688e77b1581431a143f2f7b99d45b534eb47072c164a4ce660d2e0440e66d0a149788ecd5a749338a43994b9c66dde0a0f1c0227146b4bdf4df11d478a8d0f0a281cdda5655d7aaf94a6c502ca27d2a93b4a1d93b0532f22a17842a5638946bd5b514f5a83d209359a8c90b6a655864fe1043266c6f8393eca268e535a334af56e760e31289a586ecc16429a6efb5c5d2c962f289948cf5f9dfc80fcf035daf801a4c49b640b1c3f7c8c329440c1842d93507d6a446b95fe127ab81b9994ab550d5b06144baceb842be12e62c47cac40a904afd43f548d081dafc2028512f8eafdcc2def4faf830265129ba794493bc5c8fd560973d1058a24925a499d637a0c2512e97ac79ef3fcf47abe984181444af74d9c8eca438a94f2085727e5ea1b53af943e1714471c43cee8c86716a03422d919ffcc3f469939bb000962c685c20885afcc3353cd22d46ef7a9959d8ca737e00e06181445a0348892084c8310710c2efde45d2bddeda11c62b3cf53badc632bad1ecb106af796f1daf1946df6b2d2a01462f5a0a7e4857f8c328a108639a9ddc694263bf50244071b83e06575487d23763f6f7c5104e1b69f0edf0e5b69bb1a21e9a1a384a4878e9292336e888103480bbe80012510998e527c4e73ab56b98048869b7da869ee3e1dca1f946ffa328837193f783f287e506e1625a550551f301db6c4c6edd5d77a3ee02384f61cba6b759b243af8d205650facf620549faaa8bc9ca207ce576ed651ad16e23279e0e3e76490fa35f6251eb61797526b74f615a3a6dce1fba044dde855be4ac90e967916f3a0c1a3ad90520755988c521fde5f5de662b18041a1c3bdaada33ae1250e6708b52e6dab3b53cf31050e4b09abaf40d665a283fc5617d1934fa7ef42cad34287058d646fc68174ad32a3b407983aa951042082983661952dcf0e9aca508f17e9b0512c40c34286dc0b459011f50d8806c0d2a366b49f1da8501650d491d3b4b1b911993cc6a7883cef6c974d4fd0aa5012deaff5c8bd3a7eea4a0c1f911a1739cf60cc9535fa643281d11b7198eeaeb5373ea4be52a2e2865b8cd4421031aedfb5beb0625744419c31fe24e6b19b51ef532623874d2b15f8e06b5d1be90801286d385cb6c21dece34010a1832e5ab6450d71221ed203f80a4e1618c8ce480f285dde40a1da15b69d31d0e50bcb05462f5f78655328f4e1b942eb4b625efb2bd42f90707142e20c634e7a84ca7c764942da49dfeebe99fa568011722948ad326953a3f0b8b76faab543216fc24fffa3c26fd2f5b942ba4c4ac4007285650c4ac80092855487bd23a768b5bfdfa1e198901850a27d7b2c5ff867bf5df4551a690ebd45da9377c013212018a14d6b94e6ae1ae999f3ca744c1f51562a2c1b3a89551a0608ba7de24b3c9e61c3e810f5b1ad6c55bcfa438e1b059dd8ef8f0df1b4a1354a183ccccb5b7a7260e5098c0cd7cf41819c4bcc7884159824285d250ba75ffada22861d37acde7857e21444449c2a65cbef0d3d066e705818204f7c5cf8f94d5eac61484720476d4e94da166dc4f6c508c8098c971dda4944bb9d9825284d3c9b8e69f7029e44e043ea7998788fbd4a53584336bd906a53293505b0869bc4cd294ae0e116a106cd7229a6a468dc71e087e8e6cfcfefe03647c6aa532d9cadc721ff4a644a95be96274be1ea4c5dde574b47890f787fc3e55a795e83bc085fc79cb081d5f3b141dac75d6e968afa4d86f941ca8c47427ef0f7fbf66891428383073073f979f57756451a0dc00f724633d6f949b4f45058a0d0cbec275fb4ed4eb7602a506ea0e32ceea52f1179b40a181519f16b52de23f4f8382c82cf6cc209fd47dd80c11595c9feed256a8dad1d70b91587cfa65e4a9df738d1f2e4460a16e523abbf2a86447a505445e814b21f478a9fc1026bb82b38d1eed94ead65acb0b915620a3282d292b544cab45588198f098b943ae9ad27488ac828d9f3676c9b4e631aa8ae735aacdf13dbb8e9a364452819b7eba16a55fcaf185082a2e13dba84f96903b630c444e8116ea45adadbc7f96fe1031456e1af21af56dfcd53a444a91dc5cf39f41bcfcfe2e971177818e121e22a4784eca18d543dd95b7179151a4f2caa3fad08f9bed8b28f2a832aacfdbf9fe9948283ca9510a71ef37db9608281a55afb3cd9e980d2931443ea1cee0c184998dd64203868827360df72374c6d23ae51810e9042a355f7bdc78d599e1841f4d37864c1bfb6dc343641366cef9901ec5ff6da7894b3784144f1fe7af6782b1d1d07de6416610262c29c4df2b0dd1eeda4bb0f1bf663abcd267f28bc5c202114bb827a56bbaae68a9a7129f94b5fa853a2d3d8d94f8844e2f3beb5b3e66894ce29372fcefa414e3bd4a02a1743e88cf2d4124127bb7fa7d96cc7ab265051148a4aa32c6c476cb6eb40b9147f01da79e2d3c6911ad2356263fc6ff9313524e8df0c7a306d9ccf1c47618a1ac0fa38356e2439ebd0885f4f67c427e96c94f116f7afc18dc73e68ee944249b7b3c4bd79cd51611069349c7c3ca6faf7c8837363da971d5517b6908553fff6f1a25a675218eb7320761e6a3b52c11429de3694e97ed294f83f8a4b95627d77416621484311f7ada4a7cd3b481f04f9ed232099da5ba1a10ca4cad6d0a1230478134143866ac011120a180a9006605ce0344b4684351800000005212a403132d3c051c240524bc43000128f9e103f000007cf0e81c00f1121cf81a3d78f0701e1501dca00d1fcdc379500460831b1180006a703a80ac1e3c828c8c0c400034381d40765c4a7864640095599c0e203f2e253b4646065091c5e900b2868e156464640095582ce55ddfeb736ecd9e8bda0962b1f0f01f236be85823abdd4789c55242a203c80fdfa1c3078f1e5d4605169daad142f5c574f304a3f28afc339fb8514278a7c815277529e2ee43c833f1c5621921e94152d28a64ca51e6abcf83d8678415db28b1ab3fe81ff9aa8fca2ad0d142ea17f1fdbf7b8dc1454515e7b33ff5f3c14a2adadd123932ff49ffb2828a93d4d1c44cd9c61959e514a7d3dfb5dfa0a34b79554c714afda5b34c35e8774a71dcf25153996ab54e4048fc079302df9cea2d3dbfd090f18e5118fe1e95ce9c63925168b194f8e83152118521b3a138c86c0514abceeb28c328310df20c2a9f406a6cb92565b7b9b43de109d118e3eb98362a9de8d4f4a64e1b27bc7338b178d7626ca53ea57f0512c48c54d9c423cd56756a6dd971bb582ca6a289a39ed1302555fddde7a1e352b2c60b5e204625139c92763a5346d4cc46051387f6c9d3fcbf4d99bde4588bf9871aaba85cc28f19f1cccea27ede8b1637a858a200954a3c529c085d9fb4d976164b098e0d542881529ecc469768d7db4d4259ed6a5566253bb42b89f57c77ebb42db3ec158954938dd0266d4898f1efb4962e52eff995475cba4b558e8e37b24b8e38c91ba1854c8f333a498c4a2376b54935265193d2c40a238e5a6826691a42ae945716b1cc1fd38689502fa5d00e2a8a7833d68996ff9d955b22d0ac5b34be07716f5505117b3013a7d94e5f8e9a0a954398b579d66afb6eb659c510c71cf2458ce8f8ba329542d84a88dc36a1b3bc926ea04208f4a63e35a34165835e19c4229a7f35e8a02f2a8230e9deb8be5285d0b75602a1a6b6df9195dbf801642b80506dd4ad51a3998e235e2c963f985a32b8bd8c2b7e68ef85c87c8eafeacd4a1f92bb239eb4eaefd457850f879769aee131dd83dc8bca1edef0159523d64747f152d183b5516fb383bbd0f3f2b0cbc98dd13ecee49c482a78e8c44a518f5e5ae7acbbc3eaa6b92557fa776a55eca096426f14de6167dfa25207a35ce9a33e68ad49ba020692810a1df22847b9e8f0ae7f519943db9a414c66f575327ff890834279499dade2adfbd1e3d2249538bc5a6bedc52939f9fee58c2954e0a0d013c257b68e0c255f2c161e3d7e805183ca1b92176f1ab3562d63c778248c8a1bd62efc536c888e514a178bc58b4a1b32712bfb4e63ebcc87fb62a3c286e48b0db17af2657b7ab158d8e8b163075fbae8e2861a384a1649901e5cb8a0b286fb747818d92b83dcd32b6ac8d49ea8abc860b67fa09286c7dee368195e6aad3f153498fa34a879a57458f14616098f2c07f2a3478e1454ced0c6e6fff017a9a36515331844f8687bed39c3d6824a194eff33755f559a79930113da44eb786a44becc187c53912e844b351d9d0b8f0ec122f1344250110323d4a5e8ee6779f772a01286f433b756dab966f347a3020665670cabdb5b9a4e5ee50b081db56f75ddca6c1f342a5ec04de996abafb39bdea384a447176090d146a50bc974d12efe1bbc747e01a3c2855544952d1c357483bc4b9d748c7e54b4906bd3a6b3b6374c771f952cdc39a9ca98b3d8a8842a58488cf9eb6f7bd298f98baa5cc19895686f295ccb945217a858e1b76d6dfb52b4bd262f160b57aab052e7726384b8db525d2c16f7a1838d910a1596b2a64a9e3ef11332369cc42b537895c789d725fe9ba52a5250d4b7ba53a74a67d907a944a14f9da7a4c9866cefa1808cdf9cfdc5864fa97b8259cbbd52aba32c21908a133c2955fed6ecdc4533a3d2846318331d56667ed242234c58bb79588d79e7b58e190307890321a92cc1d7ba4bbb67dd514eaba28475072f792ae4c7e4320b2a495885c7514ad4bbaa7b9170efecc6d79ec93c2b79c9118c339bb773abbb6db947c5080ad19863ae56a4bc0f49a50827916a567de8d73811501d252383e8f0dd108e9721fb9f427cb85a11c24aabfce8edd37a4618044c688edf7ae995bee251018231338af12cdf23831e46e507dd6747a5e2f34da683f4f001efe9f3e43c994cb35d2c9615547ae026bd9b771a3426d1e1c15194b6edf498848c59253a2a3be86fe56b61b3a9e7a9121da89e3c7f4e79a3fd121d3b1c888e0b1b23403c053938676f769421357ebf970a0e1a1d36c36bcef85a760364e547fd95ce067de7ba3415a67a4297824a0dce317c7ad623dfa24283951e7dbab294c95572818e9291efd1e30765167ad4d831ea30294b679d228b54b78e78511e734a7184128b77c3afab2af5e54ae692238d335e408185aa95ccc14dd4a8aa95f20a763dede990f2e54cf402c5152bf5643bdb51f44474054a2bd2da3589e82a194fe65c58f16b592d7faa6f75f435a0ac02d91215a3734a310fc980a20a47ba5ebd9bf12e32ac014a2af2e85a7ece51abd4396a0c0a2a0ed3695eaf7f281935ca295272857bda96e6b944174b1814531c465466a1d456a6c75f504ab1d2afe46f659ecc08b7a090e29c314bf710f28bc562b1e4b85046e1aeded99caa5d2c168b050314519c51af28fdae8804a81472b36830108602614020000600428acd4c12e31008204054381a0a49a5c2597dd70b1400004a4e385e4a302c18228a0502916020108583a14030180ec43018c54214895138ceb536dd5faf58b852735ae16cadb16d7b6f639fb00598ffa0dac94a11f984ca1f07a3324d8ee28a9a374ba3851881694b0108de18c38300b59c2d9bdcb6fdad1908ceed8ddc5e50b8da63f1c76e36003c60a76114173b10b88a603fd44f2349e580041d0e35f8815da47f2822cd511a69527acfa8e11bb9508938e8940e21a9a99e0b42ce79cd00afcad76ddcda3476fd6d55f2a8443495bdb2ba153547b3d68f9813da248b2d2adadf1dba92ff1a676315ec2a94a3489a01cfec4c416197329875f004ac96bf5ba1d28b9ecc378fd5bb3167db898fa03104c8a729f94256edf9039d73fa10e6630910f957b4f8fdd10382d7f11f9400f97a0b9928f2b52e911e2c5005842ac062ce59c8da5121cbb4d28d5daa2e5dda443e6acb16194ff4dedff26b397a0fd48b5ca349a38dc0748d27d3c0c6ac59ccf02a48d84091b383587077264d666c02008db8f337e144480503270f7b67b8bc74a4ea93931df0356b14772864d4c3675e193b2a2deabf716fbae7c515dc89e17aacc005003d54d2ebd74f194e05ed971f0411a29426105bd4f902719877469d3c5d3cada73172a291771a6f9a5c8b27e16e362d74a6ec73d86f79dbab4a3249765ac843ef88204b143300a0488a31340c1552aece6f81cbd09063affbc93a5ef10d6e82fa67f0c79a7dc15389b88e3d25c50152eb2404483603a2ab1d91df6a91f209c3a78260037ca14567c36029a1af804e18e0665a347ce4e12209dbd89b2eab68825625011fdf398606a8c4e98bc19e8edf35684ac171988045e0cbce2d9c51e59172a5bee538f707778b0a478dc1d1bc11f35780fe578eb310ad23f2da9688c87f1b9e6246efd46e63e9868a119cd2976110947c5750d59441e0be557fcf7e0f19c3337af74cf8d91b0b2589cecf9ce8c564b04c81a917b6b64d02cabd1a4cc54cd18f38110ceb21781c3f3f8d2f7096933c81e2b299d49f86c2c2eadf458ee8cfa53d3e6474cb086840d783bcf758bead29e683c0fe49ce841d10078f73c40864590bb51230287e3927dc93bd3503e8da4269a8af2795e39303ec3a848786f6502b8a20246b1c07e5a9f17a86c62a69e6f446e291a46145335dc3b3efcbdf9f9ce7b3bb82a71d0009f78c2580481f282c53008d2774d2a44ba9526fffc3f4bddba8f568e43ac0b1bbe2c7425a78d4206f0a0cbcfbd3073acef5a4198c2e830925bc51f54a60bd65f3f4062107315ca58bc7f7d04269bc9fa4c567747e3d80a9784c69027791efd2a8320e348b5cb330a3f082fd5b0acc6701058b83043926fc213b89449a648844707085d4439f051dd13af2c026566a9d6e0ee939ee954dd114e61b4f5679b24bcedd6b3e31a1f1c17a9c429ff76b73bcb52e7db973b74177010512ce325b77f66e8152fca599aa961693ac480e28a92391cd45f52eebc8ddd44a04d5953bd747df484e9eece7c9c11922a9bea1542f19093051a3579d5bb93bba1a38c25a208b7925578401fd63d57d060bb080c7771e6d9fcbd65bd08d26f37ca0d4af06a9b745049da1b181bae61a22fe3a351eac138cf2e6983b24deee85782406073e955145f8ca35ff15e1c40a35adb5dbd12caf8720cd96f415e07335a8acd68dac49170f349924f77a4b97733f2144f9de23be935e23d7f40544bc51cfadc628b958fd73f570f691f8f7e647191dd37feb734246669e459bad9bbe560e3a4509d5fa77d7db60eba1591e32462a406657df4c69601c34bb3476e86a3560cad8b48562c94acd07bd271caac24240633fedae30c9f8b47e2050db55fb4e4ebe4f4244b55a9fc23ca8e6e8bfc4c6856092f103a0040157869401cdb0e41bba295ef36afbbf72f5181906bec4fa0841ac84e9d2860b2a9f9cccb21585be05a25cb3e616078a9b0b1d65d0aead2cb488462818c28bf39b1f93983551b62962acc8097081354caa3f776639570e3c367a8850fc0d47ae1cb7a8f93d00986187c3c100dd280a2fe95a59bf65ae7f0ff5625a945561455842a506e4bd89227115717d3b5c34b7b8c6de1d4df3d82aace46e33ef16af8c2d740b7531ee27ff766451fa6a98c5ba62579cb009936f0b2797b82440fea54996d2ef204e810f44046b514b511e63b1499e7bdf63f3ac388b7055b146619a86e6fb92802dc43cbc47b3124287842abb2515c534c403d5c534d34d7f4cfcda8dd0ce2993773cb690511c29bd9d6e4e9eef8d163f528f3859913ccbb3f6cebe4021df0715ec0ec672cb62eb13d9d7d065c7856c34763ae7f9912992f9ca9e52d1c074586d95f4708e4d26f9404bf48d1f13e6c9343598c4920296e22c04c30d1b7c8808d48c88c3432988822da605881fed8b1fa7cfb70e5cf0683acdf22f707134bc91eadfc0880c1eb60913a236ec01361ffb8aafa2c418d6e0ac160ee0d065db8149576a908953fcaa3156a6015ecc30a22762311159a19719af48dab1237510d426f27afd56bca4f51619f460a4e5da680eee5ea4daf903b7abb8f0ed9e443604a8aee49545cd6821a15ea3181cf21bf273f633e42b6c74531c3eed8a70d3ba47c802390cec09fbebbb0dc209e5059e7fea0e34862a5aa63d911e4eb6a86e682d4f492b822249760221210dd8eeacedb6b7a6b25a4e62268aa810f706e25ed58905e49bc5853f325187d584298ec84c772a6e3544862a9e829c88be5b8a598aa4e860aa9c49f204ae37c9883f680c1db9de6cb388dfb02ad85816d85a42a13bf151e1255101aa34a6deb5073c01f28f3770dc29612c8dc6d0187c45ac8e712ce568aa6db1ee0bb26888771bce783608061d64e43aafe09cd8bf3281b75abc81d001b9e3a5389393ad5684b8e5f392ac1d30b36914040228f842cfdf81e9b785da8b898faccfb370b8ab604a5bf6c366ecf94430cb7e371274f06ded12ba04a44bd7c505fd50d8be6bd4aebc7ac425ee5c818534e23ba2002de8eafc0627cb48be73baa2fd5cdc60a8b0a34cf81d374f8065b6d9b43b032c2df41edb8bffdf19f05718bf7fcc70d78b51088303bbe13778fc4d89c5b7471bbda50815ba4e64b1c5292ae33005bd41c1b5c2a6b5c75ddca003e31e033de572fda60611e3d43eab6eeed26f3ef3798daf9e92aa8b32f9dc60c268d987e57b91383af1484e769c29608ee706e3b1176a2fa371cd926c98482d1561e67c51aa934641ddc37b1c2ede13c3638921ed4a25ea37792c11e1b37ece975463fe6e7cd03cf09cafa4596c3abcd80329427e5facf40a0feaa58f25f798b392c19761a944446e15be2b97dc17a5b4963ec6817021d1d138ae5f30272790471987cd035842d37cc51466dc0264337e96dd75be1b551d213cb27858361a18b24c0895d3838aeec34bac86b9029691031109c3309c1cfce60a0bef895a1140cee75b9f8f1e2c9e65e06eaba624e6651e5fd8bb7b2c26b7ac6a7b13272b22f9026eeaed28b7dd7cf82c36fc7dba7817ecd665690f15b25edfaa15fccb48ded5e1a5c3c7d8e5ceee832974c8a5a40dc7749934e199981c0b11267d15cf86511c2edbd980eb25cd4277554b68849fca1a2d2f443883f560fbc6574f6d6fa73651c4d16f388d3682c963a2e970af19c6155089f92bebfe530addd2fd5159ef0c96c50f6f9c8109dbcefa6af219f3c26c747e3dbd891965e7655d723b53847554580efbfc667e848c3b7bdafbd6894898d18ab9fcbe49bc5fc6dcb91d04e5a0b2c8e1951cd9e8abea09dda841353fe8ce4cae7156b878790b15f2773e08495d2f2eb07ed9f75104757ea2b73f0e33f7c524d364f28490be89a722620f12c9f326c55c206888b9febb70aa3348699f1a2ed1a7fbb8836161124d8ab67b9c6677cf55d2bceb6232b169e88771adc77a5f4a3943bbb01c0103d59ca47fcfee0b86efcca17cea24618304b13cd3a641ebbe9992d8cfd859a7e73a622cb1f44c83cecf229b594fbd4233a62750b0fb7a824e224161ba91e12cb950c6042444b62b934d90517e16d25c1451251b3d0239d83e1a97333bdb7a4dce815bc0362ea65714dc5d0d0513c6ec63109379c716c8ff01a53800c86dd2118643155260a21662060e99400b1a2ad4779e794264aba9d05109077d8bff35375aa5b7d73703fd30941793eee587bd21e1cdd7f564772d7b5cf7e8d6445c67ccc2462913a6fe2ffed7f67dacf3dd5bb5bc8b7fbfa9bc7ee32f6ebbe0b19f1973c2a45dd2e18b9c087dbbf205996188823abc5814d0866ebc575a25230e2cefbac5c619901b468d140b965062b93e20ec6d7654bc2c68a13fb4e4cd41e002bc1cea92b525e3e4caf5118cf1f3159169aac58c501792afb49d11dee2bba5ef119ed509215ce02e4b6e7e84e95472b75cc5f2134491911ecfec72560fcd722b272301147dfeec871924ff9a21a855a894b18929622c1e962b48029db75736716f2749ad5f6f974ce8e2c08766f4392264d251744dca73bdffc689d31caee6b60bf7d46ca1eb43707ef007f395754a362f68c574e2ed812e7271240d9980aa883e7d27ed1284e1249fc45ddaacf5822d8ae523806df3383a9548a2a61d4b36ee0ece8a526cbaec03185366e15bd0c9620f5de53db02281c4f5baccc941eabde9d2cbfdec996c0f1f5a9342450f16b10f084fbb8306890c419482e0de92062a74d12f8fec1b9d4f2a42695aad005b808b348a0ab25b4cb435b90b8569d7898a4ac74f11307006aa5ea915bdd5634a5212aa88331c55c9ac811c73a28d5310671765e930bd36b81770ae5a92f95683c920f2d0a1f7de5716784636a2b898e1954806801cd15658408e4b3dffef48d0c072f4e6b4d74e82c5535b2f2396a5c8dc050ebe5242f6151dd98a014471858e3da2ed3c01af97503a1ea7c0dbcbfb51993bbe8119992c099e946fd1b0965d3a60089ebc36edc3fa6eac2e18e04c55cd68f5dcaf54234d4fef2f35d3492aa960f97b800dc1c3a2dafe123523e8532e384a2187eccb2c2fb522d670cacb69090dc0fbd87202066cc4a595d56ce4f221306e431805f5c7ef028bf3f71dbd1310e85d153854474bb3b55004dca617f633ecd6f95242b094b0b17b2df8bca5dbd3ddfd98d70b6504ba4d95e7998a297c87579e894b44af489f76d4e23c4898a1e2677967c5fd598248a72b8a8790311146721294d9bf67afcfc5d57b8daae26c639baa23599c6faf91426c9145a429c0f90cdb6914a5996b4adb0fdc23a67a36e1b3a12fa4a1cffe6178319736e3b291142a5f839f157f975391d628a283e18caa46439281bc32a75f0f712b905d3171c8d22903eb788db4a1953ae9bc4605c9334a55179d644db2b74b5990ac8d95990b0cc08a01a6445cd596fd5f3f3ca00d485e3a6dd5636aab939c9cdad4f42af8e8ea49a8583de15941caf6732b8de105c61d3930d3dc356a1092b45e0d549a46cd9190acf373ede5d64de2033b50877d3f31c3cb339d171b218722c28940bc00a208fe3ee3ed37b1d01e1015192e5706803c58b9d631b95896c2f0f2b093c4a87c7b271a84f9b04fa17aa3aac4446ecc3c1db681c31ad9630ddf679c1e86a504d8fcf2caa6ee6f95f4152e667d8371c4c8793323ba01b8e1f2cf221363ee01b4227d1761fa6fdc15b8c6001d58582971c2f4a52e94e76b54b11ebd10725e1b8400a3fee858c1f59b3b1f6f507c8a0cc30dc0036ea204758992bbe615b681bc89fc95a0ed7470296651433f41be3cee936ff244c03f8b95acef6c726fe55c25af377d78ce6ad5a7f02e259fe87e4fa07cf4f6d19dae3d84b8df97b878c00f95d24501780c8906ac84f74de639ef91dd0a36870d2e203bc6ccb9158cd66b20a915009f2e41d697477089116252078ea555a29b4e0a021f5b88b966f531292d8f7ecbe7d2776391eabe5909f44c4d805752d9c228bc4e1944672d1e897bef9eb083e616e2ac7d58050a6cf3a0b268248b3b987500de16d36eecc358a4e3790351cf86b49ddfba28cdae5ba5562b4e60debc6def32b82e9b9e1f701d77461f9d2a7ee3f4b02741ec87d91de7c47451b5d245ac7472064e7c615c021217fc58dc89cff29c267b299f50542c1d45edc895583115033d4cb36de1ff75e5b8762cbb6f185f4a84d31e1c1e946030c1f763f4962cf4e4f01c536102b52cd376f8aa6c377ee79286dfb211db0cd25945933abc7aa08d48593a6f3a20b2c14dfba0b9bcf7a3e6afae6550559d981660326bd64dc0a2bb6ea764980c9825687b4f540085eb2c8d3cd544954e4440083a265309464b176fd6bebd4fd07ac119b3740e4ea2d4410c5fda8bbb1c1c2b4eebd0e7102ee2039d6e66dbb51df627cc1d302d126de7060a1be9a5fbb28aed41a7df3fe694930b486e1ff7d205a1a354e3d7f78046dec2ed73a4698753bbe5021030bf2fc3bf3478bb9056a413d5802883a7d4ce897fdb0c8b80a6abe2939296e7ebecd7089cfb8c374c92b072af9480e26dbd6092aad136bc5e020a0e9f9b6034144a9c058f24f8430e274231bf18321725162fa14eb0bf7e93c08aced61f8b890618c5fcacfec41a23fa20a05deecbf798438f747e221a0c82c0af35a179a635b44fac7625eb78972591430ff3fb77264c40c3038ee7b33c9b5a90e8c171b872e44fce5fe43d549fa973bf4a90917cfa2f4f238cc80ef37889253966d7c67de1fa7947aa3c4f87b96eb499b76014eed12b69c64fd35eed8f1d58f7591a8de0fabb7b13ea3ef99485f5202ce1ccd243893b99cd8be577d5d04d7b25a7572ce2284e89df3400ffb2f677d485de4b16ddc5f91ccdf03fc2d3f808d90fa9e0b207d9eac1b03895ca6b19bbb286561a3d83efe32fb2a031674e696e96a96ebadd09aa70ad689d31316396d632349586f281e9a495a6d219660128dde84a466174ea4e82dea3cf047374de568d4539d6d135f398bbb07cd350d4337eca82f684e4c35b918984f9f5e1d09aaaf0d4c9955d8a22afa077a9858e1f1cf210bfab3d27d068e1cce2aac12812470a9153fcc7bc610aee9abb563400cd7b33e41f2474cf369e2e11e7fb17775ae342a408c323aeff9dfd811a67f5828f7a70ca41346989e41473b2f673c6e2147826988d85a1d13b8742d88501685c6c2250433d17d2e6aef018ee0add948f4164b7d00de3274519392b4a338eaa1023510a19e55030378357a20ac0c8a548cdc5c020fcf5f871696f59042b3b99f78db413f107a8b28f30ffa572e9951073186829146e126e84f9c6305250dd432b8d0687d2fbb2f88905a25ae42cc82534df8f0cc77d4186960891bd304753036cc807cab1b590dd0f2d53856894f5a04e40b559f0edef51e54f1c127646c2ecf40af3573dcb88934c398a7583b5967316acb2a97ed8439ee8232cdd83b29fe27b5392c357a8cd182e55061a32bbcac8ab053e77e53c2c95f54c73b59418400e25004b3d4e2ca3aeb481f058883014b0b6a54ee15efaa9a842bcb1f3c20464951ef740a66f4c24d936febe86c4bce8eb02cc8a6dc6294fdf3a70eeca07444f664624fcfcf21c2720f782f8eb28dd380f3ce3e21ad55fb481a90c89efd971625de3ef316d23108a31fa6d1ad39ce9112f35a9ba987154b8655868d5b6f8c9cf47a3bf8601848bb6d36177316c0ce24035218fcdc9a0be4d80f104bb0010ceffc11e40c47bfc91059b351b8da61ed6227991ba58f2c1de984b0f769c7cfac0bda63291a44fe0ebe48ebc5cd7ac13657155137f6eae1c436d0d3c20c041ac1a0739abb75e1ea3e083f9424125e0272a0d0985dbd911b8ce64f4049ba38dc1377b08a8fec9c2289fa6bf0f92cfc02e606f9f773920879cf90958d50f0b268f6596539cd9b0175d3921479a93e37441f4b68d0081e78e0498340e0c8f0c6696859390d68535c70820f8347d1cd6b16b2966924c7ff8c0723220b1e170aaa5d7a1c05f9b9113f51bb43efd58c7338e68769ad8274f42f9d8cf51f2769a0f9f29906f8e8aa950a33912b8581b0a980cc1dad06b845d9a3528e3966dafbcba31e0de75c53ae81a9303affefef93113f6c69fc426282b080a12a6d32634077de0411dde4afd067df5e33c3594754f29273facd055e1e220a5d44cc715eacddef74f54f7cb18b9d81eae8bfeadd6ad1177bb2e8cbaef707de88af3ba86ecc01d1acd384576885e0d2daf2be5daecc6a3efa15aad504d000d5a73d9590a533bddd4ff1105bfa7a77a3c26eeee65d37ba2564033690c536dbd9006d25438b07df3000fbc60ce26865f4df84421132a8275a86cb30c7bc81d2b1630fbb60eae3c261d458fbd93e5c2f1b14d6bb2f6fa4e5153431dcef5f60717fcad7ff418bbcf5601", + "0x57f8dc2f5ab09467896f47300f0424385e0621c4869aa60c02be9adcc98a0d1d": "0x1050673d59020488a4ffc9d8c6de3062a65977046e6990915617f85fef6d349730fe8102dbc244e7ea2babd9f53236d67403b046154370da5c3ea99def0bd0747a38144b5398e5d0da5ec936a3af23f5a96e782f676ab19d45f29075ee92eca76a3253947640e309120ae70fa458dcacb915e2ddd78f930f52bd3679ec63fc4415", + "0x26aa394eea5630e07c48ae0c9558cef7b99d880ec681799c0cf30e8886371da9f94d70db43676a76269071bc1fab024efe8102dbc244e7ea2babd9f53236d67403b046154370da5c3ea99def0bd0747a": "0x0000000000000000010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "0xbd2a529379475088d3e29a918cd47872878d434d6125b40443fe11fd292d13a4": "0x03000000", + "0xcec5070d609dd3497f72bde07fc96ba04c014e6bf8b8c2c011e7290b85696bb3b2f278bf7750703750673d59020488a4ffc9d8c6de3062a65977046e6990915617f85fef6d349730": "0x50673d59020488a4ffc9d8c6de3062a65977046e6990915617f85fef6d349730", + "0xcec5070d609dd3497f72bde07fc96ba0726380404683fc89e8233450c8aa19506f114d556b001da96175726180fe8102dbc244e7ea2babd9f53236d67403b046154370da5c3ea99def0bd0747a": "0xfe8102dbc244e7ea2babd9f53236d67403b046154370da5c3ea99def0bd0747a", + "0x0d715f2646c8f85767b5d2764bb27826878d434d6125b40443fe11fd292d13a4": "0x00000100", + "0xcec5070d609dd3497f72bde07fc96ba088dcde934c658227ee1dfafcd6e16903": "0x1050673d59020488a4ffc9d8c6de3062a65977046e6990915617f85fef6d349730fe8102dbc244e7ea2babd9f53236d67403b046154370da5c3ea99def0bd0747a38144b5398e5d0da5ec936a3af23f5a96e782f676ab19d45f29075ee92eca76a3253947640e309120ae70fa458dcacb915e2ddd78f930f52bd3679ec63fc4415", + "0x682a59d51ab9e48a8c8cc418ff9708d2878d434d6125b40443fe11fd292d13a4": "0x03000000", + "0xc2261276cc9d1f8598ea4b6a74b15c2f57c875e4cff74148e4628f264b974c80": "0x00000000000000000000000000000000", + "0x15464cac3378d46f113cd5b7a4d71c84476f594316a7dfe49c1f352d95abdaf1": "0x00000000", + "0x26aa394eea5630e07c48ae0c9558cef7b99d880ec681799c0cf30e8886371da9b063988c4aca94685cfd2b8b8ca2fdac38144b5398e5d0da5ec936a3af23f5a96e782f676ab19d45f29075ee92eca76a": "0x0000000000000000010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "0x79e2fe5d327165001f8232643023ed8b878d434d6125b40443fe11fd292d13a4": "0x00000100", + "0xe38f185207498abb5c213d0fb059b3d8878d434d6125b40443fe11fd292d13a4": "0x00000100", + "0x15464cac3378d46f113cd5b7a4d71c845579297f4dfb9609e7e4c2ebab9ce40a": "0x1050673d59020488a4ffc9d8c6de3062a65977046e6990915617f85fef6d349730fe8102dbc244e7ea2babd9f53236d67403b046154370da5c3ea99def0bd0747a38144b5398e5d0da5ec936a3af23f5a96e782f676ab19d45f29075ee92eca76a3253947640e309120ae70fa458dcacb915e2ddd78f930f52bd3679ec63fc4415", + "0xf0c365c3cf59d671eb72da0e7a4113c4878d434d6125b40443fe11fd292d13a4": "0x03000000", + "0x7474449cca95dc5d0c00e71735a6d17d878d434d6125b40443fe11fd292d13a4": "0x03000000", + "0xcec5070d609dd3497f72bde07fc96ba04c014e6bf8b8c2c011e7290b85696bb36d5c455f52f81fe03253947640e309120ae70fa458dcacb915e2ddd78f930f52bd3679ec63fc4415": "0x3253947640e309120ae70fa458dcacb915e2ddd78f930f52bd3679ec63fc4415", + "0x26aa394eea5630e07c48ae0c9558cef7a7fd6c28836b9a28522dc924110cf439": "0x01", + "0x3f1467a096bcd71a5b6a0c8155e20810878d434d6125b40443fe11fd292d13a4": "0x03000000" + }, + "childrenDefault": {} + } + } +} diff --git a/cumulus/parachains/chain-specs/asset-hub-kusama.json b/cumulus/parachains/chain-specs/asset-hub-kusama.json new file mode 100644 index 000000000000..e50858795623 --- /dev/null +++ b/cumulus/parachains/chain-specs/asset-hub-kusama.json @@ -0,0 +1,60 @@ +{ + "name": "Kusama Asset Hub", + "id": "asset-hub-kusama", + "chainType": "Live", + "bootNodes": [ + "/ip4/34.77.217.152/tcp/30334/p2p/12D3KooWF63ZxKtZMYs5247WQA8fcTiGJb2osXykc31cmjwNLwem", + "/ip4/34.77.119.77/tcp/30334/p2p/12D3KooWGowDwrXAh9cxkbPHPHuwMouFHrMcJhCVXcFS2B8vc5Ry", + "/dns/kusama-asset-hub-connect-0.polkadot.io/tcp/30334/p2p/12D3KooWMzvdGcUXxacLdMQzRVrsP1mJrZHcrz8LtGbhLzve84Qx", + "/dns/kusama-asset-hub-connect-0.polkadot.io/tcp/443/wss/p2p/12D3KooWMzvdGcUXxacLdMQzRVrsP1mJrZHcrz8LtGbhLzve84Qx", + "/dns/kusama-asset-hub-connect-1.polkadot.io/tcp/30334/p2p/12D3KooWQmGf5z3DU1kKcZoLzMNgdbP31ybjuwxS1VGLKMUjq5ez", + "/dns/kusama-asset-hub-connect-1.polkadot.io/tcp/443/wss/p2p/12D3KooWQmGf5z3DU1kKcZoLzMNgdbP31ybjuwxS1VGLKMUjq5ez", + "/dns/kusama-asset-hub-connect-2.polkadot.io/tcp/30334/p2p/12D3KooWLm6iHcmA3YD4xn2zfbm4KLF5KSUqJJAnmt2UGr9o2PgB", + "/dns/kusama-asset-hub-connect-2.polkadot.io/tcp/443/wss/p2p/12D3KooWLm6iHcmA3YD4xn2zfbm4KLF5KSUqJJAnmt2UGr9o2PgB", + "/dns/kusama-asset-hub-connect-3.polkadot.io/tcp/30334/p2p/12D3KooWD8Bma5qPbq7N5qdED3Xy6GXHfvfk86TL8aVTQKxmWkHG", + "/dns/kusama-asset-hub-connect-3.polkadot.io/tcp/443/wss/p2p/12D3KooWD8Bma5qPbq7N5qdED3Xy6GXHfvfk86TL8aVTQKxmWkHG", + "/dns/boot.stake.plus/tcp/34333/p2p/12D3KooWAzSSZ7jLqMw1WPomYEKCYANQaKemXQ8BKoFvNEvfmdqR", + "/dns/boot.stake.plus/tcp/34334/wss/p2p/12D3KooWAzSSZ7jLqMw1WPomYEKCYANQaKemXQ8BKoFvNEvfmdqR", + "/dns/boot.metaspan.io/tcp/26052/p2p/12D3KooW9z9hKqe3mqYAp5UJMhZiCqhkTHyiR43fegnGmTJ3JAba", + "/dns/boot.metaspan.io/tcp/26056/wss/p2p/12D3KooW9z9hKqe3mqYAp5UJMhZiCqhkTHyiR43fegnGmTJ3JAba", + "/dns/boot-cr.gatotech.network/tcp/33210/p2p/12D3KooWRMUYeWMPkadDG8baX9j1e95fspfp8MhPGym5BQza7Fm5", + "/dns/boot-cr.gatotech.network/tcp/35210/wss/p2p/12D3KooWRMUYeWMPkadDG8baX9j1e95fspfp8MhPGym5BQza7Fm5", + "/dns/statemine-bootnode.turboflakes.io/tcp/30320/p2p/12D3KooWN2Qqvp5wWgjbBMpbqhKgvSibSHfomP5VWVD9VCn3VrV4", + "/dns/statemine-bootnode.turboflakes.io/tcp/30420/wss/p2p/12D3KooWN2Qqvp5wWgjbBMpbqhKgvSibSHfomP5VWVD9VCn3VrV4", + "/dns/boot-node.helikon.io/tcp/10210/p2p/12D3KooWFXRQce3aMgZMn5SxvHtYH4PsR63TZLf8LrnBsEVTyzdr", + "/dns/boot-node.helikon.io/tcp/10212/wss/p2p/12D3KooWFXRQce3aMgZMn5SxvHtYH4PsR63TZLf8LrnBsEVTyzdr", + "/dns/statemine.bootnode.amforc.com/tcp/30336/p2p/12D3KooWHmSyrBWsc6fdpq8HtCFWasmLVLYGKWA2a78m4xAHKyBq", + "/dns/statemine.bootnode.amforc.com/tcp/30333/wss/p2p/12D3KooWHmSyrBWsc6fdpq8HtCFWasmLVLYGKWA2a78m4xAHKyBq", + "/dns/statemine-boot-ng.dwellir.com/tcp/30343/p2p/12D3KooWQNJKBaNfW6Nn7HZDi5pSSEFmHL2Qz7chr9RksQUDR1Wk", + "/dns/statemine-boot-ng.dwellir.com/tcp/443/wss/p2p/12D3KooWQNJKBaNfW6Nn7HZDi5pSSEFmHL2Qz7chr9RksQUDR1Wk" + ], + "telemetryEndpoints": null, + "protocolId": null, + "properties": { + "ss58Format": 2, + "tokenDecimals": 12, + "tokenSymbol": "KSM" + }, + "relay_chain": "kusama", + "para_id": 1000, + "consensusEngine": null, + "genesis": { + "raw": { + "top": { + "0x26aa394eea5630e07c48ae0c9558cef7f9cce9c888469bb1a0dceaa129672ef8": "0x08147368656c6c", + "0x26aa394eea5630e07c48ae0c9558cef78a42f33323cb5ced3b44dd825fda9fcc": "0x4545454545454545454545454545454545454545454545454545454545454545", + "0x26aa394eea5630e07c48ae0c9558cef7878d434d6125b40443fe11fd292d13a4": "0x03000000", + "0x26aa394eea5630e07c48ae0c9558cef7a44704b568d21667356a5a050c118746b4def25cfda6ef3a00000000": "0x4545454545454545454545454545454545454545454545454545454545454545", + "0x26aa394eea5630e07c48ae0c9558cef75684a022a34dd8bfa2baaf44f172b710": "0x01", + "0x0d715f2646c8f85767b5d2764bb2782604a74d81251e398fd8a0a4d55023bb3f": "0xe8030000", + "0x3a636f6465": "0x0061736d01000000018e022a60037f7f7f017f60027f7f017f60017f0060047f7f7f7f0060037f7f7f0060027f7f0060017f017f60057f7f7f7f7f0060047f7f7f7f017f60017f017e6000017f60037f7e7f017f60027f7f017e60000060027e7e0060027e7e017f60027e7e017e60047e7e7e7f017e60017e017e60037e7e7e0060017e017f60017e0060037e7e7f017e6000017e60037f7e7e0060027e7f017f60057f7f7f7f7f017f60067f7f7f7f7f7f0060037e7f7f0060087f7f7f7f7f7f7f7f0060047e7f7f7f0060047f7f7f7e0060037f7f7e0060057f7f7e7f7f0060037f7f7f017e60057f7f7f7f7e0060047f7f7e7e0060057f7f7f7e7e0060027f7e0060037f7e7e017f60047f7e7e7f0060057f7e7e7e7e0002980d2903656e76066d656d6f727902001103656e761f6578745f6c6f6767696e675f6d61785f6c6576656c5f76657273696f6e5f31000a03656e76236578745f63727970746f5f656432353531395f7665726966795f76657273696f6e5f31000b03656e76286578745f63727970746f5f66696e6973685f62617463685f7665726966795f76657273696f6e5f31000a03656e76376578745f63727970746f5f736563703235366b315f65636473615f7265636f7665725f636f6d707265737365645f76657273696f6e5f31000c03656e76236578745f63727970746f5f737232353531395f7665726966795f76657273696f6e5f32000b03656e76276578745f63727970746f5f73746172745f62617463685f7665726966795f76657273696f6e5f31000d03656e76296578745f64656661756c745f6368696c645f73746f726167655f636c6561725f76657273696f6e5f31000e03656e76306578745f64656661756c745f6368696c645f73746f726167655f636c6561725f7072656669785f76657273696f6e5f31000e03656e762a6578745f64656661756c745f6368696c645f73746f726167655f6578697374735f76657273696f6e5f31000f03656e76276578745f64656661756c745f6368696c645f73746f726167655f6765745f76657273696f6e5f31001003656e762c6578745f64656661756c745f6368696c645f73746f726167655f6e6578745f6b65795f76657273696f6e5f31001003656e76286578745f64656661756c745f6368696c645f73746f726167655f726561645f76657273696f6e5f31001103656e76286578745f64656661756c745f6368696c645f73746f726167655f726f6f745f76657273696f6e5f31001203656e76276578745f64656661756c745f6368696c645f73746f726167655f7365745f76657273696f6e5f31001303656e76306578745f64656661756c745f6368696c645f73746f726167655f73746f726167655f6b696c6c5f76657273696f6e5f33001003656e76206578745f68617368696e675f626c616b65325f3235365f76657273696f6e5f31001403656e761e6578745f68617368696e675f74776f785f3132385f76657273696f6e5f31001403656e761d6578745f68617368696e675f74776f785f36345f76657273696f6e5f31001403656e761c6578745f616c6c6f6361746f725f667265655f76657273696f6e5f31000203656e761e6578745f616c6c6f6361746f725f6d616c6c6f635f76657273696f6e5f31000603656e762a6578745f747269655f626c616b65325f3235365f6f7264657265645f726f6f745f76657273696f6e5f31001403656e761c6578745f6d6973635f7072696e745f6865785f76657273696f6e5f31001503656e761d6578745f6d6973635f7072696e745f757466385f76657273696f6e5f31001503656e76226578745f6d6973635f72756e74696d655f76657273696f6e5f76657273696f6e5f31001203656e761c6578745f73746f726167655f617070656e645f76657273696f6e5f31000e03656e76226578745f73746f726167655f6368616e6765735f726f6f745f76657273696f6e5f31001203656e761b6578745f73746f726167655f636c6561725f76657273696f6e5f31001503656e76226578745f73746f726167655f636c6561725f7072656669785f76657273696f6e5f31001503656e76286578745f73746f726167655f636f6d6d69745f7472616e73616374696f6e5f76657273696f6e5f31000d03656e761c6578745f73746f726167655f6578697374735f76657273696f6e5f31001403656e76196578745f73746f726167655f6765745f76657273696f6e5f31001203656e761e6578745f73746f726167655f6e6578745f6b65795f76657273696f6e5f31001203656e761a6578745f73746f726167655f726561645f76657273696f6e5f31001603656e762a6578745f73746f726167655f726f6c6c6261636b5f7472616e73616374696f6e5f76657273696f6e5f31000d03656e761a6578745f73746f726167655f726f6f745f76657273696f6e5f31001703656e76196578745f73746f726167655f7365745f76657273696f6e5f31000e03656e76276578745f73746f726167655f73746172745f7472616e73616374696f6e5f76657273696f6e5f31000d03656e76196578745f6c6f6767696e675f6c6f675f76657273696f6e5f31001803656e76226578745f6f6666636861696e5f696e6465785f636c6561725f76657273696f6e5f31001503656e76206578745f6f6666636861696e5f696e6465785f7365745f76657273696f6e5f31000e03e404e2040d0d0d0d0d040406020500040700010105010501190202091a080400070101010401041b010101010401001a0101000101001c040101010300030405040405010703070502010105031b0304010502050404040d0d0d071d1b030708030407030505050403050505010101040405020405050205020505040205020405050405090502040105050a0202020103050503050305080d0d02020303030000070303040404050505020504030301000002051e03050202020101010504020404020505050505050505050505010502050501010108080804040504050405020404050404030c05040505051f050205020401040202050505050505050505050505050505050505050503050502050305050502050702040420202104040507040303030505050505050105050501010101010102052201050d0405010703050300030505050307000705050004040504031b03050d07040403031b030405010702030807040307020d040502040506060606070203020d030c01050c0505020c020c05040c05030c0d020c0502050c0c0c0305040c0c0c0505050505050505050502020204050205040c050505030203020505022305020205010404030403050205050505040405052405012503042404020202050105030501150505050202020505050505052405020203000203040501070403050505050505060d0a0505040104221b0405070403070703050404040404040501010502010501010102262603030807071d041b0701010107040405050d0104041b0d02030d05030105000104030505050403050505030401010101010105050603050403050227282900000000280407017001c601c6010619037f01418080c0000b7f0041ecaec2000b7f0041ecaec2000b07ec03110c436f72655f76657273696f6e009e0312436f72655f657865637574655f626c6f636b00a10315436f72655f696e697469616c697a655f626c6f636b00a503114d657461646174615f6d6574616461746100a7031c426c6f636b4275696c6465725f6170706c795f65787472696e73696300aa031b426c6f636b4275696c6465725f66696e616c697a655f626c6f636b00ad0320426c6f636b4275696c6465725f696e686572656e745f65787472696e7369637300b0031c426c6f636b4275696c6465725f636865636b5f696e686572656e747300b4032b5461676765645472616e73616374696f6e51756575655f76616c69646174655f7472616e73616374696f6e00b503214f6666636861696e576f726b65724170695f6f6666636861696e5f776f726b657200b6031f53657373696f6e4b6579735f6465636f64655f73657373696f6e5f6b65797300ba032153657373696f6e4b6579735f67656e65726174655f73657373696f6e5f6b65797300bb032b436f6c6c656374436f6c6c6174696f6e496e666f5f636f6c6c6563745f636f6c6c6174696f6e5f696e666f00bc030e76616c69646174655f626c6f636b00cf03195f5f696e6469726563745f66756e6374696f6e5f7461626c6501000a5f5f646174615f656e6403010b5f5f686561705f62617365030209e802010041010bc5013b394c45d10446474dac016dd702c1049f03a704f701ff037172737475767778797a7b7c7d7e7f80018101820183018401850186018701880151d2043e3536375d3f5254555657585c5ec4044e4f6ec201c40198049a0499049b049c04bf019404d501c001c301c501c701c901cc01cd01d201d401e001de01df0185048404db0186048f049a029902dc01c9038402c803cc03dd01e504f801f9019f02a302a802a602a902a002fb03c204f804f704f504a202bf04a502aa02a102a702a4028c048b048a048904880487049304d40289039d03e502fb02ec02c102c602c502c802f1028803f6028c038503df028103c2028703e802fc02f2028b039103960394038f03980399039b03f9028d03ef02f002dd02be02c002bf02d802d502d602bb04bc04bd04be04c304d404d504d604d704d804d904da04db04dc04dd04de04df04e004c704c804c904ca04cb04cc04cd04ce04cf04d004e104e204e304e404e6040a978c29e20405001029000b0500102b000b05001028000b1700410141b8fbc100410741bffbc100412210d30400000b110041d099c2004111418080c000102d000b4701017f230041206b22032400200341146a4100360200200341bc8ec200360210200342013702042003200136021c200320003602182003200341186a36020020032002103a000ba90101027f4100210302400240200141004e0d00410121010c010b0240024002400240024002400240200228020022030d0020010d010c050b200228020422040d012001450d040b2001102f22020d010c020b2001102f2202450d012002200320041085051a200310300b200121030c020b2000200136020441012103410121010c020b41012102410021030b20002002360204410021010b20002001360200200041086a20033602000b0600200010130b0600200010120be00201067f230041206b2202240020012802002103024002402001280204220441037422050d00410021060c010b200341046a2107410021060340200728020020066a2106200741086a2107200541786a22050d000b0b0240024002400240024002400240200141146a2802000d00200621070c010b2004450d02410021054101210402402006410f4b0d00200341046a280200450d020b200620066a22072006490d010b2007417f4c0d02024020070d0041002105410121040c010b200721052007102f2204450d030b20004100360208200020043602002000200536020420022000360204200241086a41106a200141106a290200370300200241086a41086a200141086a29020037030020022001290200370308200241046a41bc80c000200241086a10320d03200241206a24000f0b4100410041ac80c0001033000b102c000b102a000b41d480c0004133200241086a418881c000419881c0001034000bcc0501097f230041306b22032400200341246a2001360200200341033a002820034280808080800437030820032000360220410021042003410036021820034100360210024002400240024020022802082205450d0020022802002106200228020422072002410c6a2802002208200820074b1b2209450d01200020062802002006280204200128020c1100000d02200641086a21002002280210210a20092108034020032005411c6a2d00003a00282003200541046a290200422089370308200541186a28020021024100210441002101024002400240200541146a2802000e03010002010b2002410374210b41002101200a200b6a220b2802044101470d01200b28020028020021020b410121010b2003200236021420032001360210200541106a28020021020240024002402005410c6a2802000e03010002010b20024103742101200a20016a22012802044101470d01200128020028020021020b410121040b2003200236021c20032004360218200a20052802004103746a2202280200200341086a20022802041101000d0302402008417f6a22080d00200921040c030b200541206a2105200041046a210220002802002101200041086a2100200328022020012002280200200328022428020c110000450d000c030b0b2002280200210620022802042207200241146a2802002205200520074b1b2208450d0020022802102104200020062802002006280204200128020c1100000d0141002105200821020340200420056a2200280200200341086a200041046a2802001101000d0202402002417f6a22020d00200821040c020b200620056a2100200541086a21052003280220200041086a2802002000410c6a280200200328022428020c110000450d000c020b0b0240200720044d0d002003280220200620044103746a22052802002005280204200328022428020c1100000d010b410021050c010b410121050b200341306a240020050b6c01017f230041306b2203240020032001360204200320003602002003411c6a41023602002003412c6a41023602002003420237020c2003418083c000360208200341023602242003200341206a360218200320033602282003200341046a360220200341086a2002103a000b7e01017f230041c0006b220524002005200136020c2005200036020820052003360214200520023602102005412c6a41023602002005413c6a41033602002005420237021c200541b48fc200360218200541043602342005200541306a3602282005200541106a3602382005200541086a360230200541186a2004103a000b8d0201047f230041206b22032400024002402000280200220041046a2802002204200041086a28020022056b2002490d00200028020021040c010b0240200520026a22062005490d00200441017422052006200520064b1b22054108200541084b1b21050240024020040d00200341003602100c010b200341106a41086a410136020020032004360214200320002802003602100b20032005200341106a102e200341086a2802002105024020032802004101460d00200020032802042204360200200041046a2005360200200041086a28020021050c020b2005450d00102a000b102c000b200420056a200120021085051a200041086a2200200028020020026a360200200341206a240041000bbf0501047f230041306b2202240020002802002100024002400240024002400240024002402001418001490d002002410036020c2001418010490d0102402001418080044f0d0020022001413f71418001723a000e20022001410c7641e001723a000c20022001410676413f71418001723a000d410321010c040b20022001413f71418001723a000f2002200141127641f001723a000c20022001410676413f71418001723a000e20022001410c76413f71418001723a000d410421010c030b024020002802082203200041046a280200460d00200028020021040c020b200341016a22042003490d04200341017422052004200520044b1b22044108200441084b1b21040240024020030d00200241003602200c010b200241206a41086a410136020020022003360224200220002802003602200b200241106a2004200241206a102e200241186a2802002103024020022802104101460d00200020022802142204360200200041046a2003360200200028020821030c020b20030d030c040b20022001413f71418001723a000d2002200141067641c001723a000c410221010c010b200420036a20013a00002000200028020841016a3602080c040b0240200041046a2802002204200041086a28020022036b2001490d00200028020021040c030b200320016a22052003490d01200441017422032005200320054b1b22034108200341084b1b21030240024020040d00200241003602200c010b200241206a41086a410136020020022004360224200220002802003602200b200241106a2003200241206a102e200241106a41086a2802002103024020022802104101460d00200020022802142204360200200041046a2003360200200041086a28020021030c030b2003450d010b102a000b102c000b200420036a2002410c6a20011085051a200041086a2200200028020020016a3602000b200241306a240041000b6301017f230041206b2202240020022000280200360204200241086a41106a200141106a290200370300200241086a41086a200141086a29020037030020022001290200370308200241046a41bc80c000200241086a10322101200241206a240020010b6f01017f230041306b2202240020022001360204200220003602002002411c6a41023602002002412c6a41023602002002420337020c200241c082c000360208200241023602242002200241206a3602182002200241046a36022820022002360220200241086a41d882c000103a000b0b0020003502002001103c0b3401017f230041106b220224002002200136020c200220003602082002419083c000360204200241bc8ec2003602002002103d000b0d0020002802001a037f0c000b0bd20203027f017e037f230041306b22022400412721030240024020004290ce005a0d00200021040c010b412721030340200241096a20036a2205417c6a20004290ce0080220442f0b17f7e20007ca7220641ffff037141e4006e220741017441d283c0006a2f00003b00002005417e6a2007419c7f6c20066a41ffff037141017441d283c0006a2f00003b00002003417c6a2103200042ffc1d72f5621052004210020050d000b0b02402004a7220541e3004c0d00200241096a2003417e6a22036a2004a7220641ffff037141e4006e2205419c7f6c20066a41ffff037141017441d283c0006a2f00003b00000b02400240200541094a0d00200241096a2003417f6a22036a200541306a3a00000c010b200241096a2003417e6a22036a200541017441d283c0006a2f00003b00000b200141bc8ec2004100200241096a20036a412720036b10402103200241306a240020030b6f01017f230041c0006b220124002001200036020c200141346a410136020020014201370224200141cc80c2003602202001410536023c2001200141386a36023020012001410c6a360238200141106a200141206a1031410141b8fbc10041072001280210200128021810d30400000b02000b0d0042e38efeb4f5aa80b7847f0b830601067f20002802002205410171220620046a21070240024020054104710d00410021010c010b4100210802402002450d00200221092001210a03402008200a2d000041c00171418001476a2108200a41016a210a2009417f6a22090d000b0b200820076a21070b412b418080c40020061b21080240024020002802084101460d004101210a200020082001200210410d012000280218200320042000411c6a28020028020c1100000f0b02402000410c6a280200220920074b0d004101210a200020082001200210410d012000280218200320042000411c6a28020028020c1100000f0b024002400240024002402005410871450d00200028020421052000413036020420002d002021064101210a200041013a0020200020082001200210410d054100210a200920076b22012109410120002d0020220820084103461b4103710e03030201030b4100210a200920076b22052109024002400240410120002d0020220720074103461b4103710e03020100020b2005410176210a200541016a41017621090c010b410021092005210a0b200a41016a210a0340200a417f6a220a450d0420002802182000280204200028021c280210110100450d000b41010f0b2001410176210a200141016a41017621090c010b410021092001210a0b200a41016a210a02400340200a417f6a220a450d0120002802182000280204200028021c280210110100450d000b41010f0b200028020421014101210a200028021820032004200028021c28020c1100000d01200028021c210a20002802182102410021080240034020092008460d01200841016a210820022001200a280210110100450d000b4101210a2008417f6a2009490d020b200020063a00202000200536020441000f0b200028020421074101210a200020082001200210410d00200028021820032004200028021c28020c1100000d00200028021c2108200028021821004100210a0240034002402009200a470d002009210a0c020b200a41016a210a200020072008280210110100450d000b200a417f6a210a0b200a200949210a0b200a0b5401017f024002402001418080c400460d0041012104200028021820012000411c6a2802002802101101000d010b024020020d0041000f0b2000280218200220032000411c6a28020028020c11000021040b20040b6c01017f230041306b2203240020032001360204200320003602002003411c6a41023602002003412c6a41023602002003420237020c2003419c85c000360208200341023602242003200341206a3602182003200341046a36022820032003360220200341086a2002103a000ba108010a7f20002802102103024002400240200028020822044101470d0020034101470d020c010b20034101460d002000280218200120022000411c6a28020028020c1100000f0b200120026a2105024002400240200041146a28020022060d0041002107200121030c010b41002107200121030340200322082005460d02200841016a2103024020082c00002209417f4a0d00200941ff017121090240024020032005470d004100210a200521030c010b200841026a210320082d0001413f71210a0b200941e001490d000240024020032005470d004100210b2005210c0c010b200341016a210c20032d0000413f71210b0b0240200941f0014f0d00200c21030c010b02400240200c2005470d004100210c200521030c010b200c41016a2103200c2d0000413f71210c0b200a410c742009411274418080f0007172200b41067472200c72418080c400460d030b200720086b20036a21072006417f6a22060d000b0b20032005460d00024020032c00002208417f4a0d0002400240200341016a2005470d0041002103200521060c010b200341026a210620032d0001413f7141067421030b200841ff017141e001490d000240024020062005470d0041002106200521090c010b200641016a210920062d0000413f7121060b200841ff017141f001490d00200841ff01712108200620037221030240024020092005470d00410021050c010b20092d0000413f7121050b20034106742008411274418080f0007172200572418080c400460d010b024002402007450d0020072002460d0041002103200720024f0d01200120076a2c00004140480d010b200121030b2007200220031b21022003200120031b21010b20044101460d002000280218200120022000411c6a28020028020c1100000f0b0240024002402002450d004100210820022107200121030340200820032d000041c00171418001476a2108200341016a21032007417f6a22070d000b2008200028020c22054f0d014100210820022107200121030340200820032d000041c00171418001476a2108200341016a21032007417f6a22070d000c030b0b41002108200028020c22050d010b2000280218200120022000411c6a28020028020c1100000f0b41002103200520086b22072108024002400240410020002d0020220520054103461b4103710e03020100020b20074101762103200741016a41017621080c010b41002108200721030b200341016a2103024003402003417f6a2203450d0120002802182000280204200028021c280210110100450d000b41010f0b20002802042107410121030240200028021820012002200028021c28020c1100000d00200028021c2105200028021821004100210302400340024020082003470d00200821030c020b200341016a2103200020072005280210110100450d000b2003417f6a21030b200320084921030b20030bc80801057f230041f0006b220524002005200336020c20052002360208024002402001418102490d00410020016b21064180022107024003400240200720014f0d00200020076a2c000041bf7f4c0d00200721080c020b2007417f6a210820074101460d01200620076a21092008210720094101470d000b0b2005200836021420052000360210200541de85c000360218410521070c010b2005200136021420052000360210200541bc8ec200360218410021070b2005200736021c0240024002400240200220014b22070d00200320014b0d00200220034b0d01024002402002450d0020012002460d00200120024d0d01200020026a2c00004140480d010b200321020b200520023602202002450d0220022001460d02200141016a210903400240200220014f0d00200020026a2c000041404e0d040b2002417f6a210720024101460d0420092002462108200721022008450d000c040b0b20052002200320071b360228200541306a41146a4103360200200541c8006a41146a4104360200200541d4006a410436020020054203370234200541e485c0003602302005410236024c2005200541c8006a3602402005200541186a3602582005200541106a3602502005200541286a360248200541306a2004103a000b200541e4006a4104360200200541c8006a41146a4104360200200541d4006a4102360200200541306a41146a410436020020054204370234200541fc85c0003602302005410236024c2005200541c8006a3602402005200541186a3602602005200541106a36025820052005410c6a3602502005200541086a360248200541306a2004103a000b200221070b024020072001460d00410121094100210602400240200020076a22022c000022084100480d002005200841ff01713602240c010b200020016a220921010240200241016a2009460d00200241026a210120022d0001413f7121060b2008411f71210202400240200841ff017141e0014f0d00200620024106747221080c010b4100210020092103024020012009460d00200141016a210320012d0000413f7121000b200020064106747221010240200841ff017141f0014f0d0020012002410c747221080c010b41002108024020032009460d0020032d0000413f7121080b20014106742002411274418080f00071722008722208418080c400460d020b20052008360224410121092008418001490d00410221092008418010490d0041034104200841808004491b21090b200520073602282005200920076a36022c200541306a41146a4105360200200541ec006a4104360200200541e4006a4104360200200541c8006a41146a4106360200200541d4006a4107360200200542053702342005419c86c0003602302005410236024c2005200541c8006a3602402005200541186a3602682005200541106a3602602005200541286a3602582005200541246a3602502005200541206a360248200541306a2004103a000b41b2abc200412b2004102d000b100020012000280200200028020410430b7901037f230041206b2202240002402000200110490d002001411c6a2802002103200128021821042002411c6a4100360200200241bc8ec2003602182002420137020c2002418487c00036020820042003200241086a10320d00200041046a200110492101200241206a240020010f0b200241206a240041010bce0d02067f017e410121020240200128021841272001411c6a2802002802101101000d0041f4002103410221040240024002400240024002402000280200220541776a0e1f05010303000303030303030303030303030303030303030303040303030304020b41f2002103410221040c040b41ee002103410221040c030b200541dc00460d010b2005410b74210241002104411f2106411f210002400240034002400240200641017620046a220641027441a093c0006a280200410b74220320024f0d00200641016a21040c010b20032002460d02200621000b200020046b2106200020044b0d000c020b0b200641016a21040b02402004411e4b0d002004410274210641b105210002402004411e460d00200641a493c0006a28020041157621000b410021030240024002400240024002400240024002400240024002402004417f6a220220044b0d002002411f4f0d01200241027441a093c0006a28020041ffffff007121030b02402000200641a093c0006a280200411576220441016a460d00200520036b2102200441b105200441b1054b1b21062000417f6a210341002100034020062004460d0c2000200441ac94c0006a2d00006a220020024b0d012003200441016a2204470d000b200321040b024020044101710d000240024002400240200541ffff034b0d0041dd87c000210041002106200541087641ff0171210702400340200041026a2103200620002d000122046a21020240024020002d000022002007470d0020022006490d0a200241a3024f0d0b200641c088c0006a210003402004450d022004417f6a210420002d00002106200041016a21002006200541ff0171470d000c110b0b200020074b0d022002210620032100200341af88c000470d010c020b2002210620032100200341af88c000470d000b0b200541ffff0371210241e28ac0002104410121000340200441016a21030240024020042d000022064118744118752207417f4a0d00200341978dc000460d0b200741ff007141087420042d0001722106200441026a21040c010b200321040b200220066b22024100480d0220004101732100200441978dc000470d000c020b0b200541ffff074b0d0141a88dc000210041002106200541087641ff0171210702400340200041026a2103200620002d000122046a21020240024020002d000022002007470d0020022006490d0c200241b0014f0d0d200641f48dc0006a210003402004450d022004417f6a210420002d00002106200041016a21002006200541ff0171470d000c100b0b200020074b0d022002210620032100200341f48dc000470d010c020b2002210620032100200341f48dc000470d000b0b200541ffff0371210241a38fc0002104410121000340200441016a21030240024020042d000022064118744118752207417f4a0d00200341c692c000460d0d200741ff007141087420042d0001722106200441026a21040c010b200321040b200220066b22024100480d0120004101732100200441c692c000470d000b0b410121042000410171450d0a0c010b200541ef83384b0d09200541b5d9736a41b5db2b490d09200541e28b746a41e20b490d092005419fa8746a419f18490d09200541dee2746a410e490d09200541feffff0071419ef00a460d09200541a2b2756a4122490d09200541cb91756a410b490d09410121040b0c0a0b200541017267410276410773ad4280808080d0008421080c080b2002411f419c94c0001033000b2006200241b088c0001048000b200241a20241b088c0001042000b41b2abc200412b41988dc000102d000b2006200241b088c0001048000b200241af0141b088c0001042000b41b2abc200412b41988dc000102d000b200541017267410276410773ad4280808080d0008421080b410321040b200521030c030b200641b10541f099c0001033000b2004411f41e099c0001033000b20052103410221040b03402004210641dc002100410121024101210402400240024002400240024020060e0402010500020b02400240024002402008422088a741ff01710e06050302010006050b200842ffffffff8f608342808080803084210841f50021000c060b200842ffffffff8f608342808080802084210841fb0021000c050b413041d70020032008a72204410274411c7176410f712200410a491b20006a2100024020040d00200842ffffffff8f60834280808080108421080c050b2008427f7c42ffffffff0f832008428080808070838421080c040b200842ffffffff8f6083210841fd0021000c030b41002104200321000c030b20012802184127200128021c2802101101000f0b200842ffffffff8f60834280808080c0008421080b410321040b20012802182000200128021c280210110100450d000b0b20020b6c01017f230041306b2203240020032001360204200320003602002003411c6a41023602002003412c6a41023602002003420237020c200341ec92c000360208200341023602242003200341206a3602182003200341046a36022820032003360220200341086a2002103a000bb70201037f23004180016b22022400024002400240024020012802002203411071450d0020002802002103410021000340200220006a41ff006a2003410f712204413072200441d7006a2004410a491b3a00002000417f6a2100200341047622030d000b20004180016a22034181014f0d02200141a8f7c1004102200220006a4180016a410020006b104021000c010b02402003412071450d0020002802002103410021000340200220006a41ff006a2003410f712204413072200441376a2004410a491b3a00002000417f6a2100200341047622030d000b20004180016a22034181014f0d03200141a8f7c1004102200220006a4180016a410020006b104021000c010b20003502002001103c21000b20024180016a240020000f0b2003418001419087c000104a000b2003418001419087c000104a000b6c01017f230041306b2203240020032001360204200320003602002003411c6a41023602002003412c6a41023602002003420237020c200341a087c000360208200341023602242003200341206a3602182003200341046a36022820032003360220200341086a2002103a000bec0201017f230041f0006b220624002006200136020c2006200036020820062003360214200620023602102006410236021c200641e09ac000360218024020042802000d00200641386a41146a4103360200200641c4006a4103360200200641d8006a41146a41033602002006420437025c200641e49ac0003602582006410436023c2006200641386a3602682006200641106a3602482006200641086a3602402006200641186a360238200641d8006a2005103a000b200641206a41106a200441106a290200370300200641206a41086a200441086a29020037030020062004290200370320200641d8006a41146a4104360200200641d4006a4108360200200641386a41146a4103360200200641c4006a41033602002006420437025c200641849bc0003602582006410436023c2006200641386a3602682006200641206a3602502006200641106a3602482006200641086a3602402006200641186a360238200641d8006a2005103a000b140020002802002001200028020428020c1101000b6401027f230041206b220224002001411c6a280200210320012802182101200241086a41106a200041106a290200370300200241086a41086a200041086a2902003703002002200029020037030820012003200241086a10322100200241206a240020000b1c00200128021841de9bc000410b2001411c6a28020028020c1100000b1c00200128021841e99bc000410e2001411c6a28020028020c1100000b5b01017f230041306b220324002003200136020c20032000360208200341246a410136020020034201370214200341cc80c2003602102003410436022c2003200341286a3602202003200341086a360228200341106a2002103a000b1500200120002802002200280200200028020410430b830501077f0240024002402002450d000340024020002802082d0000450d00200028020041b19cc0004104200028020428020c110000450d0041010f0b4100210320022104024002400340200120036a210502400240200441074b0d002004450d03410021060340200520066a2d0000410a460d022004200641016a2206470d000c040b0b024002400240200541036a417c7120056b2206450d0020042006200620044b1b2107410021060340200520066a2d0000410a460d042007200641016a2206470d000b2007200441786a22084b0d020c010b200441786a2108410021070b02400340200520076a220641046a2802002209417f732009418a94a8d0007341fffdfb776a7120062802002206417f732006418a94a8d0007341fffdfb776a7172418081828478710d01200741086a220720084d0d000b0b200720044b0d070b20072004460d02200420076b21042001200720036a6a21054100210602400340200520066a2d0000410a460d012004200641016a2206470d000c040b0b200720066a21060b200620036a220641016a21030240200620024f0d00200120066a2d0000410a470d00410121060c030b200220036b2104200220034f0d000b0b41002106200221030b200028020820063a0000200028020421062000280200210702400240024020022003460d000240200220034d0d00200120036a22052c000041bf7f4a0d020b200120024100200341b89cc0001044000b200720012002200628020c110000450d0141010f0b0240200720012003200628020c110000450d0041010f0b20052c000041bf7f4c0d040b200120036a2101200220036b22020d000b0b41000f0b2007200441f89cc000104a000b200120022003200241c89cc0001044000bbc0302047f027e230041c0006b2205240041012106024020002d00040d0020002d000521070240200028020022082d0000410471450d000240200741ff01710d0041012106200828021841ad9dc00041032008411c6a28020028020c1100000d02200028020021080b41012106200541013a0017200541346a41b09dc000360200200520082902183703082005200541176a360210200829020821092008290210210a200520082d00203a00382005200a37032820052009370320200520082902003703182005200541086a360230200541086a2001200210520d01200541086a41c48fc200410210520d012003200541186a200428020c1101000d01200528023041c89dc0004102200528023428020c11000021060c010b41012106200828021841ab9dc00041a89dc000200741ff017122071b4102410320071b2008411c6a28020028020c1100000d004101210620002802002208280218200120022008411c6a28020028020c1100000d00410121062000280200220828021841c48fc20041022008411c6a28020028020c1100000d0020032000280200200428020c11010021060b200041013a0005200020063a0004200541c0006a240020000bf30101017f230041106b220224002002410036020c02400240024002402001418001490d002001418010490d012001418080044f0d0220022001413f71418001723a000e20022001410c7641e001723a000c20022001410676413f71418001723a000d410321010c030b200220013a000c410121010c020b20022001413f71418001723a000d2002200141067641c001723a000c410221010c010b20022001413f71418001723a000f2002200141127641f001723a000c20022001410676413f71418001723a000e20022001410c76413f71418001723a000d410421010b20002002410c6a200110522101200241106a240020010b6001017f230041206b2202240020022000360204200241086a41106a200141106a290200370300200241086a41086a200141086a29020037030020022001290200370308200241046a41cc9dc000200241086a10322101200241206a240020010b0d0020002802002001200210520bfa0101017f230041106b22022400200028020021002002410036020c02400240024002402001418001490d002001418010490d012001418080044f0d0220022001413f71418001723a000e20022001410c7641e001723a000c20022001410676413f71418001723a000d410321010c030b200220013a000c410121010c020b20022001413f71418001723a000d2002200141067641c001723a000c410221010c010b20022001413f71418001723a000f2002200141127641f001723a000c20022001410676413f71418001723a000e20022001410c76413f71418001723a000d410421010b20002002410c6a200110522101200241106a240020010b6301017f230041206b2202240020022000280200360204200241086a41106a200141106a290200370300200241086a41086a200141086a29020037030020022001290200370308200241046a41cc9dc000200241086a10322101200241206a240020010bd40202047f027e230041c0006b2203240041012104024020002d00080d00200028020421050240200028020022062d0000410471450d00024020050d0041012104200628021841e89dc00041022006411c6a28020028020c1100000d02200028020021060b41012104200341013a0017200341346a41b09dc000360200200320062902183703082003200341176a3602102006290208210720062902102108200320062d00203a00382003200837032820032007370320200320062902003703182003200341086a3602302001200341186a200228020c1101000d01200328023041c89dc0004102200328023428020c11000021040c010b41012104200628021841ab9dc00041e79dc00020051b4102410120051b2006411c6a28020028020c1100000d0020012000280200200228020c11010021040b200020043a00082000200028020441016a360204200341c0006a240020000b840703017f027e027f02402002280200220341134c0d00024002400240200042808084fea6dee111540d002002200341706a2203360200200120036a200042808084fea6dee111802204428080fc81d9a19e6e7e20007c2200428080e983b1de1680a741ff017141e4007041017441d283c0006a2f00003b0000200228020020016a41026a20004280a094a58d1d80a741ffff037141e4007041017441d283c0006a2f00003b0000200228020020016a41046a20004280c8afa02580a741e4007041017441d283c0006a2f00003b0000200228020020016a41066a20004280c2d72f80a741e4007041017441d283c0006a2f00003b0000200228020020016a41086a200042c0843d8042e40082a741017441d283c0006a2f00003b0000200228020020016a410a6a20004290ce008042e40082a741017441d283c0006a2f00003b0000200228020020016a410c6a200042e40080220542e40082a741017441d283c0006a2f00003b00002005429c7f7e20007ca72103410e21060c010b024020004280c2d72f5a0d00200021040c020b2002200341786a2203360200200120036a20004280c2d72f8022044280bea8507e20007ca7220341c0843d6e41ff017141e4007041017441d283c0006a2f00003b0000200228020020016a41026a20034190ce006e41ffff037141e4007041017441d283c0006a2f00003b0000200228020020016a41046a200341e4006e220641e4007041017441d283c0006a2f00003b00002006419c7f6c20036a2103410621060b2001200228020020066a6a200341017441d283c0006a2f00003b00000b024002402004a722064190ce004f0d00200621030c010b20022002280200417c6a2203360200200120036a20064190ce006e220341f0b17f6c20066a220641ffff037141e4006e220741017441d283c0006a2f00003b0000200228020020016a41026a2007419c7f6c20066a41ffff037141017441d283c0006a2f00003b00000b0240200341ffff0371220641e400490d0020022002280200417e6a2207360200200120076a200641e4006e2206419c7f6c20036a41ffff037141017441d283c0006a2f00003b0000200621030b0240200341ffff037141094b0d0020022002280200417f6a2206360200200120066a200341306a3a00000f0b20022002280200417e6a2206360200200120066a200341ffff037141017441d283c0006a2f00003b00000f0b41ee9dc000411c418c9ec000102d000b6c01017f230041306b2203240020032001360204200320003602002003411c6a41023602002003412c6a41023602002003420337020c200341a09ec000360208200341023602242003200341206a360218200320033602282003200341046a360220200341086a2002103a000b0b002000280200200110490b1c002001280218418bf6c10041052001411c6a28020028020c1100000b2e01017f230041106b220224002002200028020028020036020c2002410c6a200110492101200241106a240020010bc916041d7f017e017f017e230041f0036b22042400200441c8016a41086a220541002802b8f541360200200441002902b0f5413703c80102400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002402001200141e0006a2206200441c8016a10600d004130102f22070d010c180b200441186a2208200141f8006a290000370300200441106a2209200141f0006a290000370300200441086a220a200141e8006a290000370300200420012900603703002003410174210b2004410772210c200441c8016a41186a210d200441c8016a410c6a210e200441c8016a41206a210f4100211041002111410021120340201241017621060240024020124101710d00200620034b0d04200441003a00d001200420063602cc01200420023602c8010c010b200620034b0d04200620034f0d05200441013a00d001200420023602c801200420063602cc012004200220066a2d000041f001713a00d1010b200441206a20012004200441c8016a10610240200428022022130d00200441c8016a41186a2206200441186a290300370300200441c8016a41106a2210200441106a290300370300200441c8016a41086a2214200441086a290300370300200420042903003703c8014130102f2207450d19200720042903c801370001200720114100473a0000200741096a2014290300370000200741116a2010290300370000200741196a20062903003700000c160b20042802242115200441c8016a20132004280228106220042d00c8014101460d12201141016a2111034020042802e401211620042802e001211720042802dc01211820042802d801211920042802d401211420042802d001211a20042802cc012106200441206a200f41a8011085051a200428029403211b200428029003211c4100211d410021070240024002400240024020060e051a120001021a0b41002107410021060240201441017420196b221e200b20106b221b201b201e4b1b221f450d00410021060340201020066a221c410176221b20034f0d0c201920066a2220410176221d20144f0d0d2002201b6a2d0000221b410f71201b41f00171410476201c4101711b201a201d6a2d0000221b410f71201b41047620204101711b470d01201f200641016a2206470d000b201f21060b2006201e470d12201e21060c030b200420163602dc01200420173602d801200420183602d401200420193602d001200420143602cc012004201a3602c801200d200441206a41a8011085051a0240200b2010460d002010410176220620034f0d0c200441c8016a200220066a2d00002206410f71200641047620104101711b410c6c6a220628020022184102470d020c100b201c450d0f201b417f4c0d1b02400240201b0d00410121070c010b201b102f2207450d1d0b2007201c201b1085051a201bad222142208620218421210c180b20042802a003211e200428029c0321222004280298032106200420163602d001200420173602cc01200420183602c801200e200441206a41a8011085051a20042006360284032004201b360280032004201c3602fc0241002107410021060240201441017420196b2216200b20106b2217201720164b1b221f450d00410021060340201020066a221c410176221b20034f0d0d201920066a2220410176221d20144f0d0e2002201b6a2d0000221b410f71201b41f00171410476201c4101711b201a201d6a2d0000221b410f71201b41047620204101711b470d01201f200641016a2206470d000b201f21060b024020062016460d000c150b024020172016460d00201020166a2214410176220620034f0d0e200441c8016a200220066a2d00002206410f71200641047620144101711b410c6c6a221428020022184102460d15201641016a211e201641016a210620142802042117201441086a28020021160c020b024020220d000c150b201e417f4c0d1a02400240201e0d00410121070c010b201e102f2207450d1c0b20072022201e1085051a201ead222142208620218421210c140b20062802042117200641086a28020021164101211e410121060b200620126a21122010201e6a211002402018450d00200441c8016a20172016106220042d00c8014101460d140c010b0b0240024020164120460d002016417f4c0d190240024020160d00410121060c010b2016102f2206450d1b0b20062017201610850521064130102f2207450d1a200741043a0000200720042903003700012007201636002c2007201636002820072006360024200741096a200a290300370000200741116a2009290300370000200741196a20082903003700000c010b200441c8016a41026a41003a0000200441003b01c80120172f00002106200441cc036a41026a201741026a2d00003a00002017411f6a2d00002114201741176a29000021212017280003210720172900072123200441d0036a41086a22192017410f6a290000370300200441d0036a41106a221a2021370300200441d0036a41186a221b20143a0000200420063b01cc03200420233703d003200d201b2d00003a0000200441c8016a41106a201a29030037030020052019290300370300200420042903d0033703c8010b200441c8036a41026a2206200441cc036a41026a2d00003a0000200441a8036a41086a22142005290300370300200441a8036a41106a2219200441c8016a41106a290300370300200441a8036a41186a221a200d280200360200200420042f01cc033b01c803200420042903c8013703a80320164120470d13200c20042903a803370000200c41086a2014290300370000200c41106a2019290300370000200c41186a201a2d00003a0000200420042f01c8033b010020042007360003200420062d00003a00022015450d00201310300c000b0b200741003a000020072006290000370001200741096a200641086a290000370000200741116a200641106a290000370000200741196a200641186a2900003700000c130b2006200341a099c2001042000b2006200341b099c2001042000b2006200341c099c2001033000b201b200341e098c2001033000b201d201441e098c2001033000b2006200341e098c2001033000b201b200341e098c2001033000b201d201441e098c2001033000b2006200341e098c2001033000b410021070c080b41002107201441017420196b200b20106b221f470d00410021060240201f450d00410021060340201920066a221c410176221b20144f0d03201020066a2220410176221d20034f0d04201a201b6a2d0000221b410f71201b41f00171410476201c4101711b2002201d6a2d0000221b410f71201b41047620204101711b470d01201f200641016a2206470d000c050b0b2006201f460d030b0c030b201b201441e098c2001033000b201d200341e098c2001033000b2017417f4c0d060240024020170d00410121070c010b2017102f2207450d080b2007201820171085051a2017ad222142208620218421210b4100211d0c020b20042d00c90121064130102f2207450d05200741033a000020072004290300370001200720063a0021200741096a200441086a290300370000200741116a200441106a290300370000200741196a200441186a2903003700000b4101211d0b02402015450d00201310300b201d0d000240024020070d004200212142002123410021060c010b20214220882223a72210417f4c0d030240024020100d00410121060c010b2010102f2206450d050b2006200720101085051a02402021a7450d00200710300b20214280808080708321210b2000200636020420004100360200200041086a20232021843702000c010b02400240024020072d00000e0402020002010b200741086a280200450d01200741046a28020010300c010b200741286a280200450d00200741246a28020010300b20071030200041013602000b200441f0036a24000f0b102c000b102a000bce0201027f230041206b2203240002400240024002400240200120004180016a41201088050d004101102f2201450d03200141003a00000c010b0240024020012000413c6a41201088050d00200041386a2802002204417f4c0d0520002802302100024020040d00410121014101200020041085051a0c020b2004102f2201450d042001200020041085051a0c010b200341186a200141186a290000370300200341106a200141106a290000370300200341086a200141086a2900003703002003200129000037030041002101024020002003106722000d000c010b0240200028020c41014e0d000c010b20002802082204417f4c0d04200028020021000240024020040d00410121010c010b2004102f2201450d040b2001200020041085051a0b024020010d00410021010c020b2004450d010b200110300b200341206a240020014100470f0b102a000b102c000bda0201027f230041206b220424000240024002400240200220014180016a41201088050d004101102f2202450d02200042818080801037020420002002360200200241003a00000c010b0240024020022001413c6a41201088050d00200141386a2802002202417f4c0d0420012802302101024020020d00410121054101200120021085051a0c020b2002102f2205450d032005200120021085051a0c010b200441186a200241186a290000370300200441106a200241106a290000370300200441086a200241086a2900003703002004200229000037030041002105024020012004106722010d000c010b0240200128020c41014e0d000c010b20012802082202417f4c0d03200128020021010240024020020d00410121050c010b2002102f2205450d030b2005200120021085051a0b2000200236020420002005360200200041086a20023602000b200441206a24000f0b102a000b102c000ba60b03027f027e0c7f230041d0066b2203240041002104200341003602880520032002360284052003200136028005420321050240024020020d0042002106410021070c010b41012107200341013602880542002106024020012d000022080d00420021050c010b0240024002400240024002400240024002400240200841c00171220941c001460d0002402009418001460d00200941c000470d0b2008413f712208413f470d05410221074141210803402007417f6a20024f0d0320032007360288050240200120076a417f6a2d0000220941ff01460d00200920086b21080c0c0b200841817e6a2108200741016a2207418302470d000b41ffff03210841820221070c0a0b2008413f712208413f470d05410221074141210803402007417f6a20024f0d0320032007360288050240200120076a417f6a2d0000220941ff01460d00200920086b21080c0a0b200841817e6a2108200741016a2207418302470d000b41ffff03210841820221070c080b2008413f712208413f470d05410221074141210803402007417f6a20024f0d0320032007360288050240200120076a417f6a2d0000220941ff01460d00200920086b21080c080b200841817e6a2108200741016a2207418302470d000b41ffff03210841820221070c060b2007417f6a21070c080b2007417f6a21070c070b2007417f6a21070c060b410121070c040b410121070c020b410121070b2008ad422086428002842106420121050c020b2008ad4220862106420121050c010b2008ad4220862106420221050b2006422088a7210a410121094101210802400240024002400240024002400240024002402005200684a741ff01710e0405000107050b200a410171220b450d03200720024f0d0141002108200120076a2d00004110490d030c060b200a410171220b450d010240200720024f0d0041002108200120076a2d00004110490d020c060b2007200241d08dc1001033000b2007200241e08dc1001033000b2007200a41016a4101766a220c20024b0d022003200c36028805200341186a20034180056a106f20032802180d0241012108200328028805220d200328021c6a220e2003280284054b0d032003200e36028805410121040c010b2007200a41016a4101766a220c20024b22080d012003200c3602880520080d01200c41026a220820024b0d012003200836028805200c417e4f0d042001200c6a2f000021044100210a4100210d0240200642800283500d00200341106a20034180056a106f20032802100d0241012108200328028805220e20032802146a220f2003280284054b0d032003200f360288054101210d0b200341023602c406200341023602b806200341023602ac06200341023602a00620034102360294062003410236028806200341023602fc05200341023602f005200341023602e405200341023602d805200341023602cc05200341023602c005200341023602b405200341023602a8052003410236029c05200341023602900520034190056a2108200441ffff03712110034002402010200a410f7176410171450d00200341086a20034180056a106f20032802080d032003280288052211200328020c22126a22042003280284054b0d03200841086a2004360200200841046a20113602002008201241204736020020032004360288050b2008410c6a2108200a41016a220a4110470d000b200341c0036a20034190056a41c0011085051a410421040b20034180026a200341c0036a41c0011085051a2003412c6a200b360200200341286a200c360200200320073602242003413c6a20034180026a41c0011085051a200341386a200f360200200341346a200e360200200341306a200d36020020032004360220200041046a200341206a200120021070410021090c020b410121080b20034180026a200341c0036a41c0011085051a200020083a00010b200020093a0000200341d0066a24000f0b200c200841c08dc1001048000baf0201047f230041106b22022400024002402001280208220341046a2204417f4c0d002001280200210102400240024002400240024020040d0020024100360208200242013703000c010b2004102f2205450d06200241003602082002200436020420022005360200200341c000490d01200341808001490d022003418080808004490d030b200241033a000c20022002410c6a410110642002200336020c20022002410c6a410410640c030b200220034102743a000c20022002410c6a410110640c020b200220034102744101723b010c20022002410c6a410210640c010b2002200341027441027236020c20022002410c6a410410640b20022001200310642000200228020022032002280208106502402002280204450d00200310300b200241106a24000f0b102c000b102a000b880201047f230041206b2203240002400240200041046a2802002204200041086a28020022056b2002490d00200028020021040c010b0240200520026a22062005490d00200441017422052006200520064b1b22054108200541084b1b21050240024020040d00200341003602100c010b200341106a41086a410136020020032004360214200320002802003602100b200320054101200341106a1069200341086a2802002105024020032802004101460d00200020032802042204360200200041046a2005360200200041086a28020021050c020b2005450d00102a000b102c000b200420056a200120021085051a200041086a2200200028020020026a360200200341206a24000b7201027f2002ad4220862001ad84100f2101200041186a22024200370000200041106a22034200370000200041086a2204420037000020004200370000200020012900003700002004200141086a2900003700002003200141106a2900003700002002200141186a290000370000200110300bee0101027f230041206b2202240002404104102f2203450d0020024204370204200220033602004120102f2203450d002002422037021420022003360210200241106a200141046a412010642002200228021022032002280218106402402002280214450d00200310300b200220012802003602102002200241106a410410644120102f2203450d002002422037021420022003360210200241106a200141246a412010642002200228021022012002280218106402402002280214450d00200110300b2000200228020022012002280208106502402002280204450d00200110300b200241206a24000f0b102a000bd30303017f047e097f230041306b22022400200241206a20002903182000290308852203200141186a29000085420020002903102204200029030022058522062001290010854200108405200241106a200141086a29000020038542002001290000200685420010840520022004420020042004200542adfed5e4d485fda8d8007e200241206a41086a2903002002290320857c42a0cbbf9599b5a19f0a7c85421789200241106a41086a2903002002290310857c8542178922034200108405200041246a2802002207200041206a2802002208200241086a290300200229030085200389a722007122096a280000220a200041197641818284086c220b732200417f73200041fffdfb776a7141808182847871210c200941046a200871210d4104210e02400340200d21000240200c0d000240200a200a4101747141808182847871450d00410021000c030b200b200720006a280000220a73220c417f73200c41fffdfb776a7141808182847871210c20082000200e6a41046a71210d200e41046a210e200021090c010b200c68210f2000210d200c417f6a200c71210c20012007410020082009200f4103766a716b41306c6a41506a220041201088050d000b0b200241306a2400200041206a410020001b0be30605027f017e037f027e027f230041206b220524002005200120022003105f024002400240024020052802004101460d00024002400240024020052802042206450d004100210302400240200541086a2903002207422088a722010d000c010b2001417f6a21020240024020062d0000220841037122094103460d00200641016a210a02400240024020090e03000102000b200841027621080c030b024020020d000c040b200a2d0000410874200872220841ffff0371418002490d032001417e6a2102200641026a210a200841fcff037141027621080c020b0240200241034f0d000c030b20062f0001200641036a2d000041107472410874200872220841ffff034d0d022001417c6a2102200641046a210a200841027621080c010b0240200841034d0d000c020b0240200241044f0d000c020b20062800012208418080808004490d012001417b6a2102200641056a210a0b02400240200820024102762201200120084b1b22014102742203417f4c0d000240024020010d00410421030c010b2003102f2203450d0a0b2001ad210b2008450d02034020024104490d02200a280000210902400240200b422088220ca72201200ba7470d00200141016a220d2001490d032001410174220e200d200d200e491b220d4104200d41044b1b220d41ffffffff0371200d46410274210e200d410274210d0240024020010d00200541003602000c010b20054104360208200520033602002005200c4202863e02040b200541106a200d200e200510692005280218210d20052802104101460d0120052802142103200b42808080807083200d410276ad84210b0b2002417c6a2102200a41046a210a200320014102746a2009360200200b4280808080107c210b2008417f6a22080d010c040b0b200d0d090b102c000b0240200b42ffffffff0383500d00200310300b410021030b02402007a7450d00200610300b2003450d0220042802002201450d01200428020441ffffffff0371450d01200110300c010b20042802002203450d022004290204210b0b200041086a200b370200200041046a2003360200200041003a00000c050b20004181023b01000c020b200041023a0001200041013a00000c030b200041013b01000b20042802002201450d01200441046a28020041ffffffff0371450d01200110300c010b102a000b200541206a24000bc70101027f0240024002400240024002402002450d0020014100480d01024002400240200328020022040d002001450d010c050b200328020422050d0120010d040b200221030c050b2001102f2203450d032003200420051085051a200410300c040b2000200136020420004101360200200041086a41003602000f0b20004101360200200041086a41003602000f0b2001102f22030d010b2000200136020441012103200221010c010b20002003360204410021030b20002003360200200041086a20013602000b990603017f017e067f230041a0016b22052400200541f8006a200120022003105f0240024002400240024020052802784101460d00200528027c2201450d01024020054180016a2903002206422088a722044104490d002004417c7122024104460d0020024108460d002004417c712202410c460d0020024110460d0020044114460d00200128000021032001280004210720012800082108200128000c21092001280010210a20052004416b6a3602542005200141156a360250410021020240024020012d00140e020100020b200541f8006a200541d0006a106b4101210220052d00784101460d01200541f0006a20054191016a290000370300200541e8006a20054189016a290000370300200541e0006a20054181016a290000370300200520052900793703580b200541286a41186a2204200541d8006a41186a290300370300200541286a41106a220b200541d8006a41106a290300370300200541286a41086a220c200541d8006a41086a2903003703002005200529035837032802402006a7450d00200110300b2005411f6a200541286a411f6a280000360000200541186a2004290300370300200541106a200b290300370300200541086a200c290300370300200520052903283703000c030b02402006a7450d00200110300b20004181023b01000c040b200041013b01000c030b200541086a2004411d6a290000370300200541106a200441256a290000370300200541186a2004412d6a2900003703002005411f6a200441346a2800003600002005200429001537030020042d001422024102460d012004280210210a200428020c21092004280208210820042802042107200428020021030b200041186a20023a0000200041146a200a360200200041106a20093602002000410c6a2008360200200041086a2007360200200041046a2003360200200041196a2005290300370000200041216a200541086a290300370000200041296a200541106a290300370000200041316a200541186a290300370000200041386a2005411f6a280000360000200041003a00000c010b200041023a0001200041013a00000b200541a0016a24000bdb0301097f230041c0006b220241106a41047221032001280204210441002105024003402004450d01200128020022062d0000210720012004417f6a22043602042001200641016a360200200320056a20073a00002002200541016a22063602102006210520064120470d000b200241086a41026a22012002411d6a2d00003a00002002200241106a41196a220428000036023820022002412c6a28000036003b200220022f01143b010c200220022d00163a000e2002200241106a410b6a2f00003b0108200241306a2802002105200241256a28000021062002411e6a2801002107200228003b210320022800172108200241386a41026a2209200241246a2d00003a00002002200241106a41126a2f01003b0138200241046a41026a220a2002412b6a2d00003a0000200220042f00003b0104200041046a2008360000200041036a20022d000e3a0000200020022f010c3b00012000410b6a2007360000200041086a20022f01083b00002000410a6a20012d00003a0000200041126a20063600002000410f6a20022f01383b0000200041116a20092d00003a0000200041166a20022f01043b0000200041186a200a2d00003a00002000411d6a2005360000200041196a2003360000200041003a00000f0b200041013a00000b950201067f024020002802202201450d0002402000412c6a280200450d00200041246a280200220241046a2103200120026a41016a21042002280200417f73418081828478712101024003400240024020010d000340200320044f0d04200241c07e6a210220032802002101200341046a220521032001418081828478712201418081828478460d000b2001418081828478732201417f6a2001712106200521030c010b2001417f6a20017121060b2001682105200621012002410020054103766b41306c6a220541746a280200450d00200541706a2802001030200621010c000b0b200028022021010b200041246a280200200141016aad42307ea76b10300b0240200041346a280200450d00200028023010300b0bb00b01027f230041106b220224000240024002400240024002400240024020002d00000e0701020304050600010b2002200128021841ec9fc000410b2001411c6a28020028020c1100003a000820022001360200200241003a0009200241003602042002200041046a36020c20022002410c6a41f89fc000105921032002200041086a36020c4101210120032002410c6a41f89fc000105921032002200041016a36020c20032002410c6a4188a0c00010591a20022d000821000240200228020422030d00200021010c070b200041ff01710d06024020034101470d0020022d000941ff0171450d00200228020022002d00004104710d0041012101200028021841ea9dc00041012000411c6a28020028020c1100000d070b2002280200220128021841eb9dc00041012001411c6a28020028020c11000021010c060b20012802184198a0c000410c2001411c6a28020028020c11000021010c050b2002200128021841a4a0c00041062001411c6a28020028020c1100003a000820022001360200200241003a000920024100360204410121012002200041016a36020c20022002410c6a4188a0c00010591a20022d000821000240200228020422030d00200021010c050b200041ff01710d04024020034101470d0020022d000941ff0171450d00200228020022002d00004104710d0041012101200028021841ea9dc00041012000411c6a28020028020c1100000d050b2002280200220128021841eb9dc00041012001411c6a28020028020c11000021010c040b2002200128021841aaa0c000410a2001411c6a28020028020c1100003a000820022001360200200241003a000920024100360204410121012002200041016a36020c20022002410c6a4188a0c00010591a20022d000821000240200228020422030d00200021010c040b200041ff01710d03024020034101470d0020022d000941ff0171450d00200228020022002d00004104710d0041012101200028021841ea9dc00041012000411c6a28020028020c1100000d040b2002280200220128021841eb9dc00041012001411c6a28020028020c11000021010c030b2002200128021841b4a0c00041162001411c6a28020028020c1100003a000820022001360200200241003a000920024100360204410121012002200041016a36020c20022002410c6a4188a0c00010591a20022d000821000240200228020422030d00200021010c030b200041ff01710d02024020034101470d0020022d000941ff0171450d00200228020022002d00004104710d0041012101200028021841ea9dc00041012000411c6a28020028020c1100000d030b2002280200220128021841eb9dc00041012001411c6a28020028020c11000021010c020b2002200128021841caa0c00041172001411c6a28020028020c1100003a000820022001360200200241003a000920024100360204410121012002200041016a36020c20022002410c6a4188a0c00010591a20022d000821000240200228020422030d00200021010c020b200041ff01710d01024020034101470d0020022d000941ff0171450d00200228020022002d00004104710d0041012101200028021841ea9dc00041012000411c6a28020028020c1100000d020b2002280200220128021841eb9dc00041012001411c6a28020028020c11000021010c010b2002200128021841e1a0c00041162001411c6a28020028020c1100003a000820022001360200200241003a000920024100360204410121012002200041016a36020c20022002410c6a4188a0c00010591a20022d000821000240200228020422030d00200021010c010b200041ff01710d00024020034101470d0020022d000941ff0171450d00200228020022002d00004104710d0041012101200028021841ea9dc00041012000411c6a28020028020c1100000d010b2002280200220128021841eb9dc00041012001411c6a28020028020c11000021010b200241106a2400200141ff01714100470b690002400240024020002802002d00000e03010200010b200128021841f7a0c00041062001411c6a28020028020c1100000f0b200128021841fda0c00041052001411c6a28020028020c1100000f0b20012802184182a1c00041062001411c6a28020028020c1100000b880301077f410121020240024002400240024002402001280208220341016a2204200128020422054d0d000c010b200320054f0d012001280200220620036a2d00002107200120043602080240200741037122084103460d0002400240024020080e03000102000b20074102762108410021020c030b0240200341026a220320054d0d000c030b200120033602082004417f460d04200620046a2d0000410874200772220141ffff0371418002490d02200141fcff03714102762108410021020c020b200341046a220320054b0d01200120033602082004417d4f0d04200620046a22012f0000200141026a2d000041107472410874200772220141808004492102200141027621080c010b0240200741034d0d000c010b200341056a220320054b0d00200120033602082004417c4f0d04200620046a28000022084180808080044921020b20002008360204200020023602000f0b2003200541dc92c2001033000b417f200341ec91c2001048000b2004200341ec91c2001048000b2004200341ec91c2001048000bd20c01087f230041c0016b22042400024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024020012802000e050400010203040b200141086a2802002205200141046a2802002206490d04200520034b0d05200141146a280200220720012802102208490d06200720034b0d072001410c6a28020021092000200220066a36020420004101360200200041146a200720086b360200200041106a200220086a3602002000410c6a2009360200200041086a200520066b3602000c150b200141086a2802002207200141046a2802002208490d07200720034b0d08200141186a2802002105200141146a28020021062001410c6a28020021090240024020012802104101470d0020052006490d0b4101210a200520034d0d012005200341d49bc2001042000b20052006490d0b4100210a200520034b0d0c0b2000200220086a36020420004102360200200041186a200520066b360200200041146a200220066a360200200041106a200a3602002000410c6a2009360200200041086a200720086b3602000c140b200441023602b401200441023602a8012004410236029c0120044102360290012004410236028401200441023602782004410236026c2004410236026020044102360254200441023602482004410236023c2004410236023020044102360224200441023602182004410236020c20044102360200200141106a210b410021050340410221070240200b20056a2206280200410246220a0d0041002006200a1b220741086a2802002106200728020421080240024020072802004101470d0020062008490d0f41012107200620034d0d012006200341d49bc2001042000b20062008490d0f41002107200620034b0d100b200220086a2109200620086b21080b200420056a22062007360200200641086a2008360200200641046a20093602002005410c6a220541c001460d130c000b0b200441023602b401200441023602a8012004410236029c0120044102360290012004410236028401200441023602782004410236026c2004410236026020044102360254200441023602482004410236023c2004410236023020044102360224200441023602182004410236020c200441023602002001411c6a210b410021050340410221070240200b20056a2206280200410246220a0d0041002006200a1b220741086a2802002106200728020421080240024020072802004101470d0020062008490d1141012107200620034d0d012006200341d49bc2001042000b20062008490d1141002107200620034b0d120b200220086a2109200620086b21080b200420056a22062007360200200641086a2008360200200641046a20093602002005410c6a220541c001460d110c000b0b200041003602000c110b2006200541c49cc2001048000b2005200341c49cc2001042000b2008200741d49cc2001048000b2007200341d49cc2001042000b2008200741c49cc2001048000b2007200341c49cc2001042000b2006200541d49bc2001048000b2006200541e49bc2001048000b2005200341e49bc2001042000b2008200641d49bc2001048000b2008200641e49bc2001048000b2006200341e49bc2001042000b2008200641d49bc2001048000b2008200641e49bc2001048000b2006200341e49bc2001042000b02400240024002400240024020012802104101460d00410021070c010b200141186a2802002205200141146a2802002206490d01200520034b0d02200520066b2108200220066a21070b200141086a2802002205200141046a2802002206490d02200520034b0d03200041086a200520066b3602002000200220066a3602042000410c6a2001410c6a280200360200200041106a200441c0011085051a200041d4016a2008360200200041d0016a2007360200200041043602000c050b2006200541f49cc2001048000b2005200341f49cc2001042000b2006200541c49cc2001048000b2005200341c49cc2001042000b0240024020012802044101460d00410021050c010b2001410c6a2802002205200141086a2802002207490d02200520034b0d03200520076b2106200220076a21050b200041046a200441c0011085051a200041c8016a2006360200200041c4016a2005360200200041033602000b200441c0016a24000f0b2007200541e49cc2001048000b2005200341e49cc2001042000b8b0702047f017e230041306b2206240002400240024002400240410028028cad4241016a220741004c0d0002404100280290ad424101460d00200641086a4100280288ad42110200200641186a41086a200641086a41086a29030037030020062006290308370318410028028cad420d024100417f36028cad4202404100280290ad42450d00024041002802a0ad422208450d004100280298ad422107200841027421080340200728020022092009280200417f6a3602000240200728020022092802000d00200941046a22092009280200417f6a3602002007280200220941046a2802000d00200910300b200741046a21072008417c6a22080d000b0b410028029cad4241ffffffff0371450d004100280298ad4210300b41004101360290ad4241002006290318370294ad424100200641206a29030037029cad424100410028028cad42220741016a36028cad42200741026a220741004c0d030b4100200736028cad424100280294ad42220841016a220741004c0d0341002007360294ad420240024041002802a0ad422207450d0020074102744100280298ad426a417c6a280200220728020041016a220841014b0d0100000b41002008360294ad424100410028028cad42417f6a36028cad424188a1c000412441aca1c0001050000b2007200836020041004100280294ad42417f6a360294ad4220072802080d042007417f360208200641186a410472200728020c2001200220072802102802101103002007200728020841016a36020820072007280200417f6a220836020002400240024020080d00200741046a22082008280200417f6a220836020020080d01200710304100410028028cad42417f6a36028cad420c020b4100410028028cad42417f6a36028cad420c010b4100410028028cad42417f6a36028cad420b02400240200628021c22080d00410021090c010b20032008200641206a290300220a422088a72207200520072005491b22096a2004200720096b2209200920044b1b1085051a41012109200aa7450d00200810300b2000200736020420002009360200200641306a24000f0b41aeaac0004118200641286a41ac9fc00041d8aac0001034000b41b082c2004110200641286a41bc9fc00041f8aac0001034000b41aeaac0004118200641286a41ac9fc0004188abc0001034000b41aeaac0004118200641286a41ac9fc0004184acc0001034000b41b082c2004110200641286a41bc9fc0004194acc0001034000b860701057f230041306b22042400024002400240024002400240024002400240410028028cad42220541016a220641004c0d0002404100280290ad424101460d00200441086a4100280288ad42110200200441186a41086a200441086a41086a29030037030020042004290308370318410028028cad420d024100417f36028cad4202404100280290ad42450d00024041002802a0ad422205450d004100280298ad422106200541027421050340200628020022072007280200417f6a3602000240200628020022072802000d00200741046a22072007280200417f6a3602002006280200220741046a2802000d00200710300b200641046a21062005417c6a22050d000b0b410028029cad4241ffffffff0371450d004100280298ad4210300b41004101360290ad4241002004290318370294ad424100200441206a29030037029cad424100410028028cad42220641016a220536028cad42200641026a220641004c0d030b4100200636028cad424100280294ad42220741016a220641004c0d0341002006360294ad4241002802a0ad422206450d0820064102744100280298ad426a417c6a280200220628020041016a220541014d0d042006200536020041004100280294ad42417f6a360294ad4220062802080d052006417f3602082001417f4c0d06200628020c2107200628021021080240024020010d00410121050c010b2001102f2205450d080b2004200136020c200420053602082005200020011085051a200420013602102003417f4c0d064101210502402003450d002003102f2205450d080b2005200220031085052105200441206a20033602002004200336021c200420053602182007200441086a200441186a200828024c1104002006200628020841016a36020820062006280200417f6a2205360200024020050d00200641046a22052005280200417f6a220536020020050d00200610300b4100410028028cad42417f6a36028cad42200441306a24000f0b41aeaac0004118200441286a41ac9fc00041d8aac0001034000b41b082c2004110200441286a41bc9fc00041f8aac0001034000b41aeaac0004118200441286a41ac9fc0004188abc0001034000b41aeaac0004118200441286a41ac9fc0004184acc0001034000b00000b41b082c2004110200441286a41bc9fc0004194acc0001034000b102c000b102a000b4100200536028cad4241002007360294ad424188a1c000412441aca1c0001050000be70601057f230041306b2203240002400240024002400240024002400240410028028cad4241016a220441004c0d0002404100280290ad424101460d00200341086a4100280288ad42110200200341186a41086a200341086a41086a29030037030020032003290308370318410028028cad420d024100417f36028cad4202404100280290ad42450d00024041002802a0ad422205450d004100280298ad422104200541027421050340200428020022062006280200417f6a3602000240200428020022062802000d00200641046a22062006280200417f6a3602002004280200220641046a2802000d00200610300b200441046a21042005417c6a22050d000b0b410028029cad4241ffffffff0371450d004100280298ad4210300b41004101360290ad4241002003290318370294ad424100200341206a29030037029cad424100410028028cad42220441016a36028cad42200441026a220441004c0d030b4100200436028cad424100280294ad42220541016a220441004c0d0341002004360294ad4202400240024041002802a0ad422207450d0020074102744100280298ad426a417c6a280200220428020041016a220541014b0d0100000b41002005360294ad420c010b200420053602004100210641004100280294ad42417f6a360294ad4220042802080d052004417f360208200341186a200428020c20012002200428021028021011030002400240200328021822010d000c010b200341206a2802002205417f4c0d070240024020050d00410121060c010b2005102f2206450d090b2006200120051085051a200328021c450d00200110300b2004200428020841016a36020820042004280200417f6a220136020020010d00200441046a22012001280200417f6a220136020020010d00200410300b4100410028028cad42417f6a36028cad422007450d072000200536020420002006360200200041086a2005360200200341306a24000f0b41aeaac0004118200341286a41ac9fc00041d8aac0001034000b41b082c2004110200341286a41bc9fc00041f8aac0001034000b41aeaac0004118200341286a41ac9fc0004188abc0001034000b41aeaac0004118200341286a41ac9fc0004184acc0001034000b41b082c2004110200341286a41bc9fc0004194acc0001034000b102c000b102a000b4188a1c000412441aca1c0001050000bf20501047f230041306b220224000240024002400240024002400240410028028cad42220341016a220441004c0d0002404100280290ad424101460d00200241086a4100280288ad42110200200241186a41086a200241086a41086a29030037030020022002290308370318410028028cad420d024100417f36028cad4202404100280290ad42450d00024041002802a0ad422203450d004100280298ad422104200341027421030340200428020022052005280200417f6a3602000240200428020022052802000d00200541046a22052005280200417f6a3602002004280200220541046a2802000d00200510300b200441046a21042003417c6a22030d000b0b410028029cad4241ffffffff0371450d004100280298ad4210300b41004101360290ad4241002002290318370294ad424100200241206a29030037029cad424100410028028cad42220441016a220336028cad42200441026a220441004c0d030b4100200436028cad424100280294ad42220541016a220441004c0d0341002004360294ad4241002802a0ad422204450d0620044102744100280298ad426a417c6a280200220428020041016a220341014d0d042004200336020041004100280294ad42417f6a360294ad4220042802080d052004417f360208200428020c20002001200428021028023011000021032004200428020841016a36020820042004280200417f6a2205360200024020050d00200441046a22052005280200417f6a220536020020050d00200410300b4100410028028cad42417f6a36028cad42200241306a240020030f0b41aeaac0004118200241286a41ac9fc00041d8aac0001034000b41b082c2004110200241286a41bc9fc00041f8aac0001034000b41aeaac0004118200241286a41ac9fc0004188abc0001034000b41aeaac0004118200241286a41ac9fc0004184acc0001034000b00000b41b082c2004110200241286a41bc9fc0004194acc0001034000b4100200336028cad4241002005360294ad424188a1c000412441aca1c0001050000bca0601057f230041306b22022400024002400240024002400240024002400240410028028cad42220341016a220441004c0d0002404100280290ad424101460d00200241086a4100280288ad42110200200241186a41086a200241086a41086a29030037030020022002290308370318410028028cad420d024100417f36028cad4202404100280290ad42450d00024041002802a0ad422203450d004100280298ad422104200341027421030340200428020022052005280200417f6a3602000240200428020022052802000d00200541046a22052005280200417f6a3602002004280200220541046a2802000d00200510300b200441046a21042003417c6a22030d000b0b410028029cad4241ffffffff0371450d004100280298ad4210300b41004101360290ad4241002002290318370294ad424100200241206a29030037029cad424100410028028cad42220441016a220336028cad42200441026a220441004c0d030b4100200436028cad424100280294ad42220541016a220441004c0d0341002004360294ad4241002802a0ad422204450d0820044102744100280298ad426a417c6a280200220428020041016a220341014d0d042004200336020041004100280294ad42417f6a360294ad4220042802080d052004417f3602082001417f4c0d06200428020c2105200428021021064101210302402001450d002001102f2203450d080b2002200136020c200220033602082003200020011085051a20022001360210200241003602182005200241086a200241186a200628024c1104002004200428020841016a36020820042004280200417f6a2203360200024020030d00200441046a22032003280200417f6a220336020020030d00200410300b4100410028028cad42417f6a36028cad42200241306a24000f0b41aeaac0004118200241286a41ac9fc00041d8aac0001034000b41b082c2004110200241286a41bc9fc00041f8aac0001034000b41aeaac0004118200241286a41ac9fc0004188abc0001034000b41aeaac0004118200241286a41ac9fc0004184acc0001034000b00000b41b082c2004110200241286a41bc9fc0004194acc0001034000b102c000b102a000b4100200336028cad4241002005360294ad424188a1c000412441aca1c0001050000b930601047f230041306b22012400024002400240024002400240410028028cad4241016a220241004c0d0002404100280290ad424101460d00200141086a4100280288ad42110200200141186a41086a200141086a41086a29030037030020012001290308370318410028028cad420d024100417f36028cad4202404100280290ad42450d00024041002802a0ad422203450d004100280298ad422102200341027421030340200228020022042004280200417f6a3602000240200228020022042802000d00200441046a22042004280200417f6a3602002002280200220441046a2802000d00200410300b200241046a21022003417c6a22030d000b0b410028029cad4241ffffffff0371450d004100280298ad4210300b41004101360290ad4241002001290318370294ad424100200141206a29030037029cad424100410028028cad42220241016a36028cad42200241026a220241004c0d030b4100200236028cad424100280294ad42220341016a220241004c0d0341002002360294ad4202400240024041002802a0ad422202450d0020024102744100280298ad426a417c6a280200220228020041016a220341014b0d0100000b41002003360294ad42200141003602180c010b2002200336020041004100280294ad42417f6a360294ad4220022802080d052002417f360208200141186a200228020c20022802102802541105002002200228020841016a36020820022002280200417f6a220336020020030d00200241046a22032003280200417f6a220336020020030d00200210300b4100410028028cad42417f6a36028cad422001280218450d0520002001290318370200200041086a200141186a41086a280200360200200141306a24000f0b41aeaac0004118200141286a41ac9fc00041d8aac0001034000b41b082c2004110200141286a41bc9fc00041f8aac0001034000b41aeaac0004118200141286a41ac9fc0004188abc0001034000b41aeaac0004118200141286a41ac9fc0004184acc0001034000b41b082c2004110200141286a41bc9fc0004194acc0001034000b4188a1c000412441aca1c0001050000bee0501047f230041306b220224000240024002400240024002400240410028028cad42220341016a220441004c0d0002404100280290ad424101460d00200241086a4100280288ad42110200200241186a41086a200241086a41086a29030037030020022002290308370318410028028cad420d024100417f36028cad4202404100280290ad42450d00024041002802a0ad422203450d004100280298ad422104200341027421030340200428020022052005280200417f6a3602000240200428020022052802000d00200541046a22052005280200417f6a3602002004280200220541046a2802000d00200510300b200441046a21042003417c6a22030d000b0b410028029cad4241ffffffff0371450d004100280298ad4210300b41004101360290ad4241002002290318370294ad424100200241206a29030037029cad424100410028028cad42220441016a220336028cad42200441026a220441004c0d030b4100200436028cad424100280294ad42220541016a220441004c0d0341002004360294ad4241002802a0ad422204450d0620044102744100280298ad426a417c6a280200220428020041016a220341014d0d042004200336020041004100280294ad42417f6a360294ad4220042802080d052004417f360208200428020c2000200120042802102802441104002004200428020841016a36020820042004280200417f6a2203360200024020030d00200441046a22032003280200417f6a220336020020030d00200410300b4100410028028cad42417f6a36028cad42200241306a24000f0b41aeaac0004118200241286a41ac9fc00041d8aac0001034000b41b082c2004110200241286a41bc9fc00041f8aac0001034000b41aeaac0004118200241286a41ac9fc0004188abc0001034000b41aeaac0004118200241286a41ac9fc0004184acc0001034000b00000b41b082c2004110200241286a41bc9fc0004194acc0001034000b4100200336028cad4241002005360294ad424188a1c000412441aca1c0001050000ba70602047f017e230041306b22032400024002400240024002400240410028028cad4241016a220441004c0d0002404100280290ad424101460d00200341086a4100280288ad42110200200341186a41086a200341086a41086a29030037030020032003290308370318410028028cad420d024100417f36028cad4202404100280290ad42450d00024041002802a0ad422205450d004100280298ad422104200541027421050340200428020022062006280200417f6a3602000240200428020022062802000d00200641046a22062006280200417f6a3602002004280200220641046a2802000d00200610300b200441046a21042005417c6a22050d000b0b410028029cad4241ffffffff0371450d004100280298ad4210300b41004101360290ad4241002003290318370294ad424100200341206a29030037029cad424100410028028cad42220441016a36028cad42200441026a220441004c0d030b4100200436028cad424100280294ad42220641016a220441004c0d0341002004360294ad4202400240024041002802a0ad422205450d0020054102744100280298ad426a417c6a280200220428020041016a220641014b0d0100000b41002006360294ad420c010b2004200636020041004100280294ad42417f6a360294ad4220042802080d052004417f360208200341186a200428020c2001200220042802102802601103000240024020032802184101460d00200341206a2903002107200328021c21060c010b410021060b2004200428020841016a36020820042004280200417f6a220136020020010d00200441046a22012001280200417f6a220136020020010d00200410300b4100410028028cad42417f6a36028cad422005450d052000200737020420002006360200200341306a24000f0b41aeaac0004118200341286a41ac9fc00041d8aac0001034000b41b082c2004110200341286a41bc9fc00041f8aac0001034000b41aeaac0004118200341286a41ac9fc0004188abc0001034000b41aeaac0004118200341286a41ac9fc0004184acc0001034000b41b082c2004110200341286a41bc9fc0004194acc0001034000b4188a1c000412441aca1c0001050000b810701077f230041306b2203240002400240024002400240024002400240410028028cad4241016a220441004c0d0020022802082105200228020421062002280200210702404100280290ad424101460d00200341086a4100280288ad42110200200341186a41086a200341086a41086a29030037030020032003290308370318410028028cad420d024100417f36028cad4202404100280290ad42450d00024041002802a0ad422204450d004100280298ad422102200441027421040340200228020022082008280200417f6a3602000240200228020022082802000d00200841046a22082008280200417f6a3602002002280200220841046a2802000d00200810300b200241046a21022004417c6a22040d000b0b410028029cad4241ffffffff0371450d004100280298ad4210300b41004101360290ad4241002003290318370294ad424100200341206a29030037029cad424100410028028cad42220241016a36028cad42200241026a220441004c0d030b4100200436028cad424100280294ad42220841016a220241004c0d0341002002360294ad42024041002802a0ad422202450d0020024102744100280298ad426a417c6a280200220228020041016a220441014d0d052002200436020041004100280294ad42417f6a360294ad4220022802080d062002417f3602082001417f4c0d07200228020c2108200228021021094101210402402001450d002001102f2204450d090b2003200136020c200320043602082004200020011085051a20032001360210200320053602202003200636021c200320073602182008200341086a200341186a200928025c1104002002200228020841016a36020820022002280200417f6a2204360200024020040d00200241046a22042004280200417f6a220436020020040d00200210300b4100410028028cad42417f6a36028cad42200341306a24000f0b41002008360294ad4202402006450d0020071030410028028cad4221040b41002004417f6a36028cad424188a1c000412441aca1c0001050000b41aeaac0004118200341286a41ac9fc00041d8aac0001034000b41b082c2004110200341286a41bc9fc00041f8aac0001034000b41aeaac0004118200341286a41ac9fc0004188abc0001034000b41aeaac0004118200341286a41ac9fc0004184acc0001034000b00000b41b082c2004110200341286a41bc9fc0004194acc0001034000b102c000b102a000bc00601047f230041306b2203240002400240024002400240410028028cad4241016a220441004c0d0002404100280290ad424101460d00200341086a4100280288ad42110200200341186a41086a200341086a41086a29030037030020032003290308370318410028028cad420d024100417f36028cad4202404100280290ad42450d00024041002802a0ad422205450d004100280298ad422104200541027421050340200428020022062006280200417f6a3602000240200428020022062802000d00200641046a22062006280200417f6a3602002004280200220641046a2802000d00200610300b200441046a21042005417c6a22050d000b0b410028029cad4241ffffffff0371450d004100280298ad4210300b41004101360290ad4241002003290318370294ad424100200341206a29030037029cad424100410028028cad42220441016a36028cad42200441026a220441004c0d030b4100200436028cad424100280294ad42220541016a220441004c0d0341002004360294ad420240024041002802a0ad422204450d0020044102744100280298ad426a417c6a280200220428020041016a220541014b0d0100000b41002005360294ad424100410028028cad42417f6a36028cad424188a1c000412441aca1c0001050000b2004200536020041004100280294ad42417f6a360294ad4220042802080d042004417f360208200341186a410472200428020c2001200220042802102802381103002004200428020841016a36020820042004280200417f6a220536020002400240024020050d00200441046a22052005280200417f6a220536020020050d01200410304100410028028cad42417f6a36028cad420c020b4100410028028cad42417f6a36028cad420c010b4100410028028cad42417f6a36028cad420b2000200329021c370200200041086a200341246a280200360200200341306a24000f0b41aeaac0004118200341286a41ac9fc00041d8aac0001034000b41b082c2004110200341286a41bc9fc00041f8aac0001034000b41aeaac0004118200341286a41ac9fc0004188abc0001034000b41aeaac0004118200341286a41ac9fc0004184acc0001034000b41b082c2004110200341286a41bc9fc0004194acc0001034000bea0501047f230041306b220024000240024002400240024002400240410028028cad42220141016a220241004c0d0002404100280290ad424101460d00200041086a4100280288ad42110200200041186a41086a200041086a41086a29030037030020002000290308370318410028028cad420d024100417f36028cad4202404100280290ad42450d00024041002802a0ad422201450d004100280298ad422102200141027421010340200228020022032003280200417f6a3602000240200228020022032802000d00200341046a22032003280200417f6a3602002002280200220341046a2802000d00200310300b200241046a21022001417c6a22010d000b0b410028029cad4241ffffffff0371450d004100280298ad4210300b41004101360290ad4241002000290318370294ad424100200041206a29030037029cad424100410028028cad42220241016a220136028cad42200241026a220241004c0d030b4100200236028cad424100280294ad42220341016a220241004c0d0341002002360294ad4241002802a0ad422202450d0620024102744100280298ad426a417c6a280200220228020041016a220141014d0d042002200136020041004100280294ad42417f6a360294ad4220022802080d052002417f360208200228020c20022802102802641102002002200228020841016a36020820022002280200417f6a2201360200024020010d00200241046a22012001280200417f6a220136020020010d00200210300b4100410028028cad42417f6a36028cad42200041306a24000f0b41aeaac0004118200041286a41ac9fc00041d8aac0001034000b41b082c2004110200041286a41bc9fc00041f8aac0001034000b41aeaac0004118200041286a41ac9fc0004188abc0001034000b41aeaac0004118200041286a41ac9fc0004184acc0001034000b00000b41b082c2004110200041286a41bc9fc0004194acc0001034000b4100200136028cad4241002003360294ad424188a1c000412441aca1c0001050000b820601047f230041306b2200240002400240024002400240024002400240410028028cad42220141016a220241004c0d0002404100280290ad424101460d00200041086a4100280288ad42110200200041186a41086a200041086a41086a29030037030020002000290308370318410028028cad420d024100417f36028cad4202404100280290ad42450d00024041002802a0ad422201450d004100280298ad422102200141027421010340200228020022032003280200417f6a3602000240200228020022032802000d00200341046a22032003280200417f6a3602002002280200220341046a2802000d00200310300b200241046a21022001417c6a22010d000b0b410028029cad4241ffffffff0371450d004100280298ad4210300b41004101360290ad4241002000290318370294ad424100200041206a29030037029cad424100410028028cad42220241016a220136028cad42200241026a220241004c0d030b4100200236028cad424100280294ad42220341016a220241004c0d0341002002360294ad4241002802a0ad422202450d0420024102744100280298ad426a417c6a280200220228020041016a220141014d0d052002200136020041004100280294ad42417f6a360294ad4220022802080d062002417f360208200228020c200228021028026811060021012002200228020841016a36020820022002280200417f6a2203360200024020030d00200241046a22032003280200417f6a220336020020030d00200210300b4100410028028cad42417f6a36028cad4220010d07200041306a24000f0b41aeaac0004118200041286a41ac9fc00041d8aac0001034000b41b082c2004110200041286a41bc9fc00041f8aac0001034000b41aeaac0004118200041286a41ac9fc0004188abc0001034000b41aeaac0004118200041286a41ac9fc0004184acc0001034000b4100200136028cad4241002003360294ad424188a1c000412441aca1c0001050000b00000b41b082c2004110200041286a41bc9fc0004194acc0001034000b41bca1c000412c41e8a1c0001050000b820601047f230041306b2200240002400240024002400240024002400240410028028cad42220141016a220241004c0d0002404100280290ad424101460d00200041086a4100280288ad42110200200041186a41086a200041086a41086a29030037030020002000290308370318410028028cad420d024100417f36028cad4202404100280290ad42450d00024041002802a0ad422201450d004100280298ad422102200141027421010340200228020022032003280200417f6a3602000240200228020022032802000d00200341046a22032003280200417f6a3602002002280200220341046a2802000d00200310300b200241046a21022001417c6a22010d000b0b410028029cad4241ffffffff0371450d004100280298ad4210300b41004101360290ad4241002000290318370294ad424100200041206a29030037029cad424100410028028cad42220241016a220136028cad42200241026a220241004c0d030b4100200236028cad424100280294ad42220341016a220241004c0d0341002002360294ad4241002802a0ad422202450d0420024102744100280298ad426a417c6a280200220228020041016a220141014d0d052002200136020041004100280294ad42417f6a360294ad4220022802080d062002417f360208200228020c200228021028026c11060021012002200228020841016a36020820022002280200417f6a2203360200024020030d00200241046a22032003280200417f6a220336020020030d00200210300b4100410028028cad42417f6a36028cad4220010d07200041306a24000f0b41aeaac0004118200041286a41ac9fc00041d8aac0001034000b41b082c2004110200041286a41bc9fc00041f8aac0001034000b41aeaac0004118200041286a41ac9fc0004188abc0001034000b41aeaac0004118200041286a41ac9fc0004184acc0001034000b4100200136028cad4241002003360294ad424188a1c000412441aca1c0001050000b00000b41b082c2004110200041286a41bc9fc0004194acc0001034000b41f8a1c000412a41a4a2c0001050000ba10701027f230041c0006b2205240002400240024002400240024002402002417f4c0d004101210602402002450d002002102f2206450d020b2006200120021085052106200520023602102005200236020c20052006360208410028028cad4241016a220241004c0d0202404100280290ad424101460d00200541186a4100280288ad42110200200541286a41086a200541186a41086a29030037030020052005290318370328410028028cad420d044100417f36028cad4202404100280290ad42450d00024041002802a0ad422206450d004100280298ad422102200641027421060340200228020022012001280200417f6a3602000240200228020022012802000d00200141046a22012001280200417f6a3602002002280200220141046a2802000d00200110300b200241046a21022006417c6a22060d000b0b410028029cad4241ffffffff0371450d004100280298ad4210300b41004101360290ad4241002005290328370294ad424100200541306a29030037029cad424100410028028cad42220241016a36028cad42200241026a220241004c0d050b4100200236028cad424100280294ad42220641016a220241004c0d0541002002360294ad420240024041002802a0ad422202450d0020024102744100280298ad426a417c6a280200220228020041016a220641014b0d0100000b41002006360294ad424100410028028cad42417f6a36028cad424188a1c000412441aca1c0001050000b2002200636020041004100280294ad42417f6a360294ad4220022802080d062002417f360208200541286a410472200228020c200541086a20032004200228021028021c1107002002200228020841016a36020820022002280200417f6a220636020002400240024020060d00200241046a22062006280200417f6a220636020020060d01200210304100410028028cad42417f6a36028cad420c020b4100410028028cad42417f6a36028cad420c010b4100410028028cad42417f6a36028cad420b2000200529022c370200200041086a200541346a2802003602000240200528020c450d00200528020810300b200541c0006a24000f0b102c000b102a000b41aeaac0004118200541386a41ac9fc00041d8aac0001034000b41b082c2004110200541386a41bc9fc00041f8aac0001034000b41aeaac0004118200541386a41ac9fc0004188abc0001034000b41aeaac0004118200541386a41ac9fc0004184acc0001034000b41b082c2004110200541386a41bc9fc0004194acc0001034000bec0702027f017e230041c0006b2208240002400240024002400240024002402002417f4c0d004101210902402002450d002002102f2209450d020b2009200120021085052109200820023602102008200236020c20082009360208410028028cad4241016a220241004c0d0202404100280290ad424101460d00200841186a4100280288ad42110200200841286a41086a200841186a41086a29030037030020082008290318370328410028028cad420d044100417f36028cad4202404100280290ad42450d00024041002802a0ad422209450d004100280298ad422102200941027421090340200228020022012001280200417f6a3602000240200228020022012802000d00200141046a22012001280200417f6a3602002002280200220141046a2802000d00200110300b200241046a21022009417c6a22090d000b0b410028029cad4241ffffffff0371450d004100280298ad4210300b41004101360290ad4241002008290328370294ad424100200841306a29030037029cad424100410028028cad42220241016a36028cad42200241026a220241004c0d050b4100200236028cad424100280294ad42220941016a220241004c0d0541002002360294ad420240024041002802a0ad422202450d0020024102744100280298ad426a417c6a280200220228020041016a220941014b0d0100000b41002009360294ad424100410028028cad42417f6a36028cad424188a1c000412441aca1c0001050000b2002200936020041004100280294ad42417f6a360294ad4220022802080d062002417f360208200841286a410472200228020c200841086a20032004200228021028021c1107002002200228020841016a36020820022002280200417f6a220936020002400240024020090d00200241046a22092009280200417f6a220936020020090d01200210304100410028028cad42417f6a36028cad420c020b4100410028028cad42417f6a36028cad420c010b4100410028028cad42417f6a36028cad420b02400240200828022c22090d00410021010c010b20052009200841306a290300220a422088a72202200720022007491b22016a2006200220016b2201200120064b1b1085051a41012101200aa7450d00200910300b0240200828020c450d00200828020810300b2000200236020420002001360200200841c0006a24000f0b102c000b102a000b41aeaac0004118200841386a41ac9fc00041d8aac0001034000b41b082c2004110200841386a41bc9fc00041f8aac0001034000b41aeaac0004118200841386a41ac9fc0004188abc0001034000b41aeaac0004118200841386a41ac9fc0004184acc0001034000b41b082c2004110200841386a41bc9fc0004194acc0001034000bdb0701037f230041c0006b220624000240024002400240024002400240024002402001417f4c0d004101210702402001450d002001102f2207450d020b2007200020011085052107200620013602102006200136020c20062007360208410028028cad42220741016a220141004c0d0202404100280290ad424101460d00200641186a4100280288ad42110200200641286a41086a200641186a41086a29030037030020062006290318370328410028028cad420d044100417f36028cad4202404100280290ad42450d00024041002802a0ad422207450d004100280298ad422101200741027421070340200128020022002000280200417f6a3602000240200128020022002802000d00200041046a22002000280200417f6a3602002001280200220041046a2802000d00200010300b200141046a21012007417c6a22070d000b0b410028029cad4241ffffffff0371450d004100280298ad4210300b41004101360290ad4241002006290328370294ad424100200641306a29030037029cad424100410028028cad42220141016a220736028cad42200141026a220141004c0d050b4100200136028cad424100280294ad42220041016a220141004c0d0541002001360294ad4241002802a0ad422201450d0820014102744100280298ad426a417c6a280200220128020041016a220741014d0d062001200736020041004100280294ad42417f6a360294ad4220012802080d072001417f3602082003417f4c0d00200128020c2100200128021021080240024020030d00410121070c010b2003102f2207450d020b2006200336021c200620073602182007200220031085051a200620033602202005417f4c0d004101210702402005450d002005102f2207450d020b2007200420051085052107200641306a20053602002006200536022c200620073602282000200641086a200641186a200641286a20082802501103002001200128020841016a36020820012001280200417f6a2207360200024020070d00200141046a22072007280200417f6a220736020020070d00200110300b4100410028028cad42417f6a36028cad420240200628020c450d00200628020810300b200641c0006a24000f0b102c000b102a000b41aeaac0004118200641386a41ac9fc00041d8aac0001034000b41b082c2004110200641386a41bc9fc00041f8aac0001034000b41aeaac0004118200641386a41ac9fc0004188abc0001034000b41aeaac0004118200641386a41ac9fc0004184acc0001034000b00000b41b082c2004110200641386a41bc9fc0004194acc0001034000b4100200736028cad4241002000360294ad424188a1c000412441aca1c0001050000b9f0701037f230041c0006b220424000240024002400240024002400240024002402001417f4c0d004101210502402001450d002001102f2205450d020b2005200020011085052105200420013602102004200136020c20042005360208410028028cad42220541016a220141004c0d0202404100280290ad424101460d00200441186a4100280288ad42110200200441286a41086a200441186a41086a29030037030020042004290318370328410028028cad420d044100417f36028cad4202404100280290ad42450d00024041002802a0ad422205450d004100280298ad422101200541027421050340200128020022002000280200417f6a3602000240200128020022002802000d00200041046a22002000280200417f6a3602002001280200220041046a2802000d00200010300b200141046a21012005417c6a22050d000b0b410028029cad4241ffffffff0371450d004100280298ad4210300b41004101360290ad4241002004290328370294ad424100200441306a29030037029cad424100410028028cad42220141016a220536028cad42200141026a220141004c0d050b4100200136028cad424100280294ad42220041016a220141004c0d0541002001360294ad4241002802a0ad422201450d0820014102744100280298ad426a417c6a280200220128020041016a220541014d0d062001200536020041004100280294ad42417f6a360294ad4220012802080d072001417f3602082003417f4c0d00200128020c2100200128021021064101210502402003450d002003102f2205450d020b2004200336021c200420053602182005200220031085051a20042003360220200441003602282000200441086a200441186a200441286a20062802501103002001200128020841016a36020820012001280200417f6a2205360200024020050d00200141046a22052005280200417f6a220536020020050d00200110300b4100410028028cad42417f6a36028cad420240200428020c450d00200428020810300b200441c0006a24000f0b102c000b102a000b41aeaac0004118200441386a41ac9fc00041d8aac0001034000b41b082c2004110200441386a41bc9fc00041f8aac0001034000b41aeaac0004118200441386a41ac9fc0004188abc0001034000b41aeaac0004118200441386a41ac9fc0004184acc0001034000b00000b41b082c2004110200441386a41bc9fc0004194acc0001034000b4100200536028cad4241002000360294ad424188a1c000412441aca1c0001050000bf30601027f230041c0006b220524000240024002400240024002400240024002402002417f4c0d004101210602402002450d002002102f2206450d020b2006200120021085052106200520023602102005200236020c20052006360208410028028cad42220641016a220241004c0d0202404100280290ad424101460d00200541186a4100280288ad42110200200541286a41086a200541186a41086a29030037030020052005290318370328410028028cad420d044100417f36028cad4202404100280290ad42450d00024041002802a0ad422206450d004100280298ad422102200641027421060340200228020022012001280200417f6a3602000240200228020022012802000d00200141046a22012001280200417f6a3602002002280200220141046a2802000d00200110300b200241046a21022006417c6a22060d000b0b410028029cad4241ffffffff0371450d004100280298ad4210300b41004101360290ad4241002005290328370294ad424100200541306a29030037029cad424100410028028cad42220241016a220636028cad42200241026a220241004c0d050b4100200236028cad424100280294ad42220141016a220241004c0d0541002002360294ad4241002802a0ad422202450d0820024102744100280298ad426a417c6a280200220228020041016a220641014d0d062002200636020041004100280294ad42417f6a360294ad4220022802080d072002417f3602082005200228020c200541086a2003200420022802102802401107002005280204210620052d000021012002200228020841016a36020820022002280200417f6a2203360200024020030d00200241046a22032003280200417f6a220336020020030d00200210300b4100410028028cad42417f6a36028cad420240200528020c450d00200528020810300b2000200636020420002001417f73410171360200200541c0006a24000f0b102c000b102a000b41aeaac0004118200541386a41ac9fc00041d8aac0001034000b41b082c2004110200541386a41bc9fc00041f8aac0001034000b41aeaac0004118200541386a41ac9fc0004188abc0001034000b41aeaac0004118200541386a41ac9fc0004184acc0001034000b00000b41b082c2004110200541386a41bc9fc0004194acc0001034000b4100200636028cad4241002001360294ad424188a1c000412441aca1c0001050000bd30601027f230041c0006b220424000240024002400240024002400240024002402001417f4c0d004101210502402001450d002001102f2205450d020b2005200020011085052105200420013602102004200136020c20042005360208410028028cad42220541016a220141004c0d0202404100280290ad424101460d00200441186a4100280288ad42110200200441286a41086a200441186a41086a29030037030020042004290318370328410028028cad420d044100417f36028cad4202404100280290ad42450d00024041002802a0ad422205450d004100280298ad422101200541027421050340200128020022002000280200417f6a3602000240200128020022002802000d00200041046a22002000280200417f6a3602002001280200220041046a2802000d00200010300b200141046a21012005417c6a22050d000b0b410028029cad4241ffffffff0371450d004100280298ad4210300b41004101360290ad4241002004290328370294ad424100200441306a29030037029cad424100410028028cad42220141016a220536028cad42200141026a220141004c0d050b4100200136028cad424100280294ad42220041016a220141004c0d0541002001360294ad4241002802a0ad422201450d0820014102744100280298ad426a417c6a280200220128020041016a220541014d0d062001200536020041004100280294ad42417f6a360294ad4220012802080d072001417f360208200128020c200441086a20022003200128021028023411080021052001200128020841016a36020820012001280200417f6a2200360200024020000d00200141046a22002000280200417f6a220036020020000d00200110300b4100410028028cad42417f6a36028cad420240200428020c450d00200428020810300b200441c0006a240020050f0b102c000b102a000b41aeaac0004118200441386a41ac9fc00041d8aac0001034000b41b082c2004110200441386a41bc9fc00041f8aac0001034000b41aeaac0004118200441386a41ac9fc0004188abc0001034000b41aeaac0004118200441386a41ac9fc0004184acc0001034000b00000b41b082c2004110200441386a41bc9fc0004194acc0001034000b4100200536028cad4241002000360294ad424188a1c000412441aca1c0001050000bcf0601027f230041c0006b220424000240024002400240024002400240024002402001417f4c0d004101210502402001450d002001102f2205450d020b2005200020011085052105200420013602102004200136020c20042005360208410028028cad42220541016a220141004c0d0202404100280290ad424101460d00200441186a4100280288ad42110200200441286a41086a200441186a41086a29030037030020042004290318370328410028028cad420d044100417f36028cad4202404100280290ad42450d00024041002802a0ad422205450d004100280298ad422101200541027421050340200128020022002000280200417f6a3602000240200128020022002802000d00200041046a22002000280200417f6a3602002001280200220041046a2802000d00200010300b200141046a21012005417c6a22050d000b0b410028029cad4241ffffffff0371450d004100280298ad4210300b41004101360290ad4241002004290328370294ad424100200441306a29030037029cad424100410028028cad42220141016a220536028cad42200141026a220141004c0d050b4100200136028cad424100280294ad42220041016a220141004c0d0541002001360294ad4241002802a0ad422201450d0820014102744100280298ad426a417c6a280200220128020041016a220541014d0d062001200536020041004100280294ad42417f6a360294ad4220012802080d072001417f360208200128020c200441086a2002200320012802102802481103002001200128020841016a36020820012001280200417f6a2205360200024020050d00200141046a22052005280200417f6a220536020020050d00200110300b4100410028028cad42417f6a36028cad420240200428020c450d00200428020810300b200441c0006a24000f0b102c000b102a000b41aeaac0004118200441386a41ac9fc00041d8aac0001034000b41b082c2004110200441386a41bc9fc00041f8aac0001034000b41aeaac0004118200441386a41ac9fc0004188abc0001034000b41aeaac0004118200441386a41ac9fc0004184acc0001034000b00000b41b082c2004110200441386a41bc9fc0004194acc0001034000b4100200536028cad4241002000360294ad424188a1c000412441aca1c0001050000bf40601027f230041c0006b22032400024002400240024002400240024002402002417f4c0d004101210402402002450d002002102f2204450d020b2004200120021085052104200320023602102003200236020c20032004360208410028028cad4241016a220241004c0d0202404100280290ad424101460d00200341186a4100280288ad42110200200341286a41086a200341186a41086a29030037030020032003290318370328410028028cad420d044100417f36028cad4202404100280290ad42450d00024041002802a0ad422204450d004100280298ad422102200441027421040340200228020022012001280200417f6a3602000240200228020022012802000d00200141046a22012001280200417f6a3602002002280200220141046a2802000d00200110300b200241046a21022004417c6a22040d000b0b410028029cad4241ffffffff0371450d004100280298ad4210300b41004101360290ad4241002003290328370294ad424100200341306a29030037029cad424100410028028cad42220241016a36028cad42200241026a220241004c0d050b4100200236028cad424100280294ad42220441016a220241004c0d0541002002360294ad4202400240024041002802a0ad422202450d0020024102744100280298ad426a417c6a280200220228020041016a220441014b0d0100000b41002004360294ad42200341003602280c010b2002200436020041004100280294ad42417f6a360294ad4220022802080d072002417f360208200341286a200228020c200341086a20022802102802581104002002200228020841016a36020820022002280200417f6a220436020020040d00200241046a22042004280200417f6a220436020020040d00200210300b4100410028028cad42417f6a36028cad422003280228450d0720002003290328370200200041086a200341286a41086a2802003602000240200328020c450d00200328020810300b200341c0006a24000f0b102c000b102a000b41aeaac0004118200341386a41ac9fc00041d8aac0001034000b41b082c2004110200341386a41bc9fc00041f8aac0001034000b41aeaac0004118200341386a41ac9fc0004188abc0001034000b41aeaac0004118200341386a41ac9fc0004184acc0001034000b41b082c2004110200341386a41bc9fc0004194acc0001034000b4188a1c000412441aca1c0001050000ba10701027f230041c0006b2205240002400240024002400240024002402002417f4c0d004101210602402002450d002002102f2206450d020b2006200120021085052106200520023602102005200236020c20052006360208410028028cad4241016a220241004c0d0202404100280290ad424101460d00200541186a4100280288ad42110200200541286a41086a200541186a41086a29030037030020052005290318370328410028028cad420d044100417f36028cad4202404100280290ad42450d00024041002802a0ad422206450d004100280298ad422102200641027421060340200228020022012001280200417f6a3602000240200228020022012802000d00200141046a22012001280200417f6a3602002002280200220141046a2802000d00200110300b200241046a21022006417c6a22060d000b0b410028029cad4241ffffffff0371450d004100280298ad4210300b41004101360290ad4241002005290328370294ad424100200541306a29030037029cad424100410028028cad42220241016a36028cad42200241026a220241004c0d050b4100200236028cad424100280294ad42220641016a220241004c0d0541002002360294ad420240024041002802a0ad422202450d0020024102744100280298ad426a417c6a280200220228020041016a220641014b0d0100000b41002006360294ad424100410028028cad42417f6a36028cad424188a1c000412441aca1c0001050000b2002200636020041004100280294ad42417f6a360294ad4220022802080d062002417f360208200541286a410472200228020c200541086a20032004200228021028023c1107002002200228020841016a36020820022002280200417f6a220636020002400240024020060d00200241046a22062006280200417f6a220636020020060d01200210304100410028028cad42417f6a36028cad420c020b4100410028028cad42417f6a36028cad420c010b4100410028028cad42417f6a36028cad420b2000200529022c370200200041086a200541346a2802003602000240200528020c450d00200528020810300b200541c0006a24000f0b102c000b102a000b41aeaac0004118200541386a41ac9fc00041d8aac0001034000b41b082c2004110200541386a41bc9fc00041f8aac0001034000b41aeaac0004118200541386a41ac9fc0004188abc0001034000b41aeaac0004118200541386a41ac9fc0004184acc0001034000b41b082c2004110200541386a41bc9fc0004194acc0001034000b02000b02000bbc04010a7f230041f0076b220224000240024002400240200041106a28020022032f01ae2b220420016a2205410c4f0d00200041186a2802002f01ae2b22062001490d01200320053b01ae2b200041186a2203280200200620016b22073b01ae2b20032802002106200241f8036a200041046a280200200028020841f8036c6a220841f8031085051a200820062001417f6a220941f8036c220a6a41f8031086051a2002200241f8036a41f803108505210b200041106a2206280200200441f8036c6a200b41f8031085051a20092005200441016a22026b470d022006280200200241f8036c6a2003280200200a1085051a200328020022082008200141f8036c6a200741f8036c1086051a200028020c21080240024020002802140d002008450d010c050b2008450d042006280200220820024102746a41b02b6a2003280200220641b02b6a2200200141027422031085051a2000200020036a200741027441046a1086051a0240200520044d0d00200441027420086a41b42b6a210003402000280200220320023b01ac2b200320083602a82b200041046a2100200241016a21022001417f6a22010d000b0b2007417f460d00200641b02b6a2102200741016a21034100210003402002280200220120003b01ac2b200120063602a82b200241046a21022003200041016a2200470d000b0b200b41f0076a24000f0b41dca4c20041324190a5c200102d000b41a0a5c200412841c8a5c200102d000b41f8a2c200412841a0a3c200102d000b41d8a5c20041284180a6c200102d000be803010d7f23004180046b2202240002400240200141106a28020022032f01ae2b220441016a2205200141186a28020022062f01ae2b22076a2208410c4f0d00200128020821092001280200210a2001280204220b2f01ae2b210c200320083b01ae2b200241086a200b200941f8036c6a220141f8031085051a2001200141f8036a200c2009417f736a220d41f8036c1086051a2003200441f8036c6a200241086a41f8031085051a2003200541f8036c6a2006200741f8036c1085051a200b41b02b6a220e200941016a22014102746a20094102742209200e6a41086a200d4102741086051a02402001200c4f0d002009200b6a41b42b6a210903402009280200220d20013b01ac2b200d200b3602a82b200941046a2109200c200141016a2201470d000b0b200b200b2f01ae2b417f6a3b01ae2b0240200a4102490d002007200820056b470d02200320054102746a41b02b6a200641b02b6a200741016a22094102741085051a200820044d0d00200441027420036a41b42b6a210103402001280200220d20053b01ac2b200d20033602a82b200141046a2101200541016a21052009417f6a22090d000b0b200610302000200b3602042000200a36020020024180046a24000f0b41a0a4c200412a41cca4c200102d000b41f8a2c200412841a0a3c200102d000bd80b03077f027e037f230041e0076b2203240020012802002104200128020422052f01a6292106200341e0036a20052001280208220741d0036c6a220141d0031085051a2001200141d0036a20062007417f736a220841d0036c1086051a200541f0276a220920074104746a220141086a290300210a2001290300210b20012009200741016a220c4104746a20084104741086051a20052006417f6a22013b01a629200341106a200341e0036a41d0031085051a0240200141ffff037141044b0d0002400240024020052802a0292206450d00200441016a21090240024020052f01a42922080d0020062f01a6290d01200341f4036a4101360200200342013702e403200341f4a9c2003602e003200341043602c40720034188a4c2003602c0072003200341c0076a3602f003200341e0036a4190a4c200103a000b024020062008417f6a22084102746a41a8296a280200220d2f01a629200141ffff03716a41016a410b4b0d00200341f8036a2005360200200341f0036a200d360200200320043602f403200320043602ec03200320083602e803200320063602e403200320093602e003200341b0076a200341e0036a41012007108c010c040b200341f8036a2005360200200341f0036a200d360200200320043602f403200320043602ec03200320083602e803200320063602e403200320093602e003200341e0036a4101108d012003200c3602b8070c020b0240200141ffff0371200841027420066a41ac296a28020022012f01a6296a41016a410b4b0d00200341f8036a2001360200200341f0036a2005360200200320043602f403200320043602ec03200320083602e803200320063602e403200320093602e003200341b0076a200341e0036a41002007108c010c030b200341f8036a2001360200200341f0036a2005360200200320043602f403200320043602ec03200320083602e803200320063602e403200320093602e003200341e0036a4101108e010b200320073602b8070b200320053602b407200320043602b0070b20032802b807210720032802b007210420032802b40722052802a0292201450d0020012f01a629220941044b0d00200441016a21060240034020012802a0292208450d01200941ffff03712109200641016a210d024002400240024020012f01a429220c0d0020082f01a6290d01200341f4036a4101360200200342013702e403200341f4a9c2003602e003200341043602c40720034188a4c2003602c0072003200341c0076a3602f003200341e0036a4190a4c200103a000b2008200c417f6a220e4102746a41a8296a280200210c200320013602d807200320063602d4072003200c3602d007200320063602cc072003200e3602c807200320083602c4072003200d3602c00702402009200c2f01a6296a41016a410b4b0d00200341e0036a41186a200341c0076a41186a280200360200200341e0036a41106a200341c0076a41106a290300370300200341e0036a41086a200341c0076a41086a290300370300200320032903c0073703e003200341086a200341e0036a108f01200328020c2101200328020821060c030b200341c0076a410520096b108d010c010b2003200c41027420086a41ac296a280200220e3602d807200320063602d407200320013602d007200320063602cc072003200c3602c807200320083602c4072003200d3602c00702402009200e2f01a6296a41016a410b4b0d00200341e0036a41186a200341c0076a41186a280200360200200341e0036a41106a200341c0076a41106a290300370300200341e0036a41086a200341c0076a41086a290300370300200320032903c0073703e0032003200341e0036a108f0120032802042101200328020021060c020b200341c0076a410520096b108e010b410021010b2001450d0220012f01a629220941044d0d000c020b0b200941ffff03710d00200241013a00000b2000200341106a41d003108505220141d8036a200a3703002001200b3703d003200141e8036a2007360200200141e4036a2005360200200120043602e003200341e0076a24000b8305020f7f027e230041d0036b22042400024002400240200141186a28020022052f01a6292206200141106a28020022072f01a629220820021b2003490d00200841016a220920066a220a410c4f0d01200128020c210b2001280208210c2001280200210d2001280204220e2f01a629210f2007200a3b01a6292004200e200c41d0036c6a220141d00310850521102001200141d0036a200f200c417f736a220441d0036c1086051a2007200841d0036c6a201041d0031085051a2007200941d0036c6a2005200641d0036c1085051a200e41f0276a2211200c4104746a22122903002113201241086a290300211420122011200c41016a22014104746a20044104741086051a200741f0276a221220084104746a2211201437030820112013370300201220094104746a200541f0276a20064104741085051a200e41a8296a221220014102746a200c410274220c20126a41086a20044102741086051a02402001200f4f0d00200c200e6a41ac296a210c0340200c280200220420013b01a4292004200e3602a029200c41046a210c200f200141016a2201470d000b0b200e200e2f01a629417f6a3b01a6290240200d4102490d002006200a20096b470d03200720094102746a41a8296a200541a8296a200641016a22044102741085051a200a20084d0d00200841027420076a41ac296a21012009210c03402001280200220e200c3b01a429200e20073602a029200141046a2101200c41016a210c2004417f6a22040d000b0b20051030200020073602042000200b36020020002009410020021b20036a360208201041d0036a24000f0b419ca7c20041910141b0a8c200102d000b41a0a4c200412a41cca4c200102d000b41f8a2c200412841a0a3c200102d000b9e05040a7f027e027f017e230041a0076b220224000240024002400240200041186a2802002f01a629220320016a2204410c4f0d00200041106a28020022052f01a62922062001490d012005200620016b22073b01a629200041186a220528020020043b01a62920052802002208200141d0036c6a2008200341d0036c1086051a200528020041f0276a220820014104746a200820034104741086051a2006200741016a22036b22082001417f6a470d022005280200200041106a2206280200200341d0036c6a200841d0036c22091085051a200528020041f0276a200628020020034104746a41f0276a2008410474220a1085051a2006280200220820074104746a220b41f8276a290300210c200b41f0276a290300210d200241d0036a200041046a280200220b2000280208220e41d0036c6a220f41d0031085051a200f2008200741d0036c6a41d0031086051a200b200e4104746a220741f0276a220829030021102008200d370300200741f8276a2207290300210d2007200c3703002002200241d0036a41d0031085052108200528020020096a200841d0031085051a2005280200200a6a220241f8276a200d370300200241f0276a2010370300200028020c21020240024020002802140d002002450d010c050b2002450d04200628020021072005280200220241a8296a2200200141027422056a2000200420016b41027441046a1086051a2000200720034102746a41a8296a20051085051a200441016a21074100210103402000280200220520013b01a429200520023602a029200041046a21002007200141016a2201470d000b0b200841a0076a24000f0b4190a6c200413341c4a6c200102d000b41d4a6c200412741fca6c200102d000b41f8a2c200412841a0a3c200102d000b41d8a5c2004128418ca7c200102d000bef0504097f027e037f017e230041a0076b220224000240024002400240200041106a28020022032f01a629220420016a2205410c4f0d00200041186a2802002f01a62922062001490d01200320053b01a629200041186a2203280200200620016b22073b01a629200328020022062001417f6a220841047422096a220a41f8276a290300210b200a41f0276a290300210c200241d0036a200041046a280200220a2000280208220d41d0036c6a220e41d0031085051a200e2006200841d0036c220f6a41d0031086051a200a200d4104746a220641f0276a220a2903002110200a200c370300200641f8276a2206290300210c2006200b3703002002200241d0036a41d003108505210a200041106a2206280200200441d0036c6a200a41d0031085051a200628020020044104746a220241f8276a200c370300200241f0276a201037030020082005200441016a22026b470d022006280200200241d0036c6a2003280200200f1085051a200628020020024104746a41f0276a200328020041f0276a20091085051a200328020022082008200141d0036c6a200741d0036c1086051a200328020041f0276a2208200820014104746a20074104741086051a200028020c21080240024020002802140d002008450d010c050b2008450d042006280200220820024102746a41a8296a2003280200220641a8296a2200200141027422031085051a2000200020036a200741027441046a1086051a0240200520044d0d00200441027420086a41ac296a210003402000280200220320023b01a429200320083602a029200041046a2100200241016a21022001417f6a22010d000b0b2007417f460d00200641a8296a2102200741016a21034100210003402002280200220120003b01a429200120063602a029200241046a21022003200041016a2200470d000b0b200a41a0076a24000f0b41dca4c20041324190a5c200102d000b41a0a5c200412841c8a5c200102d000b41f8a2c200412841a0a3c200102d000b41d8a5c20041284180a6c200102d000bca04020e7f027e230041d0036b2202240002400240200141106a28020022032f01a629220441016a2205200141186a28020022062f01a62922076a2208410c4f0d00200128020821092001280200210a2001280204220b2f01a629210c200320083b01a6292002200b200941d0036c6a220141d003108505210d2001200141d0036a200c2009417f736a220241d0036c1086051a2003200441d0036c6a200d41d0031085051a2003200541d0036c6a2006200741d0036c1085051a200b41f0276a220e20094104746a220f2903002110200f41086a2903002111200f200e200941016a22014104746a20024104741086051a200341f0276a220f20044104746a220e2011370308200e2010370300200f20054104746a200641f0276a20074104741085051a200b41a8296a220f20014102746a20094102742209200f6a41086a20024102741086051a02402001200c4f0d002009200b6a41ac296a210903402009280200220220013b01a4292002200b3602a029200941046a2109200c200141016a2201470d000b0b200b200b2f01a629417f6a3b01a6290240200a4102490d002007200820056b470d02200320054102746a41a8296a200641a8296a200741016a22094102741085051a200820044d0d00200441027420036a41ac296a210103402001280200220220053b01a429200220033602a029200141046a2101200541016a21052009417f6a22090d000b0b200610302000200b3602042000200a360200200d41d0036a24000f0b41a0a4c200412a41cca4c200102d000b41f8a2c200412841a0a3c200102d000ba50302027f047e024020002001109101220241ff01710d00024002400240024002400240024020002d00d003220320012d00d0032202470d00410021022003417f6a0e06050102030406070b417f410120032002491b0f0b20034102470d05200041d1036a200141d1036a41041088052200450d05417f410120004100481b0f0b20034103470d04200041d1036a200141d1036a41081088052200450d04417f410120004100481b0f0b20034104470d03200041d1036a200141d1036a41101088052200450d03417f410120004100481b0f0b20034105470d02200041d1036a200141d1036a41201088052200450d02417f410120004100481b0f0b20034101470d01417f200041d8036a2903002204200141d8036a290300220585200041e0036a2903002206200141e0036a290300220785844200522004200554200620075420062007511b1b0f0b20034106470d000240200041d4036a280200200141d4036a280200200141dc036a2802002201200041dc036a2802002200200020014b1b10880522020d00417f200020014720002001491b0f0b417f410120024100481b21020b20020bf90702027f017e02402000280200220220012802002203470d000240024020020d00024002400240024002400240024002400240200041086a2802002203200141086a2903002204a72202470d00410021022003417f6a0e0801020304050607080a0b417f410120032002491b0f0b20044201520d08200041106a200141106a1092010f0b20044202520d07200041106a200141106a109201220241ff01710d07200041c8006a200141c8006a1092010f0b20044203520d06200041106a200141106a109201220241ff01710d06200041c8006a200141c8006a109201220241ff01710d0620004180016a20014180016a1092010f0b20044204520d05200041106a200141106a109201220241ff01710d05200041c8006a200141c8006a109201220241ff01710d0520004180016a20014180016a109201220241ff01710d05200041b8016a200141b8016a1092010f0b20044205520d04200041106a200141106a109201220241ff01710d04200041c8006a200141c8006a109201220241ff01710d0420004180016a20014180016a109201220241ff01710d04200041b8016a200141b8016a109201220241ff01710d04200041f0016a200141f0016a1092010f0b20044206520d03200041106a200141106a109201220241ff01710d03200041c8006a200141c8006a109201220241ff01710d0320004180016a20014180016a109201220241ff01710d03200041b8016a200141b8016a109201220241ff01710d03200041f0016a200141f0016a109201220241ff01710d03200041a8026a200141a8026a1092010f0b20044207520d02200041106a200141106a109201220241ff01710d02200041c8006a200141c8006a109201220241ff01710d0220004180016a20014180016a109201220241ff01710d02200041b8016a200141b8016a109201220241ff01710d02200041f0016a200141f0016a109201220241ff01710d02200041a8026a200141a8026a109201220241ff01710d02200041e0026a200141e0026a1092010f0b20044208520d01200041106a200141106a109201220241ff01710d01200041c8006a200141c8006a109201220241ff01710d0120004180016a20014180016a109201220241ff01710d01200041b8016a200141b8016a109201220241ff01710d01200041f0016a200141f0016a109201220241ff01710d01200041a8026a200141a8026a109201220241ff01710d01200041e0026a200141e0026a109201220241ff01710d0120004198036a20014198036a1092010f0b0240200028020420012802042001410c6a28020022012000410c6a2802002200200020014b1b10880522020d00417f200020014720002001491b0f0b417f410120024100481b21020b20020f0b417f410120022003491b0b860a03037f047e017f024002400240024002400240024002400240024002400240024002400240024002400240024020002d0000220220012d00002203470d00410021032002417f6a0e090401060208090a0c030c0b417f410120022003491b0f0b20024102460d0341000f0b20024104460d0441000f0b20024109460d0741000f0b4100210320024101470d07417f200041046a2802002202200141046a28020022004720022000491b0f0b200041246a2802002202200141246a2802002203470d07024020024101470d00200041286a280200200141286a280200200141306a2802002202200041306a2802002204200420024b1b10880522030d0941ff01210320042002490d07200420024722030d070b41002103200041016a200141016a41201088052202450d06417f410120024100481b0f0b4100210320024103470d05200041046a2802002202200141046a2802002203470d08024020024101470d00200041086a280200200141086a280200200141106a2802002202200041106a2802002204200420024b1b10880522030d0a41ff01210320042002490d06200420024722030d060b417f200041186a2903002205200141186a29030022065220052006541b0f0b200041186a2802002202200141186a2802002203470d09024020024101470d002000411c6a2802002001411c6a280200200141246a2802002202200041246a2802002204200420024b1b10880522030d0b41ff01210320042002490d05200420024722030d050b41002103200041016a200141016a41141088052202450d04417f410120024100481b0f0b4100210320024105470d03417f20002d0001220220012d000122004720022000491b0f0b4100210320024106470d02417f200041086a2903002207200141086a290300220885200041106a2903002205200141106a290300220685844200522007200854200520065420052006511b1b0f0b4100210320024107470d010240200041046a280200200141046a2802002001410c6a28020022022000410c6a2802002200200020024b1b10880522010d00417f200020024720002002491b0f0b417f410120014100481b0f0b02400240024002400240200041046a2802002202200141046a2802002203470d002002417f6a0e020102040b417f410120022003491b0f0b0240200041086a280200200141086a280200200141106a2802002202200041106a2802002204200420024b1b10880522030d0041ff01210320042002490d04200420024721030c020b417f410120034100481b0f0b41ff012103200041086a2802002202200141086a2802002204490d02200220044721030b20030d010b02400240024002400240200041146a2802002202200141146a2802002203470d002001411c6a2802002104200141186a28020021012000411c6a2802002109200041186a2802002100410021032002417f6a0e0401020304050b417f410120022003481b0f0b417f200020014720002001491b0f0b41ff01210320002001490d024101210320002001470d02417f200920044720092004491b0f0b41ff01210320002001490d014101210320002001470d01417f200920044720092004491b0f0b41ff01210320002001490d004101210320002001470d00417f200920044720092004491b21030b20030f0b417f410120022003491b0f0b417f410120034100481b0f0b417f410120022003491b0f0b417f410120034100481b0f0b417f410120022003491b0f0b417f410120034100481b0bcf0101037f230041206b220324002002210402400240034020022f01b6012105024020010d002001450d020c030b2001450d022001417f6a2101200220054102746a41b8016a280200210220042802b80121040c000b0b2000200136020c200041003602082000200436020420002001360200200041146a2005360200200041106a2002360200200341206a24000f0b200341146a410136020020034201370204200341f4a9c2003602002003410436021c200341eca9c2003602182003200341186a360210200341fca9c200103a000b920403027f017e077f230041d00b6b220324000240024002402002200128020441e8036e2204200420024b1bad42e8037e2205422088a70d002005a72204417f4c0d0002400240024020040d00410821060c010b2004102f2206450d010b200441e8036e2107024020020d00410021020c030b200341d8076a410172210841002109410021044100210a02400340200341d8076a200110950120032d00d807210b200341f1036a200841e7031085051a200b410b460d012003410a6a200341f1036a41e7031085051a0240200a2007470d002009200a41016a220c2009200c4b1b220c4104200c41044b1bad42e8037e2205422088a745410374210c2005a7210702400240200a0d00200341003602d8070c010b200341083602e007200320043602dc07200320063602d8070b200341c00b6a2007200c200341d8076a106920032802c80b210c024020032802c00b4101470d00200c0d040c050b20032802c40b2106200c41e8036e21070b200620046a220c200b3a0000200c41016a2003410a6a41e7031085051a200941026a2109200441e8036a21042002200a41016a220a460d040c000b0b200041003602000240200a450d002006210a0340200a109601200a41e8036a210a200441987c6a22040d000b0b2007450d03200741e8036c450d03200610300c030b102a000b102c000b2000200736020420002006360200200041086a20023602000b200341d00b6a24000b961503057f027e017f230041900c6b2202240002400240200128020422030d002000410b3a00000c010b200128020022042d0000210520012003417f6a22063602042001200441016a3602000240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024020050e0b000102030405060708090b0a0b200241a8086a200110980120022802a8082203450d13200241b0086a280200210520022802ac08210420022001109b01024002402002280200450d00200241003602a8080c010b200241a8086a2001200228020410a30120022802a8080d220b2000410b3a000002402005450d00200541f8036c21002003210103402001109a01200141f8036a2101200041887c6a22000d000b0b2004450d22200441f8036c450d22200310300c220b200241a8086a200110980120022802a8082203450d11200241b0086a280200210520022802ac082104200241086a2001109b01024002402002280208450d00200241003602a8080c010b200241a8086a2001200228020c10a30120022802a8080d200b2000410b3a000002402005450d00200541f8036c21002003210103402001109a01200141f8036a2101200041887c6a22000d000b0b2004450d21200441f8036c450d21200310300c210b200241a8086a200110980120022802a8082203450d0f200241b0086a280200210520022802ac082104200241106a2001109b01024002402002280210450d00200241003602a8080c010b200241a8086a2001200228021410a30120022802a8080d1e0b2000410b3a000002402005450d00200541f8036c21002003210103402001109a01200141f8036a2101200041887c6a22000d000b0b2004450d20200441f8036c450d20200310300c200b200241186a2001109d012002290318a70d11024020012802042203450d0020022903202107200128020022042d0000210520012003417f6a3602042001200441016a36020020050d00200241a8086a200110980120022802a8082201450d0020022902ac082108200041106a2007370300200041086a2008370000200041046a2001360000200041033a00000c200b2000410b3a00000c1f0b200241a8086a200110980120022802a8082203450d11200241a8086a41086a280200210520022802ac082104200241a8086a2001109901024020022903a8084209510d00200041106a200241a8086a41c8031085051a2000410c6a2005360000200041086a2004360000200041046a2003360000200041043a00000c1f0b2000410b3a000002402005450d00200541f8036c21002003210103402001109a01200141f8036a2101200041887c6a22000d000b0b2004450d1e200441f8036c450d1e200310300c1e0b200241c0046a200110980120022802c0042203450d11200241c8046a280200210520022802c4042104200241c0046a200110990120022903c0044209510d0a200241f8006a200241c0046a41c8031085051a200241286a2001109b01024002402002280228450d00200241003602c0040c010b200241c0046a2001200228022c10970120022802c0040d1a0b2000410b3a0000200241f8006a109c010c0b0b2006450d1120042d0001210520012003417e6a22063602042001200441026a36020041002109024002400240024020050e0403000102150b410121090c020b410221090c010b410321090b02400240024020064108490d00200429000221072001200341766a36020420012004410a6a360200200241306a2001109b0120022802300d022001280204220420022802342203490d022003417f4c0d150240024020030d00410121050c010b2003102f2205450d092005410020031087051a200128020421040b20042003490d012005200128020020031085052105200128020422042003490d1a200020093a0001200041063a00002001200420036b360204200041f4006a2003ad2208422086200884370200200041f0006a2005360200200041106a4102360200200041086a20073703002001200128020020036a3602000c1f0b2000410b3a00000c1e0b200510300b2000410b3a00000c1c0b200241c8006a2001109b0120022802480d12200228024c2103200241c0006a2001109b0120022802400d1320022802442104200241386a2001109b01024020022802380d00200228023c2101200041073a00002000410c6a2001360200200041086a2004360200200041046a20033602000c1c0b2000410b3a00000c1b0b200241d0006a2001109b01024020022802500d0020022802542101200041083a0000200041046a20013602000c1b0b2000410b3a00000c1a0b200241e8006a2001109b0120022802680d12200228026c2103200241e0006a2001109b0120022802600d1320022802642104200241d8006a2001109b01024020022802580d00200228025c2101200041093a00002000410c6a2001360200200041086a2004360200200041046a20033602000c1a0b2000410b3a00000c190b2000410b3a00000c180b200241a8086a200110990120022903a8084209510d01200241f8006a200241a8086a41c8031085051a200241a8086a200110950120022d00a8082101200241c0046a200241a8086a41017241e7031085051a2001410b460d0341e803102f22030d020b102a000b2000410b3a00000c150b200320013a0000200341016a200241c0046a41e7031085051a200041086a200241f8006a41c8031085051a200041046a20033602002000410a3a00000c140b2000410b3a0000200241f8006a109c010c130b2000410b3a00000b02402005450d00200541f8036c21002003210103402001109a01200141f8036a2101200041887c6a22000d000b0b2004450d11200441f8036c450d11200310300c110b2000410b3a00000c100b2000410b3a00000c0f0b2000410b3a00000c0e0b2000410b3a00000c0d0b2000410b3a00000c0c0b2000410b3a00000c0b0b2000410b3a00000c0a0b102c000b2000410b3a00000c080b2000410b3a00000c070b2000410b3a00000c060b2000410b3a00000c050b2003200441f0f5c100104a000b200041106a20022903c004370200200041186a200241c0046a41086a280200360200200241a8086a41046a200241f8006a41c8031085051a200041053a0000200020022f00753b0001200041036a200241f7006a2d00003a00002000410c6a2005360000200041086a2004360000200041046a20033600002000411c6a200241a8086a41cc031085051a0c030b200041106a20022903a808370200200041186a200241a8086a41086a280200360200200041023a0000200020022f00c0043b0001200041036a200241c0046a41026a2d00003a00002000410c6a2005360000200041086a2004360000200041046a20033600000c020b200041106a20022903a808370200200041186a200241a8086a41086a280200360200200041013a0000200020022f00c0043b0001200041036a200241c2046a2d00003a00002000410c6a2005360000200041086a2004360000200041046a20033600000c010b200041106a20022903a808370200200041186a200241a8086a41086a280200360200200041003a0000200020022f00c0043b0001200041036a200241c2046a2d00003a00002000410c6a2005360000200041086a2004360000200041046a20033600000b200241900c6a24000ba20701027f02400240024002400240024002400240024020002d00000e0a00010203040506070707080b02402000410c6a2802002201450d00200041046a2802002102200141f8036c210103402002109a01200241f8036a2102200141887c6a22010d000b0b0240200041086a2802002202450d00200241f8036c450d00200028020410300b200041106a280200200041186a28020010a401200041146a2802002202450d0620024198046c450d06200028021010300f0b02402000410c6a2802002201450d00200041046a2802002102200141f8036c210103402002109a01200241f8036a2102200141887c6a22010d000b0b0240200041086a2802002202450d00200241f8036c450d00200028020410300b200041106a280200200041186a28020010a401200041146a2802002202450d0520024198046c450d05200028021010300f0b02402000410c6a2802002201450d00200041046a2802002102200141f8036c210103402002109a01200241f8036a2102200141887c6a22010d000b0b0240200041086a2802002202450d00200241f8036c450d00200028020410300b200041106a280200200041186a28020010a401200041146a2802002202450d0420024198046c450d04200028021010300f0b02402000410c6a2802002201450d00200041046a2802002102200141f8036c210103402002109a01200241f8036a2102200141887c6a22010d000b0b200041086a2802002202450d03200241f8036c450d03200028020410300f0b02402000410c6a2802002201450d00200041046a2802002102200141f8036c210103402002109a01200241f8036a2102200141887c6a22010d000b0b0240200041086a2802002202450d00200241f8036c450d00200028020410300b200041106a109c010f0b02402000410c6a2802002201450d00200041046a2802002102200141f8036c210103402002109a01200241f8036a2102200141887c6a22010d000b0b0240200041086a2802002202450d00200241f8036c450d00200028020410300b200041206a109c010240200041186a2802002201450d00200041106a280200210220014198046c21010340200210a00120024198046a2102200141e87b6a22010d000b0b200041146a2802002202450d0120024198046c450d01200028021010300f0b200041106a21020240200041f4006a280200450d00200041f0006a28020010300b20022802004102460d00200210b2020b0f0b200041086a109c01200041046a2202280200109601200228020010300bb41507027f017e0c7f017e057f037e017f230041c0176b22032400024002400240200220012802044198046e2204200420024b1bad4298047e2205422088a70d002005a72204417f4c0d0002400240024020040d00410821060c010b2004102f2206450d010b20044198046e2107024020020d00410021020c030b200341c8136a410c6a2108200341c8136a41046a2109200341d00f6a410472210a200341a8136a210b200341d00f6a410c6a210c4100210d4100210e0240034020012802042204450d012001280200220f2d0000211020012004417f6a3602042001200f41016a3602004100210f0240024002400240024002400240024002400240024002400240024002400240024020100e080300010205060708120b200341c8136a200110980120032802c8132210450d0820032802d013210420032802cc132111200341c8136a2001109901024020032903c81322124209510d0020032802d0132113200341bc086a200841bc031085051a4101210f201021142011211520042116201221050c030b02402004450d00200441f8036c210f2010210403402004109a01200441f8036a2104200f41887c6a220f0d000b0b4108210f410121042011450d0e201141f8036c450d0e201010300c0e0b200341d00f6a200110980120032802d00f2210450d0720032802d80f211720032802d40f2111200341d00f6a2001109901024020032903d00f4209510d00200341880c6a200341d00f6a41c8031085051a200341086a2001109b01024002402003280208450d00200341003602d00f0c010b200341d00f6a2001200328020c10970120032802d00f0d0b0b200341880c6a109c010b02402017450d00201741f8036c210f2010210403402004109a01200441f8036a2104200f41887c6a220f0d000b0b2011450d07201141f8036c450d07201010300c070b200341c8136a200110980120032802c8132210450d0620032802d013210420032802cc132111200341c8136a200110980120032802c813450d0120032802d013211320032903c81321054103210f2010211420112115200421160b200341cc046a200341bc086a41cc031085051a0c0c0b02402004450d00200441f8036c210f2010210403402004109a01200441f8036a2104200f41887c6a220f0d000b0b4108210f410121042011450d0a201141f8036c450d0a201010300c0a0b200341d00f6a200110980120032802d00f2210450d0320032802d80f211720032802d40f2111200341d00f6a2001109901024020032903d00f4209510d00200341880c6a200341d00f6a41c8031085051a200341106a2001109b01024002402003280210450d00200341003602d00f0c010b200341d00f6a2001200328021410970120032802d00f0d090b200341880c6a109c010b02402017450d00201741f8036c210f2010210403402004109a01200441f8036a2104200f41887c6a220f0d000b0b2011450d03201141f8036c450d03201010300c030b200341d00f6a200110980120032802d00f2210450d0220032802d80f211720032802d40f2111200341d00f6a2001109901024020032903d00f4209510d00200341880c6a200341d00f6a41c8031085051a200341186a2001109b01024002402003280218450d00200341003602d00f0c010b200341d00f6a2001200328021c10970120032802d00f0d070b200341880c6a109c010b02402017450d00201741f8036c210f2010210403402004109a01200441f8036a2104200f41887c6a220f0d000b0b2011450d02201141f8036c450d02201010300c020b200341206a2001109d014108210f410121042003290320a70d0720032903282112200341c8136a200110990120032903c8134209510d07200341d00f6a200341c8136a41c8031085051a200341c8136a200110980120032802c8132210450d0220032802d013211620032802cc13211520032802d00f2113200341bc086a200a41c4031085051a4106210f4100210420102114201221050c060b200341c8136a2001109e0120032802c813410c460d00200341d00f6a200341c8136a41f8031085051a0240200128020422044108490d002001280200220f29000021122001200441786a22103602042001200f41086a36020020104108490d00200f29000821182001200441706a22103602042001200f41106a220f3602002010450d00200f2d0000211020012004416f6a3602042001200f41016a360200410021110240024020100e020100020b410121110b200341306a2001109b0120032802300d00200341c8136a20012003280234109f0120032802c8132210450d0020032802d013211620032802cc13211520032903d00f210520032802d80f2113200341bc086a200c41cc031085051a20034198086a41186a200b41186a29030037030020034198086a41106a200b41106a29030037030020034198086a41086a200b41086a2903003703002003200b290300370398084107210f4100210420102114201821192012211a2011211b0c070b200341d00f6a109a010b4108210f410121040c050b200341d00f6a109c010c040b20032802d80f211320032903d00f21052009200341880c6a41c8031085051a200341bc086a200341c8136a41cc031085051a4102210f410021042010211420112115201721160c020b20032802d80f211320032903d00f21052009200341880c6a41c8031085051a200341bc086a200341c8136a41cc031085051a4105210f410021042010211420112115201721160c010b20032802d80f211320032903d00f21052009200341880c6a41c8031085051a200341bc086a200341c8136a41cc031085051a4104210f410021042010211420112115201721160b0b200341cc046a200341bc086a41cc031085051a200341a8046a41186a20034198086a41186a290300370300200341a8046a41106a20034198086a41106a290300370300200341a8046a41086a20034198086a41086a29030037030020032003290398083703a80420040d020b200341dc006a200341cc046a41cc031085051a200341386a41186a2210200341a8046a41186a290300370300200341386a41106a2211200341a8046a41106a290300370300200341386a41086a2217200341a8046a41086a290300370300200320032903a8043703380240200e2007470d00200e4101742204200e41016a2207200420074b1b22044104200441044b1bad4298047e2212422088a74541037421042012a7210702400240200e0d00200341003602c8130c010b200341083602d013200320063602c8132003200e4198046c3602cc130b200341d00f6a20072004200341c8136a106920032802d80f2104024020032802d00f4101470d0020040d040c050b20032802d40f210620044198046e21070b2006200e4198046c6a22042013360018200420053700102004201636000c20042015360008200420143600042004201b3a00012004200f3a00002004411c6a200341dc006a41cc031085051a20044180046a2010290300370000200441f8036a2011290300370000200441f0036a2017290300370000200420032903383700e80320042019370090042004201a37008804200d4198046a210d200e41016a2204210e20042002460d040c000b0b200041003602000240200e450d00200621040340200410a00120044198046a2104200d41e87b6a220d0d000b0b2007450d0320074198046c450d03200610300c030b102a000b102c000b2000200736020420002006360200200041086a20023602000b200341c0176a24000bb50403037f017e077f230041800c6b22022400200241086a2001109b01024002402002280208450d00200041003602000c010b02400240200228020c2203200128020441f8036e2204200420034b1bad42f8037e2205422088a70d002005a72204417f4c0d0002400240024020040d00410821060c010b2004102f2206450d010b200441f8036e2107024020030d00410021030c030b200241f8076a410472210841002109410021044100210a02400340200241f8076a2001109e0120022802f807210b20024184046a200841f4031085051a200b410c460d01200241106a20024184046a41f4031085051a0240200a2007470d002009200a41016a220c2009200c4b1b220c4104200c41044b1bad42f8037e2205422088a745410374210c2005a7210702400240200a0d00200241003602f8070c010b2002410836028008200220043602fc07200220063602f8070b200241f00b6a2007200c200241f8076a106920022802f80b210c024020022802f00b4101470d00200c0d040c050b20022802f40b2106200c41f8036e21070b200620046a220c200b360200200c41046a200241106a41f4031085051a200941026a2109200441f8036a21042003200a41016a220a460d040c000b0b200041003602000240200a450d002006210a0340200a109a01200a41f8036a210a200441887c6a22040d000b0b2007450d03200741f8036c450d03200610300c030b102a000b102c000b2000200736020420002006360200200041086a20033602000b200241800c6a24000bfe6b1c087f017e0a7f017e057f017e017f017e047f017e0a7f017e057f017e017f017e047f017e0a7f017e057f017e017f017e047f017e0a7f017e230041e0006b2202240002400240200128020422030d00200042093703000c010b200128020022042d0000210520012003417f6a3602042001200441016a3602000240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024020050e09000102030405060709080b200042003703000c3a0b200241286a2001109c02024020022d0028410a460d0020002002290328370308200041386a200241286a41306a290300370300200041306a200241286a41286a290300370300200041286a200241286a41206a290300370300200041206a200241286a41186a290300370300200041186a200241286a41106a290300370300200041106a200241306a290300370300200042013703000c3a0b200042093703000c390b200241286a2001109c0220022d00282203410a460d11200241266a220620022d002b3a0000200220022f00293b0124200241306a22072802002105200241286a410c6a2802002108200241286a41106a2209290300210a200241286a41186a220b280200210c200241c4006a280200210d200241286a41206a220e280200210f200241286a41246a2802002110200241286a41286a22112802002112200241286a412c6a2802002113200241286a41306a22142903002115200228022c2104200241286a2001109c02024020022d0028410a460d00200041c0006a2002290328370300200041f0006a2014290300370300200041e8006a2011290300370300200041e0006a200e290300370300200041d8006a200b290300370300200041d0006a2009290300370300200041c8006a2007290300370300200020033a0008200020022f01243b00092000410b6a20062d00003a0000200041386a2015370300200041346a2013360200200041306a20123602002000412c6a2010360200200041286a200f360200200041246a200d360200200041206a200c360200200041186a200a370300200041146a2008360200200041106a20053602002000410c6a2004360200200042023703000c390b20004209370300024002400240024002402003410f710e093d3d0001023d3d033d040b20104101470d3c2013450d3c201210300c3c0b20044101470d3b2008450d3b200510300c3b0b200c4101470d3a200f450d3a200d10300c3a0b2005450d39200410300c390b20044101470d382008450d38200510300c380b200241286a2001109c0220022d00282203410a460d11200241206a41026a20022d002b3a0000200220022f00293b0120200241306a2204280200210b200241346a2205280200210e200241386a2208290300210a200241c0006a220c2802002111200241c4006a22102802002116200241c8006a220f2802002117200241cc006a22132802002114200241d0006a220d2802002118200241d4006a22122802002119200241d8006a22062903002115200228022c2109200241286a2001109c0220022d00282207410a460d0e200241246a41026a20022d002b3a0000200220022f00293b01242004280200211a200528020021052008290300211b200c28020021082010280200211c200f28020021102013280200210c200d28020021132012280200210f2006290300211d200228022c2104200241286a2001109c02024020022d0028410a460d00200041f8006a2002290328370300200041a8016a200241286a41306a290300370300200041a0016a200241286a41286a29030037030020004198016a200241286a41206a29030037030020004190016a200241286a41186a29030037030020004188016a200241286a41106a29030037030020004180016a200241306a290300370300200020033a0008200020022f01203b00092000410b6a200241206a41026a2d00003a0000200041c0006a20073a0000200041386a2015370300200041346a2019360200200041306a20183602002000412c6a2014360200200041286a2017360200200041246a2016360200200041206a2011360200200041186a200a370300200041146a200e360200200041106a200b3602002000410c6a2009360200200041f0006a201d370300200041ec006a200f360200200041e8006a2013360200200041e4006a200c360200200041e0006a2010360200200041dc006a201c360200200041d8006a2008360200200041d0006a201b370300200041cc006a2005360200200041c8006a201a360200200041c4006a2004360200200020022f01243b0041200041c3006a200241246a41026a2d00003a0000200042033703000c380b20004209370300024002400240024002402007410f710e09141400010214140314040b200c4101470d13200f450d13201310300c130b20044101470d122005450d12201a10300c120b20084101470d112010450d11201c10300c110b201a450d10200410300c100b20044101470d0f2005450d0f201a10300c0f0b200241286a2001109c0220022d00282203410a460d112002411c6a41026a20022d002b3a0000200220022f00293b011c200241306a2204280200210b200241346a2205280200210e200241386a2208290300210a200241c0006a220c2802002111200241c4006a22102802002116200241c8006a220f2802002117200241cc006a22132802002114200241d0006a220d2802002118200241d4006a22122802002119200241d8006a22062903002115200228022c2109200241286a2001109c0220022d00282207410a460d12200241206a41026a20022d002b3a0000200220022f00293b01202004280200211a2005280200211c2008290300211b200c28020021082010280200211e200f28020021102013280200210c200d28020021132012280200210f2006290300211d200228022c2105200241286a2001109c0220022d00282204410a460d0b200241246a41026a221f20022d002b3a0000200220022f00293b0124200241306a22202802002112200241286a410c6a2802002106200241286a41106a22212903002122200241286a41186a22232802002124200241c4006a2802002125200241286a41206a22262802002127200241286a41246a2802002128200241286a41286a2229280200212a200241286a412c6a280200212b200241286a41306a222c290300212d200228022c210d200241286a2001109c02024020022d0028410a460d00200041b0016a2002290328370300200041e0016a202c290300370300200041d8016a2029290300370300200041d0016a2026290300370300200041c8016a2023290300370300200041c0016a2021290300370300200041b8016a2020290300370300200020033a0008200020022f011c3b00092000410b6a2002411c6a41026a2d00003a0000200041c0006a20073a0000200041386a2015370300200041346a2019360200200041306a20183602002000412c6a2014360200200041286a2017360200200041246a2016360200200041206a2011360200200041186a200a370300200041146a200e360200200041106a200b3602002000410c6a2009360200200041f8006a20043a0000200041f0006a201d370300200041ec006a200f360200200041e8006a2013360200200041e4006a200c360200200041e0006a2010360200200041dc006a201e360200200041d8006a2008360200200041d0006a201b370300200041cc006a201c360200200041c8006a201a360200200041c4006a2005360200200020022f01203b0041200041c3006a200241206a41026a2d00003a0000200020022f01243b0079200041fb006a201f2d00003a0000200041a8016a202d370300200041a4016a202b360200200041a0016a202a3602002000419c016a202836020020004198016a202736020020004194016a202536020020004190016a202436020020004188016a202237030020004184016a200636020020004180016a2012360200200041fc006a200d360200200042043703000c370b20004209370300024002400240024002402004410f710e09111100010211110311040b20284101470d10202b450d10202a10300c100b200d4101470d0f2006450d0f201210300c0f0b20244101470d0e2027450d0e202510300c0e0b2012450d0d200d10300c0d0b200d4101470d0c2006450d0c201210300c0c0b200241286a2001109c0220022d00282203410a460d12200241186a41026a20022d002b3a0000200220022f00293b0118200241306a2204280200210b200241346a2205280200210e200241386a2208290300210a200241c0006a220c2802002111200241c4006a22102802002116200241c8006a220f2802002117200241cc006a22132802002114200241d0006a220d2802002118200241d4006a22122802002119200241d8006a22062903002115200228022c2109200241286a2001109c0220022d00282207410a460d132002411c6a41026a20022d002b3a0000200220022f00293b011c2004280200211a2005280200211c2008290300211b200c28020021082010280200211e200f28020021102013280200210c200d28020021132012280200210f2006290300211d200228022c2105200241286a2001109c0220022d00282204410a460d14200241206a41026a20022d002b3a0000200220022f00293b0120200241306a220d2802002123200241346a22122802002126200241386a22062903002122200241c0006a22242802002129200241c4006a2228280200212e200241c8006a2227280200212f200241cc006a222b280200212c200241d0006a22252802002130200241d4006a222a2802002131200241d8006a221f290300212d200228022c2121200241286a2001109c0220022d00282220410a460d08200241246a41026a20022d002b3a0000200220022f00293b0124200d28020021322012280200211220062903002133202428020021062028280200213420272802002128202b28020021242025280200212b202a2802002127201f2903002135200228022c210d200241286a2001109c02024020022d0028410a460d00200041e8016a200229032837030020004198026a200241286a41306a29030037030020004190026a200241286a41286a29030037030020004188026a200241286a41206a29030037030020004180026a200241286a41186a290300370300200041f8016a200241286a41106a290300370300200041f0016a200241306a290300370300200020033a0008200020022f01183b00092000410b6a200241186a41026a2d00003a0000200041c0006a20073a0000200041386a2015370300200041346a2019360200200041306a20183602002000412c6a2014360200200041286a2017360200200041246a2016360200200041206a2011360200200041186a200a370300200041146a200e360200200041106a200b3602002000410c6a2009360200200041f8006a20043a0000200041f0006a201d370300200041ec006a200f360200200041e8006a2013360200200041e4006a200c360200200041e0006a2010360200200041dc006a201e360200200041d8006a2008360200200041d0006a201b370300200041cc006a201c360200200041c8006a201a360200200041c4006a2005360200200020022f011c3b0041200041c3006a2002411c6a41026a2d00003a0000200020022f01203b0079200041fb006a200241206a41026a2d00003a0000200041b0016a20203a0000200041a8016a202d370300200041a4016a2031360200200041a0016a20303602002000419c016a202c36020020004198016a202f36020020004194016a202e36020020004190016a202936020020004188016a202237030020004184016a202636020020004180016a2023360200200041fc006a2021360200200041b3016a200241246a41026a2d00003a0000200020022f01243b00b101200041e0016a2035370300200041dc016a2027360200200041d8016a202b360200200041d4016a2024360200200041d0016a2028360200200041cc016a2034360200200041c8016a2006360200200041c0016a2033370300200041bc016a2012360200200041b8016a2032360200200041b4016a200d360200200042053703000c360b20004209370300024002400240024002402020410f710e090e0e0001020e0e030e040b20244101470d0d2027450d0d202b10300c0d0b200d4101470d0c2012450d0c203210300c0c0b20064101470d0b2028450d0b203410300c0b0b2032450d0a200d10300c0a0b200d4101470d092012450d09203210300c090b200241286a2001109c0220022d00282203410a460d14200241146a41026a20022d002b3a0000200220022f00293b0114200241306a2204280200210b200241346a2205280200210e200241386a2208290300210a200241c0006a220c2802002111200241c4006a22102802002116200241c8006a220f2802002117200241cc006a22132802002114200241d0006a220d2802002118200241d4006a22122802002119200241d8006a22062903002115200228022c2109200241286a2001109c0220022d00282207410a460d15200241186a41026a20022d002b3a0000200220022f00293b01182004280200211a2005280200211c2008290300211b200c28020021082010280200211e200f28020021102013280200210c200d28020021132012280200210f2006290300211d200228022c2105200241286a2001109c0220022d00282204410a460d162002411c6a41026a20022d002b3a0000200220022f00293b011c200241306a220d2802002123200241346a22122802002126200241386a22062903002122200241c0006a22242802002129200241c4006a2228280200212e200241c8006a2227280200212f200241cc006a222b280200212c200241d0006a22252802002130200241d4006a222a2802002131200241d8006a221f290300212d200228022c2121200241286a2001109c0220022d00282220410a460d17200241206a41026a20022d002b3a0000200220022f00293b0120200d28020021322012280200213420062903002133202428020021062028280200213620272802002128202b28020021242025280200212b202a2802002127201f2903002135200228022c2112200241286a2001109c0220022d0028220d410a460d05200241246a41026a223720022d002b3a0000200220022f00293b0124200241306a2238280200212a200241286a410c6a280200211f200241286a41106a2239290300213a200241286a41186a223b280200213c200241c4006a280200213d200241286a41206a223e280200213f200241286a41246a2802002140200241286a41286a22412802002142200241286a412c6a2802002143200241286a41306a22442903002145200228022c2125200241286a2001109c02024020022d0028410a460d00200041a0026a2002290328370300200041d0026a2044290300370300200041c8026a2041290300370300200041c0026a203e290300370300200041b8026a203b290300370300200041b0026a2039290300370300200041a8026a2038290300370300200020033a0008200020022f01143b00092000410b6a200241146a41026a2d00003a0000200041c0006a20073a0000200041386a2015370300200041346a2019360200200041306a20183602002000412c6a2014360200200041286a2017360200200041246a2016360200200041206a2011360200200041186a200a370300200041146a200e360200200041106a200b3602002000410c6a2009360200200041f8006a20043a0000200041f0006a201d370300200041ec006a200f360200200041e8006a2013360200200041e4006a200c360200200041e0006a2010360200200041dc006a201e360200200041d8006a2008360200200041d0006a201b370300200041cc006a201c360200200041c8006a201a360200200041c4006a2005360200200020022f01183b0041200041c3006a200241186a41026a2d00003a0000200020022f011c3b0079200041fb006a2002411c6a41026a2d00003a0000200041b0016a20203a0000200041a8016a202d370300200041a4016a2031360200200041a0016a20303602002000419c016a202c36020020004198016a202f36020020004194016a202e36020020004190016a202936020020004188016a202237030020004184016a202636020020004180016a2023360200200041fc006a2021360200200041b3016a200241206a41026a2d00003a0000200020022f01203b00b101200041e8016a200d3a0000200041e0016a2035370300200041dc016a2027360200200041d8016a202b360200200041d4016a2024360200200041d0016a2028360200200041cc016a2036360200200041c8016a2006360200200041c0016a2033370300200041bc016a2034360200200041b8016a2032360200200041b4016a2012360200200041eb016a20372d00003a0000200020022f01243b00e90120004198026a204537030020004194026a204336020020004190026a20423602002000418c026a204036020020004188026a203f36020020004184026a203d36020020004180026a203c360200200041f8016a203a370300200041f4016a201f360200200041f0016a202a360200200041ec016a2025360200200042063703000c350b2000420937030002400240024002400240200d410f710e090b0b0001020b0b030b040b20404101470d0a2043450d0a204210300c0a0b20254101470d09201f450d09202a10300c090b203c4101470d08203f450d08203d10300c080b202a450d07202510300c070b20254101470d06201f450d06202a10300c060b200241286a2001109c0220022d00282203410a460d17200241106a41026a20022d002b3a0000200220022f00293b0110200241306a2204280200210b200241346a2205280200210e200241386a2208290300210a200241c0006a220c2802002111200241c4006a22102802002116200241c8006a220f2802002117200241cc006a22132802002114200241d0006a220d2802002118200241d4006a22122802002119200241d8006a22062903002115200228022c2109200241286a2001109c0220022d00282207410a460d18200241146a41026a20022d002b3a0000200220022f00293b01142004280200211a2005280200211c2008290300211b200c28020021082010280200211e200f28020021102013280200210c200d28020021132012280200210f2006290300211d200228022c2105200241286a2001109c0220022d00282204410a460d19200241186a41026a20022d002b3a0000200220022f00293b0118200241306a220d2802002123200241346a22122802002126200241386a22062903002122200241c0006a22242802002129200241c4006a2228280200212e200241c8006a2227280200212f200241cc006a222b280200212c200241d0006a22252802002130200241d4006a222a2802002131200241d8006a221f290300212d200228022c2121200241286a2001109c0220022d00282220410a460d1a2002411c6a41026a20022d002b3a0000200220022f00293b011c200d28020021322012280200213420062903002133202428020021062028280200213620272802002128202b28020021242025280200212b202a2802002127201f2903002135200228022c2112200241286a2001109c0220022d0028220d410a460d1b200241206a41026a20022d002b3a0000200220022f00293b0120200241306a2225280200213b200241346a222a280200213e200241386a221f290300213a200241c0006a223c2802002141200241c4006a22402802002146200241c8006a223f2802002147200241cc006a22432802002144200241d0006a223d2802002148200241d4006a22422802002149200241d8006a22372903002145200228022c2139200241286a2001109c0220022d00282238410a460d02200241246a41026a20022d002b3a0000200220022f00293b01242025280200214a202a280200212a201f290300214b203c280200211f2040280200214c203f28020021402043280200213c203d28020021432042280200213f2037290300214d200228022c2125200241286a2001109c02024020022d0028410a460d00200041d8026a200229032837030020004188036a200241286a41306a29030037030020004180036a200241286a41286a290300370300200041f8026a200241286a41206a290300370300200041f0026a200241286a41186a290300370300200041e8026a200241286a41106a290300370300200041e0026a200241306a290300370300200020033a0008200020022f01103b00092000410b6a200241106a41026a2d00003a0000200041c0006a20073a0000200041386a2015370300200041346a2019360200200041306a20183602002000412c6a2014360200200041286a2017360200200041246a2016360200200041206a2011360200200041186a200a370300200041146a200e360200200041106a200b3602002000410c6a2009360200200041f8006a20043a0000200041f0006a201d370300200041ec006a200f360200200041e8006a2013360200200041e4006a200c360200200041e0006a2010360200200041dc006a201e360200200041d8006a2008360200200041d0006a201b370300200041cc006a201c360200200041c8006a201a360200200041c4006a2005360200200020022f01143b0041200041c3006a200241146a41026a2d00003a0000200020022f01183b0079200041fb006a200241186a41026a2d00003a0000200041b0016a20203a0000200041a8016a202d370300200041a4016a2031360200200041a0016a20303602002000419c016a202c36020020004198016a202f36020020004194016a202e36020020004190016a202936020020004188016a202237030020004184016a202636020020004180016a2023360200200041fc006a2021360200200041b3016a2002411c6a41026a2d00003a0000200020022f011c3b00b101200041e8016a200d3a0000200041e0016a2035370300200041dc016a2027360200200041d8016a202b360200200041d4016a2024360200200041d0016a2028360200200041cc016a2036360200200041c8016a2006360200200041c0016a2033370300200041bc016a2034360200200041b8016a2032360200200041b4016a2012360200200041eb016a200241206a41026a2d00003a0000200020022f01203b00e901200041a0026a20383a000020004198026a204537030020004194026a204936020020004190026a20483602002000418c026a204436020020004188026a204736020020004184026a204636020020004180026a2041360200200041f8016a203a370300200041f4016a203e360200200041f0016a203b360200200041ec016a2039360200200041a3026a200241246a41026a2d00003a0000200020022f01243b00a102200041d0026a204d370300200041cc026a203f360200200041c8026a2043360200200041c4026a203c360200200041c0026a2040360200200041bc026a204c360200200041b8026a201f360200200041b0026a204b370300200041ac026a202a360200200041a8026a204a360200200041a4026a2025360200200042073703000c340b20004209370300024002400240024002402038410f710e09080800010208080308040b203c4101470d07203f450d07204310300c070b20254101470d06202a450d06204a10300c060b201f4101470d052040450d05204c10300c050b204a450d04202510300c040b20254101470d03202a450d03204a10300c030b200042093703000c320b200241286a2001109c0220022d00282203410a460d1a2002410c6a41026a20022d002b3a0000200220022f00293b010c200241306a2204280200210b200241346a2205280200210e200241386a2208290300210a200241c0006a220c2802002111200241c4006a22102802002116200241c8006a220f2802002117200241cc006a22132802002114200241d0006a220d2802002118200241d4006a22122802002119200241d8006a22062903002115200228022c2109200241286a2001109c0220022d00282207410a460d1b200241106a41026a20022d002b3a0000200220022f00293b01102004280200211a2005280200211c2008290300211b200c28020021082010280200211e200f28020021102013280200210c200d28020021132012280200210f2006290300211d200228022c2105200241286a2001109c0220022d00282204410a460d1c200241146a41026a20022d002b3a0000200220022f00293b0114200241306a220d2802002123200241346a22122802002126200241386a22062903002122200241c0006a22242802002129200241c4006a2228280200212e200241c8006a2227280200212f200241cc006a222b280200212c200241d0006a22252802002130200241d4006a222a2802002131200241d8006a221f290300212d200228022c2121200241286a2001109c0220022d00282220410a460d1d200241186a41026a20022d002b3a0000200220022f00293b0118200d28020021322012280200213420062903002133202428020021062028280200213620272802002128202b28020021242025280200212b202a2802002127201f2903002135200228022c2112200241286a2001109c0220022d0028220d410a460d1e2002411c6a41026a20022d002b3a0000200220022f00293b011c200241306a2225280200213b200241346a222a280200213e200241386a221f290300213a200241c0006a223c2802002141200241c4006a22402802002146200241c8006a223f2802002147200241cc006a22432802002144200241d0006a223d2802002148200241d4006a22422802002149200241d8006a22372903002145200228022c2139200241286a2001109c0220022d00282238410a460d1f200241206a41026a20022d002b3a0000200220022f00293b01202025280200214a202a280200214c201f290300214b203c280200211f2040280200214e203f28020021402043280200213c203d28020021432042280200213f2037290300214d200228022c212a200241286a2001109c0220022d00282225410a460d20200241246a41026a224f20022d002b3a0000200220022f00293b0124200241306a22502802002142200241286a410c6a2802002137200241286a41106a22512903002152200241286a41186a22532802002154200241c4006a2802002155200241286a41206a22562802002157200241286a41246a2802002158200241286a41286a2259280200215a200241286a412c6a280200215b200241286a41306a225c290300215d200228022c213d200241286a2001109c02024020022d0028410a460d0020004190036a2002290328370300200041c0036a205c290300370300200041b8036a2059290300370300200041b0036a2056290300370300200041a8036a2053290300370300200041a0036a205129030037030020004198036a2050290300370300200020033a0008200020022f010c3b00092000410b6a2002410c6a41026a2d00003a0000200041c0006a20073a0000200041386a2015370300200041346a2019360200200041306a20183602002000412c6a2014360200200041286a2017360200200041246a2016360200200041206a2011360200200041186a200a370300200041146a200e360200200041106a200b3602002000410c6a2009360200200041f8006a20043a0000200041f0006a201d370300200041ec006a200f360200200041e8006a2013360200200041e4006a200c360200200041e0006a2010360200200041dc006a201e360200200041d8006a2008360200200041d0006a201b370300200041cc006a201c360200200041c8006a201a360200200041c4006a2005360200200020022f01103b0041200041c3006a200241106a41026a2d00003a0000200020022f01143b0079200041fb006a200241146a41026a2d00003a0000200041b0016a20203a0000200041a8016a202d370300200041a4016a2031360200200041a0016a20303602002000419c016a202c36020020004198016a202f36020020004194016a202e36020020004190016a202936020020004188016a202237030020004184016a202636020020004180016a2023360200200041fc006a2021360200200041b3016a200241186a41026a2d00003a0000200020022f01183b00b101200041e8016a200d3a0000200041e0016a2035370300200041dc016a2027360200200041d8016a202b360200200041d4016a2024360200200041d0016a2028360200200041cc016a2036360200200041c8016a2006360200200041c0016a2033370300200041bc016a2034360200200041b8016a2032360200200041b4016a2012360200200041eb016a2002411c6a41026a2d00003a0000200020022f011c3b00e901200041a0026a20383a000020004198026a204537030020004194026a204936020020004190026a20483602002000418c026a204436020020004188026a204736020020004184026a204636020020004180026a2041360200200041f8016a203a370300200041f4016a203e360200200041f0016a203b360200200041ec016a2039360200200041a3026a200241206a41026a2d00003a0000200020022f01203b00a102200041d8026a20253a0000200041d0026a204d370300200041cc026a203f360200200041c8026a2043360200200041c4026a203c360200200041c0026a2040360200200041bc026a204e360200200041b8026a201f360200200041b0026a204b370300200041ac026a204c360200200041a8026a204a360200200041a4026a202a360200200041db026a204f2d00003a0000200020022f01243b00d90220004188036a205d37030020004184036a205b36020020004180036a205a360200200041fc026a2058360200200041f8026a2057360200200041f4026a2055360200200041f0026a2054360200200041e8026a2052370300200041e4026a2037360200200041e0026a2042360200200041dc026a203d360200200042083703000c320b200042093703000240024002400240024002402025410f710e09313100010231310331040b20584101470d30205b450d30205a10300c300b203d4101470d2f20370d030c2f0b20544101470d2e2057450d2e205510300c2e0b2042450d2d203d10300c2d0b203d4101470d2c2037450d2c0b204210300c2b0b200042093703000b024002400240024002400240200d410f710e092b2b0001022b2b032b040b20444101470d2a2049450d2a204810300c2a0b20394101470d29203e0d030c290b20414101470d282047450d28204610300c280b203b450d27203910300c270b20394101470d26203e450d260b203b10300c250b200042093703000b0240024002400240024002402020410f710e09262600010226260326040b20244101470d252027450d25202b10300c250b20124101470d2420340d030c240b20064101470d232028450d23203610300c230b2032450d22201210300c220b20124101470d212034450d210b203210300c200b200042093703000b0240024002400240024002402004410f710e09222200010222220322040b202c4101470d212031450d21203010300c210b20214101470d2020260d030c200b20294101470d1f202f450d1f202e10300c1f0b2023450d1e202110300c1e0b20214101470d1d2026450d1d0b202310300c1c0b200042093703000b0240024002400240024002402007410f710e091f1f0001021f1f031f040b200c4101470d1e200f450d1e201310300c1e0b20054101470d1d201c0d030c1d0b20084101470d1c2010450d1c201e10300c1c0b201a450d1b200510300c1b0b20054101470d1a201c450d1a0b201a10300c190b200042093703000b0240024002400240024002402003410f710e092d2d0001022d2d032d040b20144101470d2c2019450d2c201810300c2c0b20094101470d2b200e0d030c2b0b20114101470d2a2017450d2a201610300c2a0b200b450d29200910300c290b20094101470d28200e450d280b200b10300c270b200042093703000c260b200042093703000c250b200042093703000c240b200042093703000c130b200042093703000c220b200042093703000c130b200042093703000c110b200042093703000c1f0b200042093703000c130b200042093703000c110b200042093703000c0f0b200042093703000c1b0b200042093703000c130b200042093703000c110b200042093703000c0f0b200042093703000c0d0b200042093703000c160b200042093703000c140b200042093703000c120b200042093703000c100b200042093703000c0e0b200042093703000c0c0b200042093703000c0a0b0240024002400240024002402003410f710e09151500010215150315040b20144101470d142019450d14201810300c140b20094101470d13200e0d030c130b20114101470d122017450d12201610300c120b200b450d11200910300c110b20094101470d10200e450d100b200b10300c0f0b0240024002400240024002402007410f710e09060600010206060306040b200c4101470d05200f450d05201310300c050b20054101470d04201c0d030c040b20084101470d032010450d03201e10300c030b201a450d02200510300c020b20054101470d01201c450d010b201a10300b0240024002400240024002402003410f710e09131300010213130313040b20144101470d122019450d12201810300c120b20094101470d11200e0d030c110b20114101470d102017450d10201610300c100b200b450d0f200910300c0f0b20094101470d0e200e450d0e0b200b10300c0d0b0240024002400240024002402004410f710e09060600010206060306040b202c4101470d052031450d05203010300c050b20214101470d0420260d030c040b20294101470d03202f450d03202e10300c030b2023450d02202110300c020b20214101470d012026450d010b202310300b0240024002400240024002402007410f710e09060600010206060306040b200c4101470d05200f450d05201310300c050b20054101470d04201c0d030c040b20084101470d032010450d03201e10300c030b201a450d02200510300c020b20054101470d01201c450d010b201a10300b0240024002400240024002402003410f710e09101000010210100310040b20144101470d0f2019450d0f201810300c0f0b20094101470d0e200e0d030c0e0b20114101470d0d2017450d0d201610300c0d0b200b450d0c200910300c0c0b20094101470d0b200e450d0b0b200b10300c0a0b0240024002400240024002402020410f710e09060600010206060306040b20244101470d052027450d05202b10300c050b20124101470d0420340d030c040b20064101470d032028450d03203610300c030b2032450d02201210300c020b20124101470d012034450d010b203210300b0240024002400240024002402004410f710e09060600010206060306040b202c4101470d052031450d05203010300c050b20214101470d0420260d030c040b20294101470d03202f450d03202e10300c030b2023450d02202110300c020b20214101470d012026450d010b202310300b0240024002400240024002402007410f710e09060600010206060306040b200c4101470d05200f450d05201310300c050b20054101470d04201c0d030c040b20084101470d032010450d03201e10300c030b201a450d02200510300c020b20054101470d01201c450d010b201a10300b0240024002400240024002402003410f710e090c0c0001020c0c030c040b20144101470d0b2019450d0b201810300c0b0b20094101470d0a200e0d030c0a0b20114101470d092017450d09201610300c090b200b450d08200910300c080b20094101470d07200e450d070b200b10300c060b0240024002400240024002402038410f710e09060600010206060306040b203c4101470d05203f450d05204310300c050b202a4101470d04204c0d030c040b201f4101470d032040450d03204e10300c030b204a450d02202a10300c020b202a4101470d01204c450d010b204a10300b024002400240024002400240200d410f710e09060600010206060306040b20444101470d052049450d05204810300c050b20394101470d04203e0d030c040b20414101470d032047450d03204610300c030b203b450d02203910300c020b20394101470d01203e450d010b203b10300b0240024002400240024002402020410f710e09060600010206060306040b20244101470d052027450d05202b10300c050b20124101470d0420340d030c040b20064101470d032028450d03203610300c030b2032450d02201210300c020b20124101470d012034450d010b203210300b0240024002400240024002402004410f710e09060600010206060306040b202c4101470d052031450d05203010300c050b20214101470d0420260d030c040b20294101470d03202f450d03202e10300c030b2023450d02202110300c020b20214101470d012026450d010b202310300b0240024002400240024002402007410f710e09060600010206060306040b200c4101470d05200f450d05201310300c050b20054101470d04201c0d030c040b20084101470d032010450d03201e10300c030b201a450d02200510300c020b20054101470d01201c450d010b201a10300b0240024002400240024002402003410f710e09060600010206060306040b20144101470d052019450d05201810300c050b20094101470d04200e0d030c040b20114101470d032017450d03201610300c030b200b450d02200910300c020b20094101470d01200e450d010b200b10300b200241e0006a24000beb010002400240024002400240024002400240024020002802000e0b0808080800010203040506070b200041086a280200450d07200028020410300f0b200041086a280200450d06200028020410300f0b200041086a109c010f0b200041086a109c010f0b200041086a280200450d03200028020410300f0b0240200041086a280200450d00200028020410300b200041106a2d00004106490d02200041186a280200450d02200041146a28020010300f0b200041086a109c010c010b200041086a109c01200041d0036a2d00004106490d00200041d8036a280200450d00200041d4036a28020010300f0b0bcf0201067f0240024020012802042202450d00200128020022032d0000210420012002417f6a2205360204410121062001200341016a3602000240200441037122074103460d0002400240024020070e03000102000b20044102762107410021060c040b41012106024020050d000c040b20032d0001210520012002417e6a3602042001200341026a3602002005410874200472220141ffff0371418002490d03200141fcff03714102762107410021060c030b20054103490d01200341036a2d0000210620032f0001210720012002417c6a3602042001200341046a3602002007200641107472410874200472220141808004492106200141027621070c020b0240200441034d0d000c020b20054104490d012003280001210720012002417b6a3602042001200341056a36020020074180808080044921060c010b410121060b20002007360204200020063602000bf0020002400240024002400240024002400240024020002802000e080700010203040506080b200041086a10f4010f0b200041086a10f401200041c0006a10f4010f0b200041086a10f401200041c0006a10f401200041f8006a10f4010f0b200041086a10f401200041c0006a10f401200041f8006a10f401200041b0016a10f4010f0b200041086a10f401200041c0006a10f401200041f8006a10f401200041b0016a10f401200041e8016a10f4010f0b200041086a10f401200041c0006a10f401200041f8006a10f401200041b0016a10f401200041e8016a10f401200041a0026a10f4010f0b200041086a10f401200041c0006a10f401200041f8006a10f401200041b0016a10f401200041e8016a10f401200041a0026a10f401200041d8026a10f4010b0f0b200041086a10f401200041c0006a10f401200041f8006a10f401200041b0016a10f401200041e8016a10f401200041a0026a10f401200041d8026a10f40120004190036a10f4010bb00404057f017e017f017e0240024020012802042202450d00200128020022032d0000210420012002417f6a22053602042001200341016a360200024002400240200441037122064103460d000240024020060e03030001030b41012106024020050d000c060b20032d0001210520012002417e6a3602042001200341026a3602002005410874200472220141ffff0371418002490d05200141fcff0371410276ad21070c030b410121060240200541034f0d000c050b200341036a2d0000210520032f0001210820012002417c6a3602042001200341046a3602002008200541107472410874200472220141808004490d042001410276ad21070c020b024002400240200441027622080e050002020201020b20054104490d042003350001210720012002417b6a3602042001200341056a36020020074280808080045421060c050b20054108490d03200329000121072001200241776a3602042001200341096a3602002007428080808080808080015421060c040b200441134b0d02200841046a21052002417e6a2102200341026a2103410021044200210741012106034002402002417f470d000c050b2003417f6a310000210920012002360204200120033602002002417f6a2102200341016a210320092004410374413871ad862007842107200441016a220441ff01712005490d000b2007427f412820084103746b413871ad885821060c030b2004410276ad21070b410021060c010b410121060b2000200737030820002006ad3703000bbe0e02047f027e230041b00b6b2202240002400240200128020422030d002000410c3602000c010b200128020022042d0000210520012003417f6a3602042001200441016a3602000240024002400240024002400240024002400240024002400240024002400240024002400240024020050e0c000102030405060708090a0c0b0b200041003602000c130b200041013602000c120b200041023602000c110b200041033602000c100b20022001109b01024020022802000d002001280204220420022802042203490d002003417f4c0d0a0240024020030d00410121050c010b2003102f2205450d0c2005410020031087051a200128020421040b024020042003490d002005200128020020031085052105200128020422042003490d0e20002005360204200041043602002001200420036b360204200041086a2003ad22064220862006843702002001200128020020036a3602000c110b200510300b2000410c3602000c0f0b200241086a2001109b01024020022802080d0020012802042204200228020c2203490d002003417f4c0d090240024020030d00410121050c010b2003102f2205450d0b2005410020031087051a200128020421040b024020042003490d002005200128020020031085052105200128020422042003490d0e20002005360204200041053602002001200420036b360204200041086a2003ad22064220862006843702002001200128020020036a3602000c100b200510300b2000410c3602000c0e0b200241e8076a2001109901024020022903e8074209510d00200241a0046a200241e8076a41c8031085051a200241d0006a41046a200241a0046a41c8031085051a20004106360200200041046a200241d0006a41cc031085051a0c0e0b2000410c3602000c0d0b200241e8076a2001109901024020022903e8074209510d00200241a0046a200241e8076a41c8031085051a200241d0006a41046a200241a0046a41c8031085051a20004107360200200041046a200241d0006a41cc031085051a0c0d0b2000410c3602000c0c0b200241286a2001109b010240024020022802280d0020012802042204200228022c2203490d002003417f4c0d070240024020030d00410121050c010b2003102f2205450d092005410020031087051a200128020421040b024020042003490d0020052001280200200310850521052001280204220420034f0d022003200441f0f5c100104a000b200510300b2000410c3602000c0c0b2001200420036b3602042001200128020020036a360200200241106a200110c9022002290310a7450d0a2000410c3602002003450d0b200510300c0b0b200241306a2001109b010240024020022802300d002001280204220420022802342203490d002003417f4c0d060240024020030d00410121050c010b2003102f2205450d082005410020031087051a200128020421040b024020042003490d0020052001280200200310850521052001280204220420034f0d022003200441f0f5c100104a000b200510300b2000410c3602000c0b0b2001200420036b3602042001200128020020036a360200200241d0006a200110ca02024020022d00504107460d00200041106a2002290350370300200041306a200241d0006a41206a290300370300200041286a200241d0006a41186a290300370300200041206a200241d0006a41106a290300370300200041186a200241d0006a41086a2903003703002000410c6a2003360200200041086a200336020020002005360204200041093602000c0b0b2000410c3602002003450d0a200510300c0a0b200241e8076a200110990120022903e8074209510d02200241a0046a200241e8076a41c8031085051a200241386a200110c90202402002290338a70d00200241c8006a290300210620022903402107200241d0006a41046a200241a0046a41c8031085051a2000410a360200200041046a200241d0006a41cc031085051a200041d8036a2006370300200041d0036a20073703000c0a0b2000410c360200200241a0046a109c010c090b2000410c3602000c080b200241e8076a200110990120022903e8074209510d03200241a0046a200241e8076a41c8031085051a200241e8076a200110ca02024020022d00e8074107460d00200041d0036a20022903e807370300200041f0036a20024188086a290300370300200041e8036a20024180086a290300370300200041e0036a200241f8076a290300370300200041d8036a200241f0076a290300370300200241d0006a41046a200241a0046a41c8031085051a2000410b360200200041046a200241d0006a41cc031085051a0c080b2000410c360200200241a0046a109c010c070b2000410c3602000c060b102c000b102a000b2000410c3602000c030b2003200441f0f5c100104a000b2003200441f0f5c100104a000b200241106a41106a2903002106200229031821072000200536020420004108360200200041106a20073703002000410c6a2003360200200041086a2003360200200041186a20063703000b200241b00b6a24000b920403027f017e077f230041d00b6b220324000240024002402002200128020441e8036e2204200420024b1bad42e8037e2205422088a70d002005a72204417f4c0d0002400240024020040d00410821060c010b2004102f2206450d010b200441e8036e2107024020020d00410021020c030b200341d8076a410172210841002109410021044100210a02400340200341d8076a200110a10120032d00d807210b200341f1036a200841e7031085051a200b410b460d012003410a6a200341f1036a41e7031085051a0240200a2007470d002009200a41016a220c2009200c4b1b220c4104200c41044b1bad42e8037e2205422088a745410374210c2005a7210702400240200a0d00200341003602d8070c010b200341083602e007200320043602dc07200320063602d8070b200341c00b6a2007200c200341d8076a106920032802c80b210c024020032802c00b4101470d00200c0d040c050b20032802c40b2106200c41e8036e21070b200620046a220c200b3a0000200c41016a2003410a6a41e7031085051a200941026a2109200441e8036a21042002200a41016a220a460d040c000b0b200041003602000240200a450d002006210a0340200a10a201200a41e8036a210a200441987c6a22040d000b0b2007450d03200741e8036c450d03200610300c030b102a000b102c000b2000200736020420002006360200200041086a20023602000b200341d00b6a24000bc50801027f0240024002400240024002400240024020002d00000e0707000102030405060b02402000410c6a2802002201450d00200041046a2802002102200141f8036c210103402002109a01200241f8036a2102200141887c6a22010d000b0b0240200041086a2802002202450d00200241f8036c450d00200028020410300b200041106a109c010f0b02402000410c6a2802002201450d00200041046a2802002102200141f8036c210103402002109a01200241f8036a2102200141887c6a22010d000b0b0240200041086a2802002202450d00200241f8036c450d00200028020410300b200041206a109c010240200041186a2802002201450d00200041106a280200210220014198046c21010340200210a00120024198046a2102200141e87b6a22010d000b0b200041146a2802002202450d0520024198046c450d05200028021010300f0b02402000410c6a2802002201450d00200041046a2802002102200141f8036c210103402002109a01200241f8036a2102200141887c6a22010d000b0b0240200041086a2802002202450d00200241f8036c450d00200028020410300b0240200041186a2802002201450d00200041106a2802002102200141f8036c210103402002109a01200241f8036a2102200141887c6a22010d000b0b200041146a2802002202450d04200241f8036c450d04200028021010300f0b02402000410c6a2802002201450d00200041046a2802002102200141f8036c210103402002109a01200241f8036a2102200141887c6a22010d000b0b0240200041086a2802002202450d00200241f8036c450d00200028020410300b200041206a109c010240200041186a2802002201450d00200041106a280200210220014198046c21010340200210a00120024198046a2102200141e87b6a22010d000b0b200041146a2802002202450d0320024198046c450d03200028021010300f0b02402000410c6a2802002201450d00200041046a2802002102200141f8036c210103402002109a01200241f8036a2102200141887c6a22010d000b0b0240200041086a2802002202450d00200241f8036c450d00200028020410300b200041206a109c010240200041186a2802002201450d00200041106a280200210220014198046c21010340200210a00120024198046a2102200141e87b6a22010d000b0b200041146a2802002202450d0220024198046c450d02200028021010300f0b200041186a109c0102402000410c6a2802002201450d00200041046a2802002102200141f8036c210103402002109a01200241f8036a2102200141887c6a22010d000b0b200041086a2802002202450d01200241f8036c450d01200028020410300c010b200041106a109a0102402000410c6a2802002201450d00200041046a2802002102200141e8036c21010340200210a201200241e8036a2102200141987c6a22010d000b0b200041086a2802002202450d00200241e8036c450d00200028020410300f0b0b941503057f027e017f230041900c6b2202240002400240200128020422030d002000410b3a00000c010b200128020022042d0000210520012003417f6a22063602042001200441016a3602000240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024020050e0b000102030405060708090b0a0b200241a8086a200110980120022802a8082203450d13200241b0086a280200210520022802ac08210420022001109b01024002402002280200450d00200241003602a8080c010b200241a8086a2001200228020410970120022802a8080d220b2000410b3a000002402005450d00200541f8036c21002003210103402001109a01200141f8036a2101200041887c6a22000d000b0b2004450d22200441f8036c450d22200310300c220b200241a8086a200110980120022802a8082203450d11200241b0086a280200210520022802ac082104200241086a2001109b01024002402002280208450d00200241003602a8080c010b200241a8086a2001200228020c10970120022802a8080d200b2000410b3a000002402005450d00200541f8036c21002003210103402001109a01200141f8036a2101200041887c6a22000d000b0b2004450d21200441f8036c450d21200310300c210b200241a8086a200110980120022802a8082203450d0f200241b0086a280200210520022802ac082104200241106a2001109b01024002402002280210450d00200241003602a8080c010b200241a8086a2001200228021410970120022802a8080d1e0b2000410b3a000002402005450d00200541f8036c21002003210103402001109a01200141f8036a2101200041887c6a22000d000b0b2004450d20200441f8036c450d20200310300c200b200241186a2001109d012002290318a70d11024020012802042203450d0020022903202107200128020022042d0000210520012003417f6a3602042001200441016a36020020050d00200241a8086a200110980120022802a8082201450d0020022902ac082108200041106a2007370300200041086a2008370000200041046a2001360000200041033a00000c200b2000410b3a00000c1f0b200241a8086a200110980120022802a8082203450d11200241a8086a41086a280200210520022802ac082104200241a8086a2001109901024020022903a8084209510d00200041106a200241a8086a41c8031085051a2000410c6a2005360000200041086a2004360000200041046a2003360000200041043a00000c1f0b2000410b3a000002402005450d00200541f8036c21002003210103402001109a01200141f8036a2101200041887c6a22000d000b0b2004450d1e200441f8036c450d1e200310300c1e0b200241c0046a200110980120022802c0042203450d11200241c8046a280200210520022802c4042104200241c0046a200110990120022903c0044209510d0a200241f8006a200241c0046a41c8031085051a200241286a2001109b01024002402002280228450d00200241003602c0040c010b200241c0046a2001200228022c10970120022802c0040d1a0b2000410b3a0000200241f8006a109c010c0b0b2006450d1120042d0001210520012003417e6a22063602042001200441026a36020041002109024002400240024020050e0403000102150b410121090c020b410221090c010b410321090b02400240024020064108490d00200429000221072001200341766a36020420012004410a6a360200200241306a2001109b0120022802300d022001280204220420022802342203490d022003417f4c0d150240024020030d00410121050c010b2003102f2205450d092005410020031087051a200128020421040b20042003490d012005200128020020031085052105200128020422042003490d1a200020093a0001200041063a00002001200420036b360204200041186a2007370300200041106a41003a0000200041086a2003ad2207422086200784370100200041046a20053601002001200128020020036a3602000c1f0b2000410b3a00000c1e0b200510300b2000410b3a00000c1c0b200241c8006a2001109b0120022802480d12200228024c2103200241c0006a2001109b0120022802400d1320022802442104200241386a2001109b01024020022802380d00200228023c2101200041073a00002000410c6a2001360200200041086a2004360200200041046a20033602000c1c0b2000410b3a00000c1b0b200241d0006a2001109b01024020022802500d0020022802542101200041083a0000200041046a20013602000c1b0b2000410b3a00000c1a0b200241e8006a2001109b0120022802680d12200228026c2103200241e0006a2001109b0120022802600d1320022802642104200241d8006a2001109b01024020022802580d00200228025c2101200041093a00002000410c6a2001360200200041086a2004360200200041046a20033602000c1a0b2000410b3a00000c190b2000410b3a00000c180b200241a8086a200110990120022903a8084209510d01200241f8006a200241a8086a41c8031085051a200241a8086a200110a10120022d00a8082101200241c0046a200241a8086a41017241e7031085051a2001410b460d0341e803102f22030d020b102a000b2000410b3a00000c150b200320013a0000200341016a200241c0046a41e7031085051a200041086a200241f8006a41c8031085051a200041046a20033602002000410a3a00000c140b2000410b3a0000200241f8006a109c010c130b2000410b3a00000b02402005450d00200541f8036c21002003210103402001109a01200141f8036a2101200041887c6a22000d000b0b2004450d11200441f8036c450d11200310300c110b2000410b3a00000c100b2000410b3a00000c0f0b2000410b3a00000c0e0b2000410b3a00000c0d0b2000410b3a00000c0c0b2000410b3a00000c0b0b2000410b3a00000c0a0b102c000b2000410b3a00000c080b2000410b3a00000c070b2000410b3a00000c060b2000410b3a00000c050b2003200441f0f5c100104a000b200041106a20022903c004370200200041186a200241c0046a41086a280200360200200241a8086a41046a200241f8006a41c8031085051a200041053a0000200020022f00753b0001200041036a200241f7006a2d00003a00002000410c6a2005360000200041086a2004360000200041046a20033600002000411c6a200241a8086a41cc031085051a0c030b200041106a20022903a808370200200041186a200241a8086a41086a280200360200200041023a0000200020022f00c0043b0001200041036a200241c0046a41026a2d00003a00002000410c6a2005360000200041086a2004360000200041046a20033600000c020b200041106a20022903a808370200200041186a200241a8086a41086a280200360200200041013a0000200020022f00c0043b0001200041036a200241c2046a2d00003a00002000410c6a2005360000200041086a2004360000200041046a20033600000c010b200041106a20022903a808370200200041186a200241a8086a41086a280200360200200041003a0000200020022f00c0043b0001200041036a200241c2046a2d00003a00002000410c6a2005360000200041086a2004360000200041046a20033600000b200241900c6a24000b820801027f02400240024002400240024002400240024020002d00000e0a00010203040506070707080b02402000410c6a2802002201450d00200041046a2802002102200141f8036c210103402002109a01200241f8036a2102200141887c6a22010d000b0b0240200041086a2802002202450d00200241f8036c450d00200028020410300b0240200041186a2802002201450d00200041106a280200210220014198046c21010340200210a00120024198046a2102200141e87b6a22010d000b0b200041146a2802002202450d0620024198046c450d06200028021010300f0b02402000410c6a2802002201450d00200041046a2802002102200141f8036c210103402002109a01200241f8036a2102200141887c6a22010d000b0b0240200041086a2802002202450d00200241f8036c450d00200028020410300b0240200041186a2802002201450d00200041106a280200210220014198046c21010340200210a00120024198046a2102200141e87b6a22010d000b0b200041146a2802002202450d0520024198046c450d05200028021010300f0b02402000410c6a2802002201450d00200041046a2802002102200141f8036c210103402002109a01200241f8036a2102200141887c6a22010d000b0b0240200041086a2802002202450d00200241f8036c450d00200028020410300b0240200041186a2802002201450d00200041106a280200210220014198046c21010340200210a00120024198046a2102200141e87b6a22010d000b0b200041146a2802002202450d0420024198046c450d04200028021010300f0b02402000410c6a2802002201450d00200041046a2802002102200141f8036c210103402002109a01200241f8036a2102200141887c6a22010d000b0b200041086a2802002202450d03200241f8036c450d03200028020410300f0b02402000410c6a2802002201450d00200041046a2802002102200141f8036c210103402002109a01200241f8036a2102200141887c6a22010d000b0b0240200041086a2802002202450d00200241f8036c450d00200028020410300b200041106a109c010f0b02402000410c6a2802002201450d00200041046a2802002102200141f8036c210103402002109a01200241f8036a2102200141887c6a22010d000b0b0240200041086a2802002202450d00200241f8036c450d00200028020410300b200041206a109c010240200041186a2802002201450d00200041106a280200210220014198046c21010340200210a00120024198046a2102200141e87b6a22010d000b0b200041146a2802002202450d0120024198046c450d01200028021010300f0b200041086a280200450d00200041046a28020010300b0f0b200041086a109c01200041046a220228020010a201200228020010300b891507027f017e0b7f017e057f037e017f230041c0176b22032400024002400240200220012802044198046e2204200420024b1bad4298047e2205422088a70d002005a72204417f4c0d0002400240024020040d00410821060c010b2004102f2206450d010b20044198046e2107024020020d00410021020c030b200341c8136a410c6a2108200341c8136a41046a2109200341d00f6a410472210a200341a8136a210b200341d00f6a410c6a210c4100210d0240034020012802042204450d012001280200220e2d0000210f20012004417f6a3602042001200e41016a3602004100210e02400240024002400240024002400240024002400240024002400240024002400240200f0e080300010205060708120b200341c8136a200110980120032802c813220f450d0820032802d013210420032802cc132110200341c8136a2001109901024020032903c81322114209510d0020032802d0132112200341bc086a200841bc031085051a4101210e200f21132010211420042115201121050c030b02402004450d00200441f8036c210e200f210403402004109a01200441f8036a2104200e41887c6a220e0d000b0b4108210e410121042010450d0e201041f8036c450d0e200f10300c0e0b200341d00f6a200110980120032802d00f220f450d0720032802d80f211620032802d40f2110200341d00f6a2001109901024020032903d00f4209510d00200341880c6a200341d00f6a41c8031085051a200341086a2001109b01024002402003280208450d00200341003602d00f0c010b200341d00f6a2001200328020c10970120032802d00f0d0b0b200341880c6a109c010b02402016450d00201641f8036c210e200f210403402004109a01200441f8036a2104200e41887c6a220e0d000b0b2010450d07201041f8036c450d07200f10300c070b200341c8136a200110980120032802c813220f450d0620032802d013210420032802cc132110200341c8136a200110980120032802c813450d0120032802d013211220032903c81321054103210e200f211320102114200421150b200341cc046a200341bc086a41cc031085051a0c0c0b02402004450d00200441f8036c210e200f210403402004109a01200441f8036a2104200e41887c6a220e0d000b0b4108210e410121042010450d0a201041f8036c450d0a200f10300c0a0b200341d00f6a200110980120032802d00f220f450d0320032802d80f211620032802d40f2110200341d00f6a2001109901024020032903d00f4209510d00200341880c6a200341d00f6a41c8031085051a200341106a2001109b01024002402003280210450d00200341003602d00f0c010b200341d00f6a2001200328021410970120032802d00f0d090b200341880c6a109c010b02402016450d00201641f8036c210e200f210403402004109a01200441f8036a2104200e41887c6a220e0d000b0b2010450d03201041f8036c450d03200f10300c030b200341d00f6a200110980120032802d00f220f450d0220032802d80f211620032802d40f2110200341d00f6a2001109901024020032903d00f4209510d00200341880c6a200341d00f6a41c8031085051a200341186a2001109b01024002402003280218450d00200341003602d00f0c010b200341d00f6a2001200328021c10970120032802d00f0d070b200341880c6a109c010b02402016450d00201641f8036c210e200f210403402004109a01200441f8036a2104200e41887c6a220e0d000b0b2010450d02201041f8036c450d02200f10300c020b200341206a2001109d014108210e410121042003290320a70d0720032903282111200341c8136a200110990120032903c8134209510d07200341d00f6a200341c8136a41c8031085051a200341c8136a200110980120032802c813220f450d0220032802d013211520032802cc13211420032802d00f2112200341bc086a200a41c4031085051a4106210e41002104200f2113201121050c060b200341c8136a2001109e0120032802c813410c460d00200341d00f6a200341c8136a41f8031085051a0240200128020422044108490d002001280200220e29000021112001200441786a220f3602042001200e41086a360200200f4108490d00200e29000821172001200441706a220f3602042001200e41106a220e360200200f450d00200e2d0000210f20012004416f6a3602042001200e41016a3602004100211002400240200f0e020100020b410121100b200341306a2001109b0120032802300d00200341c8136a2001200328023410940120032802c813220f450d0020032802d013211520032802cc13211420032903d00f210520032802d80f2112200341bc086a200c41cc031085051a20034198086a41186a200b41186a29030037030020034198086a41106a200b41106a29030037030020034198086a41086a200b41086a2903003703002003200b290300370398084107210e41002104200f211320172118201121192010211a0c070b200341d00f6a109a010b4108210e410121040c050b200341d00f6a109c010c040b20032802d80f211220032903d00f21052009200341880c6a41c8031085051a200341bc086a200341c8136a41cc031085051a4102210e41002104200f211320102114201621150c020b20032802d80f211220032903d00f21052009200341880c6a41c8031085051a200341bc086a200341c8136a41cc031085051a4105210e41002104200f211320102114201621150c010b20032802d80f211220032903d00f21052009200341880c6a41c8031085051a200341bc086a200341c8136a41cc031085051a4104210e41002104200f211320102114201621150b0b200341cc046a200341bc086a41cc031085051a200341a8046a41186a20034198086a41186a290300370300200341a8046a41106a20034198086a41106a290300370300200341a8046a41086a20034198086a41086a29030037030020032003290398083703a80420040d020b200341dc006a200341cc046a41cc031085051a200341386a41186a220f200341a8046a41186a290300370300200341386a41106a2210200341a8046a41106a290300370300200341386a41086a2216200341a8046a41086a290300370300200320032903a8043703380240200d2007470d00200d4101742204200d41016a2207200420074b1b22044104200441044b1bad4298047e2211422088a74541037421042011a7210702400240200d0d00200341003602c8130c010b200341083602d013200320063602c8132003200d4198046c3602cc130b200341d00f6a20072004200341c8136a106920032802d80f2104024020032802d00f4101470d0020040d040c050b20032802d40f210620044198046e21070b2006200d4198046c6a22042012360018200420053700102004201536000c20042014360008200420133600042004201a3a00012004200e3a00002004411c6a200341dc006a41cc031085051a20044180046a200f290300370000200441f8036a2010290300370000200441f0036a2016290300370000200420032903383700e80320042018370090042004201937008804200d41016a2204210d20042002460d040c000b0b200041003602002006200d10a4012007450d0320074198046c450d03200610300c030b102a000b102c000b2000200736020420002006360200200041086a20023602000b200341c0176a24000bf00801037f02402001450d00200020014198046c6a21020340200022034198046a21000240024002400240024002400240024020032d00000e0707000102030405060b02402003410c6a2802002204450d00200341046a2802002101200441f8036c210403402001109a01200141f8036a2101200441887c6a22040d000b0b0240200341086a2802002201450d00200141f8036c450d00200328020410300b200341106a109c010c060b02402003410c6a2802002204450d00200341046a2802002101200441f8036c210403402001109a01200141f8036a2101200441887c6a22040d000b0b0240200341086a2802002201450d00200141f8036c450d00200328020410300b200341206a109c010240200341186a2802002204450d00200341106a280200210120044198046c21040340200110a00120014198046a2101200441e87b6a22040d000b0b200341146a2802002201450d0520014198046c450d05200328021010300c050b02402003410c6a2802002204450d00200341046a2802002101200441f8036c210403402001109a01200141f8036a2101200441887c6a22040d000b0b0240200341086a2802002201450d00200141f8036c450d00200328020410300b0240200341186a2802002204450d00200341106a2802002101200441f8036c210403402001109a01200141f8036a2101200441887c6a22040d000b0b200341146a2802002201450d04200141f8036c450d04200328021010300c040b02402003410c6a2802002204450d00200341046a2802002101200441f8036c210403402001109a01200141f8036a2101200441887c6a22040d000b0b0240200341086a2802002201450d00200141f8036c450d00200328020410300b200341206a109c010240200341186a2802002204450d00200341106a280200210120044198046c21040340200110a00120014198046a2101200441e87b6a22040d000b0b200341146a2802002201450d0320014198046c450d03200328021010300c030b02402003410c6a2802002204450d00200341046a2802002101200441f8036c210403402001109a01200141f8036a2101200441887c6a22040d000b0b0240200341086a2802002201450d00200141f8036c450d00200328020410300b200341206a109c010240200341186a2802002204450d00200341106a280200210120044198046c21040340200110a00120014198046a2101200441e87b6a22040d000b0b200341146a2802002201450d0220014198046c450d02200328021010300c020b200341186a109c0102402003410c6a2802002204450d00200341046a2802002101200441f8036c210403402001109a01200141f8036a2101200441887c6a22040d000b0b200341086a2802002201450d01200141f8036c450d01200328020410300c010b200341106a109a0102402003410c6a2802002204450d00200341046a2802002101200441e8036c210403402001109601200141e8036a2101200441987c6a22040d000b0b200341086a2802002201450d00200141e8036c450d00200328020410300b20002002470d000b0b0bab0101017f230041106b220224000240024002400240200141c000490d00200141808001490d012001418080808004490d02200241033a00032000200241036a41011064200220013602042000200241046a410410640c030b200220014102743a000d20002002410d6a410110640c020b200220014102744101723b010e20002002410e6a410210640c010b200220014102744102723602082000200241086a410410640b200241106a24000bb30101017f230041106b220324000240024002400240200141c000490d00200141808001490d012001418080808004490d02200341033a00032002200341036a41011064200320013602042002200341046a410410640c030b200320014102743a000d20022003410d6a410110640c020b200320014102744101723b010e20022003410e6a410210640c010b200320014102744102723602082002200341086a410410640b2002200020011064200341106a24000bdd0b01057f230041206b21020240024020012802042203450d00200128020022042d0000210520012003417f6a2206360204200241013602082001200441016a360200200220053a000c20060d01200041013a00000f0b200041013a00000f0b200128020022042d0000210520012003417e6a22063602042001200441016a360200200220053a000d200241023602080240024002400240024002400240024002400240024002400240024002400240024002402006450d00200128020022042d0000210520012003417d6a22063602042001200441016a360200200220053a000e200241033602082006450d01200128020022042d0000210520012003417c6a22063602042001200441016a360200200220053a000f200241043602082006450d02200128020022042d0000210520012003417b6a22063602042001200441016a360200200241106a20053a0000200241053602082006450d03200128020022042d0000210520012003417a6a22063602042001200441016a360200200241116a20053a0000200241063602082006450d04200128020022042d000021052001200341796a22063602042001200441016a360200200241126a20053a0000200241073602082006450d05200128020022042d000021052001200341786a22063602042001200441016a360200200241136a20053a0000200241083602082006450d06200128020022042d000021052001200341776a22063602042001200441016a360200200241146a20053a0000200241093602082006450d07200128020022042d000021052001200341766a22063602042001200441016a360200200241156a20053a00002002410a3602082006450d08200128020022042d000021052001200341756a22063602042001200441016a360200200241166a20053a00002002410b3602082006450d09200128020022042d000021052001200341746a22063602042001200441016a360200200241176a20053a00002002410c3602082006450d0a200128020022042d000021052001200341736a22063602042001200441016a360200200241186a20053a00002002410d3602082006450d0b200128020022042d000021052001200341726a22063602042001200441016a360200200241196a20053a00002002410e3602082006450d0c200128020022042d000021052001200341716a22063602042001200441016a3602002002411a6a20053a00002002410f3602082006450d0d200128020022042d000021052001200341706a22063602042001200441016a3602002002411b6a20053a0000200241103602082006450d0e200128020022042d0000210520012003416f6a22063602042001200441016a3602002002411c6a20053a0000200241113602082006450d0f200128020022042d0000210520012003416e6a22063602042001200441016a3602002002411d6a20053a0000200241123602082006450d10200128020022042d0000210520012003416d6a22063602042001200441016a3602002002411e6a20053a0000200241133602082006450d112002411f6a200128020022042d000022053a000020012003416c6a3602042001200441016a360200200020022f010c3b0001200041036a20022d000e3a0000200041046a200228000f360000200041086a200241086a410b6a2f00003b00002000410a6a200241156a2d00003a00002002411d6a2f00002101200241143602082000410b6a200241166a280100360000200041116a200241086a41146a2d00003a00002000410f6a200241086a41126a2f01003b0000200041146a20053a0000200041126a20013b0000200041003a00000f0b200041013a00000f0b200041013a00000f0b200041013a00000f0b200041013a00000f0b200041013a00000f0b200041013a00000f0b200041013a00000f0b200041013a00000f0b200041013a00000f0b200041013a00000f0b200041013a00000f0b200041013a00000f0b200041013a00000f0b200041013a00000f0b200041013a00000f0b200041013a00000f0b200041013a00000f0b200041013a00000bb90202057f017e230041106b22012400200142003703080240024020002802042202450d00200028020022032d0000210420002002417f6a2205360204200141013602082000200341016a360200200120043a000c2005450d00200028020022032d0000210420002002417e6a22053602042000200341016a36020020014102360208200120043a000d2005450d00200028020022032d0000210420002002417d6a22053602042000200341016a36020020014103360208200120043a000e2005450d00200028020022032d0000210420002002417c6a3602042000200341016a360200200120043a000f20014104360208024020012903082206a741044f0d0041fef8c100411b419cf9c100102d000b2006422088a72102410021000c010b41012100410021020b200141106a24002002ad4208862000ad840bd20403087f017e017f230041e0006b220241086a41047221032001280204210441002105024003402004450d01200128020022062d0000210720012004417f6a22043602042001200641016a360200200320056a20073a00002002200541016a220636020820062105200641c000470d000b2002200241086a41356a22012900003703502002200241c4006a290000370057200241396a2800002104200241326a28010021052002412b6a2800002106200241246a28020021072002411d6a2800002103200241166a2801002108200228005321092002290057210a200228000f210b200041036a20022d000e3a0000200020022f010c3b0001200041046a200b3600002000410b6a2008360000200041086a200241086a410b6a2f00003b00002000410a6a200241156a2d00003a0000200041126a20033600002000410f6a200241086a41126a2f01003b0000200041116a2002411c6a2d00003a0000200041166a200241086a41196a2f00003b0000200041186a200241236a2d00003a0000200041196a20073600002000411f6a2002412a6a2d00003a00002000411d6a200241086a41206a2f01003b0000200041206a2006360000200041266a200241316a2d00003a0000200041246a200241086a41276a2f00003b0000200041276a20053600002000412d6a200241386a2d00003a00002000412b6a200241086a412e6a2f01003b00002000412e6a2004360000200041346a2002413f6a2d00003a0000200041326a20012f00003b0000200041396a200a370000200041356a2009360000200041003a00000f0b200041013a00000b9b0805077f017e027f017e027f23004180016b22012400200141286a4200370300200141206a22024200370300200141106a41086a420037030020014200370310200141106a41e2a4c000410f10ab01200241a4e0c000411410ab01200141203602342001200141106a36023041002103200141386a200141106a412041002802d4ad421104000240024002400240200128023822040d000c010b200128023c21052001200141386a41086a28020036024c20012004360248200141086a200141c8006a109b010240024020012802080d00410421030240024002400240200128020c2206200128024c4104762202200220064b1b22024104742207417f4c0d0002402002450d002007102f2203450d080b2002ad21082006450d030340200128024c22024104490d0320012802482207280000210920012002417c6a36024c2001200741046a3602482001200141c8006a109b0120012802000d03200128024c220720012802042202490d032002417f4c0d010240024020020d004101210a0c010b2002102f220a450d09200a410020021087051a200128024c21070b20072002490d02200a20012802482002108505210a200128024c22072002490d092001200720026b36024c2001200128024820026a360248024002402008422088220ba722072008a7470d00200741016a220c2007490d032007410174220d200c200c200d491b220c4104200c41044b1b220c41ffffffff0071200c46410274210d200c410474210c0240024020070d00200141003602680c010b20014104360270200120033602682001200b4204863e026c0b200141d8006a200c200d200141e8006a10692001280260210c20012802584101460d01200128025c2103200842808080807083200c410476ad8421080b200320074104746a2207200a36020420072009360200200741086a2002ad220b422086200b8437020020084280808080107c21082006417f6a22060d010c070b0b200c0d070b102c000b200a10300b02402008422088a72202450d0020024104742107200341086a2102034002402002280200450d002002417c6a28020010300b200241106a2102200741706a22070d000b0b0240200842ffffffff008350450d000c020b200310300c010b20030d010b2001420037025c41002103200141002802dc9442360258200141093602542001200141306a3602502001200141d8006a360264200141fc006a41013602002001420137026c200141a0e6c1003602682001200141d0006a360278200141e4006a41d0adc000200141e8006a10321a2001280258200128026010ad01200128025c450d00200128025810300b2005450d00200410300b0240024020030d0020004200370204200041002802e88f423602000c010b20002008370204200020033602000b20014180016a24000f0b102a000b2002200741f0f5c100104a000b3e002002ad4220862001ad8410102101200041086a2202420037000020004200370000200020012900003700002002200141086a290000370000200110300bde0401047f230041c0006b2202240020002802042103200028020021042001280218419c9ec00041012001411c6a28020028020c11000021000240024020030d00200021050c010b2002200436020441012105024020000d00024020012d0000410471450d0041012105200128021841ec9dc0004101200128021c28020c1100000d012001280200210041012105200241013a001720022000360218200241b09dc00036023420022001290218370308200220012d00203a00382002200128020436021c20022001290210370328200220012902083703202002200241176a3602102002200241086a360230200241046a200241186a10d3020d01200228023041c89dc0004102200228023428020c11000021050c010b200241046a200110d30221050b20034101460d00200441016a21002003417f6a2103034020022000360204200541ff0171210441012105024020040d00024020012802002205410471450d00200241013a001720022005360218200241b09dc00036023420022001290218370308200220012d00203a00382002200128020436021c20022001290210370328200220012902083703202002200241176a3602102002200241086a3602300240200241046a200241186a10d3020d00200228023041c89dc0004102200228023428020c11000021050c020b410121050c010b41012105200128021841ab9dc0004102200128021c28020c1100000d00200241046a200110d30221050b200041016a21002003417f6a22030d000b0b41012100024020050d00200128021841ed9dc0004101200128021c28020c11000021000b200241c0006a240020000b0e002001ad4220862000ad8410160b810201027f230041306b22022400200241186a4200370300200241106a22034200370300200241086a420037030020024200370300200241dca4c000410610ab012003418cc4c100410e10ab012002410036022820024201370320410021030240024002400240024020000e03000102040b200241003a002c200241206a2002412c6a410110642002200136022c200241206a2002412c6a410410640c020b200241013a002c200241206a2002412c6a410110640c010b200241023a002c200241206a2002412c6a410110640b200228022421030b2002412020022802202200200228022841002802fcad4211030002402003450d00200010300b200241306a24000bd20201057f230041f0006b22002400200041186a4200370300200041106a22014200370300200041086a420037030020004200370300200041f1a4c000410d10ab01200141b088c100410b10ab01200041203602242000200036022041002101200041286a2000412041002802d4ad4211040002400240200028022822020d000c010b200028022c210302400240200041286a41086a2802004104490d0020022800002104410121010c010b2000420037023c41002101200041002802dc94423602382000410936024c2000200041206a3602482000200041386a360254200041ec006a41013602002000420137025c200041a0e6c1003602582000200041c8006a360268200041d4006a41d0adc000200041d8006a10321a2000280238200028024010ad010240200028023c450d00200028023810300b0b2003450d00200210300b200041f0006a2400200441e40020011b0ba504010d7f230041f0006b22012400200141186a4200370300200141106a22024200370300200141086a420037030020014200370300200141e2a4c000410f10ab01200241c8dcc000411110ab01200141203602242001200136022041002102200141286a2001412041002802d4ad4211040002400240200128022822030d000c010b200128022c2104024002400240200141286a41086a28020022024104490d002002417c7122024104460d0020024108460d002002410c460d0020024110460d0020024114460d00200328000021052003280004210620032800082107200328000c2108200328001021092003280014210a200241686a220241084b0d01410120027441910271450d010b2001420037023c41002102200141002802dc94423602382001410936024c2001200141206a3602482001200141386a360254200141ec006a41013602002001420137025c200141a0e6c1003602582001200141c8006a360268200141d4006a41d0adc000200141d8006a10321a2001280238200128024010ad010240200128023c450d00200128023810300b0c010b2003280020210b200328001c210c2003280018210d410121020b2004450d00200310300b200041246a200b360200200041206a200c3602002000411c6a200d360200200041186a200a360200200041146a2009360200200041106a20083602002000410c6a2007360200200041086a20063602002000200536020420002002360200200141f0006a24000bb02b050e7f027e077f037e027f230041c0036b220124002000412c6a22022802002103200041246a22042802002205280200210620024100360200200041286a4100360200200441bcf5c100360200200041206a22022802002107200241003602002005200741016a22086a2109200541046a21022006417f7341808182847871210a200141b8016a410572210b20014192016a210c20052104024002400240024002400240024002400240024002400240024002400240024003400240024002400240200a0d000340024020022009490d00410021060c040b200441c07d6a210420022802002106200241046a220d21022006418081828478712206418081828478460d000b200641808182847873220a417f6a200a7121060c010b200a417f6a200a7121062002210d0b2003417f6a210320044100200a684103766b41d0006c6a220241546a2d0000220e4102470d01200d21020b02402003450d0003400240024020060d000340200220094f0d04200441c07d6a210420022802002106200241046a220d21022006418081828478712206418081828478460d000b2006418081828478732206417f6a200671210b200d21020c010b2006417f6a200671210b0b200668210d200b210620044100200d4103766b41d0006c6a220d41506a2802004125490d00200d41586a2802001030200b21060c000b0b024002402007450d00200541ff01200741056a1087051a200741074d0d00200841037641076c21020c010b200721020b20002002360228200020073602202000412c6a4100360200200041246a200536020020002d00584101460d0f200041dc006a28020021020240200041c8006a220d28020022042004417f6a2206200041c0006a220928020022042000413c6a220b2802006b716b4101470d00200b10b201200d280200417f6a2106200928020021040b20092006200441016a71360200200041c4006a28020020044102746a2002360200200041386a280200220420024d0d03200141e4006a41026a200041306a220e280200200241fc006c6a220241036a2d00003a0000200141c0006a41086a220d200241206a290000370300200141c0006a41106a200241286a290000370300200141c0006a41186a200241306a290000370300200120022f00013b01642001200229001837034020022800082106200228000c21042002290010210f20022800442103200229003c211020022800402111200228003c210820022800382112200241046a220b280000210920022d0000210a200b4100360200200241003a0000200141286a41106a220b200241d8006a280000360200200141286a41086a2213200241d0006a290000370300200141086a41086a2214200241e4006a290000370300200141086a41106a2215200241ec006a290000370300200141086a41186a2216200241f4006a290000370300200120022900483703282001200229005c370308200a4101470d02200241016a220a2f000021172000280254220241026a200a41026a2d00003a0000200220173b00002002200f37000f2002200436000b2002200636000720022009360003200220012903403700172002411f6a200d2d00003a0000200141ec016a200141dc006a280200360200200141e4016a200141d4006a2902003702002001200129024c3702dc0120014180026a2001290328370300200141b8016a41d0006a2013290300370300200141b8016a41d8006a200b28020036020020014194026a2001290308370200200141b8016a41e4006a2014290300370200200141b8016a41ec006a2015290300370200200141b8016a41f4006a20162903003702002001200141e4006a41026a2d00003a00bb01200120012f01643b00b901200141b8016a41106a200f370300200141c4016a2004360200200141b8016a41206a200d2d00003a0000200141b8016a41186a2001290340370300200141fc016a2003360200200141f4016a2010370200200141f0016a2012360200200141b8016a41086a2006360200200120093602bc01200141013a00b8012000200e200141b8016a10b30136025c200041003a00580c0f0b200241506a280200210a200241b07f6a2202290200210f200241086a2902002110200241106a2902002118200141c8026a41186a2213200241186a290200370300200141c8026a41106a22142018370300200141c8026a41086a221520103703002001200f3703c8022002290025210f2002412d6a2900002110200241356a29000021182002413d6a2900002119200241c5006a290000211a200241cd006a2f00002116200c200241cf006a2d00003a0000200141e8006a41286a20163b0100200141e8006a41206a2202201a370300200141e8006a41186a22162019370300200141e8006a41106a22172018370300200141e8006a41086a221220103703002001200f37036820014198036a41186a201329030037030020014198036a41106a201429030037030020014198036a41086a2015290300370300200120012903c802370398032001200e3a00bc012001200a3602b801200b2001290368370000200b41086a2012290300370000200b41106a2017290300370000200b41186a2016290300370000200b41206a2002290300370000200b41276a200141e8006a41276a280000360000200028024c21022000280250210e02400240200a4125490d0020012802c401210a20012802c00121130c010b200b21130b200120012f01e4013b01f8022001200a3602f402200120133602f002200220014198036a200141f0026a200e28021c110400024020012802b8014125490d0020012802c00110300b200d21022006210a0c000b0b2001410036029401200141003a006c200141003602680240024002400240024020090e050102030400010b200141b8016a41086a200f370300200141b8016a41106a2001290340370300200141b8016a41186a200141c0006a41086a290300370300200141d8016a200141c0006a41106a290300370300200141e0016a200141c0006a41186a290300370300200120063602b801200120043602bc010240024020044125490d00200f422088a7210920012802c80121040c010b200141c1016a21090b20064101762102024002402006410171450d00200420024d0d084101210d200920026a2d0000410f71210b200241016a21020c010b20042002490d064100210b4100210d0b200420026b210a200920026a2102200441017420066b2104024002402010a72206450d00200141a5036a200b3a0000200141a0036a200a3602002001200d3a00a4032001200236029c032001410036029803200141b8026a20014198036a2004410210b401200821090c010b200141a5036a200b3a0000200141a0036a200a3602002001200d3a00a4032001200236029c03410021092001410036029803200141b8026a20014198036a2004410110b4010b20012802c002221b21020240024002400240201b20012802bc02470d00201b41016a2202201b490d16201b41017422042002200420024b1b22024108200241084b1b210202400240201b0d0020014100360298030c010b20014198036a41086a41013602002001201b36029c03200120012802b802360298030b200141c8026a2002410120014198036a1069200141d0026a280200210220012802c8024101460d0120012802cc022104200120023602bc02200120043602b80220012802c00221020b20012802b80220026a41003a0000200120012802c00241016a22023602c002200220012802bc02470d02200241016a220420024f0d010c150b2002450d140c130b2002410174220d2004200d20044b1b22044108200441084b1b21040240024020020d0020014100360298030c010b20014198036a41086a41013602002001200236029c03200120012802b802360298030b200141c8026a2004410120014198036a1069200141d0026a280200210220012802c8024101460d0f20012802cc022104200120023602bc02200120043602b80220012802c00221020b20012802b80220026a41003a0000200120012802c00241016a3602c00202402006450d0020092003200141b8026a10a6010b201241c0046a210720014198036a4101722104200141b8016a41096a211c4100210b200141f0026a411f6a2115200141f0026a41186a210e200141f0026a41106a2113200141f0026a41086a211420122102410021034101210d0240034020022d00002106200241023a0000024020064103470d0020034180fe037141087621040c020b2015200241206a280000360000200e200241196a2900003703002013200241116a2900003703002014200241096a2900003703002001200241016a2900003703f00202400240024002400240024020064102470d00200141023a00c8020c010b0240024020012802bc01220a4125490d0020012802c801210a20012802c40121170c010b201c21170b20012802b80122164101762109024002402016410171450d00200a20094d0d1141012105201720096a2d0000410f71210c200941016a21090c010b200a2009490d0f410021054100210c0b2001200c3a009903200120053a0098032001200a20096b3602a0032001201720096a36029c03200141e8006a20014198036a10b501200141e8006a200b10b601200420012903f002370000200441086a2014290300370000200441106a2013290300370000200441186a200e2903003700002004411f6a2015280000360000200120063a009803200141c8026a200020014198036a200141e8006a10b701200141e8006a200a41017420166b41016a10b80120012d00c8024103460d010b20014198036a41206a200141c8026a41206a29030037030020014198036a41186a200141c8026a41186a29030037030020014198036a41106a200141c8026a41106a29030037030020014198036a41086a200141c8026a41086a290300370300200120012903c802220f37039803410021060240200fa741ff0171417f6a0e020004020b200e200441186a2900003703002013200441106a2900003703002014200441086a290000370300200120042900003703f00220012802bc03220641214f0d0f200141f0026a2006200141b8026a10a6010c020b20034180fe037141087621040c040b20044120200141b8026a10a6010b200d21060b200b41016a210b200d410174210d20062003722103200241246a22022007470d000b20034180fe037141087621040b201b41026a2102201b417e4f0d0a20012802c00222062002490d0b20012802b802201b6a2004410874200341ff0171723b000002402008450d002011450d00200810300b2012103020012802bc014125490d0f20012802c40110300c0f0b4101102f2202450d10200141013602bc02200120023602b802200241003a0000200141013602c0020c0e0b200141b8016a41086a200f370300200141b8016a41106a2001290340370300200141b8016a41186a200141c0006a41086a290300370300200141d8016a200141c0006a41106a290300370300200141e0016a200141c0006a41186a290300370300200120063602b801200120043602bc010240024020044125490d00200f422088a7210920012802c80121040c010b200141c1016a21090b20064101762102024002402006410171450d00200420024d0d0d200141013a009803200141a0036a2004200241016a22066b3602002001200920066a36029c032001200920026a2d0000410f713a0099030c010b20042002490d0b200141a0036a200420026b360200200141003b0198032001200920026a36029c030b200141b8026a20014198036a20122010422088a710b90102402010a7450d00201210300b20012802bc014125490d0d200141c4016a28020010300c0d0b200141b8016a41086a200f370300200141b8016a41106a2001290340370300200141b8016a41186a200141c0006a41086a290300370300200141d8016a200141c0006a41106a290300370300200141e0016a200141c0006a41186a290300370300200120063602b801200120043602bc010240024020044125490d00200f422088a7210220012802c80121040c010b200141c1016a21020b200120063602c002200120043602bc02200120023602b802200141f0026a200141b8026a10ba01200141e8006a200141b8026a4100200210bb012102200141d4026a2003360200200141c8026a41106a2001290328370300200141e0026a200141306a290300370300200141e8026a200141286a41106a280200360200200120103702cc02200120123602c80220014198036a2000200141c8026a200141e8006a10b701200141e8006a200210b80110bc01000b10bd01000b2002200441acf0c1001033000b2002200441e097c200104a000b2002200441f097c2001033000b2009200a41e097c200104a000b2009200a41f097c2001033000b2006412041908ec1001042000b201b200241a08ec1001048000b2002200641a08ec1001042000b2002200441e097c200104a000b2002200441f097c2001033000b2002450d030c020b200028024c21022000280250210420014198036a41086a41002802b8f541360200200141002902b0f54137039803200141b8016a200220014198036a20012802b80220012802c00220042802141107002000280254220220012903b801370000200241186a200141b8016a41186a290300370000200241106a200141b8016a41106a290300370000200241086a200141b8016a41086a2903003700002000200028027c41016a36027c2000280254220241186a290000210f200241106a2900002110200241086a2900002118200041d9006a2002290000370000200041013a0058200041e1006a2018370000200041e9006a2010370000200041f1006a200f370000024020012802bc02450d0020012802b80210300b20012802684125490d00200141f0006a28020010300b0240200041386a2802002204450d0020002802302102200441fc006c210403400240024020022d00000d00200241046a10be010c010b200241246a10be010b200241fc006a2102200441847f6a22040d000b0b0240200041346a2802002202450d00200241fc006c450d00200028023010300b200041c8006a2802002102024002400240200041c0006a28020022042000413c6a2802002206490d00200220044f0d012004200241e8adc0001042000b20022006490d010b0240200241ffffffff0371450d00200041c4006a28020010300b024020002802202206450d0002402000412c6a280200450d00200041246a280200220441046a2102200620046a41016a21092004280200417f73418081828478712106024003400240024020060d000340200220094f0d04200441c07d6a210420022802002106200241046a220d21022006418081828478712206418081828478460d000b2006418081828478732206417f6a200671210b200d21020c010b2006417f6a200671210b0b200668210d200b210620044100200d4103766b41d0006c6a220d41506a2802004125490d00200d41586a2802001030200b21060c000b0b200028022021060b200041246a280200200641016aad42d0007ea76b10300b200141c0036a24000f0b41f8adc0004123419caec000102d000b102a000b102c000beb0201067f230041206b220124000240024002402000410c6a28020022022002417f6a200041046a28020020002802006b716b4101470d00200221030240024002402002450d00200220026a22032002490d04200141106a41086a4104360200200120024102743602142001200028020836021020012003410274200341ffffffff0371200346410274200141106a1069200141086a280200210320012802004101460d01200020012802043602082000410c6a200341027622033602000b20032002410174470d0420002802002204200041046a28020022054d0d022005200220046b22064f0d01200041086a280200220320024102746a200320054102741085051a200041046a2200200028020020026a3602000c020b2003450d02102a000b200041086a2802002202200320066b22034102746a200220044102746a20064102741085051a200020033602000b200141206a24000f0b102c000b41d0f5c000412b41fcf5c000102d000bdf0302047f017e230041a0016b2202240002400240024002402000410c6a22032802002204200041106a280200470d002002200141fc0010850521040240024020002802082201200041046a280200470d00200141016a22032001490d04200141017422052003200520034b1b22034104200341044b1bad42fc007e2206422088a74541027421032006a721050240024020010d0020044100360290010c010b20044198016a41043602002004200141fc006c3602940120042000280200360290010b20044180016a2005200320044190016a106920044188016a28020021012004280280014101460d012000200428028401360200200041046a200141fc006e360200200028020821010b2000280200200141fc006c6a200441fc001085051a20002000280208220441016a3602080c020b2001450d02102a000b2003200041186a280200417f6a200441016a71360200200041146a28020020044102746a28020021042002200141fc0010850521012000280208220320044d0d020240024020002802002200200441fc006c6a22032d00000d002000200441fc006c6a41046a10be010c010b2000200441fc006c6a41246a10be010b2003200141fc001085051a0b200241a0016a240020040f0b102c000b2004200341bcf0c1001033000bbd0701077f230041206b2204240002400240200241ffff03200241ffff03491b220541017641036a2206102f2207450d0020002007360200200041086a4100360200200041046a20063602002002413e2005413e491b210202400240200341ff01714102460d00200541807f7341bf7f20052002461b2106200520026b210341012105034002400240200541ff01714102460d0020054101712102410021052002450d00200621020c010b2003450d030240200341ff014b0d002003417f6a210241022105410021030c010b200341817e6a210341ff012102410221050b200420023a00102000200441106a410110640c000b0b200541406a417f20052002461b2106200520026b210341012105034002400240200541ff01714102460d0020054101712102410021052002450d00200621020c010b2003450d020240200341ff014b0d002003417f6a210241022105410021030c010b200341817e6a210341ff012102410221050b200420023a00102000200441106a410110640c000b0b200141086a2802002102200128020421032001280200210502400240024020012d000c0d00200520024f0d01200220056b2106200320056a2103200041046a22082802002102200041086a220728020021050240034020032d00002101024020052002470d0020022002470d00200241016a22092002490d072002410174220a2009200a20094b1b22094108200941084b1b21090240024020020d00200441003602100c010b2004410136021820042002360214200420002802003602100b200420094101200441106a10692004280208210220042802004101460d0220002004280204360200200820023602000b200028020020056a20013a00002007200541016a2205360200200341016a21032006417f6a22060d000c030b0b20020d030c040b200320056a210620022005200220054b1b20056b21032001410d6a2d0000410f712101200041046a22082802002102200041086a220728020021050340024020052002470d0020022002470d00200241016a22092002490d052002410174220a2009200a20094b1b22094108200941084b1b21090240024020020d00200441003602100c010b2004410136021820042002360214200420002802003602100b200420094101200441106a10692004280208210220042802004101460d0320002004280204360200200820023602000b200028020020056a20013a00002007200541016a22053602002003450d012003417f6a210320062d00002101200641016a21060c000b0b200441206a24000f0b2002450d010b102a000b102c000bd208010d7f230041106b22022400200141086a280200210320012802042104024020012d00004101470d00200020012d0001410f7110b6010b02400240200028020022014125490d002000410c6a28020021050c010b200121050b02400240024002400240024002402005410174200028022c470d00024020014125490d002000410c6a28020021010b20022000200310bd02024020022802004101470d00200241086a2802000d0341d099c200411141e499c200102d000b02400240200028020022054125490d002000410c6a28020022052001490d07200041086a28020021060c010b20052001490d06200041056a21060b200620016a220620036a2006200520016b1086051a2006200420031085051a0240024020002802004125490d002000410c6a21010c010b200021010b2001200520036a3602000c010b0240024020014125490d002000410c6a28020021050c010b200121050b2003450d002005417f6a21050240024020014125490d002000410c6a2207280200220120054d0d07200041086a220828020020056a2d0000417071210620072802002101200828020021070c010b200120054d0d06200041056a220720056a2d000041707121060b200120054d0d02200720056a20063a000002400240200028020022014125490d002000410c6a2802002101200041086a28020021060c010b200041056a21060b200120054d0d03200620056a220120012d000020042d0000410476723a000002402003417f6a2209450d002000410c6a210a200041056a210b20034101200341014b1b417f6a210c410021010340024002400240024020032001460d00200c2001460d01200420016a220d41016a210e02400240200028020022074125490d00200028020c210520002802082108200a21060c010b2007210520002106200b2108412421070b200d2d0000210d200e2d0000210e20052007470d0320022000410110bd0220022802004101470d02200241086a2802000d0741d099c200411141e499c200102d000b2003200341c097c2001033000b200141016a200341d097c2001033000b200028020c210520002802082108200a21060b200820056a200d410474200e411874411c76723a00002006200628020041016a3602002009200141016a2201470d000b0b200420096a210802400240200028020022064125490d002000410c6a22052802002101200041086a28020021070c010b200041056a21072006210120002105412421060b20082d00002108024020012006470d0020022000410110bd02024020022802004101470d00200241086a2802000d0341d099c200411141e499c200102d000b2000410c6a22052802002101200041086a28020021070b200720016a20084104743a00002005200528020041016a3602000b2000200028022c20034101746a36022c200241106a24000f0b102a000b2005200141a097c2001033000b2005200141b097c2001033000b41f49ac200411e41949bc200102d000b20052001419097c2001033000bc00201057f230041106b22022400024002400240024020002d002c4101710d0002400240200028020022034125490d002000410c6a22042802002105200041086a28020021060c010b200041056a21062003210520002104412421030b024020052003470d0020022000410110bd02024020022802004101470d00200241086a2802000d0441d099c200411141e499c200102d000b2000410c6a22042802002105200041086a28020021060b200620056a20014104743a00002004200428020041016a3602000c010b02400240200028020022054125490d002000410c6a2802002105200041086a28020021040c010b200041056a21040b2004450d022005450d02200520046a417f6a220520052d00002001723a00000b2000200028022c41016a36022c200241106a24000f0b102a000b41e494c200413a41a095c2001050000be11905067f017e037f017e067f230041e0026b220424002004200336020c20042001360208024002400240024002400240024002400240024002400240024002400240024020022d00004101460d00200241046a28020021020240200141c8006a220528020022032003417f6a2206200141c0006a220728020022032001413c6a22082802006b716b4101470d00200810b2012005280200417f6a2106200728020021030b20072006200341016a71360200200141c4006a28020020034102746a2002360200200141386a280200220320024d0d02200441106a2001280230200241fc006c6a220141fc001085051a200141046a4100360200200141003a000020042d001022094101460d01200441d4006a2802002107200441cc006a2201290200210a200441d0006a280200210b2001280200210c200441c8006a280200210d200441106a41086a2802002102200428021421062004200441086a3602a40120042004410c6a3602a001200441106a41186a2101200441106a410c6a21030240024002400240024020060e050102030400010b200441a8016a41106a2001290200370300200441a8016a410c6a200341086a280200360200200441a8016a41186a200141086a290200370300200441c8016a200141106a290200370300200441d0016a200141186a290200370300200420023602a80120042003290200220e3702ac0102400240200ea722034125490d00200441b4016a280200210620042802b80121030c010b200441b1016a21060b20024101762101024002402002410171450d00200320014d0d0a41012105200620016a2d0000410f712108200141016a21010c010b20032001490d0841002108410021050b200320016b210f200620016a2101200341017420026b210202400240200aa72203450d00200441a5026a20083a0000200441a0026a200f360200200420053a00a4022004200136029c02200441003602980220044190016a20044198026a2002410210b401200c21060c010b200441a5026a20083a0000200441a0026a200f360200200420053a00a4022004200136029c0241002106200441003602980220044190016a20044198026a2002410110b4010b20042802980122102102024002400240024020102004280294012201470d00201041016a22012010490d17201041017422022001200220014b1b22014108200141084b1b21010240024020100d0020044100360298020c010b20044198026a41086a41013602002004201036029c022004200428029001360298020b200441f0016a2001410120044198026a1069200441f8016a280200210120042802f0014101460d0120042802f40121022004200136029401200420023602900120042802980121020b200428029001220520026a41003a00002004200241016a22023602980120022001470d02200141016a220220014f0d010c160b2001450d150c140b200141017422012002200120024b1b22014108200141084b1b21010240024020042802940122020d0020044100360298020c010b20044198026a41086a41013602002004200236029c0220042005360298020b200441f0016a2001410120044198026a1069200441f8016a280200210120042802f0014101460d0f20042802f40121022004200136029401200420023602900120042802980121020b200d41c0046a210120042802900120026a41003a00002004200241016a3602980102402003450d002006200720044190016a10a6010b200420013602dc01200441d8016a41106a200441a0016a360200200420044190016a3602ec012004200441a8016a3602e40120044198026a410172210f200441e4016a21114100210620044198026a410572220541086a2112200541186a21132005411f6a211441012102410021084101210702400340200d20066a22012d00002103200141023a00002004200141246a3602d801024020034103470d0020084180fe037141087621020c020b200420023602e0012005200141016a2900003700002012200141096a290000370000200541106a200141116a2900003700002013200141196a2900003700002014200141206a280000360000200420033a009c0220042002417f6a36029802200441f0016a201120044198026a10a804024002400240024020042d00f0014103460d0020044198026a41206a200441f0016a41206a29030037030020044198026a41186a200441f0016a41186a29030037030020044198026a41106a200441f0016a41106a29030037030020044198026a41086a200441f0016a41086a290300370300200420042903f001220a37039802410021010240200aa741ff0171417f6a0e020004020b200441c0026a41186a200f41186a290000370300200441c0026a41106a200f41106a290000370300200441c0026a41086a200f41086a2900003703002004200f2900003703c00220042802bc02220141214f0d0f200441c0026a200120044190016a10a6010c020b20084180fe037141087621020c040b200f412020044190016a10a6010b200721010b200241016a21022007410174210720012008722108200641246a220641c004470d000b20084180fe037141087621020b201041026a21012010417e4f0d0a20042802980122032001490d0b20042802900120106a2002410874200841ff0171723b00000240200c450d00200b450d00200c10300b200d103020042802ac014125490d0f200441b4016a28020010300c0f0b4101102f2201450d1120044101360294012004200136029001200141003a000020044101360298010c0e0b200441a8016a41106a2001290200370300200441a8016a410c6a200341086a280200360200200441a8016a41186a200141086a290200370300200441c8016a200141106a290200370300200441d0016a200141186a290200370300200420023602a80120042003290200220e3702ac0102400240200ea722034125490d00200441b4016a280200210620042802b80121030c010b200441b1016a21060b20024101762101024002402002410171450d00200320014d0d0d200441013a009802200441a0026a2003200141016a22026b3602002004200620026a36029c022004200620016a2d0000410f713a0099020c010b20032001490d0b200441a0026a200320016b360200200441003b0198022004200620016a36029c020b20044190016a20044198026a200d200a422088a710b9010240200aa7450d00200d10300b20042802ac014125490d0d200441b4016a28020010300c0d0b200441a8016a41106a2001290200370300200441a8016a410c6a200341086a280200360200200441a8016a41186a200141086a290200370300200441c8016a200141106a290200370300200441d0016a200141186a290200370300200420023602a80120042003290200220e3702ac0102400240200ea722014125490d00200441b4016a280200210020042802b80121010c010b200441b1016a21000b200420023602e001200420013602dc01200420003602d801200441c0026a200441d8016a10ba0120042802a001280200200441d8016a4100200410bb01210120042802a4012802002100200441fc016a200736020020044180026a200441d8006a29030037030020044188026a200441e0006a29030037030020044190026a200441e8006a2802003602002004200a3702f4012004200d3602f00120044198026a2000200441f0016a20042802a00128020010b70120042802a001280200200110b80110bc01000b10bd01000b200041003a000020002002290001370001200041196a200241196a290000370000200041116a200241116a290000370000200041096a200241096a2900003700000c0c0b20002004290011370001200041003a0000200041196a200441106a41196a290000370000200041116a200441106a41116a290000370000200041096a200441106a41096a2900003700000c0a0b2002200341acf0c1001033000b2001200341e097c200104a000b2001200341f097c2001033000b2001412041908ec1001042000b2010200141a08ec1001048000b2001200341a08ec1001042000b2001200341e097c200104a000b2001200341f097c2001033000b2001450d040c030b024002402004280298012201411f4d0d002004280208220141d0006a2802002102200128024c2101200441a8016a200428020c10b902200041016a2001200441a8016a2004280290012004280298012002280214110700200041003a000020042802082201200128027c41016a36027c0c010b200441c0016a22024200370300200441b8016a22034200370300200441b0016a22064200370300200442003703a801200441a8016a20042802900120011085051a200041246a2001360200200041013a0000200041196a2002290300370000200041116a2003290300370000200041096a2006290300370000200020042903a8013700010b0240200428029401450d0020042802900110300b2009450d010b200441346a10be010b200441e0026a24000f0b102a000b102c000bb00301057f0240024002402001450d000240200028022c220220014b0d0002400240200028020022014125490d002000410c6a220228020021010c010b200021020b02402001450d00200241003602000b2000410036022c0f0b200220016b2203410176200341017122046a210202400240200028020022014125490d002000410c6a28020021050c010b200121050b0240200220054f0d002000410c6a2106200220056b41016a210203400240024020014125490d0020062802002101200621050c010b200021050b02402001450d0020052001417f6a3602000b2002450d01200241016a2102200028020021010c000b0b2000200336022c2004450d0002400240200028020022014125490d002000410c6a28020021020c010b200121020b2002417f6a21020240024020014125490d002000410c6a2205280200220120024d0d04200041086a220628020020026a2d0000417071210020052802002101200628020021050c010b200120024d0d03200041056a220520026a2d000041707121000b200120024d0d01200520026a20003a00000b0f0b2002200141d096c2001033000b2002200141c096c2001033000be90501087f230041206b22042400024002400240200141086a280200220541036a2206417f4c0d0020012d000021072001280204210820012d000121094101210102402006450d002006102f2201450d020b20002001360200200041086a4100360200200041046a2006360200200541017420076a220641ffff03200641ffff03491b220141c0006a41ff0020012006413e2001413e491b2206461b210a200120066b2106410121010240034002400240200141ff01714102460d002001410171450d0041002101200a210b0c010b2006450d020240200641ff014b0d002006417f6a210b41022101410021060c010b200641817e6a210641ff01210b410221010b2004200b3a00102000200441106a410110640c000b0b024002400240024020070d00200041046a2802002106200041086a28020021010c010b0240200041086a220a280200220b200041046a2802002206470d00200b41016a2201200b490d04200b41017422062001200620014b1b22014108200141084b1b210102400240200b0d00200441003602100c010b200441106a41086a41013602002004200b360214200420002802003602100b200420014101200441106a10b402200441086a280200210620042802004101460d0220002004280204360200200041046a20063602000b200a200b41016a22013602002000280200200b6a2009410f713a00000b200620016b2005490d01200028020021060c040b2006450d010c020b200120056a220b2001490d002006410174220a200b200a200b4b1b220b4108200b41084b1b210b0240024020060d00200441003602100c010b200441106a41086a410136020020042006360214200420002802003602100b2004200b4101200441106a10b402200441086a280200210b024020042802004101460d00200020042802042206360200200041046a200b3602000c030b200b0d010b102c000b102a000b200620016a200820051085051a200041086a200120056a36020020022003200010a601200441206a24000bb80101057f2001280208220241017621032001280204210402400240024002402002410171450d00200420034d0d034101210220012802002205200341016a22066a2101200520036a2d0000410f712105200621030c010b20042003490d01200128020020036a210141002105410021020b200020023a000c20002001360204200041003602002000410d6a20053a0000200041086a200420036b3602000f0b2003200441e097c200104a000b2003200441f097c2001033000bf90101057f230041106b22042400024002400240024020010d00410021010c010b200141086a2802002205410176210620012802042107024002402005410171450d00200720064d0d04200441013a0000200441086a2007200641016a22086b36020020042001280200220120086a3602042004200120066a2d0000410f713a00010c010b20072006490d02200441086a200720066b360200200441003b01002004200128020020066a3602040b2000200410b501200741017420056b21010b02402002450d002000200310b601200141016a21010b200441106a240020010f0b2006200741e097c200104a000b2006200741f097c2001033000b110041d8a5c200412841808ec100102d000b110041d8a5c200412841f08dc100102d000bcd0101017f0240024002400240024020002802000e0404000102030b0240200041086a2802004125490d00200041106a28020010300b200041386a280200450d03200041346a28020010300f0b200041086a2802004125490d02200041106a28020010300f0b20002802041030200041086a2802002201450d012000410c6a280200450d01200110300c010b0240200041086a2802004125490d00200041106a28020010300b200041346a2802001030200041386a2802002201450d002000413c6a280200450d00200110300f0b0b950201067f024020002802202201450d0002402000412c6a280200450d00200041246a280200220241046a2103200120026a41016a21042002280200417f73418081828478712101024003400240024020010d000340200320044f0d04200241c07e6a210220032802002101200341046a220521032001418081828478712201418081828478460d000b2001418081828478732201417f6a2001712106200521030c010b2001417f6a20017121060b2001682105200621012002410020054103766b41306c6a220541746a280200450d00200541706a2802001030200621010c000b0b200028022021010b200041246a280200200141016aad42307ea76b10300b0240200041346a280200450d00200028023010300b0b940101037f230041206b22042400200141086a280200210520012802042106200441106a41086a200341086a28020036020020042003290200370310200420062005200441106a10c10120012802002101200420042f010c3b011820042004280208360214200420042802002203360210200020012002200441106a10c20102402004280204450d00200310300b200441206a24000b930101037f0240024002402003280204220420026a2205417f4c0d000240024020050d00410121060c010b2005102f2206450d022006410020051087051a0b20052002490d02200620012002108505220620026a200328020020041085051a200020053602082000200536020420002006360200200020032f01083b010c0f0b102c000b102a000b2002200541a490c2001042000bba0401047f230041206b22042400024002400240024002400240200220012802042205413c6a41201088050d00200541386a2802002206417f4c0d0220052802302105024020060d00410121074101200520061085051a0c020b2006102f2207450d032007200520061085051a0c010b200441186a200241186a290000370300200441106a200241106a290000370300200441086a200241086a290000370300200420022900003703004100210702402005200410d30122050d000c010b0240200528020c41014e0d000c010b20052802082206417f4c0d01200528020021050240024020060d00410121070c010b2006102f2207450d030b2007200520061085051a0b024020070d000240200220012802002207413c6a41201088050d00200741386a2802002202417f4c0d02200728023021070240024020020d00410121060c010b2002102f2206450d040b2006200720021085051a0c040b200441186a200241186a290000370300200441106a200241106a290000370300200441086a200241086a290000370300200420022900003703004100210602402007200410d30122070d000c040b0240200728020c41014e0d000c040b20072802082202417f4c0d0120072802002107024020020d00410121064101200720021085051a0c040b2002102f2206450d022006200720021085051a0c030b2000200636020420002007360200200041086a20063602000c030b102c000b102a000b2000200236020420002006360200200041086a20023602000b200441206a24000b960101037f230041206b22032400200041086a280200210420002802042105200341106a41086a200241086a28020036020020032002290200370310200320052004200341106a10c10120002802002100200320032f010c3b01182003200328020836021420032003280200220236021020002001200341106a10c401210002402003280204450d00200210300b200341206a240020000b9f0401047f230041206b220324000240024002400240200120002802042204413c6a41201088050d00200441386a2802002205417f4c0d0220042802302104024020050d00410121064101200420051085051a0c020b2005102f2206450d032006200420051085051a0c010b200341186a200141186a290000370300200341106a200141106a290000370300200341086a200141086a290000370300200320012900003703004100210602402004200310d30122040d000c010b0240200428020c41014e0d000c010b20042802082205417f4c0d01200428020021040240024020050d00410121060c010b2005102f2206450d030b2006200420051085051a0b0240024020060d0002400240200120002802002200413c6a41201088050d00200041386a2802002205417f4c0d0420002802302101024020050d00410121064101200120051085051a0c020b2005102f2206450d052006200120051085051a0c010b200341186a200141186a290000370300200341106a200141106a290000370300200341086a200141086a290000370300200320012900003703004100210602402000200310d30122010d000c010b0240200128020c41014e0d000c010b20012802082205417f4c0d03200128020021010240024020050d00410121060c010b2005102f2206450d050b2006200120051085051a0b20060d00410021060c010b2005450d00200610300b200341206a240020064100470f0b102c000b102a000b7301037f230041206b22052400200141086a280200210620012802042107200541106a41086a200241086a28020036020020052002290200370310200520072006200541106a10c101200020012802002802042003200410c60102402005280204450d00200528020010300b200541206a24000bab0301057f230041d0006b22042400024002402003417f4c0d000240024002400240024002402003450d002003102f22050d010c070b410121054101200220031085051a200141386a2802002003460d010c030b2005200220031085052106200141386a2802002003470d010b200520012802302003108805210602402003450d00200510300b20060d012000200129003c370000200041186a200141d4006a290000370000200041106a200141cc006a290000370000200041086a200141c4006a2900003700000c020b200610300b2004200220031065200441206a41186a200441186a2206290000370300200441206a41106a200441106a2207290000370300200441206a41086a200441086a2208290000370300200420042900003703200240024020030d00410121050c010b2003102f2205450d030b20042003360244200420053602402005200220031085051a200420033602482001200441206a200441c0006a10c801200041186a2006290000370000200041106a2007290000370000200041086a2008290000370000200020042900003700000b200441d0006a24000f0b102c000b102a000bd90101047f230041c0006b22042400200041086a280200210520002802042106200441106a41086a2207200241086a28020036020020042002290200370310200420062005200441106a10c10120002802002802042100200441106a41186a200141186a290000370300200441106a41106a200141106a2900003703002007200141086a29000037030020042001290000370310200441306a41086a200341086a280200360200200420032902003703302000200441106a200441306a10c80102402004280204450d00200428020010300b200441c0006a24000be50301047f23004180016b220324000240024020022802082204200041386a280200470d0020022802002205200028023020041088050d00200241046a280200450d01200510300c010b200341c0006a41186a2204200141186a290000370300200341c0006a41106a2205200141106a290000370300200341c0006a41086a2206200141086a2900003703002003200129000037034020032000200341c0006a10ca01024020032903004201520d00200341c0006a41286a200341306a290300370300200341c0006a41206a200341286a2903003703002004200341206a2903003703002005200341186a2903003703002006200341106a29030037030020032003290308370340200341f0006a41086a200241086a2802003602002003410136027c20032002290200370370200341c0006a200341f0006a10cb010c010b0240200341106a2802002204417c6a2201280200220041004a0d00200441706a2105200341c0006a41086a2206200241086a280200360200200320022902003703400240200441746a280200450d0020052802001030200128020021000b20052003290340370200200541086a20062802003602002001200041016a3602000c010b2001200041016a360200200241046a280200450d00200228020010300b20034180016a24000b980301037f23004190016b22032400200041086a280200210420002802042105200341106a41086a200241086a28020036020020032002290200370310200320052004200341106a10c1010240200120002802002802042200413c6a4120108805450d00200341d0006a41186a2202200141186a290000370300200341d0006a41106a2204200141106a290000370300200341d0006a41086a200141086a29000037030020032001290000370350200341106a2000200341d0006a10ca01024020032903104201520d00200341d0006a41286a200341c0006a290300370300200341d0006a41206a200341106a41286a2903003703002002200341106a41206a2903003703002004200341106a41186a290300370300200341d8006a200341106a41106a290300370300200320032903183703502003417f36028c012003420037028401200341002802dc944236028001200341d0006a20034180016a10cb010c010b200341106a41106a280200417c6a22012001280200417f6a3602000b02402003280204450d00200328020010300b20034190016a24000b840503017f047e0a7f230041306b22032400200341206a20012903182001290308852204200241186a29000085420020012903102205200129030022068522072002290010854200108405200341106a2004200241086a2900008542002007200229000085420010840520032005420020052005200642adfed5e4d485fda8d8007e200341206a41086a2903002003290320857c42a0cbbf9599b5a19f0a7c85421789200341106a41086a2903002003290310857c8542178922044200108405200141246a2802002208200141206a2802002209200341086a2903002003290300852004892205a7220a71220b6a280000220c200a41197641818284086c220d73220a417f73200a41fffdfb776a7141808182847871210e200b41046a200971210f4104211002400340200f210a0240200e0d000240200c200c41017471418081828478710d00200d2008200a6a280000220c73220e417f73200e41fffdfb776a7141808182847871210e2009200a20106a41046a71210f201041046a2110200a210b0c020b2000200537030820004201370300200041106a2001360200200041146a20022900003700002000411c6a200241086a290000370000200041246a200241106a2900003700002000412c6a200241186a2900003700000c020b200e682111200a210f200e417f6a200e71210e200841002009200b20114103766a716b41306c6a220a41506a200241201088050d000b2000200537030820004200370300200041186a41013a0000200041146a2001360200200041106a200a360200200041196a2002290000370000200041216a200241086a290000370000200041296a200241106a290000370000200041316a200241186a2900003700000b200341306a24000bde0403027f017e067f230041d0006b2202240020022000280208220336020c20002903002104200241286a200041246a290200370300200241206a2000411c6a290200370300200241106a41086a200041146a290200370300200241386a200141086a2902003703002002200029020c37031020022001290200370330200341206a2105200328022022062004a72207712101200341246a28020021084104210003402001220920006a2006712101200041046a2100200820096a28000041808182847871220a450d000b02402008200a6841037620096a20067122006a2c000022014100480d0020082008280200418081828478716841037622006a2d000021010b200341286a280200210902402001410171220a450d0020090d00200241c0006a20052002410c6a108002200328022022062007712101200341246a28020021084104210003402001220920006a2006712101200041046a2100200820096a280000418081828478712205450d000b0240200820056841037620096a20067122006a2c00004100480d002008280200418081828478716841037621000b200328022821090b20032009200a6b360228200820006a200741197622013a000020062000417c6a7120086a41046a20013a00002008410020006b41306c6a41506a220041286a200241106a41286a290300370200200041206a200241106a41206a290300370200200041186a200241106a41186a290300370200200041106a200241106a41106a290300370200200041086a200241106a41086a290300370200200020022903103702002003200328022c41016a36022c200241d0006a24000b130020004180a3c000360204200020013602000b130020004180a3c000360204200020013602000bd128030f7f017e047f230041e0016b220124002001420037020c200141286a200141086a10cf01200141e0006a41186a200141286a41186a2802002202360200200141e0006a41106a200141286a41106a290300370300200141e0006a41086a200141286a41086a290300370300200120012903283703600240024020020d00410021030c010b20012002417f6a2204360278200141e0006a410020012802641b220528020021060240024020052802082207200528020422022f018e024f0d00200221080c010b03400240200228020022080d00410021080c020b200641016a210620022f018c02210720082102200720082f018e024f0d000b0b024002402006450d00200741027420086a4194026a280200210202402006417f6a2206450d00034020022802900221022006417f6a22060d000b0b410021060c010b200741016a2106200821020b20052002360204200541003602002005200636020820082007410c6c6a41046a2102410021030340200228020820036a21032004450d0120012004417f6a2204360278200141e0006a410020012802641b220528020021060240024020052802082207200528020422022f018e024f0d00200221080c010b03400240200228020022080d00410021080c020b200641016a210620022f018c02210720082102200720082f018e024f0d000b0b024002402006450d00200741027420086a4194026a280200210202402006417f6a2206450d00034020022802900221022006417f6a22060d000b0b410021060c010b200741016a2106200821020b20052002360204200541003602002005200636020820082007410c6c6a41046a21020c000b0b41012108024020034101742202417f4c0d00024002402002450d002002102f2208450d010b200141003602202001200236021c200120083602184104102f2209450d0020094100360200200141286a200141086a10cf01200141e0006a41186a200141286a41186a2802002202360200200141e0006a41106a200141286a41106a290300370300200141e0006a41086a200141286a41086a29030037030020012001290328370360024002400240024020020d00410021084101210a410121030c010b20012002417f6a360278200141e0006a410020012802641b220528020021060240024020052802082207200528020422022f018e024f0d00200221080c010b03400240200228020022080d00410021080c020b200641016a210620022f018c02210720082102200720082f018e024f0d000b0b024002402006450d00200741027420086a4194026a280200210202402006417f6a2206450d00034020022802900221022006417f6a22060d000b0b410021060c010b200741016a2106200821020b20052002360204200541003602002005200636020820082007410c6c6a41046a2102410121034101210a034002400240200228020822070d00200128022021020c010b20022802002108200128022021020240034020082d0000210602402002200128021c470d00200241016a22052002490d09200241017422042005200420054b1b22054108200541084b1b21050240024020020d00200141003602b0010c010b200141013602b801200120023602b401200120012802183602b0010b20014198016a20054101200141b0016a106920012802a00121022001280298014101460d02200128029c0121052001200236021c20012005360218200128022021020b200128021820026a20064104763a00002001200128022041016a2202360220024002402002200128021c470d00200241016a22052002490d0a200241017422042005200420054b1b22054108200541084b1b21050240024020020d00200141003602b0010c010b200141013602b801200120023602b401200120012802183602b0010b20014198016a20054101200141b0016a106920012802a00121022001280298014101460d01200128029c0121052001200236021c20012005360218200128022021020b200841016a2108200128021820026a2006410f713a00002001200128022041016a22023602202007417f6a2207450d030c010b0b2002450d070c060b2002450d060c050b02402003200a470d00200341016a22082003490d06200341017422062008200620084b1b22084104200841044b1b220841ffffffff03712008464102742106200841027421080240024020030d00200141003602b0010c010b200141043602b801200120093602b001200120034102743602b4010b20014198016a20082006200141b0016a106920012802a001210802402001280298014101470d002008450d070c060b200128029c0121092008410276210a0b200920034102746a2002360200200341016a2103024020012802782202450d0020012002417f6a360278200141e0006a410020012802641b220528020021060240024020052802082207200528020422022f018e024f0d00200221080c010b03400240200228020022080d00410021080c020b200641016a210620022f018c02210720082102200720082f018e024f0d000b0b024002402006450d00200741027420086a4194026a280200210202402006417f6a2206450d00034020022802900221022006417f6a22060d000b0b410021060c010b200741016a2106200821020b20052002360204200541003602002005200636020820082007410c6c6a41046a21020c010b0b200128020c22080d01410021080b41002102410021050c010b200128021021052001280208210620082102034020082f018e0221072006450d012006417f6a2106200820074102746a4190026a280200210820022802900221020c000b0b200141cc006a4202370200200141c8006a20033602002001413c6a2007360200200141386a2008360200200142003702542001200936024420012005360240200142003703302001200236022c41002104200141003602282001200141186a36025c0240024002400240024002400240024002402005450d0020012005417f6a220b3602402002450d0120022f018e020d0241002106034041002108024020022802002204450d00200641016a210520022f018c022107200421080b024041c00241900220061b450d00200210300b024020080d00410021020c060b2005210620082102200720082f018e024f0d000b200741016a210620082007410c6c6a22024188016a2104200241046a210c024020050d00200821020c040b200820064102746a4190026a280200210202402005417f6a2206450d00034020022802900221022006417f6a22060d000b0b410021060c030b2001410036022c41002802e88f42210d2002450d060c040b41b2abc200412b41d4a8c200102d000b20024188016a2104200241046a210c4101210641002107200221080b20082007410c6c6a22084190016a280200210e2008418c016a28020021052008410c6a280200210f200841086a280200210720042802002104200c28020021080b200120063602302001200236022c2001410036022802402008450d000240200341014b0d0002402007450d00200810300b2005450d01200410300c010b20012003417f6a220d36024820012001280244220c41046a360244200141fc006a4102360200200141f4006a200e360200200141f0006a20053602002001200c3602782001200436026c2001200f3602682001200736026420012008360260200141b0016a200141dc006a200141e0006a10d00120012802b001450d00417f41002003417e6a200d4102491b2202200b200b20024b1b220241016a220820082002491bad42147e2210422088a70d062010a72202417f4c0d062002102f220d450d05200d20012903b001370200200d41106a200141b0016a41106a280200360200200d41086a200141b0016a41086a290300370200200141e0006a41306a200141286a41306a290300370300200141e0006a41286a200141286a41286a290300370300200141e0006a41206a200141286a41206a290300370300200141e0006a41186a200141286a41186a2903002210370300200141e0006a41106a200141286a41106a290300370300200141e0006a41086a200141286a41086a29030037030020012001290328370360200241146e210341012104024002402010a722020d004100210b0c010b20012002417f6a220b36027802400240024020012802642202450d00200128026021062001280268220720022f018e02490d01034002400240200228020022080d00410021080c010b200641016a210520022f018c0221070b024041c00241900220061b450d00200210300b024020080d00410021020c040b2005210620082102200720082f018e024f0d000b20082102200521060c010b41b2abc200412b41d4a8c200102d000b200741016a210820022007410c6c6a22074188016a2105200741046a210c02402006450d00200220084102746a4190026a280200210202402006417f6a2208450d00034020022802900221022008417f6a22080d000b0b410021080b20074190016a28020021112007418c016a280200210e2007410c6a2802002112200741086a280200210f20052802002113200c280200210c0b200120083602682001200236026420014100360260200c450d0020014194016a21144101210403400240200128028001220820012802840122024f0d000240200f450d00200c10300b200e450d02201310300c020b20012008417f6a2207360280012001200128027c220641046a36027c200120023602cc01200120063602c801200120113602c4012001200e3602c001200120133602bc01200120123602b8012001200f3602b4012001200c3602b00120014198016a2014200141b0016a10d001200128029801450d0102400240024020032004470d002003417f4100200820026b20072002491b2202200b200b20024b1b220241016a220820082002491b6a22022003490d0b200341017422082002200820024b1b22024104200241044b1bad42147e2210422088a74541027421022010a721080240024020030d00200141003602b0010c010b200141043602b8012001200d3602b0012001200341146c3602b4010b200141d0016a20082002200141b0016a106920012802d801210220012802d0014101460d0120012802d401210d200241146e21030b200d200441146c6a2202200129039801370200200241106a20014198016a41106a280200360200200241086a20014198016a41086a290300370200200441016a2104200128027822020d014100210b0c030b2002450d090c080b20012002417f6a220b36027802400240024020012802642202450d00200128026021062001280268220720022f018e02490d01034002400240200228020022080d00410021080c010b200641016a210520022f018c0221070b024041c00241900220061b450d00200210300b024020080d00410021020c040b2005210620082102200720082f018e024f0d000b20082102200521060c010b41b2abc200412b41d4a8c200102d000b200741016a210820022007410c6c6a22074188016a2105200741046a210c02402006450d00200220084102746a4190026a280200210202402006417f6a2208450d00034020022802900221022008417f6a22080d000b0b410021080b20074190016a28020021112007418c016a280200210e2007410c6a2802002112200741086a280200210f20052802002113200c280200210c0b200120083602682001200236026420014100360260200c0d000b0b20012802642102200141003602642002450d04200128026021060240200b450d00200128026821070340024002400240200720022f018e024f0d0020022108200621050c010b034002400240200228020022080d00410021080c010b200641016a210520022f018c0221070b024041c00241900220061b450d00200210300b024020080d00410021020c030b2005210620082102200720082f018e024f0d000b0b200741016a210c20082007410c6c6a22064188016a2113200641046a21120240024020050d0020082102200c21070c010b2008200c4102746a4190026a280200210202402005417f6a2208450d00034020022802900221022008417f6a22080d000b0b410021070b2006418c016a280200210e200641086a280200210f201328020021132012280200210c0b200c450d060240200f450d00200c10300b200b417f6a210b0240200e450d00201310300b41002106200b0d000b0b034020022802002108024041c00241900220061b450d00200210300b200641016a21062008210220080d000c050b0b2001410036022c41002802e88f42210d200b450d000340024002400240200620022f018e02490d0041002106034041002108024020022802002204450d00200641016a210520022f018c022107200421080b024041c00241900220061b450d00200210300b024020080d00410021020c040b2005210620082102200720082f018e024f0d000b200741016a210620082007410c6c6a22024188016a2104200241046a2103024020050d00200821020c020b200820064102746a4190026a280200210202402005417f6a2206450d00034020022802900221022006417f6a22060d000b0b410021060c010b20022006410c6c6a22084188016a2104200841046a21032006210720022108200641016a21060b20082007410c6c6a2208418c016a280200210f200841086a280200210c2004280200210e200328020021030b2003450d020240200c450d00200310300b200b417f6a210b0240200f450d00200e10300b200b0d000b0b41002108034020022802002106024041c00241900220081b450d00200210300b2008417f6a21082006210220060d000b0b410021040b410021030b20014200370264200141002802dc9442360260200d20044100200141e0006a10d101200128026421062000200128026022072001280268106502402004450d00200441146c2108200d410c6a2102034002402002280200450d002002417c6a28020010300b200241146a21022008416c6a22080d000b0b02402003450d00200341146c450d00200d10300b0240200a41ffffffff0371450d00200910300b0240200128021c450d00200128021810300b02402006450d00200710300b200141e0016a24000f0b102a000b102c000b8f0203047f017e017f230041206b22022400024002400240200128020422030d004100210341002104410021010c010b20012802002205ad4220862106200321040240034020032f018e022107024020050d002005450d020c040b2005450d0320064280808080707c21062005417f6a2105200320074102746a4190026a280200210320042802900221040c000b0b200128020821010b20002001360218200020063702082000200436020420002005360200200041146a2007360200200041106a2003360200200241206a24000f0b200241146a410136020020024201370204200241f4a9c2003602002002410436021c200241eca9c2003602182002200241186a360210200241fca9c200103a000bf10101057f230041106b22032400200341086a200241106a29020037030020032002290208370300024002400240024002402002411c6a2802000e020102000b20022802182204280204220520042802002204490d0320012802002201280208220620054f0d022005200641d0f4c0001042000b4100410041e0f4c0001033000b4101410141f0f4c0001033000b200228020421062002280200210720012802002102200020032902043702082000200520046b3602042000200220046a360200200041106a2003410c6a28020036020002402006450d00200710300b200341106a24000f0b2004200541d0f4c0001048000bcd1701177f230041f0006b220424000240024002400240024002400240024002400240024002400240024020010e020001020b0240024020032802082205200341046a280200470d00200541016a22062005490d0d200541017422072006200720064b1b22064108200641084b1b21060240024020050d00200441003602000c010b200441086a410136020020042005360204200420032802003602000b200441d0006a20064101200410b402200441d8006a280200210520042802504101460d0120032004280254360200200341046a2005360200200328020821050b200328020020056a41003a00002003200328020841016a3602080c030b2005450d0b0c0c0b0240200028020422052002490d0041012101200028020020026a2107200041106a28020021082000280208210902400240200520026b2205410171220a450d002005450d0120072d000021000b200541ffff03200541ffff03491b220641c0006a41ff0020062005413e2006413e491b220b461b210c2006200b6b210d2007200a6a21072005417e712105200341086a210e4101210b024002400340024002400240024002400240024002400240200b417e6a0e020105000b0240200141ff01714102460d0020014101712106410021012006450d00200c210f0c040b41022101200b4101470d00200d450d00200d41ff014b0d01200d417f6a210f410221014100210d0c020b0240200a41ff01714102470d004102210a0c040b200a41017121064102210b4100210a2006450d032000210f0c020b200d41817e6a210d41ff01210f410221010b4101210b0b200e2802002206200341046a280200470d030240200b4103470d002007452110200721110c020b02402007450d0002400240200b4102470d0041002112200a41ff017122114102460d01201141014621120c010b0240200a41ff017122124102460d00200141ff017141014620124101466a21120c010b41002112200141ff017122114102460d00201141014621120b417f2012200541017620054101716a410020051b6a221120112012491b21120c030b0240200b4102470d0041002112200a41ff017122114102460d03201141014621120c030b0240200a41ff017122124102460d00200141ff017141014620124101466a21120c030b41002112200141ff017122114102460d02201141014621120c020b2007450d052005450d050240024002402005410220054102491b22060e020001020b4100410041cc93c2001033000b4101410141dc93c2001033000b200520066b2105200720066a211120072d000041047420072d000172210f4103210b0240200e2802002206200341046a280200460d00201121070c030b20114521104103210b0b41002112024020100d002005450d00200541017620054101716a21120b201121070b2006417f201241016a221120112012491b6a22122006490d10200641017422112012201120124b1b22124108201241084b1b21120240024020060d00200441003602000c010b2004410136020820042006360204200420032802003602000b200441d0006a20124101200410b4022004280258211220042802504101460d0220032004280254360200200341046a20123602000b200328020020066a200f3a0000200e200641016a3602000c000b0b20120d0e0c0d0b024002400240200841c000490d00200841808001490d012008418080808004490d02200441033a0000200320044101106420042008360200200320044104106420032009200810640c060b200420084102743a0000200320044101106420032009200810640c050b200420084102744101723b0100200320044102106420032009200810640c040b20042008410274410272360200200320044104106420032009200810640c030b4100410041cc94c2001033000b2002200541fcf6c000104a000b200041106a21082000280200210c2000280204220d21070240200141146c22054114460d00200041146a2111200020056a2110200d210703402011220541146a2111024020052802042206200d200d20064b1b2212450d00200528020021054100210b2012210f200c21060340200b20062d0000220a20052d0000220e466a210b0240200a200e460d00200b21120c020b200641016a2106200541016a2105200f417f6a220f0d000b0b20072012201220074b1b210720112010470d000b0b20082802002113200028020821064100210502400240200720024b0d0020022107410021100c010b200d2007490d02200c20026a210c200720026b21100b200441386a4200370300200441306a4200370300200441286a4200370300200441206a4200370300200441186a4200370300200441106a4200370300200441086a420037030020044200370300200641002007200d4622121b210d200141146c21112012210f03402005210a200f20014b0d05410021060240200f2001460d002011200f41146c22056b210b200020056a21054100210603402007200541046a280200220e4f0d08200528020020076a2d0000200a41ff0171470d01200541146a2105200641016a2106200b416c6a220b0d000b0b2004200a4102746a20063602002006200f6a210f200a41016a22054110470d000b2010413e201041ffff03201041ffff03491b2205413e491b210602400240200d450d0002402010410171220b450d002010450d05200c2d0000210a0b200441e8006a4102360200200441e4006a2010417e71360200200441dc006a200b3a0000200441d8006a41013a00002004200a3a005d2004200541406a417f20052006461b3a00592004200520066b360254200441013602502004200c200b6a3602602003200441d0006a10b5020c010b02402010410171220b450d002010450d05200c2d0000210a0b200441e8006a4102360200200441e4006a2010417e71360200200441dc006a200b3a0000200441d8006a41013a00002004200a3a005d2004200541807f7341bf7f20052006461b3a00592004200520066b360254200441013602502004200c200b6a3602602003200441d0006a10b5020b2004280200210b2004280204210a2004280208210e200428020c210f20042802102111200428021421102004280218210c200428021c2102200428022021082004280224210920042802282114200428022c2115200428023021162004280234211720042802382118200428023c211902400240200341046a2802002206200341086a28020022056b4102490d00200328020021060c010b200541026a221a2005490d0a20064101742205201a2005201a4b1b22054108200541084b1b21050240024020060d00200441003602500c010b200441d0006a41086a410136020020042006360254200420032802003602500b200441c0006a20054101200441d0006a1069200441c0006a41086a280200210520042802404101460d09200320042802442206360200200341046a2005360200200341086a28020021050b200620056a2019410047410f742018410047410e742017410047410d742016410047410c742015410047410b742014410047410a74200941004741097420084100474108742002410047410774200c41004741067420104100474105742011410047410474200f410047410374200e410047410274200a410047410174200b4100477272727272727272727272727272723b0000200341086a2205200528020041026a3602000240200d450d00200d2013200310a6010b200741016a210e4100210541002802dc9442210f03400240200420056a2802002206450d00200620126a22072006490d08200720014b0d09200442003702442004200f3602402000201241146c6a2006200e200441c0006a10d1012004280244210b20042802402106024002402004280248220a4120490d00200441d0006a2006200a1065200441d0006a4120200310a6010c010b2006200a200310a6010b0240200b450d00200610300b200721120b200541046a220541c000470d000b0b200441f0006a24000f0b2007200d418cf7c0001042000b4100410041cc94c2001033000b4100410041cc94c2001033000b200f2001419cf7c000104a000b2007200e41acf7c0001033000b2012200741bcf7c0001048000b2007200141bcf7c0001042000b20050d010b102c000b102a000bba0301037f230041306b22042400200141086a280200210520012802042106200441106a41086a200341086a28020036020020042003290200370310200420062005200441106a10c10102400240024002402002200128020022014180016a41201088050d004101102f2202450d02200042818080801037020420002002360200200241003a00000c010b0240024020022001413c6a41201088050d00200141386a2802002202417f4c0d0420012802302101024020020d00410121034101200120021085051a0c020b2002102f2203450d032003200120021085051a0c010b200441106a41186a200241186a290000370300200441106a41106a200241106a290000370300200441106a41086a200241086a290000370300200420022900003703104100210302402001200441106a10d30122010d000c010b0240200128020c41014e0d000c010b20012802082202417f4c0d03200128020021010240024020020d00410121030c010b2002102f2203450d030b2003200120021085051a0b2000200236020420002003360200200041086a20023602000b02402004280204450d00200428020010300b200441306a24000f0b102a000b102c000bd30303017f047e097f230041306b22022400200241206a20002903182000290308852203200141186a29000085420020002903102204200029030022058522062001290010854200108405200241106a2003200141086a2900008542002006200129000085420010840520022004420020042004200542adfed5e4d485fda8d8007e200241206a41086a2903002002290320857c42a0cbbf9599b5a19f0a7c85421789200241106a41086a2903002002290310857c8542178922034200108405200041246a2802002207200041206a2802002208200241086a290300200229030085200389a722007122096a280000220a200041197641818284086c220b732200417f73200041fffdfb776a7141808182847871210c200941046a200871210d4104210e02400340200d21000240200c0d000240200a200a4101747141808182847871450d00410021000c030b200b200720006a280000220a73220c417f73200c41fffdfb776a7141808182847871210c20082000200e6a41046a71210d200e41046a210e200021090c010b200c68210f2000210d200c417f6a200c71210c20012007410020082009200f4103766a716b41306c6a41506a220041201088050d000b0b200241306a2400200041206a410020001b0b960101037f230041206b22032400200041086a280200210420002802042105200341106a41086a200241086a28020036020020032002290200370310200320052004200341106a10c10120002802002100200320032f010c3b01182003200328020836021420032003280200220236021020002001200341106a10d501210002402003280204450d00200210300b200341206a240020000bcf0201027f230041206b2203240002400240024002400240200120004180016a41201088050d004101102f2201450d03200141003a00000c010b0240024020012000413c6a41201088050d00200041386a2802002204417f4c0d0520002802302100024020040d00410121014101200020041085051a0c020b2004102f2201450d042001200020041085051a0c010b200341186a200141186a290000370300200341106a200141106a290000370300200341086a200141086a290000370300200320012900003703004100210102402000200310d30122000d000c010b0240200028020c41014e0d000c010b20002802082204417f4c0d04200028020021000240024020040d00410121010c010b2004102f2201450d040b2001200020041085051a0b024020010d00410021010c020b2004450d010b200110300b200341206a240020014100470f0b102a000b102c000b830e02047f097e23004180066b22012400200141c8016a4200370300200141d0016a4200370300200141d8016a4200370300200141e0016a4200370300200142c0b2cd3b3703c804200142c0b2cd3b370308200142c0b2cd3b3703c00420012001290380033703c00141002102410121030340200141c0046a2104024002400240200241ff01710e03010002010b200141086a21040c010b200141c8046a21040b200442c0b2cd3b370300024020034103460d00200341bcf2c1006a2104200341016a210320042d000022024103470d010b0b200141c0036a4200370300200141b8036a420137030020014180036a41306a2203420037030020014180036a41286a2204420137030020014180036a41186a420037030020014180036a41f8006a420037030020014180036a41f0006a420137030020014180036a41e8006a420037030020014180036a41e0006a4201370300200141d0036a4200370300200141c8036a200129030837030020014188046a420037030020014180046a20012903c004370300200142003703880320014280e497d01237038003200120012903c80437039003200141b0046a200141e0016a290300370300200141a8046a200141c0016a41186a290300370300200141a0046a200141d0016a29030037030020014198046a200141c8016a29030037030020014190046a20012903c0013703002004420137030020034280b0def7d32b370300200141003602b804200141c0016a20014180036a41c0011085051a200141c0016a41f8006a428090cad2c60e370300200141c0016a41f0006a4201370300200141c0016a41e8006a4280c0a8ca9a3a370300200141c0016a41e0006a4201370300200141086a200141c0016a41b8011085051a200141c8046a200141086a41b8011085051a20012903d004210502400240200141c8046a41286a2903004201520d00200141c8046a41306a29030022062005560d010b200521060b02400240200141c8046a41e0006a2903004201520d00200141b0056a29030022052006560d010b200621050b02400240200141e0056a2903004201520d00200141e8056a29030022062005560d010b200521060b200120063703d0042006428094ebdc03804280c2d72f7e2006428094ebdc03822206420a8020064280c2d72f7e428094ebdc03824280cab5ee0156ad7c7c21060240200141e0046a2903004201510d0002400240200141f0046a29030050450d00420021050c010b42004200200141f8046a290300220520067d220720072005561b220520012903d8047d220720072005561b2107420121050b200141e8046a2007370300200120053703e0040b024020014198056a2903004201510d0002400240200141a8056a29030050450d00420021050c010b42004200200141b0056a290300220520067d220720072005561b220520014190056a2903007d220720072005561b2107420121050b200141a0056a200737030020012005370398050b0240200141c8046a4188016a2903004201510d0002400240200141e0056a29030050450d00420021060c010b42004200200141e8056a290300220520067d220620062005561b2206200141c8056a2903007d220520052006561b2105420121060b200141d8056a2005370300200120063703d0050b200141c0016a200141c8046a41b8011085051a024020012903c801220620012903c0012205200141c0026a29030022087c580d0020064200200141e0026a2903002207200141d8026a2903005022031b540d00427e200141f0026a290300427f7c200141e8026a290300501b2008540d00200141d0026a290300220950200141c0016a4188016a290300220a420052710d0042002009200a501b4200427f200720031b220720087d220920092007561b560d002006200520014188026a290300220a7c580d0020064200200141a8026a2903002209200141c0016a41e0006a2903005022031b540d00427e200141b8026a290300427f7c200141b0026a290300501b200a540d0020014198026a290300220b5020014190026a290300220c420052710d004200200b200c501b4200427f200920031b2209200a7d220b200b2009561b560d002006200520012903d001220b7c580d0020064200200141f0016a290300220c200141e8016a2903005022031b540d00427e20014180026a290300427f7c200141f8016a290300501b200b540d00200141e0016a290300220650200141d8016a290300220d420052710d0042002006200d501b4200427f200c20031b2206200b7d220c200c2006561b560d002006502006200b5620062005567172450d002009502009200a5620092005567172450d00200750200720085620072005567172450d00200020014186036a200141c8046a41b80110850541b8011085051a20014180066a24000f0b200141013a00800341bff4c10041e00020014180036a41d8f3c10041a0f5c1001034000bda0701027f230041106b220224000240024002400240024020002802000e03000102030b200241003a00002001200241011064200041086a210302400240024002400240024020002d00080e06000102030405080b200241003a00002001200241011064200041106a290300200041186a2d0000200041196a2d0000200110d8010c070b200241013a0000200120024101106420002d000c2000410d6a2d00002000410e6a2d0000200110d901200041186a290300200041206a2d0000200041216a2d0000200110d8010c060b200241023a000020012002410110640c050b200241033a000020012002410110642001200341016a412010640c040b200241043a000020012002410110642001200341016a412010640c030b200241053a000020012002410110642001200341016a412010644120102f2200450d0320024220370204200220003602002002200341216a41201064200120022802002200200228020810642002280204450d02200010300c020b200241013a00002001200241011064200041086a21030240024002400240024020002d00080e050001020304060b200241003a000020012002410110642002200341046a28020036020020012002410410640c050b200241013a000020012002410110642002200341046a28020036020020012002410410640c040b200241023a000020012002410110644120102f2200450d0420024220370204200220003602002002200341016a41201064200120022802002200200228020810642002280204450d03200010300c030b200241033a000020012002410110642002200341046a28020036020020012002410410640c020b200241043a000020012002410110642002200041306a29030037030020012002410810644120102f2200450d0220024220370204200220003602002002200341016a41201064200120022802002200200228020810642002280204450d01200010300c010b200241033a00002001200241011064200041086a210302400240024020002d00080e03000102030b200241003a000020012002410110642001200341016a410810640c020b200241013a000020012002410110642001200341016a410810640c010b200241023a000020012002410110642001200341016a41081064024002400240200041186a2802000e03000102030b200241003a000020012002410110642002200041206a29030037030020012002410810640c020b200241013a000020012002410110642002200041206a2903003703002001200241081064200041286a200110da010c010b200241023a00002001200241011064200041206a200110da010b200241106a24000f0b102a000baf0101017f230041106b22042400200420003703082003200441086a410810640240024002400240200141ff01710e03000102030b200441003a00072003200441076a410110640c020b200441013a00072003200441076a410110640c010b200441023a00072003200441076a410110640b02400240200241ff01714101460d00200441003a00072003200441076a410110640c010b200441013a00072003200441076a410110640b200441106a24000be80301017f230041106b22042400024002400240024002400240024002400240200041ff01710e080001020304050607000b200441003a000f20032004410f6a410110640c070b200441013a000f20032004410f6a410110640c060b200441023a000f20032004410f6a410110640c050b200441033a000f20032004410f6a41011064200420013a000f20032004410f6a41011064200420023a000f20032004410f6a410110640c040b200441043a000f20032004410f6a410110640c030b200441053a000f20032004410f6a410110640c020b200441063a000f20032004410f6a41011064024002400240024002400240200141ff01710e06000102030405070b200441003a000f20032004410f6a410110640c060b200441013a000f20032004410f6a410110640c050b200441023a000f20032004410f6a410110640c040b200441033a000f20032004410f6a410110640c030b200441043a000f20032004410f6a410110640c020b200441053a000f20032004410f6a410110640c010b200441073a000f20032004410f6a41011064024002400240200141ff01710e03000102030b200441003a000f20032004410f6a410110640c020b200441013a000f20032004410f6a410110640c010b200441023a000f20032004410f6a410110640b200441106a24000bd20501017f230041106b22022400024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024020002802000e1b000102030405060708090a0b0c0d0e0f101112131415161718191a1b0b200241003a00072001200241076a410110640c1a0b200241013a00072001200241076a410110640c190b200241023a00072001200241076a410110640c180b200241033a00072001200241076a410110640c170b200241043a00072001200241076a410110640c160b200241053a00072001200241076a410110640c150b200241063a00072001200241076a410110640c140b200241073a00072001200241076a410110640c130b200241083a00072001200241076a410110640c120b200241093a00072001200241076a410110640c110b2002410a3a00072001200241076a410110640c100b2002410b3a00072001200241076a41011064200041086a2001109d02200041d0036a200110d0020c0f0b2002410c3a00072001200241076a410110640c0e0b2002410d3a00072001200241076a410110640c0d0b2002410e3a00072001200241076a410110640c0c0b2002410f3a00072001200241076a410110640c0b0b200241103a00072001200241076a410110640c0a0b200241113a00072001200241076a410110642002200041086a2903003703082001200241086a410810640c090b200241123a00072001200241076a410110640c080b200241133a00072001200241076a410110640c070b200241143a00072001200241076a410110640c060b200241153a00072001200241076a410110640c050b200241163a00072001200241076a410110640c040b200241173a00072001200241076a410110640c030b200241183a00072001200241076a410110640c020b200241193a00072001200241076a410110640c010b2002411a3a00072001200241076a410110640b200241106a24000b130020004106360204200041d894c1003602000b13002000410536020420004194bcc0003602000b130020004103360204200041948ac1003602000b040041010b040041010b040041010be80403017f027e017f230041c0016b220224000240024020012802004101460d000240024002400240024002400240024002400240200141086a280200417f6a0e0a00010203040506070809000b2001410c6a3502002103200241086a10d60120022903102104200041003b0108200020032004428094ebdc03807e42ffffffffffbfb2cd3b20032004428094ebdc03827e2203428094ebdc0380200342ffffffffffbfb2cd3b561b2003428094ebdc03824280cab5ee0156ad7c42ffffffff0f837c3703000c0a0b200041003b0108200042e88bd2003703000c090b200041013b0108200042f0edd5303703000c080b200241086a10d60120022903102103200041013b0108200020033703000c070b200241086a10d60120022903102103200041013b0108200020033703000c060b200041013b0108200042d8848ef0003703000c050b200041013b01082000200141146a35020042f8a5fd2f7e3703000c040b200041013b01082000200141146a350200220342e0891c7e20034280c2d72f7e7c4298c3e4007c3703000c030b200041013b01082000417f200141186a280200220141016a220520052001491bad220342b0ce347e20034280c2d72f7e7c42f0dd8b057c3703000c020b200041003b01082000200141146a35020042e8077e42e8edcf047c3703000c010b0240024002400240024020012d0004417f6a0e050001020304000b200041013b0108200042003703000c040b200041023b0108200042003703000c030b200041013b0108200042e8073703000c020b200041013b0108200042c0843d3703000c010b200041003b0108200042c0843d3703000b200241c0016a24000b8a3a08037f017e0a7f017e077f027e047f017e230041e0086b2203240002400240200228022422042802082001200428020c28020c1101000d002000420037030820004201370300200041186a41003a0000200041206a41023a0000200228022422002000280200417f6a2204360200024020040d002000280208200028020c2802001102000240200028020c280204450d00200028020810300b2002280224220041046a22022002280200417f6a220236020020020d00200010300b024020012802004101460d000240024002400240024002400240200141086a280200417f6a0e09090009010209030405060b200141106a280200450d082001410c6a28020010300c080b200141106a280200450d072001410c6a28020010300c070b200141106a280200450d062001410c6a28020010300c060b0240200141146a2802002200450d002001410c6a2802002102200041186c210003400240200241046a280200450d00200228020010300b0240200241106a280200450d002002410c6a28020010300b200241186a2102200041686a22000d000b0b200141106a2802002202450d05200241186c450d05200128020c10300c050b0240200141146a2802002200450d002001410c6a28020021022000410c6c210003400240200241046a280200450d00200228020010300b2002410c6a2102200041746a22000d000b0b200141106a2802002202450d042002410c6c450d04200128020c10300c040b200141106a280200450d032001410c6a28020010300c030b200141106a280200450d022001410c6a28020010300c020b02400240024020012d0004417f6a0e0404000104020b02402001410c6a280200450d00200141086a28020010300b0240200141c4006a2802002200450d002001413c6a28020021022000410c6c210003400240200241046a280200450d00200228020010300b2002410c6a2102200041746a22000d000b0b0240200141c0006a2802002202450d002002410c6c450d00200128023c10300b0240200141d0006a2802002202450d0020024104742100200141c8006a28020041086a2102034002402002280200450d002002417c6a28020010300b200241106a2102200041706a22000d000b0b0240200141cc006a28020041ffffffff0071450d00200128024810300b200141d4006a10e3010c030b2001410c6a280200450d02200141086a28020010300c020b2001410c6a280200450d01200141086a28020010300c010b0240024002400240024002400240024002400240024002400240024002400240024002400240024020012802004101460d002001410c6a2802002105200141106a2902002206422088a721072002280224210420022d0001210820022d000021092006a7210a024002400240024002400240024002400240200141086a280200417f6a0e0a000102030f0e0d0c0b0a000b20042004280200417f6a2201360200024002400240200941ff01710d0020010d022004280208200428020c2802001102000240200428020c280204450d00200428020810300b200441046a22012001280200417f6a22013602002001450d010c020b20010d012004280208200428020c2802001102000240200428020c280204450d00200428020810300b200441046a22012001280200417f6a220136020020010d010b200410300b0240200920087241ff0171450d0020004200370308200041206a41023a0000200041186a41003a0000200042013703000c1d0b2000420037030820002003280070360019200041186a41003a00002000411c6a200341f3006a280000360000200042003703000c1c0b20042004280200417f6a220136020002400240200941ff01710d00024020010d002004280208200428020c2802001102000240200428020c280204450d00200428020810300b200441046a22012001280200417f6a220136020020010d00200410300b200841ff01714101470d010240200a450d00200510300b2000420037030820002003280070360019200041186a41003a00002000411c6a200341f3006a280000360000200042003703000c1d0b20010d002004280208200428020c2802001102000240200428020c280204450d00200428020810300b200441046a22012001280200417f6a220136020020010d00200410300b0240200a450d00200510300b20004200370308200041206a41023a0000200041186a41003a0000200042013703000c1b0b20042004280200417f6a2201360200024002400240200941ff01710d0020010d022004280208200428020c2802001102000240200428020c280204450d00200428020810300b200441046a22012001280200417f6a22013602002001450d010c020b20010d012004280208200428020c2802001102000240200428020c280204450d00200428020810300b200441046a22012001280200417f6a220136020020010d010b200410300b200920087241ff01710d054108102f2201450d01200342083702742003200136027020032006370318200341f0006a200341186a4108106441c492c100410a20032802702201200328027841002802fcad4211030002402003280274450d00200110300b2000420037030820002003280050360019200041186a41003a00002000411c6a200341d3006a280000360000200042003703000c1a0b20042004280200417f6a2201360200024002400240200941ff01710d0020010d022004280208200428020c2802001102000240200428020c280204450d00200428020810300b200441046a22012001280200417f6a22013602002001450d010c020b20010d012004280208200428020c2802001102000240200428020c280204450d00200428020810300b200441046a22012001280200417f6a220136020020010d010b200410300b0240200920087241ff0171450d00410221010c180b200341d0006a2005200710e40120032802502201450d15200328025421022003200341d8006a2802003602d408200320013602d008200341106a200341d0086a109b0120032802100d1420032802d408220420032802142208490d142008417f4c0d010240024020080d00410121090c010b2008102f2209450d012009410020081087051a20032802d40821040b20042008490d13200920032802d0082008108505210b20032802d40822042008490d032003200420086b3602d408200320032802d00820086a3602d008200341086a200341d0086a109b0120032802080d1220032802d4082204200328020c2207490d122007417f4c0d010240024020070d004101210c0c010b2007102f220c450d01200c410020071087051a20032802d40821040b20042007490d11200c20032802d0082007108505210d20032802d40822042007490d022003200420076b22043602d408200320032802d00820076a220e3602d00820044104490d102003200e41046a3602d00820032004417c6a220f3602d408200f4104490d10200e28000421102003200e41086a3602d0082003200441786a220f3602d408200f4104490d102003200441746a3602d4082003200e410c6a3602d0082003200341d0086a109b0120032802000d102003280204220f20032802d408410c6e22042004200f4b1bad420c7e2211422088a70d012011a72204417f4c0d010240024020040d00410421120c010b2004102f2212450d010b2004410c6ead2111200f450d0c200341f8006a2113200341f9006a2114200341fa006a2115200341fb006a2116034020032802d4082204450d0f20032802d008220e2d0000211720032004417f6a22183602d4082003200e41016a3602d008200320173a00742018450d0f20032802d008220e2d0000211720032004417e6a22183602d4082003200e41016a3602d008200320173a00752018450d0f20032802d008220e2d0000211720032004417d6a22183602d4082003200e41016a3602d008200320173a00762018450d0f20032802d008220e2d0000211720032004417c6a22183602d4082003200e41016a3602d008200320173a00772018450d0f201320032802d008220e2d00003a000020032004417b6a22173602d4082003200e41016a3602d0082017450d0f201420032802d008220e2d00003a000020032004417a6a22173602d4082003200e41016a3602d0082017450d0f201520032802d008220e2d00003a00002003200441796a22173602d4082003200e41016a3602d0082017450d0f201620032802d008220e2d00003a00002003200e41016a3602d0082003200441786a22173602d40820174104490d0f20032902742119200e28000121172003200441746a3602d4082003200e41056a3602d008024002402011422088a722042011a7470d00200441016a220e2004490d0420044101742218200e200e2018491b220e4104200e41044b1bad420c7e221a422088a745410274210e201aa721180240024020040d00200341003602700c010b200341043602782003201236027020032004410c6c3602740b200341186a2018200e200341f0006a10692003280220210e20032802184101460d01200328021c2112201142808080807083200e410c6ead8421110b20122004410c6c6a220420173602082004201937020020114280808080107c2111200f417f6a220f0d010c0f0b0b200e450d010b102a000b102c000b2007200441f0f5c100104a000b2008200441f0f5c100104a000b20004200370308200041206a41023a0000200041186a41003a0000200042013703000c140b200341f0006a200141046a41dc001085051a200341186a41206a200241206a290200370300200341186a41186a200241186a290200370300200341186a41106a200241106a290200370300200341186a41086a200241086a290200370300200320022902003703182000200341f0006a200341186a10e5010c130b2002411a6a2901002106200241196a2d0000210b200241186a2d0000210c200241166a2f0100210e200241156a2d0000210d200241146a2d0000210f200241126a2f01002110200241116a2d00002112200241106a2d000021172002410e6a2f010021182002410d6a2d000021132002410c6a2d000021142002410a6a2f01002115200241096a2d00002116200241086a2d0000211b200241066a2f0100211c200241056a2d0000211d200241046a2d0000211e200241026a2f0100210220042004280200417f6a220136020002400240200941ff01710d00024020010d002004280208200428020c2802001102000240200428020c280204450d00200428020810300b200441046a22012001280200417f6a220136020020010d00200410300b200841ff01714101470d01200341186a200520071065200341d0006a41186a200341186a41186a2900002211370300200341d0006a41106a200341186a41106a2900002219370300200341d0006a41086a200341186a41086a290000221a37030020032003290018221f370350200341b1016a2011370000200341a9016a2019370000200341a1016a201a37000020034190016a200b3a0000200341f0006a41186a20123a0000200341f0006a41106a20163a00002003201f3700990120032006370091012003200c3a008f012003200e3b008d012003200d3a008c012003200f3a008b01200320103b008901200320173a008701200320183b008501200320133a008401200320143a008301200320153b0081012003201b3a007f2003201c3b007d2003201d3a007c2003201e3a007b200320023b0079200341053a007820034200370370200341f0006a10e6010240200a450d00200510300b200320032800d0083602482003200341d3086a28000036004b200041186a41003a000020004200370308200020032802483600192000411c6a200328004b360000200042003703000c140b20010d002004280208200428020c2802001102000240200428020c280204450d00200428020810300b200441046a22012001280200417f6a220136020020010d00200410300b0240200a450d00200510300b20004200370308200041206a41023a0000200041186a41003a0000200042013703000c120b20042004280200417f6a2201360200024002400240200941ff01710d0020010d022004280208200428020c2802001102000240200428020c280204450d00200428020810300b200441046a22012001280200417f6a22013602002001450d010c020b20010d012004280208200428020c2802001102000240200428020c280204450d00200428020810300b200441046a22012001280200417f6a220136020020010d010b200410300b0240200920087241ff01710d002005200741002802bcad421105000240200a450d00200510300b2000420037030820002003280070360019200041186a41003a00002000411c6a200341f3006a280000360000200042003703000c120b0240200a450d00200510300b20004200370308200041206a41023a0000200041186a41003a0000200042013703000c110b20042004280200417f6a2201360200024002400240200941ff01710d0020010d022004280208200428020c2802001102000240200428020c280204450d00200428020810300b200441046a22012001280200417f6a22013602002001450d010c020b20010d012004280208200428020c2802001102000240200428020c280204450d00200428020810300b200441046a22012001280200417f6a220136020020010d010b200410300b0240024002402009200872220441ff01710d0002402007450d0020052007410c6c6a21022005210103402001280200200141086a28020041002802b4ad421105002001410c6a22012002470d000b2007450d002007410c6c21022005210103400240200141046a280200450d00200128020010300b2001410c6a2101200241746a22020d000b0b200a450d02200a410c6c0d010c020b02402007450d002007410c6c21022005210103400240200141046a280200450d00200128020010300b2001410c6a2101200241746a22020d000b0b200a450d01200a410c6c450d010b200510300b0240200441ff0171450d0020004200370308200041206a41023a0000200041186a41003a0000200042013703000c110b2000420037030820002003280070360019200041186a41003a00002000411c6a200341f3006a280000360000200042003703000c100b20042004280200417f6a2201360200024002400240200941ff01710d0020010d022004280208200428020c2802001102000240200428020c280204450d00200428020810300b200441046a22012001280200417f6a22013602002001450d010c020b20010d012004280208200428020c2802001102000240200428020c280204450d00200428020810300b200441046a22012001280200417f6a220136020020010d010b200410300b0240024002402009200872220441ff01710d0002402007450d002005200741186c6a21022005210103402001280200200141086a2802002001410c6a280200200141146a28020041002802fcad42110300200141186a22012002470d000b2007450d00200741186c21022005210103400240200141046a280200450d00200128020010300b0240200141106a280200450d002001410c6a28020010300b200141186a2101200241686a22020d000b0b200a450d02200a41186c0d010c020b02402007450d00200741186c21022005210103400240200141046a280200450d00200128020010300b0240200141106a280200450d002001410c6a28020010300b200141186a2101200241686a22020d000b0b200a450d01200a41186c450d010b200510300b0240200441ff0171450d0020004200370308200041206a41023a0000200041186a41003a0000200042013703000c100b2000420037030820002003280070360019200041186a41003a00002000411c6a200341f3006a280000360000200042003703000c0f0b20042004280200417f6a2201360200024002400240200941ff01710d0020010d022004280208200428020c2802001102000240200428020c280204450d00200428020810300b200441046a22012001280200417f6a22013602002001450d010c020b20010d012004280208200428020c2802001102000240200428020c280204450d00200428020810300b200441046a22012001280200417f6a220136020020010d010b200410300b0240200920087241ff01710d000240024020054101460d0041ce92c100410d41002802b4ad421105000c010b20034201370370200341003602782003200a360218200341f0006a200341186a4104106420032007360218200341f0006a200341186a4104106441ce92c100410d20032802702201200328027841002802fcad421103002003280274450d00200110300b200341fc006a2007360200200341f0006a41086a200a36020020032005360274200341043a0070200341186a41186a4200370300200341286a22014200370300200341186a41086a420037030020034200370318200341186a41dca4c000410610ab01200141e0c0c100410610ab01200341d0086a200341f0006a10e70141002802a4ad422101200341d0006a41086a200341d0086a41086a280200360200200320032903d008370350200341186a4120200341d0006a2001110400200320032800483602402003200341cb006a280000360043200041186a41003a000020004200370308200020032802403600192000411c6a2003280043360000200042003703000c0f0b20004200370308200041206a41023a0000200041186a41003a0000200042013703000c0e0b20042004280200417f6a2201360200024002400240200941ff01710d0020010d022004280208200428020c2802001102000240200428020c280204450d00200428020810300b200441046a22012001280200417f6a22013602002001450d010c020b20010d012004280208200428020c2802001102000240200428020c280204450d00200428020810300b200441046a22012001280200417f6a220136020020010d010b200410300b024002400240200920087241ff01710d002003200637027420032005360270200341186a200341f0006a10e80120032d001822014108460d02200341186a41086a280200210220032d0019210420032d001a210920032d001b2108200328021c210a0c010b410221010240200a450d00200510300b0b200020083a0023200020093a0022200020043a002120004200370308200041286a2002360200200041246a200a360200200041206a20013a0000200041186a41003a0000200042013703000c0e0b20034200370370200341023a0078200341f0006a10e601200041186a41003a000020004200370308200042003703000c0d0b2012450d030b2011a7210e024020032802d40841034b0d00200e450d03200e410c6c450d030c020b02402002450d00200110300b024002400240024020084105470d000240200b4180a4c0004105108805450d00410f210241ba94c1002104410021090c020b0240201041034f0d00411a210241a094c1002104410121090c020b200b103002402007450d00200d10300b0240200e450d00200e410c6c450d00201210300b2003200637027420032005360270200341186a200341f0006a10e80120032d001822014108460d03200341186a41086a280200210220032d0019210820032d001a210920032d001b210a200328021c21040c0e0b410f210241ba94c1002104410021092008450d010b200b10300b02402007450d00200d10300b200e450d09200e410c6c450d09201210300c090b20034200370370200341023a0078200341f0006a10e601200320032800483602402003200341cb006a280000360043200041186a41003a000020004200370308200020032802403600192000411c6a2003280043360000200042003703000c0b0b2011a72204450d012004410c6c450d010b201210300b2007450d010b200c10300b2008450d010b200910300b2002450d00200110300b41022109418394c1002104411d21020b410321010b410021080240200a450d00200510300b0b200320032800483602402003200341cb006a280000360043200041186a41003a000020004200370308200020032802403600192000411c6a2003280043360000200041286a2002360200200041246a20043602002000200a3a0023200020093a0022200020083a0021200041206a20013a0000200042013703000b200341e0086a24000be40303067f017e017f200028020421012000410036020402402001450d00024020002802002202450d00034020012802b80121012002417f6a22020d000b0b024020002802082203450d004100210403400240024002400240200420012f01b601490d0041002100034041002102024020012802002205450d00200041016a210420012f01b4012106200521020b024041e80141b80120001b450d00200110300b024020020d00410021010c050b2004210020022101200620022f01b6014f0d000b20022006410c6c6a41306a2105024020040d00200221010c020b200641027420026a41bc016a280200210102402004417f6a2200450d00034020012802b80121012000417f6a22000d000b0b410021040c020b20012004410c6c6a41306a210520042106200121020b200641016a21040b20022006410c6c6a41346a2902002107200528020021080b2008450d0202402007422088a72202450d0020024104742100200841086a2102034002402002280200450d002002417c6a28020010300b200241106a2102200041706a22000d000b0b2003417f6a21030240200742ffffffff0083500d00200810300b20030d000b0b41002102034020012802002100024041e80141b80120021b450d00200110300b2002417f6a21022000210120000d000b0b0b130020002002ad4220862001ad84101710c6040bd1f60107057f027e0b7f017e0b7f057e2b7f23004180206b220324000240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024020012d0000417f6a0e050001020304000b200228022422042004280200417f6a2205360200200141046a280200210620022d0001210702400240024020022d000022020d0020050d022004280208200428020c2802001102000240200428020c280204450d00200428020810300b200441046a22012001280200417f6a22013602002001450d010c020b20050d012004280208200428020c2802001102000240200428020c280204450d00200428020810300b200441046a22012001280200417f6a220136020020010d010b200410300b41022101420021084200210902400240200220077241ff01710d00200341a0056a41186a22074200370300200341b0056a22014200370300200341a0056a41086a22024200370300200342003703a005200341a8046a41e2a4c000410f10ab012002200341a8046a41086a2204290000370300200320032900a8043703a005200341a8046a41a0d9c000411c10ab0120072004290000370300200120032900a8043703002003200341a0056a412010850220032802004101460d014190b3c000ad2109410321014280808080c00121080b200041810a3b002120004200370308200041246a2008200984370200200041206a20013a0000200041186a41003a0000200042013703000c150b200742003703002001420037030020024200370300200342003703a005200341a8046a41e2a4c000410f10ab0120022004290000370300200320032900a8043703a005200341a8046a41a0d9c000411c10ab01200141086a2004290000370000200120032900a804370000200320063602a018200341a0056a4120200341a0186a410441002802fcad42110300200041186a41003a000020004200370308200042003703000c140b200341e8016a200141046a220441d8001085051a200228022422012001280200417f6a220736020002400240024020022d00000d0020022d00012102024020070d002001280208200128020c2802001102000240200128020c280204450d00200128020810300b200141046a22072007280200417f6a220736020020070d00200110300b200241ff01714102470d01200341a0056a41186a22014200370300200341a0056a41106a220a4200370300200341a0056a41086a22024200370300200342003703a005200341a8046a41e2a4c000410f10ab012002200341a8046a41086a2207290000370300200320032900a8043703a005200341a8046a41acdac000410e10ab0120012007290000370300200a20032900a804370300200341a0056a412041002802ccad42110100450d0241dbb9c00041334190bac000102d000b20070d002001280208200128020c2802001102000240200128020c280204450d00200128020810300b200141046a22022002280200417f6a220236020020020d00200110300b024020032802ec01450d0020032802e80110300b200328029c0221040240200341a4026a2802002201450d002001410c6c21022004210103400240200141046a280200450d00200128020010300b2001410c6a2101200241746a22020d000b0b0240200341a0026a2802002201450d002001410c6c450d00200410300b20032802a80221040240200341b0026a2802002201450d0020014104742102200441086a2101034002402001280200450d002001417c6a28020010300b200141106a2101200241706a22020d000b0b0240200341ac026a28020041ffffffff0071450d00200410300b200341b4026a10e301200320032800e1013602c8012003200341e4016a2800003600cb01200320032900d2013703b8012003200341d9016a2900003700bf01200041186a41003a000020004200370308200020032802c8013600192000411c6a20032800cb01360000200041206a41023a0000200020032903b801370021200041286a20032900bf01370000200042013703000c140b200341c0026a41306a200441306a280200360200200341c0026a41286a200441286a290200370300200341c0026a41206a200441206a290200370300200341c0026a41186a200441186a290200370300200341c0026a41106a200441106a290200370300200341c0026a41086a200441086a290200370300200320042902003703c00241002802e8ac4241016a220141004c0d03200341bc026a280200210b200341b8026a280200210c200341b0026a280200210d200341ac026a280200210e200341a4026a2802002107200341a0026a280200210f20032802b402211020032802a8022111200328029c022112024041002802ecac424101460d00200341d0106a41002802e4ac42110200200341a0186a41086a200341d0106a41086a290300370300200320032903d0103703a01841002802e8ac420d054100417f3602e8ac42024041002802ecac42450d00024041002802fcac422202450d0041002802f4ac422101200241027421020340200128020022042004280200417f6a3602000240200128020022042802000d00200441046a22042004280200417f6a3602002001280200220441046a2802000d00200410300b200141046a21012002417c6a22020d000b0b41002802f8ac4241ffffffff0371450d0041002802f4ac4210300b410041013602ecac42410020032903a0183702f0ac424100200341a8186a2903003702f8ac42410041002802e8ac42220141016a3602e8ac42200141026a220141004c0d060b410020013602e8ac4241002802f0ac42220241016a220141004c0d06410020013602f0ac420240024041002802fcac4222010d00410020023602f0ac420c010b200141027441002802f4ac426a417c6a280200220128020041016a220241014d0d0820012002360200410041002802f0ac42417f6a3602f0ac4220012802080d092001417f360208200128020c2202280208220420032802c802470d0a200228020020032802c00220041088050d0a200228021820032802cc02470d0b2002411c6a2202200341c0026a41146a220441201088050d0c2001410036020820012001280200417f6a220236020020020d00200141046a22022002280200417f6a220236020020020d00200110300b410041002802e8ac42417f6a3602e8ac42200341a0056a41186a4200370300200341a0056a41106a4200370300200341a0056a41086a22014200370300200342003703a005200341a8046a41e2a4c000410f10ab012001200341a8046a41086a2202290000370300200320032900a8043703a005200341a8046a41a0d9c000411c10ab01200a41086a2002290000370000200a20032900a804370000200341b0016a200341a0056a4120108502024020032802b0014101470d0020032802cc0220032802b4012204490d0042002108200341b8056a22054200370300200341b0056a22064200370300200341a0056a41086a22014200370300200342003703a005200341a8046a41e2a4c000410f10ab012001200341a8046a41086a2202290000370300200320032900a8043703a005200341a8046a41a0d9c000411c10ab01200a41086a22132002290000370000200a20032900a804370000200341a0056a412041002802b4ad42110500200542003703002006420037030020014200370300200342003703a005200341a8046a41e2a4c000410f10ab0120012002290000370300200320032900a8043703a005200341a8046a41ecd9c000411510ab0120132002290000370000200a20032900a804370000200341a0186a200341a0056a41201086020240024020032802a0182201450d00200341a0056a412041002802b4ad4211050020032902a41821080c010b41002802dc944221010b200341b8056a4200370300200341b0056a4200370300200341a0056a41086a22024200370300200342003703a005200341a8046a41e2a4c000410f10ab012002200341a8046a41086a2205290000370300200320032900a8043703a005200341a8046a4198dbc000410b10ab01200a41086a2005290000370000200a20032900a804370000200320043602a018200341a0056a4120200341a0186a410441002802fcad4211030041a0bac000410520012008422088a741002802fcad42110300200320032802cc023602ac18200341013a00a818200342013703a018200341a0186a10e6012008a7450d00200110300b10af012114200341d8036a41186a200341ec026a290200370300200341d8036a41106a200341c0026a41246a290200370300200341d8036a41086a200341c0026a411c6a290200370300200320032902d4023703d8034101102f2201450d14200141003a0000410041003502e0ac42200341a0186aad7c42adfed5e4d485fda8d8007e42218922083e02e0ac42200341a0016a41e0acc200ad220942a4bb99fed1a0bbb02385420042adfed5e4d485fda8d800420010840520034180016a200842a4bb99fed1a0bbb02385420042adfed5e4d485fda8d800420010840520034190016a200942c5ecb3fec9ecf7c2c30085420042adfed5e4d485fda8d8004200108405200341f0006a200842c5ecb3fec9ecf7c2c30085420042adfed5e4d485fda8d8004200108405200341e0006a2008200985420042adfed5e4d485fda8d8004200108405200341a0056a418de2c10041011065200341a4116a200341b8056a2903003702002003419c116a200341b0056a29030037020020034194116a200341a0056a41086a29030037020020034184116a428180808010370200200341f8106a4200370300200341d0106a41246a41bcf5c100360200200320032903a00537028c112003200136028011200341003602f01020032008200341a0016a41086a29030020032903a001857c200341e0006a41086a29030020032903608542cf829ebbefefde82147c2215893703d0102003200341f0006a41086a29030020032903708520097c2015423088893703e8102003200820034190016a41086a290300200329039001857c2015422088893703e010200320034180016a41086a2903002003290380018520097c2015421088893703d81020122007410c6c6a2116201221012007450d112012410c6a210120122802002217450d11200341f0106a2118200341ba186a2119200341b3186a211a200341a0186a410c6a211b200341a0186a410572211c200341bf186a211d2012210203402001211e20022902042208422088a7221f417f4c0d1b02400240201f0d00410121010c010b201f102f2201450d160b20012017201f1085052102410021010240200328028811201f470d002002200328028011201f1088054521010b0240201f450d00200210300b024020010d00200341a0056a2017201f106520034188096a41186a2202200341a0056a41186a29030037030020034188096a41106a2204200341a0056a41106a29030037030020034188096a41086a2207200341a0056a41086a290300370300200320032903a0053703880902400240201f0d00410121010c010b201f102f2201450d170b20012017201f108505212002400240200328028811201f470d002020200328028011201f1088050d00201f0d010c020b200341a0186a41186a20022903002209370300200341a0186a41106a20042903002221370300200341a0186a41086a20072903002222370300200320032903880922153703a018200341d0006a200920032903e81020032903d810852223854200202120032903e010220920032903d0102224852225854200108405200341c0006a2022202385420020152025854200108405200341306a2009420020092009202442adfed5e4d485fda8d8007e200341d0006a41086a2903002003290350857c42a0cbbf9599b5a19f0a7c85421789200341c0006a41086a2903002003290340857c854217892221420010840520032802f410220720032802f0102206200341306a41086a290300200329033085202189a722267122136a28000022272026411976222841818284086c2229732201417f73200141fffdfb776a7141808182847871210541042104201341046a200671212a2015a7212b2013212c202721020340202a2101024020050d0002402002200241017471418081828478710d002029200720016a2800002202732205417f73200541fffdfb776a714180818284787121052006200120046a41046a71212a200441046a21042001212c0c020b200341dc046a41026a222a201c41026a2d00003a0000200341d8046a41026a222c201b41026a2d00003a0000200341d4046a41026a2229201a41026a2d00003a0000200341d0046a41026a222d201941026a2d00003a00002003201c2f00003b01dc042003201b2f00003b01d8042003201a2f00003b01d404200320192f00003b01d00420032d00a418212e20032802a818212f20032800af18213020032801b618213120032f00bd18201d2d00004110747221052003200341d0106a3602a005410421010240034020274180818284787122020d01201320016a2102200141046a21012007200220067122136a28000021270c000b0b0240200720026841037620136a20067122016a2c000022024100480d0020072007280200418081828478716841037622016a2d000021020b20032802f8102104024020024101712213450d0020040d00200341a0186a2018200341a0056a10800220032802f010220620267121024104210120032802f410210703402002220420016a2006712102200141046a2101200720046a280000418081828478712227450d000b0240200720276841037620046a20067122016a2c00004100480d002007280200418081828478716841037621010b20032802f81021040b2003200420136b3602f810200720016a20283a000020062001417c6a7120076a41046a20283a00002007410020016b41306c22026a220141546a202e3a0000200720026a41506a202b360200200141556a220220032f01dc043b0000200241026a202a2d00003a0000200141586a202f3600002001415c6a220220032f01d8043b0000200241026a202c2d00003a00002001415f6a2030360000200141636a220220032f01d4043b0000200241026a20292d00003a0000200141666a2031360000200141706a2020360200200141746a201f360200200141786a201f3602002001417c6a41013602002001416d6a220241026a20054110763a0000200220053b00002001416a6a220141026a202d2d00003a0000200120032f01d0043b0000200320032802fc1041016a3602fc100c030b200568212d2001212a2005417f6a2005712105200741002006202c202d4103766a716b41306c6a220141506a200341a0186a41201088050d000b02402001417c6a2202280200220441004a0d00200141706a21070240200141746a2205280200450d0020072802001030200228020021040b2005201f36020020072020360200200141786a201f3602002002200441016a3602000c020b2002200441016a360200201f450d010b202010300b02402008a7450d00201710300b201e2016460d13201e410c6a2101201e2102201e28020022170d000c120b0b200228022422042004280200417f6a22053602002001410c6a2802002113200141086a2802002107200141046a280200210620022d0001210102400240024020022d000022020d0020050d022004280208200428020c2802001102000240200428020c280204450d00200428020810300b200441046a22052005280200417f6a22053602002005450d010c020b20050d012004280208200428020c2802001102000240200428020c280204450d00200428020810300b200441046a22052005280200417f6a220536020020050d010b200410300b0240200220017241ff01710d00200341a0186a10b001024020032802a0184101470d002013200341b4186a2802004d0d002007450d110c100b20032013360290092003200736028c092003200636028809200341b8056a22014200370300200341b0056a22024200370300200341a0056a41086a22044200370300200342003703a005200341a8046a41e2a4c000410f10ab012004200341a8046a41086a2205290000370300200320032900a8043703a005200341a8046a41c0e1c000411510ab0120012005290000370300200220032900a804370300200341d0106a20034188096a10870241002802a4ad422101200341a0186a41086a200341d0106a41086a280200360200200320032903d0103703a018200341a0056a4120200341a0186a200111040020070d0f0c100b02402007450d00200610300b20004200370308200041186a41003a0000200041206a41023a0000200042013703000c120b200341e8106a200141196a290000370300200341e0106a200141116a290000370300200341d8106a200141096a290000370300200320012900013703d010200228022422042004280200417f6a220536020020022d0001210702400240024020022d000022020d0020050d022004280208200428020c2802001102000240200428020c280204450d00200428020810300b200441046a22052005280200417f6a22053602002005450d010c020b20050d012004280208200428020c2802001102000240200428020c280204450d00200428020810300b200441046a22052005280200417f6a220536020020050d010b200410300b200220077241ff01710d0a200341b8056a22024200370300200341b0056a22044200370300200341a0056a41086a22074200370300200342003703a005200341a8046a41e2a4c000410f10ab012007200341a8046a41086a2205290000370300200320032900a8043703a005200341a8046a41fce2c000411110ab0120022005290000370300200420032900a8043703004120102f2202450d12200141016a2101200342203702a418200320023602a018200341a0186a200341d0106a41201064200341a0056a412020032802a018220220032802a81841002802fcad42110300024020032802a418450d00200210300b200341c1186a200141186a290000370000200341b9186a200141106a290000370000200341b1186a200141086a290000370000200341023a00a818200342013703a018200320012900003700a918200341a0186a10e601200041186a41003a00002000420037030820002003280088093600192000411c6a2003418b096a280000360000200042003703000c110b410c21042001410c6a2802002127200141086a2802002113200141046a280200210620022802242101200341a0056a41186a22074200370300200341a0056a41106a22024200370300200341a0056a41086a22054200370300200342003703a005200341a8046a41e2a4c000410f10ab012005200341a8046a41086a222a290000370300200320032900a8043703a005200341a8046a41fce2c000411110ab012007202a290000370300200220032900a804370300200341a0186a200341a0056a412010820220034188096a41086a222a200341aa186a29010037030020034188096a41106a222c200341b2186a2901003703002003419f096a2229200341b9186a290000370000200320032901a218370388090240024020032d00a0184101470d0020032d00a118210c200341d0106a41186a2029290000370000200341e1106a202c290300370000200341d9106a202a29030037000020032003290388093700d1102003200c3a00d010200341a0056a200620271065200341a0186a41186a2007290300370300200341a0186a41106a2002290300370300200341a0186a41086a2005290300370300200320032903a0053703a0180240200341a0186a200341d0106a4120108805450d004107210241c0b3c00021050c020b200320273602a818200320133602a418200320063602a018200341d0106a200341a0186a10e801024020032d00d01022074108460d00200341d0106a41086a280200210420032d00d110212a20032d00d210210220032d00d310210620032802d41021050c0d0b42002108200341a0056a41186a4200370300200341b0056a4200370300200341a0056a41086a22044200370300200342003703a005200341a8046a41e2a4c000410f10ab012004200341a8046a41086a2207290000370300200320032900a8043703a005200341a8046a41fce2c000411110ab01200241086a2007290000370000200220032900a804370000200341a0056a412041002802b4ad4211050020012001280200417f6a2202360200024020020d002001280208200128020c2802001102000240200128020c280204450d00200128020810300b200141046a22022002280200417f6a220236020020020d00200110300b200320032800e8013602a0182003200341eb016a2800003600a318200041186a41013a000020004200370308200020032802a0183600192000411c6a20032800a3183600000c0d0b4106210241a4b3c0002105411121040b410321074101212a024020130d000c0b0b200610300c0a0b41aeaac000411820034188096a41c8aac00041d8aac0001034000b41b082c200411020034188096a41e8aac00041f8aac0001034000b41aeaac000411820034188096a41c8aac0004188abc0001034000b41aeaac000411820034188096a41c8aac0004184acc0001034000b00000b41b082c200411020034188096a41e8aac0004194acc0001034000b200341b4186a4100360200200341b0186a41bc8ec200360200200342013702a418200341a4acc0003602a0182002200341c0026a200341a0186a108802000b200341b4186a4100360200200341b0186a41bc8ec200360200200342013702a418200341bcacc0003602a018200241186a200341cc026a200341a0186a108902000b200341a0186a41146a4100360200200341b0186a41bc8ec200360200200342013702a418200341d4acc0003602a01820022004200341a0186a41dcacc000108a02000b20004200370308200041186a41003a0000200041206a41023a0000200042013703000c060b20012001280200417f6a2213360200024020130d002001280208200128020c2802001102000240200128020c280204450d00200128020810300b200141046a22132013280200417f6a221336020020130d00200110300b20004200370308200020032800a018360019200020063a0023200020023a00222000202a3a0021200041186a41003a0000200041286a2004360200200041246a2005360200200041206a20073a00002000411c6a200341a3186a280000360000420121080b200020083703000c040b200610300b20004200370308200020032800e801360019200041186a41003a00002000411c6a200341eb016a280000360000200042003703000c020b20162001460d0003402001410c6a21020240200141046a280200450d00200128020010300b2002210120162002470d000b0b2003418c116a21010240200f450d00200f410c6c450d00201210300b024002400240200341d8036a20014120108805450d00200341a0186a41186a200341d8036a41186a290300370300200341a0186a41106a200341d8036a41106a290300370300200341a0186a41086a200341d8036a41086a290300370300200320032903d8033703a018200341d0106a200341a0186a10672201450d01200128020c4101480d010b200341a0186a200341d0106a41e0001085051a20034198196a200341d8036a41186a29030037030020034190196a200341d8036a41106a29030037030020034188196a200341d8036a41086a290300370300200320032903d8033703801941012102200341a0056a418de2c10041011065200341b8196a200341a0056a41186a290300370300200341b0196a200341a0056a41106a290300370300200341a8196a200341a0056a41086a290300370300200320032903a0053703a01920034188096a200341a0186a41cc9fc0004120105f02402003280288094101470d004100212e0c070b0240200328028c0922010d004102212e0c080b024002400240024002400240024020034188096a41086a2903002208422088a722024104490d002002417c7122024104460d0020024108460d002002410c460d0020024110460d0020024114460d0020024118460d002002411c460d0020024120460d00200128000021182001280004213220012800082133200128000c2134200128001021352001280014213620012800182137200128001c21382001280020213902402008a7450d00200110300b200342bfd1ab90c7d5a39e653703b805200342cdfebda78cc1eae29d7f3703b005200342f3a4f999eff7bbed0c3703a805200342e3eeb3c4a9ae8fee907f3703a005200320143602a8042003200341a8046a4104108b023703b803200341a0096a200341a8046a41046a36020020034198096a200341b8036a41086a36020020034188096a41086a2204200341c0056a220136020020034194096a200341b8036a3602002003200341a8046a36029c092003200341a0056a36028c09200341013602880920034198046a20034188096a108c0220034188096a200341a0186a200328029804220720032802a004105f2003280288094101460d05200328028c092202450d032003200429030022084220883e02cc04200320023602c80420034188096a200341c8046a106b4101212e20032d00880922044101470d010c020b2008a7450d0b200110300c0b0b200341a8056a20034196096a290100370300200341b0056a2003419e096a290100370300200341b7056a200341a5096a2800003600002003200329018e093703a00520032d008d09210f20032d008c09211d20032f018a09213120032d008909212e0b02402008a7450d00200210300b200341b8036a41176a2202200341a0056a41176a280000360000200341b8036a41106a2205200341a0056a41106a290300370300200341b8036a41086a2206200341a0056a41086a290300370300200320032903a0053703b80320044101460d03200341a8046a41176a2002280000360000200341a8046a41106a2005290300370300200341a8046a41086a2006290300370300200320032903b8033703a8040c010b200341b0046a4200370300200341b8046a420037030041002131200341bf046a4100360000200342003703a8044100211d4100210f4100212e0b200341f8026a41176a2202200341a8046a41176a280000360000200341f8026a41106a2204200341a8046a41106a290300370300200341f8036a41086a200341a8046a41086a290300370300200341f8036a41106a2004290300370300200341f8036a41176a2002280000360000200320032903a8043703f8030240200328029c04450d00200710300b200342c1f3db99a8f3d78f3e3703b805200342faa3dfa29eecf58f543703b005200342b0a0d080e781cb92937f3703a805200342f5c1fc9bf099f7f2867f3703a005200320143602a8042003200341a8046a4104108b023703b803200341a0096a200341a8046a41046a36020020034188096a41106a200341b8036a41086a36020020034188096a41086a2207200136020020034194096a200341b8036a3602002003200341a8046a36029c092003200341a0056a36028c092003410136028809200341f8026a20034188096a108c0220034188096a200341a0186a20032802f8022204200328028003105f02402003280288094101470d004100212e0c070b0240200328028c0922020d00410021124100212b0c040b024020072903002208422088a722074104492007417c714104467222070d002002280004212b200228000021120b02402008a7450d00200210300b2007450d034101212e0c060b4100212e0b0240200328029c04450d00200710300b410221020c070b200341d0106a106c410021020c070b024020032802fc02450d00200410300b2003428580cfabfc80d1acc8003703b8052003429deee4a88fb6ac96f1003703b005200342b8d08eab80d2bcb1fc003703a805200342ea9a80e5d5b4e689bc7f3703a0052003201436029804200320034198046a4104108b023703a804200341a0096a20034198046a41046a36020020034198096a200341a8046a41086a36020020034188096a41086a200136020020034188096a410c6a200341a8046a360200200320034198046a36029c092003200341a0056a36028c092003410136028809200341b8036a20034188096a108c0220032802b803210420032802c00321022003420037028c09200341002802e88f42220736028809200341f8026a200341a0186a2004200220034188096a106802400240024002400240024020032d00f8024101460d00200341f8026a410c6a2802002102200341f8026a41086a280200212d20032802fc02211c024020032802bc03450d00200410300b200342b58a8dcc8c8e8be0203703b805200342f1d7d0ebf6d98cf4c3003703b005200342b8d08eab80d2bcb1fc003703a805200342ea9a80e5d5b4e689bc7f3703a0052003201436029804200320034198046a4104108b023703a804200341a0096a20034198046a41046a36020020034198096a200341a8046a41086a36020020034188096a41086a200136020020034188096a410c6a200341a8046a360200200320034198046a36029c092003200341a0056a36028c092003410136028809200341b8036a20034188096a108c0220032802b803210120032802c00321042003420037028c092003200736028809200341f8026a200341a0186a2001200420034188096a106820032d00f8024101460d03200341f8026a410c6a280200211b200341f8026a41086a280200213020032802fc02212f024020032802bc03450d00200110300b2002ad423c7e2208422088a70d0d2008a72201417f4c0d0d20010d01410421260c020b20032d00f902212e024020032802bc03450d00200410300b410421020c0a0b2001102f2226450d050b2001413c6e210720020d01410021060c020b20032d00f902212e024020032802bc03450d00200110300b41052102202d41ffffffff0371450d06201c10300c070b2002410274212a20034188096a41106a21024100211341002106201c210502400340200341b8036a200528020022272014108d0220032802c003212c20032802b8032101200341023a00b40520034188096a200341a0186a2001202c200341a0056a106a20032d0088094101460d01200341f8026a41086a222c200241086a290200370300200341f8026a41106a2229200241106a290200370300200341f8026a41186a221f200241186a290200370300200341f8026a41206a221e200241206a290200370300200341f8026a41286a2216200241286a280200360200200320022902003703f8022003280294092117200328029009212020032f018e09210420032d008d09212820032d008c092119024020032802bc03450d00200110300b20034188096a41286a221a201628020036020020034188096a41206a2216201e29030037030020034188096a41186a221e201f2903003703002002202929030037030020034188096a41086a2229202c290300370300200320032903f80237038809024020062007470d00200741016a22012007490d0b2007410174222c2001202c20014b1b22014104200141044b1bad423c7e2208422088a74541027421012008a7212c0240024020070d00200341003602a0050c010b200341043602a805200320263602a00520032007413c6c3602a4050b200341b8036a202c2001200341a0056a106920032802c0032101024020032802b8034101470d002001450d0c0c060b20032802bc0321262001413c6e21070b200541046a2105202620136a220120273602002001410c6a2017360200200141086a2020360200200141066a20043b0100200141056a20283a0000200141046a20193a0000200141106a200329038809370200200141186a2029290300370200200141206a2002290300370200200141286a201e290300370200200141306a2016290300370200200141386a201a2802003602002013413c6a2113200641016a2106202a417c6a222a450d020c000b0b20032d008909212e024020032802bc03450d00200110300b0240202d41ffffffff0371450d00201c10300b02402007450d002007413c6c450d00202610300b410621020240203041ffffffff03710d00201421290c070b202f1030201421290c060b0240202d41ffffffff0371450d00201c10300b201bad423c7e2208422088a70d072008a72201417f4c0d070240024020010d004104212d0c010b2001102f222d450d020b2001413c6e210502400240201b0d00410021130c010b201b410274212c20034188096a41106a21024100212741002113202f212a02400340200341b8036a2014202a2802002229108d0220032802c003211f20032802b8032101200341023a00b40520034188096a200341a0186a2001201f200341a0056a106a20032d0088094101460d01200341f8026a41086a221f200241086a290200370300200341f8026a41106a221e200241106a290200370300200341f8026a41186a2216200241186a290200370300200341f8026a41206a2217200241206a290200370300200341f8026a41286a2220200241286a280200360200200320022902003703f8022003280294092128200328029009211920032f018e09210420032d008d09211a20032d008c09211b024020032802bc03450d00200110300b20034188096a41286a221c202028020036020020034188096a41206a2220201729030037030020034188096a41186a221720162903003703002002201e29030037030020034188096a41086a221e201f290300370300200320032903f80237038809024020132005470d00200541016a22012005490d0b2005410174221f2001201f20014b1b22014104200141044b1bad423c7e2208422088a74541027421012008a7211f0240024020050d00200341003602a0050c010b200341043602a8052003202d3602a00520032005413c6c3602a4050b200341b8036a201f2001200341a0056a106920032802c0032101024020032802b8034101470d002001450d0c0c060b20032802bc03212d2001413c6e21050b202a41046a212a202d20276a220120293602002001410c6a2028360200200141086a2019360200200141066a20043b0100200141056a201a3a0000200141046a201b3a0000200141106a200329038809370200200141186a201e290300370200200141206a2002290300370200200141286a2017290300370200200141306a2020290300370200200141386a201c2802003602002027413c6a2127201341016a2113202c417c6a222c450d020c000b0b20032d008909212e024020032802bc03450d00200110300b0240203041ffffffff0371450d00202f10300b02402005450d002005413c6c450d00202d10300b4106210202402007450d002007413c6c450d00202610300b201421270c060b0240203041ffffffff0371450d00202f10300b20034188096a41176a2201200341f8036a41176a28000036000020034188096a41106a2202200341f8036a41106a29030037030020034188096a41086a2204200341f8036a41086a290300370300200320032903f80337038809200341a0186a106c2003419c036a200f3a00002003419b036a201d3a000020034199036a20313b000020034194036a2013360200200341f8026a41186a2005360200200341f8026a41106a200636020020034184036a20073602002003419d036a200329038809370000200341a5036a2004290300370000200341ad036a2002290300370000200341b4036a20012800003600002003202e3a0098032003202d36028c0320032026360280032003202b3602fc02200320123602f802200341a0056a41186a4200370300200341a0056a41106a4200370300200341a0056a41086a22014200370300200342003703a005200341a8046a41e2a4c000410f10ab012001200341a8046a41086a2202290000370300200320032900a8043703a005200341a8046a41acdac000410e10ab01200a41086a2002290000370000200a20032900a804370000200341003602d810200342013703d01020032802c00220032802c802200341d0106a10a601200320032802cc023602a018200341d0106a200341a0186a410410644120102f2201450d01200342203702a418200320013602a018200341a0186a200341c0026a41146a41201064200341d0106a20032802a018220120032802a8181064024020032802a418450d00200110300b200341f8026a41206a2101200341f8026a41146a2102200341f8026a41086a2104200320032802d0023602a018200341d0106a200341a0186a41041064200341a0056a412020032802d010220720032802d81041002802fcad42110300024020032802d410450d00200710300b200341d0106a41386a2207200141186a290200370300200341d0106a41306a2205200141106a290200370300200341d0106a41286a2206200141086a290200370300200341d0106a41206a22132001290200370300200341d0106a41086a222a2004108e02200341e4106a2002108e022003202b3602d410200320123602d010200341a0186a41386a2007290300370300200341a0186a41306a2005290300370300200341a0186a41286a2006290300370300200341a0186a41206a2013290300370300200341a0186a41186a200341d0106a41186a290300370300200341a0186a41106a200341d0106a41106a290300370300200341a0186a41086a202a290300370300200320032903d0103703a018200341a0056a41186a4200370300200341a0056a41106a4200370300200341a0056a41086a22024200370300200342003703a005200341a8046a41e2a4c000410f10ab012002200341a8046a41086a2204290000370300200320032900a8043703a005200341a8046a41d4dbc000411610ab01200a41086a2004290000370000200a20032900a804370000200341003602e003200342013703d8034120102f2202450d012003422037028c09200320023602880920034188096a200341a0186a41206a41201064200341d8036a200328028809220220032802900910640240200328028c09450d00200210300b200320032802a01836028809200341d8036a20034188096a41041064200320032802a41836028809200341d8036a20034188096a41041064200341a8186a200341d8036a108f02200341b4186a200341d8036a108f02200341a0056a412020032802d803220220032802e00341002802fcad42110300024020032802dc03450d00200210300b0240200341ac186a2802002202450d002002413c6c450d0020032802a81810300b0240200341a0186a41186a2802002202450d002002413c6c450d0020032802b41810300b200341a0056a41186a4200370300200341a0056a41106a22054200370300200341a0056a41086a22024200370300200342003703a005200341a8046a41e2a4c000410f10ab012002200341a8046a41086a2204290000370300200320032900a8043703a005200341a8046a41c8dcc000411110ab01200a41086a22062004290000370000200a20032900a804370000200342013703a01841002107200341003602a818200320183602d010200341a0186a200341d0106a41041064200320323602d010200341a0186a200341d0106a41041064200320333602d010200341a0186a200341d0106a41041064200320343602d010200341a0186a200341d0106a41041064200320353602d010200341a0186a200341d0106a41041064200320363602d010200341a0186a200341d0106a41041064200320373602d010200341a0186a200341d0106a41041064200320383602d010200341a0186a200341d0106a41041064200320393602d010200341a0186a200341d0106a41041064200341a0056a412020032802a018221320032802a81841002802fcad42110300024020032802a418450d00201310300b200341b8036a41186a200141186a290000370300200341b8036a41106a200141106a290000370300200341b8036a41086a200141086a290000370300200320012900003703b803200341a0056a41186a42003703002005420037030020024200370300200342003703a005200341a8046a41e2a4c000410f10ab0120022004290000370300200320032900a8043703a005200341a8046a41b4ddc000410e10ab0120062004290000370000200a20032900a804370000200341203602dc032003200341a0056a3602d80320034188096a200341a0056a412041002802d4ad421104000240024020032802880922010d000c010b200328028c09212a0240024020034190096a2802002202450d00200320012d00003a00a418200341013602a01820024101460d00200320012d00013a00a518200341023602a01820024102460d00200320012d00023a00a618200341033602a01820024103460d00200320012d00033a00a718200341043602a01820024104460d00200341a8186a20012d00043a0000200341053602a01820024105460d00200341a9186a20012d00053a0000200341063602a01820024106460d00200341aa186a20012d00063a0000200341073602a01820024107460d00200341ab186a20012d00073a0000200341083602a01820024108460d00200341ac186a20012d00083a0000200341093602a01820024109460d00200341ad186a20012d00093a00002003410a3602a0182002410a460d00200341ae186a20012d000a3a00002003410b3602a0182002410b460d00200341af186a20012d000b3a00002003410c3602a0182002410c460d00200341b0186a20012d000c3a00002003410d3602a0182002410d460d00200341b1186a20012d000d3a00002003410e3602a0182002410e460d00200341b2186a20012d000e3a00002003410f3602a0182002410f460d00200341b3186a20012d000f3a0000200341103602a01820024110460d00200341b4186a20012d00103a0000200341113602a01820024111460d00200341b5186a20012d00113a0000200341123602a01820024112460d00200341b6186a20012d00123a0000200341133602a01820024113460d00200341b7186a20012d00133a0000200341143602a01820024114460d00200341b8186a20012d00143a0000200341153602a01820024115460d00200341b9186a20012d00153a0000200341163602a01820024116460d00200341ba186a20012d00163a0000200341173602a01820024117460d00200341bb186a20012d00173a0000200341183602a01820024118460d00200341bc186a20012d00183a0000200341193602a01820024119460d00200341bd186a20012d00193a00002003411a3602a0182002411a460d00200341be186a20012d001a3a00002003411b3602a0182002411b460d00200341bf186a20012d001b3a00002003411c3602a0182002411c460d00200341c0186a20012d001c3a00002003411d3602a0182002411d460d00200341c1186a20012d001d3a00002003411e3602a0182002411e460d00200341c2186a20012d001e3a00002003411f3602a0182002411f460d00200341c3186a20012d001f3a0000200341a8046a41026a200341ad186a2d00003a0000200341f8036a41026a200341b4186a2d00003a0000200320032f01a4183b01d010200320032d00a6183a00d2102003200341ab186a2f00003b01a8042003200341b2186a2f01003b01f803200341bc186a2802002106200341b5186a2800002105200341ae186a2801002104200341203602a018200341a0186a41206a280200211320032800a718210220034198046a41026a200341bb186a2d00003a00002003200341b9186a2f00003b019804410121070c010b200342003702d41041002107200341002802dc94423602d010200341093602fc032003200341d8036a3602f8032003200341d0106a3602a804200341b4186a4101360200200342013702a418200341a0e6c1003602a0182003200341f8036a3602b018200341a8046a41d0adc000200341a0186a10321a20032802d01020032802d81010ad01024020032802d410450d0020032802d01010300b0b202a450d00200110300b0240024020070d00200341f0036a4200370300200341e8036a4200370300200341e0036a4200370300200342003703d8030c010b200341e1036a200341a8046a41026a2d00003a0000200341e8036a200341f8036a41026a2d00003a0000200341ef036a20034198046a41026a2d00003a0000200320032d00d2103a00da03200320032f01d0103b01d803200320023600db03200320032f01a8043b00df03200320043601e203200320032f01f8033b01e603200320053600e903200320032f0198043b00ed03200320133602f403200320063602f0030b02400240200d0d00420021210c010b200341033a00a818200342013703a0182003200d3602ac18200341a0186a10e60142002121200341a0056a41186a222a4200370300200341a0056a41106a22274200370300200341a0056a41086a22134200370300200342003703a005200341a8046a41e2a4c000410f10ab012013200341a8046a41086a2201290000370300200320032900a8043703a005200341a8046a41d0e2c000411910ab01200a41086a2001290000370000200a20032900a804370000200341206a200341a0056a10900220032903284280a094a58d1d20032802201b2115201141106a21042011200d41047422066a2117200341b1186a2120200341a0186a4101722116200341a0186a4104722107200341c4186a2114200341d7106a212820034188096a410472211e201121020340024002402006450d0020022802002105200228020421012003200241086a2902002208370390092003200136028c09200320053602880920010d0120172004460d002011200d4104746a21020340200441106a21010240200441086a280200450d00200441046a28020010300b2001210420022001470d000b0b0240200e41ffffffff0071450d00201110300b200341b8056a4200370300200341b0056a4200370300200341a0056a41086a22014200370300200342003703a005200341a8046a41e2a4c000410f10ab012001200341a8046a41086a2202290000370300200320032900a8043703a005200341a8046a41b4ddc000410e10ab01200a41086a2002290000370000200a20032900a8043700004120102f2201450d04200342203702a418200320013602a018200341a0186a200341d8036a41201064200341a0056a412020032802a018220120032802a81841002802fcad42110300024020032802a418450d00200110300b200341c1186a200341f0036a290300370000200341b9186a200341e8036a290300370000200341b1186a200341e0036a290300370000200341d0186a2021370300200320032903d8033700a918200341043a00a818200342013703a018200341a0186a10e6010c020b202a200341d8036a41186a222c2903003703002027200341d8036a41106a22292903003703002013200341d8036a41086a221f290300370300200320032903d8033703a0052014201e1063200741186a202a290300370000200741106a2027290300370000200741086a2013290300370000200720032903a005370000200320053602a018200341d0106a200341a0186a1066202c200341d0106a41186a2903003703002029200341d0106a41106a290300370300201f200341d0106a41086a290300370300200320032903d0103703d80320012008422088a72205108b0221092003200536028c09200320013602880902400240024002402005450d0020012d0000212c20032005417f6a36028c092003200141016a36028809202c0d00200341a0186a20034188096a10950120032d00a0182205410b460d00200341d0106a201641e7031085051a200341a0056a200341d0106a41e7031085051a2005410f7141756a0e020200010b200320093700a918200341003a00a818200342023703a018200341a0186a10e6010c020b200342013703d010200341003a00d810200320053a00a0182016200341a0056a41e7031085051a20034188096a200341d0106a200341a0186a201510910242002122024002402003280288090e03000001000b20032903900921220b202820034188096a41c8071085051a2020200341d0106a41cf071085051a200320093700a918200341023a00a818200342023703a018202220217c2121200341a0186a10e6010c010b200320093700a918200341013a00a818200342023703a018200341a0186a10e6010b02402008a7450d00200110300b200241106a2102200641706a2106200441106a21040c000b0b024002400240200341d8036a200341b8036a41201088050d00200341b8056a4200370300200341b0056a4200370300200341a0056a41086a22014200370300200342003703a005200341a8046a41e2a4c000410f10ab012001200341a8046a41086a2202290000370300200320032900a8043703a005200341a8046a41e8dec000411910ab01200a41086a2002290000370000200a20032900a8043700002003200d3602a018200341a0056a4120200341a0186a410441002802fcad421103000240200d0d00200e41ffffffff0071450d00201110300b2003280280032106200328028803212d20032802cc02211b02400240200c0d0041002101200341b0186a4100360200200341003602a4180c010b200341a0186a2010200c109301200b21010b200341d0106a41106a200341a0186a41106a22022903002208370300200341d0106a41086a200341a0186a41086a22042903002209370300200320032903a01822153703d0102002200837030020042009370300200320153703a01802402001450d0020032001417f6a22133602b818200341a0186a410020032802a4181b220528020021040240024020052802082207200528020422012f01b6014f0d00200121020c010b03400240200128020022020d00410021020c020b200441016a210420012f01b401210720022101200720022f01b6014f0d000b0b024002402004450d00200741027420026a41bc016a280200210102402004417f6a2204450d00034020012802b80121012004417f6a22040d000b0b410021040c010b200741016a2104200221010b200520013602042005410036020020052004360208202d450d02200220074102746a41046a210103402001280200210741002101202d2104202d2102024003400240024020072006200441017620016a2204413c6c6a28020022054d0d00200441016a21010c010b2004210220072005460d020b200220016b2104200220014b0d000c050b0b2013450d0120032013417f6a22133602b818200341a0186a410020032802a4181b220528020021040240024020052802082207200528020422012f01b6014f0d00200121020c010b03400240200128020022020d00410021020c020b200441016a210420012f01b401210720022101200720022f01b6014f0d000b0b024002402004450d00200741027420026a41bc016a280200210102402004417f6a2204450d00034020012802b80121012004417f6a22040d000b0b410021040c010b200741016a2104200221010b200520013602042005410036020020052004360208200220074102746a41046a21010c000b0b0240200c0d004100210c410021024100210b0c030b200c21020340200c2f01b60121012010450d032010417f6a2110200c20014102746a41b8016a280200210c20022802b80121020c000b0b200341003602a018200341d8036a200341b8036a200341a0186a41c0bac000108a02000b41d0bac00041d40041a4bbc000102d000b200341ec106a200b360200200341e8106a2001360200200341e4106a200c360200200341dc106a4200370200200341d8106a20023602002003410036028411200341003602f010200342013703d010200341a0186a200341d0106a10920202400240024020032802a818450d00417f417f200341fc106a280200200341f8106a2802006b410475410020032802f0101b220120034190116a2802002003418c116a2802006b41047541002003280284111b6a220220022001491b220141016a220220022001491bad42147e2208422088a70d0a2008a72201417f4c0d0a2001102f2228450d04202820032903a018370200202841106a200341a0186a41106a280200360200202841086a200341a0186a41086a290300370200200341a0186a200341d0106a41c8001085051a200141146e211c20034188096a200341a0186a10920202402003280290090d00410121200c020b41142101410121200240034002402020201c470d00201c417f417f20032802cc1820032802c8186b410475410020032802c0181b220220032802e01820032802dc186b410475410020032802d4181b6a220420042002491b220241016a220420042002491b6a2202201c490d0d201c41017422042002200420024b1b22024104200241044b1bad42147e2208422088a74541027421022008a7210402400240201c0d00200341003602a0050c010b200341043602a805200320283602a0052003201c41146c3602a4050b200341d8036a20042002200341a0056a106920032802e003210220032802d8034101460d0220032802dc032128200241146e211c0b202820016a2202200329038809370200200241106a20034188096a41106a280200360200200241086a20034188096a41086a2202290300370200200141146a2101202041016a212020034188096a200341a0186a1092022002280200450d030c000b0b2002450d0a0c040b024020032802d010450d00200341d0106a4104721093020b024020032802f0102202450d000240200341fc106a2802002207200341f8106a28020022046b2201450d002001417f2001417f4a1b2202410120024101481b200420076b22022001200220014a1b4104766c4104742102200441086a2101034002402001280200450d002001417c6a28020010300b200141106a2101200241706a22020d000b20032802f01021020b200341f4106a28020041ffffffff0071450d00200210300b41002802e88f42212802402003280284112202450d00024020034190116a28020022072003418c116a28020022046b2201450d002001417f2001417f4a1b2202410120024101481b200420076b22022001200220014a1b4104766c4104742102200441086a2101034002402001280200450d002001417c6a28020010300b200141106a2101200241706a22020d000b20032802841121020b20034188116a28020041ffffffff0071450d00200210300b4100211c410021200c010b024020032802a018450d00200341a0186a4104721093020b024020032802c0182207450d000240200341cc186a2802002202200341c8186a28020022046b2201450d002001417f2001417f4a1b2205410120054101481b200420026b22022001200220014a1b4104766c4104742102200441086a2101034002402001280200450d002001417c6a28020010300b200141106a2101200241706a22020d000b0b200341c4186a28020041ffffffff0071450d00200710300b024020032802d4182207450d000240200341e0186a2802002202200341dc186a28020022046b2201450d002001417f2001417f4a1b2205410120054101481b200420026b22022001200220014a1b4104766c4104742102200441086a2101034002402001280200450d002001417c6a28020010300b200141106a2101200241706a22020d000b0b200341d8186a28020041ffffffff0071450d00200710300b0240202041144b0d00202041014d0d01202041146c20286a41586a21014101210203402001200241016a22021094022001416c6a210120202002470d000c020b0b2020410176ad42147e2208422088a70d082008a7222f417f4c0d08202f102f2226450d022028416c6a212b202841446a212e41002802e88f42211041002112410021292020210d024002400340200d21144100210d4101210402402014417f6a2201450d000240024002400240024002402028200141146c6a221341046a280200220120282014417e6a220741146c6a220441046a2802002202490d0020042802002105024020012002470d0020132802002005490d010b202e201441146c6a2101410221130340200521270240201420132204470d004100210d201421040c080b02402002200141046a2802002207490d00200441016a21132002200747212a200128020021052001416c6a222c210120072102202a0d01202c210120072102202720054f0d010b0b201420046b210d0c010b4100210d02402007450d00202e201441146c6a2101034002402002200141046a2802002204490d00024020022004470d00200141146a2802002001280200490d010b2007210d0c020b2001416c6a2101200421022007417f6a22070d000b0b2014200d490d01201420204b0d022014200d6b22044101762207450d002028200d41146c6a2101202b201441146c6a21020340200341a0186a41106a2205200141106a2213280200360200200341a0186a41086a222a200141086a2227290200370300200320012902003703a018200241106a222c280200210c200241086a221f290200210820012002290200370200202720083702002013200c360200202c2005280200360200201f202a290300370200200220032903a018370200200141146a21012002416c6a21022007417f6a22070d000b0b200d450d04200441094b0d04201420204b0d022014200d6b2104200d417f6a2101202b200d41146c6a2102034020142001490d072002200441016a22041094022001417f6a220720014f0d042002416c6a2102200721012004410a490d000c040b0b200d201441ccf7c0001048000b2014202041ccf7c0001042000b2014200d417f6a2201490d032014202041dcf7c0001042000b200741016a210d0b024020292012470d00201241016a22012012490d0c201241017422022001200220014b1b22014104200141044b1b220141ffffffff01712001464102742102200141037421010240024020120d00200341003602a0180c010b200341043602a818200320103602a018200320124103743602a4180b200341d0106a20012002200341a0186a106920032802d8102101024020032802d0104101470d002001450d0d0c070b20032802d4102110200141037621120b201020294103746a220120043602042001200d360200202941016a22172129024020174102490d0003400240024002400240201020172229417f6a22174103746a2201280200450d00202941037420106a220741746a2802002204200128020422024d0d00202941024d0d0520102029417d6a221f4103746a2802042201200220046a4d0d01202941034d0d05200741646a280200200120046a4b0d050c010b20294103490d012001280204210220102029417d6a221f4103746a28020421010b20012002490d010b2029417e6a211f0b02400240024002402029201f41016a22014d0d0002402029201f4d0d0002402010201f4103746a2214280204221920142802006a2204201020014103746a2216280200221e490d000240200420204b0d00201441046a211a2028201e41146c6a22022016280204220c41146c22076a2101200441146c210502402004201e6b222a200c6b2204200c490d00202620022007108505220420076a21130240200c41014e0d00200421050c080b202a200c4a0d06200421050c070b20262001200441146c2207108505222c20076a211302400240200c4101480d00200441014e0d010b202c2105200121020c070b202b20056a210403402001416c6a210702400240201341706a2802002205200141706a280200222a4f0d00200721050c010b2013416c6a212702402005202a470d002007210520272802002007280200490d010b2001210720272113202721050b20042005290200370200200441106a200541106a280200360200200441086a200541086a290200370200200220074f0d052004416c6a2104200721012013202c4b0d000c050b0b20042020418cf8c0001042000b201e2004418cf8c0001048000b201f202941fcf7c0001033000b2001202941ecf7c0001033000b202c2105200721020c010b202820056a212a200421040340024002400240200141046a2802002207200441046a2802002205490d0020072005470d01200128020020042802004f0d010b200141146a2107200421050c010b200441146a210520012107200421010b20022001290200370200200241106a200141106a280200360200200241086a200141086a290200370200200241146a21022007202a4f0d01200521042007210120052013490d000b0b20022005201320056b220120014114706b1085051a201a2019200c6a3602002014201e3602002016201641086a2029201f6b41037441706a1086051a41012129201741014b0d000b0b200d450d020c000b0b2001201441dcf7c0001048000b0240201241ffffffff0171450d00201010300b202f4114702101202f4114490d00202f2001460d00202610300b200341e8106a22014200370300200341d0106a41106a22024200370300200341d0106a41086a22044200370300200342003703d010200341a8046a41e2a4c000410f10ab012004200341a8046a41086a2207290000370300200320032900a8043703d010200341a8046a4184dec000411010ab0120012007290000370300200220032900a804370300200341203602ac042003200341d0106a3602a8044100211e200341d8036a200341d0106a412041002802d4ad421104000240024002400240024020032802d803221f0d00410021010c010b20032802dc0321102003200341d8036a41086a2802003602bc032003201f3602b803200341186a200341b8036a109b0102400240024020032802180d0002400240200328021c22120d00410121014100212c410021290c010b200341b5056a210f200341ae056a210e200341a0056a4107722118200341a0186a410472212a200341b9186a2119200341b2186a211a200341a0186a410b6a21264100212c41002129410021160340024002400240024020032802bc0322014104490d00201641016a211620032802b8032213280000210720032001417c6a22273602bc032003201341046a3602b8032001417b6a210241002101034020272001460d01202a20016a201320016a220541046a2d00003a00002003200141016a22043602a0182003200541056a3602b803200320023602bc032002417f6a21022004210120044120470d000b200341e8046a41026a222b202641026a2d00003a0000200341e4046a41026a222e201a41026a2d00003a00002003202a2f01003b01ec04200320262f00003b01e8042003201a2f00003b01e4042003202a41026a2d00003a00ee0420032802c018212f20032802bc18213020032800b518213120032801ae18211120032800a718210b200341e0046a41026a221d201941026a2d00003a0000200320192f00003b01e004024020290d00419403102f2229450d0f4100210c202941003b0132202941003602000b20292113200c21140340201341046a210d20132f01322217410274212741002104417f21024100210102400340024020272001470d00201721020c020b201320016a2105200241016a2102200441206a2104200141046a2101417f200541046a2802002205200747200520074b1b22054101460d000b0240200541016a0e020100010b200341a0186a41026a2202202b2d00003a000020034188096a41026a2207202e2d00003a0000200341a0056a41026a2205201d2d00003a0000200320032f01e8043b01a018200320032f01e4043b018809200320032f01e0043b01a00520032f01ec042127201320046a220141166a20032d00ee043a0000200141146a20273b00002001411d6a20022d00003a00002001411b6a20032f01a0183b0000200141246a20072d00003a0000200141226a20032f0188093b0000200141176a200b3600002001411e6a2011360000200141256a2031360000200141296a20032f01a0053b00002001412b6a20052d00003a0000200141306a202f3600002001412c6a20303600000c050b02402014450d002014417f6a2114201320024102746a4194036a28020021130c010b0b02402017410a4b0d00200341a0186a41026a220120032d00ee043a000020034188096a41026a2204202b2d00003a0000200341a0056a41026a2205202e2d00003a0000200341f8036a41026a2227201d2d00003a0000200320032f01ec043b01a018200320032f01e8043b018809200320032f01e4043b01a005200320032f01e0043b01f803200241016a21140240200220174f222b0d00200d20144102746a200d20024102746a201720026b4102741086051a0b200d20024102746a2007360200200341dc046a41026a220720012d00003a0000200341d8046a41026a220d20042d00003a0000200341d4046a41026a220420052d00003a0000200341d0046a41026a220520272d00003a0000200320032f01a0183b01dc04200320032f0188093b01d804200320032f01a0053b01d404200320032f01f8033b01d004201341346a21010240202b0d00200120144105746a200120024105746a201720026b4105741086051a0b200120024105746a220120032f01dc043b0000200141026a20072d00003a0000200141096a200d2d00003a0000200120032f01d8043b0007200141106a20042d00003a0000200120032f01d4043b000e2001200b3600032001201136000a20012031360011200141176a20052d00003a0000200120032f01d0043b00152001202f36001c200120303600182013201741016a3b0132202c41016a212c0c040b4100213a4104210502400240200241054f0d00200221270c010b4105210541052127024002402002417b6a0e020201000b200241796a21274101213a410621050c010b410021274101213a0b419403102f2204450d0e200441003b013220044100360200200420132f0132223b2005417f736a22023b0132200d20054102746a280200213c200341dc046a41026a2217201341346a223d20054105746a220141026a2d00003a0000200320012f00003b01dc04200341d8046a41026a2239200141096a2d00003a0000200320012f00073b01d804200341d4046a41026a223e200141106a2d00003a0000200320012f000e3b01d404200341d0046a41026a223f200141176a2d00003a0000200320012f00153b01d0040240024002400240024002402002410c4f0d00203b200541016a22146b2002470d012001280003213b200128000a214020012800112141200128001c214220012800182143200441046a200d20144102746a20024102741085051a200441346a203d20144105746a20024105741085051a201320053b0132200341c8046a41026a223d20392d00003a00002003419c056a41026a2244203e2d00003a000020034198056a41026a2245203f2d00003a0000200320032f01dc043b019804200320172d00003a009a04200320032f01d8043b01c804200320032f01d4043b019c05200320032f01d0043b01980520034188096a41026a220d202b2d00003a0000200341a0056a41026a222b202e2d00003a0000200320032f01ec043b01a018200320032d00ee043a00a218200320032f01e8043b018809200320032f01e4043b01a005200341f8036a41026a222e201d2d00003a0000200320032f01e0043b01f80320042013203a1b220241046a21010240202741016a221420022f013222054b221d0d00200120144102746a200120274102746a200520276b4102741086051a0b200120274102746a2007360200201720032d00a2183a00002039200d2d00003a0000203e202b2d00003a0000203f202e2d00003a0000200320032f01a0183b01dc04200320032f0188093b01d804200320032f01a0053b01d404200320032f01f8033b01d004200241346a21010240201d0d00200120144105746a200120274105746a200520276b4105741086051a0b200120274105746a220120032f01dc043b0000200141026a20172d00003a0000200141096a20392d00003a0000200120032f01d8043b0007200141106a203e2d00003a0000200120032f01d4043b000e2001200b3600032001201136000a20012031360011200141176a203f2d00003a0000200120032f01d0043b00152001202f36001c200120303600182002200541016a3b01322003418c056a41026a220120442d00003a0000200320032f0198043b019405200320032d009a043a00960520034190056a41026a2230203d2d00003a0000200320032f019c053b018c05200320032f01c8043b01900520034188056a41026a221120452d00003a0000200320032f0198053b018805200320032f0194053b01fc04200320032d0096053a00fe04200341f8046a41026a220b20302d00003a0000200320032f0190053b01f804200341f4046a41026a223120012d00003a0000200320032f018c053b01f404200341f0046a41026a221d20112d00003a0000200320032f0188053b01f0040240201328020022010d004100212f0c080b4100212f203b21462040214720412148204321492042214a203c214b2004214c0240034020132f0130210520034194056a41026a224d20032d00fe043a0000203020312d00003a0000200320032f01fc043b019405200320032f01f4043b019005200122272f0132223a410b490d014100211441042107024020054105490d0020052107024002402005417b6a0e020201000b200541796a210541012114410621070c010b4100210541012114410521070b41c403102f2204450d16200441003b013220044100360200200420272f0132223b2007417f736a22023b0132202741046a224e20074102746a280200213c2017202741346a224f20074105746a220141026a2d00003a00002039200141096a2d00003a0000203e200141106a2d00003a0000203f200141176a2d00003a0000200320012f00003b01dc04200320012f00073b01d804200320012f000e3b01d404200320012f00153b01d0042002410c4f0d04203b200741016a22136b2002470d052001280003213b200128000a214020012800112141200128001c214220012800182143200441046a204e201341027422506a20024102741085051a200441346a204f20134105746a20024105741085051a202720073b0132200d20392d00003a0000202b203e2d00003a0000202e203f2d00003a0000200320032f01dc043b01a018200320172d00003a00a218200320032f01d8043b018809200320032f01d4043b01a005200320032f01d0043b01f80320042f0132220241016a21012002410c4f0d06203a20076b22072001470d07202f41016a212f20044194036a202720506a4194036a20074102741085051a4100210102400340200420014102746a4194036a280200220720013b013020072004360200200120024f0d01200120012002496a220120024d0d000b0b203d200d2d00003a00002044202b2d00003a00002045202e2d00003a0000200320032d00a2183a009a04200320032f01a0183b019804200320032f0188093b01c804200320032f01a0053b019c05200320032f01f8033b0198052004202720141b220741046a21130240200541016a220120072f013222024b223a0d00201320014102746a201320054102746a200220056b4102741086051a0b20132005410274224e6a204b360200201820032f01f8043b0000201841026a200b2d00003a0000200e20032f0190053b0000200e41026a20302d00003a0000200f20032f01f0043b0000200f41026a201d2d00003a00002003204d2d00003a00a205200320032f0194053b01a005200320463600a305200320473601aa05200320483600b1052003204a3602bc05200320493602b805200741346a21140240203a0d00201420014105746a201420054105746a200220056b4105741086051a0b200241016a2113201420054105746a221420032903a005370000201441186a200341a0056a41186a290300370000201441106a200341a0056a41106a290300370000201441086a200341a0056a41086a29030037000020074194036a21140240200541026a2246200241026a223a4f0d00201420464102746a201420014102746a200220056b4102741086051a0b201420014102746a204c360200200720133b013202402001203a4f0d002007204e6a4198036a2101034020012802002202200541016a22053b013020022007360200200141046a210120132005470d000b0b2011203d2d00003a000020034184056a41026a220120442d00003a000020034180056a41026a220220452d00003a0000200320032d009a043a008e05200320032f0198043b018c05200320032f01c8043b018805200320032f019c053b018405200320032f0198053b018005200320032d008e053a00fe04200320032f018c053b01fc04200b20112d00003a0000200320032f0188053b01f804203120012d00003a0000200320032f0184053b01f404201d20022d00003a0000200320032f0180053b01f004203b21462040214720412148204321492042214a20272113203c214b2004214c20272802002201450d090c000b0b202741046a21010240203a20054d22040d00200120054102746a220241046a2002203a20056b4102741086051a0b2001200541027422146a204b360200201820032f01f8043b0000201841026a200b2d00003a0000200e20032f01f4043b0000200e41026a20312d00003a0000200f20032f01f0043b0000200f41026a201d2d00003a0000200320032d00fe043a00a205200320032f01fc043b01a005200320463600a305200320473601aa05200320483600b1052003204a3602bc05200320493602b805200541016a2101202741346a2102024020040d00200220014105746a200220054105746a203a20056b4105741086051a0b203a41016a2107200220054105746a220220032903a005370000200241186a200341a0056a41186a290300370000200241106a200341a0056a41106a290300370000200241086a200341a0056a41086a29030037000020274194036a2102203a41026a2113024020040d00201420026a41086a200220014102746a203a20056b4102741086051a0b202720073b0132200220014102746a204c3602000240200120134f0d0020272001417f6a22014102746a4198036a2102034020022802002204200141016a22013b013020042027360200200241046a210220072001470d000b0b410021012005213c2032212f203321042034213b203521402036214120372143203821420c080b2002410b41e8a2c2001042000b41f8a2c200412841a0a3c200102d000b2002410b41e8a2c2001042000b41f8a2c200412841a0a3c200102d000b2001410c41f8a3c2001042000b41f8a2c200412841a0a3c200102d000b410021010c040b200d200b2d00003a0000202b20312d00003a0000202e201d2d00003a0000200320032d00fe043a00a218200320032f01fc043b01a018200320032f01f8043b018809200320032f01f4043b01a005200320032f01f0043b01f803410121010b024020010d0020422138204321372041213620402135203b213420042133202f2132202c41016a212c0c010b41c403102f2202450d0b2002202936029403200241003b013220024100360200202941003b013020292002360200200c202f470d0820022f01322201410b4f0d07200c41016a210c2002200141016a22073b0132200220014102746a41046a203c360200200220014105746a220141346a20032f01a0183b0000200141366a20032d00a2183a0000200141376a203b3600002001413b6a20032f0188093b00002001413d6a200d2d00003a00002001413e6a2040360000200141c2006a20032f01a0053b0000200141c4006a202b2d00003a0000200141c5006a2041360000200141cb006a202e2d00003a0000200141c9006a20032f01f8033b0000200141d0006a2042360000200141cc006a204336000020024194036a20074102746a2004360200200420073b01302004200236020020422138204321372041213620402135203b213420042133202f213220022129202c41016a212c0b20162012470d000b410121010b2003202c3602a818200320293602a4182003200c3602a01820010d01200341a0186a1095020b2003420037028c0941002101200341002802dc944236028809200341093602fc032003200341a8046a3602f803200320034188096a3602a005200341b4186a4101360200200342013702a418200341a0e6c1003602a0182003200341f8036a3602b018200341a0056a41d0adc000200341a0186a10321a20032802880920032802900910ad010240200328028c09450d0020032802880910300b0c010b410121010b2010450d00201f10300b0240024020010d004100212c0c010b2003200c3602b8032029211e0b2003202c3602c0032003201e3602bc03200342003702dc032020450d022028202041146c6a2119200341a0186a4104722127200341a0186a41246a211a200341d0106a410472211620032802b8032126410121012028212a0340202a280204212c200341d0106a200341d8036a202a109602202c201b202c201b4b1b211020014101712114202a41146a210c0240024020032802d0104101460d0020034188096a41106a201641106a28020036020020034188096a41086a201641086a290200370300200320162902003703880902400240201e450d00202a2802002105201e21292026211f0340202941046a210220292f01322217410574211341002101417f210702400340024020132001470d00201721070c020b20022802002104200741016a2107200141206a2101200241046a2102417f2004200547200420054b1b22044101460d000b0240200441016a0e020100010b202920016a220141146a29000021082001411c6a2900002109200141246a2900002115200341a0186a41186a2001412c6a290000370300200341a0186a41106a2015370300200341a0186a41086a2009370300200320083703a0180c030b201f450d01201f417f6a211f202920074102746a4194036a28020021290c000b0b200341a0186a41186a4200370300200341a0186a41106a4200370300200341a0186a41086a4200370300200342003703a0180b20034188096a200341a0186a10970221010c010b20032802d81020032802dc104105746a41346a21010b202c201020141b211b200341a0056a41186a2202200141186a2204290000370300200341a0056a41106a2207200141106a2205290000370300200341a0056a41086a2213200141086a222c290000370300200320012900003703a005202a2802042129201a202a41086a1063202741186a2002290300370000202741106a2007290300370000202741086a2013290300370000202720032903a005370000200320293602a018200341d0106a200341a0186a10662004200341d0106a41186a2903003700002005200341d0106a41106a290300370000202c200341d0106a41086a290300370000200120032903d01037000041002101200c212a200c2019470d000c030b0b41aca1c200412041cca1c200102d000b41eaa0c2004130419ca1c200102d000b200341a0056a41186a22164200370300200341a0056a41106a22174200370300200341a0056a41086a22104200370300200342003703a005200341a8046a41e2a4c000410f10ab012010200341a8046a41086a2214290000370300200320032900a8043703a005200341a8046a4194e2c000411a10ab01200a41086a22192014290000370000200a20032900a804370000200341086a200341a0056a109002024002400240202d450d002006202d413c6c6a210c200341d0106a410472212c20032802b803211f0340200341d0106a200341d8036a20061096020240024020032802d0104101460d0020034188096a41106a202c41106a28020036020020034188096a41086a202c41086a2902003703002003202c2902003703880902400240201e450d0020062802002105201e212a201f21270340202a41046a2102202a2f01322229410574211341002101417f210702400340024020132001470d00202921070c020b20022802002104200741016a2107200141206a2101200241046a2102417f2004200547200420054b1b22044101460d000b0240200441016a0e020100010b202a20016a220141146a29000021082001411c6a2900002109200141246a2900002115200341a0186a41186a2001412c6a290000370300200341a0186a41106a2015370300200341a0186a41086a2009370300200320083703a0180c030b2027450d012027417f6a2127202a20074102746a4194036a280200212a0c000b0b200341a0186a41186a4200370300200341a0186a41106a4200370300200341a0186a41086a4200370300200342003703a0180b20034188096a200341a0186a10970221010c010b20032802d81020032802dc104105746a41346a21010b200341d0106a41086a200141086a290000370300200341d0106a41106a200141106a290000370300200341d0106a41186a200141186a290000370300200320012900003703d0100240024020062d00184101460d00200341a0186a41186a4200370300200341a0186a41106a4200370300200341a0186a41086a4200370300200342003703a0180c010b200341a0186a41186a200641316a290000370300200341a0186a41106a200641296a290000370300200341a0186a41086a200641216a290000370300200320062900193703a0180b200341d0106a200341a0186a41201088050d022006413c6a2206200c470d000b0b20032802dc03210520032802d803211320032802e003212a201642003703002017420037030020104200370300200342003703a005200341a8046a41e2a4c000410f10ab0120102014290000370300200320032900a8043703a005200341a8046a4184dec000411010ab0120192014290000370000200a20032900a804370000202a41246c41046a2201417f4c0d090240024020010d00410121020c010b2001102f2202450d040b20034100360290092003200136028c09200320023602880920034188096a202a10a501024020050d004100210141002102410021040c020b200521022013210420052101034020022f01322107024020040d00202a21040c030b2004417f6a2104200220074102746a4194036a280200210220012802940321010c000b0b41b4bbc000412941e0bbc000102d000b200341b4186a2007360200200341b0186a2002360200200342003703a818200320013602a418200341003602a01802402004450d00034020032004417f6a3602b818200341a0186a410020011b220628020021040240024020062802082207200628020422022f01324f0d00200221010c010b03400240200228020022010d00410021010c020b200441016a210420022f0130210720012102200720012f01324f0d000b0b024002402004450d00200741027420016a4198036a280200210202402004417f6a2204450d00034020022802940321022004417f6a22040d000b0b410021040c010b200741016a2104200121020b2006200236020420064100360200200620043602082003200120074102746a41046a2802002802003602d01020034188096a200341d0106a410410644120102f2202450d03200342203702d410200320023602d010200341d0106a200120074105746a41346a4120106420034188096a20032802d010220120032802d8101064024020032802d410450d00200110300b20032802b8182204450d0120032802a41821010c000b0b200341a0056a4120200328028809220120032802900941002802fcad421103000240200328028c09450d00200110300b02402005450d0002402013450d00034020052802940321052013417f6a22130d000b0b0240202a450d004100210203400240024002400240200220052f0132490d0041002102034041002101024020052802002206450d00200241016a210720052f01302104200621010b024041c40341940320021b450d00200510300b024020010d00410021050c050b2007210220012105200420012f01324f0d000b200120044105746a41346a2106200120044102746a220241046a2802002113024020070d00200121050c020b20024198036a280200210502402007417f6a2202450d00034020052802940321052002417f6a22020d000b0b410021020c020b200520024105746a41346a2106200520024102746a41046a280200211320022104200521010b200441016a21020b200320062f00003b018c052003200641026a2d00003a008e0520034188056a41026a200120044105746a2201413d6a2d00003a000020032001413b6a2f00003b01880520034184056a41026a200141c4006a2d00003a00002003200141c2006a2f00003b0184050b2013450d02202a417f6a222a0d000b0b41002101034020052802002102024041c40341940320011b450d00200510300b2001417f6a21012002210520020d000b0b200341b8056a4200370300200341b0056a4200370300200341a0056a41086a22014200370300200342003703a005200341a8046a41e2a4c000410f10ab012001200341a8046a41086a2202290000370300200320032900a8043703a005200341a8046a41e0dfc000410d10ab01200a41086a2002290000370000200a20032900a8043700002003201b3602a018200341a0056a4120200341a0186a410441002802fcad42110300200341b8036a10950202402020450d002028202041146c6a2104202821010340200141146a210202402001410c6a280200450d00200141086a28020010300b2002210120042002470d000b0b0240201c450d00201c41146c450d00202810300b02402003280284032201450d002001413c6c450d0020032802800310300b02402003280290032201450d002001413c6c450d00200328028c0310300b024020032802c402450d0020032802c00210300b200320032800e1013602c8012003200341e4016a2800003600cb01200041186a41013a0000200041106a202137030020004201370308200020032802c8013600192000411c6a20032800cb01360000200042003703000b20034180206a24000f0b102a000b024020032802fc02450d00200410300b41032102410021040c020b4101212e410121020c010b0b200341a0186a106c0b200341d0106a41086a2029360200200320273602d41020032004411074202e41ff0171410874722002723602d010200341b4186a4101360200200342013702a418200341a8bac0003602a0182003410a36028c09200320034188096a3602b0182003200341d0106a36028809200341a0186a41b0bac000103a000b102c000bb60d010c7f230041e0086b22012400200141a0086a2202420037030020014198086a2203420037030020014188086a41086a220442003703002001420037038808200141a8086a41dca4c000410610ab012004200141a8086a41086a2205290000370300200120012900a80837038808200141a8086a41acc0c100410610ab0120022005290000370300200320012900a808370300200141086a20014188086a4120108502024002402001280208450d00200128020c450d00200141a0086a2206420037030020014198086a2207420037030020014188086a41086a220242003703002001420037038808200141a8086a41dca4c000410610ab012002200141a8086a41086a2204290000370300200120012900a80837038808200141a8086a418cc4c100410e10ab01200341086a22082004290000370000200320012900a808370000200141203602bc08200120014188086a3602b808200141d0086a20014188086a412041002802d4ad421104000240024020012802d00822090d00410321050c010b20012802d408210a024002400240200141d0086a41086a280200220b450d00410121050240024020092d00000e03000401020b200b417f6a4104490d012009280001210c410021050c030b410221050c010b200142003702ac08200141002802dc94423602a808200141093602c4082001200141b8086a3602c0082001200141a8086a3602cc08200141246a410136020020014201370214200141a0e6c1003602102001200141c0086a360220200141cc086a41d0adc000200141106a10321a20012802a80820012802b00810ad01024020012802ac08450d0020012802a80810300b410321050b0b200a450d00200910300b200141106a200041e0071085051a200141fc076a4200370200200141f4076a200c36020020014102200520054103461b3602f007200141013602f8072006420037030020074200370300200242003703002001420037038808200141a8086a41dca4c000410610ab0120022004290000370300200120012900a80837038808200141a8086a41d0c1c100410a10ab0120082004290000370000200320012900a808370000200120014188086a41201085020240024002402001280204410020012802001b220041016a22042000490d00200141f8076a2105200141a0086a220c420037030020014198086a2206420037030020014188086a41086a220242003703002001420037038808200141a8086a41dca4c000410610ab012002200141a8086a41086a2200290000370300200120012900a80837038808200141a8086a41d0c1c100410a10ab01200341086a22072000290000370000200320012900a808370000200120043602a80820014188086a4120200141a8086a410441002802fcad42110300200c420037030020064200370300200242003703002001420037038808200141a8086a41dca4c000410610ab0120022000290000370300200120012900a80837038808200141a8086a418cc1c100410610ab0120072000290000370000200320012900a808370000200141003602d808200142013703d0080240024020012802f0070e03030001040b200141013a00a808200141d0086a200141a8086a410110640c030b200141023a00a808200141d0086a200141a8086a410110640c020b024020012802104102490d0020012d00184102470d0002400240200141286a2802000e020200010b200141386a280200410b470d01200141c0006a109c0120014188046a10a2010c010b200141306a280200410b470d00200141386a109c0120014180046a10a2010b20012802fc0741ffffff3f71450d0320012802f80710300c030b200141003a00a808200141d0086a200141a8086a41011064200120012802f4073602a808200141d0086a200141a8086a410410640b200141106a200141d0086a10d7012005200141d0086a10fc0341002802a4ad4221032000200141d0086a41086a280200360200200120012903d0083703a80820014188086a4120200141a8086a2003110400024020012802104102490d0020012d00184102470d0002400240200141286a2802000e020200010b200141386a280200410b470d01200141c0006a109c0120014188046a10a2010c010b200141306a280200410b470d00200141386a109c0120014180046a10a2010b20012802fc0741ffffff3f71450d0120012802f80710300c010b20002802004102490d0020002d00084102470d0002400240200041186a2802000e020200010b200041286a280200410b470d01200041306a109c01200041f8036a10a2010c010b200041206a280200410b470d00200041286a109c01200041f0036a10a2010b200141e0086a24000bb00401027f230041106b220224000240024002400240024002400240024020012d00000e06010402030500010b20004200370204200041002802dc9442360200200241003a00002000200241011064200141046a2802002001410c6a280200200010a6010c050b20004200370204200041002802dc9442360200200241023a000020002002410110644120102f2203450d0520024220370204200220033602002002200141016a41201064200020022802002201200228020810642002280204450d04200110300c040b20004200370204200041002802dc9442360200200241043a000020002002410110642000200141016a41041064200141086a280200200141106a280200200010a6010c030b20004200370204200041002802dc9442360200200241053a000020002002410110642000200141016a41041064200141086a280200200141106a280200200010a6010c020b20004200370204200041002802dc9442360200200241063a000020002002410110642000200141016a41041064200141086a280200200141106a280200200010a6010c010b20004200370204200041002802dc9442360200200241073a00002000200241011064200241003a000020002002410110640240200141046a2802004101460d00200241003a000020002002410110640c010b200241013a000020002002410110642002200141086a280200360200200020024104106420022001410c6a28020036020020002002410410640b200241106a24000f0b102a000be810010c7f230041d0086b22022400200241286a22034200370300200241206a22044200370300200241106a41086a2205420037030020024200370310200241f0006a41e2a4c000410f10ab012005200241f0006a41086a220629000037030020022002290070370310200241f0006a41ecd9c000411510ab01200320062900003703002004200229007037030041002107024002400240200241106a412041002802ccad42110100450d0020004183023b0100200041086a4113360200200041046a41f4b1c000360200200041026a41003a00000c010b20034200370300200442003703002005420037030020024200370310200241f0006a41e2a4c000410f10ab012005200629000037030020022002290070370310200241f0006a41acdac000410e10ab01200441086a200629000037000020042002290070370000200241203602342002200241106a360230200241386a200241106a412041002802d4ad4211040002400240200228023822050d000c010b200228023c21032002200241c0006a28020036024c20022005360248200241f0006a200241c8006a10f5010240024020022802702207450d00200241fc006a2802002108200228027421060c010b2002420037026441002107200241002802dc9442360260200241093602542002200241306a3602502002200241e0006a36025c20024184016a410136020020024201370274200241a0e6c1003602702002200241d0006a36028001200241dc006a41d0adc000200241f0006a10321a2002280260200228026810ad0102402002280264450d00200228026010300b0b2003450d00200510300b024002400240024002402007450d00200241f0006a10b00120022802704101470d010240200141086a280200220520022802744d0d0020004183023b0100200041086a4106360200200041046a41acb2c000360200200041026a41023a00000c050b20024194016a280200210920024190016a280200210a200241286a220b4200370300200241206a220c4200370300200241106a41086a2203420037030020024200370310200241f0006a41e2a4c000410f10ab012003200241f0006a41086a220d29000037030020022002290070370310200241f0006a41a0d9c000411c10ab01200441086a200d29000037000020042002290070370000200241086a200241106a4120108502024020022802084101460d00200b4200370300200c4200370300200241106a41086a2203420037030020024200370310200241f0006a41e2a4c000410f10ab012003200241f0006a41086a220d29000037030020022002290070370310200241f0006a4198dbc000410b10ab01200441086a220c200d290000370000200420022900703700002002200241106a4120108502410020082002280204410020022802001b6b220b200b20084b1b200a4d0d002001280200210a200241286a4200370300200241206a42003703002003420037030020024200370310200241f0006a41e2a4c000410f10ab012003200d29000037030020022002290070370310200241f0006a419cdfc000411110ab01200c200d29000037000020042002290070370000200541046a2203417f4c0d0302400240024002400240024020030d0020024100360278200242013703700c010b2003102f220d450d0920024100360278200220033602742002200d360270200541c000490d01200541808001490d022005418080808004490d030b200241033a0060200241f0006a200241e0006a4101106420022005360260200241f0006a200241e0006a410410640c030b200220054102743a0060200241f0006a200241e0006a410110640c020b200220054102744101723b0160200241f0006a200241e0006a410210640c010b20022005410274410272360260200241f0006a200241e0006a410410640b200820096a2108200241f0006a200a20051064200241106a412020022802702205200228027841002802fcad4211030002402002280274450d00200510300b200241286a220d4200370300200241206a220a4200370300200241106a41086a2205420037030020024200370310200241f0006a41e2a4c000410f10ab012005200241f0006a41086a220329000037030020022002290070370310200241f0006a41ecdac000411410ab01200441086a220b200329000037000020042002290070370000200241013a0060200241106a4120200241e0006a410141002802fcad42110300200d4200370300200a42003703002005420037030020024200370310200241f0006a41e2a4c000410f10ab012005200329000037030020022002290070370310200241f0006a41a0d9c000411c10ab01200b20032900003700002004200229007037000020022008360270200241106a4120200241f0006a410441002802fcad42110300200241e0006a41086a200141086a28020036020020022001290200370360200d4200370300200a42003703002005420037030020024200370310200241f0006a41e2a4c000410f10ab012005200329000037030020022002290070370310200241f0006a41ecd9c000411510ab01200b200329000037000020042002290070370000200241106a4120200241e0006a10980202402002280264450d00200228026010300b2002200836027c200241003a007820024201370370200241f0006a10e601200041083a00002006450d07200710300c070b20004183023b0100200041086a4114360200200041046a4190b2c000360200200041026a41013a00000c040b20004183023b0100200041086a411a360200200041046a41c4b2c000360200200041026a41033a00000c040b20004183023b0100200041086a411d360200200041046a41e8b2c000360200200041026a41043a00000c020b102c000b102a000b2006450d00200710300b200141046a280200450d00200128020010300b200241d0086a24000bb81904057f017e057f017e230041d0026b22022400024002400240200128020422030d00200041023602000c010b200128020022042d0000210520012003417f6a22063602042001200441016a360200024002400240024002400240024002400240024002400240024002400240024020050e0400010302030b2006450d0e20042d0001210520012003417e6a22063602042001200441026a36020002400240024002400240024002400240024002400240024020050e0a000102030405060708091a0b20064104490d192004280002210520012003417a6a3602042001200441066a3602002005418194ebdc034f0d19410121010c0a0b20022001109b0120022802000d182001280204220320022802042204490d182004417f4c0d1a0240024020040d00410121050c010b2004102f2205450d172005410020041087051a200128020421030b20032004490d172005200128020020041085051a200128020422032004490d0d2004ad220742208620078421072001200320046b3602042001200128020020046a360200410221010c080b20064108490d17200429000221072001200341766a36020420012004410a6a360200410321010c080b200241086a2001109b0120022802080d1620012802042203200228020c2204490d162004417f4c0d180240024020040d00410121050c010b2004102f2205450d152005410020041087051a200128020421030b20032004490d152005200128020020041085051a200128020422032004490d0f2004ad220742208620078421072001200320046b3602042001200128020020046a360200410421010c060b200241106a2001109b0120022802100d152001280204220320022802142204490d152004417f4c0d170240024020040d00410121050c010b2004102f2205450d142005410020041087051a200128020421030b20032004490d142005200128020020041085051a200128020422032004490d0f2004ad220742208620078421072001200320046b3602042001200128020020046a360200410521010c050b200241a0016a200110ea0120022802a00122054102460d1420022902a4012107410621010c040b200241286a2001109b0120022802280d13200228022c2208200128020441186e2204200420084b1bad42187e2207422088a70d152007a72204417f4c0d150240024020040d00410421050c010b2004102f2205450d120b200441186ead2107024002402008450d0002400340200241206a2001109b0102400240024020022802200d002001280204220320022802242204490d002004417f4c0d1c0240024020040d00410121060c010b2004102f2206450d192006410020041087051a200128020421030b024020032004490d002006200128020020041085052109200128020422032004490d112001200320046b3602042001200128020020046a360200200241186a2001109b01024020022802180d002001280204220a200228021c2203490d002003417f4c0d1e0240024020030d004101210b0c010b2003102f220b450d1b200b410020031087051a2001280204210a0b0240200a2003490d00200b20012802002003108505210a200128020422062003490d142001200620036b3602042001200128020020036a3602002007422088a722062007a7470d05200641016a220b20064f0d040c1f0b200b10300b2004450d010b200610300b02402007422088a72201450d00200141186c21042005210103400240200141046a280200450d00200128020010300b0240200141106a280200450d002001410c6a28020010300b200141186a2101200441686a22040d000b0b2007a72201450d19200141186c450d190c180b2006410174220c200b200b200c491b220b4104200b41044b1bad42187e220d422088a745410274210b200da7210c0240024020060d00200241003602a0010c010b200241043602a801200220053602a0012002200641186c3602a4010b200241d0006a200c200b200241a0016a10692002280258210b20022802504101460d0220022802542105200742808080807083200b41186ead8421070b2005200641186c6a2206200436020420062009360200200641106a2003ad220d422086200d843702002006410c6a200a360200200641086a200436020020074280808080107c21072008417f6a22080d000c030b0b200b450d170c130b2005450d140b410721010c030b200241a0016a200110eb0120022802a0012205450d1220022902a4012107410821010c020b200241306a2001109b0120022802300d112001280204220320022802342204490d112004417f4c0d130240024020040d00410121050c010b2004102f2205450d102005410020041087051a200128020421030b20032004490d102005200128020020041085051a200128020422032004490d0c2001200320046b22033602042001200128020020046a2206360200024020034104490d002004ad220742208620078421072006280000210420012003417c6a3602042001200641046a360200410921010c030b20040d100c110b200241386a2001109b0120022802380d1020012802042203200228023c2204490d102004417f4c0d120240024020040d00410121050c010b2004102f2205450d0f2005410020041087051a200128020421030b20032004490d0f2005200128020020041085051a200128020422032004490d0c2004ad220742208620078421072001200320046b3602042001200128020020046a360200410a21010b0b20004100360200200041186a2004360200200041106a20073702002000410c6a2005360200200041086a20013602000c0f0b02402006450d0020042d0001210520012003417e6a220a3602042001200441026a360200024002400240024002400240024020050e050001020304070b200a4104490d062004280002210520012003417a6a3602042001200441066a360200410121010c040b200241a0016a200110ec0120022802a0012205450d0520022902a4012107200241d0006a200241ac016a41cc001085051a410221010c030b200241c0006a2001109b0120022802400d042001280204220320022802442204490d042004417f4c0d140240024020040d00410121050c010b2004102f2205450d112005410020041087051a200128020421030b20032004490d032005200128020020041085051a200128020422032004490d0a2004ad220742208620078421072001200320046b3602042001200128020020046a360200410321010c020b2003417d6a2105200241a0016a410472210b410021030340200a2003460d04200420036a220641026a2d00002108200120053602042001200641036a360200200b20036a20083a00002002200341016a22063602a0012005417f6a21052006210320064120470d000b20024190026a41106a200241bc016a2d00003a000020024190026a41086a200241b4016a2902003703002002200241ac016a22012902003703900220022902a401210d200241cb026a200241a0016a410f6a280000360000200241a8026a41086a220420024190026a410f6a2f00003b01002002200d3703c002200220012802003602c80220022002290097023703a802200241b5026a200241c0016a2800003600002002200241bd016a2800003601b2022002419e016a20022d00c2023a00002002200d3d019c0120022900c7022107200241f8016a41086a22012004290300370300200241f8016a41106a2204200241a8026a41106a2d00003a0000200220022903a8023703f801200241d0006a41106a20042d00003a0000200241d0006a41086a2001290300370300200220022903f801370350200d421888a72105410421010c010b200241c8006a2001109b0120022802480d0220012802042203200228024c2204490d022004417f4c0d120240024020040d00410121050c010b2004102f2205450d0f2005410020041087051a200128020421030b20032004490d012005200128020020041085051a200128020422032004490d0d2004ad220742208620078421072001200320046b3602042001200128020020046a360200410521010b200020013a0004200020022f019c013b00052000410c6a2007370200200041086a2005360200200041076a2002419e016a2d00003a0000200041146a200241d0006a41cc001085051a200041013602000c100b200510300b200041023602000c0e0b02402006450d0020012003417e6a3602042001200441026a3602000b200041023602000c0d0b200041023602000c0c0b2004200341f0f5c100104a000b2004200341f0f5c100104a000b2003200641f0f5c100104a000b2004200341f0f5c100104a000b2004200341f0f5c100104a000b2004200341f0f5c100104a000b2004200341f0f5c100104a000b2004200341f0f5c100104a000b2004200341f0f5c100104a000b102a000b200510300b200041023602000b200241d0026a24000f0b102c000bc70101047f024002400240024020012802042202450d00200128020022032d0000210420012002417f6a22053602042001200341016a36020020040e020203010b200041023602000f0b200041023602000f0b200041003602000f0b0240024020054104490d002003280001210520012002417b6a22043602042001200341056a360200200441034b0d010b200041023602000f0b2000200536020420004101360200200328000521042001200241776a3602042001200341096a360200200041086a20043602000b8b0503037f017e077f230041306b22022400200241086a2001109b01024002402002280208450d00200041003602000c010b02400240200228020c22032001280204410c6e2204200420034b1bad420c7e2205422088a70d002005a72204417f4c0d00024002400240024020040d00410421060c010b2004102f2206450d010b2004410c6e2107024020030d00410021030c040b41002108410021094100210a0240034020022001109b0120022802000d012001280204220b20022802042204490d012004417f4c0d040240024020040d004101210c0c010b2004102f220c450d03200c410020041087051a2001280204210b0b0240200b2004490d00200c20012802002004108505210c2001280204220b2004490d042001200b20046b3602042001200128020020046a3602000240200a2007470d002008200a41016a220b2008200b4b1b220b4104200b41044b1bad420c7e2205422088a745410274210b2005a7210702400240200a0d00200241003602200c010b2002410436022820022009360224200220063602200b200241106a2007200b200241206a10692002280218210b024020022802104101470d00200b0d050c070b20022802142106200b410c6e21070b200620096a220b200c360200200b41046a2004ad2205422086200584370200200841026a21082009410c6a21092003200a41016a220a460d060c010b0b200c10300b200041003602000240200a450d002006210403400240200441046a280200450d00200428020010300b2004410c6a2104200941746a22090d000b0b2007450d042007410c6c450d04200610300c040b102a000b2004200b41f0f5c100104a000b102c000b2000200736020420002006360200200041086a20033602000b200241306a24000bda1105107f017e037f017e017f230041d0016b22022400200241e8006a200110f50102400240024002400240024020022802682203450d00200241386a41086a200241e8006a41106a290300370300200241386a41106a200241e8006a41186a290300370300200241386a41186a200241e8006a41206a290300370300200241386a41206a200241e8006a41286a290300370300200241386a41286a20024198016a2802003602002002200241e8006a41086a2204290300370338200228026c2105200241e8006a200110eb01200228026822060d01200041003602000c020b200041003602000c020b20042802002107200228026c2108200241206a2001109b0102400240024002400240024020022802200d00410421092002280224220a200128020441047622042004200a4b1b220b4104742204417f4c0d090240200b450d002004102f2209450d090b02400240200a450d004100210c4100210d4100210e02400340200128020422044104490d012001280200220f280000211020012004417c6a3602042001200f41046a360200200241186a2001109b0120022802180d012001280204220f200228021c2204490d012004417f4c0d0d0240024020040d00410121110c010b2004102f2211450d0d2011410020041087051a2001280204210f0b0240200f2004490d0020112001280200200410850521112001280204220f2004490d062001200f20046b3602042001200128020020046a3602000240200e200b470d00200c200e41016a220f200c200f4b1b220f4104200f41044b1b220f41ffffffff0071200f46410274210b200f410474210f02400240200e0d00200241003602680c010b200241043602702002200d36026c200220093602680b200241c0016a200f200b200241e8006a106920022802c801210f024020022802c0014101470d00200f0d0f0c100b20022802c4012109200f410476210b0b2009200d6a220f2010360200200f41086a2004ad2212422086201284370200200f41046a2011360200200c41026a210c200d41106a210d200a200e41016a220e470d010c040b0b201110300b0240200e450d00200941086a2101034002402001280200450d002001417c6a28020010300b200141106a2101200d41706a220d0d000b0b200b41ffffffff0071450d02200910300c020b2009450d014100210a0b200241106a2001109b0120022802100d0420022802142113200242003702b40102402013450d00410021140340200128020422044104490d052001280200220d280000211520012004417c6a3602042001200d41046a360200200241086a2001109b0120022802080d05200228020c220e200128020441047622042004200e4b1b2204410474220d417f4c0d0b0240024020040d004104210f0c010b200d102f220f450d0b0b2004ad211202400240200e450d00024002400340200128020422044104490d022001280200220d280000211120012004417c6a3602042001200d41046a36020020022001109b0120022802000d022001280204220d20022802042204490d022004417f4c0d100240024020040d004101210c0c010b2004102f220c450d10200c410020041087051a2001280204210d0b200d2004490d01200c20012802002004108505210c2001280204220d2004490d092001200d20046b3602042001200128020020046a3602000240024020124220882216a7220d2012a7470d00200d41016a2210200d490d12200d4101742217201020102017491b22104104201041044b1b221041ffffffff007120104641027421172010410474211002400240200d0d00200241003602680c010b200241043602702002200f360268200220164204863e026c0b200241c0016a20102017200241e8006a106920022802c801211020022802c0014101460d0120022802c401210f2012428080808070832010410476ad8421120b200f200d4104746a220d200c360204200d2011360200200d41086a2004ad221642208620168437020020124280808080107c2112200e417f6a220e0d010c050b0b2010450d0f0c0e0b200c10300b02402012422088a72201450d0020014104742104200f41086a2101034002402001280200450d002001417c6a28020010300b200141106a2101200441706a22040d000b0b201242ffffffff0083500d07200f10300c070b200f450d060b201441016a21142002201237026c2002200f360268200241c0016a200241b0016a2015200241e8006a10af02024020022802c001220e450d00024020022802c8012204450d002004410474210d200e41086a2104034002402004280200450d002004417c6a28020010300b200441106a2104200d41706a220d0d000b0b20022802c40141ffffffff0071450d00200e10300b20142013470d000b0b200241286a41086a2201200241b0016a41086a280200360200200220022903b001370328200041306a200241386a41286a280200360200200041286a200241386a41206a290300370200200041206a200241386a41186a290300370200200041186a200241386a41106a290300370200200041106a200241386a41086a290300370200200041086a2002290338370200200041c8006a200a360200200041c4006a200b360200200041c0006a20093602002000413c6a2007360200200041386a2008360200200041346a20063602002000200536020420002003360200200041cc006a2002290328370200200041d4006a20012802003602000c070b200041003602000c040b2004200f41f0f5c100104a000b2004200d41f0f5c100104a000b200241e8006a41086a200241b0016a41086a280200360200200220022903b001370368200241e8006a10e3010b41002101200041003602000240200a450d00200a410474210d03400240200920016a220441086a280200450d00200441046a28020010300b200d200141106a2201470d000b0b200b41ffffffff0071450d00200910300b02402007450d002007410c6c21042006210103400240200141046a280200450d00200128020010300b2001410c6a2101200441746a22040d000b0b2008450d002008410c6c450d00200610300b2005450d00200310300b200241d0016a24000f0b102a000b102c000bfb0201037f230041206b22022400200241003602082002420137030002404120102f2203450d002002422037021420022003360210200241106a200141106a412010642002200228021022032002280218106402402002280214450d00200310300b2001200210ee014120102f2203450d002002422037021420022003360210200241106a200141306a412010642002200228021022032002280218106402402002280214450d00200310300b4120102f2203450d002002422037021420022003360210200241106a200141d0006a412010642002200228021022032002280218106402402002280214450d00200310300b2001280204210320022001410c6a280200220110a5010240200141246c2201450d000340200241106a200310e7012002200228021022042002280218106402402002280214450d00200410300b200341246a21032001415c6a22010d000b0b2000200228020022032002280208106502402002280204450d00200310300b200241206a24000f0b102a000bb30101027f230041106b2202240002400240024002402000280200220341c000490d00200341808001490d012003418080808004490d02200241033a00032001200241036a41011064200220002802003602042001200241046a410410640c030b200220034102743a00032001200241036a410110640c020b200220034102744101723b010a20012002410a6a410210640c010b2002200341027441027236020c20012002410c6a410410640b200241106a24000b930201017f230041106b22022400200220002903003703082001200241086a410810640240024020002903084201510d00200241003a00082001200241086a410110640c010b200241013a00082001200241086a410110642002200041106a2903003703082001200241086a410810640b0240024020002903184201510d00200241003a00082001200241086a410110640c010b200241013a00082001200241086a410110642002200041206a2903003703082001200241086a410810640b0240024020002903284201510d00200241003a00082001200241086a410110640c010b200241013a00082001200241086a410110642002200041306a2903003703082001200241086a410810640b200241106a24000bce33050d7f017e067f017e047f23004190076b22022400200241146a10af01360200200241013a001020024201370308024002400240024002400240024002400240024020012802000e09010203040506070800010b200241d0036a200141086a10f10120024188046a200141c0006a10f101200241c0046a200141f8006a10f101200241f8046a200141b0016a10f101200241b0056a200141e8016a10f101200241e8056a200141a0026a10f101200241a0066a200141d8026a10f101200241d8066a20014190036a10f101200041386a200241d0036a41306a290300370300200041306a200241d0036a41286a290300370300200041286a200241d0036a41206a290300370300200041206a200241d0036a41186a290300370300200041186a200241d0036a41106a290300370300200041106a200241d0036a41086a290300370300200020022903d003370308200041c0006a200229038804370300200041c8006a20024188046a41086a290300370300200041d0006a20024188046a41106a290300370300200041d8006a20024188046a41186a290300370300200041e0006a20024188046a41206a290300370300200041e8006a20024188046a41286a290300370300200041f0006a20024188046a41306a290300370300200041a8016a200241c0046a41306a290300370300200041a0016a200241c0046a41286a29030037030020004198016a200241c0046a41206a29030037030020004190016a200241c0046a41186a29030037030020004188016a200241c0046a41106a29030037030020004180016a200241c0046a41086a290300370300200041f8006a20022903c004370300200041e0016a200241f8046a41306a290300370300200041d8016a200241f8046a41286a290300370300200041d0016a200241f8046a41206a290300370300200041c8016a200241f8046a41186a290300370300200041c0016a200241f8046a41106a290300370300200041b8016a200241f8046a41086a290300370300200041b0016a20022903f80437030020004198026a200241b0056a41306a29030037030020004190026a200241b0056a41286a29030037030020004188026a200241b0056a41206a29030037030020004180026a200241b0056a41186a290300370300200041f8016a200241b0056a41106a290300370300200041f0016a200241b0056a41086a290300370300200041e8016a20022903b005370300200041d0026a200241e8056a41306a290300370300200041c8026a200241e8056a41286a290300370300200041c0026a200241e8056a41206a290300370300200041b8026a200241e8056a41186a290300370300200041b0026a200241e8056a41106a290300370300200041a8026a200241e8056a41086a290300370300200041a0026a20022903e80537030020004188036a200241a0066a41306a29030037030020004180036a200241a0066a41286a290300370300200041f8026a200241a0066a41206a290300370300200041f0026a200241a0066a41186a290300370300200041e8026a200241a0066a41106a290300370300200041e0026a200241a0066a41086a290300370300200041d8026a20022903a006370300200041c0036a200241d8066a41306a290300370300200041b8036a200241d8066a41286a290300370300200041b0036a200241d8066a41206a290300370300200041a8036a200241d8066a41186a290300370300200041a0036a200241d8066a41106a29030037030020004198036a200241d8066a41086a29030037030020004190036a20022903d806370300200042083703000c080b200042003703000c070b200241d8066a200141086a10f10120004201370300200041386a200241d8066a41306a290300370300200041306a200241d8066a41286a290300370300200041286a200241d8066a41206a290300370300200041206a200241d8066a41186a290300370300200041186a200241d8066a41106a290300370300200041106a200241d8066a41086a290300370300200020022903d8063703080c060b200241a0066a200141086a10f101200241d8066a200141c0006a10f101200041386a200241a0066a41306a290300370300200041306a200241a0066a41286a290300370300200041286a200241a0066a41206a290300370300200041206a200241a0066a41186a290300370300200041186a200241a0066a41106a290300370300200041106a200241a0066a41086a290300370300200020022903a006370308200041c0006a20022903d806370300200041c8006a200241d8066a41086a290300370300200041d0006a200241d8066a41106a290300370300200041d8006a200241d8066a41186a290300370300200041e0006a200241d8066a41206a290300370300200041e8006a200241d8066a41286a290300370300200041f0006a200241d8066a41306a290300370300200042023703000c050b200241e8056a200141086a10f101200241a0066a200141c0006a10f101200241d8066a200141f8006a10f101200041386a200241e8056a41306a290300370300200041306a200241e8056a41286a290300370300200041286a200241e8056a41206a290300370300200041206a200241e8056a41186a290300370300200041186a200241e8056a41106a290300370300200041106a200241e8056a41086a290300370300200020022903e805370308200041c0006a20022903a006370300200041c8006a200241a0066a41086a290300370300200041d0006a200241a0066a41106a290300370300200041d8006a200241a0066a41186a290300370300200041e0006a200241a0066a41206a290300370300200041e8006a200241a0066a41286a290300370300200041f0006a200241a0066a41306a29030037030020004203370300200041a8016a200241d8066a41306a290300370300200041a0016a200241d8066a41286a29030037030020004198016a200241d8066a41206a29030037030020004190016a200241d8066a41186a29030037030020004188016a200241d8066a41106a29030037030020004180016a200241d8066a41086a290300370300200041f8006a20022903d8063703000c040b200241b0056a200141086a10f101200241e8056a200141c0006a10f101200241a0066a200141f8006a10f101200241d8066a200141b0016a10f101200041386a200241b0056a41306a290300370300200041306a200241b0056a41286a290300370300200041286a200241b0056a41206a290300370300200041206a200241b0056a41186a290300370300200041186a200241b0056a41106a290300370300200041106a200241b0056a41086a290300370300200020022903b005370308200041c0006a20022903e805370300200041c8006a200241e8056a41086a290300370300200041d0006a200241e8056a41106a290300370300200041d8006a200241e8056a41186a290300370300200041e0006a200241e8056a41206a290300370300200041e8006a200241e8056a41286a290300370300200041f0006a200241e8056a41306a290300370300200041a8016a200241a0066a41306a290300370300200041a0016a200241a0066a41286a29030037030020004198016a200241a0066a41206a29030037030020004190016a200241a0066a41186a29030037030020004188016a200241a0066a41106a29030037030020004180016a200241a0066a41086a290300370300200041f8006a20022903a006370300200041e0016a200241d8066a41306a290300370300200041d8016a200241d8066a41286a290300370300200041d0016a200241d8066a41206a290300370300200041c8016a200241d8066a41186a290300370300200041c0016a200241d8066a41106a290300370300200041b8016a200241d8066a41086a290300370300200041b0016a20022903d806370300200042043703000c030b200241f8046a200141086a10f101200241b0056a200141c0006a10f101200241e8056a200141f8006a10f101200241a0066a200141b0016a10f101200241d8066a200141e8016a10f101200041386a200241f8046a41306a290300370300200041306a200241f8046a41286a290300370300200041286a200241f8046a41206a290300370300200041206a200241f8046a41186a290300370300200041186a200241f8046a41106a290300370300200041106a200241f8046a41086a290300370300200020022903f804370308200041c0006a20022903b005370300200041c8006a200241b0056a41086a290300370300200041d0006a200241b0056a41106a290300370300200041d8006a200241b0056a41186a290300370300200041e0006a200241b0056a41206a290300370300200041e8006a200241b0056a41286a290300370300200041f0006a200241b0056a41306a290300370300200041a8016a200241e8056a41306a290300370300200041a0016a200241e8056a41286a29030037030020004198016a200241e8056a41206a29030037030020004190016a200241e8056a41186a29030037030020004188016a200241e8056a41106a29030037030020004180016a200241e8056a41086a290300370300200041f8006a20022903e805370300200041e0016a200241a0066a41306a290300370300200041d8016a200241a0066a41286a290300370300200041d0016a200241a0066a41206a290300370300200041c8016a200241a0066a41186a290300370300200041c0016a200241a0066a41106a290300370300200041b8016a200241a0066a41086a290300370300200041b0016a20022903a00637030020004198026a200241d8066a41306a29030037030020004190026a200241d8066a41286a29030037030020004188026a200241d8066a41206a29030037030020004180026a200241d8066a41186a290300370300200041f8016a200241d8066a41106a290300370300200041f0016a200241d8066a41086a290300370300200041e8016a20022903d806370300200042053703000c020b200241c0046a200141086a10f101200241f8046a200141c0006a10f101200241b0056a200141f8006a10f101200241e8056a200141b0016a10f101200241a0066a200141e8016a10f101200241d8066a200141a0026a10f101200041386a200241c0046a41306a290300370300200041306a200241c0046a41286a290300370300200041286a200241c0046a41206a290300370300200041206a200241c0046a41186a290300370300200041186a200241c0046a41106a290300370300200041106a200241c0046a41086a290300370300200020022903c004370308200041c0006a20022903f804370300200041c8006a200241f8046a41086a290300370300200041d0006a200241f8046a41106a290300370300200041d8006a200241f8046a41186a290300370300200041e0006a200241f8046a41206a290300370300200041e8006a200241f8046a41286a290300370300200041f0006a200241f8046a41306a290300370300200041a8016a200241b0056a41306a290300370300200041a0016a200241b0056a41286a29030037030020004198016a200241b0056a41206a29030037030020004190016a200241b0056a41186a29030037030020004188016a200241b0056a41106a29030037030020004180016a200241b0056a41086a290300370300200041f8006a20022903b005370300200041e0016a200241e8056a41306a290300370300200041d8016a200241e8056a41286a290300370300200041d0016a200241e8056a41206a290300370300200041c8016a200241e8056a41186a290300370300200041c0016a200241e8056a41106a290300370300200041b8016a200241e8056a41086a290300370300200041b0016a20022903e80537030020004198026a200241a0066a41306a29030037030020004190026a200241a0066a41286a29030037030020004188026a200241a0066a41206a29030037030020004180026a200241a0066a41186a290300370300200041f8016a200241a0066a41106a290300370300200041f0016a200241a0066a41086a290300370300200041e8016a20022903a006370300200041d0026a200241d8066a41306a290300370300200041c8026a200241d8066a41286a290300370300200041c0026a200241d8066a41206a290300370300200041b8026a200241d8066a41186a290300370300200041b0026a200241d8066a41106a290300370300200041a8026a200241d8066a41086a290300370300200041a0026a20022903d806370300200042063703000c010b20024188046a200141086a10f101200241c0046a200141c0006a10f101200241f8046a200141f8006a10f101200241b0056a200141b0016a10f101200241e8056a200141e8016a10f101200241a0066a200141a0026a10f101200241d8066a200141d8026a10f101200041386a20024188046a41306a290300370300200041306a20024188046a41286a290300370300200041286a20024188046a41206a290300370300200041206a20024188046a41186a290300370300200041186a20024188046a41106a290300370300200041106a20024188046a41086a2903003703002000200229038804370308200041c0006a20022903c004370300200041c8006a200241c0046a41086a290300370300200041d0006a200241c0046a41106a290300370300200041d8006a200241c0046a41186a290300370300200041e0006a200241c0046a41206a290300370300200041e8006a200241c0046a41286a290300370300200041f0006a200241c0046a41306a290300370300200041a8016a200241f8046a41306a290300370300200041a0016a200241f8046a41286a29030037030020004198016a200241f8046a41206a29030037030020004190016a200241f8046a41186a29030037030020004188016a200241f8046a41106a29030037030020004180016a200241f8046a41086a290300370300200041f8006a20022903f804370300200041e0016a200241b0056a41306a290300370300200041d8016a200241b0056a41286a290300370300200041d0016a200241b0056a41206a290300370300200041c8016a200241b0056a41186a290300370300200041c0016a200241b0056a41106a290300370300200041b8016a200241b0056a41086a290300370300200041b0016a20022903b00537030020004198026a200241e8056a41306a29030037030020004190026a200241e8056a41286a29030037030020004188026a200241e8056a41206a29030037030020004180026a200241e8056a41186a290300370300200041f8016a200241e8056a41106a290300370300200041f0016a200241e8056a41086a290300370300200041e8016a20022903e805370300200041d0026a200241a0066a41306a290300370300200041c8026a200241a0066a41286a290300370300200041c0026a200241a0066a41206a290300370300200041b8026a200241a0066a41186a290300370300200041b0026a200241a0066a41106a290300370300200041a8026a200241a0066a41086a290300370300200041a0026a20022903a00637030020004188036a200241d8066a41306a29030037030020004180036a200241d8066a41286a290300370300200041f8026a200241d8066a41206a290300370300200041f0026a200241d8066a41186a290300370300200041e8026a200241d8066a41106a290300370300200041e0026a200241d8066a41086a290300370300200041d8026a20022903d806370300200042073703000b4108210302400240024002400240024002400240024020012802000e09000102030405060708000b410021030c070b410121030c060b410221030c050b410321030c040b410421030c030b410521030c020b410621030c010b410721030b024002402003417f6a220420034b0d002001200410f2012203450d00200041086a2105200041c0006a2106200041f8006a2107200041b0016a2108200041e8016a2109200041a0026a210a200041d8026a210b20004190036a210c200241d8066a410172210d4100210e034041002104024020032d00000d00200241d8066a200241086a10f3014108210420022d00d8062203410a460d00200241a0066a41026a200d41026a2d00003a00002002200d2f00003b01a006200229038807210f2002280284072110200228028007211120022802fc06211220022802f806211320022802f406211420022802f006211520022903e806211620022802e406211720022802e006211820022802dc062119200321040b200241e8056a41026a221a200241a0066a41026a2d00003a0000200220022f01a0063b01e805024002400240024002400240024002400240200e0e0807000102030405060b0b200621032000280200417e6a41074f0d0a0c070b200721032000280200417d6a41064f0d090c060b200821032000280200417c6a41054f0d080c050b200921032000280200417b6a41044f0d070c040b200a21032000280200417a6a41034f0d060c030b200b2103200028020041796a41024f0d050c020b200c210320002903004208510d010c040b200521032000280200417f6a41084f0d030b200310f401200320043a0000200341306a200f3700002003412c6a2010360000200341286a2011360000200341246a2012360000200341206a20133600002003411c6a2014360000200341186a2015360000200341106a20163700002003410c6a201736000041082104200341086a2018360000200341046a2019360000200320022f01e8053b0001200341036a201a2d00003a000002400240024002400240024002400240024020012802000e09000102030405060708000b410021040c070b410121040c060b410221040c050b410321040c040b410421040c030b410521040c020b410621040c010b410721040b2004200e41026a22036b221a20044b0d012003417f6a210e2001201a10f20122030d000b0b200241086a109c0120024190076a24000f0b4188a9c000412f41b8a9c0001050000bf10801067f02400240024002400240024002400240024002400240024020012d00000e0a01020304050607080900010b4104210241062103024002400240024002400240024002400240200141046a2802000e0700010203040508000b410021030c050b200141106a2802002204417f4c0d10200141086a2802002105410121034101210602402004450d002004102f2206450d120b2006200520041085051a0c060b200141086a2802002106410221030c040b410321030c020b410421030c010b410521030b0b0b2001411c6a2802002105200141186a28020021070240024002400240024020012802140e050001020304000b410021020c030b410121020c020b410221020c010b410321020b200041093a00002000411c6a2005360200200041186a2007360200200041146a2002360200200041106a20043602002000410c6a2004360200200041086a2006360200200041046a20033602000f0b200041003a00000f0b200041013a0000200041046a200141046a2802003602000f0b4103210302400240024002400240200141246a2802000e0400010204000b410021030c020b200141306a2802002204417f4c0d09200141286a2802002102410121034101210602402004450d002004102f2206450d0b0b2006200220041085051a0c020b410221030b0b200041023a000020002001290001370001200041306a20043602002000412c6a2004360200200041286a2006360200200041246a2003360200200041196a200141196a290000370000200041116a200141116a290000370000200041096a200141096a2900003700000f0b4103210302400240024002400240200141046a2802000e0400010204000b410021030c020b200141106a2802002204417f4c0d08200141086a2802002102410121034101210602402004450d002004102f2206450d0a0b2006200220041085051a0c020b410221030b0b200041033a0000200041186a2001290318370300200041106a20043602002000410c6a2004360200200041086a2006360200200041046a20033602000f0b4103210302400240024002400240200141186a2802000e0400010204000b410021030c020b200141246a2802002204417f4c0d072001411c6a2802002102410121034101210602402004450d002004102f2206450d090b2006200220041085051a0c020b410221030b0b200041043a000020002001290001370001200041246a2004360200200041206a20043602002000411c6a2006360200200041186a2003360200200041116a200141116a280000360000200041096a200141096a2900003700000f0b200041053a0000200020012d00013a00010f0b200041063a0000200041106a200141106a290300370300200041086a200141086a2903003703000f0b2001410c6a2802002204417f4c0d01200141046a28020021010240024020040d00410121060c010b2004102f2206450d030b20062001200410850521012000410c6a2004360200200041086a2004360200200041046a2001360200200041073a00000f0b200041083a00000f0b102c000b102a000b8a0401017f410021020240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024020010e08000102030405062a2b0b2000280200417f6a0e08060708090a0b0c0d2a0b2000280200417e6a0e070d0e0f10111213290b2000280200417d6a0e06131415161718280b2000280200417c6a0e0518191a1b1c270b2000280200417b6a0e041c1d1e1f260b2000280200417a6a0e031f2021250b200028020041796a0e022122240b200041086a0f0b200041086a0f0b200041086a0f0b200041086a0f0b200041086a0f0b200041086a0f0b200041086a0f0b200041086a0f0b200041c0006a0f0b200041c0006a0f0b200041c0006a0f0b200041c0006a0f0b200041c0006a0f0b200041c0006a0f0b200041c0006a0f0b200041f8006a0f0b200041f8006a0f0b200041f8006a0f0b200041f8006a0f0b200041f8006a0f0b200041f8006a0f0b200041b0016a0f0b200041b0016a0f0b200041b0016a0f0b200041b0016a0f0b200041b0016a0f0b200041e8016a0f0b200041e8016a0f0b200041e8016a0f0b200041e8016a0f0b200041a0026a0f0b200041a0026a0f0b200041a0026a0f0b200041d8026a0f0b200041d8026a0f0b20002903004208520d0020004190036a21020b20020bf20d5b027f027e017f017e017f017e017f017e017f017e017f017e017f017e017f027e017f017e017f017e017f017e017f017e017f017e017f017e017f017e017f017e017f017e017f017e017f017e017f017e017f017e017f017e017f017e017f017e017f017e017f017e017f017e017f017e017f017e017f017e017f017e017f017e017f017e017f017e017f027e017f017e017f017e017f017e017f017e017f017e017f017e017f017e017f037e017f017e017f087e037f230022022103200241c0006b41607122022400200129030021044200210520014200370300200141386a22062903002107200141306a22082903002109200141286a220a290300210b200141206a220c290300210d200141d8006a220e290300210f200141d0006a22102903002111200141c8006a22122903002113200141c0006a2903002114200141f8006a22152903002116200141f0006a22172903002118200141e8006a2219290300211a200141e0006a221b290300211c20014198016a221d290300211e20014190016a221f290300212020014188016a2221290300212220014180016a22232903002124200141b8016a22252903002126200141b0016a22272903002128200141a8016a2229290300212a200141a0016a222b290300212c200141d8016a222d290300212e200141d0016a222f2903002130200141c8016a22312903002132200141c0016a22332903002134200141f8016a22352903002136200141f0016a22372903002138200141e8016a2239290300213a200141e0016a223b290300213c20014198026a223d290300213e20014190026a223f290300214020014188026a2241290300214220014180026a22432903002144200141b8026a22452903002146200141b0026a22472903002148200141a8026a2249290300214a200141a0026a290300214b200141d8026a224c290300214d200141d0026a224e290300214f200141c8026a22502903002151200141c0026a22522903002153200141f8026a22542903002155200141f0026a22562903002157200141e8026a22582903002159200141e0026a225a290300215b20014198036a290300215c20014190036a290300215d20014188036a225e290300215f20014180036a22602903002161200141b8036a2903002162200141b0036a2903002163200141a8036a2903002164200141a0036a2903002165200141c0036a290300216620012903082167200129031021682002200141186a22692903003703382002206837033020022067370328200220043703202067a7216a410a216b02400240024002400240024002400240024002402004a70e09090102030405060700090b200241176a2002290038370000200241106a200229003137030020022002290029370308420721050c070b200241176a2002290038370000200241106a2002290031370300200220022900293703080c060b200241176a2002290038370000200241106a200229003137030020022002290029370308420121050c050b200241176a2002290038370000200241106a200229003137030020022002290029370308420221050c040b200241176a2002290038370000200241106a200229003137030020022002290029370308420321050c030b200241176a2002290038370000200241106a200229003137030020022002290029370308420421050c020b200241176a2002290038370000200241106a200229003137030020022002290029370308420521050c010b200241176a2002290038370000200241106a200229003137030020022002290029370308420621050b206a216b0b2000206b3a000020002002290308370001200041206a200b370000200041186a200d370000200041286a2009370000200041096a200241106a290300370000200041106a200241176a290000370000200041306a20073700002001109c0120602062370300205420633703002056206437030020582065370300205a205c370300204c205d370300204e205f370300205020613703002052205537030020452057370300204720593703002049205b370300203d204f370300203f20513703002041205337030020432046370300203520483703002037204a3703002039204b370300203b203e370300202d2040370300202f20423703002031204437030020332036370300202520383703002027203a370300202b202e370300201d2030370300201f20323703002021203437030020232026370300201520283703002017202a3703002019202c370300201b201e370300200e20203703002010202237030020122024370300200620183703002008201a370300200a201c370300200c200f37030020692011370300200141106a201337030020012014370308205e20663703002001204d3703a0022029203c3703002001201637034020012005370300200324000bc8010002400240024002400240024020002d00000e09050500010205050305040b200041246a2802004101470d042000412c6a280200450d04200041286a28020010300f0b200041046a2802004101470d032000410c6a280200450d03200041086a28020010300f0b200041186a2802004101470d02200041206a280200450d022000411c6a28020010300f0b200041086a280200450d01200041046a28020010300c010b200041046a2802004101470d002000410c6a280200450d00200041086a28020010300f0b0ba406010f7f230041c0006b2202240020022001109b0102400240024002400240024002400240024020022802000d002001280204220320022802042204490d002004417f4c0d060240024020040d00410121050c010b2004102f2205450d082005410020041087051a200128020421030b024020032004490d002005200128020020041085052106200128020422032004490d092001200320046b22073602042001200128020020046a220836020020074104490d032008280000210920012007417c6a220a3602042001200841046a360200200241186a410472210b41002103417b21050340200a2003460d03200820036a220c41046a2d0000210d2001200720056a3602042001200c41056a360200200b20036a200d3a00002002200341016a220c3602182005417f6a2105200c2103200c4120470d000b200241106a41026a2203200241256a2d00003a00002002410c6a41026a2205200241186a41146a2d00003a0000200220022f011c3b0114200220022d001e3a00162002200241236a2f00003b011020022002412a6a2f01003b010c200241386a280200210d200241346a280200210a2002412d6a280000210b200241266a280100210e200228001f210f200241086a41026a2210200241336a2d00003a00002002200241316a2f00003b01082007200c6b2207417c6a4104490d04200020022f01103b001b2000200e36001e200020022f010c3b00222000200b360025200041146a20022f01143b0100200041166a20022d00163a0000200041176a200f3600002008200c6a220c41046a28000021082001200741786a3602042000411d6a20032d00003a0000200041246a20052d00003a00002001200c41086a360200200041306a200d3600002000412c6a200a3600002000412b6a20102d00003a0000200020022f01083b0029200041106a20083602002000410c6a2009360200200041086a200436020020002004360204200020063602000c060b200510300b200041003602000c040b200041003602000c020b200041003602000c010b200041003602000b2004450d00200610300b200241c0006a24000f0b102c000b102a000b2004200341f0f5c100104a000b8f0101027f230041106b2202240020002802002000280208200110a6012002200028020c360200200120024104106402404120102f2203450d0020024220370204200220033602002002200041146a412010642001200228020022032002280208106402402002280204450d00200310300b200220002802103602002001200241041064200241106a24000f0b102a000b1c0020012802184199f7c100410f2001411c6a28020028020c1100000bf80101017f230041106b22022400200028020021002002410036020c02400240024002402001418001490d002001418010490d012001418080044f0d0220022001413f71418001723a000e20022001410c7641e001723a000c20022001410676413f71418001723a000d410321010c030b200220013a000c410121010c020b20022001413f71418001723a000d2002200141067641c001723a000c410221010c010b20022001413f71418001723a000f2002200141127641f001723a000c20022001410676413f71418001723a000e20022001410c76413f71418001723a000d410421010b20002002410c6a20011064200241106a240041000b6301017f230041206b2202240020022000280200360204200241086a41106a200141106a290200370300200241086a41086a200141086a29020037030020022001290200370308200241046a41d0adc000200241086a10322101200241206a240020010bf50201017f23004190016b22042400024002400240024020002d00000e03000102000b200441206a41186a200341186a290000370300200441206a41106a200341106a290000370300200441206a41086a200341086a29000037030020042003290000370320200041016a20012002200441206a10fb0121000c020b200441206a41186a200341186a290000370300200441206a41106a200341106a290000370300200441206a41086a200341086a29000037030020042003290000370320200041016a20012002200441206a10fc0121000c010b2004200120021065200441206a200041016a200410fd014100210020042d00200d00200441c8006a41206a200441206a41216a2d00003a0000200441e0006a200441396a290000370300200441d8006a200441316a290000370300200441d0006a200441296a29000037030020042004290021370348200441f0006a200441c8006a41211065200441f0006a200341201088054521000b20044190016a240020000b150020002002ad4220862001ad84200310014101460b150020002002ad4220862001ad84200310044101460bc30a03017f017e0f7f230041306b2203240002402001200210032204422088a72202450d002002417f6a210502400240024002402004a722012d00000e020001040b200341003602082005450d0320012d0001210520034101360208200320053a000c20024102470d010c030b2005450d02410121064100210702400240024020012d00010e03040001050b41012107410121060c010b410221070b0c010b20012d0002210520034102360208200320053a000d20024103460d0120012d0003210520034103360208200320053a000e20024104460d0120034104360208200320012d00043a000f20024105460d01200341106a20012d00053a00002003410536020820024106460d01200341116a20012d00063a00002003410636020820024107460d01200341126a20012d00073a00002003410736020820024108460d01200341136a20012d00083a00002003410836020820024109460d01200341146a20012d00093a0000200341093602082002410a460d01200341156a20012d000a3a00002003410a3602082002410b460d01200341166a20012d000b3a00002003410b3602082002410c460d01200341176a20012d000c3a00002003410c3602082002410d460d01200341186a20012d000d3a00002003410d3602082002410e460d01200341196a20012d000e3a00002003410e3602082002410f460d012003411a6a20012d000f3a00002003410f36020820024110460d012003411b6a20012d00103a00002003411036020820024111460d012003411c6a20012d00113a00002003411136020820024112460d012003411d6a20012d00123a00002003411236020820024113460d012003411e6a20012d00133a00002003411336020820024114460d012003411f6a20012d00143a00002003411436020820024115460d01200341206a20012d00153a00002003411536020820024116460d01200341216a20012d00163a00002003411636020820024117460d01200341226a20012d00173a00002003411736020820024118460d01200341236a20012d00183a00002003411836020820024119460d01200341246a20012d00193a0000200341193602082002411a460d01200341256a20012d001a3a00002003411a3602082002411b460d01200341266a20012d001b3a00002003411b3602082002411c460d01200341276a20012d001c3a00002003411c3602082002411d460d01200341286a20012d001d3a00002003411d3602082002411e460d01200341296a20012d001e3a00002003411e3602082002411f460d012003412a6a20012d001f3a00002003411f36020820024120460d012003412b6a220520012d00203a00002003412036020820024121460d012003412c6a20012d00213a0000200341086a41216a2f00002108200341286a2d00002102200341246a2802002109200341226a2f0100210a200341216a2d0000210b2003411d6a280000210c2003411b6a2f0000210d2003411a6a2d0000210e200341166a280100210f200341146a2f01002110200341136a2d0000211120052f00002105200328000f211220032f000d211320032d000c2107410021060b200020073a0001200020063a0000200041206a20053b00002000411e6a20083b00002000411d6a20023a0000200041196a2009360000200041176a200a3b0000200041166a200b3a0000200041126a200c360000200041106a200d3b00002000410f6a200e3a00002000410b6a200f360000200041096a20103b0000200041086a20113a0000200041046a2012360000200041026a20133b000020011030200341306a24000f0b41e8fac100412e200341086a4198fbc10041a8fbc1001034000b9e14030c7f047e057f23004180026b22032400024002400240200128020c220441016a22052004490d00200520012802002206200641016a220741037641076c20064108491b22064101764b0d0141002106200141046a210841002105034002400240024020064101710d00200520074f0d010c020b200541036a22062005490d002006210520062007490d010b200141046a280200210502400240200128020041016a220641044f0d00200541046a200520061086051a0c010b200520066a20052800003600000b41002105024020012802002209417f460d002002280200210a200141046a210b200341e0016a41186a210c4100210603400240200b28020022052006220d6a2d0000418001470d004100200d6b210e0340200c200a290318200a29030885220f3703002003200a29031022103703e80120032010200a29030022118522123703f001200341b0016a200f2005200e41d0006c6a221341406a220541086a29000085420020122005290000854200108405200341a0016a200f201341b07f6a221441086a221529000085420020122014290000854200108405200320102010201142adfed5e4d485fda8d8007e200341b0016a41086a29030020032903b001857c42a0cbbf9599b5a19f0a7c85421789200341a0016a41086a29030020032903a001857c854217893703e001201341506a2216200341e0016a10ff01024002402013417c6a22052d00000d00200341f0006a20032903e001420042adfed5e4d485fda8d8004200108405200341f0006a41086a29030020032903708521100c010b20034190016a20032903e001420185420042adfed5e4d485fda8d800420010840520034180016a20034190016a41086a29030020032903900185200531000185420042adfed5e4d485fda8d800420010840520034180016a41086a2903002003290380018521100b200341e0006a20032903e801420020104200108405200b28020021172001280200210841002105200341e0006a41086a2903002003290360852010892210a7220421060340200541046a2205200620087122076a2106201720076a280000418081828478712202450d000b0240201720026841037620076a20087122056a2c00004100480d002017280200418081828478716841037621050b02402005200820047122066b200d20066b7320087141034b0d002017200d6a2010a741197622053a00002008200d417c6a7120176a41046a20053a00000c020b201720056a22062d0000210720062010a741197622023a00002005417c6a20087120176a41046a20023a00000240200741ff01470d00200b2802002206200d6a41ff013a000020062001280200200d417c6a716a41046a41ff013a0000200b280200410020056b41d0006c6a41b07f6a201441d0001085051a0c020b200b280200410020056b41d0006c6a220641b07f6a2205290200211020052014290200370200200541186a2207290200210f2007201441186a2208290200370200200541106a220729020021122007201441106a2217290200370200200541086a22052902002111200520152902003702002014201037020020152011370200201720123702002008200f370200200641506a220541186a220729020021102007201641186a2208290200370200200541106a2207290200210f2007201641106a2217290200370200200541086a220729020021122007201641086a2202290200370200200529020021112005201629020037020020162011370200200820103702002017200f37020020022012370200200641706a220541086a220729020021102007201341706a220641086a22082902003702002005290200210f200520062902003702002006200f37020020082010370200200b28020021050c000b0b200d41016a2106200d2009470d000b20012802002205200541016a41037641076c20054108491b21050b2000410036020020012005200128020c6b3602080c040b200828020020056a220620062802002206410776417f73418182840871200641fffefdfb07726a36020041012106200541016a21050c000b0b4192afc000411c41b0afc000102d000b024002400240024002402005200641016a2206200520064b1b22050d0041bcf5c1002108410021174100210e0c010b02400240200541074b0d004104410820054104491b21050c010b200541ffffffff01712005470d02417f200541037441076e417f6a677641016a21050b2005ad42d0007e2210422088a70d022010a72206200541046a22176a22082006490d022008102f2208450d03200820066a220841ff0120171087051a2005417f6a2217200541037641076c20174108491b210e0b200141046a280200221641046a2114201620076a21132016280200417f734180818284787121052002280200210a200341f8016a210d03400240024020050d0002400340201420134f0d01201641c07d6a211620142802002105201441046a220621142005418081828478712205418081828478460d000b2005418081828478732205417f6a2005712115200621140c020b2001200436020c200041003602002001200e20046b3602082001280200210520012017360200200141046a22062802002107200620083602002005450d062007200541016aad42d0007ea76b10300c060b2005417f6a20057121150b200d200a290318200a29030885220f3703002003200a29031022103703e80120032010200a29030022118522123703f001200341c0006a200f201641002005684103766b41d0006c6a220541406a220641086a29000085420020122006290000854200108405200341d0006a200f200541b07f6a220b41086a2900008542002012200b290000854200108405200320102010201142adfed5e4d485fda8d8007e200341c0006a41086a2903002003290340857c42a0cbbf9599b5a19f0a7c85421789200341d0006a41086a2903002003290350857c854217893703e001200541506a200341e0016a10ff01024002402005417c6a22052d00000d00200341106a20032903e001420042adfed5e4d485fda8d8004200108405200341106a41086a29030020032903108521100c010b200341306a20032903e001420185420042adfed5e4d485fda8d8004200108405200341206a200341306a41086a290300200329033085200531000185420042adfed5e4d485fda8d8004200108405200341206a41086a29030020032903208521100b200320032903e801420020104200108405200341086a2903002003290300852010892210a72105410021060340200641046a2206200520177122076a2105200820076a280000418081828478712202450d000b0240200820026841037620076a20177122056a2c00004100480d002008280200418081828478716841037621050b200820056a2010a741197622063a00002005417c6a20177120086a41046a20063a00002008410020056b41d0006c6a41b07f6a200b41d0001085051a201521050c000b0b4192afc000411c41b0afc000102d000b4192afc000411c41b0afc000102d000b102a000b20034180026a24000bfd0404027f027e017f027e230041f0006b2202240002400240200028020022034125490d002000410c6a2802002103200041086a28020021000c010b200041056a21000b200241e0006a20012903002003ad220485420042adfed5e4d485fda8d80042001084052001200241e8006a29030020022903608520047c42adfed5e4d485fda8d8007e2204370300024002400240024020034109490d00200341104d0d01200241106a200141186a2903002205200320006a41706a220641086a2900008542002001290310220720062900008542001084052004200241106a41086a2903002002290310857c20012903082208854217892104034020022005200041086a29000085420020072000290000854200108405200041106a21002004200241086a2903002002290300857c2008854217892104200341706a220341104b0d000b200120043703000c030b0240200341014b0d002003450d03200241d0006a2004200031000085420042adfed5e4d485fda8d80042001084052001200241d8006a2903002002290350853703000c030b200341034b0d01200241c0006a200320006a417f6a310000422086200033000084200485420042adfed5e4d485fda8d80042001084052001200241c8006a2903002002290340853703000c020b200241206a200141186a290300200320006a41786a2900008542002001290310200029000085420010840520012004200241286a2903002002290320857c2001290308854217893703000c010b200241306a200141186a290300200320006a417c6a3500008542002001290310200035000085420010840520012004200241386a2903002002290330857c2001290308854217893703000b200241f0006a24000bc010050a7f017e027f037e057f23004180016b22032400024002400240200128020c220441016a22052004490d00200520012802002206200641016a220741037641076c20064108491b22064101764b0d0141002106200141046a210841002105034002400240024020064101710d00200520074f0d010c020b200541036a22062005490d002006210520062007490d010b200141046a280200210502400240200128020041016a220641044f0d00200541046a200520061086051a0c010b200520066a20052800003600000b41002105024020012802002204417f460d0020022802002109200141046a210a4100210503400240200a28020022082005220b6a2d0000418001470d004100200b6b210c0340200341c0006a2009290318200929030885220d2008200c41306c6a41506a220e41186a220f2900008542002009290310221020092903002211852212200e290010854200108405200341d0006a200d200e41086a22132900008542002012200e290000854200108405200341306a2010420020102010201142adfed5e4d485fda8d8007e200341c0006a41086a2903002003290340857c42a0cbbf9599b5a19f0a7c85421789200341d0006a41086a2903002003290350857c85421789220d42001084052001280200211441002105200341306a41086a290300200329033085200d892210a7221521060340200541046a2205200620147122076a2106200820076a280000418081828478712202450d000b0240200820026841037620076a20147122056a2c00004100480d002008280200418081828478716841037621050b02402005201420157122066b200b20066b7320147141034b0d002008200b6a2010a741197622053a00002014200b417c6a7120086a41046a20053a00000c020b200820056a22062d0000210720062010a741197622023a00002005417c6a20147120086a41046a20023a00000240200741ff01470d00200a2802002206200b6a41ff013a000020062001280200200b417c6a716a41046a41ff013a0000200a280200410020056b41306c6a41506a2205200e290200370200200541086a2013290200370200200541106a200e41106a290200370200200541186a200f290200370200200541206a200e41206a290200370200200541286a200e41286a2902003702000c020b200a280200410020056b41306c6a41506a220529020021102005200e290200370200200541186a2206290200210d2006200f290200370200200541106a220629020021112006200e41106a2207290200370200200541086a22062902002112200620132902003702002013201237020020072011370200200f200d370200200e2010370200200541286a220629020021102006200e41286a22072902003702002005290220210d2005200e290220370220200e200d37022020072010370200200a28020021080c000b0b200b41016a2105200b2004470d000b20012802002205200541016a41037641076c20054108491b21050b2000410036020020012005200128020c6b3602080c040b200828020020056a220620062802002206410776417f73418182840871200641fffefdfb07726a36020041012106200541016a21050c000b0b4192afc000411c41b0afc000102d000b024002400240024002402005200641016a2206200520064b1b22050d0041bcf5c100210841002114410021160c010b02400240200541074b0d004104410820054104491b21050c010b200541ffffffff01712005470d02417f200541037441076e417f6a677641016a21050b2005ad42307e2210422088a70d022010a72206200541046a22146a22082006490d022008102f2208450d03200820066a220841ff0120141087051a2005417f6a2214200541037641076c20144108491b21160b200841506a2117200141046a280200220941046a210e200920076a21132009280200417f734180818284787121072002280200210a03400240024020070d0002400340200e20134f0d01200941c07e6a2109200e2802002105200e41046a2206210e2005418081828478712205418081828478460d000b2005418081828478732207417f6a20077121152006210e0c020b2001200436020c200041003602002001201620046b3602082001280200210520012014360200200141046a22062802002107200620083602002005450d062007200541016aad42307ea76b10300c060b2007417f6a20077121150b41002105200341106a200a290318200a29030885220d200941002007684103766b41306c6a41506a220f41186a220b290000854200200a2903102210200a2903002211852212200f290010854200108405200341206a200d200f41086a220c2900008542002012200f29000085420010840520032010420020102010201142adfed5e4d485fda8d8007e200341106a41086a2903002003290310857c42a0cbbf9599b5a19f0a7c85421789200341206a41086a2903002003290320857c85421789220d4200108405200341086a290300200329030085200d892210a721060340200541046a2205200620147122076a2106200820076a280000418081828478712202450d000b0240200820026841037620076a20147122056a2c00004100480d002008280200418081828478716841037621050b200820056a2010a741197622063a00002005417c6a20147120086a41046a20063a00002017410020056b41306c6a220541286a200f41286a290200370200200541206a200f41206a290200370200200541186a200b290200370200200541106a200f41106a290200370200200541086a200c2902003702002005200f290200370200201521070c000b0b4192afc000411c41b0afc000102d000b4192afc000411c41b0afc000102d000b102a000b20034180016a24000b8007010a7f230041a0016b2202240002400240024002400240024020012d00002203417e6a0e0403010100010b2001410c6a2802002104200141046a280200210520024180016a41186a2206420037030020024180016a41106a2201420037030020024180016a41086a22074200370300200242003703800120024180016a41e2a4c000410f10ab01200141fce2c000411110ab01200241d8006a20024180016a4120108202200241386a41086a2208200241e2006a290100370300200241386a41106a2209200241ea006a290100370300200241cf006a220a200241f1006a2900003700002002200229015a370338024020022d00584101470d0020022d0059210b200241186a41186a200a290000370000200241186a41116a2009290300370000200241216a2008290300370000200220022903383700192002200b3a001820024180016a200520041065200241d8006a41186a2006290300370300200241d8006a41106a2001290300370300200241d8006a41086a20072903003703002002200229038001370358200241d8006a200241186a4120108805450d020b20034102460d020b200041003b0001200041013a0000200041036a41003a00000c020b200241166a20022d005a3a0000200241086a200241ef006a290000370300200241106a200241f7006a2d00003a0000200220022f01583b01142002200229006737030020022d005b210420022d005c210520022d005d210620022d005e2107200228005f210820022800632109410c102f2203450d024120102f2201450d02200120022f01143b00002001200936000b20012008360007200120073a0006200120063a0005200120053a0004200120043a00032001200229030037000f200141026a200241146a41026a2d00003a0000200141176a200241086a2903003700002001411f6a200241106a2d00003a000020032001360200200342a08080808004370204200041086a42e400370300200041003a0000200041106a427f370300200041186a41002802e88f42360200200041246a2003360200200041306a41013a00002000411c6a4200370200200041286a4281808080103702000c010b200041003a0000200041286a4200370300200041246a41002802e88f4222013602002000411c6a4200370200200041186a2001360200200041086a4200370300200041306a41013a0000200041106a427f3703000b200241a0016a24000f0b102a000bda0a03037f017e017f230041e0006b220324002003200236020c20032001360208200341106a2001200241002802d4ad4211040002400240200328021022010d00200041003a00000c010b2003280214210402400240200341186a2802002202450d00200320012d00003a003c2003410136023820024101460d00200320012d00013a003d2003410236023820024102460d00200320012d00023a003e2003410336023820024103460d00200320012d00033a003f2003410436023820024104460d00200341c0006a20012d00043a00002003410536023820024105460d00200341c1006a20012d00053a00002003410636023820024106460d00200341c2006a20012d00063a00002003410736023820024107460d00200341c3006a20012d00073a00002003410836023820024108460d00200341c4006a20012d00083a00002003410936023820024109460d00200341c5006a20012d00093a00002003410a3602382002410a460d00200341c6006a20012d000a3a00002003410b3602382002410b460d00200341c7006a20012d000b3a00002003410c3602382002410c460d00200341c8006a20012d000c3a00002003410d3602382002410d460d00200341c9006a20012d000d3a00002003410e3602382002410e460d00200341ca006a20012d000e3a00002003410f3602382002410f460d00200341cb006a20012d000f3a00002003411036023820024110460d00200341cc006a20012d00103a00002003411136023820024111460d00200341cd006a20012d00113a00002003411236023820024112460d00200341ce006a20012d00123a00002003411336023820024113460d00200341cf006a20012d00133a00002003411436023820024114460d00200341d0006a20012d00143a00002003411536023820024115460d00200341d1006a20012d00153a00002003411636023820024116460d00200341d2006a20012d00163a00002003411736023820024117460d00200341d3006a20012d00173a00002003411836023820024118460d00200341d4006a20012d00183a00002003411936023820024119460d00200341d5006a20012d00193a00002003411a3602382002411a460d00200341d6006a20012d001a3a00002003411b3602382002411b460d00200341d7006a20012d001b3a00002003411c3602382002411c460d00200341d8006a20012d001c3a00002003411d3602382002411d460d00200341d9006a20012d001d3a00002003411e3602382002411e460d00200341da006a20012d001e3a00002003411f3602382002411f460d00200341db006a20012d001f3a0000200041086a200341386a410b6a2f00003b00002000410a6a200341c5006a2d00003a0000200041116a200341cc006a2d00003a00002000410f6a200341386a41126a2f01003b000020034120360238200320032f013c3b0120200320032d003e3a0022200341c6006a2801002102200341cd006a2800002105200341d4006a2902002106200328003f2107200041186a200341d3006a2d00003a0000200041166a200341386a41196a2f00003b0000200041036a20032d00223a0000200020032f01203b0001200041196a2006370000200041126a20053600002000410b6a2002360000200041046a2007360000410121020c010b2003420037022441002102200341002802dc9442360220200341093602342003200341086a3602302003200341206a36025c200341cc006a41013602002003420137023c200341a0e6c1003602382003200341306a360248200341dc006a41d0adc000200341386a10321a2003280220200328022810ad012003280224450d00200328022010300b200020023a00002004450d00200110300b200341e0006a24000b8a1105037f017e0e7f027e037f230041f0016b22022400200241286a2001109b010240024020022802280d000240024002400240024002400240200228022c2203200128020441246e2204200420034b1bad42247e2205422088a70d002005a72204417f4c0d000240024020040d00410421060c010b2004102f2206450d060b200441246ead21052003450d0320024180016a4104722107200241ce016a2108200241bf016a2109200241e4016a210a2002419d016a210b20024180016a41106a210c4100210d034020012802042204450d032001280200220e2d0000210f20012004417f6a22103602042001200e41016a36020002400240024002400240024002400240200f0e08000b010b030402050b0b200241086a2001109b0120022802080d0a2001280204220f200228020c2204490d0a2004417f4c0d080240024020040d004101210e0c010b2004102f220e450d0e200e410020041087051a2001280204210f0b200f2004490d09200e2001280200200410850521102001280204220f2004490d0e2001200f20046b3602042001200128020020046a36020020104108762111410521102004210f0c050b2004417e6a211241002104034020102004460d0a200e20046a221341016a2d0000210f200120123602042001201341026a360200200720046a200f3a00002002200441016a2213360280012012417f6a21122013210420134120470d000b2002200c2902003703b8012002200c41056a2900003700bd0120022802840121132002290388012114200a41036a200c41036a280000360000200a200c280200360200200241c8016a41046a200941046a2f00003b0100200841036a200b41036a2800003600002008200b280000360000200220143702dc01200220133602d801200220092800003602c80120022900e301211520022800db01210e2002200241c8016a41056a2900003700ad01200220022902c8013703a801200220022900ad01370075200220022903a80137037020022002290075370065200220022903703703602002200229006537005520022002290360370350200241c0006a41086a200241d0006a41086a29030037030020022002290350370340200e41087621112014421888a7210f2015422088a72112410021100c050b200110a8012215a74101710d08200241206a2001109b0120022802200d082001280204220420022802242212490d082012417f4c0d060240024020120d004101210f0c010b2012102f220f450d0c200f410020121087051a200128020421040b0240024020042012490d00200f200128020020121085051a2001280204220420124f0d012012200441f0f5c100104a000b200f10300c090b2001200420126b3602042001200128020020126a36020020154280808080f01f83422088a7210e20154280feffffff1f83420888a7211341012110201221040c030b200110a8012215a74101710d07200241106a2001109b0120022802100d072001280204220420022802142212490d072012417f4c0d050240024020120d004101210f0c010b2012102f220f450d0b200f410020121087051a200128020421040b0240024020042012490d00200f200128020020121085051a2001280204220420124f0d012012200441f0f5c100104a000b200f10300c080b2001200420126b3602042001200128020020126a36020020154280808080f01f83422088a7210e20154280feffffff1f83420888a7211341022110201221040c020b200110a8012215a74101710d06200241186a2001109b0120022802180d0620012802042204200228021c2212490d062012417f4c0d040240024020120d004101210f0c010b2012102f220f450d0a200f410020121087051a200128020421040b0240024020042012490d00200f200128020020121085051a2001280204220420124f0d012012200441f0f5c100104a000b200f10300c070b2001200420126b3602042001200128020020126a36020020154280808080f01f83422088a7210e20154280feffffff1f83420888a7211341032110201221040c010b2010450d05200e2d0001210f20012004417e6a3602042001200e41026a360200200f0d0520024180016a200110ea01200228028001220e4102460d052002280288012104200228028401210f41042110410021110b2011410874200e41ff017172210e2012ad4220862004ad8421150b200241306a41086a2216200241c0006a41086a29030037030020022002290340370330024002402005422088a722042005a7470d00200441016a22172004490d0320044101742218201720172018491b22174104201741044b1bad42247e2214422088a74541027421172014a721180240024020040d0020024100360280010c010b200241043602880120022006360280012002200441246c360284010b200241d8016a2018201720024180016a106920022802e001211720022802d8014101460d0120022802dc012106200542808080807083201741246ead8421050b2006200441246c6a2204201537000c2004200f3600082004200e360004200420133b0001200420103a0000200441036a20134110763a0000200420022903303700142004411c6a201629030037000020054280808080107c2105200d41016a220d2003470d010c060b0b20170d050b102c000b200e10300b02402005422088a72201450d00200141246c21042006210103400240024002400240024020012d00000e050400010204030b2001410c6a280200450d03200141086a28020010300c030b2001410c6a280200450d02200141086a28020010300c020b2001410c6a280200450d01200141086a28020010300c010b200141086a280200450d00200141046a28020010300b200141246a21012004415c6a22040d000b0b2005a72201450d04200141246c450d04200610300c040b2006450d030b20002005370204200020063602000c030b102a000b2004200f41f0f5c100104a000b200041003602000b200241f0016a24000b13002000410836020420004194b0c0003602000b900201037f230041d0006b22032400200320023602042003200136020041002104200341086a2001200241002802d4ad4211040002400240200328020822020d000c010b200328020c210502400240200341106a2802004104490d0020022800002101410121040c010b2003420037021c41002104200341002802dc94423602182003410936022c200320033602282003200341186a360234200341cc006a41013602002003420137023c200341a0e6c1003602382003200341286a360248200341346a41d0adc000200341386a10321a2003280218200328022010ad010240200328021c450d00200328021810300b0b2005450d00200210300b2000200136020420002004360200200341d0006a24000bd00302047f017e230041e0006b220324002003200236020c20032001360208200341106a2001200241002802d4ad4211040002400240024002400240200328021022010d00200041003602000c010b200328021421022003200341186a280200360224200320013602202003200341206a109b010240024020032802000d002003280224220420032802042205490d002005417f4c0d030240024020050d00410121060c010b2005102f2206450d052006410020051087051a200328022421040b024020042005490d002006200328022020051085052106200328022422042005490d0620002005ad2207422086200784370204200020063602002003200420056b3602242003200328022020056a3602200c020b200610300b2003420037022c200341002802dc94423602282003410936023c2003200341086a3602382003200341286a360244200341dc006a41013602002003420137024c200341a0e6c1003602482003200341386a360258200341c4006a41d0adc000200341c8006a10321a2003280228200328023010ad010240200328022c450d00200328022810300b200041003602000b2002450d00200110300b200341e0006a24000f0b102c000b102a000b2005200441f0f5c100104a000b900201047f230041106b22022400024002402001280208220341046a2204417f4c0d002001280200210102400240024002400240024020040d0020004100360208200042013702000c010b2004102f2205450d06200041003602082000200436020420002005360200200341c000490d01200341808001490d022003418080808004490d030b200241033a00032000200241036a41011064200220033602042000200241046a410410640c030b200220034102743a000d20002002410d6a410110640c020b200220034102744101723b010e20002002410e6a410210640c010b200220034102744102723602082000200241086a410410640b2000200120031064200241106a24000f0b102c000b102a000b6901017f230041206b220324002003200136020420032000360200200341086a41106a200241106a290200370300200341086a41086a200241086a29020037030020032002290200370308200341dcefc100200341046a41dcefc100200341086a41acacc000104b000b6901017f230041206b220324002003200136020420032000360200200341086a41106a200241106a290200370300200341086a41086a200241086a290200370300200320022902003703082003418cf0c100200341046a418cf0c100200341086a41c4acc000104b000b6601017f230041206b220424002004200136020420042000360200200441086a41106a200241106a290200370300200441086a41086a200241086a290200370300200420022902003703082004419cf0c100200441046a419cf0c100200441086a2003104b000b1d01017e2001ad4220862000ad841011220029000021022000103020020be00c010f7f230041206b22022400200141186a2802002103200141106a28020021042001410c6a2802002105200141086a2802002106200128021421072001280204210802400240024002400240024002400240024002400240024002400240200128020022094101460d0020070d0120004201370200200041086a210a0c0b0b02402007450d000240024020080d004101210120050d014100210b0c050b200620086b210b20050d03410121010c040b200420056b210b0c030b0240024020080d0020050d0120004201370200200041086a210a0c0c0b200620086b210b20050d04200b21010c050b200420056b21010c040b200320076b21010c030b200b200420056b6a220c200b4f2101200c210b0b2001450d02200b200320076b6a2201200b4f0d010c020b200b200420056b6a2201200b490d010b2001417f4c0d044100210b4101210d02402001450d002001210b2001102f220d450d040b2000200d360200200041086a220a4100360200200041046a200b36020020094101460d01024020070d004100210c0c070b200320076b21010c020b200041046a42003702004100210b200041002802dc9442220d360200200041086a210a0b024002400240024002400240024002402007450d000240024020080d004101210120050d014100210c0c040b200620086b210c20050d02410121010c030b200420056b210c0c020b024020080d0020050d074100210c0c0c0b200620086b21012005450d074100210e2001200420056b6a220c2001490d02200c21010c070b200c200420056b6a220e200c4f2101200e210c0b02402001450d00200c200320076b6a2201200c4f0d060b2008450d012007210e0b024020062008470d00410021080c020b200841016a210c0c020b2007210e0b02402005450d0020042005460d00200521012008210c200541016a2105200121080c010b2007450d0720032007460d07200741016a210e410021092008210c200721080b200041046a210f410021070340200e210120082d0000210802400240024002402007200b470d0002400240024020094101460d0020010d014100210e0c020b02402001450d0002400240200c0d00200420056b410020051b210e0c010b2006200c6b210e2005450d00417f200e200420056b6a22102010200e491b210e0b417f200e200320016b6a22102010200e491b210e0c020b0240200c0d00200420056b410020051b210e0c020b2006200c6b210e2005450d01417f200e200420056b6a22102010200e491b210e0c010b200320016b210e0b200b200b6b417f200e41016a22102010200e491b220e4f0d00200b200e6a220e200b490d08200b4101742210200e2010200e4b1b220e4108200e41084b1b210e02400240200b0d00200241003602100c010b200241013602182002200b3602142002200d3602100b2002200e4101200241106a10692002280208210b20022802004101460d0120002002280204220d360200200f200b3602000b200d20076a20083a0000200a200741016a220736020020094101470d02200c450d012006200c460d0141012109200c2108200c41016a210c2001210e0c030b200b0d050c060b41002109024020050d004100210c0c010b4100210c20042005460d00410121094100210c20052108200541016a21052001210e0c010b2001450d0720032001460d07200141016a210e200121080c000b0b200420056b21010b4100210c02400240200b20014f0d00200b410174220c2001200c20014b1b22014108200141084b1b210102400240200b0d00200241003602100c010b200241106a41086a41013602002002200b3602142002200d3602100b200220014101200241106a1069200241086a280200210120022802004101460d0120002002280204220d360200200041046a2001360200200041086a280200210c0b200d200c6a2101024020094101470d0002402008450d0020062008460d002006200c20086b6a210c0340200120082d00003a0000200141016a21012006200841016a2208470d000b0b2005450d0020042005460d002004200c20056b6a210c0340200120052d00003a0000200141016a21012004200541016a2205470d000b0b2007450d0420032007460d04200721080340200120082d00003a0000200141016a21012003200841016a2208470d000b2003200c20076b6a210c0c040b2001450d010b102a000b102c000b4100210c200a41003602000b200a200c3602000b200241206a24000b940201017f230041e0006b22032400200342d7b89aadacd3f3803d370020200342b6c1b1faafd0a2b73f370018200342b8d08eab80d2bcb1fc00370010200342ea9a80e5d5b4e689bc7f370008200341003602302003420137032820032001360240200341286a200341c0006a4104106420032002360240200341286a200341c0006a4104106420032003280228220220032802302201108b02370338200341d8006a200220016a360200200341d0006a200341386a41086a360200200341c0006a41086a200341286a36020020032002360254200341cc006a200341386a360200200341013602402003200341086a3602442000200341c0006a108c020240200328022c450d00200210300b200341e0006a24000b980404027f017e0e7f037e230041c0006b2202240002400240024020012802082203ad423c7e2204422088a70d002004a72205417f4c0d00200128020021064104210702402005450d002005102f2207450d020b410021082000410036020820002007360200200041046a2005413c6e220936020002402005413c490d00200641196a210a2009210b034020052008460d01200b450d04200b417f6a210b2006280214210c2006280210210d200628020c210e2006280208210f200628020421102006280200211141002112024020062d00184101470d00200241206a41186a200a20086a220141186a290000370300200241206a41106a200141106a290000370300200241206a41086a200141086a29000037030020022001290000370320410121120b2006413c6a2106200241186a200241206a41186a2903002204370300200241106a200241206a41106a2903002213370300200241086a200241206a41086a2903002214370300200220022903202215370300200720086a220141186a20123a0000200141146a200c360200200141106a200d3602002001410c6a200e360200200141086a200f360200200141046a201036020020012011360200200141196a2015370000200141216a2014370000200141296a2013370000200141316a20043700002008413c6a2108200b0d000b0b20002003360208200241c0006a24000f0b102c000b102a000b2009200941a0e4c1001033000bbb0201037f230041106b220224002000280200210320012000280208220010a501024002402000450d0020032000413c6c6a210003402002200328020036020020012002410410642002200341046a28020036020020012002410410642002200341086a280200360200200120024104106420022003410c6a28020036020020012002410410642002200341106a28020036020020012002410410642002200341146a280200360200200120024104106402400240200341186a2d00004101460d00200241003a000020012002410110640c010b200241013a000020012002410110644120102f2204450d0320024220370204200220043602002002200341196a41201064200120022802002204200228020810642002280204450d00200410300b2003413c6a22032000470d000b0b200241106a24000f0b102a000b990204017f017e017f017e230041d0006b220224002002412036020420022001360200200241086a2001412041002802d4ad4211040002400240200228020822010d00420021030c010b200228020c210402400240200241086a41086a2802004108490d0020012900002105420121030c010b420021032002420037021c200241002802dc94423602182002410936022c200220023602282002200241186a360234200241cc006a41013602002002420137023c200241a0e6c1003602382002200241286a360248200241346a41d0adc000200241386a10321a2002280218200228022010ad010240200228021c450d00200228021810300b0b2004450d00200110300b2000200537030820002003370300200241d0006a24000b970302017f027e230041d0166b22042400200441286a200141c8031085051a200442003703f003200441e0076a200241e8031085051a200441f8036a200441e0076a10ce02200441186a200441f8036a10c4030240024002402004280218450d0020004202370300200041153602080c010b20042903202105200441086a200441f8036a10c30302402004290308a7450d0020004202370300200041153602080c010b0240200520042903107c220620055a0d0020004202370300200041013602080c010b024020062003580d002000411136020820004202370300200041106a20063703000c010b200441a00f6a200441286a41c8031085051a200441e8126a200441f8036a41e8031085051a42012103200441e0076a200441a00f6a200441e8126a200441f0036a420110da030240024020042903e0074201520d00200041106a200441e8076a41b8071085051a0c010b420021034200200620042903e8077d220520052006561b21060b20002003370300200020063703080c010b200441f8036a109601200441286a109c010b200441d0166a24000bf20803077f017e037f230041306b22022400200128022021032001412c6a21040240034002402003450d00024002402001280228220520042802002206470d00200521070c010b2001200541106a220736022820052802042208450d002000200541086a29020022093e020c20002008360208200041106a20094220883e020020002005280200360204200020012802303602000c030b0240024020062007470d00200321070c010b0340200741106a21050240200741086a280200450d00200741046a28020010300b2005210720062005470d000b200128022021070b0240200128022441ffffffff0071450d00200710300b200141003602200b0240200128021c2207450d0020012007417f6a36021c02400240024020012802082207450d0020012802042106200128020c220820072f01b601490d01034002400240200728020022050d00410021050c010b200641016a210a20072f01b40121080b024041e80141b80120061b450d00200710300b024020050d00410021070c040b200a210620052107200820052f01b6014f0d000b20052107200a21060c010b41b2abc200412b41d4a8c200102d000b200841016a210520072008410c6c6a220a41306a2103200720084102746a41046a210802402006450d00200720054102746a41b8016a280200210702402006417f6a2205450d00034020072802b80121072005417f6a22050d000b0b410021050b20082802002106200a41346a2902002109200328020021030b2001200536020c20012007360208200141003602042003450d0020032009422088a74104746a21082009a7210a024020012802202205450d0002402004280200220b2001280228220c6b2207450d002007417f2007417f4a1b2205410120054101481b200c200b6b22052007200520074a1b4104766c4104742105200c41086a2107034002402007280200450d002007417c6a28020010300b200741106a2107200541706a22050d000b200128022021050b200128022441ffffffff0071450d00200510300b20012006360230200120033602282001200a36022420012003360220200420083602000c010b0b024020012802342208450d000240024002402001413c6a2802002205200141c0006a2802002206470d00200521070c010b2001200541106a220736023c2005280204220a0d010b20024100360210024020062007460d000340200741106a21050240200741086a280200450d00200741046a28020010300b2005210720062005470d000b200128023421080b0240200141386a220728020041ffffffff0071450d00200810300b2001410036023420072002290220370200200141c0006a200241286a29020037020020022802102107200041003602082007450d022002280214450d02200228021010300c020b200241086a41086a2207200a3602002002200528020036020c2002200141c4006a280200360208200020022903083702002002200541086a290200370214200041086a2007290300370200200041106a200241086a41106a2802003602000c010b200041003602080b200241306a24000bba0302077f017e200028020421012000410036020402402001450d0020002802002102024020002802182203450d00200028020821040340024002400240200420012f01b6014f0d0020012100200221050c010b034002400240200128020022000d00410021000c010b200241016a210520012f01b40121040b024041e80141b80120021b450d00200110300b024020000d00410021010c030b2005210220002101200420002f01b6014f0d000b0b200441016a210620002004410c6c6a220241306a21070240024020050d0020002101200621040c010b200020064102746a41b8016a280200210102402005417f6a2200450d00034020012802b80121012000417f6a22000d000b0b410021040b200241346a2902002108200728020021070b2007450d0202402008422088a72200450d0020004104742102200741086a2100034002402000280200450d002000417c6a28020010300b200041106a2100200241706a22020d000b0b2003417f6a21030240200842ffffffff0083500d00200710300b4100210220030d000b0b034020012802002100024041e80141b80120021b450d00200110300b200241016a21022000210120000d000b0b0b9b0303077f017e037f230041106b220224000240024020014102490d00200041146a2103200028020021040240200041186a2802002205200041046a2802002206490d0020052006470d01200328020020044f0d010b20002003290200370200200241086a2207200041106a2205280200360200200041086a220829020021092008200341086a2902003702002005200341106a2802003602002002200937030041012108024020014103490d002001417e6a210a200041286a210520002001417f6a220b41146c6a210341002108024003400240200541046a280200220c2006490d00200c2006470d02200528020020044f0d020b200b2008460d042005416c6a220c2005290200370200200c41106a200541106a280200360200200c41086a200541086a290200370200200541146a2105200a200841016a2208470d000b200841016a21080c010b200841016a21082005416c6a21030b200320043602002000200841146c6a2205200636020420052002290300370208200541106a20072802003602000b200241106a24000f0b20012001419cf8c0001033000bc00201067f200028020421012000410036020402402001450d00024020002802002202450d00034020012802940321012002417f6a22020d000b0b024020002802082203450d004100210403402003417f6a2103024002400240200420012f0132490d0041002100034041002102024020012802002205450d00200041016a210620012f01302104200521020b024041c40341940320001b450d00200110300b024020020d00410021010c040b2006210020022101200420022f01324f0d000b20060d01200221010b200441016a21040c010b200441027420026a4198036a280200210102402006417f6a2202450d00034020012802940321012002417f6a22020d000b0b410021040b20030d000b0b41002102034020012802002100024041c40341940320021b450d00200110300b2002417f6a21022000210120000d000b0b0bc80201087f02400240024020012802042203450d00200128020021040c010b419403102f2203450d0141002104200341003b01322003410036020020012003360204200141003602000b20022802002105034020032f01322206410274210741002108417f210902400340024020072008470d00200621090c020b200320086a210a200941016a2109200841046a2108417f2005200a41046a280200280200220a472005200a491b220a4101460d000b0240200a41016a0e020100010b20002004360204200041106a20013602002000410c6a2009360200200041086a2003360200200041013602000f0b02402004450d002004417f6a2104200320094102746a4194036a28020021030c010b0b20002002360204200041146a2001360200200041106a20093602002000410c6a2003360200200041086a4100360200200041003602000f0b102a000bea17011d7f230041a0016b220224002000410c6a280200210320002802002104024002400240200041086a28020022052f01322206410a4b0d00200541046a21070240200341016a220820064b22090d00200720084102746a200720034102746a200620036b4102741086051a0b200720034102746a200436020020024180016a41186a2207200141186a29000037030020024180016a41106a2204200141106a29000037030020024180016a41086a220a200141086a2900003703002002200129000037038001200541346a2101024020090d00200120084105746a200120034105746a200620036b4105741086051a0b200120034105746a220b200229038001370000200b41186a2007290300370000200b41106a2004290300370000200b41086a200a2903003700002005200641016a3b01320c010b410521064100210c02400240200341054f0d0041042106200321070c010b41052107024002402003417b6a0e020201000b200341796a21074101210c410621060c010b410021074101210c0b2000280204210902400240024002400240024002400240024002400240419403102f2203450d00200341003b013220034100360200200320052f0132220d2006417f736a22083b0132200541046a220e20064102746a280200210f20024180016a41186a200541346a221020064105746a220a41186a29000037030020024180016a41106a200a41106a29000037030020024180016a41086a200a41086a2900003703002002200a290000370380012008410c4f0d01200d200641016a220a6b2008470d02200341046a200e200a4102746a20084102741085051a200341346a2010200a4105746a20084105741085051a200520063b0132200241c0006a41086a20024180016a41086a220a290300370300200241c0006a41106a20024180016a41106a220d290300370300200241c0006a41186a20024180016a41186a2210290300370300200220022903800137034020032005200c1b220641046a21080240200741016a220c20062f0132220e4b22110d002008200c4102746a200820074102746a200e20076b4102741086051a0b200820074102746a20043602002010200141186a290000370300200d200141106a290000370300200a200141086a2900003703002002200129000037038001200641346a2101024020110d002001200c4105746a200120074105746a200e20076b4105741086051a0b200120074105746a220b200229038001370000200b41186a20024180016a41186a220a290300370000200b41106a20024180016a41106a220c290300370000200b41086a20024180016a41086a220d2903003700002006200e41016a3b0132200241206a41086a2210200241c0006a41086a2212290300370300200241206a41106a2211200241c0006a41106a2213290300370300200241206a41186a2214200241c0006a41186a221529030037030020022002290340370320200241186a22162014290300370300200241106a22172011290300370300200241086a2218201029030037030020022002290320370300024002400240200528020022010d00410021090c010b200f2119410021062003211a03402001210420052f013021072014201629030037030020112017290300370300201020182903003703002002200229030037032020092006470d0620042f0132220e410b490d024100210841042105024020074105490d0020072105024002402007417b6a0e020201000b200741796a210741012108410621050c010b4100210741012108410521050b41c403102f2203450d03200341003b013220034100360200200320042f0132221b2005417f736a22013b0132200441046a221c20054102746a280200210f200a200441346a221d20054105746a220641186a290000370300200c200641106a290000370300200d200641086a29000037030020022006290000370380012001410c4f0d07201b200541016a22066b2001470d08200341046a201c2006410274221b6a20014102741085051a200341346a201d20064105746a20014105741085051a200420053b0132200241e0006a41086a221c200d290300370300200241e0006a41106a221d200c290300370300200241e0006a41186a221e200a290300370300200220022903800137036020032f0132220141016a21062001410c4f0d09200e20056b22052006470d0a200941016a210920034194036a2004201b6a4194036a20054102741085051a4100210502400340200320054102746a4194036a280200220620053b013020062003360200200520014f0d01200520052001496a220520014d0d000b0b2015201e2903003703002013201d2903003703002012201c290300370300200220022903603703402003200420081b220641046a21080240200741016a220520062f013222014b221b0d00200820054102746a200820074102746a200120076b4102741086051a0b20082007410274221c6a2019360200200a2014290300370300200c2011290300370300200d20102903003703002002200229032037038001200641346a210e0240201b0d00200e20054105746a200e20074105746a200120076b4105741086051a0b200141016a2108200e20074105746a220e200229038001370000200e41186a200a290300370000200e41106a200c290300370000200e41086a200d29030037000020064194036a210e0240200741026a221b200141026a22194f0d00200e201b4102746a200e20054102746a200120076b4102741086051a0b200e20054102746a201a360200200620083b01320240200520194f0d002006201c6a4198036a2105034020052802002201200741016a22073b013020012006360200200541046a210520082007470d000b0b20162015290300370300201720132903003703002018201229030037030020022002290340370300200f211920042105200921062003211a200428020022010d000b0b200a2016290300370300200c2017290300370300200d20182903003703002002200229030037038001200028021022012802042206450d092001280200210741c403102f2205450d012005200636029403200541003b013220054100360200200641003b013020062005360200200120053602042001200741016a36020020072009470d0a20052f01322206410b4f0d0b2005200641016a22083b0132200520064105746a220741c4006a20024190016a290300370000200741cc006a20024198016a290300370000200741346a200229038001370000200520064102746a41046a200f3602002007413c6a20024188016a29030037000020054194036a20084102746a2003360200200320083b0130200320053602002001200128020841016a3602080c0d0b200441046a21050240200e20074d22030d00200520074102746a220141046a2001200e20076b4102741086051a0b200520074102746a201936020020024180016a41186a2206200241186a29030037030020024180016a41106a2208200241106a29030037030020024180016a41086a2209200241086a2903003703002002200229030037038001200741016a2105200441346a2101024020030d00200120054105746a200120074105746a200e20076b4105741086051a0b200e41016a210a200120074105746a2201200229038001370000200141186a2006290300370000200141106a2008290300370000200141086a200929030037000020044194036a2101200e41026a2106024020030d00200741027420016a41086a200120054102746a200e20076b4102741086051a0b2004200a3b0132200120054102746a201a360200200520064f0d0b200e41016a210620042005417f6a22054102746a4198036a2101034020012802002203200541016a22053b013020032004360200200141046a210120062005470d000c0c0b0b102a000b2008410b41e8a2c2001042000b41f8a2c200412841a0a3c200102d000b41b0a3c200413541e8a3c200102d000b2001410b41e8a2c2001042000b41f8a2c200412841a0a3c200102d000b2006410c41f8a3c2001042000b41f8a2c200412841a0a3c200102d000b41b2abc200412b41e0abc200102d000b41eaa0c2004130419ca1c200102d000b41aca1c200412041cca1c200102d000b20002802102205200528020841016a3602080b200241a0016a2400200b0bb90201047f230041106b22032400024002402002280208220441046a2205417f4c0d002002280200210202400240024002400240024020050d0020034100360208200342013703000c010b2005102f2206450d06200341003602082003200536020420032006360200200441c000490d01200441808001490d022004418080808004490d030b200341033a000c20032003410c6a410110642003200436020c20032003410c6a410410640c030b200320044102743a000c20032003410c6a410110640c020b200320044102744101723b010c20032003410c6a410210640c010b2003200441027441027236020c20032003410c6a410410640b20032002200410642000200120032802002204200328020841002802fcad4211030002402003280204450d00200410300b200341106a24000f0b102c000b102a000b13002000410536020420004180c3c0003602000b3400200041e2a4c00036020420004100360200200041146a4113360200200041106a4198ccc000360200200041086a420f3702000bf70703037f037e027f230041c0006b22022400024002400240024002400240024020002d0000417f6a0e050001020304050b200241003a00202001200241206a410110642002200041046a2802003602202001200241206a410410640c040b200241013a00202001200241206a41011064200041046a200110f601200041386a28020021032001200041c0006a280200220410a50102402004450d0020032004410c6c6a210403402003280200200341086a280200200110a6012003410c6a22032004470d000b0b200041c4006a28020021032001200041cc006a280200220410a50102402004450d00200320044104746a21040340200220032802003602202001200241206a41041064200341046a2802002003410c6a280200200110a601200341106a22032004470d000b0b2001200041d8006a280200220310a50102400240200041d4006a28020022040d0041002103200241306a4100360200200241003602240c010b200241206a200041d0006a28020020041093010b200241086a41106a200241206a41106a22002903002205370300200241086a41086a200241206a41086a220429030022063703002002200229032022073703082000200537030020042006370300200220073703202003450d03034020022003417f6a360238200241206a410020022802241b220828020021040240024020082802082209200828020422002f01b6014f0d00200021030c010b03400240200028020022030d00410021030c020b200441016a210420002f01b401210920032100200920032f01b6014f0d000b0b024002402004450d00200941027420036a41bc016a280200210002402004417f6a2204450d00034020002802b80121002004417f6a22040d000b0b410021040c010b200941016a2104200321000b2008200036020420084100360200200820043602082002200320094102746a41046a28020036023c20012002413c6a4104106420032009410c6c6a220041306a28020021032001200041386a280200220010a50102402000450d00200320004104746a210003402002200328020036023c20012002413c6a41041064200341046a2802002003410c6a280200200110a601200341106a22032000470d000b0b200228023822030d000c040b0b200241023a00202001200241206a41011064200041046a2802002000410c6a280200200110a6010c020b200241033a00202001200241206a410110644120102f2203450d022002422037022420022003360220200241206a200041016a41201064200120022802202203200228022810642002280224450d01200310300c010b200241043a00202001200241206a41011064200041046a2802002000410c6a280200200110a6010b200241c0006a24000f0b102a000ba316020c7f027e230041d0016b2202240002400240200128020422030d002000410a3a00000c010b200128020022042d0000210520012003417f6a22063602042001200441016a36020002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024020050e0a000102030405060708090a0b200041003a00000c170b200241086a2001109b01024020022802080d00200228020c2101200041013a0000200041046a20013602000c170b2000410a3a00000c160b02402006450d0020042d0001210520012003417e6a22073602042001200441026a220836020041002103410121094100210a0240024002400240024020050e0403000102050b200241106a2001109b0120022802100d04200128020422042002280214220b490d04200b417f4c0d1302400240200b0d004101210c0c010b200b102f220c450d15200c4100200b1087051a200128020421040b2004200b490d03200c2001280200200b1085051a20012802042204200b490d1520012004200b6b220736020420012001280200200b6a22083602004101210a410021090c020b410121094102210a0c010b4103210a410121090b200241003602a8012007417f6a2104200241a8016a410472210d034020072003460d10200820036a22052d0000210620012004360204200d20036a20063a00002001200541016a3602002002200341016a22053602a8012004417f6a21042005210320054120470d000b200041086a200241a8016a410b6a2f00003b00002000410a6a200241b5016a2d00003a00002000410f6a200241a8016a41126a2f01003b0000200041116a200241bc016a2d00003a0000200041186a200241c3016a2d00003a0000200041166a200241a8016a41196a2f00003b0000200220022f01ac013b01a401200220022d00ae013a00a601200241b6016a2801002101200241bd016a2800002103200241c4016a290200210e20022800af012104200041036a20022d00a6013a0000200020022f01a4013b0001200041196a200e370000200041126a20033600002000410b6a2001360000200041046a2004360000200041023a0000200041216a20022f00a1013b0000200041236a200241a1016a41026a2d00003a0000200041306a200b3600002000412c6a200b360000200041286a200c360000200041246a200a3600000c170b200c10300b2000410a3a00000c150b024002402006450d0020042d0001210520012003417e6a3602042001200441026a36020041002106410121070240024002400240024020050e0403000102050b200241286a2001109b0120022802280d0420012802042205200228022c2203490d042003417f4c0d130240024020030d00410121040c010b2003102f2204450d152004410020031087051a200128020421050b20052003490d032004200128020020031085051a200128020422052003490d162001200520036b3602042001200128020020036a36020041012106410021070c020b410221060c010b410321060b200241186a2001109d012002290318a70d022002290320210e200041033a0000200041186a200e370300200041106a20033600002000410c6a2003360000200041086a2004360000200041046a20063600000c170b200410300b2000410a3a00000c150b2000410a3a00002007200345720d14200410300c140b024002402006450d0020042d0001210520012003417e6a3602042001200441026a36020041002106410121070240024002400240024020050e0403000102050b200241306a2001109b0120022802300d042001280204220520022802342203490d042003417f4c0d120240024020030d00410121040c010b2003102f2204450d142004410020031087051a200128020421050b20052003490d032004200128020020031085051a200128020422052003490d162001200520036b3602042001200128020020036a36020041012106410021070c020b41012107410221060c010b41032106410121070b200241a8016a200110a70120022d00a8014101460d02200020022900a901370001200041116a200241a8016a41116a280000360000200041096a200241a8016a41096a290000370000200041246a2003360000200041206a20033600002000411c6a2004360000200041186a2006360000200041043a00000c160b200410300b2000410a3a00000c140b2000410a3a00002007200345720d13200410300c130b02402006450d0020042d0001210520012003417e6a3602042001200441026a360200200020053a0001200041053a00000c130b2000410a3a00000c120b200241386a200110c90202402002290338a70d00200241386a41106a290300210e2002290340210f200041063a0000200041086a200f370300200041106a200e3703000c120b2000410a3a00000c110b200241d0006a2001109b01024020022802500d002001280204220420022802542203490d002003417f4c0d0a0240024020030d00410121050c010b2003102f2205450d0c2005410020031087051a200128020421040b024020042003490d002005200128020020031085052105200128020422042003490d10200041073a00002001200420036b360204200041086a2003ad220e422086200e84370000200041046a20053600002001200128020020036a3602000c120b200510300b2000410a3a00000c100b200041083a00000c0f0b2006450d0420042d0001210520012003417e6a22033602042001200441026a360200410021064101210702400240024002400240024020050e07080001020304050a0b20024190016a2001109b012002280290010d09200128020422032002280294012205490d092005417f4c0d0c0240024020050d00410121040c010b2005102f2204450d0e2004410020051087051a200128020421030b20032005490d082004200128020020051085051a2001280204220320054f0d062005200341f0f5c100104a000b20024198016a2001109b012002280298010d08200228029c01210420012802042103410221060c060b410321060c050b410421060c040b410521060c030b410621060c020b2000410a3a00000c0d0b2005ad220e422086200e84210e2001200320056b22033602042001200128020020056a36020041012106410021070b2003450d02200128020022052d0000210820012003417f6a3602042001200541016a360200410021050240024002400240024020080e050400010203070b200241d8006a2001109b0120022802580d06200228025c2103410121050c030b200241e8006a2001109b0120022802680d05200228026c2103200241e0006a2001109b0120022802600d052002280264210d410221050c020b200241f8006a2001109b0120022802780d04200228027c2103200241f0006a2001109b0120022802700d042002280274210d410321050c010b20024188016a2001109b012002280288010d03200228028c01210320024180016a2001109b012002280280010d03200228028401210d410421050b200041093a0000200020022f00a4013b00012000411c6a200d360200200041186a2003360200200041146a20053602002000410c6a200e370000200041086a2004360000200041046a2006360000200041206a20022903a801370300200041036a200241a6016a2d00003a0000200041286a200241a8016a41086a290300370300200041306a200241b8016a2903003703000c0b0b200410300b2000410a3a00000c090b2000410a3a00002007200ea745720d08200410300c080b2000410a3a00002009200b4572450d060c070b102c000b102a000b200b200441f0f5c100104a000b2003200541f0f5c100104a000b2003200541f0f5c100104a000b2003200441f0f5c100104a000b200c10300b200241d0016a24000bf90401017f230041106b22022400024002400240024002400240024002400240024020002802000e09000102030405060708090b200241003a000f20012002410f6a410110640c080b200241013a000f20012002410f6a41011064200041086a2001109e020c070b200241023a000f20012002410f6a41011064200041086a2001109e02200041c0006a2001109e020c060b200241033a000f20012002410f6a41011064200041086a2001109e02200041c0006a2001109e02200041f8006a2001109e020c050b200241043a000f20012002410f6a41011064200041086a2001109e02200041c0006a2001109e02200041f8006a2001109e02200041b0016a2001109e020c040b200241053a000f20012002410f6a41011064200041086a2001109e02200041c0006a2001109e02200041f8006a2001109e02200041b0016a2001109e02200041e8016a2001109e020c030b200241063a000f20012002410f6a41011064200041086a2001109e02200041c0006a2001109e02200041f8006a2001109e02200041b0016a2001109e02200041e8016a2001109e02200041a0026a2001109e020c020b200241073a000f20012002410f6a41011064200041086a2001109e02200041c0006a2001109e02200041f8006a2001109e02200041b0016a2001109e02200041e8016a2001109e02200041a0026a2001109e02200041d8026a2001109e020c010b200241083a000f20012002410f6a41011064200041086a2001109e02200041c0006a2001109e02200041f8006a2001109e02200041b0016a2001109e02200041e8016a2001109e02200041a0026a2001109e02200041d8026a2001109e0220004190036a2001109e020b200241106a24000bad0901027f230041106b220224000240024002400240024002400240024002400240024020002d00000e0a000102030405060708090a0b200241003a000f20012002410f6a410110640c090b200241013a000f20012002410f6a41011064200041046a200110ee010c080b200241023a000f20012002410f6a41011064200041016a210302400240024002400240200041246a2802000e0400010203000b200241003a000f20012002410f6a410110640c030b200241013a000f20012002410f6a41011064200041286a280200200041306a280200200110a6010c020b200241023a000f20012002410f6a410110640c010b200241033a000f20012002410f6a410110640b20012003412010640c070b200241033a000f20012002410f6a41011064200041186a21030240024002400240200041046a2802000e0400010203000b200241003a000f20012002410f6a410110642003200110d2020c090b200241013a000f20012002410f6a41011064200041086a280200200041106a280200200110a6012003200110d2020c080b200241023a000f20012002410f6a410110642003200110d2020c070b200241033a000f20012002410f6a410110642003200110d2020c060b200241043a000f20012002410f6a41011064200041016a210302400240024002400240200041186a2802000e0400010203000b200241003a000f20012002410f6a410110640c030b200241013a000f20012002410f6a410110642000411c6a280200200041246a280200200110a6010c020b200241023a000f20012002410f6a410110640c010b200241033a000f20012002410f6a410110640b20012003411410640c050b200241053a000f20012002410f6a41011064200220002d00013a000f20012002410f6a410110640c040b200241063a000f20012002410f6a410110642002200041086a360208200241086a200110cc020c030b200241073a000f20012002410f6a41011064200041046a2802002000410c6a280200200110a6010c020b200241083a000f20012002410f6a410110640c010b200241093a000f20012002410f6a4101106402400240024002400240024002400240200041046a2802000e0700010203040506070b200241003a000f20012002410f6a410110640c060b200241013a000f20012002410f6a41011064200041086a280200200041106a280200200110a6010c050b200241023a000f20012002410f6a41011064200041086a200110ee010c040b200241033a000f20012002410f6a410110640c030b200241043a000f20012002410f6a410110640c020b200241053a000f20012002410f6a410110640c010b200241063a000f20012002410f6a410110640b0240024002400240024020002802140e050001020304050b200241003a000f20012002410f6a410110640c040b200241013a000f20012002410f6a41011064200041186a200110ee010c030b200241023a000f20012002410f6a41011064200041186a200110ee012000411c6a200110ee010c020b200241033a000f20012002410f6a41011064200041186a200110ee012000411c6a200110ee010c010b200241043a000f20012002410f6a41011064200041186a200110ee012000411c6a200110ee010b200241106a24000b4201027f230041106b2202240002404101102f22030d00102a000b2000420137020420002003360200200241003a000f20002002410f6a41011064200241106a24000b2701017f02404104102f22020d00102a000b20004204370204200020023602002000410010a5010b8f0101027f230041306b220224002000410036020820004201370200200241186a4200370300200241106a4200370300200241086a42003703002002420037030002404120102f2203450d002002422037022420022003360220200241206a2002412010642000200228022022032002280228106402402002280224450d00200310300b200241306a24000f0b102a000b4301027f230041106b2202240002404104102f22030d00102a000b2000420437020420002003360200200241e40036020c20002002410c6a41041064200241106a24000b2e01017f230041106b2202240020024200370204200241002802dc944236020020002002108702200241106a24000b4201027f230041106b2202240002404104102f22030d00102a000b2000420437020420002003360200200241003a000f20002002410f6a41011064200241106a24000b6a01017f230041106b2202240020004100360208200042013702002002410036020c20002002410c6a410410642002410036020c20002002410c6a410410642002410036020c20002002410c6a410410642002410036020c20002002410c6a41041064200241106a24000b8f0101027f230041306b220224002000410036020820004201370200200241186a4200370300200241106a4200370300200241086a42003703002002420037030002404120102f2203450d002002422037022420022003360220200241206a2002412010642000200228022022032002280228106402402002280224450d00200310300b200241306a24000f0b102a000b2701017f02404104102f22020d00102a000b20004204370204200020023602002000410010a5010b4201027f230041106b2202240002404104102f22030d00102a000b20004204370204200020033602002002410036020c20002002410c6a41041064200241106a24000b4301027f230041106b220224002002420037020402404104102f22030d00102a000b20004204370204200020033602002000410010a5012002109502200241106a24000b5801017f230041106b220224002000410036020820004201370200200242003703082000200241086a41081064200242003703082000200241086a41081064200242003703082000200241086a41081064200241106a24000bc65e0b047f017e127f017e087f017e147f017e037f017e017f230041c0036b2202240020024188016a200110ac02024002400240024002402002280288010d00200228028c01210320012001280204220441016a2205360204200520012802084b0d0002402003450d004100210542002106034002402005417f470d0020064280808080705a0d072006422088a721050b200642ffffffff0f83200541016a2205ad4220868421062003417f6a22030d000b0b20012004360204200128020022052802042203450d01200528020022072d0000210420052003417f6a3602042005200741016a360200200441ff00714104460d02200041023602000c030b200041023602000c020b200041023602000c010b0240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002402004411874411875417f4c0d00410321030c010b02400240200128020022052802042203450d00200528020022042d0000210820052003417f6a360204410121092005200441016a36020041012104024002400240024002400240024020080e050006010203070b200241a0026a410472210a410021030340200128020022052802042204450d07200528020022072d0000210b20052004417f6a3602042005200741016a360200200a20036a200b3a0000200341016a2205210320054120470d000b200241a0026a41086a280200220541087420022802a402220c41187672210b200241ac026a2f0100200241ae026a2d0000411074724108742005411876722107200241b3026a2f0000200241b5026a2d000041107472210d200241ba026a2f0100200241bc026a2d000041107472210e200241c1026a2f0000200241c3026a2d000041107472210f200241af026a280000210a200241b6026a2801002110200241bd026a280000211141002104410121090c050b20024180016a200110ac022002280280010d05200128020022052802042203200228028401220a490d05200a417f4c0d1f02400240200a0d004101210b0c010b200a102f220b450d1b200b4100200a1087051a2001280200220528020421030b02402003200a490d00200b2005280200200a1085051a20052802042203200a4f0d03200a200341f0f5c100104a000b200b1030410321030c060b200241a0026a410472210a410021030340200128020022052802042204450d05200528020022072d0000210b20052004417f6a3602042005200741016a360200200a20036a200b3a0000200341016a2205210320054120470d000b200241a0026a41086a280200220541087420022802a402220c41187672210b200241ac026a2f0100200241ae026a2d0000411074724108742005411876722107200241b3026a2f0000200241b5026a2d000041107472210d200241ba026a2f0100200241bc026a2d000041107472210e200241c1026a2f0000200241c3026a2d000041107472210f200241af026a280000210a200241b6026a2801002110200241bd026a280000211141032104410121090c030b200128020022052802042203450d03200528020022042d0000210720052003417f6a3602042005200441016a360200200220073a00a4022001280200220528020422030d010c030b20052003200a6b36020420052005280200200a6a3602004102210441002109200a21070c010b200528020022042d0000210720052003417f6a3602042005200441016a360200200220073a00a502200128020022052802042203450d01200528020022042d0000210720052003417f6a3602042005200441016a360200200220073a00a602200128020022052802042203450d01200528020022042d0000210720052003417f6a3602042005200441016a360200200220073a00a702200128020022052802042203450d01200528020022042d0000210720052003417f6a3602042005200441016a360200200241a8026a20073a0000200128020022052802042203450d01200528020022042d0000210720052003417f6a3602042005200441016a360200200241a9026a20073a0000200128020022052802042203450d01200528020022042d0000210720052003417f6a3602042005200441016a360200200241aa026a20073a0000200128020022052802042203450d01200528020022042d0000210720052003417f6a3602042005200441016a360200200241ab026a20073a0000200128020022052802042203450d01200528020022042d0000210720052003417f6a3602042005200441016a360200200241ac026a20073a0000200128020022052802042203450d01200528020022042d0000210720052003417f6a3602042005200441016a360200200241ad026a20073a0000200128020022052802042203450d01200528020022042d0000210720052003417f6a3602042005200441016a360200200241ae026a20073a0000200128020022052802042203450d01200528020022042d0000210720052003417f6a3602042005200441016a360200200241af026a20073a0000200128020022052802042203450d01200528020022042d0000210720052003417f6a3602042005200441016a360200200241b0026a20073a0000200128020022052802042203450d01200528020022042d0000210720052003417f6a3602042005200441016a360200200241b1026a20073a0000200128020022052802042203450d01200528020022042d0000210720052003417f6a3602042005200441016a360200200241b2026a20073a0000200128020022052802042203450d01200528020022042d0000210720052003417f6a3602042005200441016a360200200241b3026a20073a0000200128020022052802042203450d01200528020022042d0000210720052003417f6a3602042005200441016a360200200241b4026a20073a0000200128020022052802042203450d01200528020022042d0000210720052003417f6a3602042005200441016a360200200241b5026a20073a0000200128020022052802042203450d01200528020022042d0000210720052003417f6a360204410121092005200441016a360200200241b6026a220320073a0000200128020022052802042204450d01200528020022072d0000210b20052004417f6a3602042005200741016a360200200241b7026a200b3a0000200241a0026a41086a280200220541087420022802a402220c41187672210b200241ac026a2f0100200241ae026a2d0000411074724108742005411876722107200241b3026a2f0000200241b5026a2d000041107472210d200241af026a280000210a20032f01002110410421040b0240024002400240024002400240200128020022052802042203450d00200528020022082d0000211220052003417f6a3602042005200841016a360200024002400240024020120e03000102040b200241003602a00241c00021030340200128020022052802042208450d04200528020022122d000021132005201241016a36020020052008417f6a36020420022802a002220541c0004f0d05200241a0026a20056a41046a20133a00002002200541016a3602a0022003417f6a22030d000b2005413f490d05200241f8026a41026a200241ad026a2d00003a0000200220022f01a4023b018803200220022d00a6023a008a032002200241ab026a2f00003b01f802200241ae026a2801002114200241b5026a2800002115200241bc026a2802002116200241c3026a2800002117200241ca026a2801002109200241d1026a2800002113200241d8026a2802002112200241dc026a290200210620022800a7022118200241e8026a41026a200241b4026a2d00003a000020024180026a41026a200241bb026a2d00003a0000200241f0016a41026a200241c2026a2d00003a00002002419c026a41026a200241c9026a2d00003a000020024198026a41026a200241d0026a2d00003a00002002200241b2026a2f01003b01e8022002200241b9026a2f00003b0180022002200241c0026a2f01003b01f0012002200241c7026a2f00003b019c022002200241ce026a2f01003b01980220024194026a41026a200241d7026a2d00003a00002002200241d5026a2f00003b019402410021030c020b200241003602a00241c00021030340200128020022052802042208450d03200528020022122d000021132005201241016a36020020052008417f6a36020420022802a002220541c0004f0d06200241a0026a20056a41046a20133a00002002200541016a3602a0022003417f6a22030d000b2005413f490d06200241d5026a2900002119200241ae026a2801002114200241b5026a2800002115200241bc026a2802002116200241c3026a2800002117200241ca026a2801002109200241d1026a280000211320022800a7022118200241a8036a410b6a200241e0026a280000360000200220193703a803200220022f01a4023b018803200220022d00a6023a008a032002200241dd026a2800003602b00320024198036a41026a220520022d00aa033a0000200220193d01980320022900af032106200241f8026a41026a200241ad026a2d00003a00002002200241a0026a410b6a2f00003b01f802200241e8026a41026a200241b4026a2d00003a00002002200241b2026a2f01003b01e80220024180026a41026a200241bb026a2d00003a00002002200241b9026a2f00003b018002200241f0016a41026a200241c2026a2d00003a00002002200241c0026a2f01003b01f0012002419c026a41026a200241c9026a2d00003a00002002200241c7026a2f00003b019c0220024198026a41026a200241d0026a2d00003a00002002200241ce026a2f01003b01980220024194026a41026a20052d00003a0000200220022f0198033b0194022019421888a72112410121030c010b200241003602a00241c10021030340200128020022052802042208450d02200528020022122d000021132005201241016a36020020052008417f6a36020420022802a002220541c1004f0d07200241a0026a20056a41046a20133a00002002200541016a3602a0022003417f6a22030d000b200541c000490d07200241d5026a2900002119200241ae026a2801002114200241b5026a2800002115200241bc026a2802002116200241c3026a2800002117200241ca026a2801002109200241d1026a2800002113200241e4026a2d0000211a200241dd026a2d0000210520022800a7022118200241a8036a410d6a200241e2026a2f01003b0000200220193703a803200220022f01a4023b018803200220022d00a6023a008a03200220053a00b0032002200241de026a2801003600b1034102210320024198036a41026a220520022d00aa033a0000200220193d01980320022900af032106200241f8026a41026a200241a0026a410d6a2d00003a00002002200241ab026a2f00003b01f802200241e8026a41026a200241b4026a2d00003a00002002200241b2026a2f01003b01e80220024180026a41026a200241bb026a2d00003a00002002200241b9026a2f00003b018002200241f0016a41026a200241c2026a2d00003a00002002200241c0026a2f01003b01f0012002419c026a41026a200241c9026a2d00003a00002002200241c7026a2f00003b019c0220024198026a41026a200241d0026a2d00003a00002002200241ce026a2f01003b01980220024194026a41026a20052d00003a0000200220022f0198033b0194022019421888a721120b200241a8036a41026a20022d008a033a0000200241a0026a41026a20024191026a41026a2d00003a000020024198036a41026a200241f8026a41026a2d00003a0000200241ec016a41026a200241e8026a41026a2d00003a0000200241e8016a41026a20024180026a41026a2d00003a0000200220022f0091023b01a002200220022f0188033b01a803200220022f01f8023b019803200220022f01e8023b01ec01200220022f0180023b01e801200241e4016a41026a200241f0016a41026a2d00003a0000200241e0016a41026a2002419c026a41026a2d00003a0000200241dc016a41026a20024198026a41026a2d00003a0000200241d8016a41026a20024194026a41026a2d00003a0000200220022f01f0013b01e401200220022f019c023b01e001200220022f0198023b01dc01200220022f0194023b01d8010c080b2009200745720d06200b1030410321030c070b200220133a00a80341bea9c200412b200241a8036a41ecf6c00041bc8ec2001034000b41fef8c100411b419cf9c100102d000b200220133a00a80341bea9c200412b200241a8036a41ecf6c00041bc8ec2001034000b41fef8c100411b419cf9c100102d000b200220133a00a80341bea9c200412b200241a8036a41ecf6c00041bc8ec2001034000b41fef8c100411b419cf9c100102d000b410321030b200241d4016a41026a2205200241a0026a41026a2d00003a0000200241d0016a41026a2208200241a8036a41026a2d00003a0000200241cc016a41026a221b20024198036a41026a2d00003a0000200241c8016a41026a221c200241ec016a41026a2d00003a0000200241c4016a41026a221d200241e8016a41026a2d00003a0000200220022f01a0023b01d401200220022f01a8033b01d001200220022f0198033b01cc01200220022f01ec013b01c801200220022f01e8013b01c401200241c0016a41026a221e200241e4016a41026a2d00003a0000200241bc016a41026a221f200241e0016a41026a2d00003a0000200241b8016a41026a2220200241dc016a41026a2d00003a0000200241b4016a41026a2221200241d8016a41026a2d00003a0000200220022f01e4013b01c001200220022f01e0013b01bc01200220022f01dc013b01b801200220022f01d8013b01b40120034103460d01200241b0016a41026a20052d00003a0000200241ac016a41026a20082d00003a0000200241a8016a41026a201b2d00003a0000200241a4016a41026a201c2d00003a0000200241a0016a41026a201d2d00003a0000200220022f01d4013b01b001200220022f01d0013b01ac01200220022f01cc013b01a801200220022f01c8013b01a401200220022f01c4013b01a0012002419c016a41026a201e2d00003a000020024198016a41026a201f2d00003a000020024194016a41026a20202d00003a000020024190016a41026a20212d00003a0000200220022f01c0013b019c01200220022f01bc013b019801200220022f01b8013b019401200220022f01b4013b0190010b200128020022052802042208450d152005280200221b2d0000211c20052008417f6a3602042005201b41016a36020002400240024002400240201c0e0400011a041a0b200128020022052802042208450d192005280200221b2d0000211c20052008417f6a3602042005201b41016a3602000240024002400240024002400240024002400240201c0e0a00010203040506070809230b2001280200220528020422014104490d222005280200221b280000210820052001417c6a3602042005201b41046a3602002008418194ebdc034f0d22410021014101211e0c0a0b2002200110ac0220022802000d212001280200221b280204221c20022802042205490d212005417f4c0d230240024020050d00410121080c010b2005102f2208450d1f2008410020051087051a2001280200221b280204211c0b201c2005490d202008201b28020020051085051a201b28020422012005490d0d2005ad22194220862019842119201b200120056b360204201b201b28020020056a360200410021014102211e0c090b2001280200220528020422014108490d202005280200220829000021192005200141786a3602042005200841086a360200410021014103211e0c080b200241086a200110ac0220022802080d1f2001280200221b280204221c200228020c2205490d1f2005417f4c0d210240024020050d00410121080c010b2005102f2208450d1d2008410020051087051a2001280200221b280204211c0b201c2005490d1e2008201b28020020051085051a201b28020422012005490d122005ad22194220862019842119201b200120056b360204201b201b28020020056a360200410021014104211e0c070b200241106a200110ac0220022802100d1e2001280200221b280204221c20022802142205490d1e2005417f4c0d200240024020050d00410121080c010b2005102f2208450d1c2008410020051087051a2001280200221b280204211c0b201c2005490d1d2008201b28020020051085051a201b28020422012005490d122005ad22194220862019842119201b200120056b360204201b201b28020020056a360200410021014105211e0c060b200241a0026a200110ad0220022802a00222084102460d1d20022902a4022119410021014106211e0c050b200241286a200110ac0220022802280d1c200228022c221d200128020028020441186e22052005201d4b1bad42187e2219422088a70d1e2019a72205417f4c0d1e0240024020050d00410421080c010b2005102f2208450d1a0b2001200128020441016a221b360204200541186ead2119201b20012802084b0d1a02400240201d450d0002400340200241206a200110ac0220022802200d1e2001280200221b280204221c20022802242205490d1e2005417f4c0d220240024020050d004101211e0c010b2005102f221e450d1e201e410020051087051a2001280200221b280204211c0b024002400240201c2005490d00201e201b28020020051085052121201b280204221c2005490d10201b201c20056b360204201b201b28020020056a360200200241186a200110ac02024020022802180d002001280200221c280204221f200228021c221b490d00201b417f4c0d2602400240201b0d00410121200c010b201b102f2220450d2220204100201b1087051a2001280200221c280204211f0b0240201f201b490d002020201c280200201b108505211f201c280204221e201b490d13201c201e201b6b360204201c201c280200201b6a3602002019422088a7221c2019a7470d04201c41016a221e201c4f0d030c270b202010300b2005450d210b201e10300c200b201c4101742220201e201e2020491b221e4104201e41044b1bad42187e2222422088a745410274211e2022a7212002400240201c0d00200241003602a0020c010b200241043602a802200220083602a0022002201c41186c3602a4020b200241a8036a2020201e200241a0026a106920022802b003211e20022802a8034101460d0220022802ac032108201942808080807083201e41186ead8421190b2008201c41186c6a221c2005360204201c2021360200201c41106a201bad2222422086202284370200201c410c6a201f360200201c41086a200536020020194280808080107c2119201d417f6a221d0d000b20012001280204417f6a3602040c020b201e450d200c1b0b2001201b417f6a3602042008450d1d0b410021014107211e0c040b200241a0026a200110ae0220022802a0022208450d1b20022902a4022119410021014108211e0c030b200241306a200110ac0220022802300d1a2001280200221b280204221c20022802342205490d1a2005417f4c0d1c0240024020050d00410121080c010b2005102f2208450d182008410020051087051a2001280200221b280204211c0b201c2005490d192008201b28020020051085051a201b280204221c2005490d0f201b201c20056b360204201b201b28020020056a360200024020012802002201280204221b4104490d002005ad221942208620198421192001280200220528000021232001201b417c6a3602042001200541046a360200410021014109211e0c030b20050d190c1a0b200241386a200110ac0220022802380d192001280200221b280204221c200228023c2205490d192005417f4c0d1b0240024020050d00410121080c010b2005102f2208450d172008410020051087051a2001280200221b280204211c0b201c2005490d182008201b28020020051085051a201b28020422012005490d0f2005ad22194220862019842119201b200120056b360204201b201b28020020056a36020041002101410a211e0c010b200128020022052802042208450d182005280200221b2d0000211c20052008417f6a3602042005201b41016a360200024002400240024002400240024002400240201c0e050001020304210b2001280200220528020422014104490d2020052802002208280000211e20052001417c6a3602042005200841046a360200410021014101212442002119420021220c050b200241e8006a200110ac0220022802680d1f20012802002205280204221b200228026c2208490d1f2008417f4c0d210240024020080d004101211e0c010b2008102f221e450d1d201e410020081087051a20012802002205280204211b0b201b2008490d1b201e200528020020081085051a2005280204221b2008490d0e2005201b20086b3602042005200528020020086a3602000240024020012802002205280204221b4104490d002008ad21192005280200221c35000021222005201b417c6a3602042005201c41046a360200200241a0026a41047221204100211b034020012802002205280204221c450d012005280200221d2d0000211f2005201c417f6a3602042005201d41016a3602002020201b6a201f3a0000201b41016a2205211b20054120470d000b20012802002205280204221b41044f0d010b20080d1c0c200b20022802a4022125200241a0026a41086a2802002126200241ae026a2d00002127200241ac026a2f01002128200241b5026a2d00002129200241b3026a2f0000212a200241bc026a2d0000212b200241ba026a2f0100212c200241c3026a2d0000212d200241c1026a2f0000212e200241af026a280000212f200241b6026a2801002130200241bd026a28000021312005280200221c28000021232005201b417c6a3602042005201c41046a360200200241a0026a200110ae0220022802a0022232450d1a200241a8026a280200213320022802a4022121200241e0006a200110ac0220022802600d19410421202002280264223420012802002802044104762205200520344b1b221f4104742205417f4c0d210240201f450d002005102f2220450d1d0b2001200128020441016a2205360204024002400240200520012802084b0d002034450d014100211b4100211d02400240034020012802002205280204221c4104490d022005280200222428000021352005201c417c6a3602042005202441046a360200200241d8006a200110ac0220022802580d022001280200221c2802042224200228025c2205490d022005417f4c0d270240024020050d00410121360c010b2005102f2236450d232036410020051087051a2001280200221c28020421240b20242005490d012036201c28020020051085052136201c28020422242005490d15201c202420056b360204201c201c28020020056a3602000240201d201f470d00201f41016a221c201f490d28201f4101742224201c2024201c4b1b221c4104201c41044b1b221c41ffffffff0071201c464102742124201c410474211c02400240201f0d00200241003602a0020c010b200220203602a002200241043602a8022002201f4104743602a4020b200241a8036a201c2024200241a0026a106920022802b003211c024020022802a8034101470d00201c450d290c240b20022802ac032120201c410476211f0b2020201b6a221c2035360200201c41086a2005ad2237422086203784370200201c41046a2036360200201b41106a211b2034201d41016a221d470d000b20012001280204417f6a3602040c040b203610300b201d450d00202041086a2105034002402005280200450d002005417c6a28020010300b200541106a2105201b41706a221b0d000b0b201f41ffffffff00710d1a0c1b0b20012005417f6a3602042020450d1a410021340b200241d0006a200110ac0220022802500d17200228025421382001200128020441016a2205360204200520012802084b0d172002420037029c0302402038450d0041002139034020012802002205280204221b4104490d182005280200221c280000213a2005201b417c6a3602042005201c41046a360200200241c8006a200110ac0220022802480d18200228024c221c200128020028020441047622052005201c4b1b2205410474221b417f4c0d230240024020050d00410421360c010b201b102f2236450d1f0b2001200128020441016a221b3602042005ad2137024002400240201b20012802084b0d00201c450d0102400240034020012802002205280204221b4104490d032005280200221d28000021352005201b417c6a3602042005201d41046a360200200241c0006a200110ac0220022802400d032001280200221b280204221d20022802442205490d032005417f4c0d290240024020050d00410121240c010b2005102f2224450d252024410020051087051a2001280200221b280204211d0b201d2005490d022024201b28020020051085052124201b280204221d2005490d18201b201d20056b360204201b201b28020020056a36020002402037422088223ba7221b2037a7470d00201b41016a221d201b490d2a201b410174223c201d201d203c491b221d4104201d41044b1b221d41ffffffff0071201d46410274213c201d410474211d02400240201b0d00200241003602a0020c010b200241043602a802200220363602a0022002203b4204863e02a4020b200241a8036a201d203c200241a0026a106920022802b003211d20022802a8034101460d0220022802ac032136203742808080807083201d410476ad8421370b2036201b4104746a221b2024360204201b2035360200201b41086a2005ad223b422086203b8437020020374280808080107c2137201c417f6a221c0d000b20012001280204417f6a3602040c040b201d450d270c220b202410300b02402037422088a72205450d002005410474210a203641086a2105034002402005280200450d002005417c6a28020010300b200541106a2105200a41706a220a0d000b0b203742ffffffff0083500d1a203610300c1a0b2001201b417f6a3602042036450d190b203941016a2139200220373702a402200220363602a002200241a8036a20024198036a203a200241a0026a10af02024020022802a803221c450d00024020022802b0032205450d002005410474211b201c41086a2105034002402005280200450d002005417c6a28020010300b200541106a2105201b41706a221b0d000b0b20022802ac0341ffffffff0071450d00201c10300b20392038470d000b0b20282027411074724108742026411876722127202a202941107472211b202c202b41107472211c202e202d41107472211d20264108742025411876722224410876210520224220862222201984211920024188036a41086a20024198036a41086a2802002236360200200220022903980322373703880320012001280204417f6a360204200241e8026a41086a2036360200200220373703e8022024411874202541ffffff077172213641002101410221240c060b200241f0006a200110ac0220022802700d1e20012802002205280204221b20022802742208490d1e2008417f4c0d200240024020080d004101211e0c010b2008102f221e450d1c201e410020081087051a20012802002205280204211b0b201b2008490d07201e200528020020081085051a200528020422012008490d102008ad21192005200120086b3602042005200528020020086a36020041002101410321240c020b200241a0026a410472211e41002108034020012802002205280204221b450d1e2005280200221c2d0000211d2005201b417f6a3602042005201c41016a360200201e20086a201d3a0000200841016a2205210820054120470d000b200241bb026a2800002136200241c2026a2f01002127200241bf026a2f00002108200241c1026a2d0000211b200241b8026a2f01002101200241a0026a41086a2903002137200241a0026a41106a290300211920022802a4022105200241be036a200241ba026a2d00003a0000200220193702b403200220373702ac03200220013b01bc03200220053602a803200541087421012008201b41107472210520022900b30322194280808080708321222037421888a7210820022800bb03212320022800ab03211e410421240c030b200241f8006a200110ac0220022802780d1c20012802002205280204221b200228027c2208490d1c2008417f4c0d1e0240024020080d004101211e0c010b2008102f221e450d1a201e410020081087051a20012802002205280204211b0b02400240201b2008490d00201e200528020020081085051a2005280204220120084f0d012008200141f0f5c100104a000b201e10300c1d0b2008ad21192005200120086b3602042005200528020020086a36020041002101410521240b420021220b0b0b20024180026a41086a200241e8026a41086a280200360200200220022903e80237038002200120247221242022201942ffffffff0f83842119410121010b200241f0016a41086a222520024180026a41086a28020036020020022002290380023703f0012000413b6a201d4110763a0000200041396a201d3b0000200041346a201c4110763a0000200041326a201c3b01002000412d6a201b4110763a00002000412b6a201b3b0000200041226a20054110763a0000200041206a20053b0100200041d0006a2034360200200041cc006a201f360200200041c8006a2020360200200041c4006a2033360200200041c0006a20213602002000413c6a2032360200200041356a20313600002000412e6a2030360100200041276a202f360000200041236a20273600002000411c6a2036360200200041186a2023360200200041106a20193702002000410c6a2008360200200041086a201e3602002000202436020420004180016a200f4110763a0000200041fe006a200f3b0100200041f9006a200e4110763a0000200041f7006a200e3b0000200041f2006a200d4110763a0000200041f0006a200d3b0100200041e3006a200c4110763a00002000200c3b0061200041e4006a200b360200200041e8006a2007360200200041ec006a200a360200200041f3006a2010360000200041fa006a2011360100200041e0006a20043a0000200041dc006a2025280200360200200041d4006a20022903f001370200200020022f01b0013b00810120004183016a200241b0016a41026a2d00003a000020004184016a20033a000020004188016a20183600002000418f016a201436000020004196016a2015360000200020022f01ac013b00850120004187016a200241ac016a41026a2d00003a00002000418e016a200241a8016a41026a2d00003a00002000418c016a20022f01a8013b000020004195016a200241a4016a41026a2d00003a0000200020022f01a4013b0093012000419c016a200241a0016a41026a2d00003a0000200020022f01a0013b009a012000419d016a2016360000200041a3016a2002419c016a41026a2d00003a0000200020022f019c013b00a101200041a4016a2017360000200041aa016a20024198016a41026a2d00003a0000200041a8016a20022f0198013b0000200041ab016a2009360000200041b1016a20024194016a41026a2d00003a0000200020022f0194013b00af01200041b2016a2013360000200041b8016a20024190016a41026a2d00003a0000200020022f0190013b00b6012000201a3a00c501200041bd016a2006370000200041b9016a2012360000200020013602000c180b201e10300c160b200128020022052802042201450d1520052001417f6a3602042005200528020041016a3602000c150b200041023602000c150b2005200141f0f5c100104a000b2005201c41f0f5c100104a000b201b201e41f0f5c100104a000b2008201b41f0f5c100104a000b2005202441f0f5c100104a000b2005201d41f0f5c100104a000b2008200141f0f5c100104a000b2005200141f0f5c100104a000b2005200141f0f5c100104a000b2005201c41f0f5c100104a000b2005200141f0f5c100104a000b200241a0026a41086a20024198036a41086a28020036020020022002290398033703a002200241a0026a10e30120012001280204417f6a3602040b02402034450d002034410474210a4100210503400240202020056a220141086a280200450d00200141046a28020010300b200a200541106a2205470d000b0b201f41ffffffff0071450d010b202010300b02402033450d002033410c6c21012032210503400240200541046a280200450d00200528020010300b2005410c6a2105200141746a22010d000b0b2021450d002021410c6c450d00203210300b2008450d040b201e10300c030b102a000b02402019422088a72205450d00200541186c21012008210503400240200541046a280200450d00200528020010300b0240200541106a280200450d002005410c6a28020010300b200541186a2105200141686a22010d000b0b2019a72205450d01200541186c450d010b200810300b2000410236020020034103460d00200441ff01714102470d002007450d00200b10300b200241c0036a24000f0b102c000bfb0201057f02400240200128020022022802042203450d00200228020022042d0000210520022003417f6a360204410121032002200441016a3602000240200541037122024103460d0002400240024020020e03000102000b20054102762102410021030c040b200128020022022802042203450d02200228020022012d0000210420022003417f6a360204410121032002200141016a3602002004410874200572220141ffff0371418002490d03200141fcff03714102762102410021030c030b2001280200220228020422034103490d012002280200220141026a2d0000210420012f000021062002200141036a36020020022003417d6a3602042006200441107472410874200572220241808004492103200241027621020c020b0240200541034d0d000c020b2001280200220128020422054104490d0120012802002203280000210220012005417c6a3602042001200341046a36020020024180808080044921030c010b410121030b20002002360204200020033602000be60101047f0240024002400240200128020022022802042203450d00200228020022042d0000210520022003417f6a3602042002200441016a36020020050e020203010b200041023602000f0b200041023602000f0b200041003602000f0b024002402001280200220228020422034104490d0020022802002204280000210520022003417c6a3602042002200441046a36020020012802002202280204220141034b0d010b200041023602000f0b200020053602042000410136020020022802002203280000210420022001417c6a3602042002200341046a360200200041086a20043602000bd10503037f017e087f230041306b22022400200241086a200110ac02024002402002280208450d00200041003602000c010b024002400240200228020c22032001280200280204410c6e2204200420034b1bad420c7e2205422088a70d002005a72204417f4c0d00024002400240024020040d00410421060c010b2004102f2206450d010b2001200128020441016a22073602042004410c6e2108024002400240200720012802084b0d0020030d01410021030c070b200041003602000c010b41002109410021074100210a024003402002200110ac0220022802000d012001280200220b280204220c20022802042204490d012004417f4c0d050240024020040d004101210d0c010b2004102f220d450d04200d410020041087051a2001280200220b280204210c0b0240200c2004490d00200d200b2802002004108505210d200b280204220c2004490d05200b200c20046b360204200b200b28020020046a3602000240200a2008470d002009200a41016a220b2009200b4b1b220b4104200b41044b1bad420c7e2205422088a745410274210b2005a7210c02400240200a0d00200241003602200c010b2002410436022820022007360224200220063602200b200241106a200c200b200241206a10692002280218210b024020022802104101470d00200b0d060c080b20022802142106200b410c6e21080b200620076a220b200d360200200b41046a2004ad2205422086200584370200200941026a21092007410c6a21072003200a41016a220a460d070c010b0b200d10300b20004100360200200a450d002006210403400240200441046a280200450d00200428020010300b2004410c6a2104200741746a22070d000b0b2008450d052008410c6c450d05200610300c050b102a000b2004200c41f0f5c100104a000b102c000b200128020421070b2000200836020420002006360200200041086a200336020020012007417f6a3602040b200241306a24000bd115030a7f017e087f230041e0006b2204240002400240024002400240024002400240024002400240024002400240024020012802042205450d00200128020021060c010b41b801102f2205450d0141002106200541003b01b6012005410036020020012005360204200141003602000b034020052f01b6012207410c6c210841002109417f210a200541046a220b210c02400340024020082009470d002007210a0c020b200c280200210d200a41016a210a2009410c6a2109200c41046a210c417f200d200247200d20024b1b220d4101460d000b0240200d41016a0e020100010b200441d0006a41086a200341086a280200220c36020020042003290200220e370350200041086a200520096a2209412c6a220d2802003602002000200941246a22092902003702002009200e370200200d200c3602000c0e0b02402006450d002006417f6a21062005200a4102746a41b8016a28020021050c010b0b200441086a200341086a22092802003602002004200329020037030002402007410a4b0d00200441c0006a41086a200928020036020020042003290200370340200a41016a21080240200a20074f220c0d00200b20084102746a200b200a4102746a2007200a6b4102741086051a0b200b200a4102746a2002360200200441d0006a41086a220d200441c0006a41086a28020036020020042004290340370350200541306a21090240200c0d0020092008410c6c6a2009200a410c6c6a2007200a6b410c6c1086051a0b2009200a410c6c6a22092004290350370200200941086a200d2802003602002005200741016a3b01b6010c0b0b410521094100210602400240200a41054f0d0041042109200a210c0c010b4105210c02400240200a417b6a0e020201000b200a41796a210c41012106410621090c010b4100210c410121060b41b801102f220d450d00200d41003b01b601200d4100360200200d20052f01b60122072009417f736a220a3b01b601200b20094102746a2802002103200441d0006a41086a200541306a220f2009410c6c6a220841086a28020036020020042008290200370350200a410c4f0d012007200941016a22086b200a470d02200d41046a200b20084102746a200a4102741085051a200d41306a200f2008410c6c6a200a410c6c1085051a200520093b01b601200441306a41086a200441d0006a41086a220728020036020020042004290350370330200441c0006a41086a220b200441086a28020036020020042004290300370340200d200520061b220941046a210a0240200c41016a220620092f01b60122084b220f0d00200a20064102746a200a200c4102746a2008200c6b4102741086051a0b200a200c4102746a20023602002007200b28020036020020042004290340370350200941306a210a0240200f0d00200a2006410c6c6a200a200c410c6c6a2008200c6b410c6c1086051a0b200a200c410c6c6a220c2004290350370200200c41086a200441d0006a41086a22072802003602002009200841016a3b01b601200441206a41086a2210200441306a41086a2211280200220936020020042004290330220e370320200441106a41086a220b20093602002004200e370310024002400240200528020022090d004100210f0c010b4100210f20032112200d2113034020052f01b40121022010200b28020036020020042004290310370320200922062f01b6012205410b490d024100210841042109024020024105490d0020022109024002402002417b6a0e020201000b200241796a210241012108410621090c010b4100210241012108410521090b41e801102f220d450d03200d41003b01b601200d4100360200200d20062f01b60122142009417f736a220c3b01b601200641046a221520094102746a28020021032007200641306a22162009410c6c6a220a41086a2802003602002004200a290200370350200c410c4f0d062014200941016a220a6b200c470d07200d41046a2015200a41027422146a200c4102741085051a200d41306a2016200a410c6c6a200c410c6c1085051a200620093b01b601200441c0006a41086a2215200728020036020020042004290350370340200d2f01b601220c41016a210a200c410c4f0d08200520096b2209200a470d09200f41016a210f200d41b8016a200620146a41b8016a20094102741085051a4100210902400340200d20094102746a41b8016a280200220a20093b01b401200a200d3602002009200c4f0d0120092009200c496a2209200c4d0d000b0b2011201528020036020020042004290340370330200d200620081b220a41046a21080240200241016a2209200a2f01b601220c4b22140d00200820094102746a200820024102746a200c20026b4102741086051a0b2008200241027422156a20123602002007201028020036020020042004290320370350200a41306a2105024020140d0020052009410c6c6a20052002410c6c6a200c20026b410c6c1086051a0b200c41016a210820052002410c6c6a22052004290350370200200541086a2007280200360200200a41b8016a21050240200241026a2214200c41026a22124f0d00200520144102746a200520094102746a200c20026b4102741086051a0b200520094102746a2013360200200a20083b01b6010240200920124f0d00200a20156a41bc016a210903402009280200220c200241016a22023b01b401200c200a360200200941046a210920082002470d000b0b200b2011280200360200200420042903303703102006210520032112200d2113200628020022090d000b0b2007200b280200360200200420042903103703502001280204220c450d082001280200210a41e801102f2209450d012009200c3602b801200941003b01b60120094100360200200c41003b01b401200c2009360200200120093602042001200a41016a360200200a200f470d0920092f01b601220c410b4f0d0a2009200c41016a220a3b01b6012009200c410c6c6a220241306a2004290350370200200241386a200441d8006a2802003602002009200c4102746a41046a2003360200200941b8016a200a4102746a200d360200200d200a3b01b401200d20093602002001200128020841016a3602080c0c0b200641046a21090240200520024d220c0d00200920024102746a220d41046a200d200520026b4102741086051a0b200920024102746a2012360200200441d0006a41086a220a200441106a41086a28020036020020042004290310370350200241016a2109200641306a210d0240200c0d00200d2009410c6c6a200d2002410c6c6a200520026b410c6c1086051a0b200541016a2108200d2002410c6c6a220d2004290350370200200d41086a200a280200360200200641b8016a210d200541026a210a0240200c0d002002410274200d6a41086a200d20094102746a200520026b4102741086051a0b200620083b01b601200d20094102746a20133602002009200a4f0d0a200541016a210a20062009417f6a22094102746a41bc016a210c0340200c280200220d200941016a22093b01b401200d2006360200200c41046a210c200a2009470d000c0b0b0b102a000b200a410b41e8a2c2001042000b41f8a2c200412841a0a3c200102d000b200c410b41e8a2c2001042000b41f8a2c200412841a0a3c200102d000b200a410c41f8a3c2001042000b41f8a2c200412841a0a3c200102d000b41b2abc200412b41e0abc200102d000b41eaa0c2004130419ca1c200102d000b41aca1c200412041cca1c200102d000b2001200128020841016a3602080b200041003602000b200441e0006a24000bcf0701077f230041a0046b220224000240024002400240024020014184016a22032d00004103470d00200241206a200141e0001085051a410021010c010b20024186016a200341c2001085051a200141e8006a2802002104200141e4006a28020021054101210302400240024020012d00600e03000201020b200241f2016a200141e3006a2d00003a0000200241c0036a200141f4006a290000370300200241c5036a200141f9006a2900003700002002200141e1006a2f00003b01f0012002200141ec006a2900003703b803410021030c010b2004450d00200510300b200241ec016a41026a2206200241f0016a41026a2d00003a0000200241d0026a41086a2207200241b8036a41086a290300370300200241d0026a410d6a2208200241b8036a410d6a290000370000200220022f01f0013b01ec01200220022903b8033703d00202402003450d00200041013b0001200041013a0000200041036a41003a00000c030b200241db016a2007290300370000200241e0016a2008290000370000200220022f01ec013b01c801200220043600cf01200220053600cb01200220022903d0023700d301200220062d00003a00ca01200241b8036a41046a200141e0001085051a200241d0026a200241b8036a41e4001085051a200241f0016a200241d0026a41046a41e0001085051a200241003602d802200242013703d0020240024020022802f0014101460d00200241003a00b803200241d0026a200241b8036a41011064200241f8016a200241d0026a10b1020c010b200241013a00b803200241d0026a200241b8036a41011064200241f0016a410472200241d0026a109b020b20022802d00221040240024020022802d8022205418102490d00200241b8036a20042005106520024186016a200241b8036a4120200241c8016a10fa0121040c010b20024186016a20042005200241c8016a10fa0121040b024020022802d402450d0020022802d00210300b2004450d01200241186a200241c8016a41186a290300370300200241106a200241c8016a41106a290300370300200241086a200241c8016a41086a290300370300200220022903c801370300200241206a200241f0016a41e0001085051a410121010b200041086a200241206a41e0001085051a200041e8006a20013a0000200041003a0000200041e9006a2002290300370000200041f1006a200241086a290300370000200041f9006a200241106a29030037000020004181016a200241186a2903003700000c020b20004180083b0001200041013a0000200041036a41003a0000200241f0016a10b2020b2003450d00200110b2020b200241a0046a24000bb30501027f230041106b22022400024002400240024002400240024002400240024002402000280200417f6a0e0a000102030405060708090a0b200241003a00082001200241086a41011064200220002802043602082001200241086a410410640c090b200241013a00082001200241086a4101106420002802042000410c6a280200200110a6010c080b200241023a00082001200241086a410110642002200041086a2903003703082001200241086a410810640c070b200241033a00082001200241086a4101106420002802042000410c6a280200200110a6010c060b200241043a00082001200241086a4101106420002802042000410c6a280200200110a6010c050b200241053a00082001200241086a41011064024020002802044101460d00200241003a00082001200241086a410110640c050b200241013a00082001200241086a410110642002200041086a2802003602082001200241086a4104106420022000410c6a2802003602082001200241086a410410640c040b200241063a00082001200241086a410110642000280204210320012000410c6a280200220010a5012000450d032003200041186c6a210003402003280200200341086a280200200110a6012003410c6a280200200341146a280200200110a601200341186a22032000470d000c040b0b200241073a00082001200241086a410110642000280204210320012000410c6a280200220010a5012000450d0220032000410c6c6a210003402003280200200341086a280200200110a6012003410c6a22032000470d000c030b0b200241083a00082001200241086a4101106420002802042000410c6a280200200110a6012002200041106a2802003602082001200241086a410410640c010b200241093a00082001200241086a4101106420002802042000410c6a280200200110a6010b200241106a24000bce0501027f0240024020002802004101460d000240024002400240024002400240200041086a280200417f6a0e09080008010208030405060b200041106a280200450d072000410c6a28020010300f0b200041106a280200450d062000410c6a28020010300f0b200041106a280200450d052000410c6a28020010300f0b0240200041146a2802002201450d002000410c6a2802002102200141186c210103400240200241046a280200450d00200228020010300b0240200241106a280200450d002002410c6a28020010300b200241186a2102200141686a22010d000b0b200041106a2802002202450d04200241186c450d04200028020c10300f0b0240200041146a2802002201450d002000410c6a28020021022001410c6c210103400240200241046a280200450d00200228020010300b2002410c6a2102200141746a22010d000b0b200041106a2802002202450d032002410c6c450d03200028020c10300c030b200041106a280200450d022000410c6a28020010300f0b200041106a280200450d012000410c6a28020010300f0b02400240024020002d0004417f6a0e0403000103020b02402000410c6a280200450d00200041086a28020010300b0240200041c4006a2802002201450d002000413c6a28020021022001410c6c210103400240200241046a280200450d00200228020010300b2002410c6a2102200141746a22010d000b0b0240200041c0006a2802002202450d002002410c6c450d00200028023c10300b0240200041d0006a2802002202450d0020024104742101200041c8006a28020041086a2102034002402002280200450d002002417c6a28020010300b200241106a2102200141706a22010d000b0b0240200041cc006a28020041ffffffff0071450d00200028024810300b200041d4006a10e3010f0b2000410c6a280200450d01200041086a28020010300f0b2000410c6a280200450d00200041086a28020010300f0b0b950201067f230041206b22022400024002402000280210220341046a280200220420002802042205200028020022066a22076b2001490d00200328020021040c010b0240200720016a22062007490d00200441017422052006200520064b1b22064108200641084b1b21060240024020040d00200241003602100c010b200241106a41086a410136020020022004360214200220032802003602100b200220064101200241106a1069200241086a2802002106024020022802004101460d00200320022802042204360200200341046a200636020020002802042105200028020021060c020b2006450d00102a000b102c000b2004200620016a22016a200420066a20051086051a20002001360200200241206a24000bc80101017f02400240024002402002450d0020014100480d01024002400240200328020022040d0020010d01410121020c020b0240200328020422030d0020010d01410121020c020b2001102f2202450d042002200420031085051a200410300c010b2001102f2202450d030b20002002360204410021020c030b2000200136020420004101360200200041086a41003602000f0b20004101360200200041086a41003602000f0b2000200136020441012101410121020b20002002360200200041086a20013602000bde07010e7f230041206b22022400200141186a2802002103200141146a2802002104200128021021052001280204210620012802002107200141086a2f010022084180fe037141087621092001410c6a2f0100220a210b024002400240024003400240024002400240024002400240024002402007417e6a0e020105000b0240200841ff01714102460d0020084101712101410021082001450d002009210c0c040b4102210820074101470d002006450d00200641ff014b0d012006417f6a210c41012107410021060c020b0240200b41ff01714102470d004102210b0c040b200b41017121014100210b2001450d03200a4180fe0371410876210c410221070c020b200641817e6a210641ff01210c410121070b410221080b200041086a2802002201200041046a280200470d03024020074103470d00200545210d2005210e0c020b024002402005450d000240024020074102470d004100210f200b41ff0171220e4102460d01200e410146210f0c010b0240200b41ff0171220f4102460d00200841ff0171410146200f4101466a210f0c010b4100210f200841ff0171220e4102460d00200e410146210f0b0240024020040d004100210e0c010b2003450d02200420036e20042003704100476a210e0b417f200f200e6a220e200e200f491b210f0c040b024020074102470d004100210f200b41ff0171220e4102460d04200e410146210f0c040b0240200b41ff0171220f4102460d00200841ff0171410146200f4101466a210f0c040b4100210f200841ff0171220e4102460d03200e410146210f0c030b4190e5c100411941ec92c200102d000b2005450d052004450d0502400240024020032004200420034b1b22010e020001020b4100410041cc93c2001033000b4101410141dc93c2001033000b200420016b2104200520016a210e20052d000041047420052d000172210c410321070240200041086a2802002201200041046a280200460d00200e21050c030b200e45210d410321070b4100210f0240200d0d002004450d002003450d06200420036e20042003704100476a210f0b200e21050b2001417f200f41016a220e200e200f491b6a220f2001490d052001410174220e200f200e200f4b1b220f4108200f41084b1b210f0240024020010d00200241003602100c010b2002410136021820022001360214200220002802003602100b2002200f4101200241106a10692002280208210f20022802004101460d0220002002280204360200200041046a200f3602000b200028020020016a200c3a0000200041086a200141016a3602000c000b0b200f450d02102a000b200241206a24000f0b4190e5c100411941ec92c200102d000b102c000bf70203057f017e067f230041106b220224000240024020014102490d000240024020002802102000280200220320002802042204200041146a2802002205200520044b1b10880522060d0020052004490d010c020b2006417f4a0d010b2000200041106a2205290200370200200041086a220629020021072006200541086a29020037020020022007370308200041106a2108024020014103490d00200041246a210520002001417f6a22064104746a21094102210a02400340024002402005417c6a220b280200200320042005280200220c200c20044b1b108805220d0d00200c2004490d010c040b200d417f4a0d020b2006450d042005416c6a220c41086a200541046a290200370200200c200b290200370200200541106a21052000200a4104746a2108200a41016a210a2006417f6a22064101470d000b200921080c010b2005416c6a21080b2008200436020420082003360200200820022903083702080b200241106a24000f0b20012001419cf8c0001033000b941d01127f230041a0056b220224000240024002402001410c6a2802002203450d00200141046a2104200141106a2105200128020422062003417f6a220741306c6a210820024190026a41046a2109200241086a41e4016a210a20024190026a41086a210b20024190026a411d6a210c034020082802002203280210210d2003280208210e4102210f0240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002402006200741306c6a22062802040e0412000102120b2003280214417e6a0e03020f03260b200628020821072003280214417d6a0e020304250b4103210f02400240024020032802140e051212010200120b2005200328021c20032802186b41017420032802206b41016a10b8010c110b2005200328021c20032802186b41017420032802206b10b8010c100b200510b8020c0f0b2003411c6a280200220f20032802182207490d04200f200d4b0d05200f20076b2110200e20076a211120032802202207410176210f024002402007410171450d002010200f4d0d0141012112200f41016a21072011200f6a2d0000410f7121130c0f0b4100211202402010200f490d0041002113200f21070c0f0b200f201041e097c200104a000b200f201041f097c2001033000b2003411c6a280200220f20032802182208490d05200f200d4b0d06200f20086b210f200e20086a2106200328022022084101762103024002402008410171450d00200f20034d0d0141012107200341016a2108200620036a2d0000410f71210d0c0c0b410021070240200f2003490d004100210d200321080c0c0b2003200f41e097c200104a000b2003200f41f097c2001033000b200341246a21030c010b200341306a21030b0240200741104f0d004104210f20032007410c6c6a22032802004102460d0b200510b8022005200710b6010240024020062d000c4101460d00200241c8046a41186a4200370300200241c8046a41106a4200370300200241c8046a41086a4200370300200242003703c8040c010b200241c8046a41186a200841256a290000370300200241c8046a41106a2008411d6a290000370300200241c8046a41086a200841156a2900003703002002200829000d3703c8040b20012802002106200341086a280200210f200341046a28020021080240024020032802004101470d00200f2008490d0741012103200f200d4d0d01200f200d41d49bc2001042000b200f2008490d0741002103200f200d4b0d080b200220033602a0042002200f20086b3602a8042002200e20086a3602a404200241f8046a200510b90220024190026a2006200241c8046a200241a0046a200241f8046a10ba02200228029002210f2002280294022110200241086a200b4185021085051a0c0b0b200741104188fbc0001033000b2007200f41c49cc2001048000b200f200d41c49cc2001042000b2008200f41c49cc2001048000b200f200d41c49cc2001042000b2008200f41d49bc2001048000b2008200f41e49bc2001048000b200f200d41e49bc2001042000b2002200d3a009102200220073a0090022002200f20086b360298022002200620086a36029402200520024190026a10b5010b2005410010b6014104210f0c010b200220133a009102200220123a0090022002201020076b360298022002201120076a36029402200520024190026a10b5010240024020062d000c4101460d00200241c8046a41186a4200370300200241c8046a41106a4200370300200241c8046a41086a4200370300200242003703c8040c010b200241c8046a41186a200841256a290000370300200241c8046a41106a2008411d6a290000370300200241c8046a41086a200841156a2900003703002002200829000d3703c8040b200128020021062003412c6a280200210f200328022821080240024020032802244101470d00200f2008490d0341012103200f200d4d0d01200f200d41d49bc2001042000b200f2008490d0341002103200f200d4b0d040b200220033602a0042002200f20086b3602a8042002200e20086a3602a404200241f8046a200510b90220024190026a2006200241c8046a200241a0046a200241f8046a10ba02200228029002210f2002280294022110200241086a200b4185021085051a0b0240024002400240200f417e6a2203410320034103491b0e0401020003010b200128020c2203450d06200341306c20012802046a41506a220341086a2106200341046a21072003280200210d4103210802400240024002400240024020032802040e03000102180b200d280214417e6a0e03020202170b41024103200d280214417d6a4102491b21084100210f0c160b20032802082103200d280214417d6a0e020102150b410121080c140b2003410f4f0d130c120b2003410f490d110c120b200128020c2203450d062001280204220a2003417f6a220d41306c6a220341086a2106200341046a2107200328020021094103210802400240024002400240024020032802040e03000102150b2009280214417e6a0e03020202140b410241032009280214417d6a4102491b21084100210f0c130b2003280208210e2009280214417d6a0e020102120b410121080c110b200e410f4f0d100c0f0b200e410f490d0e0c0f0b200128020c2203450d0620012003417f6a220336020c2001280204200341306c6a22032802044104460d06200328020022032003280200417f6a220f3602000240200f0d0002402003410c6a280200450d00200328020810300b200341046a220f200f280200417f6a220f360200200f0d00200310300b0240200128020c2203450d00200341306c20012802046a41506a220341086a2106200341046a21072003280200210d4103210802400240024002400240024020032802040e03000102130b200d280214417e6a0e03020202120b41024103200d280214417d6a4102491b21084100210f0c110b20032802082103200d280214417d6a0e020102100b410121080c0f0b2003410f4f0d0e0c0d0b2003410f490d0c0c0d0b200041023602000c140b200f450d09200128020c2203450d06200341306c20012802046a41506a220141086a2108200141046a2106200128020021074103210f02400240024002400240024020012802040e030001020e0b2007280214417e6a0e030202020d0b410241032007280214417d6a4102491b210f410021030c0c0b200128020821012007280214417d6a0e0201020b0b4101210f0c0a0b2001410f4f0d090c080b2001410f490d070c080b2008200f41d49bc2001048000b2008200f41e49bc2001048000b200f200d41e49bc2001042000b41a8f9c000419d0141c8fac0001050000b41a8f9c000419d0141d8fac0001050000b41a8f9c000419d0141e8fac0001050000b41a8f9c000419d0141f8fac0001050000b200141016a21034102210f0b200820033602002006200f36020020002010360204200041013602000c0a0b200941206a200a41206a2d00003a0000200941186a200a41186a290200370200200941106a200a41106a290200370200200941086a200a41086a2902003702002009200a290200370200024041f001102f220f450d00200f2010360208200f410c6a200241086a41e4011085051a200f4281808080103702000240200128020c2203200141086a280200470d00200410bb02200128020c21030b2001280204200341306c6a220341003602042003200f360200200320022f00c8043b002d200341086a200229029002370200200341106a200b290200370200200341186a20024190026a41106a290200370200200341206a20024190026a41186a290200370200200341256a200c2900003700002003412f6a200241c8046a41026a2d00003a00002001200128020c41016a220336020c0c070b102a000b200341016a210f410221080b2006200f36020020072008360200200128020c21030c040b200e41016a210f410221080b2006200f3602002007200836020002400240200128021022084125490d002001411c6a2802002108200141186a280200210f0c010b200141156a210f0b200241003a009402200241003602900220024190026a200f200f20086a10bc02200241c8046a41086a220e20024190026a41086a220f290300370300200241c8046a41106a220420024190026a41106a2208290300370300200241c8046a41186a220520024190026a41186a2206290300370300200241c8046a41206a221020024190026a41206a2207290300370300200241c8046a41286a220b20024190026a41286a220928020036020020022002290390023703c8042001413c6a280200210c200241f8046a41206a2211200a200d41306c6a2201412c6a2d00003a0000200241f8046a41186a220a200141246a290000370300200241f8046a41106a220d2001411c6a290000370300200241f8046a41086a2212200141146a2900003703002002200129000c3703f80402402003280200220128020041016a220341014d0d0020012003360200200f200e2903003703002008200429030037030020062005290300370300200720102903003703002009200b280200360200200241a0046a41086a22032012290300370300200241a0046a41106a220e200d290300370300200241a0046a41186a220d200a290300370300200241a0046a41206a220a20112d00003a0000200220022903c80437039002200220022903f8043703a0042000410036020020002002290390023702042000410c6a200f290300370200200041146a20082903003702002000411c6a2006290300370200200041246a20072903003702002000412c6a2009280200360200200041306a200c360200200041346a20022903a0043702002000413c6a2003290300370200200041c4006a200e290300370200200041cc006a200d290300370200200041d4006a200a2d00003a0000200041d8006a20013602000c060b00000b200341016a210f410221080b2006200f36020020072008360200200128020c21030b200428020022062003417f6a220741306c6a210820030d000b0b200041023602000b200241a0056a24000f0b41acf8c00041eb004198f9c000102d000bc50201067f230041106b22012400024002400240200028022c2202450d0002400240200028020022034125490d002000410c6a22042802002103200041086a28020021050c010b200041056a2105200021040b2003450d0120042003417f6a2203360200200520036a2d0000210520002002417f6a220336022c2003410171450d0002400240200028020022044125490d002000410c6a22022802002103200041086a28020021060c010b200041056a21062004210320002102412421040b024020032004470d0020012000410110bd02024020012802004101470d00200141086a2802000d0441d099c200411141e499c200102d000b2000410c6a22022802002103200041086a28020021060b200620036a200541f001713a00002002200228020041016a3602000b200141106a24000f0b418b96c200412241b096c2001050000b102a000ba60201047f200128022c220241017621030240024002400240024020024101710d0002400240200128020022024125490d002001410c6a2802002102200141086a28020021010c010b200141056a21010b20022003490d0220002001360200410021010c010b02400240200128020022024125490d002001410c6a2802002104200141086a28020021050c010b200141056a2105200221040b20042003490d020240024020024125490d002001410c6a2802002102200141086a28020021010c010b200141056a21010b200220034d0d0320002005360200200041096a200120036a2d000041f001713a0000410121010b200020013a0008200020033602040f0b2003200241e096c2001042000b2003200441f096c2001042000b20032002418097c2001033000b810d03047f017e047f230041b0076b22052400200341086a2802002106200328020421070240024002400240024002400240200328020022084101470d002006417f4c0d030240024020060d00410121030c010b2006102f2203450d050b2003200720061085051a2006ad220942208620098421094100210a0c010b0240024020064120460d002006417f4c0d040240024020060d00410121030c010b2006102f2203450d060b20032007200610850521074130102f2203450d05200341043a00002003200636002c200320063600282003200736002420032002290000370001200341096a200241086a290000370000200341116a200241106a290000370000200341196a200241186a2900003700000c010b200541086a41026a200741026a2d00003a0000200541f8036a2007410f6a29000037030020054180046a200741176a29000037030020054188046a2007411f6a2d00003a0000200520072f00003b0108200520072900073703f003200728000321030b2005412c6a41026a2207200541086a41026a2d00003a0000200541306a41086a220a200541f0036a41086a220b290300370300200541306a41106a220c200541f0036a41106a290300370300200541306a41186a220d200541f0036a41186a280200360200200520052f01083b012c200520052903f00337033020064120470d01200541df056a200a290300370000200541e7056a200c290300370000200541ef056a200d2d00003a0000200520052f012c3b01d005200520052903303700d705200520033600d305200520072d00003a00d2052001280200210620012802042103200b200441086a280200360200200520042902003703f003200541306a2006200541d0056a200541f0036a200328020c1103000240200528023022030d0002400240200441046a2802000d0020042d00080d004130102f2206450d06200641003a0000200620052903d005370001200641096a200541d8056a290300370000200641116a200541e0056a290300370000200641196a200541e8056a2903003700000c010b4130102f2206450d05200641013a0000200620052903d005370001200641096a200541d8056a290300370000200641116a200541e0056a290300370000200641196a200541e8056a2903003700000b20004101360200200020063602040c060b20054190026a41086a200541d0056a41086a29030037030020054190026a41106a200541d0056a41106a29030037030020054190026a41186a200541d0056a41186a290300370300200520052903d00537039002200529023421094101210a0b200541086a41186a220720054190026a41186a290300370300200541086a41106a220420054190026a41106a290300370300200541086a41086a220120054190026a41086a2903003703002005200529039002370308200541d0056a20032009422088a710ce0320052d00d105210b20052d00d0052106200541f0036a200541d0056a41027241de011085051a20064101470d0302402009a7450d00200310300b024002402008450d00200541f0036a41186a200241186a290000370300200541f0036a41106a200241106a290000370300200541f0036a41086a200241086a290000370300200520022900003703f0030c010b200541f0036a41186a200541086a41186a290300370300200541f0036a41106a200541086a41106a290300370300200541f0036a41086a200541086a41086a290300370300200520052903083703f0030b200541d0056a41186a2203200541f0036a41186a290300370300200541d0056a41106a2207200541f0036a41106a290300370300200541d0056a41086a2202200541f0036a41086a290300370300200520052903f0033703d0054130102f2206450d02200641033a0000200620052903d0053700012006200b41ff01714100473a0021200641096a2002290300370000200641116a2007290300370000200641196a2003290300370000200541306a20054190026a41dc011085051a20004101360200200020063602040c040b20004101360200200020033602040c030b102c000b102a000b20054190026a200541f0036a41026a41dc011085051a200541306a20054190026a41dc011085051a200041086a2009370200200041106a200541306a41dc011085051a200041ec016a200a3a000020002003360204200020052903083700ed01200041f5016a2001290300370000200041fd016a200429030037000020004185026a2007290300370000200041003602000b200541b0076a24000be00102047f017e230041206b22012400024002400240200041046a28020020002802082202470d00200241016a22032002490d02200241017422042003200420034b1b22034104200341044b1bad42307e2205422088a74541027421032005a721040240024020020d00200141003602100c010b200141186a41043602002001200241306c360214200120002802003602100b200120042003200141106a1069200141086a280200210220012802004101460d0120002001280204360200200041046a200241306e3602000b200141206a24000f0b2002450d00102a000b102c000b9b0301087f230041106b2203240020032000200220016b10bd020240024020032802004101470d00200341086a2802000d0141d099c200411141e499c200102d000b02400240200028020022044125490d002000410c6a22052802002106200041086a28020021070c010b200041056a21072004210620002105412421040b024002400240200620044f0d00034020022001460d02200720066a20012d00003a0000200141016a21012004200641016a2206470d000b200421060b2005200636020020012002460d012000410c6a2108200041056a2109034002400240200028020022074125490d00200028020c210620002802082105200821040c010b200721062000210420092105412421070b20012d0000210a024020062007470d0020032000410110bd02024020032802004101470d00200341086a2802000d0541d099c200411141e499c200102d000b200028020c210620002802082105200821040b200520066a200a3a00002004200428020041016a3602002002200141016a2201470d000c020b0b200520063602000b200341106a24000f0b102a000bbe0301057f02400240200128020022034125490d002001410c6a2802002104200321050c010b41242105200321040b0240200520046b2002490d00200041003602000f0b024002400240200420026a22022004490d004100417f2002417f6a677620024102491b220441016a22052004490d000240024020034125490d002001410c6a2802002104200141086a2802002102200321060c010b200141056a210241242106200321040b200420054b0d0102400240200541244b0d000240200341244b0d00200041003602000f0b200141003a0004200141056a200220041085051a20012004360200200210300c010b20062005460d002005102f210702400240200341244b0d0002402007450d002007200220041085051a0c020b2000200536020420004101360200200041086a41013602000f0b2007450d042007200220052006200620054b1b1085051a200210300b200141013a0004200120053602002001410c6a2004360200200141086a20073602000b200041003602000f0b2000200536020420004101360200200041086a41003602000f0b41c29ac200412041e49ac200102d000b2000200536020420004101360200200041086a41013602000b0900200041003602000b0900200041013602000b2200200041013602002003200428020011020002402004280204450d00200310300b0b5701017f230041206b22032400200341086a200141086a28020036020020032001290200370300200341106a41086a200241086a2802003602002003200229020037031020002003200341106a10c202200341206a24000bb80501047f23004190016b2203240002400240024002402001280208410f490d0041fc8fc20020012802002204410f1088050d00024020022802002200450d00200241046a280200450d00200010300b200141046a280200450d01200410300c010b0240200041086a2802002204280224450d002004106c0b200420032903683703002004410036022420042003290330370328200441206a200341e8006a41206a280200360200200441186a200341e8006a41186a290300370300200441106a200341e8006a41106a290300370300200441086a200341e8006a41086a290300370300200441306a200341306a41086a290300370300200441386a200341306a41106a290300370300200441c0006a200341306a41186a290300370300200441c8006a200341306a41206a290300370300200441d0006a200341306a41286a290300370300200441d8006a200341306a41306a290300370300200441003a0060200441e1006a2003290008370000200441e9006a200341086a41086a290000370000200441f1006a200341086a41106a290000370000200441f9006a200341086a41186a29000037000020044180016a200341276a290000370000200028020022042802200d01200241086a2802002100200228020021052002280204210620044100360220200441286a2202200229030042017c37030020042802300d0220044100360230200441386a220220022903002000ad420020051b7c370300200341086a41086a200141086a28020036020020032001290200370308200341306a41086a200036020020032006360234200320053602302003200410c302200441c0006a200341086a200341306a2003280200200328020410c4020b20034190016a24000f0b41b082c2004110200341306a41c082c20041d483c2001034000b41b082c2004110200341306a41c082c20041e483c2001034000bb30302047f017e230041106b22022400024002400240024002400240024020012d0088020d00410021030c010b410121030240200141c0006a41fc8ac200411010e60222040d00417f21010c010b02400240200428020022054106490d00200428020c2105200428020821040c010b200441086a21040b2004450d012005450d01024020042005417f6a41186c6a22042802000d0020012802000d03200141003602002001200129030842017c37030820012802100d0420014100360210417f21010c010b20012802000d04200441086a22053502002106200141003602002001200129030842017c37030820012802100d0520014100360210200141186a2201200129030020067c370300417f210120052802004104490d00200428020028000021010b2000200136020420002003360200200241106a24000f0b418486c20041fc00418087c2001050000b41b082c2004110200241086a41c082c20041b483c2001034000b41b082c2004110200241086a41c082c20041c483c2001034000b41b082c2004110200241086a41c082c20041b483c2001034000b41b082c2004110200241086a41c082c20041c483c2001034000b8c16050e7f017e017f017e037f23004180056b22052400024002400240024020012802082206417f4c0d002001280200210702400240024002400240024002400240024002400240024020060d00410121080c010b2006102f2208450d010b2008200720061085052109024002402000280204220a450d002000280200210b0c010b418c0c102f220a450d014100210b200a41003b018a0c200a41003602002000200a360204200041003602000b0340200a2f018a0c220c410c6c210d4178210e200a41046a220f210841002110024003400240200d0d00200c21100c020b0240024020092008280200200828020822112006200620114b1b10880522120d0020062011490d03200620114721110c010b4101211120124100480d020b2008410c6a2108201041016a2110200e41807f6a210e200d41746a210d20110d000b02402006450d00200910300b200a200e6b210b0c0f0b0240200b450d00200b417f6a210b200a20104102746a418c0c6a280200210a0c010b0b0240200c410a4b0d00201041016a211102402010200c4f220d0d00200f2011410c6c6a200f2010410c6c6a200c20106b410c6c1086051a0b200f2010410c6c6a22082006360208200820063602042008200936020020054180046a20054180036a41f8001085051a200a4188016a21080240200d0d00200820114107746a200820104107746a200c20106b4107741086051a0b200820104107746a220b4200370200200b41086a20054180046a41f8001085051a200a200c41016a3b018a0c0c0c0b410521084100211202400240201041054f0d00410421082010210d0c010b4105210d024002402010417b6a0e020201000b201041796a210d41012112410621080c010b4100210d410121120b418c0c102f2211450d00201141003b018a0c201141003602002011200a2f018a0c220b2008417f736a22103b018a0c200f2008410c6c6a220e2902042113200e280200210c20054180046a200a4188016a220720084107746a4180011085051a2010410c4f0d01200b200841016a220e6b2010470d02201141046a200f200e410c6c6a2010410c6c1085051a20114188016a2007200e4107746a20104107741085051a200a20083b018a0c20054180036a20054180046a4180011085051a2011200a20121b220841046a21100240200d41016a221220082f018a0c220e4b220b0d0020102012410c6c6a2010200d410c6c6a200e200d6b410c6c1086051a0b2010200d410c6c6a22102006360208201020063602042010200936020020054180046a20054180016a41f8001085051a20084188016a21060240200b0d00200620124107746a2006200d4107746a200e200d6b4107741086051a0b2006200d4107746a220b4200370200200b41086a20054180046a41f8001085051a2008200e41016a3b018a0c20054180026a20054180036a4180011085051a200520054180026a4180011085052112024002400240200a28020022080d00410021070c010b410021072011211420132115200c21160340200a2f01880c211020124180016a20124180011085051a200822092f018a0c220f410b490d024100210a41042108024020104105490d0020102108024002402010417b6a0e020201000b201041796a21104101210a410621080c010b410021104101210a410521080b41bc0c102f2211450d03201141003b018a0c20114100360200201120092f018a0c22172008417f736a220d3b018a0c20092008410c6c6a220641086a2902002113200641046a280200210c20124180046a20094188016a221820084107746a4180011085051a200d410c4f0d062017200841016a220e6b200d470d07201141046a200641106a200d410c6c1085051a20114188016a2018200e4107746a200d4107741085051a200920083b018a0c20124180036a20124180046a4180011085051a20112f018a0c220d41016a2106200d410c4f0d08200f20086b22082006470d09200741016a21072011418c0c6a2009200e4102746a418c0c6a20084102741085051a4100210802400340201120084102746a418c0c6a280200220620083b01880c200620113602002008200d4f0d0120082008200d496a2208200d4d0d000b0b20124180026a20124180036a4180011085051a20112009200a1b220641046a210e0240201041016a220820062f018a0c220d4b220f0d00200e2008410c6c6a200e2010410c6c6a200d20106b410c6c1086051a0b200e2010410c6c6a220e2015370204200e201636020020124180046a20124180016a4180011085051a20064188016a210a0240200f0d00200a20084107746a200a20104107746a200d20106b4107741086051a0b200d41016a210e200a20104107746a20124180046a4180011085051a2006418c0c6a210a0240201041026a2216200d41026a220f4f0d00200a20164102746a200a20084102746a200d20106b4102741086051a0b200a20084102746a20143602002006200e3b018a0c02402008200f4f0d00200620104102746a41900c6a210803402008280200220d201041016a22103b01880c200d2006360200200841046a2108200e2010470d000b0b201220124180026a4180011085051a2009210a2011211420132115200c2116200928020022080d000b0b20124180046a20124180011085051a2000280204220d450d082000280200210641bc0c102f2208450d012008200d36028c0c200841003b018a0c20084100360200200d41003b01880c200d2008360200200020083602042000200641016a36020020062007470d0920082f018a0c220d410b4f0d0a2008200d41016a22063b018a0c2008200d410c6c6a221041086a2013370200201041046a200c3602002008200d4107746a4188016a20124180046a4180011085051a2008418c0c6a20064102746a2011360200201120063b01880c201120083602002000200028020841016a3602080c0d0b200941046a21080240200f20104d220d0d0020082010410c6c6a2206410c6a2006200f20106b410c6c1086051a0b20082010410c6c6a220820153702042008201636020020124180046a20124180011085051a201041016a210820094188016a21060240200d0d00200620084107746a200620104107746a200f20106b4107741086051a0b200f41016a2111200620104107746a20124180046a4180011085051a2009418c0c6a2106200f41026a210e0240200d0d00201041027420066a41086a200620084102746a200f20106b4102741086051a0b200920113b018a0c200620084102746a20143602002008200e4f0d0b200f41016a211120092008417f6a22084102746a41900c6a210d0340200d2802002206200841016a22083b01880c20062009360200200d41046a210d20112008470d000c0c0b0b102a000b2010410b41e8a2c2001042000b41f8a2c200412841a0a3c200102d000b200d410b41e8a2c2001042000b41f8a2c200412841a0a3c200102d000b2006410c41f8a3c2001042000b41f8a2c200412841a0a3c200102d000b41b2abc200412b41e0abc200102d000b41eaa0c2004130419ca1c200102d000b41aca1c200412041cca1c200102d000b102c000b2000200028020841016a3602080b20012802082106200128020021070b20054180036a41086a200241086a280200360200200520022902003703800302400240200028020c22084106490d00200041186a2802002108200041146a280200210d0c010b200041146a210d0b20012802042111024002400240200d450d0020080d010b410221082011450d01200710300c010b2005200636028804200520113602840420052007360280042008410c6c200d6a41746a20054180046a10e10221080b200b20054180036a20082008410247712003200410e20220054180056a24000b7301027f230041206b22032400024002402002417f4c0d000240024020020d00410121040c010b2002102f2204450d020b20032002360204200320043602002004200120021085051a200320023602082003410036021020002003200341106a10c202200341206a24000f0b102c000b102a000bb80301047f23004190016b220424000240200041086a2802002205280224450d002005106c0b200520042903683703002005410036022420052004290330370328200541206a200441e8006a41206a280200360200200541186a200441e8006a41186a290300370300200541106a200441e8006a41106a290300370300200541086a200441e8006a41086a290300370300200541306a200441306a41086a2206290300370300200541386a200441306a41106a290300370300200541c0006a200441306a41186a290300370300200541c8006a200441306a41206a290300370300200541d0006a200441d8006a290300370300200541d8006a200441306a41306a290300370300200541003a0060200541e1006a2004290008370000200541e9006a200441086a41086a2207290000370000200541f1006a200441086a41106a290000370000200541f9006a200441086a41186a29000037000020054180016a200441276a290000370000200028020021052007200241086a280200360200200420022902003703082006200341086a2802003602002004200329020037033020052001200441086a200441306a10c70220044190016a24000bc60403017f017e047f230041b0016b220424002004200010c3020240024020032802000d00420021050c010b200341086a35020021050b024002400240024020002802200d00200428020421062004280200210720004100360220200041286a2208200829030042017c37030020002802300d0120004100360230200041386a2208200829030020057c37030020012802082208417f4c0d02200128020021094101210102402008450d002008102f2201450d040b2001200920081085052101200420083602502004200836024c20042001360248200441086a20004198016a200441c8006a1082030240024020042802084101460d00200441c0006a200441246a280200360200200441386a2004411c6a290200370300200441306a200441146a2902003703002004200429020c370328200441c8006a200041c0006a1083030240024020080d00410121000c010b2008102f2200450d060b200441a4016a2008360200200420003602a0012000200920081085051a200441a8016a2008360200200441286a200441c8006a10840321000c010b200441106a280200200441146a28020041e4006c6a4188016a21000b200441086a41086a200241086a28020036020020042002290200370308200441c8006a41086a200341086a280200360200200420032902003703482000200441086a200441c8006a2007200610c402200441b0016a24000f0b41b082c2004110200441c8006a41c082c20041d483c2001034000b41b082c2004110200441c8006a41c082c20041e483c2001034000b102c000b102a000bda0301027f23004190016b22042400024002402003417f4c0d000240024020030d00410121050c010b2003102f2205450d020b20052002200310850521050240200041086a2802002202280224450d002002106c0b200220042903683703002002410036022420022004290330370328200241206a200441e8006a41206a280200360200200241186a200441e8006a41186a290300370300200241106a200441e8006a41106a290300370300200241086a200441e8006a41086a290300370300200241306a200441306a41086a290300370300200241386a200441306a41106a290300370300200241c0006a200441306a41186a290300370300200241c8006a200441306a41206a290300370300200241d0006a200441d8006a290300370300200241d8006a200441306a41306a290300370300200241003a0060200241e1006a2004290008370000200241e9006a200441086a41086a290000370000200241f1006a200441086a41106a290000370000200241f9006a200441086a41186a29000037000020024180016a200441276a29000037000020002802002102200420033602102004200336020c200420053602082004410036023020022001200441086a200441306a10c70220044190016a24000f0b102c000b102a000bd90504067f017e027f027e230041206b220224000240024020012802042203450d00200128020022042d0000210520012003417f6a22063602042001200441016a360200024002400240200541037122074103460d0002400240024020070e03000102000b2005410276ad21080c040b410121072006450d0220042d0001210620012003417e6a3602042001200441026a3602002006410874200572220141ffff0371418002490d02200141fcff0371410276ad21080c030b4101210720064103490d01200441036a2d0000210620042f0001210920012003417c6a3602042001200441046a3602002009200641107472410874200572220141808004490d012001410276ad21080c020b02400240024002402005410276220a0e0d00030303010303030303030302030b20064104490d052004350001210820012003417b6a3602042001200441056a36020020084280808080045421074200210b0c060b20064108490d04200429000121082001200341776a3602042001200441096a3602002008428080808080808080015421074200210b0c050b20064110490d03200441096a290000210b2004290001210820012003416f6a3602042001200441116a360200200b428080808080808080015421070c040b200541334b0d02200a41046a21062003417e6a2103200441026a21044100210541012107200241186a2109420021084200210b03402003417f460d012004417f6a310000210c2001200336020420012004360200200241106a200c4200200541037441f800711089052003417f6a2103200441016a21042009290300200b84210b20022903102008842108200541016a220541ff01712006490d000b2002427f427f41e800200a4103746b41f800711083052008200229030058200b200241086a290300220c58200b200c511b21070c030b0c020b4200210b410021070c010b410121070b20002008370308200041106a200b37030020002007ad370300200241206a24000bf10f03057f027e037f230041d0006b2202240002400240200128020422030d00200041073a00000c010b200128020022042d0000210520012003417f6a22063602042001200441016a36020002400240024002400240024002400240024002400240024002400240024002400240024020050e0700010203040506070b200041003a00000c110b2002200110c90202402002290300a70d00200241106a290300210720022903082108200041013a0000200041086a2008370300200041106a20073703000c110b200041073a00000c100b0240200110a8012207a74101710d00200041023a0000200020074208883e00010c100b200041073a00000c0f0b2006450d0d20042d0001210520012003417e6a22093602042001200441026a360200200220053a002c20090d060c0d0b2006450d0b20042d0001210520012003417e6a22093602042001200441026a360200200220053a002c20090d060c0b0b2003417e6a2105200241286a410472210a41002103034020062003460d07200420036a220941016a2d0000210b200120053602042001200941026a360200200a20036a200b3a00002002200341016a22093602282005417f6a21052009210320094120470d000b200041086a200241286a410b6a2f00003b00002000410a6a200241356a2d00003a00002000410f6a200241286a41126a2f01003b0000200041116a2002413c6a2d00003a0000200041186a200241c3006a2d00003a0000200041166a200241286a41196a2f00003b0000200220022f012c3b0124200220022d002e3a0026200241366a28010021012002413d6a2800002103200241c4006a2902002107200228002f2105200041036a20022d00263a0000200020022f01243b0001200041196a2007370000200041126a20033600002000410b6a2001360000200041046a2005360000200041053a00000c0c0b200241186a2001109b0120022802180d0220012802042205200228021c2203490d022003417f4c0d060240024020030d00410121090c010b2003102f2209450d082009410020031087051a200128020421050b20052003490d012009200128020020031085052109200128020422052003490d08200041063a00002001200520036b360204200041086a2003ad2207422086200784370000200041046a20093600002001200128020020036a3602000c0b0b200041073a00000c0a0b200910300b200041073a00000c080b20042d0002210520012003417d6a22093602042001200441036a360200200220053a002d2009450d0620042d0003210520012003417c6a22093602042001200441046a360200200220053a002e2009450d0620042d0004210520012003417b6a22093602042001200441056a360200200220053a002f2009450d0620042d0005210520012003417a6a22093602042001200441066a360200200241306a20053a00002009450d0620042d000621052001200341796a22093602042001200441076a360200200241316a20053a00002009450d0620042d000721052001200341786a22093602042001200441086a360200200241326a20053a00002009450d06200241336a20042d00083a00002001200341776a3602042001200441096a3602002000200229022c370001200041033a00000c070b20042d0002210520012003417d6a22093602042001200441036a360200200220053a002d2009450d0420042d0003210520012003417c6a22093602042001200441046a360200200220053a002e2009450d0420042d0004210520012003417b6a22093602042001200441056a360200200220053a002f2009450d0420042d0005210520012003417a6a22093602042001200441066a360200200241306a20053a00002009450d0420042d000621052001200341796a22093602042001200441076a360200200241316a20053a00002009450d0420042d000721052001200341786a22093602042001200441086a360200200241326a20053a00002009450d0420042d000821052001200341776a22093602042001200441096a360200200241336a20053a00002009450d0420042d000921052001200341766a220936020420012004410a6a360200200241346a20053a00002009450d0420042d000a21052001200341756a220936020420012004410b6a360200200241356a20053a00002009450d0420042d000b21052001200341746a220936020420012004410c6a360200200241366a20053a00002009450d0420042d000c21052001200341736a220936020420012004410d6a360200200241376a20053a00002009450d0420042d000d21052001200341726a220936020420012004410e6a360200200241386a20053a00002009450d0420042d000e21052001200341716a220936020420012004410f6a360200200241396a20053a00002009450d0420042d000f21052001200341706a22093602042001200441106a3602002002413a6a220b20053a00002009450d042002413b6a20042d00103a000020012003416f6a3602042001200441116a360200200241286a410b6a2f00002101200241356a2d00002103200241366a280100210520022f012c210920022d002e2104200228002f21062000410f6a200b2f01003b00002000410b6a20053600002000410a6a20033a0000200041086a20013b0000200041046a2006360000200041036a20043a0000200020093b0001200041043a00000c060b200041073a00000c050b102c000b102a000b2003200541f0f5c100104a000b200041073a00000c010b200041073a00000b200241d0006a24000beb0301017f230041106b22022400024002400240024002400240024002400240024002400240024020002802000e0c000102030405060708090a0b0c0b200241003a000f20012002410f6a410110640c0b0b200241013a000f20012002410f6a410110640c0a0b200241023a000f20012002410f6a410110640c090b200241033a000f20012002410f6a410110640c080b200241043a000f20012002410f6a4101106420002802042000410c6a280200200110a6010c070b200241053a000f20012002410f6a4101106420002802042000410c6a280200200110a6010c060b200241063a000f20012002410f6a41011064200041086a2001109d020c050b200241073a000f20012002410f6a41011064200041086a2001109d020c040b200241083a000f20012002410f6a4101106420002802042000410c6a280200200110a6012002200041106a360204200241046a200110cc020c030b200241093a000f20012002410f6a4101106420002802042000410c6a280200200110a601200041106a200110cd020c020b2002410a3a000f20012002410f6a41011064200041086a2001109d022002200041d0036a360208200241086a200110cc020c010b2002410b3a000f20012002410f6a41011064200041086a2001109d02200041d0036a200110cd020b200241106a24000bb80303017f027e027f230041306b2202240002400240024002400240024020002802002200290300220342c000544100200041086a29030022045022051b0d0020034280800154410020051b0d01200342808080800454410020051b0d0220047920037942c0007c20044200521ba7220541e7004d0d0341fe85c100413641a887c100102d000b20022003a74102743a00182001200241186a410110640c030b20022003a74102744101723b01182001200241186a410210640c020b20022003a74102744102723602182001200241186a410410640c010b20024133200541037622054102746b3a00182001200241186a41011064200029030021032002200041086a2903002204370310200220033703080240411020056b450d00200541706a21000340200220033c00182001200241186a410110642003420888200442388684210320044208882104200041016a22052000492106200521002006450d000b20022003370308200220043703100b200320048450450d010b200241306a24000f0b2002412c6a4100360200200241286a41bc8ec2003602002002420137021c200241c486c100360218200241086a200241186a10c003000b9a0201017f230041106b220224000240024002400240024002400240024020002d00000e0700010203040506070b200241003a000f20012002410f6a410110640c060b200241013a000f20012002410f6a410110642002200041086a360208200241086a200110cc020c050b200241023a000f20012002410f6a410110642001200041016a410410640c040b200241033a000f20012002410f6a410110642001200041016a410810640c030b200241043a000f20012002410f6a410110642001200041016a411010640c020b200241053a000f20012002410f6a410110642001200041016a412010640c010b200241063a000f20012002410f6a41011064200041046a2802002000410c6a280200200110a6010b200241106a24000ba70a02057f017e230041a00b6b22022400024002400240024002400240024002400240024002400240024020012d00000e0b0102030405060a07080900010b200141046a2802002103200241086a200141086a41c8031085051a200241b8076a200341e8031085051a200241d0036a200241b8076a10ce0241e803102f2201450d0b2001200241d0036a41e8031085052101200041086a200241086a41c8031085051a2000410a3a0000200041046a2001360200200310300c0a0b200241d8036a22042001410c6a2802003602002002200141046a2902003703d003200141146a28020021052002200141106a2802002203200141186a2802004198046c6a3602c407200220033602c007200220053602bc07200220033602b807200241b8076a200310cf02210120022802c007220620022802c40720066b4198046d10a40141002802fce441410010a4012000410c6a2004280200360200200041046a20022903d003370200200041186a200120036b4198046d360200200041146a2005360200200041106a2003360200200041003a00000c090b200241d8036a22042001410c6a2802003602002002200141046a2902003703d003200141146a28020021052002200141106a2802002203200141186a2802004198046c6a3602c407200220033602c007200220053602bc07200220033602b807200241b8076a200310cf02210120022802c007220620022802c40720066b4198046d10a40141002802fce441410010a4012000410c6a2004280200360200200041046a20022903d003370200200041186a200120036b4198046d360200200041146a2005360200200041106a2003360200200041013a00000c080b200241d8036a22042001410c6a2802003602002002200141046a2902003703d003200141146a28020021052002200141106a2802002203200141186a2802004198046c6a3602c407200220033602c007200220053602bc07200220033602b807200241b8076a200310cf02210120022802c007220620022802c40720066b4198046d10a40141002802fce441410010a4012000410c6a2004280200360200200041046a20022903d003370200200041186a200120036b4198046d360200200041146a2005360200200041106a2003360200200041023a00000c070b200041033a0000200041106a200141106a290300370300200041046a200141046a2902003702002000410c6a2001410c6a2802003602000c060b2000410c6a2001410c6a280200360200200041046a200141046a290200370200200041106a200141106a41c8031085051a200041043a00000c050b2000410c6a2001410c6a280200360200200041046a200141046a290200370200200041206a200141206a41c8031085051a200041053a0000200041186a200141186a280200360200200041106a200141106a2902003702000c040b200041073a00002000410c6a2001410c6a280200360200200041046a200141046a2902003702000c030b200041083a0000200041046a200141046a2802003602000c020b200041093a00002000410c6a2001410c6a280200360200200041046a200141046a2902003702000c010b200141086a290300210720012d00012103200241b8076a200141106a41f0001085051a200241b4046a200241b8076a41e8006a28020036020020022002290398083702ac04024020022802b8074102460d00200241b8076a10b2020b200020033a0001200041106a4102360200200041086a2007370300200041146a200241d0036a41e8001085051a200041063a00000b200241a00b6a24000f0b102a000bf40609067f017e097f027e037f027e017f017e017f230041d00f6b220224000240024020002802082203200028020c460d00200241bc046a41046a2104200241f40b6a41046a21050340200020034198046a3602082002200341980410850522062d00004108460d02200341186a2802002107200341106a29030021082003410c6a2801002109200341086a280100210a200341046a280100210b20032d0001210c20032d0000210d200641a8086a2003411c6a220e41cc031085051a20064188086a41186a220f20034180046a29030037030020064188086a41106a2210200341f8036a29030037030020064188086a41086a2211200341f0036a2903003703002006200341e8036a2903003703880820034188046a290300211220034190046a2903002113200641f40b6a200e41cc031085051a41002103024002400240024002400240024002400240200d0e080801020304050600080b2006200b3602a0042006200a36029c042006200b360298042006200b200941e8036c6a3602a404200641c00f6a20064198046a10be03200641bc046a200641a8086a41cc031085051a20064198046a41186a200f29030037030020064198046a41106a201029030037030020064198046a41086a201129030037030020062006290388083703980420062802c00f211420062802c40f211520062802c80f2116410721032013211720122118200721192008211a200c211b0c070b200641bc046a200e41bc031085051a410121030c050b2004200541c8031085051a410221030c040b410321030c030b2004200541c8031085051a410421030c020b2004200541c8031085051a410521030c010b200641bc046a200e41c4031085051a410621030b200b2114200a211520092116200721192008211a0b200141186a2019360200200141106a201a3703002001410c6a2016360100200141086a2015360100200141046a2014360100200141016a201b3a0000200120033a00002001411c6a200641bc046a41cc031085051a20014190046a201737030020014188046a201837030020014180046a20064198046a41186a290300370300200141f8036a20064198046a41106a290300370300200141f0036a20064198046a41086a290300370300200141e8036a20062903980437030020014198046a210120002802082203200028020c470d000b0b200241083a00000b200241d00f6a240020010bcd0901047f230041106b2202240002400240024002400240024002400240024002400240024020002d00000e0b000102030405060708090a0b0b200241003a00072001200241076a41011064200041046a280200210320012000410c6a280200220410a5010240200441f8036c2204450d0003402003200110cb02200341f8036a2103200441887c6a22040d000b0b200028021021032001200041186a280200220010a50120004198046c2200450d0a03402003200110d10220034198046a2103200041e87b6a22000d000c0b0b0b200241013a00072001200241076a41011064200041046a280200210320012000410c6a280200220410a5010240200441f8036c2204450d0003402003200110cb02200341f8036a2103200441887c6a22040d000b0b200028021021032001200041186a280200220010a50120004198046c2200450d0903402003200110d10220034198046a2103200041e87b6a22000d000c0a0b0b200241023a00072001200241076a41011064200041046a280200210320012000410c6a280200220410a5010240200441f8036c2204450d0003402003200110cb02200341f8036a2103200441887c6a22040d000b0b200028021021032001200041186a280200220010a50120004198046c2200450d0803402003200110d10220034198046a2103200041e87b6a22000d000c090b0b200241033a00072001200241076a41011064200041106a200110d202200241003a00072001200241076a41011064200041046a280200210320012000410c6a280200220010a501200041f8036c2200450d0703402003200110cb02200341f8036a2103200041887c6a22000d000c080b0b200241043a00072001200241076a41011064200041046a280200210320012000410c6a280200220410a501200041106a21050240200441f8036c2200450d0003402003200110cb02200341f8036a2103200041887c6a22000d000b0b20052001109d020c060b200241053a00072001200241076a41011064200041046a280200210320012000410c6a280200220410a501200041206a21050240200441f8036c2204450d0003402003200110cb02200341f8036a2103200441887c6a22040d000b0b20052001109d02200028021021032001200041186a280200220010a50120004198046c2200450d0503402003200110d10220034198046a2103200041e87b6a22000d000c060b0b200241063a00072001200241076a410110640240024002400240024020002d00010e0400010203000b200241003a00072001200241076a410110640c030b200241013a00072001200241076a410110640c020b200241023a00072001200241076a410110640c010b200241033a00072001200241076a410110640b200220002903183703082001200241086a4108106420002802042000410c6a280200200110a6010c040b200241073a00072001200241076a41011064200041046a200110ee01200041086a200110ee012000410c6a200110ee010c030b200241083a00072001200241076a41011064200041046a200110ee010c020b200241093a00072001200241076a41011064200041046a200110ee01200041086a200110ee012000410c6a200110ee010c010b2002410a3a00072001200241076a41011064200041086a2001109d02200041046a280200200110d0020b200241106a24000bc30801047f230041106b2202240002400240024002400240024002400240024020002d00000e080001020304050607000b200241003a00082001200241086a410110640c070b200241013a00082001200241086a41011064200041046a280200210320012000410c6a280200220410a501200041106a21050240200441f8036c2200450d0003402003200110cb02200341f8036a2103200041887c6a22000d000b0b20052001109d020c060b200241023a00082001200241086a41011064200041046a280200210320012000410c6a280200220410a501200041206a21050240200441f8036c2204450d0003402003200110cb02200341f8036a2103200441887c6a22040d000b0b20052001109d02200028021021032001200041186a280200220010a50120004198046c2200450d0503402003200110d10220034198046a2103200041e87b6a22000d000c060b0b200241033a00082001200241086a41011064200041046a280200210320012000410c6a280200220410a5010240200441f8036c2204450d0003402003200110cb02200341f8036a2103200441887c6a22040d000b0b200028021021032001200041186a280200220010a501200041f8036c450d04200041f8036c210003402003200110cb02200341f8036a2103200041887c6a22000d000c050b0b200241043a00082001200241086a41011064200041046a280200210320012000410c6a280200220410a501200041206a21050240200441f8036c2204450d0003402003200110cb02200341f8036a2103200441887c6a22040d000b0b20052001109d02200028021021032001200041186a280200220010a50120004198046c2200450d0303402003200110d10220034198046a2103200041e87b6a22000d000c040b0b200241053a00082001200241086a41011064200041046a280200210320012000410c6a280200220410a501200041206a21050240200441f8036c2204450d0003402003200110cb02200341f8036a2103200441887c6a22040d000b0b20052001109d02200028021021032001200041186a280200220010a50120004198046c2200450d0203402003200110d10220034198046a2103200041e87b6a22000d000c030b0b200241063a00082001200241086a41011064200041106a200110d202200041186a2001109d02200041046a280200210320012000410c6a280200220010a501200041f8036c2200450d0103402003200110cb02200341f8036a2103200041887c6a22000d000c020b0b200241073a00082001200241086a41011064200041106a200110cb02200220004188046a2903003703082001200241086a41081064200220004190046a2903003703082001200241086a41081064200220002d00013a00082001200241086a41011064200041046a280200210320012000410c6a280200220010a501200041e8036c2200450d0003402003200110d002200341e8036a2103200041987c6a22000d000b0b200241106a24000be00203017f017e027f230041206b220224000240024002400240024002402000290300220342c000540d00200342808001540d012003428080808004540d02200379a7220441274d0d0341fe85c100413641b486c100102d000b20022003a74102743a00082001200241086a410110640c030b20022003a74102744101723b01082001200241086a410210640c020b20022003a74102744102723602082001200241086a410410640c010b20024113200441037622044102746b3a00082001200241086a410110642002200029030022033703000240410820046b450d00200441786a21000340200220033c00082001200241086a4101106420034208882103200041016a22042000492105200421002005450d000b200220033703000b200350450d010b200241206a24000f0b2002411c6a4100360200200241186a41bc8ec2003602002002420137020c200241c486c1003602082002200241086a10bf03000bc40201037f23004180016b2202240020002802002100024002400240024020012802002203411071450d0020002d00002103410021000340200220006a41ff006a2003410f712204413072200441d7006a2004410a491b3a00002000417f6a21002003410476410f7122030d000b20004180016a22034181014f0d02200141a8f7c1004102200220006a4180016a410020006b104021000c010b02402003412071450d0020002d00002103410021000340200220006a41ff006a2003410f712204413072200441376a2004410a491b3a00002000417f6a21002003410476410f7122030d000b20004180016a22034181014f0d03200141a8f7c1004102200220006a4180016a410020006b104021000c010b20003100002001103c21000b20024180016a240020000f0b2003418001419087c000104a000b2003418001419087c000104a000bbe0201037f23004180016b2202240020002802002100024002400240024020012802002203411071450d0020002802002103410021000340200220006a41ff006a2003410f712204413072200441d7006a2004410a491b3a00002000417f6a2100200341047622030d000b20004180016a22034181014f0d02200141a8f7c1004102200220006a4180016a410020006b104021000c010b02402003412071450d0020002802002103410021000340200220006a41ff006a2003410f712204413072200441376a2004410a491b3a00002000417f6a2100200341047622030d000b20004180016a22034181014f0d03200141a8f7c1004102200220006a4180016a410020006b104021000c010b20003502002001103c21000b20024180016a240020000f0b2003418001419087c000104a000b2003418001419087c000104a000bd60202027f017e23004180016b2202240020002802002100024002400240024020012802002203411071450d0020002903002104418001210002400340024020000d00410021000c020b200220006a417f6a2004a7410f712203413072200341d7006a2003410a491b3a00002000417f6a2100200442048822044200520d000b20004181014f0d030b200141a8f7c1004102200220006a41800120006b104021000c010b02402003412071450d0020002903002104418001210002400340024020000d00410021000c020b200220006a417f6a2004a7410f712203413072200341376a2003410a491b3a00002000417f6a2100200442048822044200520d000b20004181014f0d040b200141a8f7c1004102200220006a41800120006b104021000c010b20002903002001103c21000b20024180016a240020000f0b2000418001419087c000104a000b2000418001419087c000104a000b880101017f230041306b220224002002200028020036020c2002410b3602142001411c6a280200210020022002410c6a360210200128021821012002412c6a4101360200200241246a4101360200200241b4f7c1003602202002410136021c200241cc80c2003602182002200241106a36022820012000200241186a10322101200241306a240020010bfe0101047f230041306b22022400200028020021030240024020012d0000410471450d002001411c6a2802002104200128021821052002412c6a4100360200200241bc8ec2003602282002420137021c200241acf7c1003602184101210020052004200241186a10320d010b41002100024003402002200320006a36020c2002410c36021420022002410c6a36021020012802182104200128021c21052002410136022c20024101360224200241d4f7c1003602202002410136021c200241cc80c2003602182002200241106a36022820042005200241186a10320d01200041016a22004120470d000b410021000c010b410121000b200241306a240020000b9b0702027f047e230041f0016b2202240020002802002100024002400240024020012802002203411071450d00200041086a290300210420002903002105418001210002400340024020000d00410021000c020b200241f0006a20006a417f6a2005a7410f712203413072200341d7006a2003410a491b3a00002000417f6a210020054204882004423c8684220520044204882204844200520d000b20004181014f0d030b200141a8f7c1004102200241f0006a20006a41800120006b104021000c010b02402003412071450d00200041086a290300210420002903002105418001210002400340024020000d00410021000c020b200241f0006a20006a417f6a2005a7410f712203413072200341376a2003410a491b3a00002000417f6a210020054204882004423c8684220520044204882204844200520d000b20004181014f0d040b200141a8f7c1004102200241f0006a20006a41800120006b104021000c010b200041086a2903002104200029030021062002412736026c02400240200442ffff1f560d0020064213882004422d868442bda282a38eab04802104420021050c010b200241386a2006420042f3b2d8c19e9ebdcc957f4200108405200241286a2006420042d2e1aadaeda7c987f6004200108405200241d8006a2004420042f3b2d8c19e9ebdcc957f4200108405200241c8006a2004420042d2e1aadaeda7c987f6004200108405200241c8006a41086a290300200241286a41086a290300200241386a41086a290300220520022903287c2204200554ad7c220720022903487c2205200754ad7c2005200241d8006a41086a290300200420022903587c200454ad7c7c2204200554ad7c2207423e8821052004423e8820074202868421040b200241186a20042005428080e0b0b79fb79cf500427f108405200229031820067c200241f0006a200241ec006a105a02402004200584500d00200241f0006a41146a4130200228026c416c6a1087051a2002411436026c200241086a20044213882005422d8684220542bda282a38eab048022062004428080e0b0b79fb79cf500427f108405200229030820047c200241f0006a200241ec006a105a200542bda282a38eab04540d00200241f1006a4130200228026c417f6a1087051a20022006a74130723a00702002410036026c0b200141bc8ec2004100200241f0006a200228026c22006a412720006b104021000b200241f0016a240020000f0b2000418001419087c000104a000b2000418001419087c000104a000bff0101047f02400240200028020022014106490d00200041086a280200210202402000410c6a2802002200450d002002200041186c6a2103200221000340024020002802002204450d00200041046a280200450d00200410300b0240200041106a28020041ffffffff0371450d002000410c6a28020010300b200041186a22002003470d000b0b200141186c450d01200210300f0b2001450d002000200141186c6a41086a21012000410c6a2100034002402000417c6a22042802002203450d002000280200450d00200310300b0240200441106a28020041ffffffff0371450d00200041086a28020010300b200041186a2100200441186a2001470d000b0b0ba30502077f047e230041f0066b220224000240418003102f2203450d00200241086a41086a22042001280208220541086a290000370300200241086a41106a2206200541106a290000370300200241086a41186a2207200541186a29000037030020022005290000370308200241d0066a41086a4120360200200220053602d406200241003602d006200241e0066a41086a41002802b8f541360200200241002902b0f5413703e006200241c0046a2001200241086a200241d0066a200241e0066a10ba0220022802c404210820022802c0042105200241b8026a200241c0046a41086a4188021085051a0240024020054101460d00200241306a200241b8026a4188021085051a200241c0046a200241b8026a41e4011085051a200241086a41206a200241b4026a2d000022053a00002007200241ac026a29020022093703002006200241a4026a290200220a37030020042002419c026a290200220b3703002002200229029402220c370308200241dc026a20053a0000200241d4026a2009370200200241b8026a41146a200a370200200241b8026a410c6a200b3702002002200c3702bc0241f001102f2205450d02200520083602082005410c6a200241c0046a41e4011085051a2005428180808010370200200341256a200241d5026a290000370000200341206a200241b8026a41186a290200370200200341186a200241b8026a41106a290200370200200341106a200241b8026a41086a290200370200200320022902b8023702082003410036020420032005360200200041c0006a4100360200200041186a41003a0000200041146a41003602002000410c6a428880808010370200200041086a200336020020002001360204200041003602000c010b2000410136020020002008360204200310300b200241f0066a24000f0b102a000be62b051c7f017e057f027e017f23004190096b220324002000410c6a220428020021052004410036020002402005450d0020002802042104200541306c21060340200428020022052005280200417f6a3602000240200428020022052802000d0002402005410c6a280200450d0020052802081030200428020021050b200541046a22052005280200417f6a3602002004280200220541046a2802000d00200510300b200441306a2104200641506a22060d000b0b200041106a210702400240200028021022044125490d002000411c6a220528020021040c010b200721050b02402004450d00200541003602000b2000413c6a410036020020002802002104200341c0026a41186a4200370300200341c0026a41106a4200370300200341c0026a41086a4200370300200342003703c002200341b8046a41086a22084120360200200341003602b804200320042802083602bc04200341086a41086a41002802b8f541360200200341002902b0f541370308200341c0066a2004200341c0026a200341b8046a200341086a10ba0220032802c406210420032802c0062105200341dc046a200341c0066a41086a220941e4011085051a200341d0086a41086a220a200341b5086a290000370300200341d0086a41106a220b200341bd086a290000370300200341d0086a41186a220c200341c5086a290000370300200320032900ad083703d008024002400240024020054101460d00200041046a210d200341ac086a2d0000210e200341086a200341dc046a41e4011085051a200341f0016a41186a220f200c290300370300200341f0016a41106a2210200b290300370300200341f0016a41086a2211200a290300370300200320032903d0083703f001200341003602980220032002360294022003200136029002200341ad086a2112200341dc046a41026a21134100210541002114024002400240024002400240034020092011290300370300200341c0066a41106a22152010290300370300200341c0066a41186a2216200f290300370300200320032903f0013703c0060240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024041f001102f2206450d00200620043602082006410c6a200341086a41e4011085051a20064281808080103702000240200028020c2204200041086a280200470d00200d10bb02200028020c21040b2000280204200441306c6a2204410036020420042006360200200420032f00dc043b002d2004410c6a200e3a00002004410d6a20032903c006370000200441156a20092903003700002004411d6a2015290300370000200441256a20162903003700002004412f6a20132d00003a00002000200028020c221741016a220436020c20042017490d0120002802042218201741306c6a22192802002206280210211a2006280208211b0240024002400240024020062802140e050001020304000b20024101742005470d220c2f0b2006411c6a280200220420062802182200490d052004201a4b0d0620032006280220221c3602c8062003200420006b221d3602c4062003201b20006a221e3602c0060240200341c0066a20034190026a10dc0241ff017141ff01470d002018201741306c6a41033602044200211f0c300b410021040240200241017420056b2220201d410174201c6b2206200620204b1b2221450d000340201c20046a22004101762206201d4f0d09200520046a2216410176221520024f0d0a201e20066a2d00002206410f71200641f0017141047620004101711b200120156a2d00002206410f71200641047620164101711b470d012021200441016a2204470d000b202121040b2004202046ad211f0c2f0b2006411c6a280200220420062802182215490d082004201a4b0d092003200628022022213602b0042003200420156b221e3602ac042003201b20156a22203602a804410021040240201e41017420216b2222200241017420056b2223202320224b1b2224450d000340200520046a2216410176221520024f0d0c202120046a221c410176221d201e4f0d0d200120156a2d00002215410f71201541f0017141047620164101711b2020201d6a2d00002215410f712015410476201c4101711b470d012024200441016a2204470d000b202421040b024002400240024020042022460d00200341a8046a20034190026a10dc0241ff017141ff01460d0120232022202220234b1b221d0d02410021040c030b20194101360204200320023602940220032001360290022003200520226a22053602980220214101762104024002402021410171450d00201e20044d0d0141012116200441016a2115202020046a2d0000410f71211d0c280b410021160240201e2004490d004100211d200421150c280b2004201e41e097c200104a000b2004201e41f097c2001033000b2018201741306c6a410336020420214101762104024002402021410171450d00201e20044d0d11200341013a00c006200341c8066a201e200441016a22026b3602002003202020026a3602c4062003202020046a2d0000410f713a00c1060c010b201e2004490d0f200341c8066a201e20046b360200200341003b01c0062003202020046a3602c4060b2007200341c0066a10b5014200211f0c300b410021040340202120046a22004101762206201e4f0d10200520046a2216410176221520024f0d11202020066a2d00002206410f71200641f0017141047620004101711b200120156a2d00002206410f71200641047620164101711b470d01201d200441016a2204470d000b201d21040b2004202346ad211f0c2e0b20024101742005460d2c2005410176220420024f0d0f200120046a2d000021042019410236020420192004410f71200441047620054101711b22043602082007200410b601200641246a2004410c6c6a220628020022154102460d21200320023602940220032001360290022003200541016a22053602980202400240200e41ff01714101460d00200c4200370300200b4200370300200a4200370300200342003703d0080c010b200c200f290300370300200b2010290300370300200a2011290300370300200320032903f0013703d0080b20002802002116200641086a2802002104200641046a28020021060240024020154101470d0020042006490d12410121152004201a4d0d012004201a41d49bc2001042000b20042006490d12410021152004201a4b0d130b200320153602f0082003200420066b3602f8082003201b20066a3602f408201441016a221441017621040240024020144101710d00200420024b0d15200341003a008809200320043602840920032001360280090c010b200420024b0d15200420024f0d16200341013a008809200320013602800920032004360284092003200120046a2d000041f001713a0089090b200341c0066a2016200341d0086a200341f0086a20034180096a10ba0220032802c406210420032802c0062106200341dc046a200941e4011085051a2008201241086a290000370300200341b8046a41106a2215201241106a290000370300200341b8046a41186a2216201241186a290000370300200320122900003703b804024020064101460d0020032d00ac08210e200341c0026a200341dc046a41e4011085051a200341a0026a41186a2016290300370300200341a0026a41106a2015290300370300200341a0026a41086a2008290300370300200320032903b8043703a0020c240b2004ad2225421886211f2025422086222542018421260c2e0b2006411c6a280200220420062802182215490d152004201a4b0d162003200628022022213602b0042003200420156b221e3602ac042003201b20156a22203602a804410021040240201e41017420216b22222002410174222720056b2223202320224b1b2224450d000340200520046a2216410176221520024f0d19202120046a221c410176221d201e4f0d1a200120156a2d00002215410f71201541f0017141047620164101711b2020201d6a2d00002215410f712015410476201c4101711b470d012024200441016a2204470d000b202421040b0240024002400240024020042022460d00200341a8046a20034190026a10dc0241ff017141ff01460d0120232022202220234b1b221d0d02410021040c030b200320023602940220032001360290022003200520226a22043602980220272004470d034201211f0c300b2018201741306c6a410336020420214101762104024002402021410171450d00201e20044d0d1f200341013a00c006200341c8066a201e200441016a22026b3602002003202020026a3602c4062003202020046a2d0000410f713a00c1060c010b201e2004490d1d200341c8066a201e20046b360200200341003b01c0062003202020046a3602c4060b2007200341c0066a10b5012007410f10b6014200211f0c2f0b410021040340202120046a22004101762206201e4f0d1e200520046a2216410176221520024f0d1f202020066a2d00002206410f71200641f0017141047620004101711b200120156a2d00002206410f71200641047620164101711b470d01201d200441016a2204470d000b201d21040b2004202346ad211f0c2d0b2004410176220520024f0d1d200120056a2d000021052019410236020420192005410f71200541047620044101711b221536020820214101762105024002402021410171450d00201e20054d0d014101211d200541016a2116202020056a2d0000410f71211c0c210b4100211d0240201e2005490d004100211c200521160c210b2005201e41e097c200104a000b2005201e41f097c2001033000b102a000b41ebfbc00041d10041bcfcc0001050000b2000200441c49cc2001048000b2004201a41c49cc2001042000b2006201d41e098c2001033000b2015200241e098c2001033000b2015200441c49cc2001048000b2004201a41c49cc2001042000b2015200241e098c2001033000b201d201e41e098c2001033000b2004201e41e097c200104a000b2004201e41f097c2001033000b2006201e41e098c2001033000b2015200241e098c2001033000b2004200241e098c2001033000b2006200441d49bc2001048000b2006200441e49bc2001048000b2004201a41e49bc2001042000b2004200241a099c2001042000b2004200241b099c2001042000b2004200241c099c2001033000b2015200441c49cc2001048000b2004201a41c49cc2001042000b2015200241e098c2001033000b201d201e41e098c2001033000b2004201e41e097c200104a000b2004201e41f097c2001033000b2006201e41e098c2001033000b2015200241e098c2001033000b2005200241e098c2001033000b2018201741306c6a41033602040c010b2003201c3a00c1062003201d3a00c0062003201e20166b3602c8062003202020166a3602c4062007200341c0066a10b5012007201510b6010240200641306a2015410c6c6a220628020022154102470d00420021254200211f420021260c0e0b200320023602940220032001360290022003200441016a22053602980202400240200e41ff01714101460d00200c4200370300200b4200370300200a4200370300200342003703d0080c010b200c200f290300370300200b2010290300370300200a2011290300370300200320032903f0013703d0080b20002802002116200641086a2802002104200641046a28020021060240024002400240024002400240024020154101470d0020042006490d02410121152004201a4d0d012004201a41d49bc2001042000b20042006490d02410021152004201a4b0d030b200320153602f0082003200420066b3602f8082003201b20066a3602f408201420226a41016a221441017621040240024020144101710d00200420024b0d05200341003a008809200320043602840920032001360280090c010b200420024b0d05200420024f0d06200341013a008809200320013602800920032004360284092003200120046a2d000041f001713a0089090b200341c0066a2016200341d0086a200341f0086a20034180096a10ba0220032802c406210420032802c0062106200341dc046a200941e4011085051a2008201241086a290000370300200341b8046a41106a2215201241106a290000370300200341b8046a41186a2216201241186a290000370300200320122900003703b804024020064101460d0020032d00ac08210e200341c0026a200341dc046a41e4011085051a200341a0026a41186a2016290300370300200341a0026a41106a2015290300370300200341a0026a41086a2008290300370300200320032903b8043703a0020c090b2004ad2225421886211f2025422086222542018421260c130b2006200441d49bc2001048000b2006200441e49bc2001048000b2004201a41e49bc2001042000b2004200241a099c2001042000b2004200241b099c2001042000b2004200241c099c2001033000b420021254200211f420021260c0c0b2003201d3a00c106200320163a00c0062003201e20156b3602c8062003202020156a3602c4062007200341c0066a10b50102400240200e41ff01714101460d00200c4200370300200b4200370300200a4200370300200342003703d0080c010b200c200f290300370300200b2010290300370300200a2011290300370300200320032903f0013703d0080b200028020021162006412c6a2802002104200628022821150240024020062802244101470d0020042015490d04410121062004201a4d0d012004201a41d49bc2001042000b20042015490d04410021062004201a4b0d050b200320063602f0082003200420156b3602f8082003201b20156a3602f408202220146a221441017621040240024020144101710d00200420024b0d07200341003a008809200320043602840920032001360280090c010b200420024b0d07200420024f0d08200341013a008809200320013602800920032004360284092003200120046a2d000041f001713a0089090b200341c0066a2016200341d0086a200341f0086a20034180096a10ba0220032802c406210420032802c0062106200341dc046a200941e4011085051a2008201241086a290000370300200341b8046a41106a2215201241106a290000370300200341b8046a41186a2216201241186a290000370300200320122900003703b804024020064101460d0020032d00ac08210e200341c0026a200341dc046a41e4011085051a200341a0026a41186a2016290300370300200341a0026a41106a2015290300370300200341a0026a41086a2008290300370300200320032903b8043703a0020c010b2004ad2225421886211f2025422086222542018421260c0b0b200341086a200341c0026a41e4011085051a200f200341a0026a41186a2903003703002010200341a0026a41106a2903003703002011200341a0026a41086a290300370300200320032903a0023703f0010c000b0b2015200441d49bc2001048000b2015200441e49bc2001048000b2004201a41e49bc2001042000b2004200241a099c2001042000b2004200241b099c2001042000b2004200241c099c2001033000b2004ad2225421886211f2025422086222542018421260c020b4201211f0b42002125420021260b20034190096a2400201f4208864280fe0383202584202642ff0183840b970201097f02400240200141046a2802002202410174200141086a28020022036b2204200041046a2802002205410174200041086a28020022066b2207200720044b1b2208450d00200128020021092000280200210a02400240024003402006410176220020054f0d022003410176220120024f0d0302400240417f200a20006a2d00002200410f71200041047620064101711b2200200920016a2d00002201410f71200141047620034101711b22014720002001491b41016a0e03030001000b200641016a2106200341016a21032008417f6a2208450d050c010b0b41010f0b41ff0121060c030b2000200541e098c2001033000b2001200241e098c2001033000b41ff01210620072004490d0020072004470f0b20060b060010de02000b1100418ee2c100410f41a0e2c100102d000b9e13020c7f017e230041e0016b2203240002400240024020024110490d0041fc8fc2002001410f1088050d010c020b200141fc8fc2002002108805450d010b0240200041086a2802002204280224450d002004106c0b20042003290310370300200441003602242004200329038801370328200441206a200341106a41206a280200360200200441186a200341106a41186a290300370300200441106a200341106a41106a290300370300200441086a200341106a41086a290300370300200441306a20034188016a41086a2205290300370300200441386a20034188016a41106a2206290300370300200441c0006a20034188016a41186a2207290300370300200441c8006a20034188016a41206a290300370300200441d0006a200341b0016a290300370300200441d8006a20034188016a41306a290300370300200441003a0060200441e1006a2003290048370000200441e9006a200341c8006a41086a2208290000370000200441f1006a200341c8006a41106a2209290000370000200441f9006a200341c8006a41186a220a29000037000020044180016a200341e7006a2900003700002000280200210b200320023602d401200320013602d001200341086a200b10c302200328020c210c2003280208210d2003200341d0016a360234200341c8006a200b41c0006a10e0022007200a28020036020020062009290300370300200520082903003703002003200329034837038801200b41d4006a210e2003200341346a3602a401200341346a210a02400240024002400240034020032802a001210902400340024020090d00410021040c020b20032009417f6a22093602a00120034188016a4100200328028c011b220828020021060240024020082802082207200828020422042f018a0c4f0d00200421050c010b03400240200428020022050d00410021050c020b200641016a210620042f01880c210720052104200720052f018a0c4f0d000b0b024002402006450d00200741027420056a41900c6a280200210402402006417f6a2206450d000340200428028c0c21042006417f6a22060d000b0b410021060c010b200741016a2106200521040b20082004360204200841003602002008200636020820052007410c6c6a2204410c6a280200200a28020022062802042208490d002006280200200441046a220428020020081088050d000b200520074107746a4188016a21070b02402004450d002003410036023820042802082205417f4c0d02200428020021040240024020050d00410121060c010b2005102f2206450d040b200620042005108505210802400240200b28024c22044106490d00200b2802582104200b28025421060c010b200e21060b0240024002402006450d0020040d010b410221042005450d01200810300c010b2003200536021820032005360214200320083602102004410c6c20066a41746a200341106a10e10221040b2007200341386a2004200441024771200d200c10e20220032802a401210a0c010b0b2000280204210420034188016a41086a220541002802b8f541360200200341002902b0f54137038801024002402004200441e0006a220620034188016a10d5010d004130102f2205450d03200541003a000020052006290000370001200541096a200641086a290000370000200541116a200641106a290000370000200541196a200641186a2900003700000c010b200341003602442003200636024020034180dec10036023c2003200436023820034188016a200341386a2001200210e302200341c8006a41086a20034188016a41106a290300370300200341c8006a41106a220420034188016a41186a290300370300200341c8006a41186a220620034188016a41206a290300370300200341c8006a41206a220720034188016a41286a290300370300200341c8006a41286a220820034188016a41306a290300370300200341c8006a41306a220920034188016a41386a290300370300200341c8006a41386a220a200341c8016a28020036020020032005290300370348200328028c0121052003280288014101460d0020034194016a220b200341d0006a2903003702002003419c016a2004290300370200200341a4016a2006290300370200200341ac016a2007290300370200200341b4016a2008290300370200200341bc016a2009290300370200200341c4016a200a28020036020020032005360288012003200329034837028c01200341106a20034188016a10e402200328021022044102460d05024003402003280214210520044101460d012003290318220f422088a72206417f4c0d03200328022421082003280220210a200028020021040240024020060d00410121070c010b2006102f2207450d050b200720052006108505210720042802200d0520044100360220200441286a2209200929030042017c37030020042802300d0620044100360230200320063602d801200320063602d401200320073602d001200341003602102003200410c302200441c0006a200341d0016a200341106a2003280200200328020410c40202402008450d00200a10300b0240200fa7450d00200510300b200341106a20034188016a10e402200328021022044102470d000c070b0b024020034188016a410c6a2802002206450d00200328028c012104200641306c21070340200428020022062006280200417f6a3602000240200428020022062802000d0002402006410c6a280200450d0020062802081030200428020021060b200641046a22062006280200417f6a3602002004280200220641046a2802000d00200610300b200441306a2104200741506a22070d000b0b024020034190016a2802002204450d00200441306c450d00200328028c0110300b2003280298014125490d00200341a0016a28020010300b02400240024020052d00000e0402020002010b200541086a280200450d01200541046a28020010300c010b200541286a280200450d00200541246a28020010300b200510300c050b102c000b102a000b41b082c2004110200341106a41c082c20041d483c2001034000b41b082c2004110200341106a41c082c20041e483c2001034000b0240200b2802002205450d00200328028c012104200541306c21060340200428020022052005280200417f6a3602000240200428020022052802000d0002402005410c6a280200450d0020052802081030200428020021050b200541046a22052005280200417f6a3602002004280200220541046a2802000d00200510300b200441306a2104200641506a22060d000b0b024020034190016a2802002204450d00200441306c450d00200328028c0110300b2003280298014125490d00200341a0016a28020010300b200341e0016a24000b8a0201057f230041206b22022400024002400240200128020422030d004100210420004100360204200041106a41003602000c010b20012802002104200321050240034020032f018a0c2106024020040d002004450d020c040b2004450d032004417f6a2104200320064102746a418c0c6a2802002103200528028c0c21050c000b0b2000200436020c200041003602082000200536020420002004360200200041146a2006360200200041106a2003360200200128020821040b20002004360218200241206a24000f0b200241146a410136020020024201370204200241f4a9c2003602002002410436021c200241eca9c2003602182002200241186a360210200241fca9c200103a000b8f0f030b7f027e017f20012802082102200128020421032001280200210402400240024002400240024002400240024002400240024020002802042205450d00200028020021060c010b418c01102f2205450d0141002106200541003b018a012005410036020020002005360204200041003602000b0240034020052f018a012207410c6c2108200541046a220921014100210a02400340024020080d002007210a0c020b02400240200420012802002001280208220b20022002200b4b1b108805220c0d002002200b490d032002200b47210b0c010b4101210b200c4100480d020b2001410c6a2101200a41016a210a200841746a2108200b0d000b410021012003450d022004103041000f0b02402006450d002006417f6a21062005200a4102746a418c016a28020021050c010b0b024002402007410a4b0d000240200a20074f0d002009200a410c6c6a2201410c6a20012007200a6b410c6c1086051a0b2009200a410c6c6a2201200436020020012002360208200120033602042005200741016a3b018a010c010b410521014100210c02400240200a41054f0d0041042101200a21080c010b4105210802400240200a417b6a0e020201000b200a41796a21084101210c410621010c010b410021084101210c0b418c01102f220b450d02200b41003b018a01200b4100360200200b20052f018a0122062001417f736a220a3b018a01200a410c4f0d032006200141016a22076b200a470d0420092001410c6c6a2206290204210d20062802002106200b41046a20092007410c6c6a200a410c6c1085051a200520013b018a01200b2005200c1b220141046a210a0240200841016a220720012f018a01220c4b0d00200a2007410c6c6a200a2008410c6c6a200c20086b410c6c1086051a0b200a2008410c6c6a2208200436020020082002360208200820033602042001200c41016a3b018a01024002400240200528020022010d00410021070c010b41002107200b2109200d210e20062103034020052f018801210a200122042f018a012205410b490d024100210c410421010240200a4105490d00200a210102400240200a417b6a0e020201000b200a41796a210a4101210c410621010c010b4100210a4101210c410521010b41bc01102f220b450d05200b41003b018a01200b4100360200200b20042f018a0122022001417f736a22083b018a012008410c4f0d082002200141016a220f6b2008470d0920042001410c6c6a220241086a290200210d200241046a2802002106200b41046a200241106a2008410c6c1085051a200420013b018a01200b2f018a01220841016a21022008410c4f0d0a200520016b22012002470d0b200741016a2107200b418c016a2004200f4102746a418c016a20014102741085051a4100210102400340200b20014102746a418c016a280200220220013b0188012002200b360200200120084f0d01200120012008496a220120084d0d000b0b200b2004200c1b220241046a21050240200a41016a220120022f018a0122084b0d0020052001410c6c6a2005200a410c6c6a2008200a6b410c6c1086051a0b200841016a210c2005200a410c6c6a2205200e370204200520033602002002418c016a21050240200a41026a220f200841026a22034f0d002005200f4102746a200520014102746a2008200a6b4102741086051a0b200520014102746a20093602002002200c3b018a010240200120034f0d002002200a4102746a4190016a2101034020012802002208200a41016a220a3b01880120082002360200200141046a2101200c200a470d000b0b20042105200b2109200d210e20062103200428020022010d000b0b20002802042208450d0a2000280200210241bc01102f2201450d032001200836028c01200141003b018a0120014100360200200841003b01880120082001360200200020013602042000200241016a36020020022007470d0b20012f018a012208410b4f0d0c2001200841016a22023b018a0120012008410c6c6a220841086a200d370200200841046a20063602002001418c016a20024102746a200b360200200b20023b018801200b20013602002000200028020841016a36020841010f0b200a41016a2101200441046a2108200541016a2102024002402005200a4b0d002008200a410c6c6a2208200e370204200820033602002004418c016a2108200541026a210b0c010b20082001410c6c6a2008200a410c6c6a22082005200a6b220b410c6c1086051a2008200e37020420082003360200200a4102742004418c016a22086a41086a200820014102746a200b4102741086051a200541026a210b0b20082001410274220a6a2009360200200420023b018a012001200b4f0d00200a20046a418c016a210803402008280200220220013b01880120022004360200200841046a2108200b200141016a2201470d000b0b410121012000200028020841016a3602080b20010f0b102a000b200a410b41e8a2c2001042000b41f8a2c200412841a0a3c200102d000b2008410b41e8a2c2001042000b41f8a2c200412841a0a3c200102d000b2002410c41f8a3c2001042000b41f8a2c200412841a0a3c200102d000b41b2abc200412b41e0abc200102d000b41eaa0c2004130419ca1c200102d000b41aca1c200412041cca1c200102d000bd20803047f017e017f230041206b2205240020002802002106024002400240024002400240024002400240024002400240024020020d00024020064106490d002000410c6a2802002202450d01200541086a41086a200141086a28020036020020052001290200370308200541086a2101200041086a28020022070d03418486c20041fc00418888c2001050000b20060d01410021060b200541086a41086a200141086a28020036020020052001290200370308024002400240024020064106490d002000410c6a220128020022022006460d01200041086a28020021070c0e0b4105210220064105460d01200041086a210720062102200021010c0d0b2000410c6a2802002101200621020c010b200621010b20022001470d09200141016a22022001490d054100417f2002417f6a677620024102491b220241016a22012002490d050240024020064106490d002000410c6a2802002102200041086a2802002108200621070c010b200041086a210841052107200621020b200220014b0d020240200141054b0d00200641054d0d0a20004100360204200041086a2008200241186c1085051a200020023602002007ad42187e2209422088a70d04200810300c0a0b20072001470d040c090b200541086a41086a200141086a28020036020020052001290200370308200041086a2107200541086a2101200621020b024020072002417f6a41186c6a22062802002202450d00200641046a280200450d00200210300b20062001290200370200200641086a200141086a2802003602000c090b41c29ac200412041e49ac200102d000b2005410036021c20052009a736021841bea9c200412b200541186a41e485c20041f485c2001034000b2001ad42187e2209422088a70d002009a7210a0240200641054b0d00200a102f2206450d0420062008200241186c1085051a0c030b2007ad42187e2209422088a7450d010b41d099c200411141e499c200102d000b200a102f2206450d0120062008200a2009a722072007200a4b1b1085051a200810300b20004101360204200020013602002000410c6a2002360200200041086a20063602000c010b102a000b2000410c6a22012802002102200041086a28020021070b2007200241186c6a220641002802e88f4236020c20062005290308370200200641106a4200370200200641086a200541086a41086a2802003602002001200128020041016a3602000b0240024020034101470d0002400240200028020022064106490d002000410c6a2802002106200041086a28020021000c010b200041086a21000b2000450d012006450d0120002006417f6a41186c6a2206410c6a2101024020062802142200450d00200041027420012802006a417c6a2802002004460d010b200641146a210202402000200641106a280200470d0020012000410110f302200228020021000b200128020020004102746a20043602002002200228020041016a3602000b200541206a24000f0b418486c20041fc00419888c2001050000b930d02097f017e230041f0016b2204240020044188016a200110da02200441c8006a41086a220520044188016a41106a290300370300200441c8006a41106a220620044188016a41186a290300370300200441c8006a41186a220720044188016a41206a290300370300200441c8006a41206a220820044188016a41286a290300370300200441c8006a41286a220920044188016a41306a290300370300200441c8006a41306a220a20044188016a41386a290300370300200441c8006a41386a220b200441c8016a280200360200200420044188016a41086a290300370348200428028c01210102400240024002402004280288014101460d00200441146a220c20052903003702002004411c6a2006290300370200200441246a20072903003702002004412c6a2008290300370200200441346a20092903003702002004413c6a200a290300370200200441c4006a200b280200360200200420013602082004200429034837020c200441086a2002200310db02220da74101710d01200c280200210202400240024002400240200d42800283500d002002450d0320042002417f6a2205360214200428020c2201200541306c6a22032802044104460d03200441c8006a41286a2206200341286a290200370300200441c8006a41206a2207200341206a290200370300200441c8006a41186a2208200341186a290200370300200441c8006a41106a2209200341106a290200370300200441c8006a41086a220a200341086a29020037030020042003290200370348410021032004410036021402402005450d00200241306c41506a21030340200128020022022002280200417f6a3602000240200128020022022802000d0002402002410c6a280200450d0020022802081030200128020021020b200241046a22022002280200417f6a3602002001280200220241046a2802000d00200210300b200141306a2101200341506a22030d000b200428021421030b20044188016a41286a200629030037030020044188016a41206a200729030037030020044188016a41186a200829030037030020044188016a41106a200929030037030020044188016a41086a200a29030037030020042004290348370388012003200441086a41086a280200470d02200341016a220120034f0d010c080b200441003602142002450d02200428020c2101200241306c21030340200128020022022002280200417f6a3602000240200128020022022802000d0002402002410c6a280200450d0020022802081030200128020021020b200241046a22022002280200417f6a3602002001280200220241046a2802000d00200210300b200141306a2101200341506a22030d000c030b0b200341017422022001200220014b1b22014104200141044b1bad42307e220d422088a7454102742101200da721020240024020030d00200441003602e0010c010b200441e8016a41043602002004200428020c3602e0012004200341306c3602e4010b200441d0016a20022001200441e0016a1069200441d8016a280200210120042802d0014101460d02200420042802d40136020c2004200141306e360210200428021421030b200428020c200341306c6a2201200429038801370200200141286a20044188016a41286a290300370200200141206a20044188016a41206a290300370200200141186a20044188016a41186a290300370200200141106a20044188016a41106a290300370200200141086a20044188016a41086a2903003702002004200428021441016a3602140b20002004290308370204200041003602002000413c6a200441c0006a290300370200200041346a200441386a2903003702002000412c6a200441306a290300370200200041246a200441286a2903003702002000411c6a200441206a290300370200200041146a200441186a2903003702002000410c6a200441106a2903003702000c030b2001450d03102a000b20004101360200200020013602040c010b200041013602002000200d422088a73602040240200c2802002202450d00200428020c2101200241306c21030340200128020022022002280200417f6a3602000240200128020022022802000d0002402002410c6a280200450d0020022802081030200128020021020b200241046a22022002280200417f6a3602002001280200220241046a2802000d00200210300b200141306a2101200341506a22030d000b0b0240200441106a2802002201450d00200141306c450d00200428020c10300b20042802184125490d00200441206a28020010300b200441f0016a24000f0b102c000be40a010b7f23004180036b22022400200241086a200110b70202400240024002400240024002400240024002400240200228020822034102460d00200241e8006a4104722104200241086a41086a21050340200228020c210602402003450d0020002006360204200041013602000c080b2002280260210320042005290200370200200441086a200541086a290200370200200441106a200541106a290200370200200441186a200541186a290200370200200441206a200541206a290200370200200441286a200541286a2802003602002002200636026820024198016a200341146a20032802082003280210107002400240024002400240200228029801417f6a0e0400040102040b20022802a40122014101762104200241ac016a2802002107200241a8016a280200210820022802a0012105200228029c012106024002402001410171450d00200520044d0d09200241013a00f002200241f8026a2005200441016a22016b3602002002200620016a3602f4022002200620046a2d0000410f713a00f1020c010b20052004490d07200241f8026a200520046b360200200241003b01f0022002200620046a3602f4020b200241e8006a200241f0026a10b5010c0a0b20022802e002210720022802dc0221080c010b20022802a4012209410176210620022802ec02210720022802e802210820022802a001210a200228029c01210b024002402009410171450d00200a20064d0d0941012109200b20066a2d0000410f71210c200641016a21060c010b200a2006490d07410021094100210c0b2002200c3a00f102200220093a00f0022002200a20066b3602f8022002200b20066a3602f402200241e8006a200241f0026a10b5010b20080d070b20032003280200417f6a2206360200024020060d0002402003410c6a280200450d00200328020810300b200341046a22062006280200417f6a220636020020060d00200310300b024020022802684125490d00200228027010300b200241086a200110b702200228020822034102470d000b0b200041023602000c050b2004200541e097c200104a000b2004200541f097c2001033000b2006200a41e097c200104a000b2006200a41f097c2001033000b2002280294012205410176210402400240200541017122060d0002400240200228026822054125490d00200241f4006a2802002105200228027021010c010b200241e8006a41057221010b200520044f0d012004200541e096c2001042000b02400240200228026822054125490d00200241f4006a280200210a200228027021010c010b200241e8006a41057221012005210a0b200a2004490d020240024020054125490d00200241f4006a28020021052002280270210a0c010b200241e8006a410572210a0b200520044d0d03200a20046a2d0000417071210a0b0240024020040d00410121050c010b2004102f2205450d040b20052001200410850521010240024020060d002007417f4c0d060240024020070d00410121050c010b2007102f2205450d060b2005200820071085052105200041186a2007360200200041146a2007360200200041106a20053602002000410c6a2004360200200041086a200436020020002001360204200041003602000c010b4130102f2205450d042005200436010c20052004360108200520013601042005200a3a0001200541023a000020002005360204200041013602000b20032003280200417f6a2204360200024020040d0002402003410c6a280200450d00200328020810300b200341046a22042004280200417f6a220436020020040d00200310300b20022802684125490d00200228027010300b20024180036a24000f0b2004200a41f096c2001042000b20042005418097c2001033000b102a000b102c000bdd0802037f017e23004180016b2204240002400240024002400240024002400240024002402001280200220541c0006a2002200310e6022206450d0002400240200628020022024106490d00200628020c2102200628020821060c010b200641086a21060b2006450d042002450d04024020062002417f6a41186c6a2206280200450d0020052802000d06200641086a22023502002107200541003602002005200529030842017c3703082005280210450d0241b082c2004110200441286a41c082c20041c483c2001034000b20052802000d0641002106200541003602002005200529030842017c37030820052802100d07200541003602100c020b200441086a20012802042002200310e70241022106024020042802084101460d0002400240200428020c22050d00410021060c010b200441e0006a2005200441086a41086a2903002207422088a71065200441286a41186a200441e0006a41186a290000370300200441286a41106a200441e0006a41106a290000370300200441286a41086a200441e0006a41086a29000037030020042004290060370328410121062007a7450d00200510300b200441e0006a41186a200441286a41186a290300370300200441e0006a41106a200441286a41106a290300370300200441e0006a41086a200441286a41086a290300370300200420042903283703600b20064102460d07200441086a41186a200441e0006a41186a290300370300200441086a41106a200441e0006a41106a290300370300200441086a41086a200441e0006a41086a290300370300200420042903603703080c020b20054100360210200541186a2205200529030020077c370300200441e0006a200628020020022802001065200441c1006a200441e0006a41186a290000370000200441396a200441f0006a290000370000200441316a200441e8006a29000037000020042004290060370029410121060b200441206a200441c1006a290000370300200441186a200441396a290000370300200441106a200441316a290000370300200420042900293703080b0240024020064101460d00200041003602000c010b200441286a41186a200441086a41186a290300370300200441286a41106a200441086a41106a290300370300200441286a41086a200441086a41086a2903003703002004410036025820044201370350200420042903083703284120102f2205450d062004422037026420042005360260200441e0006a200441286a41201064200441d0006a200428026022052004280268106402402004280264450d00200510300b20002004290350370200200041086a200441d0006a41086a2802003602000b20044180016a24000f0b418486c20041fc00418087c2001050000b41b082c2004110200441286a41c082c20041b483c2001034000b41b082c2004110200441286a41c082c20041b483c2001034000b41b082c2004110200441286a41c082c20041c483c2001034000b41d488c1004130200441286a41dcfcc00041ecfcc0001034000b102a000bc60101067f024020002802042203450d00200028020021040340200341046a210020032f018a0c21054100210603400240024020052006460d000240024020012000280200200041086a2802002207200220072002491b10880522080d00200720024b0d01200720024721070c030b41012107200841004e0d020b200621050b2004450d032004417f6a2104200320054102746a418c0c6a28020021030c020b200641016a21062000410c6a210020070d000b0b20032006417f6a4107746a4188016a0f0b41000bc40302027f027e230041306b22042400200441286a41002802b8f541360200200441002902b0f54137032002400240024002400240024002402001200141e0006a2205200441206a10d5010d004130102f22010d010c060b2004410036021c20042005360218200441eca2c000360214200420013602102004200441106a2002200310910420042802004101460d0102400240200428020422020d004200210642002107410021010c010b200441086a29030022064220882207a72205417f4c0d050240024020050d00410121010c010b2005102f2201450d070b2001200220051085051a02402006a7450d00200210300b20064280808080708321060b200041086a200720068437020020002001360204200041003602000c030b200141003a000020012005290000370001200141096a200541086a290000370000200141116a200541106a290000370000200141196a200541186a2900003700000c010b200428020421010b02400240024020012d00000e0402020002010b200141086a280200450d01200141046a28020010300c010b200141286a280200450d00200141246a28020010300b20011030200041013602000b200441306a24000f0b102c000b102a000b890501057f230041e0026b22022400024002400240200128020822032d00600d0020012802042104200241206a2001280200220141c0006a10e902200241c0006a200110ea02200241c0026a41186a200241206a41186a280200360200200241c0026a41106a200241206a41106a290300370300200241c0026a41086a200241206a41086a290300370300200220022903203703c002200241e0006a41186a200241c0006a41186a280200360200200241e0006a41106a200241c0006a41106a290300370300200241e0006a41086a200241c0006a41086a29030037030020022002290340370360200241c0016a2004200241c0026a200241e0006a10eb02200241086a2204200241c0016a41086a290300370300200241106a2205200241c0016a41106a290300370300200241186a2206200241c0016a41186a290300370300200220022903c001370300200241e0006a200241c0016a41206a41e0001085051a200241c0016a200241e0006a41e0001085051a02402003280224450d002003106c0b2003200241c0016a41e000108505220141f9006a2006290300370000200141f1006a2005290300370000200141e9006a2004290300370000200141e1006a2002290300370000200141013a006020004100360208200042013702004120102f2201450d02200242203702c401200220013602c001200241c0016a200241201064200020022802c001220120022802c801106420022802c401450d01200110300c010b20004100360208200042013702004120102f2201450d01200242203702c401200220013602c001200241c0016a200341e1006a41201064200020022802c001220120022802c801106420022802c401450d00200110300b200241e0026a24000f0b102a000b8a0201057f230041206b22022400024002400240200128020422030d004100210420004100360204200041106a41003602000c010b20012802002104200321050240034020032f018a0c2106024020040d002004450d020c040b2004450d032004417f6a2104200320064102746a418c0c6a2802002103200528028c0c21050c000b0b2000200436020c200041003602082000200536020420002004360200200041146a2006360200200041106a2003360200200128020821040b20002004360218200241206a24000f0b200241146a410136020020024201370204200241f4a9c2003602002002410436021c200241eca9c2003602182002200241186a360210200241fca9c200103a000b980203047f017e017f230041206b220224000240024002402001419c016a28020022030d004100210441002103410021010c010b2001280298012205ad4220862106200321040240034020032f01d6092107024020050d002005450d020c040b2005450d0320064280808080707c21062005417f6a2105200320074102746a41d8096a280200210320042802d80921040c000b0b200141a0016a28020021010b20002001360218200020063702082000200436020420002005360200200041146a2007360200200041106a2003360200200241206a24000f0b200241146a410136020020024201370204200241f4a9c2003602002002410436021c200241eca9c2003602182002200241186a360210200241fca9c200103a000bf67007027f057e037f017e417f017e047f230041c0096b2204240002404101102f2205450d00200541003a0000410041003502e0ac42200441f8076aad22067c42adfed5e4d485fda8d8007e42218922073e02e0ac42200441e0016a41e0acc200ad220842a4bb99fed1a0bbb023852209420042adfed5e4d485fda8d8004200108405200441c0016a200742a4bb99fed1a0bbb02385420042adfed5e4d485fda8d8004200108405200441d0016a200842c5ecb3fec9ecf7c2c30085220a420042adfed5e4d485fda8d8004200108405200441b0016a200742c5ecb3fec9ecf7c2c30085420042adfed5e4d485fda8d8004200108405200441a0016a2007200885420042adfed5e4d485fda8d8004200108405200441f8076a418de2c10041011065200441c4026a200441f8076a41186a220b290000370200200441bc026a200441f8076a41106a220c290000370200200441b4026a200441f8076a41086a220d290000370200200441a4026a428180808010370200200441f0016a41286a4200370300200441f0016a41246a41bcf5c100360200200420042900f8073702ac02200420053602a002200441003602900220042007200441e0016a41086a29030020042903e001857c200441a0016a41086a29030020042903a0018542cf829ebbefefde82147c220e893703f0012004200441b0016a41086a29030020042903b0018520087c200e423088893703880220042007200441d0016a41086a29030020042903d001857c200e42208889370380022004200441c0016a41086a29030020042903c0018520087c200e421088893703f801200441d0026a41186a200341186a280200360200200441d0026a41106a200341106a290200370300200441d0026a41086a200341086a290200370300200420032902003703d002200441d8056a410772210f200441f8076a4101722110200441f8056a41e0006a2111200441d1066a211220044198056a4107722113200441f4046a2114200441f8076a410c6a211520044190036a41076a2116200441f8076a410b6a2117200441f8076a410d6a2118200441f8076a410e6a2119200441f8076a410f6a211a200441f8076a41116a211b200441f8076a41126a211c200441f8076a41136a211d200441f8076a41156a211e200441f8076a41166a211f200441f8076a41196a2120200441f8076a411a6a2121200441f8076a411b6a2122200441f8076a411c6a2123200441f8076a411d6a2124200441f8076a411e6a2125200441f8076a411f6a212620044199086a21272004419a086a21282004419b086a21294100212a4100212b4100212c41002802e88f42222d212e0240024002400240024002400240024003400240024020042802e8022203450d0020042003417f6a3602e802200441d0026a410020042802d4021b222f280200213002400240202f2802082231202f28020422032f01d6094f0d00200321050c010b03400240200328020022050d00410021050c020b203041016a213020032f01d409213120052103203120052f01d6094f0d000b0b024002402030450d00203141027420056a41dc096a280200210302402030417f6a2230450d00034020032802d80921032030417f6a22300d000b0b410021300c010b203141016a2130200521030b202f2003360204202f4100360200202f2030360208200441f8076a2005203141e4006c6a4188016a10fa0320042802940822320d010b200441d8056a41186a200241186a280200360200200441d8056a41106a200241106a290200370300200441d8056a41086a200241086a290200370300200420022902003703d8054101102f2203450d0a200341003a0000410041003502e0ac4220067c42adfed5e4d485fda8d8007e42218922073e02e0ac42200441c0006a41e0acc200ad220e42a4bb99fed1a0bbb02385420042adfed5e4d485fda8d8004200108405200441206a200742a4bb99fed1a0bbb02385420042adfed5e4d485fda8d8004200108405200441306a200e42c5ecb3fec9ecf7c2c30085420042adfed5e4d485fda8d8004200108405200441106a200742c5ecb3fec9ecf7c2c30085420042adfed5e4d485fda8d800420010840520042007200e85420042adfed5e4d485fda8d8004200108405200441f8076a418de2c10041011065200441e4036a200441f8076a41186a290000370200200441dc036a200441f8076a41106a290000370200200441d4036a200441f8076a41086a2230290000370200200441c4036a428180808010370200200441b8036a420037030020044190036a41246a41bcf5c100360200200420042900f8073702cc03200420033602c003200441003602b00320042007200441c0006a41086a2903002004290340857c200441086a29030020042903008542cf829ebbefefde82147c220889370390032004200441106a41086a290300200429031085200e7c2008423088893703a80320042007200441306a41086a2903002004290330857c2008422088893703a0032004200441206a41086a290300200429032085200e7c20084210888937039803200141e3006a280000210c200141ea006a2801002133200141f1006a280000210b200141f8006a22032802002114200141fc006a2802002134200141e2006a2d00002135200141e7006a2f00002136200141e9006a2d00002137200141ee006a2f01002138200141f0006a22052d00002110200141f5006a2f00002111200141f7006a2d0000213920012f0160213a200420013602d002200420044190036a3602d402200441b8046a41186a2003290200370300200441b8046a41106a2005290200370300200441b8046a41086a200141e8006a290200370300200420012902603703b804200441f8076a200441d0026a41c4a2c000200441b8046a10fe0220042802fc07210520042802f8072103200441f8066a20304180011085051a20034101460d05200441f8056a200441f8066a4180011085051a20044184076a2205200441d8056a41086a2903003702002004418c076a200441e8056a29030037020020044194076a200441f0056a2802002203360200200441f8066a41246a202e202b41186c6a222f360200200441013602f806200420042903d8053702fc062004202e3602980702400240024002400240024002402003450d0020042003417f6a36029407200441f8066a4104724100200441f8066a41086a223b28020022031b223c2802002130024002402005410820031b223d2802002231203b410420031b223b28020022052f018a0c4f0d00200521030c010b03400240200528020022030d00410021030c020b203041016a213020052f01880c213120032105203120032f018a0c4f0d000b0b024002402030450d00203141027420036a41900c6a280200210502402030417f6a2230450d000340200528028c0c21052030417f6a22300d000b0b410021300c010b203141016a2130200321050b203b2005360200203d2030360200203c410036020002400240200320314107746a22304188016a28020022054106490d0020304194016a280200210520304190016a28020021300c010b20304190016a21300b2030450d062005450d0620032031410c6c6a2203410c6a213b200341046a210320302005417f6a41186c6a223028020022050d01410021050c020b41002105200441003602f806202f202e460d0e2004202e41186a220336029807202e28020c22300d020c030b203028020821310b203b280200213b2003280200213c417f20044194076a2802002203202f202e6b41186e6a223020302003491b21030c020b202e2802142131203021050b202e280208213b202e280200213c202f20036b41186e21030b417f200341016a223020302003491b220341ffffffff00712003470d0720034104742203417f4c0d072003102f223e450d0b203e203136020c203e2005360208203e203b360204203e203c360200200441f8076a41206a200441f8066a41206a290300370300200441f8076a41186a200441f8066a41186a290300370300200441f8076a41106a200441f8066a41106a290300370300200441f8076a41086a223d200441f8066a41086a290300370300200420042903f8063703f8072003410476213f200441f8076a410c6a2140200441f8076a410472214141012142024002400240034002400240024002400240024020042802f8074101470d0002402004280294082203450d0020042003417f6a360294082041410020042802800822031b222f2802002130024002402040410820031b223b2802002231203d410420031b223c28020022052f018a0c4f0d00200521030c010b03400240200528020022030d00410021030c020b203041016a213020052f01880c213120032105203120032f018a0c4f0d000b0b024002402030450d00203141027420036a41900c6a280200210502402030417f6a2230450d000340200528028c0c21052030417f6a22300d000b0b410021300c010b203141016a2130200321050b203c2005360200203b2030360200202f410036020020032031410c6c6a2205410c6a2802002130200541046a280200212f02400240200320314107746a22054188016a28020022034106490d0020054194016a280200210320054190016a28020021050c010b20054190016a21050b2005450d0a2003450d0a20052003417f6a41186c6a220328020022050d02410021050c030b200441003602f8070b2004280298082203450d07200428029c082003460d072004200341186a3602980802400240200328020c22050d00410021050c010b200341146a28020021310b200328020821302003280200212f203f2042470d0420042802980822030d02410021030c030b200328020821310b203f2042470d022004280294082103200428029808223b450d01417f2003200428029c08203b6b41186e6a223b203b2003491b21030c010b200428029c0820036b41186e21030b2042417f200341016a223b203b2003491b6a22032042490d0c2042410174223b2003203b20034b1b22034104200341044b1b220341ffffffff0071200346410274213b200341047421030240024020420d0020044100360298050c010b2004203e36029805200441043602a0052004204241047436029c050b20044198046a2003203b20044198056a106920042802a00421032004280298044101460d02200428029c04213e2003410476213f0b203e20424104746a22032005360208200320303602042003202f3602002003410c6a2031360200204241016a21420c000b0b2003450d090c0d0b0240204241144b0d00204241014d0d072042410474203e6a41606a21034101210503402003200541016a220510b602200341706a210320422005470d000c080b0b2042410176220341ffffffff00712003470d0820034104742243417f4c0d082043102f2244450d0c203e41706a2132203e41506a210141002802e88f42214541002146410021472042214803402048213b41002148410121030240203b417f6a2205450d0002400240203e20054104746a2203280200203e203b417e6a22484104746a2205280200222f2005280204220520032802042203200320054b1b10880522300d00417f200320054720032005491b21030c010b417f410120304100481b21030b0240024002400240024002402003417f460d002001203b4104746a21304102210303400240203b2003470d0041002148203b21030c080b024002400240202f2030280200223c203041046a28020022312005200520314b1b108805222f0d00200520314f0d010c020b202f4100480d010b203041706a2130200341016a210320312105203c212f0c010b0b203b20036b21480c010b203b410274213c2001203b4104746a210302400340024020480d00410021480c020b02400240202f20032802002231200341046a28020022302005200520304b1b108805222f0d00200520304f0d030c010b202f417f4a0d020b2048417f6a2148200341706a2103203021052031212f0c000b0b203b2048490d01203b20424b0d02203b20486b22034101762231450d00203e20484104746a21052032203c4102746a21300340200441f8076a41086a222f200541086a223c290200370300200420052902003703f807203041086a223d290200210720052030290200370200203c2007370200203d202f290300370200203020042903f807370200200541106a2105203041706a21302031417f6a22310d000b0b2048450d04200341094b0d04203b20424b0d02203b20486b21032048417f6a2105203220484104746a21300340203b2005490d0b2030200341016a220310b6022005417f6a223120054f0d04203041706a2130203121052003410a490d000c040b0b2048203b41ccf7c0001048000b203b204241ccf7c0001042000b203b2048417f6a2205490d07203b204241dcf7c0001042000b203141016a21480b024020472046470d00204641016a22052046490d0a204641017422302005203020054b1b22054104200541044b1b220541ffffffff01712005464102742130200541037421050240024020460d00200441003602f8070c010b2004410436028008200420453602f807200420464103743602fc070b200441f8066a20052030200441f8076a10692004280280072105024020042802f8064101470d0020050d0f0c0b0b20042802fc062145200541037621460b204520474103746a2205200336020420052048360200204741016a22492147024020494102490d0003400240024002400240204520492247417f6a22494103746a2203280200450d00204741037420456a223141746a2802002230200328020422054d0d00204741024d0d0520452047417d6a224a4103746a2802042203200520306a4d0d01204741034d0d05203141646a280200200320306a4b0d050c010b20474103490d012003280204210520452047417d6a224a4103746a28020421030b20032005490d010b2047417e6a214a0b02400240024002402047204a41016a22034d0d0002402047204a4d0d0002402045204a4103746a224b280204220d204b2802006a2205204520034103746a224c280200224d490d000240200520424b0d00204b41046a214e203e204d4104746a2230204c280204224f41047422316a21032005410474212f02402005204d6b223b204f6b2205204f490d00204420302031108505220520316a21310240204f41014e0d00200521050c080b203b204f4a0d06200521050c070b2044200320054104742231108505224120316a2131204f4101480d0420054101480d042032202f6a2105034002400240203141706a222f280200200341706a223b280200203b280204223c202f280204223d203d203c4b1b10880522400d00417f203d203c47203d203c491b213c0c010b417f410120404100481b213c0b2005203b202f203c417f46223c1b223d290200370200200541086a203d41086a2902003702002031202f203c1b21312030203b2003203c1b22034f0d05200541706a2105203120414b0d000c050b0b20052042418cf8c0001042000b204d2005418cf8c0001048000b204a204741fcf7c0001033000b2003204741ecf7c0001033000b20412105200321300c010b203e202f6a213d20052105034002400240200328020020052802002005280204222f2003280204223b203b202f4b1b108805223c0d00417f203b202f47203b202f491b212f0c010b417f4101203c4100481b212f0b203020032005202f417f46222f1b223b290200370200203041086a203b41086a2902003702002005200541106a202f1b2105203041106a2130200341106a2003202f1b2203203d4f0d0120052031490d000b0b20302005203120056b4170711085051a204e200d204f6a360200204b204d360200204c204c41086a2047204a6b41037441706a1086051a41012147204941014b0d000b0b2048450d060c000b0b418486c20041fc00418087c2001050000b418486c20041fc00418087c2001050000b200441f0026a41186a200b2802002203360200200441f0026a41106a200c2903002207370300200441f0026a41086a200d290300220e370300200420042903f80722503703f002200441f8036a41186a222f2003360200200441f8036a41106a223b2007370300200441f8036a41086a223c200e370300200420503703f80320044198046a10ce014101102f2203450d09200341003a0000410041003502e0ac4220067c42adfed5e4d485fda8d8007e42218922073e02e0ac4220044190016a2009420042adfed5e4d485fda8d8004200108405200441f0006a200742a4bb99fed1a0bbb02385420042adfed5e4d485fda8d800420010840520044180016a200a420042adfed5e4d485fda8d8004200108405200441e0006a200742c5ecb3fec9ecf7c2c30085420042adfed5e4d485fda8d8004200108405200441d0006a2007200885420042adfed5e4d485fda8d8004200108405200441f8076a418de2c10041011065201441186a200b290000370000201441106a200c290000370000201441086a200d290000370000201420042900f80737000020044281808080103702ec04200420033602e804200442003703e004200441bcf5c1003602dc04200441003602d8042004200441e0006a41086a29030020042903608520087c200441d0006a41086a29030020042903508542cf829ebbefefde82147c220e423088893703d0042004200720044180016a41086a290300200429038001857c200e422088893703c8042004200441f0006a41086a29030020042903708520087c200e421088893703c0042004200720044190016a41086a290300200429039001857c200e893703b8042032280208220541176a2203417f4c0d05203228020021300240024020030d00410121310c010b2003102f2231450d0a0b2004410036028008200420033602fc07200420313602f807200441f8076a418b90c200411710fd02200441f8076a2030200510fd0220042802fc072139200441f8066a200120042802f807225120042802800810e7020240024020042802f8064101470d0020044198056a41186a20044198046a41186a29030037030020044198056a41106a20044198046a41106a29030037030020044198056a41086a20044198046a41086a2903003703002004200429039804370398050c010b024020042802fc062203450d0002402004290380072207422088a72205450d00200420032d00003a00fc0720054101460d00200420032d00013a00fd0720054102460d00200420032d00023a00fe0720054103460d00200420032d00033a00ff0720054104460d00200d20032d00043a000020054105460d00200441f8076a41096a20032d00053a000020054106460d00200441f8076a410a6a20032d00063a000020054107460d00201720032d00073a000020054108460d00201520032d00083a000020054109460d00201820032d00093a00002005410a460d00201920032d000a3a00002005410b460d00201a20032d000b3a00002005410c460d00200c20032d000c3a00002005410d460d00201b20032d000d3a00002005410e460d00201c20032d000e3a00002005410f460d00201d20032d000f3a000020054110460d00200441f8076a41146a223020032d00103a000020054111460d00201e20032d00113a000020054112460d00201f20032d00123a000020054113460d00200441f8076a41176a20032d00133a000020054114460d00200b20032d00143a000020054115460d00202020032d00153a000020054116460d00202120032d00163a000020054117460d00202220032d00173a000020054118460d00202320032d00183a000020054119460d00202420032d00193a00002005411a460d00202520032d001a3a00002005411b460d00202620032d001b3a00002005411c460d00200441f8076a41206a20032d001c3a00002005411d460d00202720032d001d3a00002005411e460d00202820032d001e3a00002005411f460d00202920032d001f3a000020042f00950820262d000041107472410874200428009108220541187672214f20042f01fc0720042d00fe0741107472213d20042f00830820182d000041107472213120042f018a0820302d0000411074722130200428008d082141200428018608214720042800ff072142200428029808214002402007a7450d00200310300b200420053b00ad0520044198056a41176a20054110763a0000200420303b01a60520044198056a41106a20304110763a0000200420313b009f0520044198056a41096a20314110763a0000200420403602b4052004204f3602b005200420413600a905200420473601a2052004204236009b052004203d3b0198052004203d4110763a009a050c020b2007a7450d00200310300b20044198056a41186a20044198046a41186a29030037030020044198056a41106a20044198046a41106a29030037030020044198056a41086a20044198046a41086a2903003703002004200429039804370398050b200420013602b8052004200441b8046a3602bc0520322802002103200420322802083602d005200420033602cc052004200441b8056a3602c805200441d8056a41186a20044198056a41186a223a290300370300200441d8056a41106a20044198056a41106a2243290300370300200441d8056a41086a223520044198056a41086a225229030037030020042004290398053703d805200441f8076a200441c8056a4180a3c000200441d8056a10fe0220042802fc07210520042802f8072103200441f8066a200d4180011085051a024002400240024002400240024020034101460d00200441f8056a200441f8066a4180011085051a200441f8066a41186a2236202f2802002203360200200441f8066a41106a2237203b290300370300200441f8066a41086a2238203c290300370300200420042903f8033703f8062003450d0220042003417f6a223b36029007200441f8066a410020042802fc061b222f280200213002400240202f2802082231202f28020422052f018a0c4f0d00200521030c010b03400240200528020022030d00410021030c020b203041016a213020052f01880c213120032105203120032f018a0c4f0d000b0b024002402030450d00203141027420036a41900c6a280200210502402030417f6a2230450d000340200528028c0c21052030417f6a22300d000b0b410021300c010b203141016a2130200321050b202f2005360204202f4100360200202f203036020802400240200320314107746a22304188016a28020022054106490d0020304194016a280200210520304190016a28020021300c010b20304190016a21300b02400240024002402030450d002005450d000240024020302005417f6a41186c6a220528020022300d00410021300c010b2005280208212f0b417f203b41016a22052005203b491b220541ffffffff00712005470d1020054104742205417f4c0d1020032031410c6c6a2203410c6a2802002131200341046a28020021032005102f223e450d14203e202f36020c203e2030360208203e2031360204203e2003360200200b20362802002203360200200c2037290300370300200d2038290300370300200420042903f8063703f8072005410476213f024020030d00410121490c040b20042003417f6a223b36029008200441f8076a410020042802fc071b222f280200213002400240202f2802082231202f28020422052f018a0c4f0d00200521030c010b03400240200528020022030d00410021030c020b203041016a213020052f01880c213120032105203120032f018a0c4f0d000b0b024002402030450d00203141027420036a41900c6a280200210502402030417f6a2230450d000340200528028c0c21052030417f6a22300d000b0b410021300c010b203141016a2130200321050b202f2005360204202f4100360200202f2030360208200320314107746a4188016a210520032031410c6c6a41046a210341012149024002400340200328020821302003280200213102400240200528020022034106490d00200528020c2103200528020821050c010b200541086a21050b2005450d022003450d020240024020052003417f6a41186c6a220328020022050d00410021050c010b2003280208212f0b0240203f2049470d00203f417f203b41016a22032003203b491b6a2203203f490d14203f410174223b2003203b20034b1b22034104200341044b1b220341ffffffff0071200346410274213b2003410474210302400240203f0d00200441003602b0090c010b2004203e3602b009200441043602b8092004203f4104743602b4090b200441a0096a2003203b200441b0096a106920042802a809210320042802a0094101460d0220042802a409213e2003410476213f0b203e20494104746a2203200536020820032030360204200320313602002003410c6a202f360200204941016a214902402004280290082203450d0020042003417f6a223b36029008200441f8076a410020042802fc071b222f280200213002400240202f2802082231202f28020422052f018a0c4f0d00200521030c010b03400240200528020022030d00410021030c020b203041016a213020052f01880c213120032105203120032f018a0c4f0d000b0b024002402030450d00203141027420036a41900c6a280200210502402030417f6a2230450d000340200528028c0c21052030417f6a22300d000b0b410021300c010b203141016a2130200321050b202f2005360204202f4100360200202f2030360208200320314107746a4188016a210520032031410c6c6a41046a21030c010b0b0240204941144b0d00204941014d0d06203e20494104746a41606a21034101210503402003200541016a220510b602200341706a210320492005470d000c070b0b2049410176220341ffffffff00712003470d1220034104742253417f4c0d122053102f2246450d16203e41706a2134203e41506a215441002133202d214a41002147204921440340024002402044223b417f6a22030d0041012103410021440c010b02400240203e20034104746a2203280200203e203b417e6a22444104746a2205280200222f2005280204220520032802042203200320054b1b10880522300d00417f200320054720032005491b21030c010b417f410120304100481b21030b0240024002400240024002402003417f460d002054203b4104746a21304102210303400240203b2003470d0041002144203b21030c080b024002400240202f2030280200223c203041046a28020022312005200520314b1b108805222f0d00200520314f0d010c020b202f4100480d010b203041706a2130200341016a210320312105203c212f0c010b0b203b20036b21440c010b203b410274213c2054203b4104746a210302400340024020440d00410021440c020b02400240202f20032802002231200341046a28020022302005200520304b1b108805222f0d00200520304f0d030c010b202f417f4a0d020b2044417f6a2144200341706a2103203021052031212f0c000b0b203b2044490d01203b20494b0d02203b20446b22034101762231450d00203e20444104746a21052034203c4102746a21300340200d200541086a222f290200370300200420052902003703f807203041086a223c290200210720052030290200370200202f2007370200203c200d290300370200203020042903f807370200200541106a2105203041706a21302031417f6a22310d000b0b2044450d04200341094b0d04203b20494b0d02203b20446b21032044417f6a2105203420444104746a21300340203b2005490d0a2030200341016a220310b6022005417f6a223120054f0d04203041706a2130203121052003410a490d000c040b0b2044203b41ccf7c0001048000b203b204941ccf7c0001042000b203b2044417f6a2205490d06203b204941dcf7c0001042000b203141016a21440b024020472033470d00203341016a22052033490d14203341017422302005203020054b1b22054104200541044b1b220541ffffffff01712005464102742130200541037421050240024020330d00200441003602f8070c010b20044104360280082004204a3602f807200420334103743602fc070b200441f8066a20052030200441f8076a10692004280280072105024020042802f8064101470d0020050d190c150b20042802fc06214a200541037621330b204a20474103746a2205200336020420052044360200204741016a224c21470240204c4102490d0003400240024002400240204a204c2247417f6a224c4103746a2203280200450d002047410374204a6a223141746a2802002230200328020422054d0d00204741024d0d05204a2047417d6a224f4103746a2802042203200520306a4d0d01204741034d0d05203141646a280200200320306a4b0d050c010b20474103490d0120032802042105204a2047417d6a224f4103746a28020421030b20032005490d010b2047417e6a214f0b02400240024002402047204f41016a22034d0d0002402047204f4d0d000240204a204f4103746a2245280204224e20452802006a2205204a20034103746a224d280200224b490d000240200520494b0d00204541046a2148203e204b4104746a2230204d280204224241047422316a21032005410474212f02402005204b6b223b20426b22052042490d00204620302031108505220520316a21310240204241014e0d00200521050c080b203b20424a0d06200521050c070b2046200320054104742231108505224120316a213120424101480d0420054101480d042034202f6a2105034002400240203141706a222f280200200341706a223b280200203b280204223c202f280204223d203d203c4b1b10880522400d00417f203d203c47203d203c491b213c0c010b417f410120404100481b213c0b2005203b202f203c417f46223c1b223d290200370200200541086a203d41086a2902003702002031202f203c1b21312030203b2003203c1b22034f0d05200541706a2105203120414b0d000c050b0b20052049418cf8c0001042000b204b2005418cf8c0001048000b204f204741fcf7c0001033000b2003204741ecf7c0001033000b20412105200321300c010b203e202f6a213d20052105034002400240200328020020052802002005280204222f2003280204223b203b202f4b1b108805223c0d00417f203b202f47203b202f491b212f0c010b417f4101203c4100481b212f0b203020032005202f417f46222f1b223b290200370200203041086a203b41086a2902003702002005200541106a202f1b2105203041106a2130200341106a2003202f1b2203203d4f0d0120052031490d000b0b20302005203120056b4170711085051a2048204e20426a3602002045204b360200204d204d41086a2047204f6b41037441706a1086051a41012147204c41014b0d000b0b2044450d050c000b0b20030d150c110b418486c20041fc00418087c2001050000b418486c20041fc00418087c2001050000b2005203b41dcf7c0001048000b0240203341ffffffff0171450d00204a10300b2053450d00204610300b2049450d01203e20494104746a213d203e21030240034020032802002230450d03200341046a2802002131024002400240200341086a280200222f0d00200441f8076a200441f8056a2030203110ff0220042802fc07210520042802f8074101460d0420042903800821070c010b2003410c6a280200210520044100360280090240024020042d00d0064101460d004100213b0c010b200441c4056a41026a201241026a2d00003a00002038201141086a2902003703002037201141106a2902003703002036201141186a2d00003a0000200420122f00003b01c405200420112902003703f8064101213b0b20042802d406213c201020042f01c4053b0000200d20042903f806370200201041026a200441c4056a41026a2d00003a0000200d41086a2038290300370200200d41106a2037290300370200200d41186a20362802003602002004203b3a00f8072004203c3602fc07200441003602a809200420313602a409200420303602a0092005417f4c0d100240024020050d00410121300c010b2005102f2230450d150b200420053602b409200420303602b0092030202f20051085051a200420053602b80920044190096a200441f8056a200441f8076a200441a0096a200441b0096a20044180096a10800320042802940921052004280290094101460d01200420053602d406200441003a00d006200428028009210520042902840921070b02402005450d002007a7450d00200510300b200341106a2203203d470d010c040b0b2004280280092203450d00200428028409450d00200310300b0240203f41ffffffff0071450d00203e10300b200441f8056a10b1010b20052d00000e0404040304020b203f41ffffffff0071450d00203e10300b200441f8056a10b101200441f8066a41026a20042d00da0522033a0000200d200f41086a290000370300200c200f41106a290000370300200b200f41186a2d00003a0000200420042f01d80522053b01f8062004200f2900003703f807200420053b019805200420033a009a05200420042800db0536009b05201320042903f807370000201341086a200d290300370000201341106a200c290300370000201341186a200b2d00003a00000c030b200541286a280200450d01200541246a28020010300c010b200541086a280200450d00200541046a2802001030200510300c010b200510300b20044198056a20044198046a41201088052105200b203a290300370300200c2043290300370300200d205229030037030020042004290398053703f8072016200441b8046a41e000108505210302402039450d00205110300b200441f8056a41186a200b290300370300200441f8056a41106a200c290300370300200441f8056a41086a200d290300370300200420042903f8073703f805200441f8066a200341e0001085051a2032280208223041176a2203417f4c0d05203228020021310240024020030d004101212f0c010b2003102f222f450d0a0b200d4100360200200420033602fc072004202f3602f807200441f8076a418b90c200411710fd02200441f8076a2031203010fd022035200d280200360200200420042903f8073703d805200441f8076a200441f8066a41e0001085051a200441f0016a200441f8076a10c2030240024020050d00200441b8046a41086a22052035280200360200200420042903d8053703b8040240202b202c470d00202b41016a2203202b490d08202b41017422302003203020034b1b22034104200341044b1bad42187e2207422088a74541027421032007a7213002400240202b0d00200441003602f8070c010b20044104360280082004202e3602f8072004202b41186c3602fc070b20044190036a20302003200441f8076a1069200428029803210302402004280290034101470d0020030d0d0c090b200428029403212e200341186e212c0b202e202b41186c6a220320042903b804370200200528020021052003410036020c200341086a20053602000c010b200d2035280200360200200420042903d8053703f8072004410036028c0820044201370284084120102f2203450d0a2004422037029403200420033602900320044190036a200441f8056a412010642015200428029003220320042802980310640240200428029403450d00200310300b0240202b202c470d00202b41016a2203202b490d07202b41017422052003200520034b1b22034104200341044b1bad42187e2207422088a74541027421032007a7210502400240202b0d0020044100360290030c010b20044104360298032004202e360290032004202b41186c360294030b200441b8046a2005200320044190036a106920042802c0042103024020042802b8044101470d0020030d0c0c080b20042802bc04212e200341186e212c0b202e202b41186c6a220320042903f807370200200341106a200c290300370200200341086a200d2903003702000b202a41186a212a202b41016a212b0c000b0b2005203b41dcf7c0001048000b0240204641ffffffff0171450d00204510300b2043450d00204410300b2042450d02203e20424104746a2147200441f8076a41086a2130200441f8076a410172213c200441d8066a213d200441d1066a2142203e21030240034020032802002231450d04200341046a280200212f024002400240200341086a280200223b0d00200441f8076a200441f8056a2031202f10ff0220042802fc07210520042802f8074101460d0420042903800821070c010b2003410c6a2802002105200441003602f0020240024020042d00d0064101460d00410021400c010b200441c4056a41026a204241026a2d00003a0000200441f8066a41086a203d41086a290200370300200441f8066a41106a203d41106a290200370300200441f8066a41186a203d41186a2d00003a0000200420422f00003b01c4052004203d2902003703f806410121400b20042802d4062141203c20042f01c4053b0000203020042903f806370200203c41026a200441c4056a41026a2d00003a0000203041086a200441f8066a41086a290300370200203041106a200441f8066a41106a290300370200203041186a200441f8066a41186a280200360200200420403a00f807200420413602fc07200441003602a0042004202f36029c0420042031360298042005417f4c0d050240024020050d00410121310c010b2005102f2231450d0a0b2004200536029c0520042031360298052031203b20051085051a200420053602a005200441f8036a200441f8056a200441f8076a20044198046a20044198056a200441f0026a10800320042802fc03210520042802f8034101460d01200420053602d406200441003a00d00620042802f002210520042902f40221070b02402005450d002007a7450d00200510300b200341106a22032047470d010c050b0b20042802f0022203450d0020042802f402450d00200310300b0240203f41ffffffff0071450d00203e10300b200441f8056a10b1010b20394110742103201041107421312037411074212f2035411074213b02400240024020052d00000e0402020002010b200541086a280200450d01200541046a28020010300c010b200541286a280200450d00200541246a28020010300b20112003722130203820317221312036202f72212f203a203b722103200510300c030b102c000b203f41ffffffff0071450d00203e10300b200441f8056a10b10120042f01b80420042d00ba0441107472210320042f00cd04200441cf046a2d000041107472213020042f01c604200441b8046a41106a2d000041107472213120042f00bf04200441c1046a2d000041107472212f20042800bb04210c20042801c204213320042800c904210b20042802d004211420042802d40421340b200441f8076a20044190036a41e0001085051a200041176a20304110763a0000200020303b0015200041106a20314110763a0000200020313b000e200041096a202f4110763a00002000202f3b0007200041026a20034110763a0000200020033b01002000203436001c200020143600182000200b3600112000203336000a2000200c360003200441f8066a200441f8076a41e0001085051a200441f8076a200441f8066a41e0001085051a200441f0016a200441f8076a10c203200041206a200441f0016a41e0001085051a0240202b450d00202e210303400240200341046a280200450d00200328020010300b02402003410c6a2802002205450d00200341106a280200450d00200510300b200341186a2103202a41686a222a0d000b0b0240202c450d00202c41186c450d00202e10300b200441c0096a24000f0b102a000bbd0402037f017e230041206b22052400024002400240024002400240024002400240200128020022064198016a2002280200200228020810ed022207450d0020072003200410e6022207450d0002400240200728020022024106490d00200728020c2102200728020821010c010b200741086a21010b2001450d022002450d0202400240024020012002417f6a41186c6a2201280200450d0020062802000d06200141086a22023502002108200641003602002006200629030842017c3703082006280210450d0141b082c2004110200541186a41c082c20041c483c2001034000b20062802000d0641002101200641003602002006200629030842017c37030820062802100d07200641003602100c010b20064100360210200641186a2206200629030020087c37030020022802002202417f4c0d07200128020021060240024020020d00410121010c010b2002102f2201450d090b2001200620021085051a0b2000200236020420002001360200200041086a20023602000c010b200541086a200128020420022003200410ee0220052802084101460d072000200529020c370200200041086a200541146a2802003602000b200541206a24000f0b418486c20041fc00418087c2001050000b41b082c2004110200541186a41c082c20041b483c2001034000b41b082c2004110200541186a41c082c20041b483c2001034000b41b082c2004110200541186a41c082c20041c483c2001034000b102c000b102a000b41d488c1004130200541186a41dcfcc00041fcfcc0001034000bc70101067f024020002802042203450d00200028020021040340200341046a210020032f01d60921054100210603400240024020052006460d000240024020012000280200200041086a2802002207200220072002491b10880522080d00200720024b0d01200720024721070c030b41012107200841004e0d020b200621050b2004450d032004417f6a2104200320054102746a41d8096a28020021030c020b200641016a21062000410c6a210020070d000b0b20032006417f6a41e4006c6a4188016a0f0b41000bb60704047f017e037f017e230041f0006b220524000240024002402002280208220641176a2207417f4c0d00200228020021020240024020070d00410121080c010b2007102f2208450d020b200541003602182005200736021420052008360210200541106a418b90c200411710fd02200541106a2002200610fd0220052802142107200541106a200120052802102208200528021810e70202402007450d00200810300b0240024020052802104101460d0002400240200528021422070d00200541106a10ce0120054100360208200542013703004120102f2207450d052005422037025420052007360250200541d0006a200541106a412010642005200528025022072005280258106402402005280254450d00200710300b20052802002107200528020821080c010b200541186a290300210920052007360200200520093702042009422088a721080b200541106a41186a220a4200370300200541106a41106a220b4200370300200541106a41086a220c42003703002005420037031020084120470d04200a200741186a290000370300200b200741106a290000370300200c200741086a29000037030020052007290000370310200541306a41086a20063602002005200236023420052001360230200541e0006a41086a41002802b8f541360200200541002902b0f541370360024002400240200541306a200541106a200541e0006a10d4010d004130102f2202450d06200241003a000020022005290310370001200241096a200541186a290300370000200241116a200541206a290300370000200241196a200541286a2903003700000c010b2005410036025c200541a8a3c0003602542005200541106a3602582005200541306a360250200541c0006a200541d0006a20032004109104024020052802404101460d0002400240200528024422060d004200210d42002109410021020c010b200541c8006a290300220d4220882209a72201417f4c0d060240024020010d00410121020c010b2001102f2202450d080b2002200620011085051a0240200da7450d00200610300b200d42808080807083210d0b200041086a2009200d8437020020002002360204200041003602000c020b200528024421020b02400240024020022d00000e0402020002010b200241086a280200450d01200241046a28020010300c010b200241286a280200450d00200241246a28020010300b20021030200041013602000b2005280204450d01200710300c010b200041013602000b200541f0006a24000f0b102c000b102a000b41202008418c91c200105b000b150020004200370204200041002802e88f423602000b6501037f2001280204210220012802002103024020012802082201450d00200141047421042003210103400240200141046a280200450d00200128020010300b200141106a2101200441706a22040d000b0b0240200241ffffffff0071450d00200310300b0bc80302037f017e230041106b22032400024002400240024002400240024002402000280200220441c0006a2001200210e6022205450d0002400240200528020022014106490d00200528020c2101200528020821050c010b200541086a21050b2005450d022001450d02024020052001417f6a41186c6a2205280200450d0020042802000d04200541086a3502002106200441003602002004200429030842017c37030820042802100d0520044100360210200441186a2204200429030020067c370300200528020021050c020b20042802000d0541002105200441003602002004200429030842017c37030820042802100d06200441003602100c010b200320002802042001200210e70220032802004101460d060240200328020422050d00410021050c010b200341086a280200450d00200510300b200341106a240020054100470f0b418486c20041fc00418087c2001050000b41b082c2004110200341c082c20041b483c2001034000b41b082c2004110200341c082c20041c483c2001034000b41b082c2004110200341c082c20041b483c2001034000b41b082c2004110200341c082c20041c483c2001034000b41d488c1004130200341dcfcc000418cfdc0001034000b9a3c05127f017e027f017e037f23004190066b220324000240200041086a2802002204280224450d002004106c0b2004200329039003370300200441003602242004200329039005370328200441206a20034190036a41206a280200360200200441186a20034190036a41186a290300370300200441106a20034190036a41106a290300370300200441086a20034190036a41086a290300370300200441306a20034190056a41086a290300370300200441386a20034190056a41106a290300370300200441c0006a20034190056a41186a290300370300200441c8006a20034190056a41206a290300370300200441d0006a200341b8056a290300370300200441d8006a20034190056a41306a290300370300200441003a0060200441e1006a200329009004370000200441e9006a20034190046a41086a290000370000200441f1006a20034190046a41106a290000370000200441f9006a20034190046a41186a29000037000020044180016a200341af046a29000037000002400240024002400240024002400240024002400240024020012802082204417f4c0d002001280200210520002802002106410121074101210802402004450d002004102f2208450d0c0b2008200520041085052109200341086a200610c302200328020c210a2003280208210b02402004450d002004102f2207450d0c0b200720092004108505210c02400240200641c4006a280200220d450d002006280240210e0c010b418c0c102f220d450d0c4100210e200d41003b018a0c200d41003602002006200d360244200641003602400b02400340200d2f018a0c220f410c6c210741782110200d41046a221121084100211202400340024020070d00200f21120c020b02400240200c2008280200200828020822132004200420134b1b10880522140d0020042013490d03200420134721130c010b4101211320144100480d020b2008410c6a2108201241016a2112201041807f6a2110200741746a210720130d000b02402004450d00200c10300b200d20106b21140c020b0240200e450d00200e417f6a210e200d20124102746a418c0c6a280200210d0c010b0b02400240200f410a4b0d00201241016a210702402012200f4f22130d0020112007410c6c6a20112012410c6c6a200f20126b410c6c1086051a0b20112012410c6c6a22082004360208200820043602042008200c36020020034190056a20034190046a41f8001085051a200d4188016a2108024020130d00200820074107746a200820124107746a200f20126b4107741086051a0b200820124107746a22144200370200201441086a20034190056a41f8001085051a200d200f41016a3b018a0c0c010b410521084100211402400240201241054f0d0041042108201221070c010b41052107024002402012417b6a0e020201000b201241796a210741012114410621080c010b41002107410121140b418c0c102f2213450d0d201341003b018a0c201341003602002013200d2f018a0c220e2008417f736a22123b018a0c20112008410c6c6a221029020421152010280200210f20034190056a200d4188016a221620084107746a4180011085051a0240024002400240024002400240024002402012410c4f0d00200e200841016a22106b2012470d01201341046a20112010410c6c6a2012410c6c1085051a20134188016a201620104107746a20124107741085051a200d20083b018a0c20034190046a20034190056a4180011085051a2013200d20141b220841046a21120240200741016a221420082f018a0c22104b220e0d0020122014410c6c6a20122007410c6c6a201020076b410c6c1086051a0b20122007410c6c6a22122004360208201220043602042012200c36020020034190056a20034190026a41f8001085051a20084188016a21120240200e0d00201220144107746a201220074107746a201020076b4107741086051a0b201220074107746a22144200370200201441086a20034190056a41f8001085051a2008201041016a3b018a0c20034190036a20034190046a4180011085051a20034190016a20034190036a4180011085051a024002400240200d28020022080d00410021160c010b410021162013211720152118200f21190340200d2f01880c211020034190026a20034190016a4180011085051a2008220e2f018a0c2211410b490d024100210d41042108024020104105490d0020102108024002402010417b6a0e020201000b201041796a21104101210d410621080c010b410021104101210d410521080b41bc0c102f2213450d19201341003b018a0c201341003602002013200e2f018a0c221a2008417f736a22073b018a0c200e2008410c6c6a221241086a2902002115201241046a280200210f20034190056a200e4188016a221b20084107746a4180011085051a2007410c4f0d05201a200841016a220c6b2007470d06201341046a201241106a2007410c6c1085051a20134188016a201b200c4107746a20074107741085051a200e20083b018a0c20034190046a20034190056a4180011085051a20132f018a0c220741016a21122007410c4f0d07201120086b22082012470d08201641016a21162013418c0c6a200e200c4102746a418c0c6a20084102741085051a4100210802400340201320084102746a418c0c6a280200221220083b01880c20122013360200200820074f0d01200820082007496a220820074d0d000b0b20034190036a20034190046a4180011085051a2013200e200d1b221241046a210c0240201041016a220820122f018a0c22074b22110d00200c2008410c6c6a200c2010410c6c6a200720106b410c6c1086051a0b200c2010410c6c6a220c2018370204200c201936020020034190056a20034190026a4180011085051a20124188016a210d024020110d00200d20084107746a200d20104107746a200720106b4107741086051a0b200741016a210c200d20104107746a20034190056a4180011085051a2012418c0c6a210d0240201041026a2219200741026a22114f0d00200d20194102746a200d20084102746a200720106b4102741086051a0b200d20084102746a20173602002012200c3b018a0c0240200820114f0d00201220104102746a41900c6a2108034020082802002207201041016a22103b01880c20072012360200200841046a2108200c2010470d000b0b20034190016a20034190036a4180011085051a200e210d2013211720152118200f2119200e28020022080d000b0b200341106a20034190016a4180011085051a20062802442207450d072006280240211241bc0c102f2208450d172008200736028c0c200841003b018a0c20084100360200200741003b01880c20072008360200200620083602442006201241016a36024020122016470d0820082f018a0c2207410b4f0d092008200741016a22123b018a0c20082007410c6c6a221041086a2015370200201041046a200f360200200820074107746a4188016a200341106a4180011085051a2008418c0c6a20124102746a2013360200201320123b01880c20132008360200200641c8006a2208200828020041016a3602000c0b0b200e41046a21080240201120104d22070d0020082010410c6c6a2213410c6a2013201120106b410c6c1086051a0b20082010410c6c6a220820183702042008201936020020034190056a20034190016a4180011085051a201041016a2108200e4188016a2113024020070d00201320084107746a201320104107746a201120106b4107741086051a0b201141016a2112201320104107746a20034190056a4180011085051a200e418c0c6a2113201141026a210c024020070d00201041027420136a41086a201320084102746a201120106b4102741086051a0b200e20123b018a0c201320084102746a20173602002008200c4f0d09201141016a2112200e2008417f6a22084102746a41900c6a2107034020072802002213200841016a22083b01880c2013200e360200200741046a210720122008470d000c0a0b0b2012410b41e8a2c2001042000b41f8a2c200412841a0a3c200102d000b2007410b41e8a2c2001042000b41f8a2c200412841a0a3c200102d000b2012410c41f8a3c2001042000b41f8a2c200412841a0a3c200102d000b41b2abc200412b41e0abc200102d000b41eaa0c2004130419ca1c200102d000b41aca1c200412041cca1c200102d000b200641c8006a2208200828020041016a3602000b02400240200641cc006a28020022084106490d00200641d8006a2802002108200641d4006a28020021060c010b200641d4006a21060b0240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002402006450d0020080d010b41002112024020040d00410021130c020b20091030410021130c010b20062008417f6a2217410c6c6a220f41046a211602400240200f280204220c450d00200f280200210d0c010b418c01102f220c450d224100210d200c41003b018a01200c41003602002016200c360200200f41003602000b0340200c2f018a01220e410c6c2107200c41046a221121084100211202400340024020070d00200e21120c020b0240024020092008280200200828020822132004200420134b1b10880522100d0020042013490d03200420134721130c010b4101211320104100480d020b2008410c6a2108201241016a2112200741746a210720130d000b41002113410121122004450d02200910300c020b0240200d450d00200d417f6a210d200c20124102746a418c016a280200210c0c010b0b024002400240200e410a4b0d0002402012200e4f0d0020112012410c6c6a2208410c6a2008200e20126b410c6c1086051a0b20112012410c6c6a220820093602002008200436020820082004360204200c200e41016a3b018a010c010b410521084100211002400240201241054f0d0041042108201221070c010b41052107024002402012417b6a0e020201000b201241796a210741012110410621080c010b41002107410121100b418c01102f2213450d23201341003b018a01201341003602002013200c2f018a01220d2008417f736a22123b018a012012410c4f0d03200d200841016a22196b2012470d0420112008410c6c6a220d2902042115200d280200210e201341046a20112019410c6c6a2012410c6c1085051a200c20083b018a012013200c20101b220841046a21120240200741016a220d20082f018a0122104b0d002012200d410c6c6a20122007410c6c6a201020076b410c6c1086051a0b20122007410c6c6a2207200936020020072004360208200720043602042008201041016a3b018a01024002400240200c28020022080d00410021110c010b410021112013211920152118200e211a0340200c2f0188012110200822092f018a01220d410b490d024100210c41042108024020104105490d0020102108024002402010417b6a0e020201000b201041796a21104101210c410621080c010b410021104101210c410521080b41bc01102f2213450d26201341003b018a0120134100360200201320092f018a0122122008417f736a22073b018a012007410c4f0d082012200841016a221b6b2007470d0920092008410c6c6a221241086a2902002115201241046a280200210e201341046a201241106a2007410c6c1085051a200920083b018a0120132f018a01220741016a21122007410c4f0d0a200d20086b22082012470d0b201141016a21112013418c016a2009201b4102746a418c016a20084102741085051a4100210802400340201320084102746a418c016a280200221220083b01880120122013360200200820074f0d01200820082007496a220820074d0d000b0b20132009200c1b221241046a210d0240201041016a220820122f018a0122074b0d00200d2008410c6c6a200d2010410c6c6a200720106b410c6c1086051a0b200741016a210c200d2010410c6c6a220d2018370204200d201a3602002012418c016a210d0240201041026a221b200741026a221a4f0d00200d201b4102746a200d20084102746a200720106b4102741086051a0b200d20084102746a20193602002012200c3b018a0102402008201a4f0d00201220104102746a4190016a2108034020082802002207201041016a22103b01880120072012360200200841046a2108200c2010470d000b0b2009210c2013211920152118200e211a200928020022080d000b0b20162802002207450d0a200f280200211241bc01102f2208450d242008200736028c01200841003b018a0120084100360200200741003b0188012007200836020020162008360200200f201241016a36020020122011470d0b20082f018a012207410b4f0d0c410121122008200741016a22103b018a0120082007410c6c6a220741086a2015370200200741046a200e3602002008418c016a20104102746a2013360200201320103b0188012013200836020020062017410c6c6a2208200828020841016a3602080c020b201041016a2108200941046a2107200d41016a211302400240200d20104b0d0020072010410c6c6a220720183702042007201a3602002009418c016a2107200d41026a21120c010b20072008410c6c6a20072010410c6c6a2207200d20106b2212410c6c1086051a200720183702042007201a36020020104102742009418c016a22076a41086a200720084102746a20124102741086051a200d41026a21120b2007200841027422106a2019360200200920133b018a01200820124f0d00201020096a418c016a210703402007280200221320083b01880120132009360200200741046a21072012200841016a2208470d000b0b4101211220062017410c6c6a2208200828020841016a3602080b410121130b02400240201428020022084106490d00201428020c2108201428020821070c010b201441086a21070b201220137121130240024002400240024002402007450d0020080d010b20034190056a20002802042005200410e7022003280290054101460d0e20034190046a41086a20034190056a41086a290300420020032802940522041b37030020034101360290042003200441002802dc944220041b3602940420034190046a410472210420130d02201428020022084106490d012014410c6a2802002208450d0220034190056a41086a200441086a280200360200200320042902003703900520034190056a2107201428020822040d04418486c20041fc00418888c2001050000b02402013450d000240024020072008417f6a220441186c6a28020022130d00410021080c010b2007200441186c6a2802082204417f4c0d1b0240024020040d00410121080c010b2004102f2208450d270b2008201320041085051a0b2003419c046a200436020020034198046a20043602002003200836029404200341013602900420034190046a41047221040c020b4100210820034100360290040c180b20080d010b20034190056a41086a200441086a28020036020020032004290200370390050240024002400240201428020022044106490d00201428020c22072004460d012014410c6a21080c170b4105210720044105460d01201441086a211220042107201421080c170b201428020c2108200421070c010b200421080b20072008470d12200841016a22072008490d0f4100417f2007417f6a677620074102491b220741016a22082007490d0f0240024020044106490d00201428020c210720142802082112200421130c010b201441086a211241052113200421070b200720084b0d0c0240200841054b0d00200441054d0d1320144100360204201441086a2012200741186c1085051a201420073602002013ad42187e2215422088a70d0e201210300c130b20132008470d0e0c120b20034190056a41086a200441086a2802003602002003200429020037039005201441086a210420034190056a21070b024020042008417f6a41186c6a22042802002208450d00200441046a280200450d00200810300b20042007290200370200200441086a200741086a2802003602000c130b2012410b41e8a2c2001042000b41f8a2c200412841a0a3c200102d000b2007410b41e8a2c2001042000b41f8a2c200412841a0a3c200102d000b2012410c41f8a3c2001042000b41f8a2c200412841a0a3c200102d000b41b2abc200412b41e0abc200102d000b41eaa0c2004130419ca1c200102d000b41aca1c200412041cca1c200102d000b41d488c100413020034190046a418489c100419489c1001034000b41c29ac200412041e49ac200102d000b200341003602940320032015a73602900341bea9c200412b20034190036a41ccfcc00041f485c2001034000b2008ad42187e2215422088a70d002015a721100240200441054b0d002010102f2204450d1420042012200741186c1085051a0c030b2013ad42187e2215422088a7450d010b41d099c200411141e499c200102d000b2010102f2204450d112004201220102015a72213201320104b1b1085051a201210300b2014200736020c2014200436020820144101360204201420083602000b2014410c6a2108201428020c21070b201428020821120b20034190056a41086a280200211320032903900521152012200741186c6a220441002802e88f4236020c20042015370200200441106a4200370200200441086a20133602002008200828020041016a3602000b41012108200b4101470d0002400240201428020022044106490d00201428020c2104201428020821070c010b201441086a21070b2004450d022007450d0220072004417f6a41186c6a2207410c6a2113024020072802142204450d00200441027420132802006a417c6a280200200a460d010b200741146a211202402004200741106a280200470d0020132004410110f302201228020021040b201328020020044102746a200a360200410121082012201228020041016a3602000b02400240201428020022044106490d00201428020c2104201428020821070c010b201441086a21070b2007450d022004450d0202402008200328029004410147720d002003280294042208450d0020034198046a280200450d00200810300b024020072004417f6a221341186c6a22082802000d00200841002802dc9442360200200842003702040b410c102f2204450d0b20042002290200370200200441086a200241086a28020036020020034190036a41086a2212200841086a2802003602002003200829020037039003200841002802dc94423602002007201341186c6a22074100360208200741046a2213410036020020034190046a41086a20122802002207360200200320032903900337039004024020070d0020034190046a410110f40220034190046a2004280200200428020810640c080b2007417f6a210c02400240024020032802900422122d0000221041037122144103460d0002400240024020140e03000102000b201041027621100c030b200c450d0320122d0001410874201072221041ffff0371418002490d03201041fcff037141027621100c020b200c4103490d0220122f0001201241036a2d000041107472410874201072221041ffff034d0d02201041027621100c010b201041034b0d01200c4104490d0120122800012210418080808004490d010b41012114201041016a220c2010490d000240201041c000490d0041022114201041808001490d00410441052010418080808004491b21140b410121120240200c41c000490d0041022112200c41808001490d0041044105200c418080808004491b21120b024020122014470d00200320034190046a36029005200c20034190056a201410f50220034190046a2004280200200428020810640c090b201220146b20076a220741046a2210417f4c0d010240024020100d00410121090c010b2010102f2209450d0d0b200320103602940520032009360290052003200736029805200320034190056a36029002200c20034190026a201210f50220072012490d0420032802980522102007490d0520032802980422102014490d060240200720126b2207201020146b2210460d0020072010418c91c200105b000b20032802900520126a20032802900420146a20071085051a20034190056a20042802002004280208106420032902940521152003280290052107200328029404450d0920032802900410300c090b2003280294040d060c090b102c000b418486c20041fc00419888c2001050000b418486c20041fc00418888c2001050000b2012200741f483c2001048000b2007201041f483c2001042000b20142010418484c200104a000b201210300c020b200329029404211520032802900421070b2007450d00200320153702940520032007360290050c010b4110102f2207450d012003421037029405200320073602900520034190056a410110f40220034190056a2004280200200428020810640b02402013280200450d00200828020010300b2008200329039005370200200841086a20034190056a41086a2802003602000240200441046a280200450d00200428020010300b200410300240200141046a280200450d00200128020010300b20034190066a24000f0b102a000be10101027f230041206b22032400024002400240200041046a280200220420016b20024f0d00200120026a22022001490d02200441017422012002200120024b1b22014104200141044b1b220141ffffffff03712001464102742102200141027421010240024020040d00200341003602100c010b200341186a410436020020032004410274360214200320002802003602100b200320012002200341106a1069200341086a280200210120032802004101460d0120002003280204360200200041046a20014102763602000b200341206a24000f0b2001450d00102a000b102c000ba80101017f230041106b220224000240024002400240200141c000490d00200141808001490d012001418080808004490d02200241033a000f20002002410f6a410110642002200136020020002002410410640c030b200220014102743a000f20002002410f6a410110640c020b200220014102744101723b01062000200241066a410210640c010b200220014102744102723602082000200241086a410410640b200241106a24000be00101027f230041106b220324000240024002400240200041c000490d00200041808001490d012000418080808004490d02200320003600054105210420034105360200200341033a00040c030b200320004102743a0004410121040c020b4102210420034102360200200320004102744101723b01040c010b4104210420034104360200200320004102744102723602040b024002402001280200220028020822012002490d0020042002470d012000280200200341047220021085051a200341106a24000f0b20022001419484c2001042000b20022004418c91c200105b000be60301067f230041206b22042400200441086a20012802042205200541e0006a41002002200310f702024002400240024002400240024020042802084101460d00200441146a2802002106200441106a22072802002108200428020c2105200441086a200128020041c0006a2002200310f80220072802002107200428020c2102200428020821030240024020050d002003450d010c040b20030d020b2000200836020420002005360200200041086a20063602000c030b41d488c1004130200441186a41dcfcc000419cfdc0001034000b024002402005200320022006200620024b1b10880522090d00200620024f0d020c010b2009417f4a0d010b2000200836020420002005360200200041086a20063602000c010b02400240200728020022064106490d002007410c6a2802002106200741086a28020021070c010b200741086a21070b2007450d012006450d0102400240200641186c20076a41686a2802000d00200020012003200210f6020c010b2002417f4c0d030240024020020d00410121010c010b2002102f2201450d050b2001200320021085052101200041086a200236020020002002360204200020013602000b2005450d002008450d00200510300b200441206a24000f0b418486c20041fc00418087c2001050000b102c000b102a000bb30b02067f017e230041f0016b220624000240024020030d004180dec10021030c010b200641106a2003280208360200200620013602082006200328020036020c41ecddc1002103200641086a21010b200641a8016a41086a220741002802b8f541360200200641002902b0f5413703a801024002400240024002400240024020012002200641a8016a20032802101100000d004130102f22010d010c060b20064100360224200620023602202006200336021c20062001360218200641a8016a200641186a10da02200641e8006a41086a200641a8016a41106a290300370300200641e8006a41106a2202200641a8016a41186a290300370300200641e8006a41186a2203200641a8016a41206a290300370300200641e8006a41206a2208200641a8016a41286a290300370300200641e8006a41286a2209200641a8016a41306a290300370300200641e8006a41306a220a200641a8016a41386a290300370300200641e8006a41386a220b200641a8016a41c0006a2802003602002006200729030037036820062802ac012101024020062802a8014101460d00200641286a41386a200b280200360200200641286a41306a200a290300370300200641286a41286a2009290300370300200641286a41206a2008290300370300200641286a41186a2003290300370300200641286a41106a2002290300370300200641286a41086a2203200641e8006a41086a2903003703002006200629036837032841c000102f2202450d0620022001360200200220062903283702042002410c6a2003290300370200200241146a200641386a2903003702002002411c6a200641c0006a290300370200200241246a200641c8006a2903003702002002412c6a200641d0006a290300370200200241346a200641d8006a2903003702002002413c6a200641e0006a28020036020041012103200541016a2201417f4a0d020c050b0240024020012d00000e0404040004010b200141086a280200450d03200141046a28020010300c030b200141286a280200450d02200141246a28020010300c020b200141003a000020012002290000370001200141096a200241086a290000370000200141116a200241106a290000370000200141196a200241186a29000037000020011030200041013602000c020b02402001450d002001102f2203450d040b200641003602302006200136022c20062003360228200641286a2004200510b903024002400240024002400240024020062802302201200628022c2203470d00200141016a22032001490d09200141017422072003200720034b1b22034108200341084b1b21030240024020010d00200641003602a8010c010b200641a8016a41086a4101360200200620013602ac01200620062802283602a8010b200641e8006a20034101200641a8016a1069200641f0006a280200210320062802684101460d01200628026c21072006200336022c200620073602280b2006280228220720016a41003a00002006200141016a220136023002402002200720011092042201450d0002400240024020012d00000e0402020002010b200141086a280200450d01200128020410300c010b200141286a280200450d00200128022410300b200110302000410136020020030d050c060b200641a8016a200210e4024100210120062802a80122054102470d010c020b20030d080c070b20062802ac012101024020054101470d0002400240024020012d00000e0402020002010b200141086a280200450d01200141046a28020010300c010b200141286a280200450d00200141246a28020010300b200110300c020b2001450d01200641b0016a290300210c200641bc016a280200450d00200641b8016a28020010300b2000200136020420004100360200200041086a200c3702002003450d020c010b200041013602002003450d010b200710300b2002108603200210300c010b20011030200041013602000b200641f0016a24000f0b102c000b102a000ba808010b7f230041206b22042400024002400240200128020422050d00200441186a41003602002004410036020c0c010b200128020021064101210102400340410221070240024002400240024020010e0400010302000b03400c000b0b200541046a210820052f018a0c2109410021010240034041012107024020092001470d00200921010c020b0240024020022008280200200841086a280200220a20032003200a4b1b108805220b0d002003200a490d032003200a4721070c010b41012107200b4100480d020b200141016a21012008410c6a210820070d000b410221070b200120052f018a0c22094d0d02418c81c200412441b081c200102d000b410321070b20052f018a0c2109410021010b024020012009490d002006450d022006417f6a2106200520014102746a418c0c6a2802002105200721010c010b0b0240024020060d002005210c0c010b2005210c0340200721082006417f6a2106200520014102746a418c0c6a28020021054102210741002101024002400240024020080e0401020300010b20052f018a0c2101410321070c020b200541046a210820052f018a0c210d410021074100210a03400240200d200a2201470d00200d21010c030b0240024020022008280200200841086a280200220a20032003200a4b1b108805220e0d002003200a490d042003200a47210b0c010b4101210b200e41004e0d00410021070c030b200141016a210a2008410c6a2108200b0d000b410321070c010b200541046a210820052f018a0c21014100210a02400340410121072001200a460d020240024020022008280200200841086a280200220b20032003200b4b1b108805220e0d002003200b490d032003200b4721070c010b41012107200e4100480d020b200a41016a210a2008410c6a210820070d000b410221070b200a21010b200c20094102746a418c0c6a280200220c2f018a0c210920060d000b0b2004411c6a2009360200200441186a200c36020020044100360214200420013602102004200536020c200441003602080240200c450d0041000d02200c450d022005200c470d0020012009460d020b200428020821030240024020042802102208200428020c22072f018a0c4f0d00200721010c010b03400240200728020022010d00410021010c020b200341016a210320072f01880c210820012107200820012f018a0c4f0d000b0b024002402003450d00200841027420016a41900c6a280200210702402003417f6a2203450d000340200728028c0c21072003417f6a22030d000b0b410021030c010b200841016a2103200121070b200041086a200120084107746a4188016a360200200020012008410c6c6a2201410c6a2802003602042000200141046a280200360200200420033602102004200736020c200441003602080c020b200441186a41003602002004410036020c0b200041003602000b200441206a24000b060010fa02000b1100418ee2c100410f4194e3c100102d000bf30802037f017e23004180016b220524000240024002400240024002400240024002400240200128020022064198016a2002280200200228020810ed022207450d0020072003200410e6022207450d0002400240200728020022024106490d00200728020c2102200728020821010c010b200741086a21010b2001450d042002450d04024020012002417f6a41186c6a2202280200450d0020062802000d06200241086a22013502002108200641003602002006200629030842017c3703082006280210450d0241b082c2004110200541286a41c082c20041c483c2001034000b20062802000d0641002102200641003602002006200629030842017c37030820062802100d07200641003602100c020b200541086a200128020420022003200410ee0241022102024020052802084101460d0002400240200528020c22060d00410021020c010b200541e0006a2006200541086a41086a2903002208422088a71065200541286a41186a200541e0006a41186a290000370300200541286a41106a200541e0006a41106a290000370300200541286a41086a200541e0006a41086a29000037030020052005290060370328410121022008a7450d00200610300b200541e0006a41186a200541286a41186a290300370300200541e0006a41106a200541286a41106a290300370300200541e0006a41086a200541286a41086a290300370300200520052903283703600b20024102460d07200541086a41186a200541e0006a41186a290300370300200541086a41106a200541e0006a41106a290300370300200541086a41086a200541e0006a41086a290300370300200520052903603703080c020b20064100360210200641186a2206200629030020087c370300200541e0006a200228020020012802001065200541c1006a200541e0006a41186a290000370000200541396a200541f0006a290000370000200541316a200541e8006a29000037000020052005290060370029410121020b200541206a200541c1006a290000370300200541186a200541396a290000370300200541106a200541316a290000370300200520052900293703080b0240024020024101460d00200041003602000c010b200541286a41186a200541086a41186a290300370300200541286a41106a200541086a41106a290300370300200541286a41086a200541086a41086a2903003703002005410036025820054201370350200520052903083703284120102f2202450d062005422037026420052002360260200541e0006a200541286a41201064200541d0006a200528026022022005280268106402402005280264450d00200210300b20002005290350370200200041086a200541d0006a41086a2802003602000b20054180016a24000f0b418486c20041fc00418087c2001050000b41b082c2004110200541286a41c082c20041b483c2001034000b41b082c2004110200541286a41c082c20041b483c2001034000b41b082c2004110200541286a41c082c20041c483c2001034000b41d488c1004130200541286a41dcfcc00041acfdc0001034000b102a000bc15e05077f017e027f027e1a7f230041c0066b220324000240024002400240024002400240024002402002280208220441176a2205417f4c0d00200228020021020240024020050d00410121060c010b2005102f2206450d070b2003410036028005200320053602fc04200320063602f804200341f8046a418b90c200411710fd02200341f8046a2002200410fd02200328028005210720032802fc04210820032802f8042109024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024020012802082d0060450d00024002402001280200220541c0006a2009200710e6022202450d0002400240200228020022044106490d00200228020c2104200228020821020c010b200241086a21020b2002450d042004450d040240024020022004417f6a41186c6a2202280200450d0020052802000d07200241086a2204350200210a200541003602002005200529030842017c3703082005280210450d0141b082c2004110200341f8026a41c082c20041c483c2001034000b20052802000d07200541003602002005200529030842017c37030820052802100d08200541003602100c220b20054100360210200541186a22052005290300200a7c37030020042802002205417f4c0d1e200228020021040240024020050d0041012102410021050c010b2005102f2202450d250b2002200420051085051a200521040c010b200341f8046a20012802042009200710e70220032802f8044101460d0720034184056a280200210520034180056a280200210420032802fc0421020b2002450d1f2005450d1d200320022d00003a00fc04200341013602f80420054101470d010c1d0b02400240024002400240024020012802004198016a2002200410ed02220b0d00200341023a0098052001280200220541c0006a2009200710e6022202450d03200228020022044106490d01200228020c2104200228020821020c020b200341f8046a200b10e902200341e0006a41186a200341f8046a41186a22042802002205360200200341e0006a41106a200341f8046a41106a2206290300220a370300200341e0006a41086a200341f8046a41086a220c290300220d370300200320032903f804220e3703602001280204210220034180016a41186a200536020020034180016a41106a200a37030020034180016a41086a200d3703002003200e37038001200341a0016a10ce014101102f2205450d26200541003a0000410041003502e0ac42200341f8046aad7c42adfed5e4d485fda8d8007e422189220a3e02e0ac42200341d0006a41e0acc200ad220d42a4bb99fed1a0bbb02385420042adfed5e4d485fda8d8004200108405200341306a200a42a4bb99fed1a0bbb02385420042adfed5e4d485fda8d8004200108405200341c0006a200d42c5ecb3fec9ecf7c2c30085420042adfed5e4d485fda8d8004200108405200341206a200a42c5ecb3fec9ecf7c2c30085420042adfed5e4d485fda8d8004200108405200341106a200a200d85420042adfed5e4d485fda8d8004200108405200341f8046a418de2c1004101106520034194026a20042900003702002003418c026a200629000037020020034184026a200c290000370200200341f4016a428180808010370200200341e8016a4200370300200341e4016a41bcf5c100360200200320032900f8043702fc01200320053602f001200341003602e0012003200a200341d0006a41086a2903002003290350857c200341106a41086a29030020032903108542cf829ebbefefde82147c220e893703c0012003200341206a41086a290300200329032085200d7c200e423088893703d8012003200a200341c0006a41086a2903002003290340857c200e422088893703d0012003200341306a41086a290300200329033085200d7c200e421088893703c801200b280260220441176a2205417f4c0d20200b28025821064101210c02402005450d002005102f220c450d270b2003410036028005200320053602fc042003200c3602f804200341f8046a418b90c200411710fd02200341f8046a2006200410fd0220032802fc04210f200341f8036a200220032802f804221020032802800510e702024020032802f8034101470d00200341a0026a41186a200341a0016a41186a290300370300200341a0026a41106a200341a0016a41106a290300370300200341a0026a41086a200341a0016a41086a290300370300200320032903a0013703a0020c1a0b20032802fc032205450d17200341f8036a41086a290300220a422088a7220c450d15200320052d00003a00fc04200341013602f804200c4101470d040c150b200241086a21020b2002450d092004450d090240024020022004417f6a41186c6a2202280200450d0020052802000d0c200241086a2204350200210a200541003602002005200529030842017c3703082005280210450d0141b082c2004110200341f8026a41c082c20041c483c2001034000b20052802000d0c200541003602002005200529030842017c37030820052802100d0d200541003602100c110b20054100360210200541186a22052005290300200a7c37030020042802002205417f4c0d1e200228020021040240024020050d0041012102410021050c010b2005102f2202450d250b2002200420051085051a200521040c010b200341f8036a20012802042009200710e70220032802f8034101460d0c20034184046a280200210520034180046a280200210420032802fc0321020b2002450d0e2005450d0c200320022d00003a00fc03200341013602f80320054101460d0c200320022d00013a00fd03200341023602f80320054102460d0c200320022d00023a00fe03200341033602f80320054103460d0c200320022d00033a00ff03200341043602f80320054104460d0c20034180046a20022d00043a0000200341053602f80320054105460d0c20034181046a20022d00053a0000200341063602f80320054106460d0c20034182046a20022d00063a0000200341073602f80320054107460d0c20034183046a20022d00073a0000200341083602f80320054108460d0c20034184046a20022d00083a0000200341093602f80320054109460d0c20034185046a20022d00093a00002003410a3602f8032005410a460d0c20034186046a20022d000a3a00002003410b3602f8032005410b460d0c20034187046a20022d000b3a00002003410c3602f8032005410c460d0c20034188046a20022d000c3a00002003410d3602f8032005410d460d0c20034189046a20022d000d3a00002003410e3602f8032005410e460d0c2003418a046a20022d000e3a00002003410f3602f8032005410f460d0c2003418b046a20022d000f3a0000200341103602f80320054110460d0c2003418c046a20022d00103a0000200341113602f80320054111460d0c2003418d046a20022d00113a0000200341123602f80320054112460d0c2003418e046a20022d00123a0000200341133602f80320054113460d0c2003418f046a20022d00133a0000200341143602f80320054114460d0c20034190046a20022d00143a0000200341153602f80320054115460d0c20034191046a20022d00153a0000200341163602f80320054116460d0c20034192046a20022d00163a0000200341173602f80320054117460d0c20034193046a20022d00173a0000200341183602f80320054118460d0c20034194046a20022d00183a0000200341193602f80320054119460d0c20034195046a20022d00193a00002003411a3602f8032005411a460d0c20034196046a20022d001a3a00002003411b3602f8032005411b460d0c20034197046a20022d001b3a00002003411c3602f8032005411c460d0c20034198046a20022d001c3a00002003411d3602f8032005411d460d0c20034199046a20022d001d3a00002003411e3602f8032005411e460d0c2003419a046a20022d001e3a00002003411f3602f8032005411f460d0c2003419b046a20022d001f3a0000200341c0016a41026a20034185046a2d00003a0000200341d8026a41026a2003418c046a2d00003a0000200320032f01fc033b01f802200320032d00fe033a00fa02200320034183046a2f00003b01c00120032003418a046a2f01003b01d80220034194046a28020021112003418d046a280000211220034186046a280100210c200341203602f803200341f8036a41206a280200211320032800ff032106200341a0026a41026a20034193046a2d00003a0000200320034191046a2f00003b01a002410021050c0d0b200320052d00013a00fd04200341023602f804200c4102460d10200320052d00023a00fe04200341033602f804200c4103460d10200320052d00033a00ff04200341043602f804200c4104460d1020034180056a20052d00043a0000200341053602f804200c4105460d1020034181056a20052d00053a0000200341063602f804200c4106460d1020034182056a20052d00063a0000200341073602f804200c4107460d1020034183056a20052d00073a0000200341083602f804200c4108460d1020034184056a20052d00083a0000200341093602f804200c4109460d1020034185056a20052d00093a00002003410a3602f804200c410a460d1020034186056a20052d000a3a00002003410b3602f804200c410b460d1020034187056a20052d000b3a00002003410c3602f804200c410c460d1020034188056a20052d000c3a00002003410d3602f804200c410d460d1020034189056a20052d000d3a00002003410e3602f804200c410e460d102003418a056a20052d000e3a00002003410f3602f804200c410f460d102003418b056a20052d000f3a0000200341103602f804200c4110460d102003418c056a20052d00103a0000200341113602f804200c4111460d102003418d056a20052d00113a0000200341123602f804200c4112460d102003418e056a20052d00123a0000200341133602f804200c4113460d102003418f056a20052d00133a0000200341143602f804200c4114460d1020034190056a20052d00143a0000200341153602f804200c4115460d1020034191056a20052d00153a0000200341163602f804200c4116460d1020034192056a20052d00163a0000200341173602f804200c4117460d1020034193056a20052d00173a0000200341183602f804200c4118460d1020034194056a20052d00183a0000200341193602f804200c4119460d1020034195056a20052d00193a00002003411a3602f804200c411a460d1020034196056a20052d001a3a00002003411b3602f804200c411b460d1020034197056a20052d001b3a00002003411c3602f804200c411c460d1020034198056a20052d001c3a00002003411d3602f804200c411d460d1020034199056a20052d001d3a00002003411e3602f804200c411e460d102003419a056a20052d001e3a00002003411f3602f804200c411f460d102003419b056a20052d001f3a0000200341d8026a41026a20034185056a2d00003a0000200341b0066a41026a2003418c056a2d00003a0000200320032f01fc043b01f802200320032d00fe043a00fa02200320034183056a2f00003b01d80220032003418a056a2f01003b01b00620034194056a28020021142003418d056a280000211320034186056a2801002111200341203602f804200341f8046a41206a280200211520032800ff042112200341a0066a41026a20034193056a2d00003a0000200320034191056a2f00003b01a0064100210c0c110b200320022d00013a00fd04200341023602f80420054102460d1b200320022d00023a00fe04200341033602f80420054103460d1b200320022d00033a00ff04200341043602f80420054104460d1b20034180056a20022d00043a0000200341053602f80420054105460d1b20034181056a20022d00053a0000200341063602f80420054106460d1b20034182056a20022d00063a0000200341073602f80420054107460d1b20034183056a20022d00073a0000200341083602f80420054108460d1b20034184056a20022d00083a0000200341093602f80420054109460d1b20034185056a20022d00093a00002003410a3602f8042005410a460d1b20034186056a20022d000a3a00002003410b3602f8042005410b460d1b20034187056a20022d000b3a00002003410c3602f8042005410c460d1b20034188056a20022d000c3a00002003410d3602f8042005410d460d1b20034189056a20022d000d3a00002003410e3602f8042005410e460d1b2003418a056a20022d000e3a00002003410f3602f8042005410f460d1b2003418b056a20022d000f3a0000200341103602f80420054110460d1b2003418c056a20022d00103a0000200341113602f80420054111460d1b2003418d056a20022d00113a0000200341123602f80420054112460d1b2003418e056a20022d00123a0000200341133602f80420054113460d1b2003418f056a20022d00133a0000200341143602f80420054114460d1b20034190056a20022d00143a0000200341153602f80420054115460d1b20034191056a20022d00153a0000200341163602f80420054116460d1b20034192056a20022d00163a0000200341173602f80420054117460d1b20034193056a20022d00173a0000200341183602f80420054118460d1b20034194056a20022d00183a0000200341193602f80420054119460d1b20034195056a20022d00193a00002003411a3602f8042005411a460d1b20034196056a20022d001a3a00002003411b3602f8042005411b460d1b20034197056a20022d001b3a00002003411c3602f8042005411c460d1b20034198056a20022d001c3a00002003411d3602f8042005411d460d1b20034199056a20022d001d3a00002003411e3602f8042005411e460d1b2003419a056a20022d001e3a00002003411f3602f8042005411f460d1b2003419b056a20022d001f3a0000200341f8026a41026a20034185056a2d00003a0000200341c0016a41026a2003418c056a2d00003a0000200320032f01fc043b01f803200320032d00fe043a00fa03200320034183056a2f00003b01f80220032003418a056a2f01003b01c00120034194056a280200210c2003418d056a280000211220034186056a2801002111200341203602f804200341f8046a41206a280200210620032800ff042113200341d8026a41026a20034193056a2d00003a0000200320034191056a2f00003b01d802410021050c1c0b418486c20041fc00418087c2001050000b41b082c2004110200341f8026a41c082c20041b483c2001034000b41b082c2004110200341f8026a41c082c20041b483c2001034000b41b082c2004110200341f8026a41c082c20041c483c2001034000b41d488c1004130200341f8026a41dcfcc00041bcfdc0001034000b418486c20041fc00418087c2001050000b41b082c2004110200341f8026a41c082c20041b483c2001034000b41b082c2004110200341f8026a41c082c20041b483c2001034000b41b082c2004110200341f8026a41c082c20041c483c2001034000b41d488c1004130200341f8026a41dcfcc00041bcfdc0001034000b410121050b02402004450d00200210300b2005450d010b200341f8036a10ce010c010b20034181046a200341c0016a41026a2d00003a000020034188046a200341d8026a41026a2d00003a00002003418f046a200341a0026a41026a2d00003a0000200320032d00fa023a00fa03200320032f01f8023b01f803200320063600fb03200320032f01c0013b00ff032003200c36018204200320032f01d8023b0186042003201236008904200320032f01a0023b008d04200320133602940420032011360290040b20004100360208200042013702004120102f2205450d11200342203702fc02200320053602f802200341f8026a200341f8036a41201064200020032802f80222052003280280031064024020032802fc02450d00200510300b20032d0098054102470d050c060b4101210c0b0240200aa7450d00200510300b200c450d010b200341a0026a41186a200341a0016a41186a290300370300200341a0026a41106a200341a0016a41106a290300370300200341a0026a41086a200341a0016a41086a290300370300200320032903a0013703a0020c010b200341a9026a200341d8026a41026a2d00003a0000200341b0026a200341b0066a41026a2d00003a0000200341b7026a200341a0066a41026a2d00003a0000200320032d00fa023a00a202200320032f01f8023b01a002200320123600a302200320032f01d8023b00a702200320113601aa02200320032f01b0063b01ae02200320133600b102200320032f01a0063b00b502200320153602bc02200320143602b8020b200320023602c0022003200341c0016a3602c402200341c8026a41086a2004360200200320063602cc022003200341c0026a3602c802200341d8026a41186a200341a0026a41186a290300370300200341d8026a41106a200341a0026a41106a290300370300200341d8026a41086a200341a0026a41086a290300370300200320032903a0023703d802200341f8046a200341c8026a4180a3c000200341d8026a10fe0220032802fc04210520032802f8042102200341f8036a200341f8046a41086a4180011085051a0240024002400240024002400240024020024101460d00200341f8026a200341f8036a4180011085051a200341f8036a41186a20034180016a41186a2802002205360200200341f8036a41106a20034180016a41106a290300370300200341f8036a41086a20034180016a41086a29030037030020032003290380013703f8032005450d0320032005417f6a221236029004200341f8036a410020032802fc031b220c280200210402400240200c2802082206200c28020422022f018a0c4f0d00200221050c010b03400240200228020022050d00410021050c020b200441016a210420022f01880c210620052102200620052f018a0c4f0d000b0b024002402004450d00200641027420056a41900c6a280200210202402004417f6a2204450d000340200228028c0c21022004417f6a22040d000b0b410021040c010b200641016a2104200521020b200c2002360204200c4100360200200c200436020802400240200520064107746a22044188016a28020022024106490d0020044194016a280200210220044190016a28020021040c010b20044190016a21040b024002400240024002402004450d002002450d000240024020042002417f6a41186c6a220228020022040d00410021040c010b2002280208210c0b417f201241016a220220022012491b220241ffffffff00712002470d1320024104742202417f4c0d1320052006410c6c6a2205410c6a2802002106200541046a28020021052002102f2216450d192016200c36020c201620043602082016200636020420162005360200200341f8046a41186a200341f8036a41186a2802002205360200200341f8046a41106a200341f8036a41106a290300370300200341f8046a41086a200341f8036a41086a290300370300200320032903f8033703f80420024104762117024020050d00201641106a21150c050b20032005417f6a221236029005200341f8046a410020032802fc041b220c280200210402400240200c2802082206200c28020422022f018a0c4f0d00200221050c010b03400240200228020022050d00410021050c020b200441016a210420022f01880c210620052102200620052f018a0c4f0d000b0b024002402004450d00200641027420056a41900c6a280200210202402004417f6a2204450d000340200228028c0c21022004417f6a22040d000b0b410021040c010b200641016a2104200521020b200c2002360204200c4100360200200c2004360208200520064107746a4188016a210220052006410c6c6a41046a21054101211802400340200528020821042005280200210602400240200228020022054106490d00200228020c2105200228020821020c010b200241086a21020b2002450d012005450d010240024020022005417f6a41186c6a220528020022020d00410021020c010b2005280208210c0b0240024002400240024020172018470d002017417f201241016a220520052012491b6a22052017490d1a201741017422122005201220054b1b22054104200541044b1b220541ffffffff00712005464102742112200541047421050240024020170d00200341003602b0060c010b200320163602b006200341043602b806200320174104743602b4060b200341a0066a20052012200341b0066a106920032802a806210520032802a0064101460d0120032802a4062116200541047621170b201620184104746a2205200236020820052004360204200520063602002005410c6a200c360200201841016a21182003280290052205450d0320032005417f6a221236029005200341f8046a410020032802fc041b220c2802002104200c2802082206200c28020422022f018a0c4f0d01200221050c020b20050d1e0c180b03400240200228020022050d00410021050c020b200441016a210420022f01880c210620052102200620052f018a0c4f0d000b0b024002402004450d00200641027420056a41900c6a280200210202402004417f6a2204450d000340200228028c0c21022004417f6a22040d000b0b410021040c010b200641016a2104200521020b200c2002360204200c4100360200200c2004360208200520064107746a4188016a210220052006410c6c6a41046a21050c010b0b0240201841144b0d00201841014d0d05201841047420166a41606a21054101210203402005200241016a220210b602200541706a210520182002470d000c060b0b2018410176220541ffffffff00712005470d1420054104742219417f4c0d142019102f221a450d1a201641706a211b201641506a211c41002802e88f42211d4100211e4100211f20182120034020202112410021204101210502402012417f6a2202450d0002400240201620024104746a220528020020162012417e6a22204104746a2202280200220c2002280204220220052802042205200520024b1b10880522040d00417f200520024720052002491b21050c010b417f410120044100481b21050b0240024002400240024002402005417f460d00201c20124104746a2104410221050340024020122005470d0041002120201221050c080b024002400240200c20042802002211200441046a28020022062002200220064b1b108805220c0d00200220064f0d010c020b200c4100480d010b200441706a2104200541016a2105200621022011210c0c010b0b201220056b21200c010b20124102742111201c20124104746a210502400340024020200d00410021200c020b02400240200c20052802002206200541046a28020022042002200220044b1b108805220c0d00200220044f0d030c010b200c417f4a0d020b2020417f6a2120200541706a2105200421022006210c0c000b0b20122020490d01201220184b0d02201220206b22054101762206450d00201620204104746a2102201b20114102746a21040340200341f8046a41086a220c200241086a2211290200370300200320022902003703f804200441086a2213290200210a200220042902003702002011200a3702002013200c290300370200200420032903f804370200200241106a2102200441706a21042006417f6a22060d000b0b2020450d04200541094b0d04201220184b0d02201220206b21052020417f6a2102201b20204104746a2104034020122002490d092004200541016a220510b6022002417f6a220620024f0d04200441706a2104200621022005410a490d000c040b0b2020201241ccf7c0001048000b2012201841ccf7c0001042000b20122020417f6a2202490d052012201841dcf7c0001042000b200641016a21200b0240201f201e470d00201e41016a2202201e490d16201e41017422042002200420024b1b22024104200241044b1b220241ffffffff017120024641027421042002410374210202400240201e0d00200341003602f8040c010b20034104360280052003201d3602f8042003201e4103743602fc040b200341f8036a20022004200341f8046a10692003280280042102024020032802f8034101470d002002450d170c1d0b20032802fc03211d2002410376211e0b201d201f4103746a2202200536020420022020360200201f41016a2221211f024020214102490d0003400240024002400240201d2021221f417f6a22214103746a2205280200450d00201f410374201d6a220641746a2802002204200528020422024d0d00201f41024d0d05201d201f417d6a22224103746a2802042205200220046a4d0d01201f41034d0d05200641646a280200200520046a4b0d050c010b201f4103490d0120052802042102201d201f417d6a22224103746a28020421050b20052002490d010b201f417e6a21220b0240024002400240201f202241016a22054d0d000240201f20224d0d000240201d20224103746a2223280204222420232802006a2202201d20054103746a22252802002226490d000240200220184b0d00202341046a2127201620264104746a22042025280204222841047422066a21052002410474210c0240200220266b221220286b22022028490d00201a20042006108505220220066a21060240202841014e0d00200221020c080b201220284a0d06200221020c070b201a200520024104742206108505221520066a210620284101480d0420024101480d04201b200c6a2102034002400240200641706a220c280200200541706a221228020020122802042211200c2802042213201320114b1b10880522140d00417f201320114720132011491b21110c010b417f410120144100481b21110b20022012200c2011417f4622111b2213290200370200200241086a201341086a2902003702002006200c20111b210620042012200520111b22054f0d05200241706a2102200620154b0d000c050b0b20022018418cf8c0001042000b20262002418cf8c0001048000b2022201f41fcf7c0001033000b2005201f41ecf7c0001033000b20152102200521040c010b2016200c6a211320022102034002400240200528020020022802002002280204220c200528020422122012200c4b1b10880522110d00417f2012200c472012200c491b210c0c010b417f410120114100481b210c0b200420052002200c417f46220c1b2212290200370200200441086a201241086a2902003702002002200241106a200c1b2102200441106a2104200541106a2005200c1b220520134f0d0120022006490d000b0b20042002200620026b4170711085051a2027202420286a360200202320263602002025202541086a201f20226b41037441706a1086051a4101211f202141014b0d000b0b2020450d040c000b0b418486c20041fc00418087c2001050000b418486c20041fc00418087c2001050000b2002201241dcf7c0001048000b0240201e41ffffffff0171450d00201d10300b2019450d00201a10300b2018450d03201620184104746a21150b20162128200341f8046a41086a2102200341f8046a4101722112200341d8036a2111200341d1036a211f0240034020162802002204450d03201641046a2802002106024002400240201641086a280200220c0d00200341f8046a200341f8026a2004200610ff0220032802fc04210520032802f8044101460d04200329038005210a0c010b2016410c6a280200210520034100360280060240024020032d00d0034101460d00410021130c010b2003418c066a41026a201f41026a2d00003a0000200341f8036a41086a201141086a290200370300200341f8036a41106a201141106a290200370300200341f8036a41186a201141186a2d00003a00002003201f2f00003b018c06200320112902003703f803410121130b20032802d4032114201220032f018c063b0000200220032903f803370200201241026a2003418c066a41026a2d00003a0000200241086a200341f8036a41086a290300370200200241106a200341f8036a41106a290300370200200241186a200341f8036a41186a280200360200200320133a00f804200320143602fc04200341003602a806200320063602a406200320043602a0062005417f4c0d120240024020050d00410121040c010b2005102f2204450d190b200320053602b406200320043602b0062004200c20051085051a200320053602b80620034190066a200341f8026a200341f8046a200341a0066a200341b0066a20034180066a10800320032802940621052003280290064101460d01200320053602d403200341003a00d0032003280280062105200329028406210a0b02402005450d00200aa7450d00200510300b201641106a22162015470d010c040b0b2003280280062202450d00200328028406450d00200210300b0240201741ffffffff0071450d00202810300b200341f8026a10b1010b20052d00000e0405050405030b202821160b201741ffffffff0071450d00201610300b200341f8026a10b101200341fa036a20032d00da0222053a000020034180056a2202200341d8026a410f6a29000037030020034188056a2204200341d8026a41176a29000037030020034190056a2206200341d8026a411f6a2d00003a0000200320032f01d802220c3b01f803200320032900df023703f8042003200c3b01a002200320053a00a202200320032800db023600a302200341a0026a411f6a20062d00003a0000200341a0026a41176a2004290300370000200341a0026a410f6a2002290300370000200320032903f8043700a7020c030b200541286a280200450d01200541246a28020010300c010b200541086a280200450d00200541046a2802001030200510300c010b200510300b200341a0026a200341a0016a41201088052102200341f8026a41186a2205200341a0026a41186a290300370300200341f8026a41106a2204200341a0026a41106a290300370300200341f8026a41086a2206200341a0026a41086a290300370300200320032903a0023703f802200341ff036a200341c0016a41e0001085051a200245210c0240200f450d00201010300b200341f8046a41086a22122006290300370300200341f8046a41106a22062004290300370300200341f8046a41186a22042005290300370300200320032903f8023703f8042003200c3a00980520034199056a200341f8036a41e7001085051a200341f8036a41186a2004290300370300200341f8036a41106a2006290300370300200341f8036a41086a2012290300370300200320032903f8043703f803200341003602e002200342013703d8024120102f2205450d0c200342203702fc02200320053602f802200341f8026a200341f8036a41201064200341d8026a20032802f80222052003280280031064024020032802fc02450d00200510300b200128020021050240024020020d0020052802200d0420054100360220200541286a2202200229030042017c37030020052802300d0520054100360230200320073602c801200320083602c401200320093602c001200341003602f8022003200510c302200541c0006a200341c0016a200341f8026a2003280200200328020410c4020c010b20032802e0022202417f4c0d0720032802d80221040240024020020d00410121060c010b2002102f2206450d0e0b200620042002108505210420052802200d0520054100360220200541286a2206200629030042017c37030020052802300d0620054100360230200541386a220620062903002002ad7c370300200320073602c801200320083602c401200320093602c00120034180036a2002360200200320023602fc02200320043602f802200341086a200510c302200541c0006a200341c0016a200341f8026a2003280208200328020c10c4020b200020032903d802370200200041086a200341d8026a41086a2802003602000b200341a0056a106c0b200b0d0c2008450d0c0c0b0b41b082c2004110200341f8026a41c082c20041d483c2001034000b41b082c2004110200341f8026a41c082c20041e483c2001034000b41b082c2004110200341f8026a41c082c20041d483c2001034000b41b082c2004110200341f8026a41c082c20041e483c2001034000b102c000b410121050b02402004450d00200210300b2005450d010b200341f8046a10ce010c010b20034181056a200341f8026a41026a2d00003a000020034188056a200341c0016a41026a2d00003a00002003418f056a200341d8026a41026a2d00003a0000200320032d00fa033a00fa04200320032f01f8033b01f804200320133600fb04200320032f01f8023b00ff042003201136018205200320032f01c0013b0186052003201236008905200320032f01d8023b008d0520032006360294052003200c360290050b20004100360208200042013702004120102f2205450d00200342203702fc03200320053602f803200341f8036a200341f8046a41201064200020032802f80322052003280280041064024020032802fc03450d00200510300b20080d010c020b102a000b200910300b200341c0066a24000b890201047f230041206b2203240002400240200041046a2802002204200041086a28020022056b2002490d00200028020021040c010b0240200520026a22062005490d00200441017422052006200520064b1b22054108200541084b1b21050240024020040d00200341003602100c010b200341106a41086a410136020020032004360214200320002802003602100b200320054101200341106a10b402200341086a2802002105024020032802004101460d00200020032802042204360200200041046a2005360200200041086a28020021050c020b2005450d00102a000b102c000b200420056a200120021085051a200041086a2200200028020020026a360200200341206a24000bd30702047f067e230041b0016b2204240020044190016a41086a41002802b8f541360200200441002902b0f541370390010240024002402001200320044190016a20022802101100000d004130102f2201450d02200141003a000020012003290000370001200141096a200341086a290000370000200141116a200341106a290000370000200141196a200341186a29000037000020002001360204200041013602000c010b200441d0006a41186a2205200341186a290000370300200441d0006a41106a2206200341106a290000370300200441d0006a41086a200341086a290000370300200420032900003703504120102f2207450d0120044190016a41186a2005290300220837030020044190016a41106a2006290300220937030020044190016a41086a200441d0006a41086a290300220a370300410041003502e0ac42200441f0006aad7c42adfed5e4d485fda8d8007e422189220b3e02e0ac4220042004290350220c37039001200441c0006a41e0acc200ad220d42a4bb99fed1a0bbb02385420042adfed5e4d485fda8d8004200108405200441206a200b42a4bb99fed1a0bbb02385420042adfed5e4d485fda8d8004200108405200441306a200d42c5ecb3fec9ecf7c2c30085420042adfed5e4d485fda8d8004200108405200441106a200b42c5ecb3fec9ecf7c2c30085420042adfed5e4d485fda8d80042001084052004200b200d85420042adfed5e4d485fda8d80042001084052000413c6a4200370200200041386a41002802e88f42360200200041c4006a4200370200200041d0006a4108360200200041cc006a2007360200200441f0006a41186a22052008370300200441f0006a41106a22062009370300200441f0006a41086a2207200a3703002004200c370370200041e0006a41013a0000200041dc006a2003360200200041d8006a2002360200200041d4006a2001360200200041306a42003703002000412c6a41bcf5c100360200200041286a4100360200200041086a200b200441c0006a41086a2903002004290340857c200441086a29030020042903008542cf829ebbefefde82147c220889370300200041206a200441106a41086a290300200429031085200d7c200842308889370300200041186a200b200441306a41086a2903002004290330857c200842208889370300200041106a200441206a41086a290300200429032085200d7c200842108889370300200041e1006a2004290370370000200041e9006a2007290300370000200041f1006a2006290300370000200041f9006a200529030037000020004184016a4100360200200041003602000b200441b0016a24000f0b102a000bcf0502037f047e23004190016b22042400410121050240024020012d00584101460d00200141dc006a2802002106410021050c010b200441266a200141db006a2d00003a0000200441106a200141e8006a290200370300200441186a200141f0006a290200370300200441206a200141f8006a2d00003a00002004200141d9006a2f00003b01242004200141e0006a290200370308200141dc006a28020021060b200441003602302004200336022c2004200236022820044100360238200441c8006a41086a2004290308370300200441c8006a41106a200441086a41086a290300370300200441c8006a41186a200441086a41106a290300370300200441e8006a200441086a41186a280200360200200420053a0048200420042f01243b00492004200441246a41026a2d00003a004b2004200636024c200441f0006a2001200441c8006a200441286a200441386a10b00420042802742105024002400240024020042802704101460d00200441f0006a41086a2d000041ff01714102470d01200441c8006a418de2c10041011065200141f1006a200441c8006a41186a2205290000370000200141e9006a200441c8006a41106a2202290000370000200141e1006a200441c8006a41086a2203290000370000200141d9006a2004290048370000200141013a0058200441c8006a418de2c10041011065200441f0006a41186a20052900002207370300200441f0006a41106a20022900002208370300200441f0006a41086a2003290000220937030020042004290048220a37037020012802542201200a370000200141186a2007370000200141106a2008370000200141086a20093700000c020b200041013602002000200536020420042802382201450d02200428023c450d02200110300c020b200141003a0058200141dc006a20053602000b20002004290338370204200041003602002000410c6a200441c0006a2802003602000b20044190016a24000bd70b03027f017e047f23004180076b22062400024002400240024002400240024002400240024020022d00004101470d0020064188036a200241196a29000037030020064180036a200241116a290000370300200641f8026a200241096a290000370300200620022900013703f0022003280208220741017621020240024020074101710d00200328020422072002490d05200641003a00f803200620023602f403200620032802003602f0030c010b200328020422072002490d05200220074f0d062006200328020022073602f003200620023602f403200641f9036a200720026a2d000041f001713a0000200641013a00f8030b2001200641f0026a200641f0036a10a9042208422088a721022008a7450d012000410136020020002002360204200441046a280200450d02200428020010300c020b200241046a28020021020b0240200141c8006a220928020022072007417f6a220a200141c0006a220b28020022072001413c6a220c2802006b716b4101470d00200c10b2012009280200417f6a210a200b28020021070b200b200a200741016a71360200200141c4006a28020020074102746a2002360200200141386a280200220720024d0d04200141306a220c280200200241fc006c6a22022d0000210720022f0001210a200241036a2d0000210b200641086a200241046a220941f8001085051a20094100360200200241003a0000200641f8016a200641086a41f8001085051a200a200b411074722102024002400240024020074101470d00200328020821072003280204210a2003280200210b20064198066a20064198026a41d8001085051a200641f0066a41086a200441086a280200360200200620042902003703f006200641f0026a200120064198066a2003200641f0066a200510aa0420062802f0024101460d0320062802f4022104200641c0056a200641f0026a41086a41d8001085051a200641e8046a200641c0056a41d8001085051a4101210320044101470d01200641f0026a41156a200641086a41156a290000370000200641f0026a41106a200641086a41106a290000370300200641f0026a41086a200641086a41086a290000370300200620062900083703f00220064190036a200641e8046a41d8001085051a200641f0036a200641f0026a41f8001085051a410021010c020b20064198066a200641086a41d8001085051a200641f0066a41086a200441086a280200360200200620042902003703f006200641f0026a200120064198066a2003200641f0066a200510aa0420062802f0024101460d0220062802f4022101200641c0056a200641f0026a41086a41d8001085051a200641e8046a200641c0056a41d8001085051a200641f0036a200641e8046a41d8001085051a20014101472101410021030c010b20064188036a2006411d6a29000037000020064183036a200641186a290000370000200641fb026a200641106a290000370000200620062900083700f302200741017621030240024020074101710d00200a2003490d09410021040c010b200a2003490d092003200a4f0d0a200b20036a2d00004170712107410121040b20064190036a200b200310ab04200641bd036a20073a0000200641bc036a20043a0000200620023b01f002200620024110763a00f2022001200641f0026a10ac04200641f0036a200641e8046a41d8001085051a41002103410121010b20064180016a200641f0036a41f8001085051a200641f0036a20064180016a41f8001085051a200620033a00f002200620023b00f102200620024110763a00f302200641f0026a410472200641f0036a41f8001085051a200c200641f0026a10b3012102200041086a20013a000020002002360204200041003602000c010b20062802f402210120004101360200200020013602040b20064180076a24000f0b2002200741a099c2001042000b2002200741b099c2001042000b2002200741c099c2001033000b2002200741acf0c1001033000b2003200a41a099c2001042000b2003200a41b099c2001042000b2003200a41c099c2001033000b9618020c7f017e230041c0026b220424000240200041086a2802002205280224450d002005106c0b200520042903103703002005410036022420052004290338370328200541206a200441106a41206a280200360200200541186a200441106a41186a290300370300200541106a200441106a41106a290300370300200541086a200441106a41086a290300370300200541306a200441386a41086a290300370300200541386a200441386a41106a290300370300200541c0006a200441386a41186a290300370300200541c8006a200441386a41206a290300370300200541d0006a200441e0006a290300370300200541d8006a200441386a41306a290300370300200541003a0060200541e1006a20042900d001370000200541e9006a200441d0016a41086a290000370000200541f1006a200441d0016a41106a290000370000200541f9006a200441d0016a41186a29000037000020054180016a200441ef016a29000037000020002802002106200420033602c401200420023602c001200441086a200610c30202400240024002400240024020012802082205417f4c0d0020012802002107200428020c2108200428020821094101210a02402005450d002005102f220a450d020b200a20072005108505210a200420053602402004200536023c2004200a360238200441d0016a20064198016a200441386a1082030240024020042802d0014101460d00200441286a200441ec016a280200360200200441206a200441e4016a290200370300200441186a200441dc016a290200370300200420042902d401370310200441386a200641c0006a1083030240024020050d00410121060c010b2005102f2206450d040b20044194016a200536020020042006360290012006200720051085051a20044198016a2005360200200441106a200441386a108403210b0c010b200441d8016a280200200441dc016a28020041e4006c6a4188016a210b0b2004200441c0016a3602b002200441d0016a200b10e002200441386a41186a200441d0016a41186a280200360200200441386a41106a200441d0016a41106a290300370300200441386a41086a200441d0016a41086a290300370300200420042903d001370338200b41146a210c2004200441b0026a360254200441b0026a210d03402004280250210e024003400240200e0d00410021050c020b2004200e417f6a220e360250200441386a4100200428023c1b220f280200210a02400240200f2802082207200f28020422052f018a0c4f0d00200521060c010b03400240200528020022060d00410021060c020b200a41016a210a20052f01880c210720062105200720062f018a0c4f0d000b0b02400240200a450d00200741027420066a41900c6a28020021050240200a417f6a220a450d000340200528028c0c2105200a417f6a220a0d000b0b4100210a0c010b200741016a210a200621050b200f2005360204200f4100360200200f200a36020820062007410c6c6a2205410c6a280200200d280200220a280204220f490d00200a280200200541046a2205280200200f1088050d000b200620074107746a4188016a21070b02402005450d00200441003602900220052802082206417f4c0d02200528020021050240024020060d004101210a0c010b2006102f220a450d040b200a20052006108505210f02400240200b28020c22054106490d00200b2802182105200b280214210a0c010b200c210a0b024002400240200a450d0020050d010b410221052006450d01200f10300c010b20042006360218200420063602142004200f3602102005410c6c200a6a41746a200441106a10e10221050b200720044190026a20052005410247712009200810e2022004280254210d0c010b0b2001280208220641176a2205417f4c0d002000280204210a200128020021070240024020050d004101210f0c010b2005102f220f450d020b200441003602402004200536023c2004200f360238200441386a418b90c200411710fd02200441386a2007200610fd02200428023c2105200441d0016a200a2004280238220f200428024010e70202402005450d00200f10300b20042802d0014101460d050240024020042802d40122050d00200441386a10ce01200441003602a801200442013703a0014120102f2205450d032004422037021420042005360210200441106a200441386a41201064200441a0016a200428021022052004280218106402402004280214450d00200510300b20042802a80121050c010b200441d8016a2903002110200420053602a001200420103702a4012010422088a721050b200441106a41186a220e4200370300200441106a41106a220d4200370300200441106a41086a220b42003703002004420037031020054120470d02200b20042802a001220f41086a290000370300200d200f41106a290000370300200e200f41186a2900003703002004200f290000370310200441b0016a41086a2006360200200420073602b4012004200a3602b001200441386a41086a41002802b8f541360200200441002902b0f54137033802400240200441b0016a200441106a200441386a10d4010d004130102f2205450d03200541003a000020052004290310370001200541096a200441186a290300370000200541116a200441206a290300370000200541196a200441286a2903003700000c010b200441003602cc01200441ecddc1003602c4012004200441106a3602c8012004200441b0016a3602c001200441386a200441c0016a2002200310e302200441d0016a41086a2206200441386a41106a290300370300200441d0016a41106a220a200441386a41186a290300370300200441d0016a41186a2207200441386a41206a290300370300200441d0016a41206a220e200441386a41286a290300370300200441d0016a41286a220d200441386a41306a290300370300200441d0016a41306a220b200441386a41386a290300370300200441d0016a41386a2208200441f8006a2802003602002004200441386a41086a2903003703d001200428023c210520042802384101460d00200441c4006a22092006290300370200200441cc006a200a290300370200200441d4006a2007290300370200200441dc006a200e290300370200200441e4006a200d290300370200200441ec006a200b290300370200200441f4006a200828020036020020042005360238200420042903d00137023c20044190026a200441386a10e40220042802900222064102460d0402400340200428029402210520064101460d012004290398022210422088a72206417f4c0d0320042802a402210720042802a002210d2000280200210e0240024020060d004101210a0c010b2006102f220a450d050b200420063602b4022004200a3602b002200a200520061085051a200420063602b8022004410036029002200e2001200441b0026a20044190026a10c70202402007450d00200d10300b02402010a7450d00200510300b20044190026a200441386a10e40220042802900222064102470d000c060b0b0240200441386a410c6a280200220a450d00200428023c2106200a41306c210703402006280200220a200a280200417f6a36020002402006280200220a2802000d000240200a410c6a280200450d00200a28020810302006280200210a0b200a41046a220a200a280200417f6a3602002006280200220a41046a2802000d00200a10300b200641306a2106200741506a22070d000b0b0240200441c0006a2802002206450d00200641306c450d00200428023c10300b20042802484125490d00200441d0006a28020010300b02400240024020052d00000e0402020002010b200541086a280200450d01200541046a28020010300c010b200541286a280200450d00200541246a28020010300b200510300c040b102c000b102a000b41202005418c91c200105b000b024020092802002206450d00200428023c2105200641306c210a0340200528020022062006280200417f6a3602000240200528020022062802000d0002402006410c6a280200450d0020062802081030200528020021060b200641046a22062006280200417f6a3602002005280200220641046a2802000d00200610300b200541306a2105200a41506a220a0d000b0b0240200441c0006a2802002205450d00200541306c450d00200428023c10300b20042802484125490d00200441d0006a28020010300b20042802a401450d00200f10300b200441c0026a24000ba503010b7f02400240024020012802042203450d00200128020021040c010b41d809102f2203450d0141002104200341003b01d6092003410036020020012003360204200141003602000b02400340200341046a210520032f01d6092206410c6c2107417f2108410021090340024002402007450d00024002402002280200220a20052802002005280208220b2002280208220c200c200b4b1b108805220d0d00200c200b490d01200c200b47210b0c030b4101210b200d41004e0d02200921060c010b200841016a21060b02402004450d002004417f6a2104200320064102746a41d8096a28020021030c030b200020022902003702042000411c6a2001360200200041186a2006360200200041146a200336020041002105200041106a41003602002000410c6a200241086a2802003602000c030b2005410c6a2105200941016a2109200841016a2108200741746a2107200b0d000b0b20002004360204200041106a20013602002000410c6a2008360200200041086a200336020041012105200241046a280200450d00200a1030200041013602000f0b200020053602000f0b102a000bbb0602097f017e230041a0016b220224000240200128020c22034106490d00200141186a28020021030b200242003703082002200336025c2002420037025420024180016a200241086a2003109203024002400240024002402002280280014101470d0020024188016a2802000d0141d099c200411141e499c200102d000b02400240200228020822044106490d00200241146a22052802002106200241106a28020021070c010b200241106a2107200241086a210520042106410521040b0240024020062004490d00200621040c010b20072006410c6c6a2107200620036a20046b210820024180016a410472210903402003450d04200242003703880120072009290200370200200741086a200941086a2802003602002007410c6a21072003417f6a21032004200641016a2206470d000b2002200836025c0b20052004360200200241e0006a41086a200241d0006a41086a290300370300200220022903503703600240200228026c2207450d00200241086a410c6a2108200241086a41086a210a20024180016a4104722109034020022007417f6a36026c0240024020022802680d0020024200370388010c010b20022802642207450d0420092002280260200710f2040b200241f0006a41086a200941086a280200220736020020022009290200220b37037020024190016a41086a220520073602002002200b3703900102400240200228020822064106490d002002280214210720022802102104200821030c010b200241086a210320062107200a2104410521060b024020072006470d0020024180016a200241086a410110920302402002280280014101470d0020024188016a2802000d0441d099c200411141e499c200102d000b2002280214210720022802102104200821030b20042007410c6c6a2207200229039001370200200741086a20052802003602002003200328020041016a360200200228026c22070d000b0b200241e0006a10d4030c030b102a000b41b2abc200412b41a082c200102d000b2002410036025c20052006360200200241d0006a10d4030b200042003702042001280250210720012d005421032000410c6a200241086a41c4001085051a200020033a005420002007360250200241a0016a24000b9c13050c7f017e027f017e027f23004190046b22022400200041146a2802002103024002400240200041106a28020022042f01d6092205410a4b0d00200241a8036a41086a2206200041086a280200360200200220002902003703a803200441046a21070240200341016a220820054b22090d0020072008410c6c6a20072003410c6c6a200520036b410c6c1086051a0b20072003410c6c6a220720022903a803370200200741086a2006280200360200200241a8036a200141e4001085051a20044188016a2107024020090d002007200841e4006c6a2007200341e4006c6a200520036b41e4006c1086051a0b2007200341e4006c6a220a200241a8036a41e4001085051a2004200541016a3b01d6090c010b410521074100210b02400240200341054f0d0041042107200321060c010b41052106024002402003417b6a0e020201000b200341796a21064101210b410621070c010b410021064101210b0b200028020c21090240024002400240024002400240024002400240024041d809102f2205450d00200541003b01d60920054100360200200520042f01d609220c2007417f736a22033b01d609200441046a220d2007410c6c6a2208290204210e2008280200210f200241a8036a20044188016a2210200741e4006c6a41e4001085051a2003410c4f0d01200c200741016a22086b2003470d02200541046a200d2008410c6c6a2003410c6c1085051a20054188016a2010200841e4006c6a200341e4006c1085051a200420073b01d609200241c0026a200241a8036a41e4001085051a20052004200b1b22032f01d6092107200241a8036a41086a220b200041086a280200360200200220002902003703a803200341046a21080240200641016a220c20074b220d0d002008200c410c6c6a20082006410c6c6a200720066b410c6c1086051a0b20082006410c6c6a220820022903a803370200200841086a200b280200360200200241a8036a200141e4001085051a20034188016a21010240200d0d002001200c41e4006c6a2001200641e4006c6a200720066b41e4006c1086051a0b2001200641e4006c6a220a200241a8036a41e4001085051a2003200741016a3b01d609200241d8016a200241c0026a41e4001085051a200241086a200241d8016a41e4001085051a024002400240200428020022030d00410021090c010b410021072005210d200e2111200f211003402003210820042f01d4092106200241f0006a200241086a41e4001085051a20092007470d0620082f01d609220c410b490d024100210b41042104024020064105490d0020062104024002402006417b6a0e020201000b200641796a21064101210b410621040c010b410021064101210b410521040b41880a102f2205450d03200541003b01d60920054100360200200520082f01d60922122004417f736a22033b01d60920082004410c6c6a220741086a290200210e200741046a280200210f200241a8036a20084188016a2213200441e4006c6a41e4001085051a2003410c4f0d072012200441016a22016b2003470d08200541046a200741106a2003410c6c1085051a20054188016a2013200141e4006c6a200341e4006c1085051a200820043b01d609200241c0026a200241a8036a41e4001085051a20052f01d609220341016a21072003410c4f0d09200c20046b22042007470d0a200941016a2109200541d8096a200820014102746a41d8096a20044102741085051a4100210402400340200520044102746a41d8096a280200220720043b01d40920072005360200200420034f0d01200420042003496a220420034d0d000b0b200241d8016a200241c0026a41e4001085051a20052008200b1b220741046a21010240200641016a220320072f01d60922044b220c0d0020012003410c6c6a20012006410c6c6a200420066b410c6c1086051a0b20012006410c6c6a2201201137020420012010360200200241a8036a200241f0006a41e4001085051a20074188016a210b0240200c0d00200b200341e4006c6a200b200641e4006c6a200420066b41e4006c1086051a0b200441016a2101200b200641e4006c6a200241a8036a41e4001085051a200741d8096a210b0240200641026a2210200441026a220c4f0d00200b20104102746a200b20034102746a200420066b4102741086051a0b200b20034102746a200d360200200720013b01d60902402003200c4f0d00200720064102746a41dc096a2104034020042802002203200641016a22063b01d40920032007360200200441046a210420012006470d000b0b200241086a200241d8016a41e4001085051a20082104200921072005210d200e2111200f2110200828020022030d000b0b200241a8036a200241086a41e4001085051a200028021822032802042207450d092003280200210641880a102f2204450d01200420073602d809200441003b01d60920044100360200200741003b01d40920072004360200200320043602042003200641016a36020020062009470d0a20042f01d6092207410b4f0d0b2004200741016a22063b01d60920042007410c6c6a220141086a200e370200200141046a200f3602002004200741e4006c6a4188016a200241a8036a41e4001085051a200441d8096a20064102746a2005360200200520063b01d409200520043602002003200328020841016a3602080c0d0b200841046a21040240200c20064d22030d0020042006410c6c6a2205410c6a2005200c20066b410c6c1086051a0b20042006410c6c6a2204201137020420042010360200200241a8036a200241086a41e4001085051a200641016a210420084188016a2105024020030d002005200441e4006c6a2005200641e4006c6a200c20066b41e4006c1086051a0b200c41016a21072005200641e4006c6a200241a8036a41e4001085051a200841d8096a2105200c41026a2101024020030d00200641027420056a41086a200520044102746a200c20066b4102741086051a0b200820073b01d609200520044102746a200d360200200420014f0d0b200c41016a210720082004417f6a22044102746a41dc096a2103034020032802002205200441016a22043b01d40920052008360200200341046a210320072004470d000c0c0b0b102a000b2003410b41e8a2c2001042000b41f8a2c200412841a0a3c200102d000b41b0a3c200413541e8a3c200102d000b2003410b41e8a2c2001042000b41f8a2c200412841a0a3c200102d000b2007410c41f8a3c2001042000b41f8a2c200412841a0a3c200102d000b41b2abc200412b41e0abc200102d000b41eaa0c2004130419ca1c200102d000b41aca1c200412041cca1c200102d000b20002802182204200428020841016a3602080b20024190046a2400200a0bd422020a7f017e230041c0026b220524000240200141086a2802002206280224450d002006106c0b200620052903703703002006410036022420062005290308370328200641206a200541f0006a41206a280200360200200641186a200541f0006a41186a290300370300200641106a200541f0006a41106a290300370300200641086a200541f0006a41086a290300370300200641306a200541086a41086a290300370300200641386a200541086a41106a290300370300200641c0006a200541086a41186a290300370300200641c8006a200541086a41206a290300370300200641d0006a200541306a290300370300200641d8006a200541086a41306a290300370300200641003a0060200641e1006a20052900b001370000200641e9006a200541b0016a41086a290000370000200641f1006a200541b0016a41106a290000370000200641f9006a200541b0016a41186a29000037000020064180016a200541cf016a29000037000020052001280200220710c3020240024002400240024002400240024020022802082206417f4c0d0020022802002108200528020421092005280200210a4101210b02402006450d002006102f220b450d020b200b20082006108505210b200520063602102005200636020c2005200b360208200541b0016a20074198016a200541086a1082030240024020052802b0014101460d0020054188016a200541cc016a28020036020020054180016a200541c4016a290200370300200541f8006a200541bc016a290200370300200520052902b401370370200541086a200741c0006a1083030240024020060d004101210b0c010b2006102f220b450d040b200541e4006a20063602002005200b360260200b200820061085051a200541e8006a2006360200200541f0006a200541086a108403210c0c010b200541b8016a280200200541bc016a28020041e4006c6a4188016a210c0b200541b0016a200c10e002200541086a41186a200541b0016a41186a280200360200200541086a41106a200541b0016a41106a290300370300200541086a41086a200541b0016a41086a290300370300200520052903b001370308200c41146a210d2005200541b0026a36022403404100210b024020052802202206450d0020052006417f6a360220200541086a4100200528020c1b220e280200210702400240200e2802082208200e280204220b2f018a0c4f0d00200b21060c010b03400240200b28020022060d00410021060c020b200741016a2107200b2f01880c21082006210b200820062f018a0c4f0d000b0b024002402007450d00200841027420066a41900c6a280200210b02402007417f6a2207450d000340200b28028c0c210b2007417f6a22070d000b0b410021070c010b200841016a21072006210b0b200e200b360204200e4100360200200e2007360208200620084107746a4188016a210720062008410c6c6a41046a210b0b0240200b450d002005410036028002200b2802082206417f4c0d02200b280200210b0240024020060d00410121080c010b2006102f2208450d040b2008200b2006108505210e02400240200c28020c220b4106490d00200c280218210b200c28021421080c010b200d21080b0240024002402008450d00200b0d010b4102210b2006450d01200e10300c010b20052006360278200520063602742005200e360270200b410c6c20086a41746a200541f0006a10e102210b0b200720054180026a200b200b41024771200a200910e2020c010b0b20012802042106024020034101460d002002280208220741176a220b417f4c0d012002280200210e02400240200b0d00410121080c010b200b102f2208450d030b200541003602102005200b36020c20052008360208200541086a418b90c200411710fd02200541086a200e200710fd02200528020c210b200541b0016a200620052802082208200528021010e7020240200b450d00200810300b4101210b024020052802b0014101470d00410021060c090b0240024020052802b40122080d00200541086a10ce01200541003602f801200542013703f0014120102f220b450d04200542203702742005200b360270200541f0006a200541086a41201064200541f0016a2005280270220b2005280278106402402005280274450d00200b10300b20052802f001210820052802f801210b0c010b200541b8016a290300210f200520083602f0012005200f3702f401200f422088a7210b0b20054180026a41186a220c420037030020054180026a41106a2209420037030020054180026a41086a220a42003703002005420037038002200b4120470d03200c200841186a2900003703002009200841106a290000370300200a200841086a2900003703002005200829000037038002200541a0026a41086a20073602002005200e3602a402200520063602a002200541086a41086a41002802b8f541360200200541002902b0f5413703080240200541a0026a20054180026a200541086a10d4010d004130102f2207450d0341002106200741003a00002007200529038002370001200741096a20054188026a290300370000200741116a20054190026a290300370000200741196a20054198026a2903003700000c070b200541003602bc02200541a8a3c0003602b402200520054180026a3602b8022005200541a0026a3602b002200541086a200541b0026a10da02200541b0016a41086a2206200541086a41106a290300370300200541b0016a41106a220b200541086a41186a290300370300200541b0016a41186a220e200541086a41206a290300370300200541b0016a41206a220c200541086a41286a290300370300200541b0016a41286a2209200541086a41306a290300370300200541b0016a41306a220a200541086a41386a290300370300200541b0016a41386a220d200541086a41c0006a2802003602002005200541086a41086a2903003703b001200528020c210720052802084101460d05200541f0006a41386a200d280200360200200541f0006a41306a200a290300370300200541f0006a41286a2009290300370300200541f0006a41206a200c290300370300200541f0006a41186a200e290300370300200541f0006a41106a200b290300370300200541f0006a41086a2006290300370300200520052903b00137037041c000102f220c450d02200c2007360200200c2005290370370204200c410c6a200541f8006a290300370200200c41146a20054180016a290300370200200c411c6a20054188016a290300370200200c41246a20054190016a290300370200200c412c6a20054198016a290300370200200c41346a200541a0016a290300370200200c413c6a200541a8016a280200360200200541086a200c10e40241002106024002402005280208220b4102460d00410021060340200528020c2107200b4101460d022005280214210b200528021021090240200528021c450d00200528021810300b200b417f4c0d042001280200210a02400240200b0d004101210e0c010b200b102f220e450d060b200641016a220d20064921062005200b3602b4012005200e3602b001200e2007200b1085051a2005200b3602b80120054100360208200a2002200541b0016a200541086a10c70202402009450d00200710300b417f200d20061b2106200541086a200c10e4022005280208220b4102470d000b0b200c108603200c10300c080b200c108603200c10300c060b2002280208220841176a220b417f4c0d002002280200210e02400240200b0d00410121070c010b200b102f2207450d020b200541003602102005200b36020c20052007360208200541086a418b90c200411710fd02200541086a200e200810fd02200528020c210b200541b0016a200620052802082207200528021010e7020240200b450d00200710300b4101210c0240024020052802b0014101470d00410021060c010b0240024020052802b40122070d00200541086a10ce01200541003602f801200542013703f0014120102f220b450d04200542203702742005200b360270200541f0006a200541086a41201064200541f0016a2005280270220b2005280278106402402005280274450d00200b10300b20052802f001210720052802f801210b0c010b200541b8016a290300210f200520073602f0012005200f3702f401200f422088a7210b0b20054180026a41186a220c420037030020054180026a41106a2209420037030020054180026a41086a220a42003703002005420037038002200b4120470d04200c200741186a2900003703002009200741106a290000370300200a200741086a2900003703002005200729000037038002200541a0026a41086a20083602002005200e3602a402200520063602a002200541086a41086a41002802b8f541360200200541002902b0f541370308024002400240200541a0026a20054180026a200541086a10d4010d004130102f220b450d0541002106200b41003a0000200b200529038002370001200b41096a20054188026a290300370000200b41116a20054190026a290300370000200b41196a20054198026a2903003700000c010b200541003602bc02200541a8a3c0003602b402200520054180026a3602b8022005200541a0026a3602b002200541086a200541b0026a10da02200541b0016a41086a2206200541086a41106a290300370300200541b0016a41106a2208200541086a41186a290300370300200541b0016a41186a220e200541086a41206a290300370300200541b0016a41206a220c200541086a41286a290300370300200541b0016a41286a2209200541086a41306a290300370300200541b0016a41306a220a200541086a41386a290300370300200541b0016a41386a220d200541086a41c0006a2802003602002005200541086a41086a2903003703b001200528020c210b024020052802084101460d00200541f0006a41386a200d280200360200200541f0006a41306a200a290300370300200541f0006a41286a2009290300370300200541f0006a41206a200c290300370300200541f0006a41186a200e290300370300200541f0006a41106a2008290300370300200541f0006a41086a2006290300370300200520052903b00137037041c000102f220e450d05200e200b360200200e2005290370370204200e410c6a200541f8006a290300370200200e41146a20054180016a290300370200200e411c6a20054188016a290300370200200e41246a20054190016a290300370200200e412c6a20054198016a290300370200200e41346a200541a0016a290300370200200e413c6a200541a8016a280200360200200541086a200e10e4024100210602400240200528020822084102460d00410021060340200528020c210b024002400240024020084101460d0020052802142108200528021021090240200528021c450d00200528021810300b20042006470d01200421060c020b200e108603200e10300c070b200641016a220c20064f0d010b4100210c2009450d03200b10300c030b2008417f4c0d072001280200210a0240024020080d00410121060c010b2008102f2206450d090b200520083602b401200520063602b0012006200b20081085051a200520083602b80120054100360208200a2002200541b0016a200541086a10c70202402009450d00200b10300b200541086a200e10e402200c2106200528020822084102470d000b200c21060b4101210c0b200e108603200e10300c020b410021060b024002400240200b2d00000e0402020002010b200b41086a280200450d01200b41046a28020010300c010b200b41286a280200450d00200b41246a28020010300b200b10304101210c0b20052802f401450d00200710300b200c410047210b0c070b102c000b102a000b4120200b418c91c200105b000b4120200b418c91c200105b000b410021060b02400240024020072d00000e0402020002010b200741086a280200450d01200741046a28020010300c010b200741286a280200450d00200741246a28020010300b200710300b024020052802f401450d00200810300b4101210b0b200020063602042000200b3a0000200541c0026a24000bcd0101037f02402000410c6a2802002201450d0020002802042102200141306c21030340200228020022012001280200417f6a3602000240200228020022012802000d0002402001410c6a280200450d0020012802081030200228020021010b200141046a22012001280200417f6a3602002002280200220141046a2802000d00200110300b200241306a2102200341506a22030d000b0b0240200041086a2802002202450d00200241306c450d00200028020410300b024020002802104125490d00200041186a28020010300b0bb80301047f23004190016b220424000240200041086a2802002205280224450d002005106c0b200520042903683703002005410036022420052004290330370328200541206a200441e8006a41206a280200360200200541186a200441e8006a41186a290300370300200541106a200441e8006a41106a290300370300200541086a200441e8006a41086a290300370300200541306a200441306a41086a2206290300370300200541386a200441306a41106a290300370300200541c0006a200441306a41186a290300370300200541c8006a200441306a41206a290300370300200541d0006a200441d8006a290300370300200541d8006a200441306a41306a290300370300200541003a0060200541e1006a2004290008370000200541e9006a200441086a41086a2207290000370000200541f1006a200441086a41106a290000370000200541f9006a200441086a41186a29000037000020054180016a200441276a290000370000200028020021052007200241086a280200360200200420022902003703082006200341086a2802003602002004200329020037033020052001200441086a200441306a10c70220044190016a24000bde0302037f017e230041106b2204240002400240024002400240024002400240200028020022054198016a2001280200200128020810ed022206450d0020062002200310e6022206450d0002400240200628020022014106490d00200628020c2101200628020821000c010b200641086a21000b2000450d022001450d02024020002001417f6a41186c6a2201280200450d0020052802000d04200141086a3502002107200541003602002005200529030842017c37030820052802100d0520054100360210200541186a2205200529030020077c370300200128020021010c020b20052802000d0541002101200541003602002005200529030842017c37030820052802100d06200541003602100c010b2004200028020420012002200310ee0220042802004101460d060240200428020422010d00410021010c010b200441086a280200450d00200110300b200441106a240020014100470f0b418486c20041fc00418087c2001050000b41b082c2004110200441c082c20041b483c2001034000b41b082c2004110200441c082c20041c483c2001034000b41b082c2004110200441c082c20041b483c2001034000b41b082c2004110200441c082c20041c483c2001034000b41d488c1004130200441dcfcc00041ccfdc0001034000b9a0301037f230041306b22052400200028020041a4016a2106024002400240024020030d004107102f2204450d02200441036a41002800b78e42360000200441002800b48e423600002002417f4c0d030240024020020d00410121030c010b2002102f2203450d030b20032001200210850521032005411c6a2002360200200541186a20023602002005200336021420054287808080f00037020c20052004360208200541003602202006200541086a200541206a108a030c010b4107102f2200450d01200041036a41002800b78e42360000200041002800b48e423600002002417f4c0d020240024020020d00410121070c010b2002102f2207450d020b20072001200210850521012005411c6a2002360200200541186a20023602002005200136021420054287808080f00037020c200520003602082004417f4c0d020240024020040d00410121020c010b2004102f2202450d020b2002200320041085052102200541286a200436020020052004360224200520023602202006200541086a200541206a108a030b200541306a24000f0b102a000b102c000b8221030a7f017e0e7f23004190056b2203240002400240024002400240024002400240024002400240024002400240024020012802082204417f4c0d00200128020021050240024020040d00410121060c010b2004102f2206450d0f0b200320043602e403200320063602e0032006200520041085052107200320043602e803200141146a2802002206417f4c0d00200128020c21080240024020060d00410121090c010b2006102f2209450d0f0b200341f0036a2006360200200320093602ec03200920082006108505210a200341f4036a20063602000240024020002802042209450d002000280200210b0c010b41900d102f2209450d0f4100210b200941003b018e0d2009410036020020002009360204200041003602000b200341c8026a200b2009200341e0036a10f104024020032802c8024101460d00200341d4026a2802002109200341d0026a280200210b02402004450d00200710300b02402006450d00200a10300b200b20094107746a418c026a210c0c0e0b200341d4026a280200210920032903f003210d0240200341d0026a28020022062f018e0d2205410a4b0d00200641046a21080240200941016a220b20054b220e0d002008200b41186c6a2008200941186c6a200520096b41186c1086051a0b2008200941186c6a2208200d3702102008200a36020c2008200436020820082004360204200820073602002006418c026a21040240200e0d002004200b4107746a200420094107746a200520096b4107741086051a0b200420094107746a220c4200370200200c41086a200341e0036a41f8001085051a2006200541016a3b018e0d0c0c0b410521054100210f02400240200941054f0d0041042105200921080c010b41052108024002402009417b6a0e020201000b200941796a21084101210f410621050c010b410021084101210f0b20032802cc02210e41900d102f2209450d0e200941003b018e0d20094100360200200920062f018e0d220c2005417f736a220b3b018e0d200341086a200641046a2210200541186c6a2211410c6a290200370300200341106a201141146a2802003602002003201129020437030020112802002112200341c8026a2006418c026a221320054107746a4180011085051a200b410c4f0d01200c200541016a22116b200b470d02200941046a2010201141186c6a200b41186c1085051a2009418c026a201320114107746a200b4107741085051a200620053b018e0d200341e0036a41086a200341086a290300370300200341e0036a41106a200341106a280200360200200320032903003703e003200341f4036a200341c8026a4180011085051a200341c8026a200341e0036a4194011085051a20092006200f1b220b41046a21050240200841016a220f200b2f018e0d22114b220c0d002005200f41186c6a2005200841186c6a201120086b41186c1086051a0b2005200841186c6a2205200d3702102005200a36020c200520043602082005200436020420052007360200200b418c026a21040240200c0d002004200f4107746a200420084107746a201120086b4107741086051a0b200420084107746a220c4200370200200c41086a200341e0036a41f8001085051a200b201141016a3b018e0d20034198016a200341c8026a4194011085051a200320034198016a419401108505210b02400240200628020022040d004100210e0c010b200b41e0036a41146a2114200b41146a211541002105200921162012211703402004210a20062f018c0d2108200b41b0026a41106a2218200b41106a280200360200200b41b0026a41086a2219200b41086a290200370300200b200b2902003703b002200b4198016a20154180011085051a200e2005470d050240200a2f018e0d2213410a4b0d00200b41e0036a41106a2209200b41106a280200360200200b41e0036a41086a2205200b41086a290200370300200b200b2902003703e003200a41046a21040240201320084d22060d002004200841186c6a220741186a2007201320086b41186c1086051a0b2004200841186c6a220420173602002004200b2903e0033702042004410c6a2005290300370200200441146a2009280200360200200b41e0036a20154180011085051a200841016a2104200a418c026a2109024020060d00200920044107746a200920084107746a201320086b4107741086051a0b201341016a2105200920084107746a200b41e0036a4180011085051a200a41900d6a2109201341026a210b024020060d00200841027420096a41086a200920044102746a201320086b4102741086051a0b200a20053b018e0d200920044102746a20163602002004200b4f0d0e201341016a2105200a2004417f6a22044102746a41940d6a2106034020062802002209200441016a22043b018c0d2009200a360200200641046a210620052004470d000c0f0b0b4100211041042104024020084105490d0020082104024002402008417b6a0e020201000b200841796a210841012110410621040c010b4100210841012110410521040b41c00d102f2209450d10200941003b018e0d200941003602002009200a2f018e0d22112004417f736a22053b018e0d200b41f8046a41086a220f200a200441186c6a220641106a290200370300200b41f8046a41106a221a200641186a280200360200200b200641086a2902003703f804200641046a2802002112200b41c8026a200a418c026a221b20044107746a4180011085051a2005410c4f0d062011200441016a22076b2005470d07200941046a2006411c6a200541186c1085051a2009418c026a201b20074107746a20054107741085051a200a20043b018e0d200b41e0036a41086a2211200f290300370300200b41e0036a41106a220f201a280200360200200b200b2903f8043703e0032014200b41c8026a4180011085051a20092f018e0d220641016a21052006410c4f0d08201320046b22042005470d09200e41016a210e200941900d6a200a20074102746a41900d6a20044102741085051a4100210402400340200920044102746a41900d6a280200220520043b018c0d20052009360200200420064f0d01200420042006496a220420064d0d000b0b200b41c8026a200b41e0036a4194011085051a2009200a20101b22052f018e0d2104200f201828020036020020112019290300370300200b200b2903b0023703e003200541046a21070240200841016a220620044b22100d002007200641186c6a2007200841186c6a200420086b41186c1086051a0b2007200841186c6a220720173602002007200b2903e0033702042007410c6a2011290300370200200741146a200f280200360200200b41e0036a200b4198016a4180011085051a2005418c026a2111024020100d00201120064107746a201120084107746a200420086b4107741086051a0b200441016a2107201120084107746a200b41e0036a4180011085051a200541900d6a21110240200841026a2210200441026a220f4f0d00201120104102746a201120064102746a200420086b4102741086051a0b201120064102746a2016360200200520073b018e0d02402006200f4f0d00200520084102746a41940d6a2104034020042802002206200841016a22083b018c0d20062005360200200441046a210420072008470d000b0b200b200b41c8026a4194011085051a200a2106200e21052009211620122117200a28020022040d000b0b200b41e0036a200b4194011085051a20002802042206450d082000280200210541c00d102f2204450d0e200420063602900d200441003b018e0d20044100360200200641003b018c0d20062004360200200020043602042000200541016a3602002005200e470d0920042f018e0d2206410b4f0d0a2004200641016a22083b018e0d2004200641186c6a220541046a2012360200200541086a200b2902e003370200200541106a200b41e0036a41086a290200370200200541186a200b41e0036a41106a280200360200200420064107746a418c026a200b41f4036a4180011085051a200441900d6a20084102746a2009360200200920083b018c0d200920043602002000200028020841016a3602080c0c0b102c000b200b410b41e8a2c2001042000b41f8a2c200412841a0a3c200102d000b41b0a3c200413541e8a3c200102d000b2005410b41e8a2c2001042000b41f8a2c200412841a0a3c200102d000b2005410c41f8a3c2001042000b41f8a2c200412841a0a3c200102d000b41b2abc200412b41e0abc200102d000b41eaa0c2004130419ca1c200102d000b41aca1c200412041cca1c200102d000b2000200028020841016a3602080b20012802142106200128020c210820012802082104200128020021050b200141106a210702400240200028020c22094106490d00200041186a2802002109200041146a280200210b0c010b200041146a210b0b200728020021072001280204210a0240024002400240024002400240024002400240024002400240024002400240200b450d0020090d010b0240200a450d00200510300b2007450d01200810300c010b200341f4036a2006360200200341f0036a2007360200200320083602ec03200320043602e8032003200a3602e403200320053602e0032009410c6c200b6a41746a200341e0036a10f3040d010b0240200c28020022044106490d00200c410c6a2802002204450d01200341e0036a41086a200241086a280200360200200320022902003703e003200341e0036a2106200c28020822090d03418486c20041fc00418888c2001050000b20040d010b200341e0036a41086a200241086a280200360200200320022902003703e0030240024002400240200c28020022044106490d00200c28020c22092004460d01200c410c6a21060c0d0b4105210920044105460d01200c41086a210520042109200c21060c0d0b200c28020c2106200421090c010b200421060b20092006470d08200641016a22092006490d054100417f2009417f6a677620094102491b220941016a22062009490d050240024020044106490d00200c28020c2109200c2802082108200421050c010b200c41086a210841052105200421090b200920064b0d020240200641054b0d00200441054d0d09200c4100360204200c41086a2008200941186c1085051a200c20093602002005ad42187e220d422088a70d04200810300c090b20052006470d040c080b200341e0036a41086a200241086a280200360200200320022902003703e003200c41086a2109200341e0036a21060b024020092004417f6a41186c6a22042802002209450d00200441046a280200450d00200910300b20042006290200370200200441086a200641086a2802003602000c090b41c29ac200412041e49ac200102d000b200341003602cc022003200da73602c80241bea9c200412b200341c8026a41e485c20041f485c2001034000b2006ad42187e220d422088a70d00200da7210b0240200441054b0d00200b102f2204450d0820042008200941186c1085051a0c030b2005ad42187e220d422088a7450d010b41d099c200411141e499c200102d000b200b102f2204450d0520042008200b200da722052005200b4b1b1085051a200810300b200c200936020c200c2004360208200c4101360204200c20063602000b200c410c6a2106200c28020c21090b200c28020821050b200341e0036a41086a280200210820032903e003210d2005200941186c6a220441002802e88f4236020c2004200d370200200441106a4200370200200441086a20083602002006200628020041016a3602000b20034190056a24000f0b102a000b0900200042003702000b870703067f017e017f230041306b220524000240024002402002280208220641176a2207417f4c0d0020012802042108200228020021090240024020070d004101210a0c010b2007102f220a450d020b20054100360218200520073602142005200a360210200541106a418b90c200411710fd02200541106a2009200610fd0220052802142107200541106a20082005280210220a200528021810e70202402007450d00200a10300b02400240024020052802104101460d000240200528021422070d00200542003703000c030b200541186a290300210b200541286a4200370300200541206a4200370300200541186a42003703002005420037031002400240200b4280808080708342808080808004510d0020054101360200200ba70d010c040b200b422088a7220a4120470d02200541106a41186a200741186a290000370300200541106a41106a200741106a290000370300200541106a41086a200741086a2900003703002005200729000037031020052008200541106a20022003200410f702200ba7450d030b200710300c020b200541013602000c010b4120200a418c91c200105b000b024002400240024020052802004101460d002005410c6a2802002108200541086a280200210c200528020421070240024020012802004198016a2009200610ed0222060d0041002109200541003602100c010b200541106a20062003200410f802200541106a41086a280200210a20052802142106200528021021090b0240024020070d002009450d010c040b20090d020b2000200c36020420002007360200200041086a20083602000c030b41d488c1004130200541106a41dcfcc00041dcfdc0001034000b024002402007200920062008200820064b1b10880522030d00200820064f0d020c010b2003417f4a0d010b2000200c36020420002007360200200041086a20083602000c010b02400240200a28020022084106490d00200a410c6a2802002108200a41086a280200210a0c010b200a41086a210a0b200a450d032008450d0302400240200841186c200a6a41686a2802000d0020002001200220092006108c030c010b2006417f4c0d020240024020060d00410121020c010b2006102f2202450d040b2002200920061085052102200041086a200636020020002006360204200020023602000b2007450d00200c450d00200710300b200541306a24000f0b102c000b102a000b418486c20041fc00418087c2001050000b0600108e03000b1100418ee2c100410f41a4e3c100102d000b3d01017f230041206b2203240020002802002100200341106a20023602002003200136020c200341003602082000200341086a109003200341206a24000be80202057f017e230041c0006b22022400200241086a41106a2203200141106a290200370300200241086a41086a2204200141086a2902003703002002200129020037030802400240024020004184026a280200220120004180026a280200470d00200141016a22052001490d02200141017422062005200620054b1b22054104200541044b1bad42187e2207422088a74541027421052007a721060240024020010d00200241003602300c010b200241386a41043602002002200141186c360234200220002802fc013602300b200241206a20062005200241306a1069200241286a280200210120022802204101460d01200020022802243602fc0120004180026a200141186e36020020002802840221010b20002802fc01200141186c6a22012002290308370200200141106a2003290300370200200141086a2004290300370200200020002802840241016a36028402200241c0006a24000f0b2001450d00102a000b102c000b830c02077f017e230041d0006b22012400024002402000280200220241cc006a220328020022044106490d00200241d8006a22052802002100200241d4006a28020021060c010b200241d4006a21062004210020032105410521040b0240024020002004470d00200141206a20034101109203024020012802204101470d00200141286a2802000d0241d099c200411141e499c200102d000b200241d8006a22052802002100200241d4006a28020021060b20062000410c6c6a42003702042005200528020041016a360200200120024198016a109303200141206a41186a200141186a2802002200360200200141206a41106a200141106a290300370300200141206a41086a200141086a2903003703002001200129030037032002402000450d0020012000417f6a360238200141206a410020012802241b220328020021040240024020032802082206200328020422002f01d6094f0d00200021050c010b03400240200028020022050d00410021050c020b200441016a210420002f01d409210620052100200620052f01d6094f0d000b0b024002402004450d00200641027420056a41dc096a280200210002402004417f6a2204450d00034020002802d80921002004417f6a22040d000b0b410021040c010b200641016a2104200521000b2003200036020420034100360200200320043602082005200641e4006c6a4188016a210003402000410c6a210702400240200028020c22064106490d00200041186a210420002802182105200028021421030c010b200041146a21032006210520072104410521060b024020052006470d00200141c0006a20074101109203024020012802404101470d00200141c8006a2802000d0441d099c200411141e499c200102d000b200041186a210420002802182105200028021421030b20032005410c6c6a42003702042004200428020041016a36020020012802382200450d0120012000417f6a360238200141206a410020012802241b220328020021040240024020032802082206200328020422002f01d6094f0d00200021050c010b03400240200028020022050d00410021050c020b200441016a210420002f01d409210620052100200620052f01d6094f0d000b0b024002402004450d00200641027420056a41dc096a280200210002402004417f6a2204450d00034020002802d80921002004417f6a22040d000b0b410021040c010b200641016a2104200521000b2003200036020420034100360200200320043602082005200641e4006c6a4188016a21000c000b0b02400240024002400240200241b0016a220028020022054106490d00200241bc016a220028020022042005460d01200241b8016a28020021060c040b4105210420054105460d01200241b8016a2106200521040c030b200241bc016a2802002100200521040c010b200521000b024020042000470d00024002400240200041016a22042000490d004100417f2004417f6a677620044102491b220441016a22002004490d000240024020054106490d00200241bc016a2802002104200241b8016a2802002103200521060c010b200241b8016a210341052106200521040b024002400240200420004b0d000240200041054b0d00200541054d0d07200241b4016a4100360200200241b8016a20032004410c6c1085051a200220043602b0012006ad420c7e2208422088a70d02200310300c070b20062000470d020c060b41c29ac200412041e49ac200102d000b2001410036022420012008a736022041bea9c200412b200141206a41e485c20041f485c2001034000b2000ad420c7e2208422088a70d002008a721070240200541054b0d002007102f2205450d06200520032004410c6c1085051a0c030b2006ad420c7e2208422088a7450d010b41d099c200411141e499c200102d000b2007102f2205450d032005200320072008a72206200620074b1b1085051a200310300b200220003602b001200241bc016a2004360200200241b8016a2005360200200241b4016a41013602000b200241bc016a22002802002104200241b8016a28020021060b20062004410c6c6a42003702042000200028020041016a360200200141d0006a24000f0b102a000b870503057f017e037f230041106b2203240002400240200128020022044106490d002001410c6a2802002105200421060c010b41052106200421050b02400240200620056b2002490d00200041003602000c010b024002400240024002400240200520026a22022005490d004100417f2002417f6a677620024102491b220541016a22062005490d000240024020044106490d002001410c6a2802002105200141086a2802002107200421020c010b200141086a210741052102200421050b200520064b0d010240200641054b0d000240200441054b0d00200041003602000c080b20014100360204200141086a20072005410c6c1085051a200120053602002002ad420c7e2208422088a70d03200710300c060b20022006460d052006ad420c7e2208422088a7220945410274210a2008a7210b20090d030240200441054b0d000240200b102f2202450d00200220072005410c6c1085051a0c060b2000200b36020420004101360200200041086a200a3602000c070b2002ad420c7e2208a72104024002402008422088a70d00200b102f2202450d0120022007200b20042004200b4b1b1085051a200710300c060b2000200436020420004101360200200041086a41003602000c070b2000200b36020420004101360200200041086a200a3602000c060b2000200636020420004101360200200041086a41003602000c050b41c29ac200412041e49ac200102d000b2003410036020c20032008a736020841bea9c200412b200341086a41e485c20041f485c2001034000b2000200b36020420004101360200200041086a200a3602000c020b20014101360204200120063602002001410c6a2005360200200141086a20023602000b200041003602000b200341106a24000b8a0201057f230041206b22022400024002400240200128020422030d004100210420004100360204200041106a41003602000c010b20012802002104200321050240034020032f01d6092106024020040d002004450d020c040b2004450d032004417f6a2104200320064102746a41d8096a280200210320052802d80921050c000b0b2000200436020c200041003602082000200536020420002004360200200041146a2006360200200041106a2003360200200128020821040b20002004360218200241206a24000f0b200241146a410136020020024201370204200241f4a9c2003602002002410436021c200241eca9c2003602182002200241186a360210200241fca9c200103a000b0a0020002802001095030bb60501077f230041d0006b2201240002400240200041c0006a410010f40422020d00200141086a20004198016a109303200141286a41186a200141086a41186a2802002203360200200141286a41106a200141086a41106a290300370300200141286a41086a200141086a41086a2903003703002001200129030837032802402003450d0020012003417f6a360240200141286a4100200128022c1b220428020021050240024020042802082206200428020422032f01d6094f0d00200321070c010b03400240200328020022070d00410021070c020b200541016a210520032f01d409210620072103200620072f01d6094f0d000b0b024002402005450d00200641027420076a41dc096a280200210302402005417f6a2205450d00034020032802d80921032005417f6a22050d000b0b410021050c010b200641016a2105200721030b2004200336020420044100360200200420053602082007200641e4006c6a4188016a2103024003402003410010f4040d0120012802402203450d0220012003417f6a360240200141286a4100200128022c1b220428020021050240024020042802082206200428020422032f01d6094f0d00200321070c010b03400240200328020022070d00410021070c020b200541016a210520032f01d409210620072103200620072f01d6094f0d000b0b024002402005450d00200641027420076a41dc096a280200210302402005417f6a2205450d00034020032802d80921032005417f6a22050d000b0b410021050c010b200641016a2105200721030b2004200336020420044100360200200420053602082007200641e4006c6a4188016a21030c000b0b418c8bc2004138200141c8006a41c48bc20041b08dc2001034000b200041a4016a410010f6040d010b200141d0006a240020020f0b41e48bc2004138200141c8006a41c48bc20041a08dc2001034000bfa0201027f23004190016b220124000240200041086a2802002202280224450d002002106c0b200220012903683703002002410036022420022001290330370328200241206a200141e8006a41206a280200360200200241186a200141e8006a41186a290300370300200241106a200141e8006a41106a290300370300200241086a200141e8006a41086a290300370300200241306a200141306a41086a290300370300200241386a200141306a41106a290300370300200241c0006a200141306a41186a290300370300200241c8006a200141306a41206a290300370300200241d0006a200141d8006a290300370300200241d8006a200141306a41306a290300370300200241003a0060200241e1006a2001290009370000200241e9006a200141096a41086a290000370000200241f1006a200141096a41106a290000370000200241f9006a200141096a41186a29000037000020024180016a200141286a2900003700002000280200109703210220014190016a240020020ba90e01147f230041c0046b2201240002400240200041c0006a410110f40422020d00200041a0016a28020021032000419c016a2204280200210520044200370200200141d8036a2000280298012005200310d50320012802dc03210320012802d8032104024020012802f0032206450d000240024002402003450d0020012802e003220720032f01d609490d01034002400240200328020022050d00410021050c010b200441016a210820032f01d40921070b024041880a41d80920041b450d00200310300b024020050d00410221040c040b2008210420052103200720052f01d6094f0d000b20052103200821040c010b41b2abc200412b41d4a8c200102d000b200741016a21092003200741e4006c6a22054188016a210820032007410c6c6a220741046a210a02402004450d00200320094102746a41d8096a280200210302402004417f6a2204450d00034020032802d80921032004417f6a22040d000b0b410021090b200141c8016a41086a200841086a290200370300200120082902003703c8012007410c6a280200210b200741086a280200210c20054198016a2802002104200a280200210d200141d8036a2005419c016a41d0001085051a0b20004198016a210e20014198036a41086a220f200141c8016a41086a2210290300370300200120012903c80137039803200141b0026a200141d8036a41d0001085051a200141c8016a41146a211120014198036a4104722112200141e0006a41146a21130340200141d0006a41086a2207200f29030037030020012001290398033703502001200141b0026a41d000108505220541e0006a41086a2214200729030037030020052005290350370360200520043602702013200541d000108505210402400240200541e0006a410110f4040d002006417f6a210602402005280268450d00200541b0026a200541e0006a41e4001085051a2005200b3602e0032005200c3602dc032005200d3602d80320054198036a200e200541d8036a10820302402005280298034101460d00200541b8036a41186a201241186a280200360200200541b8036a41106a201241106a290200370300200541b8036a41086a201241086a290200370300200520122902003703b803200541d8036a200541b0026a41e4001085051a200541b8036a200541d8036a1084031a0c030b200541c8016a20052802a00320052802a40341e4006c6a4188016a220441e4001085051a2004200541b0026a41e4001085051a20052802d8014102460d02200541c8016a1090040240024020052802d40122084106490d0020052802dc01210a024020052802e0012204450d002004410c6c2107200a21040340200410d4032004410c6a2104200741746a22070d000b0b2008410c6c450d01200a10300c010b2008450d002008410c6c2107201121040340200410d4032004410c6a2104200741746a22070d000b0b20052802a402450d0220052802a00210300c020b200541e0006a10900402400240200528026c22084106490d002005280274210a024020052802782204450d002004410c6c2107200a21040340200410d4032004410c6a2104200741746a22070d000b0b2008410c6c450d01200a10300c010b2008450d002008410c6c2107200421040340200410d4032004410c6a2104200741746a22070d000b0b024020052802bc01450d0020052802b80110300b200c450d01200d10300c010b418c8bc2004138200541d8036a41c48bc20041d48bc2001034000b024020060d00410021040c020b02402003450d000240024002400240200920032f01d609490d004100210703404100210402402003280200220a450d00200741016a210920032f01d4092108200a21040b024041880a41d80920071b450d00200310300b024020040d00410221040c050b2009210720042103200820042f01d6094f0d000b2004200841e4006c6a4188016a210a20042008410c6c6a41046a210d024020090d00200421030c020b200841027420046a41dc096a280200210302402009417f6a2207450d00034020032802d80921032007417f6a22070d000b0b410021090c020b2003200941e4006c6a4188016a210a20032009410c6c6a41046a210d20092108200321040b200841016a21090b20042008410c6c6a2207410c6a280200210b200741086a280200210c200d280200210d2010200a41086a2902003703002005200a2902003703c8012004200841e4006c6a22074198016a2802002104200541d8036a2007419c016a41d0001085051a20142010290300370300200520052903c8013703600b200f20142903003703002005200529036037039803200541b0026a200541d8036a41d0001085051a0c010b0b41b2abc200412b41d4a8c200102d000b02402003450d00034020032802002105024041880a41d80920041b450d00200310300b200441016a21042005210320050d000b0b200041a4016a410110f6040d010b200141c0046a240020020f0b41e48bc2004138200141d8036a41c48bc200419c8cc2001034000b8f0101027f230041206b22052400024002402003417f4c0d00200028020021064101210002402003450d002003102f2200450d020b20002002200310850521002005411c6a2004360200200541186a2003360200200541146a2003360200200541106a20003602002005200136020c200541013602082006200541086a109003200541206a24000f0b102c000b102a000b8c0f01077f23004180036b2201240002402000280200220241cc006a28020022034106490d00200241d8006a28020021030b0240024002402003450d00034020021097030d02200028020021022003417f6a22030d000b0b200141b0016a2002200041046a200041086a280200109a0302400240024020012802d401450d00200141086a200141b0016a41a8011085051a200128026821040240200141f0006a2802002202450d00200241186c21032004210203400240200241046a280200450d00200228020010300b02402002410c6a2802002205450d00200241106a280200450d00200510300b200241186a2102200341686a22030d000b0b0240200141ec006a2802002202450d00200241186c450d00200410300b200128027421060240200141fc006a2802002202450d002006200241186c6a210720062102034002402002220441046a280200450d00200428020010300b0240200441146a2802002203450d00200428020c2102200341186c210303400240200241046a280200450d00200228020010300b02402002410c6a2802002205450d00200241106a280200450d00200510300b200241186a2102200341686a22030d000b0b200441186a21020240200441106a2802002203450d00200341186c450d00200428020c10300b20022007470d000b0b0240200141f8006a2802002202450d00200241186c450d00200610300b2001280280012104024020014188016a2802002202450d00200241246c21074100210303400240200420036a220241046a280200450d00200228020010300b0240200241106a280200450d002002410c6a28020010300b0240200241186a2802002205450d002002411c6a280200450d00200510300b2007200341246a2203470d000b0b024020014184016a2802002202450d00200241246c450d00200410300b200141086a106c0240200041086a2802002202280224450d002002106c0b200220012903d80237030020024100360224200220012903b001370328200241206a200141d8026a41206a280200360200200241186a200141d8026a41186a290300370300200241106a200141d8026a41106a290300370300200241086a200141d8026a41086a290300370300200241306a200141b0016a41086a290300370300200241386a200141b0016a41106a290300370300200241c0006a200141b0016a41186a290300370300200241c8006a200141b0016a41206a290300370300200241d0006a200141d8016a290300370300200241d8006a200141b0016a41306a290300370300200241003a0060200241e1006a2001290008370000200241e9006a200141086a41086a290000370000200241f1006a200141086a41106a290000370000200241f9006a200141086a41186a29000037000020024180016a200141276a290000370000200028020022064194016a2d00000d01200641013a0094010240200641cc006a28020022024106490d00200641d8006a28020021020b20064190016a2002360200200141086a20064198016a109303200141b0016a41186a200141086a41186a2802002202360200200141b0016a41106a200141086a41106a290300370300200141b0016a41086a200141086a41086a290300370300200120012903083703b0012002450d0420012002417f6a22073602c801200141b0016a410020012802b4011b220028020021050240024020002802082204200028020422022f01d6094f0d00200221030c010b03400240200228020022030d00410021030c020b200541016a210520022f01d409210420032102200420032f01d6094f0d000b0b024002402005450d00200441027420036a41dc096a280200210202402005417f6a2205450d00034020022802d80921022005417f6a22050d000b0b410021050c010b200441016a2105200321020b2000200236020420004100360200200020053602082003200441e4006c6a4188016a2102034020022d00540d03200241013a00540240200228020c22034106490d00200228021821030b200220033602502007450d0520012007417f6a22073602c801200141b0016a410020012802b4011b220028020021050240024020002802082204200028020422022f01d6094f0d00200221030c010b03400240200228020022030d00410021030c020b200541016a210520022f01d409210420032102200420032f01d6094f0d000b0b024002402005450d00200441027420036a41dc096a280200210202402005417f6a2205450d00034020022802d80921022005417f6a22050d000b0b410021050c010b200441016a2105200321020b2000200236020420004100360200200020053602082003200441e4006c6a4188016a21020c000b0b41d488c1004130200141d8026a41dcfcc00041ecfdc0001034000b41fcfdc00041c500200141d8026a41c4fec00041d4fec0001034000b41e08dc20041c100200141d8026a41c08dc20041a48ec2001034000b41e4fec000418e02200141d8026a41f480c100418481c1001034000b0240200641f8016a2d00000d00200641013a00f8010240200641b0016a28020022024106490d00200641bc016a28020021020b200641f4016a200236020020014180036a24000f0b41e48bc2004138200141d8026a41c08dc20041d08dc2001034000bc34803107f017e0b7f230041e0046b220424000240200341246a220528020022060d00200441286a200141c0006a10e9022004200110ea02200441b8016a41186a200441286a41186a280200360200200441b8016a41106a200441286a41106a290300370300200441b8016a41086a200441286a41086a290300370300200420042903283703b801200441d0026a41186a200441186a280200360200200441d0026a41106a200441106a290300370300200441d0026a41086a200441086a290300370300200420042903003703d002200441c8036a2002200441b8016a200441d0026a10d303200441c8006a41086a2207200441c8036a41086a290300370300200441c8006a41106a2208200441c8036a41106a290300370300200441c8006a41186a2209200441c8036a41186a290300370300200420042903c803370348200441d0026a200441e8036a41e0001085051a200441c8036a200441d0026a41e0001085051a02402005280200450d002003106c0b2003200441c8036a41e000108505220241f9006a2009290300370000200241f1006a2008290300370000200241e9006a2007290300370000200241e1006a2004290348370000200241013a0060200241246a28020021060b200541003602000240024002402006450d0020032d00602102200341003a0060200441ec036a2006360200200441c8036a41206a200341206a2207280200360200200441c8036a41186a200341186a2208290300370300200441c8036a41106a200341106a2209290300370300200441c8036a41086a200341086a220a290300370300200441c8036a41286a200341286a2205290300370300200441c8036a41306a200541086a220b29030037030020044180046a200541106a220c290300370300200441c8036a41c0006a200541186a220d290300370300200441c8036a41c8006a200541206a220e290300370300200441c8036a41d0006a200541286a290300370300200441c8036a41d8006a200541306a220f290300370300200420032903003703c8030240024020024101470d00200441b8016a41086a200a290300370300200441b8016a41106a2009290300370300200441b8016a41186a2008290300370300200441b8016a41206a2007280200360200200441d0026a41086a200b290300370300200441d0026a41106a200c290300370300200441d0026a41186a200d290300370300200441d0026a41206a200e290300370300200441d0026a41286a200541286a290300370300200441d0026a41306a200f290300370300200420032903003703b801200420052903003703d002200441d0026a41d0006a200341f9006a290000370300200441d0026a41c8006a200341f1006a290000370300200441d0026a41c0006a200341e9006a2900003703002004200341e1006a29000037038803200441c8006a200441d0026a41d8001085051a0c010b200441c8036a106c410021060b2006450d00200441d0026a41206a2203200441b8016a41206a280200360200200441d0026a41186a2205200441b8016a41186a290300370300200441d0026a41106a2202200441b8016a41106a290300370300200441d0026a41086a2207200441b8016a41086a290300370300200420042903b8013703d002200441c8036a200441c8006a41d8001085051a200441086a2007290300370300200441106a2002290300370300200441186a2005290300370300200441206a2003280200360200200441c8006a41086a200441c8036a41086a290300370300200441c8006a41106a200441c8036a41106a290300370300200441c8006a41186a200441c8036a41186a2203290300370300200441c8006a41206a200441c8036a41206a290300370300200441c8006a41286a200441c8036a41286a290300370300200441c8006a41306a200441c8036a41306a290300370300200420042903d002370300200420042903c803370348200441286a41186a20044198046a290300370300200441286a41106a20044190046a290300370300200441286a41086a200441c8036a41c0006a2903003703002004200429038004370328200441c8036a200141c0006a41d8001085051a200141cc006a4200370200200141c4006a420037020020014194016a41003a000020014190016a41003602000240024020042802d40322024106490d00200328020021030c010b200221030b20030d01024020042802cc03220a0d004100210c4100210a410021100c030b20042802d003211020042802c8032103200a210c0340200a2f018a0c210d2003450d032003417f6a2103200a200d4102746a418c0c6a280200210a200c28028c0c210c0c000b0b41c48ec100413b41808fc1001050000b41a888c200412c41d488c200102d000b0240024020024106490d00200441dc036a28020021070240200441e0036a2802002203450d002003410c6c2105200721030340200310d4032003410c6a2103200541746a22050d000b0b2002410c6c450d01200710300c010b2002450d00200441dc036a21032002410c6c21050340200310d4032003410c6a2103200541746a22050d000b0b200141a0016a28020021032001419c016a2205280200210220054200370200200441c8036a2001280298012002200310d50320042802e003211120042802d003211220042802cc03210920042802c803210f200441d0026a200141a4016a41d8001085051a200141b0016a4200370300200141a8016a420037030041002103200141f8016a41003a0000200141f4016a4100360200200441c8036a200441d0026a41d8001085051a0240024020042802cc0322050d00410021130c010b20042802d003211320042802c80321012005210303402001450d012001417f6a2101200520052f018e0d4102746a41900d6a280200210520032802900d21030c000b0b0240024020042802d40322024106490d00200441dc036a28020021070240200441e0036a2802002205450d002005410c6c2101200721050340200510d6032005410c6a2105200141746a22010d000b0b2002410c6c450d01200710300c010b2002450d00200441dc036a21052002410c6c21010340200510d6032005410c6a2105200141746a22010d000b0b0240024002400240024002400240024002400240024002400240024002400240024002400240024002402013450d002003450d0120032f018e0d0d0241002101034041002105024020032802002208450d00200141016a210720032f018c0d2102200821050b024041c00d41900d20011b450d00200310300b024020050d00410221020c060b2007210120052103200220052f018e0d4f0d000b200241016a2101200520024107746a418c026a210b2005200241186c6a41046a2108024020070d00200521030c040b200520014102746a41900d6a280200210302402007417f6a2201450d00034020032802900d21032001417f6a22010d000b0b410021010c030b4100210b410021010c040b41b2abc200412b41d4a8c200102d000b2003418c026a210b200341046a21084101210141002102200321050b20082802002107200441b0026a41106a2005200241186c6a220841186a280200360200200441b0026a41086a200841106a2902003703002004200841086a2902003703b002200520024107746a22084190026a2802002102200b2802002105200441c8036a20084194026a41f8001085051a0b200441b8016a41106a200441b0026a41106a280200360200200441b8016a41086a200441b0026a41086a290300370300200420042903b0023703b801200441d0026a200441c8036a41f8001085051a200420023602cc03200420053602c803200441c8036a41086a2202200441d0026a41f8001085051a0240024020054106490d00200441d4036a2208280200210520042802d00321020c010b200441c8036a21080b2005450d0420082005417f6a22053602002002200541186c6a220528020c2202450d04200441d4016a200541086a280200360200200420052902003702cc010240200541106a29020042ffffffff0383500d00200210300b2013417f6a210b200441c8036a10d9022007450d00417f200b41016a22052005200b491bad42247e2214422088a70d0f2014a72205417f4c0d0f2005102f2215450d0b20152007360200201520042903b8013702042015410c6a200441c0016a290300370200201541146a200441c8016a2903003702002015411c6a200441d0016a290300370200200541246e210e0240200b0d00410121134100210b0c0a0b2003450d030240024002400240200120032f018e0d490d0041002102034041002105024020032802002208450d00200241016a210720032f018c0d2101200821050b024041c00d41900d20021b450d00200310300b024020050d00410221010c050b2007210220052103200120052f018e0d4f0d000b200520014107746a418c026a21082005200141186c6a41046a2116024020070d00200521030c020b200141027420056a41940d6a280200210302402007417f6a2202450d00034020032802900d21032002417f6a22020d000b0b410021070c020b200320014107746a418c026a21082003200141186c6a41046a2116200321050b200141016a21070b20162802002117200441b0026a41106a2005200141186c6a220241186a280200360200200441b0026a41086a200241106a2902003703002004200241086a2902003703b002200520014107746a22024190026a280200210120082802002105200441c8036a20024194026a41f8001085051a0b20044190026a41106a2218200441b0026a41106a221928020036020020044190026a41086a221a200441b0026a41086a221b290300370300200420042903b00237039002200441d0026a200441c8036a41f8001085051a200441b8016a41146a211c200441c8036a410c6a211d200441c8036a41086a211e410121160340200441b8016a41106a22082018280200360200200441b8016a41086a221f201a29030037030020042004290390023703b801200420013602cc03200420053602c803201e200441d0026a41f80010850521010240024020054106490d0020042802d403210520042802d0032101201d21020c010b200441c8036a2102200121010b2005450d0320022005417f6a22053602002001200541186c6a220528020c2201450d03201c2005290200370200201c41086a200541086a2802003602000240200541106a29020042ffffffff0383500d00200110300b200b417f6a210b200441c8036a10d90202402017450d000240200e2016470d00200e417f200b41016a22052005200b491b6a2205200e490d12200e41017422012005200120054b1b22054104200541044b1bad42247e2214422088a74541027421052014a7210102400240200e0d00200441003602c8030c010b200441043602d003200420153602c8032004200e41246c3602cc030b200441d0026a20012005200441c8036a106920042802d802210520042802d0024101460d0a20042802d4022115200541246e210e0b2015201641246c6a22052017360200200520042903b8013702042005410c6a201f290300370200200541146a20082903003702002005411c6a200441b8016a41186a290300370200200b450d0a2003450d030240024002400240200720032f018e0d490d0041002101034041002105024020032802002208450d00200141016a210720032f018c0d2102200821050b024041c00d41900d20011b450d00200310300b024020050d00410221010c050b2007210120052103200220052f018e0d4f0d000b200520024107746a418c026a21082005200241186c6a41046a2117024020070d00200521030c020b200241027420056a41940d6a280200210302402007417f6a2201450d00034020032802900d21032001417f6a22010d000b0b410021070c020b200320074107746a418c026a21082003200741186c6a41046a211720072102200321050b200241016a21070b2017280200211720192005200241186c6a220141186a280200360200201b200141106a2902003703002004200141086a2902003703b002200520024107746a22024190026a280200210120082802002105200441c8036a20024194026a41f8001085051a0b201641016a211620182019280200360200201a201b290300370300200420042903b00237039002200441d0026a200441c8036a41f8001085051a0c010b0b20162113200721010c090b4100211341002802e88f4221152003450d05200b450d04200441c8036a41186a2116200441e8036a21170340024002400240200120032f018e0d490d0041002101034041002105024020032802002208450d00200141016a210720032f018c0d2102200821050b024041c00d41900d20011b450d00200310300b024020050d00410221070c040b2007210120052103200220052f018e0d4f0d000b200241016a2101200520024107746a418c026a210e2005200241186c6a41046a2108024020070d00200521030c020b200520014102746a41900d6a280200210302402007417f6a2201450d00034020032802900d21032001417f6a22010d000b0b410021010c010b200320014107746a418c026a210e2003200141186c6a41046a21082001210220032105200141016a21010b200441b8016a41106a200841106a290200370300200441b8016a41086a200841086a290200370300200420082902003703b801200520024107746a22054190026a2802002107200e2802002108200441c8036a20054194026a41f8001085051a0b200441b0026a41106a2205200441b8016a41106a290300370300200441b0026a41086a2202200441b8016a41086a290300370300200420042903b8013703b002200441d0026a200441c8036a41f8001085051a200441c8036a41106a2005290300370300200441c8036a41086a2002290300370300200420042903b0023703c803200420073602e403200420083602e0032017200441d0026a41f8001085051a024020042802cc03450d0020042802c80310300b200b417f6a210b024020042802d803450d0020042802d40310300b201610d902200b0d000c050b0b41b2abc200412b41d4a8c200102d000b418486c20041fc0041848ac1001050000b41b2abc200412b41d4a8c200102d000b418486c20041fc0041848ac1001050000b41002105034020032802002101024041c00d41900d20051b450d00200310300b2005417f6a21052001210320010d000b410021130b4100210e0c030b20050d030c070b200721014100210b0b2003450d000240200b450d00200441c8036a41186a2117200441e8036a211c03400240024002400240200120032f018e0d490d0041002101034041002105024020032802002208450d00200141016a210720032f018c0d2102200821050b024041c00d41900d20011b450d00200310300b024020050d00410221070c050b2007210120052103200220052f018e0d4f0d000b200520024107746a418c026a21162005200241186c6a41046a2108024020070d00200521030c020b200241027420056a41940d6a280200210302402007417f6a2201450d00034020032802900d21032001417f6a22010d000b0b410021010c020b200320014107746a418c026a21162003200141186c6a41046a210820012102200321050b200241016a21010b200441b8016a41106a200841106a290200370300200441b8016a41086a200841086a290200370300200420082902003703b801200520024107746a22054190026a280200210720162802002108200441c8036a20054194026a41f8001085051a0b200441b0026a41106a2205200441b8016a41106a290300370300200441b0026a41086a2202200441b8016a41086a290300370300200420042903b8013703b002200441d0026a200441c8036a41f8001085051a200441c8036a41106a2005290300370300200441c8036a41086a2002290300370300200420042903b0023703c803200420073602e403200420083602e003201c200441d0026a41f8001085051a024020042802cc03450d0020042802c80310300b200b417f6a210b024020042802d803450d0020042802d40310300b201710d902200b0d000b0b41002105034020032802002101024041c00d41900d20051b450d00200310300b2005417f6a21052001210320010d000b0b200441dc036a200d360200200441d8036a200a360200200420103602e003200442003703d0032004200c3602cc034100210a200441003602c803200041e0006a200441c8036a10d703024002402011450d000240024002402009450d00201220092f01d609490d01034002400240200928020022030d00410021030c010b200f41016a210520092f01d40921120b024041880a41d809200f1b450d00200910300b024020030d00410221030c040b2005210f20032109201220032f01d6094f0d000b200321092005210f0c010b41b2abc200412b41d4a8c200102d000b201241016a21032009201241e4006c6a22054188016a210120092012410c6c6a41046a210202400240200f0d00200321120c010b200920034102746a41d8096a28020021090240200f417f6a2203450d00034020092802d80921092003417f6a22030d000b0b410021120b200441b0026a41086a2207200241086a280200360200200441c4026a200141086a290200370200200420022902003703b002200420012902003702bc0220054198016a2802002103200441c8036a2005419c016a41d0001085051a20044190026a41186a200441b0026a41186a28020036020020044190026a41106a200441b0026a41106a29030037030020044190026a41086a2007290300370300200420042903b002370390020b2011417f6a210a200441f0016a41186a220520044190026a41186a280200360200200441f0016a41106a220120044190026a41106a290300370300200441f0016a41086a220220044190026a41086a29030037030020042004290390023703f001200441d0026a200441c8036a41d0001085051a200441c8036a41186a22072005280200360200200441c8036a41106a22052001290300370300200441c8036a41086a22012002290300370300200441e4036a22022003360200200420042903f0013703c803200441c8036a41206a200441d0026a41d0001085052103200441b8016a200441c8036a10d803024020042802b801450d00200441a0016a41086a200441b8016a41086a2208280200360200200441e4016a280200210b200441e0016a280200210c2003200441b8016a41206a2903003703002007200441b8016a41186a2903003703002005200441b8016a41106a29030037030020012008290300370300200420042903b80122143703a001200420143703c803200441d0026a41186a200441ec036a280200360200200441d0026a41106a2002290200370300200441d0026a41086a200441dc036a290200370300200420042902d4033703d002200441ac016a200441d0026a10d7030240200b450d00200c10300b20042802a0010d020b4100210f0b4100211141002802e88f42210c02402009450d002004200a3602d403200420123602d003200420093602cc032004200f3602c803200441c8036a10d9030b4100210d0c040b417f200a41016a22032003200a491bad42187e2214422088a70d042014a72203417f4c0d042003102f220c450d00200c20042903a001370200200c41106a200441a0016a41106a290300370200200c41086a200441a0016a41086a290300370200200341186e210d0240200a0d00410121114100210a0c030b0240024002402009450d000240024002400240201220092f01d609490d0041002105034041002103024020092802002202450d00200541016a210120092f01d4092112200221030b024041880a41d80920051b450d00200910300b024020030d00410221030c050b2001210520032109201220032f01d6094f0d000b2003201241e4006c6a4188016a210220032012410c6c6a41046a2107024020010d00200321090c020b201241027420036a41dc096a280200210902402001417f6a2205450d00034020092802d80921092005417f6a22050d000b0b410021050c020b2009201241e4006c6a4188016a210220092012410c6c6a41046a2107200921030b201241016a21050b200441b0026a41086a2201200741086a280200360200200420072902003703b002200441c4026a200241086a290200370200200420022902003702bc022003201241e4006c6a22024198016a2802002103200441c8036a2002419c016a41d0001085051a20044190026a41186a200441b0026a41186a28020036020020044190026a41106a200441b0026a41106a29030037030020044190026a41086a2001290300370300200420042903b002370390020b200441f0016a41186a221620044190026a41186a221c280200360200200441f0016a41106a221220044190026a41106a2218290300370300200441f0016a41086a221720044190026a41086a221a29030037030020042004290390023703f001200441d0026a200441c8036a41d0001085051a200441b0026a410c6a2119200441a0016a410c6a211e200441c8036a410c6a210b200441c8036a41206a211b4101210802400340200441c8036a41186a22012016280200360200200441c8036a41106a22022012290300370300200441c8036a41086a22072017290300370300200420042903f0013703c803200420033602e403201b200441d0026a41d0001085052103200a417f6a210a200441b8016a200441c8036a10d80320042802b801450d0120042802e401210f20042802e001211f2003200441b8016a41206a2903003703002001200441b8016a41186a2903003703002002200441b8016a41106a2903003703002007200441b8016a41086a2203290300370300200441a0016a41086a22012003280200360200200420042903b80122143703a001200420143703c803200441d0026a41186a200b41186a280200360200200441d0026a41106a200b41106a290200370300200441d0026a41086a200b41086a2902003703002004200b2902003703d002201e200441d0026a10d7030240200f450d00201f10300b20042802a001450d010240200d2008470d002008417f200a41016a22032003200a491b6a22032008490d0a200841017422022003200220034b1b22034104200341044b1bad42187e2214422088a74541027421032014a721020240024020080d00200441003602c8030c010b200441043602d0032004200c3602c8032004200841186c3602cc030b200441d0026a20022003200441c8036a106920042802d802210320042802d0024101460d0520042802d402210c200341186e210d0b200c200841186c6a220320042903a001370200200341106a200441a0016a41106a290300370200200341086a2001290300370200200a450d062009450d030240024002400240200520092f01d609490d0041002105034041002103024020092802002207450d00200541016a210220092f01d4092101200721030b024041880a41d80920051b450d00200910300b024020030d00410221030c050b2002210520032109200120032f01d6094f0d000b2003200141e4006c6a4188016a210720032001410c6c6a41046a210f024020020d00200321090c020b200141027420036a41dc096a280200210902402002417f6a2205450d00034020092802d80921092005417f6a22050d000b0b410021050c020b2009200541e4006c6a4188016a210720092005410c6c6a41046a210f20052101200921030b200141016a21050b200441b0026a41086a2202200f41086a2802003602002004200f2902003703b00220192007290200370200201941086a200741086a2902003702002003200141e4006c6a22014198016a2802002103200441c8036a2001419c016a41d0001085051a201c200441b0026a41186a2802003602002018200441b0026a41106a290300370300201a2002290300370300200420042903b002370390020b200841016a21082016201c280200360200201220182903003703002017201a29030037030020042004290390023703f001200441d0026a200441c8036a41d0001085051a0c000b0b20052112200821110c050b41b2abc200412b41d4a8c200102d000b41b2abc200412b41d4a8c200102d000b2003450d040b102a000b200521124100210a0b2009450d002004200a3602d403200420123602d003200420093602cc03200441003602c803200441c8036a10d9030b200020042903003703002000200429034837032820004180016a2013360200200041fc006a200e360200200041f8006a2015360200200041086a200441086a290300370300200041106a200441106a290300370300200041186a200441186a290300370300200041206a200441206a280200360200200041306a200441c8006a41086a290300370300200041386a200441c8006a41106a290300370300200041c0006a200441c8006a41186a290300370300200041c8006a200441c8006a41206a290300370300200041d0006a200441f0006a290300370300200041d8006a200441c8006a41306a290300370300200041f4006a2011360200200041f0006a200d360200200041ec006a200c360200200020063602242000419c016a200441286a41186a29030037000020004194016a200441286a41106a2903003700002000418c016a200441286a41086a29030037000020004184016a2004290328370000200441e0046a24000f0b102c000bad0101037f230041b0016b2201240002402000280200220241cc006a28020022034106490d00200241d8006a28020021030b0240024002402003450d00034020021095030d02200028020021022003417f6a22030d000b0b20012002200041046a200041086a280200109a0320012802240d0141d488c1004130200141a8016a41dcfcc000419481c1001034000b41e4fec000418e02200141a8016a41f480c10041a481c1001034000b109c03000b1100418ee2c100410f41b4e3c100102d000ba70402037f017e230041206b220424000240024002400240024002400240024002402001280200220541c0006a2002200310e6022206450d0002400240200628020022024106490d00200628020c2102200628020821060c010b200641086a21060b2006450d022002450d0202400240024020062002417f6a41186c6a2206280200450d0020052802000d06200641086a22023502002107200541003602002005200529030842017c3703082005280210450d0141b082c2004110200441186a41c082c20041c483c2001034000b20052802000d0641002106200541003602002005200529030842017c37030820052802100d07200541003602100c010b20054100360210200541186a2205200529030020077c37030020022802002205417f4c0d07200628020021020240024020050d00410121060c010b2005102f2206450d090b2006200220051085051a0b2000200536020420002006360200200041086a20053602000c010b200441086a20012802042002200310e70220042802084101460d072000200429020c370200200041086a200441146a2802003602000b200441206a24000f0b418486c20041fc00418087c2001050000b41b082c2004110200441186a41c082c20041b483c2001034000b41b082c2004110200441186a41c082c20041b483c2001034000b41b082c2004110200441186a41c082c20041c483c2001034000b102c000b102a000b41d488c1004130200441186a41dcfcc00041bcfdc0001034000bbf0302027f027e230041d0006b22022400410041002802e8ae422203410120031b3602e8ae4202400240024020030e020001020b410041b480c200360284ad42410041b480c200360280ad42410041023602e8ae420c010b034041002802e8ae424101460d000b0b41052103024002400240024002400240024010000e06010203040506000b41acf9c1004134200241e0f9c10041f0f9c1001034000b410021030c040b410121030c030b410221030c020b410321030c010b410421030b410020033602e4ae4202402001450d00200241cc006a410d360200200241146a410236020020024202370204200241bc81c10036020020024104360244200241b481c1003602402002200241c0006a36021020022002360248200241cc81c100103a000b200241386a41002903f8a340370300200241306a41002903f0a340370300200241286a41002903e8a340370300200241206a41002903e0a340370300200241186a41002903d8a340370300200241106a41002903d0a340370300200241086a41002903c8a340370300200241002903c0a340370300200241c0006a200210a0032002350248210420023502402105200241d0006a240020052004422086840b1c0020012802184180f6c100410b2001411c6a28020028020c1100000ba10301037f230041106b2202240020004100360208200042013702002002200110c6032000200228020022032002280208106402402002280204450d00200310300b2002200141106a10c6032000200228020022032002280208106402402002280204450d00200310300b200220012802203602002000200241041064200220012802243602002000200241041064200220012802283602002000200241041064200141306a28020021030240024002400240200141386a200141346a200128022c4101461b280200220441c000490d00200441808001490d012004418080808004490d02200241033a000020002002410110642002200436020020002002410410640c030b200220044102743a000020002002410110640c020b200220044102744101723b010020002002410210640c010b2002200441027441027236020020002002410410640b02402004410c6c2204450d00200320046a2104034020002003410810642002200341086a28020036020020002002410410642003410c6a22032004470d000b0b2002200128023c3602002000200241041064200241106a24000bfb0801087f230041c0036b22022400410041002802e8ae422203410120031b3602e8ae4202400240024020030e020001020b410041b480c200360284ad42410041b480c200360280ad42410041023602e8ae420c010b034041002802e8ae424101460d000b0b41052103024002400240024002400240024010000e06010203040506000b41acf9c1004134200241c0026a41e0f9c10041f0f9c1001034000b410021030c040b410121030c030b410221030c020b410321030c010b410421030b410020033602e4ae4220024280808080802037020c2002200136021c2002200041bc8ec20020011b3602182002200241186a360208200241c0026a200241086a10a2030240024020022802c4022200450d00200241cc026a280200210420022802c802210520022802c0022106200241e0016a200241d0026a41e0001085051a200241c0026a200241086a10a303024020022802c00222070d0002402004450d00200441246c21012000210303400240024002400240024020032d00000e050400010204030b2003410c6a280200450d03200341086a28020010300c030b2003410c6a280200450d02200341086a28020010300c020b2003410c6a280200450d01200341086a28020010300c010b200341086a280200450d00200341046a28020010300b200341246a21032001415c6a22010d000b0b2005450d01200541246c450d01200010300c010b200241c8026a280200210820022802c402210920024180016a200241e0016a41e0001085051a200241206a20024180016a41e0001085051a0240024020022802082802040d00200241c0026a200241206a41e0001085051a0c010b02402004450d00200441246c21012000210303400240024002400240024020032d00000e050400010204030b2003410c6a280200450d03200341086a28020010300c030b2003410c6a280200450d02200341086a28020010300c020b2003410c6a280200450d01200341086a28020010300c010b200341086a280200450d00200341046a28020010300b200341246a21032001415c6a22010d000b0b02402005450d00200541246c450d00200010300b02402008450d00200841c8016c21012007210003400240200022034184016a2d00004103460d00200341e0006a2d00004102470d00200341e8006a280200450d00200341e4006a28020010300b200341c8016a2100200310b202200141b87e6a22010d000b0b410021002009450d00200941c8016c450d00200710300b20000d010b2002418c016a410d360200200241f4016a4102360200200242023702e401200241bc81c1003602e00120024104360284012002418082c10036028001200220024180016a3602f0012002200241c0026a36028801200241e0016a41cc81c100103a000b200241e0016a200241c0026a41e0001085051a200241cc026a2004360200200241c8026a2005360200200220003602c402200220063602c002200241d0026a200241e0016a41e0001085051a200241b8036a2008360200200241b4036a2009360200200220073602b003200241c0026a10a403200241c0036a240041003502dc94420bc71c05187f017e097f027e037f23004180026b2202240020024190016a410472210341002104024002400340200128020022052802042206450d01200528020022072d0000210820052006417f6a3602042005200741016a360200200320046a20083a00002002200441016a2205360290012005210420054120470d000b200241e0006a41026a2002419d016a2d00003a0000200241d0006a41026a200241a4016a2d00003a0000200220022f0194013b01e801200220022d0096013a00ea0120022002419b016a2f00003b01602002200241a2016a2f01003b01502002419e016a2801002109200241a5016a280000210a200241ac016a280200210b200241b0016a280200210c200228009701210d200241d8016a41026a200241ab016a2d00003a00002002200241a9016a2f00003b01d8010c010b0b2002412c6a41026a20022d00ea013a0000200241286a41026a200241e0006a41026a2d00003a0000200241246a41026a200241d0006a41026a2d00003a0000200241206a41026a200241d8016a41026a2d00003a0000200220022f01e8013b012c200220022f01603b0128200220022f01503b0124200220022f01d8013b0120024002400240024002402006450d00200241186a200110ac0220022802180d02200228021c210e20024190016a4104722103410021040340200128020022052802042206450d02200528020022072d0000210820052006417f6a3602042005200741016a360200200320046a20083a00002002200441016a2205360290012005210420054120470d000b200241e0006a41026a2002419d016a2d00003a0000200241d0006a41026a200241a4016a2d00003a0000200220022f0194013b01e801200220022d0096013a00ea0120022002419b016a2f00003b01602002200241a2016a2f01003b01502002419e016a280100210f200241a5016a2800002110200241ac016a2802002111200241b0016a28020021122002280097012113200241d8016a41026a200241ab016a2d00003a00002002200241a9016a2f00003b01d8010c030b200041003602040c030b0c010b200041003602040c010b2002413c6a41026a20022d00ea013a0000200241386a41026a200241e0006a41026a2d00003a0000200241346a41026a200241d0006a41026a2d00003a0000200241306a41026a200241d8016a41026a2d00003a0000200220022f01e8013b013c200220022f01603b0138200220022f01503b0134200220022f01d8013b0130024002402006450d0020024190016a41047221034100210402400340200128020022052802042206450d01200528020022072d0000210820052006417f6a3602042005200741016a360200200320046a20083a00002002200441016a2205360290012005210420054120470d000b200241e0006a41026a2002419d016a2d00003a0000200241d0006a41026a200241a4016a2d00003a0000200220022f0194013b01e801200220022d0096013a00ea0120022002419b016a2f00003b01602002200241a2016a2f01003b01502002419e016a2801002114200241a5016a2800002115200241ac016a2802002116200241b0016a28020021172002280097012118200241d8016a41026a200241ab016a2d00003a00002002200241a9016a2f00003b01d8010c020b0c010b200041003602040c010b200241cc006a41026a20022d00ea013a0000200241c8006a41026a200241e0006a41026a2d00003a0000200241c4006a41026a200241d0006a41026a2d00003a0000200241c0006a41026a200241d8016a41026a2d00003a0000200220022f01e8013b014c200220022f01603b0148200220022f01503b0144200220022f01d8013b01400240024002400240024002402006450d00200241106a200110ac0220022802100d0202400240024020022802142219200128020028020441246e2205200520194b1bad42247e221a422088a70d00201aa72205417f4c0d000240024020050d00410421030c010b2005102f2203450d070b2001200128020441016a2204360204200541246ead211a200420012802084b0d022019450d0420024190016a410472211b200241de016a211c200241cf016a211d200241f4016a211e200241ad016a211f20024190016a41106a21204100212102400340200128020022052802042204450d04200528020022072d0000210820052004417f6a3602042005200741016a3602000240024002400240024002400240024020080e08000c010c030402050c0b200241086a200110ac0220022802080d0b200128020022072802042208200228020c2204490d0b2004417f4c0d090240024020040d00410121050c010b2004102f2205450d102005410020041087051a2001280200220728020421080b20082004490d0a2005200728020020041085052122200728020422082004490d102007200820046b3602042007200728020020046a3602002022410876212341052108200421220c050b410021040340200128020022052802042206450d0b200528020022072d0000210820052006417f6a3602042005200741016a360200201b20046a20083a00002002200441016a2205360290012005210420054120470d000b200220202902003703c8012002202041056a2900003700cd0120022802940121062002290398012124201e41036a202041036a280000360000201e2020280200360200200241d8016a41046a201d41046a2f00003b0100201c41036a201f41036a280000360000201c201f280000360000200220243702ec01200220063602e8012002201d2800003602d80120022900f301212520022800eb0121072002200241d8016a41056a2900003700bd01200220022902d8013703b801200220022900bd0137008501200220022903b80137038001200220022900850137007520022002290380013703702002200229007537006520022002290370370360200741087621232024421888a721042025422088a72126410021080c050b20024190016a2001109d042002280294012204450d0920022f01900120022d00920141107472210620022d00930121052002290398012225422088a721262025a72122410121080c030b20024190016a2001109d042002280294012204450d0820022f01900120022d00920141107472210620022d00930121052002290398012225422088a721262025a72122410221080c020b20024190016a2001109d042002280294012204450d0720022f01900120022d00920141107472210620022d00930121052002290398012225422088a721262025a72122410321080c010b200128020022052802042204450d06200528020022072d0000210820052004417f6a3602042005200741016a36020020080d0620024190016a200110ad0220022802900122054102460d062002280298012122200228029401210441002123410421080b2023410874200541ff01717221072026ad4220862022ad8421250b200241d0006a41086a2222200241e0006a41086a290300370300200220022903603703500240201a422088a72205201aa7470d00200541016a22272005490d0320054101742228202720272028491b22274104202741044b1bad42247e2224422088a74541027421272024a721280240024020050d0020024100360290010c010b200241043602980120022003360290012002200541246c360294010b200241e8016a2028202720024190016a106920022802f001212720022802e8014101460d0220022802ec012103201a42808080807083202741246ead84211a0b2003200541246c6a2205202537000c2005200436000820052007360004200520063b0001200520083a0000200541036a20064110763a0000200520022903503700142005411c6a2022290300370000201a4280808080107c211a202141016a22212019470d000b20012001280204417f6a3602040c090b20270d060b102c000b200510300b0240201a422088a72205450d00200541246c21042003210503400240024002400240024020052d00000e050400010204030b2005410c6a280200450d03200541086a28020010300c030b2005410c6a280200450d02200541086a28020010300c020b2005410c6a280200450d01200541086a28020010300c010b200541086a280200450d00200541046a28020010300b200541246a21052004415c6a22040d000b0b201aa72205450d02200541246c450d02200310300c020b200041003602040c050b20012004417f6a36020420030d030b200041003602040c030b102a000b2004200841f0f5c100104a000b200020022f01283b00172000200936001a200020022f01243b001e2000200a360021200020022f01203b0025200041106a20022f012c3b0000200041136a200d360000200041126a2002412c6a41026a2d00003a0000200041196a200241286a41026a2d00003a0000200041206a200241246a41026a2d00003a0000200041276a200241206a41026a2d00003a00002000412c6a200c360000200041286a200b360000200041336a20133600002000200f36003a20002010360041200041306a20022f013c3b0000200041326a2002413c6a41026a2d00003a0000200041396a200241386a41026a2d00003a0000200020022f01383b0037200041c0006a200241346a41026a2d00003a0000200020022f01343b003e200020022f01303b0045200041c7006a200241306a41026a2d00003a0000200041cc006a2012360000200041c8006a2011360000200041d2006a200241cc006a41026a2d00003a0000200041d0006a20022f014c3b0000200041d3006a2018360000200041d9006a200241c8006a41026a2d00003a0000200020022f01483b00572000201436005a200041e0006a200241c4006a41026a2d00003a0000200020022f01443b005e20002015360061200041e7006a200241c0006a41026a2d00003a0000200020022f01403b0065200041ec006a2017360000200041e8006a20163600002000201a370208200020033602042000200e3602000b20024180026a24000ba90503037f017e077f230041f0046b22022400200241086a200110ac02024002402002280208450d00200041003602000c010b024002400240200228020c2203200128020028020441c8016e2204200420034b1bad42c8017e2205422088a70d002005a72204417f4c0d0002400240024020040d00410821060c010b2004102f2206450d010b2001200128020441016a2207360204200441c8016e2108024002400240200720012802084b0d0020030d01410021030c060b200041003602000c010b20024198036a41047221094100210a41002104410021070240034020024198036a200110ab02200228029803210b200241d4016a200941c4011085051a200b4102460d01200241106a200241d4016a41c4011085051a024020072008470d00200a200741016a2208200a20084b1b22084104200841044b1bad42c8017e2205422088a74541037421082005a7210c0240024020070d0020024100360298030c010b200241083602a0032002200436029c0320022006360298030b200241e0046a200c200820024198036a106920022802e8042108024020022802e0044101470d0020080d050c060b20022802e4042106200841c8016e21080b200620046a220c200b360200200c41046a200241106a41c4011085051a200a41026a210a200441c8016a21042003200741016a2207460d050c000b0b200041003602002007450d002006210b03400240200b22074184016a2d00004103460d00200741e0006a2d00004102470d00200741e8006a280200450d00200741e4006a28020010300b200741c8016a210b200710b202200441b87e6a22040d000b0b2008450d04200841c8016c450d04200610300c040b102a000b102c000b200128020421070b2000200836020420002006360200200041086a200336020020012007417f6a3602040b200241f0046a24000b811501097f230041f0026b22012400200010a60302400240024002400240024020002802002202450d00200141d8026a2002417f6a10fe0320014188016a20012802d802220220012802e0021082020240024020012d0088014101460d00200141286a4200370300200141206a4200370300200141186a4200370300200142003703100c010b200141286a200141a1016a290000370300200141206a20014199016a290000370300200141186a20014191016a29000037030020012001290089013703100b024020012802dc02450d00200210300b200141106a200041106a41201088050d00200041f8006a280200220341c8016c210441002105417f2106200028027022072102024003402004450d014101210841002109024020024184016a2d00004103470d004101210820022802004101470d00200241046a2d000022084102462109200520084102477221080b200241c8016a2102200441b87e6a2104200641016a2106200821052009450d00200821052008410171450d000b200120063602102001419c016a41013602002001420137028c01200141f0e6c100360288012001410236028401200120014180016a360298012001200141106a3602800120014188016a41f8e6c100103a000b10a204200041f4006a2802002109200141106a200041f0001085051a200341c8016c210402400240024020030d00200721080c010b20042108200721020240034020022802004102460d0120014188016a200241c8011085051a200141d8026a20014188016a10ab0320012d00d8020d05200241c8016a2102200841b87e6a22080d000c030b0b200241c8016a21080b200720046a2008460d002007200341c8016c6a210403402008220241c8016a2108024020024184016a2d00004103460d00200241e0006a2d00004102470d00200241e8006a280200450d00200241e4006a28020010300b200210b20220042008470d000b0b02402009450d00200941c8016c450d00200710300b200141fc8ac2004110108502200128020421020240200128020022084101470d0041fc8ac200411041002802b4ad421105000b200141a0016a2204420037030020014188016a41106a2209420037030020014188016a41086a220642003703002001420037038801200141d8026a41dca4c000410610ab012006200141d8026a41086a2205290000370300200120012900d80237038801200141d8026a41f0bec100410e10ab0120042005290000370300200920012900d80237030020012002410020081b3602d80220014188016a4120200141d8026a410441002802fcad421103004101200110ae0110ae0310a304450d0220014188016a10af032001200141106a410c6a280200220636028001200120014188016a410c6a28020022023602d00220062002470d032006450d05200128028c0121052001280214210041002104034002400240200020046a22022d00002209200520046a22082d0000470d0002400240024002400240024020090e06000304050102000b200241016a200841016a41201088050d050c060b200241046a2802002207200841046a280200470d042007450d05200241086a280200200841086a280200470d042002410c6a2802002008410c6a280200470d040c050b2002410c6a28020022072008410c6a280200470d03200241046a280200200841046a28020020071088050d030c040b200241016a280000200841016a280000470d02200241106a2802002207200841106a280200470d02200241086a280200200841086a28020020071088050d020c030b200241016a280000200841016a280000470d01200241106a2802002207200841106a280200470d01200241086a280200200841086a28020020071088050d010c020b200241016a280000200841016a280000470d00200241106a2802002207200841106a280200470d00200241086a280200200841086a2802002007108805450d010b41baf4c000411410ad01200141d8026a200210e70120012802d802220920012802e00210a404024020012802dc02450d00200910300b200141d8026a200810e70120012802d802220920012802e00210a404024020012802dc02450d00200910300b20022d000020082d00002209470d060b024002400240024002400240024020090e06050203040001050b200241046a2802002209200841046a280200470d0b2009450d05200241086a280200200841086a280200470d0b2002410c6a2802002008410c6a280200470d0b0c050b2002410c6a28020022092008410c6a280200470d0a200241046a280200200841046a28020020091088050d0a0c040b200241016a280000200841016a280000470d09200241106a2802002209200841106a280200470d09200241086a280200200841086a28020020091088050d090c030b200241016a280000200841016a280000470d08200241106a2802002209200841106a280200470d08200241086a280200200841086a28020020091088050d080c020b200241016a280000200841016a280000470d07200241106a2802002209200841106a280200470d07200241086a280200200841086a2802002009108805450d010c070b200241016a200841016a41201088050d060b200441246a21042006417f6a22060d000c060b0b41c2e6c100411c41e0e6c100102d000b200141086a20012f00d90220012d00db024110747210a504200120012903083703d0022001419c016a41013602002001420137028c01200141cc80c200360288012001410436028401200120014180016a360298012001200141d0026a3602800120014188016a4188e7c100103a000b4198e7c100411e41b8e7c100102d000b200141ec026a4100360200200141e8026a41bc8ec200360200200142013702dc02200141c8e7c1003602d80220014180016a200141d0026a200141d8026a10a604000b41e0e7c10041274188e8c100102d000b0240200141106a41306a220220014188016a41306a22084120108805450d0041ec80c200410e10ad012002412010a4042008412010a4040b0240200220084120108805450d004198e8c100412841c0e8c100102d000b0240200141106a41d0006a20014188016a41d0006a41201088050d0002402001280294012208450d00200128028c012102200841246c210803400240024002400240024020022d00000e050400010204030b2002410c6a280200450d03200241086a28020010300c030b2002410c6a280200450d02200241086a28020010300c020b2002410c6a280200450d01200241086a28020010300c010b200241086a280200450d00200241046a28020010300b200241246a21022008415c6a22080d000b0b024020014190016a2802002202450d00200241246c450d00200128028c0110300b0240200128021c2208450d0020012802142102200841246c210803400240024002400240024020022d00000e050400010204030b2002410c6a280200450d03200241086a28020010300c030b2002410c6a280200450d02200241086a28020010300c020b2002410c6a280200450d01200241086a28020010300c010b200241086a280200450d00200241046a28020010300b200241246a21022008415c6a22080d000b0b0240200141186a2802002202450d00200241246c450d00200128021410300b200141f0026a24000f0b41d0e8c100412441f4e8c100102d000b940701057f230041d0026b22022400410041002802e8ae422203410120031b3602e8ae4202400240024020030e020001020b410041b480c200360284ad42410041b480c200360280ad42410041023602e8ae420c010b034041002802e8ae424101460d000b0b41052103024002400240024002400240024010000e06010203040506000b41acf9c1004134200241e0016a41e0f9c10041f0f9c1001034000b410021030c040b410121030c030b410221030c020b410321030c010b410421030b410020033602e4ae4220024280808080802037020c2002200136021c2002200041bc8ec20020011b3602182002200241186a360208200241e0016a200241086a10a203200241ec016a280200210420022802e801210520022802e401210020022802e001210620024180016a200241f0016a41e0001085051a02402000450d00200241206a20024180016a41e0001085051a0240024020022802082802040d0020024180016a200241206a41e0001085051a0c010b02402004450d00200441246c21012000210303400240024002400240024020032d00000e050400010204030b2003410c6a280200450d03200341086a28020010300c030b2003410c6a280200450d02200341086a28020010300c020b2003410c6a280200450d01200341086a28020010300c010b200341086a280200450d00200341046a28020010300b200341246a21032001415c6a22010d000b0b02402005450d00200541246c450d00200010300b410021000b2000450d00200241e0016a410c6a2004360200200241e0016a41086a2005360200200220003602e401200220063602e001200241f0016a20024180016a41e0001085051a200241e0016a10a60302402004450d00200441246c21012000210303400240024002400240024020032d00000e050400010204030b2003410c6a280200450d03200341086a28020010300c030b2003410c6a280200450d02200341086a28020010300c020b2003410c6a280200450d01200341086a28020010300c010b200341086a280200450d00200341046a28020010300b200341246a21032001415c6a22010d000b0b02402005450d00200541246c450d00200010300b200241d0026a240041003502dc94420f0b2002412c6a410d360200200241f4016a4102360200200242023702e401200241bc81c1003602e001200241043602242002419882c1003602202002200241206a3602f0012002200241e0016a360228200241e0016a41cc81c100103a000b9936020e7f027e230041c0026b2201240020014200370214200141002802e88f422202360210024002400240024002400240024002400240024002402000410c6a28020041246c2203450d002000280204210441002105410021060340024020042d00004101470d00200441106a2802002207417f4c0d0c200441036a2d00002108200441016a2f00002109200441086a280200210a200441046a2d0000210b0240024020070d004101210c0c010b2007102f220c450d090b200c200a2007108505210c200141f8006a41086a220d200141206a41086a290200370300200120012902203703780240024020062005460d002006210a0c010b200541016a220a2005490d042005410174220e200a200e200a4b1b220a4104200a41044b1bad42247e220f422088a745410274210a200fa7210e0240024020050d00200141003602500c010b20014104360258200120023602502001200541246c3602540b200141c0006a200e200a200141d0006a10692001280248210e20012802404101460d052001200128024422023602102005210a200e41246e21050b2002200a41246c6a220a2007360210200a200736020c200a200c360208200a200b360204200a200920084110747222073b0001200a41013a0000200a41036a20074110763a0000200a2001290378370214200a411c6a200d290300370200200641016a21060b200441246a21042003415c6a22030d000b20012005360214200120063602180b200141386a22044200370300200141306a220a4200370300200141206a41086a2207420037030020014200370320200141c0006a41dca4c000410610ab012007200141c0006a41086a220529000037030020012001290040370320200141d0006a41f0c2c100411210ab012004200141d0006a41086a290000370300200a2001290050370300200141203602742001200141206a360270200141c0006a200141206a412041002802d4ad42110400200128024022070d02410221050c030b2001200536021420012005360218102c000b2001200536021420012005360218200e0d030c070b2001280244210c200120052802003602b402200120073602b002200141086a200141b0026a109b01200128020c21060240024020012802080d002001200141b0026a109b0120012802000d0020012802b402220520012802042204490d002004417f4c0d080240024020040d00410121030c010b2004102f2203450d052003410020041087051a20012802b40221050b024020052004490d00200320012802b00220041085051a20012802b40222052004490d042001200520046b3602b402200120012802b00220046a3602b002410121050c020b200310300b20014200370254200141002802dc9442360250200141093602642001200141f0006a3602602001200141d0006a3602bc022001418c016a41013602002001420137027c200141a0e6c1003602782001200141e0006a36028801200141bc026a41d0adc000200141f8006a10321a2001280250200128025810ad0102402001280254450d00200128025010300b410221050b200c450d00200710300b024020054102460d0041012107024020064102490d0041002107024020044105470d004180a4c000200341051088054521070b200741017321070b02402004450d00200310300b4200210f2007450d050b20014184016a41002903c8a34037020020014102360278200141002903c0a34037027c200141386a4200370300200141306a4200370300200141206a41086a2204420037030020014200370320200141c0006a41dca4c000410610ab012004200141c0006a41086a29000037030020012001290040370320200141d0006a41f0c2c100411210ab01200a41086a200141d0006a41086a290000370000200a20012900503700002001410036025820014201370350200141f8006a200141d0006a10c503200141206a412020012802502204200128025841002802fcad4211030002402001280254450d00200410300b2001410336026820014106360274200141dca4c000360270024041002802e4ae424103490d002001412c6a410e360200200141043602242001200141e8006a3602282001200141f0006a3602204100280284ad4221044100280280ad42210741002802e8ae42210520014188016a4202370300200141ac016a418691c100ad4280808080c00a84370200200141a0016a41f290c100ad4280808080c0028437030020014198016a420237030020014180016a411636020020014194016a200141206a360200200141cc90c1003602840120014281808080c0133702b401200141003602a801200141dc90c10036027c20014103360278200741bc8ec200200541024622051b200141f8006a200441d8f5c10020051b2802101105000b200141206a41186a22054200370300200141306a22034200370300200141206a41086a2204420037030020014200370320200141c0006a41dca4c000410610ab012004200141c0006a41086a220629000037030020012001290040370320200141d0006a41e4c3c100411810ab01200a41086a220c200141d0006a41086a2208290000370000200a20012900503700000240200141206a10a104220741ff01714102460d002007410171450d004200210f200141d0006a21040c040b20054200370300200342003703002004420037030020014200370320200141c0006a41dca4c000410610ab012004200629000037030020012001290040370320200141d0006a41e4c3c100411810ab01200c2008290000370000200a2001290050370000200141013a0050200141206a4120200141d0006a410141002802fcad42110300200141c0006a41dca4c000410610ab01200141d0006a4199e0c100410710ab014120102f2204450d01200142203702b402200120043602b002200141b0026a200141c0006a411010b903200141b0026a200141d0006a411010b90320012802b8022204417f4c0d0520012802b00221070240024020040d00410121050c010b2004102f2205450d020b200141f8006a200520072004108505200441002802dcad421104002004ad220f422086200f84210f20012802782207450d0241002802dc944221080340024002402004200129027c2210422088a722034b0d0020012802b00220072004108805450d010b2010a7450d04200710300c040b0240200fa7450d00200510300b2001200336024420012007360240200141d0006a2007200341002802d4ad4211040002400240024020012802502205450d00200128025421060240024002402001280258220c4104490d00200c417c71417c6a0e050001010100010b2001420037022420012008360220200141093602642001200141c0006a3602602001200141206a3602bc022001410136028c012001420137027c200141a0e6c1003602782001200141e0006a36028801200141bc026a41d0adc000200141f8006a10321a2001280220200128022810ad0102402001280224450d00200128022010300b4101210c0c010b200528000021092005280008210d2005280004210b4100210c0b02402006450d00200510300b200c0d0002400240200320046b22044110490d00200441706a21050c010b4100210541002802e4ae42450d00410021054100280284ad4221044100280280ad42210641002802e8ae42210c2001420137038801200141c0f2c100360284012001428180808080103702b401200141dbf2c100ad4280808080e00a843702ac01200141003602a8012001420037039801200141133602800120014101360278200141c8f2c10036027c200141c8f2c100ad4280808080b002843703a001200141bc8ec20036029401200641bc8ec200200c410246220c1b200141f8006a200441d8f5c100200c1b2802101105000b41002104034020052004460d02200441016a22044120470d000b20014100360280012001420137037820012009360220200141f8006a200141206a410410642001200b360220200141f8006a200141206a410410642001200d360220200141f8006a200141206a4104106420014100360220200141f8006a200141206a41041064200720032001280278220420012802800141002802fcad42110300200128027c450d02200410300c020b41002802e4ae42450d014100280284ad4221044100280280ad42210541002802e8ae4221062001420137038801200141a0e0c1003602840120014281808080f0153702b401200141d6e0c100ad4280808080f00c843702ac01200141003602a8012001420037039801200141263602800120014101360278200141b0e0c10036027c200141b0e0c100ad4280808080e004843703a001200141bc8ec20036029401200541bc8ec200200641024622061b200141f8006a200441d8f5c10020061b2802101105000c010b41002802e4ae42450d004100280284ad4221044100280280ad42210541002802e8ae4221062001420137038801200141a8e0c100360284012001428180808080173702b401200141d6e0c100ad4280808080f00c843702ac01200141003602a8012001420037039801200141263602800120014101360278200141b0e0c10036027c200141b0e0c100ad4280808080e004843703a001200141bc8ec20036029401200541bc8ec200200641024622061b200141f8006a200441d8f5c10020061b2802101105000b200141f8006a2007200341002802dcad421104000240200128027822030d00200721052010210f0c040b20012802b802210420072105200321072010210f0c000b0b2004200541f0f5c100104a000b102a000b0240200fa7450d00200510300b024020012802b402450d0020012802b00210300b200141f8006a10d601200129038001210f200141d0006a21040b200141c0006a41dca4c000410610ab01200141d0006a41b08ec100411410ab01200a2001290050370000200a41086a200141d0006a41086a290000370000200141f8006a41086a200141c0006a41086a290000370300200141f8006a41106a200141206a41106a290300370300200141f8006a41186a200141206a41186a29030037030020012001290040370378200142013703204100210720014100360228200120012f01683b0150200141206a200141d0006a41021064200120012d006a3a005041012105200141206a200441011064200120012d006b3a0050200141206a200441011064200141f8006a412020012802202203200128022841002802fcad4211030002402001280224450d00200310300b2001418080043602702001410a3602b402200141fea4c0003602b00241002103024041002802e4ae424103490d002001412c6a410e360200200141043602242001200141f0006a3602282001200141b0026a3602204100280284ad4221074100280280ad42210541002802e8ae42210320014188016a4202370300200141ac016a41b284c100ad4280808080d00384370200200141a0016a41b285c100ad4280808080a0038437030020014198016a420237030020014180016a411636020020014194016a200141206a360200200141d084c100360284012001428180808080043702b401200141003602a801200141dc90c10036027c20014103360278200541bc8ec200200341024622031b200141f8006a200741d8f5c10020031b28021011050020012d0073210720012d0072210520012f017021030b200141c0006a41fea4c000410a10ab01200141d0006a41b08ec100411410ab01200a2001290050370000200a41086a200141d0006a41086a290000370000200141f8006a41086a200141c0006a41086a290000370300200141f8006a41106a200141206a41106a290300370300200141f8006a41186a200141206a41186a29030037030020012001290040370378200142013703204100210620014100360228200120033b0150200141206a200141d0006a41021064200120053a005041012105200141206a200441011064200120073a0050200141206a200441011064200141f8006a412020012802202207200128022841002802fcad4211030002402001280224450d00200710300b2001418080043602702001410d3602b402200141f1a4c0003602b00241002107024041002802e4ae424103490d002001412c6a410e360200200141043602242001200141f0006a3602282001200141b0026a3602204100280284ad4221074100280280ad42210541002802e8ae42210320014188016a4202370300200141ac016a41f684c100ad4280808080c00784370200200141a0016a41e084c100ad4280808080e0028437030020014198016a420237030020014180016a411636020020014194016a200141206a360200200141d084c1003602840120014281808080f0023702b401200141003602a801200141dc90c10036027c20014103360278200541bc8ec200200341024622031b200141f8006a200741d8f5c10020031b28021011050020012d0073210620012d0072210520012f017021070b200141c0006a41f1a4c000410d10ab01200141d0006a41b08ec100411410ab01200a2001290050370000200a41086a200141d0006a41086a290000370000200141f8006a41086a200141c0006a41086a290000370300200141f8006a41106a200141206a41106a290300370300200141f8006a41186a200141206a41186a29030037030020012001290040370378200142013703204100210320014100360228200120073b0150200141206a200141d0006a41021064200120053a005041012107200141206a200441011064200120063a0050200141206a200441011064200141f8006a412020012802202205200128022841002802fcad4211030002402001280224450d00200510300b2001418080043602702001410f3602b402200141e2a4c0003602b00241002105024041002802e4ae424103490d002001412c6a410e360200200141043602242001200141f0006a3602282001200141b0026a3602204100280284ad4221074100280280ad42210541002802e8ae42210320014188016a4202370300200141ac016a41ccb8c000ad4280808080a00584370200200141a0016a4193f4c000ad4280808080f0048437030020014198016a420237030020014180016a411636020020014194016a200141206a360200200141d084c1003602840120014281808080a0083702b401200141003602a801200141dc90c10036027c20014103360278200541bc8ec200200341024622031b200141f8006a200741d8f5c10020031b28021011050020012d0073210320012d0072210720012f017021050b200141c0006a41e2a4c000410f10ab01200141d0006a41b08ec100411410ab01200a2001290050370000200a41086a200141d0006a41086a290000370000200141f8006a41086a200141c0006a41086a290000370300200141f8006a41106a200141206a41106a290300370300200141f8006a41186a200141206a41186a290300370300200120012900403703782001420137032020014100360228200120053b0150200141206a200141d0006a41021064200120073a0050200141206a200441011064200120033a0050200141206a200441011064200141f8006a412020012802202204200128022841002802fcad421103002001280224450d00200410300b2000280200200041106a200141106a410110b703200141386a22054200370300200141206a41106a22034200370300200141206a41086a2204420037030020014200370320200141c0006a41e2a4c000410f10ab012004200141c0006a41086a220629000037030020012001290040370320200141d0006a41ecdac000411410ab01200a41086a220c200141d0006a41086a2208290000370000200a200129005037000002400240200141206a10a104220741ff01714102460d0020074101710d010b20054200370300200342003703002004420037030020014200370320200141c0006a41e2a4c000410f10ab012004200629000037030020012001290040370320200141d0006a419cdfc000411110ab01200c2008290000370000200a2001290050370000200141206a412041002802b4ad421105000b200141386a22074200370300200141306a22054200370300200141206a41086a2204420037030020014200370320200141c0006a41e2a4c000410f10ab012004200141c0006a41086a220329000037030020012001290040370320200141d0006a41acdac000410e10ab01200a41086a2206200141d0006a41086a220c290000370000200a200129005037000041002108200141206a412041002802b4ad4211050020074200370300200542003703002004420037030020014200370320200141c0006a41e2a4c000410f10ab012004200329000037030020012001290040370320200141d0006a41e8dec000411910ab012006200c290000370000200a2001290050370000200141206a412041002802b4ad4211050020074200370300200542003703002004420037030020014200370320200141c0006a41e2a4c000410f10ab012004200329000037030020012001290040370320200141d0006a41e0dfc000410d10ab012006200c290000370000200a2001290050370000200141206a412041002802b4ad4211050020074200370300200542003703002004420037030020014200370320200141c0006a41e2a4c000410f10ab012004200329000037030020012001290040370320200141d0006a41f8e0c000410e10ab012006200c290000370000200a2001290050370000200141206a412041002802b4ad4211050020074200370300200542003703002004420037030020014200370320200141c0006a41e2a4c000410f10ab012004200329000037030020012001290040370320200141d0006a41a4e0c000411410ab012006200c290000370000200a2001290050370000200141206a412041002802b4ad42110500200141f8006a10b001024020012802784101470d0020014194016a28020021080b200141386a4200370300200141306a4200370300200141206a41086a2204420037030020014200370320200141c0006a41e2a4c000410f10ab012004200141c0006a41086a29000037030020012001290040370320200141d0006a41e0e1c000412110ab01200a41086a200141d0006a41086a290000370000200a200129005037000020012008360278200141206a4120200141f8006a410441002802fcad42110300200141f8006a10d601427f200f20012903787c22102010200f541b1080044100410010ae0120012802102107024020012802182204450d00200441246c210a2007210403400240024002400240024020042d00000e050400010204030b2004410c6a280200450d03200441086a28020010300c030b2004410c6a280200450d02200441086a28020010300c020b2004410c6a280200450d01200441086a28020010300c010b200441086a280200450d00200441046a28020010300b200441246a2104200a415c6a220a0d000b0b024020012802142204450d00200441246c450d00200710300b200141c0026a24000f0b102c000bb90702057f017e230041306b22022400410041002802e8ae422203410120031b3602e8ae4202400240024020030e020001020b410041b480c200360284ad42410041b480c200360280ad42410041023602e8ae420c010b034041002802e8ae424101460d000b0b41052103024002400240024002400240024010000e06010203040506000b41acf9c1004134200241086a41e0f9c10041f0f9c1001034000b410021030c040b410121030c030b410221030c020b410321030c010b410421030b410020033602e4ae4202400240024020010d004108102f2203450d012003410e360204200341b8a5c000360200410c102f2204450d0141002101024020032802002205450d00200420032802043602082004200536020420044100360200410121010b200310302002410036021020024201370308200241edcad18b06360220200241086a200241206a410410642002410c3a0020200241086a200241206a410110644104200241086a10a80341c8a5c0004104200241086a10a903200241043a0020200241086a200241206a410110642001200241086a10a80302402005450d002001410c6c21012004210303400240024020032802004101470d00200341046a2802002105200341086a2802002206200241086a10a803200241086a2005200610640c010b200341046a2802002105200341086a2802002206200241086a10a803200241086a2005200610640b2003410c6a2103200141746a22010d000b0b200228020c2106200228020821052002280210210320041030200341046a2201417f4c0d0202400240024002400240024020010d0020024100360210200242013703080c010b2001102f2204450d06200241003602102002200136020c20022004360208200341c000490d01200341808001490d022003418080808004490d030b200241033a0020200241086a200241206a4101106420022003360220200241086a200241206a410410640c030b200220034102743a0020200241086a200241206a410110640c020b200220034102744101723b0120200241086a200241206a410210640c010b20022003410274410272360220200241086a200241206a410410640b200241086a200520031064200235021021072002280208210302402006450d00200510300b200241306a240020074220862003ad840f0b2002412c6a410d3602002002411c6a41023602002002420237020c200241bc81c10036020820024104360224200241b082c1003602202002200241206a3602182002200241086a360228200241086a41cc81c100103a000b102a000b102c000bab0101017f230041106b220224000240024002400240200041c000490d00200041808001490d012000418080808004490d02200241033a00032001200241036a41011064200220003602042001200241046a410410640c030b200220004102743a00032001200241036a410110640c020b200220004102744101723b010a20012002410a6a410210640c010b2002200041027441027236020c20012002410c6a410410640b200241106a24000be00801057f230041c0006b2203240002402001450d002000200141f0006c6a210403400240024020002802004101470d002000280204210120002802082205200210a80320022001200510640c010b2000280204210120002802082205200210a80320022001200510640b02400240200028020c22014102470d00200341003a00202002200341206a410110640c010b200341013a00202002200341206a41011064024020014101470d000240024020002802104101470d002000280214210120002802182205200210a80320022001200510640c010b2000280214210120002802182205200210a80320022001200510640b0240200028021c4101470d002000280220210120002802282205200210a80320012005200210b6040c020b20002802202101200041246a2802002205200210a80320012005200210b6040c010b200341206a20002802101102000240024020032802204101470d002003280224210120032802282205200210a80320022001200510640c010b2003280224210120032802282205200210a80320022001200510640b0240200328022c4101460d002003280230210120032802342205200210a80320012005200210b6040c010b2003280230210620032802382201200210a80320062001200210b604024020032802382201450d00200141d8006c21074100210503400240200620056a220141346a280200450d002001413c6a280200450d00200141386a28020010300b0240200141c4006a280200450d00200141cc006a28020041ffffffff0171450d00200141c8006a28020010300b2007200541d8006a2205470d000b0b20032802342201450d00200141d8006c450d00200610300b02400240200028022c22014102470d00200341003a00202002200341206a410110640c010b200341013a00202002200341206a41011064024020014101470d002000280230210120002802382205200210a80320012005200210b4040c010b200341186a200028023011020020032802182101200328021c2205200210a80320012005200210b4040b02400240200028023c22014102470d00200341003a00202002200341206a410110640c010b200341013a00202002200341206a41011064024020014101470d002000280240210120002802482205200210a80320012005200210b7040c010b200341106a20002802401102002003280210210120032802142205200210a80320012005200210b7040b02400240200028024c4101470d002000280250210120002802582205200210a80320012005200210b8040c010b200341086a200028025011020020032802082101200328020c2205200210a80320012005200210b8040b200041f0006a210102400240200028025c4101470d002000280260210520002802682206200210a80320052006200210b9040c010b200320002802601102002003280200210520032802042206200210a80320052006200210b9040b200320002d006c3a00202002200341206a410110642001210020012004470d000b0b200341c0006a24000bca0602027f027e230041f0046b22022400410041002802e8ae422203410120031b3602e8ae4202400240024020030e020001020b410041b480c200360284ad42410041b480c200360280ad42410041023602e8ae420c010b034041002802e8ae424101460d000b0b41052103024002400240024002400240024010000e06010203040506000b41acf9c1004134200241a8036a41e0f9c10041f0f9c1001034000b410021030c040b410121030c030b410221030c020b410321030c010b410421030b410020033602e4ae42200242808080808020370204200220013602142002200041bc8ec20020011b3602102002200241106a360200200241a8036a200210ab0220022802a8032103200241e0016a200241a8036a41047241c4011085051a0240024020034102460d00200241186a410472200241e0016a41c4011085052101200220033602180240024020022802002802040d00200241a8036a200141c4011085051a0c010b02402002419c016a2d00004103460d0020022d00784102470d0020024180016a280200450d00200241fc006a28020010300b200241186a10b202410221030b20034102460d00200241186a200241a8036a41c4011085051a200220033602a803200241a8036a410472200241186a41c4011085051a200241e0016a200241a8036a10ab034101410220022d00e00122034101461b2201102f2200450d01200241003602b003200220013602ac03200220003602a8030240024020034101470d00200241013a0018200241a8036a200241186a4101106420022d00e10120022d00e20120022d00e301200241a8036a10ac030c010b200241003a0018200241a8036a200241186a41011064024020022d00e40122034108460d00200241013a0018200241a8036a200241186a41011064200320022d00e50120022d00e601200241a8036a10d9010c010b200241003a0018200241a8036a200241186a410110640b20023502b003210420023502a8032105200241f0046a240020052004422086840f0b200241ec016a410d3602002002412c6a41023602002002420237021c200241bc81c100360218200241043602e401200241c082c1003602e0012002200241e0016a3602282002200241a8036a3602e801200241186a41cc81c100103a000b102a000bd21702077f037e230041800d6b22022400200220013602a005200241186a200241a0056a10b30320022802182103200228021c210420022802202105200241a0056a200141c8011085051a200241c0026a200241a0056a10b00220022d00c002210120022f00c102210620022d00c3022107200241b4016a200241c0026a410472418c011085051a024002400240024020014101460d00200241286a200241b4016a41046a4188011085051a200241106a41fc8ac20041101085022002280214210120022802102106200220053602c802200220043602c402200220033602c002200241a0056a2001410020061b10820420022802a005220120022802a805200241c0026a109802024020022802a405450d00200110300b02402004450d00200310300b200241d0036a200241286a10e101200241a0056a200241286a4188011085051a0240024020022d008006450d0041800821030c010b20022802a0054101470d03200241c0026a200241a0056a410472108102024020022d00c0024101460d00200241ec026a2802002106200241e8026a2802002103200241e4026a2802002107200241dc026a2802002105200241d8026a28020021080240200241e0026a2802002201450d002001410c6c21042008210103400240200141046a280200450d00200128020010300b2001410c6a2101200441746a22040d000b0b02402005450d002005410c6c450d00200810300b02402006450d002006410c6c21042007210103400240200141046a280200450d00200128020010300b2001410c6a2101200441746a22040d000b0b2003450d042003410c6c450d04200710300c040b20022d00c10222014102460d0320022f01c20241087420017221030b024020022802a0054101460d000240024002400240024002400240200241a8056a280200417f6a0e09090009010209030405060b200241b0056a280200450d08200241ac056a28020010300c080b200241b0056a280200450d07200241ac056a28020010300c070b200241b0056a280200450d06200241ac056a28020010300c060b200241a0056a410c6a28020021050240200241b4056a2802002201450d00200141186c21042005210103400240200141046a280200450d00200128020010300b0240200141106a280200450d002001410c6a28020010300b200141186a2101200441686a22040d000b0b200241b0056a2802002201450d05200141186c450d05200510300c050b200241a0056a410c6a28020021050240200241b4056a2802002201450d002001410c6c21042005210103400240200141046a280200450d00200128020010300b2001410c6a2101200441746a22040d000b0b200241b0056a2802002201450d042001410c6c450d04200510300c040b200241b0056a280200450d03200241ac056a28020010300c030b200241b0056a280200450d02200241ac056a28020010300c020b02400240024020022d00a405417f6a0e0404000104020b0240200241ac056a280200450d00200241a8056a28020010300b200241dc056a28020021050240200241e4056a2802002201450d002001410c6c21042005210103400240200141046a280200450d00200128020010300b2001410c6a2101200441746a22040d000b0b0240200241e0056a2802002201450d002001410c6c450d00200510300b200241e8056a28020021050240200241f0056a2802002201450d0020014104742104200541086a2101034002402001280200450d002001417c6a28020010300b200141106a2101200441706a22040d000b0b0240200241ec056a28020041ffffffff0071450d00200510300b200241f4056a10e3010c030b200241ac056a280200450d02200241a8056a28020010300c020b200241ac056a280200450d01200241a8056a28020010300c010b2000200620074110747222013b0001200041013a0000200041036a20014110763a00002004450d02200310300c020b20024190046a41086a200241b4016a41086a29020037030020024190046a41106a200241b4016a41106a29020037030020024190046a41186a200241b4016a41186a29020037030020024190046a41206a200241b4016a41206a29020037030020024190046a41286a200241b4016a41286a29020037030020024190046a41306a200241b4016a41306a280200360200200220022902b40137039004200041036a20034110763a0000200020033b0001200041013a00000c010b200241c0026a200241a0056a41e0001085051a200241023a00c804200241f8046a200241c8046a10cd03200241c8046a200241c0026a200241f8046a10e20141082101200241b4016a410c6a200241c8046a41086a290300370200200241b4016a41146a200241c8046a41106a290300370200200241b4016a411c6a200241c8046a41186a290300370200200241b4016a41246a200241c8046a41206a290300370200200241b4016a412c6a200241c8046a41286a290300370200200220022903c8043702b80120024190046a41086a200241b4016a41086a29020037030020024190046a41106a200241b4016a41106a29020037030020024190046a41186a200241b4016a41186a29020037030020024190046a41206a200241b4016a41206a29020037030020024190046a41286a200241b4016a41286a29020037030020024190046a41306a200241b4016a41306a280200360200200220022902b40137039004200241e0036a41286a20024190046a412c6a290200370300200241e0036a41206a220420024190046a41246a290200370300200241e0036a41186a20024190046a411c6a290200370300200241e0036a41106a220320024190046a41146a290200370300200241e0036a41086a220520024190046a410c6a29020037030020022002290294043703e00320022903d00322092003290300220a200a2009561b200920052903004201511b210920022903d803210a0240024020022903e0034201510d002009210b200a2109410021030c010b2002200241e0036a41086a36029004024041002802e4ae424105490d00200241c8046a41186a4200370300200241c8046a41106a22044200370300200241c8046a41086a4200370300200242003703c804200241c8046a41dca4c000410610ab01200441acc0c100410610ab01200241086a200241c8046a4120108502200241cc026a410f360200200241103602c4022002200228020c410020022802081b3602b401200220024190046a3602c8022002200241b4016a3602c0024100280284ad4221044100280280ad42210341002802e8ae422105200241a0056a41106a4202370300200241d4056a418691c100ad4280808080c00a84370200200241c8056a41fb92c100ad4280808080c00184370300200241a0056a41206a4202370300200241a0056a41086a410f360200200241bc056a200241c0026a360200200241dc92c1003602ac052002428180808080b9013702dc05200241003602d005200241ec92c1003602a405200241053602a005200341bc8ec200200541024622051b200241a0056a200441d8f5c10020051b28021011050020022802900441186a21040b2004290204210b20042802002104410121030b200241a0056a41286a20022903c002370300200241a0056a41206a200a370300200241a0056a41186a2009370300200241a0056a41106a200b370300200241ab056a200241b4016a41026a2d00003a0000200241a0056a41306a200241c0026a41086a290300370300200241d8056a200241c0026a41106a290300370300200241e0056a200241c0026a41186a290300370300200241e8056a200241c0026a41206a290300370300200220022f00b4013b00a905200220043602ac05200220033a00a805200242003703a005200241a0056a10e601200241fc8ac20041101085022002200228020441016a410120022802001b22043602a00541fc8ac2004110200241a0056a410441002802fcad421103004100200410ae01024020022903e0034201520d0020022903e8034202510d0020022002290081043703a005200220024188046a2800003600a70520024180046a2d000021010b200041003a0000200041046a20013a0000200041056a20022903a0053700002000410c6a20022800a7053600000b200241800d6a24000bb50301017f230041106b2204240002400240200041ff01714101460d00200441003a000f20032004410f6a410110640240024002400240024002400240024002400240200141ff01710e0a000102030405060708090b0b200441003a000f20032004410f6a410110640c0a0b200441013a000f20032004410f6a410110640c090b200441023a000f20032004410f6a410110640c080b200441033a000f20032004410f6a410110640c070b200441043a000f20032004410f6a410110640c060b200441053a000f20032004410f6a410110640c050b200441063a000f20032004410f6a410110640c040b200441073a000f20032004410f6a41011064200420023a000f20032004410f6a410110640c030b200441083a000f20032004410f6a410110640c020b200441093a000f20032004410f6a410110640c010b200441013a000f20032004410f6a41011064024002400240200141ff01710e03000102030b200441003a000f20032004410f6a410110640c020b200441013a000f20032004410f6a410110640c010b200441023a000f20032004410f6a41011064200420023a000f20032004410f6a410110640b200441106a24000be90902067f017e230041a0016b22022400410041002802e8ae422203410120031b3602e8ae4202400240024020030e020001020b410041b480c200360284ad42410041b480c200360280ad42410041023602e8ae420c010b034041002802e8ae424101460d000b0b41052103024002400240024002400240024010000e06010203040506000b41acf9c1004134200241106a41e0f9c10041f0f9c1001034000b410021030c040b410121030c030b410221030c020b410321030c010b410421030b410020033602e4ae420240024020010d00200241086a41fc8ac2004110108502200228020c21040240200228020822054101470d0041fc8ac200411041002802b4ad421105000b200241286a22034200370300200241106a41106a22014200370300200241106a41086a220642003703002002420037031020024180016a41dca4c000410610ab01200620024180016a41086a2207290000370300200220022900800137031020024180016a41f0bec100410e10ab0120032007290000370300200120022900800137030020022004410020051b36028001200241106a412020024180016a410441002802fcad421103004101200210ae012003420037030020014200370300200642003703002002420037031020024180016a41dca4c000410610ab0120062007290000370300200220022900800137031020024180016a41acc0c100410610ab012003200729000037030020012002290080013703002002200241106a412010850210ae03200241106a10af03200241003602980120024201370390014120102f2203450d012002422037028401200220033602800120024180016a200241206a4120106420024190016a200228028001220320022802880110640240200228028401450d00200310300b200241106a20024190016a10ee014120102f2203450d012002422037028401200220033602800120024180016a200241c0006a4120106420024190016a200228028001220320022802880110640240200228028401450d00200310300b4120102f2203450d012002422037028401200220033602800120024180016a200241e0006a4120106420024190016a200228028001220320022802880110640240200228028401450d00200310300b2002280214210420024190016a2002411c6a280200220710a5010240200741246c2201450d0020042103034020024180016a200310e70120024190016a200228028001220620022802880110640240200228028401450d00200610300b200341246a21032001415c6a22010d000b0b2002350298012108200228029001210602402007450d00200741246c21012004210303400240024002400240024020032d00000e050400010204030b2003410c6a280200450d03200341086a28020010300c030b2003410c6a280200450d02200341086a28020010300c020b2003410c6a280200450d01200341086a28020010300c010b200341086a280200450d00200341046a28020010300b200341246a21032001415c6a22010d000b0b0240200241186a2802002203450d00200341246c450d00200410300b200241a0016a240020084220862006ad840f0b2002418c016a410d360200200241246a410236020020024202370214200241bc81c1003602102002410436028401200241d882c10036028001200220024180016a3602202002200241106a36028801200241106a41cc81c100103a000b102a000b9b1803057f047e117f230041b0026b22002400200041c0016a41186a22014200370300200041c0016a41106a22024200370300200041c0016a41086a22034200370300200042003703c001200041086a41dca4c000410610ab012003200041086a41086a2204290000370300200020002900083703c001200041086a4198bfc100410b10ab012001200429000037030020022000290008370300200041086a200041c0016a10810420002903082105200041086a41106a290300210620002903102107200041086a41186a2903002108200041086a10d60102402000290310427f427f20074200200542015122011b22052006420020011b7c220620062005541b22052008420020011b7c220620062005541b580d0042001080040b200041e0016a41186a22014200370300200041e0016a41106a22094200370300200041e0016a41086a22034200370300200042003703e001200041086a41e2a4c000410f10ab0120032004290000370300200020002900083703e001200041086a41ecdac000411410ab0120012004290000370300200920002900083703004100210a200041e0016a412041002802b4ad42110500200041086a10b0010240024002400240024020002802084101470d00200041086a41186a280200210b200041086a41106a280200210c200041146a280200210d200041c0016a41186a4200370300200041c0016a41106a4200370300200041c0016a41086a22044200370300200042003703c001200041086a41e2a4c000410f10ab012004200041086a41086a2201290000370300200020002900083703c001200041086a41d4dbc000411610ab01200241086a20012900003700002002200029000837000020004120360284022000200041c0016a3602800220004188026a200041c0016a412041002802d4ad4211040002400240200028028802220e0d000c010b200028028c02210f200020004188026a41086a280200220336029c022000200e360298022003411f2003411f491b200e6a41016a210a200041086a410472211041002104417f2102024002400240034020032004460d01201020046a200e20046a22112d00003a00002000200441016a22013602082000200320026a36029c022000201141016a360298022002417f6a21022001210420014120470d000b200041e9016a200041156a2d00003a0000200041f0016a2000411c6a2d00003a0000200041f7016a200041236a2d00003a0000200020002f010c3b01e001200020002d000e3a00e2012000200041136a2f00003b00e70120002000411a6a2f01003b01ee012000200041216a2f00003b00f501200041246a29020021052000411d6a2800002104200041166a28010021022000200028000f3600e301200020023601ea01200020043600f101200020053703f801200320016b22044104490d00200a35000021052000200e20016a220241046a3602980220002004417c6a220136029c0220014104490d00200241046a35000021062000200441786a36029c022000200241086a36029802200041086a20004198026a109e042000280208220a450d00200028020c2112200041086a20004198026a109e04200028020822130d012012450d002012413c6c450d00200a10300b200042003702e4014100210a200041002802dc94423602e001200041093602a402200020004180026a3602a0022000200041e0016a3602ac022000411c6a41013602002000420137020c200041a0e6c1003602082000200041a0026a360218200041ac026a41d0adc000200041086a10321a20002802e00120002802e80110ad01024020002802e401450d0020002802e00110300b0c010b20064220862005842105200028020c21140b200f450d00200e10300b200a450d00200041f8016a22154200370300200041f0016a22164200370300200041e0016a41086a22174200370300200042003703e001200041086a41e2a4c000410f10ab012017200041086a41086a2218290000370300200020002900083703e001200041086a41c0e1c000411510ab01200941086a221920182900003700002009200029000837000041002103200041086a200041e0016a10bd032000280208220441002802e88f4220041b210f0240200029020c420020041b22064220882207a72210410c6c2211450d004100200d2005a76b22042004200d4b1b2102410021034100200c2005422088a76b22042004200c4b1b2104200b20022002200b4b1b2102200f41086a21012007a7410274417c6a41027641016a210b02400340200420012802006b220e20044b0d012002417f6a220420024b0d012001410c6a2101200341016a210320042102200e2104201141746a22110d000b200b21030b200320104b0d020b201542003703002016420037030020174200370300200042003703e001200041086a41e2a4c000410f10ab0120172018290000370300200020002900083703e001200041086a41f8e0c000410e10ab0120192018290000370000200920002900083700002003410c6c41046a2204417f4c0d020240024020040d00410121020c010b2004102f2202450d040b200041003602102000200436020c20002002360208200041086a200310a50102402003450d00200f2003410c6c6a2102200f210403402004280200200441086a280200200041086a10a6012004410c6a22042002470d000b0b200041e0016a412020002802082204200028021041002802fcad421103000240200028020c450d00200410300b200320104b0d040240024020030d00200642ffffffff0f83420c7e2205422088a70d042005a72204417f4c0d040240024020040d00410421110c010b2004102f2211450d060b2006a7210e2004410c6ead21050c010b201020036b2210ad420c7e2205422088a70d032005a72204417f4c0d030240024020040d00410421020c010b2004102f2202450d050b200642ffffffff0f832003ad4220868421052004410c6e210e200f21112002200f2003410c6c6a2010410c6c108505210f0b02402005422088a72204450d0020112004410c6c6a21012011210403402004410c6a21020240200441046a280200450d00200428020010300b2002210420012002470d000b0b02402005a72204450d002004410c6c450d00201110300b200041f8016a4200370300200041f0016a4200370300200041e0016a41086a22044200370300200042003703e001200041086a41e2a4c000410f10ab012004200041086a41086a2202290000370300200020002900083703e001200041086a41c0e1c000411510ab01200941086a2002290000370000200920002900083700002010410c6c41046a2204417f4c0d020240024020040d00410121020c010b2004102f2202450d040b200041003602102000200436020c20002002360208200041086a201010a50102402010450d00200f2010410c6c6a2102200f210403402004280200200441086a280200200041086a10a6012004410c6a22042002470d000b0b200041e0016a412020002802082204200028021041002802fcad421103000240200028020c450d00200410300b02402010450d002010410c6c2102200f210403400240200441046a280200450d00200428020010300b2004410c6a2104200241746a22020d000b0b0240200e450d00200e410c6c450d00200f10300b200041f8016a22014200370300200041f0016a22034200370300200041e0016a41086a22044200370300200042003703e001200041086a41e2a4c000410f10ab012004200041086a41086a2202290000370300200020002900083703e001200041086a41e0e1c000412110ab01200941086a22112002290000370000200920002900083700002000200041e0016a4120108502024020002802004101470d00200041e0016a412041002802b4ad421105000b200142003703002003420037030020044200370300200042003703e001200041086a41e2a4c000410f10ab0120042002290000370300200020002900083703e001200041086a41a4e0c000411410ab0120112002290000370000200920002900083700004104102f2204450d032000420437020c20002004360208200041086a410010a501200041e0016a412020002802082204200028021041002802fcad421103000240200028020c450d00200410300b02402012450d002012413c6c450d00200a10300b2014450d002014413c6c450d00201310300b200041b0026a24000f0b2003201041b4a2c0001042000b102c000b102a000b200320101038000bc629030c7f027e097f230041e0016b22012400200141d8006a41186a22024200370300200141d8006a41106a22034200370300200141d8006a41086a2204420037030020014200370358200141a8016a41dca4c000410610ab012004200141a8016a41086a2205290000370300200120012900a801370358200141a8016a418cc4c100410e10ab0120022005290000370300200320012900a801370300200141d8006a412041002802b4ad4211050020024200370300200342003703002004420037030020014200370358200141a8016a41dca4c000410610ab0120042005290000370300200120012900a801370358200141a8016a41ccbfc100411010ab0120022005290000370300200320012900a801370300200141d8006a412041002802b4ad4211050020024200370300200342003703002004420037030020014200370358200141a8016a41dca4c000410610ab0120042005290000370300200120012900a801370358200141a8016a41acc0c100410610ab0120022005290000370300200320012900a801370300200141106a200141d8006a4120108502200128021421062001280210210720024200370300200342003703002004420037030020014200370358200141a8016a41dca4c000410610ab0120042005290000370300200120012900a801370358200141a8016a41ccc0c100410a10ab0120022005290000370300200320012900a801370300200141a8016a200141d8006a41201082020240024020012d00a8014101460d00200141186a41186a4200370300200141186a41106a4200370300200141186a41086a4200370300200142003703180c010b200141186a41186a200141c1016a290000370300200141186a41106a200141b9016a290000370300200141186a41086a200141b1016a290000370300200120012900a9013703180b200141f0006a22084200370300200141e8006a22094200370300200141d8006a41086a2202420037030020014200370358200141a8016a41dca4c000410610ab012002200141a8016a41086a2204290000370300200120012900a801370358200141a8016a41e0c0c100410610ab01200341086a220a2004290000370000200320012900a8013700002001412036027c2001200141d8006a36027820014180016a200141d8006a412041002802d4ad421104000240024020012802800122050d004100210b0c010b200128028401210c200120014180016a41086a280200360294012001200536029001200141a8016a20014190016a1083020240024020012802a801220b450d0020012902ac01210d0c010b200142003702d4014100210b200141002802dc94423602d0012001410936029c012001200141f8006a360298012001200141d0016a3602a401200141bc016a4101360200200142013702ac01200141a0e6c1003602a801200120014198016a3602b801200141a4016a41d0adc000200141a8016a10321a20012802d00120012802d80110ad01024020012802d401450d0020012802d00110300b0b200c450d00200510300b20084200370300200942003703002002420037030020014200370358200141a8016a41dca4c000410610ab0120022004290000370300200120012900a801370358200141a8016a41f0bec100410e10ab01200a2004290000370000200320012900a801370000200141086a200141d8006a4120108502200128020c210241002103024020012802084101470d00200141d8006a412041002802b4ad42110500410121030b02402002410020031b2209ad420c7e220e422088a70d00200ea72203417f4c0d000240024002400240024020030d004104210c0c010b2003102f220c450d010b0240024002402003410c6e220f20094f0d00200f41017422022009200220094b1b22024104200241044b1bad420c7e220e422088a7454102742102200ea72104024002402003410b4b0d00200141003602a8010c010b200141b0016a41043602002001200c3602a8012001200f410c6c3602ac010b200141d8006a20042002200141a8016a1069200141e0006a2802002103024020012802584101460d00200128025c210c2003410c6e210f0c020b20030d030c060b20090d00410021090c010b41002802dc9442210a200c2103410021020340200141d8006a2002108204200141a8016a20012802582205200128026022081086020240024020012802a80122040d004200210e200a21040c010b2005200841002802b4ad4211050020012902ac01210e0b200241016a21020240200128025c450d00200510300b20032004360200200341046a200e3702002003410c6a210320092002470d000b0b200120093602b0012001200f3602ac012001200c3602a801200141d8006a200141a8016a10830402402006410020071b220541fc01490d00200141a8016a4100200541857e6a2203200320054b1b10fe0320012802a801220320012802b00141002802b4ad4211050020012802ac01450d00200310300b200141d0016a41002802f4ad4211020020012802d8012202450d02200120012802d00122032d00003a00ac01200141013602a80120024101460d02200120032d00013a00ad01200141023602a80120024102460d02200120032d00023a00ae01200141033602a80120024103460d02200120032d00033a00af01200141043602a80120024104460d02200141b0016a20032d00043a0000200141053602a80120024105460d02200141b1016a20032d00053a0000200141063602a80120024106460d02200141b2016a20032d00063a0000200141073602a80120024107460d02200141b3016a20032d00073a0000200141083602a80120024108460d02200141b4016a20032d00083a0000200141093602a80120024109460d02200141b5016a20032d00093a00002001410a3602a8012002410a460d02200141b6016a20032d000a3a00002001410b3602a8012002410b460d02200141b7016a20032d000b3a00002001410c3602a8012002410c460d02200141b8016a20032d000c3a00002001410d3602a8012002410d460d02200141b9016a20032d000d3a00002001410e3602a8012002410e460d02200141ba016a20032d000e3a00002001410f3602a8012002410f460d02200141bb016a20032d000f3a0000200141103602a80120024110460d02200141bc016a20032d00103a0000200141113602a80120024111460d02200141bd016a20032d00113a0000200141123602a80120024112460d02200141be016a20032d00123a0000200141133602a80120024113460d02200141bf016a20032d00133a0000200141143602a80120024114460d02200141c0016a20032d00143a0000200141153602a80120024115460d02200141c1016a20032d00153a0000200141163602a80120024116460d02200141c2016a20032d00163a0000200141173602a80120024117460d02200141c3016a20032d00173a0000200141183602a80120024118460d02200141c4016a20032d00183a0000200141193602a80120024119460d02200141c5016a20032d00193a00002001411a3602a8012002411a460d02200141c6016a20032d001a3a00002001411b3602a8012002411b460d02200141c7016a20032d001b3a00002001411c3602a8012002411c460d02200141c8016a20032d001c3a00002001411d3602a8012002411d460d02200141c9016a20032d001d3a00002001411e3602a8012002411e460d02200141ca016a20032d001e3a00002001411f3602a8012002411f460d02200141cb016a20032d001f3a000020014198016a41026a2202200141b5016a2d00003a000020014190016a41026a2204200141bc016a2d00003a0000200120012f01ac013b018001200120012d00ae013a0082012001200141b3016a2f00003b0198012001200141ba016a2f01003b019001200141c4016a2802002109200141bd016a280000210a200141b6016a280100210c200141203602a801200141a8016a41206a280200210f20012800af012106200141f8006a41026a200141c3016a2d000022083a0000200141c4006a41026a20012d0082013a0000200141c0006a41026a20022d00003a00002001413c6a41026a20042d00003a00002001200141c1016a2f000022023b0178200120012f0180013b0144200120012f0198013b0140200120012f0190013b013c200141386a41026a20083a0000200120023b0138024020012802d401450d00200310300b200141003602d801200142013703d0014120102f2203450d00200142203702ac01200120033602a801200141a8016a200141186a41201064200141d0016a20012802a801220320012802b0011064024020012802ac01450d00200310300b41002802e88f42210320014180016a20012802d001220220012802d80141002802acad42110400024020012802d401450d00200210300b200d4200200b1b210e200b2003200b1b2104024002402001280280012203450d0020014188016a2802002202450d032001280284012108200120032d00003a00ac01200141013602a80120024101460d03200120032d00013a00ad01200141023602a80120024102460d03200120032d00023a00ae01200141033602a80120024103460d03200120032d00033a00af01200141043602a80120024104460d03200141b0016a20032d00043a0000200141053602a80120024105460d03200141b1016a20032d00053a0000200141063602a80120024106460d03200141b2016a20032d00063a0000200141073602a80120024107460d03200141b3016a20032d00073a0000200141083602a80120024108460d03200141b4016a20032d00083a0000200141093602a80120024109460d03200141b5016a20032d00093a00002001410a3602a8012002410a460d03200141b6016a20032d000a3a00002001410b3602a8012002410b460d03200141b7016a20032d000b3a00002001410c3602a8012002410c460d03200141b8016a20032d000c3a00002001410d3602a8012002410d460d03200141b9016a20032d000d3a00002001410e3602a8012002410e460d03200141ba016a20032d000e3a00002001410f3602a8012002410f460d03200141bb016a20032d000f3a0000200141103602a80120024110460d03200141bc016a20032d00103a0000200141113602a80120024111460d03200141bd016a20032d00113a0000200141123602a80120024112460d03200141be016a20032d00123a0000200141133602a80120024113460d03200141bf016a20032d00133a0000200141143602a80120024114460d03200141c0016a20032d00143a0000200141153602a80120024115460d03200141c1016a20032d00153a0000200141163602a80120024116460d03200141c2016a20032d00163a0000200141173602a80120024117460d03200141c3016a20032d00173a0000200141183602a80120024118460d03200141c4016a20032d00183a0000200141193602a80120024119460d03200141c5016a20032d00193a00002001411a3602a8012002411a460d03200141c6016a20032d001a3a00002001411b3602a8012002411b460d03200141c7016a20032d001b3a00002001411c3602a8012002411c460d03200141c8016a20032d001c3a00002001411d3602a8012002411d460d03200141c9016a20032d001d3a00002001411e3602a8012002411e460d03200141ca016a20032d001e3a00002001411f3602a8012002411f460d03200141a8016a41236a20032d001f3a0000200141d0006a41026a2202200141b5016a2d00003a0000200141cc006a41026a220b200141bc016a2d00003a0000200120012f01ac013b0154200120012d00ae013a00562001200141b3016a2f00003b01502001200141ba016a2f01003b014c200141b6016a2801002110200141bd016a2800002111200141c4016a2802002112200141203602a801200141a8016a41206a280200211320012800af012114200141c8006a41026a2207200141c3016a2d00003a00002001200141c1016a2f00003b014820014198016a41026a221520012d00563a0000200120012f01543b019801200120012f01503b019001200120022d00003a009201200141f8006a41026a2216200b2d00003a0000200120012f014c3b0178200141a4016a41026a220b20072d00003a0000200120012f01483b01a40102400240200e422088a72202200ea7460d00200e210d0c010b200241016a22072002490d0620024101742217200720072017491b22074104200741044b1bad42247e220d422088a7454102742107200da721170240024020020d00200141003602a8010c010b200141b0016a4104360200200120043602a8012001200241246c3602ac010b200141d0016a20172007200141a8016a1069200141d8016a280200210220012802d0014101460d0220012802d4012104200e42808080807083200241246ead84210d200e422088a721020b2004200241246c6a220241003a000020022014360204200241036a20152d00003a0000200220012f0198013b00012002410a6a20012d0092013a0000200220012f0190013b01082002201036000b20022011360112200241116a20162d00003a0000200220012f01783b000f200241186a200b2d00003a0000200220012f01a4013b01162002201336001d20022012360019200220012f00a8013b0021200241236a200141a8016a41026a2d00003a0000200d4280808080107c210e2008450d00200310300b20002001290358370050200020012f01443b0030200041376a20012f01403b00002000413e6a20012f013c3b0000200041e8006a200141d8006a41186a290300370000200041e0006a200141d8006a41106a290300370000200041d8006a200141d8006a41086a290300370000200041326a200141c4006a41026a2d00003a0000200041396a200141c0006a41026a2d00003a0000200041c0006a2001413c6a41026a2d00003a0000200041cc006a200f360000200041c8006a2009360000200041c1006a200a3600002000413a6a200c360000200041336a2006360000200041086a200e3702002000200436020420002005360200200041c7006a200141386a41026a2d00003a0000200041c5006a20012f01383b0000200041286a200141186a41186a290300370000200041206a200141186a41106a290300370000200041186a200141186a41086a29030037000020002001290318370010200141e0016a24000f0b2002450d030b102a000b41a493c100412c200141a8016a41b492c10041e093c1001034000b41a493c100412c200141a8016a41b492c10041d093c1001034000b102c000bfa0903027f017e057f230041d0026b22022400410041002802e8ae422203410120031b3602e8ae4202400240024020030e020001020b410041b480c200360284ad42410041b480c200360280ad42410041023602e8ae420c010b034041002802e8ae424101460d000b0b41052103024002400240024002400240024010000e06010203040506000b41acf9c1004134200241f8016a41e0f9c10041f0f9c1001034000b410021030c040b410121030c030b410221030c020b410321030c010b410421030b410020033602e4ae422002428080808080203702342002200136027c2002200041bc8ec20020011b3602782002200241f8006a360230200241f8016a200241306a10b1030240024020022802f8014101460d00200241a0016a41086a220320024184026a280200360200200220022902fc013703a0012002280230280204450d01200241a0016a10b2030b200241ac016a410d3602002002418c026a4102360200200242023702fc01200241bc81c1003602f801200241043602a401200241f082c1003602a0012002200241a0016a360288022002200241f8016a3602a801200241f8016a41cc81c100103a000b200241086a20032802002203360200200220022903a0012204370300200241206a41086a200336020020022004370320024002400240024020022802242205450d0020022802202106034020052f018a012207410374210841002100417f210141002103024002400340024020082003470d00200721010c020b41ebb7c000200520036a418c016a41081088052209450d02200141016a21012000410c6a2100200341086a21032009417f4a0d000b0b2006450d022006417f6a2106200520014102746a41e4016a28020021050c010b0b200520006a220341046a280200210120022003410c6a28020036023420022001360230200241f8016a200241306a10ec0120022802f8012200450d0120022f01fc012109200241a0016a200241f8016a41067241d2001085051a200241f8016a200241a0016a41d2001085051a200241a0016a200241f8016a41d2001085051a200241f8016a200241a0016a41d2001085051a20024100360230200241f8006a41a0064108200241306a1069200241f8006a41086a2205280200210120022802784101470d0220010d03102c000b200241f8016a200241a0016a41d2001085051a0b41f3b7c00041c60041bcb8c0001050000b200228027c22032000360208200341023a0004200341013602002003410c6a20093b01002003410e6a200241f8016a41d2001085051a20034184016a41033a000020034180016a20024198016a280200360200200341f8006a20024190016a290200370200200341f0006a20024188016a290200370200200341e8006a20052902003702002003200229027837026020034185016a200241306a41c3001085051a200241206a10b20341cc01102f2200450d00200242cc013702a401200220003602a001200241a0016a410110a50120022003360230200241f8016a200241306a10b303200241a0016a20022802f80122002002280280021064024020022802fc01450d00200010300b20022802a001210020023502a8012104024020034184016a2d00004103460d0020032d00604102470d00200341e8006a280200450d00200341e4006a28020010300b200310b202200141c8017021090240200141c801490d0020012009460d00200310300b200241d0026a240020044220862000ad840f0b102a000bb61a070e7f017e027f017e057f017e077f230041e0006b22022400200241086a200110ac0202400240024002400240024002400240024002400240024002402002280208450d00200041013602000c010b200228020c21032001200128020441016a22043602040240200420012802084b0d00410021050240024002400240024020030d0041002106410021070c010b200241d0006a41086a2108200241d9006a2109200241d0006a410a6a210a200241d0006a410b6a210b41002106410021074100210c034020012802002204280204220d450d032004280200220e2d0000210f2004200d417f6a3602042004200e41016a3602002002200f3a005420012802002204280204220d450d032004280200220e2d0000210f2004200d417f6a3602042004200e41016a3602002002200f3a005520012802002204280204220d450d032004280200220e2d0000210f2004200d417f6a3602042004200e41016a3602002002200f3a005620012802002204280204220d450d032004280200220e2d0000210f2004200d417f6a3602042004200e41016a3602002002200f3a005720012802002204280204220d450d032004280200220e2d0000210f2004200d417f6a3602042004200e41016a3602002008200f3a000020012802002204280204220d450d032004280200220e2d0000210f2004200d417f6a3602042004200e41016a3602002009200f3a000020012802002204280204220d450d032004280200220e2d0000210f2004200d417f6a3602042004200e41016a360200200a200f3a000020012802002204280204220d450d03200b2004280200220e2d00003a00002004200d417f6a3602042004200e41016a360200200229025421102002200110ac0220022802000d032001280200220d280204220e20022802042204490d032004417f4c0d070240024020040d004101210f0c010b2004102f220f450d0f200f410020041087051a2001280200220d280204210e0b200e2004490d02200f200d28020020041085052111200d280204220e2004490d11200d200e20046b360204200d200d28020020046a36020020022010370350024020070d0041e401102f2207450d0f41002112200741003b018a01200741003602000b200c41016a210c2004ad2213422086201384211320072114201221150240024003402014418c016a211620142f018a01221741037421184100210e417f210d4100210402400340024020182004470d002017210d0c020b200241d0006a201420046a418c016a4108108805220f450d03200d41016a210d200e410c6a210e200441086a2104200f417f4a0d000b0b02402015450d002015417f6a21152014200d4102746a41e4016a28020021140c010b0b0240024002400240024002402017410a4b0d00200d2017490d012016200d4103746a2010370000201441046a21040c020b410021154104210402400240200d41054f0d00200d210f0c010b410521044105210f02400240200d417b6a0e020201000b200d41796a210f41012115410621040c010b4100210f410121150b41e401102f220e450d15200e41003b018a01200e4100360200200e20142f018a0122172004417f736a220d3b018a01201620044103746a29000021192008201441046a221a2004410c6c6a221841086a28020036020020022018290200370350200d410c4f0d0f2017200441016a22186b200d470d10200e418c016a201620184103746a200d4103741085051a200e41046a201a2018410c6c6a200d410c6c1085051a201420043b018a01200241c0006a41086a221a200828020036020020022002290350370340200e201420151b2204418c016a210d02400240200f41016a221520042f018a0122184d0d00200d200f4103746a2010370000200441046a210d0c010b200d20154103746a200d200f4103746a220d2018200f6b22174103741086051a200d2010370000200441046a220d2015410c6c6a200d200f410c6c6a2017410c6c1086051a0b200d200f410c6c6a220d2013370204200d20113602002004201841016a3b018a01200241306a41086a221b201a2802002204360200200220022903402210370330200241106a41086a2216200436020020022010370310201428020022040d02410021110c030b2016200d41016a220e4103746a2016200d4103746a22042017200d6b220f4103741086051a20042010370000201441046a2204200e410c6c6a2004200d410c6c6a200f410c6c1086051a0b2004200d410c6c6a22042013370204200420113602002014201741016a3b018a01200641016a21060c040b4100211120192110200e211c034020142f0188012114200241206a41086a221d201628020036020020022002290310370320200422152f018a012217410b490d024100211841042104024020144105490d0020142104024002402014417b6a0e020201000b201441796a211441012118410621040c010b4100211441012118410521040b419402102f220e450d13200e41003b018a01200e4100360200200e20152f018a01221e2004417f736a220d3b018a012015418c016a221f20044103746a29000021192008201541046a22202004410c6c6a220f41086a2802003602002002200f290200370350200d410c4f0d0f201e200441016a220f6b200d470d10200e418c016a201f200f4103746a200d4103741085051a200e41046a2020200f410c6c6a200d410c6c1085051a201520043b018a01201a200828020036020020022002290350370340200e2f018a01220d41016a211e200d410c4f0d11201720046b2204201e470d12201141016a2111200e41e4016a2015200f4102746a41e4016a20044102741085051a4100210402400340200e20044102746a41e4016a280200220f20043b018801200f200e3602002004200d4f0d0120042004200d496a2204200d4d0d000b0b201b201a28020036020020022002290340370330200e201520181b220f418c016a21180240201441016a2204200f2f018a01220d4b221e0d00201820044103746a201820144103746a200d20146b4103741086051a0b201820144103746a20103700002008201d28020036020020022002290320370350200f41046a21170240201e0d0020172004410c6c6a20172014410c6c6a200d20146b410c6c1086051a0b200d41016a211820172014410c6c6a22172002290350370200201741086a2008280200360200200f41e4016a21170240201441026a221e200d41026a221d4f0d002017201e4102746a201720044102746a200d20146b4102741086051a0b201720044102746a201c360200200f20183b018a0102402004201d4f0d00200f20144102746a41e8016a210403402004280200220d201441016a22143b018801200d200f360200200441046a210420182014470d000b0b2016201b2802003602002002200229033037031020192110200e211c20152114201528020022040d000b0b2008201628020036020020022002290310370350419402102f2204450d11200420073602e401200441003b018a0120044100360200200741003b0188012007200436020020122011470d1220042f018a01220d410b4f0d13201241016a21122004200d41016a220f3b018a012004200d4103746a418c016a20193700002004200d410c6c6a220d410c6a2008280200360200200d41046a2002290350370200200441e4016a200f4102746a200e360200200e200f3b018801200e200436020020042107200641016a21060c020b2015418c016a21040240201720144d220e0d00200420144103746a220d41086a200d201720146b4103741086051a0b200420144103746a20103700002008201628020036020020022002290310370350201441016a2104201541046a210d0240200e0d00200d2004410c6c6a200d2014410c6c6a201720146b410c6c1086051a0b201741016a210f200d2014410c6c6a220d2002290350370200200d41086a2008280200360200201541e4016a210d201741026a21180240200e0d002014410274200d6a41086a200d20044102746a201720146b4102741086051a0b2015200f3b018a01200d20044102746a201c3602000240200420184f0d0020152004417f6a22044102746a41e8016a210d0340200d280200220e200441016a22043b018801200e2015360200200d41046a210d200f2004470d000b0b200641016a21060c010b2014200e6a220441086a220d280200210e200d2013370200200441046a220d2802002104200d20113602002004450d00200e450d00200410300b200c2003470d000b0b200020123602042000410c6a2006360200200041086a20073602002002200636025820022007360254200220123602500c020b200f10300b200220063602582002200736025420022012360250200241d0006a10b203410121050b2000200536020020012001280204417f6a3602040c010b200041013602000b200241e0006a24000f0b102c000b200d410b41e8a2c2001042000b41f8a2c200412841a0a3c200102d000b200d410b41e8a2c2001042000b41f8a2c200412841a0a3c200102d000b201e410c41f8a3c2001042000b41f8a2c200412841a0a3c200102d000b102a000b41eaa0c2004130419ca1c200102d000b41aca1c200412041cca1c200102d000b2004200e41f0f5c100104a000b9a0303067f017e017f200028020421012000410036020402402001450d00024020002802002202450d00034020012802e40121012002417f6a22020d000b0b024020002802082203450d004100210003400240024002400240200020012f018a01490d0041002100034041002102024020012802002204450d00200041016a210520012f0188012106200421020b024041940241e40120001b450d00200110300b024020020d00410021010c050b2005210020022101200620022f018a014f0d000b20022006410c6c6a41046a2104024020050d00200221010c020b200641027420026a41e8016a280200210102402005417f6a2200450d00034020012802e40121012000417f6a22000d000b0b410021000c020b20012000410c6c6a41046a210420002106200121020b200641016a21000b20022006410c6c6a41086a2902002107200428020021080b2008450d022003417f6a210302402007a7450d00200810300b20030d000b0b41002102034020012802002100024041940241e40120021b450d00200110300b2002417f6a21022000210120000d000b0b0b8b0d01077f230041c0006b22022400024041ca01102f2203450d0020002003360200200041046a220441ca01360200200341003b000041022105200041086a410236020020042802002104024002400240200128020022034184016a2d00004103470d00410221010240024020044102470d00200242828080801037021420022000280200360210200241306a41084101200241106a1069200241306a41086a280200210120022802304101460d0120002002280234360200200041046a2001360200200041086a28020021010b200028020020016a41043a0000200041086a2201200128020041016a3602000c020b2001450d020c030b0240024002400240024002400240024020044102470d00200242828080801037021420022000280200360210200241306a41084101200241106a1069200241306a41086a280200210120022802304101460d0120002002280234360200200041046a2001360200200041086a28020021050b200028020020056a4184013a0000200041086a2201200128020041016a36020020032d00600e050102030405060b20010d080c070b200241003a00102000200241106a410110642000200341e1006a412010640c040b200241013a00102000200241106a410110640c030b200241023a00102000200241106a41011064200341e4006a280200200341ec006a280200200010a6010c020b200241033a00102000200241106a410110642000200341e1006a412010640c010b200241043a00102000200241106a410110642000200341e1006a411410640b02400240024020032d0084010e03000102030b200241003a00102000200241106a41011064200020034185016a41c00010640c020b200241013a00102000200241106a41011064200020034185016a41c00010640c010b200241023a00102000200241106a41011064200020034185016a41c10010640b0240024020032802004101460d00200241003a00102000200241106a41011064200341086a200010b1020c010b200241013a00102000200241106a41011064200341046a2000109b020b200041086a28020021034104102f2201450d01200242043702042002200136020002400240024002402003417e6a220341c000490d00200341808001490d012003418080808004490d02200241033a00102002200241106a41011064200220033602102002200241106a410410640c030b200220034102743a00102002200241106a410110640c020b200220034102744101723b01102002200241106a410210640c010b200220034102744102723602102002200241106a410410640b0240200041086a2206280200220141014d0d00200228020821052002280200210420022000360220410021032006410036020020022004360224200241286a200420056a2207360200200241023602102002411c6a2000280200220641026a220836020020022001417e6a220136021420022008360218200241246a21080240024020010d002000200810c1030c010b034020052003460d012002200420036a220141016a360224200620036a20012d00003a00002000200028020841016a360208200341016a22034102470d000b0240024020052003470d00200420036a21010c010b200241106a200520036b10b302024020022802202205280208220320022802102200470d0020022802282107200228022421010c010b200020036b2106200528020020036a21002002280224210320022802282107034020072003460d022002200341016a2201360224200020032d00003a00002005200528020841016a360208200041016a2100200121032006417f6a22060d000b0b200720016b2203417f4c0d020240024020030d00410121000c010b2003102f2200450d040b200241003602382002200336023420022000360230200241306a200810c1032002280234210720022802302108024020022802382203450d00200241106a200310b30220022802202205280208220020022802102201460d00200120006b2106200528020020006a21002008210103402003450d01200020012d00003a00002005200528020841016a3602082003417f6a2103200141016a2101200041016a21002006417f6a22060d000b0b2007450d00200810300b024020022802142203450d000240200228021022052002280220220641086a22012802002200460d002006280200220620006a200620056a20031086051a0b2001200320006a3602000b02402002280204450d00200410300b200241c0006a24000f0b4102200141c4e3c1001042000b102c000b102a000bc80f02087f027e230041e0036b22022400410041002802e8ae422203410120031b3602e8ae4202400240024020030e020001020b410041b480c200360284ad42410041b480c200360280ad42410041023602e8ae420c010b034041002802e8ae424101460d000b0b41052103024002400240024002400240024010000e06010203040506000b41acf9c1004134200241186a41e0f9c10041f0f9c1001034000b410021030c040b410121030c030b410221030c020b410321030c010b410421030b410020033602e4ae42200242808080808020370204200220013602142002200041bc8ec20020011b3602102002200241106a360200200241f0026a200210a203024020022802f4022201450d00200241fc026a280200210420022802f802210520022802f002210320024190026a20024180036a41e0001085051a200241f0026a200210a303024020022802f00222060d0002402004450d00200441246c21002001210303400240024002400240024020032d00000e050400010204030b2003410c6a280200450d03200341086a28020010300c030b2003410c6a280200450d02200341086a28020010300c020b2003410c6a280200450d01200341086a28020010300c010b200341086a280200450d00200341046a28020010300b200341246a21032000415c6a22000d000b0b2005450d01200541246c450d01200110300c010b200241f0026a41086a280200210720022802f4022108200241b0016a20024190026a41e0001085051a200241f0026a200210b103024020022802f0024101470d0002402004450d00200441246c21002001210303400240024002400240024020032d00000e050400010204030b2003410c6a280200450d03200341086a28020010300c030b2003410c6a280200450d02200341086a28020010300c020b2003410c6a280200450d01200341086a28020010300c010b200341086a280200450d00200341046a28020010300b200341246a21032000415c6a22000d000b0b02402005450d00200541246c450d00200110300b02402007450d00200741c8016c21012006210003400240200022034184016a2d00004103460d00200341e0006a2d00004102470d00200341e8006a280200450d00200341e4006a28020010300b200341c8016a2100200310b202200141b87e6a22010d000b0b2008450d01200841c8016c450d01200610300c010b200241a0016a41086a2200200241f0026a410c6a280200360200200220022902f4023703a001200241286a200241b0016a41e0001085051a20024190016a20073602002002418c016a2008360200200241186a410c6a2004360200200241186a41086a20053602002002419c016a20002802003602002002200636028801200220022903a001370294012002200136021c2002200336021820024194016a21090240024020022802002802040d0020024190026a41086a200941086a28020036020020022009290200370390020c010b02402004450d00200441246c210303400240024002400240024020012d00000e050400010204030b2001410c6a280200450d03200141086a28020010300c030b2001410c6a280200450d02200141086a28020010300c020b2001410c6a280200450d01200141086a28020010300c010b200141086a280200450d00200141046a28020010300b200141246a21012003415c6a22030d000b0b02402005450d00200541246c450d00200228021c10300b02402007450d00200741c8016c21012006210003400240200022034184016a2d00004103460d00200341e0006a2d00004102470d00200341e8006a280200450d00200341e4006a28020010300b200341c8016a2100200310b202200141b87e6a22010d000b0b02402008450d00200841c8016c450d00200610300b200910b203410021010b2001450d00200241b0016a41086a20024190026a41086a28020022033602002002200229039002220a3703b001200241f0026a41086a2003360200200241013b01242002420037021c2002200a3703f002200241f0026a10b20302402004450d00200441246c21002001210303400240024002400240024020032d00000e050400010204030b2003410c6a280200450d03200341086a28020010300c030b2003410c6a280200450d02200341086a28020010300c020b2003410c6a280200450d01200341086a28020010300c010b200341086a280200450d00200341046a28020010300b200341246a21032000415c6a22000d000b0b02402005450d00200541246c450d00200110300b02402007450d00200741c8016c21012006210003400240200022034184016a2d00004103460d00200341e0006a2d00004102470d00200341e8006a280200450d00200341e4006a28020010300b200341c8016a2100200310b202200141b87e6a22010d000b0b02402008450d00200841c8016c450d00200610300b200241003602f802200242013703f002200241013a009002200241f0026a20024190026a41011064200241003a009002200241f0026a20024190026a41011064200241f0026a410010a50120023502f802210a20023502f002210b200241186a10b203200241e0036a2400200b200a422086840f0b200241fc026a410d3602002002412c6a41023602002002420237021c200241bc81c100360218200241043602f4022002418c83c1003602f0022002200241f0026a3602282002200241186a3602f802200241186a41cc81c100103a000bab0f05057f027e057f017e017f23004190086b22022400410041002802e8ae422203410120031b3602e8ae4202400240024020030e020001020b410041b480c200360284ad42410041b480c200360280ad42410041023602e8ae420c010b034041002802e8ae424101460d000b0b41052103024002400240024002400240024010000e06010203040506000b41acf9c1004134200241d0016a41e0f9c10041f0f9c1001034000b410021030c040b410121030c030b410221030c020b410321030c010b410421030b41002104410020033602e4ae4220024280808080802037020c20022001360284072002200041bc8ec20020011b220336028007200220024180076a360208024002400240024002402001450d0020022001417f6a360284072002200341016a3602800702400240024020032d00000e03020001030b410121040c010b410221040b200241a0036a200241086a10ab0220022802a00322014102460d00200241dc016a200241a0036a41047241c4011085052103200220013602d801200220043a00d0010240024020022802082802040d00200241a0036a200341c4011085051a0c010b200241d8016a21010240200241dc026a2d00004103460d00200241b8026a2d00004102470d00200241c0026a280200450d00200241bc026a28020010300b200110b202410221010b20014102460d00200241086a200241a0036a41c4011085051a200220013602a003200241a0036a410472200241086a41c4011085051a2002200241a0036a36028007200241d0016a20024180076a10b303024020022802d401450d0020022802d00110300b200241d0016a200241a0036a41c8011085051a20024180076a200241d0016a10b00220022d008007210120022f008107210320022d0083072100200241f0056a20024180076a410472418c011085051a41012104024020014101460d0041042103200241e8046a200241f0056a41046a4188011085051a20024180076a200241e8046a10e1010240024020022d00c805450d00410021050c010b410121010240024020022802e8044101460d0020024181023b00d1010c010b200241d0016a200241e8046a41047210810220022d00d00121010b410121040240200141ff01714101460d0020024180026a2d00002104200241fc016a2802002100200241f8016a2802002101200241f4016a2802002106200241ec016a2802002103200241e8016a2802002105200241d0016a41106a2903002107200241d0016a41086a29030021084100210941002802e88f42220a210b4100210c0240024002400240200241f0016a280200220d450d00200241003602d001200241f0056a200d4104200d41044b1bad420c7e220ea7200e422088a745410274200241d0016a1069200241f8056a280200210f20022802f0054101460d0120022802f405210b200f410c6e210c0b200b2005200d410c6c1085051a20000d010c070b200f450d010c090b200241003602d001200241f0056a20004104200041044b1bad420c7e220ea7200e422088a745410274200241d0016a1069200241f8056a280200210f024020022802f0054101460d0020022802f405210a200f410c6e21090c060b200f0d080b102c000b20022f00d10120022d00d30141107472220541ffffff077122014110762106200141087621030b0c030b2003200041107472220541ffffff07712201411076210620014108762103410121040c030b200241146a410d360200200241e4016a4102360200200242023702d401200241bc81c1003602d0012002410436020c200241a483c1003602082002200241086a3602e0012002200241d0016a360210200241d0016a41cc81c100103a000b200a20062000410c6c1085051a200441ff0171210f4100210402402003450d002003410c6c450d00200510300b200f410047210f02402001450d002001410c6c450d00200610300c010b0b200241e8046a10b2020b4101102f2201450d00200242013702d401200220013602d001024002402004450d00200241013a00a003200241d0016a200241a0036a41011064200520032006200241d0016a10ac0320022802d801210520022802d00121060c010b200241003a00a003200241d0016a200241a0036a41011064200220083703a003200241d0016a200241a0036a41081064200241d0016a200d10a5010240200d450d00200b200d410c6c6a2103200b210103402001280200200141086a280200200241d0016a10a6012001410c6a22012003470d000b0b200241d0016a200010a50102402000450d00200a2000410c6c6a2103200a210103402001280200200141086a280200200241d0016a10a6012001410c6a22012003470d000b0b200220073703a003200241d0016a200241a0036a410810642002200f3a00a003200241d0016a200241a0036a4101106420022802d001210620022802d801210520040d000240200d450d00200d410c6c2103200b210103400240200141046a280200450d00200128020010300b2001410c6a2101200341746a22030d000b0b0240200c450d00200c410c6c450d00200b10300b02402000450d002000410c6c2103200a210103400240200141046a280200450d00200128020010300b2001410c6a2101200341746a22030d000b0b2009450d002009410c6c450d00200a10300b20024190086a24002005ad4220862006ad840f0b102a000bf11203067f017e0b7f23004190036b22022400410041002802e8ae422203410120031b3602e8ae4202400240024020030e020001020b410041b480c200360284ad42410041b480c200360280ad42410041023602e8ae420c010b034041002802e8ae424101460d000b0b41052103024002400240024002400240024010000e06010203040506000b41acf9c1004134200241c0016a41e0f9c10041f0f9c1001034000b410021030c040b410121030c030b410221030c020b410321030c010b410421030b410020033602e4ae4220024280808080802037028403200220013602e4022002200041bc8ec20020011b3602e0022002200241e0026a36028003200241c0016a20024180036a10a203200241cc016a280200210420022802c801210520022802c401210620022802c0012107200241e0006a200241d0016a41e0001085051a02400240024002402006450d00024002402002200241e0006a41e0001085052201280280032802040d00200141e0006a200141e0001085051a0c010b02402004450d00200441246c21002006210303400240024002400240024020032d00000e050400010204030b2003410c6a280200450d03200341086a28020010300c030b2003410c6a280200450d02200341086a28020010300c020b2003410c6a280200450d01200341086a28020010300c010b200341086a280200450d00200341046a28020010300b200341246a21032000415c6a22000d000b0b02402005450d00200541246c450d00200610300b410021060b2006450d00200141cc016a2004360200200141c8016a2005360200200120063602c401200120073602c001200141d0016a200141e0006a41e0001085051a2004ad42247e2208422088a70d012008a72209417f4c0d010240024020090d004104210a0c010b2009102f220a450d030b2001200a3602b0022001200941246e220b3602b402024020094124490d0041002100200b210c034020092000460d01200c450d050240024002400240024002400240200620006a22032d00000e06010203040500010b2003410c6a280200220d417f4c0d09200341046a280200210302400240200d0d004101210e0c010b200d102f220e450d0b0b200e2003200d108505410876210f41052110200d21110c050b2001200341146a2900003703c0022001200341196a2900003700c502200341016a2f0000200341036a2d0000411074722112200341046a280000220e410876210f200341106a28000021022003410c6a280000210d200341086a2800002111410021100c040b200341106a2802002202417f4c0d07200341036a2d00002112200341016a2f0000210d200341086a2802002113200341046a2d0000210e410121104101211102402002450d002002102f2211450d090b200d20124110747221122011201320021085051a2002210d0c030b200341106a2802002202417f4c0d06200341036a2d00002112200341016a2f0000210d200341086a2802002110200341046a2d0000210e0240024020020d00410121110c010b2002102f2211450d080b200d20124110747221122011201020021085051a410221102002210d0c020b200341106a2802002202417f4c0d05200341036a2d00002112200341016a2f0000210d200341086a2802002110200341046a2d0000210e0240024020020d00410121110c010b2002102f2211450d070b200d20124110747221122011201020021085051a410321102002210d0c010b41042110200341046a280200210e2003410c6a280200210d200341086a28020021114100210f0b200a20006a220320103a0000200341036a20124110763a0000200341016a20123b0000200341106a20023602002003410c6a200d360200200341086a2011360200200341046a200f410874200e41ff017172360200200341146a20012903c0023702002003411c6a200141c0026a41086a290300370200200041246a2100200c417f6a220c0d000b0b200120043602b8022007200141c0016a41106a200141b0026a410010b7032001200141c0016a10ed01200141e0006a41186a200141186a290300370300200141e0006a41106a200141106a290300370300200141e0006a41086a200141086a29030037030020012001290300370360200141e0026a41dca4c000410610ab01200141c0026a4190e0c100410910ab01200120073602fc022001200141fc026a4104108b023703d0022001418c036a200141fc026a41046a3602002001200141d0026a41086a360284032001200141fc026a360288032001200141d0026a36028003200141f0026a20014180036a10b80320012802f802220041206a2203417f4c0d010240024020030d00410121020c010b2003102f2202450d030b200141003602d802200120033602d402200120023602d002200141d0026a200141e0026a411010b903200141d0026a200141c0026a411010b903200141d0026a20012802f0022203200010b903024020012802f402450d00200310300b20012802d002210320012802d80221004120102f2202450d022001422037028403200120023602800320014180036a200141e0006a4120106420032000200128028003220220012802880341002802fcad421103000240200128028403450d00200210300b024020012802d402450d00200310300b02402004450d00200441246c2100200a210303400240024002400240024020032d00000e050400010204030b2003410c6a280200450d03200341086a28020010300c030b2003410c6a280200450d02200341086a28020010300c020b2003410c6a280200450d01200341086a28020010300c010b200341086a280200450d00200341046a28020010300b200341246a21032000415c6a22000d000b0b024020094124490d00200b41246c450d00200a10300b02402004450d00200441246c21002006210303400240024002400240024020032d00000e050400010204030b2003410c6a280200450d03200341086a28020010300c030b2003410c6a280200450d02200341086a28020010300c020b2003410c6a280200450d01200341086a28020010300c010b200341086a280200450d00200341046a28020010300b200341246a21032000415c6a22000d000b0b02402005450d00200541246c450d00200610300b20014190036a240041003502dc94420f0b2002410c6a410d360200200241d4016a4102360200200242023702c401200241bc81c1003602c00120024104360204200241c083c100360200200220023602d0012002200241c0016a360208200241c0016a41cc81c100103a000b102c000b102a000b200b200b41a0e4c1001033000b9e0a01057f230041c0006b220424004102200410ae012004410036020041fc8ac20041102004410441002802fcad42110300200441186a22054200370300200441106a22064200370300200441086a2207420037030020044200370300200441206a41dca4c000410610ab012007200441206a41086a220829000037030020042004290020370300200441206a41acc0c100410610ab0120052008290000370300200620042900203703002004200036022020044120200441206a410441002802fcad4211030020054200370300200642003703002007420037030020044200370300200441206a41dca4c000410610ab012007200829000037030020042004290020370300200441206a41e0c0c100410610ab012005200829000037030020062004290020370300024002402002280208220841246c41046a2207417f4c0d00200228020021050240024020070d00410121020c010b2007102f2202450d020b200441003602382004200736023420042002360230200441306a200810a5010240200841246c2207450d000340200441206a200510e701200441306a200428022022082004280228106402402004280224450d00200810300b200541246a21052007415c6a22070d000b0b2004412020042802302205200428023841002802fcad4211030002402004280234450d00200510300b200441186a4200370300200441106a4200370300200441086a2205420037030020044200370300200441206a41dca4c000410610ab012005200441206a41086a220729000037030020042004290020370300200441206a41ccc0c100410a10ab01200641086a2007290000370000200620042900203700004120102f2205450d012004422037022420042005360220200441206a2001412010642004412020042802202205200428022841002802fcad4211030002402004280224450d00200510300b200441206a2000417f6a10fe0320042802282107200428022021054120102f2208450d01200442203702042004200836020020042001412010642005200720042802002208200428020841002802fcad4211030002402004280204450d00200810300b02402004280224450d00200510300b200441186a22084200370300200441106a22024200370300200441086a2205420037030020044200370300200441206a41dca4c000410610ab012005200441206a41086a220729000037030020042004290020370300200441206a4198bfc100410b10ab01200641086a22002007290000370000200620042900203700002004412041002802b4ad4211050002402003450d0020084200370300200242003703002005420037030020044200370300200441206a41dca4c000410610ab012005200729000037030020042004290020370300200441206a418cc1c100410610ab0120002007290000370000200620042900203700002004412041002802b4ad4211050020084200370300200242003703002005420037030020044200370300200441206a41dca4c000410610ab012005200729000037030020042004290020370300200441206a41d0c1c100410a10ab0120002007290000370000200620042900203700002004412041002802b4ad4211050020084200370300200242003703002005420037030020044200370300200441206a41dca4c000410610ab012005200729000037030020042004290020370300200441206a41f8dfc100410b10ab0120002007290000370000200620042900203700002004412041002802bcad421105000b200441c0006a24000f0b102c000b102a000beb07010c7f230041206b220224002001410c6a2802002103200128020821042001280204210502400240024002400240024002400240024002400240200128020022060d0020040d012000420137020041002107200041086a220841003602000c060b200520066b2101024020040d00200121090c020b2001200320046b6a220920014f0d01200041046a420037020041002109200041002802dc9442220a360200200041086a21080c020b200320046b21090b2009417f4c0d070240024020090d004101210a410021090c010b2009102f220a450d070b2000200a360200200041086a22084100360200200041046a2009360200024020060d0020040d02410021070c040b200520066b2107024020040d00200721010c030b2007200320046b6a220120074f0d020b0240024020052006460d00200641016a210b0c010b20032004460d044100210b20042106200441016a21040b200041046a210c4100210d034020042107200b210120062d00002104024002400240200d2009470d0002400240024020010d0020070d01410021060c020b200520016b21062007450d01417f2006200320076b6a220b200b2006491b21060c010b200320076b21060b200920096b417f200641016a220b200b2006491b22064f0d00200920066a22062009490d0a2009410174220b2006200b20064b1b22064108200641084b1b21060240024020090d00200241003602100c010b20024101360218200220093602142002200a3602100b200220064101200241106a10692002280208210920022802004101460d0120002002280204220a360200200c20093602000b200a200d6a20043a00002008200d41016a220d3602002001450d0120052001460d01200141016a210b20072104200121060c020b20090d070c080b2007450d0420032007460d04200741016a21044100210b200721060c000b0b200320046b21010b410021070240200920014f0d00200941017422072001200720014b1b22014108200141084b1b21010240024020090d00200241003602100c010b200241106a41086a4101360200200220093602142002200a3602100b200220014101200241106a1069200241086a280200210120022802004101460d0320002002280204220a360200200041046a2001360200200041086a28020021070b200a20076a210102402006450d0020052006460d002005200720066b6a21070340200120062d00003a0000200141016a21012005200641016a2206470d000b0b2004450d0020032004460d00200421060340200120062d00003a0000200141016a21012003200641016a2206470d000b2003200720046b6a21070b200820073602000b200241206a24000f0b2001450d010b102a000b102c000b880201047f230041206b2203240002400240200041046a2802002204200041086a28020022056b2002490d00200028020021040c010b0240200520026a22062005490d00200441017422052006200520064b1b22054108200541084b1b21050240024020040d00200341003602100c010b200341106a41086a410136020020032004360214200320002802003602100b200320054101200341106a1069200341086a2802002105024020032802004101460d00200020032802042204360200200041046a2005360200200041086a28020021050c020b2005450d00102a000b102c000b200420056a200120021085051a200041086a2200200028020020026a360200200341206a24000bea0402037f027e230041306b22022400410041002802e8ae422203410120031b3602e8ae4202400240024020030e020001020b410041b480c200360284ad42410041b480c200360280ad42410041023602e8ae420c010b034041002802e8ae424101460d000b0b41052103024002400240024002400240024010000e06010203040506000b41acf9c1004134200241086a41e0f9c10041f0f9c1001034000b410021030c040b410121030c030b410221030c020b410321030c010b410421030b410020033602e4ae4220024280808080802037020c200220013602242002200041bc8ec20020011b3602202002200241206a3602082002200241086a10ac020240024002400240024020022802000d002002280224220120022802042203490d002003417f4c0d020240024020030d00410121000c010b2003102f2200450d042000410020031087051a200228022421010b024020012003490d002000200228022020031085052104200228022422012003490d052002200120036b22013602242002200228022020036a3602202001450d022003450d010b200010300b2002412c6a410d3602002002411c6a41023602002002420237020c200241bc81c10036020820024104360224200241d883c1003602202002200241206a3602182002200241086a360228200241086a41cc81c100103a000b02402003450d00200410300b4105102f2203450d012002420537020c20022003360208200241013a0020200241086a200241206a41011064200241086a410010a5012002350210210520023502082106200241306a240020062005422086840f0b102c000b102a000b2003200141f0f5c100104a000ba50502027f027e230041c0006b22022400410041002802e8ae422203410120031b3602e8ae4202400240024020030e020001020b410041b480c200360284ad42410041b480c200360280ad42410041023602e8ae420c010b034041002802e8ae424101460d000b0b41052103024002400240024002400240024010000e06010203040506000b41acf9c1004134200241106a41e0f9c10041f0f9c1001034000b410021030c040b410121030c030b410221030c020b410321030c010b410421030b410020033602e4ae422002428080808080203702142002200136023c2002200041bc8ec20020011b22033602382002200241386a360210024002400240024002402001450d0020022001417f6a220136023c2002200341016a360238024002400240024020032d00000e020100040b200241086a200241106a10ac0220022802080d03200228023c2200200228020c2201490d032001417f4c0d040240024020010d00410121030c010b2001102f2203450d062003410020011087051a200228023c21000b20002001490d022003200228023820011085051a200228023c22002001490d062002200020016b220036023c2002200228023820016a36023820000d012001ad220442208620048421040c070b20010d02410021030c060b2001450d010b200310300b200241346a410d360200200241246a410236020020024202370214200241bc81c1003602102002410436022c200241f483c1003602282002200241286a3602202002200241106a360230200241106a41cc81c100103a000b102c000b102a000b2001200041f0f5c100104a000b2002420037022c200241002802dc944236022802402003450d002004a7450d00200310300b200241106a200241286a1087022002350218210420023502102105200241c0006a240020052004422086840b920b05077f017e037f017e027f230041d0006b22022400410041002802e8ae422203410120031b3602e8ae4202400240024020030e020001020b410041b480c200360284ad42410041b480c200360280ad42410041023602e8ae420c010b034041002802e8ae424101460d000b0b41052103024002400240024002400240024010000e06010203040506000b41acf9c1004134200241206a41e0f9c10041f0f9c1001034000b410021030c040b410121030c030b410221030c020b410321030c010b410421030b410020033602e4ae42024020010d00200241386a22034200370300200241306a22014200370300200241206a41086a2204420037030020024200370320200241c0006a41e2a4c000410f10ab012004200241c0006a41086a220529000037030020022002290040370320200241c0006a41e0dfc000410d10ab012003200529000037030020012002290040370300200241086a200241206a4120108502200228020c210620022802082107200241106a10aa0120034200370300200142003703002004420037030020024200370320200241c0006a41e2a4c000410f10ab012004200529000037030020022002290040370320200241c0006a41f8e0c000410e10ab012003200529000037030020012002290040370300200241c0006a200241206a10bd03200228024021082002290244210920034200370300200142003703002004420037030020024200370320200241c0006a41e2a4c000410f10ab012004200529000037030020022002290040370320200241c0006a41e8dec000411910ab0120032005290000370300200120022900403703002002200241206a41201085022002280204210a2002280200210b20034200370300200142003703002004420037030020024200370320200241c0006a41e2a4c000410f10ab012004200529000037030020022002290040370320200241c0006a419cdfc000411110ab012003200529000037030020012002290040370300200241c0006a200241206a41201086022002280240210c2002290244210d2002280210210e2002280214210f200228021821042002420137032020024100360228200241206a2009420020081b2209422088a7220510a501200841002802e88f4220081b210802402005450d0020082005410c6c6a21012008210303402003280200200341086a280200200241206a10a6012003410c6a22032001470d000b0b200241206a200410a50102402004450d00200e20044104746a2101200e2103034020022003280200360240200241206a200241c0006a41041064200341046a2802002003410c6a280200200241206a10a601200341106a22032001470d000b0b200a4100200b1b21032006410020071b210102400240200c0d00200241003a0040200241206a200241c0006a410110640c010b200241013a0040200241206a200241c0006a41011064200c200d422088a7200241206a10a6010b2009a7210620022003360240200241206a200241c0006a4104106420022001360240200241206a200241c0006a41041064200228022021072002350228210902402005450d002005410c6c21012008210303400240200341046a280200450d00200328020010300b2003410c6a2103200141746a22010d000b0b02402006450d002006410c6c450d00200810300b02402004450d0020044104742101200e41086a2103034002402003280200450d002003417c6a28020010300b200341106a2103200141706a22010d000b0b0240200f41ffffffff0071450d00200e10300b0240200c450d00200da7450d00200c10300b200241d0006a240020094220862007ad840f0b200241cc006a410d360200200241346a410236020020024202370224200241bc81c100360220200241043602442002419484c1003602402002200241c0006a3602302002200241206a360248200241206a41cc81c100103a000bc00201027f230041e0006b220224002002412036020c20022001360208200241106a2001412041002802d4ad4211040002400240200228021022010d00200041003602000c010b200228021421032002200241106a41086a28020036022420022001360220200241c8006a200241206a10eb01024002402002280248450d0020002002290348370200200041086a200241c8006a41086a2802003602000c010b2002420037022c200241002802dc94423602282002410936023c2002200241086a3602382002200241286a360244200241dc006a41013602002002420137024c200241a0e6c1003602482002200241386a360258200241c4006a41d0adc000200241c8006a10321a2002280228200228023010ad010240200228022c450d00200228022810300b200041003602000b2003450d00200110300b200241e0006a24000bfa0101077f230041d0076b22022400200128020421032001280200210402400240200128020822052001410c6a2802002206470d00200421070c010b2004210702400340200522082d0000410b460d01200241e8036a200841e8031085051a2002200241e8036a10ce022007200241e80310850541e8036a21072006200841e8036a2205470d000b0b200841e8036a21050b024020062005460d00034020051096012006200541e8036a2205470d000b0b2001410036020420002003360204200020043602002001410c6a41002802fce441220536020020012005360208200120053602002000200720046b41e8036d360208200241d0076a24000b6c01017f230041206b22022400200241d086c10036020420022000360200200241086a41106a200141106a290200370300200241086a41086a200141086a29020037030020022001290200370308200241fcefc100200241046a41fcefc100200241086a41d886c100104b000b6c01017f230041206b22022400200241b887c10036020420022000360200200241086a41106a200141106a290200370300200241086a41086a200141086a29020037030020022001290200370308200241ecefc100200241046a41ecefc100200241086a41c887c100104b000bed0201067f230041206b2202240002400240200041046a2802002203200041086a28020022046b200141046a2802002205200128020022066b2207490d00200028020021030c010b0240200420076a22062004490d00200341017422042006200420064b1b22044108200441084b1b21040240024020030d00200241003602100c010b200241106a41086a410136020020022003360214200220002802003602100b200220044101200241106a1069200241086a2802002104024020022802004101460d00200020022802042203360200200041046a2004360200200041086a2802002104200141046a2802002105200128020021060c020b2004450d00102a000b102c000b024020062005460d002001200641016a360200200141046a210502400340200320046a20062d00003a0000200128020022062005280200460d01200441016a21042001200641016a3602000c000b0b200441016a21040b200041086a2004360200200241206a24000bb707030c7f057e037f230041a0016b22022400410041003502e0ac42200241206aad7c42adfed5e4d485fda8d8007e421f883e02e0ac422001280220220341016a2104200141246a280200220541046a2106200141346a21072001412c6a21082005280200417f7321094100210a02402003450d0020052004ad42307ea76b210a0b200520046a21042007280200210b200828020021082001280230210c2009418081828478712101200241206a41086a21070340024002400240024020010d000340024020062004490d00410021010c040b200541c07e6a210520062802002101200641046a220321062001418081828478712201418081828478460d000b2001418081828478732209417f6a200971210d200321060c010b2001417f6a200171210d200121090b200d21012008417f6a2108200541002009684103766b41306c6a220341706a280200220d0d010b02402008450d0003400240024020010d000340200620044f0d04200541c07e6a210520062802002101200641046a220321062001418081828478712201418081828478460d000b2001418081828478732201417f6a2001712107200321060c010b2001417f6a20017121070b2001682103200721012005410020034103766b41306c6a220341746a280200450d00200341706a2802001030200721010c000b0b0240200a450d00200a10300b0240200b450d00200c10300b200241a0016a24000f0b2003417c6a2802002109200341746a290200210e200341506a2203290200210f200341086a2902002110200341106a2902002111200241186a200341186a2902002212370300200241106a2011370300200241086a20103703002002200f370300200241e0006a41186a22032012370300200241e0006a41106a22132011370300200241e0006a41086a221420103703002002200f370360200241206a2000200241e0006a10ca01024020022903204201520d00200241e0006a41286a200741286a290300370300200241e0006a41206a200741206a2903003703002003200741186a2903003703002013200741106a2903003703002014200741086a290300370300200220072903003703602002200936029c012002200e370294012002200d36029001200241e0006a20024190016a10cb010c010b024020022802302214417c6a22032802002213417f4a0d00201441706a21150240201441746a2214280200450d0020152802001030200328020021130b2014200e3702002015200d3602002003201320096a3602000c010b2003201320096a360200200ea7450d00200d10300c000b0ba40204017f027e037f017e230041306b22022400420021034200210402400240024020012d00000e0b0101010202020202020200020b200241206a200141046a28020010c3032002280220410047ad2104200229032821030c010b42002104200141186a2802004198046c2205450d00200141106a280200220620056a2107420021030340024020062d00004107470d002006410c6a28020041e8036c2205450d00200628020421010340200241106a200110c4034201210402402002280210450d000c040b200229031821082002200110c3032002290300a70d03200141e8036a2101200820037c20022903087c2103200541987c6a22050d000b0b20064198046a22062007470d000b420021040b2000200337030820002004370300200241306a24000bda0203017f027e027f230041f0016b220224004200210342c0843d210402400240024002400240024020012d00000e0b0404040505050005050501050b0240200141106a22052802004102470d002002200141f8006a2802003602ec012002200141f0006a2802003602e80120024188016a200241e8016a10e901024020022802880122064102460d002002412c6a20024188016a41047241dc001085051a0b024020052802004102460d00200510b2020b20012006360210200141146a2002412c6a41dc001085051a20064102460d020b200241186a200510e101200229031842c0843d7c21040c040b200241086a200141046a28020010c4032002290308a7450d010b420121030c020b200229031042c0843d7c21040c010b200141186a2802004198046c2201450d00200141e87b6a4198046ead42c0843d7e428089fa007c21040b2000200437030820002003370300200241f0016a24000bca0101027f230041106b2202240002400240024002402000280200220341c000490d00200341808001490d012003418080808004490d02200241033a000020012002410110642002200336020020012002410410640c030b200220034102743a000020012002410110640c020b200220034102744101723b010020012002410210640c010b2002200341027441027236020020012002410410640b2002200041046a10c6032001200228020022002002280208106402402002280204450d00200010300b200241106a24000b960401047f230041106b22022400024002400240024020012802004101470d002001410c6a280200220341046a2204417f4c0d02200128020421010240024002400240024020040d0020004100360208200042013702000c010b2004102f2205450d07200041003602082000200436020420002005360200200341c000490d01200341808001490d022003418080808004490d030b200241033a000c20002002410c6a410110642002200336020c20002002410c6a4104106420002001200310640c040b200220034102743a000c20002002410c6a4101106420002001200310640c030b200220034102744101723b010c20002002410c6a4102106420002001200310640c020b2002200341027441027236020c20002002410c6a4104106420002001200310640c010b200141086a280200220341046a2204417f4c0d012001280204210102400240024002400240024020040d0020004100360208200042013702000c010b2004102f2205450d07200041003602082000200436020420002005360200200341c000490d01200341808001490d022003418080808004490d030b2000410310c0042002200336020c20002002410c6a410410640c030b2000200341027410c0040c020b200220034102744101723b010c20002002410c6a410210640c010b2002200341027441027236020c20002002410c6a410410640b20002001200310640b200241106a24000f0b102c000b102a000b130020004101360200200041086a41023602000b3400200041f1a4c00036020420004100360200200041146a4101360200200041106a41d887c100360200200041086a420d3702000b130020004100360204200041bc8ec2003602000bc40101017f230041306b220324000240024020022001413c6a41201088050d002003200141306a10cb030c010b200341106a41186a200241186a290000370300200341106a41106a200241106a290000370300200341106a41086a200241086a2900003703002003200229000037031002402001200341106a10d3012202450d00200228020c4101480d002003200210cb030c010b200341003602000b20002003290300370204200041003602002000410c6a200341086a280200360200200341306a24000b5c01027f0240024020012802082202417f4c0d00200128020021030240024020020d00410121010c010b2002102f2201450d020b20002002360204200020013602002001200320021085051a200020023602080f0b102c000b102a000b3400200041fea4c00036020420004100360200200041146a4100360200200041106a41bc8ec200360200200041086a420a3702000b960201027f200041003a000020002001290000370001200041216a200141206a2d00003a0000200041196a200141186a290000370000200041116a200141106a290000370000200041096a200141086a29000037000002404110102f2201450d00200141a0a5c00036020c20014101360208200142818080801037020020002001360224024020002d0001450d004110102f2202450d0120024188a5c00036020c20024101360208200242818080801037020020012001280200417f6a2203360200024020030d002001280208200128020c2802001102000240200128020c280204450d00200128020810300b200141046a22032003280200417f6a220336020020030d00200110300b200020023602240b0f0b102a000be90b03027f027e097f230041f0016b2203240041002104200341003602282003200236022420032001360220420321050240024020020d00420021060c010b410121042003410136022842002106024020012d000022070d00420021050c010b0240024002400240024002400240024002400240200741c00171220841c001460d0002402008418001460d00200841c000470d0b2007413f712207413f470d05410221044141210703402004417f6a20024f0d03200320043602280240200120046a417f6a2d0000220841ff01460d00200820076b21070c0c0b200741817e6a2107200441016a2204418302470d000b41ffff03210741820221040c0a0b2007413f712207413f470d05410221044141210703402004417f6a20024f0d03200320043602280240200120046a417f6a2d0000220841ff01460d00200820076b21070c0a0b200741817e6a2107200441016a2204418302470d000b41ffff03210741820221040c080b2007413f712207413f470d05410221044141210703402004417f6a20024f0d03200320043602280240200120046a417f6a2d0000220841ff01460d00200820076b21070c080b200741817e6a2107200441016a2204418302470d000b41ffff03210741820221040c060b2004417f6a21040c080b2004417f6a21040c070b2004417f6a21040c060b410121040c040b410121040c020b410121040b2007ad422086428002842106420121050c020b2007ad4220862106420121050c010b2007ad4220862106420221050b2006422088a72107024002400240024002400240024002402005200684a741ff01710e0401020300010b20004181023b01000c060b200041003a0000200041046a41003602000c050b20074101712209450d03200420024f0d01200120046a2d00004110490d03200041013b01000c040b20074101712208450d010240200420024f0d00200120046a2d00004110490d02200041013b01000c040b2004200241d08dc1001033000b2004200241e08dc1001033000b024002402004200741016a4101766a220120024b0d0020032001360228200341186a200341206a106f2003280218450d0120004181023b01000c030b20004181023b01000c020b024020032802282207200328021c6a220220032802244b0d00200041003a0000200041106a20083602002000410c6a2001360200200041086a2004360200200041186a2002360200200041146a2007360200200041046a4101360200200320023602280c020b20004181023b01000c010b02402004200741016a4101766a220a20024d0d0020004181023b01000c010b2003200a360228024002400240200a41026a220720024b0d00200320073602280240200a417d4b0d002001200a6a2f00002107410021014100210b0240200642800283500d00200341106a200341206a106f20032802100d042003280228220c20032802146a220d20032802244b0d032003200d3602284101210b0b200341023602e401200341023602d801200341023602cc01200341023602c001200341023602b401200341023602a8012003410236029c0120034102360290012003410236028401200341023602782003410236026c2003410236026020034102360254200341023602482003410236023c20034102360230200341306a2102200741ffff0371210e024003400240200e2001410f7176410171450d00200341086a200341206a106f20032802080d02024020032802282208200328020c220f6a220720032802244d0d0020004181023b01000c080b200241086a2007360200200241046a20083602002002200f412047360200200320073602280b2002410c6a2102200141016a22014110470d000b200041206a200341306a41c0011085051a2000411c6a200d360200200041186a200c360200200041146a200b360200200041106a20093602002000410c6a200a360200200041086a2004360200200041046a4104360200200041003a00000c050b20004181023b01000c040b200a200741c08dc1001048000b20004181023b01000c020b20004181023b01000c010b20004181023b01000b200341f0016a24000bf60b05027f017e017f017e077f230041a0016b220224002002200136021c20022000360218200241d0006a200241186a10d0030240024020022802502203450d0020022902542104200241d0006a200241186a10d003024020022802502205450d00200229025421060240200228021c22004104490d002000417c6a2107200228021822082800002109200241d0006a410472210a410021000240034020072000460d012002200820006a220141056a360218200a20006a200141046a2d00003a00002002200041016a22013602502001210020014120470d000b20024198016a41026a200241dd006a2d00003a000020024194016a41026a200241e4006a2d00003a0000200220022f01543b019c01200220022d00563a009e012002200720016b36021c2002200241db006a2f00003b0198012002200241e2006a2f01003b019401200241f0006a2802002100200241ec006a2802002101200241e5006a2800002107200241de006a28010021082002280057210a20024190016a41026a200241eb006a2d00003a00002002200241e9006a2f00003b0190010c040b2002410036021c0b2006a7450d00200510300b02402004a7450d00200310300b410021030c010b410021030b02402003450d00200241106a41026a220b20024198016a41026a2d00003a00002002410c6a41026a220c20024194016a41026a2d00003a0000200241086a41026a220d20024190016a41026a2d00003a0000200220022d009e013a0016200220022f019c013b0114200220022f0198013b0110200220022f0194013b010c200220022f0190013b0108200241e0006a2006370300200241ef006a200a360000200220093602682002200536025c2002200437025420022003360250200241ee006a20022d00163a0000200241f6006a2008360100200220022f01143b016c200241f3006a20022f01103b0000200241f5006a200b2d00003a0000200241fa006a20022f010c3b0100200241fc006a200c2d00003a0000200241fd006a200736000020024183016a200d2d00003a000020024181016a20022f01083b000020024188016a200036020020024184016a2001360200200241186a200241d0006a10d10320024100360258200242013703502002280218210020022802202201200241d0006a10a803200241d0006a2000200110640240024020022802240d00200241003a009c01200241d0006a2002419c016a410110640c010b200241013a009c01200241d0006a2002419c016a41011064200228022421002002412c6a2802002201200241d0006a10a803200241d0006a2000200110640b20022802302109200241386a2802002208200241d0006a10a80302402008450d0020092008410c6c6a210720092100034020002802002101200041086a2802002203200241d0006a10a803200241d0006a2001200310642000410c6a22002007470d000b0b200228023c2105200241c4006a280200220a200241d0006a10a8030240200a450d002005200a4104746a21072005210003402002200028020036029c01200241d0006a2002419c016a41041064200041046a28020021012000410c6a2802002203200241d0006a10a803200241d0006a200120031064200041106a22002007470d000b0b2002200228024836029c01200241d0006a2002419c016a410410642002200228024c36029c01200241d0006a2002419c016a4104106420022802502103200235025821040240200228021c450d00200228021810300b024020022802242200450d00200241286a280200450d00200010300b02402008450d002008410c6c21012009210003400240200041046a280200450d00200028020010300b2000410c6a2100200141746a22010d000b0b0240200241346a2802002200450d002000410c6c450d00200910300b0240200a450d00200a4104742101200541086a2100034002402000280200450d002000417c6a28020010300b200041106a2100200141706a22010d000b0b0240200241c0006a28020041ffffffff0071450d00200510300b200241a0016a240020044220862003ad840f0b4190f6c1004112200241d0006a41a4f6c10041b4f6c1001034000be50302067f017e02400240024020012802042202450d00200128020022032d0000210420012002417f6a22053602042001200341016a3602000240200441037122064103460d000240024020060e03040001040b2005450d0220032d0001210620012002417e6a22053602042001200341026a3602002006410874200472220241ffff0371418002490d02200241fcff037141027621040c040b20054103490d01200341036a2d0000210620032f0001210720012002417c6a22053602042001200341046a3602002007200641107472410874200472220241ffff034d0d01200241027621040c030b200441034b0d0020054104490d002003280001210420012002417b6a22053602042001200341056a360200200441ffffffff034b0d020b200041003602000f0b200441027621040b024002400240024020052004490d002004417f4c0d010240024020040d00410121020c010b2004102f2202450d032002410020041087051a200128020421050b024020052004490d002002200128020020041085052103200128020422022004490d0420002004ad2208422086200884370204200020033602002001200220046b3602042001200128020020046a3602000f0b200210300b200041003602000f0b102c000b102a000b2004200241f0f5c100104a000be56b04077f017e407f037e23004190116b220224002002200141146a2802003602a40d2002200128020c3602a00d200241e8066a200241a00d6a10a0040240024002400240024020022802ec062203450d00200241f4066a280200210420022802f006210520022802e8062106200241d80b6a200241f8066a41e0001085051a200241f0006a200241a00d6a109b01024020022802700d002002280274220720022802a40d41c8016e2208200820074b1bad42c8017e2209422088a70d052009a72208417f4c0d050240024020080d004108210a0c010b2008102f220a450d050b200841c8016e210b0240024002402007450d00200241e8066a410472210c20024190106a410b6a210d20024181076a210e200241fa066a210f200241e8066a410b6a2110200241a5106a21112002419e106a211220024197106a2113200241e8066a410172211441002115410021160340200241e8006a200241a00d6a109b010240024020022802680d000240200228026c2217450d004100210842002109034002402008417f470d0020094280808080705a0d0e2009422088a721080b200942ffffffff0f83200841016a2208ad4220868421092017417f6a22170d000b0b20022802a40d2217450d0020022802a00d22082d0000211820022017417f6a22193602a40d2002200841016a3602a00d201841ff00714104470d004103211a02402018411874411875417f4a0d00024002402019450d0020082d0001211a20022017417e6a22183602a40d2002200841026a3602a00d410121194101211b024002400240024002400240201a0e050005010203060b2017417e6a211c41002118417d211a0340201c2018460d06200c20186a200820186a221d41026a2d00003a00002002201841016a221b3602e80620022017201a6a3602a40d2002201d41036a3602a00d201a417f6a211a201b2118201b4120470d000b201320102f00003b00002012200f2f01003b01002011200e2f00003b0000201341026a201041026a2d00003a0000201241026a200f41026a2d00003a0000201141026a200e41026a2d00003a00002002200c2f01003b0190102002200c41026a2d00003a00921020022800ef06210820022801f606211820022800fd06211a20022002290284073703a8102002201a3600a1102002201836019a1020022008360093102017201b6b417e6a21184100211b410121190c040b200241e0006a200241a00d6a109b0120022802600d0420022802a40d221720022802642208490d042008417f4c0d120240024020080d00410121180c010b2008102f2218450d122018410020081087051a20022802a40d21170b024020172008490d00201820022802a00d2008108505211820022802a40d221720084f0d032008201741f0f5c100104a000b201810300c040b2017417e6a211c41002118417d211a0340201c2018460d04200c20186a200820186a221d41026a2d00003a00002002201841016a221b3602e80620022017201a6a3602a40d2002201d41036a3602a00d201a417f6a211a201b2118201b4120470d000b201320102f00003b00002012200f2f01003b01002011200e2f00003b0000201341026a201041026a2d00003a0000201241026a200f41026a2d00003a0000201141026a200e41026a2d00003a00002002200c2f01003b0190102002200c41026a2d00003a00921020022800ef06210820022801f606211820022800fd06211a20022002290284073703a8102002201a3600a1102002201836019a1020022008360093102017201b6b417e6a21184103211b410121190c020b200241e8066a200241a00d6a10a70120022d00e8064101460d0220024190106a41106a201441106a28000036020020024190106a41086a201441086a29000037030020022014290000370390104104211b4101211920022802a40d21180c010b20022008ad22094220862009843700971020022018360093102002201720086b22183602a40d200220022802a00d20086a3602a00d4102211b410021190b200241f8006a41026a221e20022d0092103a0000200241900a6a41086a221f200d41086a290000370300200241900a6a410d6a200d410d6a290000370000200220022f0190103b01782002200d2900003703900a200228009710211d200228009310211c02402018450d0020022802a00d221a2d0000210820022018417f6a22203602a40d2002201a41016a3602a00d024002400240024020080e03000102040b200241e8066a200241a00d6a10a90120022d00e8064101460d0320022d00a807212120022802a407212220022d00a307212320022d00a207212420022d00a1072125200228009d07212620022d009c07212720022d009b07212820022d009a072129200228019607212a20022d009507212b20022d009407212c20022d009307212d200228008f07212e20022d008e07212f20022d008d07213020022d008c072131200228028807213220022d008707213320022d008607213420022d0085072135200228008107213620022d008007213720022d00ff06213820022d00fe06213920022801fa06213a20022d00f906213b20022d00f806213c20022d00f706213d20022800f306213e20022d00f206213f20022d00f106214020022d00f006214120022802ec06214220022d00eb06214320022d00ea06214420022d00e90621454100211a0c020b200241e8066a200241a00d6a10a90120022d00e8064101460d0220022d00a807212120022802a407212220022d00a307212320022d00a207212420022d00a1072125200228009d07212620022d009c07212720022d009b07212820022d009a072129200228019607212a20022d009507212b20022d009407212c20022d009307212d200228008f07212e20022d008e07212f20022d008d07213020022d008c072131200228028807213220022d008707213320022d008607213420022d0085072135200228008107213620022d008007213720022d00ff06213820022d00fe06213920022801fa06213a20022d00f906213b20022d00f806213c20022d00f706213d20022800f306213e20022d00f206213f20022d00f106214020022d00f006214120022802ec06214220022d00eb06214320022d00ea06214420022d00e90621454101211a0c010b41002108200241003602e8062018417e6a2117034020202008460d02200c20086a201a20086a221841016a2d00003a00002002201841026a3602a00d2002200841016a22183602e806200220173602a40d2017417f6a211720182108201841c100470d000b20022d00ec06214520022d00ed06214420022d00ee06214320022800ef06214220022d00f306214120022d00f406214020022d00f506213f20022801f606213e20022d00fa06213d20022d00fb06213c20022d00fc06213b20022800fd06213a20022d008107213920022d008207213820022d0083072137200228028407213620022d008807213520022d008907213420022d008a072133200228008b07213220022d008f07213120022d009007213020022d009107212f200228019207212e20022d009607212d20022d009707212c20022d009807212b200228009907212a20022d009d07212920022d009e07212820022d009f07212720022802a007212620022d00a407212520022d00a507212420022d00a607212320022800a707212220022d00ab07212120022d00ac0721464102211a0b200241a8056a41026a201e2d00003a0000200241e8066a41086a201f290300370300200241e8066a41106a200241900a6a41106a290300370300200220022f01783b01a805200220022903900a3703e8060c020b2019201d45720d00201c10300b4103211a2047211d2048211c2049211b0b20024180106a41026a2208200241a8056a41026a2d00003a0000200241f8086a41086a2217200241e8066a41086a290300370300200241f8086a41106a2218200241e8066a41106a290300370300200220022f01a8053b018010200220022903e8063703f808201a4103460d01200241800a6a41026a20082d00003a0000200241c8036a41086a2017290300370300200241c8036a41106a2018290300370300200220022f0180103b01800a200220022903f8083703c803201d2147201c2148201b21490b200241e8066a200241a00d6a10e90120022802e8062117200241900a6a200c41dc001085051a20174102470d01201a4103460d00201b41ff01714102470d00201d450d00201c10300b02402016450d00200a211703400240201722084184016a2d00004103460d00200841e0006a2d00004102470d00200841e8006a280200450d00200841e4006a28020010300b200841c8016a2117200810b202201541b87e6a22150d000b0b200b450d05200b41c8016c0d040c050b200241c8056a200241900a6a41dc001085051a200241f00f6a41026a2208200241800a6a41026a2d00003a0000200241c8026a41086a2218200241c8036a41086a290300370300200241c8026a41106a2219200241c8036a41106a290300370300200220022f01800a3b01f00f200220022903c8033703c802200241e80e6a200241c8056a41dc001085051a200241b8036a41026a222020082d00003a0000200241d8016a41086a22082018290300370300200241d8016a41106a22182019290300370300200220022f01f00f3b01b803200220022903c8023703d801200241e00d6a200241e80e6a41dc001085051a200241d40b6a41026a221920202d00003a0000200241c8046a41086a22202008290300370300200241c8046a41106a221e2018290300370300200220022f01b8033b01d40b200220022903d8013703c80402402016200b470d0020164101742208201641016a220b2008200b4b1b22084104200841044b1bad42c8017e2209422088a74541037421082009a7210b0240024020160d00200241003602e8060c010b200241083602f0062002200a3602e8062002201641c8016c3602ec060b200241900a6a200b2008200241e8066a106920022802980a2108024020022802900a4101470d0020080d0a0c0b0b20022802940a210a200841c8016e210b0b200a201641c8016c6a22082017360200200841046a200241e00d6a41dc001085051a200841e0006a201b3a0000200841e8006a201d360200200841e4006a201c360200200841e1006a20022f01d40b3b0000200841e3006a20192d00003a0000201e29030021092020290300214a20022903c804214b200841c0016a2022360000200841b9016a2026360000200841b2016a202a360000200841ab016a202e360000200841a4016a20323600002008419d016a203636000020084196016a203a3600002008418f016a203e36000020084188016a2042360000200841c4016a20213a0000200841bf016a20233a0000200841be016a20243a0000200841bd016a20253a0000200841b8016a20273a0000200841b7016a20283a0000200841b6016a20293a0000200841b1016a202b3a0000200841b0016a202c3a0000200841af016a202d3a0000200841aa016a202f3a0000200841a9016a20303a0000200841a8016a20313a0000200841a3016a20333a0000200841a2016a20343a0000200841a1016a20353a00002008419c016a20373a00002008419b016a20383a00002008419a016a20393a000020084195016a203b3a000020084194016a203c3a000020084193016a203d3a00002008418e016a203f3a00002008418d016a20403a00002008418c016a20413a000020084187016a20433a000020084186016a20443a000020084185016a20453a000020084184016a201a3a0000200841ec006a204b370200200841f4006a204a370200200841fc006a2009370200200841c5016a20463a0000201541c8016a2115201641016a2208211620082007470d000c020b0b200a450d02410021070b200241e8066a200241a00d6a10eb0120022802e80622160d0302402007450d00200741c8016c21154100210803400240200a20086a22174184016a2d00004103460d00201741e0006a2d00004102470d00201741e8006a280200450d00201741e4006a28020010300b201710b2022015200841c8016a2208470d000b0b200b450d01200b41c8016c450d010b200a10300b02402004450d00200441246c21172003210803400240024002400240024020082d00000e050400010204030b2008410c6a280200450d03200841086a28020010300c030b2008410c6a280200450d02200841086a28020010300c020b2008410c6a280200450d01200841086a28020010300c010b200841086a280200450d00200841046a28020010300b200841246a21082017415c6a22170d000b0b2005450d00200541246c450d00200310300b410021030c010b20022902ec06214c200241e8066a200241d80b6a41e0001085051a0b024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002402003450d00200241f8006a200241e8066a41e0001085051a200220012802083602dc0b200220012802003602d80b200241e8066a200241d80b6a10a00420022802ec06450d01200241d8016a200241e8066a41f0001085051a200241d4026a2004360200200241d0026a2005360200200220033602cc02200220063602c802200241d8026a200241f8006a41e0001085052108200241003602e00b200242013703d80b4120102f2217450d41200242203702ec06200220173602e806200241e8066a200841201064200241d80b6a20022802e806220820022802f0061064024020022802ec06450d00200810300b200241c8026a200241d80b6a10ee014120102f2208450d41200242203702ec06200220083602e806200241e8066a200241f8026a41201064200241d80b6a20022802e806220820022802f0061064024020022802ec06450d00200810300b4120102f2208450d41200242203702ec06200220083602e806200241e8066a20024198036a41201064200241d80b6a20022802e806220820022802f0061064024020022802ec06450d00200810300b200241d80b6a200410a5010240200441246c2208450d000340200241e8066a200310e701200241d80b6a20022802e806221720022802f0061064024020022802ec06450d00201710300b200341246a21032008415c6a22080d000b0b200241b8036a41086a200241d80b6a41086a280200360200200220022903d80b3703b803200241c8036a200241c8026a41f0001085051a200241c0046a2007360200200241bc046a200b3602002002200a3602b804200241e8066a200241d8016a10ed01200241e8066a200241d8036a41201088050d024101102f2203450d41200341003a0000410041003502e0ac42200241e8066aad7c42adfed5e4d485fda8d8007e42218922093e02e0ac42200241d0006a41e0acc200ad224a42a4bb99fed1a0bbb02385420042adfed5e4d485fda8d8004200108405200241306a200942a4bb99fed1a0bbb02385420042adfed5e4d485fda8d8004200108405200241c0006a204a42c5ecb3fec9ecf7c2c30085420042adfed5e4d485fda8d8004200108405200241206a200942c5ecb3fec9ecf7c2c30085420042adfed5e4d485fda8d8004200108405200241106a2009204a85420042adfed5e4d485fda8d800420010840520024190106a418de2c100410110652002419c056a200241a8106a29030037020020024194056a200241a0106a2903003702002002418c056a20024190106a41086a290300370200200241fc046a428180808010370200200241f0046a4200370300200241ec046a41bcf5c100360200200220022903901037028405200220033602f804200241003602e80420022009200241d0006a41086a2903002002290350857c200241106a41086a29030020022903108542cf829ebbefefde82147c224b893703c8042002200241206a41086a290300200229032085204a7c204b423088893703e00420022009200241c0006a41086a2903002002290340857c204b422088893703d8042002200241306a41086a290300200229033085204a7c204b421088893703d004204ca72104024002400240204c422088a7220a410c6c220b0d00201621030c010b2016410c6a21080240201628020022170d00200821030c010b200a410c6c41746a21150340200241e8066a200241c8046a2017200841786a2902002209422088a710c60102402009a7450d00201710300b2015450d02201541746a2115200828020021172008410c6a2203210820170d000b0b2016200b6a2003460d002016200a410c6c6a211703402003410c6a21080240200341046a280200450d00200328020010300b2008210320172008470d000b0b20024184056a210802402004450d002004410c6c450d00201610300b200241a8056a41186a200241a0026a290300370300200241a8056a41106a200241d8016a41c0006a290300370300200241a8056a41086a200241d8016a41386a29030037030020022002290388023703a80520024188026a21030240200241a8056a20084120108805450d00200241e8066a41186a200341186a290000370300200241e8066a41106a200341106a290000370300200241e8066a41086a200341086a290000370300200220032900003703e806200241c8046a200241e8066a10d3012208450d04200828020c41004c0d040b200241e8066a200241c8046a41e0001085051a200241e0076a200341186a290200370300200241d8076a200341106a290200370300200241d0076a200341086a290200370300200220032902003703c80720024190106a418de2c1004101106520024180086a20024190106a41186a290300370300200241f8076a220320024190106a41106a290300370300200241f0076a20024190106a41086a29030037030020022002290390103703e807200241c8056a200241e8066a41a0011085051a200241e0086a41003a0000200241dc086a410036020020024184086a4200370200200241fc076a41003a000020034100360200200241ac076a4200370200200241b4076a420037020020024190086a420037030020024198086a4200370300200241e8066a41386a420037030020024190076a4200370300200241e8066a41186a4200370300200241002802e88f42223c3602e40820024100360298072002410036028807200241003602f806200242003703f006200241003602e806200241f0086a41003a0000200241e8086a4200370300200241003a00d8092002410036029c09200241003b018c0a2002200241f8086a3602880a2002200241c8056a3602840a2002200241e8066a3602800a41002d00e8ad420d04410041013a00e8ad4241002802e4ad422104410041113602e4ad4241002d0080ae424101710d05410041013a0080ae4241002802fcad422116410041123602fcad4241002d00d8ad424101710d06410041013a00d8ad4241002802d4ad42210a410041133602d4ad4241002d00d0ad420d07410041013a00d0ad4241002802ccad42210b410041143602ccad4241002d00b8ad424101710d08410041013a00b8ad4241002802b4ad422105410041153602b4ad4241002d00f8ad420d09410041013a00f8ad4241002802f4ad422107410041163602f4ad4241002d00c0ad424101710d0a410041013a00c0ad4241002802bcad422118410041173602bcad4241002d00b0ad424101710d0b410041013a00b0ad4241002802acad422106410041183602acad4241002d00a8ad420d0c410041013a00a8ad4241002802a4ad42210c410041193602a4ad4241002d00e0ad424101710d0d410041013a00e0ad4241002802dcad42211a4100411a3602dcad4241002d0088ae424101710d0e410041013a0088ae424100280284ae42211b4100411b360284ae4241002d00f0ad424101710d0f410041013a00f0ad4241002802ecad42211d4100411c3602ecad4241002d00c8ad424101710d10410041013a00c8ad4241002802c4ad42211c4100411d3602c4ad4241002d00a8ae424101710d11410041013a00a8ae4241002802a4ae4221194100411e3602a4ae4241002d00b8ae420d12410041013a00b8ae4241002802b4ae4221204100411f3602b4ae4241002d00c8ae420d13410041013a00c8ae4241002802c4ae42211e410041203602c4ae4241002d0090ae424101710d14410041013a0090ae42410028028cae4221454100412136028cae4241002d00d0ae420d15410041013a00d0ae4241002802ccae422144410041223602ccae4241002d00a0ae420d16410041013a00a0ae42410028029cae4221434100412336029cae4241002d0098ae424101710d17410041013a0098ae424100280294ae42214141004124360294ae4241002d00c0ae420d18410041013a00c0ae4241002802bcae422140410041253602bcae4241002d00b0ae424101710d19410041013a00b0ae4241002802acae42213f410041263602acae4241002d00e0ae424101710d1a410041013a00e0ae4241002802dcae42213e410041273602dcae4241002d00d8ae424101710d1b410041013a00d8ae4241002802d4ae42213d410041283602d4ae42200241900a6a41386a200141386a280200360200200241900a6a41306a200141306a290200370300200241900a6a41286a200141286a290200370300200241900a6a41206a200141206a290200370300200241900a6a41186a200141186a290200370300200241900a6a41106a200141106a290200370300200241900a6a41086a200141086a290200370300200220012902003703900a200241cc0a6a200241c8036a41fc001085051a200241d00b6a200241b8036a41086a280200360200200220022903b8033703c80b410028028cad4241016a220341004c0d1c02404100280290ad424101460d00200241e80e6a4100280288ad42110200200241d80b6a41086a200241e80e6a41086a290300370300200220022903e80e3703d80b410028028cad420d1e4100417f36028cad4202404100280290ad42450d00024041002802a0ad422208450d004100280298ad422103200841027421080340200328020022172017280200417f6a3602000240200328020022172802000d00201741046a22172017280200417f6a3602002003280200221741046a2802000d00201710300b200341046a21032008417c6a22080d000b0b410028029cad4241ffffffff0371450d004100280298ad4210300b41004101360290ad42410020022903d80b370294ad424100200241e00b6a29030037029cad424100410028028cad42220341016a36028cad42200341026a220341004c0d1f0b4100200336028cad424100280294ad420d1f4100417f360294ad424114102f2203450d41200341e0ecc1003602102003410036020820034281808080103702002003200241800a6a36020c0240024002400240024041002802a0ad422208410028029cad42470d00200841016a22172008490d47200841017422152017201520174b1b22174104201741044b1b221741ffffffff03712017464102742115201741027421170240024020080d00200241003602d80b0c010b200241e00b6a4104360200200220084102743602dc0b20024100280298ad423602d80b0b200241e80e6a20172015200241d80b6a1069200241f00e6a280200210820022802e80e4101460d01410020022802ec0e360298ad424100200841027636029cad4241002802a0ad4221080b4100280298ad4220084102746a2003360200410041002802a0ad4241016a3602a0ad4241004100280294ad4241016a360294ad42200241d80b6a200241900a6a41c4011085051a200241a00d6a41386a200241900a6a41386a280200360200200241a00d6a41306a200241900a6a41306a290300370300200241a00d6a41286a200241900a6a41286a290300370300200241a00d6a41206a200241900a6a41206a290300370300200241a00d6a41186a200241900a6a41186a290300370300200241a00d6a41106a200241900a6a41106a290300370300200241a00d6a41086a200241900a6a41086a290300370300200220022903900a3703a00d200241e00d6a200241940c6a221541fc001085051a200241e40e6a200241980d6a280200360200200220022903900d3702dc0e41002802e8ac4241016a220341004c0d24024041002802ecac424101460d0020024190106a41002802e4ac42110200200241e80e6a41086a20024190106a41086a29030037030020022002290390103703e80e41002802e8ac420d264100417f3602e8ac42024041002802ecac42450d00024041002802fcac422208450d0041002802f4ac422103200841027421080340200328020022172017280200417f6a3602000240200328020022172802000d00201741046a22172017280200417f6a3602002003280200221741046a2802000d00201710300b200341046a21032008417c6a22080d000b0b41002802f8ac4241ffffffff0371450d0041002802f4ac4210300b410041013602ecac42410020022903e80e3702f0ac424100200241f00e6a2903003702f8ac42410041002802e8ac42220341016a3602e8ac42200341026a220341004c0d270b410020033602e8ac4241002802f0ac420d274100417f3602f0ac424110102f2203450d452003410036020820034281808080103702002003200241a00d6a36020c41002802fcac42220841002802f8ac42470d03200841016a22172008490d46200841017422012017200120174b1b22174104201741044b1b221741ffffffff037120174641027421012017410274211720080d01200241003602e80e0c020b2008450d450c440b200241f00e6a4104360200200220084102743602ec0e200241002802f4ac423602e80e0b20024190106a20172001200241e80e6a106920024198106a28020021082002280290104101460d3f41002002280294103602f4ac42410020084102763602f8ac4241002802fcac4221080b41002802f4ac4220084102746a2003360200410041002802fcac4241016a3602fcac42410041002802f0ac4241016a3602f0ac42200241e80e6a200241e00d6a4188011085051a20024190106a201541fc001085051a20024190106a10a403200241a8106a2203420037030020024190106a41106a2208420037030020024190106a41086a22174200370300200242003703901020024180106a41e2a4c000410f10ab01201720024180106a41086a221529000037030020022002290080103703901020024180106a419cdfc000411110ab0120032015290000370300200820022900801037030020024180106a20024190106a4120108602200228028010213b2002290284102109200342003703002008420037030020174200370300200242003703901020024180106a41e2a4c000410f10ab012017201529000037030020022002290080103703901020024180106a41f8e0c000410e10ab0120032015290000370300200820022900801037030020024180106a20024190106a10bd032002280280102101200229028410214a200342003703002008420037030020174200370300200242003703901020024180106a41e2a4c000410f10ab012017201529000037030020022002290080103703901020024180106a41e8dec000411910ab01200320152900003703002008200229008010370300200241086a20024190106a4120108502200228020c213a20022802082139200241f00f6a10aa01200342003703002008420037030020174200370300200242003703901020024180106a41e2a4c000410f10ab012017201529000037030020022002290080103703901020024180106a41e0dfc000410d10ab01200320152900003703002008200229008010370300200220024190106a412010850220022802042103200228020021082000411c6a204a420020011b37020020002001203c20011b360218200020022903f00f3702242000412c6a200241f00f6a41086a280200360200200020022902e40f370200200041086a200241ec0f6a28020036020020002003410020081b3602342000203a410020391b360230200041106a20093702002000203b36020c41002802f0ac420d244100417f3602f0ac42024041002802fcac422203450d0041002003417f6a22033602fcac4241002802f4ac4220034102746a2802002203450d0020032003280200417f6a220836020020080d00200341046a22082008280200417f6a220836020020080d00200310300b410041002802f0ac4241016a3602f0ac42410041002802e8ac42417f6a3602e8ac42024020022802a40d450d0020022802a00d10300b0240200241b00d6a280200450d0020022802ac0d10300b4100280294ad420d254100417f360294ad42024041002802a0ad422203450d0041002003417f6a22033602a0ad424100280298ad4220034102746a2802002203450d0020032003280200417f6a220836020020080d00200341046a22082008280200417f6a220836020020080d00200310300b41004100280294ad4241016a360294ad424100410028028cad42417f6a36028cad422004450d26410020043602e4ad42410041003a00e8ad422016450d27410020163602fcad42410041003a0080ae42200a450d284100200a3602d4ad42410041003a00d8ad42200b450d294100200b3602ccad42410041003a00d0ad422005450d2a410020053602b4ad42410041003a00b8ad422007450d2b410020073602f4ad42410041003a00f8ad422018450d2c410020183602bcad42410041003a00c0ad422006450d2d410020063602acad42410041003a00b0ad42200c450d2e4100200c3602a4ad42410041003a00a8ad42201a450d2f4100201a3602dcad42410041003a00e0ad42201b450d304100201b360284ae42410041003a0088ae42201d450d314100201d3602ecad42410041003a00f0ad42201c450d324100201c3602c4ad42410041003a00c8ad422019450d33410020193602a4ae42410041003a00a8ae422020450d34410020203602b4ae42410041003a00b8ae42201e450d354100201e3602c4ae42410041003a00c8ae422045450d364100204536028cae42410041003a0090ae422044450d37410020443602ccae42410041003a00d0ae422043450d384100204336029cae42410041003a00a0ae422041450d3941002041360294ae42410041003a0098ae422040450d3a410020403602bcae42410041003a00c0ae42203f450d3b4100203f3602acae42410041003a00b0ae42203e450d3c4100203e3602dcae42410041003a00e0ae42203d450d3d200241e8066a41c0006a21034100203d3602d4ae42410041003a00d8ae420240200228029c09450d00200241f8086a106c0b20031090040240024020022802b40722174106490d00200241bc076a28020021150240200241c0076a2802002203450d002003410c6c2108201521030340200310d4032003410c6a2103200841746a22080d000b0b2017410c6c450d01201510300c010b2017450d00200241bc076a21032017410c6c21080340200310d4032003410c6a2103200841746a22080d000b0b2002280284082103200241003602840802402003450d0002402002280280082208450d00034020032802d80921032008417f6a22080d000b0b200241003602e00b200220033602dc0b200241003602d80b20022002280288083602e40b200241d80b6a10d9030b200228029008210320024100360290082003450d400240200228028c082208450d00034020032802900d21032008417f6a22080d000b0b2002280294082204450d3f200241d80b6a41186a210a200241f80b6a210b4100211703400240024002400240201720032f018e0d490d0041002117034041002108024020032802002200450d00201741016a210120032f018c0d2115200021080b024041c00d41900d20171b450d00200310300b024020080d00410221010c050b2001211720082103201520082f018e0d4f0d000b200820154107746a418c026a21162008201541186c6a41046a2100024020010d00200821030c020b201541027420086a41940d6a280200210302402001417f6a2217450d00034020032802900d21032017417f6a22170d000b0b410021170c020b200320174107746a418c026a21162003201741186c6a41046a210020172115200321080b201541016a21170b200241e80e6a41106a200041106a290200370300200241e80e6a41086a200041086a290200370300200220002902003703e80e200820154107746a22084190026a280200210120162802002100200241d80b6a20084194026a41f8001085051a0b200241e00d6a41106a2208200241e80e6a41106a290300370300200241e00d6a41086a2215200241e80e6a41086a290300370300200220022903e80e3703e00d200241900a6a200241d80b6a41f8001085051a200241d80b6a41106a2008290300370300200241d80b6a41086a2015290300370300200220022903e00d3703d80b200220013602f40b200220003602f00b200b200241900a6a41f8001085051a024020022802dc0b450d0020022802d80b10300b2004417f6a2104024020022802e80b450d0020022802e40b10300b200a10d90220040d000c400b0b41cfeac100411c20024180106a41eceac10041fceac1001034000b418cebc100411320024180106a41eceac10041a0ebc1001034000b41b0ebc100411341c4ebc100102d000b41d4ebc10041314188ecc100102d000b4198ecc100413541d0ecc100102d000b4198ecc100413541d0ecc100102d000b4198ecc100413541d0ecc100102d000b4198ecc100413541d0ecc100102d000b4198ecc100413541d0ecc100102d000b4198ecc100413541d0ecc100102d000b4198ecc100413541d0ecc100102d000b4198ecc100413541d0ecc100102d000b4198ecc100413541d0ecc100102d000b4198ecc100413541d0ecc100102d000b4198ecc100413541d0ecc100102d000b4198ecc100413541d0ecc100102d000b4198ecc100413541d0ecc100102d000b4198ecc100413541d0ecc100102d000b4198ecc100413541d0ecc100102d000b4198ecc100413541d0ecc100102d000b4198ecc100413541d0ecc100102d000b4198ecc100413541d0ecc100102d000b4198ecc100413541d0ecc100102d000b4198ecc100413541d0ecc100102d000b4198ecc100413541d0ecc100102d000b4198ecc100413541d0ecc100102d000b4198ecc100413541d0ecc100102d000b4198ecc100413541d0ecc100102d000b41aeaac000411820024180106a41c8aac00041d8aac0001034000b41b082c200411020024180106a41e8aac00041f8aac0001034000b41aeaac000411820024180106a41c8aac0004188abc0001034000b41b082c200411020024180106a41e8aac0004198abc0001034000b41aeaac000411820024180106a41c8aac00041d8aac0001034000b41b082c200411020024180106a41e8aac00041f8aac0001034000b41aeaac000411820024180106a41c8aac0004188abc0001034000b41b082c200411020024180106a41e8aac0004198abc0001034000b41b082c200411020024180106a41ace5c10041bce5c1001034000b41b082c200411020024180106a41ace5c10041bce5c1001034000b4180eec100412041a0eec1001050000b4180eec100412041a0eec1001050000b4180eec100412041a0eec1001050000b4180eec100412041a0eec1001050000b4180eec100412041a0eec1001050000b4180eec100412041a0eec1001050000b4180eec100412041a0eec1001050000b4180eec100412041a0eec1001050000b4180eec100412041a0eec1001050000b4180eec100412041a0eec1001050000b4180eec100412041a0eec1001050000b4180eec100412041a0eec1001050000b4180eec100412041a0eec1001050000b4180eec100412041a0eec1001050000b4180eec100412041a0eec1001050000b4180eec100412041a0eec1001050000b4180eec100412041a0eec1001050000b4180eec100412041a0eec1001050000b4180eec100412041a0eec1001050000b4180eec100412041a0eec1001050000b4180eec100412041a0eec1001050000b4180eec100412041a0eec1001050000b4180eec100412041a0eec1001050000b4180eec100412041a0eec1001050000b2008450d030c020b41002108034020032802002117024041c00d41900d20081b450d00200310300b2008417f6a21082017210320170d000b0b0240024020022802980822174106490d00200241a0086a28020021150240200241a4086a2802002203450d002003410c6c2108201521030340200310d6032003410c6a2103200841746a22080d000b0b2017410c6c450d01201510300c010b2017450d00200241a0086a21032017410c6c21080340200310d6032003410c6a2103200841746a22080d000b0b024020022802ec082208450d0020022802e4082103200841186c2108034002402003280200450d002003410c6a280200450d00200341086a28020010300b200341186a2103200841686a22080d000b0b024020022802e8082203450d00200341186c450d0020022802e40810300b200241c8056a106c20022802dc0121170240200241d8016a410c6a2802002203450d00200341246c21082017210303400240024002400240024020032d00000e050400010204030b2003410c6a280200450d03200341086a28020010300c030b2003410c6a280200450d02200341086a28020010300c020b2003410c6a280200450d01200341086a28020010300c010b200341086a280200450d00200341046a28020010300b200341246a21032008415c6a22080d000b0b0240200241e0016a2802002203450d00200341246c450d00201710300b20024190116a24000f0b102a000b102c000b8b0201057f230041206b2202240002400240024020012802042203450d002001280208210420012802002101200321050240034020032f01ae2b2106024020010d002001450d020c050b2001450d042001417f6a2101200320064102746a41b02b6a280200210320052802b02b21050c000b0b2000200136020c200041003602082000200536020420002001360200200041146a2006360200200041106a20033602000c010b4100210420004100360204200041106a41003602000b20002004360218200241206a24000f0b200241146a410136020020024201370204200241f4a9c2003602002002410436021c200241eca9c2003602182002200241186a360210200241fca9c200103a000b847107027f057e037f017e427f017e037f230041c0096b2204240002404101102f2205450d00200541003a0000410041003502e0ac42200441f8076aad22067c42adfed5e4d485fda8d8007e42218922073e02e0ac42200441e0016a41e0acc200ad220842a4bb99fed1a0bbb023852209420042adfed5e4d485fda8d8004200108405200441c0016a200742a4bb99fed1a0bbb02385420042adfed5e4d485fda8d8004200108405200441d0016a200842c5ecb3fec9ecf7c2c30085220a420042adfed5e4d485fda8d8004200108405200441b0016a200742c5ecb3fec9ecf7c2c30085420042adfed5e4d485fda8d8004200108405200441a0016a2007200885420042adfed5e4d485fda8d8004200108405200441f8076a418de2c10041011065200441c4026a200441f8076a41186a220b290000370200200441bc026a200441f8076a41106a220c290000370200200441b4026a200441f8076a41086a220d290000370200200441a4026a428180808010370200200441f0016a41286a4200370300200441f0016a41246a41bcf5c100360200200420042900f8073702ac02200420053602a002200441003602900220042007200441e0016a41086a29030020042903e001857c200441a0016a41086a29030020042903a0018542cf829ebbefefde82147c220e893703f0012004200441b0016a41086a29030020042903b0018520087c200e423088893703880220042007200441d0016a41086a29030020042903d001857c200e42208889370380022004200441c0016a41086a29030020042903c0018520087c200e421088893703f801200441d0026a41186a200341186a280200360200200441d0026a41106a200341106a290200370300200441d0026a41086a200341086a290200370300200420032902003703d002200441d8056a410772210f200441f8076a4101722110200441f8056a41e0006a2111200441d1066a211220044198056a4107722113200441f4046a2114200441f8076a410c6a211520044190036a41076a2116200441f8076a410b6a2117200441f8076a410d6a2118200441f8076a410e6a2119200441f8076a410f6a211a200441f8076a41116a211b200441f8076a41126a211c200441f8076a41136a211d200441f8076a41156a211e200441f8076a41166a211f200441f8076a41196a2120200441f8076a411a6a2121200441f8076a411b6a2122200441f8076a411c6a2123200441f8076a411d6a2124200441f8076a411e6a2125200441f8076a411f6a212620044199086a21272004419a086a21282004419b086a21294100212a4100212b4100212c41002802e88f42222d212e0240024002400240024002400240024003400240024020042802e8022203450d0020042003417f6a3602e802200441d0026a410020042802d4021b222f280200213002400240202f2802082231202f28020422032f01d6094f0d00200321050c010b03400240200328020022050d00410021050c020b203041016a213020032f01d409213120052103203120052f01d6094f0d000b0b024002402030450d00203141027420056a41dc096a280200210302402030417f6a2230450d00034020032802d80921032030417f6a22300d000b0b410021300c010b203141016a2130200521030b202f2003360204202f4100360200202f2030360208200441f8076a2005203141e4006c6a4188016a10fa0320042802940822320d010b200441d8056a41186a200241186a280200360200200441d8056a41106a200241106a290200370300200441d8056a41086a200241086a290200370300200420022902003703d805200128020021034101102f2205450d0a200541003a0000410041003502e0ac4220067c42adfed5e4d485fda8d8007e42218922073e02e0ac42200441c0006a41e0acc200ad220e42a4bb99fed1a0bbb02385420042adfed5e4d485fda8d8004200108405200441206a200742a4bb99fed1a0bbb02385420042adfed5e4d485fda8d8004200108405200441306a200e42c5ecb3fec9ecf7c2c30085420042adfed5e4d485fda8d8004200108405200441106a200742c5ecb3fec9ecf7c2c30085420042adfed5e4d485fda8d800420010840520042007200e85420042adfed5e4d485fda8d8004200108405200441f8076a418de2c10041011065200441e4036a200441f8076a41186a290000370200200441dc036a200441f8076a41106a290000370200200441d4036a200441f8076a41086a2230290000370200200441c4036a428180808010370200200441b8036a420037030020044190036a41246a41bcf5c100360200200420042900f8073702cc03200420053602c003200441003602b00320042007200441c0006a41086a2903002004290340857c200441086a29030020042903008542cf829ebbefefde82147c220889370390032004200441106a41086a290300200429031085200e7c2008423088893703a80320042007200441306a41086a2903002004290330857c2008422088893703a0032004200441206a41086a290300200429032085200e7c20084210888937039803200341e3006a280000210c200341ea006a2800002133200341f1006a280000210b200341f8006a22052800002114200341fc006a2800002134200341e2006a2d00002135200341e7006a2f00002136200341e9006a2d00002137200341ee006a2f00002110200341f0006a22312d00002111200341f5006a2f00002138200341f7006a2d0000213920032f0160213a200420033602d002200420044190036a3602d402200441b8046a41186a2005290200370300200441b8046a41106a2031290200370300200441b8046a41086a200341e8006a290200370300200420032902603703b804200441f8076a200441d0026a41c4a2c000200441b8046a10fe0220042802fc07210520042802f8072103200441f8066a20304180011085051a20034101460d05200441f8056a200441f8066a4180011085051a20044184076a2205200441d8056a41086a2903003702002004418c076a200441e8056a29030037020020044194076a200441f0056a2802002203360200200441f8066a41246a202e202b41186c6a222f360200200441013602f806200420042903d8053702fc062004202e3602980702400240024002400240024002402003450d0020042003417f6a36029407200441f8066a4104724100200441f8066a41086a223b28020022031b223c2802002130024002402005410820031b223d2802002231203b410420031b223b28020022052f018a0c4f0d00200521030c010b03400240200528020022030d00410021030c020b203041016a213020052f01880c213120032105203120032f018a0c4f0d000b0b024002402030450d00203141027420036a41900c6a280200210502402030417f6a2230450d000340200528028c0c21052030417f6a22300d000b0b410021300c010b203141016a2130200321050b203b2005360200203d2030360200203c410036020002400240200320314107746a22304188016a28020022054106490d0020304194016a280200210520304190016a28020021300c010b20304190016a21300b2030450d062005450d0620032031410c6c6a2203410c6a213b200341046a210320302005417f6a41186c6a223028020022050d01410021050c020b41002105200441003602f806202f202e460d0e2004202e41186a220336029807202e28020c22300d020c030b203028020821310b203b280200213b2003280200213c417f20044194076a2802002203202f202e6b41186e6a223020302003491b21030c020b202e2802142131203021050b202e280208213b202e280200213c202f20036b41186e21030b417f200341016a223020302003491b220341ffffffff00712003470d0720034104742203417f4c0d072003102f223e450d0b203e203136020c203e2005360208203e203b360204203e203c360200200441f8076a41206a200441f8066a41206a290300370300200441f8076a41186a200441f8066a41186a290300370300200441f8076a41106a200441f8066a41106a290300370300200441f8076a41086a223d200441f8066a41086a290300370300200420042903f8063703f8072003410476213f200441f8076a410c6a2140200441f8076a410472214141012142024002400240034002400240024002400240024020042802f8074101470d0002402004280294082203450d0020042003417f6a360294082041410020042802800822031b222f2802002130024002402040410820031b223b2802002231203d410420031b223c28020022052f018a0c4f0d00200521030c010b03400240200528020022030d00410021030c020b203041016a213020052f01880c213120032105203120032f018a0c4f0d000b0b024002402030450d00203141027420036a41900c6a280200210502402030417f6a2230450d000340200528028c0c21052030417f6a22300d000b0b410021300c010b203141016a2130200321050b203c2005360200203b2030360200202f410036020020032031410c6c6a2205410c6a2802002130200541046a280200212f02400240200320314107746a22054188016a28020022034106490d0020054194016a280200210320054190016a28020021050c010b20054190016a21050b2005450d0a2003450d0a20052003417f6a41186c6a220328020022050d02410021050c030b200441003602f8070b2004280298082203450d07200428029c082003460d072004200341186a3602980802400240200328020c22050d00410021050c010b200341146a28020021310b200328020821302003280200212f203f2042470d0420042802980822030d02410021030c030b200328020821310b203f2042470d022004280294082103200428029808223b450d01417f2003200428029c08203b6b41186e6a223b203b2003491b21030c010b200428029c0820036b41186e21030b2042417f200341016a223b203b2003491b6a22032042490d0c2042410174223b2003203b20034b1b22034104200341044b1b220341ffffffff0071200346410274213b200341047421030240024020420d0020044100360298050c010b2004203e36029805200441043602a0052004204241047436029c050b20044198046a2003203b20044198056a106920042802a00421032004280298044101460d02200428029c04213e2003410476213f0b203e20424104746a22032005360208200320303602042003202f3602002003410c6a2031360200204241016a21420c000b0b2003450d090c0d0b0240204241144b0d00204241014d0d072042410474203e6a41606a21034101210503402003200541016a220510b602200341706a210320422005470d000c080b0b2042410176220341ffffffff00712003470d0820034104742243417f4c0d082043102f2244450d0c203e41706a2132203e41506a214541002802e88f42214641002147410021482042214903402049213b41002149410121030240203b417f6a2205450d0002400240203e20054104746a2203280200203e203b417e6a22494104746a2205280200222f2005280204220520032802042203200320054b1b10880522300d00417f200320054720032005491b21030c010b417f410120304100481b21030b0240024002400240024002402003417f460d002045203b4104746a21304102210303400240203b2003470d0041002149203b21030c080b024002400240202f2030280200223c203041046a28020022312005200520314b1b108805222f0d00200520314f0d010c020b202f4100480d010b203041706a2130200341016a210320312105203c212f0c010b0b203b20036b21490c010b203b410274213c2045203b4104746a210302400340024020490d00410021490c020b02400240202f20032802002231200341046a28020022302005200520304b1b108805222f0d00200520304f0d030c010b202f417f4a0d020b2049417f6a2149200341706a2103203021052031212f0c000b0b203b2049490d01203b20424b0d02203b20496b22034101762231450d00203e20494104746a21052032203c4102746a21300340200441f8076a41086a222f200541086a223c290200370300200420052902003703f807203041086a223d290200210720052030290200370200203c2007370200203d202f290300370200203020042903f807370200200541106a2105203041706a21302031417f6a22310d000b0b2049450d04200341094b0d04203b20424b0d02203b20496b21032049417f6a2105203220494104746a21300340203b2005490d0b2030200341016a220310b6022005417f6a223120054f0d04203041706a2130203121052003410a490d000c040b0b2049203b41ccf7c0001048000b203b204241ccf7c0001042000b203b2049417f6a2205490d07203b204241dcf7c0001042000b203141016a21490b024020482047470d00204741016a22052047490d0a204741017422302005203020054b1b22054104200541044b1b220541ffffffff01712005464102742130200541037421050240024020470d00200441003602f8070c010b2004410436028008200420463602f807200420474103743602fc070b200441f8066a20052030200441f8076a10692004280280072105024020042802f8064101470d0020050d0f0c0b0b20042802fc062146200541037621470b204620484103746a2205200336020420052049360200204841016a224a21480240204a4102490d00034002400240024002402046204a2248417f6a224a4103746a2203280200450d00204841037420466a223141746a2802002230200328020422054d0d00204841024d0d0520462048417d6a224b4103746a2802042203200520306a4d0d01204841034d0d05203141646a280200200320306a4b0d050c010b20484103490d012003280204210520462048417d6a224b4103746a28020421030b20032005490d010b2048417e6a214b0b02400240024002402048204b41016a22034d0d0002402048204b4d0d0002402046204b4103746a224c280204220d204c2802006a2205204620034103746a224d280200224e490d000240200520424b0d00204c41046a214f203e204e4104746a2230204d280204225041047422316a21032005410474212f02402005204e6b223b20506b22052050490d00204420302031108505220520316a21310240205041014e0d00200521050c080b203b20504a0d06200521050c070b2044200320054104742231108505224120316a213120504101480d0420054101480d042032202f6a2105034002400240203141706a222f280200200341706a223b280200203b280204223c202f280204223d203d203c4b1b10880522400d00417f203d203c47203d203c491b213c0c010b417f410120404100481b213c0b2005203b202f203c417f46223c1b223d290200370200200541086a203d41086a2902003702002031202f203c1b21312030203b2003203c1b22034f0d05200541706a2105203120414b0d000c050b0b20052042418cf8c0001042000b204e2005418cf8c0001048000b204b204841fcf7c0001033000b2003204841ecf7c0001033000b20412105200321300c010b203e202f6a213d20052105034002400240200328020020052802002005280204222f2003280204223b203b202f4b1b108805223c0d00417f203b202f47203b202f491b212f0c010b417f4101203c4100481b212f0b203020032005202f417f46222f1b223b290200370200203041086a203b41086a2902003702002005200541106a202f1b2105203041106a2130200341106a2003202f1b2203203d4f0d0120052031490d000b0b20302005203120056b4170711085051a204f200d20506a360200204c204e360200204d204d41086a2048204b6b41037441706a1086051a41012148204a41014b0d000b0b2049450d060c000b0b418486c20041fc00418087c2001050000b418486c20041fc00418087c2001050000b200441f0026a41186a200b2802002203360200200441f0026a41106a200c2903002207370300200441f0026a41086a200d290300220e370300200420042903f80722513703f002200441f8036a41186a223b2003360200200441f8036a41106a223c2007370300200441f8036a41086a223d200e370300200420513703f8032001280200210520044198046a10ce014101102f2203450d09200341003a0000410041003502e0ac4220067c42adfed5e4d485fda8d8007e42218922073e02e0ac4220044190016a2009420042adfed5e4d485fda8d8004200108405200441f0006a200742a4bb99fed1a0bbb02385420042adfed5e4d485fda8d800420010840520044180016a200a420042adfed5e4d485fda8d8004200108405200441e0006a200742c5ecb3fec9ecf7c2c30085420042adfed5e4d485fda8d8004200108405200441d0006a2007200885420042adfed5e4d485fda8d8004200108405200441f8076a418de2c10041011065201441186a200b290000370000201441106a200c290000370000201441086a200d290000370000201420042900f80737000020044281808080103702ec04200420033602e804200442003703e004200441bcf5c1003602dc04200441003602d8042004200441e0006a41086a29030020042903608520087c200441d0006a41086a29030020042903508542cf829ebbefefde82147c220e423088893703d0042004200720044180016a41086a290300200429038001857c200e422088893703c8042004200441f0006a41086a29030020042903708520087c200e421088893703c0042004200720044190016a41086a290300200429039001857c200e893703b8042032280208223041176a2203417f4c0d05203228020021310240024020030d004101212f0c010b2003102f222f450d0a0b2004410036028008200420033602fc072004202f3602f807200441f8076a418b90c200411710fd02200441f8076a2031203010fd0220042802fc072138200441f8066a200520042802f807225220042802800810e7020240024020042802f8064101470d0020044198056a41186a20044198046a41186a29030037030020044198056a41106a20044198046a41106a29030037030020044198056a41086a20044198046a41086a2903003703002004200429039804370398050c010b024020042802fc062203450d0002402004290380072207422088a72230450d00200420032d00003a00fc0720304101460d00200420032d00013a00fd0720304102460d00200420032d00023a00fe0720304103460d00200420032d00033a00ff0720304104460d00200d20032d00043a000020304105460d00200441f8076a41096a20032d00053a000020304106460d00200441f8076a410a6a20032d00063a000020304107460d00201720032d00073a000020304108460d00201520032d00083a000020304109460d00201820032d00093a00002030410a460d00201920032d000a3a00002030410b460d00201a20032d000b3a00002030410c460d00200c20032d000c3a00002030410d460d00201b20032d000d3a00002030410e460d00201c20032d000e3a00002030410f460d00201d20032d000f3a000020304110460d00200441f8076a41146a223120032d00103a000020304111460d00201e20032d00113a000020304112460d00201f20032d00123a000020304113460d00200441f8076a41176a20032d00133a000020304114460d00200b20032d00143a000020304115460d00202020032d00153a000020304116460d00202120032d00163a000020304117460d00202220032d00173a000020304118460d00202320032d00183a000020304119460d00202420032d00193a00002030411a460d00202520032d001a3a00002030411b460d00202620032d001b3a00002030411c460d00200441f8076a41206a20032d001c3a00002030411d460d00202720032d001d3a00002030411e460d00202820032d001e3a00002030411f460d00202920032d001f3a000020042f00950820262d000041107472410874200428009108223041187672214b20042f01fc0720042d00fe0741107472214020042f00830820182d000041107472212f20042f018a0820312d0000411074722131200428008d082148200428018608214220042800ff072150200428029808214102402007a7450d00200310300b200420303b00ad0520044198056a41176a20304110763a0000200420313b01a60520044198056a41106a20314110763a00002004202f3b009f0520044198056a41096a202f4110763a0000200420413602b4052004204b3602b005200420483600a905200420423601a2052004205036009b05200420403b019805200420404110763a009a050c020b2007a7450d00200310300b20044198056a41186a20044198046a41186a29030037030020044198056a41106a20044198046a41106a29030037030020044198056a41086a20044198046a41086a2903003703002004200429039804370398050b200420053602b8052004200441b8046a3602bc0520322802002103200420322802083602d005200420033602cc052004200441b8056a3602c805200441d8056a41186a20044198056a41186a2239290300370300200441d8056a41106a20044198056a41106a223a290300370300200441d8056a41086a224520044198056a41086a224329030037030020042004290398053703d805200441f8076a200441c8056a4180a3c000200441d8056a10fe0220042802fc07210520042802f8072103200441f8066a200d4180011085051a024002400240024002400240024020034101460d00200441f8056a200441f8066a4180011085051a200441f8066a41186a2235203b2802002203360200200441f8066a41106a2236203c290300370300200441f8066a41086a2237203d290300370300200420042903f8033703f8062003450d0220042003417f6a223b36029007200441f8066a410020042802fc061b222f280200213002400240202f2802082231202f28020422052f018a0c4f0d00200521030c010b03400240200528020022030d00410021030c020b203041016a213020052f01880c213120032105203120032f018a0c4f0d000b0b024002402030450d00203141027420036a41900c6a280200210502402030417f6a2230450d000340200528028c0c21052030417f6a22300d000b0b410021300c010b203141016a2130200321050b202f2005360204202f4100360200202f203036020802400240200320314107746a22304188016a28020022054106490d0020304194016a280200210520304190016a28020021300c010b20304190016a21300b02400240024002402030450d002005450d000240024020302005417f6a41186c6a220528020022300d00410021300c010b2005280208212f0b417f203b41016a22052005203b491b220541ffffffff00712005470d1020054104742205417f4c0d1020032031410c6c6a2203410c6a2802002131200341046a28020021032005102f223e450d14203e202f36020c203e2030360208203e2031360204203e2003360200200b20352802002203360200200c2036290300370300200d2037290300370300200420042903f8063703f8072005410476213f024020030d004101214a0c040b20042003417f6a223b36029008200441f8076a410020042802fc071b222f280200213002400240202f2802082231202f28020422052f018a0c4f0d00200521030c010b03400240200528020022030d00410021030c020b203041016a213020052f01880c213120032105203120032f018a0c4f0d000b0b024002402030450d00203141027420036a41900c6a280200210502402030417f6a2230450d000340200528028c0c21052030417f6a22300d000b0b410021300c010b203141016a2130200321050b202f2005360204202f4100360200202f2030360208200320314107746a4188016a210520032031410c6c6a41046a21034101214a024002400340200328020821302003280200213102400240200528020022034106490d00200528020c2103200528020821050c010b200541086a21050b2005450d022003450d020240024020052003417f6a41186c6a220328020022050d00410021050c010b2003280208212f0b0240203f204a470d00203f417f203b41016a22032003203b491b6a2203203f490d14203f410174223b2003203b20034b1b22034104200341044b1b220341ffffffff0071200346410274213b2003410474210302400240203f0d00200441003602b0090c010b2004203e3602b009200441043602b8092004203f4104743602b4090b200441a0096a2003203b200441b0096a106920042802a809210320042802a0094101460d0220042802a409213e2003410476213f0b203e204a4104746a2203200536020820032030360204200320313602002003410c6a202f360200204a41016a214a02402004280290082203450d0020042003417f6a223b36029008200441f8076a410020042802fc071b222f280200213002400240202f2802082231202f28020422052f018a0c4f0d00200521030c010b03400240200528020022030d00410021030c020b203041016a213020052f01880c213120032105203120032f018a0c4f0d000b0b024002402030450d00203141027420036a41900c6a280200210502402030417f6a2230450d000340200528028c0c21052030417f6a22300d000b0b410021300c010b203141016a2130200321050b202f2005360204202f4100360200202f2030360208200320314107746a4188016a210520032031410c6c6a41046a21030c010b0b0240204a41144b0d00204a41014d0d06203e204a4104746a41606a21034101210503402003200541016a220510b602200341706a2103204a2005470d000c070b0b204a410176220341ffffffff00712003470d1220034104742253417f4c0d122053102f2247450d16203e41706a2134203e41506a215441002133202d214b41002148204a21440340024002402044223b417f6a22030d0041012103410021440c010b02400240203e20034104746a2203280200203e203b417e6a22444104746a2205280200222f2005280204220520032802042203200320054b1b10880522300d00417f200320054720032005491b21030c010b417f410120304100481b21030b0240024002400240024002402003417f460d002054203b4104746a21304102210303400240203b2003470d0041002144203b21030c080b024002400240202f2030280200223c203041046a28020022312005200520314b1b108805222f0d00200520314f0d010c020b202f4100480d010b203041706a2130200341016a210320312105203c212f0c010b0b203b20036b21440c010b203b410274213c2054203b4104746a210302400340024020440d00410021440c020b02400240202f20032802002231200341046a28020022302005200520304b1b108805222f0d00200520304f0d030c010b202f417f4a0d020b2044417f6a2144200341706a2103203021052031212f0c000b0b203b2044490d01203b204a4b0d02203b20446b22034101762231450d00203e20444104746a21052034203c4102746a21300340200d200541086a222f290200370300200420052902003703f807203041086a223c290200210720052030290200370200202f2007370200203c200d290300370200203020042903f807370200200541106a2105203041706a21302031417f6a22310d000b0b2044450d04200341094b0d04203b204a4b0d02203b20446b21032044417f6a2105203420444104746a21300340203b2005490d0a2030200341016a220310b6022005417f6a223120054f0d04203041706a2130203121052003410a490d000c040b0b2044203b41ccf7c0001048000b203b204a41ccf7c0001042000b203b2044417f6a2205490d06203b204a41dcf7c0001042000b203141016a21440b024020482033470d00203341016a22052033490d14203341017422302005203020054b1b22054104200541044b1b220541ffffffff01712005464102742130200541037421050240024020330d00200441003602f8070c010b20044104360280082004204b3602f807200420334103743602fc070b200441f8066a20052030200441f8076a10692004280280072105024020042802f8064101470d0020050d190c150b20042802fc06214b200541037621330b204b20484103746a2205200336020420052044360200204841016a224d21480240204d4102490d0003400240024002400240204b204d2248417f6a224d4103746a2203280200450d002048410374204b6a223141746a2802002230200328020422054d0d00204841024d0d05204b2048417d6a22504103746a2802042203200520306a4d0d01204841034d0d05203141646a280200200320306a4b0d050c010b20484103490d0120032802042105204b2048417d6a22504103746a28020421030b20032005490d010b2048417e6a21500b02400240024002402048205041016a22034d0d000240204820504d0d000240204b20504103746a2246280204224f20462802006a2205204b20034103746a224e280200224c490d0002402005204a4b0d00204641046a2149203e204c4104746a2230204e280204224241047422316a21032005410474212f02402005204c6b223b20426b22052042490d00204720302031108505220520316a21310240204241014e0d00200521050c080b203b20424a0d06200521050c070b2047200320054104742231108505224120316a213120424101480d0420054101480d042034202f6a2105034002400240203141706a222f280200200341706a223b280200203b280204223c202f280204223d203d203c4b1b10880522400d00417f203d203c47203d203c491b213c0c010b417f410120404100481b213c0b2005203b202f203c417f46223c1b223d290200370200200541086a203d41086a2902003702002031202f203c1b21312030203b2003203c1b22034f0d05200541706a2105203120414b0d000c050b0b2005204a418cf8c0001042000b204c2005418cf8c0001048000b2050204841fcf7c0001033000b2003204841ecf7c0001033000b20412105200321300c010b203e202f6a213d20052105034002400240200328020020052802002005280204222f2003280204223b203b202f4b1b108805223c0d00417f203b202f47203b202f491b212f0c010b417f4101203c4100481b212f0b203020032005202f417f46222f1b223b290200370200203041086a203b41086a2902003702002005200541106a202f1b2105203041106a2130200341106a2003202f1b2203203d4f0d0120052031490d000b0b20302005203120056b4170711085051a2049204f20426a3602002046204c360200204e204e41086a204820506b41037441706a1086051a41012148204d41014b0d000b0b2044450d050c000b0b20030d150c110b418486c20041fc00418087c2001050000b418486c20041fc00418087c2001050000b2005203b41dcf7c0001048000b0240203341ffffffff0171450d00204b10300b2053450d00204710300b204a450d01203e204a4104746a213d203e21030240034020032802002230450d03200341046a2802002131024002400240200341086a280200222f0d00200441f8076a200441f8056a2030203110ff0220042802fc07210520042802f8074101460d0420042903800821070c010b2003410c6a280200210520044100360280090240024020042d00d0064101460d004100213b0c010b200441c4056a41026a201241026a2d00003a00002037201141086a2902003703002036201141106a2902003703002035201141186a2d00003a0000200420122f00003b01c405200420112902003703f8064101213b0b20042802d406213c201020042f01c4053b0000200d20042903f806370200201041026a200441c4056a41026a2d00003a0000200d41086a2037290300370200200d41106a2036290300370200200d41186a20352802003602002004203b3a00f8072004203c3602fc07200441003602a809200420313602a409200420303602a0092005417f4c0d100240024020050d00410121300c010b2005102f2230450d150b200420053602b409200420303602b0092030202f20051085051a200420053602b80920044190096a200441f8056a200441f8076a200441a0096a200441b0096a20044180096a10800320042802940921052004280290094101460d01200420053602d406200441003a00d006200428028009210520042902840921070b02402005450d002007a7450d00200510300b200341106a2203203d470d010c040b0b2004280280092203450d00200428028409450d00200310300b0240203f41ffffffff0071450d00203e10300b200441f8056a10b1010b20052d00000e0404040304020b203f41ffffffff0071450d00203e10300b200441f8056a10b101200441f8066a41026a20042d00da0522033a0000200d200f41086a290000370300200c200f41106a290000370300200b200f41186a2d00003a0000200420042f01d80522053b01f8062004200f2900003703f807200420053b019805200420033a009a05200420042800db0536009b05201320042903f807370000201341086a200d290300370000201341106a200c290300370000201341186a200b2d00003a00000c030b200541286a280200450d01200541246a28020010300c010b200541086a280200450d00200541046a2802001030200510300c010b200510300b20044198056a20044198046a41201088052105200b2039290300370300200c203a290300370300200d204329030037030020042004290398053703f8072016200441b8046a41e000108505210302402038450d00205210300b200441f8056a41186a200b290300370300200441f8056a41106a200c290300370300200441f8056a41086a200d290300370300200420042903f8073703f805200441f8066a200341e0001085051a2032280208223041176a2203417f4c0d05203228020021310240024020030d004101212f0c010b2003102f222f450d0a0b200d4100360200200420033602fc072004202f3602f807200441f8076a418b90c200411710fd02200441f8076a2031203010fd022045200d280200360200200420042903f8073703d805200441f8076a200441f8066a41e0001085051a200441f0016a200441f8076a10c2030240024020050d00200441b8046a41086a22052045280200360200200420042903d8053703b8040240202b202c470d00202b41016a2203202b490d08202b41017422302003203020034b1b22034104200341044b1bad42187e2207422088a74541027421032007a7213002400240202b0d00200441003602f8070c010b20044104360280082004202e3602f8072004202b41186c3602fc070b20044190036a20302003200441f8076a1069200428029803210302402004280290034101470d0020030d0d0c090b200428029403212e200341186e212c0b202e202b41186c6a220320042903b804370200200528020021052003410036020c200341086a20053602000c010b200d2045280200360200200420042903d8053703f8072004410036028c0820044201370284084120102f2203450d0a2004422037029403200420033602900320044190036a200441f8056a412010642015200428029003220320042802980310640240200428029403450d00200310300b0240202b202c470d00202b41016a2203202b490d07202b41017422052003200520034b1b22034104200341044b1bad42187e2207422088a74541027421032007a7210502400240202b0d0020044100360290030c010b20044104360298032004202e360290032004202b41186c360294030b200441b8046a2005200320044190036a106920042802c0042103024020042802b8044101470d0020030d0c0c080b20042802bc04212e200341186e212c0b202e202b41186c6a220320042903f807370200200341106a200c290300370200200341086a200d2903003702000b202a41186a212a202b41016a212b0c000b0b2005203b41dcf7c0001048000b0240204741ffffffff0171450d00204610300b2043450d00204410300b2042450d02203e20424104746a2148200441f8076a41086a2130200441f8076a410172213c200441d8066a213d200441d1066a2142203e21030240034020032802002231450d04200341046a280200212f024002400240200341086a280200223b0d00200441f8076a200441f8056a2031202f10ff0220042802fc07210520042802f8074101460d0420042903800821070c010b2003410c6a2802002105200441003602f0020240024020042d00d0064101460d00410021400c010b200441c4056a41026a204241026a2d00003a0000200441f8066a41086a203d41086a290200370300200441f8066a41106a203d41106a290200370300200441f8066a41186a203d41186a2d00003a0000200420422f00003b01c4052004203d2902003703f806410121400b20042802d4062141203c20042f01c4053b0000203020042903f806370200203c41026a200441c4056a41026a2d00003a0000203041086a200441f8066a41086a290300370200203041106a200441f8066a41106a290300370200203041186a200441f8066a41186a280200360200200420403a00f807200420413602fc07200441003602a0042004202f36029c0420042031360298042005417f4c0d050240024020050d00410121310c010b2005102f2231450d0a0b2004200536029c0520042031360298052031203b20051085051a200420053602a005200441f8036a200441f8056a200441f8076a20044198046a20044198056a200441f0026a10800320042802fc03210520042802f8034101460d01200420053602d406200441003a00d00620042802f002210520042902f40221070b02402005450d002007a7450d00200510300b200341106a22032048470d010c050b0b20042802f0022203450d0020042802f402450d00200310300b0240203f41ffffffff0071450d00203e10300b200441f8056a10b1010b20394110742103201141107421312037411074212f2035411074213b02400240024020052d00000e0402020002010b200541086a280200450d01200541046a28020010300c010b200541286a280200450d00200541246a28020010300b20382003722130201020317221312036202f72212f203a203b722103200510300c030b102c000b203f41ffffffff0071450d00203e10300b200441f8056a10b10120042f01b80420042d00ba0441107472210320042f00cd04200441cf046a2d000041107472213020042f01c604200441b8046a41106a2d000041107472213120042f00bf04200441c1046a2d000041107472212f20042800bb04210c20042801c204213320042800c904210b20042802d004211420042802d40421340b200441f8076a20044190036a41e0001085051a200041176a20304110763a0000200020303b0015200041106a20314110763a0000200020313b000e200041096a202f4110763a00002000202f3b0007200041026a20034110763a0000200020033b01002000203436001c200020143600182000200b3600112000203336000a2000200c360003200441f8066a200441f8076a41e0001085051a200441f8076a200441f8066a41e0001085051a200441f0016a200441f8076a10c203200041206a200441f0016a41e0001085051a0240202b450d00202e210303400240200341046a280200450d00200328020010300b02402003410c6a2802002205450d00200341106a280200450d00200510300b200341186a2103202a41686a222a0d000b0b0240202c450d00202c41186c450d00202e10300b200441c0096a24000f0b102a000b9a0303067f017e017f200028020421012000410036020402402001450d00024020002802002202450d000340200128028c0121012002417f6a22020d000b0b024020002802082203450d004100210003400240024002400240200020012f018a01490d0041002100034041002102024020012802002204450d00200041016a210520012f0188012106200421020b024041bc01418c0120001b450d00200110300b024020020d00410021010c050b2005210020022101200620022f018a014f0d000b20022006410c6c6a41046a2104024020050d00200221010c020b200641027420026a4190016a280200210102402005417f6a2200450d000340200128028c0121012000417f6a22000d000b0b410021000c020b20012000410c6c6a41046a210420012102200021060b200641016a21000b20022006410c6c6a41086a2902002107200428020021080b2008450d022003417f6a210302402007a7450d00200810300b20030d000b0b41002102034020012802002100024041bc01418c0120021b450d00200110300b2002417f6a21022000210120000d000b0b0bf80101037f230041206b220424000240024002402002450d00200221050240034020022f01d6092106024020010d002001450d020c050b2001450d042001417f6a2101200220064102746a41d8096a280200210220052802d80921050c000b0b2000200136020c200041003602082000200536020420002001360200200041146a2006360200200041106a20023602000c010b4100210320004100360204200041106a41003602000b20002003360218200441206a24000f0b200441146a410136020020044201370204200441f4a9c2003602002004410436021c200441eca9c2003602182004200441186a360210200441fca9c200103a000bb703010a7f200028020421012000410036020402402001450d00024020002802002202450d00034020012802900221012002417f6a22020d000b0b024020002802082203450d004100210003400240024002400240200020012f018e02490d0041002100034041002102024020012802002204450d00200041016a210520012f018c022106200421020b024041c00241900220001b450d00200110300b024020020d00410021010c050b2005210020022101200620022f018e024f0d000b2002200641186c6a41046a2104024020050d00200221010c020b200641027420026a4194026a280200210102402005417f6a2200450d00034020012802900221012000417f6a22000d000b0b410021000c020b2001200041186c6a41046a210420012102200021060b200641016a21000b2002200641186c6a220241146a2802002107200241106a2802002108200241086a28020021092004280200210a0b200a450d0202402009450d00200a10300b2003417f6a210302402007450d00200810300b20030d000b0b41002102034020012802002100024041c00241900220021b450d00200110300b2002417f6a21022000210120000d000b0b0baa18030a7f027e057f230041b0026b22022400200128020821032001280204210420012802002105024002400240024002400240024002400240024002400240024002400240024020012802182206450d002004450d01200320042f018a0c490d02034002400240200428020022010d00410021010c010b200541016a210720042f01880c21030b024041bc0c418c0c20051b450d00200410300b024020010d00410221080c050b2007210520012104200320012f018a0c4f0d000b20012104200721050c020b410021090c030b41b2abc200412b41d4a8c200102d000b200341016a2101200420034107746a22074188016a210920042003410c6c6a220a41046a210b0240024020050d00200121030c010b200420014102746a418c0c6a280200210402402005417f6a2201450d000340200428028c0c21042001417f6a22010d000b0b410021030b2007418c016a2802002108200a41086a290200210c20092802002101200b280200210520024190016a20074190016a41f8001085051a0b200241086a20024190016a41f8001085051a2002200836029401200220013602900120024198016a2207200241086a41f8001085051a0240024020014106490d002002419c016a2208280200210120022802980121070c010b20024190016a21080b2001450d0420082001417f6a22013602002007200141186c6a220128020c2207450d04200241a0026a41086a200141086a280200360200200220012902003703a0020240200141106a29020042ffffffff0383500d00200710300b2006417f6a210920024190016a10d902024020050d00410021050c010b417f200941016a220120012009491bad42187e220d422088a70d07200da72201417f4c0d072001102f220e450d08200e200c370204200e2005360200200e20022903a00237020c200e41146a200241a8026a280200360200200141186e210f024020090d0041012106410021090c0b0b2004450d030240024002400240200320042f018a0c490d0041002105034041002101024020042802002208450d00200541016a210720042f01880c2103200821010b024041bc0c418c0c20051b450d00200410300b024020010d00410221070c050b2007210520012104200320012f018a0c4f0d000b200120034107746a4188016a210a20012003410c6c6a41046a210b024020070d00200121040c020b200341027420016a41900c6a280200210402402007417f6a2205450d000340200428028c0c21042005417f6a22050d000b0b410021050c020b200420034107746a4188016a210a20042003410c6c6a41046a210b200421010b200341016a21050b200120034107746a2208418c016a280200210720012003410c6c6a41086a290200210c200a2802002101200b280200210b20024190016a20084190016a41f8001085051a0b200241086a20024190016a41f8001085051a20024190016a410c6a211020024190016a41086a21114101210a0340200220073602940120022001360290012011200241086a41f80010850521030240024020014106490d00200228029c0121012002280298012103201021070c010b20024190016a2107200321030b2001450d0320072001417f6a22013602002003200141186c6a220128020c2207450d03200241a0026a41086a2203200141086a280200360200200220012902003703a0020240200141106a29020042ffffffff0383500d00200710300b2009417f6a210920024190016a10d9020240200b450d000240200f200a470d00200a417f200941016a220120012009491b6a2201200a490d0a200a41017422072001200720014b1b22014104200141044b1bad42187e220d422088a7454102742101200da7210702400240200a0d0020024100360290010c010b20024104360298012002200e360290012002200a41186c360294010b200241086a2007200120024190016a10692002280210210120022802084101460d09200228020c210e200141186e210f0b200e200a41186c6a2201200c3702042001200b360200200120022903a00237020c200141146a20032802003602002009450d0b2004450d030240024002400240200520042f018a0c490d0041002105034041002101024020042802002208450d00200541016a210720042f01880c2103200821010b024041bc0c418c0c20051b450d00200410300b024020010d00410221070c050b2007210520012104200320012f018a0c4f0d000b200120034107746a4188016a210b20012003410c6c6a41046a2112024020070d00200121040c020b200341027420016a41900c6a280200210402402007417f6a2205450d000340200428028c0c21042005417f6a22050d000b0b410021050c020b200420054107746a4188016a210b20042005410c6c6a41046a211220052103200421010b200341016a21050b200120034107746a2208418c016a280200210720012003410c6c6a41086a290200210c200b28020021012012280200210b20024190016a20084190016a41f8001085051a0b200a41016a210a200241086a20024190016a41f8001085051a0c010b0b20052103200a21060c0a0b20004200370204200041002802e88f423602002004450d0a2009450d0420024190016a410c6a210e200241a4016a210f0340024002400240200320042f018a0c4f0d0020042101200521070c010b034002400240200428020022010d00410021010c010b200541016a210720042f01880c21030b024041bc0c418c0c20051b450d00200410300b024020010d00410221010c030b2007210520012104200320012f018a0c4f0d000b0b200341016a210a200120034107746a22054188016a210b20012003410c6c6a41046a21080240024020070d0020012104200a21030c010b2001200a4102746a418c0c6a280200210402402007417f6a2201450d000340200428028c0c21042001417f6a22010d000b0b410021030b200241a0026a41086a200841086a280200360200200220082902003703a0022005418c016a2802002101200b280200210720024190016a20054190016a41f8001085051a0b2009417f6a210920024180016a41086a2205200241a0026a41086a280200360200200220022903a00237038001200241086a20024190016a41f8001085051a20024190016a41086a2005280200360200200220022903800137039001200220013602a0012002200736029c01200f200241086a41f8001085051a0240200228029401450d0020022802900110300b200e10d9024100210520090d000c050b0b41b2abc200412b41d4a8c200102d000b418486c20041fc0041dc8ac2001050000b41b2abc200412b41d4a8c200102d000b418486c20041fc0041dc8ac2001050000b034020042802002101024041bc0c418c0c20051b450d00200410300b200541016a2105200121042001450d060c000b0b20010d010b102c000b102a000b20052103410021090b02402004450d0002402009450d0020024190016a410c6a210b200241a4016a211203400240024002400240200320042f018a0c490d0041002105034041002101024020042802002208450d00200541016a210320042f01880c2107200821010b024041bc0c418c0c20051b450d00200410300b024020010d00410221010c050b2003210520012104200720012f018a0c4f0d000b200120074107746a4188016a210a20012007410c6c6a41046a2108024020030d00200121040c020b200741027420016a41900c6a280200210402402003417f6a2205450d000340200428028c0c21042005417f6a22050d000b0b410021030c020b200420034107746a4188016a210a20042003410c6c6a41046a210820032107200421010b200741016a21030b200241a0026a41086a200841086a280200360200200220082902003703a002200120074107746a2207418c016a2802002101200a280200210520024190016a20074190016a41f8001085051a0b2009417f6a210920024180016a41086a2207200241a0026a41086a280200360200200220022903a00237038001200241086a20024190016a41f8001085051a20024190016a41086a2007280200360200200220022903800137039001200220013602a0012002200536029c012012200241086a41f8001085051a0240200228029401450d0020022802900110300b200b10d90220090d000b0b41002101034020042802002105024041bc0c418c0c20011b450d00200410300b2001417f6a21012005210420050d000b0b200020063602082000200f3602042000200e3602000b200241b0026a24000bcd0301087f230041d0016b22022400200241086a200141f0001085051a200041086a200141086a28020036020020002001290200370200200241f8006a200241146a41d8001085051a0240024020022802840122034106490d0020024190016a28020021010c010b200321010b0240024020010d000240200228027c22010d004100210141002104410021050c020b20022802800121052002280278210620012104034020012f018a0c21072006450d022006417f6a2106200120074102746a418c0c6a2802002101200428028c0c21040c000b0b41a888c200412c41d488c200102d000b0240024020034106490d002002418c016a2802002108024020024190016a2802002206450d002006410c6c2109200821060340200610d4032006410c6a2106200941746a22090d000b0b2003410c6c450d01200810300c010b2003450d002002418c016a21062003410c6c21090340200610d4032006410c6a2106200941746a22090d000b0b2000410036020c200041246a2005360200200041206a20073602002000411c6a2001360200200041146a4200370200200041106a2004360200200041286a200241ec006a290200370200200041306a200241f4006a280200360200200241d0016a24000b9f07010b7f230041a0026b220124000240200028020c2202450d00200141f0006a410c6a210320014190016a210420014180026a410c6a2105034020002002417f6a36020c2000280200210602400240024020002802082207200028020422082f01d6094f0d0020082102200621090c010b034002400240200828020022020d00410021020c010b200641016a210920082f01d40921070b024041880a41d80920061b450d00200810300b024020020d00410221070c030b2009210620022108200720022f01d6094f0d000b0b200741016a21082002200741e4006c6a22064188016a210a20022007410c6c6a41046a210702402009450d00200220084102746a41d8096a280200210202402009417f6a2208450d00034020022802d80921022008417f6a22080d000b0b410021080b2005200a29020037020020014180026a41086a2209200741086a280200360200200541086a200a41086a290200370200200120072902003703800220064198016a2802002107200141f0006a2006419c016a41d0001085051a200141e0016a41186a20014180026a41186a280200360200200141e0016a41106a20014180026a41106a290300370300200141e0016a41086a200929030037030020012001290380023703e0010b200141d0006a41186a2209200141e0016a41186a280200360200200141d0006a41106a220a200141e0016a41106a290300370300200141d0006a41086a220b200141e0016a41086a290300370300200120012903e0013703502001200141f0006a41d0001085052106200020083602082000200236020420004100360200200641f0006a41186a2009280200360200200641f0006a41106a200a290300370300200641f0006a41086a200b290300370300200620062903503703702006200736028c012004200641d000108505210202402006280274450d00200628027010300b20031090040240024020062802880122074106490d00200628029001210902402006280294012202450d002002410c6c2108200921020340200210d4032002410c6a2102200841746a22080d000b0b2007410c6c450d01200910300c010b2007450d002007410c6c2108200221020340200210d4032002410c6a2102200841746a22080d000b0b024020062802d801450d0020062802d40110300b200028020c22020d000b0b2000280204210620002802002102034020062802002108024041880a41d80920021b450d00200610300b200241016a21022008210620080d000b200141a0026a24000bef8f0104077f017e507f3b7e230041a0296b2205240002402004a70d002005200210c403200528020045ad21040b02400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002402004a7450d000240024002400240024002400240024002400240024002400240024002400240024020012903004201520d0020012d00080d00200541e0216a200110db03200541286a41c8036a200241e8031085051a200541286a200541e0216a41c8031085051a20052d00f0030e0b0102050703040610101008100b200042013703002000411636020820021096010c2e0b200541d00b6a200541286a41c8031085051a20054188046a280200210620054184046a280200210720054180046a2802002108200541f8036a2802002109200541f4036a280200210a200541fc036a2802002103200541e8076a4200370300200542003702dc07200a2102024002402003450d00200a41f8036a2102200a280200220b410c470d010b0240200a200341f8036c6a22032002460d0003402002109a012003200241f8036a2202470d000b0b02402009450d00200941f8036c450d00200a10300b200541106a41106a200541d8076a41106a290300370300200541106a41086a200541d8076a41086a290300370300200520052903d8073703102006ad4220862007ad84210c200541d00b6a109c0142002104410021034101210b4101210741012106410121024101210a410121090c2d0b200541c80f6a200a41046a41f4031085051a2005200b3602e021200541e0216a410472200541c80f6a41f4031085051a20004201370300200041124102200b417f6a4107491b360208200341f8036c41887c6a220041f8036d2103200541e0216a109a0102402000450d00200341f8036c210003402002109a01200241f8036a2102200041887c6a22000d000b0b02402009450d00200941f8036c450d00200a10300b200541d8076a10dc03024020052802e8072200450d00024020052802e4072202450d00034020002802b02b21002002417f6a22020d000b0b200541003602e821200520003602e421200541003602e021200520052802ec073602ec21200541e0216a10dd030b2008200610a40102402007450d0020074198046c450d00200810300b200541d00b6a109c0141012108410021070c260b200541e0216a200541286a41c8031085051a20054188046a280200210720054184046a280200210220054180046a2802002108200541f8036a280200210a200541f4036a28020021030240200541fc036a28020022090d0041002109200541003602d80b2005200a3602d40b200520033602d00b200541c80f6a200541d00b6a10de03200541e80f6a2007360200200541e40f6a22032002360200200541106a41086a200541c80f6a41086a290300370300200541106a41106a200541c80f6a41106a290300370300200520052903c80f3703102003290200210c200541e0216a109c01420021044101210b4101210741012106410121024101210a0c2b0b20032802002106200042013703002000411241072006417f6a4107491b3602082008200710a40102402002450d0020024198046c450d00200810300b200941f8036c21022003210003402000109a01200041f8036a2100200241887c6a22020d000b0240200a450d00200a41f8036c450d00200310300b200541e0216a109c0141002108410121070c250b200541d01a6a200541286a41c8031085051a200541981e6a20054180046a41c8031085051a200541f4036a280200220b200541fc036a280200220241f8036c22036a2108200541f8036a280200210d200b210a2002450d1f200341887c6a2109200541e0216a4104722106200541d00b6a4104722107200b21020340200241f8036a210a20022802002203410c460d20200541d8076a200241046a41f4031085051a200520033602d00b2007200541d8076a41f4031085051a02402003417f6a41064b0d0020004201370300200041123602080c090b200541e0216a10c70320052802e0212102200541c80f6a200641bc071085051a20024101460d0720054188176a41106a2202200541c80f6a41106a29020037030020054188176a41086a200541c80f6a41086a290200370300200520052902c80f3703881720054188176a10dc03024020022802002202450d0002402005280294172203450d00034020022802b02b21022003417f6a22030d000b0b200541003602e821200520023602e421200541003602e0212005200528029c173602ec21200541e0216a10dd030b200941887c6a2109200541d00b6a109a01200a2102200a2008470d000c210b0b200541981e6a200541286a41c8031085051a200541f8036a280200210b200541f4036a2802002107200541fc036a2802002106200541d8076a200541286a41e8036a41c8031085051a2007200641f8036c6a210920054188046a280200210e20054184046a280200210d20054180046a280200210f200541d00b6a200541d8076a10f001200541e0216a41047221082007210a03402009200a460d050240200a280200417f6a41064b0d0020004201370300200041123602080c0c0b200541e0216a10c70320052802e0212102200541c80f6a200841bc071085051a20024101460d0a200541d01a6a41106a2202200541c80f6a41106a290200370300200541d01a6a41086a200541c80f6a41086a290200370300200520052902c80f3703d01a200541d01a6a10dc03024020022802002202450d00024020052802dc1a2203450d00034020022802b02b21022003417f6a22030d000b0b200541003602e821200520023602e421200541003602e021200520052802e41a3602ec21200541e0216a10dd030b200a200541d00b6a10df032102200a41f8036a210a2002450d000b20004201370300200041003602080c0a0b200541e0216a200541286a41c8031085051a20054188046a280200210920054184046a280200210220054180046a2802002108200541f8036a280200210a200541f4036a28020021030240200541fc036a2802002207450d0020032802002106200042013703002000411241082006417f6a4107491b3602082008200910a40102402002450d0020024198046c450d00200810300b200741f8036c21022003210003402000109a01200041f8036a2100200241887c6a22020d000b0240200a450d00200a41f8036c450d00200310300b200541e0216a109c014100210341012107410121084101210a41012109410121020c260b41002107200541003602d80b2005200a3602d40b200520033602d00b200541c80f6a200541d00b6a10de03200541e80f6a2009360200200541e40f6a22032002360200200541106a41086a200541c80f6a41086a290300370300200541106a41106a200541c80f6a41106a290300370300200520052903c80f3703102003290200210c200541e0216a109c01420021044101210b0c1f0b200541d00b6a200541286a41c8031085051a200541f8036a2903002104200541f1036a2d0000210a200541d8076a20054180046a41f0001085051a20052802d8072102200541023602d80720024102470d0b200520052802b808360288172005200541c0086a28020036028c17200541c80f6a20054188176a10e90120052802c80f22024102460d0c200541d01a6a200541c80f6a41047241dc001085051a0c1a0b200541286a41d0036a2802002108200541f4036a280200210a200541e0036a2802002110200541d8036a2802002111200541d0036a2802002112200541c0036a2802002113200541b8036a2d00002114200541a8036a2802002115200541a0036a280200211620054198036a280200211720054188036a280200211820054180036a2d00002119200541f0026a280200211a200541e8026a280200211b200541e0026a280200211c200541d0026a280200211d200541c8026a2d0000211e200541b8026a280200211f200541b0026a2802002120200541a8026a280200212120054198026a280200212220054190026a2d0000212320054180026a2802002124200541f8016a2802002125200541f0016a2802002126200541e0016a2802002127200541d8016a2d00002128200541c8016a2802002129200541c0016a280200212a200541b8016a280200212b200541a8016a280200212c200541a0016a2d0000210f20054190016a280200212d20054188016a280200212e20054180016a280200212f200541f0006a2802002130200541e8006a2d0000210e200541d8006a2802002131200541d0006a2802002132200541c8006a2802002133200541286a41106a280200213420052802e403213520052802dc03213620052802d403213720052802c403213820052802bc03213920052802ac03213a20052802a403213b200528029c03213c200528028c03213d200528028403213e20052802f402213f20052802ec02214020052802e402214120052802d402214220052802cc02214320052802bc02214420052802b402214520052802ac022146200528029c0221472005280294022148200528028402214920052802fc01214a20052802f401214b20052802e401214c20052802dc01214d20052802cc01214e20052802c401214f20052802bc01215020052802ac01215120052802a40121522005280294012153200528028c012154200528028401215520052802742156200528026c2157200528025c215820052802542159200528024c215a200528023c215b2005280234215c20052d0030210d2005290328215d0240200541286a41d4036a2802002202450d00200241f8036c2109410021020340024002400240024002400240024002400240200a20026a22032802000e0b0808080800010203040506070b200341086a280200450d07200341046a28020010300c070b200341086a280200450d06200341046a28020010300c060b200341086a109c010c050b200341086a109c010c040b200341086a280200450d03200341046a28020010300c030b0240200341086a280200450d00200341046a28020010300b200341106a2d00004106490d02200341186a280200450d02200341146a28020010300c020b200341086a109c010c010b200341086a109c01200341d0036a2d00004106490d00200341d8036a280200450d00200341d4036a28020010300b2009200241f8036a2202470d000b0b02402008450d00200841f8036c450d00200a10300b42002104410021084101210b4101210741012106410021024101210a410121094101210302400240024002400240024002400240205da70e082e00010203040506070b410021084101210741012106410021024101210a410121094101210302400240024002400240200d0e09323200010232320332040b4101210b4100210220594101470d1c2058450d1c203110300c230b4101210b41002102205c4101470d1b205b450d1b0c210b4101210b4100210220334101470d1a2032450d1a205a10300c210b2034450d20205c10300c200b4101210b41002102205c4101470d18205b0d1e0c180b0240024002400240024002400240200d0e09060600010206060306040b20594101470d052058450d05203110300c050b205c4101470d04205b0d030c040b20334101470d032032450d03205a10300c030b2034450d02205c10300c020b205c4101470d01205b450d010b203410300b410021084101210741012106410021024101210a410121094101210302400240024002400240200e0e09313100010231310331040b4101210b4100210220544101470d1b2053450d1b202d10300c220b4101210b4100210220574101470d1a2056450d1a0c1f0b4101210b41002102202f4101470d19202e450d19205510300c200b2030450d1f205710300c1f0b4101210b4100210220574101470d1720560d1c0c170b0240024002400240024002400240200d0e09060600010206060306040b20594101470d052058450d05203110300c050b205c4101470d04205b0d030c040b20334101470d032032450d03205a10300c030b2034450d02205c10300c020b205c4101470d01205b450d010b203410300b0240024002400240024002400240200e0e09060600010206060306040b20544101470d052053450d05202d10300c050b20574101470d0420560d030c040b202f4101470d03202e450d03205510300c030b2030450d02205710300c020b20574101470d012056450d010b203010300b410021084101210741012106410021024101210a410121094101210302400240024002400240200f0e09303000010230300330040b4101210b41002102204f4101470d1a204e450d1a202910300c210b4101210b4100210220524101470d192051450d190c1d0b4101210b41002102202b4101470d18202a450d18205010300c1f0b202c450d1e205210300c1e0b4101210b4100210220524101470d1620510d1a0c160b0240024002400240024002400240200d0e09060600010206060306040b20594101470d052058450d05203110300c050b205c4101470d04205b0d030c040b20334101470d032032450d03205a10300c030b2034450d02205c10300c020b205c4101470d01205b450d010b203410300b0240024002400240024002400240200e0e09060600010206060306040b20544101470d052053450d05202d10300c050b20574101470d0420560d030c040b202f4101470d03202e450d03205510300c030b2030450d02205710300c020b20574101470d012056450d010b203010300b0240024002400240024002400240200f0e09060600010206060306040b204f4101470d05204e450d05202910300c050b20524101470d0420510d030c040b202b4101470d03202a450d03205010300c030b202c450d02205210300c020b20524101470d012051450d010b202c10300b410021084101210741012106410021024101210a41012109410121030240024002400240024020280e092f2f0001022f2f032f040b4101210b41002102204a4101470d192049450d19202410300c200b4101210b41002102204d4101470d18204c450d180c1b0b4101210b4100210220264101470d172025450d17204b10300c1e0b2027450d1d204d10300c1d0b4101210b41002102204d4101470d15204c0d180c150b0240024002400240024002400240200d0e09060600010206060306040b20594101470d052058450d05203110300c050b205c4101470d04205b0d030c040b20334101470d032032450d03205a10300c030b2034450d02205c10300c020b205c4101470d01205b450d010b203410300b0240024002400240024002400240200e0e09060600010206060306040b20544101470d052053450d05202d10300c050b20574101470d0420560d030c040b202f4101470d03202e450d03205510300c030b2030450d02205710300c020b20574101470d012056450d010b203010300b0240024002400240024002400240200f0e09060600010206060306040b204f4101470d05204e450d05202910300c050b20524101470d0420510d030c040b202b4101470d03202a450d03205010300c030b202c450d02205210300c020b20524101470d012051450d010b202c10300b024002400240024002400240024020280e09060600010206060306040b204a4101470d052049450d05202410300c050b204d4101470d04204c0d030c040b20264101470d032025450d03204b10300c030b2027450d02204d10300c020b204d4101470d01204c450d010b202710300b410021084101210741012106410021024101210a41012109410121030240024002400240024020230e092e2e0001022e2e032e040b4101210b4100210220454101470d182044450d18201f10300c1f0b4101210b4100210220484101470d172047450d170c190b4101210b4100210220214101470d162020450d16204610300c1d0b2022450d1c204810300c1c0b4101210b4100210220484101470d1420470d160c140b0240024002400240024002400240200d0e09060600010206060306040b20594101470d052058450d05203110300c050b205c4101470d04205b0d030c040b20334101470d032032450d03205a10300c030b2034450d02205c10300c020b205c4101470d01205b450d010b203410300b0240024002400240024002400240200e0e09060600010206060306040b20544101470d052053450d05202d10300c050b20574101470d0420560d030c040b202f4101470d03202e450d03205510300c030b2030450d02205710300c020b20574101470d012056450d010b203010300b0240024002400240024002400240200f0e09060600010206060306040b204f4101470d05204e450d05202910300c050b20524101470d0420510d030c040b202b4101470d03202a450d03205010300c030b202c450d02205210300c020b20524101470d012051450d010b202c10300b024002400240024002400240024020280e09060600010206060306040b204a4101470d052049450d05202410300c050b204d4101470d04204c0d030c040b20264101470d032025450d03204b10300c030b2027450d02204d10300c020b204d4101470d01204c450d010b202710300b024002400240024002400240024020230e09060600010206060306040b20454101470d052044450d05201f10300c050b20484101470d0420470d030c040b20214101470d032020450d03204610300c030b2022450d02204810300c020b20484101470d012047450d010b202210300b410021084101210741012106410021024101210a410121094101210302400240024002400240201e0e092d2d0001022d2d032d040b4101210b4100210220404101470d17203f450d17201a10300c1e0b4101210b4100210220434101470d162042450d160c170b4101210b41002102201c4101470d15201b450d15204110300c1c0b201d450d1b204310300c1b0b4101210b4100210220434101470d1320420d140c130b0240024002400240024002400240200d0e09060600010206060306040b20594101470d052058450d05203110300c050b205c4101470d04205b0d030c040b20334101470d032032450d03205a10300c030b2034450d02205c10300c020b205c4101470d01205b450d010b203410300b0240024002400240024002400240200e0e09060600010206060306040b20544101470d052053450d05202d10300c050b20574101470d0420560d030c040b202f4101470d03202e450d03205510300c030b2030450d02205710300c020b20574101470d012056450d010b203010300b0240024002400240024002400240200f0e09060600010206060306040b204f4101470d05204e450d05202910300c050b20524101470d0420510d030c040b202b4101470d03202a450d03205010300c030b202c450d02205210300c020b20524101470d012051450d010b202c10300b024002400240024002400240024020280e09060600010206060306040b204a4101470d052049450d05202410300c050b204d4101470d04204c0d030c040b20264101470d032025450d03204b10300c030b2027450d02204d10300c020b204d4101470d01204c450d010b202710300b024002400240024002400240024020230e09060600010206060306040b20454101470d052044450d05201f10300c050b20484101470d0420470d030c040b20214101470d032020450d03204610300c030b2022450d02204810300c020b20484101470d012047450d010b202210300b0240024002400240024002400240201e0e09060600010206060306040b20404101470d05203f450d05201a10300c050b20434101470d0420420d030c040b201c4101470d03201b450d03204110300c030b201d450d02204310300c020b20434101470d012042450d010b201d10300b410021084101210741012106410021024101210a41012109410121030240024002400240024020190e092c2c0001022c2c032c040b4101210b41002102203b4101470d16203a450d16201510300c1d0b4101210b41002102203e4101470d15203d450d150c140b4101210b4100210220174101470d142016450d14203c1030410021020c140b2018450d11203e1030410021020c130b4101210b41002102203e4101470d12203d0d110c120b0240024002400240024002400240200d0e09060600010206060306040b20594101470d052058450d05203110300c050b205c4101470d04205b0d030c040b20334101470d032032450d03205a10300c030b2034450d02205c10300c020b205c4101470d01205b450d010b203410300b0240024002400240024002400240200e0e09060600010206060306040b20544101470d052053450d05202d10300c050b20574101470d0420560d030c040b202f4101470d03202e450d03205510300c030b2030450d02205710300c020b20574101470d012056450d010b203010300b0240024002400240024002400240200f0e09060600010206060306040b204f4101470d05204e450d05202910300c050b20524101470d0420510d030c040b202b4101470d03202a450d03205010300c030b202c450d02205210300c020b20524101470d012051450d010b202c10300b024002400240024002400240024020280e09060600010206060306040b204a4101470d052049450d05202410300c050b204d4101470d04204c0d030c040b20264101470d032025450d03204b10300c030b2027450d02204d10300c020b204d4101470d01204c450d010b202710300b024002400240024002400240024020230e09060600010206060306040b20454101470d052044450d05201f10300c050b20484101470d0420470d030c040b20214101470d032020450d03204610300c030b2022450d02204810300c020b20484101470d012047450d010b202210300b0240024002400240024002400240201e0e09060600010206060306040b20404101470d05203f450d05201a10300c050b20434101470d0420420d030c040b201c4101470d03201b450d03204110300c030b201d450d02204310300c020b20434101470d012042450d010b201d10300b024002400240024002400240024020190e09060600010206060306040b203b4101470d05203a450d05201510300c050b203e4101470d04203d0d030c040b20174101470d032016450d03203c10300c030b2018450d02203e10300c020b203e4101470d01203d450d010b201810300b410021084101210741012106410021024101210a41012109410121030240024002400240024020140e092b2b0001022b2b032b040b4101210b4100210220364101470d152035450d1520101030410021020c150b4101210b4100210220394101470d142038450d140c110b4101210b4100210220124101470d132011450d1320371030410021020c130b2013450d1020391030410021020c120b4101210b4100210220394101470d112038450d110c0e0b20054188176a200541286a41c8031085051a200541d01a6a200541f8036a41c8031085051a200541f4036a28020021094100210202400340200541d01a6a200210f201220a450d01200241016a2102200a2d00000d000b20004201370300200041063602080c050b200541981e6a200541286a41c8031085051a200541981e6a41186a220229030021042002200541d01a6a41186a29030037030020052903a81e210c200520052903e01a3703a81e20052903a01e215d200520052903d81a3703a01e20052903981e215e200520052903d01a3703981e200541981e6a41206a220b290300215f200541981e6a41286a22082903002160200541981e6a41306a22072903002161200541981e6a41386a22062903002162200541d01a6a41c0036a2903002163200541d01a6a41a0036a2903002164200541d01a6a41a8036a2903002165200541d01a6a41b0036a2903002166200541d01a6a41b8036a2903002167200541d01a6a4180036a2903002168200541d01a6a4188036a2903002169200541d01a6a4190036a290300216a200541d01a6a4198036a290300216b200541d01a6a41e0026a290300216c200541d01a6a41e8026a290300216d200541d01a6a41f0026a290300216e200541d01a6a41f8026a290300216f200541d01a6a41c0026a2903002170200541d01a6a41c8026a2903002171200541d01a6a41d0026a2903002172200541d01a6a41d8026a2903002173200541d01a6a41a0026a2903002174200541d01a6a41a8026a2903002175200541d01a6a41b0026a2903002176200541d01a6a41b8026a2903002177200541d01a6a4180026a2903002178200541d01a6a4188026a2903002179200541d01a6a4190026a290300217a200541d01a6a4198026a290300217b200541d01a6a41e0016a290300217c200541d01a6a41e8016a290300217d200541d01a6a41f0016a290300217e200541d01a6a41f8016a290300217f200541d01a6a41c0016a290300218001200541d01a6a41c8016a290300218101200541d01a6a41d0016a290300218201200541d01a6a41d8016a290300218301200541d01a6a41a0016a290300218401200541d01a6a41a8016a290300218501200541d01a6a41b0016a290300218601200541d01a6a41b8016a290300218701200541d01a6a4180016a290300218801200541d01a6a4188016a290300218901200541d01a6a4190016a290300218a01200541d01a6a4198016a290300218b01200541d01a6a41f8006a290300218c01200541d01a6a41e0006a290300218d01200541d01a6a41e8006a290300218e01200541d01a6a41f0006a290300218f01200541d01a6a41c0006a290300219001200541d01a6a41c8006a290300219101200541d01a6a41d0006a290300219201200541d01a6a41d8006a290300219301200541d01a6a41206a290300219401200541d01a6a41286a290300219501200541d01a6a41306a2903002196012006200541d01a6a41386a29030037030020072096013703002008209501370300200b209401370300200541981e6a41d8006a220b290300219401200b209301370300200541981e6a41d0006a220d290300219301200d209201370300200541981e6a41c8006a220e290300219201200e209101370300200541981e6a41c0006a220f290300219101200f209001370300200541981e6a41f0006a220f290300219001200f208f01370300200541981e6a41e8006a2228290300218f012028208e01370300200541981e6a41e0006a2223290300218e012023208d01370300200541981e6a41f8006a2223290300218d012023208c01370300200541981e6a4180016a2257290300218c01200541981e6a4188016a221e290300219501200541981e6a4190016a225c290300219601200541981e6a4198016a22192903002197012019208b01370300205c208a01370300201e2089013703002057208801370300200541981e6a41a0016a2230290300218801200541981e6a41a8016a2257290300218901200541981e6a41b0016a2234290300218a01200541981e6a41b8016a2252290300218b012052208701370300203420860137030020572085013703002030208401370300200541981e6a41c0016a225b290300218401200541981e6a41c8016a2230290300218501200541981e6a41d0016a224d290300218601200541981e6a41d8016a222c290300218701202c208301370300204d2082013703002030208101370300205b208001370300200541981e6a41e0016a2227290300218001200541981e6a41e8016a225b290300218101200541981e6a41f0016a2256290300218201200541981e6a41f8016a22482903002183012048207f3703002056207e370300205b207d3703002027207c370300200541981e6a4180026a2259290300217c200541981e6a4188026a2227290300217d200541981e6a4190026a2214290300217e200541981e6a4198026a2251290300217f2051207b3703002014207a3703002027207937030020592078370300200541981e6a41a0026a22432903002178200541981e6a41a8026a22592903002179200541981e6a41b0026a2233290300217a200541981e6a41b8026a2222290300217b20222077370300203320763703002059207537030020432074370300200541981e6a41c0026a222f2903002174200541981e6a41c8026a22432903002175200541981e6a41d0026a224c2903002176200541981e6a41d8026a2254290300217720542073370300204c207237030020432071370300202f2070370300200541981e6a41e0026a224f2903002170200541981e6a41e8026a222f2903002171200541981e6a41f0026a22322903002172200541981e6a41f8026a225829030021732058206f3703002032206e370300202f206d370300204f206c370300200541981e6a4180036a2247290300216c200541981e6a4188036a224f290300216d200541981e6a4190036a222b290300216e200541981e6a4198036a221d290300216f201d206b370300202b206a370300204f206937030020472068370300200541981e6a41a0036a223e2903002168200541981e6a41a8036a22472903002169200541981e6a41b0036a222e290300216a200541981e6a41b8036a2253290300216b20532067370300202e206637030020472065370300203e2064370300200541981e6a41c0036a223e2903002164203e2063370300200541e0216a41b8036a206b370300200541e0216a41b0036a206a370300200541e0216a41a8036a2069370300200541e0216a41a0036a2068370300200541e0216a4198036a206f370300200541e0216a4190036a206e370300200541e0216a4188036a206d370300200541e0216a4180036a206c370300200541e0216a41f8026a2073370300200541e0216a41f0026a2072370300200541e0216a41e8026a2071370300200541e0216a41e0026a2070370300200541e0216a41d8026a2077370300200541e0216a41d0026a2076370300200541e0216a41c8026a2075370300200541e0216a41c0026a2074370300200541e0216a41b8026a207b370300200541e0216a41b0026a207a370300200541e0216a41a8026a2079370300200541e0216a41a0026a2078370300200541e0216a4198026a207f370300200541e0216a4190026a207e370300200541e0216a4188026a207d370300200541e0216a4180026a207c370300200541e0216a41f8016a208301370300200541e0216a41f0016a208201370300200541e0216a41e8016a208101370300200541e0216a41e0016a208001370300200541e0216a41d8016a208701370300200541e0216a41d0016a208601370300200541e0216a41c8016a208501370300200541e0216a41c0016a208401370300200541e0216a41b8016a208b01370300200541e0216a41b0016a208a01370300200541e0216a41a8016a208901370300200541e0216a41a0016a208801370300200541e0216a4198016a209701370300200541e0216a4190016a209601370300200541e0216a4188016a209501370300200541e0216a4180016a208c01370300200541e0216a41f8006a208d01370300200541e0216a41f0006a209001370300200541e0216a41e8006a208f01370300200541e0216a41e0006a208e01370300200541e0216a41d8006a209401370300200541e0216a41d0006a209301370300200541e0216a41c8006a209201370300200541e0216a41c0006a209101370300200541e0216a41386a2062370300200541e0216a41306a2061370300200541e0216a41286a2060370300200541e0216a41206a205f370300200541e0216a41186a2004370300200541e0216a41c0036a20643703002005200c3703f0212005205d3703e8212005205e3703e021200541c80f6a200541981e6a200541e0216a10e0030240024020052903c80f4209520d00420921040c010b2002290300215e2002200541c80f6a41186a29030037030020052903a81e215d200520052903d80f3703a81e20052903a01e210c200520052903d00f3703a01e20052903981e2104200520052903c80f3703981e200629030021622007290300216120082903002160200541c80f6a41c0036a290300219401200541c80f6a41a0036a290300219301200541c80f6a41a8036a290300219501200541c80f6a41b0036a290300219601200541c80f6a41b8036a290300219701200541c80f6a4180036a290300218f01200541c80f6a4188036a290300219001200541c80f6a4190036a290300219101200541c80f6a4198036a290300219201200541c80f6a41e0026a290300218b01200541c80f6a41e8026a290300218c01200541c80f6a41f0026a290300218d01200541c80f6a41f8026a290300218e01200541c80f6a41c0026a290300218701200541c80f6a41c8026a290300218801200541c80f6a41d0026a290300218901200541c80f6a41d8026a290300218a01200541c80f6a41a0026a290300218301200541c80f6a41a8026a290300218401200541c80f6a41b0026a290300218501200541c80f6a41b8026a290300218601200541c80f6a4180026a290300217f200541c80f6a4188026a290300218001200541c80f6a4190026a290300218101200541c80f6a4198026a290300218201200541c80f6a41e0016a290300217b200541c80f6a41e8016a290300217c200541c80f6a41f0016a290300217d200541c80f6a41f8016a290300217e200541c80f6a41c0016a2903002177200541c80f6a41c8016a2903002178200541c80f6a41d0016a2903002179200541c80f6a41d8016a290300217a200541c80f6a41a0016a2903002173200541c80f6a41a8016a2903002174200541c80f6a41b0016a2903002175200541c80f6a41b8016a2903002176200541c80f6a4180016a290300216f200541c80f6a4188016a2903002170200541c80f6a4190016a2903002171200541c80f6a4198016a2903002172200541c80f6a41e0006a290300216b200541c80f6a41c0006a2903002167200541c80f6a41206a2903002163200541c80f6a41f8006a290300216c200541c80f6a41e8006a290300216a200541c80f6a41f0006a2903002168200541c80f6a41c8006a2903002169200541c80f6a41d0006a2903002164200541c80f6a41d8006a2903002165200541c80f6a41286a2903002166200541c80f6a41306a290300216d20052903b81e215f2006200541c80f6a41386a2903003703002007206d37030020082066370300200b2903002166200b2065370300200d2903002165200d2064370300200e2903002164200e2069370300200f2903002169200f2068370300202829030021682028206a3703002023290300216a2023206c370300200520633703b81e20052903d81e2163200520673703d81e20052903f81e21672005206b3703f81e2019290300216e205c290300216d201e290300216c20052903981f216b20192072370300205c2071370300201e20703703002005206f3703981f20522903002172203429030021712057290300217020052903b81f216f205220763703002034207537030020572074370300200520733703b81f202c2903002176204d29030021752030290300217420052903d81f2173202c207a370300204d207937030020302078370300200520773703d81f2048290300217a20562903002179205b290300217820052903f81f21772048207e3703002056207d370300205b207c3703002005207b3703f81f2051290300217e2014290300217d2027290300217c200529039820217b2051208201370300201420810137030020272080013703002005207f3703982020222903002182012033290300218101205929030021800120052903b820217f20222086013703002033208501370300205920840137030020052083013703b8202054290300218601204c290300218501204329030021840120052903d8202183012054208a01370300204c208901370300204320880137030020052087013703d8202058290300218a012032290300218901202f29030021880120052903f8202187012058208e013703002032208d01370300202f208c013703002005208b013703f820201d290300218e01202b290300218d01204f290300218c01200529039821218b01201d209201370300202b209101370300204f2090013703002005208f01370398212053290300219201202e290300219101204729030021900120052903b821218f012053209701370300202e209601370300204720950137030020052093013703b82120052903d82121930120052094013703d8210b20044209520d03200541d8076a200541981e6a41c8031085051a200541d00b6a200941e8031085051a200541e0216a200541d8076a200541d00b6a2003420010da0320052903e821210420052903e021210c200541c80f6a200541e0216a41106a41b0071085051a0240200c4201510d00200910304100210a4101210b41002108410121074101210641012102410121090c250b200041106a200541c80f6a41b0071085051a2000420137030020002004370308200910300c0c0b200541e4216a200541d8076a41c8031085051a200541c80f6a200541e0216a41cc031085051a2000410b3602082000410c6a200541c80f6a41cc031085051a200041f0036a200e360200200041ec036a200d360200200041e8036a200f360200200041e4036a2006360200200041e0036a200b360200200041dc036a2007360200200041d8036a41013a000020004201370300200541d00b6a109c010c0a0b200041086a200541cc0f6a41b8071085051a200042013703000b200541d00b6a109a0102402008200a460d000340200a109a01200a41f8036a210a200941887c6a22090d000b0b0240200d450d00200d41f8036c450d00200b10300b200541981e6a109c01200541d01a6a109c014100210041012107410121084101210a4101210941012103410121020c200b20054188256a20900137030020054180256a208f01370300200541e8246a208c01370300200541e0246a208b01370300200541c8246a208801370300200541c0246a208701370300200541a8246a208401370300200541a0246a20830137030020054188246a20800137030020054180246a207f370300200541e8236a207c370300200541e0236a207b370300200541c8236a2078370300200541c0236a2077370300200541a8236a2074370300200541a0236a207337030020054188236a207037030020054180236a206f370300200541e8226a206c370300200541e0226a206b370300200541c8226a2068370300200541c0226a2067370300200541a8226a2064370300200541a0226a206337030020054188226a206037030020054180226a205f370300200541a0256a20930137030020054190256a209101370300200541f0246a208d01370300200541d0246a208901370300200541b0246a20850137030020054190246a208101370300200541f0236a207d370300200541d0236a2079370300200541b0236a207537030020054190236a2071370300200541f0226a206d370300200541d0226a2069370300200541b0226a206537030020054190226a206137030020054198256a209201370300200541f8246a208e01370300200541d8246a208a01370300200541b8246a20860137030020054198246a208201370300200541f8236a207e370300200541d8236a207a370300200541b8236a207637030020054198236a2072370300200541f8226a206e370300200541d8226a206a370300200541b8226a206637030020054198226a2062370300200541f8216a205e370300200520043703e0212005200c3703e8212005205d3703f021200541e0216a109c01200042013703002000410c360208200541981e6a109c010b200910960120091030200a450d07200541d01a6a109c0120054188176a109c010c070b200041086a200541cc0f6a41b8071085051a200042013703000b200541d00b6a109c010240200e450d00200e4198046c2102200f21000340200010a00120004198046a2100200241e87b6a22020d000b0b0240200d450d00200d4198046c450d00200f10300b200541d8076a109c0102402006450d00200641f8036c21022007210003402000109a01200041f8036a2100200241887c6a22020d000b0b200b450d04200b41f8036c450d04200710300c040b2000420137030020004104360208200541286a109c0141012107410121080c170b200042013703002000421537030820021096010c1d0b200541d01a6a200541d8076a41047241dc001085051a0c0e0b200042013703002000410d360208410121000c0e0b200541981e6a109c014100210241012107410121084101210a41012109410121030c160b4100210a41012107410121080c130b20131030410021020c020b410021020c010b20181030410021020b4100210841012107410121060c0d0b201d10300c050b202210300c040b202710300c030b202c10300c020b203010300c010b203410300b410021084101210741012106410021020c060b200541e0216a200541d01a6a41dc001085051a200541981e6a410472200541e0216a41dc001085051a200520023602981e200541c80f6a200541d00b6a41c8031085051a200541e0216a200541c80f6a200a10e1030240024020052802e0214101460d0020054188176a41086a220a200541f4216a29020037030020054188176a41106a2209200541fc216a29020037030020054188176a41186a220820054184226a2802003602002005200541ec216a29020037038817200541e0216a41086a280200210720054188226a280200210220052802e4212106200541e0216a200541981e6a10e101024020052903e021220c2004580d00200042013703002000411336020820022002280200417f6a220036020020000d022002280208200228020c2802001102000240200228020c280204450d00200228020810300b200241046a22002000280200417f6a220036020020000d02200210300c020b200541e0216a200541981e6a41e0001085051a200541d01a6a41086a200529038817370300200541d01a6a41106a200a290300370300200541d01a6a41186a2009290300370300200541f01a6a2008280200360200200520073602d41a200520063602d01a200520023602f41a200541c80f6a200541e0216a200541d01a6a10e2012003427f2003290300225d4200200c200541c80f6a41106a290300200c20052802d00f1b7d22042004200c561b22047c220c200c205d541b3703000240200541bc086a280200450d0020052802b80810300b410021084101210b41012107410021060c060b200541c80f6a200541e8216a41c8031085051a200541c80f6a109c01200042013703002000410e3602080b200541981e6a10b202410021000b0240200541bc086a280200450d0020052802b80810300b02402000450d00200541d00b6a109c010b4100210941012107410121084101210a0c070b2008200a460d000340200a109a012008200a41f8036a220a470d000b0b0240200d450d00200d41f8036c450d00200b10300b200541981e6a109c01200541d01a6a109c014200210441012107410021084100210b0b410121060b410121020b4101210a410121090c050b4101210a0b410121090b41012103410121020b410121000b0240024002400240024002400240024020052d00f0030e0b000102030405060a0a0a070a0b2007450d090240200541fc036a2802002202450d00200541f4036a2802002100200241f8036c210203402000109a01200041f8036a2100200241887c6a22020d000b0b0240200541f8036a2802002200450d00200041f8036c450d0020052802f40310300b20054180046a28020020054188046a28020010a40120054184046a2802002200450d0920004198046c450d0920052802800410300c090b2008450d080240200541fc036a2802002202450d00200541f4036a2802002100200241f8036c210203402000109a01200041f8036a2100200241887c6a22020d000b0b0240200541f8036a2802002200450d00200041f8036c450d0020052802f40310300b20054180046a28020020054188046a28020010a40120054184046a2802002200450d0820004198046c450d0820052802800410300c080b2003450d070240200541fc036a2802002202450d00200541f4036a2802002100200241f8036c210203402000109a01200041f8036a2100200241887c6a22020d000b0b0240200541f8036a2802002200450d00200041f8036c450d0020052802f40310300b20054180046a28020020054188046a28020010a40120054184046a2802002200450d0720004198046c450d0720052802800410300c070b0240200541fc036a2802002202450d00200541f4036a2802002100200241f8036c210203402000109a01200041f8036a2100200241887c6a22020d000b0b200541f8036a2802002200450d06200041f8036c450d0620052802f40310300c060b2000450d050240200541fc036a2802002202450d00200541f4036a2802002100200241f8036c210203402000109a01200041f8036a2100200241887c6a22020d000b0b0240200541f8036a2802002200450d00200041f8036c450d0020052802f40310300b20054180046a109c010c050b2002450d040240200541fc036a2802002202450d00200541f4036a2802002100200241f8036c210203402000109a01200041f8036a2100200241887c6a22020d000b0b0240200541f8036a2802002200450d00200041f8036c450d0020052802f40310300b20054190046a109c01024020054188046a2802002202450d0020054180046a280200210020024198046c21020340200010a00120004198046a2100200241e87b6a22020d000b0b20054184046a2802002200450d0420004198046c450d0420052802800410300c040b2009450d030240200541e4046a280200450d00200541e0046a28020010300b2005280280044102460d0320054180046a10b2020c030b200a450d02200541f8036a109c01200541f4036a2200280200109601200028020010300c020b410121030b02400240024002400240024002400240024020052d00f0030e0b0001020304050608080807080b2003450d070240200541fc036a2802002203450d00200541f4036a2802002102200341f8036c210303402002109a01200241f8036a2102200341887c6a22030d000b0b0240200541f8036a2802002202450d00200241f8036c450d0020052802f40310300b20054180046a28020020054188046a28020010a40120054184046a2802002202450d0720024198046c450d0720052802800410300c070b2009450d060240200541fc036a2802002203450d00200541f4036a2802002102200341f8036c210303402002109a01200241f8036a2102200341887c6a22030d000b0b0240200541f8036a2802002202450d00200241f8036c450d0020052802f40310300b20054180046a28020020054188046a28020010a40120054184046a2802002202450d0620024198046c450d0620052802800410300c060b2007450d050240200541fc036a2802002203450d00200541f4036a2802002102200341f8036c210303402002109a01200241f8036a2102200341887c6a22030d000b0b0240200541f8036a2802002202450d00200241f8036c450d0020052802f40310300b20054180046a28020020054188046a28020010a40120054184046a2802002202450d0520024198046c450d0520052802800410300c050b2002450d040240200541fc036a2802002203450d00200541f4036a2802002102200341f8036c210303402002109a01200241f8036a2102200341887c6a22030d000b0b200541f8036a2802002202450d04200241f8036c450d0420052802f40310300c040b200b450d030240200541fc036a2802002203450d00200541f4036a2802002102200341f8036c210303402002109a01200241f8036a2102200341887c6a22030d000b0b0240200541f8036a2802002202450d00200241f8036c450d0020052802f40310300b20054180046a109c010c030b0240200541fc036a2802002203450d00200541f4036a2802002102200341f8036c210303402002109a01200241f8036a2102200341887c6a22030d000b0b0240200541f8036a2802002202450d00200241f8036c450d0020052802f40310300b20054190046a109c01024020054188046a2802002203450d0020054180046a280200210220034198046c21030340200210a00120024198046a2102200341e87b6a22030d000b0b20054184046a2802002202450d0220024198046c450d0220052802800410300c020b2006450d010240200541e4046a280200450d00200541e0046a28020010300b2005280280044102460d0120054180046a10b2020c010b200a450d00200541f8036a109c01200541f4036a2202280200109601200228020010300b024020080d0020004200370300200020043703080c010b200541d00b6a41106a200541106a41106a290300370300200541d00b6a41086a200541106a41086a290300370300200520052903103703d00b2008200c422088a74198046c22026a2109200ca7210b0240024020020d00200821020c010b200241e87b6a2103200541e0216a41106a2107200541286a41017221062008210202400240034020022d0000220a4108460d022005200a3a00282006200241016a4197041085051a200541e0216a2001200541d00b6a200541286a10e20320052903e821215d20052903e021210c200541c80f6a200741b0071085051a200c4201510d01200341e87b6a2103205d20047c210420024198046a22022009470d000b200921020c020b200041106a200541c80f6a41b0071085051a200042013703002000205d37030820024198046a20034198046d10a4010240200b450d00200b4198046c450d00200810300b200541d00b6a10dc03200541d00b6a41106a22022802002100200241003602002000450d02024020052802dc0b2202450d00034020002802b02b21002002417f6a22020d000b0b200541003602e821200520003602e421200541003602e0212005200541e40b6a2802003602ec21200541e0216a10dd030c020b20024198046a21020b2002200920026b4198046d10a4010240200b450d00200b4198046c450d00200810300b200541d00b6a10dc03200541e00b6a220328020021022003410036020002402002450d00024020052802dc0b2203450d00034020022802b02b21022003417f6a22030d000b0b200541003602e821200520023602e421200541003602e0212005200541e40b6a2802003602ec21200541e0216a10dd030b20004200370300200020043703080b2001109c01200541a0296a24000bfc2b01017f230041c0036b22022400024002400240024002400240024002400240024020012802000e09010203040506070800010b2002200141086a10f101200241386a200141c0006a10f101200241f0006a200141f8006a10f101200241a8016a200141b0016a10f101200241e0016a200141e8016a10f10120024198026a200141a0026a10f101200241d0026a200141d8026a10f10120024188036a20014190036a10f101200041386a200241306a290300370300200041306a200241286a290300370300200041286a200241206a290300370300200041206a200241186a290300370300200041186a200241106a290300370300200041106a200241086a29030037030020002002290300370308200041c0006a2002290338370300200041c8006a200241386a41086a290300370300200041d0006a200241386a41106a290300370300200041d8006a200241386a41186a290300370300200041e0006a200241386a41206a290300370300200041e8006a200241386a41286a290300370300200041f0006a200241386a41306a290300370300200041a8016a200241f0006a41306a290300370300200041a0016a200241f0006a41286a29030037030020004198016a200241f0006a41206a29030037030020004190016a200241f0006a41186a29030037030020004188016a200241f0006a41106a29030037030020004180016a200241f0006a41086a290300370300200041f8006a2002290370370300200041e0016a200241a8016a41306a290300370300200041d8016a200241a8016a41286a290300370300200041d0016a200241a8016a41206a290300370300200041c8016a200241a8016a41186a290300370300200041c0016a200241a8016a41106a290300370300200041b8016a200241a8016a41086a290300370300200041b0016a20022903a80137030020004198026a200241e0016a41306a29030037030020004190026a200241e0016a41286a29030037030020004188026a200241e0016a41206a29030037030020004180026a200241e0016a41186a290300370300200041f8016a200241e0016a41106a290300370300200041f0016a200241e0016a41086a290300370300200041e8016a20022903e001370300200041d0026a20024198026a41306a290300370300200041c8026a20024198026a41286a290300370300200041c0026a20024198026a41206a290300370300200041b8026a20024198026a41186a290300370300200041b0026a20024198026a41106a290300370300200041a8026a20024198026a41086a290300370300200041a0026a20022903980237030020004188036a200241d0026a41306a29030037030020004180036a200241d0026a41286a290300370300200041f8026a200241d0026a41206a290300370300200041f0026a200241d0026a41186a290300370300200041e8026a200241d0026a41106a290300370300200041e0026a200241d0026a41086a290300370300200041d8026a20022903d002370300200041c0036a20024188036a41306a290300370300200041b8036a20024188036a41286a290300370300200041b0036a20024188036a41206a290300370300200041a8036a20024188036a41186a290300370300200041a0036a20024188036a41106a29030037030020004198036a20024188036a41086a29030037030020004190036a200229038803370300200042083703000c080b200042003703000c070b20024188036a200141086a10f10120004201370300200041386a20024188036a41306a290300370300200041306a20024188036a41286a290300370300200041286a20024188036a41206a290300370300200041206a20024188036a41186a290300370300200041186a20024188036a41106a290300370300200041106a20024188036a41086a29030037030020002002290388033703080c060b200241d0026a200141086a10f10120024188036a200141c0006a10f101200041386a200241d0026a41306a290300370300200041306a200241d0026a41286a290300370300200041286a200241d0026a41206a290300370300200041206a200241d0026a41186a290300370300200041186a200241d0026a41106a290300370300200041106a200241d0026a41086a290300370300200020022903d002370308200041c0006a200229038803370300200041c8006a20024188036a41086a290300370300200041d0006a20024188036a41106a290300370300200041d8006a20024188036a41186a290300370300200041e0006a20024188036a41206a290300370300200041e8006a20024188036a41286a290300370300200041f0006a20024188036a41306a290300370300200042023703000c050b20024198026a200141086a10f101200241d0026a200141c0006a10f10120024188036a200141f8006a10f101200041386a20024198026a41306a290300370300200041306a20024198026a41286a290300370300200041286a20024198026a41206a290300370300200041206a20024198026a41186a290300370300200041186a20024198026a41106a290300370300200041106a20024198026a41086a2903003703002000200229039802370308200041c0006a20022903d002370300200041c8006a200241d0026a41086a290300370300200041d0006a200241d0026a41106a290300370300200041d8006a200241d0026a41186a290300370300200041e0006a200241d0026a41206a290300370300200041e8006a200241d0026a41286a290300370300200041f0006a200241d0026a41306a29030037030020004203370300200041a8016a20024188036a41306a290300370300200041a0016a20024188036a41286a29030037030020004198016a20024188036a41206a29030037030020004190016a20024188036a41186a29030037030020004188016a20024188036a41106a29030037030020004180016a20024188036a41086a290300370300200041f8006a2002290388033703000c040b200241e0016a200141086a10f10120024198026a200141c0006a10f101200241d0026a200141f8006a10f10120024188036a200141b0016a10f101200041386a200241e0016a41306a290300370300200041306a200241e0016a41286a290300370300200041286a200241e0016a41206a290300370300200041206a200241e0016a41186a290300370300200041186a200241e0016a41106a290300370300200041106a200241e0016a41086a290300370300200020022903e001370308200041c0006a200229039802370300200041c8006a20024198026a41086a290300370300200041d0006a20024198026a41106a290300370300200041d8006a20024198026a41186a290300370300200041e0006a20024198026a41206a290300370300200041e8006a20024198026a41286a290300370300200041f0006a20024198026a41306a290300370300200041a8016a200241d0026a41306a290300370300200041a0016a200241d0026a41286a29030037030020004198016a200241d0026a41206a29030037030020004190016a200241d0026a41186a29030037030020004188016a200241d0026a41106a29030037030020004180016a200241d0026a41086a290300370300200041f8006a20022903d002370300200041e0016a20024188036a41306a290300370300200041d8016a20024188036a41286a290300370300200041d0016a20024188036a41206a290300370300200041c8016a20024188036a41186a290300370300200041c0016a20024188036a41106a290300370300200041b8016a20024188036a41086a290300370300200041b0016a200229038803370300200042043703000c030b200241a8016a200141086a10f101200241e0016a200141c0006a10f10120024198026a200141f8006a10f101200241d0026a200141b0016a10f10120024188036a200141e8016a10f101200041386a200241a8016a41306a290300370300200041306a200241a8016a41286a290300370300200041286a200241a8016a41206a290300370300200041206a200241a8016a41186a290300370300200041186a200241a8016a41106a290300370300200041106a200241a8016a41086a290300370300200020022903a801370308200041c0006a20022903e001370300200041c8006a200241e0016a41086a290300370300200041d0006a200241e0016a41106a290300370300200041d8006a200241e0016a41186a290300370300200041e0006a200241e0016a41206a290300370300200041e8006a200241e0016a41286a290300370300200041f0006a200241e0016a41306a290300370300200041a8016a20024198026a41306a290300370300200041a0016a20024198026a41286a29030037030020004198016a20024198026a41206a29030037030020004190016a20024198026a41186a29030037030020004188016a20024198026a41106a29030037030020004180016a20024198026a41086a290300370300200041f8006a200229039802370300200041e0016a200241d0026a41306a290300370300200041d8016a200241d0026a41286a290300370300200041d0016a200241d0026a41206a290300370300200041c8016a200241d0026a41186a290300370300200041c0016a200241d0026a41106a290300370300200041b8016a200241d0026a41086a290300370300200041b0016a20022903d00237030020004198026a20024188036a41306a29030037030020004190026a20024188036a41286a29030037030020004188026a20024188036a41206a29030037030020004180026a20024188036a41186a290300370300200041f8016a20024188036a41106a290300370300200041f0016a20024188036a41086a290300370300200041e8016a200229038803370300200042053703000c020b200241f0006a200141086a10f101200241a8016a200141c0006a10f101200241e0016a200141f8006a10f10120024198026a200141b0016a10f101200241d0026a200141e8016a10f10120024188036a200141a0026a10f101200041386a200241f0006a41306a290300370300200041306a200241f0006a41286a290300370300200041286a200241f0006a41206a290300370300200041206a200241f0006a41186a290300370300200041186a200241f0006a41106a290300370300200041106a200241f0006a41086a29030037030020002002290370370308200041c0006a20022903a801370300200041c8006a200241a8016a41086a290300370300200041d0006a200241a8016a41106a290300370300200041d8006a200241a8016a41186a290300370300200041e0006a200241a8016a41206a290300370300200041e8006a200241a8016a41286a290300370300200041f0006a200241a8016a41306a290300370300200041a8016a200241e0016a41306a290300370300200041a0016a200241e0016a41286a29030037030020004198016a200241e0016a41206a29030037030020004190016a200241e0016a41186a29030037030020004188016a200241e0016a41106a29030037030020004180016a200241e0016a41086a290300370300200041f8006a20022903e001370300200041e0016a20024198026a41306a290300370300200041d8016a20024198026a41286a290300370300200041d0016a20024198026a41206a290300370300200041c8016a20024198026a41186a290300370300200041c0016a20024198026a41106a290300370300200041b8016a20024198026a41086a290300370300200041b0016a20022903980237030020004198026a200241d0026a41306a29030037030020004190026a200241d0026a41286a29030037030020004188026a200241d0026a41206a29030037030020004180026a200241d0026a41186a290300370300200041f8016a200241d0026a41106a290300370300200041f0016a200241d0026a41086a290300370300200041e8016a20022903d002370300200041d0026a20024188036a41306a290300370300200041c8026a20024188036a41286a290300370300200041c0026a20024188036a41206a290300370300200041b8026a20024188036a41186a290300370300200041b0026a20024188036a41106a290300370300200041a8026a20024188036a41086a290300370300200041a0026a200229038803370300200042063703000c010b200241386a200141086a10f101200241f0006a200141c0006a10f101200241a8016a200141f8006a10f101200241e0016a200141b0016a10f10120024198026a200141e8016a10f101200241d0026a200141a0026a10f10120024188036a200141d8026a10f101200041386a200241386a41306a290300370300200041306a200241386a41286a290300370300200041286a200241386a41206a290300370300200041206a200241386a41186a290300370300200041186a200241386a41106a290300370300200041106a200241386a41086a29030037030020002002290338370308200041c0006a2002290370370300200041c8006a200241f0006a41086a290300370300200041d0006a200241f0006a41106a290300370300200041d8006a200241f0006a41186a290300370300200041e0006a200241f0006a41206a290300370300200041e8006a200241f0006a41286a290300370300200041f0006a200241f0006a41306a290300370300200041a8016a200241a8016a41306a290300370300200041a0016a200241a8016a41286a29030037030020004198016a200241a8016a41206a29030037030020004190016a200241a8016a41186a29030037030020004188016a200241a8016a41106a29030037030020004180016a200241a8016a41086a290300370300200041f8006a20022903a801370300200041e0016a200241e0016a41306a290300370300200041d8016a200241e0016a41286a290300370300200041d0016a200241e0016a41206a290300370300200041c8016a200241e0016a41186a290300370300200041c0016a200241e0016a41106a290300370300200041b8016a200241e0016a41086a290300370300200041b0016a20022903e00137030020004198026a20024198026a41306a29030037030020004190026a20024198026a41286a29030037030020004188026a20024198026a41206a29030037030020004180026a20024198026a41186a290300370300200041f8016a20024198026a41106a290300370300200041f0016a20024198026a41086a290300370300200041e8016a200229039802370300200041d0026a200241d0026a41306a290300370300200041c8026a200241d0026a41286a290300370300200041c0026a200241d0026a41206a290300370300200041b8026a200241d0026a41186a290300370300200041b0026a200241d0026a41106a290300370300200041a8026a200241d0026a41086a290300370300200041a0026a20022903d00237030020004188036a20024188036a41306a29030037030020004180036a20024188036a41286a290300370300200041f8026a20024188036a41206a290300370300200041f0026a20024188036a41186a290300370300200041e8026a20024188036a41106a290300370300200041e0026a20024188036a41086a290300370300200041d8026a200229038803370300200042073703000b200241c0036a24000bc404020a7f027e230041b0076b22012400200028020421022000410036020402402002450d00024020002802002203450d00034020022802a82921022003417f6a22030d000b0b024020002802082204450d00200141d8036a2105200141d0036a410472210641002107200141a8076a210803400240024002400240200720022f01a629490d0041002100034041002103024020022802a0292209450d00200041016a210a20022f01a4292107200921030b024041d82941a82920001b450d00200210300b024020030d00410221030c050b200a210020032102200720032f01a6294f0d000b2003200741d0036c6a2100200320074104746a220241f8276a290300210b200241f0276a290300210c0240200a0d00200321020c020b200741027420036a41ac296a28020021020240200a417f6a2203450d00034020022802a82921022003417f6a22030d000b0b410021070c020b2002200741d0036c6a2100200220074104746a220341f8276a290300210b200341f0276a290300210c0b200741016a21070b20002802002103200141d0036a200041046a41cc031085051a0b2004417f6a2104200141046a200141d0036a41cc031085051a200120033602d0032006200141046a41cc031085051a2008200b3703002001200c3703a007024020030d002005109c0120040d010c020b024020012802d803450d0020012802d40310300b20040d000b0b41002103034020022802a0292100024041d82941a82920031b450d00200210300b2003417f6a21032000210220000d000b0b200141b0076a24000bfc0301097f230041f0076b220124000240200028020c2202450d0020014180046a2103200141f8036a4104722104034020002002417f6a36020c2000280200210502400240024020002802082206200028020422022f01ae2b4f0d00200521070c010b2002210803400240024020082802a82b22090d00410021020c010b200541016a210720022f01ac2b2106200921020b024041e02b41b02b20051b450d00200810300b024020020d00410221050c030b2007210520022108200620022f01ae2b4f0d000b0b200641016a21082002200641f8036c6a210602402007450d00200220084102746a41b02b6a280200210202402007417f6a2205450d00034020022802b02b21022005417f6a22050d000b0b410021080b20062802002105200141f8036a200641046a41f4031085051a0b200141046a200141f8036a41f4031085051a200020083602082000200236020420004100360200200120053602f8032004200141046a41f4031085051a0240024020050d002003109c010c010b200128028004450d0020012802fc0310300b024020012d00c8074106490d0020012802d007450d0020012802cc0710300b200028020c22020d000b0b2000280204210820002802002102034020082802a82b2105024041e02b41b02b20021b450d00200810300b200241016a21022005210820050d000b200141f0076a24000bd40301067f23004180046b2202240020004200370204200041106a4200370200200128020022032001280208220441f8036c6a21052001280204210620032107024002402004450d00200241086a4104722104200321010340024020012802002207410c470d00200141f8036a21070c020b200220073602082004200141046a41f4031085051a2000200241086a10ed03200141f8036a22012005470d000c020b0b20052007460d0003402007220141f8036a210702400240024002400240024002400240024020012802000e0b0808080800010203040506070b200141086a280200450d07200141046a28020010300c070b200141086a280200450d06200141046a28020010300c060b200141086a109c010c050b200141086a109c010c040b200141086a280200450d03200141046a28020010300c030b0240200141086a280200450d00200141046a28020010300b200141106a2d00004106490d02200141186a280200450d02200141146a28020010300c020b200141086a109c010c010b200141086a109c01200141d0036a2d00004106490d00200141d8036a280200450d00200141d4036a28020010300b20052007470d000b0b02402006450d00200641f8036c450d00200310300b20024180046a24000b935403037f017e4c7f230041a00a6b2202240041002103024020002802002204410b4b0d00410120047441c01971450d00200041086a2100024002400240024002400240024002400240024020012802000e09010203040506070800010b20024198076a200141086a10f101200241d0076a200141c0006a10f10120024188086a200141f8006a10f101200241c0086a200141b0016a10f101200241f8086a200141e8016a10f101200241b0096a200141a0026a10f101200241e8096a200141d8026a10f101200241086a20014190036a10f10120024188046a20024198076a41306a290300370300200241d0036a41306a20024198076a41286a290300370300200241d0036a41286a20024198076a41206a290300370300200241d0036a41206a20024198076a41186a290300370300200241d0036a41186a20024198076a41106a290300370300200241d0036a41106a20024198076a41086a290300370300200241d0036a41c0006a20022903d00737030020024198046a200241d0076a41086a290300370300200241a0046a200241d0076a41106a290300370300200241a8046a200241d0076a41186a290300370300200241b0046a200241d0076a41206a290300370300200241b8046a200241d0076a41286a290300370300200241c0046a200241d0076a41306a29030037030020022002290398073703d803200241f8046a20024188086a41306a290300370300200241f0046a20024188086a41286a290300370300200241e8046a20024188086a41206a290300370300200241e0046a20024188086a41186a290300370300200241d8046a20024188086a41106a290300370300200241d0046a20024188086a41086a290300370300200241d0036a41f8006a200229038808370300200241b0056a200241c0086a41306a290300370300200241a8056a200241c0086a41286a290300370300200241a0056a200241c0086a41206a29030037030020024198056a200241c0086a41186a29030037030020024190056a200241c0086a41106a29030037030020024188056a200241c0086a41086a290300370300200241d0036a41b0016a20022903c008370300200241e8056a200241f8086a41306a290300370300200241e0056a200241f8086a41286a290300370300200241d8056a200241f8086a41206a290300370300200241d0056a200241f8086a41186a290300370300200241c8056a200241f8086a41106a290300370300200241c0056a200241f8086a41086a290300370300200241d0036a41e8016a20022903f808370300200241a0066a200241b0096a41306a29030037030020024198066a200241b0096a41286a29030037030020024190066a200241b0096a41206a29030037030020024188066a200241b0096a41186a29030037030020024180066a200241b0096a41106a290300370300200241f8056a200241b0096a41086a290300370300200241d0036a41a0026a20022903b009370300200241d8066a200241e8096a41306a290300370300200241d0066a200241e8096a41286a290300370300200241c8066a200241e8096a41206a290300370300200241c0066a200241e8096a41186a290300370300200241b8066a200241e8096a41106a290300370300200241b0066a200241e8096a41086a290300370300200241d0036a41d8026a20022903e80937030020024190076a200241086a41306a29030037030020024188076a200241086a41286a29030037030020024180076a200241086a41206a290300370300200241f8066a200241086a41186a290300370300200241f0066a200241086a41106a290300370300200241e8066a200241086a41086a290300370300200241d0036a4190036a2002290308370300200242083703d0030c080b200242003703d0030c070b200241086a200141086a10f10120024188046a200241086a41306a290300370300200241d0036a41306a200241086a41286a290300370300200241d0036a41286a200241086a41206a290300370300200241d0036a41206a200241086a41186a290300370300200241d0036a41186a200241086a41106a290300370300200241d0036a41106a200241086a41086a290300370300200242013703d003200220022903083703d8030c060b200241e8096a200141086a10f101200241086a200141c0006a10f10120024188046a200241e8096a41306a290300370300200241d0036a41306a200241e8096a41286a290300370300200241d0036a41286a200241e8096a41206a290300370300200241d0036a41206a200241e8096a41186a290300370300200241d0036a41186a200241e8096a41106a290300370300200241d0036a41106a200241e8096a41086a290300370300200241d0036a41c0006a200229030837030020024198046a200241086a41086a290300370300200241a0046a200241086a41106a290300370300200241a8046a200241086a41186a290300370300200241b0046a200241086a41206a290300370300200241b8046a200241086a41286a290300370300200241c0046a200241086a41306a290300370300200220022903e8093703d803200242023703d0030c050b200241b0096a200141086a10f101200241e8096a200141c0006a10f101200241086a200141f8006a10f10120024188046a200241b0096a41306a290300370300200241d0036a41306a200241b0096a41286a290300370300200241d0036a41286a200241b0096a41206a290300370300200241d0036a41206a200241b0096a41186a290300370300200241d0036a41186a200241b0096a41106a290300370300200241d0036a41106a200241b0096a41086a290300370300200241d0036a41c0006a20022903e80937030020024198046a200241e8096a41086a290300370300200241a0046a200241e8096a41106a290300370300200241a8046a200241e8096a41186a290300370300200241b0046a200241e8096a41206a290300370300200241b8046a200241e8096a41286a290300370300200241c0046a200241e8096a41306a290300370300200220022903b0093703d803200241f8046a200241086a41306a290300370300200241f0046a200241086a41286a290300370300200241e8046a200241086a41206a290300370300200241e0046a200241086a41186a290300370300200241d8046a200241086a41106a290300370300200241d0046a200241086a41086a290300370300200241d0036a41f8006a2002290308370300200242033703d0030c040b200241f8086a200141086a10f101200241b0096a200141c0006a10f101200241e8096a200141f8006a10f101200241086a200141b0016a10f10120024188046a200241f8086a41306a290300370300200241d0036a41306a200241f8086a41286a290300370300200241d0036a41286a200241f8086a41206a290300370300200241d0036a41206a200241f8086a41186a290300370300200241d0036a41186a200241f8086a41106a290300370300200241d0036a41106a200241f8086a41086a290300370300200241d0036a41c0006a20022903b00937030020024198046a200241b0096a41086a290300370300200241a0046a200241b0096a41106a290300370300200241a8046a200241b0096a41186a290300370300200241b0046a200241b0096a41206a290300370300200241b8046a200241b0096a41286a290300370300200241c0046a200241b0096a41306a290300370300200220022903f8083703d803200241f8046a200241e8096a41306a290300370300200241f0046a200241e8096a41286a290300370300200241e8046a200241e8096a41206a290300370300200241e0046a200241e8096a41186a290300370300200241d8046a200241e8096a41106a290300370300200241d0046a200241e8096a41086a290300370300200241d0036a41f8006a20022903e809370300200241b0056a200241086a41306a290300370300200241a8056a200241086a41286a290300370300200241a0056a200241086a41206a29030037030020024198056a200241086a41186a29030037030020024190056a200241086a41106a29030037030020024188056a200241086a41086a290300370300200241d0036a41b0016a2002290308370300200242043703d0030c030b200241c0086a200141086a10f101200241f8086a200141c0006a10f101200241b0096a200141f8006a10f101200241e8096a200141b0016a10f101200241086a200141e8016a10f10120024188046a200241c0086a41306a290300370300200241d0036a41306a200241c0086a41286a290300370300200241d0036a41286a200241c0086a41206a290300370300200241d0036a41206a200241c0086a41186a290300370300200241d0036a41186a200241c0086a41106a290300370300200241d0036a41106a200241c0086a41086a290300370300200241d0036a41c0006a20022903f80837030020024198046a200241f8086a41086a290300370300200241a0046a200241f8086a41106a290300370300200241a8046a200241f8086a41186a290300370300200241b0046a200241f8086a41206a290300370300200241b8046a200241f8086a41286a290300370300200241c0046a200241f8086a41306a290300370300200220022903c0083703d803200241f8046a200241b0096a41306a290300370300200241f0046a200241b0096a41286a290300370300200241e8046a200241b0096a41206a290300370300200241e0046a200241b0096a41186a290300370300200241d8046a200241b0096a41106a290300370300200241d0046a200241b0096a41086a290300370300200241d0036a41f8006a20022903b009370300200241b0056a200241e8096a41306a290300370300200241a8056a200241e8096a41286a290300370300200241a0056a200241e8096a41206a29030037030020024198056a200241e8096a41186a29030037030020024190056a200241e8096a41106a29030037030020024188056a200241e8096a41086a290300370300200241d0036a41b0016a20022903e809370300200241e8056a200241086a41306a290300370300200241e0056a200241086a41286a290300370300200241d8056a200241086a41206a290300370300200241d0056a200241086a41186a290300370300200241c8056a200241086a41106a290300370300200241c0056a200241086a41086a290300370300200241d0036a41e8016a2002290308370300200242053703d0030c020b20024188086a200141086a10f101200241c0086a200141c0006a10f101200241f8086a200141f8006a10f101200241b0096a200141b0016a10f101200241e8096a200141e8016a10f101200241086a200141a0026a10f10120024188046a20024188086a41306a290300370300200241d0036a41306a20024188086a41286a290300370300200241d0036a41286a20024188086a41206a290300370300200241d0036a41206a20024188086a41186a290300370300200241d0036a41186a20024188086a41106a290300370300200241d0036a41106a20024188086a41086a290300370300200241d0036a41c0006a20022903c00837030020024198046a200241c0086a41086a290300370300200241a0046a200241c0086a41106a290300370300200241a8046a200241c0086a41186a290300370300200241b0046a200241c0086a41206a290300370300200241b8046a200241c0086a41286a290300370300200241c0046a200241c0086a41306a29030037030020022002290388083703d803200241f8046a200241f8086a41306a290300370300200241f0046a200241f8086a41286a290300370300200241e8046a200241f8086a41206a290300370300200241e0046a200241f8086a41186a290300370300200241d8046a200241f8086a41106a290300370300200241d0046a200241f8086a41086a290300370300200241d0036a41f8006a20022903f808370300200241b0056a200241b0096a41306a290300370300200241a8056a200241b0096a41286a290300370300200241a0056a200241b0096a41206a29030037030020024198056a200241b0096a41186a29030037030020024190056a200241b0096a41106a29030037030020024188056a200241b0096a41086a290300370300200241d0036a41b0016a20022903b009370300200241e8056a200241e8096a41306a290300370300200241e0056a200241e8096a41286a290300370300200241d8056a200241e8096a41206a290300370300200241d0056a200241e8096a41186a290300370300200241c8056a200241e8096a41106a290300370300200241c0056a200241e8096a41086a290300370300200241d0036a41e8016a20022903e809370300200241a0066a200241086a41306a29030037030020024198066a200241086a41286a29030037030020024190066a200241086a41206a29030037030020024188066a200241086a41186a29030037030020024180066a200241086a41106a290300370300200241f8056a200241086a41086a290300370300200241d0036a41a0026a2002290308370300200242063703d0030c010b200241d0076a200141086a10f10120024188086a200141c0006a10f101200241c0086a200141f8006a10f101200241f8086a200141b0016a10f101200241b0096a200141e8016a10f101200241e8096a200141a0026a10f101200241086a200141d8026a10f10120024188046a200241d0076a41306a290300370300200241d0036a41306a200241d0076a41286a290300370300200241d0036a41286a200241d0076a41206a290300370300200241d0036a41206a200241d0076a41186a290300370300200241d0036a41186a200241d0076a41106a290300370300200241d0036a41106a200241d0076a41086a290300370300200241d0036a41c0006a20022903880837030020024198046a20024188086a41086a290300370300200241a0046a20024188086a41106a290300370300200241a8046a20024188086a41186a290300370300200241b0046a20024188086a41206a290300370300200241b8046a20024188086a41286a290300370300200241c0046a20024188086a41306a290300370300200220022903d0073703d803200241f8046a200241c0086a41306a290300370300200241f0046a200241c0086a41286a290300370300200241e8046a200241c0086a41206a290300370300200241e0046a200241c0086a41186a290300370300200241d8046a200241c0086a41106a290300370300200241d0046a200241c0086a41086a290300370300200241d0036a41f8006a20022903c008370300200241b0056a200241f8086a41306a290300370300200241a8056a200241f8086a41286a290300370300200241a0056a200241f8086a41206a29030037030020024198056a200241f8086a41186a29030037030020024190056a200241f8086a41106a29030037030020024188056a200241f8086a41086a290300370300200241d0036a41b0016a20022903f808370300200241e8056a200241b0096a41306a290300370300200241e0056a200241b0096a41286a290300370300200241d8056a200241b0096a41206a290300370300200241d0056a200241b0096a41186a290300370300200241c8056a200241b0096a41106a290300370300200241c0056a200241b0096a41086a290300370300200241d0036a41e8016a20022903b009370300200241a0066a200241e8096a41306a29030037030020024198066a200241e8096a41286a29030037030020024190066a200241e8096a41206a29030037030020024188066a200241e8096a41186a29030037030020024180066a200241e8096a41106a290300370300200241f8056a200241e8096a41086a290300370300200241d0036a41a0026a20022903e809370300200241d8066a200241086a41306a290300370300200241d0066a200241086a41286a290300370300200241c8066a200241086a41206a290300370300200241c0066a200241086a41186a290300370300200241b8066a200241086a41106a290300370300200241b0066a200241086a41086a290300370300200241d0036a41d8026a2002290308370300200242073703d0030b200241086a2000200241d0036a10e0030240200229030822054209510d0020024188036a280200210620024180036a2802002107200241f8026a2802002108200241e8026a2802002109200241e0026a2d0000210a200241d0026a280200210b200241c8026a280200210c200241c0026a280200210d200241b0026a280200210e200241a8026a2d0000210f20024198026a280200211020024190026a280200211120024188026a2802002112200241f8016a2802002113200241f0016a2d00002114200241e0016a2802002115200241d8016a2802002116200241d0016a2802002117200241c0016a2802002118200241b8016a2d00002104200241a8016a2802002119200241a0016a280200211a20024198016a280200211b20024188016a280200211c20024180016a2d00002103200241f0006a280200211d200241e8006a280200211e200241e0006a280200211f200241d0006a2802002120200241c8006a2d00002100200241386a2802002121200241306a2802002122200241286a2802002123200241186a2802002124200228028c032125200228028403212620022802fc02212720022802ec02212820022802e402212920022802d402212a20022802cc02212b20022802c402212c20022802b402212d20022802ac02212e200228029c02212f2002280294022130200228028c02213120022802fc01213220022802f401213320022802e401213420022802dc01213520022802d401213620022802c401213720022802bc01213820022802ac01213920022802a401213a200228029c01213b200228028c01213c200228028401213d2002280274213e200228026c213f2002280264214020022802542141200228024c2142200228023c214320022802342144200228022c2145200228021c21462002280214214720022d00102101024002400240024002400240024002402005a70e080800010203040506070b0240024002400240024020010e090c0c0001020c0c030c040b20444101470d0b2043450d0b202110300c0b0b20474101470d0a2046450d0a202410300c0a0b20234101470d092022450d09204510300c090b2024450d08204710300c080b20474101470d072046450d07202410300c070b024002400240024002400240024020010e09060600010206060306040b20444101470d052043450d05202110300c050b20474101470d0420460d030c040b20234101470d032022450d03204510300c030b2024450d02204710300c020b20474101470d012046450d010b202410300b0240024002400240024020000e090b0b0001020b0b030b040b203f4101470d0a203e450d0a201d10300c0a0b20424101470d092041450d09202010300c090b201f4101470d08201e450d08204010300c080b2020450d07204210300c070b20424101470d062041450d06202010300c060b024002400240024002400240024020010e09060600010206060306040b20444101470d052043450d05202110300c050b20474101470d0420460d030c040b20234101470d032022450d03204510300c030b2024450d02204710300c020b20474101470d012046450d010b202410300b024002400240024002400240024020000e09060600010206060306040b203f4101470d05203e450d05201d10300c050b20424101470d0420410d030c040b201f4101470d03201e450d03204010300c030b2020450d02204210300c020b20424101470d012041450d010b202010300b0240024002400240024020030e090a0a0001020a0a030a040b203a4101470d092039450d09201910300c090b203d4101470d08203c450d08201c10300c080b201b4101470d07201a450d07203b10300c070b201c450d06203d10300c060b203d4101470d05203c450d05201c10300c050b024002400240024002400240024020010e09060600010206060306040b20444101470d052043450d05202110300c050b20474101470d0420460d030c040b20234101470d032022450d03204510300c030b2024450d02204710300c020b20474101470d012046450d010b202410300b024002400240024002400240024020000e09060600010206060306040b203f4101470d05203e450d05201d10300c050b20424101470d0420410d030c040b201f4101470d03201e450d03204010300c030b2020450d02204210300c020b20424101470d012041450d010b202010300b024002400240024002400240024020030e09060600010206060306040b203a4101470d052039450d05201910300c050b203d4101470d04203c0d030c040b201b4101470d03201a450d03203b10300c030b201c450d02203d10300c020b203d4101470d01203c450d010b201c10300b0240024002400240024020040e09090900010209090309040b20354101470d082034450d08201510300c080b20384101470d072037450d07201810300c070b20174101470d062016450d06203610300c060b2018450d05203810300c050b20384101470d042037450d04201810300c040b024002400240024002400240024020010e09060600010206060306040b20444101470d052043450d05202110300c050b20474101470d0420460d030c040b20234101470d032022450d03204510300c030b2024450d02204710300c020b20474101470d012046450d010b202410300b024002400240024002400240024020000e09060600010206060306040b203f4101470d05203e450d05201d10300c050b20424101470d0420410d030c040b201f4101470d03201e450d03204010300c030b2020450d02204210300c020b20424101470d012041450d010b202010300b024002400240024002400240024020030e09060600010206060306040b203a4101470d052039450d05201910300c050b203d4101470d04203c0d030c040b201b4101470d03201a450d03203b10300c030b201c450d02203d10300c020b203d4101470d01203c450d010b201c10300b024002400240024002400240024020040e09060600010206060306040b20354101470d052034450d05201510300c050b20384101470d0420370d030c040b20174101470d032016450d03203610300c030b2018450d02203810300c020b20384101470d012037450d010b201810300b0240024002400240024020140e09080800010208080308040b20304101470d07202f450d07201010300c070b20334101470d062032450d06201310300c060b20124101470d052011450d05203110300c050b2013450d04203310300c040b20334101470d032032450d03201310300c030b024002400240024002400240024020010e09060600010206060306040b20444101470d052043450d05202110300c050b20474101470d0420460d030c040b20234101470d032022450d03204510300c030b2024450d02204710300c020b20474101470d012046450d010b202410300b024002400240024002400240024020000e09060600010206060306040b203f4101470d05203e450d05201d10300c050b20424101470d0420410d030c040b201f4101470d03201e450d03204010300c030b2020450d02204210300c020b20424101470d012041450d010b202010300b024002400240024002400240024020030e09060600010206060306040b203a4101470d052039450d05201910300c050b203d4101470d04203c0d030c040b201b4101470d03201a450d03203b10300c030b201c450d02203d10300c020b203d4101470d01203c450d010b201c10300b024002400240024002400240024020040e09060600010206060306040b20354101470d052034450d05201510300c050b20384101470d0420370d030c040b20174101470d032016450d03203610300c030b2018450d02203810300c020b20384101470d012037450d010b201810300b024002400240024002400240024020140e09060600010206060306040b20304101470d05202f450d05201010300c050b20334101470d0420320d030c040b20124101470d032011450d03203110300c030b2013450d02203310300c020b20334101470d012032450d010b201310300b02400240024002400240200f0e09070700010207070307040b202b4101470d06202a450d06200b10300c060b202e4101470d05202d450d05200e10300c050b200d4101470d04200c450d04202c10300c040b200e450d03202e10300c030b202e4101470d02202d450d02200e10300c020b024002400240024002400240024020010e09060600010206060306040b20444101470d052043450d05202110300c050b20474101470d0420460d030c040b20234101470d032022450d03204510300c030b2024450d02204710300c020b20474101470d012046450d010b202410300b024002400240024002400240024020000e09060600010206060306040b203f4101470d05203e450d05201d10300c050b20424101470d0420410d030c040b201f4101470d03201e450d03204010300c030b2020450d02204210300c020b20424101470d012041450d010b202010300b024002400240024002400240024020030e09060600010206060306040b203a4101470d052039450d05201910300c050b203d4101470d04203c0d030c040b201b4101470d03201a450d03203b10300c030b201c450d02203d10300c020b203d4101470d01203c450d010b201c10300b024002400240024002400240024020040e09060600010206060306040b20354101470d052034450d05201510300c050b20384101470d0420370d030c040b20174101470d032016450d03203610300c030b2018450d02203810300c020b20384101470d012037450d010b201810300b024002400240024002400240024020140e09060600010206060306040b20304101470d05202f450d05201010300c050b20334101470d0420320d030c040b20124101470d032011450d03203110300c030b2013450d02203310300c020b20334101470d012032450d010b201310300b0240024002400240024002400240200f0e09060600010206060306040b202b4101470d05202a450d05200b10300c050b202e4101470d04202d0d030c040b200d4101470d03200c450d03202c10300c030b200e450d02202e10300c020b202e4101470d01202d450d010b200e10300b02400240024002400240200a0e09060600010206060306040b20264101470d052025450d05200610300c050b20294101470d042028450d04200910300c040b20084101470d032007450d03202710300c030b2009450d02202910300c020b20294101470d012028450d01200910300c010b200241c0036a2802002148200241b8036a2802002149200241b0036a280200214a200241a0036a280200214b20024198036a2d0000214c20022802c403214d20022802bc03214e20022802b403214f20022802a4032150200228029c032151024002400240024002400240024020010e09060600010206060306040b20444101470d052043450d05202110300c050b20474101470d0420460d030c040b20234101470d032022450d03204510300c030b2024450d02204710300c020b20474101470d012046450d010b202410300b024002400240024002400240024020000e09060600010206060306040b203f4101470d05203e450d05201d10300c050b20424101470d0420410d030c040b201f4101470d03201e450d03204010300c030b2020450d02204210300c020b20424101470d012041450d010b202010300b024002400240024002400240024020030e09060600010206060306040b203a4101470d052039450d05201910300c050b203d4101470d04203c0d030c040b201b4101470d03201a450d03203b10300c030b201c450d02203d10300c020b203d4101470d01203c450d010b201c10300b024002400240024002400240024020040e09060600010206060306040b20354101470d052034450d05201510300c050b20384101470d0420370d030c040b20174101470d032016450d03203610300c030b2018450d02203810300c020b20384101470d012037450d010b201810300b024002400240024002400240024020140e09060600010206060306040b20304101470d05202f450d05201010300c050b20334101470d0420320d030c040b20124101470d032011450d03203110300c030b2013450d02203310300c020b20334101470d012032450d010b201310300b0240024002400240024002400240200f0e09060600010206060306040b202b4101470d05202a450d05200b10300c050b202e4101470d04202d0d030c040b200d4101470d03200c450d03202c10300c030b200e450d02202e10300c020b202e4101470d01202d450d010b200e10300b0240024002400240024002400240200a0e09060600010206060306040b20264101470d052025450d05200610300c050b20294101470d0420280d030c040b20084101470d032007450d03202710300c030b2009450d02202910300c020b20294101470d012028450d010b200910300b024002400240024002400240204c0e09060600010206060306040b204e4101470d05204d450d05204810300c050b20514101470d0420500d030c040b204a4101470d032049450d03204f10300c030b204b450d02205110300c020b20514101470d012050450d010b204b10300b200542095221030b200241a00a6a240020030b9a5205167f017e067f397e2b7f23004180116b22032400200110fb0421044108210541082106024002400240024002400240024002400240200228020022070e09000102030405060708000b410021060c070b410121060c060b410221060c050b410321060c040b410421060c030b410521060c020b410621060c010b410721060b20042006200210fb046b22064b210802400240024002400240024002400240024020012802000e09000102030405060708000b410021050c070b410121050c060b410221050c050b410321050c040b410421050c030b410521050c020b410621050c010b410721050b2006200420081b21064108210402400240024002400240024002400240024020070e09000102030405060708000b410021040c070b410121040c060b410221040c050b410321040c040b410421040c030b410521040c020b410621040c010b410721040b024002400240200520064101746b20046a4109490d002000200241c8031085051a0c010b2003200241c803108505220241086a2105200241c0006a2106200241f8006a2107200241b0016a2108200241e8016a2109200241a0026a210a200241d8026a210b20024190036a210c03404100210402400240024002400240024002400240024020022802000e09080102030405060700080b200c21040c070b200521040c060b200621040c050b200721040c040b200821040c030b200921040c020b200a21040c010b200b21040b02402001290300500d002004450d0020012d000841ff01710d0020042d0000450d00200241a80a6a200210fa04024020022d00a80a2204410a460d000240024002400240024020040e09050500010205050305040b20022802cc0a4101470d0420022802d40a450d0420022802d00a10300c040b20022802ac0a4101470d0320022802b40a450d0320022802b00a10300c030b20022802c00a4101470d0220022802c80a450d0220022802c40a10300c020b20022802b00a450d0120022802ac0a10300c010b20022802ac0a4101470d0020022802b40a450d0020022802b00a10300b200241a80a6a200110f30120022d00a80a2204410a460d010240024002400240024020040e09060600010206060306040b20022802cc0a4101470d0520022802d40a450d0520022802d00a10300c050b20022802ac0a4101470d0420022802b40a450d0420022802b00a10300c040b20022802c00a4101470d0320022802c80a450d0320022802c40a10300c030b20022802b00a450d0220022802ac0a10300c020b20022802ac0a4101470d0120022802b40a450d0120022802b00a10300c010b0b200241c8036a200241c8031085051a200241a80a6a200241c8036a10fa04024020022d00a80a410a460d0020014190036a2104200141d8026a2105200141e8016a2106200141b0016a2107200141f8006a2108200141096a210d200141a0026a2109200141c0006a210a200241a80a6a41d8026a210e200241a80a6a41e8016a210f200241a80a6a41b0016a2110200241a80a6a41f8006a210c200241a80a6a41086a210b200241a80a6a4101722111200241a80a6a41a0026a2112200241a80a6a41c0006a211320022d00a80a2114034020024194076a41026a2215201141026a2d00003a0000200220112f00003b01940720022802ac0a211620022802b00a211720022802b40a211820022903b80a211920022802c00a211a20022802c40a211b20022802c80a211c20022802cc0a211d20022802d00a211e20022802d40a211f20022903d80a21202001290300212120014200370300200141186a2903002122200141286a2903002123200141306a2903002124200141386a2903002125200141c8006a2903002126200141d0006a2903002127200141d8006a2903002128200141e8006a2903002129200141f0006a290300212a2008290300212b20014188016a290300212c20014190016a290300212d20014198016a290300212e200141a8016a290300212f20072903002130200141b8016a2903002131200141c8016a2903002132200141d0016a2903002133200141d8016a290300213420062903002135200141f0016a2903002136200141f8016a290300213720014188026a290300213820014190026a290300213920014198026a290300213a200141a8026a290300213b200141b0026a290300213c200141b8026a290300213d200141c8026a290300213e200141d0026a290300213f20052903002140200141e8026a2903002141200141f0026a2903002142200141f8026a290300214320014188036a29030021442004290300214520014198036a2903002146200141a8036a2903002147200141b0036a290300214820012903c00321492001290308214a2001290310214b2001290320214c2001290340214d2001290360214e200129038001214f20012903a001215020012903c001215120012903e0012152200129038002215320012903a002215420012903c002215520012903e0022156200129038003215720012903a0032158200241a80a6a41b8036a200141b8036a290300370300200241a80a6a41b0036a2048370300200241a80a6a41a8036a2047370300200241a80a6a4198036a2046370300200241a80a6a4190036a2045370300200241a80a6a4188036a2044370300200241a80a6a41f8026a2043370300200241a80a6a41f0026a2042370300200241a80a6a41e8026a2041370300200e2040370300200241a80a6a41d0026a203f370300200241a80a6a41c8026a203e370300200241a80a6a41b8026a203d370300200241a80a6a41b0026a203c370300200241a80a6a41a8026a203b370300200241a80a6a4198026a203a370300200241a80a6a4190026a2039370300200241a80a6a4188026a2038370300200241a80a6a41f8016a2037370300200241a80a6a41f0016a2036370300200f2035370300200241a80a6a41d8016a2034370300200241a80a6a41d0016a2033370300200241a80a6a41c8016a2032370300200241a80a6a41b8016a203137030020102030370300200241a80a6a41a8016a202f370300200241a80a6a4198016a202e370300200241a80a6a4190016a202d370300200241a80a6a4188016a202c370300200c202b370300200241a80a6a41f0006a202a370300200241a80a6a41e8006a2029370300200241a80a6a41d8006a2028370300200241a80a6a41d0006a2027370300200241a80a6a41c8006a2026370300200241a80a6a41386a2025370300200241a80a6a41306a2024370300200241a80a6a41286a2023370300200241a80a6a41186a2022370300200220583703c80d200220573703a80d200220563703880d200220553703e80c200220543703c80c200220533703a80c200220523703880c200220513703e80b200220503703c80b2002204f3703a80b2002204e3703880b2002204d3703e80a2002204c3703c80a2002204b3703b80a2002204a3703b00a200220213703a80a200220493703e80d02400240024002400240024002400240024002402021a722590e080800010203040506070b200241fc106a41026a20152d00003a0000200241c0106a41086a200b41086a290300370300200241c0106a41106a200b41106a290300370300200241c0106a41186a200b41186a290300370300200241c0106a41206a200b41206a290300370300200241c0106a41286a200b41286a290300370300200241c0106a41306a200b41306a290300370300200220022f0194073b01fc102002200b2903003703c010420221210c080b200241fc106a41026a20152d00003a0000200241c0106a41086a200b41086a290300370300200241c0106a41106a200b41106a290300370300200241c0106a41186a200b41186a290300370300200241c0106a41206a200b41206a290300370300200241c0106a41286a200b41286a290300370300200241c0106a41306a200b41306a290300370300200220022f0194073b01fc102002200b2903003703c01020024188106a41306a201341306a29030037030020024188106a41286a201341286a29030037030020024188106a41206a201341206a29030037030020024188106a41186a201341186a29030037030020024188106a41106a201341106a29030037030020024188106a41086a201341086a2903003703002002201329030037038810420321210c070b200241fc106a41026a20152d00003a0000200241c0106a41086a200b41086a290300370300200241c0106a41106a200b41106a290300370300200241c0106a41186a200b41186a290300370300200241c0106a41206a200b41206a290300370300200241c0106a41286a200b41286a290300370300200241c0106a41306a200b41306a290300370300200220022f0194073b01fc102002200b2903003703c01020024188106a41306a201341306a29030037030020024188106a41286a201341286a29030037030020024188106a41206a201341206a29030037030020024188106a41186a201341186a29030037030020024188106a41106a201341106a29030037030020024188106a41086a201341086a290300370300200241d00f6a41306a200c41306a290300370300200241d00f6a41286a200c41286a290300370300200241d00f6a41206a200c41206a290300370300200241d00f6a41186a200c41186a290300370300200241d00f6a41106a200c41106a290300370300200241d00f6a41086a200c41086a29030037030020022013290300370388102002200c2903003703d00f420421210c060b200241fc106a41026a20152d00003a0000200241c0106a41086a200b41086a290300370300200241c0106a41106a200b41106a290300370300200241c0106a41186a200b41186a290300370300200241c0106a41206a200b41206a290300370300200241c0106a41286a200b41286a290300370300200241c0106a41306a200b41306a290300370300200220022f0194073b01fc102002200b2903003703c01020024188106a41306a201341306a29030037030020024188106a41286a201341286a29030037030020024188106a41206a201341206a29030037030020024188106a41186a201341186a29030037030020024188106a41106a201341106a29030037030020024188106a41086a201341086a290300370300200241d00f6a41306a200c41306a290300370300200241d00f6a41286a200c41286a290300370300200241d00f6a41206a200c41206a290300370300200241d00f6a41186a200c41186a290300370300200241d00f6a41106a200c41106a290300370300200241d00f6a41086a200c41086a29030037030020022013290300370388102002200c2903003703d00f200241980f6a41306a201041306a290300370300200241980f6a41286a201041286a290300370300200241980f6a41206a201041206a290300370300200241980f6a41186a201041186a290300370300200241980f6a41106a201041106a290300370300200241980f6a41086a201041086a290300370300200220102903003703980f420521210c050b200241fc106a41026a20152d00003a0000200241c0106a41086a200b41086a290300370300200241c0106a41106a200b41106a290300370300200241c0106a41186a200b41186a290300370300200241c0106a41206a200b41206a290300370300200241c0106a41286a200b41286a290300370300200241c0106a41306a200b41306a290300370300200220022f0194073b01fc102002200b2903003703c01020024188106a41306a201341306a29030037030020024188106a41286a201341286a29030037030020024188106a41206a201341206a29030037030020024188106a41186a201341186a29030037030020024188106a41106a201341106a29030037030020024188106a41086a201341086a290300370300200241d00f6a41306a200c41306a290300370300200241d00f6a41286a200c41286a290300370300200241d00f6a41206a200c41206a290300370300200241d00f6a41186a200c41186a290300370300200241d00f6a41106a200c41106a290300370300200241d00f6a41086a200c41086a29030037030020022013290300370388102002200c2903003703d00f200241980f6a41306a201041306a290300370300200241980f6a41286a201041286a290300370300200241980f6a41206a201041206a290300370300200241980f6a41186a201041186a290300370300200241980f6a41106a201041106a290300370300200241980f6a41086a201041086a290300370300200220102903003703980f200241e00e6a41306a200f41306a290300370300200241e00e6a41286a200f41286a290300370300200241e00e6a41206a200f41206a290300370300200241e00e6a41186a200f41186a290300370300200241e00e6a41106a200f41106a290300370300200241e00e6a41086a200f41086a2903003703002002200f2903003703e00e420621210c040b200241fc106a41026a20152d00003a0000200241c0106a41086a200b41086a290300370300200241c0106a41106a200b41106a290300370300200241c0106a41186a200b41186a290300370300200241c0106a41206a200b41206a290300370300200241c0106a41286a200b41286a290300370300200241c0106a41306a200b41306a290300370300200220022f0194073b01fc102002200b2903003703c01020024188106a41306a201341306a29030037030020024188106a41286a201341286a29030037030020024188106a41206a201341206a29030037030020024188106a41186a201341186a29030037030020024188106a41106a201341106a29030037030020024188106a41086a201341086a290300370300200241d00f6a41306a200c41306a290300370300200241d00f6a41286a200c41286a290300370300200241d00f6a41206a200c41206a290300370300200241d00f6a41186a200c41186a290300370300200241d00f6a41106a200c41106a290300370300200241d00f6a41086a200c41086a29030037030020022013290300370388102002200c2903003703d00f200241980f6a41306a201041306a290300370300200241980f6a41286a201041286a290300370300200241980f6a41206a201041206a290300370300200241980f6a41186a201041186a290300370300200241980f6a41106a201041106a290300370300200241980f6a41086a201041086a290300370300200220102903003703980f200241e00e6a41306a200f41306a290300370300200241e00e6a41286a200f41286a290300370300200241e00e6a41206a200f41206a290300370300200241e00e6a41186a200f41186a290300370300200241e00e6a41106a200f41106a290300370300200241e00e6a41086a200f41086a2903003703002002200f2903003703e00e200241a80e6a41306a201241306a290300370300200241a80e6a41286a201241286a290300370300200241a80e6a41206a201241206a290300370300200241a80e6a41186a201241186a290300370300200241a80e6a41106a201241106a290300370300200241a80e6a41086a201241086a290300370300200220122903003703a80e420721210c030b200241fc106a41026a20152d00003a0000200241c0106a41086a200b41086a290300370300200241c0106a41106a200b41106a290300370300200241c0106a41186a200b41186a290300370300200241c0106a41206a200b41206a290300370300200241c0106a41286a200b41286a290300370300200241c0106a41306a200b41306a290300370300200220022f0194073b01fc102002200b2903003703c01020024188106a41306a201341306a29030037030020024188106a41286a201341286a29030037030020024188106a41206a201341206a29030037030020024188106a41186a201341186a29030037030020024188106a41106a201341106a29030037030020024188106a41086a201341086a290300370300200241d00f6a41306a200c41306a290300370300200241d00f6a41286a200c41286a290300370300200241d00f6a41206a200c41206a290300370300200241d00f6a41186a200c41186a290300370300200241d00f6a41106a200c41106a290300370300200241d00f6a41086a200c41086a29030037030020022013290300370388102002200c2903003703d00f200241980f6a41306a201041306a290300370300200241980f6a41286a201041286a290300370300200241980f6a41206a201041206a290300370300200241980f6a41186a201041186a290300370300200241980f6a41106a201041106a290300370300200241980f6a41086a201041086a290300370300200220102903003703980f200241e00e6a41306a200f41306a290300370300200241e00e6a41286a200f41286a290300370300200241e00e6a41206a200f41206a290300370300200241e00e6a41186a200f41186a290300370300200241e00e6a41106a200f41106a290300370300200241e00e6a41086a200f41086a2903003703002002200f2903003703e00e200241a80e6a41306a201241306a290300370300200241a80e6a41286a201241286a290300370300200241a80e6a41206a201241206a290300370300200241a80e6a41186a201241186a290300370300200241a80e6a41106a201241106a290300370300200241a80e6a41086a201241086a290300370300200220122903003703a80e200241f00d6a41306a200e41306a290300370300200241f00d6a41286a200e41286a290300370300200241f00d6a41206a200e41206a290300370300200241f00d6a41186a200e41186a290300370300200241f00d6a41106a200e41106a290300370300200241f00d6a41086a200e41086a2903003703002002200e2903003703f00d420821210c020b200241a40a6a41026a220b200241b30a6a2d00003a0000200241e8096a41086a2211201341086a290300370300200241e8096a41106a2215201341106a290300370300200241e8096a41186a2259201341186a290300370300200241e8096a41206a225a201341206a290300370300200241e8096a41286a225b201341286a290300370300200241e8096a41306a225c201341306a290300370300200220022f00b10a3b01a40a200220132903003703e809200241b0096a41306a2213200c41306a290300370300200241b0096a41286a225d200c41286a290300370300200241b0096a41206a225e200c41206a290300370300200241b0096a41186a225f200c41186a290300370300200241b0096a41106a2260200c41106a290300370300200241b0096a41086a2261200c41086a290300370300200241f8086a41086a2262201041086a290300370300200241f8086a41106a2263201041106a290300370300200241f8086a41186a2264201041186a290300370300200241f8086a41206a2265201041206a290300370300200241f8086a41286a2266201041286a290300370300200241f8086a41306a2267201041306a2903003703002002200c2903003703b009200220102903003703f808200241c0086a41306a220c200f41306a290300370300200241c0086a41286a2210200f41286a290300370300200241c0086a41206a2268200f41206a290300370300200241c0086a41186a2269200f41186a290300370300200241c0086a41106a226a200f41106a290300370300200241c0086a41086a226b200f41086a29030037030020024188086a41306a226c201241306a29030037030020024188086a41286a226d201241286a29030037030020024188086a41206a226e201241206a29030037030020024188086a41186a226f201241186a29030037030020024188086a41106a2270201241106a29030037030020024188086a41086a2271201241086a2903003703002002200f2903003703c0082002201229030037038808200241d0076a41306a220f200e41306a290300370300200241d0076a41286a2272200e41286a290300370300200241d0076a41206a2273200e41206a290300370300200241d0076a41186a2274200e41186a290300370300200241d0076a41106a2275200e41106a290300370300200241d0076a41086a2276200e41086a2903003703002002200e2903003703d00720024198076a41306a2277200241e80d6a29030037030020024198076a41286a2278200241e00d6a29030037030020024198076a41206a2279200241d80d6a29030037030020024198076a41186a227a200241d00d6a29030037030020024198076a41106a227b200241c80d6a29030037030020024198076a41086a227c200241c00d6a2903003703002002200241b80d6a2903003703980702400240024002400240201441ff01710e090a0a0001020a0a030a040b201d4101470d09201f450d09201e10300c090b20164101470d082018450d08201710300c080b201a4101470d07201c450d07201b10300c070b2017450d06201610300c060b20164101470d052018450d05201710300c050b200241fc106a41026a20152d00003a0000200220022f0194073b01fc10420121210b200241a40a6a41026a2215200241fc106a41026a2d00003a0000200241e8096a41086a225a200241c0106a41086a290300370300200241e8096a41106a225b200241c0106a41106a290300370300200241e8096a41186a225c200241c0106a41186a290300370300200241e8096a41206a225d200241c0106a41206a290300370300200241e8096a41286a225e200241c0106a41286a290300370300200241e8096a41306a225f200241c0106a41306a290300370300200220022f01fc103b01a40a200220022903c0103703e809200241b0096a41306a226020024188106a41306a290300370300200241b0096a41286a226120024188106a41286a290300370300200241b0096a41206a226220024188106a41206a290300370300200241b0096a41186a226320024188106a41186a290300370300200241b0096a41106a226420024188106a41106a290300370300200241b0096a41086a226520024188106a41086a290300370300200241f8086a41086a2266200241d00f6a41086a290300370300200241f8086a41106a2267200241d00f6a41106a290300370300200241f8086a41186a2268200241d00f6a41186a290300370300200241f8086a41206a2269200241d00f6a41206a290300370300200241f8086a41286a226a200241d00f6a41286a290300370300200241f8086a41306a226b200241d00f6a41306a29030037030020022002290388103703b009200220022903d00f3703f808200241c0086a41306a226c200241980f6a41306a290300370300200241c0086a41286a226d200241980f6a41286a290300370300200241c0086a41206a226e200241980f6a41206a290300370300200241c0086a41186a226f200241980f6a41186a290300370300200241c0086a41106a2270200241980f6a41106a290300370300200241c0086a41086a2271200241980f6a41086a29030037030020024188086a41306a2272200241e00e6a41306a29030037030020024188086a41286a2273200241e00e6a41286a29030037030020024188086a41206a2274200241e00e6a41206a29030037030020024188086a41186a2275200241e00e6a41186a29030037030020024188086a41106a2276200241e00e6a41106a29030037030020024188086a41086a2277200241e00e6a41086a290300370300200220022903980f3703c008200220022903e00e37038808200241d0076a41306a2278200241a80e6a41306a290300370300200241d0076a41286a2279200241a80e6a41286a290300370300200241d0076a41206a227a200241a80e6a41206a290300370300200241d0076a41186a227b200241a80e6a41186a290300370300200241d0076a41106a227c200241a80e6a41106a290300370300200241d0076a41086a227d200241a80e6a41086a290300370300200220022903a80e3703d00720024198076a41306a227e200241f00d6a41306a29030037030020024198076a41286a227f200241f00d6a41286a29030037030020024198076a41206a228001200241f00d6a41206a29030037030020024198076a41186a228101200241f00d6a41186a29030037030020024198076a41106a228201200241f00d6a41106a29030037030020024198076a41086a228301200241f00d6a41086a290300370300200220022903f00d3703980702402059417f6a4107490d00200241a80a6a109c010b2001109c01200120143a000820012021370300200120203703382001201f3602342001201e3602302001201d36022c2001201c3602282001201b3602242001201a3602202001201937031820012018360214200120173602102001201636020c200d20022f01a40a3b0000200d41026a20152d00003a0000200a20022903e809370300200a41086a205a290300370300200a41106a205b290300370300200a41186a205c290300370300200a41206a205d290300370300200a41286a205e290300370300200a41306a205f290300370300200841306a2060290300370300200841286a2061290300370300200841206a2062290300370300200841186a2063290300370300200841106a2064290300370300200841086a2065290300370300200820022903b009370300200720022903f808370300200741086a2066290300370300200741106a2067290300370300200741186a2068290300370300200741206a2069290300370300200741286a206a290300370300200741306a206b290300370300200641306a206c290300370300200641286a206d290300370300200641206a206e290300370300200641186a206f290300370300200641106a2070290300370300200641086a2071290300370300200620022903c008370300200941306a2072290300370300200941286a2073290300370300200941206a2074290300370300200941186a2075290300370300200941106a2076290300370300200941086a20772903003703002009200229038808370300200541306a2078290300370300200541286a2079290300370300200541206a207a290300370300200541186a207b290300370300200541106a207c290300370300200541086a207d290300370300200520022903d007370300200441306a207e290300370300200441286a207f290300370300200441206a208001290300370300200441186a208101290300370300200441106a208201290300370300200441086a2083012903003703002004200229039807370300200241a80a6a200241c8036a10fa0420022d00a80a2214410a470d000b0b200241c8036a109c01200042093703000b20034180116a24000f0b2001109c012001204a3c000820012021370300200120233e02282001204c4220883e02242001204c3e0220200d20022f01a40a3b0000200d41026a200b2d00003a0000200120243e0230200120234220883e022c2001204b3e02102001204a4220883e020c200a20022903e809370300200a41086a2011290300370300200a41106a2015290300370300200a41186a2059290300370300200a41206a205a290300370300200a41286a205b290300370300200a41306a205c29030037030020012025370338200120244220883e0234200120223703182001204b4220883e0214200841306a2013290300370300200841286a205d290300370300200841206a205e290300370300200841186a205f290300370300200841106a2060290300370300200841086a2061290300370300200820022903b009370300200720022903f808370300200741086a2062290300370300200741106a2063290300370300200741186a2064290300370300200741206a2065290300370300200741286a2066290300370300200741306a2067290300370300200641306a200c290300370300200641286a2010290300370300200641206a2068290300370300200641186a2069290300370300200641106a206a290300370300200641086a206b290300370300200620022903c008370300200941306a206c290300370300200941286a206d290300370300200941206a206e290300370300200941186a206f290300370300200941106a2070290300370300200941086a20712903003703002009200229038808370300200541306a200f290300370300200541286a2072290300370300200541206a2073290300370300200541186a2074290300370300200541106a2075290300370300200541086a2076290300370300200520022903d007370300200441306a2077290300370300200441286a2078290300370300200441206a2079290300370300200441186a207a290300370300200441106a207b290300370300200441086a207c290300370300200420022903980737030041c09fc2004130200241a80a6a41f09fc2004180a0c2001034000b9d3723027f017e037f017e027f017e067f017e037f017e077f017e037f017e077f017e037f017e077f017e037f017e077f017e037f017e077f017e037f017e067f017e037f017e0e7f230041c0056b22032400024002400240200241ff01714101460d00200341c4006a41026a2001410b6a2d00003a0000200320012f00093b0144200141106a2800002104200141186a2900002105200141206a2800002106200141286a2800002107200141306a2800002108200141386a2900002109200141c0006a2d0000210a20012d0008210b2001290300210c200128000c210d2001280014210e2001280024210f200128002c211020012800342111200341c0006a41026a200141c3006a2d00003a00002003413c6a41026a200141fb006a2d00003a0000200320012f00413b0140200320012f00793b013c200141f8006a2d00002112200141f0006a2900002113200141e8006a2800002114200141e0006a2800002115200141d8006a2800002116200141d0006a2900002117200141c8006a2800002118200128006c21192001280064211a200128005c211b200128004c211c2001280044211d200141b0016a2d0000211e200141a8016a290000211f200141a0016a280000212020014198016a280000212120014190016a280000212220014188016a290000212320014180016a280000212420012800a4012125200128009c01212620012800940121272001280084012128200128007c2129200341386a41026a200141b3016a2d00003a0000200320012f00b1013b0138200141e8016a2d0000212a200141e0016a290000212b200141d8016a280000212c200141d0016a280000212d200141c8016a280000212e200141c0016a290000212f200141b8016a280000213020012800dc01213120012800d401213220012800cc01213320012800bc01213420012800b4012135200341346a41026a200141eb016a2d00003a0000200320012f00e9013b0134200141a0026a2d0000213620014198026a290000213720014190026a280000213820014188026a280000213920014180026a280000213a200141f8016a290000213b200141f0016a280000213c200128009402213d200128008c02213e200128008402213f20012800f401214020012800ec012141200341306a41026a200141a3026a2d00003a0000200320012f00a1023b0130200141d8026a2d00002142200141d0026a2900002143200141c8026a2800002144200141c0026a2800002145200141b8026a2800002146200141b0026a2900002147200141a8026a280000214820012800cc02214920012800c402214a20012800bc02214b20012800ac02214c20012800a402214d2003412c6a41026a200141db026a2d00003a0000200320012f00d9023b012c20014190036a2d0000214e20014188036a290000214f20014180036a2800002150200141f8026a2800002151200141f0026a2800002152200141e8026a2900002153200141e0026a2800002154200128008403215520012800fc02215620012800f402215720012800e402215820012800dc022159200341286a41026a20014193036a2d00003a0000200320012f0091033b0128200141c0036a290000215a200141b8036a280000215b200141b0036a280000215c200141a8036a280000215d200141a0036a290000215e20014198036a280000215f20012800bc03216020012800b403216120012800ac032162200128009c03216320012800940321010c010b20034190056a41026a2001410b6a2d00003a0000200320012f00093b019005200141106a2800002104200141186a2900002105200141206a2800002106200141286a2800002107200141306a2800002108200141386a2900002109200141c0006a2d0000210a20012d0008210b200128000c210d2001280014210e2001280024210f200128002c2110200128003421112001290300210c2003418c056a41026a200141c3006a2d00003a000020034188056a41026a200141fb006a2d00003a0000200320012f00413b018c05200320012f00793b018805200141c8006a2800002118200141d0006a2900002117200141d8006a2800002116200141e0006a2800002115200141e8006a2800002114200141f0006a2900002113200141f8006a2d000021122001280044211d200128004c211c200128005c211b2001280064211a200128006c211920034184056a41026a2264200141b3016a2d00003a0000200320012f00b1013b018405200141b0016a2d0000211e200141a8016a290000211f200141a0016a280000212020014198016a280000212120014190016a280000212220014188016a290000212320014180016a2800002124200141e8016a2d0000212a200141e0016a290000212b200141d8016a280000212c200141d0016a280000212d200141c8016a280000212e200141c0016a290000212f200141b8016a280000213020012800a4012125200128009c01212620012800940121272001280084012128200128007c212920012800dc01213120012800d401213220012800cc01213320012800bc01213420012800b401213520034180056a41026a2265200141eb016a2d00003a0000200320012f00e9013b018005200141a0026a2d0000213620014198026a290000213720014190026a280000213820014188026a280000213920014180026a280000213a200141f8016a290000213b200141f0016a280000213c200128009402213d200128008c02213e200128008402213f20012800f401214020012800ec012141200341fc046a41026a2266200141a3026a2d00003a0000200320012f00a1023b01fc04200141d8026a2d00002142200141d0026a2900002143200141c8026a2800002144200141c0026a2800002145200141b8026a2800002146200141b0026a2900002147200141a8026a280000214820012800cc02214920012800c402214a20012800bc02214b20012800ac02214c20012800a402214d200341f8046a41026a2267200141db026a2d00003a0000200320012f00d9023b01f80420014190036a2d0000214e20014188036a290000214f20014180036a2800002150200141f8026a2800002151200141f0026a2800002152200141e8026a2900002153200141e0026a2800002154200128008403215520012800fc02215620012800f402215720012800e402215820012800dc022159200341f4046a41026a226820014193036a2d00003a0000200320012f0091033b01f404200141f9006a2169200141c1006a216a200141096a216b200141c0036a290000215a200141b8036a280000215b200141b0036a280000215c200141a8036a280000215d200141a0036a290000215e20014198036a280000215f20012800bc03216020012800b403216120012800ac032162200128009c03216320012800940321010240200c4201520d00200b41ff01710d0020034196056a41003a00002003410036009b052003410036029805200341003b0194050b200341c8006a41c0006a200a3a0000200341c8006a41386a2009370300200341c8006a41306a2008360200200341c8006a41286a2007360200200341c8006a41206a2006360200200341c8006a41186a2005370300200341c8006a41106a2004360200200341c8006a410b6a206b41026a2d00003a0000200341c8006a41c3006a206a41026a2d00003a00002003201136027c200320103602742003200f36026c2003200e36025c2003200d3602542003206b2f00003b00512003206a2f00003b0089012003200b3a00502003200c370348200341c8006a41f8006a20123a0000200341c8006a41f0006a2013370300200341c8006a41e8006a2014360200200341c8006a41e0006a2015360200200341c8006a41d8006a2016360200200341c8006a41d0006a2017370300200341c8006a41c8006a2018360200200341c8006a4180016a2024360200200341c8006a4188016a2023370300200341c8006a4190016a2022360200200341c8006a4198016a2021360200200341c8006a41a0016a2020360200200341c8006a41a8016a201f370300200341c8006a41b0016a201e3a0000200341c8006a41fb006a206941026a2d00003a0000200320193602b4012003201a3602ac012003201b3602a4012003201c360294012003201d36028c01200320293602c401200320283602cc01200320273602dc01200320263602e401200320253602ec01200320692f00003b00c101200341c8006a41e8016a202a3a0000200341c8006a41e0016a202b370300200341c8006a41d8016a202c360200200341c8006a41d0016a202d360200200341c8006a41c8016a202e360200200341c8006a41c0016a202f370300200341c8006a41b8016a2030360200200341c8006a41b3016a20642d00003a0000200341c8006a41eb016a20652d00003a0000200320313602a4022003203236029c0220032033360294022003203436028402200320353602fc01200320032f0184053b00f901200320032f0180053b00b102200341c8006a41a0026a20363a0000200341c8006a4198026a2037370300200341c8006a4190026a2038360200200341c8006a4188026a2039360200200341c8006a4180026a203a360200200341c8006a41f8016a203b370300200341c8006a41f0016a203c3602002003203d3602dc022003203e3602d4022003203f3602cc02200320403602bc02200320413602b402200341c8006a41a3026a20662d00003a0000200320032f01fc043b00e902200341c8006a41d8026a20423a0000200341c8006a41d0026a2043370300200341c8006a41c8026a2044360200200341c8006a41c0026a2045360200200341c8006a41b8026a2046360200200341c8006a41b0026a2047370300200341c8006a41a8026a204836020020032049360294032003204a36028c032003204b360284032003204c3602f4022003204d3602ec02200341c8006a41db026a20672d00003a0000200320032f01f8043b00a103200341c8006a4190036a204e3a0000200341c8006a4188036a204f370300200341c8006a4180036a2050360200200341c8006a41f8026a2051360200200341c8006a41f0026a2052360200200341c8006a41e8026a2053370300200341c8006a41e0026a2054360200200320553602cc03200320563602c403200320573602bc03200320583602ac03200320593602a403200341c8006a4193036a20682d00003a0000200320032f01f4043b00d903200341c8006a41c0036a205a370300200341c8006a41b8036a205b360200200341c8006a41b0036a205c360200200341c8006a41a8036a205d360200200341c8006a41a0036a205e370300200341c8006a4198036a205f3602002003206036028404200320613602fc03200320623602f403200320633602e403200320013602dc0302400240200c420151200b41ff0171457122690d00200341e8046a41026a20034190056a41026a2d00003a0000200341e4046a41026a2003418c056a41026a2d00003a0000200341e0046a41026a20034188056a41026a2d00003a0000200341dc046a41026a20034184056a41026a2d00003a0000200341d8046a41026a20034180056a41026a2d00003a0000200320032f0190053b01e804200320032f018c053b01e404200320032f0188053b01e004200320032f0184053b01dc04200320032f0180053b01d804200341d4046a41026a200341fc046a41026a2d00003a0000200341d0046a41026a200341f8046a41026a2d00003a0000200341cc046a41026a200341f4046a41026a2d00003a0000200320032f01fc043b01d404200320032f01f8043b01d004200320032f01f4043b01cc040c010b200341e8046a41026a20034194056a41026a2d00003a00002003200328009b053600ef0420032003280298053602ec04200320032f0194053b01e804200341c8006a109c014200210c4100210d410021044100210e4100210b420021050b200341c0046a41026a226a200341e8046a41026a2d00003a0000200320032802ec043602c404200320032800ef043600c704200320032f01e8043b01c004200341bc046a41026a226b200341e4046a41026a2d00003a0000200320032f01e4043b01bc04200341b8046a41026a2264200341e0046a41026a2d00003a0000200320032f01e0043b01b804200341b4046a41026a2265200341dc046a41026a2d00003a0000200320032f01dc043b01b404200341b0046a41026a2266200341d8046a41026a2d00003a0000200320032f01d8043b01b004200341ac046a41026a2267200341d4046a41026a2d00003a0000200320032f01d4043b01ac04200341a8046a41026a2268200341d0046a41026a2d00003a0000200320032f01d0043b01a804200341a4046a41026a226c200341cc046a41026a2d00003a0000200320032f01cc043b01a404024020690d00200341c4006a41026a206a2d00003a0000200341c0006a41026a206b2d00003a00002003413c6a41026a20642d00003a0000200341386a41026a20652d00003a0000200341346a41026a20662d00003a0000200320032f01c0043b0144200320032f01bc043b0140200320032f01b8043b013c200320032f01b4043b0138200320032f01b0043b0134200341306a41026a20672d00003a00002003412c6a41026a20682d00003a0000200341286a41026a206c2d00003a0000200320032f01ac043b0130200320032f01a8043b012c200320032f01a4043b01280c010b20034198046a41026a2201206a2d00003a0000200320032800c70436009f04200320032802c40436029c04200320032f01c0043b01980420034198056a41106a200b3a000020034198056a41086a200c37030020034198056a41206a20053c000020034198056a411c6a200e36020020034198056a41186a200436020020034198056a41146a200d3602002003200328009f0436009c052003200328029c0436009905200341a9056a20032f0198043b000020034198056a41136a20012d00003a0000200341013a009805200341c8006a20034198056a10cd03200341c4006a41026a2201200341d7006a2d00003a00002003200341d5006a2f00003b0144200341c8006a41106a290300210c200341c8006a41186a280200210b200341c8006a411c6a2902002105200328026c210220032802482104200329024c2109200041106a200341d4006a2d00003a0000200041086a20093702002000200436020420004100360200200041286a2002360000200041206a20053700002000411c6a200b360000200041146a200c370000200020032f01443b0011200041136a20012d00003a0000200020032f01403b0049200041cb006a200341c0006a41026a2d00003a0000200020032f013c3b00810120004183016a2003413c6a41026a2d00003a0000200041bb016a200341386a41026a2d00003a0000200020032f01383b00b901200041f3016a200341346a41026a2d00003a0000200020032f01343b00f101200041ab026a200341306a41026a2d00003a0000200020032f01303b00a902200041e3026a2003412c6a41026a2d00003a0000200020032f012c3b00e1022000419b036a200341286a41026a2d00003a0000200020032f01283b0099030c010b200341246a41026a2269200341c4006a41026a2d00003a0000200341206a41026a226a200341c0006a41026a2d00003a00002003411c6a41026a226b2003413c6a41026a2d00003a0000200341186a41026a2264200341386a41026a2d00003a0000200341146a41026a2265200341346a41026a2d00003a0000200320032f01443b0124200320032f01403b0120200320032f013c3b011c200320032f01383b0118200320032f01343b0114200341106a41026a2266200341306a41026a2d00003a00002003410c6a41026a22672003412c6a41026a2d00003a0000200341086a41026a2268200341286a41026a2d00003a0000200320032f01303b0110200320032f012c3b010c200320032f01283b010802400240200241ff01714102470d00200c4201520d00200b41ff0171450d010b200341d8006a200b3a000020034190016a200a3a000020034188016a200937030020034180016a2008360200200341f8006a2007360200200341f0006a2006360200200341e8006a2005370300200341e0006a2004360200200341db006a20692d00003a00002003200c370350200320032f01243b005920032011360284012003201036027c2003200f3602742003200e3602642003200d36025c200341c8016a20123a0000200341c0016a2013370300200341b8016a2014360200200341b0016a2015360200200341a8016a2016360200200341a0016a201737030020034198016a201836020020034193016a206a2d00003a0000200341cb016a206b2d00003a0000200320193602bc012003201a3602b4012003201b3602ac012003201c36029c012003201d36029401200320032f01203b009101200320032f011c3b00c90120034180026a201e3a0000200341f8016a201f370300200341f0016a2020360200200341e8016a2021360200200341e0016a2022360200200341d8016a2023370300200341d0016a2024360200200320253602f401200320263602ec01200320273602e401200320283602d401200320293602cc0120034183026a20642d00003a0000200320032f01183b008102200341b8026a202a3a0000200341b0026a202b370300200341a8026a202c360200200341a0026a202d36020020034198026a202e36020020034190026a202f37030020034188026a2030360200200320313602ac02200320323602a4022003203336029c022003203436028c022003203536028402200341bb026a20652d00003a0000200320032f01143b00b902200341f0026a20363a0000200341e8026a2037370300200341e0026a2038360200200341d8026a2039360200200341d0026a203a360200200341c8026a203b370300200341c0026a203c3602002003203d3602e4022003203e3602dc022003203f3602d402200320403602c402200320413602bc02200341f3026a20662d00003a0000200320032f01103b00f102200341a8036a20423a0000200341a0036a204337030020034198036a204436020020034190036a204536020020034188036a204636020020034180036a2047370300200341f8026a20483602002003204936029c032003204a360294032003204b36028c032003204c3602fc022003204d3602f402200341ab036a20672d00003a0000200320032f010c3b00a903200341e0036a204e3a0000200341d8036a204f370300200341d0036a2050360200200341c8036a2051360200200341c0036a2052360200200341b8036a2053370300200341b0036a2054360200200320553602d403200320563602cc03200320573602c403200320583602b403200320593602ac03200341e3036a20682d00003a0000200320032f01083b00e103200341c8006a41c8036a205a37030020034188046a205b36020020034180046a205c360200200341f8036a205d360200200341f0036a205e370300200341e8036a205f3602002003206036028c042003206136028404200320623602fc03200320633602ec03200320013602e403200041086a200341c8006a41086a41c8031085051a200041013602000c010b200341003a009805200341c8006a41047220034198056a10cd03200341003602482000200341c8006a41d0031085051a0b200341c0056a24000bcf7b070b7f067e137f017e087f017e037f230041a0236b22042400024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024020032d0000417f6a0e070001080203040a080b20044190146a200341106a41c8031085051a200441f0086a41086a22052003410c6a2802003602002004200341046a2902003703f008200441086a2002200441f0086a10e303200441c0006a2004280208200428020c200428021010e4032005200441086a41146a280200360200200420042902143703f008200441206a200441f0086a10e503200441e0006a410c6a200441c0006a41086a290300370200200441e0006a41146a200441c0006a41106a290300370200200441fc006a2205200441c0006a41186a28020036020020044184016a20042903203702002004418c016a200441206a41086a29030037020020044194016a200441206a41106a2903003702002004419c016a200441206a41186a28020036020020044101360260200420042903403702642004410136028001200441e0006a4104722106024020052802002205450d0020042005417f6a36027c200441e0006a41086a2802002205450d0720042802642107200441ec006a280200220820052f01a629490d1503400240024020052802a02922090d00410021090c010b200741016a210a20052f01a42921080b024041d82941a82920071b450d00200510300b024020090d00410221070c180b200a210720092105200820092f01a6294f0d000b20092105200a21070c150b2004410c3602f008200610e603200620042902d01f370200200641086a200441d01f6a41086a290200370200200641106a200441d01f6a41106a290200370200200641186a200441d01f6a41186a2802003602004100210b200441003602602004410c3602881820042802f008410c460d13200441f0086a109a010c160b200441801c6a200341206a41c8031085051a200341186a2802002106200341146a280200210a200341106a280200210b200441f0086a41086a2003410c6a2802003602002004200341046a2902003703f00820044188056a2002200441f0086a10e303200441c8016a20044188056a10e703200441e0006a20044188056a410c6a10e803200441b0056a410c6a2209200441c8016a41086a290300370200200441b0056a41146a200441c8016a41106a290300370200200441cc056a2205200441c8016a41186a280200360200200441d4056a2004290360370200200441dc056a200441e0006a41086a290300370200200441e4056a200441e0006a41106a290300370200200441ec056a2207200441e0006a41186a280200360200200441013602b005200420042903c8013702b405200441013602d005024020052802002205450d0020042005417f6a3602cc05200441b0056a4104724100200441b0056a41086a220c28020022051b220d2802002107024002402009410820051b220e2802002208200c410420051b220c28020022092f01a6294f0d00200921050c010b0340024020092802a02922050d00410021050c020b200741016a210720092f01a429210820052109200820052f01a6294f0d000b0b024002402007450d00200841027420056a41ac296a280200210902402007417f6a2207450d00034020092802a82921092007417f6a22070d000b0b410021070c010b200841016a2107200521090b200c2009360200200e2007360200200d4100360200200520084104746a220941f8276a290300210f200941f0276a2903002110024002402005200841d0036c6a22052802004101470d002005410c6a2802002209417f4c0d07200528020421070240024020090d00410121050c010b2009102f2205450d070b200420093602d81f200420053602d41f2005200720091085051a200441dc1f6a20093602004108210920042903d81f211120102112200f21130c010b200441d01f6a41086a200541086a10db03200441e81f6a2903002113200441e01f6a290300211220042903d81f2111200441d0106a200441f01f6a41b0031085051a410a21090b20044188096a2013370300200441f0086a41106a2012370300200441f0086a41086a2011370300200420053602f408200420093602f00820044190096a200441d0106a41b0031085051a200441c80c6a200f370300200441c00c6a2010370300200441d00c6a20042903a810370300200441d80c6a200441a8106a41086a290300370300200441e00c6a200441a8106a41106a29030037030020044188186a200441f0086a41f8031085051a0c0f0b2004410c3602f008200441003602b005200728020022050d0d2004410c360288180c0f0b20044188186a200341206a41c8031085051a200441c8016a41086a2205200341186a2802003602002004200341106a2902003703c801200441f0086a41086a2003410c6a2802003602002004200341046a2902003703f008200441d0106a2002200441f0086a10e303200441f0086a20044188186a10f001200441d0106a200441f0086a10e903200441d01f6a20042802d01020042802d41020042802d81010e40320044190146a41086a200441d0106a41146a280200360200200420042902dc1037039014200441801c6a20044190146a10e503200441ac146a200441d01f6a41186a28020036020020044190146a41146a200441d01f6a41106a29030037020020044190146a410c6a200441d01f6a41086a290300370200200441b4146a20042903801c370200200441bc146a200441801c6a41086a290300370200200441c4146a200441801c6a41106a290300370200200441cc146a200441801c6a41186a280200360200200420042903d01f3702941441012107200441013602b0142004410136029014200441b0056a20044190146a10ea03200441f0086a109c01200429038818210f200441f0086a410b6a200441b0056a41086a280200360000200420042903b0053700f308200420042900f008370390142004200441f7086a29000037009714200041186a20044188186a41086a41c0031085051a41002109200041d8036a41003a0000200041106a200f3702002000410b36020820004201370300200041f0036a2005280200360200200041e8036a20042903c80137020020002004290390143700d903200041e0036a2004290097143700000c060b200341046a290200210f2003410c6a280200210520044188186a200341206a41c8031085051a200441c8016a41086a2207200341186a2802003602002004200341106a2902003703c801200420053602f8082004200f3703f008200441d0106a2002200441f0086a10e303200441f0086a20044188186a10f001200441d0106a200441f0086a10e903200441d01f6a20042802d01020042802d41020042802d81010e40320044190146a41086a200441d0106a41146a280200360200200420042902dc1037039014200441801c6a20044190146a10e503200441ac146a200441d01f6a41186a28020036020020044190146a41146a200441d01f6a41106a29030037020020044190146a410c6a200441d01f6a41086a290300370200200441b4146a20042903801c370200200441bc146a200441801c6a41086a290300370200200441c4146a200441801c6a41106a290300370200200441cc146a200441801c6a41186a280200360200200420042903d01f3702941441012109200441013602b0142004410136029014200441b0056a20044190146a10ea03200441f0086a109c01200429038818210f200441f0086a410b6a200441b0056a41086a280200360000200420042903b0053700f308200420042900f008370390142004200441f7086a29000037009714200041186a20044188186a41086a41c0031085051a200041d8036a41023a0000200041106a200f3702002000410b36020820004201370300200041f0036a2007280200360200200041e8036a20042903c80137020020002004290390143700d903200041e0036a200429009714370000410021070c050b200341106a2903002114200441d01f6a200341186a41c8031085051a200341086a2802002115200341046a28020021162003410c6a2802002117200441e0006a41106a22184200370300200442003702640240201741f8036c22050d00200441d0106a21050c070b201620056a2119200441e0006a410c6a211a2002410c6a211b20044188186a41106a211c200441f0086a41086a210e200441f01b6a211d200441f0086a410c6a211e20044188186a41e0036a210a20044188186a41206a210c200441f0086a41206a211f20044188186a41086a2120200241146a2121200441e01b6a210d20044188186a41d3036a21222016210b034002400240024002400240024002400240024002400240024002400240200b28020022050e0c0d000102030c0b0a090809080d0b02400240200241086a2802000d00200442003702d4100c010b20022802042205450d07200441d0106a2002280200200510eb030b02400240200241146a2802000d00200441e0106a42003703000c010b20022802102205450d06200441dc106a201b280200200510ec030b200441e0006a10dc03200428027021052004410036027002402005450d000240200428026c2209450d00034020052802b02b21052009417f6a22090d000b0b200441003602f808200420053602f408200441003602f008200420042802743602fc08200441f0086a10dd030b200441d0106a21050c150b02400240200241086a2802000d00200442003702f4080c010b20022802042205450d04200441f0086a2002280200200510eb030b201e201a290200370200201e41086a201a41086a280200360200200441e0006a10dc032018200441f0086a41106a290300370300200441e0006a41086a200e290300370300200420042903f0083703600c0b0b200e200441e0006a41086a2207280200360200200420042903603703f0080240024020212802000d0020044200370380090c010b20022802102205450d02201e201b280200200510ec030b200428027021052004410036027002402005450d000240200428026c2209450d00034020052802b02b21052009417f6a22090d000b0b20044100360290182004200536028c182004410036028818200420042802743602941820044188186a10dd030b2018200441f0086a41106a2903003703002007200e290300370300200420042903f0083703600c0a0b200441d0106a200210e703200441801c6a41186a200441d0106a41186a2802002205360200200441801c6a41106a200441d0106a41106a290300370300200441801c6a41086a200441d0106a41086a290300370300200420042903d0103703801c2005450d0920042005417f6a3602981c200441801c6a410020042802841c1b220628020021070240024020062802082208200628020422092f01a6294f0d00200921050c010b0340024020092802a02922050d00410021050c020b200741016a210720092f01a429210820052109200820052f01a6294f0d000b0b024002402007450d00200841027420056a41ac296a280200210902402007417f6a2207450d00034020092802a82921092007417f6a22070d000b0b410021070c010b200841016a2107200521090b2006200936020420064100360200200620073602082005200841d0036c6a2109200520084104746a41f0276a21050340200541086a290300210f2005290300211002400240200928020022084101470d002009410c6a2802002207417f4c0d0f200928020421090240024020070d00410121050c010b2007102f2205450d0f0b200420073602f808200420053602f4082005200920071085051a200420073602fc084108210920042903f808211120102112200f21130c010b200e200941086a10db03200441f0086a41186a2903002113200429038009211220042903f808211120044188186a201f41b0031085051a410a21090b20044190146a20044188186a41b0031085051a200441c8016a41086a2207200441b0056a41086a290300370300200441c8016a41106a2206200441b0056a41106a290300370300200420042903b0053703c80120044188186a41186a201337030020042012370398182004200536028c1820042009360288182004201137039018200c20044190146a41b0031085051a200d200f370300200a20042903c801370300200a41086a2007290300370300200a41106a2006290300370300200420103703d81b024002402008450d00200b28020c2011422088a72209470d00200b280204200520091088050d00200441f0086a20044188186a41f8031085051a200441e0006a200441f0086a10ed030c010b20044188186a109a010b20042802981c2205450d0a20042005417f6a3602981c200441801c6a410020042802841c1b220628020021070240024020062802082208200628020422092f01a6294f0d00200921050c010b0340024020092802a02922050d00410021050c020b200741016a210720092f01a429210820052109200820052f01a6294f0d000b0b024002402007450d00200841027420056a41ac296a280200210902402007417f6a2207450d00034020092802a82921092007417f6a22070d000b0b410021070c010b200841016a2107200521090b2006200936020420064100360200200620073602082005200841d0036c6a2109200520084104746a41f0276a21050c000b0b41b2abc200412b41a082c200102d000b41b2abc200412b41a082c200102d000b41b2abc200412b41a082c200102d000b41b2abc200412b41a082c200102d000b0240024002400240200541776a0e03020001000b41d8a5c200412841c0dfc100102d000b200441f0086a200b41086a10db0320042802f408210620042802f008210520044188186a200e41c0031085051a41002108410021070240024002400240024002400240200b2d00d0030e0706010203040500060b200b41dc036a2802002223417f4c0d0f200b41d4036a28020021090240024020230d00410121240c010b2023102f2224450d0f0b20234108762125202420092023108505410876212641062107202321270c050b200b41e0036a2903002128200b2903d803220f422088a72123200f420888a72125200fa72127410121070c040b200b2f00d103200b41d3036a2d0000411074722129200b2d00d4032124410221070c030b200b2800d40322244108762126200b2f00d103200b41d3036a2d0000411074722129200b2d00d8032127410321070c020b202842807e83200b3100e003842128200b2800d80322274108762125200b2800d40322244108762126200b2f00d103200b41d3036a2d0000411074722129200b2800dc032123410421070c010b20044190146a41086a200b41f0036a2d00003a00002004200b2900e80337039014200b2800d40322244108762126200b2f00d103200b41d3036a2d0000411074722129200b41e0036a2900002128200b2900d803220f422088a72123200f420888a72125200fa72127410521070b200441f0086a20044188186a41c0031085051a200441801c6a41086a20044190146a41086a29030037030020042004290390143703801c2026410874202441ff017172212a2023ad4220862025410874202741ff017172ad84210f20292109202821100c010b200b410c6a2802002205417f4c0d08200b28020421090240024020050d004101212b0c010b2005102f222b450d080b202b200920051085051a410021070240024002400240024002400240200b2d00100e0706010203040500060b200b411c6a280200222c417f4c0d0e200b41146a280200210902400240202c0d004101212d0c010b202c102f222d450d0e0b202c410876212e202d2009202c108505410876212f41062107202c21300c050b200b41206a2903002131200b290318220f422088a7212c200f420888a7212e200fa72130410121070c040b200b2f0011200b41136a2d0000411074722132200b2d0014212d410221070c030b200b280014222d410876212f200b2f0011200b41136a2d0000411074722132200b2d00182130410321070c020b203142807e83200b310020842131200b2800182230410876212e200b280014222d410876212f200b2f0011200b41136a2d0000411074722132200b28001c212c410421070c010b200e200b41306a2d00003a00002004200b2900283703f008200b280014222d410876212f200b2f0011200b41136a2d0000411074722132200b41206a2900002131200b290018220f422088a7212c200f420888a7212e200fa72130410521070b200441801c6a41086a200e290300370300200420042903f0083703801c202f410874202d41ff017172212a202cad422086202e410874203041ff017172ad84210f410121082005210620322109203121100b20044190146a200441f0086a41c0031085051a200441d0106a41086a2233200441801c6a41086a290300370300200420042903801c3703d010200420063602941820042005360290182004202b36028c18201c20044190146a41c0031085051a200a2010370300201d20042903d010370300201d41086a2033290300370300200420093b00d91b202220094110763a00002004200f3703e01b2004202a3602dc1b200420073a00d81b2004200836028818024020022802102206450d00201b280200212a034020062f01ae2b223341f8036c2105417f21072006210902400340024020050d00203321070c020b200741016a2107200541887c6a210520044188186a20091090012108200941f8036a2109200841ff01714101460d000b0240200841187441187541016a0e020100010b200441f0086a20044188186a41f8031085051a201a200441f0086a10ee030c070b0240202a450d00202a417f6a212a200620074102746a41b02b6a28020021060c010b0b20042802881821080b0240024020080d002020109c010c010b200428029018450d00200428028c1810300b20042d00d81b4106490d0420042802e01b450d0420042802dc1b10300c040b0240024002400240200541786a0e03020001000b41d8a5c200412841b0dfc100102d000b200441f0086a200b41086a10db0320042802f408210620042802f008210520044190146a200e41c0031085051a200b41d0036a2109410021080c010b200b410c6a2802002205417f4c0d07200b2802042106410121084101210702402005450d002005102f2207450d070b200b41106a21092007200620051085051a200521060b200941086a290300210f20092903002110200420063602941820042005360290182004200736028c182004200836028818201c20044190146a41c0031085051a02402002280204222a450d00200228020021330340202a41e0276a2108202a2f01a629223441d0036c2105417f2107202a210902400340024020050d00203421070c020b200741016a2107200841106a2108200541b07c6a210520044188186a20091091012106200941d0036a2109200641ff01714101460d000b0240200641187441187541016a0e020100010b200441f0086a20044188186a41d0031085051a200441e0006a200441f0086a2008290300221120102010201156200f200841086a290300221156200f2011511b22051b2011200f20051b10ef030c060b02402033450d002033417f6a2133202a20074102746a41a8296a280200212a0c010b0b20042802881821080b024020080d002020109c010c040b200428029018450d03200428028c1810300c030b200441d0106a201b10e803200441801c6a41186a200441d0106a41186a280200360200200441801c6a41106a200441d0106a41106a290300370300200441801c6a41086a200441d0106a41086a290300370300200420042903d0103703801c200b41086a212a034020042802981c2205450d0320042005417f6a3602981c200441801c6a410020042802841c1b220628020021070240024020062802082208200628020422092f01ae2b4f0d00200921050c010b200921050340024020052802a82b22050d00410021050c020b200741016a210720092f01ac2b210820052109200820052f01ae2b4f0d000b0b024002402007450d00200841027420056a41b42b6a280200210902402007417f6a2207450d00034020092802b02b21092007417f6a22070d000b0b410021070c010b200841016a2107200521090b200620093602042006410036020020062007360208200441f0086a2005200841f8036c6a10f00320042802f008410c460d0320044190146a200441f0086a41f8031085051a20044188186a20044190146a41f8031085051a0240200428028818410b470d00202a202010f103450d00200441f0086a20044188186a41f8031085051a200441e0006a200441f0086a10ed030c010b20044188186a109a010c000b0b200441d0106a200210e703200441801c6a41186a200441d0106a41186a2802002205360200200441801c6a41106a200441d0106a41106a290300370300200441801c6a41086a200441d0106a41086a290300370300200420042903d0103703801c2005450d0120042005417f6a3602981c200441801c6a410020042802841c1b220628020021070240024020062802082208200628020422092f01a6294f0d00200921050c010b0340024020092802a02922050d00410021050c020b200741016a210720092f01a429210820052109200820052f01a6294f0d000b0b024002402007450d00200841027420056a41ac296a280200210902402007417f6a2207450d00034020092802a82921092007417f6a22070d000b0b410021070c010b200841016a2107200521090b200b41086a212a2006200936020420064100360200200620073602082005200841d0036c6a2109200520084104746a41f0276a21050340200541086a290300210f2005290300211002400240200928020022084101470d002009410c6a2802002207417f4c0d07200928020421090240024020070d00410121050c010b2007102f2205450d070b200420073602f808200420053602f4082005200920071085051a200420073602fc084108210920042903f808211120102112200f21130c010b200e200941086a10db03200441f0086a41186a2903002113200429038009211220042903f808211120044188186a201f41b0031085051a410a21090b20044190146a20044188186a41b0031085051a200441c8016a41086a2207200441b0056a41086a290300370300200441c8016a41106a2206200441b0056a41106a290300370300200420042903b0053703c80120044188186a41186a2013370300200420123703981820042011370390182004200536028c182004200936028818200c20044190146a41b0031085051a200d200f370300200a20042903c801370300200a41086a2007290300370300200a41106a2006290300370300200420103703d81b0240024020080d00202a202010f103450d00200441f0086a20044188186a41f8031085051a200441e0006a200441f0086a10ed030c010b20044188186a109a010b20042802981c2205450d0220042005417f6a3602981c200441801c6a410020042802841c1b220628020021070240024020062802082208200628020422092f01a6294f0d00200921050c010b0340024020092802a02922050d00410021050c020b200741016a210720092f01a429210820052109200820052f01a6294f0d000b0b024002402007450d00200841027420056a41ac296a280200210902402007417f6a2207450d00034020092802a82921092007417f6a22070d000b0b410021070c010b200841016a2107200521090b2006200936020420064100360200200620073602082005200841d0036c6a2109200520084104746a41f0276a21050c000b0b200441d0106a201b10e803200441801c6a41186a200441d0106a41186a280200360200200441801c6a41106a200441d0106a41106a290300370300200441801c6a41086a200441d0106a41086a290300370300200420042903d0103703801c034020042802981c2205450d0120042005417f6a3602981c200441801c6a410020042802841c1b220628020021070240024020062802082208200628020422092f01ae2b4f0d00200921050c010b200921050340024020052802a82b22050d00410021050c020b200741016a210720092f01ac2b210820052109200820052f01ae2b4f0d000b0b024002402007450d00200841027420056a41b42b6a280200210902402007417f6a2207450d00034020092802b02b21092007417f6a22070d000b0b410021070c010b200841016a2107200521090b200620093602042006410036020020062007360208200441f0086a2005200841f8036c6a10f00320042802f008410c460d0120044190146a200441f0086a41f8031085051a20044188186a20044190146a41f8031085051a02402004280288184109470d00200b28020c2205200428029418470d00200b280204200428028c1820051088050d00200441f0086a20044190146a41f8031085051a200441e0006a200441f0086a10ed030c010b20044188186a109a010c000b0b200b41f8036a220b2019470d000b200441d0106a21050c060b102a000b102c000b41b2abc200412b41d4a8c200102d000b200042013703002000410536020841012109410121070b410121080c030b20044188186a200341106a41f8031085051a2003410c6a2802002105200341086a2802002107200341046a28020021080240024020034188046a290300220f20034190046a2903007c200f54220a0d0020044188186a41206a2109200441e01b6a2903002112200441d81b6a290300211320044188186a41186a290300211020044188186a41106a290300211120044188186a41086a290300210f200428028c18210602400240024002400240024002400240024002400240024002402004280288180e0c01000a0b0608070903050204010b2002290200210f2002290208211020024200370204200441dc106a2010370200200241106a2209290200211020094200370200200441e4106a2010370200200441003602d0102004200f3702d4100c0b0b200441e4106a4200370200200441d8106a4200370300200441003602d0100c0a0b20044190146a41186a2010370300200441a0146a20113703002004200f3703981420044190146a41206a200941b0031085051a2004410036029014200441d0106a200220044190146a2013201210f2030c090b20044198146a200f37030020042006360294142004410136029014200441d0106a200220044190146a2011201010f2030c080b20044190146a41186a201037030020044190146a41106a20113703002004200f3703981420044190146a41206a200941b0031085051a2004410036029014200441d01f6a41106a200441e81b6a290300370300200441d01f6a41186a200441f01b6a290300370300200441d01f6a41206a200441f81b6a290300370300200420123703d81f200420133703d01f200441d0106a200220044190146a200441d01f6a10f3030c070b20044190146a41086a200f37030020042006360294142004410136029014200441d01f6a41106a2009290300370300200441d01f6a41186a200941086a290300370300200441d01f6a41206a200941106a290300370300200420103703d81f200420113703d01f200441d0106a200220044190146a200441d01f6a10f3030c060b200441801c6a41086a220b200f370300200441c0056a22094200370300200442003702b405200420063602841c200441013602801c20044190146a2002200441801c6a10f40302402004280290144102460d00200441e8176a290300210f20042903e0172110200441d01f6a20044190146a41d0031085051a200441b0056a200441d01f6a2010200f10f5030b200441dc106a200441b0056a41086a290300370200200441e4106a2009290300370200200420042903b0053702d410200441003602d010024020042802801c0d00200b109c010c060b20042802881c450d0520042802841c10300c050b200441801c6a41186a2010370300200441801c6a41106a20113703002004200f3703881c200441801c6a41206a200941b0031085051a200441b0056a41106a22094200370300200442003702b405200441003602801c20044190146a2002200441801c6a10f40302402004280290144102460d00200441e8176a290300210f20042903e0172110200441d01f6a20044190146a41d0031085051a200441b0056a200441d01f6a2010200f10f5030b200441dc106a200441b0056a41086a290300370200200441e4106a2009290300370200200420042903b0053702d410200441003602d010024020042802801c0d00200441801c6a41086a109c010c050b20042802881c450d0420042802841c10300c040b20044198146a2209200f37030020042006360294142004410136029014200441d0106a410472200220044190146a10f603200441003602d01002402004280290140d002009109c010c040b200428029814450d0320042802941410300c030b20044190146a41186a2010370300200441a0146a20113703002004200f3703981420044190146a41206a200941b0031085051a2004410036029014200441d0106a410472200220044190146a10f603200441003602d01002402004280290140d0020044198146a109c010c030b200428029814450d0220042802941410300c020b2002290200210f2002280208210920024200370204200441e4106a4200370200200441dc106a2009360200200441003602d0102004200f3702d4100c010b200441d0106a41106a200229020c370300200441d8106a4200370300200241146a2802002109200241106a4200370200200441d0106a41186a2009360200200441003602d0100b024020042802d0104101470d0020004201370300200041143602080c020b200441d0016a200441e4106a290200220f3703002004200441d0106a410c6a29020022103703c80120042902d410211120044180096a200f370300200420113703f008200420103703f808200441f0086a10f703200441f0086a410c6a10f80320004201370300200041023602080c010b20004201370300200042013703080b02402005450d00200541e8036c21092008210503402005109601200541e8036a2105200941987c6a22090d000b0b02402007450d00200741e8036c450d00200810300b0240200a450d0020044188186a109a010b4100210a4101210941012107410121080c030b200441d0106a41106a200441e0006a41106a290300370300200441d0106a41086a200441e0006a41086a290300370300200420042903603703d0100b200441f0086a200441d01f6a10f001200441d0106a200441f0086a10e90320044190146a20042802d01020042802d41020042802d81010e40320044188186a41086a200441d0106a41146a280200360200200420042902dc1037038818200441801c6a20044188186a10e503200441a4186a20044190146a41186a28020036020020044188186a41146a20044190146a41106a29030037020020044194186a20044190146a41086a290300370200200441ac186a20042903801c370200200441b4186a200441801c6a41086a290300370200200441bc186a200441801c6a41106a290300370200200441c4186a200441801c6a41186a280200360200200420042903901437028c18200441013602a8182004410136028818200441e0006a20044188186a10ea03200441f0086a109c0120042903d01f210f20044190146a200441d01f6a41086a41c0031085051a200441b0056a410b6a200441e0006a41086a280200360000200420042903603700b305200420042900b0053703c8012004200441b7056a2900003700cf0120044188186a200441f0086a41d0031085051a200520044190146a41c0031085051a200441801c6a20044190146a41c0031085051a200041186a200441801c6a41c0031085051a200041f0036a20044188186a41d0031085051a200041d8036a41033a0000200041106a200f3702002000202b36020c2000410b360208200020042903c8013700d903200041e0036a20042900cf01370000200041e8036a20143703002000420137030002402017450d00201741f8036c21092016210503402005109a01200541f8036a2105200941887c6a22090d000b0b02402015450d00201541f8036c450d00201610300b4100210841012109410121070b4101210a0b41012106410121050c0b0b20042005417f6a3602ec05200441d4056a4100200441d8056a220928020022051b220c280200210702400240200441dc056a410820051b220d28020022082009410420051b220e28020022092f01ae2b4f0d00200921050c010b200921050340024020052802a82b22050d00410021050c020b200741016a210720092f01ac2b210820052109200820052f01ae2b4f0d000b0b024002402007450d00200841027420056a41b42b6a280200210902402007417f6a2207450d00034020092802b02b21092007417f6a22070d000b0b410021070c010b200841016a2107200521090b200e2009360200200c4100360200200d200736020020044188186a2005200841f8036c6a10f00320042802f008410c460d00200441f0086a109a010b200428028818410c470d010b200441d0106a41106a20044188056a41106a290300370300200441d0106a41086a220520044188056a41086a29030037030020042004290388053703d010200441f0086a200441801c6a10f001200441d0106a200441f0086a10e90320044190146a20042802d01020042802d410200528020010e40320044188186a41086a200441d0106a41146a280200360200200420042902dc1037038818200441d01f6a20044188186a10e503200441a4186a20044190146a41186a28020036020020044188186a41146a20044190146a41106a29030037020020044194186a20044190146a41086a290300370200200441ac186a20042903d01f370200200441b4186a200441d01f6a41086a290300370200200441bc186a200441d01f6a41106a290300370200200441c4186a200441d01f6a41186a280200360200200420042903901437028c18200441013602a8182004410136028818200441b0056a20044188186a10ea03200441f0086a109c0120042903801c210f200441f0086a410b6a200441b0056a41086a280200360000200420042903b0053700f308200420042900f008370388182004200441f7086a29000037008f18200041186a200441801c6a41086a41c0031085051a200041d8036a41013a0000200041106a200f3702002000410b360208200041f0036a2006360200200041ec036a200a360200200041e8036a200b3602002000420137030020002004290388183700d903200041e0036a200429008f183700000c010b20044190146a20044188186a41f8031085051a200441f0086a20044190146a41f8031085051a2000420137030020004102360208200441f0086a109a0120044188056a10dc03024020044198056a2802002205450d0002402004280294052209450d00034020052802b02b21052009417f6a22090d000b0b200441003602f808200420053602f408200441003602f00820042004419c056a2802003602fc08200441f0086a10dd030b02402006450d0020064198046c2109200b21050340200510a00120054198046a2105200941e87b6a22090d000b0b0240200a450d00200a4198046c450d00200b10300b200441801c6a109c010b410021064101210941012107410121084101210a410121050c060b4100210b0c030b200841016a21092005200841d0036c6a210a200520084104746a220841f8276a210b200841f0276a210802402007450d00200520094102746a41a8296a280200210502402007417f6a2209450d00034020052802a82921052009417f6a22090d000b0b410021090b200b29030021102008290300210f200a2802082108200a28020c210b200a280204210c200a2802002107200441d01f6a200a41106a41c0031085051a0b200441801c6a200441d01f6a41c0031085051a2004200936026c2004200536026820044100360264024002402007450d0020044188096a201037030020044180096a200f3703002004200c3602f408410821050c010b20044180096a200441801c6a41c0031085051a200441c80c6a2010370300200441c00c6a200f370300410a21050b200441fc086a200b360200200441f8086a2008360200200420053602f00820044188186a200441f0086a41f8031085051a4101210b0b2004280288182205410c460d0020044188186a410c6a280200210920044188186a41086a2802002108200428028c18210a200441b0056a20044188186a41106a41c0031085051a200441a8056a200441f81b6a290300370300200441a0056a200441f01b6a29030037030020044188056a41106a200441e81b6a29030037030020044188056a41086a200441e01b6a2903003703002004200441d81b6a290300370388050c010b0240024002402004280280014101470d002004419c016a2802002205450d0020042005417f6a36029c01024020044188016a2802002209450d00200428028401210702402004418c016a280200220820092f01ae2b4f0d00200921052007210a0c030b03400240024020092802a82b22050d00410021050c010b200741016a210a20092f01ac2b21080b024041e02b41b02b20071b450d00200910300b024020050d004102210d0c050b20052109200a2107200820052f01ae2b490d030c000b0b41b2abc200412b41d4a8c200102d000b0240200b450d00200610e6030b0240200428028001450d0020044188016a2802002205450d002004418c016a2802002109200428028401210720042004419c016a2802003602fc08200420093602f808200420053602f408200420073602f008200441f0086a10dd030b20044190146a109c01200041086a420037030020004200370300024020032d0000220541074b0d00410120057441f601710d050b200310f9030c040b200841016a210c2005200841f8036c6a21070240200a450d002005200c4102746a41b02b6a28020021050240200a417f6a2209450d00034020052802b02b21052009417f6a22090d000b0b4100210c0b20072802082108200728020c21092007280204210a2007280200210d200441f0086a200741106a41c0031085051a200441a01c6a200741f0036a290200370300200441981c6a200741e8036a290200370300200441801c6a41106a200741e0036a290200370300200441881c6a200741d8036a290200370300200420072902d0033703801c0b200441d01f6a200441f0086a41c0031085051a200441a8106a41206a2207200441801c6a41206a290300370300200441a8106a41186a220e200441801c6a41186a290300370300200441a8106a41106a221f200441801c6a41106a290300370300200441a8106a41086a2220200441801c6a41086a290300370300200420042903801c3703a8102004200c36028c012004200536028801200441003602840102400240200d450d00200441b0056a41206a2007290300370300200441b0056a41186a200e290300370300200441b0056a41106a201f290300370300200441b0056a41086a2020290300370300200420042903a8103703b005410921050c010b200441b0056a200441d01f6a41c0031085051a20044188056a41206a200729030037030020044188056a41186a200e29030037030020044188056a41106a201f29030037030020044188056a41086a2020290300370300200420042903a81037038805410b21050b200428028818410c460d0020044188186a109a010b200441c8016a200441b0056a41c0031085051a200441a0016a41206a220720044188056a41206a290300370300200441a0016a41186a220c20044188056a41186a290300370300200441a0016a41106a220d20044188056a41106a290300370300200441a0016a41086a220e20044188056a41086a29030037030020042004290388053703a001200441fc086a2009360200200441f0086a41086a20083602002004200a3602f408200420053602f008200441f0086a41106a200441c8016a41c0031085051a2000410236020820004201370300200441e00c6a2007290300370300200441d80c6a200c290300370300200441d00c6a200d290300370300200441c80c6a200e290300370300200441c00c6a20042903a001370300200441f0086a109a010240200b450d00200610e6030b0240200428028001450d0020044188016a2802002205450d002004418c016a2802002109200428028401210720042004419c016a2802003602fc08200420093602f808200420053602f408200420073602f008200441f0086a10dd030b20044190146a109c01410021054101210941012107410121084101210a410121060b024002400240024002400240024020032d0000417f6a0e0700010602030405060b2005450d0602402003410c6a2802002209450d00200341046a2802002105200941f8036c210903402005109a01200541f8036a2105200941887c6a22090d000b0b0240200341086a2802002205450d00200541f8036c450d00200328020410300b200341106a109c010c060b2006450d0502402003410c6a2802002209450d00200341046a2802002105200941f8036c210903402005109a01200541f8036a2105200941887c6a22090d000b0b0240200341086a2802002205450d00200541f8036c450d00200328020410300b200341206a109c010240200341186a2802002209450d00200341106a280200210520094198046c21090340200510a00120054198046a2105200941e87b6a22090d000b0b200341146a2802002205450d0520054198046c450d05200328021010300c050b2009450d0402402003410c6a2802002209450d00200341046a2802002105200941f8036c210903402005109a01200541f8036a2105200941887c6a22090d000b0b0240200341086a2802002205450d00200541f8036c450d00200328020410300b200341206a109c010240200341186a2802002209450d00200341106a280200210520094198046c21090340200510a00120054198046a2105200941e87b6a22090d000b0b200341146a2802002205450d0420054198046c450d04200328021010300c040b2007450d0302402003410c6a2802002209450d00200341046a2802002105200941f8036c210903402005109a01200541f8036a2105200941887c6a22090d000b0b0240200341086a2802002205450d00200541f8036c450d00200328020410300b200341206a109c010240200341186a2802002209450d00200341106a280200210520094198046c21090340200510a00120054198046a2105200941e87b6a22090d000b0b200341146a2802002205450d0320054198046c450d03200328021010300c030b2008450d02200341186a109c0102402003410c6a2802002209450d00200341046a2802002105200941f8036c210903402005109a01200541f8036a2105200941887c6a22090d000b0b200341086a2802002205450d02200541f8036c450d02200328020410300c020b200a450d01200341106a109a0102402003410c6a2802002209450d00200341046a2802002105200941e8036c210903402005109601200541e8036a2105200941987c6a22090d000b0b200341086a2802002205450d01200541e8036c450d01200328020410300c010b200310f9030b200441a0236a24000bd64104207f037e057f027e230041a0206b22032400200341086a41106a42003703002003420037020c200228020022042002280208220541f8036c22066a210720022802042108200421090240024002402005450d00200341086a410c6a210a2001410c6a210b200641887c6a210c200341981c6a410472210d200341981c6a41d0036a210e20034198146a41cc036a210f200341a0186a41cc036a211020034198146a41086a211120034198146a4104722112200341a0186a4104722113200341a0186a41086a2114200341a0106a4104722115200341a0106a41086a2116200341981c6a41086a2117200341800c6a4104722118200341800c6a41086a211920034190086a410472211a20034190086a41086a211b20034198146a41046a211c200341a0106a41d0036a211d200341800c6a41106a211e200341981c6a41046a211f200341800c6a41d0036a212020034198046a410472212120034198146a41d8036a21222004210903402009220241f8036a210920022802002205410c460d01200341246a200241046a41f4031085051a20032005360298042021200341246a41f4031085051a024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024020050e0c170001020e0b0d0a07050804170b2001290210212320014200370210200129020021242001290208212520014200370204200041106a2023370200200020253702082000202437020020034198046a109a01024020072009460d0003402009109a01200941f8036a2109200c41887c6a220c0d000b0b02402008450d00200841f8036c450d00200410300b200341086a10dc0320032802182102200341003602182002450d1b024020032802142205450d00034020022802b02b21022005417f6a22050d000b0b200341003602a01c2003200236029c1c200341003602981c2003200328021c3602a41c200341981c6a10dd030c1b0b200128020821022001280204210520014200370204200341a0106a20012802002005200210fd03200341a0186a41186a200341a0106a41186a2802002202360200200341a0186a41106a200341a0106a41106a29030037030020142016290300370300200320032903a0103703a0182002450d1420032002417f6a22263602b81820032802a4182202450d0120032802a018212720032802a818222820022f01a629490d1203400240024020022802a02922050d00410021050c010b202741016a210620022f01a42921280b024041d82941a82920271b450d00200210300b024020050d00410221050c150b2006212720052102202820052f01a6294f0d000b20052102200621270c120b2019200b41086a280200220236020020014100360214200b290200212320014100360210200320233703800c20172002360200200320233703981c200341a0106a200341981c6a10d20320032802a010210620032802a410210220032802a8102128024020032802b81022260d0020022105202821270c100b02402002450d000240202820022f01ae2b4f0d0020022105200621290c0f0b03400240024020022802a82b22050d00410021050c010b200641016a212920022f01ac2b21280b024041e02b41b02b20061b450d00200210300b024020050d00410221020c110b2005210220292106202820052f01ae2b490d0f0c000b0b41b2abc200412b41d4a8c200102d000b41b2abc200412b41d4a8c200102d000b200341800c6a20034198046a41f8031085051a0c010b200341800c6a20034198046a41f8031085051a0b024002400240024020032802800c41776a0e03020001000b41d8a5c200412841c4dec100102d000b201f201941c8031085051a200341a0186a41206a202041206a290300370300200341a0186a41186a202041186a290300370300200341a0186a41106a202041106a2903003703002014202041086a290300370300200320202903003703a01820034198146a200341981c6a41cc031085051a410021020c010b2011201841086a2802003602002014201e41086a290300370300200341a0186a41106a201e41106a290300370300200341a0186a41186a201e41186a290300370300200341a0186a41206a201e41206a29030037030020032018290200370398142003201e2903003703a018410121020b20034190086a20034198146a41cc031085051a200341f80f6a41206a2205200341a0186a41206a290300370300200341f80f6a41186a2206200341a0186a41186a290300370300200341f80f6a41106a2227200341a0186a41106a290300370300200341f80f6a41086a22282014290300370300200320032903a0183703f80f201520034190086a41cc031085051a201d41206a2005290300370300201d41186a2006290300370300201d41106a2027290300370300201d41086a2028290300370300201d20032903f80f370300200320023602a010024020012802102228450d00200b2802002126034020282f01ae2b222a41f8036c21294100210241ac2b2106417f2105024002400340024020292002470d00202a21050c020b200541016a2105200641046a2106202820026a2127200241f8036a2102200341a0106a2027109001222741ff01714101460d000b0240202741187441187541016a0e020100010b200341003a00f00b024002402026450d00202820066a2802002102024020264101460d00410121050340200220022f01ae2b4102746a41b02b6a28020021022026200541016a2205470d000b0b20022f01ae2b2105200341003602a01820032005417f6a410020051b3602a81820032002410020051b3602a418200341981c6a200341a0186a200341f00b6a109504200341a0186a200341981c6a41f8031085051a200328029020210502400240200328029820220620032802942022272f01ae2b4f0d00202721020c010b202721020340024020022802a82b22020d00410021020c020b200541016a210520272f01ac2b210620022127200620022f01ae2b4f0d000b0b200341981c6a2002200641f8036c6a222741f8031085051a2027200341a0186a41f8031085051a02402005450d002005417f6a2205450d00200641027420026a41b42b6a2802002102034020022802b02b21022005417f6a22050d000b0b20034198146a200341981c6a41f8031085051a0c010b200320053602a01c2003202836029c1c200341003602981c20034198146a200341981c6a200341f00b6a1095040b2003280298142102200341a0186a201241f4031085051a20012001280214417f6a36021402400240024020032d00f00b450d0020012802102205450d01200b2802002227450d0220052802b02b210620012027417f6a36020c20012006360210200641003602a82b200510300b20024102460d03200320023602981c200d200341a0186a41f4031085051a200a200341981c6a10ee030c030b41b2abc200412b41d0acc200102d000b41b7a2c200412141d8a2c200102d000b2026450d002026417f6a2126202820054102746a41b02b6a28020021280c010b0b20032802a01021020b0240024020020d002016109c010c010b20032802a810450d0020032802a41010300b024020032d00f0134106490d0020032802f813450d0020032802f41310300b024020032802800c41776a0e03120012000b200341800c6a109a010c110b200341981c6a20034198046a41f8031085051a0c010b200341981c6a20034198046a41f8031085051a0b024002400240024020032802981c41786a0e03020001000b41d8a5c200412841b4dec100102d000b200341981c6a41d8036a290300212320032903e81f2124201c201741c8031085051a200341a0186a20034198146a41cc031085051a410021020c010b2014200d41086a2802003602002003200d2902003703a018200341981c6a41186a290300212320032903a81c2124410121020b200320023602800c2018200341a0186a41cc031085051a0240024020012802042229450d00200128020021260340202941e0276a212720292f01a629222a41d0036c2102417f21062029210502400340024020020d00202a21060c020b200641016a2106202741106a2127200241b07c6a2102200341800c6a20051091012128200541d0036a2105202841ff01714101460d000b0240202841187441187541016a0e020100010b0240024002402027290300222b202458202741086a290300222520235820252023511b0d000240024020032802800c4101470d00200328028c0c2202417f4c0d0420032802840c2127410121054101210602402002450d002002102f2206450d040b200320023602a0142003200636029c142006202720021085051a200320023602a4140c010b2011201910db03410021050b2003200536029814200120034198146a202b20247d202520237d202b202454ad7d108d0420034198146a200341800c6a41d0031085051a200341086a20034198146a2024202310ef030c060b024020012802042228450d0020012802002126034020282f01a629222a41d0036c21294100210241a4292106417f210502400340024020292002470d00202a21050c020b202820026a2127200541016a2105200641046a2106200241d0036a2102200341800c6a2027109101222741ff01714101460d000b0240202741187441187541016a0e020100010b200341003a009008024002402026450d00202820066a2802002102024020264101460d00410121050340200220022f01a6294102746a41a8296a28020021022026200541016a2205470d000b0b20022f01a6292105200341003602a01020032005417f6a410020051b3602a81020032002410020051b3602a41020034198146a200341a0106a20034190086a108b01200341a0106a20034198146a41d0031085051a2022290300212320032903e817212420032802f817212702400240200328028018220620032802fc1722052f01a6294f0d00200521020c010b0340024020052802a02922020d00410021020c020b202741016a212720052f01a429210620022105200620022f01a6294f0d000b0b20034198146a2002200641d0036c6a220541d0031085051a2005200341a0106a41d0031085051a200220064104746a220541f0276a2228290300212c20282024370300200541f8276a220529030021242005202337030002402027450d002027417f6a2205450d00200641027420026a41ac296a2802002102034020022802a82921022005417f6a22050d000b0b200341a0186a20034198146a41d0031085051a200341a0186a41d8036a20243703002003202c3703f01b0c010b200320053602a0142003202836029c142003410036029814200341a0186a20034198146a20034190086a108b010b20032802a0182102200341a0106a201341dc031085051a20012001280208417f6a36020802400240024020032d009008450d0020012802042205450d0120012802002227450d0220052802a829210620012027417f6a36020020012006360204200641003602a029200510300b20024102460d0420032002360298142012200341a0106a41dc031085051a024020020d002011109c010c050b20032802a014450d04200328029c1410300c040b41b2abc200412b41d0acc200102d000b41b7a2c200412141d8a2c200102d000b2026450d012026417f6a2126202820054102746a41a8296a28020021280c000b0b20034198146a200341800c6a41d0031085051a200341086a20034198146a202b202510ef030c050b102a000b102c000b02402026450d002026417f6a2126202920064102746a41a8296a28020021290c010b0b20032802800c21020b024020020d002019109c010c010b20032802880c450d0020032802840c10300b024020032802981c41786a0e030f000f000b200341981c6a109a010c0e0b20034198146a20034198046a41f8031085051a0c010b20034198146a20034198046a41f8031085051a0b0240024002400240200328029814417b6a0e03020001000b41d8a5c200412841a4dec100102d000b201b201141c8031085051a410021020c010b201a2012290200370200201a41086a201241086a280200360200410121020b2003200236029008200342003702e40b200341f00b6a41086a200b41086a222a280200220236020020014100360214200b290200212320014100360210200320233703f00b20172002360200200320233703981c200341f80f6a200341981c6a10d20320032802f80f210620032802fc0f210220032802801021280240024020032802901022260d0020022105202821270c010b0240024002402002450d000240202820022f01ae2b4f0d0020022105200621290c020b03400240024020022802a82b22050d00410021050c010b200641016a212920022f01ac2b21280b024041e02b41b02b20061b450d00200210300b024020050d00410221020c040b2005210220292106202820052f01ae2b490d020c000b0b41b2abc200412b41d4a8c200102d000b202841016a21272005202841f8036c6a210602402029450d00200520274102746a41b02b6a280200210502402029417f6a2202450d00034020052802b02b21052002417f6a22020d000b0b410021270b20062802002102200341981c6a200641046a41f4031085051a0b200341a0106a200341981c6a41f4031085051a0340200341a0186a200341a0106a41f4031085051a200320023602800c2018200341a0106a41cc031085051a2026417f6a2126024002402003280290082002470d000240024020024101460d00201b201910f1030d010c020b200328029c082202200328028c0c470d0120032802940820032802840c20021088050d010b200341981c6a200341800c6a41d0031085051a200e41206a201041206a290200370200200e41186a201041186a290200370200200e41106a201041106a290200370200200e41086a201041086a290200370200200e2010290200370200200a200341981c6a1096040c010b200341981c6a200341800c6a41d0031085051a200e41206a201041206a290200370200200e41186a201041186a290200370200200e41106a201041106a290200370200200e41086a201041086a290200370200200e2010290200370200200341e00b6a200341981c6a10ee030b024020260d00410021060c020b02402005450d000240024002400240202720052f01ae2b490d0041002106034041002102024020052802a82b2229450d00200641016a212820052f01ac2b2127202921020b024041e02b41b02b20061b450d00200510300b024020020d00410221020c050b2002210520282106202720022f01ae2b4f0d000b2002202741f8036c6a2106024020280d00200221050c020b202741027420026a41b42b6a280200210502402028417f6a2202450d00034020052802b02b21052002417f6a22020d000b0b410021270c020b2005202741f8036c6a21060b202741016a21270b20062802002102200341981c6a200641046a41f4031085051a0b200341a0106a200341981c6a41f4031085051a0c010b0b41b2abc200412b41d4a8c200102d000b02402005450d00200341003602a41c200320273602a01c2003200536029c1c200320063602981c200341981c6a10dd030b2014200341e00b6a41086a2802003602002001280210210220014100360210200320032903e00b3703a01802402002450d000240200128020c2205450d00034020022802b02b21022005417f6a22050d000b0b200341003602a01c2003200236029c1c200341003602981c200320012802143602a41c200341981c6a10dd030b200b20032903a018370200202a2014280200360200024002402003280290080d00201b109c010c010b200328029808450d0020032802940810300b0240200328029814417b6a0e030c000c000b20034198146a109a010c0b0b200341981c6a20034198046a41f8031085051a0c010b200341981c6a20034198046a41f8031085051a0b024002400240024020032802981c417c6a0e03020001000b41d8a5c20041284194dec100102d000b2016201741c8031085051a410021020c010b2015200d290200370200201541086a200d41086a280200360200410121020b200320023602a010200128020421022001280208210520014200370204200342003702f40b200341f80f6a20012802002002200510fd0320034190086a41186a200341f80f6a41186a280200220236020020034190086a41106a200341f80f6a41106a290300370300201b200341f80f6a41086a290300370300200320032903f80f3703900802402002450d0020032002417f6a22263602a8080240024002402003280294082202450d002003280290082127200328029808222820022f01a629490d0103400240024020022802a02922050d00410021050c010b202741016a210620022f01a42921280b024041d82941a82920271b450d00200210300b024020050d00410221050c040b2006212720052102202820052f01a6294f0d000b20052102200621270c010b41b2abc200412b41d4a8c200102d000b202841016a21062002202841d0036c6a2129200220284104746a220541f8276a2128200541f0276a212a02402027450d00200220064102746a41a8296a280200210202402027417f6a2205450d00034020022802a82921022005417f6a22050d000b0b410021060b20282903002124202a29030021232029280200210520034198146a202941046a41cc031085051a0b200341800c6a20034198146a41cc031085051a0340200320063602980820032002360294082003410036029008200320053602a0182013200341800c6a41cc031085051a02400240200520032802a010470d000240024020054101460d002014201610f103450d020c010b20032802ac18220520032802ac10470d0120032802a41820032802a41020051088050d010b20034198146a200341a0186a41d0031085051a200341086a20034198146a2023202410ef030c010b20034198146a200341a0186a41d0031085051a200341f00b6a20034198146a20232024108d040b2026450d0120032026417f6a22263602a80802400240024002402002450d00200620022f01a629490d0141002106034041002105024020022802a0292229450d00200641016a212820022f01a4292127202921050b024041d82941a82920061b450d00200210300b024020050d00410221050c050b2028210620052102202720052f01a6294f0d000b202741016a21062005202741d0036c6a2129200520274104746a220241f8276a2903002124200241f0276a2903002123024020280d00200521020c030b200520064102746a41a8296a280200210202402028417f6a2205450d00034020022802a82921022005417f6a22050d000b0b410021060c020b41b2abc200412b41d4a8c200102d000b2002200641d0036c6a2129200220064104746a220541f8276a2903002124200541f0276a2903002123200641016a21060b2029280200210520034198146a202941046a41cc031085051a0b200341800c6a20034198146a41cc031085051a0c000b0b20034190086a10e603200110dc03200141086a200341f00b6a41086a280200360200200120032903f00b3702000240024020032802a0100d002016109c010c010b20032802a810450d0020032802a41010300b024020032802981c417c6a0e03090009000b200341981c6a109a010c080b202841016a21272005202841f8036c6a210602402029450d00200520274102746a41b02b6a280200210502402029417f6a2202450d00034020052802b02b21052002417f6a22020d000b0b410021270b20062802002102200341981c6a200641046a41f4031085051a0b200341a0186a200341981c6a41f4031085051a0240034020034198146a200341a0186a41f4031085051a200320023602981c200d200341a0186a41cc031085051a200e41206a200f41206a290200370200200e41186a200f41186a290200370200200e41106a200f41106a290200370200200e41086a200f41086a290200370200200e200f290200370200200a200341981c6a1096042026417f6a2226450d012005450d030240024002400240202720052f01ae2b490d0041002106034041002102024020052802a82b2229450d00200641016a212820052f01ac2b2127202921020b024041e02b41b02b20061b450d00200510300b024020020d00410221020c050b2002210520282106202720022f01ae2b4f0d000b2002202741f8036c6a2106024020280d00200221050c020b202741027420026a41b42b6a280200210502402028417f6a2202450d00034020052802b02b21052002417f6a22020d000b0b410021270c020b2005202741f8036c6a21060b202741016a21270b20062802002102200341981c6a200641046a41f4031085051a0b200341a0186a200341981c6a41f4031085051a0c000b0b410021060b2005450d04200341003602a41c200320273602a01c2003200536029c1c200320063602981c200341981c6a10dd030c040b41b2abc200412b41d4a8c200102d000b202841016a21062002202841d0036c6a2129200220284104746a220541f8276a2128200541f0276a212a02402027450d00200220064102746a41a8296a280200210202402027417f6a2205450d00034020022802a82921022005417f6a22050d000b0b410021060b20282903002124202a290300212320292802002105200341981c6a202941046a41cc031085051a0b20034198146a200341981c6a41cc031085051a0340200320063602a818200320023602a418200341003602a018200320053602981c200d20034198146a41cc031085051a200341086a200341981c6a2023202410ef032026450d0120032026417f6a22263602b81802400240024002402002450d00200620022f01a629490d0141002106034041002105024020022802a0292229450d00200641016a212820022f01a4292127202921050b024041d82941a82920061b450d00200210300b024020050d00410221050c050b2028210620052102202720052f01a6294f0d000b202741016a21062005202741d0036c6a2129200520274104746a220241f8276a2903002124200241f0276a2903002123024020280d00200521020c030b200520064102746a41a8296a280200210202402028417f6a2205450d00034020022802a82921022005417f6a22050d000b0b410021060c020b41b2abc200412b41d4a8c200102d000b2002200641d0036c6a2129200220064104746a220541f8276a2903002124200541f0276a2903002123200641016a21060b20292802002105200341981c6a202941046a41cc031085051a0b20034198146a200341981c6a41cc031085051a0c000b0b200341a0186a10e6030b20034198046a109a010b200c41887c6a210c20092007470d000c020b0b20072009460d0003402009109a012007200941f8036a2209470d000b0b02402008450d00200841f8036c450d00200410300b20002003290308370200200041106a200341086a41106a290300370200200041086a200341086a41086a2903003702000b200341a0206a24000bf80101037f230041206b220424000240024002402002450d00200221050240034020022f01a6292106024020010d002001450d020c050b2001450d042001417f6a2101200220064102746a41a8296a280200210220052802a82921050c000b0b2000200136020c200041003602082000200536020420002001360200200041146a2006360200200041106a20023602000c010b4100210320004100360204200041106a41003602000b20002003360218200441206a24000f0b200441146a410136020020044201370204200441f4a9c2003602002004410436021c200441eca9c2003602182004200441186a360210200441fca9c200103a000b8b0201057f230041206b2202240002400240024020012802042203450d002001280208210420012802002101200321050240034020032f01ae2b2106024020010d002001450d020c050b2001450d042001417f6a2101200320064102746a41b02b6a280200210320052802b02b21050c000b0b2000200136020c200041003602082000200536020420002001360200200041146a2006360200200041106a20033602000c010b4100210420004100360204200041106a41003602000b20002004360218200241206a24000f0b200241146a410136020020024201370204200241f4a9c2003602002002410436021c200241eca9c2003602182002200241186a360210200241fca9c200103a000b9004020c7f027e230041b0076b22012400200028020421022000410036020402402002450d0020002802002103024020002802182204450d0020002802082105200141d8036a2106200141d0036a4104722107200141a8076a21080340024002400240200520022f01a6294f0d0020022100200321090c010b03400240024020022802a02922000d00410021000c010b200341016a210920022f01a42921050b024041d82941a82920031b450d00200210300b024020000d00410221000c030b2009210320002102200520002f01a6294f0d000b0b200541016a210a2000200541d0036c6a2103200020054104746a220241f8276a210b200241f0276a210c0240024020090d0020002102200a21050c010b2000200a4102746a41a8296a280200210202402009417f6a2200450d00034020022802a82921022000417f6a22000d000b0b410021050b200b290300210d200c290300210e20032802002100200141d0036a200341046a41cc031085051a0b2004417f6a2104200141046a200141d0036a41cc031085051a200120003602d0032007200141046a41cc031085051a2008200d3703002001200e3703a0070240024020000d002006109c010c010b20012802d803450d0020012802d40310300b4100210320040d000b0b034020022802a0292100024041d82941a82920031b450d00200210300b200341016a21032000210220000d000b0b200141b0076a24000b8a0201057f230041206b22022400024002400240200128020422030d004100210420004100360204200041106a41003602000c010b20012802002104200321050240034020032f01a6292106024020040d002004450d020c040b2004450d032004417f6a2104200320064102746a41a8296a280200210320052802a82921050c000b0b2000200436020c200041003602082000200536020420002004360200200041146a2006360200200041106a2003360200200128020821040b20002004360218200241206a24000f0b200241146a410136020020024201370204200241f4a9c2003602002002410436021c200241eca9c2003602182002200241186a360210200241fca9c200103a000b8f0203047f017e017f230041206b22022400024002400240200128020422030d004100210341002104410021010c010b20012802002205ad4220862106200321040240034020032f01ae2b2107024020050d002005450d020c040b2005450d0320064280808080707c21062005417f6a2105200320074102746a41b02b6a280200210320042802b02b21040c000b0b200128020821010b20002001360218200020063702082000200436020420002005360200200041146a2007360200200041106a2003360200200241206a24000f0b200241146a410136020020024201370204200241f4a9c2003602002002410436021c200241eca9c2003602182002200241186a360210200241fca9c200103a000b9c0f03087f027e037f230041c00f6b22022400200028020821032000280204210420004200370204200241c80b6a20002802002004200310e403200242003702fc0720022802cc0b210320022802c80b210402400240024002400240024020022802e00b2205450d000240024002402003450d0020022802d00b220620032f01a629490d0103400240024020032802a02922070d00410021070c010b200441016a210820032f01a42921060b024041d82941a82920041b450d00200310300b024020070d00410221040c040b2008210420072103200620072f01a6294f0d000b20072103200821040c010b41b2abc200412b41d4a8c200102d000b200641016a21082003200641d0036c6a2107200320064104746a220641f8276a2109200641f0276a210602402004450d00200320084102746a41a8296a280200210302402004417f6a2204450d00034020032802a82921032004417f6a22040d000b0b410021080b2009290300210a2006290300210b20072802002104200241c80b6a200741046a41cc031085051a0b2002410c6a200241c80b6a41cc031085051a200241c80b6a410472210c02400340200220043602c80b200c2002410c6a41cc031085051a200241c80b6a200110800520024180046a200241c80b6a41d0031085051a200241c80b6a20024180046a41d0031085051a200241f8076a200241c80b6a200b200a10f5032005417f6a2205450d012003450d030240024002400240200820032f01a629490d0041002107034041002104024020032802a0292209450d00200741016a210620032f01a4292108200921040b024041d82941a82920071b450d00200310300b024020040d00410221040c050b2006210720042103200820042f01a6294f0d000b2004200841d0036c6a2107200420084104746a220341f8276a290300210a200341f0276a290300210b024020060d00200421030c020b200841027420046a41ac296a280200210302402006417f6a2204450d00034020032802a82921032004417f6a22040d000b0b410021080c020b2003200841d0036c6a2107200320084104746a220441f8276a290300210a200441f0276a290300210b0b200841016a21080b20072802002104200241c80b6a200741046a41cc031085051a0b2002410c6a200241c80b6a41cc031085051a0c000b0b410021040b02402003450d00034020032802a0292107024041d82941a82920041b450d00200310300b200441016a21042007210320070d000b0b200010f703200041086a200241f8076a41086a280200360200200020022903f807370200200041146a2802002103200029020c210b200041106a420037020020022003360288042002200b37038004200241c80b6a20024180046a10e5032002420037020420022802c80b210420022802cc0b2107024020022802e00b220d0d00200721030c040b02402007450d00024020022802d00b220620072f01ae2b4f0d0020072103200421090c030b03400240024020072802a82b22030d00410021030c010b200441016a210920072f01ac2b21060b024041e02b41b02b20041b450d00200710300b024020030d00410221040c050b2003210720092104200620032f01ae2b490d030c000b0b41b2abc200412b41d4a8c200102d000b41b2abc200412b41d4a8c200102d000b200641016a21082003200641f8036c6a210702402009450d00200320084102746a41b02b6a280200210302402009417f6a2204450d00034020032802b02b21032004417f6a22040d000b0b410021080b20072802002104200241c80b6a200741046a41f4031085051a0b2002410c6a200241c80b6a41f4031085051a200241c80b6a41cc036a210520024180046a41d0036a210c200241f8076a410472210e02400340200241c80b6a2002410c6a41f4031085051a200220043602f807200e2002410c6a41cc031085051a200241f8076a200110800520024180046a200241f8076a41d0031085051a200c41206a200541206a290200370200200c41186a200541186a290200370200200c41106a200541106a290200370200200c41086a200541086a290200370200200c2005290200370200200241c80b6a20024180046a41f8031085051a2002200241c80b6a109604200d417f6a220d450d012003450d030240024002400240200820032f01ae2b490d0041002107034041002104024020032802a82b2209450d00200741016a210620032f01ac2b2108200921040b024041e02b41b02b20071b450d00200310300b024020040d00410221040c050b2004210320062107200820042f01ae2b4f0d000b2004200841f8036c6a2107024020060d00200421030c020b200841027420046a41b42b6a280200210302402006417f6a2204450d00034020032802b02b21032004417f6a22040d000b0b410021080c020b2003200841f8036c6a21070b200841016a21080b20072802002104200241c80b6a200741046a41f4031085051a0b2002410c6a200241c80b6a41f4031085051a0c000b0b410021040b2000410c6a210802402003450d00034020032802a82b2107024041e02b41b02b20041b450d00200310300b200441016a21042007210320070d000b0b200810f803200841086a200241086a28020036020020082002290300370200200241c00f6a24000f0b41b2abc200412b41d4a8c200102d000b9e0903027f017e047f230041a0056b22022400200241086a41386a200141386a290200370300200241086a41306a200141306a290200370300200241086a41286a200141286a290200370300200241086a41206a200141206a290200370300200241086a41186a200141186a290200370300200241086a41106a200141106a290200370300200241086a41086a200141086a2902003703002002200129020037030820024188016a200241086a109f040240024002400240200228028801410c460d00200228022821030240024020022802084101460d00410021012003450d01200241c4006a28020021010c010b200241246a28020021012003450d00417f2001200241c4006a2802006a220320032001491b21010b0240417f200141016a220320032001491bad42f8037e2204422088a70d002004a72201417f4c0d002001102f2205450d02200520024188016a41f8031085051a200241c8006a41386a200241086a41386a290300370300200241c8006a41306a200241086a41306a290300370300200241c8006a41286a200241086a41286a290300370300200241c8006a41206a200241086a41206a290300370300200241c8006a41186a200241086a41186a290300370300200241c8006a41106a200241086a41106a290300370300200241c8006a41086a200241086a41086a29030037030020022002290308370348200141f8036e210620024188016a200241c8006a109f040240200228028801410c470d00410121010c040b41f8032103410221074101210102400340024020012006470d00200228026821080240024020022802484101460d00200228028401410020081b21060c010b200228026421062008450d00417f20062002280284016a220820082006491b21060b2001417f200641016a220820082006491b6a22062001490d0320072006200720064b1b22064104200641044b1bad42f8037e2204422088a74541037421062004a721080240024020010d0020024100360290050c010b2002410836029805200220033602940520022005360290050b20024180056a2008200620024190056a106920022802880521062002280280054101460d022002280284052105200641f8036e21060b200520036a20024188016a41f8031085051a200341f8036a2103200741026a2107200141016a210120024188016a200241c8006a109f04200228028801410c460d050c000b0b20060d020b102c000b20004200370204200041002802fce44136020002402002280208450d00200241086a41047210e6030b2002280228450d02200241306a2802002201450d022002412c6a2802002103200241346a28020021072002200241c4006a2802003602940120022007360290012002200136028c01200220033602880120024188016a10dd030c020b102a000b02402002280248450d00200241c8006a41047210e6030b02402002280268450d00200241f0006a2802002203450d00200241ec006a2802002107200241f4006a2802002108200220024184016a2802003602940120022008360290012002200336028c01200220073602880120024188016a10dd030b2000200136020820002006360204200020053602000b200241a0056a24000bb006030b7f027e037f230041f0036b2203240002400240024002402001450d0020032001417f6a220420022802a82910eb030240024020032802042201450d00200328020021050c010b41a829102f2201450d0341002105200141003b01a629200141003602a0290b41d829102f2206450d02200620013602a82941002107200641003b01a629200641003602a029200141003b01a429200120063602a029200320063602042003200541016a360200024020022f01a629450d00200641a8296a2108200241f0276a2109200241ac296a210a200641f0276a210b2003280208210c2002210d024002400340200341106a200d108e04200941086a290300210e2009290300210f200341e0036a2004200a28020010eb0320032802e80321100240024020032802e4032201450d0020032802e00321110c010b41a829102f2201450d0741002111200141003b01a629200141003602a0290b024020052011470d0020062f01a6292211410b4f0d022006201141016a22123b01a6292006201141d0036c6a200341106a41d0031085051a200b20114104746a2211200e3703082011200f370300200820124102746a2001360200200120123b01a429200120063602a029200d41d0036a210d200941106a2109200a41046a210a2010200c6a41016a210c200741016a220720022f01a6294f0d030c010b0b41eaa0c2004130419ca1c200102d000b41aca1c200412041cca1c200102d000b2003200c3602080b20002003290300370200200041086a200341086a2802003602000c010b41a829102f2209450d01200941003b01a629200941003602a0294100210a024020022f01a629450d00200241f0276a2101200941f0276a210d4100210a200221110340200341106a2011108e0420092f01a6292206410b4f0d04200141086a290300210e2001290300210f2009200641016a3b01a6292009200641d0036c6a200341106a41d0031085051a200d20064104746a2206200e3703082006200f370300201141d0036a2111200141106a2101200a41016a220a20022f01a629490d000b0b2000200a36020820002009360204200041003602000b200341f0036a24000f0b102a000b41aca1c200412041fc80c200102d000bae0b01107f230041a0046b22032400024002400240024002402001450d00200341086a2001417f6a220420022802b02b10ec0302400240200328020c2201450d00200328020821050c010b41b02b102f2201450d0341002105200141003b01ae2b200141003602a82b0b41e02b102f2206450d02200620013602b02b200641003b01ae2b200641003602a82b200141003b01ac2b200120063602a82b2003200636020c2003200541016a360208024020022f01ae2b450d00200641b02b6a2107200241b42b6a210820032802102109200341186a41d1036a220a41086a210b200a41186a210c200a41106a210d200221014100210e024002400340200341186a2001108e0402400240024002400240024002400240200141d0036a2d00000e0701020304050600010b200141dc036a280200220f417f4c0d0e200141d4036a280200211002400240200f0d00410121110c010b200f102f2211450d0e0b2003200f3602f003200320113602ec0320112010200f1085051a200341063a00e8032003200f3602f4030c060b200341003a00e8030c050b200341186a41e0036a200141e0036a290300370300200341013a00e8032003200141d8036a2903003703f0030c040b200341023a00e8032003200141d1036a2800003600e9030c030b200341033a00e8032003200141d1036a2900003700e9030c020b200b200141d9036a290000370000200a200141d1036a290000370000200341043a00e8030c010b200c200141e9036a290000370000200d200141e1036a290000370000200b200141d9036a290000370000200a200141d1036a290000370000200341053a00e8030b20034190046a2004200828020010ec03200328029804211202400240200328029404220f450d0020032802900421110c010b41b02b102f220f450d0741002111200f41003b01ae2b200f41003602a82b0b024020052011470d0020062f01ae2b2211410b4f0d022006201141016a22103b01ae2b2006201141f8036c6a200341186a41f8031085051a200720104102746a200f360200200f20103b01ac2b200f20063602a82b200141f8036a2101200841046a2108201220096a41016a2109200e41016a220e20022f01ae2b4f0d030c010b0b41eaa0c2004130419ca1c200102d000b41aca1c200412041cca1c200102d000b200320093602100b20002003290308370200200041086a200341086a41086a2802003602000c010b41b02b102f220f450d01200f41003b01ae2b200f41003602a82b41002108024020022f01ae2b450d00200341186a41d1036a221041086a2109201041186a2112201041106a210520022101410021080340200341186a2001108e0402400240024002400240024002400240200141d0036a2d00000e0701020304050600010b200141dc036a2802002206417f4c0d0b200141d4036a280200210e0240024020060d00410121110c010b2006102f2211450d0b0b200320063602f003200320113602ec032011200e20061085051a200341063a00e803200320063602f4030c060b200341003a00e8030c050b200341186a41e0036a200141e0036a290300370300200341013a00e8032003200141d8036a2903003703f0030c040b200341023a00e8032003200141d1036a2800003600e9030c030b200341033a00e8032003200141d1036a2900003700e9030c020b2009200141d9036a2900003700002010200141d1036a290000370000200341043a00e8030c010b2012200141e9036a2900003700002005200141e1036a2900003700002009200141d9036a2900003700002010200141d1036a290000370000200341053a00e8030b200f2f01ae2b2206410b4f0d05200f200641016a3b01ae2b200f200641f8036c6a200341186a41f8031085051a200141f8036a2101200841016a220820022f01ae2b490d000b0b200020083602082000200f360204200041003602000b200341a0046a24000f0b102a000b102c000b41aca1c200412041fc80c200102d000bf50c04067f027e037f017e230041900b6b2202240041012103410121044101210541012106024002400240024002400240024002400240024002400240024002402001280200220741786a0e0403020001060b200141d8036a2903002108200141d0036a2903002109200241086a41046a200141086a41c8031085051a200241003602980720024198076a410472200241086a41cc031085051a0240024020002802042205450d002000280200210a0c010b41a829102f2205450d074100210a200541003b01a629200541003602a02920002005360204200041003602000b0240034020052f01a629220b41d0036c210c4100210741e0272103417f2106024003400240200c2007470d00200b21060c020b200520076a2104200641016a2106200341106a2103200741d0036a210720024198076a2004109101220441ff01714101460d000b0240200441187441187541016a0e020100010b20024198076a108105200520036a2207427f2007290300220d20097c22092009200d542206200741086a2207290300220920087c2006ad7c220820095420082009511b22061b3703002007427f200820061b3703000c020b0240200a450d00200a417f6a210a200520064102746a41a8296a28020021050c010b0b200241a0076a22072802002103200229039807210d200241d4036a200241a4076a220441c4031085051a200720033602002002200d370398072004200241d4036a41c4031085051a200241f00a6a2006360200200241ec0a6a2005360200200220003602f40a200241003602e80a20024198076a200920081082051a0b4101210441002103410121050c030b200241086a41046a200141086a41c8031085051a41002105200241003602980720024198076a410472200241086a41cc031085051a20024198076a41f0036a200141f0036a29030037030020024198076a41e8036a200141e8036a29030037030020024198076a41e0036a200141e0036a29030037030020024198076a41d8036a200141d8036a2903003703002002200141d0036a2903003703e80a2000410c6a20024198076a10960441012103410121040c020b20024198076a410c6a2001410c6a280200360200200241f00a6a200141186a290300370300200241f80a6a200141206a290300370300200241800b6a200141286a290300370300200241880b6a200141306a2903003703004101210320024101360298072002200129020437029c072002200141106a2903003703e80a2000410c6a20024198076a1096044100210641012104410121050c020b200141186a2903002108200141106a290300210920024198076a410c6a2001410c6a28020036020020024101360298072002200129020437029c070240024020002802042205450d002000280200210a0c010b41a829102f2205450d044100210a200541003b01a629200541003602a02920002005360204200041003602000b0240034020052f01a629220b41d0036c210c4100210741e0272103417f2106024003400240200c2007470d00200b21060c020b200520076a2104200641016a2106200341106a2103200741d0036a210720024198076a2004109101220441ff01714101460d000b0240200441187441187541016a0e020100010b20024198076a108105200520036a2207427f2007290300220d20097c22092009200d542206200741086a2207290300220920087c2006ad7c220820095420082009511b22061b3703002007427f200820061b3703000c020b0240200a450d00200a417f6a210a200520064102746a41a8296a28020021050c010b0b200241a0076a22072802002103200229039807210d200241086a200241a4076a220441c4031085051a200720033602002002200d370398072004200241086a41c4031085051a200241f00a6a2006360200200241ec0a6a2005360200200220003602f40a200241003602e80a20024198076a200920081082051a0b4100210441012103410121050b410121060b200128020021070b200741786a0e0405040302010b102a000b2001109a010c040b2005450d03200141086a109c01200141d0036a2d00004106490d03200141d8036a280200450d03200141d4036a28020010300c030b2003450d02200141086a109c010c020b2006450d010240200141086a280200450d00200128020410300b200141106a2d00004106490d01200141186a280200450d01200141146a28020010300c010b2004450d00200141086a280200450d00200128020410300b200241900b6a24000b9a1203077f017e097f230041b0176b22022400200241f8036a200141f8031085051a0240024002400240024002400240024002400240024002400240024020002802042203450d00200028020021040c010b41b02b102f2203450d0141002104200341003b01ae2b200341003602a82b20002003360204200041003602000b034020032f01ae2b220541f8036c210641002101417f210702400340024020062001470d00200521070c020b200741016a2107200320016a2108200141f8036a2101200241f8036a2008109001220841ff01714101460d000b0240200841187441187541016a0e020100010b0240024020022802f8030d0020024180046a109c010c010b200228028004450d0020022802fc0310300b20022d00c8074106490d0d200241d0076a280200450d0d200241cc076a28020010300c0d0b02402004450d002004417f6a2104200320074102746a41b02b6a28020021030c010b0b20024180046a280200210620022903f80321092002410c6a20024184046a41ec031085051a024020032f01ae2b2201410a4b0d00200241f8036a2002410c6a41ec031085051a0240200720014f0d002003200741f8036c6a220841f8036a2008200120076b41f8036c1086051a0b2003200741f8036c6a22072006360208200720093703002007410c6a200241f8036a41ec031085051a2003200141016a3b01ae2b0c0b0b410521014100210502400240200741054f0d0041042101200721080c010b41052108024002402007417b6a0e020201000b200741796a210841012105410621010c010b41002108410121050b41b02b102f220a450d00200a41003b01ae2b200a41003602a82b200a20032f01ae2b220b2001417f736a22073b01ae2b2003200141f8036c6a2204280204210c2004280200210d200241f8036a200441086a41f0031085051a2007410c4f0d01200b200141016a22046b2007470d02200a2003200441f8036c6a200741f8036c1085052104200320013b01ae2b200241c0136a200241f8036a41f0031085051a2004200320051b22012f01ae2b2107200241f8036a2002410c6a41ec031085051a0240200841016a220520074b0d002001200541f8036c6a2001200841f8036c6a200720086b41f8036c1086051a0b2001200841f8036c6a22082006360208200820093703002008410c6a200241f8036a41ec031085051a2001200741016a3b01ae2b200241d00f6a200241c0136a41f0031085051a200241e00b6a200241d00f6a41f0031085051a02400240024020032802a82b22010d004100210e0c010b4100210e2004210f200c2110200d2111034020032f01ac2b2106200122052f01ae2b2203410b490d024100210441042101024020064105490d0020062101024002402006417b6a0e020201000b200641796a210641012104410621010c010b4100210641012104410521010b41e02b102f220a450d03200a41003b01ae2b200a41003602a82b200a20052f01ae2b220b2001417f736a22073b01ae2b2005200141f8036c6a2208280204210c2008280200210d200241f8036a200841086a41f0031085051a2007410c4f0d06200b200141016a22126b2007470d07200a200841f8036a200741f8036c1085052108200520013b01ae2b200241c0136a200241f8036a41f0031085051a20082f01ae2b220741016a210b2007410c4f0d08200320016b2201200b470d09200e41016a210e200841b02b6a200520124102746a41b02b6a20014102741085051a4100210102400340200820014102746a41b02b6a280200220320013b01ac2b200320083602a82b200120074f0d01200120012007496a220120074d0d000b0b200241d00f6a200241c0136a41f0031085051a2008200520041b22032f01ae2b2101200241f8036a200241e00b6a41f0031085051a0240200641016a220720014b0d002003200741f8036c6a2003200641f8036c6a200120066b41f8036c1086051a0b200141016a21042003200641f8036c6a220b2010360204200b2011360200200b41086a200241f8036a41f0031085051a200341b02b6a210b0240200641026a2211200141026a22104f0d00200b20114102746a200b20074102746a200120066b4102741086051a0b200b20074102746a200f360200200320043b01ae2b0240200720104f0d00200320064102746a41b42b6a2101034020012802002207200641016a22063b01ac2b200720033602a82b200141046a210120042006470d000b0b200241e00b6a200241d00f6a41f0031085051a200521032008210f200c2110200d211120052802a82b22010d000b0b200241f0076a200241e00b6a41f0031085051a20002802042207450d082000280200210841e02b102f2201450d01200120073602b02b200141003b01ae2b200141003602a82b200741003b01ac2b200720013602a82b200020013602042000200841016a3602002008200e470d0920012f01ae2b2207410b4f0d0a2001200741016a22083b01ae2b2001200741f8036c6a2207200c3602042007200d360200200741086a200241f0076a41f0031085051a200141b02b6a20084102746a200a360200200a20083b01ac2b200a20013602a82b2000200028020841016a3602080c0c0b200241f8036a200241e00b6a41f0031085051a200641016a21010240200320064d22080d002005200141f8036c6a2005200641f8036c6a200320066b41f8036c1086051a0b200341016a21042005200641f8036c6a2207201036020420072011360200200741086a200241f8036a41f0031085051a200541b02b6a2107200341026a210a024020080d00200641027420076a41086a200720014102746a200320066b4102741086051a0b200520043b01ae2b200720014102746a200f3602002001200a4f0d0a200341016a210320052001417f6a22014102746a41b42b6a2107034020072802002208200141016a22013b01ac2b200820053602a82b200741046a210720032001470d000c0b0b0b102a000b2007410b41e8a2c2001042000b41f8a2c200412841a0a3c200102d000b2007410b41e8a2c2001042000b41f8a2c200412841a0a3c200102d000b200b410c41f8a3c2001042000b41f8a2c200412841a0a3c200102d000b41b2abc200412b41e0abc200102d000b41eaa0c2004130419ca1c200102d000b41aca1c200412041cca1c200102d000b2000200028020841016a3602080b200241b0176a24000be30302087f017e230041b0076b22042400200441d0036a200141d0031085051a02400240024020002802042205450d00200028020021060c010b41a829102f2205450d0141002106200541003b01a629200541003602a02920002005360204200041003602000b0240034020052f01a629220741d0036c21084100210141e0272109417f210a02400340024020082001470d002007210a0c020b200520016a210b200a41016a210a200941106a2109200141d0036a2101200441d0036a200b109101220b41ff01714101460d000b0240200b41187441187541016a0e020100010b200441d0036a108105200520096a2201427f2001290300220c20027c22022002200c54220a200141086a2201290300220220037c200aad7c220320025420032002511b220a1b3703002001427f2003200a1b3703000c020b02402006450d002006417f6a21062005200a4102746a41a8296a28020021050c010b0b200441d8036a2201280200210920042903d003210c2004410c6a200441dc036a220b41c4031085051a200120093602002004200c3703d003200b2004410c6a41c4031085051a200441a8076a200a360200200441a4076a2005360200200420003602ac07200441003602a007200441d0036a200220031082051a0b200441b0076a24000f0b102a000bf20b02097f027e230041b0076b22022400024002400240024020012802004101470d002001410c6a2802002203417f4c0d02200128020421040240024020030d00410121050c010b2003102f2205450d040b200220033602102002200536020c2005200420031085051a200241086a410c6a2003360200200241a0076a41086a2206200241086a410472220341086a280200360200200220032902003703a007410021074100210841002109024002400240024002400240024020012d00d0030e0706010203040500060b200141dc036a2802002205417f4c0d08200141d4036a28020021010240024020050d00410121040c010b2005102f2204450d0a0b200541807e71210820042001200510850541807e712107410621092005210a0c050b200141d8036a290300220ba7220541807e712108200141e0036a290300210c200b422088a7210a41012109410021070c040b200141d1036a2f0000200141d3036a2d0000411074722103200141d4036a2d000021044102210941002107410021080c030b200141d1036a2f0000200141d3036a2d0000411074722103200141d4036a280200220441807e712107200141d8036a2d0000210541032109410021080c020b200141d1036a2f0000200141d3036a2d0000411074722103200141d8036a280200220541807e712108200141d4036a280200220441807e712107200141e0036a310000210c200141dc036a280200210a410421090c010b200241d8036a41086a200141f0036a2d00003a00002002200141e8036a2903003703d803200141d1036a2f0000200141d3036a2d0000411074722103200141d4036a280200220441807e712107200141d8036a290300220ba7220541807e712108200141e0036a290300210c200b422088a7210a410521090b200020022903a00737020420004109360200200041136a20034110763a0000200041116a20033b0000200041206a200c370300200041106a20093a0000200041286a20022903d8033703002000410c6a2006280200360200200041146a2007200441ff017172360200200041306a200241d8036a41086a290300370300200041186a200aad4220862008200541ff017172ad843703000c010b200241086a41086a2203200141086a10db034100210720024100360208200241d8036a200341c8031085051a4100210841002109024002400240024002400240024020012d00d0030e0706010203040500060b200141dc036a2802002205417f4c0d07200141d4036a28020021010240024020050d00410121040c010b2005102f2204450d090b200541807e71210820042001200510850541807e712107410621092005210a0c050b200141d8036a290300220ba7220541807e712108200141e0036a290300210c200b422088a7210a41012109410021070c040b200141d1036a2f0000200141d3036a2d0000411074722103200141d4036a2d000021044102210941002107410021080c030b200141d1036a2f0000200141d3036a2d0000411074722103200141d4036a280200220441807e712107200141d8036a2d0000210541032109410021080c020b200141d1036a2f0000200141d3036a2d0000411074722103200141d8036a280200220541807e712108200141d4036a280200220441807e712107200141e0036a310000210c200141dc036a280200210a410421090c010b200241a0076a41086a200141f0036a2d00003a00002002200141e8036a2903003703a007200141d1036a2f0000200141d3036a2d0000411074722103200141d4036a280200220441807e712107200141d8036a290300220ba7220541807e712108200141e0036a290300210c200b422088a7210a410521090b200041086a200241d8036a41c8031085051a200041d3036a20034110763a0000200041d1036a20033b0000200041e0036a200c370300200041d4036a2007200441ff017172360200200041d0036a20093a00002000410b360200200041e8036a20022903a007370300200041f0036a200241a0076a41086a290300370300200041d8036a200aad4220862008200541ff017172ad843703000b200241b0076a24000f0b102c000b102a000be20602027f017e410021020240024002400240024002400240024002402000280200220320012903002204a7470d004101210202400240024002400240024002400240024002400240024002400240024002400240024002402003417f6a0e080e00010203040506130b20044202520d12200041086a200141086a1097040d060c1a0b20044203520d11200041086a200141086a1097040d060c180b20044204520d10200041086a200141086a1097040d060c160b20044205520d0f200041086a200141086a1097040d060c140b20044206520d0e200041086a200141086a1097040d060c120b20044207520d0d200041086a200141086a1097040d060c100b20044208520d0c200041086a200141086a1097040d060c0e0b200041c0006a200141c0006a109704450d130c0b0b200041c0006a200141c0006a109704450d11200041f8006a200141f8006a109704450d110c0a0b200041c0006a200141c0006a109704450d0f200041f8006a200141f8006a109704450d0f200041b0016a200141b0016a109704450d0f0c090b200041c0006a200141c0006a109704450d0d200041f8006a200141f8006a1097040d070c0d0b200041c0006a200141c0006a109704450d0b200041f8006a200141f8006a109704450d0b200041b0016a200141b0016a1097040d050c0b0b200041c0006a200141c0006a109704450d09200041f8006a200141f8006a1097040d030c090b200041c0006a200141c0006a109704450d07200041f8006a200141f8006a109704450d07200041b0016a200141b0016a1097040d010c070b20044201510d050c040b200041e8016a200141e8016a109704450d05200041a0026a200141a0026a109704450d05200041d8026a200141d8026a109704450d0520004190036a20014190036a109704450d050c030b200041b0016a200141b0016a109704450d05200041e8016a200141e8016a109704450d05200041a0026a200141a0026a109704450d05200041d8026a200141d8026a109704450d050c020b200041e8016a200141e8016a109704450d05200041a0026a200141a0026a109704450d050c010b200041b0016a200141b0016a109704450d05200041e8016a200141e8016a109704450d050b20020f0b200041086a200141086a1097040f0b41000f0b41000f0b41000f0b41000f0b41000f0b41000f0b41000b920402087f037e230041b0076b220524000240024020012802042206450d00200128020021070340200641e0276a210820062f01a629220941d0036c2101417f210a2006210b02400340024020010d002009210a0c020b200a41016a210a200841106a2108200141b07c6a21012002200b109101210c200b41d0036a210b200c41ff01714101460d000b0240200c41187441187541016a0e020100010b2008290300220d20037d220e200d56200841086a290300220f20047d200d200354ad7d220d200f56200d200f511b0d022008200e3703002008200d370308200241086a290200210d0240024020022802004101470d00200228020421014108210b2003210f2004210e0c010b200241186a290200210e200241106a290200210f200541086a200241206a41b0031085051a410a210b0b200041146a4200370200200041086a4200370200200541d0036a200e370300200541c8036a200f370300200541b8036a41086a200d370300200520013602bc032005200b3602b803200541d8036a200541086a41b0031085051a20054190076a200437030020054188076a2003370300200041046a200541b8036a10ed03200041003602000c030b2007450d012007417f6a21072006200a4102746a41a8296a28020021060c000b0b20004101360200200241086a2101024020022802000d002001109c010c010b2001280200450d00200228020410300b200541b0076a24000be80a01037f23004180146b220424002004200241d003108505220241f0036a200341206a290300370300200241e8036a200341186a290300370300200241e0036a200341106a290300370300200241d8036a200341086a290300370300200220032903003703d0030240024002400240200141106a2802002203450d00200241f0076a200128020c2003200210ff0420022802f0074101460d00200241fc076a2802002103200241f8076a280200210520022802f4072104200241003a008708024002402004450d00200520034102746a41b02b6a280200210302402004417f6a2204450d000340200320032f01ae2b4102746a41b02b6a28020021032004417f6a22040d000b0b20032f01ae2b2104200241003602881020022004417f6a410020041b3602901020022003410020041b36028c10200241800c6a20024188106a20024187086a10950420024188086a200241800c6a41f8031085051a20022802f80f21040240024020024180106a2802002205200241fc0f6a28020022062f01ae2b4f0d00200621030c010b200621030340024020032802a82b22030d00410021030c020b200441016a210420062f01ac2b210520032106200520032f01ae2b4f0d000b0b20024188106a2003200541f8036c6a220641f8031085051a200620024188086a41f8031085051a02402004450d002004417f6a2204450d00200541027420036a41b42b6a2802002103034020032802b02b21032004417f6a22040d000b0b200241800c6a20024188106a41f8031085051a0c010b20022003360290102002200536028c102002410036028810200241800c6a20024188106a20024187086a1095040b20022802800c2103200241fc036a200241800c6a41047241f4031085051a200141146a22042004280200417f6a360200024020022d008708450d0020012802102204450d03200128020c2206450d0420042802b02b210520012006417f6a36020c20012005360210200541003602a82b200410300b20034102460d00200220033602800c200241800c6a410472200241fc036a41f4031085051a200241800c6a108105024020022d00d00f4106490d00200241d80f6a280200450d00200241d40f6a28020010300b200241d0036a210320022802002104200241800c6a2002410472220141cc031085051a0240024020044101470d0020024188106a41086a200141086a2802003602002002419c106a200341086a290200370200200241a4106a200341106a290200370200200241ac106a200341186a290200370200200241b4106a200341206a29020037020020022001290200370388102002200329020037029410410921030c010b20024188106a41046a200241800c6a41046a41c8031085051a20024188086a41206a200341206a29030037030020024188086a41186a200341186a29030037030020024188086a41106a200341106a29030037030020024188086a41086a200341086a2903003703002002200329030037038808410b21030b200041146a4200370200200041086a4200370200200220033602800c200241800c6a41047220024188106a41cc031085051a200241f00f6a200241a8086a290300370300200241e80f6a200241a0086a290300370300200241e00f6a20024198086a290300370300200241d80f6a20024188086a41086a290300370300200241d00f6a200229038808370300200041046a200241800c6a10ed03200041003602000c010b200041013602000240024020022802000d00200241086a109c010c010b2002280208450d00200228020410300b20022d00d0034106490d00200241d8036a280200450d00200241d4036a28020010300b20024180146a24000f0b41b2abc200412b41d0acc200102d000b41b7a2c200412141d8a2c200102d000bd40602097f037e230041a00b6b220324000240024020012802042204450d0020012802002105034020042f01a629220641d0036c21074100210841a4292109417f210a02400340024020072008470d002006210a0c020b200420086a210b200a41016a210a200941046a2109200841d0036a21082002200b109101220b41ff01714101460d000b0240200b41187441187541016a0e020100010b200341003a000f024002402005450d00200420096a2802002108024020054101460d004101210a0340200820082f01a6294102746a41a8296a28020021082005200a41016a220a470d000b0b20082f01a629210a200341003602d0072003200a417f6a4100200a1b3602d807200320084100200a1b3602d407200341e0036a200341d0076a2003410f6a10fe04200341106a200341e0036a41d0031085051a200341b8076a290300210c20032903b007210d20032802c007210b02400240200341c8076a2802002209200341c4076a280200220a2f01a6294f0d00200a21080c010b03400240200a2802a02922080d00410021080c020b200b41016a210b200a2f01a42921092008210a200920082f01a6294f0d000b0b200341d0076a2008200941d0036c6a220a41d0031085051a200a200341106a41d0031085051a200820094104746a220a41f0276a2204290300210e2004200d370300200a41f8276a220a290300210d200a200c3703000240200b450d00200b417f6a220a450d00200941027420086a41ac296a2802002108034020082802a8292108200a417f6a220a0d000b0b200341e0036a200341d0076a41d0031085051a200341b8076a200d3703002003200e3703b0070c010b2003200a3602d807200320043602d407200341003602d007200341e0036a200341d0076a2003410f6a10fe040b2000200341e0036a41e0031085051a20012001280208417f6a36020820032d000f450d030240024020012802042208450d0020012802002209450d0120082802a829210a20012009417f6a3602002001200a360204200a41003602a029200810300c050b41b2abc200412b41d0acc200102d000b41b7a2c200412141d8a2c200102d000b02402005450d002005417f6a21052004200a4102746a41a8296a28020021040c010b0b200041023602000c010b200041023602000b200341a00b6a24000ba80302087f017e230041b0076b22042400200441d0036a200141d0031085051a02400240024020002802042205450d00200028020021060c010b41a829102f2205450d0141002106200541003b01a629200541003602a02920002005360204200041003602000b02400340200541e0276a210720052f01a629220841d0036c2101417f21092005210a02400340024020010d00200821090c020b200941016a2109200741106a2107200141b07c6a2101200441d0036a200a109101210b200a41d0036a210a200b41ff01714101460d000b0240200b41187441187541016a0e020100010b200441d0036a10810520072003370308200720023703000c020b02402006450d002006417f6a2106200520094102746a41a8296a28020021050c010b0b200441d8036a2201280200210a20042903d003210c2004410c6a200441dc036a220741c4031085051a2001200a3602002004200c3703d00320072004410c6a41c4031085051a200441a8076a2009360200200441a4076a2005360200200420003602ac07200441003602a007200441d0036a200220031082051a0b200441b0076a24000f0b102a000be50e03027f017e1f7f23004190106b2203240020004200370204200041106a4200370200200341086a41086a200141146a2802002204360200200129020c2105200141106a420037020020032005370308200341980c6a41086a2004360200200320053703980c200341186a200341980c6a10e50320032802182106200328021c210702400240200328023022080d00200721040c010b0240024002402007450d0002402003280220220920072f01ae2b4f0d00200721042006210a0c020b03400240024020072802a82b22040d00410021040c010b200641016a210a20072f01ac2b21090b024041e02b41b02b20061b450d00200710300b024020040d00410221060c040b20042107200a2106200920042f01ae2b490d020c000b0b41b2abc200412b41d4a8c200102d000b200941016a210b2004200941f8036c6a21070240200a450d002004200b4102746a41b02b6a28020021040240200a417f6a2206450d00034020042802b02b21042006417f6a22060d000b0b4100210b0b20072802002106200341980c6a200741046a41f4031085051a0b2001410c6a210c2000410c6a210d200341386a200341980c6a41f4031085051a200241c8006a210e20024198036a210f200241e0026a2110200241a8026a2111200241f0016a2112200241b8016a211320024180016a2114200241106a2115200341980c6a41d0036a2100200341ac046a41cc036a2101200341a0086a4104722116200341a0086a41c8006a2117200341a0086a4198036a2118200341a0086a41e0026a2119200341a0086a41a8026a211a200341a0086a41f0016a211b200341a0086a41b8016a211c200341a0086a4180016a211d200341a0086a41106a211e2002280200211f0340200341ac046a200341386a41f4031085051a200320063602a0082016200341386a41cc031085051a200341f00b6a41206a2207200141206a2220290200370300200341f00b6a41186a2209200141186a2221290200370300200341f00b6a41106a220a200141106a2222290200370300200341f00b6a41086a2223200141086a2224290200370300200320012902003703f00b2008417f6a2108024002402006201f470d000240024002400240201f0d0020032802a808220620022903082205a7470d0402400240024002400240024002402006417f6a0e0808000102030405060a0b20054202520d09201e2015109704450d0a2017200e109704450d0a0c090b20054203520d08201e2015109704450d092017200e109704450d09201d2014109704450d090c080b20054204520d07201e2015109704450d082017200e109704450d08201d2014109704450d08201c2013109704450d080c070b20054205520d06201e2015109704450d072017200e109704450d07201d2014109704450d07201c2013109704450d07201b2012109704450d070c060b20054206520d05201e2015109704450d062017200e109704450d06201d2014109704450d06201c2013109704450d06201b2012109704450d06201a2011109704450d060c050b20054207520d04201e2015109704450d052017200e109704450d05201d2014109704450d05201c2013109704450d05201b2012109704450d05201a2011109704450d0520192010109704450d050c040b20054208520d03201e2015109704450d042017200e109704450d04201d2014109704450d04201c20131097040d020c040b20032802ac082206200228020c470d0320032802a408200228020420061088050d030c020b20054201520d01201e2015109704450d020c010b201b2012109704450d01201a2011109704450d0120192010109704450d012018200f109704450d010b200341980c6a200341a0086a41d0031085051a200041206a2020290200370200200041186a2021290200370200200041106a2022290200370200200041086a202429020037020020002001290200370200200d200341980c6a1096040c010b200341980c6a200341a0086a41d0031085051a200041206a2007290300370300200041186a2009290300370300200041106a200a290300370300200041086a2023290300370300200020032903f00b370300200c200341980c6a1096040b024020080d00410021060c020b02402004450d000240024002400240200b20042f01ae2b490d0041002107034041002106024020042802a82b220a450d00200741016a210920042f01ac2b210b200a21060b024041e02b41b02b20071b450d00200410300b024020060d00410221060c050b2006210420092107200b20062f01ae2b4f0d000b2006200b41f8036c6a2107024020090d00200621040c020b200b41027420066a41b42b6a280200210402402009417f6a2206450d00034020042802b02b21042006417f6a22060d000b0b4100210b0c020b2004200b41f8036c6a21070b200b41016a210b0b20072802002106200341980c6a200741046a41f4031085051a0b200341386a200341980c6a41f4031085051a0c010b0b41b2abc200412b41d4a8c200102d000b02402004450d00034020042802a82b2107024041e02b41b02b20061b450d00200410300b200641016a21062007210420070d000b0b20034190106a24000b9f0402097f027e230041b0076b22012400200028020421022000410036020402402002450d00024020002802002203450d00034020022802a82921022003417f6a22030d000b0b024020002802082204450d00200141d0036a410472210541002106200141a8076a210703402004417f6a21040240024002400240200620022f01a629490d0041002100034041002103024020022802a0292208450d00200041016a210920022f01a4292106200821030b024041d82941a82920001b450d00200210300b024020030d00410221030c050b2009210020032102200620032f01a6294f0d000b2003200641d0036c6a2100200320064104746a220241f8276a290300210a200241f0276a290300210b024020090d00200321020c020b200641027420036a41ac296a280200210202402009417f6a2203450d00034020022802a82921022003417f6a22030d000b0b410021060c020b2002200641d0036c6a2100200220064104746a220341f8276a290300210a200341f0276a290300210b0b200641016a21060b20002802002103200141d0036a200041046a41cc031085051a0b200141046a200141d0036a41cc031085051a200120033602d0032005200141046a41cc031085051a2007200a3703002001200b3703a007200141d0036a10810520040d000b0b41002103034020022802a0292100024041d82941a82920031b450d00200210300b2003417f6a21032000210220000d000b0b200141b0076a24000be90301087f230041f0076b22012400200028020421022000410036020402402002450d00024020002802002203450d00034020022802b02b21022003417f6a22030d000b0b024020002802082204450d00200141f8036a41047221054100210603400240024002400240200620022f01ae2b490d0041002100034041002103024020022802a82b2207450d00200041016a210820022f01ac2b2106200721030b024041e02b41b02b20001b450d00200210300b024020030d00410221030c050b2003210220082100200620032f01ae2b4f0d000b2003200641f8036c6a2100024020080d00200321020c020b200641027420036a41b42b6a280200210202402008417f6a2203450d00034020022802b02b21022003417f6a22030d000b0b410021060c020b2002200641f8036c6a21000b200641016a21060b20002802002103200141f8036a200041046a41f4031085051a0b2004417f6a2104200141046a200141f8036a41f4031085051a200120033602f8032005200141046a41f4031085051a200141f8036a108105024020012d00c8074106490d0020012802d007450d0020012802cc0710300b20040d000b0b41002103034020022802a82b2100024041e02b41b02b20031b450d00200210300b2003417f6a21032000210220000d000b0b200141f0076a24000bc50801027f0240024002400240024002400240024020002d00000e0707000102030405060b02402000410c6a2802002201450d00200041046a2802002102200141f8036c210103402002109a01200241f8036a2102200141887c6a22010d000b0b0240200041086a2802002202450d00200241f8036c450d00200028020410300b200041106a109c010f0b02402000410c6a2802002201450d00200041046a2802002102200141f8036c210103402002109a01200241f8036a2102200141887c6a22010d000b0b0240200041086a2802002202450d00200241f8036c450d00200028020410300b200041206a109c010240200041186a2802002201450d00200041106a280200210220014198046c21010340200210a00120024198046a2102200141e87b6a22010d000b0b200041146a2802002202450d0520024198046c450d05200028021010300f0b02402000410c6a2802002201450d00200041046a2802002102200141f8036c210103402002109a01200241f8036a2102200141887c6a22010d000b0b0240200041086a2802002202450d00200241f8036c450d00200028020410300b0240200041186a2802002201450d00200041106a2802002102200141f8036c210103402002109a01200241f8036a2102200141887c6a22010d000b0b200041146a2802002202450d04200241f8036c450d04200028021010300f0b02402000410c6a2802002201450d00200041046a2802002102200141f8036c210103402002109a01200241f8036a2102200141887c6a22010d000b0b0240200041086a2802002202450d00200241f8036c450d00200028020410300b200041206a109c010240200041186a2802002201450d00200041106a280200210220014198046c21010340200210a00120024198046a2102200141e87b6a22010d000b0b200041146a2802002202450d0320024198046c450d03200028021010300f0b02402000410c6a2802002201450d00200041046a2802002102200141f8036c210103402002109a01200241f8036a2102200141887c6a22010d000b0b0240200041086a2802002202450d00200241f8036c450d00200028020410300b200041206a109c010240200041186a2802002201450d00200041106a280200210220014198046c21010340200210a00120024198046a2102200141e87b6a22010d000b0b200041146a2802002202450d0220024198046c450d02200028021010300f0b200041186a109c0102402000410c6a2802002201450d00200041046a2802002102200141f8036c210103402002109a01200241f8036a2102200141887c6a22010d000b0b200041086a2802002202450d01200241f8036c450d01200028020410300c010b200041106a109a0102402000410c6a2802002201450d00200041046a2802002102200141e8036c210103402002109601200241e8036a2102200141987c6a22010d000b0b200041086a2802002202450d00200241e8036c450d00200028020410300f0b0b950201057f230041206b22022400024002400240200128020422030d004100210420004100360204200041106a41003602000c010b20012802002104200321050240034020032f018a0c2106024020040d002004450d020c040b2004450d032004417f6a2104200320064102746a418c0c6a2802002103200528028c0c21050c000b0b2000200436020c200041003602082000200536020420002004360200200041146a2006360200200041106a2003360200200128020821040b200020043602182000200141d8006a36021c200241206a24000f0b200241146a410136020020024201370204200241f4a9c2003602002002410436021c200241eca9c2003602182002200241186a360210200241fca9c200103a000b7e01027f230041306b22022400200241146a4104360200200241ac8fc2003602102002410436020c200241a48fc2003602082001411c6a2802002103200128021821012002412c6a41023602002002420237021c200241b48fc2003602182002200241086a36022820012003200241186a10322101200241306a240020010b8e0101037f230041106b220224002000280200210320012000280208220010a501024002402000450d002000410574210003404120102f2204450d02200242203702042002200436020020022003412010642001200228020022042002280208106402402002280204450d00200410300b200341206a2103200041606a22000d000b0b200241106a24000f0b102a000bf80101037f230041206b220424000240024002402002450d00200221050240034020022f01a6292106024020010d002001450d020c050b2001450d042001417f6a2101200220064102746a41a8296a280200210220052802a82921050c000b0b2000200136020c200041003602082000200536020420002001360200200041146a2006360200200041106a20023602000c010b4100210320004100360204200041106a41003602000b20002003360218200441206a24000f0b200441146a410136020020044201370204200441f4a9c2003602002004410436021c200441eca9c2003602182004200441186a360210200441fca9c200103a000b890201037f230041d0006b22022400200241086a41dca4c000410610ab01200241186a4190e0c100410910ab01200220013602342002200241346a4104108b02370338200241cc006a200241346a41046a3602002002200241c0006a3602442002200241346a3602482002200241386a360240200241286a200241c0006a10b803024002402002280230220341206a2201417f4c0d000240024020010d00410121040c010b2001102f2204450d020b2000410036020820002001360204200020043602002000200241086a411010b9032000200241186a411010b903200020022802282201200310b9030240200228022c450d00200110300b200241d0006a24000f0b102c000b102a000bb70201037f23004180016b22022400024002400240024020012802002203411071450d0020002802002103410021000340200220006a41ff006a2003410f712204413072200441d7006a2004410a491b3a00002000417f6a2100200341047622030d000b20004180016a22034181014f0d02200141a8f7c1004102200220006a4180016a410020006b104021000c010b02402003412071450d0020002802002103410021000340200220006a41ff006a2003410f712204413072200441376a2004410a491b3a00002000417f6a2100200341047622030d000b20004180016a22034181014f0d03200141a8f7c1004102200220006a4180016a410020006b104021000c010b20003502002001103c21000b20024180016a240020000f0b2003418001419087c000104a000b2003418001419087c000104a000bd00302057f047e230041d0006b22012400200141286a41186a22024200370300200141286a41106a22034200370300200141286a41086a2204420037030020014200370328200141086a41dca4c000410610ab012004200141086a41086a220529000037030020012001290008370328200141086a4198bfc100410b10ab012002200529000037030020032001290008370300200141086a200141286a108104200141086a41186a2903002106200141086a41106a2903002107200129031021082001290308210920024200370300200342003703002004420037030020014200370328200141086a41dca4c000410610ab012004200529000037030020012001290008370328200141086a4198bfc100410b10ab0120022005290000370300200320012900083703002001420137030820014100360210200120084200200942015122021b370348200141086a200141c8006a4108106420012007420020021b370348200141086a200141c8006a410810642001427f2006420020021b220620007c220020002006541b370348200141086a200141c8006a41081064200141286a412020012802082202200128021041002802fcad421103000240200128020c450d00200210300b200141d0006a24000bc40202037f017e230041d0006b220224002002412036020420022001360200200241086a2001412041002802d4ad4211040002400240200228020822010d00200042003703000c010b200228020c2103024002400240200241086a41086a28020022044108490d00200441787141786a0e09000101010101010100010b420021052002420037021c200241002802dc94423602182002410936022c200220023602282002200241186a360234200241cc006a41013602002002420137023c200241a0e6c1003602382002200241286a360248200241346a41d0adc000200241386a10321a2002280218200228022010ad01200228021c450d01200228021810300c010b200041186a2001290010370300200041106a200129000837030020002001290000370308420121050b200020053703002003450d00200110300b200241d0006a24000b890201037f230041d0006b22022400200241086a41dca4c000410610ab01200241186a4183e0c100410d10ab01200220013602342002200241346a4104108b02370338200241cc006a200241346a41046a3602002002200241c0006a3602442002200241346a3602482002200241386a360240200241286a200241c0006a10b803024002402002280230220341206a2201417f4c0d000240024020010d00410121040c010b2001102f2204450d020b2000410036020820002001360204200020043602002000200241086a411010b9032000200241186a411010b903200020022802282201200310b9030240200228022c450d00200110300b200241d0006a24000f0b102c000b102a000bc40301097f230041206b220224000240024020012802082203410c6c41046a2204417f4c0d00200128020021050240024020040d00410121060c010b2004102f2206450d020b2002410036020820022004360204200220063602002003200210a80302402003450d0020052003410c6c6a210720052104034020042802002106200441086a2802002208200210a80320022006200810642004410c6a22042007470d000b0b2002280204210920023502084220862002280200220aad8410142104200241186a22064200370300200241106a22084200370300200241086a22074200370300200242003703002007200441086a2900003703002008200441106a2900003703002006200441186a2900003703002002200429000037030020041030200041186a2006290300370000200041106a2008290300370000200041086a20072903003700002000200229030037000002402009450d00200a10300b02402003450d002003410c6c21062005210403400240200441046a280200450d00200428020010300b2004410c6a2104200641746a22060d000b0b0240200141046a2802002204450d002004410c6c450d00200510300b200241206a24000f0b102c000b102a000b13002000410a360204200041909ac1003602000b3400200041dca4c00036020420004100360200200041146a4110360200200041106a41a4b3c100360200200041086a42063702000b130020004106360204200041dccfc1003602000b4201027f230041106b2202240002404101102f22030d00102a000b20004201370204200020033602002002412a3a000f20002002410f6a41011064200241106a24000b920101017f230041c0006b22022400200241386a41002903f8a340370300200241306a41002903f0a340370300200241286a41002903e8a340370300200241206a41002903e0a340370300200241186a41002903d8a340370300200241106a41002903d0a340370300200241086a41002903c8a340370300200241002903c0a3403703002000200210a003200241c0006a24000b4601017f230041106b220224002000410036020820004201370200200242003703082000200241086a41081064200242003703082000200241086a41081064200241106a24000b4301027f230041106b2202240002404104102f22030d00102a000b2000420437020420002003360200200241fa0136020c20002002410c6a41041064200241106a24000b6101017f230041106b2202240020004100360208200042013702002002418080f0013602082000200241086a410410642002418080c00236020c20002002410c6a410410642002418080c0023602042000200241046a41041064200241106a24000b7701017f230041c0016b22022400200210d6012000410036020820004201370200200220022903003703b8012000200241b8016a41081064200220022903083703b8012000200241b8016a41081064200241106a200010ef01200241c8006a200010ef0120024180016a200010ef01200241c0016a24000bfe1505087f017e047f027e057f230041c0156b22042400200441d0036a200141d0031085051a0240024002400240024002400240024002400240024002400240024020002802042205450d00200028020021060c010b41a829102f2205450d0141002106200541003b01a629200541003602a02920002005360204200041003602000b034020052f01a629220741d0036c21084100210141e0272109417f210a02400340024020082001470d002007210a0c020b200520016a210b200a41016a210a200941106a2109200141d0036a2101200441d0036a200b109101220b41ff01714101460d000b0240200b41187441187541016a0e020100010b0240024020042802d0030d00200441d8036a109c010c010b20042802d803450d0020042802d40310300b200520096a22012003370308200120023703000c0d0b02402006450d002006417f6a21062005200a4102746a41a8296a28020021050c010b0b200441d8036a280200210b20042903d003210c2004410c6a200441dc036a41c4031085051a02400240024002400240024020052f01a6292201410a4b0d00200441d0036a2004410c6a41c4031085051a2005200a41d0036c6a2109200a2001490d012009200c3703002009200b3602082009410c6a200441d0036a41c4031085051a200541f0276a21090c020b410521014100210d02400240200a41054f0d0041042101200a21090c010b4105210902400240200a417b6a0e020201000b200a41796a21094101210d410621010c010b410021094101210d0b41a829102f2207450d05200741003b01a629200741003602a029200720052f01a62922062001417f736a220a3b01a6292005200141d0036c6a2208280204210e2008280200210f200441d0036a200841086a41c8031085051a200a410c4f0d062006200141016a22086b200a470d07200541f0276a221020014104746a220641086a29030021112006290300211220072005200841d0036c6a200a41d0036c108505220641f0276a201020084104746a200a4104741085051a200520013b01a629200441f8116a200441d0036a41c8031085051a20062005200d1b22012f01a6292108200441d0036a2004410c6a41c4031085051a2001200941d0036c6a210a02400240200941016a220d20084d0d00200a200c370300200a200b360208200a410c6a200441d0036a41c4031085051a200141f0276a210a0c010b2001200d41d0036c6a200a200820096b221041d0036c1086051a200a200b360208200a200c370300200a410c6a200441d0036a41c4031085051a200141f0276a220a200d4104746a200a20094104746a20104104741086051a0b200a20094104746a220a2003370308200a20023703002001200841016a3b01a629200441b00e6a200441f8116a41c8031085051a200441e80a6a200441b00e6a41c8031085051a20052802a02922010d02410021100c030b2005200a41016a220841d0036c6a20092001200a6b220641d0036c1086051a2009200b3602082009200c3703002009410c6a200441d0036a41c4031085051a200541f0276a220920084104746a2009200a4104746a20064104741086051a0b2009200a4104746a220a2003370308200a20023703002005200141016a3b01a6290c0d0b20122102201121034100211020062113200e2114200f2115034020052f01a4292105200122062f01a629220d410b490d024100210841042101024020054105490d0020052101024002402005417b6a0e020201000b200541796a210541012108410621010c010b4100210541012108410521010b41d829102f2207450d03200741003b01a629200741003602a029200720062f01a62922162001417f736a220a3b01a6292006200141d0036c6a2209280204210e2009280200210f200441d0036a200941086a41c8031085051a200a410c4f0d062016200141016a220b6b200a470d07200641f0276a221620014104746a221741086a2903002111201729030021122007200941d0036a200a41d0036c108505220941f0276a2016200b4104746a200a4104741085051a200620013b01a629200441f8116a200441d0036a41c8031085051a20092f01a629220a41016a2116200a410c4f0d08200d20016b22012016470d09201041016a2110200941a8296a2006200b4102746a41a8296a20014102741085051a4100210102400340200920014102746a41a8296a280200220b20013b01a429200b20093602a0292001200a4f0d0120012001200a496a2201200a4d0d000b0b200441b00e6a200441f8116a41c8031085051a2009200620081b220b2f01a6292101200441d0036a200441e80a6a41c8031085051a0240200541016a220a20014b22160d00200b200a41d0036c6a200b200541d0036c6a200120056b41d0036c1086051a0b200b200541d0036c6a2208201436020420082015360200200841086a200441d0036a41c8031085051a200b41f0276a210d024020160d00200d200a4104746a200d20054104746a200120056b4104741086051a0b200141016a2108200d20054104746a220d2003370308200d2002370300200b41a8296a210d0240200541026a2215200141026a22144f0d00200d20154102746a200d200a4102746a200120056b4102741086051a0b200d200a4102746a2013360200200b20083b01a6290240200a20144f0d00200b20054102746a41ac296a210103402001280200220a200541016a22053b01a429200a200b3602a029200141046a210120082005470d000b0b200441e80a6a200441b00e6a41c8031085051a20122102201121032006210520092113200e2114200f211520062802a02922010d000b0b200441a0076a200441e80a6a41c8031085051a2000280204220a450d082000280200210941d829102f2201450d012001200a3602a829200141003b01a629200141003602a029200a41003b01a429200a20013602a029200020013602042000200941016a36020020092010470d0920012f01a629220a410b4f0d0a2001200a41016a22093b01a6292001200a41d0036c6a220b200e360204200b200f360200200b41086a200441a0076a41c8031085051a2001200a4104746a220a41f8276a2011370300200a41f0276a2012370300200141a8296a20094102746a2007360200200720093b01a429200720013602a0292000200028020841016a3602080c0c0b200441d0036a200441e80a6a41c8031085051a0240200d20054d0d002006200541d0036c6a220141d0036a2001200d20056b41d0036c1086051a0b200d41016a21092006200541d0036c6a2201201436020420012015360200200141086a200441d0036a41c8031085051a200641f0276a220b20054104746a210a200541016a210102400240200d20054b0d00200a2002370300200a2003370308200641a8296a210a200d41026a210b0c010b200b20014104746a200a200d20056b220b4104741086051a200a2003370308200a20023703002005410274200641a8296a220a6a41086a200a20014102746a200b4102741086051a200d41026a210b0b200a200141027422056a2013360200200620093b01a6292001200b4f0d0a200520066a41a8296a210a0340200a280200220920013b01a429200920063602a029200a41046a210a200b200141016a2201470d000c0b0b0b102a000b200a410b41e8a2c2001042000b41f8a2c200412841a0a3c200102d000b200a410b41e8a2c2001042000b41f8a2c200412841a0a3c200102d000b2016410c41f8a3c2001042000b41f8a2c200412841a0a3c200102d000b41b2abc200412b41e0abc200102d000b41eaa0c2004130419ca1c200102d000b41aca1c200412041cca1c200102d000b2000200028020841016a3602080b200441c0156a24000bcf0e02037f017e230041c0036b22022400024002400240024020012802004101470d002001410c6a2802002203417f4c0d02200128020421044101210102402003450d002003102f2201450d040b20002001360204200041086a20033602002001200420031085051a200041013602002000410c6a20033602000c010b42002105024002400240024002400240024002400240200141086a2802000e09080102030405060700080b20024188036a200141106a10f101200241d0026a200141c8006a10f10120024198026a20014180016a10f101200241e0016a200141b8016a10f101200241a8016a200141f0016a10f101200241f0006a200141a8026a10f101200241386a200141e0026a10f101200220014198036a10f101420821050c070b20024188036a200141106a10f101420121050c060b20024188036a200141106a10f101200241d0026a200141c8006a10f101420221050c050b20024188036a200141106a10f101200241d0026a200141c8006a10f10120024198026a20014180016a10f101420321050c040b20024188036a200141106a10f101200241d0026a200141c8006a10f10120024198026a20014180016a10f101200241e0016a200141b8016a10f101420421050c030b20024188036a200141106a10f101200241d0026a200141c8006a10f10120024198026a20014180016a10f101200241e0016a200141b8016a10f101200241a8016a200141f0016a10f101420521050c020b20024188036a200141106a10f101200241d0026a200141c8006a10f10120024198026a20014180016a10f101200241e0016a200141b8016a10f101200241a8016a200141f0016a10f101200241f0006a200141a8026a10f101420621050c010b20024188036a200141106a10f101200241d0026a200141c8006a10f10120024198026a20014180016a10f101200241e0016a200141b8016a10f101200241a8016a200141f0016a10f101200241f0006a200141a8026a10f101200241386a200141e0026a10f101420721050b200041086a2005370300200041106a200229038803370300200041c8006a20022903d002370300200041186a20024188036a41086a290300370300200041206a20024188036a41106a290300370300200041286a20024188036a41186a290300370300200041306a20024188036a41206a290300370300200041386a20024188036a41286a290300370300200041c0006a20024188036a41306a290300370300200041d0006a200241d0026a41086a290300370300200041d8006a200241d0026a41106a290300370300200041e0006a200241d0026a41186a290300370300200041e8006a200241d0026a41206a290300370300200041f0006a200241d0026a41286a290300370300200041f8006a200241d0026a41306a290300370300200041b0016a20024198026a41306a290300370300200041a8016a20024198026a41286a290300370300200041a0016a20024198026a41206a29030037030020004198016a20024198026a41186a29030037030020004190016a20024198026a41106a29030037030020004188016a20024198026a41086a29030037030020004180016a200229039802370300200041e8016a200241e0016a41306a290300370300200041e0016a200241e0016a41286a290300370300200041d8016a200241e0016a41206a290300370300200041d0016a200241e0016a41186a290300370300200041c8016a200241e0016a41106a290300370300200041c0016a200241e0016a41086a290300370300200041b8016a20022903e001370300200041a0026a200241a8016a41306a29030037030020004198026a200241a8016a41286a29030037030020004190026a200241a8016a41206a29030037030020004188026a200241a8016a41186a29030037030020004180026a200241a8016a41106a290300370300200041f8016a200241a8016a41086a290300370300200041f0016a20022903a801370300200041d8026a200241f0006a41306a290300370300200041d0026a200241f0006a41286a290300370300200041c8026a200241f0006a41206a290300370300200041c0026a200241f0006a41186a290300370300200041b8026a200241f0006a41106a290300370300200041b0026a200241f0006a41086a290300370300200041a8026a200229037037030020004190036a200241386a41306a29030037030020004188036a200241386a41286a29030037030020004180036a200241386a41206a290300370300200041f8026a200241386a41186a290300370300200041f0026a200241386a41106a290300370300200041e8026a200241386a41086a290300370300200041e0026a2002290338370300200041c8036a200241306a290300370300200041c0036a200241286a290300370300200041b8036a200241206a290300370300200041b0036a200241186a290300370300200041a8036a200241106a290300370300200041a0036a200241086a29030037030020004198036a2002290300370300200041003602000b200241c0036a24000f0b102c000b102a000b130020004105360204200041e0d8c1003602000b8605010a7f230041b0026b22012400200028020421022000410036020402402002450d00024020002802002203450d000340200228028c0c21022003417f6a22030d000b0b024020002802082204450d0020014190016a410c6a2105200141a4016a21064100210003400240024002400240200020022f018a0c490d0041002100034041002103024020022802002207450d00200041016a210820022f01880c2109200721030b024041bc0c418c0c20001b450d00200210300b024020030d00410221030c050b2008210020032102200920032f018a0c4f0d000b200320094107746a4188016a210a20032009410c6c6a41046a2107024020080d00200321020c020b200941027420036a41900c6a280200210202402008417f6a2200450d000340200228028c0c21022000417f6a22000d000b0b410021000c020b200220004107746a4188016a210a20022000410c6c6a41046a210720002109200221030b200941016a21000b200141a0026a41086a200741086a280200360200200120072902003703a002200320094107746a2208418c016a2802002103200a280200210920014190016a20084190016a41f8001085051a0b2004417f6a210420014180016a41086a2208200141a0026a41086a280200360200200120012903a00237038001200141086a20014190016a41f8001085051a20014190016a41086a2008280200360200200120012903800137039001200120033602a0012001200936029c012006200141086a41f8001085051a0240200128029401450d0020012802900110300b200510d90220040d000b0b41002103034020022802002100024041bc0c418c0c20031b450d00200210300b2003417f6a21032000210220000d000b0b200141b0026a24000bbf1703027f047e1e7f230041f0086b22042400200441086a41086a2001280208220541086a2900002206370300200441086a41106a200541106a2900002207370300200441086a41186a200541186a29000022083703002004200529000022093703082001280204210a2001280200210b200441286a41186a220c2008370300200441286a41106a220d2007370300200441286a41086a220e2006370300200420093703282003410174210f20044190076a4102722110200441f0016a4104722111200441d0036a41026a2112200441286a410772211320044190076a41186a211420044190076a410c6a2115200441f0016a41206a2116410021054100211741002118024002400240024002400240024002400240024002400240024002400240024002400340201841017621010240024020184101710d00200120034b0d03200441003a009807200420013602940720042002360290070c010b200120034b0d03200120034f0d04200441013a009807200420023602900720042001360294072004200220016a2d000041f001713a0099070b200441d0036a200b200441286a20044190076a200a28020c110300024020042802d00322190d0020044190076a41186a2205200441286a41186a29030037030020044190076a41106a221a200441286a41106a29030037030020044190076a41086a221b200441286a41086a29030037030020042004290328370390074130102f22010d100c120b20042802d403211c20044190076a201920042802d803221b10ce0320042d009107211a20042d0090072101200441d0036a201041de011085051a20014101460d0d201741016a2117200441b0056a201241dc011085051a2011200441b0056a2019201b10700340200428028c02211d200428028802211e200428028402211f200428028002211b20042802fc01211a20042802f801212020042802f4012101200441c8006a201641a8011085051a20042802bc03212120042802b803212202400240024002400240024020010e050001020304000b200042003702000c140b410021230240201a410174201b6b200f20056b221d470d00410021234100210102400240201d450d00410021010340201b20016a22224101762221201a4f0d0d200520016a2224410176222520034f0d0e202020216a2d00002221410f71202141f0017141047620224101711b200220256a2d00002221410f71202141047620244101711b470d01201d200141016a2201470d000c020b0b2001201d470d010b201e417f4c0d0c02400240201e0d00410121230c010b201e102f2223450d180b2023201f201e1085051a201ead220642208620068421060b2000202336020420004100360200200041086a20063702000c130b410021010240201a410174201b6b2226200f20056b2221202120264b1b2223450d000340200520016a2222410176222120034f0d0d201b20016a22244101762225201a4f0d0e200220216a2d00002221410f71202141f0017141047620224101711b202020256a2d00002221410f71202141047620244101711b470d012023200141016a2201470d000b202321010b024020012026470d00202621010c030b200042003702000c120b2004201d3602a4072004201e3602a0072004201f36029c072004201b360298072004201a3602940720042020360290072014200441c8006a41a8011085051a02400240200f2005460d002005410176220120034f0d0e20044190076a200220016a2d00002201410f71200141047620054101711b410c6c6a2201280200221f4102470d01200042003702000c130b4100210102402022450d002021417f4c0d0b0240024020210d00410121010c010b2021102f2201450d170b2001202220211085051a0b20002001360204200041003602002000410c6a2021360200200041086a20213602000c120b2001280204211e200141086a280200211d41012126410121010c010b20042802c803212620042802c403212720042802c00321012004201d360298072004201e360294072004201f360290072015200441c8006a41a8011085051a200420013602cc08200420213602c808200420223602c408410021010240201a410174201b6b221e200f20056b22232023201e4b1b221d450d000340200520016a2222410176222120034f0d0e201b20016a22244101762225201a4f0d0f200220216a2d00002221410f71202141f0017141047620224101711b202020256a2d00002221410f71202141047620244101711b470d01201d200141016a2201470d000b201d21010b02402001201e460d00200042003702000c110b024002402023201e460d00201e20056a221a410176220120034f0d1020044190076a200220016a2d00002201410f712001410476201a4101711b410c6c6a221a280200221f4102470d01200042003702000c120b4100210102402027450d002026417f4c0d0a0240024020260d00410121010c010b2026102f2201450d160b2001202720261085051a0b20002001360204200041003602002000410c6a2026360200200041086a20263602000c110b201e41016a2126201e41016a2101201a280204211e201a41086a280200211d0b200120186a2118200520266a21050240201f450d0020044190076a201e201d10ce0320042d009107211a20042d0090072101200441d0036a201041de011085051a20014101460d0f200441b0056a201241dc011085051a2011200441b0056a201e201d1070200441003a00f0010c010b0b02400240201d4120460d002014200c29030037030020044190076a41106a221a200d29030037030020044190076a41086a221b200e2903003703002004200429032837039007201d417f4c0d0802400240201d0d00410121010c010b201d102f2201450d140b2001201e201d10850521204130102f2201450d13200141043a000020012004290390073700012001201d36002c2001201d36002820012020360024200141096a201b290300370000200141116a201a290300370000200141196a20142903003700000c010b20044190076a41026a41003a0000200441003b019007201e2f0000211a200441f0016a41026a201e41026a2d00003a0000201e411f6a2d0000211b201e41176a2900002106201e2800032101201e2900072107200441b0056a41086a2220201e410f6a290000370300200441b0056a41106a22212006370300200441b0056a41186a2222201b3a00002004201a3b01f001200420073703b005201420222d00003a000020044190076a41106a202129030037030020044190076a41086a2020290300370300200420042903b005370390070b200441cc036a41026a221a200441f0016a41026a2d00003a0000200441d0036a41086a221b20044190076a41086a290300370300200441d0036a41106a222020044190076a41106a290300370300200441d0036a41186a22212014280200360200200420042f01f0013b01cc0320042004290390073703d0030240201d4120470d00201320042903d003370000201341086a201b290300370000201341106a2020290300370000201341186a20212d00003a0000200420042f01cc033b01282004200136002b2004201a2d00003a002a201c450d01201910300c010b0b20004101360200200020013602040c0d0b2001200341a099c2001042000b2001200341b099c2001042000b2001200341c099c2001033000b2021201a41e098c2001033000b2025200341e098c2001033000b102c000b2021200341e098c2001033000b2025201a41e098c2001033000b2001200341e098c2001033000b2021200341e098c2001033000b2025201a41e098c2001033000b2001200341e098c2001033000b4130102f2201450d03200141033a000020012004290328370001200141096a200441306a290300370000200141116a200441386a290300370000200141196a200441c0006a2903003700002001201a41ff01714100473a002120002001360204200041013602000b201c450d01201910300c010b2001200429039007370001200120174100473a0000200141096a201b290300370000200141116a201a290300370000200141196a200529030037000020004101360200200020013602040b200441f0086a24000f0b102a000b2802017f017e41002103024020002001200210db022204420183500d002004422088a721030b20030b950201067f024020002802202201450d0002402000412c6a280200450d00200041246a280200220241046a2103200120026a41016a21042002280200417f73418081828478712101024003400240024020010d000340200320044f0d04200241c07e6a210220032802002101200341046a220521032001418081828478712201418081828478460d000b2001418081828478732201417f6a2001712106200521030c010b2001417f6a20017121060b2001682105200621012002410020054103766b41306c6a220541746a280200450d00200541706a2802001030200621010c000b0b200028022021010b200041246a280200200141016aad42307ea76b10300b0240200041346a280200450d00200028023010300b0b8d0101017f230041106b22042400024002400240200220014180016a41201088050d004101102f2202450d02200042818080801037020420002002360200200241003a00000c010b20042001200210ca03024020042802004101470d00200041003602000c010b20002004290204370200200041086a2004410c6a2802003602000b200441106a24000f0b102a000b8b0b010a7f230041b0086b2203240020012802002104200128020422052f01ae2b210620034188046a20052001280208220741f8036c6a220141f8031085051a2001200141f8036a20062007417f736a41f8036c1086051a20052006417f6a22013b01ae2b200341106a20034188046a41f8031085051a0240200141ffff037141044b0d0002400240024020052802a82b2206450d00200441016a21080240024020052f01ac2b22090d0020062f01ae2b0d012003419c046a41013602002003420137028c04200341f4a9c20036028804200341043602940820034188a4c20036029008200320034190086a3602980420034188046a4190a4c200103a000b024020062009417f6a22094102746a41b02b6a280200220a2f01ae2b200141ffff03716a41016a410b4b0d00200341a0046a200536020020034198046a200a3602002003200436029c04200320043602940420032009360290042003200636028c04200320083602880420034180086a20034188046a4101200710fc040c040b200341a0046a200536020020034198046a200a3602002003200436029c04200320043602940420032009360290042003200636028c04200320083602880420034188046a410110fd042003200741016a360288080c020b0240200141ffff0371200941027420066a41b42b6a28020022012f01ae2b6a41016a410b4b0d00200341a0046a200136020020034198046a20053602002003200436029c04200320043602940420032009360290042003200636028c04200320083602880420034180086a20034188046a4100200710fc040c030b200341a0046a200136020020034198046a20053602002003200436029c04200320043602940420032009360290042003200636028c04200320083602880420034188046a41011089010b20032007360288080b200320053602840820032004360280080b2003280288082107200328028008210420032802840822052802a82b2201450d0020012f01ae2b220841044b0d00200441016a21060240034020012802a82b2209450d01200841ffff03712108200641016a210b024002400240024020012f01ac2b220a0d0020092f01ae2b0d012003419c046a41013602002003420137028c04200341f4a9c20036028804200341043602940820034188a4c20036029008200320034190086a3602980420034188046a4190a4c200103a000b2009200a417f6a220c4102746a41b02b6a280200210a200320013602a808200320063602a4082003200a3602a0082003200636029c082003200c3602980820032009360294082003200b3602900802402008200a2f01ae2b6a41016a410b4b0d0020034188046a41186a20034190086a41186a28020036020020034188046a41106a20034190086a41106a29030037030020034188046a41086a20034190086a41086a290300370300200320032903900837038804200341086a20034188046a108a01200328020c2101200328020821060c030b20034190086a410520086b10fd040c010b2003200a41027420096a41b42b6a280200220c3602a808200320063602a408200320013602a0082003200636029c082003200a3602980820032009360294082003200b3602900802402008200c2f01ae2b6a41016a410b4b0d0020034188046a41186a20034190086a41186a28020036020020034188046a41106a20034190086a41106a29030037030020034188046a41086a20034190086a41086a290300370300200320032903900837038804200320034188046a108a0120032802042101200328020021060c020b20034190086a410520086b1089010b410021010b2001450d0220012f01ae2b220841044d0d000c020b0b200841ffff03710d00200241013a00000b2000200341106a41f80310850522014180046a2007360200200141fc036a2005360200200120043602f803200341b0086a24000bd71103037f017e0d7f230041b0176b22022400200241f8036a200141f8031085051a02400240024002400240024002400240024002400240024002400240024020002802042201450d00200028020021030c010b41b02b102f2201450d0141002103200141003b01ae2b200141003602a82b20002001360204200041003602000b200241c0136a20032001200241f8036a10ff04024020022802c0134101460d00200241f8036a10810520022d00c8074106490d0d200241d0076a280200450d0d200241cc076a28020010300c0d0b200241f8036a41086a280200210420022903f80321052002410c6a200241f8036a410c6a41ec031085051a200241c0136a410c6a28020021030240200241c0136a41086a28020022012f01ae2b2206410a4b0d00200241f8036a2002410c6a41ec031085051a0240200341016a220720064b0d002001200741f8036c6a2001200341f8036c6a200620036b41f8036c1086051a0b2001200341f8036c6a22032004360208200320053703002003410c6a200241f8036a41ec031085051a2001200641016a3b01ae2b0c0c0b410521064100210802400240200341054f0d0041042106200321070c010b41052107024002402003417b6a0e020201000b200341796a210741012108410621060c010b41002107410121080b20022802c413210941b02b102f220a450d00200a41003b01ae2b200a41003602a82b200a20012f01ae2b220b2006417f736a22033b01ae2b2001200641f8036c6a220c280204210d200c280200210e200241f8036a200c41086a41f0031085051a2003410c4f0d01200b200641016a220c6b2003470d02200a2001200c41f8036c6a200341f8036c108505210c200120063b01ae2b200241c0136a200241f8036a41f0031085051a200c200120081b22032f01ae2b2106200241f8036a2002410c6a41ec031085051a0240200741016a220820064b0d002003200841f8036c6a2003200741f8036c6a200620076b41f8036c1086051a0b2003200741f8036c6a22072004360208200720053703002007410c6a200241f8036a41ec031085051a2003200641016a3b01ae2b200241d00f6a200241c0136a41f0031085051a200241e00b6a200241d00f6a41f0031085051a02400240024020012802a82b22030d00410021090c010b41002107200c210f200d2110200e211103402003210820092007470d0620012f01ac2b210420082f01ae2b2207410b490d024100210c41042101024020044105490d0020042101024002402004417b6a0e020201000b200441796a21044101210c410621010c010b410021044101210c410521010b41e02b102f220a450d03200a41003b01ae2b200a41003602a82b200a20082f01ae2b220b2001417f736a22033b01ae2b2008200141f8036c6a2206280204210d2006280200210e200241f8036a200641086a41f0031085051a2003410c4f0d07200b200141016a22126b2003470d08200a200641f8036a200341f8036c1085052106200820013b01ae2b200241c0136a200241f8036a41f0031085051a20062f01ae2b220341016a210b2003410c4f0d09200720016b2201200b470d0a200941016a2109200641b02b6a200820124102746a41b02b6a20014102741085051a4100210102400340200620014102746a41b02b6a280200220720013b01ac2b200720063602a82b200120034f0d01200120012003496a220120034d0d000b0b200241d00f6a200241c0136a41f0031085051a20062008200c1b22072f01ae2b2101200241f8036a200241e00b6a41f0031085051a0240200441016a220320014b0d002007200341f8036c6a2007200441f8036c6a200120046b41f8036c1086051a0b200141016a210c2007200441f8036c6a220b2010360204200b2011360200200b41086a200241f8036a41f0031085051a200741b02b6a210b0240200441026a2211200141026a22104f0d00200b20114102746a200b20034102746a200120046b4102741086051a0b200b20034102746a200f3602002007200c3b01ae2b0240200320104f0d00200720044102746a41b42b6a2101034020012802002203200441016a22043b01ac2b200320073602a82b200141046a2101200c2004470d000b0b200241e00b6a200241d00f6a41f0031085051a20082101200921072006210f200d2110200e211120082802a82b22030d000b0b200241f0076a200241e00b6a41f0031085051a20002802042203450d092000280200210641e02b102f2201450d01200120033602b02b200141003b01ae2b200141003602a82b200341003b01ac2b200320013602a82b200020013602042000200641016a36020020062009470d0a20012f01ae2b2203410b4f0d0b2001200341016a22063b01ae2b2001200341f8036c6a2203200d3602042003200e360200200341086a200241f0076a41f0031085051a200141b02b6a20064102746a200a360200200a20063b01ac2b200a20013602a82b2000200028020841016a3602080c0d0b200241f8036a200241e00b6a41f0031085051a200441016a21010240200720044d22060d002008200141f8036c6a2008200441f8036c6a200720046b41f8036c1086051a0b200741016a210c2008200441f8036c6a2203201036020420032011360200200341086a200241f8036a41f0031085051a200841b02b6a2103200741026a210a024020060d00200441027420036a41086a200320014102746a200720046b4102741086051a0b2008200c3b01ae2b200320014102746a200f3602002001200a4f0d0b200741016a210720082001417f6a22014102746a41b42b6a2103034020032802002206200141016a22013b01ac2b200620083602a82b200341046a210320072001470d000c0c0b0b102a000b2003410b41e8a2c2001042000b41f8a2c200412841a0a3c200102d000b41b0a3c200413541e8a3c200102d000b2003410b41e8a2c2001042000b41f8a2c200412841a0a3c200102d000b200b410c41f8a3c2001042000b41f8a2c200412841a0a3c200102d000b41b2abc200412b41e0abc200102d000b41eaa0c2004130419ca1c200102d000b41aca1c200412041cca1c200102d000b2000200028020841016a3602080b200241b0176a24000bae0601047f410021020240024002400240024020002d0000220320012d0000470d0041012102024002400240024002400240024002400240024002402003417f6a0e09010203040506070b000b0b20034109470d0a200041046a2802002203200141046a280200470d0b2003417f6a0e020708090b4101210220034101470d09200041046a280200200141046a280200460f0b20034102470d08200041246a2802002203200141246a280200470d0c41012102024020034101470d00200041306a2802002203200141306a280200470d0d200041286a280200200141286a28020020031088050d0d0b200041016a200141016a41201088050d0c0c080b20034103470d07200041046a2802002203200141046a280200470d0a41012102024020034101470d00200041106a2802002203200141106a280200470d0b200041086a280200200141086a28020020031088050d0b0b200041186a290300200141186a290300520d0a0c070b20034104470d06200041186a2802002203200141186a280200470d0841012102024020034101470d00200041246a2802002203200141246a280200470d092000411c6a2802002001411c6a28020020031088050d090b200041016a200141016a41141088050d080c060b20034105470d0520002d000120012d0001460f0b20034106470d04200041086a290300200141086a29030085200041106a290300200141106a2903008584500f0b20034107470d03410021022000410c6a28020022032001410c6a280200470d03200041046a280200200141046a2802002003108805450f0b200041106a2802002203200141106a280200470d03200041086a280200200141086a2802002003108805450d010c030b200041086a280200200141086a280200470d020b200041146a2802002203200141146a280200470d012001411c6a2802002104200141186a28020021012000411c6a2802002105200041186a280200210002400240024002402003417f6a0e0400010203040b20002001470d040c030b20002001470d0320052004470d030c020b20002001470d0220052004470d020c010b20002001470d0120052004470d010b20020f0b41000f0b41000f0b41000f0b41000b1000200020012802042003200410c6010baf0201047f23004180016b220324000240200120002802042200413c6a4120108805450d00200341c0006a41186a2204200141186a290000370300200341c0006a41106a2205200141106a290000370300200341c0006a41086a2206200141086a2900003703002003200129000037034020032000200341c0006a10ca01024020032903004201520d00200341c0006a41286a200341306a290300370300200341c0006a41206a200341286a2903003703002004200341206a2903003703002005200341186a2903003703002006200341106a290300370300200320032903083703402003417f36027c20034200370274200341002802dc9442360270200341c0006a200341f0006a10cb010c010b200341106a280200417c6a22012001280200417f6a3602000b20034180016a24000b7e01017f230041306b2204240020002802042100200441186a200141186a290000370300200441106a200141106a290000370300200441086a200141086a29000037030020042001290000370300200441206a41086a200341086a2802003602002004200329020037032020002004200441206a10c801200441306a24000b1300200041d0dfc100360204200020013602000b1300200041d0dfc100360204200020013602000ba10402057f027e230041106b220224002002420037030802400240200128020022032802042204450d00200328020022052d0000210620032004417f6a360204200241013602082003200541016a360200200220063a000c200128020022032802042204450d00200328020022052d0000210620032004417f6a3602042003200541016a36020020024102360208200220063a000d200128020022032802042204450d00200328020022052d0000210620032004417f6a3602042003200541016a36020020024103360208200220063a000e200128020022032802042204450d00200328020022052d0000210620032004417f6a3602042003200541016a360200200220063a000f20024104360208024020022903082207a741044f0d0041fef8c100411b419cf9c100102d000b2002200110ac02024002400240024020022802000d0020012802002204280204220520022802042203490d002003417f4c0d010240024020030d00410121060c010b2003102f2206450d032006410020031087051a2001280200220428020421050b024020052003490d002006200428020020031085052105200428020422012003490d0420002003ad22084220862008843702082000200536020420002007422088a73602002004200120036b3602042004200428020020036a3602000c060b200610300b200041003602040c040b102c000b102a000b2003200141f0f5c100104a000b200041003602040b200241106a24000bdb0d03037f017e1d7f23004180016b2202240020022001109b01024002402002280200450d00200041003602000c010b02400240200228020422032001280204413c6e2204200420034b1bad423c7e2205422088a70d002005a72204417f4c0d0002400240024020040d00410421060c010b2004102f2206450d010b2004413c6e2107024020030d00410021030c030b200241c8006a4104722108200241c8006a41196a2109200241da006a210a200241d3006a210b4100210c0340024002402001280204220d41044f0d004102210e0c010b20012802002204280000210f2001200d417c6a220e3602042001200441046a3602000240200e41044f0d004102210e0c010b200428000421102001200d41786a220e3602042001200441086a3602000240200e41044f0d004102210e0c010b200428000821112001200d41746a220e36020420012004410c6a3602000240200e41044f0d004102210e0c010b200428000c21122001200d41706a220e3602042001200441106a3602000240200e41044f0d004102210e0c010b200428001021132001200d416c6a220e3602042001200441146a3602000240200e41044f0d004102210e0c010b200428001421142001200d41686a22153602042001200441186a220e36020002402015450d00200e2d000021152001200d41676a22163602042001200e41016a3602004100210e0240024020150e020100020b4100210e20024100360248200d41666a210d03402016200e460d022004200e6a221541196a2d000021172001200d36020420012015411a6a3602002008200e6a20173a00002002200e41016a2215360248200d417f6a210d2015210e20154120470d000b200241c4006a41026a200b41026a2d00003a0000200241c0006a41026a200a41026a2d00003a0000200220082f01003b01702002200b2f00003b01442002200a2f00003b01402002200841026a2d00003a00722002280268211820022802642119200228005d211a2002280156211b200228004f211c2002413c6a41026a200941026a2d00003a0000200220092f00003b013c4101210e0b200241c8006a41026a20022d00723a0000200241386a41026a200241c4006a41026a2d00003a0000200241346a41026a200241c0006a41026a2d00003a0000200241306a41026a2002413c6a41026a2d00003a0000200220022f01703b0148200220022f01443b0138200220022f01403b0134200220022f013c3b01302014211d2013211e2012211f2011212020102121200f21220c010b4102210e0b2002412c6a41026a2204200241c8006a41026a2d00003a0000200241286a41026a220d200241386a41026a2d00003a0000200241246a41026a220f200241346a41026a2d00003a0000200241206a41026a2210200241306a41026a2d00003a00002002411c6a41026a2215200241f0006a41026a2d00003a0000200220022f01483b012c200220022f01383b0128200220022f01343b0124200220022f01303b0120200220022f00703b011c0240200e4102460d00200241186a41026a221120042d00003a0000200241146a41026a2217200d2d00003a0000200241106a41026a220d200f2d00003a00002002410c6a41026a220f20102d00003a0000200241086a41026a221020152d00003a0000200220022f012c3b0118200220022f01283b0114200220022f01243b0110200220022f01203b010c200220022f011c3b01080240200c2007470d00200c4101742204200c41016a2215200420154b1b22044104200441044b1bad423c7e2205422088a74541027421042005a7211502400240200c0d00200241003602480c010b20024104360250200220063602482002200c413c6c36024c0b200241f0006a20152004200241c8006a106920022802782104024020022802704101470d0020040d040c050b200228027421062004413c6e21070b2006200c413c6c6a220441186a200e3a00002004411b6a20112d00003a0000200441196a20022f01183b00002004202136020420042022360200200441146a201d360200200441106a201e3602002004410c6a201f360200200441086a20203602002004411c6a201c360000200441226a20172d00003a0000200441206a20022f01143b0000200441236a201b360000200441296a200d2d00003a0000200441276a20022f01103b00002004412a6a201a360000200441306a200f2d00003a00002004412e6a20022f010c3b0000200441356a2018360000200441316a20193600002004413b6a20102d00003a0000200441396a20022f01083b0000200c41016a2204210c20042003460d040c010b0b200041003602002007450d032007413c6c450d03200610300c030b102a000b102c000b2000200736020420002006360200200041086a20033602000b20024180016a24000bdd0a02077f027e230041b00f6b2202240002400240024020012802004101460d002002410c3602000c010b02400240024002402001411c6a2802002203450d0020012003417f6a36021c200141086a2802002203450d01200128020421042001410c6a280200220520032f01a629490d0203400240024020032802a02922060d00410021060c010b200441016a210720032f01a42921050b024041d82941a82920041b450d00200310300b024020060d00410221040c050b2007210420062103200520062f01a6294f0d000b20062103200721040c020b2002410c3602f803200141046a220310e60320014100360200200320022902f007370200200341086a200241f0076a41086a290200370200200341106a200241f0076a41106a290200370200200341186a200241f0076a41186a2802003602002002410c3602000c030b41b2abc200412b41d4a8c200102d000b200541016a21062003200541d0036c6a2107200320054104746a220541f8276a2108200541f0276a210502402004450d00200320064102746a41a8296a280200210302402004417f6a2206450d00034020032802a82921032006417f6a22060d000b0b410021060b200829030021092005290300210a200728020021042002200741046a41cc031085051a0b200241f0076a200241cc031085051a2001200636020c2001200336020820014100360204200241e40b6a200241f0076a41cc031085051a024002402004450d0020024190046a200937030020024188046a200a3703004108210320024184046a200241f0076a41086a280200360200200220022902f0073702fc030c010b20024180046a200241e80b6a41c8031085051a200241d0076a2009370300200241c8076a200a370300410a21030b200220033602f8032002200241f8036a41f8031085052203280200410c460d002000200341f8031085051a0c010b024020012802204101460d002000410c3602000c010b0240024002402001413c6a2802002203450d0020012003417f6a36023c0240200141286a2802002206450d00200141246a280200210402402001412c6a280200220520062f01ae2b4f0d0020062103200421070c030b03400240024020062802a82b22030d00410021030c010b200441016a210720062f01ac2b21050b024041e02b41b02b20041b450d00200610300b024020030d00410221050c050b2003210620072104200520032f01ae2b490d030c000b0b41b2abc200412b41d4a8c200102d000b2000410c3602000c020b200541016a21062003200541f8036c6a210402402007450d00200320064102746a41b02b6a280200210302402007417f6a2206450d00034020032802b02b21032006417f6a22060d000b0b410021060b20042802002105200241f8036a200441046a41f4031085051a0b200241f0076a200241f8036a41f4031085051a2001200636022c2001200336022820014100360224200241f8036a200241f0076a41f4031085051a200241e40b6a200241f0076a41cc031085051a024002402005450d00200020022902f007370204200041106a20022902c4073702002000410c6a200241f8076a280200360200200041186a200241cc076a290200370200200041206a200241d4076a290200370200200041286a200241dc076a290200370200200041306a200241e4076a290200370200410921030c010b200041086a200241e80b6a41c8031085051a200041f0036a200241e4076a290200370200200041e8036a200241dc076a290200370200200041e0036a200241d4076a290200370200200041d8036a200241cc076a290200370200200041d0036a20022902c407370200410b21030b200020033602002002280200410c460d002002109a010b200241b00f6a24000bfb1102167f017e23004180016b22022400200241d0006a4104722103200128020421044100210502400240034020042206450d01200128020022072d0000210820012006417f6a22043602042001200741016a360200200320056a20083a00002002200541016a22073602502007210520074120470d000b200241c8006a41026a2205200241dd006a2d00003a00002002200241e9006a22072800003602782002200241ec006a28000036007b200220022f01543b014c200220022d00563a004e2002200241db006a2f00003b0148200241de006a2801002109200241e5006a280000210a200241f0006a280200210b2002280057210c200228007b210d200241f8006a41026a2204200241e4006a2d00003a00002002200241e2006a2f01003b0178200241c4006a41026a2208200241eb006a2d00003a0000200220072f00003b0144200241d0006a41026a20022d004e3a0000200220022f014c3b0150200241c0006a41026a20052d00003a0000200220022f01483b01402002413c6a41026a20042d00003a0000200220022f01783b013c200241386a41026a20082d00003a0000200220022f01443b01380c010b0b200241146a41026a200241d0006a41026a2d00003a0000200241106a41026a200241c0006a41026a2d00003a00002002410c6a41026a2002413c6a41026a2d00003a0000200241086a41026a200241386a41026a2d00003a0000200220022f01503b0114200220022f01403b0110200220022f013c3b010c200220022f01383b0108024002400240024002402006450d0020022001109b0120022802000d012002280204210e200128020421074104210502400240034020072204450d01200241d0006a20056a200128020022062d00003a000020012004417f6a22073602042001200641016a36020020022005417d6a360250200541016a22054124470d000b200241c8006a41026a2205200241dd006a2d00003a00002002200241e9006a22062800003602782002200241ec006a28000036007b200220022f01543b014c200220022d00563a004e2002200241db006a2f00003b0148200241de006a280100210f200241e5006a2800002110200241f0006a280200211120022800572112200228007b2113200241f8006a41026a2208200241e4006a2d00003a00002002200241e2006a2f01003b0178200241c4006a41026a2203200241eb006a2d00003a0000200220062f00003b0144200241d0006a41026a20022d004e3a0000200220022f014c3b0150200241c0006a41026a20052d00003a0000200220022f01483b01402002413c6a41026a20082d00003a0000200220022f01783b013c200241386a41026a20032d00003a0000200220022f01443b01380c010b410021070b200241246a41026a200241d0006a41026a2d00003a0000200241206a41026a200241c0006a41026a2d00003a00002002411c6a41026a2002413c6a41026a2d00003a0000200241186a41026a200241386a41026a2d00003a0000200220022f01503b0124200220022f01403b0120200220022f013c3b011c200220022f01383b01182004450d02200241d0006a41047221034100210502400240034020072206450d01200128020022042d0000210820012006417f6a22073602042001200441016a360200200320056a20083a00002002200541016a22043602502004210520044120470d000b200241c8006a41026a2214200241dd006a2d00003a00002002200241e9006a22152800003602782002200241ec006a28000036007b200220022f01543b014c200220022d00563a004e2002200241db006a2f00003b0148200241de006a2801002105200241e5006a2800002107200241f0006a280200210420022800572108200228007b2103200241f8006a41026a2216200241e4006a2d00003a00002002200241e2006a2f01003b0178200241c4006a41026a2217200241eb006a2d00003a0000200220152f00003b0144200241d0006a41026a20022d004e3a0000200220022f014c3b0150200241c0006a41026a20142d00003a0000200220022f01483b01402002413c6a41026a20162d00003a0000200220022f01783b013c200241386a41026a20172d00003a0000200220022f01443b01380c010b0b200241346a41026a200241d0006a41026a2d00003a0000200241306a41026a200241c0006a41026a2d00003a00002002412c6a41026a2002413c6a41026a2d00003a0000200241286a41026a200241386a41026a2d00003a0000200220022f01503b0134200220022f01403b0130200220022f013c3b012c200220022f01383b01282006450d03200241d0006a2001108302024020022802502201450d0020022902542118200020022f01103b00172000200936001a200020022f010c3b001e2000200a360021200020022f01083b0025200041106a20022f01143b0000200041136a200c360000200041126a200241146a41026a2d00003a0000200041196a200241106a41026a2d00003a0000200041206a2002410c6a41026a2d00003a0000200041276a200241086a41026a2d00003a00002000412c6a200b360000200041286a200d360000200041336a20123600002000200f36003a20002010360041200041306a20022f01243b0000200041326a200241246a41026a2d00003a0000200041396a200241206a41026a2d00003a0000200020022f01203b0037200041c0006a2002411c6a41026a2d00003a0000200020022f011c3b003e200020022f01183b0045200041c7006a200241186a41026a2d00003a0000200041cc006a2011360000200041c8006a2013360000200041d2006a200241346a41026a2d00003a0000200041d0006a20022f01343b0000200041d3006a2008360000200041d9006a200241306a41026a2d00003a0000200020022f01303b00572000200536005a200041e0006a2002412c6a41026a2d00003a0000200020022f012c3b005e20002007360061200041e7006a200241286a41026a2d00003a0000200020022f01283b0065200041ec006a2004360000200041e8006a200336000020002018370208200020013602042000200e3602000c050b200041003602040c040b200041003602040c030b200041003602040c020b200041003602040c010b200041003602040b20024180016a24000b8c0201037f230041d0006b220124002001412036020420012000360200200141086a2000412041002802d4ad4211040002400240200128020822020d00410221000c010b200128020c210302400240200141106a280200450d0041002100024020022d00000e020200010b410121000c010b2001420037021c200141002802dc94423602182001410936022c200120013602282001200141186a360234200141cc006a41013602002001420137023c200141a0e6c1003602382001200141286a360248200141346a41d0adc000200141386a10321a2001280218200128022010ad010240200128021c450d00200128021810300b410221000b2003450d00200210300b200141d0006a240020000b040010050b070010024101460b0e002001ad4220862000ad8410150b8f0201027f20014180feff07714108762102024002402001410171450d00411f2103419580c200210102400240200241ff01710e03000103000b41c100210341d4ffc10021010c020b41c10021034193ffc10021010c010b411f210341f4fec1002101024002400240024002400240024002400240200241ff01710e0a00060102030405090708000b4120210341d4fec10021010c080b4127210341f4fdc10021010c070b4117210341ddfdc10021010c060b41befdc10021010c050b412621034198fdc10021010c040b412a210341eefcc10021010c030b41392103419bfec10021010c020b413b210341b3fcc10021010c010b41d200210341e1fbc10021010b20002003360204200020013602000b6901017f230041206b220324002003200136020420032000360200200341086a41106a200241106a290200370300200341086a41086a200241086a29020037030020032002290200370308200341dce9c100200341046a41dce9c100200341086a41d0e7c100104b000b1c0020012802184199f7c100410f2001411c6a28020028020c1100000bb00301097f230041306b22032400024002400240024020022d000422044102470d00200041023a00000c010b20012802042105024002402001280200220628020422014125490d00200641106a28020021012006410c6a28020021070c010b200641096a21070b200228020021082006280200220941017621062005280200280200210a024002402009410171450d00200120064d0d04200341013a0008200341106a2001200641016a220b6b36020020032007200b6a36020c2003200720066a2d0000410f713a00090c010b20012006490d02200341106a200120066b360200200341003b01082003200720066a36020c0b200a200341086a10b501200a200810b60120052802042802002106200341116a200241056a220241086a290000370000200341196a200241106a290000370000200341216a200241186a290000370000200341286a2002411f6a280000360000200320043a00082003200229000037000920002006200341086a200528020028020010b7012005280200280200200141017420096b41016a10b8010b200341306a24000f0b2006200141e097c200104a000b2006200141f097c2001033000b850404047f017e027f017e230041d0026b22032400200041d0006a2802002104200028024c2105200341d0016a41086a2206200241086a280200360200200320022902003703d001200341d8006a20052001200341d0016a200428020c1103000240024002400240200328025822020d004130102f2200450d03200041013a000020002001290000370001200041096a200141086a290000370000200041116a200141106a290000370000200041196a200141186a2900003700000c010b200329025c2107200341b0016a41186a200141186a2205290000370300200341b0016a41106a200141106a2208290000370300200341b0016a41086a200141086a290000370300200320012900003703b001200341d0016a200341b0016a20022007422088a7200041306a220910ad0420032802d401210020032802d0012104200341d8006a200641d4001085051a024020044101460d00200341046a200341d8006a41d4001085051a200341f8016a200341046a41d4001085051a200341e9016a2005290000370000200341e1016a2008290000370000200341d9016a200141086a290000370000200320003602f401200341013a00d001200320012900003700d1012009200341d0016a10b30121004200210a2007a7450d02200210300c020b2007a7450d00200210300b4201210a0b200341d0026a24002000ad422086200a840f0b102a000ba25302127f047e23004180056b22062400200641086a200341086a280200360200200620032902003703000240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024020022802000e050104000203010b20064198016a2002412c6a29020037030020064190016a200241246a29020037030020064188016a2002411c6a29020037030020064180016a2207200241146a290200370300200641f0006a41086a2002410c6a29020037030020062002290204370370200241346a2108200241386a2109024002402006280274220a4125490d002007280200210a200641f0006a410c6a280200210b0c010b200641f9006a210b0b2002413c6a210c200241356a210d20082d0000210e2009280200210f2006200628027022103602a8012006200b3602a00120062802042111200628020821122006200a3602a4010240200a410174221320106b2214201141017420126b2202200220144b1b2215450d00410021022006280200211602400340201220026a2209410176220820114f0d10201020026a22174101762207200a4f0d11201620086a2d00002208410f71200841f0017141047620094101711b200b20076a2d00002208410f71200841047620174101711b470d012015200241016a2202470d000b201521020b20020d060b20132010470d0441ccf0c100412a41f8f0c100102d000b4101210920062802042203200628020822084101762202490d0e20064180046a410472200628020020026a200320026b10ab04200641286a41086a20064180046a41186a290300370300200641286a41106a200641a0046a290300370300200641286a41186a200641a8046a290300370300200620064180046a41106a290300370328200841017121022006418c046a280200210320064180046a41086a2802002107200429020421182004280200210c2006280284042117410021080c2a0b200241106a28020021102002410c6a280200210b200241086a280200210a2002280204210202402006280204220941017420062802082208470d0020042802082103410021080240200a450d0020102003470d00200a20042802002010108805452108201021030b2004280204210720042802002117024020052802002209450d00200541046a280200450d00200910300b2005200b3602042005200a360200200541086a2010360200410321090c2a0b2008410176220720094f0d0e200628020020076a2d000021092003200328020841016a36020820022009410f71200941047620084101711b220741246c6a22092d00002108200941023a00000240024020084102470d0020032802042217200328020822054101762208490d112006418c046a200328020020086a201720086b10ab04200641b8046a2004290200370300200641c0046a200441086a280200360200200641013602840420064180046a41086a200541017136020041002108200641003a0080042002200741246c6a41046a200141306a20064180046a10b301360200200941003a00000c010b20064180046a41096a200941096a29000037000020064180046a41116a200941116a29000037000020064180046a41196a200941196a29000037000020064180046a41206a200941206a280000360000200620083a0080042006200929000137008104200641a8036a41086a200441086a280200360200200620042902003703a803200641d0026a200120064180046a2003200641a8036a200510800320062802d402210320062802d0024101460d0b200641d0026a41086a2d0000211741002108200941003a00002002200741246c6a41046a2003360200201741ff0171450d090b4103210920102103200b2107200a21170c290b200641a0026a2002412c6a29020037030020064198026a200241246a29020037030020064190026a2002411c6a29020037030020064188026a2217200241146a290200370300200641f8016a41086a2002410c6a290200370300200620022902043703f801200241346a2108200241386a21092002413c6a2107200241c0006a21020240024020062802fc01220a4125490d002017280200210a200641f8016a410c6a280200210b0c010b20064181026a210b0b2008280200210c2009280200210e200728020021132002280200210f200620062802f80122103602d0012006200b3602c80120062802042111200628020821122006200a3602cc01410021020240200a41017420106b2214201141017420126b220d200d20144b1b2215450d00200628020021160340201220026a2209410176220820114f0d11201020026a22174101762207200a4f0d12201620086a2d00002208410f71200841f0017141047620094101711b200b20076a2d00002208410f71200841047620174101711b470d012015200241016a2202470d000b201521020b0240024002400240024002400240024020022014470d002014200d460d010b200220144f0d01200a2010200241016a22076a22084101762203490d19200641d0026a410472200b20036a200a20036b10ab04200620084101713602d002201020026a22084101762203200a4f0d1a200b20036a2d0000210341c004102f2209450d1b200941023a009c04200941023a00f803200941023a00d403200941023a00b003200941023a008c03200941023a00e802200941023a00c402200941023a00a002200941023a00fc01200941023a00d801200941023a00b401200941023a009001200941023a006c200941023a0048200941023a0024200941023a000020064180046a41306a200641d0026a41286a29030037030020064180046a41286a2217200641d0026a41206a29030037030020064180046a41206a220a200641d0026a41186a29030037030020064180046a41186a2210200641d0026a41106a29030037030020064180046a41106a2205200641d0026a41086a29030037030020064180046a41086a220b20062903d002370300200641c4046a200f360200200641c0046a2013360200200641bc046a200e360200200641b8046a200c360200200641003a008004200641043602840420092003410f71200341f0017141047620084101711b41246c6a2203200141306a221120064180046a10b301360204200341003a000020062802042203410174200628020822086b2002470d0220064180046a200641c8016a200210ae04200641286a41086a2010290300370300200641286a41106a200a290300370300200641286a41186a2017290300370300200620052903003703282006418c046a2802002103200b28020021072004280208210a20042902002118200628028404211720062802800421020c030b410021080240200e450d00200f2004280208470d00200e2004280200200f1088054521080b200a20104101762202490d1720064180046a410472200b20026a200a20026b10ab04200641a8036a41086a220920064180046a41186a290300370300200641a8036a41106a220b200641a0046a290300370300200641a8036a41186a2211200641a8046a290300370300200620064180046a41106a2903003703a803201041017121022006418c046a280200210320064180046a41086a28020021072004280208210a200429020021182006280284042117024020052802002204450d00200541046a280200450d00200410300b200520133602042005200e360200200541086a200f360200200641286a41086a2009290300370300200641286a41106a200b290300370300200641286a41186a2011290300370300200620062903a8033703280c050b201220026a2209410176220820114f0d1a200628020020086a2d000021082003200220032802086a41016a360208200c2008410f71200841047620094101711b220941246c6a22022d00002108200241023a000020084102470d0220032802042207200328020822174101762208490d1d2006418c046a200328020020086a200720086b10ab04200641b8046a2004290200370300200641c0046a200441086a280200360200200641013602840420064180046a41086a2017410171360200200641003a008004200c200941246c6a41046a200141306a20064180046a10b301360200200241003a00000c030b200820026a220a410176221720034f0d1a2003200820076a22104101762208490d1b2006280200220520176a2d00002107200641a8036a41046a200520086a200320086b10ab04200620104101713602a803200641b0046a200641a8036a41286a29020037030020064180046a41286a2203200641a8036a41206a29020037030020064180046a41206a2208200641a8036a41186a29020037030020064180046a41186a2217200641a8036a41106a29020037030020064180046a41106a2210200641a8036a41086a29020037030020064180046a41086a220520062902a803370300200641b8046a2004290200370300200641c0046a200441086a2802003602002006410136028404200641003a00800420092007410f71200741f00171410476200a4101711b41246c6a2207201120064180046a10b301360204200741003a000020064180046a200641c8016a200210ae04200641286a41086a2017290300370300200641286a41106a2008290300370300200641286a41186a2003290300370300200620102903003703282006418c046a28020021032005280200210720062802840421172006280280042102420021180b410021082009210c0c020b20064180046a41096a200241096a29000037000020064180046a41116a200241116a29000037000020064180046a41196a200241196a29000037000020064180046a41206a200241206a280000360000200620083a0080042006200229000137008104200641a8036a41086a200441086a280200360200200620042902003703a803200641d0026a200120064180046a2003200641a8036a200510800320062802d402210320062802d0024101460d0a200641d0026a41086a2d00002108200241003a0000200c200941246c6a41046a2003360200200841ff0171450d080b200a20104101762202490d1a20064180046a410472200b20026a200a20026b10ab04200641286a41086a20064180046a41186a290300370300200641286a41106a200641a0046a290300370300200641286a41186a200641a8046a290300370300200620064180046a41106a290300370328201041017121022013ad422086200ead8421182006418c046a280200210320064180046a41086a2802002107200628028404211741002108200f210a0b024020062802fc014125490d0020064184026a28020010300b410421090c290b200641a0026a2002412c6a29020037030020064198026a200241246a29020037030020064190026a2002411c6a29020037030020064188026a2207200241146a290200370300200641f8016a41086a2002410c6a290200370300200620022902043703f8012002413c6a2108200241386a2109200241346a21020240024020062802fc01220d4125490d002007280200210a200641f8016a410c6a280200210b0c010b20064181026a210b200d210a0b2008280200210e200928020021132002280200210f410021020240200a41017420062802f80122106b220c20062802042211410174200628020822126b22142014200c4b1b2215450d00200628020021160340201220026a2209410176220820114f0d1b201020026a22174101762207200a4f0d1c201620086a2d00002208410f71200841f0017141047620094101711b200b20076a2d00002208410f71200841047620174101711b470d012015200241016a2202470d000b201521020b02400240024002402002200c470d00200c2014460d010b2002200c4f0d0141c004102f2209450d16200941023a009c04200941023a00f803200941023a00d403200941023a00b003200941023a008c03200941023a00e802200941023a00c402200941023a00a002200941023a00fc01200941023a00d801200941023a00b401200941023a009001200941023a006c200941023a0048200941023a0024200941023a0000201020026a22074101762217200a4f0d1e200a200741016a22104101762208490d1f200b20176a2d00002117200641a8036a41046a200b20086a200a20086b10ab04200620104101713602a80320064180046a41306a200641a8036a41286a29020037030020064180046a41286a220b200641a8036a41206a29020037030020064180046a41206a2211200641a8036a41186a29020037030020064180046a41186a220a200641a8036a41106a221229020037030020064180046a41106a2210200641a8036a41086a221529020037030020064180046a41086a221620062902a803370300200641c0046a2214200e360200200641bc046a220c201336020020064180046a41386a200f360200200641013602840441002108200641003a00800420092017410f71201741f0017141047620074101711b41246c6a2207200141306a20064180046a10b301360204200741003a000020064180046a2006200210ae04200641c8006a41086a22022006418c046a2207280200360200200641f0006a41086a2217200a290300370300200641f0006a41106a220d2011290300370300200641f0006a41186a2211200b29030037030020062006290284043703482006201029030037037020062006280280043602ac03200641043602a8032015200629034837030020122002280200360200200641a8036a41386a4100360200200641a8036a41346a2009360200200641a8036a41146a2006290370370200200641a8036a411c6a2017290300370200200641a8036a41246a200d290300370200200641a8036a412c6a2011290300370200200641a0016a41086a200441086a280200360200200620042902003703a00120064180046a2001200641a8036a2003200641a0016a200510aa04200641d0026a41086a220520064180046a41246a290200370300200641d0026a41106a220b20064180046a412c6a290200370300200641d0026a41186a221120064180046a41346a290200370300200620064180046a411c6a2902003703d00220162802002109200728020021022010280200211720064180046a41146a2802002107200a2802002103200c280200210c20142903002118200641c8046a280200210a20062802840421102006280280042104200641b0016a41106a2212200641dc046a280200360200200641b0016a41086a2215200641d4046a2902003703002006200641cc046a2902003703b00120044101460d07200641c8016a41186a20112903002219370300200641c8016a41106a200b290300221a370300200641c8016a41086a2005290300221b370300200641d8006a41086a22042015290300370300200641d8006a41106a22102012280200360200200641286a41086a201b370300200641286a41106a201a370300200641286a41186a2019370300200620062903d00222193703c801200620062903b00137035820062019370328200641106a41106a2010280200360200200641106a41086a2004290300370300200620062903583703100c020b410021020240200e2004280208470d00200f2004280200200e1088054521020b024020052802002203450d00200541046a280200450d00200310300b200520133602042005200f360200200541086a200e360200024020020d00200620103602800420064180046a410472210302400240200d4125490d0020064188026a280200210d20064184026a28020021020c010b20064181026a21020b4100210820064180046a41086a220941003a00002006410036028404200320022002200d6a10bc02200641286a41086a20064180046a41186a290300370300200641286a41106a200641a0046a290300370300200641286a41186a200641a8046a290300370300200620064180046a41106a2903003703282006418c046a280200210320092802002107200429020421182004280200210c20062802840421172006280280042102410121090c020b200620103602800420064180046a410472210302400240200d4125490d0020064188026a280200210d20064184026a28020021020c010b20064181026a21020b20064180046a41086a220841003a00002006410036028404200320022002200d6a10bc02200641286a41086a20064180046a41186a290300370300200641286a41106a200641a0046a290300370300200641286a41186a200641a8046a290300370300200620064180046a41106a2903003703282006418c046a280200210320082802002107200429020421182004280200210c2006280284042117200628028004210241012109410121080c010b200a20104101762202490d1e20064180046a410472200b20026a200a20026b10ab04200620104101713602800441c004102f2202450d14200241023a009c04200241023a00f803200241023a00d403200241023a00b003200241023a008c03200241023a00e802200241023a00c402200241023a00a002200241023a00fc01200241023a00d801200241023a00b401200241023a009001200241023a006c200241023a0048200241023a0024200241023a0000200641d0026a41086a220820064180046a41086a2209290300370300200641d0026a41106a220720064180046a41106a2217290300370300200641d0026a41186a220a20064180046a41186a2210290300370300200641d0026a41206a220b20064180046a41206a290300370300200641d0026a41286a221120064180046a41286a29030037030020062006290380043703d002200641a8036a410c6a2008290300370200200641a8036a41146a2007290300370200200641a8036a411c6a200a290300370200200641a8036a41246a200b290300370200200641a8036a412c6a2011290300370200200641a8036a41c0006a200e360200200641a8036a413c6a2013360200200641e0036a200f360200200641a8036a41346a2002360200200641043602a803200620062903d0023702ac03200641a0016a41086a200441086a280200360200200620042902003703a00120064180046a2001200641a8036a2003200641a0016a200510aa04200641c8016a41086a220420064180046a41246a290200370300200641c8016a41106a220520064180046a412c6a290200370300200641c8016a41186a220b20064180046a41346a290200370300200620064180046a411c6a2902003703c8012009280200210920064180046a410c6a28020021022017280200211720064180046a41146a28020021072010280200210320064180046a413c6a280200210c20064180046a41c0006a2903002118200641c8046a280200210a20062802840421102006280280042108200641b0016a41106a2211200641dc046a280200360200200641b0016a41086a2212200641d4046a2902003703002006200641cc046a2902003703b00120084101460d1f200641f0006a41186a200b2903002219370300200641f0006a41106a2005290300221a370300200641f0006a41086a2004290300221b370300200641d8006a41086a22082012290300370300200641d8006a41106a22042011280200360200200641286a41086a201b370300200641286a41106a201a370300200641286a41186a2019370300200620062903c8012219370370200620062903b00137035820062019370328200641106a41106a2004280200360200200641106a41086a200829030037030020062006290358370310410021080b20062802fc014125490d2820064184026a28020010300c280b20104101762202200a4f0d1e200b20026a2d0000210841c004102f2202450d12200241023a009c04200241023a00f803200241023a00d403200241023a00b003200241023a008c03200241023a00e802200241023a00c402200241023a00a002200241023a00fc01200241023a00d801200241023a00b401200241023a009001200241023a006c200241023a0048200241023a0024200241023a00000240024020144101470d00200641a8036a41026a200d41026a2d00003a000020064180046a41086a200c41086a29020037030020064180046a41106a200c41106a29020037030020064180046a41186a200c41186a2802003602002006200d2f00003b01a8032006200c290200370380040c010b200a201041016a22074101762209490d20200641ac036a200b20096a200a20096b10ab04200620074101713602a80320064180046a41306a200641a8036a41286a29020037030020064180046a41286a200641a8036a41206a29020037030020064180046a41206a200641a8036a41186a29020037030020064180046a41186a200641a8036a41106a29020037030020064180046a41106a200641a8036a41086a29020037030020064180046a41086a20062902a803370300200641b9046a200d2f00003b0000200641bb046a200d41026a2d00003a0000200641c0046a200c290200370300200641c8046a200c41086a290200370300200641d0046a200c41106a290200370300200641d8046a200c41186a280200360200200641bc046a200f360200200641b8046a200e3a000020064102360284044100210e200641003a008004200141306a20064180046a10b301210f0b20022008410f71200841047620104101711b41246c6a2208200e3a0000200820062f01a8033b00012008200f3602042008200629038004370208200841036a200641aa036a2d00003a0000200841106a20064180046a41086a2209290300370200200841186a20064180046a41106a2207290300370200200841206a20064180046a41186a220a28020036020041002108200641a8036a41086a4100360200200620023602ac03200641033602a803200641d8006a41086a200441086a2802003602002006200429020037035820064180046a2001200641a8036a2003200641d8006a200510aa04200641d0026a41086a221020064180046a41246a290200370300200641d0026a41106a2205200641ac046a290200370300200641d0026a41186a220b200641b4046a29020037030020062006419c046a2902003703d002200928020021092006418c046a28020021022007280200211720064194046a2802002107200a2802002103200641bc046a280200210c200641c0046a2903002118200641c8046a280200210a20062802840421112006280280042104200641c8016a41106a2212200641dc046a280200360200200641c8016a41086a2215200641d4046a2902003703002006200641cc046a2902003703c80120044101460d01200641f8016a41186a200b2903002219370300200641f8016a41106a2005290300221a370300200641f8016a41086a2010290300221b370300200641b0016a41086a22042015290300370300200641b0016a41106a22102012280200360200200641286a41086a201b370300200641286a41106a201a370300200641286a41186a2019370300200620062903d00222193703f801200620062903c8013703b00120062019370328200641106a41106a2010280200360200200641106a41086a2004290300370300200620062903b0013703100c250b0240024020022014460d00200a201020026a22094101762208490d21200641c8016a41046a200b20086a200a20086b10ab042003200328020820026a360208200620094101713602c801200641b4036a2208200641c8016a41086a290200370200200641bc036a200641c8016a41106a290200370200200641c4036a200641c8016a41186a290200370200200641cc036a200641c8016a41206a290200370200200641d4036a200641c8016a41286a290200370200200641dc036a200e3a000041022109200641023602a803200641df036a200d41026a2d00003a0000200620062902c8013702ac032006200d2f00003b00dd03200641e0036a200f360200200641e4036a200c290200370200200641ec036a200c41086a290200370200200641f4036a200c41106a290200370200200641fc036a200c41186a280200360200200641b0016a41086a200441086a280200360200200620042902003703b00120064180046a2001200641a8036a2003200641b0016a200510aa0420062802840421072006280280042103200641d0026a20064180046a41086a41d8001085051a20034101460d01200641f8016a200641d0026a41d8001085051a200641a8036a200641a0016a200210ae0420064180046a410472200641f8016a41d8001085051a4100210c200641003a008004200141306a20064180046a10b3012102200641286a41086a200641a8036a41186a290300370300200641286a41106a200641a8036a41206a290300370300200641286a41186a200641a8036a41286a2903003703002006200641a8036a41106a2903003703282002ad2118200641a8036a41086a28020021072008280200210320062802a803210220062802ac032117410021080c260b2003200328020820146a36020820064180046a41086a200c29020037030020064180046a41106a200c41086a29020037030020064180046a41186a200c41106a290200370300200641a0046a200c41186a2802003602002006200e3a0080042006200f360284042006200d2f00003b0081042006200d41026a2d00003a008304200641a8036a41086a200441086a280200360200200620042902003703a803200641d0026a200120064180046a2003200641a8036a200510800320062802d4022109024020062802d0024101460d00200a20104101762202490d22200641d0026a41086a2d0000210320064180046a410472200b20026a200a20026b10ab04200641a8036a41186a200641a8046a2903002218370300200641a8036a41106a200641a0046a2903002219370300200641286a41086a20064180046a41186a290300370300200641286a41106a2019370300200641286a41186a2018370300200620064180046a41106a29030037032820104101712102200341ff01714521082006418c046a280200210320064180046a41086a280200210720062802840421172009ad2118410221094100210c0c260b20004101360200200020093602040c020b20004101360200200020073602040c010b20004101360200200020113602040b20062802744125490d25200641fc006a28020010300c250b20004101360200200020103602040c200b200a20104101762202490d1d20064184046a200b20026a200a20026b10ab04200041c8006a200f360200200041c4006a2013360200200041c0006a200e3602002000413c6a200c36020020004281808080c000370204200041146a20064188046a2902003702002000411c6a20064190046a290200370200200041246a20064198046a2902003702002000412c6a200641a0046a290200370200200041346a200641a8046a29020037020020062010410171360280042000410c6a200629028004370200200041003602000c1e0b2000428080808010370200200041186a2010360200200041146a200b360200200041106a200a3602002000410c6a2002360200200041086a41033602000c220b20004101360200200020033602040240200e450d002013450d00200e10300b200c10300c1c0b20004101360200200020033602040240200a450d00200b450d00200a10300b200210300c200b2008201141e098c2001033000b2007200a41e098c2001033000b2002200341f098c200104a000b2007200941e098c2001033000b2008201741f098c200104a000b2008201141e098c2001033000b2007200a41e098c2001033000b2002200a41f098c200104a000b2003200a41f098c200104a000b2003200a41e098c2001033000b102a000b2008201141e098c2001033000b2017200341e098c2001033000b2008200341f098c200104a000b2008200741f098c200104a000b2002200a41f098c200104a000b2008201141e098c2001033000b2007200a41e098c2001033000b2017200a41e098c2001033000b2008200a41f098c200104a000b2002200a41f098c200104a000b20004101360200200020103602040c060b2002200a41e098c2001033000b2009200a41f098c200104a000b2008200a41f098c200104a000b2002200a41f098c200104a000b2002200a41f098c200104a000b20062802fc014125490d0420064184026a28020010300c040b20062802fc014125490d0320064184026a28020010300c030b20062802744125490d01200641fc006a28020010300c010b0b20002008360204200041186a2003360200200041146a2007360200200041106a20173602002000410c6a2002360200200041086a20093602002000411c6a2006290328370200200041c8006a200a360200200041c0006a20183702002000413c6a200c360200200041cc006a2006290310370200200041246a200641286a41086a2903003702002000412c6a200641286a41106a290300370200200041346a200641286a41186a290300370200200041d4006a200641106a41086a290300370200200041dc006a200641106a41106a280200360200200041003602000b20064180056a24000bc30301087f230041106b22032400200041003a00042000410036020020032000200210bd020240024020032802004101470d00200341086a2802000d0141d099c200411141e499c200102d000b02400240200028020022044125490d002000410c6a22052802002106200041086a28020021070c010b200041056a21072004210620002105412421040b02400240024020062004490d00200121080c010b2002210920012108024003402009450d01200720066a20082d00003a00002009417f6a2109200841016a21082004200641016a2206470d000b200421060c010b200520063602000c010b200520063602002008200120026a2201460d002000410c6a2105200041056a210a034002400240200028020022044125490d00200028020c210620002802082107200521090c010b2004210620002109200a2107412421040b20082d00002102024020062004470d0020032000410110bd02024020032802004101470d00200341086a2802000d0441d099c200411141e499c200102d000b200028020c210620002802082107200521090b200720066a20023a00002009200928020041016a3602002001200841016a2208470d000b0b200341106a24000f0b102a000b940b03017f057e197f230041e0016b22022400200241e8006a200141d0001085051a200241c0016a41186a200029031820002903088522033703002002200029031022043703c801200241e8006a41186a290300210520022004200029030022068522073703d001200241c8006a2003200585420020072002290378854200108405200241d8006a2003200241e8006a41086a29030085420020072002290368854200108405200220042004200642adfed5e4d485fda8d8007e200241c8006a41086a2903002002290348857c42a0cbbf9599b5a19f0a7c85421789200241d8006a41086a2903002002290358857c854217893703c00120024188016a200241c0016a10ff0102400240200241b4016a2d000022080d00200241186a20022903c001420042adfed5e4d485fda8d8004200108405200241186a41086a29030020022903188521040c010b200241386a20022903c001420185420042adfed5e4d485fda8d8004200108405200241286a200241386a41086a290300200229033885200241b5016a31000085420042adfed5e4d485fda8d8004200108405200241286a41086a29030020022903288521040b200241086a20022903c801420020044200108405200041246a2802002209200041206a220a280200220b200241106a290300200229030885200489a7220c71220d6a280000220e200c411976220f41818284086c2210732211417f73201141fffdfb776a71418081828478712112200d41046a200b71211341042114200d2115200e2111024002400240024003402013211620120d012011201141017471418081828478710d022010200920166a2800002211732212417f73201241fffdfb776a71418081828478712112200b201620146a41046a712113201441046a2114201621150c000b0b2012417f6a201271211320152012684103766a2117200241e8006a41256a211820024194016a280200211920024190016a280200211a200228028801211b200241e8006a41cd006a2d000041ff0171211c03400240200241e8006a20094100200b2017716b41d0006c6a221241b07f6a221d41201088050d00201241506a211e201a211f201921170240201b41254f0d002018211f201b21170b02400240201e28020022204125490d002012415c6a2802002120201241586a280200211e0c010b201e41056a211e0b20172020470d00201f201e20171088050d0020082012417c6a2d0000470d002008450d03201c201d41cd006a2d000041ff0171460d030b024003402016211220130d012011201141017471418081828478710d032010200920126a2800002211732216417f73201641fffdfb776a71418081828478712113200b201220146a41046a712116201441046a2114201221150c000b0b20152013684103766a2117201221162013417f6a20137121130c000b0b200220003602bc014104211102400340200e4180818284787122160d01200d20116a2116201141046a211120092016200b71220d6a280000210e0c000b0b02402009201668410376200d6a200b7122116a2c000022164100480d0020092009280200418081828478716841037622116a2d000021160b200041286a280200211402402016410171220d450d0020140d00200241c0016a200a200241bc016a10fe012000280220220b200c712116200041246a28020021094104211103402016221420116a200b712116201141046a2111200920146a28000041808182847871220e450d000b02402009200e6841037620146a200b7122116a2c00004100480d002009280200418081828478716841037621110b200028022821140b20002014200d6b360228200920116a200f3a0000200b2011417c6a7120096a41046a200f3a00002009410020116b41d0006c6a41b07f6a200141d0001085051a2000412c6a2211201128020041016a3602000c010b201b4125490d00201a10300b200241e0016a24000bf17c1f057f017e027f017e017f017e017f017e017f017e017f017e017f017e017f017e017f017e017f017e017f017e017f017e017f017e017f017e017f017e1e7f230041d0106b22052400200541f00e6a2002200310ce0320052d00f10e210620052d00f00e2107200541900d6a200541f00e6a41027241de011085051a024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024020074101470d002005200641ff017141004722033a00094130102f22020d010c2a0b200541b00b6a200541900d6a41026a41dc011085051a200541086a410472200541b00b6a200220031070200541086a41086a22082802002109200541086a410c6a290200210a200541086a41146a2802002106200541086a41186a2802002102200541086a411c6a280200210b200541086a41206a280200210c200541086a41246a290200210d200541346a280200210e200541086a41306a290300210f200541086a41386a2802002110200541086a413c6a2902002111200541086a41c4006a2802002112200541086a41c8006a2903002113200541086a41d0006a2802002114200541dc006a2902002115200541e4006a2802002116200541e8006a2903002117200541f0006a2802002118200541f4006a2902002119200541fc006a280200211a20054180016a290300211b20054188016a280200211c2005418c016a290200211d20054194016a280200211e20054198016a290300211f200541a0016a2802002120200541a4016a2902002121200541ac016a2802002122200541b0016a2903002123200541b8016a2802002124200541bc016a2902002125200541c4016a2802002126200541c8016a2903002127200541d0016a2802002128200541d4016a28020021294100212a200528020c0e050702030401070b200241033a0000200220033a002120022001290000370001200241096a200141086a290000370000200241116a200141106a290000370000200241196a200141186a29000037000020004101360200200020023602040c270b200541d8016a2802002103200541dc016a280200212b200541e0016a28020021074102212c4102212d024020064102460d00200541900d6a41186a200141186a290000370300200541900d6a41106a200141106a290000370300200541900d6a41086a200141086a290000370300200520012900003703900d200541b00b6a41086a200b360200200520023602b40b200520063602b00b200541f00e6a200541900d6a200541b00b6a200410af0420052802f40e212d20052802f00e4101460d17200541a0056a41186a200541900f6a290300370300200541a0056a41106a200541f00e6a41186a290300370300200541a0056a41086a200541f00e6a41106a2903003703002005200541f00e6a41086a2903003703a0050b20054180056a41186a200541a0056a41186a29030037030020054180056a41106a200541a0056a41106a29030037030020054180056a41086a200541a0056a41086a290300370300200520052903a005370380050240200c4102460d00200541900d6a41186a200141186a290000370300200541900d6a41106a200141106a290000370300200541900d6a41086a200141086a290000370300200520012900003703900d2005200d3702b40b2005200c3602b00b200541f00e6a200541900d6a200541b00b6a200410af0420052802f40e212c20052802f00e4101460d18200541e0056a41186a200541900f6a290300370300200541e0056a41106a200541f00e6a41186a290300370300200541e0056a41086a200541f00e6a41106a2903003703002005200541f00e6a41086a2903003703e0050b200541c0056a41186a200541e0056a41186a290300370300200541c0056a41106a200541e0056a41106a290300370300200541c0056a41086a200541e0056a41086a290300370300200520052903e0053703c00541022106410221020240200e4102460d00200541900d6a41186a200141186a290000370300200541900d6a41106a200141106a290000370300200541900d6a41086a200141086a290000370300200520012900003703900d2005200f3702b40b2005200e3602b00b200541f00e6a200541900d6a200541b00b6a200410af0420052802f40e210220052802f00e4101460d19200541a0066a41186a200541900f6a290300370300200541a0066a41106a200541f00e6a41186a290300370300200541a0066a41086a200541f00e6a41106a2903003703002005200541f00e6a41086a2903003703a0060b20054180066a41186a200541a0066a41186a29030037030020054180066a41106a200541a0066a41106a29030037030020054180066a41086a200541a0066a41086a290300370300200520052903a00637038006024020104102460d00200541900d6a41186a200141186a290000370300200541900d6a41106a200141106a290000370300200541900d6a41086a200141086a290000370300200520012900003703900d200520113702b40b200520103602b00b200541f00e6a200541900d6a200541b00b6a200410af0420052802f40e210620052802f00e4101460d1a200541e0066a41186a200541900f6a290300370300200541e0066a41106a200541f00e6a41186a290300370300200541e0066a41086a200541f00e6a41106a2903003703002005200541f00e6a41086a2903003703e0060b200541c0066a41186a200541e0066a41186a290300370300200541c0066a41106a200541e0066a41106a290300370300200541c0066a41086a200541e0066a41086a290300370300200520052903e0063703c0064102212e4102212a024020124102460d00200541900d6a41186a200141186a290000370300200541900d6a41106a200141106a290000370300200541900d6a41086a200141086a290000370300200520012900003703900d200520133702b40b200520123602b00b200541f00e6a200541900d6a200541b00b6a200410af0420052802f40e212a20052802f00e4101460d1b200541a0076a41186a200541900f6a290300370300200541a0076a41106a200541f00e6a41186a290300370300200541a0076a41086a200541f00e6a41106a2903003703002005200541f00e6a41086a2903003703a0070b20054180076a41186a200541a0076a41186a29030037030020054180076a41106a200541a0076a41106a29030037030020054180076a41086a200541a0076a41086a290300370300200520052903a00737038007024020144102460d00200541900d6a41186a200141186a290000370300200541900d6a41106a200141106a290000370300200541900d6a41086a200141086a290000370300200520012900003703900d200520153702b40b200520143602b00b200541f00e6a200541900d6a200541b00b6a200410af0420052802f40e212e20052802f00e4101460d1c200541e0076a41186a200541900f6a290300370300200541e0076a41106a200541f00e6a41186a290300370300200541e0076a41086a200541f00e6a41106a2903003703002005200541f00e6a41086a2903003703e0070b200541c0076a41186a200541e0076a41186a290300370300200541c0076a41106a200541e0076a41106a290300370300200541c0076a41086a200541e0076a41086a290300370300200520052903e0073703c0074102210c4102210b024020164102460d00200541900d6a41186a200141186a290000370300200541900d6a41106a200141106a290000370300200541900d6a41086a200141086a290000370300200520012900003703900d200520173702b40b200520163602b00b200541f00e6a200541900d6a200541b00b6a200410af0420052802f40e210b20052802f00e4101460d1d200541a0086a41186a200541900f6a290300370300200541a0086a41106a200541f00e6a41186a290300370300200541a0086a41086a200541f00e6a41106a2903003703002005200541f00e6a41086a2903003703a0080b20054180086a41186a200541a0086a41186a29030037030020054180086a41106a200541a0086a41106a29030037030020054180086a41086a200541a0086a41086a290300370300200520052903a00837038008024020184102460d00200541900d6a41186a200141186a290000370300200541900d6a41106a200141106a290000370300200541900d6a41086a200141086a290000370300200520012900003703900d200520193702b40b200520183602b00b200541f00e6a200541900d6a200541b00b6a200410af0420052802f40e210c20052802f00e4101460d1e200541e0086a41186a200541900f6a290300370300200541e0086a41106a200541f00e6a41186a290300370300200541e0086a41086a200541f00e6a41106a2903003703002005200541f00e6a41086a2903003703e0080b200541c0086a41186a200541e0086a41186a290300370300200541c0086a41106a200541e0086a41106a290300370300200541c0086a41086a200541e0086a41086a290300370300200520052903e0083703c008410221104102210e0240201a4102460d00200541900d6a41186a200141186a290000370300200541900d6a41106a200141106a290000370300200541900d6a41086a200141086a290000370300200520012900003703900d2005201b3702b40b2005201a3602b00b200541f00e6a200541900d6a200541b00b6a200410af0420052802f40e210e20052802f00e4101460d1f200541a0096a41186a200541900f6a290300370300200541a0096a41106a200541f00e6a41186a290300370300200541a0096a41086a200541f00e6a41106a2903003703002005200541f00e6a41086a2903003703a0090b20054180096a41186a200541a0096a41186a29030037030020054180096a41106a200541a0096a41106a29030037030020054180096a41086a200541a0096a41086a290300370300200520052903a009370380090240201c4102460d00200541900d6a41186a200141186a290000370300200541900d6a41106a200141106a290000370300200541900d6a41086a200141086a290000370300200520012900003703900d2005201d3702b40b2005201c3602b00b200541f00e6a200541900d6a200541b00b6a200410af0420052802f40e211020052802f00e4101460d20200541e0096a41186a200541900f6a290300370300200541e0096a41106a200541f00e6a41186a290300370300200541e0096a41086a200541f00e6a41106a2903003703002005200541f00e6a41086a2903003703e0090b200541c0096a41186a200541e0096a41186a290300370300200541c0096a41106a200541e0096a41106a290300370300200541c0096a41086a200541e0096a41086a290300370300200520052903e0093703c00941022112410221080240201e4102460d00200541900d6a41186a200141186a290000370300200541900d6a41106a200141106a290000370300200541900d6a41086a200141086a290000370300200520012900003703900d2005201f3702b40b2005201e3602b00b200541f00e6a200541900d6a200541b00b6a200410af0420052802f40e210820052802f00e4101460d21200541a00a6a41186a200541900f6a290300370300200541a00a6a41106a200541f00e6a41186a290300370300200541a00a6a41086a200541f00e6a41106a2903003703002005200541f00e6a41086a2903003703a00a0b200541800a6a41186a200541a00a6a41186a290300370300200541800a6a41106a200541a00a6a41106a290300370300200541800a6a41086a200541a00a6a41086a290300370300200520052903a00a3703800a024020204102460d00200541900d6a41186a200141186a290000370300200541900d6a41106a200141106a290000370300200541900d6a41086a200141086a290000370300200520012900003703900d200520213702b40b200520203602b00b200541f00e6a200541900d6a200541b00b6a200410af0420052802f40e211220052802f00e4101460d22200541c00a6a41186a200541900f6a290300370300200541c00a6a41106a200541f00e6a41186a290300370300200541c00a6a41086a200541f00e6a41106a2903003703002005200541f00e6a41086a2903003703c00a0b4102211641022114024020224102460d00200541900d6a41186a200141186a290000370300200541900d6a41106a200141106a290000370300200541900d6a41086a200141086a290000370300200520012900003703900d200520233702b40b200520223602b00b200541f00e6a200541900d6a200541b00b6a200410af0420052802f40e211420052802f00e4101460d23200541e00a6a41186a200541900f6a290300370300200541e00a6a41106a200541f00e6a41186a290300370300200541e00a6a41086a200541f00e6a41106a2903003703002005200541f00e6a41086a2903003703e00a0b024020244102460d00200541900d6a41186a200141186a290000370300200541900d6a41106a200141106a290000370300200541900d6a41086a200141086a290000370300200520012900003703900d200520253702b40b200520243602b00b200541f00e6a200541900d6a200541b00b6a200410af0420052802f40e211620052802f00e4101460d24200541800b6a41186a200541900f6a290300370300200541800b6a41106a200541f00e6a41186a290300370300200541800b6a41086a200541f00e6a41106a2903003703002005200541f00e6a41086a2903003703800b0b4102211a41022118024020264102460d00200541900d6a41186a200141186a290000370300200541900d6a41106a200141106a290000370300200541900d6a41086a200141086a290000370300200520012900003703900d200520273702b40b200520263602b00b200541f00e6a200541900d6a200541b00b6a200410af0420052802f40e211820052802f00e4101460d25200541086a41186a200541900f6a290300370300200541086a41106a200541f00e6a41186a290300370300200541086a41086a200541f00e6a41106a2903003703002005200541f00e6a41086a2903003703080b024020284102460d00200541900d6a41186a200141186a290000370300200541900d6a41106a200141106a290000370300200541900d6a41086a200141086a290000370300200520012900003703900d200541a00b6a41086a2003360200200520293602a40b200520283602a00b200541f00e6a200541900d6a200541a00b6a200410af0420052802f40e211a20052802f00e4101460d26200541b00b6a41186a200541900f6a290300370300200541b00b6a41106a200541f00e6a41186a290300370300200541b00b6a41086a200541f00e6a41106a2903003703002005200541f00e6a41086a2903003703b00b0b200541e0046a41186a220120054180056a41186a290300370300200541e0046a41106a220420054180056a41106a290300370300200541e0046a41086a222920054180056a41086a290300370300200541c0046a41086a221c200541c0056a41086a290300370300200541c0046a41106a221e200541c0056a41106a290300370300200541c0046a41186a2220200541c0056a41186a290300370300200541a0046a41086a222220054180066a41086a290300370300200541a0046a41106a222420054180066a41106a290300370300200541a0046a41186a222620054180066a41186a29030037030020052005290380053703e004200520052903c0053703c00420052005290380063703a00420054180046a41186a2228200541c0066a41186a29030037030020054180046a41106a222f200541c0066a41106a29030037030020054180046a41086a2230200541c0066a41086a290300370300200541e0036a41086a223120054180076a41086a290300370300200541e0036a41106a223220054180076a41106a290300370300200541e0036a41186a223320054180076a41186a290300370300200541c0036a41086a2234200541c0076a41086a290300370300200541c0036a41106a2235200541c0076a41106a290300370300200541c0036a41186a2236200541c0076a41186a290300370300200520052903c0063703800420052005290380073703e003200520052903c0073703c003200541a0036a41186a223720054180086a41186a290300370300200541a0036a41106a223820054180086a41106a290300370300200541a0036a41086a223920054180086a41086a29030037030020054180036a41186a223a200541c0086a41186a29030037030020054180036a41106a223b200541c0086a41106a29030037030020054180036a41086a223c200541c0086a41086a290300370300200541e0026a41186a223d20054180096a41186a290300370300200541e0026a41106a223e20054180096a41106a290300370300200541e0026a41086a223f20054180096a41086a29030037030020052005290380083703a003200520052903c0083703800320052005290380093703e002200541c0026a41186a2240200541c0096a41186a290300370300200541c0026a41106a2241200541c0096a41106a290300370300200541c0026a41086a2242200541c0096a41086a290300370300200520052903c0093703c002200541a0026a41186a2243200541800a6a41186a290300370300200541a0026a41106a2244200541800a6a41106a290300370300200541a0026a41086a2245200541800a6a41086a290300370300200520052903800a3703a00241c004102f2203450d272003202d360200200320052903e0043702042003202c360224200320052903c0043702282003410c6a2029290300370200200341146a20042903003702002003411c6a2001290300370200200341306a201c290300370200200341386a201e290300370200200341c0006a2020290300370200200320023602482003200636026c200320052903a00437024c200341d4006a2022290300370200200341dc006a2024290300370200200341e4006a20262903003702002003200529038004370270200341f8006a203029030037020020034180016a202f29030037020020034188016a20282903003702002003202a360290012003202e3602b401200341ac016a2033290300370200200341a4016a20322903003702002003419c016a2031290300370200200320052903e00337029401200341d0016a2036290300370200200341c8016a2035290300370200200341c0016a2034290300370200200320052903c0033702b8012003200b3602d801200341f4016a2037290300370200200341ec016a2038290300370200200341e4016a2039290300370200200320052903a0033702dc012003200c3602fc0120034198026a203a29030037020020034190026a203b29030037020020034188026a203c2903003702002003200529038003370280022003200e3602a002200341bc026a203d290300370200200341b4026a203e290300370200200341ac026a203f290300370200200320052903e0023702a402200320103602c402200341e0026a2040290300370200200341d8026a2041290300370200200341d0026a2042290300370200200320052903c0023702c802200320083602e80220034184036a2043290300370200200341fc026a2044290300370200200341f4026a2045290300370200200320052903a0023702ec022003201236028c03200341a8036a200541c00a6a41186a290300370200200341a0036a200541c00a6a41106a29030037020020034198036a200541c00a6a41086a290300370200200320052903c00a37029003200320143602b003200341cc036a200541e00a6a41186a290300370200200341c4036a200541e00a6a41106a290300370200200341bc036a200541e00a6a41086a290300370200200320052903e00a3702b403200320163602d403200341f0036a200541800b6a41186a290300370200200341e8036a200541800b6a41106a290300370200200341e0036a200541800b6a41086a290300370200200320052903800b3702d803200320183602f80320034194046a200541086a41186a2903003702002003418c046a200541086a41106a29030037020020034184046a200541086a41086a290300370200200320052903083702fc032003201a36029c04200341b8046a200541b00b6a41186a290300370200200341b0046a200541b00b6a41106a290300370200200341a8046a200541b00b6a41086a290300370200200320052903b00b3702a0044104212a200541f00e6a4104722009200aa710ab04202b0d03410021020c040b200541f00e6a4104722009200aa710ab042002417f4c0d064101212a4101210302402002450d002002102f2203450d270b200a422088a7212d2003200620021085051a20054180026a41086a200541f00e6a41186a29030037030020054180026a41106a200541900f6a29030037030020054180026a41186a200541980f6a2903003703002005200541f00e6a41106a29030037038002200541fc0e6a280200212b200541f00e6a41086a280200212920052802f40e212c2002212e0c040b200541f00e6a4104722009200aa710ab04200541b00b6a41186a200141186a290000370300200541b00b6a41106a200141106a290000370300200541b00b6a41086a200141086a290000370300200520012900003703b00b200541800b6a41086a200b360200200520023602840b200520063602800b200541900d6a200541b00b6a200541800b6a200410af042008200541900d6a411c6a290200370300200541086a41106a2201200541900d6a41246a2802003602002005200541900d6a41146a29020037030820052802940d2103024020052802900d4101460d00200541900d6a41086a290300210d200541900d6a41106a2802002107200541e8016a41106a2001280200360200200541e8016a41086a200541086a41086a29030037030020054180026a41086a200541f00e6a41186a29030037030020054180026a41106a200541900f6a29030037030020054180026a41186a200541980f6a290300370300200520052903083703e8012005200541f00e6a41106a29030037038002200d422088a7212e200a422088a7212d200541f00e6a41086a2802002129200541fc0e6a280200212b20052802f40e212c200da721024102212a0c040b200041013602002000200336020420052802f40e4125490d24200541fc0e6a28020010300c240b4102210741022103024020094102460d00200541900d6a41186a200141186a290000370300200541900d6a41106a200141106a290000370300200541900d6a41086a200141086a290000370300200520012900003703900d2005200a3702b40b200520093602b00b200541f00e6a200541900d6a200541b00b6a200410af0420052802f40e210320052802f00e4101460d04200541a0056a41186a200541900f6a290300370300200541a0056a41106a200541f00e6a41186a290300370300200541a0056a41086a200541f00e6a41106a2903003703002005200541f00e6a41086a2903003703a0050b20054180056a41186a200541a0056a41186a29030037030020054180056a41106a200541a0056a41106a29030037030020054180056a41086a200541a0056a41086a290300370300200520052903a00537038005024020064102460d00200541900d6a41186a200141186a290000370300200541900d6a41106a200141106a290000370300200541900d6a41086a200141086a290000370300200520012900003703900d200541b00b6a41086a200b360200200520023602b40b200520063602b00b200541f00e6a200541900d6a200541b00b6a200410af0420052802f40e210720052802f00e4101460d06200541e0056a41186a200541900f6a290300370300200541e0056a41106a200541f00e6a41186a290300370300200541e0056a41086a200541f00e6a41106a2903003703002005200541f00e6a41086a2903003703e0050b200541c0056a41186a200541e0056a41186a290300370300200541c0056a41106a200541e0056a41106a290300370300200541c0056a41086a200541e0056a41086a290300370300200520052903e0053703c00541022106410221020240200c4102460d00200541900d6a41186a200141186a290000370300200541900d6a41106a200141106a290000370300200541900d6a41086a200141086a290000370300200520012900003703900d2005200d3702b40b2005200c3602b00b200541f00e6a200541900d6a200541b00b6a200410af0420052802f40e210220052802f00e4101460d07200541a0066a41186a200541900f6a290300370300200541a0066a41106a200541f00e6a41186a290300370300200541a0066a41086a200541f00e6a41106a2903003703002005200541f00e6a41086a2903003703a0060b20054180066a41186a200541a0066a41186a29030037030020054180066a41106a200541a0066a41106a29030037030020054180066a41086a200541a0066a41086a290300370300200520052903a006370380060240200e4102460d00200541900d6a41186a200141186a290000370300200541900d6a41106a200141106a290000370300200541900d6a41086a200141086a290000370300200520012900003703900d2005200f3702b40b2005200e3602b00b200541f00e6a200541900d6a200541b00b6a200410af0420052802f40e210620052802f00e4101460d08200541e0066a41186a200541900f6a290300370300200541e0066a41106a200541f00e6a41186a290300370300200541e0066a41086a200541f00e6a41106a2903003703002005200541f00e6a41086a2903003703e0060b200541c0066a41186a200541e0066a41186a290300370300200541c0066a41106a200541e0066a41106a290300370300200541c0066a41086a200541e0066a41086a290300370300200520052903e0063703c0064102212a4102212c024020104102460d00200541900d6a41186a200141186a290000370300200541900d6a41106a200141106a290000370300200541900d6a41086a200141086a290000370300200520012900003703900d200520113702b40b200520103602b00b200541f00e6a200541900d6a200541b00b6a200410af0420052802f40e212c20052802f00e4101460d09200541a0076a41186a200541900f6a290300370300200541a0076a41106a200541f00e6a41186a290300370300200541a0076a41086a200541f00e6a41106a2903003703002005200541f00e6a41086a2903003703a0070b20054180076a41186a200541a0076a41186a29030037030020054180076a41106a200541a0076a41106a29030037030020054180076a41086a200541a0076a41086a290300370300200520052903a00737038007024020124102460d00200541900d6a41186a200141186a290000370300200541900d6a41106a200141106a290000370300200541900d6a41086a200141086a290000370300200520012900003703900d200520133702b40b200520123602b00b200541f00e6a200541900d6a200541b00b6a200410af0420052802f40e212a20052802f00e4101460d0a200541e0076a41186a200541900f6a290300370300200541e0076a41106a200541f00e6a41186a290300370300200541e0076a41086a200541f00e6a41106a2903003703002005200541f00e6a41086a2903003703e0070b200541c0076a41186a200541e0076a41186a290300370300200541c0076a41106a200541e0076a41106a290300370300200541c0076a41086a200541e0076a41086a290300370300200520052903e0073703c0074102212e4102212b024020144102460d00200541900d6a41186a200141186a290000370300200541900d6a41106a200141106a290000370300200541900d6a41086a200141086a290000370300200520012900003703900d200520153702b40b200520143602b00b200541f00e6a200541900d6a200541b00b6a200410af0420052802f40e212b20052802f00e4101460d0b200541a0086a41186a200541900f6a290300370300200541a0086a41106a200541f00e6a41186a290300370300200541a0086a41086a200541f00e6a41106a2903003703002005200541f00e6a41086a2903003703a0080b20054180086a41186a200541a0086a41186a29030037030020054180086a41106a200541a0086a41106a29030037030020054180086a41086a200541a0086a41086a290300370300200520052903a00837038008024020164102460d00200541900d6a41186a200141186a290000370300200541900d6a41106a200141106a290000370300200541900d6a41086a200141086a290000370300200520012900003703900d200520173702b40b200520163602b00b200541f00e6a200541900d6a200541b00b6a200410af0420052802f40e212e20052802f00e4101460d0c200541e0086a41186a200541900f6a290300370300200541e0086a41106a200541f00e6a41186a290300370300200541e0086a41086a200541f00e6a41106a2903003703002005200541f00e6a41086a2903003703e0080b200541c0086a41186a200541e0086a41186a290300370300200541c0086a41106a200541e0086a41106a290300370300200541c0086a41086a200541e0086a41086a290300370300200520052903e0083703c0084102210b41022109024020184102460d00200541900d6a41186a200141186a290000370300200541900d6a41106a200141106a290000370300200541900d6a41086a200141086a290000370300200520012900003703900d200520193702b40b200520183602b00b200541f00e6a200541900d6a200541b00b6a200410af0420052802f40e210920052802f00e4101460d0d200541a0096a41186a200541900f6a290300370300200541a0096a41106a200541f00e6a41186a290300370300200541a0096a41086a200541f00e6a41106a2903003703002005200541f00e6a41086a2903003703a0090b20054180096a41186a200541a0096a41186a29030037030020054180096a41106a200541a0096a41106a29030037030020054180096a41086a200541a0096a41086a290300370300200520052903a009370380090240201a4102460d00200541900d6a41186a200141186a290000370300200541900d6a41106a200141106a290000370300200541900d6a41086a200141086a290000370300200520012900003703900d2005201b3702b40b2005201a3602b00b200541f00e6a200541900d6a200541b00b6a200410af0420052802f40e210b20052802f00e4101460d0e200541e0096a41186a200541900f6a290300370300200541e0096a41106a200541f00e6a41186a290300370300200541e0096a41086a200541f00e6a41106a2903003703002005200541f00e6a41086a2903003703e0090b200541c0096a41186a200541e0096a41186a290300370300200541c0096a41106a200541e0096a41106a290300370300200541c0096a41086a200541e0096a41086a290300370300200520052903e0093703c0094102210e4102210c0240201c4102460d00200541900d6a41186a200141186a290000370300200541900d6a41106a200141106a290000370300200541900d6a41086a200141086a290000370300200520012900003703900d2005201d3702b40b2005201c3602b00b200541f00e6a200541900d6a200541b00b6a200410af0420052802f40e210c20052802f00e4101460d0f200541a00a6a41186a200541900f6a290300370300200541a00a6a41106a200541f00e6a41186a290300370300200541a00a6a41086a200541f00e6a41106a2903003703002005200541f00e6a41086a2903003703a00a0b200541800a6a41186a200541a00a6a41186a290300370300200541800a6a41106a200541a00a6a41106a290300370300200541800a6a41086a200541a00a6a41086a290300370300200520052903a00a3703800a0240201e4102460d00200541900d6a41186a200141186a290000370300200541900d6a41106a200141106a290000370300200541900d6a41086a200141086a290000370300200520012900003703900d2005201f3702b40b2005201e3602b00b200541f00e6a200541900d6a200541b00b6a200410af0420052802f40e210e20052802f00e4101460d10200541c00a6a41186a200541900f6a290300370300200541c00a6a41106a200541f00e6a41186a290300370300200541c00a6a41086a200541f00e6a41106a2903003703002005200541f00e6a41086a2903003703c00a0b4102210841022110024020204102460d00200541900d6a41186a200141186a290000370300200541900d6a41106a200141106a290000370300200541900d6a41086a200141086a290000370300200520012900003703900d200520213702b40b200520203602b00b200541f00e6a200541900d6a200541b00b6a200410af0420052802f40e211020052802f00e4101460d11200541e00a6a41186a200541900f6a290300370300200541e00a6a41106a200541f00e6a41186a290300370300200541e00a6a41086a200541f00e6a41106a2903003703002005200541f00e6a41086a2903003703e00a0b024020224102460d00200541900d6a41186a200141186a290000370300200541900d6a41106a200141106a290000370300200541900d6a41086a200141086a290000370300200520012900003703900d200520233702b40b200520223602b00b200541f00e6a200541900d6a200541b00b6a200410af0420052802f40e210820052802f00e4101460d12200541800b6a41186a200541900f6a290300370300200541800b6a41106a200541f00e6a41186a290300370300200541800b6a41086a200541f00e6a41106a2903003703002005200541f00e6a41086a2903003703800b0b4102211441022112024020244102460d00200541900d6a41186a200141186a290000370300200541900d6a41106a200141106a290000370300200541900d6a41086a200141086a290000370300200520012900003703900d200520253702b40b200520243602b00b200541f00e6a200541900d6a200541b00b6a200410af0420052802f40e211220052802f00e4101460d13200541086a41186a200541900f6a290300370300200541086a41106a200541f00e6a41186a290300370300200541086a41086a200541f00e6a41106a2903003703002005200541f00e6a41086a2903003703080b0240024020264102460d00200541900d6a41186a200141186a290000370300200541900d6a41106a200141106a290000370300200541900d6a41086a200141086a290000370300200520012900003703900d200520273702a40b200520263602a00b200541f00e6a200541900d6a200541a00b6a200410af0420052802f40e211420052802f00e4101460d01200541b00b6a41186a200541900f6a290300370300200541b00b6a41106a200541f00e6a41186a290300370300200541b00b6a41086a200541f00e6a41106a2903003703002005200541f00e6a41086a2903003703b00b0b200541e0046a41186a220120054180056a41186a290300370300200541e0046a41106a220420054180056a41106a290300370300200541e0046a41086a221620054180056a41086a290300370300200541c0046a41086a2218200541c0056a41086a290300370300200541c0046a41106a221a200541c0056a41106a290300370300200541c0046a41186a221c200541c0056a41186a290300370300200541a0046a41086a221e20054180066a41086a290300370300200541a0046a41106a222020054180066a41106a290300370300200541a0046a41186a222220054180066a41186a29030037030020052005290380053703e004200520052903c0053703c00420052005290380063703a00420054180046a41186a2224200541c0066a41186a29030037030020054180046a41106a2226200541c0066a41106a29030037030020054180046a41086a222f200541c0066a41086a290300370300200541e0036a41086a223020054180076a41086a290300370300200541e0036a41106a223120054180076a41106a290300370300200541e0036a41186a223220054180076a41186a290300370300200541c0036a41086a2233200541c0076a41086a290300370300200541c0036a41106a2234200541c0076a41106a290300370300200541c0036a41186a2235200541c0076a41186a290300370300200520052903c0063703800420052005290380073703e003200520052903c0073703c003200541a0036a41186a223620054180086a41186a290300370300200541a0036a41106a223720054180086a41106a290300370300200541a0036a41086a223820054180086a41086a29030037030020054180036a41186a2239200541c0086a41186a29030037030020054180036a41106a223a200541c0086a41106a29030037030020054180036a41086a223b200541c0086a41086a290300370300200541e0026a41186a223c20054180096a41186a290300370300200541e0026a41106a223d20054180096a41106a290300370300200541e0026a41086a223e20054180096a41086a29030037030020052005290380083703a003200520052903c0083703800320052005290380093703e002200541c0026a41186a223f200541c0096a41186a290300370300200541c0026a41106a2240200541c0096a41106a290300370300200541c0026a41086a2241200541c0096a41086a290300370300200520052903c0093703c002200541a0026a41186a2242200541800a6a41186a290300370300200541a0026a41106a2243200541800a6a41106a290300370300200541a0026a41086a2244200541800a6a41086a290300370300200520052903800a3703a00241c004102f222d450d25202d2003360200202d20052903e004370204202d2007360224202d20052903c004370228202d410c6a2016290300370200202d41146a2004290300370200202d411c6a2001290300370200202d41306a2018290300370200202d41386a201a290300370200202d41c0006a201c290300370200202d2002360248202d200636026c202d20052903a00437024c202d41d4006a201e290300370200202d41dc006a2020290300370200202d41e4006a2022290300370200202d200529038004370270202d41f8006a202f290300370200202d4180016a2026290300370200202d4188016a2024290300370200202d202c36029001202d202a3602b401202d41ac016a2032290300370200202d41a4016a2031290300370200202d419c016a2030290300370200202d20052903e00337029401202d41d0016a2035290300370200202d41c8016a2034290300370200202d41c0016a2033290300370200202d20052903c0033702b801202d202b3602d801202d41f4016a2036290300370200202d41ec016a2037290300370200202d41e4016a2038290300370200202d20052903a0033702dc01202d202e3602fc01202d4198026a2039290300370200202d4190026a203a290300370200202d4188026a203b290300370200202d20052903800337028002202d20093602a002202d41bc026a203c290300370200202d41b4026a203d290300370200202d41ac026a203e290300370200202d20052903e0023702a402202d200b3602c402202d41e0026a203f290300370200202d41d8026a2040290300370200202d41d0026a2041290300370200202d20052903c0023702c802202d200c3602e802202d4184036a2042290300370200202d41fc026a2043290300370200202d41f4026a2044290300370200202d20052903a0023702ec02202d200e36028c03202d41a8036a200541c00a6a41186a290300370200202d41a0036a200541c00a6a41106a290300370200202d4198036a200541c00a6a41086a290300370200202d20052903c00a37029003202d20103602b003202d41cc036a200541e00a6a41186a290300370200202d41c4036a200541e00a6a41106a290300370200202d41bc036a200541e00a6a41086a290300370200202d20052903e00a3702b403202d20083602d403202d41f0036a200541800b6a41186a290300370200202d41e8036a200541800b6a41106a290300370200202d41e0036a200541800b6a41086a290300370200202d20052903800b3702d803202d20123602f803202d4194046a200541086a41186a290300370200202d418c046a200541086a41106a290300370200202d4184046a200541086a41086a290300370200202d20052903083702fc03202d201436029c04202d41b8046a200541b00b6a41186a290300370200202d41b0046a200541b00b6a41106a290300370200202d41a8046a200541b00b6a41086a290300370200202d20052903b00b3702a0044103212a024020280d004100212c2029212b0c040b2029417f4c0d050240024020290d004101212c0c010b2029102f222c450d260b202c202820291085051a2029212b0c030b20004101360200200020143602040c230b2007417f4c0d030240024020070d00410121020c010b2007102f2202450d240b2002202b20071085051a0b200a422088a7212d20054180026a41086a200541f00e6a41186a29030037030020054180026a41106a200541900f6a29030037030020054180026a41186a200541980f6a2903003703002005200541f00e6a41106a29030037038002200541f00e6a410c6a280200212b200541f00e6a41086a280200212920052802f40e212c2007212e0b2000202a360204200041186a200529038002370200200041c8006a20052903e801370200200041c4006a2007360200200041386a2003360200200041146a202b360200200041106a20293602002000410c6a202c360200200041086a202d360200200041306a20054180026a41186a290300370200200041286a20054180026a41106a290300370200200041206a20054180026a41086a290300370200200041d0006a200541e8016a41086a290300370200200041d8006a200541e8016a41106a2802003602002000413c6a202ead4220862002ad84370200200041003602000c200b20004101360200200020033602040c1f0b102c000b20004101360200200020073602040c1d0b20004101360200200020023602040c1c0b20004101360200200020063602040c1b0b200041013602002000202c3602040c1a0b200041013602002000202a3602040c190b200041013602002000202b3602040c180b200041013602002000202e3602040c170b20004101360200200020093602040c160b200041013602002000200b3602040c150b200041013602002000200c3602040c140b200041013602002000200e3602040c130b20004101360200200020103602040c120b20004101360200200020083602040c110b20004101360200200020123602040c100b200041013602002000202d3602040c0f0b200041013602002000202c3602040c0e0b20004101360200200020023602040c0d0b20004101360200200020063602040c0c0b200041013602002000202a3602040c0b0b200041013602002000202e3602040c0a0b200041013602002000200b3602040c090b200041013602002000200c3602040c080b200041013602002000200e3602040c070b20004101360200200020103602040c060b20004101360200200020083602040c050b20004101360200200020123602040c040b20004101360200200020143602040c030b20004101360200200020163602040c020b20004101360200200020183602040c010b200041013602002000201a3602040b200541d0106a24000f0b102a000b810601067f230041e0006b22032400024002400240024002400240024002400240200141046a2802002204410174200141086a28020022056b20024b0d00200420054101762202490d02200041046a200128020020026a200420026b10ab04200020054101713602000c010b20054101762106200520026a22074101762108024020074101710d0020082006490d0320042008490d04200128020020066a210202400240200820066b220141244b0d00200041096a200220011085051a410021020c010b2001417f4c0d062001102f2204450d072004200220011085052102200041106a20013602002000410c6a2002360200410121020b2000200136020420002005410171360200200041086a20023a00000c010b200841016a22072006490d06200820044f0d07200128020020066a210402400240200720066b220141244b0d00200341096a200420011085051a410021040c010b2001417f4c0d052001102f2206450d062006200420011085052104200320013600102003200436000c410121040b200341306a41086a20043a0000200341396a2003290009370000200341c1006a200341096a41086a290000370000200341c9006a200341096a41106a290000370000200341d1006a200341216a290000370000200341d8006a200341286a2900003700002003200136023420032005410171360230200341306a200241017110f90402400240200328023422014125490d00200341306a41106a220528020021010c010b200341306a41047221050b02402001450d0020052001417f6a3602000b20002003290330370200200041286a200341306a41286a290300370200200041206a200341306a41206a290300370200200041186a200341306a41186a290300370200200041106a200341306a41106a290300370200200041086a200341306a41086a2903003702000b200341e0006a24000f0b2002200441f098c200104a000b20062008418099c2001048000b20082004418099c2001042000b102c000b102a000b20062007419099c2001048000b20072004419099c2001042000bfd0601047f230041f0026b22042400200241086a280200210520022802042106024002400240024002400240024020022802004101470d00200441d0016a41186a200141186a290000370300200441d0016a41106a200141106a290000370300200441d0016a41086a200141086a290000370300200420012900003703d001200441f0016a200441d0016a20062005200310ad0420042802f401210120042802f0012102200441f8006a200441f0016a41086a41d4001085051a20024101460d05200441246a200441f8006a41d4001085051a200441f8016a200441246a41d4001085051a41002105200441003a00f001200420013602f4012003200441f0016a10b30121020c010b0240024020054120460d002005417f4c0d040240024020050d00410121020c010b2005102f2202450d060b20022006200510850521064130102f2202450d05200241043a00002002200536002c200220053600282002200636002420022001290000370001200241096a200141086a290000370000200241116a200141106a290000370000200241196a200141186a2900003700000c010b200441246a41026a200641026a2d00003a0000200441f8016a2006410f6a29000037030020044180026a200641176a29000037030020044188026a2006411f6a2d00003a0000200420062f00003b0124200420062900073703f001200628000321020b200441d0016a41026a2201200441246a41026a2d00003a0000200441f8006a41086a2206200441f0016a41086a290300370300200441f8006a41106a2203200441f0016a41106a290300370300200441f8006a41186a2207200441f0016a41186a2d00003a0000200420042f01243b01d001200420042903f00137037820054120470d01200441206a41026a20012d00003a0000200441086a2006290300370300200441106a2003290300370300200441186a20072d00003a0000200420042f01d0013b012020042004290378370300410121050b200020053a0004200041003602002000410c6a2004290300370200200041056a20042f01203b0000200041086a2002360200200041246a200441186a2802003602002000411c6a200441106a290300370200200041146a200441086a290300370200200041076a200441226a2d00003a00000c040b20004101360200200020023602040c030b102c000b102a000b20004101360200200020013602040b200441f0026a24000bb00e03027f017e047f23004190066b220524000240024002400240024002400240024002400240024002400240024002400240024020022d00004101470d0020054180036a200241196a290000370300200541f8026a200241116a290000370300200541f0026a200241096a290000370300200520022900013703e8022003280208220641017621020240024020064101710d00200328020422062002490d04200541003a00f003200520023602ec03200520032802003602e8030c010b200328020422062002490d04200220064f0d052005200328020022063602e803200520023602ec03200541f1036a200620026a2d000041f001713a0000200541013a00f0030b2001200541e8026a200541e8036a10a9042207422088a721022007a70d070240200141c8006a220828020022062006417f6a2209200141c0006a220a28020022062001413c6a220b2802006b716b4101470d00200b10b2012008280200417f6a2109200a28020021060b200a2009200641016a71360200200141c4006a28020020064102746a2002360200200141386a280200220620024d0d062001280230200241fc006c6a22022d0000210620022f00012109200241036a2d0000210a2005200241046a220841f8001085051a20084100360200200241003a00002009200a4110747221090c010b200241046a28020021020240200141c8006a220828020022062006417f6a2209200141c0006a220a28020022062001413c6a220b2802006b716b4101470d00200b10b2012008280200417f6a2109200a28020021060b200a2009200641016a71360200200141c4006a28020020064102746a2002360200200141386a280200220620024d0d042001280230200241fc006c6a22022d0000210620022f00012109200241036a2d0000210a2005200241046a220841f8001085051a20084100360200200241003a00002009200a4110747221090b200541f0016a200541f8001085051a024002400240024002400240200641ff01714101470d00200328020821062003280204210a20032802002108200541b8056a20054190026a41d8001085051a200541e8026a2001200541b8056a2003200410b10420052802ec02210220052802e8022103200541e0046a200541f0026a41d8001085051a20034101460d0520020e03020401020b200541b8056a200541d8001085051a200541e8026a2001200541b8056a2003200410b10420052802ec02210220052802e8022103200541e0046a200541f0026a41d8001085051a20034101460d0441022103024020020e03000313000b200541e8036a200541e0046a41d8001085051a0c110b200641017621020240024020064101710d00200a2002490d0c410021030c010b200a2002490d0c2002200a4f0d0d200820026a2d00004170712106410121030b20054188036a2008200210ab04200541b5036a20063a0000200541b4036a20033a0000200541f3026a200541086a290000370000200541fb026a200541106a29000037000020054180036a200541156a290000370000200520052900003700eb02200520093b01e802200520094110763a00ea022001200541e8026a10ac04410221030c110b20054180036a200541156a290000370000200541fb026a200541106a290000370000200541f3026a200541086a290000370000200520052900003700eb02200641017621020240024020064101710d00200a2002490d0e410021030c010b200a2002490d0e2002200a4f0d0f200820026a2d00004170712106410121030b20054188036a2008200210ab04200541b5036a20063a0000200541b4036a20033a0000200520093b01e802200520094110763a00ea022001200541e8026a10ac04200541e8036a200541e0046a41d8001085051a0c0f0b200541e8036a200541e0046a41d8001085051a41002104410021030c0f0b200541e8026a41156a200541156a290000370000200541e8026a41106a200541106a290000370300200541e8026a41086a200541086a290000370300200520052900003703e80220054188036a200541e0046a41d8001085051a200541e8036a200541e8026a41f8001085051a41012103410021040c0e0b20004101360200200020023602040c0e0b2002200641a099c2001042000b2002200641b099c2001042000b2002200641c099c2001033000b2002200641acf0c1001033000b2002200641acf0c1001033000b20004101360200200020023602040c080b2002200a41a099c2001042000b2002200a41b099c2001042000b2002200a41c099c2001033000b2002200a41a099c2001042000b2002200a41b099c2001042000b2002200a41c099c2001033000b41002103410121040b200541f8006a200541e8036a41f8001085051a41022102024020034102460d00200520032009410874723602e802200541e8026a410472200541f8006a41f8001085051a20044101712102200141306a200541e8026a10b30121060b2000200636020420004100360200200041086a20023a00000b20054190066a24000b853305067f017e027f017e0b7f230041a0036b22052400200241146a2106200328020422074101742108200328020821092003280200210a2002413c6a290200210b200241386a280200210c200241346a280200210d2002410c6a290200210e200241086a280200210f200228020421104102211102400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024020022802000e052207000102220b200541a8016a41086a200e370300200541a8016a41106a2006290200370300200541a8016a41186a200641086a290200370300200541c8016a200641106a290200370300200541d0016a200641186a290200370300200520103602a8012005200f3602ac01200e422088a7211202400240200f4125490d0020052802b8012113201221140c010b200541b1016a2114200f21130b410021150240200820096b2211201341017420106b2216201620114b1b2217450d000340201020156a2208410176221120134f0d15200920156a2218410176221920074f0d16201420116a2d00002211410f71201141f0017141047620084101711b200a20196a2d00002211410f71201141047620184101711b470d012017201541016a2215470d000b201721150b200241c4006a210220152016470d07200541d8016a41086a200341086a22152802003602002015200920166a360200200520032902003703d801200541e8016a41086a200b370300200541e8016a41106a200229020037030020054180026a200241086a29020037030020054188026a200241106a2802003602002005200c3602ec012005200d3602e801200541c8026a2001200541e8016a2003200410b00420052802cc02210c20052802c8024101460d10200541c8026a41086a2d0000220241ff01714102460d0f4101211120024101710d08200541186a41186a200641186a290200370300200541186a41106a200641106a290200370300200541186a41086a200641086a29020037030020052006290200370318410221154100210d0c210b20082009470d03200f0d0141012111410321154100210f0c200b20082009470d03200c0d01200541186a41186a200641186a290200370300200541186a41106a200641106a290200370300200541186a41086a200641086a2902003703002005200629020037031841012111410421154100210c0c1f0b024020042802002202450d00200441046a280200450d00200210300b2004200e3702042004200f36020041002111200541c8026a41086a4100360200200520103602cc02200541033602c80220054188016a41086a200341086a2802003602002005200329020037038801200541e8016a2001200541c8026a20054188016a10b204200541a8016a41086a220220054188026a290300370300200541a8016a41106a220920054190026a290300370300200541a8016a41186a220720054198026a290300370300200541386a41086a220a200541b8026a290300370300200541386a41106a2203200541c0026a2802003602002005200541e8016a41186a2903003703a8012005200541b0026a29030037033820052802ec012115024020052802e8014101460d00200541e8016a41086a2802002110200541f4016a280200210f200541e8016a41106a290300210e200541a0026a280200210d200541a4026a280200210c200541a8026a290300210b200541186a41186a2007290300370300200541186a41106a2009290300370300200541186a41086a2002290300370300200541086a200a290300370300200541106a2003280200360200200520052903a801370318200520052903383703000c1f0b200041013602000c1a0b024020042802002202450d00200441046a280200450d00200210300b2004200b3702042004200c36020041002111200541c8026a41386a4100360200200541fc026a200d360200200541c8026a410c6a200e370200200541c8026a41086a200f360200200541f4026a200641186a290200370200200541ec026a200641106a290200370200200541e4026a200641086a290200370200200541dc026a2006290200370200200520103602cc02200541043602c80220054188016a41086a200341086a2802003602002005200329020037038801200541e8016a2001200541c8026a20054188016a10b204200541a8016a41086a220220054188026a290300370300200541a8016a41106a220920054190026a290300370300200541a8016a41186a220720054198026a290300370300200541386a41086a220a200541b8026a290300370300200541386a41106a2203200541c0026a2802003602002005200541e8016a41186a2903003703a8012005200541b0026a29030037033820052802ec012115024020052802e8014101460d00200541e8016a41086a2802002110200541e8016a410c6a280200210f200541e8016a41106a290300210e200541e8016a41386a280200210d200541a4026a280200210c200541a8026a290300210b200541186a41186a2007290300370300200541186a41106a2009290300370300200541186a41086a2002290300370300200541086a200a290300370300200541106a2003280200360200200520052903a801370318200520052903383703000c1e0b200041013602000c190b410121112009410176220220074f0d102010200a20026a2d00002202410f71200241047620094101711b220741246c6a22022d00002109200241023a000041032115024020094102470d000c1d0b200541c7016a220a200241206a280000360000200541c0016a2206200241196a290000370300200541b8016a2211200241116a290000370300200541a8016a41086a2208200241096a290000370300200520022900013703a801200541d8016a41086a200341086a221928020022183602002019201841016a360200200520032902003703d801200541e8016a41196a2006290300370000200541e8016a41206a200a280000360000200520093a00e801200541e8016a41096a2008290300370000200541e8016a41116a2011290300370000200520052903a8013700e901200541c8026a2001200541e8016a2003200410b00420052802cc02210920052802c8024101460d0d200541c8026a41086a2d0000220a41ff01714102470d11200541c8026a410c6a200e370200200541c8026a41086a200f360200200520103602cc02200541033602c802200541f0006a41086a200541d8016a41086a280200360200200520052903d801370370200541e8016a2001200541c8026a200541f0006a10b204200541386a41086a220220054188026a290300370300200541386a41106a220920054190026a290300370300200541386a41186a220720054198026a29030037030020054188016a41086a220a200541b8026a29030037030020054188016a41106a2203200541c0026a2802003602002005200541e8016a41186a2903003703382005200541b0026a2903003703880120052802ec01211520052802e8014101460d08200541e8016a41086a2802002110200541e8016a410c6a280200210f200541e8016a41106a290300210e200541a0026a280200210d200541a4026a280200210c200541a8026a290300210b200541186a41186a2007290300370300200541186a41106a2009290300370300200541186a41086a2002290300370300200541086a200a290300370300200541106a20032802003602002005200529033837031820052005290388013703000c040b200541a8016a41086a200e370300200541a8016a41106a2006290200370300200541a8016a41186a200641086a290200370300200541c8016a200641106a290200370300200541d0016a200641186a290200370300200520103602a8012005200f3602ac01200e422088a7211202400240200f4125490d0020052802b8012118201221130c010b200541b1016a2113200f21180b410021020240200820096b2216201841017420106b2217201720164b1b2214450d000340201020026a2211410176221520184f0d13200920026a2219410176220820074f0d14201320156a2d00002215410f71201541f0017141047620114101711b200a20086a2d00002215410f71201541047620194101711b470d012014200241016a2202470d000b201421020b02400240024020022017470d0020172016460d010b200220174f0d01200541186a41186a200641186a290200370300200541186a41106a200641106a290200370300200541186a41086a200641086a2902003703002005200629020037031841042115410121110c1d0b200c450d09024020042802002202450d00200441046a280200450d00200210300b2004200b3702042004200c360200200541f4026a200541a8016a41286a290300370200200541ec026a200541a8016a41206a290300370200200541e4026a200541a8016a41186a290300370200200541dc026a200541a8016a41106a290300370200200541c8026a410c6a200541a8016a41086a29030037020041002111200541c8026a41386a4100360200200541fc026a200d360200200520052903a8013702cc02200541043602c802200541386a41086a200341086a28020036020020052003290200370338200541e8016a2001200541c8026a200541386a10b20420052802ec01211520052802e8014101460d07200541186a41086a200541e8016a41206a290300370300200541186a41106a200541e8016a41286a290300370300200541186a41186a20054198026a290300370300200541086a200541b8026a290300370300200541106a200541c0026a2802003602002005200541e8016a41186a2903003703182005200541b0026a290300370300200541e8016a41086a2802002110200541e8016a410c6a280200210f200541e8016a41106a290300210e200541e8016a41386a280200210d200541a4026a280200210c200541a8026a290300210b0c1c0b200920026a2211410176220920074f0d1341042115200d200a20096a2d00002209410f71200941047620114101711b220a41246c6a22092d00002107200941023a0000024020074102470d00200541186a41186a200641186a290200370300200541186a41106a200641106a290200370300200541186a41086a200641086a29020037030020052006290200370318410121110c1c0b200541d7006a2215200941206a280000360000200541d0006a2211200941196a290000370300200541c8006a2208200941116a290000370300200541386a41086a2219200941096a29000037030020052009290001370338200541e0006a41086a200341086a221828020022133602002018200220136a41016a36020020052003290200370360200541e8016a41196a2011290300370000200541e8016a41206a2015280000360000200520073a00e801200541e8016a41096a2019290300370000200541e8016a41116a2008290300370000200520052903383700e901200541c8026a2001200541e8016a2003200410b00420052802cc02210220052802c80222154101460d05200541c8026a41086a2d0000220741ff01714102470d14200541f4026a200541a8016a41286a290300370200200541ec026a200541a8016a41206a290300370200200541e4026a200541a8016a41186a290300370200200541dc026a200541a8016a41106a290300370200200541c8026a410c6a200541a8016a41086a290300370200200541c8026a413c6a200b370200200541c8026a41386a200c360200200541fc026a200d360200200520052903a8013702cc02200541043602c802200541d8016a41086a200541e0006a41086a280200360200200520052903603703d801200541e8016a2001200541c8026a200541d8016a10b20420054188016a41086a2202200541e8016a41206a29030037030020054188016a41106a2209200541e8016a41286a29030037030020054188016a41186a220720054198026a290300370300200541f0006a41086a220a200541b8026a290300370300200541f0006a41106a2203200541c0026a2802003602002005200541e8016a41186a290300370388012005200541b0026a29030037037020052802ec01211520052802e8014101460d0b200541e8016a41086a2802002110200541e8016a410c6a280200210f200541e8016a41106a290300210e200541e8016a41386a280200210d200541e8016a413c6a280200210c200541a8026a290300210b200541186a41186a2007290300370300200541186a41106a2009290300370300200541186a41086a2002290300370300200541086a200a290300370300200541106a20032802003602002005200529038801370318200520052903703703000c030b200541e8016a41086a200e370300200541e8016a41106a2006290200370300200541e8016a41186a200641086a29020037030020054188026a200641106a29020037030020054190026a200641186a290200370300200520103602e8012005200f3602ec01200e422088a7211702400240200f4125490d0020052802f8012118201721140c010b200541f1016a2114200f21180b201841017420106b200820096b2213470d18410021022013450d170340201020026a2203410176221520184f0d15200920026a2219410176220820074f0d16201420156a2d00002215410f71201541f0017141047620034101711b200a20086a2d00002215410f71201541047620194101711b470d182013200241016a2202470d000c1a0b0b200541186a41186a200641186a290200370300200541186a41106a200641106a290200370300200541186a41086a200641086a290200370300200541086a200241086a290200370300200541106a200241106a280200360200200520062902003703182005200229020037030041022115410121110c190b200541f4026a200541a8016a41286a290300370200200541ec026a200541a8016a41206a290300370200200541e4026a200541a8016a41186a290300370200200541dc026a200541a8016a41106a290300370200200541c8026a410c6a200541a8016a41086a290300370200200541c8026a41386a200c360200200541fc026a4100360200200520052903a8013702cc02200541023602c802200541f0006a41086a200541d8016a41086a280200360200200520052903d801370370200541e8016a2001200541c8026a200541f0006a10b204200541386a41086a2202200541e8016a41206a290300370300200541386a41106a2209200541e8016a41286a290300370300200541386a41186a220720054198026a29030037030020054188016a41086a220a200541b8026a29030037030020054188016a41106a2203200541c0026a2802003602002005200541e8016a41186a2903003703382005200541b0026a2903003703880120052802ec01211520052802e8014101460d01200541e8016a41086a2802002110200541e8016a410c6a280200210f200541e8016a41106a290300210e200541e8016a41386a280200210d200541a4026a280200210c200541a8026a290300210b200541186a41186a2007290300370300200541186a41106a2009290300370300200541186a41086a2002290300370300200541086a200a290300370300200541106a20032802003602002005200529033837031820052005290388013703000b410021110c170b200041013602000c120b2000410136020020002002360204024020154101470d00200c450d00200ba7450d00200c10300b200d1030200f4125490d16201210300c160b200041013602000c100b200041013602000c0f0b200541186a41186a200641186a290200370300200541186a41106a200641106a290200370300200541186a41086a200641086a290200370300200520062902003703184100210c41042115410121110c120b0240200f4125490d00201210300b410221110c110b200041013602002000200c360204200f4125490d11201210300c110b200041013602000c0b0b20004101360200200020093602040240200f450d00200ea7450d00200f10300b201010300c0f0b2011201341e098c2001033000b2019200741e098c2001033000b2002200741e098c2001033000b200241003a00002010200741246c6a41046a2009360200200a417f7341017121110c0a0b2015201841e098c2001033000b2008200741e098c2001033000b2009200741e098c2001033000b200941003a0000200541186a41086a200641086a290200370300200541186a41106a200641106a290200370300200541186a41186a200641186a29020037030041042115200d200a41246c6a41046a2002360200200520062902003703182007417f7341017121110c060b2015201841e098c2001033000b2008200741e098c2001033000b200020153602040c040b20022013460d010b200541186a41186a200641186a290200370300200541186a41106a200641106a290200370300200541186a41086a200641086a29020037030020052006290200370318200b42ffffffff0f83210b41012115410121110c010b200ba72102024020042802002215450d00200441046a280200450d00201510300b2004200c3602042004200d360200200441086a20023602000240200f4125490d00201710300b410121150b20002011360204200041146a200e370200200041106a200f3602002000410c6a2010360200200041086a20153602002000411c6a2005290318370200200041c4006a200b370200200041c0006a200c3602002000413c6a200d360200200041cc006a2005290300370200200041246a200541186a41086a2903003702002000412c6a200541186a41106a290300370200200041346a200541306a290300370200200041d4006a200541086a290300370200200041dc006a200541106a280200360200200041003602000b200541a0036a24000bde4903037f017e107f230041c0056b220424000240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002402002280200417e6a0e03020001030b20022802042205415c6a21062002410c6a2902002107200241086a2802002108417f2109024003402009410f460d01200941016a2109200641246a22062d00004102460d000b4110200941016a20094110491b20096b210a200641246a210b02400340200a417f6a220a450d01200b2d0000210c200b41246a210b200c4102460d000c230b0b20080d21200420093a00c004200441c0036a410472200441c0046a410110ab04200441013602c00320062d00002109200641023a000020094102460d04200441f4046a20093a0000200441cc046a200441c0036a41086a290300370200200441d4046a200441d0036a290300370200200441dc046a200441d8036a290300370200200441e4046a200441c0036a41206a290300370200200441ec046a200441e8036a290300370200200441fd046a200641096a29000037000020044185056a200641116a2900003700002004418d056a200641196a29000037000020044194056a200641206a280000360000200441023602c004200420042903c0033702c4042004200641016a2900003700f50420044188016a41086a200341086a280200360200200420032902003703880120002001200441c0046a20044188016a10b2040c1f0b2008450d1f200441c4046a41bc8ec200410010ab042000413c6a2007370200200041386a20083602002000428080808010370200200041106a200441c0046a41086a290200370200200041186a200441c0046a41106a290200370200200041206a200441c0046a41186a290200370200200041286a200441c0046a41206a290200370200200041306a200441c0046a41286a290200370200200441003602c004200041086a20042902c0043702000c1e0b200441b0036a41026a2002410f6a2d00003a0000200441d8006a41086a200241206a290200370300200441d8006a41106a200241286a290200370300200441d8006a41186a200241306a280200360200200420022f000d3b01b0032004200241186a22052902003703582002410d6a210d2002413c6a2902002107200241386a280200210e200241346a280200210a200241146a280200210f200241106a28020021102002410c6a2d00002111200241086a28020021122002280204211341002109417f210602400340200941c004460d01200641016a2106200a20096a210b200941246a220c2109200b2d00004102460d000b4110200641016a20064110491b20066b210b200a200c6a210902400340200b417f6a220b450d0120092d00002108200941246a210920084102460d000c1f0b0b200e0d1d200a200c6a2209415c6a220b2d00002108200b41023a000020084102460d04200941606a2802002105200441386a41026a2009415d6a220b41026a2d00003a0000200441086a41086a200941646a220941086a290200370300200441086a41106a200941106a290200370300200441086a41186a200941186a2802003602002004200b2f00003b0138200420092902003703082003280208210c200f210b0240201241254f0d002012210b0b2003280204210920032802002103200c200b41017420136b6a220c410176210b02400240200c410171220d0d002009200b4f0d01200b200941a099c2001042000b2009200b490d06200b20094f0d072003200b6a22092d00002114200441003a00c404200441003602c004200441c0046a2003200910bc02024002400240024020042802c00422094125490d00200441c0046a410c6a220c280200220e2009460d01200441c8046a28020021150c170b4124210e20094124460d01200441c0046a4105722115200441c0046a210c2009210e0c160b200441c0046a410c6a280200210c2009210e0c010b2009210c0b200e200c470d1202400240200c41016a220e200c490d004100417f200e417f6a6776200e4102491b220e41016a220c200e490d000240024020094125490d00200441cc046a280200210e200441c8046a2802002115200921160c010b200441c0046a4105722115412421162009210e0b200e200c4b0d0a200c41244b0d01200941244d0d14200441003a00c404200441c0046a4105722015200e1085051a2004200e3602c004201510300c140b41d099c200411141e499c200102d000b2016200c470d110c120b2006410474210e4102210c0c130b200e450d1b20004101360204200041106a20113a00002000410c6a2012360200200041086a20133602002000200d2f00003b0011200041186a200f360200200041146a20103602002000411c6a2005290200370200200041386a200e3602002000413c6a2007370200200041136a200d41026a2d00003a0000200041246a200541086a2902003702002000412c6a200541106a290200370200200041346a200541186a280200360200200041003602000c1a0b200441306a2002412c6a290200370300200441286a200241246a290200370300200441086a41186a2002411c6a290200370300200441086a41106a2206200241146a290200370300200441086a41086a2002410c6a29020037030020042002290204370308200441d6006a200241376a2d00003a0000200441386a41086a200241c4006a290200370300200441386a41106a200241cc006a290200370300200441386a41186a200241d4006a2802003602002004200241356a2f00003b015420042002413c6a29020037033802400240200428020c22094125490d00200628020021060c010b200921060b2006417f6a21060240024020094125490d00200441186a280200210b200441146a280200210a0c010b200441116a210a2009210b0b200b20064d0d06200241346a210b200241386a210c200a20066a2d0000210620032802082108024020094125490d00200441186a28020021090b200b2d00002105200c280200210a2006410f71210d2003280204210b2003280200210c200820094101742004280208417f736a6a2209410176210602400240200941017122080d00200b20064f0d012006200b41a099c2001042000b200b2006490d082006200b4f0d09200c20066a22092d00002112200441003a00c404200441003602c004200441c0046a200c200910bc02024002400240024020042802c00422094125490d00200441c0046a410c6a220b280200220e2009460d01200441c8046a28020021130c110b4124210e20094124460d01200441c0046a4105722113200441c0046a210b2009210e0c100b200441c0046a410c6a280200210b2009210e0c010b2009210b0b200e200b470d0c02400240200b41016a220e200b490d004100417f200e417f6a6776200e4102491b220e41016a220b200e490d000240024020094125490d00200441cc046a280200210e200441c8046a28020021132009210f0c010b200441c0046a41057221134124210f2009210e0b200e200b4b0d0c200b41244b0d01200941244d0d0e200441003a00c404200441c0046a4105722013200e1085051a2004200e3602c004201310300c0e0b41d099c200411141e499c200102d000b200f200b470d0b0c0c0b200d410474210d4102210b0c0d0b200041046a200241d8001085051a200041003602000c1f0b41c8f1c100412441ecf1c1001050000b41c8f1c1004124418cf2c1001050000b200b200941b099c2001042000b200b200941c099c2001033000b41c29ac200412041e49ac200102d000b2006200b41acf2c1001033000b2006200b41b099c2001042000b2006200b41c099c2001033000b41c29ac200412041e49ac200102d000b200b102f211002400240200941244b0d002010450d0c20102013200e1085051a0c010b2010450d0b20102013200b200f200f200b4b1b1085051a201310300b200441cc046a200e360200200441c8046a2010360200200441013a00c4042004200b3602c0040b200441cc046a220b280200210e200441c8046a28020021130b2013200e6a2012417071200d723a0000200b200b28020041016a360200200441c8036a200441cd046a290000370300200441d0036a200441d5046a290000370300200441d8036a200441dd046a290000370300200441df036a200441e4046a290000370000200420042900c5043703c00320042d00c404210b20042802c00421090b200441e5006a200441c8036a290300370000200441ed006a200441d0036a290300370000200441f5006a200441d8036a290300370000200441fc006a200441df036a29000037000020042009360258200420042903c00337005d2004200b3a005c02400240200b41ff01714102470d004100210b0c010b024020094125490d00200441e4006a2802002109200441e0006a280200210b0c010b200441d8006a410572210b0b20092006200b1b210e20084101732108200b200c200b1b2106024002400240024002402005410171450d00200441cf046a200441c0006a290300370000200441d7046a200441c8006a290300370000200441df046a200441d0006a2d00003a0000200420042f01543b01c0042004200a3600c304200420042903383700c7042004200441d4006a41026a2d00003a00c204200441c9036a200d3a0000200420083a00c8032004200e3602c403200420063602c0032001200441c0046a200441c0036a10a9042207422088a721092007a70d010240200141c8006a2205280200220b200b417f6a220c200141c0006a220a280200220b2001413c6a22122802006b716b4101470d00201210b2012005280200417f6a210c200a280200210b0b200a200c200b41016a71360200200141c4006a280200200b4102746a2009360200200141386a280200220b20094d0d032001280230200941fc006c6a220b2d0000210920044188016a200b41016a41fb001085051a200b41046a4100360200200b41003a00000c040b0240200141c8006a220528020022092009417f6a220b200141c0006a220c28020022092001413c6a22122802006b716b4101470d00201210b2012005280200417f6a210b200c28020021090b200c200b200941016a71360200200141c4006a28020020094102746a200a360200200141386a2802002209200a4d0d012001280230200a41fc006c6a220b2d0000210920044188016a200b41016a41fb001085051a200b41046a4100360200200b41003a00000c030b2000410136020020002009360204024020042d005c4102460d0020042802584125490d00200441e0006a28020010300b200428020c4125490d07200441146a28020010300c070b200a200941acf0c1001033000b2009200b41acf0c1001033000b02400240200941ff01714101470d00200441c0046a200441ab016a41d8001085051a200441c0036a41186a20044188016a41186a290000370300200441c0036a41106a20044188016a41106a290000370300200441c0036a41086a20044188016a41086a29000037030020042004290088013703c0030c010b200441c0046a2004418b016a41d8001085051a0b20044188026a200441c0046a41d8001085051a200441e0026a41186a200441c0036a41186a220b290300370300200441e0026a41106a200441c0036a41106a220a290300370300200441e0026a41086a200441c0036a41086a220c290300370300200420042903c0033703e0020240024002400240200428028802417f6a0e020100020b20044180036a41286a200441b4026a29020037030020044180036a41206a200441ac026a29020037030020044180036a41186a200441a4026a29020037030020044180036a41106a2004419c026a29020037030020044180036a41086a20044194026a2902003703002004200429028c02370380030240200941ff01714101470d00200441c0046a41186a200441e0026a41186a290300370300200441c0046a41106a200441e0026a41106a290300370300200441c0046a41086a200441e0026a41086a290300370300200420042903e0023703c004200441003a00c403200441003602c003200441c0036a20062006200e6a10bc022004418d056a200d3a00002004418c056a20083a000020044188056a200441c0036a41286a28020036020020044180056a200441c0036a41206a290300370300200441f8046a200441c0036a41186a290300370300200441f0046a200441c0036a41106a290300370300200441c0046a41286a200441c0036a41086a290300370300200420042903c0033703e0042001200441c0046a10ac040b200441bc026a2109200441c0036a41286a200441086a41286a290300370300200441c0036a41206a200441086a41206a290300370300200441c0036a41186a200441086a41186a290300370300200441c0036a41106a200441086a41106a290300370300200441c0036a41086a200441086a41086a290300370300200420042903083703c003200428028003210b0240024020042802840322064125490d0020044180036a41106a28020021062004418c036a280200210a0c010b20044189036a210a0b200441c0046a41086a20063602002004200a3602c4042004200b3602c004200441c0036a200441c0046a10b304200441ec046a200441e8036a290300370200200441e4046a200441c0036a41206a290300370200200441dc046a200441c0036a41186a290300370200200441d4046a200441c0036a41106a290300370200200441c0046a410c6a200441c0036a41086a290300370200200441f4046a2009290200370200200441fc046a200941086a29020037020020044184056a200941106a2902003702002004418c056a200941186a29020037020020044194056a200941206a280200360200200420042903c0033702c404200441023602c004200441b0036a41086a200341086a280200360200200420032902003703b00320002001200441c0046a200441b0036a10b2042004280284034125490d0220044180036a410c6a28020010300c020b200441c0036a41286a200441b4026a290200370300200441c0036a41206a200441ac026a290200370300200b200441a4026a290200370300200a2004419c026a290200370300200c20044194026a2902003703002004200429028c023703c0030240200941ff01714101470d00200441c0046a41186a200441e0026a41186a290300370300200441c0046a41106a200441e0026a41106a290300370300200441c0046a41086a200441e0026a41086a290300370300200420042903e0023703c004200441003a008403200441003602800320044180036a20062006200e6a10bc022004418d056a200d3a00002004418c056a20083a000020044188056a20044180036a41286a28020036020020044180056a20044180036a41206a290300370300200441f8046a20044180036a41186a290300370300200441f0046a20044180036a41106a290300370300200441c0046a41286a20044180036a41086a29030037030020042004290380033703e0042001200441c0046a10ac040b200441bc026a2109200441c0046a41286a200441086a41286a290300370300200441c0046a41206a200441086a41206a290300370300200441c0046a41186a200441086a41186a290300370300200441c0046a41106a200441086a41106a290300370300200441c0046a41086a200441086a41086a290300370300200420042903083703c00420042802c003210b0240024020042802c40322064125490d00200441c0036a41106a2802002106200441cc036a280200210a0c010b200441c9036a210a0b20044180036a41086a20063602002004200a360284032004200b36028003200441c0046a20044180036a10b304200041306a200441c0046a41286a290300370200200041286a200441c0046a41206a290300370200200041206a200441c0046a41186a290300370200200041186a200441c0046a41106a290300370200200041106a200441c0046a41086a290300370200200041086a20042903c0043702002000428080808010370200200041386a2009290200370200200041c0006a200941086a28020036020020042802c4034125490d01200441cc036a28020010300c010b4101210602400240200941ff01714101460d00200441c3036a20044188026a41d8001085051a410021060c010b200441c0036a41186a200441e0026a41186a290300370300200441c0036a41106a200441e0026a41106a290300370300200441c0036a41086a200441e0026a41086a290300370300200420042903e0023703c003200441e3036a20044188026a41d8001085051a0b200420063a00c004200441c0046a410172200441c0036a41fb001085051a200141306a200441c0046a10b30121092000428080808020370200200041086a2004290308370200200041106a200441086a41086a290300370200200041186a200441086a41106a290300370200200041206a200441086a41186a290300370200200041286a200441086a41206a290300370200200041306a200441086a41286a2903003702002000413c6a2009360200200041386a41003a00000b20042d005c4102460d1120042802584125490d11200441e0006a28020010300c110b200c102f211702400240200941244b0d002017450d0820172015200e1085051a0c010b2017450d0720172015200c20162016200c4b1b1085051a201510300b200441cc046a200e360200200441c8046a2017360200200441013a00c4042004200c3602c0040b200441cc046a220c280200210e200441c8046a28020021150b2015200e6a20144170712006723a0000200c200c28020041016a360200200441c8036a200441cd046a290000370300200441d0036a200441d5046a290000370300200441d8036a200441dd046a290000370300200441df036a200441e4046a290000370000200420042900c5043703c00320042d00c404210c20042802c00421090b2004418d036a200441c8036a29030037000020044195036a200441d0036a2903003700002004419d036a200441d8036a290300370000200441a4036a200441df036a2900003700002004200936028003200420042903c003370085032004200c3a00840302400240200c41ff01714102470d004100210c0c010b024020094125490d002004418c036a280200210920044188036a280200210c0c010b20044180036a410572210c0b2009200b200c1b2114200d410173210d200c2003200c1b210902400240024020084101470d00200441cf036a200441106a290300370000200441d7036a200441186a290300370000200441df036a200441206a2d00003a0000200420042f01383b01c003200420053600c303200420042903083700c7032004200441386a41026a2d00003a00c20320044191016a200e3a00002004200d3a0090012004201436028c0120042009360288012001200441c0036a20044188016a10a9042207422088a7210b2007a70d020240200141c8006a2205280200220c200c417f6a2203200141c0006a2208280200220c2001413c6a22152802006b716b4101470d00201510b2012005280200417f6a21032008280200210c0b20082003200c41016a71360200200141c4006a280200200c4102746a200b360200200141386a280200220c200b4d0d082001280230200b41fc006c6a220b2d0000210c200441c0046a200b41016a41fb001085051a200b41046a4100360200200b41003a00000c010b0240200141c8006a2203280200220b200b417f6a2208200141c0006a220c280200220b2001413c6a22152802006b716b4101470d00201510b2012003280200417f6a2108200c280200210b0b200c2008200b41016a71360200200141c4006a280200200b4102746a2005360200200141386a280200220b20054d0d062001280230200541fc006c6a220b2d0000210c200441c0046a200b41016a41fb001085051a200b41046a4100360200200b41003a00000b200c41ff01714101470d02200441c0036a41186a200441c0046a41186a290000370300200441c0036a41106a200441c0046a41106a290000370300200441c0036a41086a200441c0046a41086a290000370300200420042900c0043703c003200441003a008c01200441003602880120044188016a2009200920146a10bc022004418d046a200e3a00002004418c046a200d3a000020044188046a20044188016a41286a28020036020020044180046a200441a8016a290300370300200441f8036a20044188016a41186a290300370300200441f0036a20044188016a41106a290300370300200441c0036a41286a20044188016a41086a29030037030020042004290388013703e0032001200441c0036a10ac04200441c0036a200441e3046a41d8001085051a0c030b200041013602002000200b360204024020042d0084034102460d002004280280034125490d0020044188036a28020010300b200a103020124125490d00201010300b2002280200417e6a4103490d0d200210be010c0d0b200441c0036a200441c3046a41d8001085051a0b02400240024020042802c003417f6a0e0401000002000b41d8a5c2004128419cf2c100102d000b200441b0026a200441c0036a412c6a290200370300200441a8026a200441c0036a41246a29020037030020044188026a41186a200441c0036a411c6a29020037030020044188026a41106a220c200441c0036a41146a29020037030020044188026a41086a200441c0036a410c6a290200370300200420042902c4033703880220044188016a41086a20113a000020044188016a41096a20042f01b0033b000020044193016a200441b2036a2d00003a000020044188016a41106a200f36020020044188016a410c6a20103602002004201236028c01200420133602880120044188016a41146a200429035837020020044188016a411c6a200441d8006a41086a29030037020020044188016a41246a200441d8006a41106a29030037020020044188016a412c6a200441d8006a41186a280200360200200441e0026a41086a4101360200200441013602e002200420063a00542004200441d4006a3602e40220044188016a200441e0026a10b304200441f4036a2109200428028802210b02400240200428028c0222064125490d00200c280200210620044188026a410c6a280200210c0c010b20044188026a41096a210c0b200441e0026a41086a20063602002004200c3602e4022004200b3602e00220044188016a200441e0026a10b304200041306a20044188016a41286a290300370200200041286a20044188016a41206a290300370200200041206a20044188016a41186a290300370200200041186a20044188016a41106a290300370200200041106a20044188016a41086a290300370200200041086a2004290388013702002000428080808010370200200041386a2009290200370200200041c0006a200941086a280200360200200428028c024125490d0420044194026a28020010300c040b200441b0026a200441c0036a412c6a290200370300200441a8026a200441c0036a41246a29020037030020044188026a41186a200441c0036a411c6a29020037030020044188026a41106a2208200441c0036a41146a29020037030020044188026a41086a200441c0036a410c6a290200370300200420042902c40337038802200441f4036a280200210b20044188016a41086a20113a000020044188016a41106a200f36020020044188016a410c6a20103602002004201236028c01200420133602880120044188016a41096a20042f01b0033b000020044193016a200441b2036a2d00003a000020044188016a41146a200429035837020020044188016a411c6a200441d8006a41086a29030037020020044188016a41246a200441d8006a41106a29030037020020044188016a412c6a200441d8006a41186a280200360200200441e0026a41086a4101360200200441013602e002200420063a00542004200441d4006a3602e40220044188016a200441e0026a10b304200441f8036a2109200428028802210c02400240200428028c0222064125490d002008280200210620044188026a410c6a28020021080c010b20044188026a41096a21080b200441e0026a41086a2006360200200420083602e4022004200c3602e00220044188016a200441e0026a10b304200041306a20044188016a41286a290300370200200041286a20044188016a41206a290300370200200041206a20044188016a41186a290300370200200041186a20044188016a41106a290300370200200041106a20044188016a41086a290300370200200041086a200429038801370200200041386a200b360200200041043602042000413c6a2009290200370200200041c4006a200941086a28020036020020004100360200200428028c024125490d0320044194026a28020010300c030b102a000b2005200b41acf0c1001033000b200b200c41acf0c1001033000b20042d0084034102460d002004280280034125490d0020044188036a2802001030200a10300c060b200a10300c050b4188f1c100412f41fcf1c100102d000b20004104360204200041106a20113a00002000410c6a2012360200200041086a20133602002000200d2f00003b0011200041186a200f360200200041146a20103602002000411c6a2005290200370200200041386a200a3602002000413c6a200e360200200041c0006a2007370200200041136a200d41026a2d00003a0000200041246a200541086a2902003702002000412c6a200541106a290200370200200041346a200541186a280200360200200041003602000c030b200510300c020b4188f1c100412f41b8f1c100102d000b2000428080808030370200200041106a20073702002000410c6a2008360200200041086a20053602000b2002280200417e6a4103490d00200210be010b200441c0056a24000bd003010a7f230041106b2202240020002001280200220320002802006a41017110f9040240024002400240024020030d00200141086a2802002104410021030c010b02400240200028020422034125490d00200041106a28020021050c010b200321050b200141086a2802002204450d012005417f6a21050240024020034125490d00200041106a28020021032000410c6a28020021060c010b200041096a21060b200320054d0d02200620056a220320032d000020012802042d0000410f71723a0000410121030b0240200320044f0d00200420036b2107200041106a2108200041096a2109200041046a210a200128020420036a2104034002400240200a28020022054125490d0020002802102101200028020c2106200821030c010b20052101200a210320092106412421050b20042d0000210b024020012005470d002002200a410110bd02024020022802004101470d00200241086a2802000d0641d099c200411141e499c200102d000b20002802102101200028020c2106200821030b200620016a200b3a00002003200328020041016a360200200441016a21042007417f6a22070d000b0b200241106a24000f0b4100410041dc9ec2001033000b2005200341cc9ec2001033000b102a000bf20201047f02402001450d0020002001412c6c6a2103034002400240200022042802004101470d002004280204210120042802082205200210a80320022001200510640c010b2004280204210120042802082205200210a80320022001200510640b02400240200428020c4101470d002004280210210120042802182205200210a80320012005200210b5040c010b20042802102101200441146a2802002205200210a80320012005200210b5040b2004412c6a210002400240200428021c4101470d002004280220210120042802282204200210a80320044103742204450d01200120046a2106034020012802002104200141046a2802002205200210a8032002200420051064200141086a22012006470d000c020b0b2004280220210120042802242204200210a80320044103742204450d00200120046a2106034020012802002104200141046a2802002205200210a8032002200420051064200141086a22012006470d000b0b20002003470d000b0b0bd00101027f02402001450d002000200141186c6a210103400240024020002802004101470d00200041046a2802002103200041086a2802002204200210a80320022003200410640c010b200041046a2802002103200041086a2802002204200210a80320022003200410640b024002402000410c6a2802004101470d00200041106a2802002103200041146a2802002204200210a80320022003200410640c010b200041106a2802002103200041146a2802002204200210a80320022003200410640b200041186a22002001470d000b0b0b8a0801057f230041106b2203240002402001450d002000200141d8006c6a2104034002400240200022052802004101470d002005280204210120052802082206200210a80320022001200610640c010b2005280204210120052802082206200210a80320022001200610640b0240024020052d00544101460d00200341003a000f20022003410f6a410110640c010b200341013a000f20022003410f6a410110640b024002400240024020052d000c0e03000102030b200341003a000f20022003410f6a41011064024020052802104101470d002005280214210120052802182206200210a80320022001200610640c030b2005280214210120052802182206200210a80320022001200610640c020b200341013a000f20022003410f6a410110642005410d6a2d0000200210ba040240024020052802104101470d002005280214210120052802182206200210a80320022001200610640c010b2005280214210120052802182206200210a80320022001200610640b02400240200528021c4101470d002005280220210120052802242206200210a80320022001200610640c010b2005280220210120052802242206200210a80320022001200610640b200320052d000e3a000f20022003410f6a410110640c010b200341023a000f20022003410f6a410110642005410d6a2d0000200210ba040240024020052802104101470d002005280214210120052802182206200210a80320022001200610640c010b2005280214210120052802182206200210a80320022001200610640b02400240200528021c4101470d002005280220210120052802242206200210a80320022001200610640c010b2005280220210120052802242206200210a80320022001200610640b0240024020052802284101470d00200528022c210120052802302206200210a80320022001200610640c010b200528022c210120052802302206200210a80320022001200610640b20052d000e200210ba040b0240024020052802344101470d002005280238210120052802402206200210a80320022001200610640c010b20032005280238200528023c28020c1105002003280200210120032802082206200210a80320022001200610642003280204450d00200110300b200541d8006a21000240024020052802444101470d002005280248210120052802502205200210a80320054103742205450d01200120056a2107034020012802002105200141046a2802002206200210a8032002200520061064200141086a22012007470d000c020b0b20052802482101200528024c2205200210a80320054103742205450d00200120056a2107034020012802002105200141046a2802002206200210a8032002200520061064200141086a22012007470d000b0b20002004470d000b0b200341106a24000bd90301057f02402001450d0020002001412c6c6a2103034002400240200022042802004101470d002004280204210120042802082205200210a80320022001200510640c010b2004280204210120042802082205200210a80320022001200510640b02400240200428020c4101470d002004280210210120042802182205200210a80320054103742205450d01200120056a2106034020012802002105200141046a2802002207200210a8032002200520071064200141086a22012006470d000c020b0b2004280210210120042802142205200210a80320054103742205450d00200120056a2106034020012802002105200141046a2802002207200210a8032002200520071064200141086a22012006470d000b0b2004412c6a210002400240200428021c4101470d002004280220210120042802282205200210a80320054103742205450d01200120056a2106034020012802002105200141046a2802002207200210a8032002200520071064200141086a22012006470d000c020b0b2004280220210120042802242205200210a80320054103742205450d00200120056a2106034020012802002105200141046a2802002207200210a8032002200520071064200141086a22012006470d000b0b20002003470d000b0b0be30301057f230041106b2203240002402001450d002000200141386c6a2104034002400240200022052802004101470d002005280204210120052802082206200210a80320022001200610640c010b2005280204210120052802082206200210a80320022001200610640b02400240200528020c4101470d002005280210210120052802142206200210a80320022001200610640c010b2005280210210120052802142206200210a80320022001200610640b0240024020052802184101470d00200528021c210120052802242206200210a80320022001200610640c010b2003200528021c200528022028020c1105002003280200210120032802082206200210a80320022001200610642003280204450d00200110300b200541386a21000240024020052802284101470d00200528022c210120052802342205200210a80320054103742205450d01200120056a2107034020012802002105200141046a2802002206200210a8032002200520061064200141086a22012007470d000c020b0b200528022c210120052802302205200210a80320054103742205450d00200120056a2107034020012802002105200141046a2802002206200210a8032002200520061064200141086a22012007470d000b0b20002004470d000b0b200341106a24000ba50201047f02402001450d0020002001411c6c6a2103034002400240200022042802004101470d002004280204210120042802082205200210a80320022001200510640c010b2004280204210120042802082205200210a80320022001200510640b2004411c6a210002400240200428020c4101470d002004280210210120042802182204200210a80320044103742204450d01200120046a2106034020012802002104200141046a2802002205200210a8032002200420051064200141086a22012006470d000c020b0b2004280210210120042802142204200210a80320044103742204450d00200120046a2106034020012802002104200141046a2802002205200210a8032002200420051064200141086a22012006470d000b0b20002003470d000b0b0bc60101017f230041106b2202240002400240024002400240024002400240200041ff01710e0700010203040506070b200241003a000f20012002410f6a410110640c060b200241013a000f20012002410f6a410110640c050b200241023a000f20012002410f6a410110640c040b200241033a000f20012002410f6a410110640c030b200241043a000f20012002410f6a410110640c020b200241053a000f20012002410f6a410110640c010b200241063a000f20012002410f6a410110640b200241106a24000b1c0020012802184199f7c100410f2001411c6a28020028020c1100000b040041000b02000b02000b1c002001280218418bf6c10041052001411c6a28020028020c1100000b800201047f230041206b2202240002400240200041046a280200200041086a2802002203460d00200028020021040c010b0240200341016a22042003490d00200341017422052004200520044b1b22044108200441084b1b21040240024020030d00200241003602100c010b200241106a41086a410136020020022003360214200220002802003602100b200220044101200241106a1069200241086a2802002103024020022802004101460d00200020022802042204360200200041046a2003360200200041086a28020021030c020b2003450d00102a000b102c000b200420036a20013a0000200041086a2200200028020041016a360200200241206a24000b970101037f23004180016b2202240020002802002d00002103410021000340200220006a41ff006a2003410f712204413072200441d7006a2004410a491b3a00002000417f6a21002003410476410f7122030d000b024020004180016a2203418101490d002003418001419087c000104a000b200141a8f7c1004102200220006a4180016a410020006b1040210020024180016a240020000bf90101027f230041106b22022400024002402000280204450d0020024280808080104200200128021841f4f7c10041082001411c6a28020028020c1100001b2001ad843703002002200036020c200241fcf7c10041062002410c6a4184f8c100105322002d0004210120002d0005450d01200141ff017121004101210120000d0120022802002201411c6a28020028020c210020012802182103024020012d0000410471450d00200341e49dc0004101200011000021010c020b200341e59dc0004102200011000021010c010b20012802184194f8c10041102001411c6a28020028020c11000021010b200241106a2400200141ff01714100470bf80101027f230041106b220224002000280200210020024280808080104200200128021841889fc00041062001411c6a28020028020c1100001b2001ad843703002002200036020c2002418e9fc00041052002410c6a41f89ec000105321012002200041046a36020c200141939fc00041062002410c6a419c9fc000105322002d00042101024020002d0005450d00200141ff017121004101210120000d0020022802002201411c6a28020028020c210020012802182103024020012d0000410471450d00200341e49dc0004101200011000021010c010b200341e59dc0004102200011000021010b200241106a2400200141ff01714100470b1f0020004100360200200041086a4200370200200041002802e88f423602040b7a01057f230041106b2202240002402001422088a72203450d0041002104024002402001a722052d00000e020100020b2003417f6a4104490d0120052800012106410121040b200510302000200636020420002004360200200241106a24000f0b41e8fac100412e200241086a4198fbc10041a8fbc1001034000ba40302077f017e230041106b2202240002402001422088a72203450d004100210402400240024002402001a722052d00000e020100040b20034101460d032003417e6a21040240024020052d0001220641037122074103460d00200541026a210802400240024020070e03000102000b200641027621060c030b2004450d0620082d0000410874200672220641ffff0371418002490d06200541036a21082003417d6a2104200641fcff037141027621060c020b20044103490d0520052f0002200541046a2d000041107472410874200672220641ffff034d0d052003417b6a2104200541056a2108200641027621060c010b200641034b0d0420044104490d0420052800022206418080808004490d042003417a6a2104200541066a21080b20042006490d032006417f4c0d010240024020060d00410121040c010b2006102f2204450d032004410020061087051a0b2004200820061085051a2006ad220142208620018421090b200020093702042000200436020020051030200241106a24000f0b102c000b102a000b41e8fac100412e200241086a4198fbc10041a8fbc1001034000b18002001ad4220862000ad842003ad4220862002ad8410060b18002001ad4220862000ad842003ad4220862002ad8410070b1b002001ad4220862000ad842003ad4220862002ad8410084101460b1d0020002002ad4220862001ad842004ad4220862003ad84100910c6040b1d0020002002ad4220862001ad842004ad4220862003ad84100a10c6040b5201017f230041106b22082400200841086a2002ad4220862001ad842004ad4220862003ad842006ad4220862005ad842007100b10c504200020082802083602002000200828020c360204200841106a24000b4801017e024002402002ad4220862001ad84100c2203422088a722010d0041002101200041002802dc94423602000c010b20002003a73602000b20002001360208200020013602040b22002001ad4220862000ad842003ad4220862002ad842005ad4220862004ad84100d0bb60202037f017e230041106b220524000240024041054101200341014622031b2206102f2207450d002002ad4220862001ad8421082005410036020820052006360204200520073602000240024020030d00200541003a000c20052005410c6a410110640c010b200541013a000c20052005410c6a410110642005200436020c20052005410c6a410410640b200528020421062008200535020842208620052802002207ad84100e2208422088a72203450d0141002101200541003a000c2003417f6a21020240024002402008a722032d00000e020100040b41012101200241034b0d010c030b20024104490d020b200328000121022003103002402006450d00200710300b2000200236020420002001360200200541106a24000f0b102a000b41e8fac100412e20054198fbc10041a8fbc1001034000b0d00200141e8a0c200410210430bb10301047f230041c0006b2202240020002802002103410121000240200128021841f79bc000410c2001411c6a28020028020c1100000d0002400240200328020822000d0020032802002200200328020428020c11090042f4f99ee6eea3aaf9fe00520d012002200036020c2002412936021420022002410c6a36021020012802182104200128021c2105410121002002413c6a41013602002002420237022c200241849cc0003602282002200241106a36023820042005200241286a10320d020c010b2002200036020c2002412a36021420022002410c6a36021020012802182104200128021c2105410121002002413c6a41013602002002420237022c200241849cc0003602282002200241106a36023820042005200241286a10320d010b200328020c2100200241106a41146a4102360200200241106a410c6a410236020020022000410c6a3602202002200041086a360218200241043602142002200036021020012802182100200128021c2101200241286a41146a41033602002002420337022c200241949cc0003602282002200241106a36023820002001200241286a103221000b200241c0006a240020000b6901037f230041206b220224002001411c6a280200210320012802182104200241086a41106a2000280200220141106a290200370300200241086a41086a200141086a2902003703002002200129020037030820042003200241086a10322101200241206a240020010b5601017f4104210502400240024002400240200041ff0171417f6a0e050001020304000b410021050c030b410121050c020b410221050c010b410321050b20052002ad4220862001ad842004ad4220862003ad8410250b31002001ad4220862000ad84200235020842208620022802002200ad8410180240200241046a280200450d00200010300b0b130020002002ad4220862001ad84101910c6040b0e002001ad4220862000ad84101a0b0e002001ad4220862000ad84101b0b0400101c0b11002001ad4220862000ad84101d4101460b130020002002ad4220862001ad84101e10c6040b130020002002ad4220862001ad84101f10c6040b4801017f230041106b22062400200641086a2002ad4220862001ad842004ad4220862003ad842005102010c504200020062802083602002000200628020c360204200641106a24000b040010210b4002017e017f0240024010222201422088a722020d0041002102200041002802dc94423602000c010b20002001a73602000b20002002360208200020023602040b18002001ad4220862000ad842003ad4220862002ad8410230b040010240b0e002001ad4220862000ad8410260b18002001ad4220862000ad842003ad4220862002ad8410270b040041010b9c0301057f230041c0006b220224002002420037020c41002103200241002802dc94423602082002412a36021c20022001410c6a3602202002200241206a3602182002200241086a3602242002413c6a41013602002002420137022c200241cc80c2003602282002200241186a360238200241246a41d480c200200241286a10321a02400240024002400240024002402001280200417f6a0e050102030400010b200141086a280200210441042103200141046a28020021010c040b200141086a2802002104200141046a28020021010c030b200141086a2802002104200141046a28020021012002280210210520022802082106410121030c030b200141086a2802002104200141046a28020021012002280210210520022802082106410221030c020b200141086a2802002104200141046a28020021012002280210210520022802082106410321030c010b20022802102105200228020821060b200220033a0029200241003a002820032004ad4220862001ad842005ad4220862006ad8410250240200228020c450d00200228020810300b200241c0006a24000b0f00200028020020012002106441000b6301017f230041206b2202240020022000280200360204200241086a41106a200141106a290200370300200241086a41086a200141086a29020037030020022001290200370308200241046a41d480c200200241086a10322101200241206a240020010b8c0c010a7f230041e0036b2203240020012802002104200128020422052f018e0d2106200341b0016a41106a220720052001280208220841186c6a220141146a290200370300200341b0016a41086a22092001410c6a2902003703002003200141046a220a2902003703b001200a2001411c6a20062008417f736a220141186c1086051a200341c8016a2005418c026a220a20084107746a220b4180011085051a200b200a200841016a220c4107746a20014107741086051a20052006417f6a22013b018e0d200341c8026a41106a2007290300370300200341c8026a41086a2009290300370300200320032903b0013703c802200341c8026a41186a200341c8016a4180011085051a200341186a200341c8026a4198011085051a200341c8026a200341186a4198011085051a0240200141ffff037141044b0d0002400240024020052802002206450d00200441016a21090240024020052f018c0d22070d0020062f018e0d0d012003412c6a41013602002003420137021c200341f4a9c200360218200341043602cc0120034188a4c2003602c8012003200341c8016a360228200341186a4190a4c200103a000b024020062007417f6a22074102746a41900d6a280200220a2f018e0d200141ffff03716a41016a410b4b0d00200341306a2005360200200341286a200a3602002003200436022c20032004360224200320073602202003200636021c20032009360218200341b0016a200341186a4101200810e8040c040b200341306a2005360200200341286a200a3602002003200436022c20032004360224200320073602202003200636021c20032009360218200341186a410110e9042003200c3602b8010c020b0240200141ffff0371200741027420066a41940d6a28020022012f018e0d6a41016a410b4b0d00200341306a2001360200200341286a20053602002003200436022c20032004360224200320073602202003200636021c20032009360218200341b0016a200341186a4100200810e8040c030b200341306a2001360200200341286a20053602002003200436022c20032004360224200320073602202003200636021c20032009360218200341186a410110ea040b200320083602b8010b200320053602b401200320043602b0010b20032802b801210820032802b001210420032802b40122052802002201450d0020012f018e0d220941044b0d00200441016a21060240034020012802002207450d01200941ffff03712109200641016a210b024002400240024020012f018c0d220a0d0020072f018e0d0d012003412c6a41013602002003420137021c200341f4a9c200360218200341043602cc0120034188a4c2003602c8012003200341c8016a360228200341186a4190a4c200103a000b2007200a417f6a220c4102746a41900d6a280200210a200320013602e001200320063602dc012003200a3602d801200320063602d4012003200c3602d001200320073602cc012003200b3602c80102402009200a2f018e0d6a41016a410b4b0d00200341186a41186a200341c8016a41186a280200360200200341186a41106a200341c8016a41106a290300370300200341186a41086a200341c8016a41086a290300370300200320032903c801370318200341106a200341186a10eb0420032802142101200328021021060c030b200341c8016a410520096b10e9040c010b2003200a41027420076a41940d6a280200220c3602e001200320063602dc01200320013602d801200320063602d4012003200a3602d001200320073602cc012003200b3602c80102402009200c2f018e0d6a41016a410b4b0d00200341186a41186a200341c8016a41186a280200360200200341186a41106a200341c8016a41106a290300370300200341186a41086a200341c8016a41086a290300370300200320032903c801370318200341086a200341186a10eb04200328020c2101200328020821060c020b200341c8016a410520096b10ea040b410021010b2001450d0220012f018e0d220941044d0d000c020b0b200941ffff03710d00200241013a00000b2000200341c8026a419801108505220141a0016a20083602002001419c016a20053602002001200436029801200341e0036a24000bc40501107f230041a0016b22042400024002400240200141186a28020022052f018e0d2206200141106a28020022072f018e0d220820021b2003490d00200841016a220920066a220a410c4f0d01200128020c210b2001280208210c2001280200210d2001280204220e2f018e0d210f2007200a3b018e0d200441086a41106a2210200e200c41186c6a220141146a290200370300200441086a41086a22112001410c6a2902003703002004200141046a221229020037030820122001411c6a200f200c417f736a221341186c1086051a200741046a2212200841186c6a220141106a2010290300370200200141086a2011290300370200200120042903083702002012200941186c6a200541046a200641186c1085051a200441206a200e418c026a2210200c4107746a22114180011085051a20112010200c41016a22014107746a20134107741086051a2007418c026a221020084107746a200441206a4180011085051a201020094107746a2005418c026a20064107741085051a200e41900d6a221020014102746a200c410274220c20106a41086a20134102741086051a02402001200f4f0d00200c200e6a41940d6a210c0340200c280200221320013b018c0d2013200e360200200c41046a210c200f200141016a2201470d000b0b200e200e2f018e0d417f6a3b018e0d0240200d4102490d002006200a20096b470d03200720094102746a41900d6a200541900d6a200641016a22134102741085051a200a20084d0d00200720084102746a41940d6a21012009210c03402001280200220e200c3b018c0d200e2007360200200141046a2101200c41016a210c2013417f6a22130d000b0b20051030200020073602042000200b36020020002009410020021b20036a360208200441a0016a24000f0b419ca7c20041910141b0a8c200102d000b41a0a4c200412a41cca4c200102d000b41f8a2c200412841a0a3c200102d000bd306040a7f027e027f017e230041b0036b220224000240024002400240200041186a2802002f018e0d220320016a2204410c4f0d00200041106a28020022052f018e0d22062001490d012005200620016b22073b018e0d200041186a220528020020043b018e0d200528020041046a2208200141186c6a2008200341186c1086051a2005280200418c026a220820014107746a200820034107741086051a2006200741016a22036b22062001417f6a470d02200528020041046a200041106a2208280200200341186c6a41046a200641186c22091085051a2005280200418c026a200828020020034107746a418c026a2006410774220a1085051a20022008280200220b20074107746a418c026a4180011085052106200b200741186c6a220741046a290200210c200741146a290200210d200041046a280200220b2000280208220e41186c6a2202410c6a220f2902002110200f2007410c6a29020037020020064198016a41086a22072010370300200241146a220f2902002110200f200d37020020064198016a41106a220f2010370300200241046a2202290200210d2002200c3702002006200d37039801200641b0026a200b200e4107746a418c026a22024180011085051a200220064180011085051a20064198016a41186a200641b0026a418001108505210220064180016a41106a220b200f29030037030020064180016a41086a220e2007290300370300200620062903980137038001200641b0026a20024180011085051a200528020020096a220741146a200b2903003702002007410c6a200e290300370200200741046a2006290380013702002005280200200a6a418c026a200641b0026a4180011085051a200028020c21070240024020002802140d002007450d010c050b2007450d04200828020021082005280200220741900d6a2200200141027422056a2000200420016b41027441046a1086051a2000200820034102746a41900d6a20051085051a200441016a21034100210103402000280200220520013b018c0d20052007360200200041046a21002003200141016a2201470d000b0b200641b0036a24000f0b4190a6c200413341c4a6c200102d000b41d4a6c200412741fca6c200102d000b41f8a2c200412841a0a3c200102d000b41d8a5c2004128418ca7c200102d000ba307040a7f027e037f017e230041b0036b220224000240024002400240200041106a28020022032f018e0d220420016a2205410c4f0d00200041186a2802002f018e0d22062001490d01200320053b018e0d200041186a2203280200200620016b22073b018e0d2002200328020022082001417f6a2209410774220a6a418c026a41800110850521062008200941186c220b6a220241046a290200210c200241146a290200210d200041046a280200220e2000280208220f41186c6a2208410c6a2210290200211120102002410c6a29020037020020064198016a41086a22022011370300200841146a221029020021112010200d37020020064198016a41106a22102011370300200841046a2208290200210d2008200c3702002006200d37039801200641b0026a200e200f4107746a418c026a22084180011085051a200820064180011085051a20064198016a41186a200641b0026a418001108505210820064180016a41106a220e201029030037030020064180016a41086a220f2002290300370300200620062903980137038001200641b0026a20084180011085051a200041106a2208280200200441186c6a220241146a200e2903003702002002410c6a200f290300370200200241046a200629038001370200200828020020044107746a418c026a200641b0026a4180011085051a20092005200441016a22026b470d022008280200200241186c6a41046a200328020041046a200b1085051a200828020020024107746a418c026a2003280200418c026a200a1085051a200328020041046a22092009200141186c6a200741186c1086051a2003280200418c026a2209200920014107746a20074107741086051a200028020c21090240024020002802140d002009450d010c050b2009450d042008280200220920024102746a41900d6a2003280200220841900d6a2200200141027422031085051a2000200020036a200741027441046a1086051a0240200520044d0d00200441027420096a41940d6a210003402000280200220320023b018c0d20032009360200200041046a2100200241016a21022001417f6a22010d000b0b2007417f460d00200841900d6a2102200741016a21034100210003402002280200220120003b018c0d20012008360200200241046a21022003200041016a2200470d000b0b200641b0036a24000f0b41dca4c20041324190a5c200102d000b41a0a5c200412841c8a5c200102d000b41f8a2c200412841a0a3c200102d000b41d8a5c20041284180a6c200102d000b8b05010f7f230041a0016b2202240002400240200141106a28020022032f018e0d220441016a2205200141186a28020022062f018e0d22076a2208410c4f0d00200128020821092001280200210a2001280204220b2f018e0d210c200320083b018e0d200241086a41106a220d200b200941186c6a220141146a290200370300200241086a41086a220e2001410c6a2902003703002002200141046a220f290200370308200f2001411c6a200c2009417f736a221041186c1086051a200341046a220f200441186c6a220141106a200d290300370200200141086a200e29030037020020012002290308370200200f200541186c6a200641046a200741186c1085051a200241206a200b418c026a220d20094107746a220e4180011085051a200e200d200941016a22014107746a20104107741086051a2003418c026a220d20044107746a200241206a4180011085051a200d20054107746a2006418c026a20074107741085051a200b41900d6a220d20014102746a20094102742209200d6a41086a20104102741086051a02402001200c4f0d002009200b6a41940d6a210903402009280200221020013b018c0d2010200b360200200941046a2109200c200141016a2201470d000b0b200b200b2f018e0d417f6a3b018e0d0240200a4102490d002007200820056b470d02200320054102746a41900d6a200641900d6a200741016a22094102741085051a200820044d0d00200441027420036a41940d6a210103402001280200221020053b018c0d20102003360200200141046a2101200541016a21052009417f6a22090d000b0b200610302000200b3602042000200a360200200241a0016a24000f0b41a0a4c200412a41cca4c200102d000b41f8a2c200412841a0a3c200102d000be20b010a7f230041c0036b2203240020012802002104200128020422052f018a0c2106200341a0016a41086a2207200520012802082208410c6c6a2201410c6a2802003602002003200141046a22092902003703a0012009200141106a20062008417f736a2201410c6c1086051a200341b0016a20054188016a220920084107746a220a4180011085051a200a2009200841016a220b4107746a20014107741086051a20052006417f6a22013b018a0c200341b0026a41086a2007280200360200200320032903a0013703b002200341b0026a410c6a200341b0016a4180011085051a200341106a200341b0026a418c011085051a200341b0026a200341106a418c011085051a0240200141ffff037141044b0d0002400240024020052802002206450d00200441016a21090240024020052f01880c22070d0020062f018a0c0d01200341246a410136020020034201370214200341f4a9c200360210200341043602b40120034188a4c2003602b0012003200341b0016a360220200341106a4190a4c200103a000b024020062007417f6a22074102746a418c0c6a280200220a2f018a0c200141ffff03716a41016a410b4b0d00200341286a2005360200200341206a200a360200200320043602242003200436021c200320073602182003200636021420032009360210200341a0016a200341106a4101200810ed040c040b200341286a2005360200200341206a200a360200200320043602242003200436021c200320073602182003200636021420032009360210200341106a410110ee042003200b3602a8010c020b0240200141ffff0371200741027420066a41900c6a28020022012f018a0c6a41016a410b4b0d00200341286a2001360200200341206a2005360200200320043602242003200436021c200320073602182003200636021420032009360210200341a0016a200341106a4100200810ed040c030b200341286a2001360200200341206a2005360200200320043602242003200436021c200320073602182003200636021420032009360210200341106a410110ef040b200320083602a8010b200320053602a401200320043602a0010b20032802a801210820032802a001210420032802a40122052802002201450d0020012f018a0c220941044b0d00200441016a21060240034020012802002207450d01200941ffff03712109200641016a210b024002400240024020012f01880c220a0d0020072f018a0c0d01200341246a410136020020034201370214200341f4a9c200360210200341043602b40120034188a4c2003602b0012003200341b0016a360220200341106a4190a4c200103a000b2007200a417f6a220c4102746a418c0c6a280200210a200320013602c801200320063602c4012003200a3602c001200320063602bc012003200c3602b801200320073602b4012003200b3602b00102402009200a2f018a0c6a41016a410b4b0d00200341106a41186a200341b0016a41186a280200360200200341106a41106a200341b0016a41106a290300370300200341106a41086a200341b0016a41086a290300370300200320032903b001370310200341086a200341106a10f004200328020c2101200328020821060c030b200341b0016a410520096b10ee040c010b2003200a41027420076a41900c6a280200220c3602c801200320063602c401200320013602c001200320063602bc012003200a3602b801200320073602b4012003200b3602b00102402009200c2f018a0c6a41016a410b4b0d00200341106a41186a200341b0016a41186a280200360200200341106a41106a200341b0016a41106a290300370300200341106a41086a200341b0016a41086a290300370300200320032903b0013703102003200341106a10f00420032802042101200328020021060c020b200341b0016a410520096b10ef040b410021010b2001450d0220012f018a0c220941044d0d000c020b0b200941ffff03710d00200241013a00000b2000200341b0026a418c0110850522014194016a200836020020014190016a20053602002001200436028c01200341c0036a24000b9f05010f7f23004190016b22042400024002400240200141186a28020022052f018a0c2206200141106a28020022072f018a0c220820021b2003490d00200841016a220920066a220a410c4f0d01200128020c210b2001280208210c2001280200210d2001280204220e2f018a0c210f2007200a3b018a0c200441086a2210200e200c410c6c6a2201410c6a2802003602002004200141046a22112902003703002011200141106a200f200c417f736a2212410c6c1086051a200741046a22012008410c6c6a221141086a20102802003602002011200429030037020020012009410c6c6a200541046a2006410c6c1085051a200441106a200e4188016a2210200c4107746a22114180011085051a20112010200c41016a22014107746a20124107741086051a20074188016a221020084107746a200441106a4180011085051a201020094107746a20054188016a20064107741085051a200e418c0c6a221020014102746a200c410274220c20106a41086a20124102741086051a02402001200f4f0d00200c200e6a41900c6a210c0340200c280200221220013b01880c2012200e360200200c41046a210c200f200141016a2201470d000b0b200e200e2f018a0c417f6a3b018a0c0240200d4102490d002006200a20096b470d03200720094102746a418c0c6a2005418c0c6a200641016a22124102741085051a200a20084d0d00200720084102746a41900c6a21012009210c03402001280200220e200c3b01880c200e2007360200200141046a2101200c41016a210c2012417f6a22120d000b0b20051030200020073602042000200b36020020002009410020021b20036a36020820044190016a24000f0b419ca7c20041910141b0a8c200102d000b41a0a4c200412a41cca4c200102d000b41f8a2c200412841a0a3c200102d000b8606040a7f017e037f017e230041a0036b220224000240024002400240200041186a2802002f018a0c220320016a2204410c4f0d00200041106a28020022052f018a0c22062001490d012005200620016b22073b018a0c200041186a220528020020043b018a0c200528020041046a22082001410c6c6a20082003410c6c1086051a20052802004188016a220820014107746a200820034107741086051a2006200741016a22036b22062001417f6a470d02200528020041046a200041106a22082802002003410c6c6a41046a2006410c6c22091085051a20052802004188016a200828020020034107746a4188016a2006410774220a1085051a20022008280200220b20074107746a4188016a4180011085052106200b2007410c6c6a220741046a290200210c200041046a28020022022000280208220b410c6c6a220d410c6a220e280200210f200e2007410c6a28020036020020064190016a41086a2207200f360200200d41046a220d2902002110200d200c3702002006201037039001200641a0026a2002200b4107746a4188016a22024180011085051a200220064180011085051a20064190016a410c6a200641a0026a418001108505210220064180016a41086a220b2007280200360200200620062903900137038001200641a0026a20024180011085051a200528020020096a2207410c6a200b280200360200200741046a2006290380013702002005280200200a6a4188016a200641a0026a4180011085051a200028020c21070240024020002802140d002007450d010c050b2007450d042008280200210820052802002207418c0c6a2200200141027422056a2000200420016b41027441046a1086051a2000200820034102746a418c0c6a20051085051a200441016a21034100210103402000280200220520013b01880c20052007360200200041046a21002003200141016a2201470d000b0b200641a0036a24000f0b4190a6c200413341c4a6c200102d000b41d4a6c200412741fca6c200102d000b41f8a2c200412841a0a3c200102d000b41d8a5c2004128418ca7c200102d000bd606040a7f017e047f017e230041a0036b220224000240024002400240200041106a28020022032f018a0c220420016a2205410c4f0d00200041186a2802002f018a0c22062001490d01200320053b018a0c200041186a2203280200200620016b22073b018a0c2002200328020022082001417f6a2209410774220a6a4188016a418001108505210620082009410c6c220b6a220241046a290200210c200041046a28020022082000280208220d410c6c6a220e410c6a220f2802002110200f2002410c6a28020036020020064190016a41086a22022010360200200e41046a220e2902002111200e200c3702002006201137039001200641a0026a2008200d4107746a4188016a22084180011085051a200820064180011085051a20064190016a410c6a200641a0026a418001108505210820064180016a41086a220d2002280200360200200620062903900137038001200641a0026a20084180011085051a200041106a22082802002004410c6c6a2202410c6a200d280200360200200241046a200629038001370200200828020020044107746a4188016a200641a0026a4180011085051a20092005200441016a22026b470d0220082802002002410c6c6a41046a200328020041046a200b1085051a200828020020024107746a4188016a20032802004188016a200a1085051a200328020041046a220920092001410c6c6a2007410c6c1086051a20032802004188016a2209200920014107746a20074107741086051a200028020c21090240024020002802140d002009450d010c050b2009450d042008280200220920024102746a418c0c6a20032802002208418c0c6a2200200141027422031085051a2000200020036a200741027441046a1086051a0240200520044d0d00200441027420096a41900c6a210003402000280200220320023b01880c20032009360200200041046a2100200241016a21022001417f6a22010d000b0b2007417f460d002008418c0c6a2102200741016a21034100210003402002280200220120003b01880c20012008360200200241046a21022003200041016a2200470d000b0b200641a0036a24000f0b41dca4c20041324190a5c200102d000b41a0a5c200412841c8a5c200102d000b41f8a2c200412841a0a3c200102d000b41d8a5c20041284180a6c200102d000be604010e7f23004190016b2202240002400240200141106a28020022032f018a0c220441016a2205200141186a28020022062f018a0c22076a2208410c4f0d00200128020821092001280200210a2001280204220b2f018a0c210c200320083b018a0c200241086a220d200b2009410c6c6a2201410c6a2802003602002002200141046a220e290200370300200e200141106a200c2009417f736a220f410c6c1086051a200341046a22012004410c6c6a220e41086a200d280200360200200e200229030037020020012005410c6c6a200641046a2007410c6c1085051a200241106a200b4188016a220d20094107746a220e4180011085051a200e200d200941016a22014107746a200f4107741086051a20034188016a220d20044107746a200241106a4180011085051a200d20054107746a20064188016a20074107741085051a200b418c0c6a220d20014102746a20094102742209200d6a41086a200f4102741086051a02402001200c4f0d002009200b6a41900c6a210903402009280200220f20013b01880c200f200b360200200941046a2109200c200141016a2201470d000b0b200b200b2f018a0c417f6a3b018a0c0240200a4102490d002007200820056b470d02200320054102746a418c0c6a2006418c0c6a200741016a22094102741085051a200820044d0d00200441027420036a41900c6a210103402001280200220f20053b01880c200f2003360200200141046a2101200541016a21052009417f6a22090d000b0b200610302000200b3602042000200a36020020024190016a24000f0b41a0a4c200412a41cca4c200102d000b41f8a2c200412841a0a3c200102d000bc80201087f200341146a2802002104200328020c210520032802082106200328020021070340200241186a210320022f018e0d21084100210902400240034020082009460d0202400240024020072003416c6a220a280200200a41086a280200220a20062006200a4b1b108805220b0d002006200a490d042006200a47220a0d022005200341786a2802002003280200220a20042004200a4b1b108805220b0d012004200a490d042004200a47210a0c020b4101210a200b417f4a0d010c030b4101210a200b4100480d020b200941016a2109200341186a2103200a0d000b20002001360204200041003602002000410c6a2009417f6a360200200041086a20023602000f0b200921080b02402001450d002001417f6a2101200220084102746a41900d6a28020021020c010b0b200042013702002000410c6a2008360200200041086a20023602000b9f06010e7f230041206b22032400024002400240024002402001450d0020032001417f6a2204200228028c0110f2040240024020032802042201450d00200328020021050c010b418c01102f2201450d0341002105200141003b018a01200141003602000b41bc01102f2206450d022006200136028c0141002107200641003b018a012006410036020020012006360200200141003b018801200320063602042003200541016a36020002400240024020022f018a01450d002006418c016a21082002410c6a210920024190016a210a200641046a210b034020092802002201417f4c0d07200941786a280200210c0240024020010d004101210d0c010b2001102f220d450d070b200d200c2001108505210e200341106a2004200a28020010f2042003280218210f024002402003280214220c450d002003280210210d0c010b418c01102f220c450d074100210d200c41003b018a01200c41003602000b2005200d470d0220062f018a01220d410b4f0d032006200d41016a22103b018a01200b200d410c6c6a220d2001360204200d200e360200200d2001360208200820104102746a200c360200200c2006360200200c20103b0188012003200f20032802086a41016a3602082009410c6a2109200a41046a210a200741016a220720022f018a01490d000b0b20002003290300370200200041086a200341086a2802003602000c030b41eaa0c2004130419ca1c200102d000b41aca1c200412041cca1c200102d000b418c01102f2206450d01200641003b018a01200641003602004100210a024020022f018a01450d002002410c6a210c200641046a21104100210a0340200c2802002201417f4c0d04200c41786a28020021090240024020010d004101210d0c010b2001102f220d450d040b200d20092001108505210d20062f018a012209410b4f0d052006200941016a3b018a0120102009410c6c6a22092001360208200920013602042009200d360200200c410c6a210c200a41016a220a20022f018a01490d000b0b2000200a36020820002006360204200041003602000b200341206a24000f0b102a000b102c000b41aca1c200412041fc80c200102d000bb81505017f017e0e7f017e067f23004190016b22022400200141106a2902002103200128020c210420012802082105200128020421062001280200210702400240024020002802042208450d00200028020021090c010b419002102f2208450d0141002109200841003b018e022008410036020020002008360204200041003602000b2003422088a7210a034020082f018e02220b41186c210c4100210d200841046a220e21014100210f034002400240024002400240200c200d470d00200b210f0c010b024020072001280200200128020822102005200520104b1b10880522110d0020052010490d01024020052010460d00200520104721100c030b024020042008200d6a221041106a280200201041186a2802002210200a2010200a491b10880522110d002010200a4b0d022010200a4721100c030b2011417f4c0d010c040b2011417f4a0d030b02402009450d002009417f6a21092008200f4102746a4190026a28020021080c050b02400240200b410a4b0d000240200f200b4f0d00200e200f41186c6a220141186a2001200b200f6b41186c1086051a0b200e200f41186c6a22012007360200200120033702102001200436020c20012005360208200120063602042008200b41016a3b018e020c010b410521014100210c02400240200f41054f0d0041042101200f210d0c010b4105210d02400240200f417b6a0e020201000b200f41796a210d4101210c410621010c010b4100210d4101210c0b419002102f2210450d06201041003b018e0220104100360200201020082f018e02220a2001417f736a22113b018e02200e200141186c6a220f280200210920024188016a200f41146a28020036020020024180016a200f410c6a2902003703002002200f2902043703780240024002400240024002400240024002402011410c4f0d00200a200141016a220f6b2011470d01201041046a200e200f41186c6a201141186c1085051a200820013b018e02200241e0006a41086a220a200241f8006a41086a290300370300200241e0006a41106a220b200241f8006a41106a2802003602002002200229037837036020102008200c1b220f41046a21010240200d41016a220c200f2f018e0222114b0d002001200c41186c6a2001200d41186c6a2011200d6b41186c1086051a0b2001200d41186c6a22012007360200200120033702102001200436020c2001200536020820012006360204200f201141016a3b018e02200241c8006a41086a200a2903002203370300200241c8006a41106a200b2802002201360200200220022903602212370348200241186a41106a2001360200200241186a41086a200337030020022012370318024002400240200828020022010d00410021040c010b410021042010210b2009210e034020082f018c02210f200241306a41106a2206200241186a41106a2213280200360200200241306a41086a2214200241186a41086a2215290300370300200220022903183703302001220c2f018e02220a410b490d0241002111410421010240200f4105490d00200f210102400240200f417b6a0e020201000b200f41796a210f41012111410621010c010b4100210f41012111410521010b41c002102f2210450d12201041003b018e02201041003602002010200c2f018e0222092001417f736a22053b018e02200241f8006a41086a2207200c200141186c6a220d41106a290200370300200241f8006a41106a2208200d41186a2802003602002002200d41086a2902003703782005410c4f0d052009200141016a22166b2005470d06200d41046a2802002109201041046a200d411c6a200541186c1085051a200c20013b018e02200241e0006a41086a22172007290300370300200241e0006a41106a221820082802003602002002200229037837036020102f018e02220d41016a2105200d410c4f0d07200a20016b22012005470d08200441016a210420104190026a200c20164102746a4190026a20014102741085051a4100210102400340201020014102746a4190026a280200220520013b018c02200520103602002001200d4f0d0120012001200d496a2201200d4d0d000b0b200241c8006a41106a22162018280200360200200241c8006a41086a22182017290300370300200220022903603703482010200c20111b22052f018e022101200820062802003602002007201429030037030020022002290330370378200541046a210a0240200f41016a220d20014b0d00200a200d41186c6a200a200f41186c6a2001200f6b41186c1086051a0b200141016a2111200a200f41186c6a220a200e360200200a2002290378370204200a410c6a2007290300370200200a41146a200828020036020020054190026a21070240200f41026a220a200141026a22084f0d002007200a4102746a2007200d4102746a2001200f6b4102741086051a0b2007200d4102746a200b360200200520113b018e020240200d20084f0d002005200f4102746a4194026a210103402001280200220d200f41016a220f3b018c02200d2005360200200141046a21012011200f470d000b0b201320162802003602002015201829030037030020022002290348370318200c21082010210b2009210e200c28020022010d000b0b200241106a200241186a41106a280200360200200241086a200241186a41086a2903003703002002200229031837030020002802042201450d072000280200210541c002102f220d450d10200d200136029002200d41003b018e02200d4100360200200141003b018c022001200d3602002000200d3602042000200541016a36020020052004470d08200d2f018e022205410b4f0d0941012101200d200541016a220f3b018e02200d200541186c6a220541106a200241086a290300370200200541186a200241106a280200360200200541086a2002290300370200200541046a2009360200200d4190026a200f4102746a20103602002010200f3b018c022010200d3602002000200028020841016a3602080c0c0b200241f8006a41106a2205200241186a41106a280200360200200241f8006a41086a2210200241186a41086a29030037030020022002290318370378200f41016a2101200c41046a210d0240200a200f4d22110d00200d200141186c6a200d200f41186c6a200a200f6b41186c1086051a0b200a41016a2107200d200f41186c6a220d200e360200200d2002290378370204200d410c6a2010290300370200200d41146a2005280200360200200c4190026a210d200a41026a2105024020110d00200f410274200d6a41086a200d20014102746a200a200f6b4102741086051a0b200c20073b018e02200d20014102746a200b360200200120054f0d09200a41016a2110200c2001417f6a22014102746a4194026a210d0340200d2802002205200141016a22013b018c022005200c360200200d41046a210d20102001470d000c0a0b0b2011410b41e8a2c2001042000b41f8a2c200412841a0a3c200102d000b2005410b41e8a2c2001042000b41f8a2c200412841a0a3c200102d000b2005410c41f8a3c2001042000b41f8a2c200412841a0a3c200102d000b41b2abc200412b41e0abc200102d000b41eaa0c2004130419ca1c200102d000b41aca1c200412041cca1c200102d000b410121012000200028020841016a3602080c010b20100d0102402006450d00200710300b410021012003a7450d00200410300b20024190016a240020010f0b200f41016a210f200141186a2101200d41186a210d0c000b0b0b102a000bbf1905107f017e087f017e017f230041c0066b2202240002400240024020002d00540d00200028020c21030c010b02400240200028020c22034106490d00200041186a28020021040c010b200321040b41012105200420002802504d0d010b2000410c6a21060240024020034106490d00200041186a22042802002103200041146a28020021070c010b200041146a2107200621040b024020030d00410121050c010b20042003417f6a22033602004100210520072003410c6c6a22042802042203450d00200428020821082004280200210420032109024003402004450d012004417f6a2104200320032f018a014102746a418c016a2802002103200928028c0121090c000b0b02402008450d0002400240024020092f018a010d004100210403404100210302402009280200220a450d00200441016a210b20092f0188012107200a21030b024041bc01418c0120041b450d00200910300b200b210420032109200720032f018a014f0d000b20032007410c6c6a41046a210a0240200b0d00200321090c020b200741027420036a4190016a28020021090240200b417f6a2204450d000340200928028c0121092004417f6a22040d000b0b4100210c0c020b200941046a210a41002107200921030b200741016a210c0b2008417f6a210d20032007410c6c6a220341086a280200210e0240200a280200220f450d00200041146a21102003410c6a2802002211ad422086200ead842112200241086a211320024180026a41146a2114200241a8046a410c6a211520024198036a410c6a2116034002400240024002400240024020002802042217450d002012422088a72104200028020021180340201741046a210320172f018a0c2219410c6c2107410021084100210a0340024002402007450d0002400240200f20032802002003280208220b2004200b2004491b108805221a0d00200b20044b0d01200b200447210b0c030b4101210b201a41004e0d020b200a21190b2018450d032018417f6a2118201720194102746a418c0c6a28020021170c020b2003410c6a2103200a41016a210a20084180016a2108200741746a2107200b0d000b0b201720086a220341086a21070240024002400240024002402001450d0002400240200341086a2208280200220b4106490d00200341146a2207280200210b200341106a280200210a0c010b200341106a210a0b200b450d022007200b417f6a220b360200200a200b41186c6a220728020c220b450d02200741106a290200211b02402007280200220a450d002007280204450d00200a10300b0240201b42ffffffff0383500d00200b10300b200828020022074106490d01200341146a2802000d080c070b02400240200628020022044106490d00200028021821042000280214210b0c010b2010210b0b02400240200b4520044572220a450d00200341086a2802002204210b024020044106490d00200341146a280200210b0b200b41024f0d010c090b200220123702ac042002200f3602a8042004410c6c200b6a41746a200241a8046a10e1020d0b200341086a28020021040b0240024020044106490d00200341146a22072802002104200341106a280200210b0c010b200341106a210b0b2004450d0220072004417f6a2204360200200b200441186c6a220428020c220b450d02200441106a290200211b200241a8046a41086a2208200441086a280200360200200220042902003703a80402400240200341086a221a28020022044106490d00200341146a2802002104200341106a28020021070c010b200341106a21070b2007450d032004450d03024020072004417f6a41186c6a22042802002207450d00200441046a280200450d00200710300b200420022903a804370200200441086a200828020036020002400240201a28020022044106490d00200341146a2802002104200341106a28020021030c010b200341106a21030b2003450d042004450d04200441186c20036a220341746a22042003417c6a2203280200201b422088a74102742207410275220810f302200428020020032802004102746a200b20071085051a2003200328020020086a3602000240201b42ffffffff0383500d00200b10300b200a0d070c0a0b2007450d050c060b418486c20041fc0041dc8ac2001050000b418486c20041fc0041dc8ac2001050000b418486c20041fc00418888c2001050000b418486c20041fc00419888c2001050000b41f588c20041d50141cc8ac2001050000b20002802042219450d00200028020021180340201941880c6a211a201941046a210320192f018a0c221c410c6c210741002108417f210a0340024002402007450d0002400240200f20032802002003280208220b2004200b2004491b10880522170d00200b20044b0d01200b200447210b0c030b4101210b201741004e0d022008211c0c010b200a41016a211c0b2018450d032018417f6a21182019201c4102746a418c0c6a28020021190c020b2003410c6a2103200841016a2108200a41016a210a201a41046a211a200741746a2107200b0d000b0b200241003a00ff01024002402018450d00201a2802002103024020184101460d00410121040340200320032f018a0c4102746a418c0c6a28020021032018200441016a2204470d000b0b20032f018a0c2104200241003602980320022004417f6a410020041b3602a00320022003410020041b36029c03200241a8046a20024198036a200241ff016a10ec0420024198036a200241a8046a418c011085051a20022802b405210b0240024020022802bc05220720022802b80522042f018a0c4f0d00200421030c010b03400240200428020022030d00410021030c020b200b41016a210b20042f01880c210720032104200720032f018a0c4f0d000b0b200241a8046a41086a20032007410c6c6a2204410c6a220a280200360200200441046a2204290200211b2004200229039803370200200a20024198036a41086a2802003602002002201b3703a804200241c0056a200320074107746a4188016a22044180011085051a200420164180011085051a2015200241c0056a4180011085051a0240200b450d00200b417f6a2204450d00200741027420036a41900c6a28020021030340200328028c0c21032004417f6a22040d000b0b20024180026a200241a8046a418c011085051a0c010b2002200a3602b004200220193602ac04200241003602a80420024180026a200241a8046a200241ff016a10ec040b2002280290022103200229038802211b200228028402210b200228028002210a20024184016a201441f8001085051a20002000280208417f6a360208024020022d00ff01450d0020002802042204450d0220002802002208450d03200428028c0c210720002008417f6a3602002000200736020420074100360200200410300b20034102460d00200241a8046a20024184016a41f8001085051a201b422088a721040240200b450d00200a10300b20022003360204200220043602002013200241a8046a41f8001085051a200210d9020b2012a7450d02200f10300c020b41b2abc200412b41d0acc200102d000b41b7a2c200412141d8a2c200102d000b200d450d020240024002400240200c20092f018a01490d004100210403404100210302402009280200220b450d00200441016a210720092f018801210c200b21030b024041bc01418c0120041b450d00200910300b024020030d00410021090c050b2007210420032109200c20032f018a014f0d000b2003200c410c6c6a41046a210b024020070d00200321090c020b200c41027420036a4190016a280200210902402007417f6a2204450d000340200928028c0121092004417f6a22040d000b0b410021040c020b2009200c410c6c6a41046a210b200921030b200c41016a21040b2003200c410c6c6a2203410c6a2802002111200341086a280200210e200b280200210f0b200d417f6a210d0240200f0d002004210c0c020b2011ad422086200ead8421122004210c0c000b0b200d450d0003400240024002400240200c20092f018a01490d004100210403404100210302402009280200220a450d00200441016a210b20092f0188012107200a21030b024041bc01418c0120041b450d00200910300b024020030d00410021090c050b200b210420032109200720032f018a014f0d000b20032007410c6c6a41046a210a0240200b0d00200321090c020b200741027420036a4190016a28020021090240200b417f6a2204450d000340200928028c0121092004417f6a22040d000b0b4100210c0c020b2009200c410c6c6a41046a210a20092103200c21070b200741016a210c0b20032007410c6c6a41086a280200210e200a280200210f0b200f450d02200d417f6a210d0240200e450d00200f10300b200d0d000b0b41002103034020092802002104024041bc01418c0120031b450d00200910300b2003417f6a21032004210920040d000b410021050b200241c0066a240020050b1c00200128021841e488c20041112001411c6a28020028020c1100000bac1b03177f017e037f23004190076b2202240002400240024020002d00540d00200028020c21030c010b02400240200028020c22034106490d00200041186a28020021040c010b200321040b41012105200420002802504d0d010b2000410c6a21060240024020034106490d00200041186a22042802002103200041146a28020021070c010b200041146a2107200621040b024020030d00410121050c010b20042003417f6a22033602004100210520072003410c6c6a22032802042204450d00200328020821082003280200210720042103024003402007450d012007417f6a2107200420042f018e024102746a4190026a280200210420032802900221030c000b0b0240024002402008450d000240024002400240024020032f018e020d0041002107034041002104024020032802002209450d00200741016a210a20032f018c02210b200921040b024041c00241900220071b450d00200310300b2004450d04200a210720042103200b20042f018e024f0d000b2004200b41186c6a41046a21090240200a0d00200421030c020b200b41027420046a4194026a28020021030240200a417f6a2207450d00034020032802900221032007417f6a22070d000b0b410021070c020b200341046a21094100210b200321040b200b41016a21070b2008417f6a21082004200b41186c6a220441146a280200210c200441106a280200210d200441086a280200210e2009280200220f450d01200041146a21102004410c6a2802002111200441186a2802002112200241186a410c6a2113200241186a41086a2114200241c8026a2115200241e8046a41186a2116200241d0036a41186a21170340200220123602142002200c3602102002200d36020c200220113602082002200e3602042002200f36020020002802042204450d05200241e8046a20002802002004200210f10420022802e8044101460d0520022802f00420022802f4044107746a2204418c026a210b024002400240024002400240024002400240024002402001450d0002400240200b280200220a4106490d0020044198026a2209280200210a20044194026a28020021180c010b20044194026a2118200b21090b200a450d022009200a417f6a220a3602002018200a41186c6a220a28020c2209450d02200a41106a29020021190240200a2802002218450d00200a280204450d00201810300b0240201942ffffffff0383500d00200910300b200b280200220b4106490d0120044198026a2802000d070c060b024002402006280200220a4106490d002000280218210a200028021421090c010b201021090b02400240200945200a45722218450d00200b280200220a21090240200a4106490d0020044198026a28020021090b200941024f0d010c080b200241e8046a41106a200241106a290300370300200241e8046a41086a200241086a290300370300200220022903003703e804200a410c6c20096a41746a200241e8046a10f3040d0a200b280200210a0b02400240200a4106490d0020044198026a2209280200210a20044194026a280200211a0c010b20044194026a211a200b21090b200a450d022009200a417f6a220a360200201a200a41186c6a220a28020c221a450d02200a41106a2902002119200241e8046a41086a221b200a41086a2802003602002002200a2902003703e80402400240200b280200220a4106490d0020044198026a280200210a20044194026a28020021090c010b20044194026a21090b2009450d03200a450d0302402009200a417f6a41186c6a220a2802002209450d00200a41046a280200450d00200910300b200a20022903e804370200200a41086a201b28020036020002400240200b280200220b4106490d0020044198026a280200210b20044194026a28020021040c010b20044194026a21040b2004450d04200b450d04200b41186c20046a220441746a220b2004417c6a22042802002019422088a7410274220a410275220910f302200b28020020042802004102746a201a200a1085051a2004200428020020096a3602000240201942ffffffff0383500d00201a10300b20180d060c090b200b450d040c050b418486c20041fc0041dc8ac2001050000b418486c20041fc0041dc8ac2001050000b418486c20041fc00418888c2001050000b418486c20041fc00419888c2001050000b20002802042204450d0020024190026a20002802002004200210f1042002280290024101460d00200228029c022104200228029802210a200228029402210b200241003a00a70202400240200b450d00200a20044102746a41900d6a28020021040240200b417f6a220b450d000340200420042f018e0d4102746a41900d6a2802002104200b417f6a220b0d000b0b20042f018e0d210b200241003602d0032002200b417f6a4100200b1b3602d803200220044100200b1b3602d403200241e8046a200241d0036a200241a7026a10e704200241d0036a200241e8046a4198011085051a200228028006210902400240200228028806220a200228028406220b2f018e0d4f0d00200b21040c010b03400240200b28020022040d00410021040c020b200941016a2109200b2f018c0d210a2004210b200a20042f018e0d4f0d000b0b200241e8046a41106a2004200a41186c6a220b41146a2218290200370300200241e8046a41086a200b410c6a221a290200370300200b41046a220b2902002119200b20022903d003370200201a200241d0036a41086a2903003702002018200241d0036a41106a290300370200200220193703e80420024190066a2004200a4107746a418c026a220b4180011085051a200b20174180011085051a201620024190066a4180011085051a02402009450d002009417f6a220b450d00200a41027420046a41940d6a2802002104034020042802900d2104200b417f6a220b0d000b0b200241a8026a200241e8046a4198011085051a0c010b200220043602f0042002200a3602ec04200241003602e804200241a8026a200241e8046a200241a7026a10e7040b20022802c402210420022902bc02211920022802b802211820022802b402211a20022802ac02210920022802a802211b20024198016a201541f8001085051a20002000280208417f6a360208024020022d00a702450d002000280204220b450d022000280200221c450d03200b2802900d210a2000201c417f6a3602002000200a360204200a4100360200200b10300b20044102460d00200241e8046a20024198016a41f8001085051a2019422088211902402009450d00201b10300b2019a7210902402018450d00201a10300b2002200436021c200220093602182014200241e8046a41f8001085052104024020094106490d0020022802202118024020022802242204450d002018200441186c6a210a20182104034002402004280200220b450d00200441046a280200450d00200b10300b0240200441106a28020041ffffffff0371450d002004410c6a28020010300b200441186a2204200a470d000b0b200941186c450d01201810300c010b2009450d002004200941186c6a210920132104034002402004417c6a220b280200220a450d002004280200450d00200a10300b0240200b41106a28020041ffffffff0371450d00200441086a28020010300b200441186a2104200b41186a2009470d000b0b02402002280204450d00200228020010300b2002280210450d02200228020c10300c020b41b2abc200412b41d0acc200102d000b41b7a2c200412141d8a2c200102d000b2008450d0302402003450d000240024002400240200720032f018e02490d0041002107034041002104024020032802002209450d00200741016a210a20032f018c02210b200921040b024041c00241900220071b450d00200310300b024020040d00410021030c050b200a210720042103200b20042f018e024f0d000b2004200b41186c6a41046a21090240200a0d00200421030c020b200b41027420046a4194026a28020021030240200a417f6a2207450d00034020032802900221032007417f6a22070d000b0b410021070c020b2003200741186c6a41046a2109200321042007210b0b200b41016a21070b2004200b41186c6a220441186a2802002112200441146a280200210c200441106a280200210d2004410c6a2802002111200441086a280200210e2009280200210f0b2008417f6a2108200f0d010c030b0b41b2abc200412b41d4a8c200102d000b00000b2008450d014100210003400240024002400240200720032f018e02490d0041002107034041002104024020032802002209450d00200741016a210a20032f018c02210b200921040b024041c00241900220071b450d00200310300b024020040d00410021030c050b200a210720042103200b20042f018e024f0d000b2004200b41186c6a41046a21090240200a0d00200421030c020b200b41027420046a4194026a28020021030240200a417f6a2207450d00034020032802900221032007417f6a22070d000b0b410021070c020b2003200741186c6a41046a2109200321042007210b0b200b41016a21070b2004200b41186c6a220441146a280200210c200441106a280200210d200441086a280200210e200928020021000b024020000d00410021050c050b0240200e450d00200010300b2008417f6a21080240200c450d00200d10300b2008450d020c000b0b2003450d020b41002104034020032802002107024041c00241900220041b450d00200310300b2004417f6a21042007210320070d000b410021050c010b41f588c20041d50141cc8ac2001050000b20024190076a240020050b1c00200128021841ec8ac20041102001411c6a28020028020c1100000b1c00200128021841f08fc200410c2001411c6a28020028020c1100000ba20a010a7f230041206b220224002000280200210320002001360200200220003602040240024002400240024002400240024002400240024002400240024002400240200320014d0d0002400240200028020422034125490d00200041106a28020021010c010b200321010b2001417f6a2204450d0c2001417e6a210541002101034002400240200341254922060d00200041106a28020021072000410c6a28020021080c010b200041096a2108200321070b200720014d0d02200141016a2107200820016a2d000021080240024020060d00200041106a2206280200220320074d0d0b200628020021032000410c6a22002802002106200028020020016a41016a2d000021000c010b200320074d0d0a200041096a2106200020016a410a6a2d000021000b200320014d0d03200620016a20084104742000411874411c76723a000020022802042100024020052001460d0020002802042103200721010c010b0b02400240200028020422014125490d00200041106a2203280200220120044d0d0b200328020021012000410c6a22002802002103200028020020046a2d000021000c010b200120044d0d0a200041096a220320046a2d000021000b200120044d0d03200320046a21010c0d0b200320014f0d0d200241043602082002410436020c200041046a210802400240200028020422074125490d00200041106a220328020021012000410c6a28020021060c010b200041096a21062007210120082103412421070b024020012007470d00200241106a2008410110bd02024020022802104101470d00200241186a2802000d0541d099c200411141e499c200102d000b200041106a220328020021012000410c6a28020021060b200620016a41003a00002003200328020041016a360200024002402002280204220328020422004125490d00200341106a28020021010c010b200021010b024020014102490d00200341086a21092001417e6a2101200228020c410771210a2002280208410771210b200341096a2104034002400240200041254922060d0020032802102107200328020c21080c010b20042108200021070b200720014d0d06200141016a2107200820016a2d000021080240024020060d002003280210220020074d0d0d200328020c20016a41016a2d0000200a76210620032802102100200328020c21050c010b200020074d0d0c200920016a41026a2d0000200a762106200421050b200020074d0d07200520016a41016a20062008200b74723a00002001417f6a210120032802042100200741014b0d000b0b0240024020004125490d00200341106a2201280200450d0c200128020021002003410c6a2201280200210320012802002d000021070c010b2000450d0b200341096a22032d000021070b200228020c21012000450d062003200741ff01712001410771763a00000c0d0b2001200741dc9dc2001033000b2001200341fc9dc2001033000b20042001419c9ec2001033000b102a000b2001200741a49bc2001033000b200141016a200041c49bc2001033000b4100410041bc9ec2001033000b200141016a200341ec9dc2001033000b20042001418c9ec2001033000b200141016a200041b49bc2001033000b4100410041ac9ec2001033000b0240024020034125490d00200041106a2201280200450d04200128020021032000410c6a2200280200210120002802002d000021000c010b2003450d03200041096a22012d000021000b20030d0041004100419c9ec2001033000b200120004104743a00000b200241206a24000f0b41004100418c9ec2001033000b882251027f027e017f017e017f017e017f027e017f017e017f017e017f027e017f017e017f017e017f027e017f017e017f017e017f027e017f017e017f017e017f027e017f017e017f017e017f017e017f017e017f017e017f027e017f017e017f017e017f037e017f027e017f017e017f017e017f027e017f017e017f017e017f017e017f027e017f017e017f017e017f037e017f027e017f017e017f017e017f037e137f230022022103200241a0046b41607122022400200129030021044200210520014200370300200141386a22062903002107200141306a22082903002109200141286a220a290300210b200141206a290300210c20014198016a220d290300210e20014190016a220f290300211020014188016a2211290300211220014180016a2903002113200141d8016a22142903002115200141d0016a22162903002117200141c8016a22182903002119200141c0016a290300211a20014198026a221b290300211c20014190026a221d290300211e20014188026a221f290300212020014180026a2903002121200141f8026a22222903002123200141f0026a22242903002125200141e8026a22262903002127200141e0026a2903002128200141b8036a2229290300212a200141b0036a222b290300212c200141a8036a222d290300212e200141a0036a222f2903002130200141c0036a2231290300213220014180036a2233290300213420014188036a290300213520014190036a2236290300213720014198036a22382903002139200141c0026a223a290300213b200141c8026a290300213c200141d0026a290300213d200141d8026a223e290300213f200141a0026a2903002140200141a8026a22412903002142200141b0026a22432903002144200141b8026a22452903002146200141e0016a2903002147200141e8016a22482903002149200141f0016a224a290300214b200141f8016a224c290300214d200141a0016a224e290300214f200141a8016a2903002150200141b0016a22512903002152200141b8016a22532903002154200141e0006a22552903002156200141e8006a2903002157200141f0006a2903002158200141f8006a2259290300215a200141c0006a290300215b200141c8006a225c290300215d200141d0006a225e290300215f200141d8006a2260290300216120012903082162200129031021632002200141186a226429030037039801200220633703900120022062370388012002200437038001200220613703182002205f3703102002205d3703082002205b3703002002205a37039804200220583703900420022057370388042002205637038004200220543703f803200220523703f003200220503703e8032002204f3703e0032002204d3703d8032002204b3703d003200220493703c803200220473703c003200220463703b803200220443703b003200220423703a803200220403703a0032002203f370398032002203d370390032002203c370388032002203b37038003200220393703f802200220373703f002200220353703e802200220343703e002410a21650240024002400240024002400240024002402004a70e09080102030405060700080b200241c8026a41106a200229039801370300200241c8026a41086a200229039001370300200241b0026a41086a200229038804370300200241b0026a41106a200229039004370300200241a0026a41086a20022903e80337030020024190026a41086a20022903f80337030020022002290388013703c80220022002290380043703b002200220022903e0033703a002200220022903f00337039002200241f8016a41106a20022903d803370300200241f8016a41086a20022903d003370300200241e0016a41086a200229038803370300200241e0016a41106a200229039003370300200241d0016a41086a20022903e802370300200220022903c8033703f80120022002290380033703e001200220022903e0023703d001200220022800f102360278200220022800f40236007b200241c8006a41206a202a370300200241c8006a41186a202c370300200241c8006a41106a202e3703002002203037035020022032370370200220393703482037a72165420721050c070b200241c8006a41186a200b370300200241d0006a200229039801370300200241c8006a41206a2009370300200241c8006a41286a20073703002002200c3703582002200228008c0136007b200220022800890136027820022002290390013703482062a721650c060b200241c8026a41106a200229039801370300200241c8026a41086a200229039001370300200241c8006a41086a2002290310370300200241c8006a41106a2002290318370300200241c8006a41286a200229039004370300200241c8006a41206a20022903880437030020022002290388013703c802200220022800013602782002200228000436007b200220022903083703482002200229038004370360205ba72165420121050c050b200241c8026a41106a200229039801370300200241c8026a41086a200229039001370300200241b0026a41086a200229038804370300200241b0026a41106a200229039004370300200241c8006a41186a200e3703002002201337034820022002290388013703c80220022002290380043703b00220022002280099043602782002200228009c0436007b2002201237035020022010370358200241c8006a41286a20022903e803370300200220022903e003370368205aa72165420221050c040b200241c8026a41106a200229039801370300200241c8026a41086a200229039001370300200241b0026a41086a200229038804370300200241b0026a41106a200229039004370300200241a0026a41086a20022903e80337030020022002290388013703c80220022002290380043703b002200220022903e0033703a002200220022800f40336007b200220022800f103360278200241c8006a41186a2017370300200241c8006a41106a2019370300200241c8006a41206a20153703002002201a37035020022047370370200220543703482052a72165420321050c030b200241c8026a41106a200229039801370300200241c8026a41086a200229039001370300200241b0026a41086a200229038804370300200241b0026a41106a200229039004370300200241a0026a41086a20022903e80337030020024190026a41086a20022903f80337030020022002290388013703c80220022002290380043703b002200220022903e0033703a002200220022903f00337039002200241c8006a41206a201e370300200241c8006a41186a2020370300200241c8006a41086a20022903d803370300200241c8006a41286a201c37030020022021370358200220022800cc0336007b200220022800c903360278200220022903d0033703482049a72165420421050c020b200241c8026a41106a200229039801370300200241c8026a41086a200229039001370300200241b0026a41086a200229038804370300200241b0026a41106a200229039004370300200241a0026a41086a20022903e80337030020024190026a41086a20022903f80337030020022002290388013703c80220022002290380043703b002200220022903e0033703a002200220022903f00337039002200241f8016a41106a20022903d803370300200241f8016a41086a20022903d003370300200241c8006a41086a20022903b003370300200241c8006a41106a20022903b803370300200241c8006a41206a200229038803370300200241c8006a41286a200229039003370300200220022903c8033703f801200220022800a103360278200220022800a40336007b200220022903a80337034820022002290380033703602040a72165420521050c010b200241c8026a41106a200229039801370300200241c8026a41086a200229039001370300200241b0026a41086a200229038804370300200241b0026a41106a200229039004370300200241a0026a41086a20022903e80337030020024190026a41086a20022903f80337030020022002290388013703c80220022002290380043703b002200220022903e0033703a002200220022903f00337039002200241f8016a41106a20022903d803370300200241f8016a41086a20022903d003370300200241e0016a41086a200229038803370300200241e0016a41106a200229039003370300200241c8006a41186a2023370300200220253703582002202737035020022028370348200220022903c8033703f80120022002290380033703e00120022002280099033602782002200228009c0336007b200241c8006a41286a20022903e802370300200220022903e002370368203fa72165420621050b20024180046a41086a2266200241c8026a41086a29030037030020024180046a41106a2267200241c8026a41106a290300370300200220022903c80237038004200241e0036a41086a2268200241b0026a41086a290300370300200241e0036a41106a2269200241b0026a41106a290300370300200220022903b0023703e00320024180036a41086a226a200241a0026a41086a290300370300200220022903a00237038003200241e0026a41086a226b20024190026a41086a29030037030020022002290390023703e002200241c0036a41106a226c200241f8016a41106a290300370300200241c0036a41086a226d200241f8016a41086a290300370300200220022903f8013703c003200241a0036a41106a226e200241e0016a41106a290300370300200241a0036a41086a226f200241e0016a41086a290300370300200220022903e0013703a003200241386a41086a2270200241d0016a41086a290300370300200220022903d001370338200241306a227120024180016a41306a290300370300200241286a227220024180016a41286a290300370300200241206a227320024180016a41206a290300370300200241186a227420024180016a41186a290300370300200241106a227520024180016a41106a290300370300200241086a227620024180016a41086a2903003703002002200229038001370300200020653a0000200041046a200228007b36000020002002280278360001200041306a200241c8006a41286a290300370000200041286a200241c8006a41206a290300370000200041206a200241c8006a41186a290300370000200041186a200241c8006a41106a290300370000200041106a200241c8006a41086a290300370000200041086a20022903483700002001109c0120602061370300205e205f370300205c205d3703002001205b3703402006200737030020082009370300200a200b3703002001200c370320200d200e370300200f2010370300201120123703002001201337038001200120053703002059205a3703002001200229038004370308200141106a206629030037030020642067290300370300205520022903e003370300205541086a2068290300370300205541106a2069290300370300204e200229038003370300204e41086a206a290300370300200120473703e0012014201537030020162017370300201820193703002001201a3703c001204520463703002043204437030020412042370300200120403703a002201b201c370300201d201e370300201f202037030020012021370380022053206b290300370300205120022903e002370300204820022903c003370300204a206d290300370300204c206c290300370300200120283703e002202620273703002024202537030020222023370300203e203f370300203a41106a206e290300370300203a41086a206f290300370300203a20022903a003370300203341086a2070290300370300203320022903383703002031207129030037030020292072290300370300202b2073290300370300202d2074290300370300202f20752903003703002038207629030037030020362002290300370300200324000b970401017f410021010240024002400240024002400240024002402000280200417f6a0e080001020304050607080b20002d0008450f0b20002d00080d0641014102200041c0006a2d00001b0f0b20002d00080d0541012101200041c0006a2d00000d0541024103200041f8006a2d00001b0f0b20002d00080d0441012101200041c0006a2d00000d0441022101200041f8006a2d00000d0441034104200041b0016a2d00001b0f0b20002d00080d0341012101200041c0006a2d00000d0341022101200041f8006a2d00000d0341032101200041b0016a2d00000d0341044105200041e8016a2d00001b0f0b20002d00080d0241012101200041c0006a2d00000d0241022101200041f8006a2d00000d0241032101200041b0016a2d00000d0241042101200041e8016a2d00000d0241054106200041a0026a2d00001b0f0b20002d00080d0141012101200041c0006a2d00000d0141022101200041f8006a2d00000d0141032101200041b0016a2d00000d0141042101200041e8016a2d00000d0141052101200041a0026a2d00000d0141064107200041d8026a2d00001b21010c010b20002d00080d0041012101200041c0006a2d00000d0041022101200041f8006a2d00000d0041032101200041b0016a2d00000d0041042101200041e8016a2d00000d0041052101200041a0026a2d00000d0041062101200041d8026a2d00000d004107410820004190036a2d00001b0f0b20010ba104010e7f23004180046b22042400024002400240200141186a28020022052f01ae2b2206200141106a28020022072f01ae2b220820021b2003490d00200841016a220920066a220a410c4f0d01200128020c210b2001280208210c2001280200210d2001280204220e2f01ae2b210f2007200a3b01ae2b200441086a200e200c41f8036c6a220141f8031085051a2001200141f8036a200f200c417f736a221041f8036c1086051a2007200841f8036c6a200441086a41f8031085051a2007200941f8036c6a2005200641f8036c1085051a200e41b02b6a2211200c41016a22014102746a200c410274220c20116a41086a20104102741086051a02402001200f4f0d00200c200e6a41b42b6a210c0340200c280200221020013b01ac2b2010200e3602a82b200c41046a210c200f200141016a2201470d000b0b200e200e2f01ae2b417f6a3b01ae2b0240200d4102490d002006200a20096b470d03200720094102746a41b02b6a200541b02b6a200641016a22104102741085051a200a20084d0d00200841027420076a41b42b6a21012009210c03402001280200220e200c3b01ac2b200e20073602a82b200141046a2101200c41016a210c2010417f6a22100d000b0b20051030200020073602042000200b36020020002009410020021b20036a36020820044180046a24000f0b419ca7c20041910141b0a8c200102d000b41a0a4c200412a41cca4c200102d000b41f8a2c200412841a0a3c200102d000beb0301097f230041f0076b220224000240024002400240200041186a2802002f01ae2b220320016a2204410c4f0d00200041106a28020022052f01ae2b22062001490d012005200620016b22073b01ae2b200041186a220528020020043b01ae2b20052802002208200141f8036c6a2008200341f8036c1086051a2006200741016a22036b22062001417f6a470d022005280200200041106a2208280200200341f8036c6a200641f8036c22091085051a20082802002106200241f8036a200041046a280200200028020841f8036c6a220a41f8031085051a200a2006200741f8036c6a41f8031086051a2002200241f8036a41f8031085052106200528020020096a200641f8031085051a200028020c21020240024020002802140d002002450d010c050b2002450d04200828020021072005280200220241b02b6a2200200141027422056a2000200420016b41027441046a1086051a2000200720034102746a41b02b6a20051085051a200441016a21044100210103402000280200220520013b01ac2b200520023602a82b200041046a21002004200141016a2201470d000b0b200641f0076a24000f0b4190a6c200413341c4a6c200102d000b41d4a6c200412741fca6c200102d000b41f8a2c200412841a0a3c200102d000b41d8a5c2004128418ca7c200102d000bd80b03077f027e037f230041e0076b2203240020012802002104200128020422052f01a6292106200341e0036a20052001280208220741d0036c6a220141d0031085051a2001200141d0036a20062007417f736a220841d0036c1086051a200541f0276a220920074104746a220141086a290300210a2001290300210b20012009200741016a220c4104746a20084104741086051a20052006417f6a22013b01a629200341106a200341e0036a41d0031085051a0240200141ffff037141044b0d0002400240024020052802a0292206450d00200441016a21090240024020052f01a42922080d0020062f01a6290d01200341f4036a4101360200200342013702e403200341f4a9c2003602e003200341043602c40720034188a4c2003602c0072003200341c0076a3602f003200341e0036a4190a4c200103a000b024020062008417f6a22084102746a41a8296a280200220d2f01a629200141ffff03716a41016a410b4b0d00200341f8036a2005360200200341f0036a200d360200200320043602f403200320043602ec03200320083602e803200320063602e403200320093602e003200341b0076a200341e0036a41012007108c010c040b200341f8036a2005360200200341f0036a200d360200200320043602f403200320043602ec03200320083602e803200320063602e403200320093602e003200341e0036a4101108d012003200c3602b8070c020b0240200141ffff0371200841027420066a41ac296a28020022012f01a6296a41016a410b4b0d00200341f8036a2001360200200341f0036a2005360200200320043602f403200320043602ec03200320083602e803200320063602e403200320093602e003200341b0076a200341e0036a41002007108c010c030b200341f8036a2001360200200341f0036a2005360200200320043602f403200320043602ec03200320083602e803200320063602e403200320093602e003200341e0036a4101108e010b200320073602b8070b200320053602b407200320043602b0070b20032802b807210720032802b007210420032802b40722052802a0292201450d0020012f01a629220941044b0d00200441016a21060240034020012802a0292208450d01200941ffff03712109200641016a210d024002400240024020012f01a429220c0d0020082f01a6290d01200341f4036a4101360200200342013702e403200341f4a9c2003602e003200341043602c40720034188a4c2003602c0072003200341c0076a3602f003200341e0036a4190a4c200103a000b2008200c417f6a220e4102746a41a8296a280200210c200320013602d807200320063602d4072003200c3602d007200320063602cc072003200e3602c807200320083602c4072003200d3602c00702402009200c2f01a6296a41016a410b4b0d00200341e0036a41186a200341c0076a41186a280200360200200341e0036a41106a200341c0076a41106a290300370300200341e0036a41086a200341c0076a41086a290300370300200320032903c0073703e003200341086a200341e0036a108f01200328020c2101200328020821060c030b200341c0076a410520096b108d010c010b2003200c41027420086a41ac296a280200220e3602d807200320063602d407200320013602d007200320063602cc072003200c3602c807200320083602c4072003200d3602c00702402009200e2f01a6296a41016a410b4b0d00200341e0036a41186a200341c0076a41186a280200360200200341e0036a41106a200341c0076a41106a290300370300200341e0036a41086a200341c0076a41086a290300370300200320032903c0073703e0032003200341e0036a108f0120032802042101200328020021060c020b200341c0076a410520096b108e010b410021010b2001450d0220012f01a629220941044d0d000c020b0b200941ffff03710d00200241013a00000b2000200341106a41d003108505220141d8036a200a3703002001200b3703d003200141e8036a2007360200200141e4036a2005360200200120043602e003200341e0076a24000bd80402077f047e200341d1036a2104034020022f01ae2b210520022106410021070240024003400240200722082005470d00200521080c030b024020032006109101220941ff01710d00024002400240024002400240024020032d00d003220920062d00d0032207470d002009417f6a0e06060102030405090b417f410120092007491b21090c060b20094102470d072004200641d1036a41041088052209450d07417f410120094100481b21090c050b20094103470d062004200641d1036a41081088052209450d06417f410120094100481b21090c040b20094104470d052004200641d1036a41101088052209450d05417f410120094100481b21090c030b20094105470d042004200641d1036a41201088052209450d04417f410120094100481b21090c020b20094106470d03024020032802d403200641d4036a280200200641dc036a280200220920032802dc032207200720094b1b108805220a0d00417f200720094720072009491b21090c020b417f4101200a4100481b21090c010b20094101470d02417f20032903d803220b20062903d803220c85200341e0036a290300220d200641e0036a290300220e8584420052200b200c54200d200e54200d200e511b1b21090b200841016a2107200641f8036a2106200941ff01714101460d000b200941187441187541016a0e020100010b20002001360204200041003602002000410c6a2008360200200041086a20023602000f0b02402001450d002001417f6a2101200220084102746a41b02b6a28020021020c010b0b200042013702002000410c6a2008360200200041086a20023602000b952f01017f230041d00a6b22022400024020002802000d00200041086a2100024002400240024002400240024002400240024020012802000e09010203040506070800010b200241c8036a200141086a10f10120024180046a200141c0006a10f101200241b8046a200141f8006a10f101200241f0046a200141b0016a10f101200241a8056a200141e8016a10f101200241e0056a200141a0026a10f10120024198066a200141d8026a10f101200241d0066a20014190036a10f101200241c0076a200241c8036a41306a29030037030020024188076a41306a200241c8036a41286a29030037030020024188076a41286a200241c8036a41206a29030037030020024188076a41206a200241c8036a41186a29030037030020024188076a41186a200241c8036a41106a29030037030020024188076a41106a200241c8036a41086a29030037030020024188076a41c0006a200229038004370300200241d0076a20024180046a41086a290300370300200241d8076a20024180046a41106a290300370300200241e0076a20024180046a41186a290300370300200241e8076a20024180046a41206a290300370300200241f0076a20024180046a41286a290300370300200241f8076a20024180046a41306a290300370300200220022903c80337039007200241b0086a200241b8046a41306a290300370300200241a8086a200241b8046a41286a290300370300200241a0086a200241b8046a41206a29030037030020024198086a200241b8046a41186a29030037030020024190086a200241b8046a41106a29030037030020024188086a200241b8046a41086a29030037030020024188076a41f8006a20022903b804370300200241e8086a200241f0046a41306a290300370300200241e0086a200241f0046a41286a290300370300200241d8086a200241f0046a41206a290300370300200241d0086a200241f0046a41186a290300370300200241c8086a200241f0046a41106a290300370300200241c0086a200241f0046a41086a29030037030020024188076a41b0016a20022903f004370300200241a0096a200241a8056a41306a29030037030020024198096a200241a8056a41286a29030037030020024190096a200241a8056a41206a29030037030020024188096a200241a8056a41186a29030037030020024180096a200241a8056a41106a290300370300200241f8086a200241a8056a41086a29030037030020024188076a41e8016a20022903a805370300200241d8096a200241e0056a41306a290300370300200241d0096a200241e0056a41286a290300370300200241c8096a200241e0056a41206a290300370300200241c0096a200241e0056a41186a290300370300200241b8096a200241e0056a41106a290300370300200241b0096a200241e0056a41086a29030037030020024188076a41a0026a20022903e005370300200241900a6a20024198066a41306a290300370300200241880a6a20024198066a41286a290300370300200241800a6a20024198066a41206a290300370300200241f8096a20024198066a41186a290300370300200241f0096a20024198066a41106a290300370300200241e8096a20024198066a41086a29030037030020024188076a41d8026a200229039806370300200241c80a6a200241d0066a41306a290300370300200241c00a6a200241d0066a41286a290300370300200241b80a6a200241d0066a41206a290300370300200241b00a6a200241d0066a41186a290300370300200241a80a6a200241d0066a41106a290300370300200241a00a6a200241d0066a41086a29030037030020024188076a4190036a20022903d00637030020024208370388070c080b20024200370388070c070b200241d0066a200141086a10f101200241c0076a200241d0066a41306a29030037030020024188076a41306a200241d0066a41286a29030037030020024188076a41286a200241d0066a41206a29030037030020024188076a41206a200241d0066a41186a29030037030020024188076a41186a200241d0066a41106a29030037030020024188076a41106a200241d0066a41086a2903003703002002420137038807200220022903d006370390070c060b20024198066a200141086a10f101200241d0066a200141c0006a10f101200241c0076a20024198066a41306a29030037030020024188076a41306a20024198066a41286a29030037030020024188076a41286a20024198066a41206a29030037030020024188076a41206a20024198066a41186a29030037030020024188076a41186a20024198066a41106a29030037030020024188076a41106a20024198066a41086a29030037030020024188076a41c0006a20022903d006370300200241d0076a200241d0066a41086a290300370300200241d8076a200241d0066a41106a290300370300200241e0076a200241d0066a41186a290300370300200241e8076a200241d0066a41206a290300370300200241f0076a200241d0066a41286a290300370300200241f8076a200241d0066a41306a29030037030020022002290398063703900720024202370388070c050b200241e0056a200141086a10f10120024198066a200141c0006a10f101200241d0066a200141f8006a10f101200241c0076a200241e0056a41306a29030037030020024188076a41306a200241e0056a41286a29030037030020024188076a41286a200241e0056a41206a29030037030020024188076a41206a200241e0056a41186a29030037030020024188076a41186a200241e0056a41106a29030037030020024188076a41106a200241e0056a41086a29030037030020024188076a41c0006a200229039806370300200241d0076a20024198066a41086a290300370300200241d8076a20024198066a41106a290300370300200241e0076a20024198066a41186a290300370300200241e8076a20024198066a41206a290300370300200241f0076a20024198066a41286a290300370300200241f8076a20024198066a41306a290300370300200220022903e00537039007200241b0086a200241d0066a41306a290300370300200241a8086a200241d0066a41286a290300370300200241a0086a200241d0066a41206a29030037030020024198086a200241d0066a41186a29030037030020024190086a200241d0066a41106a29030037030020024188086a200241d0066a41086a29030037030020024188076a41f8006a20022903d00637030020024203370388070c040b200241a8056a200141086a10f101200241e0056a200141c0006a10f10120024198066a200141f8006a10f101200241d0066a200141b0016a10f101200241c0076a200241a8056a41306a29030037030020024188076a41306a200241a8056a41286a29030037030020024188076a41286a200241a8056a41206a29030037030020024188076a41206a200241a8056a41186a29030037030020024188076a41186a200241a8056a41106a29030037030020024188076a41106a200241a8056a41086a29030037030020024188076a41c0006a20022903e005370300200241d0076a200241e0056a41086a290300370300200241d8076a200241e0056a41106a290300370300200241e0076a200241e0056a41186a290300370300200241e8076a200241e0056a41206a290300370300200241f0076a200241e0056a41286a290300370300200241f8076a200241e0056a41306a290300370300200220022903a80537039007200241b0086a20024198066a41306a290300370300200241a8086a20024198066a41286a290300370300200241a0086a20024198066a41206a29030037030020024198086a20024198066a41186a29030037030020024190086a20024198066a41106a29030037030020024188086a20024198066a41086a29030037030020024188076a41f8006a200229039806370300200241e8086a200241d0066a41306a290300370300200241e0086a200241d0066a41286a290300370300200241d8086a200241d0066a41206a290300370300200241d0086a200241d0066a41186a290300370300200241c8086a200241d0066a41106a290300370300200241c0086a200241d0066a41086a29030037030020024188076a41b0016a20022903d00637030020024204370388070c030b200241f0046a200141086a10f101200241a8056a200141c0006a10f101200241e0056a200141f8006a10f10120024198066a200141b0016a10f101200241d0066a200141e8016a10f101200241c0076a200241f0046a41306a29030037030020024188076a41306a200241f0046a41286a29030037030020024188076a41286a200241f0046a41206a29030037030020024188076a41206a200241f0046a41186a29030037030020024188076a41186a200241f0046a41106a29030037030020024188076a41106a200241f0046a41086a29030037030020024188076a41c0006a20022903a805370300200241d0076a200241a8056a41086a290300370300200241d8076a200241a8056a41106a290300370300200241e0076a200241a8056a41186a290300370300200241e8076a200241a8056a41206a290300370300200241f0076a200241a8056a41286a290300370300200241f8076a200241a8056a41306a290300370300200220022903f00437039007200241b0086a200241e0056a41306a290300370300200241a8086a200241e0056a41286a290300370300200241a0086a200241e0056a41206a29030037030020024198086a200241e0056a41186a29030037030020024190086a200241e0056a41106a29030037030020024188086a200241e0056a41086a29030037030020024188076a41f8006a20022903e005370300200241e8086a20024198066a41306a290300370300200241e0086a20024198066a41286a290300370300200241d8086a20024198066a41206a290300370300200241d0086a20024198066a41186a290300370300200241c8086a20024198066a41106a290300370300200241c0086a20024198066a41086a29030037030020024188076a41b0016a200229039806370300200241a0096a200241d0066a41306a29030037030020024198096a200241d0066a41286a29030037030020024190096a200241d0066a41206a29030037030020024188096a200241d0066a41186a29030037030020024180096a200241d0066a41106a290300370300200241f8086a200241d0066a41086a29030037030020024188076a41e8016a20022903d00637030020024205370388070c020b200241b8046a200141086a10f101200241f0046a200141c0006a10f101200241a8056a200141f8006a10f101200241e0056a200141b0016a10f10120024198066a200141e8016a10f101200241d0066a200141a0026a10f101200241c0076a200241b8046a41306a29030037030020024188076a41306a200241b8046a41286a29030037030020024188076a41286a200241b8046a41206a29030037030020024188076a41206a200241b8046a41186a29030037030020024188076a41186a200241b8046a41106a29030037030020024188076a41106a200241b8046a41086a29030037030020024188076a41c0006a20022903f004370300200241d0076a200241f0046a41086a290300370300200241d8076a200241f0046a41106a290300370300200241e0076a200241f0046a41186a290300370300200241e8076a200241f0046a41206a290300370300200241f0076a200241f0046a41286a290300370300200241f8076a200241f0046a41306a290300370300200220022903b80437039007200241b0086a200241a8056a41306a290300370300200241a8086a200241a8056a41286a290300370300200241a0086a200241a8056a41206a29030037030020024198086a200241a8056a41186a29030037030020024190086a200241a8056a41106a29030037030020024188086a200241a8056a41086a29030037030020024188076a41f8006a20022903a805370300200241e8086a200241e0056a41306a290300370300200241e0086a200241e0056a41286a290300370300200241d8086a200241e0056a41206a290300370300200241d0086a200241e0056a41186a290300370300200241c8086a200241e0056a41106a290300370300200241c0086a200241e0056a41086a29030037030020024188076a41b0016a20022903e005370300200241a0096a20024198066a41306a29030037030020024198096a20024198066a41286a29030037030020024190096a20024198066a41206a29030037030020024188096a20024198066a41186a29030037030020024180096a20024198066a41106a290300370300200241f8086a20024198066a41086a29030037030020024188076a41e8016a200229039806370300200241d8096a200241d0066a41306a290300370300200241d0096a200241d0066a41286a290300370300200241c8096a200241d0066a41206a290300370300200241c0096a200241d0066a41186a290300370300200241b8096a200241d0066a41106a290300370300200241b0096a200241d0066a41086a29030037030020024188076a41a0026a20022903d00637030020024206370388070c010b20024180046a200141086a10f101200241b8046a200141c0006a10f101200241f0046a200141f8006a10f101200241a8056a200141b0016a10f101200241e0056a200141e8016a10f10120024198066a200141a0026a10f101200241d0066a200141d8026a10f101200241c0076a20024180046a41306a29030037030020024188076a41306a20024180046a41286a29030037030020024188076a41286a20024180046a41206a29030037030020024188076a41206a20024180046a41186a29030037030020024188076a41186a20024180046a41106a29030037030020024188076a41106a20024180046a41086a29030037030020024188076a41c0006a20022903b804370300200241d0076a200241b8046a41086a290300370300200241d8076a200241b8046a41106a290300370300200241e0076a200241b8046a41186a290300370300200241e8076a200241b8046a41206a290300370300200241f0076a200241b8046a41286a290300370300200241f8076a200241b8046a41306a290300370300200220022903800437039007200241b0086a200241f0046a41306a290300370300200241a8086a200241f0046a41286a290300370300200241a0086a200241f0046a41206a29030037030020024198086a200241f0046a41186a29030037030020024190086a200241f0046a41106a29030037030020024188086a200241f0046a41086a29030037030020024188076a41f8006a20022903f004370300200241e8086a200241a8056a41306a290300370300200241e0086a200241a8056a41286a290300370300200241d8086a200241a8056a41206a290300370300200241d0086a200241a8056a41186a290300370300200241c8086a200241a8056a41106a290300370300200241c0086a200241a8056a41086a29030037030020024188076a41b0016a20022903a805370300200241a0096a200241e0056a41306a29030037030020024198096a200241e0056a41286a29030037030020024190096a200241e0056a41206a29030037030020024188096a200241e0056a41186a29030037030020024180096a200241e0056a41106a290300370300200241f8086a200241e0056a41086a29030037030020024188076a41e8016a20022903e005370300200241d8096a20024198066a41306a290300370300200241d0096a20024198066a41286a290300370300200241c8096a20024198066a41206a290300370300200241c0096a20024198066a41186a290300370300200241b8096a20024198066a41106a290300370300200241b0096a20024198066a41086a29030037030020024188076a41a0026a200229039806370300200241900a6a200241d0066a41306a290300370300200241880a6a200241d0066a41286a290300370300200241800a6a200241d0066a41206a290300370300200241f8096a200241d0066a41186a290300370300200241f0096a200241d0066a41106a290300370300200241e8096a200241d0066a41086a29030037030020024188076a41d8026a20022903d00637030020024207370388070b2002200020024188076a10e00320022903004209510d0020024188076a200241c8031085051a20024188076a109c010b200241d00a6a24000b9003000240024020002802000d0002400240024002400240024002400240200041086a2802000e080900010203040506070b200041106a10f4010f0b200041106a10f401200041c8006a10f4010f0b200041106a10f401200041c8006a10f40120004180016a10f4010f0b200041106a10f401200041c8006a10f40120004180016a10f401200041b8016a10f4010f0b200041106a10f401200041c8006a10f40120004180016a10f401200041b8016a10f401200041f0016a10f4010f0b200041106a10f401200041c8006a10f40120004180016a10f401200041b8016a10f401200041f0016a10f401200041a8026a10f4010f0b200041106a10f401200041c8006a10f40120004180016a10f401200041b8016a10f401200041f0016a10f401200041a8026a10f401200041e0026a10f4010f0b200041106a10f401200041c8006a10f40120004180016a10f401200041b8016a10f401200041f0016a10f401200041a8026a10f401200041e0026a10f40120004198036a10f4010f0b200041086a280200450d00200028020410300b0be212030d7f027e077f230041a00e6b22032400200041d8036a28020021040240024002400240024002400240024002400240024002400240024002400240024002400240200041d4036a28020022052f01a6292206410a4b0d002005200441d0036c6a2107200441016a220820064d0d012007200041d0031085051a200541f0276a21070c020b410521064100210902400240200441054f0d0041042106200421070c010b41052107024002402004417b6a0e020201000b200441796a210741012109410621060c010b41002107410121090b20002802d003210a41a829102f220b450d05200b41003b01a629200b41003602a029200b20052f01a629220c2006417f736a22043b01a6292005200641d0036c6a2208280204210d2008280200210e200341d80a6a200841086a41c8031085051a2004410c4f0d06200c200641016a22086b2004470d07200541f0276a220f20064104746a220c41086a2903002110200c2903002111200b2005200841d0036c6a200441d0036c108505220c41f0276a200f20084104746a20044104741085051a200520063b01a62920034190076a200341d80a6a41c8031085051a200c200520091b2204200741d0036c6a210602400240200741016a220920042f01a62922084d0d002006200041d0031085051a200441f0276a21060c010b2004200941d0036c6a2006200820076b220f41d0036c1086051a2006200041d0031085051a200441f0276a220620094104746a200620074104746a200f4104741086051a0b200620074104746a22122002370308201220013703002004200841016a3b01a629200341c8036a20034190076a41c8031085051a2003200341c8036a41c803108505210f20052802a02922040d024100210a0c030b2005200841d0036c6a2007200620046b220c41d0036c1086051a2007200041d0031085051a200541f0276a220720084104746a200720044104746a200c4104741086051a0b200720044104746a22122002370308201220013703002005200641016a3b01a6290c0e0b201121012010210241002107200c2113200d2114200e2115034020042109200a2007470d0620052f01a429210820092f01a6292216410b490d024100210c41042105024020084105490d0020082105024002402008417b6a0e020201000b200841796a21084101210c410621050c010b410021084101210c410521050b41d829102f220b450d03200b41003b01a629200b41003602a029200b20092f01a62922172005417f736a22043b01a6292009200541d0036c6a2206280204210d2006280200210e200f41d80a6a200641086a41c8031085051a2004410c4f0d072017200541016a22076b2004470d08200941f0276a221720054104746a221841086a290300211020182903002111200b200641d0036a200441d0036c108505220641f0276a201720074104746a20044104741085051a200920053b01a629200f4190076a200f41d80a6a41c8031085051a20062f01a629220441016a21172004410c4f0d09201620056b22052017470d0a200a41016a210a200641a8296a200920074102746a41a8296a20054102741085051a4100210502400340200620054102746a41a8296a280200220720053b01a429200720063602a029200520044f0d01200520052004496a220520044d0d000b0b200f41c8036a200f4190076a41c8031085051a20062009200c1b22072f01a6292105200f41d80a6a200f41c8031085051a0240200841016a220420054b22170d002007200441d0036c6a2007200841d0036c6a200520086b41d0036c1086051a0b2007200841d0036c6a220c2014360204200c2015360200200c41086a200f41d80a6a41c8031085051a200741f0276a2116024020170d00201620044104746a201620084104746a200520086b4104741086051a0b200541016a210c201620084104746a2216200237030820162001370300200741a8296a21160240200841026a2215200541026a22144f0d00201620154102746a201620044102746a200520086b4102741086051a0b201620044102746a20133602002007200c3b01a6290240200420144f0d00200720084102746a41ac296a2105034020052802002204200841016a22083b01a429200420073602a029200541046a2105200c2008470d000b0b200f200f41c8036a41c8031085051a201121012010210220092105200a210720062113200d2114200e211520092802a02922040d000b0b200f41d80a6a200f41c8031085051a20002802dc0322042802042206450d092004280200210741d829102f2205450d01200520063602a829200541003b01a629200541003602a029200641003b01a429200620053602a029200420053602042004200741016a3602002007200a470d0a20052f01a6292206410b4f0d0b2005200641016a22073b01a6292005200641d0036c6a2208200d3602042008200e360200200841086a200f41d80a6a41c8031085051a200520064104746a220641f8276a2010370300200641f0276a2011370300200541a8296a20074102746a200b360200200b20073b01a429200b20053602a0292004200428020841016a3602080c0d0b200f41d80a6a200f41c8031085051a0240201620084d0d002009200841d0036c6a220541d0036a2005201620086b41d0036c1086051a0b201641016a21062009200841d0036c6a2205201436020420052015360200200541086a200f41d80a6a41c8031085051a200941f0276a220720084104746a2104200841016a210502400240201620084b0d002004200137030020042002370308200941a8296a2104201641026a21070c010b200720054104746a2004201620086b22074104741086051a20042002370308200420013703002008410274200941a8296a22046a41086a200420054102746a20074102741086051a201641026a21070b2004200541027422086a2013360200200920063b01a629200520074f0d0b200820096a41a8296a210403402004280200220620053b01a429200620093602a029200441046a21042007200541016a2205470d000c0c0b0b102a000b2004410b41e8a2c2001042000b41f8a2c200412841a0a3c200102d000b41b0a3c200413541e8a3c200102d000b2004410b41e8a2c2001042000b41f8a2c200412841a0a3c200102d000b2017410c41f8a3c2001042000b41f8a2c200412841a0a3c200102d000b41b2abc200412b41e0abc200102d000b41eaa0c2004130419ca1c200102d000b41aca1c200412041cca1c200102d000b20002802dc032205200528020841016a3602080b200341a00e6a240020120b5801017e02400240200341c00071450d0020022003413f71ad882101420021020c010b2003450d002002410020036b413f71ad8620012003413f71ad220488842101200220048821020b20002001370300200020023703080b6e01067e2000200342ffffffff0f832205200142ffffffff0f8322067e22072003422088220820067e22062005200142208822097e7c22054220867c220a3703002000200820097e200420017e200320027e7c7c2005200654ad4220862005422088847c200a200754ad7c3703080b3601017f02402002450d00200021030340200320012d00003a0000200141016a2101200341016a21032002417f6a22020d000b0b20000b6f01017f02400240200020016b20024f0d002001417f6a21012000417f6a21030340200320026a200120026a2d00003a00002002417f6a22020d000c020b0b2002450d00200021030340200320012d00003a0000200141016a2101200341016a21032002417f6a22020d000b0b20000b2c01017f02402002450d00200021030340200320013a0000200341016a21032002417f6a22020d000b0b20000b4a01037f4100210302402002450d000240034020002d0000220420012d00002205470d01200041016a2100200141016a21012002417f6a2202450d020c000b0b200420056b21030b20030b5801017e02400240200341c00071450d0020012003413f71ad862102420021010c010b2003450d0020022003413f71ad2204862001410020036b413f71ad88842102200120048621010b20002001370300200020023703080b0b88af020300418080c0000be0ac02100010001c00000018020000050000006c6962726172792f616c6c6f632f7372632f7261775f7665632e7273c00010004b0000005a010000130000002b00000004000000040000002c0000002d0000002e0000006120666f726d617474696e6720747261697420696d706c656d656e746174696f6e2072657475726e656420616e206572726f72002b00000000000000010000002f000000a800100018000000420200001c0000006c6962726172792f616c6c6f632f7372632f666d742e72732f72757374632f643665616561316338383630616462353330326432666261616434303965333635383561623231372f6c6962726172792f636f72652f7372632f666d742f6d6f642e72736c6962726172792f616c6c6f632f7372632f7665632f6d6f642e7273292073686f756c64206265203c3d206c656e2028697320000068011000150000002701100017000000eb0e1000010000000b0110001c000000d50600000d000000606174602073706c697420696e6465782028697320000000a001100020000000c0011000120000002b000000000000000100000030000000696e646578206f7574206f6620626f756e64733a20746865206c656e20697320206275742074686520696e6465782069732030303031303230333034303530363037303830393130313131323133313431353136313731383139323032313232323332343235323632373238323933303331333233333334333533363337333833393430343134323433343434353436343734383439353035313532353335343535353635373538353936303631363236333634363536363637363836393730373137323733373437353736373737383739383038313832383338343835383638373838383939303931393239333934393539363937393839390000ac02100010000000bc0210002200000072616e676520656e6420696e64657820206f7574206f662072616e676520666f7220736c696365206f66206c656e677468205b2e2e2e5d00440310000b0000004a0d1000160000008303100001000000280d10000e000000360d1000040000003a0d1000100000008303100001000000440310000b0000004f0310002600000075031000080000007d0310000600000083031000010000006279746520696e64657820206973206e6f742061206368617220626f756e646172793b20697420697320696e7369646520202862797465732029206f662060608c031000020000002e2e0000c20310001b0000006500000014000000b003100012000000bc0210002200000072616e676520737461727420696e646578206c6962726172792f636f72652f7372632f666d742f6e756d2e727300010305050606030706080809110a1c0b190c140d100e0d0f0410031212130916011705180219031a071c021d011f1620032b032c022d0b2e01300331023201a702a902aa04ab08fa02fb05fd04fe03ff090046091000250000000a0000001c000000ad78798b8da23057588b8c901c1ddd0e0f4b4cfbfc2e2f3f5c5d5fb5e2848d8e9192a9b1babbc5c6c9cadee4e5ff00041112293134373a3b3d494a5d848e92a9b1b4babbc6cacecfe4e500040d0e11122931343a3b4546494a5e646584919b9dc9cecf0d112945495764658d91a9b4babbc5c9dfe4e5f00d11454964658084b2bcbebfd5d7f0f183858ba4a6bebfc5c7cecfdadb4898bdcdc6cecf494e4f57595e5f898e8fb1b6b7bfc1c6c7d71116175b5cf6f7feff800d6d71dedf0e0f1f6e6f1c1d5f7d7eaeafbbbcfa16171e1f46474e4f585a5c5e7e7fb5c5d4d5dcf0f1f572738f7475962f5f262e2fa7afb7bfc7cfd7df9a409798308f1fc0c1ceff4e4f5a5b07080f10272feeef6e6f373d3f42459091feff536775c8c9d0d1d8d9e7feff00205f2282df048244081b04061181ac0e80ab35280b80e003190801042f043404070301070607110a500f1207550703041c0a090308030703020303030c0405030b06010e15053a0311070605100757070207150d500443032d03010411060f0c3a041d255f206d046a2580c80582b0031a0682fd035907150b1709140c140c6a060a061a0659072b05460a2c040c040103310b2c041a060b0380ac060a06213f4c042d0374083c030f033c0738082b0582ff1118082f112d032010210f808c048297190b158894052f053b07020e180980b32d740c80d61a0c0580ff0580df0cee0d03848d033709815c1480b80880cb2a38030a06380846080c06740b1e035a0459098083181c0a16094c04808a06aba40c170431a10481da26070c050580a511816d1078282a064c04808d0480be031b030f0d0046091000250000001a000000360000000006010103010402080809020a050b020e041001110212051311140115021702190d1c051d0824016a036b02bc02d102d40cd509d602d702da01e005e102e802ee20f004f802f902fa02fb010c273b3e4e4f8f9e9e9f060709363d3e56f3d0d1041418363756577faaaeafbd35e01287898e9e040d0e11122931343a4546494a4e4f64655cb6b71b1c07080a0b141736393aa8a9d8d909379091a8070a3b3e66698f926f5feeef5a629a9b2728559da0a1a3a4a7a8adbabcc4060b0c151d3a3f4551a6a7cccda007191a22253e3fc5c604202325262833383a484a4c50535556585a5c5e606365666b73787d7f8aa4aaafb0c0d0aeaf79cc6e6f935e227b0503042d036603012f2e80821d03310f1c0424091e052b0544040e2a80aa06240424042808340b018090813709160a088098390363080930160521031b05014038044b052f040a070907402027040c0936033a051a07040c07504937330d33072e080a8126524e28082a561c1417094e041e0f430e19070a0648082709750b3f412a063b050a0651060105100305808b621e48080a80a65e22450b0a060d1339070a362c041080c03c64530c48090a46451b4808531d398107460a1d03474937030e080a0639070a81361980b7010f320d839b66750b80c48abc842f8fd18247a1b98239072a040260260a460a28051382b05b654b0439071140050b020e97f80884d62a09a2f7811f3103110408818c89046b050d03090710936080f60a73086e1746809a140c570919808781470385420f1585502b80d52d031a040281703a0501850080d7294c040a04028311444c3d80c23c06010455051b3402810e2c04640c560a80ae381d0d2c040907020e06809a83d8080d030d03740c59070c140c0438080a062808224e81540c15030305070919070709030d072980cb250a84066c6962726172792f636f72652f7372632f756e69636f64652f7072696e7461626c652e7273007c09100016000000920910000d000000736c69636520696e64657820737461727473206174202062757420656e647320617420000003000083042000910560005d13a0001217a01e0c20e01eef2c202b2a30a02b6fa6602c02a8e02c1efbe02d00fea0359effe035fd016136010aa136240d6137ab0ee1382f182139301c6146f31ea14af06a614e4f6fa14e9dbc214f65d1e14f00da215000e0e15130e16153ece2a154d0e8e15420002e55f001bf55000d100028000000520000003e00000000700007002d0101010201020101480b30151001650702060202010423011e1b5b0b3a09090118040109010301052b03770f0120370101010408040103070a021d013a0101010204080109010a021a010202390104020402020303011e0203010b0239010405010204011402160601013a0101020104080107030a021e013b0101010c0109012801030139030503010407020b021d013a01020102010301050207020b021c02390201010204080109010a021d0148010401020301010801510102070c08620102090b064a021b0101010101370e01050102050b0124090166040106010202021902040310040d01020206010f01000300031d031d021e02400201070801020b09012d03770222017603040209010603db0202013a010107010101010208060a020130113f0430070101050128090c0220040202010338010102030101033a0802029803010d0107040106010302c63a01050001c32100038d016020000669020004010a200250020001030104011902050197021a120d012608190b2e0330010204020227014306020202020c0108012f01330101030202050201012a020801ee010201040100010010101000020001e201950500030102050428030401a50200040002990bb001360f3803310402024503240501083e010c0234090a0402015f03020101020601a0010308150239020101010116010e070305c308020301011701510102060101020101020102eb010204060201021b025508020101026a0101010206010165030204010500090102f5010a0201010401900402020401200a280602040801090602032e0d010200070106010152160207010201027a060301010201070101480203010101000200053b0700013f0451010002000101030405080802071e0494030037043208010e011605010f000701110207010201050007000400076d07006080f000000000000d1000280000004b00000028000000000d10002800000057000000160000006c6962726172792f636f72652f7372632f756e69636f64652f756e69636f64655f646174612e7273626567696e203c3d20656e642028203c3d2029207768656e20736c6963696e672060206973206f7574206f6620626f756e6473206f6620603d3d0000a40d100019000000bd0d100012000000cf0d10000c0000008303100001000000a40d100019000000bd0d100012000000cf0d10000c000000db0d100003000000617373657274696f6e206661696c65643a2060286c6566742020726967687429600a20206c6566743a2060602c0a2072696768743a2060603a20426f72726f774572726f72426f72726f774d75744572726f7270616e69636b656420617420002d0e1000010000002e0e1000030000003c871000000000002c0e1000010000002c0e1000010000003a27272c2020202020000000580e1000200000003200000021000000580e10002000000033000000120000006c6962726172792f636f72652f7372632f666d742f6275696c646572732e7273880e1000200000005a000000050000006c6962726172792f636f72652f7372632f736c6963652f6d656d6368722e7273207b202c20207b0a2b0000000c000000040000003100000032000000330000002c0a00002b00000004000000040000003400000035000000360000007d207d28280a2c290a5d617373657274696f6e206661696c65643a202a63757272203e2031390000c20310001b000000e6010000050000005b000000380f1000150000004d0f10002b000000eb0e100001000000736f7572636520736c696365206c656e67746820282920646f6573206e6f74206d617463682064657374696e6174696f6e20736c696365206c656e67746820282b0000000400000004000000370000004c61796f757473697a655f616c69676e5f0000002b0000000400000004000000380000002b00000000000000010000003a0000002b00000000000000010000003b00000006de3d8a54d27e44a9d5ce189618f22db4b49d95320d9021994c850f25b8e38548726d704368616e6e656c002b00000004000000040000000f0000002b00000004000000040000003c000000526f6f744d69736d61746368436f6e666967446d714d71634865616452656c61794469737061746368517565756553697a6548726d70496e67726573734368616e6e656c496e64657848726d704567726573734368616e6e656c496e646578416273656e7450726f6f664465636f6465456e7669726f6e6d656e74616c2065787465726e616c6974696573206e6f74207365742e95771000440000002b0000002d0000004e6f206f70656e207472616e73616374696f6e20746861742063616e20626520726f6c6c6564206261636b2e9577100044000000c30000000a0000004e6f206f70656e207472616e73616374696f6e20746861742063616e20626520636f6d6d69747465642e00009577100044000000c80000000a0000004c1c10002a000000a40000002b0000002b00000008000000040000003d0000003e0000003f0000004000000041000000420000004300000044000000a00000000800000045000000460000002b0000000c000000040000004700000048000000490000004a0000004b0000004c0000004d0000002b0000000c000000040000004e0000004f00000000000000000000000012100005000000000000000000000000121000050000000000000001000000020000000000000000000000081210000700000000000000010000007368656c6c000000df6acb689907609b0300000037e397fc7c91f5e40100000040fe3ad401f8959a05000000d2bc9897eed08f1502000000f78b278be53f454c02000000ab3c0572291feb8b01000000ea93e3f16f3d69620100000053797374656d50617261636861696e53797374656d50617261636861696e496e666f43756d756c757358636d2b00000000000000010000005000000051000000520000002b0000000000000001000000500000005000000052000000446973616c6c6f775369676e65640000000000005c121000060000000000000053000000000000000000000000000000000000000000000000000000000000005400000000000000000000000000000055000000000000000000000000000000560000000000000000000000000000005700000000000000000000000000000000000000621210000f000000000000005800000000000000000000000000000000000000000000000000000000000000590000000000000000000000000000005a0000000000000000000000000000005b0000000000000000000000000000005c00000000000000000000000100000000000000711210000d000000000000005d0000000000000000000000000000000000000000000000000000000200000000000000000000000000000002000000000000000000000000000000000000005b0000000000000000000000000000005b000000000000000000000002000000000000007e1210000a000000000000005e000000000000000000000000000000000000000000000000000000000000005b0000000000000000000000000000005f0000000000000000000000000000005b0000000000000000000000000000005b0000000000000000000000030000006c6f636174696f6e20616e6420726573756c7420626567696e20657175616c3b2073616d652073697a653b2071656400c8141000660000009e0000001f0000002f636172676f2d686f6d652f6769742f636865636b6f7574732f706f6c6b61646f742d343033386632376435653465613265382f363239623836392f78636d2f78636d2d6275696c6465722f7372632f6c6f636174696f6e5f636f6e76657273696f6e2e7273616c7265616479206d757461626c7920626f72726f77656400002b00000000000000010000003a000000a81510005900000021000000170000002b00000000000000010000003b000000a8151000590000002300000019000000a8151000590000002800000018000000cc721000530000006d0000000b0000002f636172676f2d686f6d652f72656769737472792f7372632f6769746875622e636f6d2d316563633632393964623965633832332f656e7669726f6e6d656e74616c2d312e312e322f7372632f6c6f63616c5f6b65792e7273000000cc721000530000008a00000016000000cc721000530000008f00000029000000b4161000190000004c1c10002a0000008c0200000d00000093161000210000004c1c10002a000000900200000d0000006c161000270000004c1c10002a000000940200000d00000052656c617920706172656e742073746f7261676520726f6f7420646f65736e2774206d6174636852656c617920706172656e74206e756d62657220646f65736e2774206d61746368506172656e74206865616420646f65736e2774206d617463680000002b00000004000000040000006000000061000000620000002c17100066000000200000000e000000617373657274696f6e206661696c65643a206d6964203c3d2073656c662e6c656e2829009c8810004d000000ff050000090000002f72757374632f643665616561316338383630616462353330326432666261616434303965333635383561623231372f6c6962726172792f616c6c6f632f7372632f636f6c6c656374696f6e732f7665635f64657175652f72696e675f736c696365732e727348617368207461626c65206361706163697479206f766572666c6f770000c0171000530000004f000000280000002f636172676f2d686f6d652f72656769737472792f7372632f6769746875622e636f6d2d316563633632393964623965633832332f6861736862726f776e2d302e392e312f7372632f7261772f6d6f642e72730000000000f4181000130000000000000008191000010000000000000000000000101910001400000000000000241910000100000000000000000000002c191000060000000000000034191000020000000000000000000000441910001a0000000000000060191000010000000000000000000000681910001d0000000000000088191000010000000000000000000000901910000c000000000000009c191000010000000000000000000000a41910001100000000000000b8191000010000000000000000000000c01910000c00000000000000cc19100001000000000000004f7665726c617070696e67557067726164657300a51b10004600000050726f686962697465644279506f6c6b61646f74521b100053000000546f6f4269670000f11a100052000000431b10000f00000056616c69646174696f6e446174614e6f74417661696c61626c650000aa1a100047000000486f7374436f6e66696775726174696f6e4e6f74417661696c61626c65000000601a10004a0000004e6f745363686564756c6564291a1000370000004e6f7468696e67417574686f72697a6564000000041a100025000000556e617574686f72697a6564d4191000300000002054686520676976656e20636f6465207570677261646520686173206e6f74206265656e20617574686f72697a65642e204e6f20636f6465207570677261646520686173206265656e20617574686f72697a65642e204e6f2076616c69646174696f6e2066756e6374696f6e20757067726164652069732063757272656e746c79207363686564756c65642e2054686520696e686572656e7420776869636820737570706c6965732074686520686f737420636f6e66696775726174696f6e20646964206e6f742072756e207468697320626c6f636b2054686520696e686572656e7420776869636820737570706c696573207468652076616c69646174696f6e206461746120646964206e6f742072756e207468697320626c6f636b2054686520737570706c6965642076616c69646174696f6e2066756e6374696f6e2068617320636f6d70696c656420696e746f206120626c6f62206c6172676572207468616e20506f6c6b61646f742069732077696c6c696e6720746f2072756e20506f6c6b61646f742063757272656e746c792070726f68696269747320746869732070617261636861696e2066726f6d20757067726164696e67206974732076616c69646174696f6e2066756e6374696f6e20417474656d707420746f20757067726164652076616c69646174696f6e2066756e6374696f6e207768696c65206578697374696e6720757067726164652070656e64696e67737973693133333776616c69646174696f6e2066756e6374696f6e20706172616d732061726520616c7761797320696e6a656374656420696e746f20696e686572656e7420646174613b207165640000004c1c10002a00000025020000120000002f6275696c642f70616c6c6574732f70617261636861696e2d73797374656d2f7372632f6c69622e7273656e6163745f617574686f72697a65645f75706772616465617574686f72697a655f757067726164657375646f5f73656e645f7570776172645f6d6573736167657365745f76616c69646174696f6e5f646174617365745f757067726164655f626c6f636b56616c69646174696f6e44617461206d7573742062652075706461746564206f6e6c79206f6e636520696e206120626c6f636b00004c1c10002a0000001c0100000d0000003a636f6465000000f01d1000220000004c1c10002a0000003f010000190000004c1c10002a000000c002000009000000617373657274696f6e206661696c65643a20696e67726573735f6368616e6e656c732e62696e6172795f7365617263685f62795f6b65792873656e6465722c207c2628732c205f297c2073292e69735f6f6b28294c1c10002a000000db0200000d000000617373657274696f6e206661696c65643a206375725f68656164203d3d207461726765745f686561640000004c1c10002a000000230300000d000000696e76616c69642072656c617920636861696e206d65726b6c652070726f6f663a20000000000000f01e10001800000000000000081f1000010000000000000000000000101f1000020000000000000000000000201f10001900000000000000081f10000100000000000000000000003c1f1000010000000000000000000000441f10001100000000000000581f1000010000000000000000000000601f1000010000000000000000000000681f10001800000000000000801f1000010000000000000000000000881f1000020000000000000000000000981f10001900000000000000b41f1000020000000000000000000000c41f1000020000000000000056616c69646174696f6e46756e6374696f6e53746f726564682110001500000006211000540000005a2110000e00000056616c69646174696f6e46756e6374696f6e4170706c696564000000b42010005200000055706772616465417574686f72697a65640000004e4c1000040000009420100020000000446f776e776172644d65737361676573526563656976656413541000030000004720100041000000882010000c000000446f776e776172644d6573736167657350726f63657373656400000030201000060000003620100011000000d41f1000390000000d2010002300000020446f776e77617264206d6573736167657320776572652070726f636573736564207573696e672074686520676976656e207765696768742e205c5b207765696768745f757365642c20726573756c745f6d71635f68656164205c5d57656967687472656c61795f636861696e3a3a4861736820536f6d6520646f776e77617264206d657373616765732068617665206265656e20726563656976656420616e642077696c6c2062652070726f6365737365642e205c5b20636f756e74205c5d20416e207570677261646520686173206265656e20617574686f72697a65642e205468652076616c69646174696f6e2066756e6374696f6e20776173206170706c696564206173206f662074686520636f6e7461696e65642072656c617920636861696e20626c6f636b206e756d6265722e205468652076616c69646174696f6e2066756e6374696f6e20686173206265656e207363686564756c656420746f206170706c79206173206f662074686520636f6e7461696e65642072656c617920636861696e20626c6f636b206e756d6265722e52656c6179436861696e426c6f636b4e756d62657200000000000000ca1c100011000000000000005c22100001000000000000000000000074221000060000000000000000000000b71c10001300000000000000a4221000010000000000000000000000bc2210000900000000000000000000009f1c10001800000000000000042310000100000000000000000000003c8710000000000000000000000000008e1c100011000000000000001c2310000100000000000000000000003c871000000000000000000000000000761c10001800000000000000804f10000100000000000000000000003c87100000000000000000000000000006261000110000000000000068211000150000009f241000580000003c87100000000000f7241000550000004c25100056000000a225100055000000f72510000f000000000000008624100004000000000000008a2410001500000051231000210000003c871000000000007223100051000000c3231000230000003c87100000000000e6231000350000003c871000000000001b241000490000006424100022000000000000003d2310000700000000000000442310000d00000000000000342310000900000000000000f25f100007000000636f64655f686173686d6573736167655570776172644d65737361676520536574207468652063757272656e742076616c69646174696f6e20646174612e20546869732073686f756c6420626520696e766f6b65642065786163746c79206f6e63652070657220626c6f636b2e2049742077696c6c2070616e6963206174207468652066696e616c697a6174696f6e207068617365206966207468652063616c6c20776173206e6f7420696e766f6b65642e20546865206469737061746368206f726967696e20666f7220746869732063616c6c206d7573742062652060496e686572656e746020417320612073696465206566666563742c20746869732066756e6374696f6e207570677261646573207468652063757272656e742076616c69646174696f6e2066756e6374696f6e2069662074686520617070726f7072696174652074696d652068617320636f6d652e6461746150617261636861696e496e686572656e744461746120466f72636520616e20616c7265616479207363686564756c65642076616c69646174696f6e2066756e6374696f6e207570677261646520746f2068617070656e206f6e206120706172746963756c617220626c6f636b2e204e6f7465207468617420636f6f7264696e6174696e67207468697320626c6f636b20666f722074686520757067726164652068617320746f2068617070656e20696e646570656e64656e746c79206f6e207468652072656c617920636861696e20616e6420746869732070617261636861696e2e2053796e6368726f6e697a696e672074686520626c6f636b20666f722074686520757067726164652069732073656e7369746976652c20616e64207468697320627970617373657320616c6c20636865636b7320616e6420616e64206e6f726d616c2070726f746f636f6c732e2056657279206561737920746f20627269636b20796f757220636861696e20696620646f6e652077726f6e672e72656c61795f636861696e5f626c6f636b0000000000a02c10001c00000000000000000000006821100015000000000000000000000000000000000000000000000000000000000000003c871000bc2c10000000000000000000cc2c100004000000000000000000000000000000ec2c10001500000000000000000000008a52100007000000000000000000000000000000000000000000000000000000000000003c871000042d10000000000000000000142d1000030000000000000001000000000000002c2d10000e00000000000000000000003a2d100017000000000000000000000000000000000000000000000000000000000000003c871000542d10000000000000000000642d1000010000000000000000000000000000006c2d1000140000000000000000000000c561100004000000000000000000000000000000000000000000000000000000000000003c871000802d10000000000000000000902d100001000000000000000100000000000000982d10000b0000000000000000000000a32d100018000000000000000000000000000000000000000000000000000000000000003c871000bc2d10000000000000000000cc2d100001000000000000000100000000000000d42d1000160000000000000000000000ea2d100016000000000000000000000000000000000000000000000000000000000000003c871000002e10000000000000000000102e100007000000000000000000000000000000482e1000110000000000000000000000592e100019000000000000000000000000000000000000000000000000000000000000003c871000742e10000000000000000000842e100006000000000000000000000000000000b42e10000e0000000000000000000000c22e100011000000000000000000000000000000000000000000000000000000000000003c871000d42e10000000000000000000e42e100004000000000000000100000000000000042f1000100000000000000000000000142f100023000000000000000000000000000000000000000000000000000000000000003c871000382f10000000000000000000482f100004000000000000000100000000000000682f10001900000000000000000000001354100003000000000000000000000000000000000000000000000000000000000000003c871000bc2d10000000000000000000842f1000030000000000000001000000000000009c2f10001100000000000000000000008a52100007000000000000000000000000000000000000000000000000000000000000003c871000b02f10000000000000000000c02f100004000000000000000000000000000000e02f10000d0000000000000000000000ed2f10001c000000000000000000000000000000000000000000000000000000000000003c871000bc2d100000000000000000000c30100003000000000000000100000000000000243010001400000000000000000000003830100018000000000000000000000000000000000000000000000000000000000000003c8710005030100000000000000000006030100003000000000000000100000000000000783010000e00000000000000000000008630100012000000000000000000000000000000000000000000000000000000000000003c871000983010000000000000000000a830100003000000000000000100000000000000c03010001500000000000000000000008630100012000000000000000000000000000000000000000000000000000000000000003c871000983010000000000000000000d830100001000000000000000100000000000000e03010002100000000000000000000001354100003000000000000000000000000000000000000000000000000000000000000003c871000bc2d100000000000000000000431100002000000000000000100000000000000143110001a00000000000000000000003020100006000000000000000000000000000000000000000000000000000000000000003c8710003031100000000000000000004031100002000000000000000000000000000000503110001900000000000000000000003020100006000000000000000000000000000000000000000000000000000000000000003c8710003031100000000000000000006c311000020000000000000000000000000000007c311000110000000000000000000000f25f100007000000000000000000000000000000000000000000000000000000000000003c871000903110000000000000000000a031100001000000000000000000000050656e64696e6752656c6179436861696e426c6f636b4e756d6265722b0000000000000001000000630000001e3910004200000060391000280000008839100042000000ca3910004900000050656e64696e6756616c69646174696f6e436f64650000002b0000000000000001000000640000005138100044000000953810004a000000df3810003f00000056616c69646174696f6e4461746150657273697374656456616c69646174696f6e446174610000002b0000000000000001000000630000001d3810003400000044696453657456616c69646174696f6e436f64652b000000000000000100000063000000e5371000380000004c6173745570677261646572656c61795f636861696e3a3a426c6f636b4e756d626572002b0000000000000001000000650000009a3710004b00000052656c6576616e744d6573736167696e6753746174654d6573736167696e675374617465536e617073686f742b0000000000000001000000630000002f3710005900000088371000120000003c87100000000000563610005b000000b1361000530000003c87100000000000043710002b000000486f7374436f6e66696775726174696f6e4162726964676564486f7374436f6e66696775726174696f6e00002b0000000000000001000000630000000c3610004a0000003c87100000000000563610005b000000b1361000530000003c87100000000000043710002b0000004c617374446d714d7163486561644d6573736167655175657565436861696e002b000000000000000100000066000000cf3510003d0000003c871000000000005e35100059000000b7351000180000004c61737448726d704d7163486561647342547265654d61703c5061726149642c204d6573736167655175657565436861696e3e002b0000000000000001000000670000000c351000520000003c871000000000005e35100059000000b73510001800000050726f636573736564446f776e776172644d65737361676573000000da341000320000003c87100000000000bd3310003b0000004e657756616c69646174696f6e436f64650000002b000000000000000100000063000000493410002d0000003c871000000000007634100059000000cf3410000b00000048726d7057617465726d61726b72656c61795f636861696e3a3a76313a3a426c6f636b4e756d62657200000021341000280000003c87100000000000bd3310003b00000048726d704f7574626f756e644d657373616765735665633c4f7574626f756e6448726d704d6573736167653e2b000000000000000100000068000000f8331000290000003c87100000000000bd3310003b0000005570776172644d657373616765735665633c5570776172644d6573736167653e2b000000000000000100000068000000923310002b0000003c87100000000000bd3310003b00000050656e64696e675570776172644d65737361676573000000463310004c000000416e6e6f756e63656448726d704d6573736167657350657243616e646964617465000000b1321000590000000a3310003c000000526573657276656458636d705765696768744f7665727269646500002b0000000000000001000000630000005a321000570000002c3210002e0000005265736572766564446d705765696768744f76657272696465000000d6311000560000002c3210002e000000417574686f72697a6564557067726164650000002b000000000000000100000063000000a83110002e00000020546865206e65787420617574686f72697a656420757067726164652c206966207468657265206973206f6e652e205468652077656967687420776520726573657276652061742074686520626567696e6e696e67206f662074686520626c6f636b20666f722070726f63657373696e6720444d50206d657373616765732e2054686973206f76657272696465732074686520616d6f756e742073657420696e2074686520436f6e6669672074726169742e205468652077656967687420776520726573657276652061742074686520626567696e6e696e67206f662074686520626c6f636b20666f722070726f63657373696e672058434d50206d657373616765732e205468697320546865206e756d626572206f662048524d50206d65737361676573207765206f6273657276656420696e20606f6e5f696e697469616c697a656020616e64207468757320757365642074686174206e756d62657220666f7220616e6e6f756e63696e672074686520776569676874206f6620606f6e5f696e697469616c697a656020616e6420606f6e5f66696e616c697a65602e20557077617264206d65737361676573207468617420617265207374696c6c2070656e64696e6720616e64206e6f74207965742073656e6420746f207468652072656c617920636861696e2e20557077617264206d65737361676573207468617420776572652073656e7420696e206120626c6f636b2e20546869732077696c6c20626520636c656172656420696e20606f6e5f696e697469616c697a6560206f662065616368206e657720626c6f636b2e2048524d50206d65737361676573207468617420776572652073656e7420696e206120626c6f636b2e2048524d502077617465726d61726b2074686174207761732073657420696e206120626c6f636b2e204e65772076616c69646174696f6e20636f64652074686174207761732073657420696e206120626c6f636b2e20546869732077696c6c20626520636c656172656420696e20606f6e5f696e697469616c697a6560206f662065616368206e657720626c6f636b206966206e6f206f746865722070616c6c657420616c726561647920736574207468652076616c75652e204e756d626572206f6620646f776e77617264206d657373616765732070726f63657373656420696e206120626c6f636b2e20546865206d65737361676520717565756520636861696e2068656164732077652068617665206f62736572766564207065722065616368206368616e6e656c20696e636f6d696e67206368616e6e656c2e20546869732076616c7565206973206c6f61646564206265666f726520616e642073617665642061667465722070726f63657373696e6720696e626f756e6420646f776e77617264206d657373616765732063617272696564206279207468652073797374656d20696e686572656e742e20546865206c61737420646f776e77617264206d65737361676520717565756520636861696e20686561642077652068617665206f627365727665642e205468652070617261636861696e20686f737420636f6e66696775726174696f6e207468617420776173206f627461696e65642066726f6d207468652072656c617920706172656e742e2054686973206669656c64206973206d65616e7420746f2062652075706461746564206561636820626c6f636b2077697468207468652076616c69646174696f6e206461746120696e686572656e742e205468657265666f72652c206265666f72652070726f63657373696e67206f662074686520696e686572656e742c20652e672e20696e20606f6e5f696e697469616c697a656020746869732064617461206d6179206265207374616c652e2054686973206461746120697320616c736f20616273656e742066726f6d207468652067656e657369732e2054686520736e617073686f74206f6620736f6d652073746174652072656c6174656420746f206d6573736167696e672072656c6576616e7420746f207468652063757272656e742070617261636861696e20617320706572207468652072656c617920706172656e742e20546865206c6173742072656c617920706172656e7420626c6f636b206e756d626572206174207768696368207765207369676e616c6c65642074686520636f646520757067726164652e2057657265207468652076616c69646174696f6e20646174612073657420746f206e6f74696679207468652072656c617920636861696e3f20546865205b6050657273697374656456616c69646174696f6e44617461605d2073657420666f72207468697320626c6f636b2e20546865206e65772076616c69646174696f6e2066756e6374696f6e2077652077696c6c207570677261646520746f207768656e207468652072656c617920636861696e2072656163686573205b6050656e64696e6752656c6179436861696e426c6f636b4e756d626572605d2e2041207265616c2076616c69646174696f6e2066756e6374696f6e206d7573742065786973742068657265206173206c6f6e67206173205b6050656e64696e6752656c6179436861696e426c6f636b4e756d626572605d206973207365742e205765206e65656420746f2073746f726520746865206e65772076616c69646174696f6e2066756e6374696f6e20666f7220746865207370616e206265747765656e2073657474696e6720697420616e64206170706c79696e672069742e2049662069742068617320612076616c75652c207468656e205b6050656e64696e6756616c69646174696f6e436f6465605d206d75737420686176652061207265616c2076616c75652c20616e6420746f6765746865722077696c6c20636f6f7264696e6174652074686520626c6f636b206e756d6265722077686572652074686520757067726164652077696c6c2068617070656e2e63756d756c75735f70616c6c65745f70617261636861696e5f73797374656d3a3a70616c6c65744469676573744974656d206e6f7420657175616c0000803a100050000000840000001e000000803a1000500000008400000026000000803a100050000000840000002c0000002f636172676f2d686f6d652f72656769737472792f7372632f6769746875622e636f6d2d316563633632393964623965633832332f747269652d726f6f742d302e31362e302f7372632f6c69622e7273617373657274696f6e206661696c65643a2073656c662e6361702829203d3d206f6c645f636170202a2032000c3b10005e0000002d0800000d0000002f72757374632f643665616561316338383630616462353330326432666261616434303965333635383561623231372f6c6962726172792f616c6c6f632f7372632f636f6c6c656374696f6e732f7665635f64657175652f6d6f642e727300002b000000010000000100000069000000803a100050000000fb00000022000000803a1000500000000c01000031000000803a1000500000002b0100002f000000803a1000500000002c0100002e000000803a1000500000003b0100001a000000307210004a0000003604000015000000307210004a000000440400001e000000307210004a0000004d04000018000000307210004a0000004e04000019000000307210004a000000510400001a000000307210004a00000071030000360000004372756d623a3a696e6372656d656e7420616e64205472696544424e6f64654974657261746f722061726520696d706c656d656e74656420736f2074686174207468652061626f76652061726d732061726520746865206f6e6c7920706f737369626c652073746174657300983d100053000000460100001a0000006d6574686f6420776f756c6420686176652065786974656420617420746f70206f662070726576696f757320626c6f636b20696620747269616c207765726520656d7074793b747269616c20636f756c64206e6f742068617665206265656e206d6f6469666965642077697468696e2074686520626c6f636b2073696e63652069742077617320696d6d757461626c7920626f72726f7765643b716564000000983d100053000000760100001a000000983d100053000000500100001a000000983d1000530000005e0100001a000000983d1000530000006c0100001a000000983d100053000000380100002f0000002f636172676f2d686f6d652f72656769737472792f7372632f6769746875622e636f6d2d316563633632393964623965633832332f747269652d64622d302e32322e322f7372632f6974657261746f722e727364657363656e645f696e746f5f6e6f6465207075736865732061206372756d62206f6e746f2074686520747269616c3b20746875732074686520747261696c206973206e6f6e2d656d7074793b20716564983d10005300000076000000160000002b00000008000000040000006a0000002b00000000000000010000006b000000a444100060000000e40000003f000000a444100060000000f900000016000000a4441000600000002201000033000000a4441000600000004601000043000000a4441000600000001101000016000000a444100060000000cb00000027000000a4441000600000003901000012000000a4441000600000005b0100000e000000a444100060000000b20200000b0000005765206861766520726573657420746865206f7665726c61792061626f76652c20736f2077652063616e206e6f7420626520696e207468652072756e74696d653b207165640000002b00000000000000010000006c000000a444100060000000b70200000e000000546869732069732061207370656369616c20666e206f6e6c7920666f722062656e63686d61726b696e67207768657265206120646174616261736520636f6d6d69742068617070656e732066726f6d207468652072756e74696d652e0a09466f72207468617420726561736f6e20636c69656e742073746172746564207472616e73616374696f6e73206265666f72652063616c6c696e6720696e746f2072756e74696d6520617265206e6f7420616c6c6f7765642e0a09576974686f757420636c69656e74207472616e73616374696f6e7320746865206c6f6f7020636f6e646974696f6e20676172616e7475656573207468652073756363657373206f662074686520747820636c6f73652e00002b00000000000000010000006d000000a444100060000000aa02000031000000a444100060000000c40200000b000000a444100060000000bc0200002f000000f740100007000000dc4010001b000000c48710000200000090471000330000002a0100000100000042616420696e70757420646174612070726f766964656420746f2076657273696f6e0000084110000d000000657865637574655f626c6f636b0000002041100010000000696e697469616c697a655f626c6f636b38411000080000006d65746164617461484110000f0000006170706c795f65787472696e73696300604110000e00000066696e616c697a655f626c6f636b00007841100013000000696e686572656e745f65787472696e7369637300944110000f000000636865636b5f696e686572656e747300ac4110001400000076616c69646174655f7472616e73616374696f6ec84110000f0000006f6666636861696e5f776f726b657200e0411000130000006465636f64655f73657373696f6e5f6b65797300fc4110001500000067656e65726174655f73657373696f6e5f6b6579730000001c42100016000000636f6c6c6563745f636f6c6c6174696f6e5f696e666f2f6275696c642f70616c6c6574732f78636d2f7372632f6c69622e727300cc42100015000000e14210001d00000070617261636861696e5f696e666f3a3a70616c6c65742f6275696c642f706f6c6b61646f742d70617261636861696e732f70616c6c6574732f70617261636861696e2d696e666f2f7372632f6c69622e727363756d756c75735f70616c6c65745f78636d3a3a70616c6c6574e29c85206e6f206d6967726174696f6e20666f72202c2073657474696e672073746f726167652076657273696f6e20746f2050726576696f7573206d617463682061726d206d61746368657320616e7974696e67206c657373207468616e20325e33303b20716564868210005c0000005701000011000000684310003d000000000000000000000000000000868210005c0000005e01000011000000736869667465642073756666696369656e74206269747320726967687420746f206c656164206f6e6c79206c656164696e67207a65726f733b20716564000000868210005c000000830100001100000000000000000000000000000000000000868210005c0000008a0100001100000000000000304410000b00000000000000000000003b44100006000000000000000000000000000000000000000000000000000000000000003c8710004444100000000000000000003c87100000000000000000000100000050617261636861696e49645061726149640000002b00000000000000010000006e00000045787465726e616c6974696573206e6f7420616c6c6f77656420746f206661696c2077697468696e2072756e74696d652b00000000000000010000006b000000a444100060000000fb010000260000002f636172676f2d686f6d652f6769742f636865636b6f7574732f7375627374726174652d376530383433336434633337306132312f336631313031392f7072696d6974697665732f73746174652d6d616368696e652f7372632f6578742e727390831000780000008b0000002100000000000000984510000d00000000000000a8451000010000000000000000000000b0451000020000000000000000000000c04510001200000000000000a8451000010000000000000000000000d4451000020000000000000000000000e44510001000000000000000f4451000020000000000000000000000044610000200000000000000496e76616c6964466f726d617400000058461000070000009f461000210000009646100009000000556e737570706f7274656456657273696f6e0000664610003000000096461000090000004578656375746564446f776e7761726458461000070000005f461000070000001446100032000000464610001200000020446f776e77617264206d65737361676520657865637574656420776974682074686520676976656e206f7574636f6d652e205c5b2069642c206f7574636f6d65205c5d5b75383b20385d4f7574636f6d6520446f776e77617264206d65737361676520697320756e737570706f727465642076657273696f6e206f662058434d2e205c5b206964205c5d20446f776e77617264206d65737361676520697320696e76616c69642058434d2efc8810005e000000710000002e000000fc8810005e0000009000000034000000fc8810005e0000006900000034000000fc8810005e000000ba00000009000000fc8810005e000000b300000009000000fc8810005e000000d400000011000000fc8810005e000000d9000000090000003a5f5f50414c4c45545f56455253494f4e5f5f3a5472616e73616374696f6e207761732062652067656e6572617465642061732070617274206f66206073746f726167655f726f6f74603b20716564002c861000720000002b0200000e0000002f6275696c642f706f6c6b61646f742d70617261636861696e732f7368656c6c2d72756e74696d652f7372632f6c69622e727372656d61726b5f776974685f6576656e746b696c6c5f7072656669786b696c6c5f73746f726167657365745f73746f726167657365745f6368616e6765735f747269655f636f6e6669677365745f636f64655f776974686f75745f636865636b737365745f636f64657365745f686561705f706167657372656d61726b66696c6c5f626c6f636b0000da48100007000000e14810005200000072756e74696d653a3a6672616d652d737570706f72746672616d655f73797374656d3a3a70616c6c65742f636172676f2d686f6d652f6769742f636865636b6f7574732f7375627374726174652d376530383433336434633337306132312f336631313031392f6672616d652f73797374656d2f7372632f6c69622e7273e29aa0efb88f20206465636c6172657320696e7465726e616c206d6967726174696f6e7320287768696368202a6d696768742a2065786563757465292c2073657474696e672073746f726167652076657273696f6e20746f20002b00000000000000010000006f0000003a6865617070616765733a6368616e6765735f7472696500874910001a000000a14910000300000072756e74696d653a3a73797374656d6672616d655f73797374656d45787472696e736963206661696c656420617420626c6f636b28293a204e6f646520697320636f6e6669677572656420746f20757365207468652073616d6520686173683b2071656486481000540000005f0500000e000000864810005400000067050000160000004e6f6e44656661756c74436f6d706f736974654661696c6564546f4578747261637452756e74696d6556657273696f6e5370656356657273696f6e4e65656473546f496e637265617365496e76616c6964537065634e616d654e6f6e5a65726f526566436f756e7400000000604b10001000000000000000704b1000010000000000000000000000784b1000010000000000000000000000804b10000f00000000000000904b1000020000000000000000000000a04b1000010000000000000000000000a84b10000b000000000000003c871000000000000000000000000000b44b1000010000000000000000000000bc4b10000a00000000000000c84b1000010000000000000000000000d04b1000010000000000000000000000d84b10000d00000000000000c84b1000010000000000000000000000e84b1000010000000000000000000000f04b10000800000000000000f84b1000020000000000000000000000084c1000010000000000000045787472696e73696353756363657373d34c10000c000000df4c10002e00000045787472696e7369634661696c656400c64c10000d000000d34c10000c000000a14c100025000000436f646555706461746564008c4c1000150000004e65774163636f756e740000454c1000090000006d4c10001f0000004b696c6c65644163636f756e74000000524c10001b00000052656d61726b6564454c1000090000004e4c100004000000104c100035000000204f6e206f6e2d636861696e2072656d61726b2068617070656e65642e205c5b6f726967696e2c2072656d61726b5f686173685c5d4163636f756e7449644861736820416e205c5b6163636f756e745c5d20776173207265617065642e2041206e6577205c5b6163636f756e745c5d2077617320637265617465642e20603a636f6465602077617320757064617465642e20416e2065787472696e736963206661696c65642e205c5b6572726f722c20696e666f5c5d44697370617463684572726f724469737061746368496e666f20416e2065787472696e73696320636f6d706c65746564207375636365737366756c6c792e205c5b696e666f5c5d00000000000000404810000a00000000000000c84e1000010000000000000000000000e04e10000100000000000000000000003a4810000600000000000000e84e1000010000000000000000000000004f10000500000000000000000000002c4810000e00000000000000284f1000010000000000000000000000404f1000080000000000000000000000244810000800000000000000804f1000010000000000000000000000984f10000a00000000000000000000000d4810001700000000000000804f1000010000000000000000000000e84f1000080000000000000000000000f6471000170000000000000028501000010000000000000000000000405010000a0000000000000000000000eb4710000b0000000000000090501000010000000000000000000000a8501000080000000000000000000000df4710000c00000000000000e850100001000000000000000000000000511000080000000000000000000000d44710000b0000000000000040511000020000000000000000000000705110000b0000000000000000000000c34710001100000000000000c8511000010000000000000000000000e05110000600000000000000000000009759100006000000000000009d591000070000005559100042000000000000004e59100007000000000000008a52100007000000335910001b0000003c871000000000003a5210000b00000084551000090000007e5210000c000000000000002b59100005000000000000003059100003000000a85810003f0000003c871000000000003a5210000b0000008455100009000000e758100013000000fa5810001900000013591000180000007e5210000c00000000000000a458100004000000000000008a521000070000005c5710001a0000003c871000000000003a5210000b000000765710004d000000dd56100022000000c35710005e000000735210000b000000215810005f00000080581000240000007e5210000c00000072561000470000003c871000000000003a5210000b000000b956100024000000dd56100022000000735210000b000000ff5610005d0000007e5210000c000000000000003f561000130000000000000052561000200000005c551000280000003c871000000000003a5210000b00000084551000090000008d5510002c000000b955100036000000ef55100019000000085610000d000000155610002a0000007e5210000c000000000000004a55100005000000000000004f5510000d000000ce5410001b0000003c871000000000003a5210000b000000e9541000250000000e5510001f0000002d5510001d000000a85410001a0000007e5210000c00000000000000c25410000400000000000000c654100008000000165410001e0000003c871000000000003a5210000b000000345410003f00000073541000190000008c5410001c000000a85410001a0000007e5210000c000000000000000254100006000000000000000854100003000000000000000b5410000800000000000000135410000300000091521000450000003c87100000000000d65210004f00000025531000500000003c871000000000003a5210000b0000007553100037000000ac53100019000000c55310001d000000e2531000200000007e5210000c000000000000003a48100006000000000000008a52100007000000105210002a0000003c871000000000003a5210000b000000455210002e000000735210000b0000007e5210000c000000204d616b6520736f6d65206f6e2d636861696e2072656d61726b20616e6420656d6974206576656e742e2023203c7765696768743e202d20604f28622960207768657265206220697320746865206c656e677468206f66207468652072656d61726b2e202d2031206576656e742e2023203c2f7765696768743e5665633c75383e204b696c6c20616c6c2073746f72616765206974656d7320776974682061206b657920746861742073746172747320776974682074686520676976656e207072656669782e202a2a4e4f54453a2a2a2057652072656c79206f6e2074686520526f6f74206f726967696e20746f2070726f7669646520757320746865206e756d626572206f66207375626b65797320756e6465722074686520707265666978207765206172652072656d6f76696e6720746f2061636375726174656c792063616c63756c6174652074686520776569676874206f6620746869732066756e6374696f6e2e202d20604f285029602077686572652060506020616d6f756e74206f66206b657973207769746820707265666978206070726566697860202d206050602073746f726167652064656c6574696f6e732e202d2042617365205765696768743a20302e383334202a205020c2b573202d205772697465733a204e756d626572206f66207375626b657973202b20317072656669784b65795f7375626b657973753332204b696c6c20736f6d65206974656d732066726f6d2073746f726167652e202d20604f28494b296020776865726520604960206c656e677468206f6620606b6579736020616e6420604b60206c656e677468206f66206f6e65206b6579202d206049602073746f726167652064656c6574696f6e732e202d2042617365205765696768743a202e333738202a206920c2b573202d205772697465733a204e756d626572206f66206974656d736b6579735665633c4b65793e2053657420736f6d65206974656d73206f662073746f726167652e202d20604f2849296020776865726520604960206c656e677468206f6620606974656d7360202d206049602073746f72616765207772697465732028604f28312960292e202d2042617365205765696768743a20302e353638202a206920c2b5736974656d735665633c4b657956616c75653e2053657420746865206e6577206368616e676573207472696520636f6e66696775726174696f6e2e202d20604f28312960202d20312073746f72616765207772697465206f722064656c6574652028636f64656320604f28312960292e202d20312063616c6c20746f20606465706f7369745f6c6f67603a20557365732060617070656e6460204150492c20736f204f283129202d2042617365205765696768743a20372e32313820c2b573202d204442205765696768743a20202020202d205772697465733a204368616e67657320547269652c2053797374656d204469676573746368616e6765735f747269655f636f6e6669674f7074696f6e3c4368616e67657354726965436f6e66696775726174696f6e3e2053657420746865206e65772072756e74696d6520636f646520776974686f757420646f696e6720616e7920636865636b73206f662074686520676976656e2060636f6465602e202d20604f2843296020776865726520604360206c656e677468206f662060636f646560202d20312073746f726167652077726974652028636f64656320604f28432960292e2054686520776569676874206f6620746869732066756e6374696f6e20697320646570656e64656e74206f6e207468652072756e74696d652e2057652077696c6c207472656174207468697320617320612066756c6c20626c6f636b2e2053657420746865206e65772072756e74696d6520636f64652e202d20604f2843202b2053296020776865726520604360206c656e677468206f662060636f64656020616e642060536020636f6d706c6578697479206f66206063616e5f7365745f636f646560202d20312063616c6c20746f206063616e5f7365745f636f6465603a20604f28532960202863616c6c73206073705f696f3a3a6d6973633a3a72756e74696d655f76657273696f6e6020776869636820697320657870656e73697665292e2054686520776569676874206f6620746869732066756e6374696f6e20697320646570656e64656e74206f6e207468652072756e74696d652c206275742067656e6572616c6c792074686973206973207665727920657870656e736976652e2057652077696c6c207472656174207468697320617320612066756c6c20626c6f636b2e636f64652053657420746865206e756d626572206f6620706167657320696e2074686520576562417373656d626c7920656e7669726f6e6d656e74277320686561702e202d20312073746f726167652077726974652e202d2042617365205765696768743a20312e34303520c2b573202d203120777269746520746f20484541505f50414745537061676573753634204d616b6520736f6d65206f6e2d636861696e2072656d61726b2e5f72656d61726b204120646973706174636820746861742077696c6c2066696c6c2074686520626c6f636b2077656967687420757020746f2074686520676976656e20726174696f2e5f726174696f50657262696c6c0000000019701000070000000102000000000000245f10000c00000000000000305f100025000000000000000000000000000000000000003c871000585f10000000000000000000685f100001000000000000000100000000000000705f10000e00000000000000000000001354100003000000000000000000000000000000000000000000000000000000000000003c871000805f10000000000000000000905f100001000000000000000000000000000000985f10000b0000000000000000000000a35f10000e000000000000000000000000000000000000000000000000000000000000003c871000b45f10000000000000000000c45f100001000000000000000100000000000000cc5f10001000000000000000000000001354100003000000000000000000000000000000000000000000000000000000000000003c871000805f10000000000000000000dc5f10000100000000000000000000000000000010701000090000000105000000000000e45f10000e00000000000000f25f100007000000000000000000000000000000000000003c871000fc5f100000000000000000000c60100001000000000000000100000000000000037010000d00000001050000000000001354100003000000000000008a52100007000000000000000000000000000000000000003c87100014601000000000000000000024601000010000000000000001000000000000002c601000060000000000000000000000e45f10000e000000000000000000000000000000000000000000000000000000000000003c87100034601000000000000000000044601000010000000000000001000000000000004c6010000a0000000000000000000000f25f100007000000000000000000000000000000000000000000000000000000000000003c871000fc5f10000000000000000000586010000100000000000000010000000000000060601000060000000000000000000000666010000b000000000000000000000000000000000000000000000000000000000000003c87100074601000000000000000000084601000010000000000000001000000000000008c6010000600000000000000000000009260100023000000000000000000000000000000000000000000000000000000000000003c871000b86010000000000000000000c860100001000000000000000100000000000000d06010000a0000000000000000000000da6010000a000000000000000000000000000000000000000000000000000000000000003c871000346010000000000000000000e460100001000000000000000100000000000000f86f10000b0000000102000000000000f25f10000700000000000000ec60100021000000000000000000000000000000000000003c871000106110000000000000000000206110000a000000000000000100000000000000706110001200000000000000000000008261100016000000000000000000000000000000000000000000000000000000000000003c871000986110000000000000000000a861100001000000000000000000000000000000b0611000150000000000000000000000c561100004000000000000000000000000000000000000000000000000000000000000003c871000cc6110000000000000000000dc61100001000000000000000100000000000000e4611000180000000000000000000000c561100004000000000000000000000000000000000000000000000000000000000000003c871000cc6110000000000000000000fc611000020000000000000001000000000000000c6210000e00000000000000000000001a62100005000000000000000000000000000000000000000000000000000000000000003c87100020621000000000000000000030621000010000000000000000000000543a3a4163636f756e7449644163636f756e74496e666f3c543a3a496e6465782c20543a3a4163636f756e74446174613e0000002b000000000000000100000070000000a26710003a00000045787472696e736963436f756e7400002b000000000000000100000063000000746710002e000000426c6f636b576569676874436f6e73756d65645765696768740000002b0000000000000001000000710000005267100022000000416c6c45787472696e736963734c656e0267100050000000543a3a426c6f636b4e756d626572543a3a486173680000002b000000000000000100000072000000dc661000260000002b0000000000000001000000640000008d6610004f0000004e756d62657200002b0000000000000001000000650000004b66100042000000506172656e744861736800002f6610001c0000004469676573744469676573744f663c543e0000002b000000000000000100000073000000f36510003c0000004576656e74735665633c4576656e745265636f72643c543a3a4576656e742c20543a3a486173683e3e0000002b000000000000000100000068000000cb651000280000004576656e74436f756e744576656e74496e6465789d6510002e0000005665633c28543a3a426c6f636b4e756d6265722c204576656e74496e646578293e0000002b0000000000000001000000740000006b63100049000000b4631000250000003c87100000000000d9631000540000002d641000510000007e641000390000003c87100000000000b7641000530000000a651000530000005d651000400000004c61737452756e74696d65557067726164654c61737452756e74696d6555706772616465496e666f2b00000000000000010000006300000016631000550000005570677261646564546f553332526566436f756e74626f6f6c0000002b000000000000000100000063000000c3621000530000005570677261646564546f547269706c65526566436f756e745a62100057000000b162100012000000457865637574696f6e50686173655068617365002b00000000000000010000006300000038621000220000002054686520657865637574696f6e207068617365206f662074686520626c6f636b2e2054727565206966207765206861766520757067726164656420736f2074686174204163636f756e74496e666f20636f6e7461696e73207468726565207479706573206f662060526566436f756e74602e2046616c7365202864656661756c7429206966206e6f742e2054727565206966207765206861766520757067726164656420736f207468617420607479706520526566436f756e74602069732060753332602e2046616c7365202864656661756c7429206966206e6f742e2053746f726573207468652060737065635f76657273696f6e6020616e642060737065635f6e616d6560206f66207768656e20746865206c6173742072756e74696d6520757067726164652068617070656e65642e204d617070696e67206265747765656e206120746f7069632028726570726573656e74656420627920543a3a486173682920616e64206120766563746f72206f6620696e6465786573206f66206576656e747320696e2074686520603c4576656e74733c543e3e60206c6973742e20416c6c20746f70696320766563746f727320686176652064657465726d696e69737469632073746f72616765206c6f636174696f6e7320646570656e64696e67206f6e2074686520746f7069632e205468697320616c6c6f7773206c696768742d636c69656e747320746f206c6576657261676520746865206368616e67657320747269652073746f7261676520747261636b696e67206d656368616e69736d20616e6420696e2063617365206f66206368616e67657320666574636820746865206c697374206f66206576656e7473206f6620696e7465726573742e205468652076616c756520686173207468652074797065206028543a3a426c6f636b4e756d6265722c204576656e74496e646578296020626563617573652069662077652075736564206f6e6c79206a7573742074686520604576656e74496e64657860207468656e20696e20636173652069662074686520746f70696320686173207468652073616d6520636f6e74656e7473206f6e20746865206e65787420626c6f636b206e6f206e6f74696669636174696f6e2077696c6c20626520747269676765726564207468757320746865206576656e74206d69676874206265206c6f73742e20546865206e756d626572206f66206576656e747320696e2074686520604576656e74733c543e60206c6973742e204576656e7473206465706f736974656420666f72207468652063757272656e7420626c6f636b2e20446967657374206f66207468652063757272656e7420626c6f636b2c20616c736f2070617274206f662074686520626c6f636b206865616465722e2048617368206f66207468652070726576696f757320626c6f636b2e205468652063757272656e7420626c6f636b206e756d626572206265696e672070726f6365737365642e205365742062792060657865637574655f626c6f636b602e2045787472696e73696373206461746120666f72207468652063757272656e7420626c6f636b20286d61707320616e2065787472696e736963277320696e64657820746f206974732064617461292e204d6170206f6620626c6f636b206e756d6265727320746f20626c6f636b206861736865732e20546f74616c206c656e6774682028696e2062797465732920666f7220616c6c2065787472696e736963732070757420746f6765746865722c20666f72207468652063757272656e7420626c6f636b2e205468652063757272656e742077656967687420666f722074686520626c6f636b2e20546f74616c2065787472696e7369637320636f756e7420666f72207468652063757272656e7420626c6f636b2e205468652066756c6c206163636f756e7420696e666f726d6174696f6e20666f72206120706172746963756c6172206163636f756e742049442e000000002c6910000c000000000000003869100014000000000000003c8710004c69100000000000000000005c691000010000000000000000000000646910000b000000000000006f69100013000000000000003c871000846910000000000000000000946910000100000000000000000000009c6910000e00000000000000e45f10000e000000000000003c871000ac6910000000000000000000bc691000010000000000000000000000c46910000800000000000000cc6910000f000000000000003c871000dc6910000000000000000000ec691000010000000000000000000000f46910000700000000000000fb6910000e000000000000003c8710000c6a100000000000000000001c6a1000010000000000000000000000246a10000a000000000000002e6a100002000000000000003c871000306a10000000000000000000406a10000500000000000000426c6f636b576569676874736c696d6974733a3a426c6f636b576569676874732b0000000000000001000000750000002a6c100034000000426c6f636b4c656e6774686c696d6974733a3a426c6f636b4c656e67746800002b000000000000000100000076000000006c10002a000000426c6f636b48617368436f756e7400002b000000000000000100000077000000ab6b100055000000446257656967687452756e74696d654462576569676874002b000000000000000100000078000000696b10004200000056657273696f6e52756e74696d6556657273696f6e0000002b000000000000000100000079000000486b1000210000005353353850726566697875382b00000000000000010000007a000000686a10002a0000003c87100000000000926a10004e000000e06a10004c0000002c6b10001c000000205468652064657369676e61746564205353383520707265666978206f66207468697320636861696e2e2054686973207265706c6163657320746865202273733538466f726d6174222070726f7065727479206465636c6172656420696e2074686520636861696e20737065632e20526561736f6e2069732074686174207468652072756e74696d652073686f756c64206b6e6f772061626f7574207468652070726566697820696e206f7264657220746f206d616b6520757365206f6620697420617320616e206964656e746966696572206f662074686520636861696e2e204765742074686520636861696e27732063757272656e742076657273696f6e2e2054686520776569676874206f662072756e74696d65206461746162617365206f7065726174696f6e73207468652072756e74696d652063616e20696e766f6b652e204d6178696d756d206e756d626572206f6620626c6f636b206e756d62657220746f20626c6f636b2068617368206d617070696e677320746f206b65657020286f6c64657374207072756e6564206669727374292e20546865206d6178696d756d206c656e677468206f66206120626c6f636b2028696e206279746573292e20426c6f636b20262065787472696e7369637320776569676874733a20626173652076616c75657320616e64206c696d6974732e0000000000003a4a10000f00000000000000ec6c1000020000000000000000000000204a10001a00000000000000fc6c1000020000000000000000000000034a10001d000000000000000c6d1000030000000000000000000000f04910001300000000000000246d1000010000000000000000000000494a10000f000000000000002c6d10000100000000000000a76e100045000000926e100015000000416e100051000000926e100015000000c26d10003c0000003c87100000000000fe6d100043000000826d100040000000346d10004e0000002054686572652069732061206e6f6e2d7a65726f207265666572656e636520636f756e742070726576656e74696e6720746865206163636f756e742066726f6d206265696e67207075726765642e20537569636964652063616c6c6564207768656e20746865206163636f756e7420686173206e6f6e2d64656661756c7420636f6d706f7369746520646174612e204661696c656420746f2065787472616374207468652072756e74696d652076657273696f6e2066726f6d20746865206e65772072756e74696d652e204569746865722063616c6c696e672060436f72655f76657273696f6e60206f72206465636f64696e67206052756e74696d6556657273696f6e60206661696c65642e205468652073706563696669636174696f6e2076657273696f6e206973206e6f7420616c6c6f77656420746f206465637265617365206265747765656e207468652063757272656e742072756e74696d6520616e6420746865206e65772072756e74696d652e20546865206e616d65206f662073706563696669636174696f6e20646f6573206e6f74206d61746368206265747765656e207468652063757272656e742072756e74696d652b0000000c000000040000004e0000004f0000007b000000a0000000080000004500000046000000546f10005a000000ce0100001e000000546f10005a000000e00100001e000000546f10005a000000f20100001e000000546f10005a000000050200001e0000002f636172676f2d686f6d652f6769742f636865636b6f7574732f706f6c6b61646f742d343033386632376435653465613265382f363239623836392f78636d2f78636d2d6578656375746f722f7372632f6173736574732e72730000546f10005a000000830100001e000000546f10005a0000008d0100001e0000002b00000008000000040000003d0000003e0000003f000000400000004100000042000000430000004576656e74546f7069637345787472696e73696344617461426c6f636b486173684163636f756e74e27010002b000000bd701000250000006672616d655f737570706f72743a3a73746f726167653a3a67656e657261746f723a3a6d61702f636172676f2d686f6d652f6769742f636865636b6f7574732f7375627374726174652d376530383433336434633337306132312f336631313031392f6672616d652f737570706f72742f7372632f73746f726167652f67656e657261746f722f6d61702e7273496e76616c6964207472616e736c6174653a206661696c20746f206465636f6465206b6579496e76616c6964207472616e736c6174653a206661696c20746f206465636f6465206f6c642076616c7565006e6f7420696d706c656d656e7465640000003071100064000000fb000000090000002f636172676f2d686f6d652f6769742f636865636b6f7574732f7375627374726174652d376530383433336434633337306132312f336631313031392f7072696d6974697665732f73746174652d6d616368696e652f7372632f6261636b656e642e72733071100064000000e9000000090000003071100064000000ee000000090000003071100064000000e400000009000000d47110004c00000074060000240000002f72757374632f643665616561316338383630616462353330326432666261616434303965333635383561623231372f6c6962726172792f616c6c6f632f7372632f7665632f6d6f642e7273307210004a000000c4000000110000002f72757374632f643665616561316338383630616462353330326432666261616434303965333635383561623231372f6c6962726172792f616c6c6f632f7372632f736c6963652e727300000800000000000000000000000000000000000000617474656d707420746f20646976696465206279207a65726f0000002b00000000000000010000003b000000cc7210005300000078000000230000002f636172676f2d686f6d652f72656769737472792f7372632f6769746875622e636f6d2d316563633632393964623965633832332f656e7669726f6e6d656e74616c2d312e312e322f7372632f6c69622e727300287310001a0000004552524f523a20436f7272757074656420737461746520617420506172656e7420686173682073686f756c642062652076616c69642e0000847410005700000038010000090000001e7510003100000084741000570000003f0100000d0000008474100057000000640100000d0000005369676e617475726520766572696669636174696f6e206661696c65642e000084741000570000005501000011000000ec741000320000008474100057000000c001000009000000446967657374206974656d206d757374206d6174636820746861742063616c63756c617465642e008474100057000000c80100000d00000053746f7261676520726f6f74206d757374206d6174636820746861742063616c63756c617465642e8474100057000000ce010000090000005472616e73616374696f6e207472696520726f6f74206d7573742062652076616c69642e8474100057000000d0010000090000002f636172676f2d686f6d652f6769742f636865636b6f7574732f7375627374726174652d376530383433336434633337306132312f336631313031392f6672616d652f6578656375746976652f7372632f6c69622e7273002b00000004000000040000007c0000004e756d626572206f6620646967657374206974656d73206d757374206d6174636820746861742063616c63756c617465642e496e76616c696420696e686572656e7420706f736974696f6e20666f722065787472696e73696320617420696e64657820496e76616c69642070617261636861696e20626c6f636b2064617461002b00000000000000010000006f0000009577100044000000350000000e000000496e76616c696420706172656e742068656164009577100044000000380000003b000000496e76616c696420706172656e7420686173680095771000440000003f000000050000005769746e657373206461746120646f6573206e6f7420636f6e7461696e20676976656e2073746f7261676520726f6f742e00000095771000440000004700000009000000547279696e6720746f207265706c61636520616e20616c7265616479207265706c6163656420696d706c656d656e746174696f6e210000003077100065000000710000000d0000002b00000010000000040000007d0000007e0000007f000000800000008100000082000000830000008400000085000000860000008700000088000000890000008a0000008b0000008c0000008d0000008e0000008f000000900000009100000092000000930000009400000095000000960000009700000098000000990000009a0000009b0000009c0000009d0000009e0000009f000000a0000000a100000056616c7565206973206f6e6c792074616b656e206f6e2064726f703b2071656430771000650000008e0000003a0000002f636172676f2d686f6d652f6769742f636865636b6f7574732f7375627374726174652d376530383433336434633337306132312f336631313031392f7072696d6974697665732f72756e74696d652d696e746572666163652f7372632f7761736d2e72732f6275696c642f70616c6c6574732f70617261636861696e2d73797374656d2f7372632f76616c69646174655f626c6f636b2f696d706c656d656e746174696f6e2e72730000002b00000004000000040000000f0000002b0000000400000004000000a20000002b0000000400000004000000a30000002b00000004000000040000007c0000002b0000000400000004000000a40000006c8f100054000000740100001b0000006c8f100054000000670100000d000000617373657274696f6e206661696c65643a20216578697374696e675f6b65792e69735f656d707479282900006c8f10005400000080030000150000004272616e63682077697468206e6f2073756276616c7565732e20536f6d657468696e672077656e742077726f6e672e006c8f100054000000ad04000019000000757365645f696e646578206f6e6c7920736574206966206f636375706965643b207165646c8f100054000000b30400001e0000006c8f100054000000db040000190000006c8f100054000000df0400001e0000006c8f10005400000015050000220000006c8f100054000000290500001c00000000010200b1791000260000006672616d655f737570706f72743a3a686173682f636172676f2d686f6d652f6769742f636865636b6f7574732f7375627374726174652d376530383433336434633337306132312f336631313031392f6672616d652f737570706f72742f7372632f686173682e7273496e76616c696420726576657273653a2068617368206c656e67746820746f6f2073686f7274002b0000000100000001000000a50000002f636172676f2d686f6d652f6769742f636865636b6f7574732f7375627374726174652d376530383433336434633337306132312f336631313031392f6672616d652f73797374656d2f7372632f6c696d6974732e72734275696c6465722066696e6973686564207769746820606275696c645f6f725f70616e6963603b205468652070616e69632069732065787065637465642069662072756e74696d65207765696768747320617265206e6f7420636f727265637400e879100057000000aa010000160000003c8710000000000000000000ffffffff2b0000000000000001000000a6000000a7000000a80000002b0000000000000001000000a6000000a7000000a8000000247c10005a0000006700000012000000436f646563206572726f724572726f72496e76616c696420696e707574206461746100002b00000000000000010000006f000000447b1000550000001d000000340000002f636172676f2d686f6d652f6769742f636865636b6f7574732f706f6c6b61646f742d343033386632376435653465613265382f363239623836392f70617261636861696e2f7372632f7761736d5f6170692e72733c7761736d3a73747269707065643e30780000a87b10000200000000000000200000000400000002000000000000000200000000000000030000000000000020000000080000000200000000000000000000000200000003000000416c6c6f634572726c61796f757400002b0000000400000004000000a900000043617061636974794f766572666c6f772f636172676f2d686f6d652f72656769737472792f7372632f6769746875622e636f6d2d316563633632393964623965633832332f7061726974792d7363616c652d636f6465632d322e312e302f7372632f636f6465632e72735765206465636f646520604e6020656c656d656e74733b20716564000000247c10005a000000c602000017000000486f737420746f207761736d2070726f766964657320612076616c696420656e756d206469736372696d696e616e743b207165642b0000000000000001000000c0000000007d100068000000bb0100001a0000002f636172676f2d686f6d652f6769742f636865636b6f7574732f7375627374726174652d376530383433336434633337306132312f336631313031392f7072696d6974697665732f72756e74696d652d696e746572666163652f7372632f706173735f62792e7273486f737420746f207761736d2076616c7565732061726520656e636f64656420636f72726563746c793b2071656400002b00000000000000010000006f000000007d100068000000090100002600000072756e74696d6552756e74696d65206d656d6f7279206578686175737465642e2041626f7274696e675472616e73616374696f6e206469737061746368206973206d616e6461746f72793b207472616e73616374696f6e73206d6179206e6f742068617665206d616e6461746f727920646973706174636865732e412063616c6c20776173206c6162656c6c6564206173206d616e6461746f72792c2062757420726573756c74656420696e20616e204572726f722e5472616e73616374696f6e20776f756c6420657868617573742074686520626c6f636b206c696d6974735472616e73616374696f6e2068617320616e20616e6369656e7420626972746820626c6f636b5472616e73616374696f6e20686173206120626164207369676e61747572655472616e73616374696f6e206973206f757464617465645472616e73616374696f6e2077696c6c2062652076616c696420696e2074686520667574757265496e6162696c69747920746f2070617920736f6d6520666565732028652e672e206163636f756e742062616c616e636520746f6f206c6f77295472616e73616374696f6e2063616c6c206973206e6f74206578706563746564496e76616c69645472616e73616374696f6e20637573746f6d206572726f72436f756c64206e6f742066696e6420616e20756e7369676e65642076616c696461746f7220666f722074686520756e7369676e6564207472616e73616374696f6e436f756c64206e6f74206c6f6f6b757020696e666f726d6174696f6e20726571756972656420746f2076616c696461746520746865207472616e73616374696f6e556e6b6e6f776e5472616e73616374696f6e20637573746f6d206572726f722b0000000000000001000000c3000000c4000000a80000003c871000000000002b00000004000000040000006000000061000000c500000048617368206e6f7420657175616c0000dc9010005b0000005c020000090000004f726420697320696c6c2d646566696e656420696e2042547265654d61702072616e6765c08010005d00000076000000110000002f72757374632f643665616561316338383630616462353330326432666261616434303965333635383561623231372f6c6962726172792f616c6c6f632f7372632f636f6c6c656374696f6e732f62747265652f7365617263682e7273000000649410005a000000e40000002e000000616c726561647920626f72726f7765642b00000000000000010000003b0000002f636172676f2d686f6d652f6769742f636865636b6f7574732f7375627374726174652d376530383433336434633337306132312f336631313031392f7072696d6974697665732f73746174652d6d616368696e652f7372632f73746174732e7273000050811000620000007b0000001e00000050811000620000007c000000230000005081100062000000800000001e00000050811000620000008100000024000000248210006200000091000000090000002482100062000000910000003500000024821000620000007b0000000d0000002f636172676f2d686f6d652f72656769737472792f7372632f6769746875622e636f6d2d316563633632393964623965633832332f7061726974792d7363616c652d636f6465632d322e312e302f7372632f656e636f64655f617070656e642e72732f636172676f2d686f6d652f72656769737472792f7372632f6769746875622e636f6d2d316563633632393964623965633832332f7061726974792d7363616c652d636f6465632d322e312e302f7372632f636f6d706163742e727300002b00000008000000040000006a000000f48c10004e0000000c0100002e000000416e204f7665726c617956616c756520697320616c7761797320637265617465642077697468206174206c65617374206f6e65207472616e73616374696f6e20616e642064726f7070656420617320736f6f6e0a09617320746865206c617374207472616e73616374696f6e2069732072656d6f7665643b20716564908310007800000086000000230000002f636172676f2d686f6d652f6769742f636865636b6f7574732f7375627374726174652d376530383433336434633337306132312f336631313031392f7072696d6974697665732f73746174652d6d616368696e652f7372632f6f7665726c617965645f6368616e6765732f6368616e67657365742e72739083100078000000970000002b0000009083100078000000a10000002b000000447261696e206973206e6f7420616c6c6f7765642077697468206f70656e207472616e73616374696f6e732e908310007800000006010000090000004e6f4f70656e5472616e73616374696f6e4120777269746520746f20616e204f7665726c6179656456616c7565206973207265636f7264656420696e20746865206469727479206b6579207365742e204265666f726520616e0a090909094f7665726c6179656456616c75652069732072656d6f7665642c2069747320636f6e7461696e696e67206469727479207365742069732072656d6f7665642e20546869730a0909090966756e6374696f6e206973206f6e6c792063616c6c656420666f72206b65797320746861742061726520696e20746865206469727479207365742e2071656400009083100078000000580100003800000090831000780000009c00000021000000416c7265616479496e52756e74696d653a65787472696e7369635f696e646578546f7020616e64206368696c6472656e206368616e67657365747320617265207374617274656420696e206c6f636b737465703b207165642b00000000000000010000006d0000002c86100072000000a501000012000000546f7020616e64206f6666636861696e206368616e67657365747320617265207374617274656420696e206c6f636b737465703b207165642c86100072000000a90100000e0000002f636172676f2d686f6d652f6769742f636865636b6f7574732f7375627374726174652d376530383433336434633337306132312f336631313031392f7072696d6974697665732f73746174652d6d616368696e652f7372632f6f7665726c617965645f6368616e6765732f6d6f642e727300002c86100072000000b80100000e0000002c86100072000000b5010000120000002b00000000000000010000006c0000002c86100072000000c70100000e000000546f7020616e64206368696c6472656e206368616e6765736574732061726520656e746572696e672072756e74696d6520696e206c6f636b737465703b207165640000002c86100072000000c40100001200000073746f72616765004c8710005800000027000000200000002f636172676f2d686f6d652f72656769737472792f7372632f6769746875622e636f6d2d316563633632393964623965633832332f61727261797665632d302e372e302f7372632f61727261797665635f696d706c2e7273db8710000d000000c6871000150000003c87100000000000c4871000020000003a20696e73756666696369656e7420636170616369747943617061636974794572726f72040000000000000044656661756c744572726f723a6368696c645f73746f726167653a3a6368696c645f73746f726167653a64656661756c743a000034881000570000007d010000050000002f636172676f2d686f6d652f6769742f636865636b6f7574732f7375627374726174652d376530383433336434633337306132312f336631313031392f7072696d6974697665732f747269652f7372632f6c69622e7273009c8810004d000000e80b00000d0000002f72757374632f643665616561316338383630616462353330326432666261616434303965333635383561623231372f6c6962726172792f636f72652f7372632f736c6963652f6d6f642e7273000000fc8810005e000000470000001f0000002f636172676f2d686f6d652f6769742f636865636b6f7574732f7375627374726174652d376530383433336434633337306132312f336631313031392f7072696d6974697665732f747269652f7372632f6e6f64655f636f6465632e72730000fc8810005e00000050000000140000007c8910004e0000005b050000150000002f72757374632f643665616561316338383630616462353330326432666261616434303965333635383561623231372f6c6962726172792f636f72652f7372632f736c6963652f697465722e72730000ec8910005f0000004000000040000000ec8910005f000000400000004d0000002f636172676f2d686f6d652f6769742f636865636b6f7574732f7375627374726174652d376530383433336434633337306132312f336631313031392f7072696d6974697665732f747269652f7372632f747269655f73747265616d2e727300ec8910005f0000003f0000003100000001000000000000006c656e20213d20302073696e6365206c656e2025203220213d20303b20696e6e6572206861732061206c61737420656c656d656e743b207165640000b08a10005b0000003d000000120000002f636172676f2d686f6d652f72656769737472792f7372632f6769746875622e636f6d2d316563633632393964623965633832332f747269652d64622d302e32322e322f7372632f6e6962626c652f6e6962626c657665632e72736c656e20213d20303b20696e6e657220686173206c61737420656c656d3b20716564000000b08a10005b0000004800000025000000b08a10005b0000006000000033000000b08a10005b000000600000000d000000b08a10005b000000690000000f000000b08a10005b0000006b0000000f000000b08a10005b0000006b0000003e000000b08a10005b0000009100000039000000b08a10005b0000009100000011000000b08a10005b0000009300000011000000b08a10005b0000009400000040000000b08a10005b000000940000004e000000008c10005d0000009800000017000000008c10005d00000096000000290000002f636172676f2d686f6d652f72656769737472792f7372632f6769746875622e636f6d2d316563633632393964623965633832332f747269652d64622d302e32322e322f7372632f6e6962626c652f6e6962626c65736c6963652e7273000000848e1000550000004d0000001c000000008c10005d0000004000000012000000008c10005d0000004f0000002d000000008c10005d0000005500000032000000008c10005d000000dd0000000f000000008c10005d000000df0000000f000000008c10005d000000df0000003d0000006361706163697479206f766572666c6f77000000f48c10004e000000fb000000360000002f636172676f2d686f6d652f72656769737472792f7372632f6769746875622e636f6d2d316563633632393964623965633832332f736d616c6c7665632d312e362e312f7372632f6c69622e7273617373657274696f6e206661696c65643a206e65775f636170203e3d206c656e0000f48c10004e000000320300000d000000617373657274696f6e206661696c65643a20696e646578203c3d206c656e0000f48c10004e0000005f05000009000000848e1000550000008d0000003c000000848e1000550000008d00000051000000848e1000550000008d00000031000000f48d10004f0000004b00000042000000f48d10004f0000004a0000003e0000002f636172676f2d686f6d652f72656769737472792f7372632f6769746875622e636f6d2d316563633632393964623965633832332f747269652d64622d302e32322e322f7372632f6e6f64652e727300f48d10004f0000006b00000022000000f48d10004f0000009a00000032000000f48d10004f000000a20000003e000000f48d10004f000000aa0000003e0000002f636172676f2d686f6d652f72656769737472792f7372632f6769746875622e636f6d2d316563633632393964623965633832332f747269652d64622d302e32322e322f7372632f6e6962626c652f6d6f642e7273000000848e1000550000008600000031000000848e1000550000008600000042000000848e1000550000008600000026000000848e100055000000870000001d000000848e100055000000870000000d000000848e1000550000008e00000018000000848e1000550000008e0000000d0000006c8f10005400000042060000090000006c8f10005400000042060000320000002f636172676f2d686f6d652f72656769737472792f7372632f6769746875622e636f6d2d316563633632393964623965633832332f747269652d64622d302e32322e322f7372632f7472696564626d75742e72736c656e202b20707265666978206d696e757320322a736b6970706564206973206c657373207468616e20343b207165642b0000000000000001000000c0000000109010005800000054020000200000002f636172676f2d686f6d652f6769742f636865636b6f7574732f706f6c6b61646f742d343033386632376435653465613265382f363239623836392f78636d2f7372632f76302f6d756c74695f6c6f636174696f6e2e72732829617373657274696f6e206661696c65643a20656467652e686569676874203d3d2073656c662e686569676874202d20310000dc9010005b0000007902000009000000617373657274696f6e206661696c65643a20696478203c204341504143495459dc9010005b0000007d020000090000002f72757374632f643665616561316338383630616462353330326432666261616434303965333635383561623231372f6c6962726172792f616c6c6f632f7372632f636f6c6c656374696f6e732f62747265652f6e6f64652e7273617373657274696f6e206661696c65643a2073656c662e686569676874203e2030dc9010005b000000d400000009000000dc9010005b0000002604000016000000617373657274696f6e206661696c65643a207372632e6c656e2829203d3d206473742e6c656e2829dc9010005b000000a706000005000000617373657274696f6e206661696c65643a20656467652e686569676874203d3d2073656c662e6e6f64652e686569676874202d2031000000dc9010005b0000009403000009000000dc9010005b00000063040000160000004094100013000000dc9010005b0000009f0400001f000000617373657274696f6e206661696c65643a206e65775f6c6566745f6c656e203c3d2043415041434954590000dc9010005b000000d304000009000000617373657274696f6e206661696c65643a206f6c645f6c6566745f6c656e202b20636f756e74203c3d2043415041434954590000dc9010005b000000860500000d000000617373657274696f6e206661696c65643a206f6c645f72696768745f6c656e203e3d20636f756e74dc9010005b000000870500000d000000696e7465726e616c206572726f723a20656e746572656420756e726561636861626c6520636f6465dc9010005b000000b705000016000000617373657274696f6e206661696c65643a206f6c645f72696768745f6c656e202b20636f756e74203c3d20434150414349545900dc9010005b000000470500000d000000617373657274696f6e206661696c65643a206f6c645f6c6566745f6c656e203e3d20636f756e7400dc9010005b000000480500000d000000dc9010005b0000007705000016000000617373657274696f6e206661696c65643a206d6174636820747261636b5f656467655f696478207b5c6e202020204c6566744f7252696768743a3a4c6566742869647829203d3e20696478203c3d206f6c645f6c6566745f6c656e2c5c6e202020204c6566744f7252696768743a3a52696768742869647829203d3e20696478203c3d2072696768745f6c656e2c5c6e7d000000dc9010005b0000001905000009000000656d70747920696e7465726e616c206e6f646500649410005a000000d2050000350000002f72757374632f643665616561316338383630616462353330326432666261616434303965333635383561623231372f6c6962726172792f616c6c6f632f7372632f636f6c6c656374696f6e732f62747265652f6d61702e727363616c6c65642060526573756c743a3a756e77726170282960206f6e20616e2060457272602076616c7565000000959510001d0000006b9510002a0000000c9510005f0000005c000000120000002f72757374632f643665616561316338383630616462353330326432666261616434303965333635383561623231372f6c6962726172792f616c6c6f632f7372632f636f6c6c656374696f6e732f62747265652f6e617669676174652e7273696e7465726e616c206572726f723a20656e746572656420756e726561636861626c6520636f64653a2042547265654d61702068617320646966666572656e742064657074687363616c6c656420604f7074696f6e3a3a756e77726170282960206f6e206120604e6f6e65602076616c7565000000f095100060000000450100002e0000002f72757374632f643665616561316338383630616462353330326432666261616434303965333635383561623231372f6c6962726172792f616c6c6f632f7372632f636f6c6c656374696f6e732f62747265652f6d61702f656e7472792e7273f095100060000000fb0100002a0000000041e0acc2000b84024f8167f7390000000000000000000000000000000000000000000000000000003c871000c07a100039000000000000000000000000000000000000000000000000000000aa00000000000000ab00000000000000ac00000000000000ad00000000000000ae00000000000000af00000000000000b000000000000000b100000000000000b200000000000000b300000000000000b400000000000000b500000000000000b600000000000000b700000000000000b800000000000000b900000000000000ba00000000000000bb00000000000000bc00000000000000bd00000000000000be00000000000000bf00000000000000c100000000000000c2000000000000000041e4aec2000b080000000000000000009ebe03046e616d650195be038a05001f6578745f6c6f6767696e675f6d61785f6c6576656c5f76657273696f6e5f3101236578745f63727970746f5f656432353531395f7665726966795f76657273696f6e5f3102286578745f63727970746f5f66696e6973685f62617463685f7665726966795f76657273696f6e5f3103376578745f63727970746f5f736563703235366b315f65636473615f7265636f7665725f636f6d707265737365645f76657273696f6e5f3104236578745f63727970746f5f737232353531395f7665726966795f76657273696f6e5f3205276578745f63727970746f5f73746172745f62617463685f7665726966795f76657273696f6e5f3106296578745f64656661756c745f6368696c645f73746f726167655f636c6561725f76657273696f6e5f3107306578745f64656661756c745f6368696c645f73746f726167655f636c6561725f7072656669785f76657273696f6e5f31082a6578745f64656661756c745f6368696c645f73746f726167655f6578697374735f76657273696f6e5f3109276578745f64656661756c745f6368696c645f73746f726167655f6765745f76657273696f6e5f310a2c6578745f64656661756c745f6368696c645f73746f726167655f6e6578745f6b65795f76657273696f6e5f310b286578745f64656661756c745f6368696c645f73746f726167655f726561645f76657273696f6e5f310c286578745f64656661756c745f6368696c645f73746f726167655f726f6f745f76657273696f6e5f310d276578745f64656661756c745f6368696c645f73746f726167655f7365745f76657273696f6e5f310e306578745f64656661756c745f6368696c645f73746f726167655f73746f726167655f6b696c6c5f76657273696f6e5f330f206578745f68617368696e675f626c616b65325f3235365f76657273696f6e5f31101e6578745f68617368696e675f74776f785f3132385f76657273696f6e5f31111d6578745f68617368696e675f74776f785f36345f76657273696f6e5f31121c6578745f616c6c6f6361746f725f667265655f76657273696f6e5f31131e6578745f616c6c6f6361746f725f6d616c6c6f635f76657273696f6e5f31142a6578745f747269655f626c616b65325f3235365f6f7264657265645f726f6f745f76657273696f6e5f31151c6578745f6d6973635f7072696e745f6865785f76657273696f6e5f31161d6578745f6d6973635f7072696e745f757466385f76657273696f6e5f3117226578745f6d6973635f72756e74696d655f76657273696f6e5f76657273696f6e5f31181c6578745f73746f726167655f617070656e645f76657273696f6e5f3119226578745f73746f726167655f6368616e6765735f726f6f745f76657273696f6e5f311a1b6578745f73746f726167655f636c6561725f76657273696f6e5f311b226578745f73746f726167655f636c6561725f7072656669785f76657273696f6e5f311c286578745f73746f726167655f636f6d6d69745f7472616e73616374696f6e5f76657273696f6e5f311d1c6578745f73746f726167655f6578697374735f76657273696f6e5f311e196578745f73746f726167655f6765745f76657273696f6e5f311f1e6578745f73746f726167655f6e6578745f6b65795f76657273696f6e5f31201a6578745f73746f726167655f726561645f76657273696f6e5f31212a6578745f73746f726167655f726f6c6c6261636b5f7472616e73616374696f6e5f76657273696f6e5f31221a6578745f73746f726167655f726f6f745f76657273696f6e5f3123196578745f73746f726167655f7365745f76657273696f6e5f3124276578745f73746f726167655f73746172745f7472616e73616374696f6e5f76657273696f6e5f3125196578745f6c6f6767696e675f6c6f675f76657273696f6e5f3126226578745f6f6666636861696e5f696e6465785f636c6561725f76657273696f6e5f3127206578745f6f6666636861696e5f696e6465785f7365745f76657273696f6e5f31281a5f5f727573745f616c6c6f635f6572726f725f68616e646c657229085f5f72675f6f6f6d2a33616c6c6f633a3a616c6c6f633a3a68616e646c655f616c6c6f635f6572726f723a3a68333061346538636637383161313439352b08727573745f6f6f6d2c34616c6c6f633a3a7261775f7665633a3a63617061636974795f6f766572666c6f773a3a68613038323933633636383239313437322d29636f72653a3a70616e69636b696e673a3a70616e69633a3a68633634663937353362386131626537362e2e616c6c6f633a3a7261775f7665633a3a66696e6973685f67726f773a3a68656339623739316366306636613034362f4773705f696f3a3a616c6c6f6361746f723a3a65787465726e5f686f73745f66756e6374696f6e5f696d706c733a3a6d616c6c6f633a3a6834326331343661653530346433356666304573705f696f3a3a616c6c6f6361746f723a3a65787465726e5f686f73745f66756e6374696f6e5f696d706c733a3a667265653a3a68626366333766366332326536363666383125616c6c6f633a3a666d743a3a666f726d61743a3a68643432303262663434353165343131393223636f72653a3a666d743a3a77726974653a3a68333430663261356164623035383937333336636f72653a3a70616e69636b696e673a3a70616e69635f626f756e64735f636865636b3a3a68646437306131633532326639613438643433636f72653a3a6f7074696f6e3a3a6578706563745f6e6f6e655f6661696c65643a3a6831376562363366633533333530333131353a3c266d7574205720617320636f72653a3a666d743a3a57726974653e3a3a77726974655f7374723a3a6838353961653439643663393635393637363b3c266d7574205720617320636f72653a3a666d743a3a57726974653e3a3a77726974655f636861723a3a6831616337353235653037303435346637373a3c266d7574205720617320636f72653a3a666d743a3a57726974653e3a3a77726974655f666d743a3a68643763656436386638663462396463343841616c6c6f633a3a7665633a3a5665633c542c413e3a3a73706c69745f6f66663a3a6173736572745f6661696c65643a3a6863396261303864613362366438653238394e636f72653a3a666d743a3a6e756d3a3a696d703a3a3c696d706c20636f72653a3a666d743a3a446973706c617920666f72207533323e3a3a666d743a3a68306334353861313332393630653838363a2d636f72653a3a70616e69636b696e673a3a70616e69635f666d743a3a68666131356635343732656635653535373b39636f72653a3a6f70733a3a66756e6374696f6e3a3a466e4f6e63653a3a63616c6c5f6f6e63653a3a68373638663331393138346165616262633c2f636f72653a3a666d743a3a6e756d3a3a696d703a3a666d745f7536343a3a68643763323462363139653738396437373d11727573745f626567696e5f756e77696e643e6f636f72653a3a7074723a3a64726f705f696e5f706c6163653c26636f72653a3a697465723a3a61646170746572733a3a636f706965643a3a436f706965643c636f72653a3a736c6963653a3a697465723a3a497465723c75383e3e3e3a3a68303337356532313964323463386639343f313c5420617320636f72653a3a616e793a3a416e793e3a3a747970655f69643a3a68313033663031323363306638356437354035636f72653a3a666d743a3a466f726d61747465723a3a7061645f696e74656772616c3a3a68383135303965336538336430303731664143636f72653a3a666d743a3a466f726d61747465723a3a7061645f696e74656772616c3a3a77726974655f7072656669783a3a6839636664666535336133306563353732423f636f72653a3a736c6963653a3a696e6465783a3a736c6963655f656e645f696e6465785f6c656e5f6661696c3a3a6862306437653965636439326333383039432c636f72653a3a666d743a3a466f726d61747465723a3a7061643a3a6863353362303232656334613136333438442e636f72653a3a7374723a3a736c6963655f6572726f725f6661696c3a3a683435336562653238633361336438346345323c265420617320636f72653a3a666d743a3a446973706c61793e3a3a666d743a3a6837303937326161326135396364643266464a3c636f72653a3a6f70733a3a72616e67653a3a52616e67653c4964783e20617320636f72653a3a666d743a3a44656275673e3a3a666d743a3a686362346137653762616233323061356547323c6368617220617320636f72653a3a666d743a3a44656275673e3a3a666d743a3a6863663462376533363964353837643838483d636f72653a3a736c6963653a3a696e6465783a3a736c6963655f696e6465785f6f726465725f6661696c3a3a6864656239323832323238363332653738494c636f72653a3a666d743a3a6e756d3a3a3c696d706c20636f72653a3a666d743a3a446562756720666f72207573697a653e3a3a666d743a3a68643064663134366464616534363035322e33364a41636f72653a3a736c6963653a3a696e6465783a3a736c6963655f73746172745f696e6465785f6c656e5f6661696c3a3a68613439303565646262633466653039634b37636f72653a3a70616e69636b696e673a3a6173736572745f6661696c65645f696e6e65723a3a68316666313534376234653230616232334c303c265420617320636f72653a3a666d743a3a44656275673e3a3a666d743a3a68633565373764323837313130393962384d443c636f72653a3a666d743a3a417267756d656e747320617320636f72653a3a666d743a3a446973706c61793e3a3a666d743a3a68363136303135393134303964616134324e453c636f72653a3a63656c6c3a3a426f72726f774572726f7220617320636f72653a3a666d743a3a44656275673e3a3a666d743a3a68623430393836373563346430353330394f483c636f72653a3a63656c6c3a3a426f72726f774d75744572726f7220617320636f72653a3a666d743a3a44656275673e3a3a666d743a3a6865613965386466313938353365636338502e636f72653a3a6f7074696f6e3a3a6578706563745f6661696c65643a3a683366636136316461313636313733646451323c265420617320636f72653a3a666d743a3a446973706c61793e3a3a666d743a3a683366383035316236663836346364353552533c636f72653a3a666d743a3a6275696c646572733a3a5061644164617074657220617320636f72653a3a666d743a3a57726974653e3a3a77726974655f7374723a3a6838333664333462346532333465316661533a636f72653a3a666d743a3a6275696c646572733a3a44656275675374727563743a3a6669656c643a3a6865643034343232393336373231643836542f636f72653a3a666d743a3a57726974653a3a77726974655f636861723a3a6861353338356234313535363961373963552e636f72653a3a666d743a3a57726974653a3a77726974655f666d743a3a6861646464353133356664303638666132563a3c266d7574205720617320636f72653a3a666d743a3a57726974653e3a3a77726974655f7374723a3a6861343030363464633465653062613966573b3c266d7574205720617320636f72653a3a666d743a3a57726974653e3a3a77726974655f636861723a3a6864643133613937613137353537313131583a3c266d7574205720617320636f72653a3a666d743a3a57726974653e3a3a77726974655f666d743a3a68383034393062363733333362616238375939636f72653a3a666d743a3a6275696c646572733a3a44656275675475706c653a3a6669656c643a3a68373230316338653237323030613438375a31636f72653a3a666d743a3a6e756d3a3a70617273655f7536345f696e746f3a3a68373835633739313239623639613262665b4e636f72653a3a736c6963653a3a3c696d706c205b545d3e3a3a636f70795f66726f6d5f736c6963653a3a6c656e5f6d69736d617463685f6661696c3a3a68333365376137316534376537386531325c303c265420617320636f72653a3a666d743a3a44656275673e3a3a666d743a3a68663265663039353738633135656166385d3e3c636f72653a3a666d743a3a4572726f7220617320636f72653a3a666d743a3a44656275673e3a3a666d743a3a68326334373934386661323433313635635e303c265420617320636f72653a3a666d743a3a44656275673e3a3a666d743a3a68633762393632303431633931303134615f773c73705f73746174655f6d616368696e653a3a747269655f6261636b656e643a3a547269654261636b656e643c532c483e2061732073705f73746174655f6d616368696e653a3a6261636b656e643a3a4261636b656e643c483e3e3a3a73746f726167653a3a6830303739336430363738623464663839608b013c73705f73746174655f6d616368696e653a3a747269655f6261636b656e645f657373656e63653a3a547269654261636b656e64457373656e63653c532c483e20617320686173685f64623a3a4861736844425265663c482c616c6c6f633a3a7665633a3a5665633c75383e3e3e3a3a636f6e7461696e733a3a68333838643038333434323963346131656186013c73705f73746174655f6d616368696e653a3a747269655f6261636b656e645f657373656e63653a3a547269654261636b656e64457373656e63653c532c483e20617320686173685f64623a3a4861736844425265663c482c616c6c6f633a3a7665633a3a5665633c75383e3e3e3a3a6765743a3a68623866393636653961653939306636356239747269655f64623a3a6e6f64655f636f6465633a3a4e6f6465436f6465633a3a6465636f64653a3a6838643539323031363638363233353531633473705f72756e74696d653a3a7472616974733a3a486173683a3a686173685f6f663a3a683066633834336633356333363139323264423c73705f7374643a3a57726974657220617320636f72653a3a666d743a3a57726974653e3a3a77726974655f7374723a3a6865323538316239383066346463346339654973705f696f3a3a68617368696e673a3a65787465726e5f686f73745f66756e6374696f6e5f696d706c733a3a626c616b65325f3235363a3a6838306530653565363235346161613533663473705f72756e74696d653a3a7472616974733a3a486173683a3a686173685f6f663a3a683262373164383663316338393034386367366861736862726f776e3a3a6d61703a3a486173684d61703c4b2c562c533e3a3a6765743a3a6835346630383263316361303466633165685463756d756c75735f70616c6c65745f70617261636861696e5f73797374656d3a3a72656c61795f73746174655f736e617073686f743a3a726561645f656e7472793a3a6835656466636537313634633266616334692e616c6c6f633a3a7261775f7665633a3a66696e6973685f67726f773a3a68303330616262643135383366393962646a5463756d756c75735f70616c6c65745f70617261636861696e5f73797374656d3a3a72656c61795f73746174655f736e617073686f743a3a726561645f656e7472793a3a68373361363432626132653235373430346b757072696d69746976655f74797065733a3a636f6465633a3a3c696d706c207061726974795f7363616c655f636f6465633a3a636f6465633a3a4465636f646520666f72207072696d69746976655f74797065733a3a483235363e3a3a6465636f64653a3a68323734313330393838666632343837616ca901636f72653a3a7074723a3a64726f705f696e5f706c6163653c6d656d6f72795f64623a3a4d656d6f727944423c73705f72756e74696d653a3a7472616974733a3a426c616b6554776f3235362c6d656d6f72795f64623a3a486173684b65793c73705f72756e74696d653a3a7472616974733a3a426c616b6554776f3235363e2c616c6c6f633a3a7665633a3a5665633c75383e3e3e3a3a68313661373931313365396365303365396d6a3c63756d756c75735f70616c6c65745f70617261636861696e5f73797374656d3a3a72656c61795f73746174655f736e617073686f743a3a4572726f7220617320636f72653a3a666d743a3a44656275673e3a3a666d743a3a68616263373364366564396131383038376e303c265420617320636f72653a3a666d743a3a44656275673e3a3a666d743a3a68636135633062393531653633333134306f6b3c7061726974795f7363616c655f636f6465633a3a636f6d706163743a3a436f6d706163743c7533323e206173207061726974795f7363616c655f636f6465633a3a636f6465633a3a4465636f64653e3a3a6465636f64653a3a68366439343735383634666262386239637031747269655f64623a3a6e6f64653a3a4e6f6465506c616e3a3a6275696c643a3a6862663363343030313637663962363830716563756d756c75735f70616c6c65745f70617261636861696e5f73797374656d3a3a76616c69646174655f626c6f636b3a3a696d706c656d656e746174696f6e3a3a686f73745f73746f726167655f726561643a3a6832343936643135356665386532383039726463756d756c75735f70616c6c65745f70617261636861696e5f73797374656d3a3a76616c69646174655f626c6f636b3a3a696d706c656d656e746174696f6e3a3a686f73745f73746f726167655f7365743a3a6839633630663033326335356535633530736463756d756c75735f70616c6c65745f70617261636861696e5f73797374656d3a3a76616c69646174655f626c6f636b3a3a696d706c656d656e746174696f6e3a3a686f73745f73746f726167655f6765743a3a6831653530393234366132333433653962746763756d756c75735f70616c6c65745f70617261636861696e5f73797374656d3a3a76616c69646174655f626c6f636b3a3a696d706c656d656e746174696f6e3a3a686f73745f73746f726167655f6578697374733a3a6838656536356239386238326233393032756663756d756c75735f70616c6c65745f70617261636861696e5f73797374656d3a3a76616c69646174655f626c6f636b3a3a696d706c656d656e746174696f6e3a3a686f73745f73746f726167655f636c6561723a3a6838623634623937643033336462383537766563756d756c75735f70616c6c65745f70617261636861696e5f73797374656d3a3a76616c69646174655f626c6f636b3a3a696d706c656d656e746174696f6e3a3a686f73745f73746f726167655f726f6f743a3a6865396561653766663961663937366562776d63756d756c75735f70616c6c65745f70617261636861696e5f73797374656d3a3a76616c69646174655f626c6f636b3a3a696d706c656d656e746174696f6e3a3a686f73745f73746f726167655f636c6561725f7072656669783a3a6866303932303361346638346663656264786d63756d756c75735f70616c6c65745f70617261636861696e5f73797374656d3a3a76616c69646174655f626c6f636b3a3a696d706c656d656e746174696f6e3a3a686f73745f73746f726167655f6368616e6765735f726f6f743a3a6832656436646534383037346161303531796763756d756c75735f70616c6c65745f70617261636861696e5f73797374656d3a3a76616c69646174655f626c6f636b3a3a696d706c656d656e746174696f6e3a3a686f73745f73746f726167655f617070656e643a3a68663361376164363966393638363666617a6963756d756c75735f70616c6c65745f70617261636861696e5f73797374656d3a3a76616c69646174655f626c6f636b3a3a696d706c656d656e746174696f6e3a3a686f73745f73746f726167655f6e6578745f6b65793a3a68306431343231656536613133633465327b7263756d756c75735f70616c6c65745f70617261636861696e5f73797374656d3a3a76616c69646174655f626c6f636b3a3a696d706c656d656e746174696f6e3a3a686f73745f73746f726167655f73746172745f7472616e73616374696f6e3a3a68323635373333396330383138313664347c7563756d756c75735f70616c6c65745f70617261636861696e5f73797374656d3a3a76616c69646174655f626c6f636b3a3a696d706c656d656e746174696f6e3a3a686f73745f73746f726167655f726f6c6c6261636b5f7472616e73616374696f6e3a3a68323830663161363465346563663564657d7363756d756c75735f70616c6c65745f70617261636861696e5f73797374656d3a3a76616c69646174655f626c6f636b3a3a696d706c656d656e746174696f6e3a3a686f73745f73746f726167655f636f6d6d69745f7472616e73616374696f6e3a3a68343461356430396132333663353861657e7263756d756c75735f70616c6c65745f70617261636861696e5f73797374656d3a3a76616c69646174655f626c6f636b3a3a696d706c656d656e746174696f6e3a3a686f73745f64656661756c745f6368696c645f73746f726167655f6765743a3a68303166643439303938336539306538627f7363756d756c75735f70616c6c65745f70617261636861696e5f73797374656d3a3a76616c69646174655f626c6f636b3a3a696d706c656d656e746174696f6e3a3a686f73745f64656661756c745f6368696c645f73746f726167655f726561643a3a683561663664313734343335313533376680017263756d756c75735f70616c6c65745f70617261636861696e5f73797374656d3a3a76616c69646174655f626c6f636b3a3a696d706c656d656e746174696f6e3a3a686f73745f64656661756c745f6368696c645f73746f726167655f7365743a3a683336626362363262636638326130303081017463756d756c75735f70616c6c65745f70617261636861696e5f73797374656d3a3a76616c69646174655f626c6f636b3a3a696d706c656d656e746174696f6e3a3a686f73745f64656661756c745f6368696c645f73746f726167655f636c6561723a3a683635626230316334333232636534323882017b63756d756c75735f70616c6c65745f70617261636861696e5f73797374656d3a3a76616c69646174655f626c6f636b3a3a696d706c656d656e746174696f6e3a3a686f73745f64656661756c745f6368696c645f73746f726167655f73746f726167655f6b696c6c3a3a683838613964386232653037633730346183017563756d756c75735f70616c6c65745f70617261636861696e5f73797374656d3a3a76616c69646174655f626c6f636b3a3a696d706c656d656e746174696f6e3a3a686f73745f64656661756c745f6368696c645f73746f726167655f6578697374733a3a683031366535653465386161336631626584017b63756d756c75735f70616c6c65745f70617261636861696e5f73797374656d3a3a76616c69646174655f626c6f636b3a3a696d706c656d656e746174696f6e3a3a686f73745f64656661756c745f6368696c645f73746f726167655f636c6561725f7072656669783a3a686365326335613336323933386361303485017363756d756c75735f70616c6c65745f70617261636861696e5f73797374656d3a3a76616c69646174655f626c6f636b3a3a696d706c656d656e746174696f6e3a3a686f73745f64656661756c745f6368696c645f73746f726167655f726f6f743a3a686435646635346534333836363166336686017763756d756c75735f70616c6c65745f70617261636861696e5f73797374656d3a3a76616c69646174655f626c6f636b3a3a696d706c656d656e746174696f6e3a3a686f73745f64656661756c745f6368696c645f73746f726167655f6e6578745f6b65793a3a686166383234326335376538366539646187016b63756d756c75735f70616c6c65745f70617261636861696e5f73797374656d3a3a76616c69646174655f626c6f636b3a3a696d706c656d656e746174696f6e3a3a686f73745f6f6666636861696e5f696e6465785f7365743a3a683337376536333238326664623664623588016d63756d756c75735f70616c6c65745f70617261636861696e5f73797374656d3a3a76616c69646174655f626c6f636b3a3a696d706c656d656e746174696f6e3a3a686f73745f6f6666636861696e5f696e6465785f636c6561723a3a683162393662616661616265323062633589015b616c6c6f633a3a636f6c6c656374696f6e733a3a62747265653a3a6e6f64653a3a42616c616e63696e67436f6e746578743c4b2c563e3a3a62756c6b5f737465616c5f72696768743a3a68393232636436316339656534393564398a0160616c6c6f633a3a636f6c6c656374696f6e733a3a62747265653a3a6e6f64653a3a42616c616e63696e67436f6e746578743c4b2c563e3a3a6d657267655f747261636b696e675f706172656e743a3a68353961356333626639333232396630358b01aa02616c6c6f633a3a636f6c6c656374696f6e733a3a62747265653a3a72656d6f76653a3a3c696d706c20616c6c6f633a3a636f6c6c656374696f6e733a3a62747265653a3a6e6f64653a3a48616e646c653c616c6c6f633a3a636f6c6c656374696f6e733a3a62747265653a3a6e6f64653a3a4e6f64655265663c616c6c6f633a3a636f6c6c656374696f6e733a3a62747265653a3a6e6f64653a3a6d61726b65723a3a4d75742c4b2c562c616c6c6f633a3a636f6c6c656374696f6e733a3a62747265653a3a6e6f64653a3a6d61726b65723a3a4c6561663e2c616c6c6f633a3a636f6c6c656374696f6e733a3a62747265653a3a6e6f64653a3a6d61726b65723a3a4b563e3e3a3a72656d6f76655f6c6561665f6b763a3a68396235323838383563316239366638668c0164616c6c6f633a3a636f6c6c656374696f6e733a3a62747265653a3a6e6f64653a3a42616c616e63696e67436f6e746578743c4b2c563e3a3a6d657267655f747261636b696e675f6368696c645f656467653a3a68663636336334343939336461346130388d015a616c6c6f633a3a636f6c6c656374696f6e733a3a62747265653a3a6e6f64653a3a42616c616e63696e67436f6e746578743c4b2c563e3a3a62756c6b5f737465616c5f6c6566743a3a68346566333866613433323135613866348e015b616c6c6f633a3a636f6c6c656374696f6e733a3a62747265653a3a6e6f64653a3a42616c616e63696e67436f6e746578743c4b2c563e3a3a62756c6b5f737465616c5f72696768743a3a68346235373338633066663432313762308f0160616c6c6f633a3a636f6c6c656374696f6e733a3a62747265653a3a6e6f64653a3a42616c616e63696e67436f6e746578743c4b2c563e3a3a6d657267655f747261636b696e675f706172656e743a3a6833616562653162313030626433336162900144636f72653a3a7475706c653a3a3c696d706c20636f72653a3a636d703a3a4f726420666f722028412c42293e3a3a636d703a3a68613034643064623062616230383134339101493c78636d5f6578656375746f723a3a6173736574733a3a4173736574496420617320636f72653a3a636d703a3a4f72643e3a3a636d703a3a68303636383864366535653636373865659201473c78636d3a3a76303a3a6a756e6374696f6e3a3a4a756e6374696f6e20617320636f72653a3a636d703a3a4f72643e3a3a636d703a3a68646662343164666361366133313635379301df01616c6c6f633a3a636f6c6c656374696f6e733a3a62747265653a3a6e617669676174653a3a3c696d706c20616c6c6f633a3a636f6c6c656374696f6e733a3a62747265653a3a6e6f64653a3a4e6f64655265663c616c6c6f633a3a636f6c6c656374696f6e733a3a62747265653a3a6e6f64653a3a6d61726b65723a3a496d6d75742c4b2c562c616c6c6f633a3a636f6c6c656374696f6e733a3a62747265653a3a6e6f64653a3a6d61726b65723a3a4c6561664f72496e7465726e616c3e3e3a3a66756c6c5f72616e67653a3a68393134396666333234396466643435339401417061726974795f7363616c655f636f6465633a3a636f6465633a3a6465636f64655f7665635f776974685f6c656e3a3a683264373937333463383331313630326295016678636d3a3a76303a3a5f3a3a3c696d706c207061726974795f7363616c655f636f6465633a3a636f6465633a3a4465636f646520666f722078636d3a3a76303a3a58636d3c43616c6c3e3e3a3a6465636f64653a3a6835306336626135386330616138616634960156636f72653a3a7074723a3a64726f705f696e5f706c6163653c78636d3a3a76303a3a58636d3c63756d756c75735f7368656c6c5f72756e74696d653a3a43616c6c3e3e3a3a68313336383831376432363135346263349701417061726974795f7363616c655f636f6465633a3a636f6465633a3a6465636f64655f7665635f776974685f6c656e3a3a68396231393235336435353862323061369801543c616c6c6f633a3a7665633a3a5665633c543e206173207061726974795f7363616c655f636f6465633a3a636f6465633a3a4465636f64653e3a3a6465636f64653a3a683535303331346331393834356537616299018a0178636d3a3a76303a3a6d756c74695f6c6f636174696f6e3a3a5f3a3a3c696d706c207061726974795f7363616c655f636f6465633a3a636f6465633a3a4465636f646520666f722078636d3a3a76303a3a6d756c74695f6c6f636174696f6e3a3a4d756c74694c6f636174696f6e3e3a3a6465636f64653a3a68353933653363656563306661613662329a014d636f72653a3a7074723a3a64726f705f696e5f706c6163653c78636d3a3a76303a3a6d756c74695f61737365743a3a4d756c746941737365743e3a3a68323738636637323934616561376561649b016b3c7061726974795f7363616c655f636f6465633a3a636f6d706163743a3a436f6d706163743c7533323e206173207061726974795f7363616c655f636f6465633a3a636f6465633a3a4465636f64653e3a3a6465636f64653a3a68393030333064336133633037653464359c0153636f72653a3a7074723a3a64726f705f696e5f706c6163653c78636d3a3a76303a3a6d756c74695f6c6f636174696f6e3a3a4d756c74694c6f636174696f6e3e3a3a68363135313237383266376333633632309d016b3c7061726974795f7363616c655f636f6465633a3a636f6d706163743a3a436f6d706163743c7536343e206173207061726974795f7363616c655f636f6465633a3a636f6465633a3a4465636f64653e3a3a6465636f64653a3a68643632326537333366613938363866359e01810178636d3a3a76303a3a6d756c74695f61737365743a3a5f3a3a3c696d706c207061726974795f7363616c655f636f6465633a3a636f6465633a3a4465636f646520666f722078636d3a3a76303a3a6d756c74695f61737365743a3a4d756c746941737365743e3a3a6465636f64653a3a68363234376232346239643861613030359f01417061726974795f7363616c655f636f6465633a3a636f6465633a3a6465636f64655f7665635f776974685f6c656e3a3a6862396263626564656438646661343733a00146636f72653a3a7074723a3a64726f705f696e5f706c6163653c78636d3a3a76303a3a6f726465723a3a4f726465723c28293e3e3a3a6834363736633432643364656534303461a1016678636d3a3a76303a3a5f3a3a3c696d706c207061726974795f7363616c655f636f6465633a3a636f6465633a3a4465636f646520666f722078636d3a3a76303a3a58636d3c43616c6c3e3e3a3a6465636f64653a3a6865313536363964623264303164613730a20142636f72653a3a7074723a3a64726f705f696e5f706c6163653c78636d3a3a76303a3a58636d3c28293e3e3a3a68613738356331663539613539376436312e31353539a301417061726974795f7363616c655f636f6465633a3a636f6465633a3a6465636f64655f7665635f776974685f6c656e3a3a6865646566366137313461386231396465a40161636f72653a3a7074723a3a64726f705f696e5f706c6163653c5b78636d3a3a76303a3a6f726465723a3a4f726465723c63756d756c75735f7368656c6c5f72756e74696d653a3a43616c6c3e5d3e3a3a6834653766663530323632636265323266a501437061726974795f7363616c655f636f6465633a3a636f6465633a3a636f6d706163745f656e636f64655f6c656e5f746f3a3a6863616132616138366137616631306265a601483c5b545d206173207061726974795f7363616c655f636f6465633a3a636f6465633a3a456e636f64653e3a3a656e636f64655f746f3a3a6861343063636637616237646337363864a701483c5b543b204e5d206173207061726974795f7363616c655f636f6465633a3a636f6465633a3a4465636f64653e3a3a6465636f64653a3a6837303636363630646233663138326237a801483c5b543b204e5d206173207061726974795f7363616c655f636f6465633a3a636f6465633a3a4465636f64653e3a3a6465636f64653a3a6837373234323638316264363037396230a901483c5b543b204e5d206173207061726974795f7363616c655f636f6465633a3a636f6465633a3a4465636f64653e3a3a6465636f64653a3a6864393866656562666237326136623766aa016a6672616d655f737570706f72743a3a73746f726167653a3a74797065733a3a76616c75653a3a53746f7261676556616c75653c5072656669782c56616c75652c51756572794b696e642c4f6e456d7074793e3a3a6765743a3a6865643763376635653136333435653231ab014773705f696f3a3a68617368696e673a3a65787465726e5f686f73745f66756e6374696f6e5f696d706c733a3a74776f785f3132383a3a6830316533306565373533323661303130ac01303c265420617320636f72653a3a666d743a3a44656275673e3a3a666d743a3a6834363732643331666161323165336564ad014673705f696f3a3a6d6973633a3a65787465726e5f686f73745f66756e6374696f6e5f696d706c733a3a7072696e745f757466383a3a6838616365353236353938326665656362ae016a6672616d655f737570706f72743a3a73746f726167653a3a74797065733a3a76616c75653a3a53746f7261676556616c75653c5072656669782c56616c75652c51756572794b696e642c4f6e456d7074793e3a3a7075743a3a6836303063643331636339323333643164af01766672616d655f737570706f72743a3a73746f726167653a3a67656e657261746f723a3a76616c75653a3a3c696d706c206672616d655f737570706f72743a3a73746f726167653a3a53746f7261676556616c75653c543e20666f7220473e3a3a6765743a3a6837313366643331356566323537346131b001766672616d655f737570706f72743a3a73746f726167653a3a67656e657261746f723a3a76616c75653a3a3c696d706c206672616d655f737570706f72743a3a73746f726167653a3a53746f7261676556616c75653c543e20666f7220473e3a3a6765743a3a6861626537373734396634383130613536b1017c636f72653a3a7074723a3a64726f705f696e5f706c6163653c747269655f64623a3a7472696564626d75743a3a5472696544424d75743c73705f747269653a3a4c61796f75743c73705f72756e74696d653a3a7472616974733a3a426c616b6554776f3235363e3e3e3a3a6834646337376364306536306561613431b20143616c6c6f633a3a636f6c6c656374696f6e733a3a7665635f64657175653a3a56656344657175653c543e3a3a67726f773a3a6838613638653561613766666632646530b3013c747269655f64623a3a7472696564626d75743a3a4e6f646553746f726167653c483e3a3a616c6c6f633a3a6839366165663935626663323133333033b4014473705f747269653a3a6e6f64655f636f6465633a3a7061727469616c5f66726f6d5f6974657261746f725f656e636f64653a3a6866626162363863363963666365343235b50160747269655f64623a3a6e6962626c653a3a6e6962626c657665633a3a3c696d706c20747269655f64623a3a6e6962626c653a3a4e6962626c655665633e3a3a617070656e645f7061727469616c3a3a6862643663643737303237643839326162b60156747269655f64623a3a6e6962626c653a3a6e6962626c657665633a3a3c696d706c20747269655f64623a3a6e6962626c653a3a4e6962626c655665633e3a3a707573683a3a6863663630363336346237373163376238b70141747269655f64623a3a7472696564626d75743a3a5472696544424d75743c4c3e3a3a636f6d6d69745f6368696c643a3a6830666634643134653731346536633661b8015c747269655f64623a3a6e6962626c653a3a6e6962626c657665633a3a3c696d706c20747269655f64623a3a6e6962626c653a3a4e6962626c655665633e3a3a64726f705f6c617374733a3a6862616238663962306165326162313032b901633c73705f747269653a3a6e6f64655f636f6465633a3a4e6f6465436f6465633c483e20617320747269655f64623a3a6e6f64655f636f6465633a3a4e6f6465436f6465633e3a3a6c6561665f6e6f64653a3a6830663336376164663265303138363634ba0160747269655f64623a3a6e6962626c653a3a6e6962626c65736c6963653a3a3c696d706c20747269655f64623a3a6e6962626c653a3a4e6962626c65536c6963653e3a3a72696768745f697465723a3a6865313261376161656463326131363630bb0172747269655f64623a3a6e6962626c653a3a6e6962626c657665633a3a3c696d706c20747269655f64623a3a6e6962626c653a3a4e6962626c655665633e3a3a617070656e645f6f7074696f6e616c5f736c6963655f616e645f6e6962626c653a3a6834356235366663323661333337313231bc01683c73705f747269653a3a6e6f64655f636f6465633a3a4e6f6465436f6465633c483e20617320747269655f64623a3a6e6f64655f636f6465633a3a4e6f6465436f6465633e3a3a657874656e73696f6e5f6e6f64653a3a6838366632663838613939623139343935bd01653c73705f747269653a3a6e6f64655f636f6465633a3a4e6f6465436f6465633c483e20617320747269655f64623a3a6e6f64655f636f6465633a3a4e6f6465436f6465633e3a3a6272616e63685f6e6f64653a3a6861303330343036333537356432636165be015c636f72653a3a7074723a3a64726f705f696e5f706c6163653c747269655f64623a3a7472696564626d75743a3a4e6f64653c7072696d69746976655f74797065733a3a483235363e3e3a3a6866373835336133336663356239353233bf018502636f72653a3a7074723a3a64726f705f696e5f706c6163653c73705f73746174655f6d616368696e653a3a747269655f6261636b656e645f657373656e63653a3a547269654261636b656e64457373656e63653c6d656d6f72795f64623a3a4d656d6f727944423c73705f72756e74696d653a3a7472616974733a3a426c616b6554776f3235362c6d656d6f72795f64623a3a486173684b65793c73705f72756e74696d653a3a7472616974733a3a426c616b6554776f3235363e2c616c6c6f633a3a7665633a3a5665633c75383e3e2c73705f72756e74696d653a3a7472616974733a3a426c616b6554776f3235363e3e3a3a6831323262313561333965653465333131c0014f3c73705f747269653a3a4b657953706163656444424d75743c44422c483e20617320686173685f64623a3a4861736844423c482c543e3e3a3a6765743a3a6831346534653638373962383333363636c1013473705f747269653a3a6b657973706163655f61735f7072656669785f616c6c6f633a3a6862663837306231326431353733623835c2017a3c73705f73746174655f6d616368696e653a3a747269655f6261636b656e645f657373656e63653a3a457068656d6572616c3c532c483e20617320686173685f64623a3a4861736844423c482c616c6c6f633a3a7665633a3a5665633c75383e3e3e3a3a6765743a3a6864353739343566393433346266336230c301543c73705f747269653a3a4b657953706163656444424d75743c44422c483e20617320686173685f64623a3a4861736844423c482c543e3e3a3a636f6e7461696e733a3a6835313936613133366239633965663066c4017f3c73705f73746174655f6d616368696e653a3a747269655f6261636b656e645f657373656e63653a3a457068656d6572616c3c532c483e20617320686173685f64623a3a4861736844423c482c616c6c6f633a3a7665633a3a5665633c75383e3e3e3a3a636f6e7461696e733a3a6838316563323563643766363030323335c501523c73705f747269653a3a4b657953706163656444424d75743c44422c483e20617320686173685f64623a3a4861736844423c482c543e3e3a3a696e736572743a3a6830323439636163376663636364316431c601523c6d656d6f72795f64623a3a4d656d6f727944423c482c4b462c542c4d3e20617320686173685f64623a3a4861736844423c482c543e3e3a3a696e736572743a3a6834643230613866613063613130656462c701533c73705f747269653a3a4b657953706163656444424d75743c44422c483e20617320686173685f64623a3a4861736844423c482c543e3e3a3a656d706c6163653a3a6837616364666338393937623566306630c801533c6d656d6f72795f64623a3a4d656d6f727944423c482c4b462c542c4d3e20617320686173685f64623a3a4861736844423c482c543e3e3a3a656d706c6163653a3a6831316566303234393338343834356564c901523c73705f747269653a3a4b657953706163656444424d75743c44422c483e20617320686173685f64623a3a4861736844423c482c543e3e3a3a72656d6f76653a3a6839376635353630636533363966393639ca01386861736862726f776e3a3a6d61703a3a486173684d61703c4b2c562c533e3a3a656e7472793a3a6835613638306366633565333736656362cb013d6861736862726f776e3a3a6d61703a3a566163616e74456e7472793c4b2c562c533e3a3a696e736572743a3a6839343531326630623937383231346631cc01583c73705f747269653a3a4b657953706163656444424d75743c44422c483e20617320686173685f64623a3a41734861736844423c482c543e3e3a3a61735f686173685f64623a3a6865303339633736656232626633396633cd015c3c73705f747269653a3a4b657953706163656444424d75743c44422c483e20617320686173685f64623a3a41734861736844423c482c543e3e3a3a61735f686173685f64625f6d75743a3a6866323362663739353136633534353463ce013173705f747269653a3a656d7074795f6368696c645f747269655f726f6f743a3a6832343639333138656635643431616533cf0146616c6c6f633a3a636f6c6c656374696f6e733a3a62747265653a3a6d61703a3a42547265654d61703c4b2c563e3a3a6b6579733a3a6865613735613538666464326466373631d0016a636f72653a3a6f70733a3a66756e6374696f6e3a3a696d706c733a3a3c696d706c20636f72653a3a6f70733a3a66756e6374696f6e3a3a466e4f6e63653c413e20666f7220266d757420463e3a3a63616c6c5f6f6e63653a3a6830383334323165306133663439303062d10128747269655f726f6f743a3a6275696c645f747269653a3a6837623231336466373963613635616638d2014f3c73705f747269653a3a4b657953706163656444423c44422c483e20617320686173685f64623a3a4861736844425265663c482c543e3e3a3a6765743a3a6830316332363261666431633336643338d301366861736862726f776e3a3a6d61703a3a486173684d61703c4b2c562c533e3a3a6765743a3a6833613031353031393962313365316561d401543c73705f747269653a3a4b657953706163656444423c44422c483e20617320686173685f64623a3a4861736844425265663c482c543e3e3a3a636f6e7461696e733a3a6862336162663734633763313434643331d5018b013c73705f73746174655f6d616368696e653a3a747269655f6261636b656e645f657373656e63653a3a547269654261636b656e64457373656e63653c532c483e20617320686173685f64623a3a4861736844425265663c482c616c6c6f633a3a7665633a3a5665633c75383e3e3e3a3a636f6e7461696e733a3a6830366364353430336465346636363439d6016b3c63756d756c75735f7368656c6c5f72756e74696d653a3a52756e74696d65426c6f636b57656967687473206173206672616d655f737570706f72743a3a7472616974733a3a6d6973633a3a4765743c493e3e3a3a6765743a3a6838393130336366333734323738353439d701810163756d756c75735f7368656c6c5f72756e74696d653a3a5f3a3a3c696d706c207061726974795f7363616c655f636f6465633a3a636f6465633a3a456e636f646520666f722063756d756c75735f7368656c6c5f72756e74696d653a3a4576656e743e3a3a656e636f64655f746f3a3a6834623161323438303335616533343062d8018a016672616d655f737570706f72743a3a776569676874733a3a5f3a3a3c696d706c207061726974795f7363616c655f636f6465633a3a636f6465633a3a456e636f646520666f72206672616d655f737570706f72743a3a776569676874733a3a4469737061746368496e666f3e3a3a656e636f64655f746f3a3a6863333638666137356230386332323639d9017373705f72756e74696d653a3a5f3a3a3c696d706c207061726974795f7363616c655f636f6465633a3a636f6465633a3a456e636f646520666f722073705f72756e74696d653a3a44697370617463684572726f723e3a3a656e636f64655f746f3a3a6864393533626230303937326438623239da017578636d3a3a76303a3a7472616974733a3a5f3a3a3c696d706c207061726974795f7363616c655f636f6465633a3a636f6465633a3a456e636f646520666f722078636d3a3a76303a3a7472616974733a3a4572726f723e3a3a656e636f64655f746f3a3a6830303936323135613461396230353434db014f63756d756c75735f7368656c6c5f72756e74696d653a3a52756e74696d653a3a5f5f6d6f64756c655f6576656e74735f6672616d655f73797374656d3a3a6833373235626461383063646565386166dc016263756d756c75735f7368656c6c5f72756e74696d653a3a52756e74696d653a3a5f5f6d6f64756c655f6576656e74735f63756d756c75735f70616c6c65745f70617261636861696e5f73797374656d3a3a6832363638303335333466316631633636dd015563756d756c75735f7368656c6c5f72756e74696d653a3a52756e74696d653a3a5f5f6d6f64756c655f6576656e74735f63756d756c75735f70616c6c65745f78636d3a3a6831333433386637303335383839383939de0137636f72653a3a6f70733a3a66756e6374696f6e3a3a466e4d75743a3a63616c6c5f6d75743a3a6839613236303363346365396462393861df0148636f72653a3a6f70733a3a66756e6374696f6e3a3a466e4f6e63653a3a63616c6c5f6f6e63657b7b767461626c652e7368696d7d7d3a3a6831646562646664343237316532393132e00181013c63756d756c75735f7368656c6c5f72756e74696d653a3a4f726967696e20617320636f72653a3a636f6e766572743a3a46726f6d3c63756d756c75735f7368656c6c5f72756e74696d653a3a4f726967696e43616c6c65723e3e3a3a66726f6d3a3a7b7b636c6f737572657d7d3a3a6838376139363063656139306335326336e1016e3c63756d756c75735f7368656c6c5f72756e74696d653a3a43616c6c206173206672616d655f737570706f72743a3a776569676874733a3a4765744469737061746368496e666f3e3a3a6765745f64697370617463685f696e666f3a3a6863376163643662393736326231393430e2015e3c63756d756c75735f7368656c6c5f72756e74696d653a3a43616c6c2061732073705f72756e74696d653a3a7472616974733a3a446973706174636861626c653e3a3a64697370617463683a3a6865343265636335356162653935623962e301613c616c6c6f633a3a636f6c6c656374696f6e733a3a62747265653a3a6d61703a3a42547265654d61703c4b2c563e20617320636f72653a3a6f70733a3a64726f703a3a44726f703e3a3a64726f703a3a6831383939633931353863623661623536e4014b73705f696f3a3a6d6973633a3a65787465726e5f686f73745f66756e6374696f6e5f696d706c733a3a72756e74696d655f76657273696f6e3a3a6865306163633236393063313830333763e50198013c63756d756c75735f70616c6c65745f70617261636861696e5f73797374656d3a3a70616c6c65743a3a43616c6c3c543e206173206672616d655f737570706f72743a3a7472616974733a3a64697370617463683a3a556e66696c7465726564446973706174636861626c653e3a3a64697370617463685f6279706173735f66696c7465723a3a6835343531663865653266626430333331e6015e6672616d655f73797374656d3a3a3c696d706c206672616d655f73797374656d3a3a70616c6c65743a3a50616c6c65743c543e3e3a3a6465706f7369745f6576656e745f696e64657865643a3a6866333639616164346636343364656533e7016f3c73705f72756e74696d653a3a67656e657269633a3a6469676573743a3a4469676573744974656d3c486173683e206173207061726974795f7363616c655f636f6465633a3a636f6465633a3a456e636f64653e3a3a656e636f64653a3a6832383362393231353932626537653162e8017c63756d756c75735f70616c6c65745f70617261636861696e5f73797374656d3a3a3c696d706c2063756d756c75735f70616c6c65745f70617261636861696e5f73797374656d3a3a70616c6c65743a3a50616c6c65743c543e3e3a3a7365745f636f64655f696d706c3a3a6830623733356333373064343665326464e9017d63756d756c75735f7368656c6c5f72756e74696d653a3a5f3a3a3c696d706c207061726974795f7363616c655f636f6465633a3a636f6465633a3a4465636f646520666f722063756d756c75735f7368656c6c5f72756e74696d653a3a43616c6c3e3a3a6465636f64653a3a6833396337646530373861346662386638ea01593c636f72653a3a6f7074696f6e3a3a4f7074696f6e3c543e206173207061726974795f7363616c655f636f6465633a3a636f6465633a3a4465636f64653e3a3a6465636f64653a3a6830323634353533663965353761353664eb01543c616c6c6f633a3a7665633a3a5665633c543e206173207061726974795f7363616c655f636f6465633a3a636f6465633a3a4465636f64653e3a3a6465636f64653a3a6866363762306539353363383033656535ec01ae0163756d756c75735f7072696d6974697665735f70617261636861696e5f696e686572656e743a3a5f3a3a3c696d706c207061726974795f7363616c655f636f6465633a3a636f6465633a3a4465636f646520666f722063756d756c75735f7072696d6974697665735f70617261636861696e5f696e686572656e743a3a50617261636861696e496e686572656e74446174613e3a3a6465636f64653a3a6864623432376462353838353935316261ed013473705f72756e74696d653a3a7472616974733a3a486173683a3a686173685f6f663a3a6835656663326464323864373136333630ee01713c7061726974795f7363616c655f636f6465633a3a636f6d706163743a3a436f6d706163745265663c7533323e206173207061726974795f7363616c655f636f6465633a3a636f6465633a3a456e636f64653e3a3a656e636f64655f746f3a3a6837383761373236613430313732363265ef0189016672616d655f73797374656d3a3a6c696d6974733a3a5f3a3a3c696d706c207061726974795f7363616c655f636f6465633a3a636f6465633a3a456e636f646520666f72206672616d655f73797374656d3a3a6c696d6974733a3a57656967687473506572436c6173733e3a3a656e636f64655f746f3a3a6864613136626136386366356530653861f00196013c78636d5f6275696c6465723a3a6c6f636174696f6e5f636f6e76657273696f6e3a3a4c6f636174696f6e496e7665727465723c416e6365737472793e2061732078636d5f6578656375746f723a3a7472616974733a3a636f6e76657273696f6e3a3a496e766572744c6f636174696f6e3e3a3a696e766572745f6c6f636174696f6e3a3a6831373331656531333538353136663139f1014d3c78636d3a3a76303a3a6a756e6374696f6e3a3a4a756e6374696f6e20617320636f72653a3a636c6f6e653a3a436c6f6e653e3a3a636c6f6e653a3a6861616166613664613866303866616439f2013d78636d3a3a76303a3a6d756c74695f6c6f636174696f6e3a3a4d756c74694c6f636174696f6e3a3a61743a3a6835333739313765616339303366623761f3014578636d3a3a76303a3a6d756c74695f6c6f636174696f6e3a3a4d756c74694c6f636174696f6e3a3a74616b655f66697273743a3a6835353561303665663362383065343861f4014d636f72653a3a7074723a3a64726f705f696e5f706c6163653c78636d3a3a76303a3a6a756e6374696f6e3a3a4a756e6374696f6e3e3a3a68313234333763346266356133303532392e31333031f5019901706f6c6b61646f745f7072696d6974697665733a3a76313a3a5f3a3a3c696d706c207061726974795f7363616c655f636f6465633a3a636f6465633a3a4465636f646520666f7220706f6c6b61646f745f7072696d6974697665733a3a76313a3a50657273697374656456616c69646174696f6e446174613c482c4e3e3e3a3a6465636f64653a3a6863636562346533396563306432633035f6019c01706f6c6b61646f745f7072696d6974697665733a3a76313a3a5f3a3a3c696d706c207061726974795f7363616c655f636f6465633a3a636f6465633a3a456e636f646520666f7220706f6c6b61646f745f7072696d6974697665733a3a76313a3a50657273697374656456616c69646174696f6e446174613c482c4e3e3e3a3a656e636f64655f746f3a3a6839633061656131383833323666313662f701303c265420617320636f72653a3a666d743a3a44656275673e3a3a666d743a3a6830326266343763653164616261396165f8013b3c266d7574205720617320636f72653a3a666d743a3a57726974653e3a3a77726974655f636861723a3a6831653731663866333935386365623561f9013a3c266d7574205720617320636f72653a3a666d743a3a57726974653e3a3a77726974655f666d743a3a6862326531656339393035366366633437fa01553c73705f72756e74696d653a3a4d756c74695369676e61747572652061732073705f72756e74696d653a3a7472616974733a3a5665726966793e3a3a7665726966793a3a6865306634353139393466313137306134fb014c73705f696f3a3a63727970746f3a3a65787465726e5f686f73745f66756e6374696f6e5f696d706c733a3a656432353531395f7665726966793a3a6861646465353763386438666236353633fc014c73705f696f3a3a63727970746f3a3a65787465726e5f686f73745f66756e6374696f6e5f696d706c733a3a737232353531395f7665726966793a3a6830373365333231666464343138356334fd016073705f696f3a3a63727970746f3a3a65787465726e5f686f73745f66756e6374696f6e5f696d706c733a3a736563703235366b315f65636473615f7265636f7665725f636f6d707265737365643a3a6863626362636165653737396333623837fe013e6861736862726f776e3a3a7261773a3a5261775461626c653c543e3a3a726573657276655f7265686173683a3a6836356339326337386331306562333936ff01443c736d616c6c7665633a3a536d616c6c5665633c413e20617320636f72653a3a686173683a3a486173683e3a3a686173683a3a683965616139663264323336343936666480023e6861736862726f776e3a3a7261773a3a5261775461626c653c543e3a3a726573657276655f7265686173683a3a68373436306562363966316238383136388102a90163756d756c75735f70616c6c65745f70617261636861696e5f73797374656d3a3a3c696d706c2073705f72756e74696d653a3a7472616974733a3a56616c6964617465556e7369676e656420666f722063756d756c75735f70616c6c65745f70617261636861696e5f73797374656d3a3a70616c6c65743a3a50616c6c65743c543e3e3a3a76616c69646174655f756e7369676e65643a3a68373162353434666536306332323035668202386672616d655f737570706f72743a3a73746f726167653a3a756e6861736865643a3a6765743a3a68653064383534303830333966343433328302910173705f72756e74696d653a3a67656e657269633a3a6469676573743a3a5f3a3a3c696d706c207061726974795f7363616c655f636f6465633a3a636f6465633a3a4465636f646520666f722073705f72756e74696d653a3a67656e657269633a3a6469676573743a3a4469676573743c486173683e3e3a3a6465636f64653a3a68326436386536396534316233343034668402783c63756d756c75735f70616c6c65745f70617261636861696e5f73797374656d3a3a70616c6c65743a3a50616c6c65743c543e206173206672616d655f6d657461646174613a3a4d6f64756c654572726f724d657461646174613e3a3a6d657461646174613a3a68653834326536616234353530663232388502386672616d655f737570706f72743a3a73746f726167653a3a756e6861736865643a3a6765743a3a68386262303865396562636333653536648602386672616d655f737570706f72743a3a73746f726167653a3a756e6861736865643a3a6765743a3a68323836636537656164646239353730398702433c58206173207061726974795f7363616c655f636f6465633a3a636f6465633a3a456e636f64653e3a3a656e636f64653a3a6863383638313961366630373466656137880231636f72653a3a70616e69636b696e673a3a6173736572745f6661696c65643a3a6836386461336534386264626164613663890231636f72653a3a70616e69636b696e673a3a6173736572745f6661696c65643a3a68656461386636303235633263633436308a0231636f72653a3a70616e69636b696e673a3a6173736572745f6661696c65643a3a68663232626463616464326266363230348b024673705f696f3a3a68617368696e673a3a65787465726e5f686f73745f66756e6374696f6e5f696d706c733a3a74776f785f36343a3a68623231383463663832313433303439318c02633c616c6c6f633a3a7665633a3a5665633c543e20617320616c6c6f633a3a7665633a3a737065635f66726f6d5f697465723a3a5370656346726f6d497465723c542c493e3e3a3a66726f6d5f697465723a3a68393432313338323666616664343732388d024a706f6c6b61646f745f7072696d6974697665733a3a76313a3a77656c6c5f6b6e6f776e5f6b6579733a3a68726d705f6368616e6e656c733a3a68386562323265343164623261356230348e02463c616c6c6f633a3a7665633a3a5665633c542c413e20617320636f72653a3a636c6f6e653a3a436c6f6e653e3a3a636c6f6e653a3a68393337663861386633306233366264668f02463c58206173207061726974795f7363616c655f636f6465633a3a636f6465633a3a456e636f64653e3a3a656e636f64655f746f3a3a68653061613130306563383264346137369002386672616d655f737570706f72743a3a73746f726167653a3a756e6861736865643a3a6765743a3a686138373037656265326334346365396391023b78636d3a3a76303a3a7472616974733a3a4578656375746558636d3a3a657865637574655f78636d3a3a68373437646434623038383937343664379202723c636f72653a3a697465723a3a61646170746572733a3a666c617474656e3a3a466c61744d61703c492c552c463e20617320636f72653a3a697465723a3a7472616974733a3a6974657261746f723a3a4974657261746f723e3a3a6e6578743a3a68613032336261653231616265336163359302613c616c6c6f633a3a636f6c6c656374696f6e733a3a62747265653a3a6d61703a3a496e746f497465723c4b2c563e20617320636f72653a3a6f70733a3a64726f703a3a44726f703e3a3a64726f703a3a683030373633313837643162363763373894022c616c6c6f633a3a736c6963653a3a696e736572745f686561643a3a68373162623766316662316161323839319502613c616c6c6f633a3a636f6c6c656374696f6e733a3a62747265653a3a6d61703a3a42547265654d61703c4b2c563e20617320636f72653a3a6f70733a3a64726f703a3a44726f703e3a3a64726f703a3a6863626339343933356135316239323238960247616c6c6f633a3a636f6c6c656374696f6e733a3a62747265653a3a6d61703a3a42547265654d61703c4b2c563e3a3a656e7472793a3a6836383737663065303936653930393433970252616c6c6f633a3a636f6c6c656374696f6e733a3a62747265653a3a6d61703a3a656e7472793a3a566163616e74456e7472793c4b2c563e3a3a696e736572743a3a68643635326133306462396135616236349802386672616d655f737570706f72743a3a73746f726167653a3a756e6861736865643a3a7075743a3a683737373262323933636665323866663199025563756d756c75735f70616c6c65745f70617261636861696e5f73797374656d3a3a70616c6c65743a3a50616c6c65743c543e3a3a63616c6c5f66756e6374696f6e733a3a68313839333161623465623533363939369a025763756d756c75735f70616c6c65745f70617261636861696e5f73797374656d3a3a70616c6c65743a3a50616c6c65743c543e3a3a73746f726167655f6d657461646174613a3a68643964356265393830613164623866639b02a70163756d756c75735f70616c6c65745f70617261636861696e5f73797374656d3a3a70616c6c65743a3a5f3a3a3c696d706c207061726974795f7363616c655f636f6465633a3a636f6465633a3a456e636f646520666f722063756d756c75735f70616c6c65745f70617261636861696e5f73797374656d3a3a70616c6c65743a3a43616c6c3c543e3e3a3a656e636f64655f746f3a3a68636432376237353366336530323063399c027978636d3a3a76303a3a6a756e6374696f6e3a3a5f3a3a3c696d706c207061726974795f7363616c655f636f6465633a3a636f6465633a3a4465636f646520666f722078636d3a3a76303a3a6a756e6374696f6e3a3a4a756e6374696f6e3e3a3a6465636f64653a3a68656434343132646534396564313064319d028d0178636d3a3a76303a3a6d756c74695f6c6f636174696f6e3a3a5f3a3a3c696d706c207061726974795f7363616c655f636f6465633a3a636f6465633a3a456e636f646520666f722078636d3a3a76303a3a6d756c74695f6c6f636174696f6e3a3a4d756c74694c6f636174696f6e3e3a3a656e636f64655f746f3a3a68616362303431633239626665376635629e027c78636d3a3a76303a3a6a756e6374696f6e3a3a5f3a3a3c696d706c207061726974795f7363616c655f636f6465633a3a636f6465633a3a456e636f646520666f722078636d3a3a76303a3a6a756e6374696f6e3a3a4a756e6374696f6e3e3a3a656e636f64655f746f3a3a68656334376465626134376562313938659f027d3c6672616d655f737570706f72743a3a73746f726167653a3a74797065733a3a4f6e456d7074794765747465723c56616c75652c4f6e456d7074793e206173206672616d655f6d657461646174613a3a44656661756c74427974653e3a3a64656661756c745f627974653a3a6830316261303162663866316632323038a0027d3c6672616d655f737570706f72743a3a73746f726167653a3a74797065733a3a4f6e456d7074794765747465723c56616c75652c4f6e456d7074793e206173206672616d655f6d657461646174613a3a44656661756c74427974653e3a3a64656661756c745f627974653a3a6830643932613761323131373735616362a1027d3c6672616d655f737570706f72743a3a73746f726167653a3a74797065733a3a4f6e456d7074794765747465723c56616c75652c4f6e456d7074793e206173206672616d655f6d657461646174613a3a44656661756c74427974653e3a3a64656661756c745f627974653a3a6831383533333462356530373636303564a2027d3c6672616d655f737570706f72743a3a73746f726167653a3a74797065733a3a4f6e456d7074794765747465723c56616c75652c4f6e456d7074793e206173206672616d655f6d657461646174613a3a44656661756c74427974653e3a3a64656661756c745f627974653a3a6836633039623862616362366166653932a3027d3c6672616d655f737570706f72743a3a73746f726167653a3a74797065733a3a4f6e456d7074794765747465723c56616c75652c4f6e456d7074793e206173206672616d655f6d657461646174613a3a44656661756c74427974653e3a3a64656661756c745f627974653a3a6839323138373663366631383166383064a4027d3c6672616d655f737570706f72743a3a73746f726167653a3a74797065733a3a4f6e456d7074794765747465723c56616c75652c4f6e456d7074793e206173206672616d655f6d657461646174613a3a44656661756c74427974653e3a3a64656661756c745f627974653a3a6839333033623564356438356165653534a5027d3c6672616d655f737570706f72743a3a73746f726167653a3a74797065733a3a4f6e456d7074794765747465723c56616c75652c4f6e456d7074793e206173206672616d655f6d657461646174613a3a44656661756c74427974653e3a3a64656661756c745f627974653a3a6839626434383338303463623936343332a6027d3c6672616d655f737570706f72743a3a73746f726167653a3a74797065733a3a4f6e456d7074794765747465723c56616c75652c4f6e456d7074793e206173206672616d655f6d657461646174613a3a44656661756c74427974653e3a3a64656661756c745f627974653a3a6861333933316537373664386464323663a7027d3c6672616d655f737570706f72743a3a73746f726167653a3a74797065733a3a4f6e456d7074794765747465723c56616c75652c4f6e456d7074793e206173206672616d655f6d657461646174613a3a44656661756c74427974653e3a3a64656661756c745f627974653a3a6863396665353639363663353637633962a8027d3c6672616d655f737570706f72743a3a73746f726167653a3a74797065733a3a4f6e456d7074794765747465723c56616c75652c4f6e456d7074793e206173206672616d655f6d657461646174613a3a44656661756c74427974653e3a3a64656661756c745f627974653a3a6864373931616330653961616166363331a9027d3c6672616d655f737570706f72743a3a73746f726167653a3a74797065733a3a4f6e456d7074794765747465723c56616c75652c4f6e456d7074793e206173206672616d655f6d657461646174613a3a44656661756c74427974653e3a3a64656661756c745f627974653a3a6864616432613463666632393234666339aa027d3c6672616d655f737570706f72743a3a73746f726167653a3a74797065733a3a4f6e456d7074794765747465723c56616c75652c4f6e456d7074793e206173206672616d655f6d657461646174613a3a44656661756c74427974653e3a3a64656661756c745f627974653a3a6865616137313036346666333832653733ab029c013c73705f72756e74696d653a3a67656e657269633a3a756e636865636b65645f65787472696e7369633a3a556e636865636b656445787472696e7369633c416464726573732c43616c6c2c5369676e61747572652c45787472613e206173207061726974795f7363616c655f636f6465633a3a636f6465633a3a4465636f64653e3a3a6465636f64653a3a6864663066383633663737313963333331ac026b3c7061726974795f7363616c655f636f6465633a3a636f6d706163743a3a436f6d706163743c7533323e206173207061726974795f7363616c655f636f6465633a3a636f6465633a3a4465636f64653e3a3a6465636f64653a3a6864656463663364666331333830633764ad02593c636f72653a3a6f7074696f6e3a3a4f7074696f6e3c543e206173207061726974795f7363616c655f636f6465633a3a636f6465633a3a4465636f64653e3a3a6465636f64653a3a6835663932353537363033373738333033ae02543c616c6c6f633a3a7665633a3a5665633c543e206173207061726974795f7363616c655f636f6465633a3a636f6465633a3a4465636f64653e3a3a6465636f64653a3a6831626166316664313834313066376361af0248616c6c6f633a3a636f6c6c656374696f6e733a3a62747265653a3a6d61703a3a42547265654d61703c4b2c563e3a3a696e736572743a3a6863643664653830333664333739303066b0029f013c73705f72756e74696d653a3a67656e657269633a3a756e636865636b65645f65787472696e7369633a3a556e636865636b656445787472696e7369633c416464726573732c43616c6c2c5369676e61747572652c45787472613e2061732073705f72756e74696d653a3a7472616974733a3a436865636b61626c653c4c6f6f6b75703e3e3a3a636865636b3a3a6865336661663562316434393330313866b10281016672616d655f73797374656d3a3a70616c6c65743a3a5f3a3a3c696d706c207061726974795f7363616c655f636f6465633a3a636f6465633a3a456e636f646520666f72206672616d655f73797374656d3a3a70616c6c65743a3a43616c6c3c543e3e3a3a656e636f64655f746f3a3a6835666136613336656664383631646539b20248636f72653a3a7074723a3a64726f705f696e5f706c6163653c63756d756c75735f7368656c6c5f72756e74696d653a3a43616c6c3e3a3a6862376362633435363964323033376232b30256616c6c6f633a3a7665633a3a73706c6963653a3a3c696d706c20616c6c6f633a3a7665633a3a647261696e3a3a447261696e3c542c413e3e3a3a6d6f76655f7461696c3a3a6838353232613461386337353261353763b4022e616c6c6f633a3a7261775f7665633a3a66696e6973685f67726f773a3a6834626437663734376237353665643138b502623c616c6c6f633a3a7665633a3a5665633c542c413e20617320616c6c6f633a3a7665633a3a737065635f657874656e643a3a53706563457874656e643c542c493e3e3a3a737065635f657874656e643a3a6832646338336165623263356131653134b6022c616c6c6f633a3a736c6963653a3a696e736572745f686561643a3a6837306362303531333764613238396535b7026d3c747269655f64623a3a6974657261746f723a3a5472696544424e6f64654974657261746f723c4c3e20617320636f72653a3a697465723a3a7472616974733a3a6974657261746f723a3a4974657261746f723e3a3a6e6578743a3a6864636435616631633839316538316165b80255747269655f64623a3a6e6962626c653a3a6e6962626c657665633a3a3c696d706c20747269655f64623a3a6e6962626c653a3a4e6962626c655665633e3a3a706f703a3a6830336636386263323566353364363939b9025b747269655f64623a3a6e6962626c653a3a6e6962626c657665633a3a3c696d706c20747269655f64623a3a6e6962626c653a3a4e6962626c655665633e3a3a61735f7072656669783a3a6835663464373436643738336535353035ba0240747269655f64623a3a7472696564623a3a5472696544423c4c3e3a3a6765745f7261775f6f725f6c6f6f6b75703a3a6830623564613362613666333963666162bb0230616c6c6f633a3a7665633a3a5665633c542c413e3a3a726573657276653a3a6861633834386537393536616163336534bc02773c736d616c6c7665633a3a536d616c6c5665633c413e20617320636f72653a3a697465723a3a7472616974733a3a636f6c6c6563743a3a457874656e643c3c4120617320736d616c6c7665633a3a41727261793e3a3a4974656d3e3e3a3a657874656e643a3a6863643564626365663964623363376639bd0235736d616c6c7665633a3a536d616c6c5665633c413e3a3a7472795f726573657276653a3a6838316330343865636136656463306634be027c3c73705f73746174655f6d616368696e653a3a6578743a3a4578743c482c4e2c423e2061732073705f65787465726e616c69746965733a3a657874656e73696f6e733a3a457874656e73696f6e53746f72653e3a3a657874656e73696f6e5f62795f747970655f69643a3a6836346432396161643233363634626537bf0287013c73705f73746174655f6d616368696e653a3a6578743a3a4578743c482c4e2c423e2061732073705f65787465726e616c69746965733a3a657874656e73696f6e733a3a457874656e73696f6e53746f72653e3a3a646572656769737465725f657874656e73696f6e5f62795f747970655f69643a3a6830633637656262616562373361383831c00287013c73705f73746174655f6d616368696e653a3a6578743a3a4578743c482c4e2c423e2061732073705f65787465726e616c69746965733a3a657874656e73696f6e733a3a457874656e73696f6e53746f72653e3a3a72656769737465725f657874656e73696f6e5f776974685f747970655f69643a3a6839303036363861373637653462333839c1023f73705f65787465726e616c69746965733a3a45787465726e616c69746965733a3a7365745f73746f726167653a3a6832386666643731613232316465363062c202683c73705f73746174655f6d616368696e653a3a6578743a3a4578743c482c4e2c423e2061732073705f65787465726e616c69746965733a3a45787465726e616c69746965733e3a3a706c6163655f73746f726167653a3a6838646439383539343631363066303665c3025973705f73746174655f6d616368696e653a3a6f7665726c617965645f6368616e6765733a3a4f7665726c617965644368616e6765733a3a65787472696e7369635f696e6465783a3a6837626532656639376266623938303962c4025973705f73746174655f6d616368696e653a3a6f7665726c617965645f6368616e6765733a3a6368616e67657365743a3a4f7665726c617965644d61703c4b2c563e3a3a7365743a3a6837646362323563623163373162636536c5024173705f65787465726e616c69746965733a3a45787465726e616c69746965733a3a636c6561725f73746f726167653a3a6831356361616133613438343866623631c6024573705f65787465726e616c69746965733a3a45787465726e616c69746965733a3a7365745f6368696c645f73746f726167653a3a6861646437366236336339373965346462c7025b73705f73746174655f6d616368696e653a3a6f7665726c617965645f6368616e6765733a3a4f7665726c617965644368616e6765733a3a7365745f6368696c645f73746f726167653a3a6864663731343138623232376234386262c8024773705f65787465726e616c69746965733a3a45787465726e616c69746965733a3a636c6561725f6368696c645f73746f726167653a3a6863623336336635613935613237613137c9026c3c7061726974795f7363616c655f636f6465633a3a636f6d706163743a3a436f6d706163743c753132383e206173207061726974795f7363616c655f636f6465633a3a636f6465633a3a4465636f64653e3a3a6465636f64653a3a6834376331656331646338363564643533ca02840178636d3a3a76303a3a6d756c74695f61737365743a3a5f3a3a3c696d706c207061726974795f7363616c655f636f6465633a3a636f6465633a3a4465636f646520666f722078636d3a3a76303a3a6d756c74695f61737365743a3a4173736574496e7374616e63653e3a3a6465636f64653a3a6866346133623034373566386530353033cb02840178636d3a3a76303a3a6d756c74695f61737365743a3a5f3a3a3c696d706c207061726974795f7363616c655f636f6465633a3a636f6465633a3a456e636f646520666f722078636d3a3a76303a3a6d756c74695f61737365743a3a4d756c746941737365743e3a3a656e636f64655f746f3a3a6839623631666332333332383863373566cc02723c7061726974795f7363616c655f636f6465633a3a636f6d706163743a3a436f6d706163745265663c753132383e206173207061726974795f7363616c655f636f6465633a3a636f6465633a3a456e636f64653e3a3a656e636f64655f746f3a3a6835356662346430663131373166323961cd02870178636d3a3a76303a3a6d756c74695f61737365743a3a5f3a3a3c696d706c207061726974795f7363616c655f636f6465633a3a636f6465633a3a456e636f646520666f722078636d3a3a76303a3a6d756c74695f61737365743a3a4173736574496e7374616e63653e3a3a656e636f64655f746f3a3a6830333431363639346262383061353166ce022b78636d3a3a76303a3a58636d3c43616c6c3e3a3a66726f6d3a3a6863643332373162653563373563393865cf026c3c636f72653a3a697465723a3a61646170746572733a3a6d61703a3a4d61703c492c463e20617320636f72653a3a697465723a3a7472616974733a3a6974657261746f723a3a4974657261746f723e3a3a7472795f666f6c643a3a6831373165343932393432653337346463d0026978636d3a3a76303a3a5f3a3a3c696d706c207061726974795f7363616c655f636f6465633a3a636f6465633a3a456e636f646520666f722078636d3a3a76303a3a58636d3c43616c6c3e3e3a3a656e636f64655f746f3a3a6838313265386532656231366636323939d1027978636d3a3a76303a3a6f726465723a3a5f3a3a3c696d706c207061726974795f7363616c655f636f6465633a3a636f6465633a3a456e636f646520666f722078636d3a3a76303a3a6f726465723a3a4f726465723c43616c6c3e3e3a3a656e636f64655f746f3a3a6838333532623031323263373163326263d202713c7061726974795f7363616c655f636f6465633a3a636f6d706163743a3a436f6d706163745265663c7536343e206173207061726974795f7363616c655f636f6465633a3a636f6465633a3a456e636f64653e3a3a656e636f64655f746f3a3a6834303161353730623233613133323733d302303c265420617320636f72653a3a666d743a3a44656275673e3a3a666d743a3a6833333134353631393431316531613735d402303c265420617320636f72653a3a666d743a3a44656275673e3a3a666d743a3a6833376565363165663031616561343963d502303c265420617320636f72653a3a666d743a3a44656275673e3a3a666d743a3a6833653331333538326332363836356531d602303c265420617320636f72653a3a666d743a3a44656275673e3a3a666d743a3a6864653231383832643832653738393431d702333c265420617320636f72653a3a666d743a3a4c6f7765724865783e3a3a666d743a3a6832656437393964646534616261306234d802303c265420617320636f72653a3a666d743a3a44656275673e3a3a666d743a3a6866346366323763313964353362303837d902493c736d616c6c7665633a3a536d616c6c5665633c413e20617320636f72653a3a6f70733a3a64726f703a3a44726f703e3a3a64726f703a3a6833343833373661363265336132373035da0240747269655f64623a3a6974657261746f723a3a5472696544424e6f64654974657261746f723c4c3e3a3a6e65773a3a6861366635393231306638373039656463db0248747269655f64623a3a6974657261746f723a3a5472696544424e6f64654974657261746f723c4c3e3a3a7365656b5f7072656669783a3a6832626435373665393862333961303539dc027b747269655f64623a3a6e6962626c653a3a6e6962626c65736c6963653a3a3c696d706c20636f72653a3a636d703a3a5061727469616c4f726420666f7220747269655f64623a3a6e6962626c653a3a4e6962626c65536c6963653e3a3a7061727469616c5f636d703a3a6864366231393034343662353135653837dd02653c73705f73746174655f6d616368696e653a3a6578743a3a4578743c482c4e2c423e2061732073705f65787465726e616c69746965733a3a45787465726e616c69746965733e3a3a70726f6f665f73697a653a3a6863313764656535376132396661613030de024173705f73746174655f6d616368696e653a3a6261636b656e643a3a4261636b656e643a3a70726f6f665f73697a653a3a6864353861663265666138633638666235df02673c73705f73746174655f6d616368696e653a3a6578743a3a4578743c482c4e2c423e2061732073705f65787465726e616c69746965733a3a45787465726e616c69746965733e3a3a636c6561725f7072656669783a3a6836616630373130366139333837376434e0024a616c6c6f633a3a636f6c6c656374696f6e733a3a62747265653a3a6d61703a3a42547265654d61703c4b2c563e3a3a697465725f6d75743a3a6862393131663233323632303631643236e10246616c6c6f633a3a636f6c6c656374696f6e733a3a62747265653a3a7365743a3a42547265655365743c543e3a3a696e736572743a3a6831373934336136343638303436653765e2025973705f73746174655f6d616368696e653a3a6f7665726c617965645f6368616e6765733a3a6368616e67657365743a3a4f7665726c61796564456e7472793c563e3a3a7365743a3a6863393666313466663462316361396334e30243747269655f64623a3a7472696564623a3a5472696544424974657261746f723c4c3e3a3a6e65775f70726566697865643a3a6831363434633638666463393163313436e402673c747269655f64623a3a7472696564623a3a5472696544424974657261746f723c4c3e20617320636f72653a3a697465723a3a7472616974733a3a6974657261746f723a3a4974657261746f723e3a3a6e6578743a3a6861663866633264636238323137336565e502673c73705f73746174655f6d616368696e653a3a6578743a3a4578743c482c4e2c423e2061732073705f65787465726e616c69746965733a3a45787465726e616c69746965733e3a3a73746f726167655f686173683a3a6833396230346461666231393938623537e6025973705f73746174655f6d616368696e653a3a6f7665726c617965645f6368616e6765733a3a6368616e67657365743a3a4f7665726c617965644d61703c4b2c563e3a3a6765743a3a6862353239646436353236383433656263e7025b73705f73746174655f6d616368696e653a3a747269655f6261636b656e645f657373656e63653a3a547269654261636b656e64457373656e63653c532c483e3a3a73746f726167653a3a6862633033633539363438663763316338e802673c73705f73746174655f6d616368696e653a3a6578743a3a4578743c482c4e2c423e2061732073705f65787465726e616c69746965733a3a45787465726e616c69746965733e3a3a73746f726167655f726f6f743a3a6835663264303939636364396361646430e9025d73705f73746174655f6d616368696e653a3a6f7665726c617965645f6368616e6765733a3a6368616e67657365743a3a4f7665726c617965644d61703c4b2c563e3a3a6368616e6765733a3a6834663363646565343132653439336464ea025273705f73746174655f6d616368696e653a3a6f7665726c617965645f6368616e6765733a3a4f7665726c617965644368616e6765733a3a6368696c6472656e3a3a6839353734653431343031393530623265eb024873705f73746174655f6d616368696e653a3a6261636b656e643a3a4261636b656e643a3a66756c6c5f73746f726167655f726f6f743a3a6837393938636130663836376363613438ec02683c73705f73746174655f6d616368696e653a3a6578743a3a4578743c482c4e2c423e2061732073705f65787465726e616c69746965733a3a45787465726e616c69746965733e3a3a6368696c645f73746f726167653a3a6830653737343130336461623338396332ed0245616c6c6f633a3a636f6c6c656374696f6e733a3a62747265653a3a6d61703a3a42547265654d61703c4b2c563e3a3a6765743a3a6838376466303834393062376266653863ee027d3c73705f73746174655f6d616368696e653a3a747269655f6261636b656e643a3a547269654261636b656e643c532c483e2061732073705f73746174655f6d616368696e653a3a6261636b656e643a3a4261636b656e643c483e3e3a3a6368696c645f73746f726167653a3a6830643035306535636432323965393237ef02683c73705f73746174655f6d616368696e653a3a6578743a3a4578743c482c4e2c423e2061732073705f65787465726e616c69746965733a3a45787465726e616c69746965733e3a3a6765745f77686974656c6973743a3a6837626233616637626436383161383966f002683c73705f73746174655f6d616368696e653a3a6578743a3a4578743c482c4e2c423e2061732073705f65787465726e616c69746965733a3a45787465726e616c69746965733e3a3a7365745f77686974656c6973743a3a6839643566623465623539323863356366f102693c73705f73746174655f6d616368696e653a3a6578743a3a4578743c482c4e2c423e2061732073705f65787465726e616c69746965733a3a45787465726e616c69746965733e3a3a6578697374735f73746f726167653a3a6865383364643464383438366165613032f202693c73705f73746174655f6d616368696e653a3a6578743a3a4578743c482c4e2c423e2061732073705f65787465726e616c69746965733a3a45787465726e616c69746965733e3a3a73746f726167655f617070656e643a3a6832393362333931363631666461343366f30237616c6c6f633a3a7261775f7665633a3a5261775665633c542c413e3a3a726573657276653a3a6830383662613565663438386139343936f402437061726974795f7363616c655f636f6465633a3a636f6465633a3a636f6d706163745f656e636f64655f6c656e5f746f3a3a6837336436323962336465343065633564f502703c7061726974795f7363616c655f636f6465633a3a636f6d706163743a3a436f6d706163743c543e206173207061726974795f7363616c655f636f6465633a3a636f6465633a3a456e636f64653e3a3a7573696e675f656e636f6465643a3a6861623833356636323534343263306639f6026b3c73705f73746174655f6d616368696e653a3a6578743a3a4578743c482c4e2c423e2061732073705f65787465726e616c69746965733a3a45787465726e616c69746965733e3a3a6e6578745f73746f726167655f6b65793a3a6864616365336365616165393762313935f7026e73705f73746174655f6d616368696e653a3a747269655f6261636b656e645f657373656e63653a3a547269654261636b656e64457373656e63653c532c483e3a3a6e6578745f73746f726167655f6b65795f66726f6d5f726f6f743a3a6832336263636434653039373361626231f8029b0173705f73746174655f6d616368696e653a3a6f7665726c617965645f6368616e6765733a3a6368616e67657365743a3a4f7665726c617965644d61703c616c6c6f633a3a7665633a3a5665633c75383e2c636f72653a3a6f7074696f6e3a3a4f7074696f6e3c616c6c6f633a3a7665633a3a5665633c75383e3e3e3a3a6e6578745f6368616e67653a3a6835333730303332376365316336646163f9026b3c73705f73746174655f6d616368696e653a3a6578743a3a4578743c482c4e2c423e2061732073705f65787465726e616c69746965733a3a45787465726e616c69746965733e3a3a726561645f77726974655f636f756e743a3a6861323066636631633836343664313438fa024773705f73746174655f6d616368696e653a3a6261636b656e643a3a4261636b656e643a3a726561645f77726974655f636f756e743a3a6863316466643231366631636466346536fb026d3c73705f73746174655f6d616368696e653a3a6578743a3a4578743c482c4e2c423e2061732073705f65787465726e616c69746965733a3a45787465726e616c69746965733e3a3a6368696c645f73746f726167655f686173683a3a6831346430396331393939663863623536fc026d3c73705f73746174655f6d616368696e653a3a6578743a3a4578743c482c4e2c423e2061732073705f65787465726e616c69746965733a3a45787465726e616c69746965733e3a3a6368696c645f73746f726167655f726f6f743a3a6832306231323135303338343734653335fd023a616c6c6f633a3a7665633a3a5665633c542c413e3a3a657874656e645f66726f6d5f736c6963653a3a6835393261306166653430653764343434fe0242747269655f64623a3a7472696564626d75743a3a5472696544424d75743c4c3e3a3a66726f6d5f6578697374696e673a3a6839303966633064643765333332373336ff02543c747269655f64623a3a7472696564626d75743a3a5472696544424d75743c4c3e20617320747269655f64623a3a547269654d75743c4c3e3e3a3a72656d6f76653a3a683063383563666661323134333735656680033e747269655f64623a3a7472696564626d75743a3a5472696544424d75743c4c3e3a3a696e736572745f61743a3a683835666361316163376439613863363881036d3c73705f73746174655f6d616368696e653a3a6578743a3a4578743c482c4e2c423e2061732073705f65787465726e616c69746965733a3a45787465726e616c69746965733e3a3a636c6561725f6368696c645f7072656669783a3a6835616234366634636135393832616666820347616c6c6f633a3a636f6c6c656374696f6e733a3a62747265653a3a6d61703a3a42547265654d61703c4b2c563e3a3a656e7472793a3a686130393866383330353064363864633383036173705f73746174655f6d616368696e653a3a6f7665726c617965645f6368616e6765733a3a6368616e67657365743a3a4f7665726c617965644d61703c4b2c563e3a3a737061776e5f6368696c643a3a6863363466303439373135323431333761840352616c6c6f633a3a636f6c6c656374696f6e733a3a62747265653a3a6d61703a3a656e7472793a3a566163616e74456e7472793c4b2c563e3a3a696e736572743a3a683836663033366537666531363139363585036d3c73705f73746174655f6d616368696e653a3a6578743a3a4578743c482c4e2c423e2061732073705f65787465726e616c69746965733a3a45787465726e616c69746965733e3a3a6b696c6c5f6368696c645f73746f726167653a3a683931646231623936626139386338646686037e636f72653a3a7074723a3a64726f705f696e5f706c6163653c747269655f64623a3a7472696564623a3a5472696544424974657261746f723c73705f747269653a3a4c61796f75743c73705f72756e74696d653a3a7472616974733a3a426c616b6554776f3235363e3e3e3a3a683666383263313532313035363839353887036e3c73705f73746174655f6d616368696e653a3a6578743a3a4578743c482c4e2c423e2061732073705f65787465726e616c69746965733a3a45787465726e616c69746965733e3a3a706c6163655f6368696c645f73746f726167653a3a683261343837653962336630316335396188036f3c73705f73746174655f6d616368696e653a3a6578743a3a4578743c482c4e2c423e2061732073705f65787465726e616c69746965733a3a45787465726e616c69746965733e3a3a6578697374735f6368696c645f73746f726167653a3a683661346635616264613266306230373889036f3c73705f73746174655f6d616368696e653a3a6578743a3a4578743c482c4e2c423e2061732073705f65787465726e616c69746965733a3a45787465726e616c69746965733e3a3a7365745f6f6666636861696e5f73746f726167653a3a68653064353638346139343733393066628a035973705f73746174655f6d616368696e653a3a6f7665726c617965645f6368616e6765733a3a6368616e67657365743a3a4f7665726c617965644d61703c4b2c563e3a3a7365743a3a68636265383332396336303039313866348b036f3c73705f73746174655f6d616368696e653a3a6578743a3a4578743c482c4e2c423e2061732073705f65787465726e616c69746965733a3a45787465726e616c69746965733e3a3a73746f726167655f6368616e6765735f726f6f743a3a68353037323664616638376339363866618c03713c73705f73746174655f6d616368696e653a3a6578743a3a4578743c482c4e2c423e2061732073705f65787465726e616c69746965733a3a45787465726e616c69746965733e3a3a6e6578745f6368696c645f73746f726167655f6b65793a3a68643761633535613438366637643434318d03713c73705f73746174655f6d616368696e653a3a6578743a3a4578743c482c4e2c423e2061732073705f65787465726e616c69746965733a3a45787465726e616c69746965733e3a3a72657365745f726561645f77726974655f636f756e743a3a68643062386438666362663237333861648e034d73705f73746174655f6d616368696e653a3a6261636b656e643a3a4261636b656e643a3a72657365745f726561645f77726974655f636f756e743a3a68323530643033623437383130346430388f03743c73705f73746174655f6d616368696e653a3a6578743a3a4578743c482c4e2c423e2061732073705f65787465726e616c69746965733a3a45787465726e616c69746965733e3a3a73746f726167655f696e6465785f7472616e73616374696f6e3a3a686636393832363132316238663838623390035f73705f73746174655f6d616368696e653a3a6f7665726c617965645f6368616e6765733a3a4f7665726c617965644368616e6765733a3a6164645f7472616e73616374696f6e5f696e6465783a3a68326137643261366437666237386362649103743c73705f73746174655f6d616368696e653a3a6578743a3a4578743c482c4e2c423e2061732073705f65787465726e616c69746965733a3a45787465726e616c69746965733e3a3a73746f726167655f73746172745f7472616e73616374696f6e3a3a6866646331663461393130616434623765920335736d616c6c7665633a3a536d616c6c5665633c413e3a3a7472795f726573657276653a3a683235663932353733653737643235666293034a616c6c6f633a3a636f6c6c656374696f6e733a3a62747265653a3a6d61703a3a42547265654d61703c4b2c563e3a3a697465725f6d75743a3a68336263643637613035613562616462369403753c73705f73746174655f6d616368696e653a3a6578743a3a4578743c482c4e2c423e2061732073705f65787465726e616c69746965733a3a45787465726e616c69746965733e3a3a73746f726167655f636f6d6d69745f7472616e73616374696f6e3a3a683138373932326561306337376534343695035c73705f73746174655f6d616368696e653a3a6f7665726c617965645f6368616e6765733a3a4f7665726c617965644368616e6765733a3a636f6d6d69745f7472616e73616374696f6e3a3a68306334613732656430646332383935369603773c73705f73746174655f6d616368696e653a3a6578743a3a4578743c482c4e2c423e2061732073705f65787465726e616c69746965733a3a45787465726e616c69746965733e3a3a73746f726167655f726f6c6c6261636b5f7472616e73616374696f6e3a3a683466623561613631303061316637336597035e73705f73746174655f6d616368696e653a3a6f7665726c617965645f6368616e6765733a3a4f7665726c617965644368616e6765733a3a726f6c6c6261636b5f7472616e73616374696f6e3a3a686363303436653666656138383136363998037a3c73705f73746174655f6d616368696e653a3a6578743a3a4578743c482c4e2c423e2061732073705f65787465726e616c69746965733a3a45787465726e616c69746965733e3a3a73746f726167655f72656e65775f7472616e73616374696f6e5f696e6465783a3a683333633963383736636362656661656699035f3c73705f73746174655f6d616368696e653a3a6578743a3a4578743c482c4e2c423e2061732073705f65787465726e616c69746965733a3a45787465726e616c69746965733e3a3a776970653a3a68383865333737343530396563346563629a035f73705f73746174655f6d616368696e653a3a6f7665726c617965645f6368616e6765733a3a4f7665726c617965644368616e6765733a3a647261696e5f73746f726167655f6368616e6765733a3a68333438396366366563393538313230349b03613c73705f73746174655f6d616368696e653a3a6578743a3a4578743c482c4e2c423e2061732073705f65787465726e616c69746965733a3a45787465726e616c69746965733e3a3a636f6d6d69743a3a68376161623936666332643834393961649c033d73705f73746174655f6d616368696e653a3a6261636b656e643a3a4261636b656e643a3a636f6d6d69743a3a68393939353035633834366535376337649d03623c73705f73746174655f6d616368696e653a3a6578743a3a4578743c482c4e2c423e2061732073705f65787465726e616c69746965733a3a45787465726e616c69746965733e3a3a73746f726167653a3a68386335306162383431623836633137649e030c436f72655f76657273696f6e9f03503c7061726974795f7363616c655f636f6465633a3a6572726f723a3a4572726f7220617320636f72653a3a666d743a3a446973706c61793e3a3a666d743a3a6837313936356535623339363630316139a0033c7061726974795f7363616c655f636f6465633a3a636f6465633a3a456e636f64653a3a656e636f64653a3a6865663338353965333632323338313431a10312436f72655f657865637574655f626c6f636ba203723c73705f72756e74696d653a3a67656e657269633a3a6865616465723a3a4865616465723c4e756d6265722c486173683e206173207061726974795f7363616c655f636f6465633a3a636f6465633a3a4465636f64653e3a3a6465636f64653a3a6836663861376562333534393435383035a303543c616c6c6f633a3a7665633a3a5665633c543e206173207061726974795f7363616c655f636f6465633a3a636f6465633a3a4465636f64653e3a3a6465636f64653a3a6863646436313533343439373064356330a40381016672616d655f6578656375746976653a3a4578656375746976653c53797374656d2c426c6f636b2c436f6e746578742c556e7369676e656456616c696461746f722c416c6c50616c6c6574732c434f6e52756e74696d65557067726164653e3a3a657865637574655f626c6f636b3a3a6838663665653161313266383835323237a50315436f72655f696e697469616c697a655f626c6f636ba60384016672616d655f6578656375746976653a3a4578656375746976653c53797374656d2c426c6f636b2c436f6e746578742c556e7369676e656456616c696461746f722c416c6c50616c6c6574732c434f6e52756e74696d65557067726164653e3a3a696e697469616c697a655f626c6f636b3a3a6839313361353637653962643466623462a703114d657461646174615f6d65746164617461a8036c3c7061726974795f7363616c655f636f6465633a3a636f6d706163743a3a436f6d706163743c543e206173207061726974795f7363616c655f636f6465633a3a636f6465633a3a456e636f64653e3a3a656e636f64655f746f3a3a6834613236303135633036326537366335a903417061726974795f7363616c655f636f6465633a3a636f6465633a3a656e636f64655f736c6963655f6e6f5f6c656e3a3a6861383832616363623062396162306539aa031c426c6f636b4275696c6465725f6170706c795f65787472696e736963ab0383016672616d655f6578656375746976653a3a4578656375746976653c53797374656d2c426c6f636b2c436f6e746578742c556e7369676e656456616c696461746f722c416c6c50616c6c6574732c434f6e52756e74696d65557067726164653e3a3a6170706c795f65787472696e7369633a3a6865636563643932623363336332396534ac03aa0173705f72756e74696d653a3a7472616e73616374696f6e5f76616c69646974793a3a5f3a3a3c696d706c207061726974795f7363616c655f636f6465633a3a636f6465633a3a456e636f646520666f722073705f72756e74696d653a3a7472616e73616374696f6e5f76616c69646974793a3a5472616e73616374696f6e56616c69646974794572726f723e3a3a656e636f64655f746f3a3a6832343638303535306436623933646561ad031b426c6f636b4275696c6465725f66696e616c697a655f626c6f636bae038a016672616d655f6578656375746976653a3a4578656375746976653c53797374656d2c426c6f636b2c436f6e746578742c556e7369676e656456616c696461746f722c416c6c50616c6c6574732c434f6e52756e74696d65557067726164653e3a3a69646c655f616e645f66696e616c697a655f686f6f6b3a3a6834376531663639303538356436333230af03516672616d655f73797374656d3a3a3c696d706c206672616d655f73797374656d3a3a70616c6c65743a3a50616c6c65743c543e3e3a3a66696e616c697a653a3a6830373137323738373030666662326333b00320426c6f636b4275696c6465725f696e686572656e745f65787472696e73696373b1036f3c616c6c6f633a3a636f6c6c656374696f6e733a3a62747265653a3a6d61703a3a42547265654d61703c4b2c563e206173207061726974795f7363616c655f636f6465633a3a636f6465633a3a4465636f64653e3a3a6465636f64653a3a6866386434656266623039383062646336b203613c616c6c6f633a3a636f6c6c656374696f6e733a3a62747265653a3a6d61703a3a42547265654d61703c4b2c563e20617320636f72653a3a6f70733a3a64726f703a3a44726f703e3a3a64726f703a3a6836646237336466623364623738363665b3033e73705f72756e74696d653a3a67656e657269633a3a656e636f64655f776974685f7665635f7072656669783a3a6862373336623339353730393630373364b4031c426c6f636b4275696c6465725f636865636b5f696e686572656e7473b5032b5461676765645472616e73616374696f6e51756575655f76616c69646174655f7472616e73616374696f6eb603214f6666636861696e576f726b65724170695f6f6666636861696e5f776f726b6572b703536672616d655f73797374656d3a3a3c696d706c206672616d655f73797374656d3a3a70616c6c65743a3a50616c6c65743c543e3e3a3a696e697469616c697a653a3a6832633438663832666437626366313861b803633c616c6c6f633a3a7665633a3a5665633c543e20617320616c6c6f633a3a7665633a3a737065635f66726f6d5f697465723a3a5370656346726f6d497465723c542c493e3e3a3a66726f6d5f697465723a3a6864373866643332346635313133633366b9033a616c6c6f633a3a7665633a3a5665633c542c413e3a3a657874656e645f66726f6d5f736c6963653a3a6863363633663537396561356330316138ba031f53657373696f6e4b6579735f6465636f64655f73657373696f6e5f6b657973bb032153657373696f6e4b6579735f67656e65726174655f73657373696f6e5f6b657973bc032b436f6c6c656374436f6c6c6174696f6e496e666f5f636f6c6c6563745f636f6c6c6174696f6e5f696e666fbd03386672616d655f737570706f72743a3a73746f726167653a3a756e6861736865643a3a6765743a3a6832326663616663646436616565663663be038901616c6c6f633a3a7665633a3a736f757263655f697465725f6d61726b65723a3a3c696d706c20616c6c6f633a3a7665633a3a737065635f66726f6d5f697465723a3a5370656346726f6d497465723c542c493e20666f7220616c6c6f633a3a7665633a3a5665633c543e3e3a3a66726f6d5f697465723a3a6837363332646637393437343930373338bf0331636f72653a3a70616e69636b696e673a3a6173736572745f6661696c65643a3a6864656131313935383830323236646432c00331636f72653a3a70616e69636b696e673a3a6173736572745f6661696c65643a3a6838343433653966326535313362343762c103623c616c6c6f633a3a7665633a3a5665633c542c413e20617320616c6c6f633a3a7665633a3a737065635f657874656e643a3a53706563457874656e643c542c493e3e3a3a737065635f657874656e643a3a6864653537323965316335653531666164c203793c6d656d6f72795f64623a3a4d656d6f727944423c482c4b462c616c6c6f633a3a7665633a3a5665633c75383e3e2061732073705f73746174655f6d616368696e653a3a6261636b656e643a3a436f6e736f6c69646174653e3a3a636f6e736f6c69646174653a3a6864393638616564623438616632666534c303773c78636d5f6275696c6465723a3a7765696768743a3a4669786564576569676874426f756e64733c542c433e2061732078636d5f6578656375746f723a3a7472616974733a3a7765696768743a3a576569676874426f756e64733c433e3e3a3a646565703a3a6864396662623965623534623463376135c4037a3c78636d5f6275696c6465723a3a7765696768743a3a4669786564576569676874426f756e64733c542c433e2061732078636d5f6578656375746f723a3a7472616974733a3a7765696768743a3a576569676874426f756e64733c433e3e3a3a7368616c6c6f773a3a6838346532616638643534323064613533c50380016672616d655f73797374656d3a3a5f3a3a3c696d706c207061726974795f7363616c655f636f6465633a3a636f6465633a3a456e636f646520666f72206672616d655f73797374656d3a3a4c61737452756e74696d6555706772616465496e666f3e3a3a656e636f64655f746f3a3a6866656139646632306262313536353265c6036b3c73705f72756e74696d653a3a72756e74696d655f737472696e673a3a52756e74696d65537472696e67206173207061726974795f7363616c655f636f6465633a3a636f6465633a3a456e636f64653e3a3a656e636f64653a3a6865303530353962643031393932633335c7035678636d5f6578656375746f723a3a7472616974733a3a7472616e736163745f61737365743a3a5472616e7361637441737365743a3a74656c65706f72745f61737365743a3a6862623462656638623564343363363265c8034670617261636861696e5f696e666f3a3a70616c6c65743a3a50616c6c65743c543e3a3a73746f726167655f6d657461646174613a3a6836383865333962323636653336613938c9034f70617261636861696e5f696e666f3a3a70616c6c65743a3a50616c6c65743c543e3a3a6d6f64756c655f636f6e7374616e74735f6d657461646174613a3a6837643665313733613335613736663934ca039b013c6d656d6f72795f64623a3a4d656d6f727944423c482c6d656d6f72795f64623a3a486173684b65793c483e2c616c6c6f633a3a7665633a3a5665633c75383e3e2061732073705f73746174655f6d616368696e653a3a747269655f6261636b656e645f657373656e63653a3a547269654261636b656e6453746f726167653c483e3e3a3a6765743a3a6862663364363833646463616232633361cb03463c616c6c6f633a3a7665633a3a5665633c542c413e20617320636f72653a3a636c6f6e653a3a436c6f6e653e3a3a636c6f6e653a3a6832633965323732376331313531323134cc034a63756d756c75735f70616c6c65745f78636d3a3a70616c6c65743a3a50616c6c65743c543e3a3a73746f726167655f6d657461646174613a3a6837626333613265363165356335616438cd03363c5420617320636f72653a3a636f6e766572743a3a496e746f3c553e3e3a3a696e746f3a3a6839326166656332393933386139356166ce03653c73705f747269653a3a6e6f64655f636f6465633a3a4e6f6465436f6465633c483e20617320747269655f64623a3a6e6f64655f636f6465633a3a4e6f6465436f6465633e3a3a6465636f64655f706c616e3a3a6831356466366335353430613630386339cf030e76616c69646174655f626c6f636bd003543c616c6c6f633a3a7665633a3a5665633c543e206173207061726974795f7363616c655f636f6465633a3a636f6465633a3a4465636f64653e3a3a6465636f64653a3a6833313462633738386635656234343731d1036263756d756c75735f70616c6c65745f70617261636861696e5f73797374656d3a3a76616c69646174655f626c6f636b3a3a696d706c656d656e746174696f6e3a3a76616c69646174655f626c6f636b3a3a6836353931336562346264326162383663d203783c616c6c6f633a3a636f6c6c656374696f6e733a3a62747265653a3a7365743a3a42547265655365743c543e20617320636f72653a3a697465723a3a7472616974733a3a636f6c6c6563743a3a496e746f4974657261746f723e3a3a696e746f5f697465723a3a6866643065393337386465353937646334d3034873705f73746174655f6d616368696e653a3a6261636b656e643a3a4261636b656e643a3a66756c6c5f73746f726167655f726f6f743a3a6835346565666161666363666165316334d403613c616c6c6f633a3a636f6c6c656374696f6e733a3a62747265653a3a6d61703a3a42547265654d61703c4b2c563e20617320636f72653a3a6f70733a3a64726f703a3a44726f703e3a3a64726f703a3a6835343030386234333333623262613261d5037a3c616c6c6f633a3a636f6c6c656374696f6e733a3a62747265653a3a6d61703a3a42547265654d61703c4b2c563e20617320636f72653a3a697465723a3a7472616974733a3a636f6c6c6563743a3a496e746f4974657261746f723e3a3a696e746f5f697465723a3a6865383831643839623230663063616161d603613c616c6c6f633a3a636f6c6c656374696f6e733a3a62747265653a3a6d61703a3a42547265654d61703c4b2c563e20617320636f72653a3a6f70733a3a64726f703a3a44726f703e3a3a64726f703a3a6832636362613566396136616239396265d703633c616c6c6f633a3a7665633a3a5665633c543e20617320616c6c6f633a3a7665633a3a737065635f66726f6d5f697465723a3a5370656346726f6d497465723c542c493e3e3a3a66726f6d5f697465723a3a6838303837623030333561353437646435d8036a636f72653a3a6f70733a3a66756e6374696f6e3a3a696d706c733a3a3c696d706c20636f72653a3a6f70733a3a66756e6374696f6e3a3a466e4f6e63653c413e20666f7220266d757420463e3a3a63616c6c5f6f6e63653a3a6831343433303464626232613261623663d903fd01636f72653a3a7074723a3a64726f705f696e5f706c6163653c616c6c6f633a3a636f6c6c656374696f6e733a3a62747265653a3a6d61703a3a44726f707065723c616c6c6f633a3a7665633a3a5665633c75383e2c2873705f73746174655f6d616368696e653a3a6f7665726c617965645f6368616e6765733a3a6368616e67657365743a3a4f7665726c617965644d61703c616c6c6f633a3a7665633a3a5665633c75383e2c636f72653a3a6f7074696f6e3a3a4f7074696f6e3c616c6c6f633a3a7665633a3a5665633c75383e3e3e2c73705f73746f726167653a3a4368696c64496e666f293e3e3a3a6837346332663764333938626662316335da034478636d5f6578656375746f723a3a58636d4578656375746f723c436f6e6669673e3a3a646f5f657865637574655f78636d3a3a6838313231333865653036373534376435db03583c78636d3a3a76303a3a6d756c74695f6c6f636174696f6e3a3a4d756c74694c6f636174696f6e20617320636f72653a3a636c6f6e653a3a436c6f6e653e3a3a636c6f6e653a3a6832323233306433333363653735626233dc03613c616c6c6f633a3a636f6c6c656374696f6e733a3a62747265653a3a6d61703a3a42547265654d61703c4b2c563e20617320636f72653a3a6f70733a3a64726f703a3a44726f703e3a3a64726f703a3a6865323736376564393139356161386333dd039c01636f72653a3a7074723a3a64726f705f696e5f706c6163653c616c6c6f633a3a636f6c6c656374696f6e733a3a62747265653a3a6d61703a3a44726f707065723c2878636d5f6578656375746f723a3a6173736574733a3a417373657449642c78636d3a3a76303a3a6d756c74695f61737365743a3a4173736574496e7374616e6365292c28293e3e3a3a6865623464356661633237633035363231de0381013c78636d5f6578656375746f723a3a6173736574733a3a41737365747320617320636f72653a3a636f6e766572743a3a46726f6d3c616c6c6f633a3a7665633a3a5665633c78636d3a3a76303a3a6d756c74695f61737365743a3a4d756c746941737365743e3e3e3a3a66726f6d3a3a6836303636326435373530323162663234df033d78636d3a3a76303a3a6d756c74695f61737365743a3a4d756c746941737365743a3a7265616e63686f723a3a6837333566613030303839373130323765e0034778636d3a3a76303a3a6d756c74695f6c6f636174696f6e3a3a4d756c74694c6f636174696f6e3a3a70726570656e645f776974683a3a6831616335636432636663326166356635e103783c285475706c65456c656d656e74302c5475706c65456c656d656e7431292061732078636d5f6578656375746f723a3a7472616974733a3a636f6e76657273696f6e3a3a436f6e766572744f726967696e3c4f3e3e3a3a636f6e766572745f6f726967696e3a3a6837656436393463613461666237613833e2034578636d5f6578656375746f723a3a58636d4578656375746f723c436f6e6669673e3a3a657865637574655f656666656374733a3a6835373861343161313634613462333435e3034078636d5f6578656375746f723a3a6173736574733a3a4173736574733a3a73617475726174696e675f74616b653a3a6836653133383465626364643436353030e4037a3c616c6c6f633a3a636f6c6c656374696f6e733a3a62747265653a3a6d61703a3a42547265654d61703c4b2c563e20617320636f72653a3a697465723a3a7472616974733a3a636f6c6c6563743a3a496e746f4974657261746f723e3a3a696e746f5f697465723a3a6839663339313561666662333665376435e503783c616c6c6f633a3a636f6c6c656374696f6e733a3a62747265653a3a7365743a3a42547265655365743c543e20617320636f72653a3a697465723a3a7472616974733a3a636f6c6c6563743a3a496e746f4974657261746f723e3a3a696e746f5f697465723a3a6862346539363132303666636139633163e603613c616c6c6f633a3a636f6c6c656374696f6e733a3a62747265653a3a6d61703a3a496e746f497465723c4b2c563e20617320636f72653a3a6f70733a3a64726f703a3a44726f703e3a3a64726f703a3a6831633861633538636430636437393137e70346616c6c6f633a3a636f6c6c656374696f6e733a3a62747265653a3a6d61703a3a42547265654d61703c4b2c563e3a3a697465723a3a6834383537623232383964636336373162e80344616c6c6f633a3a636f6c6c656374696f6e733a3a62747265653a3a7365743a3a42547265655365743c543e3a3a697465723a3a6866623435373336316137656230363165e9034178636d5f6578656375746f723a3a6173736574733a3a4173736574733a3a70726570656e645f6c6f636174696f6e3a3a6834643863363535303338353433323635ea03633c616c6c6f633a3a7665633a3a5665633c543e20617320616c6c6f633a3a7665633a3a737065635f66726f6d5f697465723a3a5370656346726f6d497465723c542c493e3e3a3a66726f6d5f697465723a3a6836386331373362353861363237353530eb036e3c616c6c6f633a3a636f6c6c656374696f6e733a3a62747265653a3a6d61703a3a42547265654d61703c4b2c563e20617320636f72653a3a636c6f6e653a3a436c6f6e653e3a3a636c6f6e653a3a636c6f6e655f737562747265653a3a6838346535623634323934653737366235ec036e3c616c6c6f633a3a636f6c6c656374696f6e733a3a62747265653a3a6d61703a3a42547265654d61703c4b2c563e20617320636f72653a3a636c6f6e653a3a436c6f6e653e3a3a636c6f6e653a3a636c6f6e655f737562747265653a3a6863373533366364623334316330316166ed034378636d5f6578656375746f723a3a6173736574733a3a4173736574733a3a73617475726174696e675f73756273756d653a3a6833636563333031323733343833363136ee0346616c6c6f633a3a636f6c6c656374696f6e733a3a62747265653a3a7365743a3a42547265655365743c543e3a3a696e736572743a3a6837646466666530333238363036376663ef034c78636d5f6578656375746f723a3a6173736574733a3a4173736574733a3a73617475726174696e675f73756273756d655f66756e6769626c653a3a6834666364323332643538313636626434f0036a636f72653a3a6f70733a3a66756e6374696f6e3a3a696d706c733a3a3c696d706c20636f72653a3a6f70733a3a66756e6374696f6e3a3a466e4f6e63653c413e20666f7220266d757420463e3a3a63616c6c5f6f6e63653a3a6834636536613134393036363039623036f103573c78636d3a3a76303a3a6d756c74695f6c6f636174696f6e3a3a4d756c74694c6f636174696f6e20617320636f72653a3a636d703a3a5061727469616c45713e3a3a65713a3a6865393136633431666561363838303065f2034278636d5f6578656375746f723a3a6173736574733a3a4173736574733a3a7472795f74616b655f66756e6769626c653a3a6838366531313033613365333232626234f3034678636d5f6578656375746f723a3a6173736574733a3a4173736574733a3a7472795f74616b655f6e6f6e5f66756e6769626c653a3a6864633735653630373566336436326138f4034e616c6c6f633a3a636f6c6c656374696f6e733a3a62747265653a3a6d61703a3a42547265654d61703c4b2c563e3a3a72656d6f76655f656e7472793a3a6835666137643533646539383761336235f50348616c6c6f633a3a636f6c6c656374696f6e733a3a62747265653a3a6d61703a3a42547265654d61703c4b2c563e3a3a696e736572743a3a6838613134323532613065656130373066f6034278636d5f6578656375746f723a3a6173736574733a3a4173736574733a3a74616b655f6e6f6e5f66756e6769626c653a3a6838323738363264353363646235363338f703613c616c6c6f633a3a636f6c6c656374696f6e733a3a62747265653a3a6d61703a3a42547265654d61703c4b2c563e20617320636f72653a3a6f70733a3a64726f703a3a44726f703e3a3a64726f703a3a6862383037643630653735613537313666f803613c616c6c6f633a3a636f6c6c656374696f6e733a3a62747265653a3a6d61703a3a42547265654d61703c4b2c563e20617320636f72653a3a6f70733a3a64726f703a3a44726f703e3a3a64726f703a3a6835343431396664313062653237636439f9035f636f72653a3a7074723a3a64726f705f696e5f706c6163653c78636d3a3a76303a3a6f726465723a3a4f726465723c63756d756c75735f7368656c6c5f72756e74696d653a3a43616c6c3e3e3a3a6862653437653531373264613463313862fa036a636f72653a3a6f70733a3a66756e6374696f6e3a3a696d706c733a3a3c696d706c20636f72653a3a6f70733a3a66756e6374696f6e3a3a466e4f6e63653c413e20666f7220266d757420463e3a3a63616c6c5f6f6e63653a3a6865633533663338666339646664386331fb03503c61727261797665633a3a6572726f72733a3a43617061636974794572726f723c543e20617320636f72653a3a666d743a3a44656275673e3a3a666d743a3a6865636165363036373164656464643635fc03463c58206173207061726974795f7363616c655f636f6465633a3a636f6465633a3a456e636f64653e3a3a656e636f64655f746f3a3a6866306636353264363534396362393035fd037a3c616c6c6f633a3a636f6c6c656374696f6e733a3a62747265653a3a6d61703a3a42547265654d61703c4b2c563e20617320636f72653a3a697465723a3a7472616974733a3a636f6c6c6563743a3a496e746f4974657261746f723e3a3a696e746f5f697465723a3a6866613335363136313431376463323135fe035c6672616d655f737570706f72743a3a73746f726167653a3a67656e657261746f723a3a6d61703a3a53746f726167654d61703a3a73746f726167655f6d61705f66696e616c5f6b65793a3a6862633865653564613263393761633466ff034c636f72653a3a666d743a3a6e756d3a3a3c696d706c20636f72653a3a666d743a3a446562756720666f72207533323e3a3a666d743a3a68313065656165346362323030373437362e313537398004686672616d655f73797374656d3a3a3c696d706c206672616d655f73797374656d3a3a70616c6c65743a3a50616c6c65743c543e3e3a3a72656769737465725f65787472615f7765696768745f756e636865636b65643a3a68653732393633323565336631343031348104386672616d655f737570706f72743a3a73746f726167653a3a756e6861736865643a3a6765743a3a683632326165383536326164386137666182045c6672616d655f737570706f72743a3a73746f726167653a3a67656e657261746f723a3a6d61703a3a53746f726167654d61703a3a73746f726167655f6d61705f66696e616c5f6b65793a3a686433656533303566336531643962353583045373705f696f3a3a747269653a3a65787465726e5f686f73745f66756e6374696f6e5f696d706c733a3a626c616b65325f3235365f6f7264657265645f726f6f743a3a68306561376462613364313537323961308404426672616d655f73797374656d3a3a70616c6c65743a3a50616c6c65743c543e3a3a63616c6c5f66756e6374696f6e733a3a68333261613062333564313764326534388504446672616d655f73797374656d3a3a70616c6c65743a3a50616c6c65743c543e3a3a73746f726167655f6d657461646174613a3a683061326162666261666638653664376386044d6672616d655f73797374656d3a3a70616c6c65743a3a50616c6c65743c543e3a3a6d6f64756c655f636f6e7374616e74735f6d657461646174613a3a683531306635373834303764653135366387049c013c6672616d655f73797374656d3a3a70616c6c65743a3a50616c6c65743c543e3a3a6d6f64756c655f636f6e7374616e74735f6d657461646174613a3a5353353850726566697844656661756c74427974654765747465723c543e206173206672616d655f6d657461646174613a3a44656661756c74427974653e3a3a64656661756c745f627974653a3a6866323633346661656530323062663465880499013c6672616d655f73797374656d3a3a70616c6c65743a3a50616c6c65743c543e3a3a6d6f64756c655f636f6e7374616e74735f6d657461646174613a3a56657273696f6e44656661756c74427974654765747465723c543e206173206672616d655f6d657461646174613a3a44656661756c74427974653e3a3a64656661756c745f627974653a3a683865363536653836636464383435326689049a013c6672616d655f73797374656d3a3a70616c6c65743a3a50616c6c65743c543e3a3a6d6f64756c655f636f6e7374616e74735f6d657461646174613a3a446257656967687444656661756c74427974654765747465723c543e206173206672616d655f6d657461646174613a3a44656661756c74427974653e3a3a64656661756c745f627974653a3a68373935343030346231656364323731368a04a0013c6672616d655f73797374656d3a3a70616c6c65743a3a50616c6c65743c543e3a3a6d6f64756c655f636f6e7374616e74735f6d657461646174613a3a426c6f636b48617368436f756e7444656661756c74427974654765747465723c543e206173206672616d655f6d657461646174613a3a44656661756c74427974653e3a3a64656661756c745f627974653a3a68643135653864663461643331663131328b049d013c6672616d655f73797374656d3a3a70616c6c65743a3a50616c6c65743c543e3a3a6d6f64756c655f636f6e7374616e74735f6d657461646174613a3a426c6f636b4c656e67746844656661756c74427974654765747465723c543e206173206672616d655f6d657461646174613a3a44656661756c74427974653e3a3a64656661756c745f627974653a3a68323162623536633235363936376230638c049e013c6672616d655f73797374656d3a3a70616c6c65743a3a50616c6c65743c543e3a3a6d6f64756c655f636f6e7374616e74735f6d657461646174613a3a426c6f636b5765696768747344656661756c74427974654765747465723c543e206173206672616d655f6d657461646174613a3a44656661756c74427974653e3a3a64656661756c745f627974653a3a68636336303936643766313934666332668d0448616c6c6f633a3a636f6c6c656374696f6e733a3a62747265653a3a6d61703a3a42547265654d61703c4b2c563e3a3a696e736572743a3a68326632356436616337663838643533658e044f3c78636d5f6578656375746f723a3a6173736574733a3a4173736574496420617320636f72653a3a636c6f6e653a3a436c6f6e653e3a3a636c6f6e653a3a68336462396433646230343635636664618f04653c6672616d655f73797374656d3a3a70616c6c65743a3a50616c6c65743c543e206173206672616d655f6d657461646174613a3a4d6f64756c654572726f724d657461646174613e3a3a6d657461646174613a3a68343537353034623237303936383335319004613c616c6c6f633a3a636f6c6c656374696f6e733a3a62747265653a3a6d61703a3a42547265654d61703c4b2c563e20617320636f72653a3a6f70733a3a64726f703a3a44726f703e3a3a64726f703a3a6831356535313461636166333365383864910425747269655f64623a3a547269653a3a6765743a3a68653536343939343838323838396632319204593c747269655f64623a3a7472696564623a3a5472696544424974657261746f723c4c3e20617320747269655f64623a3a547269654974657261746f723c4c3e3e3a3a7365656b3a3a686136363638373631663533383033363593048a02636f72653a3a7074723a3a64726f705f696e5f706c6163653c73705f73746174655f6d616368696e653a3a747269655f6261636b656e645f657373656e63653a3a547269654261636b656e64457373656e63653c6d656d6f72795f64623a3a4d656d6f727944423c73705f72756e74696d653a3a7472616974733a3a426c616b6554776f3235362c6d656d6f72795f64623a3a486173684b65793c73705f72756e74696d653a3a7472616974733a3a426c616b6554776f3235363e2c616c6c6f633a3a7665633a3a5665633c75383e3e2c73705f72756e74696d653a3a7472616974733a3a426c616b6554776f3235363e3e3a3a68313232623135613339656534653331312e31373139940486013c73705f73746174655f6d616368696e653a3a747269655f6261636b656e645f657373656e63653a3a547269654261636b656e64457373656e63653c532c483e20617320686173685f64623a3a4861736844425265663c482c616c6c6f633a3a7665633a3a5665633c75383e3e3e3a3a6765743a3a68313136386232366139376531306638649504aa02616c6c6f633a3a636f6c6c656374696f6e733a3a62747265653a3a72656d6f76653a3a3c696d706c20616c6c6f633a3a636f6c6c656374696f6e733a3a62747265653a3a6e6f64653a3a48616e646c653c616c6c6f633a3a636f6c6c656374696f6e733a3a62747265653a3a6e6f64653a3a4e6f64655265663c616c6c6f633a3a636f6c6c656374696f6e733a3a62747265653a3a6e6f64653a3a6d61726b65723a3a4d75742c4b2c562c616c6c6f633a3a636f6c6c656374696f6e733a3a62747265653a3a6e6f64653a3a6d61726b65723a3a4c6561663e2c616c6c6f633a3a636f6c6c656374696f6e733a3a62747265653a3a6e6f64653a3a6d61726b65723a3a4b563e3e3a3a72656d6f76655f6c6561665f6b763a3a6833616366653634653763363835616664960446616c6c6f633a3a636f6c6c656374696f6e733a3a62747265653a3a7365743a3a42547265655365743c543e3a3a696e736572743a3a683062343433613265663331396539313097044c3c78636d3a3a76303a3a6a756e6374696f6e3a3a4a756e6374696f6e20617320636f72653a3a636d703a3a5061727469616c45713e3a3a65713a3a686139383930316530353339353562323398047d3c73705f73746174655f6d616368696e653a3a747269655f6261636b656e645f657373656e63653a3a457068656d6572616c3c532c483e20617320686173685f64623a3a4861736844423c482c616c6c6f633a3a7665633a3a5665633c75383e3e3e3a3a696e736572743a3a686438353465353834343166303166356399047d3c73705f73746174655f6d616368696e653a3a747269655f6261636b656e645f657373656e63653a3a457068656d6572616c3c532c483e20617320686173685f64623a3a4861736844423c482c616c6c6f633a3a7665633a3a5665633c75383e3e3e3a3a72656d6f76653a3a68633133306133346536633731343563309a047e3c73705f73746174655f6d616368696e653a3a747269655f6261636b656e645f657373656e63653a3a457068656d6572616c3c532c483e20617320686173685f64623a3a4861736844423c482c616c6c6f633a3a7665633a3a5665633c75383e3e3e3a3a656d706c6163653a3a68643861373031366130613166623530359b0483013c73705f73746174655f6d616368696e653a3a747269655f6261636b656e645f657373656e63653a3a457068656d6572616c3c532c483e20617320686173685f64623a3a41734861736844423c482c616c6c6f633a3a7665633a3a5665633c75383e3e3e3a3a61735f686173685f64623a3a68326632376162653465613661323436399c0487013c73705f73746174655f6d616368696e653a3a747269655f6261636b656e645f657373656e63653a3a457068656d6572616c3c532c483e20617320686173685f64623a3a41734861736844423c482c616c6c6f633a3a7665633a3a5665633c75383e3e3e3a3a61735f686173685f64625f6d75743a3a68646564353439353233353330663165319d047c7061726974795f7363616c655f636f6465633a3a636f6465633a3a696e6e65725f7475706c655f696d706c3a3a3c696d706c207061726974795f7363616c655f636f6465633a3a636f6465633a3a4465636f646520666f72202851302c5230293e3a3a6465636f64653a3a68633539653461663333393538383661389e04543c616c6c6f633a3a7665633a3a5665633c543e206173207061726974795f7363616c655f636f6465633a3a636f6465633a3a4465636f64653e3a3a6465636f64653a3a68626235373765633132313530303433619f046c3c636f72653a3a697465723a3a61646170746572733a3a636861696e3a3a436861696e3c412c423e20617320636f72653a3a697465723a3a7472616974733a3a6974657261746f723a3a4974657261746f723e3a3a6e6578743a3a6863396134393164356430346562643632a004723c73705f72756e74696d653a3a67656e657269633a3a6865616465723a3a4865616465723c4e756d6265722c486173683e206173207061726974795f7363616c655f636f6465633a3a636f6465633a3a4465636f64653e3a3a6465636f64653a3a6862626266373431656433306566663131a104386672616d655f737570706f72743a3a73746f726167653a3a756e6861736865643a3a6765743a3a6865636365356138306364636463613364a2045073705f696f3a3a63727970746f3a3a65787465726e5f686f73745f66756e6374696f6e5f696d706c733a3a73746172745f62617463685f7665726966793a3a6836356465336238396535643461373434a3045173705f696f3a3a63727970746f3a3a65787465726e5f686f73745f66756e6374696f6e5f696d706c733a3a66696e6973685f62617463685f7665726966793a3a6839646161386332633466333633626365a4044573705f696f3a3a6d6973633a3a65787465726e5f686f73745f66756e6374696f6e5f696d706c733a3a7072696e745f6865783a3a6833313037363666636634346663383233a504363c5420617320636f72653a3a636f6e766572743a3a496e746f3c553e3e3a3a696e746f3a3a6862363630326565303930623965643130a60431636f72653a3a70616e69636b696e673a3a6173736572745f6661696c65643a3a6831323237313063663435666163643130a7045c3c6672616d655f737570706f72743a3a7472616974733a3a6d657461646174613a3a50616c6c657456657273696f6e20617320636f72653a3a666d743a3a44656275673e3a3a666d743a3a6863343733333632393238353666353238a8046a636f72653a3a6f70733a3a66756e6374696f6e3a3a696d706c733a3a3c696d706c20636f72653a3a6f70733a3a66756e6374696f6e3a3a466e4f6e63653c413e20666f7220266d757420463e3a3a63616c6c5f6f6e63653a3a6838313662383939386361376235643163a9043a747269655f64623a3a7472696564626d75743a3a5472696544424d75743c4c3e3a3a63616368653a3a6834316431393136343866653530326330aa0445747269655f64623a3a7472696564626d75743a3a5472696544424d75743c4c3e3a3a696e736572745f696e73706563746f723a3a6839323635663466303437663639376566ab04363c5420617320636f72653a3a636f6e766572743a3a496e746f3c553e3e3a3a696e746f3a3a6839336631356634623161396665336538ac04376861736862726f776e3a3a7365743a3a486173685365743c542c533e3a3a696e736572743a3a6861646633386430306331623961393466ad043c747269655f64623a3a7472696564626d75743a3a4e6f64653c4f3e3a3a66726f6d5f656e636f6465643a3a6865653830316163346164656533393332ae0465747269655f64623a3a6e6962626c653a3a6e6962626c65736c6963653a3a3c696d706c20747269655f64623a3a6e6962626c653a3a4e6962626c65536c6963653e3a3a746f5f73746f7265645f72616e67653a3a6832313566393262343438373337363632af043e747269655f64623a3a7472696564626d75743a3a4e6f64653c4f3e3a3a696e6c696e655f6f725f686173683a3a6866626265653931643164663532653665b0043e747269655f64623a3a7472696564626d75743a3a5472696544424d75743c4c3e3a3a72656d6f76655f61743a3a6863313966313831386436636331663837b10445747269655f64623a3a7472696564626d75743a3a5472696544424d75743c4c3e3a3a72656d6f76655f696e73706563746f723a3a6834333036646661663563646130343638b20438747269655f64623a3a7472696564626d75743a3a5472696544424d75743c4c3e3a3a6669783a3a6833616664323564386635326636343730b30432747269655f64623a3a7472696564626d75743a3a636f6d62696e655f6b65793a3a6835303732363836373338303630633137b404417061726974795f7363616c655f636f6465633a3a636f6465633a3a656e636f64655f736c6963655f6e6f5f6c656e3a3a6830313366383837663665356364303462b504417061726974795f7363616c655f636f6465633a3a636f6465633a3a656e636f64655f736c6963655f6e6f5f6c656e3a3a6863663339623665333530353637313162b604417061726974795f7363616c655f636f6465633a3a636f6465633a3a656e636f64655f736c6963655f6e6f5f6c656e3a3a6861386634393663663264383663313565b704417061726974795f7363616c655f636f6465633a3a636f6465633a3a656e636f64655f736c6963655f6e6f5f6c656e3a3a6862353035333964623761663936633865b804417061726974795f7363616c655f636f6465633a3a636f6465633a3a656e636f64655f736c6963655f6e6f5f6c656e3a3a6864343264613063613365363339333339b904417061726974795f7363616c655f636f6465633a3a636f6465633a3a656e636f64655f736c6963655f6e6f5f6c656e3a3a6861623262363533336235316362613464ba047b6672616d655f6d657461646174613a3a5f3a3a3c696d706c207061726974795f7363616c655f636f6465633a3a636f6465633a3a456e636f646520666f72206672616d655f6d657461646174613a3a53746f726167654861736865723e3a3a656e636f64655f746f3a3a6866663737316562373031663434386239bb04543c6672616d655f73797374656d3a3a6c696d6974733a3a56616c69646174696f6e4572726f727320617320636f72653a3a666d743a3a44656275673e3a3a666d743a3a6839396439363464376533383639616334bc04383c6c6f673a3a4e6f704c6f67676572206173206c6f673a3a4c6f673e3a3a656e61626c65643a3a6863353833386563616566616462336238bd04343c6c6f673a3a4e6f704c6f67676572206173206c6f673a3a4c6f673e3a3a6c6f673a3a6833373036613530626563623430313461be04363c6c6f673a3a4e6f704c6f67676572206173206c6f673a3a4c6f673e3a3a666c7573683a3a6833323266663961303132303133383362bf044e3c7061726974795f7363616c655f636f6465633a3a6572726f723a3a4572726f7220617320636f72653a3a666d743a3a44656275673e3a3a666d743a3a6835636238353930626239303132393432c0043f7061726974795f7363616c655f636f6465633a3a636f6465633a3a4f75747075743a3a707573685f627974653a3a6835346432343330353734623164636462c104333c265420617320636f72653a3a666d743a3a4c6f7765724865783e3a3a666d743a3a6839356532343834346664356661633335c2044a3c736d616c6c7665633a3a436f6c6c656374696f6e416c6c6f6345727220617320636f72653a3a666d743a3a44656275673e3a3a666d743a3a6838346665636338613465323536393566c304303c265420617320636f72653a3a666d743a3a44656275673e3a3a666d743a3a6837376161316435366631333932393538c4044273705f65787465726e616c69746965733a3a73636f70655f6c696d697465643a3a474c4f42414c3a3a5f5f696e69743a3a6834396138633561666465646638326363c5047773705f72756e74696d655f696e746572666163653a3a706173735f62793a3a3c696d706c2073705f72756e74696d655f696e746572666163653a3a7761736d3a3a46726f6d46464956616c756520666f7220543e3a3a66726f6d5f6666695f76616c75653a3a6831636264363561343838363639313838c6047773705f72756e74696d655f696e746572666163653a3a706173735f62793a3a3c696d706c2073705f72756e74696d655f696e746572666163653a3a7761736d3a3a46726f6d46464956616c756520666f7220543e3a3a66726f6d5f6666695f76616c75653a3a6834326337353836363163616465336536c7045273705f696f3a3a64656661756c745f6368696c645f73746f726167653a3a65787465726e5f686f73745f66756e6374696f6e5f696d706c733a3a636c6561723a3a6832626232396431663837393530376332c8045973705f696f3a3a64656661756c745f6368696c645f73746f726167653a3a65787465726e5f686f73745f66756e6374696f6e5f696d706c733a3a636c6561725f7072656669783a3a6862626633326661623562386566313532c9045373705f696f3a3a64656661756c745f6368696c645f73746f726167653a3a65787465726e5f686f73745f66756e6374696f6e5f696d706c733a3a6578697374733a3a6832373939396236383861326564643734ca045073705f696f3a3a64656661756c745f6368696c645f73746f726167653a3a65787465726e5f686f73745f66756e6374696f6e5f696d706c733a3a6765743a3a6839303165396231313831623664306237cb045573705f696f3a3a64656661756c745f6368696c645f73746f726167653a3a65787465726e5f686f73745f66756e6374696f6e5f696d706c733a3a6e6578745f6b65793a3a6836396237343631363136646636303136cc045173705f696f3a3a64656661756c745f6368696c645f73746f726167653a3a65787465726e5f686f73745f66756e6374696f6e5f696d706c733a3a726561643a3a6866653064373337633439333732656436cd045173705f696f3a3a64656661756c745f6368696c645f73746f726167653a3a65787465726e5f686f73745f66756e6374696f6e5f696d706c733a3a726f6f743a3a6835366232636463386439383435623564ce045073705f696f3a3a64656661756c745f6368696c645f73746f726167653a3a65787465726e5f686f73745f66756e6374696f6e5f696d706c733a3a7365743a3a6837343739636530396331363863663030cf045973705f696f3a3a64656661756c745f6368696c645f73746f726167653a3a65787465726e5f686f73745f66756e6374696f6e5f696d706c733a3a73746f726167655f6b696c6c3a3a6836326131393234613631366666663864d004303c282920617320636f72653a3a666d743a3a44656275673e3a3a666d743a3a6833373731373337333431623563313236d104323c265420617320636f72653a3a666d743a3a446973706c61793e3a3a666d743a3a6833613033656638373937343232653262d204323c265420617320636f72653a3a666d743a3a446973706c61793e3a3a666d743a3a6831633632343063396537613866326539d3042673705f696f3a3a6c6f6767696e673a3a6c6f673a3a6831363533396131366539326363386638d4044573705f696f3a3a73746f726167653a3a65787465726e5f686f73745f66756e6374696f6e5f696d706c733a3a617070656e643a3a6864333761616236613235353131363238d5044b73705f696f3a3a73746f726167653a3a65787465726e5f686f73745f66756e6374696f6e5f696d706c733a3a6368616e6765735f726f6f743a3a6835656663356564626666326565636230d6044473705f696f3a3a73746f726167653a3a65787465726e5f686f73745f66756e6374696f6e5f696d706c733a3a636c6561723a3a6836373964666331346631313130663433d7044b73705f696f3a3a73746f726167653a3a65787465726e5f686f73745f66756e6374696f6e5f696d706c733a3a636c6561725f7072656669783a3a6862653863333066343062333534663236d8045173705f696f3a3a73746f726167653a3a65787465726e5f686f73745f66756e6374696f6e5f696d706c733a3a636f6d6d69745f7472616e73616374696f6e3a3a6862383433373166626335393534633034d9044573705f696f3a3a73746f726167653a3a65787465726e5f686f73745f66756e6374696f6e5f696d706c733a3a6578697374733a3a6835663138613336356466333830356631da044273705f696f3a3a73746f726167653a3a65787465726e5f686f73745f66756e6374696f6e5f696d706c733a3a6765743a3a6832326566373862376362346332313035db044773705f696f3a3a73746f726167653a3a65787465726e5f686f73745f66756e6374696f6e5f696d706c733a3a6e6578745f6b65793a3a6830653935363231396661613931373139dc044373705f696f3a3a73746f726167653a3a65787465726e5f686f73745f66756e6374696f6e5f696d706c733a3a726561643a3a6831333365326136303638353566313964dd045373705f696f3a3a73746f726167653a3a65787465726e5f686f73745f66756e6374696f6e5f696d706c733a3a726f6c6c6261636b5f7472616e73616374696f6e3a3a6832303731316162356135353462616234de044373705f696f3a3a73746f726167653a3a65787465726e5f686f73745f66756e6374696f6e5f696d706c733a3a726f6f743a3a6838346636626261376363626163316231df044273705f696f3a3a73746f726167653a3a65787465726e5f686f73745f66756e6374696f6e5f696d706c733a3a7365743a3a6830366363366538376363316137313137e0045073705f696f3a3a73746f726167653a3a65787465726e5f686f73745f66756e6374696f6e5f696d706c733a3a73746172745f7472616e73616374696f6e3a3a6862343263393537383130346631626337e1044b73705f696f3a3a6f6666636861696e5f696e6465783a3a65787465726e5f686f73745f66756e6374696f6e5f696d706c733a3a636c6561723a3a6837636433393038303034666331316434e2044973705f696f3a3a6f6666636861696e5f696e6465783a3a65787465726e5f686f73745f66756e6374696f6e5f696d706c733a3a7365743a3a6832613733646436323361363630666636e304533c73705f72756e74696d653a3a72756e74696d655f6c6f676765723a3a52756e74696d654c6f67676572206173206c6f673a3a4c6f673e3a3a656e61626c65643a3a6839666230313735633266363431616165e4044f3c73705f72756e74696d653a3a72756e74696d655f6c6f676765723a3a52756e74696d654c6f67676572206173206c6f673a3a4c6f673e3a3a6c6f673a3a6832613666313566373266636435393838e5043a3c266d7574205720617320636f72653a3a666d743a3a57726974653e3a3a77726974655f7374723a3a6864336531323563623934326332663332e6043a3c266d7574205720617320636f72653a3a666d743a3a57726974653e3a3a77726974655f666d743a3a6835353665646366393938373039333936e704aa02616c6c6f633a3a636f6c6c656374696f6e733a3a62747265653a3a72656d6f76653a3a3c696d706c20616c6c6f633a3a636f6c6c656374696f6e733a3a62747265653a3a6e6f64653a3a48616e646c653c616c6c6f633a3a636f6c6c656374696f6e733a3a62747265653a3a6e6f64653a3a4e6f64655265663c616c6c6f633a3a636f6c6c656374696f6e733a3a62747265653a3a6e6f64653a3a6d61726b65723a3a4d75742c4b2c562c616c6c6f633a3a636f6c6c656374696f6e733a3a62747265653a3a6e6f64653a3a6d61726b65723a3a4c6561663e2c616c6c6f633a3a636f6c6c656374696f6e733a3a62747265653a3a6e6f64653a3a6d61726b65723a3a4b563e3e3a3a72656d6f76655f6c6561665f6b763a3a6834313863323165663033383532336339e80464616c6c6f633a3a636f6c6c656374696f6e733a3a62747265653a3a6e6f64653a3a42616c616e63696e67436f6e746578743c4b2c563e3a3a6d657267655f747261636b696e675f6368696c645f656467653a3a6862353465656538363436376535376331e9045a616c6c6f633a3a636f6c6c656374696f6e733a3a62747265653a3a6e6f64653a3a42616c616e63696e67436f6e746578743c4b2c563e3a3a62756c6b5f737465616c5f6c6566743a3a6861623038323664663333326432363139ea045b616c6c6f633a3a636f6c6c656374696f6e733a3a62747265653a3a6e6f64653a3a42616c616e63696e67436f6e746578743c4b2c563e3a3a62756c6b5f737465616c5f72696768743a3a6866393439646337366165336631386233eb0460616c6c6f633a3a636f6c6c656374696f6e733a3a62747265653a3a6e6f64653a3a42616c616e63696e67436f6e746578743c4b2c563e3a3a6d657267655f747261636b696e675f706172656e743a3a6862343435663836366533306234656461ec04aa02616c6c6f633a3a636f6c6c656374696f6e733a3a62747265653a3a72656d6f76653a3a3c696d706c20616c6c6f633a3a636f6c6c656374696f6e733a3a62747265653a3a6e6f64653a3a48616e646c653c616c6c6f633a3a636f6c6c656374696f6e733a3a62747265653a3a6e6f64653a3a4e6f64655265663c616c6c6f633a3a636f6c6c656374696f6e733a3a62747265653a3a6e6f64653a3a6d61726b65723a3a4d75742c4b2c562c616c6c6f633a3a636f6c6c656374696f6e733a3a62747265653a3a6e6f64653a3a6d61726b65723a3a4c6561663e2c616c6c6f633a3a636f6c6c656374696f6e733a3a62747265653a3a6e6f64653a3a6d61726b65723a3a4b563e3e3a3a72656d6f76655f6c6561665f6b763a3a6830633561626338366632383335626136ed0464616c6c6f633a3a636f6c6c656374696f6e733a3a62747265653a3a6e6f64653a3a42616c616e63696e67436f6e746578743c4b2c563e3a3a6d657267655f747261636b696e675f6368696c645f656467653a3a6866626136626332653265363235313737ee045a616c6c6f633a3a636f6c6c656374696f6e733a3a62747265653a3a6e6f64653a3a42616c616e63696e67436f6e746578743c4b2c563e3a3a62756c6b5f737465616c5f6c6566743a3a6864643966373737643537393636326234ef045b616c6c6f633a3a636f6c6c656374696f6e733a3a62747265653a3a6e6f64653a3a42616c616e63696e67436f6e746578743c4b2c563e3a3a62756c6b5f737465616c5f72696768743a3a6833323936636534346135643932316538f00460616c6c6f633a3a636f6c6c656374696f6e733a3a62747265653a3a6e6f64653a3a42616c616e63696e67436f6e746578743c4b2c563e3a3a6d657267655f747261636b696e675f706172656e743a3a6861333333616631383038363565653463f104ba01616c6c6f633a3a636f6c6c656374696f6e733a3a62747265653a3a7365617263683a3a3c696d706c20616c6c6f633a3a636f6c6c656374696f6e733a3a62747265653a3a6e6f64653a3a4e6f64655265663c426f72726f77547970652c4b2c562c616c6c6f633a3a636f6c6c656374696f6e733a3a62747265653a3a6e6f64653a3a6d61726b65723a3a4c6561664f72496e7465726e616c3e3e3a3a7365617263685f747265653a3a6833393064323636373564316338646663f2046e3c616c6c6f633a3a636f6c6c656374696f6e733a3a62747265653a3a6d61703a3a42547265654d61703c4b2c563e20617320636f72653a3a636c6f6e653a3a436c6f6e653e3a3a636c6f6e653a3a636c6f6e655f737562747265653a3a6839306235643433663438613564643364f30446616c6c6f633a3a636f6c6c656374696f6e733a3a62747265653a3a7365743a3a42547265655365743c543e3a3a696e736572743a3a6832623136316138366564643438376463f4046773705f73746174655f6d616368696e653a3a6f7665726c617965645f6368616e6765733a3a6368616e67657365743a3a4f7665726c617965644d61703c4b2c563e3a3a636c6f73655f7472616e73616374696f6e3a3a6838316564363663363163303466613866f5046f3c73705f73746174655f6d616368696e653a3a6f7665726c617965645f6368616e6765733a3a6368616e67657365743a3a4e6f4f70656e5472616e73616374696f6e20617320636f72653a3a666d743a3a44656275673e3a3a666d743a3a6839393062613539356334303738366330f6046773705f73746174655f6d616368696e653a3a6f7665726c617965645f6368616e6765733a3a6368616e67657365743a3a4f7665726c617965644d61703c4b2c563e3a3a636c6f73655f7472616e73616374696f6e3a3a6835306464383261356237333036346132f7046e3c73705f73746174655f6d616368696e653a3a6f7665726c617965645f6368616e6765733a3a6368616e67657365743a3a416c7265616479496e52756e74696d6520617320636f72653a3a666d743a3a44656275673e3a3a666d743a3a6839633431386138396131646333396662f8044c3c73705f73746174655f6d616368696e653a3a44656661756c744572726f7220617320636f72653a3a666d743a3a44656275673e3a3a666d743a3a6839353362366335636161383664346438f90439747269655f64623a3a6e6962626c653a3a6e6962626c655f6f70733a3a73686966745f6b65793a3a6836323266313733343737643339613130fa044478636d3a3a76303a3a6d756c74695f6c6f636174696f6e3a3a4d756c74694c6f636174696f6e3a3a74616b655f6c6173743a3a6831626337353231633337353332366463fb044778636d3a3a76303a3a6d756c74695f6c6f636174696f6e3a3a4d756c74694c6f636174696f6e3a3a706172656e745f636f756e743a3a6865386133306562386264666663373765fc0464616c6c6f633a3a636f6c6c656374696f6e733a3a62747265653a3a6e6f64653a3a42616c616e63696e67436f6e746578743c4b2c563e3a3a6d657267655f747261636b696e675f6368696c645f656467653a3a6863323861633434663635353935323132fd045a616c6c6f633a3a636f6c6c656374696f6e733a3a62747265653a3a6e6f64653a3a42616c616e63696e67436f6e746578743c4b2c563e3a3a62756c6b5f737465616c5f6c6566743a3a6831646565613831336165346363313562fe04aa02616c6c6f633a3a636f6c6c656374696f6e733a3a62747265653a3a72656d6f76653a3a3c696d706c20616c6c6f633a3a636f6c6c656374696f6e733a3a62747265653a3a6e6f64653a3a48616e646c653c616c6c6f633a3a636f6c6c656374696f6e733a3a62747265653a3a6e6f64653a3a4e6f64655265663c616c6c6f633a3a636f6c6c656374696f6e733a3a62747265653a3a6e6f64653a3a6d61726b65723a3a4d75742c4b2c562c616c6c6f633a3a636f6c6c656374696f6e733a3a62747265653a3a6e6f64653a3a6d61726b65723a3a4c6561663e2c616c6c6f633a3a636f6c6c656374696f6e733a3a62747265653a3a6e6f64653a3a6d61726b65723a3a4b563e3e3a3a72656d6f76655f6c6561665f6b763a3a6866323834643231653432363761303565ff04ba01616c6c6f633a3a636f6c6c656374696f6e733a3a62747265653a3a7365617263683a3a3c696d706c20616c6c6f633a3a636f6c6c656374696f6e733a3a62747265653a3a6e6f64653a3a4e6f64655265663c426f72726f77547970652c4b2c562c616c6c6f633a3a636f6c6c656374696f6e733a3a62747265653a3a6e6f64653a3a6d61726b65723a3a4c6561664f72496e7465726e616c3e3e3a3a7365617263685f747265653a3a686237306635613461623737643366303380054278636d5f6578656375746f723a3a6173736574733a3a417373657449643a3a70726570656e645f6c6f636174696f6e3a3a686336633265373764613739316331346281054a636f72653a3a7074723a3a64726f705f696e5f706c6163653c78636d5f6578656375746f723a3a6173736574733a3a417373657449643e3a3a6837373566333563626334623630313436820552616c6c6f633a3a636f6c6c656374696f6e733a3a62747265653a3a6d61703a3a656e7472793a3a566163616e74456e7472793c4b2c563e3a3a696e736572743a3a68616238393164666666353031633736638305095f5f6c7368727469338405085f5f6d756c7469338505066d656d6370798605076d656d6d6f76658705066d656d73657488050462636d708905095f5f6173686c74693300550970726f64756365727302086c616e6775616765010452757374000c70726f6365737365642d62790105727573746325312e35322e302d6e696768746c79202864366561656131633820323032312d30332d313429", + "0x0d715f2646c8f85767b5d2764bb27826878d434d6125b40443fe11fd292d13a4": "0x00000100", + "0x45323df7cc47150b3930e2666b0aa313878d434d6125b40443fe11fd292d13a4": "0x00000100", + "0x26aa394eea5630e07c48ae0c9558cef7a7fd6c28836b9a28522dc924110cf439": "0x01", + "0x3a65787472696e7369635f696e646578": "0x00000000", + "0x79e2fe5d327165001f8232643023ed8b878d434d6125b40443fe11fd292d13a4": "0x00000100" + }, + "childrenDefault": {} + } + } +} \ No newline at end of file diff --git a/cumulus/parachains/chain-specs/asset-hub-polkadot-genesis-values.json b/cumulus/parachains/chain-specs/asset-hub-polkadot-genesis-values.json new file mode 100644 index 000000000000..0325288dfeb9 --- /dev/null +++ b/cumulus/parachains/chain-specs/asset-hub-polkadot-genesis-values.json @@ -0,0 +1 @@ +[["0x15464cac3378d46f113cd5b7a4d71c84476f594316a7dfe49c1f352d95abdaf1","0x00000000"],["0x15464cac3378d46f113cd5b7a4d71c844e7b9012096b41c4eb3aaf947f6ea429","0x0000"],["0x15464cac3378d46f113cd5b7a4d71c845579297f4dfb9609e7e4c2ebab9ce40a","0x104c3d674d2a01060f0ded218e5dcc6f90c1726f43df79885eb3e22d97a20d5421c7d7d38d16bc23c6321152c50306212dc22c0efc04a2e52b5cccfc31ab3d7811c5c07ba203d7375675f5c1ebe70f0a5bb729ae57b48bcc877fcc2ab21309b7620b2d0013fb974794bd7aa452465b567d48ef70373fe231a637c1fb7c547e85b3"],["0x15464cac3378d46f113cd5b7a4d71c84579f5a43435b04a98d64da0cefe18505","0x00a0acb9030000000000000000000000"],["0x1809d78346727a0ef58c0fa03bafa3234e7b9012096b41c4eb3aaf947f6ea429","0x0000"],["0x267ada16405529c2f7ef2727d71edbde4e7b9012096b41c4eb3aaf947f6ea429","0x0000"],["0x3a63","0x"],["0x3c311d57d4daf52904616cf69648081e4e7b9012096b41c4eb3aaf947f6ea429","0x0000"],["0x3c311d57d4daf52904616cf69648081e5e0621c4869aa60c02be9adcc98a0d1d","0x104c3d674d2a01060f0ded218e5dcc6f90c1726f43df79885eb3e22d97a20d5421c7d7d38d16bc23c6321152c50306212dc22c0efc04a2e52b5cccfc31ab3d7811c5c07ba203d7375675f5c1ebe70f0a5bb729ae57b48bcc877fcc2ab21309b7620b2d0013fb974794bd7aa452465b567d48ef70373fe231a637c1fb7c547e85b3"],["0x3f1467a096bcd71a5b6a0c8155e208104e7b9012096b41c4eb3aaf947f6ea429","0x0000"],["0x57f8dc2f5ab09467896f47300f0424384e7b9012096b41c4eb3aaf947f6ea429","0x0000"],["0x57f8dc2f5ab09467896f47300f0424385e0621c4869aa60c02be9adcc98a0d1d","0x104c3d674d2a01060f0ded218e5dcc6f90c1726f43df79885eb3e22d97a20d5421c7d7d38d16bc23c6321152c50306212dc22c0efc04a2e52b5cccfc31ab3d7811c5c07ba203d7375675f5c1ebe70f0a5bb729ae57b48bcc877fcc2ab21309b7620b2d0013fb974794bd7aa452465b567d48ef70373fe231a637c1fb7c547e85b3"],["0x5e8a19e3cd1b7c148b33880c479c02814e7b9012096b41c4eb3aaf947f6ea429","0x0000"],["0x682a59d51ab9e48a8c8cc418ff9708d24e7b9012096b41c4eb3aaf947f6ea429","0x0000"],["0x7474449cca95dc5d0c00e71735a6d17d4e7b9012096b41c4eb3aaf947f6ea429","0x0000"],["0x7b3237373ffdfeb1cab4222e3b520d6b4e7b9012096b41c4eb3aaf947f6ea429","0x0000"],["0xc2261276cc9d1f8598ea4b6a74b15c2f308ce9615de0775a82f8a94dc3d285a1","0x01"],["0xc2261276cc9d1f8598ea4b6a74b15c2f4e7b9012096b41c4eb3aaf947f6ea429","0x0000"],["0xc2261276cc9d1f8598ea4b6a74b15c2f57c875e4cff74148e4628f264b974c80","0x00000000000000000000000000000000"],["0xcd5c1f6df63bc97f4a8ce37f14a50ca74e7b9012096b41c4eb3aaf947f6ea429","0x0000"],["0xcec5070d609dd3497f72bde07fc96ba04c014e6bf8b8c2c011e7290b85696bb30b1aeeca675702f24c3d674d2a01060f0ded218e5dcc6f90c1726f43df79885eb3e22d97a20d5421","0x4c3d674d2a01060f0ded218e5dcc6f90c1726f43df79885eb3e22d97a20d5421"],["0xcec5070d609dd3497f72bde07fc96ba04c014e6bf8b8c2c011e7290b85696bb314f6a7e973c2c34dc5c07ba203d7375675f5c1ebe70f0a5bb729ae57b48bcc877fcc2ab21309b762","0xc5c07ba203d7375675f5c1ebe70f0a5bb729ae57b48bcc877fcc2ab21309b762"],["0xcec5070d609dd3497f72bde07fc96ba04c014e6bf8b8c2c011e7290b85696bb34cb6fa5260704ee40b2d0013fb974794bd7aa452465b567d48ef70373fe231a637c1fb7c547e85b3","0x0b2d0013fb974794bd7aa452465b567d48ef70373fe231a637c1fb7c547e85b3"],["0xcec5070d609dd3497f72bde07fc96ba04c014e6bf8b8c2c011e7290b85696bb35242002c980f9df1c7d7d38d16bc23c6321152c50306212dc22c0efc04a2e52b5cccfc31ab3d7811","0xc7d7d38d16bc23c6321152c50306212dc22c0efc04a2e52b5cccfc31ab3d7811"],["0xcec5070d609dd3497f72bde07fc96ba04e7b9012096b41c4eb3aaf947f6ea429","0x0000"],["0xcec5070d609dd3497f72bde07fc96ba0726380404683fc89e8233450c8aa19502fe5f80e8854f64761757261804c3d674d2a01060f0ded218e5dcc6f90c1726f43df79885eb3e22d97a20d5421","0x4c3d674d2a01060f0ded218e5dcc6f90c1726f43df79885eb3e22d97a20d5421"],["0xcec5070d609dd3497f72bde07fc96ba0726380404683fc89e8233450c8aa1950a3f059d7e690a34f6175726180c7d7d38d16bc23c6321152c50306212dc22c0efc04a2e52b5cccfc31ab3d7811","0xc7d7d38d16bc23c6321152c50306212dc22c0efc04a2e52b5cccfc31ab3d7811"],["0xcec5070d609dd3497f72bde07fc96ba0726380404683fc89e8233450c8aa1950c41649dd3c9d26696175726180c5c07ba203d7375675f5c1ebe70f0a5bb729ae57b48bcc877fcc2ab21309b762","0xc5c07ba203d7375675f5c1ebe70f0a5bb729ae57b48bcc877fcc2ab21309b762"],["0xcec5070d609dd3497f72bde07fc96ba0726380404683fc89e8233450c8aa1950fa571e62466b970561757261800b2d0013fb974794bd7aa452465b567d48ef70373fe231a637c1fb7c547e85b3","0x0b2d0013fb974794bd7aa452465b567d48ef70373fe231a637c1fb7c547e85b3"],["0xcec5070d609dd3497f72bde07fc96ba088dcde934c658227ee1dfafcd6e16903","0x104c3d674d2a01060f0ded218e5dcc6f90c1726f43df79885eb3e22d97a20d5421c7d7d38d16bc23c6321152c50306212dc22c0efc04a2e52b5cccfc31ab3d7811c5c07ba203d7375675f5c1ebe70f0a5bb729ae57b48bcc877fcc2ab21309b7620b2d0013fb974794bd7aa452465b567d48ef70373fe231a637c1fb7c547e85b3"],["0xcec5070d609dd3497f72bde07fc96ba0e0cdd062e6eaf24295ad4ccfc41d4609","0x104c3d674d2a01060f0ded218e5dcc6f90c1726f43df79885eb3e22d97a20d54214c3d674d2a01060f0ded218e5dcc6f90c1726f43df79885eb3e22d97a20d5421c7d7d38d16bc23c6321152c50306212dc22c0efc04a2e52b5cccfc31ab3d7811c7d7d38d16bc23c6321152c50306212dc22c0efc04a2e52b5cccfc31ab3d7811c5c07ba203d7375675f5c1ebe70f0a5bb729ae57b48bcc877fcc2ab21309b762c5c07ba203d7375675f5c1ebe70f0a5bb729ae57b48bcc877fcc2ab21309b7620b2d0013fb974794bd7aa452465b567d48ef70373fe231a637c1fb7c547e85b30b2d0013fb974794bd7aa452465b567d48ef70373fe231a637c1fb7c547e85b3"],["0xd57bce545fb382c34570e5dfbf338f5e4e7b9012096b41c4eb3aaf947f6ea429","0x0000"],["0xd5e1a2fa16732ce6906189438c0a82c64e7b9012096b41c4eb3aaf947f6ea429","0x0000"],["0xe38f185207498abb5c213d0fb059b3d84e7b9012096b41c4eb3aaf947f6ea429","0x0000"],["0xe38f185207498abb5c213d0fb059b3d86323ae84c43568be0d1394d5d0d522c4","0x02000000"],["0xf0c365c3cf59d671eb72da0e7a4113c44e7b9012096b41c4eb3aaf947f6ea429","0x0000"]] \ No newline at end of file diff --git a/cumulus/parachains/chain-specs/asset-hub-polkadot-genesis-values.scale b/cumulus/parachains/chain-specs/asset-hub-polkadot-genesis-values.scale new file mode 100644 index 000000000000..bea223edb330 --- /dev/null +++ b/cumulus/parachains/chain-specs/asset-hub-polkadot-genesis-values.scale @@ -0,0 +1 @@ +0x0006908015464cac3378d46f113cd5b7a4d71c84476f594316a7dfe49c1f352d95abdaf110000000008015464cac3378d46f113cd5b7a4d71c844e7b9012096b41c4eb3aaf947f6ea4290800008015464cac3378d46f113cd5b7a4d71c845579297f4dfb9609e7e4c2ebab9ce40a0502104c3d674d2a01060f0ded218e5dcc6f90c1726f43df79885eb3e22d97a20d5421c7d7d38d16bc23c6321152c50306212dc22c0efc04a2e52b5cccfc31ab3d7811c5c07ba203d7375675f5c1ebe70f0a5bb729ae57b48bcc877fcc2ab21309b7620b2d0013fb974794bd7aa452465b567d48ef70373fe231a637c1fb7c547e85b38015464cac3378d46f113cd5b7a4d71c84579f5a43435b04a98d64da0cefe185054000a0acb9030000000000000000000000801809d78346727a0ef58c0fa03bafa3234e7b9012096b41c4eb3aaf947f6ea42908000080267ada16405529c2f7ef2727d71edbde4e7b9012096b41c4eb3aaf947f6ea429080000083a6300803c311d57d4daf52904616cf69648081e4e7b9012096b41c4eb3aaf947f6ea429080000803c311d57d4daf52904616cf69648081e5e0621c4869aa60c02be9adcc98a0d1d0502104c3d674d2a01060f0ded218e5dcc6f90c1726f43df79885eb3e22d97a20d5421c7d7d38d16bc23c6321152c50306212dc22c0efc04a2e52b5cccfc31ab3d7811c5c07ba203d7375675f5c1ebe70f0a5bb729ae57b48bcc877fcc2ab21309b7620b2d0013fb974794bd7aa452465b567d48ef70373fe231a637c1fb7c547e85b3803f1467a096bcd71a5b6a0c8155e208104e7b9012096b41c4eb3aaf947f6ea4290800008057f8dc2f5ab09467896f47300f0424384e7b9012096b41c4eb3aaf947f6ea4290800008057f8dc2f5ab09467896f47300f0424385e0621c4869aa60c02be9adcc98a0d1d0502104c3d674d2a01060f0ded218e5dcc6f90c1726f43df79885eb3e22d97a20d5421c7d7d38d16bc23c6321152c50306212dc22c0efc04a2e52b5cccfc31ab3d7811c5c07ba203d7375675f5c1ebe70f0a5bb729ae57b48bcc877fcc2ab21309b7620b2d0013fb974794bd7aa452465b567d48ef70373fe231a637c1fb7c547e85b3805e8a19e3cd1b7c148b33880c479c02814e7b9012096b41c4eb3aaf947f6ea42908000080682a59d51ab9e48a8c8cc418ff9708d24e7b9012096b41c4eb3aaf947f6ea429080000807474449cca95dc5d0c00e71735a6d17d4e7b9012096b41c4eb3aaf947f6ea429080000807b3237373ffdfeb1cab4222e3b520d6b4e7b9012096b41c4eb3aaf947f6ea42908000080c2261276cc9d1f8598ea4b6a74b15c2f308ce9615de0775a82f8a94dc3d285a1040180c2261276cc9d1f8598ea4b6a74b15c2f4e7b9012096b41c4eb3aaf947f6ea42908000080c2261276cc9d1f8598ea4b6a74b15c2f57c875e4cff74148e4628f264b974c80400000000000000000000000000000000080cd5c1f6df63bc97f4a8ce37f14a50ca74e7b9012096b41c4eb3aaf947f6ea4290800002101cec5070d609dd3497f72bde07fc96ba04c014e6bf8b8c2c011e7290b85696bb30b1aeeca675702f24c3d674d2a01060f0ded218e5dcc6f90c1726f43df79885eb3e22d97a20d5421804c3d674d2a01060f0ded218e5dcc6f90c1726f43df79885eb3e22d97a20d54212101cec5070d609dd3497f72bde07fc96ba04c014e6bf8b8c2c011e7290b85696bb314f6a7e973c2c34dc5c07ba203d7375675f5c1ebe70f0a5bb729ae57b48bcc877fcc2ab21309b76280c5c07ba203d7375675f5c1ebe70f0a5bb729ae57b48bcc877fcc2ab21309b7622101cec5070d609dd3497f72bde07fc96ba04c014e6bf8b8c2c011e7290b85696bb34cb6fa5260704ee40b2d0013fb974794bd7aa452465b567d48ef70373fe231a637c1fb7c547e85b3800b2d0013fb974794bd7aa452465b567d48ef70373fe231a637c1fb7c547e85b32101cec5070d609dd3497f72bde07fc96ba04c014e6bf8b8c2c011e7290b85696bb35242002c980f9df1c7d7d38d16bc23c6321152c50306212dc22c0efc04a2e52b5cccfc31ab3d781180c7d7d38d16bc23c6321152c50306212dc22c0efc04a2e52b5cccfc31ab3d781180cec5070d609dd3497f72bde07fc96ba04e7b9012096b41c4eb3aaf947f6ea4290800003501cec5070d609dd3497f72bde07fc96ba0726380404683fc89e8233450c8aa19502fe5f80e8854f64761757261804c3d674d2a01060f0ded218e5dcc6f90c1726f43df79885eb3e22d97a20d5421804c3d674d2a01060f0ded218e5dcc6f90c1726f43df79885eb3e22d97a20d54213501cec5070d609dd3497f72bde07fc96ba0726380404683fc89e8233450c8aa1950a3f059d7e690a34f6175726180c7d7d38d16bc23c6321152c50306212dc22c0efc04a2e52b5cccfc31ab3d781180c7d7d38d16bc23c6321152c50306212dc22c0efc04a2e52b5cccfc31ab3d78113501cec5070d609dd3497f72bde07fc96ba0726380404683fc89e8233450c8aa1950c41649dd3c9d26696175726180c5c07ba203d7375675f5c1ebe70f0a5bb729ae57b48bcc877fcc2ab21309b76280c5c07ba203d7375675f5c1ebe70f0a5bb729ae57b48bcc877fcc2ab21309b7623501cec5070d609dd3497f72bde07fc96ba0726380404683fc89e8233450c8aa1950fa571e62466b970561757261800b2d0013fb974794bd7aa452465b567d48ef70373fe231a637c1fb7c547e85b3800b2d0013fb974794bd7aa452465b567d48ef70373fe231a637c1fb7c547e85b380cec5070d609dd3497f72bde07fc96ba088dcde934c658227ee1dfafcd6e169030502104c3d674d2a01060f0ded218e5dcc6f90c1726f43df79885eb3e22d97a20d5421c7d7d38d16bc23c6321152c50306212dc22c0efc04a2e52b5cccfc31ab3d7811c5c07ba203d7375675f5c1ebe70f0a5bb729ae57b48bcc877fcc2ab21309b7620b2d0013fb974794bd7aa452465b567d48ef70373fe231a637c1fb7c547e85b380cec5070d609dd3497f72bde07fc96ba0e0cdd062e6eaf24295ad4ccfc41d46090504104c3d674d2a01060f0ded218e5dcc6f90c1726f43df79885eb3e22d97a20d54214c3d674d2a01060f0ded218e5dcc6f90c1726f43df79885eb3e22d97a20d5421c7d7d38d16bc23c6321152c50306212dc22c0efc04a2e52b5cccfc31ab3d7811c7d7d38d16bc23c6321152c50306212dc22c0efc04a2e52b5cccfc31ab3d7811c5c07ba203d7375675f5c1ebe70f0a5bb729ae57b48bcc877fcc2ab21309b762c5c07ba203d7375675f5c1ebe70f0a5bb729ae57b48bcc877fcc2ab21309b7620b2d0013fb974794bd7aa452465b567d48ef70373fe231a637c1fb7c547e85b30b2d0013fb974794bd7aa452465b567d48ef70373fe231a637c1fb7c547e85b380d57bce545fb382c34570e5dfbf338f5e4e7b9012096b41c4eb3aaf947f6ea42908000080d5e1a2fa16732ce6906189438c0a82c64e7b9012096b41c4eb3aaf947f6ea42908000080e38f185207498abb5c213d0fb059b3d84e7b9012096b41c4eb3aaf947f6ea42908000080e38f185207498abb5c213d0fb059b3d86323ae84c43568be0d1394d5d0d522c4100200000080f0c365c3cf59d671eb72da0e7a4113c44e7b9012096b41c4eb3aaf947f6ea429080000 \ No newline at end of file diff --git a/cumulus/parachains/chain-specs/asset-hub-polkadot-genesis.json b/cumulus/parachains/chain-specs/asset-hub-polkadot-genesis.json new file mode 100644 index 000000000000..fff9bbe1ea14 --- /dev/null +++ b/cumulus/parachains/chain-specs/asset-hub-polkadot-genesis.json @@ -0,0 +1,82 @@ +{ + "name": "Polkadot Asset Hub", + "id": "asset-hub-polkadot", + "chainType": "Live", + "bootNodes": [ + "/ip4/34.65.251.121/tcp/30334/p2p/12D3KooWG3GrM6XKMM4gp3cvemdwUvu96ziYoJmqmetLZBXE8bSa", + "/ip4/34.65.35.228/tcp/30334/p2p/12D3KooWMRyTLrCEPcAQD6c4EnudL3vVzg9zji3whvsMYPUYevpq", + "/ip4/34.83.247.146/tcp/30334/p2p/12D3KooWE4jFh5FpJDkWVZhnWtFnbSqRhdjvC7Dp9b8b3FTuubQC", + "/ip4/104.199.117.230/tcp/30334/p2p/12D3KooWG9R8pVXKumVo2rdkeVD4j5PVhRTqmYgLHY3a4yPYgLqM" + ], + "telemetryEndpoints": null, + "protocolId": null, + "properties": { + "ss58Format": 0, + "tokenDecimals": 10, + "tokenSymbol": "DOT" + }, + "relay_chain": "polkadot", + "para_id": 1000, + "consensusEngine": null, + "codeSubstitutes": {}, + "genesis": { + "raw": { + "top": { + "0x26aa394eea5630e07c48ae0c9558cef75684a022a34dd8bfa2baaf44f172b710": "0x01", + "0x26aa394eea5630e07c48ae0c9558cef7b99d880ec681799c0cf30e8886371da934fe21438e43955d2917f11ffd2f74d24c3d674d2a01060f0ded218e5dcc6f90c1726f43df79885eb3e22d97a20d5421": "0x0000000000000000010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "0x3a63": "0x", + "0x57f8dc2f5ab09467896f47300f0424384e7b9012096b41c4eb3aaf947f6ea429": "0x0000", + "0xe38f185207498abb5c213d0fb059b3d86323ae84c43568be0d1394d5d0d522c4": "0x02000000", + "0xcec5070d609dd3497f72bde07fc96ba0726380404683fc89e8233450c8aa1950c41649dd3c9d26696175726180c5c07ba203d7375675f5c1ebe70f0a5bb729ae57b48bcc877fcc2ab21309b762": "0xc5c07ba203d7375675f5c1ebe70f0a5bb729ae57b48bcc877fcc2ab21309b762", + "0x26aa394eea5630e07c48ae0c9558cef734abf5cb34d6244378cddbf18e849d96": "0x000000000000000000000000000000000000000000000000", + "0x26aa394eea5630e07c48ae0c9558cef74e7b9012096b41c4eb3aaf947f6ea429": "0x0000", + "0x15464cac3378d46f113cd5b7a4d71c845579297f4dfb9609e7e4c2ebab9ce40a": "0x104c3d674d2a01060f0ded218e5dcc6f90c1726f43df79885eb3e22d97a20d5421c7d7d38d16bc23c6321152c50306212dc22c0efc04a2e52b5cccfc31ab3d7811c5c07ba203d7375675f5c1ebe70f0a5bb729ae57b48bcc877fcc2ab21309b7620b2d0013fb974794bd7aa452465b567d48ef70373fe231a637c1fb7c547e85b3", + "0x3a65787472696e7369635f696e646578": "0x00000000", + "0x3f1467a096bcd71a5b6a0c8155e208104e7b9012096b41c4eb3aaf947f6ea429": "0x0000", + "0xcec5070d609dd3497f72bde07fc96ba04c014e6bf8b8c2c011e7290b85696bb30b1aeeca675702f24c3d674d2a01060f0ded218e5dcc6f90c1726f43df79885eb3e22d97a20d5421": "0x4c3d674d2a01060f0ded218e5dcc6f90c1726f43df79885eb3e22d97a20d5421", + "0xcec5070d609dd3497f72bde07fc96ba0726380404683fc89e8233450c8aa1950a3f059d7e690a34f6175726180c7d7d38d16bc23c6321152c50306212dc22c0efc04a2e52b5cccfc31ab3d7811": "0xc7d7d38d16bc23c6321152c50306212dc22c0efc04a2e52b5cccfc31ab3d7811", + "0x15464cac3378d46f113cd5b7a4d71c84476f594316a7dfe49c1f352d95abdaf1": "0x00000000", + "0xf0c365c3cf59d671eb72da0e7a4113c44e7b9012096b41c4eb3aaf947f6ea429": "0x0000", + "0x3c311d57d4daf52904616cf69648081e4e7b9012096b41c4eb3aaf947f6ea429": "0x0000", + "0x7474449cca95dc5d0c00e71735a6d17d4e7b9012096b41c4eb3aaf947f6ea429": "0x0000", + "0x1809d78346727a0ef58c0fa03bafa3234e7b9012096b41c4eb3aaf947f6ea429": "0x0000", + "0x0d715f2646c8f85767b5d2764bb278264e7b9012096b41c4eb3aaf947f6ea429": "0x0000", + "0x26aa394eea5630e07c48ae0c9558cef78a42f33323cb5ced3b44dd825fda9fcc": "0x4545454545454545454545454545454545454545454545454545454545454545", + "0x26aa394eea5630e07c48ae0c9558cef7b99d880ec681799c0cf30e8886371da905f2cada6eda1538ae80ad25967fae940b2d0013fb974794bd7aa452465b567d48ef70373fe231a637c1fb7c547e85b3": "0x0000000000000000010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "0x26aa394eea5630e07c48ae0c9558cef7b99d880ec681799c0cf30e8886371da974ba036f69b844c7eca06cadee15075fc7d7d38d16bc23c6321152c50306212dc22c0efc04a2e52b5cccfc31ab3d7811": "0x0000000000000000010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "0x79e2fe5d327165001f8232643023ed8b4e7b9012096b41c4eb3aaf947f6ea429": "0x0000", + "0x15464cac3378d46f113cd5b7a4d71c844e7b9012096b41c4eb3aaf947f6ea429": "0x0000", + "0x26aa394eea5630e07c48ae0c9558cef7f9cce9c888469bb1a0dceaa129672ef8": "0x65092473746174656d696e74", + "0xcec5070d609dd3497f72bde07fc96ba04c014e6bf8b8c2c011e7290b85696bb35242002c980f9df1c7d7d38d16bc23c6321152c50306212dc22c0efc04a2e52b5cccfc31ab3d7811": "0xc7d7d38d16bc23c6321152c50306212dc22c0efc04a2e52b5cccfc31ab3d7811", + "0xcec5070d609dd3497f72bde07fc96ba04c014e6bf8b8c2c011e7290b85696bb314f6a7e973c2c34dc5c07ba203d7375675f5c1ebe70f0a5bb729ae57b48bcc877fcc2ab21309b762": "0xc5c07ba203d7375675f5c1ebe70f0a5bb729ae57b48bcc877fcc2ab21309b762", + "0x15464cac3378d46f113cd5b7a4d71c84579f5a43435b04a98d64da0cefe18505": "0x00a0acb9030000000000000000000000", + "0x45323df7cc47150b3930e2666b0aa3134e7b9012096b41c4eb3aaf947f6ea429": "0x0100", + "0xc2261276cc9d1f8598ea4b6a74b15c2f57c875e4cff74148e4628f264b974c80": "0x00000000000000000000000000000000", + "0xc2261276cc9d1f8598ea4b6a74b15c2f308ce9615de0775a82f8a94dc3d285a1": "0x01", + "0xcec5070d609dd3497f72bde07fc96ba04e7b9012096b41c4eb3aaf947f6ea429": "0x0000", + "0xcec5070d609dd3497f72bde07fc96ba088dcde934c658227ee1dfafcd6e16903": "0x104c3d674d2a01060f0ded218e5dcc6f90c1726f43df79885eb3e22d97a20d5421c7d7d38d16bc23c6321152c50306212dc22c0efc04a2e52b5cccfc31ab3d7811c5c07ba203d7375675f5c1ebe70f0a5bb729ae57b48bcc877fcc2ab21309b7620b2d0013fb974794bd7aa452465b567d48ef70373fe231a637c1fb7c547e85b3", + "0xcd5c1f6df63bc97f4a8ce37f14a50ca74e7b9012096b41c4eb3aaf947f6ea429": "0x0000", + "0xcec5070d609dd3497f72bde07fc96ba0726380404683fc89e8233450c8aa1950fa571e62466b970561757261800b2d0013fb974794bd7aa452465b567d48ef70373fe231a637c1fb7c547e85b3": "0x0b2d0013fb974794bd7aa452465b567d48ef70373fe231a637c1fb7c547e85b3", + "0xcec5070d609dd3497f72bde07fc96ba04c014e6bf8b8c2c011e7290b85696bb34cb6fa5260704ee40b2d0013fb974794bd7aa452465b567d48ef70373fe231a637c1fb7c547e85b3": "0x0b2d0013fb974794bd7aa452465b567d48ef70373fe231a637c1fb7c547e85b3", + "0x0d715f2646c8f85767b5d2764bb2782604a74d81251e398fd8a0a4d55023bb3f": "0xe8030000", + "0x682a59d51ab9e48a8c8cc418ff9708d24e7b9012096b41c4eb3aaf947f6ea429": "0x0000", + "0xc2261276cc9d1f8598ea4b6a74b15c2f4e7b9012096b41c4eb3aaf947f6ea429": "0x0000", + "0xcec5070d609dd3497f72bde07fc96ba0726380404683fc89e8233450c8aa19502fe5f80e8854f64761757261804c3d674d2a01060f0ded218e5dcc6f90c1726f43df79885eb3e22d97a20d5421": "0x4c3d674d2a01060f0ded218e5dcc6f90c1726f43df79885eb3e22d97a20d5421", + "0x57f8dc2f5ab09467896f47300f0424385e0621c4869aa60c02be9adcc98a0d1d": "0x104c3d674d2a01060f0ded218e5dcc6f90c1726f43df79885eb3e22d97a20d5421c7d7d38d16bc23c6321152c50306212dc22c0efc04a2e52b5cccfc31ab3d7811c5c07ba203d7375675f5c1ebe70f0a5bb729ae57b48bcc877fcc2ab21309b7620b2d0013fb974794bd7aa452465b567d48ef70373fe231a637c1fb7c547e85b3", + "0xd57bce545fb382c34570e5dfbf338f5e4e7b9012096b41c4eb3aaf947f6ea429": "0x0000", + "0x3a636f6465": "0x52bc537646db8e0528b52ffd00585c7e041e77c5fb10511050cc281d0a5d5a68f2912d7947b66df0402a93fdc40fd8d34ccf97153632d5506b6f047cb3b14b842c862c8526c60739957875e9fb17988ed9cb8436b4b7bfbdfdc38aeedbb6b6b7245b6e29a54c29057e1102108d103d9dea97524ac73ae523b9a33dd375d0677344ba7c2e9f159fe5d3e37bd1a2720abfe5964bdede176a8b3b9a2e1b305dba505b5c55bdc59b1159ce55f8d1df36b7d7336e47483dccf9beaabea98d11de789eb33fef8de779bbe5743ae56c06a1df15522d679f9b451be3cc48bbe5736b7f47da2dcbe37425f9cf69bc2e4f7a2e7d6e67a4f44b5e5b742991b8e9a7d3b729c97f2eb7daff3cfaabfc6f72bb429e91f8fc68bae5f425619ea4249f7a12d29e61627a259cbf5c09fb93530c730cc3b0337fed0e798e6d95ff615b74ca64fe727ada906278de21d3df56fba7473f15457fdcf4976fb600d55fdcae90e942fdb6ca3fbd3323d127f75ce8bd8d3d6ef4397dd8dbdad908ff73c869279e778c60897e32449a9e76940d740adb2967cb371a6ffc4b033d39b5a1bebef39a0ef4d7b5a1e6fa16e1dfcd7708d0afc723d14f4e4f5b63a72dfa6645278f427ddaf6f9b23833326df8e96644cb375a77974fb79c33a21357557f72a127d4d686da6077ebd746e33685bff214c64edbe571db87f435bf5783f49ec7c8fbe993f31db2ce1fb78b3bb27cfa69db8719d2fce89b35c0f2c96136bb3758edf975d8ad737644fafac908ffec6ee5c6237dbd3031fd009e5a5bb57c3aa59b5d5c55fde5a7adf22f40f5c5ef0a39f974a177dad8e7b64f19dbece290deb7cf7624f8d12b74c921f1474e6571fc816e1a5cb4a4a1628318a40933b419dd4675c7ae75c71ea45567ecd999c8b3b3c3d0a9f8ecdea9256305569edda7837888bfb6f0bccebe3efcdadf368376f45c85afcf4e778b54a08faa38c3e9238dd0ebe3ead23faf1703768e8fdc16e8d177831eb709acd006184d43eb6fab3dfcabd29fa89678cbebd247df7d617785ba2b21c2bc12bfc541d9328ff49a9a5e725b7a585f5255716608724cb5878f5c7d5eaf6f177a6f53e12963705bdfcc029b4696a17d9b0aff9658d5af71d075aa0a97a68ba9de4e96071070d4f9eff97bfe9ebf0744977fefbdf7842e91d6be2b2a5ebe7d625a0b54068d7ddb85f5a57463d076058415ef547b4354a7da7d3a05bf573f9cf976ac83de10fc2ae4bbe7db19280a65e7ad3b9fb681eeb753f6c75e1ffbf3653f7a424d79eb5ffd1499c1cfcefc141c1bda186fefb3291223f353b09a2d92c44c8f14c3b3b76f960432313d1fd198b04eedb753c6768bb0d7caff360368fccfd7372be266778b649b9e775b9f7edc40a0fbdba9dabe0edbd9ebfa76b7dd413780d69ea4fd68b9ed0e728f136a55f303e8c6a041afa88f0ed4a93a8974aa6a5da72ad0478fde42a7de4732b238e3a3f774500fc1f0f1ab908fae75aa3d7a4ea79e478f8e758a3dfafa44ee68574b747d7d2ad03fa7bbf153ce886077ecdb1d7355e93d6cce88983b027db77d4a372b925cf5973e3b5bbe81dd7155e9fd895ad4ba2eae5e7ef2cbc2b45fd73a65f9f39c4e5dfe9c5edb76b7dd61ce59113fec0ee32ae6276c537a7f39e55e7e356b6dfb74db3f5da85f9f2fe88a0f6dffec0ea93dbf5c951efd397dbbfb70abfc53e257263f39a5f8eb9b112df6ed9436b699e4aaeaa5f3b6dbcb966f28cc766fb0ee7cba7b6eb977f77c3322ebc90d561e5ee9bdf4ddb46dbb6be78c4872919bdd699ddaffe770dbf7f9822013131313d3d0f36e8bbc7fee03f49b82eac49108ba07d076e5c31abf2b263406f85df960e5fddb3723a2ad98c87c85df2ed4937dce7d41db3f557bf6aa7d9ddf0e3bb5debe9db27c1d764afafaecd4fe3a95dbbeb5f1d35d417b18674416e78226bd3322e99bcdb02f3d3b62b9e4aae596d3ce8e686ff966b03be89b1145979be59b3dbad9c9e756e7e5a72d89f48bab6ccd0a8f2edfdf8ce8723ab72ac34ba79b4daece9f2eb7baab976e6dd59a41490d4c70d061bb932ef4e67684f49a9a9ad0fcf47d6bdb975b85e1a153c6e6063d099197d78664fde42aff94f792ab3cbc74ca98b5ed6f2639a5f791e1b6ddb1bf6dbbab39cfbe3e7d31a44281e868eb2be9768abdce5fdf4eb5afd3def87963c67adb879d8abe4e99b1c84e1b4b69ed3b3555b4e7edd15f461439173476fab0b8f177c6bed973a1de8ca85da82963bcedf7c6bf9903f6d9855aa855cc8c02ba2c68d4667daa1604fbe7f93add1534ce88b6bb3afff96645fcdbdd73a16e41e367e761dfdfeed67990cc6f9fdf1c0f9276e8ed9053e2676ebbabf0d79f6f7684bdb9dace2ed4da6f0aaa6615dd18b4f68afae7cf519d5a7fded329f6e7b08378e8b9d6a9fdb2451eff7c3bb55f73fef9fa3ceec87f53503117d12d80b6ab1f98fee6f78b16287e6fe86e7bd1b8df551962bcf5bb2aa38be75f1dba02d036d27d4157d8ab34f7cea955d1decf73f675d40bba22bd4a94915b5a315cf4a8b2461936f69862e8ca1caad2beb462b8e851658d326cec31c55015d4fb79cedc15d45015f6e696560c173daaac51868d3da618ba3287aab42fad182e7a5459a30c1b7b4c3154857d0ae8eb4bcd7d0665df4ed575e6b6bbf57515f30fba2b262dbf165d206d23dd01681bb338f804545270aa61ca9ab23bb22e321d646d64623221647064633237b22ab233b21b64696466646864646441c8bc6463646f6476645f64ab0c0b9a062d032b236b80c92053224b024b238322730156844904b403c382de8165715dc15a8071c1b6602cc0a4c0a2c0a0b8f2b88a6095218740d1907744166456cc1fe819b30a3602ec4a842352116b10bb886e4431221d718e2847e4412413e3883d883a885f4432a21631075009518d6845c4416c23aee21ad10ba8075c024c039310b78863442ce297c8060c038a01c1e831ed46a7d161ba8c3ea371d036e81bb41a8d46c7d13e68207499de41f3a0c9f40fba072d47cfd1669a0e4a053645cc8276c1564091a02aa029a0495014d025a812a71f4e3e5c7b5c7a5c69ae255c4ab89270a1b990701da1c1602a681bf00a76051c024684f602c3e31d31b35c43642f8043bc275e13cd823ed3681a09991a6d470fa1eb6821644ff41bad477fd1ab86416fc9c2740ab23238080c0436c33b1822240210e02ab0217238bac1860d34615243d113185e286224fb41e645c64526461646064694828a6912d020741ef407f40dde4296a1435c54a81b3c03ba83be42c7502c340b354146033a82931ed91cd40aad42a950a653d3c4a38d70f9c0634e7b5020a80ff30e5a86c201c7805250339709e81569062523d1a040c0ac70163d029e820a81cb301db407548e2b0bfd813a61c561c9718282fae0aad2696809e61e748e99860e818bc075d038280f380c4a47c760d231cbf01b9815d81c93ccec810587a54657b1d2b0d0c8b6a027b0c0585f2c322c312ea68802cb4b2481b5b2beb0bcb06a60756171616d618d81f980d661656161615d9115915199406026805b5033b023402e280e2811281874c55998082e019380b1f0087808bec25658080e82ab301506827f601f9849b524821e4200820fcc2649c7d423a3232b93f940ee8092203323e79072c8382419d903c9031e422f81ea21eb90769c92704273fd005120bf902b78073c73013197703ac2c9085309a73c4e458078c0234023cc39e60fa60f6612388f1311269a131ea733a73b4e765834b0c2b0c09848380de154c73c02e3719d00b20042019f9846380961f260ca31e39879cc229c827002c224c2c9cce907271f9ce8804cc024e012d0065005a732b08cd31cd0cb298e1399530f4e3b38c101c19cde38b9711ab303122fe124e6d4c63c63c980b938e9e0c4c6698d530e4e3868199c6e00bf9cc29cd438a5713ae3640613a1a9e03b4e659c6c20cf7855b01bcc03968375d054ba04348888444c41f685124185884744236211f104d104314b242296a0a580486828601eb0089008bd455701c9e823c028e00aa012fd44d3c03ae3c1e059f1a87831682eba8bae41dfd157506002ad45cfa0b3682b3a8a2682d3b4123a096c04fe01fb80c9f01c1c07f780db60316c0306c3abd7a5adf018ec057b6131180cee82bfe01a74165e01c78061c028682c8c04a7608ad2052ca0a4e1484012070cc13028fff2a4e3ea6724a5c90696e8d0c40887254b28bf1ba0182d59725a367ab281264a5076e0c012251b8c929cdc00c5c9922541e4126aa40b6c58128503508e3c791245014a36183d7912450103902d58294f9c345132ba61899111075490526c140e4071b2e40349463b202d71a2c32b4131cae1034d94b88c628d6c801205ca92264b9ce8f046364089e20025283b44b1c18637413a7143141b8c6e404132b1523e6074b4448a940f18218112c58914294611d8a412eb01273a7c92d15152140a24d924116ba4d4e406274f9a4c5962b483d10e0fa0e106a30e74a0090d03905856ca910d4638d820abac142528464946384071e292098a130ef04425ac0d4ea4407192a4c483d1920f3cd14187264b928c6e78e26487a1231ba23c19ea89683687254d949adcd044c9a80137d1082070f2a489132527509cfc8844d8231ba23cd9c01223a51d6c30e2c108279ed9a4280ac0e210568a9113252749517050daa1898f58c74289e244a949d20e372c518af244ca12273a7c93a41dfe079088c5faf2c6995f15dd1513d3b3ea0591500c2806ebc0168c4168775728861862e06e18f9bdf82284dd2c5ccc1dfbb15004c378237337c32110728ccc0dd926c238e30f88358430be392194f39d229404903172d7c4860988188661ddd1826fee8b91e3bb5ec708991b0131068116ecc82a442cc6d831325318b787c438230c70c6b80fce176384fd42336cab1b8b5000565b59775b6dd3998d8dc5dccccdfbe083323e026c8471c68e56b42c2b5a56b422437880222f62588cf100302832910e1224c6564185f92084168cd00030461887047547d82fd5dded42470b420c8b9161ec1638428f303e0823846f4e660827853c9962b13b1863010cd031c2180b103b42d8cd4264e6187508400018615b31c68b9939c60761dbbcc80273c4626c1d9d06823a5027469d5803e30a3a10ea449dd89de9bc173beab44e479d8e3a5127461d9df8628c59bf7e96d5338b59c739dfbcde9cf3d4f2c1f8fac199c5281fdc18e77c51ee23000164165f96c118e38331c2f72084b1bb1bc3608436f104874418237c11760b19c00062ecf8b48e3531760b2036fcc1b06ea634c668a910bb18218410c61863c78ed18ab061c7183b768cf0b58416bf385fe4c7cc70ce8d1c63376cb831be185f84cccc1d993966af330921673342c8fc209c12facc79a9707a5005156ca605610780193204408ca718394218636cd81d21f3db181b76c38edc1c19c618238cdd31368cdd2f3ec8dc3de17c5127f28b00e81863ecee086184f14d78bae6933e33cb3208e1ecc8f04919bb1bce86313233dc14b85de66576de2ce6b9cc11324366960be1e5b41b05c811468ecc3b37b63521ccb2ec04cbcab22c8e6c8e6783831427509c70a0c3c106a5261b50a1002998c001274946536e304a61e706a324a31b92a22c49b950002327494a02486aa2244585203d3b473634d9c093275104c0b3f3e3841f41767a32251b9a4881d22449698992931c7288d2f9e078a41875004a131c6ce0a018e9a043931e2b875e168c9238b024298a52131ba23c79d2a4470bc283d10d509c2c81e2a4090e3670800351765a4899c043140f289d9072a100be5300169614c0e8a8c9930d2ce90014273848698283e7e04409ca0e495c10221c50dac18420cb82110e4b94a03849d261890d529ce4d08332526a926404c5a8034b0ec0820b2e142009003a5b002329528c9274c8218a0d4b928ca644b1c1286949132937d860b48485a3940b05d0c10623294ba228e9f081241b820cf0c4c9111010292afc508a1225e786264649dd078c8e9628f1600445880f25a30ea8c0821425294e783012c0cd168007271c304ad201484b6a62f4c48625461d6892144549ca921b9e38c1c186254a4f7668c201a31b7e6c9e184d317ab284872639a030058ad1ab5916964089e2444a92d194251d88f2644907a038e94007a23c59a2c483519029508c1ecef60792a2e46094839c02c5e80d20134243261b7b899754966a696969e952bd25152fa954d692eac46449055591c92ea9544f0599a878554bcd649754cd6497541693552da99e6a3e26aaa55e5a5a523d264bbc8f898a9798c92e3113d5122f319325562d2d2d41264bbcb4b4b4b4f498ecd2523351f132d9a525d563b2cb64899754cd6449653151b12a3251b18a99ac4a325995aa99ecaa542a1564b22a6e262a56a9548fc93f31bcbb9c8394261bdc94201fc46b74ea371bd28df3388ddb94f7387447238754e315f329ef71d8e1d9aaea6f886a1c738a6d353a067fb39dddae621c52106ecb159457d171940eeae43a393ebc8ab63f3ffc34b98afa1f8ef3c37d7895dd1f205c9dff438aeaa7bcc7e1c6db71bcc6a90b35bd36cc6f362946b8e8d7867171ebad2eadbefd654934bf6e7ab3f19ccdc7a6bd9f769c0df57eda6f3629367eda7a3835e104162a38e20b33b40cedfb69d7b66ab98d5f5b856f53b365db94f7d1e9562384469d9bbe5e8e39674418e782c6557a715b4eded9162b3e74e2968086a6884ee3c673047ef4f9f0c748019aeff91d0305699e36163b50550fc57aa5f7d155481c391e249747bfb8e80d98c23f399e23f3a53fb17eca7be891f3b7d4aa5e7a2a6b8955d6d4c4d06dba3dc37b2834efa1ba7bf0e606e6f7de833046f8de7b10c2278760599675f95acd5951ffc63bc4f26b83dd59bea71b1abad3a26545c8cd4c2dcbb2ae6bb2e530336259d69c9c0b5acf6e4b8e25c8408730c66daf1ba1ee34089763dc655ee68510c227655cc8cc9816d921185d73d70149cb92cc80b62c19638c52ca28e38010f24208a5438f0fa1cf7b31c65d8710c218a58c90194218638443d065415b02b50419d99ddcdd778381eea657b75ccbe95474e915f51ba377ebeed3a9ce889673417bfbb6c870d9b27a512fa565cd69adf336bfccc8329c5b4d158d3923b22c695531e1f4cd88849aa5b33377c495399e23565f1e9b7bba9bbcedcf29b9e79cf374bae69cf3baaec91d01592ee0d85df4f9d8c33c6fbaeeb49804bb9b9bb99bbbd93fa2de4f0cd345c3b2ea3ebed7cd96259b5fa322d6cd3d3bc5edbc7137cb1eac0105171ea040e285fcae9ea8e33766cdeff5b6d68d52f37bbdcc6cc7ee72af57d87da3033373f37bddcccddcbbbbcf798390dbf7dab9979957072f088b71df8d0c49f0e38310be9826a7bbad90d917dee0d05d7b74a0c75c12acb37bd2a1fb739fd7bb1cd6dddb5ddeddf57dba5b6d24565353d31ebfbefcb4f7f380feed32f32e6bdae674d0f39e7fbb2b8b8da0e92b659cdb13f8208c0f42f850107f09d4126490f8a5a85e4a9f9bb54179a3443af427a5f46749a26959525a525a31c6d8c3755dd725ad28a58c3fd05da6b31fd1ec8e2b7c6fb66fbc61d2cdddaf217caffb753f6666d8db83cffb7177f3109aa64108a5b7576d51ac750a7a7b4ea7ac8c08722e6872d3b63857d36053d1dd0f42ef0a639c7b0343775a770febee3d87efc1172384efc1f76077770f52722f427fb0df7b1d7980c6667d8ac69c3913175ad6844e8475f72c2b7a73162d6e76f720840ea1dcf6174628658c104608e37befc1adc2874e539a65714f4687f141089f0e76056d09d4126422ac504a785383e50be5269f0bb59c61ff396aa7a68a74ad53d2a1e750c96cc9e830ca684919a38c5142ed610f6f79dc684a935272fb2ce951c218235734e60ce48e5cd66146176b469725504b9091d616ea73631e24d0a74f0e7a9d1ccf91e89647b7b82d567c887297bfd51370bccfefea892c7efa5e1cd69df4a23167525a85735abeefa6a73b2d097e9daf7acb6536bbb35cf54563d0ace5316b400f5f959ae8e28adca05234064da72a7396c46a6a2a1a83e6a9c55e34e6cce4bec80da6aa3d9a0e9aef47faa6f8374c17ed778c1d60f931ce58fdae58b0c4a37ec7d8c1125f34264d4684f48adc60ea6ebf87bfdcda2a7ccb694a3bf989dbecb4dd4dcb85deb529f54fb7b6a23169ba9b5c911b54badb2f1a73a653aadfe76cfba6684c1dddedd709df2a1a93c766492c8b2b1a73a6bb7d8f2dbf4887ed193b85584a7b2f23b22495118319117b67d05f46f49cb319f699398a9ed2ddddf095badfc8f3a67ffe1cfee378903c8ffe18729535ee12352290e0c50b3196c54e2dcb820e34ef8816574377d1eb8629a2a13b56f282a43b74a11724b9d308ac7041104bf0a0893ad200e3e44699c855fe4e652d882f3e415b094dfefa5e0f083e20a07618bd3dbee617d440ccefaa8b2b0af0bbea828cf717c4549ac37c642c1f994aff446726fea2699d6a879cd65de4877043d1c5dec643a720775d1c7d18cc8a1e97a3bd201dde4ff4a87dd4a1bbe87d84c60fbdee998fce59915277d1618cfc6f9bbf535345db30cf4c1f5d07a50ed29898987c188a0e8924e782365fa8df4619d3624e07ed50f4cd2037bb8b8e02cd3bc5ff3c76e1e5a3dfd029e8d171e017f8a3efdb17c44395c8aaae97871ed44375e1780e03f3a0eb5397ccb3eba0d55d09bd2025ef87bde66bce8a89892988a1daf3eda362a28a156e542973c7127430d43e3b757daf9c38e35b30e69bab4f80be5d49775234fefdba618276883da78384e60b027a3fec455fe0e86e7f86eed86b0e0fd59e87a2d50df3ec4a68e8d43e7b0d9d6a67c740a79a3d4943fdae9e30c19f7e574f08f115e8c9b418ba608250fdb345563a14ed796de1d7b14ed54e75aab9e7fdd31eb7ed0eb25721bfde750ad2a0ed971650e182c46ff61eab0105f5dbdd06bbebe6419bff04f5d079a0d27ba22d925b420d4dc183043e3b7ce67890b047e77f5c2fb10a3637419fd39d9a20de9603ea8f9e63dd71a73a68df4f4a7b822262afd22defe8d0eb13d45bdbecae7d6e5134e9bd9d9a5c911a59badb6fb78276a89db32453f899935c0ea88fdc1174c86d7716b7101ac008107fbf78618606348a45cb1bc2cab3cd736ac3b52f3fed6d7a670c507dd11b4f17ea2b68fee4935e7e44fde4944a4cfa74e854d3e32136b77aca32efcc85bab1b9d578633636fe32a29ecd6db1f19a88ed4a1a01c8c2e6b64b781ba7b1799fb471a1dec80d6b309fdbc2f1af5de8453f9a7ef23a7d1d9efc6545eca7534f9f73ba50737664fac969cd96796fef6db22ccbb22ccbb2cce9c36ab6cc29c46a6a2c2c664499c32cc97c99c70c035a96395db853533df099f7d65fb36d1e9f71495de34af231a757f795d578276197e5588d3fdfe690b8a9664342e1eabf2ccb31ccb3fee676855c1bdd2e5f9f95b3e51bc969dc430ed55dbb502fb10aeb9315954dedd4e9a14339c7430ee93535cd0bfac541995c9dfe4455c59997dcece1a1b34f7f1bf4cd906c1a44fce4b6442abd2e7d659f50104065f5d22be42a0fffa06c1a595e7a05c1c3c941d9324ab878b1421b61c02b577ccfefea0a124f1b93db12431613101e5401041098a0f3162613482085115a9200a0250660989474d832bf85698536c2609a82002a2b1e40f0d2b7fcb065862c8e69cb0c2dd7c3fa1214269c18e3431a26a6a1c8315161627a5cd5e11fdc9e77b6d9046ee2e0010bf600a2a9696867c8f9d7aa5ee28ef20bda59fe796f336847d255f82a39c6d21d16a32d9204f45bd655eb0367dfe5204725882143d0adf818627fce583a95f3cf776a84d0ea93672cdd3d07a243091588835619cb3faf4bc73fef615d7b3faaa135c21233686206549061621a82ce43bc31c11794008a1f9ea8c1109520860cb15bf131b45482e8a1e8561230c40e372b0918ea610a1ad87b5012e69f43ef610a1aa243ae07a1f7f33c723d4c410374e67af0f7f31c7240fb7eeafcbaab157bdd307b04216cb065086eb8200e1cd40ca1ed90ea88336ac004136088b1a208433bb45e81687026a621762c9d5281b32cb58a1f64e241b845876ccd18fdf98c6ec52889fa88eea2bf2c3affae8478e251dd45246e7ae832427ed82dc773087d7d6e91f8f84d7f973fe94ffaf34bfa94d29fa3de7bcf236dac57005da8dba5b3741ee8fcfd3cb009e9d19210ce3e638312680d5a6757bc3c13cabe3e55abc126c3b6c8abe92c09642ec2ae3e3adc22718b700bdd45218a78a0eea26ff66a0dd35fd0c9a3772f887af49e4ec1eea64727b2457c874c8f4e37ad7fa69fb6d93fd3e70b42f5cff4e8a84e5d1e753efa5ef1b5858faeb345f8a3cb97c5a73fff25838b09bea7bb399dc7f2f7fd3c16b72b2152f0bb12e2884775375d6e7c71dbdd8c3b647d33b843d6975a15fb5dc14cdf42ac9e9982f62b33f5ef8a0b379e9db324ecc32f57992983bedb14f8eb704362f3eb6fdb2d5221e4906c7eeb367d7dbebf8ea43dfb3477c44c615024fe7622a83c12e898d37d80b6ab12e4f1985fd17b93c2df0eb319f62fee286eb53f3a6f49bc43a22bcd47daa6a70e3323989f4e94db01f54aa867aea30bbddef8b1eddaa8c42ee7adf2b35f5b6f55f5cd5bbdfcf9cb9040c7bcb32397635e643975dea85f1be69d219946a633b73b845da8b1ad36c73b84fd72bad57e76a1775abfa6cc477a7b30fdbab5552556496e335a7c14e31f98f767a7ab006d574970791b24fee874b3a2e6a243aeae9430f36da4fdb9d083db7edcaaeaa1bf8d074914e3287ae56f6eca8f47e386b44d4d4d49fcd999ab2ab84df951070adf2ed4708b62fcdb94fa5178da6f3b6a874efbf9cb8cb0c7c829d1dfeeeaae9230f34afd8fabed53f8fddfe6dfdb3e6f4af4d75591bb0eda4e21d59842acb7e51be82ac88d0a103a4807c2a607d5d03acf91d32f8764f35394fa99db223dfab6f1404f211c2f372abb8a4600924b78b951716bb7d5e3e5060413229a9a9a9a86a4d3f89ae1465983c44dbfc58a0fc96dc8b0263abbd0a3ef291120ce0ce00d2cbe4a19830595e3abd208e44035f155894b13355f95e4e0c11926f6b0beee60822f7f4283cc236d5313995fcf80d631f85d9d80cab796df151165befb5d1161c4afd3c6609601ed65f1bb42c197e7d5efea08215e00bf2b2364906432311d814c4cebbcf55368c7d38811e1a96c9829a4583fa5bf03494c84016d9dbeccc8c2f1eb74e19b28d4540ffc72bcf5c76df3f8e53415fe7142dd1bbf8a9758055fa4833e5f1ffa360d68ec15fe428f3e31d446986940635f7ec852e81640833e80df2f6a20f1eed331c1a10451c4a169d5f15148a7ea73e991e7086482ffb4fecd8e30d3bf4fa72c2ec9e2756a5d2ed416f6ec8bb4d3db69ef5e9bf4f6e91412377d63d696a4249f7d3a6748b8078fc41b120a6f399d5bfb6eb53323d22bef26b9cabe16b72ba439a1e67f4edfe69b1979cf1fe58c68623530090387202cf3d1813e764a6ae8545c300ce814dc15098cf8e82d74d01b8a2f82f908f43c96b73b7d10e3aca83b236ae70cc9638b43c21e9d5a5b5c61a9437a742c70bce5fbec6eb9dcd8adadf21e7a4054a7a26b39146272dba79b152d31bde46a0f2fbdf558c01e6f393731a08946ccda6a33bdf46da6b7b82a7d7de854bfc8570c8460fa76e95b016d57419c79e9fbdd1c6f70a550bf8c01cb511b7ece881e7498152191de5b643d3a955b3b4d22bdddda8ea4b753886d5176441e59975ce5930b353d6df5e40ba9f3dc6a75ba1dad5bde99116b01daae86d0e22ddf6dc0e5cb7186c403951f7c60faa4934b51fd893b3952f5c012f4687a291b868b11433c7529aaa7dc7677e2ea22b9b8cac35b98cc8a4e2fa58c314208df7bdd2f3323fd96bfccc8496646f8ad17b1ce8c9cb8f5981939fdee907ada789058bebed86efbd7567958ee683a520f5fdf4f9f6fb950cfad4a67177aed72db1bec7715c4190f77488cdb7c1becae2f8e79fca0cc9019ba13ba3168eced5aa72aaaa753efdbb79b25303100d428417f5754b23caa278c6f44b4e7ecbb8be2e61b280334a8d1e51bac3be8394a3a55bd4a1e9d925f778d870e5d427f093d062d7a5d312f9d884cd53943a7aa8643a7a4c3d0a9f7d26be8d4ae8230e2a563a083e0d05b31ebe565ce57222f7d33a14669f1d2035c5d257c73c63edef3d02daea2721ebae4aa863de47822d7c2ac985673503dfe15e82bd096edd8e9d6b31dfb69436dc77e6d39dbb1cf4d5b6ce7c2edb8637fd8f3109513238c11c2c7edfb610e033574d7eebf2b28ca3c2f3dd5b5c42a8651055060780243bf200bbfc0bffc42fbf02bd45be4e49548f6f3bbcd9a3317087e3f1237b1bf984d14bece8f5e7ffc8fbf2677b143a203418ea73923fdec1657b5672e736a1a0ae55e3b200c6c11f667390d356420faa4431bc24794119e29cdc796ce4c2f8881b03fd1230a1505cae4557bc6c30ac649d068fbc099917ee6d8cc0e89ce4a6895c998f9e8a74ddbae9dc974aae67c994ed527cf3e176ed7fe34ccc8fce79c1981ff38a41e9e99632a3e36c75dba8bce5cba8b9d65a9557089551cada6c751682e83502572c63fa7a153d089fc73f89cc80b6228346eafec1b7bedfeb10b01ea1473cf7753ec3572405cd7dddbef1ed07cae3d476d500c3378224c0c94500518590c3df70d4200531172d0658a24b46863880c18ba3e6e05f183fd93d2d6df72bb45d8d7adb90f9b7d76ea71567b407b0e7dbbf6ce8e40fa22ecd4c9a3cf4ed1679d7c39a5fe13c783849bd2cf48af29cd2ffdf3a692b748d30df60f44c24d8fb43ba4b71a43f0cf216f279dc29835e03535fdc5255dae343f4949fb15364bf2a8c43abbb629fd97d389bd2c097c767a619b35e0fdf59a5fcdc9fb4f1cd2fb8babaa7fd99bdcbedf67291e9457e8fad449c5f3a734197d1ebf076b7687c8c82b5f3a679273419b157b1cdf2d406a5c3a8ed39711e1702e68353835dc6611d821204e2186636546f8779c0a35ddd9f8295090ceb72dd283926ed1c67636245d1689b65f9ac0f2cfe31237be19910fdfc971e83c9b7adbe53874548e43143ec72bea4f395eb53fd97c8ed7f927df0db2f627c74f4e2726264898870fcc439fed3685e3d2856c0a276e3555a2530de794cdb08fe38fe3424d37ebf19aada6e035ae6d55f3e8f484edec03b41dc307233efa0931a270b89de741fc4b135d3cca719ce6e4e4780f4f4e4e36c37e8ed31f3b71e34f61e3c7d9b6bb9ce83b4162c432a2204e338cb3a258436b7c3323356e511e87289d9e1caa83ed5001e241f810106e8a1452701f974e4f4821055436c37e0aee2323f2715a83e16c389eb3c1ee703ca6b0557ef71f9991fe1e6ebbc3e1ea13ec7990f8717c0afce848361fb92cc9f3c84de1c7e16a8dbb6f66c41d05176a1f59913be794730ec293d37eda0972e1e4701c0f1277141c058779742a884387683a95a653d22b91878ef538ccd91e15dd41f7d9de15dd414f617b5ad460714bc15159510a1e7d6743c1290acebeb3c3394f909d9d1d6fbf389f3b41845e4481e3419282eff84e0a9c8cd8664591738759110f123fe75360106fe741e2dff129f091f8cce33892cde3e0388f5b5992e741b829fc1c57a3d7b8cc92a01c879bc2afe3422f12b9476cc7887347356ef9918e2bf1a376faf1eec41ae93b9bf420dbe3d21df4b8bd2edd71f9cc2b914fd31df49c8dd17407bd67e33cba83aeb3f119d4c675f06c5c060b0dc773569d0ad329141cfa5ba353eed09f986b7b6774ca04874eb74dc7e50679f5356a79a8bde42a57eca35369a653288745fe3bcee3153ecab31d0ef264d922f14f41b279e941aa3c7346a6b16284962e5a78090387192b0f262c48cc283ad50f9da2b0f14b339de21c3ac67115732c9b530910cd3404645feeae504ff01ca7d991fea3138e9ce03146aef69f407da092d10ceb318143e26dd371ce9048e76a4e77d051e0a499eea04dc65768559239c1a1db644870fc04ae4ee1d7f19e8d7f0ca63c1ec7759cde603d47341dcff135415b8eb0860a10ffe1fc1188d31f5b37bf17e58f8d87806c549a692808af3c8ef2a6fb5ace88e950d456df1e8ff2b8e38ee33aa8ad2ef9f028a716a6b3f50f1fb7d7d4f49c1535d3c7a6e7e17687ec70357a10332db32438aec3a1b6aec1c76d3fc856f963f8c821c500b3a25d3d8ae951ab477148bcfae842fd2372bb437276489ae9143f741d9d1dda0ce7c7f68624994ee5387459a653380e5d9a117a39db8dfbd8b84c77d0713636d31d749badf2db38bdc1a2d720355e6f5ee278bd5efa6e91a27d1b97ce1bf456ef07ba741ba07fab173471b83a6bb8aa3deae35bdd704c46065a4555b6c11641e233effcd03b4bf2903c8fab4e79e914982db20f3d66489ea6b9d0dbf66db6fd9a6d3fdbaa635bc5bebe5545fd694bb2fedaea83e3a1cf2d097e65320fddda50b1a22aea7979abeea05ba145ae2e99fa560f2715bf29a86a965a75f35c0863e401860c27c86881a2532787cf2dcbb22ccbb22cabaa2a5b48d643eec8f2f72ccb9f15a1843156e8905ecdd5f9d3b2a48c11c2f7dcb44a3fcde9d61f4d975b952e45f553167107874693d013a53123a298538c528c6e27670a3322ba1d6544b099c6ecc8c9f9c8ea2cc9c999ab47963f3fb99511b1d31375de929c9c7235ba506f36a19ffc65d14f1b95d1379b1063eb8239188a5f45f914076d4f69fbb39c0f8dca14cbbec46c025d16349b46c36980fce08b99a634efae61f0e96eaf5dd503fcb2f0ebbf35e7d7c7c66bb78eddfc2c00f685ccd755d822359a2f901fcdd4a9c7d44c8c26cd039293e342cd699a09420c4e9d0d5a598ed394e6c3178772b587a7de75aaebae79bc12d9f10a14c46b87f2ea28132a76a150e4047f2ef985e98fab4f60f8e73a5d77ed3a9bb7407b5ebdc8a7bbf6942651d898ca0e693f61e32a3ba47d6e1c04afd06ec2c656ba6befd9184b77ed4a9a87abdd0e573d0857515f370c77e2eae47272b9c616e96f97a7adb56cd12ece87d3cda753506078e83adede5919910ee782a6037d8be554ca8ca897b0fe013bc4c2ac89a534e8332392a1bb865b24fe7ac43098116d598261680a09e4474ef415230f2c638e2084306de0e1644650022c679060082c7a091f1bceb6dd3d252cd02033752a72455fe0602a706b2d8d44778e7de555186734ee5d5cf1c1156cd0c1944410364d155de080e9052508a3c5e281822e5910c1a58c1d2b58305d6ec094e6056a3055a1a1bbcea2bfad83d0b6ddeef9cd06b77b4946e023f5f0d18fc08fdc969b6d5f7bfd36f92c85568392308ca6915835128c86d104410424a8e08c1269c03082aa881398e1c30f98c268a18206228c5007134ff4000a25248088368ac045056f14010c9ad2647841fe7edaa7d7295de7dbfd05c9fd795ef3cf275727907f2eb936e19fcd1677c8f39a0dee90e7d9d6bbc2736ce31df2389ed517f161837688c9044395af6c11e9ed0cc61609838318cdfb690ff295571a0ebe7d39084d19685e5023f17edaa9d779623497a3f9f66e24da6923a1e97cdd303a6f631f76c80ffcd3deac821f9ce0bbf9a7f21062be3966da21ed42bd84565b8b6fd7a253d1dbbb8b4e80151fb2b8c831957629b4192027e41c855679f5ddceab4e79e95465a65fa3536768f9f65598efca62be5dc90b622834f8b59168243ac5b441aa2c76100183167891811d730cb5b3950dc286c00512ee504112a228c2503b67d920d50ae408021858b6d4600f3486da19890d3262020a36be6479c10dbe186a7f1b6be98ebd57a8137ca03c27dfaffe27a727a4e7d53af98674f2132765be0a29c44edb7549c949995382bcf4b53824c96db902bd4a8c107adcc80ea157899cf67ed6ab400ef57ed69b5b57c5a556f57b7bd0f5a9bd7a88f29416e4c6df86729ad27a769c36b6d16b0f8fd7ecdffbb9bcfef8d7b3b3e3cf85748a3f057f0eb708e7cfe30631d3fb81fe5ed7a9a3e99d904ee970955f889fbcf6e05e9f53a76f73eadb09276c7ee29cf3611368d0816cd6750791f8a7d3fab8c99d309d9e7c3a7d7e820bbd375170a1e61f3f9c87abf32b335d5cd556e77f78e4aace5766ea6cc729c45ee5a1c7779cc7e9dc78b8aaf497ebf09777e600fe4937ab4afe423a798d97ef53df36a4cb2fee7229aabf38293cfe22877472ead3a3432425feb7f966449ba3e0713b21856d8be6dcb6c58a0f69be3d97a2fac749e1e19e383725c89be02870bb5d3d81433281db7205f30cf36cbe1f5805e3a0675e05731baf52c3695ec586abf193538d63b23fd06be6cc348cab4be6618f6f0f7dcf4654fa52da9bbed94e8d156dc79f530b4b6940dd41b732a216ba834e799c3a5d16525a54fa7834e53d0ed1f7a79f36a4e8f56d278fa7371d6649ae93cf8dfa69ab3c943a6d8c67cb74fce4708bec2f96d2a65389c5ccc80ebfc4382bda71225b4d156dc783f8736cc73723dab9c922b043371cc530e6f2aba5b69687de4cd38a96a59178e8641e3aed6c067eac3b7642abac85b5bca039356d7f2aaac68ae68ff3047ba9f428946f4684f227d8cfb9e580fde38e509ee394b320a8ad628fda727cb3a21c7f6eb9ce3e90edc79614bfb296879eb3d527d8c7a02b375e45bbd1b0f982aed47895ac26cbfce68a8d57a9b1a9a9f11b878e7a41577c78151b1f376ea3f90d77053554459be2f21bd7fcc66d1cba03756a569f874eb75d5541e5f705edd0d6161e3a1ba1f1ef183f58c2e3701586877eb3edfb79ae6d3644fe79cdb6ef27dbf6fd60dbb5ad75a37547fdf2b7ad75835d34a59de8cd7647b91357f486994ef15cfefce28ade30c38230fffc6da776c5c4f4977346746df6b8a237cc4c5ffe0db6b6c42a5e92aa197fa001020292a249df07ba42f705ad7345fad755cc4b2833a1d5fcbe71041b4050e10515692c61688becf41a247a35e1e4150581d41b2236d22bceafef16a9a77f61f20aed755a5ee90b18afd0be3ba4bd3ee8955fd85de10de0db4f5ced27c22f2caf50717cbefde26a7f25a2b32f2c77f584dfae02e07b3205b243dadb317e218757686f7f4108914eed768fab41be6adfd5846f67aeb6ff73ad6bfce972e9e316e197ae55f893abcf2dc93d871c3cda5516eafcd775f337bf413ec8b543da7909ad6b768740176ac8b03bee5f9fe62c286f10ef4feaf97ac5beb9a22f7008f9f5163a55a4461622bfde9b153a3bb503fca3e7d0f7e950b56d5f90e5d0e7660f00401c3f4091822f7804d1c490c5edfb6122f99cb7e7715382cf3ebb7b5c6f4bac8acd2a50a2e784df95165abe7fc9e84208607a08ad0201bda08985043ac8a20638d852461a5c645cf8b0e2e24a3c21e1b28313d2c6c0238d55b3da820c06c41844c0a284ce2f193280e27dfcaeb880c125053b27a155ed57051a3b1313d30f43bc7124010f378408820982b0827dbbf682381006134650a185126de460a8bf376b3e015d9faa3d873bd12b74e6e073f8fc08bae42874b84d081d76d7b0c87bc9fc2b5780bf9b4aea7d21891f22d92d12c3bfe98206197a84dcbb42531acfa96915f5cbdc8d46650af6207c688af6f56500f3fb4077053642abfe975bbe9ed21e3333572f4741480b30f86cea79bddc727a6d1bfccbdf1f5d0edf96d21ed7d02b2a7ad5a4d7f9d7f38bab939bdc16a1f9efb7e4ea8c5cd5767f6acfa382e0feb03f7f38d42e68f027bf37e8fa7092b5043df668facb9126951f7cb0fee268c4a64bbff1b855fe1ba7bb45e24d04e294b1aa5594b5e3b5fb1bdf2dc24d0fc42965cc72b73cba099bf7cf7cab3bf98e6f07e538f5ed201382705cd3fc729ccb4dd0285751bfe397e76cdb3f1757513b1efdb46dff604d4fbd06732459c34d09f23f76875c5c8d47e02349977254e3377e54e311935e2f7a7148d22fc73c6e15d6e8578dd31ac76a38a41fdc962b387ec2c1f1d309e7d4a3d38ef2e1554eaee35570dc874b9c6df747e3eafc1d3f6dbb3f3b6e6dd57fc77babdaefdc38c6f4bb438070f5868b8e39aa47c787505b8ea5763bccabe5d85b97c7edf2cd8ebc8f9ec4f2e89b21f15ffbd7d19625a0a1292cb77198111d41e73932bfc69f589f790d75e71f0ec4ebd4b4e915e5ffc3bbffe1b5fb189d7a855fa923d578eda1081655fbe68ebc9bbba05da7983925f4737a66caf248c53fe74132dd721b7f5ea757cb331fbe3b04c727cee663abd36f9cb324cfeb742bcc3ff7e15fac3e623d9ddab99d3cc7f2cb797748f531a44e87feb224cf7d709d25894e6bb09ce896b33bcec31c67e3915ee3dadc6cfc66ab96b76b1b0f92e8361edd86e391ce83a4c631afe17a1ce3212bbb2c54cfb6238c9b4fb77d3feca7ede8e2b41adde272e612abe07b6366f59798d7f9d809c3bce63c86f53cc655e9d06db69a2ada74cc6dfc896c3817349b0d7e4db6615b4e9f66d89f5c67459623b1f4e753e23fd819117c8edf4831344d550d7710be74d1add471ab405f9fb480f506cf74d7b13778a6851e92f5d6d24779e62ba5cfa1f7f61c6eb00e5ea13ddac12bb443875fcc00f3fbbfbd6d77937bd93b55556df1a38372124a3caabb6d87c01db2dc126d575eacdefa5d794183a732053bcfcdefca0b2e3fa4b5afbc08d356be20f396bf18b7a397f2275d3af4239911e970080b75f75db345f8d92d9841608780d8a615d350e632e3e6fb791ea3cbf8acedf9ca2d2952a7118bd4af33d775720cdba69f4e578c4eafdad3afe995ff8a3172356300c69991e716b645a4f0633b842d6e48ade124b495aaf721d2020c90898ed0965dbcf7de537aed4aef9be32e44883491eed7539ed27bfc628c213641d7a797d0ea7c1fef2fec3e1ffe7195997e91d83cf4b74d810f9fefbedd7687f01240cc75a89e5517467c0bf9764ca899885651efbcf1a3e0e850db03aa02b9c881d52d868d0d0a4ccf165dbeb92d86f0f1810e0dd4f841832d80448173820c88130daa2811e477c5c511591374770fab062d7ea02334c34ac94a0b35504ac2ac68109a410b2f84f861c4fcf5b2c517d84154a607e143939b82776a84d0daf7a1f791f6e7db946e0074de15a0c3f6f7afbd93a42bcde71dd24bdd586f53fa6573bc1d8c0f43f0d911f8efa5657148ef2507bb975825fb71a11072486640a56abbca228fb7498142a7d18fba81d0da2307b923ed2f00a161450f0dd5d309f9768ed0e3dba45fdb91e792839b9539043d6e5482203204ddca1c8a96d7b5b6c4ba55587578f97edecf5e5ed74fdc751d19e0aded487253deaf6bbf1992fdc12fb785477a0fbb1afa00f40f449882af7d02f225f1bb74b8be0ffa663ccb29892e3908ec50e4f6fd4c2086c76d24838c338cf8d42f1966ece0e9f21e5a9dcf4315c59992e72de576641d726fb332871e743a37ebdaf22aac3c3c7c3feb35fae4e2918f97db11e4a6bccd90a8f091dbf2019882af5f5353bf1093f8b7a969e8798c1be32af56f79bed90462e00781402184b03bc8319a23ecc25d087376e12e8412421f60842fee908510429893e3a307f5acc748607ac29a4963871042afa8df89edfabaa350df361234e6ee5ff3c21a9feed6198310c279c2208410ee09831042b810c2d38513c61968bece35cee0d2006dc94083cbd75961165ebe1d897fb26684c46000a88533353c08b906224cc46040b6f0e37144805aa8e105013990e4c47c0b3560e0070c9d8a10eb1ff65d9df113e80b500b383c39138170860c9317d465e1829dd79101ea847450cb0205399692ae863034402144ec6a85c708c80c418519450c208b32405c27844993ce6b26617058327f039317d4418885199d2e9221c3e406221dceef184858f91fbf2b2c72f0b53b2391a0b4a3b4e635af69c9d8d6b4e656778586a930d35ac4749496b464ec8e32a2612acc7484b15fdd159a6e6208e135af9a851042f8c0ec9075d5e4eb0bba3ef591f9ee0ab949973b82bccdeeb47dd810d5ef750f853c8493087646041f7cf0c1f8a07cd09a70ced73cdf8b0fca79c1eb7acdd77c4f3e68c179a539c1d3e9359fe67b569c66ea2873f24221a53defcd072f7882148318f69ab149039a344a34c8339775a261a249a304311a329865af399b444e93ae1718b21a5853f39a6b2697b9fad6e2dbe98545710273c6b7675e28977f5dbebd260a1b6863f39a6de69967e54c1e75bc2c67f2a8c38c1661c06821068e35b468a646224d6b69a6a692060d183262c09ce1c54c1d65c09ce165c559984b162c8f8a4dcc191ad0a4515a310b070d0edfae7c5a74d63c36f3edb5a9f876b881212306cc195eccd45106cc195e56d1cab7c30d6ef569f9f633cfca637a599e110fcb993cea30a345183062e058438b2efa8aa6a2991a89ced25a3a8a5ea2999a4a1a3460c88831534719306778597116e6c25ade632af80aeec259d808c6c256de8a39b3661e0d68d228ad98858386dd218fab90a83b2be2a7fd5edd159197227e18ba73a222fe9e9550cad72ce55583da21729e66cd7308ecd07c3fad046d2157c4baf6e6db27e67b681f19a320f6bd17e3beb7dd3bfdc5c830f51ebff71e7c0ddf7baf5ff77bef75775befbdd7affbcdeddd8e3a6dacb7d718e383fceca0dba9f79aa332c2ddde6d98ead82ff46ed7eeee85cfbb5ff7b36124ecf66ec36eabc60a025aab1c20e16429015343181aa40cdd311164d268834c98336928e1c5500be09b0d21703308b5920b1a112d29b9304354608c203831449712b8c1c550fcf918576c94f1919b41a83b255d688c1f2d6e06370d3fcaa8ad0146c2f7403112b9c83894410667cb95bca0c909c5d8f331faf888e563150f64f50b12fa52831b584033ec4a06a135d060fd84be8c11855661645052830c3330e0f4bbca811b9ffd82818616afe6083232086758c93003165a20c4428b87d0678ec31ac2bc9ffde7abe40ab361584f080b2edabcaeb0724516122c80082f7e88220c2ea83cd1818186164a9ec53d2094bc8e4a948421230a153c4b8e531e5670c85c4568faf1eb050858be50414643a02602d402d00b125ac980ca0585facdf778e7776545107615264c0ccf5e5378087db77d0101bb025b21e6a1c399e3dc82e99f20212bc2f4cf7e9ddacb4d062c10425885180f1f2774464806a016525048eb293a0112ef671fc217343931bef8f8fbc5045cbece3024784035903390f37765851c5f3b2bd437273ad61dcbaa45d82ac8ac02da5579af3b31409d90ee0529a94206f0b5921aba2aa878afbb8eed78cd3d1ea3045bbcf52bc698d5d72e888b044a50224c0804841086c1c4e521197498f99adf30da288119ba3ef126a73b9ef65d5561c443979ed31c64f973214464e814cf1ead7fd6abcff40a747985e15f77fdfcdab4fee99f766b935bd11b65b6a23165b6a2316160331bbfb07b05dae9d737e75281ea057b607981102f30a2cb0954c0030c152ec08ad86e20a60b231801c41d4c04000f3454a4800a212c6107524a0821bc01f6d2a794972b81d3e9755d42524a2ac47859f3d2674e1829a59432c29601fb25230c111f7fc1904109221800000000f6084ee89107113870638a280070398153c61523f04109326d84f119c211ae189439b981fd92c103183891aa44eaae5e868539557b01132dc44ebb69e8ee925c0d9c92d8dd5f6860e5bb7d1ed62fa87b3ffc38bfba174443ffb0f3e33a250c259114bc94448831a68aeb065909168e2baaece00661b0d1460a59885113032e31a022c35c4b5029a40f6034a180bb5fb082d67ec740a3ca1bef082536f0624c1a4170238939382f5fc8ac625044ceef0a06679efe92c183322cb42fcf639fd0f971bdc3185a0431a7b80253f85d75f1c16763621122bca34b195f819ed34c2a6f0572a861c5cb1d4448c2e6821f3411494004165148714410418c29c25b30832e50c8ee2f65acbeb15f30d018238a2e6074972c2815b20b14b0065d92e8559725de18681cf1f077d5a5099bdf318ef092d2784e4d08b3c100ba2b58edefbdf7de7befcdf79e7cdeddd49a524a29a5945242b7a4e4e8afb37919e1ad5ad64c329df72757ada38cc8daf6e511299f74ce9e4b097b534d965c700eb4aaf16c8700a5733dbaafc7f5a3b86c595c85912dcb8a965567557abcccccccccccbc1b618cf071b61e618cf0ad648b89525a517c032d6ad35aab626fa9a199a135cb2234b95d95e2b32f97a1b137127899999979d7799977977977b7779ff0f1f169620a84ec48dbd4a4049f392dd4a377ec54fb7ec386d1bb46dfd811f6e327075df8def37e0eb9ad880753f0f5bfa6a67ee18f92f86ddaebeb4da95f05f9ada01dbee7537b3f8deaae6ad021b7efa79df26698091c0414dea68b10746829028d20e4b1b2538bc5ca8f4d249792a7bed9919daafae22975ea94c3b623fb467664c178762cc92ee1d9b1231bc7f3f6e0f9e4428d6dfcf4b46d4674454ab7ca3e89a8cf23d499933e935078e276915cce17676dcfe55351864950205e20f1b57bd688748a9d9f575e58e9214679d709016ae17546049dc9b8bada4917fca0090f2de0b8c28e13e050d77542bc07d5fdec402d68f9f61cd40b5a8284153946e0c41a4c5a0c99f0ed9d13dfdd70eb61d417ad76cfde0961dffefe1204123f5f2eb1aa616ce284657f7086103148a2084f2471841e3c9e58e1d105c8ef0a0f2c8ffdaef0602a024b41101b28b6f0e144850b6a858c2d560004143451c50d9e2ebc6cf1a5816c64b0c543cf4179a74e0fbde3e219084b12401acadda713427d7db4e007119a0893823254c021841d17ac5c8082499538c12a0b11ccd00117470469c3cccd11aa165049c11c2f00e3cb0bea405511864d0a6cae6031033b7a80458935745af0041932c00280df159732ffe3d74b196566008d00c30a3abc845105ce17403e250435b6c4e1021fc0b18733198f88344850811d4118a186123ff8d1822c2d28c21ac1a9055798c998c3070f3da753f4a12f6a8ca62f2eb8416441ce138da08e2a80b0810f7040c76326341fdf0124acdc08134711427063687d7d005dd4dda71392fa5104e526bde8c569171720c6705a116ae8b801e2b4c6439bdf159733a616355e541866771d84f1bbe2e3e3c334d0ea8651f28284565cb0b8dcb7087fc7db0cdd49afbb92a13bae8e7d447d44e38b8f1f7d3ef1f9c85a68ef71417ec900429acf7e575cb87c057a96fcbef09d9a9683ea6147f55c28fc92c114c5dffcae58d0050bd2a4f9e872d5290ec36b685886e41d91d1dae676248fc81c9485e479ace3e3b297ca607ea1756479f4ce903c8be35e4a9fb24b978f2ea3cb339e5b702c92e7f1cb13677c74a9dd689a86e3237215fb28db2f2d43c252bab5eddb6447a64bb72c8be339b93c7146fa6b74da2ff4360ce50304c30c343079c20353e12cbc0473e12b72b0d3ae432c43c24f74f1af01cf23cd8e488f7e4d2b3b32ad1fd876ea487af4b5aabcac0cc973cb65766472dc11c945fa1af2be58c32b4c0cdd4e415f9d21f3cf557fe6cc476762ea92f48024fe731ab1b94de9239089a957602e8908628624fa9bec326b00373dd24bb25c69beabfe393bb5fc71b5ff59d39a93437a6f7130496c40e4a0c54f08ca56aca04de67eb09d9b9b3173003fd61d6fa71aa83ba6923976427bceefc1f0ecedafdba057584084cd8a054734efabd91db2ddad13cade50ce1356a361bc152d3be58d9d785477bbcccf378a34308a3b98b91f90252206218451ea583131cbb2ac7901b101c54ea7d38962a71ed4605996653536f2772505106e304dd3b41b1c9cdf151760e4603e7cf8f091f3438a3b74302019d16a7954770b244382bf3b648164443ba41d884e86c4288cb7f5cd1eb7ed1869bb9202cb57ecbbf2b545766e1132807854774130deb0df95147a3c6aaf69c9085ff39e6afa66cca908af3307a0af407f695a0eaa076e39ddb1153462e0b1471a2b9882054ee03c748d89875cbdb827403f39ad3b2d67c2cd41f5683936bf2b2eca3cfc05a30a187cd5f8bd20783915a5c7e8fc9aa0d3a9b30b8136375bc6808272de9dcfe42e4d7ba287343d2042055f7a30041adc6c29020a4a29a5d337c810aa2c4670260c9631aa1c61867666b5e5ca45b93ab7ee629eaebda013e7183401849b842bb4a842082158a152c410b479c882320f73b08387d07d87509dd350dc875d48a7e0dbdca77f5cf85d45b1c503f95d4511c55707b2b2b09c7fb7c8e32d22ebd233c723e525f5233dce08fce73ccc1979fcfb92e73dc7b7c11f80154b304581c5109040840d4210c05801142910c388379658f5def302773dfe6efbbcf144eeae9134684c4c4c4c4316d79cd35dfbdc95900c9daa1a0d9deaf6edde1688b4d082b6418f0d33dac801d31473a031d48eda209511617800e60459c8600b1c0cb5fb06a9946022097bac11c40f2d6062a8bddba0080ca146172c3c78630b252c19869136e4201b5f5f0ef2e5750b70900d57c3edca91711b04cbeb12e1db97531ca268a8646ad7a933410c42a790a1191a09124001a3154030301c128b85a37926aaba0f14000f8dae4c5a4296089328885114c5208314328418020c00108021a2990800b0353a01e5d012f35fa88901f7756d592e264343de5e98b4769878813146afde9ceced14585a9734ca47f39e9b2bf3886e63847a598816575f957ea587051b9cfcd86cfd648e0e5965816ffbdb901f53caece2404fb02a92df9b5834f1ca320375e394c7c644dfdc248171ba2374420e56a17934936cd306fd795da17be2961c2dac8f8dd796607ad6ea51185604c30453cc3ae4646c738369e5617ab29f9943250abe550ea1071489dc29da30599156b2f167202f3551ab1d6c515daa2d3356f78365f28d2a412e872872b5a740ed772c65603ff774dfbe2ee1f754ed892724605d25eead0ba5a22e29f6263e0695df310fc723038e53060bbaf5c1f5e72c538396dc4e80d564b882535a70e3d5ce31042786698a81e4e4f31322ff2a1ad078587d6646d26f6608c9c0c436fdf04dd645645e61c056aed5fcd8f87e6dd05dd4cd0e4d8a5599b049deda193c102d42100965fb79db91525570779bea88b1d881ce218d843e163e9ed126d045af87efd46cbbd926e6e90dfbc952c9d19cf65fb87ec297574df540a5a094822084b046df9119a351de71d734ba9ed31456337cd9ab93a276bcc9bc8b97d557e5f618660afb664c4c6a6c335eb62c26d34df896c22c6e1da77f84914ff24d668786898bfa807870e6229add040d37f3dc7ee2fd575462aab60d1300d4730f7259c3302bd7bfd344a584d0688c4aec602345d9660159a0234a3bd1ce63eb2d25ce40a5f19049719652fa924be986f6a11dc551f149011eee93064e1e9b42f615c229cd4bf4f1b0ea80f8345ce8c8df377113919508961a6154963432afe1ed2332ed7fc30b7d7f17bf2c13e883b67acfaeac88d5ddd0986b4ec472ef3865375a61e55adfe93281fb164554dde958d8cd23ffbf298e081a54e9f9925ba9228e8727626680c5503d3b7bc2d5bc1e1e5d0a1d15879923c069da1ac1839752a85933125f207263eeaf42b77de89e9643b57fed46e8fed0a1da23244f0f598c2e0a83b288c01e661a3f18b3760f1f747fd7f4be16f7f785be1a79f199268a34db2e4b69b4644dec2447ba85f5a3d56f6a318ffdfd7bb65ab94a4a381034388533d14f3294fef2dbacd39fc957d2cb8b7ca51ec3ee579c39009b88121c0076a5af2e3e7655c9fe7b50a7ca19cc03248b537aa93e3ef2c4cc8efc6f46ebfab46a12ef09e7e0f6a25c41024d8fa60d42e9327ad7e7adcae1262c0ccde15ab35778c5dfb1dfc3e664b1082660fae3244fb405753b658da4942db3ba2528ab7f76586a9bb20a340aecd581fdd7c66c2f48e4c8809d5e04ca1a9aed1d1f72c154fc91e6e203b14d7fa4553b4f35bc7ad083c16a209eedad66ee1b77f6070085cf3045b28acb182d29935b8bf39375cbf8ff502e3087993a534f3ad9273ee829665b9f0e34d4ebea72d85ffb9dd787eaa23fecfb72e6f20ea7d048d4ccf29205bd11de4f4394209918950a2d66d1536c54e8d114245acfb3787be1d9f56be36da2e6c0fd3ce817494c70f754a330c672f66d523ea48cb3e376d8c2e9aae1eea888b2900e34d0178a5dd28f135b576278cdf06199fe9862ab6a469c679141620a4cfb0a590191284cc435ce57db6cf94333ae923a08aa13180d3f587064f47da0fc7cee243df123600c22bb570692d6f9094ec51bd5bb7f41f841e2c75ae9f2e2f32efb4fa38b77ce17bdfbcd5155fd56eaf1087e13fd078ece32292e69826c6fd976209a055a7f9aeb87788071c8d43753a9dc063224cf0441f355b584aca82bcdad858f2798989c540637f6b04eb584bc03c53141e2f848a9a05a97af814bb536f1967216a811470c5b4668001da47f507573508cb05ba00c2ec9d808cdb20b2e5dfb9e91e04b12cbd0109a5d3211b859504194fc937a2c9f5aa1f5a4843a799380b40d63b2eb21fddbc607ec288a61937cd1fbb5e028b2071c356c39c6d896b4203515ac9198500cdfdda23ed18c0de6a4670151127a6d969500e880efb401e2b03036fd8c425fa432be0898bdb5c000f96e33352c2c2b871e246d3087f0216b714c98de72580eed403013dfaa9f41448106c6ba6971ca15772e59b777aecafabfc9149f6c714c259559508670dcbddd3bdb5b977a9a02e9d69948d892e1564b22dbedcff8f30bb72059e8f86d45419931620664efc9c6cc93ef9d5a94bbe526800e081f31d7052802b766630ca384cd792cbe83cafba3ceba323d6c014d6a1d4214122cbd81c2e46902984e8feb7e92264c9ae15ba2919d11696c71c9f79899bad77c87ee35c269f458a3434494087d9abf55f82006c3c105f097ca45c3017619c6b67cddc0c47b802c06fa83c0a134e2222f4425efc7a3820a00965393ecbe2326d151663f51af7547729afc60ea8a3f704fc40db2ca06242efc22dee06e6bd6a873ad14eee6198a31adaeb48e2fe188466699b1e0aacc0414b0ba916a54abff617a3d22cf8e519dbce32fb95d11915271025c5e720a7a6ebe2d7a7655d7913f83037c21d7c2c719a444ecf83f139279a12350023d895cb099a4bf09c70de07a92b1b6ac1c8ffbb01736818300ffb3eb284533954b19ae7797462467388aacfe82e2e1585b44df61ab7f3532b3b261b3746c68c0cf93f89b68b12f43dd682dc8d90dfa8ac44dc0f681519428e85f445b1f4b9d7f6d90a7a4d8a880dfe2848549acd00f117f7ce85a477287211626613ff16023739d90dbfd728acd49d708683463b8b58b67bc9f3f2beaf885987c39feaa28ec8008a0e1451bcd05de122f911343ed017e6313dc04a68320b5c4968819ff60b7e323c74b063e2c511ffb31fdd64d101c34819f06618658affda62ef5dd2a176d9212a6afa22506a74c9b499e20ce3a28882100be4351689c7f611f11c0ec7b6726b7ed0fc986c1c3cc33546d2d0b728373f2f1d878c89acbff235a39c0d1e900b8f8af19cc9f175650eabab48b7d445768bb7ae7daba6ead725ddf4753424cc9acf9b388adcb9a4f7fe1a09079e4914c31287762c3443fc2883c66e631380fe4ca817b3ef4fef931531380d77a5938e4d8c69cb9c16b6561cd347a099945798bbc8777f99369e419a2f6f0b1d177a0cb899e6332768db48ad175a9e0637aac1c873bc429618e9edfbc4cfa4c9acf6d4c0645cd7bb72a6ae205986668d32c9521de70d02cd30ff78a24685f4c3d6669266fffb1ce0bef64b3dff733ca4ac4c6521763b68c2a79a9f32c5d8a885a98fd43140354b93373f8c2a5ea526ca093f4487d7d182329e4124611a7ae3c0a94e5ad795f039ef62132d294ba2236cb12a869b1e3b3b5294ecc3dd2881568811ee02835a048950580126bc47f73b09d795a59195e6a512204d55436013985eeeebdb5f2e88c1c30cb22dedf92803ad03323d84347851bdea3801c62c694facad29aa174a2ca0d31899290c214846a51c2bc296478704d09a428e309855325f61e8353b3bbd4ed82d83b561fab8f987d9dc3db0df9cc6c7938b27d97608c60be458967f32d0d67dc3ff18f5825e9002c9891c1dc249fa90b09f9c444d5502d2ec4cfafd67f86520bdb61c6950787b988597bc2e1c1bc90290490d60b95049f33a830b576595ae69e8ad08d7f8ddcdf5e8b788226cf22e69c1fd2b42d14c3ca325d6225713c18a01ac56d1c20110ed13c3aaa1067ee16dcb28e84c7fb16e7ebe0e5a852a22a0ae2e25515fd4113c032ed0c86f3c13dc47aff64876f8847bc168f84ca824ac2b1c4c3738e0aa7c08f39c0229a6e3d78596a422f379ff55b43452609fc2d91fe79d7b25ceb67ec326eb21d96014e78025ee700ca55bfc8e445f1890fb770aed851f377f5dff6009111051b59f007323019b36d5298faf307a0d727ae6b12135a6d74c26b1bda6ba5df8605ace4e8e8bc6b73ea41e14e9e789b9b1b29f1d6f9c9fde6a3d91f5961f4e79bd6cf91f1a5d19948419cc26b1bdac9a5df8a8d5527a1f38747817ead070691d85d420b70a8a0c5ad459123efe5a93e00623abc71096090f02e84dc32fcd2195ecd686a58bd2f3652f4313a4063d24c290503ded8a2f77b0af828e9895ee81e72db7b3cd58a0faff669abe92564587dd441d1a01b9de5a7984860d09b9759bf8bba7fe0dd3ae1e5216d76c6bb88be7f82a7501f5af023af569cac39082d6801143afb3eb27baec566bea6d2789dd0510e0789d840023d2446f70d4df12726e6d9a2c86831535e2b4346c58c980da25f7b912a4d0500ccde688f866d36f23f7716551fb23f5a58bc94097615b62cacaef8d91b951886f5f7196b366c91fe9ac47367c4eed036d9397062375b879fb318ccc3f0354e4863ef5e5d0989067f4c8da9edfc22a89e7feb31b459f5702ceb4437b3244c3bf14b68d12c4e0722894f2c5cf6b89eec48e15396f3560b32bf3245f6604d989d6f19c25a65be570e9a9cb03d9259dd8d4022607bf79b7d5ca6a8f6f291e4a5229ed006e4faa6139ad30cfeaf4917666e1030217302cec8fdca44a719a21b00d86a31220a450ffd38837f4542ee4a757526e3ec6c527546024c820fcff0493bc588b72f137cec45f00138e236da8a555fc5cedf31960e4a1c22ab9728ce24c15a3233af662ca9c62e085cc6c63ae386ae9151471f51013e79a7bf327d29ba97e9e5e77c6d83a388d26172d5e9f4472ba6cd60f6e2c34bda6501419fe1cc9c918c4abd0fd062e6e8b66e00781ffb53b43ae3b9b557dc3f2d659ed758b9e6c93d25996fbe57ee01ed42fde4179d2db86523c585f88a9a22a783bccfda75aaa71f32f732669976577cfa4a29f5cb5b7a56749546154a6295aa99ecd2f759bbfea2a45bfd0e19542cc4d2c0f0fe3983c967a403dec309499b42628397c963b9334b8109e7628942b28990d4d114c7eef6afa8a2b5995fa385aaeb8b26af9bb9a4eb78a94dd34117ba0bfb8414a00dc72a0f03869378b9e28ef056bd0d9eaa67e14ad7ed5362bef5f44bfd78b2597882cf2d3d4069f1de6e7bc1e1ca45a0d6b5c0c8d3c49b64b84392cbf9f97120ec9eaf588273a000c7a007ee2c347e30162c02e9220e3da06370b8e57b82204c42c45e8eb7e72f4701c41fa381b2d8afe9f32340ba78f32c85b1a86b94f899b80d58ea14400c6784eb83f936a1968886c4b1d2ab6a7dbf1d21e06b2afe2dded61c8871d38b893dd260f9d1401dc42aaf72db76d4aad51de87e63af153277b972363ae7622b1c0b60cc9bdd971fafb5f27ef05eaa73fc4dd09884b7cb836a02ee3973c0c155ef42e1be2029defa5438307cbfc406a9be2eeaf6b526fc805c677a89f4699cbea00a96c198e59663c926caaebf12aad7c48dc927bd34b3b6fba29d3b7617a374d4d0bfbe39b436efa3f1f9256271708607caf8bce30c3cf49d1e23d5858ad2b72dbc1e58897449e0332f94c33818a3626e442a3ade86080c01e832d65214600517ae72099c103847fe4fd3d8a6664d7edcc777691835716b488f3e23d24148c0480f7089253226abee7d000bac126a43c47a205f2fab4a86cf028e48f244211e165844f030ed80f1bc1e54220144754ad3ee04fa3644f4f7970b3c24ac630d74a02154c36cf32510f0edf74358b070ca978ff17ba26e4b4ae4913ae184ca3f83829f8c8f13fd56568a288f1756f5b9d3f3d09d6419c32aa4322120f3f1346b32192a839c81b9e8c74ba02a39264ba2f0ddd73c716370bc093ba2bccae5ada10165037246e98d04d0c4edb7aa24975bc900f4866c4114cafc5754364808d74fd97292c2b046e68244a0dd1f37c3263bd0e268d4579da332423f61467d3b025d230a1c8bd6d8d08d26e5f83cd67da859cd9878871d65cdc41ca5382e95acf60e42688a182bbe10ea96570302ac695065b28e2a322ff939cee0072ae6b31616248aa0cf84cf6e5363014e9373bc8d9411cc2d037d8cda219cf083710f9811543f1fa2f53bb8c28fb9f79cfebe45d14772876106876bee7c671a22dbfaddd30c7b177d91bc8bb22e7eb154178702fa970f8eec1194324abae0562906746e224ad2cd1f2bdfd7f35b50dd9f543247cbef3489381ca9fafc0bcc1510945142a55d7cad6e4967574fcb5aca32e1cb8fb384e19848285fbd623ec4f497db90e27d32542a5e546bd29198137ad205195421c9c1476ac9d10e812930fe3803233bda225a2a4688c9588ea0b67528b5058ca4c3558ec6faa2351cbd9423f710e42d0351744cba7003884deb346a57e3a2eaa65de9c2bbeadc8344467b2574225ea5a8adaeee5fa20f373cf7b07b386374a9003d7e6613fa1b824df34792cc75ea4c74bda79b61e21469dd83bb4a0f6718c2c05d8bde49c9843e94bd5a6df60a39280bdc512f50f20e4b135fb4ab48303325b80292809c5528145ddbac6bc3e9000ebb82ffbb6b61d4d6a0d091db644e0b38c2fa0fbb8fe2339d15221e93ea15ca1fbbc53a88c40f52044afc936e685ca53b33f4c4476db615f2f635dd8c3e3cae69f11cb08eb11595570349a09dd48c6424a9eca8355c4dab869797d2b5ed24a21acd0ded15f33612ddb03205746dd889945503c7ed40868feb20b4cd4113a37074379e1a1f2cb177336307bf047a8cc554df912b2094afd8c7f9af1fbff3ca3a94ef91921a03df0e024a51ca54ddec15411d05acb28f6eca794ed97970714548b632a7dcb2525936d73b013d5548d881f24c3c9e417aafa398f97c7541495f7eda20e0c39b102d781f48fb475f5af38b3e20003fb8ee2807712a98d1f99f3407b9bf22dbfd62292d87ea31e9b3088c78dd42c416c0a1a3ac3bc2bf78cf44ef2ac509de98b702048c0368bc1656a0cf71cd7e8bb199075013f20fbe490023b932e80ba27f9c471a04fd0ec160c427a3f0b5657d40ac20a291dcef69b49d945cd977283cebdf8c7da3c1c09e1a053a7b76c258e455af9db4982fdf9f877461dce9f07f58669615c4d938f5f3e6a2f2ca101df90338a8da2f869da347c29704e0fe4d0b9c7fc99a682db4110271d90683f7122569085e5408773688418d7dd684e38679a987b912184eedc35123d5a4fe4ecd7e77b1051cd1b213f823c1898d4bd0aa2782d133c8d20a155667cca1a805a5fabbb387a099f93a83acb2369c4b30eaa61c36afa43ce447214bc927b501d05b36f0e68b73fcd695c910d44778a13169064bd9571c91f4a43437302be5441e642e8630eb544253fe8511a53994c826f9313109230771ac2e0170790f9954d3de84a2e3b853e715369cf41362a798f12e3966489890dac47380372420b10c3a2812dbef45e827faf53b906e3f70cc91af0948d25e849acf4dc2f86017203270fccabd0d2e967798899bcc128499ac7712a838e650f61024a4c51128168499d4eca669207546609075c280ce31c001813116f3e0d7fcbbb1634289de0548dc818da5badbfe9285cd05ef77d804af93821759441a6d5fe38e044422bd2a39abb13d9646b1f7b53ef1c7a6941c394f0dc2860fc8082a3b0ac2dc889c0104007186a320d2e2ff4ddb83ccbc11a0ab90003d6d52d04c5ab3c38eb8d9901645188a606c4153693d149aef7fab2787f66e3ed42937107310354c13cc13064ebe4398bdffadd97ac6172482de7856a228059895a39ac78c606705940f101df506113c71d0f588673a7b6f8c3ef081d8bd4f0fe537a2745839eaa2c527c22839a92491085fc99e278a604eb87030ba89e2f261a14fdc8efaf7bf104aef08fd9f759ed32f66e44d3f5407c72a8848324d910a6b24c14447d79c42e37cbe10a25f7afe235c98220bb9b3edc00747705fefa711f91f2312f709fb54c4ee7b07cdcb18aca162a8f7bd5f8783215d26397d8c414431d0db0c9956ddb1fd29ee1f804fcb30b14327a0f911558612c0e768259425735045a7b837eaacf9f7630685448a23d99d0154b5dd902fc7547a7266d9e224ba0c9396d134ec0c53f54f67267a884f12098130a2f4555c05e974cb551798d2233aa06222e369fbd74b2764f98fce0dec72006f626760f803deefa86be349fbeeeeabef94327d10feef96b88caa4e6fa254f67392b17aa81899d1eca8e59dfa5f2924722a4c37d67a3c9268e9e9c649da28f416209f7e9d1c9a82c520ffea3db91d23a00b6957ea336a1ecc289dda951f589c037622f8bf225d31d319c1716e710211b9d2555de381ba4af92b8af955cd894d9bbd675b05bab89a10f3e5559a45ca1189b269131a91db9b087d73fa1a768bc4288036455827407fa947102537fd347f8eb7a6295d67a3b42fa44c8bb9e0a4182a27da4db708513e3b579a2a382a2f17573234d0b9bbb1dddaa1a0436e013aa1514007223cc4f17ab3799a65a66596fad5ca718ddb4bcd8869f1abf26c903f3995013695686ca3a23440da2639d273beac9079baef6072fd20805e3317f4493c7429404ae501d40a6df96708d7e5d529782e01bbda494d729db97ff68048f613f73da408b524e00203c7f0b3761d30e4e6117564eed999f0a77b762ed6e03e55a735217fd2650be7c4133e51cb553d230d5109f0b204b68b81349b7fe0be49d3e2ad372a1af4cc24fa3ace1a532ca21e651e52ed11faecb5db47577876462b49f139d876be1ffda14534d5d5792f871427c75ee6e14af561b0e3bc62ea60ea4f4d20b81615858988950fd99c5ee29d938eb8198c6d463fa07690a46319b47c02d5bcfecec95a1e66af2744e757c05bea2777cace9241fd20eb7bb301042f5717fe0468d60f09b75a6062a3e17e9f43803f60937b2805439c4d801ed528402abc95d84ff7eb5b48563a22e5ba429f9c509ebe15ba17a6b4223246eb5c9eb35aa815120d8315dee55b95158ed35f23cd0a580180ce0909be4220d0617f2b5ec470f3aa76c55b62604b316f33139be36d1c1aed2e2d02d6265336026532cdc00c2a1807973405f91b48bd852e74ee4a5b58604690c61669b5c7276c3b304736f4fcf911938319d5acea2ab3f0a1c3463df4517b7ec9e99a25e90a0819c6d28e84f9c646289478c75dff4a302043f2aca41106e2a32310888e2ee4f589a4ef20e65570c4ca13d68ed6a81e2e358b0d8f2ebb08048245080b616c613450316c986c00d5ed72ec4f442027781e6a27c574cb0bbe981a5097c26de00ed8c11bc3f8086511679c24f0c2f7c955fa2a206fb0ccf00df751bab8dc308b00ff825c625d37e5c0ad21b42f29a9daecf5cf859989175bdbaf088238a1efc6559113cd255d0cf9400ebed7bc5e86417e3aed010ee511dfb418ea1ad8983f92ffa7980f9c0c081d663a9dfd60be1749513fa443f2cb02b5740cde2e008aff771b8ce0a6c4c6ec108cf44ccd60792294e863852c8848d4e71f09c0f8a7adaa14205a5929fabe91a202e9bc965a69aa9ed3a796df871cce5b10a52e74430b514559d650e6731a6b8286168c8dfbc1d711dab9d28c850b3018a0c1983066edf42bc96e490c29c0916178d0fb11125b5229df85a28bddf0b696ca6a259712e7add005df56d0c91d6b73f22963017c612986a320884a102fe8d54fb49bbb765b1422888dc8e3dc15a8492bbb88d3e0d1044e263f2b4940fdcaa69786219afa404ae893a938d0e9a30728d4cf1a5a0705cd25502795d3b3f8977ad6f333300989560c7a2719f6988e6898fa9bb27662174b54a263e9f59ba30f94411efd484b912bdd533e60c0ac5e145f22329992cfb7175dba3be34b100f1fc87a9952b8d25cc61fcae0519936c65bad968474d04f7ee01e1a444c768770818a13a4a6f7deaf8211f9f323a207b0177ff1d2b298324dd1352fa2458dc1d0817501600433bac16fd8a64102eeebdc734bcbf653b545a7801e458652fbc60dc89b5140847285a42f20d0a07b1caa5dfd6228716ae25283fa384a02d23f6784f5cbd71ac9a84b4ec2f482ee6321fc164da88025f69c671a4256f757ab1148b9bd9c8016b4e1ae4929ae31ab3d4132125c7c28161f4619eb0dc3f19bfab5effe2018095af3991f54c8ac68c0e4bc255c850e585abeb1796faddb480ae49e3061b1c1439dd116659846c8ba2b67239df1b07785b60b7bb944bd33745b4ed4461b7573305edfbfb2b954c05d2b031d0731c48c6744c1cb8aad892f540aba9602e986c54f074ea28b1a11095b2ec56129b474ed2b8b353b6d34734d17cb66c8868b0c43976cf2514aa72f3c80dd9f50cd0a3363c7e58dbc9d35d4cf27018c8e48dfd1c2c95853ece0f6093c3011b90135f853d46e000ba488e6b59f65e1dc10a24395b6ae4c406850be20bb14d953c453ccb71559d9221262b263b782614d1decd43feae533703ef632d339e9db12132a73ecb03a2a7f18f85dc1c8910b222e3815d4c4b1c9f936e6deabbc4fa666479eb78994c58d9643551d11cc0b4c8de45d08689f72a1ff7745522c46456222c082448712676c2c7cf68f39009032f7098d77f3ec86c192b1b7c576248228e8b7ee160de8330887e4e962be6a5ccebe03e3c54c8438200890f43efb307b10919d073f88e30f39143c08d1b5bb54a3c48d10f166ffbc3fcf1cdf34bf721707abcadcde2acfa1daa75e3cca3ec6b2b09244b48270b8891051360bfaad14a2ae900ff96b71387dde9cdfe84f130e445ffe50ba86b123670e053b19c58c7716a5d4bda6b1331606d0af1a18e89925aa21833858b81919d091c5807cf201ce3beb087c9eb0d7294fe7c6218d9c04f197cbc026701cf3f6abbe70229a4d9746d0adb996d45e2334a8ce9bdef2c81490b90f295de806aeb44aa184f207202f8a025e2892e07d3957b64146caec1b69b93edda845f715be04da57fe17c3b316b228a1e10b20e0230a6105e068e4d86abcd48499db5b7c8a7c612c7cbb9cce1f8f4c79539d9649ade233b31b3b385e211e0c8a2c7f60f2a72fb649b92d706ad8cbff473340c3ab568ce79c73246dc32890b062f40310522c2651f063d62aafc9b5fc76576a84aea8945f6d009fab8816f2c6619dabdbaf370e39d5129744f1eca58c0a4f5ee4819235b21b7b1f7815e9b1c54325978b8504e83f29ed235e5ce8aedd178a5c737946baedea76887104071047107d7f9da6299ad1ea3939b3438b2976a600f1fb22efcd6a660bef7dce0d9710eb7541e7342dbfa479dd72b73566e6d3c4319604734ea5347423165e1fea08ecc33f662fb62f00e7de78f12817aae9b4b7438a48b97810be59a524fed6b229c83fb1f40403b6aab99f4d5cdc1e54435126944c32c07337234ea9125ed1c6b76c45d420936e5166118a164ee6d97204ac42560c21b69335c3f385e55222d7db630a9ecf4e126ee2181546f3493a9dc35e2f839b5a15025ada2e0cd6a6c82a327d0846c62e326ca73c26cfedb422033903ac888f13d9bfbeb3e05ef1fd418471e6d105a4b87437c2eb09b162406152f0fcdcc39cc08d84061b091d68c333c311a57259db61ec4690895dfdf9fe05f332838b8d032a7ecc4f3cbacfe5e6d9a7604f774f5049c1d4657d4b110be26f2bf3fa655bbdcb78a4030888e89e6acf481803f6591ea2279cee898ef72c5dd1934ef7828efb2d8ef813a7fb40477d16a7e88970fabc526fd98d3d59aeab57f62c1cf127d3570064edfb3b34abb7fd7d73c922245c50368c9bd42ab7d66e8faff1953d5e2e7dff8ed3f9fa7e425aa990e4829f31d347843e8a9a6d644cfd5d61f674c5a0cf37cffba4cd1bb15476f87aa45f791a4ac33cf530163cd24df05c84ea6726f938bc3bebdb69be1a237b121a14e646c4d0378e9d22730d933d350df857f343bd95d2e0f20ae77133433be658e8ad37d154e5705b53d3a75cdf9d2d856c964e126dd62f78c77343b67fe385d86866fe935b09fb710691cdaf5726fbaa61d0f3ad118005eea6b32e5e7797f84aa9d3cdfd5c491d5a8173ef6e4fae544d59bab13e3aa65af2e7548b601a9d2c76aa3a2652ccaa012f6d9023c5cb035f219b823d02ffc8240e7a3251802fa4ab146104b91c7f0d16ef1b100835ef858a211e0b7aee3a1ea421cd789041ae3996772e7e3d451c2d0d93f6947865f6616d044914e73c90f27e76da0d43a58260c5e45d549e6e1a789ee7ca12321b030959321693637aee58952d363e5bf13cc504e9286343608d852d50b208e18d658d6a39d84a091ae6bf6ae41ec529b16d2ec6726247f875f464bb5132de7ddf7571a0745f2098ae958d528728d4a86aab80455157d03176d8d3cab108491658c92f9c1d6312f6d22c82fcff3da1beac981583dd08e5d9d26c0487187dd864831b9ce5226e458123453dcdde21cdae7ff6ff4078082f0da1ccd92a11db28d35937170c9a74cf7b6a700c08db024df88672dbfa135c46085043c25f05e6aeadb9732077cae48f44f320fe0d42ac2203630d26e94fe22279c8b7e9ccd985efce1445e1211d6c0d4e37802c625f4bdbdd0ea2e6c8edff37ec7344536b21b941efed96f1e45ee171383c2a149e867da9a941e4312d040e97dec6b7e11a93ca5c5b73a89dbd128e5e38f3c692051c1afd7940fd8521c49074626590417ed84ca3d7a2cdcf3e7b5326e403e466c20260628d9bd079ea526111da81a46bd981e5920a18b0359d6532f668fa22d932e4489747c0517e7070a608d1cad524adc1b88110e1947b4c12547aaf6aea5b050bfa0364f78693f567db1e09f75279cc46143dab67494d3e1fdda14104c7fb88989f8b58babd530b16952b0a7651a193d9885f091584766eafedc8cf7b15e58e21f086417f2cda8936041a07bc9ced52b866059e5203a527c62715676a1211a2edc08e39652195e0dcf2e71fb68b9cc458cb103825942a7029af57ff108c6289a80d5cf0d243c644ee89ba0824963ed39f899a4f2ca6c9d9407f2f9ac2d33f86f7784d1efbcd9a45fa6ab382ec58524484d1c54003bd313ee8b024aed036d9ca784e4bbcffa165acb261995437ab9ccc9d7261c01b019472e22c0c6379c0e1f931a38a1c493de7dab342034ab2d1111c04532b62565cfc455a10895ea6d59221e823fa9da9214888768977ce6a9cd78ac9255979ab97bd1731dd2f58d49c337689573901d33eab3a3bca2619f91b684148d9d2e9ffce823086dfd062deeee44a180a5242c11ad517b51f9c519c305a842244c11089c31b8a24da84b6067ebc96aee7a91f9eae5e19dc49265f29ee7368c778ba7386e2fc2b1d50acb6246c562cf12b6a5aafb6378d4dff6edcab4129b08ab4d66b24f764e55836222c2c888d320bd8c1492ce090c0e4c91992949f79786ef73d61c9b45cb9adc23257887c37915507488127babdac9a7a2c56e99245ddfafb3b0462e57c6713091d37d47d58be326f4684c7e3076c56ed4e774670a6992e04486b7e25c8295c2a22f07aedd2f80e09601a993fa518e564833b265ec5b5c3d0dea33c4c4c9cb0ff956511f9376e783da708afb860329a24713215fd3fc8003fb891218b3b6cad38911668b78581339a9ca26eeb3809a6a1a99f84cba1a1ca003c7584e4e8eb9782b7a6368d0d925cca897cfea7f2e639ca78bf11d594d701049439ef1f397f9640e33e8401aac93967d9b704cf7e5c4d1e7ce368482ab5b1b42f538701a814305009e7aee21f914ac1fae8e20c604c750247b64ddb379a5b677516c5145688a43a7b23405d49188554119c7fe80c5d6bc85425e5b918723ed06eed4c58a83fb5e307eb9a1a32f1944333aa28b71b9da69f8eb51f888a3ff3fa2b502107a9173f7800118f7a244339820f0080af35bb9bc5be5f46a7338905e89c489420714408aac158a616bf859bec643ebeed9be43fc636638d82ff009e54d4125fee67313e29b4fc66501a5c4d161c5c107cf68e144b7d82a2cee55d75863c28a74497886aae04201e3698e7923f38ba8ec29bf8457981b509b957f3d2ed001aa38267f6fbc50d3ec03f3a6862a028d3ed00466b3b7886a33cd504a5f5806453ba8341333cf6cbb1d87625f32d5f130ffdeb6e2c1ea713841eb56d0362c2fce1d2e7e25e6569999daa8c62b85e242cefff9c3e9f17fdc35983f62ca7233fa2feada5f9645f4ed4bbc9ec8fe74847a2da9d80a085c4d0298241b66357fdf904f997f37555c630c39da1cd2b2ced7419674e9328cf5c14ffa9f2e06654eda760d150130120666e2b7957a59ee5818c58248c987ab72ce6518501bb1093efef72f682cf0f1f5bcd8270f88d3f073b66e39f3eba3d2ef896fffbd890f213a782d27d818c52542852bee45ff090501dda68fc738bc235f85e90f771ad85ed97fc0e49ef6f67123154dcd2151dfb72197be77658fc23c57ae3d3986ac1074019af44167786f30c82653fd7394afe8ad14c88424cf8b84349322e291dd94c11a3abd3f35a5934af11a3a256e3fff8864804871612ede039275780e71a517887fc49da4cdd6fec94279c601cc44ca6711a5b94c252c737810a6ef3807572fdf99af328ca31747608d202b54877444893bd9d0dd380ae124b15e53ecf38c164a46fea8e96be264320ecd3117fae354bc17fbdffa20665023777985f0c9d85e3360d0f88a53e3b773e38411124ad007576348bfaefbdd6156ee86386c89f6f51d3d25c4ff51318ad8b01e897218821ddd5076b9deacfb4ab715f703679ce8794759b2c4449dcbbfe2c2cf8a588b17ea8315bb9ae6ebc80ae52f28f176229b560151e7bd1ab9ecc8d080fcc64574ef7e0d3bf68e36cf845ade6236012873b69534517b74c66694445876defd07fedd714de6602ea26be9013c88111822e1c81f057c2215e56968f2fa3a21f0d23b124b76569479dfd0336881715c0f2898ee7a1727d784cc82d7996434e7bcaed8b90b6a4b65a06042e7e2b19861fa81c53ac6777ca5e4eba850c315faf651c6ac1074401ce45e4fd073eeac5e909d7d303f2068915741e408673a3528ae92d0098f778f6247151127693b2d730ed116699cb186177052986f6058a35f7c11b7ff70fe56cf459de3cdb9f85c77f78e7b38d78ae18104317426dd53b62c9e53ab9c24cf9322d95515014a3b21696ecfe080eb11a3f61c54c9087060c4aac7421423d6bedb32a8f217e6cc4814b33276428a6d70f902956007d4e8c2d166e1157b8f2a3999c4eb1e9ec81617a523cfd40c90736aa0225615236e358c9d12bf823841e41ad7ed2f8753ba58683607e20d5a8a510d1e4bcc7fc08d13cac4aa9dfa8fa8b0da5d1c6e9a95ecfceddeb74de349e4fcdb9ab64344bca759c089357dab8140b40e175cf99c3aba2cc8893c7aec8268ab89f6833221d9a6f851614b5bebd216118619885a61765688146907821a9bdc84d6896da83ce2cfe02ad827c6ea9622651cbd895c83979d84c5ebabe4859dc3747bcd8ea263949b967de635cd183169fe711d6e02f820092b33e809759e509d63bded41225fc0bb20b50c3652b09750c8e2c28c9f29812ee0ee68a1439f53fce5cc91bd9b9a52647921db01a8cd179f212ffc4b6d4efa9fabe02dc01c33fd2c1f002bd0b37d6ec69b73846385b426e6bb2a9533a57ec8c041c754c88d8d4a114313b2e11cda125a50aa5e27810f6581e041b8c8c6cfcff4d5cf3dca05f9c642e30b28c00893f04207a1284453b18e9b453026032fc8453bcd37743c769b0dba3be296056d2e20430c6a56db1b028cd859d592388183804ec54f99187e50b59ac853e7279535d94ed9657650ace0dcf317dbb59b9eb11484c268049c43b8fe2c271217d24be038faffe3f268619a90fed3893ab9ecfbe97b6bc1249f3d46351b13c6219366f3756eddca111ea5a779ad3127019ebd57db5fc0ec6acf726c381804f0087730651e0a409f07165c389948cd8e646a014bef3963d52224791ede90145ae5a156327a1d9104bc7561b2ba15ff3d528f99959430a5c13753004e0ac58e1266d3702cd6661f4a923803faecf4c3e283a304d7bbb21ba9bc3512166e43d3c1c81184a14ea9bc2b39a0927ad01f559909e81ed4247553af44c6aa1a9e8b200e014b38ac40dc3849329013628f029129c792b052f5164d7d531e1ec719d9b61abf36c490dc188b2a2fd0be2b4ea1d36261d5a70e709df05fc6191f8e0a565ddb31bfc567570e9cfe5294b049860c92c96701423c72b75a15927485b427dc9edbe067a8447990bfb6c99508b30dcf5d8b6e6a3714228757e83b77121fb0f4e0ce26534958704a9d02d4d8415a9ae6b0ebf15d8509bf045d6edaa900a7985cd1ffbc14854c579e9001d7bd3f3bb2b2c76e9c04190d1a93fff49b978181c40a2a26e894846b0b5aefd0fd03726c4ec7f1e176a6847deef9e51c69049ae202f4df9442218755fc32312bd72e043b15cc97b248ac06625d8f01d156c30113bb465bdef83e376ddc75a0a2368bbe5613b840d799485bb4cbc0b7dcf9aee98f16253cddded0549ab7a7e7b8bb1d81d99a433080ed0d4e37a7596809adbebcaaeda34269938567e6dc45934ea9c713e19034acf7ae41e9df7d42a3f23947682b297aa855777f42046fa70a0efaada5a1c8728364982e6670338e2eac7c53be3a7943bd926346989114018ee952bc88c014c45d643fb5a5a6998f34c2faaca280189dc80a53da665462218a04d888a55e7306a7fa5548df7330784ecd7cc1e65e87c61747e202b35398722ec5f386d17a2e34f4d9162f2be348a9eb42e30354a7456c2a3221cae421d2d71090b97c009357005c2ee0f8319398eae8929c2405a0bb7ee80af5344c8045b78ee447ed2331931cec105e3e47fef698f2089b8a28007c68101c61b119af17565ee5185df30893c48376864cb8ceb28b06cfe3cbdf2233e2dd21b886919a8c6ca8c923dbf4a1e1c25e6b0dd0d8c5a0e0cc92bd5b8287e05ed3071db306a3a1b222cdd84d14221c5be3b851dd65e635bc75f501b50c484d2cd76a8ac16e63c297e68e48a3a39a4630831cee12d8c188c2cc271022af494e76b771ff28152a8b1d7921a3025fab1f2e925407bd264e475c0c10d05bfbb020957bc7f1a86669fc5c652ad7578e7cad7bb3dca1b548a920aa2919ad7a9aab4abdcda01e4265d70818eca9c968d2567e809d101d0d29a74128e0de4627bf6c441b815d255d02baf0a0eb21161c9524bddcf543aeeded631b1ef2386ea396f039250f52ce017e3be5cc04ca4c3fb64eac95aae3cc39589dfdcb0894509b0a73298a0d6b93eab4d9c8c93fc799477c226c8232e02b863270f607e752c62cd07766ff790886571e2157dc46742d5e17c0448bd6e5b5cdd8b681b7810db84c28e53ac995a6266348e54c1ef5f17c11f4aaa82a0b27500828756db1c625aecd4ba16f21b2b7ae8a28705668c516c8460f5cf268728f324f6ff25ff8090c489810abaf10a905a5033075b2e1b79950ca95d506d507eefee8910953c82a78263c306c7436a19116a76d70b96407f93ae3dd98e33bd2e4fd6367e66b68ca62e15622b50af1f43489cd23086df5e5a2b5c70ec255db05e4e44ddd2106946a096918bb940d87f7b86b3abde0fb28462550928af56c313d3fe3766949194bfe9728618a611fbf976bdec4e9744e08f023009a58525a27f98b8b12596604c0242516451080da19c72e857126029ab488bcd1b276fcc9e14b10ba6972b20c40063a0c66dee1a6f6074f49e268aef4b0004dd8c541c31398d07250061672598e96cdfe545dea26e73384bbfbe5d2ea6536ed092c5fa676cbc6af2f4b9d9b4542dcd8b5ec0a939491a668ee1cf3e862feb0e942db231359fc276043fa21948155c7edd04d166426ac894073bd342b45bdd3df50bece808c13f82f6a9cac81cb4403931daebd4e2d9bc71eca67ec9c3b9c790f892b083a9959a2d3998cce057079efd7e002cf04eeb313e2c8f9d40244ef73283b531da5dee458fa3e2746f804444cbf910e665922b738c68836829f70ee9b9c878881b4500a362dfa4fde9eadfac47b7b9bf38c443c5d97245fcb6fef8a60c6438c223b34514253737bc8a4bbf2f24794a5cf246ef5beb1e418099803ead8dc4c24cac2435209df112b2a440785fcef8975cf559fb971ec0a3626cf7b088b25640d043168194418da5234cdb8a424ff472a6751706232e9b7df7dbea53acf072b9872fabfb60998df69bad14d31150cb2958abce918f8420b7518a67255114ca06b474ec60460674495b6fd664a1938de7e8ccf25341cd7874f4fdc12d3fd0008c73d17df08a97796282605ba8664b333a863913bd103b382946f32743f8d7a86bc1cc9cc04558b3345972eeba5afc5adb5429c1502ef96b2c1987dea0e2e9429c635b0ad3865abc77067d7f8c51503b685a995234332792a05343cd0603a4cfedacb92186f504f25801244bd06786079215d72621811574028eeff6f6aaf22ce2074b4c9f60bcffd20d971c42969b4c393a886a528378d57a31d8dd1dbc8689d0e18958b29b81a021421b3d16a6ce55351614a46ae8f10a9217439a5bf1ca48a3c4218db4ac6ff43e81ed9399de56f7c5633f5ba42053fbc6bfffc56b4c27ed14c64e366e4fb9c53d6db1cd8e8981cc0f85116e45cdcf7c5b3419691bd46ca01354c21d79faea67a53bd621b401809caaf08b8568c073e4bd1693e6f0c713432899afa0a4a1289d0f69a1eb153c838f41824eca6ea107f81bb8d2c99106392c0da5d88d6732220926a8a1875e8d6e62f133ffa529e7c6a2a57ed4ddefc65f9077dc4cec67c6457e579cd35a3eb159e3876ddd9d4dc58238c44ed5d06c54f01d295b9d9d7e454d482725a3526115af8e18a6fba96d00271d39ada8b5bb75be3178c105133a6098a1a32d271719c38a042e210d74b9a0cdec5d7de47d8591d11c573185490a781601baafb21bd225cae959713858a53347a6085cbfd0b362b47a027cbe98cae4555ded40193d47a94e6b65b773937c71bd5191fad25dc0089038f87d007c9124b746734ef191d9265c99326e0cd961ab2056e7dd74f2ac13009dc7de2814f79673aaf56f7d43f48f514c7e9b4d758e9e7a33df45d6afc965c43a72cd40edd518a7e75a901466fbf9f39ae3e810ba803c5295b68a55d0bf3ade0beb1b396147af60b48c1afecb2b6e6ecac6a530d8f6e2337d4fd72ad30270f2c35dc9c6fd92557f3bd6f9cdde64e3dcae769458b3a45e03b207e41f07e08a903c20fe5d8f69658239ebacad62272552442c4692640568209eccf3dd51fe19be2033afdcc827f6c0afdd959cdd641fbeff864c6f3cee55142ec8424c7f91c638bdc1336d82c776677ec49979d8fc4018cffcc4e7c123de0090dbf9a8dff925c4b55cff4e96cd7163a27a707fc9bfb4b7759d1ee1a37046da9eeaeafe56e9e422b9b2bd7abb092f652f232fa46a752483f1404a6e4dad27fb341487011b63816020f00424e1c2018c20539ad93f01824dfa8cb0d8210d5cc44b381596641abb7c3cf9a3bdd4854e5ececcc01e5bc3e69b10b8507e6d0ec099518950db00b00b649af47f4785bb79f200e77804409cd5256801c16a069ad77bf8bf73949ae9f43479676ce709138297b0e610002835ece8d6bdda7be40000e59ea67247a101de55b8013081d7d20c97d8c84c81e5544c6702014386f3acbe2a97d92ed81048720f312e101afa80d0484221e52f08ad9126d4cbe731c9c10c7f8c1fd355a64fbd455623cf640f0b1b22c70cd7875d5f64d1536bffb44715d0496a3b417ac2908968315e33973cd63d26e8535c5e90d90ad191995736e42973e817b3ded977b95fe6e14070ebb77ffddf70d6e122e7ab8a44403c7f34c9d3df958952dcd185be8d8a020f0521d152388cb8a1b09556a2cb21599cd4eccc355a903d80e2d442e97758af9cb109e016cb7f349a023ef08836dcc5ef489a60656bd00ff4113270ea4f67257dc384a009420c765d89fe01245ce89d7d2449668befaffaa0e40b1467c910d9e7f7cd999bfc2601e487d58c13e5a3b15613f88b0be7257cc7c4b21abd119847d093067b1bd7c160b4cd5d9486afc98313cc7c387ec8c6d963d96ab92f90c853f4f0db5e9f6eda1043223bd881e2dbdcf9c16cdb50baf3af1d77ac95a9c9cd69da46680e9765ef7a96c8de34bc9701ce5c88f75ffc71a83a44eaa4af624a69174d3f196650a445cfcd6b52348c1641a20a9fbcead0b800c0adb9521743966e915804f0ebda331d9602308ec8301f88615767047409b58531fc216cf089f84f4a5564519d63a0277dae31211c50246c8c33cb14991732590edef9f381c9623325597e041a68bb9b2053d7526c5d499413c63daf8bb8f5bff9a35c9bed031cd1490f58eae57133d8dbce203b40e48cdf795f80fab836d67818bc9f26e5093b52344888ef7854bd30b38ce672c98c69ebfc2ef5ccbff4109634600ec7910cf6c47df5c95a52ed46cd5dc66b8f5ad2005274f5a958d2f613789225bc1d09459d8d519bc8d242a90789e527b05dce6b116ae169e42e0420885644b0d647f0a2b484b92cdec64a41155644824ed1a5aba0ba60de895f2e6de9a4845e5be0521e8ff99a9958c9bc13a01f57dc098509507d2f330f362c6c524a0c8dc1bef8ba6427f262ee96202825600f0df8642c4bba1addf2302d5a57bf81257a82c49f579780ee54cab8ff1f526587835e8922054ae484639bbd999c35abd41dba917cf423843434c100152e0c83694084ff519fe33a92e19bd6a0652d0a404e94e7604d1ba2210933b3fe091b570b48eca5ff713a14c3b7883060cf1e72cb83fc81763b7516cf300259ff6281ec878e50d16258c28a8861b55103c2a564362c8c750f722f8a44ad79c5c0b1704d0043040762c630720831554c0b9bbba1f55b90907fdbd286eb5114f08147b4fdc22b2ed4446bb98857f00faef3522486b725f02dfe0739614cda2ba4ee9f35f951483fad59996fca9639f1cb7fa1f2a1999faf07bc6cb3b6f4be3eb9621a69fb0bedecc86ab824751f972600d1a8946f5d546acaf8e55eb57d1434975c2acf104fa1b1f194ef18ed15903193fc8d73deca0419ff1e109c7beef9df0851af9f4400ae089ed8c8a951630b49bbcf804154fdcfefcba35b9f48ad31364482ea79f2ae8fc6252b9a6b120fc85ba9974de25e6e5de70158ef728a5f041ce61055b2364eaa64bd8489624c18c89b17a4fbfa4e745cf95142a9aee6fd9487ebeab984ff921725ddf877dc43a69cc4d1cda019fa432013340b0972d8d042767da2c1e67f34e86734bdeb898b4d311e20d64b657f2b197be8fd408fd675067ffdd969e06ab19a8e6e692f54d5f0e6457575ad71c84dcee7e027a8307d75dde73ba3769df4670383aef3012c02367bc829ba3692f371cbb9221b997628dab437dbaaa2c6036bb37660f037e239e4ba3a59886842107f819ccdd2285e0fc5d98998ea26808e3c1f862d56deb8875b37e925d8bf5dfc312a70be641a6f0c05c0d5af28134b74d8148ab152863c0042b30a18b8338e1f958976b5cce1a1ef89a8540470067b74b45cf4c1e32c5457be88b8121aa4bfcfbec5530d99baf3300759ba14bbaa0e7df554b6d03bd88783fe0ee934ffaca5e04545721aaca8eb1853b8534a863d3d268d1d04962e59fc01002ee3118810307b6af1140c572e151f70d412d603856966d0639b88ef2caa9611e45d7a031372b89b4d635dc03a72c9552d98139e9bb4bbd580d2e2c59e6c5049ea4b696055c8fb232120d3c9b0c22b3b6bf4924a166aa66b70959a176d41920888671ee0a026e755ace21d443b387e11fca72b3ad3d15d09208129344de4f684cc948482750913009da9fc7802c6b8737b9b6a45580604a725da78efe54af0113b1818d1682c45bf27e6e7fa5392ee7844b3bb6e8633b2b7be0a4d0361979790a13740c10e847c833125880edc4039997c0c109ed5e4185597cc4ab20693a9af27775c862c100316d83ed3f64e1b1159cb1a4a292548daad910be6b20783191838311c085b6cf474c117a4aa6a757ce563d597c444fb31a672d455e96b20432e1d3d166c5a94d625d1cb367f730025cd9360396f464c61d25f445eb25179f95652a4a4262539dfb4e2400223530a5bb61771f0c211d7eb5623f9c8a059ce51353bf9aff3a946ef9f2c269e6ac749efff54c2a096fbe795a2327b2bc7e0b7d84e06a25c27b324aab1ca9b838649bf7419cd8ee33c037a83b614c46b75c813117cf3b0a89c89af87e2a35d58c75cb61f6faf99348388c3f66fab3579bf09e0243b3c2485de22cbf1ae90e9771a20124f6b3b48d8b32032f07179eab6ec15ce4dc022a7fcc79c8ba8eea5eda7a37347ab9e361c9b07d720d6233ecf236148f3e0698f748f44080e8c9806bb29830d7b6e36524098172239001400733a23e30e079c8aa3501c08333cd2dab9f43d8e9456a15114b24cb70654df884be57bd494cf8f75a35998fec65131a11970cef58b3233bd8a56da5a9dc0b28f0868379da4818290bc3001c7bd7f111fec4f41f18ec64554cfa9f14573598e5b493e5528bd5b39fbd8c1e69a4cea31096b5ae3caefa98af4eaa7c1260f6ab042ebbe1292b8676ba157aeb85ad1bf5052e8cb5fe823124d4c4d24d54f52caafe153b710cf637fc7f36480e856f5a10bf46441e58d896980f6262b5f9aaf6c6160a58e41e4d312ca6a3759c42688b0b34e1c45234cde8771a4ba8ab5016b8b258d79f5cf3b262630d43ac6b9dd414100b19a78142aaa569ba1187fec4f04393db3784101770426627e7cfa43bb5d169cfe7142c8d0a7eb2bc08b40b7eea66a80d91455bbe9ff40f63b1a375805c7c1ca3c3fdf4c8dce65134465a99ac86d8cc75c3d29df602fe3d55442152e877429a19280903041776822543eaa32f1692b42b9fed0537efa65258666ff35d45600b292aa9a38c7aa6807a4cd0fade15ad0d3a330ab595b07148d46bfb88cec6aaff501abeaae689e601757b890b1c533f4642b0359a234b7f4764f89ee93f4019f349371c827a997712acb8a4e56e32da59cd48d378352bcc760620368d63cf384cf69ff653e620f40035eb042ae74e500458a319f32848166bd96067719052333fb187e23149bc50ee4dd80020f7b9d0ec78e280d844f13ea30fb2757d32b1e279807df88625528dd562c754115a284cc5290e23216c971a0eed620b71165f67f7596a74b02a906d2cf725904a16908edf8f4aec2eb9341d70702f6864d5921951067e5f9574fb8b9b0913424def5813c7713520775c974c93ca1f7b39d11db01844c1cd366ea22c4bae41c65c9142de73f4ab2cdee6c374167c3a2065437e90c80b76a7048fc39433687288ba1f2f88d61c09752e78e8dd25034e3c54d6d516024dd2cf1ad4cec000f692ef5e069f312755922c2e74c17b15ea5a66ec44d75e3de73eb8d71d73d9e2c10b8b155187d473a3f404a1c423fea0d28195bab8021a4ce8b45b829ec4a399cffb277df146b210d8275bb904a7f6b02c47decf166691842fd79dfe94cf80c6a6235b374d50a5a1a2308b1ea2a590387ff1937832fd59eebb6386f7e22f01c95ed2156151a4fdd8c64e2a3efad12d62058d7b5e4c00b1246b65f8bdcd810e4870cfe818b99d61059ee30dbaa808c2889eb14afc313bb02d3f714421be7884aa5ae8342ff4129a60c5dc44dab5037fdd1bb515c02b49d991602454a6d07a85acd8b3a13f6a8189716af8f393a6e4b5919883f8359b769a006ebe18de4673e9bc8a1bd016c0e4ed8145622251cea772c2e4041cac55b0e16574d0840c488bcedc043b861a3a23f30d14efa4bbe070723b60b2c142d8b0f97a8d481a12dca031468dcbe71008f5c559b0e18a16a982d3f5a581bc3bb613acc4d896df23d0c1a1f90111e0741984253cb60a6ed31409b4b12ab73f247408946b3b48205b7033106580bec838eb267e5b58daae1a4998dfac13b7575173d4bad8b255a80b8a982bb44056c154080d39aafd06aa189bb9a447e4f1cd6701aa69dfe2568ee3eda71fac10b9bd6de06dd0467ea8177d2832de2a92c342f4eca7881c5cef3513118ff5b74150574ee0435dac74acb22c5068b9fc5202bb529da06f718cc867466323cf9b5775bd6a370b1d068bb0283a89b15fa3f31d107538ac7aa81a9a8554cf57cd2f4d3d00e0b1aa183150f6fce47f434c891f9f0349c66f311971bb4c64b6959e0fc49ddbf88d7cae144a90d96ce987fd5f00e6fe03d5ac443edd679b3a88fddc81829ff56288ba0c65a133b65cea2c5817998aa02b2b5ee98fd646656c47d4e7ef2dad15c22acf20128009a8e281d46178866060390978469c101ae268cd0cad1ddfded793afdae22db431aef934f00b0629fffa50103773cc41994115cff161509e9fa6581067cab2e1a21a363fde8c46f2a45115427021c421f55eb6d7ac4a69a3ad477b238d16dc684eb95099bacd5cf4114b73570818a150c846afad6610dec0caa9b05e726c63d9ba92ddd1bc2e180b7982f545101db480b3b7cbf32556ec235731210eca142fbc792c74c124a93a4550a697d34aa2305e11bb7be59adf222fbea11c50f08ce34e26b8b91ea24b84218b2970ab83b04c457ffee80c69a55e16c7493b6c3abef2abccb46365699d524038c778d577b48e050ce57a070a9394b2475c21a9c0312462d853e0f85f400bdbdcc041ae6d347bb78abb9a34f226caba591265ae0e7876908a7cff46b9fed27e4c7baee886b5969ea9aa7432df6594be824216d7414f2ae311c0dd1c565b414d100cfffb6e1806244621301ca4e25ed5d160ec85a0ba2fba900a56d2b297904c0d46c04d71ce51892bad32ce9fec211587b74cfe619a7da4ec56d7c8dd84d6dc9632ab5e00fe5cb4893c3a907a36040cb0a8856de4a2f4b043556b5d9a4861d4b6a2e4ab9d7a663af849ada59db15527523fa6d181f6269e563e58ef2a2ecbb7000d06e5c25b0945417a87a975b473b78730a1db749fe2b3327d049b0780b6fee76f0ce4824e891f804002039eba981d0d87d6ef7d9cbb10759e355f084fe4233616662b03691fe91b4c2274d27c09d0c756ab6282c6f4f03057cbdc9cf8ed7429f902e13eafb679d129ce06f07c70c7721a8caeeea5ddef767bc706806eb8da249bdccb66f761d4a0005dcaddddaab4ae016a51838fb1fc0acedd1d98a83097e00dca02d8b214dec5e871c3900d42c05f7f89982fd1de3ecafd6bf05182de238cac774a34b58a2d20f9bd35e9fbb75a3d1cae65eac12d28f314645a1eb0d6a19d7918ac1f72cdf22d941c8709a1ba79c65ea45b199ba8d3f87f45365d86f27e485c5e952808c27911ba2e323ae9c1f76be6d1d3d44f0ae33c88bb9557952ccad88860996f38752625b8984a612f5f614213d05ac4ae3660c92e1a2919299b3c9e59d68616818fe617954042be7349228ae24c77bd093b4da5127b74e2c2ef8d089ade025b6ae62f442e2d828463472f0b44a3df90815df138d7850068f39572838f408c209d699923cb7971bc97b001e0e696e63f564613fa8729dc937d332b77ee54f3f7a42d6ff2d9b15574c2aed98a3e24cc87cd106cee81289d61ddd788fec74f081f69d30ea1e7c085b20b0c48d21041a4ff68bee355419d847d80e8c8382563b5f912ec1af35d2dea3652ceb48d70d582e4f6885fdf95de8635483b5d4efdf202f3117549d63d5a0d69ef05e3918e4fd3e340201b8c3e0098893e54121c13c7a18800119068e029cf72fd403a09519b8bf50995131e97f9da04966b2b9a4fd6261b81d41f4494ec9dfca67cfaad11070983d37db4b4fc75f23906dd45ee1129280dc591e4fbfb53110dbd571dae676c84d27247041b12dbc8cb49af33426da634a0258250dc0cf0fcf7fd36c81c6fe4ff157bedb23bee54e1cc9db9a939aced96931833d8b1cb6b69efd65867d71df29c28437a8c3a589201cdc19a9eaf398e4904386cd2f837b6814cf5d9fc64bfec8436ad0de3291648a83e1a410ff2b9ddaafa7065cc7042dbe3ec61ce9d642d1172b6e61eb33eec9d17834052b9aa78a3095218900bebf1bcf3733e8e8def65fd0bd9a3137e1dcaae32d469990a8d8cdf6f4b4f5011a41f92bdf89b4734279e1931541391c3c3106a6db84b5f66df014e214ac2c419abb8b4e92fe25dcd83a382b93e4980e3267aa9f20dcddc05477c55400d788d67366f796f82b21e8927eed54a8ba039738f2cb693766e6ac838b9dbd20a1d2e61f3f4b9616836a5a407f1abb2147feaff3a991289d65a1be298bca4c69c155d60356622a2400f9f06f16eb7cc30de69824df39ac87787ea01331636cf6a73fd412e5052564776f89ed38f6db469dbb0c866611bc2f7751f1996a28d9b32ef84a069f0de8df43f2c6e3930edcf7af15806592712b9877852f07b369fe9a8a936f142fd6eecd969ede299bc3bf00804b41a3e516b7808c17e0e89f91748128dbeaffd6bdc8138a7f3933dbcc157da4062baa707d51b6099278b835c4d483e2af1710e1865c62e8e0fb44a30b9e5a5afc871dab118eeeff3b4ffe75c2b88df651f374020d845de4fb29d76ecbc871bda85b55111ac0b80f63ac35566bb38aa9f0120949feda2eb31c4fecd1199401aca98da6d70f92e48a2ddf5c2fcccbae780bac2c6de544688c823b59dd743f517182a9041cc0492108410b914a3cd036c7f0b9749505c16bd12beb08fe1e47aa2be23b1b03b1362f8db0b31ee9afa985b3e5b4c9ded38981ec4ee311ffab17008a2f9c4102decaeb977f0fd0c2ec887b988595d1f164cadfb7b65e37eec4b7a46bc6396586c7764100c21497edce3828bc6e2551ebdffdaecfbf15ef1c9be7bc79c2f94e61a917d7927b20c44a95b43f930f7a18747f06b625f452e52bda9af59adc12fe1ba08c26946cf853273245a762d0b6b35a29efa8a17659d9daa08f0663a7bb0faddb4b2995aea1c8a986fd8db86e79a312c9b5ba169378a7d5fa11ca31de51e96937e8d3f7912eb22f4aed3cf43731fd79d6e0748fb0e72a706b445fe9eb4230d92d9c730d9661a8e41ee134a52192e71a8c22422e9175e885b9a85d42aae9fa8ecc88e3b577c8f235e90283a4432fcca8325ef7d226b1b9ae87c1634248368bc3eae8b6616012a3b0b02eb8b3d3cb02815992a4f78c90934942fabf70a436d4b6c012e3417c4832984d3e0e7b81c08f089ba4b7247e8655844005b835d9e43046af4332ff3d5dc2211edc16da5ff537ffb46366b0fffea6ae8876b4b86f64b0b44a1e73cac4951eb68032b7b63edb0033612875ed916aa7b5328516746eb355d0a5c6282166087c53712a1f3894ab21091c7c05d04b856a44637edafe7b139254265211ee47beaabcdca0e5c2579a680f9aa59ae3c896fb61c4265593c457795df3714a8b9ed3c71df55212ac6e98768458392001cdc9f21489ccb5cc5edd789d5fa54ad75aeb34dae3a37dee05269ea353e971c89f0a330778bc000f0a0d04505b761497d0c1da39a15fc9e23edd21f62ae0afa183d0b262f0a8387b1786ac54604d33b430fe520130deacb2f6469dc9e2442fbcda02eabe4e895930d4e1a439055a0e1f0db4a47fa8febe2e3e2f1e8ade19ac1dccdd061dbd4d065a0e1fe399691e7fc8a3933b2be4b9229cd10f0ecee1bededa3a8321c339703873477b63e1c898641df18fcdf57fb3dbdab6dd8d741321213b1b085f089e09778964828926ba216c1ad4ec98e0ea8e49e75cafee92a8defa86ebb06fc07e5df60d3fd799bf8ef50df3d721ddb9e80e0676707f77c8901c1e4ef51c0fa7babbede1e8f070aa63a0014d67c7c3a92ea4014da7df80a6837d3e372bf34da7826f3ad8730e3b8187531db3639edb185c6de0e15497d6e958b6e9b42582ab673fb432b87acdb2d4a58d7794014dc7fd3c9c0a3ebb1f1d8ab82435d75fcd75f87e16824add1afaa6433dde1a7a6b74a0de80a6439d07a713ef74e2b15b73fdd65cb786017d781edc5f76499a8eb44ea7f5dd5f106e2ff8ccf0a1a30d204c1ead88268ad801762db052040e8a40428b2122580865da9010c854dc868682b0a94f2198b0af4f3b085470886a5155f7218437416ce07edb0ad8c0f0f258bf7eddb2d767a3d8cd3a60ecb0adcca6faf7b236e53ac4574b6dc3a0fe0f47a3cfd2f4b20d8921cc3d913a66a3cdc736d3341354f8f678654704601d954c09dfb661ca0af101c7c78830ba08bcb71b2987a0e0e346148432434b601bb8110d15c1538e10c21896bf5e06dfc08dc88921ec44103ee146e4640c7642099e78bac0722ace5dd01df999534b9f8e4483dc60d29bee901e70d3b4a5c7f012e90fb809977ed99e886378a33b313484aec5ec6a183e73ea4906d76eee82e2205f78cc5167e8b4fe827d6169ec08b31006dbfa74635b9feacd6d085b77612d1a3337b7226c1d27bbb959c1d663a082ad93ac97ac146cfd645d061b65bbd9445d39e70becef53bb153fafebe61c5bb658b132654a5111eeab0d5df185751794c70c8f37412b6c1abc029269ba63454b4377ae6bd3a7f693bdbd99b757df1ee9ed955cfc3c1c6e08c671dedee9edc920e331b87018ec6f3e67455114d5d3550300455555163807e0920280a3015ee174549700703468b83424ceb33c3d57199e4d313c1f869baa9255d5a015700b179d04c0743dfd8392647094b25693e93f93ba220df3f250d3452769703200b7ba356560bcbd166c5e33e3327e17ee6d8356d02083e76798e1267718d3c5efdb3be933ea6d661ee326ab068d1b8017d7a57117d73b9ba9a4be5eba6e0d1701a05145255555b90baf80569068b0f400b0f33bde0c3334f7f370bcf0c6b9599e6eaea3cb70b389e631dcfcc370f3e9e6661b2f5c57e6de6cc3de6ce3c56f3eb970f38966c6cd9771f34736379b6a6e3661316eae2ddc5c4d17c61dbae0b31c1dbfc8e1e2661b2f4a379f684837bfce38ead6b5dc154e4794b25693e9d6c9b2ac5bdd9ab7eee5a97eddfafbe164b6812feb3a752d7bdd1a2ac7c3d1de25df393339666eb66123bbf9747237ff397258f77a0c520396cf416ac0d6671e2303223b89f290e7b1dc2b058261f91c4fca5a4da6df7a3ee19c035b3707a9015f9fb9d906ce397026afbb0baf7035e2e73cbcc2e968785ed5555555557d475fd7855754ef511ce6b52edf2ebc629a6c1abc02923129c927bc0147c4d46cb0de9f96ad2ace8d04f79b4dc42d341b0a30f34775f8a161b72cc437105fed92d6cc2f2b719879b436378d029bebf6d0f87adfe6667ee633c6686c3d06e5615d8806209eb70762ea4e8859f6619bceb1de7ffff4a98b641acb36b6e99c864163d7679e6d7e334d7367feba59879c6ac93ecd5f36888d19e4065f9f56056eb07579e6eb295b811bcc3373ebd22ec13e67bd65f30db6ae9b6fb0f58a237b6bfad6266c5157bcf94a4877430f87fb7917713794dd2cb145af1bc28d0675dd8f75ebf1fee0be2e92cd3478e68d5acfd60d7283673e2bccb20d771133efbb2d1a07f6ced168f4672c66dbc3b9ac6533fa4677e87c4f203b5cb14561d8b27ed959350ce075d5ec96cd3d10cfcb471bc484314b23a55acf18b67e5dbea76d5806b12fe60b2c521cb2c0fd5652b32bf38087d3638890640e0bbb4e50af670cd3cc6abeb2b225d8929feb608fd751eae3c2174679d466fd6af8b2acbba0ceb96ed94677ae0b27668bd03c88eb8c3e2725a5a42c0f6d3352521412ec42cedc99494b333737a62fdddc73d287b37533c456aed867880fd7cc1fb8b2238267e63e60cbe687af43dae361ea3e78c6ebf2ee7839bea777e615f28054bf240ff519ebf48dceefe8995b91de99cfe9e2ccbc3fa8cfc4c7c882a8b9a727764b5e1eeaf4d67dd0cbb2f3d6d0c7cfebd6cd3dae5bb7ee2890ebd61de07e9c0eebf2366cb978764178bedaec70fd88f290b72e8ff59967725e2eeebc68e64793521ed73c765d530e51eb3045511445677e5c8deb92361cadf592cd7ed97892adbee3d56a5d0760b6c8e8415c07bb6551caa27236e68c381dd961ab61993d9d6f6e58707c8c2c88daf3307579ae5b9f97ee8a0f07fc21ad53b7e7e1ebd6ada11e4fadc7f9dcb0607ae773cfab3eb2ad6fd06316f60d7a73cfcb6c8e9794c73c8fbcf4150582e1396fce800fb64eab6aa7b26cc49475d4653307f0f5ec017c5df882989ad8baee333fe7ade1011e7b03e0b1eb832d9b25b66cb61e2be923af33e26ac4e90067c4e96841783a8c6a42b8bd80f9e07c9c0fae9bf2f872b57cf36c835b8413b31e0ed3ad0fe79de6b68773d90c887a3dcbee8d4a65d4654f54b351390a939a0d38d66603c4eff534ae683ae7faa39e4d74e7ba372a755988336bd327eac27743d3386c1ae7d1748e4d9fba6d3a67e6efb5d9e0f023ddcce61b9c3daa52970d86f17c4c51a59bb3bf78b51910f57afd0dae3ee7455d30ec1b8dead5d2f4a9ba75d15b9407a5951c95aca3386477f11d2fbbc12ebea3693ae7c5dfb5c00d76f12c2dbaf3e2dea82e5eb8b02eee129a5734d7871b9d2633f7a6361b1a7e6f16d4d9b2539b2ba6bf6cbe40aeb882b87ac6703549548e2c95ddbdcc62b7b2f3d4666cde1bf53a65b13e750f105f9fd7afdb03b165511162aae76128c43d12b468406567e1e8771f0380f1e285005eb87061c3050d4d0d9a999900cc944a344a24120da45a015047a31946598693517aa218260336670cf3ba60b82cebc692f2055955b7a2288b5fc4afd170cf8fb8ef42b301f667bcd7683cdc97d1dd68b83fdcd7bdbe4db3213aba1327746d09740defac7d37944d2431c618af58547da6558b3481f177b6b6e41d87279238595d8f29b13ec93751ad6af5224d2275f976231b4075941aab8c8983c3b026c2767a9f8f3e1e868fcdf512f71d6da4aa7daaa0a8afb6879321ce353838ecaec4186e3755d7224dfabd9966ab912b8e8865e7b4d6e2ad81170717710ce22774ed14b34f73f12ec11d98ad467d3b1180701b2202113800b80d0d010b9e4de3e78cb6e19c1a8bb8dbe4598fa7aaea0dc75355657b68aa5b0d78f781aeac1e1a5799ca1df8d1ed0429cbe6c6d0651f9e6b7d97b877842148c16d880849e01a701b2a3a0237da83c2eebada74cc568b3479f0425c1670b373beee9de65ceb27b5a7716b6f2d444170cef523da7289a64008234544a68808364126de111515e16b1781da868a9018819b6d2713ba60831f243740021278304516525c208026d4173cf17380217cd0a407537019f3848d285d32dc86888c3c21060b28421cc18a2762ac60832c4cc8d4d04204822858e0891bd10d62306400284f51957c47138e94e908ad321a8a1265883a140507d884db501416c02b7eb06630144508ec5a07876f1d54dc86885e50bd274ae063892856c054c1822cb4e8c00060f8441164c06de8092c98c26d8828091045a4115c62804418284430040d259e48822ddc869e8042740d31e4a40ab8c2cd0991110a547758dbf5a640aa537149f6739d6cc80dd91dd2447e4813ead9ad47faa38d80c08fdea88f897d478fe44797a72f4fbdcc369d6e3ee0a7759daaae4c0849f5abf181a99bdd9bef09414a134758491031af3ffa235e9ed6970fc7101f1dd9fa7431c04391d6371ececbd7af2b1f4e03896f375bb7f2d034051279aa8bf5a95dbae7ac7e45ddafa937ea9d7d043ffa1ccd9cda5c661dbbad6f203d9fa240a8b7fc8e9d3ac9fe5c8734e406d21dd2fa46fb10d27d687da3bef58df8768afea03f46cfac377b3ddaf9cabe936cd369f4c7087b76084f2d661b9e97056ff6c1d0a23fda293704b7cd43704f377d7f7407c6b74c881aef7a1a53547cd630084fb6c023f86c0644cdb071f7501e315e9ef7d968b73e457871db9e8ecebd205c1549e953e5b0932db8354c04572925ceb2af8b9d4cc16d684809ae81db9093227033e99c3604050bbe01be7a7793eebe2e1bc7f5d63ffdb353c300787f9c8ef53e0f458240808ef51fa7230f2b9396449fb0cbe621f83ab5f9439aecd08777087cdf21fdac4815d2b660faa6d3fa46be9e3d9b70d574a06d3a244bf310dc4c7a1a5f3274fa872382ebed89f8ba2dd434a08f01d4392e74ce8b9b4e6df69c4a9f535db00ebfb00edf3a1cc344e9f536674ead6f74e73bdae464b4aaca7ea8d6e5df1df0702ad279ae93acc00d374cca3e38cb62fc9a1696599bd15b9f6ceee88febf2b4ebf474c6100cf4307a4fe9a4ebc6d0188ff1477f5412c907539bcfb03c56880b9847c61ba60e8fac1017b00c9b47ba53f3ccde3a2bfa543d86756464d8295460f88ece7ed119d26bc4726a6f895ffa44268b3e5dd9af9baf67d79101423abd395f37033eb834afd26beb9c1f33375f91fea8f5a4934a27d92ed3646c1ec2937d3426033e40b297aed2d54deafb1959d69687e3117938d58c2db8fa9c31e3c5af17bf8e6534c3e619331e9119f6fd3c223366bc228fc8fba971e1e2bd38a53ba5f7dcc29b0279f1ebe6179fa78fc9dce8d7cdd9cd800f9e715a4fbf9361c1a367cf6ef6f1399d460ae43abdb9fe20dd7c3dd38f3ea26f0a64468fec336ea625fa92757836a1a4e3dc50432f067870eff300efdef7037d773fe00eff8121ee36a9efc3db849e74487f641f7dcef04681bcf0d21bf531e3a5cb737dc61b9df98eae97e18d02b9af3e60bc5e9eeb304e6da333d89e629bce651b76617ddcc3b8d907dfcf581f2f7cc6cd3ef885936c1e82330c3f8d8e63b30fbe79a33b37279b09516178c3305c86186c4381617413e5311adddce19bfb176e5b7944c8e0eab9a7e0ea8fc82b82c3c875deafcba03b579789417af6ce82cc9c4177b28c644d97a989f4e9befabc37cbeaafd1492f1d0a106e434e20c1f911c1d513254f84f0a4b06bf37de9b3d11ed9cd3e387bbde8290ae43ae9e651067c7076487fd467a7f7f493da1ebab68b4843b8fab420767b907ebd91eab33794ceb9ee50e714754e9b81ee507a7343795c57e9a537daa374bb48073d9cea733ada49541e46ade4e154dfd130498c4e22f70fae84ca2cf125bb314d744eee22b84ad24a1e8eea1df470b81f771ddad637f275692c0f8f86eded9b32a0e9f46d7d23f734ceeeca38fa23bb3cd9af5fb789fcb8fe440abdd93ebbee8b2353a473eca579f51daf6950fdb687c63577c1f6d018c6a71bf3703493316e8cb342a87332fd457afd655b28b3cde43acff54ea24fd5c708916c4f63faab61da4c5a0889dc4c80d09392e81cd2eda131e9d9abb79045229de6d030e9bec7437fbdd11ff43a3237bb2f7daaeee23bbacccc297df5292f6a21eee7d4eb4c928ce924aaab8e666683944e673cb33d04a1a79f617d3c9cbd6483945e23847ec72b5987332be3d43696416de392957125d0fa34f3cc3a6c53f38629bd376a4d4d8c1831487798f41660bc6193e9dea83060bc78531e2f5edc1a1f0ebbb8c32e6e7698e6f2907e9148bf1eeb8e2bea5375487748d086a00f4f6d86983eb319e2ec17c5c1dd40a40f6f91d637b207711d78faa63dae93ea61931a1f0e67779887bef48bee5cef249d537af52682be7a2be91cd2ab976c2644a56fb8f48a627a7b9a07e9b7c607be48d74de9537567a54fd547d661e953f5cbba2d7daa6e055749aaefe8ae41cdce0a9387c33161c20457ef240f8763e2e154afaa171549b12c9993054b606702dc889e5082e708366cbdd2b15a6bad4a96275397f701a36a3d8655cebaabdfd1d80f19ef3023d8cdb0622f612fd512f652fd8e57dd2d4ff686b14a2addec834b98cd10631fd58fee8e87b946774a57c8c3a5ef6892cd3e601eecf53bba347a4f63ec2357612a5a1fc9aa54efe824d21d398af4d63959625255ca15d793de48f5b0de7d743123cf2c6c12ebd3c4d7cdd4ad9abebc23579179428a13508af00070238282043f25b8fa7b406fbe995fae8dc9f746f10819821b06d443c8c34d429cdd9b7beb37ccbdf5e0ce58129cdf2176363fdcf86ab7613f4e471f3a0b853cec7ec018591035436cdd9e9b31204cfd092250acd01deb8e627d6a2df7549674afaff3561f0b8241ca83a7afc7e8a9303cf6883c9c0a83a74158c6ba734f85b1f7732bc1d55dd0c3313a0dc2d5e9338b61fa567af6999b49b7de9185986257f609cedb536147bde5e589d5bdcdc7c4f16677783123aec6bb4f096e2fd027b118c2ef0e28083b24d85d6739ea2e261f082eecba2c56b90b6d086aae0f87137a38ef5256d3a30d67a1f2588f383b21ec429d335f31d1395713503a87fabb2bea1cacfa7b75f980d8badff12877449f9438264e893ba2732293ce7157744c3a67fefd81e08a1710ced42352e59b539285ea70aed61f86b3c31933e26ab81b84337521af21a03622274738212122f0bb5ba2731e7e4e88e0779a7c83197135a88bfdb81a114620b1858032d6420f87532284df31234e87bbb1c2eeb9a7c244f075734f85e58f107e413270ebdd1c04c3f2caca29c18cb81af60d4d234c1cb39b005a4aad34269b3149c013b7a1314438d7c7fee1647a636e801f6e4e722005e7131e33032a0bd60e8fb2e41817545878967caf1a83e40a6346b0c598106821a60a561043a60a62c4941193850a62aa4c418c142988799285181f44410c0eb010c3040a626040468c0a9e208604578829e284305a5811068b2ac230a10961b63021cc12c684318298304f8409d30498304a7c0953032f618ae8122609973025d81226082d60ae90054c165480a9020b982e538091e20a9829528021b20226084b00a303258049a20a1823a880694114604c9004303f48f89285295fa670842f4e30c2972f45f83285942f4980e2cb1088f06568085f7850f4c506445f6410e50b114f7c4101942f469e7c0181135eca38275e9ee086bc847142f042850b82172a0e085ea0704d7871c2fdc04b0f9c0fbc08b91e7859e298f0f202c7032f29703bf002e474e0e507b744172b3825ba40c1e5a0cb1887832e5a9c501725b81b742982b3411728ae49971fb824bae4c021d18506ae065d94381a74598163d2e5885bd2050837032e5bc8c0b40397281c618a914b138ce0c225065cac14c1e5084ab8447130e00204f7022e4b38177041c211c125066e082e2c702de012e458c0450897640b16dc0ab648c1a9608b152e055bbc38245bae38146c41823bc1962267822d4270415b76e04ab0a5893bb2e50847822d4338a02d277023d8220267640b1127022d54703f5aae70426801e382d082c501b18396282c57c404a1162258ee072d4e2c17022d4c580e045a6e6039225a666065418b0b2c2c6841625d41cb08ac2db484c0d2224b152c2b64216355218b18ab4c962c1615b254b1a690458a25852c4fac2cb2f8c08a42161c585864616241210b0c2c325954603d210b09ac2bb214b19c408516961554606155410513ac2650b1c56202154bb0c65061044b0c154f5861a868c202b303154a585f6ca840027ac110420861f51e841042f8a2115d86e082822d548c400b153f64d1828a2860a9620a2f57a690220a2b502ce189127e5045092a48446144128640020aa66019c111b0fc60042d8a1005295540e18508530c218a2228889ec42838c61863945515638c3156ef074f2811a1e018638c5156558c31c6583d249e3860ca0e531821a31318420821acde831042085f1cc2c914288871680a044c71c395035c31c0151d576cb852802b39aee0b89273e5c6951aae10e0ca00ae08e08a8d2b35ae04400a1a52d0200500a498418a29248e1451c89314504819a478226390e2071206299490375220215f90c208796d62dbd8dddd1d2bf8e01018428b218410c2ea3d082184f045145c8a11b820c50f33b49011059b2a6abcc498a285284c50c078f2e2072e94a04162c688d2102414542b231859f921d3824601ab627a911716ab8a344245440dc51ec01c3c1312d174938de9e1d041d6251c1163d4c114639431461bef9e20751a5a0211313a269acedb420955a86444417822bb583a4c19da61470e55aaa8826452444248818a30805590c05e151e6055142008c92a4faa0b671bd2c9ac8284480829c0004302e3411420085579e2c0cc2a548882f064a84a9786548a444105e75c3f22a82031f5c9592a3c90d8a332c6499010e0eb47650a95a26959b811010109ce5229834d1766d11dcbb2ae8beebc0bab14c151889e902daf30638545ec6a470282aaaa41b1020b43404105323920d2a972e0aa1a824204b87a2daba82a1b7db23eabaa0ac1105014dde008241013040e2ae06a874a565515c5175c5555553d7982aa02620657ae8041c21644b0824e9583ab6a8808607045450833dc86a290521135d5538a80bb9b52d2fd83127c6142132b18820c1374fa06ee7612650bee04d4e01605083f98845b14a22570b6418461d8acd9210e818ff7d1a9e1813e7b76fa666a3f351be4dbabb43c1a3e351aa746c3c987e34e2d366db01bec3a9b4699e475eb12cb41306cbd7614ea750b088f5523b4950fede3e08b62f667db9deca7bec33e41dcb0c4edd8a79d0ed33928b020f102a21efcc8a0062678e1c10e8260c5139cb4a086865263e4a8f97483fbe4743a4b3700dc745c0fa6c30d424104fc83f0f260b61a3508d61304c3afb2ae07fbc2508b34a94c98ec1c78b3f57cbdbad7af37cf75294abe47f99ca0282a08f6ac9837b5c1f9c212f7daba7b6be3696b831445bdc61c5c988183c3322a69dad4066b62b43073aaa9166912c425ee1a66bb2d9204eed3503156b12640031a16aa500323ae08f3822a64a1d32609eb538e9a4fcf712af205f7696803383c00dcee16a1e2f01b7a24980aa88d1b919013a60b9a5247a9a39ad19acdd7148edaeabbbc5936e72e568b348919c32f579a53f0997abcb54fefd479a84bd34e54771d455953ad34946d8dc69b2376d00539d5b5193a46cf6f18960c58e773e97a7e4159f479e2a6c3e46abce7ae36b8664337a7a3f4f7763a487f874e47acfe6e723aa8bf4ba7a36471365d4e07690098d3116f6b353200f0b36934deab75a19d2c7e1fd9d66ac4672fe0771a037ec766c0ef93067ebf0480dfad46c3e9a86e7335f24d753aa82ba3d578b706b0b8df9b8ebbe0820d2ecc985180193264e490616383c3a6a626a726468c1b315a68a186164c26029860c008a73e6a3359361a5119cdb3532f80ccbfb8b9a92ca33279eb254f51f2d4557dc012522bebb19f2bbb3c234881d453ead7e8a73f469fbfa6bc3ca34f7a8d469f30bb1f9acbc3c6e1c2d11ff38ea85b93fd7a253d3b229824e5a5a48e51574a9931208cf278717979e4e7e70b9b1da6249209c645bdb8652251148c174d64991c59ecc7d5a08fb4e1cbca537b7dc6d6bbb0a5d360ed642b431a4952361bc38c381d9775734f45efc5835dbaab6688a9cdee074b4a2f951f5d6a47bf5e1f76cd54facf4879d0f36497741863e67a7e44707cc9c2c6c95ed92018a43793302325ba53a58d78641d8547d6610cc38e8de47d70367ab50e53a7a853f216c58c5cad1d33e230203c1dd6a84bea1575218d262e73841969b4cb6c35ea48871da0ec60db2709aa0326d0398dfb1b885865279192252a7ac5f968ab5b11370a84c2550eafb1bbe34d7b519f107b000f7cb6280c779f6a3c1bdbb282fadefdf94cef623ed3451b380cb7f71e7cf0518fed14d58f040d4b53b3e99cf8b8816ed75bcce93017254a16b80d553146ca165876ce12ebef581148f071235292059e10626f9f1596535b7cc43e2d2ca7ca43bae4e73acd9258db257d477fc4eb985d62ed5cd6f501a338c0e3467f440c4f498963c4f0d6f4685cbd0709f8e03e75ea309e8a917a104b139ac0d0476d434d4802bbf7298f3ebc8b38b6cec140438c9d0e0c38fce0d332c77cc13915ba1e2c6dc6b01b4939bb7b5edd7366d9977c3f4e797b1a5bf3f2dc88496bf6678698b684ef96ce8803aa74c7b57cf2bae47577c9bb249694d292b7faba3c56f57eb2a7ab9bdb015dd6b16787f5654b797777d75cdfe980b203c2f3108eb05ba3d14836f58a2a3561599665598d59f2147d763eb3f495a5f07c5874f213c6c39c20184ff5eb59fab8dc65c4a22cb5b071a89b836014169d11676486eecccb3a5c5555555dd7b40ef398eff99eeff7e7953e58da20d803a2227c3d5f2905eeb361d46613a6a69c0adf7467c9bba33546d227c56a8cb15a1e388ab156194777745a2fe14715c21fa4c3e9b08e77260af175d4c785a9fb4579ccc737da3075ee1dd439f4ee24bae3a26d7487de1c24cc48ceb9d11b68d444e07892e5c1ee0376148d27d1931a098e23d231fa1ddd479c8ed123cd1d769a9b1b933ac85d7747a463248a5d4a8a393c1c34bf7ed0bb9b7bd03b20f42ebe819c0ef7786b8c0c885a2fca23c25b14088629a5b9b9cec419cb4aca239e6774b3abe23553456b668844229148a4a63d2686247a8a362ced295b9f59eb9595d97c0e627277965eba36ea9514e278ee4e9ed149a33bec245a731b0f470e0fa773b35124711f213d0731519407e93c14088649cfe1e1808d43ad8c74f3556b3d0ddda9365218b30e8f46236747236c5eca5b96b500f7ebf54d7d5caf3daed75fafb7bede4c2f0fabe5515f1f49f5f1f1f5caf94679d06323dbb0b312b3414c78de3ee26abc4ff93ee27404e1e9300bf649622fb030613706bbab8e556c0bbb63f7e383b0dfa133423d8a89d7dd0dbbbbbb6dc3ddddf0f53de5a212b3ddb486edc178dfeb204841aaa9573d1b0f2d051bc8d578a7608cefbd82af620256efbd3e39075f7cd03aba13773cd75e060f6f82d9411dd4417da483700f35501fe9a00e4a32674e85ed622d0731e176c8c3b43304bb2026ec226e22b39d6b25a8b3b50de076275bebd80333e26ad87e6bd78e0161ac6aaf51d1361c9dc580fae4b257e3de1cde71f7a11c64320fed83f1c1166f861bc0efd1ce188554f8f9802b092151123d9c1157039e7ab4f0cf5635ef0e08bb26b0fb6911daf84681402b29261ed61cdd818fd61db6061fdb9b0fbef6e27bf7b15c2432eaf8648f85e58a9b095292b216f6ebb23c7a5c575e192b1f5c517147cf062d25381dceb282dbe5de0c66c37354fd59a76cd56cc67083332ea0e18b47dfbaa33efaead1b7deb7aedca1ee83e3b594e06abc37bbe341e99c9620ed8b65c5b26259b1a8584ab0ac88911204c3803020ec07336205030a334dcfce87d9bebc9b9ff0c13b080f8f61c76ebede0b6818b33cb053a7deb407466ff6536b7c60a74e1dbb0d5f414cb8a5cfe5ba8a921a5fa95a6bad14a8d65abba2e2476f8d836694de51b5c1f4a3cb51d6a68ae9117a841ea147945811a2411488060961cf356b0bebeefa2e59966549694953b53293c964a24784a04fed4a084a6628102562668606d123f4c8cccccc29d00c2562668602512433333334a8813ed34037592fbdc12cf1e8b9ca97666c707de9b294a5a9627a841ea147e81125d5c9140805d1200a4489a04014090da2412653bf24f46a920c1332e1ec9260d8cd0d448f3db75092beb9cebc4f73330dee976ee92e6c6b9c52e3cc58930953ac81e8117a841ea147841eb49c6c49420476eed2d41a4491942954ac60d92244cd265754642a3215995e91a2222953a858c18251207a64092126849660c25df10561f31b1a4e36e8111a048449a84875269bdfd070b2418f5024a7a22229261b1ae8110a642a4a827317998abae859565d84dfe9116c021599ee842e677242f4c8963297a3787275781f6245e9631cc58f843c5951efa2a3111d51cb33df307d36ba9462f4d8e80a7999f5793ac28e55543cd6238a3dcb2ed634cb463767c0277bd3eb8ef565c99b2b2abece5ca50494224f9ac004c08de8c90f6c3663406e3aeb6a634d4a299dfc730fcb999d7c9205960137a22752a41cfd92f496cc4aafa47cb59574cc4aec2552cdb2f7e8f654b87a76b3fbb16c0644a5370886ab79ec6608298fecc333ef75595635d5a6b0884206cf801b511428510299a3a8f42a576ea318754ad1cc00008000f315000030140c0605a3b1348c92bc1f14000e93c04c541dc9624190821888812806611804b200008000000021c41823e301366f3648f4627b20633f5c24de3aa3fce0962b3cccaf203561a7c58bfdfa9a33c9fd9427e8359de523140be686f41493e62afcea7624791b16970c811d12e32a895dbb3b989cde26b3d6503e9e3225a49080660fb0cd0e1ebd6cfc10159a94f1b1b23688fa92c8b6dd9912da2a378d46c1d72ddb8024ff1516608c830187ab45b4b788bdc41f2fd5be2d67d0accaf04702ba0574f62515e0325cfb83f35fbd1db32d2b923da49231644690fa3c06bc0514f955c37029b569b3a7e5a1f9546535a2acfd7c350a248f3671ad075d5af9efbfcfa46546805a3c113df146812926ddc35d0cbef5108e69cbdd7b655ba0baecac7860f787b758ce9577791f16b81a71f725f979cb0ccdbb2d67b16f3d69e1ff5b66546b84fa92204f89d0f5adf88b46445b60dcc59ee0e874aa30e4da0c2d5e8e5f620ae7bc9f9de3071075aba4b03215ad131b45a77a017093fea7fd934e9c6f8409f4e839a98e496e994f35453aaf334959a8ae012f911e618b39fad6630f7d57876cb20f125147f41de1f0efd8fe69d5fc2bdab2206a58ad81475b8b03073bc80866a8889f3a110a9e0a3d2f7c4318f16e3afa77057359cecfef22a1bc8dd1ba2d31de83279a4d554a1c75bbb015429a4d9f6856724a8d05e4be3f83c2cb12fac0a459a011fd366f98a44514f28ddea7614359e0c11268f46ba83c80d52cd5eca50398c75e40175d192b74e7c607bd6f68e79cfed445355a0b7e38d60874c760eb43bbbc5cb001ef2cdd605a823c771146f61f7ea407d715b1f60f7af557a4536387ac0781aef40c711b2636affd2b280e0e529edbe091e23c20bcc56c0763b3c20ddc6ec30980d91e1cfa97baf2612f83d9b89fa477a0deeec5d88b7f04b520b338732b4551050cc346c81d6c0a8c8ee659d2bb143328e653a475995578ae24f7cdbb15f336293998ddc540b5ad3320af46700681bb36cd96c8ddad475b61e385920950a42dc8f1a90238e9e74dbae4c7d19bf1c14e04e74fe78366717b0ee97de6b5844410fa3e65b42853b39f9cab48672071583383337781ec8f76d6fba3b995d9f99ae09f13f89320f6edcd545b3407c743f26fe0077c2eef892ecfcd1db6ca9253c1bae059a575c1cb0acd3ea075bbdfca178ad2bd5ca1be73382582803c8300eed4bba53ee67b61b1d4f475693e8aa68d5548bfc56854f2b6da559021643ad151679ec2cb2eb229304620408a773c24958ae6697ce7db249a1958f2f2c9d1ff580c919bec2fc7415e8154de4c9c403495a674dc9e0ac5a9fcc60b2f712a086aebe9d414b8f3dbc66b4ba68381672ce8f4c375839a46ded4073860e6fac859176ae52d6f9da9248482aa02255aa472de3125337d3a74dcbd718690810d0cb9ddd16e1f748fbb9beca5994721b55041ed4054287793c2046781556d9c31ac43ec2636e650b80dad176ab60670a01db1aacbf3e14bfe575d91ad2fdb93a4324cc13aeb361933f64cb86eaaddfbf67d57cebbc68acf4a1a9dcf024171d339bccabbac97dc91daf1315be3f319017b7f4f6b66c969e97e58eb4fdee71dc31472062081fa8c723d85d668af78d30104f3a1cdf0a0984bb17c7c3544a843052503ee1dab7fc2c479d75e03020bf91e93ea1afca700d7d7ac8728caa5d3e2a043d26603e2fa9ace6f7fe936d47d6ab6f430ad388ba13b3f7e76ab107d7a5a7db271ab41f7ac3ce1348550f3669ce4e1b4b9d5cbc4a5aece59bb2ce47810a59135d4ba303739e0bfcf323a941db8386381acd49f9e3cef5d44665a2531a1d03b862d501799b4dba3148df16139e35b56351cb6a18e65d05d2f4c67b4e8b30130706100b1a220a76074ad6303ce5c93a964c504e1384fa6db40f85e34ca048aca7c4c6ff2e81c3660febfb51e64be314090313840a094a16e1169882e69380ede3485b449b7a1d001b659b70a7f2311f517e15e7e3b3b89aeb5f0c0c14efc2b5d6b897a745fc9b01435249488f61e6037ba761d68fdad136ebbfd796d3bd92738d4edefdfd6ea25b24cba9b5918b5bd22c6275736c448768382a4d4502009b3a82680b769516d77ba1b133f664052f04b4fc66e9c315601c491b6d10f4e59c741c865a51dbf5bc58efef46f2e9ef26789ab5bdf1b8ededa3619351a6697d4570020cbac52981deab8a100e38ac0739b1a04bb2630a3e200e29f3003e3dd513444f79210c9aed1468ff7780b004cbe6de77c302e67707a7395d1a819851b75c5be5e1c6155ccdce22305b0eaa03864c6dc38bf2b99a66f6f584e2d8024e41fb0453dea4acfaed74a1a93dace3154793bffc1ce4bdc0f7d8c91b03dafb7a059415a90a306e4831b39d17f248400477846aad116acd9ebd90236c93048a168773eaeb64961107625b53579de662926fe01d838e61b19fbd69afcc09ae09d7d0a4eb0745cf0dcb33fd2fa834a0e615a70322acc98769069c3203c9e37537baa657fadfd07c5506bf8dd470c857709bc2b7ded047e53dc157be74a366fa778366d32676d5c87e14623351d98f63b29012b60857756d96dcc646f91a6bb593108de678ed510082b0e17ade786d0fb9ce8586dc417b7df0e3559fc58a9a4c0ab1e0c5be0cb73ae9ae698e185f0551139c7fbeff2bf50c4855ff2a0658e9eb1df42691d2ea89c9143f4e641bdc7345a9362f9960f7de43bd9471587083db1cd0f32446fd00098b8f73628dd7d4d436fe6275eaff0b109c11b61f80ce5e637d2c1ec040ff098921ed3498b8e34feb4bdb3e340e0f5d1341fabf63dc2ffcffa92dbed07962843e4c0058a43d433158b1739f0c4646770feb009ff1a5a4b93d9fc4ce030c043b05d2f49969ed7a69dfa53196d7e0e6dc8f0620fe51c480341499d488c1929a14e58111042ba4f283575f64e6d5a6ea9644683b8d773ff46f15125b5a636cdc1688fb287a5b4d1095d9b0969cb3d2b53ccd4b2e9ab99cb6de6e94db4692b9f66c2a4a9126a2ef063b2cba000613007f603ac4781d5c5fa9280997a1ba3e0d9fa30bf3dc95c27d10244b28ecd4a9d9a109dd4f5ddf0e7e0862872e5a6cf98f6627219a483aecc9271b62c6269fed5fe0c5acfa1e023c5833292dfee00656200ed05291fca703fe414810499b87601c4a5011a9459a4fc25d5d8129136b8218be9ae90c5d9f1fa3d60d0391917743d8a94f7cda671cc28cc4d2a375615ca55de6d6f181b402daeca8a0faf96a8f262da4ad4842680fa00c2307719df8840f765551cc75401ef2524e6625e400da3de1cbd3df77ca47b8eb0c0c3c53ff7c26421bc13ab6abae669e37b95872cc90b864157d7e43dec670d338b99d5b92cc08b99473e221f06518db36d541600da7df306302914c00935d07df26487664d844ffdcdd698d4c71303ad8a1d08e35b5b15becb115ba84e76e2240df7d87f699f02219fe492fee8242e2035565283b9f4d0eed9401fc8ace12d99986c95d54498588287a81b090e4e00c0bd9f320d7c61c7ca6e49c3255a0471a18f199c0ecb4b20755a17e29882fda1dac2a9709133bec9649f728531b8f8cc327ae27dd255e4769c9c2d1a5b64a12458cd1b8de78cbc5c3a0845182e08cf2f32ed59314ba5c4f11b2364048c0fe2ae61d4948541a61eb36b427d67adb9d1749e6f20471856de194f7243adbad67b25554396b39dcec1ee90f3726a374548d150bf7b96d563b82f8b2456dd2eee53ea1fdc61116ed2f11bc7158a7d2ae31b02544afb92cba2c94c3ddf5bbf50add5eff595e176f350c50dcdcdc1ec1c78e5d86b92000f8640405682123f249003539748a015e607e789607221ab66d91dc1728ebaf4f8e55a5d37d09db68c35bc1d04a306c9ac2844502c2531fb8ff3f349e0b1cd65c27efd3f53d465d1d4262c38211d76f5aa9afe35b577974ccdcc5a30f3f308ecf270b155e49f0dedba3548c63920472ab301fc0d993c676b255f6071909ea6b370f6458c37db7b573112c5c06ae7c5df2c2dca44d9b6eb99b4d999aabc662d796914badb1370a45b636348ef19930f44a6c97df6062a7c2d40ac4944074373753e7d13868af31167f374fbb8b65f8db5b675120046917c86cf4e1a0f60351ab577ce6631e565cbaa681ee011312587d7e1300d725d23573a7b36809f5e807277f8a39d2ff0d51f597b594929ae8ab442fb086b1fc6b1bdabf995901d79b62ec0858f52c7b0e558865259df3bd5cfe511dac6c50caefd62ba3699f2978686cfa0c97a657cf9498263b6253ce81100af5538a332684e0db7c8ea7646f1bf8b55af2d83f34156b4b7b43c83b4726d926479f4e668e19b1611ed4c08210b320ad4a79a3fc5ce8f1e7259c29b4170ac0ac7cc07f3c5dd6036e204268d7716ceeaca48e1873ec0d0432d020744fe73e2d4ad64bb27177b514db275f96f2622134c7b9dc411a8f9b717388a39733a8af80f2b13c8f63ff5461d67130c421961ae6f416f21d33403d2d4ad196b2a43441120d55ac71904212003a7e483c2c7489df07d57ca732b3e17949762d31f93ec18f5f24b149b7fb3f1cbdbfdc513dc0cd53a403a88629694420369cb30f7fbafdfe13ba2817f07ab75ebbbb4dc484c14d2fe7ca0b7481d9842cb32334993a72bde12a69a297f6c6285f68afb8c5701d35c82f026680c068b6d0d25b103265cec9670c803e2b016405aeea937354d34d60fe6b82cb1078ac058f673aabb0872746ceb686db068f643be325ef7181da00bcfd167c7db0919af5dda39473bd59eea87cc26d1f7f08dae9892b503c617b8f1a88871503e701205a032973ef1628de82991c82814600c72b28a2a771426eab7315db0c428198256b894defd768d4f9349e09c879f176a83eb9ce59cbdf8780421d73970b1a888aae6391071b3c5f1abf1c2033e2ddaea62d94efbf4f46ac97703231809d59e3f55da6c3d4d823584fc04f862988f26bdb498550d0bc25a2a1cda1851369e39c4cc27859fb12d59a658d1e013839ff885eb0230446933bd4c07a06ce54399bb7e06c80fcffdf2efbc49cebc3089e53d16a50f9d0c722d6374351b02cbc6b225fce8eb88e125ba701ca203b01a000b7e5fc4b0ac77b5c47cb37f44f527df82eb9a18a80cbb4bc3ccd3a40e7a54ecbf5700ce17f8ea8eac7e81565d0b069dae3eeaf5c6b9d0982c3f087ae4c108cf0b7475e5437e89124a8a7ab448d064e236adba64799e0b78072658650951a049ae12e9ca129fed9612be9676ce5e06505431fea4a0db10289d63c2c83981557960a30e1719f1487ca2a9aa3a2e02b825a21025c7fa5a6237982f5490584190b0cee001de1bde90cc11112b13d245d79d73d1853e3eb7f30fe06a161bab90185c78fa2a55e5056b3073c65528291e8fdfd7b86b72baf0ff2867cda3b4f2cbbf72bb9f8da70b2dee5c7910c62feab31d7e8496c4923bffd92dd2afa86933fcf9ffef8234a0c7ec7b31322e6773d3d887371ec0e6b9d6f620a1633ab61b91f1c47b212d33e73e3ddca030deac0e9411d266cea0b23b4dc6d36c537358d98905f5256aa38d8052bf840aea4298306a75f60c84a6b03459142140d7539cf740a6b0af82ed77c6150d3f9604f6e3d2c79f081c4be6685250b0317141a94603b0ff41d347884be80f7f4e76c8d0719fc63ed4443a3923e07946a05ed9b8b9f0ab5efcf0d5d329fa20a483fd0885c888f20137c10062e5a738198948a52dd79696d00552d4bf67c9c4fbe17f774134f72d12aff40f4141fcfdc377501924076ff95b18098099267307b05691f6a5c74c7741a597795fcf4ab4da73ce99afc71996ca6d170078ba618ec6de85a83f707fd704d57466b3f28865b6d7ce916ac498556e1756515db0a53e2940997c3f766b3ffcb145ae1086b52193a2a665d5a4ade9643a2ef39873bbe23ac1735169ce446bdc2d1e31a3381419d4f4cf912b8579dd72a673ad23557c9a1cb4140f1812f2cfd6c8d15c774b34344ce211f3223e600b9240945027b49ef38d80ab6216f854ed9c4c86c8e32ccc3f1d5ef2d3bc845a30c7c7efcfb1d4f3323951929621c6ea48f87814d2c22e9808c67aee4ad55656c3bfdd56ba15f7f87419a2018f18eb5d9328b1510bf497b43882df0b19018cfc506299378e21e68e681f2596e9a475312fbb37fe9c8de8036c55815f5de45f0950134b6289675e7804806b92f01b9a82d2aa998ef2a07130b1cc741f7b21b2bffc4ebedb128fbb0521e0dadfa986b13f918870f75b79aebca7f0fa4dac4110794e3135e720118a250d1adf1bedd22417f306a68dafa28a1d948755b06f6d2f9531e0d50744679903dcbaead4a877b38c9edc56e56989ddc5ca2058c646cf53018740752e79b38a4406e81a74b1e41372ad30416fc9c1d570fc6d01e3563e928491e868271d9d9984b0a0932d22998f0ca90e0cb54a4ad679941a782933d07bb29f69423c1feb67d9cff5ecbe6b42f55ee9209d076558a341307d138e5046236ef8354fc30f9a579114aac35682a9859fe14d35834ab9e28fead02b263435019905a0a956426cab50dff5be5e95c60789bc30e2a7504dc019aef24c676719750270217dd57264d33a68aa0fa8aa867ab4eee1153bd5f8b7f73070041e3021510d83e8bb50f3bde69259ef6a94006aa280dd9336086c43ca1fcac4abc3828f9321582c46bbccd0aa5b37008520c1e09219e25ede1203255152adf3ab5c27610c7021f33cfe0430e684a5dd2a7f4a3ab19961fe4091661982206e5a8d19d8c12a7cae170bafbbb09d46853dd3f015e08bb6d58f214c65f4c83e82bc9ee1622295f133524445af1748936c87fde5e58e14496084da5d628d95929a789da80f8733a4516391c68a49b338bb6b62b0b08fe6669bb47d417833ecc778e9edc62770333aaad3a13cbe704ad790fe67d816b58567fddc054021ba86570251a39b0a4a6d1e07f829b103290f81fe209009319952a3e1290914f59cde90016c9b958cc82a8c481e8a6df0b538f91268a6e0c5f4d8d12dc51b3373ca6ba359c6923458c74ec7a2b24ac3ccc0ad788f6a781473a32e5693aab930ccb0560cb31cb59e81c46623f50560ab8dbb991fb1dfabbb35c73e45b5d525dba279c5c5212dcbcdc0d25e0d8026cbec05b23f2bc1c66f3740c56185a53f9b780327744ce0e4aeca2aa483237b5857b3c262d5121402e2a3c71e7c545dfafc1188c5ab107d7836f3c1a3dbdb40b9fce685566111cc41bd19d159caeaae45aa88658043b7ea10022c608844eccd5f2a695e2a2f6c0b4a8523f7db1ab42765a437f748555f21b5bf325230e11c35e768ed13bd0bb0358f508369308187d90aded71fd09dabf92091622686aa69347d834ec4280b6b1b86231a8c33f478e775407d45ba6fab85370d9b7c237bded0b5f578941e2b730f5c6a0a5af28a80e155b587dc2890b4d535e4de559998faeec59c6d7d92a15cca2639ad2497929c4797115db10d8becdf0ab239261be64a363d008e5c61858b58128f8ee1c445ec49bce1886521ca4e874a626902d9ac8b829e6057810f66731cf3a3e967d429610d0d5d332e6bdf0d8cdd4febd887caac86eecf145de319ba892bc9bab5c6257f69da28a5c6aa253f1a919fecefc131f84ffd52e0229ec3855538e7119722817f4bdea95007c0262f5582f4b0ad72a3a0d274ca6741284b635ebc51e10f0e870db1ab1ae727ea4cb4c81b1374b7646968b8ffac42c70623874e19b28c927e317a6b3592b1bab48b2bcee152cfc46107ac9ad376f3ba265e615d6d88252fb2148fbc9f473e6b2d811c1053b16cabb2c44bba7c88915c09848d4ba06c5074df49b6a62e7cde762168ccc5b8ae8d95ba3c40161987a3d60ba128c6324354cb0d2b60f092c0ac4b1a838184ca0ceecdfc76c25408106e2744e3b36d1855256166c360285a9cb8b300c6084584d1de635f07ad53008605fcc69ff94a1f1aed7c008b1f2e8404324455790d2e2e57a97f39e09316d63eeb0a41978270d8726c4bb61a2a51a45f1b814abb605a028ad6110e66b0b7bfc3ac5e6585a3d9f19883a6a7cecca952ce22c447597547591b2c612549885365ff6365c6fa5d2674077790f27f07ed984260eb86ada60065191461e60cd482213a3d9b682d0b76693a74a1030e7e68d2a4d9a1a0127c319a706000240bc6b0705de3cb4d56510f1ed93664816147d711056c785837b84072a094452ad4c6e24f15c04f9056e66789feea4a88c006335211ee7bc7c05117c60fc4c60b50112f554876a8d5e7b16b1e1a4690a781c275353711f42fd38a34bc468408a86d302547125f0e23a8a3971addac4d395b8a8591dd380a97da26ba71158c3ce2a7943362ab824da5280c4fa552cc0bbfd0ee0ceb01ee719d7d20a5a05d10697687a8dfe901b775da26831afb1d8c4523269bd4634842bc3a4d522aa7cc6fd5a40c34d7cb0626e88ebd1494871862ebd09cc43ed59d3d071e4cfcb68220c54d123157d0279709318e09434bf2a540517a6bf83a0ddc47b04ace60b5629c1cbecaaa7d9b91d751c67b60480f02acc8975bdc73ba6977951b7231ee066e5c62b4dc3ff5b936397389a7e5feaec5ddc49d4b849afbaf3ed7264f2ef174dcdf75b89b787289d171ffd6e1dae4c9259e8efbbb0e77134f2e313af6df3a5c9b3cb9c4d3717fd7e16ee2c92546c7fd5b876b932797783aeeef3adc4d3cb9c4e8b87feb706df2e4124fc7fd5d87bb892797181df76f1dae4d9e5ce2e9b8bfeb7037f1e412a3e3feadc3b5c9934b3c1df7771dee269e5c6274dcbf75b836797289a763ffaec3ddc4934b8c8efbb70ed7264f2e715b712bd89e5b29ecb814b1e0aebc2daeca587129d89e5ba9edb81561c1a59c2deeca5a7155c09e4ba9edb8156dc1ad1c5b5cca587157d09eab52ecb8146dc1ad7c5bdccab0e252c09ebb52edb82a62c1a57c5bdccab6e256803d9752ce1e7e06951a1a8d064ad4abb423ffd697fe06dc711caffe1422697826f749deb1cc05259e7bb39fbb587a2e1ff0731d351ff72139b88ee3c5fd582eee07f273390a1fd7a139b88fcb8beb182eee07f2733f2a1f974338b88ecf8bfb985c5c07f0733f2a1ff74339b81cc78bebd85cdc07e4e73a0a1ff74339b81fcf8bcb315c5c07e6e73e4af2d9f48fa2fe08bc148e3b9bdce5cf5b3e33f92ccd0205ca3d59cb30d7f36a53ee21a9c0b97a96cfdc213d4f5c8cfe27dc94de332e4cff0377a4c72b17d1fb991ba5f3c085d37fe44ee978e06274bfe7a6f43c7161fa1fb8333ddeb888feafdc249d272e98fe13774ecf132ea2ff1937a4ef810bd3fbca9de9f1cc85e87ee046e93d72d1741fb8733ade7311bdff58cf4120ea5bc2eff0cbb3c02d1ac0e305062551be845f9e1c1b0db6586de83c5cefa201c5c4a530fdd6a5343e6b9715da9d6e952b942057f3be5b64aafb8fded5c877174b77fdd3ba1af6dda229dd1ffaae06afbb28bdeb4fdbd5dceb164fedfed0e26ae0e72e4ee9fad1763576ba4553bb7ff45d4d5e7771aaeb87de050dfe7744cec08931ae1468ecb47537d4eba5699c8bae592de0df09d6117163ed3c1aff04ac5e59015801fe012f132cf075ab7c501dfe3be0ffef7816b0917858e068784443232047c48f6f9311ec73b856e155003757d5bf1c0dd83ad3ea4017337e0d65299bd92bf7fd98bbbfc32542e7fed5726d70b84453b9fff5dc4d3c2e318afba7ceb581e3129fe6feae7337e1b9c451dc3f75ae0d0e97683af7b78ebb81cf2546e5fed7e55ad61ae53ebd36c03d9002c6d55939cc75bc33e23e490ec8ddb032cc357bbf719b7d43106ce66d03bee18b20d7d2fbf938b75300231576de42f8dffae9c9f4eaa145f9d99f5f4c87f6e24d4a078f3a4e55bf7dbade038d8b0b8e3b67b82b07a88b73a89b3bb49b03b48b0bd29d1bde950bd6c519d2cd19d2cd05eae20075e70e75e50275710fc3cd19223717781707a43b376c26b7cd083675efa4815d7a325de5b3dd65735d65d9eea599eee5b92e65c864fd94e29d0192c1b9f1089b739aa7c3f47f5e247c0099a66ca6f5db98a6bd3402bb29265f653ade8db366b7aedcc4c9699ae4d801005f0b07bfe21fb397b53b7618d2d943d41c412036e93dbd24e3ef0a8a3abf6d89c431930de668ec63a0a7a1cd200182cc02c1620fe650dd3396ff12fd3299f7c0dd3c9591755a7c806cc4f214ef60be7ea4ecbe32117a7966d3a276c79a069db5809efc10cf6d23abe7476488944d6094500690825119f428742bac05011904fc1615ec2f8921ded8a25590090b75e5948bbe5c45b9b45e8e52180a1c87d45d9c5c7dbedb5e1167d2884884547692ee2b6161abe66780eeefdf714dc9828c0393a7fea95dab169250c13a2e0fd06e79cc03c2698ea929c218e1aee8b45c695c94ab08bedf39dbe44ca4944269300e1cb95e8691f51bac257c91fa996686889e935df6da8a72f62603a023207d444efeb8c9a5cedde149b44fddff3f01ee1721f2139a00006cee9d4cd649f2968226b86e429316269a14e60749be0dc93c1609a23633877dd551a3cb5beea028c10643595a0ea5619f70b5fd91722ba6441d0609b8b18476754b3b2a8d115475da34ef4ac1d2e8a379b34debf40f6caf41fb891cc822f88264d0ef823461ac056ed345448f4df9f0b046b1df9b889b96fe7b1c756689bbec8ee2e04931c0d09a41e42e2e1127ee56afa3a40a2f720d237edd16c39e40f429a5f67d0739af5fba25f75d9fa7dc0117a234d4dc57170d88111d26ea8747a0e53e5eee19a6cb9ee7f4d8e786ac7fb06ee4e6202d403b3a4872ef1ed32a8443abfe069ab0c4815e9184f83a41b2c115122c818e63b666f61c540dcc016b47d00ec3b20cc377a0fc12d8875aa60fad005a548c1cfc2fcdbb891bd9d51f3e77a4b05c61b6ed979456a28387d63046c17b9b7af68c190478385ecc98a03ef87ccaa70ea706760cd0aaad639bd3ad84a72476c61d55f9c1c4dca90fb85ce27e012bc257aed8ce865a83c70db48ab87d89cebbaf0274bec4bb6261691314b6fffa36191d58c026ad9f6a18ca230ca3357e87309ebbeeb81e43fcb5756ded0f841282c11901939e5358e1b1fd21f071328296af62b7b8b01fc1351add3dae821074fe753bd4d44043dd9571ed1a4768cb61e180823d238c5550ed754b5bcce11c02028e9b8e19dbdd40071120755dbec29e34e2d905dce90a6a42000c82f255444c95ee3ef50d88e8e8543ec193bbafeeec2dc9cdca0846625261d38a742e8e802eaaf7561df6f0891b207ffe294224108afe819671ab1bbfd278612ed774e572217951e99b90e5cba5e25fbc26b99c72d951cdb2c00ca449bd5cd0f1c0974b8197760e8bfe06bd5cb43890a344a1ea9526560eef8d772e6d3c03d3597cd0d159a186e719443017e01dc086aa8fea1d6912563f7fcc45715bd15f40cd8c62f131b29ac110074dd3fc7da9953adf8b0e4322ae61da2c7987b0e24c8488509f26e696102dba389c5bc6889140493c90786b4d3e9886d63208270f212c6c111b0133c5a7446693dad22d370f6809871e18f67a515a601f86941269ad7db2633e5907d1e6f29906c69c067b576e6217ab7d3ddf8f2e46004a82349b2560e6786a8501ffa83253a851122093eecf904ac28c62e299eda98f02877c5cc76985ea11e680e17d44bb1477c77a430430496643615fb9f35891f4e38398dda1c5ad70e5584605b45e2aed44f50bc8ddfcf1b59ecd1a0577bfa86d2b017c1e56434238f252c3b2481a55faea0adc817e94351d35dfcf3fec02f27b614d4e1466a08093b6805c7e41275630fa31fdb4722d0c4d10b5da6f4c849c3ea30abe0b7e6e589983cc3d52c7236b7a6d25c85d5f8868edfd8f073048dc26680d44ce97ae780b05a104a0a17106572df1e252e770fcf03355839327278a13e8714ff783ae1a13a8e377e9fd0bb55c61bd587ab7fa3a27c6a76b22e8036009d2b0543ae760141f930828972bc7e9d031c68a7f2ad3e282b0ca19efa9fb85865a76ac3b1209edb0c289131d6dd15b244c04c1a1f7d665bebb8d2a0809e21090b29d08ba1671ccfe7c23ecc3dae65f6668e4e45382e788d0ba0640492120a6b65b109b0ab9bf1ac32e23c39305628dc55b9b7295cd2d2cd48e0502dbb2c6b6521097deb920dfeda7f3e97c519df159e1b0f06d90b89e5e0349508ac879deaa0f38c00957c8bcc8d05b6b6db6e08ce0afea79ef095b16f303b5a64c3afa113dba7b0d7dd249debe0ac782786b179d91ae8c49a3bfb2d1674f66119d4316e603060a400f31c600487c3140e3f9954cc61e47f1979e4e59dcd64af4af79780adf91288ef74accf0316caef77b37327805a7dbf6f6672dda57923ceab56169c312918feb0f818db9bdca5fbeb3e8a39499b3eb1ce10907fe9a56dbeea15ddf07ec41bcffbb525be6484f2d03105bdde151cf18830948bae374f0e7ceca3ad973360d77bde952f22f5196be2f1f19e26c8ec342275609ea2cf0337f82e90420e182ca34fb57e116b5f377420b6140d080626005f9b81c15424fc6b0a2616d7839f0848b66244c86448335e38f113e9033f3070a95d2e8978eb432be5559804e2f718405081d747015ae9f687cbdcd06550dea45b4f369b702537afc3e484d12be99152ab15edbae2aaac876ae6c3570aa1c71882e317c8395cb63eddd317ab3e7567b333b4741b77ec4bbce3f613e6feda60bdc72ce3226fc3160370a9e92ab96bfefed7de07d753a01e4f8d68c522795552357a8fe586b7742f218feda114ab2a54572fdb251a8462b30b382f70206a3e542a01ffe8bcc50ee5c202f2eec8c60f00792e80d17a2d57cdb321d0a97621ec9c0762d13290dad9c15b80db6ada7dd55547288e11d87f1348bc8492cf9ccf4a76d1e51e274d5618d2db07684342a63092928210956b7dc289488334eea07d3bdb32aae3a8f0746dc89713ba9c028237d3abf2b0847171695733785e1ff1d506dd701d7091d4cded16c53862d992462a526112edfe5f9a69e74b39407a0285600ab1f81638735abeee524876ad5f235e705fde16d5a8282823174924a546550b3d208cd2a594a28d56219e897f3b16cc4ef8e5ebd264584c0f254f1347823a75d2f99db154440b70b3c4cc4d9d0805080f751dbbdc43d709d3e8347628d525a82f225785dc20051126e44ef92e0547906cb4908309978150cbf112db1205b921bc107acd0b20a4ca3a238997d95fc92b4fc6b46c55f538bd69d5ae7dce31157ef97596d5b16307f722d69f8e5689317f66b240dbad20a34132deb54806362c1a002982494915c6431df7a8def54ff9c1e1c5488340401f307329045e6641f695b29cd95977781588a049ff46aeb1ad4a10e318930082052bd1afe3740bf6cb6ea460538a2f6beca0926b9e9f05e42f2e6ef7a41f26c689cd429cd923d866d923bb62434030042eac01996f18bb140c26ca632755dea9a8daf823488a74e8b29207c45ef44684d0c5cf3ce530499f49c7d851cc8e275842ae864e0fecc0666b4cf49a00aa843e34db3465a8b56fc33098ed6227d37c6720c45215527e0bc73c73615fe375b1aadecb99c070b347391ebac3c07d5c45a35c6d875d08286b2c2bde1cce7cbb3111d1b483d2a8a8571f0c922ca400a98260eeec0e7bb8b43e9a62d059e5caa664d2b2ca42fbb82820c7eca59ab2ae452f2d77e6adafa7a6fc6f5fa29bd51c915072d705ebb90d240bfefec14b49ef4aed117ada9fc10ed8bf3c4aa08116f5a350e254d414e78f9887920823765026019f02379563a02109c5ed01b074d1b4f8116381a71b17c4469eee99af48e2ab5280ccfaf29144074df5f88fb574c9f70624344df2ec0303c06a0017498543f79b82b02fa651bab9970b028955b6d032e5fd913368253b0587fd6d8218e3bac7609f71ce14f2057620380269ab81e6faf3a15e164886bd3ea4e3e1508c196c0b92371b0be7f8669875d0e2bf3414fe4a209c83a0384b8297b058e1563ddc812c92867d618ea547325faea9767eae3f20023daeba0a53f4a2657c601a7be938882b3552da2a2101d06f10d129eea5db0b5443a4a8bb996cd6daca711a369dddb8f22dad0bd158fecd58b98f795fcaff09b4cfe74e2e606bde28872a7c1ff98075613682f5473ba4828080c9b7e42e93c1dce0c83881c0e2325e30a03755de8f55d392ce185a37e41306c54c3d86923957a5350bd6b2851a752b12cfb8e30fdde6dda1660173095e1d9fb8cb82d6846f37b9ba5432d7b45435f305748c1a542eb2d0ca5a18a68f2177020425dbf7188f0edd00e8381a1e2bbc37a4c14e31cacffb233352032366804fc363c89847ea34066155a2ca9437803551044652b7c154f91e8697f72c7d286dffa251351d380a302d5167c400b691d76a1705f97ea30583ca29b026600010ebd460f36c2b11d2c32d7469cf9e4962f325626d856ec3646b85c5ac08ae5d91d017bacb0fa921abaa8e16d54b5824ae6670a96ed4e6f227378e4bb56889433436d66bff95a2d54676cbe2e0a7b29ce6af31371ff0d7dc6c15cd9019b53eb48bb29eaf0a4a8b1899a55dd6c92be0740cc7220403889295ac3b64f1e3065db342b6b05343250a397df1ba8b30e3234704501733ba39fd2c79822ba7eacd1f05420fd8d6f28768321bb7456645407f2c182fed8104477333637a9aaca8c1017d0809a0e8176408610f84ca7eebfae845d837a871484479d0a2c5801da6f4fe87d350547addf60121e52119b727471fb86ac4d11eafae1fef31f7e6cc9b268a4ea5456ce25793fb60034a9f44f85de8a405d18f403f470efa7265dc54c5b64c9e9f8b3db7a9a030659391d42ea0ccaa241623a3b2cc020fe52c4a524b1f8253fa4b6c5a063b59096fd9b6534f2beff3d0cfdd533663da13b3d76fe3f8305a81605384c6d750ec0ab6981e3a5a4d1264c71b8ceb868233bf75f5db32f3e510e1a79b89556fa476400aef9db1b2bf0988e61d0e5da6e4a5fe68399f5d27c9dec04b65a4583d5ec923ca1e3031a422de7fae6a277dcea8a7fa942698f490ccd73253eee11e3a3f55493ab2190b4addb38af299dab06a31c8df227076ca8062a7352664fffa41ed6151bd52b7250cd89723d9c876cb4314c78eb91370fb24e9889b66a3f40bddb2eb70c24802df6d8c65aa102656d4648f6851110cda94c50eaff328310de98287770ef075d0ca018f4f91fea92e28c8b257d8ba45b4e3447703b502aa66a16f83c375077820701b6d36aa3f532eeef75bf78a4973640b4ea48c25653ae67f3645675f51420e107059bf9b83ced6b2f0b705ffeeabb27689b0d105267f9ce0a7c7ccbb6e925b1c228f05e1d66dd8e74f58a911a282cb93362e2db84bdba133c99eb284f1925e899868d800aa045a0ebada8277cd46b65fa014ce43f202e8502d3a07072f09cc08936197acba0594eac4247f72beceb0d53d9c03fbabbf4b56e15b1a8833093c6c17ad24f4ce201ec97b3716745cf6d73f33a384bb9315de26fd16788c9b8936756bf02ae92efd1328e3e7ba238a8b13937bdb5df951c1e19b4e1a8cbac6f33b11eb4785e8a11c086d36aa29c33c19bd78ed7c72d936c2176d1ccb27ff0e47e5183ed520d7cc61b5e70fe4a5dee91dee3904c04dd6011355fd913c221d72f8110bb8b3739e514ba84b3fd0ab445d63e8354a657d0b92588cf4f99df880abe8880bf7ef081e024136b374aaa442eba00b2a05687d2e6272e9d51dc9d403d365be5545589a18f3b34bc3f5ef3066cf24f05cb035d7e556f166e2bebabf2540ce7b2c3e6c4823501586906020c69b547c668dc4c88c6dfad5956fb6d2dd1ba2b1b477a5437e00e21600419d19f0b748299091099c7c04bc07f0d8f1279e72095fec54b6f024321caa1dd27842ff58e881e9a197b8539334551357148031de1d5c109aa70308859a9528307d5301c57961ece6c10a155d66044adb8c0ec8730c03479dad252f939a430b1edc1c2a8a88966da7a7bae14e8791cf4ca1dc8fa08899019e100ca58d1c391846fccbd7812e6d2700e25468e1f14bd0cc624d39e068c8e9f096e894340814d0c95db7c9b51bcb1910175d0f277653d0f76b415257f5626ad22d34e059d0e4e6dfcd9f007cfaa8495747962b947411c256ed49b9acebe1085c64579f49e0ffe14d4f565bf824b494aa225a51d7a71588966e2664dc811e50ee8ae7919bbc2cabbc977f8a3e7589243fa5dc2f1174eb38325375bcad6b384642205a9bfcec03d79d0494ab0059a3a38f12fd7a6690641628f160e2b9249221cd699ec733b787a7d337a8a31a62d324c3c5e10cf84e053c7d0329b598ebf841cadb0c5c2a48bfeaa4fd38cf0a2b0acc954741d7f8f7e4d509ab1103a49a376db82f2e3463ef89c3b9f0315165b8755a18ba96291677524e2d4a1a14a251d98cb79695d3f7bd9163de59afba4289bf02bad7407cd830a8281df37e7e9bbfe9190f6a2e6383dc4273bab3e07879da7999602198848161cb91949707d947ebc12240d3241667d03d2e8a234c51dd67b41c177d6c8f83e621f705b2ae7f4d61c0d9ec75031e78c0aa7a8473c0fb982e04a7045a79ac549eb03a773ddf292d6d6b0cf104206af3073f781acbb55e016bf085c2fc99bca130e9873dcad681ddecd64efc291dddbd6839a504a246b3a27425f8b110f74823aa00f8fa5259e665692b76b3645f23a9d90cfc6d27e73e4361a9a458b38fcd925e277668df429c239eb3a1fabcad446d880360c42bebd7b5abf9868b0748d83e152272e1cf48e17ebb1f0aa7a69d499d15cf76f79e9270df08c7fa6e341c06869984b9f413cc080c04e9b80238939020e3cff1de253654f6833b6919d6f545bc6ea2a19dfbdd020abe224a72e98646806a028cd9668f5303748679cdbe10612d03078528488135e34b79f40168ba80731f7c8517ca4a25f2b7043047084e761c9816b74e0cf111cc159ce6075e2f51c854a2e3c30118e83e1981c0a21517d78404c34e69db5f8c2940304d4308134d0fc16cb4feb8baab9112264837b0b539f33cc9d6b854644f482166c6c98acd185ac9f96c81ef5fe7f0a40429a8b0e827fa4832e7acf1eb1b64a71c16c73582eb4832d5da0e9cf646281608b4eea404eff1050ea693a9ff5c38a4f6e8ac244b9d6c4748d0127281edb628c2d16c085da7c5897fffc1581074b8ab7725411d1dd25b735557c2bdcdf9bd1fe6c8768484d40d54fe868b135fabc9232085df2478e9173ac1a2d7030645b012f7cdbfab542a3ee696dd98e5bb86abfc0d332c958dddcf1df1cd67b73846bec5d0c8073d527c83d4e6691704a42156037d7b82bf3d21d3f0de9420941570e664c2d9931f33f675d60bf3a944a13297ac94e0a942bb0cb30f60b9507770de61c851a56cd97d896641b59de79842f20e7bf6f350736e281dc8249d2e9e5b0454453fffb889438d20e58f426cd3397fa57deee7952377039cbfdde1dbd7eb54de2e5e048ad7be1be2b150cb5453c3756bfaf22f13fe8abbbc02ce7b40f530d63fe6c03099de634a1403623c323c0f9f58e43fc872d722f1f811d89d29c0504d1713b3ffbaf14c1b755289fe42fcd3437b4cc304973c0b5822e1bef14140ff4b822d7d9021b3ed8ef70fc9e713b5cb9469fb56bda3a6695addb31ca61fc5b1151adbceb82e0ceae8421f6916dc18d9a183c1522fc1bd19138135e516a40cbbd473698a017a15358cd65ae4ff244278d4e6dab8f933a332b164779a3e51f3aa7c82432c60bcba67d937581a2713b7d3b88255ee6d16125be587f961494084bf3fdca1be59a144add74372b00906ec080b0769beecbdc7da102062e556a2d81427708af741cbb6ca025e896efd777f04ea3974b857dd473ff64a21fafef8050c9a53bec5dd6a5f19bcfaa0b6bcf213de1462f46aed79e6c6b1fa1d28719a554e49f87c28d7dc07c31868be789c0b9c3f01ed257ccaf9bf158128aac6a0a7e24e0979c799dd428aeedd26d826bc58e71f9e26c14f658f2362ca73124c3fa560a44282a8e989d0cc07c722d8601b1162e0795adc1554c4ace37e9691e86e98b7ec3e1613172fd64bce3e78e2643cb54efe8e21b9ed83486df8ded52b6a301c6aa9680a83532e6ee774f93cea91776e222cf628e887d083674a9caa441a9263cd1085364688b84912631b089fa19511ef9670bcee3fa17c8238590a24014f7251d6ee8f83167994d455f27766657a6387ba32c1c5167484ef57685d2fe0a392e62eea3254b7548c750286c2efd7812a95fa7beffa883266cceae766e197455ded6bda05695e7131907116e226453c6ebd84850b6fd720bc9f075469bf52ad14108b75e26331cefbad181ac07023c37e17ed6ce9bfcac047b080202b6a14410f26ae662777b671c040c1cc9670313e1d431b3432b829569af000dfa214e7276954a4106ae13c8b4a2d134c0d70481c01a80f02d844c202ac13e53fcb9135816e6c659eb9ad15ef859f66eecd9e0a2a89a35c39d6d16d9a79a25deb8f876d0529bad88109622bfd0e873c3e5f38d9e29515b0bffef51fed2233ab078ca9feae99e17be285cefd0e1351d3f2e4fb2f09537c6454df77033bfe6f82a187259a06b5048dd42f83259311bd14b55734b23b23e80e7968967b3c958f788a9e718db0c459a007f9ab2554dfc031d6c31ab6899f1492ec3d3dae35a49b9498d615fa6a59305da3a4823b6019d218586df73354d9fa2b5334d1589f7a5c5432328d40ae9b56ed36f1791269938c8679f7d47203b282cd44d5c2bdb51ecb4d34d6c9cad58d974be871fe4031f7442d11b9803d2051db030a02cc74f1b56205c46a521f573260f6dc0def93793cf0585ff1417bca0e6ac5e41d6e8acacac22c7c4887b6c5041a9645df0852f95b4d7a7144006404f3ef1b696001ca7856893434f6f1e95fa1e4f5162fe32cd46ab7e79d308f2603b3089e35d7212ede782831c1f54041c15f45ae1c6ffe3090569ff080c3eec5c68589da9b1d237c1060bc70d41d1824c357c2a302b548a3c129e50ddb1f7c143eabcc31f48a70451b1d78bf19027f2fdec47434d52a0c88c5306ea700c2590609a00374e735c6033790159c8194f993c899c156b5fcec47237df7a45577fcd040fba447c70efa6bd64b2639a5743fab61fdc0903901879fdc8bf36d6e23eddb28daafd614e26eb34ff0dafc86100ac498dcd8cbd84c141f1774e419b3f7e7b61e455115984786da53faf54195b5ff72b96ca3d670e63cd46cbc404c90ef773c4411696a0499ee19a75aabe2c15362c7a4adcb726708eac68b112d1ac4134d310aa875fb2ce5c4e839ae677a7fd61e25ab5d686235542e2d86e117faa30e5979e86d4b148c5338c0b6a5b00c3c357a1477b05de6a8c83b19f6bd976da56003cd1d41738319a17b4f2e42c3b35a3479a49cd71fc33936a2264e9a4d1e178cdfb561fd6b88de486b239e12a3e3c818db3da8c0306bf0f328a66f88bc0c1566bed1c49c8289521eba9c594d17e200524544bda1e6578afd5b81f4596acc4dddf420aac029fcfa1ea813472d7024ef7374d111463d8931011e7acdccc1eaf8b2933b33f4c5c1a30591d1c495a6ec6008b848ac28a8cf013c36b44009bb55fe8020773779cf147bf388d47e548890f847b42017691128c709549790ca760a1338cd66c1ac927be7522955d366c6cb842a47b21a44fda41b6fd89e53c2aa410e28a87173f4a27a72d35e16263437d440a2cd9d099929c1ba8c2225e7f583bfe8002a5e9dbd91cabf74e8772322565b5f3f04975e00ce9e78871e9da937199102a8934a4baa04be4300f26c37f66498942ed4b33406bac88e67ed63b3ca04f152109709c11cd0a020d5c87fc8a1408414e5f92757573e8420042739036470dc5fce62f18e396d5374d56fa9c31e5ceb366f5770aa8d3f3c94136ce6f70ec8a0043482abfc13c97ad6fe8d0f57b295c8c7f88f74f1c008d957fbcb7f97cae8b6c300ace49b27fd3db7cf2ceae437b58a702f5575cc4c94737ee8c7fda8188264fec32252da19a83f93ce93d21abab6224553e9e704c43ebded499092d95ca63b29b87d5bb862f93edf4316520582d6b82fc4b8370e8d33a8920af317ec07eaa0f2b649db19a3a7469c11b145534021c79f8c87052f945cafe21c84c2f62dc25e7fd2e82685bfceba6eb644e9af4d428283e1d4e351f917a8d10257b1960ef6acb61a295c004d059a24bafafb7db79ddf19838979b81b7a7a7c80ee13a5a4cf2cdbe467607994290933420a27641066691ea14cdd6e442931c3ccd9d083df6ba44a79ddbd066ba6c7a411631396ef40226232ef09fa3a7709c794747bcf99e7b9a7b40a176d5c0707ed8753c06e69d3396e49111378ecaf0843941cd6457794ef18a2e4cec7a32b6f041861c611e1991b6b41cf65945a024340f3348e30713c645d030d0492e0447973626d2040fba4f30efea974f551f0eb86e715999186d70b2a687d5ebef6578c9864b18c5d111862bfa56b209448314a832b43292f0beda6269a34054f7bab9c16318904c381e64a31a450264a47885e3da314ee948334786063805cc77023aeed95e5850da8dd301e5c645ef24ba8602005b403dec0237e845455f9fb4f6271b296a9cf2ac9a1b11887adee02e8fff7d6c17220080ba3b365b27d6c2e55546e4075aca26dcd9d1ef8dbe2a62500dcb6fb2edbde5de524a995292328505d8050c063b6cf770aebf674003fc61455f831705e5f50977dffff47f98d69d03fbde9f06b65bc1ccfcb8c79c6b2f57cae88e3defe84bc7c0dafbac5802112e87de0df81e638c514a39a7945232c7805b059642918dc8dc3d08a38b306eb4d0c57d37a8d40d17721cca17ff6d1de842cb5c11908511d05b471f73901b6acc1d0387dc37008118e485117cee8b977ccc37ffcacd9576d557fd75c90a6ad93fccaa338bd03b42092ff7f830d8f7d687cdb73408af1cf5fb1dd351afaf0f2f8e862ed7adb68be2e8fab8e1f36cc2a9c1eb15469c598ab1fcb0bb3b5e8039ae0073dc1dbd3d766bf6a1d6a6084cc09ba830f42cb56375362cc6e2e2fa0e9a2e8ab92e180ce672380cee2350580c162329ef90a5cbd5632a8fa9ad62fd9b5bf701555812d80e2c095985c49137ccf1c7518cc7700a0f11a7604978f412d88eb9b871149de0141ae6e2e1f02e16cc99f8c7e312b7c33a678510f68cfe306e5605ba9dc780b4ae43ef991ac09c0fcce168e95415ceaf228c30ceca3ce08c23184755c58345b7210f1e5804a112b68ba351ab7017d6f1e71deeb1070d73f0866cf79e5b25e35a25dbe2a84ff8b1b975b46e717479d402cbdfc5d173fb3c4bfc028d802f551cc9a95d48c57f363a99badc2bb8e9c2e9c227dc77d345680ad3d5ee33c2143d4a3d6ab3c0762897411e855362ccde36b7285e727a5c1ae67a684cea939b79ede8793b421af2ddd1d42af6b971fa849f4f7aebfc5eb7b7cee58a31a26217cc71dc823976134ee3f415dd0b7f6b1bfc7f19a22f1cdcda5b66b01d47f1ae353f8a762fe92debfe993dcfce1cfed4b6d0f5cd5dc6183fbac7f6109ccb1faeea43ac25b39d87dfcdd8d688e0eb5b0c184734d6dd1d37f5097ff4e831ba893f5a2d6eb1256a1de431dfb5da7136d63c6c7c1713a754cfef3ffcc4299e6d1b6889df026b7c4fe79d6f1171e3cfbeb4eee55e1fb196eb2b967572c0871df8dd716a2f3773b92ed64ff31f7e6a930b6c474d973f20ae3a65cef9cee8f1c5be301e7ca8de2d533d32048c494ce29426aeef67299ac7888c30b7bfbafb5f7e695dea937ecbfaab8254183f6e4d5c5f43ea7ba0c5a2553db5744888b560db259f311d240f19b683fcea2b104c47f5b2aa2a104c87acdc7f7b91b3bed2ac979a5bf176a95d3ad622ffc25a2aeb3b2ae5b643bcfed71090ad56c2d677b96e15a78962b556dda7b2f4fa38162363894f9abaf40e26dfdd1f8b01c15a3c4a5a925aa7d64a29a52fa3b4d64833fbd1ed8c9452b7957f553db6c3bf921db64410f38db82ee9574c7ec46445e3cbeab1fa4f04dffad3b50e8bb99848d5f9367d3a9ff4bb6f3ee5e654877cef41fe0e98837fdc2aef30acc2b01c23ef5b10fef3af91ea613e8eea93fe765087e5901f44dc46de922028838a9e18630391fe2323375783976af0d65abf563a356c0796437ee731cdbfd2b0cfb4eaad16e2d13a0be2a8db2fa2759ffbe952078332b7b168b34829a5d4d6a7347b9a04cc619b9d6f2ea00a6231c61863e51df49dfec529d6d3b7ac723dc5b28d668f7dc5a34bad42bb141fa31e13d407f9ce6f5537fb91c6f76c1defb8588846eb77ad5b07d2596a37acfa743496226af166f266f166d8d6a73ee9971defb81d115f53ac256fb80a2631d71fb25d976e33e9f6578f25516131be85ec1f7dba2daf364d2dbefc2e35169ce2df924698aa69a88118117c5bea1f11ad8fb1082de0715f18f71521892cdcda8133cc3de63e8eb5bcf7273b2ab7776db452fa746bc2faabc25aa4d58455bdc4e8bf5a5d106ba91b88e5097ec674e0a78fedc0f2ab4965bc14d3319f27c574f0cfad83535e527b54877865bcb52ffa53be7c299fb71da2e5301ce6c6ef25ac7fff1039f8d2a75fbd7daa71f3b05dc3dc0efb86e9233a6435c7b4ee731fdd2e86698649b115111dedba7404c3be6297a45947efd641abc21ef657e84ac1b58353b0a7dfc15aa8a40d03f2b576b22ccb023036048a7991cce9044fa3d168341aa57260421cc322ef6d341a8d46a31149098dcb59200c0cc11828128944229148044f7dc24fad0581feb91324c19bf7e0a9592412894422084ff0044ff0044ff0f468985ccd8292e2507fe212a5d68240ff1c87b242616c0814f3224e0652d07322ca9b488aa2c8452daa71c91ff6afd72accc2a5c6ba72fdde3ba1fa7189625b47afadb32010ddba7fb9751ce75b6f1dcaa55fb5ab63ac0581fe390ea5eb50875ee8dd80c2c2ef3a44ab2c3e7c375aa562791884800aeab3c15298cb6fbb8f6fdd25b2ce1c8371a97cf7ed628ebbdb658eebcacd433fb0f03b0f852e7f063ae7ca67a72cb973ba73ae3b5318527d363acfe9760dcc7508502e12827ca8b9b8e83a0a73cd31d7ef41085538d8a8a7b2d227fd22df75eaf3ef750e73fd3df454ecfb7bcc530179e7978343e12f057b7ffa523aef7fbd94ecfded5389ef21ef5be7e2a27b3d77692841b0f05e39ae0d65a5559ca64f5a64ebe8c7b3d2f9d3e2f63b1430079a036883d4bcaaaa58af96c2f2bde256546af33a4d536a6dd3946efdce4b35d52710082121209d064234fb6e58214034fa4ee0d67de0caf74ee8953918a6c3757f90d594d4e4f55286fd50b174a2f65813201b0bbf03c5f8b1b193d18b66160404c4baa4d6376a1d5489533a28e67a80805c4db21d1d6135d5035b533e1ae7763535bafd20d80f154b4df9a0825173426aaaa66e7ff55c29167b0fd6e2d239b7f31eaca55344e8c29cebdf35167ba8b974cecdb24bf6cd9dffb01f2a96b875507de2838ed6e982b9fe4ceba498ebf7602dd8d64131d7df3d2cfcfac16826ff7a37aeed75ada98e976e4f0d75bb064ec9808b38144e79f43ecce3bfb819e12296274a7ccb808bae33073d277eb18c802f1c435cc029a006941b5e869005099c4062a20c472829e0f2dbff80da8af6313cca0d2b0a789e2f6480e227f000156a1002230a6638021672f822e60b1ed717475c398f02f2052e507ec56a81625750be55ac0dc557e0eefe0526a0a070361e6545012837f0c917527c01c5ed50ea0f280e385c1cec3b4e2084293001072ca861c1e1f25b0b6e2101f779b1049a2a9081095884c10c375f20ddf87cc11c28b4a15f6e3af863fc77e5c38edf37a8448534b022f7fdfb303337b3efa06748e0852e608f5b3bfccf46e73258cb58783bc8444b74b8c5f516d94ec2a6586aed7575f7f538983e89398f14cc791e07b7c85adf49d8772fc09ce72bc09ce7bde871df8d1778dc95fb6ebc10c68d57b34c0b3321b2f53b090b4b5730e77988c39ce7dbc49ca73fdf419c9a6243fe612d209f592b2f68e214be9e27e991ed9a24ba9eae49d7f3edf95e825340def32dc329d87bbe99e094773ddf234ef9bce7db094e1979cf374dedebf37911ad7b11791c5c476c8ccf322d47a6238b913df6d8672197f672adcb75473e9fc7d1f3f3f3f355169f17f930f7d99cb9b985e721d68201e63cffb0a68185eff9ea85e014fb9eaf40abf8d0271ecf9621615fe97670899b7d933a4473bb896ef64d0addec218cb9d986912e945abcbed6a855a621e6a57546dcac937530ec63d615d32a2cda3d665a7f0f9d4b2b5337fdbe1e96bd6bd96318f695e95aa18b8333c65afc31addfad4c1ac45a30acc2085f67925bd45df0add303e3c2a7a292f8ef365ce2be6f99fb9e06167a0c68831012ed3f1bf069632a99052d2cc77cf8b1a38953ac875af59834e5052184d65f15c2ebfa713b0bd62d882c3e64ebd882d082ae75f6be146144fc5761d1d5166fc4ed083dbed55d6582167de7e1b2da65d3b7856f415c5f752e97c7aa02f2cd43657d7c2ae5d7aa233ed643fcb6bec202e6d06f6ddd9d7f57992ec5b01c21df5b10fdd55f2154ca8e9fe8a9d6d6412b7ea4f598e689fd21d20addda5abcb02facb0c8117f52cdbfa3d107d1b2af1af660e9a1a025adad1fbeb45b3ffd8e6e41f4c7a7df5d4ee95b5b773d2bca4dbe3f854c72795b5cebafef542b5a5bdccea5f399e67c723da6b9585bc781972a0bda42a776c58edded3257145962892deca0b9fe2d032bff19d02aaf3eed31d723db3d1cea4ff21eca3071df8381e5fcfde34e0356d88d8779e90734edbd134c07bd1efa81594c4250181975c92464122322f223dfcd9c140ae726468c181dbda07fad0292917a38cce83aa19151abd4b0df7542f58a1f6b2fccaf894623f56ef4cf53abd0c89960e8990a79cf7733c754aaa19184686ac83b3b3a2113d2e73b1352a8139a9185ed464651a3612ba1f1347c7ca9f5ada19184faa4df440a3ee937213dc176429d1dac42d2834ffa496898c322ab24342624279890a8a091f37098f1fdae75214f42d32af1fb41be0b3121999066d4da49b1233d464820cf7636425341ae143be204084deddc431ff0c1748b58a208996e82ed8a90b90e5d3c74fde136e2c4480fe67a64c45cd3d3adbeab3223a33ee966ceedafa1563121d55028e65abf69249a4662ea93fed748487dd26f42f2adb3203536121a26c01713edbd1b2d5e040ded3d6e6e8dba1dc9c8e8eac09784a644424333f9336694685d5f92ada3a185db2f43eb4844b74b31b48ea474fb47b48e24c70405b7ffa375d4a37524a78ec6174c48b7df92d0747ebb4ea82331dd7eac23a932b7bf92d090a0464623a3596a7e6f9678963698f822a3468a88a803ff100b8897b7d1a45172197e37f2b9ccdf7542eec32e7f67f177b4bacbf908f0387e995dfe2872f95b23c08cc7c1ad9371f9df436919d46703a5d65e0b04ea938e560916de6e5077d3ad27a8e15d7937926037006fb772e9658988376e1d882239670d807084cb6341b04e16725d4888a95930333314b06681b2d6a240f605f6c38556630ce007654128141560d492fe774b74b8f079e3fb30c8828229e8a4f38929240aa41393d2f98413534ce18413f22d17c41020a063c377d2b1a37b773f03742fb76f7774efee185d4a23f845b2f74008130309c96cc733e71570a494b1a3ec19a577778c2fa5bb3f7c19b71b57cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc48197b7b3110d6489f52ea70ddb979a808949da5fba3e20b8faf2340129c9a77b7bb1bc0622d130309c96cc73371ec9c9855d58ab5d8acd3b12accaa6aadf5b29d6c3382676b2b6c887fe04eef144176ec14b60a225011b31b8c085460211e4fd6e9dcd84e76638940859dc2763e584b7693bd887d11acc5669d0e9dc27644b096ec66c41ddb1e73737b57b52adac24fb11de6bf6a45f5f7a85f1032bba458cbdc73116f2e1282fd1cfeaec971e91686f0997fdac0b24ba360d7d8396911da45ed22286aed34a9494d9a296b41a04ebb56c6da0f171aea23425dff690394adef469c01fca02c0885bae84c05a13e1b5d8db9fc15b6d792c9743aa1ee44a5264e69e234c9cecb7a0ee4735620141414943ed1615e9418a2146bf1afbe03cdf73e35da5813af4f68ac76434b57d6b4ae780e33712ef3c49938f58a975f14e6a2b0f0b18b53f8e2940bab567565f1abb7c582fa5ae509f9f4018e80f81e00e906df49e501dad1dd2fa94520f4c4102b3708eebeb0d02a6e1d3c823e124f0cb1f29e013ac7cb65c9123bbe7e7907cf8d5fe515ddbd87be1a6b7ac9273ac0b2bb67cce6d601be51cab8bd1cd4fa9cce68b9b81afc7a5a0a0c94a669dad34e39a9d3160dd3479cb630f1e886498cc357f0889d60991487182605068f1418285209872485e907490a480361443006ca4026200c3c2207e7991a755f17576c10c2f7dd28f7dd705f7c90be1bef2b0a517c4008d988cb0fb918029f2ee1b321fe8b8c758d9777a0311ee2f3102a84dc99261bb1964e8a752ceefb69d221bb74df4f93ede894d129ad1917eab301e1098671f91be630a32ebfdc62fa9ccd70ce2a83a76e38aae2f2c71b96259aaacae048ca97a2a18a087e2be7aa32212c6b058bcb7f951853c03b759e756b9ba1b555e74ab11dac65033ee3f2838038c483e580176a1f2c07bcfe445c44a4198a8854d95b79a951953f6c15f18b5a5756e3299bf8c4a8544ec37468341a8d46a3911028290ef527906965e5354a8b5aa6474dd3a4bee998fb7ecae8bdb2b2b2b2b2021fadd965433e53868e2c0d88f4371c0e0a9750a3d168341a8d84585959e1132a95d3301d92d17965656565656505e4738d802444a5729e4824128944a2d168341a8d4642a478c424be611c2e451f8d46a3111422f5522ff5522ff55223312e1925918692ec0d08e74b9c49440364b0d4766846317a515ae55404dcd725c0bf3bc0026e2840010870430002e0ef02f03f80cbdfd590410348c68c8e4e114aeb9555adf3387e4b83c03be1af34073cc87523977fd2b8fc04b8fcf00009b8fc107855f8b07508b81dbd0fcbf16e6ea43e3893a0e4c3c3e16dc03d09b56b33d0dc674518a3db752e771e0e500795405599ffde0918706ec97d376070e23eac077a9b988f836dabcc8d3b768e8dcf2f41109986c0a77b112dbb45c0d11f0ef1f939fa739892f7ef6eefe2a094de8e3eedbcb394dfffb91f8a003ac1767f6dd470f9e113ac5f167810be14f756a1747673370390b048d87f16660a4871fb6f9433c6edbef8146a2956d6efa8159f4618e33ff94f3ef95a6484144a09250ede7c7beeaf0a224c94b972dfd6cda7fe3528854e8464266ac3ed3b7fa93d9e1bb4a1737e0fdda1bb3b74f7f7d3af5642a5ff34fab5c2cd21ecde7b6f7b2f9d2bf8de66e1cfaf53737e3fb7475d3efe44f5e17667efa44fa57af86c10f3e5eb933e790ba27473083ba72e28ac82989919e4400a5ba044281ba0b840c970514351261442a150315ea494f02215938a4961576e1e53e920c682a6943e82d0c4a4d5aa1a64b1428fc5a2a91ede88ce513815981bb29781d239a594527a4b29e937a54054414e297d5851535353535353535353535353535353535353535353535353535353535353535353d55435550d12923e48279df2258c42b20f5a040c9f3384106a113fd2c00a0f3284504a0821a425346cbc665263060d2525252536685c24322e4c7b931a566652030402cd38d14069a041622d25259a2c297949ab50d1f87c44b4af61323232d28911e3470935f9ee541256958df5b1d6fa5169808084686f5263c6147c7864897cf5c7b56d25337e3399a1c5f5e39a828f928ebd4aaeeb47d6b9ba09767e8516be4e474a6a2bed6b589609159c86e6ef867bc9d61531437b6ff3ec47a7a464f3cd496480628c887c3c2120b6936157b52a3ae30ba805b5762e246c37014267a67e753333333373c38d2f242cbd66c90ad46140171256c6cc19a4c0b8ef5fce7dff52f7a11ec84ad12ccd522a66ce20e5456a2a61e1f5028ba99e888949a55262a8cf4697dd5c1bcc85acfc877d9b4cd5c39b474a5939749226a9c6cc6be5a080a5d26c13f4090bbfa394727356187cc2564e85215d7e9e9b95d3276ce55c7e293b766737f7d16044f4a844b54db09d430821430819367c2641d5667c29a594514a1965bb74de6b0c08c8f20364c9816961e94b7806ee61d6f9158f1d57be0301592c068259ac6e209ac5faead7d4dc1d0867b1628c1188c8627d95d7d4a49452022159acaff39ada9c73ce09c464b1b429d322d449d2f0282775438a210853ba523e9d1b7605dbb9e8caaf3020288bf5d57a90dba39c34eb5eba09cb63aefc39b7121dd5cfcf516d26f92fb7fae9a12b7f6efd21c8b92e1ea25d7920e32138e7940f25f53e61ff36b54a7cdf5c3cc4570c2cbca0ba7574824ccc12b7998282a8ebd3ed5ce42176660fb587a890b98f86ee78062b64e131a760f804b99fcb14b7bf38dbe39334c7a37cb38a723e6ac94969a5752836ba1e596e91eefb5aafa7752dbaefaf140a876422e5405b03153483274a7dd86ec57db88fcaa6b2a96c2a9bcaa6b2a96c2a1bf751d95436954d6553d95436958dfba86c2a9bcaa6b2a96c2a1bf751d95436954d6553d9b88fcaa6b2a96c2a1bf751d95436958dfba86c2a9bcac64637c2de9d577f92f85dffe893876cd7a76e1373cd59bf6c09db3469b84e9a5b43a1cb58dcaceeb8dc65a71f2a96109a3ee17752088dc30739937c99670f3ee149c31cd710cde5af214ed9c12afd834ff8b94dcc317326bf47609eb0c1ccd2076866490ab3d4044bdb5fbb3bc98e1612c7744892d0bbd1ef980f24307d3242c35c8f8c02e03f6f76785c7f37a5b8fed3e6a53060921e0e26efaf34ea3ca67398a7d2a73e113d15edfd5de6a96ca9a792f354febdcd60a716d4c62cdd39a360e19d739e18c02933b5c34b9960785c00b699d3a756a900e8d38c3edd2a6386db3fb5803974908036fcb85d2764a2d14095903c364f372be1c084da74bb91ce47cd84546538c5e406c6c8902183a44724a131451b5b0798aea8b40cd96a7ad4a99911000080002316000028140c894462a1248cf53cfa0114800d7c924870509a89235110a3280883304821620c2000006008014368066811848b3710962a7456151ee41eb72616af81f51a61b936e75bd911a4f5f26cc6905ae8420b22417df489ab6e479c42ed5975dd4d54f1f99096a5db4da76ee2a762ee6f898552119584cc4cc514919c8d3d9e0284418838e36d09aa30ecc6e71c40aeb29d8d377f31e0c3dd4c52302876a291ad675b375bf4259c1ad60d8001c09c52a08977bd455e7328ed82a952658709b894722c445b6c4b8d0675a2144d33409dc2c015adb48d3a138075086f5ead0820b8e288500ba00e21d383091d0b7a436906c6393d9443a400f2c7169f7c0c6bd4b8431f680f0733b265ba1630a9fc2c8d8f08899096b644cbdbfc6443ff6f955305a070a1a5f5805ea5af338e4a04d48b8088ab87666f59abba299be8b8accfdd9803296f5612ce505bd2f90c4ed43a0270350056f563b7de39dc3356138ca1b5c164a84b2b30c77d5b3465e02c86f9c4557e096c1cddc505711460b8284fbf501061cfaec38ee97586340f91c29ef649037dcca2688641876886b8e0489e417ebac76ba04f00823b26003d7dbf84932158960bb55f8de9b34a91d6a793eda5d788f02984c3428530ee1a311617a2b4539c11b1827ee83bf081801e414b52c76de260a6cd4554c2f40fd4391cf7767602a953dd1725e348c81537c1dfd1b244c4845b2d82bbbb7f6e29a3667e8152be33e8c4ab1c8ddc9953f39fe6456f4684a2f31fb1fe78674e9fafdce369141d60482a010018d5b781a2c6616d0af4c04833441124d2f884f29595dbcc25c975505b6f0982b981b404e92f8c2e6f6cf42dd0e90d8ecb453f88cf6542b4d990f56bd71b577e37c00292edd125f3cff53f37ba744088560de5cf9ad4362aa4a15e6daca44bbbee18313669ad00820f54013198b9069ad13eb13f007e94eb6573bf09c7aa76f4fd26ba754aa203fc4d54aefae4b24bd3812857b275c1f003484c91b581d245eb50cfe9e951aae9822d9dba7b8810b1ab8d9fc1507e1c22d47f9965318360a266d91d1e41c972c93a8ebba2e20eb0c0bdc748b08ddead51950e7054a6208858fdc0639bc955baed7e99841eb7710e28fcc31aa2388a0cf4c45f5a7e141b8e1c701256daa95702a22822e744bbbae8eff4fa8df2230fc70191346bcbb78df1df282ea57e2bc50006c8cd141104b0b3219b488c2dcb787750100048a195f4381fc6f51c90a076bf15440836484147841cf1062845db1b51e151a873a006a83654966b1930f9d8e42952014943d788c2f2876947cb2dfe066f044375534686dc5d5f4f838259c9f3333fc3a077fe01caa3e1611f5ddb561463e7d5e3ea26151723705ec54cbc8f38226ba0c0a0c1fc35c45b7dd02d6213527dd91a2c1f58b8cabf72c15d4da006e8d0f50025cb5769494abf2b540b6e808b0001c8d63429fc8f8eed443b61712922d78f5013369620b371c4d5421ac5d6dff6325b202cd6daa047c7606cf5d816d2ae05d6186b91aa3b7817b2e606c5e7b04619be07ac151d1dc32060b4802bed35c6c7c42f1a54ad0ed8014d60500c52cfa77d473604cd398bf3e21105484541d78236acfc696a566dc94471b1c6d8298e266b74e9960f1948cbd25da077e7d987754f8fb7fc845008fa94426b9c115103114c9b851b82ef74e86117940bba75f14bf82e6ad230338f772f6d96c3af34acb4b883ea2047358d79d6376384d59929b594c2a4f7eb95753276e4247014184ab423b5cd2c79ea0e218893b528e90f9b529ffc3188c483362245933d2befa3dd8ec8ecd7ba6a4e095a886492ad52d21f3f072c5e5f7bcf547b07bb9e8aa422b5652e12b52ad3d427a56d2d31322be3aafe18b9c91785991901e8c9d3f92955d889545a5499dd21dace4815d39c30fdc02d2497463d3df8699ac7f732d79c46a62c59f23a1c1702f08c7839207193c51921e996916b88e26fe360209290690379b81d2311a7450864cc4537024ee5639635c2815dca37f36a25730bb9b98ad5203dc64e5ac11d1ac942a2d2da333c3067fa6966b03ca298e1525c1f1516711beb8302fb646cc04f2d522eadfedad5d0f2136b8c777efa0d036c8df484563a7484e51cee3d77cc527c7023d4d1b522a0eb960f7007df08d55e2337e145179a4057bc3287f4085d3aef042862bd46d463e422bc85a0df3a1ea15ea755023b2595a7deab4574122a37c0f014274cb0e3393cf0388a266cbe68d89fa1f89f881d5e5c87940d356c0da33c6411bb04f350cf2c735ab316db3fa6c24b03974eb1359c80842bd18e28b1bf56c64e6577861eebe59a98f9e6c66cf5a1012c31bfcbba58c4818a551d550cec96d822109ed858ffe85d48773d5c6e8fbdac9239b389176727cd1d3b2e648edec2f210a40b640b65b9184af62250da99ea5872db0fb96c0bf864bfe43e3c4a83c2a7fae1d9111287c53ada8d18135d1807e27d33f8bd9ec80f6f4bf9779abe840de5fc48b4e1ff2825e136f5496d03a6444515e3deb295d14e0f3e1744db513a1d8c87728f7426256a4f2206d0f9fb7d3f6aac629cf3b5509a7d7715e7717a9a6cf08d80562b95b7addb999d38122a6fb2a3f6bea26de04bd9776daef54aa851c2fd7e2543e3fef95670dd61829a44c577fcb50c247a65972579b2bfae1fea4b990c93b85665cfc38a54d7c4db8dd0bd9b1a81746e8ecbb6c2f7b5a32804883b0fc6e87a78df2aad076bcb58e3cdecbe806b1d07fca667dcaa44983088a807918893d933f9253048ae19a0ad7bdb407c276a99825214269d3e7e2cbbc3187dd73657f4926b484b6cdbd9162002a96ac2a24d800d7c1498f8f32da06dd055901f292a259c843d7b594bfd0e066d2c8ba4ddbd9946f9bf5da649920b04fefa23e65279e2ef198a2fc3d07df13ad1c9513ad18389c94770d1e3623bd766f3a24d276fc73aea289cd609a1d7307384874ebfb08ee0fcf3db277f7574813237111f06e509d983153bb2f37d1a4327255803d278955aab6152c195754bd0524d31dd6459ff422960fb703f750c764b4a55d849d6eb95c1da62eff6456692b81ddd1d46636bd980be402128a265259319139617df303cc52729adcc8e84f90cbd43f88bfae3cae31f9fa04ea0f5254059f40c85c3f8e2cf1b58e04d4c86c62a6ab13dc803dc1d21dfd62397882e22fe3e76881edc97dabfd9d4efc7745accd9dcd4fb0908a54d8f104aa2dacc2cc0ca559cc64355379356e62545e863a2ee6fb9ff5a3270c444dc76da06735f2548240a10f29f7b1b87732f925d0ebc88d03cdbab324ef35a96f645d2aa7952c2365f8afcdcded72a0584a844c765f88d92c307582cd05304f1b39d8c84f67c5da7c8ad9b6abfda2bcef0408fa812c5b201c079673f5f769606c511f3f896d32e313e9b5d9b57f7e568068f56f0751a873eb83c256b57a5fdb35f973c2b30a488520afbaf2dc51a2c4dfe51e6afe1d6736324a4757f9429fdce59292f8d136b4f953d7abd2389f64eb96882a59ff5f7ee036b09b70f33114e4678b3648071514cdd89b00fd748a1abf12b360bd72bd31ce788e63132598a600fd1aa8d18c11f2a456ae209113784888a14206842dbf08e01227e64fce3060c245d8d6be410dd4a98a2f2341c12441b5c39b115e731e31577ffc83328ee445101026d5496cb014da5a877db046283c9e994277f5691038145fa10dc9ce0a560d5acc5af723bcdb846df1b3e31fcd45f41ce8fe17202e1c32941b5f99a0f9ce383588b3a9721f3809be7e04f16b78ee7e633b4ce912fe0fb141fa5a46ac7ac30187a05062b34326ae408e508b3327ccda2d8622f2754affe7854ab97e218101fdea9ae6ce834d18720ab5d8e34bf1f874ec8df247d1bf38d6d7c1e2522486ced42b40535eeaeb17645da787744956dd2cece0a176f4b523dca8cbcf5a960dc03d971dd8b708e07eb5ba9a32320297d3a9b602e84c9d0c84ebc22842573ec356f95b817419788688bd29464258fe72deda2c17b0a204e6e7a1e98c36add63d49bbfe6dc767586634d01b700b57e5e91954f06ecb51966f5b3b0240f5aa20b51cbcfa8e7dfd00f4010720aeaf4c4e34702b514d411a889a49c816b9a6a2331ac31156157e7ccf18cf3c185439221c907c290a719c9b029e1b56e3415dd27b04e4a83437429e456f863226c419360b989f05a10555185768f1f0c52251f531b2eb2e0232f7776b731cbe9617f9cceb7acb1facfa7b2ec0a6455fb3bcde200cb9f16bd0de30a43d6d8686b5f118fb4b69734a6732d73d2b69fb9f8360834acac0b9aa5efca1f16b6e37dc36bae874899d3ea0c86b010547e63c31ab7f8c71370902ad51eca08fd43ee6931e73b496251a2d96e867bc69c514785ff4ab9fb6fbe42a42560ab944a63f5999a0b6811a144015ff643efa4ea7bed1e24b77385319b95c0d98987fedf4a7b45d37982c234ec0f4cbd9485517eb9242eaa37a6b3f0559649a7d1f466444294e18299c0bcd4d06f02bfd03279e0f0842fd3c123b14e24bc5832645971875bc93482197eceb07d898d1dc2c2f2d91630d9261cf80aa97d1aeec74a3d7c44b46a15327b2e711f58a168f00a230ab2d02800aa8506501fe2c2aa452f99d5e22e1c51fac251309885d5013af2031443a201321c455194f150680b5834e7481cf1526912e30df30ae1101120872306de51490f5587aa4ef4673b7c47e1a17718b211dd6e9cdf57d6cdf3c5c97378e1a828c2dcd31ea229f71d73f990fd023f14005d989e1673cc27f00f995ab6e4430d1523be39a6d2ff8af1196e96e77c92bb042d588c4b7302445e50b418dd8841129f1f7031961c8d31beeba52c5e8589e35c99ad476d18dc8f7052f5f812b6491f1be6b2d167181315f59861dee69c9c3a7843bd93cf3113d5ee9bc55e24f5644f25f6fc9ccaa9a6f4a067b6d72cf693bca53d8c98439def3d3de5ee9ac71e24f7642f26a6e1e5c1404de941cf6caf59ec3d7708f11b877ae72c8e912696a33afd7ad8c98e559cc1875986f6a1aa8a71ce4031173ca92cf3612b7b2c47011c41e8f9c7a1ab62431437a1b9a8f187c973b31a255b90d503be7244e966c5a7025ca969914aa0dc53c3b0d0c701c3abf7736d5c86d871e558f1e63bc8498bd44d377ab7d46d32a0d5ceafadaa1325dc0b28363c9cae05655638617805d19bfdc98027c9fd1804df743ac3b4b62859cf44fe90bd8fd4580d0c73196c31e831505d86cbbc13bf7e37e12e548269b483dc082033dba8f8eec5f8b56d4ab82b2d06599d027cf8c544076e64b94e88d71b17eb00d2280214951f9cab4a06a612dc7c162c7ba46e140e3be5ffe9a7f458429e9c847fc25ab64e57b7093d197d1fe389721d2bed11a8ad82615c965510bf1dc350f8e9b70193d498ef322efccba7551221ca18f0ade7ee57810e0a04d68e4707170417b4050f1b30c00d1f72b8955dc2f1f3f06c1ea25b0f797cdc8cf4c9799826981d041225db7de8a5307738b54bb36b003509bc1984e520edec5f888be5aac7172bc7ddc12e7ce55f9fc32a1fad9c4a0702fd7dc8a4c8234afd6f3597fcef27ab9101dafe016311650a6927f77a654696dfa9efa2cf444d523c076d030e7a0b7eb3731081efe12098e00b840e41e53f58a597496b188e88483be165e8637df707b035414471a058e85f1436282b4dbb9c8c974a79d03ffcfca84505c82cd01db53b0397dc81a3bbae755fd63c0c1ce6af775fadc6be94204981b3742526623d2062affbc4e421e33e4a6190910449deea5d2cb153868ce27f21ce0d4f8ba9b19d4d270496b24173bc5e8c4973a68b7ebcb471fa232c1561532131eb9615a8a0185c4f17e6f18ba5a856b187ff69193fdac664aa970a2830413b23dd5890ee3c5cbd0abd00c7a3215c02cc9735f8f2307c083a25c0aeca04daed1c24639fd1eb479239f37361521a35f4e9d1c0a437b8fc08a5104dc10b0fc5d0831997050f145f6172988a45ec663313b485de82631e0b04d3a846515e9097ee054741f652d80bcadbf75f8fd73e91d64c69230b4201c995e6b7d14665a48fd062adf73b933f948d64c254b3a04fe8ea033677b5de5fa43d6cd564c11cef2d826d2d669e1604c9aea602620d8c4d31be28a2484ea2b8a71c53f0fd787daf3bc4c3971311d83fb100e577a708b141dec08f1ab7aa1cce2f986180bb5f802ed102a5dfbc215274dab00ab1ad7fecec71b60fbb58112d5e221de34cb148596a65e8065bdf0a42c6842b846ee6577d542fdec87f671bb14f12bdf3416a74ad0e3dc045e343d759836b44f6b63ff6c2543145a4a003a4a4ba600bcb11dbf73c508d2c06f2a2edc0f72376db88e0863f21f9f40038bd6e801411718a48af61632ef9fc93bcb394eb779273565cfd0b93d3486f86b32ed705dd917a34b7974e03dd66745f6a8b60351192375eb797669946fe1162d5e1fd2cb8434a949ac7642c0c80e2f36be8ae940795d8a4d567813285d302a1d366817e1c76e6873f85a8975ae804390b8d7659a86a6be25910f82f619b047e53a82847ac8a6228858441e393e571d0a9af2fab06362dfa357fd3a2bf6e7f30da848ec426e001ef2639b765ec6cfc62caa75c09fdc6e329c9663461f279d7cd72dc92bdc3743cfb8898146a121e7d98b834b11b60ae85862794151a483c68d543d4620d7b62c0ee98440a042488584a8836942e14e6f5adee02badb974790ae760d1e674bf7a05a565f1cc8462cf54291b943ba1311e9b8784a575fa22aa18c1244131195f5bdb004073a36d7da391213c1c712bc106e4594f6bdaa01bc47d032024ee8d0541f974fa67e484d807aa1d3df8bcbf7ded3ebce9724240b81c29fc01db7d04c9da12c03a68ca94cbca24146b7b24f7210f40beaccabc87947d4d21709638104940c78d87f3bf9f58332a0b92f2114377302451044b14a32e380a1b199d674e72cccd02392871a3de1debdacf12287445cef70e0fc054af3df7fd9681593097e0e70fbc6ec8d3d2a08adf461594b0a3c0d317fe7131463866fb9c52828c368d66e5fa027c8488a0a0286436882e89ba0c95b37c7f24929b49a040186d92a243913a4c757fca5b5d49d2dc6e65f3188584bea5c880692a01b97fe53a5decad4e45ba7a8a510e4eb12f40e82d36176029cd0a5697f1e5f2cf922e304acd74d79e05747be65331f40a5114737c5214a22d0fd5f3e80fb95c4fb32e88875f348ff869a5e544acbb740073e6cc17596a91640cc87509fc42590e6f5939031deadc5fb03cf8d269f8b3aa0bdb18e60a59b9ea094cb5dcf8d2dd5876e0874ba6b02b4baa581eea01b43dd37e626b8eaa209e88b57eed01e819bee4d084da497117b46dc8457a1e859c323eaeb5ab7d18d4b51b8c3051fa25fb2f3533551703e01dee14ed3bf161cc04d16738257a048010ed686938a2e8a3b7605ccabfb31a183fdf2a331fd4a957fbb165229f6f901f2be4272dc717bffe1b6d3e2fafc076a21d18336da761bff0ae4c1b4aa4cf93faf4ece6b1005fbbb3fd058c4eaef563d0f5497ae5efee69a3fc77f91eeec44837b02e19ac403efc86011f848753d07b980115d7c0ace123775f86d6082bcc09db01b5a24eedf25593f94e9d4505375f10e51f9e8fadd950b6115b07165662f974fb7f10f7f0bb3db89fc3c9895560f18c8f573461e8285919f3cb223f52085e4af08d07266278ae6c683c6a1fa06e9077f7ad86fe244de6f5101fc7935f2e7946725f85f7b1818f5b25aa5fc8502a8433c9e0f52216fac7015157558737859a899745995356d47957dd9d583101abd4d5e87cb20075484133f24c95f14b3666d75f053c110552a297f40b97eb94de27d66a31e58e25ff9cb399a2f9af8e371980ea590e22f72a55c332480e1eafddcba12afa1f8e154c44beffaa5ac7e1d8ad17a540c6582d04fdb0e5e6217f28249d82623edbc735f6de189e2bf73779eb006bacc9c3edc2bd5659b3d50bfba9fd65be10fdb4f710023fa0eb4ed270a1326eb4f30c16677822eea35bcd3bf5c5acc0a944464528a951a8c8a2843360a2840c8a20693e9df1dad98575ab78ad6281be32fa672eae261a76ac6f017a5e2078001dec4c4c0da7810c97cc7421e181b32b5b7ad974c4c90014379ac59f2feb81603810bb6bbbce51074d1c40d98aa53de0dca0fb121b83ba23d1881efce6cb31cf7fc5379c4f4eefca13b4fb488244790a38f858ef74619f14f469b1f2b24007f8879a187e2e72ce0933c1ddb1dc4da29a930aed51d5aaf1ffee4af83025d64a3953d2e06fe64bb77ff72eaf56731ca40594ba4697c2aec8ec60178f9dfb52c1f814713e66fdacc0c08f4ab889f5b873689ba073c52db92804831a4281daf51ab9e8e56dc26adf59cc52bc9fe5958e70fa2af8ebd5595dda715ac525177ee5b31cf2f198b2baef62bc5e74a6994a240dbf60cdfe03fed21840d9a36f749fdb70219982e0d82caf6fbf506f6a06ee6a8865518612d92ac22f7239a8a82360f8e0a6f94e46754444fecb24cfa9faa19ec9ac40239bf883793eadda8d274e57a7a51f03bd58c6bc5b24fa21160680e2045ac4ee4d02af770d697a4838e9100b8e42b0af3669254d1feed3f2f4268b7c32dc3ca891b325eb2eb4dc9ce34e5a88fa70ba25291430d55d6a4bba0cc87b8119cf210a04eba0a3b7d9577e53b9a488ddb307f1ec4f63b7cb908413978bf4710a2253fc958861e06c79a627365f86a1bea6de56a990733a667a0537108ac6455aa6cb9be01e9e11354e510340175675e6312831b3a87a954324ea7d808a94cf63e934f4ec062689049d554b61cb9483756648346eac32e85df11cab530242e54147580a8e67e9588cf1423969f1d5c3566c764f6f0d10c4a8f8bf5ca3072b7bed238dc71ec5a809b6f6cd12cabee7904c29f8501e013666052d70a92a67974274aa8d6effd1acc413ab2d138da691ff832919af638a22663c36646b6fee02f4a6691b2a36bba8dc08e21073aa0aa0ec02ba1c49f767cb0b62d50616f71e7512c7bc817c673ffeeb93c15f092b05f27d4ea74e613b3dfe12660b75055413d09845070044d3fa208671023a2d20b08cd31dcc6d01d0b198f348c76f4e03ace5ab80aa53e06ecc2d273ca237744325895e87dcc008b4581343fe731bc0d5296509951e0be221b5df38d4b95ebe4c60ddd4a99aa57e1510bf469b53c6fa10ef667a3050992d9fa91cecc3db620a9186c9159e348dffa9b2b62eaba97c737961eb934b8de7f0596f83954ab91b9cfd85c9d447d0c5d423b69f2255893ee5f418082e6310cabfe4a5f27c46cc43555223d464347ef6f71083a55f15b7d6f3daabf662b9b9e1f64ef1beb38d053465bc5d93bf45bd16f5342c801f623a8e0e35315675d5e77bf44dfb7d14a369401500330da4b8f2352c1f632a41103b41f18bc2330e27f282c0cf8a3e4cb5269658023ac27a20a1de4fec8284d7b065816b309b05cf734d3035e35b3a831ff8a8f834bcc49655e1f51557d26bd5cc14ae934e69044d4ca388727a10e53b0d80c861c566478f83252d5d678fe01cf8f987e13a025039501b8bc63d8aa84a5aa13a56fd2b3950b86275e38fcf65d1aa4078bebbd48ee95da0a2c8d5d09f80a27087ac88c75e2f2fbde114a400200f73a223a78c5cfc02eaf24dc7c71a073398926ab39167c74732432de55bea95f63a85253d2b65dd6a9ef970fd04007413bca6f47b6e4df9645d826ce36828665c403b0ac3e8584bc4f774facb5ba8f918891214fa87d64e3ceb725efecd271eb8376dab8ff1d51769c56d4efcd5142032055ddb18a6cfe14e1bb6d0bf161e8f5c236013c28ba85a7ede1271793e217c543ef03c12d0ee0421fbf75f444b33e5730bd7dad8c2ae180a8983a50325779fc3285b62c11d408ceb2533f4fed775bc0972c8a0b73df75a12b092a448f7a7de081db2f1121d92ccafff959bf5f7876eb1e0bd9832b68e61cf1639971c7a83bc66e1e5f67ac39e68e72638d8e3582954e497a11dae6ca856984450c0c4215c721d1d26be28c668ca93b8a028ea8c3c8a4f25fe93a46b8a881c2f86e0af4e4334a649616942d6621e2321654a9c15e63a992ecd18d6d4a20df6ddfee0a712d3c4fde4c6b7c2544ebd21170c5c67fe9cef501f83c020a3401c5420185730165624095c1cbe451bfc67dccea5dfd0bc2cade0edfbd9dcf02054e663a8f0305f60325d9473cba5f82f14f7ddbb6bc3c81277adeb148002531202a4febae8ce6264f88ab91b224d25764c970db5d214c903ba4015d4608424c3705f497cd6fe3da7b6c7fb27def83d9c9bc0f69b36abcec4d70d49e043edaf7ffa05dfa0fed52ffe001f0a0947a6d53d7dcb194b48f0d6f33dbfc0e8daabd1a9a198ddb5af36a2c2e66aab1db5ae82f7fdbe4546311662ebbde6a594548d3290572b1dd11ad2de5222fc0ed6ccec4a5fb1951cfecae96fcceb5e3476cea64da68424ad31afcbe2810c02810875120885120a46b11750df5c4716da92b0369ee0ebb7ac73a581e64b00598d839db94952a773904c895287688c823758cc6f3256a2bb1b4a91252b3daf9e080127e7dbd9d5577dda3e8ffed60fe75c3ea5836578959e64bd603b26e1600a016fdc135f01cdad4f074e73905789412e625e1bb09f92daf09bb1d57c08db803eeb5bfcdac1b74154464ad585bc3ecf92d8f19ad65ca2c50714ce77c6425074774a25e544459a25a234ab7d5e8599bd2cd4f56686c314fc0f9713f9d7f7168de79d12ec5b6f928146d8201301e82a3830c8e47f68bd3c5ec9ff50fccbbbeb6b79b971d5214d3b5cb7edeb1567810213a44402e6da93d46267596f81a126a8dee5e62b05350d17a64b6ff21550785b24099a4e20452fe402a6fd8627211fd13c600db763e43ccfc99b79aa619de642774ce352f3c755387acb0298a9d5dde2f8ad7a2ec5aa1248296104e53323b3c62d5930b21787d888b9535deaa1fa283e7d04b9dd0354bd0e1027ad180d2335511726e30e3a68a586daca671b2fc2db65c45ad2ef64cc2c6303279cd90c16766f6987e4baf7091341f24e646c752f5361992601e3be111f0f581fba2ceada20d3c18d3d142c0a256ca2e64e5fb119e1dcc3620ef17108c00111288be640dcfdab23c7ef2ae9fe727b5b18ef9039bad5c4b8fe64e1198a6f208192896723c97e06a44a81cce94f278f30654db53d9de82d23c26033a0b75a6318adb6ecc12e852a219e3c8494ce8977e40921c0b55b40584f8d0f070cd3c2c57ddacf9f89dda6e45ae4b62eae3e304f4de2ac7972d45162b59e37d6a4e79d4ef725b768a2cae646cd4a5f9c9786556b3f8aecab94ea9cd7dad82de8d16c1ea2121a88201c7cc96df3000830f365f6937d137509034e400f1c3805744cf9b6c32f1b9225e0611ac28acd5108c7eff4cb9c2a2abae1c33063c4f7495f6e74c0649a666f81b89055b7d267202b1ff4476963ad8221806d4a495cf84aa1f11a1ac156a035bd9f2cad54084d71c70317902dc48662b0b50f946785f8af1b96e42f9470f6ebfa9d90a745186730648c95d66053be6248bc5d795a4bd76ace804da8e37e30e1b764d1fb2a00be0b3b902db92bdaba544bca542773cfe30ce7f5b3cdd9e918105c305054a268773e6b48e282627daee0f02f236461267cc93d5455072921d20c517eaee7c2a66abbd2865bbbfc036f70e20a885ad475c4fb5391ced218721352b78a2727fc49658b7a51888a004448a1451fbcb70071d719682f04462194e01e088753c621b8d3a9dcd75267a93443afea4a9de2dc1cc7027f313a0d9996ca958371f950a266e70cdc5c68f37a677112ff1da181e5644403c76b3396e4fa872f8e4fe5a3249c6f1b20aeb1ff7cc9abe905b1b34704300d048348cab493adb8800cea21057e06c3d4523b6a4b70610b4ff64b7857fc2d58497ef33c6ba6260cbc65a57dd010bf3287845aa1d696924e49c94827a5ea405b5c517187f530ee4e7e7cee1da1946f2eff30c723e892dc1fdb364ccaf52abe5d80ba03d909ab424a51aa525e8e22be5ad111b57166c2022afaad74947f4a97807d935b06fa3f87972d2828223ac2958c140a020ce534df1fcd4bf3d988d33f0b03c79d6bfae58413b9f09d82cbcdb41e747f7bf128e2b6a4f9b43266853bc1e8505188f81a6f6998cf10b39c70c8b47d829d769450a623f19be9fe59fd80e26a2fb2da52eb08ef881054a17eecbaca07a4975b906fd64c9c38b73d1fad8b3887fac8fb9fb55c965ed18c25d87fd0d7eaff8a44d2bd0bdffbf256c4891229073bb74dccd4c5492273dbf26819c38cdf7dc4526ca55f4c708a2c3f32592830efad9ebdc328158025f246c1324123a6738ba7e821d5ac8f4e6fef34dec0cb62602ddeb9f2b94346aa81a02268f15a76586ee61bbb297f56ae94e43abadba4cfe383a13285d17e44870ea5ffab50ece8bc250941b3c07ee9c2292b646a6113d8077b7aa64890109dfa1c73d07759e5434e6ecdda84a6206264982c9e561b9d791176a16eb03fec61e6d1c4a3b23589a31da2b89e07bcd02f3d61b40b039423f7ed843533a87a7966f007573d98c4e437f3abae3606d9efa0a5d54c31a4a19c868947987830f3d2fadce46e908732f3652733a120cbd14da38b5cc7167935cf056785fad42e6beb6a66d70d4666019a74486e0a83278d91810dfa8ba51416e1339244e998fcc846c97812c76ac4b253e3c2799e8e9e79f7c8392d35fdae0941b645cf002918fb9cf8fcd680615bf33d134aeee87f5bd55272edb24070cfe08f1f5f4d782ecfbdabf2ecdadfd9a51333158462e28722380ff7795af19e31291a706454cdffa82c1525331f5871e90f2059d74995d12b532c620bd805aac5111a5d1db4428297a47a89360b97c686561372b73466c426bd3a06d9ac4d2233bd7e356aea208e2a63f25f91caacf346c0729ef9149b97bc302603ba1cd347484f9c1a7f7aaa1bfdf390257bfb3a11abe487a43e863a297670a48bf86be2d6ea7c86c86e0315a53a6a788a4d7ac98128457f65a00804036c7f69688733c2f14f88144ae1fe530839799dce13ba4a80fc1e7cd01d453e9b52bf32cc298a66e4020477ebe8adab7b1080c01ddf7e97dedace79f4e9d67d929f8bc2701d0556212c114291ae08da691afe861e8c5f9f3aa168826ff908cf60dbc5511f80df7d57db33cd64a9ab9497d912bf2fcb765e1118f15737ee0c9855a9de3080745ab531449868b07a15e58e846c09f1e5d375a004223ed37fc1bcd8485d98223711d1f881ade3a271074bf6e74aaa5146600acc6d202370b70b9679cc6ca3ad380e184c456168ff698b2e26f054944b913b19cb4c53682ebba02f56c1d921db36134756df46ef3ecb2c7c1d4478c10b862904382cd287584629032ab6b03eb7e0c1ea363427402a3999e8c6411921bf51bc9b77d71948a4d7a5ec13face7774510f62b2e347908512440acc9e89a6f6a3cb851cb74ccf0e6bf35a83a90a9d245185242fbacc3546a85e2de93c8aa3ffe1bf0007959a162c96aef9bc4e1aef4fec506951ef8f5f3f0df5d5d3e44be992f689fea3e5fb4c47c6c71f19e071d5f99d7933916825c31949caa925ad26e559511a4d83c9a6483cba6c509a6dd4c72b012f7aedb26abc2da719fd9363e43ceecb7b74b9ae1098bd6e3baf1cf0d39d1a0e784796c45337566a6518bc35ca7b23e1256fb82858718a63c0da031fe071b43db522b82ad0a4e84086a1df696f646b4646b45cb6cb5d27f95a0bf1f304cd5bacf44c3af0def085e06f64d36afa06a0e34f92a9830b562bbf2349dea1aeeaefbae0f1934c64388dd5aaf4436fd015661efa61517e46a301d76ab6cadf663306787f14ee41b21389263af5384e10cd1bb0801ded645585892537aa143ad10f6ca8a61f425c0747208528c5d82831e72c9af166238bd4b7f41dd07fe90feeadacb825ec78e327a95ad36179465e724e215e09a2fb68e341d463bc3c511ff8bd5259a431aa41dcbddff60e6e9b249a6d0c663949fb318a235973bd9599b7267fa60849d3d08412ffacf2d78308836cc5bae3b4ebfb85043567d03de381f698f5bba1d6d49ed544a287fbb451f822510b1067e6647746920cc2833884fa5a8fa5ea0b3fe50558123e51982a2c74a0c93053a0272eb53b639bb75f879f57c5c6f015db176ba10fc7cff9708fb7257d14be775a74d496b39e736d88025d187f796a446117a67b0393941349c044f4674214b564cfe205d574c0846828a29f902665652819877467dff5a51ff1d038e45848a0c7ec53e238ff8473dec3615a811cf2110f0453354a502a85e77bb62de13bf3f025afad4127070190f2c7770dc226f81d571323ab893e91c4ba2d7033fff1055002d09c415ffc5cbff2fcc96b6ad6f418ca9dcb923581d7d855f7e4f1bc8b88441df15a003f81a0af75a7454cbc48f8a1b313a85e2d8ad8d2358eb4532699a9fcf609a767d6498ecc4b0c983b985a54a99da8d45075626c9f523bd4ae602aa6019bef1853291df871b33816be70eff5a553e335bf867ea077470270d827e03ba78579da9a9f2de7cf5052c3a661db7eb6d05e6ad7e07ce6c447c4f13c7a53285d31a23be889fa8e105838d1848104a0997f266378f8660b0445d4182e068ac54324702d1cfbec562d4386b43c5857e0fd934d8fdd17645d6019e0a0d5a67fbcba56b64dd5fa95861510d78b83cd2da80405cc048dc237b92df2124e3fe9ade01fc3b889c34142c8e9c1d1e64b4efc0fe0c65df76c96368d04f1928eeadd3e7f2886ff86aeb8dd045d816d5e29ad8ec6269439dfb7d720da3e284ed9369eb9a7d0ef14e76ff8a2704041fd63f5d417950ccd066038f80688a2f12dee909853084880769cbcb129b408f3ae6bfcd2c95fc0ee33236350caa9c9915f43579e508eb757fb3b79b75d0f6bfc2194f23f18e7b2419f1d72b88bba5990d0d1aa38cafdb329ec25754f6b187207986be073a988082adf01084968bee840e7f31663bdfa33971571b73d77e386785a723076e6be750d067aa19b9d9c1c2bcc93be54e62716e8661207086ddeac8b6f728bc0e25fb6eedafc53f180883e949c555fe961ef4de50ee9b18ca90b5b112812dca2a24ca25bf8ee3de70e254a8d2315ea7480f511c64bd1ebb2b3868fd86b1e2294a25bb2824670103048e36e548c978c49d923f49b4bc02e824d1419cd89d2ad95c579839b38d9f974e444f45c2b9f2e61887189387d30059986d41f96d57775d381178c0464d396753cbdb7267db01312339e88539105bc8646b01085babf256c169d0b3eb80a01e7ca4244fa4e91e362b0416084be67c34d79438df21f202607ea79a65c423d5a37086690fc62abb6344fe84f4c0896d7d3d824b7d6390550ce5820e30c81bdb5aff4da182c1c983ab4d0576ebc18a83908d6d82487b44c0d01446173455415f299c21a908cd1f354539b62ad6dc15fb82341ef60c150f36551b0da2805f01a30b5fdc639a9e18e3ce36ffcc48e460207255987ddc3ac7fec0a0994d807f79b0ca9ba0f8819675c859355bd3442e55ead092e8ec456b9b4f77827373ca99389178734ed6fa9ff196d865175c316c004b73f3c4759cceb8e2eace7dbab92901056973f3e9ec1aa54534f06e229efbc49bdef16d980162f01180196ad6ab323c78ede33e8da726b15f26b2798748c4de8104175024950a1fe581a00eccacea6d28261639ec65e91a08d8eb2961512a63dd206de12f9c6714524952cfac23e8668701f11dc841102e8f4f9b5dc2a5dbc1e084e26dddbbd3ada4489a8184e2c0319e78a8e72114faaaf2a65481f6399ad33ba8db08c5589c37705764a289d405e40e67d47d4d32c7f4a82ae9eb0ac9e19abc952af6a0bdef0a2075256406c3159ca995d13ac3fbba3595c659a5870afc969906ca98676ea1206866625e4684bb2faf75ef103612907305a4139f9425d0cd402331fff79ac812e2395e9ba618d1506580b87af933270a2f833acfcf4ec8da4e65cc0240e125368bb451aba6468308a9f2839d7f8eb7aed006cad1467415dc0d1a87703a2467a7563447e722bd135a96703a52eff9854e906a80f0aa78b30b0d334863263c3964ab14871e1bfdb3f5d7138f653a80960c30c4cf80b2c08015b35f1bdb926a227b0c165f97c0c68df1843606f35c9bc72f04b3e002da238d07bbfd92157c497cf24bf458a06187e90bce63a4d6b049576fc37b8ceb315097a5203d2d0d99bf764d3183480a59ee0aec09f931f6357920230c8e42ad32f02683b2d67e6b9979d0baa4816d4255ba862d41500abdf1adbed7f677572f6bf5ece55a21ff5adb50e5d95158b6090dbd868b9d6b49c0b15cb70497ebb04032e518e6bb73ba658aa7569829e715295116bd5670020cb6ef930355ed4115ad9781d7996d1eab77806229f1c83a034118698f549cb44f247158d07a1fca6fae178a48bea65663d77081fd143c965016a9298edfd825915af9df42bea3b19f0e8b7bda08fceb57af546f485dbb8fc36c88ac20f194231677b75e0f3b5496076c9129b340ab4185cca6ebdcb1f0c31733fe36d3ca881e8e65e9206cdfaa4bd055ff37aa91c068ecd26616b78757ed80fb260c520629d43160195bf6f0a39caa643880c04e128678418cd63f4d034031ef5f235f3fb63106ce59530b5af23cde86af9947f6fdd92a30518df029997443d6006766fb5493493f6cdf3d547a29b87b798866332cf0a8bbc18000bcda4896026a0c841a10477d2175bbcd4dccd7b816dad06518caac80844a712ff475867acf8f1e63063bac88f1f4249ab6485e3bad38e882c186837ec06825776376b587ce33a6835c6ef204cf1684d7da1afcd9ef4d9e7f26df4871c58fa6762c26123df5bbed1c801a5815fd90b49d1af9775ecd4110244c5e7ba6ae5c9dd84b79a663c577671474648fda7642a2f4e73daaaeb298339684988571447ab9529a8b0a0f80dbd5ae71054612e51f9d77645960473e0ab5d7114550e2bc3e707699571f3e42f6ebe8ef39cd98f37c03f8433afc1857dac1d7c9989f4404fe5aca0a262ca266086d81f0bb40db89ac17f9fbc88a2b94c08ae16703bd00925f66050f1e5910d72e185ddad632d014115dd87aed95097001b5677478604b9d7554fba407535e3efa6001f4a22d093216b9a1515767ceea4a2bf0758002922d4a3e340b9082388ee5234ba6203e7709b8c0818f6159924bec2987642388ddeac766ded2ed9afb580bdd08a85cdf2a6a29b4d60329f022cc091d4e1c97bb105320a89b9479a5fdbbff716e0b893d8c1cd9a46e3fd66e3218dd0617564e2f14580e6e6a902cf58ec9f13052ee930275bc016316a92257830a4f814c4f9e0898e6bc68e60a3d4e22cf4180b625ab1513102dbaef0e0fc259ad1b591af2c4654aa0c52988c3d0ce937db83ae1fd72c3ac44d24ed611cdbd98f2896bc61049d89a160163401d0d4935c7297274ec3b2f5224cd7d64c96cb3e9e8caee28d5c9c59221e9f8058c762f46edab747cefc56ef4b87027add3b7b37609c9d1d5f62f548eac4813c159347451f80b2fdd68a560b3c43ce21d7e3989df1a3c95f8b282e28f0462e4a2c4519365ca74d4afde470d0589487e72bc703ff43d6482ce4291418b7f3b99de86a267d6f064e28a0800478ff1d5c747af47e1098b874bbdccdbf42e3036809986132138cd0dd12bc4b277582890d9d04d24156a460f70f78e25b8f9a1e46d35550cbd48fb67f9f08c23cbf5b20f1b2c7457dc254801bfb1a52e6f4ff7924057768833b4af6756523379e58f32a5f1958b5ca19207541cb07cf06ecac8a4fe8bd7c05cfe2815c73c0e8a845da3e72d90c3bb0fcc99733ba00168617695c1fe016e0018afe8f95d77363800c2d9a873244409f4611d4c35b9b4d455be674ea17b29bc9735abd81754c743bd00655ddaefe7707c38c086ef73cf91a1cbd6c5daacdfd5c40e1580ffe35789daf2553879a7714cd0352e96d0b6375f9506ff9f74ca60a107ce163d0eb7d354a4106ebad057cf41f838001710d64b25450b48aa1c3344671c6fc99a8b1f44a8abe7ddd0d0865aef8052fa02c23528f7e61b4e0ea1a4c6c5766fea96840bc226943b7ca22b4137651ab78adb8c1b10d446ad8a157676cf3afbb2a9a14879e0da53278883b840ab266d7af2e4f85410fe14e2d0d721abc4767cd7766c28f20408983aeb753254c016ba472af3dc5f1a15a064e282f19553d0d0652f5582b3660588d2a6100a92d6a011470c662730ec5f2d805bcab19a2a09f8a0f3c843d82896abb31151f05a77c3b24a1d08806e0240090074de42c97510642d78d510db0694f89b9e975f7989f3360104f3ffc3e5eec49cee26c56c8e417f9381ab271fbda8cb4570f6775808ffb69e71caff85e7f88fed07566c4096c5351a529935af60fa0a8ebf55fa29c03da360f86b04c612662d1e0428eb05c684e8abfa8218733b6db53c1cf1d4ca5073a967d264a84af0d86bd497f7990448d09ea54ca0ffbd75373817c15b8135fc5bbbd216d3b3d793e59d984671ef23c593736464c0766243fd97bbc1c6be37ba1d748a68187cbfc75026a2647109fee9a31172021b8081241dfcf3beb659d8ed3fbace18b3e1c3e7fcc350bd99e181d1957113140a5d1ddf530b72e0006e9c485e61677822295006e18e759e323ff9c1ba99c034877f801becfd25df2ce933dcfa419fb55fa52f826867cffd2e8cece4eca93bc37673c1b4c5b572e2198f418c30dcc717b37bacbf46031887105a86c0a92763bea9f14384650fe01b8ed20b7315384aabd85c9f44405a53c4a03c6746c9d4d24199d802e68f8cc015b4c0cb9bba8b9b507954890c96dceda36cff86ac2a4e1be7a7ac5831f3fa87c054e56743d0abb36c66379a2791ddd300006fd7d0906f31768af684e4d3847438e4962196403a8ba213ea70b185746d6e7438e47488456b6e920c6fb005cb598b16100a2c775895a0c1772d2503c203bba2bf2c104d6819151a6cc268020636d976a0b0ff47ee182ccb10109f2901b414bc9bf5ae1ea1b02916070f9cc33ed7e0655c70b6cbb6fdd3b59272d5f914b2b0af16b14e81ca000844680853f36efa85eff7fc12a1e19a2f3df5f44b0e408701d0ceb597f52e1793c6fee7d6f79d714410685908507a1d3bf2341e63dca0ec94c29c82c6d96a625661479d9294db6614480729c68789c2cc00fd091129a60f696ab809bb144fab63f1040c15f94457fded49acebeab04543c231e711beb850dcd8342855c7b0f10266e9b5c5196e492ccff54feb8de122d813d32c16e54793ee8fe1ae94760f03abd794947bb1575cc2b6e7eb144f8d9e8dfd45daf8bf9e4e7411f3c2c6654f0301495434f2f9555b77f19f1d5bcac431753d1778c7377ab211d447469d851c08258c561fbd8813625bfc30b8afec73fc02658f24e9014f989fe29bd1bb8f952fc9d16e6ebd5efea41825242245d4965fdeb821f4751c5641e59fe7efd6fd5d9f4e8450d2a84050ff897320679f5145471edcf320e5cc40ea03c87189128672bd0807978482cd7d40a657d6e18101a0ac4c71c69041e5005e30b5eb469f3a4792cfe49136b2a400b2b292be29f768d32bf77cedd69b5b042757ab832bfc7e8ba04942aaf530e201711a2dc395cf80ca136762e3372062bf2097ef666663a19ce1e5f4865ded6ab09ee59479d606a5ce497cdf0c43577c8cccdc3bca745d189c85b68f096fad2d731833c86659d000441e029ff35d781f08c805849e3fd2f932d9d5ee6cd531a9c9743490c77753e57f95cfe0bb29e46939dc5ddb1056e9b49784e2df07ccc985168df1a9b22144991e7530a8d0bcf7b5f1d5789c58ecf925fa6ab079bfe44f0d43f9ba5add2cafdfbc2f568fe9282eca7187a1adb000dbf838dc12ffc52313fbfdb2156e5bb2f10f9573b2048cfc03aae743c6531040ec28e95411d84cb6cb145d7ec15a1381aca571f068f1daf366fabba08de0b5d70712f0fff8cbe529e3812c1a7078901236f9e26d3f18e64db986caa6661bf6124fde8bffc5ffa4354248238410b2f79632a70c540c580c48903cca098772c2097fa2e44e94283913ca7c0485c7a866519816857b8d86b6ed30688371496513956f18285e0ce5d8d6b6c91a6a1c8907008d47e251a0b753426f8ebddc956ecae0a8768f764751ee20f5fe51d455147c8a7ecfa1aa8734f51d9a731d1a9e87ee7c4575ee4379de4357ff417dcea23def2468d1db8822f116fd7120947521b4f52014c8875021df800639a5437ebac139a0f495fe1d500efe43eb3fa01ddc03faf317fde02eeac143a0af83405d07a2219c0805e14528d045a0443e022df2202ac24ba0239c041af423b4841ba1247c881eb910357213e8d089a8d09350138e8412fd049ae44a2892a3404f781380b6d1bb00b493781fd126c05b09da05782f41fbe8cd046d25de48b4977837419b89b7016823bd0f40bb89b713b40df07e82f601de08a0edc41b0ada4fbcc7d046c03b0ada50bc13407bcc5b01b4a3784b413b01ef29682be0bd00da52bc19407b8a3719da0b7853419b01ef06d026f376006d2ade55d06ec0db0ada0e783f807615ef2b685bf14ea2fd807719da57bc21403be91d01da65de12a00d813716b423f09e006d09bcb3a08dc55b89f604de5ad0cee24d01da4aef0ad0d6e2bd056d0abccdd0aec0db02b4b7787341dbccfb0c6d0bbcbba0cdc5fb02b4cfbc3140bb8bb717b42ff0fe823606de19a0edc53b0cda5f3ca32103c56f948586b20d43e3917831341e99f26ddb39dadda3dc51d4fb287815fd9ea2aa90e6e8d01d9efbd0d57ba8cf7fd09eb3e88fb728eb4068eb42289007a1423e8406f90674c829dde0a7f41cd0bf520ede01adffa11dfc03fa730fe8077f510feea2af87405d07818670200ac28950a017a1442e022df211a8080fa223bc041a741268093f4249b8117ae443d4c885e8d04da04227a2263c09253a129ae427502457424f380a54c96114854b0afb122a2f868689b2fd4b5b56c651cad445c2aea26b93763ee12c33d0f6c9447802bd3f90d04b93d0fb22a277047a4d10a297d30cd1cb6518a197dd1ca197d920815e8ea3047ab98e207af98e11e8e53d44a0b79328426f374184de8e0288dea6a24c08f4b6162e7abb8b17bd1d8607f4769a0fe8ed327ee86d371dd0db6c547a3b8e3a4e6fdf41e9ed3d36a037263184ded844107a631442e88d5400a1379669d11bb5b0f4c62ee88d61d8cbdd98c687de5886bddc8d6e78e88d6c587a631c96de5887bd9c8d77d8cbc53dece5ae4cc25eeeca26ece5a2a0c2ca32f672576a612f776517615c99c65e8ece2542b60dc6197c62eda624e1341814e41390ae0af3f88e61611ecf1df10b1ef1abca61d81146fcf218f1ebf383614614f12ba488df2194614580f9ed00ccef072f868121e2178888df2223308c88217e8f0cf13b6402c38618c0ef0903f845c1326c006bbefc329b280cfb728610bf8c46158609a186975f5e2306867979a3cb2fc37103c3bac811c42fd3e103c3826881007ed98e2e0c13401e40fcb21e45300c881f7e998f1fcec17e5082cb6f33d104c3b83cb1e5b7a18882615ba6b8bfcd002a1876adf0e1b7af28c3301fb0d0f2db5968c1302d667af86d2eba60580f5ff0f0db6084c1301e38b0c36f8f01db618d0ebfcda60c86e970460ebf8d861b86e5a0060ebfbd061b0cc3e18d1b7e1b8e381876831c597e9b8e3a1896a50501f86d3bee605800f2b0e1b7f5e83d1866031f35fc761f4930ac062568f88d4c34c1301a9e98e137421105c366984286dfc8002a1826831531fcc62bca302c062cb0fcc62cb46018163330fc462eba60180c5f5cf98d6084c1b02b1c78e1378e9186612facb1f21bd994c1302b67b8f01bd170c33017d468e137aec106c35a78a3ca6f84230e86559183ca6fa4a30e865169010bbfd18e3b18c6421e2bfc463de21e0c5b818f29bfb18f2418364509157e25134d304c8527a4fc4a28a26098942952f8950ca08261295811e5575e51866151b080f22bb3d0826150cc3cf9955c74c1b0275f38f9956084c130271c60f22bc748c330266b62bf924d190c8b9dd1e457a2e186614d7e02d2d55082141403c0af5cc3b2c13000bc7b67a0deb0bfa897e5bdbda8f78d817a5de0fb02f5067517f512f5997a79a9b9a8979972de16a8979bc2b7997af9cdce7b8b7a198ecebb02f5b213cf9b02f5f2d3eaad45bd1ca795ea6da39e7716f536d28ff704eaed31ac3716f53699d65b02f57612907704ea6d25216f08d4db6782bccbd4db6886bc93eaeda50dde57d4db4cf4fd807abba9ada8b7df70f0aea2de8653df0ea8b79d3a7837a0de7efa7953516fc7f9e04da6de68e4c19b01f546a4d77b01f5c631aef714f5463221bca5a8372681f05640bd5109e89d807ae31922ef28ea8d688abcc7d41b97447843516f641ae18d807a6353d0fb897ae39b12de4ed41be190f03e40bdd1e9c8db00f5c62723ef26ea8d7186de48f54a23a13713f54a2413de4bd42bc710bd95a8579249f23eaa5726217917a05ea974c29b00f5ca334ade49d42bd1a0f036aa572ec15e54af6442a25ed904006a9f51ed4d28001ea34dce84c6ee8432f913eae450e89347a1509e028d72293485ab40a57c0a55e12bd0296781ae702a948557a154de02ad7217680bb7425df80bd4caafd0170e03bd722c1486c740b15c061ac367a0329c063ac36ba034dc065ac303406d78161a80df40b31c077ac373a0385c079ac377a03a9c07bac37ba03c5c0bede13e502dbfd4876fa1f75ce896ff40b91c08fac305408178105400ef4283b817dae542502fff4285f800e8970f41077022e810074389781114cc8da045fc086ac4c5d023241c9982f930b4a57dcb6cbff9485fcc8f10a3023bdb0f7323c2f8f0e4d8fe112fe28821427ed8be110763c4071d50db2fe244145104e865fb603e0498a12323d83e111f0011289c6082ed0ff12f43301b5e33800b31004683cfe0326cffcbbd7ce135580d7663fb42bc8b100c07bfc16cd8be9707e185e96039380edbef720174613bb8055c87ed07712082603d380fbec3f605f01f04c07d301fbc87ed03712e4030a14412b6ffc3b7fc00c5134dd83e975f2e0c98220adbdf721fb65c6105155a6e165894b17d1fde830f5c98d1c2f6b59c072d607cd185edf7f01d7a18830361d83e0fd78107366bd2d8fe0ecf610734ce28c3f675380e3aaca1861bdbcfe137e400c71b6cd83e0ecf82031d72c461fb373c0037d8d1823a6c3fcb6dc8a2471e77d87e005e4300ba8fe6a3f7b07d1b4e830d4c289184edd7f0196a80e289266c9f86cb400303a688c2f667780c335c610515b62fc3b1c8900516656c3f86c310031766b4b07d2cbf82058c2fbab07d18fe020c6370200cdbbf722b57d8ac4963fb2fdc8517d038a30cdbb7f216acaca1861bdb77e1555c80e30d366cbf855369810e39e2b0fd2a67a18a1d2da8c3f6a97c052a7ae47187edb3f0292cc43e221f710fdb5fe12aacc0841249d8fe944b9902c5134dd8be0a4f4105064c1185ed4b79142957584185eda770282964814519db8ff22751b830a385ed43b91328607cd185ed3f3993276370200cdb77f29813366bd2d83e93376182c61965d87eec00a02dedb135d47063fbf6688930c63cc295709470e51b47ae64a355998160b4a51d76d94701c664fb4a942cd9fe094a90203963fb499028d93e115192ed9b4044c6f68584c6d8fe909044b27d2346a491ed1f3112c7f64920e1c9f64b20c1c9f68382e0d8fe08416f6c5f04119a6cbf88084cb64f84c892ed03114163fb208070c6f6430041c9f65dae24db7fb9c8d8be071e8cb1fd0f3c8848b6fff3138d6cbf839f38b65feb93ed73509d6cff8763fbf46f6c7f830d9a6c7fc80641822cd9be9020686c1f089033b6df02a264fb2cd67fb07a7a7c7a56ab36b27d9e551cdbd7d179b2fd1d1d27db0fc39c309552a52a33d0f781b485425d7af2288ebb7c8bd5d2aa93b6599d9c6da0ed8c650e908852a40489138a5098dd84181eff64da3da190155d310809c2138564d0c0c85e233612b5b1f14ae250c7629b184f240a9d60e35941e210c7621dd3287368bfe88a31d833e7491b5e4417dbdbbe8de7a69ed18cc73f979b729eb4b14574b10d6fef5b0c450eb5b8b6aa64d76e25d36a18335cad68e76a18adb6b6ee61b2dadaceb1ecdc8b62971d4769468fc2255c2f075a26a3024ff64dc8595e83822be28c66f887901eed3747fb55a1b8eef2ce54f3708730e739b0436adc800a799021ad0d8008f91184d5f201926559cfacf707f76d0bc76d3cac6d5bf96cdbb6d3b36d9b0ecfb66d39ab6ddbc29d6ddb543aa91c30fc545e4ad33414a8695af7699ac6c97abd0da56d5a269f49f98c91b81828665bb2bb180967f5095b17d73d259873669964a099622491c5d878061949334724efc80c7f092e6646f6b45968955331927999926222c848e62b03f18c8591cc83b4cce56224dabded1362f9f6e878d9b7d997b3b399cd963508b5c729b32cca675a47166e27e784a1699ab67160b4ad0806cade3db3c940d92f77c4c648e49c61344612a514132723899ff54dab241d8b5c21365eae55ec8a2bcb754cfc929f154cd5c140b29db8a43753e4ae086f3bb55314e24b2fadf057a41b2b50401fb1ee9273d00bf89cda0aefe4349de42b45a91c1d658f3ffa52b46d3b715ccaa915562a5d6d85ef5e14636ba5bb5b89efb22ac68c15d4bb8bd99e3dd656f8f8a2584eb5a271d7b4c75bd11e6b1833390fb3d556f82ca75ad950b515d65695f8ec57fa9baaed9b498b0cbd5fd677a7cbcd248738d6f4c6361c2bbda38e8ebe673fe2defd48fbd64f2c5f5da6756cfb28c738ca318f72ec487bf6a38d63dda6a3ed245f1b95d7a8bc3645d84dcd145d525e9322e45339ea92665186045714b51e3cbc28b1d09025ba22c7418a4297084c9876c2467e7339ab040b0d5b1091e88a9fdf1091f88adf5061a7decd0545d753c8fdba9e10d1e86b104472088b7cc5b757c11a25b41f16e9f11b46d5376fda8239c34bdb2cc8f6e35d415c6c2082ec4f9df7ff89abf09b53e3c2e3225eba206164e5abb0bc39f63213c7c197ebb0b3ebe614e1acdae38994445796f3a40d35d1c544617eae3cf76fbf1c4764b9cf471717392ee49887a0f02b9eab7709258a4aa264b151a89b6fd275f3decaea8a2ea190c82a89425f1224873a025176528e5183ee4ac56e91ef3ea50859bee4ab5b51a000560e1df5921956a3822fece52c67320baee31264b7195fb1356fa702c2cb4c50e21663d81bdacb6fc21ccb6b50e0867be3f1cf55353d857caf7be6649743aa33f4491b29882eb6df13e1559d41c920bc219a2894bdefc5ceb2abce44970a4d74a9bc88aededaa0c9aa0a4d74f5556754675468a210dbcf2dca883cebd6b4356d693c8537b4fc585bbcc139ca32195d94c066f56e4f1b5314e26acb898cb6bf35c9a18e6d6db637b68fc6f23d2fa3d27a42a16a49a526ba5ac5b4a4dac2f6b7a7287455491b9cfe968238d41b1eb6afda6229290a5d15190944a1136c5fb51485ae5213873816ad27b9e9c59e2c539c355179212d83b3aace4457abced8be8a4c14eaabaa8842aa257ef565bd5cac970b5396c93873017b3738aa25dba1dde0709361e6021b1c5553a787d79f5184505488dc17ae5841fef3d9cb4c41cc648f6c3fe4be70c50af21f2246ecfd38a3ee264f1a592e8addb02ddf1fd04a3fd2492fcbce389be25bb5c5b6c83a117e2ef16b7e36d540f26331ae437eb5e5ecac5dc0d839ab8c4b16806379c9cc187b231ccb4b1630b2310e2369dbd78c6cac81ed33eadda9749d18d43baffbf7f59bae36a1faa9e378ed84aacd245f632292d2994693c435f1d2e58a77d4a9a0cee095d615d4bf7f558c77546dc5a35e14e3588bca77b00b15b0b27c55d08af7161596af304531962f24620c5a69c54a85e58b412c61bc88a6abbd34999ab237b6631c6d5de9ce9d636a5de1debdab629cba3b99323259d2189b2965646cc39143dcfb773acd37f2d5e76aeb8a9819e39a5079b23de1d80e13c6cc9576c1176618c5ba1bad625d2500123e2b88c3286624dd58811446b1eeb3c92983d375e7b233b6ef64bac2bdab41ec9a4df2d57732d9ae70526488c08c31468dc64d1a225063b4741b0d1e7ce8d1c628b67d4e26f9eaee99647b2ac5b1d3c85eb96499e038f1531c89248de410c7fa318e1cd26962400a8c62fdc984662e2539e3024b3189e6ca335bbd41568b73639cacdee9342b93ac77be89f5ce26cd688b2052c74c4a29a594524ad960949c6c1ae379d1fe85b3f3d27a42e16cad76bf340a75fdedc931f9d9d37ed3eaec6a85cf126ca1fb89d08b2096a006b174937cc9b7ac7ca8da4bf225ffd596152e4c5765927cc973b5285614f31abc325be858873a57148b8fa015d4b91a863bca8b5226c5e678a5510b1d73c9d7ec2a4bbe5a56f8dcb91a865f14631af36689bbbc4c9243ad798e7597974672a8356b958e79e7180a8d6d2669245ff2282a91426e2220ec3772481af14b26f14bde4826c537a167998c3373d82b8d6492959f4f849793c2a6498dfd12edb7adb6d816d925d189f0560e71fc925c68998c0af0616f281fdf849ae53527c0c352cd6a45594455e1718ca7d7b292bddf350c7f39ad2b7ded5a1513e3672f8a7991ca2f87bd6980b0cf6fb20d3e71c26ae648c3ca7abf44db8a12ad7cb4b22e892d23653573b4b148c422197b03cccc6fb228e7d43239b34cdb9cb29969dac66599b66d5c97691bc775a80e5dbd32f213ae9a4832dd994689d1a48aec090f27344d4c68c478e3061a3132242060a904e7cdd436aeeb50280fe579df07a2bcef03c1542aa55285618eced4d191b1759e9c98e274ec28e59c59a6cd4cd3b68de336aeeb5028cf4379df0782a9940afc3af5b5aac39c9caf7576e6ce8e8cbdb3f3f18ae90db9c78735592c199b95e3e9f4ce6ac5c3d3e3337d7c646c9f25b8258e73a69d92e21b0ec016b898f7133ba66e111d68d994a96b84071eaae366ea1ef1414ea84a8159ea8671b17c7a78563b5aea8a797dc8064282b4806ca98b04082fd7071e74f0c341e5525e085baadf3db73336f645578c728ca390f62f463bc68c64bbaceb0ab27c897889995297df84979f786e8ff971fb8c10becdb4c1ed38966f34fae0463496f94a24cb573259beb2e9cd925f09473a49165cf0aac4fcf288f9f5b13cc47207963fb00c64b988e52396872c9f601905cb43f010cc675866342c7fe12f2c040bc15ed80b77e12e1c0407c102e03e2c03c140f00ffc0373612ebc85b7f0e5cb3eb00fac85b5700f3c86651e9807de817760352cebc039700e8c03e3c037b01d96f3b0ac87653e2cf761d906b6816be01a9806a68167e0195806968163e018180b6361181806bec257f8057e81adb01576815de016b805aec255980a53611698055e8157e0293c85556015580a4be11438058ec251180a43e127fc849d301bcb4c180dcb318ef11b96e1b02c87653a2c9fe3e7304cccf93f1876c4f99461469cff625811e78fc03030e79bc03022ceb70c1be2fc280c1bc0f95518f6e5fc181826c4f93730cccbf93e30accbf95d1816c4f945304c006720ce3f9cb99cb79cefd987b396730f671ece3b9cdf6e18a6c33987330ee71bce59ce0138db70aee14cc37986b30ce718ce58ce309caf9c5f385b39bb706ee15ce54ce5ccc27985f394b30a6729e714ce51ce50ce4fce4ece9765308cc9f9d20dc362e74b3618d6e47c1907c30070bed7609346f3183d8a493c12e04ce851f7f1687427f4a8f978d7e04fe851cfe04d8343a147bdc75b068f428f5a8f779ca7408f3a8f770c2e851e350cde785c057ad477bc5ff029f4a8ed783f7d057ad42d78bbe02cd0a35ec19b05a7428fba8eb70a5e851e351d6fa7b7408f5a8ef71c77811e350ade29b8157ad471bc4ff017e851c3f186f32bf4a8df789be030d0a32ec1db8d63a147cdc6bb8dc7408f7a8df79bcb408f5a8d37093e033dea11bcd3380df4a8ddbc45f01ae851a3f16eba0df4a8cf7887e001a0470d82779b67a1475dc6db8cdf408f9acd9be938d0a35ef326e339d0a3fec05bcd75a0479de6ed81ef408f7a8cf7d279a047cd817707de033dea0dbcc5b8167a64df1ab80ff448cb7df8a5473cbc876fa1473a7c8773a147383c87ff408fb2fc8603418f6c78002e007a44c36b7810f44886cff02ef408cb63b8177a74e5305c087a64e52ffc0b3d6ae12e7c00f488caab7c087ab4c2593811f448854f39187a94c2a5bc087a04e5516e043d72f2273f821ec5cee4de440a1b8c33488593af30ce65e0de174779711003ff2e7055174f9d790e170f2df01d33d7d9e23c15f88a02f7d1e23d4aff91c55913780b8b0391c08544e04120f02165be41d2e915ff03ce8115af55bc0307fca701ff808a7b40e62f06dcb5808730c54190e2400a389104bc48141761cc4780e2410878094f9c04277ee4003762800f357121a49bc0c489967812258ee4e82714e04a08701492388c3203b5d12301b4c724b468d4bdfbe8ba06dc9b0fae69e0bd67e0b50c50ef3d50a8771cf0ad0708be63f0bdf3f8be371eaa370c54aaf70b52ef3b52a9f753cedb8e9c9cb70bc2770bc266c1ce7b053b3b6f15e8bcebd0d1793bf1bce9e0e179cfb17acbb1ea14f8bc51e0e3f33e41cf3b8e9e9e379c1f6f387efc789b80f57e83c57abbd17a97a0d57ab701e4cd061020ef3742de6b0811f2264190b71a4182bcd318f21ec190216f116cf076b3c106ef26fa4683d27708fe3ee37fb7e1e00d020e38789b51df65d4fa66eae0cda6830ede64fcbcd7fcfcbcd57cf0fec0071fbc3de0c13b8d071ebc975eef315eaf77075c6f0eb85c6f3128f39110de1b082184b70640b8050184fb00742d4040ef81c8792042e43b14b90e458a3c07118e830822fc86119e6584111e80a0db1014f41a4a380d2594f01948b80c2490f0188e1ccb912387c1c8af1831f217866e6568e82e08bd0521a15731e1544c30e12c107d0522a24f4972159224b914244f21e1af68adae55c2a77e25ac4a61cc58495dbba2aaadd5306cc6089cd418c552f5f2a53281144b318e993913859a2932c99764e2e2b25bfaa82982d0fb930e8cd2f71e99e450e4b8308c49b7de08dfa49c8702ec4637dbe09421d6bbc7a094dee219f9269d7ad88d76b64127eda4c8667fc271cf2a67b5e5047cf65614f0d99f80cfea0f036d2fb23cdfdfefb45bbd5c5c1fa2ed3cea91eda45ef78f7a9936aa6124dd9f6c1c2b65cbf7167128b6091284292ac92da29b309219135db329bc8d34468b747a62a712be8d7a36a3ac068f38eca49b8d1404db54da6e6a92435a90909090b46c35fcd17146bea65a18487ea2116e473e2d5c3ca14f0b2389d67a445a1849085aa995e45037352935293529452109c421edf24635627881b445bf91c2cd49483ed6668a6da24bce33c2ecb79fac7c2cc34f37263dc5a4a7a4d9268ccdaf7ec775d30f392977b7c83203f551461a12526a342c1da6146464645480589f61470569a1536481309878801b2307ac792316c9e091220cff1f17117e176c0609e274c0092990ca18c11a0e6ca1460d38e7e030613dcb6be0a081192798230f11b4e1740124353114cc130ae5acddcdf83d45bf6bf472b1da7de86deb9303de4b51364c676cffd3a93e71d5d3b3d2ae23ed96effd948e0e083e07bcd4d101bf263cffa4b4edfb54297d5519465675d693d59ec304c76a4fddf3bcfec22814e441d82fd26ec9b9f6cbd90dbec17ff05cc8876c096265534fd52daa87577dc7e7a99ea7de200be1554f8aecea2bbba3b3a3b3a3b3aa2d9db7a2f47cf5273dab28abebfcc9ea3a453baafbd0ab737e0a3c5fada0face7768caf31894023ebc8a5e2e2ca46aabe7a9eb7ce7216df57cf5cb5995cf6fd8eaa94ebefbfcc9e75339ba563eeff9139ff7548eae22bbaa3a557575cea9ce2094b63c5f12c19a52220ceb79aeaa5b78beaa5b58579dcbcaaa9ea237ac5c5696a7cee8dae03bacf387d00c94d2577d82515895a36b83d4b7abea15526774fda85372ae693b4fdd4bd11d3aa32bf5cefe814e529fffc0282b3b9fa241acecfca20bf4eea574b0e194abface537546574ebd6276eaac777b078912ad568304497d6ada5c0ab52adfbd2696200b28ef3cf472b13cd7a1f2071753a9a756cff9ea3a4fd19dd439a69e7af7f8fc49789fbab23ddfa9a917f17c15455ada962587e463ea3ba9af2e73ce5128e73fe273bef35694f0ab3fc9f9aac8eed45614d577fe24a75e2eab9d148353da82758bf72f8ac7a343b7a4a4f494ce820f57aa9d9e9d0359e984f7ac9df0ac68c1fec7b4f424ac37daf03faea2d76555dfa1178bdde1f9ca67e73ae751e9bc1564e73a074239bbf31ecad1b57349574239adf79ce31090fbf03c27b4aaf3bc4539be78eae5accaa7de95ddb9ea4028c797ead5536f10bbf315fdb13b5f225594f530e7dd7fd02e5b1f7df45103bbf3083a69bb5387680b3e94609468c1ba25f5effbe7240c4315db54cebf7bf14bd1fb1d2cb22d9db756ef7991d5a92d9f832fb22aaaf31daa4ad1cbc5a60ed227aaefdc874651a5bef31efa44e7aaaf68149dcad195ba2acc39ea3cf422e1a4c8b6c2b7a2a8befa139daf6a910d6b2bcacec33fd9d1a9178bbdfc9cca6565bf87aa7ab9ac6ceafca25b047ed4fb12d947d1cbe462b16cf99b2a14d9599158c5cc0cd1b6cf63837a62e0f108f277da3bd53cb5b1215856f3f4000936b951d62df39185f9e44b731c6d8309279745898f5bba6ca9b186657850d8b67c4b39c44232295d3d6f63562f8b2524e4b9a0e5ecc9e5198fe338ee7c4ebec555276c34808745a1693571e848d27c4be102a339a69d8842acc6090e6abb2432be40c3de16c3ce2663e73994cc12478728c41f98d2f6490958105d6cc1c8a13671962420e45aa8a3bc73f62551d616aa2e89315140781b694993e12529a84b5498e89a2dee8baef9e944288faa60a26b6689aea94374cd0ffcfd3ef9efdf515f12419a25ba3ef0737e1f0f3512bfc07bf740da46140c0d135d134c14f2509f1e0aa525bae63c982814260ab5d19c0f627ed2934be4eb1a2f851cd7d51b6e2c9656b32a43db84842ceaacd3c37bc2d60d7b3f1bb5a0019b2cdab0d1220f1b9940cb6c30c0823cbcb981b0cf5fd7755dc7691ba77559373bd9655cccb28ccbbe0eec8c8f2ccbc094941ed0deb9407393b5013c0ec264baaeeb3ad971ddd6a1a0755937bbd875c75c97bdf3c2e39f2b9b6cbc97a5940839f97aa3a995f8ecf85c306527e5949c9452ca29e59c5293724a29a594724a39a594524a29a594524e29a794524a296527a594724a39a594524a29a594524a29a59c534a29a59452ca29e594724ed952ce4f32330a155ae17953ce385b8620cbb2f9cab2599b8f64d99c9a9665b12ccbb2a9695996cd2c9b5a9aaf3fefcd39e7ac5f9d60acf1f8e7b65186ca3e1a7e755659ba881784171a7af5b98102bb5696c9b0f193cfb0f1599ac80b238131507c7c109d444917898f6b9a0b57e34e087ed03903889c360208411084ca8c2ea932bc804c427c6cbe78640c00b566884e0d11dc07c06c1e28424b638477040a61606226d8e43bd1094868da46010f8c8f0b909b1bd7a1b840792078c6fbbc4f03bf2b6124de3d0f85426d4d322e52280d04531a17462aa58a3f2e22413fcee8c87121672afbd6a9c26e30c2ecb37bd498d9ceddf95ecc8b9f27bfcdab7386b38d8c8c8c3a225ef312f4b2cfb3323bd97ca455e5bb772c5ff58e859f6a22ecc271b8b3932d8a15c5a2468fba87f4c83bcb172a751476e138b1ef9f13e9a190c84029254c3193691189ac9399947282296eca6d6669c8ef68fb128f6dd54c5fdbd29f513cd9679b7d66dd5d3faee1f03aca3937249db6228aaea985463569bd6c5223d203dbe77d5b8abbc631126ee388f849782808f98a42fc011b83e027ae43695d371b95799315e427274706214757967199e76ddcd785f2c5c9971a8fe338b642e1fc077a6922cfc51f171122222213f815ef840fbb29894d669d5b80b179ce94f6ce403919a59d91a06cfc6a0006186080010618dd603003c9cb4c36791de59c4682829444908868669afcf989b85cdad6744583b0e6e77199f64cb2e1c5f839e7149a32c62491bb638c91636419a3161e47e618638caa28639493cc1c692c699a030e4f26e5a9449794f24b229539f2d06112e7a083891e230540d161454e44c118a569990d146f50793021d78000101972d060fb8f1d1030c3eb078430cbe79d263b123099cc98c929ed384a695b8d31ca28a594525a89dde55057a9c857df0929659a33dc58a9e1112e098a4c9cd080086cd4661683c0b1319e1b9ab118441464446ada7c10b7a9714153144f5cb889824c18643035c5a207d460b1c6c6ad562ad1c5240b579b96f1520463e0440fc7c6684d0816e0b39d81c08eb606ce175f4646539a702eb941493664d82095d92295252c4d56b0b07953825076538c910919467392603bb2920471917e54a38215e458592f971f2a6842266bd0c4fefd892249be580be2b82f5c31b5acc6090e7b79091c8137bb98596cdaf462ced56a871f842535b96120ec67dcc4c01683d0155d2c7b4ea5397baa48e07933d336ae4371a899691bd76ddd9b99691ba77133d3b66c73cab4a9cd3251c6b814673ece5926eccbd83176dd91e98eecc6f299638d55862b8dcb0497656d041e72053192797ec8db17c44862c798da2a3390762dbb4b5e976d284d3d2b33d0fcf4815ff17784bc4727a1c5698c16b326420ec08274c39e38e77151a4a9a2065b98600f3563542036d3849126a5b2aca60e0b90f1bc5e220d060a80fa61adc21f17919d5ea30705ec3c91a0357420c0a22cafa1e3889b0bc888828c048541d3011ca0c009cc38801c2808410262f301411b1e414137e2fab91122254029cb6c105087075a565347994c634197a68f36380fa503e79deb3fff8e9890c38e2c922c20871e1140018f042ce1a1001001403078c156c6e3b22ab40534010b011b718524148c595a92428c26181bb6b3f32c20cb64cc31c6ce138942a92035751865aa197c6dc2d6f6ee1c6b6dddaf64efaa183356ba6b17c3fd8ac6b17bcbd125c9900983f4f93ccc6c6a9fdbeb85389b6c677b60590d1d4cd6b3ac668e34f63e4816c0e32261bbe22d5fce11c63683cbde5ea6e51234bb242b9f595484c271ccd473a65241444141fdd439160f7e8694d5f4609d6193287c2ecfdf6fefc1497013dd1d8a1cf2a93c2c961786328af00e96d1cadec3ca9884958f4d58792dfec62433aa2f895b94097b0e7ebe9d643fc9a19d4b34acdf982473c21b9158b59da44f65c9f15496af9c1a561abf43b5ebd0ec1fe59090905694633b94633a9463edf414c746238e798d460e493472886368aa4c1182b5cf28492991de62f96e92432deebab398eeb1b6f8b1a728473a8f9ce450075c1a5e88ea386e2a6ddc0781b03f359e3c594f5b66a0c94a75725fe823b92f0cb7387f640cd4339b3da95b5482d6b3f118e15661b783921bd7a1bc4fe7f3501dc7495ece866220be0c559c524aa9c0f0cbf1503bdde4429eae01536933d2a3f964acf98325cf1f5368ca68bf805262922c03f265d916a717cd414215112f598e39213d3cab1d9d9c5095023f0fd5719be643c2374b10f69b741cd76d2b08ef67b77fda547279d04532e982b0df31104f998aaa4fbaa0cc2c419714f63b6020bebc23070582bd22ecbb644700bb111101a18bc816847d962f6947d8ef18888958ee1e10f6519d151f3865cbd445627b4916847dad8bb4edaa08fb4b84ad8a2a96a95b64b368b33abb083712970539e6b24cd2946acb2606daf52ccbb68d0b73b62959324b9dc99a4ed8fc659c3117266d9bac5f74cd15c76faf73409c7653414720ec332779224f79449c3ab8e38724e3d8ec9901c23e171967db36aeabacdbb66dcbb66ddb38cb7cbe8e4c9cac4f5b4167ccccc54e0afb5cd754fbcb0ef075dca665a821aa0eb32ccb64e59e70ca2ccbb22c8c3b19cf97c56ecff8ccf33dbf85e997ccf2575ce58c47e71ba31d85fd269bfd0d1c27a19051dec7654b36639a4a4221a3bc8fb9af7aa80a2e911de5c24f969fd32b9d8f7948c5427386aa20f9e26bd93b06e2f9ad24cf16dff46cbd4d9fae01ecb1b4d42db2a89dc973f5499e4f28e4ceb22cdbdefd687e6de78760138ecd942d33330ad531456d2899a25bf78c369a54a3a14b6497cd767c6fdbce20dff3da8b2e929de96d999d63a133d045b27be746135d594fb34c8147314da3c9577dc0266d46c86e789e8c41d859b76d537e994dde966d5bcdf842de65a1b6cdabdbb6c90c5539e3733a60936ce3b68d59b7a8379eaffb380a71578ec59fcfe6fdf89e717616d884affdf83a2ac27e365b3208c76d51486f30b32ccbb80ec97a42550ad5715b8f2a15b9864006e034992aa24b765274b964a3b1f2721c342d46b7b1b2c98009d364ba0a562395d83662fb974810f0b358b8c334192c72084c87a83055c97c4de6dd64ae6a3260beaea8388da6d1b01a56c36a5a7650ac19a38c1517702c0a96d758408df5c2592f5f381befa5cb46032323fb25b4a87f61d98ec91b617fda53f5f2e197de348bd4276512b9a3b8775cf5a2020003c95b2e22ef75901cfa7e899e3489aaba04fc7731de531703fefb77f06252f72ee63bf899baf72bdf41efa95ff1beb37ca52a9b8929d79770711708fbf7cd1c95cde09421b6ab2bbab62126bc74cf4be7a53f0a6df627062d892ef93642adb26ac84bfd784e6e6178adfe4f0ce55010bff8cc1c64198c6a720d8a2ea2ae44d548744512f450188b4b22d3bb9a42969125650c830b6369b832ecf61bb21bbb7ddbbe24de20bb8546a2d0edb6dd6863379239fb4946799b95a8e9122542dddbb62d417d63b150754925a24aa26b0bad1b2652128780c4b6330f31c1830d7e3110dbca682b9b4e6c44dbb7cb6da1dd184ef6028f8b6ce1b573e778283e566e869404a17c9c614c22118ba2ec2f3cfeb9dd8c72e81b82b3d987905e74ee253bfa0e65ce39e7ccb85f01c1736015b3fdab1c0b220a0a3ac7be4fd5b39c7970fe9b5395e56cefe6d43eb309c626ba0d8a1cd22ac76281356462f23ee7ecd9b3e7e4e637439d997ace7526cfe79c73fe98ace933b59eabce3f2aabb27ca52a93d743bff350ee28aacd39e79c3d94633c9463e09c73665b879a73ce9953fb8c4e6d25a4993373bc6ccea933756aab0a78ed57b86b1c7731dbc1daca39c7c0730c9c932955755453f56cead4397b765f825e5ad9d675d1792a759ddacace714e4e394e9e47cdb4c031ef2a4ac5ab4747dab9f7544dd554cdac52d96a2bfbd6d556565b55be6fb7f27dab61cc640f03fe7b56ad84d196c4a609826ffbaab5738eb5766a158e8d59d546f2e6a743379bd1686473287b076fc53b58c398d9791879ef3bd50aea5a0d130fd2782687724646f6a36678cd05d058069bb4aa80ff7e05fc57c598b112ff5d8c3cf82bdfb92a26eaac8caca7a2a9d94d6d6e738639f3216daba2a939e7dcae75f750e0bf6c7ef3dafc36e73bd4bc370fcef92511a41ce358b7cdd9533e7659d18604571427ab0a97cb256726a594524a29a55482858638c431577449d7a3507d74c9ed9c814d32094a51d9d6a8253239a1a0e8925b4e079ce4081791433befff7c8712c9977ca99e4337caf2f505b9baaed9d57f5ffe2775f97daa1a655ad533508a661f7fa290aaca67609354fd892e792c1294d193cfe4e519e190958f5273d9e63a6e6e5b45c215330384cbfe4849571c721db784116e8bb03f6bd0b92dc247a1ec28ac44d115330a84fd1bb4595eb32486bdcf2caf4941996e293c6624b7c88ba3f16041a49f8db4b3defc8c6ca49ef5b24f6a9f8c94b35cea1645bad9a2d8dd018f1934cab2ac0d2361373c34c97057b04b9e8c1cca98e4bc82853234d8cbd0d8ec9c4d50a418934d392b9de48bb3738ef0664c6494502ab0f299193d2499e48ba99344232b259c13846d58295f9908229fdbc232cf49c4728353b26e35b6a79d6b4ee046c8248758ac3064c964e54123cd4cfc0dc1f25f9c84eb22f3fcd943a97ecdf3fd509dea2123fd9a4769e7be7e7147d50bc4decf72bbaa35d29d244c17999fe716aadeb97a817c3d84b297043b2fd3c0ce47ee0b43d6fdbcd76593af5dee7e5f98db81ed0f6a608d8c8c8cec6ca939419d8bad34b9da5da35cbd4cab75dcfbd9f63e8aae8df616adaead145df33cdd848d145df3596da3e89a9f6dd459c0e31fe984c42ce880bd20bcc21fdced640aa20bd5e9d808c4468efd8a9f73cacb735d8efd61a984f334cf78fc73511c8b71d1e24638efc96ceb38c189822c524497548a2ed95b34951eb7e2bc9d8e1d834f38ebe5780ddea39c9d69843726e5806738abf31cd09585d6f7548d473f85495014b0cc064969e707787fec1651bc022dec925f3bd1e4ab4e389b7d358bd49744a130e3fe4529e24bbe23082293f6a6710c03c97b138d707bca9024c785218bd57850279ced2c52f7e21723d864fb1be1b7fa58adaf9f3a09a751002bdf2f6024784421694f08bdf77423cc1ec7309218c7b4f5ceddebc06deb6d4e54b3133b699aa6715c7c7c07b2301feb16d4e751344b96e8cac2706213d296058562e17b4b0ab8053cdb26a4b9fda3add402cf36a23c6f8bf3f4c48a2e27c2c7a47e62eefa2445189ba2cb354b10c6a628c44af195c4e465ce5f76622424242d69429da6a6262a4d394a4a3b4d394d3f7eb0c0ecd9817c20cd42fbdce8109ced473a443804cb76f5126304ca7011edac4bc96a2cd88f348bd4357ab4c4633ea958639296a4699aa6add1e4b46488185a18f192b41b056152ce76ddb26db46bf422dd12c78cb9714cffc7c6c96a9cc4df223b3b8eb96ffa2cb69bde1f9bcd548d6f985a1fb8655f646a23f46a8fe16a23b1a1593bc207fefe585a396024251c00290ef51316d28a4d4949e93b179745c5321088116020f98d46098034a9eb1be94414baad6459c0924734d82a1e596d5a23f484c20f75907276a3ac268f03d88c463bb1d8f8a63132498e73b2fdd8ef938babd5cf5a7dce66d7c8149562529292929212b5afa7119e4c78fa34da4b4da5f5ea53a7f1064ebfe926351ae929494949699b07abc7c1d74f46be1e81953f58a89bd8251b019d642ac5a4981493e420417823536c231fdfc8a10e3ea1b0df4f8c647b2c83b71a9918680421c7d80c1490f166a96bad3f8c84875a6973590eec9c276d88d1c4145d31c9aa11ca6b71a60b344b488c24abcd40fdc8e2739e162dc7a614a1f6548c1248b5e91a95628d494c494a5a7411c3f068b4de07ac8717a37aea62580f4fe4dba1ed868144c040f291f60818487e453b8de8927f814e38ebd56e0acfba98d45517139ef5d7d760ab8aeaa95f613dbcd760ab4aeaaa5f495d55c398b1a23aeb57c2b3543548bee47d7e83622c333d3d0f1201a7ccaceb502814d8d373d404016cd253639b38d44ff225b9348cdcb032a6c0ca8734f2d02cb41a25105ff2290af4ad28af09638cdda120580ffc9298e426d4a93da63652925223292929293d71f66976247c415fa4b10c1acd000103b5a1247071c536d19546d894b3350b2639a4d556922ff92842cfcac7368c445a79f90423e95ac043fd14cf603986259508f978ca8353237c436a92b35d23d30854d72e267cea6254d7be294528c68c15edaa8b493dbc18edaa3769f5afa41ea2e3a8b48b97c84345e8a099190000008080004316002030140c088442b13cc9113dd5071480107c985a74501787a338464114859041c4184200010000316468684a1b0035b56e440c112d12e3df6789cd13a19b4e8df83776fc62847fd75ac84bf66e0d36bb2bd61ff5a84abef1a7013d7c2a5e16d5eb4c785c0f6d431d8d0bab2fe282ddfd7a2d08307ffd3232b0deff8879c1a6fb63424a1440bfeb35461715aba6abe5e6cfdf2555fe463dcfa6e7cb27c91c799ef7d207dd7e1c9a33e44d56acafe409c8bd204674bca2fa27b9e5368c89e1286d09b62ca65a3278280799b9f9082eed4436b339ee858a2cf17eb277e7ff2260fbc741857b5d77df42a5031db026272ab15ddaa6ceb485d04ef8f6f4f63660915854ea5221ccc4228a346e63b3ba9474b5a22cccfafe532bf37ec70788f182afca4bbb3c21417e10146e3da0a1afc09e94166b04b94e97520c90d0c2adb372b47b06d66e79a8a48ea46015ab301fec96b81748585ea2f88f5ceb4949b78e2aafe75757035d2e0066fec31d3b5983065e17e9dbef30accbc5fe90a65dd1982eff595bfef4c8a25aa0d09398824662b440034d6a5499945fb4dc4552bb5d1281ad31ccafd06edb1cfd057d6ac3f67d44000028af3c32fffedca3da58dcd421ac83c071362f2b902ef666540f484f0cca0ae96d9398677f4ba6b4557baee9af7cef9aa9aad5aadfee8d6ae6871f2e0a66a6f6442a83c2958976155d60750567ceecfdf792bd1c1f475c7951622bc4c90180710a83d62ef04040299f4df1756ce48e134ac35935cf5c67e0c9e31131a36d60bc0efcb941f88f6d3bec3075281d79c7396a5e201ba857d404b878bbe4a0c6db2716ebd4e7cf37d4420cf4f2cccd9de650aafa735ab37001348996d721f433cc1deb0d72cefbc742fb49e6763272a6a6232b3108d68fe3266170b312769dbdd67f742a00f36626549a364b1015a0790c1f5804c2dd60ca339264b5944678a5b934149aac5f94652528942f07c0f8a500c06e18ae5951955e3deb6bc334c4cf6532de14deab5bd9457dbaa5ad509b1f0f4d61337fb605d18a67d9549f994de336677847c1fb1f6db8fe07152678a145aeef76d1b97a891c02c60fc01bc264b59d4d2907c7c4b9f8fa9dda29883494d69dc2a391a926cabcef518f6ce441a01984389f26684268c709a40596be20ad6206b834510d172b5b5bc0a9434ff2f946c5d0a5715fb93e10664cf3bca86ea65addfc82fbdb52bc62d3be252e4257aa1f9500452a1f96d5ebb7da45891b68afb9643c4168f0e735a462703bd0c5a0061fcc48b532703d3f68ff9a1a112f36313fbfa84b35042a23b4d24184661d8c3f948d75acb0fdb178bd0b5d2948cbcd7c1f7c2de07d803c6a02a5c592a074cc99969e8ae0b121d8dee9d74e35b7909eaa7aa435fafbba2f4bc8a3e3dbdf40ea216705c9bddae74c22be323869cc37c8f238bd8961d96e4344ac883348ae70193201c27a71600bd1d41bc420916bf2196f16b683b00e016690b6c0e074bb822e785ed3b80052f145f9ac995ea4a8e097af8c162616fed41294db1dadff24c1d2a369a74463f4b1fcec2234009f71a907b8dd0405a887f9c1dec059c90e1241fc6ae4f82ef78752da11c9ef7bd239ca9cc4b67de361073037c48e209d6020c98b9116e2d3e1aa97440026128a2e0ba97edf1587d46d0792adb5dc0333308b6202ac7bad2f6bcb0336521e7020d7ec15249cfce822a7bdce1cae72dc98f05392ce831493ae7d9233e33351ddc2fcff4262f59db0e13bb6362c019585e47f919d3820a6347c3751ee9e8acb5e58a7e2c8c27e835ca3c919f640f8f4b0f3b65b8f805423a24772b03b51b0485bdb68e64da1d012145048f62044e76f3ab8990be6c272a12045d2b330545931e4c81aa2f1c76a3e93226c49d57fff02a7910a051417de90b30900ca0f5a150a7277118dfc973ae24c204b765a5ae1993e410a104873e0f2cc8baf49f3ba2252a67d381e30d5a36eaa846d1a82f6b96c4d092c479f63c33854f7e576cc543b3d533530ba1c4b403239c6002b379761673d0ecfcedddef080d7b24ad299b0d880803ba2080f39115c09fc246cb5bff59be0fd67cab83648d338cb797747b4a422976e72c67207fbcbe8438c5481ef50809201adec19dbc98f807bccd24009d6a0be13052e91ccd4b7d58e92d2568d19208426894ad665c235cfca7fe24375ac29734768962ed97c6e71dde270c02fd52a5bc140366dc5af960ced8499661931627bec69c721c4d8d868e810f9cf45323a8e22108fe6441445b9e72b48bd16406ddf47a04e042c28bb516e17364b10a414d93fe45e5e1ae2cc37667d9275981f15099f7226c615601608ae30f144447b36852b520c92ff17d9d93e71a848eee2384ad9055e1de9d76ef6b419ecb6070458a16ed238358beb219ed49cf901036b7cccfb1a22f4142c641405fe700ff2c67e3a11313108b90424d4c555ac222083768cfd141bb6f1347b2b0c3fae87b1569595f4a3ce8ddb18cebe22e7275f4bcd1498d0b96c3434b0e89d66af693cc52ed876f4a5f4a0be88348eb8abe54f686612ab9d31ce973136df39ac91470e92d3bbf258640a49f243f7d5b90452df45fcc6047dc66b52531e5c2850688bb2622568c5d5c633eb676692d1270060cf0853624de0e0387a157cdc6af70bc0116c9a5743deb570ff3791ddcc1844f0fcff8b3dfbadde8a350a4d994273c141bd07a5e64843443c0c9cd43822c11edef329d163cb66e118bc1b13a52a6f25eb053dbb41dd4bbb5ad8ea6a29cf8f6088c50a4890f8cbf6f543e8cd477b001e29245ce4d99f272a526d65edc6309d5066ace9c3f4331627cc67cd2777b41b64282b9ce679a14a71636654ca4939cddb1ce8a72de74de1f3b2d77af2aebb6a9c28d7a3cb4ef27ce53319d6c539fdda34979d5fff7d4173affcbc467050ad998be36aa359794a8fb10c57442b8fe8894232ff908826cd17413df0035158daf907a1ea07050ebfa1520e06dccf4014dde6002be5264ab0ed1fb60a93320cb17347334e1c869807eb192dbdf1bc2763848b3ab3b60dc18d74abae913596a13ec924d92a069e18d50b0b7d96b06940217313655147a639c6983807d3bd32e327eeb9d83f89a49790a1d7c4d9ef26fa1e63c4da2cae498162386acb438175222bc118c43a0e957cad81f3c6a665be2f94b7f215e4affbdbf49a2bb49e2ca42a53a247cbf9d76fc040bb266739cb5c98ae471f15803f8c60168669aaacd94a0c73e88734920ef4c0a863f89baa9f19bf15c2fa0549cdec054b6d58ecce385d821801ce5e750b55422ef9f0b478d31053110859f878008f7f81d6ae8f389afc1234917947441c8412fd40bb3ca68ab8ed6f1e7b088e7db8a7ea1b72640f05ad27ff1e0c4a5bdf29b36b80d7a22fbd66ecc7c33b88895ff1c1d9c15ffa39ea97255bbb7bf2cc56f6cf7354fdc07852a887e57baa27c7b75639c7b0c0578f94949786ad4cbed5aeab9d208c23ac99807ea0b4c9f498befb83a57206ab85050b567b2704c16e44611ecac0ea7f082c08e55d0455ec5f4004ee53521ba046ba6c369824e2dcc12ed5411b4d1d8db36258c7a5bcb8a658f92f814de419f2dc69b603961c25767e4ed7d8f9b521fb8aa02fa8b3fbd8c5b712c5abb69700c288adb5c1031272568d721508c4da1957eb6d44f637d39fe8f0db24ad694b090d4eae3e87da86272c17ead6d977a1a9e844d7d245ed1f3af9ee402d0250b54b169f6945c3acf550852360a8d8ad50edff4ca8bf2aee801d7708451704335630d4a1bb9f0493153ec2b05b22e9db5c8e6e0a04b9b82b13478feedcb60b200f2e875151e1abdd94ac242182cb0d6982290a5af4f15e0824710318a08984aee25a0de2eab4002369baf7b0ea086feee229ff2ded65ace0bec8fbb548a66006366eaa3311eb3684ee2b1077ac48254c4f7518302aafaeb90850c99b1fcde72fa888c291fd9d5d3dd06c13c1e514fa79aea58423d145788e044e87282eb392ab0c221896992f5da763d8075dd3038a55a512853b108f61c2b462de070a95b505095718b9075fc1df0763b48512f69998b5482316edecbdbcafa6237c37c6acd4852a4e036f4599c7dd2c1c077978e80ecee2943dca593e33444edd59f81688e0579a9ea5f2e73c4b5af00d1b3524cc48b3aae2711836298d1619b8bdcfec844cdff94a88bb787eb3d45577c5f161af12268c7c4bb861f625c04b801db117e04f50300eddc9a9898864ecb6c014c9237dd520a43c88f6a1c769f737d268e1b20d58f3a0ec335c885a9f574ad61073529675648833d77bb93b031096f098e5c50586fd6068672536e1510eb55fb19de3f66b58792764fb3f47aab802be7d17342b6d414a3ebe2840daf57fcf7b76b66fe1fc466c4aaabf21e57ec319714f38f0b1c8072531ff005434537098b11e73d1a667646a172fc1fb8ba552fe6cd0bebbbf5aa86ee16045986f50d8608a052e805c783fec5a27193c868f1b868a41cd6ec8f797534dd7f3a09fbfb1a752dd53ba3915a42ed54f4d05215cf32796d7c2557838d36f1210d2187b77e9d324ec10f2113b0ddb32200070111ac86ffbe490ae8ab4b87f4f9d007c480afe040d7268fdbe7de67aec72a4b9f9ab7b13fcac2b9ce94e49735844ebb83ffd84449b3be48ee8598009d58e88852c6953a06018f769c1ee1f6e0d387921fa6a078f115f864a67eae11a8808838177789d9a5f7a5ad3b1aac05b010c54e96888b7f1cd890c30f9d31a9640293a2bf2d59e642b7760aedd50515a554e779d7487447b52277f77423decbf16c0159e435503a18165f595dce4e1a2c1e97f31fd7535f32f80b0f467ed61e7ae459cafea5ef448a7d417fb82f9f07b50b8611b2b82cd6aedefda0a35793585d9b16ce66697469b5b9a781f2b7dbfde9ab87c03ec5cb5b2ab483d5fa22914ed4523c88171ff70ca131843cb0ac77b180dbcc67b0457b22b0a0f06ac658a860b29018624469852d03ec715b9c9e9add8e57d6671e913b3a150f062b4b0a3a46adf01d22029d1523689789483dc408ca6098a3ab0ec4e77e3a669299b29235b4577b6bf6865271a0d158daa116f1e75447bafd86447780b8d412ded9d1f8ccb12316f5211d1bd24e456368f2dfbfae0acb724a196828cdef54fe88ecd92928716e52f2107325af6a1ae2cbe4b8bddec44a9443c52f9a2057abd621d224b9c230f710142ac7a814ce36916ac2d4328a3ea53ca8d0b1c6e3958bd1ddd17ed16b7ec6883b38c00fc71394b3406240c8225110b79e0f59823764d55d7240bbc871dbea2f37f52cbbea20954402d8549be48df97b8a0394a20963a77d337feb4f47b22feaf3b0852793351d6aa6b59f8f6f51307fcdfefa25ea6597e158e67ee7931e4caea7983d3f84a4ed1c473f3d72351c88b49aee4be1079e40c811fa756c19f3aa5b8329220bffe2e3ca47e6ea28c49d4988830bf5a36ace94568be3d6a0af48c6c3ef7e646daa27d71444c080ffdc082dc26273e2bfa73883e53b0c00e4952cac28611741ffbacc33cd58ed26cd766e7fe19e2ed91c75a5930e030fc2b836dd22bb721de6a3b0798f1e9cf3177b118aa18e2e8cf32eacd0670e0d755d6921bfa8b555fbb78c3e524ba9e89ce52cad7d28b4c216956b50f6f328fa77f4a1948c0e69eb1b340ed4f0c0df8fad6d936b63dd3e50e980eb1546d43d7286e25e13d276d867b9ef86e93961798bc9d91d2d71607b986f0bae0f5f2321803b605fbf8e2819982c04ed4253d0540c1dffcd29b8a52f136ace5547ce379a542afeff1e667d8a5962bb8dd232f0e2589afdf846bbdaff6385e3f6ca487440bbc306d1c69ccae67cf465fedc6f30711ce5bdd4643882ece62634bee9cf54af2ccc042e7f3f2f088b9cd0cb05c80900f4fa07c76f97efc88adbb76e858a3c5c027901f9dfebb6e3e2bd95e31d9e1a56dd3f85a3753e36b9dc32cdb6343cd0ec9cdf0950ba110d9f5e1d317b919ad8e5f989e9cc314bb7cd816a63a71e2664f67bcafb1ee00c5cd4285aa75909d63c47def4766943bbe6ffb0d3ee808e84ab7fabfb8d96171c46d53d55e416989d079e8651dd72f59e4bba7104363283cde9c0ec8de223c1c4a22a053d55a2e9592e345a200ae3396797cdea526f3f3860a9aebd28a7f70e28817b805f5c93ca35532d1bae33564180f9ea935110e5173070d261061487351b5b21ef29ba06bd4747ee5dae47933bb55b08306e53d98559543453b6aeeb876a1d1dfa294c2e94481968aea7335c1a734d685c54a09cb112e6b6481ea8fc1eb5ca41efa4c772d38cf458fb65d94a837b6ffacafbbfbfc51912169437c9561011e02fc8ee662b6a71de79d829527fc41550d9226232c693b6e387949d2ec66147bf8f1f4e42705993adc2aeab7f5b121ce1762eccb7fb80cb4ed8122cc5165697bd3809da59ecc573f132caf460c232d3e8a5a26f6bc8d77884a8dd6a65c411c0ab5a635b6ac309f64423794b8fefe58943fd026eb0da667b5ed1e9d3cbfbcd215f93ad0dfa3ebfa6cad39bc620c040024bd6922ec940d6c65ec9f8821df7d58bbae80f935118aa402940743b0e20f61a590ad7cecd1b5bf96e15a667d5c31d2652f07f66e9b4e246bfe2963cab9c1d57598a62a38c3bcc6b835f020521bff793001bd33ce1674bb9de20c551d7e1721ab55744ba6ba46009253d858b613bf7a10865759790c49cb897beba2682f96872c35acb1f23b47e41268b4010b5ccd1c08e70be198e8693f0a04d7fd3151b9ccfcb3b004e78528d21e232c57632cfb2103725966679d2c60d71db7a2e2bdb0801b7aac7202b096fbc35944cf7a2bdfd84a970a8b1da6b700a792a65ab6033943e59b27540677a074868da348baaf61b41b5f153a60d145ec9869a5e3fedb00fdec24318a9ec0c58c0d99f2c8984fd2edc508873ae215452928086cd3b1e9288c2dda7be2e1e0f2fd1f9184db527b65e6c00322fcdf35968199f796b0a4b9c38a31ec84e911c1ad13f18188e021dfa82e599b4885ad894f0d1b18641f932c3649d6f66e600826c58bab450cb1a17e3a904cadc09e32fdc61fa0eac22e143c0544703108c89f81ba6e70e9379184d288c1a627e48765808408f3c1d62a3d4d3cac8feb10d21316a9ac56b4c1e77d98d4253888053a5fd12c0f39f4f4ef8803368f93aa65afbbc170d02d1a0a3b788ddc7a6acfa6838023c1acb612688c406b466a689a7be8d3addba234cbb20109ae594e57df421b9f2130c5a7480e3cdb1634e5fef998df4241e4a95a29d0af4f4d0cd3867cb2a0a0c1719ce42d97c7bd22b63de8b4af4460d42b7a10ae8b1817a6d891327c8c44df44b320c63b57f83204f26954a1ff585765e6ba9ef52beac98d7632890d5c3151b977de4353d9ddd1f9248b68f4ab1b13d7f6e93e4cba47e6b21e51febe5809609428b54ef14167bd6f5d1b3687a6e11fc57136363904cc2dce7a293c2f8ce1ce034d0d97de0e31a63bf7ea8a8ed5d4c96b74f961b7044c2ec4d29dde5aecfdfb080efca148dfdfa3bdf53d826c952e66515c0b7726be89fa34565a716edd4865c755cb016e6c42c92a623d0b6639a14cc700190fda4509751611764e1cdbe07c4a2aad028ae898310ed44cf93cf2e50849c40b6198c32d2f3d70313629eb6a35111df4d8dfd1f4df75e429cad8cdd93b78ca0143d3fb29049efd186fec6013e5579b1249f5f03057cf26d207167a5c0ff558a50468b1507b2ed261c836a0f0cbf325fd0cc40843a941d8938a09cbdb1e474071dc3baeff732c54e57f0ed459c6e133b924334e1113b5b20daee5ed9b14eddd810077be3db6480933998b4840a6596c0d6febdfe1f7085fb3391b8fe0848f3276e365d8a9e02e37ab25806415e4f6b4ccc4f5d3d2c60c22246dc92fe45594aca8693e8b77e6eb61cf784fc5fac78011a23c3b6b66e88c3a0bd2c0e4912f4b5de1813467bec802c1e624910a078af0418833f0507b63c85fdfc1f6b57169c04caf19cb61fad0044db7f473ac707a338999cba364d129b268ac516da36255f8acdd6bfbd18a2d0418d7473d1b7a5c52a254fa170b7a69ee1e106c3130bd2569004beea8677ba3b7785851df905ece04d02809758e0fd564c9846c0b05d8d125619d6d36d1bb4d4d68b0cf9ac0a5073d70a7471d1a679b02cb786116333d612f648cadaf1189a8b937793d84dbeb7a94d7bf6f6b814bbad30ffc45c85791db3a136f65d54862a8853969c806bf65776fd163902434c3c354c952258e2f7a68edc28f128a9156ea9248e7437112aa0ead03e5d4606fb638b3d6a97d9867defc3af518b2047cb3e049fd5d5935282eacb51c491b3ce54bc670f4258395dbadc3e740be5ad42673819eeaee0d6f4992a0032ff53a7679e141038b0f01126553bb722db1b7db65ae0194a4b1c757940a73fa4db02f41b5e58d0979bb6c8038018a8e9e408abe7efc41a5bc0371882e8f41f49c599c02a1896fd5cf8e7d278bce861eb523accd79c0ddc7d045259ded5f2b94910f4c6fec881d8d1fc8595b0e110a5daffe5b2d66b98f6a1d42f6b74c964c51303a4b3bb6733175e65c5339ae833af44048b52373c4221d5742da9ef0c762e4a7c568eba6bc30146d96f8576c7e7a89b2c7b6d6d7c6278a339ca8675deeaa4eac07d6af1117b393ca235e2393f29af7a2501a06c642f2ff1d3a3b0f53c20c30cc686a6adb6d92fff10b9cc7bddef324ec9e709541dd51ba3d07def30da56309ea6fefda60adc97a3047901397330cfa144e08317cab279c5d52649c9e1010ee40478c79b1291d22c4953668c195d03ac0867a943ab20c902260d9c717070b09644681d713313efb2c2b76bcbfcc9db3b5050a1467d7d3d08066d0b6c23c02d9dd15e5dfd7f02d2ebdb7ad8ebb090f7de61b5d3bfce226ba66caec0362121b8e52342be58224ca644a834169cd104ff2334d69f6c37ce8456774a0a71818b5cecd35a872cec02768508bc393c392bc3543629aaa4f323fc911edd2d6389ee0e87c0a1e0c54d61f69098ed81f7ab3ab0b3127289121a7779ce885e26b2822401d8fb4b29828bc00479f1c097b494d8318617bef6f090344c596912138a755c028e2e3f93fa469d44ad4bea94d5106844459ebdf148012f962cd59ff567ee3c18403561663a10434c8085809d6078106aee620658a6f3dda17041e53e8956b36f59f57c1a80a8c2e2a493f8c2ca16bed969479b0ee88c4caab67e15d3c91ea7b6ecd31af05b5b204955a4c8823a280584ce8d4188ba90d18eaf392c5ffbb604b40f49fef995da19bd1d491d42181f6ab64ef7dde58708f9b8bbd691132a71697c4dd844cd6c5f1f2c9f37f21d1ec7c5a02d6c34f637758a3498311dfe60a142ecaef3ec68abd4cffcf2a1e6432a5e98c9d3da47dd415e62705fb5068cc93a57b4a5b0a1bda2bfbe928c39427c57c9f48bf4baf08be440c4a1d944b97421936c001654fc907acd6483875267615ef047b9a7dabfb5cdad7e38e2fe2144ef1d0e73771521db4040fc518f487012363c1c8202f866fad5ef51cc312f94f5f70502c96ccc782b6c592ff53d3e736043ee6ce5d1422d7870af3ee402411f9f8b229105cb82b4ab200e81d9e6726034ad7a542fe2ee72f6e6ccedcfc6e16b66883ea9d833814c4ad3d37b0da87ab3b1d45a7819597f50b8e947b01e7363586ecf1bae16fc76b4d04740b9adb8981a719b6650a2edd0175e9584f2c04134bf18b59c64df96b0125d30ac055e48ae01c4ad07c4fe773cd5830a5bc80fb2468567861f60844506abfd70b26fc433e611c553bd2a261bcb0e6b441ef0ac9eb2bec2dc0704007f9c51b4ebdd9982bea561fd38b5e63a3febfd180770b15b3840c0c69f5442a6c570e86d38d4be443e19bc87d22d99f5847d3755283dedde95075ccfe7ca03b621323bf1603bfef5bad9a102355ffa0ee4e422297b0100a2f25ca29b5d90248cdb9d41a1ccd422d82290f21527217dbaba91e5b6de3d448241fbc512ff283b39b68d17d0b7c12fab878783856e020b2f6502ab0cf85522a703a912ad66eb2639f05d3b54ef79da573c16d7693d7e0c7463efd17ed4240676cf758d3891d9450a9f9f0da5be00e898c8c15969409771c54307381f7b2c9e954b628cb4008e165dfc7e47e4f52f2e399ec234ebd7b074143bab1b65af5d3358d55df3bb310c87797f840a72922ac4739e7ae5bb424a95410c34559614a15c319934d00269ed062ccf554a976869db5cda29a9a95273fc276972d0c4b20be57beaa1ae53d15af97f7497ac6a211dcb9746517ae421fc6cfa895daadffc971789681e2baee196bfee17e01646472b5420048a4f11092fe8b736653d6cabf844bcffffbac482e8ad5fc897b7e5666745595194deeb7d3dc15a7c5b010f752f486eb483a66637adec65fe09b2a720e165a4ee6b3089ed2c916c899744de786a787932c0880622f52318d50ef3db4d72151610a621ad8c018b763b8d2e02887cab034f621868422b8c8acfa6400da08a6850cb2fe2061489250ff037873209fc90bb8240dca17a181d2889059119775ec13a5d615a91c489220b1d0be44d05b61b6c3a759f12d4675b5893af8c4b076ca470afa4c9e5654d3bc83fd2223348c95d0adbf87455001ab2f01d4abf54b37ce9e0090d45297642410dbaa5e436146cb128832c5c0e631c8a635ddb215fc7c16ffddb2f0023a067eaf4c84907466379f11c50f630b013e6cdd37d5baa6ceb7bd1e4b0021f28717d6f17200677817b727b761bd0e0fbedf1eac2fb41ce2207ea476e939cb57f0af14189b04f0db8438e8611e9d58c167109cea7de766e9c1fa4a7ec7d10cb716900c186c9246eea5aa9bf8cc69e9f95284d7080d33e2db7945379b829bb32eb693e1e615595b91acdb6a213770c6ff8fa8a015d6c701fb06516c82cc2f7fbba46771b3e3de0ceda8081a10aa44317095bef8467638c39fa350489ce275219f24397861a435fe0a21a73ac22355019bf44a751bb071bdd43ce22f0135e2092075e8f3fb5b59c43c1f2b178dc8b9e2add33b18043a58a1c2b0fdf54fba4e0833bbd30588946f85174e9934b73525eff976c1455dcd4eb6649f805e85fe9fc25eedcbd7a815026e8fad62641e9b9fa71be324eef4d319d512c74cdea1c5f585f0397966917c50e1e64e338441f57e3f1cf11f152743cf1ff9c0ede0e3ef0b9ad745ac7c4458f6c24ea4a89b2b40b3830c008c4b863be2e64dae24b7098f2c798bfc64daa85020562125a3e20971659ab4f589e2d2dccdbd0327e33a10d20c29af240e5beea57b6e8c489a167f959d93b537fe4fbacbbac97d422b1ccf8ead02b10c53b2269b42fa6751cdf1784e63d9e72f0b44e469c02ad945c88302d99854167f2388669832e9877cfe8ea6ae7fda161d85ce243d2974a948f9490809fe0e831ee22c89fe6abe593644915389872bb49bc1d42368fe07a19141c00343b1961643f522f39f75144b2896c9a0656381afadf3a20cca6c99b146740b1369a2a6df94827da2b428e12d8bb4f8b43d9a8a4db02aaf5a7fe900a943bc6bd6117cbc53ab80a1783c1e75697dd9abe4f899b02e17d9436ae2f0a7108bb0c4699abdd0102ae47821ac2503c95f16452ca1708702d10488abf378579319a926fe429da962a1317ce9a6634d8b9b49a78b3e6356e97dec90ba5c0dc2982b70852365983f4e4c3590ab369578832f2bfd739dc6fbef152bd6d74c871ed744d17f4ee5a9e53b9fa19880bcc5c812086cc1f07e9ee287696747107d1d5da312ea8a698653fbbc5421e0c5554ed7226139832a11a8a8bcef63603d7cbf55d67435e5d827454a01bc90e7b6f4b0f65bdda2403d3305eba5f8f8ad23b84ee583f0dda761e85315cadacf8596cb2ec19c4a6accfe312d323f25ea82d5463257dfbcd61484c79ed5258cc00aa7b8e3ceef00c049636f144075eb4c614811dc6f3577ccbd0a01c641e92e2f57b9f4b69d5314fa39f7a739b86e346de0b35bc2120f0e861b8e2e6fc360521ec0914a398e9c5d76d0450382dac1282e04496de74fb658575a4b7491cb81443348da2356aafb19e49d842d912a0b4af9873835d97ac863c4bb8939a4411e8ffb7f503e5390e12d5701aef85cf9c7831d815a7d66e9dcf7e1fb8fe41752a682d4cd3b82187229acf88322c2e71d24761d14ebfd32a296cc83537c4e72d2ea2cd1c0981c1e521a079aeaef054db9d2d65719c620fe06d229cf1484136a074b1bdb8befe34c390e8bf8025b7da7bee0190b3791646678a8116b0cda244359b2adb6db7df4af79c7c74e2c02614403bde57e069defc4489ced10d182e1e2ac9edf6265f387f14f0d2e251d115808017951a7703fe47f020c2af48126169284d07de59c87dd5392cea13d98115bcc7d23ba272c65c036c4f16321a2ffa063c9008a38e8230f5c23b62aa50c03b17dbcc19fda401aa5350676a14a84eef13f644d0da3cdd6721138e0cc2e49257026577d571225e6c8a265cb4347df2e11c2be102bc421e2f5378c642283792ae60e252f36d84b972ee94406a891e3ffc1fcaf0a970857d8d9b1dd132d2adac4c327e139944c8d972b5815fe702e7166328c0998643bd95c925e24c8e0c08c7449a2885cc86a2ed1c0a8c916e1669f2560b28e2df43fe9073d5753fa473d4ee612cf642bf7cefab39ae4510ddc3447614e89115acc6595f4c8f27008ed6081d5f7ab4f419011a48cd6438fe5128e7331c21b33397a44530e0c95b62c17b17e41d1e4b2c4a9ab52e9ca54749ef47c770e4a4426e93c415202e858194e924ae4108d9da9a68b0c3ba22f50f2e47abd60467a4935a2dd5725899e13d51c556a2a15c1b46ceb96d53a5cbd511d6b5af2666c9b29622cf8e2684ba9e7d41285604434fd72a9a38903418fa0ca5be7702e0c5c24181929a5e9267d8960ad1f89fc53cae943819dc62a527ff09f204bd4da51085533ffa3fd6acf80ce0bb40ad44a4fdb0e6362bbd48aa4230aa41ff5b45dce5ead02de5b86a9a9679b07280254492d6af9fea3876a1ff917ee8bb126f77c631b13c24f488b8e80c1f699f2e89e7195e6773281d561255e93ac84143b2bbdf4226d55ff8f085a7d51e90c5e8572422055d0995da8cd1d369fb81d4b448ac80ff867b092767a91d824aab50cd437fbf4e69daf6162b808bd7a3eef298d96f6ec3266475619748fc0095c359ba153255d847a8867421aa3841df98bae5565d699e861c92f93eaa9e65ba718018c5ad75a0dc9ac65c77c394060de79310cf6cd9d1bf1c48389a4f4996f1f814f97911f4fa561a2ddd811d6de2c03622aede859988811c69c4348f14e52faccb78fc05fe9066c9de8a029c285ec3486dc5768c474d725e5441e815f0de05b01e9d4f7c1ebfb8781970a9972f5d6c8aa4a87c6b9262001d42f3bd6c46deb8a097bb3d60910b91c9046fbe8c4e36dbb68b72046fe3aeef3c24d5034a6a9db23f0d3fb91cc3d657ea7dd2b613344134a2aa13a531f812901eec412b5503fa79993be12f0830a1240ffb1ba4a0c10152ef870ba656cdb5a78c587871d1e02c0cd433a93d2f144cd243ec6e52d32d3765a35af5367bf0b02d54eef0fda777324f0b916845cdbb2f482d5dd8d452bdaa0c4a94621364ce85ce2b1d7ceb79d408f6390e4975e00a836777fbb5137437afee9cbe5b061ebe09fb90e5de1be89606d6e9b5124a980bcb95c3f9d03ecc4a71ea6d168cefec5d9e463bcf18722a010b25c58f7edb0032c1ef905c0a9704d793e72acb4e9bd27b4eaab2a6c2d4dff79c28db95293ab7830710442cdc66402b78c5befba953010b50acf4bab4445845c4ed4121af406cc54bce660ec8cd936fd5025c864121c2daf38a67fddd0ca1799663a1d13d22648821ddb3721eee503e59986492f93017b8260960310e67200623007500c7302c66c4e400ce6048e69ce8098e60c8cc11c0031cc1118c31c8131980338a6992327e4de62fa9b58de72aa29e1e91d04313c8b93186aabc2549ddb202aa706e4c4e38ca08c53b11e981c7b0a029e8915fd5ee42b384cc47b5c481343be7e74eea8e4ad4c6b1c486296a19401756724e4bb1186a13a60a0d2f582d3c1bbd69744de4c19f9d745b9178b962bd9a1610e877e4ed7cb0ad63f167e28761fb4446ae42e6e4d2037f9062e71d898d581ed76482eb45201d1cd6955cf5e4adcc2964ccbdc87aa5140174546705f6f374f511c61b6493d7e604d7d21f01fade53e96026f6f20e31c0997202ff8c8668cae35b28d1147e4915e359aeeae0524766542e49228db2267cc39399126318f3db55ee994be414fefb0118fe598ebd33c375bbdb871201f1f6e8d10ec1cf33f77aa9ce5979298cb45663d5fe3065ea36137d468e4acd12f33b5bfb9af723cf10e664dae4593a524548c2a9256ed30a05f1ab5385a4cafb39ae82260f45a4db6686efd1e77c336c9be2687fc46a4a151e2e024315734a8d318b623649619964289c88ec896886c20b52c4b05864dc9886f1b0983911a9a34f2d008d5c48338346950249313345ef9b0afb6fc2c9fd8404b0c9a9732225d677ecf72a18f3e98812916ca3e9d48f0d872dc354513ecc329e4980af37db8302d4e7e8ad7371ac25d67d2a2c1c92945d957d280f10b0ba64ca9a9c2953cc8bd170fdda7c3f3e0e20bf6445980417cbc11ca069b761381b1b11831b7a853245ce36d0a06e7da8ad104b6259416d2e3abc79773546b2e86b4203c02869695fbf20fa5618eb80c792efe77576917ab30ea817a340d0f23038e70e8462c63eb082d46e83e28b57a62580edad4625559aedb3fe0f168e2f11cc2fddcf7d0390c10b467695e20e46f4180675c2641108f3684da3f3312dc9d93547530d79d53b4c9a0ad0603e007e4bc014f76657a9028ea99c8634837b0a987a0d97eccb79dc108a6b2f9b7d8e7506665da1a22e05c30a81e629cca087c5c180e6f48053186daf7421502584fa239cc27ccf439d823c4bce6b3ac9cac1def470e016827c67545334d18cf906f537c68ae7c29ddee3537d071db1ea964cc3e6a41bc0f370a284603ac8314bfccd9837676aa28b6f2fc0b35fe4b873b30857f5275b5880b907c37a61f25c0f6c1b781e4c08c008a8da441db70637b503a43686458b89cf1b39234fb11f67cb60adc5fe0933b5e9780bd50819333ba20e8b5b01188d2b99787a397f401be589b2b9230a0b10802066eb133fe052e54bf3b37628eb8d30c988d8fb343ae008f956229f19a119b5236550b6badbee4fd83f2ea6115dcb344294124728d14f5de115843000d24080dd834c8beccbe767f039033833bf20dc640a88caf6a5e4c4d296ed6e03bb582f43431c13464ae332dd078c87bbc242dd7a28e3bbcbcf26b862b44c50e0520a2cf6b65e585f26c4b587bb53f4f1844b6b0050c9deeb3273410d23532656d0d50aa113d9b3fa2726d04fc33ead384c4ee42d1bbcc0bca79d260e95b46d96858e1121c035ef596780957a45d3f5a28d0abff8a60d9206d3bfb5d5fbd8ac430d8ac738b316f077aedc0f3b5ac63504b8f3973abd8fa2851faf97633832f6387b82d631ec9bd33162730f5d131f6b5987af2aca0414006a277d7c7e3c595af87d0934b2ccab93f388a60816ef54e744addd983df115e04fc3c83746b2d01b0ed19f603f89d58372de619dc79cce9ca7c177d2becc50f534d743e943383d0cfbc120be47c587b40c2c2c87e575bd70e77c6d93a56638ff6f1ab20918da420ca7cf60b541dc5ea33d22e8d1108c2c234e5694dd8c15fbac53c21f40de1c5c21d8f20d63af453f52c3b918944b080145758eb2baacb80c71d3b48f738cccf47dd256bd3fe933b0426969eace8f6a9efab30f468192b6772e253f733dd70613eacf38d0f59d6bef031dafeb423a749ced50de018a68a079b9ed937543be684eb462e76060e151275e50a19621d841ebdfc060d5f8988a2bdd67b2178e2dca046d17a5a635432aae79be443c984de9ce4914ac97e228ea1285afd50a4ec27e494c05699f4796b9fd126af7c736aaf6c53ed08d9753379884d9e35d7f77137a0dcd87d1530a0b1fe3f1da97995daaac4171186debdc931c5af7dbffc9970f1361b3bb7c51398629407238dac41a37295b4bba4a8bde3737f3e1311ca4899018cb749824fe6fa16baee39cf147d04fc5461ec5abc70784b44360208a61b113be6cdc56a087701d592117cf66d3604c30e90525781037896061e027efcd3bbc59d96d14fc9af8e4e65c6ad868187bc59ee3686843dd8c2ba9bb756fb12e6bfa838e3d6736c859d1e810f75b49d5f755f9e461124508062361f185e4061cc1421b3b6db4ca1ba5cfc236e100e2ec1ba22b5f8f28974230a574191d505f7da174d05aa1524e3c96f32ee7acc5a6657780164b7ae1a1b7a201ed3d44d2c680f6357bca5d2300b0492261b68b02feb6fd4ea19f2d86934695d252e611347939d94f891d09c405e9bde99a72707ebb27b671e6f9d250f8f5e71dd1761b187d8a95a46c9c837c37d30e0ed1f4c8de2f6062ba66115465c0a645df7d0ac615712532bcfbee238624a2bba32e1e6a0e6a25e54e9a7d1ecbc5c0ca3bc2fd13679ebc7d845a0805197f2f7de50eed5d4a1b4aac736fe02090f672e3239739554216b281d5dda8c331bd6d3861a36bbce402c8f27be116f9e282f08d7cf1dda1b5eb98c9c6d304d8125474b044401d98cfce6569782589e3c11b131c8ed64ee11a976e2cea3fef8869878006e2448112ff614bb77c426abcd7bea05789be21004e958bb5d9245d1aff207c19f247dc7803f976506800b0b64e05b16a5e123bd0a044f74b21c276416346cbedda160b3a521f4c3a061cdd09de81a5a7687849b915324ee9d8857dccfc9f627a770dcc9c2158a932312428063ef5c2b8b69f4ba47ea219a6c632ecc52a488a58fb56e11e23d173a7e745f16aca1ad374c28f02037f2d92e261b72f5ce96eda7fcc29271a35cc74d841f7e4019259207ca17d31f9638ae881bf96f5f528bd733f19cc00b8c70a3d03f3b4902b9a4dd4df098276064268c67315f185f3cc08d1a1be4edaebc0c825c3a427ea13dfb6998387136aacb158f146dea7b188bb71101f6c1489f0e49c8943db402b88462b881fd204dda768bb271166e23a03d3eb25291286336bb2f5cd8d4a473a61c37ffb41f9a44698c37b001c4a74e941c3bd4e1a11ea05332acfcff560a508c393939f848514f9d3a54fb790df6c2d52a0a584052e540ced13b4f46c8d34680f8063f6d854d7466acdc4132c2337490a34bc6e8195197ec5a2207a79157f2238c2a79f2f7fda1b95efbc09a74c93498eb5bc65821aea03051d691fbc47eab9501227906e66363043117cbe7d3167ba1c889893c5ac8a0275b69f60c22cd0042f70827345fe9643a3bf8691c1cea64d829ebd95eca5b6fae8402a4a508bf2ce37fdbc32fd66907aa2b2f0ef6fd3ffc62cf01826d79342bb1106e46e49c1211776d881c8ba2576d34b4dfd2855b71c3ca80097ed995a76bbc3c4e31079f901141e8002f0fcace586c86a5ea5ad31cb1061b07b5c06a0338acd60f07be44218595063e22cb919850a2ca6ebe7ea343bfdae7a2b3dba31dc88a814c02022f261247a3a45ec3f3261f20d9e34e9da0ba455704f69072192d11bcb8bd960002ec393095b4a5330afa9de20089eb91852da325ddc938dca79f2db7f37a1a22a670e812a8cb150e2c3214a81ab5a4c6f854a52036b2cfadebf07414c197ac89fc8f29090ea0da80d07de5d77882dbb1ed95a5d75ce1e5f8e45f5c41b86424c901b0afa8cf8d01109cba334bcfea1debfe6c2755d918ca420146013733ae72f509855d4e1ce3cd79acec4ed82452f0c13385ab16c8ac23d2e693e3eb74c4d701d62debb8d160159d462257c1df3e565a0eab6d6a3c41c01a34eb74b51c8e6805fa10d63656b3d539207d26b94b59cdf48b01074039603fa3b875d77157d9f060c00a1ad6bc984f5dfd359fa7f14783dee4da14e37cfdf8e58f96caf56af8d353878d5acd44d805ffca63168239b554863a2d83260b511498123a79f48622f46e44557027aa7e32313bfd50756589a83a0aeb9d69f713a2aa554bd6818668d06d30e8ec63ce254516f521b231882dc22521604f39599ad4cfda2163dff0c1e472d42127dac5c48122607db48fc36f58e205e164559e4f3754a3a2efe7d6724f5d1fae4ad1baadf07ebaa09d72f6615336bb32682c9deb650c13974879f077c2d24ac7a47dedbc748bdb962a19814e459b170f21f0159ac41f8fe8279ad5f71c21118658f9e5fdf9238a588f10048313df746981b62004f5d2c2e371d221d74f551cf5584313fbe0fdc69f520063c309f60660d82b27fb6279beecd76063398460915dcab30a2f1e3f90a4300e62dbb9e67a2b4c74ef345145a56f5b794e69aeed09c312c2889401625315965418f422571eb1b5886ecb4c47e921e5fedbf5c2a86d25fa0ac2ef661974398828e2b12cd08b25c86c944b559d033a979abd33f4bd11db037d09d11d1af4217e754239504eda40571d86d7d282c2a73ebca1cbdbc412dc28b6f60be879bf401493643c49a1afe7b10d254e12c9fc4aa34165697c5cd2c85cc2bada96009f5d9d8409c919c927b8aa5c5ecb1d111a2dcc4a163d9b356ca34217025616ab693080d7c23138768026cbccf06357cbd60a4b3e3662791852e4d8860a683433fc8de10469051b8710717b181947d6cf5adaab2cd50a86abc7b8fe311ffc10a081818b6d29e3a29d5dae997249cf102ac4a4611e5cb0c62fe8748d881613aec5dd680610c439f51ce12989d0aad0dac2896685247202406c246a9d9fd53f7ad0d21ea0c2602792aad4dcc57b3e386784420c6f181b7d04628b180abbe7b9211c7f08893bdda38fb465f13c87c77544ab959e7e9f0994049e5c39f1b28d68b59ce24d704d708fb57819cdaeae84617a839593938a78e20c01cfbe9825c5adeafbeb09b08051d4955748f685af74d505c920f0cf2f191302f0c07a6ebe8ddfed291d85b063219659cfb598462d872d3d0f5c0fe2aac90bc7dd73aba7fb06144263a29cea91345f57d7d500227f1507890b65bc2b33de7ad108f653e52b9d98b5353a22af69085258f5c986786f1ef8452ebd1c0c567fe29af86b70bedd2eda8ceb0d1d773c13bc4d42ec104ab614de9a61e6ce8818526181ffe6bf47848295247e80f27e5a72f0d0dc518fd24c024d3ff14bd751b34dcba21453880c2241d46da85080d6e25e9fe0c06d6fd2e081a83ca4832cf0e9580f294dae0a448cfdf32e4746dcc6647c23cac5fc3c029d986648e553d3dd6d0c80a6938607e8f1a837fa7499c1c49c8b65a88afa2aad8e30a5d833984f0061c02b7aed38b1fac1843bdf070ada0783d46f7000dfe4a0a42e30d5bc991fe9ed4c859e18066652c30a59d494f7eedf0b2369b35bfb101abad01b95e496bcc6646b6c6d7da755941fe588cc86f1eb8f0b633499e6b2c3aa1a6a24f5d33ab78bff36a87428dc0dc26034705c1498a52962b9812d982c56558cf11c0a2e2c3ab76896192375e4375d8816b16f53336abb908142da1ee94b578c28911a89167492519676b87238ba4511cd04a2cabe343f68a8f9c7af1b7cf87f9021718226c8355b3c1dfa314d4871b8bddbed11790ea5d9c2f0521414e2d58fcb82919ad55df9a2caef4a3c111c1755b70b87816dccea4e3d701505cae8dedbbc20abc5a207df3cd46e3066bf4ae10b3caa5ae9423b7317834f8a624584fdf8e6d62b0fa3e2167954bc7a6821a167994589366a3d08dac59d0d257d923a03b5d0b3fc8e1209666587ab46abff9de0a32448c55051c66653bb6ec1dc53a47ae09115773ad3ca4e7ec3072c105a083015a2601f3a96ea7c9512c0660d04d54e922306e3ad49576ae7b3b1663ee031577680896c1a5040abb904fa56e9f789039e081f0e19d646af0202327131c8a8892c15d15dd364199e67c6d91126b7066d97e713fb2e2af0b69e9a520ad19bac5d7b98d33a5abb440f6da86e1d0a0531de8cb57453f41686d592adcee3d4a77741514361623a70f40a6becbc8295044a19102919797d49c8ed7f3f214e22324b49ef298c8b09b840110fa2fa10b1f7f327b2e511fd13c0ba4205907f43737612917dcab4db9aec8c70abb51bddc534c085fc4e439fe74ae0eb14f8c54660b72262be13ee116dd845df5855d37ba35c118d0654c854dd583a2211e74b16b5205158d045d53b1ae05d878b2d547d3ce025bd393a059638d5ea89489f4f5b0e4dd2ddc7270ed51808f30a27d0b4b9b02dc38155058f2e3d13c446fa77bf0ee3079480f8d56b4572a8dcad51ca3362dc1b79272b1af14b3b418d85f4c80dd82e48fc23ea6e3c65a6b53fcfcb69a07328ee860c02b7e89002d9162977b66199beefdb20056418fa363fdb9c571cc738c89c84d96ffee6f88d1f0c14035ac22f6cd1c601b37b3bd1a963cdc2211f9b19e82521ab0a7d9f8c0be80a5cc7ae513718f51f022db7d0be24d219ddb8f5f73b6a6ebc067cf10ac5a09ff49e0ae9ec1e4e80d55968c9808e1388a50962e90212a221d35cb36713517782568468dd66dc531079444ce1235a6f3854885d5ae46d00ca97b8c4389d06cff01b685ee532da98e345ee940bcc0944ecce594cf2a2664fda5b7093865bfd06431b367c938965acd33033e030789b255e93bbc93344ce7fade361e7ba5d33776ea64b0ab93951691883b2d90a42736c1c6c2ac83ca04062573bd3f6b288cc66e0eb9fcd7236ceb71db4b14bb82170f7523ba2959934a14c359cc934c50c5719db08f14cafa43ceaac51281a4f8555580af91a0f53cc37c822eb9bf21f2bf2d0ddde98332ec27def21a31795fa587a8839ffb43d7d12bd962b0e856ede16522df1fe1d6ab886c30abe867068baa00a665f9b3934f9b05b8c6f22bd41ad1ce3ed44100b7d715f811b49699bf8cd6fa75ece2bc72a48c28825e44d0dd725d086239ee7235c718df06d1ee14b38c235b4ea11728c7cbc2d6f307413e4348e197b220307b17c12720f608633ac5ed6e9b23a5fcd881b9b389d1c1b30a59411e54e96673e0b6e49b9319bf65ca71b21b6482c608789b4f1826122953edb32c2008e1527ba7c02d60a872d8913c873169038055c7b8adda4f0adacd8d9210d9de46f0f90ec3824c30dd1b71d030cf2bc00419f03a56751575f9c755310c7ed1388860a647b804e2858e89a08590b69d957a9adeb16862c28597f49e2161a310e22c2ca1345530542d3f80090cc2b09c8f608ccc8e8e56018c8ee995ba6c461253d735755935b9f1baa128a921808a96b37fc7ab4c9b078e938f354ebcde95b7fb024ad09d724142eb6f083b32fbf8fd026c2259eab86f2c9cc05e75a03ae5fa6d96ef1865437a47a04592f32a89d1f67fa1899ec30852fda34a981b82812caac079c00d21bf3a37d6529c18b4dbaaab8c2f53073195e6bb41c92ed058966bc9980134ab751167122ffe52f89b2fa1a7696cf99a50052c38e61fe04d6b3505a994417c5f9a5eb18794f09bf5ed7efcd58bfd2e92a4256076ec5c22d6c9ac2985686890b2b7543d56acf7feb84d74435c2e91c2e2e57c5ad5e7c33a41d65be0ecc1eca252e063073443383248ff0300dd6f8ed6da093196130c089dd451a60b1ab377b2557f1ab7833d00f0957aac9a68fc0d545c176080681ac8b8b1b01bda800642fd560451f96dadfe05f0662ad4d744492f70313781d4c77076b1111024a05f3285aead5cc76bd0711a4deb665b8a62b1c4e9452c501a901da0e41893f2441fd82b2082e54570ced103372f67d1051c0e489a99bbe101da646c19eb7241348a639542888630d528f4a5d1d68b56d0ae0a6c1d936c17fd421d88ee11b009da68f19c20892744333ec7796101e020b66855345ccb03ed17d468c469bb5ea596b83c0e20bcdea04981f59260d8241dda31fa12dc30a7a905222fa44e9157dc1f54f560695c6743e4141cd2e272c256eb05159d885ba606e3d5204d1348f2c6f2e9e12a42ee68fd23130f940711a883d5c59282021d8c383c1c127548a063c555ca578fa6e8de0029f23e05b474502082acf7024bd25153d20eae3db2f0100b93195a0984f3062e71ec31d1b41fa66b0be4fec3fa93e5e0054db4b94605f01f2bab45dc1f2213a4b037af4bf466c972f212c0e7482814b497a0d963774f0528b623ed588ddf34aa387ad3a69ce85f7cd228b9361025e1b5ad19fd2d63b20f54d05146a025c97f1631a33ba601f9c228b66eda5c3e48882fd6273933f042e09b081bee0907b2f9ead74eb1b47b8cfe08965d6f5baca5899f7f92fe3bed459d5a3dd5d7169bbd7d525b5393dce7060855f515a41db164dcef10430b38c928171d42b7b759b40eb0a818dc9512fc2c38487cddfcc3bd7d26906718f2e93c42b2aa4366b0f442d50f25f065d702996c04414062faf93adf3e584462b799592158eb3d8448127c4dbca285d11029fcf61555a004a3f100e715361aa1c672b946e37fa05165005b77ecf5220bae5f64abf229b67f7280656fa53a5280441c178d0276048652b5d48cf97bf659615c0ed9b56e7c9ea35fd263a53ac4a6d205752ee61d03c45614a3e5dbeb880bc14b0f9a0c1e84b547bf29863818a5f852c057b128ab80102942129f54d0deafb3a0a3ab0a21209828cd5a751ae2c95655948ff81b58b92a6ab0d2ec00ff0117cc4fb000b9c94acb360d10b0cc9703717a093306f76d882a3e05cf6de4ba1cc2a10a0902873c3f2eba08c300433a4e1bf7a051194de27a3bd420b9449d5290ace513a7af13589ff3059a617d9c40b6d9ed4e185b3ffd4279642bc22f9645e4daf3767509a0225123c7b92ec81cb95e8420ba5f3d34efd789b273f981675e1e349f08f4333786263d28b4c2e238fc98c43b7e1f6bd50e7c6c083784e5fe0b016c150273d7ce628a1d3c3856b667d0be1b26fa3732d4fd411518892c560bc9a4797376335b2a17e2f4e32349d1e8cb03eab0887baed550a9d4c9d0e5da86a596775a843afdd12138b15fe40dc57c04c64b0fe8683c96f6a1ee4e0a44ceb41e29e12166a9cf5459dfe8d526c138801e978a9ca7c511a29f60983f3657202e2e45902d190c21f7f505cbb30b952c7b0c83db07acde171c2d2bf3508e61b394154c561a8383187919e1d7d43b81e1c195e328526ca6781d655482c8b298e5f525d61fdaf0bd78a40f8ff30b00e1c81af0e351ec361bcb0fa0181f6a9861e21251a6a25a2337bfd08733481372753f003731d824ffd4e8d075f21fcf6a815116be217813b38dc7c8c00b16fc43c2f808b9458a79e578171e7c80ab4f46d21a0b5d17f983e61fbd85dd325a7ee46ff915d9fb0c764fe3d97f5b8ce8e9f061bfb9b30b506efa10562939bf1aa6917faf07135089704bb4ede159af478e31a842d8233a7d71b3661e0700e0956820bb9765c8af33a6ce9836eeb763b91c25679ec3955c11a343cf6054774705ca6b008fdecec6bbbf369b85a58095c663a2a41fb8446bbdda91eb6aa9ae7fb5501db9ed8a52e6bc8b613b668d41f22f6bbec805061125f2e9092aabf327747297c5099d4e92c210f0ed7fb226a7687f5a2e0658e0ce85431b69ea337bcde13df907a8ad2b1d47cc2f47125c167646d5fecd105f2342124e2ffd1a0ebd0649c945439c700653e49a333e405f58e1aa1b2483bfeec994479fe8fac55c4afb85dabf9ed048bb9f3891bcd25581c3a413e2f338d4ff8c8f7b0d48493ff5ff4d4ff574b3935143b50788d8f757afa390c64e3222a866a67d3669db7a21e5cdb3819f46122f365189e15cfdc9c87847d1e9ee58d123aead3f806628f3ab6fb1b0f297f7dd5553821a8c85512e29c42c238ad67701ccf51eb706bf21c7ce459508e1dcb91632e270c3f1f2f3427e0eb9cf03989aa3b6ca3e30a0f86cb74fab4ba3f481d8aedeff65847f9fe5ef43aca2454cf21b203a77600745463c01d6727d51076a72ba6fa07df21716ec455f01c56ad6811cf6df07256c7e34ebc0c9df2f41d2f7fd23c44cacb0d0c7a944d8f5248cf53590ff80f5f4ef6c05b77c6c13d9edc9d217c4f8778e76fe243dadf1b553e54f7ce8d1dfa28a4f551d819cbec59c4eab84f91407958aa27d6a6243ad454eed18f73d01b31954589fcb432656d6fba86e514c4f0a979f9d38a4854f5c7a820cc52cdb34c1d0bf17a3fd12b6376d565015641a98555a838ece58fb1f67063d7b19225495156432db36747cd2a033fbbc4092d21c5b4dc6ebfae735a9b87772d20415b0dcdda961c76ab9ae76d384eb884c8e19ab425b774ae5c650ebae1f8e81244ae6ba089dda2937755c3da02a49597d268ded21f7bad99ed6de22597d04fdfdc8d7e85c9fdee22028c282c60921e821fe2dfed75cacbd19a772dc35e30d3f60a741d7663f530b540e2d5618995f4563c7ab3d8664cc647d019238272acd0abe3e905649bf1209f038e8c1046b28a8e9387d727db4655f90c6c6554009755ba5d9e3cc66c3b4ae653909a51816b56e98bf3f02867fb183c1f81794609fc59491fd0a397a16dc60f7d04693422d8d10a3d949ede95b619dbf43990d3082151abe88e7a7849b56db4aacf40b04605c65aa573ebc913d7b623be3e05ff1a15506cae9dd34f13cc6ebd47ada032ede32cb57520588318636d16dcba6613d75a9959065946fc19a97d2508c33ed1b14eb98c433f5b0ed400266c3623b79a0c4e974339f0b19d298e5729ec29287de0a33fdb2cb06438a8252d04091f9aea892502a37ee20830823498491684948aa8255819d346d7ac0f3a75934f30a350936cb4122c55544fc1c8a9f6f96a69e0aa65020b229235e52430daaa4eba0b100e06d664b93afa6ac6401757e29e1959c9051a94839d3959ae8ebc9930d3455571a74676128106e56c674e96aba22ee6cc609ab52ef16ea80e2c8a87b18be51fd050f2d30b5500b22a94649018c945647cb2b88a1524af68c13c8b1794bda8c11d8b1aa033f1ff9e34b5fa8060bfe2b50d4fa92a09b711dffea37112c3a6b81a2a4dbac1d2b91c2e2df541d35b1c3445cd61d2580d9526dd60e95c0e9796faa0e92d0e9aa2e63069ac864a936eb0742e874b4b7dd0f416074d51739834363558a8ec2d99cc9fc976a89c23953751e846cc3736a254c564974ccee473b4d48ffeab183422cc343352a0d884637667e5bb5cd285ee4b7c6a11a69a1857a964c23d46e7260f0671a83839cad0eafb43c6bab2fff66ad9e23c109173d2ab4f4400fe305bc866b68489641960e06772ced897921c8682fd403b628c144354e6c457fd94d7949e080fd11a44d521fd331161a414a03a1c2208966b3444e47d4a30b2e6094b1311143ed441b01fc2958476ecaf92650d1542ebe102036c5a6d32cf620a5e64edeae517572ebb7c75a985237d0fbc7c0e3a4b165bbcb4689b9354dba303271c1dbaea8c3b2456ef2eb45690247186a038c8592a430853d3442f053b9a0b924976bab272a99ac00b4f00087b1502cf2c132abc504948d2b8f448e30d4f90598767bf9ce6bd95eee729b3eee332faa37c9d357b3e4ed73d64d8b1b674a7d62f4730006eec5b54d4da76d2bfb2a09b9ae1d0a9dfde681ba40f4c60cf0879a667b2a9ac26826fdcacce65cd70f9a750ac366c9422ff7329edb4d725249a0b518849b6633944c9c4d778a4c4642b124449e60f38e3bb888951bf9505741af1bde1888e8aaca588221fcf0944420cfc284490606839830019e2681c79a2d1d02812b2e7872ce484d86d110489c11708066ac57153b3029ecbd08db97f2d23c46d83224c4cbc4a4444ce9f13888418f8518820c1d0720431c96efc160252dc3f28d2e4c5ad4804c4fc2b8988c8c133854812033d0710104c2ccd114c063a8d4546f41c1086946cfb2d832c2178331a2131ec8a025172f8cc211262e0f7210404736b700493114ff1c811d237271010232e2d112707cd0d2221c67c08424830bb16432019f8181e39d16c880849b2f9c72d3242f0f62904c4b86b48c4c9890f97065417b18ee344e23a40d0d75b10094c2378c07ba7c58aa9f7f0de4309a1b2c29337bc37edcdb444cfa89fb25e8a416d217cc5da2570ea84c497119fb55a29689805add4d7162b0d87a6268a8cfd9a254acaa5c91321733fcd82f272da0462cd489fb3a274393685286c862afb08b0ba0e8f3c12ec6381cff8461e3a40031195e2418da17409ac6df304aa3abf1f38890f9dfbb66349c8b65caeae3cc3312e85f70da12a113256b3aff2313a6da42dee8ebcbff0f2cdb6a7d019196082c6a3b7d895a406da242fcfead933d64bdbdbba3d9e204648fc3a49615582ee28c7fabc5a1b53295e3ac4974d98c7c5cef005805a004b25120fa43c1dde60885b81b522480732ae0f6f30c4adc05a11a40319d7873718e25660ad08d2418c4475b2c1eeab011d95282c91ea9469f32f6e17d78a201dc8b83ebcc110b7026b45900e645c1fde60885b81b522480732ae0f6f30c4adc05a11a40319d787571bbfcacd33a85f28256b3cd7f61f6127aa544d1c92397e7ac381b00254aa260ec91c3fbde14058012a41356f29da9b209f0f733d0b8ea10818dd3c5bea3b3281efa542707feea86543145d8d0612d52bdb3c8dada6e43213a46d47261a01a0c877adc049e9b5ccdb64ea19fba5da9d28784bbdcb0c4da33f7a176940ba97b200b6e9d4649249af27b65aa7d59e075bdd4b32ad3cfc6dce281bb7bb5cae0e20abfd81f49fbd8ccf81f225cb32005ca832d955678f0902dd2892911de2da574ed2983d5c368e215cb617b00bf32c162d46b76a14cce737f2b2448c1521560ac0ccd50232fe1da5c3e05b68f9373ac72a4237df4414678514f18a70bfb220b3cd96bbcbbd923f876127fcfd4e4d3c526f274ddec78c0d20a5a287565a474d138b5d3bd13c3f126cecc2a00062a77b44005d12f491b06d584a74d0e63aa28a7e683fe6925151f22b756975610e644ffcb4ee664b11f84f83d1b8511fab5e00d4d0d3703d52cffe3dd279f8bb6d1f3b9855f67d932f7076d1be5889c67fdaeda39dd08114f209d00a5c232cc8d08be3f9167feda9dc4f1ba09ae39305b61c4a7da6653fa7a05570ddd24ec971b5388c112e37db39c677c0b00e8476061ae7b520ae549256bd0d2ea688a035fab1ccfe1190ed9c217301ce3a505e6e73aeea5e01e9df0a544ff84e74d125d40421ac204f36ff32ff0abc9b78490d2a3052616946d48982ac078e0d1546caae0bb9945da09413dd2ee55276812ae5cbc2d5a4eb7746d506ac270d530f56df82b94aebeb0bd6d9a8c5a022a13448f7b8b281e295427084d7a07f3a6ca4e4853834a2eb297e4e9ba4b0538985fc7de1e2929d402b27dc5d0858a7b259e6a1e88a1834c2358bf6ff76d88812b83856be70ba90735be00e12405db9b4b76fd499ae9fce2adc16e5868d931950bab67569839d6b4353fbeac0b89dd365407ef948124ff8eb2e0f82f0e3c318d22d9962af239e8cc3c05c07de1b79cfb8ea8e38d1464f031e04856e01b405213b95bc4871ed053656eaa1acba6e9c5e68cd69cdee3ff736f507e6aae9d517fabf1d67fc1818080a0c47fc83ce01e533988e5e73b12106d6c8b2363d5195ccaaf67324cccbaf9bc97c9edc8cca089ad3b36805716a1edb279ca781fadd6e7d415b0929bbbb473a28e3632794757593abb9e122e3d35e2465276b4037937b94c399d8ebfe9175abd26f88db0504c969bb8efd7ebe7f8ee1273380219fa8a8eff5505eeb87aa679e6c57d9f569fbab0db4d340db9e4e7d49b6a34d4371ee0446493eb6bb5bea4de5230a56129ebf331e1e2f023bf81c7ab54586e402773efd7f6f9101bdb8413e74b687e76d06782a54190620eb876618ed3c41bb3e4ca6cff22042f834f4114d6ae1023dee8ca0b966a1d1ed3e97b1116383fb6f9658e516a943ded1eeb97d9e9a3a88dcc558d6390bc79560d05e7b2310590f0f320cd77c15cce1864f1d7f079d4cc19b40b4a29a70453f2f5c393f1b34520f381320af5b5273f0e09ab326e0674bfbf9b713888dec30b2dc325b0459aad3fdbb3f37ae78f61cee14d185419bc1a72cf6d5cabe2af0461cc50e8a36d8b6cd1d702d971645dd03d3284bad39fde399b5ce5d0409b7b324b724447ef707014c67035a9a328158301a16a503fe680f9b9350253f6be6ccc3e89f673c1754cde75de7274c4bf013bba8ba57ff21401f0837ee8691e739ae3557b0b3407e1f1679ea00c5a088e3a2923b2d2bf64a87b5f25b42628924646fb9b79452a694a40c43084208b5074dea476d09f8526b2dc912b4524a6146bf4229e79c53e7e9e0afab9aa4e24c9d29279d3aafc7ab492066d597d55a56a69a4f330b5e9452cd88ebac3ce1e9e09f3ada3c62ee84518553ddca132e0b8dc1a9ebf945439ca2cf2f3a83531d7dfe9527bc1e6fea388eedea535dffbca0ffacf99effd38c74952b7b5409583e7a9b3a2dc3320ad94e24a4338f60199e3ada653d1fb48661a5bc9cdcae8580a68effd49af4d316ba1e803a502cdceaeae910427e27fa595dfee9adae5a4668c5091591d0eb51a966518d5ed71e73549bd7b5096993f8b2266119aeab2958915027a2015e9793beab62d98a0f50ba28a94f89a582cbef38567661096c956621ecd0ede8a5178af19c35c6ac437d3b2ca77cd2985806fee329f2ed710a36d45ebc7ee1eb019f0e88b5d61765e3632e8fc15ae3ebddf06bcd5411de19dbbac47039ee0c26e3ccf5ae3aef8be1d964ae2ecb9c9639f55f4a52791cbfbc828b1fee9de6e986d23e41546888c7af389ccea17685c2f91c4e676746880b7a2054d0a316f51cff701f6481e80fc7e367504996f0a7dfd14b45529132a769245004dae1825332fe70aa31ad3a1681aac4cbaba02afcb2f573c5ebf1c5c582530d0673553c19da8bb7a3ab7829f8b8c8f2875f52190292f163046007bdb44fcbf0536a2d0af5cf71edd3945a8b423d8f5be5869f526b51a87f77e24e200f3fa5d6a250ff2ee44271a765f82350cbf0536a2d0af5cf717187526b51a8ff0814817e9a46e6344ed3c899198efb47a1accde11f4aad45a1feb9206ca457b20eec2a3388799c5c66279279862ee476a138c41e771c42811c2350c35527732ecb1cbe518b41d84e52b9fcded9e973251b004e54f87a7450137f1821f1dfbdc1ae56dd32cd2d846d2af0f5800dd43290e190c77ffdd137b8034a193d7af4ee23f136b482caed7980e51e899c467d3bb865e8f718b8036efcd0d26d053eb8572e2f413d446d9d7f7cd8587cb951eb29872c437cb851e6227c4b9d8e40ea80dfb236e79c54fb4929fdb703fd0e89763da5943e47a691e3a433ce8e1dd34dacedebba28b59e5ed765515683beb837078e1849c6da088b31d7df8d033b8225a4ff4cbba53d731e7fc8ebf162ed608df1e79cff7698df21b9736a1fc86898ef9ab5757e3b1f7c6ca0ef96253bf9f33dc7331763988ba3ebdbf319d2e2be0cc8e8d2f8437d31dd166c672fa4407d3b6c5bb87a0f460b6f3065948e909be172709163eafc84bed8096ac20f4c6841122c2e73979f13c2e5cf3133451650a60dd408e392de778d151319a3b707b97b8c33ae4690359b7dae1a50b27077f7f6fee9ee21ed51aaf163a7c31f3e33fce802162cf3b8e02e74c1326a4c29af25de1ee4dedddd575fdb4dd32335d66456438acc7b48501a4e260a90acaa5c21658c1d1cf1431057445903a787ed86b93844072154463f097951db6715a131aaace2c383453482ced082e568e4ac6a0b6d61688a1339f47241070b2c98770b4e3026ea12ca3da1b0c2b27051f1c417528c3ac58ba04ac5123c6ddd3705182b29959261dfbf79030e39a860e8867356ab950ac8e062e4d29210e7be284d480271bcbb7b48ec1814a3908edd4377f717340a3b540b35abd56a954346164ab3e6e787cf0c3f5e942c3059b910cb3fabd5aa8821a89cf2061c5e9431782e7f8c3c448cc0c8221e719f518128cefcc0c0238a1967ecdcc7292b080154f941320a98059005194c86a87133b550031e5aad562e9881cff0e345015a41283108295c81c383229c20c5131758b1440d26373babd5ca043ca2d8373d0c1de981b917e507e8f2cfbd699a1a27abd5ea043fc0e4e42a33fc00ba2f0a149600fdac562b227c74a81b8525745f9427045d16424114220cc1445e4baab005253b0082126930414a1559ac9103aa85234cf37c58655c188756ab550a6ecab8e2f2fbb46a7c5e14299cf1aae86c210329668005137c9e08029532acf0c1e56dbbe9e1032ec4323942109870051a4b58f003113e980a2d2c410b54e0a0f7108f30076f86340ddd6e7cc902b2a8c2e51bea379cea23427a3872c3dc90de86a494f11304577d002f08d0e48ab878a8015cec3e296640218d34ce589db1aa52a58a19679851c58c2a660c993134065cc2129690e9d4ea5d58f8af8a2aaa10230654a0827b61e163190da3fb987b52ee7b2b845ac3701c66c7b1dd43c7a1ee18f52c4629e7f4c2c24929ad58176a4d59081b8a65281076bbc7e88c592902a11682eb4008a133e642b6a1507a01512184cc3cc67ddf2d242446963c27a490330821846f1a8d50261ba3cc065a4b226dbe92a98cac642af81a4208218410c2debcb45222d952a9542ab9946c505f4c17ad26d818638cfc356a1d7409613bf8201448323117b70e628e9f0e8e3b458c210615c2b01dbd2e643bdacfcc53983f9cd30dbdbbbbbbbbdd319819e92a770438fd036ba4ab38efc0716c43b1fc5aa6a34818220003a2b75092040bc276260c082fb01fb01f989999312fea23d517733961e1bb58ea65cd814ae4c2f750f7029713de0842ca14270a607c613b13146c87d129b12e6c8c944a1f7ea0930b9f91dc38637760c04c336c2ec8768f4ae7c3e5ad8e9c42ebea601aef396b22201e0a80618ea8b548d74a2d61a6ec246219b5b0d69958eb78c0f04876247ac95eb07abdbcbc306431f232157bcc8535cc9e0385fdde8ba20ec93512f386a8655d8c61196ba217b127d82e807e30f71e1637f6885fe61f056014835db14c851de930a819c13053a63282e2cd9d60e1d661a291253d197da57905ae58a20ec9c5ec48a4aacfdaf748a495955209061e33ef994c2716969616930a655d5cacea25b3e1fb9e0e110c0c0c0c4cf46618f84e514e9a59d955bd338622118c09eaf3d7fe9ef37beeefb96f26e61eed39279c739b74f6494ed32b3d4a5728a9b3c0d9e09ec3376d953da975d591c60596892c186456443118d6847d7be80724a6acc0a8ecf7b29968f49d0d1fb87590abcfcc590d315ddd308e39d8047c6b46013f6e1862a487249c624ef1e5cbcc2930384e8dbe1f8eb6ce24b2725e30ab8104f79a17f7ae1f9200e1776cdb01462803e450360b12c39c0d0e3661bb8736d8cc067eff1de09d2f1f37941f7f468d7bbe38659db4eb6649ebf5737ebcb5b9f3e1873bbf5a986b0cc49d5aafb1c6e5cc8657d7d7b8747b4f47dd3ae738756ddfc1a971101870e7b60303eeb4793e343cbaed007dee9c9c8fff214b94a4bea669de8640f950c2dfdb10d4871225fd4aec9379cfdb53d29b6d19f84a7883ef034316620b2ea005e40789459837981feff226c2b11f2f0ff03292eb1a7f3ca2be08b0035d78e19412085df9d1794a09a8dc77dfa52cc3cf908cda4e9e60828a27a078020bc7814038e3720efb3413a71e136c409140020927b5561d211abc874fc77b4ecb3ccacc8ed332efa30998b9993b3a43cc99b9991bd51cbdfd4513787333b764e6c8ddddddecdcccedccfdde7bac7133f7637ecc0f8b42f38b47d572ea3cced3efbdeeee7e19dddddd3dbe777b7cefbdf73ccef75efeeb6e3ad9a2dddeed17f6b2b77522108a35b0f0bd85b2eedfdd5dc55b6beff6fe4da4831d2cbba2b8a2b8a2108da2186551645164515812a43590420a29be9841c5ac27d613eb49267a22c29e604fb027236b85155610c1c493f7b8af0a31586f6f5427c6a062d613eb89f524133d11614fb0275856f3c4a793345407ca3c0a03083baa735de7e1363f19977cd995527b94810f3c7613241229c695f6e8038fddc44ae9054e944aa593c9648a91a53d32f1c46337713af99f3295bfd7ff626c698f4c3cf1d84db044b8535b8a57337bb64f94f161ef558fb55eec538099aadd37aa13843207bf1bb36e10f293030e403a0c091a614e1ff0c361e6d90c35cfc75692b4a4305b58c86fdf82f48d32caaba1581216ee241ee12402960f7712c59b70283e766565a5e44f47a765a2946640759e0c3f35e2d9c0097346d8acc9b70c7f4b31994c2c6c03853a9d4e2dd0642d0b96b2fe2c99ca084ba68addadc3a9f7a20e4a47670896ee5caae3d3825d161549f9b0d58a119e65f84e6a6cc112ee96c40e6ac0048d2c10f10424262023094220c28f0c86a04409f46209030f67c1c543032a57e8c10d8238010ea0c878880f91201d88009520d0cc8129811392b04510860004168088502311d62c8115aecb58ba6f4a1128b8d97d538af8c18ceaa49b096b4261b190375cb79b8951d43899e8829dfe3033334b6666666666666666666666666666666627cc197ec439e79c33c61824638c31c638e3508c50881b18dcee30f06829eb4d8c31c618671c8a510adcde3f7c66f811e79c73ce8e71ce39e78c73ce38a38c42dcce3de7acb36e42628c31c69e7d7359df5926a8c0d46f7a183a126fc0e9a1e48b29a814810a5b1042127800852564e5313743bc87212a9840e366b77b4117c780858cd29b996b66de06fb80de47c5136154513906d6ba2624dc1794040cbc404208142ce1e3e3fd3b552803fb8e7023b082222ca105501a558ce1e3fd33fdb812aae46b0891201d7c23929a4774c1091fa4208c287e9270828b283943e0828beb72ce79d3eeeeeed3299552a858b1cc9055b0c800c3884bdef4d54489ce39e79caddd70596498716d9b10e66e5a8a112eb3664862652cb1691871cd39e79c424615ee94c2022a6778ccc0c083054878608512385aa021861298f0318d7027132cb38c26ae6a82248480041e10b1022bc4f8d9a20c9d27b6b866a85cc334250aa690924a2aaf1f2244527a5d65f8101f22413a1071222ae003842da421b4460e138a50850a26c68842d704fdf099e107c50923075e34e184215c71c5eaa78ca027c2b8a4a4418460c8890ea400a5062c50438b2b74810328321ee2432448072297943ea4696a2495b2460e4a17cfa039e725e5471f72d129a458e2cef99453f5e79b38c53f64e69ca08a1890f1021e4491441322dcf9f6883bb9b0c19d955ef4a2f26f660ae644f28449159230c41249acc2f031b3b873ca5009eeb4e2cead13127d880e375b0f426ec021871400f9bc8f8a27bab87d1f154f38e11c5b48ef76f87f23c2eef6a674b677bbbff710b6777b84afdfeb396150abf7f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f47885f1047d752fb1f0a3d5dddeedd6e7ebf7dadbbb7db6773b6d8b2f5831111d42f486ee9b019e0e865b0eb8a3df1697df153a502755825a5717bce974e931faed6077c5b4601f7358d66bd8c75c265a42243fb648a8ce51bd6488dfd1eb773c8edf4a5d7e014019e4f6e08eae0794216e18783d7a0894c1b70777f4e601bfbcc5d0bd9fd93bb8023c9a210818c283a0f6c8719c0cd7990dd6e90f364e10c8382377bc1ef1f94611b8017c04ada349c03938ca29c33d1d695838e15b000ef531bfc9dc7c65a19d943aa16f8ae2cfa1d81811a59c0a61d5c2cef9f3b6a32e4259f5bb8b6037307f6e91f71e84f3af6756b98939b6d11616b3ebadccae4f59ebfeefbd4fc1beaf69d78c4cf64c5539bbbe6a61f9eb14d50cbe16694bcc7b69998965468ecd88cd6a611042f84aabd7dd534a593578fd4a59ebadfa56a6aa6f5999cdb3ae4c0896a98c6098ff7bef3d7feff97bd9fbeca3a8eeac9cc131f08fba95a1bb32f463bbd2cad0e52f2de1d4aa94a484c329bf34fe59c12ccdffe732ed5ac22cad5eab35198d4cd689deca82cd6bab069f0eb63429b228a69665b960145eab35c17e54c2b9fc97f6222dc912fe42bc8f52128e81bf662adf4aab9faeb4c329242a8f125866735dd7c2d69da763347f766880ce27ac6af05e998df99e8cde16bd188e6c88e663f74524849d5a5c0fc07b6ddcb941dfe82b5df186112b53768cda12d0bafa07caed268fbb53ed4929638c70ce395fca97994ace7f1aa50116b6c484410c562961855766437aebdf0af415087164aa68adac7cad10420831138426cc04b11613f62d96c94b8f3d84903e49bb329b164cb6b450abfe84b0a44169d2ead734497bf14994a4bd0ba1dc486f3d6983356c41af752b6d1d8c10420e92482412c982d6c21cda955f81b62553d92d060b6377c4087663d46aad3faa293ba2d68d2ef2c70fe6ead7afd8129ad37714b32e2bb35979eb6be2d7181f5bb265aa68d1da39b596dcddbff458dc4ba59cdb59ced2f2d2a565eb986fe96bd872b73c6e169211501b9f623a4548efc38d6ee55b9dfd237c650db36026b0dd11fe97d5507a125fd2926b9b6a356ea527d95290d29362cbc777a6417d2c7d7c98d540da3059fa68c5ad8bd1da68b414cb6c5c3e6e45e293beba489897cbe52d98179701642a5a2a954aa512c996e4c7ec5d6b9f45a38faae9959598d3b1e4b164f9cbd1b6f2b6c8ca474ba3afbcb5f926357ffb3427c7b23ce96de417b1b60eba64d94ed69b2cd2d6b92c511c998aaeacacacac78249156ac15cd4b4fa966437fd29fffb212fdf9f3e968256a9d5f5b3303a7ec5792f6ae2953599256c39cad23eca5a4180e6cfd8e8a94d8f9a63adddddfa594ff7690d64b29ad4d6a2f4e19e3cb9fd1a547f79c95d880a1fa76d833eced947def991e3eadc9831ce3667ae2efdf7f0dbfcdbb8e047353a944ae3f6f98814a451791992164c853cc20e862fff741eeafaccd003355938c79cbb619ba86b9189f4c3183a1dbcdf8702e24589dd8eefd08891cdf76941667367f316a6d747b14cbde9926fbf82fd3687d0cc3b6ae6e345a7aa7352dcab64cfc199f462ab6b377333117df32175f0ac1ca33c078f18140b91b63eedec0fac7445ed51703e190d7035eb875631f99a184ccd8d6c18f2f8848cbf8d3ba75d45e5b67a516b6a397be3f4a3e8c846370ca7a879b3fe370ca4d9c12aa813a30c29c27ef51c29e906ed18987f1cdf7bcb8fd615c4a061ab73f42df7cbca7a393a82fa6a33f577e6589dff13b7eaf3ccc542c4fa10ca6977fbd1efdf2eb4ba1eabf47b37d676f45dddaf2f5515a3faee54dda7b3b5abea4b5fca6b574a3dbf2adb5e0b8cc95ac12f3b8973a7d7f8e973af5e95bfc743afde9c693fa25002ff10350fa97af24ec318df636fe7dd5b424da0bf13eb46d89966f7997b7f15594a96c6c31d8161b2dd98f775bbec2cce6a4ddf88addd0e03db568ce82bdbcbc3ccccbcbcbc33cec110da3c75025d3cb9769ccd54c52b316cd992b7ddfd03a784f5f596edce81bffdf5f4d376e7cf6e3dd1b5f51367c5d4aa5e7c16fff0ea3db9b28b3217e6f3cc05bdabad19fbeba608ef53fcc6c4e6fe35f6673fa7eada505ab2d1b4c90d3db781b278a04a7605e3ee5e1d4cbcba74a70aa3f7369e1d4e9e5b7d63bccc97fad91604efe0dad795a38a3e18666e3ab8d87281b4a5766431ca96c6c30416efccbbfdcd82476fa088000bcc3a0deca6c881f808d077801b075fda3a7990d2598adeb377d4db7ea64437b576636a7adc8e8e71731fd11784b6f437bb7ba609d4b6bafc7e8fbdf69a44932a0c77e18ad75b43e8239f92fa2efb82bff24bf458342ccc977d12018ccc937c92f69b00be6e4a33408241ffebc1e3e68272f2225167671dbc99572e8e9901f95b0a76ff94e0eb5682bcfa24526ccc93f69518739f976d4a536b5fd7ef868e450cbc897434d4d5b474b5b67477268658b39cc49122687e0578946ff10a71cc620f1e5903c4356793d5e90f84dd278809744d2de1d7d26873a54d53c302f3974651773ae7cfa73a4296d4961d81484cdbbf02b84453c4e7d3bec0f5cdc27658d3166ee9b5284116e1dd108a196e1d65d9b908e4a1aae65fca3101c38f5fc29fda14148d3704fc69f721032b14984781ff3e7c3948d5cd3506aed7376f7ea72238c39984bd926f42bd6bd35991bcefba074c3b61cef3eb1fd53c8608c1bbfe36016e30f6cf77eba1774e3c717e2373e6d1a19a70960627f3c006fc7c11b987321ccf9df46c2f6bf21ca4563eecf992f77ae5bc765ef33535d17bbb33b3b650e3e4ec100718716fde91032674aa849e6278989d0877c5fb526f28f803b4c3320382e8494524a19b611d6ad6f1c58ebbbc219b7aeed3b7be6acaf5aa6ba2eeb35b11ddca96d3df481523885c15b99b3d9049e0f09e13fe67ca34d30d71009e678e5a3a62c8e4b2407e6da855c88cde4c0dc8ef585cd8169504c2e95258c824978a43173c61be33e3072e02a581e3c666638ee8180ac2b582018ff47c513675c7fa8c1f8e6ede296ffcbde2359e6b871681a9b1704b1ccbb2f1062ee5dd7dc8746c22d0aa2be98f7ccc91b4f87fcc6e845a977ec186313466ea8d6c5586d592e7a4fc7252408e883b44526ec9b328534eef53370ea05ddebe5c3a0001e573e91eec611d48dd7035ef938702abe7c548e23ace847d75fdf3da094b52e8d6f604efea535134bdf0876af2762e4a652ed06e6b2bf341c98cbaeed01cc65fff5afaeb4fea5d5c78153ef4aeba78601b136678e5e4f87b0359de3ca1c36fb19183865bdaccfe349b9b2d630977dd52ae7e054f79796fd48b3ccc9176926e6e4370e6cf61f233f83d4b22c0c7bcbb2b61db0adf37bbd45e9776643fd0bc3b04aa735e984ccfd95af2356d0c51ddd37450541f791ea8b3db04fd6ce827ddff33bf8f0611118e10ea34b9fdfeb9159daabef661a5ce3625ae7c30f407875314c74238bd6b89806936d34601fbf08b6c10059c08dbf801b3f6e3040bad7907f045eff6bebe87d2f4898bd05f5c5741e743be27898a96af62208e1bf1de05708256416bda45a976d1d74adf3cc12e9c6e873ef2ab136c2360eecd53bccccc329ebfd67fabaaeeb5d8b79774f59ff9bbfd837aab3236cbb61ae3f66e42d39227dc3a9d78243833a1a640297409ce61e15a8c51bb5d0a772c54b71108fb3e2f5f0ef8754a00c924bf0641aca20375edd68282dbc31104f477fe749dcfee7ec9108b6e39d1798af6198d948e797a958b4e66999cec2ee6061e1bfbcb4fff23053d9fb02a3bd5b19736bbaee5bc75febc45e96fd48eb6eeee8b18a8445a277ec5ff696dd5dbe4c6e9efdcbbfa870f8967d4d5f1c5a1078adfd91d6f1bf5cfb353bd77fab22c709a77cc3f15c0ddbbff0f09d535dcc0fe0e1d609e079739ecd9dec70738b3090cca10d922b5fc4228701225ff436f245f2452f829f699dfc977740cc8b200037911200bc7df8823f0effed6bd43091d6dd5cdf60eafb4b98faf069460353371a908c6080d4cfdea67e36aabe3973f26faebf48ebe40700c63c7d6c1329b1743bf20078cf6c8879b8158979d156e485872fb7237e63367fe15fbeb320f65fd81eb71de9bbfd003617c076a42f8e1a70fcb675f0e2781c95c22ac25216002fca543658fb0a452e9f3ec4b17524b8a2ade33fd2d09d38d18ef475cd9d388f8ff55782b97ed7ac26eb4b4dfb17b4eee6bef09da9b4af94639ebe734a4451f02b0e1b70c4fc630ebef0236deb9da661f9a694651c80e48e44315add8a689a7c59105b8375eb6b54049f04e19f34d1d77fe15944ff42fd22f5315bab632fb3116d1d5fd1c73cd5baef865c0847d9936836b2978e581ec793b4c73238b6d146ffa4b1688f65b2ad4335d55e78d1e86f7c0cfce601defa22eddd17b4eee53d03823dcc82d8c71ee3cc01483ab3a1d63ada6a7d50935feb8d2803221ffecb449b08e7b34d84bd66531fab1a5f8afd53981fef56181bf8b442df7c7bf9237eb77ff9ed6adad7740d6b9a7dad13725ffe86d60db92f1f00adbbb92fec4a8c321500b618ac8dafd903905c1bdb11bffef5f100af7d9801395dfb30da8bff5c616180f8d7af5bfbd8effcc7c6ed434da4514a21b5c276bd53d35683cec3e33c5c708a07f71fa0fa5eebd74c559dceb7c60603849f3e752acc490d420861cc5b613be7c9dea1702afb7ea7c229ec2914b751b70afba6900114b78343bc6a1a4885ca0af20ac2214ef1100d07e6a8344c13961cf0f00270de070b8bf3b046a59f0a8b6817e3d03d66aa2627ce54b409cb86f33e4ef32429123b1d3ffd9697f0254b96ac62b8c32ffa16177e5a84be0ba552caada3dff295b6b8d016972b53b56c315817171c98739747a46986607925279613e9a6698628bd9295d2ca4a0f4d3384e995944ca513cbf7c355d30c817a252614cb9b4e2c27f92c7f7a96377d3fd4e114a5e91d0e1ec1a3849326a04071bb4f268da449d1cb67293f65ad486459f2cb29ba70652a662b53d148c5768f8a532982bc7595aa1cd6dea1d45a2a165ec83b4dd339b8fd3db8fdedc4edad773ae7b9fd3c4a6846883017a9b0d6cf87cd17ab7d02eb2faf214f877c7f7e7e9e96cbdf5050299eccbbdd88861834f164dea55bc75af3f44e23d149d896fb6ed73b403470fd7ba79178915bae6f41a25893040824e2e3e6adb33ac63825942ee34b19a3a494d2f894b28c31c6fa24dd226f476ea2fcf831c618639c52ce18f9c295e419438a7d728a1f2841d923126c49733bfb33b7672a55bf4de61fb079d7379b777b9bb093a8f2eb5b50b0392416b31cccc92ad231186386b1c644beb070eb2e5b62582e077372865350ce871ac7028be4be191154c065182ec75cb6515d3e3f6b6f04472317c1cce772d4a29efb19eef6d6f1b81d47843969c40ab67b423638d5ff58eb62484c22b9e8d630ca8504e18b321524225f6b6f8a50cec59e74c2d64f7d3bfcbd2ad29230a55b13d1271189688c4e5fa6e28f919932ea32a594d6b48c7f1220983ca0183395f53153d13adb79581a3fd5e2db78006b426e60ce7f44b1fd987455f6b08b6f0415eba4941fda5c4118c8d58f6d3698a38f69f55babd16660ce9df2a8699502ae3f296d99f3374561bbbfce8306363845b7982877caf7200b0a2d18e3be29453471bbce999e73fbe7ecd856d794a53e62005deba58f1854aef525eba58f1850924c3105e7760ea79a9c1a8b5a876192e6a4925a777777b7fcaef4a38d73be7398b3b622a522f4e55b1990d25b1beb3027dfda5a87b9fe99016981a5df59cba9ae5b27a7995452a6c230eb5f27bf48e9e957b79e7e7fe93bfa72a3d6538b96348ec29e34a9d39dd47949b72272631d262db0a5ef3aa7733865531a8d9e8ebe864bf1fa7d1910b85ab18fcd80583fda4a1abc9594d5401fbe1df4491990be2bf4573295f5d584751684bec99405e966d8a252896efdcd3971ce2f61b77a8c9607a6653973d9b30e3c661e63c92f194515dbbad2d79246e5088e468fd5169820f64b5fda9a9cde3ef6f351f65d9a9cbec22c2b61a3d1fc8a3a6d3ea07c2c114b599092361f93b2a3f1b644295b3220f1651cbdd4e69766bc356273c619e7fc181fcb54f2230df347f56f58d49af48666356d6acd84b9e8194cdc82c43b7fded177267f6a7e7a4b6b72da9208f13e4e7f7aaac1cca7618a4e13d4bf6c996ac226a70de77da026f07ca0369d66c2dc497b3e3a87b99e7f3d9df033d5a439754a6d078bb9d1530d636ef4f147a3b781996a56c66036636c91a3955f79092184107b10420b2eb92553a0dba8d4ac598872142aa20100000000a315002020100c888422b15012a5b92afd14800d7da65070581cc8a230465110841022c41043080006802120244334ea00c54967018875b6d58b55c0ae2ff8487cfd09755f91c47746cb7af41b2aab27080257660ba95f26053e1979baf8e32bdf612d5e5089d2bb5e053e6811384bd26e5ba3a5b5d401655f0e45422940983eacee2d41b7b37d72c90f7ba48d4c0f11d699580bed33415032fa4e3ac8419cd4c82435d957f6e97961f8bd82b6e190524305aa88417aea54436acbef9620b578ec713f3e5e52250e38ca0a0f05b036b45559ebf3a0d16c1baa7f45a9ccec4f2c547c4e8399b4d4cd131957cf50a7f721f76c88edb2ca298e39eacde01aa6d7a337300453a7edaf20d6b3d162fedc01020925295179d1aa1996c63a4b7d0ac70bd1dedcf2517ec8ffbd9980df2922c218f006506d3e254079f01bb2ce800cd1a370bf109d6310d6819b7c581a94250aaee90ab1142c727ca517c1205da9173b2524d0cf033b04aec17c814d89414fc224f059d3a7f40a2f5e664e24d483ad97bc842b8d32571e79c01e5321538435fedaf18cf12b6f82b59baf2e83c9fd687d6e63f0970344a66e80ead622558c5536a4e7027642b0b0d2fc7f19e8ee6e62e976af0e436e0e872bf4053ed814205301d7d03e42b95238b4b993b5fbfb16c37256fbf6bcbe004350cff1bd97a3a0b9b81a0224fdd0d3f3d9aec9fc7897590090eefd5d57296bbb14725bae1ff1cf5cfcf276de7cc28636fff3cf812f5d5b580ef8eb10ac84beb76d91667a185cb5397c2426f1a2f40711b7e18a6f441d2ed58dab4998cb01faedf0c9c192cada2e05ce34d6068c27e01d869c29831c37ddd6869a6f28628126898f49270b3a2018a2b8de446ce7ce4d904d46eaa956031dbd5341e3988aa65b02f38d0b23d4dd7fa24f4e2398560ed79b92f808260f2206b3496da311564fa0f36719eb5f34663de99d87e2661697aa5ef071ee9dde13a4d0976e20d708116c74d7042c5d6a70446bd08a9e8e025ae56ae50ee231bd084e3471a5103db0f34a1401c59d30976ba53b012de9d18ccc5510f2f011228427023a6b30bc27a4dfa142e22f1afad2d6eb64b98aa9811c31c87b338bce01dd83082070e7e024d2100c7352fb43f794552c4af56a8acfc4334fae7bbee76e191c12315e7cf86526d887686d70e36111261d46be794f04e7272e5865eca9c53bb96191c17c02f21055867d2154ea28979fdf9328d6939fdb2ab5acfeffb0fb9ea8e33dfe053f2660fb024ec6766f972da92a187441408978bce736c167398572f656a5aa3016c7206f7e5ff856d44664102e3e7b9b00ff22e06e2049859dab95400ceaf89e94700ecd7ee93f5771c5515542858dc4a36bcd49b699860f378b619541bc53427cea348168de0a093b574d3af0ffd4e26d217acddd00f273cb494a4cf9dbd285a2f4e02956a7c7a0ccd552c335e4318adb712d582565107251f9f9b4486b989399537768dd07c68bbd96b1e1ce8742ca866f4826a331f6ff7bdb45904abe09991a66fb0499b724fe86d8273d0bc18d8e0b27a6d4a0865981b540cd98ae076db16f4242dc86597d5de1434563a17650e02769f3b2f4051513f9d3e94369ad93deae9f087c507ef818dc370287a2571f740b50a540663b07d4c23d280f28e7b2eb0272ae253cf965281bc3a947b4f9f0591c9a6a3623f7b779a399b194616371df1fdddc9c16a47e93248cd0fe382b396a470ca71ec602fcf4a74519f0da23c6c1efeed8e140f3a85abacdee51bcf946b66b16e81b165d5c69fb87f03e01ca876e506e02fad393e2fd2488adc036e36847f77b5883f8f7c08c79e6db27ced74e2f93184113e5035d77d5edce9ceee79263144010a4d57dbb7e869bdc09110ea78efed83d942510dd64ae4979bd3a488e84cc7e0491dc31472a74113f87f402ce98c6308fda41d3af151cd617253699ed84936c55c07f630700cc5f53c9dccbdbced66ae7cf10e31e00402d6a42b852ac373ac17deb0606b61b10e853a05192ea46990fbf346db4c6ba18b584fbe2864a5a2820f225d72fb9a503b099470de36cd5ed8682630d8f31577106cad66e1178784e6f0a4ddaf3cbc563e50f1042cf3f2f4b021d3990e1d42fba43896a1452894cb52df4273a6e34622020461ea9660e502068b15cc700ea8ad80ca8ca4b69641c05a238c5be3fa542740ca9cab76bc22e0f7f14732da218e93ef22a4808c0306fd1bc77166d314311411268352e220ed19bb506eafa026b35cbf7ce1bc9bd7d687a1075c42553111c2aa4581cf41824b2f92cbde422364e174c8c0d5670d5da7bf3231862eb0771e51a2ee61dee9ffaa2946716739cd4239c62960081ddde2877b12290b90993adae84d3a1ea9b71c649b95d60f4ec12c7b6c18bebfdaa567292b0fcfd228d5bf01e6061148fb59e631ad869f2d8058468f3d0f6b49d55de77347059bbecdc2cc04493492d90a1fb80b68d46c3fe047406fdd631832c2fdcae33702eeccf1a57c15adc8c88ee098d2285892ef8440042e8f6e972c1ba37a971f03db666a3fa78ed9843050d3f12bea964bcda389dc5b4fa0a180d00bc5f8fcd6a2103d690c2fd9ec4aa1edeadbac80b8c2cc9adf39294352cda624908502e57d0e590b658abc9b57682857be52687a5e92c271fb9f72d913804cc0883a0fbe6f7e78f2fa790916cf869a7698c319f0e5f6e473855041dd55325b9c8eb099782fec920b83d44b4e1e0a83800f542a13b28532571ffb416cacfc957113b1a9ca79d2a89ab0ba24663091b3661d45d6ec8f0e78f80aaca69864cd2ac7926620a76f82ab95af8ca3a46373ef7642c190f42f0eee45be10b6f83474ebc726e6f718caa7185b8ea5649fc463b3d909729d6b834648ff504904abeb069abbce74907800fb7f2b5c6dc6db438e4a5e88d9d663a5511684a8abbbec3844dc525695852d8c119167247699ad8388c99b460a13b8cc6fdb05ad2de2c334af183c9862418b3553ef427a1d12253ac2e48e4d989788078ffce7dafaf4249842f63eb59a3aa45eebd5da61ee7d2c16a95425cdcb05dce1ff7bd209b5d6c581d6f8f647443696f584c0c07216c623eae9675ae472978290337d05bb07549cd5fba1807bef44313de98832192ef8d2c4d062e19968895451744f0edd7d548c6dc07cfe5f8fb0f572f556d1bc1ce5bf1d264a01eb40c6a10c4142a580c86dfa7b4d15de5a2ee9c24d164980cd2a5ba3af2dcc4e552a92f52d72bc6a9133dfec535b2a121ff6bdedb960b0964b2cc21f04470a3e9dd88546ba6398eee5f24af0a7b5c5e4438248f7f312e33e0051ab18ed7fd36b049b067b7554ff58852f37a55187738a543b6c2bdc045b49963497c534c87bc4ff78ec1afd1640da565de615c5e66af1b3845dc6875a725cf3872abbe6104107c8c0ad8e14387d64bc1e432cd49a6d11f83667cab526636fbaacae506212f438ea7ecce7f32466740482af21e2e900c09be00238809b29930cae550bb74477eeff559128b7476a8be9bde21aaf7aa109f0432d11c0d0aae69d64ae55cfa5e426b81bda6d16d40944b79007a0cac389ea5989b7f263d719c3496991eb8f0ad0672703620f414d4845b29387a97fd3a412bd88534539fe412d0d2befcbd7d120384cdbc6201440dec1dc9bf450567b8b033ec5e37edf0657783c5643b66fd0f81998d8b7cfa6103132e50daa29ec9dab9a1db7a052cd902b55fe139e912351ae631d6a01587690da88e3cc6c1f7765004ec0e218546a96ad8f0ca42f8d7a429a6c97a422aefc4ee7cdb42d8147b1dda9d0f8915d7b3f5927706e0626ec860fb0433be11f5b18c5852ad761a8f39aef58a28f39f0194489bea7e3b5579c9e9d6c57d18418ea94ff5a41523a77863f68c45a18ceb68480807113448924f34149a16c4aa813259576f8386c2490f3a8a202339be365b0184fe7cf630a562597eb191ce6c4acb764d8784db1e2c0d0aebcea44101c3502b32cda65fea9d284cae3cc2c8916d3ac9dc0ecebb39157d5bc7972190c0ddafae115ecc7ec6a25b8c62b478d7c86c06a73f53923f95a61283ea689d2635f10faac8150c9d7eca8ed81295c96fa418f4877890f525d085428cfa7f2d9a7ebcfe02b2ca5a6ff35e5b0495a48995af09c0525145b4bb9afe5bc8b8b3283a060325f5d95cf0e9b5d51a9c699cfa2b7742cb9ca14ba8d75317b30f8ad295b14772ff830d6c1f9109b9c36a277b06f7927a4e51ca6bf6498c4dd2cf9c8e73b09f44cc4b005f43a0d78fc1fe14cb0fa55a3f8dbdca2d1b353aef9aeccf949644ba3c7acfac75cc221d2c009e15eaa38ec6cd498dc0161f598bd65d9dd8383e5e65ce08923507db1ece630817e050c35ca7f3133124681477336ba317677cf321b19479b00329f0eca9c089effce413039a5f109eda055bb2433a767e4d1a02a30541df94ab165e87d346479ea038f39fd08a3e003e0ae10678a24649f798a3b197f23e04a87edc68302c60fd4b842b8dd221119aaa9767ac4415f17f53179ef1b1a53bc217e49950131d4957cafafb8ad26b8c23ada30332d386b553cf00098ee87e0f33fef09962b68cde36a3989f916d9c0c9d6e80db5d1247c0eeda6d373d3d4ff72c0aa3b34c37e770531ad280d10c1642ffb97a9506f0defa1d74ebc99a5c64e6c03caf314eb0bbbc2a16cf60e69092c34c6ad3b5b77931c44ee2402b8384ddeb23dbf8cb54003d86358688575c7129b97e04e6eb88b8d51681e8e390dacf0bbc2735bbefed0a03886d27c808ffee0014950b313fe874fca0f1159b3a97608a4fae728a2c03ed69b51b90d0fcabf11bc27c2052faa26810b8415b5a4fc08b4c78938182e412be58b68b8efcad23ae761c2c0c70aa4b82deac3851d7681fef3af023046273332e6e47133721c7d366c2a6215404f32ed13ac4446abcca0cdc9ee522079d1c5e66dbcd5fe0885d970d19a292e3d28a04719d5f457dcda6c6f9543abc9f453bb85c7370f9fd54ec2802aae2417f35c0e89f2b67c61e69cc9b37ae03f386522b8990347d5b595390a93f05a30bc117247b0fad17aae180a2bbbb6bec27aee90cc4774ef86c1e22b28d42df8f6e5e454f26bc2d264ff0921ac02fefac5492c5628d091002f537605256683de3634b3e6e0eac4f3930400de47115cc8eec7f17f5c5cd9d7a8e2b886bbb1f6182425be4c6aab484c92a9868af7049802784c1760cd9365a6be6dbd03dd176a2b6f7903471b67133c2dc86918f6010ae704ae31eff365a103e986bf278e35aed0c15379e318b69c964100ffd7087c3c8b682b136a04308c98366d9255ef416821b21c3653d1fbcb784996ff64ee160db2659872e4b17ea205bac9220bdcef7ea9d62953231066dbd0f243266a3880ccb1e7d21147fbaaa300c134493919703bb3c8e731c693b413278080373a04d56d5c539766e461ccfe77981e286932282705a3e58dd890ee3b4d30f089b0d294df409fe32aa17713991bb27ebe621e89ecf71ac86e182482e888f4bbe087a506fc94c7883d668ce10c49b373474d51898934fb97911da8734244683cc89ac9b28e4fb3f4e938302f36e6276b6d904479cbf01a0b94f968d51c2eb905cf9e582e434fb90e812b4d877c2db631a2028b2034fe33079d2898657b6dca438efc58a9a0c40fe4a4dbd2e01082e0712f2485569bc4a0117e52d5d2b00d6dff85573d95e4c9e9102f20d543bee16a97c0fe98c0511268e6c2758f189d1b7bd4d78253d5eb83177ddf0dd143588502e00fa27e30e33af3a820d3d02e100cec45a5c33ef01e63cbbc283ffad616203963ba49c09471928e5e006b0b4c66ea7b5d45e0980364c387638bf7154510032e0e660f38059fc1200660647b4f8d865ebfb4c9b4124030622df42578b1e610ab9d9ace7344080f6ad7ad8f0007748580c98f6b32123252835388dc0863b4f8648860934826210fa0cad825231b2d28c1500c87bb75f972406d81487027c210f93e7da31a38b4283a9a606ea35398bce13785e98ca948a5a59591fbbaee76fc6adb417f292f8434167acdb47438d403979d6fb74f3fdd2d4aeebf535ac6800095024cfe817eafbc99bb6484fd30c20b21d40a28688a4bb6fea313ec77a78faad7ef992b249a253d41dd63fc1e45a1b7ee1d4110f52bb2eb6b5c45e8337da067cc7d9bad4258aa68caf3f6f15a6e9313f1f42c2d0275267b234e705e171efaafe0dd7d8051ea85d6751884e2437f187b2f4dd0529cbe80d8bd8b8596b2023ed5978d60c664ea3a352e6548f8db080becb1a2aa55e0f8423e07356bb6eebee24a32cdf27758465cd9b6d04afdd972d6c15e74772b371ece2769d626c92fc7c60819ff89a8d0645a43a9a4185aab96045dcecb5c37a6c8c6b61d703f13639936c23864bcdd7d605761848c9556a35fbd7f6ba7a421c40669067d18ee6fc5e7a605640eb286c903495a17b993f27b14a9edd9d7694d7e284c4ad4403bdf785a674085505c1da95efe9e8c279ff1c87f5065dc3f98e72a7c23bcdc5c41687405ca32d7464308d9ecb8c7d54e011fe2b6047ba610ed305d51a54d249b126c6855e6870d5b0b0306eb13ef95ae5587da5f8a0a2d3125963f2c19d296a810d9a2c5966fe81d2f8265f48cb769d692c7c74908716b53ab775917481e7e0b1a72a0ee4ae40e6faf5176973b5870f83d928bad42ae6eed4a1a7f1d650afe3415dc80f72a3aab410ddb2a1354d31ae5e03600f34c8c5829927650ee46d27c5816ea14b8ea1aef340fa25e87ba59addd1242791826528cc4b6d1da12c98249d536618a269a10dc04da4b509837fbaa1db5414b52755a2a24397855809ab0a2beb62c8ab74998dacc52f297ecbca86eaf2698180a2a32fcd9c9dd3691ffc26689fdcf9a1d9ff1d7c908f974f6b5a0dcae04ee1f26955cb3a0787038b78b50cc0f3f2bf3eaa1673ceab6ee6eb2300ee5e453dfa370a1502f6521477e15e41e623fc9a2038edfe0898a49e0e87c379ecc96091e4f0c13020555ee8dfbda5713410627ebb2bee022dec82ef2e3bc05c86e94d53aceceb060f47c86ba738afee3a1c3816ef1545f42226e2a13e8e13828885c17e3cbd412da49214c11bd4965b982ee7eb095a4fff9b18bf416d8dac08bf09ba157c8bc31004b68f9c9883e763fa3d6bfabf16a8dec119748582b672bd8f4665a042b75d220a4ebea0d7cdd7da69abc1eb21e35241292d74aba1c21c0b2563e7ace0f073bd88f0d12c10bc61f9de6dc02e59fcd231d68ccb6a371013baaddf547b245a65ba320cac48c36ddac67dd62685790a5004019c182258d1a68e73ae11bff9265fbd109e711777245f9dc70707aa6110579891d7c02e2ada26b37c5cc65c18f95d02ac0decc7942c0837b9ebc6846e3467754cbf18144ff5e05d5aa3d1cce226c7239cc507c7492bb63f4d604b93a3b296d406e9dc8efb22d93bf08670eeba85d18d0dce5d22722149b8b1454de8a6184d5240fa764eda4cc4b1529b30a14bc896bc923d6ebaaec42230b78b5bdccbb601c06365f81107f2f9430b548ef3f28acdbe686bd06b1db3dae42fdd399c329a377430c74dba4ee8e67ce5269fc2f6f50644c5bcbd8cee92ff8abbd009a1280a3648bce3748e1a7db0116e9bfe78d2a9678ea546a492d486a12349c8fdfede30a073fb251c882f1b62700833aa6b62169c9934e4a4271e80d1b07d042c90065b1528514dbddd20cdbd731f7d85b01e561084827ccd888f6582246e576b089937900bd176b229df00b3a0da421f04151cb9f1545a812272c7b69129897765dca884e84f9e1b8cb8aa791df50522297312b6d92948e39b419e15382cdef54f4dff6846b6293681f84a067c8f87ee74a305f2ddf7ca9b3b371e946924998c42fa09eba70decad0fbf93172be5c3de95c0897aba78ac964be4eb8db5ea6c60a995488767569d8c754321a770fb41b640c2b3b3186d69a5e9fbc5256cf871a0c6974801af4176ef02b654e948a2ca91bf7e2917aeb1f5413ad4cd847a71711293d1075ab67a33a1004e009460327f8004a0deae85d7c0b5052e605596edcfcdb76cb3a1a065bdfd1cec7e687e8a73acafdd80f4957ea3882b99ce4f9a011359939b1050caa778830ec7b0a820f7417f096963ec361f8eef70ef7092d40f209dfcfc1a30ef1593931773a12a8524481728a70d3912f2f33c0ad16ff6f7fe7d7b8ca1eee994cc224a5190b6733d8094fd3a317bfb363685b06566e2430c1cf6193f23a6494c80017021a8196507990f88fdf02637194ff84d3bc02e745425e0b1c5a2ff1c684f61864a91477d4d000f4f980c5c802c01f3c49b2b388e316524e737e098b7c041510a59a895ccc1746bf44cffd3809e4260c608eae05ea5763c969c51f6662b54ac91a9ca453ca0479074d4b5fc44ad902291f53f48d505679df3214099511c46f41c6df30fb9a8b4c164a5e26bc592eab4e61bfc9a2daa2f1dfc592a708d8face44d1a5fd448deb6214eeef157fbb5855a406ec259e8c109b7d037b228c18ff82072474344fa9c896e699c5307a0282992b1ea0592740bb7ea9d4ae88675f725596fb1ddef0bd9e2a7463e984037cd30d0bd8887e114315d2ce5fe9b72d0f8df998ca3c1f04f446b50a2f665d9cfec307ea44e1ed5c81a0757c300e1b01d0655e26099c7ea3020d6d71b41f8df10b52c94c00b1d3a7dadd54c0347251d95d2c21a44a643c2f442d7e00ed887b0e87819e0081a9b54c663d54c7169b82a55a712b9591746a8c90a178066700900cd6f209801987d2abf6429d8d17b4a615e2399c4f7cd5721f4c1e11f246c596d28427cb0d87296cd5ae16ec68028072cb82eca576f044bc5007468917e0891a8f89e157b13c9be9abc4ebb601f920f89771fcb5020235d404bda513e5110add72ff059e1ef6bf49032371ddb3daf7b712ea42088cc73ee68a9685ca55c1d497417b1d8bc789ee075a1a25f1e030fc87bdabd20856363b156e5fe338b746314afd8443176320e2e094a77c7bd18a00153161e2c15caefd0dd9a931f43412ab44f568406c22a83fb6357d7c2b79d01828e7a8f919216ba78ae1b7eeed2bc9cd66b41c67341af56ad459f8a07f2ba69ea3bec7c8eb41fa2c77860ca2449124f4fe094f43cc9cd84bf06c1a713c7bcf46a88c457c80b62ad01e819793b3d2108935e4089bd80f105e1b4161a81b0c9fc402170914e308712a0ac238266a54d838917aaf3abc569715af9a140c09ddf1f09118a62c5f8898542056363722dabe24c92641ab471a213d50c0dfdbe19acdc4aadea731238a5157d74699470d1ac3d818940ac6418db62899581af62400e9150d4addd1a21522ce2ae12766f24eea144109aa51bc4511d20e546a8600ba41812578b4b4561f153061e97f2a0ec5db42fae6bb995c8bea078245e6a204c3ee4021604f8673b3efab3c5d5b13267852ad71cc7a809b43baeb3c1565cb41148c82720d550e45e959dc1b81cb2a6c2c58ff76408f8c04b00686691c01743d382ea1e78160b05bf8b76b7a101b0b3c22c5114444810d97521dfa068f4ee6a8ccdf0280f0ccf23b0cb039d18d42c7599988cc0ca0760c6e5d7d41ae725f08d8c2835b6a2efcc1c379df299fcb26a3790c1de9f7261cf6d8a95daf0a1b096ceb31f78c12d5d7e7a08fbdf9237abf7f201242fd15e9712e31cc813d01c300732c6a9ba88439cc3f8c9742bf5e497fb758eb044f4ab08c0f8289e2a76bb72dedc990062642733bb709065b8c173538e44aa8b2b6882198075eb2f08d8ad9644ce00b218dff486af1baa1e59e1e0d39b8a151ee396d8017376776c254d4018c38f0b9a11b8875818eb6653d10894292866ad0f43eedf43489791202786125325e90f3e4159c7d355765ced5e0a42dd9a16ce139a6247b0bcf8f68798417893433c5853e9cb90eec8c5e69e308977019989fa712badff54b827a67b8e30501620cd6617e19404bb3122982f9453827da7fea07c3855cc4838ed1384b3f7be54950d5144f6feb22cbca9b08e7d67a8f18b322afcebb8f800403c96df4f0ad4068ad378d8f9b89c4442ac95481377a7928df7ff037d2f22b1c0d819228f8a0972268510be8d07822792d4f66d8a61f5df007f2c48752ad4e52a9741537f6d8f5e46df4b49402a890b2de5531ae460bde28fa0b0092146a40a57e94e729d9055df199fb38e8fc01092cca9ff91776530e6c181f5b37dec5ea84241429884f3a6f0a8a839296574e37d135d927009b4cb26e5dfe00016dd166dbfb38928e18a3d873c918426f01c1da404f11dc7be600af12373b1224ca19bb233abcbda85b425e6a0a619ed06f4f101145e855db7e9df3c209974f4aedcdfa645ccb8d0b6654ef437a1c187cb72c0e8f36100a02266a9007a0eb06f8aa28426b403bb0531c639e33372ed5a8cdb3bba239c536005d071ffbe8fbfe8c1ef0b92a95591a653c84ffed872bf22a320d52cf6f04828b9a3f9a319c781809b64995f40bdd565ee6808123c9aa86573f74431560dae9e3a7184538bcfd82abbbd4bcccf7b383a867cb4340ec437636ef7619f6ea93cf8b3ccbd08aaf862c92df5e7362cc13a0248251800057c6f4da869f80a0a0f50d484f87250fa0599ec7b6e30c1c58c0f191b8df856b706acdf041e559d96ab2e92e915b4a3fa4a472fc31d36f23c94c59d0dee250611b6cc6b1f054c81c00636e904af21f5d29b4132b804d5abce6efddc62a81bc253069c6670431f3a863e21833b8aad2699650781cb596ac08cfbfe7e038c56d88a7ee1feb94d114aee76703af0c855ccc7bc013154ae0043c94def90643e4d5ca3fa7b7386395d0055486453a3a7714b133109b34e2805f740f74447307b88e37cb94782b98de9f087c0815da79976522a01c6f4068002fd91b7b7112667107d8074c8a5caea6d3eb8f054a94945c0bfdfbc153f02707c4f2ef833673662c735124d49858d63e7f7f3a14cc0a4bfa00987055c9395889f5484e184d87c1acae992be8e770d39027635744fbb6ab99fa5adec724e710d3d1ec8063457b2736b5557b2d722fa191586a7bf3e93dad7fbc0b71c95cef8175726f3b7c8eabb7174fc513cabb34e55395c6bea74631273253a9c1fb843386e2250d11ba3e868a05e4bd32702ed8c58f5dcba627e1f81d851571062c0c0da331711377e214246bb2cad851c18426605b567a574d1c0d83edc0e19f490ee50b286f15eff3fc610bafa6e6dfb1209fd4d889f02e49d8e4cd5460830ad7bf4ce08886ad69d85768bb340d47bb18510bd9bafbd50124c4669fa40c27a48ad0107a97352dfabd9144bcfb4ca790e86e9ac4c1da99ec4b85d71c759af9665f0334f78b89e5978332420e2414182a3f45ebad725984b2f82d7f185fe926db295dd386b48d20e059c2a655a86fbea02066e610c17701d400bba0b2c5295e2159adf2c63eeae8d5d5d835433e92825996ca2872414574e6e624d191f5541a178f98cae26b66f57c720865fd67d71a747cd9a14aa1a78af3bada0aa4cd3550b5084225fc146b0d2c72bbf74ad5e0f5c8face850545dc923d6626eb81ec1078d676dd6c310be3dc104bfc6b20f9f3ddcea0554f1c44589b26eaffc0dcc9b560cb45f3b0fb32313469f1faa83ee673dd408eff8c614dc02c612346e00bd72143b3461f214bfad05df9aeba2470418e0dd8b3d13146bccea4a2c3eeb00082b83717fd7e40a142944e8bb639915a4ffb578ce19694e0dbc2a572065f30807cd4edc701250e6bb1d0983d0e1ac1453e507421178d2bab080ba1ef48ece070cb22aaf0f4c5abfd8eef77e60e75c7734d21b06b059aa502f16c5382bde9108e9cd3ff3869775caa4313ddec4f3509d7a714a6f1c14c37d3f508f536aaa4542f04e3c57d6fddb6aa30f0764760e8e3b27575c54000d94841e5e1532c709a2bc146bdffe8f5b8d86312abe0221c693c0bed6abaff3f8fa6e5dc746354cc635e5d6bce324cfb5fe5f574dccafb67366ce3abf6aeeac118a90edc4ee3f5e3e176cfca4aeb4c25da02eda21c145f78a4e8cc6d1234ae8cfc78b0ad737ac0bdf79f063b5438fb6c734cc6d7dd8a9dca3cba3b4aecfd8ac7f4605788658bd9fef6b6659b0fd941d64646fb4b98b6d7d6e8a4a915d3472c467a95972934d3c9b3f365b640be16452950abc7e020d4706c6c4739ab2ca3d429538f5f23ae5dbdd78c94ce46eefe85ffae21e7a540c94c1d60b7f4eed14cf2718c2a32de72b9694332016892815e44d3a79cb93612206330c751d54e877fb626598e8c0780d8c358a1d4a86157e1f3e93d4ff3f8751d42e22f73c3d4328ab30e16253fa57094ac363db2ba6ec53429beea2fb174b0285bb1c76710fc4eb87ae279e6a343c3fc1e7ca5f20b7616bb877fd4b8f6fe88c45bf10f28228b7ad4017265e774a2bae2d7704fbf20e9bd1fb9af07791682b9cee5050ed99076599c62eb8ec059fed83ff8128d4dc1960204fefe7f5c20c1be7852c265e192cec5288bb22052f8d590900ae2938ffda217d578e5744f285e3bbd83dc85fca99fad2cf83e050c37d5e344c769f92f8ba5d2ad123143b9076d76c0fb22f71b654e2b759017182869897915459571a2ed9b3641109ef341282614c42448e25c8f758be4457e953c65004b5456c542e8fbf1575fffab46f32c1690d6bfdbd5674889bc8ecb95ceb891f35e7662f71e62b7b170f1b200c8ce4f57181a600d5d54bac359df7138b136c2f91e9a8cb88e3d182808bbb0cc35ffc32e82596d710e4d3ea25f7be393aab992143642483f7ca4b6c26532ec3afd33ed116d91757fe6ddd77ae6628a09da63915bfb860244588314fa88655e0c46990da1a319c9952e8b4cba021c62fed81c2a575fb0b0ea65152bb7e494c325e5e4e413ed111bf84bab20ed34d8020da0e4288f1d88c6ebe53c17f505f61119876e57b37d59114b84dc020150dbf1d8d7b417385aba5f5eec5e1635cf8d294138f7239954b8e2e0bb0eeb3eca032b0318327b37afb7942955d7da7319f1d5c25efc58104f8c64b362dda9b870888a92d62bf50596a2c860845edbeec4a10e88bd4b112c600fc9b6e1c3aa22162097709fe8c8be8814082cf19d2c3a62ecba8aca0c1de1c9bead5d0ff1a3ddadca7d83b355c399aa4e2b1bebcf2c9291accaf023bfb7c8bbad2a07530292f33815e026169381de3dae4e4f45705bf3bc50ea33b0a5b01c2bc04fff618861d088dd88f7279612e3477ddaae61fb4f13c39ab755bdc1f7a622b55bad55572953d73485f487a249760a35c9bbd47b9234ddb58ea0dae4db0c3972f3b39b8bbc3ed84347d2d0162949ed7fb4b3c828f44628a4407c7bfa25b84977a1cfc7a5e19967754dcf7c4459f3c3f1369434f506cf0c5409bae249eadfcdace20c26ba9cbfdbc2e452cfe7028e8b03a7950e90cbe9c30188da545188c3500263731ef372b292cd60320e91c405e183d4f771b96655b382b6eb45ccd6dbde02091800b10b9ee3099876f3cc9a265b5857d490015700a6cdddb90eeea686ac5ea00056e71df3cc045eac6c433a33e7b9798a8e782cf3a2b63326a48b0d6210339cf92b48f8bd60ed3a41a1b86ecb6048269ba2a3769d11ab356947b3d7b4f45d5e4dd1947c5813d9c08a5722665620cb62ec87761e71f39a6370e013c4a73a725316eefc184de4e5c3d362f955b2ddc70b1d96036a4fe5b9c71c23e9c3e88363969e35824881f82308ec1f85beea0326bacce87e22f38b61b8b6f03a5a1123a0ae2f0d96a834972355f06ca14960f1c7e6a9c28cfe3da98b2c5c9b29daf9617968d254ea9c8a300137b3731e2443e2dc84f825a4a209f63974478aa2bfeca6c91e19a586d46c3ea6fa9c7b946804ad96634cb8ec4981beef5d63a0d66b0c141101426d6f9fc6050f23f09fc6561c72dd0d6cd383b517731e6e9e5adc986641af61c0852e87d67eede089c6b4f0d9242031bf9f5deea64ac54d027dc0ba45b96628551c99a19418e73cba968c25ad639958eee3400dc298150589211be9c663761f99b294073a67b2a8300b008d9e3a59fdd07184a3346c0e351258026a3f8dd8f8b518dd653458ca34fcc3fc2fe159e765d9d47f48c3413561afab7129d84bcf02244d95d42f47022920aff40d5a464b57b8dbde9c1c584d7988a30f3d8ad9356c9e41ea632509ae9d7ba7812c2c58f106a7709d14289492afc03112467a95fd3878f012f062a567c68d92c0fed907a2703472339dc950c4a47fd0343170aa617bf701a111524cf154ec3531497646167837896f4e35644ac7b8abdd32b01634e090309db87e62d98a1c30a441291e581201537c5a0614228a43b7e242483a2f3b05836f5f80aca7ce7d1bafeba0284e4604a5583289a0dfaabccd92b08c9e8787716d25bccd05f449c1bfd8ac4024d65774fb145231a3ef217980bd8adc6852b8e25fc992059299697b498e4d435f54b99043c7bce0cd562763d1bfebed84918bd3a9a572a50a90879151b9ddaf5892bf37e6431c8936a8abd52800b63407cb43291fcaf625e3f3d91c8bbfcc946e921d5009822152d49064e8d41492fc32c2f9424b3623a5013cb21b3c43a2b8bac0c628deeda606b91e91f74b236e130aae6f9b1de87821e6145591b19310940777794a14f4ecdf61df6705dfe9820250b3f11c70580dcc25552bb3a0cd3dca0d7166c18de4ee7a1b16b8d7c187a5ddd06b9bb893764e8202d2bbd29c6831e1598a4488ff816ca04a6c82c24a38632076249367c883de42e0f0cb4fe382eeab016b4eaf58a17958447acdcd5a1b565b0e7163956d74a3676dc72af56b1acd63bb6a9f1569640c5f87ab22fca7030c775e0a96fc90360f7c7f16ffa92ead5fd5941588041b491fe5264947123ec20ca809826cb18b487411d74888e20c93b2ad427961c3807781a0bba2445a410399dba5151a61b930242c241a266297f8a838e103292ac4bd8825878e98c5456ea608da7eb00060b0966e1373fee327adb7db641d91f68c05a4729f0aa713bc37e6d3eff0c3359ef78f397fbecce08268072ee46f1be24a44c01ce45a6322653cc677156988fac347a3730ff9883034d3f14d938b851821f5df69e4217ddfb6c548a1eacbe1c9e971cb9f2be3701f78698a8ec526c3faf18ebad23943fecba224a1d4c4411068a954ef42c41281598b51011445d2c64233566af9d5ca5a4d1240d046f24f35d59a120d37584d939ec775c0eb31329f83660c557f70edb7bd6efbe806ae37b08d8b04201e6270022566eeeb02658c4e3d02b78e2e0f001d1b7c5b94cadd932c01f960faab9c3c6802787c0d0a311da550a12f9f3944001cf7788be17fa062034b85c640df14fc9c1a40dae70563c95ac2121af6c59ef1134ee13f8a309191501a62865a401cd24eabdc018392c3a9b1c6e50a3986856916f732546e30fc0d65032b079fc3a78c4ab167a6e24f4a6f74c076a93f529fe05d9121af3e0d317c8e1ecd446fd53d948bfc4edd7d0b0795eaf282680e180d40f83f101ed49fba576bf72e4f469eb45293d57471e52dbfbc5cdcef20eaa4779bfeb1af2bb79d1f561a62b10cb19fcf5c68ebeae5dfc1f8e70011e7f63f99f1e6592c4a3e8c3b795802bb48ed2cdf7938df7065834723e2fc4f8fafe224970ebcd4c4291d24948f782af75a1fac36bc3e5f7cf407b17d95067fb4b58d42f4f68d6259d87c9ffdfa8edf24f1ac8e1089013359727d0c9db1ae18650a7a8b9ff33ac479776aa32b9885001ea889dfed14a05dc8da350e3646e829b56672c134f97094aa3d5e6f205f8a4dadb56f340645699101ad78e224fbc95e633b9d5d7a470bb9cca29b98348f0a8a2383e7a85498ed91005e08d5727f07045f9764a302eea83189288870a60b4c1fbb267e6d102edc9ae97b0b62b854c1efa8cd217d1d3e8072fe234e4f5a27addf22ad12146c88d54f591b1d3d173f3c502e1502ae829c784080e12406b7037f3e9ad4ceaa0a9c7db5b011d06ef48f9a26b8a6969c7dbf21f0fb9c4d8f18655a17bc4e0cd6ae6613e71b1227b6c0f5be1393b291c806cf6a43c9114cdf6b4834cee402db59b844b9ef8ca3d872d1b185f28d54824ed539f79725bc7fc41ce4214ff9093575a42376ce6ef8f929807db7ada7b8e67053a3334cfb46c9476c0627d95c38532c53b8395300815008cc7e84f7b0328c2033dff905be38602a841af379de3ca9fa402a2513492ace5f7974a1950117a3625743a244dc49fa10d5a7c317a6e4dac6778b0bd57e702805c53bce5479d963e38fc7108fd903ee604e61f2f9e7d821f9c14ccf61810800ce57fc2ac5ad41a5f08bff7d140db2a50a884def11684617e631d746b4c246431e1af38cd6a4f165a6302dc9e70bb20659eaefd809ed3b1239211c30a5b0a31b2ce401a37abe8f36644e320b699e2be353549dade07c83a73068b5b3052276016fe25884d4330265645c7cccd01e004a182817e09d39388c0c7a2c62e83fe2ae340fc709ac644572de1720ae1426eb7430f0e15efa05938b9ba782e6afd638e880b1cd8aa1ed06ad19ffcbd244f1ab7d041cfc0a4aba50bef4862ab024d5cdecaee5b8a5bacda8f604cc8bd970ef2f8df6380f505306b1f5dbe5852687ab14d8fe04378b6ec1a3ea1b28a3272fbb05bda0e4a12ac6eb8a3360b955fbba9196044ea6e5ec6d99c3dc34138b9dce4604e4035f767dfd010b0d12eaa5674ecf121b8e1a27e411e9448894d424e1d83c343a3976f0ce167ba9a23601e8f92bd6511c115e74fbcfd67e5380d673754bb8ac6b111e21e4549be68605ac4c444ec5b9a439fadca030098d9092bdda64bcbf74ef5abd1c0e95b86c07e4307c41fd80752a60e204c4e5b1e0d91a9b821310f0c633a34fb6e20b6d1a7719c8cd2fb9c6521848902470c5db32c036d003ddc6c485326f6308b562867b396e025558ee525c8755a7ef35f619249dc4468f6c7d52b8a13f46c79abf2453a99b05dfa8a4d8117c6ffbd3a99908dfe2369ce0cff5056be164be0ba9be0b8c0a25e6f498d280b687bf9a698e5c0f256a99a2aa23c7acbeedc0784b95c2e162571eaade53917886c661d8b78091bba4cfdd266a3cb943bec7ed8b43793f2fcb2acfe8256a64595b0ae8c25f1551a06c1c311c6e917b1bb73a4ed0259de4f8bf335db850e0b4fb2456e8298f28db71a6ec91e40523787b5dd40d639c8912914452b81490740e2f07f445c763f47fcff47188ad5a5aa60cdecf81f0105992955a501287aba2c110ca6a31b9283637f4fc943aea3f29165ab21a1417c7fde3713f6245b06e8685566ecda7526219ba960d4209868bc5e8bca881a259c319d23899e8ef2c30e4b60d17e7d749dd7853c173bf7b8f43ab2473f2cddbb1b500f59ed74cba0f135fe13194f4175309979d9dfd82edaea2e248d22c13f6c5f7225328f7476ef2a051fd850a29a8e311f1e24d46772c8dcb455bafa53cd6cc1a1a9c449acc2719f9054f0bae394568fac3a4e6975a21db76a4fb95de92dbca01c3d87beefa2a450ed698f11481713aa289b47ea0da8a2b60cd0a9eff9c1782d415d1f940901e5ee323e6602bdff1d80b64c1c401f5790d4ec07bcb31695744c15f9c2304b01a902f257b1fcc8bf6dff560a5f2480c7030e1835f5dfb3715e5c470e2517453e197bd65d0cbfce8c0801f0208446687015a040b71cdc08ceb22f3a72975712a7e0d55f11dbf774da4eda41264ac7fdacab8fb301f83fb98b8372c13274b1a70578196ea76d56239369e045c6dd919868c6514b7167b4009eef77e3d35d178e4e87a0f5329170d068f659f99897863fdf3f2ddf050249b60c99c09bb8151c48ba256c207e744c1f3788e0c1e16ddac6ff04fa0cdab53dcec07757642f25e65732b61131def8824c4cf6619aadaf1b9228251c190df87621bbc1ccb991e6d52484ef05dc838db82a4efcf653d8ecd6f52acdc201218d7031aeee0260e78624757a07e86255be821afe2d1605358d625e2d4414db5e1f577311131a343f22fce888bce183706e112a075c628f387834e256630e782b56faf1b6f5bcbec01d614b95ebed23b7deabf8d76a3d98ef3affd657f64d0f466ba3591c6566ade30abd61320ac8f380cdbcd222ad206acd7a621118574d4a853256d8e526df3363251d4f44cceb70bbc992a62614b45fa75353762c52d035767d8b5f8887ba4dff8ed437bdb93177a1badb20e2124104c9fa62369293a017ebcce74f82454473457eb4bb2da58169054655f18e32110d9c3846e5c86eaf8dc9829bb6c7dd808c4117faae5128841f622098d5823aad7691e3380d6a748e000b32c13e4dfa92ee73c779f31ba31e4bfc542bc1251118e437b5e318963e532fcb511829c17d79191a9f2ee735070e6c118128456c86111c3efb672921b3e4c1994d5e36e7efd8f669d4aa58778f0ed597bb07ad96572140a106a38908c8316640da04ad2c43a4d888664e570c7e2c4d4e5fede8b3f42ccdebc686b189208564a4c5e38cf5bee871acdb5fa44b11b2c6902cfebae4838bfc905f8ab9875209badf81314cb55c85ff14ee8c496dacf5424be36a2a9c720955514f513b12cd75b30daf0aa6b8fe96fa87d3c3cee1350e148db10cf244d1c9609a5bcec8c9b217da2a45a3409c7899734920afffa98465fc13fadcb7bbbd5ae694a535e3382df90e787eb3a25543aebcce51490e83a7cd84f94702dbfcdfeeef118c591ac28a2ceb95805806ac914bb44f498b606393687edb23f747b96f650eb1bdebf8821c204f90187a4d6a2588f2ef51c4a8ed62526cfe0b4cc3060dbd311ef006f3592ff3b18f383260f92959460bd411548327941a8d01a9ade29a045401fde9a5a661face21339fe87c7f09e073f80a589d6c6ed83bb9d6429e60b0203d143a4330033baa3f1cb7704c752e5733ff6e95c0c4d3543d3f1192efda29d573cc7bc83f49d03754660568e1a2d9a9b24f4f81c389f0fd4a3709cccd9600453052e5e34ffa1fc3bb8922236cf66b47bc18bb36dc3af5c086890400279a85fb8fb6cda93626ddf74d5307c4ecfe0e9dd9521d3bf412bc13847b8210f1a17a29f7b70cee67d70f4b849aa9d0eb35ee2f04e7a364a1084ce29d029085471532d8e488a5b75f38be68a1ad385a726e96371ce3a4134fb1653e177290ca120dfbd9db014fada366e6fc32de8c6c5155de2510e647d4bb6366aade8d7104a9291cbf0bd8272e18f8dffb33fa73f8d74b4848dfd0ab5114174d08d6bc79173d5d9901eb0dd136ab891188da55f861bfd873837d7c31556c49ad1e42551ff437dce60190268e9c0eb6115cb9b269f64a798ecb5515ad02fe1f978ad63406a963f1e9ec55923a83f54dc213fad77b341c2aeedbd8f67709234edff52d27d6fdb8b04291f4e4f741239caa23052de1f826df58bc6532a386771a5d25e7d24a17fb074c933c6238062c319472d6f4812cce498c1b388f0d4daff123b3699165074c570688000caebf71bfda7db7fcabbaf8416f5ae545d4c388de86955a98ad891affc0e7148014355f6130c241b112feb186a2fc8f97b39a2b96de7a54c49b2911fc5defb55821b430f9836689e8b42d241e487414a486e7e58b92481af5d2a071c7179a3edbbb380719d2eb83ff940f46dd0e8d060d5837a39f6392779e3febcfa0d59ffa2dffbf8dd18331b87f4b6fbe4f674468ffe2877de2eaaee7790e5761fff0dd808dc61dcb8ccd20e044bb265835495ce8cd549ba924da04074fa04248c4d951a291508266a9c63d82da7c947f625fe9f37aec5e34c2224ee92dc4170d1a12c07d663944883eda92407de9352ef4264a33dc385c79eed12744f0a61332bb562319a4c528e8d37b4dfe7b365630ff370434feeee76cd77136a53c95049c467b2039d32ffa3a3761e083ebfffe08281db24190751b424f1157c22de3e5980e6b0c50e6f7022434b6d20337cc19cffeba0a599f5f0442e2acc8c9339d8fd6cfdbe2b641028310da8593cae05244cf6e99668a4e16eef7680df5fcb65498491913e48a7406428911b08b313878e2c26916cea5153bfd076bccd31a1eba0cb13fad4f683ce984b111298faf8448b5eb91b5104be3869c7f16484c477d590573e32688dba801db56bd0dd07b72ca1f6e95fba72870b493bcf7af90e8f70b59ce4fdea40c1c0e08ff2952060171a2cef4949d7d42fb4df7e28f4bcb3f07e3598b7cb0e8084c04b5a95cb60c48c0f9f14fe92602e643fe708c9e7f7ff3a246a0961fffe63cf14e621092f22db02b7b6c9a48400c6540fb10f4b1844becbed1eaa340d7c3cf0938b42eecc69f861b14523d11224ea95207087d12b263570f61db440f85415344d08975acd00f0b7318373272c0b761c71744aa3f6e90824e4101f610e1053050093c8ee62b559443a610a90e25c0edb90c5d230fb2b80ec5dae349751505892a2df8eaa5b74390a49404ffe35f2b40022b39b23a9df9cd4894dad96ec917a2622d69e87f7617b883f302ce29953c00dcac47bd71927c57215b84f8eb75146d06fbba31f398b18ca769f82a474a6ba472c7a15416c5ae2b347de9a79a80b7e2776652e35948d59947d93d5ba83d73e388364d37544b201e08379da3579497798ea68a8576261b7fc40b8e1de23a4ccbc5bda57970e04fc374446a34cf3c17b8048a0091ce8b61096515d0d83c01bad29423d80a4528c31a7b6c5f0b53ca5348a7a3f4081c2134ce1b2188a11182f3a414108d3aeacfc308a1cc172108074a09b9e5577a38592f7052203c0243319c022c3cdde4b9a34981e042990b47207f3167a7f84020e2ff85a5c10ece7fee3e77ad1a8a33d0e3a48aee831d50443239456c68c961147b5b478a8c9957ff090c8e0e4ce079f41ce44446e3db42df9cbc272d9f3908d0dd1775598874c2f0cb31ff13d2199ebb5d43f152bea84b65b2512c8eb1065f0a0f23f45dd99b52f0e02d393d14370a4c4429645e230241ea6b3a1611528c924c240c19dff44ff972b841e4781fbc2584ab3589506e283555d3caedead92b7e89a1ce0b9fd9f1d694c65e464c3ac1cac9f27e3f4105ac01457d17b1e4135371f0e28bd4f151bc8a377e5a9c62cf77cd63bbde0ec6ab21acfe5821ef9f1fe4db3edce1c843fb3907c09438745a0e2c79fdfe15dc7fe3ec885c3f0d1defff9ae5fe1ea84072bba820c56ec5031b376948e853093320f8dbb38eb954eb562a043995af08e317289ef5bf377891c5b08982b48c22794c7a8b632ffcc0fe30153254fd1d8ff5a8c922242df0876d5b16269778ec5e4522f303879d2faa45761bcbb4d4bed8b635da288f17b01c968b0747ae09cca4f3ee5d46bf83cc3741182f52c84b6f6fbab94efa96ebab660117e60f4c307d68bfad24fdcecfcc98651eee62d93a4844c200a76b92e531601db53050459d0615ef3077eded0e41a7cc8ae64e2a8805b6e84b6f3fb8c12bfba6b2170631ad573b9dbd80fab947c8999e0b2cdec188603a8a053055791344bebe04d262d4bc611ad6d02fec814044647308a57207f9a9c46c68e1fbcfc703c1f5237f3ce3e20f11ba8f6223cf8cc8841e0dd54aa285f9b096395da8aae04e7dda2c3ef0d338e8fe3d6c923ab7577987fdbea6f7cf203deadea82e11677b909a9ec463fd787bb5edefc1b2b256b3e882b8821b846d759c24307047e139825880a1e3acfe3cee21aea25ee53c8b033b82af6cb70071a2390d0b67a2c6a343825d42b86149775561a4400368fa5f1d23eb8c9d0409122a912e31e329eb844a2bcf7195d2f1e0902d5a6db56b423cbb9ce28ae589846e131e872c2dd21b6ead93182f63507afc49df81ba72201d705ed25e3c40020403cce109a75ad4408e76dee1f8b255b6fb2cf4fd25ee3613ddaa59478abb1422f0ab33dad434513d78cc3cecd908e850cb2a64e2610664b787d1bb91754e31da1355a584ad0a3b1f439520d659ac72de3fb6d1549e2d9a9aac36eaa9d4f83a408dd0ac8e6fe37fbd57997efa2160edf651c49485d822d82838cada2c907b99c0a26f1345dd82efb9c1c207771beff47b860eaf666d73b1c6ea7bd2a3dc2fde42ca85470bd1833bce7f305113867f09ce03ebee4e1be383936fa82972a82b22fd83e01de862be240e71a8fbd76a3ce7f5866adcec13b1d629bfb7f3865265cf5fde1052c35ceec1e04b22e6cfdd4bd2c3b2e383d091ceb0c15b21998222fe0a423ae41d2d099e4ded9409185c2552eb148a01a1a5a7aa852ba768b82930bcdc436c77b8ff286176105bd073adb8156ab4ae6159fee7ad032346bfb4f7ca3678f847429f08361ebe105104a2e299e1ff42370e7e19a8558026be26124f19382326d15ba473848a7c93d8e8c6de1d2dfae4db56f1d4839d3663d94b8c9a16835b0a8eacb5021c42ff23bbeda2a0e819947a4896fa83a9b45230261ec62d3d2a525b30d525b2e7771828b2b6141754ede4528024c5da127a04837328fb0baa005329ce4ba5c7a0455a7e2502b61712789be928af730735dd88202d2edb63b1c8638e4badc178fa280a344b23cb7d1538c5c4ec3f687be8f19858da8119751f2929f4301868d1f5100ecf47b134ad82d7a272d052f90796c3483365b9029e0d36324e016e6a27b422d911968671b15fa8a1f824bb09405bd032473558c9508345a021d2503e38d65d4d0ba3fc48e06e115f9c5844c4f9b0fa6d138849b6bf155080e6342437ab2c9629bb82d8d05452d915f8623c18ae6a1619e8e96cc51a88f1447da0aed8c64c061c0c236dfeb42d0ec413fa6934ff79544f977e77531cc1eb8d63d5627eaa75e0bc16143d88f4850b824f28778accc79b349ac8476e3f25579d506634119a7ac8e8aaa6cbc57cc1f30e2383d629f9ffb465e237edc8b7c254bd5ece4332966f7e47fb8501571bca81b1164564bd46cf4b2632a39e932d7a00a67b1f8c2ac24d3ac2ab00b982226e296c233cd734e8c977586c4a7a91bcbb3a8896e0927c30ef271ce5015f3674a045158d2692c9e835b8e61cc70a80905f1a1c8251dba5acde10b160c382f8908faa89dca89798c5ad16645f1d222a403902eedf39b98c92818c8d911d66592e6708ad735d09f536d99b60fb52c525b398a567f0fcb19bc83db44d374a5c52a4484afa4dbd51a904ec355cb02524c3814eba586a665940e0745e16658ce22a897e6c0c9359ce8b54d1b2aa12998aa69774c3907b7e48d689489898537112aad9c25c84596561ce6364536fbb2589071136f776896a5420638478977a3e9bcc01d484f5e175336d27f011ac35141d9100d8c4f2a79cf41103859bc295728b7bf17f337c029a653a86deef95c96aaef41fb7e12d4b825288e9b05672a2c4d99ed0422916e208f751c6b625ce807013cb911c23b24358d167e9f3937f3561b8e275f98679f4c8e01e739acb51fed8a90a516c9850e112a7cad57a220a994f37066da84abe3969aafe61537e3c8804793105b36676d85e8aa3dfddc99010b0801f1dd9d05c5a9a5e6d89d8e6653153f72004d0fdc7915c1e4dc66e2bc55c23ee08c5d9fefa9d32f45ee95a8b98ad444aa59f5587a2e554329af83707bf298fea7c0a71fa983c940b8f927d3ef134707a3de5e3c1557e4dd61f6a95f973729212e55e0cb7808f7688abbcc459169ed411c9b7b13c3f7a18fd60350691fcad448b824a0ca4c6333b1865172d964ccfa8b7fc8cedb0fd5ee7ff5a5c4776ade822db351223817f3e536e6e2f6fa3a87cbf493e66143ef849b80591028df7ea57f5e0735551b80b31a08b24bc250e548265c03f1cfd3d74c1e367a0bbd121a0dca77c31a6a2b030db1865a70bdefb294b6a370214d95d44f60174ae164828b0dc51f474d748a904929f42cd77f23dde477fad0818a53d348ec71cbc8066a50bd6512b0034bf5ea10eec7a7bb427745ebfc4a5907f26fab245a9f186b776787f54572111eda2a71598202ce9575dc2a89d7bc25905d2c96172f2c8888a961c4a7d4c47a2e20554582f250287c530d1904615939009edd634ca599c58e328f350c5fa4d595165701ff45033cdf2e84f7ef64c4c84b6741f1fe493454ca4a205f79c0e375c58ca04450115be6f99386cddf23902bf7ed7e064e9a90fa4d04a003f0a05ccf7c27a101356d873c416e4a5133e5889b1975b331cf46b8d4b38690522edf50f701f5c39ce418e9fb7de724078fbbfce5e9e55feb853aed331e1a92787a0b3fa07229516c748d57877db940f029d0947397ff733837cf386d586e76b50106ba2bcb774e2035798e71065a809d79fb467791aadd5acb29bdd06a5a0942d090ff61dcdadcf7750b662f212d43834faf796911bf6d2443a497d4d18de7c71ef970e6efca7c2b36c8db655bbab703e9244a6145aba807f9d0f195fcdead597ef1e1e835221b7384f146179376564484106859a9ec2d4b4e887ff5049223513f42a18aebdfbb29bbf29efab876ea45efb33ca72f53f2bd6c2abd65d1a883fa3d71f0b2e1d95090e3d15f055bafe928cc5c6ec2927af846e02946bca87605a0cd6b5a69c44eca755829ab94f71e783445648316dbc21c9346a37b98696ecb2327bf8ca82405ab3a537003512d5f0d1f8ac08911cdb72c2939c2d1b20667761360b83ca365166b46ffe5b484f0237c84ee2c42253fa52821635bdc04cd9f619465c733ae710c41ebd541ec0c2db17112686fdf3c5cfc476d58438346be6de40c5b2c1e67468d48cc4385852190710b66d02a56e48d06d8bdd0ec3b49684b3554d2391095fbbc540a1f282bd5f31a0a286d05a81769ec3f11cc115a0c3eaa14f661939aa2d4786656d442e415e858f8e56d22e1fcad7caf534fe4c56ab43d0fff95aa7a6336a08ff0ae168314c0eef8ff85a19f5f25651fe5b1a37020011056a09ada43a30570825715e5a2d0302c368b492805e8ef248d39eecdcfc16d12b800bbf4811850019028e3e6ba866cc98d6afa2764364cc47dd3efb4222fd79fff6d6b741cfc6d3fb8308a3a95753b08f76fd197ab3dc126ef34400f59e43bf289a114d859bad6adb7ef8ff3e0cd2b75c1aae56c83c34f2d1e667ba12ecf69ad42d928e570325aeadfc748c808ebf41a9856f4bc7e05121e288052698a02b32ea427c58a226221344e858c99b996f6a087dc00bedc1649a7ad35b976eea20c5546e2f8016b4ecce03063862ad17ff184cfdd36b44aa78eef62ab28a8c39f607c50340b7e8209e8d3b1038fe5eb4fe972f87095e901fbbeaa71613ba56cc9345f67622f38c73e04c39de10aa94525d01f3ebb22ad77ace514dce159b5c83a6d3a06ff058b197a6567560920c32e51db0f81d977ef6e630c5f1afb5c90778798eac13934ad18bed078b8d31510d2aa2a242313b27b401780335234568f428a8c469a7e392f644b4185de35e1452d1bfa0aaac5c003af67869ee91f50a409cd833054caf000f41abfd5ee8b254dfe755007aa55656299400b20efa9f8bd38c168dc95a40443b05a7a769f2305fafd3239bc82e304675518f1b3a19952145c9a53ee6aeed9cf7d8fdec5e4261a50ff3848c18fb80595672e26b72b20d904bc4e861bd15373e343d6bfbd2d2abd45897e3ec74ecd2b072480d1256ae6875d42a7f3ed719ca72a78e22d239daca34f55f00ebfc257e36371d4d555d3d346a445570035503903932d075f444198aaf9fa93569d8a5f4e3287226c14e71643177553cdc5b81a7707c8139f1a733d5382ad4506e6538337361c0d6bf9bafe92e312b80d4616a0c3cd81642cf289ee42e862d8f0599d00a36a838bf3b7217924490c9457652ee840880a357eeb46de2eb4f5982cb1c05150909fd74bf945393c737ed7c948e257373a54f9733e8b8a1139e69b6a6358e10529dfd6237c6beacb51ccae18bf3d52c1cd17484e711daec9c5cedd8f08a410ce9b8cec33b1a4332d312249d8df3dc4138b8639b4551659a4655ce503b54e7f7c41ee8209e7b98e01ec6ecd77685da0a17110d86d0f5a783e07735042ddd6a4f2a232aeeda7176384936e6c5a791c82bf110d1bd15beede48bd7d6eff886e1f3f271a35c353609c2cecbeeb4bc2413fbe46ac419770e7bc0ab5728f0e9abc5ad3d5dddf7ffee22b42be0a8c8432e74ed93ac86e13062133b288bbb97719450981089fbf727d91109f3b469f1da59ca24248d22d6555d2fc241c821b3d30f0b3036135a147bcb13a6670be6f36564320fdb2a53b5e916655560e7659bbf2b0602415b950a3c4ad4bfe48d96e374346fb83bb7b0a1a1e2488f6f4d9b4b76ac7da19c0098abf299e82d71a93248365b5e72d103b6c7fe9f5a34fbf5a96f138ce09875cbb4a2d9689acbf330a8677b4216c36e8dfafbe43d7a68389ef5c1c12e6c6c8bf06557676622d0ca7a398a802c2289f045738733d928cf8558d24e19bb128d008454146aa3b24bd7a53b270b10fc6292671f9b2749a5a289c687913ac317c559c061b2ff79f131dbfe2d881d8e197f1a35be26b0f529dd9ad9303c0c301a6476ed58ac10cd1044d52dd9db90026ab07e2827bba4ac89412ed11e7a59d10e84f732aa31c4996eea2d99e08a1b204bc80541ea2491c37ff43dbc1c3eea54572335053d7908fe79dba1998de2c3969cf8b54b41f0e8330e0d3743edd0331a8d40a31681bbc2ef91aed12836dc619a67744d2ebef0c43c7671d9a0c5f24780bd852a7b7c4509b3ba0b0ed7e0391d339864e931a5822571eed5d83fd33c4a2e06f8160e2c9f51194345152c4ada21f52bafd8e7f6fda514e3f72986796c8a67cad571535116ab8db64a0a2b8658e1f8a9b8ebe1267ac3073ce17016206374bb6b80d0b8b2b0c481c09fd4bd3cdc0f62e3b5d853d134612361e75278842390464b6f1391b51a927655844c71e7c918d26d3e2db5c3f860d548d7310871806955f92982570b1290d98f778fabe10033f8d45dbf80c5aa6b51063141ced4a4ee0d2bd3440eccf5cef4c38cb97a13ad199141038e21d79e2a117461bb1584ad15d0aa4b99274524ca989caf8fe8ebf3a07978a843d274311a0021b4f0a1180dac1ee3c22b27d288a62c16d04b12879a9e5a6086dea7904b63e59e1ada0021e7aa8b2ae493db18b68ed7df5c822f97e4dfc55f9115dd07581ee074302b5b09afdbe88a4ccff5950d310d2a19fb0ae49bd268076c7b26d1ada5d3d4d2cf6a7a5e67e5ab519388d3336b6fc0745e3710f8df33815f8e54b7a909df5dfdc9d18c58a47b079b6cff2de77045938793803faf0116b8dfc261790c78a28a57e833e36f9fd32017e73e2b6872130c03c2ccb736e87066af17714b5dcf9a64b8ce6b37f57e201bf0dabe8294f2cd9d2f1e5776ee3d800d846a93858fa040a12500f7c03e8ac86f4d3616d97a712d233815b3279b09149c388858a570b464c51a7b1ce8980d00f7ca353f0ed06192fd41878615a764c1627f31283390f709d7b5b6de59ffe1f75cbd969bd28235e0e48f7877a70b52d914ff43791d616b1d987991ccf15ca697101f4e02286e4d74a4df17c1c94e738096ee458673d8352f35386d128e24303e7ec5ff66fd6dc9fc73b182a4a001da10bbfa6f4f1b9427461b31a97d06d2cc71acc89e001e2dbb9b672e23b711943cb95da0e3fea8fc4ba6b2aa243da09a4d265e8323b5c4f3eb3534dd752337da9aa7e491afae0a4d95e3b6737f66140e364705358d57bded2c97570f3f1e4e7412ab7f8e6b3bd7b3e07a9400c4041c68049a8b3fba5920d2324e07daf1836cac3dee3c864cf64a4e1164e3e4d95e9447079d43600e9458b8fa701b03e99ade4cc0e03430d28108ecf31fb7dd990d1f5f5ef84cc079aa47ac36d47d10c4f72d3f51ce101112d2f6de7b4bb9e59629c9b10ad70b250be4f64ee898eb79dd15737c273a904f7172ebedff8aa52f1dd62ed8f612422999abe82a6f0eb14c6dbfbd7c1bd3bf3ddd7e73a9706a0c5f1f6e610a4e728f5470fc165221c10c8f113227f4d73eea042ee98c3e4d810a35d029be6d56f2062ef1ffba7498c37a7498caf5da80a43809042ee98c0b35a235677d4f67606e4a2ba5bf81ef22d83050b42f5c6eaf98b3fc15c559eeaceaac29ce728f2177d95252b95c0266bbb5ab49e721f73f51e68efda47f9c0cd353dcdb4a5fe9bf2136cc24a67009e6b25dfdc4c9edc745bfa3b4268fac05daea20fc463ab44567abbc91e1a6a393379d5767c712d3b1c883a8692ca7101ecb299b33da9a2bd25892e158fee8aa2599a93796afdae69cdccff2de7efa556c61da502630fd6d26d36d76a233b32a338a3c85c6e892679636ba0ce539644314157cce115c6102e915a60d1d6b415372d97326cc1176d6fcd3f7ff6a26773e890dba67504a0a4efa04d251b26fdbb69dc417e9492c4f4fe76fa5eeeb3f09b3c55190e7100d5fb20d4f4ea7d34f184ea7ffa878ff743a9d9e8a773c89f32b3dd5bf65377626d34cb616d4a19a7f6732054115f81304c13104412579524ac39fe21295495c35491241714cbb727f67a1e438f9056fe375277408ec2f843af53e755882adb76ddb92f8e810dddd64534a29a59452babd10ca719c376d6f223efa5cb2e8e40e87804e52203c73d953fa57ce72d54cc3363a522084a6ff747dbf1fec1beaac6c6a7b2bd6afa37fb1bef2b76e95cafdfa1e956b43ee3b5676d09df3b9f9210af3ed6fbe59ce7fbafb7cf7b7d6dfb164dab16902ec2cab9a5faa1cc833477f5b027e16f4ee17eb8bdb4fb13ebd47a925639e3c7901f62f7b4c7655277880d2033cb9315be0c97d9cf884e3e856ebd3cbb3fd1215482f0eb16cfff3d7a07fb4432af76b1478fbcf76a40281cdf5c2b457acadc9d5e7a1e7fcbab1384d7d3a769016b8f42dc569be558f0dbbf7ab16b8ec20dae3aac31eb5c01d867fc3f38460a6422291a0e49a85862ecab5fb2e1c62bb7bfbef492792de8ad4361627eb93c416ea2c5b5011beff99bef4427c927e89aa4914248114fc2c68e99b2ebddfd7bc49ec5c9aa0934ae6c55fde2224121d31eee924b17f442ae183e2d8509c86a640ff89b326ed59bfebc086a2a4ce27d77dd01927bf4a81bf065370d6a4a34a8aceb569579893b583be073d7fe3cac9dab0726e2989e50493eb6f22932d0525fd64455b1df47df825beb05ca91098c956e909b217e4d6af457865b461197c377886fab6fd36dbda3937db02ae562b15a9bb6c92330ba9e5609233573b25af7ea0e1ca96c24d6c4eceeea176d52e79c11699b900d3a67e9dd5ae004d6a01c8aca356f043fbf6b3a257b26665534e7a6f4515c9867bafb514872789652a7b317c3f69768ad749cf76e3f679b57ab576b5859c65bfb3d8ee76b7d6afb5d65a6badf7952c79c159ddd7b7dd7b5d2862d1eb2ec7719cb5dcf775d6fbeefb3ecb71334e72b36ef65d995dc17388f6324188d0069ca5c20a2ccc700ec618e7ac643aabd56c365361a53333418810aedbacd56debad7b04ff03c5f9e534aa49e0159c355568e2acf2b6b00167f9d75fe2ac39040650e6feeb9cf329f71f67821050ac5f4e23ef5998b3dffdbeb1f44623db28a45e7c2dd702c70931328d36159ef8fa77fb5a7df04d1ed81a71d256d12d79a1b35f67af846c12c3c7e2def61667f5dbb79f8c85bd4ff4dc50c86cbb276b565fca49fc9fa872127f23e8243681ff7d078246acf757049df4c6cdc96e04bfcf4e5ad95bb22d5319bf922531803f6bd93e2d7b18cfdc7de3d65bec7f9856b1f647f83e8f521f706984b66a9cc67e4eb63648b6368b1149a1d8ee952c79c1f3813f0c7e3406b87b67d1b73fd3dd7baff79d38e3e47dcf9bb9fb500cdf133dcffb4f0c474fecbacf13c33004bbf7feebae77bbdb334f886fa280671632b2647f7be54af697f919b2e4cfb67b141060f2f7444c5cc9f6bfff4a2e5021c19cf11861ad5b7b2d0d1d00def2fbc639bfeeb38c11cb02c893880568e40e1d00be83a3b3f06a8ef97c6c0a8e2c9cb36d2499396dfcb73c33c7959373ec5c80bbefa009040bfeb2c3e431df59e6ce06ba89196682f1f9657609cb0e0af22ede4a6172f992fbbb80c9edd9fd73cc96104a270b7c7f3b59f6fdbfc9fa5aa577d2fbb88293dda8228d6577101627bb55f22f2718a61e2db058125f0667959d6550a93a685cc1491fb76b9a71f2fb0e6a0a4bc149ff4f1c372c23ec3081a1dbc8a46f72f3f7a5cc7b900ba130822c23f35fcf3021bd7d506cd2197cf03ffb61e80031db9162a9d13e7d4fdba9949eb64ae3bd1446b3cbbee0b2b30b39be49e70e65bf535f92903fec354ad3ff3d4adcbec0f73b1a9e34115ef5ed8208df79a8efff50a857bd08a22776064307748fea1ef59f83287166114e40e5f840e71c63abc4ced2b26e6c2c2a51876c02f15a5853ff51f023bd75da99443f146bb592845c7ad9894c3a0b89711712f220275dc8835ce685b88b32a30b39d93ec3b5d50a819d35e99409a42b2950d8cf91814b0fa2b0de69ffd3b5434ea30ffc81a6825db0dfa44b17c0fffe0bbbb39d19ecee9dd508fccd7a04eebe6007c29fcbf0976e443a970d0c02fbcf0c0281ed7fef2ee4de4fb138d9f8857845023f2ded834f7d9840fc5db0ffc150ca0fe62e74c0f70ec498fcbdfbf742fc7ea05b3693bfc7e2ac2fa8af0b39abb14cf0977414674dd2b340d2969149e30f26fb97ec8f1a4fe324bb497663b9e90499a4ff08a29049fa6331c8a4f1afa20993f42f8978d2f86ca9264deff4bcf15fa9c8ec231d93bff70f06f0af6f4f60921d473b4e5976ffad2467b77145f0595885ecc20768ee5ec9fdefeb1e1c41179d9c2cdc421de4648d93a70fdf6b1ec68f7aa7bff44d8b2de46416271b14bb3f892a8829385980ee4b954a84ee3b08cb53186df9c5b0dcaf4484b1bcaab1c4373ec758aac0b1fcdec9f12599a9c8e07b9f037c1ce25006ff060232f8261f3603983460e9dbf4a8f13496aa6c1269c02789ef24188e33d3061ccb257306fef7578401fcd249064550f4c0586ee50884f2f71d160147185ca43b30a9977263d9dfb5c6a73833d31c7542aa0708fab8204e72dca43d13c80ce224f73a4e5681cb5bebfe7156b5dfae7ee2ac6a64c6f042131458299c307772dec804629f5361ee3b5f550ec771acccddd7f6c3b7813dd5379dbe3daee0e458aac818ebd83369b6efe9829b852433f9c8dc99e99940ea6f1bf95da399ded122f71f7d6d8bdc5f12a0f6cf69d3efaa3ed08d524ab7cd0a16d94629a54f54696032f20463fea0f436904a24ef826fc3077e1f0edf063004495fc201bf0d212e7d482a91ec979ef4a50fbffcb9854b9e73d6ac7482e4f9a54ff4eadbeeed576b9f85ebedbaf1566bbfbead5b912d84b86f7533fddc6eb64e38b75c7c73a63baac3c9e652d9da2599a696a4b2b76b8cc1c996a186316390c15b9367899517826c50cb8e25272a71b2dfc382654ee0de726fdf8e0d33bd0bf6ef92211d84bf67cee2e22cef9bf4fddddb97f0fb1b4c4b318da51392d8452cfc79404e3697ee32f6ac085ccea354c662d957727f0cf762ac52fd93e4eaa89c471d482979c1599dfb5e2aa592cc09250a6e649439817ef82ed0af3fb393fc6da0154eec19155cf62cf7c720c3f7f713d2e6d14f8134a6e064d85f5b3aae208393fd648b012c0297e411eb491d232938abfb7e162697dcdf7d97af2a02b70e5bcaf6e20f6c9c5f6751ecb3b3ff5f274122700c3d5d351225cde0bb01cae6df4685a3941b3f8fce25e69cdf156f5f7bf7dfee992d378cb384644edc7cc8555cd1d65d959d375816e244beade01ef5207b8ff7c806818fb2ffea7af83ae39b33650a2877108cbadcc88b7aab9ce5ece5c016fb76deb7b5f781613718b61008b6d8a41a3605c9bc8a03b9cb5f359aac28a863fd6aa0761db5530ad688e5a4cdd4d494c0d9f5757b3481705b85b21d6d6aa43181500c54a76c4737db119e52a5ecd88eb6a36d8cb36ade7f3ba235373b301090e97467b5d69b5a436d6e76d8d01d3b6caa8c569b9b1d363b6c64b4deecb0a135766b19ada9dcb5379d8d5df5f8acac8fcfeadabbeaf159d91e9f95bd3d3e2b7b6d8fcfaa723774878dd12633323aa16aad3db5a395dbd1b3dac1ad563b6e8cbb3b7a563bb89ed58e18777b563b385a6d8ca3d7b3b5a7db61adf5b1618dad363e3736f5e6c6c6566be37363537d6e6caaf5b9b1a91f08abb603659f4ce613da7c383c7ae07c3d7ae0801f88c3a307cec7a307ce07f2e881f3811f8f1e38d7ebe1563b8c62b6f3a9373630192a75848ab6ded5119cd5c5c1597db0fbad8ee0acee119c15ec7e477056b772b05b3f1277c4ae78d4881db53c7a6c4f8f673d198f1ecba3c77a321e3d56c6b9bc9093c9643cbaaeebd1996a3a6e470f9f1d9c8fcf8e8eeb76f4f0d9c1f5f0d9c1753d7cb812a671351d88c7b187a9e4835562b17009fb60957cb04ad807ab844b3e58a4231707e6853c6c8fccd5813d389f182d164bddc8a1a2e53c9f1c1e3e1e0f1e3e248fe493c3c3c7cbe1e1b3b93c520e0f1f8fdb5c1e473ae5581f1fb6ae7cac5661b892f958f95885321f324a0b4d3299cc8765d588df65e15c1c1cf0823116ce65e15c30c6c2b9313bbb14c4b118ebfbbe239f78e3b3477a6c4fcf27c67eb0233df6488f18fbc18ef458182a25c67ea5140c05831db981fa81048504490a95fa8104f503092af503092a85fa818474caf178b842938fae870cc4ac8b139b7da523b60726e6060e1d10b4608f0eab0764b17a4ca0a94787d503eab07a280d34e9b07a404b69a035e1d061f5fcf83ecee7878f0fc63eb21f3e3f7cb0ec878ccef00d994cf6e322b9484a624a312448c494624862624aa9582c86e4e6d4886197d3a3ebd183d491727a74393dbc74a49c1eddf54249a89b1386e17f1dfa08ef87a208e1f58173717042a21bfac0b93e70886ee803e7e65011ddf0a41a738c3e44c891a495a3d552e5502569e548d2caa14ad2caa1ca91a465c2a103b2280ddff8f11d919552483c1e6248a89cae07cc4b78f271718870e40842225d124e901c1c524e0e4e8a94c2099283430a92834367a454901c1cd205677446baa91182e4e02409437b6549506250b22449c4a0644964625022c864b224add6c9cb29d66a7939c55a312f27552c166b753add4a67b53299563a2b9d9509a6b3aab06acaa1d3ad7ed48825eaddfce071e3f1e071833d7cf383c78df783c78d877ff0b8f168778447318eee47e9e6eb129252490440a943d2a3ebd1a3d49568487a74487a74251a921e1d4d464757baa1832643a32101800c901d999d1d1d323a80ecc800d991d101644746870c909dd4084148394646281192843ec49c542d90e5c59443e73b428471fcf078946e20e97ad0c0990a9cd555a69eb050a65e2928f8a9c875996e4794a6739b63ebf125be8281b00b7a671383734c3112c241524a5c25863b9883b09a2fafac5f0c7eff1c01f83225a51aa560d428f532a2342c70a310ff6a1a4883ee604d6fa5f6ae97743b83b307344f090708129c1212243838bc9470e0c88020c129014182e3a584430604094ee9cabc942e0e00c86432204870766ac46a493d3b393da49c9c9e1b44a41b3db19d9c1ed24e4e0f11e9466c27a787646344247b43472c16dba93d41c2af112b17fa04f1e113faf0e1930a533e417cf884417cf86c4784a90d16c4874fc86db023422e250383c182549f24e0d7885efd1a709584b50259ac150a44ad92b0566012d66a530188da5c49582bb06e2ebaa900aca811e8e6da5c4956353fc3215dd3aaf9be4634d16f9e1a70f6ddb48edc7c478edc9cd8f84e37b4d6919baf75e4868def0476a1b58edc7cf467b445df868d8f9e44f06835345aebc89b6e4c5ff795ec54744a5028fb53108bf72651fc6fd6ad56a75d2fa9e6996cb9046136e295a168405fd7d72d8a368170b56e3bbe448d41d150281a2a0c30b84429533f2957f62d4ee35fa6a094a81aea08058656f357f632597ff3803ff40efd029402c226909af7077d98404cef25b825ff58621909637985e82c287b09c6b28b63796119037d5d5fb740130857eb3683fc3c8fcd97f84a760ce4256017f48ed7372dc404f2efe06c4b76b25471f12cd9816c80f0146791f0fe186802e97ba78dd84d9b7e12c049691200cec019d561daf407204bee67419c9406d3283fc449693623da12d33b740721a32023d762daf403408492fb8120c1a1c98ebcf48ef380fec8a8cb859836fd3ab8907c8a03f5c484887ac75d308bc9620dc6b4e99711a5e4fe206208c6874f1fd13b1d86c35eb096c1b46932495f99946625ba684b05bdd33330c22e104c9b7e11c4fe16158f88ae4969288db6d8e89d10f44dbf57c10d44cbd3a65fe5d5883bc44969bee81d9ebe9d53ba6db5725be5386befedeced3acffb3ed0fb40300c49a452482a953036994e18ac318135a7135883428135a91b38361c38a8378ec601768e1c60ab441841669391a1de3235628d58eac8359f23075823aa6afe538135a208df1c611b6104ea3d42d7b4ea927c44ba015103a2114ae39f01510906c46e41ec0b886d01b12b203a0ba227111d89e847c41e7f0a90131025b0822c023308143d80a68203c406f40f03fa9542c350e82a0be8d8091d64a465457a46a48b8634cd0451017dc4f3935f426009a852420c014141643b3320453f683a5e6bf911ebc7c72b078653a547cc01b4662c3bd76cdf3ce08cd2f88741b8dcc059f6df8ec01fdaf279ff2ba32d9bf7bf33daba79ff5b445babf7bf34dadac0fb773fb4a581f7efaad05606debf93d11606debfa3d1560befeffdd0d605dedfab425b16787f4f465b15787f8f465b2cfcd05612da42f2fe9f8cb68ebcff47a3ad9edf21a3c01fe0276d4de00df093b624b04204be003f690b024f809fb4f5801fc0cffca42d07bc0018f0e24fda4ae1ff276da1f024fca4ad057c007ed2d6090f809fb465e475fca4ad222ff393b688fc083f696bc88bf093b64c78d54fda52c0e7c0f193b6f2dff8d44fda4a40097ffa495b08f8208fbff4a49fb4f5e3c3077fd2568be523e72fcef7781e5f7f25deec10af4d8d38f301c492348028d399b2399b4593366b0210cb79f4f3827595008865c73aa8653deb225ad78e7e5eb02ab120d9cc8b9c068aa5d7fca8a43f2f5849ab943456cb2b038bb253d9b4e94ffd707200772a50f0af06a1e01c4639bee4a039abda69e3a10c97178be028df10f1a7ea6f4e6bb42da8bfa4335a947b439d2a3dcaf7bf8ae4cccb70b9015509c1f82de6e4cc4806d196ccdd8274b866a04cac47994e8656a3c315a32d142d16cb6144a32d124890d116094694c6652418c9b2c7c04789a52afe7d58bcf1a098fa2a764f4530cf09a44bf82715f0bffa65128c688b84234c8251f69f429c044ac251f62e7f47f7de3cc34b452f875f7e47a81aa5f13789281a6944d1288d7fa5d57218d156e952213d2876a9561249e3f79b152ae05bb1bc394401d1d6c51b50f6ff999aa35cd6f477e4ca5e7e47d9ffb35f966adb0f98b1b3caed27771130f788a2bd00cb04d116f8be791d0d1c45918e2535ca650ea3ec8fa26557f983750432f32b4f0190e07a5b290a1ea4d830a67e81673864e6da00a64a96ef6b109c242d5b8aba4a056d48843e37378cdfd2f0049b4d582c9dc06033a6e1103c964e66b6a52ffd0c49a527bd154b4f123b2e7d63b77048691442ed876fc5ae0804bbef41d17ed730f77c5b4a587ff36f27a6ae437c73053c896861f24e9e44b425f2c7c2f63e37cbdb930b05479960c2ac8a645488ea509d70ce27372adbde8e332a64059639c1fefd6b858ad02c4e6e7ff459d23b8cde8b313df2467113dab23839ab2a90c21cf61d905d7cbb5534e8c3824b5a672c7c046e284eb37d942b054fb1e2301c8f63dc5e1763958a14ca927b9302845f35bf1206814b0a83ddf8ed6915d36f4f839c2563fa9953bfdd78f008dcbf9d7efb7ee1df64f0cf8c2aefe97598e59a3c87749892371785519a4d86dc63e91ffed0eb4b1d23d22327303dba019639618b79b8c4dc7f4d856d4ee52c1448998e00983655866e42e6eeee2e6732ddaae0992a549452fa4b66b870087db27b864bccfd3bc975b78e69c3bd4e897353814bdc2a67cd1c345139c9b51def6ffdef02a594d23929a59def7425a59476f3aa9cb5d1adf41dbabdca5974a4e2969a197b6ea7a3cac9717b21fea40e4b9c5dd58f9d5439abc7fe928e2a9c3155a581cbbfe20a231e451ecbdd2c64eeeb67abad757b4e5c329329c569e023ac4369fac171cb01973a360778ea20b302f8f8f128037ef09df07c58ec14dc40e4e271ce5e53111e709979ab2c0093ed36961773e30c3f3158e436fac5ec2626ca0c92a8bf51ae56a56bbdc371305bc772ca4ab97418176a94a80b0bd03514451938745e33fa02a446173b842aa09a15586d082e82b801886d40532c11024da10595532804a5730d4129820952490808f0a5c58625bad0d2c5baa8c264e31ab2011443423ee0c25aa122622f78c25630b6dacc35461741e0622f1d70b9403a382397130ca69ced224c16d8ca1ab3d628d010ec0706396c94b3a5ff74cd5973a88b35727fdb8c0245b1b121338ef8f13ad7e68a01ecbe6210b44307e48311d114247eb0616dc8ca0cb52122c6101541c3055f9da58c99500d42d41bae19119618cc6a40d405c7558eb35ccdd56da4e5061718b121d49cadfee3ac39f425062c9b3b87d1970e8714d9020c7e2b563470a9535f086d9dbe3f06199ce56ffa7ed48bf0aaef57425b393e2c91fe7370db46229e7b331a92c1eb4500926b08899a6a48063f5b38a47546b8238c443c8ff0deb7100b5225f7506f3df96a424534816b42450035cf08deb5332cb245a942b9ca158617f26d98142098ceeb0471d8d1186721c0a55c1d93c6be4aac9934f6738841268d7d1ce29c3437c4396950223869ec9f52774ed2fe67c20a1bc8f7cb26442e912d7b230c32dcd15ffe73a50aa134ad93a9802fc431e5c63188eb38d9d3a89bd35a3be9a83369c010ca756c87d53a7a2ac0a54e6e9555e54964854ab52f5347229ee973af13a45f89b3504026386b12e1604b7d17c20198fe663970e57282c9cd534e59912d683067952b2067fdf4ceeca3deb13fa507b9742b9f185cead4f1469e435b6a0c6897c2647b9dbcc8651d672efde787b69a67fef4d1cf4f1f6d5a7ca03879ac07bacbf7e790112ccfb048976588749b169988735f15dd7f1c8abf9c24bb2677d93587b914b792fb3b8cff38142bba148721819b2e91d3639cecf73e72b275668cd096c3a60e6df9cfa4e9f71f9d539e44b1137455a5bca5e334fd36db9dfbf6b7fb98be4ac438f5dd7f7f2df771ef89b78a4b6672ca5bd3639f5dc014df9cf9da29ddeed3cad96b5f45c346b348683aa5f186e2345fbf3c355bfd013a77482dfb5b15fbd53f459e18614a7d28e26f72f3e91b465b5d45ac43f0d84126918afd92d829b1b3384d139cbb0926e68dff49fcc0cd786c2c46f87795ce3dfa7d547e2e4f0d24b4d1461b6cb878ec9b442aa8c7359050fb146a7c82fa1b9e07351ab13d180e0943703c6db9e46f125ba8839cf4ef7ef074320cc12f81a590d424909422859854a2a5b004d252e96be880adf4381c521a7d907078c2f68d137fa68e7a4f9335dd8e143e97b770482d6bee462e44e13694edfdbe7fbf6add36bad1196e4647a8844633d2515c1f7da6c32769ab999834fe51ac6e90bd8ae9bf0636fa48d04e6a354d91d58a68341818d9962e1dc67f84da74f0dbb6a654363332fac265cc9299fc1bad362ba2c966fedb1631b8ec996c6664f4854b97be49acb14697cc46961e62034beeef271de59b8d20f6cdef0c5cd2222eb9bfa44378e57edaa5298d82c9fdb44c0a49c933790e8d39ca5fa955291dfdb36defeed77dc94cbeef1d927eb0c09fef3b16380b4cca53280760f20c87dc76e5d5d098582e409e43637ef21a5b7200f21c5ac34afee617c6650666d20467ba8516f3a6ef7f9bd7da1ce7d65a7ac32261916debbaca15f169b3715fd222c7c2c3016f9e054ee549a4a58becdfed9edddd299d93a4352452647b17b7bc8545c62dfbd75c43d20ff6221e16a99654644e9bee7d2cef7ba9fe2d2ce26f9f727196f7d399b3720d3498a30177cfcd803f16a6dbf6750cbeeeeee3dd38e0b3eca30ba5cfec7f335ab406febedbf500ca2384fe767fac919809f71e68229ebdff3a719c33cfebc4c7179c9cb48b9398b67a8649d38f834a87f60177f74f2ab0f75f2670e9a4a281e7d31a8a7b0d6121dbefdbb7adb864266f9be74b9cf4df38d01ba11397388df79bb3caef85fb4a68abfb3bfa129fe52bbee0a47338e0eb2fc48df2f7e53ca27951f67b6d77778fd62ee1c221f73d51899310a03cddb8551942396b210ad7674a5ef86838c4bbdd77e8b30ef8cc8edb164e4a655bc408712f4bb9253e224330f731730d8329b592a9e568964cc79206b9aca8c85973080757f6ef2ecea28ec5b7f49770fbafddbfdf0a2c4b7c967f13671e412cf76f3fc06503653acb944e4a33cef7bec525cecdf994524a7fc6bd85bc2ad9bfb3e23f82cb3c4874a16d742c6678d9b39e396bb6dee56f8594aebd177c41283737ca5dbfd6b9bcb1289d746e354e367dd2e78cd3e97313dfc92cf0fc7e7f7df585b80fff4d34420606a234b3ca8de12095d0cbc819a599437e504469660bcef259d443cbfe2c083181cb982e355a460b79f3f63a29fd2936a9d9dd7f8ecdc4c71ec2abe92a4767256b28aea5045b5acde30dc55926ac72bcb9b76fc4599efd5370d6d462c3cf136f915e43687cc93e85b257170da4d8101a617239c71415d9e28b58448b2f62112d68ce9a43629ae0b2bf09cea2cee520444ec18d6cc12529bb647b7fa9eaefd7e64548a9a35394fd83a874d4cc2cf5e70c4d401b6db4c123aa9c741ffe758c6d94e99f3c419cc6df65fa479d2a045ceae84c37228a5c84b73c87ba00a30a2c5548995b0d09c073e8074bf67fbf92fd274af6dfbce53cde2597334fda881e18f17c638a6c01c6595a665d7213cf1ed886f0ccdfe75f9c3573112d684245b6f8e22c9971e6959bf17df3cbfed9e1e82404399166501c12fe570abf43229fc8a4c9d64ffb9d0271c922e4490454cb1f05492451e684f0491f492c8bccfc823ffd0ef8d3fc856249a433290cbd90f44d0a2b892412e91c3eb73d280ed9a8e721dd9ee77db5d6caddb6b61b67df5c3bcebe292f76276173537c13857e530960d9f4f5bf1238969b68fa8f85c3ef3f7714fc7df8df684414624218f8c32f97a472fdd26f6f826f210afda6a7e109e19bc6b27ef8db83251573e70e13264c98904a8fbf04bf49cd45664e71b9c8cc2a27b72f894d6c2e32b30e27b7c7229326f7bb198ffc6ac0559843d26952ca45660ee2e4f624910913264c8acc3c7bf34b7391999b6cb9c8bce1287b4119ff3754822a197cff09a4f425e9e7d73cd4af23f8a6c93df8dcbb009a3616078e269a4da66b1269bee2c6daa8b7d186ef84e053269de797e08763088ed3c97034715c28d6ef908889494f9bf09b6c794e1bd39b1ef4024601780e79e992679e996402df33f843409913eacb803f73f9817792bf5adbd69248e7fa443a7723112bcef0af3824ac26b133c924faf7df36c3225f49ec36b227962498c15dd9337d5712bd83a173d74e2a49904d6f828104df873f39d14519d3cf36327e4f94313de967fe7a84a14b1f3e497481448434ca9c50420ebf840c7e0882a30bfe20386e4e6e50640f387165500cbcbd0a2b388b0404fff6159840c2df48f0256fe5a4e56ddab80ce95d08b128431a89840fbe935c0ac9e048c4fb4fe68412325842f62e4b1f6e4bb2297c502c53794e9bf2fb2d74001e85d012fc39725fa22411ac23916ddbb66ddb4417fc3f14bcfffeb320f893759b8722a07f8728f87f0f8a32287c0f3e38cae0efbf7286e148644e9bf0e7b43195e0775f7a1211f0c12a92c407c7ea8d9d78c55b9dd47fa3f6cd99327c658765ee493b961cf8ab991344477c2770cf3cad74bc47d3c6ff8659054539954a99d800e222c4633299accbba68c8a8df5028ae668219e4d3e964a2ae4c5db4656926d4732098289070f16084962db678a10005ae2488bea032132205b924f3cc69fa4d26532a25e2acc3cc0b2c3818f1100414a4b0b8097820c12b400e36e8e284153cf4a0891c4a4229b0b44643c73de1217840224a185a1059a106948a9a29214c27d1d6b8544a8a8c42a14ea722be18bd52a00415d80c27985bac49e8f4a8ff4ea8d3e9878a6cfacd8403956c7ad05932f974011a40b1c58a34a640c30b1354d33c411183d349cbcf956c329952b4226b516fbf835ac87ad97ecfec972dcdd22cd7af8649e144b6a56cadfd157a5a50f2820fb2fd26d6f4f6496bad162856b245655b648bacb54261b2b5312229b6e8a45229da1919f51b0a8542a1504051b8b088028bcc65043c11c25a4e50944f5c2ef7831ea47015d1a084cbd5b2d768cbd26ced64ea93586727b8c17543971354d138a08ab0d6de10e92b95ba91126994d4f8540c37a652230a452404944d2693a98221a2072970f8c10816fc8071c690106e38038d1dd0e81274a09d5a5af4e52693c7052ee9eb8927b2fdcdfe8d922d906c89a098225b6b4ded03032228631c01810644dc4086145b68d1431821bc80066d03caf4a7d164b2358e4631fdc7994e7f1a4d237d611a9ce8091bb2fd91adf5aa30a38c2a3830ca810ffd649a84387126139113b51bb4d3d777988dd51bd5f4f59b563b721711b98a902badd26a2a48a8653df322d76f2ececa91eb77958aea57c31a48895cbfa7c4405bb7ca0a3df55ba8afe4051ee4eae55a548b66c85aeb0b8192eb29d757b541438c5cebdbd88d3136664c3e9d4ea73564904f9f3abdaa04f9f43a9c25803f9180650817cfe9741a0214d9f49bc9641a73826cb2229bc6f4209bb2c964dac18ce6e231e12f39f55b2a65caa20610198542993e9b4c4545680ce186081d643942a3284b1a542080f31245e8f5cafd5eaeb3406c3f65b3a0e1826c6ff057d0b25437b22bd7d10c5a20e4c59516d4109ea0b8c1e41ec57126d3585a6bade7c5dad3494c1207489db8e0408d57cd082964f4408315c2921a51e3693c8d25f7361674b3c03c6da240d3fe508518b25c2b98fadef778df82f74abc7f614bf63ccff36648ef573a429e642fcc1ecda3799ef7788bfc791fc3d0133aecd82f58bec0c2892672fd542d09f172f1545a0d829a4081d8041242434d8cb165084b138f83307820c5e5f98c3b951004172f4894f143ada867a8a6af64789eb596eb13c90ba12760be3072e204edda01fa4209294fb06c216ba34be2e40dd5808701c4ae944a8fc7c825542e959e2c954a440c65eed2da132517a22d1bab4276760630e30b22143021460eaee0299f8d5c92a51978cdc50679597811e607319e10f9c086356ac907998b5d2995aed8c07482106461cac0020a2d448ce93a68b4b1a0d89520eeda7925091c348d8e84a045500da6dc00c610c28a44168e8b59eeca00809090b92ed11520d4e75f9efceca043098a50230d357289d7b016288902780230228a9f217ec0e58a1bd2c825cec944560b5cda187d7d36668380d8428b20ae74017a094085069230b820220223053e80e22835c4142de0411720683000dc8169810f51d45e18838c159461440b8850028d5caa9ec44355c6589aad791eb7b3d990ad4be941904b9a5934c7021ae4fa5b1d9282825ca9c025d20699fb594e99b596f3e168841f7618fa618c5cb57ce7c488214c00c694305018c5408cadd3132ae20a4c5fd32688eb495f13086d1fbab8d181326881b5d6deeb4314a3a5795e008070c4123a90053d41c41931226badf5f265bd318a1dabb7915144aebfd56a2d098a243c9f4e4464d4904b642e956a271ba33458b624818234b860e28728c2e432270791b95a6b5c72c9c8e572dd5013d045098c5c33ec40831866d45a6364e45a7aefbf9257a2b48a46e67640148429b808c10599cb420847598c31c5cc52db21735fc3ad4a482891050e3dd0808ba32765dcc825892a9d8680e28d9656e3803c1a5c06b9f45ba9748119dc90831a30c1c3112f20c38404058289030365003430479e510a9e18c20c3a9461a5f695c63a460d03d0b2822a5d9e78d102e322c8676494db4b0f3df4600c2c3018c20d637c5a9c4e5eff7c7922229e0c801b4b4eb07441c50b2b683008138510be6a4414dea9f44443dc40e665a393128819c3041541d042461a3c3308b9549520f4829215654891e5ce521427d1d268dd40ba54b22207b9deeae406368010824d39418d053c60f2299b506b95c110b99ec6aeb5cec27c1551a818aaa28b212b66208298159cf183900d82608003318cd842c1c038c01b1541a06286452701e1113ae8e6a61093eb145464a1c11e68e54b5100bc2370f8a129982001ec186d595a293c4268865180ea99aa0c689e374600b280c921d71ed49ce58d5dbea99ed8c8dc68694eb6b79d4e624c21d64ce092840bb6e8e0831a3398210c2f9739d90a149506e68befb72c6204913dcfab795284d5c690d8c1fbd27f9e686b25d1d2bc2762c1d43c1dd8d848a38c1100cd8221911e9b91493893484f9248cf058e0a7af8a14505530c4035f3466a5802404b84041092b829819b60bcc0f37e10610a6d24714c11677411ea828a185780914b9c936342d60b239b7080379edeb4f4c083fdbaef9f186cd77d4f272b2207da982c38a060069e8e96bb7f818cdc75b48e36e3acefbb27bb5f75dd0b5141ee54b903ea80baae7b9c82dc756f63634c8d23726561ef4bfb9646b9d140bc22a969d35fda278956889728cc5976ecd2dfd9dabe3496f649237d519867ed486178cb257d591d3cad237f2c4ca38cf42835811499f56ffd1b13083562daf4d3236735ed056d64127d39b592fb471acd0c213297059119687c997b1c86862bc2608180cc3db943e6ae38c38bcc7d0ef73a42942865ee8d64c9dca7e02c9cb957818b0032f73d2cb4e0ac4924068dccfd069c752373af044ae67e094784c62c73dfc4593c32f731cc90b997c159ae1f1b32f70d859b44475a64ee3b0a511ab1cc7d4be1d4f8c91c29735cb54044656cc9dff77139007531d4239d2e37c88105500c99a0064020d95a3b888a9f1ab0e800085d0069f9c2448232daa0b06644163568e2e57261eeeff7dc6f41c90b3cc8f79b38ebcbf7fb49ffdc37425b3676ef93f757f7759ce5e5fb425290ef9be0ac9b2fedd2ee7d1c837c3fe5ac5337c670975841b636b01b7db100014334286ae51e3425bef0d1458c28ae70c86dc1075938b1031d846848c30c1e2fca9c2384e8ba56220812947822933db760010b9ca88551431b3ef8924bf25e28c4581b54ebbd57c4d00439a9c204d200b02244102ef012c6146a7491cb9c6c8580e0388eb3b68d1d43578cb801e64ac8a56a0910b468a2055860e122c4533e17b9242df74360087996e34a7fe77deebf2b46b9f7bbf1efbc1cfebe24a2e42a936bad43492091eb4c656dc2226a9ebfee6c0dcd40080430027ea4b189f9e5571d863b50410e3fe5ac30873f438663f82a6fd1170d42e6aec8dc5f2c8432f7e00a7630948510c8bca3b6ca369680ced620d62f6dcc5e69211b1bc4953773387326a8a04357ce9a4432f06216653bda201b93e1f9c3d3dc1017293336e62cd05e714f0b2e6f1467c1bc35672e97cb061efafe435b37c85f1ead46bf8fe8bbab0599be3f71966763411307579a5822882c382ca104cffc41a64c04656a69cbd2fac94fbf686b4ad1c61940f400468b0980e0a10d1425b36ea61f036d59204ad3bf424f0bf49538cbcbf45fc892e9377116291ba1ad5b85d2b42da234e48ab69cd8d0c5115774c9e1053b18e2a1afe3ace9834c5fc8974cdf8425b09081451844a8e0090ff592e9e32332fd94b3c04cff067d6390911399e31e0321739fe27ea0449e5b32c7c50c5907e9d9c6624652b298bd9f950c5cd25710e5624041558462b9a98c465bf435d27c6045ee7eebba92fbaebbf6b6be336a423cdd05b24063e48b45bef745a39c8c6e15daa2af5bc54b0db23540b696c29ce5422ed7c789227dd157e69e467112e62c6eec9acb954b6ea430fa72b2e98bb69ac716d1d6b545b97ba046aebf392b27d79bb7171116b9e7fe6271b21f4669b8e6c62b74839ceca0fc0aba4239e00994bd215c32cad7284f01b81315ed3ca88c2746d872c68e4ffe0cf9e48c934e3bd2493a71a892fdb79ff196f3e450a7b489e77e6b59d4a6ca2dd790b966e6cc2c5e33d3578676f23e1597ccdc2099fed6ab07c792beddc4254172df9f77eca7df294ad688fddfa693b7996bc1eba4c5bdb590e9b758be2a53b149dddeb76de3c6b249a6ef94b67fdf7b2215326dbca76239b364af83e87c544cd31c27bd1a27bd27673eafbbbb7538e97d11b1c73248eebaa7629a8a4fa52377ff7daafefbf72b815f676e94e9e7fefecd779441e17efddb2734769248d77509e6ae7b225db72448eef7be13b1935e4feabdcaf374781501aa45a8148c590a83da212201000082a0002316000020100e87c462c1344de344ef3d14000c7ba24e6058a54803254641100529658c328610203002233043e200b8924026032abbc5a554c12dc72a7b4e3a79ecb0decce720638e75506e1b43bc899edf780ea1b18597dd294619d032a09a5e9bc78d6bf456404f59222bf0d9920b61fa447aacd78f3642823ed36cdf4cb5b0db8eb3d7c8561e7e97e44c0bb1b2aa45c5593565f1a1e309b1f2510839c285ed655ed50bb425597b33d866266c0a1fc5ef4da63d7343cf4e150add20210f7f67731e97dd3b516794e191ae3bdc71662e3ee25915da493d050775be58acab87e90e97c259b90f45690b263ad3bef465b580962b2801c80dd8bbcc670a19158b73e13b21c9e3073d959bda28b18fafc951691f23b53bf08ad0f0e07df48bb050a604697fad1d451670baa51fa26881e322a590b052b1a3e87fa23c23c21f7b7167fe3947345d860f7f6021932d0909d9cbdb5191d0a03bb7c537f66490ff1ac41fe94655c23ca41a394c2dbf7a3f59b45847ea980c79213b4168a46689106d165b51928bb9c86669bc1a7ec9b3678637ae8aafda0d774481fbc2d1e67e7538b7184a3872e629a8c7e71e1969c33147e5cd3b82439f4912a9854b7fdc7aa553ceb41d9cf5f2e69ea643fe760838b159726a7cc47f2c0770622f30d6a686985795501c322ff4a23369c62eb4e86f61949f03236f54b8d64a26b7117f0254809df9cdd1932dc6dfca3193cef258f385a5583c774179f851a78129847ae9f0e9ba3b228496e288c2ae5809640aad910785774d0f9291d0708bd0958079d42004ab2c8a5a80d11d393a98fdd2056f293d9396ab39af151c22751eaa4ea32e0b8c0182067294405e64a86bfd69aa6e710404a5ce4cd4dd6c9c3aed0f9e97a9267e104d720da366a68d7e602ee3d1a25852265c734c9bf2792ecf19fa3eb0f91e4b025e4d18af52139c8557eefd8d7020bc63b7c98e996f9c77a1c263af5924f33eecf518cab91f033135f0921d94791db80448a03017f59d16e8c46250f170773026f7c120d24e548dd10a8412a4e687d31f169e62f952ffc3468f529146ac28dbc90ae4a9365eb1a0a864433107f6269eac89251496edc4ca24f7485185c017388ae9d0e80179d1de402621d2c0058e45fe1ce0300c953b025c5b828b343ab00667f13229a142270b0415b4b465b46c24c547057ddd872cc8ae235a56309f79879b551015ae4d5e028c649958c137caa22e337e1e17729575af85600d189f55fca094eb128444cc52b5eb15dbf83327e12964e676369fae507e83e7b37e9fa653ba3b2a0c3d311e35089e20a6cc22f143558122fdfd294693841fd703be7e0828d1de2903645c354d5e0ebdeea55ddfb78404fa2b9c149e879058aec5ee1d081620c1b137d1328b67b741997641ca078c09a5d1cee2848a5f30c01d289b30e09d809c0122b4be159f119aef4ca0b9d37cf58d8053c4ad762af9bed92dac07fb6311bda1bca462877b0540c17cd94aa1e2148ee6678a5ddd740c7d6e141e7e14ef39c1f3c30f0f2d8d0f01aa390c4a83db0472d3f92811c035ce197ec8d7371bc3bee20f4968e41133c469ee7b9abed126785fd9395da19adbca780570bdf71365da95341caaae6d498b55a08236c4c655d966dbdb97e666009523694fcc38dbba841f706cf3dd7d71f52158edee12eaf39eda08e8c30e651f1da3679fc0cb19468c7ecc09edeb72be8425d6c99e6909e4b56b0a7c52980176d6625a9bfcb3b6475cb5922754c3a85ca3a1869a1344e26f43d8fbd9bcd3ff8918a44eb745d7590386e9ea3e44d57b2bbe816eaa78174c263b8c50762c528c2e44983dcfd42bd0a7b932e1bcb7c244317748b64347ca6d9508f6924795e1bc40d2f30ea5b4d4ac040f343874f06f0622431754d8d31a0c8cb856ebb99024379a1b3f59e3d5c39c2a9ff8c6cba47e76f7396e43b817b8727f45ad2a087297294cb6cb577784a0640a17de482a2baee9d27f7549b58b7a7c83e75fddfe4f08bf37f9f8eb8470e39899b7d32ad18e41e479e1d63edc964ab6043341cd87b10aa4a61ceec8073286a8fe47ed1a4ebbfb648da727796178cddf7fa0174c7e6c38882c186b208d7f7b005158113606e34b1626b0907bc53eda88a1d7624fd3c9298aa1c2d3d4201d8c854f13fbd15583605c4a4ed87c9c0a70895566ba027ac804682b7216b59c55acbf8b26de979cabc10fda83c5d2fdd515497ca0d7d7bb70b09aa912837190b82aea25fa9180afe905a4db7067611bdeee4b4082c92dd0cd41e9c32c6f9a748d2f9746651743b8151c93b083d74dce4425ad08e9b540bb385fbf79fa55202def20359c199e2341034d715f8e60608906c40d16c7e2ee02396a37e4cd2a22324bd5599cc15116ec53abcbba72f39bc8073d3d029b78f5de58f01fb8c6a35d04913fe10642cfa4f7aa69faf8a2a89afa94d6a0f0e913e9a06bb5e24766fcc6a78c192c74f910c5a17596ee82c2cfe60073a70452159077e2ea54d9cb83ec3f0f0a146a0fed9a7d7429c6348e1074757a3b7080376a2968297d867ea7e23b141cc0d7fff3713a4a950118ab91d471c7a8361f38aa53fbf0e237c6389cb5f732e52068b8d90d9d7dbf8363265a66547744098504eae08ffaf26cb629d51be4809314ea095ea41a8574670f58fe0ea744f2d45a15288583211c461c81a8a7a7cb41eec0e06980d9c55b5654f8b91794cbfee1efc54bbf4a62baf9a08378259618ccccc4885a8189bc1bf78ee6b3935da64b8e2a03fa0c32ddffcb89c8ebb89f25b1b161b1a62e6309d2be55a51a2a6417b84235ccaae1dd82d80c4e206affa8cd4ee522040e369dfefbb27718d76c1d7ec2514a9b328edd7a29a694e20cb614dad8f430011c3daf6452f78d21033bddb11c4d4d5d3052a9e329e4db0460ebdeea113a524609c5b12ebb6c87e1744954d97bd23a367fdc7980118d9265345bd76e9506d0d1fa4cfae6c83993961b5257b61473a4ddc295b67a6fc5d186626c701d1414d034dc42750412d810b4ef6650f90932ab9c2bda43029599a8e78b504bec1d95ed50d5f710b5450b15b81f53f297a8205d59c22504cacf08e14a1137c850c4c1fc786c52878f3d990b0896da8d4f1fa8f5f79d7dbfc5afd034f25839a8be3933ff3ac200e8c21a782f19051b2a07ce0174da0566a3fb0c640605104a03c283d116d873f046b729e3da38ba90ac0fd95654839c071c92db0d781714b4aefd6705f4b3f587d6741de3d73c91b4f1703da4b1255771b1f315ae6ef942f60d887d2a45e0a909be0d4140f326848e9201dd11886d949cbeae68216e2b8c341a0aa6d08cdd0e65033305990e2da6179661eea2a8725f7da9b4316cdc2264e8b37b6fd5fc33403399ca56e05269472d806c0167a87a5299144f619b597e682413c2af5bbddba4c42d61d83c5e55f539661e1eaa7108dea16c43e1f3a4cbe602005f97f9e6bf64787fdeeb55f4b873142190b2444b75466a68ef052deb6b67d6a8afc08f850a019f8f0094c1beb39b5567c0cdf904a40484206d6fa8b3cd668e8c08e46a5f1e7a38b63d2af507202da4d6560e7509a502554e7d7e696c671d2f9569797ff44ea544f1f78e9b96198484b6c37dc38524b47f259c358baec7b4f8b61624ebbfff33d12e1296f5c0216747c6f0e01c497882f5a71ab49e9bc33dec34d9bd0f8a4c86bc0f54fd4252d1652bb2d106a1c4e96891216c665dfc5ab1e14e7551e208113008543de9cb59e90a3c795a17972d320a7ee99d6232be5509ff6548688f11f7b9fcad1f6771ce6f8ee5c33d420a1aee772ef2142eca31a70352483fb3ea346610fd5e686b9b3f3aba5109fcabf8f8ae8497a68627c681f73964c889bcb50fa178fc7c3730f4cbcf3fd89162dec2c712ac85a1bedf52b2583fcae50b02885ef9afcd06c848fb56336214b97d502fa2092cff033f0ba2309fe75f6c67724ce9e161b18294b8a37c33c62adf90c298b580f94ab9cf05a5c52b5573bdd4428f5ba8d36e4f5081323666f1a310bdcf07079a3d6aa4ba5eab09aa41dfdd015d3e1237ba87aebf61cd511a17314b63ba360e01b9612763aa5df3a6de63b41223967284d2f3515cf94b605db7cdcb36b63aad02211467cc8cdd47c941b0a72ebaeadf5c3a1512df107d3e30b863809899c3471526b96aacc0f82fdf3cf07eb0c736ddc7dcebb90a9cdc9d07e309ee36c5c0637e80bfcac16238da72254a3453a4201f60c0e52dcf88c0fa0b8e6e0c0943d83db1276733a450d81492050c77ea55cd342c995f876b2fe3e946d97253d57e9bd44cafa96e57bd299c1ab8665ba4c6d6f6307f2585a4e57d5134b9a20f7d5d390a1649afe4584c61a90886e19826408d2cdda2fe13a8696bbdf95c4f564e3fa7c4f88d332afee0e765625a60843f33308db6ff17662cc388cad0b1fda9d64fd5092222454e8f0f15babd817fa86257326ee75c12536600fdfbbd347dc5929f0ecaefbe4c5479c1417e985a9b2a4fcf357ca78383ab7607bd5c9faf29fa6a89448b6b575959ec50e089d1d849d4aa25d3d05b103875e6a6681d529eb9778c5f0a10d1b47e46a350135dde0f3f06989a0b59dafd7df1b5246923b624ca14d4bd69c87b244a0640d7b0e2c4eda600bb7e200106d87267e166cbbb3eea4b6c221c9b669fbc688722c1831610848c431aeaa6493d45887d3c3a09d2938c29c0d4b65ecc1a04448c50c765fa5c9d29080371a0f30c8fa78620f1c47f1e9f4297d854c52ff1c2e7d5b71cf8ae3dbd37c97b17be573cb10f5cd5f8e450f87e5b90a2f5dee34d421fc91cb58d5efdba3322d81bef53a53344052ce8aae7fe0d2c7db6d9cb25dfb7eebff4a05d3aa2840a1c29e69972bf65257a348e2d5999d67e7630270c8aebe44e8bc4c7c680db75c53794371a5ca5e4fa2b750efe8127a023e4b9090d68f8b60efc9e122d8c413c41ad563dc1169697910f8a204c9611fc48366cb5a7133d1ac91716ba311b5994dbe154a961219deaf00f528434c3bf8103164a2828ae9f98c54b05924ea16413c3d213ccaff3f18f2c0072f2fcd8873a34e328f60cf432ff04175800f9d2adeb6dcebb6455e1065849652724cfe6f5ce681ab519a7047566447513b951747627a1cc33c3418f6a9326495f97b49c78116b93a2ebfbe3f96aa9169e9d88235df94a3b556a5d5d777cf3e4638e76f1592615fee8c5b37db31a0b64aea23ef114714210987e2c9e0fe2b9f12e1814249d11e4c0b66e7d6fd60ee26c8088b1ea7a4c379d9eae29e1e6580e4007006b0b2b98b3cd34f42ac6d8b0af0d6f74ac8991576257220834341e86978e53c550f9615d098566a0c61b24232149e1e27af384c203b9ba5f71d93835b8c52537eaee22d6b6668bf9e30f3adfb41daac446299b0615d96c989e293ea491fa666cfa3b52fbf5cc8f4f42b337737d812fc89b7dc014dce37fab614cbada98f0df85fc6cfc5522924207e224779dd1f538e50c8f2925ec5fae80d284bbca4c3408977a9743bb8d3df923c753a92de0bb5438ff05b2221f3c1fc746388ca6f82aa58a729282904aaa7e8fb8eb7f00ce8b23d251c94ad5c988f0395cd87a3058c5a0527df02da9df2727d847d93f557e9fb68509be9d440b172d1d32345f72302386da537d91e861c9af497fafa3cf5bf9a5ede1627498302636825166f4c893b401f03f626991759f21988082e0e161d94445425bbf11914b2120760bdc4bdb8766c29b846b6360050de877ab092ddeeab981ce49713b8d5ff694f6c614c8f5dae1edc26e33952319620a864979636bf54b4d9b4d99e3f8f2e671a06fa1a9d68f14392dfa43ad950a82844fb29dd2f397ade16c00d25ff4458abdc4d66052cb31265b7fb085b8ecdc04469bfa7d9e0be07fb616a3411fa92ef4e9c7beffd37cb4a649808d1ad4b4781ab82e31c5daeb3af948d18f822b96b838029d99ddb8a7b2a6add118c0248fe69184b418a4548b1e4717578312289725955a071fd4c9e3f61fea25895460af366aa870265795283c9d0b3225e6a34c6384a0a086de0f1dab8d5332ab5cb969c364462666e641c3456c696b03dbe8258fb52f2354a93b351dfa90303ee200e00b711dc8758905b4833084e5e6590a2765a2708e168570e82b20522b89ba93f861579b4c280c8d0fb0ef711544fd4bd4bf261edc0058148ed51c6a4b7aa0db5c4351bb466d572022d612717db1d9e0419cfaab9cada3485844e982a5a1e3df15928fea1669877daf09430e565a430c3f10d2bd3b23284298dbaf552df40d5dfccfac73ca132a1685d99bc972c0d0da7afeb34e9fc881e5247273e8a98e9c090745c268ce5d74d5539d298f25da54b38cf9a69366f409af2d45dd3a8a288c9e47e2f63cd7eb60e83da7bcf065cfc0e2e4585a9b73169590f78ac3b51e53d986491342486fe4cb2123caf97998247d5b1a7184491bff3daafb60f2f0901e73b79d0c60ae57d60ed05c2619fcbf2cbd7875c4b7de43e6003872caf03932cd0a41d1f02e789071c6a8006f68358b56d5ef3548d10ce66d747dfa35be009d463518efb0361dde9719070c67b9d46e52f0693510aedda2beb08f00246e5cfc434ab608455926c9bede98701fd9d6110db387b97bc1711acea2eed5d4d261234a5bb766f8098e584c6f24aba801cc5c1cdc8e97839550156b80db631a2f11d142afe8a306e431042bda2ea88695e9574263127edfa35a442bf7561e9477ccaa32f15ae95f0fb167b2f429ebec7ddf83499a00750ee99aeb68501b66d331a54c028bb4c2a87f37cf8959c8fdbf23c76938340d4a5ee46a69c49c95ef1d4872e94658c35cc619b35511e83c927235c94092d5b95856a5358cd78bb15e081d48df8574f58f9b36d04c1d18cbf596db8904c39f7d0d062cde2e0276b9665bdf8df678f45e5cc4e9625de723ddb6d3c960c0812e022699b18045abd7ea027ceb697e5ff272d80a3290ce35fc8f9ed0711cfb204556e999abdab4b67e45f06689b6bb12d30d89072436af6a0a15f7c6f8fdf07913e887ce855d72b41a04ab370313d94d862a8befa904104e57a964ad0dcf48e9c7f1e6f6404fd24e1c0ea35786ed05a45c5db7397826e449a420f482a85b6dca2350e21d39818ed8bd81a54d9e1cd4cc14e9cb69027e9f63d4173b838068c2a82a72d4f02d7f5f96e6305e8e019681579d5f863731cf16575476b15f872a69de31ecc5df24d78564340131a69648faba8e37d987ab2e80980dd052c46270f9ef6f7d938523d1e33e9314aa478c81af5a0fc13ae2833646dfa8f28ae8c3b0f314198597c687cd2ec52fc12a4cddade46d918bd0331a9f307a0ce9579abcacddb18ff2637b0a17db336e0f6508e04f2015f716d82e22905d550de10ed58a86c4c89a43c47f2a253c5f7c00a5d76f6780536b9eca2559626005501ab2a5edb60ca86056e7cbaafb95acf8023c0c0bff82d061a69a2e8c5cba4edf39b22e839e135d2a93c4f48b17073cfb3c4488e7977dc121100822641ae5daee16de1cdf72124c219ca07f216aceeabd1689beb6909a95be6b9b3f4bbedbd25bc2ed1bc7e82bc0c92fdeb5bc836865dc2e0718ae76a4e77e5491a0daa4b7977b536cf2e89f3d2fc76ee242354c7c76e694c27fe1aac329f652f46e82630744e489fd216ff63f9594cc5e210361a537a80f8b494f7111632467c4950d9753c3472bb8ddbe5d5f85b7c0418bbd060ced9a2ad3905d831a4b6f39d2c9ea6661d09cd27e47ca1c0cddfc005d762b5ccef1d96112ccf1c4a7e449b7299d270e155d053947116455cc473f649d9e5391270cf343eaa9509b8062f6b6d02f3817999ded3056c5c435ae4404edf2ee576037c67efacc3d9041e1c0edd0ad485dc18fa6650598a68e66995473efc8593190236eab7624d0905fccc403652b6a5925da3000c316f00771b6321a4ad7072c208df35d4b717791796b4394046c5a1a8ffb397e7a30b02be5d52230f870a5d24513a11f0684e3db2240507e86c03c8fe68c153889b27060626c94f77c205423e356c340d2cb9b76b09bed60e3021011e7edcef6165b848d5846fa22cf3d6364f430142e0bd9af6a74da4494cd64109fe9a5703dc4e8223850bc491b4a96b22ab9923f703aa28f6adf4e9984b1fb6aef6cc8ea3efb1d8e9f546da55072fe98d2da3b90e8ca247d8d9838051d9fdf1e4c4a2c7f8592b1bbf6dc0a991494228173c1b56010a27e0649b4bedf1fc230d0dc8e1855ec1d5faee2ec7ebf48a24c005fbde12209078ebc2c6abd70723e5218c5016a805355ab82ec0771610c86c2bc8d42f4816069ffc3255d2813c91970fdabd3694abed54e39036f73829bfd8e0f2846b27b3addcc1574be0ca039bb800335ad758ebecae63d0b138b3a2b570de19b2f3419372e6dfc461d694c11b9458760c2102df9fc3c3a439228b750019d5c45957d0c7de50330cf85123e657b4ee209856e022178fca91597dc88377312dde94c2bc8c89f23ba91025e22994f4fa87871ee626c0debe4e0d8148288987257455d4ab04ea224c8964f9b8c91b8951c1e8627503f94ce62b599ed99f1dc8ae205484c5b448cc6f625d26a151ae9d9139274630ce9eaac3af561465a7ebaa259a25b0420af3ccb397a284fd3b9fd0149379d2f8d8bf964391b96e04a5ec77eea7dc5eab4af335227df1bd58caf25c67b5aa103699f3304328c5d3b55415575853fb87fc9410e4722fd2399d179a1e9e2004ca175df11ded75717ba77124c470d882811215b0b75c9372e64ea35c0baea0302b105ad59b3ca0c1de4af16eca53018b989b6a98a3673e958d772d9cbcc787e5723153d78dec4a39024431668aaff14bb4a219fdcbe765b10d5a342adfe1ae7cfa39ecbd4ce7d1cf27e6d05b809cc416db4f501da2b0ac3fb677c657b86ca16fe96c0d4a80a0ed028d65fe66e4ce89b50b8f8957858fb5b5e018fbceab62d9e5c1923623d2589d38f142a354a6e606dba1ac376363ce8f062223fccbaf8c8ee3a1084ac6a6321bf671c0dffe1f2020d1bae296a7fc7863c100333fdf9999399e6c8afd952cd18c93ef2a206e9b58ce4c6689549d04c45d7c60c2457bea91165a72f5be1b4f47665010b52002fc69aa222725309fc74ea649204c4e66f311c2243e6c91054451fc6162d8574e0d5089085a446136c6ccb307f1b156509cd8db2217a3eeae800504f059a20620f4275a30350f9e0a072c0e8c0d8e2f67a1e936e214bb12055e1d27be57638256bc2c805d626e45d4243371ccb60970b9886de53201ddd70ec217895850bf39961519764e200e18056f401ff030a92eb080314b5a1b212d4546265979f454c13df1f73a1cf5c93ce4b0fe9abaa3436c7f94a19520636f149a0ed889aa948389ba615ac14531a2f1174fa3b7f8a11981e96331b8fcafb9bdf385711e7914ccaa0a42b67e0d93171983efb57d6d063bfc05a45215debc314f73c543401b1cd9f1285754b3586c09ee2d8507a7a06f8d53b07b64a80d121044cda553912e875f42a68e244bdb260d1b3006e5b8b9f79a6ba80644f8174f4c2b181ef4c00e6bd068f8525a04aeec2e9173045cbaf0afa35d361abb329c10c66984de991afac5cb50f40a65d1c3212a166e10ad5793a35a45742db33828397dc97de72669810c61d42e93af6d116ae72f8bd086a6d2a71a7e0e24ba42cd3e626d35edf94720008be16e1531bc7e74ddff5e4e023b62b7a5baf8725c02d268853db3f23d4c93e1c9374c98984e4be389bd18e69a3157623538b7e538a8ba44e7d07c1607451ef560235093f880e21b0f0be51282bc5f50a9392b3331aa49161baccf42c1a593dc4b2e6441175871d211484160c971184d17a34686e0af675eb7e6973cccb5c0a459102602bf7552dbf9b2227d333ee94fcf5223743b0908552efadf77416cf0b2cb30c074a5c13c169a92cb0eb23dcc598524534d2645ee9ac8b46c4a224683c8b502ff3796cf21c59937629eba068372f274c21d48f9e4c40b048174cd57ab1b9b14aa8227d15b1367de62dd0115010134f69c248d35b60b8ac18bd4c3bf80069573884c93ffdf1854dcd137a4535cbc6d049553144a30cb48e1994d55b530fef64e3d2d421b016ea1564e2d0484434ba2df0a06d802e0fcd4d55c55e95181b58342dab67a491a12a131654531b1a395293caa68de93adb7264931587161020bce443ca156666c4053feda34c0dbca132b7cb268d823b71b8f92cc2319786bbc035cf762debb3e43c67a4c3c6c657dbb752c6329477fca2e879c9b45a8e0471e888146431d53b238c7af2d31819c20ac1cd8832a490a7c654b3d6407ace9596aa62a4162f8e058e3586c36ade4e9b51b83706ddd432ff71e4cee10838371bac512f87188fed3763b09164a1af6def00506e49b2f030a937513169646909f772e4d2bd7dad39b7bc72c4cce3aa97661e7a5df409ee81f6ab2ed7013201d0c1df7e16edf7087be9761b50be668f38339c684fa364f38bc75858e740ae8a134323369899188652ce7ef206ba69e565e5ad70b3531cc68741fe18859684b79f2bd998d3e8581bdb56212f1e600a3812c59882ecc8e91a6a1f21f713697b522d50116e1f4bf12f2084e1290f381a36c190dd0a4748e48fce9d34a248317165a7c311ed56a0578ecf2d9ffd03b78988dcad04114694c54554d76e2c74782f0b1c7b13e405a7916123cfcb18094a7043a2c69d82e75f23c6b8193d6cb1ef0de79f292ede738c70b8cc22a6aa6388ff9acc5ddbbb5d8c7c5b59277c65328bc3c34fee3d0188d72f5eaa06b722a84c979407f508e34d53927f3727bf091043da1a2b1b23b136c8e8a34e1a8990e7d8a60c6becbe4a7c1ae98ba0e221bed13996c32f85d76b82d2039006736ee155d0d02d481ebda9ec0b369a7028ce44243a35949565e4cf139ff5ec71718696883bafc5b21347dcda836b3040fe74d972946738345ec7eac3633517412ec369ee1035e788bc23b79d3ce594b0a4610fdfa3ca84aef2a3d65ea9f1810d90b660a8970904fe3ad9a96eb4735a127b13bb3b634d421a11deb61e71ec5e4f3e6be6198cade7f1b49fbf47a29a02cc80531b69ed1972e7b4b5f416b9b91f0806b60347ccdb01a51dd6ce77ab139857c2bf23471eeb18cdb607bc9594587127f7ba5c15f6b48d511d2547ae2da08ea5788a331d0d7713f41d9987a9a6825adc60aee5f79b45b87ec8b8739e3f7bcfc1146ec154ccd00f645636a15cc723ca7635b2a228d22cba950962334a862ba60e5011058c068e0d1e60b8b7d51b82548c4fb1239683d9b3c619a2a2155ac39d3b4fac9e165c90aa7614ca5f2222a0bf29ac08ca81b6a1392825ded915c128acc22f69e8873604a6eebe7bb207ca101f27a899d8ce57e2161ed12cd7d2d61abee85d83ff183e78d206c84ade88eb21b5bb8862ab28dc488528ec03bf8a47bc46a6880236e46f910f435be0ef98378583f9f6e295d7d63a86c65908b4e46d57a04ee7c1c59f36812bdcdafbc46514abc97029c0d3be29ebd868ebb27f348180b614060374836f07577d8e03a927224126640c5aedbbfff453cc7c5598fc6198151a017c0e014fd628b7bd65366302b05ab2438605c598df49c29a5e4833b3e9f14c2d7cc9816130f33d90a05826ca4026cdab1f2c7a2d36a8d3a77e842217eb0981d2e53224e8d7c04537a53ad684804d09c3945801f819c822139c5ad2ee81cdb70be121e5225393b93c50279086711158e0c476c07213015d6383c017958892947da00bd989217164af97989fd60a8f1fa52aec917cba58f75e8498e6b27dd7d115490653d28bd77216dc53fb4a4d4c0714d74399859bc823c102a055bb3bf444a9cc059dac470000e386f0ad19c8a05d4718021d6beccfee266d6517990e164bbb6e5a18a16fcd86d9889cb83116eb3c048fbf76735349017d1cb18777948174a12208edf3d6a46f992155dc90b3ed4957342dcac6efd944aec0f6c488526682090a602d4132e4eac79ff77f261151e48b5c20fbef867791b71cde115ad5ea30f84f6bbbf12ef6b05478b36041a6d5e26bbeb725a7152d474deebf1d8f5c93c5d143216ac8d19169953f3cf028da7aefdc8bf379833a53886def405aeef3ed59870547aae5742967371efd61d7629fabf146f94de48f85e78a7f9fe31eb71b4908f610143c7068eecaa9c6ab6fa85cd1ffd3f20b48ec196e82268e2bd1b3ae4b54d43dba8a57006cd5e70baa0d4cf9f00fae6e218a7c4f0a084916a81c153e9cc1375c973f8dfb24ccda83699dd695ae34bac902ebd80c99902560fb4652fa0ad510f53d1e540027d532a355823d36710f0a6e67d9f99d8e7e663a90f83b741673c8cb470682ac45457c90eb7af36102f5c2738ce640e1762689fb1c8f5e7d3c2ddb828c243667cd5baf33a91f7feb699f59bdd3e8d50226c6dec7b0d5dd7826684d130283d6de60ed5d7eaaa5588ba2b76bff52fe9ee044c595e207731c822b16740d49a176cb33f105140ac1bab695962eb83742b8a82002a1ad7a0a692743273d233357ed8cc0d40199a07288bce15a53ca22ed443e3a0c3a8d83ca8f27b1c1a2d9cea45688888d8cb0a25a9c98d4171283bf8950229aa13d9d20a232dd30d53841beb9779091409ca211a086be5425218a1ef4fcfa283adf565d768706bedc7a1884b253ae2f8ef9fd65cc31c2a5167151d0101d60b22ea88c3cc074ef556e52072ae90485adf995e67a489d729aa7d684a8b51bc8895612fe2c7ce837647926421e819edb799316ef3bf88118825153dabbed4517d3ecb7df35c117519535238fa4f8bb776c9b834677886be96230efea64450f525dcc69500cdb03fe8d365db9998b7a34b60ee232544137506b35485be5ecefe3756fa839a0456fc255388aa8d4b8b92f4ec1aae85de6e0ac4256168980b09f2ed99ebdeb683c452b2db92fa9862a0de36c105c1035f045a4fc89c2328cc1750d25950c3e923be4a60362e788d1f549d525e8a43d701fcc89e22826952544a31189a03beee929c4cdc3ab211a3a60351439af046bb70739b87cef2857196573e4294afedc6828d2b4bde7bc9a076ddc7b019d34b82ccad1c6c77105759fd4173242ce54a56d58b1bd27969d2fec133bda6ad3f907f03861cf4f7ba1fcf9fd0c1c70dc7298058ea47ecff79c2e636a109722832641b44d8f49856d053a3285b649e2b7bc582108610cfa7f9e237eb8cbbc26bcf14d269c3e4c9bc9ff62110b9129242a6b27ed64bdd2e7ba57b071e4ad7782b4028e9d5f00fb2021abb987e7e67610599d91bc86279bbf532959987ea0dcd5d09732df78170cd510543c13deca3a3468089a78fc4e4d9f8d2e3982d6a8f8d8b45d4cbf96f61f417ab758706c47d80673e8648f79d78e45c87057bc1ebbe2c014a56b17a7a84a11b725cb557cf9d6510f2c459b071339a8405efe21ff242074b1c3f1074fec221250326722a53edcf14495a2d0e55ff0368d9882f074d7279d0725968b215748cc0a9bedc71f8bee734b4cc8218de82475fcc2d7aa5295550e9e05b3a51a4568ded446ea4da21a8dd17fdb0077fb27fc00851e68ea1a296da2ad1a86fdff71465b7edeafa50bcddc8e38ad78972cb69bc1d501e8a27a46853d7ab7175fa309e11ab1296892e2b48b10bbf3c4faa6a0498a29a9b0a6da39432cc2a98f0b35db59798e174eafb5955c2dee241ea202faf958c742e60bf96c6600a8065bb173ebc927e7cbf6ac69d495286c35993e75c21b5fedff17280e2e817ee79b2c9baf36442c7265508a3ae32d3a83574ea4cdf10672d5bdab467b514740312d8b65502d14cb8846a7c2a11a3a7e55e6e782a896f29c06858456e1b74895da08d1ae3a118b6d0ca6bdabe1797523e2f671e96b2852e12747ea93d7d814292e523652ab4fa4e5f4e366f4ff26f868208643f58a7db46ac959a7c94fb5997a5ab2d4efd5447946be16cfe99488ed4896fbb5c188b78c2bd60cc759969f8206fbcec8dc266e2f12f6cbaaba9e7c619ee229ee58930c72b8e21c64af298357b385d0d06aab0609ad70b4efedf2d0f44aa4ba4f8334679c5dbde8533b3c288b0356ab8beee2da02ed141e2faf4ff99a5b4d67392fba91164a5f9d4d9fdc2ae28fd01090d442b746f649f41a3a2dcc4d320bdcce70bdd31ae17a8c1cd943f803521e98fcc3134ce00903b90b43f8012013f567dfa90a5c4c24d1daf38167a5e156771705aafc23ffc22daa4195a765dbb9149a897e10c38d04f883971c6a6230704a8cdcbac56dccb4eec842d145895373e788b8f20dad28e4289ff21a815658b4e9d6bb0762f6b95abe6fefcf36a880a1a0f9119dbafd822195171272dfddba80f03601e5e0c30fbc00a58d86cafc2764f1ceee61e5aa9c412352fe67a4ec000ac841a5c7a356142e485c861b4266be8fddd946359a8c48a3a6643008b17ead6f4004a6b4744d16428fe0f6806e992c8ca64285e8e79340e5808c5aa9bedd2e72d12a3c980c24a68f5aa29e6b41aa5190d88adecba21e7140a19eb7994a9675a9b83c5032d57d60653302537e285e79f4d49bedb5cf399b340b068e21d66e645e21f46be1511274d51c05fa58a343fe8b96c0c23965d59cb66640a4b7b2ed217ade0777cc516c9b6684fd2cfdffaf35ded76d817a955ae149d55b52c88dd040fd74bd7f8b4fc55d71289c24228fd7b3210a21dabb5bbce70fbea6268f160e4ede6f121323a8a1b52e86589ab8b078856ab7c4d75a3abcbafc3eca804d4166ce19bd6699e3d9e6f66fa8971374f9a71651450775792d411ec6659fb8adc5df5d8b4fcea2d553923b671ab164cb3e73278bd3d7a1c4a400b1059dede82ee9a5496b0993cd1c5676c0dc7e77404e87548bd764fa84a9c00cfd6c2a8c02d25e8a7e967c031e84e9d4d4747c5f8192a138c2a1d5c799ebc4a47de0df0db81dd4147be141a09d4361bedd4c935a8d47eb9b4d16e2817fe25e264102c5823e6d395d57cb688ebfce89a655b6b19f5613aeec8283264b3ca7b748d1737e2461f174e98990be9ac1d9fabad25bfef400ea00769c0c979eebe5e1bf1b0970b4384c034da9baac9ba761016bbaae6d87f1017da8fae26e31a43cbe406d8651cda3bd42a37ce61465725a0b9b436fee029fdd4b3565b97105274e659940f754c7c08c60e5a3d8944c25549d2dd561f9f9b167895942038394257cbdcf4833f52d49adf11570966a6b09c4cb646042278865e937da82bbf958d835756b4756a0e26657c33f2fbee7774ee83d4e51805d2b6159ed6eb7ace9952065719d1d1119f24bb4e3db5814e3322d401d4d0f3a27e1a302974a6342331a3f130fdb42f0f654fa584bdbcfc5e6a4314d6a99ff08a1a33120c97235049863c64c1ab6024d7531b02152f7b048e8c24620554589b7ca763dfb3a24e9c340d67c7c578aba8c5d0b068f0096a32eabd941ce5c026ce1e1ea3ae163745be12d00acee9eac7446154456268e0bc89112d95d3bdaf07b32dc36ba713203468d355692400b2cde2a84ccb45cdf267a432678fb8c289cd73abe0a2235aa7ce6d901b3e309f2e087c68b95936ad079e506d09e153052da89573436a02867334b0036ef2d7e91c64ba6b6726e8cc968cd3b8ec2badb912618cdc8570c4cdd0175a8d128ecced95b7f7c70059e88669b5150f2449718fb3e86b27b85ce404c60a457dc85e90f60d47b47b79cbe62db70f1807022d10ada9cfdec09c59a5e2e180774dac2a3b1e7a3c6eb8206487451fd37c7a2217061c6ef836637885ab7682ef50fb8332022618de19c471fca063fb72dcfb9724282a61527ec7fa327a782d85da6953c71572f19f257817b3fa4bf109a8158999d15b88fe393578a44c654ff588fbfc3a7bee6171c921f00417699e3835325426c1d703920b194c84be10d3462c2073f3c64187dcbec70da2950f4cdf039ef7b744caf9ee0f6d938aaaa358051fefe1d65ebc819c4f6644ed6ade906e599e0c89e5cf31c6383c0e281b87d62d2136603785be5fddcb206a9f4796c8ffcda33602937c8e1d783e42ab31e4f683a22dadaf449c4b25bce0fd99621287bb80f4579576fb0ff8a8a7e0825d3e3bbe70e331cc20552be47f9868ebe0a9a630248f85cbfd8c9c182b4b51ccb8b6e39176ef13ee3dced35051b58eab91a02ca8a6c2074a36dd0d5ce9be1a7b0cd8ccd55d13a79e914e57c9899b562d6ae8767355915c8c69958da65da035f940158a56b4171621fb1d42284bb688d6d7dffe39aae3f88c1ced9b967652dd6c6adc1f4debdadea97766916d42216a56300b5bb726c94a135caf2f3e26835f145b83ed6bdc87f97c40e3f95a1b9140ec8d0bb8c7fed8170905f7849ab930629b3a165c52f2ffec92563eeb3f320977cbdc2fa407a2001a7cb3dc7276fd6e64aa343970147cfc7498a0852d118ba5e22b76fb15fff4391a083e55df050cf0972ff2bfe3b97f21365fc868a0cbd0f11377ad9191fd9d999b8da80bb7b8ff3ccbc5669d82dbd36207f1d1e4b9d5e11174eda2814030a0b776b216119d9ac1b0998da14ead3895bea74fbf949e2e6843ad97cd0221a9d073df7fac0922fed6cc58d96c24ceee8a80e92b69169858e176df80d9d2b532c2c6592edf9bb4f3a36b412b38f4fd4454488ebc8a70812bb3d6d6801139154e0a32f3ad4d8a208dc243bbd74f9cdca51b270a1a32d66d372edd1feaadb88cf718c7df79ff5f909dbb3628f92fa8cbcbc37057f748f927efa97dce9d90dcba38834317d7e62f36d0f01f343ceac0d99444227ff04c654f1d497f498645ddb1d9357ef3d8a48091efea6ff21e9f6fd450c4434e16713cb092944c8c9debd947393ab4d7de4b59742baff463b959f9fb4fa6347aa18db86066a7771f01b898a9cb01ce8b2fd170f26d46597a91190cb384d88e37600ea4787776659f75a7b4bad0e1eaeb44c0269742ef97435251ad62cbc03a85ac1da38e4a1a8b60f6102740ccf6a1aac21d0dbf768a852a91659b3559b04112aa76517252bb830683e023cd82adbf58c80cac441a8baf82c0bfa23e868932a7eb7cb9e3a4090f2ee19e7e6b1b6532768d0ae38caed0ae8547c2a26a296c7d7cf98a40e3cd1a68a0d703d260580d66bafbc92621f41f278166e35b5e6d389bc9d3977011c9a86b58facc4456614dec3ed8030c2e52de638ae84180aa50847b8829230242e23be9fe82c3141518b666817604e73d3eb48d1e62d052104ff86c7fbed1ecad8ee2efad2ed02d52e4bab84f17e221df296cf245a4ddd5a690c970b3468de4fc7d95d7ae9cf5debfc6c9a6035bc7889b2331b3d9be2c08d4e6e52e0a09f585f1025275ef22a3cdbab16019bb3b9d3906eac2602c5d2a75fb54f5666fcbb0969b50449ba5e68f9444f7ca3decd2bb40c15ad2b0be603185e85e832a42ee2e74cee4e3164947c87a2ec4fd91d65dfba5aa1caf2d902630a0d3da05e2a8155db40f9a087f58a7aad270dce810376371a9266aa3aae9e17209d5c389b31ed144302ff5f6114fb337b47e1bb6e3a3820ee73ba3f112b9e6012841f919d4a537234a736ceb14ea876ecf2f1fbe4e7952ca4bf11a48b8543019f4d8ddb68473059d0309183152d82347b1387385d98c604e84a9f5ff73d4de67dec0ca15a0d5178e57618f6d226201bfee37ad0b616ec15cc70bb43711934a183cd198e7d5cd3be4388c25e2255b68333388448ea559eda4b826445b9961da52dcf543124f8cc03ed4149adea06cb095495f665bf2a500eb744a03339f8003da87ce2d515667140c8d6ca9d1a6e96b7383d25b22e7da6b8f3a299e0e254fbb72c1a25f6f667b493b2a0c7813d18cb5811bd81931d179061aa84ddecab0f2f434bfad4a2d007f2e9fd99effc24390e0a55cd52bb544f3b42326c75a9a38724901bf4eb4e71a89e23f13fe32e8ac73c7166169848d68a6256b0062b59e11e7b3d622d511b20bc536e4a9f110945f1582ad343eb11661d6241d9cde307cc95eadfecf4dac78d38c64c98879832dbeca470cb2d3e2446a7af29f7d712784c5e9be3855e5105194548bd5d6ac9c04cf7962355cca8eb950a756bd1615c775c3a364c0930d5a53e79180f40143b89d4b3a550e1224452d7d26c2f1d841dd535d13975ef32c1cbe68663664f1af97a96153fa4fca0655cd028a7be0bcd14a06470846e2a3941b676aa33de2cb6f289b1d151a41b50a4cf2c9b312e97e5c4ff48030fea3202224e39179a89445e2480463bc714571ec785a4725827e51532b86f2a380ba603da8590be29c430fb61c728e55c7113aa73e8bfed8a0709fbf5f9544427d0e0621984354b805e0422ddb44753a2821f25668e326a456aed00538043a0b2394d3d78f490f0aca3dcf777def9137a35f8668492147d560ce54e1531e10297696194b0599f490bf6f24e9069a6b866d40aa2931deba81a70575158f9a1160e5dfc8a6fbb0a5ac41967c614229479b327852fb7f021315d6d973bd15f686e2381b2bdf50bfd18d2cd33970d50b451a165b6edf46f4c37ef25dc428402935c42a5e5333520ad9b6e11cc884578c7012dfaa31c7ce891e74ac0f5cee36e596e435cff33bb53e15b473a3910e777d23f11979e20c9b12cef68a5375c2ed066ec04b85497dced128672b0e11acb4c60eaaaa81ed1909ebd6c625da786839f2b053ae865050e71923331a689bd4c02297e96195a71fe4b88c3632a7f0e6e9ec515a295a84fe826e2f45ee543ab1660c77c6bec1ff488aaad3a15851714aaf309cc2a405d667ec2b0f4c48422602a965d0a7143428f5ab5dc69f9f53c091d6233fbe1632ce5a47853aa38d4bf8534000bd35f7a20df20eb2a713cadf4985660823b088c832e0eea9f562702f0ee876e5b106947742faa37fe4a51dd42dee60f17089722743931967556ac8916b4b0993242fb5a9ec8d08a75911f97565aa56d30c39383158abf723242e872d052bfa65a1d7480ad517564cb5ceed8e2471f7dce8ab6ba0a5a621a657206e2da59b317850bb7fb08318f5d6d2ef4d714e815a7a23c6a88417575f92bc232f6285088f4a67a60f08fd55f25c3685f01e0ae75aa9e0efdd53dc5db21bc5e2e4e5332c06214e28c8b9300361214721aa7129abc210f005dfce3ba2c256359c8d726848b4b80bc415def1487e2b9127d736ea370ce53718f1e5a690c960f54d4bddc879aff75f15e54a8f700404970b92d3d532a8935695cf0c3dff318e72aba4ecf258e39d7d8be29d10a5bb52a082d2a4cff13906d8072d99c04b1f40849063c862de788ef5f2758ddc9d6e9ec1fb0ef6a165cb700b9e7587be7a14752ed2aa8386ca1705d5f6026416a4bf31346252724933101d65c45be5f9c624d2ba26ea6e889130fae8761e66c983b96de005ea1a7cb56bceb6539f17d532a16b716b9ec03a50602a90e257dd1725c268ddfba7080f5806a338735aeb97c397d3b395304e3d3a6fbc70d1176a68090adeb216ee3d37587fc9daeac84ff6ae49b3ea2c8dc639be56b88e333f5f13a5e97a714a8039c6026c3839de616c4bf4016f01a97448e2d0037a8fdde8f63f8ed143d753943c30a52fab567a29796b096813362bfb34a03ee37cf45cb9de20e4746902cb022aa29a47271001b7ca489dac22d8ec74b49c6765fea47b3cbb51927628e33690671cdbcd915c295dbf9889887be5cae3ff1fe5dbc6711998b6a822a40d12a2ea62f77498af54bbee7b24c7cb1279edc20ef2b30b6bb4ead73e3c4bb65b34016918850812bda9d781ec6bb6b6986e2bdbe0bfd4ada035c2bde2515312ccf141d3ab46fa3887ed78ad73afcfac142403fb92b8c61a75a4833282b7faa03481d33d89dc6c422dff03a99483663da4eca3a51826f13b33255a8e998a29251810f3adf1104c130b5d3ab74e28a0007d5ecf8d4368f5e848305db020fddfc8b20be607370d6e0c8c93edf3639d6bc4e3929bc1c7462f14aff0ff6305497ed39ac76bb528e32b1237c146ed02b614a560d0f3c44154abec79fb01fb710b621aa0a07441c7480c30d307e011f75b0ac12057fe96e7d9da2ccfb8979aa38710a01f39294410ed677368b2241bc1a6754611075ba8942d9e4c19fc8fba63355a4a247185bf4098ee80a870358c05232b146770a636bb37a7380ee0b712075ca0476d602e19ed3c31082c6d7b65b21ac2bf55f49dadd455fbaefa0ea92f3e53a48c0430fb43725e6bbf821cb0155e6efad17f0d59ce25f0fb74c5289fe7175f07190b9ed08a72fd2d15e3a283baa6bac786ae9e0771e20a1c9c38a53a9869db681724143e63f7737f64ace88ff77a6dd027690d2fdc3eab866d14e0f65dacfbb9d02df3acecc81b8af736b318b74594a3ec124e9e0dfdd115e26a8b5c70acbcfb587e182f396248a4fadcafe709d14d29b945b301dd579a8ce2eed89470ca3d7c47b4886979e3cf248046145734d34a7de3fa6c51707f11a1ff260e481a19f9e0c0abe70f6f9fe9d01488a38bb9beeb3f07773f0302461d047bccca4ebc1bc8ac32b1ad8bc1d0f270e490349d04fc3d60c330d9c385984313e40f9fc7acde6c0d163f4587339c6325e3bc81f745d44f432c7eb729084460f696e15829cbcb4a6b7a73b7a3785d3c07d857cdc0400120d81fd3773a80f63d7eac234c2effc128372647f62ec7d24b4215dc190d0a53566fed956e2341c8940b44f67ad2dcb2e9f2c3b78d244e1b7c8d56ac6de3ea861919e2608311bdb362f3f102144ff2349878321223ef115c11584d921d466295ca478c71c76d63ae57a168aef2a38f9e76f74c9fc89a197f539d3b11f109abf81e658be9d551106d2a8336581fe4b2fdebd1d715e1cfb0714da89912079cf616bce84b906c2883b22f2311847370f445a2142692296c7def3c704001e01617d654500ea94c59cae6bd187d1ec2d8e88556b96545043c67997982f93916224827e3b6b52cf3a2eda575b961d35e3d16c8c76df5601af9544936d8d6bb71e564d9f97305f758b053d5121fce23195e16a2c1f956c2a420fcf9ccedd54e4c016c6a0aa691287bb0bfaa345b1dbf448c7b35279f69ae9ce6991ad4510207845dcad639834f6da749e53ac22e6c1f8e85db048617ae6a8b100b0b40072d8e6410f056816e3f0ec54405a37d1917dcca7d702d74fb1bb3aee8733b9a7f5896db32ff8869629d0fd85549d448270e3110c4b22e7d191213a8c1d6d2c644fa41131ac9569dd6f43324e09d136d5db32a2756042a4b9c66562697d0746d6b93eb6cd4b30c26b789863c1bc50138faef8d8ec9c6d4a2cf3b22dbbb0b610aabdc47d04ebd0d116621a8211065e4b2ecabb408bf6708b90cce5bd74750e97fac2c067f77a793bfcb4b1f8858826774304645a8669da88a45ea2a55c13417643826cdca9909c3877a19181f13352be0394279fa0a093d882bd830a27013878a40de13169893ea6504cc225f6a6866d700f33fa9caa1fcb1418d049f2c270928c204855366a15eb055a168363204519a2b9507aea69e7931922311d172a620d5f15c9419ed2547e3f92d2a4bc807a20cf85d09a39085cf46d0487b6070248a5d1054dc9363c5d4048a35180010be59c230d185c1347a4e848b01768cb99f668b76599881951349af99d506768cdb2cd42368231bf1bfd07ca8cc0f17e54de77fd66cd90a25d3a11a1c6d87529c23aac061ab9ec5695ac2d4b11a65cb0879b4237337b6b211e017954c556dda20045f9af0285ec336b654947b05f26f6f2c3baa9994f4b049fc4d5b418041b48a4d4de9fc60515f11737bc54109cf4414727055bbd7364b15cf7e25be8957e503f616cd89081a4d8bba7003aade703b724000625ef1d935c806d88e103b9044e356f3ae7e310146080073b5c84a70af0fd54bbf0f3ef910ba98141172184f4bea7aecefc38963007ebc3bc0e708589fd1f8bed191f9be66ce663baec83371963ffb348d3d1f26838c2cd607b461fa9563f1daad85d25c3cc2668946ce10f9c96e14a3a9842e6bfff20751384ac8a2762ab14742a87b0507f1fa282b491bab321e8cb3faeac7107747585883121cd29b2b8fa6ba6700728ce149cfad02369ebc04e6997f06141ad0f9800c57df55862d32d2a47330d4fefeaddbaf28ea717367302f4b9485bf9acd65c383674ead7217b5b066321493054d5cb7465ede5764ac0486d907d4ebaf63920a219160e6d000ae18022fa0a87f87b8070b098bb0a874f957d708018d52d0f0eb51151381c4ae8e0e01ff8130e940569b609073c313638a4dfb18483d42c34382c054d5f976d3238088353348f200c0e19ef15e160b2e682c3aad6211c80105970e02508c2a1f219151ccc78180fe70f0507e3f3303974bff66dcf38d988b703051632ec1588e0a01c7c646530d47dd779ff7acda87debf7a2bf740a650df44da87229aef5d79a2b6a5252a3e05842f4d7e832136e8225a19471e2d7a69473395ce2c968868e2682f918e0251d82655dafbca0f49c73c0a20d880bea5f1226413f05ba4dac3cb58021f31acc149ed4e6920d36f00156cf6cd672efd5d35699a4210a5ca23ebd3f810a14b7db85a1b70aca40805d4ae851eb2e86015a2dbda9f142bf115408bf1027ac71721f99d890a0a094c20ba259bd80b0f3864f6680ffec5139328ff4c18601b6a44e66474bb27425d0a56dda184d550962e4fd54c5482efeed580e3025c5fcdf2e2d95e31efa92b7c59cc5879cc946f5157c84e10a60521ca63d8c9a82dca0100fd7c22288e238938b4f242467373441468da6ba2d4e4e1483192ff5372915a19ca03fffcc50a08d884cc86fdfdbe2a1989522f24e9199409d795581862087d8a31b32d53c8f940c4740bd71977fd13930ae612789ee7e258344a68d53ea4ebb8c0b323cdbbcdaf5c203e17406ec795186def8de4ac40a1d7ecd8efa3a3a61b676c233c2537aa8b569797da3192b3f38db374b43853aa739277ca9353992249d6d56666d21b6e835e21872df1f0301b3a610a25d2d2fe69caa719146ad9643c2bd50078e6ee4a6b8c31d4ae1ec1967cef230c645207f984c90e6528c893500d4570ada13b61e37d10b9aa7a00825be66ab36b76dc00aea0f120bddf5442b29577591e0578d094f700586433b6f69ae2656908a29310b7e73af6e566db494db580b06efd72b42fe11a4b5c36c260b811e5df2290b34872e10989f160699f540117fc4dd1e412e10a2ec9aa92f0e98281f4cdb08f13b56ce67dfc037b7ecab433dff73f607455551173ab8183b53d5aeff9cd66a69ad4af8b9a3c64a542904bbb41c5013907fcb3faef3eaae60c1304e1807eba4133c7921a4cb4dd35794b31e615af55c8e48a80665080368634a0d1c967939b4e8725bc242bc0ee183be52aa79b69701ec2379f55009454c870644b3c4471a6bf92ff634370956a04c81d0eb5f65c4c9d96144251ee098e7b2243ea846357896eca15af66ad8eb3910f274ac70136bb9fa1a71b2b6bb62cba54b6b86654d728fe76f1f30572911e8fd46ca6eb9dfd595f5a78dae6deac967a7207355094887690c5d1fda7296d6b27115feb973515615c4aa368b8dbf58dea8ebf6286d89380fe8e2ee04e8a25f4082f11567aaec12edef37219078e3b1e02f99e52054eb9f7208b453c0c63e640b284a4392aef74dc71f6b84c6d629d0cecae106fa117143063fb09b6116c38854e8aca5e1478d887cfb4520a98be0eff8b8a6ef491e136fefaf2e207b448f16f52bd312c2ceaa2a360c2606991c68ead2577fc8fc3a7e1f9f3088a5f6fdb48f8f1d71c55f32ffe070200c1034d60d3233e95a4c6dbb5c21306503aa51e88bfbae681734f03b31b4ee2cfe65c7f3ac15cd229702bf533e54cd6dca282771f809373b54dad008d4068a74e378b4d0b4c574434155f00ffa83a488ea87dd9b2a62fae1252049e670e76d26d592501483b09e1c4bbdcd511fbbdcbc84d767c935cdcb859c197c7a2cafb5c56d303b16358cbcef7664340623355455000196e20c4c1e0654a2d032d60703ec99de0227a02d91ffc18530342986f8ce8419880d2d4de030a4375043b2add64c7990e86859ff8196dc3eb5eb19b9660f825ef3ac4fc53b53589e5ba63e8514bc346bc2ee51e62c7777d1cd3c88a43ac52f886e77b95280c8e7e34a38aba8e6eb15dcb6381f603aa0b2e2acb3150cba8848c3e93c0cf119f882854858a36db844a993f3923b484ad728406f4ab42152b9f046644a2281e1360e354fd70c2734ee364d9fae00ca1a1b68bde66c41d6bb84443d12f2f4337654a98c9a57387296c1e4c750c8a9e9446a0b7c74b4173dfd500c40544cd5d15e0a4e8b9460273ddefdbb5db8102a3debf1f5b438600cede3d288e18bc97d64cad6681548ec079866deb5339644634f6736af11f4c05280b8c394fa2ff490d570ed09b4117b87903e8827364ae49502e195f815c3ef0d437fc5b9eded949f3f8efcdfed7d01930f2922253d69907f8cac204e003411be4f3f762144ccd52081b47b882371d79712f41e92a5c0820ef7997af49456f93979e5d82298c65d1e442b51cf3c52a26320bb2417a7750b7374c5eab9fd68b428b0fadcf8f40e50980cc7368676ba7e71258f4f71dd39cd673af37cbcdcbb14ec1cb193313e6fb23cd0daa08be6d768b88ed6eaa55ccf6b2ff8fddcbf5fc014f3c6ba588e2ee2981bce00bbcde2983212c85f294d2e06cb97413a120ccac402f5706556a4e1104e888f9b22aa5297ae82e4c906b299198cf91919e39d5304e43c46527ac34658b91b9480804414be779aeaef256027d8b0a068dd0c0203f0b53c0d370c22e2817cb93b4def82bafd718b353d5d67030784745ca722494df0af08be3f3de2e16a8b9a9692ce6dac49012f6238ab65fb6c57bfed031f431756a17416b1c2eb9b4c97fb6a7a8bef0c86d8238db585eb686484984ea44d7eb88620e1e14d794998144ba8ed1c9f52c8c11ba67e48d918a92f25ad5344b20edc4c7cce726dee2b7f4495bada9d8e6283e7bbc7538d01e1823bb1162a3cba9ecaafcc4b5c469dc98ec7d84f047df78877e44a5106164daa26f487e485e84ed5138b735a56064fdfbbc15bcb44720ed4a69c863db3cce9cb7a63cb510f4d70af2aa60d6bfdb6614e4d2d5d73297b3562cb4c2cd76044b0c61adb6454af6368ce89588d4b5cc4c0a38f3bec1e9b24730dba0821e2e2a12ba0f1a1975c966e8b80f5b4d40ebc980d79b7cfb443e1e6bc9681d0efa8e79a4a3e6338fb4eecbaeb975158f1ce92b6cfcd752369d876042c232d3d2ee72bf6a4675d99861ffb8c5b226e3b10f34806ab29a73798c4b3a4671aa606eca4d907aa0f36ae50cf7b82f81f2261086543c534552cbb90c73a8b52a57e6ce363d100543385f32d44aa69454688209b717cdd33c501dec16247a0356bec052671c9cc72c5513d7b6bfcb0134a7dc1dce0e77b07141ede89076e8c26fc067f8d9f0b26517b690d6935ebdf70e75c8d8c513880c931f86789f11c4d38949be6c4f11e8b71c6c324962d348c29e62af339dbe71b3b18bf61038eee6da134758567ae7d474b4e3000170e07c953274bf64104b5ca08c2c6aec1e6744f6ecec7ce4362ba7686b64564423781fbeb27b2c9ac1d7837e9a45cf1a4cf2d25b81e23548def7aa94ba02990af2c0406970d7a5ef242ff5954446fba5aad0f0dd50f73b5a268696316ccf3dae7def7d74e52909b5266fd80d221e5a9070ccbc45a81086a4919c53ba222e6da2a8d3602b92d08408e646fe352feed4ff5ef182296cfdabe50184599ab1edc441799fc4120c3caaaf8d34326c4d28cb07aa2ab68623cf711d55b453550488b120498602284128c64cd4eccdc3dc2201be552c29fe206ccf44592236914809e79d54efab489ccb2440adb7244c5f9f93e3b65c6e12ac1b400bae6089e61ce63724d4a1b6fb9fe14458fcaeef8fbe7daa2192d448bcba1c368f10377541663f5d6bf535acc00a3ec7af656699c832074070d02758d9fe72048e698eff829c4b18893995a6323b0f8aad5f0b632cbdc5d40de24c424dce64b4293ca6d8f8e30780d178a9a89f7da7750d6ad498d3a8f3400b714b10cc2f90b24ce51daaba0827f0a53ee20a56385919e26186cd64d05ed05ddb5b421fc91c4259d9e82bf9d89cf81664df440b992cfe0094b1b86334f7450a7e0d01d809aa28df65b94e115702bf78e9189b6f903913148b3b223acb550ad9c055c8682327ea59bb2e7d98bb37e96ebfbd4ce613935460823b5a5bcfd10e49ebdb7d18b1e2d9273b65dc200562eecda8034b20d382da529fc08da7e3cbe207ac2714f2811ef83cdad140262d0152097be5170b93842577a633b6c44874110b45e7642f4e5cafad1c81d0973eb42e603e2632c792ca91d8dc85878702f899eb76cda79198d67c8031752454f3712ed88d005bd39144672927aa58da4acce348917388aa8be77d0cd2e5a0b122a4eec0ccb5c8813429014f429421588ab4972e2d715b8f24e7d8cf0edd14307aa20065c5806eb36624419feeb91e03bc5e021a314cab3cce4fec6ebec78002331b293b200a8040370d1880907f31be7eeea7e0f93fe7f75197a84310865c3f71b91d94d8315e3010b4854ef62c86ede9b96dd63753cf07657ed914d16447cdaebb8b8d48b8d036f8fd04d46564a670912b4c9cd99cb722e8d682cc7c044386ac343aeba697680e993919638b78348109fde32df5696e7a064d91b9516341d61ee09aa7ef89222cbf9eb30e133b5b2c264f5a0e6e5750b53cb594fa1b0f7b817da44bae435fcbca33d4705fc6d539ba42341eebc8c9f500fb5e91e27ec8af68e5be592db603582529fa37213ad52c28953b23e17a203d3c7f0a0f1b2fc384d3e399dc3ec1c632bdcb96053d3c39e9f186419745daf69dcc097fecbe66bda196872530ab2262ff0686f65cd4d2541558df38b0805589d358084a3035ab70719684e676e1374d84febfa8197747bda05c82eea0ef2c8a167be65a56202152161b448de69c8e23f405dfdd86b22e390a9d22f900549e38fe2424a2d2476e800c7bd011a7b1d5395b27b6f93f8809bb05b8030b04d2d896ab8169cbf2d565d7c7c9e926c469189b2c0ddd03c32b13e80ab011e6c2c59963a65b4783d81463358619152ac59d246a0c4ad1ad9c51ed28495c453bc43e6ee5e90d455beaa9eec13553ca578048b0eb8d50bcf6961d37aaa406c7ae99e0e33541df13eb479559aa2c1a9e01d5e7c9f7fbda898ecbfb8853a4bc8e79a944731e8f56dbbf179bfeff7a78c671fa9704fae5010026c32ab665999ac5e4f40aa477dc848cce25df8d04883e81e8185a001f673c04656bff83779d19edb913b1d7b6265d90ac2a61f295ac44635ddb6f729c9ee9cfabf575401ac12ddbae9666ee8bed61753150ed46aa1b159f3475f445ab9c784bf8ad6385bbe821259cb4a69d62489ef17d8e5c64dec15d3637f1a50f96fbccce15c567ca53487d647055c7829244de8f9bac085cca33c82ecab82eda2aca53bae8235167b2a83015800eb53945cbb45dea2cc9669df33b15a8689a33850779b5774796e8daab131516217e82c01765040c482d32cb4b054079bf7472cd3f33e89126d5e23db64a1c99996efecaeb730963f84819dd51d2ad53d60d92c083c6cd833f93698753679e2bd8c9835568862cffac1406362102f6dbc55c15628b0f52589a57b0ba731c2a1045360db883ab09eff93606ab334583095543c420214a959b777581fbcb049d17731a5e7cc77154aa72e48cdc2e86bf6c89828f6fdeab38934c92ecfb2a042e15c804bccc1b9ad9bfd5b433291daa442aec5832e5f1a50019bc62284235c9d0833992d58d0267ec1c98cfe01c2b6c5afbc95a20b584e9ad8c35cfc66ac8e0e67d5fde83a86ca9a3398956cbb3a0c721f0b5d7fb4fda3a0090eed508a64833281a22556ee301172c795742f7c721c735d68d61d2aca401e9403d21286617e95286151c6b10d29d46cc7a9ecdc971513ceaa12271162bccc45423e56a110ca5f327fc5195e01303894a8450bfef1f0ec2cea9d547f1e2d8d897cb5d815188ea1a7d098ffd0408664026c85a90111bda314d7ea7a9f86aecd087a2e289eaddcfcc23ba0cb1e8305375ed924ec2606bafc8da399739abf8d3fd1d1df077d6c89b6adc39a9c63dbfde858c24633594be2faa28c368f44dfb157b526fe8473f89caa2980b651ac433434a63b129d6ce6549d6d16aa994a9ffb54178284e5cc61121b78366d646354556a97c7e3f2577dc60847d177c332885eee9f15d7cf551488452590cb6a5785286424d0d93cccb6dd4cabcd7b580f4ff420ff8c6965a073f8b201fb0542e4b0385a9613df693a23435efde68069300675ae9141462505fd1a50abe528ed3e99260cf8bcaa69f6894b182e2b42fb5eabc4689fe48a97da73095622ccf6f5a0cafff52ee8891ea0a3202c6d84f634d9b3509ba9381943757bb3275114a81950ebe1284d5da6ad2ecbac11e58d851f6dcb5535cc18a91bd83c54720a60c37d6ac06f1fbcc04f6498f32c992f141ca99958fbce74fc1ade64503e6ca566bfab448c88f1621e1805779264f2782b44432e772fbffcaa0728f1d406bbce60303661a747079a8aad07065aa8be6a36d1939498e8eb94bb4f2d80158fd96ca0898d9608809464844550675a9e9a2b4fce6a13565cc4e591701271de76e4ae2a9b9e42b40d429aac978b3894c6acf1bd861428ab489a8b7da7f044466a57b96bad2826231c41724ca23f6a88618ab9efbb5ee52177b36360bfba2be8b606864761282d24b141f92959b85c13486d253332ce969f1404d96a76acd748a6a577ceb6d5afe6a43550e77a2e3714d7534c51b8a56970c10c28cca9226ee36e4123cb8e45170271b04863afed31b751ba4e9a7a513f28c9a93d217676a29fb2afa2145004f224b63dae228e5aa611c343079bed5bc2cd5f6cb4de2053481770c9f545d3205a388019885c720317075c4647773e85a327f95ed015e2ed5cd5eb2d85c0d5e6221d55b6adb09b6f537f3a23dfaecccf056cc1a2256b61012a35a35ec09183accf292c5803182debcb06ee2a96937c0661269f1d3fdb83197da176a89906735de4295772a69bb215ac2db19561d415ba5f40cfb36cf5676102b4d2c3a5304a2b275d648b19cf566e0627590f434f48c10079609279c433cf21bac747a83d7ddc024ba25de8c2a09d326aa14bcbb6fc735c2c3ce08cd8e4a03f11986eff7c20f312bea9f8801ed0f4f058026044b9d7e68b6bc267c6b99f45886c6fcbeb632c4ab11149e6682eb0a564984c2f7f13894d1c898f6146225fb299c3962552bc2a81bd9e0c2aa23f341cf4c2ca8f58e11a0521848d92a8fa54e720ac90d7a8d4febab517b753723b1f1e803dc522098aa151e36afc6f2ec918b5e25ad555e51d260129fc195527344aceccc822ecd6cae73698206d951cfe62fa1f1af522f7aeab34d437b1cc1542a9e80194fa13d1648d629b2efd34cefb25485a645681b10f5aa37a00047a092dcdebb71de26ac2eefe62c488598132785d99c0db00626babc47b28a0ddc26e8a1ee38a91a24dc40f2afa89ffb843fe1d84560ebfd4952fdc45450b7336d623701db4448c8ee3fef151d748e0093404f2bb40c6a876f08a1452f8ea07fc0949c60678fab0a26c4ff5a124b04a2265cf7b2e33e49d1187a940013e1519da7f72bbe6071b28dc1e5538bbe8c370c56f21e53f4dc4376b826c9e715e8ad368125ba29f7e9c64fd67b5da57b64f05aefbb5148da5069ca89f89693e9c5534319e7586f6d3aee2c9ba2ff159a2fb264b08a24a60d97f2145db444bcb592e670b5f7f77c37ac256d85670af296f4538bc68ac633d3dd69388a9f81908e8db382f3d7a80974eb3ac27cec73bb318b08225cc8a0694df415e04c855386a609c81c0f905da47d4789e3902133423304da86a334184c865fa76ee1f1f9ae4a806c4c1660a3762baec1faa6a0b94ee40649643b094730e37d11159429bf378a656daf5ff948ce4595519a20c60e2160bc83faa3168e0b5a698318b418642147766965eee82465997bb447842364e537085ae080bb154dfa73aebf3985771e0833af7f782daf3540c7de15ed4318e123a1ffdb4f85548125e2edb134a78f3a7c67f506fa7eacc61e149101b5802c211c9e0b47d89810930c1667baf7a745133d329c73f65c3c22660ef960bd18c570d8dc8989c3b4064e705d3da54adfe8ff77ea513be081380fe65aa985cc239ed0c2f13d995bb6ff50decc6c27f3a5e6f29b4b72e87e7b029e5d4536e28dc1da1a8858a775078628f022ec70d3d3f5523a33198a74a14c68fccbb53116914e11c79faf37b130046835065b93b005ea93d22720e30a0267597f27cb7e65bea558e2105149da12c6104c64f628f79f804464333d861556a057f1e7e92dca3655a7be427447f432e6e6f8e1efef266906085540b646bd1059a34b932f6ccc2a0f625f08d50e3d1b2709c83360e4f8ca1a261c85a83d45fe242b5bf8d86772bd78f1726b12bc9cb6064a52aff1a4e2261b92e473acbc91d981c9803df45ef872d0f6e64c7a46542333270cb928a482cec8d57a0982c720ea4113c74a2be85c91aa329a8382af67980f817d585dbf10603fe927004dc0b1cef5dc827a0a80366139c7cac9b418a3315f63799a4422362c9625e8974780f0da7072a67810e7b0515dc409395c7bd0079f4373d3e3b08d849783d26517593eca3414ca58bea2f73dd18c2a6bff0a7203c13a77a23c08d780f8322d1be23eb6a3ad12014d68b40acaf4140074978e808c4002e6311f96e7f7b91498c9e5c9dcd4eb3e4a597f3bda90c2336d2c2e72f4d0c2669ab6e55009ed5046ad87086534fde1ec539a49f8fe738f7c702fd2e397a309116fc31ec9324ab37fa2633972d1aa542b8410095a34f4939063e9a9f26a580326c75fd03c757905b4eeb87d1e5705d49aba83f91e8148074eb98709ffb52cfe0319b2d492e641914a6921c4f157d89026a0dba895733c7a237eceb40ac3a9fccaf48011f64fc8a7f9e0926e1c6cb45a64adde3a7a55d8bc6e3cbb9e0e59a02b9eb4746852384c5873709fcf926531c8cb3aac0a084e80858dd7ac51d943b611896d2594ac593e84a08c08ada8756f891ea3d815925a3c0d90da0a82fe168276d4ba823fd9f5fb61f89078c5143262d542dc87861b209c1a04076d9d513610168c03ff9181adf240058223a24294bec3a975b214e0b2fb1be1ba1be5114a5f503f84dba339f50342bf5afc280f900543155b43763c05712dd07fb8a5be65154d085f25121f3bdb2b82c5faa453c49b50295b1ad9f458cbec88be64e8235effa4c9b912c69431d7420002db9c29f749b510041eaf6496743872e859e8054c60f999ded0b2860aec44371758853dbe38ced856dfcf031c54edba9398e205c4160f8849cd44887f0dd19e0008bc517bbbd8a6714481ef275a60c2dc0bf81174c99d7dc9110a039143af3384de4f2958f0ec6438b2f5067bfe98750565b185dac4d763e2ad060d3f59e821d4147256a6bd8788b251511718b66fdefe6ace600e04d33530cbe764271fb034cf711aeb2e0dd4e30e8fd7f06343c273341c35f843107e02a6c9b2ff22c041942b90eb3c75313786bfe9d444963f1655922a40ac208705f34417ffd2b66167231696e82757b11a66ab2b102fd30c55c5c60f3059c68fb22a00395bf46d39a6b33dd70d00c5a067d0d5dcb986f61ce22d72207e090ca7885d1273b56127123602ea8482aad352d8c3f7df64de0225414712461066229a59bc80e975594258082749cb72417715e7e431108a24fc568443b0d132d3d70fdc1eb364e043c4c2b277d05b05f1130e42f8cdcb231048534ef6971739005329b813ac233ce5b2a7b0a0f435ace129b29aadcfabd085e6e02be5e7553e555a9759342d6d8e6b797b1ed4c94856a98d4414873df224e7f284accccc62eaadf80d2118951be0247d4106bf7c060618cca87f5642b655a968b90cd274dd0db543c7a946fcc1d2a1412db8a6527a4b57ed11537d0fc330c78b956eb0f992eb2506fcc5d88ff826e713ba66fb5dda2f105c770d61cf28cc94f37522594a687d86ae55074818b7b471222683b4019fc9a1ca11c25bf8774ed103b9bdc142ead89182cca2229bef518e0063b37534e2a08b823579348118dc30fb7e3cb20124ef3376c24e08cb750ca9b29bc01253a622a873dcde188062ca447919deaf9fb8f5f15c8c3d3c7553b7778dd21fc55d2bf534994b414f91e2a4a203e74232b49d4fb0235153eb4aef6c7e64c55fcf1625f04a3066f6b3cee74a04501470d8d24f18004aa27e4aaf5cdd494d34112a501de61518642a0cd8b2282792ed64bd68303768479c862156f1d8bf0879510eaaabb83f552e67163af7359660a3fb5a76e89d21337ca5b05d9d3c3af9769fb3c6523d5edb7dcb4d4676fb4f81d68e9b863fa9e6c0db1849a4c42b5b85685ea4842d8624c910e5a6a3bc3971f4f7cb6adeeff6b446a19dd20703962b87bf0e0cdc1f87ceaceca2a694915cef12862ef6c53e67f91fea2179b91b8eb78c793016a061432fbf37a11677dd7e41531850f38a008e63d14840156e1a11442e45a8094840a9f0e53c7aae4ef495d1f8f973abcd3ea43ca2f16c82e092a800855870032e5b33edb2c1e8b2d41c690f964bad7e99bf9c11fd92665fb9ddd98934a3a6ea103c77e0b601dd218f6fd1fb40f3f263d63c8cdca68cc5dd2e2a5118b52065f7c90067a84f993381f49dae948f76340b357ee230175c4265e7b9f56177c13a2f94197e7ceed8b3749461fbf0b159b11af695a3fa2b181e4b58572ca1daf49297815dcbe1b841be578e89a510a8e7a9b075bf42fd3e4425070e2ee9cf465f71f41ae5760f26fc0f876d21301a0d97019ae846b3c0b3a376da3b219c64d85d840c530d315b1d50f2176a4f69930caf059f32ffbe58fba0f93329d5e91a75ead9579f87cf86400fa163c8ee6658a28dd15104326c1cb9483fa4f813ecdbc8c0ce41fdeee54294a52f5fb8212c03cef533423b7dfbd1915bd6e38c5ce42f501a33bcf26b85422e8985476f353ccbf6cbcd280d1564f428c2f37398677e574e5a093245bf9ca3e4a1948a2c60f4c567212cb9c58d312bb666c96425024dd6477b76b478eb92a9ac6ab5d5c52a8e18e14693763c789c88d7d0366be6215c2bcb80076306007b293ae2192dc754064a8f2f7b6cc19e9eeb6d8a184fa9bf24502bfd0a0d11a610193f7e924d70e84480f620d12fa48ecb5dd5739031492770d184005902b42032d57b5f3cdd04cff8bee86dc1b1131f523ecac58af7ec8ffdd0174c893bba6160963318113d9251f32bbf6f52951ff6efc72967a674deff1d733cfa921d9576327569876993a252b13baa473bc5047c54966200feaa0ad9b5ee2a54ccf72e0289303d66b82a8dc5de5869f391fe943a1106ee75b4d6c48a321901e90b3ad78368e9b321d485ba00f49401dc8aa5d1301e8fee94cec0a073c3e6c595410ae245f906ea219339c295646f4934844feae41090350df0c13741a4afcafbbb29b338d042ca2be044db44624056d5dda6dbba082dcc104f80b3ced169e36c49b9ddc068204ee5dd2049912035992eef4723409b34dc3973d1e09b6df10a508d1b29a2595d70b8033c0bf90f42062b8c26f6898ca248975755d8b636f4dd4f2e93d0117aa8d80d2f16e61e04fc6c38f55c2a11a82d2db9701512c95405bf574a1415c3b61eeb14120ffd7b95e4a16d77a60a89a67c013d851d0410aa5409959f53313467be6ef3a13063ecac52bd73f3026dfe74c8b8aa94492a6034280cf00eb14cae6f91df1caec61c5a4bbb617bf5b844eb1aad87cc9af2eef455096d9ba2b97998ac2ec244e9707d568ca6e5d154fbf316c32afcab62a7dcd46dbf7e05222129fb89a157210b90e1d046f2bde9346cea9019cb0750e7a4aa25d14a964e254249a5281e22926dab9c499962d2cd561e7f4428a8e632bff0c05d6e264f36fa1859699114905156b93515b2372c972462b2256b77e67beb67c9f67b6e18da850002c35a5daca918f1abbe22e88d82e0553f7d05ec8a2d7a439b086573157f5475a15b3f99612e93ecadf7a5155a4a7020a7cfc0fb64841c4dd041e6e84190e5b201232e27455e755df78aec480f618ce78b767c4849e6f72803d8639d7dff762723bba9b7de2fdf1752563ad5390326a553ee86e00ab2a0c0c8cf6768e8308ba00bda1dff3f815e5fff066a2dcc71087fd806fdd444444c8de72efa30e8b0d9d0d3b36f5527d3822c8b3632e52940e0be4c9b1729fd4439269419eb8531297d32afbadf65429465e402720bb954fae658505e44992b148b24aeb3aeb3a4588190c2bd31a37204edf589c7b7371362e0247421a6c5742262193ad82afa1cdee3c3a7b0f3bf19c4942bf81e76075b0abd329a55527d39fb505f3b3ba2a122a8e7e104a536934509a4aa507a5a93e15476391e923402b4057e4e9354075804e6f0395813680aab653fa4c696a9513864caf83d2d45ac5d107a034d54ac5d13f04c8f42e509afaa300aa124fafa2aaf0f438a86a3c3d8aaa4200a034f58a0daa4374d7aa5936d560235171f4bdd3251904379f3d13432857dcb428c8fab36948a834ed828aa3d2f44e0d1a954ad34930159f4ad33ca54f954ad34b5e2577bf646a95a69bc4fcec86d1f8a934edc454af74cca6fa335a9a8544a5e9292ea834b7053b95e64e41a2c64eee77924a73693c95e652595269aecfabd2dc2a4d2acdad551c7d9ca4e4f91299578e695269ae152795e6fe541c31bbba3a3da5d2dc2615479f06cce4842475ca9a5b5e1a9595a25a328d9b4e73cb4bbfada251baa9a4f4460b7e81c1b751254c592470ba0bbe3905a9a6cbabe9825ba2797aeb9a392effc1335fde95d5ec11c8354ff8071f42a6cbdbecf3e6a5acb400a4f7b8a3e4f29ac6274e1e9de52e25a50518e1dba81925d28845049a51228d58444d03ed843e1890b96fe7b86da481c632b783ccdd5e1c63a054640e9ff7e16becdd76b61daa437c2b6999cceef78a89d59233a3553242728d8eb0e820416ff4cf15d3bdc26a61e5ccc869955a4648465c23d71196230ae896c0676751d9796b82aa5c9079a80e2474ba2572ff1cad12b90f2a93e4227cd058be5c1d69a054e48b9bd6a8e6682c87e29d52693656cb145aa5d97266d0a8549aad55a2e253693623249f2a9566738daad42acd7684a55669369d8a4364a5d26c482a8efee602563522f75b583943b8727f464ecba2c00291fba59611cbb23de43ec9888b8c2be4fe08f7b72395460a2c47727fd3e92f72bfc1c87d11d6d994941b13ed8415d8207cc87df1ca14727fec30727f7301d5d14da03790549aa6527128a148766c11f7e2b3b71c7a38ee00bd69adba3984cfdbd87e2c63b8e7387badbd78c3f23ab9b027b749a5b95272df283a3707f4c66db2650fdfef061796835d5993b659c719706ede819691b95b7bce5a54a3faa8ed757371bcadb3a1454871905eab552738f3745a756eb00d16cbfdcd89d7f2906c4f405acb733502fae156866d7aa36d16c8edf57aae5679ad56d9538a4f15c75033ed5cf38605f2f4c89a5dddd75a25ad6986dd5b932dc910ae902737cbed64db6077b6c12e6cdb6954dbd57ddf961bcc6bc16ab0e6c5de760572a755e7f6da5e5b932dc910a68034cfa365da0421b4c0020c938aacabceb86f25c76dd6da99771cd02bf7aee4388ee3388ee340ffca1304da8101210e37e5ce6b6ba92c7bf74e3d7c0e79217bddd775e0b91fbc61541cdc3d5b76dcade56d27df2a1cd71cb81db4b7666d89e479e50d2d76e1bb92071f5d0677e872f79b0c7a357f3f8059efdf39d0e3ba5757ae1f7843a338afe4b8b1babaae4fdce9587ee599237ff75e9ee7799ee7e1f313951ecf1132f4d08cc75bd2a8fa25f486e87d658eecc13c8f244df7408eecbd865eefbd5a5559700887f069321d9f28540ecd844eeb38034ef66a0e93c9c987b793c31b0a6bbb8024358a6c1df2f4589eab551e26527309efd8765a75da4eb3f823b9e2d3d3e9645d4fd704d6a8fa96b273d2cde8763a98d36bbab3e2e1f30654097e2f9bbaa48d7b08c395300fcbd394377c8ae410548e391d77d0e8aa5889427207c1cd5c5747706b9d955cdfedd82a91cb83e370075099c6472954c7cdf51e11284de7a238ea3b09432859c291329c788259a1e40af38e0545c8d58b92abd7d30f4397872a728646f5b89427a56d358dda388ee3388ee366b12d47a336ecf29a76e900a5650e0b71b9cc3b5aabcad7872ea5cccbb224739773a5cb47a35c521fe4d133a5f1601447fde8853cba0b3d7a8e56d98f60c8a3d7501d01f8e830adba713e8f6ea3552d1fa146621e7df4d147f75824f660dc9602c0eb0180aa713aeea8f19a0ecf19549ec9762693ded548a47bef482b8fd5750fbdebba6db34e6c9346559652c9bdc7b2154ce2e27ed4c53399c3de51efc6db93ca73c84c7e39eaa5f3a959902f34bc546915873d604fb3b596b3364c262f0f5bca9a4d0268e1b585df286b9e615d2ebc0ee0032809700ff6d7fff45405789d651ca7e30e1cafe93054915d970386ce729d2d3b20a4bbe9d6643a0c796bf97be685bc9156a5192cdfee6d5b5beffb3c580b9e516291b72cafde6bb5aa9e545eeea4b25f409e1ecc83d955cc7ea66c40a3b8b3943fe80d4e548640e5c7e5e814e77525eeca996fe53904863c9ebba93c87cc3c1ccbb1b43b4020ed91b46ac31e80216ff51680fb4c491b858353722fbe81c16462310170a9a4f94649b30be5004a0194a44d714f95b729eea8728646710f407903bdc1bd8592ab51d246bd603c53636f5da3d777537a5532eb65ca3344cb1d1ec9316507509906160273ae73d2aaee05c3f2a384074faa30a50a54ccfa8ea755f5491e4fb987cf1c874f7b98d7583b04657560b075954d20fd80fdfc64518419fc80e183ec79246932fd5bed41e6de042a3237061252a6200421bac081b9612e8a1540062431934217603811c305544011a20a08c813170c8c2fb0c8a28b58480962a90a6050e1890b7e98d2030f9e8c2105f40129624b866022093aad1de8fc261349da6dab02595da65681565881c4000ba82086942568f1048f597590399418e282aaba9dd094dc0f45e9877afaa119d57180dc0fc5eccab29ac5b22b1c2198c07c62e00420f8a004b31f6ab5aa3ac9fd90cbae6815aee80192d6124c6062f6433aadaa39c8fdd08e5de1d800f672c289294c8042ccec87785a5571f06a1282f5434e5ad59141551e0fe84aeefaa01faac300b90faad5403b76459fb08412444c29824e0f53987d104fabea14b90f7ad99545c28b2a2c209678e104b30f82b50a14b32bca454fce0f52764c00c40ecc3e48d6aa7a831e2933d014d01154d5cd4048721f6404e402e9501d02c87d10cbae9a76825ab93fc6ec4a072a5e9044064350f1f9c2ec8fb256551be4fed8635794093660e20739d8810c7a7a30fbe3ac55b506b93fd2ec8a2ee104b32338310321aed4ccfee8d3aadaa466e5a73f5e19a7a0aace353ac9fd71c938c2a88e54ee8f3b76d53de7c893fb22cdaece2e6845c8420ab0183c31fba24fabaa14b92fd6ec0a003c90c14c468419f0e006665ffc69558d22f747965dd15084184cc4a00952687184d91f5badaa50b88eb44aa73f2211b9a0aa8ed5b1a2b42af4bed823cea80e54ee8b4e7a655da7f824f745965de1cc604aec081243e42c6109665f6cb5aabe725f74d91525c3a5a383d712586c5133fba24eabea13b92feed8958d2872c03a228c31624430fb224fab2a0d725f7cf5c526bdeacc7e4806557135ae165ec9fdb04a580b7fa88e32f7439a5d752cb6635738466001250cd70d8220e50bb31ff2b4aa32c9fdf065572a17c08478410a7a808211b31fc25a5597e47e18b32b983164e01346ad095450c2ec87b25655277aa4ccfae194561d41553d454f118661a843753cf7c197cbcf3027f74119d863572e4e6c006546032c787460f6c159abea0c721fa4d9150c5284410422c0c00751b062f6419f56d526721fac59e91568f6c129a8aa610003d049ee834bc01708a33a64721fdcb1abe6699066572f7c61829917b01d3029c2ec7f3eadfa6a7645a978828a207e5e57a0e008b3fffdb4aa2ac97d906557340b970f7400e3010dae7082d9075badaa32701d01755ad507917c5c505503d1407c5372ff8bf2f57c33aa2326f7bf985d75f7c7b22bea8513460ca18c2a4c19230cb3ffb55a556390fb9fcbae58bcb0424dca8e0e643230fb9f4eabbe1dbbc271a2021fc0c0c14b8c29e498fd8fa755958957930fd6ff9cb4ea2383aaaa18625ca952fba13a4c34bbaa3f36e5c3036b1595b58af648f16660e4be37c53b82aa2a175c784872df33e2b93c1daaa325f73d965d551aad259bb58afab48ad6acfcf4bb2bad9a82aa2a155438c9fd6e49bf3a18d5b1635755c6d1ec2a88125518e9a107276061c7ec733eadaa4be43e57b3ab22607c210428a608220645985d6190fb1dcbae282d49176448b1842ae4e00766bf6bb5aaeeb88e743afd0e49abbadce7b8a0aada4413dc94dce7a2703ddc8cea28e53e17b3abfa7a712cbbda80185e2c61891f253168c2ec73ad56d517e43ee7b2ab16a69441042b8a00eb4106669fd369557541ee733b76457d30032940d14512558a90c2ec733cadaa4abc9a70302d729f73d22a1119545557b0822bb9bf6db5ed87ea20e5fe46b33a3eb9bfedd8d54a055630c20232643010c2ec6f3cadaab0985de1f8708513265f74e1c4164598fd4dd6aa9a448f94597f9bb21d415535881a44ae9b91cdb5e9501d577ad5f974aa8a7e6e39b9a94fab686d0a2bbd0299fd3b0555ed208693dcbf4b5af55d18d511f260537deb43a9ebc8d5e95f24ad625145808b295edfcea80e30f76dccae70a0b1ec8a8ad1c44b09141b1c518203b36f5badaa48e4c6b981114634a10c2a72ca8082d93f22378b143ac869556184138430bbeabc9ab4aa6f9db44a9529157d25f7bb4ad7faa76976d5a3a9acdf2365d6ef29ad1a55a91492dcefb7ab759a655733198b2008614a173f689202b38dc8fd3aa3b5afbfacc214558f97b44a7cbfbe7470b02b1c25be3842070a226650841b98fd1c5a555b80b3c414a8d8020b4ab4769060d62272bfb2ec8a52010b307ce073850a267461d623b9fbf548ab42b96d3e4fb93e025475a2a8faf6581ecbcef0a37fc310597081850a9a90c203b389c87dd2ae68127e00230b5230618b2f8c60360b3cf0022da65c21c6c4932dcc15642558692bad32fdf874ed49ab5a643d335a16997b5381d955e7c3cd38f7d6e99de67921c9dcbb49abbccced70dcab0ff75a03b9778ec7c3956031d913522a4fcda92d8e7bdd292273a4ccb938d7e8dc6fc0218756dd18658ec5752c8ee51cc75dc171358e0b820a993ba97bbd6017fc5241926cf24cb16c32f9f858c92d2d2d2d2d2d3b3b43e820cf7021cf9831a3b2f28c191801e44d41135924b222056564d14c1689444678904ba5522c092e962912898408f8ec86790ca6afb130e51022f9743bfa7896c143c47c7a1d7d9c5e7a8f3ec27c92e1743a1d7d98f2792a1d6321a57fef7e471f252cc4bec63f2cc4be7c684bda6216d22fdcaf5a71f4ef486f74635cbe87b525ad38bed38ae3b4d9a1968193bf9bd3cbb8fc57764ce9fbc2af1442df390ce9e843e620b60fc1ef31b734c8fc8d7ae9ef7bf9fef25292c12dfce3c607d45ce3ab39a63cc97cb6702237d7a851e3df697c2fd5b8fd5efa4ee30d6b55e9df4fef74e10134fe9d6ee3169f0078c7fcfb287dbffcf4f20b3ec9e0d37fefc79467f816ee801304e8c1f751b48c79cced6979ea90e9eb48c3874f2fff0e9e5e1edecaac4e2fd8870e5987fc9d3e7c0a3c9df63198c851a7230da78358c8e92f58084c49e4668b2fcc5bf836ca50e33098ba8089d84ce336f00500266273e97d3b3ea0741af8acb9f4efa3afa88be38e006ce31fdaf0034f6f4bdff73a3e80e21b7ef6fb60aafffbfddeb0b25f31f23b8f6ef2f2f7505bbe9e3a6499db71c701f053cc3d2c8d9f604e1b558a398d92be549ea75152d0ca9cd200f337ea44a3acb9875dddd3e9b7bc9d3afd44030ca68d3afd2de0ffe5f8e53556062c694dbfb4a7a3056528dd64409987a741654e23acf197975b99c31c2c6979e290292dc59ca38ff9567a9992abeda5c79c52275cc2e0b792760a8ca17199b374011c86bea94c49338dd28e3e3a87588895a1c65f5eac7d395f1e029c6c1f96272d4399d24788e9635efa001e539e37f905877cb6f0122672f3cb6fb66fe1e5351dd2fc52fe35b6c607509e3f720b174079e2905b78aa3c75c82d7493bee30e14460019806fe30c38390098c8cd23a83e4ab9460b650c4a932c9369ec0919528ce401640a6508b45c46924c639942c902952aa2b892654e615e7a8d977b1feed1a89a0e1ff6b84326262606743de1ca13aeb818e1095662401fddad56d5739586e69797df4af3fde55ea5a17f91f9e981e0cd316f564cd92d26c898c7e06ec900be95dcd3f2444fe3347fe589e21868a6dfc1965146d3191a557fe01e8de2c61d4aeea9f703d2de07c5609f40fc0cf4d06186245926d7e7607968557dcde915d58256ab6021c9f53780b4ebb8a3e9c19ac351c9bd37cad0f8d4b7f1fe0c1c1312f7e82fc8eff627953d6087d37837ee50cbc83f2d85f4650010735a7a31bfa30c67cd3195fab00f87c090417cf647503348e96b9aca940d80b265517016c897bfece88d977fe5ad385e4ea3f42a8e9773f4c6cb6bba549e627e79c88935cad3e9c8e3f41aafe997b2f41a5b2af16b9434db2861cae3875c8d7204377fac56d9162e4fdd367bdfe9dec8e374c2271fe5bf97f8d4df4b2ffd7b58c6698b61456cd4e9819455665a45142c88b9fd64646464ee6b9a48ee7f1ff82e8788adc794a013907db08cb92d6f99d3fd7d4c64b0107a19261e1095dc87e0077ee0078aa60fa132e8485fd3df454b85987779c6d0febc7147f71031d3c3fc44441d6590f91fd211c45dbefc2bc353fa8285d0d75186efe1cbb3e611743e6d3291ce32b725580e11b3ccbff224833dc900be1c3c3dc9d042c2f7b34c37e9548ee161c514dcaf25343e9853152f255eca1e3334aadec554b694b45133f08f2c902795d1a8e4fa0d6401c9c3084e686004d318a44cab78e205df47655540e1c307c409fc1b665727109f6ad87e1fa4bb6751023a0e7720f7dc3f0cc43b08db84eedd86fb3d8e1986381c20a073d886c9771bf1a07f180869433a791cf3ec178e79cb7bd08378e77011eede41b8081320dcbd17019d0371dea979faf0a906d0b907019d7b119174f64b02a19fbe771f7fcbd3779228963826697496937eea902c4124e81e88f1d93120a26fefb206113ef5a9297efb570219f1a93f9ed6c5122b54d861b14cd24522128e2902dd3be81ecb6854e2982ce4efc9df9f4de298f714a49af7459800119d3c358b88f0e93b77fa7090d0b987b08d0d93d38fd06da0660807e17e5af085124ac8582c93b4a9fa569ba1dfb0b89fdd036953b7a97aeb44881a6491059510ee0154e298de29c83dd5504def9e4bc18e35cf7e35cba65ab17ed955efd0543deb6b964d9d7e7cf538665715901333a959cd93ca66ca9b3323cab40a288cb028b162a6553ce10416a5b4fe9ec00468450836390ecf1f36990ee27ef5bb49a3c2d386f5ab51af5635397d9f7d4ddfb3594d3a55ff95fd0ae306164dd59bc21ff2fe9e82dc0b96df57efe9c32a46c974e4f1e1935af183ec7be70f9f381f58522b7e90e55b9e827845eebd1b2e3e01b936a7efd4dc7ef1e9c33554f39e9a9c4765afdecabe4390af97c5642dd31a38a69bcf6e374421a4365e3fd3aa5353279490433af2a8546c143dbd0a539d331e6caa11ee3fdcf4dee4bdd60eb1915be481d508e87339f697c583b5349fda0df7b6bbdf300f8dba36b1dc34c7e5214ffac3eaaced300f75c6946bf350593e903d90277a1b65579587f2605795c7547938139074ac9722a5f6478530a4adeaf7d695dafae5d08aed8d31745c8e61eb446e8c61f3c4cee62d8670e4b1596bcb12a7ebc54218d6873ca80c4d3b06aeb9ee7bb790e3461e74a31ba5dbc55dd739f4c49abd92f2a0951ea7ebb60318152908a217cb7d5210a827cb1e1534d5f7786caabd1d32487b9a49b256597ca2b9dfa72a5ba3a8fe5da61669c7f0bc9f24c7b2296bc730e52fa7517dbbd990dbea13571541a871ac5b7b54904f522d37c93ee4368ed5aaf3cbc9ad3a79596c5457596e2bf2c919c9e7581ccbe29334e3580fb8f9cb695577de8e4db5a773aaa19af4a7201db59e6bc7ae3c29bd6377f079d1db597dad4ef5f1295e181b2ee4d3ebc92bd005ba701b2618523ebf9c2f277758c3eb43cf491e175de93b251fc43b898be0224c807c21d48c87f281ec0629f17ea82693d33d10efe0edeb874ff545be77f70e3e8877f0df8b80f73e5c63530d92203e55f0dd2b06f23d74da1a136a30a3019424b440428f499a3a32070cbd08e9de49cfe9fee1221df64e7a90efa197d40c95d40ce9a99e48cda77b20a277b7afb9a643e4c193ca53c5a78b6b10bd7b101179f0e48b7417bd08138b8190a18bcb83944a772961975a5dcada62b12ae939e8e0437dae2d9df498253d6123fd9458a187311c3385ca6ab65aad96e9c78cd7b4f80406a4f8fb7a928cd463572e3d5947ec29b972786ebb25fd945a34304906833def84398cff82512ea5899a3d339a4f26d54a2497929aa1d8a393fb3d76454d7176b128136321cd15d25cae9026ba42daa9be880d131ba809be0b95a78a6da0660e785a0f7a41ba83ff3cafee783a3adbb5d5d288414071051109f930140ffeebeefdebec771024c964e4ab5130b0be5e99dbc0984d7517bcb606f68831306653ddacfcbd7b90ef5df722debfaf03df755d49928d3fc251e48e204fd67bf720de3b5c840990eee08b7cf7f0c906018b7407f1c9da83f51eb1a0a723baaaeb47ced78de115c87a8ab42be429d28e204ff774c107091dc445980001efbd08f9103edd201e780f9f2e8ec1a4a615a95caf24c9423da2cf86459ac52d5ace21b1fd197fd89a4d5d81ac2fc204c877f045bc77f75ee4ebba7b0ff21d3cf8ef4717faf7106642769de8a1bbfcfb49ca21bd3b59e6944e3efc7a662e258ef99538266d1e929ad474a195567b67e4d01b7d9792e443da1f5b3382ac3884358ac7a6c2970f647df84c3ab5ab1079122e423a493a49be48e9211c3a35cf9ddaf247df6053fd509913620e9f24dab8e35d416fb472d8ea6e6bb66557336e3a7994c94492321bce98f15bfe988173725e1e7a8ecb4d0fab78a949b316ff28e1937d89844f169f6a08bd7420a197b00d137b9b97876e3110d34927611b979b8e63ae803c49329216d4e382f42237e909b94ffac92516086e11a4870e84f410b661526f233ae9150329dd846d484ccdd26b5aa49966bcb87c865d912d3fc556eeeea207011f1261f04544ef4ecd701b7fe4b47c86e92fcf21ef427ae9356da5514dea61e57e4be94223bd94d474214b6ab694d49c5152932b82b43fb616b644a71a44ef7e43e8a069491c8265f80a6195822c880b894af2216c53c225f23624dc75e5a93e741cd3a6e2530dddc10339886d98540c047c08db906c7c6c8a8e362821ef4110438da1e6530dd5ec0efe14047ce8a183dfbed98c67c6f3d5beb0f5852d2b90a09f24994873d154ffa348ab66480b59464148a2933035ed435bde4dd420eeb52459f99e2e49468ad22a5a45cf4f29a757346224293112e924b99c10463e495748b3dcd5d65a758a342badaa55649116d246f8644fcd93c53554d3d64cfb6353439022adb1483b05012fba0817091d3c35ef7843e8e02f39a3373a8333bb7ae5a6367582305aee19d5e1d9d06647bea66376f5cd6caaef7931d005d692a709e449929da02bf74d3c61183eb4b6d64a92511d34ebc0a2ae444f08a411aa12449a5d7d309bea77fe667605ce66a1c9147eb59a5d892eebfa60a2eb83891f2cf7ab0846b24ba6b12d6af9fa406f949c09288e3ec9c0ca1c2b87570c3d84459a4db94e5274894c26922469a08b04ba40504fc4cb242c2a8e7ec8f984a42be88de646111486e21091e403a292fb6395dc359215928c43823cb929999b917e406ff44957501c4d92d11b7dae05e476ef88833fc573f7fe557c8520b1e7b2a9bed8d36161e55045d62a90b564a44b4772bfd4b235928c24b335926cc6d672844f1ad5ae5c3ad2a93ea9a78424f74bad1c39666650a8df44aab56a7645cd66b55c3a3b24994d75280b4fd211f214c3580dd4044f471baad9916676656b9424b3ab3046537d5b339164b96d2d7718e3a434aa0f961c8f4df5b91e0e96fb5f2cf73d4e56ab48ab222db7d8612e9b0fcdc39b0f951aaa796336d55d90bd51e99567f6edfdb12b1a63b172b830efcf5bcbed13b3a93bcbf7f6d49f1b2bf7d643eed34ae37d5b22f75f3c5977249f1bcdf5fdd854df8b7d311d1d1d227484d0f121c34829e8e6446e9865e2f34031aa7cdbcfd0b5c303a734aa411a06678ddab012d04f70568ea132ca28230be6888bf4603fde06fc884f41c611333141a5a5e635423e74d1995d852c9aeabb6a2c7016ba587605c24a25920c8f805d704171f441985d81149c010184815462b961d682315006022177a8137a5390349fa12be7efa73dd224a33af215e84aa4a9da18b4ab40551e3d4d2de2d32aa143bd4266fa4a6b5bd03dddbaa707f9ec21f22bf7c539d8547d9be1ce76d338957b99424f8f072da0dc151bb581c29f82049390b5293e67f2fdeed775dc3dc5e7ff61b212416ea73f491a36dca351f742e8498dba354090fd1abb9948fa7b13a5ef92527c6ee7b6d3fb0d9fe47dbe0fc920ef9bf6cc00042601d3286b4df486ad3fb7514fa02bebbab76f1faaa3af2346b63b64646b4d90ededcb95ad75d9d5f66353f6b6fb71d1d1066bdef3ebc9b7dc7eec8a3b82a6ec61906d13d972506c3f6012e409b2b2a5d228eb43fb643af486bdfdc9e9641bbe68d98a3a3665cded0aa4fd19be7236c956992449baa06ab72074a73696346a494d62ad1dcbfbbab032c8f3be82a0376ed4daddfbba16769b547c61b8499ff7e50d1139d87dd57ce2e4dba4652f2d6bcb0b727b68530d03129540b2c7fbec8aeba1f5e2cee9059f2f8d443884024919227ef7528f0787047982564a28284d9b00acdd4e4aee571a25f73d500f88ec79511d7407fcbc91ccaeb8f7c524dc4f94282e119d3cc98295ec92e993325cf91cd5588d3de978ba259d13100804da46b091935193d19270c4037a81a00049713149c66c6aa463572c30980e4c0736d219e9c02ee2f148d0e4dd6bc91fd09429f9733b2bf2882fd18928036171a7ebba26b64575d03e9d7e88a7d9061c93033dc9a091bbb51808f711db9ceccfdd663c791ba869b219f171cccf9067b90dd4f4b00d9d3949d2cf99cda426cb6fffc3a6fa38a6589e2c060110ee3d6caa2f629b1a8c63be9ae4884f40c4731731130f2839c96032b91731137b7b0eb3b81fe26da0a6f820d524e929c8780a524deed5e43ec658ac1c564a2badb158792c2fcca6fa923fa38865fa8c076969f98c969617997193e9d4fcde8d6c4b692a699446fe905464d97b913f249523c6968f0fd2f2119b5e64c65bf0a97bcba919c47497bbe022e34df8d461137965ab426ff44d654bf912b1c89f468d66e44feed7f147ce0c2c1bc96c8a364a54b2942319a805e43d7905bdd1a7e70e56f1c1e06ca4e375a467b2ff463a2d05f2147774c4f7414dba84511f3e4fb2dcc3e24e87499874921b9b9e90217c3eca88a55cda14cff3c498f84474223681e5165f8de284a0ffc61d5f95dc541ad5a329b9e9682604d53102320341695a5447bd52404171dc970a384cc66caa33c5a48c85954732bb62f17c46b291cc6724f319c940e28e8fd7819ee436953553eb59d086a7d6da907a9e772b8e3b3c1ae8ede79d7adebdd34681fe5950c7823aa00ea86341ddea9a213e6f1e777821c560cf28caa986ca15418e7a46b246813a3216cf234993e987c17210ae8878eed4a4215716e981fb789b119f8250d386fb8865355093c3604c2c999c78b06914fd117746b2916c24cbcdd2f22c199a4096164b2bf73f96d6ccb36468026733118f8834dd8a7850f904498127f7efbdf77af82451bbc231fb5c89638262514033aaa3763e41a01708b32922c80d9f602d6671121dd08bdee8df57c7f37a35aac9859d1d0fb70292825e59556f13d0ab55a7caaa398deadfd78dd915e845536d57e20ee8755fe2ce7d815e3f76755ddfcff7f3fdd4188f5d7526a0a93e10de0aaeab3b22f76b8f3537d7bde2ba535837b76ffa8ee6127a20a506fae3d61e074732adc2064870a655e02049b63712b2dbc8c3e61a7ac35e5482e8f628bb2225401ebc28884d85c2cb34c9d2b3296b7fbbaaa13d3fac7dc86e8dcf211b8f6a933b0cbbf1763f0435119bc7d07b587e074b6a53df59796ce89ade5e63bbf29cd9b00e8d6a984a5333cde25c0e4968add09f2b21586935d05a30ec388f456335159f6cdf757fddbbdcae8defebaf1c6223575aa3ecb91fc8d3cbd6be7d383bcbb65219833465fbae753da7950561c43ec9fd1c26b4eba6aa87c9b67e35ac11d0a725cda8869df4fd6a54c368f390c1d7900a4829482b155a5b1547ddec57bb5ade4a2da8db68e9354adc30d9b086d1b25f17779312acea6818ee57bf48f4463593646bdf3d6d2d1d62a3090ac8ca03a3a58da96869618dea675a62eba4513d046961b9edaaea585827e92555e74a3efbf5c2a580084ec22a722920692602929aeb47eedad7d37bb551955ed5b5d5d6da32d46c2bf73ada7c6f7dadb715df2ec8be77edafadb409d93c64735490fdfbd06b15a5820a4b45b6ef58166239dbb56e3972cccca050bfc944929cd742b65f00e48a3d6b83dea84782ec774eb6bf6de6d063764fdeaa488370ab6dcd6a6e25a529cfb6bdb77617d13dddd33d975291e220451d32254b22b73d1a25d39f64be30642a527a923c181b99da74ca07363c1c611385ac2610ec6efef06d140968aaeff52dadb7f7f4dadbdfd9b2d8c44aa552a954721fa9ad4aa5526185e18b08c3a1803c4da7f7c39389e613bde172a2a9555405f3ec42ae2d154976c9d40a2b5839b4e2f673add85a57a9f9629f5cebc595ca59a9e4d1efbd671199ee724a57347e6e6f390e76f56153772f8a4429112ef5a948f4d03b9a72294127204d7888984d3f8788378feef296127402d244be1bbde575e421c4fe661316429a5cf0797325624f2236b3bc65cb5508cb4d1fbd47194c23d159b010fb2ddb91862d5b5c89741e5d846f4987e44bbaa46c3b40ca170ba9379dca5bd65c433ab2e0d306d7d896d7740d82a53c7132cbc53bd8cc22be94a5d35174d1ed39cb71b799e3ca7b2b956edc712f2a4f9cbbe3b29430f8ac19e6b62cbdbcb64aa5572aad7a79e9dcb8a3841140f6911c56b154bed4d147986dab481ab7c71df6d77e54d21c92afe30e25341ef371c708e31083e9884679c71d241ebdc68e4acf743af230bdfee577fba9a41986d6207adcf1821140562aa3d7215954aaa6caf2b096dd470fc326e5da55743b7ad79685c5e292c90e21557c6e3f713819be75db3bef1d2d0059ff92439df18097579796c3dce2f3f48b71c039dc5f2c84bb3df7d16b793b975aff2283e8f6dc39a4f351f1e9dcc95b9611cb87e413874df81c92eb497c0ec97674b25cbca257965f6e0432993b49f98e46f8d4836616fc3bbaa83c596668b9e8dbd8a3e6968f70574708d43cbaa8453484943fc2425a2ec2425c6e5bf07591a1bb7d8f3e5c309d8189d8fcf27b8b4f187c4ff7b5bed4578e03c718eac183a30f920ea40cde0c34aa432396079ca373b7d872f8e25b6fc5a151fd1c6c0e38d40e752743a4e8b60c99ca734836ddd2b6a39746f8acb6e4ea080193e9a3515933673f2a9546a5bb70a5b794f0b9dd6251887c8d35b19434240a8d422513f7efa5342a5d7412d742caa59344dd49b284cfcea5cff8a83c5137648e83099d5efe9d4af22465130bcce9a56545fa42a5c9bae0d3cba39b30cba824bdc4f2f133b8372e89c8ee24d983e3489963c1443a0fd9327910493e0438671d2140cf21a016e9d518b8b370079da53c6f3279433eb77378082993f65b285476af0db8210fc9db7168d5c51900b192ef1b41ed8034aa7f38398d9471b0ab9a1f4038527e13e449633d5a75b6e46e400bd541b377f2f660745371ba1b0024f80049a6508e40e546a650a880921b06b467603a34b022891a08c18ad93e58d2032af927f7d93bd94aae39477a896dba1579358f8779706dd97792caa29bc7f37d3f7ba76ea509c4b5ded756893bb6ad6d51db9d75e88b65297610d0890035d3860035933c1704f9de4135cb665a05144c40d154bee303ba2c4299c22bd32a328562c52787db46850eb6bf5522ae34a84968a5a13feb926c9f43ddc11d3e360141d27c9a50a8b3772a1542060197cfcadac9a938bab25ae48962d9aeab544a0f677400cee9510c6a911e85628596c1d7d86c89d8ccbd2b371e417085b55f7f85430179d69d5b8f74ae25ed9d46e5d81fc8b3777650526c695961b304e1dece3bfdf697eef5f4b52f840241dad3b252b2e260d623cbb48a2b3a2e645a454f12b946298d9d39bc59ad245d913374f523878bc8768e46d5afca2a2cd72ab349ae6dce56bbd12aab3df7880e76556bb5ca83abaceeecb4eae2aaaa3a221e4688d2a82a8e3b6a9446d59e930cde3bf082ec9de6b3ca58bcc8de1b0ae4596535dc3fae2e296b944ed56fe0ab8c0919e2ea69415eb02c6d4d8f3148ee349f34d680565dec0131dfd7efb4ddde4b3b7cb2b72ee954fd0c8f0ec8ca23a3e9a0877c569e2b68aa5e0b8f0b52f60ab3ab2ad3e106219f55468d90fdca236b2ce3a97196c509243eb946a6552451851c520790d40ad92bd7b869860bf842bfef05be6011dc1cf6d70d829bc317132af9a4331d4822378be00ab1e5cb431d72df5e10bc2dc19c4655dc2d91459e54865f3f43afbcd7d2ebb8e3f4f0fcbeef212d65be3ea9ec03f1674f2f35fe4aa734947ec242ca53e6949e43c44c83f609737afa1a4ba314523acd326529a63cf988793fc613e9c823e632f8ac5906e6343e2ca4f4ef74a4a1fbe574994b039f5e86b985c13e3ac7d011e6357d7ac9d2db7ed954ed615f4e8f294f9729fb65eb0b0c16523adec41216727a29e632a77f80bdcc0364febd4b8bcf6f7f011fbe9872ccc17725579234f57d2b3d9aa2a92fd494ca144a0a74322853284254b1519821c9df06ca85b7eebdf7c93db70120532846c6c860a65084b04215ba8ddb6f59b38abc140779efbd17542af9fee2d5eeb35eb6f4bcefdef7ecc3eddefb4aef2937eeb8d872efdebd555dd7955ea36e67ed8db4a0183102c58811284672baa4508ce4e4ae39681bab04d0543f07bd6102d29e17a37e6df4df2a6e092b400218d9661152aae32ec0872c2291bb14854e8053e42fdb9256218523729760f69e745ae42ec7cc21217709ca612776b955c9b7dcf2d511237769b240e42e59722791bbf4320d724843f0f34628473081636be7200c434e70c226b65ce1a6e05e30ee0656085c0db81a7036e06a40adb56175acab46b32cdaed2ee5ba4a6ba595564a69a5b4525ac5afd25a69a595525a29ad9456d007a22c5fade62383cd603fb7765b7bc9ead5b6f6de6de32af8d14a6bad95565a2bad95d6f1abe4472badb5565a69adb4565a479fe96bf966c04dc1c1b81b7036707135e05e5c144da4e0a2e05e1c141c1441845d6bc57589308402142e57a905611f4b85b66d0df39b4ca4b68142fd30265b2399c8c6a7c8bdc87a917b82acb87e87985c710b0a6aa35c9841c96eb0d6be01d65a6bed7dc25a6bc95888726106459fe4385128177aece8d1a8fef9dbb03516521b67157f43a328d0281ce80fb5922bf5e1c186480e436ea04067c3711cc7755d8a87eedb9b55f260731133e17e8417c21d7ce5bc872f201490dc69f6b008a45115c5fd07877f00e1b613a77af824c336829b31a9bc998ea4bd0179d29edfb20135a61cad3a4d3098ec8a87fae3ea5680ca210495dca700ca051828954d1cad05dd96446e264916cf63115d10757fa2b2fdaddf30ead49d2af91e5e7b0a4f33287ea655f58e6f71a6a266502e80be8148f2270ac5725bb2b09427ef5890227cf24eb392d64d1459be614a93c8847ca6818f0796a24ba65540410605fa8625e489aa443841921a85cad103b5a4964f3ae302c9ec4acdde549c6e135fd083c3cfcf93dcdfaefc004285cba9b17626078ae4386c796c9246edd81d8b6d9246b54d59cb53b1e5c176c7b33b9687da2496c7eeb4382524c7e24cf06353149f37f693dbeedc96dd996277664eaaf7643c82e31975461d1bfb496339ecca7ae34de18ce77dbcf7d13b6b8fce56723da14d551cb35b8d3abdecbd7fda4ecdd386518dea3ed3ad9c6ed9aeab1deda9b1629027207def7d0f77ddcadd41413031a98deede16b8b27d38a3a729b6f5b65d21cfeb6a2bfdd3354bc3cd4d391e9bba0269ed3d575bf1f2c9b5ce2d96633cb9bf3df1449828a7cfdea3abd3f7fdde6fd8c6fbbd4d67c9f7145aab2afe596f69b39ec9d04d3b2b6e5acf1ad53d6b1a0f69bb67f446ff70ac7caaef7c4ef5dd56cb5def8170c7364c2a0672dfe1d926b3a9de68b9b79edc5bcca628de78d0bc4d416f981bde5e36b5c572734490169ff6677b79b3b36756063d9b219141cf8a7065c369db8911521ca4cc43097124f75de831c3941768ec544335b93fbbd0c396d5554f71dd4932b36d272a6f77dbb6cfa01a857261e6525a7986806ad5ab9e2f3c57cff34c9e0ce579af46f9d00245b9407981ea71d69aa44911a694a7eab5eea597ae3898fa7bbb2f3d22a405204de495dc27cdbcf00426f7edc83d47ab6cc533395ea002b9cde4e8ba9f33332fe4187bd0fac2e52eb68ac338c70c1364d3f74cab785831a50034d54f00155774be33f446f7bb97288293258a800489dbdab4525bb7ad6dbf7fc9086d8f3b94f4ade8f53721f577c3a646d9ab48987ec5f76218db03d284c50321a438c8991eb4dc7721070c34ca0b3fdce4ca9a32c70e797a6d226b4b213921ae808217f9cc91433beea014e69a6c985e60dae205a62d68b6371b745b8ae23ccfa3a9de70a078ab78a651fd2190278de5385f684014ca832df269b22f2e87ecdfebd17c7ea8480f9fdefd5667ac8ab4f7bcae9bb39bada4f56e2d88d805c18e21367278503c2d87d8a855487baf4d2db3a9ae2941f6392464ff6c19a903111e46986c3b4b23fa594740662b3ea4657750b9814e4076b7271fdeae66db956459de1cb6e5380b2a3b8740173dec684804eae847ef428f76359325a53746216fec4133a8a459243ae80d042b2a2d0e52449de4412597c3d7f2bb392c3d60237f074b1f363e25dea9876f6c984cb6d7f4164eb640120b4550d0ec996ca05099cee09827694f99965c4374452dd541756cafdfa80eeef55c475554f5d97187fd4a0cd00b500b9415282930017a830395e6862a4421f725406ff4abc9be9a5ce82a47995b3413017a23875d49a052316810a090832a21f78370034df5ec0929329dd9a6ddf57a955b22a436b659a3ec7b7aecaa9a7d6b6b144e87bcd83382a49566c309d5917996e4202b2bf7121c14d0aa25343115c70e4c4d2a925e55994d7b39f4550754c776939516159394d593ec1d3c51b95b30f4ea33fd42ab40a7cfd1aad0e9c9dbd5785a632a4de5a938ec2dfee82fb5e0e072a2f16ed95565d528657ebb6a1e9b5a75ab063e3d8c4fafc4c7311807bbaa3e3c34f06982c1a7897cc127894dd634039f2692e57924196e1b5640dd69d5b980dcdd9e66de9e008aea50a0736501284a0179e391371940f84440ee6e4f1af2466b832a9ea1373ab12469aadb70c8db396c3b5c771a6577d0216f1bae495addea56b77c7c7c7c643299ac9ba00d45ee29b27d53d13cf4860542f3d42496d428eb84eae8ee9e19371cce664327b0636c30b002074b00c35a8f9af9b129ef0824cda71f39fd7a51ae5bcdcdca37fce97160f5c195d628f02cffee41419e95567daaf97d09992b9546815620491f3dac22e92316d5610fbefebc4d4075cc38f85ab3ab91cebc59a3c07bf93b42f2a0335efa366b55ed691438130f0484a915f1a905c86daaf4119f5a70bdf822fdf141c4227546d92610c78af20e9edeecd59e0c52532ca9c5cdea21832f954a5a374fde733c8f6576359284ab4fa3c08f70a581350abd01bea66b8d057bf42382a499e6f1a0d703099d6a10bd3e88e855844f66903e898b886f7cfa700c150bb9cb5afbca66d11be0bb5a770472fba986fa7e90fac6fd22e3eb83f48b88ef7ba56512028563d917cbfaa33390362b16cb6a86ef5733ace50f8e596bad51607d8756a494b6057da4afb44be80df05db6cba6c0d792d3214d8d02df61b251206704796fc3db8c74fc91933362f0dc7344dc3c36053e7c79fab852e7f45dec9d0c7ee181700fff3d0c2f621bf021ae3f3605de063c07d69a4d8166d89d07edd7b3d632786a03c442eceba6c3a91684053599d5ac5526dbbad3549da1a9ead158be33f9e21d7410f30e36f96e1bdec126df9e0b4413fd511db4a45d3821859819d624aca899612f9104ccdc41941d17fcd044672716860e94263d20821198e0318960c5156466f8d5bc9899d5080cb288417141154a40e123c50744c4e0083f37600dc2789917579811c46899a18807463cf163862c3b7859416686231b5a052498c0320bc0831f12a7842860e6c5370bc842ccdc702599208c9719d2d20c255e2ed3f61643fc80c7ac2a904941c71ce207495a4820e16386db1656d03143ce08193233ec84906304ccbc09f5749144113533fcbaa8d2c5cbbc0940cb069427bc7899612884235576cc5054410a66663842296206323304f508c16552295498c8cc903c02868e198ac45b76105f44d163b6eb0716bccc70c484292d332489b7ac41c8aed831c3927823fe6220e3cd769a84277258e34107619b1bf1e3bdcd4dcb175eb0cced3637e11330809922a68d009b9bef0456a0991b667292a113c2bdc3f9269c02899a7931130ee3cc106f499f4881082d336c6901421665cc4c5b91e08512570aca70f263d62154a0849a196ee22d2b0c9a80c48e19722f988266d229537e30a351a278f998408082143133048700851ff4a028d8b384292fd3d624ae30899937df137ccc4d095170c063de904c68e6fdb6d980e765de7c64c0cc8b841888c163de7c62f4bc3013e45efcc536550b2e90a063dadcc8ec98db6f4251d831ef452c621b7a451445b84cf123b6a9489600c48f29621bf137a0ceccbc1fb10d45821742c04c1b11df847acccd855c7ff32981655e4c03842862e6c5f7856dbe1e2a35261e1124354d631686e0b22c50c28ce39e2004cbbcf8be88d86167d021dbd75ade12440529764c9bfb9bae42851f9309781cf3b6f4fe9534d87b6559636d29c43bbd3456ce1c539baa38a6b5a5902bd99ee6d330b383cd23b899c8cd5d77d393bddb92da154704694fe47ae56df8b02b7ff4004f40823480338ca0c78f73487d65f0f6a15789b42dbdec8d3c4010571c7553404e8ce33ad2f3bcee2613a8223f0a82750685a2b24ad6f7eb25763d99d6f46dd2a88ee338ef9d579eb8dbe0982af29635399a204fcfe5b9bc23ad84aebc1d9aeaa13a44b9be9342e98a9ab5e6ce2f2113943a91fb63682753d1c3a2d85dc711c70c39f1b648eedc58c3676edb086225f75b796336853d8e7eb1dcaf5f88e33c8feb3ccef33a8f6b91f5a1b186cfbcb112c7f4460fdfd74965b1bb5304f7d37b2704b2da59aebf3b4690de7de11cb2fbb52449925d29099eee182a7802336b0f4718f131434fbc65fd020b3de8984f1083a592e9c86c5646d440c7bce924c844baa9a63802cbb42228de925a015bc28e49673a08e3c7a44368c968666d018f949949b128830634330c714680220a9ff0960ac889753e66570abaa01327df7b13ea31c726a21673610b9a793193930f9c41e22d6da88f12996973737f1333031ff3e29078cb9b999c22ec94348c2858a099a18845bca30214e165de743e266d049c241b1f42f7a72017dff4f07b1a2044c183326e581bbeb02b962a0541274ea66060c1729936ac94dbae05750d8116e0041bd44c5b76f65edc4de3f45585202b534f96fb4a53d60b0d357b8f4946d21849ad8fb52e58d7ea8c669a913d30938924375af81e82f45ecfd5c8b36bacbc037bf16c3e5ef771dff67dd8fbb7f96c9b8e89db5a9b4fabaee01fda46e55af1a9b5d65a6bb94977e4dc689b4fab3caf4f3e42d97ba866ef352b29813d919b95b0704b342dbeb21e9b6aef1bad5101a71da8a42c93a6a9a0864cd18c00000000c3130020301410098562d16038a08bcaec0314800d95ae4e7a561aa7491043c818420801000000000000000240d000f7a975f1ecc365b3a1d418e87be3b2ff676bb57a159c0d527a16b355916b6be1b82c7529a16e42e37a374dde9a508387c283942ffc3f425695acc825546e5f8e807ce6d06f20c5e41561993cc2f80044e395809ad31a7a259e145b776407fae05c7d2ac8b80141d6287fac1735cc06ecfcc7f055214dfbe810733c054a09e4b07d937285cd6581feb8947de3beba25ead8f2c02c601905e7eca45323fcbf008c236792b77f9e58a3b469d6e82cdeac44315da0f88ee1e7840ecaedbfdb3e1fc0eb1abab7f15ed7e634e93c4e1cdd1fa761fe4a63e2eb88fcca873b7dcd0d8d066f351547c006d2146cb09cac7d9ce1dd60838d394ce8bfd1edef808993b0812e1a36e0510452afab0dcf9f07567382466e9770332fe08d316c40f4eff9c3c2488ca1639fb9a4725c0b19c6141a29acbf71600dc3ee743d988a4255be90f3e9b4a496a3e7b89a5c2def67ad928a8a9660d54b2aa45702fc4c2a8ea8a7894857d73b7c48df6d4d105ce7b90e27a8a8f914eae6c3cd237c2cbfff5d035770fd59160daa5245871f2d472c5596dadb7bcc755fada132c7c860a088e42c51912b3eef1b1a681aa873e1fc567c39fad407ab67e87b3d2daf4caee6c7501d95dfb44e6cab4c5291ca56c9ece478adcc8fe2ad36d98bc77044b4a1f556059016b7522cab61b24d90810f86598c7a1934c4b99cab5439c81f5ede8f7ebdb86aef47e028bd7e1170b0ba39a1adc4ca09380bf5f76f3fb2f7f89e790b16988ccd4aa8c61e1ead3ec53644af2eaf9f30bda13caa5a2f1bb41f1f7ba77f3e009bbdee58ea1fbc51e85ce583d8161ac2d7933cd22fc2ed22553300ac54376a064735d711dc9e59b578701703b619cc2ee5cc57dedcdcd445d533fe0ed91c5558cad71fd4fbfc28bd0fe8c43f2caf28f15c05c5bf5c92ad3dcf916ea092372d6d97c224f2a8610d957595c6d24caaf405a3cc84c37c8257694ae55967939f347bdd419e06ef1811050b2b4439b17d6e1ea59d7243bb6798ed4a6fc0d68d8f2f8562b523284ac1a2524c0797d75d07b853ced0f2ec63bbe675bbf9f0096d92d98ff6b5fe7ad9a2f238cc1f0cb1fce1ef3a558e83f586b00f8fbdd6a05bafb54514a47a5628a2fafc79eb10f1eea959fd4bf31e7878bffd98e1444da1aad9ffe4a6d257dd96a36ec80dec17c86b6dbd27f489743fd44cc2c5f8b3c884f9f3dc05729feb6783965426a8896b2f2f7d901030e0fef4bc64a94d68a8252aa8c295db97c971235e811eab121c7263cb1e8b3d96ed3172d2aa26ab1173d79a9b159c5bf10d14fd41d8c74a95848d4b26762d42de5d36415c514a3863d79a4b2959c9fa3db4e648c867a9aa497b0bd0372ea56c5c36c2b7a29a1082bad6d53342bad6a777a16b4d672ec74060772554fd95bdc3861c39246223a49850d8c72d97616b09511a3896691fa953536b9c911b974d1f048e138f1bcf26bd50edf0a316bd3adbf7442c120dd74ae71ef0d7d234d68dfc54c696bbecef5213be2f639b6b3821deaff3bb71d8cbf8186f64ddbeaf5ee7eda7a87bf52d9205c266b4d7fb00bc4384703e4ebdcb1e389bd82a39e62c350749d093cad1ac7eef3ce9fb32ba8be09575bae97b01d7ebc5b0240019c927020856a9934c5d3ebd28cc5fa25a5a5f835ffd1c8a4f577faa8526e268a5b22e401294330cbddcc602e95dc8587eac1f68585616d2b448f9bb82755be2ab5777f1cbc7984ad1b63468a266c1fc5b82c195a0f4f93a805ae3ae8a37964409daca101464d5caef529357b3638c4eab247923a835abf327cd609bbc2d997c98c71c9ce7bc88d6dbcff09e39723ab4ced147e75c502faaf03cb07908790b55a709405c0d1c0fdc88a2925d05d30f17689143d39cb0db3cb92d8617458510fbc22678dd294af2aa288fe009f9060efba985b1da4fb7452bdb1b33b5c02611c9d9b445722e235f7d7446dab519245481fac2dccd387ef3117fb9badf54560007bf7b0b26cda15256aacb2afe0335b72fbcabe2770dc5aa12019128324f877dd81cabe8b6a1309232452d75f01838bcf8347c12f8da73196cf642ec0a127d5c41086a56b8ec6a0599b083e5452111694ee95de64872931564e596dbeb9bdfaea1be36f8a109ed0cd15e9d545a5b9b64259c268656c9c0b45d733df331dc773bf25f503f3f2a3ffec76170081ea21078669711727dba945597235d6966c0fba6fbc26f504cb296c94ac77ddfcfe9dda55e4b182fe9d060eea6fced98d6930d50bd17fc79d3e342a64b890c1b81804d54555f80da95f6a03f9df44f46427ad7ba6322069501d0a886dbbff444dbd578ec9347332f1dcf0dc6510b4572cd3a1e70e640ca55f50de4a172df68d01afecbce68771276be15bcdd711dba28ac8f74088bf5dcda4f0e219b189c0af43d9193460cc7b4845d5dff94e0d148cb62c855699adde08df722677169fe23219103a62c7f32076a20dc9bc6741e6b4825b7cc10aa1f2e44033ce9da338e55e72cb624949d95c6c64577c3f3ad6ed31b345e46e5dcf6f44b6018e03dc50c7476e700c139f6ad27b2155910c353e5ebe9f64116d75fbe80046f98d365172000a4ef67c7fc94e5810ce1e8951235c5790c4c8eaf442d2dd25b821536a13720230f7c15d470f884e89fd801af61d18a34eacb3a14127cae46c820d513fa710eedd790f3588e5a221b4dfc5bcf01f5c6956e1ca5f3f09e138d52e22e008f6dff83e8138736b2db3dd46e50ff38ca2690fceda2005c52b93b4946dffdcc980146c3ff6f1aa660672e66a00841d47a66884a92fd70541d2a796366de5ac776b64b11e43a3d8c36361aae8cd3619c9c4469ea448f9d06b06d40a0f929fa1fe599707231076fcd7c66b01d699e5c36259a798f37627b882875307400be0594668477a9be885f04be0273d23d7f9041261aed93a31ce038dc010a69e52b8c900a48e17f62e5f77c6e55b233f18615f0af89ed67661f0d69a48b2e803e28934dd57be19e8f1ec010620751fe9d5611ef140638a4ee8542410425008bf12a600294318ee806a4908e47d6bf254c52e88cb4a8b186dd4498a42e691db4fea6d1d39f30f17d3ac5b3e6396253f683ff018948577765cd220acd2cda34b031691db27449c74219092080f6f8f18a44cddb9077f4d20428228831a892221fed43880dec7d96de52754e88e21a79b9c155dda937167b15f14c7cb8a89d3e305e0dfb544618f1010c9b2adb2a9e3f2de8b7a260e9c95f07b36fdf084e8a5d9519938aee4919c8c7ca39578fac9ca1497ce964c639939ed567ad125e17a4d3df358698f1e695cda2e3620edab1f99a83f19f119a2e9c00a395f12c5ed4599dcecc8b483e836ea5514f70942e81306826fb31611d8e85b6481951706ab9d3d4a890b436e4a7a433c8dadf1dae815ccb17ddbe7330324da753d3c8d3d364e5dd0a41e3c864782378b857236e9f6d38eafca1f462536526826c878e8aa6e61dadc6234f4a82e78116808f6513ba763e84e8088b6115fa867c2023ac6f1ea0782584db9b1a7dee89bf3978f2ca5027ad4c8d67fd719abc27cd3e8e0405b1cca26edeaf818b169f4d22a19457320b09ebcbc32c9795b3b9f6b7f78ba843b56fbcc8264834c7697827a8901293a03883decee5794510f0785862ea3ace74013280a40e47a6f3bf096655a8998f011a7096dd5e4ab7eac72bbb8d5fe5ce68419f55b932328ecf27072dfbc847ae99aa6c6424389e66f62abe3f210f39d083076830e27e7d596ff81bbf72dd3168c5845d6dc4b701621851ecc7ad8b0d74bcfd7b2c01a223c0be1841dc3bf6173f9c9bed74d7f543be03361d4a7b219a6b02397977ca6e865c29d0e2093ac080ce5ed35827e44be7058d190ae84e09d9fd90282e5e2e3f74974b385e474d15abbb7850edde985f6c4959bbcbf7938e08466fc6cf99cb425d9d6662ed551b2247b7900a2c6e7add6801acfe9aa7be40a2a3d6619b5e359309bb0725e2f13b898896fab9888a11f4242c367a8ae11ac7acca5a8336a343d017c24f8c9de23ea3bb56b484f572f6a1c3a4f360688638660de022ea1a1fea26aa3b3f88deff9139721ae4a5879d111797d2ad7e0ced5a620231885711b3edb5b7774b184b7c1d5f54ad4f3d2bccd5835481509fdee2160e328d1d86cb1df1fd70e47b7dcf05c7693956d3865865b7389a4adef6ef4f3fecbf2fa7a1b602f8d72606c4dddb0cd509a1178aa3bed1fff8258cf9537f4ab3a2a6db9087ed3a745e704a891a9b5f45e7ebf977912866b8ff2cfcaa2836ea40f4a4d69ac598490d5c19eca4bc697ded443564ee7462d5e59c3d3113dea99fed7aafec4f565b3354b027f14ecebbd8ed9464f9648e1563a743490cd05f994787c5e47007ca6dbae6b58366cf04dc13e6211256adf17284d097dbcf810dd171bd7b923ec052c81c3c8dcfeafb27d4e60530e2c1124d555e145b4d52facc62040ca3edc7d58dc35b72644e0886fded67c7dafd09399fef011645b5ed008c89a2ec77c5fa84395cac772b6685ab65ff5e108a7a5ed261f505e67a7837737637a8e7a01fc2712ab021de2a43ff2b93974d8df894ce336ecaafa91d2e8b5ce4d3143557093ed02ab5781c4ddb7e2d2545b9f429006e5ae792a85a6c64e6bae80163765232c284d7defe346d5a36700ae13a60edba2f23b9df8f4b835d9ef2ad679b94ddffca1ab0236c889bcad96a5453cf19c046e450b05a461253f3cc13cf192c7c0d539b2b11a28bb8e0dd25d40fb05fc4269883e50857e4cfb78f54fdcb2373798f33ef9573d8b17b3203c6228d8ebc10c5dae270d9f5053234be076f7c0c35aa267c8e57d2c09f5b9d394ecf4ec7304e8e3db93af883741072f815055082406cbbcf3d7412d7c1f369e7a961fdcc61eae9e2383bb5937bfe11c673f244acc69cf4b8353c4b5ba971359a472e5d8eb852c46455a0200f79a5839f434d10d4a5972a1e157b473ec4fc3fb1754f9fe3be8831262477a409044ff6db9e3ba230229119869a5df46a7ed81fd4ded130c028cba8df8efcc226625e9bcba3e24a84e56ef2ccf0d03b70af361d97e5c0954131d54f312d41a610d7ff15933a83bc063e098bece534fa1e14129b7985f67e99bb4621157b7af287662428e4b6f74961605be3bf44ddf240ace5b59862cad33e432fe8fd51bbc422064b2e42000f84831914375f855e0e7f22308d5c1a7edc82e3e423a7259d02baeacd1f7649308a54748039d691ee49cc3b0ce86762c66b569aa1198370e468e92a0b3efe8703f6a1ecb07a7dedd4da218e8636521d7eedd48aca6a7f3bf9204a5f836a13cec04b071495270c155fca0fb6b6265ff395c14021ee3d6d78e1a98500c9039670116a087a77c9088307c8dabcd30bbdd4880da3d4b987193b7b64804786d8a3c3cdc77c3916b15c796b68f61d4358af4d71c3410d684cffa480473eac59c45bd2cb4fed73b6822089fc94ffa335a12d67c8d998c1a4d6fef52d8dfddd84364944f3064a739ccd040ba09d34c3bccf19700f27599f03927960cf9df4a6a1b8cb46b7e27c76c50d2b059c41448324dc051211addd51a9a7366b0ca5f53f587cb2e0a4a964f135deb89144e83d7e3f553ac1342ce9ad2c52dc26610f78c03c332836b4f59a75242c399548a28da8c59c691ae6693abce577a1917aaa83f8512d8b1cbb523bcca7e3f718da81d68ab60e913134a8b4cb7f6175a19913bdc42054315094e270edf962c3e8f4e3fd70ad172d3ae64cea499f86ad183ec5030f7861c32b3ee9a3a2aa1ed539d43cfd2b3abc4765dc83314a1b354a9a308a905c44de45ddf534d1a33b9a6fb200736534430b25270cd39800357207e7051f1615c08a5a0148db9b9974f2cd0a2e6bb1db12285146cb7f14f1296608cb8d97628a75436cd4d64be6a03f4876fb99feba17bd5f6e0bd86a1a70174ef9bc289c34239f2cc22b5177e52cc76890ebb9c5092d17586e9d5489ee16a217dda18a827f11a9dc0a545791cc0944ed22a3c2529fec1464e93a3721e30e90dec950410176dd989b3469c2b11700fa5d416857c512b18063dfd7190ff46ed2a05d0fccae495ddfdac8ee3516c0d0aba5abeefc2f84b0b8e179d713b39ad8b3a6322c8709dd38454ff10a32a0405981b9ca8d05bdc9d78445862c83e69ad69c4abb5c14b3dfe925c3ecbf75e187d356891fd0dbe3e77946bb94e5bde829e03de588931f88601be1ff958ca21e261d511b95097834120c69c24ac2a248580a28629ea55916263e62b87d55f40aa50715312ff044bbcbc016208a496d78fe1f3503e6631673a98572f252043870b928796c8e3eb4e69b8736571a5b1c1578817dc89fb4d4b44d8e4059b74da9bdb098ade0730516796639a2d968a49b214b1c0c79bd3cfa9e09586149227d990de1a569514a946ef8657bbcd7379a65c8b8f52061cc493518ef52e41c836a50c93ecf28abea6fd216e83d772cf92f23a4c1d7775dd431b6906cb5cdaaa4f578f83888889a7ced09aa9e0b9e846741fbc743b605004ac36197c231435eeecf82fa0df5b08b3091e5e10cf1154decfd6318f61244591e209a9a418382c481d2989e5c6fa9c19d024456f11b866cb9f3c71ec74e859f4844b841c5a4319b4a16a2aefbe8508cdb591df691be674d9e191feaddf587a572f3e81bd7630f0d43713d62510cfed94beb8f8f5fc51bdcc310f092fca35615e363b22d126720eca539aee27788711e3a6fe63e7950ffa09903214ad85314b52e49dd9593da5e4e26dbc78e94fa448b951f3398a0fd2522b7b79f4291bac4203802f8d3a23c801a983999222d99bced9d8d91e0c3be7a78795b6db590cb5af4bbe006f7a9bbf4cf617b19b6c2a47bbce12b66d78dc1d5bbf4b841632b0aa3304a8baf4ba1850a10b4b00722ff7b9045c8103a729ee9c9c962becfba199f2dacb09a2db9611100f0d9923b6cded354a617bd9ad8603c5e0df0f01c7a7e9d9e1ef20322f941a5d801c9ce5a85583e119faaf944eda3062d656d2ce300167bd46aeb6c7d03146a24c609c074aed6435ae9dcd6c3e57f7f06ceb0f0cf14a5b236ead36e3af0ff762560247aa0cddff978221d485ebc368d0ab7ab8240a2575a1104c277d745908943c95c364f672b6015008f466f5a5f028fcfa5ebfbc5e7121f8313d335be5e81d6eed6c1b9b14d739908c85e26218d7d1f23bddd9d4b0fdbbd8acf2d26fa0b537f424463796220f014e8f080ff69a0b23dde8eb5646e3043e7271ee868644513a10fcd8ff5132b1c3ff67ef970eb9d45105cd088ec5d299331ccec58068881dfddfdefcd472d47f908b9d1e5633aee4d3482fee2116d2de01b4a25c203e6bb9a634c0dcdbb8f28358b9cf06c0c5e6c4043a2678ab6390ba77e36b786fba2b994713d08d30891a62cf96274228c66f4e98addedd8511551327631f59410fe45972e48f75350e1b95bed3ead1195f5a9db7a06ba95e259b69babf02b36800a6746162603ddc7fb839813c3af20c5f40758cdb407b77e15ff812d5c1950b8477210d5d1c7d165a1bb816a3e3a3da6d75b9665b7a25b73ca9e2d6ad7878845fdb717e3b11f4daf7d1d05d3262f4cc8f248ec5cec38ac3970d8ce6265d4dacc993e78b691a69acd1279c21ea8e343600cd67d1153525cb261ce722a74762d1b63291fcbb89131b7db499276d0ac14213bc1109fb5c182936d78205af74b1ac69533d9482d5a8f42d309aed297aa37bdb4b1e5606b433ccfafe023a9538ad6f7f9af802b08c7060044d1c5cbd9fe64a589452b6db525df33826e3ab78f3e8b7912f1886c93729ac6f6032d4b84fa77cb34392f7a8446430f6d2d8c662343c1ed727262c63204a38941dee6575fcb2ebfb94335cbb04a6f225b6facea5d6b6ed3517d8d2b216a5cfe29d3ba32c3625bb1f85c2cd8c558facf4e3bbb7521d8c176b13fffda9c9fa5d47efac5a20af7c38366b2993349b2cba9288d375461c2d61100d7a95ec70957b774d21a81bc025d3a779938201f1ba52b91299c87ba6a633fada7993acb585a57802084e78083c3f4d96e91dfec9dc2d961eec1c8d9658c9d3d66199c1e447830090e06c23513eef8b8d924b7db917296e67d7bc6717c7c5ed860a2aa9c8c8268ff7fb3228062d38662b7621c605ae8803d168a569863f42c92d421fa54b1978d4552293335e3199d7729af9054454403ae8bd6339f7ba81c9514bfb7f88229c76e380601c1dcf23e04d9f62a9f06b582b106f060dadabbbcb70d23581ee5909978ab1350d42ea25e8a345206140888b65270c72ea73d601a81aaa6e6823382dae9320008e758a97cb7f0f282ae4b2430ccebca78a377d207c4d96ab112a678ff1eca86d1e445312009071a7c0219d969e688bce4abf33ba629ef8ab6255b819573c4f8c7e89c1fea41bd6059eeec29c694d39d35b7362cdc081430baf7b1a791b2e35f0fccf15947b6e3abc68da1e7ed5f39d944897f198a5b370339ed707e5a46b99d03c106e847bafa7b7b7390ed4cde937cce407f2410f701fb595604a8cbc9bb19a4b55b6735aaf26e554e56da21f5fbdf3930e7533d100d108607b2861091c4588ab3866fdec0eddc41c00947d6ce1b23dd113a07a20de1f2fdaeb36614812bc5b98d0208aa486af7111f40313f62533f7b4a31237f2315a83c734bbaf7163a0167876cbab215293ca997960bea9d82e91e44fc5699dc8be73dffbe086277af735366b88f96b61bb0efd91f06ce93ee24c439c06281df8ef9be8ad58c1e9b9a308a688521803bd25d4d155bd963eba374912aabb661ddb1540708d5e1b6a2b3f1982730ea302bf455d5b5b6f3ea864d5a3e09adc2c2dac9a8d63f9e20171b423a5e28116386f0c732d2a1ad2f0450260e30711a379cbdd9580fc4bb3adc46f2c854c3028cb2b56ae5509488e78e68ba063ef3f66c8e30a1d29e476503d5d4b50ea1e01b0c8f9a49bd1628367ca3fe4d6c071667620b5830f8146cb18cbba84d191abe45b977bba22d61c30885f3f70cc5bf79aea404184474638020e9a9a10932d7f042c4847a899609f76d925024ab2b35e977ac488cd0d9cd94b241aa6fb6992df92e256d727459e0ba44c187a4ec75a96565c0383dc94904c3eecd04d761484f4fc1409e06cb9cb766801e8b5ddcf895cb5459ce2d6c6a3db9d2de516d9e40a3b66b0980d1056a93e39727b78476eb5bb0a8e3a9757c566e6954e92905e70915b14de48c4e532380298bc60cbe3763c595763f38c75be1cd012cb1fcce48883a4682a8f348f8904199e7a789b4a3ab674388defcf957dd9632ebf29eec4fa80f44481d103e032fac7c6c9cdf24eb10acf81dd83f071eb172fe2b72153591c558ebf7435c174a2ac0fdb960d69373f4ea41551865887a62bc1eefe32b8864a86a116243159a741482f7ef7a285b1450db158df3a15bf800f6d199e7a44939fc549947ca90710e3b678b12cce2b7c7cd0913054685108e10cee525c42a10b3b6b1583d41f1b109a2dc5293f5b0ce3389a51ffaaf12eb53208cd285b9109c34997db8c7996ec2c61169811c1cba35539626b420ff540f5537349da2d9d2ae2b0197aa2a8f0020a51ae9bd3349d1fc2764da04e39bf82260cbff9410361249b7f8b4bd168ba59d16937bfb6a834fa0d92e27dc3ed751287ea8f49a89ce8f429210449b4bb507fc738983dcfed67b11e32288511b4cd87f08a2b9ded83d2d537539b5034d25ab61e17060d09b30dcfb57d9aa6228eae8d68972bed4abbaa29d51bd8cb0eb73cfc29a9a0b0a3a80e6d61ca17ed4fd80651a8ccf85111d50e44be1bb13045e1eda4cd4f4f156035a0b3a0062adebc53697e49a4628a6822015faf1d1c7d4820d60535b7081d2c9461a72bc42ba4a3332a558e5991886ae04ce51399d37aaeaeb134971479f434a5f91f2b7fe25ad31aa135fa448c2c4c7e60d3a6f1b38d4ec0f30ee5ba974a2ab39c3f1690872ab7b30c46603f1eee95267af0654960a89741109d9bf10a6236747762d74c566b42b78a249317cedbaad3824d2b0ac0cc87016b867cf322016df44085a2be8b38af11991bddada6f1ca2fb78ee1626e7fb2e019108430400c5136ef07e902cd994f8d9d87a18cd3d409ccd4491e127621ddf589af4ae6b0cc3a6c8ebeb30b0961b51bac4b7fb713fa6dacb392b8c8e3c7c71e86e2c81996962ea607e8a8b4781625d82afc18ad45a7800fcffb970a3ed68a100b9d1fa9aa9cde48c20c8073eb93bb97d3a9c744e3a8c07565723711ea4ef61631b1582b5b9dbfe0be3bf4300124bd5fdbb2515e7ae0329a9a2bbd223d188c46f3accdac86928eafa47c2a356a4716bba7b5b35d3b8980aae7cf257d248d4ba466578053a1bd46adc924b549ad14e22ae36e159979eec148157a0fb60306ac03745c8b8a70de5005c2c50a0869c93bda05a0e17163a44509541f02061536b6015fad7050060dfd92598a117351da460e5706d764280f81f56be12339ece7209daef937e81f7cb9a3a218e63a99c3b7a5283f86bb65c73997f96a2aa0205d78dec63e21870503bc3c0291fe8a2da5898d7878a4a93bd8b0d5de9142a51fd341c16231e5696c57979d704896faf7cfc0bddd5b9b4098c1fabbe6dbffb97e4c49ec65e7606bf51152cfa0b1e8e0be738194c2d92969988aa55139509f3f3d5410ae009924c66319a19d90c9bb853149665e5fc5fd9d9186ec9e670c1db86e7dd5798020d8d45437dcd975b42f541cd462fa5f6e439a968271322036085f2ee3bb1529655997c47d0d629d4081ed7c6c8401dba66c498c4fdedaf126cecb71f86ba1b8a9b4510d8b8cf30f086b20f637472874800e05a52a6c966c27b8273f8686c3b28f81b0467c83781a929284e5dc6bbaba6b2d8ed2e8bb07fae8625f67d1ced08d7881f877e35030429c2514ab96c5622be194600a3795af496c068851caf56340d875f3224aeb499a7b783307484a87e89fdea483bb95d6d7bdd8399ec0a1b47425b9b29d8bedb016788cf8f9578c0a517f3b8faba8d8a0df4c9fdd8df111447c4408b661255d0cde50223a36d082f4a8a7446c2f38721535abd6c6945090c6c56d3618351fcd681b1225259da63c58d2e5b0b96142cb254ee48efeaaf6d8f2cbbd6cec19ab209d590104bd1b12bc65319bf0f73dda257f1569c5c273511c42e4a3a923bc5a0f64243d704d839ca56b448406822fc28f9b1fb47f1033f9258ef5f053a7dcb83e7f64f18f6277995afb2995f7810cadfd92a16f2bf589a3481217aac4ca8b750d926afed169206c949cd9cd5244ca6878ada7e18458e371b1867dac803ae78306a7a4ab7dd9569dc33626de29ae06d87b323d7ad116ae1898f31863ba6f683cc8b9d0ef316d2498709f39717f2dfb0d154d340d660473f2ff3b57754f8a1476b1d2b6802b30fc60b1d4881463446ddb56ffe8991139e03d3cb854a6a91a1e9f1ba9607890efcad88aa25dc11bd8738a1cff2072da9fc2ca519319e8a11efdade016d3c46b2c91437fadfce92cd965650dfdfe9353b494133fb8f694ca1b06a84ac42c47bc8de842916d2aa924fb532ae7b1b66b8917caac9b189b6e0690e2e30dfd2b278b3fd3ba456f4eb6a39d38c6931ccff416b51967fba3a4281207b9afdb73e1200750d0e68d61aac3dec885f02dce2e05456541d296eacfd0c8de65effed5d0ad28504f97aef5fb1a03dc40345f3d88c4e6cd313acb21e5f6d3310d939c1f873d53547b99db198dc1b0e93d9119ac6f65df1ae819d9bc042de48246707bdb16cafb7f7de92f49e24542ca81d802bceb297230fddfbf3cd7e7021d7b7ce41b29544a33c592db10d9a10abaa50214e954a2064ee88ecbf1e3f63f918896fb4aee521fd222fa5ba513b59817aa05a93272e69ff648913122d5e17ca227d6e63928cffc4ea194f0c48d454a485dd6689c84b8f3ca83af32e177950f481f8eacbefd4cbe1c39fec2c208dd354bacbd9f702abd04815fe26868d00344cd52ad64fa4e9339663914c7a0e2722d697ec94004e6a8dc0cdf72e4c8d3e0827385ac05f660b6c16aade2c038c9d90f299e71e91f53f15fdbfa989b781c904a74590a03544f7e719a4c255d60056de70f8d5b5722afda5455e000ec965fc02a7fee20c417da3c6972d938bd790b1cf677c2c034d048ffae057bd5f1da29d0c0c845a0969182960a4c6ce39672821d007fc0b2ad79ee4cc1c0daaee4b6bf4bfcce3f84b86b7e52ffd913c46585572bc874c648528755d410d86d02070a204540708ea3bbd5f0f83e20d4f0908075d02ea75af132a492237b820eaaa127f445df2af45823eee084460493e2670601e5c24564916e0f824f37e49c8267c5cca9433aec94ae630eb684944161dabb137c016c979072a21039cb6be08b4112853b4bbf549025955fcdf3d892081ccbd3f602e8600141db59a69323b4bf0ca2fa85b462768a4651c5001e81c5470c0643db3040b38bd0a55fff27c86185786a4499ac81f35695c4a74aa0c0c4bf77a8f33352dbbc33c6ec93253740a97c21f82278c87268de28e2ea5e2f82cc191a709e953c0898f2bf60873905082e30b85eacd25ac2724910070a72b256a62adfca0657514e365c62b526ebec2414829c6e31ec6847561a5a7416fff9c80f2c887776da443d418845ac7755535bc285ebdd321fc0455bf5e6d0292ff0a4f408336005b66d83d1793de3ebb596dc9f775568812cc777f2d267dfb5ca7da978fcdf412e6ec7c20e5ff4a83574f85e68498b0b8922b806c7562d8a676fd50d80895f5182008301bf92f617c20865bd4b7043ae85dc3f9a85fc2f6c9fd68374025dadc037f405444aefc78b6a1ab15da3c49701b9d026e0b4587249c03ffaa2b27a196361eeb8079cb90ece846213363db03f220dc7d541265c3fd9bb7e8204d01b6285832023846db285077ca203fc842ef82ca98b519e2481e37d89901edd786b4cdfa95c5c440b2bcef325dec462838cc0f9fc95a638fc04175586ae07d0c37ca322b92e8f0ac1c3d294c693255beed8f5e35836916d6f603bfaee3d7b8fe23393180ec95d4362a928b056065ae4b17afa81657a2e345ff6ea2affa8977b0a00a1436d568cbf43741097085ced91fa390c2e3c0155b1d72b0a7b0f2e43af4db43ce49854816cff28f9c997bc8610242a81ac41f98bdd607261e831540d8373215d659fd40be08efd6365351a485f07f7fcd5d75c28205421827baade14f395b68a856c605dcd223ad3a8faec27526212779a55c70565e8e635a46236da95ab33ac165dc65a507b6cbd8fd8f29e07be5f62149ef2a20c5e867120d167ae288e72faed4a78961e8d4726c3f505f26e0d843a9a442c31c2a44b25758f9a4b333c0f9c6cf17f463ad1375659e3d89d8b2e42db819075bd7891db4e69707e55b50dfc57e2341c909486aeec7ff032538613403769e5ed720d356d38c66f44dd800b87f602aacead36403682928915fcf38d1d4a74a4c256c2ff57c83abc5893887a953880527f1eaca4d31058644fe52c2e387345eb95b8fabcba070fd931bc67047d4a1cb288e7a467f7a7b4e7388401ab85755cc15565120dd014a877de189d20cfa44383aeeb2c583c586eb1207960df4a2fd5244b906d564790a16487acaa639d6430972de7e147eace058c75d05ff4ca77ced5083d9673daf69b145d872353e404e8c483ac22fd56abd266ee7af2752647fe6b42415208ef5475788d5962e6ee0b1eff88ce685debbb67c30a5b7edc31227eae6d96cc9af1645cc62281effd844ca917186d5caaaf039c688be61a555d2035f449881e26d309f68136967ab17fece95e2fd5d7bd4aa18c69dbe4860655d709befae3e3b0ee14dc9dc1ac03625c906775386d8977122e7d0b26d62c9fcac768cc47a6da43c172b030b7339f567ede09786a82dab563306342ecc2d4a73a942e4e0e9ebf1a695eb68453e36484014d0ad580cc19b3a1c989ca0b3bebae8d15be4392eca35239a6322a9fb23cb4dfa810f0ae32259e64cc8e8884a7e4ee4fa60d8450610f48d09c4a347cec2460acbc37f5a412b8107003f833c405ad26c36d6ddc33671d9e665283a7109acd8e70774e60cbea65aee910b4987dfcafcab264854438d9af1dcaa6c60da106e4b8c2106e566edf04bfdb1a5fc5473e80f3d5e9b03c0a6c2b7631493010a9e37717b5e24e5c948505919da928bfc393d32a37921059341070868bb90476d9ff0e225c8be837065f01875f30a73dde51f1c1341a90f00258b0e1b489f4e317d268af86590cf13db9124d54efdc376821fcf2129ca7f2119aa321467a0d3915621786e71efe284f203767968c7793e0c3d7c5839e8ee1dfdb26b1be93af21dfbb7f43e2b232658cb1e19429b43940851ec020a03f5e0a54f347de7ef798d7c3a61ce553c2056935dcf15d5d292ad829576af84e082e673f9c5a76cf3a72f984296e5574617ef906bd4b2f310c46e04f2eba41da8da9dcd5441cd646867a26dd4601effd18d4ea44cf96c80377664b0fd7984a9f1bf23dc603fcda19b0fec2cafc67dcc19027262b1f25bffb7dd57c9400af2184b4ce489749feb202cabe2874affcf89a973c80c85c57db5c5193e4e0f56c8af6beb1d435d410c9e857687c9441c095b47b670c57487624182f89b88411d92391dac38a61da44023d670ee99cb8d3c92332035c97827b2243f2349dc5da26c5d8047e5887b1e94b21af9580a0e9623081c1b5b662736df4f9da12cac74de78682e4942da67de90b7111c66b1fdaa80091a19b6a32f4229e156028faf46322bf59ea8290f52b023f3ab47712e542871136c708952cfe5554993dd92dd76bbbca317092e21b0aea72f565b2ab4c933abff053055853733f64befba3bc189133aaa90f4360a91f1bb2191fb1aab655416b2f8aead6f51e7383845b65662e8e606710e1f256a63430b36c4f90d8b723c72a949e11a01992e8cb431b482cc1c450bef33806b2771a10b6674e154d93a9ac5be5fd46d239486192d7e0d15c7a56f166de14115ee97773ff29b2832c55a8c980dcc15e65755eb145c0d656f39688f561f5bda780592ffabfb3e4f6d3dd874714523d94773ae879fdb841174927340eef4b681f1399698250461b6fd9881a66f6fb30551afb3c35cac596e95f767ab260289b9d2534c38e09dc147182f33472137967664a241769c9e20dae4f935cad54a3015b174613d30928914ca8bee7972e3d8efed0716b47164dc95a4b3e6cc1a51f773dd20325fdabbd9452bacc5ce030a13a1d20d24938d34a371194c50cf6e1b4125cd12e41f5d324cb817a84426b141ddf4119f4033162a3f199812f265c0b11e7f5e3dd4fa43d38e4ddf4182168a7b0f9302d8fc18fd6046b9980dbcebe219ed38da2411f49df5ea67100a09e5b41bb9d3a23a4234a6efc26745d32486bd7ed1377203d53b9e4641d89b297805e95ec6e10c27cc4c9b023336f42142c2206998edf8a733235ed410e13d287bc84f138dc9dc09976489c624c2f46b723903cf15dc878821817db89fe17d2288dbd68852039fd223594c2368aca854a01cde024aa8013b9f82d6307e9bea766e3d2b4a79f91f538bb7ed8b2dd62db190ddc0359afcaba6ccbe71c56d67d4b8a32ac03f5355435d74b097ad7cc8b97470371a887176829b3b85b1b2f8a3730a99bda517adf7b4469e46869a6232c98fe58baf8ca1a0bee9ca7b84b5a77a8badb83112f541fd57050e537d439182d5c171bacb99af60b15498d3f21761a23c443772b7997666159b872b76dd2587532a0e185604e3c50e89b0ba8854fe8343c1181f29a6be4def67a704364491306cc207c4e0b998150761fb3d10633a142d0d0c1579662869ba2cc061117334c34b8ea47910c259b1aa9fb3552158d835a46f6530c0fa01de51fc5dc855f5d8435b11afaf785d52b7a6398253614351c0659b1a07275767419655297fb1218ff9cc9376d976c96549856d1005f5364843dc0c42a9a2a3d78c54506e6e46799f688d9fa2e528aa1bcab20ea229f1d728291045e99955b724cb01164de95603d480ddf2c59d8f8dfc93ebb20a9b996086c8ba1dcb3da9e9b3721c292ac2cb6604bbe7eedf68685172895647805f6d2e06ff23ecd9f0e2615663175759b59bc62cf1ec40bd75f14d03ab2bf9a0c6967dfcb49357a9c5ed82d03de6b902a084350c0d04bc9820f7eb2499e08d4bcba15536b8eb51a32a75d225473197ed3ae3aa4d446cbfa7f7dc7e6da66364336492efe646cdce25b4fc09a4c0dd186ffa9bbe3662f72a826b541b35f17668fdf34b2f095629d0b292c3b508ce45a80de3e3e7da3dc8e4633046ceba69c5c2f1cb70cd9d2631deefaac278aa300b0663935cc74c491a12c92680c66846f5c4a1558d02f7c3536f148bf309268ca37bdfa6ecdc9c16cbff0fba9664275b7e50ebd0038895bbd28d6453a4b20780fb3a0b5a116253722558d7f2e3bf17fe38ff2240beb2228c9cc207633c1b8f78f9c3bfaf480d2943fe75d0fa67370345295c7863572eba5877d01feece2ba2245ff8d708ac3a2077c75fdc4b84d54a0e11a52ecc01a9c06a236d8c89526555d37062c09ee0b5cf38e851b96272af69f5b0db706e307ed1064208509d72ab8747cb2cf0bab09b830a9e27a323ee213883b358a30cb4ca24505a2e1c67522bfb827db8803745c2bb5327ed84cc7e63204e9c229298b0a6a6c756a4cfea5333a2d3cb839cedce487780ea98291116a1e31e2900483568a7b2d0f0623746ef5528d5e25329c84000f05e20dbf08bb5e36b94bdf08be1ae940ec406ee9e13fc227af5fa04e5860ec2658f1d08b44241ac4f4befdb8afe86ab18626fa8e1afe2c1e144cd90706b01c7796fa392cdf6163834285115619c48528a3a19e56bade1b4b115fa103aa2325e4050bf7f3fd11f081677a486f733c3cbe540896d035788f6849e5e78f421d4c6b1264651c8e4a42253ccbc7abec426dab17ed8c6f876b1427fbe8989b6b8b45b7134d038a935b13015131132774e78c7333122e03beac278d0a874b810045ca2101c99b0a81495e3025f0b84babf2156c4be334b99e0406f5f229b49715d6c0ca8de9f8bbbbe3b66735a63d54ddc41c15b7de254a1bd0255115949d30fed55bef79b81c2cf383ea415b4091cefd4387eee09b3931ba561d70ea2fa37fbbeddf3e258c45db861b05c0c60ff3011315b284ef4d52a578a126e2660a067fce79e4fdd9b019b4a3398eadd8cd958461e3fa3860c397c805ac543b9d59287b952a98d5135c3f98cafabd2e2ba56c198fe30497f1492149d73cb81ca62af1f5b9b2cbb5da673f2ac71552afb60707692e0d3668b6dd1d13147c09d344e36c8e01bef3ede50ce3d9040e407198c49922a75cf26ef7ab44ad25d60b692c4980ce986aec1062995d48129f56c640e41e2fecd789ea105bde9b5cfca6d930b49a23e484dcf90b8a4a342a1d52190306c90c16a8cc8594142a74a90062db86dd056e1511a6f0dda7e3f0062c083226c18f19225908999252854f2bb111eef6b722e24a504ff57be9a8f007e2d000580628437d5b486296b0af69eb32f919bcc329cdca43106ca4f0610523f67c7e38fa2c611e0d28afd87e4a58c231a53e04ab87f6dc9a78f50b09b48117b79f804c6631f1ce780c5baca9696cfb8beb26991878292ec740ee095d89e461eee01f2d090d89c5f52a354a40110d2a6028fd29254620d5882ecdbaaf7401205313b17c923d9763f75ad57a3316f9b632105e14a0dd1c7be81f6f507a22585269bb0d1c82b74900e8b057d4e621b03604f5210ab01cb269522db7fa49c8a1ac17e5713d061460a917f586d830550e2c4afc19bd4aa532e21a358175dff6ac9199598c68d9f27d98b07cf98e267a3918aedd7fe953c9d6c26fe1907d9ad3bc35b984f2a9332a6d8dbfb614ba69d0359e38672c2200692251797a061e332721beb87cfe7741c4ba282b59655570a85932e3c0db4abacced47015642198109a39da58d9a14d833c6652f10e11961d5bd36ce87748f70eaf2ffa746300c3ed574a5778b72a3ccc6dc8c7d31ed2d41ee8a5b02df88a7b0ca0b82271c69a4050a862f378306b0e093be3e374111026b26524b9ff6bd2d80a3a32176b0c1e82d5362eb637acd40d6fa69a8adee0f70081d200ae580c054d907820b0210a47279df77e72ac55506cba2f006feea8098ac4dd4d6ec79df0ffc7d3366b82196fbc95ee971a52d17d3e6a45dffa4fd29996f5c4b2ae17839db4d3615bd773ffa721ee0912eaf165bffa83ca0723e9e90d42554881ec0ccb4fe5de60991f4d8da465f2776a9893d0b3345665e0e708e88684cc4f4f4843e41218e44e9bd6b63296917bec88923952a5aade34e3987253108d6e6b6bcfc0dc2f8f56c6c6b48fb40dfddff6193f7b7af60326553a2e8837f8e9e245940efa1f694f89334e62e7e6df8b256ea1440f63ba39a20a4612cb323040585c7379f0f9f9d0aa2b3f910dfe6223f36bdad9f4550c7f152187fd844d5121d6c10a66190e5cae798ca330bbd094fcf00a0cbd38ad237d3675499d4251480af84a1f55b47cc156b55b8b4c63035ddfcfc5fff5c403274af090c121dffc852df5d8d518f5f561048c71591f928459ca359b288a27a7df9ab4237b0ffce7d52b796719561cd5e5dd4167003d7862c3fe5eb1bff619babefe62d3b7743ff71719b7369b67116a43ee61f0ca2988b52f6a3596c3f999929a71de1aa614157c8507a811da28cdd8625022bc8e3d61903537c474177f4ebedd2abb38a1a6514ff6b1da8cd88aeb6985d37445a1ac7ed1405c33e1a8a3b3ef163a8d6468c081f5237b3947cf06675f2acd059a3ff1aa8c96352da0d4173cd3b635d52cb5a03ec7a41d10424923a7e61238654b32fa4323b2d2a9ef97dd1202cd9c02b05f8ddd93496babdc1bf647300c4d91c737320611fb0d3852844efd97fbb2bb6e61b0a5b7fd03336c52aaec4ee0fe162c16a0a2816cca4684fb56fa638c3b4b4dc2fc1b95ddbf0e3dc308d0c69aa8697d53c8e1dffdbe4f7c57e8c2d0bff24af91a7068e777437bd87cef99b2ce7fd49ca12770c86f8b96e72f626d2983bf5f2d072c5ba9bc2f175a1d3b2dd4841a2fc380238b593d819a9f3517c68c889bc559965a12408abe2609a2af9e9f206fd0a6d772dc0db63e70abf96f3f2d04e406c0e8431cd69d6600c8599d05c0c3c7aa2eb1a05a73c33fc55ade9df2fa8fe303ef92548653b91ac771e4b0f78d005a1248f0a40f1a226a0b7502c554eb21edfffa7d0d52c679d12eb07569f4eb290629ff6cf6cb3048d8eb5f9a55cf4a4735c8d1065e5ab5ed3a957e9fd25f4f07268468ebf54fc9b412a96159fc9f6d78fa8f5c3dba26f4248cce9299053ad2c35dd60a1ffa3338a1f9807f182781510f815e38da2f435c187ec0c8e9486fde0dba6a5589178941cbbc19fe6e2a4b95d4e597ad5903413e3755611c32019eb9de5f6ea7f89d1be93ba6f30527abacc9c48984f262e8173ac31ca732ed00b156c78837d1addf6c0a5908302e5fd15cc3ff175067081dc89c5c3a5318cbbaacb9bde0ba78cd258d4233b3e0a5412d38f3c56e91ed08a78609debfc46c049708397bfebbbe4df9fa47c50608303b19e226ffca76454b6081d1950e33f3d3d901104ffbb37733a216b4be6126d67fb3bff5025409756da0d4acf1d28a40d1a3b80b6babb400a526959ae9a5280bdcaaaf79a993e1e503b565a0587385a6662560ccc673328e5e474ee1aec432e14ea86914a6007af3123d7573ff4d1fed9fc6e4445f96a0b1649e6323fe8da8264ed4e10c8ae223e51c89ea1d868ca7ab4cc4e8c65e7c3940b460e728a4c22f8f644e948e69a444bc3c109898df932561764e84d028623867db6cceec5dc4de69fa24ac188042f42c9cdf449d06163c8c5b6e980364f8ae0ab07cae26cd490f5eb1d25dbd0d7f155599ca8191cca3f91f1b4037d5443d693016980efdb4489eb5dc1469304e242fdfd631ab12c427e6a21f5b41ae1d01b05301d2ef8000f485a4b134604f9fdb8c74cd7371ea5a33bbb7330a0f735f544ddd85e632d3bd6407880866cf9ea0944ac483107678233b36a0a2cae57252338d986401d7dd55368068fdb10a2a09366973ce563c730da7d8bc53cd1861c067cb98c2f5da9bfa9aca912e5e0184d9ec0211a126ae7fc7edfe03356b1f3c53b660e14e2b7ff797ef886c1053e589af9fa96880d13874aeae903359233c805991bca3cc5a01dfda58161993adbf0bd896412003abefd28ebe0c335c1a038a1dc357118b0571b086af6c04272c047733220def64634c4f09ce617382956491b7212592e222267610b40bcfc100fa20893b19e2e4335c9c96e9b8f1b47f578a3afa6d059d993691ea6f924038ac0bb3ee3fd82b59b30516316c877af657e49c6cb8c0629b87beb0ca1cb2dac4ee24e98fca6727ab9ecc22d3aa0f17e6b306461cc5a0fda26e28525fb7816d02316167d24fdc2d6ef3651629829d1932d69ceef3b32d133cba438e5ce78af8d4d54c5436f5c638a67d51a340c661933cbbd9e056a7eb123b42e2039199e0f743b0cf704b2a3553de859840c155c7694a4708394552af1b906af17651134992d07b019b70a877c01c2b11900d3042620551013e67e2b704fc617852fb20a9d097ab426329d73e197be9627f837c3fcc192f299c32a49b09922d5c98cb7e408f2e0a4a441bc58bc1be20b9eeef7c1ecfa1572ea6705ba3144092cab91c47fd0a516d50759fe2764033be5d8815d2623667e5263c107809a2f8706dad399650acd35dc547e258b0b060216b6fe14e3fa46f0934f2514a39e106b401e21bb13655d1e5ab3cce0127b900eb3d69ea89bf3ddbbbbda7ed1364f237a92cca38524f2e02164daf8164f23f0f948778f4c6629b887a6394ac58fd4e0ece1151efa65cd5c020a570457afeaeb5b0ce050b507ff49a3d206e38bb8fe0a2200666b5c47cbfe394834362063b15c32f885b4d94fee09afee0c5f140a44abad32b0cbc9ff66b7580f4d1833b94c98e9ebe00c10a83a7687c7e839a3c220f97a4d97a56bf2f48ea5dfd0b383a6e4a4ef7e9654b1a6ac24f59692abf4f7a893d8e7b24011a306fe991180d98ec79658bd68bc1359743b88d816de56bb656655063149ee7bc93fd056f80e0dcee3bf0ed4af62e56083255dc167cd02d22f172d02c89097cccf579c34ecf0cedf5b6c7f700cece27f482f9ff82bbc9a621ffa04a455809cb32162c61aa89fe3e935174954298758faf3b65f500b59cf524d439595f82ef59e146982a52124bc8d5b371c8ffddc34211fc88d7e525376221a7704610130c5a738eb9df729632ad86593b2678f03c693173d9ff34ba0df16379361b12708d4f959609a2a7126efdcb62191a8470cd41f1ef9ff69617b197c9f5cf673b3b682064804b91645aba20aaaa2f58b4809fea1b62e92516086f3cefed94fbfcef371ffc5997f5e415b243db4fff1192d85b2202413bb5b7968bfbe4378478c2d4bcd6913c6ea339c204be367454d8ec87453afef800416eab94155326c549a98b995544c98ab19d68ee0e3e6c18cfb106360b420a8143bcac0ae0dfb8b26604e4b909146d9932014aad0c71d5e1d9827ea9c7bcda5fb04320051f129e69222e540eaaa414bd598a153736cc642e885a9251c6e8b9b91a97758489610ce53482af84236c8e438493fbadf84e61f6080851ab96688868f39923dafa41ce606abcc6c334e55329d765bce30add94088d519dc2d1369de700f961ea4015276f8a64e857016fff32873036028ab09fc567ca82b7c5a1ae5920ec8cf5d8a7b89b2705a0a0495f23e9f1f5e7f8607316374926b72d846107f7ec01bcf93bebf4c841716d4b5790a6dad43be600b26e9d2855f05acb30ab1d51437da23d20d13e1786aea610081ddc6d6e295116abba9a0c6cc539cab892bc4787002862c52a04264aea726e08a807519ebbc1286a423c302fdf168c87126585c8ed2a93358ae1e90399cfa6c8ce40521897ce04287c60ea9797db8139f1cfad83309bfc9dc0ea9636a18b405f7b15fca7c7ffdd40115d4bb035617b7bda943ac47d4313a066236c22efcccec1606222217fb7c67f7d6e0044b3cd3c8cebc4d04316e1f3eefe5dba756cdc237a774f2c977b334cb40d5163664bbb774ee9f52493a65b06c252bdf9559d8ade1157a27d3be1d6889aa4fd65ac8639c67dea0908d131f0d15bbfb562617639147daedddc6b5ec928cdb7809eb22f86af0ac690a717dfa0437bc16aee48c8b3a4696f3e45d1bf45df9bafd0c064b6564de54d4fc72c1ad9335402a3237741d11073f7d70f678a7c6d6de930d9a7659020f0d73e881dd3181af400d75c1c6457c50294aa8def1c5de2658f6c397ecbf87627770b94cedc153a583c07b87414354df5ca75808befc27f2429157cab8ada142f3df4cd7085b192418ab01af727856f594d601b4e0d0c814fea8d3b8a4f4eb7ca6fd5dfd4bce03526e7005723fb6193ff6b32290500eac13cb09a2e8871b168045a8d6bcc3cf700bb87e7c1f29c20e9e949a5cd67c89ab5c88e0899f17eee51291c02aec3f2c1a53488095d162ba684a6fecbe1bd25069ea0532c28cd4d5e76e08220ebaafdacfedd603c714441473cd8733e2fdadf8a600231703c0ca39ae4c816b8ae672ac68a17bf26b4f477d59081cc59e3361e51fb1b81809343df3d8687ec86180548cd0650ae2b3d10ccba4a6a0851483e54f1dd665fc89a1f41f9cbce2849d43984adbd09828be82a86c5c22b9da22ae38b2f1574dbc9a631df0900ab4e778afbe04c68a8c121ffdb4333d7ba1f1fd3cb54059e6cbad1d1bb378e7ae3468337dabedab9f12ab7c7c57a550bca8ea46fd02f6a1c3269b5a28fc4c27efd9bd961b7bc5b042eb051fbdd6c164ca9be99f08e7e16e8e98eab7bdaca7bd7dc9d8799474435e5020a571a502b5f4457393ba18119fbb0e630ced9889ad76bc7f65f955a355c6d4f121eea9903eb769c676ae134debe6ee9c3dc29f5485ea6614fcde4b611733d4669a8356c52ed7d4d81ed58451e2c6666b110178efc13c460cb5c47015c716075b71756973b829c3ee98019cb3113d977ca87de8ca51082e83962c08b07fcc8a909fcded9a4b2520280823d6a1e65e4c8d5067608d115d384242690b1ab75f68af558bae5f5cd4fb0572ede726a20e449203a4b6218c482471452c624c49ff64916fd22d0064cd8c63ca0ababa7593b8fc86353a2694754d246c97c61023d9d080ff53766238c032a363e50822ccbe27a603bcebb85d695f045498b867acb465ac9168dac745dca08c8c707e566a1e166052029f43ef6f75beb037f62e035b1849bfbd8ad5f4228cf133d2e54e46909d3eab11d2a1960724ceb797e295119a6a2b0c6f01396c4da3adeef4bc9bdbd5ddb0b014226c1024632318afa90c18e2f06f2919f4fd177f562a37ba4ab94ea5520100d05fccf67fdeee07ede84ec81437f218684e905e4aaa6b016599f1bd13edb0e86d1a99aa6b30b340a98f3b5ba6edb97698976ef3b85677d36bc94f7bb03b931828ffc68096dee11456243cd7ffe84b95b314ee24d35c940ae12278813730c71576ec3a2c87e8abfbb867582c665dc7eb85925da379999f7e3492340f7b81dfcd3e62281ac187485e63c9a35483d371b3b24cc4c9606d1ac62d6e4d6c27092661782057984c6ce81a238e68048a4057cbcd25f3da66566a10e5ddb82335bf251849401c73c9bea96eb2bc02775ec47d1c92201a968e693b4a0a96eea50f4cb631ff0067ba22ae8a0370e66c9cf95b227adac4645b49365b12a9945932eb0e11fbda4a7d24bf8ab088f05747b2a5210adc732636f39bb8c7de1cca9e3bdf8464a64ab0addf2d3d5a4845d43077f7502e15663df3a5c39d3055c840fee6567f80187b26b071ea62f7ae2b2c65c799e4dc9d7d7e135c709217c9c6da159d38fd5e48158091c31b5888c65e3a1fc4855f10dbff64972213d53dc389d2ca1c688cd89405aff0e19011a0a5cb55424613c640375cdf2fe510f00077b7cbceffe39aed9055dcf7a6f1093519bf9a191e3ecc4ed8353da0910d63854387bed4e5210499608754ff4cbf7d97d36c7d18e2ba07b5e23e68084154be1d6c257b558b6088c6c5582c89d90d628024d6a086e56f25fd5c669d8dae7ccc20eac68c3516c18962546c16a767ee8d913768189e3f9f8a61d3ca088a66ca648bbc3e8395066bafbf5826206d6a3aea0b925a666fdb58a467e74ec028e1c49dc2f705399b0efd21af7162268f740e123c352d8dd88b67a7572aa4c93d61687d80af2bde124fe622baa6a98ace09a2fab514e03fdf11d01f00dffa68bb076a21c76b802ad1945da3741312e4a28891680882ef32413174d5843e13e4143dfffca9ac1383d3dd84206fb333fb9cd462b84f3d3a52ef96c2297c7ca8ca544c65be81508585aa951f17ec430df85b86c4ccdbbe525a14dce9f088d78d26a957b24737820b9b7af3f067b3d8d84d500e1a5e358bb6f26d6207491fa9489309c7564b34efba1c11ec7c2e6dd926c5cc57627727dfd40a760120f9305616832ddfc8c68012140c37f19a5d34a7f5769b09d81a8a28ed12fa43137ff348bf8583fb305fa11942b5bf491db77315b90242e98afe269c833e4518f552a935d388072be1c3611f6c409e127e5b0e45d0b438891623777ddbca33c8e182e41582606cc28521e6b72ac51ee7267970b586b3fd3ccea1d83c2615f6746816ec983f9304390a7988a64726f67cd2e990b18b91353bc39384e026cbc358e3c092c84e07e6596b29957440e4b42a6643609e3734a79dd7948fda9b2b981c2ec44b0219f06464776de5a7cd490c9ebd07d5ef3ea0803651eb6a27a67f0e33f3146580b8e44b958b32c2bb96339d8d429eb81dc40102e67d2495859ce22df82e7c1a83bb1290f16c7c8a5557e677a19ac30c39f32cf2fd6fad8a1e404d909a5d1d6d7b8e173540a3acacf73f10770af5a1f33bcb6dad046fea9c84a371435a9c482e1e96d966afde71c028fa0e13912c867d1fb69c557ae9f9622386a7154b084e540cd3742db6d3eef4638ed1830fba7a1480f98cfc022007507c3c1903bfd6bb75f50ce34be11656441b3b92d3dbbabdc5dbf4b237044b8025ccaf64688f66c636e8262c4298300ad9278c4b6d2a186b9115e4aa4b132d9e4992d0ae18ade97b260ba919b76bfaf9ddd2c1f06ffd1bca069d0b3e01866718e5678347da17bd6924d6b096ebff4a7bf912ec398dccf111be907e4b511defdbe1b02e3af35ef324e77494f1864c08f995f7d6ae9d9045a1585ac34cb0f1c27d02693dbc25fa53c9ee781101c764c0dc0f28623b75df545f4d065800cbc3b28a21f909b9545d4f150f5a818664d4fb96204084b293f55a1ea4f4b4a94befb41f572be8425d3b426569d43efb04d5892d1aba43f1e7895641a1fc0b1a0c04ec19b44b1306a47c110a19c3424b7173af0d02d85053523886cc02e8f4187091a6f2de42c84b08ba75425f728f076c605eb276052778b18c555e82fb2b2a4df7626cea29f06d1a58ba94b1963f2a31edce3d49c470ad3a8f1a37c2c3db61833a4c15bfffbf53f3c69b804711460e6d2ea6a5fb22dd473cfad0634d7850eefc152a19bf9471bf19185de951a5188601971fa1fb345719848ba0eba2ca4500296dc49055966f87955275ce042f09e01d8adffacbb57292f9bc89a810cec9f9ef665927443edfc2c3dc7ca803b7085b96a5bd90dafbcf155308fb440f871dc32e55ff4e9c4c72eb22e18e9a69d6331e38f36fed6115c4029274555e7a291e601b76c2a4b2083c86b682c357e81fa6dc86afe98b2fb9c1127db822c71ccba94c0d03b236ab4c6e18251d36e960e24ce97095b92fb1c0f504440a3e0c49136b9ab8b9c583cf8a74e15aa729862c19fcb2d0ca1e4c366baf9781e80972b283307f1e45e94c6217fc18e05c9cd2a055e2df2c9315a2782b14fa96b346d59f7568247bb1e7e43e5c2422337fa274fbf2de7ab265a87ff0a88c1cc82a2423d2b0674951da48f1cbaa8586f73f5cfc6a6fb9c792c63f1b9bcddaa74a1681a2adbdf34cd911802e41674f49036b4c353ca7f1010ce690e50d4d5d17f542c76640eed1af99663b2521b137ee5e4ad1a289c8cd4b1e4480d73a79ab611c1ed31788ca2dccb8ccb77c037595316a8a0d6a62a991b789b285d7dd7be4b7a8d1ffe1bcace69523d1d406afb1ff3ad8f9aee4f94600ab5fe3054237b03fc44655d225327013b7136098f18c6b28219077e4843397f6134524f65c61b43912431ab1127b8284f7fe8b7a038dc3a1c33282ca632eeae1488969d9af64645c535655b9f7446aee6c39b75d152b4d27037c99cb98e96c03e780ddf36f950b306a25c036aa30e0b11e1e4d1471bc1a39f716bbc1bae1fead620999ea6d69134ffe126cb76ceaabd2b876b68ae825f53021d318f4370df94d2e7b861f54961a46d6d52c06e1234edc7ac5c3b0e537be28e3e68e8504e2f34fe76a2784823238276661af2bb02793a827df1b13804b138f2ada97582d0351aebd3e0e86d95d835bf89e4200dffe24d48d007618755565abbfed064aa925dce750bb0b4d212af86e0fbd17e83187bd0bfda3c140fda808bf2fc35a4515a2af7e44d8f4c415992870b6fb01f5840892024a4fca5841f05527431dff2de503f9d0f57b34f40fbe9adf0991960151088b228356eb46a9d52b45d3333da3c6ba774624ae25fb0b115bc2e9cbca8bbc504719c43815385ec034c7fec0ff07705616e682aec1ef84abbd141446a43d03edb578b21f1f36ecd8078852e6a9527905b00bee572950b353e47501209ad2a815cf7e413cef10a36cdeb3a040137f36e930d2280eedaf6f7fd192869190ffaf60e25a80a8d82911c33c353df25f4c67f66e8606d602e2bff36826e219933ce9b6205d097173f99064ac1524ccdea03493c54b193989433809d6cb2d740cfbb39d3fcf14534f039177e74f011f6580e059f1ea1392dd4ee8665eda9117d8f13096ff145e76c0134ca49ea9aab740d22325bc0f4d23c39824345fc0d23351cd2b839e0ffba6be9dd11dad5ff48727407df009f1c9ce6043ce23c029de72820ea47bfe1a970f37053a86b27e8cd5e6ed39c6deafe4288a60f909aef25adc1c4679d140f3e02d39945f956eeb89ae2ab607ddf6a56a696ec2a5026edb5ee96e17db0e8ab6ba910e043ca0d6119cc83fbd95a60eec9c1b673771b0d1c83871b82632f208cd0c89176e70a9defe4151514e852bb06e18716933af83524c36674943791021f4b7b6e84550136cbbf39de1fe0a557ab377f8a6fd852e55d36639914f46fd1a92f41633ade6dcc76a4ea71c6e03be604afd374c69b7b0c306e929243c190d49f980935ed73eeab380e80ae29bee34b4c9b887230058d2f60a9a94fc5a219a645b492de664828a4abcbdb51cdefbf7b4a799889a649a90eec4fe6d58dd63ca02cb715d3818db80027339c18d8099927b948f84a45fc2848352ff4b843003ce05448f1d0f84fd7a5544a2b7d39773644c8fe5c788798b3f4f32df8a6363165df9af635f2ab7682bd8404cd61fda77188dc2466e167c868da0330798d248f9111f6de4b73dc10fa6f462d0d311cc89a9ad6f022d08b5e62e5316fb0533d76a589e0645249e90ce1e64af7b762fd67e08878f62ac70e87860d1a13f8b870d7d4f8addb8d00ae5319039a3941c1d4f051932b3fb4ad6ee7d900f500fe04d4849ef10094699ae4b3c9ac1be6350def9b6f60c4b88d571e4ad1020076d92f782f5ec3465ffd365f419cc7d2de169f43807f744cf573c4f3d358a99e0016fda3faa49f77226ebc94f35cf5ecce5405af3368f42f8c01733968093df95719359a49c3981231484423d76d106045a622d5718e37b5e07e9a11b6f6d1ccab00880a07c7369d3498b67b8bbb09d09114d25907b8da39fc39206cc77ee4c6b1cc01bd06737480f446f578527d662869b0294e2cf3799cf8a9548425e8a91c0c721a7609b311ae7fbe8962aa35e0f00503215b23bc6036cab290c543aca0b23dbe9a11fa329fd06b42920de5ce5056cebbca8ddb88a0957b8e391af6178f27c8959c64970b89c77c325793749aba68ced52a7226fc7d593d589415153950a630a1db12001124ab5518183af9ce413346e848320062f094e6e9a586a392b3d905fd8e22cae11a99fe77cde72aeeb36bc519f303b461de503f9507e28ec940b2dd232286ade82bafb1ce2da1245bd32f280b731438147136b65c2046e4e96fa0a2786821dd783580f741aeb8d10f84e5e0b30aa74d4aebe22a2e5773bf83434591c014d0dabbf93820b6ca10ea87fbf1f4915dbb4e6fa2e1db51cde32a0e313820f5dca645569a2950bad052868a53949cbea3bcf1d8c23d7709428cfc2def7ef516184fc429f1c9f4da6409f27ea5107b383b43b7e1b85810cecb1b48d8f23e4319923adf36cbe2f073b017a7a8f5827f9b999fbf05633c6a5c3953e7faec1d38a680fb27a0eed67254accdb94b3928ad78a5011dc67a02292f98d8859570b7b4a41ca91fbe6cb9555d862b34e52c5f93e3635bb7bd0a37db0dfe99492c47d96c54bec8665d45eebd4fb647962453e7315109930a720182b663634a220881d6b54f87420aae6daf548737cf4a7906e09bdecf4a513a5f501b2e99c1f375e613b5d912189746a84c9f0a5c1ab7822e1f24e38accf1c98ca88985897b79bd241e734c1f65aee6f200f8b8ba7fc6654f2675bcd7b3262433e67c742c7d147d196dbeb729c95d0d848c643c1e7e073d754213109cfb9504836a92343eae0388d3f21372ed4455140f567f0d13f7760c3c8b012f5791bdebc4f448da0f10c8ac621785c4de0436db71e2cad89965685b56fac466f335e2e6dc445230dceee851dc7c3f21c1d02ecab4c01a6a0764b32954889224ddbdf82b2cd30a2b5ad09b69589737fb0a074255ab4cd1aeef31bdb0514c9acc26628e9d8a55c45140ceb0377bc9a4ce4995c8a8f83ad54a7aee24fd01ac3a170d62b71c0f0293e9e3025c70cfa70b0d6cb86022dc5bd03b63611d844cb02ae285ed43b085c8e6a2f9a8cdcc6c6cfe051121c61d0054ed62d6dea3a1bf7f85546bb03087b9f2f9d7fa77e12ea79220cfc35d9982b940fed02798f1037434ee8364474254ce004627d152ad889c137ef8e80215ba1bf677a6950c283506032143a580756b9f8b190c6d459bf5abec01dd746a98ddbebaff85e0509e23dd3ddf4ace3dffdbf343681af8d734f33d5b26148ec2c13feb9c7ae746f886beaf84b451d895b3dbd62d1864848ab81a053f1636afdb8da66d1f8907309fddf91e44b79bcba53ca0108346b363b2ff5bf33c0b609a2e78055d79c63cbaf967a1d8290a99a5a53e4cf9f264e71f9b2b6e00805d115460f7b00492d85379987ba5066071247cd3e4351b4ab35508649ac0a32f118206777ce8549b6f507b010b0d45493a7480892d8161f7df196be510304d90bb9d201f67f9db2a2d626eb7ebc0397d2018747a023eecf5826c22019929ad2ff5d198f62104ef40a5292b8599c2e91e21ec271cb504883ea93c24c45346a4397bfa1dac76908a82a9af562a2068800c06c6d02e5d76d11577e975a6b9561c98d4264cf5e0694932691d543a0574b1e274c8e084d6fa4cc593af1d6477f4428c19d243ac57b14eed9a7d8f3ba91c7ae8cad34370fba02110f4aa085fe2d0eb0b49208345684ecdf2ca725428b74a17a7a6405af949d4125d40ad66d56ce1fa431525c69302d3eed9828b3e376ce4734388dd5a835c7079cbb5ede9a103adbf10e4ec8e39448d767d71add6f54dc56e5bc92836b89d987ac22fb9ea89e50efb6b8275a8d09464d678504b4059f009958a33a33ac78709029cb96f7c25dcb72e6b9702ad1a3e72f9c670a3ea07fa3e6ac0a5bb44538579d082bec13bba198a331b3c417a108f4df03668df248425b8271aed5793aa047091ff49e31c07f08f793bf5c2722f22868a0f67b5df07f0eab387ef163bb3badd9b2f5caf50fd1578104e06306692c4f949a4834a766b55ed8d9d93c4299edb0aa466a370050576fc889730aa5c7a83826745f84fa4843c4251c323f313a067de1bc872931963e87b71b06ca0b731a6ba8be777cf1a86f5b998e96c56380abf2e77cf50c27200b642850284f8bcc51716f27941ca8535f8af603b8fbdc11727be84aa815b6ef994c8d79d3b770bdf3492818674b7d4b1dba81bbca724ba1ff2041606933355c4fa24a0716ef8844d327676787f1bc129c65e7e677b60ccd391d2ef3a4c7eb5eaec5a045fc86c0ace70970169f4975a280598aef03917d000643b1eecf2f9242069eebd348dcd4ab3d63120c69658802ee49b4da787cf9f73698b1edea40fb2294e9e0228b05bb0252da6d073f312f79df265665dfd2f45fa1ec1cca3fd8f2acc6a53c7df8d48bbabc770b56e6058ac58d84884c0a71ef551fe573c91e37dd23b95911c2a3895937a531d5fa43c78255d263ca7357c00b372becbea8a590f78e407f4e1e6445b07012a4a0de7ceb2988f192041f824b23ced8ef793ddae83b8e1f0e1986f61e22a3ec904b2ca3e1d5bb02c5694aa0f3cab9737f61eb593a901a6fe0a770479d949f1eabe1ddbd802f5effddd8ffb77bfeee7fe62f7733ecd07f3f77c99b959208b41aa55a4255660b697a7047a8112f7bc5d02deff2a4f60903b344ec43d87b224fd0d9838141cab37e53b350486d1f0dde5a12a990d70bc551ca380e82cd8ebf42b83dc1683241b57b270218d23b9f892c593c4e37feb427c98a8479a4c3525c9e1462e562beae21a711763176b31f89159940bc4c6e4022af1106f076cded991e3d2d9e9558a24136d269e874675b85aa818e8cc797c91cd53a8e1dcc34256638e53c73ba2eb411270890f0d0e880ee0db1357ac96256e29b94f63686e98e462232cda974b8d465f3a0cf179bf171c6b6892f0daf660faa3d4f7a11b84ccff03870c9f11e02ac08fa3a1ab70bb90df4bc0b83b98b3c47cf6deb44758b0874d357e9dc6f709184300ec4a495387c00a1a06cdf225b76f98471a491aa5569e6a6964f0ab985ba7a53a8d6ca7145ab09afa143c4dc3e1139469723f510fe30a8be7a6822b335a9a0fa46541e2a87b1fd728bd035d497ee39f5db97fc484733c05581c0608074262df16fb20b9b9b145ebe5df541d5581b3288ee5d9122206a949c3fd72d6e192c34186c86d1acd57537b79a4494735df8a44499faf17fb1426453f58ce5ba773a7c03ff7639acc7ea766f2a7598e124aaeeead5f4fde8671d2a5d4e59b97864e984c7232e383e4369bda60bd5cf3e22cf1a9dedbaaa5d77a5ae40c671beab23298a16f9533fba852e573207d9bdba740323e4595472d2f211f15730d4d94f80a47bcc8ce327a24ab61d0a19ee9ff43c05f4e405fe010e024f2b536f553cea2a408b9f8e11e15eac70c52386496de7b4a45d2f6d2d3804c0a57463af9cad3c94e89e0fdc0566ef82794fbd3857c7d947f9820cfa34492fffe2c18d1161986b1982e599acdaacb57586ca1f1f9bed21147e111f1fdc4dec8c838d524f09598eb7c7804eee8689ee2c204d075f70af318e20109f833632e0607fff11f49ea0736a0553cd35102563b0e1c0d3d7a06f74aeb1c1560858a649f07a00e8737255f4d7674be13712790aff484f953469ab56713843fe31b0a6312301243ba57d21903ee2c63c8cadd49a9bfcb11da3472a89db4c966ba6c8a1c642c038b857102309e96e86d5dbd45582d61b16175abac08b136af41697046e0585b811de33bb8159edce3107de3cbd66cbe347f6096a1e726a85e2c00d01a2b49831e5e3236b1460a5ab887a9030856e7ad509c00a2bf262c144e2c9d671915b1c5d4a3a0f3b4d56f4744662be6397c387c5e2acc2cdcea744ea0de3f448f7a41c34401d8953bd01c644761e0c8dfc107209707fd05fd1640d5fa3cb50d81cf9e031f84abfd63dd06fa47e8ccc287a9e7d826751f068e8079e1f56e01eec9323a971b65841dbd3550562dfa1c00feccd79640ca9d24c133a8e3420dd16fee60bbaa5950303afc0a5405f89f5703c6aaf95ab1987b997bbd07c1e090d0dea28f8c74030626986d5983f3e38f37194323da1c64e0c90703741a8d01e7e0d85eebb87c20775a38c545a4fb5090bec4b65618de1d1fe2c3d585e75a6b7cc86dfcffcbcc45a17f5faae081710e3c26124608b0cd6c56069165b84fc4026edf13ee7b1abf3e83a0390a7c14ed5454a880139c7b06ae2a4c81bb32aff07981d1228002c8f2b97c151ebad79c2d802797f3b0e8b97612ad449742971c9a9cf1a7d74f66df67c3f68e816a5f5c2a69b06c7865c6d4efa39f26a84288218cda46383580c489b8b98d0542bb7edc7ff640118d828bf407ad690fd41af56dbe8ab8697bcafac61c017e26c57f6b0b04db7cbea90615d3b1541af837a90c811106b790ad64439964f6087409df0661f0a8c563014d717c291257264504013d762f69b2fe1247f613c4415b20061a2e1c8a6ae85bec835bf10ce95877a49624b1acd15a429a75632243cbd5c4adacfa9662e2c16967c81c5c18284d6ccffd6002f8759107a51e63d7eaeb5f3db6942f98d19d1feeec29a5a254db29d14cd34c7ef6f04a9cbdc45b638dc4ce166bda77448101e6bcec518541c66af6ebc886295c7daa5d2ced5acf46721810a6603136ae4e929fe249a9c99a08c3f58cc98d414720fe75cd369622ff061f4a12170ec443a1e6790f00478b90d7a957fda8fb9a39a07e11dbba0bc5b022a8d26c8e0d435631c1b8e66feb0aea9e739aae020f740dc2ea9ddbf848202e34fbab66d30190069131b8e9decd2540206fbb1ae1af1d96eb84b3c849f856befd9f9f5f0c03b666ae25b0e3a423a7e81ff79ce3a2923b79ba6d1937fa40a37980f6ebaf77f95bce8b0a5418d84c1275da41651828455e00182b1480bd9ae24c6881166af3623995c5bd327e8283b0021f31e34afc114ded53cd5816ee19ee297a96f92ae9cdf1d484c254946f95a5fd2f01c97ce20b1e380594821ea42879a2e62fbf911d712ae59f917479c302c69348715dd754420856f6a05ef880325528102e5bc9b22afcffa28968afd34d1a2821c6095ffc298ee1e89ed9b0f6e283b49065c38acd0f8f5abff3ee7005a21e68954118b206de208ec4ad58b573f43c5d99c82e2bda25a7a434d0bcbacc6dcc09328b5a513d252519241ff52d9e32724c332a87e60f0f380dfc724ab8152ff8069f82d222729fda293e86621899b5585967da3f0530b1409db1e9fc17837b76356d2e02ae4bc3e5d788630eaa94d371299a18ce8844d7d8a718be0f0d2f2f32274bb76124a3aedb8bd1f0507e23501cf4c98d0b5955bfbee239dce2d653857c3c27768dcbd8996dfcdf6d8638b2ac7def151c1d644bfb1fbd24f65f1226928ddc1550932d208801333b03d21345973b93f8b53dc90d21393570f4601ce0a598c1cc34a34afd19414186eae540a1f15e6579f7184beeba0866e4087246d87b272a33a746ee057743abc8c06748e6b362e6292c2e70d0e0eb423e2babaae730baaa1b9089193d70d2c1c91f857ba93994025d006b4d392546434b9d687947b237c8905afc7fb145c29ef9ef6bfa0f6460fcff27f838cc8030133b0fe3fd4511d466dbf4fe950c4f50415599baeea13e1f474cbcc25500fe8ad168d63999f5637794cc4454425ea68dd2e74a7adef1794513b74b478df59aa75db8c773fd169ce12eea3d003735eb01d307c0d0d364811a722dbab40f98488e848196e48c4a83f8bc986735d446e5218043670811c14c7742dcd00a591511fcccf96f2b5654f7d6a4e0b6e53e45a208e1fc784a23b19290c894178dd87142b7740c07effde0a9a61398dcf01cfd4e85ead4db0810979e0a7f6775827c33e8042005e62534e241c39d02de60a60df8db480e51594ecc15e201365e191b49fa50f49ec523f0ba83e5d5050466cf5b1a74f300e141b12d607d82d602eb5375c0ca641a277567511bfb3fa91f5c0b253c8d3ed4cc1524fe9679ac47b89aed3afdbc39f81f019abf297080f59b56b71e3ff36ba8e4e7ab03976861011b2e1461ca39e12c5d7cbbd30a5a7b4b759a6fcb10e3dda33a661c73874d7d77221b8a920962a198cfc3078054269ff4ef7fb4908386b43fd0ec0638849d8d6b328439c9faa5b8b4ed337722e56c6dc16f26232015c88080de63f2fb604ac2f5b00c9ab350505587a75082bd6209afa90bfaa22a580ac7ea33e52de1b486aa794e662d00cd7331d6731460cf4bff64c1924cb536d512cdbefe6401eebcd1d17e81c52ea50f884f915907dc38f7151ead777b3e74213deaadb10e7fc7afa23e23d3b5befdd0106bf358867a728d00f868910d84dbbb6ace22c00fcae2e9ad95d428ca5bb0d12a87131a2c1ed6c235b836eb1563615fa53de839d02158a8070d6408164139cee4c0b1c2fe6a5fc6a46519d8552cca0f67dd7455eb3be018fd3e4ddf16a18b4d3d3104edad93fcdbb32acdae3883c036e5490fc2ae2350a7387d9c04bcdf4d6bc8e9861b427c56b5d5e134e3a9f638e78c6f022c07421d243075e386a8d8b15e68a88a275b87be1454449a03789bb751fdf6d1f23d20ec5b19da9bccf894cb94ea4da3c6f33ea7a27aa59e4924eee486881ce5925a41ab266c9ab4ed73a84254fc4cd53837fe41046ce18fc5283b8bd25d1aae2d6edd78065411038044fc6e587b66174336fbd3486571fdc7083aff93c13befd6401ecf8d9560afe467b9892a98868bd1bdbf1833a6a7c9e05cd4f521cbf88c9668ae99a65d6ca64c58cbb4733207d58271b66593d026ae3823f3677f5269f24132d3063f3be12f412eaab50fc39a09834762255dfc1ac0c22c8b4e288eabe2a9da6a72e056caf8612ddb3c3fe10a9b101073730ae78b9ed054cdcc6f12b3e9a9d08e15904a9801797958d6bcb70b6fc8a8221b69babf64020ad832993d9dde88b7a0585f6d2c161d4432d2e7a0bef0cf1c8f9dc9f51f5728c0a39d26dcd99497a90e73771608b432708c81a9913eb5bec1dc8a69c65514e072ebce1952d83fadd4f9533c36b1081e25f3750ed246db037e55e5f97dcd7fb759364b669005bcf22325b71b1864bb2e94e0bc07759597cc7dc1782408f43964835bb9226897510fc7100e8e5fc96211b0f19cbc339b58bf6587b006199d04c22209569f14439216625daecc1f3b0509bcdda94e78f7d4552b4753f59843cd4fb8ff001e1a41b84945b3d962a1c7cf0e939871659f2ab4cfadb784ad32ac3e6f7d2724e56c7f54f03d6866ac53784fa4261422ad603d78ecdcff279bc48656fdbbbb26719c7d83b285f11b268f3e54ea78b3d237b0b4eaa26da3b81a48f7582f94baa54c80c58462ed3233ccea88b6f2aa9704db3f831571ded396d5cbd221a49ab56014a826297f12610152561599d9fcd27cab4e9e6822abf595a63bf3eaf1d5f10780c56b7e36f956b3c2cef87485dc05de40b5dfebc192cd9297509d332e5b2edd847e4ca7a59643bf077623ae79090a343705bcc930ca2f9ac779322f738ff8400207fdc7418842255a0ce941d1004b346d0ce6923ef161249ad2d3b2f02be238cbd32a95a8cd623f82b3e6d5a0560ee5f68da62edaa6a4ad554d3e6b22e833b13cc347fd3cf78dad3c753ec804eac56f216365a3816465baae504f3717d3c4b4d29bfe675731fbd4eaaa35daa790e4db48583e177bde92da68f46e1b9a9ed6c718f084c625a173da8eaf9899a1e0ad1e55f21df0690ce71c82fd62ae21678601be01cc3e045ad25fc357205a5951634d8b305ddd9dd4c1bc21121ae795e01a774622c06d4c764730a1de980c5f6fe9d146070866658fbeb80ea0141062014041165f5078daece8a60a1df0c1ccdb2c9577afe7f146d28d64ef1222f7de524a2903bf0b4b0c500c7246e5a4bfcea864295728cf52aeee8a46f92c9dbe4dbf9fa26f17a1bf6b600052df2c8df884d0df102c52a7be020ff17de3e8efe6cb1b7061994f4d515dd10275167808ea2beecd1b70b99f59ca718bf210370f49c949a83c254565e52932e53f5654fe63e52dff9192c5ba9247fd474b4ed5957cca5952afd17db748255d61d44f584561e838c3cbb0944fc799770f99f910df7f1387bf7888f01b478743cc6f1c3df306661706017ef41b5ec428b2b6a5147b9efb08f31872848ccd12f377b648af24b6cc39475324fabc688a44f3749451cd57a9a296c32971e013de1265494e29250aac0f3a5a0be8fa8eebacf78a7ba4aa8ff5a9b2f5e272eeb8b09e9ca9b4bab2ae2e67c6584af35e606e891cedbb9c18f753bb9c9b33072459f69b723fa7943929bd18c63f181d8e5ef1afce1d9d528f29f8b0412fb7f525db202674b4a0d6e137ef5bc3c6b9ee23cb84ce4c1b7b1b445b52cf9dbab2f76e5ea410b7f5b155758fe35634777bcef3384ff5af25e2b80c6f6eb8dcfabc74f1287fc112e53bb57229574ed9205b750872b4b7a76b9034d3556f6f7d6aaae64a9b31f6a9a3a42ea65eca55089265dfe25c14c45d65f29e5ae6f6bb08dded0e18f17f1cc8454104c06ba8cc7fdf91604844eef5bbfa8cbf321f4fc31b997f32404c2de3024b0d232373189c4dc62b0c2e877379d378cddc0f67abf75ecf558ee3eabb73b5de1fef978f57ddcb7000dc63c8dcf360d4cad5ba5ffee2ba28c2c6b82aef2f5ee564eec980f17a2f071a1586c7c5b828bcc9c13159fde35eeebd73d57bc9bb7295fbe16c9c6da5c29c8d8e3f4c5c7ce52355bf787516de1ad0acd7f066e5cdb8e7c1dc73d8e3626238d661300c95c7c1bcc0fc7f99c1adbcabca3c5677b1ca2e5e53595746f57befe552f4e2bd5c7516f77296ea3c54772173172e7e5ff2a6fae533eee17d18917718ee1ecc636260f27e8849afa91e66fd05e63b7c06c7a9fe82a5665d55e671efe233fc41e62eeee2de17954a05935ff0cfe17b95ea9ef772cffddefcfca2c22ebe52dd85aac6bb0b8cbbf7928fd02e3ec2f8b8c252ab60e48da35de4d50acbbce253cd0e2fb81f8e494a781323db10739c948324237300e0ce4797e381c75dce7f3b24f3dde57432af2a7c5fb037bdcef3ac585357703ff5964491fb912fef7cd44e47064f7defff1f8637cf36c4faae0b0580533f8474f1a1de3b779b925b4147dbe55414e2e67efe16bec5e1f6b7e79a7043b4956fcfdd68cbc54bb2d26a6044ef2aabb43a435f79dfebca34b9ca686b5721928eaddb77f63576ab33f776f33684f40efbb0dcb25cc5f2199795e53197926537f7c384443a89deecef156ff3d612bbae765d1772350f21659ddb8406903661b63f7545c2d2a6da2474acf78ee32810f5cda23bd4774977a8897a0786371deaf33e56751c3760cec3b33f60fef2287bd8fed0d1c75e40d773b7a3ce87b692c8ee928e33794f5b0f2b2dee34467b90d8c835b20e795fa99ad112936b8b93975c5f710e6dc1c87b6a18b7ddcbf70ad53f15a6b7278830bee996360329cd43a57aa7c2d6091d9fbc86c2f83f19fe30786b40c36817b576ddcb8baa7630bfd8058f1f46ed3a0a7a56d58d1f63fefcd7d418fcc3d4307ebc71348cc3e05d3ffe03c1131e358cd7d01a15b7ee2a32da8a7997c34faf21102a67bdce388dd7bc657eca3446c7987799cab8fbf077aa7787d597efeba2cadc3b958b0ff72f87ddbfa85efe922df7e37d3f3e0033fef21a3a002eaf0ee31c77568c4a770ebbf8c1c5bdeca27af797d77bd84575eaa2ca3b70b4eaf72fe7fea96054d8c507d57f98ea8751fdffcb251d5ff2d680f6ee6370335e435de422ecea360c62c6b9cc63c65f320fd6b95f5c84d55e2ec2ea19b9d6f00718ac2c73c84554adf2d3b9bc69642b938ba83ae6a7cf10881895bca78e794cc79dc3f343b5c4d5bf14f084c7938c7ff57a31a78ef36edea7ee84694c36b58c775d3ec9e8687fc23446471b04e6325eee61199f81b706f48cd7f046c6bf4b63ceddc2ce05e12266c68f592fafa1d6a7ce90cead0280a3efc3bdea327c26e9a8aeba31325e320f1987b98c0cf39a3a03ff00e3e5323ceed68b6abddcfdcb67d4fb192f3c5e0e03e33030f76ede54dfc79cc3156f09e85aafba88533dfc67487771117ede6288255d712bd58cdf1fe531357360ea975f2cf58cf125f3f00ef319fe00e33097a10fde613cef3e88979797fdac7a7939c75def66d50b86b98c97c3bc60aa615eba0c77e068ce656a1cede2433d775895e14b26e9882e3f549bed111ae6e3251d39d64756de381ae635f4054f2d034b0d8365c8c030de6d21f47814bc25a0c7c7c05b037a3cdd9e06298537ab5128001c2d8e601cc653301d31bdd1f105a53b27b465ed8d8ef6d3890f7ef97db97dc1d77bf1382f5b697de808034fed5367e8bda24fcc873eb9d196eaf63547f572954a7530bc51651b62d7712e3e745d06529a87775a3b8ea6b6f3688c8ec72fdf05f18b970f863bea698d8ed6488cb6aab61c9725772fbce1ee71dc2bc77119a4a3b5a7b121a4c7ea0c294b2a55afb6fe5e51a4ffae3e5088d2091a34d19c16e4edb91f0ee8f6dc12d97a71cba5415b8e0cda725368bbe78ebebdc0f395f692b79c2267ba242063e66ddef20d2999065192614b2ee8f9dd8d405beb5357b58984ced4f1a994789bb84944263e79df3a19f50cd1fbfea70aabfd8703ee9e71f763a93147b58bac823dcfcb1b476a9594d7fa14ae9ebb0aaee7546aaaca399c7295a75cb3c05345e55dd7b1f8cd8ab7c09baec02e787b3689b667c144cc54a511e1e94d6fda5e2505854fd6fea45034d69924beff187da390747b1952484ac2f41fa08974302485a487271dbc7d8d100ea033d64795e406894df24ed9aefb46af2bafe4bdc3d22b8174bcd9e6ce47949246d6d06e674687c3711398c11490d0614d5b1cea6f823c50d01fe561a2293e8d78c8608ff0b481e2aba3ad678498a6f864041f688a53f42732426d0a9f11ba001e01094db1a83f097e23512849478ce044538c5285da2f2353e3c6abce8cbc121091c4135ec0821da8800b3588c2083551e6891a375e5744a5646a007553180511bf1ddc20d8d81551a92fccc01b43f7040f8cd015d03cc1840d688ea4008a929702207c41744b9005af04429dc59dfeacad3a26d0148fa80e104d7128a5488e7ec020a1a1b0063d91a049688a43bc72240a4b688a4113c8a08f364aa22d1ee98f2681e726c1091e1434c5a42ea76383f74409cea0ef0d3e5112be204722d089242cf1c1a5d547cfb07e624fa8f46d755454aa4d454545a5da6ab555395d528b4e826b333a5539bdd784b652ae53ca5bb433cb836d8180628b68db84f67ceeb75dc1b62eb856c7fbb631a081f76d6d90a3fbb637d041f76d87e4b0dfb607af6d7fa0a967d3340d72f53344a5d09e19bc243ade50d579c1103445b93a75e5ba406c1086eaf686ea378adede909e3a7acb9a4e5d69192fd0f4771523694c54a7885e923944a36f1623169963746abf5fec370c4d8f650e4b1f63e6e0c4d4be3ef9a8a8a8a8fcd251e5329c43bc9ff090fbdaddb23cf5958fec476f398775441b24def04484b9ebdc46a4729573f8ee40d2a06fc177466dd0b3e06b0349833e852f0da40ef42bf8c640daa0f3232ca70efb12d1f4d70692e674fa5b03f9d291b1093201a0731b2fc70ee6cc12df49706d2eea079ade66847d2031df60333a09ae8d68888e2852c1d5162459a69208434f1609e6d3b936a27c51c2959492b4b1b3a6b15fe8f93a54a1d0f307c5e280477838d4966a5ff7afc343ece04ebf0365879db44a4bda38b0fa067ca7e3282303fb500850ef15450aa328bda75db182d62959f3338459217cfc90f5078cbb21e988b4c2bace09f1d2196e1c4d69f642d8955744a2e7a8f8e83f8a89804d5dad8e8fd5d1e16a358f463b22ee2a1312d2b75bad3675a64e77441491a6aef2f786c266a6f43bb277fb68b572afa1d5a6a44a51a1d0dbebd1f77aea8c37932c286c2b4af4aeb62a85ded546ab44a2e52b14b2d5a3a5acb57ab5babd1faf6b42dc5eaddbde9abf191d9bf07aa64b0ad93e9a17a46af94f487fd3270d9ae293fea80934c52cf457c1219ae216fd59ce092998a02946d13874ce1f5f6d22cecba368293fb5a43635eb8036344b1a798fa07306f946484c800b55bc01095a18788cd85828908c4462c7e93b7b32d11bdce9016a198f711ae18d8c8b32da122222a12d1b6de938052521fa8f1a514d8e8b92b0f98f1d6c76d861566792b8f90f9b1b9b1a9b8b9ec48effb8d921fa4d8da8e675d16b2efacda54d4267389a4592694c507973b520cad9269a72b49afb9b7b9b1d72dcbf5c7ffd62e995c057bef8f5967841970bbcafd7ef5ff7f5fb1ae1cd7dbd4678f3baa10e33d60511f79c8dac123b43f5757a79f816b5cbe5cafb75d4bf17ae3b55e7f5e2a1e6e810aa1f26c2bef2be769d5e1daea372d571e1bae3faae3a2e25e8487550ea13bbaf3b3aeefa4ee9d7e516f5ebf5ca5b47ae3b3a52e67de9ca957ba039843757a7d2180d425b950ad194037780d096d4a3d1ef0d6f786f0fd5f70ac3300cf3be1ffd857b501f1d8e684564f0c4c81c0dc9eb33bce931c39b9bc3f07e74efbdcfa3bf1ebe700d52635536357d78d3f4be02d3c5d97ccf1dbdc39d321ddf33080fdf33d6d257def4bd06ea4ccd576c94beaeefaaef559286e6f72f9206c7ef5f489a1bbf872169667e3fca56ebf73092c6c6ef5992a6c6ef67481a1d7e1f235b39fc5e074943e3f735248dccef6d489a98dfb7646bc6ef69240debf72e4903f3fb97a491f17b00c8568cdf6b49b3fabd8da4197fcf83a481f17b1db2f5e2f73d489a97dffb206954bf0f80a4c1e1f73fc856fe7d109206ff5e0849f3df1340d2b8f87d0164abc5ef13206958fc5e019266c5ef1720695c7ecf00d96af9fd03240dcbef21206952bf8f80a459f9bd04644be5f713903429bfa780a401c0ef413a73babfbfb4255d3dcc18fa7bf3ee416374a4b21ad3344895813b37f0f4275b9d41bdf2bea86cd3f43da0d8a60bcc261e94adce78b5ba9ab31943ef923daf6caba16ca46f7047d3d3bf5a4db7a5dbd31086a2c3ccd1849878a6cb749b31b53a73335d17e5f4662963c47b35af36673bb2a45bbcc928327db3781ef0d49c8efb1af180a57e8577077a9b21299ab84b333d656a9e23c7a74d8e9a1c3b5c54934980048a4d8e539bd2ec1eb1039e92c67d8e3bca346e78637a17c2a82e85791fa1c3534ebb3ec39b17d500c09c13c9320319e4380631485613213a4ef105c9f2c216e468d382646501688e4a7e24eb0a5490e314a4902c1f24747c42149205c5113936e104c96a8212e698042392858422c891092248163d0ecc15912c26e8fb1acad14aaf7d8ffab6da95f7fde668f7e0391a6ddd53f017d3e039411a2c350ecc05017342902cfa19ccb5b00d5c03eb80b92348167d0e9843821ce969606e0992452f83b99a64d1c7608e0992453f03734d98233d0b734e48163d0ce69e902c7a19988b813928e448bfc21c14248b7ec45c14248b1e06e6a42059f42f30f782b9249245afc25c15248b1e07cc5941b2e833e6ae20477a8cb92592457fcc31912c7a1798c302978539d2b3c01c17248b7e05e6ba2059f42e980b922cfa16cc79418ef42c9803031706c9a25fc11c15986bc20d49164753c3e83574465ba8bca70e7146e165726da57c7fa020eed2ecc766de9766a38da3c3d28c8e34978884f8e7061161f5cd08cc355665398cf0d5b59688641da51957a371348e8733a2b92274a41791402ccd680b7c89086da5d82a4e8d690b03cf8e96b522ec689396b522c834285522190d88a25f95c41bec015214a53574fcbeef7b7d59dea0231d5de61ee69c13c43dd0d687459fb8875d440f74bc3560e8d8c3770a7e7fdff781de47f273ca1e503ae848df83fcbfeff99a1e3e3f730f3aa60d7d0f4f44e944d39b8f1943a519c4a0a5e85b7a612a21bba0e91df07dcb2f687ab96516347d8d0e3a63394f0bba332267c6d0cfd88ca999313692451ffaa8a2cf0ee93e0b4a5c6fc4744d1f39d33575c29ce99a4a4cd7dcb19134930592e563527a920f4d3f75e414423c67206172a4bfa0ac82a6ff6414e413340b24cd0ec99a2e1d336606542ad154cb99f711326ffacde9d12f58f3e52d2fbabcbfb465842733b8a22510f73d62524eecc267eb11755ee0733940adaff536bbd8dc65970374f7ee71efaae5f21254bee625e6716c8ee0e69cad842b292452ca179e4ee14527a5504a5f3a0f4a293d9d4ea7d3e9746231a5c2b38447a5fee374d4a9e521dea26ec9bb874c6997584c29944ca8b2a2625554c21b862d60122c676161616119a5a04ea8952c733a0275a232e04562d027eb4cb5f7b5bbb9fec7d680de52d23a63b3e5c4faee3fec3b792b4f3b799ba5a4213f2da546d8d7734bd0d72ceb0a735ad22c8f98d3725ff8aecbb94f4a1ace8563f16f7a2e972cfe0d49a9116be84a9c4939f57050bda594af627af8897ebae82a510a87954adea97c435319fd894439059faeb8305409ef721e61181e0cf3102a794812a38f7e6af1d16578934f282e65f4e5ad8194d1a55c711d58d1a2533ea5903e1296d206f7931152eac0fd84a33777d1294b4983139d84a5cde987a945469c3e7a4aca1222119674747119faf0a245f8239c721a9d72eaa315a896a75abef21fa3af9c44f854c42d18e3fda2bd1fbbc01b467b47f1de026f0905edb9b0c8db05b522f28e72e98c0fd249701bd36c51f9ee217dc2305cf98fd4c3afe0150c05adf295549d362b92b52512ad920695cb3a935a49a93c45e5a3ff9072a5f2d37fa88c4eafbf7506f55108509e82e5c5a2092f615f12f1f68e7211ca12e17b789a031547fa7014671e61712ac8b282effb2428a505e4e510f21bc75e4a9987b079db236a41543b0fce9ecf7e73f4520f412f29fd067034cd1be8ee5d1ea42d8f7bcd43d8bcbd1bef204649969c38de9c60888155f4373b1c70ba620c5a2654292815f24a511361588253e71cfac454cb0adaaa97401fa55c57bbda759d8739bcaf8b3c0fed61179971f4aed154b228c76d9c0ecf37e88af71122d03547db537ae96b97e741e573687a99a5a452d24965ade293c7586fd93384e5ca7ee543c3e24b96a55410ed4f3f61ec98fa8578fb3a776a09268d0a1f45839542748a8eb202a27c2206324d3fcf658973145242424223f83e506f29ab9475081f773b91d0e56aadb40a69c95559a5acd6566bad95af978e13043ff1ca5a8720ce739503bf1024755f10e76b58adb5d6da3a2d290449a21b92ea4d25e0a4945216b1525a292d01a6ac363488f3a0e538ee5a8eb3353b4105fd0ef94f26ce4eca3a69adf4fb6aadb5561b869d300c71dce5aa8cbbb1ba92efc0e0a1749eb443f06cb752ce0ad5ced6b4e4385b3910dc3a30d82a652724ce7f4621e25a7b6c0eb532ee1c8f96928ed24ec14d8eab529260a044cb329c40470455eca089cc888c8217863082369c41b686297e9270058d23832958c0c38519f8a00290af9ee067064cf4e890a00a20a8c00a4c14610208b525b0960c22d051c31180a0e04815882034d2f209232831a48296244f7ee854f1b3d393240a267a660dc449058d23041640e1022ef860043918f2dd244220db411524d059010a64730a4f9ee8810f6f04a73304e11789a01a61ae7a624893cb58317c1df7024bedf49129c8c0932548c18814393d3890a2083a1ca535b72372395be3799e77d1a33a6a647a90a949fa041184a045bd65b81e998e1b0313a0887af2074cc117786ab08311d4a650820de7a3b92a08d1dc90e6445dc8257183e6b2adc209bccef33c09d499cb711cc7715ce7755dd7892c67028e8319eac114a62052862c68c1869382e67a3467042534c7759ca8076077bb6e07639081c8d56adc1803122b56470f229157451091edac04d0105609d42c206d13b0c0092492321cc10b5140218a375011852a8630d123b255e4402423f2ba70a2325df72d53e38697029c25b8400d32f081220843ba0005dd5d0c92c4099b85a0e3020e6091dc86d0442412e52d8ae10aa0eebadcc387829736f49c600cb32ca8600a243dbaebf2b62291c85e02a32a7e703feded76ba0e092250c1056950d2862cd874f309baeb9e284213bae36abaae3be20220e8aefb95c20e8abb10743c0049cb232eb881e6b43c2286266018913306d4099a6230470a9ae2528e2da7891541125c0e34c51d0f34c528274490044df129099f0442acdf77db36e8686ba555d90a30a1e97d7f8010e591254ef4bedbf2e8fa5bef053ed90189f2081321254c66dd8fb8a4899eb7e2b4a9360ec5d40b6ddea8ce3e845d202040406aa54550181010daaa3220204040e8988182d09916054281768e6021c93c8285223aa5e5112c04d11f0561404ab444185090aa39ae080a038ac18064403b404ae8c080249012f762f049d516ed6dadb5bbb4f2b425afbcbcb493b2935dd775d2fb44b5ebba8e9b1d91365428882118699347538c028204c88f058104c9278054d1719df7840b44a029361149a5529e4894770f997911b6c010f79ce8738a82007f02b13473bae9f4357526e594c5e98590342d5634097519a7396c49ca530e5ba272a96b78a372d89295af1cb6a496bad45c78933a6c090fcba5eec21b96c396d05a2eb517deb41cb66426f50d6f5c0e5b225b71a945e1cd8ac396c4585cea5178c3e2b0253b2d2ef517deb4386c898e8b4b0d86372e0e5b92d3bad46178d33a0ce8f64b4d0a6f7e18d090d428e10d3e0c4848d2489d2fb518dee4c3806c92466a1c2e7529bcc1e130a01f4923b5ea529bc21bd561403e9246ea974b7d0a6f5e0e037af1178701c1b8d429e10d8cc380c64bad12de8c8701ad2ef54a78b3bad4312e752abc89f19111c4cdd1624ecf15a12def3c4d68caf5e8181e74d8d0c0b545587d3ac9d05a06eb32bc61cdbc867a439e13cfe605794d3c9b17c412c294dc9aa00ca1a0040129a184ac2504a9a43328172962224a4257f4f2a6a233a6db53b4e5e2725dfebab82e6d6a3ec217bc2694780aa2b68f7e492d08a22b5b692657f4a85b98b389881371a36ca6d84f69e612c2a68621ee2238d3cc87cdc9c9c9c9b159624508c4bd8946c79311daba7948cde9fd8e23313c829acbf000624e4ececd27db2988aee8c7206e940d3554674e36b93ad5e48ade86ba9d4eb6534dd3d760295757df84383cba874abf7e714965ba996ea6dbed46a9086d5d7aafa8c3300c7f040d41fa5a1e410313b40c4fb6307cd1a14a877964830289c641cb2350cc74a9086dbd420e1c75e0e8ce6be2a9333b4ef70d31f52da3b78947efc837f7da88e20ea9548ebf661c4532aebc6fa06ca69be976a7be52b24a4450361eaf4f2dc39b57a9880612b769a6e94db13a83f289b9be4b339de283da27db37ca26ca8080c8644031d91282c8503c18101020d7a6e9bd3f75456b360bded05e5c397a4b41e84cd8535734f411e2ca1b44a2eb4c789341b135a17778bb3d610d0a9d4aedbc3d17c9f66a3789177465a911855667aa0e4a8d15b9571453a9f0262313de3c22297daf0552a0f688f448794594d0444809429d2d09a3774cee0d6f78bb1f3a1a09c3d70b773ea1cbd5f5d0917648a8be98ead1eb32bcf9bedd03949d8eee7c50f0e60deafb0f0962d8f9188d32f7e4082088b91bc739a1a34847a484a6f7769f887cd0f1deee139892a1a17bfddd1b4a8da395dce8283569464722e15d17bb5c79db307c0d8378fdbea6ba5caf3088a624213a46479410ca464754101d29aa89649540046520ed0b310884b6c23c4434d3f4a12844dcc16c99dc30474a7388b2e9466d089900303d993ad0d391dea69be82384a6414d23040ae2424b275e404483408268faf04f40626b1204a3e5112dd4e45138fcbd37c415854281a79cd1eba31bc674985f794f30fc61a4bf1086e3af9b6eb475c33088b6c21736ddc26c7ab2a3c36ffcfb4097cbe53a287370b9c0cffd72e5907980ff683c74fd950328f37b190641236faabfcbe44d5f375cae97cbf41a8d469fa339a437ea55728d46a8bf3e5fa8912bf3004b6110af1c46478120f89a41ba073802ef28f30027ea0bf19efa753f4320bed7c3bc5fd9c575d447a2acc675787dea4cd7fd2b8fee7d1df53d83f4e838f09e1ac749218cc66fe671ff3da481f7d4a38bb21a3364c0178d7fafd78c920c0d95f066e4c25383200882ae2fa35e8345cf018f5e5371601c35a7bf91f7adc9628dac43beaf5706f35daeebfac2bb3e141005ee7c2d2412b85e0f3f7a18ba328fd7e82e54de2ebced2ea2ce10883083d985b3cb77d447077744599d0177262a048fa385f403bc6bf41bc2c2f30073e91eb843c1bc71e46d35ea7374690254d087a77ebd5e7f5d863e70faa5bf8bba2f7ddfe87640dfbff09efa15baf29e4a68d471b4e9465b52b750476123660cd91c3163c8467431bc41813bd5f484ce481b2dd0b43c828526b43c9285271adc015720697ef0745873c3d75010c8057784f8d03bbccdc09d2913b728bb3b105997c1294157f440c25b10928e901d254498921b6ddd7c480d53f224c430201f46805dd944a6efc5f0e6c294dc604039148c697ac11d0d53e2c4270992264370a26d68e9c4108ce84fd210bf15e05532a4e4498e11f6f557def635c230201f2bc21b9812274a865c42989221254de82859b4dc9692213a4a7d6a325df7898847d2488fc6d178ea8cb4e17c2497120a6292a443a23d21da9be570b79c7b4531957a8ed64d28f7848eb4c98e666979840a9bfebedff857c399833b95965e7ae974df1993e9395c66a7340e1dbe458d83c6f7d53870fce341ea2ea7eac0dc101d9d608e07dcc5e0ce078f782f041d5167fd0074445d8637a8df68eb74faca1b47bf5cdf568fee68a4e32eecfae89f8df0663472e177a3bcc3f3f0595fd8868ed3eb10dee8e001eba023ca096dd9c81cb0dc900e6cb53ddd86b0d3290be0db81584347d46fd011f51997c1283aa21edeea4c4aae50bf469d46de17751d2e51aff11cb04847d46730e98768fa7430992c1d51b7214847142abbec9842f497a78c8e9f0ee12da577789b813717a4e95978734f7ad06c75ec0e1d2913da9a5568a969306c09135bca9684b6e690963a05c39624f959f941425b930c5a6a150c5b82c447c5a709da9a63d052af60d892267a527a8cd0d61483963a85614b8cd450b522b4359b68a959306c49119e130f11da9a5468a95b306c09119a892684b66618b4d42e18b644c8ac340b425b130c5aea1518b624884c9401a1ad29a4a56681614b80c450624ad0d69c424bdd02c39628b143da59e283b6e617b4d42e306c890f9d50e7096d4d2f68a95b1806f464490eb824c7096dcd202df5310cc8c9edbb35a1add9052d35c630a02643a3a120da9a5cd052670c030a12120931a1adb9052d350e1806c4c4766d49686bdab4d42a0c034af2e3fd20a1ada9052df50b860121f1e97c9aa0ad99052df50b0c036aa287eb31425b130b5a6a18180664a4666b45686b32d1528f18065484a7f210a1adb9444bbdc294265952c38084d0d604d252c7c03020217494347388a9614033c992faa3d5198e87a7c6eddc5ea0e9e5fe803c6181a65f0b5cdf1f0cf637832f07a8ef6f88fe7ca0757c7f40b0b19618e3727519deacc2f0f7de180f710f50cbb0b7e90277660cfdebf40df8c406794a831ce9417c32833c512157f42e7c9a429ec09dd1e939da74bdf2c936ca363a239cf9375f1e13a4e7844f9aeefa6c1cfc4783c678839a8cd0919ec566ea10de5c704eed3141b65e397efabefa245ba79b6ea599e9569a996edb7443dd3019b93112677444d9a0200a559ae1384d89228ea3522c259437e670888ef42853cd9a6a374cb51bd8c463e2311931d56ed0f0c94126fc8dc1711d6af8fb1b76e18ed26bcc3cc433f4eb37308c89c764847e9587ef8bb27d8633ff5e78eaaff4193c035f70a6f41aaf3cc47c830e6fabd4751ef2be3af2976d2eccfa0b4b1d1231758c0c8d1c36d51bdce1bc1a11536faf1603b644d663c21b94203abe747cc42841612800a9ef7a0f19fdca1bc0d14380dfa3d75d7888d7378e7ebd5edf008e7ee50da0c0bb1ee26dc38fee0b7f5f18e60da0c2df511e22cc436a6475457f886cec3f44b7f98f1cd9ceea8a7e87ffb0c936c7c16c79ac115a9dd921e7b85787ef934d0796ba2586a3d128c453df8bb820de22882650760324c6c3657813d6501421dad291f7d43aa4943acefaa703a30851145b14c4a9757ca3a004bd864a29c30ccae89812128e463da2fd467833e268212a8707332dbc2b8f3afc2b8761068158cfd64a0a57340f190442477a19fab0a2c12037ccf7550796da8489b03acc222ac4152d9da041117d5f35368c8aaea028ade31bd477e79e86ac697047d491395ade1c8da3c9688e76436f70872b32067187b76d633a87b6f6c9163ea12de9040d649a9ee483e534543a09c950e444e46894b3d1162bef381243f96680e0ce749d6c272eb040d3db780d3d05d1991c7f7d9f9cd47c9f9ae81cd9abd5e42bcad9abb142d7bf96a8630a9d8284f4fdd712efe5684f9bd6f110f7984233fdb9f0d42c25fd12e9d7b1a4b97fbd6c5e8f096f5ef767859647c280041d86275a1e210311bd515a1e0983903e42854c9fb43c428512da891ccd812e2c3547a323578443f2d3840f6724743d09855e2c257d455ace8cfaf5b00910af1c0a854e4441228f22a60683441eaf1731f5fd0b83412818a3a317c42dca68e548e00e1da7900ebf83d3928ea32a44922b87371b0b12a45f23b025864dee47e14d38a4e95d78ea17be01da1056e3a55f5cfa498804df089f84f0c9c68438fa8908e2166527a124fa65c1570ee244bf7e6fc320ee5fff5e58244247facaa28c8ef435f52b8b488a889ba309e90dee885e438788f23704711f11d3bbc714d2a3eb7828445b72df1f70e71382a8c4882e82eacbc3399aa4a1497e4623da2482781fe298f98d771c11f16649c7f0fabe468d31c3ddc09bc2601dd7016f9b04c788b6af3681019cac542a954aa5924a2412894422d1f77ddff77dcf2df9873c3398c74c29a594ce66b3d96cb6030c8920872418b6dc821229858442cb6b3943bbf1c6e8ac8650680af3e72dca88f11ff26c35a35728b5481d0197752645002fef62924675fa2e067246049377a924236f1696187963bcca7bb5d2bb8bed1069550e5be45446404ec902c82ff9b914fb21cf0ce6315b6badb5d65a6badadb5d65a2ba594d2da236900f1bd1ac0370ee29b45cbef929617c919025cd28c97a7b63a43801c3241aee88510dd204ae2007258b3e92ce56a63bdc35a5d8dbaaa60cc614db29810b7c85693c9643259b5d9aaaddaaa4d666d32ce56ea624c44d1f7893ed127fa449fe813d96e58aba3b0360a6ba3b0360a6b614d24ea62a22e26ea62a22e26baa814ab33f78a622a754bb15b8ad93ccfe6d93c9b67f36c1e27eb3a4ed671b28e93759cace3641d27b3719c8db371b63d6adbbde337125dc9eaa4647197219855558a485d6cacf1cc683c2b2b2b2b3cb459acead49d1a4ba552a91aab3b55a7e6dc84866e2c2d2d79d3db9090eda7c7e7a7a5a5a5e5c7a7a74667341ed18b172f84c0543600206e8cead01d1a73717171a131ba437568ce4d68e8b662c58a15b72121db4f8fcf0f0b162c58fcf8f4d47866349e162d5ab4e0a1cd625367eecc980b172e5cfc1702cfd8dc993addadce0071a1a12d6f23f8fff0bf5c081c04964340743f754688d32d7bb89cf385c0410c0008dcf1d499039c0271037c8f05f8be3180833ffce500bf0618c502e08f27c08d97bc5342a47ec85b0ce203c0b2aec6dcc580c013c716e0da08007f3e50bd3d30ba0f55ef0f8840d0853e707a1be1fdebc01d82ee9f07de230480b97ff787ff80a50e00def2c707bca54f0f78cb1e18de726807de52684f9e3d67371bbce7d0a63c9bd2e82c07ded4070078d39e1a73e15d7568f0aeb34aab3c337853a116de7488dea8ce0e8df54c9fa913eb625dac8bed2eb6bbd8ee625d6c77b12ed6c57ebcbb9b17f378bc1fef76632c78dfdb16c5b68867a7883011e2c9da624488a598a647b1b6ab77582342d45b14a33f177bf8266b5dacce489b2124a079946c3ad3e88e98f6888bf3c3d7298105b3cacf075442a441f45e0cc4edfdcc8aa74689f968ca6594585d51a1d8e781134fed31a123e5bc6aa7a494f3481b477b3f74a4afb6eafd50bdaf0ac7833a54eb90cd123f50a15921d187b3f57a5de5113b91c8c34bcc91cfb51608e2f674c4d1a8eb6a1dbdaa0041b2a8a9666ac2d4a302846ed48954802069a4f77badb6956423fd70b604e226f9785e87a54824baf77a6087e76834b217553be4bb879798aff8621f4b74dff77dd67a3e5bb0b887e733c2a3203a12a22325f9906cb46593d0562531b9a9266924ee52218765c543bedf6c3d53eda607682de7dd51d0ec0e82528ab839e79c72ce29e7e45eb90254efa65afdf184d0192f8f82e88ade7079648381e8d38d44076fa727f6308802b6c47aab2392c03ad22db1d6a16aa3239be686781f85371cc9c746f2912c6aaa55ef9e4c9b6a9ecc14932c6aaa917cea8c779a7d4cb54cf2a92b3ab2f98c6c1d16d90b76f86aaec39ee6ec1d553aa568f49da6250e96850e3ea9da3372746d319356476e1b9b59f9b63297ef6a6bb17cd7a016df5568c5eb0d09caf562465b52df224de9574b2f06e256a15999e7d9a6ebfb413589a6209bf6b40b667163f1848e2d745aecd421af65566b6d915be4c4c4dde2d682d6722ada1a5a2be935bc21a1e04ea7f01017dd6e1912b2d5550b91165a0b4fada5c7a5ceb8684173d10411d65a6bb9cb715c7893f202886c58fc9393ce39ad96e991ca9c2f88d055cb3f518b8b4b8b7d417369c12f662c5e3f318b544b44dd3413f5e65dd1bd37f589ab76c13927fbd0b117b14a11baaa5985060371b7a45e6f710af4bcf026e55e5800918df84f4e3ae76c69a15ac43e9620a1ccf456f951f15171c1f8869fe4acc05927efa8d0ac56a185a47f1fd811418ca13e31ca697883d2019ae7b305cfe73148f8c50cbf48e117b41788bb65d6c2435b3322b485465ba8d7b714a1adddc3c63478d4abb4e28b59e66969c92d1f11c4164644e14d8b1a1deb1444eedffca6aca4163c2d8a8c462d7852a916455a18b177c159878ef52c382b41c7fa1638efd415680ad2f529dc82a705adae627ab7d864ba7e4505b7b0c02da69e3a23aba947ecd1f52b72cbacae5cd0d382465b36487bef2e5b667404226e9596196da1bc5ea5086d918c68d337f862f682465be0953457d74ca32d10ccbb471dd2e159de22e24c84aeea3fc982f3ac05e2d4e1770e6199081debc3d3695b5c684d0df1d479465b2cafcf44328f666179b621d6215d4377e6d15514def4a8429a74517843ba88a54d0bb642a215d2a914c64015d233f3b04ffdb3795721929e2ddf2d68960cfbc54cd7995b6692c502d105937e88750acdf2183149333f2d46790b2662b2c488e98a72195a9b7b54211d1e855657f5f7ee169dad42d3f52ab43a23be5e8587b6c0d7af6059572a588e6e8a78141e220e5d53de5f92129e92652f62143b43d0eafd2551b1e97a51cb6cabd05a664458ae05ed4a568d6970468e0d3b1a326fa74e41d6a11ad4644e4be9b5e08a5aef8a3f859a33855a71ad056d8e6a1cbfe22be614e7ad4346ec783be2ec51a9e791e6afe90530226030989c13074f09abe321e1215179bc13549e09d6daa3de2a0dab686badf5b6a2a445c1b5afafb8a67e7edecbb2bb0c1db377ef14e58aebbcdf9c392ee71e6e1c6052a188f92a88362f200b414735881b9443ad2d8524a0b7f411e2c8ec89dea2a8735c70e448ad76e486463b7223931db9e98e0809dd6eb5a747b2a030e79c74ce49e7a4f952f094f04e1086af524a29a5d40859ac4a2aefac4cc8531c7848e87824b0413f440f09cf87e7e3082b10b7c7d315d144d8e9d1b4fcb67a5bd21010de6874596f3647cfbaaa4236df75a88e540a1972a4557f5759cd779dedf05d6939be2b0f00beeb9c9b0ee1f8a6b71bdf3567e6bbeab436a5511e5acbe19bf6501f996f1af33d6f33be690e6bd21d19df3416e3aa397b5e7c4f1f18dff3679c7bceb9e70e9e73d6627ece39bf65f494289fa177a923d719aba3639369481957e77dc59abcc51d728e3c0220eff1c64fbd57a4c95b4ce1c83bf51b797f26efb195777aeaccbc36f2be628dbcc554ea39e4fd9146dea34cbe31795f7146de628a9577ea30795f46de638c4c631d8fcc2a6f9971cc7b3c8cbc9f7a91774a7cc95b54e57b453195fa3b1eead3f1509f6e68262333aec87bbc4bde4fb5e49d12556aadd666a9eccd6acd9bd54653de32df3f114f1bbb53677c2c91f293cae9ad12b445c44da7b7275839bd4d42ba566e5647d2943ebb591d159cf212eeb489f4434cf97c2a954ac99c379b2f61ab5570133d2fd6a153d529584a96e984a536a570909e5fd9829e221e1ae2889cec914c37655b094b2d6dacce0efd179e0b6f48d9861866142cf58d3a6365322bb3322bb3322bfbf9f9f9f9f9f9e176b81d6e87dbe176b81d6ee75e514ca5cef5d08ea7aee87362f78a622af58f238f2723338e7f2a258add90cebda2984afde3e8cd401688f3a47fb25b63b61f4da7fdf16c7447cfcaf57043d4e6589e8e47538ea7ea6e48d3dd0d51fd1d6481e87920096f31ccf9db313ad77d5443531dcd65c0ea68eedbcadfab65c849ab63b344cd32d45be9c0ca3b77b4504f04e2b67ad251d44960321536ab28526bed8a9a4ac10a206da6978239e7153e5aabd1689d4c76df20eebaa367f7062aa3322121daed266bdd1bc47def9d9d139f54edc464331a4fedc72634446f393ab2198da7d6e323748774e66c67ce62d396a3b31393cd648646a1db523fd447fadc1e991ba3ccc7d4c594587b9010e7ad3b3f7aee1bdecf96439a5239d45199509d714276daeca471b17aa31df5a1361c12bbea4c9b89f7f56ced91ac795ac3269f8c117db40b2d8f5041d35f4bd4719a4b7c68162d8f0051a1bfae04a258a3638f87842b11a12d3aba8cf20eaa419e3ae3c31b0222b283a60769608db69a908141c98c8916a4a629b5994d330c115d86b0254d3c247446f48f2ec2f982f7ba8ed02e51086d491d5ed72bfceb77f4ba778dc2f0baf0e8217efd093c5494cd4422f78661884521e2ac465b74f4108f6638c235958637e10cba978a3291465b6178b1165e6a712444472aded3d6d4f20810114d47e19551e468ace51128986807e8308a21bd4f464c333d445b281b6dc923510439d1b40c7a9f9a1c8942882e6979248a9d244ee420475f4b276e30346ba27168e9040f72526cfaf5bab3c82442c7916d1434f21925d174c444c396d86802a496a8a44bf5b6a1a0654aa19101000000084315000030180c888442c16896e4a92afb14000e88ae56704a19e75918a31462c8100208010000000000302232d20000583d0b36df0f99cfac998599ab1ed685ac3e8644c2e6ef001d68853ef40aa78697720d9cf6f53f50b7e2d32f056906beeb23c85bef01bd2001700f060509a6f640384810d883b820814f28a6b69f3271caa4fed4a94c8a4f44e05adbce283c2a6b4fe02470710f6d5294df6aadad471165bc8faf40f7ed4424b37d7d0fa87b53535dde4a90d62e3f935f4f0c9ce260fb312516a78fd8a62f1f54f363ccff0ae2fb84ff77ef2ed97b3f2411e07e07ecec33aa4fe6ab8b29ba5b316d7612528a5558e4779d3fc3d904d6ade7249d7285ddad9a92c6b2735aeed86de3b9083368adda9a717f725403c83ded04a94e726572f9bdf2f76d37f6eaa4d283ccea36af51f7708354a44dcbaab369b897a4a293799b2fd92f0fd2f8bd7cb37baf345e31ccc7a8201c8bea69c9cdf6a03abd2375e1a94df3d121a7de508dded514115a7402a65e54a2170904ec3a327342d38f27427e884dc1e9e441b8b5da743528d0743468416f906e851274187b0b1efc123dc5e57c86fe2847bc8a3ee5e03c85faa9865a742ba28cf6f115f83efc869ad9febe04bca7cfd033b0dfd780b0cfa963c7612292d9debe02ce7dfc5cdeb5baa86ad79f474334bbc1b381c40b3415d5009f52b1508c5d2c98848b0fa27d0a0f75bd9858d27085094dc69677bcb084f0543ae52eeba43269eb8c0985b7cc761fe0a652f36bdf6373ef0c780e0e7a4b7f3cba67b853d3d686b765a65f2c0054820aafbd2b26c02c2ad35e4e129a79f72534e4f0452445852e63c3855dbea5b11c4c539ee08855dda5189ca6533ed46a27469260b8ce6d32345ff5ad2a95569d49e2fbf00de00eb6106bca7508e9f75c795b39fd32c2ba4b770a64137ab84b57f4823998135d6c1975d05b24dbc20228e94c60237f8041c8a2df0f1198b72dfa46be4f9307ef82b963c95e75a7024d75b3d4f7dc08304f928c02ac4ca07d556ad7b9eba2645f80590f32b27c020fec1ec4e845dd1a7845c84eb43227689a688517a4b905086f9f8ce6809ee0c916fe08ac9b458c4d47d395ae8d648d3ea7e64be44ddbb8c003717416281b03d683d96ee3bc6e94296463377cad607b7774314669ed25ee4980953567bac7786f10e2383f601af40e9282b71b0c18d72bb8443901633302765b23653d61709ffe158cf20e9209341702b78b75eb219d11a7df3d7e6ff7f1703e0b8f9008e637b3bfa5a92d415bc4b94b54d36c38fb759bddbff3aba608e2febbe071fcde357d3d63241f924569d5f6a1f193faf6f884d7d0e507ed049cca0c4c14a29dbe7012119f94406c81735604233599d9717778835abbf58c81e484bacdcec8205b0aa17926b165eb7e8f3cb0b56ec33ac9a79eb48c957617633d7c5186241f928d6ad9de83f09ff2f5f484d7a4b7d22916f546fe4324257a261fc532d789f89867d844c4cfc8a25ae03d211a9cb61be5b01fdaa83a1877e14f07b30077d292deba832dd69b801a610d28b0f2e4a88fbab951ea8660158883cccd46b53f7f939bac1379f6d48c7a6a6eb205386cce4dbefa52ab69bd37dd08a9bd3b459c34a6c7004f1fa2725b8446612566744a4d5bca4ca5e750eae84ceea705a7ea24612a321bef4d53bc1c3a19312dd1489d2005a6453fd1f82c6924a301d81254fecec7835449faa6defbdbe045481a7022460892ff5e6a47867b04e962d78d4b12e0c404f8efe46d459bfe61222af788500ad7b96210eda1e2d23e2e07a808dde0f99e03ad4e84734f5b20afe46e91b46521f05e45406ff73922f56e2ec5c830e218215616070cee4108b9b66f0dc87be2b0c564445c009ad837d38a8b0cb6486fe603a9fd0172136268ae270c5295830d33bd692c388435f5b1d0374f99d0fcbfe788d9eaff1ab45283e7cf1404c1970f9a89357f26524ebded67ba32b0ebff954ce9f50f21c1c9cb9047bc98e75d27ae7c04a228cdb4560976670524a6bc7b6789ff3b4bb6cd9f29f9f02c4b8b677daceb429aaa6722d8ba0a49d6a5990cd6b2fd4eceba0e736978d6b646053e41e2da4a69816fc4a09c8c2710e614620f387cdac7cf5378f46ba737e31b97a90d5400fb6d82385abc31a3423455c94470c0c078073afe3132391d8b6f7d5398feca8c20aa32f5ba7cf1789cf6c84954834e6a8c84b17a04fdf0fb32b127242be11f214b4f6e8b59f873d41832403cec5eedef8e2af5534d9c447c951f39fdf10b3dcfa3ba3f2ae4d5395315cd660105f116d8e732e5e1d2193e4133b5955b6034b02114157bc64ac5b8701905bb4ce31e6b05418649d489d443e3d22630bd3741e0723e6397a95db0d592bf6b274696e32748004b62cbd44c6ba1822a74495943bab2e09d4ef2f0f59c875d6028ab8a50b131351166ee1b752f69def8841796dfe801595031e594402a08aef3e42f6c18d27e2c57aab5d72d35468f650c0db1a6f947dd815ce4ba91644bf3d6ab1ea641da60790d1d106c619cf5d4aa6148800325cb4416c6faee9c631aa8024cf44f7eb1ad5b8c61a7a89b99d5d900a7066f0cba2ac3eb830cc1875006375b216b42811d984ee739bd6a6415fe4527fe705c5a390b3368a6d2abba47fa69332ce61ceb8e70163c32ca5d148e0f7e0f5e234d48b112839d069a9a64368ba5740f871bab7280225961b52a7027f8c0bbca75909e084cef01211e7d1b9d27f42d62e51819c84fe406c80900be88bdd0611b61fce8f6b3b0bc7eacf05dc91b0dc1a60aea98676ed8d5617266a176078c0ad8475314b43fa9657894e32a87f8c1f56435ec6a7c1908bb61a2fd1e0356a3a087e52d2a3c961660b73728120d1ea87a6e6f583e7a9fd99142ced849766261b5670488689bf8e3e2d21a7458eb2f1db46fcbabe34c4f23499f6f7a38416ef1d0d5093978c61e749801c99b24e3c25ffcf36847cfdb2c6779d285b78a5f676f7205e4cae0e119287572bffc5e29af427923480f8de0299d3142b5aea9617292d4eaa25bf96f9f91141090c03bd8fdb00cd870545ca772a0325da23e3a6ccd3b351faffe9df17a879c59d15f54432f09336e90385c2602dcaad2fe70a90b1e2dfd063efa7826a96a62d60dcbcea1e2ba15c9f96ac8498509fd02c831fabf4028e824ead09d434cd5ae0272fb78e11dbcac8d6e54ea62f536060f8f9f6862a1822ae58aaac50d6243c1c96c6316eb0419cb0d7d9b729ca6cb28772a969ebca6f77525d0722d6de821af90eb5213896ca2f16df1109baf14b5a31a308381ca5e3c494ff1ca829957441dd3e0eb94ba43cc012c8db98a5aaa5e9fff0b500bcb816c1bcedf574c545387a59ec0314a19654ab39855984029ff70dbfeb575a2d26c3631d30ca3b5ddf71f00a0081c64a34db07ab7bfe3b38696397b0f7f310f37db4fc3b950b1edc96caeafb2e5d8f9e9d8531f7d6647cc96a19d66fd6514820178abeecc6478fb0c2d11645293c15a9011b9fd868d9a14978555cdf7523982f761719bf049f6e2e0a997cdd7c39c837dfcc85556335156ffff40d647ea2415ee592b899d738c892a735c756ad1364bd0ff416b865610e1a30484b2dba72ce1e34c85a1008d25a261346b30413192c7d7aa4a4bc04090d0b356b028fc4a34d42bc2851b32e5531df3380ad236f3ccb0dad192a56b107f3bce687b1b2919b1df296ae8575848c404a8de81561b4226541babaccf80bd2b4d9475566f746efd4febd12e1c678b677321ed385a9f0349f6072d13f9281456f011544044cb16a49dedafab0845796b3bb9c8be341cb465935b28d3f4bef9376d7de0d220e97bf365782f377509b601484e7ab34ae3eb05e17e2530efd860040b5f00ef59e9953c0d1092717fc86de15f99ae00937d95c9dfe6e0696dca8a47e7c8ce6763c0b01103bf655d38622abbf405d09ec0a0ac1327ac5358f236e9e22c404afa82c78a4e00f7987c26de82312877904ae56f87fb080a1017bc5939c5aef68779965630cbfd2bbc411e904613e5c6d8c89cf5b818dbb3a58c89850affc00efe1b7f08efb7f825ce2724a9b3a609152fa96d52c1dcc85a6efbcb88f2df4200d7a6b37454be6bcbd165f8f5a20e7d912377b53482be8bdecb11dae5a8db98770b43797b46cb7de00414cd1a213705376d73fa5f8d825577005bc28bfa497efbe3fd150a8013a9afd8badb31e9766084d134c9ace3136ee062fd3f70a26291c463ffb080b05748b43dfd543a5c85ed331ed11d48756444089ac784811421bcd25956bf957514250f04838ae82415b3e32db20203fd42fb50fe1e9b5d6df2ac05e1926470b1e95401b8ab331cfadccf591013b2389c6b3ff2a2c587b9286a4a1802f1c2d25de429220d417c402f5d889c91190284174c8649cb0606b7e2c50b4acf8e13dc3cf0fd872e5ddc9cbcba140ccd08f57cb6c620c99caeac66e3b96d37954c8e636710258585cfcde6e567a8bdfcd09af4aad1127abe3833306a91511f42bc5c1b39db15196a24b722e31ef4a10b5253c07322efb6ed810de8dd379b787daef144d7af338180635a1b8d9698142ba16a9772c19155fe9c4f75e362ebeff429fbf4e0f9cfca4084531b0ab162888f8227b3b321779cd80041837569427e7761bd250249ca67d77563860c80401de14179932f77893584f90c8497ebf03c4f33bea15c3a720ce5f8f5975da1f6bea8e1725f709e380dfa3cd9470a041f9a895e11974d8afa5886ae9e275c2b228c880dc798aa206eea2eebb5dfd8b0585b2519983aeba8891b0edb56185d39a8b03ba003e43044abba1c4ad261063e6efab90488aff45f83a2e027a4b6dfb02459fff0f4c0cd528325cf3c92b49d06a57175475646762b3512009caa4fa99272201da01d7a108a0a6d76f181a254caf9537d6975a9e4f6cfb672e6307270555daf7cbce66f88c3d89fda3e8911b4dd368d823cb0b6ff963d7f9746e7f37516951c4920706ba5a338f2795412f7b025b3d1029c2f7f98ec1e722849441055a64d2f30bc11bba8911d1f15de09e49ef51f46cbc457bb965b1dbd6d6c074b611c852aa0dae67b39014c4566461ff42555a4c80486f23e89db321776ad75c64ba4179a95827868e6e76008f012f1027f76a2c62f7beb9880bb4045edc808dca32c10680997f327821d7aca7fdad7e084085428327c5a7e22767fb80cc624df19fe4b4dde756417ab88806de14e4a2da3562e2fecf2c1de217d44026b3f913a05cd7cff64c0ef942c0464d31c8c2288834be6ab8590c54407b29edf8f31f6fb3976852a67197c333e25eca44f779a01d67575c6bb0e7198bf8036886255a6311faccc83ad7cf2287c44ec8d0db6f412de383a63831c5ba74dcba81241db94801dc788dab6791693715f439f7be8fc44ed734703e959dccc5676510e5ecfc3e5c50473e8e1df9489b3bc61a4207a2916683bb8c7e23c22af446b3febef9b1ee09820ce1537559be375b4cc623d51fba12dfd1d3b1a24c698a5789028accd69d7586f4cb034a76992cee8dbf11e2b6184e38d1402943804cac4148019738e5840037b2a155d67318494783c3d8c42e3f6e34f5e4116e5669ad74a0f7cb29a7a41e39631b1843e85c0e79c2547cfec68c47c31892bb74f38bd0b74624de1344929ad6ac61efbc038650611bf7c309fc89c2397072da027c4e4cfea63ad910bfcf97b1426581a58d8a64e4cabc8dafa4a9959dc0ccf0476dbccea28693dd56c47e3ba998b9d92b28000d554f76c3374f2bf9df55d66b5f4a0be4d971cc80d0bbb7b91b059eeccbd04888a2eccbdad2eebe579cfc8124b069afeeb745b15e6508d1a8912336d9c7f1cc0d261b412ebc51b4b5a1738562e31ce8955ab191807e8db5513736b268508d8b4970ec5ae99cc8dbc65ca12fd8f9ba8a4625e9aae70ee3c173bcf1589a3ea044095a4b52bfad2b1585ab6e15e44ffe083cc5f169ba57760849c87918858fa66741c9f405ff9e9423952e242caeecff62d8b332ce34c18b7c2f5d03844a7e27e9802ae64b3665c3adec24b53f58d1884da67a9cae7282d975d51dcac6f9c6ae7d21df516193b61fe9585e4279ebd48f7d400420f2e6763d73175967bbc280a8a749be93622c8c53a34b43a32b2242c289a6d3f2115706dc70ce8b133cb57ff07724fe7ce277f345aadeb94a8fd6c09682fb9fe973b514f870bc8ee2f927b913bf489302242279dab63dfca8839ffc5e59a2e17ce59a62b256624dfe6afdb6c96916adcbe516a5e011d2c1167ca19d523146e293e0ff5d3583875ef460717fdb159ee96910ff3a00a0c7959beae6cafa5d063f610111926f864868769d3dea952f18b745bec7d2762f23fbe8c9baf21c7e789065169564c0042cf54963f4e5f82d981ea63919f20cb3f321f909b281e95455fa73539b7a82cfe5de03dbe50107861c0e6adef9e75be644d8727c92abc3de4710c8ff2c67dfe553c0aff284900edec1470f4298baea0a2ee3e2ea89d1fcc67595f21643501ddd0562da5511d49470ce6adb2e4c17e7aab33ece00cc115be36e83afcb20b1a74013dd6867026e374f3d008a3f21ddb565bda8b8dd01790e80e7455beccc9bb79c8bd2fd2b00e20a40710e9f4cbbf7c73a72ab1a8f5280fea760bae1dcc037e6f0e32bb385873534abfaebc967a51a605bc5ff2ae83273e7a6649563cace9a417f1852c13acb25e5b4d5fba02efa1464f5ae012d5ba7c6c85fcc13b46b2b33eda8257dc3ee8e05114ae1474acaf4c383019de2883125cf694061470f0426d7cb536781db0f560637f9915288cc9bce613a2d0210da7a44d1259a38522f16337c66534c3bf5c4bf4788d35785bae155bfc42816e6f5e3285e8ef1b986a56236579ca5920d45999f6e51320bb3fd0047f6b405bb4f502c8f82621fd06b27fe30870dd0f50f556087cc4edd7d7daec16a813377ea7b0e571386d11b2b27d0a64f707e9f36f136f8d961e63227c142fc7ac92385f8ed964c477c1c1567648afe4100ab2c8724cdaaf9fde76ebf80756084b1b384b8fc7ec98e52bb3320b94f5000123ab17b7f85e3726b3d855de3cd6424b7fee8c42a2679466402b3020a721ed9c6444042d2ce6f0744267e49e88f9616009a01b193fa8532e6aa0756a930fc6635f62e4324ad10e2b0acc525a3a5f8521c3146803974f6fa1f7dcfbdb4141ed2f49d121e8b2bc6528c20babce58461021bc515f804afe3ee855f9bb2086e93acbc8db9789fd4bf6f59c445c98e90ebb6fa3c311177afc4912e669852a84c8f0dd983750605e1166c7a0cbe11373db8db825f095e66c06d470caab7ce0989d7a5cb9853b1e4c7ab1a196b7ea22bb40eedd534b8108729099a004c06ade9a381064c7124463d2a74f4950705b7f95a5b85981ee1f787fb3558abf50d2a0c2dc9f68dd0e57d3b66c3a9fc51f080270b5b7ad16de82995f4c26f2dd688d6ca334fe863834a156b0c256c68ad64b611af5c433d1279a130313f7ced673c58a08c3aefb0558f25c33f54db69740e72358ecf7a091c49ace2a57bfc3b5b34758248a58b4be606d27ee1eb889a36e40be0c98f32d77021e9acb2c68f79c4126ac2d2ffe442e3cca99b3bb261ef48d646ff80b17f16d0842a475bdc1284a935e7890b4ddb7100a8adbe56511cba3e1f0d01600337d57b3001bbd270da3be018219cf4dc7384b2619f305a965091d248c06db0c492a6825b02deb32476e57fdab544be31344ba0932d28059e709029f697c57fd96d85dacda24b305c877eb3f98524be9f40cfa6e14da0c7e81faa5a027ddb2553dd1b5d44789c339f2757976767ba375c37c541137094f72ae790d711d09e840fb1550ddccba4624274883bf8e08562a2156972f9a08d19b447c1ba0cd2538c8e0cd46dfd7227020cf44157046173cbc7a48e9993247185704ddc2fd0a5bb13f26854fd0faabf02256184d0c0a8602e1a60dd6a47a11fb437a6adb97f66a4a18b8eb1bc000c0400be997a9072ceaa928112a9ffd73422147a65dff40ebe8dfbe5a277b595279b5d02bc220f4b02ddccf5153196b913533fbe316307b42f572cb91b5a2e7f22a4bd64ca3787885b8ebdbd9e349b398b3d6f2d97b4b80da6ef14bb69e4d83562a79299d56e679c26f0006e0336badf3716a2d8d4da55b696142c3b9c240a4252ad1156b69fc575a6b57d5a4d3e102cd8958b03728adf921e62e5106d0f061f3d196d7f0a0bd2de2ab848b88bdb4bff5f6025053f75cf926de8b441d5ec098db645719aa8274f0e96de8607408e85349906e9cb3625f2ba85615423c95d9302a121308bc9c042d0dfcca6215a3a02d8e96a02065d9e4db00cd32ecb5f44c674e0ebc330740958bd1559cf9c392cb4688b1a62b5d7de555d75f92784ddcf63b9ddab84a53f2038854da03a05771dd155a8819a54dbccd9ed9ea420f0f696363dac82e71b99ea15511da80a41bf04c2ca161ea806989d55ab0e17ec32ea1390c314a3f80c4abb8aa2aab6583c0c8b1b034d69bdf2813c21549a96b43066b6d1b84fb066aa07920328a6ef4ea1292ab26917cb9b481f960b2ae49aab79f8da262ccb203cc32c52c950c9ca64fb00416a041044eb80e06c0b85c696bb3c21427cb4d8edd4e2c44b6fd57ad7031c632a9ae519a18cb0910d57f7a04c5c6c813ef43121054d140d6bf64acee56f1ac95249312225cf5c22c5dcc56f1e04de1d1c97dd7b8e463d12dc796aada4c48dbff2aa1430715dbbdb78537ce9df978edb3e7c5ce34200523684d2fe6242f7c181935dec742dc1e2a9e6088d443d38081fa678478100d8da0df944cf13c22a8fb7c0a9aecbe65f2088918a9ba36815e8b743f01b0f01b6f90d6f6418a6dcc5c45c51188f6d859b1cdaea0b7c5f2fcfa879cf8d445cf8dfed40fc574fc1441b694687685fef04af1a530bfd07b3c422a0b22458f500f46e963e8dd49cf4f75ac47b0d4cd11c5efe2e96358d1399da8f9a2549f5c111556a7d588dbf26ffadce21b0632a08af7a838ac2f4be13154829802e819be13e8f87b557403e5bedf9cc70954fe8f8ac1de605705066991aa42a3baf355fb13ed5e684fdca0ac9e3d6120099c9ccd5e35df20704044be53ac530a6f0c6b3abe212382c0a2082f9c09f433d13b4c10b252e4ae47d77bb74aa03ab618c01a53314d74334319c67a88c9c0cbcfea291d847a2cd48412a49fd83c3d52c8f15466a95846d35b5c1a9f14001f898528cb1c04b2b930da0d70a7d0a1a9b34beab0b1060547d66063c1c3df19e8fb9c8d1073cf56cdd95211cff155c502705163a67900dccc901bb874ce072202259d184da3ae1f949df6b28ee4b746dceb00395ae09352fea439865fb9e8de03bc48ba062bda7290a50356991d6e1b56a31b2cae72a3c666ed652b417e6eb141313f671399de6985130801776a4db72b781e52bcb49c753aecadf6c5ea50cb62426b91860d1b1f4598fa3948cf629d51559e29b01edb632eb24e160c36b3a5aa147fd969b6857016f75f1868c1b250c10a8c02d551ebcf5c486beb340b8bad747aa1b5bd662f3cb75c8f85f896fa88179a3d50fa4fe352ed6fe57afbe3b931fa9b2e9def3b52bc6ef2553c4b4e18f6bdbddda6a67795087875f43efb1b91b7b9efbdce237af57abc9e343f101a5f6bf2da767353dd520cf39803bf762dc562bdd942ee8d936a34493259623f99c04da4df3c107a5962bcd654ec544a95f66c6d1e00b0333eed1b781a8b891c71a41a7b24591d0f3b02e771ab2e5e4b76459532a559b10442867b6c52454064cb3ac53934cc6d4d0a7ebd27c299c99f94e93fa80a641b4b552d16e4131b029dcc6ea1bb7a91beaa7fba7a4a3e09baade8fe02a523d45250566260b94371ab05eb9c922d043f33841ae51df3fa2c5a6c0d846c50feaca3d6ee6efb593d15bbedc7eefc27ac0f865f55a1902345bf12d6f1ecc0bdf0fb0d946111137543936608fb5df504b060fdcebfbf48cf8b01cfb8abf3769e0b6afa64d5e135d937ddf4a1c0a83d92cbbb9a08ae8522e7d1e1291c1739998efad40c3bc8ce1e258464374eb5aa6ea5d481546b30c9b64d62f3e6c08f2e71fd8bde263841ebc3ad7a474a2056912e3a4ffde44011c5fdb2b55f430ef37765c7902f63c602ed1af73a0490cb652c182289b1807ec3bc1790421a2f5f088770710d6e1dbbb19b0865ee523b6ef41a0cb139bc51cee61c8bcc2ec8a7b72fc824d9613040c349693fb6e4a4e9c5615f0072167448677f4f0e8094498ccfc9cdb53c85a9f382417dbee8fbeec360f262f1edc3fb62a0629d8203ad82b0cd121d3c111d9aa58e9d70a1d6f6612a1028cbbf489e61cf16a071064b70f64cd8f486a716e0ae2b53e3c62bb25b1d20d589d6ebec26b9f89ae404bcce76a7d04eb83f2147d03bdc71ea7f2dbcf65c0b1630702f9004e39f6528b27a4c5507796d4b1ae10d1a3a94bd2be15a53b6e85499ad41c9d3f6264be9d38feaec2f13d23c0dc55827a3a27cf2098f1f9eb644bf3e0b0e6ad77d835701d5f9b6c56d1da613c2275289157fb0b1d97a2873e02f087e8bb6113c4f2ee064a6cfaec30a4e596fcc29f6bdfcf14c4c7a025f9aa9d5f4e4cfb86961af5d13a064805c58d9246809bff9150ac134042e1df65b15fdb593e6ad3d806f6ef1bab559b9b5a7de321f22eeec06c5563a3ce2ddff86ea3e86d552ab1f24d59a518162641bbe1f5d50ad82421c33f6baa0e44c7e9ced0e86e183910dc5b01d1dcea0fe158a50ee590de0f2b3591cf075339a6bc308e068004441619bf35d0c267a3efc0d347e83e0a259792d69e23e80a61d01526fd2d28b90f513ccc596b6b0e282bd4f52cdc14b58dd517898272172ce48d10c4ae6b42528502ae77948f2990acd4531908013dcb7382beae573c2c738a423d610c9599b625ea6cfa39313b296cc05cab42d1d61236369b7940311f2064680ee9679aa8d7a1f7734daad9618a17489146dffa3147fa563cfb2321550d6ea2a7b6f18e8fd39f47d40f78d07adca15bb4ef993cb2a40fdecd742407648a321625513e0b957eec524352db0456efcc6d89f647d8c7f466db3fedb007c75313b8680e0ad7940b740ed7fd41cd4695d1dafcadbf602d0453c9fd37b927a189008a9498a724dfa0e330f938409aa5b7f002d953c7bcb386926bdae35dd5a9345efbea1c2ebf0592026c0044db5ef8bc2fa842a7ccdbd3900c6c796d4d734a79009364cc262a06a64b03b083e9c1c042b82b1a1013f08c8325ba667c0fe5bc6bdaaa5888766d498282c4388f9e1fb6ae834b5be4c25224d86500f3022f88377b53406f653fd502caf24f0649230e91099c9a7d6ebb4356b2b6db5f750459e2073a4a354461ae86fc0fa89bfda390c91802c0d801fbdb380d6bb474a8e46446a3c5370213fa94ed61e56cc8c0d5377251aa39f47d34022adab5b24f30a44cda6030147fa7cbe98cbe8cd84f72db9b3e6f65b6aaf70a9495297bbc590081dffef67372b105682dddf495d3a327e877bfa91b31b2337f48bce95542e9fd506073640a876901913c2eb64b8b238f00a7213b2ffd21ad133fbbadd8efe130c31c623310538e624830bec17e6a339c340fdc85610511ba5a1f8ee898287fdfc078176223106100e9f4adfaeb6b4bb5ace5e80c2018fe9d9c58e0303280e87431aa49890190055497af0146d60da80de185d4f750774c903e326963373b31ec47bcfd23e76f1f8de78a48bb61232e86d98c1e2c25097a035474d4ffc652b341ffbc013dc014df1d84e9d0a2e218d9a47cfa15d0d4b0a1a972d97431e02800147adb6d758f69994ce422f7809c9d0d733bf760697b80508c8d96e248f29211ffec52d4b53294972e1b0e074898ab00812d56e8bcb3a601ab031cc4b4d1239df1dfb2317fac265e7e70b187eb2ac706451a556ce6c87fcb1ce4d608b6ebe1bc34a37e86992d8a5c88c83bdd49e1ba2e74557c23a5ba417c2e5a0feaf3bebe97d825e265defe2b278a234115ff205526b0cb8ac2bc8b6744b2271e459bfb8c2c8a28d206485a5e201858fa5c7bc3b0730d5ba70aea6b0dca510ec54005b355827fe6712bdaed4b885e0c65b55b4b5f2b244d580774605f54a267b48bfaea18b264439036f7ddf0b50029f7744e2e0ed0a10352af166079c52bb86ecb7546d711814924f5a34f18ca634c8d4a001120d38186ac9a2cf7a1f2d6266920da1058d4c7e1a83d6b75eea7589fdb11d843dec938a129d239454453908be960fe393b42eb09ae02e8964957202ab7b445c72bfc858ec350a8e5ea943ddd751e8fe8c9aa513c61292cc83697595c25d750ac77e38f7017b8e283de296d997e73a9919096a790d7192470f8c4672086fc88e4d9b5f692afbd53f75e592073c2e083113fc65de8444864da11fdc327aebe2b1811e57232e4d4f45ad51222406b7ececb1b4abeb765b9b8465158063e77ad25901f18e6cc835e1648c881e0052fc459fda668aecd8929bcafb9d3df2c48d05e93fb28446b899c20dd3eadd620cb8abb679f68873de15b7f6be428988d58165ec2d1a928921c84d87c856c33fe310b1b2e19c568cc412cb168fc60a0e5b3547140ff495972f2231f45ec0606bad60922ba680d9da9a8800ad996618c066b63eeabc670962aeba10c40fa12d0b20198b976fdb7ebfabfa25cc2a6710ca9788d315a722c55e210a7d18229c6aca5b2e89c1fa5bfe9dbbda6911cf3adb01c1268f1b666806935eb97a4141592525025848346277ba87be731fba826d0566a12c82a14be425d806b4a490ebaea39cfa5ea5c97d1c7479c3b88ff602029d5fe636acadb2ce8421100df1d4f3fee3220aeb8c78795bf4772b25ef4a02881e47e1ff098da157276467450b1ba11fc1f45d1d80f5538fa72a080724472913ba9f43359d2b57403cc07043d72a5cb6f71363c0cda9bf173bc906e0547c17c9b0fd9829d0ceef851d91d3b067f37dc91238311accb6b1f66ec647f45be506c0428e58b01f6c3f78334463a39509466d8a3206ffa5a2a0c6e8b1e28296c8648601aac0f61c127bdd5b007f350c676d063c4ae10b640cc5e35c5f8ce485b796e2dca15c79bb5dfb109f2966d4683d51f6c40a5fbf041991cbf2df5f2b9231a5e47bc63b7977dd3ca1ab47bdf0ef8048d03da90b8effdc52ffe72ad4e7905b64a31c98fefc1f6baa648535adbbbcb073cadf99ed27986da4860bb783fc5d18f05d79a782635955e540a5204d2c200aff0f021cc33cc653a160e22624cf828667deb283211cd5e9fb5722b5cc55b52078bbb04ed49a33231e3bf08d2c0f52e38bedf1a9f7c02caa5301a0d58c9adcaf8d2122f65acefefff15982a6de33329f67e554507d52d964ccb19707410517f75c4405e10707887301dd4a7b1641353a60e36e58990b85337c439cc6821b8bd8f78515135aa7cc863a288796f7d0b6d9d5e6fdb982a51c5727bedb2bf7f277e5e13f5e6ddefe2bd6cbfd6aa3bfbb722f9f573ebef3956d833d469a129e3c91e5eab5cfcf950ce77035f9fc5e71d7b7ab0ffef54afbec5fb97cceaf9aeda75d177d20fdbb6a3ee472d0f8a0dcd04ef20b3deece9760335e907987c2779bcac1b47c6c308c6c7e1ff060ff749a6947a8e9396d5b24c9d9bb9a38580bc728fa61b2697bf191d33f52d12571d1d212066fc1e4375b2072d04dca48462541665ed983ab0ada53786ccef503c1edb1ddc1a762cfba9045d5d18f9d9bb8b69e96e8c234c5ed1f36341816b0272a9576e8084a152921e1517b40643e2dcfc2777aebaced1bcc2786b6b61340b3f69d7c7ae426047f8bd3ee3122ec33c9918109469f9c50e07d35de983f4c77a5deb154c03cb8947d7d470950a14b5cfe5a18bb38088871b48cadba464bef7b05274e8697b716e540d5a787d007918c8d87c26b0aa5e3301a276a6901bed8fc048188b78dc60d0d17b0573c2a2bf48e7761955619fb86a458d83ba7a7f1482605ed9e043ff89410a689dde7f5c6ecf92b33ef4030260c37491b3fd3fb924937f3ac3c0e480266baccf48903fd687161ff66a059e9cdc92b74a15131893bebe453c72aee4ca6131fdd88f152adad2d49850742c4f9eb47721eb0bccc11afc7a200c1d46ac86b1a30c519c7fa47e86b7c9b5363a98e365e6989b7303dfe0ff4cc64fd011c1f1012c2c3d7a91d96dd1717099b07d4048deba0bb0df9e09882ed07cf6c9ce88463f5d1f6cf72cc8273f1d9a7922af64c8558f025615392e474c972f263cfd10e57b60fe46eb0c01db91a5f0b64ceab6819e65dea2c676e316ab32b35cb37bf1ceeb06f4710bea3ae0e8320c281ab2070d4b8bdaac75adc1b4f3c0cb01d1c541a36ca289d5b893d4bb9b41f7f581b721d581a94a58f78cac4e20ba46991644d1c14a475c8147dfde6e2950facb588f8ee059e40ead4c1e75884a0a5ac05213aa764acc82efce846d45ec44278d81f9802e305bafc1f97d8cb7d2234bb63031329daa84a658372c55f48dcc032b403fc02b8536b18027a2d20d123c062a9b0afa5560262bb09a82e758d7be62e4f9fd8f696b7023cc30cbc7201ab2340d8d87cbdcb26c976d05f28abd9e15e877afea5ec4a1267e689aafeea36852be19f6d3410c970096ad839ab50b1a4c3c44352e2055aedbb51ec2efc618db1afcaad71f05c5cd575bdce9bae70c7454931daf8152d943a8777848d809cdc6b6da22ac634b72d65ac1d4c18375f5d8ddd8297b1cdb747359db07c55e635ec324b338b954b31a33eca5e13f3ceaa1b52e8cdab0ac86b64569c83fc0d59ac22676975ed64fa33531285aee8a7489d2bd680ab2227410573acd8898f2e2348ea68eb4c71ed65e4639368978ccea3800a0824b1d70e56576392e25164653b9796b024e8e6b640a380ba08b26164eea12cac15f13c20a15607d6c10977f772471c71cc05da277191e09ca405223e66a40ad983a1efdb3b6eb7bb2ec5d00a7cf179f9e7c34042c8e49ab10a02398342106861188f35febc05c1f1051b7178532b70855216fa54f8e84e8909657a02d94aa1e0e5455703ca60c24f9ac09318b41da329fd919e086499c454a92bc98db0853edbb5b4c29a407f7d4eac1a0fb669f27e09f33e82980e3e5da10b29da2cc1338944adebe591bb8704b594348c2b6022c1dc4a289fb2bf943a3bdf498751defbae9da35636b3ed7ba840357791e0e6ffe474c804188694603556b92a51703bd9b0a6681e3c7ae55956a8d21a893930f36fa190b1ea1614af322e5dadfbdf6efeee2893146e31dc6237333b7c04ca4f6bb12d477c26e07a7a0f71bab4702304a2fba2924f4fffdef3eeff8479dd7272c7db585a5cee45f5b86bfdc8ee12292d42f0a4d68680fd7fb53eab5290985f1bc89584e84530b4cb97a62ce674368bc67e5b1801f68968900b496dbe883689312eb9d66f9525bb657006563e199a36b692d46314120a9ab156810400da4789b5795431a2fd99c9bbc515eaa9610786a215fa51ca9450eade8b155dc163828e0333552ba98dcec0221481d2846f6c454a8b191990fe00b51d0db97f0f123f5318f9e68e40377e854dcb3713b45850fb21fb0114448ee5b6f96220fc6a77fd7a9c9cc9d8a709517f80a0203e6d5f76432cffaf7c7c72cbd705116ea7990f661df90b6928c50f8c0b9abb83d7770da9adf07aeeb3454dca3e9a58ab94d348aa414ae6e7f17a9a5e2845e2b5a3f096096216a779173c83348446e82b0928f058da7983eaaf77f41b70dd7c65ea9e37ff7c255a315cb7d11ceb68a7c5fae434e3c3f0dd6a0636e54a75a57dc3c8409b6678a07c030a9a2e9c05d312d2d27f30a5bea2df0bafa0eb5b5cb5b84a4031c6898ecccc236742667e94398c086aed036b5defced9d6019b0a8c2acfe690fb5679b1b98e80901f9a6042485febfd855e7e23633b8ff14b95358c7504b1b8858f03ca9c43b4f9e2a0fcb07a621eb27151e6b5cb33651c5d354be5c924605a516198c5ae5df1859ef2a82d91261a76d9b85d9c9b2e631b16a3428a4bfc8ef622633544826ec794377dbc3cb401f88df2027b7ab5745880e62967817ebe5a0f4f53e2c48c51349e0c015b23c4d8ebef96fc3e59f545780530df64f8f832b9a0aac908aa0cd55b7dcf57501ae78ecbeb178391ef0c4da1ca82e11f204530eb194b5f9dd6efb2f9e808c839977425043908a631c682257482eb915ecabc479fc2cf48b0a2d0d862492dbec1d73ceeb6189d1d80b66f2f9af6d2c0a28d8ec8d25e3c426033286aac0c39a548d2c521f998376975d1d580c5009c3f64bff8d97a6a8fbb96013340c401100dec7226e2d395860565c2211649d78c559088029114c23295307049810e0375e1a5e21cbf1ccb1ba480790be649ed3ace37c71498b7304e2254c3b2f12335ad718b8e00ec0f906b7de21a913112e6667e49b31525cef659644c879b9dcd2de3fabe68fb871257dadf4f7de460f1b55d37dc33b1ef779c660c4586834acdbdd62e28403e79cc63a3c83def8dcd07a556f86ab5918984cd049bcf11561923ab8f5c5c935fd8ade9e17babdebe0bb256b13112abaee8b708053894df85b5e3bed76706a3298daf2e1f6ee975552bd3ecb0c3b4d7e199abe5b0bc27935a5458620976ab992d8ae1c9e96f8e7f636a1ab5c32a1a8af3e519d461366552c417d946c8fd793d33b28015a704d7b371ef2eb54c7c571072ddefa1bdd864696c19fb1cf82a8f9952bfc91b3444a9d5618573352fb434cc4fb57efcc378bf9aaae22faa66acc54f0406aeca2eb1d596f42c74c0b8e16b2991055873358f66d41003625e90cd8eafd4aff0d3af846d4b1bc0d1bc19a0751316d541ec55f333a8ee144e0aa7119b45b4801efe9d22947b8114fa72261f541b33e84a00e0d4e17f049f35d0b781f32fd896402327e47c80370b2e1f582b06151168d60c730192fb205a028824e16506b75b687c80590d58e840651fa41d20ae108e3d18640f250fc8ea83c107c2fa20a0039035e1c383072f42c7e91879e0e61cd079132752bbea6ee1b07a4b113137f45fa7eaa3196237ecd9939924f96fa6b5d4ce68a3367570d609a4b28d4a0eaa6c37fd7962c7f769163daa2f680c23ed0fc20ffe74de7e1cd3b06545074aed1020a50325ff2edd1306deb3e18f0edc6324f2dacdec634851dc42f2550af65930ebb5022d43d35a60f2bc0bcf3071b6d60c11ce7d013cc869adce6d49c64baffcf5b44f2eebac1ba6d20637a0c8373c06ec5a0c4f44aba0e74cfc0a073f27d68060c828306ef7d9f4cc490c7a767b606b4db7b311cc19be6ebdf5ace1e4bec90d9ff838b6dea17bad573c727421336f69c7fb486bb0c2fa17fe56355c616b31881ade73bfefde5b10c207bb796c440d05a35a85162b989d5e51082584da20c58322fb2e813f4e683c251d15e192521c0824bedb3023b1bfb1370e70885dc32dc4a878a933738497b2c9a207fe49cf4e5a1d43f7585b3b7d3e677246017480eb19e55335888e3fca4c921762dded20efc8ba958559ece41ab2909aeb4e8ab03c00183bb75359934b35acab60a76b060aeb69db443f81efb667bea68ba5f30528735e31815a36a00fec540d6be30c3ea72a94d54c668a138957e0fbcd018e922bdb7ce2c267222ae4b28b4135955d614d51ada072a8d0521ffc611b3596ee8f9bd83d25623b107463a346a62d00962ab08426a505ab9278cdef5a9ee7d6ecf803ac23686404301e20488361ad83fb85f981c8603c5f590bae2c0412b16adbfdafd82413b5a6b0319259e91f5f9c01e4a00d3d648de84634f413b3f62a09523371fdb9a78da345490e70a0293faeeaa31eb7c662c0a467467f321cfb3a495154ca3296618f56c055bd7700ccba15d553a867ba7cd4b17c31577b4330f4e18832d5b29083a1b487369ca10bfb54c3d544a1efa4ce05fe75e8d7541ecfbfcb140eb898e64da45a80af1848288fcc418f2c54fe682931f7b3c631c9f8a51a148e1db5bdf8f4827bb583ed8dcd23461394d41bc937bd4260a425093dd143818f1419b76b3ecdf32611eb74dc45fca40aca43c2bdcf6da5667d9463a5c5fc2442a52b249b8633d24fcc9491b5105f66865b3b509d7f6268dc1cd289e49ef18b15f1d5dee29a87ac79af26d65457768efb028ac3cab159a55d84c6b5c09dc367ccc7d08618ee09a3a6242fd14b2587e122b8f98bd8e8a2bdf6e9b223003c3c793f3a2b97681b6c5202a2a7ac5048387b0c1f5388508a92db666165fe932d310adbbb63c0eef2f416ae7160a8abe3d56cbb0adac320f3acf406462b999452a895746f93341fc983a3cae961a6204fafaa965700994a7213d3e1aaef3aaec1e5d9c2658c85d63807b92c05934bbbb7602f358e123f0535fa1a07a166667c5061d8684609f1a1010d6ed407e8581deebfd3a72140ee2c66658eb09961e3c3ba239b8eda3dd73133e3f670ec254bd5d6ada9858346fd5c910fb7dc10778dccf6e351a9a81d04062ff5f9c177dece8cc38683483dfb158000af7818330168dbc2c601f30ee8d719830f148d312cd83d89d0b2e97ebceb2ebcdb60d68c7ee3152f16ca1f249b192fa5dfff9bdbc4ee74b372f79b83653120e7b46c22c3ef9834fd23cb497abdbd20f2781ae0c0e462ef5fff9ef3574ef46e6d9df6e517d1fcd01a7a8ca55edfc6791e11f8b205c0e20d9d4a600febf8af991ca7910173523f976dcdccd332796563c3539e18a3b9cf22f2cad096720768e8d5e300e08ceba89939ed2d630b71338e801209323dff4247dd6cbbe95e164e5b57100a7163f0dae0b4f2ed35c7af3b33d9f24e1eba3c919265e0c8aaa2b263a0939ff86028f87e5e0488b9181b5ebff0cf876a5c74df97fcfa4b2b28ee2ce4cf6c8a4694f4edc50dc5c5a210ca0468f860d9644f3a69f540f1a2f1e00372c5c53be2a78be0a170a2ca609480e20a1b2e9192542912131e801dd552dc0414fb27a4615373278fd990e70139a0fac479ad9127de47c550802dc788185294a605d34244ab242465024d3ec3d1cc1692a627beaf7c9e45a75a3e5c1f9287490debde0fe9a1a1091338ec4ca4777f1b31d627a81a1218b805839a2e6c366857e0aa3b963db6e759aef9da9276d75c2100592ebfc380d6ca4517d414acae444021e64d0d7e8f1f6404913144aae65684e4185d67cf3eec8609c5a77c70e0299510037d818e5fc0e358cd70b752e18c2e9ca01036e8753194894c79f81d3754ba6270ccce49c2d01d043b6462877b993efe4643ad71845c1e6d299d9654b6cd0c7e3fcd87d36d8abcc9e45f1c90404b4a22867912ff1389345b691f09077ca6555f5f3beeab8ac40afd55e69cfb869ab538685cab1ec3b7b0e0a390a9398087973eb0d9646c1d0e26764de9cfd082a7d73c4e078095daf91053122f45aff32871c55915f420527057dc0f8b7cc56b6661bcee81220eaa9fc8ecb074ccc54e9b7089c17e03758f62baefbdb801fcb47660d3eb395015e351f47bc4ba3e15cb24242ccf453dc094c65da6522d8d923ce2e334b056745773cb8f8bd8f67900ad68b123ae03b119c656cc79b385ff699c451a845d52855e664f074b325a6b5077c83cec207e7cc5f176aab6235ee827b5236e6dcc27868669f180d8b2625f49b980024c86b26e9dd7f01b8df13f26e9fbcc92454d45afcca3b52cf8af9311dd0f05a6a97e2a327d876035520fe2ad83d0d14c217ebac20f04bba2427c170aa34906c3d9500d800a1dec89226711a098bf2f996f76cfa7da2da06fff1f17f76cc39026ff0ec434c3aa3a5934d546cb89e6b2e6b0fbdb26992eacb35baccd722465fdb8455c86a281bd9e08088287923d725637acda6b6e71c6ec8f9c1e0534cabedbeb22ca6551fd3773d13b32d51780bf3e8b0cf2178c676f954b9021c04ed3bc916b32c868637ebb7ae5b49a2bb88ed230facb0e769c6f4a6410194b4ff3e96b448e3d69b90f950ff99b1929c63afa33ca596f0c748294d6c3ec2870ef7f15b04bcf7030b0d0acff1a256d8111945cd6faca7e512fb7d8ecfd646bc8825599fd1b9dfe72ab4f4b1478701c2f48abd0ffbbc6305818343be2036879fcaf036f2481dffe7a8ebf787482b098c2a21bd43ebcdfe434367a7c3b31e175bf00b0d0f4ee02c0a82f57d7f4845627a7685a68b53f4cd03323df433dd1896a0e437b4fcb84cf1deeab4bddebc3554d6609a8f1d07a6e83c01c00f9fb8cedbb26481a17964c8efbbc2307d5764eae49bbd6e7355858dd31d3c5e1813ea6ccd24a01e2fb5de4c0d87ce11fedc894d8a58a9be1dfdb281a9949050f714a1131563145d2dd798f4c91172d0283561dc82a1b259764d3c18147b0cd30f36ef04a3a43db73e653ec23794dc7e9a09f9dc3659deb30ee062facdc932599aed7db6efe8c655d148650a37976082cd9975884327dccc3c12d3ed5849c330bb91d0d728e2c1815da2befbe41e7859ba37cb6f6726194af8f3fc8f78af2f994c84505af5f2b4920bc207a064d2fe90cf17a0cb65c55660f37c9ce6b493f25cf929975d911147989592f08aa4c69400d4dc04a5406ada93d9b4629bfd54a62a04a8c066a468919e8c8044e0f985ed4fc3b2da0eec76aa62fa713dfa28b9541d581bfb801b1c4db6b1a548d2ec6403941e4a1df5a2fef52faa868b5770db722c96e4aa60f6bc9a6dd6b6131ca39a62d5f411c2bcf6565b0db413f181596adf9062363da74a94a17225bb57711569b565188d20744a5b35bb094095c36910994801628c5c8d93fac9cd805faa1fd82fc9541b7546e838a39a8c4b4dd0b8953526ca4b67042af15c5657ad281732a5fc3de1debe0624e91660485d8c12dd5f4578b097589ef49280c31f3e8812e7d69175a0e1fb2c29becb5849a67697a0f4a54c9c1639dad4e9233458e9f4c965d72e6a2c3dcd02e202aef4c0a78dbe971c05f57aac7eef05aed49596a4ce1ce7becccf68332e4b31c415db60c69964ff710b73a4b205b596ab79ac737ec59c6badc9e4ced12d4af26d68901468cf08ed7900235f4680181a8f6f9e9b3728ddc0a3c5de0842386ae4b34f41669c8de73686ca715aa2be194d93ad4ea605756dd0ba02a6a16e803c2877135da1fc9961f7e2436a33adb81d087d399efa564c31cd90aa7e21536bfe96a84384ff30e502150cb7f868d24fbe5392345ba4075382f64e7ed764592d2a9d563de8bff41ba2003c4ad6f2fa04afa8a9cfb72c50a98d6d9fb0a84b19c828a54722a1a183a61173ae8b255756b3037ae882e9c9e5203d6d370b5ba220e0f095de1318d51fca661839294e1a76a1b3c1634f6e36f9868e135e0db50b7093b7be58dc2e12fc52904d50271525a3bde64cb87f32baa2ee36b3e379e9e2fae026152a2bd3c8d3e1240cd3a085862f468e1bc88fc8a75d75dc39b2666b879044753246a60b1ffc540f5ab10911a59742482b6eea323cd378b811c2c1b8694ce806eb2376eecd323452b4fc36d2489722567a9c2a95d73265fb98dad431cb3f506ac79e1a5c2c4c39946041d0f70a8feb2994a05e70f4de618b8ef50ca0b66cec5503ffac56d68cde1814ebddbd875e9eb8c5e0e4d4437975868fb76c494370b0a2132ed05b45dc7064fc70b7a12469a7882f973c109d6951c15b67c757fc9d42705b1476f9233726600659495cb32c3289cc3fe16acf74775de81fa68fdad9aa8fd315a4050aceb20f7a39ed09f646de37f4bf7afae733cfd2a60864fd84b74860a421b3d35e796cca5506317b4234f4f7b61cff0e13568ac3b0ae61e5913b345d011b7f3b3dc7b4003ef2c2d5938272b55433878fd2e8a0eff8321cf08cddaff656a97870408eafb12dc0c29a856ea14cc82a3ad6be41fe35581e3240d5d19361b4ab6226c7b3f36abffd0a8429588c0e59e2a00901c553d70756f103eee28951edfbaed79cd0472d20007ffb9ac39cbc145089af50da1d4ef88b7cac0b239599851bfe90c4c9a48fbd7f1302180b3e7f7580e3d5697ffd24633ff357fdc9502668b9405e1e38895fc67e0156bf9d648dc1640edc0aab81881871b9ba1e8edcfcf667abaf830ee4ff2ae1425b7844a80497dd68bc10afc99334d29e88928a758fe53f60296d51992f117c42e2b5bacf3606ebd8a4c302602a469a6c8abb08c15f6382464709b16848cdb57e00220079796a8082016662053e3069a3185cc0db985ef51217767e15a11bea7082dd3112b6e80db442b712302677ba96ea29e97cf1d7d3a7c2ae5150e8ed96b44b8264f8c57ef1e10fc2d355494f3c05e93d5e1e0bc081949745369a91ddfd347820451b9ad140713bba236eeacc02d3f68a19701d5b2bec90207e5751a0485318db0947b15b4f43d455fe34699aa652c0307a8472b5fa6541b44cd6fca4bb981468195a07eb36d858b9c1b0daee31300ec981fe561fa6f9d13ea9822d9eca7ba937a55b84b0bd7c5f1efea8fbda19f4e37620777fe279688bdcbbdd33847bf747706071662f66d4767b8f3839bab60a29defdc0b33fc81e6ae6a5af06f3673159a2965f4db0f1a15d5aa8cc85f6acf1b8469aede9d1197a3d2a3be48ef0030cd4cda17a6a90cd932bddc43090fb22255e5b31c4b33ff8ded0a14e8a1178894cbc48dfbdf9f69f47491f45c347a4a1f286d255c308930cefd21f416f6e839f9101a045898f2d328d8f8c516c5205f9d487dcc4e2d58c84280c00983c8a06b5231caf58dd8d10f276cbfce5a2f2947fd5e8486601887fa023b6d80708d7912c073d86aa926b31f358577bf05a5c286c4452e6c956f51c9436f6aa987230c7c1c81a079960195bf4c8e0d068da7cd254ceeea852d1c8c1bc96ce0edf24d38c93b60acb9ac78a2579ba62f8fce5a341bbee099189be3b6fe2bc6cd13e3f575dfdba001348909450ea6ce8f00eeb61b4d25b0ddde58ea0c9a07bd3ed8f1a6b0fd92c9a2b873610f0a5422b74dd9654e991596bb5629b2dbdc1d864f03c012ce6380c5252601f33ac55e70d0a0d0c32748bdcd1c4795674dae1c9e2d603a052ec27e4ec64d618125834e3c85874ba14412a065b0db416fb722270a1e2a5aed39b3e798ec10f96c12d6e01608ccaebdf9cf6130b6e216052169039a3c0f8c8d224b9471da888d0a8289a403d61c77b90a45febd3556691e0b1ce18688646931d741b63e37809ed5172d8c2ee1717bd668dc756e19f375a7bdee9feaf125230714ee280b4c01ea157368603292c02e8bc14f2bcd292ead98d5b7116cbacd5b949ccfaab2e8a9092dd0c3e5447a7d78ee317bb88a9247cc56dd9be3aa0c29ce9d60290964fb77b255e8b8abf91f97a34ad92c7a11737a555939c4ee5da369ae20a71b49410ed319934bc64d0f6dcff0c77639cd30cac7fd72173cb64247b568ee41b7db3520997223d5c2247e28f5261953e4b9246449d9c82c65f3ade89055e97055e15c3128dd8d54d78b5c427a0ef884355a43170731b9005b1aa57823c0209054dc544b2259fe3202809031dc3eaec965e5c8cae709743cae7757e984e5d67144da311b898670983d1e1fd6d55e7bad4bf6868e69efc7eba66fa9d22e99147a33f0c57d9c251bb66706706fe2aa93b6847dd453643451869f6151b1b1bbb55b6c54e93e912d580fd848d1074d2c06d59a18e98ab1160fa73db19d6baad0f1df367ad2a8f148ff37a50efe270c7b15897d10434e19c8174223753f8de571db54c6144dc4b7ea0a42798620f395b21fb65ea58c2622c42c6ee001200dd0a5d64a2bf0944c07a27368808710701b723cab700c05ef5ed190c6e5a1fc8987ddd0187c75be7e1d5d1f7e91b9651fa5e8f5a627b0253d1eec475ac612b25a060891e1dc5814e63d3fa26b670ec52d3d9895a662464efa710e804443978d0be705a327ee4f97aaf3dfe707550f36fc068b9568c110a0a1bf96522d30adcb7127cfbda04771517d57970c78da54561b5b4f9c1eb0f65c4198998b0709b797982ef613a6842c7aa6ef1d9829451f900d1d1b34d619a5b27014913e67376ae1d4d262261061078b398621865452e495e24b501180916dfa47b2e8accb568da7d36eecd19ba2873897c8ef0ab0ba70b375864ff70bce80ae5538a3e91133e52665d0e24f3584407e3e846b47c39c5bb57d2577515d5183292f58f9314024902e7ed5985151997db3ce10c4c5ff48ca399a880920da2e81e9bdaca6bc1c541d4b0ac3043c1f176fee7bb58fadd4302d49956f02584397ef23acb0260c3b836b98f49ecca203e85e03bd30f856ab23d29a4118f16d6c5443add6d6464c7ccd5c726fd279f926726d3eac80cac1a82beb8881e5cf022e3149471c977078279ca7a33ddb8d3a5b0f7439da7cdefb6542b5d0d841f9fa1f51865523f2cb048c38720a2273c54f53307082dafdf12ab1be75c74e28c677a3a88d485cc8cd45054df88218295b5e828d1dae54ec46e1c47e3d227f18480e9fa09f33b8ca63c956a93d545c7b97ad575ee7c6e6be32762d7cef7ae9b744d8f051d0d63df8f70613ff50b37c885c84c1f0f371b9ec4f2c1c632540cd949f9cfa134a719ee6760c14562640eb41a75b4aa785e8701b832c4ad037fc5ffe1f3b91c6f5fa9f2add4fd3ef2a12a5cc022c6ae01639ca781c507e4b6750b13bfa3007f02bd48842a95c27cffa4cd63d49021574cd71a5f622232901f0f5b11db8918159a556cce76ac789c6c75ad5b591ce12d0fc09d3b3f40072a9828c0a86edb1c242eab38da52130de810167164f4cce31ee3ef6f0acbb7fd365602b6935e5173af5a4564d3132b26724f643f913261a9a76ca23c1e7a1316923b4e129580490c819e8301dfc73cb168255b007cfc6380696016689ff37c41f0fc0d18216feb0768b8eee2921475e22be89beac907d1cc152764043034da6399765406aa00100e1a0ee8bfc650ae2b04179de136ac74cc40fe9d0332cc722d4770221ffa05f51482d63de511a71dccff1417fbf471cbd28f772103529166e212b6a5502254ee69f29f5eb91fbf3572100364c0316a20b92d38b60fe0139c6c11c1e52f8d47ce5603bece820f7af89d615814d74f314c0361937774d705e15c300130159970c85410ab69acc1459aea9ce9d837cd7684f842506f58ba0312b22d3923c7097bce0b8cf8e94388ee7eb56fd5f611a354acc37849e46a0c6c0ec9bf2e08094520fc3fdf7ddad1213a7e051edc5407c310eb02db7445aa52a9cd094c1af878885447b2b6000b818e8f5cacc3a7c9d98284e652f9177ec8731f636a93b82d606143aed9fe8f8d5fedee7618c25df407ec00bb62aa70b5c4ca46d87df84062d481ec5acc7a9f32d7976d5079936344918fc458d5831b71f513f60cc01d6ab234cf45fe8f84618be66268facb30b3a57930d917073242a8ccacec2824a1af3dadce459654fd03a322101a4d6ad481e62be143653158cd061f5d8a550da86c28ad503b164e5095826c2247d92283c8899ac1ed8190d3849bda95ef540fd7733107c8d5a654142d7a5fa0fcc52a4ddd5236c0ec6ba63d294ab1eb136bfb627d81a220b0972fafb80060304001e3fe005cb050ac52a5b606d88d537009116cc356dc04d65070e07934f71f56a066c3bc2c8bba30d1013550f8733e78daaa79019b4c9b37a7881db48e7ba96bc214bb64ddacc28449d88a9cc2c6524b0b13a76f5d8e2d2d553f73db57aeab837b3d0d6d9bb99f90a84206873f0b0271b13b07cddd5b30300ca6ee7fe1baa250de781243ac04d69b3dbcdbf7258b8e8eac9fac575b90295ac6979824b47f5dcab654846a572e8d62103490758ace701b85f393af6ea69d744dacd35d29066c37d42cd13ee79f574161bb322559e69f5341ea4642ce851ae1a680156afc7649f2f2647a9af47a6cf476d075d52de9c92e1b9c8372a5357c60259e969cff4345123c1139a28faf4f358015c0c6cc226bbb10ef823b15fc12f4be0e6e9a460cb34161c2b1672201d7b1cbe67a9c32317824ca528c3be4ad75f7c8e850f7978d41ea04d6e3373f075d87e403d73dfa775bdbec2561f1877336b4be2f5f3f137bcdfed42e29dd659a50709f25b031b34e7418a6a723c480d7c0d6271d6929869c324fe7a630d49ba88d91d547c477b66f011f08dc884942e880e746c104d98a60efc9eb465a04752486df2f8a5c042c54b942592324fb2baf759dba84cc1a07be08199a85642e7d118be33a5a47c2c95813aefa8567955b3d3dae737a07a639de96dd0ddb2a87f6b13a7b442650c5fa5e50427f8f8671d03b5bf629afc8abc647090395693abee2aed785a3e51543790337ecf59f34e2dfb8f961d1eeac1252ab8bb23c00e9dd267f2e5c982ecf8818d281745c6e88eb6a8bf95b731b5d27f944106aff2849265941fde411c827632f0d8631312b7cf34cc88d968087683a39f282420c28bb809bbfc9ad7b642093d08f2ab7003c97fde386104ac5e2ecf304a2c048739088b06575d8e1f41ef4f4ea5088271782617b2b989a344f09b50f9c67953547d0f5cad8a93ef69612020e83c660841954ff0095cd006ea868c1d7011508140140a882969045d87e0689b30ee1fc083b9d9d13e38e0650581e817b00d935af926ee7b6ac40d27a442841b821da606bcf367c6c94cd0f3c7c18ebb3b75a321efb4b475a50e8d84003b639ff12fb88a8239030519de060640233c016d5177c87759fe4ba40a64240a3f529aaad661c602dd0990c23e98638e9d15db318be040225671f07320b1a7c6a80745fb1bfe754e04f88bf8e5c4ee90e0b168a6753379107a0955dd8cf3fa760705d7fda0faeed7ef92d027ff58283b941bd80e0ba50e2511a213b63ffa11b36a30261f383593cfa5a92d644d22c82f10ab851aec38bbcba51df105536e3530c2980f5e9b258170c2623715106d6a65ac9334621ae91fec3f5d307f2b4cc32e6da8b9bc552c29073da51b0b508839f1a7a0b8c819c4b162caf577078187c0c0371e48a3a64ec2eb5101c18b7c405eb69d5497fc5097fb46ac7558b73c23eabbadacb3ca6209561b3bec47b023522d1a07c3a9c7bf15a2656c330212699069446d1727525e228e452a8c018c36f8efd6a2806f9ae63946548779c41ba5ce6f79b27c6ea2382a49842f59a00a41017a3174eeb56c844b2577f206bb3db80aa02436abc3ad8aad35bc35750cf94fcd2dffb0eb4f0245bbe76f6cf66a817004f940addfba492c53e886a0a23c62782defc9b3970dbb72ebf3e55846889d72beb3775c0f3877f417ed794b1259e82f14d2fbac77cad9440e5c9e9a412a2f27ae77a4fe5a2cd5a4a41b8f10e3295092afdd33aba87841c4d8813efc9b4f32c81b6bda1dc474ed90f9e6dbca9418ab2cd85ba6f0ab81303e2cb0b810914325e0c452489951f4ee774c360b4f7ecc4b59fd136b71ab6986b0cdb7f2afc01af1228c78601652602ef2e56a29b3b614d8c07cc9339d56cebcbf3096eeab92380dfe842cbe17d32102a98a4090ac6912e59534be0f8fb1661659e949f0db3b2012cc11f72aa7a2cbcfc0c81a24820b4a8335c1d696cc0ad308dd4aa984f1bb8ef9c386524e9415d8403abf13c51c3cdc06462125b385a6c40f103df2076bd02c965b56124a02be1373755a9c08280ba2d91336d8f9b5140c1ab6499ad1d07cfd0021c504c25953578666842941bfa37be9b4b49e14e7304e7e1dd3d1fcea64683e304d0775159c823b69e87cddb9b879d1a61ed2970162112288246a98a8047fc30952fd001176756959d3790a023f40c0602950f6ce9fca9f200870ebe32ba2e5473a60d0890b58bc3575fc030489dc9064572bfa7a48c46ce38b430d8c28f160cbc1700b42b7e6ae4908a7c3935f7ddde7955e1ede21df56e619c3515299589151f160e992dca20cc7c8c6ebe7102f6f7161df5b43078ab65df97bbf7d0936f49511e8099360d5ca578531c11cb3ce512bc8be272f7f270f0afde4aee332b535eddf06d192f20b2c870dc3b2352270a9ee3d07691ec0a588d2079d00198fb149e8cb694b1bea80aba12dfdd8eda80e691782a92413af5d37b1d538aef1d83ae3b72cbc634ed8d407697f147529edb9d4b21f8d18038ec519713e20c71ce6bb1e0dff834c10a7671e9fbe325de07c9543dbcdf65043ce6d0b3f7f3a74a05fe109f91f406c04c29f7dc8bb09d2651b9a72d8c0475fabe4e44a28de9c31d3bb8e6d2d27b89881c3ade834c05188056a6b085738775dcfc9c79ef57b29951f0e5965cd32d916823401725c89a5a085f5f5938c606c69107d74552c0c459bd312ab375132c67dd08fd042efb91661cbf720af110673e4ddfdf61375377e19ddcf4ed5666ccf2ef4e38d78c31d5c19aa15947c1eaf5fce74ea2a82cd9369e594d0aeff03396a208140407d9f52ec10bfbae7ec80eddf2f474280b3e43ecbde1d5fae36487c2f0c305dc28e354eb99392f275bd2a2c7e073054efa04670d1ad3fb338fa6dca5c6a3157d544b91a9e9b1e839d552bdb0494d14b669bbb81518c1c77038bc0065b60b093a3a3b30e33c1380a7d5695222922b5d2070efe040519e8e44f344cc7dc284211a3ed7e980153bde755d9a5b1ab6cc57ff47c57e3a7430c006118b94ae3c6256dd864e54b7159fca456448285ac50957ebd0da9f46f23fab9aefc42c4fb2f1a973c8a1ae8e9c4d85516fc2904fee7f9360867fc0dee374849c77857521b1611b1b3bd33019b56ec9569ae81616cef011d1689e0e2a916142ca39786f3f5863757832858c130dd67ea32d0dbd46e62f799f0c7b408415db918111220b8a30563a36b52e360aaeca148f15fa028412b11b16fced79f11bb377fe307741aef35711bf66bbd97abeafe42b31ed9a564b6688a784ccaa6a0a0014ac8d57c1b34280771f944fbb7dd43c44978a581000e02380744be1f065483a9c11cf84e263cf600361bd1e4a08b1b79952dfab4a1aecc37252044a0603145ac1b31cb4ef0b1c01b3cea08cbc2433ded18e301b023b8759f8b6a9447f480bcda25ac3594a4a3c07c772a42f3923791914c06ae89545b8855ac9fe9ad0b34942be367ad21a56bf5595b672e4bcb6edd7ca19ba272dcc1d514cd6fb225deadc52a895901fbede20bbfb6c6cb5dcbc1074e5571c8b3166d198b2c509a53675b637c8b71c4b5e02f8fb57ba734cdad645d1cc9860e96f41c1dfc594d32279528293764b23a86f16e02ad915b23e0a8ad36dd76c3697459b908a052c3e566ead3a65e4454c251bb0d453cfdc5200c4ef4aa6e608926ba5af3491ff2e66bb146d7bb80d7ab8c301da4b35be1f34282b59a6cc4e58ebad3e9c1d6911901e1e0d9e9b4b968799825a2806cd412b5f9444756e837682eff9fc5ddb05e6de8035c724e65ed27bc9d78d52a02eaa59353f124c0e4231e8f7adbb1b47adecd5c89968ed72861c463fb2b5b962aa1e25109c093c4820090fd77cfd4691c407b77b34591a00140a178dc6592e7447ab1a9b82e166d2c4fbc275ff5cd0446728968ed3e6492917d3ffd8564369664703a26b4aa20e7c26eada9993857f36086bc1a7cbfd3591bfcb94bda38ce57c10b2ece85668775e24eab36c6a0eba74126075d0aa2cf55787df20dba9cfe7cae5d0eb7dd9cef559c37b906f4ff4c6a827e930d170234ba1e2c254b5c0b0d525f723c9fc5a666f0220498b7b898be3669e58b3107003b83d3f670af10a33090b38aec5af5b97b1e63901119969c72347f6d2166656b1fd7940a24b1618afbc9e79c0d5c8ba02d90591bd62732abe5085d5ef9d0eb7b5be6258947109d744df4863e120b5ae3d4340f8f2133006b23a120866290142cbed0824fddd562ed9ec2f310743dfcb6248281f27c69f4c3382e897406ec1adf6659e6cb69b1cefd26280d81b4a25ed5edb6d0e20bd7eab9e119fdfa7c271818ec6e37665a2ecb3ee195f722e43548ee067fcc51f7d7d613493473b358cab0a6780b6db999aab8cb7f5b43a84de9f27644a440440e766e4ec2e340a56f7bbb9ed6997555adda0284e39ffb89345d51a375bbb698270b78673e26c310c96df2c4abb29c36fac8ca35fae88e24a465eaf6236b173710a4a533c48480340faa596810a1b6ce73fb45d4cf4436363404d3d0646b66abcfef77ddf98355d65f533b17d99c25d0579eb96083bcd4f6fafee46933a31ce95f87bfbba8b93ad9ab4851e06ae98500e58de16ef49bc91760eaacaff708d69e57c6effc6d54566f89e53cf672c6957dd976bbd019ad0254a746927d1603784b72936dd644691568b78c21509899b3e9a8991b8bcda17af53e0c2433252432837165b22707776d0e30e0fce8ffcb8b23311223d183c74db9c4fa553a9df0795d22a71e8fb61a783a55f4dd21dbf5375918357e9cab4220a296a3b85750ed1a8d2a0e287651e02efcbf79ff3d351a3f8e9c396feb04485c84bfed809da93e439f4e593d58d9fe1d7d48a89102f53b905c70ecd7587a5936282605ddd4894d23a23d2ae5f88be6b77edb5a0656786d0193478810e74cf61fa5c44e93a2c8b45045320cb881fd477c81ce01f171a650dedf8e3213ea0af51cc087f02ed41ead681232b12b6b5a25c96c00e259132506377b65463b215bc0181ab0d3b02159e2ec386a898808cb0e4ae6a13fc55ad1bbad2a41ceb77187fdccc517244396ec2e8a23202afacece5dad10e36b917689ebc634566c2f14fd08596272d0082300ca640acc86a5ba3e5fe88906afbf0d2fbb0009c25cd4b9d49bd70788f2f7feff23cefb8336a3d8e0dd491c4e7faef308aa932b77b09ca66c03178aab984c997394e9c991b4bde5cf46c3824276a52dcebc8bfdab0bbd16b011c2735a4c43e56b29a6b084ff9280aec5cd906f6a0d49c69e0e1c9541b8ba3c3ef69ca705c91782d88d9f043031d99177c55ec5771d9e16381485426395bf66ee39058c2fbff3fd87f1b23441acbef63a39d47393124255e3deece2ba8f9fedf2f1b7d941726fe8a56f62ad4389e7e7d0209a19de508e6a0e2cceb6a24c50db53f37308466f1b6246741584eeb81d8058a513d1140f3ab69d5e5a1597a9dc691287114fa9ea102b54e3ffac7c4e754c57a374bd649ac3d9f1b02ad8c126d02e072415e83d60c3471506264a5769d95ab53bf093ca58b856d9aaf56d980133059a5485d5722ba46217151594e61a803fcb7909c68789ccf82fda97af4961668c3a54a804ca104fadbed59f7fe54c20b3c343403bab7c02fccdcf8ed164bb70b78e14f79f4b3e8e321692263ee21dff94aab8ef73723207200a0ba7355f8b724df42261c77402f214c8d4a1170e25f2b714a7c123f1eedb3efa04908c26b90a6e780888695486462fea7e039bb2a912d37a714d020d96a6898a45d3c8b9cf60c2eb95dd9ff87c6a6504399ab6457431375ef87494b17555cbb60e9d8450fea6eb15cb98a2514094afdbf13d337cdc397fec910f050409efe461177cc4740006e1f23d6156abd28fbeb1bd06214760ae2998dfea7ef9242b9e1f581508d324cc7602dae3455f5940d8d5a60d0484c03ff1fb0bd02b73e42eb1cff0d0a717a330ffdbc2a55e1bd95be96a0c174a6caa62200fe5def184a92348f42ad03e3ebd4cc52bd742868e8ac895ff0413223251c2e0f7356277439266641389eceeeeee1dc505cf05130634dc1056b164cc983366c80867ccc01b2c7a23da41daf54ccb324cf55ab026bc51ad1bdb3b5fd6de7883bb7a92326f73a35bdd344a699c734ecc25939d95b70d9fceb0f37c3284326a6ca4b7ed4ceab44cea37320032dc6fcbdb0c40c6b6204047809c231b202320635b54965c991c208bdeb3de8e957f9f1f4b68e3f8e9f8d7a70e77ac68b48336441b37f0183c3ecbf6d7ca0800168c3504d3f0f80a0043c7d4a14346a84307defc78dcc9d10f6dd3609493567b6987a185c53c6c0bcdbdd506de88f6d7f276ccfe0f782ca4ef5ecc93892a1da1c718638c31edb3eb120039623530e1f11330b3294044c3e3ebc0c0e0f1af00e4b8398c8b6a2fb6aeff8c3101da1037d626ffc5541869635cc42dfed8780b70c7ec3018b8c9d3f12b1ac7c11ded7047b9403bdac9513d59b452f14619151976c15c5cf265b9b8e00da67a38b25376c25437eaa9864c0afdcaecdeec3e5da9eb3a4a84c78794524a29adb5d65a6bbd4129a594e200ee981dda6024b28466873b2c4a29a594524a29a535ac4052e923bba9c40453e4d429a59452da7dd77dd191ba158d9b44787c8d524a29a5ff298548db0aa594524a29a5d4b29ebd103f91003229946144bdad0b9957b41069cf39e79c3f43309360ee1aa594524ae9a694524a29a5940e800019a6e69c73ce99a2f13568ac56abd56ab5eab6004693aeebbaaeeb2cab5bad56abd5ca860264d2861cfa783e423364a8984c2693c964ea565c71a4f7de7bef514e5a2dabc318638cf1bdf7de7badb5d65a5b6badb5564a29a5941a0073c9d70da40db95419416a21b19047f89b82bf9752bc9144bd2b8b7434ab1a4ec2f4de7befbdf7de7bef1245922889922889821205a515787cd016638c31c68d54ebcae71891bad07e1c3e52477b02f2b61fcf0ac8f0c96e761822bd845d93dcc12e77df853a52ec477aefbd4393c96432994c4d7cf423bdd3a0b5d6524a29a594524a056412dc919f126520c30ba3c9176fa4a19de917a5958052afda6272c8f4de7bef7d76bdf7de7bd792a4ad685a3780c74f81f55443a45a49a0185fe22796e24a8471dbf28748a18802d1b0ea477aefbd83602a95caa9d93d1d2bb39bddec66976232994c2693a95b71c591de7befbdbf262d2d1b782218c65bf1e00f881b7cd20ee2e1f8715dd7755d97655996655918638c31bef7de7bafb5d65a6b6badb5d61ae5a4d58aac6b5996b5c92f4a0087980aefb05f8ab6ebbaaeebba2ccbb22ccbc218638cf1bdf7de7badb5d65aebe3c53cadb5d60bc87043be41de801c63177109d108518b88057f1f8fbc918f58633fa554313233bdf7de7bf7915fccca8bf90fbd1818ffb3e57a82f594eb69a59e3e44dae48b941214823905145f40af751d0966940d85426d2bf8a3715956d2381a68d8fbb302575214ff5e0d0241bccd2dc01dd909da103f863efe6cf274fc47243944f3497f6d3bf21f9b09cebefc8a79db965f326fbbf21ffbb55c336fdb8fcd448d961f5fa9d8b6e4356b1c9c82c3bc6dc8eb498e70979de08e20d006c8e11cee3017de086bc2c5394c85bb77b1b5c9bfedc731951cc1299e08fe110e51bb888703fe6f2374d8d04482a719bb7befbdf75a6badb536954aa552a994c96432994cdc01b932d15bc4539422421195280319c2782368929446c94d691528e665b619d9655996655946bbde7befbd9b3693c964327d48e33a73ce39e7cc38479e73ce3967966559966599474a29a594b913bb7ea4f7de7bdf6ed000bd7cec97e69c73ce39e79c73628c31c678257e0c45524ca552a954ca01d925d32e835f4ca18b251881bf875abc114c4da8a4d65a6bad59966519edbaaeeb3a98a2017af94d4b4952eae5805de0f1b37c4b7a05f41fca9f8f5f69805eb6fa9f7b573a4cd2b82d6730cbb26cd3b21c6fd0eee9d83e3e6d423bdad18e76b4a3dd768306e8e553eaddb22ccbb2ac15edb59046d2a09635b85ac1155cb964148f72ced07310058fc029a014a5e72014fc4125f87b23de08aea8cc5996655996c115e93f1a77a7c0e397344e7f016a12c6ea431a1775b0ddab3508f4bf91b4e7441a070b261918f1b1888f349205afb94d77d82193526659e7b93d5b98608223c57356a0823f4981f678b82d5b9e780246e5031639c19f10f11a05cfeda8830e25c8ba1c99e0e3c35584443ebe469d9cfc5533b7614b6923e18187cf4e9bcd07f5f99514451a29d2fff45f3697361238c5432ae01430063f04066404afffba7883c487e7112d1e3b398235f8f891468e5af031898f1f6be448c84768838fd0f44a7c7cb94304664a8ee012dfc3c79f34720499f8f873254770881cc1263ec21bc81174e2e1130f61fee3531a39825040177cd4e1e3632a2c468ee00b3e3e262347308a8f8fcdc81184c1fb00a77888838f8f6b70b02b6a8a5d79d8f5b46bcd0db6ed61db1df64dd960df991a6c7ca2c1c63333d83825837d6ba4d8f75464db1922db9e62b06b0a06fb4911041e46b19f14e5f0f005fb49918fd7e1d5b8a0c74328707808e3f2f009254e6cd8c47e52e4808743366402d22cb125b023b07fc4192536346d213b09d9828dc43e6207d946ec22360bf693a21b7e055b05fb49d1013e051b059b887d826d825d824d823d820d640fb19f1489b8fd5a7cd8a5bdfd057369d7f057cca50d80bf642eed95bf662eed1b7fd15cda36feaab9b4b5bf30c69b5adaf95ff6c33c88ed895be935b09380e081d819104108fefa61472e02987fd81004fff222d042b0731134084a2fa51fb4976db9054affc30fda0dfae5870d39c45ebef44a7fd9fcb22bbf6e7ed9945f3867607be02fb0917ce0873db90636cc6df9c007b189780f07e7e1a520fefac01ef2e39df8961f5a929797efc07bc003da0dfae5e579440f6cc881d8907740062ffd7cb90184f6e2f6b225076223f9f11ad84984d04052547a0bec214938f04e7c4b122184f897e7c05f17e6c201ed062dc43fcc4588e7113900f94b4988d20fda06367c384a1f8406b4d267e0c703b191fcd04a8f81c84bffb2e3059e97de02bbf415d84392bc3c13f60c6738434b05fe7ad920537ed9da6432f12be6977d4d26130f6d9ad013f897a7c05f1bcc8502da0d7a027fc14c810df9c326f0b24b13d04a73f3a2953ee7970df90fbbf4d7b3b00d2784bffc4b6952fa4e51c62b608698604acef8621e185d2cbd078627d303f252dca20f1329e74d8630979029053fb4dfdce02a0a98788a348035500cb88a4ab2882898825ec8c00eaa2012600a7657ae16e364f9324193c96432e1cbc29665599665618c31c638c668adb5d6da5a6badb5ea544ca552a954ca5e1b2488655996655994524a299d73ce3967963bb93259c9d56ab55ad5ae49d7755dd7614a29a5b4d65a6bad94524a29ed7850138542a150a868857befbdf75a96655996e5c935d218638c51628c31c6b84a29a594d3b22ccbb22c8c31c618df7befbd97524a29a573ce39e7b42ccbb22ccbce39e79c938491b62da3f23f0c4aabcbb126621266c88c3176db1637b94d29e5155158546d3871498c596433cb648459863711052f486fae4c6c862bb85a555bbb15571ce9bdf7de7b4b0bc618638cefbdf7de6badb5d6da5a6badb566a88842a15028d49c4182743ac618638c73c66227bb4e1299d65a6badc518638c71adb3ce3aebacb3ce49e9a4934e3ae9a4534a29a5c4643789dc7befbd17638c31de346badb5d6d65a6bad95ce39e79c13638c31c6b5f7de7bef18622edbf60fcb524a29e79452c2ca84c9cc598431c618a394b2a5a5df7befbdd75a6badb5b5d65a6b95514a292791183bcebdf7de7badb5d65a7bdd8c6d31bb8cd65a6badddb45a6badb5524a29a574ce8ec8bdf7de7b6badb5d6da7befbdf77befbdf7d28bb964992196ff615b9e73332767524d6736e78b1df6de7bef530ab1c55a6badb573ce39671789c82e08bdcf1dccde65077704e9dd5a6badb55dd7755dd7f5de7bef53d2de7b87d95a6badb5b5d65a6bc5185b6b6796655996598c520ea59ad6ac9ed0ae86fef302a2417b7c2f4789069542add5486409e9f89f63c841d256b40ab59ab5c985d9cdae65765d76eab1cfae070992d513a594524a6badb5d62a29a594525a5db6cf44405a13e5cc9ba3349c8211b7483b0ecce289ec4ccfcb4ea007d7c44f448929d506968ce5853503a1dcf4296514686868045084cbbfded3a15f25453457ae5413a6f3dc2ca2a2929112039f9b77b4794e8338fa8ab84954dc644a7f3852ae8e4a8eec8c14c98f63c4c01dd713ec8c1c716ed6b81b6738628cc1e55f7a5bce9191231baaab3932526a9c7c6b85e6e6633d3247b2791b2a29b5d61aa7d2b9b4a1a2cfd5804a8991a294981d0089da0a9a93d7bbf2b991806a4071c498307a4947266e12ca4d27a6c305a59d18ad3b5c74967454714b394203a2344bba07a6c663dab61c27bd29a594d65a67ad95019bc74015039d3cbe3a9aebba249fbb131337c945bc0183d11adbdc3bb58eaa0bd868f31d2e3aaaecefaba8224b7ebd23dfec2149f2bd0fafd73abfb6a17a38644a4cca92b8d1305464228b8a8bc882a2b224b2709f976f4355034a8e362fed7b1ef1f318e531e682f27998ff3d1e71098a66a6f3f7ea1497f4e74e9189db84d1d04ad11abede40644d8a0fb865a3a5509a8e4a4595b2248a644a8c3dc284aba8a44a4c64c97ff25ca7468e5eecd0c891e7e5775672d4f9c8794ba486ccc989c601913429bbc69228923562baae11c3e547ac478d259f123386fc2a2a4ceb93bb21af111359b2975f634996491ace23daa8f10597d8e3cfe753f66b81455661e811c8955e69bdca1c5ecfd5204335d850719912439dd07943151586fdb58980998a0a7b5caf38ca63dcb5447e47a59f4744d9fc6723d9bca7b33b9f7fb2b989e27308cf34ce732de16cf8704ccd51c225e73862f08e8a8acb182ebfd680e2924b89b132022872d50134a18a2a661349052ad0318c500baf2b661a5dff925309d3b2a2dd43925cd6add73527a5d7d36bce6b5a3fe5c472de7b2dcbc2185ff8563a2dfa16e642bba87346b993c0b7f4af9cf3c573525aeb15eaa49948a5b5e25be9bcf295749fa84e54275c409959f47d0cc35febc5165f0cbb1ec35c2efadea39b0372a99457de795995eec7e1b678dd48f0b3e86ae5bd8f31974b45c516e30a37e6b752b8afe5775ebb392d10897c5a95686e23c371e0f08d4cdc4c72a461787c2824424b4306555441853542c57bef456adf5b7befbd36f00b37622e537ac1dfc351b7d0dce5efaf795defd929347c89e170f909327f717bfbefe54cfdf79ca4e16f55334d179c79d79c1bf23a2489cc4ff7256be494339289e6726ec825e472468e629c50ce0d570497da1422a515c215ffb228cdbd181fa538a21f21ad73ce2a6dd0dc06335fde88a2f858179acbc165c6410f39784838613884e1309c476cc1ba905d8ab02468ee724064cd9499614851f25f6828e39f4a8dc361c26112591260a7c0e906c988cf001e91bb30e0f1390678a1ad1438dd8501c74aa1e3731c4ea72889e27a0ad0cf094358c29f1394acbec09f13b4307194efa428a5b9ecf4b2010cfcf0f13325723424091019f8f8594a5ee09db82d155045160a701113592660811fc20447034140d30f2560139bbe516d38260e47c5e9b4498e82c8d1113f42e2e3eb6ee3e1c53c19eecd708f867b2beed57010867b0e1649e23978e2208a834a389812f21c8ce1a00c9ce1200d07571cace1220c178b70f1c4455454c2c5141763b828c3c5192ed27071c5c51a4ec270b208274f9c44b5e039a92485c4c6a723f60db2ef8c14ddd43dd5589b720114bbd648519d6962c8ae2829aaddb4710ba00ca014b008111803238a60c10a549002141071021394800423003204841102a76022890d6100a378c1121288800f3df0b0830e3f489b839cf417cc62432a84008487596c18848f4afe8a52ce2c31f8839f49b2d850084f3117a8c5532afe7af52afd5ddd1a1f3c77b1784ea39e032179eef9d683e736bef1e0b91c7ccb6440573c7739e8df0e9ebb3c64c50dffe4a88867f9274746fce8efe9a6e468878f6f676c4d7f4ef39523cf5dbef26fe5df0d1d3c77f90d041cc0000de0f18f1720870d6f8bc8910edcc7b739a041a38ae7347f23cf5dfe1d784ef3976c8227c0e31880000220fae7e35f0eff20f032a585b0b393163b33a26467a820ec2c0b20ec4c49929d11218b9da5e2161ffe606748885bc41df481c65d8d85c669104ae340ff5b0f346e833cd032193992287885267375778f68b06b51071acc81a6abd0ae91d8018dd317b76d1249bc44c519401a08f988c473fa88d741fe2473bbb69436921f0fa980013c2216a3b979ea747e93a3c9f977a242c991072545f1661e150401a1a053a7468a3c264f86da681e8faa456523317fc62791c07c191a12327efe8c8d84cacf788f69c67e5284c1968b45f7162c0ba0534643f9e419e291b1392a7ba2503c0c69a2090f8c498a7a789478db1637980f1e259e283ea70c4f14f96603a335c76ff1cd5f335bfcd64fac07e59bbf68bed8064667ef193206d6c31385a687c4adf2cd5f75e3313d1cf1371aa70673c19ed0f4b98cf9005b66f03063766ae468c6c77fdcf30aaaf724459b86e7ac38357224e3a3c713551e45e3244d289fe4e85dfa5ae334fd4c3bd1dfdcd39ea151adf33ca247761e93a70827573880b47985f6e2669fa3d93fd142160492615fc53ed4e48c14d9ffc8c2cd1b9125829eeece7f3e7f3d8c528ebee73fff64addac9773627e464932097ffd98f7bec53cc855e298af451e867f23b9d4fa19fd1470175fa1d8d0b7d7d8bfd4079fa4f3f0d5f35d049a3da109dafdff94f0e9ca79d1ef00cdcf39dff7834fa9fe7213bbbf3f621a0ffe479441d3e9f4dbfb3371bee881aaaa99c3cfdce7fbe6e9593f77c7dce5639d13ceff9ce73de53bf4339cf5b1dfd3c62d5364d68fc0fdb417f471b42ff893644ca779e6eae6a9ff2f6294692dff989e590a2bd50fd8ec6d1a04d9056294d82538f67c38b93eddf6b8209c32ff657e7847edef31df9c3a37d2aedd01c22a70fea9105d431c9e906f5b89de873209091cd63d867d95f21adf39fedf9fcc370f87c76f6275b73b0b7efd138da10d86f306df33c64f63092e43c8fd8f987753e13e6e4398ff21e8f76f228cf91bff9ebf5b0f94e8f934ff9cfe66e11fe798fe743a14d13f93f7be3849e303cd33e5c3e7d36ca9f647f7d8ae7a3b602c8397fb21f47d91c10fb1c6d88ce6f1e6224f99b7f38783c1ecf77a07ecfe6af983b9bdb3c0a8470cf73aece7f36a605dde9bc67633878fee479482ce3c0b160c539fb990664c2f0cdebb75ae3847036dc6cece5e7cda18086dbbf36c78215b76f6dee881a6e1f748a2c156404c315c01c3e5cbefd1c594810ff6a2a0325092824ce4f725d2c5a82d1f1806581033126b411b3473883376cb97bc2489a396910592a8f3fe79cb286f269829950bc117ca23927cc2c325f30a398503c16f8b619792c02797c3ade06cbb96fcc715633e8d96347e6897d39e7944f7ed1c82f9be586fc09cddd6bbec6412ee3f59c3d599d144525376238d0dc4142c57a40de31b22dbd9bce13dac4ade738327c269b417772c4b9576b10e87feb780ebee99e0ecb39e5313477673832f2b5648e35c35d235c87085ca7d3a9c944162b0acd793a32fcd990b2c6e07a37b80028e1f7b168f97c78efaf67d133bff71e7cefc1f772ce7bbe47e99ed75bf3c99a0b6ec8ad1e8f630f37f6134643082fcda2e78666096d034575b5ca46e7f7ed0f347efc1c8d191a3372149291a26b434bd1b558e8904cc88b78c5a0a85054147bfa76e62dd14229ddec87d28437d23aad8302c57e1691a3fa987decad0cf6d60beced0cf6b6c320c7301b7392c22ebb21af47d074b31ff781e64e525a17370d8c1a04168db2e2744ea71734fd7a043d9180b0d09cb6e2f7b55564a17f5f13a3e3f43b4aea862d9d941cbd16fa28aba703e3f451c4882cf0e9a3d4a498220b11ce114e2da7219927ba4f2d4e9fd39f8e0ea7ff3ec4435578231b2629ba2f84057edf2aa18fa02d3f82ae11a3da0d9a868adb1e68ee2455cda0391b43311f624b7d8bd23a1b43224bfefb36603e14923949f5105b68a0a4e8be45a2b90d8ded81c63e9b5a86e48b447f43c3ef3f1e684ed65ca77c45882dcedd997f6ec8e97befbdf71ebdfe5d18ff11390a1798cba5a1a85054364c77cefb55d298a9fcd298b9381a33fc8664f8dd2c0d452545f79da0391b267e9f4351f1fb364c015042538670bd1b9d0c075d0db21e7f4452f9bbf893af08de128c493f6fcc4172f4a2dd16efe4b5e3d5648c9531f6c42386ff6153ce5cdb499125eb14c3752941094ab0c2ce2cb1e976c679e3a8be7d1903b7cae494db5879d52c8c2503c3e35b32f5239dd38a68173467c9049ab4a854ce9704b1646a460000004001b3170000201408860341a06661928a6b14000b5174525c50321e120da491508c126294329200600000001000810119220a004b8f995f714cb180f0a05b8c2d3319398c7331ca117f563b5a8691076a73527f0e60eac859658f6a75b27cdac0f8963ba8dadba6852abf004c29a9eaca1dd6898c63885b68583ecd00323f1ccc8b4ddc1d96e3ccb21c3a2c4c265e2cbf148215055355a9b0dd64ff8bd13609bf3fe562c5489da49d118b5779bf24b1ff65d887e9bc464329418fda745ac65db0e44944ad04122d9b163e209156156a2822253d860f0e9a2f49b4ebbb6786e8c7a9153ed5c0f0a9e303b3c2c89c5092e81d6a8d88323b81b3be19bc1ad88b055b5fb00f2889d20492a8d03944f1fed363140db87e763b9a368e1dc5791dbd79dd527821911894032ee8e39f63db3b8b52eda518df412d02f40fa08c1e0a91e2059ef635d306ffee25c4687cd356389e0456f30832ec465b79db2680d20992a7494a539f7ba5606203dd70119dec3b9f6526b6affb9ae4d8db0369319d56a77bb5c663df1d5cee8628f0153e373b0330fda88d017176fffec027df5aadc0d40e8e2e2cf7f51ac93f6597e087a84d2acfeaa66ca20ccf0c2a756bb1f90bac5e9fe7fdd08b7ddb8a7bba08ac063210e4587ea32cf3b8f50a771ec2e420f06dbe8b47a487a723acf76d1db96adb2b31dd362f86e0cca03a58894190ec878c5df8bff250242b23fc5b32f58cf1b0d65a5176db22f112832bbb8dd3d89894d34278c117f83b0694bcb4276bf914d2077834366400e13647aead14cfdf559016578e16c1cd7933bbd6c99084c181a26ccbd8f64d31c70a46df6c214f0e7d87885ac62bf120115ca18c48e86a4342b1c4e7fc74ff49f71b718b53aeacf16143c24f64a12c09aa7292f38643801c29611bd7bf535d82546b1e22c8070b5894c829580c168464d0f7f165c9f1062717b51ed182a27bdd377f4abb3c03c3624deab84c045c5d0c19d1322f432ba9625394faa99b866b8bbbd0f933b1464b10eef1699406e7f2b1f2b2892424d6507f303e98782ab168bd783c7036242ebeeaa12e30704d4c00f98dfe539df7e36c1cd0b1e754d01aef7c0fd236acd78ab2fc5e80e0c7c9f4a4a5df7da8d31e9595b18e659e89f3391430f886eb7c2b47da7fe05aa392a91bdaa190143aa0bafd07ce524747b45c1c9040e9201f070b6e02796146c9340c68e291b53c42fae7aa17c6fd440f646046505cad80dcd2ace01d7822ac94eed2d0a0a2dbd5691e01958ef305bf919211aa108d442165e4f6efc05360e147bab516125ef759911c15715b221291ad2b4a9cbd099c76135daf25b72d02aace1eca5c8f1859a677e04a45be578bd54a00bac64951dd072a2eff600d7aee64cc6f58e91123ae21e32e570882b8016d8cd6d97b2e3ec28e9570632c19a7f7245945bc24fc2bf2d66227f51fa392ef928ead0981cd8315a1bd55019928d3d85adf7571d26b25487603ccc809a9e8eb1e92cdaa5e675e498f71d0d6d83ad5d6f1abb335345a4e803f0875e3aaf8485a769c0d1496ecb9a883b367fc638418e66fefe010d5ee2bd3b8d655bf4cde227927af48d09c00b21ef10ab1bc3741e9969cea197a764dc21678e7a6918a1acd91a07bbed2523bae40d12912191ab551fdec1c19a02e786827e6472354888d1dba19eb647e5efc5e83dc1354d46b457257f3b25120b075236d7fc6c605fe52dd48da57b44b72a43de308a1166146a4d878ac0cfe022a2566fdf55f22875682992615105b130e695120892c09893cea049fa9b375d44cb15d4a11f88ac0021051b10acf3c3524c331701735e73a84aa2d69d5696faeacd1ec3635e1d6ff818e95736b5d171404eb581403437a9a10d600f0fd9733b29d04a9581f8a8b2f39b337c42356110cd8c9f25a66b760403c76bb2880cc9d4cb19199323b6ca6d8e9deb7b5f20025d18b0fe005cc8a65a8fbb40f17ec9ef60b3f9d669aeacb05cce0bc7b4c2407dc6d631fd04d529dd459173fc7879575caa0607c366f606016d0870a6622b9350a70c28c9d43cdd88c94a5f5141cd3e5f98ba574429b6ec428eb2574b3a8aaa7b72bb7805122f031a47bdd0feb2d71a25620b95de2d021219bdd3d654b93b69815523e41558a0cb3a25314306320cf63dfa35c9e73584a9f8228994dd342deaf141a3a93fa1b4f68c9d3ded04086e4094de2d6c6fb28a4f3dfa03713d75f014985c9e7f62eb8d52c84c7b28c5934e56b9401e39f1004e44b1949f87591125b7276c8e2250003415298c625689fc5a162f52d61ec8f08a36fd5d45f651772e363285c02ced46a914f271df35594720d21c63cf2144502aeaa8f3c859d6f7ae7f307db9e07a8d4881352a1044566fe2f979ffe184e215121643b0d496ea19787c26716e848fa2fc1a2608f971f030b63ccb675695dce43c13ed622d615bdd3e1b8b96e88348493a13d9ae5dde9389f0a1837862124003300e09956ae7bfdad19ba37065694e9eacfb01caa58514abc439822621517993e301cfa521d5b84b397f232d18d8f9c880bc9c51b199d99c4e2e748dced14ad5ac9da0a76447d229173226218e01a6a51484948cb9224f531c09c5b092939856f4cc21c9c968e001a10afa4a3f040a1009322340a5e10ec7a0d09d1967a28580cad50f33befd1646073da7556628cfdd8ebbb9141168885a4e1075f03dca672be7cce66438012f72a24b287700fb00b8db8ae15d891d4a236a4b4cec93e464f0113112224815bea33609d2709822994901b6d53409a56acf5582d350614d1b886a746ec88de46183937b59470482baeac96e39406e656694b29558c9d996e95a0b9577db78dd83557d929a631239d96f350dfb4040020a0b633f6fb619d771b384e7ed04486d407d6f5745541052de5650a5e12dbba1b1cc4973a2216676cd572a3555a449505db672039a732bcff43aa6cc824d48c37c929bad773941decbc374596e0b7b5260393efc00e82bc15d104976a3264818c8a06b4c0b4e096569bc04112e854a65d4c1a5e85e85410e9491317110cc3d05b826730e03a051822c1fc8ba432e12adc6cbbc7cc31a2af15d86ac01d2398d33b31a8033825111f940009fa40b34f2a9650f144e673fb988845161a3135624153113ac3d2cc0fc937221480dca13c4c95b8a31ef4697eca32af2390b847048d04a4617acb98a387ea5350f1913cb86d454c0244d407a4cf973102070f0de43035305ea16d456f780a6a932583b64166ccf2a39dfa09fdb2a7767f5f37b2ddfc63f0e7a5f77e26e23c1f79ff892737dfef821e509068e0613f3f011de3a55dcad7544bc0299689c2dc91c821338ab28d947a6dc46481117f64420d76c6f595e994d12c379661063cdc6f7223b8a5277d3f47ebad5ac62cfcc4532670f7ad08008f76bd00a227124612c18a5e97963ac930a6271de082fdf3cdaf4c01673c6210c316d671498754d49349e2ac8e276e0f3eebdcf47035ed0eb702fa6fd223cf8f54d913f22c0e825bc032e842ff20ba49c3bdc7b16254b359200e550a38cb7b9003382c8f9163413279c84a93b886958c868d44ea61688159e4c373006eb9e8c67d2ddea7ab56927e0d87514dd441939eb6ace7b377c95b5ace274ee1c620b732ff708abc3a7c6090c49ed1a939ebeda518d824025ee08b1e6a86008bb3ef17d41e67f818b9593387bb4ebfded5c2773c1da5534f4a5caabf5c316493a39b8030e67ba04be9bae304287eb9b30414160622dbcef4ade05ec43b379c7b1e8bbb4f5d5a183636e024807a5aa6320ebc592ff7769823687ce4a53bfdf81932988cc61814fef881d64935da887dccd2b64f9ba2a38997416ad6d0d788d64454e8238fdb02eac67a4b30d3ac409710c76bef220444e342a463dac5a30fcacffb1e4f21abdc02571371c283aedeb4facc6084858a8e3ad1020a286a8b4270949367e913adacb89056b6b511bdda4508e2aaeec27804f19823eca571460f7d584ee06d8abcafbea461dc639f719f5931d17dd10226d3ba73da7705f51ad543f23d4add24930548ddfc78b00b14d6731740faba687128ee85a17250432cb34d648edc48dfba80a1e8dc942cb2056d3b44c680b925a285ce058f1b6c7d5cc6c086d4564342c767ff80f0a408c40ff14c6a216d64a3edb844a30c95c8b2f2c287231a0a82cd03e19567362b18cf26acc95c89b8c8b498ff2e13266efe495b57ff9a3fd764989d6b579632bb44f9dc36604dcab2582f9d382d1a2fdfb6da3f00b3721894695ea08b56459138260ebd303028d7d316406b8dca3132b26d76b09886ba5af80e4c4a7ff6b8ee5dbb38ef75d5e72659f4c894117ca42c647126a0fcdf732764932f387344fbfb205f50f59e60c0c6f519ca8d34966ef34be5a0af2fb308c6bb17cc2f5940f445deb20fc44ee5a248c4e742d139ef1d73840ff245e397eff0243f2490f8a727a33e102ab21f009a387426576f00ab9d296e76ba3a47068d68eed722f7aac3f15b120fe6c22a16d6dac3f2519fcf80d9c7830711204322e898a897747dcc0f6536e560617eaa122713f0d8dac291ce46bf3c94612a1d421767067d123066071b946216077eb391889545aa3fd5d9fa4470709cce7d4c8e02cb742f4278c68e528305d9ae741f30b4f550ac0f0c02c95784818ad4c5a3f963842907427ccd09521bd9be4ff38365985958aa976a85d0cc440e004404b324de1cfe30624bfe608e76c02c6fe9ca9179882592981b121ec9ec297ec163e4acd4510e8d74788ec1c677d6cda4f68563a90af8cb6bbc0b08d4fcc6b8b8c9345c06b8960e10680bf3fd252aa136b4119dac67aebf197278d0001b84aa28ea8685916311c8bac0d25b84cbd71c8b7ec31c44025938ae9b1a1d5a15466d51f165058d38ec8d40e9b53540697810b2345ed2ccef22dab076baefde375c3c9b514f2fd50aa824d2c832dc91a7163aec95691b3c395f38b63a8984a34b6091aa67a0d90f0d69429cbd6284860f8d5dcd33bd417dbff5168b3006be231c582e891c113e5c17991965c541cb6dc4cf5500115a329d1fcee0b555f6ff9aff9f0f26e34344cd3ca198fa6d5bfff983828201402a9a0929fcee83ee3ebbb586232214729c3cd9f42d6a077840d688d592d3850b83e01998ed1c66c6477ae6fff271420e7c756d67fe8b440a6ec294f94ba1799fa57261be81f59705eeb36f71c0fe1af2664b7f247b71ee59c0003128599fcb69a021b8674d543590b84dee93cb7f4d6aacd03e0c1681857a051982e0da11cfdb40430b0ac3b40d78cb59d4f09e16c01a79941433a748820600fa0aeb204e9f8e9e109de712b4e3d23828fa4f321f2b903b8a0e2c53af4012641bd0d91fa61a3cf5b53b8f82c1cbfa012e41dba002ea3b9b352e6f5cba1a55e6849bafc8688fdf874c407325d059f84165cc1adfac855fbfec9b99ad688bec0801b40db4e601f881414a4c738acc3951cc1bb06d40052d2d0a91783e969dae78dfb91b967026b5df803a8ab6c1167a2b3f0deca7038898691b3cddb8ff05e17b9ae7ed5384180e788dff5b806148e42d8c67f348fd2fef8062be1a0052339465ddc1e638050b793918cc4921643310b22f1e03dd22fd05ea3ca3367820073c89583f9e6b580351d082a63007b2bdd4e4c2ff57860ae842c94f03a7d071925440c8350c62f1cca5dbe0937a64fedaa1178155d094fd79c12b1d503a144c574582d346da54c45f9fb9286e32d53cc6f567e967b25eaa2bb8e47457303730224d4b25f844b5a66d0d4eece5dffc4f6932be212fef9028bd6c4c080bae49cbfb73a53484ffa15b5bf25772dd340d4e7ff0b4cf204d3b6b2eff87e36af9ab19a4e9b93e5075f46cdc9def632e709e59f5dca3f768b56f251d53455e754179b21eab584dedba9bbbc42f5ecbc4ce1b0a4f378804f393403e0877a0faa51fe6dcd3a2f07f018b24eba9e2a1978afdab50d8a0c0379e7c9805b67c463488a6dd708d519b8b6ecee534a21cae9158bc3a8ee1047104d6d22bb209cf4b536fc4a532fdb7c5c128cd0c18fd8708035672fa54a6e5539a4a599eaf9dbb04654f82d190047d5c3cd7ca1c4e9c812e686398b2d9309248a3ecdc4d7be490a79db30854a6293bb3866c3a8bbbfcd7b4334b3b199c0cf4963eb10f62ec277bcae0d6886c1af15354c90f9833ba6c47442af54a2f7ad5d0954fb0bc16d976d1925ceee5c9c5355a1a8dca64b18481d62a44a3b59432793682c7e9ce6bade906e28ca0d00a83945b5cba48d0c0a56f25f984972d035f9cce1e3efae090e38d5fd3ec76db4a04e3a6186d6944a7b5e9256fa6c0510aed58edd745949385a98fe9744e2908471422fcb69a898c6dac858c48435725bdeb833cbc8c90a9de9765b850ed685e7a6b088a4bf8d25d726df6f653017ca0c42e17dd0cf177eef332412698b4dbadd16820586190605d769105d846be91f8d6a0e7be64fbaf5fa2f3ee8df171f6368873e0965e4aace08c7319d4adca10218dcddbc9aa55ebb8c5ffe1f5c607244cbe6864f8dbf382459ec83fecf0c8745f6e90900134a47c8ffddc7545c7e80568a008b0c30a1ab191b16fe6c0536e32c5e9014c23cf02aae2483dd12295b6315f5d3cc6dec2ddcf491227dbc19bd56616ba5da762818aa1c99456721b301293cea2b4fa5a5757bd38b90682145f8a580634bb6a77845b23baa22bd80ca0927e7e97677ab188f6e88020272636213e7fde3ccc06471cc400f403fe53b235243070f1ad52e85fc5e3cc7af458c5e11de70c4af23be2aa0528a533c366044fb29c177704abdddbee0858ad9c7d6c196bb72ec87b3ff949ae93b0182ea570e149615b525da257a15eb21bab7f218c7f438a56066a896fd65d37b05fbfb583cd7d49ef73263233abcd29fa22e66f7a5bd2b8121dbcf9d29cef144fed79077551eb0222360693f332970872e7c49f34ca2e341ac21c4b46bbacd47d4e52c5190c933c82303ac9ef0c453a144d50722c647d852e65cfd947ef0a1762cbf3429c71e00a66985a1adcada0ef00d1a32d2431efe5e292a511b2f1e7068c5049ef6519059cd8c3cf60ebcdbd5dc3503a1b05b2f04446e64cac911043648c6be03d279fba56041dd5a27d523d7aa699d2d8f0a5fbc033ccf18c14902fc573c9a53fb195beea7d10a7a21b8b321b8a38758f78b52c9a514d77ba7af2e58450ac6248f2c1e229d61ac014cdb0f2893c535fa2a4a0af1c244eed8942388765e053d80b62baac2fd7a26df56cff57ae2ffd7ca8f88d773208c8c5524668f279370cf467b87165aeb5d65b8694dbf8f6fb17b83898e21096eba07aa189c3fd2f2674ab5a83e3ace39c2f03eaed29a832ca929baa11410d06f71a3fbdb84e8e2e48814ece2a693987100aa915f817f9175af00618e0f40ec29a1f60c391d04dee483a8e808c0ad061749986bdd349708a2c63bddb5687593dcc654e796112160661964fa290751dfeea9c802682a33461318c0a2c18ab090570a814c1e6a9185a3db4451ca810c9849ce32bfa77b28c48654f23bd762644220e8077ae2d60063393a5057bf0a46e9818475801c7642be0d44244821e6183233550c871dcd980449ae5991146f4f0082e25db203b2f0466d3ba8171eac2814e744abf9a3abd8aceae4815ea2fd68c12b902baa628efc7f9ecab5326fe8408eabbd4310072190aa8f0ff7e7d13049067bd3dec65270515a9848f85036e6f0094ffad7703ce90004410c8d2010038808c0e00e701781b553f482fb0080a9409c173d057877e44f432e7b7449220009601c227010b2a657a0fe77c02940062180014ffdfde4d815d1bec09c216acfee0dccf771fc391f33abf59fa75231c00c68c8c1519402a231b85545f6d0ab7aef4a2ee017abb64fd43549ebf0e27fbec582718f6a51f465a36961d53811beedf1c6b0a59ea5d449b51c6fd0e324d24c7a8525b2b192e41860f7036f7c52085fcfcaff742b4ba4b7a33227d1cd074112dcad8b0cef632d7713b0d33c905b8be2fecd17013e40130ec3545f8a22b922452d22d849fb64a9de4222992e19f228864276273bd88994419ed6b368bc5eba2bb2f38acab3b52c0965c5929451bfe14bb673a8b2312ec0ae6763d2377992bed737d50185e1fed62023d2a5278dfa84cc196027c6c6e6be61f4e1aa01d7b72738f9202a31764020a27531595ee2f1c8880ac797ec59ec6badc9d487be97f46b1a8a349695b6fb2facf4e2ac02f0ff4c34901f4b84ec4ec945a1fecd97c2a43d9722bfa168d2bbc55f1045c4d277ca8e1daab836126d28efc6247de63afd8e034a89a1e6fccbba8e7a19467ecc8070fafb7956676662f6ecf4dcc7135585392a1778217bf6caaa77a8160bb0e445bb65926d804fc46a2928c206eb73623b9f23b159d922b51c101f707dcb3d74bc10081225506e5d3393b5bb8021621de3a49fcf679785664abe0c6bac86600ca71d2c6055818e5b03a385aebf94eb1f1b087f49ce1b674b1c7520abae9ac5785400f98918bd80e5456fd8308c322a1c2205291a7539848bdd9bf88f753083e3df862caf992ce81c887c18c7a0434341ab02ff0cbb11f24d07ae45e58bfdc6e9d44d42518d34deb0f70a84bd026536dbc677a0979a46bf91fb32594387760ffed0b3b43ecd6def8f211a64a7a7993344dc6af8332b861a941bcb6c439525d12e19d06c6016c2de9c42f3aa94730cad07c97be8fef4572e3ba30166d2b094fc7543445ae72173b6ef97b37bc26572003df419fa9b854b0b7490c7d0e02c42767b77d22baea7c2fc3216a705d2559c2940e2e4e35f45c6c0fb992ed2dc75bc3856c4624a59ccde65721bad01f02befb783e374b3b1e88277de1f20f610413d3b0c56a01256f38fc5e99b42f327feda59bbd7dcacd6d2540dbe5f29a4247302c0f73c5ba092db4645847d8adb45f582220eca030df2d5cea1f64e246560dce0d6486e958a16a371f0f48e3af897018f73790b17f9a8ae06700bc748e23a0fcdb90670f2c19bf882d7dcd0196e1d7462f9b09483f22d249c5482ffe917e1bd21ddc3d8fa5457abc70a44b23df10db39abed0f2359255da431e94bc34927ff4f7a711aa5df839bd291376c47d20f2f3dc2bf74c1334c5f3fce742246d30b5535fd7e62d311839b1ec9fda68b1737252e74dbb4411cb6a403b920dabb303a2186d46a5a6156ea65cfd53d07d70705c164d25c83e867f0673868da382defa8db73d72dae539255c6b13b099996c280fca313ef0b2e5074d0b40ef403f31e7e9188375274075d2e651f480a9a80343f81b929aacb05508b26edefcf7c557c175efc8606f9003afa943396de8d6361526baac6df3f81a39f5df875f68412304c4142ef0bd9fba5924f6209e3e8cb07590ad104b4c2292e4322ff4ac24196ffeed1f72839236a97e7b6d614f003f214f394bc084ceb2d32737e43e7f937f9289d60f7f4a2f166fc1723eeb5725bef3f1bfb8d53fc180670b3699051f8c1ba8bed59307a7ec882c1d991aa5ebe792d44fa5114e1660bfb64faa62a67ba286679ac8680523da92d03eb2da38be500132bc92ded6444f2430e9abc77ca8bc60ef1d6b5122e8ad6ce20114463a3bd9929b6945c39187c80b0e38fd8934512a33612e71f3556c6bcb6cc84f8f1ce5ea194478ccd1ef10837acf04bbcde7469adb28c47958a89023079de48ab16b117e1e2b835d98682da89b8f60425213e98303a5622811e63a36d7f726c66e065d56887ba31ac0ba69d1fa48269673e35eaad955d955d11a466d3080fff8c5d145a34b13b40c387e84278069e69a18212edd063f6e7e4345ddab9e455638d91e65129a030352f2259fee18783a3178131e39f183a80caad5cc95b04b292366a0556b3ca5fab65e715781d21c0f1207316c03a050d02db53726f82cdcc83979bfa912ed8fc77feea1faa1b04ba39521a96a6917cadd4d1583a3f2c503b5c21fc542ca5d73c168382d888cdc79344e777509505f7c2d4e6375fa3a9643b66c6336959abdd82d4bceefdb57767fddf12e4fd180f87ca63fbb0a24489f40f56d5e1590b1cbdbcea9591375881e846ffd718d0c2deea8b2d43d16e07e01e85279a1d0fde32810ca973233254dd3c922172919b0cad548e510f9e45ca114ae131faad36dc0b0914b7581f1b76e3f0a5e322272e4cc764d4edd052dd1821c6802ccc207a3954eb4514c184fb2c2cebd92b530f96ba41587e51383f34b6e815cb88fa8df39acc7781cfb518eb486b4b8e7bf9794f6a67f9afd0ab9d4f842190f00ce08eced928a161d0bee178ed17127ec2df7b22105d7a5a7649a100a485bfeab7c830f5c6beb7ef6fef0d281296485fde9b35177698342560266f64dd030dcff12662202a23a9e9c9480f46328a3b4346a25a2272486c8b4444ef47dd140645198483897b2361982e7e45c6edf1d7d1cb0d1676b1490ea28214489a7d28514699ee5bfae8eda0d06f41cbd6d4101def5c3ac6e3a3b8a66bda9d8dd2c4848eda54cc8579a88b79231e7f0cf1301ce3311e2cae42f6a2f41c0c537c4678f21af37c8610585ee099e9c6811aaf5295efc806755145bf05595e864f3ff4426fe82d644feab13c4185eadb34d13d81f1c391a58d7a19cb1b590d94e89c0d45b8b3e82e7af3ee2d6ece79f9f2fecef5d824a06c5ea55e57ea16f092c9a67aaf86bdb038f94b2ab98d20d6f8665b8c2b817414e1e6988a83b9820f75684c4383dcbd37700d47dad03348369d65f506705347f2a44ffa5aa22ae9fd3bd5ddda139a9fbb48daac13ee1631f89e7bca77b896f30ada71c020f1a603b1e988a0be7f2f0e8e715bbdec0e50ae6e7c28b7ddec27f8c9f6088a842cadffaa3f2eb173350cf0296dd7b477ea5638cf71190eda540f244a17850ee97da89f15565779fc63b67ddce8fa95b5ef2afa52be756b3ae60dca30747a4b912ed578d18b15133935e9250bd031f29b0a2204880a4cb6540efb81f68c3f8e78f681b741e316081572746187c4c7b6cb837528ecc5271bbdb63f1f9d5784078fe8d4f998008e7f65140478f6caf2475e69e40c29fbf6eb4424cf44fcd5802a8ae82cbd6c7cbb5afaef832375277118c8fcb370f89efe21e4194d2bef104aaeb4a10cfc07fb1da6a55febf10f51d4a3974cd72bebc7707b6f69a8ba7799bd43707d898883c058958ed1752b551c390188bb97bf7893ce311ed9794b19a3c33d75759cc5f358f7eba1aec1c937b8a9d6c008ab6215bf86430059586bbdc0d75e792d6d0ea131418cf6d622cd22d17ba914831335e2a84ee4bd5a9725695aea1fd0b6f9c51d38fb67e67d185acff42facc0b9b7c90acd098ed6d672bdc5091902ad932aa2c8fd970921302e5ef28e2431de4dfa814d30d62c4c5d1f0348dd8c492bb2e8b7e0cbcb74108ff73c1947e351dcd37b5efb2c3f0970b4d0ae8668425457749528e94a2dbf4cddff563645633653b35d76dced86d5662add7ff808edd1534263c9b3ef202c0b43c686bd2ccc6e67ea641b5c4a80b39253d6d0586ab9a21f05ac8bff080b5eb29d33a8c5bda9158ef1f2c55878a15d1c0669b2aafd8521a4cf8d63e8014d03d6c61f37b7529390ede37f7323e7c5fbeb77d71db9999bb99a6b7bb7b76b0aefc1166cc12dd84e326b0979efe28c493b059aefae8cfa4e857fdf5ff04b6849c7fc2e376140a0ad77f67d7e52674465ad9f18f9b4058000898018162d2a081765c8e94e8342b042a4f58781660a305cf1f5ffcbc8d6af0a2c00431eb46ced5f8d4cf61b081a152280a86ed66f126e15569cf1ad0a86292cb62fde7d261651259ea05ef9af79ecca89046224086f3308d1ce0787b1bd77013c8fbe06c2815874f58265d616c6a38aa4b54ca69d74a3a50ce715eb7b3e1de754e3ad401246db83f5f119bd84f31524fe0343d89b53423269573c8721f1c486bf1f837b43f18db7e83fcb999b37e921365cd2723df3d95392584b4104fcca55934626fbb0155f0827a2c2be6ef2066fcede8b45a71aa23855c36b412122a5bde841181c37934a282b8dff71a759ae635e013234174869458c58e9619067558f609be6b78fec0176141cd2437b545dbf97630d5c238558191bd3fafc371a72e08b89ebe0f69178a3fc1c829729fe45d0084469a637b600e4ea3ad5cdf5c65b9ef95d58581f26286ea17e3cd8cd0436b49815c47520b2d79121f9f57280df176e82bc015338ef9391e70e04b53d2d480900af1dfc9e03d3d3b08a6f7bc0ca0032224372713a1bd11d00743ea06efd0bb7653ac8cbe5d982f3901d38fe563396ee6630890b35a9444221914864e75c771b7e933779d267f22e2db3be37541c418b9769dc2e65ebbf8bbbf550395484ac405e0c333fdb81e278c67a4d51c7472b383a95f19702d7e9581e76e058047e72b9d88125be4aa3105c04fe38e10406cd59781fc8d01ad00ef2db7ca2266d3b9f1068cf19276e3e5cfbc5e8d1b96c536f72598935ede064875b5deff0ef2d1608e0477c318a3f4d76897978e4ef2d33d3232a804b9e0a6966c51204ba55888481001740614182c695f9b9331f4293a2d834d40bcda28fd37aa78f25f6c5e63c74ea98d43044bf9b66fc2fdecb61efeef29777b0ae77874bcaee04e600a395f57f2f6f274b99cf6668a50b702a4cf8705c89da38294b72f27c1b88a014c44ecb69c3b52d0e2041f4c366462b90fbe123cae6010b00fcf95953fe9116fa181baa94ce8e3c6ec202e42c17c8e9f4bc26fe58dc66d69f6ac4b63f755aeefed47b6d8476c116824cac8fb6ce4de10dfdcc8da71d269c7e8a391b8f7893ea3a22f5e4919c93333dd31e3ea8c2a2faba90c2aaf6e8cbe4499b8c399bbf3acf8894b766830ee2244fe403e47ada55ad38abf52ba1066aa48ff44cad70ebd7734d3ad858ab73552cd701395aa15f26c2910ef650940a62b71ac9ce4e5d481c85e529c06d13c8d8e3d0be2ebf09431f986d727e35155eaccacd9552d5aacd661d3108cee356078de695175fd4a500906f8f81f21e162d45f753b72b45423984266491308a699d4298e4613b65835c2f855cecd72ed364954c217c0d154f28f8daa953ca7b10bd6d08d36a13c22eaf8220a5ed80a097d50f742260e0746396259b9e2d8d7de35ab917b2e0a7dfcc02786d6987aa3aeb86d91d574a2f74308900ce1b4fd83d22da3837d5de8d54e7ebc61299cb48364b2fa1d6ab2077356d6b1b5f8ba4ab03eb2016d6a6cf41fb6afebfffd9ac8a3119e7d44ecc2f58b11d33debce5432617b3d55b4688c8db9e8b12db53f3ab3d914ada1be09498cf0e3da4ecd36e334e4219e9239712967a0a2753188d7d9a7a4d264d64a56bf9a03c507b45a5a08e69d9827a497049371b9dbd28c73b50154da73e8f2341e5916f45dda19503e1c016840cd128e4dcf69157a08f10c3c1f1a07819981dc7b2ade85bfcc36bb165b8bf6d92f650103a50cf089d37b2848eddffa384aad2eea037534468660562ca4ede7554cb806d47d5509f10c5db4d685abc7d5b2ce38d9b001bec8295bacabf552f67635992b395fe99901f476355ffd3918c4d92b63717f6d479bda76841ccc9d188b6f369c1d37c9e1758e728798915e40975e85247dcda31a706b1ef74bae8dffa991f8acc09dff55fa5df70cd9b1cd378ec4dc1dfd5594d3099ce322de777bb1b9d94a5a36b30df14a6ea53d66dfd2bfa224c26b7ff98c1b0068cb15c5c93359ca335c8c094c36ccce411031ef78cb03dfb59b730360e4aba3fc49c6f6584f8af63bc09a1cfba13d7b1c5e5c79ab4a70bc4a32213c75442a0f69f061197ba49bc148336b28d9ba2433679da73b6bf7e829a6604dd41004a4be715c1ae30f3380da5500b5b6bbb06630fa06228ee197769452ede8d34dc233bd3a413e69091385bb0765dc91f4f3166dd404a4c740d7a18a9035e121049123833736f43036020f68c0934275a46b264dbbc67fd09825d36c7660a5fba92225eb211e19e45dc333fa6ff8fb5050410d8edb4ec98a96fa9878a58a8f6f788d1dbf4a31df8e9ae813cf31e61104d18af1ebb66cf7b2aeb78889d4e34d6454cd15437063e6e62931adf6de700eded50707a4860a0bd1ba886e9f864d80d302f0477c41adbc4bbec2855e8d973e1bd218c8ed865356d870136cc94766a7a1843b49a8f8eea2ee330c9bd63be64eedf3a8c9f70b0670498600b89e138c951a123bc21d3a9a0487fb2314c789264eb2e69217ccd7e43ec97d6604fd70698a8d9a5dc23e4b8f8d3a7de3c3bd0c8e94d0deea3d3b5aee4eaa06ff5dd294081a46ecb5343ca3e9fd86dcc056996c13c084fed2c11678186d744ea94c7cd28f270e8dc3aca67772ccc9940f1412ce90a1efe77f20397e4bd3ff4bf4fdbdb1916bbbf81f77cfda1219596a467099a5a67352014aca33f33e2624d084eee16a928b1f16291db16c36dc88710617d77caf03aa4976ac6ab56e0c25f75ca3784284ce2960b6e9978413addac9ac8a5de56495141e4b0fbc05ca6a179a2d341a13b52c363eb035997bfdc4379c0be7581e61609b4ecdaf831b78231ddac9b0c7789afbeaeccc877444ecf8851e2163e5f9e1e7b001216d826b84208f7861fc43810dcb6b96471e88a4975d9a5c0116225bbb4cdc15c9a7aa2841fb94b5f32ead54963a61bde6951703d318e56dce0ed7ea64a9f8fa1c52426cde126fbcaa9e866982f7aee91977e0fbce4077d17bec061b6418cfe4168a2b1fe5e10c88f206279e1de82e9a0859c2384bb2b967b8b7636f901a058b80241c081078c671e2c113081cb4a1a2d1f4c53897b44a52699a85a60b344c587850b7147db7e0d050badee5e9634167fc699fd23b4c53afa6aa4aed5ddea88c65bc20ef18d55208edbd7fd42d08275f165093e02962104d5303feaa22e5a8e2814bd50b8ded4a61e825d82c83b63a8f485875db3ef2f1b0b8b9f47af2c0230ea25c6b5833c643f2a3097b8ead327779a06e550d250ee912eca7da18f72a7751cd167d553f83db4c52d4d489026aa54135eda5013ae354c139adb5ae47ccd896ec2c8b2254b4b87bdf9feb7ef4105096c6b7eb3c178710b3b71c6d07f517a10ce9673451fec8e5ccf677100002ef2f9298c2e5674d26dfa46ae516693fbfb65279a0853d3d4a59229c4f2b028c98e9a110c63b00b5fbc62bbc863c23eccb7495c2cf1fb271a37daaaff7951932fa9cd735ec572642a817e6a6f3e84dc97c2dd20bc711736e55be6aea860afca563b200ee3122fcc5d3d6b9db05ec463a666cd1a69d4a86e5ef0161563df0c00c140551898522b51ce54e0131223f99435813ec5c2d8a72a55f869129e7e223a8fa5749c144294562edf88d81135a25951602a46710ace6d1b32dcb50a15d6e5d52a413fa11659400771e64dde6610de2c0afb0f589a273fac860c8f1a74b9813cacc46b6e94c29d37ea128464d8ef201f8750415f854104e56a7b9ce22db58c069a52a30187c1383812063a750824821116531a2fbcf069404e43f70a59b403fae5ff96be6dec82308968af52d9ec8cb123b675a480ff66bfa8e4d8af82793fe57afc61213f73db7f08d1782fdee58d8bb3b0b8b8853e95af9a0294db51070519549787ee04441b378250ed7fc97a0c145c1aa4a7fb7903b19b15a27ff39a6275bd495e25eba448879e3467122809341f4a54a946c9810042eff737418306b6291e5a251df65e950c7fddaa0808ed826eb28306c691b7389b3987e48d6e1e91a6ed665f3c1dd0f93da1ef7f69742843d162094cbd328125beffe2e58886c991ed66f31c5f4da90a45b381be8720aa8ddd5f66843da5f2f485d92616acb9b8c83fcf41af8b8164747143b15c2cf146a9d2a0e3e29376fe310f8e1e5e4d2fe595e89621370b4df9157e31e73b4ed67d6795ae4a8105f69a0d86878f073fd5bd776bd60aeba2e64e1e4eb024f11f1e1a4805998ca996e12a557774e7eee84e55145fe2355aa36bbc952fa120b342250b166ed70a207797b4765708a4775d1923dd2382dcc552c3249446ab64d20110d788862d70f4fd860234ac389cc19a6e6325017973cea2f57abb7f769e34d3feaa74f2c3eccf012799fa27ebea6a36ec2ca958011d2593d688955cf5e8b1a8c72b6f9fd1df4a7297ac117f89763a869899da3711800f0f074ed0f977d25c03a4c7d99d20a334e9954cd3373b61dc5c95b6f4ffd2664e7494460ab0b165a61e710d30cdbf0c4c0adca7ba1a577ad8a446f170c95d3be7e238d69fef447dd7ffd87123f7f171571d233445d7b166bc158b3e952365757b7936477d1d8c870c294ad5239940efe3ed995b79896ee8b0c3e5fbdc57d51adc65b98ed09d1a61c6374f10f77367edffa1793f6ee5a46cbaf9ba6973f53665e7a6230873621befb1387e2b151bbd05cbda612a9396170f21b4db96367cf3a9e4c1827add1ce452c2d91b43bb7963888337cee4da8d291efe7708db9123b2589096f8888fa426f8a93b7c04238e1d73fcd8e311b6132713602d35bec66040f03d9e44a215fa1eb14695dcda9dd1a4a48c39d2159a62dc76bc112eee77454dda8bd68b6538632cf4178641f5956b92c08adcf70d2d0c5ffac7bf8385c5dbf9afe4dd8843ac8b42fbcb0b14c2ce2e4c03a1a990ad951d1705b6556373253a496b10db34d636328f353bdcaa295ad30037e055c5dc1db4b38fb7b1f6f61022456d8bcd77cc06e0c6c3da32c5684357587e8d23382c8318b24aa8736c39bd8ced938a550b1d239dcf49792bf4b50a47029c35422a376cbdebbfa61b2536b6b4653317c8fa544f37fddeba54e64ee7405bd4b8015ea2328b25078ecec980d639f6faafb69441c4d877f52fa8503e94bb65c9e2abd5be71b77d14908061367313ea48dcb5de8cd7ddbb4dee11f07dd919440319519cc7208ae5621efb8d9f31f6cfc4aab113a33b0bd0d40e84071e0b048e6faf1298ae22a76c78ecd5e6a241628cbdb9b0c27e4049a20927363ddccdf34042014172ebb594c4c307793344fd895795f7d81a4b3251605e753eccbb0da9850cec594275297b194bb1842a007bf2b8aec0b0fbd2773b1a77a15673e38300dc125c06812e87e9608600e1b17b33038a68c912ecb4ddb2eb57944fd68bfd068a26d0e75bb5dfbab8cdb1e66a63057a80cc64dfa12aedacc7f99a1929e0302ab47c61861560a8f96b874a51a6c4696b581646fd95906c0533abc568cc205ec0a96ddd37130835f0b9229c246be2c202a35b8bab696253053719123db40a1deea51aedf08b7b05779cc7f78b767914e1c0b9476da96de84f008302ca9e5d1113ba76858c5b2cefff08d8a7b5c6bb6b9b1990afff225b0f84c932a5b52ee843619dafccdc8ec9407cf83871a3cebfb3668db01e6f4faa5824b907e78fdab41f5903e4d79f5bcd911000a930d53d91de98c260321183984249bf7c46cb2414a101f2f7f28b6ed339e62b9fee694374bcb3eeaea378ded5ef5b52bdeb6f5c97e12dd8822d587d1c0510a4a2a036db77cab56362ef0cb7872b1af96ebe40a2d1b9e03b075f714ddb52c2fb06e7aebdbf41e98cb481f19fa1c65105e67bd6270cdccee33135bdca0ea1a74c38d5bb55f4caa4feb7b47696fff8589b75d1f1b6eeb79ee9b9db12cae5900416de32869f28857e4911334b847b4787bb9748893f9ccd10d7da88e76b89df9489bfccfbd185f5d690c81810f593df177880963e28feab6fb809eb8bd2841cacc0e323740bd7e6242e6338238726bed2e5847974a6624a6b59b9aa69734b22286747ab63448773087f4adbf8942fe22e359e9c58b34800c1753b6dc6a2793074ab16a38310387eeb563e732a3960c0a6d8bcd8553a1b3883ab0367face3e831382239d11cc7cf0082232e7062e0e092dee6934c2f0377ae7ca42dc93d4a15380fcf7b2251f3a6dd8c41969d8b42964d89033c3b05913736153b15ac651c65a0c43f21eb14d2265f511d080be71f541805e1f47fede21b783901444076a9350f30068bb92bc08c0da2b2552903df32f291684babf07a144fae0fe4d8584b8ecb92858b44b4c4eb630ebf38f429da8e925c5ede4f26b7f60480b614cb866fd6a2e75cd04a774c44f04c2a678f8723d0c494799c809a845be679be513d46b11ac26067e6c0f8fbfc777c408a0500ce11361a26541b064eff0ac9f9fa85a050fea0770421e58c6ad30b513ce909208e12b85ebd9a2da69a90ddb4f186419693e774d9518ce2f963a6d228fa7e06e56bb16f4c813c3ed6afc7fb4517aed0cb2bb632ff3ed06ebba2c106c9d69b426fc9f7cfef0f9dd07a32d9da1e9d4a135485a761cc8eac06cc290291c1a509c76bfee86cc9ae78ffc7a3202f30d9ee683acabc499a4e238135e4f08943c7c2688f4f9180ff53ce523b4b602493ceb5f198b094ef5d617c52509bf79f272a85de31f0247c1f08133a0bc14bc5cb932b805b37cbf71737aa179799d64a1cc3897acd0668d1070eeb4dd49eacbead8faf054d3d368f3990fa1c59f9aeeadcde7426d7fe20e307833e67d185ac7f42face0a9b7c949ed9c78452995c3e29dafd4b58d8721f91eeffea51e441e574c133679077324904260ae1c737118577833e50e6017ef68656c050005352e2cc15edddc466c2e6f6b406ad9014b713106f053feffed75b15c6acf252bc9db9bfacdea422e876f412ba03888d55802cff03b330e2fb471180ac39ddece6b1af2529f598356ac76d3c1382d4b568b7cf02846006dbf34c51c2accf0bd950d8a42caa539adff09b5e57a88521d008da421e64b9a6ad2a489c6414fa3a53fc676ecaf46020eb5816266c1703ff83290b54e4f942528b80578f50f090909cedee9bcaeae6e9db49bb98c1222d9b0b361675913f69ae2db7a041cdf0b5247df87327e7c06fdb52235716e89fc83bcb77a5fbcbfd81bba00b2cccad0054b0a5d7947e884a441553e12344a9c829430d9b57fff20f49fb608d5924142abf999503ebd51e891b00af504d5cdbb396e70371b0feda3fdb4d7746868e4d621adc891bec1cbceb7598dd5bedabbb95fe7700bf6d016ecc1b6b5816e04219d040ebac6a67a87df855903f68f31e037ca8a2fac35f5f22e730250618c3e28c5da7019fa93105fd92643fa5a639c4aca05923f42adaf80eeeae244fae1c5e754e7c2e3b3edd23a273f08b0bc0c7352cb3936490a44d1af95ea74fc24fa74ec690b75f8941a75c429a9ab83dfa9a3485c64fc257042c2fc4198e3f0bd31445ac6d3725c113028134996bbe7318e780832fc6c56a798c8b0f04b417aaee2235ce0f71979c235eab6a28bd03593a65470e22fcae3a614696d0b96e3b0a2fa22035c81735ca0f79a3103f61c168bd5b166b89c55b0cbd32bffb83b19ff9028debafe885a9e73838f0b2cf18364684e76372939ebdf6b4976edfc3b9af963b482507a0c85301ccae30b83d0aa1f4c93614226ddf439e81aa198e77c0f738790608e19f4cb05d1d4e2c64cb0e0330cf24e9c84539647d0489c4b4782bd7186380950c869a0120ce4c9401a85d3558e11ace9d4c8194d4c8f6b9c50c874efc43140a6d3289ce151aa1081d3d94c773b0b9187f8701f73239ee1c03a53bf70078fdef46bb632abfa6377f63bdb374ae489479c39c8be0b4e579eac1a999ebe135cdd74214231962fde93814593a4cfc66f733a528f2299b702ce839ae40cc855285f038598297526ba9aeea249def002e5987c203c979719a554ac85c4651c1f15d967002647e2d161e4ef692a53106eb583c27cb6e1b80f8cd2fe5df0ef1a930a2313a50709ff89b539b2a143951f19cc2dd323e9b430f1a78d4edf86122fed3ae0b2b33554390269b4d9dac94273845e074a641194ed84d4bcc21d090c8fc92df87b94ea56175106cf4d8d806a69542904ea97e3bd561058c96a3ac207406aa0a61b9e65e7a8fc68a8d71019e7a7a17fb4c8948651c1e2804831dd44190000871fa0c35576db613f4b4c11b7d7b88459aace55e2b6390bd8d5166f03964b879e112fe94df6de7b6f29654a32c20bf70bc10b6d6484696e31f9cab3679a7b666b69f115ce57aec7e259dcfc71952d9b169c2b21cf9d5cf7fa2ec24e5ec7f8d34edee6e608a87f57f81faff28a489a21a721a299b9e9f32f4cc38446e6264d1337a7a091ef8b0338b5847cd5921d41572d26a8795f87956b09e0efb764fe57872dcbcd4d2ddec2d11dad30a8d91283b6c8a03b5a65b4d93aa3cdfb228f934dadb25a3057d97cd51272d3e60874d53a829aae82e5fbb57c59392fc03a382cbbbe73b3eb3a0a06814c06df855f647675d7759f80a6e1161314b85504ba029ffac082ae5cb88545165bd8b2dcb4e0c210839af7740679dadc6e684d50f3fe59330ece4ecee666a3c55736389b2d36391b326ccc307d304d6026690d791317b7a2d09cfbfd046ec1809aad19e056d29496528b8a3b815b4b48b8650514dce20135ef3b41cddb9ab9793f8576426cd1a88f250ce05b4cbe727d8b467d74462a73f8c9a165e81edbb5667ebfe5c4dfc771dadcfa094cb30bd3dc5030cd8d84696e2730cd7d8469b641d04ec850239567cd397fd69c42cea7f0ed8451e6f15ff6512b4beb467dbcfe7ecb0bbaeaa2bfdf0283aedae8efb7c2a03e7af6f75b4de8553bf9fbad27f4aa9ffc7d700402640ceaa381283dc13e4938c13e46b479bf67d8a708bae37e1b611f1450f37e17611f21a879ff857d6274c77d17f609f2811de11f4d6eded73144801759f89173f3a6325804f2bcc185af93eb56f899f7f18554eeca16d30bc85327e7ab9395eb749a9cd53a643a84dcbcd9e6ab548dcdcd1bffc20a405678202ffe38d9184903cb36469e748949c9e55b4c60631cd928976995222c2a645aa5484b6e61415937b8aa8ac9acf041888c581838302ff2bd0173570a99d11df705f05d9e3966d1bf00be8d4eb2bafc79872a3e99419e3a399d5c65b15e7f7eae3f4999d7a155562b7193ab2ca0bf8f03abac227f1f47a8b25af6f77168f7716af7717095d54cfcfd1d4295d54dfefe0e5a65b50afefe8e5a65f50afefe0e5c65350bfefe00842aab87fefe006895d52df8fb03a85556bbe0ef0f005759ddc4dfcf11aaac2692b1c1bce14f1e18f8b34706fea44bb44699e88de268eeecd8d9422deb192de9eca5b36bcd743b1b7776eef4980bb9ecf4d9e9344ff225af31f9cd719e8b9d55e8acb2b3ce3a891b5cd20d0e7f4de0cf05f86b01f686b0c702ecad007b2ac05d13dc3171614be06b93e1aba404fe6c49d0909831c14718516345e484704b6e4430a1a0a664e9044943d08498c570102e940403910bc2fd703301930fddb02524493dd07898ed202b0126c1087222c085e00602a60f6400033d6ee0618379878ae04bbbb33bc4ca55d6f72acf8f74952729f36f76ac5cb36c1064cbe6268157bdcd0d862f9f47f58f6c49239b801785a481e515bec5b4c29f37b83fbf9c673e777983f382fc9e1e5a59393d39b9ca62e12365645eece9e9e9e91142ab2cdad32324895a51caf76f7016e7e4fce8e432b88484a14713ff2a648a9b574948d21021b4aac26273d3e5e9d8621242abaabb93abacef2349199904fcf9a7cdcde6e6e68d84a1e61e4d84d02acb7bee8bac9caf4022c8939563e56e7051c8f306d7cfcab19a7cb50198af3a10f3552bf11507847c8583cc57ae264344bef2c0dfef81d483e6ab1cfe7e0f29bed2e1eff798e22bf06f063d80c3d701879f036edd5a38376f4b8b9b17073cd38fc3f77700cff477e0fb398067fa39f0e16f00cff46fe0c3d28567686e6571f33ed3090a647fe71a26f0e70d4ec89f3a39263f7000b9b9cb161314e48fdc8fa6b326374eeefa3b3957ddef1722813f6d6e41be15a415e44f32b7de621a59553dcee774872a0becb94f03b331f2bc433f34305f0539d1c0c46f6400d863cb165355dd3b7487aaea4ae0cf1a9a22308d0cb573001e17b28e8f1e03fcf0f97901c8b55ef546000543f134a272a06884e88efb38f2488187a1511fdddfb6e51c5eed8d609a8fe0f388571b957c8523df22f2a599a2d4f3270d957c6996ae58c9f76996a0b4053827f98eb928f93e0e189af8278d50b8c5cd8b67be7c763ebd5542761f9637b80fcb4dce575d795d7f82603ff8a00bb798dc04cbf3b3eb69846884a8ea3e589eae0f5f74e19bdc0d0edf6ca137385f857fff66cb4dce1586b83f77d9b2e548a529f2491ec18cef83a18d3698154923e4669767e70569e43b234f23f434429846d66f0e91278d108dec96343237ef9f9272f760982437eff7601823188636932de93ab10343300489203defefd3d03c4c330d135f19791a190d915f1add4c4883e4ab1386d6d108d130c9924f349a24251a2af769ac380bc646d3c457b48a2c54f27d9aa1d0eb6068be92e2ab2e23c9571698a2e4ab910acc92af2af0f761acdc6fd9ba6f31a580f44ebac4846782780fb3c5f3304ccd0b1f660bcc15372f6e61399541825760683034376f0b8b9bf76fb10ce213e64abe74299fa3adc5d4c2e22b0eb46cbe6a1a21db5d1ed5bfb5f14c903e51442f5414cccdfb332fd4dc3d0a15544f6590272a28df172d0d124f6490a3cdcdfbb7538e3c47db6843058d597c65e4bbff1c715df8278ac92ddf3fc72df98eb913058b2941c9f26de2fa134594af113c0a8d4cdcbc0fe2b1c938e4e67dd19e7a84c19e5803d8bae96357eae02a472237ef7be52813eb17f9198080be48c9031422f6817800fa5a52938769e6537d12cb60b23e10487a80de3e10487a8afce71b60922a6ba6cb191980de862702f4367cbf0de50e50ba2452e46f2877b05fa4c8ef501fa8047a243d1ff2b879bf086e55d57d206c83c8ca82a1519550658d36aaba7f9fd6322c4f9a59be5f37daf2b58f4f4b5575bfc823e9e9ae9c89407dfb4480be48b90394ee814ab306f4b544f2fa6224ed0182a1d108f9aafb938608a419ca9746c84d1a219a26f9fe690cb2863f69606837604380feb4545919781e80de86bf7fca55d60c11fb45be48b9c30db79ce9722602405fe467c0c0d79fa1c867a0e401e88b7c2d79804204a89c2172c3dbf037943333d4077aa092871e1bca935255dd2f529e3050d29e2ecf53cd96a75c55ddafe509575517286bb0003ebd0ae07384e5fb14c03af404f0f949009f6404f0394ac9f72180cf7196efd380cf6a7b00d6c1ce804fd2013944f0d9007cd61c03f0f9c9804f7bca2c009f16a6007cd2a52cf2fd18f0f90981019f3509c067650a82cf536b0708d6c1be804ff2079fa40f3eff07d6a1079fd5966960f93e0fd6c1eee0f38425df47c0fd03e0f373019fd48a967c5f079f36e6039f940741f96281056b2797efaff059710560e5f2fd1658c8e5fb2cd4d8f2fd15b00e96003a86f27d1ef82c73e814b97c7f00748996efefc06799adb8c1a70a2ae0b35ea1c2e767e2d3868c7cdf462797efebc0a70a02c067bda2069f952900f82c4b8ccf5a2bf3499798ce6a0500f0f934f83473e01307eb6071e4e4f2fd1bf82465f069730c3e4f36f0596f30f8b46142be5f039f74c908f9fe0b3e7188f27d177c7e34487c9e52e70d2edf1f63b0f1fe38f315ea843b295516ed49421acbf3943b95e7c9b6946f2ddf177167c61d7226e350d7643295e2c1a82083c98b55aa821aa2820c25d8dcf2fdf30637dae81213193937068e9c030032a53b3a77f7a28fde8f8d913dfe746f4706d0c6e7a5658f66ad944bbb48a70fa94bcfbb486ede121c7fba5f91578a9bf7bb7bea462077d6deeea81cea0700905f00c8fd6187bdd849232403d80343abaaeb619a6168f9de5955dd47f5977788eeb8ff4d417e5555cb99f0697ea1e6c6e2e6979b89eeb82f36754775cd4d591d897c4fabaa2b5fb297430ad92b29dd7196e076c4ab9de22dfc60b020f2ab6190014310d319eadb9287efabcdadd6625aaaaafbfdfd1b9caf6e7cbe8ac954a9eca4b1696ebad73fe379ddcdf72f91af68155d08e5fbb7e62b9aef5f2cce0295ee5f245fd12a92803b73e0c8e79d29e58bbb275896a67cde2bf99e9796ef7b5dd308d5869466beba4fc3c457fd847c9f46e62b7f31f249d3848628df2df9cc914f1aa17cebdfefa5cab25f13ca34005f0f8da4470f3c908c3d744820d04323a96285f2024a298580e8e0778f1801f0bf7287f0c1bfd8c7efc50f7f557547fb1f0edf6222df87e50e641501ed68f481ac5f3f5b1ae93207a5eede3450270932a53bee0bf7bb0731edf1ce23f769966c4b23344bfeebbe24d29a33c7b8449e32d9ebbfd06a5efb396ed7755dde1532d7e50dee47657dcc4eae65b3823c77725f9076e8f4c48993d98b2fdcb3d92300e8af0d1b36dedaaf405fed033d4d88145f254df1550d7fdf4a4c51519191d18d222615e806777ab19ace233d60252b974aa5584d3d60363799ee98ee74be5d80f90a7cfd09becb153e18bec01708bedef5e2cbd585ae8ee61be38fab2c00d9759d4c1792ad33d3b2feaed4c9b9f90387ebcf300cdf48e80abf8fb698a8caf5e08b2eec024c27d7a493ab2177af43f38c4e4ea7c905188eee4a1fd88d9d1c55ddbf948adde38fcbf53efeb8c4ce0bdaafefcaf30e4182ffc2e7919a6b1d90fdb66f31b9d9b275afb065c332f4fa7bbecaef46775c6aad1d7f5cdf98cc47f53bdc69721558dee0c29b2daeba6f6b2d2fe8fa3bfeb8da2bcaa65d6f83bba1b59858b97c3b568e953bc5221001294952a6c4844892ecd85821f0d459107871458e48e36ca4ed30c21a46e3b422c3a7d1752d5b8ba9b26ef41c89a0aa6e8e07753a9501824f86d84c43104210703bd1a4c910d8508888706238497060384138b1300c719234e1c07082706238309c244d70827062384938309c245d04e22469c281e124693a014e129c184e9232481f7f2a83d4e922cccab1d2d4d4d4a4d3d474836b6a025ff4ae8ec20ca03d4140d8af0f449107fa3ad672a74899532b7f305595bdf6765fe791de08c4e61e5bb4c71be0bf11c8cd0da43ffc6f0cd21f7e3782252a46cec0d03fb0943956aeb8d97d97394be58f1add71cb710852c7c2c621481fe310a44e97c5578d05cb879d4516382210e1c39caf1a0b2cbe8362be8a41490c4c64be6a289a10f9d864c8572f9c2438b12c320d4108418082f43cde34dc484f3cd1648888e8890771233d1d1bca0cd3dc351fe0a67df700f7ec9b07b8a17882bb27a310937194897587fe2e83d4dc4ebaee41b0c157e55cdfeffaeec33074a29d085de5d93d2e40cca1ab3c9164d787b85f15beaa4985fe1f7f9aa786b8df85db8993f244d2473f0af9aa8f8efef5fa367a5553ebd0dc462ac05e9f026d0c22e62ade13adac227f9a4b407f9ab5b03c8f9c9dd33937c5dc1d0bdef8d33f0a411ae9fee66ffc696fdd7cf52aa99b6179aa00cbaf7ffd7d3d4fed84dc3c9141baf027328000e1fa45b0bd2204b9936381c7793c672964cdfc4e8e4e91b334f3a74eee473d7772aca7ac9d5c9618f1138274f9ee99f91b5c17ede46e70edf2e74eee1485748106eaa8ced03db5dc01490f4f35c2afafd87b5a4c42967cd559f1555fb952f3550301084c8dc557fd831f08b1f9aaaf2867fafb8aefbf2fe4e62b508b109c902d429a6280c510e4ab1894f8ebf5c231febc6a3ef89ee1ee010fdaa8a3e09e3d7932ca7c45b3ac061428344cc0cdcbb4001bdcbc35dc314676ff729533324071fd0eafd255d612494ff8b4fb236ede77b9796b6c371cfc9584bc2f00588dad0637d6d8b2f8aabbd5e06ab6f8aa2b47a19adcc8448792affaaf8e216fa3d731a48348c74c074d87141d49a725a047a21401fb404fa4c80ef56d1124fe04d213fd64d64fbae88520613e416efac4dcf451f264867f34ed8c4090e70dee093e91b8d8af17887f34d92ff2250f5088d4b70ff4250ff5edcf0c012a33ad2a97eb5ff844925fefe3cfebc50e43fc05411a81aeef30920ce2d3c8f52e17ee59dff29355cf0ef0d459407f00db135a650195d45531b67cc93957dcbc4c34a74677e42cdde462783a7611ee7c82028924d39ddc8c753f66fc691bc3b3aaba37567e6e6aa99bd438e446a9aab4d8e0544f479b1b0e3c545577027fdadcc41046e6d4dcfca13beebbe43b23698c2fa4728d0e1d4cdcc4cdcc60677860cf13abaa5bcb136ee7d4d12fe8cec147f1b7d6302ecb003c417b28a88f8ef2f7717ca03840501c217086e8150e11bd6a287f5f147380855011a214051632a33bace0ee9b06b85bba017e59815fdf3ad8016ea377e2ef11a88d2da7be6d1650c82af2426c8e70549e35a790c223fd9993cb4d6855187487175475b35595482f8d993e0adf0cf2d5a993eba3f205cf7d6473b3d162cb2ff9be19338560473821df3765661367058d362647e4fb2691b3646a948a236af9be4d1f853a395a658c7c5d08f25537856158aadec5a65653d3398052463b711446d142c3addb132d9b9b364d2613374d590bb9bb39649ab01f33c82647775cd5d35186a38f0979eae47472e69f32d9c6fc93cc36e69f5fb6b1f93ec2e6909b446e9666131b1cf5d1364d268cfa789940984298439844dc24511f5dd8472aa8f0386e96aa54817b4605767d53c19d9517e4c831fe844e94397414a640c2016ea36fa51be0d7ef4007567c4b81fbc9b70d703bf99e827bb654a58aef1a601715df34c01d95ef240c7ed3b0ebfb09dc798aaf3f205d5e5c9147df476118864fc73e3a0ac3f067c0b65515f531030c822f87dfb265b969c185210619659c311340e740c7116e1c7c885be90652d860ca3714b86bf01d056e1a247dfd417e7db96710866118ceccf4d19175a26c31f92afc232040a040cddb48f81f480e081456e4eb619c7898f1a79d783de5f1ae43fa0e1ff16a22cce90657593ab98ff2b878054933f82ec07c75f6d1777fbf91fe3ce2d5c40ebb00d3c9b9798fdebb3efa332c8fbe91badfd2d56bd54e7cff89aedac9773f00c47ab2319206e62b9beff8036963ff7aa73914676666709c56643b791ce3cf93c731fef413271fe2b39dccf48febc5761f7227caf13ee20cb9d975476a0ea7899b17870887c85a9cd90bce909b38b2aee906d759047167f78220710c41d2bce87d3646e6482273e0c846209e6fb6dce4a020675a59746c6e9d103545b3d9ebf5fa7ef2a2ead432c0aeef1860b06836ab3f78bd9ec745fbe4c93b71b25a0249f317b9c1ede42aebfb7aa7c9cdbb03e9067793e381953b3937c3d207e66611ec13a354847ee4ae0fdf17e47983bbc1e5245506bcf0f97a9e2aded30b77111d5f34309a205f81344a7c4573cbe041fc653187078f01ac7012596061fce9a3d7ebf57af5ebf5ea17019e3ca53c5ef4213e8f146dc048177d3b791175b23192bcdfbaf19d19a4cbc9fb81bc40e28b57736a091d91c3ea812dd32a3c98651632adc283a4ec8280d36802f284a1d52a6b8648ade558abaa4b4722f52d4c5255dd8aed873802f56db943cfbeeb8e7af4e17618468a9b2b0f20c95dc24ce9aa0b2e7c40c0255d18ba40d005865df881018207187f8efe00e34f1ff5930f4f4edac977d1bff0297e439008f89ca59a4ae5d46a7d22f6eb0ef52d907da04f08f2bcc1e1e81e07f838be1859df7ece528e959c5ace155fd5f05648202b24be01c22ac0da089f48721b197d4190617db067ff2e24b98f54a6dcb3527546e780e22834325181af3aa37568065f0598111e85dcbc23132149a8f167847521e8d2b1b9b9caf3034b9d1ecb2e2abbe879ea0b3f29c2fde4e9e8a49ff493231a1879a29746b7b6f41dca9f0b0253caf783c48228a19225df0fc2c459281ba5828a50bedfba8550c8f76f9ac8310651ec538df1a72b63801b063546203872f82edc521ec40d83175b8a18621c19fc10879996e54c58f278cca9a560d7370c30f82106b348cb2e1c93c53e55c92e9c4216bda6ee59540b8b2a562421bbf08d2cfaa96110e6d066e490eeb8efe1481b9c07fe69738b426ea3faf667a86fdf3e0f45befe0cf679007afb94c76db42400091b9ccdad9b42522a968822dbd095002674c77d8b5b4c5546dee49420c1b265731308b76ed707b2c3b731127f5fb498840cede4605df430e3cfebfbc9ebbbe85d8a66af9dd38a74fd0ef83be30fe872ed8c403ad30cb9d9d11021dd38852303c09e1fb608214a9505f67c33a770fc492185146e6edeb0eb3af043b0468b9bb726cb08a4738d0d4ca13bd97cbf850511a88ff059c85555126c6e3ab9f087ee398d33d8073a82fcb22075722fa4322b17853c7378c078f8407d8414c78bf8e4d1aadbdc62dce616e336b718b7b9d9dc5c753fe6a97f1f6d7c8a02e999a05656ddc9ddd8c9dda095b573e33d1879d6d8729f417eb79ddcce0ece1174871135b61a5bd5315493e3648b606ad9a88f2f696708356a5e8c9401ecf991abaa9b23078eacaa6eb6e088256d479535378e10dd61d32153750c49e0af043e2ccf4f02df952729816f1d43344a55557393c381d59ce8f87a3db8046c1047c8575d548469bec1e1c06e70375b5c384138315fb9fe668b9b374d37391c184e104eec0677836b27ff9a7d39fef4ec03e0e4c9cce64403abac96adc62aab75ab2ad13cd1b18bbae8c125e18760832011ad9caf0215531d1e34a7eb5baf4ae03c2b9123f310223c5cb688b4e6a4369eaf0bf2bcfa74b6eb3c6f0276250f8f7ae6c85ea655a28892c54cabd0a0c85ad16d41a7e082890f84aef820092a4460816488308620450f6a2bb8011028a892eafcbabbbbbbbb7b570324a2d8a2480552d8a009576282ecb75ee7e1ee3d842b4bb27bdd7577774781fb09b28c1859c99e32a5a2083031444f0a499f7a240f1b0c0623c2480731b603290e8448caee38777777b7d5dd4b777777afeeeeee5e6fadb5d6b7eeeeeeeed5edb5464ea4f0e1c00441b9beb5a71378000c1a64b141c9010fcce8a93e44ae382cb956a14151aea5b59dd109de7a3528b96c36b894042951a2848992264a88942075b706af030300f6764caea2b6ef46f2888193f91abceeca0d7b6f0d3597cd06971057882bc415e20a417315cde79b348c4042831f3c312387051532724234c955084aae35dca229f27d7beb5f9b6fdfdb127215957d43e44c86e62a562622c955d4e3210e5144100e8a58528da835b64469c9d214af0ea1a1468406a64c7190240b53ad54342197ab134a45d31551b4e08c2368711284501556a828a6d61e3c5ae8418452ad4549e45aabf795a7b6dcac2d25336499e632f515ea878f2442aeddb5d7deefe25097a875024b828a104294259860414ff524b956a11f72bdd60eb98f83086eed706febadd5885cdfd65cabe72161f383284330396952fb01885c856e90ab1013727de150591f0e95895aab07e55a97dc72add58710a9256e852888a2d7100aa4afdcddcb76fffa383289bfba57f76aabbb7b75af34d39b4414a9affc4f4a2bb54964bfdb761b73daeedf3a20eb457d6e52a75f29ad94d64e3976baa3d6eab57af5a63ba8dfdbed1f1d6fb42a1cc9922686f8a10c2024e16089ffe0852bd9c2850f48c8200643c094701314a1bb4a6a57d0c8278feced400613040541064c50ca220a1ffa69d72d81a28a1761e589521528acc89ee77945781ebde2091435d32a5050c93632ad42a355c129f1805414a1e05ecfee4beeee5b94b85f112e2a4fc8c19228bc608b2087d996783c50e982de19a96e08e84364efb00fd86d0902797820154463789de49dc08cec2fd3953c2d1f2570c84988688c2563c020c909980ea26084ec2f0346769ed657030fe849b8af70b4c5043b805121832d7afc8cec4a4e60ca4ea365f7e7f1d2b6ba3e350cb1aef3e3f169097127d2924f5aa3b87109abf3fba343a4bfb56fed09487fefee691e4f88628ad21fc120a957a23aa526d5a54aa5ce2a51b5f6deaef36ed779def781def78160982514c13014c55393d3f8a1a8783a8d230a951a83723f0a864a35a6a125f72df7bb142b4b4c57925c4a933371211ff2260e6bca51c1c274cbb24445a99534d150d3905aa895740cfbcdabdd72af88ed5eabb5b7bd566befedeced3acffb40ef03c130144fa1783a8d230a951a51a91449d2a0e1e2f252a3060c8c8d188acf1cb95f78bcd438519811486711e6447350ba03e64379f655ca3acbbaaa1fe55d69bd28df711369cd0704b2716e561a40888094c3b9f9de0cc8765c6df54685a47f569bbf85752f21d29a33e6a32f3abed906d1c96084c2dda9a5d1fdc7c02c1186c81453657da9a5ca8a817d368bc2a1b6a072626a69c957f7e6d40f9a85c25120f2120a47041817b93eed54ec8b5c5fb437f24cd5dafde77641de2eb554c517b22c327576a559169956e14313b9f1cc7d307759b437f0f4734b18399b6d21cf1898f731b0ca4a255555fd90c8f05332374f4190349fa9a4dc39d76b22cf14514aa644aeef7d9d33c6d0bdf8628ae62b314573b375683ebffbf6c8298b0f96a9998853b41a293e929bf5c5ef82656ae6664dd14e5490676a66bd205356c69f23292ba92bb9b675544ae6666d32c6d07d58a686dccc2922171efcdbfd878ddcef5eb4e30bde8be21117f2f7dd1825610c931859aeffc534c9352676464a094f8a9b3595aa95270a9797baeec6c06260314131315f598fd6d61ba11061b9864d1566bb089bc4a05c3fccb98925d7b7ef4b6ed6d4522a2935c5cdfa16a7949420c3ba25b514e672fd54fe4e407a4b218eeef0665555bd598ccb116a38e6f77ddf0bc8fe1e2db4a0259f643e3f2391d69c2eb6ec36462691350a79a6c4a114ec963ad8ec2b8fbe47233d2d74f07ca660add3d945a3ec5e0a865331203743419ea29028e42bfbfe22131cd9da272b6bfcb13360b943f778e5ccf7b4c77b243d5f0a260e5155270e45518150763115e4a6a76229d813e4596f371919175ba601b8f6ee80523a8e630060f91b495fdd1fbfc638febdf7de7befbdb4ad11a250f6af472953c425ddde8f44dd1dd12c8778ec5e962f0d11cd9d67ef87d29739d97a44919e2ee075385b9e70630c36c2aa6a8c7978949234c5cdf0ef8f48cea23d3324374f4cbe6a09fc49e69d09fcf9659a9da7ce1a951a8f63ad8e4aed75dd38fad48514afeb51c98c18eca9010d1879ef45b2eb6e77ffa2bb4f2bd276acbbeb7b6fd739fe656ac8d4c8417a27cfebeeeeaefbfbbed3676135a6f9393e874c777777d75d87e2e9749bc8aeeb71fc39e28d3f5d18beed82ec9ea7866128f35d239592a991234592240d1a34da65fce9baaeebbab0ebbab07b30ecaef1e93d4f35824fcfabe52e8d787fe4c87bdfd87b232f8e35261a5855dd4b031b4dd0941a19e520da0017853ac22093bba411a23b6ce012d115bac2b00302e4f38b5e6d6e3323239fa299cf8fa2f77cd2298a8abe67a2ffc879d19d5aad96cd0dec5ce1133bb99d265ff513fe3e0fcc579dfbfb3c311e25be6a31fe3e8f90af7a8cbfcfd364c8574d46c953060f0f14789a789aa050c6b713dc64844f84df47d8f5fd0487654b8bebd57de772638cf1ddf7139ef0e0b718623c58b6b0cc7443689af802feb4b975b53bb99d5a1775effafb1fba5cddbbe7f355862716ebbbe83a19182003035e869d1556781a269dcdad766f33274eced7cce7c7eb3dbfbe6774698b6e053ca52c1d05fca893ab5df969214f9b9b4ecee6467d509b9b8ecd4d47c7e6a6a322b2b9d9e07ae8f4e8c162d9dc6c6e37b4991327b3978941268697791f8b00a1b84623c81f395f754bf8fb3e305f35eeeffbc47c94f8aac1f8fb3e42be6a26fc7d1f99affa892643beea30caf0effb10f9aa9b50fa20f9d07cd54e287da4f8aab7943e537cd5484ee0def27d84db09df4f7037e143dc617c23b99ec71b093714650be7a6ebfbe80976956d54b66ee0370ec704263cf8bd84257c177d838167c06f30be8bca169619b0a194ad2c1298397935e0ab4c89d1f6ee26e200220e78226fb3e5c726e7e69dc1464b18dae03a7ac3f7d7681bbe9f7479c003bed391931b8b2045162a8b855c65b1901322ebdb5109a91292d48517b7578296bf2f84467df4ec8b3fa91518e4fb42a2509dfe82068d247c17b86fdf332db70fbf95f0edc5edc598f1a7957053c2ed793ce6d697aa421c55853597c319b6d9f5ed451765b551b3938083ea8d12204cc20cd7dc5de06aa33bc26f2d4a282935eda967d8732b0163c9aeef2fb2c82e2cb26b863bb717b7ee021fd5b2da921032d11d61e752bd0bfcd0c79f5004d9f58d7bf62e97ebf5fa30ecf0418c13d439383037c37f3d1d178093a473fa5f2f4c731be1ce1d4eacebbaaf6945b5d14f1721e13bdc595e6c24e0fece82c7266e169d40b08e3f2fd5cb4f6528e911d423e6e6ed3a56ae85585d42f6b7f0dd10110b4490e69581201090ab5d8fa3be4b0748874e01e472b95e2f172be772b962c61f172bc76a4ab232142969553d50596d55057e3debad00354f9db4d12bbc65579e64ae216572cdbbca53a6e67b8a1bdc88021ecfa955561014db165afc4a072e8ef0f77396681be1cf9c1de4fb3956509d3642797eaba795b52ac29f3936dc5a7ce32ea380205b8bef6f2eb478f1c6f8d35c9405205b0b2e5a8b9ac54df06f6851562d6e8297d29af3d602572dd4ec2d6c65bd5133a8e22801c0ffa107584f17e1c5da365c6f7d040c822f371765cd424df045db5ce09a85ee00bf8d007e3502cd015fbc6ddb021fc5be9efaad05aeb7aa02bf8b80c1077f5442822e57152be8327abd304f2dc19f95365adc2c6db6b09abc47ec065cc3545534d870edd76a73b337b81b1c08161591affa456c68a09fe186c7c0cf00541fe83150cb1922367c91b7c186b7a108d00d279b07936964a7905e1a408840a5efd01d02bd4c56db01494dcb75e32441a42e3237bd89cb90cc53126bbe3a514cd9a3e2acee39bd2bd95f94f9ea749165f703347116ed711bce3862d34dd03aab7bfab6a3cef3bebbbdee12c7551f0fd4d72b06a04a64f7dddf8702b26d8d678e654d22c1ec9542de52657534934570efbdf127d52376a58bacaafc654d1df5a9d27778e5bb399635f5844f1742cf537a9387bbf762d3d1f3bab2876aabb65c533f833d34127b412bea7fa62fd6f66ffbf5766ead771b217e38aafb5318c415596b3c4957a49bb4d2b1bed0dde180e207520fecfebcff5defdecefbefdeeb791ff8951ea69976f7262d7da4ccc3cc1893f9e4a764be0cf92dd5da0884afca6c3d3eeb7c86bbb8249bd4b0da30ba5447209027d93ddd63bfa1192d496969369bcd66b3190e3c7226ee6f32b61e3d48992aebe12fba67bbe1721556635568369bcd66b3190e3d64be478f1eb6598fdad19294966a4c32994c2693c966b3d96c369be140711447711447713e9bd98bcb39cc634232994c2693c966b3d96c369be1643dbb494a4b35265bdf6432994c2693b5ad6d49b20ef6c5482119d90f99b3da2393c9643299ac6132efab2cef8979cd6b74c99ff6d0caaa31a11a8bc562e30fc89374b3dfc70c3a117cefd2f01e7cdbc4579e9d05c57c65a3b2dc4ab153fcad9210c440b0b8ad4ebb549bfc3b25d28f868c9b6fc47bf04fcfcb1a62e73f03e60041d3ba8dee69c1df057f12f4baeadfe5a03b426c6316e6a69ff6ebe77df795d655fe35c8ae763758e2f12532fd1cd407cdb576d77e8b79da4d6f7df7de75ddd7aef4aeeb6cbdd5ba00fc7ef868cd897219ffb332656a561bfe95a92cd09b794570bf21a63d21ee16de62409ee1adef89e4711689cbe12baae4c450be4f69678f7cbf860c3d2995c6c9f7fbf33aeff647d1ac5f18b556883344465a658a2660e323e9a135270e5ccee225c9cd7e99e266cffc782fba1f852f3e1664f7bc2c856510f9e48b22f59f2377b49789bc7ec4c7201409d97b71073a460a9000eb39bd878dd8a7d9472038b2854121c91d868ccc7ce70f1fa14eef31552c157cc767b57ddf5f11bc6ed9dffb6f012f8e3bbb3c8cfb8bdbfa9546eccfbc0d2f2d926c03c3d079e6bd93fc23d59667dececcbc7f0d7f1b3330fe36fc6bc8b48df7540c35de9f5a1a7fcb33e66d4996326e762d8d5cefe5bd1750ff3bab2d836590fa42ba28e0962820682e7e7951b43d2ec0cb99f7dee299fbcddc328808b27dd07e2dbfe7a91f005c6cf9344fc705b8fc2d8db87c2d8dc0fcfd23d5665d4a5bc23cf9778461e6efdb31084c4953e5abe61a4f6d4cf9aad9c65b1ba20dbffe827f8e478d411ce3506d3987ade16677d56df85baf7edd4977d3ad5522bdfb97975a997c05f3f72b96b2c6c7b878d8c6d7c0f7ba601410decb5fec5916a466dc3906a380b84f03572c6ede05c094b77bd22b6b69a47bb02bc1e7a92f30ccd4ee7e5f791ea9b697af0ff39e57be3cccd79907c107f252bafc874f4f297fef3d0e5412d2c6e34001f19264e33f8c4a42565bb6517e8f61fee5b4f129bc8be7952fb534721f9c79f03e88e41f3cc1f700927c5fdec3f5bfef5f70905ad2fb3672f7fdbf0d7cf610c42bbff248b565f0cf2364d9753ff38f4f112465f253c0a7089432f900c0e70e43997c3247575b4f0cf7a0dec720307986f690355cd54f0e818c5285e8332f3f4f08e49285bdd4b285b53f2bc5f40d79f9a2e426d3f9f2628509874762e8b61910da78d16d585855d1d0e27071117160d45bd2b1984c2926d2fe67ed8be2773ae1b04b0d6d91bd0fc3728648f8a847858fa4a7860ce9668bb9ca3a2dbd58e9947792508c2c662886c8cdfeb9ff8269be2f6f3fa10f565937bebfd3077bd88df225a95ea13e6aa47d1b93fb6d380e6286501f045209954e41930c947a508fa4c716419e2f491df5e1dfff4225465659329f5a4a31c9a0b21785b430efe6d94efe82e466bfd05e6640204f30cf66cbd299419e62cec3777f1e9575fa71f0438cfa8a6bf65e06daf30d55555bd189a03e2c7710c5c029f5a05e7419c01e0bbb9d62baff92f403f2fc86eaadaafa4fb8e2aa2ac734447a5790e7e7dd97a533664889afc0efff842a4bfc5622e4d548cfe707f3ee45351114ea3bc59cc4148d18991799effb3ea1aafabc0f046dd89079decbe7bd80a7b7f11293a2e1551cd9f23d7d2f34bf50c9fdb244643c7df8a1b822bd2c6ef64b92af62be5d5cbe20b1e9f4f74acfe6a677735b1af1f7b288392fcffbf6aded236cf9be11fbfec1dcb4309686fd86ec3764bd9bcdcbe2d9b27ba3cdcbe2dd4eb02ff60252cc7d395f9d60be3a5f66b9c94fbdd088895516eafb245f929450380656554aa0855d1a76c6fb6f8af53cfbdfd247f40d7d335fd950a21f16675126087d484c72ff47ab2cefe9f7ae3dc14e41be7225727ff590204f32774f28ae488fc131426eb64bf9925455fdd148e1dc6c23b64cd9525afccf9724fb2f577ce5f74e217a51f2950da697db8b1667059d6c64e4fe972dcea2600cbd50f115ad629625f7bf2cd56bbd7a12b97f4c6da13bfa3ffc117d333753596ef66de4d0d946969b9bfd588e4226376ff93225654b4a69f1fef4fcf294ea9c3aa7ffe553385f3912b93fb585fae86c53365f79f8921496a47ba7dcf6efbdfe3cfebef2effffebcb71de6e62d5d48fa92f4924455fd3224aee1667bef91357c3c3fdbd2c68040da1a397c55e3fbbfa1caea2648f025c93b9f6a30a5b29c293172bf0b1e4ae1d3e6f365e63d20ee1e457b460c0b7b5e942aedc1d6c26c908d5918e9d972fffbea4c31917d5a265f9ddf0172bf85f9ca06058525947b9b7c65e4bef7fd202ec55cd7796cd17c4b2b368939a7d6514d7778ce57a737f9aac5fc11b9d9fe923494fb3f98af5e922a8b7c494aca8d0397690090743d5424600f17097821d084d96da665a665966596850a273d60f2e237bc5a4bc9e7c89301bf275c6c0cf87549b0e86c2ddf5b877834d4880cf98e603d985a4bc9e776d6ab4117a71a3570c28b0f302e49a068109d485a98a20188ba62639cf205cc694a145cc42252e1100c1883f1cb41cabb02ec6c40041cd7065b6858206ed415c87835223218bd76dd95e2f3eed64a848609d068a975d79b47ad078f16bcbac4f37ae084157e04e5c113316c8d7c7e3532ad42c3e25a71ef469164ab8f47040aae7f5e14b5d4751e65d7791e93ae6ba222053dc059219302454fc724771d13b9f31cfc8ed079b612e9baeef360d65e6bcb4f0b92fcaf31716812d6d6400b1734016105592cf5d82368b6665a8506b41eba6d0543dcc1751fe2799e57dd93628bb0e3d13520a4d841ae3e4a437878409f215278f10da9d57cdcec245ee73384c8101a6a3e2d2155a4a8652fd32a5284914f1e9f1386f80e6e7435358405439505b3ca025a654192bbbb7b75afb319d440b5d0a3c856742bc215e5ee8d914a3133ac9022092f7c30820576361473c796924f8b96731585c57214216babb5d6da6aebf5662780e94e439468a811a1c105482e90e282295e1dc2d65aadb5d65a5bed3d3a631497a82dc1b4848d891741c3222815e509db79dd5118e3b5a1920d2ea32946548cacc86ab8560806830971448418d08603274db9beb54bd95a5b7540daafd6420f26b0309185092d4c6c9161a2e94d24a81959a820c9091090ae4411aaa2d65aadb5d6569be4e23d91e5092d4f6c79a2098aa05bf4d215c18a62454245b27bedbdf75e7badb5d6d65a6badd5d6ee22417ab7a5e4d342d282b405a9094a10142549402ceebdf726b185f65a6badadb5d65aabad3c3a7b8482cfbb56a9851e4ddc9ac035912382b98a666badb5436aadd5da6aeff58e60a3ad2d259f960ab2a8408b0ab6a8a0c9ab3666adfdc18b6c6badd65a6badadf676d768092e9ef5214a34d488d0d08221db82996d01cdb620c9b640e95e1b84cc0ee98cbeb05e13a5264b4d6a37885a951ce5ea755d39c45e6badb528a8b5daea5e3542ae6f2d585237bfb20637a9b88a5ab1198a2b324c10b084041751a8485206173dd597e45aa3bc20d7eb09304a018d53ae95861a111a94883981129780c9a2088728d1502342831146902128a3f231b15d317a3cb596114b5aa086d090044ccbe5693149928521338406246642b8f0b4924862e273a56c446ec8124d886e6badd55a990459264ac81aa597a844ccd5564d8e3a54242000000000d315003020140c878582d178248749a9fa14000b7fb05474521ac8c2280c619062c8004208210400088c00888c9046008a422355b1ed8ac5c436d0ade9c4081a17c51e1ca13e6a1bda7233ad1dc50e891f9e2a8f3e5f8e8a0b96d84e59780679ffe0abd9c1aa7073b2a51da72e3807f7ca60561bd5e96aeb8d29da2c890a49773a310a9931f3cb4010833e41952d245cc21d53b2853a9a97d4573ce53ed76b6c1b9b83ceed9189783ade1e230aded5a9850ab955d5131e0c4c26f2471d0b5220efb9f438e56e4d9665989e6557374d0f66e4f5b32c9b8a50acb3766c52c4647f5139d1a49f1c647d6aa754cade7ea7fb619f3828f120dc4fb4ffff33eb07b1e42aa5ece7677440f6120ef3a296419a6598c59dbbb564fcd92e85a8c96b696a5ece5af60304cfef468c1002986a234a3b0132f40e3146cea089410034d82f8bfded654666ae37f30f7b78dab9fd2bd4c038ac033e73c92da1618e46a25df4405ea3a4158471408feb1ff248e6ac4dff02c763c501a207b6d1fa63fedcba9951f264733db6e8feb594e6e3b307918dd0d2c00e5e8a9b0ffe1a309551510517783be9a1f8fcd8835b70f4138e04519a3b9ba6a8678b8db2b17d695b88a8a8eea0f4a547d4a73f45d24f51f5d114d857fc7623ff07529a5ec079d08b2fbe9f6790b6e750dd4fd176e698b0d259a3660e1715a43fea78991ab2106492ed9ad54f45d9b270c5edc5a1b50f3b7da21a6c0068386a111c8e0f2b38da6ce2fa065d669a0dc9a805d301daf8f81ee8bb3ca8a759d70ef9875c40f18827bc3258f62aa70c65fec7564d825a610f0bb194ed4745320a798da90ab7bf74dddc3ee92eb01979922d1a87ca4254fa4c1a900d9579d3bed8f6f435be16ff1c3aecc731379bac6bd3981118e0a2810638f87f70066052abf9c09d22da8a91f9a395a2b4a1f971a7d076271ea316caab6cf0402826b6628c60a12555bc5209cda5c8e5c06685950444f6a982f969245b314ae710ac4072555b311884615e4a2dfa1143e0f82069293803139e6b75bc9047a8d83a804a085712f3b47570cb4bb534ddeedff5f516c072dc813681c31370fe3b1f75abb22370604910d7266f4e4303cdd8f0ae312c58e6da9137e21b7478f9b488d7a469080e5dbeb6cfd107d5e6da0829ba946a41d280f969f1024d32110cd15e44cbb8b97505b979bd66fca6dd92b8eaf5eb712e2591eec1dabf3a5d07a397d0244a24b18a9cbbf68f10404fb72e4b89524914b0f842f541484f4c284d3e625e2e0ec86b65fcb109c7eab7c5378e9a4f8c6b93d36fbc1c725f32900299090e79ab5249e68c4824f23ba955e431fe1dd3ecef43061d785962eae35965c07fe1b0000c360c05660f904d10408ddf53bd2e02e11e03e35bcfea7be443f4fdb27b0f16eabe184510aab1806b62de8c1f0c8f98042d658979cd5d83eef80dee588391f9cc5f06d2df96983b52ba9b080907804b2370993959aedbff86f7503bed03a3571f966d3603db2d0012ac05f70d773b13715a1c216a4a54d0448a85850107d36588998285bb2128583f8820a4101051ba4cd0d42d1de18816e37d118b770124b839ede72f1b012f1eeb7bec29aa054981a2c6cb480be403f861f08b40ca5296cc6ad80da435415b86721b89d54dc6afac1d9e3a4bd01525fdade106c7b981c3d2595208c1621542f81206055173410340593a86431f4fd253c786f8b7e9b24ec6e6372823896f27c1dec73f048e2a83646a7ca33b4032de1c198df729d592a005f2f3e2c796d092ac98d0bc1bd4bbe905d9ac60c91ce6df86e4a76c7c6cf1ee9c24d001eab16669d09b4f920b344269cce14b8d78c5b2a448eae257ad9b794964863c8dc2e8d3fa3a885dc785d90da243a039e3aa36887c8c491e0797425d40b469f02c266c096b4c35d209f2ae0062633abe8677d9e493ddb04327725c51ecbab8980013af298e70ec00878e6eb72e91c6d0939f22e2595450150c769f2b33af23a8e39b83e61c193ef8005671cb14f41b20aa32dff259a4672b0040f3f29a8ec154d3cec16550353e04c8d7f8086bd8f8f85116f319fdc6c7ad07c7c789a458d43eebbc0f632dc17179de716004047e01dff027183c0840298e1ebc0a298a9d21a008f53871a2e31f98bbfadf2cd657ce83fc11d8b47437c551c78e77e83a601471baed3acb7c62097da1aae815d55505c2488b1585f7051fbf414ab6828caf98d87cc53b06d7a57149680f455d9a11188369ac223a8c1105f433688c51241b648c062b5f88e662018d7ce8d83adaa967595158413802945bf6af8c58ff755117d739405dcc6d06ea623a2160b1a72a46ded194776d52f983533db8949ff3f20ad5e635cc0c970089cbeefb9026e1efab72454c6d7ce46673ca5b1c1d801922cc689586b4f9779990495ae9b65226e4d8947940875efff1b1aec9824e7cce169d156c2dc82b6d3d5925712c5b9da9bf309d32d29a818c78145378c6c40fbbc5b8b0567712fb60f5a796982b2e7fe212e0138b8dbbd0f3a5fa54cd617d47f15bfc08ad6053b372823ab8ccf33aadf74fef3fb968d4ad9aa72b96a8d71423c8394b7204cb16558a50338002e83301731c22ce04bd4d1016c087353ac14058e0b00c092fb94962729b28e29ea077e56d6e19fbf68addef15070a9e2f093a939be288eda730058c5380c35bbf7a75835536be238890afc84d2db54227ce99ba2ea88e5b12396828d83d1421145e739cc51024329ef19c875fb5fe667be2aed067292990e03b66d2e2930c36bcf1a6e677911c57a1dfda4e6545af5c70ec471025898e9d870d52ac2d1515660e2c2a130601ef2fb6e887a6e9398737549b1f527512c1a8557450c72846d55d06b1e8306a6cc2b2d3e2f54bd8b999ed1cd9153b6560b03ad0afdb6ce3d0f84528d8d4929d147f742f0b9a76b1b4558a269a4b49639684496739217577dc2c45f2b66d35f5a88880be22544f488ad2f16e555da7d2f479f786af671526c62ae9d64970ff6c6e056a0f026d316ceb30315ea993ed93bf5d0be7aabd23ebd88b4f5f9fc0506f10e6860fff37a7211198ae9ecb2afce5e6cc43f363252bd14ee0c24f24e4113abd1b8bab02633798b8dc9f85008d5c9a78d0c8b005789bb32aa9cb2f3ec146a5bf5c7284ddb93d6e8729a9fc0105cabc89691eb93ee9cccaaeaaac3926962d30b9456caeadce34b230a205d28a63ba919df84d23ed3c52dbcfc287f951647b635677f14036d09bac86a27d0b6743e9cd910149c7d06835084907cd6cdd8a66557f0c3836dd6a209c79baf353620316c93d8aed890526b3e3ac03599161ae809b017db2f816caed5b88f71843567f2ef3892aa7dd253a4f5b8624d6fbb23fa4b1f32aafc54caa48622c257b573aca459b3449dbf0c1512f53587cfd821901123f805da5e0acd0d20666a557e9f4610ad456c8b810e2b4f2ca0f987015dcc6577f872bc5b32739daaa69541522fdc7a981bd647046691d0b483710f37c14713861de263fe01f846849dad91cc912c446fce6412bd09eb5a80cedf820315f826095e1aae5fc2cb8ff72bd7d21125833d98dc9dcf1d8337b7a6b4fd16290bc3d4e8d1b4a152496b9aadcde72d2c25fc7de2231c863c7c126f602a1cf56b446d6e1c6bef0d370a2577f02990304c2907fcfb491d708f9fc7c71cf421a21b11722687786473504ca18392a15207d15eb23e701d80f376df88e5dd2f2a76602935a21da0be0e528148284b45e6a77251c7901a76f438042669d43561e3bac5e987194333a6b7221e679e03115578f20637e4eede85ccc3d13b2ea5fee842aecb5c765eb1abe9248ee6a69d50db9bc6627d25998a3aca8b473041b05f782222f27740938a3536eb6c9093f8a6c14f63dd4a15892753127fc8cca540853f158b89c50a46338eee71beafde4b0b814e9afcd09880e0215bf5faa2b424d29c4d8ba3321cb525cd544ee8e869de5e039bfe4637ce8cae46c016701e82206dd408c08d9ec68f30f27aef7002a7c2e9fbbc3fb341a429676612882028de50e8b9e1bc1a6caf75e17e0bcd776eed889a3a753890fb99f138d1b196c98a8f3200b2e28ba154bbd7bf96dd554e395fc5d59f4422ba5ce58fd973041cf539b3ae34a1056fa8b72770d47c84cbeabf8a6acaaf357d761a23016122726567f667723f5960e14cccfd014ef8095c6d69b3a0953f19b1199d3725931b5f8df79e85e74463a72da47cf9b728366c928c303d1577284249ca2d1224e99d0883a54b14804d54b755683d0c4b8a1c8ec2d9bf3e03acb9384685295585587e9aceca3659973093399358bc1be1bd7e0789439239e4a59ce96be6125156365ce28e714ee99b2e20985514b8be6cb1792874203338691a2aad68b02e68f392e8d0e631db21a4a33f1aa9032e704d29cd8b0febcf9b795eb39e2e430c49265ced9824dfc8ebfd5870807b9ddb2d3a0a368b82e4fb4e97ee769de00180aad824fc341ce4b30216a1e6fb6623f685c5ed42ebdd5166d1b28bc0f81ccdb9e28623e9026f6f4b894fd6b14f117ffcf9fe4f0180c41a94ec025b1ca2e81afa7215ec3a45ca5e614945b2d74fc0d89bb28288e9953e9bb3d9de6864b14aa7b5c5091579e07960562689b799d26d3c1d3220aafd40c351c5667d414672f321aeb585d374088c177e83eaadfda788ae691d7f02b7d56c5802d93f9f67ee1d34b843f5b94e5de368ab772ef6fb7374c014697ea90cb178421cdbe70d7db75dc7ce8b559f49ac0db49d66ba8efbf7727c33d8020073374e01b02912b01c89713ed2f073cd5aa3758e6cf8f73c376efa8615a63a0475c19e70d05bfd9bbfdcce09a30d2e024381b1270f2c02fc9140dda36f2536b311ae9b219f2552f7a8a22db3903a9f56015936358e57e0321a65ae5a47f88bcb889f46a5bfabb5a1b00d614ed553907621a067b15f0b6ff01bf6d7d8cc3eaa6f169e1328e22275e248d37d6a504e5d1be6eb891e5fc7bbc7ad1823a13252df64dcbebcb4ca1a5150e5437a300f2ebd4266d827cc524d010c8ac791b5e380a88df077f729fcc9230ca3b31cbadbf01c372e6106a49623928c612f296ae00eb42f9aa92b0c71f8547229e6f130a0af737c7e712508e3547b84c50b3ca7fa3a348505fb7f0e68449091c1a3a06e3fcc5dbfe50facb05aeb2060f2d33498e40811bf09e331a686c78222f2e19439a8b5d80f0f74e402cc75a5cc060562e2fcf4f0e78d4a0bfec41b5cd926b1c5b82d3d92e64e21c1765e738afa70f8600096802c79ec42880487f46c523beae1fcd0692eb30e962e7c4fe317526233573c1739f294a67185d6686dfa5ba352352b1b919f484a8603b95c5b0ad7b3e14b52fade506b01d5049308db4b39b59c10d0b1885d090ee9657c23f5829bd1015d3309a5ebef0d31cb7a3cfcae1137242313f0553c04de6e3b02baf888935e47d7a9aa663387f1063b9619c7e74b9b61b50c312237ec613c38b94c79fda9a57bdf773efd9aaa9ca88714b2cceda7b3c415c16109acae7764316a812b20c9d771dd3fbf19de3153cce0ad23bd7ed5c9a527735811e5262d17ab678a8a8c6d9426b23eb042680ae20673627a804e8fbbc52fa910d601a97117b148d96356cf32a3c68c69ad4ce8d1bacb18d03c56b265f4a7bd8cc2dfe14a2631b72c560461b19612395938551c104757703b740b29c4a29207c51ecddfa6fcdc1be2df19bb537016929f487ce21b68035fcb256cdd5a0a1475258f902893169d36652b4890e7a857f3f1635b6e707d72d1a9248b3667e05c40dbc7fe527af04ac69b38302c51958081d7381f23507e9e3c1075276564f7c4df43d4f0e703ecc3cc7c1607565430b8ec52cee59d30cbf7eb4b2a5847d35142def32e90c0d0017cdfec11e1f09c1dbe53beb9041b55c01b49f0aae374c3c71dfd0de15cd69f61b5b82c9e4a3cd87648f56b8f6e08fa7b0b15d1d5600f055f2736a2ccca8da611c5e64484d9948c31bbb416c0828ff12c161f553ecf459b30ec30a9bac9c50da4a9b67e0915b0b85df447f334d1e3b31796a267d1ee5b550a18b56474e2e80492455f205b47f7d8a71cbfb83f9e3fa3c6f89815d7a160f7e1489ef968b0d4af6177e1a045eb65ceaa79ac1b9e462ee843d2bcaa1692c709408a265ebcc9cf51640d5f9def2c5f2d2d60d9404c0456c785d03ee86b60afb590fab2e8abce4b9d3d50a746936c12379daa3b92520f0dd31d095cc1270f05b9b2e58fdd7c2c5ead8b5523d7b7f8a4aa657bfe004e065bd6843785fe560114e86b65fc45df08fc653522fb4b10409e2aa171a84408103d40b45f8896132231aa0c19443ef477dd8aa22bf01bb8e49c78d6276b05c2fc8439195b96975bbc4482eefe71d399884e002b3ff25a4e3e8e296ed064d32d8e9e0e4a154cc691ae41dc79a36df2c7bee01f6c01bb12fc9657eed2e0da6b26fb6036ae6cbbd92e284e0ed4f336a37a27a8136767296cd4493843992c86b9323c28a1357d70056f5cbc537b06f7ad5123b16361911b4ba6134bb2760a27dd6b77986629e72aa7309032ee5a0745eb14c62e9c7b45b081533ac4a4a4bb3604f110009f850f637fa3781660f38288aee82bc9f31abd154d88d11c0979f4eeb543758174684963c5a337b045e099ff64043c6af202224082429bf87f65fbd700a2b4cc1986ddf38553cdb72a9e7bb801bb8051beb5d28b0cb618980985e65db2c0a228032298d92951d71edac258b2dc921685640559113768cfc291689ef0aee5879561d45b7851117efe02c1b19507f1d158ff6035c5834b7c17b9007095d19ba3a2bc9059858f857288adfedba17480f69e1145fe2d1c82519dcaa2969045a801e719ebe8cfa602ff917f27ebb3409c561d8a2c010046a7bf90d29a1b7bd2d59ce02cb95a95ae3bd781ac432426cd62c23b8a308fe5d3565d400fa3f926951fe577358b83ab54830e45efdfc563f584c99fd18c8042a22451e5929939d38ba50208afda328e72666bb8f09f57b325dc7b19379462a228d4e2963649101d4aee18ab9344c364bbafd46868b82c36a44c34e359415be47cd156996cf2baf38a814b0c06f9bd3e1951eadd1ef661ae77691f9d0cdf05230a3aa64f710bcd791cb7f0a23cb46f8e5b3bb4697ff923dddf209162ed744386d02b5cb2a067a0f53b69c3e037c46ec7ce04fac4cf6e34cf6d28b6b922e67b522ea8c166f5cf092bdb883d1a509b49532ce3b39087904a24bc6324110e67d466ba18e91f15c19a8e2fea0d25dcd93b427d29f3f8c45648d99f431d5b10b0173c95ad271ae8e12fc3690581daa39292dbe85d69c4f08ded8351a44d90f54f59b237895108315e518165a427674063b37fb3ca4b1441c0ef0ba39221e817334cac8a16d46f207a8596bdd5a43652d64650205f2da2685c9571a06690d2603f4bbc6e1b8269302f29dc600796d1381c9571a06d11a2604e86b0de1bc369302e28b86815ca349c0fc3b8d03c91a4c04e8f710051281042d4c173ac93cccd9130e6c72202660a91b68dbc874032020e6c36e1c06578e61337a68d402716d01d0a09f1a155bf3cdc3ecf23c8e7445509553f306eacf2c128bb46b850323eea790dffd0f95f648e9e19ff5f6c9befe701184f61f93f3d8bc9382bd43ff001192d1a2bcd165f3e349b1264d39e59cb2e4183e80487aaac81a776401f801659f2ee2165abd520acacf708854ef6c4d459631e4837350c67e1d4880094b3f0a7cd2eb6b5689e2c5298e1688827d7a794a8ea7ef9095e5d16d1a8f87d0f4cabcb82803ee29ce9d51e8d5979fd9630dff70b2d8fd1215aec3289e2632c975bd8fd1bc8b87c646396b7b4d8d93533e948b2e4146db40f20158175a83dafb0a444f644922216460a7b6829206e476676b3650b7fd15e046944a5da42a522f6404758f4734d4f57092fa753d82f1f18de9c435f5fdbad6ab363f022a8529e0e7c431176436e8734843103176fbf42d7336c2b923fc170273a2f308b61dcf98d5ad360011b9c5c7a69f902bd3c3d2f4840873d2f6e6b45c04027a67810968e357fa5851c6c2805590490b33834a6f9383a26ee61f05c5898c4a3215178dd36cfeb9e901a861059f5d61afcc9cd2015ca8a716ccd63c0850420a77fb68db17ad0d04324ca2e96760fe20ef08f924dac5239040183fda40462d9eb27c4ec543fe34597b8e8a9a7f62b14708e7271a6c7a251525e0d19fad2ed164223b92c31f1debb3fc2720fce04af5e84fc8b6defdd8b17a315b0f5d3ae90b21dd321ed2ed2be5201fe0a7629c166f810814d02d94fd055e1b291ff0fe7fa9a20586b0532a2594b094451ba6c3fb90680697395ce609d30c96310119b23a8e125948b03e00b182555dbfbab87e1de6b35d9920184867d5280e6ce91474cc2770b980bfc22b19aa12105be2b6dbef46b7a065638d91eca3539b187bf510d7301b94483a8c049e31a6a62ee0a59adc61d6cecfe434c4fff16ffdc7e56ed071b21b3dd9dfe4dc3dfd4d1631cb94e66ecf9bfb653c5f343b234fe95a8ae77200ad3b666e31ccbe0bca9c3901aa71548990f0e42d151e1b450a5c9a277c370923bf2967efa7e8e9357ca6d44e0f7a91b03a9a78f83ee7fbe3a257fd348e541dcb36f61515e3cc5251b1e000c3db5d8301a4bd9443d5e1db5a86046266aa16c89783099a279ab85fab8b02c3a46b311fddf0a4d87ac2583e177703d91c67bc6d770463ca949cd8da78c8e47a20df11f74e2ab0ec162c7be759153880feb80b4962d218efe4e5100d87ada712d6dc08407a34b392a4ec3ab0260f54c872daa071023a923f45febe8666a196a9d984b34d13de47659258ed5d64de265690c0bf7421804a86b0411ec1713040fca53c4c04a53371b0ecdaf195305ebbcd41c14dbd523d92240ee37d320ed980dc27a0ec4dc94b864f9116869502531e323c482a6d4c3b0161f0dc4f57c9b905e5f06a3d14dda90057488c0eee648b9e144b60b781c42fe66f4ddc3a148fcde6a260665df75e4992a3e57f677939574a63b0851cb3bf810ea59aa4f2328fb328a1c14a410c1e37f39569a8e1193ef0fc239a76a35bc78cfc3bcf6f128f9831f41bd8c69c75a0633d7718dca38ee394219aeafcd5488436a9ed76da32e51f15b8437a50eb4bc23f25c436922e0d7c76a2104427561492161984fc39c7c447c85aab228415494682acd4bd8814296796839df6fd58af6b0e1134f9e163e8de516b2d20f31f5fff64a4d4660fa246bad87d6918ee027173602143a7d40217ab54360f857c4abdad31f7e9bdd4052f721b8d6ed3f881127f446687c2457b431d0a466a9c364ef54a4703dbfe45b721877ccd90382a43d6005d4b9dc80fb44936581166178b0768c72a11ff31f0c3cfb524ab5d3fb843016f45792aac97f875471ddd184148ddc5467641c38b54be2654412cfcd10d9807197eeb527d26465398e8080c0eb2fd7566289df4f191eb23b326971eddcb2ce522d7f2730bb547aa5b884db94e744e4bc7698ecaba15f29aa09034e027e8c90454499430a1241b296a0d15e27428bcf0cb526fc5b60f5bcd44377a65d72b748c950eadc76bc39bb3e35cad9a8bac86eb86cdc6a6021028e1dcf9d7a30c6a92750a615a0681aebe8802e0a6795b0c625510eef4d551c635819d1220aac3a85bf92240ad9132c5a706a839713981c5a77af30b04231e5c23b4807671d2dee16ce46f805d24c4ebc1ae04daa70da73c9ee5ea2fba7c9cda763445502974522cb26a1a7df6635865f962b1e36b7e5a681b0da444a7d4e9648fc8fe9836cb1d50939cac4936bfa053722350c35fd49ff6fcfa41709d6113dd4fd03fc317fa335adce7f4374179750149119b526288aba64faf7f6a26a4cd207c3496c5956612daef34e17cb062a66dc6e66f1e3d1574a1c47ab1cb3d335487e4535c848f16cc8b7f60ab49eec18dae790f2a61a920a923ddb754da0b65bceafd8a55a2c19f49c9c2483ba6078e7edcb4f7705aa5870426de9f20c782005e2add0d72e634f18090a0b7f8b3bd3557d65aa9c67cb18f7d0aa432a2f7c5cdede222bf2b06fa697883891575421e925d0219213d7ed4242dd0f0cffb0449829bcbf3a3e10d9ba2b7146d46f214953a53ee49c87612b90bdcb43a22db64b29c86e145c1ac30dcd4fb69574bc3c12127e3347a58363080370b2d24467456e0ac86b58cf7eaedcc65165c9202282e988c4270113b03eb97042c1893913ecc6437539f4636d5a0491dbf01679cb20ecc041d129f100e06bbcca00b28b65ab32cf3e0c18cd303a9176b293b3ab8ce6dd1aef2f52290ec1e9129d623da330cac3c1fd0f9bec7b3f6ea5864e8d33717d600f37e5c8f0bd9fdf1d59eef0ee58dd602e6ea153fc5431dbe155356f2546b250c8b0f3bc0a7a8b4d54a0fdf2a28d6c075d171658ca23d4fc4a80f8b1c530cbeb2ad80862ed8f940f15c0cab63ef348c32e5597d6b72be30477449b32c0e21719f722ed8914c7cdce506ca9ed6c4b40e29892af239d2ccd577d11d537aa0b262dd5b5000d823d800c5321ddc51b7642c9c03566550771957a7dc540f388173143b300104bd0f82637056d9503a9a5fd3a087a422cc6acb8cebe5fdfd81ff5b47d5dd9755817b22a637b01d8593ba69a2b65505d196a4cc7c7f38694932cd4684339e47ab40b14601e7d2f248384209088ef3adf7a66599896e4b6d78556b724ecc99cd64bc04cbce219a6aa5a2c37a0b16aa001f6e30db84ce859e41242eacf1f05bf3590fdc51c3e5a42faf4e5251e73f4c74413e0aa8313a7e24b152f4d237908e362f13a0ccb3802584495317af68fbba5320515e0e17645d024bf406001019ad5d0ac1033e744619f2659d03c072a90f379439f3039dc0d8fdc0021eed0756d407ab4e87edd8c68d33d78ffc02bd9e2e59c8999e7d96a9087ade2297a669d4bcb04024ece4360f21dfd233d9e4d031586e627bd03ea53e692353371b43211c8b407efcb24dedca48dc4ed8a7407fd21ec1bd53156e8ddd260a83a887ecfcc538eb6ee04385f00e6a0913554133488b131e03a447b797547e17b03c59edbc103e6c8c87b738acbe6827bb2302f855aab72b7d2d51a30ed2e4ae9ceed0e758eef385b10beff76b9a57df5e9464d907e9fe8ba7d38481051d8a1ddcf5233c34133033e6d0576edf50b32e97a9d6e3efb3445bf01024e01c22a49c0dd3fa1590fc345df143b80b0240cd8acf1024e926273715ac867d4e79ac3683bb82d656834257907931efa5f3104185a9e3804d7cc40fa23284e485a6aab387588672e513513b3dc584c7b4b8d1cfb79715f6503a06fca8f03ae0190e7b8412e13da3fd5a88f3e75cef3536099437e9bc5f6a3f4210740037f3e97b225d3b943fac828ed0362134c1231c947843bd587556aa77e2250391e3d32af7a698506fe5afb03e7ca22fe7a98d6ba8dc041e1353703be147f706d2bcf2222218540ec642093f86ff24c84e39ddd165c8de3d8607198721dd6750112077a868d6b247e31b8f31dbf38a3a5bf77728568fad1d21455eaf3bea84181c287fa9b371eed0fda550ed55a6f9ab970a3d651a2cc20a6baccf8d0c26d6d61eeb1d00980290d500f1180a09cc48bf8606310b254b764d0b951d4d8b0babdf463a19a2cb49efd474bb8cdc8321b7ca1a4c0e9a502237e0d485238a20cabc473228e4d142e3556a9b37ee182b878dc22ef5202125ad1c89031fddb6c16d5da80c57f6e2fd36a2bb40f1b77179e74010d2306226b8896932fd3f03e2446328ea21a25b5998143814fb483da6ef9f4731f03628e78d220dff46ab066748f4d55835d8dc843de2537f1766d4028eda71b2382c23f5683c01d231184d1128e2ed2deaf662cf16247f7c403c066a5822a1dbdfe8c00b1cd35e5c70102d353c8f9a5d598984763317e2c1f03ead325a1b7d1d83d00178bcd1503b7987ae385eb7e8f363b43ad9dd890c973ac010082be373ef97f7118931dce2f1e6819ef046bb0cdf4f865ce4e7030414aab50ee042026ff4aa96dd40d6ed0f70b655b621d6761b5336a05c114cd155c95712ecc5c7c707a2b6fe94dcb2c2c225d2d0d26c370b84ab6fbe92ec0d0937a3d82f96554eecfa69a120080ea11d6631d775be92220508d3127cc98bc7850113703ae9e95a090ec2ab1cc0bdeaf5bc08c9a832f64f9418634dcc768517c24cb767050bfdb00cfa9412253f2803b0f8da9bf0c5d0dd654a18cd32920891d13546c3f5dcc4c528c83cc7f75a04c48e4dacc56615d6d2ac4595a5914192f1085a50886260a58b10251cc2dbbb2f89c1370ede962951312ee42b98c444a266841c406ed582bf4491f7c46cb6eebb9dc091924ebc3281b18b881326f58a9728a5462b9330079e09af75c396d4b441747f8ad267e4af4d5faf3815f05a3d916b642ae3b4950de53fd83f8c3e9e8f9daaed8b2a88fa9c483ffe5a5cb81873c94acdc6ee414499ef3568a55cabc0f8992a71831894cbb08244abb29401550fd8698122a1e83a6a79c40a112c4a4bd9d1e9445dc271388c158bd6fbb4afd833c73d066319f79598ede08aa53b62de7ba8b54f611fdc49d9a7f71e866d86f02ccb8d1cdd8702dd000f8959729983ce664af98fec682fa491510541dbb8f4a0f6b688c2f2acce3977d2da0a9e9e4b8c6100225fe9bc2ec578156a444e64afb0b00d51211f358bbc95c69c30ab5db14ba750d22b37ebb72c17c3c11a0711175f04c140706b2a1284391a925f07fc38f874ff2ff0c89318d26a55aaf258d522ec1f63f32c197e48c78b01485ee4be4b5350cf671eed4c23a0cd23ebd285e1883f288e2e2361a75ffcb91db16d086917ba346dd564cbbf915706c3cc302e29a9f2ef88f7e738186791adab91c6962058b82cc0874d7e451a2e59956520ea4cd81605e7ea961c60f8c17ee902f4a44b60c22de492150cffa1d2215c7d3e5229357d07c9252a0aa81e77a06aceee3611093e3a870d2ddf99077d67b51811216bbae888edee536982809390920a0c08335762cff8b0122b3a675320c9af0cc3f7ee926662b03a013a6441b3df8481d251f49f061d572d825bb765c3e11a0c6073cc63d0a347549908a9c3585ed820ce912242d8ad46f797b0f6f95d27ee478087f60a4670ad9af6924774511b67471d2e6385c6fd612e4d8e05a13be537f1621b952725bda4da4de749d54437565f1d8428e37f94f1f2f1e362db03f42a4a9f9de54c14fe52544b0d299b1d0711cd99b6343f29603ec31f6d57844a9556e0c7a8d534b09c757d01738df8e3c9ab956911587dcf856874a4b3107ea10f063c11ff8d544f7642cf67ff91ac8c79058bec18950cc31c233cf8205835a4230f8313d477f27717370f872068b13f84387032bddab6b1c8d981334bf76aca0d6e50e90dac82e5a1d37df0e81abff5330c651c06719c627fddaa326a1cb40678e14e291aa1af7a9fe045619197baa4c772aa059b319742fd106c395ed606c49b0961c3a86d659b186299880778683c5ea1969fec0832ba49a97b0afe80633f37cf851dbcfee4ba8a7ef0abf611b86682179766ee1344ffc0c77647840279cb293275337a156eb63663cc706674a195d4d294f8bb6f32c6d56b5398a2ba271597523fd4368356ad2bb4789fa7773e4e0894756eb4136f3014e0d28810355daaf20ee38284d15caa94b0a239b9ad365448dacc1577e972481a52810096415201b960bf4872bb68dc11813d471c704b87dfe1b570b1e5eb4f31dc514f925d11be2c4d3b4c243be822d8f380904591ac004675ad066f1ae3451b944cc651aeae7bc724ec427b0b1e5a73c2cfb476695389a1b464193c82d7b82ff20ea3daab12b53ebf3bcb084d8d142c7af375382c35d10fa28b68e5ca895309434fd8901e04eee2041cd26084ca31f0f8278490e1c7b2b8f76cb43ac5e59dc301bb2791672eac22a5b77df4f50452c3724c53087dd72e9f3e7a573a4e1f95581a406bc093948979657ac074cfc86c7c3a97143b6c2294c74a1cf1d0e8c2260d58ae4f14de8d77699dda8f84489a8452f73895ead6146c4ba395809a64714d1688ee116d13966416d708cbbf3f81a0716b8d44b8e497c020551205cbebc18b797dd04ab08b7eb7bc571522828d7ba55600f6371f49189971b4371ff53f62ec970e1e720bbbb56ff73c4986619487059a180d4a2040c7885b25d01b31b11f418dbad92b21625dcf5325b451956ba047d7cede4c31276786c96ff187c4b254b12406cf14d30914dae6ea020d8937d0d485ba3efcea83ce365a56e562b387cf098216a19d31484637d76a4e65f5a3d34e9d8253cda322ac6ff6ffe56fa533062d60ca85f44ef7de028033926346bfcdf9aa7b755e17ed5988c0bd9868e18e21f6a5e0b028d99d270d432ef4128640e12101947956e3bc92375663c91e99a0296632257640d5bb79270602f59ef205bf42517785f0c04faf7e6598730ee38fe53145d869105e3986db4f0a19064546cc53e1fb9ef684b10f87d798d92251f4d2c72591d069ccaeea7910406e5f38ab5a09f1b9cb1d15f2c2e9bbea35c964ee22ab360a9055100f24c8aa73e7e25821afadebb1c08bb6f20cd6640802ef2a22ffc59c3a78afc6b0143cef11c065e2174e494dbaca496c7b346b66aee0718afdc9eaf885ec480ba44b15775f0b6a4812b50f074b06e69fd19014c001842a97923d977196c43a8b6215001304b3d71708b176f2362ffbc5c1d7fa9af96784153c1db1d9488658c7007d2d1bab61e07834d681ab11ba91c9500b1baf96cc0050cd2aa69d20b839d74a7c5865f5eca13954560404393abdde8cbe4001a3e5564a156de1eb891227d9c2154e49deea8a04a78ca814126dc016e691f28c22ccc97018fbb173901932eaab59515302c0c8abf7576d505d86bac79a5eeb8a3858f0ea093a2212f9fef896a48575f5508cf0483c2df9d59ff3cf1b80758701fb80006a63603de9b2d4b913e61ea8e5b7f978ebb7114b4f23bdad8f56db13361a18604d1952ea57f48fab59032b63885f5fd8dcd67be5478b803d8438426479d441b20a0f53001004beaa95cab53a08e2249facad870e5fa73dcd08e786e06709c0fc08b6060cfc67760c30e340ede83172a2501772da0d88efca887b372d0b847df89fefc3821f8925eb1b008c7fcf7eaf60541f6c5aca270d3a93a025eb3721f51d9a09b60cc4e0f8f1a104a0fbd7c685ae0c818c8984554f0248b321057cf3cc18b28d83c69e6ab425e56e6195e4db3e27a5909c0999aa48a2918b53fd4ab9b30828d8e38b7a96a35fc7bf3dcfbc12710ca14efed4c64cba939793d425eb075e14c0100cb164ad5eb3418dab446fff98875c1d897aab16084a87765c49ee1206273ba5d0dc4f696b503ad0f755d11f391f6884df78aa61b529d0f3d00ffa2fd5c723c398910332a00679c26fb83a259a881f5aa16d3ba732e18a257b71682a54b75ce8cd6508e77a0354869aad9c58907892772b98b9d22754316061c04d35a00d4af09986c51b141e6a1744657dddbe9a1a29512ad1163cf2c6387e1533f59420a41957a62c848382f106bf151cd16dadafee609e74f5a3d123ff22cd3599c201402c1facc835274c4763b052fad92cb13c09b4f4bd9c689291aa02d84d60a662a82a403497af4f7952093bfde43082d547e84d8e0dce7c637d3de748c8380fb1fcd9a114c0443300f1b9fc6a2997ecabaec3d0b0becf824be67cd2b17777a969dc2eb35f86c8ba8a357b1f8a1a41165b21409412261579a345c79f174433dc7271b1df8e3c7930c6161f743b02664c7076ff90102354c1302f9d98e6989ea091e6f061ba73898b47fd1d977c401ebb4cf63beedd8c0499c558d504232969f4ac746a0cf365bfc73bde7b6a15fcc927e2707e4a366c8630f753a9cd216c29b2b724552b5c12843ce5b8906f70511d49fd38975a23c4141a94b1ff8758ef94daa03d6aadc056dfce29252246d463bf284fed7c23a641796740ba8debd1ebab27e5ecf4f9f83f386a303fc28fb9b13849d52e8e875fee66a9e4940e54dc6e7e150cb948e1a520a11571459452f74e6d6d259684c1a61001b2a7d5ba1d8aa008d96457a03060898c4cd0f11dbedbf8528d163e70e68e8da64eae210348afaa0882b82cdac21291b7aab52975163a911a1df3b12880e04b8bd2102212161323cef85e13b495ca4572d6b363f6d5b0e7d5dd1d391875d74fd91422afdd9922ee7f3cad04c29e5fda106bda02e65c4ebc36f38cda75fb499a7aa6f628329dd71a8176cd8046ed211bb40211cadf8e45a4cb125dbae20751466880feadf57c7dd7112b839ddd152cb68a2c68bb35fe7848b3310f7787c09335399c1ef273b680c17da36c091ccdb447ec0923b2a686e7f8dc254227d5eab99b4b0c799d417b7aaa391e9a32dd70f2cc0ee1af8b34f11cfb7a1250f8769c2a48f3e184a1b02e591af36ea4b0c8eb12fe1f5e1f04e366654c6c2e8921604c35ac417463e87f41c6ce3d8e3c7c4d753930e7c033569e28762e93ed116cb0a8e3c2f857dbad5d6c3d75664817baa2e36b82fe6bc0a23665dadf86a4b1e162a97085c8e10b200c7225ad6fb2d73bd40ecaa36d18daa1cdd0cfaf0e934de463b14e57f7c07a25d04514447cb09d99e6dd3f0808785148e40559e6f786a0465cd4421640594d748df725eba38354b3d254cb11c8756ffd1408316eb288d81ccb6fb43f81d566411e5c0c7ef1c92ad66d68b289a44c2079a8e9f344952c2b51a6873068f1451b019438c78a2f0ae200e45cea7ff10d0a5c3e490ea5dcd4ec6df1f55dcd1a1320127aff99cac9784a2cbe97d8c567c6dc18ceadd380f1e5d85bdeb1d29e8131ddee40a36e7608009e0d736f5eb456f978c00959bf88dc49e1a50948933ebbf399e9bff0d9e112f9411fc701a71dd8726962d3c43a9b617442c40f24be707a263406e46c07a25681cf93187dea2e5341bc3f6f12e506bac26612650fb385501211895528cf03d12447a15b88eee18a25142792c463ff31683a203fc137c4976f1df8fb9defa8e17c5297ac2a0521912bcb891d3880f86497b1f8dd4c5886038ede3f29865022c1921379b06a9dfedf1c72d4e12eeda9a5c5e1c967ce41af66ca59fa52d7c337bd7dbc24483cb1236977541444d615cd2cfb1a73abb96f9dffc9a82e612d26fa7ac62a5632c15fea2b662c6de3ef375a91d50eef0db8c114ae28ffe4a4bd488d2073bcd1ba81188202fbef7f998422e5b743607db6cf9d189397c76f1dd48a9d41684e5baad1149da01da82d40856a82c5bc2e777f6860cc41e07527721f1a5aa0101fd6d0cd428ac126cd17388f473606731c75ebf19357d6ecdc30ceffe6011bd9e6387bfee1729e8215037120995ef245872f8e8208b1461492108e08ce82187b1efe2b893c36e3cddad825cd951262b171939bc88c549a5030ae7d18e75b488a6b866ef8fdef2991e5ed42467a36ad202577270001a63d94a69901e2b049e02abfd62c1cfc19385fdee80a3c32b3c0eb57323941a3de487a837e72a8385531c9940848eda4837fb806f328d525115271c8d238c0d5674c782721bba9f5dc7777e473b345e3b5df801d150a72b0b99c8478d75720164012f511121f4804a41d431b886674601602c69faacc13b8ff0bec316cbf6c16889bcc990e91d6d0415cdbd265c40b76a6442f710cdfaa632bc092f47fccc0c48a2d46f40002b74ca89279cdf9d060fcf33550d6e1f64b5bed02ac307193df5c576f4d095fe689458e75e05672a6483accc6ce7ce2991849a36b3ad036601004459af7b3485e81cd995aa3c8c6de99bc0b8792fb0bd9e618c26473e1e06998b63195a9501fd5eb46b1b2d9225293b3ca45396c4b09d82ffd5329db28ba37fe99fe3b2b19cb87da08b129cee484d71146af625f73352c5df5802bf1401b74143083e0a2ea5a8557d145199d49369c766ac5e0e81a46fdec3ca5450098aa3012e28c4ea3e99a74513014e77ff333226990ace4a3d4a9069b23808119a0713f154dcfa00d9d85626bce8c3db8f2084faec845ca62c860a594ff3eae5c4e58465a3e7ba3dc32420c7aa70cebde3b32dab68c141b39a3f55f16f2c7557223a06c1d205bb06f8bc40ec2987eea40d8a3c49728cbc6759e0d91412493a003782ee0c83e246214440e8f840e858ec06072753b5a94a5a185d8ec33f461b7d34672b7c99446adb2677f594459b194a9fda80d3acae423c08d4c9539c05e0d1247b6f6f06dc3b09044b60e4ac4ff0a6a0a5d62267ff27fc025997ac7580079046b168591e74e8fde8037a3c9731681394ca32de9fbe8b9538609589c20dd91fc04afdedd4c031f99b0aee6ecc6cede1810ebc0e095b2fd510d82e4c24eb41b8806c0fecf13c32908e5cade1eb01959fcb95aef0ea1b3de97d4cb2b157620c042bed34d2c43827a976da50abb50140f92ada20ed32961b77ab17f594fc3bf03908574f0437c3e9e3e8f64bc2c28c580bc44d4fffa0307c0154b4d4bf047a45a127f1c856cafcca3a98a84c8a691bb00bc8a90906f05f29423ea75565a395b56a40d3c522cdfc1c4bc2159fe41e6d02a5680a2120fdd1ef4491d1058707218a3a6cf3b0294c3f6da7c9bf59f5ef213d5157f51fab734620c53ee63a690716eb0dcd654b1d5a2ace51941c032c352473013c22ae76beaabac5aa209521fe2f86f31aff1f6353724a8d7f68794fb20da61642d5910c408d60d18345e916cea82925dfe49f8f471bd7a03a7eeca30e8f02dc3ff86e464f9e3d8a31f3c4c9dadda0cb2ac74b6621f16afe6098a066ed306749a52f8dd6fe61259a324da19d6c1abbb0a5a9647684f154c30f294f3686681a31ad16c03f0065625a507be8021114a6fcb92d2726e31512225d398da8857aebcffbb50b27c7ee6b598fd035222bbfa2582cef56e71b5003e48c9a5b82df661ff0ed45b94c0d73f4a70740cf967e77d2e51fe75109a08c4b9b7a4f37a60148b80b94d509e28e4530fd0633db4322535f7a601f22640c2bebaa80e9ad063c44cd128ac4b6a12b792598a6aa3a559708eb1bb9f1a5d4946815e65cf50d20d10f7bf1e03dca88d192a972d01816aa28a4df838e6e8896a5121f3011e2669597f0a807d66053dff893e886f783581337c32d91606f66c22e197d92535211860df08db82c28c9082fc75c70662a0643684032a9d7c0d963e22b4043f32063bc108d56b37289efa78cb513982c4cbd4c2abe8dc0387ace74d3bac6013b980bddb7c2579d3e7266c1350e6e8f6fc98fb1fd75231c706725b96052d76d66f9bd452007bf3995ba767fa7836aa2afc787e54f0d4bd3b227ce5a8523ad85e08bd3f9ec07b0d797a9607f4ca34975c0749a2e34b966a084c1b743c9977fc0159e6f275839366755e3ca2f71eeb98aea49129a34d6c60229993696795e171523ceca478037183e437b884def14ae796bcf1bc0bc46ce9bb896487f6bf1dd84744e3ec320b567182c8a94e02f977dfa90db73a6843ce5813b4053213ec35ec16c3e6abfce9fb5178921b188560705839025436ee51ae1de270b14bcb0d4af75c94af61d8a0686742d85a8d77b9baf38700c8ddb0588d99a247cb2818c876b84fce48f43f76853b155b2b7378ad5775ccc64829e25950ded7c1431a32b1336b36bb15c1f8110ca7f704812b19df184da3990dd4ba14087f3c6c94e652d98f398c1dfd16cebccbbbbc94fe5c1591ab8b3296e17091522da1a1d0bec42121533ff1ce3e59052064c6ae1f66da42a2ae847bc447c233a74f8ae15deae404ab4537b797c9f5c26cb8db0a9994fd9f5eb7af70ae613a952499d7628fac666fcf3133d905ecc97d3a440321afc742bb939ffe9c0da49c51cd20ed6917a4b770573f80aec0462a4530adac7fa152162955eb89f053614971335ba956f82bd4a79fb3800fa1f14f4a38cba78bc0d40b82ce3a6122f8de449f0881fceea6d8e162f6a4808928b02d15fe4c439bb874a1559daa8c51d991cecd14b49d0234bda216e734b56982d029fccc4a3c03ad1211f130409a13b3c48e4965d51ffc016cd0ba46518c0f3073aa1b53c644d5c959ad95ca4929fb3724ef6e9a097799de19780d4200de09c13fac587820ea2792672a9b7a2b133384d1e652024c79148c9b7583a0683bf13fe8efff1f9ffd37c4d80f673292f9d995a3dbe40cec863e4cc621e4a2ae0592dc21b8d059352112f510419ef83ca8f77ae508884c2a6ccb47133f87d3995e2758e0ea40ac22667ade49826003c33e98456bd0e2d525b1fb018f4bd4159d979a0fa3f4b5c6629370bf7be8e697d6fce19eb6b13fe72109f26bf7678ad1c25061b67aa574ae4091d09b9c2a5bf2247f055352662b6a29d11956072d365914b389cd864bbb2d15a8c24669d997a0535ff21b3a804992c650f3d2041ea844fb14f07497a5188b5bdfc3801c40757750a8006811422e3e3602584521cfa54b4c82112520802712326772b88bde4fbb81700494d507ade16ff8056e0a1601ef38fcef61a561dae89c1f2c2ea34108b038b7aca9ab6d213b1904acb1cfb39b648f08b188801980ec20e9b2c05cfb640651e0520766eed41b426d91afcfcfeb1545c7eb6498e2f36e2520803be1cd98b370a451daaad00c5aa5950ad0392e944d9b08a89837f6385179d7a99bb35e3faf52e46472a242d9e784167a16bdfb5ab80b8eb82c2d7622dc84ff61616419a0b2b737462164625b727709bf108a989a18f47de63ff53b225629e01e17a3946f0f89630a513b7bad2838aeb2977661157e3d20b5d420502add11a2dc56fc1b50fa60c3ac9f308960c1592834d1c4486f7586c69fec08caeaf64d3bd74da5d78b7b8445c4bec22708cacfd5611f966dc07b37b045830a47248ea5699216d3e9be371226a1e388edd73a09a9c7ea6c550c065017d32f023e052ca0600421c5ca8e046f782b11ca3403fccb199498c41405a38d05b4aebdedafb75637473e149cf4702ba68bd10631c7a869cdd680f12a68e6a842c89fd168d5b80199682a41cbf34feebf53147f674767153f162be32bef76697cb290ac9cb06127501fe9f7bfe85ac3c85baa167b9651c62addc164980370fb51664756c167882f66b68427f6d5f34deace1011e48102cd7eaa558332d11664e87f4bc1819471f62287c19333180cce7af582c64b01443a49fe13a909c6cb18e0ba0287a7171867544a5a145623ef1d6f0d193c23c70a3a5910efebca8b29f6b4099369cf72b5db497910b8c2d1c5774346b2217219818f0e5c19a0822e9def8b72de287aed638edd6725b5ccb1b9585a49957c30b488ed4526689591e61007c7cc5d364ea553821b18dd6ec72f43b1becbb7307bc932de07bd7c1fc135256175d097e84d5d82da08042baf99d16f65b926edcfb5ed98db12280415fc82809690ffd98fbfa9dbca247aa7ebf3c207a080f7f3c982aeb7341ae2adf2e1291afea1de408fd9f10da6bd096705e9732f33827348a35af73473ca03938320b8c6772de4acab330333522017e93a852b6c7f4ab04152f12f06bad84c9e3a189061b1122fa360c5978461690b51ff2407bba0e016acac093416c66863c1ba653a64639c7555a1c5da98534348b1a53c7021f2b652fdcb80f88ebb3faa767fe8bd54a54f963029069a10ac3781fce046ac45a091689bcddfe272d099e272e3c53fa39b3caea2e4c2ea2843d2be4183a25ea723f47841c5821784e0491a794f2d4a1ebf1018af896b33382bb8c340dc2cf779b058bfe4c3cdfe2efd56b3dbec153a495023102bda8cee2504d3fcd8ef67b8b96e5fa6acfcf157d942a3bb56711eac30bfc815fc455d018c8689a33fbf28d15fcc72158e59916e6b0d86f70b5dbf2e3a927469ccd0714e63bb7090b3901244d198575f1f483d6187029a0ed5cd35f040d7a5a2cb378811fcf5d8189987728c1a75b26d861966a740d59666502903c9f3b79456f16d52ee4bd5944d44cc460296ef43be541768f44dde6bcd9700fce47efcf5db54e732d38df2294882b8ecd96a844d6f1dc15da994fa18c5abbf4ec58d2c20f301858af10789264f736e1ad4705d586ab6099a23401379c7634055ed5f4a4d7a2641e90c79da3775b38e8690d3e528f79d3e81f5738b7411c5dda319c64270426631526f346459ee991d154896a25d0253b0ddd9e1c7308e3e5c0684a69983d65fbbf983c59566920bb4685a74ff605f56d41e87ba77e84db4dc893dd876d6d1ee7d73d16b4e975c98a7c4bef058f57a229374ae80f9189647ca437a0356c69fb0bcd17d7a0608c88d75314c7290797eb0f9517d7f4cf6557567484e2ad06bc93b7d6c9bc3d10e522319392f35ceec647ed68e700b9af3de72c41176414290f63c8be3a10a79600c799067b475a6f03bb87bd0191ad38ff888a60ddf7db37f0de7bcbec62ff206aed35f137c550aea691a1682a95454a4dc0a819ad8aa376c67c3e84c2704058dbe56087f8c6f410334fa20ab104c69d219e6ec17720c15be6a857172e4c8d69c21dd9baa865730e4741033dbb08c950027c9df39c95fd42f1755cd20c2a2bb4b0cbbbccdd14545b68217908365dd169a3e9bebe6025c4151733e37b775188711e4dacba9bd927ecf6895f143c5a2069306e51f44f2d932411a1c4f3cfe1e829a790717eeee07e758f5f0357aeced7fe1d78094266ce32f499637cd37d1fb7fcbd5a3c0ded8400e6ca9d45ba09c1bade845fb912f8a963a405687c0079d3635c4257962b205fa3ac8e97cd8020374ba2b96b174a287df8089d17e7236078cc4d5f1b0c724905c98d6114e31b9e6cb409bcc5de16bc81f5bf05746ec683d5b417c3686f94aa0b6ed306fa62c0e1ba5e17b157d75878dbc5a65ba0cb328e58eccaf16eeb947a44476c9f320080a65f27ccac3f5709367ebab9c045e3c8f7ff9af04ae2114a35728811d1be12bc3273a513ae7a90111081907eeb772d6b20c9fdf6c60d6eefc303c3a62cdc6fddf57b6832d0617c8976a96ff3d67d4cfa51282e05a5a928749d04c78a5644274f33814a38c094beb6342ff73f45ca04f2110b783a160a0a42c321759fe21fa76e010df25ea13adbd135c770b691e6dd09e578b38a757bdf2d63ff268c9ec84e4e5decdd32a8a71a5032fadf7ceb98783a81c9c05585069bcafbae9f933df82bb96b6dea4c5e0f6c2ce08401ba98409b45e1981c040fcf5931ab529bbb843d915c3d10c9daafb054e7d373c9699cebec7fab9db58de34acff8975d58948d08e2827f143f3b563cbc3dc3b175fc80257429bfa05d6c8c6cd584547700720cdad628952193e4b879f79122c70c4594a1655593bcb8faef212283041a61c7bc4ff49e94d62bcfd2637d6dce6a4393108b795df5263f8847c44c2b19c5f00a9315e1b9006a0c8abbd2d8164b7e76e867eb912f8907b0ffa6b2af2e12d0d8998885ec9687f6a3ba3ff593721688a540c7ef52d6aa65582fc7e423de0bb182294db182c00e35ed175b29e4e02b20378c77c87c2c7e201cc19658dd31046dd1795ad74ded1930bce2c6f3ae5d0e997ce4d3197830914270900a827ec944a765da6e36024f5719330b3b831c383d64103738181ef39ae54f1e79d320386fc51095555341cdcf8f290eaebaf8f01cf80855c29188cbf877e31d336289ab4554599ba7cef80198ef1d1ec8653cef99f06a9eae1f4aa5172ea7c3d040bf95c20abe6eba04a8cb66a9fd60403534e44a007e6027f0a5e20aa0ed929a02b3a006a861ee218bcd434e0ab46f17e335aafeec175f34db40d8877b4d73afc55921941c161194ee1cf015d9957dcc6211044669617c534eb81d213d94cedfa228e04b7754cd56959d59b2221127704acf5cc122df041933874337c34e9f348c4aa25018ac0ad6ce9738f5350ddffb925a72b44bb876cfcc91c45574c4a87d9b71667b12d18688548bc6431ddeb0b7911cafa9f9e5d73ef9ae9fc3711f180377244012201e9c1fbacf995dc8ac78bd7da5590fb295cf4aac09d22cac7b5ed2638f515a9a35ec69169056d90f2995019ee38307d2903e230ba0ccb59ab181b68ea076a807f4bdd5b6920a28399188131655c265b045ce1bd1982af1ec88dd18ac50f8c0c8e11d874370bc70fc821d5753ead2053c894c105c44f56c8dc05391b6b0b53adc014c8aa81ebe724ad03597fb4bcedf99cc94a1026745f3975130cee3b419222530c741e0b6d54ebbbf215e5890b3d6e183f0dd3336ee0bf3a2296d3d771d02e65a5273fb2b33ec9dcce530182624e6f470fa5b331497a14eeb01543d4d724d673bb60d1847e23f986d28b03b98f7b5da1a7269052dc533e7bd4e52df67bff9c87a564a352c5ae0e2b0e1f7a400759a4b68f1e603267961019547543993ff2210501ab046844cdb39e44339ead118cec2f3615b1f3a8a644a8796cf85468acfdafbba57b104d8e132cdd9173407072d366acb14640e56cde088b198eaddc7959385ceeed326ebc0a81630480f395105a00a03434ca678068bbafb3acfe5b7dbad27896e86fba0d4ed1104549eee3b9948c64d3ec88a328c0b7f2fa84c00501419b513befa094698193ccd8c6c48d5fd766750ce528d742f2789d99f8daf39f0f8fda18575a2ecd4819c664bd01e2ec28a8076e2bc62ba6c09338fc5b9a12594a93998c5992b18d599d08e98bccfc9bc7ea0b31514f63a5382f6d2cd654c5baaeb60eed2e8947a9dbd96ba74a6b6a5c3ea8ce9ebf1763ba32fc86590390ad946eaed2149f154d0c8bbd10b81a2094b5147ab125434a845d4a7d6441d183090637819cfe14266ca170d04c547067de143e165ddbade01431137a927f6ec1b68c0005a93089e4b838bf078452e19ab7715a14431d7f49c68a702038058da51c9e028dbd64ae48b6eb94cdbdc6b3d39528d0be802ace023a28cd209e55fc5dca8fe8a6063aec20ff407d15cacadfa9b0dbbe8bb7b2ccdda188404b4cf043133d31820d384d1a805581a78b5d22493a2394041ab8f40aece6041aa6c1430589d9223f09a2182a973623f16862475422198029313eee11abe606fbabc6f3187280b6de847164afd9da32e01804c3c12df412c515044024a4529465532ad72dfb84aa5b78e8f5af4bb1b5c1acbcc97550d8af25cf92d8f82067e04c92ce25c48599a1904e318beb098a682ec0b816a0e7159cdd754469a339624ad9dd5e46dd7b255d1031614294b5bc32f5294a067181a44fd8f2a0e75ea55426f60717943129942cc15b212b4134367ad61cae9812b8c4a2d7664ccbe7533b36bce808dc485873e78336f7a308eb3d48d40d2fcdae7843f8c90521126a73f6b32964f062e5258829c01da07564e8aa3b914d2d1f80ac7074d3ba82dcbdad9486bb722c8fc820c6d08f4f05a2f9df4005324bcb0dc70113e028c4581e978742030dbc7d57c07749ab6dc5c050c74e2470b4af2514565325a403a5ab37732c71a997489dad996aaf0dc19662d1bb6bc6ff5213929593ba5f939d4ab88568c3844c337a55777c9d552d5c6e65ad9fbfa5520fa0de56661e9174bf6d73f9cffaeb30089cde6f9c646ddef105f85fcf1a4cfbcdba3f9d69863bb1c45fa2ece4c1e28516f9edb125e51adc3bc44e8401e8c7e6d527991cdc492dea5094c7681e301bbd1d0695564712301ffd036bc3c566cab552f157eb09a8d9261230bda78de809153445245240b76826a85f38270d592d8364d6c191cdc16600ae09e5b46db19418ce272f8de2aca611a47f27e2c9edc07e48f4da041cab390ea70ef8974e11a8b4862a603cfa9ba7469320f9024ae574a38c19521da48233cac6694cb3ffd22d1d7613392cd5e13c56c9791538da0c910ebf88694a27e3e51a5ba6867beddf646b2cb3fbd99a05a93be9dc3b83946e2d595b2285eb9545dce914dd93d3db7a009ae172ba1a2c142395d5a0ffcd1f868b243ad4e426c3d334d57d881a8a8c780970ce414e362db29c072f09dd158bfa066af2ad159a2d7a96fff8ce1d74881854375736a76c1d3488542a8a6f995d29e3cf528f347a4b186905f5430dc0725b9e7d9a55ab3b612a8fb1a8a42b31098d105acc8e096bca1f8924e5b392027298e1942c710a5e97830d240ebe0d033ea6b215ec50b0799c12bc63f6d4a1beaf61b4aa40cafe09700f133db954744dbf4232d38151e6805d7df613d73254171c52625a0078dff4c2adb1cf3db79313ee21f56c05d0724cad0ee34c5c19ed7383d6d928a5a645a177c86795e79c5835720d533f3d96b4fcef0dbce891ddfe2195275bbf6f5150ed47c116e00fff08475fd3a5aabf836600942ace09e90b307f666346ff897485ed761b04a74ec4ea58991a841a99fb933b4248a23fe36991705379b7f66c8106153645033106ec4697cd26ed6ade1f13e6b1873066fa440908ff9eff827d1f06ccf2ecb0fae82545d859cc69457cbb03130f0e916a7f36a38679032076af878a68936492c049755706c264d76e08669bc66450b119e09b11877e01063d0b89cbac268e9174628239fd148e0f3828d51eb3587570da9ad9069513d48db1173ea2a261257159ff866ca54b3125e70e96922058ca3ee500304b47afd6f71b15e281b1214703c40c5a600e168c66f0ba4313b0e9fce520554487e7fdf89cc76a7f1e8ea234ab72319f272551fdb576c230359513e6390992c3eb1aecb6e3d12691133d859e3d3afba19a85032849d324cbc1f5a2531fcfbbcfedb5511423be739a62daf21ce9c114756e923c45d1314d5e03abeff73fcb4bb01f9ebac70a68062b5e9b5d4a7063a9fb0734514fd0ea0509679048942ac6fd12c4ef774e485ea9f41acc56cbcb06d2f48db22086a64843215bccaddf2a48822bef756983b4713f34f1281d480cba39f21b946da5f97d332a2a20ca2b4012d6e0e262a2ce0619c3e9d25b87cbb7eeca5463ebb61780e0170156881f7fd867b1d92984ba4a917c046c32a478767db6e4861601db3beb1002b3b0f86b89702f2dc441c25c384138330a10b4bc49fc4e13e166da339fdbd25fdc1d1e0459b9ab2906f8ef6541b3113f8d02063f6d28889ff62f9b9f3615393fed9793566f971051ef17f1a47728f0a37638011c38ab2f991c3b6b5cb9213b9cc5218b5c442f5bce09cd16bfd5c70227b8c73297e00f3bf7246637476366971bd887057772630d7fe864874b74b2cd553a59e49ff02c3941783679233c3bf9213c6b2e0acf361fddc50267f5ec32974ac40297d154e40c13f428cd95f78933ed421f7b73aa2b43d337cda5658f3189a11860288b989fe23d32902a2565a3b68ad0dc1901fe66f40d8c5a04a0259ea722ba182384eb221e56f66bb0efbe4c9b8ae23d9e76870cf138327554b8a7673dcd8500c398113d338166e020254687f495a084f15bb068de0b62c1c751408fd4e11d392c9a018e69a0c3563f8cf2573cadb1528fcea141bb50140e59945b73f244012ab2d6016a978f6c7a67cf60012b188094ec668162d95daa15360c4180dffead039480fb5655164b53f5e879ba4e67e0b480656197531523bb00057b019c5b32b0e2964258122751f8442faa5fa6e59a367568f0fefb81369271d55f8e4d2f1045f5547db20a0296d8da31ba290d6d0f33ffa12f1fded90eaba92c1b5ef17707e543da95a146b05931129e00e9180b1590a4f12f44a63bbf246c55529bd5485892e01c12f5d58d9f280dfab3bc94b5de7f7f5eaa72b3da910862bac4de9e35d9bbe6da1d3c2bbf7cb80374133e620ba142c01cb0df43406b0bcee40a8aa13496d331926907580583cba8f49b3861ae188843e8db85613d51f26ffd0b2e8673761351713d0765a52719200c36277430e119089dcc408432ae155fa525b58803f3c761195cbd7e7c4f240ca9564b62516ad9e2a47b75639730a645b5efa5a6e024ecef71ffb6ceb7ca59154313210e23134fa74053a1c954c8f820cf4e2a79efc25a130b0b7713f5478ab2bfc308519edf86fd7ec0a6c7c15f34fdf6b556c820d0aae7cdaff72878063c8c139712cc518d22d25c37878f47b17ff9c66fb3d8d20cfba14e3849f705eb9e1e0482a4eda5fcc6674c1c8c23879ecf6a5c2a3363474990284596eac451dab9abb473f4e7d4247152f089c3791bfa8366f9b95c4224130337d2cc510cf17f189d3dc81c640a53e68904c0eb7a6109eb67560c8e72f1a94280642c5119830c5c13905f476b4aa9840cb01346ec3dfe38109ca8afd95e11d8ee339e0862165d083da24da913b9daf25523e217d5b441c2178bea0a2914adc79ecf844c5deb02c7db675db4c3dbbf1ea0a1828e7dbe717dcc3cc6564e61873c78c4aa6de1adfd59a21e05493f528c2b2c8873d51a4cf99bfa279ffe930b05ee315cbb30cd36598723198473c945a321e4f1f0e363254c6aa21e9132eaae38502bb150c0d3895cd442143936d4dbf0c49f29c2b5b1669b9dff54dc405acf1d0ce03cf81559575e2c1e28518e74257437afb4e9c4ddd842ffda7ff277a165dca204f4de7becc30423e4b553a2656264bab81b62cf088958d39d9963cc345758c3180d42e9854fa1d4353da4e526490ef0c9a04f43a02f82fd2ab89e4c894e0863290a1206ec8552816f5f299c15175921d732140b77a9f0d51516eaa8b6581f40f5e6afca6c3e7306b1a803f7aef9ce6fc943b67f2515f7b4d00b82e3a7a847264ef889152841135c00ef3b90ae54a6621b4af428253baaafc2639105b0d83a98211af15b3c9a66bb473a16440372a91c6a98f00fdf31a71f070dec6e353b25bfd21921a59d37730bab7d2460a6489e2b2b46ca5c5f2eee3a571e1dc567fbc16db0cfa77dabe49ceff7a2458d1839b0294dc5f2903c3a4f79ece495c44c2212dac7a1ba01f5e7045094e8d2d76cec738f739983254902afcd9838bd6c2a871dfcd67be1710cd70d96859776a588981372d65b0bb28d4041e0a25a040a341403feaf3af2c06e38e98b103fd6ea774c7de3176e265d050fec7abe544238d063988114392189bddfde31ee77c5e0e2278b7dd1c33b9602f98138c92ed61e67f5cb18971687bddd95ea5f52f0c7fcf6bc6cd840a82411fc93330bfca67598653d44bf6b56b3fdfbc86150dc94540d5c54fce80410b1b4d6f9124238927d2293a1372310b1ecf8f7d58f4ee886e30f2fea5866f58dbe74256a444c4415ec03fdbaa1d97becf6904fd9dc1e5a1508a5e7e2bd7fd5361fcdffef631485971dde3d5712b8e0a241ed8b62a3f9253a80a36e58d801f5622cfd93eeb61762e4e3fe286aba5881834690a20b56c229120bf96f33e199124236d803e8df9ee5978c36970a0d6f3a11fa6543158c8116ea7f38abd145a76c867d7da2b3ffb55acbce08d54bf57987a878d3ec6410f446c65acfa4611676939faefa32c3db22010c5e31866c1ef37177465f901f5fa2a6b781fc87254e3a2a34195ede33d5eb76fbbfebfca4ea15bdbfcb3c8a497675d93f6084936e3e9ab948c0afccc64770382e08c194bf6f33beeb7b02f95da7c46538f34c2bfdd8fa8fcbfa6564de5eb68ad0cfc6154fa50e91ebb847ce9af1be72b13209206041bafb56e3a7a78dac0c86a3f47019155da090037d12aed23fa956780f3671a5a0cdd1e16d735561eeb52da004faaabaad87e1e6af16dc05b6bf143284a680c00f4aef64d8aa4badb1b881a14eb8a1108b413521dce384550be7d6a9a63458c9403d876d1399873cf29ce0879aa6e3a7a2c7e7ff682f47a6610ed105ab64a5ba6199dd56fd8a385051f447b7695ea86b695eac49fb64d0005d62ced43bd3e80f281018b70bcf301d407c4fba11b437a1b304f51b5a53a64e39644a4343c5ea290baedc1768eb7228cf842d98494e42bba64edf28e369e6b08d3245c7c00cfcebf78fa510fca0dad33744aea0955268b8011207b444fd42f931df2028b2fb4502634d85c0007347236227d4bd5a974f40eb462b4bc7fd452f2e3bf58761103a76bed2bf4118ebec0bf0d74faed60a5e3fa0814b753cded62410e372488c50ae4d3d06ee43861899e061a31b2960e31f84fba7b5dfc8fb88d32b0cc48f5244713a5bb87ffa7bd381419e0275c9c6b0fc7050c8c580f52ac582387d256ab0ee8e9ee183df1b97eff46f194ee7beb17431c6819a861b429d7121d8700263a3384030a6aa516063352154e2f326fe8c612f1416dcd54de4e077c7d736abb200778c28f6fa52cbb35eebaadb1f304916b9fb29955913fcc33519180bbef5b83da9b9b6d002aa706df94e5861a44b8486d6ca85de17a893e985b6941015eaa4b57d8e00165325f96a91ccb0e50798d99e33a004b0489c937cbcb463108b82dd339e249aee82e1cf5f6389d0f0c1a8ed7a07f0421f8daee7c91d6745f1d81cf544ccb2def65536d02171cb2f74a80eb3b2c960654de7c3bcbe0b593b8f6d81120c7881502dd0ac0b85c5e62c07c70e74105a0e052d9d35438ffebdd4360a22b730cd53b5a290ae8bd875db17c67c52cb4f4470e1767de6d9c0d153371fdfe625d2df6b882edc57ec5d7db1d64030915bb44f1f1e2fcfa6a0c5ef7c978a045e408636c7873b18ce36d555255daae874fd9e4472a59aac2c3af3be804158dd4a896c4fb044d4f6e23c7a06db30d5cb66e4c43c51d93649578d9f8f1f9cc7fd4455c988268f7faee9bbfcf0cad97faba8bd99ea06336379aa36d5215a2d9b230ab55041b1a09f113f0f93c18b38eb70490380efcafdd8cd1b50157b3c8e9b654dce3b4242d51760857ad86a6870953ebe82b37f8c4ca933f44a64201989d7d73de7813284bd5e4b17ede103910922e20904a9fc55c844d454df5c8ca87837645f073ddf0226b3a5251210f197704fb9a8aa1f7769e5a325de66ebc666e3e6aa4cc3be1a7a3874b46c67a3dfb86c62a9d190262030ef5cb020a074d038c10d0fb20c8bcf8eb29522f1038ee0a56fbe850f4503284aa94698488193341dcc810c4c7e112515217d3c63e5dafd40af7405576968fafa9782d00cae040a8a6bae58309c15a70359f93e8535ca21c51909cfd1b7e21d8453e7ea53ab4b7f9dc24a83436a6ace214ac75966158b876f4a0f90fa9aac1ec62cf3262283e26886bedefd3a0636c72e151cdc60ffb1fc26adedbdf796524a99929401cb0ab90a150b1886bd0d1f994e69ea31a5a139194959b9adc68a2ef87ca0a47b7c80933d43577e15b0ef083e1892bb2d1fc10733c8fd1b1c83567fbc07a1901a5b0021ec3e82144772b765298ae41157c3ade00d2500a3edb76d9dc6dda1bb3b74082174082184eeeeeefde210be1cee34dc5d72c1a6e8bf1831061aec2352df51155b9947f4bbc7f0a84b52629fe10efbcefe713c74cef07b2e32f5e5cbaf37469ba4e88d58f92fdd4ce0a41de944792eb4ce8961b656dc515c71ec25a819ec9bdec976e9c53cff18929143efd46f7aa5f6fb52a5e7d210d72ebdc02ae2ecaf0f55bff1fbf9f75117e1fbc373e91f696fbef926767fbfc10b00319ccfbe9f2fb37be291b55576fc023635babda66334b2b63ef8f46fa02fd9dbdbfb61eabb39d88721fc0be32f307d7aa57fffe2a8f7f26247af2546b70cdf811623f4fffeee8daea84bf13dc51f5ff317c5d1b514c205d83e4108a77c5be0c8d8d8b14b295fd2ef963146d91237e1513406eb3fb25db0f0df17f13ec2a785f662bc0c4067840422bc04d46aed68f45f80f79edc6c85379d73038f3892ecdf42ba83d42d0887aa1b6e188dacadd5dad1a8ffce0fc251308b77d3aa327031da22bb16cf55ab1db94f0c779e4b9c81edba69fa044476c4374ef0450cb659140d481e92e821203a9d4b32462dd5513346fe4379b261b42fa673f3682f46f702450fe59d5ebc92c7b45b3c7a2efeb2940a0f7bd0eddeddddddddb1bbbbbbdd3f7ec448c81c5d8a8f3f5f778c3f6ba4313e8d31c618638cb15f6cecee3ed99893131f621a8e8235883142d1839a9f1172208227682f460e9d0ef9f9a8a587a080af82bc201cb56178a44dfeee2bcfe0cd1756eeaff98b150d76eb33c9aff704a44fdd1019fe2b49d92561c44c863d74c9250d06f4296298be2f5eb030885a5d306746d1cad1b97b46a80167f4fb07f1026f8866b0852cd8fa14a0cdfc3e07fab4a0044c9fb8945c91e4f8ae037d1a8e61e677302fe53f6c9f3d10db67587b1ed86f18088d47f61a7e6ea2412cf674e4a698030ffef02116d1fa393c973aaa6fbad3579c01edf7d3298e2dcfc5ff75c94efaf5a1a2cdb17d408758681dcced1e83e71247a2f8af4beeb14b6e3f3efd08853c17ece7f5f8953e794b6ab5b6be383f763ae4c69ec348468c4c9f69e2eacfcea63f78d9d7a51b38a17dcb8b692bea1376cabeb5e7b13f8ddf73f9183846971c53e50c132152710f6df21b3b90f71db7bc986ee94bfcc5e3bb3fd4418708a1a02262417b38c4d6288f8d4cd81b7de272fc1e5e0c4a8edf8017e31f679cddc316ac3f8e2ec56faa058bbd0e19c88eb4ef8fa2dc7d8eddfddbfb684cfa81fbed678cf4cfd8e77270bffd866740cfe1e798015d8a5fe30ecf14ff65c7379e4b043d8fededf3e01ef45d4b0bf4dcf3b0bf3d0fd073dfb5e4fec1fef640809e7b0d72a41fb6b70fc4f616cf18c9611ff440700fc233167f4c60047eb4297f216fffa5e607937e4079fb40a0bcc53c8ce4e0de3e8fed5130e6c1bd05dd97d25e4a8717d39ffff8e8e2d683fc5eba1473c83abc98ce913302e6e9b86277745b367789cf803e757c9a053bea528c4f99d8fe1811135155b047fba8b1ae40838179310df362fc1f921c4a323ec6a8c58ada2451375c468c96dc8944a2245c4820421444c8af5afb5e4f57929f808782506068f35c6660bb6a5f09c6e89f04cabe7e40a88235b0489634304896de3c80727b7c9d59f352801703b37ff2c9279fdc5e5e4ca33c17941c5f930ff6a7b17d2e7e6f0dbb83cdf14b6e8595df95b2fc174ba52084c8e1e964f9325e5e6b09cc43f25ed109da838f52c1c27f5f03e6d04edd7be81f318e201e86c9e1b8ddfd6110dddefe82c09123078e20de83892f3a3c1d74c01184b7cdcde406f1096cf85d7737fc86ddddddddddddddb0bb1b366cd87d9fd01e0e36467b7777f777c96b8530b8d4257f79ff203c3ef8e0d339bde4e893f4e8fe2ff205eec2f0da57f2cf6e7d269fc9f15f1239d62068a41c9594039b814c6ca8a0939ac17e467e0f23fd3e5215dbc97105b683ac22af3931165210424eea0841588d03113cc949f5c4b3c742345c810a34a98a85c574b0a9238e88d89769604afe0f122c20253149fb967f291a98226998241f08d2b72ce94210554a3ee9819033333508d2449592ff521d46d2fea54897a4e11f600ab2661333c8a4c2bab04c8561aafc26ae4bb850c44392e97becd93317f190f44d4eee20b703bdd9fba022c7e9c3f4ec21a93bd5e584edaa0bda806ee8a28b2e522b4fa37bf89c6c8af66874ffc7ef6c09cb819eeab2c143612af8c43bc11214c9f66934a6c43b41b70d64c121d0064316b4d9288691fe8675746908fa4374090ea163883ebda845a4fd5955510626b00c4e9aceea82620ad8f1fde7ed7e3e8599b6fc42d422e5a2fcc9a6788cb8f3cf8c58c0902cfb2cda184156b57634fa3cef09099959984dadd9534e26c308b094e2b800c8da8a6051be83583c141cd2546c71448b0c61912cf2ff68e4d949c746048bf2dddb494949e11ee56364c2769095e1086e0f352186702d6cf7761e2661081d42cc2362de31b3df8991e80b859845c3e9fdfcbcdac7dbfd4562e6f95293991892083c1708e3858e9c39e9e79330a6aa7564513ab408bc18983f346f07e58340790ae02022f05c7438aa867438eaa5ea0e4a8a922ee970c116d525d8148ce974a95e613b8cd5f2ac1fb5608c610d772318df3b667677c8d6e7623918923e518cc4ccf43f2d181f0a7fc6171f449f400f9f02117831365e86714994fe8b4ba258071cd226c8eab1d8cfccf4d04c9084554a7e8f1caeb0852a85612344f46fb64f5dfc0eda5cc8f280cc19de21734f38a451d84321da04597da278880e2876b0027b5fb2f6984dc8a65814bb43e6fec882b9abcb43b8ab29ae891f8da6f70848311636c4dbe5a6ea729405e0162e1f75f645bc644d7b1a1dafbd8f521dcf057ea4c2ea64f830669f15f192374c44629a4fc94b4462d2fc479a6f6309ab0f0da9c67975b0200e01850993ce8e1e9383448b272d98270b463a04c98aba1433fcd76df6ed54576339f3471887122edfb5a4eeb87638a0438820fad461393faa2b13a24db6c374a64d86d8902e410c63e5f4a983ac8ca44fdf514041a3331b56674b70aa4c3fde2eaa5c3d3aaf164fce8e2a87a6056b329d94520a73b2f67dfdb3eb43bfe30ee69713e9a493ce09fabe44d07f141be1b98319899935dcd1c83b66a6dd0e9923bec2d27ff4bb4f8d91903770f4a9db3149fd46d8e8e7a6b4419fae6052832014ec103a200b63f5a9abae7ca44f4b740861c40d5d74d145c694740936d76d8298ebcd91a80433b33fe6c274722ca64487a3a0c55d1d8970f721dc955070079331d666b186bbaac5148c82bb6af1863116ad2e2b8e80f1ea604a30579f66dc31f3c4241e322466eea1a54ba3d1e7e1f780b52e86e483b19c2ec1c7b09c8ca93015a6cab083acb793b5c0769045dfa70eacd8b2efe0866b74deb487ac3ec92519be25a8a0154a32fc1d2a32fcd7412b9ae40eb6a012a8654832fc47fa1ca34bacd1c6040b57c85d7571e04393dfa7343ae99c71a33f6f0e90e4e0484ec9cf0839a0419691d12558badacb7690359f6e43b01d065913632c47c920482f291837c19742b0f0c6513a9e097e75ed5457112caa2bc37fa6a99dac07b15d75d149673fbd1d058a8891a35f22f2e3950fbfca2b04acae3e35ae4b1aeb783b8ed251e1dbc176b61e1db3091451c9d74ef6c68d2e4126190e51047c21fa044b377a28a24d708824f0e5005f4a43f08c1e8f1fd17c67ce37ddd50ddf2ba2fb05db3d462927ed473d4a3927a5584f9413cb7a32addd6394f1bdc4b0dc8eab592f9e168e8b0b34d40619a321c8185d22638f3231c59b54489fe463d8cca2621645e5a50a68067de482de9e8ca97ca7ea55892e37a9dca805db4d9ce88a583cd447d78b81a317281873b94d0c6261928c7d75c256158d5a31cee180a83f71dcc402dbb94de8be4640877de46a80aa10cbfd9b3833c7dad10c83d51cc33868d030df81dbf80edcc651728929692a0cb8c71e3a69947dec270ea665657825ecbb120abe601972e0ab7174820d7d7d78b29c7dc8a5fc8c911ca1af782684ab9bb0c7404fac54a99752c2bbe82265a4bfab3047ad6ef0d527507f27c246ecd0d808b7f1f268e5b674097b6963e147dccad8bfc03067341f83385dc21ec2c0b024ba84fdbf9dd1632cbfa24263e2b8097bacaa8870676d484bb92f732f35711c059f893e9683d2ca18fd6eeae4946be365ed61104b0405d37ccae2d7260e530d3fed1df5523019c34a1973d49ce299b02742090919fbee2563930919fb0e266313e7b9607dc25e02c1260ef6938a3e7d1efb8904cee8c7b4bf3c3c2ce44c9b22a794a34fd10414ef62e487bbd1e717a394e3ab4bd87f2e74d225ecb9fba4aec076922663d84f1c87d6622f69fc3149e3c363d21f03c344642c48b10058e164eb0b98d426aa0baa0b4ce03b7d5259d8dded3b8f4643fb46ddcdef3d0804edfd142c7c0ce8d2cc0fc219af094a28c0c6a712d2e75774c9e3eb78f81a953519bb33c31bca8fc31c003386ab98220719bb32c3ab921fd7838ffca1a132c72722b1bb14f4b9be2f66fbf7f8c57cfe3d005ecc7c31bc927fd7929f7c75d59e46cb579f60ba2486779af14aa6ec11bed173f8f5c1ad4dfef0d62ef5099a26bb2f5565ee2a74f7cf5e8c12d93bdb3725731fcf5add40d733775f155334217fae674d6ef5c574f6d7287d2fa6c6bb49eed7288bd7583413b2236144043b857c45215f6e82a232615d509db0b40bdb8d62103b5f9b57d8ada74d91ec3fafb0fd5d9d47b0fc381bdc1c92fd274bcb30bae9827935b11d65bd463e1ac9178dcb97ec51d1c09733429ec93323a51f3919f990c7510980813c8ea1bc18715c9d1f257c88e5ae69ba1739e6f03223ede66a85cd15369f8bcaf79ecdb81f600ac64dfe2db0d977f295fdb7efe68ae6c5bc255e0c0767cb9774027a4779af23143c99c0d30558dbfac2eba22ff57eae56a0ed7e2eb7816e67edb3812e85f76917a6b68b4445c22231cab43661e36b763bd94861fad4343de39dfa04af742717d30ccfc57fde7986e7e20fbaefb97c9e6b9882f7e53ec17492fde716afe4efddec994f325565ff913d855d528e0cfbacb70ca61ef7034c4d979be68e9b3c6aa106c1e2a1e6ca4dae17036db6d022cf9a2c602a0b6c7c6dae1cf55236ac5993578eea259ec99f891a17b0723f6193bd699e8b4f57f6f7cffe5265bba6090267d04091fd1b489fe8f7ebd025475257305dfe10d3d050966b2ee9d34e9fa40f8f49960978267fcaea60b23f0b253301072626b15dd33c9ad3c37dcc0880560e1554e4e4e0e0e014395204a7084e919b2237313a00a8b4b090e6f75c6876ce9dc8f4291392625eed91f28f1a4e9f0fb713746fef94bd7f7da7fafedb3b61ef6f458d9aef3fdc499ba0d718631119a74919b760a3f6327a4f97dc499720ebb9c0f757107b738484d3272ab46769f16375df56197e9792fd1f8c34fe0d5151054d228028f862e29be0b7298b90ca1767bcf1c560d9375a6f8c301c45ef2465ff8cb3fd999774a44da49b23845831040f15528586846c4245321cc233c10f0d21b4654d545360bb18c25922f7c7a80ae14415e9a6f6936c48f2498e45476265784943da04a592bc24c397d895a1a6135531e21aa421a41bad0ad24d8630cb4b75324f260d89373e889371141419894940ba04e593827469153189a64bd0e3166cc88e4338cf057e4b8eaae75285ed4238a49a3e752129327cf8a4d0140fe52f0f918064d22a9382c097e2c53cf732bc5882ec2f255e3c819cb4467fdcc731005452c445ef7477ef401d68355e7b949362d816da33807d47b861e5527e474852840c7a651771f981b27fdd7d6b4d75a23651997808d032c4753502cd45a09dec9fa96caaecaf72b52e5e01fc455743c33b807f76352e1e02b49ee7e22f4b60bbbad27a888844b80669937f4d81ed913f63a43a2d5d72f70fa9b3fc1a43a66e46a01087c4c8fa3c8229ad8748c6725486e3ca4dfe108e609f624d5ca1c056ffba83057fade26f8e6371d4157e107790a702a9402a900aa402a11548ad40ec5720b43d4629a59c734e4a29a5b5d65a2bf71db4f97cf75ea0ef60b27d94ef6ea47ce763b57dd7c32533abb0a1ef7ab06afdd49a2ef5a8b1a1ed3c177f1c99e8693491ec8988f07353d763958a9595fd536e87adb23fcaedb056075fa0db65385dd66936d95d3b64ae4f6f561a7689645f6390b8ca6e4b9b9cc6203e8a82dd681c357a5a8fa3eaea997c5b65ad27bb4f34d8674540eca6c25a4f979c2e61412f1a4757886a889352729788ed23257d8ea3bfa373959f4dfb4ab7dfd1b2f3f6946edbe7b74e864abe261f56fbb5622871c51a6723fb28e387d79b794fbd9dcdd5c70cc7c908f2b94460dba7fe077732807c5e721b26e2b3c920019cc1bdecfa10e521ee3a638f82bba63d0f31f7794c7e2731d9411feac397a192f103ce80cf6109219536440f3111f0b7d744f2e1d39795cb381bf589e0448f552925acf0459293d134f8819fcfe71333f67979e987aef62917f428d73e0daf1be56a06e96bafdcfd201eedf520c63211f0e1571eb88a49d8d3faf4b98b61f9f3f4b5cf567b6eecd2a73e7d1924d85e7b192a1924989c8c965d50932ef5430821c4649000e2407185209ebc45efb954892b37ad4b8078383358900c950c12c0192f3be4647c0bed7c424e68f0487edf37ed2c17c2c36427ca17259d14ab980661a66ddcdb1e07da98704ff2fb4fcf07f47ee4f798e4d74590e4e824e99b2ed2364e1a48d3f438e971f2a242894e0e153b4b72a8c0813f1eb419f2233f156492dff74efbfbd8243f9924bffa69f718a58c724e4a6ba515c3b24cd3326ddb38eef301814628291625252514128954448f85657ba3d1f65ebcd81e0cd1066f27ca6fa5b4c2f2e0ed46f9bd26b0b0b296b54ff917a3fbe464ff19f1e663a64712a6271108112b54d3a4fc1d9d275dc97ebeecfe1dad494dc3dbcaca773ba4a66972a58bb801f4572086a19474b286bb4829eee2863bc8f19065ed37ce46fded5f9f34ed638cdac7774e266ef771329aa665af69ddc45df431d343db3a1e79fed61100482602f43df25cf9ed76306fa69eed6947801ff4a3461fb4f2dbd36895ee15dc75067d08779de9134095e3cf9f18b423763be28c5d0d3dd688a00f8a1ae601143109f4f2b52c8bda6f6f7a0267c4df300d87f11981ed08a0cadac6d960f9888988bff21a8b966571b26853d3304bc6d9982c8f4d2dd3b438e3b368f1ca0cba70524a9fc61b3368855ed3138883f695b331e3f7457978ed6b57becac542f713a5b374b2fff633a333c344c4224c698033e4a77c75547f0aa6f1354c44fcf9da6f506eb893df955a79be066cb808f9a0d7719f2f77c4ac7db723e6edb3ef4aad0cc29f11d822dc95b5df50aebdad2c9f7236b42762cb7e723e6c59cb5e1bee8a901aee3ae023cfcf3059afbb66a617e61863a6f8fdfb702ee242ebd7ba41a41de0bfb701ff35ec07b4fb033cc6c83d204a29e503e49c73ce074c4a29a5f40134155f03798dd7ececb44ddbbc5e38385005552dcc59c176b6a6e2f77b63221137b6e1d847069176c8f8f5803ebaab10caca7a7a28abd68a736419f691aaf529cb3ffee8d3cb9e68aadc95b25ee74a72e38e165142b14b6d021fa44f358ee26ef20340f5d1510134f50691a6361169224d6da2da80341a62246f11a34cbd238415a39e3f5996f4768e194b4d970d9ffcc48f188e589f662dbd3497a02c9ea95f8bdc4f31680b9f4a66ce5a83b0290aec7c0d65ab938e3ef5663a93b65a13cb9f0b73dc54a7e6dc033a5531c45962fb5f579a3198e907fceda03dd91f6d66dfb096c91c67a2b75e0cfd2933757234d00e15a8c6c950125822f5319792ea6437e6cac94cc94d013a79bd6a70d80d5e131e9e1a9a9c816de83c7acb3ce3368a024be9086c76db5d6218438285f493691a8fa3a4009dbc5e1c06c5f326b903ed845c2026219796595acfa55fb2b4fc435d3ab6030b5fb31125657b7dc23e291af8dc6cfefc1438637e376126ef0e986dbc0c619ce176686f886111e7879eca5633396a8921faae44802ce30546879c96cabfed2161b3e881785c31be5012393e0ca9482c7ba53c694ea6be06391f2a8700b961d00e16856a722a3919d16b91e381e6a8e2a2948fc4a230a5f7c341fea4da7c947ea146951a50e6c570ff425950401743f5a27d2700191bfd6ee600bc18ecdf479973c7d2e26444906369b13c01422c77fbadd969c6b4d7a5ec47937291850ce389e3aca30b97b85c9009dc89f33d1ca4dcaecc91def870883fb91d3a539f536ed729e56a5028d0dba338ff95227e3bc43cf1e36a5028d4edc2d7084b82858f71356ac6b02758f8f282b2782e578038f4fb08b46361f6acd229a36359e53dcc638ca116128cd76cd85ea33e36f73bb86a1e377cf7bac830be7b4f5e36bca02a378558be7bae95d1776f875311fdfb6cd4f23152be83c999311f89507ecfd2bad8de385d25b135e0950ac3de63c971e7e3724517e624bee22bcbb2158e096bb512fdfc274ae132255127eaa85c152d496cc516b6c59b68136da24d07da11e50d49ccc951b9a1fc5a0271d021e12c71e1bc7815283f37aedc4424d2b49060e0d015e1ae8e9a5052abbe5021e170714864a564bff14754a9542e8ab66d307be23d3d2ad766bfeec45faf0f8769a03c2f1235cb8fdbc317ddf75c267e1a8e3b68e23c3cd6da4f5eb944ec872e91cf8f2e119a6701edb8a92d13dfd951b95c6889bbdca572b7ecd795b88eeba85c2dfbf5242a9cb7bca572b315249ee3392a17cb94c542853bcb76b229cfc2c970cfc2d9e8ed35bbad5c229f0f5d22f6472c97ae42ae9aedf58fabbcc877b8f93564561195361c728d8ef88ddfbc78f1026553b9d4553d3d3d2f3c88af1a7b189c0c7d189c8d56b973c7e572c170d2af17894452b93207070787d44a5a47a7a525368bfbd935202cb41ce99b1b158c36d942161e0efd3504e955af546eb37ae66f44e0ab5f342f080bcfc58606d2344d939bfe0d2c9bca8539e512f93c57ef7b26cada38eee16793c3a84a668961931b38c8c3339f46afb0bc0721ecd3e706feb88140601096efde93fc813783268138f42739437edfbd1efbca3c3a6eea6f1285fc1e026f066d0271e8b749422e37f573bd254f490e30dd01b20c2a9d8e669096a4fc7bf962b27f3fb594bb92e59d4f306ef6cc9e939d2aee64be5e295794fd4e263b3b4d346ef2f0d050a6201e99a944898ece928d9b2e574eb9299943c2e5cc9c24b3d5a2ffc1b6948b92e9ca51a09d9d2e398136611e993718136ea8f870130787ded024700655411c6e9254120ec4c1512c94057120b5dcd46ff3e7c3c968ff892a22ee1f27b3127acd391b9d21cb0531b91a8ff75315558558300907bf48382c2dca626971a416a995fb41b308889b36d30664b91a7309426a6a86586eb226eb3381d04c9a205d5aad503819ed51b81c72b9585aa4252026f4e5261d47511daa439b70db0531d9b20fe1ce6a29b886cc117378c32f4f993fa66aaaee96e9ea49e84988933d3d2957cbf24a27224ebe526e96e5954d5438c9f3d952e41297743159e1e44ecaadd9af4cd26a2961e1a48e4ecaa579f2c838d64132e2644e4eca9d561cb9b9a1e205277170e45cc21016ab080c4eda682b5bca8d795ed00e880969890dc1ea9595c8fd1da90ab987e4570659ad849038595393723d7bcb1512480b2769244d0d35703274b4d15586c760e1d3e894db35c81a38a992aa940bb34fd50e5dd96003177b5c8ad833ffc576a99336f56bb407f7d017465fd409f654c4c9404c9dcce9fe104a2821c445c457971a4402d7c07be5497bb219e79befbd524634f05ef9617884833728dc7c14181be4de0caa0371e8874f27338275302fc77ef75c289fc119dbbf9ae9bfa73a7046c8456ac1191ba6372ff814a2e80b047a2e08cbc2f98f66c6197df161868d469cff0b49310cf7bc80b1bde0fc6144c8aa353535305ebce064b07fa1c98dbb9e210d54ed7409c4a44bf759d57dc1d59099629624e47e1289f36f218283033c43b4f8d7c0d9688e48fd78897c5ecb2e7d394ae309b9e00c96d6772157eeff5c1a30f1663661693dc9fd180639c9fd11b3b4727f0d9ff92a24ada55f88f814b65b6818f2abf2cda0af1861703062c0e0fea1bc3c2f380394c5c3a1bfad0ad4935be30161e1b9f477340cb99fb46345e747e7fbcfa7357032d80756b6b4b470a39127c91da849ee1a766c98df2f6ad85e9fe09b4f8337cb36dc70032743a46299d21bea7332492cfc0e442f27b3f3380cc4b365d9d9a793d20b004e66e3348e8593d134eec596027332d9c7fb19817d0d001b8c4f09ac54d130b783c41b57e1cb202692a74f6f4a22f5b1aa8151bedcc45c8dce98122400620ccfb29f497e00b81d2a04316953bf00389989413b300f80f3c19774214808f2fcd98120fbbf92fc01703b94b096df4267a558a6d18d72212a5289d4296d0a5f0e9ff910c3dc2710c9f6883e640fe8634a288519b41783dbb46eeb2a28d2e852f61f7cc34dfe1cc65fdddddddffd6ff4d0a8979a9a733ed89c610674c9ff86a332f04cfe8e61f78fad219e8b13a958be5b71f26700c534bae4cd007fe9a3b5f02a954a9593ea627ed147d9ddbb9f10bb5f60be146dad0f451fc35d9c2f7bbe1e6494f24697e464804f5c257eb2beb2ff83331e11701c3221bbc317f3ea1350881ea2883e511566eb372773440a727a229413a74f54f4e919414795fd210f64620722e9d3abc2084ef6ef608ec326d95bd9fd677cdf9f892463b87b095184fc91cb3b72933facf535b5d05e8c2782281299b016785ae47e5ce4bea41d1ecc3247c87fd2267709ec6be520deaa75b4a700ebb163fc1d32c37f7ec50e425e9f48f15f26f9c3fa025f72200db4ee07b1ad436cb4a25a035b6960e1c71c27e6bb6b0578a6f95acdc9d9c3bcd8dcfdb56dcf39bf7147ffe6d0a549310c7632580a61b4c8c94028ca14e66bb52fcf34dfdf39193f59c8e157f1bbbb7bcee1604091dffb16b9b3dd4b9e73ce79237e71828d78c6480eecb39f3192233ef63398112464ee6ec874cea7d115a64b737ea581eda7e34ecf506f506d509bb00f85097844cc5da539a718c445ad961819420674a9f2fc8f46b66974a906d661a5817ddfbd54a1bd185dc6cad88befc26c0366d06bbeb9f69e64cc7e7347c8704f9f93f1a717e6e7a899fa333d428ff2332adfc348f62cdfd994c672b323b4522a97250b455ca9d065c149d5fbcaf0822ca852598d2ba572392657d049852e482755ef0c2b789093aa35b69b381d805904334685682ba0e814da8056248d566560572067848d7ff7e5a7d15ae76ee28844d10ad115ade0360ec5739be70203fb522fd5491ab7e1e0e352b08de40f95583d212735d303a49342f91992ff8b261cc149b1c4800727d5c348f624ffacc695c2aea04a7516a34cd02568086870319930dac26a31b3f88945c69e9601be668ecf569f561efb591f7b1596d165b92af73d53773349c630ba22bab14bd8cf253d72629b30c9d8d71858ece14be3a6bb7332dc6b5bee260e7cd184e51c15aaa14bca51677832f6356424abb5d6d8c9c543d17013f6623a634f87bc18fa9854012d92b10d3040e6b61b0630d17845cd019613bbcaa99d6c9639929ca681b036109abc65ff66e2a1b0d591ec4f40a14462899f9b74681486a1ebe18c911cdc4b0e5b3749a83db96dd3435a486377bbab0ca7604751a5b0ad823d5daa3eb0af4b8e27ee74c8525aa86380dcd7a54cf25cfc3df7ed0c757474746a1ccbe91ed0c78cb4a5bd18dda69337ed81c05ec33ce867f433cc43f4187ea9d18fbae1bcafba49c6d67495aa868a585e6b9aecb70742d37ed33009bed48d8b236bb55e4582f3453ed62a1556d1e8d8b2214565b6404fa38990c58b09bd945864299990a544820d58054ff90a5de8c473812b16a36038c27114dc7153cd68f46aec48d6c825208c63f4f0b5e468542be8278cad56b57634fa6fbdbc68b55a3b1aa94a2f30524a88d1ac407876ecd3d4624b246b244b4ad9fa01b6301d8ec340a05779d852e91882dbd969a99ebc0961d8e252a4900b771cd5b55af95ed36f04097eef34cdf6929493b39333ea5e42ad02a98c809ee5d2fbdc645f74b9fbb9da88fb948b83c33f7eb47cf63f48bfc5245d8a3aa3fb522aa87158f6dce7c89ecb1ee21cdb732bb793349d5c856eefc08c5e76e4836e0760e8b7eb2a3725e9134827ca557dc90b53b246caff6cf20929a1c8524691a59c22cb4cea7cfe65204f58fba107c1d48b4ef26429751e868ac4a901cb9a4ab296056b302ef62f6ef6a3cb52abb52ff5e2be9428c5aa71947cc9236308c7158df38040ce03721ed077a38d2341f7fff8f3f87cfcf7b924887f78299dc6b1d58a49e00c9112597ebca28a28ce90bb9abba824cbf75596524a297f6e2495e7fea5e4c71b476dcf611edc6b4fb18649283cb4df3009e5a57e05e5262165b491358e729e67922f57b08a73280fba52880b9e4b8dcab25db48935926e550425c81add2677044945e3de7e734684de3e0c6192ca7fbd5e034a41113df63f583e43a97159511ee55554fef33e521c26a97c3e07f61f1155c11a9e6159b944b60f5dd1af685f3f87f615cf1851f9198a49a1e73eaec857c139b417e1990d934298f4437cee81f0fffce7fd3599a27dcb8e24e876de8219e576d1e6e578831373b6e7fe87f61fec335091ac462b6d35dc95b706fbdc8070b491ef485ae526f9b5dad1975e3a18995b722fbf57cdea1b99c92a677dfa037bedf35c4cd225ee4a964e965f5d593e96691b4e96ff913692469dd8ea9294f2e1aa4f4ebc189837d883fae81e90ce68025bc5cecf273c40ee76c5e8c4c5d9a879fa6717898b844562941bc3255df2252f26cbf4bde332975b25611fe912c510e773c88dfb29d481ae23f621deb2842db91bde748966d8f0c66bb576d4165bb54cc243d20f49c3203c97e811cf1cba749233fa9bff2015cf25c62fd56edbd58226bd2da190186b1d8de0fb9e3d5fd582846d80fc3286d560ab9fd80aabc156f3d6bed683e4b85c5b3fd121c8628a28a068173413bd04d4620b2e8e141902834020f00793265008056674a855c9ac710263cd1a04f196901e20bfd7a8121ceec5688d86a64210bc89ae51d023c80ec790dd6116b273195a911d3e21fb4788bb51900feeecc8896d529960b8ab48269e69dcbd960e10de2db764084752c24b731fc181b53bb0f07b83520a71e7dd6d6c947446a48138f8bf7fb5ce2e6c21fb532d647f0999647fed6221fbbb0d18320d9cd13bdbbf5483b60f06e2c363fb0f7e241edae6d985e394a1f61538dc3a2d79ca2cb7bc9ee18dbbe38ef379b7dcbd935d4e0d461769a67fc409839d4fdfb3a4b93588e12d77dcc19a0aa100b60a2da8b229bf2ab2a02467f2e13ff80f460861acd2238cf86489609eb96fb8c5479a2689902f23d3342dab15c3b6b72ec12a7bbe48596bad3034ba74eaa00a87924971ec1c5d1ab5bc0e2bcaf1f2ca1923e76814076ef4d0fd3a5031d53d26b939b063be0963a94f8e7b72371022835190190a542619c6e0c5c8ffd7a1df8a1e0825a4c2a2baa106d2c6dd60430d2d24182f462c2b2aa2500a8a057db8ad061b327def2e90ef8b372f4a0d182042650356c88be9d6691fd23f2bd05e8cce57d9abc70aa3782e3c782e3d80476ad6e8166ced24f6e6d5257742e34b6c29bdfe8352ec34aefae1347d6aec15deb809c3d055d969faf4fa759b8ac1c697de3a14fb8f2eb9d3b82a07b683372a9cd699b6b11bc9a1fdf66f267b0d63f026c32428e4b9608fbdd5e0e37c80d866a343c630fc1f519522c1a78ca852343abe23d03c51a3332cf25cfc00b9e2c0562d58f81e7d451b53ad72bce1a81684f005e6e505d6382a7e1e3eac819109ed23d75c68d9f6360ec7fc06f2846579fbf23b7eef382a63e59457f9e7a8178f02fa88425ef30277ad2b16057f7057d2522ef7d9dd60add6c27675a5e6c9b15f39764f8e2aad6b3c7efc9a6871af9aa65d11ba7254c2c2d7beffa522d79847ffd692873f87b97fa9ffbc7a63db3c53c51c0a6ce5d8583c9718db26b6ab5df1e3fd20fb20d05b4cfad4386a7e842d47d56f979ba2ed1a58a3c3139fc7c8031e0e8a5152edb29dcddf8d38d207e3704cfa60d207937ee0b8cfcf6839b6ef6f3c9319f9bcc6ddf9dba58ff5b72bc7ef2ce2b72bb61639f61639361739b62b46eee7e7e07ee21923283fe3cf3d0aceb13dc533eddfff328d86f9e5bee99c1c7febde05e5b68933de681f7f0847d178128eaa1f3bb81a71387ed09f9a90de71d5aba779dac5aa69574db682b147f5d175747393e76bf189d114368a3c2714ae036bdce40f7a203e9f074599c9d14b795fbc15dae4e48963a63d10fe9a066fe078adf9f2e65560fc45da58158a616b2e91555a8e827034b22ab8b33636b089c438b6aff3a64997e6e7e16b9feb0fb99a7b84ca1f417f385c59952a6b711b8d6a15d2a509218459a438b2624d9436da839e46cb9ea99adf4d26f284a0ef66cc1ecbb0e791fdb625d1a5f9d885aaada787ca271276c37ecdafd5daf93a8204b3f856beb52f3109b68ea3fac555ec47a3cf35225fdb3e4f2f8e0ffef163f4dcffc0de6f70f27caa228218478649f03f1193e0e77370ff19610c718e8a6167615f4547453cb3d1e883a7eb740066fb9adfd10847191cfe4cd810bcce732e91e76422cfe9823c330e23a117f28495aff214a6e6cb2ba58d8d8d8d8d8dec995fabb5a3d17fa9f4f2227b7a1cf5522a9a55cdbcd1c93c8e7aa9579e2a58b26ae64797cf6a475f124597e83b985c3f836e3e0fc23c40fff90c7f3ecf43fb8849f4df5b7a757469fee70ee1a6f9f1c61f76d2384ada3cd3fc195dcf34abc5dd5c55185d2af3fd562e9ecb943dcf85653b69236d66603bd9237b8e20c9073dca43ce8823503eebc95395a7e6d788cac5e1f8c70fec3fffa37e96923d5eabb529df8d32c6a161108e4f935b0c3294ef9f8ffc19ec3f2f718eac42ce081e605ef91f60caa1ec7113922ecd5fb9ad08fdf3fe40647149972e69e55f8ab4827f78a9d9848d3b2c38bae6b3b61be020ad7c24adf8afe01cda831e84679ce5a6f9dafb48d168af71d47c5f394aa39942d0fbe700bde319232b3f131f84e7afe01ca0d7f08c3f08fbca4d536e11fae779c4073d109fcf300fffcfd36815912a6b2198a58dc4991f59b126dac456c4893a314774bb5893e7873a6993a58da35eea0627cb9c3cb1ba7115db60d47ce5a85eb9697eadd68e46ffa5d2cb4baff2f4559e352c9b1b9c9c3c5bf62fcc5de328d0cfef95a33e3fbf598eda7e663fbf731c557fce396570fcc0be6acffd8fec37d07f6811ed73a7ca4df3eb4d9e8fe1e4f9192bcfd7eefc6d95e773773ee8d2e4d903ba2ff5b92f359bb0f246da7469ce9f416c7f276df27cd8a44ffd1eab5ca8146e1466492b158d0c000000006314002030100c0945c3f1702c8e0439f31d14800d80aa4880641cc95912530819630c21c40000000000000024610000c0b1a389590ae6f3835f47f1a61b7d2147dda83d2845a3f34651aeac01b1ac6d338f8106b2ffa6b89195c169e0579edd123b587cb2a1e6adb9ef04b7cd7cd87762bc5ea052546615101c91e7160b97e039ea9146bbe9288b64a77f9ee0123a481db4dffb86eb06310917e58409180a1b8e9287a0c32dc8ee3c7a3d4d00eefe280214d6debe3657cd2df7640a15f7ea0d4eb52e2c58b17f7366aa7cafa37200873d6e8ec75926b4f593658a3caf78b7c1c87b86fc3371df210b46d3b53ff79836cef3512eb1d6d42a4b208ca479c5b0333a134d2cebcd6048bb1d67410c579c4524c8843b4523ccfa99d18f736a36484f37d1fed8106e76ab72d913b4701d667703d433390010bef9475bda1cd65dbdc6340195ad3a8db5ef96128d07ba9448e9f94cd3c9281a20e72fc6769c674cc84c44784a72686a26ae500186f698b45cf3d6271c7fde840a69684c41e2afa3a015d3ade0e1b2a69a83a47b633902254c9f4c755e8ecebcf66bc4b4b842014ad3b93967350263d3fb1449ede1a8db237d9d66078e6a916cbce9c7da0b51655a9833d48bb1af313a3a59ea771331c73d027e657384f5bec209fce69790b1db3593a99135757ea9f35ed6217d64ef0322378fd6853662598a797ad6eee99f3d7244e891063dd9efa5e6c804a6b642c09bf7a8c043784ae64d36c1122153a184cc77200a335c665d1d92d0a002b7d132a9a4bd40c97eacb3b08f26285cebbbf9a4d5886194181714c9887d1eaee36113274ff3d5e117ca0e4c2e6fd3378e27009a927f4c9dd23c936ffcf719aee7c7fc9534d40ac8efea98098d90d84c939f0e7263dc26f69450653718145f376aba475d274b006a6dd600cc9127287926bbe9ea85a459fcb96c34c70c25bcfc638c74d54f5c01d233456f78e6e747b18741ae241121a82ec83e00e6137f15fe213898af1f559593b76cbaaeb7f920349d6e6e692fa0b6b076539c899b420ef9add52e967ec373e3b10b29407a432972bd58d78a6a88404949a473d5020cf4526db7c5048cf04c3b0938e0dbdaab88761773c186a02155a5660f04b7fd0751e04847ba38fe32ca87f495b64d364d0fb1314c8b7795269dc64d35bb7fb05e7f1fea363fd859ffd702e310a7c50860218b537e1b4b0ecfc4d2a410d62914981642732c55ee636ca105ee2ccd7af6e5fbd4417d40f7e1e136147818d127e9ab442917c3431601e8e83270188f29dc884b9855f40999ac1ff16b0a9913b5eafe98a6ef2b3448044ae8478a94955b38eb5deeb54b07e7b9ebb0ba84ca382968c258f8b09c178414b1993f80546be530a6dcf10f45aee494750b8cdafe2b9a0e9dd5bac525ab686a21bd822972e3e241146dc249b267cb267d17e735d08a8c9340b941c7d8de3c4aee6235947ba318cf70b8b8504513e52c64e463f295c7e936951829399aa4c1cd2025dba1164c98f64d8a43cf2eabc7619107a63319eeac39b0053d7fdf78d6cb4c4511f79d2f8e43d50ce204c610ee75e1aedd4843aea7aabe82d85f93f8f8543f31904510d092ed264487002fa8da4378df24d68868eb4e3f0c56c643abb763790509588b6ae9689c9bc8c28f0cb5c09eccf94dd7e0651ea77bc140a5b4296d7bfda03b01b646712b83c7b2908087d829cd4281c22853a809ee31523721d1b77b23ab23ff5f294e25bc0433afbfccf489228c31481f43ac4a53be518d20d7fd36ae351a7a7f06b71e906933c29c348c1804e47250b6b1b7151364f7502b07ecf38c7dae14be6729e96c4c87e13cd27b011f631db59992417639dc85c23de19528094ef9c37d8796083cbdedbbc008c35cec3440df4ea9769a8617f761700e8e518ba02106a60f0a57aafad52afabd12bd1ec34a2544d225b0cf50f9dddeca59d984cdbd186360578156192e989a0fce0d4a54adca1ad954889bb6d9e88d7393c7b44556ef13a4a0c10734451d016008394c2720745163cd0b6817473e0cdff401aa390112928c619506cebd734e8ca5cff8545bc1d872e8e462b6af783e113ed761c1ad4bdb220ef58747d3bf9d66ec760c0ec32e934be37f3ffd3e0f38c1f8bb4293ab00e15b9811d04cbe97f52d43a9f80ee1d6184de82bbd68310f975cc9dda2939ce887aa8707bf2f0356ec381333ce644e72563025d3441914ce85f9323797c8e4d501689941c440152e31d6b37c616e8d14b0de9648a82b2df1a03f273fa417c5f280a9f2917c63604d2f606396535c032a47fa90e69db59d79470f7aefaeb073787b73a3653182eaffa3db5198cc2d8308fe9c6c5d38a07fc0e6895fd44b207c58c658a8868e88512f3d8efbb969aeda6d221ab06a6cb474541f8719a00fcd52c41d2f88794029b6346a70377f3152b61ea71d22b0c5d215e83b31c17372b53b462789e53ce2f9b3c4a79d7f014eb14477a480edad0ae4730c5628389f69dfa4564616b91d689f27035df9c6703cc35c8c98ff4723d2654d7b09f609226d8fc5cd328a03f1361ae915f341c0c9d3f9124f05f3e3440f1fefbf456142823f747d694306155cddbd910d1bcb0703060cc8303b000aa3674322700072ad6300fc43ed8e85cd1c589027c6c90fb824844206421a7310e18512d2a841d238238972c995d6d89304c2e93a8e6fe2a70c25a50aa249bb4af2f31d4684a5b178661f0674789cabdf73fbf16addb9f4690055e2d8e22e32c785c4a1916d70b4ebc64fd4217c77fd8451adf983e04c8ba80d61d8a9e4b88ff9de17e882bd57ee99aaf34a5675e15ae9b2ab7e5905a47464c448a0b016b07a0441102a83d30556d48dd248dc88151409a234ea644ecfebc7216c189dc7b3379269ece99e5f56bb6fdfa0de7f051828da4c96887e7384ba35044c10db9031cee4ba17501459ac95f20c4212bcdc7cf10392e1c6960768862beb3a4b6b8910a6bbfea00ca43e9083fd881e0c7ceeccc1f89c6122e8453ef7b99c82657d6ce123119ddd42ed34a0c22bebd569a7520cd4beb94454ddd981df163249fd6b8c67dfa2d615f784f0988bed73f5bca24a262e64f067b3acc2a8ba816e03393ce888d5833d26b5f1151fb6acfb8c717e20c6ee270857f58e13d87ec7e4938866f81982a46d20f07a281dd61628572d65f3d229332c701bbaf7070f21f197190b36d018ee378e0909b057ff0703792e736bbb11c6022af19976be46f17cdace96011c0a59ec22eb8ac70e31c6754ac049825bd50daf30231000fe81237d9ec1b3886fbc514c8d5ed5fde4fe9132f2ee65734779e8e2784670cc97d47401ae2382e7548fbcfb89713264adbfe631c82c7a04f236963e070641d7d5388c015b7fae0650ef9c6a36b2ccc3cd79475763731e417ad22769437c728d78b8502b6b3928dd127a9db1a4d0552a2171cdce5fb341660ee19333a6780d62495aa0876cce5a2bc4c6a89458122d3121800bfbaf0b66d6d8901ae16cebb9072c50a9418310ff386e139d3c1bc5c018e8c23e4cf0b3b35c9a62e10bd9481f9a83fde6d550ac3f4bf39f550e5d96a8783dab334e395303bcc37c03513913f3c72d31efa64668759a03f5be1288cc4f6e8f82d2557d79236a733af281925d476fed9d3c7fbd91f7c6d9f826c08745c620e9e0c17bd990711ad094741b48ebddd6ba4c583a003a6b155621010bfef29a9fe266eee2d55466080d2ef382275fdf548edf371a7004d7dd5101e082004efda81cf88cbb96ccfde551f98d8bac9d8e2236122a6deb14731d5b0be5f9be5ea5b350d8e46cc41e542d2bd13a546d2d88957eb0dfa6860f6db30745e38618873ca26f485a74e0944db34c1c4edf294ac56993e565303568018f6af7287073a9cdcf67d07f20a2c1357c63ffc0e8815dac9fadcd6024cbea1e151958f4effeff8f28b6ee59c14a59172e22810471630dac5b4fdd236813f4b0f165019d8760ac5e3d8a81802ea25bf20268325c8ca50071fa3c998a9b4eb4c3dcf7e2941ed0885092dfd648876afdb26c5ac348a7c69755c0fc9ede2a8d75b3c29d97d628d212227c56054ab9303a0553adeaebbb7b8d3e2103d75bd80161ad8f1e571d2977433e71afdefb7a562c202021c2a3e92fe91e9c5df80e0f4ed03b3ab122390de11d450c8fd5dc6b89ad638a21210244bcf17dbdf1ce865765edede602354985ede6e57a3c3d3a28f074e751f51f8f6dc8a72c414dde0c9363480b5e3b035d59e11ec4005908b37ce73f6388a404cb3161c7e0bc360cb2c27af9e2c1996e1a64f2d2c97248baa9a1ba250b51a05ec3caeeca30e64fe7cf951876dde16700b6b88b7ac41c672c807e7dfa5c3e54e7a6b8feecf71bc323916614d82e2d1b8de44ae46b1aaaa130af1bf4d369bcdf47f0786bb23daabcb8e517b1c84f889827a4b1cd5460e74dc84cdb0b6427dc440f55fa75e8a3a209465cdf2a4dfd9c5d8e11281913b35c2c60a39ed3c95000ce8bcf7eda568a385d79c907878f84d1c5095392f2e0298cb5d0921cb0ea491c70a537876710a0dd8b4b2ec51b77db983be1a88292803afbbfe58da27aa5031621814593adace7533195f83222e993452fa499faa373729c9d77f4d3aa03e1b8f0347988199b84cc37855402070da12331c5f4929d15b806cca412d97413fc2c184aca91809612412bd8652525210029461d7243c8048f6e0e1ae06a5bb03efa0da6d69375670c45d97aa91b5ab0316845542134b96ff34aa21cd6eba5fe791b338e10c2872d1735c981f6837203ed356885fa8b3603225a20e76da32e436c853a8cf1bfd45820678c1737028d9074fb010d3366eab17d207635dcd2049314974df221e3befb44f087208bf469b1269f9815e67bab0c5f3f64562bda0d5371c94d02a6dc327f2877515dc0c2f2ed457ff051e3ab63f326007c90bd590a52c4d0aeed3812f3704b2ada8d01a76c8d21b37c5f1f8218a2ef981b4e88280e82e954ca050dc19846b1653889ede699ec472c5448241045381af81bce248b52e348208d42edb828a254776bc1971ab0c0b7aae1fda8d0095ec8196d66829fe1d61200115adc868aae6115d8bbf3b4baa691056fe7987a09b1b81cbc739b5564471fe40d437feaf6d690e5871697145d9357b133d298197bac65deec934d8119da8a2650224fa84a812ea35e7c6a8aefa6c4a99620aafd8755244ad2488a7cf03b54201015b4775ef3c0dc93b8dca490f0cc00a4cf45e8b348212b05ad4bfde3f9de4db3a09deac06410acf9c4e7c1c58d332026790d79dda9b982eee3db4ddec4252e3208e566105502069e24ee24bb6b85c77a742d8a5d64884c06acb5526bd943767e77534debcfea916151acdd9c9bbcad35ceea1fd73ae8dc0a3289f57d95dc0b988508c37b55ce2f32a0665ec90a009616ab0c4cbaafbe01d1a3b0ccbf543263e89fc908989b424132ac79db38ce4d44a570771c1ec4031324838c7048ae035084e24686b0772ca5beeb188aa7800dfdef468635b7398ec98a10fb4502b50311bb57c0cc7789446d920ba90727f4837e41ae8264980293e2a589d5de5278093fec9894174ed67507a044d32641325000e2b5dacc64d8ffb0f7990cfdc9ab1be34424c9583aa4bb8a45e2b2c1d4c75dbca797a5c20e3eb3eb763102413bb574ba9ecac9dd595f58ed8c914dd710b408e7e9ffcb139690a884f35d1c2833fba95f297b17c9311ee384f89dc9ad0d99cb396793c0aadb28f16d24ea1872da9ae587a2a4c151f3dae8cab0b12a1c64a3fa3c2658346d0b628ecc8766dc220f8c720c828be5a9eddc62e9b7192d45572a771d8268ee1d4af1008bcaa3caedd83aa0fc94c293b8f7cf210102fa713943a7f0fdb9b7c3fb1cfe5e8aca3ca47a09c5ddd5da889a31d8b695ec9c06f00a431810932e6268c8fd2dbd50bc947a76086968af865245b3cbfb41d010943ca8eec06d91590f7a24c4c1c17221cb6d40ca61f5992773a50cbf7b3ef70519ae2801802771411cbe7d297350e011c2e4134a3e329ae8a2accbac00dc838e1c63b941bb71d800f29ab7633bced1bd7960b2f088df1f2268b7ef452c6cbd712d2bd35616adcecc3168410434fa8ad065deb4ac1971aa33d00e5282108bfeea7775a2c2e32c8ae8cb8c097ab20423631bf80468b7f033733f027125f6eb8f75945e99df7a5878e0c0d73228ab5d086b9c08e679302cf63b6880047f5bf6c7590504ad3b11dc1d9fa5d78aa0b608292a50ab7a86a9ac509c343c37d985322ebe5e7f1229cb8dc793f146548114a6f45214e6d594b32892ea59191cf45f94a0cefa3dbfcff349a69b6c7a799fd1e2f1a622da649b2e0e0b60edb78bf7ac581b1cabf2a077ec9201d19b3f2119d0f47b0bcbc1a3fc4d7a59318861e99c0fda4f502d4039afea4ef47e71d79fce39d3c83337aff547356d410edc5d16bd749654aeb96f7bc442ebd3b25543f397dff1151c92101e3a81853053ef54a8d1309bda9bc036be00f033527f2f89e924dee03f1bd893e4aa4bcdec549fcd8cbe9bbb9f4d94e1ec27b0436fc20511dbd7738f061c66eaa0ad4072e2208c80044c052491fb2d601500f8bc9fe8b3099821689f6af7349bc3e8fc605b1b0ccc5a0c4f0c484d29adce90199cc1848689a726460496fbe322156ce0d65b6fa8977a10a95eab0d6f6e7f9364915e844f35e2e4f6dc9ad894511be66c55ca42e63e8d273f6a2ab89b4d2d2e01880e16c9e2c273d8bcec4f9187bd1bce137eea0f60780bd6699e30075fc5295f39381f9e7401bc6754a2c7b81ba896518fe6ad277bc69663a0908c4a5b8cfa8927e80a3aff9f3ea3114fef6997a62b3b0b6b4b86b16a88500d2b796c66be8ef6a74ad570f7e70baf1295b9e8bfc9e1ed1a2e0c23e02c5c9aa7b071a57868ea914bb972c14ec8856b4ba4f0ce50b7dd94067d8fd9864dee4ef741b6933b0fcd2ec310db126d7d8330ac952f2aa4e334ae60ad09bfd77bdc8314591cc27cfe93c3d6393f9d8c624742e7d64dd65721db706e2fc942eb924c63e65eba8559bbc6a97e36d5680de6bbb5645f5a75e28fb139a024b944707ee78cd1c46495b7066f9a6a8f3d84550a368ce870630983ff6ad2d1792e8b320fd737b194391438464a56ef2b2724837d5fae88533ff9fc7d0d6b539326599ea9110775202eff89dce052ed95a2d97822411ff63883c72e7141a8c9dd36931becee041da5bab8d2f4686e8e546ddb44bc74a854181262de30cd894345d26223a4d4d12afcd037b4ad3d356b119342299aba981ed67bec5f0f4ae000048976067887fefabdc4b313cf48cf96cd0929aeeca7b50f9a158b2e10c4a9eb574eab1fa8b4680beffc243d5e495d2e9b0d8ad6a340331278f35bc733279ec64b772d8667544614d5190b700191cb5ee4742e0d103a81c4ddfe9b82aeaa73ee1cea1c8bf94655ea7fde1e011c8c762649bd25e50fef96a0109525e5b01a091699e38d2cedc3d8b528b1d398017c74c3460cd0a5f517f0b452461ae03559d832e7408a8740358ccda21ee21e24261c135c1344381e83f031c1c2c670db17d551f6023ac4967065d578ca2d8e9b407187d8287c16429cf0830abf2c66c360249dba3e2303477ed9043deedf02bb886db8f327ff261bc83efa610200658fcba0a15594be9712d087bb202225444980738049358dc12332460b1d29098018fde60507d247d27d4f741e0253cb5b344c47378d37e05f1189a5acc4ad84e3b8aa5590de7be84b9f4bc0853ba5c07a3ac766c7697c1a627da7964fcb698453dc8efca4e094ccc9e0e4c853a1716203acb15859de15ccbcb770e2b66f4e15ab63fff80acc8da0189b904d14a8a66a3423fac576c3964bd89a246ecf54ba3804dcacbb90abf18704e866ec7a97a3595a00f05e25c15147240800b9aae0edefafabdb25e029ff17c3b334ab98a00a221f4d29b0a76263ac255e915327c040c39069762d9c95888f3a8e449fb0f093056087e99af0adfe21f097a7f57250acae1c5bf42d79a23e0ce7a6e87e89bec1365ebc5c6cb3fd8a366e08acb59b2f7cd15a7f6bb19ec4120509845d77c106f0bf1e217b261e6b65e39e1ba5cdacd7609e11e479dd3ca50f2c775893f76435557f42232c4f8e52146b3559b02dae4a1797a1a7274b2a519c2421a1b3457c6dafb927c442cb04392658d1b2e6d7172fc0d41bd7e7a30c3d447bac7c60f01e90fe818d6cc6bb631dc87ab6c204b7e47ba002514a0e901cc71812f44c253883329f897093458af1d32de1b80fe104bcc2f1307275063780fb8f53d9c670f57d2c8572584429430a3a00bb99c886fbd5fe7399b7bdf4e826edc46aaabb221634ba1fdcf59365d202f3fb4edc4ee58e116406ed02b215a179605c93a6346214f811f8d5e4a0601a7570625322041b22f0197eabc31689330cab1ecb2e6b1c4b6cf0ca19404b6eac69b424812706ca0a9db229f5b08863efe8682263ed00ec03eaf942611268ddb54f51012dc9ce32f04b7abcf3978324d0939cebdbed8ed461ca151d02c60ed1630fcb410ab8e83a22d5827d59001b122a02ff955e208cdb44f476798b0f9e91e2fbd9b402cfbc09efec0e97e654064885bb7fdf134823c53a4c898ce00c12f1a7a992d40b14d40d8dbe74c9173050df2fcdf46cc5ddfb02b981ae012f897848e8b92bc262ed318c9c64c9a12f3c558712da706ef77bbe09ba201028f8151d2ee5c424978a035721a44d96cf86c0c209a89d49a55cac88a67acdb7e8bbcb2be683d3ef890b3a96e913f5a7312d5798dbbda2d614176e2a574677ab1da5e44097af241b5c59d6da33a7b9b3e1ec9b0df548a32ef44381e67000da36e1edc481dedb2077f9ac725411ac170b6842997aca8452e020ea25a2cbc826daeb95ad78f5fe07d3137a985daf8867fe62fe158c4571f7e4c068a90154f67cb0cdd98d8baf35817851fcf9456bef9fb18b37ab29dd44e740eb4f838af8cfa86c3c6807ea02c3279b5219c5665462f3b351bae3d98bf98bd11687850d0a3f8c7d56ca88ec30e256f14487a0f4e1dbd77f1e6d458b8695ebf0f5e03e627616ef1c8d4c2b4e144cb955427f75cc79bae6f4409351886b052ce169fbe3346a6428c9c4ba026562f870b19c2e539b9b49880809b85323d0d28be20d89e5fcc300dec5cf587680eff0757a90ecb5b4408b969190a2196a6774f8cbb4509865000a9a9d6fb362b0c05be2b76619ad7f423a3aaae2574aee95315af4d26bacd8cf8daefc8ac24671dd6318cb36ad8d7b224e686ed1483bfd0a346af5d821e39f2d6255923204a96127d320d69e8405c965b495e63502559d9e0f6e762378d1ee2f52de5ab6f5f3d9b7d64f7398e557fcc0bd002b5903dd3bad07b9f2fd0bc714926201ee5c9e5551e9da7a4a8c92307adfa25306062ad70a09768b2bfd84c5e32b044d5186e07b12f8f388f69f1ddd73e275603b3900091c8616c56de2733b21908af69e1354ea2a031ad7e6b627f8a39ec0ed1fa05924a46246505c2e965d68eb25dc5d8992034919e9bb099790fcbec2d2693b00a604453bc382682a25c58d06fccbaedd40c1fdf5ccf660e09b5edf2822330ca9e395141f83355bec12b9a80eddc74b30662843bda2c0b5856241a5e995d0b6207c4743e0ec49ffc77138a79a27cabc0c5d38013aaa0516b422e4693333ec48b18cdd460ae839ee8c2cb96d2cefe1cb8782c95791cc752cf5582578915e6eb874201d62dfdb0c97c95ea5001203ac9de4878bc86766a483e2e0cd66a7c597d01f58e985ce32766a655d1c7e20bc48429a9cb80290f5ea9cc7aa1fe60586d578f98b76ba0efd3962d31175bf6aba2bfe6e36e27c85f8d2f04d25e59bff25e2699bb003091b9de5bc84fdfcc82d687d5da0635a6f3c036cdf779edb5cd5703f7291b099bce79dd271db86ca668f09b4452cf356d8f15c26da1db8be9f644554ceb567082bd3d7717c850c4052242d6bca229ac9b2b025012f9647b8cff94e618dc8c02a5554f47fee5bf23994dca8459ad6672a55936374c49e52b7ae28aa2398e0f8fde6949adf3bd89533a0eb6ff81a8d5ddadc8c6b4641d5bb922b7b18a77194b321300e6858100a07c8540762faa040b823dc9ff8466d7b1f3f604d90afaeb57912be23a97a393450c0b0ca55b2d5b8f5df405e2add25fd023755e65239a7dcc65258c1d8518277a15bc426d2e17e82ec226dbbd40e8d2630ba3cda5ced7426937d9adfb51fae52ab17ab510379e12d0d69d5c50db54487f2fc39d518590befe5112b18a3f4db702cd6478f4fc7ab4d36d761e2587626835993c6b107980c0277a7b3ede98130b828405cd269bea02ac77e1d0c1745a800b8b14c665c64d459c40d17ba07437f7fe5b9827a5c2701657ca7479ff540088df24c21460ef10091ee8c5120d36f8746c6f0ab3d675800659457203c3c25921f6a34073f1d6f50706e0284a972008e04344d345f540c75fee1bbb70bc51ae2be4b454fee2472e8064d3a7ef7dac24f4029cb0eaa3e222a6bae085c5971f60ead435759a33f5dbbeb657eed78d521278415e67f9d91243fd4b86bf8538f6048ea68970fb2b8f90d608279844c07eea5236df58b5a38c73800aa01df3f22f06ea3326e19ee3219b6117f1868397e470ec1db66c2512d0a8fef1aeefbf5fec1e9347f751c2f341e50e8f7d5ea929ddb739b18ee85b1f1606271afbce69eb6803cbee91b793295dfebdd26a75d76c473015f4b588302c6cba0de00dc9f79c017ac96e84bf2a097eb21eb658924491f34b71a092d77ef2f1ce942e51946d713e48ad29cf142f99ab0b034c136f7016f619430ec827fd0bcea7aec6f0deb3f401f616c586b060303fb99ebfa3d773db59df4f033f14823b83823dd4a4d1dd2cdd778bed576181d11433408ff12ecdd43328628099e5249e93b0d58228db6212f149a646a9bb04a0f43ceb641510d80e7218b5a67e91cbd83a0110a607f3beb8182a2bdc58ea9cb156a5449c695375e6514296dff52aa8fac3505a888ca092fc332ac2dc28b7a532bcadb00b7796255f8a7449ae1a042e4df4d6a101df347ae0f66ee36c2e197e869f898024b1121f07e516b03e3874cf4312700c52d9d0c030a1a2495ed2611906fa2dfc0a5af275e67e9d0a784e783430c8977173c6bcd407a096acfb754d435352497628f08b13d883a87a670926f89e7bccb03768e48c5663388dc50d5f0566464b842189a81b15d1fd517f4da562bed4ebaf461e79602b99f5260f56a00092bd9f0575e0cc4b496b9c5ed78672f4a62c839b834e204d78000848a6b9b29b422a466c2a27983f3017bd93afe7864e74d9f61efe2c5ace52953f9093b4b6da42a6a5c1e44ceb74f1c2a11e3f30b811f88f936bec29911984ad3d7c7ceb78e98e4fd2d8d609b5dc102fa9cf29990b88f5507aa9bb38baf17e84fa4f32837eae8f6844b909486c7671ae98bf996c72ce120f09f66ef6b00788f92fd4080a43be05bc5f0ded761e373a5df71547f9ea332cd852d2da9ac0c423b01a765fb65d205ffca956084f02bebbe36268f6cf5fb2c7770e9ed1c6ec520291c0b7ab798bb658b920b6175ef84f752a2aaabecbd4183d7bcfe9b074a9a69ff8b566d598f6eb40e343df3a1c68d96d657499b41502e695bd4af20df002c74cbf12ef1fddb48819a8058df217da99569d6c0274273b7cde1683e2b29d280fa9c0f83056d4b83fa45b3e61c9b8ca33607c1391dd125af76f841fab1ce2df791dd7064c64406a27f6c1c6b37c40aa3d737da4613b57b6b119d2b9544a7825f57d9410cc0bf936e1a3675de9b1c3dab9e5640c92ed37043f3018d9567738886d5465764f30eef2afae3a4d242ca1d132887523f25ed6991938862036e8f582cc92772c5cf45a4d33ced8153173dbabb8ace016d4f8af77e3cb2fe1d4537705ff9232e2a51c990e5c7ae3107c1c651b03b0a8153a7c6e24e58bc95e5eb17412d04b921f0b138022bb8820f6f0b7f4ae57d5d1bbb153ad99b93fd2d1c078e2c2658c91972f190ea33fcbfb1cd697737195123cdc5b234b1fe15313ae710f252d4fbd3d95f2950306463eb2024b78ca0fc5941e297bd92f0619baae817276db24f7c5dcfec3a3b57f20e389453b11b96ba4efcf6e386b4eb597e185171d74df0e3b69d45e818409b14509850a3cabbf788875d182dcca566d1f5cde227963fd7c0d6d7dd36ebd7ff6e79cb451dde27b850980ac4972949ca51762e1c0ab8fd1742874f9a83b452bd056ebad75a4198306e3edc9f1434967b8ce07c7520fa767f40503fbc0b3a3126809a841909d0dce87a3fdf4486e50bc11f4c1a165464d68be975e368649cf3400683872ea9a977618efcec937341a2b2c0e9f2d8d636cf6d0d0491baef67ea620d69bc58a899f080469deba7a9630c101c70c7885e300bc2ccf6de2b46e9f7172700c65f9c614e3748684a2326938670fb5105183ae670ee460faaa1a42188c6213277cac4037531d54701066160afb3eb05d2f451c458efaa6b40e338ea5e7cc08811c82a2bd3884673135f11ad5d2bf84fe70e4ecacc3a79d123f6ef057e5504845aac06de495be253be1eb9d54b3c854487b151ed443d2caffeb9bceb3769c271bf97962bfd66e20fc97b2dc066856f17f017c5421c99bb430ba3ce4c10f8e105f92b35baad41a5b838e6602b8173956ebcad17d9cb29bb7064f20346d22233605d9f91030386520d0c5ebdf933be50c419e8437fcdebc0303c9ea35b98e5c14052fd688bdce3afaf4e9c0e51829882049400fb6b601e6f762ff2307c120c0888299522755b576a287468f3afc9cf709dd676e385557588f8242e9bc2f19970c15d14101cefef15df58fbe7bc360f3820d40392034422352d088f095affd3c037d3753cc001d1a0a13907911c249dfae88420b8fe06caa8b3d9cd9e4186afbf85ecd0ae39f78af2a4cb59c5e0b34572fff8ea011327898d2260b25b3f462b34e1a65c5768b6509a1fa067626239b556d3f718840e61d433e738f0a9ea3f1a912b4c86cfd6356c3d1db66e9e223a7270efa20d7f2a9b076cdc133d07ae61b54c20d5a8318af2f40fdcdc6f047910882d3a6491c6e8ccb124428dfa1972f4cedb952f9ff278da06e9da200acdd087c5a38f4c9e2dffc9a8c4d791cd178457b5be6c11657a2855433cb0c7e62a19df60dcce7634f97f4315ec957909b46805e44b39838224a2c3b3d3943916a560d368af0af43b8634c47d47d8f542ebac13166c01e28443bf099cf677c73e70fa9ac47e2eb955e0e79634d221e9c84419a702e18336b0299853c4ee981d4ed7ce71ddc2702fbaa2fd41e4c8461e6b408311b5406f0d93adbd60b78855e7ad3510855ee737f8c4943e32308c4f3a4ca2c73de77b64cad903beb195307c5a327f3919040fb16c29a9bb04f93f0ffa649edbab6213db5408a8095797c2477cc4934e4a20b5b2f1d0022b91194eb648b3be512cfb68b4864952cc998b93f918ee11e87053b4003cb6d2379d0f82c2c05708f7828331641e71d7d618c3390583f24b608e53492fb7ce891ebb70dc841e3baa3c0d95c2f0521001cbe47da51069f5c90ab5cc7a28c4f21e83d0c4871e276c707010f03323290c9c5955ca9ee90e1ac67936bd69c24f2a1028eff80f6ac58d6d62aa21a727207fe8bc2a566451359658902fb5daa76d996d90f120993b82a09f5e501a9443db5cfb156c1bba9f43433d50ba8ecc4a4410f4e90727f98d5332d1bb1933f89e0e1bb66e3ea4118eebb9944189bf7c947932aa6e755c14d754e85c9b1047bbd49b536120cb8161e3698eec0337818876e758fc89a08a9614c10ba7be5965528adc3cf9c6a93f3c9a0726c7c9602fec1a383d8b05082ffd16191df03e7a589b000adf763215768e812001373696b8dd987bf1b0001031926626243477a9c553b87d9c85a7bff1e111ed0356885c4350446c8c607c1bc78b0781c243b8aaea012122fb3b625684bd068b88034ce4c39e489b810f83e0b5a5226a44dcf728ea05e5f90d21248a7859379ec4db2f427554ea88447789b27399f0e22618d8bcc4f02574e4b27c7bd6fa4fb91e951c481056e93f8e122efec59037e3b6cae0faffb3f9a3a53531e768a747cddc5345ac755d917482f3c13d39da4c92dbae3cadb8d8469b43605c6ef99f0e1fc49766f2cd7c5a4ca867f384d8707efc9fffc86ba2093888b5029ee8f3b0b5216abd118be12211a3dc3a17a1e36ee201a74e5d0cc3ae500ef00bedbe0d6749371e0477f870eff3c237f052e8daca6a807499bbb93210c79a10d76876d4177ac55520af78f6a2003300daa95449f3a5a17a09b4fbb334dc032cf9cdac9bb746b3dbf5d4bd275a2e774fd8169a4b927bf192887e1daf58a31b387d99d0d0cb94277c7d68201f4731cba3931ff9ec059b417e23e192e6dcd8837069bf8622b333c62bcde75c1cb38830039ecddab59a5bcc016198f2c0aeb5b0fb00d602cbf64dcbfcc7eb801866fcea0df4d33cb617c65fdd9b94427fae22c8449e18c1d527ae2b3443c5da1e4348d440c4c2a4d17979662b5d9260ab625fd2556cbb44ebb04ab645b4baab8d604aed597bd42603e161a292377ffe01505d4ab17ec66d5eb39ee0c93dbf80b8369fd19d5d931308b575cd2d63e674b1bc08e7fcfe06dd5510db9792ad2c995f1b801fe2c82d9711e49b0d706c3deee4a9a38d0cd0ab94ce7a4ecf043883e797e6214ff495f6c2de36a6a3877b9dc4f4901428bd9f2527cc0fd96e7920407c05ce56d8d9e60d9c2cd034733212a8b84497bf33cd728bf505cc1e6a4afaef68597a8f793180cf1a67fa1fe233cc6be1211091c6c2a4d8d5ff17bbcc5285837fddbfc81b4d72be6b217cc0085f4baf9dd1dbf4e39cf21a3c2e19c1aff3b9e5c4d5b2fefc848fe378475c15757b4b826e935b398254713fdc1cdf02a70dc7a3df878365fb73618ef70a936c3b300572821ca9e838bd37794c32451a94deb7d85f8d52db032645b63aa01c4a2e04d109ec2ffabf60d8abf7cce162f576b57048a59133e52e8683a0533d1b457a94c7c7edaaf2b000d3e7a5d4e1681a02357d0ad0c1464adbac7685ff69b3df839f70671d440e5ce549f048e1b68d2e79156505087795de3e7cf8159ab0b8c97836ce9562cbcef7a1435cb811ad682ed6acb5e45948b00bb6e3b340fae4d2f45fe573c84263118b3d1d012a8f6d9dc074e0c490e7e2a7f74548bc1fc94a118d75f18de2953450d7d01c07a85018dc667e411fd3c25c9806cab084fa0b3e058ba75d0eb91de4a196648d02f9e75f100dc72fb3dd47f50bb02162ef452d3bd140fead4be99f01bc3ccbfca9cea528fff03fdc50b594e1a0ed53a75757f711dfa55bdd549db48c837a42f9b174173a4c80dc954ed772815a9232488c95f8dd905644853a08a68f4172525d2b82926c7a7401358b8002401c743348c2f443addef1b8531946945d968977d1e3823bf1cd0248eac75fa9ce1602146a8bb9021b1fba36408e34b8352340f99fc058f549231592145a8defb268a276eea6a9c2cdb0c2de4b3a8f727970856d45508bb9406b9951fd80c6863f833c095f08ba2d23e38078773a1ca5fe6d7a856a73c210198097b5a88d789fb209bfbbb354920e911736733da99c58e90772a12771f0a44aa01e924adf1a54035f141b9c15e72f8a44b2519a7d311a834217a587890ab563aad95c89689fa68ac1328893fe17099f1989f6d4d4251e478847fefe476ed6f1b809399f1ddf64ae3c424b6361ef5de115476692b811f3400b50867c1b0b5b8e60e04125d12fac70a13df4900b8c4dc066f138480e87a856899dc67979a8f3945429eff00f0df5451286574708112c7bf945a2551d5d613f695cb5207aab68eff2c00b36a60a5e1f1f2477871ed6a0c136b991df0fdbe7a0aa814a7eebbe27ab4a2816074d4faa4aee100d23446a65963a6c791c6a889499ecb0d677317e55738f219d3ee5a61f85949acc237449cd04c0b002bdcb1fa0eb102abd21ecee762f2497ccb60ac5714511a0931d7415de4db36f0da26783ac11575facff457e1172efe2c491392c6d26f8696dd19f1f267ef1a821ba7b78630f65d4c1a38fd15946f75a36b006f6e0e5a748e117056e063454fc23459d96055070733d195f8200af9a749b21b7964c55bf5cdad626d5fea42fbbc7f961771cdb2e6d097df73374a75fcbc6d78b9a9145a19a910f6e1a3cfc8cad7508bac8f8308c7430aa256bd95245d998265fa3d7fb2811fff56a0c3ecee1d4ddfd0d6aa1016197d0b908064db5da657d391d7efa49a6f9577b12f71975712651e5aa40c3e58a8e3245e162c1f97beebd5176a067f8c03e7840cb624af0163227a0ea51b3b7bdd66e6493dbf5ed1715917a4f1380deb5527f3e88d7939ea2c00a902cd4e26349d8e11f0da4242520244b41d1cbf737a8f89f673f14a5ed51e035922c58fdc167b1ff83e3d3793bf0b0535ff4e90d3c2061787d828745a19efcbfd8c6eb32a648a65719a157c80bf6ad0d82302b5ea34739997d5f524abe4c4f307906845e572bafaa91883299f9e372687a587802004a624cf16804adfb3873c30c85306a284481d4bd7cbff5331c147abe89c8a4547ff21a1a3b8c03a8ea604f9fe54f1f009ce0666e52d9dfcb8f526b8a07a4f6a99d47e8ebf1525be111dfa1d968caa1e1a7fbc093eab583f598c0e293760216ac6b5b71289994e230a95e00a59434231aba089183806fedd7b71c13714f04a3a0392ee15665b4c898d95f72da2280eb81592690dc67c2cc88ac9181a56050dee232ba1b07f177e0af52cd850e2db96ef714dce87738e6ee5de42466a276628da974f03f492dd2b7e069a23a4f806de2a189e154b73e33bdf270b46a71c25a1f4ee5552fa6d997494f3b5e73786a4cb8e4f7fefd13afeed9cfcc20b0c28c24716545086113423e7b8aadef41a762b027c2d041af8de130cd25d5e5b5d294e68d4615c59541aebb2ebf3a8b5b4d1b4b3db75863505f1101cde7b615e0b6ae90880aa588423761d631f9bbb4907e3cb4f71bc570d7d631e2338e3e153a479ca71039d8946f6187d8dd0227186c18ad3af1dc699b67ea5b23e26384d7332edd1a071c6d04c022173935a357aac33e3fe9d5d4ca7f748a3aecf463e2aad17ed37507a87d47bcb5adc99054a6ccc021a75d899ea1d4094a5bf595cf44d811359a762dd5b5458dda5c9426871207317ebdba439eaac45e6c775050de2318f41a23529518b6d3ef989eeff633d22d6ba5969182992d739b4d5fbd71aab18fee594b5e31a62332adfa79d675913ce23c71ceaa7042cf15b42750fe3bdca38273e6e99173bd6a04002b71067e13d07bd30ccc85196cc6c616199644e8cd88f4e1047da950343f77a7b8424446f0fb47989cd71a44dd2d517268278816c216a962c71f3fc657ddc12ee56fefa7b01dae888e3106ac690162423f2fc014b52af452cc8e22d3d025538e95c5ccedfe4a8ed4e69390aa2d5cdd992b0830395562d0460a9ead7327879f3764b1d3ce9f1ac214e5e1b1d13b4654f228385e31d1843ef899bcd78b716b107db33249dff9ccd5b50d82eeb09d55c8d3cfd5dec381bc4b21bffa5b801a545a1f07d7f772067d61f33bcdeb95c850259789a7b101e478a6dcb6a945be2b9a2638215eaa824692a0d845d8ef29c1918c80f01d03d4803c759539efad1a6e6e9e4593a671b5c2c38f2e1fd176a24a8525b52876f3553911967996869af62e324e052df8820aaa60b810ac0cfe9973bc5a8cb77ee31c8e0a243a13697d1ab341a5cf68bb8db1f0b380371d80de4645191b23a82422712683c12678926b18e02be871c0f86f1bc48a8a0d88f80a6bb22227b34e3ecaf140abe45a79fd90fbf889c9f909da389ad1db2badc87525d024facc5cf812c0ee4b589be6aa54881b3a869786cb8adfac73bbb915bdbe18d2a841e1a3ac8e0bc20e59277500423646080e4a58156a2c3017a500df5d650f9faa14a78cc88eea2ba1df4aa6219532608023c4d4c14891a0a5efefb1c8024cbbef45dc6602f9913122163332623018481f6e25807459adb28de5ef17459dd3a90bd4f42cd5686d73287c388c179efce0545f4d5f1468403af27ef0fadf7ead4314c9b2b0b8113e2943a871c3a93e036b8e195905f22ccf1e463dc71bbefe12de54a200e0c0f93c52e0b823ea01f2c9eb35391edde58a9b66be90d2d4024c832b44c7c99645d534d35228a30a49e32047adfc597fa81f09f5253530d00a9de96e46db3afa4b9549520d1323f2ae73138df3fdde9a607ff3aac30e6e343180e853a402ea86a5b986606ff51d11aafec98f1d6918274fff15f02dc2730988bd306853bad4099ae1041a219a87f777b8b50da389565a3603f3649cab922feb7ce303b2a87c94c6794b2b5bcff5165ae0c21500529e2e2bc3cbe890f74f1589e0654463983f871e69af1785205b0ffea98779d66c0f9fcfc8e0ad7789c7409072587991cced99e0bf45e59922c1d7ed1aecf02893199b04e3d26e058273ac73550ce29b044844a505a726eb40552c150e399f8e67a3b15d7dff158dd88f35742b140820b9b7805eed61695193f9aa71ef181fe53f0ffc29624807cb6459071fd2a888a079240c53a949d1d38a6cd408435f21caa846223f883b3b31a9d85abf97cd8639449c28b6b7e77f1a06f794fc5e585b0b60f9e1e8363a476c81528ce051db1dacf71a85fea8ec96b9e8c16170f916955c6bdb80f3a9d479b2f05243fc312cdc225d19228c2df64ed191e175a481b1f70c029afac4cab5e4718de45f0232d5d4c53523e8fd2e8914f096cc6846387b6eb520433fa0f619b2a46cd1c0e1da17470b13aa4994132aca9518c5d02e98a71f0bedaea4027cd62cc1fff8bec03f828a09fcab6be1798b587add9f0de1db2447cb1f7b8d258b1d6449bd4c077d658350cad985b6640d3ed2041acdc50cf35269a1f0e98a11dd9de4092b2d9d55843e0cc5c7740b88ace799d9e62760efa1dcd796301d6ffbbd247b58d1c2fd22dd7fa5c57b24dd82ddcfcd6c1ee1d25b03e09dad45f925959ee0a0aab6723b371698d15102726fe33e4e3564623d023a1cfe6ae39f61a8cbb3ad498b5b5a9885121f97126a9de6af8d5835e591fbb97b7a05e8af226f90d44f5d14b0199bd16665ae6d9de8b50a30a49737dcf3a946b7eb1d4009c21d8c25c216851afd467b3352dec66ed94077a8d0aa0139ec2a534b178e3882dceb550e8009e60cb40ea76722995c8a34a72a3afc56bc6e54a333544e4929335ce54d8a46fd3a9499ddc7e77932fdecb493b0b450be4fcac3f7143d7203af3aefc395e81e83c297863c71f39cdae15232e00e0d10159f04a52cd51b0c1d0fdac08c131d1525c42fdab1a0d7c837cc4b6953ff5f1a21ab05878cd52165ed03db20de92780f40904aad0733100576149f5801f4eae046f1d8f2de7e473829b7b0a4bf2afc8476d283a53f1cecebd964f455f148c871a834438ed74f68ffb78b3e1e716188d3d92a5af4c79291daa004daa8aeddd4d9efbe199c15f07099eb540de0f18a22c64a00fdd9fcfde9f4eb1a4435f17dd2f7b0c6d10ab3a26a8da998498858a34005509d3e1cc52e727fc0adfa3eef1c5572c4da0575e2cff604ae35134f44269bc80145422be270c10f44eeb2e6f7c8cc3776fbf94821e85d78c2ca914f27a2f56dff1a61a69143eb2baafa75064c27a75b98609a90a158f3795ff414633703158a3ee34be6c828a2774f8af402abdb2f6645a7d8793441f2cae7c6d84978c15015666494bfe0c24cdee756d8059db2c244fa2505b7968619040320985ac4003e9060ccadcc3281a30aa14ef416a4e78f62ca9277b276c06c882a50929e831e09a1ac3bece341eae6a6aeaa23e11cbdf09c294057375eb15b9c9d27025c3f867f4fa0b95d2ae0c9e58af70349a2cf1b8aab974c4430c444a2b3e8774e14878baf0c9dc1575a20f56dbfd2a82eb85abe9990ae4adf92c0dfb51d5d265a2d2e52e754298a1b449817b5c75a2808ba152a5d86941e3ae97a63a3fdc09b6fe71f22ef2a4f542fd18f1c5ec9cfd52966aff3c0817113e3763adceb1b84f59c773a543d8d09768e5ac8e47369ccb9f6685c493d99cd38e232a085d1472cf99f121cac878c5213f1963908ea44734d2e154ac71f153f859a846f435073596b8074eb46eeb45326a96f432372198c40c1b26385850142d6acc3c42562203dfc67d57fc73b010433dba9246888514a4bba55ea29477a886d4e0bfa7644ae10fea55f10fed750f1f0e4267e4663a9323084cb96a351d2b5ac52bf20347ad695bea8dde6af091fee858c64cf0fd3be093f81a6696753dc9a0da6068a585cdfb201c8841d30e8760b3a3389e3887d66a77c70b5f2471afd6695094ddb12eb59f52f058b36330dc86cfb514ab1168f393612e3ab0901f1c3291770d11068daf6b75484a65d5cb499ed690b11e9b273b1f192488c72d00b38c5940f8521ab59157adbb8bd0e67b24cef9596271796874516904b402e0fe3a45e45d91efb6aebed5c98885e35e1f87f0df8fe7ba70e6baa3f6f0b4ca76e6b16ebc644e2905da9738568c582ba3e6b2c18d9b060c4468df1709f18bc6911d6995cd72950460fa949e755f9a950f0141adffbec6a3c200ce715ff2f07e2d0fcef8534029b8fd9fa29194551a1f8218187813f6ad1e07b3ed04f50cb6d623c22923d55ca01ddff00e8c69f20d2c148503788b49e325b1208b890b6215cd3e6fea0d1f49da2949066b5562b177bf62ce07c13317417b5087e35ec20bb5120e6fcb06ee6feff558e3cd1c43d89f12df357b2c2778d289771888e3aad47f27115c4e439bf4f1aaa6bc13665535be4e0b37fb54c7243b9997c4d31faee7d46950d2fc8f0730539285d5185b7251d214a4aaf47a6fb28f78c55c6ede5e218b504df5700b190c59d02d553bd12e05508bd99ab18078b815227caf1e79907eed00a3c36fa49a7388d09f867ac4a838f0e6d93ae1583c750182de7f4587b811f8b3fe31708386a6179e7bda9276ee9f8528b63350ce04ac674a8bec9c654ff9db01c4023b7001863b9e5eaea47fb08f33f95c741dd1684e6c8ca78d53c7f068e0d34071632e08b90f79f48f370baa603a08b8dce071fc9818daec2c655b53c03455ab04779a7c74b79c27c80c1e25d5c4eb38933466fad1cac05b15e6d8546a66aba0c3b10fc355d2894be0a048d3a178251c743a413e5d7f3c274fba27c2f5cfe5dfad19dd2bf57ffd4ead541062c74935ec5a8c5b1c446956dc4065f1acb09f1b07181c32da0c270816625594398209a05925389953c0ebf61830f1a8cd9e3f0d21bb8bb3c494b5e827483a7e3fc70a52189a09455ef4fc0044d127ecb57e7037a9ca8a45cc8d3ad6eb7a08d4a5199879542149c905166568e89856d646a504717b9bafe7aeda4e3bfda39252a6375525ccec04d7ac6468dc61b3eba13ef41fb4faa034e0fd799072f76dd566c5287d204c9625c4709631af31a1c50d959e68d5b8b63e2fa4c41d8b1fb9336f510831258f4c6b177b757f45d96f7569d21058cbdcd63bff2e29903cc3c7274b23c90560b56149fe11e3eba75c001226e638d74f71bc1422efe93f4a1589d46919585df871b36b97086069aab416080ff032b1afcbe9cf692fbcdd6f6d5757df5fd0a21e8a9aaeda48ec78684b90515bfed8e80e76422b1bc8eb4908e88512801c99d753acc96e5ebb51ccf4e22ecf1f83b8211edf0b616a42c36c7dab0df7218701e1ac004e4aa42ac6aa6e5552cee55f4ea01b641eaec8039924c1d069dd0bb955fc15caeebda98490ed1605e5d102db05854a1aea5845fc7d578fe4e9b1b4a64fb3f42e570192168e14c6e7c294e4d45ea65a87df723ef7f3ccbba0dab63aa8a62ab3fdc9ea2c11cab0574e0a351ea2714c372f04203b09918d6c77b1b1017982bdc8ff41fc926cb51d86f45c829dd1abf33599e13327340aacc26225389eb25e3b8208f0526be45603d8097b69ecc80e4e7a51557bbbc5ac8b6fa645f912217c3ef60b656b60a98b0ecc861b2d1ef298338e64714e1626e31cebe0e6ead3f00879166a4ba5da290ac3c4c69f11109dedba6680a273afdc381b4594e59f78b0dd5e175d0e42bed4240876b1146d44f9d116e96d27db03fce6374d02d055110fb62debabc144c9fa350305e5213bee400e2e33e2e311d6593a04e0a6e86e4225c5740a27837dbd8f6c953c2659003f25d645e613d28a3e271d8dc1d65d8bf1e468b6193e229d0cc4780e2b93043cb12b1de396fa6688a28557bca8224d18e0c2c1138e5ef238ca9040efef6f7eef05aa18f3bf0e6c1c68796a096bb6c53257d3594913af7ef9aaa4ea73fdb60b03322bdab82849797929a577b85e34e14b525f179a71802b9aa64c213f8f716bc4fa4ca20101ca8584d68acc4ff60739249e5acaab81dba87241d5cdd15e9a0679a444028c2c07868cdfa69057a7ddc087c0a54a0fdc5854406048a2215f0a40e698d7d274a710e2176d0324e394a3446af64ce1c71b2c37a3a263fe2f3ef9fae6157180cf192d6cdececd6c2a31bdcc713282fcadb25ef2e1158f87b5c08c3de7e1670680d11bfd42c57cb50c8f633bbfcac97753b5f9218ea9fd194f6c422480fb3d90a574394065e9a4c98d97141bfac26e6fcc4c95076f26b03c1dc6a62fe40f61b824408f496d6074d1c1af0b946c72369ebed99f40a28d665b65ad47a9b03d390347a1341f7ab2b6ff7939914ccbf762870ab15a6cdd807e7307c5060f2dc9db1dd85c1b8a1b74911510802a5d960e9d15fbfae7b09b5858000dff29c0544f3d67bf784203d6d3702a45f80c44658148229d1a2dc8b4327cd3c154f6c07ad3c0a0dda5b19da02567afe9f1c4b3c9c4f26e0abcb5a754c1cf83f854afd4ff0fa50f895e215f9bc1d1264c5db1868c9c34efb4c7b9671fbd9694442f83b134d34a5a56b6b51da16c213d32361028fe880411b281200ddc8c70bfa552c4640eae8e6a0a692d29ad5d2ddbbff0f426c4309a267a48ed829ac7f588209eac49ae4490b1d827b007db834d51d715328bda9a0d1c25a9a2424c162772f90de3612f3e3b1ab250c205663600a01aafb51bea4d5d9ce9c39d59f00fa1d3c768b8bde5620f8726a6438999fa357ee77dca04a9e8f707e9659e04a65949acc353060d05b719be7bd89d2afc0552ac84d0a488650b7850e43c4b761eb8b40bff16a3a1fd616a0124cf7a2bf49af87f0d0300102563e5c46833f7d21fc836941ef91f011b77f2f3efc4fa027d57fbe087c25f13b8bf4b4b2ed669af4ed6ea396c60dd3dac645e262d3b7f6b630bd214470e80320d8b88392dca605ca58cf8000e26e598b037d7e4711c66b85ae482e0efc4d9ac3eb8c051f1191f7bafaeaa302986049075d0d3bab0eed07c8b55f2831656a8eccf75f89059d4db5ea437ad5e627a89c078f5240bd81c6e338d4017a531e874a931c0009620211bf516f59f7df73b2eb3399dc1faea1c9068b4bfe9393b1d9e3b846ed27912a493bceca74aef13918f6d0cafaf89e85c05c8dc0d5d5026c838327210bb9b4c94d0219c418b9ed8dc4f17b5ecbf201eb6acd0819e3bf3a8c1fbcf506c87d0280c1918787f18a333e2817266519d3d50bd3ba7504a88b0e94015af0524cd1569ba44e79ab59195c423e0192c4a416a4fb13a07412093327d8872188cdf3d04911d00681e047b59fb063121f364e4d2cd4e1847e18a9ff60ebd7623340d29a5ffae1e48718a04b83c19601857d9a2d60969d3392e5d08713ad9e81f9a41ea1fb755afc508215e9a02ce0d67026420aefb548f8c6dfe3896c5b569963b0c3e042104495d6e5094629680ea4445810dd1b035eb42a98d32d8bf753023cf8c1b0399f0e76d4a8f40236a4af955fc7380d87b50d5871fd8bd269c7e00dd58751ef2ec2f54d143f612d283b9499ac8e131c4eb0d972d4ea31f767a8aed7b0853fb296dee9c21c22d26890f61be81ae7453658c3bfd7a709267da1c40acf002c53eabb86d91363fc3edbace31b2432c3e19935e4ad1d2cdc155fa6f6c3595a5056780307a2cc4cb1a3745bc2eb85360f9676e083c76799b8abd68a905942fe80d135d8d5ce1abb553b441cbe02c06df0c305f53c02c99b6f0030e6d1fc4637c44f13a312ddd140a1e143960f786cbc2a320c388120010251655eb7f340d2506984ecfdf0bff80700e1231c64a099913ed6a12e0140ff1605157d448395999510589c8f4ebf22bd008f91d8323635115eab107ba2ce03d0336ca3864b6102848236f511ba1e06433518639cf1d42c606b95dbf725d56b8ca6e2720c3d3774d66acf5313966e9196224c18d69b491f0c9f658f7a8f3322ca281b4bc37d437c47e4347f4c8c0826f81210716eb3b4dfcb09b25a0b56521a85a9bd467c841759cf0be787ae8f6f912aa7e178fa7e55c622336957063e6748721ab4a12fb26f90e432c4e791d3706d0ad53d5a8422c41b6a7e48c85e679d268df11a8c620f5a8eaede6ee1d9632d575565edc5765ddffd0f17c7dee0af1f5355b390cb02adacf63ae2dd2f37f940ad5d698dad83d9bcd3e6cae13d9e3a6f30c6a859cd936f949b86231a2ea0f8707203b2cbf8ca9a04bc0059ff0cd01726811993280a10f0d23b5a55c65f753f3ccc0e82649f1a9a38775737aab0b3cd678fa44162d432341092222e1e443c9c441ff5d452cf3ca0bbfa733e0f62b9363a1e389b5a69b81be8faab0a1b536b55a152ffb32f6c7f8de9d9591d7c78ec38f639804c04294ef754b0743a4081138e1b9b3b9f850f000f90ece8de3021c58cb062f173c3bac670583cb269d09e1a5b2c756b449a08a666b9497f852fd4e094ff8888e7b84dea928d3799fa85f04de6f9119c9780b2180a9a424d2dc94aa4910c9cac812c3c763778601ab4c0c6b6972726e8a490fceba0de690d69cc37e16448a6ae0c5bbe665f3ea4ec55700d9b0ce6485e25b57e60e8d6be435aa1cd7c6bb10124dc9a1c92f17ec41d19ac333217bd73bf39ea2ead376f466f44778956b96ea731c579f64ab3e262d1066290dee1d24c49e85ae9a7096148abdebfddc8f8cd56d688dbf7ec4727c2f084d578ba1f32572b36cef86f3db765c674115bb86bd8d6c9c241378e830e1845118a565da66c99896f75d878d08d73d8014551aaac8b1e05fa4d3f29e6c5766edc570e8ace197046d35414f6ca7bc9c7d3a5bbccfe7d73d37b272117f12cd7e4e27751899349e6e9fa4fdae779bc93da05bdf87f6e8584639cb62d98005f21035811e94076c8670dfbf46b2c138da3b37847e872ed545a6d3e9274043417d4b32b6afa34e834216d43946a716b78528a3bfe5cae3d5f8d9fac16f5cfda0e376401ee3c57a18631f1f069c47bf38f460101830ee1c75c94833dd8ffd664f8c5f2bf61eef766f2d80ab6122eafa849d8ab43e449094b7f110ad91a81e1e78ab2a0e9e75e30b7c52ffeb6d376db8e82dd155fe8f08e682536cc981a4fffb78e0052b34b56fd4541f0ac70df028795ee6f84883804825f454c328567aa10ac16992828f48fecc35b92a9419d139fba64cffaa8ed0d4c5253bab337b79a34313e3bb58ae1f8df1ac470119742fa769461b61ab64502e0dbcc890bae2864d8cd8098b7eae80113d07d874aaf94547ad7434f4442bda13ea2e696d86215607be4afc940069a88ca96d6d4adf1c330b9f978d3828fc5cf104f02fc5fe108b2f0a47d42a488b59bdb3c6cd65f1e0a09c5ba52d79eeaaff14cc03a0944dca32c3ec1e78d28d035518d755e0c364f7e817402e489e2b24023c182b4ab010fa23bc98a3b8072ec668af244941c0adbfc5b0d0d4e94ed0a3f20132346ea3804e8331e09ad04930f522df720ae314fe4cd8909161be02d27709ec8b5db635a5d9c16b1687bc497489612f74669cb85f3672bb8b04a0b5c158b5bcde355bc33b7f0930fcbb534974da38436d8950694e4dbaaee0b023b29e5c4533f9615e1055bc59e35aa348ed0e9c2c2f6cf5431550b5b99eac00f639025e08492158aaa469dc12f7583139b3efe72e263b9b59109e8bb971332e0d95d5738ab66ef2059effe2ab7471a30e4fca1e5aebd47629aeec0613ad3185702823e6c344b4f3709f7f068add1e2062e4d22c0eba62c600b9b3207709a6a47e1468844574e5963bda3c6d1a387d8103ff06dd911165e8cbd87292aedc6e0387545550efa37fd89d85c5c9b0a103e35084d16b7855282510c5e61ea8c77e27429f46e2d792bd3c32594b099e00567b1167f237934f5211294204b036a810f179b90a747b2841cda8ae9d187250ec1d948bc5132080ae3c01c17a1eac394e03e4bf9bb34118966ac396831febd8ad09054683acc251bfc8c9f48d4d7c5c7f24aed16b5b04741b38d9960a80677f961f24df8c6bc9b03923fb188d6aa2b0665059658399a913a3bb9646c330de39d4084ab6d848357a400665f1c5c2cb861bd990a1cfa54561bb42cdb809e1d29fbfeb03a175943818d279795cfbb84ea1be79c999ce7792407a38f079224789c58a21d60994517a936049487af1bee759dd2aacbccd2b5f3118e7e62fc71555ee8c40e86fa5f62ca7817a995b351f815ff6e50deda502a0f325c522fe2df586b7b46aa80460ffb056732669bf94c138db34f2bd981d9a36774eb130eb98a97715503df44fa22323209df6d119e72eb3617a096f46e8ee2f253b58fa22c619ac3eaa3669dd956ce7005c300fdb1bbba4c366b458d7344de73d4a0b604381ef1142103c41158249180cd9c0487b57c5abd57a9108e83eb7dc987b2a76e80c10200c6c0ccf41dd5c95728ed9559b6090340aef2134afddb6afb8914533dbe31308494bf3034c52e115674ab46a44293dd711785785ca1e8b8ff2e7a4aa9feea3293b07144cf94d0ee0b2a7952b14eb9e704c89268c21cb7625f8d273276a1c4c12be996fade71246e50e52b06239de97c83c1b5c3f999f893e6c781bed71c4ce4e30f8d5069d2aab6965df0910ff8cc5e68c867348f897ec4473ee0334f2d237fd41c4cfa211ff8988fc3870ed75a185e95266c0d5d008264a077470b008852bc8d2f5aed319014155d46717c0cf4981b14cf28a8eb5327c85f29c5ac866690994da1731b8548d15dd909d7f7784d74020bb12205f1e244e93523671f08a852bd18d343fe26b8debcb377966cda81c467df2382c975fb1d9d7c4982df87ec2e9dd4b4a3083110e79134d07e9294bd5e3c2485a0a647b27e2628863761149e5590d9c879e47726685575ebc068dc9552f0c99fef01aafa6e3539799aeff4f75a3d11b8e6fd3842e2e298bb41c9cf5e7b223af5ad0c716bea0581c1abcf6340ee8436ce541da85de646f25d2d3abcb872a874b6349255d7b517125bd3dd52c098d65ce6ef3077fb2ac9ad52ff5b67e5925fda1090d040b8e909e47117d3921c86e5577d27491860c29b073dc00806d20b1deaad1be45e021858f103ba2bc164ef12e162b7dc8d608a62f5067d69fbb988301aeb1302155200f44845688a42f3a160d790486ac3c41915e8160345daa382cb10e82eb0ac2c08df23d065210c9cfaf5dc03e18f6ac76181523ab409c30c6c169c537a502d3567b4899fde39b1b12889ef280028f9df9d66766efea3e229aaf37d57e36a626a0e90bbd881caefbfb370d58274fed6aa3ff491b07aaf95fb89588464ffb583148b3411281fa26c3674f00eaeb39fec7d934f2ce9a8c6cb70c48f892c2a8508e6556d877f8cca9f04f8cc482d5ab9376fcbe0fcce3276a17f68299e59742d0d441c82bfcf0389e773f8a4fd9eee6ac16f1a950c9ef90a02d2c38f529c27e20cbb0cc5660f3859d79b88b4668a4e34bfe3581e28cadb94131a469c4889e16154b913b2d8f5fda7517f2e83a9ec0f630487e065d6209521ba0ec10bc767c89344f6e29bec582103e0782efb2872d3878be70cd2152247cff516068272ad4bc677d65b7e40949bc01f954e057831dee2eb299ee7c4f258429738bcf0d14a3a982cc7f92ab94c5618325f8ddf381f01a2df4aa3b33119abf40ece629633827c73c0af000d4dd4db77a868b33b4c6740eebb5a65f14cef9f45e652ad60947c1847c6345157c3dd87ce04966e6c5c0c74c2197e8720ea380b3554d78c0f27e220ea0c13389d4e25bf49b570a6661c2b5a619282c502040612c9f1644315c8e077726c22cde6c46d2511b71d3a28faa0a590290f146a8ec32b16e8f08655527ff99ce9edd90757755121291b6e384e6c64401000844e5863576e599d3a9ab5fb8ab546bf9642df8399b8658a0a5a15e9433823c6b1f868fba0ab1c0c84b7cd414d3deca94058d70299ce817ef063159b0648c259f5c592cfd1a0e9ee6b099ad227d0de7662f4275f2615424080eb9798ef6b02275ff9b34c8a0e810bc670ea6f450f6998b3d5ce29cad9d2b405c425852988b24147cd61e6b7ad3b0d12d2669255ad322db550cdc18d5b156650cc9754d07a219d8491d56cd66dddf60b9553a0c3d2b1da3fd0583ab7d30f286b2ea0828b21dde136c6b39e3b2e35c80013fad60a99ffc32d2e4081a8555e78a0eb75032fd1b1f8ba67e4c673e1f0b3056a3bb05d2be41e61fc79c159968f5ccf4046df5bfa0a0beb031ee708b400a92b28fe7a6a6eaad1e4d19aaa8ddc22e1edfbc2e175f6a35a76ed8533a13d6429e4d3b77ecd6c62f41cd612b7ac20d5cd4707a46c7f95822e8ab35c1fbbcc052f46286ce76f6e2d06439585f761eca9bde03d6d6a58b65826c936bb4ad477cfbc0e2afcc06253f5aec4901510c5dd59cca000e00bd1e3ad82d6adfc06f65bc81e8a3bb6935074e9a13434c6bef0d6ca99d1ae14525f5ca424c98e0b7e401d6184607d3d9a00ae09ce4a1c5151ce45114e22f08292694a47b2c5d328e1515209ae8d733861791981bb269b780a8897800a21450902d049404be22dad76d7792944c0fd399f9c0713774ba3e87c401e68cb8c05422069b88282b3f40cf49f9ad69019b4586d818e042d2053b4e62c4bb56f07963d86a4a1ab5c6f61c745bfe7c1d0a7958037bccb877c9346035a59eed09a9b161ee51090807031c45f78410665fa7a8ee0449502a66808b32cffb8d8b61eac88294d41bc907764a48d7483a52cccf05fee503df9940454e0ad74ce508696c24265af522d577d43b6ec123a1c69dc952ed15d4b7b8886e61c4f0c2e37c6cad7aab0864c7cc8fbf5795a6b414a12e4893bf7bf12ceb420e59c5c30134ebc15c0767dff33a8ac86a7c4bcf4218e13fca3187c257e66246ea12e60a243ec7cdee7a08c50083df43228be7674dadb1ff266bf175b0282ff682eb4a2bbf6d11e2d5be1619ca7395ee9d1cc457f3eae3ece5db805e914a25ad4eb05902be0216785fc70de1923500dd7281dabfeb0f6b0dfb9bf2cdbb347c9f55e3342e68be9dc70c29b5415654c90e7cb59895256034485c95fedcb8a4dcaabe8ced7bf241fcdec3279758a71574931d37c9013c9e9946c5dfe1f6a841334f9286a641c2ce6166adc448091b1e229943d85ac715b6a148187515aaa6dcdaa58e8c7d11a44bda5091d6b7d2febe0a0384428810ebfc25e284a63acedb095ab05deb15c0bfdb75c3aebecddba7e76d9cbbbc4813a3919bf6a29da5c8b024c82dd98006f03765779fbf00fecae13f5c5e1ca7cf6c38fd4339d28afa17bca45732af9a5752b32ba1c76fb9d77d929cfce5cf8676138859825a01b437dac1834e0f47450c47722e80373dd5a521232218b43ccc4298858ba73c815834bcab5efb4284a437ba20683db3e89caa59d7051028ba70666340e7056c51d97090ca80526c48761755e11332c00b3d1346ea469fac38f980db6fc2e3cfa070978d3d9892ff074b001c35f74f4cc83d30710986c13000dc490e188844826f131adbbd44c487660f7e364655a377707b57e2eb7aa86273ee6752e8c7e4102901b7b0de876f00dc276d8eb4c9cfa4426b61491a2fecbc98226e8698df076c2de9a3db82f9af50da6a79fa8e72715d7a04d296a600f8159c6783c9e255a331a6818ca0f4e170faad8bbb1ecd28dfb91d011533b65ec0b725cfd7502e07f7cd57d7f9f7253dc856bedd433e102080dbb65d070008dad922cefc18ccf91489b76af8f68740e08083b3a81575a59d039899b6c9e6066591c64b41908154bf97e5d1ad09d6abae955b1edc1d5340227c087d7e2ef9235e2346ff2cddc479c00ec1d84a5c6e41ae1d2fbd60c1651c63fc0076a0137c172137ba6a7c2a0d237066c2adc9b83d2969d2795223e05aea2926bfcd8cd4f8371b80b28f3007767d009a8bc9061aa9a026137f101167f04b701fc8465ad19dd4cc230a7bf834e71ca77fa0097c87757f195ee500810879b8fe62af5531dbd57549f2b1fe82ec5a48cee212abf0ff0d715cea818aa3aba47859f0f95294f7482ca20413a5d4f8ceeae14e4fbfd75a4aa6ab73536ebb2b10619b428b0252ca2f74911e595477aef0c067f6d0b2ba16712509cce62d20a3c890a1bb3e7df5969a2167cb33f7e1ad36013a7bc3f10b174cf93bd0e5db4daf6b22ea57089d0eab3a06982e8ea864d0caeb61291a19336f99f8929f1869aea8dc5543f39e51efe2b2d006c1a016eb81693b0a25a359a3358288fd6193ef3f514cb6a803afc2b01eff2d9a9112fb5eb38c30ea842e97a69748d9a9ae54189235f3e11d0e501db68d2cb7d04f2e25e8575f5fba9e9c9c320df12a0f52188b12885c031e245bb501afaa84d1cc3e30da13e128015662419515f4229aaa7f6551449fcd1c7f63120e3a7ac0a27f384c26a88099ab5f0716a75b6a4d25beaab2a861d2e132b59ad1ab4bc05098a8b7609ce3fb32d95e4aa40aa92868553394c51de9c7c0c4a145e3253d7f5f916a500b525b0c9d783a10b73b23b0a986dbaa26476ace67d84084ee87522933715b1c3afee05397e96c1591a382607e70652aa2baf824c38818173e0161732a6936f19ab9b76926335bb8ac0e1e78f0cd8c94923f80b9da82c864236cce0a015350695c2c5dab638f144c9cb85dd3e7461574e55b464bfd4abbacf06bd0c65084f4d273601156f08a3de44351d4a8fec75d011692cf90f33194ae772b281e8a1ff5ed7c47a9303480f90938311c71e6b681a7e06cde7c0a5b508659e52138ee0efb2745f90e739d1801d702a0116860f3ef9451a9fc486c0a3d23bd7f6032b393e4966d50b472813032061d296802969c474056c75669926e69e66140ed322a0a305a27adb0416e60383a9d88cc855aef192b5e197e08cffb1109893f10007fb581dda565e34e385080ab8129acae0318a7970fdb00a3036e3dbf60a2e8836c0c384fea2cf79c3330e5c49121ed366bc2bd3135db850602a1739952b3b370e6b4af0ec93c159170c74f8636bf3c7c0d55b81c702e7b67f8ad25b31c3ea9f51ce1fac7fbd57548f1d34e2a7cea15e228d9de771415cc0e4d817b146b82fe0c02e11e58d62d852ac7f176f49c9e5a17c2b0fa51fd0ca787c82f62656c13f7f76ea2b0d25e4081f04b35b58d274ebc414eb1b0a75e1a7b62c0c898709a3f6f0091d57d6fac5350cd465b7a170cc5d9ab7e2e1f2d58cebbb8a4963e0b259b03446a579815aa7c34fbb7a0654a0aa701353c7b462186c810495904604ba3d5bd14791caaa3672ffc86eeb8cbff93ff907280e702fdd53e66f01e87229faf9639d72f92c1a37485296456f6bdb282956ddcedef14b28f2289e6dadd612106f054a986edb1b109f0c4c5d8e31e73d05ac8f7c24ab61bdc1ffccff67a3a48d72256cf51a77d03f1916728102649a6897fdf03dac3d345871ae307e3e738e42e4854a6c4b515a70dcde17533b5779c9595dafa0a630f8ab68a55a0e655da00e5b66281b3b2e070b3604384dbf5732556127127e14ab5253491600f907ed5c4df4a223cc4f3b7262700a76456245a8891bbeef7a441ec891194c6d28b23d3a7aa98a441f43e05a4a219784952ee534ff831d3fe899f2835e170352845a01748e4346a1c8349e14c0de11344c1a04d17d6eb2da16cb5a5954b1eb73f3f821cc32429006e4f3f0324a2101993f5d8719504e3a7458917f6741c22bf49b6845729bc803dca049cf048466a8abdb6479be70d23b7d206b4ea820cf2dacc990a4449fbc2bad9cd8b3923a76d159a1567d862a200587ef134a87f552f2c2406e280edea86640f56a860e4a8f3a55157cb81eab2000f2603e0fdb9b1dcb4d2f52dd5169d3fc308a4d08188f00ff8d42553ab2041514ed608eb9a7a035ddcc10530187f46ef5080703e97c575956595ce53a45ad52bd179d31597b3fc05f1553cd658b74a04feba2283177f4fcf4da9b0530bf33e387af92774edd7d03d6e5cea9cd182838471837571279a629257011694eb40ef22feb400ceb45940da635ab83981048a90b405d00198bfe8f3c32d5d4386a0988c8c368c41a5ff271f1d536ef4dc4de0e3531708d22c3580bd06c771f62bb1ded8293f85428636f0df6db16ad0d26afc6417fed7dad3a494d4c3d16615ac6f9291d5aefe7191196902038b730bb429011ac7acbf19d5ea69155f387d65b8033d88db8d643bd6202b7edc56a97349770dbce7c5356bc50db1e8a24992704cdd9de4ea4d772fd481a23386823c8895c12708a87170ea1525b2259315b996a054768b02c376f849a1cb5d8b650c0ce91c8975a30655dbda9ce34854808744b7cb484b8febada4fb1ea97c00f55e5f202b182852571eb1ea083cb669502c0d70fd776147802b16f7e07f1706ae0017b0fdf2014d9d4dea16dd3afc1a7826c9b168d09eadef5d53651b61ceb3412cc96c200c5b7fa1355d991941a982d9a41d80da2e7355d3fde36634051adadbe345ba6a86085bc77655f1c0c481d0494c55e59a47c65c1c87b9970858fb89cccd65a91645ef61d10654bde18a1c2eb7441bd6a730772162e5e5721dfeb56a9932187e6b528fc741fd051e2c4b14a35aa2cd55013d006de0eee5d1246d7432448f2d2e88a847bf96b73ed586ac02efa946538265cf7fba26f957a6043c195901fbad6bc93d12e8d9b8aed3c1898c439aeecc057974285f89e8a7fc0d25ce04aa2df73eab81cef48fa787740e4fed0a6e6e7972b8c3aabe2e8d1dd0a8a9654b4ecc6fcfcf83b18ef9b29b5714a36a374950a29e758e0a7d288aa1eadbb9eb4c88382818d800145fd691e4e1bb084d1e881c8f0076f45e3a8bf52ed2df19348dacf6367ee2ca9bf346f6d597006756fdbff7958a32ce54ff719560864820413a6de2bea74b3a0945c412a3fa72c3c199aa31992723bd7f8a5d13aa05337abe83daac980c1f76b969c9ff8482cb5f45681be48f9355c6fcf357f80460615f59687aa105bc3e071d3519940a6a8d8cbc94a1559fb186b9f0398ef17720c816ec5cd7e6f07faf35384a92368f1a4b8417a3870e506cf37c6dd54f976eb4c1c85632e41e6210d1000843252d28b8e33f6d6875d7391a70dcf6ce0937699b2df7a048e3c705c8a9b999936243a881ec54974f3e7a4d763ba46409658448185c859b08ce9954122abe2e73d88a0388219003372c14647bbb36c5d089164e506b0c2d6a31cc0c09b520f42ca36eccce8fbae6a35a01cb151f43f775ce5cce6ff7ae3a124b078a0642c10bc03c227859b7fb8b866ad16ca51e9d4d866c755116eacb2e1815ace285e78bc9fa182afbb79ba24032310c370f282acf064dd4428199479df3b1e0bd6964883ef06870837d19b9d0f91169cb644d4b7b1ca2d2250af07e00027511111a865172705c76c954c14baf011782fbe5a4961b0d2fcd1d477842160fc3017e42442f4a31d5e14421dfaf77bb619ca98b7267622e63c0e9abf2491f6aadfd1b199ab4b8c9223684d5066fc0969659f9a377421946c21eba5fb9ca1949a5092afae0ba9280d454aa0a71e2a17ac9f55ae682f1d5f404cc61d6169892552f38052e6e2442541892daa2255f59d2453fba8a4a83a21d46853e0c25860b91417c069a123504d45ad7554fd1db078aac2957698816c4dd65cb7ad7c9cf75aefaae63da64c4a99962dddfa1cfd51c158421c4db788338469d413bc25ed24f27670310002c312e240b96fde34c5a23a7e13564a19938e84114a3223f0c79203526d2b2191bf43388341be39bbdbba90593d9af08870765b2d4889f72a0dbc4ceb4ed7db1214e354b6ea1320728b1711a4f914fb5907c5c4572b7a9a5a12161924b1ce607d9aa5162f53973c790f6cde621e7dce3520907705c75da04ea5cc3634d74d92bc00606a1a2107522f9e842a27a74722e1be82d13f64d205791b4e08f4e2450ab5a0741b226c4387c889a14942a9c07e341fd2ab0bdb3cc7c1492b3b6004b53a575a889cfbd1bc98feb81c05e7f6a94f395af18c64a7761288eed0dd44a725a28a2805ec3e543eec3a2b3831975f804882a443553d12d6c2360e0634dce42582a64780accf1e7ed3424d93a7db429ac1f09d8aebd38bd38e9021055743940f44ced9293d7969f9b726c602c39a8006fe626447a6becb3f4074f5b98b3f33938008c307d8ad93a3ed216ea5bd2a978c7a82d0fb80227532cfd5e6fc097ae402b3505365c6fce9d6dbe227f37d83123ddd2ba2db5de37c6967c6ef618287ac0037a885534dc082b79e1821c1ea1fdb60f0ddebd450605bcba7d3d9c5817a4efc38f004a54f5d744b4f034ab29556fb6f344f8d30ddd1531a45ee23fd361d4846224d2f188b5a95ea206a4d4597dcbb28add904ca7b42a7b34c9b4baa94f9100ab52f87d2a9ba7da01d0efdaf4faca6efe187085e7b806d92ca4f076b42bf519b023854ec1bac6c6beee63578ea212e58cd4edf9bb8875cace982baf97b06133acac6779fd9e8c467d485268c488c4da39437661776e0b687c209b16c0b6d27696bf72a5f59a772d293ab2afd5522600071812f6a7e713a87c6c86b9e723bd8bb99492e026d1b5e64e1375ec527d77ad4f4f0a326ffd5b8ef48ff1f73928435c2edd9c48c40bd6d279f560ef2ad7d33b428fd76d516b3ef494a763d96f0e7768a9fe91eb106111966a96534acd0858e20c077ba7e220b4106510a01a347983ce95b6fd14b4f84bdc5c05da47bfe99a17fc2fab1444599f14c4d3a8930a2a52884f3452907e9895fa2d2be71c587bd271500ffaebc4c1f846c498e1004445dd53c58b5d11ccca36c4b772c066044cdcea882b5b34bf02a306922fe0471348919bffeccbd208f22b645cf934e039b17a5d2ec659ab1a0ccc0349ab9a87df7f561914e329ddcf26091b751abfb554787a05063e45cf7e7d7370df488d45fbefcbc975a348a84ae03720182d3c51f9d4b61d9a8572c9272f45a99c8b150400b21d56b7996ed81dc3f59b994d94241f2890d77e25207ba00063e33c033d620846c407e7550ab4dc2e0d28832823f4082e74ffab763652561c9a3bc835254cc051b2f472decc8b70ac07f3abe58ca19cd803e807db21bc563a8032c8c381076ae5fb8e3b392bd6ef94e5fc2c212d0f6e47fd29ddb57e06d32ac865b7f26e3a15400cf1a9992d0b54ba3648280d138788948244e4242aa0da628150615c14dad84610452a66d6800f8fcd4c5cec7bead5a258bf271bb6a9622334f1291d62570c48e6692067e57fe2b4de718986367e0a123f09da7a82bd7a9d5a26265abbd4225b2a30037eca48727a1a41d7916f65988e06d0fbf6704b55dd54a9e870394459d593306709589a371520ae8d4373c31774217f02f07867d13633b8c622451fa44c7f1126797b2139259d310bf7f0914ef5e8ccbb4a7e2bb89990102c9b3e792b77ee819810f1a72c86bbe3c7485bdf90874a824d75b80f824c3ce94e8575da00b91785f94e0b616bfa38e8a8d23db32fc6d19451db8016e30dccca87451186efac59a111b6f253774794661b5f0be6c324b6807e19663859b69b8690a3dd6858906f9fd727ba44af3c7d058534dfada29b7d07344aa0b719542c64788b4d03d6d8eac89f9eb13167c310a6329005ef7058b3fdc4aaa40fdc1bedefbc4adb367dffa8b3ffcd08ab26ad2d4a70452d06f7bf507d3612c5101b5778e87165acf6be13ad6f94f67a58d61dae9ff8c623e08624cc94eff6e2f682689e99b012399a7687ad9df224aa9608a69ebed5588ef9777f7a79215e386436af789fe39fb2b4ddf5693b396279b2c8bf2d5a6d08975134d902843530f1e0616966950edfc594678068c99dee3154522b17ccf275c874526d42738f3f40951c0b89a2402c4769f8d51e11049ae0cec1574b01cf2799c293ffb88ae8a9537621b94afc9d7fa721a96f2b5963f7398872001cba286a79546cba942e5cf96ed5917d5e893857194ce0fe87603b5a1ae849623386a2d47df41b4fc94d8ba5781ff7e517a7c652f6ff49be47570c93ef9eaf3f29675e3f882dc07d80bbcac540cda7e140d7cb3915198e044299b461c5204a13d28e057c1b9e64177e8e7ecbf01cb09cb95ac87bd94a8bbe4a06c1d001718bc6b7a25cf9054bd3c46b256be3bf287ab003d4692feea6795223e942ed648d70f3636c9b0a273aae869fe327d7afce2162a7e5517eb35d023fc31144eff9d47d7334b8ac407fa970ec9928f80708050a2ba944202e1d3a02c0e4207a7712e2398f72a157a845c15c1cfe9e6f3ba64502827a3c3066bd9c7889b129f974b3614009a149c4d9b8d90d539d4159183f5093acc7da8b856c9b93069a90701961648fa960c858c2578a64eae42b392bc90b49e4d4de03e38e07889c461ceacb0ad5f2b099da361e54dad0bd4a85d09f43407bb9c4078629eb659b9b2747dbb766d98bed2114c19ba341048825996393b79d994e79182009d466f65504284233b8d7f381c097cbd203e115308af85346ef900aee18bfb9f11f667c0b413f8985df0fa5780af5e3aedebcd2ce9fbc046ef4dd684583f2426673c78ef645bb52034721a79c254af05ab7dfe914140301a5f108e933751998302ee51a5f1cb9f9ae4c8d18e1043bb5e2c8c48a8669456458e42d8509f3c268f356f2decd35c63b2c190840eaddcc21d4f20cf1b78aa12278e23d1cd528055a0acff56342c34b09078f50c4d1f8390aa5853fd7a84077dd7e3cad2ee613f1a18586f873f685d4c3e9081203fe1740335a493971433ad4245d6c9faca6af642d8b250fa20176bd9eec5354a245dec560fecb4a7b13a2c0760dd70369192e4aab372ba7135bdd9b6b6ec31440ef82b13694bc7144eee1cd3bb2950ebb75e2ab65455b8ef8e55251c2a74a7364b1c410da06c2542f67be2d05ab2968ac084c0e47b34d88fbeef2e5a2f2f020aa5205279e40f31f907e9ed2876ba1d55c637d8d2eacc33bb57d3d71755a0f112ff10054e8272a80125b8b7e4f1c84c43d4cc6bf61c1a8bbea899d211a6f2bc0982e9a5f4eb941cda4324cc4f635e9bacc8c8fd93c20c20d99d290b8e621905ce5ecdec3c4897a810e4930db91a229da7add5406d3d9a8ba9d5de1890df93f0009eae44a90057efd251e2d50da34aa66418a882729df7dc02c0202486749af89dd5b3a4998851752e7ed715dadd16cb38ab181a921b7a66e2d29878c90983b8e3a40a14d2cfe9cfb670cd0be637c7347e2fb2b0cb79fec4919c17b44b74d9345eb5d4e7b819e5215d253bc7db85cf8085a4e6208cbcecc485dcbfe7d198bbd844b6bf989dc8dc2d43049d6b48df71795845661152b7d2202f91762e2fcf4bd45a265502c290685aba79e1bf50df631a9e29ece184cd47fa14ca960c9c2902696931d803163837ac0ccd1ea7096fc247bbeb2633002a8572e09d510f7015d23c7f660ba961c5f08edb75a3e46d18d453f6a09fb30f83f5fc3d1d54b332b5ae0c2c6cec6ab40a83ec693521fa02d4c123d8adee50c3a3e59d705ad8f31b8f3d4633b300a38c04a03548ad4151fcaf967c2165a403f810517c0b07c453cc10ce34f8616b20b991f4c5366aa3430c06c84e25bed95e607b3de4c045310c7a21c5f887e0d5d2066974f8408e71f8f2b55415cfa19e3243e1a9f36bd8f1c8c94535a2f212f3e701f0446bc012d393b602c393ed1c9b084d550c36a25fa3eeea947908fc6a1e30ba6e0c615c87a827b6cedf1e22c975f70bdbee48091916949077c7ddafe11ec5f17ed346a45770998461206ae04705fcde04165178a751989aefc29c0305c4dc70a8839ebb01f2d12b127ee37fb5b43426ea968cde536af9c02e54d39967b49b933451ccc921bc9188663f0c592e49d823471d4086ea7dd08af111c8cc98070945c04a8e3233c687676e38d2cc58fea116aa2b7e6dc0e2ef217e017711d4b13928c788fd178bda07b1737f87de33cc117ad4fd15bd0973d4fe883df77ddab6276210a01ba404034a4152745c3050329b0e5a34e10b1813ae1ad97f5d773061fed72c32a3dda6ffbbef0a42a6869be9bc38715ed9aee47b3ad37dbf0e56610844350015ca0960312c5914054bc78184e02f52c8b21651cb5eb95fec108cb2d1daeeb6a59432a524650d070f07bd07bce3455cb173a7016344bd5e5c13a37785dc4ccacece73ce39e7e4e9bdd109a5882b6ae5ade7c74cc89c7388132a4eccae01430c4aca0b47067072a5a5eb17358e08888c2cb5156c0d002387172819ccd112320dd80194206aab0664319ab568dd121cafc0bbb9f1230cfd629bee3b4d14f6450d8e40edb0c34b061e5ec10e3da1b66ee9b46ec05e8cd0066a55aa4537ef80b5880e31348794b0d4839290a51c64b9a10890ad597010a0a00ccc208acb1fc3622692aab85d8b756394242951928ee892981c83169f505554e19a68a5015538b11066e639416f16f88fdba0f31d5a54ba4195cbdf0d2be2668ee172ed201a509092174997bffb7570f3a41e25498555e5ee76e29a78c562f1a2b2b086b82636e08bb0521ac58184a6502498b0d3ce46afd70b062849bce068559a22cb65a21b19a733d2fd050f5bcf9f147bf7ecf57a15611e9addaf55d66e54aac193ac4d214f322094189941090a46a84049a6421897bb9bde7082288a84c080e50712941a9ec0804642fb0fd064f1c591f14317ac5c7e9b968c1ba1f410ab7165a349f9434aaa3fc7963ff539f85329a1d53348239f27f5fd44262975b8d58a0e36090cc4ec1573cca33c4c8b3864e6522f525a71f9fa9267e69f9e2ea5efe2198b69d3653220c758208d2ff5331ff7dbd73dc7e8c75446f2a99f38266b12944d32dad26dbf7bc5750e4dfd14070a81342fb4aa954bc9289f2017e1903e33118ec9a8285f35d0909219636d8dd5b71c33834343aa4ffd50f71c7f9187e90ceae0cf0aa4f1b70dd2b87da0d4db871981431d2f787c846394d21920f54fe6cacf53bffa1cdcb77c34fe1f8d833422ac5ec6e76879d6af5e868c6ff958bda271000d8fcbb765e6571fcd64b5bc8c8f6672385e8c4c9a9169611241ce624029a3efdf76e5e715fd587d0522cf0aecd1a3e5552bb0c7eabb8faa1ffb15883c16eca1040604e27efb1eaa4fedb07f30577eb6e847ea73b4ac5e880385f8579f4bc6521f15a33256a9e417c3d88869f453b4a3328ef14b16e9d8d139bdd1640d1544d933e79472cefff83987524a17c37379b31baeabe5c56f234b56899d1e0ed9bbbbbb63ecf189b1d5a3e3139b88e1e28491fd412ec92a9226e5c74fce386492335983810bbaed38fcb9c2cb71c6186d5c06bdb3315e8dea373e05638cef81f046961269e0c9c7c28bd15a168b3dc638eef39863bcd8751cc68e63dcdd06b25be2a00a9513eb328b156ff841af89d9926803065ef8565a38ae6fddf86b23ca6e2a9e8b75230ea7c98375625b609ba0314a830d6b63f82d1b1b9b0ba589107cc36a052fd278878e588302414bd95866415cd73bc170853dc2933c78f12b161f78cbad72f49b71595786cf5c99161eb76bacb1d7c65c8e76f483f95eeee5b68e7edee5521dfd5a2ed7ad2ed775f4535d4ec5ad3afa71377539976ebbf67230f472319d0c37d3c96075342c193468ace6c74a271815e096c6b5eed2594677cac38cbfc335fc31e725fb0db738052d6537962444ab5aea3f707917c3bccbbd7759d5bbbad58bc71c27ea9a26e290bd8843f61847b4b272f93923c671b53822ae8843725d4ed4bae1448ce3453a9f5f4e761c9113f9b7ac5aba7b5685a09a73ced49c3335a7ea73753bcc2ad573aeeabe53a926624655082b1c6ff5def2ae0aa1a59b73ce39e79cefea5e7ee5ef85fc306098ea1c8e08a481f01289fc7651648b03f85a28dd070287717655a0ce12cf15cef93bcc3e3bd51763cd4702449da303f7dda78394d78671dc27edd9cdf9f96d99376711e8bb7a2e5582f726d89bfa164a7d1c6f542a7eef93f146f5a996d59cfcdcf3739facb43945bb8438def84f5508294925c811854432f28a5170ebf34fa77fc3eaa10de354f0abc121b338e47ed072f82d797255bb71005bc330cd39e79473cef920441cde9db3e7a437e68d7833bf5ee1d9232a144fc175d7df8b3cfafcf286fc7ede88836fbcf1b745782ecb4888d86d629a782eafbbf3fb37d0e21a6e1b9d88837eff02e6f7bf7d097831defdb6e1b0fbb75ec00e38e3223c8f55e33964eb35707593326e35f1a6e946e91686485cb4e1b2466e03a48126de0e1e1187fcfe12228e78bbdb45c5b0b8f6e293cbeb78f9180d441c31f5fd3a9d23f3ad63e3ba746ed5a1d5aae40477c0bccc0bcd7ccc0bc13ceca8f3205ae6615e28e6675e48e6613ed28830f3319f63e663c01e4a80626a72c0b0ba46460371d80ff3e9744dffcc4c8f1e31a08bdf7b9807b00658373e9d9655eccba3af0435e05d8d2f7c9b7b6d119e4e68e47585c1cc85ebfa6891f0408837fdaa88a3e5f6330b11077f17b962408838e4b43acd52fac736c9638eb3ed7dd407a2600f250c02d5dfc01ef36b0ffbd487d37cfa42f6eb0bcda7ef8a563ae620b1550eb0d7417fc29b2f447fbe2b5af91cf3697dfb39ea5bfb93feb42dadc49b7e1b799adb3ed52f54df82b43bf280106f1c94350efbed111e73d5e2061b0c3eda601abcf83d351c8e0dc6517dfc30e268e956ffabefb7c10f3e87ac0a510aec08ad3468cce3408fc3fa29d07258b70f76ab8ce230068f7e1df26f1b15ecc08674e300e8dc62c0cd6e5326dbad56d7b45cdcd17d117131171764c8e560b769b6c9abb19ea23a668dbc23d67777cd3e7950ac0fbb8f2c922763cd9e29a4c59a5a4661ecbb69db2b4a66671e138b76bb9f18c77e77df420a8fde686661ada8b0427d549545f1733feb9aeeb61ca5555693966e63e19c18a3bac438118a9425b7ff55e5f675d5596daab57aa5d617e3b8c20a631c974d1daa436247bb72f9b8345a4465a044b408ad42a34c8c23b74babd026fe64f02780dbbeaa4ce20d1dda94f07fde9571edb36e012e8dfb77c6cdb9dfe56ab5bfc332b7bb5c73de3d373bfe52973e7fdd47bbaa49f1a6bf22f1a92efd644bb73fc933bffa225a621c39639c6ec88b573245d122134adfb5ddd9113d839bc438ed5499c40f5a06f1004c228e8c21e53aeb1c5957fa01791e255c552174d63bebb13eeceeb7d6f358acff307c92b6bb6bd3a876a7d1b4d6f358acff30b4d6f358acff9032c128138c32c128138c32c12813ecf6f7ac3ba7cabaa6bfd50ac37f16cbf35e336b3d8fc5fa0fc32aebcee548b793fe54b9d66c446fd73d9be6ed9cc8659332f5ed3e977cd9cf555fddc72e8fc1f82fafb0f9dce7a8f5b9ca8134ddc7b71eab6b86bcfa8a35b2cea14cec5f6d79f93aed4784488b328851dc7e6eeb5a2e106ec7599551260bc4a3293425dac28b55565f114765126f508839d50859d35f9d784db9f5c9ed7eae323b3d59955559955519f70a6db8d98d03a80718837e74f50bde0b948950de41d29974e9f805ca977789a22ead4bbbcfde0a86e76218cc1671c83c7d261271cc3c7dae41e248280ee9537b3b9087c41bfacc420b2ec41b0e8b66aef054cfefdf94fbed8138d56f204df7dbfb50bd05b7ad0381da6b1f443e86c9d0c535c80f8c5c1a79646ecb801c8b377c2b941703320c28a3bada75dfa30363fb50752e86d149bd49572afbe2e1a4aaaaae7409b80c7b014317f0b9ab1f078937f4bd8f85c41bfaab8f53106fe8ab3e1ec22151f7d1cb314c7e608138904b19263fe015540ff0715530f90105c23486d188e06f3f87aa0291a7a565c57d34f519b67d3435166fe8479e0ab5eaa1a47e0fffed2b08c47d8f7e8e9338a4df7dbd146fe8731fc3f8a86be86f96c63ceab13a678602c9530585438a816465de8cc5f4b4b0e9722d16154bbd6229582c45144bc56229a358eac86933a731398de6b426a7d59cf6e434a8cbb0ae8159222fc632faa31009266b6daf30eaa1584f5eedf2ac6916b346de118beb51e7d0a7aee188a39fbfb68842d8b3a23c28a4a7566d0a5b1fb29e3e7948b5cbae969367d40cc93ec5a8a819927d9ad4459f2eff74591dfce7b6b9b8dcb8855782bc2edbd97823fdc64e41b900a1545cba7394214650b27c4b33276719c3eaec27002997931d7d8ebb5ebafc7997f3aecae54fc6e5a68cb3573cfaa6de05595cfe589773da1497bf025c6e0e5dfe685c8e1ab9fcfde56a1297bf19d709282e7f3997db5cd0c2e5efbb5c2a55573cea8d3317fc307f50176a27bf278e5cfafcd1d08fb9db73b61be2f297ba5bb5fe821771387ba2c9f6c5f893712547a34feaab6fc6955cede2d3b8fee3ed91d75f6cf7b3f09ca846e34ed089aec86fa888e38b375dc41c50d6f4f702a0128042f4e0fab7ddb65978fcaeefafdfc79b7e6b83efa7793be785c8e6caed8f4d6bca12a1346501c07585aa5914447a7abb1c0be3c81ddcfee2ba5a7e0d7e37e2b8e0a20d97bfe2bb091bd751bad9c0dcba6d4e764dab0d1079003abff6dbcf25a7f7db00a1d48652fafef4b3815d1bd9dd61ff6c5e1c527aa9fbfbab8ad9440517ea2d1f5e96ce39ab6066669a440ebcdafc03ad6be25dc2c91830a74edd7fbabd69dddd3d5b9dc415d5e50d1d1f7ce8eeee6e6fafb913e19e9e84145c2375bf2c211db9bbbb7777cf9d1e28160a349ee877db4d935169e97e827a9418c9acc0703b3e3e485cac523fb3201a50d053d744cbf5e840c40466654c886c8d490ca68707232649647aa8bdf41c3db9f4e430633203979e244f4cb0b4747777cf0eee09e8567b0f445d132d8d85028c13ebdf46681346993f7cdb3c77772a5d5cb7c18af16c84369ee25a6e8c9244c8dd6e8c9284c8cce1851def367abd5e35f0e0a465f64e8fcf920d4c5ca65d2393480eb080725284c20c61786104832ae69cedafd7eb069ac7b31b3ab11b9788405d7ef7981314da9ab4d7eba584879aa555f2d38d4b32bcf8899999a348819028b0e5880796d082081841c660220adb3014437b77ff98b294430a6240e1e1296609c9d0e5293a18c2658964b15000000c9c099d1bd4106d0e35cdf6f6ee0984b53b3d3e2820754db4fe23e3a1d69f201a50d093a700e5b9c75e2a6dd16ee88861450c2731ae00f911c489d11843ac88b18591a5a1dae54aa94fafb94f9f73523a652da4aa4f9f598f4f0a30f71f19105bdd81825e34f722b2a4eaec308cda7d4e9f73323333f3644ab158669e313354d7444b821fe4f20b511a4d23d165708149111cf8904513465cf8210655b458e143450c706207238a3c010bc3098ffb00041620c068b96c0b92540b5c8b3a10770204918492205a9e4eeb46eb5bdc909620840822c62dbffeacce49001753c862b044162ab0018fff330e2bb9fea115d7df8671bcd5ba4173231426a24b6f84c224e4ba5ab38d099b1ba12cf1bade8d50a480616b08420516ed43dcbd05d7ad9442851b7323142958c4a0242391c4e5ff2697bf35bbfc3b4e2eff8f7c72f975f0ef600e02c213435e40b2028c28537a48526da5468cc2d02285231c825c611e8c383b867c419180e5c5b9b316ca5afb3bfc437bc9c9e3680d83852e45c1a56aad9577b8b556196aadf5052edc5a6da5b5d65a29adb5d65aadfd826c2a750395eb98eda88db0a3b2d0821923642415d9c40f5050069c07db0838c2d93074cc14a0629acae888da511b6107550275797ab70fbdd01af334c390d70c2b1825a4a3ee766ef6e9dd4dfa7243e7c90e9e98b9bdbd9b8d307315676666666666666e9e482d2e37384d6fa2f27688bafdee3d57508790828889119614bc4005213e7dbaaba00b2a62d04553124b8838cda4f4304b5ac910040859136fdaede303a3ddfe391b36673d5284ce305b56475e31b21b78aa276358e994805ce194521842432a09d4914d69e8e84789db9f5a100d28288604085a9584cc59c4466160826d30c42b4f703006143e6776eed07c663d3e4748b77f4ea7deea2e027b4aa2032f9414b1c083143114710484121320ce84b7cfacc747490824cbc213a522a2948a78c1e820489125623a283245871d9fad34a4e9f6cfd9afaebbbb9f6081e176f5eeeeee6e6fdee8a45ba55e10cd59844c871f20294058e082c28fb8c165d299280a44ed32517b7b370745126fafb9cf39fb882532b4caf8cc7a7c5ef074f9dd69b389f6a67553fae354b4d01a0314f444480fdded3d5b0b0fe6890d592eb391d501a55e7bbd5e3330f132e90bd28d4f922c21b5b77733333333b30a94c2a8478acce0edee4db4773733333373f35422c6a5a8a8c9a778f17c663d3e49556eff9c505b77b714b727cd7fe8a07386558b8e2747989a7e20e9563d3e44643dc60ee80adefdfa717bfa8f30acea86ce12a723b4495f33a8f0d2211135271729e77e82684041381c4dda518ef8a2f39ad2f1e4862bb7db040e9538ad3b3eb31e1f2586e60482da27423071fbdd7b6755775e709a3e6b73e200439fb8428bccec74c1102de2d499dc6737749e485912e59309ef9d96cfacc7e78993a7db3f678d524aabb4f213238e886a0b50c85c8801094813123940b1c2ed67b5709b0412980035db7bf2ec21283a5abb69dd5da9bc3ac6757777b7fbf4e9ae6a226e77adbbbb9bb8ddb3bbbbbbdbdb841aa1da6740e91320439466f76c6f5ab70e6621cc2c85081b7030777a9272382189e937106d4d992a3d51653611556dddd0894a4d58894f74ce540afc993f6d69402ea093915eaf570c3f516ec861b6056bec46252866b14b676c842e96a0f243101f8ab48043539352d314b3bd87d2e9519010e18a6a141cb278a1952e2111550312850b4b4934fd8d517288d11f6ab42854aab011b5d90e95146dc9ccfd04aae9a7735ab427de3b33286c6d71f8248b1e56e8a2a9e827088806f4b3d33916fc5961a98b297e268d02b56eb48280669ad4ea1395c6744619c348ca9b08184db5d02dc8b283295598aaa08291104144440dd367dc28450523af4a9bde524aeaa6952ea1cd0fa88398000a2909163216c420460b86a00df1843714a5174c1578c6ea6e01cdaeb4c965f2ce0a53be9882cebeae1a50725003568ef3f8ac2c2c9142a540d3053f5ea00033edd2942297eb07e432b89c5670430d62886a8113370471c5d214a720a09d9e16ad003742f1a288730255d3d151a4e8c0797beaee21ae0c8165882c440c11318488223a7d84e9308eda16932a97df9d2b1f5d661d3b46a88da0a373b60dd4d135f2a9cc0b5268d0e13174ee2d9f598f4f931e9a2c6992d464a909134daa34b1d2c4c9670eabe1048abb0d1c53a519d744264bf39a58b57f0aa1b8262a45316521880926a850810a2434a880053f2cf1c9838c199d40a942bb14460151a844a93991e14f5e4d5edb67d6e3139d2081a476a9cb44415244676de5f58799974ca63f5e394cdfa94c790b3a2533c3b82612c56646acd9d1872bc8306d3182b5a27ef1031df100f2a33061494db644d4ea0a1608f25a32848b283568c1c347a4a870d989142197778cf003e43b93eea0cd6a92c5254cb91280256eb6530e959999af245de62b5e70b92b4dc08d2c9838d9e0c8f4c0064438bd6c8d1642cc2006a71a6ad87305c90a1d9c60b09f164a646044189c00a08e6a53b06c01b8b1050e5558b1a2ce5c610115504eb8c8dcf082035dc860062c88d201871d6c98020c29a9989ddac34591295260834db5745a37b4a8c18a113ab7ee1db0d639b7a0210648b381762c182dd36299e1d6ba2445d2ad1368078a1558e84e1655c6706b5d8ac2895b69e4126a2b7c142986ac414a229ecb932946baf5e3b51ea3506b65d547726b57e79ccec2611d52fdeaf92ba17bfaacb2297b55d1e94541f9c4617dee536f81f0a0eacba7ca7d6a49bca9dd150eeb772ddfc1220efb55f575fbbafa2a6b1c5aae314eed56ef550fe481342e402b90c645f5de7ba050d7577d32aa6beaaf9ae6d7afd6561672eb5728af0594501cd6ef40f9545fa5fa1cab57a95ec87f355542fd2a39b347f46554add4be78a0becee975559f92ceea5c882af3e4d777213cf936461a33988606a594d6a094d2a842882fa77811ac414363064bc64c0d069953520040386e8b39d32c64cb3ce2c58f4c133f5e1b2b98f73782ae9f1b5f469062f1d8639cf821f0712318828e89381a3c61c6b5208f09ea10c45f05db35ec3389c7b6735cace76620ddbded7ca4d4990c6e3378d76b2f7ad183a1159f9f23d8e2ec112fbe3f833227b2964adc964ec82828b7f1b6b90c351f9236e7cea33bd30025738ecd342cdff0f71ba91cbcf852709cab4b01b93edc7ba4dedf47f52812585c976520b673224fa511c1e5530ff442532fe4df813952dfa010f7292ebcef7aeb0b3948b3fa548eed8538fbfd5b7dafdfb2bd742e2d2a1afb40fea907eae756bf7df7f613c13f05a6521b48337f7b9ad5c37ce471f997cfe1f22fdc6fffc2bd7ce411dade05a459810ee0ab7a978f3c912715c6554517d5e7c59bfa15ca9bb57c1ebdab8f935dcbd739fdb8f6ab77f58095ad32a97ef771df774dfdd4b7859289c3fa1694330eebd7a734cc6e7d4963b740a05001636bf79fa61fb48982a8f8671644030ac2016c0619cccccc5c6366284d2869a7f1dc002984279a9258c25aa1ee48d7bdb7ee54ae3fc7a5dcc720e2ba6a6623b4b9b9224b7d1b49a0b6221c0e286c33dc086dfc0d1d10b6d60d2a32505181bec0e6d54df1663e1777d84970dbddbd5afa5d67fb90cd74771b980d2c89e3b839674d148ee7d6baed3c7879f0b2fe1f55d552770f5ed703a4bbc31c9d5f6bc4f0e0e5c1ab082ae2d449ab7d6e66ee6ef72ffc3a2f26c6a61ae9e863f8e828e6fb09e2d03ecf1864d956e44120ded89f793e6a49398921307379177f3fc7df2725c8491cce6c0e833c03258f7d3efa1889432ffa034d70e6fd81be6b66644a06f7c0a14db15e0653c431e3edb31211078db7cf53240e1b71689f4b819c146feccf2ff2708c44bcb14f3f4e22ded897f9b849bcb15f7be95a66126fac2cded899ef97c1b37d96314e77ad6d6bad8de2da21d8b5562582f7343e5622ded8e7de07cffc68ea7ca0edc11e4a2a08e43d07f6e0de037bccdf401f3c6c34e5dab74d5c6bbf7867cca8501e0b64240eedcb00f928e6da972b90a65a90a66eef8142de6f1eb8813a5d635fc841ff1cdbbfbcbf10cc6f395ce8e51d8c3c332190b7fbfeba996799d7a04bcafc0ecfccd8174f026acf1449c5a018f04726c54120e2b01231b42e6f5fa773ecdb8fad63a3fc20da77710199294585d7ea9cf9f6c3cee1de3e573b1927d9ce19a704f926d85b8209deede74fe21acb47c41bfbfc31937800fb9c94599995321799fc8002e91787f6ed14af53f3559f63be8afa6ffeab07f25fbd7f0c08b47d0feeb7eda389f918d0017c9929ded88f5d13792a944c9dc2eb5fbd3fd0ea1deca124e67b4c9066f5312090f73d3890a6823ce43dc1a3e9603ec7f630dc0bcddf3e07f72fa0d073ef7523b87c7c8543fba9afb1c41bfbdec7b2aeb1dff2f1ea8bf669ccdbc1a1b54f69f0a47d56e77020cfdeb28c431b2f0f79ebcfb76ced06c53ee4363389ae3f17376e7321c6eeafe563c71d4be9799fcbcb9727ba5e3fbef1e3dbd27b39846b3c268fe217af1ce21ce5e42b55db6f2d782ee9abf7d4fb47d0258964116974fda7ca32bf3c80c695a0ad81d72f8770e849184c0b8fbfae38cb4d971809639c79fde5102cd75fcae412e7ccd46491153fbaee32e93a4f6ab33f8ce3721d8ce3ea801847eec0bf704b81e9bfe26c807825f84c8125db95bc9cc749fb2e5bdff5deb532aee57e87af2dc0b534aefd6b675c9b736dfdbe6b39996bbb6b5faea5d9b6af1fcdf6313755bfd4b5db6faceb35ae7fc7621cfbdbadb1d5addabbd56fc6e5d8ae4cf844f0a9ae4d7d4e020b9e7c57f41f119e22ed5d5b7f2be290411e0131470a913533ae4bc2581be892355c7f97cb75b5ae5bd025614855180c2661f1c6dfb97f12752f3facf53c162bc610f8709b0ec80f39f4f76d3e8f1ab7f86df4e7d36ddbbe9d8ee057f039a4519e3f0de5c7438227f4dd21011f36ae08f238a1ef8eede78750ffdb647fe49af82c63b4d1d49d8e9020393a32323252a28812464a1829115322d6b28d60c6b0bd5f7247f667f6e1522a71d1869c52728e0dd7707f583de684be73be8c1fb4fc7c8f38dccfb7b18b39f4a7cb3c7f808dcb735f093ce418f7e54db037e6753ac7876906c17c3ad05f7d3a46e01afe160cc41bfe0bc403f0c77c27d8fb024e80df27285e550674a81cc0f7050c6a527d4af54955089db45615c26a45adb5bd6d758bd936be2df4e58700a0dee5d361c87b20cfe3814ae6a75a542d60e470f5295508ab954da578c8ab0305fde5c9e738da2c23e7dcdc561cbd51a6c0c8e1f6b9e6b5a02b5ef161539fbb3fb7c1a38426021fb07127e8cf21c7db4538f7848b365cd2c8dd3b77c68992f5e435c56875581f92a02d0956082a8144c1ca201ec89285429e48a8c48c5a895ac90c1100000008c3160000200c0a074422712449125554720714000d63ac3c64603e1047e3490c83280c62108621c600028021c800609052905105006b7594415a32e045de136a09781e023ae2da0042e537d575416fb981aff879927b08f55f5e564701711b9583df37262745c28f590dd00ebf7873603150f5cbd01f68239cb0d921cfd659231c95c112672801044031afe425a635fa629011ea89370a64ea58591d2d10be0e241c45ccef37b7c898cb43ae0d17c8962ccf49c1bed0a796e551a2da6a670cc953a665b6f9a2928fae5a79fe4d04b438d77b71633b6acbaf6a5b1a6217be330cd17e52a699f62a5b778e20f8d82681f81cf39abd5320f6bf43a88e268edbed6ddd9212307ac665644034926d152e80e3feb794adab3dfe9881c778e95e3966a21b90837f8095d07c2b8fe3f8639ed51b2987207869c9cfef974353ec03ee0cdc730f46b7d46016aaaa731e8c4ff74f83e779560a98db4b9f971730b1c0843d37d499f1daf56c8ddaca0af0a4ce9eb19ab1365003ad9b91be8d868354703aab49308f3e333969dbe6a9c39dbe5c70f78f8d8bf71f8c196137a5de3822b4f98e3e671495172cd71a8d6f148be0465b525262f2c31705b5b505297e1a03fb4a1900d80b477991debce9dcfa96c1ea3a11b4b1168eecf6824d23c7a6293180e61d17740084b55f18130f7ee9688aacfbc9d437a6466a0af67836858b8c02faca2cd8d4fe61d28038ea621651c598cd9a310c22c032904f1be234a82d73146a8322b7a1907b6f5bc260599e242a58524bb04714335e3716c0984b5bb0e471a1c1f5e06ea3162c59a5202a53d3894d098a0878a0ea9ef23e2b90041cbe22a5fa920842c09e1463f2915bf15d885cafb85413a1629068f5dc11b57322069cbc1a003d2b28164b491821f01b94e71f5a15d53bf9dfd7021d10e85d6b49ba47d806a836ba02a1ea58657505d3273ec12baca7b3f2ee86f3ade4aaa3b3305d4b961aaa3e837e20d2efa55965088f135964e405b01188eebd52e4c1c8af60bba878f767d12cdb32c71f03c6cfb3015db284cb00fe6984f1d4e46d1260e613177a488efc74482a033cc71c04dda21c4fee6eda395639c3c9d4116196898b2afa5a257914aa4de0de6f517b8f41700d467821fa4876045ec290ceb75d9696df31e70afcb72cebdeb919ee37b182e699c77cdf19ca7159e3b2bac1071e20a74dec1f60bc3254eb04b2efdd2c47417c4e4a41836d97bfae78398c7e58791a579cee5c604aa27a42390d58a0bb042276fc03e4f781b0d6659061088c40f0f524b77f9dcbb414f7d5d9896f4e24e2771aeeeaa42e5666a8a27c913e2405292de811cd67170383b0fdfbe33d574dc6348d9de534ae1bbe0a9910e03d631a1a7fbea07d6a988c262e0dd839ee6c9bed181bc487271c8c5edbf7db46afe36e7bfdb95dcbf0786b93ff5ef8abcff6d6e901f88c0d6521b5d13be3eea0d0caa1ec9eea3f56ba3f1253b1a45f934aec8c599fa43ee7bece91fbabc5960091441a945f8ef219fd69416c50db08fe7b32d360ab466e928c348f789311f7ca795dd0b6f3b40eafe2249fcf7922c0bda0c88964a8b4ec125920f10e4c4f5ac3fefeadc11b0986b8ce532dcee785aca7258a19c33abff054cf4b63635579a42426286a763253ae5689b0db3bbd9c021f0bee7c8e46d62b9d1ef025c25227a944818f82cfc5a789c81d6fcf157d46a4c2fda789e483c85621446f332590912d222f12b8e96f4c59097d1d8a69a24e6be51f3887c54a38937c2f9cf026d21a3390dee600b38a76634122d08712884d852886236d25fa3afaba90d1413779e77b9336f1bf1f6695ac1db55b2ed1d6eaba524155ddd1fc8d45b29a9acd88f19c2384a223cac8cc7990911ed1da01ff22d27f14e8eeef576a456adaa893fc06d3cad300e3c05398f41f6b9b86abeef241260ab48be1fdcc49bf41797af735246fe87b3a25bcd3e29c11ec7215cee3ac70429e36cb35d097ebc94838b9b0b30af6f94f4d0a10abc95b23d8d475e703fcce91761dc6f7441e89be4d7c8fc0e06f9320352fabb13744a1569cbdfe6920fac21880c48759e68c749233de88a73dfc7441c144fa20ce17bfe68a46d3ade97628885c186be207f0e2910bc63e1b5627059117e9a47599dd0cc8832263b9536b4b78638e77716c022644c310570319438198212ee63b5d356b3b10ca02ba755cb0036b801b0e1f2fc8d70dd3ce05dff32f88d54181f9a2a74ae3b9a341e1e3c24af1a0238f91548e6e8fa81155e8d3366f37d4dba0122c099463c7c3cf54aa7458098d3dac9b0c586f1797a0128bffeb53a14e641e082ac1503aa0ab399ba0120929f544750bcbd674047d48ba4c48c640625cd8d200a7a2dff3b954fec9e5c413da4e5717b069e78a479d58d84d8c375b528b375fe90b54fa629496ae7eb032c576fba7beef792d3e1c6fe944fecb9dd8dd064a2bdba471e8638602e999fb87849248c90aac57ac3aa5392d3cb5ea76eab014f4cd78bb5ce1770825c81c0afa231ad4cd29d45d948513e7fbe2833761bfbda5fc84f0b97fbfe327f9853a7d70324b248a4405c53e91026ff52ccab07c598e7517ea694f771d801a90e829af8320247e0e1ec2ce416a289463a6eb8fb5c8597820a7520ec9e98b7cb86a16a4d039252349e281760e7af2a3a30fcedb7201bc868684090c834f0540078db1df7c36c89f4089184a75ff09197333a6bdc126876b6b411aa9cd9a054427cc936f824e474d2eeec297e3845ca2f37592402e53f07ff912f518b316255e235b8342867e2dbbfb134e296b0780ad29784817a34285fc88e1c0fe272fdfef192001211f5a21efa9b925b492d4190913c3cbc472e39aca406784c91114703a232abf6d601c7afd5080a41b09d3b5602ce63cd0f2f6080862eafba32e63869c11836391888bc6d5cf1a2ee084eebfdde852e01923ffa45e8e42cad4c9b07011968ad71624268eef54a3eb3bec5550e6cbf789768f70be4162db3b2ca3a3bd9ac4b650c73e42174c2e77a28780deac2ebc1713315664d2485955adb4c507052f4c0f3e63a1e78fe1470d5811d9da982d5e5329c07d9bd2e30694d89f13d14d5ff743d0fbe09bee30328d78963e342f00470d3b98ab5a250a7fc2aa6502aa3ba7089f81a22fbcffd088a44c84fe35c9557dfe0a6733186867d3a8e98c12c8824608ad7512ed5e14437323f2ea1d8d61f103be10490a42358d0aa05bfa07801f05442c8db9c966e03da093921bbf71e57a586f22b32a2266e519b63ee2311bda0d3675deeb0a9f80d68584a01c39314fd425da56e8ddfc8d07d494fab57a28d255642f5b719fb5f52e5fdf79e09b912aa05f8f15fe8d14333be19e24db1be50b34de6035118089a8cf960bbdb0c816a1e938663c6615bacee15897697923ec17ff146b59a83850795b6702895ac42e24fda7bed2f50b9357f1df74e9dc032c789c9c3e405c9ccfc983e391f1fe3effd1e456d00cbaaf656061550c2d61dad78cfebb4406706ea1e0984c88c715b1caef090df7181c4c414b6f1bf62c35c4d3fa31b35983c6ac17b083b855f766d8e8f0040e8cdd24aad1c086daf8fed38b71c28c6fd4f0056e52b02d8c0dc54964f407ef939c562240405f844bc42dd0c2fa94c7f1a8488e087ff1b334d1250d3c91b23907fd24a969e7c0306ad4095ad0210b08e1d0021de785083002a647147b5070316fdc1348354dedb06cddf0fcbd172644d6f5522d28f640529d7852e27ea481b011e944a0b07adbbe523f4fec816e4c11a69dc8080bbe00aae90b24a92fb0caa11d30e55434dcc483facc5d3e5387fcd0e82630203b576eae839e86c0005a0ad18c97e5d43b91634be44c19064d39d8ca0de1a041aff2e03ceced32a6ca7dd03b6c0341fd852524fc5e710c9235acdb20e273e0fac05c33b108aa96035bccaf298ca644b7e8f94bd54103db62cbbb67888345ec8aecbca1734ba499fd8e9491a4db18001424a68f3bbf66b25c2c32d8e5ca6dbb97c5cb658797fb151dd5574e2b76f47d0658b2284cb73731cee7ec5ee64f4bfa8d7a74335e44f16baad10dbb3c76d2d324e064120597ecaefce926c62f2c40023d1d00057802f3956a722eb789475bf7ff5e7c89180b06901936e1ae303541a0a763108ad2602f105a3e2e6228f5e62fa77512c21ab7445eee6dacc8cc305b92fb90891951b4c021e6f09764328022d2330596b24048c7d715763bf2e7ccd57c2fa242615bbc49090fde8da6891d8011bbd79f002e1c89de5f25e3015575a07c22da84ab0fbeb79e293022fcde5a8ca5589275d7ad831e460da87a6e2341e849b4c706951aebe23bf2ad0bd0c502c8dc282a78b5a5c52c883fbf7aaca45202fc65c7306c6a42a501a56355ae96dc3d26fbb05d12c9291ed3bff3939a7a98e268ef495d207c526efb995d1dab86d6209e8a81a1d400931cf2c1d9f2ef0ba5904a351bfdc31065b671098408a165111a3eda2f4f4a58401ff979908102341a468cbae11ac4c2240dce2f2f124bb94488ad1bf104e8ec44f041538ef0fa7386da444e3182001a1fe6fc80d971bd788273d7cc8eb1c10ce1e8a9c638aa5e48233c8a3c6b7dd3a010fd05a0052499b871d5e16635640f293190eb54b141665123898fced250c91c797696fda47c50a140a8941c9db029db86b7b13b00835c706b5be6c67c2b829ac7e84918d8b72ceb3a0a0b996a7a3c4035dcbdd3434a858c1f14139dde894d9398b850c1c09f8d505d22ee5c9a53d5afd5a0cf1b41e1b79cbfc6c9708488d68632e137de9026b96c2c33c41784c880299c3e9eb8eea2a497009063cdea4d7f32f10f0ec7c6a907ab83b4a7b42689e214d6bc745aac744d696d4f588f3f9cae690456df98b5543d46ef853ba269800eaa8867a875277eda7768f0d364c68122d4074169f7a5460ee41c8370788cd9dcbfbd26d2c5a0fc0fd56388320e5a6d2e72012cd833e38cca64146d7a7f0c32e15d987256fb79f1d1666b891a48c2861fc015820deeb673abb83f953d6662c6cd6d0ca476878b7bbf8fceb10388f66696e1f9e47b5a77be4fb271d25ad2103efa5558ceba3f145a8426435905c79ce319c42b3fa61e62124c42660a712bcf838eb61a68526235bfa5d42c6916f25277d7ec5066aafd0ffaa060943da57422c7f655fb78f4db58351a3a018990e5f504bf12bedc5a9ee09e35156a34441a2549142e05f6b8340d12b7ea0e562e5dfde3670a6f6abadcec380c86b826fc6d61f8074711790b6823a4921f8ece3a390bc3f670fecb8165de8aeb84c413ff804d631ff87a70e7eb7e8f1c2fa5641f144e3c4e3d9881cb2455df9cbe163723c6da8c558ad7d347b428c6340f1592864a1c9216e3549193bd1b4e488fd99d8a2d19bda40ddc71e67ba5080a8769a3ffd9d10c4fee51a3ec296e9ba81d810f3aeda326eee54783a4588bc659139af87294ac11a404d7d41e8d61f47521e2ac8e8e660aee3d9ab11650e0513765793d24daf4997f232c4633b71d8a52344770d83a7a61560f3a532b814935c8fe0dd2a116c7505ab94960ea227094a97ca7dc278a2944eb9ada2f6870076ecc27fab0e96ef05181195111536c03cecbb5949713d01998c93dd96e4e1a2f3a6160c802836e528c0fd230fd39a395a31b84e69ee3458aa96c34bf7312134633d60c9d03e3f577ab86702eb6f6ab8c386b96cd397fbe8e04d631f274d5a63356eaa4bf3ded2d2ec31b6844ba04356a8a186b45a4ca8c1a436cfffa5cfe2d48f884f9818dafd7a7b1e281d487e081b3ba225729c8e34a133bcd68a8e21af55a07b60d813440e99ce6808753fb2603c8f1234cb2c3392434863e77e2cd6a082556ce99831bf156d249b242799bc27a55b1754e955d63b16ad6a5370f90d620a948263415c623b8d545121abf9c8eeefd84e18e557a00dcd6d40dcbc8daa2f9a5e335058eb7b4e471ecbd69c07004148cf13fc741729b6d925497e96f580cbb59eae77032131ef521a2ab5ad91fe3aadd9f6c702b35eb20caf05d23280e65b7ee74137d1b6be073bd339f7a7f4dd499e9fb95864f69326667d83b3887ed94552c68552892f65c8b4228923822e9531274ff09b0ee97d3d40a8b04a3c2006c6a5ae19501ecafc875c3cc011f36a8fcc6550d45b81d396e309298fefe122b96f53cbb51c93712e5026e9c1c38da5d975cd19c9fcd50d17e7a5ed6ef7571314a75803f6b396448abbcc35b4aeca606f2e3af3556329f299745253c9572d8edd2c4795d3b772169834dc580d2fb2471c65c179cdcab870ce2fe1a0e0624054c2d8bc2e74361857510e239d9b0e71bc5048db8e9c3cb8f69f8d8143bad636fda89633e07de247aa60a173dea460880708ebd146edf8b97a2615afc0ea1aa95716b8f02e8e5e2bec4e393dce7113de33d185b8833c9c44ac63549ce6413565c1376f55da3896e272cc9cb33c50dfc3268c8e76c2263a949943853375850fa8e70be7151edde8cfb2409fb507df055733a9a8a2c2b657b072eb6dd24e4622a2d40fc732d72da757a03f2880ef3c4ca5b05262fbe05878038956d238862192b92d32926cec3a18516be352204d12f83830194039f80d6e4ca0c149180e5d2f9d57a60b5c47d96bcec337da0502ada948c93659d50cab7d75bee72dca5f3ee9039fd2e10ba1b8889e403dfdfa6e671c544ac113f54797204933c312d2238e5766ab193a29ce955e80a4157ef7a93799f15f7c4562d764ba82c543760334d3b8d239c45cc449fc7d3dc8cb65b7b60b66407b2f504f638c78fa908453d376696e535c745bef46e3f7a23f567b21c3fbb63dacf609d5e32f4b65f9337bce8f7063abcff5182111c3c3880ec8ca7eb31458a75ce7df102018e43ed1c985aa17367872bc2d4da8171d80ce93c0030311d8ba240d10f23bd464203e022e119d817c632750fb98f344e09761215c7c8b8da406292e8c3f5728189d42da8849f45fb9a1d70570aae5732e903ced03a271b4a10962e0638a40a5eada5107708dda5f2d08e714ebfc11dc474ce8703313475647cd73cd3839567ca58c691673ced93e264a8722290de2bcb084a790e0e6074479fa5ccf514d64c0a4a6e1c71876294c49511fb04c008d60caaa785f0bfecaaf934e8fd8d7fbdc90621d40a49eee6d3070aaf202e0ed899b404f66153c7a84a0a206922d6e9a1d6215ec814d0c70ffe1f6ba8af1f17ce8d2436e97d357d1ae3c16cdf06fca5a26daa3712c70195f56768fb3f9aabc04f3ffff97f9e3d2d80a7b571fa5692a83eccd0d3c9b851527b94d51c2356c6651e080ce3fb8c814d4af1c3de6044af8a87570cc771021e6134ca6834b322c995ec2415b0d4781ffb9637ef6c841250c5e1494efa7cbbcea816339b14553e5696450cf5ad1df0e7493765963c59cdff61d664d68e4417c2f1f839e5eeb5c1a64a8d16277abb40d6b494bebcf1a0d178db4ea2debaf2577a09dffb07711cf145532c4da694d6fbc1e5745772ce9012d55b59071392e972219a1e2e2ffcde5455de4a9d9334eed7e08f64ad604bac925db177a2c400def499dbf0ef7f15b46c66e7774a15ce035c574689e68ac6197312c99d2847123d7144566c61e1e699f47b2a077540d1041191b7361faa49719df01bf60a98596b1fc2b7b33882f3f0b20f71078660a54dc57719af113d74e305c0977a70944075a0ab4f9efe18f870eb9fcb5c534b3d43210d96378ee074e905913aca75cb8f97ef84cad316760ef51eb27b0ede9de01e9a5e49033d4f8f84f8e109fa4fa1d769c4a69141ce6dbfb86173acc707f00b1b666599d80593c654700fc0eef19b41d81dfada966f2c59c16938a5ecce089cdd33e5ae27d100c44c51eaeb1aff6fb4b07c6206a59de2a43874735a3749012502191bb072f3de880f63f8ce061f1b7206e420d230201e1aa65f8ada3c4e2dcfdc6a57b64c377213a335982a526f9ac5003b8b3d8957530449905cd853a6f6d19fb8707e847757bcb8d2c5b94db1b13f013de5eedc1b5ace246b4accd8571770f7c3dd74a503786c34ba6e63ffde8e680a9fd9dd0bf49e21797c024bfd8dd2387d4088b7e5e31c809ca629d8089884e2accb4458b5884a169fbbcf58a271b1bcaed330e8fe664c471fcfe2875949de21d4d1e2de9d8436bb3514ededf5211111912e4d05b3706e015b1cca8e9e5bb09a6670ffd17070090bd09b7770251ff5d228c1f05a5d1d98b3bf1ea211e0a0fa195803ef091db5af301283abe8a4f0893e10f4366a11aca4701193d21bd407acc4ef926bd631186890742f1ac0d9a0b39f583a41b841b97c77c44bd20ad69177f3bfefa0369fc449576411ec7ff986b5d1c6ed4a8715fd144ff493d65cfe46956ad96e3974fbf258e76bca5a3cb408117179177f3fda984e177e0340f3eea8f8ae84f1e72b42d399a2cb8fee57e2a3381ae2ff1a0e8694a5283fa8ea0e3f0ff7c41c3abfe019e185fe533c267df33563c1b1613a1d047432c4329f2b99d5ecd14a446b6b934c53a871d68d9b762b9e650dbc6af291bb49d8e6020ad23ff3a3b131656aa989e462825f4400f4cfa0124145a60aa472b6f37294a6626a7b738c011467aa2514ff95d0f669d64509eaed9bc2959e0b6a9d16ed9f9a3f49cdfcfe1f878295fd8cd108420c0506fcac4e4260051945ee2f3ac165d0f08f35699eec5e1fa0be6d39f1b1ec7e0574f0fdda1af55425b80b763cf01d14af3218e65bee9502cb1c85e1361721b236cccf72f767099cc9459974d276f5854a099d842303a7ab28c34617dc04d10f65b3c8c7da8f6949c2409b3f5a30825679ce3de2431b2826b7d321dfb1de3f45586f886bf0d5faff9c6708c2d3f630074f0354cb4ea2ec5a58bb31666711319592c10c1c65bd762c3a26899737df31f26410bb7288cc4f87961680ff998f1cf558914156119d9fd59231b7b7a636265513bf8a42978ffa88ad62624451d28a01b919c7364283c0bd351942373f39fd18b84673415315bbdc7bdffe69a11f1e6a30579f028830c9ef9b39b860430a869723214b1fd2e019d24f72285902aa840c42b40e02717b4944a411f12c4730f86d74ca81140c7106180da141fd6f3ab846ea69a2f9ba44f4bf6b0b8194d63e69a475a8e659a19bded9dda96673a68c0983b86b0214b6d4383df6c99d8579cbe7fece6cb2fdebf094dc1a7fbb005257798734b4682d287eeb00fcc3199e71aee4e0ee73719b406d354b7bce01a2099a24388b44f8f81e7a6161440e5b249e64118529d7aa722e8047826b02206a0048afd3e5b062a9902ba6a7b7712beb87df46356b909c96191a20f83af3383e137d1ad1a4870fb2acdb4893bd3628c2b71dcfcfe86b967dbe36c9d0c453e99214eebff4aafe7b1a4613ab45d68e1f149ae563b8d6edc646877c90156490b22eebfb595ddf3e1e25785c1c01c671d62a9fd88e23bab8c40833bd23916d24d842b2fd6d8a3f44d545d153c776e509ad83868e6c60f6d4d2fb006e4a5b00d5940ff9e1d1759e9c909d003c4e27235b41a386b20e44b230f8047d64b9cfa4e5c8ce51352da76cb826948801851ea5d86690c58dc22a4d9f70477e1808dac21e78f2183f8188eea45f5d80018ea3cc4c525a88ca73cdd73766faed201c30dbe38a9092d14533fedf840c0d7544d20dfadf73dc10f927e4cc0cb3427aca85a58b8bdcb22e8278db5abf433f3da271a11ccd3cedb25e213d9bfc2d7d0c352d93bf577a69076ca71122a6e5e16029fca43b3df8f0b78fe7d3553f9d9618038bd77de004c4622205dca388bccce64ad92df5b26489d43ed65736beef90eebfba067ea921132deb9aafbb4ac055e7d2d7640271fb9b332033a1c4df85f82fea92fe4aef7a31af0862fd6ca6eccc763602075d6b98c7345c9da299e175c6f441a16f1222c23cd29d849280ba9c28cddeaf63356f64013062f966b59d571d6b32e71af1be02aeacc60312006652147479ea602891513fdb603939fdfb3624d44d3c4d0ddc533d1a795c2b21ba73bfb4ce87460427506015e469744911b4c36ec725df5125c19d04187e09a0c1ea79ecf1576f045a4f4ce07abfd1525e60f8af973495460203ea04921fec886c017ecc9f135cbfc04d832944eab839db533c551fddf5bb18e1bc9f0cd8f57b438b479bca874b4557b8d4c766e33a725046ea2f7b6f4d6fb7c946bd23041c382e4636777f7f48739c1020f5bb8957d66085ef941d1e55bdcd377316a7e243b26edcf119801f2e91259ed3e321215d534c06c8972a999093014a18124903c98af429f19f9c69712678de0063aab44ad1022906766241291da5f73dc55046cf197a577aea44af2ca573a155a870947007d2dcc738cd2242970fdd8a3cae427c2ff3ea8e2219d8d9636539094c99a44d63b4054a81e004113ee88e676e7e1a05281602fb1158e0a0cb4a3f5c426a073a7da8c56fcd4dab5539e6fba0e1b5103240adaaeb724d20d10979ac4e2d634ac8fb854ee14017e569b1162d47f5c2153ff194364be4b4bc5009aa7044d4aa3e8ddfdcbe604dcb13bac1cfa39a4927e4f08112ed1082c5b45429e4c7dcf14c38a5ba2e96565b318e54c59be894ea6232ad7f500455a762a587c1f488463b80305d5a9514f6531987c45bdaebed697d4127588daa95da05d3231a356c006db4f8030399dff56122342c9fe464a7bceae2a62ace06fa199b169288cd7bbb2b01029efa79917a6791a72720c4e940bf2ed42255eefe117e10c394bc7aaa15ad0c7a240df4eae63463863efe04c104992c41ac86d4f2844af81b704123b698c586048a5dcb23577408f00efd664f9f410a29e282a14853fa5d80a855cce66b701cb60550788cf856d18c26d374cdf24317470a18cda90413d4eae468b8f0aaa7aa16048c2ee2c0ba1d667d2ca8b36a65b369d00e087098876ea7796072612fefcbcd2b31ffd88de83283241ff522aef5f21060814908c59b75fe42b28af74fb39e72040b88aabaaa576287857460560e7754c0c146b9e561124ac4a77869b7951c91c574d18da19c81aed9c0c3eef3fa68e0007bd9bc931b36474522edf32063fd481e5e4b8905f2b8164d6a76745b34146dead100e46af860a3600ca20ded5359bef985577f4643736376b59fd9602ea6a90d14bc3f143be06b95f1c31ecc31815eef3a5f6f140013c7a06db0aa380e5380a5ab33921379995f85c62f7ceaa20d75a6dcf664795ccf1153eacc5a01301ba400332c85b9dc609474acaca841d60847e0752ec228ffbe710c35fbd4500553394b59d07b7121015ae7a4fb76a98ad46263a0ebf5f79b5beba52bfc0ada0819c6eeba34b1c55e685992e804d97fba09680df41d46eb05593f668d5b10760703a8f92a844615291ca86cdfa77f8583c347cf108a037ad98f6b92c3fa5485a5158f41196f43c9c8f697d7b206341243a6cc0cc08d057010d8d5ac07089ccf341e47979e0e8c1b692167eeae5f20ffd76f0c8abf4cbdead6c38da670d2251c7da2bdd9e3fd6ed5dc1fe854b2f475f366c70a71b5e9b4d227bba0869e70f8c0ed07160dfd195aac63f6f3eb4ac65b3126d24662f5b1c6f3477da20f34c5ff64d2d80a1f8a483d974dbe62c108fef0f96d9a847485f1c7a7fcec4ebf0dbb04a280440b210a29ead013ff957a8fc7e28ea5508c6a1a818e03de6b7ddd40c1734e15535a53d276b21d38f21a90f587824ebbbce3abf4c134592e2400798b0fb4420c710db0202f5a3159def490a68a1acf52e73b5f4d7e05f6ad18c56fe0467b73214d3e6559f0bad9cafa9295f5a534e55369c6ea30e7b6809d0131fd1bad47a50a86b1db438011380d55b5a7f539d8f433d279dbf2fcd4c27c57389d7500f9f6bae93c3d3e90bcc6195db7bea5699025579d538fd59416b3428e09cf2b150c0955d6dbd20230be246b383630c3d43120fc43cd768311a3ddc3a8f896f4ece7d4cce2bd712658b67725381ff97ffcb5c7f770c22b5dd47c688d57532b5e716179e1779db1195945d849838b97c1f8a448226d4e92cd8ed6e2c808211856436749acabaa46ca44e9c851956490c8ca2812b333c951fd06295b97f488c34824f09b743d9c187f0bf52ffd325d8062c6e23b9fa57813b0d62a75a56651097bf590e12b09ac1725dc69b98a8c6d469ba568393c9b45258083b4a8a21c818fb75e45906ba7d56bf54b10e0b0d971cba5c2841b7c3c19928a7c107311f943260843a641f9f29dc5cbc6ee58896c5af3a844648db60929a60875e384fcf7dd556513de56c0b72d61b7e7108d6ae0f4cd376f09c755db44c4c171828f5b8c59dd931227b64d08a670bf8b36c1968438c1729be0ae73ab924af22693b5b651be4ebfe673484c1c5a0c6bdf133bf31d50d50060aad5d73275bcbef9bd4a39e1f82f0e53825d15f9062419a04626ef41a8074de3e98ceb29b8e5dc8c464761ec19d8d8e08d23ccfa2c33226e0c690c74cc05a7393cf68e45a9d62eb1001c02e9135d036824fa4810b855709818b0ecf5f1fee6896004a14c11a440bc451a9c62e73d15f7b78235f066938275544aa368c27dbe58aec954432446fe158bc41da78017d6dfa0877f69f28ab0d105a6150afdab28eaaf0bb9552f49ad1fc246faf88c14f305a2122e44eb2a217ea4214e4affb7d2cac723a31a486d9aa838aeaf1ff243a02a7ddbc07ba6ae1453410503dc91383fecc82bf5143b2a18eea97765cda82c8209d21a7624fbc928479d723fd805219d28245e8bca6249353af8f43ad11caf031c0747a8ae20beeb3b0b62d44eba04019037b2045d53a978033de99a440531e12b563cc909ab8922fd9960b7e1c72bb94a86bc81236b3c3411d46240640dd6a62c3afce3b28b794c19581fed34b47219dfc9dea97249dcce2efc32247992e7412dbc4aea66c5be27657e4d1daa5cc905403537b6264aa7247b117ccc3f23e6fc8856f4ecd9da915ae0001e8e44d3024b1f96d3829a53650832533f23a60e01aa926af381eb3f98f53f232e46b769a2a4dedfbb9b65638e7bc383a7e32976c2552044bc6b553ce2d55d91a2daa1ce4e7154ef67c42b44eea8963ee8bd4153b3531d35cedb839ea2b88afa0ced0bb7b82a40cf158dddd3a5e96807ef957380a35eb0fb6e37ef0031f75334ac203126c879ff113002383af3296be283b75b3b2a27ab3ffaf57c05691ec99778e25979e31d591b1685a5b2b8dd014c53f9af89722fcbe47f09a4821c0761239aa50d0abcc28e7a75ee9ec102bafc3da49dadf1667f3188fabe2c5d1d39102fef9143387467da39720461a6677fb63ddae82a79ad4d8bd34d6189d9c1bb1a950a521caf40422ec00c01bb593a823150d8e19e63cf8bf7b5f6ef532c6c918ba4bd609141bf5fc9630180104fedc1228e3eaf249d96ce7c8e5ab6b3afcf0efb00ba52c0b16d139a430cbc1516037c543abaa2ea6af71a44b5e937309b0d9dae103a8d0d3a1d063a7d3fa73981ad7435fb1cda1678e02afd4320371c6615eaa5ca23854672912e9c83971194640b524e206177120451b191be89fd8c057ee6cf1115de69fb99bbd60a6be530c29e17a0d18951142487107a9188941867e4fcc49b5380cc5ba4f8313d07343a15acd909739772e092e809cd08be42d0d4fc05ee5ca47562ac06900ce4576e9d4d16d4811e33617d017ea1594207b7f801398da5e0e5ce16f05de5877d680c5793853badc1c1a5a9dfc50f39a68599f1b9b000c10c39c66de4464ad71dda740efc207986ad5f66aa42d047252063e1fdc169c0fdb6939c2876ee2d23e5444d27c56a7ac9d2115eb9952202da13805ccafa578c252fc07d45084543fe55a6fc6d3dee08bda53096a06399c40e841c77d0075731ad794cddfbb0ea2d67bef1195b72140a5c5d1d1dd6eaf2510d8c287d791194e6f57a2d53cd64dcd686340c46b34f6e8880a559bf2078c4ae9ef405fb9d7a4604e8dd09a3623db5f94ce3dca2d93d9dac783be6e328d547a562c9ce6ace58896dd55642d7bdbe517d50e4e47afe5fe7de8e4818674742795abf5ad84da5de84a41009783d71d6b2ea8a183ef9f604ebf5543e2a179b0228e7b4d99ca32933b2d7984f54852398a54875d1ffe1a1fcdf50fd8ad7a56ddd5df524f519f33c95061d02b11cfc9ccb393910e5da077b031edc40a1c48133d9d713345e63352a6335c2b346f5b245d2044d9411acbb9ac9e9dd904484daf1351f8f9fe7791dcf62fced3ca3b6d6c766437ef4c43edbb22f2e93397eea6654bbd56cd5eb3a06698c1fb00f43de3d2991e8ec279f6a1c1bb86de281f7126ba0b2c8f0f64c8ca3c76eb40107d8afe8e8da8b7c364ee6d7f5ab459564b75630a0c31b26efbaa9baed4444dad820814aed114f3c46966d7acf10aa0db0bc10208e820ecc121aa72b9ad1fa1ec2533bc3a59d7322515040cfbb4f81f76fd5c25d0067de8bee8af287a48e712eae7fffbd1ed5144ad91553787bfd3f64568ff1fa629979a3ef222a75e262e9ce77206984d18716657b5980be8ba95bf5e47118e6dad22569dee48accf543f3d2c80e4fd2e036569c27e85d8fa21fb36a832c53f6c5bd2230eb111cc1a390be2fa12203e6f8526a2d31ea9020ffda2965b0b8306a896681919967484c6a51be2508e66a4f7e306a3918244bc226dbcaffbe16357d0d491d8c5a5f8b580459590263ae501558b8383b7f30ea1075eb0cfe29d5b4b92ac2add209e207a3c650c0bcbd695511b6e64cb0460c465db9539a479c10b59dd0d5ea07a3ae4749c1db0b0b5128d161b9277ebfd08adc866022bdee24ddbef1255fe902068b588e86711376db3ac64f41d36448cf0f332491c11ee62bd0ac17407533d769833219f9de70ba682201fa6bde3fd9e516bf1f7a4872a3417600da520ae683f9912dc2350f6aa3f1aafa7742803e60a2bebf472981028e6c1356f6a13b1631872f0a1d6a0f9315546c4481f74e644a0b83dad2c515cc8aaaa7152532f144a617e3dca76e7ba1a9c88ac58884af896b1ba3a32a426ff04ef1e7deeacddd003d42fae8efd9d5b3b0e6f8d91b3409ee5010f30661fa1eb422a99f3e41947cd424358f95732e9a6b450a91335c506f61e97cc6ab83d91128976c7ae54084801e0683e29262acb6068378b1dce23b89234e603042dee54577079da1c45364eafe47e382d355156232624d5c29fccd7d5ba94f456e9b444b4384cfdb7554f539d115f0be8bfd94f79460b15a9ba7b6d441de0f14e2141bde68b610fac1714714af54faf24dcdd7ad0b61a20785ae3c83cf4071596f79e253749e5babdd28699df32710c680439b6b92517e0d13ab37246d3318719dafb1f3d499c47cc565fd634e29a28abbe1985c79936582dd79ec42a4f7cc677fefec759432f7ec72be310316ce04013251603b9ea52a7db5d451ff58d8b996ed3e23b285e328ae58992b3fab31856f1c7084b7935f7852bab091812e7b5e0137173290b7c1b3b7e7371ed568d96a33efa2639fa1d7a9073da819af7401f1aeaf38dbce0551e6249910f24dd84e3786bf1bab23858e0fc47ae40a9fde2021fce89ffe99536d9732ad91937006e8a30c4f1b27223077bb90626e32483563fd0838e44e6d90755d57836458dc1b154c5fb2a5a06179377a5846f6b7392d46b6fd78029df54fdf24efb102d0b5cdcbf6ba4ae9407d342cd292583ecef283da565c63a6f143eb05ef9674646830e6ce8c082b07701521c81a0ddc879b188e11cac4b913cd252440d3b52cadeb67b8a8452003ec8ded5a96fb5b8add9b5543eb458dcbcf13ff4e24c95f23d1d9c3c3af518e4a21cb673b6cd90a91707af931c85ccba2d333fc7a0a5dc78185999b321d09d682564c680c009f5f2c8a060460cf7013124197e5577b2b56bc3155537da63b64baff052ac5ff15a4f68db2468f576fbd525f94668501ddd4138326009a9d6175d32e6303a06a053b496704934381168ce795d9cb7418b9ae23dd354c6915e69e3c709d68a7bac8a3ad4a09bd74209200ab043924c6d6df9544d8e5ee0c743e3c36fac52a18af831b87551fdafb07ebcee8735c6a90b663a6906e05bf2df919a90c1278d442ab1562f611c7fdfbbe3200061df1e63e1e87f10c103fa648c720abcb81160eabeb1a3cf561df37e72e689d1c4794c3c5199f734c9fcfa70ffa8b8c211dbc8e82d846908af5faf7e7f9c97a641f0bd4c5561ec2be62bd0eaeb7b727b1eb66f9fa901695585f4114d7ce09adc792698f75c68d8d1fda0d545bdf8141ae6e3a35e2dceb7ec0e028038eb267e3188d91217d1de49d2924889889b2f33150b9035a44428529b12b0ed9ee4458f943dfb94b2ab1209fac4d9b41bd866b9823aa3c863ebd0b76ab566cd69902ebf30112cb693081b9b3d4f89621c87bbf1f15d96dc51fc1d228726c157d6e030c1137d8474d8f9cb433ec1a4ca4825ad18c3459966456bfd5999ccdde467a02181058dd73def7c182e82aa6c31d22b03d8e0387822aaef1a4431f91fdb64892a25773b63336084708adc22349d59a3806a6d0762f33c8d0cead8789fd925fb356bcb67d9346dfe9c16cd01f83d955a0903a40d7a6a1eda85e48facb0d62e06d49ffac89ef311f7fc547ca74785f0cdc9e841d17d4436f089536365f92e7189b4e952eead9c20055ff830762120660793e265c063744e2b4305e07d055c1e45af0e9155ae6f002d46c3c13bf450f0c42265ae2977b7b222121849df44099dbcfcacc5e8cd61d862ec2a9f0649a86a1710011b59f9938bddded2903784c267353482f4ae48dec9a697562446fe406a315d4f53e53d124e53e76babed81c0c0133d70b7b86d5245f89276ac1b458fa1acad85d5b1e70040223e3eb3b2090c68fc4c728c95fb3cb4ed64f5064acf658418d30766c4648dcfab91bd345c05e2d054918a85c22ce9c421a548a52739609f090dfbdc2d29648a8a6ef4f52fcadde6c2c50470a39bee902eb5134426f24c93735a04cac9bf80c694e745c0ac0cb8ab5969172d25fbddc533523da7af670474c7b6a64497ef00b2b6e7c8b91583c7b775496c7ce5b14d8969abc36aeb4228e103b9a12cb0f892f1473734751d32138b2f491862befc8f61294dd50f9421887765a532a7fdd5d586f48ff9d6c10bbf2b25e28d9c4b15d0ded9f0d3e063c9ef03ccd8b14bffd1070c33659d76e95bd6c04ee796ed13489dc04c82377eb02adf51b1532456a1e34b35a3ab66d4975786d59bb82aa17333306b3359d8811fa2bb6691d32696cfdce06050d4d0f26141638badb14d161972cc0b2692468ade9e87b01d96465440a8cf09d6292c4f96215b48bc334c79f3d18c18a8bb65ca124cbde6677850f42575ff9e9a2a761291b75b302366fc8eb868672df5bd511c37cd72d54ac4a9248b6ee2261d6b28f8d35008ed35b85b83266928eb0aa9bc59e011eae673f14a161d03040ff4a1635559c2c2c97465fbed296a0108216cea7010586158cfff5f2eaedc735a1ad9c87fbd2881036fd02f7ce42f5c5ddf950c6485086f1c7060389fe3c72b1793b5235a3f776a41eb6e62767e44e02367e1d8a8508d14e21a08023bae121537e1da7c71dbcb8e47d8bf0a1936650b51185a61c958a7eb0d644b3d0f26d9e184735e5bf28b620c1a5f9745b452fdd5360443f2ea1af6716f4d2d66482cc33af4962591ac9726bf20449ddcfe8d3e746b3d8201d49cbaa59adab718ec9f57362a866985ded95f72a58803a18742311fbda1077a3e764afb31f71695ff252092c2655372ca90b0b7a6c02a43b111f44c91af1b0ae50869be62439e07c504c41e58899bffdbabeaa4b665bda91b8fb17bacdd6327a76ed4df6dddcde31d513fab91bd449beea82d8d74082084962259f390865fff800897983820abea72de84d82bc84da42a5e48fba4395229c6a5f9a9fd0fb1257e18d89dd1889603a17b1c22b83d3df0f5dd7385bf0f1fa197148d8b6c1ae1c8520bfc078a913e1d1037c8097be3fa1badb7791c5cb6bed5d8aa6161afa49a19a4a217900d7c1c4479dd294da30f77bcc8127da86bda8d86c98b841ed6dc2c4b5f83393bebd28a83d272be10372b415f85a142026a45187ae5a000e831b32037ed8bdc4c2702afddb46c1fa6bc0c98400fb2a328852bc11ca77833e0e55c812cdd0318ed8a4cfca65d30524e64a7f4513322c86ed7d07a367e5b9fb8a34b56132425d2b03b21cb9317134c9cdc685f56adbd580dc30ad1c5106255d2d1f7ea069079882e3377da59f313b73f83ef0238e4c72c2f3226ed132710bea812fdcc64e5dc0f36949e7b054053203e5ba40268aceed2e9f40fd5ffb84d0231a9c27813367a9c315953e8d22787c8529fe1c75c26728ed9b310985231cc3c120dd31591aefa3497a92b51a83cbbc66b46e91166ed71b0334d3b7a2910e93977a81ed14cfe54fa2ba47608c37c4f1f9118e96ff5f9a71b59a2533ca5cf3f8020d4e098510b48c36be27f65c3532cadac703209dd691be8ea83c1f52b4a1ffe5f7e35325488fe6e411fb237f0cff057b7b4124971ea9b794bf4b31a7ccf965e54d7347abb86835d707e487db4e95ad2fb7e1597f8dad95ec93f144a0528f58d37fd7c2baab581418b0870473b45c23aee6e674f37ca0bfa2fc404ae712d55f7662001fd465301fb5b3b1b86c9506b76846ede496842279775bca8fe4660772f5761c65a8818c8cc93cae3e4a31b22f77f79c3f6a50872750e8efd7d23a14baccfd29675314c6a6fcec6ec99d088d200e2b776e0a36e76d2bb3fb8f879b183413b2f59f636666ca8e90bfa4e5e5d94eb80e59b714d1c6bd22ecd15f0ed5a52104f1fa49d45b5b028c4492154c58d9540b1f5c839cd3e8bde451dfb8e85093c74fc6219b46b40ea9bcff495272ca2082081d6fe466bd49e560ae91ab30bf9d24f9e74385741239e021f1c20322271907e8bfde8ca516edefcffeece540aadeb4039aa682a1348780cd9ceeaa12393d5b421ed7c56fffa34ac7f7e578f84fd83c431294e827a8f8de867cd8135e3ce11843f40ae8a0a7399d4d8fb426646c26a2b2c0a34f04fd906e697a2db50591cf08bff6f134b2bd9d523624c2286d41a08bf5358384195201f903b17830bbda8de0615b496acc2252516d02d6ff01bc4e122f274bec214537a10fd51790b62621e20c85f776d3bcd90e44ad33b4aba80c502dd299ac927183755abb3f91755c2f2e31213630673fd70aef7aceec5e9fac906e226ef1aca57b93a7b6fcc600fc548a2723d93d4aaa7daaf2119baf4492bb6f650b747224b9cfc5e509c273a20e8aeba0f841901ec25bd95cf0161f5153d3b124768a28110c7772b4b7f510ca118f1cc0fe7b0363b690aa70c47a5d630f6360d8fe93295cf37f16140ac813ee1051bb38ad52ed86f027d5b9aa23b737e150d9b0fc5eeb5d040095a825606b974904002a800198ff08e466652183c89a69356fa7cd790465d644a141eeb33b456597087b10a8723d2d253d0209e85154ef3e1d390d674345f4600e3415e284a861f04ec902117d8c96089dc753c8a71f8d9f16901a7481872fb060d18d5c8f89a52d5e607e1e988ba8fc98ec45038184969d5b001769114872421829389a9b8f361bd1eb11fec016158c3b5c4ac4a4e1c2fae7df7dca9d49dd378f02a11b45db04cafd4711fbd637ba08a05545e0da8433d1344581ba2b9be6e1ecc8d061d62004572ebf43ac66933e483b31fc9500c63dbeb1615323b9592161dcc8ad9632537e07b5e241f9cea6960d51e218a58a7b49b988d3f91d7e7405277d24be58787a9007050de0f4f77cc5de3978150dfc737ce85d001d973be8f995092e3f3e24a74a8a837787a3318166c47fc1170c091c0c16452a5e66652a14102fbadf6c48571a3eadf4b141b5bd424115e71905972d8704aa36357292683a1189c2540ae40ad9059d9976ff954a6d1f54b8552794fc3d8210941ba4a34259441ae922f85575803fd11b484c7157a87f12b4e5172bc4b0509ac5576389f26670ef56e9ee39e75e903774fe7e4c9f863f0eff27e55e1fbcfc26aa4eda5070189a66cd2a7745d33f430628b622981203322057ef2b4950eb55dae39384508095cf97f3f3061a710360e4cbf1d6b825d240f7ccd444509e62c258f6e5b7344e830ab3b9efce97376cac371d826c12d0ebe083207be4c6ad34bdc965f413d41344f69cd8786abd1f0ecec2d03d2766e390db342ccb1c288a11d9870e75a9919aa946ba32dd815a8c0ff6c083704bd42d3d636bd2c57f4333e8084d2b84b890f1f8b0b4282dea9890c1eedad6c1a9bc0b189fddc1f02b2e14eee1d084c0fbc1907a39230c60a33d63c2506fb89bc883a84407da6a18224b967864d1cb2b848d99db18035208eca51c88802bdbfa2cd36a7e0543e9ca642f8bcd4fcf39c9c15f4ccdaff13ec10042e0d877887d720aa1f52a8962406f8330becec4a9cc19d1d4b642d254a5c5e9f6c11486fa3837786e2b941d2b837e6ef4c238a4fc381832fe8c96df40d809a2a63793e6b926833f838625611529ede0cf28c5849c861ec2479668ab4a9792733424c7d38788652d9a0ae701c1b27f3abaf84ede3c9af5d1847ff9f35aa0c656105c3b233c0e58fa42599fef6236fdf9b5d4c32e0cf295404dc34adb085734e1115dc0c73cc4774883a7c7ea644a45e6107ccbbaccf0f9f4c681e289d068902e345fe3ca25421a72f0934ec1c8cd6fc7e32a6479cca2d43020134dcde394d064265bc6d445d33bb429cb5bda1c736c18b7d8a409d2e5c9295a1e44d73f8dab1a0f581fa3d190798d14667e9af0707ff70a6904cba7f2bb5b6a4306a516419023092c1c2accb240c7fc50b046cd03fd8b83beaecb1fe795e4d43f0ab4ebabaa0995b7186ceab624d580366408d19138fc564009c75d8ac5ae4515cf19961b3f289a145dcccd6047666bb1ac401fc408d6ca1a7a48623ad2ba014df6e1be2aa15aba04948e848abe350e208da4ae5bdbb0bfccc8939b6549a31999cc027c19639b3a74d16244c949af471fa42256f14608efc86c9acd2787170b3fc1b6363084a038b8c49bf30d681505df0cfcf275f8adfabb7e5f239cf10b1f1448c255dae99414688c7f699ee4bc1115c848778d50e7d73c37785d3910e6f5ace59aa063321b7c56719f9157557c8ba5a4b6fec4cd84424403cfaeae9c607ea2c858c0ad248e767ff1049971d7dc781f3273b6581a5eba95590aed3d5bbf91aa0aa810323d63e295f54d6f3e5b6c13fee5298f93360bc9a2b592f12fa0949dd119360b0b18d112686d007641405b20e43f14476887e10c2a33d318aea350111278f62592cae81f1c884abb0b65a4ab5be3dae8df5ed7a661c8730ec90cd8276fbda2551e1a15968e6894cd7dc79f073d36fbcce58f0e88545ea88f90344191cc56cc19f53222c1f0775540a1489f9dd33d710ca459a3158de7821fbe58eb5a8a4c8d8539a6c446ac1f8033d56ab47906eb727e92e5836bff3d5e40e64c3fd34176a6e428bf6afbbb1caaa81e967850092182ed2fe11c1df535db346599457ed2e38fa5db4ba44b7cd9bc20be78837a53bd22abb79121039e96aa3269422f501ec5f5f2a7888e8c587e9f434650fca65d804a091b2e19f23b8123990725632e6c8dc4674f1bea7b899ec150e941178a080eba932b92620f617eb21f67880679aff56f76aaf0e831a0a61ca7f9f346738805e18a1ca5e0eb576105aba2158ac975a520fd744fa56e0a1f7a1522c117bc04f04309af545332228270c3904f344a74be82f612382343d7569f67e76488377778e41c48ba105134489e53b8dc984649137a5993d6640f464f517282fe914151f01f81f003f0eb7da05cd70ad7f1a06f7ad265eabd806bea7993a944c6d4d5cbf1499acc4e853043a0e5c8e23456aa134c711f032c7f01f6566942c7c3af138503f1ce0702b81de9d40742462941acb45ee3235ee61f08cc4ae00700cbaa13035348518ad997c296b7cfa82f4b835a28ef34e1be6c505c9b4c4d5f3307fde4cf39f8d093eab167fc307afe03f53fc2fef5a7c70e2a9f047c3fe613bb948d56ca55056cc052bbe9f7454b26c4b92e2f4534aba1f1326c5e61bb5bfde953f29cbe9bdede233f7ed217793db1322bffac05bcaadc2a256e371676c020e878c5734e10f35614bf0ead1a07a9e993b132af8910741433b34a46f6a2ea8d27c0798228e54f4be436086dbe6818937d61f60acc364fb9e2c39ebdc5b4293037cf8f9e2559394d6b53d3af2d2cca0ff6818c02e88769b1b4ea0245127c7a26db5a3135a8f63992dce482e61f937576ee42b2708d01a00975e6bdf7e4c7cc4ed021d63e575caada7eabbe24da1b2594db937ecd7a43a5a38fd9330d920b0d09d671b7fac9bc0e4416cab7cd5739f317af5360a6f8c095fce1f912bf1cbb8d0d4aade997d391c260b8cb399c1cb3d74a21d3e572c62684fb60d0ff5c5ce4a0df70c1967a79aeb3425d89b540bd2a4b86d2b01434b2e543d98eefdc48232b6ead5fc7dfc03ba656e128424388ca75ac9bebdf3903c33d922c91e3fcbfa4323fcbc066f6add67f6bb530eb4a25c915fca2b75a3412b60237db4515aa3a16d6d074d552b351aca18c28d4e38654a71bd6cac398c8cd421190a7c0cb5587add63110641258b2c64f8fe2f6818c16ce4476796c7a69ead97ea51cc43c8c61cfe5de51e674e6914a5a0b0f7bda85243fad0808b3fba3455a3dda071cdf592054fac509624e828a908361a9ade481cdaa14fce50ec11e510a911213ce21d52ed0312c235ab9e426c67a3a86b5d60b2515cf0b3c5438b21423a7b1f086931d299b1124d828ff36e73e250683b667a11c77d9e976c85736e0aecbe9371d26af91def22a350afe6b21927066ebff6ebafa81b8d000a63b04321ca798708731150d4f1c0fc5a35cfbb7f478a054c196af40d105cfcbb82dae474472397bbdd05b50feb977dc9fc4e1654191added6f8050fffdd565131170bca0ba8311d5a578b13c0543478b5fccfb897234ee2aedf0edb74b2ca672595f145b5b522a0880bc5674311fa7e94e824a54f189c45754e1219a22bd06a6b64ea63767e3eb195062bfb2474a01ca5a04267006a7b3b0722e5e5ecc4a78506171381ace49d4e6d928f07858130f406290971c0aab572b18488810f43b01d3dbbc21343c46b1f201c02db2b2558134e2f43aa339ede025eca163fbafcaecf832281cdcfea85ed983de6cbb4d9f766a433ad8105600c6e4777fbc4c340eca8bf721bb13f309132a07677c25fcdfb35f17771adf3b3ee77adf24706c5752f715fca5a4706b573c56192d54e5cb73ae4f167a8431948e15013054fc2bec7283787707fa798261ebc5235ab6fe1eeb8e9600a30425359322966d3f54b14195bb5a8119ecfa73f9b85f668beaa8725939a467d1fcc4df8d439189ddb5f7983ae19c87b43b465dfffe5cd34634245d90a0bae1de4bd9fa1b5e06cbfc9e8a32948e5a0b891c301158841c72ef515de150fb464a1d81eaeae33acda9410c7948bc1c42edf87bff6044366fa51b3b2b5c33cd16052b19f6d181ef4ec0e68e6c772aeb9eeb4e12344694679bdc1173d4b58d82792044244b34c294d26b24062a8efab1c173df416e7b21624195fc12093efb58b63328cdb102975938a5352b987b43ad135eb40ad83060193068fc41afd6bc248451140fddf70cac4477c47934849c7ce92aa9d426e4fd188d2ad1c1e35ba0bbc59683b06a36e046c153df4a0b27b8d96836bdba3441675e4f12c057860ffad473e7ce61e611b983d10571ec8ac8b12a0268577b89ea1785996ff1709311fa2d86d75e6fd80c8a9a37304d059bb2aaa25ff8ccaea9ca6c0945809c9076e52b0c2c708621b15c42ef938a284a0bf875c2f813c60b688db5e45d5690d9de5e010f595b989729f5fdb0e4c4b92fb42086383097be9eafb3c7e8c98d004c89442cf3e05a0637d897b4572dbfe17edd505216245f454d9af3f802ef27cd19eca1ec371b8cee06a35073497d8b2595cbb48ed670da7e5298664dde44d67fe590b149907f83a20e932975b91ae65ca03b754e63dd96e4f19b476aa9bbb447963ca9db262eeed3b6aee6512befd4be766c1843cbcd56f15bec39784a1ae3b79ad8e9cf0302699bbae253f9778182b29ab0569976039f585b974ec1fc73fe26af5057bc0b6926d748e3b7a6a168697b3be2231e36cb87f82ca72542f043527c13ac17bb8689df0b2bd34ce27ea008e219c3e2b4e4ae9f8ebcb73572f4f953851bccb61a4fc41590484b4c059f85215850a6e9375cc2572d54e908a338bf5d1f77784750c16a449de8e71cb6ee7403850ab6954d690ce2526a3e0023bc0755b63462762d477a444cd91b8703d4f0f40c5a2137a2cc040cca81d7de837615cf7e0989c9d2c8703eab96e8a5b405815511bf9d9e949e6cf889dea3d352dcd20a7220f4d171de2f53628522d22c3e252d3e11a6f54987b0c8b54553890dd71c3f17f86fe27b726a03147e198975bf61094e0ecef81282550455f976fedff8488705b4224b2bb7b07b808a40870083a66e35a9573f15c37e7a229cab5b81f55148391bc4a53f7beb5755e5e7f93b411d7ba5ceca12930c80ee27ed0950ff4b916e7daf88bb06eb54ada103d75f0874ef2ccb5b8db3e6058e7cc8c916b31598b6bcd70adf001a07d928a3fddf6f97c3ed3fea9ce89e7866727fba8f9e26e6e6e5098269c9922add3ff44d8c63107b1d0e9979468fb261a078b44ab46819ac9898eb17f52f1b6f9fed371ad19039c712d0ee7da0e39886244c099914ec522189cd9b8bdf20e07a584f234aaaadaaf8f8ac99e2e89b818595470907f9430b9c447eac8d8664aeaaabb32c6f69a2edba27827272e4e76ea167bc4225d94c1ba381399106962131b0e3a7d14189d5ce6edbde6624c84d51f45984ce5ff9a31361d8a8a55d6268b75fa1bfd5cabac8f83b36d0c4393090c438e8a44fe75cceb18efde1ebcbeddbbc38ab03d7ba703b1478405e9c97c146331169c99bcfcd6cbdcdbdac6f62c322155f49dd0a9f8840845a78f4531115686ed6e78eb980ef3faaf652caeb5db2a176ffdcf513ac66e5ba7dd9fceb99762b14d617e6d0aa7d2e5605bd13155847562ec5a6bade5630fa6debd18136130b1a7bb2b2b3aebac37ce7edd51b19fffdadffedabb627fdbd65afb2a5ac6f2114d51151d86b2a7883d74e58349848931ba1259dbd9ce844d253b1ba71061fbd260539cadcf599596e1fab4628f0a1d53b9083b4284ada856ca159345c78034219081cac6579ff38583f9a248c84d6e380a74c33ab04fa90ecacc8ffaf35217b594457f501725814cd1fb9b10b9a2339b8e64c1fcfd8d47b262fc7df197d2d404c0b624ebbe842053f4af0e4dcd48168cbf6f6924eb86bf5f659255c3dfaf33c9b2e1efeaefd79a64b1fe7e8d491897bf9727d5efbf48560b8b9b51198333c374a1292c177f3f9426b95af1f74be44ac5dffb97f3af9cb6f8a62e9aa29cfea029fa9c53978bfd0389142baf62793a43575d8b9240ae3a21648a7ee7f25e34758520575e0e64eabee873b3ca02639c19660c700bd30500dcecc4a72c36699bb699b319c98471da66f2f0745d37634635cd98815d666c54cacfe8bad287c4514350550a47b96a702a4253a7d949a677107fd014155b22daacaae80681f6cd0c11225186b1678d1bf6d4b1993939fc650debf2644d08e75b57388a4227d92956526222e6882f91469c115d62ab542bfd974e442f114c94234a0205a5a6aa86d0c852ed45afca72e1fd286a9b79336fbecedb36e80343188f6ca1285477538372c962301eea22c8dd1c0cb70dca90c54eb0138f0c8e4a7919efc26422a919e27402a348e1204df4025fa2203204b17c31f6090c669ff0bcd8273a9d105d6bf463e7aaa139adf629565514c6a35343227935259a1f2dad45aa2dcaa129d10ba4893f8234d14bf4e244cccc807211c2516c6d5bf71436ec93ec143bb1b8008142a24bbc51b14522686a4624a20169376c140c164893ab172974ba5c628b76940ba655dbc6c5a7d83618e60287e1bbd828d7cd0c111c57c3fea1aa5c885c8844da8602b595dc536c1b17afda36189ca9aa5755d11491f3c8c5b6bbbeb215b003ac010b883980871d99b20b9003cfb6b7be22eea4107752f600444d43b5c1be6d7c929425b6dea463c4d611d864d2376a6fd1c2944948485e5e46946bdbf7e56dd82735ec139e139d97f772f09132f5f9fca3974323aed8a28ba6688b08273009c3df7b94abb2f48b2db1c55f5e484852fe7462718bcc643bc8aaa241ab1252be87141a348f3c16db55db067f8a6dc38285e8d5fd28b6503755257a618e726d2e9b64b15129cfe2746279d48a47e998157fefbd77de7be7bd2c2a9ee56950d467528a6d837f658b2d30d6e9b76caeda0c61d9a8151b354353f4556c94d8e2fe72db559947db84dba6a954aaa464db93061a68303111536c1b955f51e1a89457795110aa4ae122b125fea02cd410f444c75c8e72f584f3514c6289641a894ca6edf9dfb79773495377eff154ab45084ff64bd4194f4ee8f45128576b4c99c4d6abd32f89ad1a843e8aadef23ca650a89ad13139d7e88728d2f7d44b9c69219b18542b9c69320a44694eb06f7f4075df9b0c17a8bba388ceddfbff3c8acedd450667a70b60735e9317d585046175e4cecececd4bab3b3b393842424210375e31c4dd560d21ac5a4d1748744382bd7da681beda660a3d19a65d5045d376448ed66c0c4cece4ead3b3b3b3b7376c01e11ce2a55f8e222b8ce73f5705dc799b0f6b91eef0a439ad8e96962a7a7899d1efcf8d6ca656904b5d68e062ab8f934385bb3355514c3dc973f3330e7a78fb3050528406126836fa6cfcf15569fabac1aeb9b6bfe6442de0fac4f9e208492527ae39ba15dc8526504619d7e9672a6b57ccd75496d78a04055fd505542c28f84f9d00e06e11c67ab96bb02e4c0a3801d1ab0009c98a7f50068e0e8689654dd3260c0f834385bf408cab2351aa456ebb40c77a3f6fb12739f57b352b03109fb21597636a342a79ecb739d80d39130f8294fcd72cfc5f1782ecf656416862128e485c073791ef048d0698d9966eb5a5bb3b5f963b69ca8ac2d0461576bdc10c2ff681b9329140a8d48741486229188549a5eb5ae3e7f846d10da9ae86da0d3d9922afa42483a3d50ab55158db1352a849208656d7455b925381ecfe5b9bc2128cb1ea12afab4666b3a7fee4b0bc2484bc8f2a7f4669dba535e69b265c68026ab4085c9fa300464596badb5721d88647e06abbc72547539765c2d5265db4eca84fc39a494d55e7b635c3a7b0e206697dc8e2167296124ad95dec0097041387fcb40ae5ba01447d782707e0832a59452fafdde97f84e21483ef6808d130af3250015a860f2d094fca993038e03398f46225badadd65669a5b4a0c9f4ddd26aada5b70a59fe581fd7bb3de6d2f6ed71ddecb61a08671f4150c2cc6aa3882c517d9452ca89e5a98f524a697340824d7dc418632bde524743b2db88f36c0e268db433188a70fe26ea3e3924db783e202e7f36b9e9c816b985b56631d618636fc3601f31c698e69379f2f7d9a36d71a6cfdb72648bc4bad230b65ef7c11fafe330c623177ab6264b19eaec4db7f6269c379be5bced3157f23a1aeeeb4cb6488c31c6b6269c8fa59432265be4e36ddb01f4a50aa5524a276410295f261538caa1640d5a03bfac81e7065ea8b5532e4185ce1e15aaa2fc7542f9e3536a31a520b8c2be01c6050058305c5e5eac5a66ace02d5835ecbd778bfd03891595940a003354542d5654b80cce65a864bc8a8c16147f197c4585136145851361f5e2c3f04321d69e3560ecdfb2c649768aa15025628ef81269c419d125b64a35120a0ac944f48255554e559d9cc0ec528b169b8484efd286f19c4e3058ab172f2e2da2d8828484efd28e218b9d60279e181cc53fc6b710c537d59090b4e0aa15981b5ca88860b0562f5e5c5a4623128d8ad42e6dbef2e2d2a2a26a1186a0162b42a10f066bf5c2054f6d9b16bfd2a26af12a2088725595cb6ed162abac6c9b169f527d3455d54265857395159eda36701d3d5add86df36ee2b2a9ca35c2a6aa881b3e09c058b7f716951a9b058a1e2c5defc5970cec2398b2ac5f22a2c2b5a50fc59b86aab734ed5ab54a8f8d48aca0a151b35831a22b5a2c29f06beb26d52bc4a0a8ee29f82af6c9b945749e128fe297cef473931399198c41269240a81c0afd2921856a034af07cc3e11daa751ade5b870b4cd570942eec711d837dee180d3f1e8ca87f9e242cb513a5ff34569950bd9562b53d65a3bbb8f3b2710cea772d622b85a61c87bafb572278a8c92d97afdadd7972d944b9aea52cf191925b3f5f9dc949beb19e47a9673eb3eeebcc06c499d1cb3b2ea7fb7f48849c7bcdd6d6249e967fb9c16cf99812c55c650b27e20c183762b370ecbfcf556e1c67750fb6d20b476ea1ce48d5bcf60478ee36edf5ee23e7b4a4cb3d79dc9011a8d4a1ab520d018c231352fadb5baa4564896696cd1a9c9ce7bb1bc550459ba84f4e57c49a98f3977a8b37f844cd9e75ec038ffe23795b0bc7451b6d09f9b860378d042384a1d53c9abd0d5b8c3f6140d1e1c40573b9831e49cdbfeb7471ffdfbd21e7fe82593e8c3cf73e7009f764953a19fe3fbb001f2fadf83e62e7d7d9a0ac3307c9328b4b3e3afb4c7f917730ed84625fcb53e697e29671f7da248a3e94f5ff9488239f8f5c1b733ac0fe200fdf7a00da142fe71f02bb8bfbf4f00d387de0020f8f6bbf9e01689be3e084e8e0afdfcef6de84121880a811ec4c71f7ee813f49fcf545f347198fee3394c1fe239485f7f871d4ddc92fee2afa8d1895b9239c1d27cfbe0d431fa037d0f96c00ff4003bdf721e68ea01329f0ebeddfa07d28f1e6b4ed38b644a2f692adca137edef261cecd7b083de96fe694a641259d1934aa2fbdfd3a8a09dc3dec0d682c21af21d367cf047b5f27104e2ffbeb7a407edf1471e7aada6d28bdb14f690a9c4412f6e13e8453cc4417bf4e18e27d51a6ed947dbe2fffeb3d68af60edabf3d7e0fe6ba410feef10719109734057ef834aa1ec1f73efcea7d90efb0a93bbbfeb8fef7f6b843bf9f3f9b07ba72808ee9f88b02f898af434ece63764cea78bb470867c7b82406584aca7161490c7648d534045a25be3b2c27b1b51c7e5c438ec318e30d7fbeca602b69c7d9cf5b38b2d6768fa6fa87da33e011a531167fb6db147a219ca31dddebb607afdbdf3e631d68d0115df9e085a60dcf59bdca3deea5d63a852c5546d4147bacad766ef6d383a4f5fac3d3f3de4fb5ff117bba0fefacfe2ad7b2b7e26bc24bf86a056badb5d6cfa459edc51f19de62b16ee36ab5f6de8e67fb6cddc675ae9bfdf35b057a3765eab37dbaad4e6c31fe5a6b15614ce4cab5eeb5976b45616bedf6087d83abb5b3b1f6ded96d3f1f77dbec94b05f676bad8b62a25865893022dc8e0657848962b926f6d4c0590d38db2c67419b707e0ee9f4d112634925d018816f77777e9d40b7f3e59d25d1d63931be95cede0d4194249f7ab74e87b0cd1e188e320e59290eb196f4f3c351ad326d84f4a28a302ec6e2ab43796443624f278450d214fedc5aef0e67229909791e109a994fa7b9d6b5dbe7ba3f1d9ce9d0f4c05965815fe8f4e5ec28ad75ebdba7db62cf4702e1dc6223b3d98c82961f7fb6942e996f41b879dfbef570d9aebd36b6cabb2084d8cbbb6edb9637357dba0f3783c071ad8e7737d878a7138a4cc81625984458683b09be15df5a31be557bb92422899f3908ce6aa2ecf4229544a31089adf86edd276b6f4e70b6f991e9a273a436239b919d5e3058d74929764bb3b3d9acfb715badcfe753d27c83e9e87c8ae44f112bb332128c482c663dab936373467dd47b60b0d11675ae5559a29891e9926b28148f91dae94724375403d2d0204123f690843087d114091f3953888f22910d85e24ea320af9dd76887badd96889999d1067924fa73d6d9cba01dc2ba5ca31d76bbed0fdbdab12d0cf6b97970bdbe6cf1789e9d08031da9d5c230fcba68db804f2a89b0aaa233611495461b6d6d64b6331b6dafdb5d8bc87664a39dbbdd95482c36da9f524f8555d868771dc3604bf0ecf0682f8b48db062ce9e45a07777d7d37a19b1b1146533d9e28360add5ca3d586e8e890909080bcd1deea4c75195153733a85bcd1c6b4d96c567f9c746dd5160a25f246fbc27878788ac84a4a4a6ca6da86ded0d75b6c42b6e49221544767245b88884d902df4c5254817fa2646d4d48c36fda88bb6f27bb415ca5b6c42b6d022687668f0ada33dbbf660f93333bf1e4799476a3bb59a4f284fca39e7894c26abd56666668e1ca9d572cd88cea653edc546eade86e8f4e6da5cf6daedc7476f2dbb711434da91da4eede258bf402822931999edcc748f86c188c4766258a7b2445855c168ea07d807f7b3498492a696f834e6e1914d8ee3c257ada378a60b05672823a85855855d5616cc484c679b628f28269a89622f1126f6b44a2213a29122281e7006ce742c899c1c1e1c717313e4f5c245d0601a236a766ab65c0367463a7dd2886b6d478e74aab908932d38a25868e35c4b2c221a691131b33323c27444780891c62e17feb153f73d52dba9d97d8dcc6651d07668765f22b11b2b7265b21bb3bc073d3018ce101d9dbbc4e5e1e14190d72b899c9d9c8b8d1811b9a023ca442f6ca1cfecbe46d4d41c71b37363b7d84353b14e4811343b34263a069bbc4d8757228492a63613224cf49d991161b44d47e75e9734d9b81fa11f18bad03668cff93b2b84f94793df7495c3e41fe6e4ef5b11807dbfc93ed9b39f348e7ffc8f3fb3bcce0a21d8b9ef6621f7ba06e1ed9f61bc958d848d1413936cadfcb9596b7fbf89c6415f721eb3673edec75fa271fc5b3ede4731e1a81b29cf9f7f0acaff6f8c7f6a19fcff275b768a79d88e5f07d849481eeff9251a077dfb37681b968ffcf18b5e8a2551c87af6a996b1ff6fb265af5ac7ec286f378fd9513ac95f8d0357f9acf253e380d2317bc9f3b027bf1fa5637693e761bb8e49ebf975803df3f9238de3ff84f3981de5451a07fdcc79cc6ec247fb5885a36ef04ff914ce73a0ec98fd790e133b9afce9c3fca09631c99d779fa36ea0e438f91db39b3cca0789109f70139ec3fefd120e7e5ac672d3f61986e7691cf08b3ecb6a4f9ba32912f14ddc6a19f12df7c695d1a45b52b733ddad8785d03e49de1fbd2a3b1eedf19661c7ec14d774213e86203e9a2e1fe911e13dd2ebe39acaba6590aafa25e8f5413e9a3e106220bdbec63545bac789b033dd15c21fadab7ef83442575cd65aa58c5cc2c7b0cb1df22abcf76e3dbcdc6bb18c539518e4fab9ee59c3f2ce48987a79a12f3408399bb1ae95fb2d73dde36d7b34f579cbddcfdeece7aa6dd0fb185f2e557a4c6844962ee18f3e1f07e9f5ab117d3e26a2cfaf29d24fba54a26648df8173a7b76d7fcf4dfc737fcf7d2a5defb17bdb7d49df61eadf8f2b18323d3d71081ffff739dce06ffbf39c971ffc10c74a0767d7efd9983e3aeac6ec9f3f7bf4bae440f0b07d723bb50ef8e7d43754fa7c49531cfef1ea80eb76f1cec1c7d97db4ccfccfe328ad3fa9c661c7ec5e67e9560875807dce0727570558bfd50817c53c227f74991aa2cbf1a50361fb4847d06fad15c56dfc930bb2e5bea41d114a169d31ed9064c6a3aafb74a65eda4ca5cdccf47ba51c41775e4f5aae56dacbd74d9b316a17aa176a1824cb1b4111a56f3fa2f4b1ee4d5699da5cc4be7db7fbf6a37b0d7c8d8e2381ff5437cf44d2eb54912916b9c25f5f6e7bc3d8c6735cd254bd9313830a681da64b2552009340cc97b205ffb83ddeb61d176f96521cae7cbced5fabc23284228ce8bc4b258a68f52ced8f3878b2edebc6bfa9cc5ec7fa96cbb795851a210fe9f383f4f9f4fed43adc2ee94b8e4feed1140b5dd567197de09f4fa3d23d7a747bfceed1721db3d7e7317be539e67cca59684a7e150203ad2eb3d0a5122d227a06e9f673fbf9bdf7720975604a6440d6e70aba540203333d77dd9c730c47a0072f68038160689995fe4253b47a12463ff876aebc079ff3e66a3ee83d37371d3fe8d75a07fd3068eabf0d4366fec66574bafdfc360cfa7243a56ffc456a8ecf06d014053fbfa5d1550efd5f080aefc3d77b9cddd31ac7f7def7de67ea79de4b2de38574f859d710ba9b85a39d592374356ecf4998efe95b2824ccfc1cdb7b3f5ada7ceeb74fe3f07e7a3fbf4d93a03a3cb36f9c0ea1295c299ef61b7d749aa38350d25403e80a147a3a7ee9496ffafb5c6599b89d5591ff68228d38973fb469ce96415333e79c4924b869cf734eeff3043990f3e6c85b317dce395495f37b5808f38f92a6a8e4e82af4e08f26ad731cb771bfe59cf3b595d6cfd2547e0e04c19c33f82017691bb6db178fae32979bbe317b38fb7808f20e8a70f41e7cf0479a93848491214d4d6fd30eee3cf58daf83b40cd841744b9afa3e4fdac70ba0646a0fbff6d973b5dfd67bb43df371873e8a5032b5e7af3df3b14707dffb0c7ef65860a4836e7c0f2ed1c10fb3bcf13d78c401c0f75a3f7ae881dbf6ce0aa1ecf6f3a773d638c0cfe0e79cb597bdd70fee4f6b194ff469cf5349d114cb2c1c690e4d22f43447f8a0a74f73248ce8e953211206dc3a40f0431d7c110ed0832c38d2410f822f3b8fd943fea13d86af1fb473840f3ea76f7c0ffea665420ef2fc794481d02468ce15c2d1c6c055ce4f48181d9396ffd321bff779f4dfae0f7a9f47d232f93dee7d38f27fef6d53094dcd8f83cf637690cb5802465739bc079f6efac654e20549f4efc19f5b76ac65bc0773b867d57b1267d2bd5fe9de8fa66e6774e6c916cf0a61f8f6bb2ad8a05dd2540ef383dbf6aa6f803dfc0cda5ecf25af2b128eb38b5e5785b02b12e6789acabf63f61c269aca5f4253f92dc9fd6acf2d1700edae872c2eb6f51b7bf411099d92c47e96a6bc07f5e63caf8e267da43934679c45faf832e21c2048f7fa08d11528725e85322b3d942f3b7c0f2f38dd135d14ba2874b2ee894ed645a193421785ce89ce09bce10d0bb973ce0c6081c5458a158ee3666cdb8c6a9a3103bb709c131d143e50c8396721590a1e0a4a0c2eba70c13591ef091f11d0099048f88493c889c00989805ee08088846ae02e5cf0901051144638239c110e09a78453c229e1882df8cf6f51830bcbca4bcb8a14e72693132424242c5c48489c389d4edb7612929292c239b7381ad8aeb0d116fd818560219b108ee3b60db7709c13dd133e4fc8396721590adec9098c1022bbd402e59a9e27446b222424fc097b7f444027402261ea09bbb489c00989805a84421f0cd6ea850b8e0322127211d222d462864242445118e18c704638249c124e09a78423da401422cefdf36b104d26d3b63d61b3606132919090b06c1bcbc8b2b04461b6581212274ea7fd271db3b76d9f849c38229c84c47094132952a470222525c5c489937d6336b75bdf361c9831e06db3b6d6f9e2b870c3182727cbd4bdd65e0bf4fa7646205669f2d62597b245c690cf75c9a76cb1b6da39011bd8c006f9da797be07c614e24cc23e0e0e0c450017397ff89c14d17ba994e35347291299791d4579dbe4ae8246158c896198365bad01f55954e5f744acad1ebcf916cb13f06a0531100463d8842334410088164847c0085314011084198f007f0bb01d4f169181f10da63e920bcbcf276e4cf8b2c814fe7e2c3a3e35a7413e0361b3ae528b0495c43a7bf4929a544820d90707f6a16bce06db3b656ccbf9a2cde30c514e70557a6ac4cd95ae79c38594ace081a00f0a68eb1e18549902b292b2b4588f8718563c8839fb57d49cb86374b5ab2a5be874b5afd8675420f7fc6502e8472084fd4f0844bd0552c9c8546425a18055d795f1ff483ae461fc27aed2112cac222bd86b5f048af23a8d5ebcb94e995d2bd5518faaebfeb182f2509fdd9002753fa4d2f3deee89e9529fda0e9f5a5e8f4fa34b40daeebcf363cba290d5ac39b1a07db35d76181ee7d0d2d63bbc74d4104a0636c4a1203d03197a7e4985ea6571014d84689d13193a3c09a103efe1105d6ebe320930204214c3948c9a9ac9087b6e8caf4923a7828eec65c8578ee941cd952df2e118e214f4eaf3fba191d4157ddf39047c2d0373d910b306b24a1d7df9215f248557d99d2835e7f2c49c991a9fadbe7f3678f5e34554d21cfabd720bd0b5c089fe03ee4e9558745902d9fcfe7f3f98445901c13a1137a7da257283a1f7df42adbb588cdc631eff44925d1447242c912936b2b0d35dac7478b6021cb1a421eb6a26ced367e87ed93d76858a79ee7c96835e6da3cb0e59677238646a02a71fe74a452a5b9dce9b1acb23e03a055d667f699d5d85c74b58940a63c2073abb2369ade6a05a00580564b464e0c0e83ad388d7bc15d2e1bb8cbf52c7cfcd40a3ea654704f56595cadb2ba57ad563399fe5fa9d7acd254d6a7868f2fff2653c87d78ada99f1acec79475f5efb368cf1a1f5a89fec7085d01f1c902143246ae34a4177d481b77fcf9f9dde74ff729f2e1177799b46daf22dc953eb954fb67ebe8d1a2bdcb5478a2e445bbf4e136251c3fc59cb465aff1997d681fe6669fba6f3495955b2d9a164d8ba645d3a269d1f49c9c0d96b3c1723658ce06cbd960aecaca349a2bd35c99e6ca3457a6b932adb2bc9b1b9d1b9d1b9d1b9d1b9d9b5a6579b2ee5559da9371354fc6d53c1957f3645ccd9371358fabe9eea5bb97ee5eba7be9eea5bb57a7dfcd2a4b7e6a2aabbebca452ff26531876338e0b4393e93f95fad42c219cb9d5e99c399b2cd3bc9b4eebcda579b24ef7e8c96c9fdc1e354dafb3f5bd5e42388695262409517bdc88b0ae4e72f2c1ba3ac989bf08494e96c4e463acb59caaa2535655302e0623d35255d3689aaaa29f37f9e8e5ee5141c2f008bd27640cfdf3734e657937d5934918f1e77b45e80af4a13973fa9cbcf462e9e7839ef4992b814a58e7207b89df10a8c7bbb911895419691413771dc5c44d3b49b6e82698104b241249dcb27fba37df9b5596e82717edaeeb9a0f5f035f0309d2d3d745d05549ab40c2f008350a640cfd95a6aaa88401953e247dfee898127f11924a24ee864aa34a03dab693f6872353ed252e692adcb29736103b42519f2fa5cb08ea537692e8edd6d1a3d547dc46c4650ded904bd902da52777a0bf7a769425d5359af3f9adb70a7a945d0e86b1a4dd375cfd539dcdfebefe7839fbfeffb1c64ff38c771dea7bdc76fc3f368683aad6d3ed4daddac7daa798f5aab8144d5a91ed30747b71942cc1813b34bcb00f9534ed9514a29a5b5d69744a0a09f658b8d1944cf2183745aab6dd46aa3f22d5beadf7a6bf53a90e9775f08e7ebead14ba957b58ddaeb672c27fd460b746bc3f2fd638f8eb2e175dba7d769ad75522bc064fa40e050bb9d2ef371f874f91c9d22c879154a29e59c9c874ca7c6a19301e954e3087dcce9856e350ece82f50c7d7ea542bf1a47d7271f2dc0751db3f3e8a38f6e65cbfc79e405443ed1398d63abc07c54ef348edb270775ccce4307ca19fafccd0cfda3715c20677cb3b59eed3c8ebb3a7b5efd461edfa5d3cafa6d9f8f39a991dfdf735ff763fe9efbfa7aebf8beeffb207cf48f07e175dccf393f4ba963f4d7397910de7cc933d731efb5f62f7e20f63e10fb9f078279f8c1df71f8562965b545e8ff4c4d4c690e1cfc0ee441f8e83a3e3f7ae0776f4110043f081f1de441e8cf8f9652fade579052fa93536ec381fb4030bef7f1dc1ec8c50fe47e7e201b0fab6a3ef740323755d5fced3fbc9bd6be9d1797a052ea810660197ebda1d71f6be8355c91aafa5d4baf2fc25e6588bdd2eac955f83f74d0536d000eca3f5ed0f83a400fe2a00fc24707f12074fecfdf69d33db83f6b7910da5eaec3721bcc39801fc8b661fc1bf740f0f640f07b0f84e36155c9ef1e88c74d9ff987ff7c8ee3363e3f5768ff8573d7faa877830de196e8b3478654cde7ba108e522787138d01dcfb960bc3ef965e1cf302a3df2b822c553c6e5769350164f7688a0518638c3196b287f46fc51efeeccfd3ddd55a2b1fd114f6e1a58f2f3b748b758cb5d6e698efc38b475755766f87239ac2f6727fb90d5f1dbab75fed386f89bdfc3faf6dccf7680ad38deb73bc3312deb73f729f2bac57cbd4bf183f1e758c31c618638c31c618cf994f1334084d51578dd11b499d9aa2b5ca2174fae34aaf2f4f2feeb25096f7f4476f1c7594e64f119d3ea64674fadb119d8e29574f51fa825118d51942579762ced556a741a50adda82d43962ae39c3159bb43ad9206b51686943af2e768c471616832fd57558785703e107634eed07b78e9759443e538dac3cb88aeb0cdd97a1863ece998f9728e5cb742d0568dab63769bcb3b231c5d4dfbb191ac64a6c2d2ad8b6eed8f72480e05d8c29ce990c83f849867a841c3ff48f1425433b46a6880abb142c3ca9e3572f568d8b2c6ca9635526c59635659d45555f66d177ec8f2fba00ff73d225baec9db9cadb5d6dadf0450c4109d3e3ea2d3c7a8c7f837fcdb6369ff4fe8e79cdf04f537053a5d32d1a5122830d255782b3c1628ff25bf4285c66172f234aa0d2e9e0d2d2c2ca60a95aaf4fcf1104b83be31b54c7ebb7d8a256713bb75803d9becd955acfdccb2015b9bc2fe8ab52bd6da14cbadb5dcda16a38a7dce626bed46d138e85b17da060c8f86fd63d648c135f03552fccad680a9460a6e89a02feee716dee8ef1ddd97f573ef6318ae19ed8c13620fc357f6fb28fa067dfca5cd63f6121f671ff9971e0f39fd7dcc83756836d137508f51a8ef255a667b6cb225aea9ac39d3df83355707a19ea8346c19ab7a562a1a11000000e315000020100c878462b15018e46132e80e1400107696546a5a1e8aa328865114849041c618420800800021203433449c002a03b660de055c564c7a9a95f673f56a309b3e38eab283b64f58ddc68652819279fdb83ad86c6bf884cbff452b23538286d3f5047318486df1cf94af480910694884842aa67a62450257ad490595d18712187099bedb478e178d0c677ef9ff7a7790df579d2274d1bcc5e576f4e7b67a7c2f18081486833022439747f112a6c4da1b8d674c297c99f4a1947b78c07e52c8db33bc2510b0965349c6ae4a05dbd748226e116d9cf5a2319e255e7e6dd622cc66c1b318e082d586ec3f28f9363ee2c5b1da5cae87a5cbb03f019a3ce63d1337b7e73eca31aafa56e63ddbd55831b65891cca492e27d1f41f0cfd5324052be9086342f524878b659b20357528aa6945bdcbb3a506fce5b752517bdeb6bd8a4fa276a40885435b387f8df8229f4da306ba5ec048bb37d77b95286dea6b18e5efdb30d7a6836bd37bc59b7b1fd94113b77e18c05ce50d4bbe73e70f98a09b8e847b1755f4c79717228bd56ea5d203523716569c33180d0a94278ba664ac3557b044d3ba9ed9fddf17dd829f05e3a1bcf2039452798938a2ec898df7662c424c4bba44196de7170b3bb4c1cbbf8973bc93683e063e2b9601e1c67644660cc4b97976e90ea790016d49c7e37be6fd147831d23a9e78a7842d425c6ba1d5d48423a7e405c0c009bb8f8da80256f5ab51d235c5f07c252f3464caa318f4d1a49df0ea653ee48842882b05aa3eb2e70b6ecc16cc179e87f0715a9563a54955018786256a44fa87320ca2012ce640fc339334264437cf22de88ddea53b6676828629fb33aff7ee947fcb22b7a85f054f0b0b3ea4743943c3cf232a0bf67664fd606912186a759df295a4de00759d68f789d882f15ab92ca6ebc4046d12c4cb38998f589373d0f952ec484e648f33a082f9d71db265c808d275da00237209f6eee919b22ed3755aa882607dbb6a71c8d7bfd7880c9e98e1e384589aebc4bd62e66a80c2f4e4adad156d220717b9ea83a55311a5c20882a40e38c50c0e061c162c08b99f491ad8b6c21f861498a1971a552419ac7bc002a4387e2d0ef016c132610d0dc8565910676080f355c12981ebd4b2bdbb2b0450e0010badea4b1491b7179113371bbd7eb447ef5a03ed068098a10dc0753221c011b67103ae538f003cf1419b02560020100b4c00ae13bae758209a9af8b7689cc9bd75d431717a05ae13b118fb8ac74edf598d00042813ff9df64882e01a6291c9c1ad1515766920b84745f0e838e0a505906a68ee51f2a65e4db5ea7ceeeb844dc77bb4cd20f1530680ebb47b10580b46670ab06c08abdd1dcb5881bf1bd2d39d812105bf1b420ef92ce10529da717f6b10438915040092fd0cd6bdda692182d752516db10e75b3ef6880ebe5561ea35fc73719e9cad5749d644c355110069a0544a8bd4c5bb2e4ccad72c2acb0b07d6c1829fa2b4e09fd47e9dee74e81dfb351e23af34c9225227cbdbb9243102343f3aec242b1047881cff97d45305dc328a7cf5c5760eb7fdabdb2a44c4d68c74c0d30c9c31ec5038bc69692c083587688e2b121986185ec6694fcecf1677db9afb018dc6d13f3f6d03e4792ec3a1552238377c54cc832b9bf89a3a4aba64817f145876c71f3bf46d1630f700f2705611f7b09242424431c5dd54a7490eab1dce5f7b09d34312df79cc8f70fcfd17f5e6c309b5da706459d6bdaeb58bc31de97c8f48b07304308613ac4705aca3b1d148720dfb7f4d4817354c0dccf86ae1f4f393ab23fc7e7f480a717302b1c929be4117aad3f168d5600b2ee26a74705af1faa5f7c4f9a3fa7f9d956e887ae202843879bfddbc15b1d06895f257dd2b97e488527fc3610397dbda11e6993b8679fca3253156d2933f567f725e835342202ab3ba473cfbd6023c048b28f42ce6bd8eb1066d9c04cfe6d6efef2d1facc69b265508a90ca1126a741c88d8dac0ff2b30621a125ba9d28b1822fdfc64c3dce0db8824f57b9c8a817ff8de5eb342dfd0e74f075c6318590bb65d123d96885a93a22b083fcd413ea2bfd1ed28f8a2b7237a14548f8671864c21e9ce2cfee8d071de6ccb393814603573f182d32b0136fb661211212dc6660274825aa93763f42ff83252a377214f4d5dcd07d1d71c7bfeb0edb6276660acbf16bd61e1e9ffda4d44e9ce22f2427227b1d6353d1f617446474789470e24b5480baadcc67fe3fef900ded96b23fde6f2eb609731833874b685fc08e7d352324c6da08cb658241545706a0a353d9e8ef86e875ca1f9fb13553784328bd57c495c8e4db96a730d6e0735a7545abfec373efe4482a3f5b7639d8d8329094f8c71dff3e75f2a5a7b0abbb21ea64ab7c925d56117e61e96bc1e970b6723f79314de51f594ae3690287f1cab514ef70c8f25b995e05a5e93d331f4070059f796e45858e5c9a741a3667aaf2e670314ded167269137bdfb780551058605d8e989588cbe240b000cd9b4f17075c01f718d744830d77db16e208b3d22479242ad62805fa9cf0d9e659917662edab75d4b19480252597708bb6b50b4c2d30fef2c25872cc94dd3b2980000cec287367da7ea09935fdff40b2276145a05ba5490bdedc70bdfad60850023a00e3d1ba528f6f3ed87861571d03636672c0659a1978beb5c65c939909e0df9e5e808a6fb7694fb83dde5c764ebf59a857cc988ee38011b2d881757ba4addb4c585e931c7911f57c34e8d15bbb61a62cda3debe7c97340b59c9704c592c9f4cc44607b1bc4533cc60ae8a2ad5b8b96e746d464f8fc75c45c41cc8df804a574526565e1a050091a17a1dd0d9f8fdae2eb40813fabbf5dd35228a3f7366aa025e7ef2e9cee0246e0717001f34f4eac51b3dd1e5974e4588c5281fd79c083aa984e4fbd3f70a25267cdf9ea8c8583384c96ed1c31a46c40323e8140ada594c49a45ac9504ee01b0af4f57a85c9864425308137f900718046a0de8cc5311d6477f04378512b69f0a090f0c8d60fb304e7bbf7dbee3ff50f699471368e051b494b3f335bc40113e07d8672222166f75790949f862b91def3dd3945c88de009bb9ccf5d11ce9b3f36bfb352d42b232b991213cf72b4bd7afd6a98993480bbd9cb99704c7ef20d9e7dcea8670fa30c4c970113f0eeef377187d2847d48dd7b4bef0211d490c6be4cd7389fca780c15d0a55a8ac8ba700d0eb055b537e7345b9164e1fd320fc3b9b179ddc0947869aaacc877f4786b069199e38252df415c127815638f4bc2555bc09389126db4cbe7720935e004eef9d46722d0a61a4769ef5131eaf0d1dff57d2a13cf128c17c93edf8e8375ddd70dc19ada0e6bd4addb4f6834a8b6fcacfb84dcb01a8dfaa8a9f5052faa1d32268688f2738feb579c3811edacaf6c987705d7bf0839b068202df4eb9d7db3e23c317744db9384ca521e0f251bcfa943df6187040d987fdaff72192ddf56c7ef5e1a9d6cb454fd5eb0cc3ea91942edf70b787afd92a83fc952740290b38728d6f1c7b118a69a1d7747c6a03a77f422003e9cd56880941c1ca2a34b59d7b3658311ad7b22435260e03d66ae880b74e3f391bf00ba72d5b77452ee111ac263d5f8d6a94a018b45e8e3a042315c5e311488d00f9183f8cda34aaaed760b305f57799a96757e0984db093a3143802b3a7379db4094ca9573d9c6d4b3f1a6f1b524231f6ba98698c6c524c7d65d22ea5a650ead3171d9d9d25d51a5790396e66bbe00572a7e8147b2ce6de19f34f46b9c41a2035359cf665daea64ec68ddfe5bd40e75c6b3f36a2a32ab6165d40c126ed0ca62b9ab44f128be6eca0aca72f8366b5ebbedb783542b7dcb19201d7cfb91bde531ea40a3848ce1fd94cee32809aef990bc53467159a63eab27899bb49c1a3322d81364be356d89717675b1051b9d11e26fc032ed9168ab05beb8600ff6e677cf31e7826178a2777ade9875c32bbe5e5af266022856adcd9d659f95edf79fbfa01a0bcf455b51d236d70e8db9d8259d761499922b94c32b22fa96d8173f504487578b8d5eb4d4c2bb866be41c70dbc5e1885ff0897999df789e9fd871151c666b8c947195d2c0d470ea14b86f39c8cbeacb5fa362680ae8e5f858e2a5aa72d62a4329ede567c2106b5d02fdb54af0f413618faae0a359a8d9dc64a7a1703c56f215469139957a2e3a33ec102275628d91ae96d4ee54d4e2e0ceb09b0403450fa655e353e69c32ee45659c898483dda809798fffb2f4dc72fdc809e41b0ea28c144d4f26702635c20ba22b9af6249746e20b4c1bb401feddcae792c9020af0934eaba7f83d44d1444e41be4c2dd3d30492b4b1133b202871655a50f428e209a551c78ea567466180276e716853ed64e23b0a46067d1e6fa69b84bb4bc1b4b9e621d3e90c26ff09be3b86f1d8c9bca281269ea0956dae3958fdc88397c1799ee7cd39813285c3978a84f3312d57e9264eeef1c522e44b036a9d44ac8cebbf4e12437b2aea6745af3801f348790da7461246c34d0b315a4391ab442c9d0bff3fd13797176f1c0d21af0d49e7cff6f42d8b992a70a01f57660aded7055aad028084eb08ae504c22d37e89a02e03000220d9bf94fb17219309ad5a19f248025cfc7ec0c793dd8bc9a32bed3f5eb27f6e896b51c8996c62822f059461bcb19d5a8365bf52e7488b7368d121448e497ebc728ca5ddfbf44b9cfc7c25a8162790b663160ba5b49e7fe696b8b0f8724d5cf97f58fc3e89c512920591ae1f5b8a04d6b3743b78600fde04a7a53fea3c4de377a2a3971fab777e41daf42a9570c2954b26554771dc492c3d6b906c9b606b25c9b8beb71d053804bba76a46c09f4c39662dfc83bedb7b9ae2accb3dfbd88803ae711210b891a8f9dc0bbcc1e18b64a2d2039beb62df19267c86f623a1918dfcc0485549abb1b55d0c9f694986b92ba8d4be320b4e4ad7a37a0aa3824e3685fe6723306b188e0f2e1e661ba3f6dafc517838253b82ed12e99493139f4b6e01cb0061baa108336a8ccdef469eac0123b828ff9054fff9ce0b0b2e99089e10b1467e5d02236cff80bfab757c7a34a64fbdddd6d9345120c6954d12936fdcbe8895fa8a7d676e505184f8c5f6c6b78e38d4755c895f9f465a7ad2114aa004a1e05972dfe59c0674b97603ce80df2e5696bd33fbd59be50fa5c48c3632832406f2db67265ab65e1f5cc0753e3af2de3ca43a959aeffba41fef065f1c09d004bda5ea35bec50a7074a0b48dee43a59e0ec0d1a2c94168fa6e7cfba0e3a34f80072723453bf65b1a4f11a658cb3e18126133898be3f26cfb4324de2f80c66a45ed0203580fe33483855a35161b2e678a9309b310d3d6ff63c266534655543c90367c7a34de6498c496814c8cdb7f8857b701f91794db02328bd9b240a6801d1c956c70d655675921d04e4c4df6139cdc999cdcb43398c0c2664c888e62e60080f8d47af2872aaec824131e77f465ee2e0834d12d60c0d649d937e222d7f2d3926e2c35b06dc847b139da1755b2187acc01585801ed5c6f71f9a3379bbff97f6f7119d0add333744933ae92596ba4e69734124c6a7e8d58b060432837258530a4db9ccb407c5c4f3fea92396fb21eac4f849f9af540a23a3d4fb41e6c4ff75777cf957f5e2e195773d50ba52b02d368276cb4b72b02537b3e4cbacfc51d39f9c3cca91938b37e02150de3b57e662cf4355c443c6a372965f2cef558eedc32f309146070decbc3615607db18a1679310f0fd91ed8c6951916f19f7ccde8b83bf53beff098dcd187a72a5be2bb3640d8583cedf380bb08c789011dbd03172d82711311bb57ff2a4d005e650f05c4dde7e99c9e513b2b517fb3563c729a189400a1f2fc92941d802e83a9a5f12b7b7bac7e6318d763e3b87ef4fe7b20ae8460be65a8aba25f87cef9202ad116947ae6852382bc84adbc2cf648c295089de9904e094699c02a1a7b3a821071edd32273468c84bd1e15de8bfb0218f16e164118d8838c8b577e81705a9c49a6954145d6d7fb78d060a68fb4cc2833a6d531acf8ec0c0889c277b724eaf62772e1f282fbda607d990e04d20582341d430aa3b13dd066a996cff0e14f4bc972482856fae110dae6807b856baaf00aa00ea37531f653366203abcd000c29484d095b8cc9d63a0694b840e0c457aa4295f6145f7fd4f490064ff79ec6cc7bf11c3ca2b7aa9539598144b5ea22401f0f8988924013c956c4cfb94616a272ba7415202979d508324620a7a85b03015a01cfa548d58b77102342ce594a54257b0622c0f889c0af6e321e9870c263ca23196739ee399d65e1df28d966cee447c6d4da33766b78076e9ca4c4ea383ada7e52701866f8eea3ccec76c73a979763e3a9b6113299ab43d9cf3e6f9abe3ec4fef0cc0200c2f3cd467244a4b99828b7842d3920573a9050c6c20ffcd9b78b18a8a4732830b558e2b8e6add51b7c4ed3a51a9ac0898da02d206245d2313ccde73673d798c17f69d9329c91bcf528c3b57f1530d1c1a8b3cd0d99e9f601cbd970909fba5928f6571ec478f818b32fe815ab41332f1caba88764db00ad36b10876630f3410940fd09e89a6b6d94521351be067aa327bf9dfaf23656ec40688f6f2bc08f3c62f6a2660705fe34038c9dd59c2b3698a29b1870ad375866c9cbfd672300fcf86f1a0d8d15b7eb296becadefd12f01856abd08b5c907ecbb89810f5a48d786cb4a41fffbc22358ab9cf278e7674cd05600c6fa2d3f088c0e8ef4cf5fef7f8ea4ff5c68fddd456b1a264463b6e1b800c9cab7f5e8213834afadf931d28cf7cae6324fdffecc6e5607e77fc4ca5ac928bb0c99edef9abe67d17deb12df8f09c46b5024232f70b8d314cd7c2abaf686607595ad774c64c52c883ed181eb7f0bd535827ddfd6dcaab5d3bca80cd3afa247de609d67a527ba2623234428f86db06d2823de9f512416af359801dac72413dc24b6ac1513815a9dcd0bb71dcd6f86e9d064dbde7c9472c225f15e79b1dff7fbb8db8aed721450f187c4efa43c7cbc4cf70b3b5b291f59afde7d4684271b7786dffbd0de6ade8cf5d4300fc95a279e4b98c91a61a773e091fb7a46968c89b6e41ab94a7a6e720586b0ae2dcc336ee96f1c65dbe6d79ce77b077284a8584e1e2f80324ef65de8c12d684a2ed8db0549fca610e24c5975fb64943412238adc66570e64e3ca8e059c536de876cd7108a47422e62e2d24bc3324ba781d4b1545237653c35c5b7cf4e483583f9d515fc5eb0563e6b85d806068ae88868febeb0b8e1224b85886eb874873348fa07cb98c9995c65d8d57baa85b79e81c3433f947987026515d3c457e7fe6d6b2912f7bf8b74525d3529472e69da5b697a25659f242ab376ef675f71c2f17d4b92f0d9a6eb0cf6ce211346dd76739247b03ae376d4d4eb89c448a991dc616454af7edfbaa029cd63ce17cc447a887351788180cca6f07a3a9201ddbf8256c3a1f627915d002ba71363bf3873ac30940f7f7bfddfd3c770fc835f5e12d52bdb11c90853e6ff443979de7d23bbd0f3b6624a8dc3be650b2193a26f53eda1d7a250def066ebf6305e90dace1e15b10074984eb88fceaa44def7408f07a27401f8459abf92e39580328f7a05fa3130e6bbe13c24a74f422e2a32702ef06f563ea0e5117e8b10fc7b1dcd9854ef1b376ecb1e7dcd851038c0be82a43e0e1ceeab35d544d70a406163d55e2e399d993fa16f4794d3856464929c8b97543f47a73478f443849df055a7fc0df3e6e33065757592990653ce918e97d6ba9455584b900c2389009a6316c48af5f6eb057c1d3a9099d6e68b6e82ac6e7be405e8676096c52bac9de19f486e660a56bdaec884437c7bb617c84e5ca9ec1f560379456efee1a3cae58ff19d756802f174efdf4e833804ea6e89a66a3f0cf9500cad798bd347c5b7f40ee3e011c51cb66a1c971eba7e883e2248781752db6aa5de22b0e777c9ba51ae8ae410708acc2798f87d434ecc33bd1c12055d9ea20849ed453957ed1e6edcfff74c6466b97284dac2acd51169ab23ef5d5d315064ac88529f355804a42205978b7d6109e445823da995339afe4e280fa3f96db56d1cd65c4c5d17e6e3df862826b1612d9405c2090d1d5354b1b7723d56078cfa2758d77a221785d254924d1fc7688489a6623475369d3625c6555068446740d1fb2a9d17558c72caea6010a3282d8e931cc794d8377dcea1770de5af689796e5a3c0c37afa9b7dfb0681f7b65a264c82e979f5797e51573913c2ca21c0952c314c6c13ee2874da4b8b350b0432546096902cd45c90134ff90bc05290b3811e3c747b19eea5ecfa3ae9fa88a51c3169e3f7753696717547ce304c11e4dc7914c844b1e4aa55af07ea6e5c8e81db720e1bd6ee9f721fb6b434ed3b8bbaa53287f248c0aec2a9cb92dc26572b6c49c6b71c3c25bcc5b933fd4b3c44b8f261d45394a83f0119cc01a024a53a8f74c7f9411aea48dd902307bbe70dc6d7097854c041b9fe19637cd7b8d2971e3d62b5dfef20a8661db72e975c3d7de0e50d40cb82e84c8e0a0c5147e5a1f923ede4093d9a30e5a53c870244c2090b737fb5a7e30995b139760fd05887d5383fe3c1e90d5cd6d6fc1b80743d9e85ec36b6a7da81765a40b689e675d88549fc56dbd032f130c0e11ba4590662e723f5524579cdcb3df6a18a0421dd1f5eace72aeaf847a3577f56638caaeacc9e52b4d6fcf1541f9cb6ad4483f937730f5a360d20a7e59a26ffba15534e2f8c0a65e87a6a3e287f23a86f68aee1d83f7d2820268876c75827d87d07755feec891c5c2c616a775fcf8e1c13e42624f1744d7cb117ae3dcb8a484d395f4f775b2d1c50b213610131930aecaac54deb8e3049fc7c32ad9b214e3daece5239b8d4e9dbab7caa5058dfd879e78831bbcb1d77fd575e52c9ee1b8aca523f273856c35c0ae9ac16331b9da25512f026c5350601728a874ddc89369e71cbc941488ae9ee7d70e6b85a36a604240309991ba666b96e6f32b4a53a955540602135b5136f43639597485606a1ce46ae719097280104a0124ab62b3ca3923f1a162463364361f19a264c6e48bd83f17ec0af63b13e14e9c85d1d4b9966402e47870b19123538cde340a2fef47c64cade79754a305d5a17e8e585a7b292677593f569f51134de568da4e7f5c2f5b45dd016140d96417be4dc325dc133d4e7ec4a05102b5936fcf65a5de4e18a22bd4a9b1a7940a8829f513d72bd66528fd334d09ec31641895171065756990ed0392aeb10abb525e532c2bc5aac1fa8d4156d93d844fa76eb5a949ab1abddb2c1ad023c67264ddc86b1d7853c737ac8e44fe86937f6b7de1cea869c95229ae56eb2c0faff5c7603ddc5f057cd4fc0f0f7dc093f2b770a499b499c6e3ff5bd29500b4266dbe9427538c782b1f03a93f97a75f97876a835712821b6d2a6966bf37fc9f93fec83515635bcb43758776c03d1afde66d35f5588ead5f9b1ac66ba5e757d59ceb0b530c1932d6441fe20b45411b10b575a6ec3c376e4da2aa82887fee9720ea35f09128cdf615ae07e5c22c9832aefb58b689159b92ee848bf1dc74eab983e64f342801c2d603a6295f25c2196dd7a369c76a9051897c5b66bf66ee4909cbd1db480395c4a1b196d69db4dcdea0efe8c78c76339ece10a15af88145227389132563ffef7461a90b5d354d701dccc7782f44d3659ad0a9b1fb28531eb69616dc9ffe6deb2116327e00fd76158e10b8e9c85c59a18ed2f4d6fd7d6baac282e0a8ee4c5b990e508302e0d67e8d5260311fe6581dcf4fe6f7a1ad45e93975f2422bef31f346afeb225f2d212406c14e1ac2584ca4dd937beb61187f73ccaca25912027ecfd5ac2da28ee593fb3a650d6623c0c489e3d3c1aee3386374b7277476e6a70cb041d50f5ea2c9dc534df0ab0bd33281b8cc1965b024ded0865ae539c89a5fee47c77ac6391637e5a0160273011efc2ff9609ce5a58cab08a14e5c1de3b47a901c327b6046a91343db45b7969733ea0d50a4660f80825a3e7099a6ccebcfc4a410b3c7b2fba9c6d54e17a5d180a31c5fcc63dbc1aa940fbe48238136a002ca92b0906c3b574534ddd7ae2a8c80929c7a3688b875b185515138f40cf41e6891f2d963c2b560ad2d75ef6764d05ff162ea60b0e20a7c95f0bfd4222dcb4b900ed6b5c8b995dcdb720cb217fa815108b1f5adc237df5ca82e65b39c082bf10ff89f450ed140265ae214a000e1da05d71e0c85f697153a2d8f14b8356741fa348bc86d547bbcd83c4b15801138fd149a5a4fbc0e302371afbd74c3305e349d1079db4a4f5d16adc0c07222ebcb8cdb473e659462d989f297a3f6538e9adba5f93e0fecd520f7f4d20c028500cce8a4efad8bbc5e0c0261cf868fc7405db6d8fe8974b87082fdf3cc083999ce84228e8936465b4d50a5f086bfdb09673465f5974b7952fc4e8b14053bb2894b1b53f531fd9bb8f2339f307e4a58f6177abb7d3f7a6f82bef544b6e9749d9b3812ab48117169f15db70ce286392f64064ae756e7523d40625bd562b0b734ede072e93ecb6b56b24b63dc1391d430c8b0e183f691cce0b63845ee7edcfebfac70f41298b400260dd09c6db1f862c0384164f0797b7e97d1e5233085c7cbddf6553b6acb71496e06b34350d2a0468ef3c3438d7bf767b634a68a6036e432ccfeeb0d879dc8c07aeb54e0889d9c9e4888b371f635349bca52e8968a7aea33f891552db369e355017d6a7743ce4f6de3040974d4021162cbcea47a4e36571e08b2f6a67ef18e5930feb0ad74a0e8b5f2477cedfd9af4f71f0cd514d9681556a5e2489ce376079a308d5626c6ad3300f57c972c474a8b58c8644be71fd47410cfb1bb58612879a0073df604d9da241047f8a05e7958364bceb62989d40d504eea2c870a70b7572eeeec197fc880ff36a4047d99b3002a7d8f874dca47ddfdb0af6c5625f38dbda9a19d3abc75b8cdbbdfb8fc972cbc1c85b0d5ec39c89e3825d7fec53f616626db2dbcb68ea161fedddf276f6fe51a103227d3e92deaaff46cf6e4c7e23f3d6010782bd7753a6c0ea7d1440dc0234882ffec961b451c241eccd1b0d182c99f11e3d9ee43c6f288540bb5007fe5ffafab12f6f3336b6c7ee0906332937628d26301e66b870019224c8a132e85db9ca382c92562c3cc572001fa0de67731be5f7c0f77b517fa663ec991ea56e439871b82f937cf0961d8f1d56bd2106988036f39d740dec3ef5d3e6f6746b4d8dae29737fa31513b4999f843bdd3169a297b7f227d67a57dd320a373a6c6e41daf56e37637fed260542de5be834e6838f826813337498a76bfb00cb0164386ef136ba430f9236efd0acf384da55e04761fd92b7d6ba4fef16e28d49dc903648543cf90eb581c173f865d8c01edfdb06fb45e09f7967d59a11bd3744ece3eafd7ea3a9defa57440e4346cc70cfbba9bfa413ad00f8541875fc7025b4adf9d489aa3783f752884923261326c9e9755cca51f523b68972ceeb6661bffe18a78aa2c4fff044424974420e387091a7b7e70e26ef49627ad517d86c6c2d2dfaf90a70eef4cadf572b80eac3fd494e894f0aa62364a28ba9e8927da30cddd91b376448cfd7fcbbba9c7651d469afd6e57b1793dd258e92cca9d03a2720ffff867064b74a1f8c36f055114c25314140679617fb4f7e030cc5ec86fbe2deeff69c35ce446a8efc2d5bb9c05c8dbc337373f3e8663720a198dc14b9e307198e6aa5587474ec0ae41eabb92b73ac77033bb9491d5d8de743b605257e896748809995677c4aae67666be89fa84c2df2d8a13c2cb107fadafe768129ee14288d3ea33cbc40b4ccf33d8b7c726611a4c30bdfc36509ada310fdd977cbbeb07e011285fd279b1f6f7f4712944ff16f383c8a369216c37b3dfa857aa81f9896eca34a656ece65f3a3b5299059692dea1a3ca1fe46662c09cafef335f2d2b4238d483e23f23d06ddb0b728b6fb138749a70978866f3561543e7500b760ec9d6994308cb7e973a966198dd3572dcc1a0d014868fcbfca3a69fc51ff048aba7388a452a1315de00b184ba356485cd4d8c5cf0b2453628da67eaeef2c35ce062292d371567a83083b5498ce5319824e28e2e5491be6bbe083737ace37b63537449d4c288c4e0832a94eab43bd733ac1fc7256e5f16d62364187723f46df7502ec674505263631bda07d31866cd944bdd3d97a63f65d27ebe985340682b49eb273200ff9c63f3d3b29e69cb719dc8978368ef8a9548fc9ded930632cae638221c54a7da971f684d37621e0c6faa8874ce33996db512bb57b8f0bf2b54d535083c6768cdcd237f361303de324386ab54d867fa1d0bfa0e06b5c6a94767bc85bc68e5be2900ce92d1c6821bdba20455786c1bc7305e7dbf2f6153b5fad607a8106acbc36484588ce545edf8a5257b62439781c56ac4c54ea65cce7053ca4a69eeb479b47c729858fdef1f2040716b157f2f4cc669b85f4563b3dbd98f138790ebd5f737a71cf96b546ecddca06b181f40d05d18d7e86c6e18da93134e6d7c00a051772e8f66b39af9dd56d5931d7dde64f735e3531e92d56cf0be688c7642e29ef7a19101a570f0d166690c8cd3d0c596749ce25a574fdc796e0b797ff90e75603589cffc668b82d860080f193141c22008b7f45f6774205de2859f3dee5ff2a8e91635081b31c8539b408bbfadd6bc19caffd1c08234af16885be021d1fc92a7f6a9ec4dd53db32659d411ce97b4f6ab7f8b2a164c8a16ba20b3e999c6db71bd97b00d3189fe32b40915b2acc0c9f608b72c47481a8315d8029238867aee4f586206b9fe14a9ec363cf98aa0bfd2f3888b180b624fee7ab34710b8f0eed74546e6dcfe0973b15459aa0109aea7c6fffc2333d4d7eef4e7689b24c17beea2c15418bdc6da26e06f280c524e0e61601b636f28ba6629272fa20a5e1e97b105060e18c10c440e38ff4f4b4c242ec977fe8b84f8da7b54dcc0f381be633521208d160865725c38817e83021cb7c6191a798a287e70d3c3cfa80c7df8900f368b84c1db299665cdb5db66a8d712b9b50727dc6868f49e3f7d74a889d2a031c8dddffdd0450a332ebf3224273dda2f8caf86147c4af267d19677cbf0a399dff8a000142cf847897654e34673dafc7f90f76c2f2cd0b3ae48f29072a6ca72cf68e80a9930203043942e93438b115825a537761d3c4680fbbb4f2261090b7e86bfaaa10390848796d05f429c0aca98fd95e8a7b84222510a00f484f436407f23e65eeb95858d075effea380a6d8727a4a0b7c88d228fe30681d06e42aaf1d57344611ad085f5ae13361ad9fcbf0836318107417a16e9b77309d2f2e5a17f343404f38206c4a189c68e9d31cb92023ec9a1c39443f8e4ed9365ad69b6ff798590405663dd0e79ed087d55ee3410327fa932196311068fcd9a52681a040ac5571e820f10175a803932289f8f36bf41271c800d7d467e820815e71aa8a7ce06fad1f3e6462b397a74804db49e338e8a140286a2ec9bc53de0aac83ff96babefdfb50d23fe5b140abd3c2e36709dd67fc5deb62fffb9b025f3f0506c298d51099b2e615eeba0231f0322e627f52e5b1f06f863d1975833daf63d4cfb148cb3c9986923813e9892572ab90d3f7af881141083626f2d0ad0911d4b8f229d907d07468dff264210a09da33ab4e0747007a3aa80738c0da7d1c78ef62dae70ccf23ae2d04210b5a91e3d4e78d20cd3ee041438c24b14284b1280fed122e6edf229cab239d9c167f0a9bfd01935f60eee5ffea8d465005e6578274d233432241e85b2b411114fc6da6ef9732ca95a41e3005585ada52c90257b11315231dd9cdedbd69ffd6a9282fc023d012444856aa43082625d8f39ec0b829dc334a3103fcc1d82eccb55ba67d20b2e74dbb5b08222c6f4640d383a507da198a27944e85bf3cb393b71b9da158bf9c19fdc55c57b45a77518ba8d6576b53d0299be67b19d7079587fc8c4e261b89c0078ad0c674f8956b55b53a93a391f935bdc91164b94add6ab4a9e91fd15fc800286eb6110a2c098dd375ccb04a578e453c09064ea41ded6133afad219c335df975d4bce5710a35138d1a6030e660322bc6aa8b6e6b04aeb84ee4b18445fe332fcc9a8881be7e76155c5e7effcae45b0333cd149294518ce8ce907fac98e0ca32df8388877d242e3415a2bb48cad414d006df127aa47b462226fd2a247e908a3c8c3972073e3885b0ed895ed23c3635de815ebb2984ed75e748f7df02f29397ea3d2a62efffcd8e5d3a1a26f0ac8ce1718f4d5eb336c33845d1782d8b7f7a1d0a08da02ede765ddeabe867246f416ffb978199add922208fbc249677290cf4a7e2a0c7f4ade52fdfc63093f68b5a03c214d2629ff50e50ad0b91b3014c389d8399e84fa9d1cc88146eab7699722e4bef97687d60d8169f504163ecf32f8a1468ca392fbc0889c56cd6dc9674b27b43bb87885dd86f58bcb668fd72c03b6411dd8e2693dad220b63c8d46fe1bc18fef1243576b63f1aa71eb4464e06ae32022e7cad3e93300216a258fd512e7de6ad665c210d5a67b3bb6521b4282664d86ced05cf6dfad514cecdf7bc70c26e5da8e9d8304a1417f53f271d1cb54dc6dd31e4b151f535b1e3e4a624f47cd65929efb8e0c5bdf609a055a923d7c77e3bf9764f25713f8bd2d24ba37168a4e3e26fa28982ccacef1b544963ebc5fb133477ec2fd45d10b28601d60705b2a8a1c93aecdf7e5b22bf5e9f9a2187505975ccb12a9ac598950fabfe511b91f6389c43c18571944df90cee281599143632275268d1403143966ab455c02d5d537f8e208f72be0d73e559f0980f58a2ba20e21922f15796f0c4b52f3a94e63f1c06b9e85cb41e2e67558898bc8b2630de93583eb5b05d7a1bc3878e06b956d09864a209348d00be833356ab8a2670e66b3e4e3d934dba206c3335d7da8a8e5d9bedc1b12bd10e73c047528f4a00e2e8c8cff3f902c8e9bf1bda8003a80f27dc9030e85a914dd85428c004c565d3bc4c71edb556e99ca8092392c33779422f1230592c34d199818f1af0188199766f144297d15190f2f51782ded57e86d4bd33eda277b18e9a7443ce2bec2068d8938435acc98379942089c58304d23de42df2faf3330bd768a06a9240fc63476470f547b4627e1e2f9439aa309eb5b250a50c6dd89e69a480964c849288585a2928650008f6bf9ab305f8bbab8e6485e0f1f6f09578201d2dc2a1437820396381766a6dad4a583949d2abda127b444c741440857e5b343736469e8e6824784425d88c51801b63342a0bc2f4af28bd9be868aa47d238ca05557c576d771ad81afcf578dd0bb8c2c2f1e6088705c66e9477988499631e4397e5975d1d6bd92c4fa3487bf86296bb34d81858e9f1d1206229158bbe10ef974e073990bc016e7f0982ab57ca649603e90cae450c3be0093900ab047bca0ec210da014223dc74108294931335eb178283ad6f6fd5a88fb4bf012008aa204974cf9656230431e906713c83a0b04aef3e320ad2294547617a1575e17d58483b67084276a27743a44b555cc96b6e81d21d98f3c60b9e8f18f3fb2c32c46690d3fbe903608354ae6cdfc7391c396a075563295ce70cf94990c44dbc0b2b65a08b7a411762b8398594b1c425e8b08a6cab62e2441bdbe57fad6ea3e1e1af6475d3bbab700e62625e50fddb4d952358a322bbbbb8ff42a81f2b0894832863b59ba903ecb81c48124f6b3c068068d3482f4ec412de32d98fd15842077ad83d4a19920856c5922cc6c154bfc0955295302a72d5fd31e56e4b99454032931a1671c57ca0b914cd16675c6aab5bfffcb9782a850a157a7f42924a2e04846efb9abbe7e5f4dc356d5abde23d779fa3258b9b668034a820db41420d906a9625ffa5a3b47eee568898fa482d62ab67280b170b57b4db956e694d8c10180cf9f1406c622208b8cace3338b4f6fb3b4d8dd811261c2831208b87473a8a88c881b1fc0dc6d734d538ac5f71467713fc262415aa34c7801cb7b3fc3397ccdc99977cba2984ea28a8b7e8faab5e966afc6503bf8524823dc367ef99765d4bd20bb86fe644b0d5a08d3377986da9d6d4c28327ad199861dcee8caec849e301a14a2644a107a0b3fb59fa0a7512090b2a8f086a36c5d3657ea6cdb488a793137d8f227d2f88ff60f432608daa0a089628ddda69a84648795ab628f5115dca4d3eefc5b339e8334a05bb434275e838e2d98cbb830594515eba783a11bcf622d046b8dae2c65e38ef17102ccd29917b157717ec46fb3343dc06d2c4d078171f5693a4eeef06fa428a6bcb7e97e01ed1dbee39ff29e75225183671919f4bafd807d718c125013ef595b84bb1e236d2efef9403dad3a0335926fa04fc4b5db33db1918d07e9f122d014ec8abd494314570a440698347df8e1e7f267cfe664426e38c146d5f5a90b13ba71b9ac7c40bbfd208eea7604a6e05c6d5b007b20b6805c8c377ef84760a02048197cbba039da0268593eaeab184ee0f42c100dfedd8f2bd2f501381b4c5074317a1ece3c8029d61610fffc29aa66520ce7b33fa9e918fa3aeb5d791554de9f3b34908711cbd5edaf87e5e38cb007663dc10a832ef821ebc96d0517a87c9a71ec0c56a98e42181553a915e041b2cee1ea3b3e028171c861df0e5727e0b9367a7307b586a343eb08d00cdbb85f1cae626cd33195b9d226ec396d818cf037d32b64070b744c070bcb43fcb7ba63717cadc00cbe5454635aa098328060e7c5b86aca4003cb10d8dddf66443d61f54d9060c996ff56251c93dc122c727e841a5be325d0c62500119a29f9238bc5a316cb84426db1600033c49cf9d07604e5ad3abf372ccc580fd4db88b918cc032d6d23369cfae2fa9bf0387ae4b1ea8a9aa4589361651e996787bb7e8518349db541a35b2d17dd149f158ab916db0ba00b7a74e762cdad02f8c8c455c80c0442b7ba3d734a1763f60789af9faac3067584b002b5c305f8423e4db655d5b9c8d867dd4446a09ebd58ff8aebd069ac2d051d5b45282703110c1fd6bf5b4055ab8827bb619f56abde8cece1a87df677c4a6556e3f65017b08a9647cf9cbd8d52f01917290590ea92b0759fc11962ffebc0d8501e5e54c5c21cb29248a3ea27b1a2387d32768627b98556694910b750258a5a363e69788d9bb5d8564d78abc044735edea64a34a646a729621e6bac733e2987b8217ec6b0b8a2b77cf2cab30c421c4aa48b5eb7be4a44cc6332d2b0deb2dfcb84f008ccd42dde1543fe64e1aaa60a7f4b939d7d563e2a3c317b300d7ddc19d80e5d7ea0515a49604e4d6320fbdbdac9358ff480137561331afb571d2be3763ae82946a2ec1f300834d0195b7a1708b547775996fa92ce58e10b7e6cbfd217036ee5732138863faf2641b41e4aad8c7c3113da3d994d0c1476994e9b8daa0061e4c8aec53474666b2eccf7bb6b0056916652fc5c4d5d8454907e400e3431289817f2e8b277360d7c0f5d97b74129b7464e84c6d7055f16b45329e588483c3360bac21f42c203424b435a6f8a503dd0308a64e6f9544f01c8fccba9ed87932810eb108fb3584e709902db515e9ad42bdb76b98033bc874bb212cc4cd8becf3a285476cf844fd5371c5ee3693e3766f8d6eab57b6492b7d9642610fb9566198365813c4ff712b575b5550b9fcac5660660a88df33c5c273df031cd3b488dd61ab1a92d65549c38f2f6818f49c5a309d0c6a4990ee58be58687768279e38b1fef786f976c71fd5637a7c27acb66ebf39cdf1a238debe6cad5ec920f3d2ed244e0595e5d6531ea2ad55d96e349f54555d94e3f5a4bd414022995f14eb83d7ddf30a27af6f83a74a47741b0dbbf53581b06e45685c1bae4505226f5fe4434942656312bc01f0876b6c76c1f67fd41a9937218af8a903d7d4688eeabe87f16aa0a303760bdfacfdad153fd459ab634cedfadf409af040b81fdfe8b0089c8e8a370ade8b27668241422393e2cec4d6306b15968defb197271ac3835fb1da01a9e3dda1a5f87ee35b0b8d0f81df889542761d18506a84dd494cab79efaa86355715d629665fc9ce3a4903fdac20abe4bd13b2f9a85ce205b560f527883cf65e92e538f01a58b2e8f36809ac6c6a5569539be82982b747bbb937903a63cecb14df68d53d86dd070b1ca22446692f624e7e972e019e0f575ce00d25354fc7fb16affd8bcacbb252e330d0e5dacd65a15dcb84b244aba4a0257607e02c9fdb1ef82c690ed7fcc561601b5a2529689cab178359d7f0f54706baadc90b4cb3a4675b66b5b5d671991eff320b2195445ae376a1c7ae2fd76c251fb40a205180e42cb72e7b151534d3f218d21379395276325db69e40b3019d29858a9085f95bf2c77d9979913faae7e422dbef069dd56510ed36751054ea5b78234dabce436795e0b8ff0931e7e1955d16b858d0acee76441fd123f3e12f6d47844a92ceea4ab59b8d133244cee165b9dff155e3da21bb42fa79ccbd1c10d98fdce2710f2b3cda88dd6cd417fa38954ef4278a7e390a2052fa3d5db5aa3e93a8493f7adc00ddec16872367bdf32fc3c32b79b3b94467b542ab881d7a3548417d6a19112a91471596e8a5a3cda9a18bf0225562a958d18b76a95d14c7cebe1d26bb7c7eea83c4686107e64c6dc03d70bccf56f297f1e5a44d52d1d9489cce6a7d8e3404910eeb12eee64ed99b0125f8f501d779f380f9237fbdc4def44ec1bf11302a93f3bc4c6795e25e6965b01407f62dfe24666693909332d34abf9e3ca471c46440fc1085cf4dde2a1f42ca978599a3e8e9f9baa7518bb5d7937bd26d470035e0c2a1b79d05661790cffbb40ca2e96e56d56de1fdd172dbdd45f34d1c47d32b4425f1a242cbd3a15e027c973cd3aa2d741667b1b4a546911963913b7f3157476c395feb9b49651f3da6dd68a1ae6658f2100bd7c3bedb96f9ab18c94b70bc6d4deb516c27c20315c7febeb2f86e56b5f8249ffc4ba70052f766274336f784852aef97a2abfd1a5e63528c0bd810aac9370e2e9abe38b4aae9a39955812c5fbc7d2aef9b5965690a2a57d9482c11585b3f6a434310247ebb97918628cce2a105904107f750f57056a62b3f5a39609c6d0e0aa704047817185e4addbd8130abb4642612c080197c6d25cc2ad9c2d3e984d64dfdf19e3478a51e425a41d66004ba8ae84550de12694634be66fc45725e4e6ecd846e9910fbbad184171f522d9caa9e63c54fb29c0eb12280417c72e11e7b1fbf777298555db7c80fafe5ef30bdd6f117ced6ca391d016f9050e784950408031666f555c72016d39e28d6b541f91f7561566fe5a93b85d358a09a061292a9e6528fb501e1602fd4114dce84c77b870d632815d9c5b35ba529f83134842c88f49c085832cbb010b526cc6a764e2a57b8c7188e65d70c66501f66b545511068bc320f823d75063bbddc6884944aed40e0c2acf6c0553b59f535c37388a671233c183455d238fc07087b985537356614d89b0547817576139e9cf02bf6be9b87e4c09fbbf47274e3fa1f90366156d5055bc217c646810f9eb721d354971bbe3881b1255ab321ca6be4dd43b3d710e891096499b0ad44b47422df48641a4186a35786cd1cc15fdf211a6490322c315c0f9cc91414253c63c6e13c6ac2ac4288e767742b1b9fec9a71355edf1895b76e8eb28aff0946233f4e0a321eafe79a59bc1460749cc48c41b2b8c749e05c7df0042157a0338900825742fba3734e4eeb97d3c54d6d0551944537fca46d3fcebdac82027fed0615915439590957211124a5dc0c9e089bb8ed1fe850d117bf83fec149e125bad75d4521c688f30fc602ace89a22b1c27e6bb3acaef4bfbf3f8e1383a00facd51539644cdd087faceb6c522300b01d20ee6545e40c4edee51f6f8404073de6eef0dcfa37a4e6ceed2770148fbeff603c397725abf69276b0940625abb7042b697fd4da1d59ad37563c81568df409fc38c2a7c923ab98725f13158483f73cf7c8aa8ec4284cc4d81932d3ba871ce3a3840057c5bca5b8c5086635b11291d59916681e768a2dc5cf77609620abb45d07a895cfe13c3ba97950107e0241567f5b0b66a26acd7d49b3ea7259d5ffd84f89460c100fb255ea3936cb0a11d5f2bc75d76e605d67bb58580cd3b5161a1df8300b8e5755091610f5675c7c7ae01bc468c151e0f2bfcb0269546925f212d18212599676c65738d677d91b618ec7256a0ee18a6c547ccad9e7e9373e569fc4b2de0926cd219938e60497808353233257b428f312bdc1b13a9ca58e62412fc292255b8ae1585d8add3873b19de5a22fb2f2ed2dec6b94796293da8e9c783b1a202d7f01d80091f52e2160321065ba619cbb0ac7ea1a54de53111cabd65a3ff1ee1d7e1e0d1d56fdc71ac7ea80d2440c21e6a8346638e62a9b08a1e804417271ace204c8720407fee11e421ab610375e2182ea55836315b8716e11b22341a836634f015a9ccffbf42a11d49ed416b895c4865491abf8ab0ca88fca01649f310ae4f75e0fcb8f1c8f48681cab233d3f8850ea05aba238db3baacdc20bb09139798b9c7b5995753102c1c3ef82522fbb5e1456855b540253e3e738d96f8f6395d4cd8347ab4ebe905a1730f442115cba17b8f5799fbf800e5665de8ef4d0e2583df83e31079c6b4c1f38560d097a58d39c47ba2882bce1585d226b79af2270ac3e8bde0b8a63b596566fe9101cab465a3cc3ee1ddabc93502c280a841468bb0fedf300c72a6ae2278ce2211cab97949983b91da41734b782dd47880c0601c72a35e1375cbcd4bc5eb872428229ab05789a332b694b9d70ace244ffbeae60fd86f075db459a389d1b66a68a63f57e503fae5ccd3ba68c095dc486a2543062904f62d3b5adb19a9853ccd88eaf9c89294aa4122726c777f926ac1cb466790f90b05e9298607328e956fb307c2aca1619d97bd732e8172c68209d69585fe32fd4063744b9e2f2608dd538fff5817d13ee6e6dca4dacb25fa3b2c91c38f7d30a2fb76723a0e4a846c00aab5cd68eee0946c311fd1aa860a7f84ef8dc4e69f5c2bcb1ea0aab4787bf17d6b173b9c16996d56a4e235c3a438240bc29d2dbd52aed17860658d5f4dc48f6563a8adc9b9fbd577bd86c54ad9652c42ae5fac7d44902e7bb49afe99d7d38a8f4cdaaf3517d9470d567b65a698fcb9e9adc520c6af913e1843dcabd43bc872fac1aa85b65468e2db5b91d0b412dba69460550e5a1d9bf2660b23daabfeb73c5338c7bbf7ce6e12f3ead001390ec6fee3032a97d8155c557bb64c2fe94b286eb7328471588cf554502a883ab90dea802ab6bc5f44b7e352bb09a4b2fb23a1dfcb867c5e04910cdd5eec03e5a3b8b3eedd331e8fd00ac56e9bfaccab1b92d785bea9f22e6ab1e6b27088deda4b752c4fdaa7cf205b224e389278eac499263dd2a8888d19ad577bfea49014e34aba3c14bd3c4578bf60e544b4ca968beb75c8231b65f55c1047b00b2bc0afac54c1e87b8f80cc51fa02b6d829dde441b7d36e91843eda55b047468cde9e052fa0294c4fe3926a7b8ff7f4eaac66a6ac4a429a5756b1cf08d44faad9b85397f53e7d10b15b5255b79c90231f57934d3811894b252f5ab922d3e61acdce1db0e268abc93d345c4baab5f359c7de42734c3b5832e6a2765001b60dbc4c43d64c8e6a13daa1961030953f89740f5509e7d1379a7c87c2b8ad0ab8f6d4340cc9a439162bb6aa24831a623101275a9080af9750c845f1582aaa83c1dbafbb2fda557459c53758684b95e670834209d2516a1040f1c1fc77c952725d985f217a97489ba987139b9600c066a01dd45f23104e4e967aa79569dad569958a9fb1b513e44c52629cea5c30a24ded844cdbf02c903a7a99faaee6d78f0c4ba885090bd2e4aeb3a2924eb96316ec50e8e800a05fb54ca4420ba2b8637201c34d7c6e4dbae8ad8d33babd759146ce9622e5dd547eee984783ef680ba48c9bcba05fe5809e7c162ac20c3e2de344d32309437420f68122ee5c10e9ebe4c8590af76bf547593510c342848f56da2fd6c3623b12987d318ac8367dc236d324e7da101a7351dfe5ab94b962d142c311f64f2dadeb26491e91232a637c8ba2f8d162fd01169339422c83e56c76f50473f82ea6ef99001d3d4ebe65b9ffbf1698ad662c58bdbafef47eacfd180ac230354197e5a7dc507401dfe328f1324dc320c822f9d6556a8764c3e58d32ebdcc11aa1eb395012a1a5568c5a1026c0bc9040a0b3b96e8846dbc098e359c8e6118b3c3c738b80bad1ef122cbdc01cd951ac76542627af22fbc38e1992d1df9dfc30ec4b88b366d5850f7560554d6b0435a880e2c5f7822da5473da8ba048d0a25d73dbdf8c32c8e0b04798f320c89e00853eb6bdc5d4f0b1ef4377e2395c4fa7654c46c4ac9a6d428a47f549dec4ef35abdb85159a4b89c76b780c2fdefbe6d87df8d2c58f1b15c39cdde1c30bcb8e669ac1d2a8c612921593c4d0941a7546f7445d784c393de92a7145647884a4ebe03a4b7fe28bac2f317be889035e531b7587c604c00e7727ed45eb1fb93f2aef9ee66ffa3719557a2bb78bf90cceb93dd61aefe7360e79e679f8dd6454b0e7e718551229af15bab1ade87745d6498c8a529bb43aa9f9f91aa9b10f94328c2a6d9974e8c3f68a28a3fac0a8ea5b0c92a5ac3dd672e927a1b98c14a8d2a51622614b5eb02d5dcab25cc0ec372cbdbfb373424201b2e3b69579eeb1fe65c619738f93470b8be6f68fe6ea302679704f0a132b6d49e133a1c156d583a20456b81fe1fdb221602ce1d2494d1a3fd2d8429bac788d4d11a041f2ec1495c21e0d269a52db282922b62fe5fc1069f638408852aaf2d1fc277003c6170e99a87099fa690215136d001626968d8199e2d08a8625ea634ed594a0003b32040e621d9686af1a325f48512179dd9a3543069d7b57de85ce4d44d071d09960b90103cc5d01b7cf050888078025d60c006a3f7adc70c2726455dbcee4aa304ac0500e08e0e0c5202afb0fcad51aa290c9f5a9b55bb99dd46f15e0d15bddc073c0fbae417f4043d6e2add557ad8f42e6823fcf3cbd0baab164c12bd25dbcdf84ab9be780ee351157a110c29459c5ae271e313baa6854ef244c5530a68e68dbc6c1a8a66ed3290f634324ab1b35c931189f271add95163b7d5cc3354960e5db5252119f10efac55b1b1ecbf0b22806ba853c6353697899357daeffb345aca6ff2d5986a979e5783e23dc4b895cd533d8929dbaef82bc18700ca5a4c0045f1576ef6e9108d7684cf28e9a57d1776e703bd5de75ecb5116af0a5ca98155dc5e1b88436a627ae9af6610aaef72519782540be666471f1000684b18caecc19c3e4d6e33aa187d38e4df80d860333ed7c8b8db1d349571df4f3f72e86144505e3710354010ea10e394597edf249f78c70dbd3788baf73cdf794147f94dfde83b4072349b62acfaf13cc29d00755d227e500793e3973d3cd61e0d8a0cfeb9d272298af9764dee660eae7ac31f319ed27509e11a6cf08b6be92fb18398c17ef057e4030aa4fee2f21c9621a0428be12e54dd6bda99a1c34d4198523b7db0e1466b96a7579e3031d011e3fdc7687d1058047bcddbcbaedb8a4d301a62147a8f3b9715a8c73cee85514c892601df7e6138fd25dccf6ca567082ad9113f80f5a148bfd42b9a774557b618af25f975ceb4a2163e0bf55604c52884fbcb062163b5855009a42d0d55d84176285c99f2aba239e645e3e5909d7d9e0662b9f7a67dbc22f4fc1f6e0b0e91ca7833717ed02aefb2bd3aa83f89948155d737c9236def960985c4fef174c8ef8e7e67f4a3d0bf1cb2e4ca1009863d4913334a45d83b6703ffa92e39373939202d7afe6382c40d8570aa0b42b6a62f9c0e5663022693b729a34ac7cba3685c7f7148897a38d8efcf6dc5c4629a1d9a6f5022eaa006c4e1c3aafe23a3bb2a2460dd3db15b2347ac4b220132ed86351b9cd993a14235f2b54b92c65bbc05054d8516897af78a19ae05280c9419386372f49a16474c1c6936a322f38f8020028d88f89c5952cb79818a7cbe1c6f2a7202b74fa650630a47e1984c8204b04e0d354440a70bb351aa91a416d16eb397b254e63135afc92689244e1aec7b5c5762022bb57a018d072de20da409b8ef709074883afd62a77e7f6007ba75a2cd09ba61ab26c2bf8802572da3500b1b67a3d0f9575a7ee97dc9266262f9ba3c36fb7f79891613d498e179c0454311aff94e3e26e5fef76661b17f7f5105bffa596e949298812371db2c223573bc91f79850e14e4997e05b442c018133d9488b1d5c13a1b4a01a942011213057874b35e536326b46d748c77dcf911e8542ce170f79c5b547d6b1c2ec4ed99280ce0d1cc1dd84913493686933ddf086a132d999d514ae8ae0a977d91f417faec56f787be2a2699dfef573acc62cf64b5fd449f9ee1de8d87e21d411374cfa712538f0d64b146592a3860d195bde0781a02dbd3012ded262f3cae85d141b7cef4ba024d80929821046269a8c640a6a714d9606ae9a2bac2c6f2021459379981543129801099cb1ffc93b611b0b6a38a5bc701f8487e2a95458588a50a609165cfdce8d85612c67fdd8ae326ea977c5ed0bbd2e61ca576afdbf9cb59dfab9d7784dc9d0c122e7b54c84f64cdc02b4b2bf0959a962374d742852ba2e12d064ac169a1965c8db4038649e9b0b21998745513856aacf4a47f26a2c4b4b15606b647a029375024921247134a73535737af80978f988f647e7ff0cfc8e10930db298eb01a3944998cdb9f2f386d2c22e60ddba66188804dab13778923b4cc6d4a53134646dd023dae81b209129cc0bbf74dcf00845813fff6b990f186f795e3c4449c1d62987a188778cebc0ff938db309ba9dbbfa80c974aa2e64835ef2fbf568ee8bcc684868a9d12048bc1e59228f75d1496f0270aa286fbe58f256e5fb24587c195b231704aee08cf4d12c002b8af38ecd5b4af16110e9c407176cfb755fc463487cd8b49c7dbb7ed413f101df450fe98c9fb3755fd02ae7fd313e7a2e06551db076d9cda176591dea7228d9df083878ce9331072f0972693ee40931918bb6977b7f870fb1576976ac6c13b8f238178b2ecfbd9dabca9cc32628acd311eefaad54c273f1ee96fdb4abb610a3dfc061f85ac022fdc485f8a0735958f4283540d362fca4b09bd903fb84abf5c9c253e4d17b6fc5a6c721c2aa7c59126a84208e3f032c3ea9d7e35e99694c63e02131ddad45dd94894a195b34e58f452f2cbf1784577618e6297cecdc35d2a8842ce60ac79e8ef1e931b8ae6f6006cf43bae5ac30b99509f48b131cbfc50ef4cbcb39ded8c8fb0714880a0447cb9821e0a8fa874043cbcecbab3ffb050bc55840e2163e8016c8617723edbeb149a1f3c2b80e039a1c96aab7713cb159242b1ab5f0a679ac26b37c351318b8265c6b661ad71078c84cb635510dc5a45d743c557e18d530b1506a5b482c0f8fac85c0b41a6d1c05a13d471e225306cd1b3ab14e9094bff6a1ea4497adeea2adce6c90b1221e2686e2fe621225f404f54eefdf8535270c34159ed9107d085241cfc4efca09d213d46c3d2e777434f4b6d4a1a3d1fb6555f4c3c2efb4f66378f61fde239217b7505b25089116225d58d5b92a2480810f8dc7a80c381402f3339b09f996429fe33661c7a0a8ac08c564717b25eaa6b6af6a67c96fe87bbb271b48c7013d2f9fd04c6b5aa5fc58f6ca722f03f486115b99c33c457419bed95c401e8f7434d6cad30df92a9cedc40a9d144b7f62603edfb001bd41f12d62a6274af832dc3c0daadff27f0fe407131965b3398aca990dfb629346c8f233ebc5adc15ed6105be44091558efa2537f686988769e198e7b24a37a0ed08e435b1d51422364010e41206f4861d1df8fee8cd0a3215381f813b269d510edd6cf7cea5107b764c178f065cf0d0c70b13e3b5541880d9e1dcd79c6519d3cefffec28f18048bf5084c2ad04e4586f9f8f0e3df8f5299322582e22ca17890a3c0963c132e31de6908d24ae5071a01e57a5610330f6b5840452f6f108507e8358c006b162837a4e75bf10d83162ac219db786ceb1da7c9435df534f5b6f6f605fc082764b565578462c1b395df33f653ccb50f4cf0cfea92ac8ed7d47b631e61421bc0ebad363e084612d69d8fc0c512a72fd7568b1919bcf7ab86fd62114a21038d1a0564cdfa4e250082de07c2bf1a16207c260607606ec30f05dd9736bbd7f70dc6e34e0ebdc9567d852911d94bb364f6e90100cd149fb818e5267de9f3f3fb43fd7c9728a989fa8fd822951bc7682c4ce2342b71614706db4868f0fffe99d423d4d909af10484c56c0250360b1362c44d758cdd5ef599949c12d751b449e4c84a2bd2df78044d8852e742d4dde6e7a3edf4d3af25c2ef0047996e3c1d7491303a611ba2aba5fd76a61db2dea51ba78d648955b448ebc55e84abbe74437768e169393df93bcf5a926987eff87b3e4c891fbf504d7ffc77fa6adcaff140a0fb3de1cd23b352d69113a7bb9e2e3f5013d74d784bf4f59eca5bead4449e405dc344810c8e975e4d4b5a88e9aca2b73000a4aef462e9bc818af1afccda3b3c8f554fe2c2ff3095fae1895f550801669516c07401035aa777273f0a5f3acf10831daff387fa0f4db232e3553bd70e1638fbbe10341e016bad0099a3ce91e7e1183e926c3a9e87bfb91fca90575e7a8fb24f80e25884e1163d6b740ab3aaaeb80c4a98b0f4d878078a571332d654ab469158bb8b4e7411363c4a25d243617eb17c70e8428556712d6cbd0b9110ddd3216e3b753785352d2802758cd3468adff05979701cc0b72336563d478b6cfd824dd31312d11961ce0f93225f46a5c71063f8047071975668c04481e29493f1e73ee3ac9356ab3cf10c2a4185ea61f63314df8b3a9021edc409f72886709874ed3c5856dd2692dd2fb9e43b2cd055b65df8de8db2931443622272e049fd5eae517f2c614b13ed9290086093547a2a24a062903c44869953cab8469ba6adf01e60265292855c80f60c3d17d24fa44bbc95591f9cd94287ed2eb188e9d0d00f2a722e0fd2fc9e43fc096f09bccfc333d6986d0c331de3cedea531fb909832fce584f1adf79c7eee35870dd8cc5afb25a3ca5f76a5a909183c26a748191e0ee59bf8b38d0683bad5e67e47a96beeef6a12bcbe20339d4c7192ec68f05e1a4a78b26b2a819915c05023660dcfb9553707ae8e71fe0e88ac62d59d0a69454a43b459438e37746c6c877923805674ec518984b74f891d7380e6ded1af5d0c1406bd9e34fa02e4b8702fd5c3eecbd60720458a6e782a35a084978520772110e84e394b63d304d974fec801c0f9bf6b5556a1797a97f08f10e79f356a6980c5c69643b8fab2554368e4d35e37fe35b87c4f2ce4cc9ef5b30c0d0cd02e1183ca3994d4faff2a995bb455d22b1d9feba754b3a5662c55166c125dcaedd3b8d8620e8bd9cad419789e17216415ec1a2f93e91a2a613fbe681ca6e4d1d66fc4e0b46be7a31a58c3e4704febc6923ca20d1ab936abf609c9378ebc86947b5f645bea577fadbd51d3354d0f8cb5910b2facdbac47e5326d020c3fbefee4c1b82c8f47a6351593c013cc189664d27e9c5efc4cf6009c12e9a807f70e4db199bf00275ceb4f884ed528d29d3464b1106f68cf3a32102d71e01a9a33326500e6f7f96b2406640da5a00524051d6dcfd243879984a6935a41dafa2cbc01b654a4e0d9b5ed56590420990866a6061f04c492b7272597fbe5602688aaf0f3b5807d8401319158f433b54bc5cb71a12a158de341d384826e610149b8039c16336afae73580c2e2352a5b779fd1698a28bf0620590bde1869a6bb7b980f212a451a5b22db844257e340634996aa8dad066150ef3180359ff75744918cbe8d2f7a9007427d47367a253287268f0605abeaf687c3cea85b7b5a138c4976769d6da2d6233ef783804f4653f25383f62447bfdb184fb157f3b1c3909121471d841e7be862095f428fdbd0e8e18eafb0db0124c4284633ec985429480b9cae98cf74439a740f7ef5b1ccbe7bf5eecefef4699afc814a1065b5089a43216d3f2bd6eccd9242a285a2a7edab2fd23d8f1b00a44c75cc24b037b352decde8acae7b43dfdd13f71cc70d82940aad94bc74983c6411cb0da5ab711d4b1930b4be723d68bf28804f44c8db96462d9580f1d0e601b8bb0ca4821cadd32147d285ac279b217e012ed5b50491fe5acc3f45a7a20f2f22024de0bbca6049a931bb95820dad53807dac749e1af8ac3bfc2db206f485a2f5a9aee3fca5cb39b7943b9fdf9a3377c64831fae6205daafabae3389620da58494430564d3ef9bb403c7ee831a76d2f3cf93cd828f8afdc6b7bdeceeee5ed9dd5ba62403620b630ba40b5a601bfb6e80898442274986736b70eadf109c7a347e962c47bfb22c47aab2f42acbb22ccbf25496251ec994624798e0eed255ba6ce9f284386acb12e39b04ecff9d1ecb51aff5bde53efdfe7edffb77eff79d29677a2d8f657a42fcefe71dc498ebb1fc2464f4b36c858143277e4a5d953915688105291c01a71e8d3d633aab22e074937934d546f9f63d282a6adba2ec7472ead16c9ecca2cab34445e925db645b6c261bba4983d138ad817183d39b3ff7ef0a5fea5efebe71aacb05b9665b94ae6894c7c242264688d7f258555459be025e72da789eddd872e955b2581615e2d810872500f71c741055617f167025c21059de7259c44f698843d3f2535a16c9f659347e124284212e77574ecb21d97ed7a5ec839ba8e2aac0604e5de532e425f4de2792a2c04cb29f3db4ec041cead3bbdf87ae3b3b664db66529c07eda0fe268f5ef7495a39f49362ee368d7f41870bac9ac17b0c7c030f42ab0ca8d2ef77b59cca987de4630c705e17943361f6c80bfdf08d021b6c916cbbefefeb68709c52060a78202783aa8a87511c7cdfda6a822c944d5a6695e5d1cc41292ad772096a3d6825816e52a502bdb8f51ba4a97cb099c8ba4fcd42524a521b87b4fdde7fefbedafd9b971aa8b83b6b4ac027fa1108b3f68f96be114c7402e0c5c89d09a658fe6ab014e3d5688b3c93c968a051f498663a557105e8a240347aa4d46928562a2503b2206b4aa2cd60caad2cb9ab0e0cc5067c31632fdc100849e0e421e8d0efc8463a1ee81a4ae1738f45d55722448fe4c2f7f34c0fea54944f4a0bd9fd9e52abacda3208e5af0844b2f1cdb64369849b63d949038aaa66c10d1a3e053a2d308c7bde79daee272e09c3b0077f6171ec4d1d914d8a63eb23bc926db27d57c27098717477e3b7de748c65173a4d2028762be19e08b6546e474069acfea526fd8b8d86430be71b1c96ac8ec540ad8160c999d2acd2aaa728797f8a9df7d08bdcb58d7aeef1082f7d3b8300cf11086381ef21ec6c32fd41336420d71fce45e7291669dea68e9e5a8cdc28b27d9333bd75ab37042901c323bd5bda86ca2a225cbe5270e0c999dfa84e0d4a329220e71d47e688a4f8836304527441ab1e5430c838b55ca8709ac0ba66093329276d9443d09c9f6c5b6e167822d8a35b0eebd7726fb13a012408cb9fefd9c9880ce35b01cb5300eb699b6eb8a314234177ea673df67c54d567e798a9b4c144b57e9da64da972e3fb5ab6e90b9ab15bfd7cc1eda0d451aaf88e7f28ef889f35e209ab9aa240754e4cf0cb3e8fbc40e0e2f78f87a1a195151476db5b9744545e1245493f513defe6b026fffa9700d2c476d29860374478da827121715b57d32a0a6ca3fe1ed434052606976ca47ad3ca2e142481e39514d23262a6abf333bd5a68eee43a78f1ec050812aa5b2a35a53778aaa91154aafed53f10ce52b5b94ab09255896a5cba2b016b874e1d2854bd748350ae2a7cff6b53334e997167de94cbe109da42daac97ee99164de2d2997fb37518876712cc09eca9a42a78f1018325576845ef4a2d343a747634d560605583552712fc0a56ba44a4b976f5713ef7366fa813cc4488ce9ef6a4a5405711fbab749f8c94ffbe2ca4f356c31d429b08aeedf52c0bde15cd127919453e653dd97e2d82d79916d7777df1a84386a71d4eceeeededddda5570dac1e2d039c9264a61bc2abc4d58ca0e1107e4c7cac6a3bdbe7aa640b59ae15d515015b464690b8f013498692b820c996945e4572e9a5648927b92a119243ca55c9124c3249665178490d11baa8c934722542174f6422d81cc91509b912a18b2f32480addacf907e9452b5fbe7d504668443d1921aafce4aa8ada77234aaf8aa2841c1778cba0074321c705ee0c7a5014725ce02e831ef4a1748131c2cfec74fe8b91cd709f816b4ccfe5686da15151de29b9675417ff7e005497edfb69a82ee0f7d7505df0f79ff525c4e916fbfd683d8ddf7f433d91dfdf1525fa36ab4b2dcd6a4d21b35a537b2f3ee8999ecba3f1bc8771d22c2529c14a5798252b2a8bfdcd2c05a1b2585025e4b8c05c066d8d63fe6d8e32a54b7c3785a849fcf3621095b5f7c1d1486541924c941155a419e0b414597e4a81883ff8a9e2ff29624c3f2704a738b6993de3e88a245b95ae6ab27f8e54d5643f1ca94acf92f1d4fcebd13925c940660f6d25144df18b0c9a9e3dd3669014dec739346b16335dc8a0e9edb5b7127e26f756bc15c773f9c9ebad26f1681cf55c3dc0fd453c570cb04ab3720b49a2595b7ba6cde0f92d517ab5f8c397af67baff85f16844552dc0c888914a9bc15e7a394916be157174e9e5ae9a914b2fdb6fb27ed94e8fa64b48dc64dfa3e9971215b5c57ea98aca6237f1c6157d193a5582107df73bca2f43a74a97ff43a543df9d3f7c18d9113a7f94dffd0f233acaef4e95fe940792fa21faee43afa3fbd0f787429f72fa207de87dac7cf74052355553a28fe901821f3afb07d1a994ef11b33d033a95d2fffde587636667c664a904d17df93bba2fcf1f467ea8f48bbefcee7784fecf1f29a7e8cbdff19ff2ff291ffaafc1504af922d24a17eb5644657b36182c85ede18a3d833484a323462a6f4bf97f11dcdc2f8232f7884f6f1f5fa1da20bd7ddc4545952ffa144721db076b084f78fc1ac418fc600d9b0d6e83b5d9cb41b662e8d16c69c9089b0d6ed6ecfe69567377ff88744f92d1d0609348e8491f80d0061b56529ef43bfe57ce1f2bff4f5a397f94bff2ffa417bd111de5af7c4a0a0f730329b3990da417bd8e952f3f24bde877ac7cf9a066049659d40f233f523ef4e3bf7b195f53f6493616a5e2a74a10a3ffdf91f232ce1f323ee5fffc6144878cf3478a8cf7e1e347ca87de888eeeff47a78a7f4d8dbea6de23810cb35539f6b18d47534df6c17396ad47927934d9faeb48f9d0eb78153f8348f9d0eff8ef54fccbaf2991a9e22ffa9a02efe85fa38ff12956f9b4cc37876d965e165553b0582ec9b255f918329ef44146bf1224e5ff55fcbbafa990a9e21ffa9a2a2151e9af26965993fd182a1d9c6c5f464eb6bf62566b22dd64fb29a60d8e5993fd376b8a64d6d48a595332cc9a1a9935a5e266cab709840f233aca4f397d745fbe8fd08b9e83012ec11cb59fbaca8bf06490eda3449535f911f514f68bc7f217883884f6829e75abd951fb7befbdf77a2c51f458d93ec812bad91927a1a24a575493fdd215af320a52bc71739fa58b08ee1cfaee531cc345108bc85c54d448658d504fe2dbc749a8a7b05f44557542b669e965476238bba097e2d8f7f64515f7183727aab2fd4e8198f68b1671a32928f797664ccca597c34a92916415b55d5dfabbb75500c51dddfbc0012715fa2a02113a61aca906aed1a255128511b9cf14db648b4400c20004e0767a66bf5fdc109e156409711071c000832c2c62ccf76e96905416fbe514494a41a826ce09b8cb3db496b09ca2745914690b27c94a2f247efa9c806fe9c5fdfd91aaba90b6181151512425b4c93e090c16690a23921748644b9255966f06830508bbd4c782920c8c524c0adf0b705a7a958090b3e897ad54452d5d514b5874514a420e3ae820c67c398809609203c6b14f490c6c723542ae4a6290440679e0418ce98cc4514bb271d4be0c7e90bf158ef95a80611ce421fc5890bf1560b09eb01695a575806334e28dce38d62d9c92649fe2580dc9c64fa42df39704e6ba484b5789c4517ecb178a89aaac59926d92b0336b2a0a18bf168aeee1bb398496bdce38ba294498c9af39e0aa64092159875c95c0e026b718f3a9005711e5fc52805d656b7555ade84886a2a7d9140077a1a24aaf6adaa2a248325b22813b44a4780cd982a1f83de37d69e945929d69597aa5743c03f4ede0f0a2a6e698ad5445454b556023f809c72a6adfde21b60e0e2f926c6e666ff3eaa89b1ce8af99fb2ab6e7213c13e934ad063880b08a38687c16a2ccfe1c070aafa3376f674a823c84cd35c28f888df0f3934877e270232aea55eb6c9f9248328b1aa9acc9be75243049568a65ab2de94d8663a8cc4f6efdc4b213c76258d62ee6aae4095ac82dde68db034a0f610f3d88fd27083c6290b355e7059c6a36db69bdd7d26b0ee12aa818b37dfc0472b4250ec1356f6f12c39bf4d664fb5e4d75e9776f0943e842b3b141bce1b93c52594a1fd416fb760a213915b16e0eb04823b61c4d2bac15006e6b095b5a6068849b09932baa0202e872d84c982ea71506834f5051daad33c8160678059926db22d9926020cd40b69c54e5e0d26fea79760e30a9d2b822e06e24b27d256e98c8f69dc891a92e55a6b2cc88ad0d8aca625fd479017b4ba82c36462a6291b33af31cc902a7a4ca4fdd172a2a6c89aab00c59a8278d0bf5d4fd82851036cec657d86a8db3100623b6c496d80a61e32b8485b0f1750720000cd8b767066a8b0e21582b68c34dc46a962781c160861016b6748053727613064e4398907ec9406da14175d140652152517eaa4045ed4fe1d748d8c22748c9992d492ebc90b0336c85b0ce4fdef30861e14d785e58b63c2c0af4b74fce2c0a3cbdce5ec4b2ddb59d1bb9fbd241071db81d9ca8a8100cb1f50559858ae261c1bfb956120c953443cb5198f0e642e1279b56586ee227fb1fb18b02f6bef393f79acdd5368e84f5cb76924e6e62abba68cd55a076a1b6c6852529a24f92adce0b1d2562a29aec3b91ad288a1a2c92071108f0795814f8f6c12667d6d429ed043815b1eecba2bc947d1bb284f809f4e499af157d81d0f775a9a82e5ae3ee5150c3fbd4f3f9f47ab883f27c1ac307f0d32fa7f7d5634eef0be4afca229a418789ea43a7ba682e9f0f620401ce90f27c1014d04819d167481921224323e57914d4481921225323e5f9541445b6a296888888265b110f442ef0539113e0a7a21b648b3f1541912dfe546424e6ac95c5ce6ea7b6298dd1e1c62f080a3e555b873494fd6bf3907ab23f698ea2b9d9109f105b2ee14d4dd5f0a63339866c53d289664336790961dd4205f20b3f711a07ea0c769fa89f2c6a4254837ef9debe4806d5257cfb1aac5fbe336c6d672a9ee9bdb0eff5f2f212de54170f6f442cf0615cc4b228b0cec093c7cbeb21c42284d9685516fb62119c92b9a600d0e2414c9512b1c85975a94332666226db1b9c44b65f536c44b62d4c44b64f4aa106c95686042377c8192abcb1a6fa856c9f47bf842d0b5417fb17a81aa8a77e7b5fd664af88754f114bc4ca56b3b1a656bfc074672a7a6778b3852dd186fb1ec498fe1e441cadeae262abed7d595405aac9be773bf775de170f7246ce341bfb30333098bbd6908acab340341334907b7dc8121cd6e538da4f5cd539ce721a3fb9102f92bb73720be99c7ee2a89a6a047426027218c0d10b041036e4903997cc7daabeece896363bf3aca80774b7a242df79ee432609aca91fc5ec4ccfecfad233ddd2cfd9ccbd564fdb73cf819e9b391ced1a4340b3486051fd9ae997aec1b6df73a617773f58d3ac7efc69f91ac3afb997d5a9fd5c57dbc7cec9a5405c8818d336f84c4bf24c71d84e72ffe62c58cddbc36c6909b807bbaedbc39c300600a289315c8fde3c5093e400a2fddecd033549e64e0338da7f03cbd5ce8289e209c0fa7546edeeeeeeeed30de5a8d6d0bb7e7f4370fd07807dbd0fdc7e86d5babbbbbbbb5f47f723a0860d2f2b6a5f3447f52ba8a2f63f13d7b0a215b5a8fdec5e8270b89d20f091bdb5b627ea68f7771bc9115b2b523547cdf0effedcdddd4d8357ae7f03480150a5bf7e91b5775bc3d15a611cad5fc3d15a6badafc34f8f003ff590ebd7b0e137385afd44ebfba97efd197efa5cbfd6af5154410517e4b4da541c9781fdf5dbacd5546bad00e89ebdcad24fe0da59d4aea1a63181eb776db3db341b065cbf2bda9f6ab65a6eabf54cfbfbeb595beb6a3a6bf5fe2e0cff4debcc80d31ad3686cdac96ddf2fc034b4e74eed69983568e41d6ad4a0c1699ba66d3476a8a1699d9bee896cb95cc504b41255936c65e40738ead52608598b716d0145d64c50ae628c667ace5103a7346ec8e9d3f0dfc193b8d75457963e6b0c57821cb59efdf434aac9564b43091148641b23571a346864500998e34c107674e37edbb61bcaf086765fdbac26ef4ecddf3ed170b9ddae0baf673b8566edaa86ec0e8e64323852f58b1d15515d3c57255ba46024037a37fcbe32dfeb209951401fdd875c471cbd71b4d4a464e32807066ce3e80c2bdb24b22d81f28c1942b49b428072f825c125f99dffb0c0e27f43d864d6649f4936e5aaa40957066f8ccf9d314fa9268e7b4e00992b2b0bf7305e969ee761dcf96b921c0982a01598eba442d8c89ee74a5629c4f39f10b00a76d402e04bffc13000bef39ed9f9760108e286014e6ff69e86776caa908fbfb368aa902ffeb8434e87d8328989a3f6afe8b771fdefbde910fe315320f9f3a015557ed8fe7b1cdb7f2790dc66aa99b40792cd213c9bce1cbae5d6f0d74469406f41a04e41d97bd2ecf183f8e3c7e0ffacc0dea79b4cb39e597ad42c6b304b560f1a0060a6428072f8a5df6afc0b02d6aec0e1973e3caf470396cc4d8604ab1cc053958eaad349420537c14e1c45c34fb719e656f301017f1d1510f0c54d706c0b41f99a296e9276544b4a6f7fabe99b4bb9f4d551a5f31db56815f8543940abbcccaf6654484e42a0650e3cc95695ed03c9403e20e0f465b27d991966cd251347164c80805392934c72f2518153928c247314cb1cfd5e24fb24272f0322a5249c265ab9d6e4aa44064b94c8000913ac1c7255c2fa229364353ce4aa84258495c499ab9218dc805d58c51f9a0356bc71ff7bffe18aa0f306e39edf4ccfc7f4f94d611f3c87e8ec9d31dadbc7377ec21a13d12c918c6456d97e3fc0de5bcf0d18a459bd4de8ff7c80bf2358c5df6e51a38424aa54178ab8c6fb1035695893fd4f0afcb1a0bdaf073825c9368fc6a389425471e3a7effa788053d07f3cc0e473677af308df588b7ace1a3bc069e97a27d9e227343a416ae474e436c0a033bd204c9e296ef239f88ce022382dbd3a35f515c1ff819f50e8849350d1b765cc9653842a0ca2b14ac029b609bd8c54b545d45efe4ba9891861f8859255b2aa146a172a3b2b164e714c8b01fe4ff92d2e182938d651a578853bd3d22c7fe925e3c4b195f3249dd59a40f726f8ca593977ab7162c44a3babf3538c933fc5391d15e9573ec537e78963e659ad49bb2ae759ca30433f32bb5f31454f32cb7b53329b1989c6a256d9be4763bf73db649bcc5aeb0fe2aad2a2df517ecaf9a33c55b6ffd05953660e138850ec3b37bcc4512d2a4b0ba7a5570d7aa8f8a7fcf72d8280fbef7bee54f1ef06224810d1873e48f91d8e5954b57603e24f15ff3f43ffaf23f42ffad0fba9a3f3517ea7b289a268c4e8881e38c66a49e18c07f1d707411904fb73ff4a1b17b95a2ce02260ef411a1adb80f7de7b41118747e368c5117190ff8d9f99569c3c7e7bf7787efe5f072a4eee9303df77c6510cafc77181b50c7ab0864ef9177d8aa69c2558892423c94aee0bd8cb690956b390d31293920dbdddcff4dc3255f082953241d8045587e6d7bdc40538255d13257f3509169c90abf8c3963795eeef24d2f5597a692fc04220ddd8920dc9a65324998fae02074850a54ce0bd00079fda0aa73866318e45891fce79954a4c5c15440738c5b19c277ec2a7a8b2a8d0d92d6bb216d59dad2f0738ed56761cab2c321709381da94a5719452d5d2355e92ac14a321b8cc869c926dbb4c424dbd22c5b6ff19e37fa3f157f153f47aad428889bec7f502c40a55d475cf74c4bb391bcfaa5b2e53e3b89a3f62d8cebe0f06248de72eaaa203e5221716d0796ed888991ea06965009bb398e618b0abd9f7f962ca190dbd2ab46dbbe95447193bfefa301b685d8d7dde4ed61fcfb88e0c0802f152aa5a8a87752584d096cbd47aa8f06f3c0051b8e6d9b67fb38a713c451335cb8c64f35891698649b621c2cc34fb00d109ce4cd3b01f50b503b02a72459e8619c24b3a8d07fa9d0597a11c1a8eeb70e9d519645ba2c52d264db4eca22fdd25de82f943bc8441abca13bb33ce2a6328a528aca623f158bc85ae02da78de3343426186b5159a8a8285c8436d9f722db6fac842ac3d546e8ed93b6a8a81111b6ec782459e83cd3ce68b5858d6351a1b72f165151a1b303a22786027a685a68428f8c478603820711c7cd3ec042fc946eabfcaa52541d64fb65ab5f729436788248b6ef676c3c9dc498fed3e742859febfeb6f213378e63100de8bc9c96adca80193907cf9b5953a08efe8e6c376be638b2c6d5dfbf5160d6b8bae6e7fa526a2a8b6505a1ba74e660dca699463847f2bd3e97a3dd23f102c1ba01bcd8b0e149a2e34398a3ba3817c359ec6638edef2266dba759db96a3c522326f157984fa02529149f85cd83180d2a4b2a068a1b658142e64fb48720a729d3c1cbd9f56d94db77d66d7015af701813e3b2a157874df91ca62bf57b60f52f5cbe783fa4d012ae20bc7b1956d19052703bd1cade240fb89de276e76e41ed48307555151dbca9aac14f5f49dc47ef906b9b6f6f63aae56e3aa551ec8c97270324e267edbeab7d5b6fa508b090dd0380e10e6106f741e577eb3b7025cc5ca75def90f2178c29c66c7fb9b16013fc799cee9b8da5cf0b9ae28ba6edfee737d2ed7a64140eb72f48b9f3cb8fb1d71d31745fda4a82c7645bc7173777eae26e2974c5497760204cbb66415a182da46d43ea2b6aa5fb695aa5f703beeb6aa5520d7cde202785814280a10153321e080b4001d00725516fb370a1081d034ad6469e36a0161cbb4ea3ed8c1e938f1134ac91a97e8d1053daeaacb7dfba3129e27a7e32a1c57dfb822c79536aeb4718532ae403e88a2fab0bd7d900b344575194992fc14a405e805ba02040365916d0a8a699f82a848414100090144846cdf2f37821fe9899b06fa783a4d021c179c6cc7e782000420c0c5f0e77ad956600ebf2629a93802e6b464a52ca1bad46cab8bf8e4d754090bcfb4a4c92e50033f4f033bb05fc0735b610dfcb40c43afa0da2b64fbee029ee9e602269c51e8c209d9920fe3ab7ee131db56b765b006726927111ee4f680908b612ea79feb84ef4f408ce99fc0e79240f8b9be282aaa648202a1a6445826c936f67d2984ea444581ca269435bea4c4a28422db284a2abac069c92a65652ca5a65f6aaba4b128fbe5cba2b64f39d22fe3db4f99e997f1e4d12df63f4d59f2694a169fa65c916dca0f3a67ad26f1d39422f84c2192edd9aa941a647bd69425a6a822a589941864fba5937ee1d12d658da3402ef14c7b0549e44e3922a7750a6100c1ca2f72936c556728c550866cbf96ac14e4022288f6c2dcb7caa2c69535d91c5dab62b52b59e504c2cfe5b7412e8b6a225a759588a94a56abca3bae728cab7145a30649e699c08134d74e8c807546aad2e4c69b23438fedadf758c5f872339772fdb18a910ad94fa3086ee6be7b78df0304dd934b5a4195b7ceadb90a57e31ce77f6717c90dd9dc9bdbe43ab949ecdf18b779cc4fa968432ef193c7e0847ba6d9e8008fac4f75bcaa2e7effe3979c91f2f78dde8a2aaf9d29e9b7b34f1a683932c9592b7cdb9172f82a674a0a3fc6197e4a798a674a633c6dbaaeeb7e3b4fccaa2cf6c397a3cf013f439af008087ca8542020814aa5e27e333f400247519366e39acd7d69336da6d9684c341bcd4663a2cd34edc25a381d5960c8724ae2681aac05fe7ede573fa769e48c7c82652c2a88770ea956338e0a12ce703086aa84e68b6c9fc4d9bc491899c44fbe84165a31445259905c974581bf75455c44c007bdf5c3069ee4176ec3238ea2d68645662966226b59896c3f0c427d11736acbcb4f1e45b61f22098b380a7ceb439cc64ffd612b3c029ef7b59dafd6765fb094e3b8f7f0c6516bef256730475f8e22b92f3f6d1efa29d56c6017899f349b9b446c8d2c2732091c1d7f0847ed7f007faa5ceb937b31ae3033d427d5a5bb06699d692a55798494394995a324abde6ca00bc30e6cffea27a9f2bc275adf0dd8a759770938bd2f127bc2f0230e115b8ede005134269a4d48248eddde5bc804ce28535d7a73c23721d9da20db4f3715f83693ed96c4b621c1f9d967cd028faf1b9816c7eeb932c5133518e015683996a688f80ec26491c8e58a80bdcea690854a5ea19e46f206f97ea1bf0229c8d6df05d96e32a85da89b8825b65862ab5fbacff1b56de14d378c0872de59ce5ab71b3776bf89de0c2a84cda6505db67009612cdb2048d538e34eb11536115b214e7833ce481b748b7d949c86308b4f14949c8aad0b54160cb8c906fd5281d00cd90908821d2f05c6082b16301503c0c05416fbad21b70502f50747c66255eb49b6ef5060f03d0d535d9a940259c9197ef0d35be3f9ceff001fff0fcf773ebd3541e0077f47e73d405216054574faf07ce87d80a70f233ac022c0a2b052a5c0d386343147ed8559144a9b5f532826ca8b7e47e8cdd08b42f851ce94c7ac2910d714100cf078a2b57d9ebc7193e39cfc0a837193e37c3bc996a3f6a32a42a56a8d6484adca626149c256080b93b4aacb0d79386a519af494b4c1e97d693318e53dff0a5d999f547ed85e7bedbc32f0f1efe87ce8fce179cff9016bb2df39ef0be5044f22308efc3e1bac1d1630e8b90f5bb615b6da741c472de9c44ff24965b11fc3dca7e48c5c2181bc8e0adccd17a4939c27a0279b9038f9cd0e0c9c92b3fe34848537f745c25a3668b5c8b314860f049c92b3ceaa33e327f23b4964fb1d55cf08ab45819d4a0223a940ce2a6acd9aaa30902b02ee22605875f13b04fcba4943588f0e02a6364c0d5b60d074c1158e417c1191ed83a2ebbec859a7f3b6637a295006f8e1668a2d6b35273d2dfc6e4786dfed3c4d0bbfdb79dae7ecb691ebbc4ff8dd91fb84dfedbc8ee33ee1773b6f6b6920efbb24e769e1773b920bbfdb79dac771e1773b4ffb68a1088adaedc84ff8891af909bfdb899a467ec2ef765c75b1dec86d1a89c751ebbc4ff8dd51fb84dfed3cac699ff0bb9d07f3134782420fd8013b204f0bbfdb81c2ef769ef6e1c2ef769ed6f2d3167ec810877e7129727db0e5069393301e3ea92e66a82ef7533e25cf508327b2c55760912d15c2e817910957e0821326fd223a11c3000531278b6c710d927e196796b0824584f429e6c1caa7f848b68f85d414d300cfc8f8d7113148511eb36c9c75dcf8a45bec8f61541652659f14d22d240d2a0bd9b226fba41592b4a2b29030d858556a8cfa695d5416265416fb631835e1cd58d38d37fcfec4cffdcaa5d81c7eae1dbf2769a0d9d86827776e675792f7492b98b45a5e0a09b3281a248c461815061b671625da58d3f8a45f4427dd12467511c35059ac45893942fa659ce9161a54977189ca925e19b31fb52c6a64599315d565fc416541d22fe3916eb12fca371625b65a35fd62c3464d0e6dfaa5460d9bb0d51a99f4cb0e3b3c61020e23dbb7f80ad5649f0bd9fe8a8d8c3315c53040c149bf6026dd622d0a67514d4b5831d32f1849b7588bc244aac9fee8cc51397378708f88e30faa0b0df2917ec142bac55a143ea29aecf81a734ace443915b164313196ed939509d5c57bfb5a17e18f9fd86a950d30f48bc146b6ff116f8d1a25b7c30ed93e28a583a101ab301afd5b488422ba31c28e59534fde742a59c51b36464e8c277e2a452c1ab40c7a73e13e0fe8d34b8a58a1882562895822562962cd648047757101d531582e549c2a866c732a18550bb50b150cd97e0c6ee340e427fcee38f393a61ac5ae15b65a020887e450b18069f2ebdec51e383c6c5517bf616b073825672d2c85ad225b58b6580719f320dbc734fd42aabac57e0ec4167e416e35815bd96215b420dbc732fd32cebac5fe2c05216c7c75d88dac666915447a9a8d9823b67242efbe0f6156b4e9967612566d988cacba45132e58d93eb943ee07dd50238725f7c72aac2527dbefc2f0de80441b6fc6cde806146db41cc22c84372311c7cd9a8d1478135565c8f60bd93e79436281cc427ef909e364c890e19a8dc68958db6b9c0e3c78e44d65b2831124f89d4f67bc8b0eedb9a33941b369248e762ed85d01d759cfa0ba746e184d9fda07d15211ab036a4f2a8bcd312eece5e8e501de1e8c968846e4ea6c9a678986aece00200440d3108a2dae08d86de0f2dda0a82e47b27dae2b8c3bfdac39dbf7054d61aba5fde741cd14b54423c0da0be972f07d59fc28bfc3f39df347e73d8f72fe30a2a3f39e53e5fef03c3e55eea91201fca1d781f2a2bf2f3a7d18b9a147e97e0316e5d466f00f233ac0efbce77f80dff9f06f26673e8ce8e83cd879f043af7947a73b81f03c036aca73ee00bf7306a99565ff1c04f0372568648e344c0fcb9adacaaca95f3383581be7a14fcffbcdcc9afcc6869c0caaacc94719e8d54279144d156b61c12187c5c401875ff9960751c4989693078c030e0fe32d1f1c6ec08105c5f9d1c814f1fbdf608e39238e35790ea81a653418d3581c50555d56de7ffc8ec64fa337d5f0fedd113fa1ef0fae98386a5eb13213457fe54d0f86c418d3c903464d66e791d9790584761e35c71a47fd6b304719ab5c5939eb3732c3fc269119238cc39109762d1bb326a77159d37847a69749bf32326f26999f70647699f42be19b2b3f32b9ac99418cd04083b6f2a3273d9822c6904e1ef0ca4aad2c24b3f3698e44628e9a57ce91b9e519e65732bf1bf334838c36ce83bf111f3847ebb232471d8ffe473756f62611193432d95f8639d6b8c9df343b18c91c658efa0a1738c52ba34ccba0281c995633bb9635f99f6647634d6f567bbb217eb2aef96924b3269f71431eb5fcd4f96bc93047a68fcc8e118ecc9adf2422e34966b722e3ec861081d3ae5563a494a2100ae8a3d2677a9ffb91f9e5166f5c15b347c79059999575b3aed5b5aea7179bb256f76aa5d84cbbaed5c9bcd3039decfa566bed642923d6d30a2d90ad3441037151072cc03a23c5aaac3dd8b566ed410f6b0acdb5bca92d34ad09f95e4dd3d29b93b5fb60ed5aed48a41fc66b5893f69d8b3744b986a35a9f34ac49eb74806baa3fbdf7a5bdecbaac497b2d6b7f97f8a92a29c34cd6fee678411c1552dd1a3f5525647892351a5f649cd39bef4de36461852ca717075c2929c3909cde279bd3f053aad1c0b876f05387216b36b2e644bbaaead259ab29ad5f7b8dc6da7386a3daffe704feacdd989ffc33e84941880e66adc502f6edad96246b1a1247b57727da3baa59537b65cdcf1b73542b82d3cf9af6afbde6affd453203abbe2a7c83a4d9dd38daddcd774dfc34bee7008603980d349adc1a14b95b732277bfc6029b9c823e591b4791a82ef8351ac89688c920372bb7c644eeaf7db23277416e4d89dc9d9fc96c5060a0d847e6f954cbd5ceacb6bdd6379f13a77a4eff8e9324596b7d2bc654989fec4dcc4f1647e6279b636dfca4a91cedbf81e1c45acb982449f2afa3e457b13e8cdb1bc7b1155575f59bac65b17362d2b43347eb8f62054dcfccb533eb66a69eeb6b66fa79d218b97628fd9501044fb856f0096e6b76a05dd94f0ef409c4f60540ab859c261302e1367182dbb67152c0f6db75532059eb96ba6d27cca1e5b51c9a432ab009b23db52eecacb5d65a6badb5d65a6bed75e738e7dc53212a4e76f47ade674d100c4371ac3160f85181fd64df863dca5de375c907b056ad95d970b4861566a33e1813da0f85084fb85a0d0ad8cf341c4792c4b8138a2329c68015d7dae9743c1ecf0e3568545078c228620c08aaa3a150482412958e6352c251a7cafef5c4c56a13b21198e46a6dfc3af6d2dfd11ad67471a97a19b7ab1a96f5016b72dd178695b197a1363ebb2a2c53ae9e85b668546b82dd189695363f436f58d6e4d7b197dfae7ec9ae0d9e95379fd3aa580d2f6938b632d654fbc5fbd46bade20f9d433b73f4465bf0bde71e845ddbf22ee5f56f46b88b7397d56eb61c586ec15ac646b62a63369e99b68c6c55c6569e99565919dbd2f273efde9845d55a3fdbb137133410bbc538d2dad6b5dfd2078b0f6c0c2a3f747fff9e1ce8efce1edde3fcc1e233bbe27dee037da1ca9c59cb23eecde00d9fdfb5da99ded01c855059c6159ad3cf35c22a0bd7a9dc6fc9bd9fcd77e47b7db26ff67df135f9907cb0ce3d311d33587b95b7e3ab9c63e75e7c566b1ab9911bb99193d91a354acd8c316e348edad4877c471c7d7daecf258adf99ef81c00727f611475fed72b4bf9c96ad4fcb5190999639e926440aed7369dfeb738dabeff5bd3ed777e47339d77523ebd3ca22a7258d4afff64052dbebd07edb5e3b75900d249536926cffd472f92a8f785984c6f4af4268ae2b595d79a4eb4a58ab7c95b1724959530e2969ba1c08d88a98e3ccc81a57ddf7a96551da779f16de8438bab5b46dd59da5908d55b2b621423623f5c573e33dc8f6b722421ca5bdcff8a9fdd41b0fb621d99ee3aaebcc7135b2faefdb3baeee3b2773f45ed639b2c6d53833aec6959f3aef9ab371745c8d2b3f8d4bf07cbf3edf477e007dbbbc54a93268c3bee655a9726535121e1e84fa82a2054772c51539ed6b862a55466982d2a4b2806440aa4fab655a261449c733232b8f30a8630cdcc395011472c2a1e8c60096392a0b18e33bf2b954b81a4e36da5eb0ad385965b17fc1d6ae159cac5ce2a7f4d31ae31c763d24e112ccc9c0d07befc5bf1e06496fb6a5715ccdf8a4f85cb783e1b464d55977e51024313f814f03eb969432173d8675c8e13b7650180023da733dc8f5c11b523a398eda278edaef1102893dbecf6d1a027801e4b0c3870a9f59452d4895de5c7e5136016fa1c58502471123e627951f7aab275090fba9f058591af4b84f04a9401a9c7eaeefc8f7f2138c07cc863604a940445494c985aa4ddb383bde07f52007e8d558ec2b8b7d2e895ccec0860c8d94f63e68ef3f9395adac9d41fc517053dadbafa2f712969e1b2f595ad7c3376e39ad31b206349b0870d301ea0f1e2c64fb5e0e1be09493c5b81a3f31c100c84fa1eafd14ae58a50cca276ad9442d6b504f9eab64895dc427b640a0f85d1b90ca3ea888ea020ae2272b93ed8363e82611f23553e6a6c8076741942d6b2a693aa59d008b376cb9f2d38c9fcab3071dba8c282090cbcb22900be402b940ae745c991d278e825c7d8226a2fab0a9aacbe8f26926b2f5d81664bbca289f760c9ad548f40a5a891663c2300c43313cc75565e9e08c4a5416fb6465f198b5b26ce312ad030ff6351e300e7840a1c9f6412314d93eb7a4bab46f1c57d39c4cfc2e8f1ab39917de566b048140285c0c6b4ae02e9b80b7d0e24281a3485b559e8ff271a0f1b5195cade9a339e227d0cbe527d1a2b4476927e8076db24fa3fb7ba6e805cfb404c30f923f675ad694a01f34aa04598153901210121ec404140a7da6344056c8f6bf941a25704ea8281e1c175c179cac5f402a8e0add6ab5e27894a518d35fa6e438404535113121946513f016b5d4e28b7c83f39939aa72745ccd007f669f1948f589e411409e78c3334a932558fc999f524e96553c36f0f5a08afa4951a7a8a7ee970fecc362ebb61c1dc7c938196cdb4ef8f32b624c58539e3104f2402f90cb412ed00be472b393e349a911ff1396622843e8d39418a43421fa34658a942a98d02f1e14a42ca91e9a94999aa62ce1899d212509cf171e2b54165b36b982e7e673444d02abccb7a33971f4d3e264ba0f928f1595c5fee7a389f161d22d1f285496cf2c25f679f209a3b2d807a92e88654135a826fba2b9a9a0b2a4c0a23e97357d66b84fabf5f93712812b61c8fb0f143eacefbc67e8193f61b83e4ffae523a4fbcc3eb38e861034bba63e214865519c6c48bf6c49804049e0a0fbb42cca53b6c48f15d5c58383ca82a45f3c43ba0566511e1a6b824275f128a92c4cfac593a45bec7f54d604aa41457dc40f0ceccf6551db4cbf1820c90c0ffb61b1727c84f48b0d1b1f2129351e14a430215b8b4ab96248bfa41ce9161cfc20dbcfe22e113d341695520325d565899ca45f5266ba256651e519aae98b7e299d748b15c290ed17a14949229672c48d459551a8a6236a12b2caa2ca9835d92f59d6e4b9b9c2657954399d9cdf92e8971add623f896c35275a8e45a9b6146c2aa82edfdb47117906008578c0cc460f97c3468d859fafd1ad1f42ad53dbccb6da6a6a5b6dabe631858eabe131e36c38590de1b82a9de20174288018d3a5fb9ddb009ce81fe8852297000cf0504035420e1e316c730c6b39ad331e5708b87f5c525dfcbbef16fb67d7dbccffc6da56dc2c073146e464d5c54f18fc1bc403e890bb0763c4186709ddec1b628e7afac0b7ff7dfdb93a71d40b40400e20bef32e0a08f4eef88939be1cae2c945fc8654e4985fc95b37ef99446e0c226a37c5a62516691ed97b07ef9b486f02aa5f0dc748bfdd0fbc0fac513bb670c36fad85a8702127f5b59d4e7fab4fac543f3697dae1c5de87132cf4dbf78646efc1b03a95fa8d4cd72574d2e19a21100000010002314002028100c06840312995015b456e50314800b7b9c4a786ea0c9b32486414a19830820c410100000000001d2a60118335de0586937248997087b0f6c46931923dd1c139c6c99903b456f3bfad5679029ea210226be4a5058e94d345dccbc9c9bf1fac38d30aa648af771077cd5cef7b46c5146361c1a2625b0bff06f623c6b139317cb85e41b8eeb4913cdac38682b7187f198bd0641253177069616c6a3185cb05dd9cb479de6adef4678d1d8cf60e4a4f3f3753b5c2ed67709410b6c318652465c0bd010951629c3e47e06b01f633fcb81ad29e7b57c2324736401fc37034cc5acd69045f11641c87bbb6ae2e44cdb99499abfee4bab8b0a2111739cae07071d30b597ccd5b6f3cd0edbdbc784c29a5d06103303968f506060c482f5324707059c3ba51fea54d7c3325ddd4985f32f33fadf51a2e24c9bf94762ce84e9225e83e53f285f002db6cf1600a762db63d985a444c6d81ee46818d24837a0b34fd70c00ed9a5cc9618b717db3399e4195075e68e2a2234c932db38c81f810de68a02b81603bdb5dba8e6e5ade7edb47cec90c2860231c2afb6071a2b1378d69924badfd0b4c4be93b6a3a729b46726563a5e460b142c11829b82ec8619e9f1c1b1ec11eb3b01d46050579d60e26becdf197185d3f60e3c4411b4ca9ed60f009f7f375fe7b71b85ec24c55cae7e85280cb8d97e6fad8055b13ee1a578d1306c9326e5d6434ebf536e15218301634c0bf6f1d952d679e9a6d0c1e00d665551f7928a560311ad86f9aeada9b94ec5390f75deb4adcbc8471f6cd8f36f3ce54d3e625d1d5dfb01e50d278cf9b4b00dc0696de0359aa416813b31ca6508a12bbde91c4e3b33b33a014152d98b33e4d87f829e0dab68c198181c0e4b6b93469bd8f1f6220bf4122f77b100a1e315eff78d199e59f22e42ec39cd0995854e69ed2702d570b36a0071400f23bbc5a068b1b40461ef69f814a397908a97ead56c9c1a2d3b81749a059d7a41935dd74d02f04c4f883e6adceba256091131f1e046fa54cb455aa34299b7b44ec51b48051eb3c628861999d273bc2c21d71fe7662da72c95fcb8eea9918bcb183437fa488d6242a918c0252c44df1e1a2b993bd9a8ebfa2b35eb4823aca9b883eb9216a5c39c2c21d7ea2bb039f9af71db17423c6f2eef60659e3c6be50e505c52af9870391e34828891008ac64f0382d86aeee68bfb8c1588c6937430f1ca45db8e08911eaec239f828e3e68658434eb8953905381ed141d28d0a727ea027a3d3ccc0065ccff849094e3dd109adf03da11fbc48573275b4f106fc5b9c1df0951c007a65a2e1f61cc817ee4978e0e94df0f346ebefcb05a5139c47d7b24c7c7364c78fceaa98f0e3e08f2c79632e98812c41baed0009243ec3d7f0327f3b10f4d8afdc3d213444449b0357213fb8818d71cb05a7585a74a8db8f2310dfaac1f043f9fca07c082d4e99b47331907fbd09588a6110a82c0906a75495a2f02906665442e15619179c63a17b93cb46c117f234f1e314311f14f1dd7343943cec427fdf9328d297db849edcaa5269909eec885b5b82cef37487a6e8178338a3174fe3650ada79194e2896969175cd5e7953d04e22a07b1c864bcd66edc4bec7c01da24f49627f45860e1effe2f2ecb2165a4c156f39eef7575d4ffa947972c33abf0012793b288291391eb5eb81ae9dac854889dc6eefcbaa0112d64e7f229707008de14c3c2ebc69a2002e7b0dd1998088c0e85bdd7376427bf20676aed473193a91b1abc668a3cc76ec432cbe091af70d40e9b829e2723673f5bbce6b4c801533956935640e059f53d68f50219790b8a0387b66dfc25f419d273f265f208e96362b71a84783f08e73b958671375186445130c1a0335fadb75d47dccff982fe81e2a5abdc7cd327e5f32ba2590b621b3dae607d96ed5844f6f510e7050c84a4bd70801d80d275e3b146dd43f8743d3ddc2b42b3800d33298beacb98cdb063e180c4b02ce87c468138dd345a511aa3752fb27781b48d47231d7a02e048c37fdb826414d28f703e99b91fc5002e68dcdd9264d4c1c06d210aa6855666908645342c913bcab557311c66418d99c81c0f14c955a3db3092de37ed474c62755d199de47578c1aefc5c3f1b40b826dadabb4746b8f5e72addef1055f88c9122ab7423bf92c59ec17664d1a35b7bb8cb8be2ae36065c026aa6a21fcd0143b7ba33e329ddf3d9a3399533197a1a32f661860c3d1a61779d31bb2db7b5bfd9b088352cf01246896fca2eebebdb1db168aae190dbfc7313657490677d936a9c06baa39b25480ed4ff55ed37c56659e0ade6236eabaf00b4fc531eed3a1845645964326ba4964508dba4eb2dd81c8fffcf798664f5d51ea3fd11f4e8a9b54e5055267313b6c7e841d6370eecc73136e6f1b801d7d33046da4f17b40eca20faf89ef8e15eb67ff67b63e543a2070ea0df274409341f88da81b82ff4dcd5f9c3f5fd519e507ba1e77211e234b486138931c619bf6e51a2d3cbc80cb6512b49672a58adeea0ef59b1f7eb8866db03b8257f47087eb5ef89982ca22b37d1bf0c549baefd7d66cda037827e5093dbcb7e1e5632631f18a94870aaf58f4a0abdca30e2fc9ae2b60b8285720ba0d135f9637032a8b10405079035304c63d78cae0ef69523eb326e5b69ab1770ca8f8c1002fa2c623d8b71a36ac18508831e9d65273589e375d7467e83e75e0520ffc047b0797eb2d3c1db09343e6a824e22ee8dd4647b6a7156afb1b27f99e555bff497f02118f41c44fc39d3bf4cf63183f10b0c35100a12c04e9c3ab3ac47b8a96dc232746490676c68a38f72727c69f5af9031b67bb1aafb0687cc2fd27eed34206b18435560e41f221fa7ad32be675e30b3a0a74b4dc6a3af3893f84fc26afb5af5eb9b3cc629054f37937c3531b867c2723392a34e43b5c9d6bd86cd0d019e153a5b5a2ae829fa663d3121ee5b3657b25641db26981c7f3b180a7a792c3bc07ef274d88e829eeb1f594bb17e0cc363893c89ea7a5008e541a91009053dd7d8cd7e36beaee8401c4a12773bf78cfb2b1a4623f95c2555d98a8cb3d9e7b0e448a52a9ffd3d8f5973ab098ea7ebc5e77467a8043dfd242913cb7d763f825832bb0125ade7755a8feed6245e5c3aceff201d16443b27225bf9216b6c3963aecca2f926927204c2f9bee00bacaf198a008ee6d7efca4cbd9063f9f44b1b201b5f8d778f40f9a605a648d6fde1f6c2f2133123825810a1cc47f3c7d1606b3ea88a6b9a028babd7943e8db791b9706926a0688ca17754e83e51f305886fbb1b46f35bf9de5b47ee301957fd3d781bc0bb298ff1362ed42488506827441e4042ce31fc826708645271c6fcd7f4c4ea9b6dc8204549e76f7811b87f05b132ce40037e4a698a9043cc1179358665fbcfe1f9073a13b04702a13fb496108e9e056e17b6a28a2a016c0ab0fd15b00dde25a3a8b0fbf542e93a904467a264973c0ddd5f19e60fb8ff00692bb440faa193fca7542d9bb0ce4c4ba5f933d1907040a952f01b8583481f5a15b860dadcc7eba3699c4938aa9db94999143ef498297d0befd22e63296ec81565d75b404b9d9a7606e98bf8d0b27fa45c29948b7b57158241cfd099f551314afc83182856eb7d88fe60e00c0aea132d9114ea1a7eb76bb251ef8f505161ac4a246e27dc92ca75d4bc0b886d0b21bd17a371ab8799fe85cc0bb97fc2a91a0f5195c6c22ec470ed99605cbda04027b30b10b6ff8a572d2116689a30bab7b60df6225d1d911e77c52fff530766a6673faa818885f5b818856956f4877754dd8d3e2267c017326f73bd3642eeae2a15378892bea0b9a176b7d4f14aba3e10ef94b11cca8a49f57d1f1b8e8b3a11c88605cffeed61ee80e51153044d2c8d748c1b0cf6b5a5c9f8439d8b77d41ae76458113c758e23ec552193fb133e7861bef475bbc19dcb59a808239f2bc9bae3494172f1cbcf54cd00a8552a1a93ca6ee905a3c87d8dfa5da2a1a4e010cb9d0800d47367833ef84ceba67b7fc7792ecf9d90791b8bc579459a23bfdd982ad79c98ce1b359f44a12d8f624eca3f737c7b3b517a21c9cdaae6547e67a5d046d634a37adc894ef77941f3a7f2c169497de78067ed4c6825e0c9f634c08fc77d186e5bbfb64d89fda0297311cd3c91db3b0d70bcde658988aa1c678a539d32ca271cc49e43cb7412ac53baac1117d2d785b6d3993861a3caeb4e349a473e1cbdf81838a391047d4f98e9572e410e7a1bd87d46029fe7423ad6bbef98187dcf523e904f2d1ca7947ab24f0bb2768938710fec9870dc677d2094cd3f86ea1e8a101475a2671fce61063f04f8eefb488985d6640a941ed81b8a05c485e6a67f66b84cae59a61bff7616b8fb72ff832fd1fe890ee5c08d16958df25a9290378e7fc248d56b470aa5b5a096b08db26cbb93e1b8407529994cad672d27a9f4e21a0742f38083b93fe073b646f0e8fdc1a0d6d1a6eb1fd9d91e648f8436f3297da5df474a4e926ccf4cb8ff02b345f36d9ac16cba1cad957f8c0ad16ff9ae5eaef3c93b33fe24b32104136ebde85ceea1d8e3493b7513cd073c9cf81b202f1b4873f03ca4c37b06d3de689e20c1f7406e33ad3e2c26402ee1c53653195042d95137bb541ca72f0913f1ffc01b71f7c834fd1ce12d04b1c06f036ccec4f9ed3fbfa8cfc860bb19ff1c8750086f2bddc09a18de8114928a69533a66c586f7190d6ba9eca5bef60a6f8cd3f07e238bc27ecc2d5c71fad4dff090c1bcdd0e008d3670646aa8d5ffeeef5fe30d6f42a3a33b8baa3b66786fb353b0e670793ba418910ab07644f04d0e0ffcc7b7c27320b6c62d49ec51abfd57b4ab2a1ca1e4dcd8bd85158d13099b02389008a7cb7fdd3b778dcc8196bf34e9acb5a5be0cfb7a188eb269a8fa8ca77b2bd938040c1b836550ac8921fc04845deb7aa7052bcebaa654c0fbface0f50d9bb32faab915990f4b042d3e9de2e4b4f557b9241a92d9a25a92575fe2eed9239ba475293a0ed189cce5d899bc006d6104b82effd43f2023289d3c87f4d4ee1fefb66f8d85ec66010e50defe50dc3b9c72d1672fe05a493efc80aaffe2a9a55b40868045ef7e0f5e09e7a4dc98d4a9e178bf08a6167556329ce1ecef5ded769e5132402a9345972a25d96cf4b41852272f01d4e172bb8ccf8bfbaa8849169240c3d3aed03047c8b43d1dfe871fb46644f70a1dd8a4eed1ce0860777017f2b08dc0ce21c6a604530441ba093af8f45f51a8f594c81289668c33d81afb1db24e117c6fb8089e70b30f868dc19126ad91ce224d33a66016d1bfaa8f2e86dcfc406d4815062a1bd2bb503318f73d28560af96813036be8a2442cd31e0fc97de0181cc7d6f83384bf1ef5b1db944c2db39d6fa6aaee2016326c22aeca45d7f53b4017d248634dcb34cb944584acbfe6f51ca4634f60be226bf0ff25448d95e8f0516dead77f1cbaa4a3b521dcf26273cdc2b6807f21cec4330c758f03ad8cbb6e17b779eb6afd5c762bf1d64c88256722dd5649441d79cbd6ee6f2f56dc7ac6a9778c75bac2c721d97cacb9782f87c74a9fbdb2e58d7741991dd0989be6bd430789d3b32a28446b8cf27d7579979e311417566cb551157ef6cc702f270cdd8ec82bc714002d4fc4d6f00c5cdf078ce93ece4f3a8ede083c3161aedae2e87305ad9f4c6edb73dc007664fac709000b6f62f2315c4296c491a836947210313639fadea2fff5b5a77d45a8ca1a1b50c3dc5a6343d17932d320219ca598bdff99910eb270307308ac1fd2ebb4930df067aba298ed12ed2f7a9024fd4f87027333e2d99066485b05999231792607a177e20e9407f5ff2500bcb2d82f0fbaf5b5d171f19ca91cf21c7d1daf17fe960a17a3b94407038d6d2bc8d6148254b5210a435a93d733326560de8fe0949c3076e347ec6104d61d3176b9c7928691095f80e6c7a41e41e250c3904de8c3f059d13caa538142befb876b9a76e5b847405f5915d9f9231a8c049d50d703207731183fba5bec32b220bfbb45353b5e18052b78e5822b344140f4d0fbae31d2e64bb876601e279a54da4f572ae776691515cd30dbb2021079eacfa16e1abcc648e125718e7159f9d1eaed3bcc133354f38dfd24892e6c519493d6075bd32a9aa20d9043d50f9267559055a257121b616e5615994873a4258665e33065d5aababca8abe36f4557da1eab310b4211519b165367e8dd015c21a5fe73bfe3e7e18509308d69072ea0ca7f780187e0a4af48285d2906e189c5e4a7222841c9f86f2f7b0e5cd79b1bd2784182cc7ea86254b23f08e03b332ea821e3876ac74512ccf88ea9123e59811b3b6273ee4c06508d62b50510e86f63c279fa6cce8015cb30ac1275b9524c50211cf4ceae638c02a924fe524fbc045a77033bc9581d60d7c29648979841d94d49b46552887279d5083c8bf95c0480a1d95c740b55a85811e4224b2dc2aa8380cb07b15b32b0faf30c72f91671805ad75ea7a1217d647a23ab2d79cc2ec6643bd0649f5417c8a80f29744315a435b76704d01f34fb91cecb2a8180e8a8040262ff78a5b1cfe03084621c7b4e648141bfe1df5a5630cdb85b5dacb3829ec831ce0f8716e6dcd9727462953eda02f7be4aad715921e4c73f2026d7a66a3c63c792d3601e49c8e7ab888538f7a65acebd4cbfbaf0c82650b20c93cc221c05349a8d2ca9c035f88c9c2cfffdb24bb74c7b365897a7ce733acac35e17cc610b4db09e31bc3ae445620cd5c7d447c70b22945d9f6985d3f79140680444c64a525d86ce0af56f5e89e161519db1160d1332341536bd58dcd4094ed61713cc70856291b24162a945f0fe5bfc332839217bf1ed0cc4c5aba1770d7c3bc506cb92e5567612e950688ce604c2c6ec2ae87a9b6046547180280cef8f597523ceee085c75012bf080c5a64a200a6683e6bae65816a1f80858808f833ca1501037b243b9e8501d12fc279cb7af32db048409e3aa0481ebc49c96254e2ab2e40e9f22443bc9e532f3ffe0ed776b6ad4fd100aebdc1b5254d69bb1715aee743c304315359aacf22841a9c68dbbce65ff6b18184cefdab7c7f55ba9d524f32e9a0ed745f3dac0817c41abe8c08f644b0143a8e95b05140c5c4c949b6db885d67141d674f61a816a76731ae269979d1aa786c03baa12343332044a93bf2581545999d5f6af0a70553a5f7f334bbfa85ce7055b33c47ea7ca5f158e540a07858e098598ae5ef31964eaf0bdd6e5ce95e5f5d23089523832525d26fbd0637ee3877935a69eaa7213d91adb7bedde1158be8636029af93e6ac5acff3d8d9d8a92b60924d062df0eb2d48ae9def43fa62e9eb0d2c7805dcfe95f4ddccb94bb609a9b7c5af921f97d980e70b428310b4163e0b1d43063813b381117f34f0ba99bfd50b3721f8d9cb7ed6aa8c86a5c6455368dd7c0153077ff70d4d663550d924c0bc686e557964565870a9c8f471106dd8285a7983a564867eabd452c9c07735919b3de33171f6efea25f23a2687b21e8248092290a7ea95166e620d4eb1fb174f39dd000e328142e23a0404e81f40a1b3ee438eb44926f93a8a81206dc37be1a0c7cfa149871c834f509fb044043c596baccb74078d089004081c00111aee292f855a8aa3e3f3911d7d29811942a8f4f128161e682ec171dc05c14a8e68f0e4ec960c22661d4e898646d88d694d798ae769e644973ae5b94664849e51c6bf8cbe95015d87d9b9730c9f85f8543a81daa98457a5c7367a36b06996d9fa63c914e479281bf688f245a74a25264a3267e51d0ae43f46375c6a89a18b2b6b1be974b5be3bbe4f8f8bbde5e73458d40f841cfe039af71b8126ae30ab3455db840467112f84b62d15a3763941fde9d710c5812482861aeb61b8f64523718d56e28412a452aca26529bec0b04f7b49ce926732a06ccea7abbe6c0e0cdc7555e1c555fe44afee8a3c7d7c926f433a1961bed34e3b3216cbe7ef540ce698af302e5c2ade63cd200ce67a28efb19cf7357368657f33df6ef37b7c4e78c1f8b07c36f14fc3c4e95db5d56fa54bcd9f989b7f71d644674c6df0391f37c8678576143a0a3ea00eee24cf10aa6c4fd7369331bebbc4cab279feb64f30b35ebfb765f91a87ec52b640827db5e11d07b16c4e391b49cb301b9a860e6c801ef411e35d68f05806e40a22d1e87ef58afe5c3bbce399af8e8eb4f976f107eb2e826716976a9515d8289e73085cea9cf0b57997072e5fe3d5670dbe1abcca5d5cafe9b8125c888150f7df389cca9505e695cc525e75d2e0c987544119e97e1bfa67a78006774a1d8f6cc53c1e7e33cfd47cec57d2944e48caeed75619944086d625a4c9701cec80a84bdad5ce41090f6d66e46a7a0961556616531c414e60e7c771a519d4548e153af74c739354757529ea338865efd8a4a38f10bda043fb447e4a974d92d9a799a26b20a59136e1cdddbbea8db64be9fd4c4527c779b3793f9a57b2dccb7ce2aa1a897433648ed6b11cda2f695ed9cdca4553381715f5ff8c3f8ab96e93e08d501721d9839958ecb71b65905cd5ea96869a9f19fe0e480bf024141a5eb04017f7c6d6343c5d7e88dd4f62ff8d016d2c9d8e1d77f21e686b1dadd76e480412b4f1be2856907b8d1f85b8fa7fb16167e2cd4e90a50d9b792cda9b321eb728c8382797321a3df88037f5a5d07a2925aba81860fd22137f30c168112b3b18b16ade6012f3f06a5693c2294e5b6b2eabbb815bc6b739220b03790c69434bf460d9fe31d06dc96e33525aafa25a2ce302fa16d1c7b7a787a6459bb63c311790b7c8b8a2d6b452dda7c5adcd3edb052fcd84ca21f84c612eea35ad29568e39db767b2412b5f488d74d2a7253e3f2d1a569b54198bd3016a11444e0aa3689fdc606ee4063d89b0d8eccfee34c48c458cd06d82e793b3893984dae2b431a1a3301f9e63b1497c9a36872cbca5625dfed6d93973292a45624bf83119b03c193513d8f27fe49862fd100d366c428897f26dbb32a88f3dbbb936476ace20289d8f577c04d9334692f7fab13db55b5246ace0ff9cc2916088cce7d4598305458139ded934b9a140e0617f5ea4b3729b30dcb1d8b530b21a1c5d1d5a4084d3409f140e686e24ab8ca1dbb72a84397e0a51a39433b01eb2629a779d7639cc54667e30d1d9a91b5d9104a18011df0e8a3eba9de113d08140756afdc0d5fe2ca73adb6fee74e38aaedcb47c8e73cee701c60a403c31b11ea3443148e0c30626acb96873d0bc51caf321cf90a0955e53cca98fa14b22f352ba444a1093985b6d1548862e6e5e62bbcd08ba19084923726bb69cdcf5781180ac9bfc9f66f37870ff7218e549799e005547c979d18fc9ea7683c152bf05613b26dbcfe2068eda9de20f7c5e205dda09f7c6f2cf5adaae2b80b4ae02e5b41de14036bec040f4e8167301256060f37c0142300fafb0abc12a80403d246a2d111fae68535f843681c3ec08d13e1025a197df0fe8290f815f4facb0ad6a95096d2cc56ea3830a575c0645c6298dec604655d337c62a033dbb2b204164e163f21f0fbd5b431350847ad6a2a145a614c8c840886e2dc5f7e4cb443d02f54fbc13799f6bf9933084b3c02726d66ca470786db9f9ace3b9729c01566cb1404ce7b8653d125d8cefc44f1d05284c3050b6cc0a27fecd3a6cfa7ae4c8f35e122af57a01752c9b4ea729e8618905f066653307d19feabd71c26b84fe110854ee25a8aa55393e110a806f019d02c76da4848a970295758f4efadd2554d066d85ef8ad8e71043e4652bdb3d8e7ffdd63bbe52fe647456274868711dd5c58cb6aeb25f284ce7061bb49359ed1287af96e2e1eeb8370a33a2d97b0cc5b078ea2d7b2c01a82108bfb274c817827a07a6e7c89a0e12aaea007f35736de2c162f0e56fb0967b923de8a30e344f1541ca53916be6833df6fc9b6844a3e5cd68f73e10948da383f910e51a98f899aec09f1201b9907ce630689ede12c253839cec9d6d2c9867f8e309eacd29675c81dc2cd626760e4620b7074a66a25a46b9824e9b853ca417d13231ecd4bb682f3f0468b1e79cd6c73c4c1cce87f3d53ce3dafba7da84cc46117acdac5c12f98a4865a3ede6d84210db17d25ff64df6837a878d22700fb8c81ed348768e64b47875d1cca86a29481607feb9a0481884b97a05d09ffff40d8150442b145be689fac905fd92158a5fd53dec34f11715619cc2f7fea070118939405e0e9f38937902f5851aa316ce8bbaad52a07b0a0513071950eb12ca9f46a8e2da2b496b94d5994483742f56ee1172475dc386358ba92a8858f087a8a8b7b0375a9a05380e87d5110bb52c90b3b3d02b3649e6a297a5b1d23c580a10b0cbda2eefc5aaf0381527691cc7563807c0d61129e24d3a5f5aa3c61fb5368b32a85e76773c58366ff554859e8915e89c092c4d9d6c3e5c8b708f75d07ad741687bcd05721cbf42fb0f3da9e4b9c99f8a2a1506377be5b9b278a24a0b3b124a7090665d6a0af316b42fecb3370d46894051cdbb0b8c55ab37b5445380b4ad3ec8118ce403ca25babe3637a9edcdf5db9495e92bb3d9191e15617294feca07e25e2f5e3f14a66e48694b8bb7f5ce4285be4033d2e7255ae0cf649726f6cd0464aafc05e686e36743686bc3c1927c019b7889b429ac00c46735b2007884b10d2436691677c85e9feb57be502648d5b32ae2f272452ec68a042fda8b5b99768b0aa625c4f4e45f917b1ae558831cb795d85e64f2bc522680ef5f69e6727095e54324c7b1eb989992021a92b5c2f3a5a612fd755180e5bf97af0c8f0e832dc0f1c505aa687d2e9618aa2bffad31136bb02707283593ff647aed4f829a83ea5544278cfb7f73b446c9a454767b29a100f48b1aca744a19de94f1f5023762d9acc5ec792dcbbef3cb528107b520748024ab43e68887aaa2576f71835b0d370f60bbd15d3ed3d9a63345899d1f0868f3b190e156e697086211aff4558571a8654d1e964cdf0823759139cfed2ab37c8ef9b769325b3084ada083db2aef313e11b6f2be1d383a89f9c76b459db090ee9e16276fa7b2b71cdb806d0bc49b372c920e7cd93aaece31c80beef44ccb82354437dd5aa1bb438ed592a3baf1c4ab3fd026ccf84f10efcc1d346020ab4aa8e155efd64244205a02fcbf05fa85920c85c6b7b0c2f6a977bcf5e93200b18f8a22fc0859fa67a7e69b65eb13f50cacdcaf136bf1f6fd7f92104cb16845312dbabc920d55344f09daa7ffac156edbf1f7f28058385bb379406490a24aa52c8d75a050f673f94b16580ec8f978ab6164bd9e2bbf50dc3b8859145663edd0c704035c050814b3ba97bf8d6261fe94cd9a41eafd84cf3e9e6dce57ed6e9b60432b695aefd114d36f159618d6540e190a2e933b749dd34303e709dd2ac4b455840faeee0fecdf1363766db43ce7c22b5016201b0ab1dae7cdb90be18e36ee96d5d60c73d29c10ed790119dd72e9395758a7e967d04a4515db66319cbb290b45bcad127be8105ad0a7768e044a41d80c02ead28c54315f4123209a1c246fd9148c963b0ec51d14eddd17dc15e8709134082675f4e7c6ecde3353940010a0fda03bdd6a1a6b19d029bd5a86682902d1e8ca743fccc84b0316429fe2d3edc8b0bfdc29ef64467487b63992d44cba11c50f3efee14ef47d9a160d5956224e2639413b423e8bb0040899dbb248473265626c3fa52259bfb2ff52f04c21e7b5369aa21ea90470df32585e132f252468944c63f53c3e733d0e8ca5411be6cef6c1e87d9f16937c9c9de08ac48cb8f4449b059c4e1aa61bc2aa17c6cfad0cec1e1fc52ac1848f2a0759b2223501a73fce9ae8d9f8d44a1cb294c3d6ac6591ffa487a57015dbb85be136ac79192f08a228010135fa0cff8d63e8ad5b097a1dddeea2fe64dfa1e9e8821ad8eb945de79a6c2bcc4c2c0144522ba00b59d800db1ab34b9a185174c6507b13e67fbc2303c580f3df495580c8f4398d0698853b48c4259cef3f3ce6a373dec1d3f69b1f1e67a61b0fb87e36cab5be637753233eadde5f82f4dd5af4ab0352c9845c35ae4eaa578db9167a4bf18fb8328bb0d3980752ddb8b3116f045bf72837ad85dcd87f8210ddca55130fa6b073c238aaa4bb26ecff70fef8cabc091d0bcb588a184b6a249eba12c69dedb4095f017f28215197ba07cef9a2b6e85c7aa2bfbd7e7ca50e7596c434c61e625aefbe77e4c723d0965d3e8ca630b9f9e6b04ab62997f371ad1000d6b70f200f98d83fa5a7e3a452987f228b5bc4a95c56130813e8216ccd9730a7284025ae3db0e46879332b5355d2e79eea537edb2561db599ea084a09cd7a38bd2be0fe12d7da7b3b8849ea0a5e423bc3eb01f3334e84a6bf40198c6b892a88c7e1dfd79c233188dfc3df9d6f876de6670c81134a41b6509048fc80fa96bb057ee60bfa31019ebab2f5c27691053b257600de762a89dabdbe36174740932a2ee58ae5c452e11eb4ef7440c92edcabf35e7611578c2a90d3d7458e5aa64bd492719f7075516e0df6401ab7a6512d8c74b13fccaf68cf5cb589b4d2600f4c87c25e0ec0b57cc1856754861122d8063a1afb060b1f3782afbb180f4e56fb4ad02351a80059d667284886f9d178a0f1f8db0daf961cfd179539e31a5bcae0dd6de05c21d7146c69f4065fe20e4f7a8cb8530f6f4a15e28d61f3470a5ece6b936d03e2b887ae5c2e29093a22c4ca91a954a16ff1a3a1c6431b645462caa3afe0b99e2abb2650137b7bdd0c87acf00cb63bf4b0b1b288e3114f3de85a444a9315764018b79b9612425029478bf1bb41b9346aa92ab15330d1c18e47eb41dac3e528b9f29bd848f20319ffc01e7aa97c91b697ae46a03cf2751614459f423d1a9fa9ee3f9d2092816ff6d4c5cc889e5be544c31de65730e008c92c0e3daaac190e282a58d4c00cc633c62920f00b6541334a8fba20938e4e064034e5fa359bee2da569a5bf221b57ef4cfff630e0ae5c147e4a66004a5a690c04f3827b2002ed1e48b97d6c661647d3864b5401d774af46d807d265948c0d8ceaa3650d21db425dbcd4d7e65af7a75bcad03c3f0a01c6ce982ff211abc437f970f1ac23a836cd18fe4b3858304acc70051ec21c9d438fc675fc9cd9479c2460a8452ca9d09198e15e2e8b59671f8d1a883ff4313dbd24bd57d0c999f6f7bf808785309a52de8da3137a6b4b2281ecd470016cf81523bed667d0f6e475a64f11c4ad29cbe2335151b1482e7c12065f7ca5d31e32b1246b262f514e59ccb713683aa08682d28c1726fada6c6e089fc972a09e5d0eb5ab773e42f9647584cf6669bd119bb27857f4ccb33f1c1d4fbc3e8ca32eaaf6d1964bc2a790d028b029a99271ad640a5f442cbb5ab5f155a4b587dbf735d81c46568f4e939cb40554bfc61e9088fb102135d15be2a8e31eb65c7731ff776cf0d62b0c13465d30c6e13c9dd64ddc2a214d97f14a574d452f58ada13fbaff4fffa4901a2e49346c78177e35f33f7025de5028132d3122900e3ebf78f93f1b1d67f4e5f4854d9d6a9177cb22e3f4f0a1b37167fbeb83ac2b4bfcf70d2d70426f68c27398a9bf7f31d9df89357d3f27941f13d565976d7bb3c0bb65380de2b1ea86bef4f1e99866e0bba849da7b46c7f8d711d72a7b921076152bb6aaf0a3425444b1002e2dfee307bf62d9af988ef2c675d7b17c9990cfcc423cac851b767e17db39c20e23cd11dfb64f76cf393fdee6bb2f4a1336f63b0115a57ee48586abd8e116ae3a4df4c4f4da4a8ff9b948978ebbf4d005cd258d2ae9a07db257b681281ae7a95474176602e91d222aba0a8bc965c747f74af2232d3434babe760fa8f4784925337c060b4c53595cb481beb4eaac0389b9e9283370254c0b9382a78ea44b181cc624db32649f6ef8db25a0d57cb45ac1284c25aea61301aa117b42959e09e69a0a01a87ce1725263a2b6a631446f09d759c1d31725fa9b0537d0ac506382dc94eaa82685374554ab9aeefef8e80f6d2027e9b673f36572bceb5d0945bed3f59ee813ff520280264e2aafbc078060b980e0d5a4beb18d5a918fdd8220e54a693000958cb26cef1f90ad4fda526909bbf8c3f5687fb192b65ed63825c920b708e68e3f836a53709373e9cb0b8e57907d732510f308e807076a519f0a61e5766a6520368d064e6ef2a0f70e783d1fa3d46326364ba12eb2d086c22603123d059b7e4614159ec08761021e7f228b63dcb86e0b86defd7d8cbe70186b1850078d6813ca5d9fc1d8806b88a449718074c24fd05970d825bd844c0843bba7cd95fccff8ad16a25f7715dbc22a2f31ac0f7b6d0481a6f280c909ee0b4282d3a1a8d32a06fac78fa103d55f51909a571eb194ba7aa2d448fbb7af865f67c3a84d82d9563ece93104a66abf38da66dba9872cf7efd3a5bd7bdc3ac4017c48c1997991af6182e7fa7cdff17896c75725d7d5e2d9809bd58bb01af1bb8008b447828fa56ccc430d0725114482a3181ee17ef20d7308cfe9577cd607c39f7dbcfbb7f4aeb96305d914196df53513048a46afcbe41782214b2bd55b6d7c5377dba5fd43176906611298314847301f0de0e28a6729ede619fd1714b3ed4a542b0efd2bcacd541f9a87b8d909f0de7807e2990c9649a8e5491d93a905566a52d7d5e3a79db86313ff7666f21d948d1b240ca5ab3d332e25e1239135d641f0798c498da0ffbcb9b7467cf397850c69f12df5af0efe9214cb20a325e8f0b19c0a966aec383ff8234b571511785d17ae56525678fcc0b3bff9cc5667c1992c08e3f081070a860b834522d793bfac32621bfe428eb229b860eec4496ac8540e6d9d92fc5bae3e7b6a4015e24abf0468e70ace4a1a681f0d34f975ce96a473210ef09d4ebbed4d782872f1b6b6d6d5293f3cfe3b3412dacb13cd4856a30ebca95e7af6a94530604a2d5ade596f1d1f1eba5715afa718501f2e2d7efd11f1464bed1ae4d9efa40c42875fb08c1c204013760b483ebbddcec24e8714e2d33c5888b1b2e790487fbd566dd0a470a4b1e67927cae98f71a0d243ba428fa30a7a56b413c39b54e0801bddaadadd04d177e30a3f37269761bafe731ac0b655d8d270e7b566e022887499379566863c74d17d5e9cb797dd23d8e515296296b8da230965b5568427ab3c2102fce51389e5ab525a3192a69e0fc05355fae6f2db0b0701f848778d9d887230623e5b7210e0afa93446b534102b40ddff0362ea3fa41f755307c211543a8b041f5966bd95bdb76bd1c43706107e204608981ee770ba68b30713870c4d7e24632c1b16110ce484e476e6b961eecf7862772fd5c483341d612308a2dcb178bd507ef8af9a93ee43a0da60600de91335ebfd06e1ce8c2b2021cfb35b13511e7620888950183dee77b032f3f55eb89aeed2b157f8db76a73a2bc69cba213b768b898cf5979083f42b6d3e10e077a36cf2dec81d33f60d27ae64888b2ae8ff20585910b7ed259a2ccd7e909315a1d4c84bb01bf2948a64582ee842b32fac61b9a1921bc00df703a91be18ac14b7351841081396615f25af5dafd18c15f1d40853a0de4640046ecd612851440180d9494283c4cfe7f98b637cf240f091afb886999d2b90922b3a4693f01773ce492961d0ce9e46086f8c8e2e075d14cca6726235be4af193f50967939645fde55fad56114082a75091e6133871fd52182e6dacf4f0157beb7dfc45e4a4239fdf97aa509dfe64a9a1a51477d67e704567c2c6dab191760e7687b647572e4d30ef93c49046be8c83c7c3e4aed4689de5ea65a89b3385e2962639af32f5dda0dc28e774546e0661313ea0739eaf42725038455869d524f0ea156c5ca0734b7d42296b678b8a9bc3cf44540fb0ca6660216417a020a1c895df0099113e9226f479cfccc9a4975a7f2071f9c3076dc7b5c8c79eb8f1b1b9413fac69078839e7f078b8a9f8df6d5b465795c01ad304f7b2c4112f9c6495ad2e206eb28ba890eee49dce16b1b9723610dc4cac92e8f8df84a3165fc9d29bfb5f19fa6a2079c0b7eec4a18f73bf8d7ef8dbc16c27feea028134ff776562fbb75a9c146d498f56d177349e4c72ee1ee3d03d6897c2d3bd8633e409a50e70825adca594e959a85013626889df3bba89107fae8c6a951d8a337103f98c75691e5b16c38b8bacf156fa93f828746da3cdf3131cfc16bc9d83838e6efa4472d50ba9b6ecae8c2bf8e481ca0890d772ff49aff02ea4d15f37d23ed0bdeb1e3594441c5de03bd34f630a461f520bde55e575ee7fa15cae3b3d3364b7c47ed6008ea07a8e76d5e538db9f96711dfc6d5c8dc5e34cda888d87fd84b6f11a624964f4b67b8d7cdeb5075c07d3f33ea6689ef558c34419f857ac812ed101b7afc1d15113b0eb5d26de14bc1f8b974963bd17c95aae708efcf46d06cd1bd9e4f11fc7750f262c2b5e1749736e4a0a65332f89b2d1a4d04e7f3ccd41b86a69ca01707ad74bbd0a5617f5a5acb8d685fa7ca6bc4f733a368b6e8aee72608fe0d1532b4d844534ed94dad8da92082354e7506a6ff9c01bf1f1030fbe9a9055837c34d19bdfca7918d026011bb281477bc327251e5f84a6232705da1acd8bb1383a3a2de870cc8f7fadcc30b7314cd07939ec8a659e16091a15db20696b643717770a134dd34003390fbf8c4bd99922fdd071052f2a99e98c4b77874f8625b2c6c9a88a2c1cd952b6a028241f44a6a7303aa0c1454db33484b0b1a47bec82e2842cf7ab5ce04c9b9a21e8ec43e21aa7d3139951f5b70b0e4281e00145a74762d83daa0f1d0494b0bd49f00de842e1cda1e2a425910d595ce726394fcea5e1e66641f56a9c1c640c42e6749aa627652f4018ad1c865fed3b8250c52710634108eddb7e39677a7c6d3c70acdb98d8b8076536f8819de94e3fea932851c67542e9175a65daa2a53f34fdb309e1dc2d125055572f0f5e38fd6123afbeda044d7e0f0e5edead1f79527655e355ad7dc8d70f0a91357ebdc7407b9b4e158959d0c6c1c881db41ce5ea67823b3818299394a4bd52853af9a9f6d1bbdb3290a6a0fa62b5f3ea4521d5151ad04cb816e4113a6f4aa4120be4b3c9a636e9a448d438b7678681dcaab0023583fe79dd2593b6103f5391282e13ee52eaa2994eabbac587561bd410c6582daa7d89a5ceb6524802f6e5681d9efd18e45296a40bdbed2eabdad2a3dbd2557f05ba6d6a5fe0383c051d092aa5128ed8f45072cbbed6dd08f236f6690b9a4190938e3df866c25b2039b2b28d7794aab80b3bca5f698b38bf373342d9ae704ba032a4d7011eb4d69d11dc8968e2334431a3d44f3c61dc7801a4a503a9d6ad00b5c0ccf656327f9427942c72c7d26e113155cb3fe8bbcf8cd492ddefef93cf75d4a15518aecbda864e1138b3ab794372d5d33f06c37131441cc27b8173d590742b6d2dbc50e93a798d00362240e802fb0300daddc782c23d5eb7fc2067125ea8562ac40738961c465c782bfbeece0a118775e36b8da308af09019536f470a18c7aa063e97c867c9f6bf344d28ba205cd9bede9f521ea97ef2b3fc3b0e2066a2227bfcdd140bf2fb5d11bc0625525c09c9ca367c569fa36a635313aaaa54283b09daebe4a7fba8a5e2b40761c63b2a07621e9514bb8b591ce2900dca115285962178d58da7264a9642f921692cef5a96c84d6e8f2e6c5a943ec2133365707832f2fba5f419c856564d539a1771cd88bf88fc996c72363857a4d1a401c80496272fd6fa825bd999dffcbbe189434d8b56af7c6d5e750fe3f50124787a1e50a7fa73dc3e08b2d4ce561e1cddd081483cd2f7c79816370140383edf6187ece1d339c6fd1dfb1837ae418870a3cd445ffbe34564fb9968e4d33d027d95de80b8ffc2545908d4357049fda98bcbbe8567e841f3766b46d41aad21af571956bdd2088a1a701dac9910f6484bfc058ea3794915a343fffac0f17f5e8378c67428e6cbbc3f7a69e146e18898bb8729be9450d1f6cfd062aca514e1b7a3d175086cadf5406c7616f6110f5d4e2cb0a388c97ae686af496a29616b407b31b09d332f5bb0aac4fc3a5fb46ba80b3d965730553c32204f61d54c382a3efdb1ebfe5a92eced4963a590c73347f22ca2a11ebf4035b8eea771c81369a4a06829548e27569a130bf32d18c9b7541120346aa65ddd7deccb6706415b70051e0a1fe490d75c5c21f7054ffb2d0b4b98dbbe36ccff142ca1bb08b354f0db22d981ba85947eb6555b7b883988cda5600f51791537e39448fcf9e617e4cae0e8b3c7abe5835b5384b8b514892e3f9b77679c875eb39662190fa5c3058d47e3462f889fd3119040422885eedc2fc6283a92e45a58f0dc291fde80202ff09c9d255b95cde2a4e26d21db6f0941536fb888251c955f25caa2f4af84317d186da414a316666d5a48406f4c6c41c8ded0fccc3165adbcf88b2644e20dfd1863ca7a1c29d3f45954ab82bbf151c36753a31a01464223b4c3af84e5518d53f26cb75256c09a83ef54bf187c4c41148b26b2517ea8068ec9fbec617fba984e802039d0242c0189ffc515b89c0c6cf206cc2002dad3d19e6ef007630fe5eb06760490cc28065774f2d2d97d3d0a95365eef6fd8d5747c630652ac3da58fd914a98ae912fb6c262f1956677f5a553280904b65e51080bc68d48c967d9fd303d9e0db9ba2c36213534b70e404d64cb7bfad6cb6e3d81516041052937e05e8c1765f30f90fb51c7636b3527ba2d694f24df5aaea12ee439b7c4a6bb166c36bdffb62899115dee6ed914a29b317c4797474aefdd31ea2f4578d39d7c228abb666ac68f1e141499d366f2b53011b56480a0d8dd199c8ac5eb9832d3ab14a91e3281e8a1a6742f56abdf12af2664f1715b01dd07d122c929cb64ee92a97a48bd811fc74beed7bce8f99a38fd16e0cd5d8eda3b8c92afec049af030bab47600794b7c6069fec05fb50d85e81eb4eb2d63066bded4fd13b1b5a3bf916b2c07d2848abdfd8feb99d043f5e405f1837a70d3c201c2e3084f694cd60692360f38781e00fc820c0bb302ce24430be6fb0bfc05b51a10f1778744f8c9864750cd4aeaa03061c76ca25959738e8a006bfd635c12e68f3993fac0ba14855928000864ea68f047edd0956f738c0d40ca27b038362832d9d468baa44866f1bf016632ffaf88d0ef232624111c3b98481260e0bb5802b10d5fb26e6f02bee561b316c0e66f97acfb3310263e7d50240c5787471422f4020808d78573a3ef8cc21b077da11878a09678bd9668aa9f185c78e634e90c87165402b60b1e30b83797bf6eee28966158b1d61e645cc81d650b853addc55c0273170dd37d072dd3f17807b857bc575c70004b8aee8e8aaf521a7f0f119f0b845a530a075cfbcc9922910eb9d2b3e6625dcf593cc1e862875262400050fd74e31e598483ff63ff5a41a0535ad282292aa88eb352d49d6a4ee591d9ef28756f19296f100018e5be8b8ec6b4a38638097e3f5f342a0e1f92b7c62e057a931df5986c51ef4d06215e2d447524132a6f0bb731904719ef804725c662deb4ea34f65442fb3f118f0156043c945924a2e6c667ec60140b215ffbea5be5d54d4900e3f67ca85f4d7db5d7fba2d8deb75e0249fefac68213d958e1273636505bda34e04ca97376bc8526d0a20981ee626e66898d67455bd85b5a14f86008410953034799245f714db96b6b52ff36f80a16e4682513b8f8a8a49b45c0ae3ab8080e21d722ca54a043f1a1097ea59c9be8e30acd94ba048e0a038225690272a8b8f9f4dadb26ce5682835cf4519d1e89c7488a69a3fda6f44bb93e16621a7bf60fe91a23bb887c623ad34243df5125a44c372582576ccd89bac57d8aabaef795227d1adcfacf5425c41394de1578928c704799ddb24512ea5f1840bc7b253a0b4345e818e12bbc6ac3bcf6d9047f211c74d2da40968580fa7915fade71e71198a67636eec834834c377985c33923f517d528881b63d457af8429433b03078e7cb84831039f07ce2a2895a708c1fd7bab18925353c300a1aa818950244011556233a5d15aa8eccc3bef176f73de02027642a66472e45cf69f10cdaec60636ea78722b3c4e178cb581e2d4171e1ece8c2c06f93ab47d0e8f83dfd21b3b0862876496f0a20458b45be4ea9a265666d22f5048165948c7bf8e38e9f49f45667d33623fa89f3e643ae7703f1e055a8c35128839e103124f681744b32cd8bc0e3c0656ea35a997a7f0510a6b84b4f8d4238a5edbf21fbb6771a70c6abfa0d70148f68f36551ce9ff38f52ebe36c4a1c9ea51c12d1732248fef739c7e33c9c15ab1d87deb86bc49215c824894b83f3bbec08c9e87beddf40fd625c0163ee912f1bd83faa6668d953a2aaab4eb8e6b26c74b8c6632a454a9b0413b273c9075922d6ccd2be155578a502db08a12cbe499bd483c1d59b313ae46450ba63792b40ec0d176f7ed5b1a586e180b1ec0a9916ec905041ef806a5bb800dbc5e0ea9eb7bfe4759e75db64d5536acb1677cb80f336416567b909a67960ce855b4d621e8b516221280825d114669b04cce5314d1043a265852b6a651f9d9461b1d35f53781fdcaa448e36cc7c0ffa40ad1847dfdb24410b655550a80030cb4176b690d6a072be773918f6df77c439b329258d64d818025dd4d6002b4d64890a65d9d7a3e6c0fcf1445a698f34d97af5253870d263b3764e6647ddade850d46b0d3c971863e55c4f9c79ec5808617840ac93e651e6ba7f1e9166a7211ac3bb06e0b6bd20286622b0189d4a10f22eee26d3043baec3321ebc1fa9aac82dc0e4a945c3fa4e75ee485810be4ba22dde0325c44b9811accbb714667d0d801d1b7152926f4f424652a73246a26cc07da7261e5843e213f3552e982546abd0dc06db92872c5f306bb32cd31e081ee01ed4bcf6401c0a7a72afeb3d1186d3a9e88631034c45b268497ee7bc2b19715e08d32768b84bf9f19ba66d813a1b8139e137c31a9c81d322c9b542332416988ddda1333c30e0691f14ab0643aa9e509d4b304fdcc382595241b1e2791500a8385c6ae82f85b56bcf2563e22a2f5656f0ed8a4b55dfc56fad170670dcdee6d89676037064f8cdde1cfa1ca4ed1a37f44fe372160edef045db711d9a845ff1762a872cb18b436ab209280919f8dc0f65cca4dd19997a1fb12e38d89eae1973c692612c3804ed0beab3109ea2cffd8b21c839f0400271dd6c27cb0a205494777f5b6c6f571c27829094c0fcc5618edef86c9e995c9296112d5d65142fd799a8b6a0fec6eab8b529e199b77097438db92dc99a52cbb30f77bda5aa91dbe227cf136e61de3cbdee4b0033b643a23e7af6a032de8b01db1d94a37eb2c2bb4fa06827b2dda53e2522a302d56f6ae20c08a7fc2264aa9200e2db8c41c4e7ab0ec66d6cc866d9511c3237c809ac63b137fa7375cc08754fedf726bb1f3b412299ff3dc6c7bb4c5f51c14fc78e2253f506b9dcb3cdb7d734e2a4f210b4dd880081499c609f656a52a14812fda86a7fd91a3b61827971ac3c99f90d66adb9da0207e10770f20b31ba8eefc94f016a7d9cbf0f62646ec7ab3cd3c617e40b670e74907e21069dde5b3fa048554a6067c6c69c203c0546238aed62d6f97f44604b66afe41b0134c240261398ffddb284f055ba1d42dd45ad7e3c68ca4577f3ac7141774ba4d865359d401bff8fa02b88f966ae658f915d3233a6793da1809f9ea91007841d566b45c57ddf40300aa562742192cdb7a289064e28cb3f4e75a6ef34c4a1ff2640af43cbd60a8bd820d18c08801a0c98f971404003687305df92e7a4d56578cde62a847cb6d51467a0ddecb3eaa3b1672fca70b5ae9ed839bd64f3fcc0d31f72e150a2ea3bb3a7980cdd93354ad0e1a9cefcf18404cf51184014d605cfb098bc6a655d66a8f2edc826d3aacb812c238c683474e05aeb9addc3bef3b7fd2102b967b7e9ed8f12e3d5c869051d6a510bf8ad970a00240669d9ae8d47a64a6f2905a615f6e02cfc3c0755582fa3fbe51dce40c310611f2072f1cf629dcceadf777b155dc9916a9309cc5d702d3cba56f788d5d37101c3b7b53a3a989825ebb93571a10996443a40ece6bc6897d33f242136ccad7a59aac3bee8a7da4f8ce022750b3ddf7c7c591ada7489939c3b1eac045bc2d10be53f0dfbadda0b84d95f3ff57e0a16bc64e9f9dd2a3e590dc7a887d80713ffdfa71b6ab422e191f21e6f8b135f86464dcc295c6803f8f3a9eac2d4b6b1824eaba4349a7a3b1f84be4edcc83c433c984d5b8bc5771c77ee84058cba0e6c1dec88de01c7f88e669761e634784695856867917d197334ab1658b6f1d884541cb3d1b52a435a7b77518f4e5629f77e6211e89ac185beb8120a5657357250da6347db1ff2d50d0cbff162e0c8b8634d00bc260ba83e4c1c70d29a40d52a57603ae68d30b51f627895df4fe69b2fd0a7d1eca4fcf66fdc52c6adb90552ea200c314ae0a38d5839b87798b85ad72eb2a8f5c4cb2ee4eda153fa524f69c27f47dfa30b3b7404d3a42e27764cc1194c7667536c15b021efef28051882a9d6d3a7854fc124fd22433adb38faaa60be644523190868972cbd843c685a153392b733c58ad0533d3f790de47481204af4599278e5b9f74474e4385d647d1ad3734905f7a32a9c06a9f0175c06f4e0cb7b90d69e1d76330872eada44c1f3ccfdf2bd656529ad16e0f7d29cec6247127e1d536154cf303d11400fcb4b076bbb5365eabc8685c6c6c21ed6477c367b2db20c6a7dacbbb1ac8b11d9eced819907d0e99de84b09a9387ee315db707ceb6e7587ddc08d37b0d1c1cb99d2a9383f71d0407356f68cfb9ef252a0afe2c2f32aeae264c9935a9151a32ddf4fda19ab3b85499a18b1d8a9b42a20b04edc997cd89355d04cd07b5380689535aa66862c15bbc5afc89ef0cbc630fd656acdedb2dd6c34e118622e1aa2f5ecba7e29d24015343497e54f1488e76a0160313ec4869fa0d1727e266924e3ca8a380310fb216f9ea1dcf1e5326f3f437c64402753402b7f67be6cbe5c418a5248384790e4c40c49318fa64f488e4dbe9ab7ce41d06b08f0769386835e606eb4ba47e941ac6b4539ba841b07bcad18e2d3d8e2b37e831e74f8492bbf85e6fb259c6aedfe0e422a4c01fa9354059111f099e2c109012acf85938f302844096d46326a17f998c9c30403c6d97b3dbc61bb05d7c5cb2e8de934473bc06dec224c5e1a6405ef218fe9976d0f4ed4cdc2c34876e33f36329e7f9cafd6af67e5cab1bfc3403be47cb275fe3c3516f07e8a9aba89ccf03afe51e46a99a374e864a35daa17e20fa68e33c285daa5c09c69881a58883018801a0fc5f65598010338fa852201b17822cb2dcb86da92c2ed13d082cb7808dda45e8088d3441518b78d933a1427189023d7c27dd9621940312cb999d12e49ab0906c3cdf93c782db09b24eac09ab422c66586a590cfcac763cbf39f244aaa4cf2601f8d99fc8a62d6b13ff2822ed68ddcab509d7eeb7a6d377f08c06d317240ce84e6ff027f6ef2d368f54eda117d7fb6b25fdd02f53722b47e5ca0428ec7cbda7f3e1f4064791b4c5504d5923bccfce6909338353634852a0b4aea43eed5912ca8540a65863c5b7eaad228b8d8b1e3217fe778bcf333c8f8a7387d0ec93163a2e1c3a97d6a14f3f95b92ec3089a0cc2673f7d29e87cde269e47368cdd66601966e4a667ad8ba4ae83e7cf05f7d2805ffc2aa11eb065791e3fdd6536032a27ececfc1f3e87f6386c622aa0fd1b5980407c63aee3a17b52b9cd7cc2d72a1f563d1e33dbba05f4896ee8d4a84cd3b7ea6f2ce3397202fe31aa4eaf2ccde2d7e83f4764bec71809733805e06227d4521561d20f23b17bd6d11dc799245d84b035d64491c2cd7fba4832c63d365344393d23056446f184aa51403aaea7b012c41dcc245a2a719f0036184f6a71075c6ac57d1c333391573cd76e85a3bf285f0ef8061ef293a5ae18d093b54a401499a0dd08f08e7567b1877e76a9d48ff1cd19fcd7104e23940e5ea8151a1af5ed530043b9433cf71120870d7e2071d34771a80a86a1e39e2058b953af94390512878e946c37a63206f37d461847561bb264a8baa1ad2dc32d2b88aa667d2f2ffae6c4dd30d8a18f5e8260c46bb3dbe08ca02d6e1df889cac992a9053cb8f1057f588167509a3a398f61f0a0ef47421605be80ad56272dc0920ad0dda0b331800da4118d8e95e7e0a1d5f77cc3bef48859f104e891beac88c67962ca8d9a76806090b85a6762aea5f87bbd45973adbe6146fd2978009c73653fe4773174d8878fe6c9f13b80359c1beb0573e32cb745bcfa361b7322929e69d8a3f0d551fc0ae414f26d999fc9c6aaa7fef72d9304bac0aa962362f839fdfcc115dcbfdd1812ca520ea4d69f2c824af531cd19e7844ba8190851c87140f5207a35a08466748defcc9be593e164e6a79df785f99cdaa39d80cc31c9991c028b13352a30ad02a89b4439ed9be47861c6f10bf85593cfce6d5712c940e319ec4e4a9b77885fc7c6083e0ed5ec1c10b42fa026d939649659ce049d88ac08797768d7618084c6dcab9c8e278dce230b22db289dd6cbac1643a970f6f75de6f70f888d2d43deabc07e1a52875bd2849965946a3d215f943a3c4529fd245b97e727c380f8310222b13499265f08de560380b309867c44eb2cba27b52393ffa3667275718d8eb636d61d53c7446f050914bea07a9ec97a511b8712ce5a7760a95380b63d253305f4b10d1adc1aa1eca8504ca581a00dcea33f030ea029310521b5984d345d14e972cf7166c8c488eea6ce4492f51210f0e0c318d67c004d46b5d64e4fe09aff7148705e2df5f4796c79cbcefa338b0613c36349ad7666e0542efda909e0966a82d5485e1c5a323e10e826361acfa3e501554070b0de8d6015f14d69ac462600b61bdfe140afa20ad6ddc01a49ca3ddd0ef5737adba2f6fda87549b5d1810fa82b61c17a6fab281816fd03aee94cf3f150ab863abb1db94d8af471f8b6aca6c7353664edbb7f113e0a4d4bb04ee790f60c975ce626d5d2074a0a52316219a07220ca506099b680bfdc2c72b91830608c1131dbf34e11b9efc9e47ff8f9e137ff1f0eb1ec8b7f3448119853e9225bd0e28ce562bc77ab684edc5ad65394ec689704f2a5a60fc7d8808fa20f86ebd57aa83c6e52d6f9229715e26a97c3334021e4c523e1659fde530e548b4b4feef32e878d5c09c52cb22453355c84dd0126956acf7f3aa11229178772bbafce6676026d21132971b44d31444f027104ab33c9a11900889aa24c05beb0b7a201b68572ce4731e3788c00bb49ef7749148ff741c9291d637fe9aa48e4007c9045b0cdaf40e315f1adada9fef2e972393a767b4c9aae052e893a88f8c76908964de9114ba260388bfc311fb188ab15750b2e11e49c02f0f71a791a3c34ee57c6e918c5db2f394dc147f53cb1868d08eb738192792b92d80f2fe4f4be15e8e4aa54d750c84d0a1886bfaefc98587afb7820ac575af560389eed159342aee5406a4aa0b9900f06a99d4c74aa3fc5d87ed087020bee7f76e85aa53d73ff31a0790d225849eaa683b30551d2075898ed5795210a78fe8b5bdc4a681c0eda635b1d0c9e66c7f263a15dc0f902da593d95caf935594aef9cd4d65ef8d490a451ed212a7ee8855c896dbc3eed3c98d7e8d4ad623522aaa8b011c1de159c294aa3e15ede54ed3762d952f102959d27cf7c3d00cd68961fd57ee26ef128e87a108daae174e8b1a0a2831b6171983818088b52753722cdb7c6b29946b456bb6550c76379d400820ced00b2d821468b66cea72ecd2c4e27ef235e5892578a91c1d7bdfec927da45f21ca4e682f0cd1c032349d75520c3a96548ec095fd16a458f8b1914ad4cd4918dfe77f79b30b8e9177ee63b4975ec2851ab412a60233710ca60254c8e9af5150bbc217565dc599dbd8b73118709a09bf07421a8862e01a5dd6452875931af630f1124a740f6e4e4a95858a57341d39a142f6438dd32f54dc9507573fa87374ce17cf7e0313e682777591dd56d6c3b89a71a55fc5ac96eff9c29c20bcc6906d8205993f36281364fe3773a46861fca8c2025fd5fbb89dcbdecb5b7b75c9897c49c691591eacc1658fe0d0a6da00dc3709e9830b6d88add12c98c942a36cc8739b160d87c8fa026f4ad20e6fd135ace4af14a30d2fd2469950bdc1ae0abca6da2045e4d47651f821e72b135c05a04df6667b0e62f4c26ccebb87d80cc61859895e0d1fee09b9d7d0a28c7614c20e862e94a50bd90461c16ac3d9f31a5c3d0665621b69aa9d42c89a135f9e9ed4e49b4f6145e14d77c2509213639c20bdeb4ff31308a0fbbb5a4218eec978d0b52c9f3b7baa04209361fc06985325c7b9a47c36eb5198078c0acb31d02d4c0ac3aba9e46d801c6cc699a777a00bb7d58f52cea9336645442a158ab50a0f98fb9cf0d89d40fb8844b5182261b7cf573738f03c775f984a5a9f7edb5f4409abf87208111e6cc05dc63f0d8bb76f659cf233ed554bcc3f965ecfe77446b9e0fbca074e0a8f1909572086ee00c631f6da68d57a72fc623d97f8f1a986322c23f5b2cd1d2ca3ebfa52d6a5d10b853771052f5fa72550d0a0e83b91210545c8fc9a431ce52d2ec27ee6ce26362efd85daf728392459ddca4bc60380dac202fd3829701c66d275d87b28a40cc6e0e118b4478152ed8e80cb854634050400c99869be68692c72d4d10cebf2f5e607dc66426b1a50d7c8428f75e4a17119b91e1a6bebdf0114765b845a566b6ce1b14b95a523578f7f3723f284256a40f38ff092a83f20ffab57ec8e3c8d2e7730f6848930aa94dc3fe1ebd737a525879d800a7985e14144166ac01621f03ab7d985b69afdc085ab2f7b654fb99511c6c789b587867bda8d20ddef5acd8f64ca195bb0274e3bfaa728ba4a8cf692c8d73a28f4883a9982681334070707ccc0b4658e02f5c7d2f0b748062cad9d85b3ca2387148f972543abad67b4cf2ccaae781c63ab3fc0a7d51ca349fbc9005305b6e5a683285fe6a421bdcf15c9c613af70aa9851756f377379579f814540fc97929d6dd811b45b06d314d244ee9c54bcfe22022da78d400a8fb629892c73a95fbd9004e387dbc030087303373f2cf9301faec5c719b9d04bc98ab4dcde54e1af640301c42b85f7ab826730677115ed2d67e42284392f7c37cef94d616b2835ec71ef17d0482e5590484c1ec80dfee89167f4beebdd037472858994de42d5c61524954871ea2c874a52969beb3ada6966e4074aaff56f3b1bc6e6d020c5e33b75c0db38e7113969fcd9bddb4cee3c7fa027f5d6978fd5bc303131c68b59da71e0666fc3954cff749c011270db0299894d049e57f01f8f8cfbffd6a30f4d167c4618f882de048ee28081c506b235bd6e6cf3e7a1d57b68f021a1fb5a0701a6caa8fddf3c986251844965e7199d0253cb077d60ffc11df2ed3757ff86af327a24eb271d430eb2330bd8c76868a2a6d3d237c3919eb436264520fa53ef628553f19ea5518004bf91f7965339810f1cfc258dd118ac940200c1571a7f10683a68ebf6501904810206ff50e0d08bb7fd84ff2c8ca94a9e5be69aafa205627c37fb285030416f613916a1e2b6f89ec2ea5bf9c88561fe125d74c2f04715b2beebc1d9e096de1d40daa7526c5af8fce9702dfc9940f7eaaee13da6e642b4b5239a6bdf7cb1b3414e9aa57153f6ec0f4f1d3fac673cb93db5e9b22bd80d0a70301d6f17c6452b68800b0afcfcf136de87d77d11ea1c3cb9ac30460a7578c797951aaec96a8c9510716d905e07dbbd345d3bf34fa04573c40b7105076fbde515984a1221bd3e016bdf21423ade0304ef4942b13a87c1a639756410a7d3eb17d8a8a1677f1a988be6b42a7718e381859cd61a7843cbb696052f72ba7c03a9487d6e29c1f222e1ee29cfd8b106388bd7c7970c039ab1b3a68df38402f19bd883fa2cc539c9091501ab9da589b6260eb6db0348cb87f5ad2d8bbca1859456687fd781642f68ea3469e8f05aa05830492ecc85c083ed838a166d608037c3e280bf2a0ef72f7cffcc848934c32fb8c7fabb3074cf9678d4317f718da4dc948d95cba6f651615541c4d5189f79b108dda212e057bcd2607049b933b7f58bb55b1b080cf53bdb0e377a053f39fa652c188618b752f3bc5d9b867da2940a8f7f8ef5c54fbc366d6552a6689621ec4f6ebd9e980bd2fa1eda29b2cc47ee8e18201da6ec68eb81229a9f5d889b5a57012f094399bfc386155c4f13c9def5cf105b526e10d001f0acaa0be83a3043b31008c7604661bff647bd0ead20849f5c803dacf752fcde80d0b31e09cb016bb2f605e44110776ae0c96180e4d6d026719fb89837cbd062f3c9e6f9267af7901a28de1a73aef47227f1a544c150cfb3aa8c5c9b7a487fc2e208274446d99e603b1e8bbe918e5d52b6c1fd681c68c9db659f78c276dc3af7cb11cda86195dfc022f3e5ddff1d52c5a306143d37851bdcaf636addfe219ddecc0a42fd3b6b162530dd1293216b613bb1b595338b2e7258c3f9edf5fb26e38e8890e4cbf1d2a0a60eca981e9fe936a7dacf908e03f8f8ce3e2973f1c49ad231a249ab6999dff63ad613ea3b4034799f74ab02a27f9fd6613b9cba6586736dd63b440fadb02426b35f5b321d323055f38d5727b2ae7c0d1a0cdc18f1909d83cef8e690896e41c5e635b3c9586dcf9d9834e828abd834999bf0cd6e0902ce5f5657e3e8e29975a2fe70cf1b5f94e3d12108dc4b350dd3c8c5e73e6498859710ff03fe75dc97c4b8b4ffb43e70c77035c154bf0609e95672da8020f510c9fcdc53038953e87c0b91f952d3b3fb7416f3ad303b1ba2ac93b45484981791e3f4d76e43d1b8d417f07a181dde869afbc9a9dd097f4da192d5bca2c8bae5a92b656f12035bee17a8535c96150d359e6b104201f10ef520daf16f1fd2f40a4da949f15d053b295d9d509abf4c9bfbc233c8beeaece976f488a76dce94566884ace2539a050ef350b00e2b3d836d4cff1f2ee0b02fc25b7b6061272017035e97f4455e7963e6a8cfcfe88770da026697f3c4a944cdd6d63ac15266349414a7d0be169ca0db70aec42238ed3003221e5c33b932718b55875eb5990dfa05b81cf833e0eded0b515a5c8369286f51713d8bc75f40e1b11811aa384932d195f683b22ec0fb5a6a8397c451c6641f36078c30d6d7c550259d1f7b5d1817d84614be8e16a10e45492b705173f42d93c1e5931756d7f25e03759481f86f76fb484bf28e80aa7828338993ebe3360a41106c581a37389a699567d36230e474bd0c843b884dd3904e3d291dd8338d55461b1bfe955aefbe200ef1cd306713a69134e65201b1c82686b427932599035c52bac2296501af8f4d123adf74dbeadf0a733c803bf50f25655c65413abaa410b16f18d1244e52df50afcec3a00a4b1d1819c5e438f8c3d909409083e5fd4121a52f8f2b8c5dc70a1d54d8a3f590e417a016dded1e2e894b5a477bbc3e17399d6202adf514116561b0eca372753f4424d6c669bdce7afb98f34d1c602511e41cff5a8ce1a3269e31b406ea105439213d2a39662086f114cb2d3b80ca79b85e50692e414d18be30d304ee236e3cb4cac5b91a4ac3181cdd7d427fae425848d16a514bd82824dd8e01e7f7b6841451cd0721de90e3b4642fadb0e87b2cdaa738fe5b3dc7b618623164e55ed75530b5860930f99fe9dcffa97b8a122bc124d38de6ce941d362ce71093380512eb77abb16e3cc99ae91201ebb18886308aa1291a7248e914369824dbe7935e2469099f6c9b8dfbf946d9b62ad56f9442372552d65f2897dcee2d5293c6c80ff50477871e444ea8a1f3b8d12886690d109cb492ab06b4c396f8a91229b3a08c05be477a44256511d36d68684d7d2af91ab0c20696d72183b299171b62d00be322a9e4004fdbd9a698603460f86abbdb2de81df7ca26a3b6b30f8eddbdf3f976e78c5b92080adca4ac5d6a3485a06caf356d9c561858f20c21494afc4069b77203babe4d0cb9745d8fd6713de4f4a63610ac1334829a4d9d04c7625f7784aa9df9cd7782828707d0c052f7ed408b96d52f5728bd747490de467a9a0b52d52c56b4f8229e5dabec1db18ceba7576991b0e88e0b9cfcdfc2aa871cd55954f2a535fc0f30970da25bb2d7e6026867c9cc0db9099e3f8f4480dcc09938ba95dbfacc8f04a948ae3cd34f879a41fb1f9bf170babe3c1b1fba54217c7b89ed466cf1d1b0294b165d27826ce3756cdea4f25682b94babb7c68a64c2815d0c62b1c39b7c5c1f162f73a1474cecdc623349106d2ce5a6ac9886a8babd339e12e86d3c5b5381e394c1abaa9c65cba6468b3f873d0db4e56483ca13fee3e0bfd8e50c21af37970391b482ead4594a07e353ea7070baf7114cd7d7ce020ba298200b1fb89ffb253a9582741ba8872c78a26a02165088afdefeb8a3feb6d82e6770f536832428939142f7391bc703ab9f9eca45b243e7c47562a31af5b89bdb463aaf30b71ebb18540546902337ee4ebd0c9394fd9c1e7099025250a5060e8da243f05b23331dc8b991a31ae43fa0f3eaf76df09a248c0860a001c606bd411c31be270d0c80c7da09bd598018c22e544325e32ada9a2d3ccbc35dc1aa4b32c46581f127d1d9c7e142ccc98fc8249a403bdb8792b59b07622f61fc5c47d64c870aab0c75b012d20793bb13b60fc20dab84a10f9a13d2aa594d8d275564bdbd79a5901be5a0dc5a78c8edf3ebc4e716a78bf347b86d89cca78011fb6f3e5e82d3d4e6c301f1498d843030b696c3774a28f42b15c5dfb91c5f86d38ae82c0a5ddd8540efb6c2f18d08c5efa5c170e76782fe5908df90f3dbcb8145131d8f421c3c907eb3f4f14b7ffb152475309be1379a609d719bb5593954dcb77a521e969720f657b8a6dc0a51eb5959484343f435f2a872336734cc98cf57de632e14997fa70222b191800258044c604d2d3fef4085a61216661aecb386be1cb892a99edf58fe8473485984a18c1f656202fe1fd6d49f830e341e39fedd270e16f69971c193623224ab390bfda6dafa6a1f8ee7feff10e9ba5ecb57f5e86de6e0ea7186d3be467dba5784c1551ec21f5f9ef84c90b0b75ac92aad8c43dc6377a83f6c26ead4f295638f6ea74aa775d4568deaeaa9a8ecf6e320cf1be9dd351dcf93e0bdb31fe8695e1a8db2acdbba0d7355e537050b5ba20eca64a107413064948f431282f97b7c435588ea9fe1d457e78d4b4beebdc9b2c8e909871fca161d2ef6585f6a012e4f42ec0a7ae62593fab6cbef9aa918291f21ab283f98912c20dec3023e2d949935b9c27d529a30fe61189eed7108f32ffb35f359b15035919ee27d35f06a0eb0667feb2353a4553c0635839f02d07150ccd3c1644119e2f7634dfdbc122c41854adbc056f1a074f60eea10e87b2e1cb3296b21f3380f515c9c10b1d09034af2380f93e3bdc7784a918595a477954d914e2fe111c3e695fef5d9591481065474d3a2156a223b2e288d3222476c0474677520b7ed4ab362e9f7088a3526790944c1d008878c3f1d471162a3967fc1a3921bc5df2d6dbc01c74ebffc83a657481477155267e296e75a89b8aae7ea627e02a2a67a6acbe235baa5a495a2010cea9de56b47fa541756be14ff02d1f78791ba35e3797393847278cf00dd0a2434a1d9aadc82e106e7d0b8af4052db538d760abe97a328b648d025f6665148471be668468dc5a0c786fd1494a78900071bf25acc49166ccf1b2cf0785ec734504ab7ed10064cecfc2021c1dc65d92c09d1dfa1f6551a76d703e2e5d57aad1fa1107ab2f09e811710a3d598333a4a0a8d981a5a6b6d613629f653c50bdeb98b18836f2ff05950d664e8549f8c9a6d4b01e4b723883b20bb9dc13736900613626c41e628cfca0f58b3a6eb71688fcc8ad8eeafd0fc822016ab036865e09c4db9b4fbb6a723bdaff3a0276360c42716d7ec4c0fac3c148e8c86092b4989335bd641da0032a44ad148dabf6b976b2978e73f25eb9fe9d38645d36818b1cac9edfee75504f772d1d47aa2170b3871e3232af09baa52c2461409585c3bf0675844a0b742c060c9434291079fe4457fb6425ac01e6c13d5b5bc9a88e7723a502dde4a058ea19c9feef5b6a6c044cb04cab7393b74838a0d8a4b8f88345d14ccd10b09202fee5af43e62311010ca016f92d1f2882eadd337febbdf67057be6213f42cbb671dcd20c7062dc69379faf41100401a1bab7e8ff294727aba11ddc370b96fba04ae984cb90b1400b669b40950a793859109969e3103227eef506c0fb8b3fda28d7d4d4aeb112934b0d0cbc224fe1b712dc3ccf354085f5d431995b20f360e0d6df10ad4a28345daaf0818ec6a2bdbbca1711c6da79975d91525b94926255a6215346f6786133be003a7b60fa8482edad4338b6ab9fba04d21d1f27c72852b8193bfcdc304d5245e50f46d3c9ff2f3f1d1213f4e3244c9f8179dbd93a15b45bdde26056bdbbd05dcb86066aa42e9f67265d5d7d6f3960062a1b87163b54e9a77a15297cc2903253cf61a7b1eae8f04519b660b05961fca01fabe92afb8c8bf95f71cb1aa8a055ac7fd160fdb5e81f5d96c5311df1c0d8b124335d5cb081cf29734d04a431a6b54df0c45156326dbe4465db2931e87abd66306851a96a99210e18b0a0406086c5d836e4050a906620f5cd0872e819e0f03516f971a2b6e5d0e78f82a16b6c6ca7f831c3f14280ca3d9d869aaf7b5a4c99b8afa2d26816188a16b9188981280193204394d0cebd21c7d8de6a51ea877c26ab59cc4770bffa72fe50bec1fea0f6435e41048a786f52ac68b1052dcd65f7173bd9bee0c8e79607868b1244efe48dbb397806bb460570c40d78bc664694aae7a002623988e530fddcf6680de9363b013c4100a5e10b364a785b1e816fbdd61a8fec2f026474a3f435d36c61960db16cfaac929d0578a21c09abebad808034d1313b291e0d1941fdee5f0b99b65f227924e2ed9ea94cd3a99367409000977989fb55f0db11517d7fa3dda4854a0301cbf1958282e0b1c20154a19477a97c6dc9e4f2a225fadbd8265eb9be076d11ddfe1660b9b00990f44a55755b8c4f36e65d2da0b1b42d8be3f34678d81518bcb4a7be6b16148a1978ab68c85940089e2e6a22252a3ce5ec359cc45d63b6611ffac733cfbcf155564b5c83730c2af121e263e85c1f920834966142095df6126490e881d9bac5a8881aea4b15d5cd48e9c2a72c327408a53f8464adcb37a3f9d731c89c7472481b0913df18733253116e88e0917e5b5a97a2b5d9cc0cc3a105243d90d247f594e857d75564e5bb9fd145f845daa16235be3298c01a23f7db175d6eee0c6748ece9fd921236b8cf81e4bfba21b2b137bddb288fcf8ce838a62bc4ffd9a6451a60827692ba5d679f27ede83d01b3b2162760e721f117d3af6e34e3c74c1abd1f11c24a13b30b19bc6171a3900a2135f3d0bfb165ef087119172b691174efba4a5d21d3f589c189e7052e9367ad378e5beff4208b0460ac87e038b822fa9c89e23dc114cb82ea418f87bd89d494b70d5e36b329ccadc92e9e4270299f51980f0147b5290e8fd07343e6f1bbba0a7b270ff8d05d652f07c940e1e55448c269b00a38ed056018df231fbc567c18e119df5b8a07ebf2c7287fa7120133c075fb5b0ae2872854cc5c0c2c44657e862c3b3a8a9ea7e2943ebd361da9f8f92a864d0dc212682342ac5ca6d7f955e5c1bf9c78b43a2ab116b947d229c1d50dc25fdc8e59d075b9ebd6beb3c965e76cfb0c9028e8235e285be8aa49f821b58198b7562d4068ce70051b9b28d1240921b03f28d764bfe3880d8eec6f9b32171a2c4d272474f573424d105f0ad46c00d88a230f41312ec4f4a8e64dc8a42db17bef404b57f56faf4689b8ca58f535834c4bc1972a666aa95606c4408e1283d8bb1b7b6a0546cc87646fbd2935e59e8e6c3e614dbefc0fec3f6579471ce486454197934cad62ff870246bb66b631e5bf37c2162a390acfc366526ff94e7a6284c6f72ad49a749fb8511e24dc9b8bc774e62a277b9804315196c202f26b470980df52d3d37299d82c640b96660c6eb07e412c6f78b40bd67fcc5c6306f52c1d4072918024599ae49526411e6a2f9d8fbc08ed623c53d82e572b318bbb4130846b812c050bb68a915eddfd4c77a287c468ce230534009a5dd1670bbe046387d47f7213032c6fb5fff91de601cff0115292cc9bbc59979e87f77ba843ac6abffd46190f1947e5bda454b65a3fb1739830febe37082c1e22e34b617d0d635cc7934158680c33f0023c81270de86b53f263779bfdd1e05779b306a11c7eaf6a4194755badb24cf3d61a0807b63b7f0ee86b0f7d08440c4f6478e77a7fb48852c3cfbd455a5a05eb2246c7ca994557cb0aa9cb73d8c53d87c7b73cd80820a3d335bf03124de8c55dec07fbff09530accc511925f8cda5cf82823aa72c3c0f4931dc91e94ce2e2ecc2b5593366011be134b04dc203ab2b3c04d0a627ab0b1938474fc181e60720e37f07a80c4a7983eadf0bce1fed81dbc9b618e7ab1c5a06aefc837c8801828734cc166a8b1558b2407f0667bc106383bea8f8880c43759af212d2888bfc74f59c001bff0d30b2e2f6c3e9d39ad56411156fa2f11533aab08f30ed770b59ff96b5837c0ac0643329ed5e80cef327ab65fef0b074acc9c0b9fd5b7f81f9029cae04d257039b9749241acbfc76b2005d46376db85cae070e8a64e6226a329c939b351804e94c9929abb1d32c6645760cc7aad6cd19f83f6f61b4f2ca0ead4be06399039d928b12dba300b16e82ba114f4d772750eecfd60db8488595772a873e929108054208de7289f5a39d9bbec1a01ef592a758da3fb1d8f7882844a668b24d5a40c1e96a74abd849bcbfa8af1486cae883484bbfe0c2f57819e618c1192c8f0967af7e46d1ab34186b5de4636ee9abb8c8fc602b41be94484e064211aacf2168d24a3ebd8396590e1a8dd552a022b976121314544e03150710e115e6dc4e1de49810b4371b508444702e4c01d88dafb5c0bf0252836f2da3652721e1e50e2471840826177b060c8c7d0c2ad259ce88a0c7f4a810d3fee19b25337fc6b82a010a6beb611e3da941881781059591069f1b07bcabcbe6afa841db2e4bffa0d14fd1ffd82c044f546cdcb7685dc6dad3ea637551c165b30a0185000b5e503b7f077264d54881dd1dc39e48ed74e5835398d02928f12ceba76b3a860a18a3baeb24a80acd0aac150cf53d8125870bb578d4885d3e13b281f3703974efe62b0e4141d2a64b28d8629d5d26ec3fbd7499b8ce18480213ca825fce935c6ad3dc387ea5b5d41cd240ae856b352841a1de3a7649666a62d6642b7f276b3443ed3dee2205033f5e5558256c0db0c0ae761c41a5c91c77420f519f2f7305948ace7f8a407bc1d6c7f0e1f0e673f6dbc88417c1b071755c5e92179cbd0d9b995f85e0f2126a1fd51a33a5a3f4e8f0f4117e2d81d96d54d0f87a7dd385a49bcb3ba68c91cc0759904cab4de8696e83b2d7c258e445b4e0d1c145e524a05e0b2e975ac202f51efc0e583df5566b3684d703e018fc586bf074d9f98852b1483239f1b021f2819f590b5c98c0566311c11d7fac0a0ec8790a206d0c419a2e243b01b3402069087d02068f203b030fb9382a2f209372487ef5facc623dbc756baf28eaced1e1acbdb4c4896de3282c9b5a526ba77ebd032f7f2ad463c11156cd1a7401389691b5195732d36895472d10a5ba09de88280128e9fab09d9e548a40ee6c1c605af45e4ef53440720fc6467e38c52c00ce100af7cc18d770481c20908f3ec99752f17295373c2cd4858dc7b9521045d6fcea5b33155216b21489263c564f0b863a22767731912630c41c24b442cba6cebed74ff442c1ee8940c1c6ebf0f01a8d7cf167b7edd8692e1eaa5b36770392a10768d616e92890a7ae9eff125d38c6d3adf5603a9593581e7b3428b8ff2c5c22b85eec3f679be862e81d408bd9f0acc9fad1698c0a661a41d93ae864eea0fa705cd69bda76b228e93216d1082671b151d0592cf4ef69e9e839e7ff1dc4d89e59a9c48e8d338df8e0e841976f9a15f65875c255b38b6e78427d2c47cc79015a02194609b5b6b75ac488c858baeb702b809f05a06b8f76e928c974ccf51dbd87f481c693ad7d8124f01395e34572b1461a36f98cda7c2bc4bbb5c9c0bc9b707687da1cf78ac7da987ab481981e2cdc4eee5846aa8be8bb6f9b916b0112eeb787a8af922f76f8ed75d6e59af34feae274dde544f34ec3868eae5394a3b628d712362cb3d60afa4e88df1f0cd6a0c1070fbd608c6c8d4081cb20c4ea0411409eba7192dabe92156d11aa6d075be895d903dbf8ad9ad49b4049df2651bca29f663d8b9dcb5921e43b9aa6f6ce0667edcd5a5f2462979cc69359eba96c77570b83bd72f15a6c128a87a3005e8e19d9cc8c11aea4d918f59e13f4ab4002ab42ccce8c886b8d03cbe89969b14e635e3b5e29bee5f3bebff29423940570cd614c90ad8b86ac549db6eec9ea847ef5c9acfc47b8b96dd7167b2ed32f1063a6f88b2176e0431c0ed03053e66871f1ac249241d775a773a9efb797a8613f08fd9cd7cf0d155a68bd93713e13c19c1506f709b59d767f71e7b57e86b8f71928b6280bf081f1e2354bb08ab9c9ef7a253a8be445fefa93de6bbe15a07602ffbc154d14a9db2612f34f0bfc43e984feb3f53f3f1b7c0795901534474d3026518a87080903b349e5ed1a9396497712f6707ebe5f91e19a0fb3e018a35caf0c8e393440ec25f7bb4dcbe574231db6931cdbe844d6c8db43401199b897109c5413cac9f7ca12ebbb1d6a46a99ace28227156c5f7e83450f5971fd2be67c31be118f2776446c25814a19f9cfd548b2f151a233944a12104ca5d34fd33ae8712118517468c0051f6a1f4df4636a8b61118d0496e3f1c481dbc553438c7f56e968e6046401ae64f07e3cbc56aa2b229ce4b6b7118612da82417d87644083d9717684f36b77039b2efba3f009ee64232b4556c9bb5e760276e2c2dd4b3fad1baff9330cf00f8844bf475254c99cc39036a7d367e5b3054ba4d0705e3bc87e7179dc061860cf39dab28b0fa414732f71956e157e9731fc15ec40053a6bd228a2b2154271a00080143c2193ffa96876e1e2dbf890e5577e3f7a3b169da23951b476add84961a09f9dd9becbda54c294919a60762074c080f9984876c1ff2eb9f657ac839345fe321e704e06d08c07e3401b871514f5321d790603f9c8bfa51855c63ede7e3a2be5678e5a2dec7869db19f56c3b652f65bb1acca7ebf42d1a78142d90dc49bbd4c667fb63f89feb4fd097e290bc4f7c8764f5ffad377fa0c70a8aa7aaf7e295cefb31ac47bd46ff58b3fb64f3dacafe9f3be844a12743fed3d7b84e6be768ad7647a588bbe54bf244eaef6b47e4982aef6a4faa570b58fb1e945eb2c94d1c3ceb240a333650391bb20a8f8845df1474fd0784591888fdd0d032ed41d856229704d7c9a0b639f9116a865680bbf3e884514827788961e06c497ded40687d20bb34c31c1fda88a859884d36eae789ee7fcaa8077e3c7aead0e1a3b3e3f64cb82a7338587c418638ca30a489cdbee10a83b2808892390e88e4131c80a8eb403ceee5793347e41ffd801e19934dbc717f98f0d4d6621d7cc971e83d8e5ee1fe38f3c22e1993737fdb396b0fde7ac5104f1c83ffe28babfe497d2e5779531e8c62f17c61d0fbc31c8bd23f4ea7de34b9cf7123e9a95a0d1b8d815a5fce9b2bf41a7b46e6fb02b3ecd6c91114e2cf1f9853166496290bd4076e7c7c2f50fba5fe423620e1e4622e688dfaf2506dd2497638510c2675716bb8a1166fcbc287f9cc2418e08bfbe7889e49c50407e53a94ac427f51fec9242e462273f2a89513ac7fb947c2e8ec2ac10e58bd7f45149a4d23d92ee3f7a47dd7fab3b1a3d9413ef4869913c0da87a563deb39558d4a5815090c83845facade361591d1409bfe295b2c2d8c52f537bb427e8fc0f0ac54e66402ea5659db0bddc1e5e0870bfb23b56c83e65e17b32e6403ff848f8857a11144151dc8192b287349f46e5768f7ce0bf3fb4d4d3b2fbe3df962ba5ee964626fc12d9516a84eabc159420f94ebedb0e026524352a6117c71564fd46a847b202bf94f00bc2aeaaeaca2fea352aa8e83f4ac4a74455b8d0bd02f9d580fff86b3f6bece0537ea19eff6451557bcf9f0581f881ece3431d589b68f526d508040c43630bacfef95c0afcda80fbf04bd41d8fc8816c3e2768c0ef8f5b2d88f247ee45613b3d30caf04bd401e217c3a123b09d14d8c56e7dd8c55d5e4c1ac62cf45128b4621e25413f180649e7d02941d74b0ef7a31a95cc372f071ca4e1873654e6c22c2b30e37edf01081fd6108b5f047ae75020469f142a03febe912f2ab0e27e364dbc064e24e2769afad2c6ff440fedb3cb25128966a6d977c1ed3ff8a2e7a0084217c759977d0865f5eaaaf5ec82b20c0ee6a070a5f9282234ba817e3066241261971158c48d1029c236b2fdbcadedef58115c6eec7bb79fcb06ca20b48ff5f371e366802b6baefcaf5ef99fcc95d2af9457de6f9385cdfef13ecb977245bb519d417cf8880fb5110b3109bb8fa069dafe8deff2eb0ceb8bf6bba6ab3ebb223f0dbb624673a1f5600d7cb6f1bf7e8f341d04fa7dbbc280cf4373bfbf1ce1d35c18af7ee085976ce25368df0a073b1e0c6c8f81d163400461dda91740a2c4abe847226b02c4c17f610e7e8eefa808bbf87d075ae202e37cb350b487316741591a93fbc530b9237669444636deb9f5f670b39fa460e87c186f160671307caa44c91dd501281189ea6773453faa95dead7e43602d7fab2c9f25bf108cf96d70d81567675e3848d30f7598d556d3e14abb2642a11d3e5c37b827e301fd9e7614a2f32ffcf8ad5671f63bbb1848ded61a0adacfd1db6aece2629d23d2819452cac3ea619c8571fe95ea371d55853a31a89385b97155bd89aa0bbfe8f3735cf08bf42cf2418b08b4e47059ebe1b286c3e5cf8c10bb4388afcc0cc8a3f4da0d5a0c433350192e7771e1720b3ffa9a9ebf0c7589a55c728a51ec5978b23176fda6a69452ce9879e8f35ba294d2d7d8451b0c7f87e17725f3f9e95366c8330b63b2255a3bd65e3a6e25935516dd68a2c1c5503c1222c2f83e9d137522112f638c12be4f0af123137ee544120c159112e6c6381445845f6e841548165f60121a30e6f13bfab0d5d805bbc0a7d25ab8196eacf945222ebfdcae484d4a8c512ecb4b23660985572ebcfc914a3c837bd1fe870d6192182580a5074bf8f3472b5c1163b476e58a48881f382bf4e386c6a8c259a15f3674bf5310cf1855e4e90bee48d65950d313ad7ed9d0d56cfecbb47047e91a02fce74d6efce73cd0fcd73112feeb2f03f89fb1b91f5f1bb1f5d17eadcaba3478d4aa3216764dabae6e6bd4aa295110ad8aca46adea5d4e1bc1eaccd75ac2db9a806fd5d325409df280a803bbe646e5e14e6929a09b32d3d4a84342cd9e6454683c9749e17919f63a7fef33ecf93952c773ad0e0abb355ed8c1743a98bcfc1c1376261fc78474590f79f8e587acf6012b0ae43104e4719f3f1302f6d079fe8c087e99d097df840aa14e8530c7cdc18d0f1302be607cf961558c1ba3401eb1c36454b2273415ea9050075015505bad87fdcc73311dcf8cd5d17a18cfd478bfc60b1bb5bc990a6b5528fe0af0126a269400f8446b55932aeb920d654fb2281db36a303dd45d6c322d37cac8f8e0d18363d2a3f2e0f133efe3b952c7e3c3eaa03c783c8c7d90ba1e787994d1834716f4a5bd8c5ab5741190b36347cdc9f99947c073a68e07015607cdc979182380e6ecc8b1826b52cf6068a2d05694d1c8c308ddf8c2d1815375e8f8997f3d77ea785e5607d5a1e361fc2ae9d081d3aa2430613825970f60801b3006a837373ff30778ceeb780e6075d09b9b87f1014c37341fd66b64acdfdeedc6da4c5f7aae544d3572a4d18b764fea7e6c3f7ad2e8b751d6b284da4c5f626d9f6da612ca7ed956dab2de7eebad1ad99af49244bf54e577764baff12b7ee947fc9af9d2537eb5bef412f6b08939fa4ba577c8037e69f52afa25bbaaf3d3ee47535fb2df919b7aae54f23ccf54f23c53a9f59e6aa5be65fa61b2a514eb53d3965eb52ac54b6d620fd3b7ea557a53953087ea5b2ad5c7abfa1af6e33b3f764056df7a884279aa47adbef52d0bd9b552558738545fea8440681de250fdb40e71b02c6497ca963c6a4ba52a1f9eb05d7a4a99bef45ec9cb29bd4ceaf4f461e9f490fec8279148be7a53fd5cd7f4a5faf9dc5209f5d3847a1aad6b92a95eadde353d8a86ccab4cf3694c934ce5ead7baa54f55c82e94fd686e09fee988b72a7d773fe22dd90dc44bbf3ab53ff24924d277de73dc0941bd497642522921a93f59efb53759d47b0fe3542a954a310a850a92fad3a3aaca6a3ca5520da2faa1d21e452be9bdd3e9b952addca9b27ea8fef4a53fd96bfa24175ed89d2c2b88ea4f0f44f5492e8c83cc94fd92dc94a96aec327da96aec2a5dd609f3e953d34f5b1292fa91b20e7194fe641de2303daae4696fb2df11ef96be04635a23a94a5945bff95ced89f02be3d1c842e11e762c78a82bb2f5619ccd0adbb9424759683fa4694d1ac007342ecc22c5062dd287345f5472f9b5f9dd6de1cfc7e5702ee7dc4dccf1dc437e69efddda37914c347ab8b55831ce711c10fb0cc7b97fff1a373373137bf86bd6864663dc3577daf64bb242ffb4893dbe0fdc8edf4fba7e7d2327e36b2d1f8839fbc3d5b8893d3ea0263d5fd277fddac9959ad6dd764e4efe704ffa8e927bd257ada3edfabd75cbf2973f3d954cdb2f486bafd9a6110303b5f1f2bb0e88f66d7ffa493fd2ec4dcc316554f56dd8e73a20f17f346be39f086722addad1c77e1b93e3ba725dfd3ac926e688bfbdacfdb3ca9fa9ddd7a8f3611d37c92d6b7a1a16b6b2dfcaa4b21fa528eb711f4d27d835a3ae11653623c58c23c51b48218594da0f487e9a25d99ffef91a27a1fda2fc706ed43e760de0ec4dcc119f64bf18e713e11e3669c5d99bd8437b292f47fa98ff70eeec8070ff43b29fec848c2ee92949fb18fbe1dc91bd893d3891bd99736e35fb3870fb3f0ff46dbf59104e4e163a0949aea680158e9aa385ec4a72b5faf9d544f5d3be7f7692ab01f19df626e6687813479e448b2c0507693e5672a3c6af5945cf357bd1188b5e62f149148ab1cfe64acc39d1152afaec230071c4e74439b61aa3c41b381fcdf69ae8372e72b09bb1df0a77e651d52dac85f4ad0f6314ea6766faced41a0fbb1914eb6d789ee76536588ffa9bd883857ad809e16e669965b3eaeeceaaf5bf2477e661ec33d56451b5468dcfdea6468d6f27fccabec6cb8ea786d541fbcae5e2a846cd666a1784bb3731078aeb11bcf2f9b88e73dd3e0af53ead4f9dfe26f640cda0503731072a3ee99c188bb1df6ac68645a1deeb94519c887ec240340f77fadbc41ef0ba6d27ec9a32ffb593fb01e03d12deff93799f3f7a08735c1f80ff68eca7fa548d6f7d8c758ecbfa04c05a211b33f33ed656cbb21fdc72dd7e40727b4d7bff28d436ecb69ddec6bf154ad51818a8ca02c99bb2613f9c568d8181d6b0407c53ff0160b39fc70ec8cff67e53f64765bf784f9fda7ee63f2079553f633f9c3b49b0407cb76ffd276381f8aabe653f9777fe4dec71b23faa4fbdf7dc9d90b2373187672d105f96fd925cef4fafb23fdbcbdb9d1079377b134ff66b27d7ed4dcce1a6ace33179deab6abc51c9ac32af0222f3b1cef16159b7dfeaaadeab9b12adc5b0a34fe738d7cc8fadd4e9bd1f323f51357b95f669f7a3f73b427345afddc41ef066df4eb69f757b55fd925cd5b7ea97c26d3de7ddf98df895fa1feff99e7ed6ec4fd3a25ef570ce39e79c8f4a7d0fbb7c7b51bc3e7dfaf4e9ce929949f936e76b2258ab6a147dab7edb6ba21ff36954a0b95df402ef8b6aaf71dff1709f1980b25aa2dfb69799df9acf1ab57ebe7f36f3367eb35f8d771b63ec6afdb4f10bcdf577fbe33deabd9f7e7af78464af7aef67fd68eedce636b7b9cd2d5359effde7f6a9fa79affd02665ee555076c3f3fc6aba9540a42dcb24eefaffaf9a8ca3a7df6286fa39e6759271b24859bc2f5dfbc276d33a84fd9181828ca0a99f9cdfeccbccafec8fcf65e3f943d427367a6f6b23b41f4db7b1744c6be05eacb7affcd7e36acd7b0407d5b0d68358065bf785b3febc7421704f5db735b456d732b72550df86ccb7e1f6800ca7a2afbf9e677ce2f407db7f718bbe29719e3f4c2ae081f707ad310cc7eaba657d52f5ed5a7ea97c24d7d773ca6e75a777bc8dedd46393ebfb1de0b22f3905d338faa5fbca8df6aeb5915f533f5835a5815f5aa8731cdddfec6f63eeef657528f92f91e76790fbb207db378bddf3ccfa773463faace35de43cf7b1bdeaa13226321bb4caecddeccfe98fe64b2a787754a55218cb337d5ed61e7d5b055e63f35630a000dbd5efdbf9efd8ed0c87cf6abf7e91a9635d34ad9ef69aeccaf32d19f4ebf0191b11f5f99a7f19ef728144a000020a1daff0f40a5a117f5a3d545bdad905dd57efff6a3b937aef73338d7fb968feb7dca7b9fae892f80325cfe67211b29ff3636383b7cd86c5ad8d86844984b6cdec66dd05410735d072f5a9061cb1029f04148059d0d4e182580429b389ac484c1c42517ce7bb80b373e431e7ca3d541fb2561d842031088c6c8be60d7a8e75bc2008104838b1fb6268ea085c66d36706468201045f9a14382b372039d543221384d023145c069720659091b8e309ac478176601e3cb1d5d98258c20530f2c30c59528a224f1a4092da4b8fc74f539743f7466ef17851ac7d96f7e36a786e3e3f26b96f932fccc427f1b12c2cef2a5072880c10d3880c1872e3abce5f2531c281c51b61b60952a4a6c804186a7db151894bcf62e1ad1db6c491959c0384373113c79218c2b2f8cb1692d0a83b329e1fa1759dcedba6f11a1a011ae133176f0020e4c60021dc8882289102e10a207239cb184062d8022ae9e6d520085137ee2c21f78810413347c01a34910a3a883963b812fa490a20a09c090520488e5a2201828ae0813831a9c3079a20a882596808aae1317c6aeb8428822ba58010bbaa0b2dc1e2e0071c5125280881501cbade9c287208680840d2538412c01e52b7702525e50832d59480122073af0a187022380a0041055ac3023062b53d810050882a862e8053f54e9818bc15d3482295c80810536fc20054d34d102108836ab59be1e71e0c4183cd80195218ed061211bd7855884e0c28db9104b10cad046d045bb476097ee320412a9045b70f9b99b7778c1f5774d66056638f172c546034ab121461e51071b60e1048902d0ca821c7280220b1d86f04119c5ccccdcddcd8c8311ae6fd15a312bd0a10a02306fc006b12a7698f28404456019b0c7cccc53bc5ceeee4e414d27050c0e2eb856cc2299688419ee2f6fb2c3cd756fe2448f551360cb163e2063062c96402206d4bbbbe18537be87c00a150d0428655431c21866e820062662dcddbbbb5d933dbb7d751ddeb043026ea022042a58bd0a5a8618a30466c4604b124b94e09430364071f9b511f556ada771ddb0298018556040c30c8ab0010918a48ae042c3922c68889960161ac8d8a20629aab0e10901fc033a0053c40fc020030b139d4f7bc1fde88addbddb2ef9d2c56526582e7791810497954586202e6670b2c50c3db8fc38fc5aed68660578b188209650b9ae91647041123cb0410d3f58a1a3e29d21ccdcddcdcc311081134397eb515c5f32c4edbee4be822fd7bbbbddfd85282e330c26b83c73991906a1cb595cce12430f9799358a4231edee6e61e8b20d2ebf36cae2421197c15c064110977370f98519601336ae24604b9b8e12babeed2a6ad72594d11dc65a0e7f8c9da459882ca9803949661881153260d103972b512811c302f990d9ca2ea2d056510a142ebcb8ee5d2871fd47fc325105a0e2141bb808411542e8a10c21c2e8808b33824c90862be5162fb84e035fd56ce1a2830e38d0102b42e7fb24eee7e2dcdd4570dddd210fc682c9954f7001001641787ec12c5da0b8f269e4bb7eb8f26ff00b0138fccac28a2bdf070cca85555cf93dfc8259b418c295425264c416ee2fbf420bf7d810b0f00208431c010c188e84efb8bb9427aebbd3c08a8b0639b8f28a2bb35cd1c495dfe297cc5dc164c20578bfa7c1121f24519432c5363bdbb29e56e4a035a7b0c05d475a81822a14d5512fccccf309fdfea1ceac428b29e8ea4ad716a70cae70897a1359176d0be59db38a2302408be0e5fad0105b7ce88108c40863c3183aec022e5209839f5fcbe42759ab622394f4de0fe73afcae892fe5db78c12c3f7294f04a4985935b008d5f7147eff08b5ffe10adbefc68093c9e1822a289214c81420b9defaf3ce27eae2be5dbf00b621143e84a1769a12ee96ea59452429d4c5277e9ee6ebfbadcdda594f27ed2bbb9687179c0788a26d1f54443f8715e209b13cee95e27470899237caeb19d40d84d46c31c54cb122ebd3b867b7e2812891876a2cd0929f24590dbc9ed2bd726e6e017c16e7ef95cbbbbb98dab40f1f2b06b1405fddec5af28ff657549c965f54b022bac2f908deac7c2951a949ae8b78736310714595185df09b98939e06b13d67622a58c10fad3b82284af411fc52d088e7b48f3c15119947f0405fd6c6033e4f16577fbed47abdf54a4dfe8a7a6f7b47adb764fcf75f763db509ffd86faec81a0b26d7626d36fa7379d7e55229d54bf9db64fbdc7d7abf1b22c2d7da71e9542499823f5ab2a530f53a9f7e748d5fbee80c423645965fd387df6596659414e9f3d905326843eeb49d57bd8994ca8df4caca7de0951fdd60521bde7598738509bb5f38478451f04eabdea595f7a8e544d26fb01b5eb24444d7f7a48df44dff47134020285b734daaaf6107ea36b325dd36bf0b5bdc9a69e23552d55a11394b4bd431eabdfb637fda9fe6c6f7a6eabdc1c79c7e31007fdd905916fb2a5379d40edb7fd064a4ffa5325fdc6435ad578bd8ec7fb110dbbbae3f11ec6df399ca51c773c47b8ef84a075051580eecff64746b7f5dfe8a260cc811a753cdedbb068ec4e4ff329ee7e94de74535c11aee96d55fa4d8992bbbd167bc0bba51ef55caaae50950e5128dca74ebf55d9fd283d6417eabf152ee472b8ef7eaed2704d53efd9d547a09fcded21b0a61fc626ace99fd4368c7d51c6fde028428ed9549eea613d3b1eefb96c65616cb5fa256179c763b2945ddb43676dcd7a1bfedbc3992fd9afc667d61af16ee94bf6e751bf55d356492790fe3485941ef53056a9ec77e4aa9e4bbde999fea9ce2f556a3299de543259169094a9bb20f05ba753f62708b320a937fd56bd3f55ef4b3583108749853b53476ef6a63b7fab24df9e1551cf71a5cf6ae94d75dbbc8bfae845a19e2b7dde3575424abf6db554f23c6f2b79de5612429f54aa9b893ee94959e94769cb4aa6971d0356bfbdec7a4a6fb2a8ef9ecb465b25bdec1c10efea67fdb6dfec11ef9a3efbee612764f526fbb3facdfe4455fd8e7859fd4af6887757d683446bc302f5f59f093386bb9ebd411cadf8341b8dbae78de6a6c8dd9bb947ac7536bffb06bbdadde3bf8dee9e479c9999e78da673ba673ee79c9333cf32e7a694c42bcf6eb87b3333571be76400bb66899a6edc7bd8059b33676666666666ff1a36e150e3ff20d489399c1b4208218cb0bd07c03d1b421f5cf811aa0071c0e93e99339e73cee9d9e4de7a6631c6d83dbfbb9d2b6436c22e38e79ccccccc36a6d70f36d1dd104298753b333373cdfd9823c7e9cdb033d687e4ba98db59764fcf76cccedcdd61845c159dc111d6c0ffdcd919fe65ed4bd7c0e7b87b464903251121a6a3ee3df29133b9fe530c2ec277f70e73e18f76748bda9db7ee66a16ebb653edd7fd4f138c7dc2c6a08218433dbba218cbce9c0aed1b2d61a42d80eb339bf6be05b77f7769ffd33421c4c1d42d816c2d83da3cf2c88c66e0d7661baf1409f50f1b6ab0bed19343efcfb516a639322e81c8410420821ec11b3c6cccc9eb9db8fe978dcdddd3df2e41b0321849063e49c717777f89ce2f6f6c994a431b7736c8e3472082d8cb00136ee0f7f3e6346ec8212b5cd6c6a59f61f8417e2809dfd9c73665b96f5dce6ecb9cd96de302d54a324db4c4943663627ac97b399f18c9a8c3615f64f86ccf69bdd1366a84dcba648d431db66776dd33550b2f78bc6b7b165704212bf9a217b37c786a6089f19d21ae3ee2ebdddbf7b92b8b2e436028d7fe15ff823888361fd11af0cc401ddf9b264c9f004210efe98188e453882bbce7bf41c3817cfa09851460e33a0428c293c84050764f4740e0cf3821b08510431b098c1153a3ec5f5f749815f3286032bd77421161c18c103a851eaad5ab0cbe2690edd7a5d935d88c5cb94fbd167225cae76c1a43bb9814e142ccb900959bab8bb7b33333373b34b17469e10135630c145936086cb3ff00e9a0c2e33333333eb2004eed423b4d3f34497e9a44c9a7c8650f0592226b32eb859820df508edf44011048550d62d5b761371f7273c7ae58b129444454ad9ddde504c31458c54f1e25574405d0425d9c5707634a1856be09034a1892e2b97eededed4473238836be00b35b49c724ad9dddd2d654684e91cce0e27c0b8bbbbbb7bbbf41e8ca468a7c7842a4cbc08598965f164ca6ca7c704a12197dd3de710219f21147cc264edeede2e85d412d4deddddeeeeeedece39ce0e27a4cb989472666d420cc248b74134e7c62660e942641487c47c8650f031c14a14d9ddeeeeee194b6e6666ce4cb8f2849999b965cb6e6666666e6666eeee6e2b41506e3737911a44ec1b6c490db421423e4328f828f9d2759926bc6006910930d0e2a43361892623120cac03149377098c17273a5e8098ccccccd2a7f4e1945158ac4768a7070c295c038fd00163092957dd2da79c520ee96e695dbabb7b7777777bbb0e22284912ce8e307890613cf1e9d3dd468718e8f4981ea19d1e1bd8c0ddddddbd3de63ea4bdbbddddddbd5d12f942ea880819891531a285c8943a74918d62371892f205054829bb4f4b5073c2a08c38a12f98b8bb6baeb5770b3651174a42b00d89f90ca1e0e3051322d9cc62e505a91131122b62048c4f994315d99098cf100a3e5d04b9bb94339373a7a7064fdcddbdbbbbbbbd7b309243847c8650f0e9e28bbbbbbbb7cb213223c274d789b56cd9edeeeeeeeeeeeede2ea514de3b6c70767ca1a56ba44b29ab700cdbe9c101956c4ee93226a574e9eedddded748999c96ea1ee3066c0d1eeeede4e46cff66e15da891c9edc6e9d1a7c7177f721dddddded3dd43dc30fae4fe71d3924430204260ec161888ac669d1658915222e82b80dd6d343c58a481b22e4e3e34507548a182c624a444d882075b4503275b2e892e97461c224ca48878b2e5b705b2811b5ce1643cc43252e42593469315cc0c4740906051fa12584aeb8941b377babc09449afc24395272dbbbb3b04dcccccdcdddddddc362e008294351165a7092a52b694526e5605093433b9d323a50a4880c06c1b374ba02126d9437c8650f0011a224385980c7ca54a94cb40448a0c614602a402bb6243606251c9eaca112f6c32c264f0a59b89109994411309830b6aa0936d70762851862b7106652762e0836d2b72c4104c71a727084c078559c2cc3cc2f02376a029f1644789284b9c40411831ce85211a1762f981134a0613246f6983b3030b93295d4ac9af4419626b9c1d5dc8e841d4bcd313e46333c9d8c133198570768061c2460491cd49c510326ec860578642d05dc1d2c467080ab01d1ba1981159c860329dab74f1c119236f2b3c744b1f8019b9b4a2649a202644459b488409f264125ab678124fba3412425eba66a1a0a0ae819a134e7c409300e3c40e2d98829e703df84002199c1d543ca1220ac581d4c59452732d86ad7d8061e53d423b3d5c8ee0b2040581a8cb28b5d0d0931eb260311123b12246aa1022d283908cc7d84e154cdc77d0d20eeb21ca6a2856445b3149899551673d3d61a628cd213e3e4c94c446ed12b6d3b3b345cb48890e6ab4fbce14422dc840e34b0b43cc1934d999010f1405de8e14515a60e2b41345171c9e54011323a284365dc6707684e91ab884d4c594d26b28814bb3c7be90d2c9f61ea19d1e26d33f6a0291ec21423e4328f84841a5b97c3102ce9bc8909158112341dd444697bf60127b84767ab6c4ba065ef95da4886848e7882c11666626a2fd8848162fc2d0de42a5bb862427a0a20b1d6ac002053598c1652c534ed1a408ac0566c8500c0730a52bbe909ea092654808a7eb446c861acccc1c450d1e85138f028815141a4076b46c712d56502e4d909e38038a17b886fef042cbf6838803a020a874ec9ac862c9101104000000b3160000180c0887c482d1308c82346eee0114800d6aa83e5e603492c662518e83280a62108661204300210620648c424a61b100b311cb30a6b4532c382e8ee7ba2e6c48180cb7854589bef2d015fee385e09347efb4074240f103f347c3e11605fdd0f548b59166d9848fd34196cf64f82be51aff99c3942cf9b3bf3848de71cad2ab9e7eea2504c6c6cb14029715c0132a3f0256e8df3b800f78fac22e2c2d1e9b67306a9ec5c7e4fee9a2e1ef3f98a9c8aea16471d4eff2dd4e566ade7edef7d859ee433e1f8d75ac5b8847602b529a9729f2072d8bc93e1dd2da5d2b552ab4798ae16ecaad2ec1a9e35209e8e6bf47cc0224cb8b59ac5708b798004af6d6c0d67d18da8062af1aa9b596ef7012a9431b596a0da0cd89ac78ce589fef29a98be3622d6aa251c2a3c120ac45c4e0baef9d8a34a3bd2e39ccf0a104df3548825b83d01b85b3bfd33fdd9ac896282dfa579e5846e9b2a76347870cb9a6652541abf37888ca206b752bbe872f2d1da7de7a6154661e09b968f8ab5b63a9853228059f75f97c3637e0fd5092cfffd174e752ae4290e63e4e076c3601d6f33b85fa97cb42eeb59ebc5b2b63e03152c310288122bb9a7841163d90aee194b734e1292b06bdc6af9329e38adb71730996382d9555024dc60a5d0aebcd30a5a18be948c0e5b86c07fcdacf272a137275982f5c50c380394d864f45f15598ce1545ed5d6957cbb1dffe59f54fbdf217bcb0bea9849fa5758ad6899cd73b68765436a3ed5b4a057b3a3f0c9af085b56180de2430f1bc509d2f29d96b984f5a05e884ee7d7c51601a8af5b53ebd6f7a60173f029167746b0d53ab375f4d11d0c08deb3c8702c8e295e6162e681058ac97a6a0720e3bc14247b1f2c674ef730b211dd83ca89a984837b3c53f61f61b356563d920f21a257b0c41e589382c3d6b492e529a420f2766e1862e791d74ebcf1ca34a0cd9d10ac3e91426741349641f14903a2deca6cfc2bfa71bd8b370dfc9d2fb20964f5ba0fadfc800e9de65e92dbf0b364d505aadb79d9cf479fa9e5418b6290b1d6b89d888f5eb352065366d170b0cbcd9bbe57baf08072dbe4158ee7d14d15c44e657c5820ddb19935c55f6f0a7c1493d1c223e188001182573f73739ca5298284a4e7b006e27b9a797cfbda95f537fe7d64d8441fa0df35d24c5f22bcf400bf2f2d90be2fdf95e4ed1b960b06fb4cd69412d28e7c988a5b362d8ebe37bab7ba140505f8187caa9c7abe089b57ba29d0eeb2c22378c44c0314db9d310a6de3f2c0a851a1b04360f6716f56b06f840b402d427c9084079c21c8eeb308a30ea2b2f2342908a1e4e505a1d00a834361d400d7591fc4232a87a75962a546b45d063f3c4714f7ce124294ce5c17b6a0ab743c782433eb758afec25a46a130cb8abd7df908845e87c1aed5e0d14c881533f0d69207fe4269d269cee11d4614a07b2378d5b024e89f57cf3144145d0cc51ff281cf7652ab078b801f26cf5131d3af04b0584987f4bc45976577e4141de3faef46e2cd5ad5599eaf8eda6b715d09a16dd68009b31b2a0f831fe49570274acb80628795677f019afebcaa59490d198bfd9affc4f4464fdd3dbe63c996b6c8803b47bf57c7cd8ae7c0acd7ab06283b1f5621063ba429c9245e182411d910e6395802e799c46ac07c649ab4ca6e9d39dfc7d0d5e6bcac80bf2c51e5839613b1abc72de15963afe180b9633a08a044677c0571371a0a8b83ec2a720cd3b750ec40891c2cc79b6d26d70904cbe1d86a0059ac3b637f6bb7385ee5ed8c689f9be587d8434601f735b524d3db0a475beb677fe49d87309d84bb6b9867bb9bb07873eaa452c6bc2f0c711da7bb4edb6dead1cd2387debccc17386573c49569a40d13c5d61ea0f8e4a90465bf80553ff1018f82f0fe4a67361520a45b109d1ff3569034dca85d66411d7e8fd5625c34845cb3abe204c886239114e5d276679bca26b77131b40436a61025ef3c1e82d7ddb7449d52fc9ed26308fd3da933d229fa43001d06bf4f534151a6cea84c8421581f4c310359e9a3e4cedaf4a68df493f2c46d69e9c05a08f3491d8a9aa4c1266ae0226c2dd57fe897a508a358c6018add14667ac8b0d2668eb6d60f690ce39f6959a220720329a9137668543d074cc9b0253053be5067e9babbb8b33095f04b8a48dccac0b79c6f5cee200d6f6fc9f09f269fc36be0bf7a67e4e8f71a03468bee107e749fdfa570d90a056b704eae2016902a95ea4e04a6e28aa2d5318c6baa81bf6c67be630a61b1e62aeadbf5a688048830355093799f8b387bdfe88ee93bc60efa08b9507418a3c25853b3e4e0e1d383af486d2995d6f437284886cd65e7df95967ce40a5643209e830b2e58b20c26c7a332f17efdc44744832e5fa027a71391ce441ee7bb58a536e1107c507e39b98eaf25f1ba5bbaba438daa767db9937e80b826d9c1919620d1309c6ff7114161f65acd0c2245b2eaa2171ac843a9ef27727db897fd5b58062fb2bff60c9a33f872525965f427a13418a24edb28e71ee4637311524904eb4ca87dd29ee25978df513d8313b2727b8c71d7a46629fa1025af1d977a7bf293b49c2a53a7de602cab1294c8c60b651b71301600b4094b211566e8f393295aefa9001d83ebdbaca348048ef67eff006ce7db7e600cb8cab1226f7365af6505208ad985995c7807251e12063d5d1a7045926b204582c84dc16be1134919a850642069621c1c0a650deb5207b00c19cf9fc53a54ea0d04822311db58a7b1bf5c47cf3acd17abad72b408e325a56436f0da0efb5b411f0edc1e9c5c56c1c032b03e56342bc18349a55f7eb49306c246ee8bfacf1754b2a585413dc3314bba31c315472bd4c076c799b5fd3aec803005331150ba86e1e626ad6921a7ab0a4d87780e56b1bfc3c6f926199a5bfc930feaba43a0b511b42c22deff29619a8eec9ba2d3570641463ee4295ed0ad947bd1157ded4a92f8673245e5e11bb77742b9b183c6af9b26c0c8d322ab0e39e1df499ed281f20f6c892faf5e2e268fdcd867497db5c97c9f78be3aaac1f2eb9ddaf4f2544519500a405ed82028a4a4bdcc5f894369dbbaea7b74fc7e32c3c2419780ca2cd190b571f1713876ff0678355fa18259e283774ef4d2fc891856f599d937c6f0343863d5366b1b5d1b8035252646a05b57c4ae786dffec14082d42976da6167fcaa6aa751f9d408060d302d66a01f37105540fbfefd5929739b0e3e4b14f3cf178e0209ae7076632cc66e0a7b77f804b9e7e6b12906ee092107a142f1af1eeb5df60cffc5de5d1d626f8e6d398b7420e938592efa69e26beb14a95e2e39e23d262159b62b3850efdba6b551090b301cf3d3f42b50ea173b58e7ce7a30d6229b6f588207e2a5e711aaabeb1c05de191c91dcb5deca68107d3ba13c0665b536c5dc018f1e36135f92c580b35bbda222c0993a3d6f0fc5767bf64b6ccaeda13111b3bcc993cd56ec395aa4d56c67c331b875e758f657169a6422d516182743f517ffb3a8baf6cd060e8ca22e3176a02271e9e9e953b57f1e535f444670bfc22a19279e7efb348215f980634237a2dc84cb76b60234e480097433ab1d675ed0f394d78afecae4961c1a35f0f153ff058164409fc6f588c48dd62771e8b306d4e710d7a7c9ac10cb58d0fb4d5258067b0a4c1009de74f4a1b4fece49b9a1781fb1f4a776bdb4c461a520cbff669404838a1602dc6d4dda10f606d501361b6fc8f9d71ced53c36241fdbb71b56aa65bb5f5ec579ced8e1ae0ca84ffdc4d28a4bada4371c0c2a651602eded161f483f2570228e50efb54da1809f1bb27000674ebf3b3fc5e192a65537bf2c3ec7d29ecb8bf30d434f32e47a4a5ca189b70818022c264e2ac9a01021297e713cc1bb2ff8817a70851e5539817b26851374b39f550a0cf7bdd8bc9da63205fc7642e99729c1ed0e1c69647b12d7d4f7c4e67f0020e8d62a840acba1fb42bb280b3b966c908b65bf312f7e7d3edaadfe48150f53acedcc086e2e8a79456d48e98b5a55e5b4f75dc117ddcc3b2eca71b57b14eebfd5d54ea0bdc0d791c364e9256dff10240d35d5d275280705e2e73a41c0917bef1e0577ce3f4db8a86205ff50497273287448185dc5c8908cb1b9fc20395c565895212c7b38ec9aa33752ece197cbeb29efe4d334590ce40fa69b640c08ca26be689ad28bf1496db199430bafb5ec4c5ec2b3b24f59311bbe0a0153ce685c33f5928021c24fcae522f37475768d72f212ae7dbb8a72768a2807fd375820521324298ac16167b190d0695182816a051e1d2f047b3e26769899272968007b39939139b2d34a103c6c88cbfbec621d4b4439dce3115ace1a39111eba0a6563100fba88530efce4a44e4ddc4a233847973df5b8f89e6182c02e6139a8a10149766c2ddfaaabb2cb90883a13a4b7d31501110055e8ae69be44c888b20313acff510ccad4818987f14dfafa94fad694bab0db3ef61782aaa11ef6d066b051dcd75c92012b9f7e32eb420a64b9f7ab128b8f57c89b73e947238a8e531664b3f23ee2cb1e77bf1e450068630a05676f721518c5ac4db065acf4b76731dbc9f124b14a1801e4baf4a5ca111a84cd657673b87629a9b0cb9772a6015829d9f77dba38e6419a9391ead0656c9e1a4912f5be1e21953002970083ab45b9f81af4b7e1e6e870676b91a345db380a791bcb10661ca4d177ed9eab6b1494f3360d5e33094166e148d728598cba626ca0cf68a9ce554b88a773880413d8af28c64e20ec4426b763ff067d3cdfd01d1a53172272934a24b49f8b8c6f399eb3b18376ca1f44599284378f3c2ee4f88086e123eb28ce48385b84a18654019bff1af78551f2f80321211dd720e005d7f1e98abf2ef9ee40512c53f9428f28e700e49f19ab3e51e1648043ec04f987a196a19c1da2c29410c649f4fecaa9462a6bc7d9d181ec61d4add385c9a6ac2b38a1155a14732b4a174f91a2829ca4ad2cf7d57dabff5ccc7fdb1190313b1f286269c0c9e9527b7c229b159a4a8b76471b1a6524193554139ac6d9590f9f8ce4e107cdcbd05e31b6bf3b9c6bf5e52e10f1dd868c82ae1413e36c3e67ba04968c3d68ec0892017c109708aaf9c7c3ef04cfcb710c8e495bde775f012976cf4209f74cc24897bc03ea99031c03489880460af4fe88788f0292038bff970009b8ee0b610c74a3a7c320fc363be3024cc20c9058dceb9b842b1d3d32cc069f44ee46d21f336db104ec775dd2885eac2becd4c320c6f9cb203c430befee1e113d00b739a085ed509d548c71e2086c151c424f97e4d8f1f0587085285b4409030cd321cc4feefdc087a06d138a04020e47cd7552c9ce075a82dead6aac4b76c5565158b07663fe71cf62acf8949e7c41eab2c1665e0d98bb842d7a97dac215ea58efaa4e80909db1305a459f0cc42691e00e5a7c465ac2842a4110607053b559a87ac170f6cef0d587ab11f494ad1e5c5cf05c6f1a40ad904701bbe5936606e0c63b5e8433088e7982f86f309bb5cd93450b225ef79be48fb774ada76464fe857a5de435ba55b59a9463baa36f986045b7ac6c2a6d9a070632b692de687ce1778ee2ac6888cf7b8872de16a607e55dbc0e543edceba6166300fa8f75a90c6b1cd8e1693801e952fdd10f883f5d21c2684a0c596e34514d0315d911da12e0fe13bc9863711978e2581b27bba52818749530621f15313a3654edbd98f89a2f2e208fadf2572437e2a7765e25a52c44c95294d9fbe232174a04df2929a854ecf921096426d9c8976756eaf6a76caf616494d876eb04f850d99189013f99e3a36e1a43a87d85061e9ce5bf069a657469dd480bf7157430e3a0cb3f07bf46045468d5df6d44ac5a5ace42d1ce1007aaae3b8708ad95df22cd3b8ee0501c84ecfbfc6eb70d8cc00b6967892c9cc820d9be9b1d5daf0d35c6b25f39bd0f3d50204fb12817ea8b15704c83f55addc546a35a81ece9bec86e68614adcd2d9bec0202da4e099511a1f70579a02840278f1732f5922b35add6d2bcc0eb7dd67c0946fa2fd466462780d0aa8439b2df557877657252f397c211ad8768a2f7ed2d12007f21db16515704e7da61fd9ce4127d36eb629405cadd8318be5b739c9cc249789f5356b62faaa4822c302476ca15f380cc570f714168a3004ad01e5bf734c65e6d530c09315c781a6838a3002acfa4491894e360db29020415509feca2902a7bc9b87e71c0180ba73639d8ce0b35910953dc5d77e63a8927aabc288f1320a3523c9d5aa96319244846c4e1a2c6d1eca61d02637cb0f8769d4be2ba32d261e6b712ccd9a582a470324f143abe9bf74a64cfc2b7abe7e1e35315edd9a620b75529e620b5a58ad8dcfae78d6747f82b681eb9f5fbdf3817422ed4248436e28a096768128f74aa15adf1cd049f8ba815b6ce30aa0c43bb0a8fa03c8bdf09e453f41e94ee5611d7925a3abdfdd7ee3f39e0a3daa47864e475b1c33d34999fd895799d294ee41dfabdd755cf09174590c817486c8edb4683d91ea42478d5327d29f4e9b58b814d3a077fd8c57a446bfde41407152e8c33ec090cb0f754a9b1807d121f0593cd622063c33e4776f7207042dc6e741f1a911fb3c0bc0caaeaa89b1a3b419e5d7ad83ebfdc650fc66d334ee2bc09643da482bc1affa19de956388facc81cf11e5b08017c363c930113ac940e0c289c6cef80dfed952486abe5b974f062793c9a7ed9bb9202b61eb6c1ad7380373cd3294473a4fbe3c12523fa650958f17ad066f1ded4e23766adeace721dd13dcead51a176652a1685539eb9154fcbde63b60d5f966a0ae79dee52a56ec82cd285881532b58282a558a4da89d45c5b3d6c52746631b93c965ceb6406a289974bb581049e1a060c9abcc423035685d19748d3b32712e445c2704ff81a9446c6f8173f4d047c7e61f0eebf205873653f20c0299c8f46d7534b5920a068b5b0d0d78ff2abfc03da1af403428a582e6be9dab8721584b5bcc127ca0c07642f00f48a0ac9f8125a23c7f2b50bdc1aa529461999cd61ca01ab372205d619c8d663f85532376609eca9a50a3c3ea3bc7d8e32bc624bce3558abe7948e8fc7beda78b62cc0721c935f02dcf37e0fcc0f9fc889d48519f82e2799eea13fe6cc0b6c46f03f17322f423b1418941313d44cb3928380fa3da1dfab6a1b82c70789ca7f51b52bea7c7319fd6d937022a5c53f5748666a7edd8f077690370454505f3316a3458cdf984f378968728a241ab439dc439751c220f2f98181f6acd24a520696d6c4e209c7aa5c2807d031b96521cf8ec7db13c97053d77a72cbfb106c228aa3bc1310327f1aa33886d205fa2b316f9c2e527826f4801bfebba779d4477afa95600dc9fd27de18eefacbba46a18894339007ffe0985a4d670fbe40d1db11ad009cde27945d5066d0c03e497f073d8765964359314f01750d226860f70bb1a7d5a1226a90062a3ee83b03a98b7dfb3263882341f59d3cd2e0e132bc34c35b426b1b1737f024a7b2090c1135120cff06656642f6cbbe96808b36299dbb83d9df959c94774d304db18bbf80ba3c746241c433dff5c83e60d5978b59c2a61373f2542d83fff1ea8dfb81e9f8fc12bd1de9131fc5479498762769f468354cb39eecfb5e126a291fb46884344d6a24bb3277af079535f6399d22e61ffc6364fca4e8d4017132d373371b5504dde810978f8ff30c70980336b655865642c0ac06837cfea5534aed4105568995d56837c5730ba22ef3cafa1b3d034b8f21d5be7ea2220673e4ee6815a9d6906a2bc187dc034b244b43c9207bee38f791e445e5ce20a7155a1a47e10e628b08c2f6c2e325f030d9113529dd4e330d03f1f787742f5f8a7bc8b26e54ba738ca5a1b470f819963ccc4bc011fd15e3ba5a351832a7c2ce536a534d54f819b4278442fdc2d04c5ec57219a967434a9d3b16efe601739abb55a382fd85d624c7ca8f238745a6fc33e535254520ed45e9ebbc3f0a25cd3360d3e69e488ef7e057fddad52c3be8bb75c2a6687d3de7e52189487166cbcd4bf3c5519ba9c3413709f1473ab986ec7a0bbb4647dd3cc4837cba680346862378dbf69a2318a9f411c2b4ec930c2a992ab105077ce3d62690a176a2fb665b40a6af376a7565f75db8e2dc12e65d92452f30e31ce95aa775fe8a02168e1f2311416553382de95fac0e596b997d0b754de8705918026349ff29e15143a1b7d0b7c676b3ce3075e5c865eb104d1e267e0e0d3657f3d0ca5b3d12cb6bd2c24e202fd11db425f71649e5a3e55aa6b71472354a40af349461984142f49d96cd23e878f8adde7f29b058b9112ec5d3fd076ecb7e56e908fba4f89d55907ab3295d9466ec5341ab27f01bb6c579f9889c92c9c3fc76ff16e443426c0a99fe0dc39ec7adb70541447764751862bc065ac0c807c1816d6770ade34c4209ea550d6f589a7895f99c1f02206af34cdfca9c19370fb02e5ac145c6c11c673576883c96fe7c45bf9a581b824e4eaa527db88c462cec3ad52ee2a955c8652aad4e3d14dde0b89b3a09869112c59b4778130dc6413869ef138ef41de60f58daa193cf53885c2862ca61b00cf733a3c44d4909f22e5b8fa34cc82586085efecb7d9a5145d1b43a106174282021d79b6791eecfcec5e30705c4f56820233edad23fcafacc60c1f8485bb6f40fa4d80eda8f63caa40302c8fd41cb290baaf4a7e5c7c82dfff4bee252827de8af724b61671e0f4d7eab34ea9b2b2e767865642f268011651ed0560d8b4378b3f0b159aae860728f589927fa7fde16552550b8cef0cf9ede55c896e4a70e16896b0234afe2b3a678b15c51717a3e5a11ef0ab159f0aed733b90060ed972fa3f6796e871e4d7c81485f227ab007a495b107aa3e35b72f02b97fc141fce268fe28bf4a650e8ce1e7a39f763cac2d2d5f4c739eb8e3e5e867386d036832244be1778e17003a14c69660f0480b904433ecca8a1eb788f700be2bbb249724d8b23d2fbb1c4db5b674d47936c43de860975a122bf9ba134d9ee9a6684a71e9a9f00f7956d119c6a5f8b530539a2cd9c62b76ed23a596e9acac9f1bebc0118d7224ce40703b48508ecb6aaa099905022c87dfce89c929f7f9c1815ed2009addca12dfe5cb48edd74b4d746a2272cdc058e215e3dc7954aea4811a53ca82e4dbc51f5db4bdae3072b760595c4ca25beaf2eac178b63b91a160f72d95e2b3a0fe9d60a24ca45db278316c5272cdb120e2e6229fbec0dfd9c1fb14fa125ad85751fe8e62bf147d8e0fe0ac7fd25ac1e001e614ff7df1ca9106791df15fa74d17c2df55c79633d6941d3e05582113e3f0949d381f43dae93fb21b2dba6970ee5e33ffda7b1aea09eb53af4fd969454b92f8e39be55cc1c1012618c39ff9b99c669fbcc6fba5db0d06d22506159a920fb266ccc66959f5733a7b2275e8d7dd5da20a65c977fb46114a4f5a24a11096118586c802db57ea8ce3bfc00ea792a15e21528d3d8b374cc8157052acb79b7928d3782149a8c0a875f19df26772405e48af2d509d981d0639990ac8725c9709ea21ace28293a980aa730a7bf948c9c02375fd86654e777ac1028ebba7a0a5356253140ce1feb4ed9a79701562685b66a1e9757e93adbdb0b4e659fe84445868213157f70ba2f3f62fc2e73f852c396d3f04fdf558f2e4c3b37139a1842232da22774839e28f3f9781bf5f0d989cd02ec0855c13c12e158b3a2a94c79cbb5774a58b456da4fa60de238142041fceedbacb4136582f7efc1ba57c0a73d0d1be65dac2e45ca776b5b4e493d78813321a55ebbba333abbb346d45eebcf27401fcf00a514d587ad8da3529ec349fbcc370a35a983d0ff36ef3687b782fc99168acb7c08bfb35bc9a9b555c18b3fe3ca3281032b1110f2ca4b4e7f4048fbba60feefdc186d8700d7df2faf8038a111db6aec0a036382a161ee1a0b1a9594c5a2b3ec2998f0f5e133740e5fb8baa39baf8d7f60d7fb3aac2e06ed03e9670b77c4ab70eac7c4b81415ad109f077c3235985d8fa02fdf781f0a691fc5378521c8d67e1c3159690a1511001ca4d98ba2aba743d43659c88f2bd6040f87ae83fccf63baf2d1d645713234ad5f4fd4999af43cfc16081110c1b0595d4350f84415a745d2c13c93caebd86d6e1e3c8029c2172c8ce38a33f8f183ead7263072e0625e585c95096044869824aed90e21e22be6ebb4e1fff6cd6f5bf3c10cb5532a620565840d0cd55c204714ce5c8ea49f5d25a73541c26e0c9f306100a05290a7c10ed20e36d9e1e2c449058564853a8a459f3cf7ab62faeb1f3233b03abf22fc495c205a9fade2f8106fd773231231cf0aa01f8946961bf330a21a69a03a3bf1fa55c4681d6c0495ef577c39dab16a81a902091b38848f0b193e4524148c66d7f3d092d8375ee8483febe2b74a2ba62b143ffb9acc130d419c1280481db1616db5dc1044db086debd57c291fe2288bf90477650c5a6007337b394e07d59da5c527d5402456832b59a9492db564f949148d448d02735ea367f16d0542debda2092c0605b350a2db92fcb70379a7cf22a8c492afdacd0931ae214056a2c3498d8376a71767335c85f1947b6839c7aef976c6b2c08623ce1be0cc7785678f8a5ec09d0b9e4b0bb57ff9f14027b9561225814bcbbb906b57511a23fe74c797dabbc52d2150d421900c4c9d634ce58831dee2f8d53576e5d9963a90248e1763f9bac528df9f7487c4b81843ad81d7c51a62eee79369ef757460a0db3a342c5a186f6a5a0db6690aaa2e798c74f8e46a1776b46ef1becac952e2824849d822aa716ddb4906257eb5d90f8d2e0d2c690e96d172c174aee2fbd1b49efa4a61136aa95b5a22f9bd99c30bb228c950857929c1ee4ab467832ca43a543f2e760c3cccb7719ac6814c50de7fa11e22a533cd30e70af5e8e5932af0f9d2f877eab9ae28f14f832b3bc57610989bec5702d087d8780b7edfe0b6f38ef9c2d192a75586d45a30ac0421551dd777ac8c5d8d58ee1133e6c3cca6b83436b0236831c6b36489c894bf97711b04f228f1bb76905189839f6288dd541be8cdd22c9c105490b6b67366c4c41051ca6143b334ac3907c374ab32e4e30a956031378e602de1bddce5f2eedc59bc95ba590cfb24e4a8ad2048fe44f85a416ace7ff140845680454d1d10f8f55d613033dc29aafb67e88f1095fc16acc5283db04f87c213056a731768e9bc189693c6ab17e5870f4f1e4754342f7a8c674141209981c653d7930c637349a8d01079c17420216a42fe5094126acf3ae6eb86e9ffaee61210129d1119cfbbc2dfcfab0ee3c286872002538f45827ca5d7b1bf1bbab1736541a013e15b6f1a34a90c6dbb20d089df2ad76987277531f749686561306fe52a26d0120c6e4b65360c8621dc6a11e2cdc4235a7cf2994933e81842e20b0137394491078decdb32a7ef15b60046a112ff4ba5e293912962946aee100a1c5292ec9a2fade2d2323d251c8b70658e366ccf2058c1c582ac76fe06e68fa3fe75368e36329ddbd6e843967e45caa3b4bab8eb67a48b825a0b65b5689d1835c3b3c6e6cfa06129b19594f2352f2456e6c698cd06fa29afd1b3440dd595cb6513aac5ba3ecf94715e56cf456ee3dfcd96ab2105adc88ec132411922b2e7c5166317ec9f11d70c84a2fd9e97a4dd5ceb2f8d08c6d634f53586f145d632773d75c0b95a4c83772afc13e4889f6e0b8ffb5fc5f663275db944aa463217a0ec9552d788c509e028f6da3ac8449d868640b80ba9c52dca3fa90c28023377d03ccd1862003ff2a61e9bfc5744161940769c7a5dbd0345647cf7efe83450225f60944cded96bc51b23c377cbe84f7a6a9a2fecc5dd17d1811e9d20ecfd53127731aa99308f0c2955acd628aa163ec884758746450a71980a59903d73dd49da6ab14fda60ccd54ab6205a6a74d3e9d7b28fb9fada911d30ff0da30e32a53635b663cfe522d28f98454f1423bdb66b26d61fcfe036ab81885746f3f0aa59d25ad194161a94861bf13d53d59e3a68352060b554a69035f3fdf643787f25c47b2af638947726fe80cebcb6a20d252c764545aa175fac03d8e27a24c7cc60490ebc94559aa7413188811109cc205b6fa4040fa5d20f338f98b03a72499b1e40b4ace3ce79df9a2231b23d808fd2097ef9f40ebf1c8fb40ca84669e4832e81badaa2b56b2a17c87a4380644dcfc736d7dc28a474a20cb412dee8cb813280dd4d615a1d79bc81fa833a56b90037469f8fd2b9b2e4455e3e76a62617f6d49ae9fc8a4891e9f7dceeb4b16b0a2d40658d364d1f9fd981f43dfa9eb6b2bbce7938099bdd888da90ba8a98fa5aa54043243a49faaced93894baa56e0478d50e794136d4ddc008a2f469dd6ebfc604489a6aea32bddd940e978d1ebaf2522511315bb49420b591083a80070c563ff9ad15ccc3fb89a3fae2ade074908ff99b9234a91dc202b4173cfc43ae5aa0d6a412dde10a43e23aafb27c6a84baa6f4c62f203be3900ed3f224a234cb9cccfb125598d4484b5bd3766b55f55282cc77842ceb28631de22c55feb94ae182d43860923546faad78889c5cd53ad6542564afd20b39ab500518fa16691d8ac9cc726ac46004ac01950c9b92e8a698401b8481e46b957e0854a3fa193ab15ff56dde004cbd529ea6aa37296e178298b50fd647e8cc9cdfe16bae09d6788fb3ec1940ad5194b141300948186e51d8125446f169f0db7960832936f6372c31e124c0467a039910408242404d7890fd1a8bad072c3fa0e1d91dc8305d2474a97ff77d40f21986de9182f001ed4a48b447266b32b57e681e7f2b4bbe05744a3854406d1dcce5f41dbed5263e1dfd149dc96b0ff7a4f78c669a1b882d2786ed82c7429034d910fa5448c5b935b9e11c19dfd85a41e8f534312431e6e5e7b6e7df981be296dd8b18f110ae85918099b2cca702659cfa970ce0774675e3e58c71a271bbf44a035e1f08615008fac3b71506fb6ce4d1706c222a7d5a718bac3472188b51dd131795d936a6a229dae66db395da350e62b6c99609c370bb8182e008d003a763ed730b9b8d7dc216c67dcdaa6400c798fe7589c042b2bd83de3648f7fc8f28ab59158c7e018d344fee00b82d7cd0ee62ed7543fe7678f2844d83199cef6868d85e29eaba36d3607dc892f33205d6428be626b51e64b82006eed88ed45f655df504c6386f490916d0e5fb38df8948d69c1dfefbda67764c3e031150bdea88ff52bc5cb14796537b7ff1d913332aca4da89ce772cfd6c3f9d4d57653fcefe7b29d8d4da6f432d4aced482d7b0e45ae8188a3eca9540e0a97cc442174f5ee5934c83ea0cb3d6f9431472ff0b206e093bda5223e1e29aebb90f767af111f60af3c5125b4e265582a316cd5c798f9b8e23692e754c2c7bf3b1bd7faec93858a7b5a17334cce99d3a61b9bf0e84fb0d71430680aa9698a2686aa67188c2625e00e2c53f0f534f0166afb07f57aec8abc113e4add39ffbf783854fba828958351f6e27d87077bddeb8808b2425433398e54f4135fa49e030df6836d285c2bb2684210889edc67222f2850db7506260ed9883712e426d8df0c2205b36ca07281144a3f55984db06cb2e49189ccbdedbc00540a5ec2249bde6f4922730b917cdf746ba548dd91b60913961042ab8d271f39e6b382f3f9c98b8464239d1e5a9f66b9efd94a94cb287e1204cae9c4a522525d8f39ae7f3cd3895a8f75c8e7dc7908574b0e59d4542d239d2b19bd660245cc5d122abd4c0dc55d24f3a922a7c8d74ac2cc9fc863b23b11f5b60700461e55573928b140de8351c99a3cb17fe03e573745f04076cded3f179042d2324e93ff2d44bda7f1f2217446e97e435d6f601a1549ec9f5e1b05cda419e518d148b66ab61b114f32073c6e39159c358dbb508c9e83eecace503882a868f174826fba24e0c8698928deadd0958191967014c2dbfe80c9bceccefc14173f05e27f13119d90f4ae9baf4a01e7606e13ceb9965eef8cd14b99d45cb8e8bc7c82dd33dab9569accfa5bef5be67de7c3f9abe22665b9ff9f7553a49e97c3f9f785e9304871e6c64fe5e014713c4e43fbccb391fdaef25ff4754c7b64b11b0468982cdf45f4cdef4546fd6b46b3b7dfed4b9a36789b99f1c51c802fb16d55f40b5aeecce8b95d49cae8c52d83b2c4fdbc7ae7c7d78f29883b24670be8b9d1f06d94cb54416c363f5b185dff601dc1a52a8a33be8a1ce7114368eaba9da3cb619d93e68b76000a2127c2fca59437defb1eacc60e7fc33e4a8e3e204806ea637a2f7d2fa8f48599dc3594c4e8345e4944cebbd33500ba5fa6c5a5b7582ad4a8e8f7c9dd283e135d1a9e51134123a868374533c4a2ecc74baa6786d914ee844e5d5f36aea51e63c369c17f7e49f7c1a74a748f74c36423726b21eb4063f1ce30ac5bbee678dbea2f6234197584646a09f0004f8cca567a263df2edf5640ec0d963379ed62f5563ccab9f47e1caab5afb6b2cccdf13e320f47a95c75f0939fdcef44c0195187eed0d7d204c38ac2fa2a81be191b17f90304d6af2ca68ef0d79c137ce9c9c3fe6a7a803360d578b795f0dbacd94c445bc30d3727939245d14a49140f8449238504ac033af4276cfd43e30c1222e62a1b308864dddbd9cc44be7f83da4d8788cc6eb3ffc3ad6e03840b749557933c21bbc0a8a490c73307a9bc714bc852caf11d67b130972c2c73d07a768adaef2dba5e83a50123d05e963db56ace9c4239461cad3000a9acba99c38e850381907e6598557b7af61af2c58dd3b2c3af08759a6b122725270e535d5690a5e2ea56b01c6c28fd224029abba2e278bb3d31fcb66653fd072b41569abb0b1d5ee331830074f1155da87bd4df6fc109670c3c58e73fac83026ef48d48f9f6070a3e59266f08a4ff16c8dcdcaa81cad628e8bea983430725f757686bd19cc73e2d483dd34d2c888fdb9580d3f67c753ea82e15368d7bbd62f28b56e4692336021d142878e0d1cf4cbf398138dbaf01f7d039b3f6f580285524729f49ac9718e9fdac0a93998b6d9cda554c7659d2c0bd57c220017f03470a078a569c94ede8b045b7e0ec4ef4515e0a78ae5e7e70e73613b6d0266d418b07180ef4042f8e2e6acacf1c1810002639d3671eb09a9504d22ecc5069f9118ce3cec8a1e9994bd2b7c3031753e59fcc29fa7cb1f29201c0957a70fdd32a1e2de3b604006a84cbbb6e59d04bb3e1149051bc2364068ade0c6ee559b2ba6e198561e9778015bcbcf421ca1fc35c488d56f226ebb6cb9a2c7f075b629c74a4272d1cc022ffb8f1fc789ab3fe1c84267db3515ca5efecc09f4b8b0a1c10b50ee573b065d9b1b1927de1542344cadfa73bb51837a94109c69191ae71997e1646d96dcc284096f96b0b829e443ceea4ac6e21e76ab673237abe000b40bebde09493b5a4e6d113fd0e060c0b45ebccd2d876314e76e8ea6271313cf8934961688e44fdf5ddde6a193cdefe4279c1f861c8914f364e4105a4903f009d5de99e871cf6088ea045b9f5e2112330537387388bddc64064e471b7de60c022556ac2657fba040bc549a706dafede4c1ce46e95bf5a132d47f9d1bd1f85c4cd5c239dd3ae973c2dfb9138092c6a8d29615c11e1520698330d0c499bc455bf1118861494ee2232b6724456386b5c84226c43c94ed39e31c863255ae2107bb77f2a7f9a012d2c08a914fa02b12aa2ee3651c0f6ee0bac12589a1b7650de2d63775c75dea4be7c1909a6534237f417d3ae872e43f1c364ffe8a55995ac934c9a784877eeae3da4b6b4878667e98f10a4462cbc9f6d043536d2094b0bafa843427d07b538a6a4620207efab69e4ac52b7196b7d52ab11199012a8c509fdf4545b277ce3b9466fc4c810d8b00465ab65965c894f7ac41b04c7dfa6a56eba043c30061d8a17c485a90990986b2a3b211d3743f1eff4cb107b69ddb584ce5fc392467ee414786ee84e48388cb488d8906ad47dc4dd6bb8c0e48cf57684bdf9d983fa161a81c030edd715a8cf41fd1a20ecd347ee820434a6969b29429fbc99ef8a0ef3e4898bc88377823929c367a6b6e98f38cbc58a08ab8f416ab8a31e83c96cce9335193f4742a0127dcebb0427cc7c8a069c97845894dea308ca39a46e1ef44f5c921a259f2a373c91eb0c8ae1782a3531c33678af2ccb557e3be9ec84dfaec7c9da54831b9b6b4aa685842323216bfd45cde24240560f034c48190ffa0722956ce350b3379b3ad370fc814293b7066591a40dca3f2c09b4c76295d5e7ea23ce20b5e0ff3dc143fb12807c80c7f76a4d5a984b8e56bd10cd23e3878d052473a64e112e83b2782a4fad19da505990f6cec8fdc3b03ad84543d128f7a337b8fefe4796b61cf006ebd065d32a47bf3eac5d96ce97dbfce5506ced45c67394d51ee5ba5df994f2434cd78542e6546b61c741d58c4199661904cf37c46fa52ac78cc9bc912304e94a3557771b30e6e74c9681230dcfb686be256fa868aef2b84b50c5f8464a7bb0b358e71b8f369308192c3deaab34e6319d07e8167d252886f3b81f637e6c845c25abf3f40ebd391139f6b7cd34f6af4439d4be428e7afa2a177f725a7a57a6cd5c119e752ca5507010250deab287320679ff25b2607df5c51efaa4d736f46c84b85d5967a10f6c194e840f1514bd12cb1b2c0240804a29ad8a520cdaedfb596508165f9cf47e85b3ce625454d72e1f77e14ec7fb49be4a69b20f4357297294715927fca946d7f477340fc304b2146c8e600e60c782bd2045e0778d7c78cba4a76b6b57a325b1128b57855922e6c34086e34ffc37c5006ff4a82083b49927f98614fa6fbd402b258b30205e91565038e454b0fc97c1b267296d392abf90848b061fe61fa2142365255b7f1e180b77ebd8fdfed36a2cd6e09180b9b7ca1f7b14fb140b6f94ecef7a131a589ef2e33e67b8f5943e8b83d9d1050c9fa745c07991ebf2ae1836a05595e31626f1aaddb62a64604db5c412f01fa975d2b96f4d8fd0f621397760299a74bab8adbd3c7527ddccc4af904d1d751dc6f7944dcefa978bac2af01668e760a6c621677b4021308cd2b59e659ef984812ac50569f9334247f760b4e977270cb16a668c17338f2caed96d9dd2a676c90827c6f43aebaf86c1da4e18918cfaf728db855710b69f376b45366a973ab8b294749a857eac552025d28def4bf0e86691311b4cab4f93ad8f7590bab3dfaa77366a7471918a64c2d5708f06a40734351221c5346eb0941b84867ee248546fb32f4478462bba6d3bd8f746c389503d321340af511f3c8c4afca4c22fc0021283a9bb016fb8e3a3e1629ac66a7633ec0ae0fb1cc1ca4691d7c054de8da10cb220baa372e3bf8a2f79307c69f6a98fe6d07bff02cc209fcc8f2facffb2e7a6a9aabae515635ff80cb81dc9d2133319f22335346298a32b6bf9f4d853f661de816d481c570af5ff0166c5028c723e86742e2d97134c937dc411c434ed242abceeac3c77286feb0b28a22ff40d9c6aea9800734e4144f4d56815e29d2e7995afb7fb32b0bccd1c6c074a2b084915ef749c89f0962880fc37ece58d0a7932adea73bea7b8052e39bc6b8f22ce5875f745d7f22497ffcca6fbf0ce63524f9268303106928c7801187cbace9618a641a445f00f034b35d71f10a54ebff6efe7c605958b74a4b506eaba884e36edf368400c960a0d120024e4ada4dfd9d52b21d25f76f38be7dcfc1fc8992f2f6c0ea1a0c83bb1142fd1e69af53d33fc94369dce8ddd2d44ac9be126fa803260fe40da8fe1108bcb3bafb6a86242908b1283aa25d9a13ce81089bdd4195bf3a2cb40b30fdb843472a712dcdc3995b69f7139702a04b3262d5fd0769bc7d46a59a667cc7a4840854d9581b953c258b2d91329e4dee6ff4023e995cf69baf2923a7a38a9118892f4efd660be6347adb727934dd9ba99e19eaaec61df4d094e2b78623fc254caed1c6d7033cba236d041b105d164939fdb52d7dd0aac82addb56bbb093d89919945a9395ec1e692614a050c5b177374936ee93ef6c228e0f28b6b92dae0aa04767295a1c4ea1ff17dde5adea4eaa7443c24f6cd9b5d1fc2a487748b60d125cd5ee69bacd8ad9f51ddec0cf7e00e1c72d3a784083cef520c09d8edf4d615a5a3b17f77851a4711b5d4feb6e1e978346eec4f027dc2b2931e301544be42beacc0c294f80b53fe60d9c08a8b9796413ff390e4e39569905513123e27d157e28ab32087a41dfa279a2bc7842f5e95d3702ff220c2c65b779bcf251f947351ff6b822a63fecdb7ec7e8e9560db57d84c11b976b04f16caff2158cc8f6c334b2b02962a034297e266011aa6a5618ad05af4ec2a6f6fef853d377bf9caca7f5dc2ec360c8df320ec1281c11d3c025708a72a5a56fbccf34467ebf2da77b21773a96ce1f0b42ca41203dab641e7837cd1913e9712ce06006f39110711c19404c263a8379124a53b5826e05d6007130a46f765767e5282c54e26ef10b7ab2a3c1faf32bcf9059ae387a7fc90239ea22fc295306aa426e3101088b337bc8b263ce9e82b65698217b922ec7d21505b04b2ac1a683c516ed9ec5c8186c1a4d38e9805b1e5c4cc32307cdb615356eb2c69aa98b9d1ae2e97ce1caf432638a050d045322cebcfdfa13b0e897251750553ac3d5f89ab10575a306412b3968176207abdfe75ab208c59c71bdb9328a70f1a7462dfbb21d67e2bd8d4a770be80c01167e96a9a6828359d62cc3519004cc8d0c31382109d15eb976b55e03022c711b8d7df464a7a789b45594a495fc7fecc9861b8060b93ad080a55952dad5c5cefbf704b7b3f1d919414e8ce9ba8e1bb4eea22abcfe91485594dece03e2887be9b73086b1d14161a525b602eb889f554b9424260b4c1cb1823a90cd2907105d9302081be470416eceadc39b294f09aa9562831d15f0f6b0e3207b7fbe4bafd82db3dabf50eb8ddb14319f3f2b70299a2a2ba6d306bc8c83b761d8b8145b303a8526cdaa49158306f97498496f7c2d6c4180da0b71fe3960f2f55ec09823582fa858af8b1f3686760629213dc00439f3c497e29728ec9263e9dfcc30f40ed6ebb2bad93198019dbe0a79170c2ebb0991b9cf48bb4ec840cf4f006b065a04384c05cbd41450819b7aa9d2fb646828c11e221430c03a71398183740377e73593e9b5a06889508ce275304395ee8f5eef4a10cf892b2b942929f956a7c87d4c24faf6cb1beeb580b7072e0cc020256bfb62417222640b0b582dc8d8a4328916303521c6d31fa5d5abad5413ffa503e7b2e915113da289780ce83b30a14621a141621a87064970df13c62fd7e5fd49c1c6cf82cd23a0d41c159324ce69741a510490f1ffb426f3307515d7651596289aa9ab64638550db31b4e1f507274f14a19ebca4a1b8bf6da8522ceb69998502f44dd2f9cc4c419a26c3adba8a7f5c2239e8fce0a9f18930f5ff1b22aa751c00960d342984a6d5e961a7542c9039936499c4e0f8e74aa1d3cc9f26c84dc841a8d7deecabb5e860ccec896a6c0cc31f4248d691b5e196d28ae6a660cdad909f4010e78ebe2b81a68c3d304c1f7a942e0cce47a07ce3a551c1cf75a89de52a9dbb44b2841945a1c02f738ca8c89a6ec6e5f1d425ef7e0b90fd7354237e404aa76781643db9091e40ea2217baf211dc8dac86fb246de09fdf6c73ba38332ed7d319765d35c4820acaea2e1915b1a7db743213f5d13aefcd74c1f032f7b5c505a094a7e22cb6eb246640c4693d5991d26f32a51024507042233d27c4720de3c43db5e3a1515254c1767506ddbcd5926480cda789b8c3ea5572a1c5ed3e9bbb07ec898e95c52188f3262b46d6091382c86ede257bc756cd2a98b0d4e0bb9859528090e80682f04e530a72ff01267831e83f452e02d01837df62e12566faf1e17ffa09d3984b47893a5b82402339c661acaddc166bf06a084b238cd2032b8c43d610cc5deec204d959035fe68c9d1b48a8e67e59672bf9a29573f80f1b16822912ecd2fb8f526b4f8ecb802739fb052fad80ad3514a188024618f4dbe40fd2586c1cceada58469c6a0b3dc87cf213a2cf7215db28c68df7f3d3833d4befaa524840b3d83f9b36111bd0b56f6d606496f0a412b312cd466f79edd30629cf7e7ac49ed4812d91e65c0e1e73742f16cf80a40fb4dd04a9d3c5d186a2d63eb00988fb0199c9dfab784e44aded4c39190716b934642adf44d13c488716daa541be64c69182abed92f30ee9b949b2a98eef9d1a357535934415e77a9266c910d601a2cbc60cf3d34a763a3192ca037a0a5f985953462679eba71d2410f784e0a5e51cd32b1f287a36a8b46762aa0dc1e2b2c30388027c3440df43ce8c9e457d60e862fc7f95465b11d72e2b1f6497abe2e558f3cff590ef7f2282a458b4a99d0efca9fe7706189cc292d3b82d39622ef74103dbef598ccd6c3c0e5382122b26f406a0b4522d9e86ca22ce628109d04fbfb079b2e9f4da555165ded19aceecfd37da031a21a64470b8b5d999ed5e7e6b824addaece40ac97d8b885e78bdc862a0dd8a91af4f568f437e1368a22bc5c17dd280e9b9e473dd41a3070fe2937fc33858e2b7b6a3b281d69643860004491198f111b31e2f7f50bdcfafedd9c7aa9de8505730df8a3c4537e4a7b7896171ab3679994388f5a1213084f2032fe196b0c92f11e6854395c7a2cde7bd389a537ad3b7763f44e38c6b678ba5283b80805560f16be3f9058e3285104f2ea55e3427a98819b27918e4ac53316efa69928c913857b5e650b74e5813100413bcac7098470bf07f67a290ab4bc21587cb7d6851cf1d6f3b0dc46e9c122bb9b56c146bc31239cb7db6918e72df789dc2b451c969d0d9fd2908b935b2f87b05c2b179a07fd6b6350c45bf87607fcb789a1e7396f6092c4334e86ccdb01431f258a498464184384317bc0a03d0aa1965dd4692a6b705e6a49213ebd1fa8254474e87047b3658d8b6bd668fb11343c828c6193bd3d400b03dd533e28960ca02350c9bd0e7af5d08ea012c20060bda89c07c9b25867823128b1eec6aa705c3a6b53a742a6e6258b219922538d03deb515b432c68aa53a168ad51237d9601f6227bb26cafd346aafd71546c21d25c6d7153101a1ee2a58ceb6d1934a84889f54d50e9a572ab09a393f5146e2d64e5af0e3b3f0e0519622b3ccf0870fc3db1f7258a763387b80685a902326e5ea9e2d00f52c6ca23d00e65f58695f8eb69887197fea4b446a66bb7481440c3acf967d125d38b5f7e23cb6782b392ecaa45cf84258eb48ee757d8c46023e8f6aa9118f4e1900be47693eda844172c45910d54d0e54318af6e58012770ce16bdcf663217f37146b424e1c0eaf5557aa4021bd13713855dcefdd89c0e1d8deff4ede51a53ec9cdae134b3776902d3ba4639e9004cb310c5502f1f3558c64444f002b96f1190b43aaa79074c159b10a291c278314dc1aa4f30c435ae412d3b095b1680d0bf50eefb73f684ababee65a35c1a9b86266407036f2edded34582fd05bdbf0ac77655174a45ebae661c8277edc7b53421b471d6e0d3e1fd5f96d966a0b900d61dcb640e0c03c25dd8d86bcd8a1e489eb387510770fe04316fcd2e365b5596878a9aaef9cc427d1099185dddf16040e0e3e416114607bf8ff279139522e0b11df48aa765482ccfe1aa93c6dad1c40786ada4e762f52e66b5397692b55642d70a98280381ad6a7e49e85e81c0bd9c6274cd431da11604b94476c329b283cc937c7b95d3c981455c2c35eac0f213528d551771d15c62de8b78e6470eeee425760165cb541d7f10b83284acaa8cb6b2b8ee18f4c60017161ccb2feb26481961c7cdd6a6175bdef7489dd10b953943279ad3a15cc9a1f850f661709f3fe802a689d843f11de801ad8f072c6f32d0a3564156909b6ac6bc06450a6023305b14c8e04afe0dffde2eae761b583e020d50dccb83f6ab5d0e19ec66d8ed39bd7c1b8ea67349e2b119d48a806972726b417d20dfb6843cc3de5ec4d43396ca125b6bfe84b50558076c86679442c8fc1394aaceeeb28521955d3ad05589034102dd8ca703cdf549aa33c6316fcb4f23217b84758a006bbfb0d91e9eaf550346bc5b1bf26e872c1711ffba34e856c09464919214c65c0c92443f30422cc58a789662a0ca49dbd0ef02424836512feedb780956e44f32d017ac5b54a23fa6b9072b38aaf827628e325cdb5dada1aa4ba8b71fff2a4c9db7b3f09d20acba079d22ad1bd0fc2ff66304405955a23edd27803607a25bad069664c20093dc993047ee72c25fff5799f5307c08b4d9f997a23354d4ca61d1574560d3e9d4cc3c0fb3529c3249479df43f2721b82dca7ddb4e4a519045503987129c9a080558065e3b93ea4f6ade47febd7277ceece46c8a8e6425173bc5a5428670a91c7ffd74c66671ca25af5783bae7299f5099d6dadbe8295c32da397897e34382eeff4ac9493b85d5e772675ae2711cc7ddba1cc703a83a8e7e254a839def50a71ae8d7e363820c59152a4d7eaf2de96383305a9d467c30d09b4b68d7dc76c7ac0a7d248c23ad9f8f43cffb336f944548238997bf70e0f001ab9af97202a32924e02e4739a8f104ae15f98c6cb02e970524929f1f91f98e86c1ba92ba0430f22ea00657e8523509981902fd77bd48b48f9c27a24d9da8bcace907d777815d9e621adc71d4cf15493d0ae098a87fca4cd3464474953aa5a2d443ed356709bb8f2faeb5a5606f9c2c92ae5fa15210e0a001b86f4b8be8c828590c086b545e76de10e741e35337b90649b3246b01b1cdb83b69c66333153b47b6d63cece3cc4f62a39d3abd53d40537fe3b02af5be9f296e93989f577933b30bc481a3373ba59323b407a9a89655e5c1fab16404e7e6f9be5a103f18450fa63157197b8d849d1cd56dbe78c48b9113209555cb1da83cdf9a38a0658700f848afa61d1f2cd41fad458d280b371129b326ddd4b6c7fe50e0a31c3057262861374a0c9a06db0bb6f8acb0c6f858bc60f8fbf13e557766de5efd37fe81e754bb6aa529532f67636d1bf1c5e79cafe45f1894911a42b0a2ca0dfad9f7c5f935e980c3c2686e2a0261ab1ad20f095d62427751e05c2ab59cccde3e03ecb76c29b281818aea553187f4dcb528f548550eaf4f03a4b3ed35cc1ccc7c4f1343dd3c15e975282cbc082084fae4f20d902589de2069a71d11f7ec42030072afc25d798b216548a1581e4bf3954edea31e2dea1e4aaa7b72a621ec8bfa997315d49f6e94638132f0f45248553d4bb3246522a1078cd4ee0628a55071f73163e7812779d413b54798aa193102df740faa2a613693b35c751288a7b9fc917445193020593a305afb97cf3915702b13c2de009f1056b7e12ab23e3cbf0d3db3db5330545276b4012aaf2413972506a7ec2a5c1edae15834e249e4469f8335c7ec5392f7f413f2569138c7634aebb6ac8cc7eaa3971b43b5a33224d61698371c654cec853d95971d785418a2c3880fd96642a8e1fe7c5b1193d94e5dbc41bbac034c17a846f4df0bce64999b8828a8446eba99c0cc30ca4aa1d10db051a9197cfb640d063510cbbe1c306deb5addddfde94de2be29f3e30ce8cca022a2f3363fc69382e6c7daa32e2ca9c7e7e297a05e83ad4d23f7f1c038cb13871917a021281633d860fe80a3da241ca409d8b34800466074b3e2cf7e5a90c737104fb8664173f8af2855b637ee16a4829c7d201eb8a5f585e80d5da3bbaf12860be12b4a09597b153872bf2cc7e69e2f92e15fdb62b27efca702cce5dc09f5040d40221e31ec81b14a2dd9c16d0a0838dea0daeb8c5546fd1a72eee85aaed669b48da4dddc8a0fa64e3c0dba3a872311fbec5bf6a12cfb340207a409e8864a2cb78d98d44268ee4013eb030da6272f0918e89c501d517872b3c1f21db0ee4b9e49d5d2716abd3e7f9a989ec89dec91b9ce8028287098d17f4bc0cbe8ce802c3aeaa52d5cf245b434fc1663f3a7a19b52a0eafb6c8c7395820da3484dfe0c2f10ca0bf604479520c7b50832ad45d4b4184acb83cbf3ae5d130ac27fe82cf824c1110479b4b5304ac16ea78a9ee24c5f97639fbb9f0c328c30d5a15b4029e13009d36fc990ecef0795ca1e3a685e12f5c20b049b95bb25a9eb3d40fb0e29667aa1734652a7d4bc01cb0754faf673f76e1fd7d052f39f8563bfb3a3e3b38b561d9d6c59067d3a0581ffd75806ba359684b8b3b9dc4405132b70937d353595ac0f05bd54398e3270f3002313d4ff42d8019583f4a9f4f15c04003e2617eb19bc614a0cb76c24fd54ef226e014e894c51edf1b49b23d06cf0230bdc867a3e791bec907b31932c463e94525ebbf26b9388014041c30193a643d897d29176833f742130e30b15a27f3f7a9a1cc18fb851c9ad3a9a4169bfa2b00e88e90db1964d94815319b822a389ed3aa30ff9981f817b4693f408846249d3f078b27de6584b421e2df89e6e5a33bb38e55edbd7dba15d4028ffb95dcc6a33271f8fda00e2584cfc401f3751d81379c4da1e082210234d19f8f971ad07338a0b55ed8f5c35073fb3f56160e4594a17fed5bf8f1d99462c2687212482efe08471fffe44280fdf06f52331e605ac8b1cdb910686d6133054dcde57a7f8bd662288992988698639aafb21587bf65a0e4e0603dbeee16c0e7e9d719c1a836260353a7711301b58495e5b57fcda9c03e2c19b090b3020dfbc22ef24fc81a051cee314aff095aff01d3abc1115486d9f4468c939e6ec32f4927791217301cbf4dd086e07b247648f84eab16082a13629e21f8b7ce0475bb2d3812667586290192f23c5f1a6d7a4e2204ae2e70feef3bbe98a290da0d8d2f3c0b1f19cf6b4b9ead4597f58d2cc9686943f63dd7d31dbd522971e3b9a34fc8ff55ea9081340fd4139467fc333e19f81a574c31cf7b5bb2d80ad6763d059549cda7f18e8fc646467ce0d7f8501fd13999b7041f2404bfc19a5c2f8fbafefa2e5487640238c1b8aabc54417efa93040b249414492e3bc8b074110650780dc16ba84fc68e089009fb4580e4815962e17979dc8cde3b04eab09fd6712a88e4ff5531c20b1e71db66254e03ea40abf2e0a6e86fc458dcdf5d237a95d5c666d803fd1b955c3b37746de90ac7ee370aa2d95485ac94083cd1e79b8c99a70e82c30cfbefa57b0617da50a0610af426e21da073d8c4530e190cab2c227abf042c7304af6a770802332a8d1215389e493b331642f9f510a5af0e1a2bb042299efb3b9def5dd7f4c259858a2baa26fbc94b31eb216b440a467773ca7568caf4fa174e6f8a6cbce905a2f8ec1dd76bfef53adbfefcd82afb58892e0636d2265141c1897a0027ce1378a3ccd94cfe6cb52327d696e25d5e004b186b57ab529cbf073932ddb2876b20961ce00b0d5c8169bb07b55cc36ec972682077b446c47c8da71b7b38f495dd7b401cb8a6fb0dc99c652948c89310d1dadac5a63dbdaf6e1fc1f75c1962e9bdee1229404041e18ef4b41491a0d75f5354d37afd7ca07c4f0e25fbbbaad1014000bfdfb1e1b58bca7dba8aac29d765529b2a8260b72a77ec8d680115210b2a5f223e75ca98ca754ff1db844b70f5dc71a19049ca15fe47331c249d9560c68f43917f2966e1fa6ed72368c6dddc816f293ec735acb5bcbc7d0ae8b894fc8006ca112f22a612ab487eaeb7cf634fc5329e645701b9656596a9692906a58943c720566e48fb2eff51c9bec5e613467deb8a4cd0871bb19da2d713d87b0e740b2961315be816219e6fd09b883329ac44713eb221e119f1aae6eacc896c3418bd03922600c282c05e72b7c6bbb20f103fbdf77b080e001cf9ad6b2e21cc60dd0048df4366190f8c2aab630bbd5b48f414823be2ce27c87d09d2baa7443c034a020d48bdc171413d96d9ddf09c1069c89d2d3e4ff451022a91b14f5c4052b24a07558b88b2c8823c736648308d497482dc6c2d191049155906788604e9553c9a34bcb4c48bebbc77212ef73cd2a803c6013b62ddc5d27b5bd3f31240a583ba8934941ff4e75eded48d1cad9b959becbdf79652ca949294014905b1049d04b6ba37a55a8f0f9ab4a966735baab3ae8dc56e97e97e304674a663e76398d6e32fa5d47a361ae00dfec96da96d685309b1df4694bafc1b12d6f9361a2e130d611d7f23acb3d1f031638770049a0b7f890391ec92050e2e0402106ec0140591202ccd80030e52caee29ad695d57cbb6a465b96004f7024b7e10841ab428aae18a2956f806970262e4c08a2274d0848b12b0b4ac54eb10450a218488308111c6424913ab32a548845c4abfd2297d6975a48b6b5d088508210544616be6b2bbbbff344fb692ca244d6766666677776766694d282ed0c29dd200fad1c5c0d42dcb81b8feee8ebaeeddcabd07bd214a91eb4e2905f271777777eafdf38509ae194bf58b212ca6bb0a1136065aaae1c94a83f9b166265f7e927a2cadd063524a2915a2afbe28a534467129cd5cbaadb65696655b70ecc430c35ad625a7fcb1a82629a594d26ecbad7e39755b6dad2cabad4ccbc1b163599795159c0088524a29dd02cb94344c76152830e7554b27505ca655c2095600ac80718229e5f4c262b2a494dd535ad3baaeabadee9632670c18d994d2a14b8f5c574bab65770760675db4a9d5d6161aa54b96756191565b3ce4ff5c4a29a5d4c75a5221e9a281a825908c22a619e8c72a484affa94cc8901cad1e4b2b3890134934065aada604fae11f342ca822839f26582462b73b678001ca119118a648410f56ae208214c1113b481998c91135e08063878404a48ea8185191e40321785c090a18442845a0200e31c790c1bde14e96bc8494178ae53033333333fba8c08387646666963c97a0722d0184170bc74ebd0107443cd821891e8e8081c80a19242104cda174da60bdeb0946259c30a59094521e7125a5964f8e0f31f467c9742246fe18f5585a413ad72ba64b499906a9c40f574a9f5cd4c5a98d7a2cadf05324046ce987890cfd3399a4ae943da527fde8e81e492c416152827bdd0f1ad12c21bb95c89c690e0e1007609860e504952bb254e169aee23614254e6eb74b49bbbbbb81dc0915239872aee6fc89c1823203a3217ca60a493c22a0830d9244a194e5892e78fa6b23ddee96ed4464934a29a51c22677a151facccd9c9c1b153e78a869a532586199e43ad0c11436b6ae588bb9514f8742d5ea45c72898394f2ab13294fdca74ffff159aa3ed3a73cf2c28a2b25cc4b29650f798394f2abfc3a270f9fce4169e7237390524a39039ffe91cd459607ca8b278ebc7032fbe68a942b6b50c355c3136354203cc114c4daac1c813e68020c1ba8980113475a5031d4c30f82b0c5d10f7ab8428a8fa06257a4a4ae16f00007395286288470ec9070252124b338e2e2041876e111172a286670a5b82eb441c184593b3938723ec7bdc0e1dd3c8e1d12aa85416d595c5c603938a0d0a20949859841851982403183114db0208829e02a0a91922ea2c8208426298872284d40120e222eb8e288890014145d510220a400862421049c1f6cc4600825242a8888c1122db8810fd4e34189d213261d2a87448748d1087eb801861e0c19a1448429757d104458918508988d943e34a1a4091bb02c7982861e8e58914518568d0a8c58c1448b2c624ae001082b8cd8a045468e11a5ffe5e05001912a86f043bda4fca1872aa628e1a18a2455872a489053f3020cbb8600a143e83d84e8eeee0c194877ab308cc6fd206408193503428690999999d9991de6c5a5c56e272dc32eabd229bd194208194296a1819a1123b3356119cf1e0cb7650f4698c1584138bf7073bbb0bbb7b08d2348def8d4d30127689dbd4d37ed39e79c3de1ec31b1ceeb8b2d860c2bd3997173e5e94d004fd2e9dcf574c009de79cff6ba992bf3db402f42089999797a77138b714fc0fddcddd9b9a5db6e40b01bc5cdcdcd93e99cd6ec9e3edaceed03413f9c5a7d753eec713786f1b8b0eb310cbb6a656955ae553aabe0231fd6fab24a775959fe6449274f6646e9a068fe2d0c8ccf39253333b39452ca2a511228684ee9cdccf1b44574545befba2b62ee0bba0e65b5ac9a6d20ab3d5276772f643c49f8e70b91231770e96f66cd21df8fc867ad01db9d47e443ed01d0e8762764b1484600fa9185f83ad8a753f76eeac8a02bb328390d58e0fac8ae3cc5acf3d8cbe93e751365026b1aa54f00f658e3344dcb74f0a5f55c5dc6de9439ac43f9a3f421a517f59f1e3b3b24e8884ea235b904f69881b8a01f43d82e61a76194cb2d86f5695692f707eb401dff3881827ed06e6676f1cafbb302cdd88bdf1d8ace2c089810b6b267c47e962bd049117307f008d75533ec07ec5b9e3fbe6df9ae24588dd446d95716d8af8deabf002ea08499990658b09bc011ae99a791a131436e7f71dd04dee82f212ea05f000dd034ddd731b8fd339d8c4cf77193db45b5a2bcfbfebdcfe388746ba7a3db61efdbf15afe9e7083852e6fb38716f7a2695d0892f070e9ba0e81ed5c93403f46c4f2c7ae8dd87372faefbaaeefeb338804fb0488937dec6e1d8e6c71a6d9d7c1a7ae56dbd1d40eb56d5f1b59df4e4edbb66da72cd33acb38fcd9775923b18ed5b5c535521bb1d7b18d6ec72ccb6c9c2208eb44a59bbafee3a1dbce38fcd7f544438658c5418450344f9459982121fc5e2dceba22330fb10e7f472bc6e8b73f22c5281dbf76ed8473401ea804916ed20b5ea98c3130788365d8ff0795e06b9cc57276bc9cf772e8a8f2f3aefc762e0a6575b5dbb91f34ca89f08d8c9c40ad0873178dc42048b10892918a74e5cfd48a848585a4181581447e8c92d494e54ac9c4aac9d6175b38b9dc85474c485c1ddb31b2f71e3b6f3ec92025f7d9fd1bee080336adebea386871def9e4ee68178b50ec357bfd10f2f0c0aedd2d00596628413a39a02723cc91d338f273e4740e0be2c8973fd8ecaf9fa1dbdbe7b1bda51d0ffb2ddfd281c03e109e582f7671b1abf0866c79c81382eb795a38102499c067efda8c4fd6c9ab838df3bdcd208fe520cf0eebcca0507788d8f85607e4c3e38725f3516a3dfd14ac6781fe601deca5a4924a8a713f8082d8932b147e80826eadd5a21776647b1dac753eecc939b78e6676a8d3c97a16ace7c19e3c697f3a9d340cb3cc2ad4b75ebe0cf69ff5f3318b53c1873df9505ad60a1886fd442963902b5fca4885addd91d4f35c9d334e7c7a038342d1fc671606c6ab152bad5f2d7b1286752250e3c8af563efc6e6ab522f783755c27befca0189d3d296f645b1848b9f0e10bb60346e766602c1e3eebecc5f700066fac2bf67be82fe4803c40a4c33a67852d0fafd5d2d2d2d2927d5fcb1da9bf71474e9c0661774476eeee5ebb5a27cb99046659b1fed669dc5a3c587e68dd5a59fe1a5431abcb8f3db1f05eb0fd9f580dd0a4fb6537e6603f9a5473b0d74b6902e53e9a74e9477129cdbd3a9ac483bde4259f5f47bf4593bcab312b96b22d81d0554e94e5366cb945328c64a4226224f6c2b29dee459138a124b31a15e5a048e8922572d23927a5d5aab5bad64297dfc2529eb253894d59aa454ebb34e5ee45a6f8690a7b7c5a42615e259f2c58900b0bd420f4d1ab2b2d2ef244eee5fae8d5edec5e35baa72e973bb12cddf84d415629a2db9eea8e3f4afc350a2c5f99858165d52425ede2539ae4620583375f0054b0c688a666034272ee1825623f9a940447d076d4b892feb70121399a4b736517b3823776f86256b72609de60aac43adec5d7d1346635a7441a7faec07e3546bd8386e642cd841ad7bb1a377e35469721bcc1d1a500a8a2c0bae10d3aa537679799e8c7a016bbef07031642e92109725990bcfd356908164443206415ab78887160150b7848a23495a6d2541a0e9aea6a46da908683a6d25444486eba948e61b5c89d73ca38e4faa59d90eb4cd84a27bcf4a75441a64b5fd26929b97bf56a29558b5a55fcacd352ba57ea5a52dc5f72f3e7d32fca2ca53bf92da539a77f7f5f91de20c6c8117e1cba31a6288d43337a0f9d83fd62ea7e4154c742990d6543d95066433674b326592ab3211bca8674c0e001ec0e2c82b08e0bace33d75c70feb3baec8c21ebc417c4de0f7cbefdf5d50bcb0db814510f620b445603108c3b34beb57af8f5617d4d6e9eafc5a5d5442db617df6fe37ec794516fb6c074bbf72278d76442216c5a68b3174acc8c6a2aea9c7af5fbc3105ecc62e2ab1839dff3d7f39d7a312b128470201d3b13737767b84406c8a4d1c9b18d0454f38e19c3ddb6ae2af36978294b439172c2e6c84cc529efa07ffeecffcfbc91327f7e6c2274f8a5c15fdfe291e5c000782ea6b28f47b47b50684e0f2cd1ea39c0bf5d6578103f5fd2917143fefd2c73c05ee7ac75637e4aba3e9573febc3bb12b61816fef5d4df3fcb32202c8b80e10816ffb462615c40bcb0765fdf19147a8c312e130bf58362c6b120a5f77b679877fd1aff92e242bc756a26f014ad2723622b2bb1f2fd2b1ca16b7f8d776a29d06ffacef53b9d9273215eafacd31d3b8b17130c1ac0325d78a1948b3d7d6cf317ea8fa18b1084871fde7cbc44e9a2815965710a7b7115e3d3ee43d9b88a514424a9f5441ac01c19e3c42f4e5123129d9cb150e4e96e86e74922f9c88dff79345a3eebcae7600e2e0271e2dbcf8b4aac7373254d166318ec690fa08f7d44bab6eefb4bcba226fd05968b341799f30382317d710a7b9053d080edd20ef2b4fcee5c8b4af3050ec283bdd040625b39f404c0df9b6880fe086304723ffadce7dd1bfb5b8c96d7383f233b13e2cdbc3bdffe76d23a97aeab7c75b4e53e9bfb791feae47df57e5e0b718c7bfde4388031fbf06ea6b2fcf0a173377e03e0c6ffe6ed87dd1bf0aefce9ade4940f75b9c8beb5fd99edef9ac5b7392e1ebeee730ed80e78e1b78410e6406c66322719ec85117e07805cf697ffd916fc3f20d9f5f2a3772dc4ee08865dd2c20e26b1fe7cd3d1064c498c3072ccbd03f694f598558fae49396763619bb9a5e0cf87a722adb562278d085332a4638c9dcc6200eb8c71e61c79f08711879f5a84cd8007d5f934fb0a73c0afdd0e7b3a3812d8f39debb0d341428b61775807e6b03cfed0fd8757af0fab57af5efd07903b8594c2a0acc7078574428f3d97d2d697b26e5b0af059b09e00a7edf4dbb69db20c669e559a03df7a8792f3e0c30cbef559d629c0c20c5a0e7d8704f8d321567ffaacd4dddd9d3dff8b0b7277e8bee303bdfa7c082b7ca020d6b1deff87d5cdd4ba027428ddfd4404060f60836afd96004b6666feebbf39d97fb23f0b73d6679e3c73b0cafd6066a04944586a10dba9feee14111111111111115c352d2925217112272575aa5a8b42fd7bdfce00b244b1d2ddd1d9bb5b7a7b7777b77777c7aaf5b453b1dddeddddddd6b6b4b4e8d81e1faef57477777777b777b49922484b29e56b80051b58786d50e10834972136a4a5b02dad633721444286a858c52c4445648d584291184162c488228f75f7a6da863621eeded36d43ecf9905acf771cf7ffef54ecbf8ee6b86e1312b319d990d4adc83624c6adc8366433b21149ad877b6cba6091a2ba50eae2e2e2d2c49e1476c6258c1e172cd465a5f9b83435ce2664239a79a86d2aad47c6e5a427ecb978b18e8b77be1301e0e30cff9fdb3cf79fed3e3e3699b0df96ba1d376fb52899190f59e63fefcec8b932ffe5dc198fea8a74481a87460d117bfcf1d2ef38be369c5092ee67781e9ba225a7d36953003fc7d5a8d8eb38ce06d76d2a1b44b685e3e2ed3ace29c7c1db71f2cabcfc17a354635453d43835326a8864c0d40c314e4dcac62a75f96d64619d15ebfcf3db088375bae7b7818575bedb86bee336157b42d88b9991e1e295514374f9c3c092715df8885acf771df7ffffcffd3ff7cf7df7cf75df7161b0c75c93e61393d4383233ffd510755cbc16665dffc5285d76b9e15e8a340e92c691e1e09561238a8d24680309dee0879a8f0da3c6e1ba608f5bb1c7340f35ae89bde76abc0d07796e38c8d371f4c2fc2723f4c235b14754f31fd7845959c7b5cb73dc46c46d43dca66a1c9713d2a6a7af03774bc11bfca9ea5fb3d1704d5686fb5c6a88ba251de57e32422f4cf79311e29a72ee57430473bf2d85badf967a495d9611aab1aa21e29a5cb07c8e64cafd6484fe7e5bcabb3108d790020802c3364f79ca53436008398a899133298a31322f55284c92dc5d3259f9d4c283b0378530284c0c557a2114268486c0ae882891db65e480b828f62217c64559b53e71c2c4ccacedb0985ca0c5855d17922256e540a0d89b73ce2cf32f866aad55d35645be11e194456e65b76dd5b49aa28ae2485594b02dd652a42fa6d48c88169796962a3eb8bcb8b8381d82258b9d71e15195185e605e5e54f4087b21068c0c18180fe25950475e68212346868cd5b502cf52bdb02266464ccccb5d9a91bdbcbcbccc9861454a3daaa27451346468d0b0c0c862e5cf5ca0c8ccc8c81459171e5901e3e5c2274e9098a19999c92e3cba3294d92cd54a91152f685cf8c4c909686ad0c01b5792ba632e3cba82c4ed2b46ae105d8ef789931d6ad4d4a8716465c8c2a315968719a3c6a6a6668504bbf0c80ad2bcf06845835fb1c9be05bf10de601b7803de80dd8525e74a53b4475f30ddef665b609fd5a851a3c67f4c14363636361c2783891e8ee3baee68a5f20b9f389104cec0ae0031601e6385c11d04377e9f3e0e506ebac0c0e9811b1fde70f9811b1f08bce15d8dceff3edf6940a526cbe5b711b20972990a1521fa7d6c486c4d2ebfdc8aa85011423261fcb0bbbb63ecd81d23c7f6eeeeee183b7677ecd8dddd1dbb3b73dadeddddddb1bbbbbbfba374777fe91dbbdb7d747b7777777777f0f34181787469e2ee39509fee3cb8539fd233ff20962e7737b76d4936aa0de90a1b6bb05caec1c21ecb6e0612786353eaee6e538237d8842d8a8d6ab3515d7e1d1d69d2fdb6ade8226d51fc624ed86f5b72596e4bd863efee3ebad403fbd9cb31dadcd8d94d493b623723de966c70041880a51547a6262619a3942de57757a6f947c1a060682aef80654b29a594f2e59c92a594524a29a39cb393b276980fa8342d1b09a9643303000101c316000018100687040291240972285b7d07148010668a46685a321148a2b11407511804210cc3300c6080010019431862cc295a050060ad57e22d488c9074d01618c367fa720f311d11c08d42f8e44381d897fb10c3139ec61b88e92240e872b03735cfae5a594066a80cb0f126eb4c070e9ebf03670e1c70ca75a3a4939da10209a97f7593941224da898c1889aae8d5328b6e25a1594c2d2bb4c417380ad068cbcd78612e094e7a4250729d77093ecddf2548c084a8a6cba7946758a557a543a9d43088522defb1de57b474b904a9a5464b7088fd628539c77ae9f03b253b90081b95cb4777f176497902a2c1faaf31095bc99a76eb51fd4a0e2f0bb50c7478bc68eb81fc67c64978884622f99cd5a78fb6e0b3cade41dd121a826788bbee11766fe4560fb5acda6db3ab31ea705e420fad04e00b46b50370c6508a8cb1074d4212991564b8852271765a981a57cba84b7960248c8a97e4b3720950e2ec6d49139d740a7181c279e4a75f27e5256e4f8b584de00ebb02f4ed2b7d49ac1fa64d9849cc87462c61e92289f83394259d80d71985c1651d18fb3a296cc9baceb4e844478e611f2fdca4ff9bf7358d26f22e382a1c6a51d2cec33332afbfabc0855c0059be1419f7eba444513b2138d868528a3e433aa255c847876d9d29f7a000fbe7662b691fb26a8c7d7241876ad33665da0c7f9ea1fd7c7074c63c93d53177001b12e19c06f4d5a6c2192d047d077642f591cca3eed435171abe0f71862ec9ee0ab07c38324e81b63446e3439193a13d474598272198eb2a4d66cc84a78f8c96ebf90ee4e183b6d3f26cb624d4d5148ba6917b4c14ef8f04bb8ebce52b6e59323e8b38130d1d7099e3426900a09aadad0db84e718abb117dcd2eb7e58190b266a84f79448d6bb5002494d349f124d0c37bf36c0d5aa03f460c3a654f9131466481d0f93cbdd1e620d73a97226abf1fe6f6056d24e2c9435c2e570169f90ad4690f2943059e0f1fb9bf9e275657225b4e18e2c58f19cb7a3c44f1a49e7d7d21e4b268197eafbfc6bec7d367bc700d644fc9f5c0eaba099cdf8f49795099249529d6e179f69b30918610e15a1a28fab3060f6a438aec13f6e152f8a55a8ae5fb1fe4f14d6d8f8f12a30b6d1fb2abd285a5f7e41afb1740d889c8657deb448e5c1516670784b40b9beabd3d87543a273e6b530462818881440ec12908b32d8e01537a1e3806eda05f919d15db9953f082c88d90c73c83741a51d54a754374dc16fc04eff8eb2423678ffe14201d80456f520e56182135ab9cbd9dfb39717065d7ecc2e320c958c6d870120ccb14b48664b2372e6a2a43741d38b6bfafce8f6fee40e230f8f5107f5d82560f14370442d74ee41bfbe57743754ca37fc17041446080a1d0f784745ca038268b3adfd3c1aaace50dbbc422d77e9d067427ba2264f34ed6720b2b79214f87562daccbbad6b878d3944ec6f910b195fa9cf78cbe72a25fdd30c0730b946e8f1301e772eb2aa3caa040df846d6ba11080b3cc4fdb229e098f37eb82a26d36ffdb390c820a4232271e30f4b0602df4dd0bafe8da2d136cbb7bf4b82c170ecc79ea3ced58fb3fa17feb040187cdb336644b2e465191ae63c9b7b92dc00d57ecdfb4a2c1a816f5523b591961aafb4c67ae7b7c1d2f9c8f56dc7b2a883bb1bc1058deea7fa1eca56a30fdf45a1d62f5cfc4d5c25bcdc2f3047c7e9f94916f16e939e61e1c5a78006bd7d036212c1b05d7c2eb4711361f04c4017765f56fe3ea32dc7168b6a9ed75fb56812060f7d866568eaecbc35795253411b30cbfc4e1531e9eb9dd7bd5e60efee34d77a5b925cd45000b7fc9dc9464ebd3e78145bf8a0512203e3933a9f3ed61d228001b55b558fdafe63c0d70567aa1ca3bec5f00bfbf1b23cdbb452775b50de96b3981fbb71a767bc251348f44031e329c94cdb20d039f75c6c565e949524de73c3268b67e1a32337aa379cf3512a66e45ca4767ab7e331d76ad4a8c03fc714212d108e207768cb46e5895451944732f41c7938f4ee01f1d1c2a46398684f4a3aedd06e163485cadae8a1c0dd313c017611210cdaf7b2c12b4a496e918cb3147cad4a1da68780fb9201b32528fded62965b1c83d56387349bffc9d8d7d6758ed1d057a625956186f3b9bac7cb7d4947f6d7950666e84d32d8c56ecd40280e8590c673491d2cd19c8b02f18ac230828d14463dd91b51ab1e9182fd8909efa05d6cfd2af1100064209b93d1576f846a8013bb8aa1c36c66f2c28d04057196bfbb7e466c4378627a15ae63f2e660eb67ec1e661697c0db911123720696e6d91512b9199f4329647f539995599545323feb41ca00d082658dd5cd82c83e0bd0fa1f8a98755f60be99df26b1a75e5746178f4e916d0fa17ad36c4df5a6c6f6900c304938f3e354ba2357bb752bc0465c96af36f6503de3aea74cb56cb2d035ee181449e1a8b83c37552c0a509a90b11416a738f1999d7900142a20361e8f49ff0f0ee31ee204855bf9d6c796abd3ba8bf880712d8c34af438c281050455f5a39e7e61ead2da9628a1660e9c842bb6dc5f3fce8c81675bcd8515021fb3499f64fb334cbd4d351968bf786c62800207b5b990fca34252565f8798df16a0802b8d6d009e36029e6d3f1971d0124b0ae34f70d5c6f9e6b6de7064c5fc234e6cc9347cdb8c1e1f48b7521efc5270c3b9a3eaf46bf9642d8dfc7e551d4e89900fd95afae90138a2513d92fe9e6ef1192ae7305ff3eeffe9eaeecdb9caa46368110f13e887935b14853d93712c864d673619d9f22b548dfb544b96dc5afaf5640ba5e966443b76c31959725864c2d78f80edbf1268bb2f16b467b3c57be67a90eb7a9b28f6160929567cc8c2895c4dc90351de8d298cf741e3650f80fbe96e7a1e3a012c36e6586b5831e833634ee8a0688cb1b53e0cd9312394bd150e63fc0b0a73e859c28a07db0b00ca921008763b2d613c8f842e254842cf532dc8eeaf5e1f8bcf219c8e001b0b9db2a17224182edd991ea179999a0b8465422c50c2bb346ba46230d17a1d42cdc3b531c15717b142ab0c52056a27dec9ea26f2348a13373030615ec220b9fcdb7886623f4372585d950a928be2815a856cf20cc64245b9b2f18c86bcca9f8d0febefb6cb20b9cc306f4cbb6c719ffeeb7088904a7ade5bc24f57462e86ef919e72ed5cb576c57d77ca9297f3b9d1ccd96d6857c6510351157aba0d805957035512687fe6a941fa452ebcebba91e5da147cfaad7756e19568a65726181a30f2ea0a52734a4266f39a768d34a3c94c22af1ad1de03834718554e82077a58a3f06aba20ad3caba2c040e12be3f6d38c97af4a3deffb7c3c7a588a9118e2c68c27338eaeb02b7c380e0feea6e9b7d4ac4fb73a875329033475de584688c38ac5e08cea9b360f05322abdcd34630f67c43db48be54a90b02fc32dfdefc00c82ae198ab014c79784defa01a0555ef7492573c6e8f56fb7c4a89019158fea30107789751a2c3f74cd89b2471ebee0c041b30b63ed683195e953f017c34d4557164fbb9a4b1718784d27889b8f7f125b8ee03e7214574ead4e56ce942b0cbace4501668c60de775512692f2dd378d90e75d84fb8ab9b62ac422e55fd5d55aad7706afc3c7eb4e7378e30bb5ace63bd4757a5fbecbcd6b1af1a79962e7f8c030d4dab44d62a79c32a80955b28441f302dc10a0d1f646245752751aba1c1da62edc81291b595b5792a508a6e7350b9071f48cea47c8e1dfb790f573270d61a5f85fed5e00cd495d0ad8948ae330fb1d5d9afbdc2ac0b22733f4481a86583bad6e82cc0c5844a167f2044ab2a346d2dbaf248430be850c6e65afd9bd2e19abe53e6f15741aa8081f33102808afaeb519378b92c1093d8948c1ef64e517b25bc9ecb9ddcd1b988945b37d6040cea2a947db3ab81ce163116738c51b9d05fb14ba241d439558fc6acb5d2436d6df336a18612da93a9ac11682357c817b3eddbe77d25ce6cf502c74292f7a98589448e46389dba0492be54d9a3728d4ef9d1a02db50771b67c2dcc2a02375cb217e29a46c4e9c831c3d045e5162d70519d764636fa757a963d9c4a3164fd3feba3c2bd190ddc1bebb3918db481d74a68c4ab7f0916279d4311b36e1280bc8ffdc98e588f0cb749d0263e3f75a9a61893c58ccfc78086174f6411a8d5f3d6050a8305cb21371843f1ce52be977f27fccb62ac5c7c389e63c132cf6d09ef7379e5fef21f75dba8b178c0e62b333e226c21f33c0d47fa9f64ff6b8f60341c21940f6a3e47659ee7df8a15a306b31df76d94cea2ee4c4c876e7206fa807c632741d04e6ef37b0be7c4207051f0017b9add527f6b392ffd540fe0f983c2548cdd329d195e3917877dec0f7d2a0582124b6677f7d4e6ab55184a7a4630eb7072a9c156db6b3fcdf2d3e1e5cd7b68d643516710f617edecf79346001227f9e5797646a958a24069a38b93de2f2177c66f69691ea880f09a37d3bee02e9b14c167127e1394f05ada8cea99edb3a0681f1ba609bccfbb7d42d30e99fa6a028a20afd8ecf08d375f5f98c04917353521e4f79e0aaf338aad27d82ed22446ab7d4c46d5bed93b866a8c26c3dfcc0dd8d86ec17d5d69520c99191f2aace131b7f888471f951f77486284989edbc2b51252e3170a3d37db82141e6fdd16eebe6caeaa4e4cffb9e4cabb11c6162ca42d3e53ef36e5cf7fae9cce4637c8c9d718bbbdb4cea91b0aa05c02ba9af4a8f710770cde228ebb61fcf0743c3294b9ce6dbf80b561c09687827c4c19e55508ccb649d9bf1412ee8e0243e9f37832a0dda59f31c27b68fe513ca773131d048ea74df70989134001e4140c3c07e491fa29ee91093488fe2109bbc1a231a1e9438e1aa493447bc08f787f5da9c498a1d5d54000448083f38dc3acb01df25a77e7d35151a2b252ba1dba9c6ccdd50f6483c705ca5691b18dfdb2e7d86fcc564aef70e05c0698d52e3b43c9b609b39440889676f014146e26761e0cb259fd0618a9dbc20deabee0f828500f74138892a2b1e541b0b0164ba73d59156fed937653377c8a2d67a44cc2571a1d4a52e6b8b94bbdc417e14c1049a151a6321355763157e55fe50e2477c5a6c980e605aaffa366dcea95a650aba0b916df96b96e76c1d3a86a08e4208fa54fbce16a0e5b7f921be97cc9b4b47dd7cef999325efe243f90dcb80c2406fa9f260a1b4a505a8394396ec60acac13928016608fa5239e60291533ca76a0b05dc0c319416641d5215f004e418946a1ad982eb20f1dbc115d9459e997f6e17cd355b270ad6d4bb82c59955e1413d73709c44accc8b49125fc5832930f22842dd0d43d5b0e4c804ff9f978cc98406dadc8e440c5bf44930cc8454bbc6efe3315f27fc6b1b7d1cd5f429c866587d2306185182b71fb3306199ceeac1ba363320eb1c8b8caaf3eb8714d682056382d209116a964e08ed40330b47f9e052ba52e471213a586acaf66520c6d26da9e8c89866df2dd1f7486d12ff9bce4a96e4c3f5070c56865d83cb4a33d303353243af73aec32a6de1d875e59ad1e65bff6a125e3d7ddda5a8b2054f8feb3b0750b08e9fbe9da44c24ec6ab2e174122a466dd7f73de1da0f2a1031dd6a1074c5b46fbcf1237f49fd8520058a3751390d0edb927692c661c54159abe61f702b5d1826c1fefa2b97dafed2026e706a9553ff8659cf6588b6cacaf21c4ef3ef7d50d961d8d23b03a4214e3d1e3284d03a86390bf793727a93cc7077b187550d2e5666c2ca11bef5f1f16b3a4008dea130a09c3db5ca4427aae7be4ed90de708d20f4832a6a0379f451b03cec4f55f1ccffbdb5667ffa3e2b65c1f9267e5bec3fb3e41f6aedc546a55cfb8eed29fde55275693ba83dd8b2dba4752497028da0c3bd1c7c085b34668e852207f9480d080b55805b1561a0879289fa6989590379c6ce72b416dd22aed33cf9e81322d70a78167ebb93a916b8857332e4125614e10ae8e7df6cc25a87f9c5b0339dcfe7b09495d8d60f120ebeeb7551f5dc177aeb1096b4b68370b03c63db1b5c91f64ca9f615ada535f2d4b9e8512d881551be98207bbb2617216aef3d94a68027b5668dd5acfdbf0390b902cc16bc62a599bbd6b86dca3b0bf0502d51fd008d3efb3a9aeb6ee7de5d7a8f4fef86df7ae497aa23aa02361694b4ebf38e95be71185814806f7fdf3cbd28e581600c63510562732d87cf0da35954d62a68e4de47706b59f43862423849bd22097856930321682db0ddaac1924a94ba97861edb5955c7b65ba59f0c758f4c0403b1cb88445e3f0e8b3e2a13f760ced77838642182bb150c3ec118acc76868d84a888ddbe517758cfe37fa0dc5b2a1bae27174b14fb4fa83b2eafd82bf23ffecda940cd91219c944d18e28aa5471b5cd6f543708f4c03f969f9f887c3677bbafe3fec7e30a5cbaa5865c158d29cfb52d2737e30d1d19d2c43745ea6a9ac7d5cc3eda5efb821f4ce1ff44e6fc4661125cc079b55b799b0c4a8f1583b7a3c481cf496a35f2e72210beddf9356d0ffe74ac90b0b12e571d4a9d07b88a0dc8ba44f9f697abd4fbdeab1c11b78b31c9145fb70b3724054b1208469113983cf46d75c4b560b9782416bf0743ab76dd47885512915df674b70ee1f1c21d64e3ca1d7aad6bc59297ab7d5cab82bf6744ea40e5d140df6d21ac6902b5173732461c4db2fe5d99ecd6444972f12c102d53d1a1be67edb55ae9c573530d1409c9b050bec1b1d502bd13b65a6d0cd3cccfb50843464026cd49e83ae4e4015564c12e90d86ddd05d60f196010964227d1eb198f6606043ff4c4739c234070fd8f699db789a12d3901f2bce6b82ab3313617916bf9c5f2abb3d79243636f329f4d4e63ae4fab94c88b799b0a21881024bcf514400d0a17f0118c2ab7a48a2e015deb7da4a8ff113f00a5d2368ccc990ed309a69b9c9a791fe41f6a93c9988e55009ebe846d7040b92b85262fa0e0a740c42323441bc0c19e28cd79e3527adf2eb82e3f5ebcba79dae2e5bcae07e67684c36f42ff9aa1419e7cf64539b045d1f6e0d3f6c30ff74a212ed4acbd9160406c936eaae439178338cfc26ba0bf35fe5555680d6be43b72d58bc1d9cb4c64044e8102012e812671a5f9e66f5b926f7e9657ded2e45f6b54a4fbac06207ba2e79073e83293842c1852603075db3dcf4ee041aa13799a7b0990eabf21136b136af91b415748bad6d9a888c95d4224df3b6a873626dea6ce0ffe27e647534aefb3fee8b7d918224848bbf90f092b1b182dc41fe842788fb0f6b813fef4cf488d7f6d827b9637c6cbe591ba75684abb7d0e682bac1e4ef784c65fb91c4af2b0bf66973dd1a911981d2da1eec8d231ce8239d07a6fbac46300b54c4b88902d9e0f232b61589fa0db4088ebfbb082d9a49f5f87359fb73163e741c38f25657789e19a8cc918b7b6d4ea50f3ae20f49144b7e2f8f4cb838043236ac287959baf5a01e6e6ffd99f60201a789464bc5cac592a7974532b09f1e72efbe06072e1c3cba70f9b561cde68af3935b6d425f6a93d500cad6314cb64b169acf4a724c55aef28f29353f40007f9842363c4d65819e7b202e7c0dba885ef25117afc207edabfc7aeda6be68a32f49c9f71245cfeb7809cbd0a914b909a7b5df2b228a4d57a276a7497e7c314e2aee2e0e0a5b266ed1bd910b32207670b1e0899e4e9551b15f8163328f4460aa86adfb3c2772189d7dc0b55ed9cafa7627e72d30335595595a53a9b28e07688601b70202c9c32bc858aa60feafdcbc286327923aad16706336119acc9e04a0e2f6116d47ab53f27bb586371d4b3de2e42c9b7fa44222f2e96e74ac80b33da58b83ff6056359a47cb8c43a9d36aa206144433c1da6bdc9922b748a8e1ef84d9ed5fd0b012d6360780fbe35bf5437ea5cf3f2dd160fbd19d9d05227130be78c6c6125af1acbc1525ac9ef1986465381aebce76f2c9cb648609a70645ca5ce8e2749a69a531de522593491de9084ad0c0c7dca81ef6093f01d521ccb09e0d1a6f9307b84c0b7b044c9cc321b704b63051903231f4e08330aa2af6d1077335399a2df62d990bb900d61963c40d63d191d965eb81fc670b69d55bcb344356b381beb117ff73b04d8e12491bb58708f639dd43ee4f20ba99162a121f17ac0a63aa35931c218963d1a81e45321edb19a8825ac2b400ef9a9c4df6eea899a87d89d5ce4e10899ace91759a9cb0983ac3912e993a58b9bf38082c29f67df45a1201e88b0d9acd02e25730d94a19cc6667f8f212a841fcac55926e7693dba72eab7a4d29699f296394cbdcfd75c0db68f9bf11109b27ea429242f1dbe37211cc9c584b373e2c69e138e992a4f909d7747a2d316cde80866852057b837a9c786d5ac39d5200f940d3cae255703e14585ee22e924372a45c54069088a9415708bd48be392551373406ede200b9855602417842299ec8626251ac413b84e9af21e3d3287d5fb678526bc55e03638c2adc366ab4b1959c834a9009f08e61a916ce9bae1f1d0a9b1bd49710e990085228d912118bd31cade9f7eb447185d32562e3ba4ee16f6eefc5a212a84e441dace1fb9a1d255d8718a262b5c45253c10c86c0c526346083bf66cfb62fcb7149302650146a4dd3d72c2592bcdc7409319c67b855187305faed77556822b279a1de88424f9729fd04208a3ab09b5822f75be62d2d5e34453a59f3307e7eff7a2bfcfcb5a9fbeae06da20acf12cec3c96009113515744371c30ce04aa8586728fd5080a1f91f82004ab344a831feeb76f2ed1c827c0a6cccb1c4ca68755adb50c2abcf6de962e911b7f8319261c1465c435af8043266142ffca32be28c1c3852b7094b507e00087698fe7b21eab4136ad74930819ef208f74b22cb4caf0754c412d427373c381f97e017d394521559ed34bd09c312ce75dee13c105f99b1ca4a5f7920e43100639071c555fb6d1d03348a804c812584a0b141369a4a1c9b93ea758025227fd6de006b74f869faa8684121e28efa4ac9d289ff0c0f6cfb81c06dfbc8a40b5202b94a557f9bc07cd0af2c0c4b158e1c956ba94674404ca7d545c070120be1dcda576a76fd73c92233fe6fd10fc96c30640912f5f987af8df15ada502395a04afe2d577874b1bee2be7aa056fa25d9a6c16f6116f1713848c022da3020695fba0d8a016014b2599da1a6d9c592c44266c0942daff216ffce4da0b0d79fa21f5d22268355e79f1b774d0e2a3d5dcb0ec45fbd957d2735e031244c6dff9633f69ae42ca264c69ed6c5d05b2996b8a6319c460ba75183328e69d9be358b2bfd27ea30c040945162aadf523f066654d768d03d9a3d187ecb47b63544159e21b205305d36764a9972eb28e8d22c42afc7613f8da71d3d8f7fc543e3358f3fd59d5a98455b8190efd13ea7feb00c1615fb5bb87f81726388bffa6f01277f387714c11aacc38268bfb51465463120da2869af5d89b9232292525a09e2b21b2352d4d7b2e85a8cbc6dcfebc2f69082f8bf55382abbbe76288926e2ad14df92918c6df6241a9d20b043870d5bd4a916552f5dab7a16d59645c90f43ee8e3b6274ed3a3cc84b80506fc61ab0ed6d8df74210ebce1106847872f0bbc6603a499d2686b0623d9f16ec23bb0fb193e239397a6090041d2b4c8e13ca6c3109e82b1736649a635e11d7846817682fb4f22466a8f797ea4d7d59c4f0dd07295c2dc6ef28e9125724f25c9b68c33175f22b620414204325c16ce69e26047e0efa34e97878d9f947ab8850ebb260d9fd22e3c95675d045e3137f9b84614df67c8c751965ab73a98aa1cc3f64dc0ffd1cfd842be826c6b9cad8ab70dcbf1165fb14a97534501a1b46d450c2366d0539f9014356ef5f45c89518d79140eababae6aeee9142ef16ee69538b585da72a2e3b73bdebd5feb1a4e7c58e423a6071231a586f399d91d28b249081a7b5ebf18f5ace42572fd3c1cd039b25d4616914ce8a28541b469aad9421d1b168d6ed235f99f8109cddd04a09d8e704efe777e9cf0cf601b87e31166f504b45b3527750d5d557f91500bc128d145e5f756bf80e38812f4080a9d0207bf1ff5401144c9e4772b5b49eabcf968b36da4a4419759902f57135e940a24126aa974106c4a0b934ecf5e5a7c5709f0b893b77a57450fe9d15257c21954b3a558fcdffa1cee39739180b8383bee348413f1b89ac6c6b3e2d76f58c304329e77665f14068e22a7a9fce4c8786cabf475f18978fe89fd1d66af2f6e1a9007526f8be6a595efd2fbbba2fdb889fb56075f0b88d148d70db6a0c0f1baa506248d2e3a40b8f89fab5ba2219ec959bb922fa0efa94039fbe65acb906bfdba9fb893268cb39419e15ff42560c88c32fb27afb82e909f754f94ad2644630c2c5ed360d7595d0c6be78c288a55a1addc51855186cea24a05cb584917907d40f81a1f7da5c3cf4b82e05d258ea7220ab87a00b0b408c965055d4202a22c6dc5ab9abef2f1571d2986971b36201ab22c64b1a15ac1a369eae324bc7d7b0590c84460e8c99eadcee8761e938cdd15f44d3c897baa71801957f8ced000663e9b4f2fd4f4903649e44474cfbf6b279c9a2341982e692c960aa959a59f5025751e8bb51a848e673339865aacad33bf8514bed0a0be5cf4c16396f8aaf73cfc8907755078927f2e0a284820b58a75a74aa5541801d4d7e98be45cd5f1877b907e8e416a7f65d65bd34d73d7544d90a3a79e692b55079999763b05454594dc95a5842141bf05d5c057db30905c52fb64bb120c9cfb7fe822b7b83a30f82894f6cd4c3cd34e44f357c5006ebe1d610354916afb463922c3cc5346997e5ad520a1ea9226368b3e60fd200504650fdb9b15874985da4924b433cb17b12a4c20836f9755c3dc393142aea1f4fda8c75f1c58bd6446ab04bcdffeb0f05ced4799298f17a076a47a85ca9c785330cf28b149fff20c3413e4cf9078a3b10e4377f73297950ad0b2d4a625720759cd34330500ab3ec25c3f975b654813a1e6e38d03369f7efe54e10c47da153b25742e4581e918ef2e93fd34f24883292ca07281e3a932e1060fb15fbacf96ffc48d66139d05cbefc8d7301e23ffddfd8cb6766958a20d6b216ee82f68cedcb22d0b617fa439eedbf759c82b992daea6c0d6a78022edeec31ecaaec54ff026cf92b101da426e28172ab0644a9c46168e39b495a283b3a541417539336d2d074625ffb15d15c23f49760e42c6c2a6ca1c21c30f11484540c652cce5680dd4ef3ee93c53cdfbfe417b76844c275535db154412acd2a5d0abaf9b25296c2cd4279fb0ec8548efd7028a98eeb7f6a7418078cd9afe9b1fbe17d1826452a85039da738a5db48edacea6c36ae610e4b745a95aa73860517cb1274d806e1ed5625ee8d326bc39fdc2451ccc4c0cf8b0634f2cb14aecb6c0dcab90173f7beab8f8668c1e7f2a7705e06abaec7db4da5d72a2923bea5d5526c665424180baa1016760b9bad96868130169deec22d32c51231f0b66c281aaf2cb34dd59bb2eb3b51bbabe3bceae10ef355eba7ce8cbb8b56409ac6d2d4072eca2ad6657c6852d33279215e1a2ccaa4f8f634506331548e6fb3b991cee775998b0e3d3853b8619ee8980d5d50386496643c3d614e442f2091e7f3934a677d2196df1483d5191a8453f744ef5877da253b941310c683e8602f345dad4ecba7ecc4bef5767970daacee6b66ac3899652a06ae57092f088a321ae5badcca44ff396daeed9fc970e39efe94d63619ae6fa7b68e5d0f93970bd79212defd68fae5e2adfa708f854f612ddaa7a42497520f98dcc87f2cf9c170eb31b9364b913d179afd179d0597206da47685b12e786688e54561fd277eac617d834eae16134849cc32668bd40a6b4fa00396b4f2ede3411b8959b80f23409544054833ed89d452c69bf0daef89a7426f39c0d6a80972857e2d6631071c84a1839726b0a2adf70053b5b983b198df80e276a0c31bed7a18a0464b16803bcb3e8f6049051d85e00698e2129c6e054a920d5995f177bc8682822c5c6c5937091cc777bbd7c00f92d7b48186feb4aa98682cb1c1168825435e291058278b448508d83dda13ce457ca1c18435209323b583045ac8a14418d9a087997e2e3bb4fb7b359f5286bb8a82b1d09f70c487ec264578923a296b706ac07be8c69c818a61d09b4e9b2ed007d31b07b3593f18c2f3c0aad693ba0144c931886a158323202dd3e71c338de1d3e59997c38d14961126d89ed47a365555768e7c52377fb28a6eba6238916ee6426c8a0ae45f3bce1ac31c0ede2df9268f810d7f3a32476bc29cda02b956492154377dd518c6f6923f28c291e94d4b05d1a0580312304e334381531910d5ea2d43dabc25537b5eb22a035fb0a5b2a8c206dd5f6c3014876b0ae020ecc0bc5619ea3be1cefd9f8a48ac83c3aaa0d5d653f6a595a7e46e1077d66b5cbcacc0e6478ae45d52fbb789488548fd5765d2846a7192ea44ef18984bb51cc3d259e2466f233143e2fc7438dee0cec335baecb48a27cae2faf563ec916c104e4f91b1e3698243b018d488c03440c5afbb11ccfbbcde69255b1d22a5747f7381582c85bd8b1984c3e3a168bbdb006fe932608e3d1376ca91b83c3b459d6cce21a00df1e2dc0915d646d126c62ba73692410597ce7f55b5528359651341da6e2bb131fc7d47db25d6d9018f91b68ae78ac5b1679be1d7436c44b06e82c3fec5597561fcb6a6ca973721b3d53c97531cf7a9187a1e7d9ad59c5c0e6d6c0c2a385c8c128e6b5ac687a21dbc8a3f55222e42a23338b74c8e6742a41740d3ed03d9105a2154bcd2ff03765dd415d7f62488ca9ab404d725163342513a28b7bc61414f24f2161ea5d7fbd4e1044cf851e7be06204087050b091ed929f297e3300d9c9b1a814ad09d29a821bc200fa4eebdd9bcc612d3292a8f25f3238bf8d45548862cef0a9bc67b3ed66d57d863236556f8820912a2876eef4ce14f9820b15f483dd2f6ae84d1157689d595c4a8f4e50fe8f67bde96c883a18ae1db7b286c31152562ea3aeeb22174c02700113f45a8cc1735895d874a0e76efff5d34a438029d0255f688c7428cdade56551ff4ca8efcba1fb2676fe4c6e0e287410ed6d4635555cad86ae105853126f0e3d495f92cdbc3141544043ba84dabd15722e2d04eac6241b266ca85b3444267fa66610411adeaa7fd56fad0d3ceea7a298ace68403da6a1ab61d3c0685ef166a9e62b5514c6526878c658a61f698d0c1d946a5e65821c88a83d766429e9cdb047666402d3677e6fa97f73f6517117a5486c9b4af513f5518c5102d1788ebda5f633c9c25e03f8b8be4a467aa01323484b943c7d7514de897ed1f5dd50f15126770cb7391195c169e0b894a6d20434efc156bf47c960b5e6c98958d652c750544917ca267e6aa8053d59bd4ad4f67d3a43422487af7167417df5fdad4bdc4a402a578d6c312cb764058943d61f6974fd1a26bbd065945315c6e3182ce46299e98275a83c4695a7d7299b88fd83e955778f191b8effb07f2e76d3158f90f861e5b5a905ed24016b97d9e2dcbe00d0bdffb3313742617118bf9cf17984b678bddd424cfd013a7bce3e5b053d9a1c116bc5ac676f74f5eca3b90aa7978a08ad597355711da3c2f420a5f41aae5348b333edcef839bb1ae9b5094a5b6100ebc2bc545893bd349a5ddef8a5b0213d8d404d60566258c12432c91eead6a170e5db7ace243d4bd76146663ca25d2da14b354786d53141632f8a87e4d82a548114f33d22fad6e4cb01a93907be340121811311915be7d5a1881a3aa2653723958eb4b55922d911dcf326786930fbef34a94b1f733ae9a9c5c06414f4eee7a56b70a04ddff415fa822bec935c2ea80d2b77f5c2a965d419419319109ac0ab648c173e125f6267ae0c3feb1d990681f96608f0ad0d577f1545f1ec2c717af7e713e2be3a32dc90a72daa26b694cab11c6e16d5c4931e4151a3824d2234947b6bffc448b448c062f9eef4f9c66b124c3f09b5be2dccdf4801ad9f4b5f2a938f98fd80acb505e969177315b891de3f33342d2e6d70d2d4d8e731c55442402cef765f939a4390589ca78033d55155fd7c22f236b27e78314c1dc7dacd066b95bf3adc356f01c502e6d85fd1492401de4c39f6d4b8b4960caebfaa03a38d279f323640db90a7b586ed8142aef8d445bb969804ae0614d337156daab5fc8a0aa9463cc7bc3b92eadd019d9280a7cf83c07c31b198d5455468e28d240d59eaac047723fffb6a89a3954104d0070217991bfe50e90112adaebcb8d350d81b706199aa03bfa398194d560e086a251823d195c14f3b50e9fcb8477d2396589c36eed86a86ffd3f4d06eb39fe1e141ad4c224e47f597bf7d8dd98dfb96034c23b14a232c8850691bb296fa29aa84b20cfd8c2ded247e3146179d4ff6e47c92f40d221aa743aff00682b0b520512fe0f5a4be5ea2b7ffe0031503e16da0fec3fdb4236d1190586c5630bc5be27d1e88aff3d695ac0ed165908bacddac51fdc557c7a9ec6b665e2062e2d163c2498f35768f119f0b7c9bcf7f6fd6c4cf5d56cb4e172f6cedbc82512a83218e6f316396684ec917f729d11893af6423259205de94e9dce0b0b5b59c6f1e64b674ecb1e2e5c0e29a4b4b4d4fa56de2d3ba1cef81af7c1e9bd556ff6794be3e42f4d1d3888b45a75e643ef718515bb4ad2d9fcbc1fad05bd0f735a689c0e7dbd16c271f05bb1a5a9982c2cfaf7d129727f69aac68133727289017df2385fa597d83621ff76b9ad9239a91ac530374532e8140ecaa28d015f707eafaae4e81321359f210c34f44cfd2df6036d89bf14da85a7215398d8507e5c3bf7706872ec1e839e33d378b648a09f75109b2e88e870b6e4ed83585f1c97f4720547dc1f8b8133c02253f40a425dd6c568312c3bb4170c6acbfd14bfda2466106c7440cc08302949696508f440cd86a923e2e876589be4f63a3afc1a9d475fa5abdb57e8cfa518a16d2535207cf67fe2b1b04d9d3565ebb39c84085dcc97d7906088c4257a538385fa302100e1cf1f85a4c8f56395fd4f175ba64632c5ff7d28cfc10240deb3b07201e3664fe5210006ec49b280416ef6b94dd533a7407a55f26d0b053cfc5e9e694f81cae83840a80860977899f985008962aa2bcfe84787a10625002202a2027c64db909cb392e2a615258168492372ca94aa855d4dc515d391c22e0a87efe4101c226c5c9405cb7a1a479de0574814687a1c469389228d100faa00087e13c291d685a1579cfa3374e86a0d810d1baf3bb16a4b0e2405801ed0ee8350e2d0a0dd4f4778815ad526e5a3f4efbd2afe653421cdf18a1fbf79b6a0675d79751437118e0da802cddcccb6fdb7b2fff9b21156a610e5d1d14388a78a538f3b018b1fe3fd89e5984a5f5362c8bb6c02b51ff8dcc00781c2d5bf560381cd5d83ff035bd61b355446a0e4179a2f6008c8b65a33d7a20bce2a0267cc938c60d1fec6ccba2b95ed777c7bee53b722ef3ada36d8d11bb8223ba92ac2f27ae8bfe46d6e8680fabd5c48f1c8c8669cb357fa46d46474b6360ca146917405bde830da988058a1df7408ce8d28d076614c90c558ee8ccb6e351ef74e3e17c22b313c2cde8d3288a4a00799d7ac3847ba3cd229a640c0e3978da77897b336470eb3cada38e80aa93d340c74953847c9f35768af552c3c22dff1e864fb269580a60a70fab37e523b7968a374d8713a38be44510e04d15b36bc40882be0078460c739a5560e65a579d1f94048cae5a2f035af2254277ad00624bf97694780ada0a1adabdfafc28d0fe240989a09c8f8688d5d10849f7c6af783d4a5cde6025c84e0f14c20bca28833e64fa21ee6f45ff62ccf65805e6441cace68cdaa82f469b2ced24bf1432675f425d518ae3635fc3fc9196903505730ac292d4f7e9a90ae1c03cbbdd2e36a802c6cde6f7b1b27de3067c62909366d115f823b8aaad79e28ca698011234debe0ad4ddb1122b0d8bc2caed863a9c703231077f6a075b6ad5e16b12e288d4e9e21a6b30c4931de4d7ee4d0e95bc5026ad0e4f4051c1f2e34939ce75e0b5d07549d1dce81fdb667d8f047a3ce8c4a434a5d4a672a4746008c183f5ee3aaa64a1a65aa01ed35ec6d0eb889a784a9319d74e2c7ba54e16c75c48eebb59a24830bf48040fb68fe11200d77fdfaac812dcd727a6a7e659d391d80f90c280dbae307ae45b22b17cf65e435f446205fbffb4436341c31639df3dba3558abbcd6f4835ae78b57e9ce19793fb3e12121d7fc0e194b028035fdd4200e58bdafbf5545aa894ff0a245b3bb049ec11d94753f1134543f8ebe606055bf5e9ca2782731c1fd54a0f1eb6a0a433b71c49a3339dd111fe919845b1e45aafe5a0faed0d74eade58b8a65d407a2809059437fa1fbbe9eee7e2c5e7f231e45a5c8e4e55d0d410347d7e7ef4675ff99ef1a9c84cc09639eace9efbeefb74af26b60762b22b93c2a16afe11a94e9a014aeafe5cd751e4fd94ac54055b8782cd888826cc6747e6dd96b7d798d632bb4c2c5281bebb1678664ae68fc2c5ccf174646e06d75e8649b8516504507b929e212082f94b629e121618bc282d404e0009b9cbf7de405bd782abd324dacd00579bbd8c32b09a6769728f3d1c4b7cde566b692c866d52b77874b47245d82a8dc05179e5218b6389c4839ec793b94613626424302d63b8f99ca1f06f55e0508c2aa9b569b10dd7fd62e76e5a9097e83f0471cc675a2014aab6aa215f71c7388a006df59cd8e4c0b39eeca1fa24a07e093c7c4e65001f16603e5af18fd0b9b521b266929c944ec6b1bdf941537092e106bc6e850351aff0f22791a992ab030756c01a7b2f52457de1b264aec09184751466d3ba2b94e9c595d1029e29ab92b7cddcc33e2a4ec20462dbf20a3f1b371bcdc1af4b5dfcab6bf6c1c949b07d0468c6498b90e430a2260fd74f555d438d81dc598ee75413ec8e9e2535dcd6a0cd5231c770d37315289c72a91483ff0f98d2d61469ea8b097012a60673e35ab5a6feb3923d09af9cae32f2f67e2bc23b6f71b1f1223e67d3e4946c87aedff57cbeae60cb91b6bf23cfd8a89a87d8a16c3f07249343b37154d46f18b9c6b60bdb9fb4412fc6cccd1501b9c383afdfe026f82dc6fbcf02e347e185ba8fa3c1c6d0972dfda78473b13aca8249793f53c81c8fe26e2a1aae36ff91ddfcf53c7623b05c153b0ea9c14e181574aadd85f6abded44be7278bc2b0a68bcc2fd4a651ae7a1c30c29debdadb5de900d2dc29da0b6244de3dc349c0fb0654e19777fdb55873103b3e5c946f7c436bdc8a017e619a9e21e1ccc72f7eb5127f9ba7a5687b55607954dee23ee259687b6663bd0f132bd441c4bd26137e3e33d7dca975952a048562a5bb0c8190ab76d958d06deb21b4c5999fb61a0a4e51bd207bb614ca2ac2e477a94ceeabe1e4a10ed32693c8424df0be2e0cb21d39a0b033009a7228dc9ea8c276319d0c26576eae55685a568938d8b2e0813776e4f27c3330ed7ea6bdc05696896b7751d184188cce23bc81658b931129b8dea07cb5b6fe61eaff55ea0e74bad4cafab59f0e2a3bbb846af121a8115e8fd07d1a89ca79cd16c0afb187caf95f031ab52b9ae6f134df82b9a12e6a56564be32c6e2b142c55680b3ce2fbf706e2146da10da3f3bce35a76648c53a1efa57351219f85fc1aeb699642a1dda7c8299c1390f900bea96860114c6afd86581600996ec7608f2177fa482e12bace20f55afa5d287e20aabf1f1b8d0702f6052dd04e95412a50cc2933d7143f4ef82c51d1ff3a2007b6b244addc04c0e2ce1c6b1d87aeb034f564d9b2ebe7fc854b91d43985e8068aecdf9626f0c694d3c2253696f9f5e5e97a7092cc7e9b7724cf56f37fd50cb53fbc97638d1758df6260ed3b4af3257dce701aab5878919dab7fedb1f8428752b98c9fe54a638e6a8a3f4843778cd1d6a31150acf8008be4538c3bc898bdfa8366fe2ca89b6da0369a743373fe594761d26fa7c4340a62abb078ef003b677ebc47e3edd2a23f9bb01e6d2385ced5ff7cc8eace89753f46194990f2fd67ed9264b9b47d6a55d9d1410a7c545e2d8b71bc603c518f651fc4d9b0841ae121b8c2e2d524502ca871a580b390590cace7e960a6c6c9f4ba40b6cc4095dcdc0f3669acc434d29203fd7f41785aeeade4c54b47f8d6b3a8823c474acba1822dee9b05fd066906b9a658bfa4e2a622a44ccc4b8a89717ebd7ba051a21a28f030fca8c5cd3a3f63e19d64d5d5ff4ea6dcd292b86147e82484ebc4797ec0b2e3713dceed49426e26acd69c1e1fd8774117084362fe62a2cd8fdc75968cd8925076a8492f60dd0742297bbf9681f226ba2c8646eb6990fd2b0359ce7430b44d29d1929199d9f7833d074810122a4707cf7c91190dbd09138404426e885bebcf45afc9ca60a26d40b3a153744dc481e2377f781b488f4f1d531a6cf697173542f665a8ad2de11aed010cfb525151107a439aef1390dfaf40202d1171682063058b8bb5c9e85f64a785e071ae1cf42092f60e54f671bfe8af0954ce571966933bbc32fc87cc56de6ff0b6c70c39f7af0f9ac2a52bcdd4470c779d72528dabc4a4c2bc7fcb946ba425939fa29953b5005952ba55097c180a847cedc14a53a25db41cbacda1c0fe1e0d70a4f7e04d588763a767303d3be04fafae1fe9eeb3f99ab1daebb77fe93bdda8b7b7be73bd95b7f3857eecd80c6ddcd041feb43e41e2bf2ca6b0862771e5d4ef86364182f1efddaba9186796a14ff66785f14dfbbe9488393eb8e629a1076ab7356365c684198509e2d691cb7944cc0c8fb97ffc9d48d37244ba31da496c4766010dcfec41a70d22d6bfdd7e09c5bf892ff8a14a10db4335c594d64f9dd72bfd030a45fe9e84167e4f333a79092fc23102836f8c5ddac793e49aa51ec91d20593af8835a97fda454c08b380dcc926930f00b2fb956ea57a1aa12b7633eab8bcb0c93d45093866ec055c3e3ed2c4e58b0f720f565d16603b7c259841f22561669b2922cb93449a22f4881112ee0ce3bed9d70bbec54597bac149f4fe05c50a816042a48eb0abba8a2aa5e21ea6d3f8fa83ac88d12c367b87c275b9aad2d742012306078719694f3b790ac6552e2d6fcf6232b71fe382dd5a0d122989fe15c21dc8e60be137549e73396ec5c44c76698dfa4a8bc9ed5d2924f2bdd2371a76a9c8b4d5947a29c4a0e8064fa5c58390a9c394ef2f0430bd0de6a1d74211f87be9745ad41f12a253b49553869901332b021822d79100bd2568147f9bfadcaa4330dff77bf49c44aacbcc86f4a61780249eeb553a5584e3d2421f2ded016731b92bc1b2b8466b1dc59db4dede0103fa8facfbd7388aff1040209661998d5da19bfe7a78afe55ef4090f07ff147e8943e97d8e6b2d6becb718457fa5a15f9b8e7d81e03fd64c56a6709b743dfb7400d7ec0280e3a4202f01815c58f6551269cf7c1620b2d96210d3cd9b03332a8b17f59b64ce3bc9e29bff52441e912dc053adec5a3c9665eb2606da20446b1af700656e376b59e39aa9cefc98ede342dd2174ead0f63b80961110690f1053185e241697ccdedb45f925696e76e7416f6be4dd189afd1da722e83d9388bd68e6041c5d046a702fac5a305a59493ad530bd479c9141af9bb41d18dc69c9f41ec0fcd49b63124a5e86e0dc42aa3a9ca80f7e410e8349326e4709800500de3616252b36849983b884b13d6b66ec418ae8eca5c3ae6c626b5b238d104208d964efbde5de01eb0a640a810adb3f6abdbb406aadf54814c9152351dafe4d79bbc30da7eba4c44894a4c44a2c70dd08865dd7b1ec462eec46ae7337926937c265df2c0d635d37f16ccf62d8514a35183829019324b92f9f95e4ad4684cecac36b52745fcc1f8ccc3564280f8390187e4572344226e9dce67396b52663dfd2eb636a30467c5f4d8aee8391e733fbb63c62fc49a2e2a5fc759956cc13e9d4173391f6a235d18a24f6c01a31c33e41107dfb4cde8fd6bba36fb196a5b5f5d22c2d8615467b124f0c352d4255346508e30e8f54c19bd823f117238eabf660aacbbe3deeb4b7e211817c7abc59af5c48ccf5f2d6673d6e96b89920b5e95096beb8d3ad046b1ea9c2701c9232f3d6761d0a357439ff722131d30e253f5bfeb9c8ddcdf751b70a9df515bf8eba153077f97cf774ca07cc290bd4e73314ea2e87b95fcca8a35030c35cd4e1b603f5b2e2a2ee90985f70e4696f267991298e485c2ecb10acd17922d96c2ab56499dd74bfae14913e17d9e20912f3cafda650ce9e493074d64d3bfd7864352f71dc69afefe9a7db74bc271c57a6cbbd993099b413745ff3c49d4ec14ed22ac8f3950b5df3441b31be6bbae1749846d7315e565185121f7d21515e1ff5f15989bed66a29e5b6abf574731ec6a1f8a455d827343a2a32fa62518492e7af66826eb637af95a09b7005a14cf2224725d86d9ac2a07bf646d2a9af5f3fadcfb708600dd98fb3beefd723c61e12a34f7bf3f59e204f251a92566918b68cecc7b9ea54cc387145bb62bc197661131c315fd8c218f3fb01abe4b65b107d09e48b56d541677d00f1213114eadb9f2d545a2216892d56b53e2b7555e87cd00b39eae67c8435aec379c11e96fd6e9dde2131c72a596976eaeb7f568bb447f787c42c0f613c22c738446623e22190f8af48a68f97e24ff6984814f9fa0da32970841ec4c4cf495970f864b2bcaaafc85272b22451f2127f3f6a6c64414769e461c19f8bfc3dafe093edf0e7027fa82c6572e491d6c620898231e4b7224b06e4c9023d9411a5dbb1fce0aed61db15dab09d1eeb4334289e18f489ed3aa9131d6d4e48967b4a6983b7367eec418639c704e6b9dce39597432fc63d15f8fb730a492d2d36d07c5134f4bb71d33d3dbc879e17c47f1fcac814c924932a965133a1b6f238fa494401148022520c2981c0f8f98d9a2b7d7deba6571a494794a588178274eac5c5082b99382390f33db044818011246308fd45a6156279cd3ba56670b07f98a314ba759f86fdec2f0474d86ef2bd618a43a785dd785bfabeff7cb5e57a570dad84c6459f6c9a40c8b3ad84594d618a35514fbf0874c8233004a8290929d4f0b9320a4039e4cd3291dec34ea9e076366869c9f8f4ebc223c23185242117e5c1084234cc9ddedb5e7c1780b547753a027f7595039a0c009e2bc2d5051749f07a3bb4ec12828c09363a529c8320863fc411ac172224b82b5428115a48c534a29a59452ca39a5ec18fb05dd039851d0e451f743cbf0303221e7843a86e4f8b6e161b9561b6d64afafb7600dee55081d578ecb421915cb6e8532eab3aad1ed87064476bf07e4f84120c74f891e9d3f257674ce7226616c8ec314c6a838e886278c5121f46a3e7efc8f213a84b8aaad5573809623ee7f4a486545410663203c6cef96055a57c77af491aad2e321f7128e3bf208a9e270f4917107a76caa8b3bedc523ed25a18bab1da4a0e8139f884c3e9a2176644d7ca265a20f09ea7527a451adc59146c551a7bd18590065e263b0b2418e910739461f18234ad1c51c9d4e511b14cd73f4b1a8e843145da09291890cf190c9a394e19c184829c30f56913ff9a6d1832c5625d621fc9c364a08e184f7474cee0e35afbce8c492741f24f28e40f2a8c494ec5c521c3fe0c158e0bdc002f9ebe6b4966ac1239a74d204fc88c90d330f6f866899792d07dde7d1785265a14c7c9453c64318235e26c6683f48248454794d44e45589ade894b645168425d02b5096419d4ae2659a95e492f668d6bdf4882455d6e96312ac613a7d1403ac713a7da422a6a40f97e13805c6a09c76ba710a1883c62318836a8fd687b8b0760b17b919e252463b676f7d08bb7222f62b78088c88cd6ecdd9e94631489f4845a6a7b10c99d27cba89499ae665da6119d41e7d094b2009a4498131e8733cdaf051388a64ad81827004530079eb08e85ff6d86d9ae336ecc2d4c7a31b7b616a128c410f6f2ca4cd7242e7c114c01efb4f3d1179fb8a87c04ea48f3da38de4ca2430063d76e351ef48197a8b949ba79bc15e7bf45f0c4137fbf45248daa08e33c3387177e9a94afea3d8c2beec2215997c4c7bcf5ade93d87bc3dbf4ecdc0d2483cf741632184345f7d948d4c10cd1878798087cbfc8cde7e568638c37ddd440f7cdcccc18750f0e63208f98678b0ba18c3ec4e90a8c212929a9870efea00c50727c172f9dd851c59bf8b1fcf04496d70511842039a2233cc859140215595e68849cf59327595e1b39939a1415c8f2ba90620559de1ba420caf2da200518b2fc4096f72567f6892c2f0032141ac211b2bc3ae40cc33821221cc9f2deaaa20c3939be48c7ce4006afa3f3011f73f207df38608250058472cc894ce4a86a9c3a5fef109d73330f8144a44c25fe96c8b208024a37b0c6570fb303cb1503294125e499fc158137e6e4796f74f1710372205d9618124108c258f2f143c8c75b8fd6fa89088c85830c11df95b803e9301122dd4d8f2f7223f1cf8780a8051a0421e746023008b021850c765045154a722c5ec25ebe485ec1f8c7ea6426d0d94899bebc4248991929d3efee2d14c2b148caf4b1043a7873dd16b9b1b7c88d76ec62b7ae5d1e325b39f6172642a48820068037400c006fae1c0b91ae9eb8da78b09e2fae3a66cb5a784804d2597bbcb1b72043c463980811ec188e4052a61f0d006f74e275228e41dc053a7813e18d76e3506e9c98e30ddc70600e8a445df1178f72ce94dcf88b463730a66b11b9848cd57a12713e5496a759e27f2c313d022a51a8185131a25244a588896e6646fe1e53750a16308217b2511b610423e87eb7c281ee4a5b4e21a9b5ca26b6188288044480065418c212a028bab0032c6ce08ff160bc891ec4c07bccaf4b60ce39dfe589caf007554451c5922be40360c10716f802188aaa5809d9501944679c19d200e441131a44c96da3e386d00d1b9bebc6cc142c28755f1603dd581574d8dc106208218890dddd9fa1992205a96ad341a6e840e6327432854efe662c2e187514415841a7914d5f51fc809e688896d45a629296d01095035478810bbe2005289e504110a6c8fd2e8a2515685a93b6d10d1d4aae293483a66557ea0466f54c774bc9011944c8dd5d69d790bb85701285064ab38d74ac4af1028ab03142c8680a52701285ce4a0d8e32349ab204275460a80888a8c50a194ec1888f0c9890842453468099900110b8c0046180b2a40ab97f6f86c62608390a15720d13304085109c90c00b7ec02225a7a8780119aad8d9c0159e7411b250eef21432a4828a27305006163491e4480ad946100ba224810a1764a1095a84c2092db0000aaba3a12814d180514e0cbc6044258a126eda68c6052df740090a2d1843128640852a3c00857ba073f0840cc1700111e0c00665a0022905f302dd9565d02ab28a800004206449b0d8ad1359122684766aa818bb5bfe9072f240e068f2e8603e89261de56eda160ababed424133979b29c3c9387c64b0aad787a7c80828472767a7c80828486888e90927276563c40414243444546393b2b9e1e1fa423a322221ad8c919b9a28956918f8f8f8f8f8fcf119d44d1486f86a6c887a66bfb345090d010110f0f0f0f0f0f8f8f8f8f8f8f8fcf1110a97b7c243d42e2e1e1e1e1e1e189463e3e3e3e3e3e3e473c3e30486888a8281af1f0f0f0f0f0f0442323a36814813a3086f5273af9b6dea28bb1b08f0e68457f2e40a2c87620d7b18fd2bdf6e0f6afaff5171717179717ec177e0543076f9f95bad459e9d6fb7eb39fdd4676495b617996a1def2f2cae230875971d357cee2190c110980b91fcd302db010f9e5c2acc03c6232cb5950f82b02945f7c00b9feb9bcbcbcbcbc1c8922f90523c1bd3184dee78281f437bfd25d2e5f5c6ef692f6960b2456f1f6e457bc0ce37bc1e11f5647024ce40d0f5991b16bd8af3b8158c5cd0f9422cb13216564bc9958082923a5544915a5d048075146e08dcc53293167a47b59a28bb4c46270599fd9ec7aebaf6b3fb15ff55d71c453db29cbfaf5f8eb1a75dd1119e5da45a9fdc32750080e5579593367303eb92125a51bcab2d26a4b4ad9a65ba673f61b936cdfcf56c0b4514da3624fb51aa8e68b49d8d68245f37e7199118b162bae5d4c5ef8b591e96ba319f96ba3af8da0900d8c7f312d54b18765064dfe6252bdcbac8f3db5a55c3d1637e6f0d7532cee93e3500752caa86334f96ba313fe249215f8933d2dd8843f5477b865bbe9dff60e85dad182bff8b2f5301dc56970eba1bdbfdd98b3161a7663b6a8d2ad5b6f98eb2db66ee9baf09117952c9fb8ac92ebab64d22dc9f54dc8236d147bdaa8a7a70aea18b6385291db48cad4db884951467d774b7662b930b7944e75ae32484a20e92349f04911d8ae679262955ccfc248d6c7a4d8d9985d6274fc582d298a557a9af4d1112028326922296d38166aeb617a764dabe176462266db92a4695416700a5138b15ce648d95997d7a06d55daabef1b93ac9f4e4ad28a92886a7df275935c997cbd24d7fafe81362094517a7dacd2aa235aa6be96fe350cba733fe1253912541347905a27d71f715dda7747b27848cc17fede7fa1a5bae64cdc0bcdbaa85fdcb12b73c5a45c910140c3aeccb05328ce64a77551df50e7509b95d19a43fd43b5bc6fe516b7ada53116d7746dd0525dbd0ddb8e1759487bda57acc3cc06cd5e96eceafc9c565a50d6212af334ed62df2ebca19c65af3e2ae6dac393d432d576a85bde2757dced3feb574c5ac1e18f436d3deca5d546edd5df85be1475a5bf8482ee6ba34d1e4829cb636f299d9a5522c955f6c824b91ed6afc09fb5dd0bfe50285a7bbc9e181d3f564b8a62959e267d7404088a4c9a48608dced85da6509617c2182d729337fd93ef1e6466966d87c44362def0c7c968afaf2ca739e7edb5edb53c26a17012b66efa67bdfbcab6c3c24362b6b19c724635d8aa366a99fa4f3362416ad14931397007e6cf7e35500836d194d0b5dcf44e6e31c9ccd77a62bd56848e5ebec6a45c2394b15edf46b046bf7ec50a138497f5861932731f482937b62d6dc56d87cbbb7497c32d87cbfb25aef4928b7621c762a2a9814228273530ca3764e8a4064bb2dc72b4bcc4b9bcdf2ed8470bb61112b32946e90a01c1846fccb0198244f47ddba8532dafb7366be51467e2703bdde9d96e395caedd6e39b4bffc05b56ddc3b6c3b9052def0af6f5b0fd3393c246614fefa2dd7b61ef61b1e123386bf86e1a1f9b02e24fa68c147b4572fa42186547a773f28865c4b58487b75c6768fe8570ec3aed1d3b696d2de9499d694d7570d4ae7a37f3dc8acc7b61d8d8744ecc63c25953c96643ad761cc4daaebc71bfb06c69cc8048c79c268812ca308a20f941c75dacb494207f13793a1511152d5c9cc985ab4374fffe5c839257004c6b486826ec3c214d006ac21df8749fdf5d19194b2251b6948e8be3eea2bc01a43ba3e8a36ac25b96990fb1a944efefa277730f9ebd6d623bbdc786497bf8d05d85ec8dd636889348806d1a00bbb39628e3da5bdeea32374f4dffca6516e8add2042ba7c3d3b0b0d26650d7ff3bad99261c5b0366c61cf2c2b3b76693550c8baacb7f5b63eeddb62cd08dd278f8eb244e2423eea94858fe41489046bf0b0f0bc85ed9154c5ae7545ed91d906344dab52a56115fb0405c514598323b90f5996c8b252aab3b304dba3919266c70b293218237f39238332ba5961a5dd75b9877ace4308e7fdc192219cd30a2c4e6262621ad546481923a40ad5751ef4a4ca7a5f875459b8011717acc5ddb3d21e544a20b0b0b058452cc088228a3211213409286201d902da8b2cb9d67afb1a518412ed452275eb5b9a7517d03291feba119cb5b23d85368e8832e22df68325736f9c715a141dc71d116d100165c4c3228844a46562dd70b69206815c6d0eac214466fbed2a21d459223c3a379e3046bf724258f6abff0181ac9dbb1f912acc40044ff20f2255988108a4c8558913e9546fdd42a43644e68a87c09aad4166616c2ec3538821302cc49cb9c2bc007b1696ae9bb2958032f1300906f9f39256b14895d718724411e5c485cf68a066a0e7c6fec63a7cd7a7b9c2348ef97ad7c4eb5aa841963ba1d75e7f4232ad95d28e81991358d4540e814a4aa59c924a6a5139e7948f57524ae59453ce5b4a25a5525229a59c544a2a4f29a5945239a93c9592522aa9a4925229b7532aa594f2544eee36d2e4434a49299594524a29a5944a29a59452527a29a5a4537eca39e7f419c2a6e386d3c247d64003d9909a7dc0f6a20721aa059c7047a61516a1e11272e3ce61f31bb1bbfb49ad2e6acc076023aa45bca117f69c2d82ab021a138c04180964900cd270208334261a0e30125887315f5cc125abdc5aaa33dd6e424c00a22ebb9dd23b2cc1d0c59d4e751677b27f3127f3ba1332730b8ed2ad8fd2b9f7a34edc91f70825be997d641732b3e5d1f2d2336b4da71b4ecb2db62fddd81db6f765371d06013002d6e14b2da89b2e4c867a79b6693a7127678a51cc8f221610e14d29cbde75ddcca56757c8cc269696c9be5d9cec59c6e1af48e64c5dd7f2cef4ec99293399745c4e81dfb8e09feed9d4e4666ae9ce52c23ebaaf7046baee2c9888672cb80a74dd612e1deb3a3c7102da3b5d22ba8f482ebd4b5997611a5dd66558c8cc1d86e1c10d99b98439bcd500bb12ed5d21ed7586617b611ded5d1b237437f5e688224a8f89b5b8a2535bb5ecee6e0be7ecd831c8225195b485c434a3f72d6e75a3a09094d182bacf5a946dd40caa51728ad5110d8a23abd5cece0e4f134df0f0ac562b272bd071b2821d272bd871b2821c272bc841d27dd6ae64162855f6fa0f5994e94594bda1dc14de9073438e4c951b72ba9b0e69abb9238d84904505e81b5954042debe8e80809e99b3b7665fbc61e755fcc0a6e06e81b59246524feda481a211569a0b38ca4aa6f3a069d2c92aabe696d25bd90d1cfae53aded684798e4e49e2942cab490ac448ef8a3b73f5851c9b04a863fd0001572563def06dd47e319a1dbbe1101632b62d31eb57b7d3bd2de8eba6575c6e40c22411a9aa67100cacb34f65aab68a095dda0ebcb0d749246fb818a38b5733a27f74eee883b47cb394248cb340cba7eb7cc913a1676d560a73823dd8623a5ecc71ab37f92dbb278711cb74569dd88b596751b6fc4b2aeddc8853bed7a56b16b4e1a332db043af7577778f20839d5af51b7fa56d76afaa55bb696b20ca9875f69128a35fe59c5dfb19daeeee19e567cbd8dd3d538d4f9dfcd0fa084f63d89ed4a20c296307b2ab0bdd373323678cdd506809198cc926a4d4aa47024659a1ad19066f6538ef0c6d4981504a294682d3662d954a1c9cf646aecbda5f46acfd76235876231b76ad6658bda2b4515a185e56fcd392ca0a65476ae7169f4569b1a08f39cad37b29a35503426286e111934d379d7bf411ea7c2eac6ab7de5b262553fcc5e4fa202953bbae2bbb321be86419193a095a922d6fe61eeadd4d93a1666d06618d1a6fe65e47c4ebd550d0c5a2a121a2a066d244f2409909248d6af2278d8e52a51a4f8802b421a34419b0c6f5e9721609219440526688e5c29b282d24254a9ef4b5dedaf1226bedcd967f3546d6761d0af57b7d64d4534c1a1145d2481a5dd2629e3e3aeaa33eea29d6a26c0b3aa5bd2979787a49ee994f744f923ce7e4993d924acb2a79ce39af41a1cba87ccd853c7b8abd7dd41e115266dedaae43a1a0cdd022a19b4fe4f993e7678e3757794e3a2fc30053a79a4f8e01f2e0d244b20a79b69428a3f479c9236d87faac67faf54b8b7d24552de4c915405d9eb33b519e6b0245e4e4e4e448550b4d18bbe75b4ab42187a28c792979be7ba654596984f10bfeaccdd85d69697976eb5dee76c933146d3492a22339948b8e52dd3cb6ed78911390ea662ddd5efaeeda67f77464e76c99d57a4a6f6f554a2d2ccba8454f3125dbebd58cd045530dee735e4a2126c95680aab823a70053d6674c1265ccc79e2a78c2b0da020df4ea5b6ecdbd0189805e3dcb4d0094a9efee02a057bf7295805e7d2c922a237440997aa422580f331c03bd2a537fba28e8556f0749b411a18cfa59e74eb5900461bd5ab5522cab81421583360d73ee22113376d385b1b74079499e4168b64fc41ff8e43f40e5204f1ae46974a51418435201cacca9030032fc0b79ca2c04d10ee488ccfd33fdf4ec24a7184929724a9ef6d4890d9ac838ec967209bb5cd20605bb1a1076337904bbd81176af26d8b5dd835dab0a766b117669092b613f30ad96f23591c018d6b34cbb5c1297b5bb41d9b27635202d6b379347b2ac5dec08cbdabd9a5c59bbb67bac2a56d66e2da24bb43be30ac6b0b42b33fca143625b8ece188e8131acd7982b0bcec8e9a7dbce3299369caebb343afb92e9f32c4ab75b0efb937d7d694aa9c664b8ed30dd84617674367d0803be22a61cb6bedede4f1a0589c93526679876bab03d13fea4119646edcd4fd1d55ff3d2a853522ace2ecd669b7661c670dba6a94101451b1b943163c63a5fdbf501c90e7b7a6be3614fede9e516843d0612731df22151240b7929d36717ce6a6ffdba1fcd8c206891b5ee07a390e76902e28e5425a1911b0aea49d744b5823cfbdaa473a2b4b9c434921745c04e066328a514834de8bf1676d3604e7527d829693229b92650aa226e385aee722313d3c53175d2647a69b98b75cb9275daf6acd3b20b4d379e4e2b5aa9fb89842d39999d3ed278ce64ea366d335d985d70441f214e896a5f306cef45096a93e44e5cc91064faac25332135099276d336994ddbe396a365961297debd246fba319b6ec42ecc5c5c5eb45487facbb6e345de9eeab26bd66428cd7471e42d144a9aceddc82447f4893e526584943913af09cdf5af064318438b1283da06d074c52058833b3d842bb2112d9767c1b03d164c6f6332fd059b6ef107894c77c1a697f007a190e94bdc853086c9c2a56777b933735b0feba697201a145d6e64226423a4ea9e4031e966d1b04b9fd1745b9094b139b97732a5d1885e4fe8fa4a344ff7276c2fe966d2f4d3a809fbf5182376a1e9c61533f7385daec871facab36832994ca6b7fc6432ad60181e2b7efa09af68b9a89d161cdcade9c6ec723b5bfad34e5a6b71acb8e9f266a67b32e1d3238b8bcb8b757171f9cab5ad87f5173c246616fc99ce3ddb7ab4dc057f26181e2e2d7741bde5c69d1626504494e8e181493073d1bec8f2625f725939b6f5b06ef190985ff027cffdda7ab0acb06c395ab00feef63eba0b8999e52bf774961b87daa3dfbe72bfc8834cb793f6c8a43bca2816d1a09611be506e4a994fc3ae9098ad46cab08696f1820cc67cb527d3ebf2c29a64b40748cc36474867594bcd5e487ba8b456761d9d1aa414053dd1469fd229996621d3fa8f0acd0be4086eeb715d7edb785c9775597b9a02a8b25086deba20533a033843a6700a49c953a5b43d878e9a08b547af39a193939ef634add2a95b1464e6249a512559d6483d9976126d3164243a1ba953f04da55349b006eda1f4b2f89b11cab015c32e5b6b0f5784266a902497b48ec141a65d42173f4824849c912814acd13fa87043aeffacfa8f7637947125f4ecad545950c6bedeb3af3567fbafb35e8e5743411761e4fa6efc459f2449e8726a8d811e0c98b2deb9df979675f8eea120803cfad6936cbdf2e8db1244c9f6b569d346cdcc7417644a3ca33d0ad4019901f2199dea7b4599de227440b832a587f0d321d319aac1544cf529b47a5899d520ac01b396a3b501512477631f9547df9e6e3beaede506244e1ff24262eec32932d82920f3b13f3ff1905824461b40d9fae9afa689ba85369695ee64492129d372d26ad90bcbb48d2b75a6d30a4b8bcb0b6a050b981633d0a0b9b85aaadbf1225f255f395d8d4a7b2dc73e3ad6aded88cf507c82e118310bd359309cddad673568f2cecc72352a485a958de7e296abe97430bb684841663e9d4ea7979f4ea7d3c9c54fa7d3e97409e5743a9d2e4fa7d3e9743a9d4e27d44fa7d3e9743a9d4e27eca7d3e974ea9f4ea7d3e9fae9743a9d4ea7d329fe54fae9743a9d4ea7d3a9e527fad3e9743a9d4ea7eea793fce92f369cd369458b171a60565cd030430b9815a713b7c274326d2c9056bc984e5d135e4eb3847a319d2687d595b55d1892e934abd6843e65d769d6c69a10bb8b962c52b56d6313ba993f69d462ad6da9402b5843b28e561d573baf484b2d983b9d4e996efdeb76b275246b5c97acb35877b9d6b3184d5e99592e9c3dad9272fac809246750de3e9174aaf4edb24aaba6d5e98ee46f369137986f9745ad9ad668bb84d229ecdbe592564dcb241335217a92b7cbed72d5aa6979baedf248a7a6b48ad2a642bb0a953a797b1f75eafaf61e6a15b5445d51dede4d3a55bfbd93b48ada27ba4dfbf6ce6915b5ddf6b83d466955b552ba29796bf9f618d4aa0a2465acdb6eab1649267a226f8fdbe3aa53dc513bdb8f6855454901a255d6ea878e4e0561390a8866a637af5516504ca782dce5dbe7761b369c6daea42a5b4919dbadb2f509348126d09c44528561139bd89c48528561139bd844ca16d00a6805b4ca16666dd7adac5322a9ba90a48c756bbbceba88a48c756bbb0e295b1710d00a6805b4cad62b90545d2b2963ddda1510109154592424222422cb12115524a28ab4922a0b04b4025a01adb26557965d0165eba5ab51214242a12ccb7a29c164ab120bbc02856d0d5cfea4d1dd4a78b348db86842195ae3689b655b6888888b2f5671710aab4597781556c5527b6dab0d5c456d93a0d9786542bd28694adcf60235125baac16200de90282a9f99346d70a5fab6b75adb275164ce868fea49145b2d622712c4a39b2b493ad520ed124aa444d745770545ac6e2aa640b85c2524a7bd63f4ba53d8bbb9d2dd0b440d50235104b86b28eecca7ae6727a69d19e7596f6ac77ed59dc2d0e7f9a4b67960b7326addb0e73978b22b14665486a48db0a8572d970c4ac212da1abc790302a9dd230a46c3d5b496bbb2e5bb551a73e8ee8eba674cababc9da5944e458e8883d229edd6b9289de26eb1642fb496db67b91c94f6acafdc8e8b92ad4ba12e09c52175d6336fc339611a37d24d07bc9e01409b9deadbdd52768d00a09cecacf8a43deb25eb8de258b64ecb220d3af90e32ad0b07995943cad6bf6cd539bb418b5b0301d690982b028c411437af3143071fdea226953acd0c55cd002e8d19335ae850e35c10cee339263808e5d084c6108e27344433a0d828ca11a5c648256587a34e7d3abe634aa73e1e9e913af5ddb80d15183076dc88448f725c6c07c78d3e38d7081b9bdfb8f11cc303ce7780a1aa89b10163c68cd3c4d0b0f11c6a8ec30edf9282a892c3e3b91c1c1ecfe9f0f0786e873ba2e3f1dc8ac6e3b926763c9ee3e190fcf078ae87e6f15c121e8fe77c3af5b1704f74eacbc10175eac3f1fc786e49a7be16d188165d493cf9c2f6f271e03810392e6c2fc779d0d0fc871d2d685cd81e8debb83c5cd81e0fc7e1c2f670780e17b697c3b7a04e7d3a1ebf31e9d4b7e3f19b50a7be1f1ebf35e9d4c7e3f1db50a7be3e108fdf9e74eadb1ec4e337a24e7da513e0f11b941e8fdf8a3af5716779fc16c5e5f19b51a73e19473d7e93d2a96fe62b1e3f25d7593c7e9bd2a90fe6423c7e43ead4a7c4be008fdfa874eaa350a2bc00370a712394f6e2612e7d7223517bf12bee45e55e48edc5bbdc6b4a7bf12cf7ea716313edc513e0067181b891c70f77c705a2bd781d57477b3cf0806122f3e62465b4a31e4f8f3ae5f2789a24619e037f2c38f08762711cfcc5dcc09fe703fe66e48f0e79bfc11fcdcc2d45692f5ec62d09e096a0dc12d12d3d692fbe744b43a526ed091149558c47188f2f8ff19d23552b0fc033fe5037dc067fde7bc01fcd7524550078fc852455363cbe783cb62355353c1ee3912afc98d3e00fa5c29f97ba8ea4ea8f8f2ba972f148c3e3a38f8c4134f00cbc3300bc43a37abc109d4a9dc68cc71bd1a999fe009e03fe5872380ef843e1701ef0d742c677c05f4c0dfe3c1bf88351037f334ad7017f342df057933f38945be0af486e7199abf3a3438cabf39303c6d5f9b9f172757e7c08c0d5f9b169b93a3f3ddc70757e6a566e8dff77711bb0cecf07c4f783e5a1b9d80104fe82380f9c44f703fe78b8f821c70e1d2e560800001c9c84b5810036f4b0810610367436dc00c2050d020471205cf0f80f3809eb0288d469b8a0d1037f34f047e30470818db8b8ce4f10f85362c38100000f1bfe831118d7f949e14f898ba768b8388defc0dfa1e3398e639f83e6aaef3836722500780e1c00fc468cebfcd0e04fc94fa3fa55a78186cf40430cd6f9f9747c386c0e6d061c1df8dbf11c38890e07fe72cc80c3079c1b33acfcf022c7e4dbc4d8c4f0384e0c0e3a62ba181b1d160e3fecb88e19721c074ec2cea02387e330030e3cf08703fe70f80f4666b8cecf0efc2989b98e1739628ee305361280ebfce4803f25333c071cf087c371300d3837ee030dd9d2e0c30c1a0680bf011c87066c8406252fee437e719b97ebfcccc09f121a3e6300d9b14c629d9fefc677637dd0b07c037f38f70127d1dde0cf07eca6876c8393b05670d4b083dce135b20687ccf12c39d9c99a1b160e9cdfc07cf80d4ec2623704700ecb813f0e7fdc7160d808769d1f1cfc2991bf51c34d0dd8c80dd7f91100fe94601700873fee1967d9e63d643bd8ac8799df64329e71125a369229a9e13dec50c36b5aaef333833f25d96764e0ef327edd5e9d9f24aceb629d9fcfe6e3c1f6a0ed50739d1f1bfce5f78093e878c05f0f96071b3538096be506639d9fafe635ee57e33a5c1d6eae0fdfe17636b7bb3ad858dd4dbe8dede13ce024acce8f0d0fa577d607fc75f8eb7e63c45ee727e34fc9bd0deee19e078c8dc85ce7a7843f25f6a50e7fdd77c0495859090f3bd4d8ace4aa711d701256e7c7860ed7f9e1e1dabe034e42cb46aeebfcd4e04f09be8d951af83ae024ba8c8dac5ce7a7f1a7e47ae38f4695a231630039e0302343005c8c7b3a8ceb3d00d7fb0dd7bbccf570e9e8e2db70ef5f5cfc987b5fc3c5b844742f2e154999f8dfeb2eae3d0df7fa0c172e09498b4b2d2e96bb5b97c04410a8e4d2b584b0c30419e4ed4a113031a485dcb76280074854c8302f67d1f2152b475d252f9848bc39dde52a69c144fae67496ab6405139137275c32923250287729a8bdc8fdb3ce95f057244e9cd276bfc7d9566a703b6c204a64ab08102b5bdc661db6e854e3219dfbdbe3cf6da5a04e41a11cb3978e6c2c11e5f852518e25a31c3b27c39c5dec0e75eaf3f2934e5daa361b4099781e0021c7e879341995b7a0d322a9da82a0cc905445222813bf05a186be2d6823ba5bd0dd849a74df1694630a6b9de6a4fb2c4bcc12a6227489b8c42cd24bc822bdf11843a651e9e2a1058548f3021114284f9e3c9162488a27523c91a289144db2528b0c6ab95492415dd319326946945008deda0a70bd458e98b5c65a64c9a6ccb22ceb084bdc5724a3268a762c1a8e9db26db4d0e23e2079ca39e79c3d679c736e5ce591c2277f76480a9e203ae8e44952feec378f72dff6fb494c57a9d127734836e96c716492710c6aaf9ebeddbafde677baada7f13ad74955d75d6234d9c65b78db59df6289b3ecf3f1dcd53237f13753ba9c91ce84bf2d961eb71c3ee267e6b00feef1d831fccde4aa61219d4f5848e78be69a611fd7391e1c8e50441916c6423ac3ec17f611238e50600ba1766b8cb3bd587dc463cfa446a4beb6a9d622f1747b7b3ab5a71e59b6384291d95b2d14d546da5b7fbaa6af488587710914f5945a8ae18d50c88c6a75a6fb37235b28525de971136202d0badcadadf59af032be654af8ba8dccaecbdd78630eec1977adc79bdd464eaba12e89d85b4c2114514695b9de39b3cd12d2146d0a6d8a76a44da161419b42bb8276854c9be2a8bb25ec76c2c88ac2064156cf483333c3aa9665d11612ea1b36332d6c8651dc608aa10cc67c7605a38dae40863572c06c1d7ece9861e5752b7de2135dbc303be8e323e640a70008a118b2b439870f7a98a794534e293fd05dd84a2963fe66ae197e56cb900818431e53411771645267dacb7625a9e4c027074fe4e0891c24c9419276a2834fb28cebda600d84d72256af536ccb713adda9f5514aa7aed30bcff66caaeadcb3cc5a9605572ccbdaa3fc6dd60a4bbc40b4617dbb5a58f0d7597b0bfe7ab3accdcaa856f1568408a604f645e08b48dbf5a17d895cef27f3f5b96df44064feecd663fb85d5aa7d2a1bac61ff7e68b562d887bdf68a2f6a7fe54ddb7ee1ba959e55fcedb8ea61dc8936ea375ca5506cdb72b068d758b0cea525c35cb278245396533761adb5d6c69d28e37add60a6f32b17b391a793cac461132ea29670b5ac6bad6ab7cbfa758168e38b186a5e67c151a0f3a1bdfe12223346b3ab6abfb45f15c358a7c7505246c60b5cdbb96b7b56b71cd77d6cf83a6abbdcf0f743abcfae7a4b3bed70db41b366559b8e59bdd7e65aafd58a3b9b61672fb7d3d96fab4264d6b2fbc5232d2567d6adaf15e850d8616ed1297a1859629db10b5bed7ea8498f8a371a0b27591538dff3555a73e21864b046ccb1043b05fbf0a339bec8f3f594470c8d4e5e6e38ee8b8d879cb7688eb3e925ed6e7a79e7298631b9088d12074c54f0e48b35e8b39a3dcecb6b4faf78b167372663f8939f57e7437e0601528231e4a5fcae0c6927e707db83108b9228bbb6192a7dd447f303f5b5cee984346aa2c6b01a9420d8f52c6b0d87ec4cc2d844b266da277d64affcf551a572483ee9d4d73d795ece1971a7459e278d93419eff56f2048a32e6bfab7bd193c086304e4e4342e775d65a388404fafa1a0528333f85e58218f2bcbd53278889d704c81b82423433520a914492e7a79c498a8a8c8aa491ccf6570aea6950133540cad94553d34242f6f5abb75e64d3539dd523792412ab45a1b3763b8a1509d6905f39265482aae8336fa38d16120acaf39f8b17cd5a7b3d88ebf6b2f60585b2f6c53ebbbdbc48481e89443a2199481ac81fa98215ffea5f9ecdb9f25251141593b315999099b51db59e02f1717aa79ea8348df6943d4c99a219010000001315000030100c888442a150248d3331dd3b14000d8ca04674521949b3244941c840630c32000400000000404040d300967e56b7297f9f03a9c7b93eb4d077e9f4ff93f51d529bd069f7f837ee1b133acc9af8cc57da1b0f0b846f42b7f9f0142b97c919aa36e5fe5957fac3df7c4f83b88e78f506712a0031917569fc3dcd274e0d2f9c64160724235c8d63646af1015f88dec2d5918193fbfd884f0811cc7865ea18a2dd32bf8e51636f0237e6e242d12b6b9aef294e2628904bd236e649358ac0773fcb7d7ed31510c0ba79fe65fbc57d00fcb3221e3dfc26e1970b8c1fd24904eac8bddca2eb0d8a42df3f1a0d129ea2f7bb280a9fa054557ed65e1e960cf3bf95174f4cc8247fbc4051b42c49f3f80c7f0de490b6b12845abd8378b6582ebd276301e3352fc338ca6f0175702bba36959e5117fece21d2465c076f50f3065786ebc03ec3ac5bab85ff6b8486a4a515ee16792e150e4762a90691523b8bf717dda7e698354ee121e2a8bedfbb0610b8ebe847eff6a36307725eb21cf046ec0be2d27decfa967d3297c68f02c4366f979602d53f82a38f4658a2a5b5288964e184ce431aac76227dfcebcda60a612c873a6c6a0f513c66e8a2bf87bae64bd1a881b03e81b714b44c9dca0aa9172910bd98c99d8689c5e09db45e7c9bf8e34a2fe3faa6a154654e911b5e8275781230d8cada7c280d57e1f8dcb1670c06972e1fd0815ba9b16221a54375e78fdaff1e266580139c105f9fdad8c597b076904f88b5b6f82c86e00455899a7d4520cddd5d0042b5194e5fd9ab66f06eb7ce30089570c9557dc0b42629463a569ef29852c62187c2205a24c052de2ae25d8ae7d40711c1c86d521c80b62d74630b1beb86af242e4470a8ce804574141dabbe13f855f8ccbc62f2e9397a54bb19f5cc700d508802da96ab888e9f207e1ec5b8602f2e31803ef2f664d7a3971257e6f002518ef962e86474fbc16a7efc8759ed99c4e25dff5ec948fc729fc67c47e7d5ab52ab2c9e5ee45662c103fa46d4f472d5d15de8801191ab3e4c092db19235f52c5b843663009ab5b90c78a9ddb20c2fadcaa3d0bd1192530a267ae228234d6c67c0ab318678dfcad4d3f8ec51c5724803b02c11050a82ed5ffceac664003ac1e15f0babb5e1d44622931c808aeb86914431e535b8bc87734b761316aa7e488de655407845c99bb853eff661c847f83a85f3352afb8552e7a8a9562565f85d27e59a8583481f8f85ad8411ad0173ef0318d9bbd9fb1cf815f27d175f2eddf145032a973cd7bb41d1a25c97f88a905418c201ed9108ddabf70363006cf7be1503d6c148cf72fc6faeba8f61f973faa672685fd53a7ea32ffbeb382ef2980e10a4f029e71f9cff9ac10855d90fe36d00d295afdcb33544761f3c1902ad29e322fec4f3f779bc7ae3effb668b51b1d230a76214765c3e2c1f11f9196e26d90004d833e2e2ba6999f4833f2a1bf958fe4afcaceb487b59da7c4354286e2c227863087128d003670e9421ce65f8699d64f106c2daf001333a5edbd1d93c2022cf3ef123ba4ed40e8b27531f88aa26f0d3262bea1a4be3e10ca25c86240cc4587713c06397b81970cc1ea62ce3adb972b6ba1b9c57d74c60ec0a3a9e11722f0c56a78eead7ce66e0539a0f3425393fe4b0a10a5c465e60be492047eec3727eaae416629cb73cab033daf2412f9a0caed1fc949087fc006ce51fc6204c3c44639242407438b983402616536929fb6af98ee172518abce6f5d705abbf2639e95d2671281a08f49b73368ed0e83b2f8069f96ef0ebe216328a6c644a43640914342f013ab946704d01bceac818766ff0593854a29d083cbb9deacbee0489426c1ad9c46d964280b3b61e3800fd254efea7160df99351552e5ba43ede255a06b53f35338e7de517765fe586e18d1a1d71996999ecb7c8c8a128f1507735fc158a89475157a53360e6eec3a67ab17e3ec3d0c001c1c53b19c290a91538b672ab623c1b4bfd824846aaac5ed91ba0b806540177ad0604904e0b20283d2c9bf7e8b67ad375523d0802e7b43445ff79778181b65e18525ae1b496170f01457efde6fc92a25178ab044473a00e9dbc680efba708448e506904e01b763bca904975b9d4ff40bb7531cd0c9b05d042f4dd7891da1af3d5d820fd953ec3b2c73b4251ef28aea8450367ce4fa0ddfca3ae062355a8b18555326222a1f7412e51c27f34a775f36d8b41865a907caec49d02c1f8c1c517d1dfc3c3097d2c7961c1fd5d4cceda7c42f5292c0ce5dbbbc67a91b9cf71a03334110bc5a6307b818d11fe4bbf13edc052a933313f09f3176ceb8362df7310996baed9ae3a036a1b31f7f5c1ce53a79d41e095984fca487e073b75eb4c9ea8a9de5213d854c2cf944366b9a7c598a3d9fea116fde86e32135aebd56f1e879fb184516991cb0994ea0f24ec741ce5f3236724c5e5b2c865a28a7d234d2714ec9c7a2e902a8f03bbf05060ad2eaa1c11b9087c06fafcf86994f3e58f5f6f05975b7231403abb2f0809344f1f77deb590236fe15be3e29d156cea7906e2d13bd8fa9ba81f8f833e2087fa6b3966516ded8100cb643efe9b35853365f0a67e6d56850e2e0d2bbed29439286f1877c1f71ff36d70252671a78fb2cbcc25aa8f33d3fc6517f7eb086fc14c7425f6e6054290f7154687e2451b4789aa57bebf40f7feea67579e9f62a33d9c92995aacf68eb4977cbd90d51e601eb2baf859f975b08b2c23b82de33c7ad7ec30806346b8b373dd561ee9f13ad2a1d954cbc28aaf123277bca731f04ae69b71db9257112fe0a2c2d869c425fefa0389ce3942df16033968cb763bd89021df10a3e2d3d255feb8c3cb373c5b89fd6eda1a6e94debdfdf6539441147b9eed1b9f8dd4a43e8c67fac9c3c6b91cb88204006e843c7219c5ffc253555ee00a0994099693db5ceb11816cae4a3a4f25f1a0f1a06449aa2d40105b0b5cfea026230843bad88f298ea7b597ee989facf34bfe628ccb3e9904f00e71691f13488059b842b1831344c6d59a44a1b66430146b8c897833918d6747165772a23ae4dad2e3dee850166dbc425ad2d65dd9318e02ce5249a2af34fda05fff2a16d6ec23b28c451bcde461101fc983b1d1540a8b633a79218e12d32bd63df19192a4a639256a627f84ece21fc8a4039caff759740ae470bba2d6d332415728ff2911c8a640694ff57b858c016ed36a979a5fb4dac48efffb5946f2d31d0f0f493a07ffbf6e8e2df43e4b04267c8102aec9d9a4e075b1c17600577aa6d1757c6253fff7855dcfec4bd8fa58675dc35f49be7540ef97ec4d8bbd8af814373135422c4cae30c180fbb407ace8ef0915646a8e2a5a760552ddfb6cd92370a8750b297c553eaac9a5b02a971ae616a1308d74716755f406e26e51a25c359020067e449352c16cd0b0e158ab87229c59a7be3bc589a2b6d190961baffd98f0ee3a426cd2b185b7a96837178aa591312deb4b8243b2483d72f6352b42d827e29d1a44794264e6259278fc21b13a3c3a571d47e3669057ee584a704850026e05acc22ed7cf67fe03b9c4c79f01686341c34f73eaaed4f7dde893ab2f985b44ca9b83150cfc7d1ccc80016f575d01b2e7ea43d30ce5a13ee4a9198a63ff77588e1d624048d172c983b5ec66ec76bce9a09c61671cf68186b663211d886d020586f669235fcfc018758edf5358bb5983c42ba32349761b97979ad107126853b871a0c02dc136cdab90b3b07e0a84be38a50ab86b1b1080774698a0e86159fdcbb404be68d780ea3435f00764c805b34b14f3f996e6c6a7a3b2254a3c3a62a4cd8b35cd02e0f8bae29cea65c7c0e52d7e18e72f51d528c214a21a409d7c7f691445f9e65eb7508051aeb7cfe62d8b0a9b9203e8753039097b9aad78541e894a9db180d4e1b20aa3b22b76e80642212da36a7bfa20a7ccf1bfdb2c5d34eb4d94422d965d0463a2c02d592ac7411bacbbe6f4304b66266a39e6bec87f5d277491b1e30fbd878bb7b8aa289340c8b2922dfc97aede12ccde061298f63c1b55e686202a411cf59643abbf68156a1d6fe9f8d5a8b04187aeadbc50a248a85e99eb96e53503a4a86b961e022c58f7ac56965933a3a1b489d586f5c35b292df91eb50731739a35b19f5685b1a69a26bf32ba5d73ed387bd73cbf58d2fc451b551d8d182c8cdc32b89069cbfd01ac39febee27907741a94303c2b4751a8c7a8ee4870d512efd693e33e47d1ffc25eb6314a41b881d2619f81d965616123300f4c80d9778a6a0f7298d72b644a2479bf75e9d6dc9c6351be9a7d4b382a489f52e85521496c360ce385c6387630390652c553e9595363911608f975b3829bc4321cbc24e0fe77e88c1dffb8c0d99bc08609dfbbfd9ec48cb103ea885151378f1a03150d8502aa3fe698b91497568d280a87534b28069e47752bf283065bc1c52a7df6d5e0b1aa827b685c154c432435d025faf993cc172747ab3c5de4be412f7337e02556fc033a8a1cc6154ba2d1ba8f681cda73175d4cce87d10a8661b98eaf873e8e28c08afb8ea22c6d2485564a25eca2d22d30dfd1cecf8c00cbd0ffa80317ab3ed16772b8c597795f14e8f617b541cd16452b070bded3bf7705c3d346a00fd72d45fb7a028206a305f906259e447c17e50c3caff6fd056d635cf50c4b4823b41f45e9c5c22cc929d41700ddd97bfed8a5423859745f0eca07d1023730d7ab0b80c231d08da6bebb1b0a2d9a25ba8530ca183c1180f9e40b069f69f632f574dc8c14297875a4287d6e4e348c9e3bdf0dc5c94106930e5c7e1942e1501c76d6e67f2ca67e8f8285fa3295a2fddd1112c481e026a127f182004fb16acbfb52be7547352916d0fe1517e43cc0a613b36916849df5437b2912f39631746eabc2b42011b120b78f518ffda3a02c37d105cb97f2e2a3396faa35a0309f982851e93061c5f3966774e52295fb7648d54d5384d015c6fbf1fb273df0e766f4f2f8fa5295af027d520e36c792bf3c51df8df249f58e0e298020e87263c9f3e402e3f783e8b51665b2ea829b408d1fb9d08e3af06f626d851d94475af329928e5682687c80aaaf05c065338c36f592366e296011de075a107a0fc6a1968c48f03ff881ecc373747072e0e4a57a67f2624ac7abc63395d61b0f048ccd2cd7800143ecf0518bce0aa3781c99c8690e6dbcf30e1c6c89411a2fb6cf0a80d7234d7e9a4dcb98f068846ed92e454a6981c15344df352430a2ac7fc0b0e0f1d19bf6783435f413bbee0de2a9aab07120d847dee66933e8bfbe995264224a70f728c69e7b21d4a2f50d0e5ea73f8b36e822fc9ce31b02979923dac478b033a57e8d5764d9927c6388f2bf1729e61c2830388fcf3ee2aede07c3161362b62ddedcbd93263acacaf6d6f743bd8c95207f30c5a27ae995e3a27dcf1b614c1aa052b41dd7e335cfcf80f166829699d8df621173ca8a6c375daefc318ad6e903f0b34ade91a884ca48d6ff9de1254bac2aa948e90cdc4d198c61afb9b330a781f33e00be332c3adbb39b6dab2410a63818681dbbeb9e7eed47daaad04181455d0ea462eea1aa1140e479c7ee308f3a36f4f283b1423cd4d93385340d3b9faa67a3417eb76a5754dd74293ccc9598a4df0756e80e9506dcf8cea357f1afc8e74f8a592d7c0112d2e9643327bc20e6a4b466cbf3ce70c196d02e7d43792a7df64e779f3d3e2330f5af28b149c7c52bdd98ec894bdc28896263f6e05e406d846ed5311be73369810c6f1590b6034fe53766c360b7a45419aa0b69c995ba720ecac27015263347c610acbe20f193e9d6518ecd1b596ed384da456d69461da15339719d1ea6ac64601f972b9459eb7f09b18cc8b25b79d80eddf80ead8678a865592d2e5a9daa65658442a226ff457eaf602355de38ed36225f55d0bf9854cc95c5f6c681a589b626eb3aa00ef802c22c988f05e55a6c494b68d87a76fa94a612e81a841ff7fabf5378540d6fa29c49a51acf528af23255d5c142e965a6086322bb24983d60cc3cd22b72a6421b8ad3898d49ae5dc8e18b8bf79ff0ae58ad7bd916b059f2b80ade508d6b06cb8aeed0b0bd47bfac4f3ff9a52d27241d8bf839502d4aca4d76341628ca28220563af1ba3a72bab1ef8a9a50cc44263159355ab14eef23d5cf46689c3f365510df1c62b202951d946a7adf2ae0d5975a21ffbda1bf2ad9728a5aa671f142e20d49c3529f6bdc033e1e78663ecca97a9e0a0319fb846f0bb39356502c81be24111d86139644e8101c6947eaf80a4aeb36075b71611dc239ea4067293c719e736a111306ad5203da69043cdf1538a6e59c8d90f31852fb64329501a76e51d771980da3e710732ba5b6854aa82297dd216fb39d18d0be38970ce066135aae45fba5af09bae414d69bb8d7c71b909b4bf48ec0241d74a77915e1b2deca73e2a819c267068700fa08674d25d40f0b200981256eeb3fbc03d8b982c4c0506fc2a20fdef39b22ff46a15e0151d4efafffac31dfdf23fa37e377f88e040ff350e3141ed632213b1026c0316eaffcfc5f3b34c4e4e7ace29d5745131258d62b0f35b647aca48114c1a6c0b86f1c56ced1da27964b4abb82ed91d798f8a50e37a09c7701cb2a36a83ef154395cb5c61947c86ff0ea7f73492a3361e2c724e558757d0792c91e8eeb8aef6f8120b73391ebf401d5031bbddb5fa25ce921984c8ad18ce697f42738a230e2eeeba43c56ca5bd3cc9f773b6ed54911b53b428f2eba8e207ca4160ccfb278193609809383a50f23d69dcfc40a9e7209b8db2f512dd34dd455a5cbbc4ca9ae8bc2caa7459778ec73ce71deec2e70b9d2a6b75a5afb82ec160f101844f6e61c36d0e59e75976abad50e9c5126b6a4309213f1a7ab4fdc69714209ed206f4056f3cbaa52dfc29fc281aa60e3fcbf62f1202e9926912f6b63d8fbc852aacdd2e81fdfae021b321959e723c2933ea429f263ac270079260ec017ec8c4f9c9ed0a1cad340ca1f3557dc5f3ecd7470d1a6028a1236a2e8c889734d92fc0f0bee5e8b91e580351489897629bcb7a1ef0778a8778244eaf8f23d5619410c197fc1ea2924f06227d1325a6683041b3cd56c0c319970327b147fbc840c41598da3675a62103fa67bd53a64a46a07a97afee08ddbfbc0906aec6fadcbc5457e5d7ba2c872ed1a1ad6b8671de8d61fb83287d621213e112cc1a943a4bd0ad24774e9822dfea18b3e5f580ca6c5a976e06badfa3f80056d9975d44a975a71a727045d487c459a16900f32582a3a23573291fee5224460920113d6224d5946b5ee849f1608bf3ec7f6932daf06ebf6e628e5a91b69505be49d25ccb236b4092411820257ed1e5c88955db4d3f8f901d648ffc09f2d9b160e31fa25611423646dbb7fce5e017a12f6b1d84695762e6bd24e3a87ceeb2b237c259f448da89d9de58ee36a82de51ec60c26a40f7a0a4a01bf653b3f68eded20bb4568cdc1cdb1cf24ee09d2cf4bea32c97558673363d0813b52dec2903a5200c047040a28d33cf93e5df50ffdb214e9d02a7a5e20ee7baeea38e7a09e475e29e87947576690a7d21b34ddda593fef1ead19e8fda0c14da5ab211034e0b72059792e6fc3ea17138afe1be07e6970aa51a211a2b404af86b873096e8e9308afda4d3fe85ef7a3616aad0a1ae334a3ded64a4fcac91083c5a9d30844f4d782b9a07fd2be4868ae111635e9d0f40ae9661fb382f60474f652d1cc0d9b974df80d5fd9e38f8f7462e7c95b4d18b26ca20eea8c5c93dc9bec6ffa80c93dfed40140c8a2aa972fe66051d1123ab97ece02d4879bd9c5f102c0e1906f451170b0606a24dbedee07afea5bda2fcffeff1b198972838ba461d1935f9f90a810dac5d9f1092ebbdb3a812a426b1286fad9e48817aa91a401d3f704c914c10103e7ef2d494de5c6115e23a97affe8a40c8c1007052cd5519817ef96ca07fd2631792e854a879555dcea6cb539e0be4e1f4258f0279d1b57cd3b3a367465e223160ffd0428a2077fd268da7a8d20c12b23051cab63289beaea02efb1d595b1648472475c2f6fa09a87b8f5026c04344bc4812847df4231fbec4c18e40becf37d087899a722d2f3003de8b128fa794d2193b5b1009454002fbdc067070326442527f25d162fe2a757d0c460b84f9e78ebcc21d8c4e3290b02529b3c89d083e9be03538066d1617809a38d3c4ba21be35d3c630694f2583edecc51a4c653bc8a0da0aad07fe11391806d42b1cb2113f1510e5e71d6e1f6479eb6b5e7edc6211481f6d8337c9816918eb8891d3f79b355fb93df094ac9ab5a3cd4d9eebb96bef642f752daafee45388e598a6aa19400e69d89432017628c6a7f5d7dd6e28e6c21e7dcb4ef4fba4b932ca3d570292d15dd4bbbd9856c79e05e0a1862eb7219dcbd84d2ee5bb6c42529dc5e3fb8f89e05a0801ad6ee1eeb65dfed9fe49c65c10979979572036248134fc75fa354186fd45516cac16944cb11f8abf63b836ddbe389989c1a010b9164132fd90cf68e8868633032f40162fca02f3b6afea8fcf2bd8baca2b90a9e7bb969c200ae88d388221cc914bd643619608c3214e56dd6dd8014024d43bab3d430864e47be9964c6ead826e1cc2e5d1e580cc7dfddea3184579aa93329140a50437689028fc3f45fdd849e4f946c1aa2454a7f3e94c8cad96724238eb54ec9fed2d672a239c46cfa4bd3795c18b1d3de874e3d24599aea302f1f60f4a66c289e85e03e4168db294d48d0c20ee80d3211cedbe7df168665b7716efd26a33d653b02de9f338d65ffc1e50bfa8d295abc4e97c84f4231a8d66242f7a2c9964e5d98c57070a0d9bf6babedf23b952d6001cecd2ddf026ee37d1305722a781a1dd62eac828727a74ba731eed07a48573d6a316a1a54b44c79884d9b678d6675fbb17afc581e68b757d020c115c3027180cae8033dac89992e21d67083356c9478805561e3acff082ae48870d609723d4d7b5ba72a7cdead4015f2fbcc65a5396c4df2415700dbc3fe8a4bff5323e5986409e8dee628288f7813213848b63dbdd2336f4e29943f3dc25289fcf699b9bcb023719648e0aa91196e22d00f7ffab9eb19ab1816fd2f84554a012187cdee5173f98bcc08dc1be5fe034a4b69e55150b2e1ee132a0ccb0d6625cd2d5a7c011be7373bcc20a6fe87bb1bdb78fb68e2401a1bc5062b544f85b61593134d56d3e931f84daf1fb51612200ecf5e74bfd813db67932bf905b0d18be72deef39e211d42f8280ffe2d2e2af0fe29e9181fa93020974d8608c88ff14666b322cd637f6c2cc73fcdf05ba307b04bda1568d839f37175cc8c45db691fceab57f5503a4fc22027f835abf0840a9aa7a3c11734e82c4e34b0a2ea770270b7d1200e32c666a40a035ea39a19d1aa23c38eb8d44e5ada0ae0cd24d548b0d3ed9aa9d84000be65a34e303dbefef35d9083518cc4d864d60056210dea7ce98610458431cfa4728cef7db4fbfb1b1c3e48d4cd0009d4b6a7c32e5a2b5a04454c475822f75f7a5311acabf4901b311b0e2706478d080485158fef2d98315e243c3ed51705c07f7a5d6415c5536938962a048ac7b8dc1a8d9d8f8ce6da12210de809238f717e91c8f31de18b8b1ce990470da9278fc593f181e8a662f1fe1258a4ef080e9c3fd1ac1655196a533cda2fcf35ab9f15c9193244b99cb9cfb0a4880e251efca080c904c1f4478a66bc481a6253c2376d7c1fa5f98013b42a15bf02df374f830136c545d28771534c0d8c03a04a16d9a394945b195b2e11bd8bcdfe1b811d544ccb204e8f3bd598b0cd7e7b7f42d0b31a25e9417160be3a05bb9ecaad748e7757f2eb9b13681b4c1f58e2b7014afc8c331298ad58301cd2a2b01a9b1fcf7544cfc5c9bf70b91e31bb4ffb05d412a44864ee275642f271a6aa6e478b622a0554994630a63b8585094ee4ea9570259bc3293790ff894e431c086fcea81289c7aca86f3981a2995458bd9d1539c32856097bba065e923c3cca6cfd17cc13fa75100eed938903c1602317ca03d3ae9e33964160248979278378b6d6d043fb5a18ee851ea5c403ff0ba04c3f10f4441453cf534d620e1b0d30104307097815ff13f760802a7f09020056d4a52a20a0142cdd39668c1c4029ba0577931eda5ac4889c770505ac323da3098c5cd9e24ef8e8de77195982671880334c33b126e05389106517fefcacb653e5d010cc12452395c8e66cefb632dc5c103bf70466abe716ae667b05da918172a4947d136fd590c8d4aadd2ff578f8b1e257823024f591a6dd81427ef8840e8a3922e10159202e7adc2c06b59cc4502992b08c639016af0fa83328c0de34df67e064072d96cb82d24723385ae1f0351f5730b2f281638cfa0631d80999d5b56e751217b1587642f224a53640c05de2148694f2b86d436905c92862613f0dd6389d20190bf799a0c68e62cd8c9ad5d7b2765d18a566efd794c7ab3058b4b3c51b1a3bca1eb146c89a57ff4a332844780cf0100f75f0dee1310667c6b5636f0d67d2123ea92b6bdaa1ca1177cf8a5b4c8a8735cbcb86881f7821263db5d23ebde1a64d6a3cccf0d568fb9718636824230c309f3f10fd9105467ffb9c79a63d4a31696702f60a29371196ad997d020fc51fcc0a9866c18ac4d6ef9ada633788bd906cfabc84a16db1dae76aa20b17c78aa31c940fc9a9798466375ac5772e365938fc4e75e97d1e018a5c83aeea99e0b56a9da5a3611285c095ab1be66afa70aae827f17c12a4f19fc91e7047fc41ff16a3fb303bdbad704976b6c8c2921b8758518fbafe13285d567c2c33790c4ab45189f87282fcb03741169b12944aa9bb2c1b67553ea1c0529a5e4cf347bac6fb9518b830514bd628780e374b222cdd39c2c29bb6d245d0de9bbde80ad77520ebca52d9985404b024a5af5e6d6327d56ed4a31acf267a33064de907394aabe8fc12ffb3e31ea7c70b41830eff9858781b54d6ba22e2b92f067245d2207b1350819bde50ea32babdf08dffc402f9918f87410e7c7ccbbaaa23c0549b90088aa4c73be8ccf9c971f6c1c025eee980ef16072742d3da211ea2d8821fe5d3dfef5564a717d190801004d1961b1c57baff4326ea24e2355f4a7d23856852874b14d2464a550a60dafcadb965d36ce029a5bc012e8384a58868b5af4f24a5f4ef2c73453661cdd0770d978e862531067a7ad51158fa1b6c46e37d40c88030242105f36477e82dbea1e089c1a14fdbc0931e74e56ef4e9bf243ea67d53adbdbb6692c2578474f36efbb339fef229127dd9176061b46de44ae3c846fe0f96817193892d34e418800521f10f6af712abbf0a356b333dc281c19d7e4088f371a68be3bf7d0809fb93db1fa0ee970d5a9a6c79ce4527045a85730a428f8f311e700bd8116cfe7c4ab32b9b3b1fa8cfc98b88e31d20ef7bf5b755d97c786a063727276ef11418fc0625e436b8a2a3e764fb9bc94de616c3efb8a9295026cdc9d1f9abf4422608a582db041a66b361bc95446368e0263f4c0c660fa90de59537b43c473a1dc5aa2ffc59a03ee04be7f0f3618fe63c28062723deeec0ccf137068139b29ab8a6ae19014d9ae54cff005b9984ddb0dc2fa0a29d8c0a4df4578041282445cb88b5bae8afadfbd8faa573af657aaee476a720fdedb54c515905564405c5b996c18cf8b766769406e549aad7325daca47400a537d82ddfaaa8251e271f9522ec3eb96f230a014ae122c8ef1225bb0f6e0f9a47d03710df77519fff764af073249bbb8a90504e23e9a22812ee7158911a3c3f2fb188c3a85e86dc0fa415b8033709d4c0602eb508f4f58750b4b14832c9dad83a4e568f35ba4ea8eb65a5b80deaf8a9763a44b46bd93b7958c1462b277e20a6e413629f02850a9254719cb68d003fdd242881a173afadac89b442e6fb3ec91ae3d0c032e24392597a7504f39d7b25a104acedbe6c8693f304278e5c19040c51b3a1004c6945db9b99428933f95fae7b34164d29ebd4747dbb88ff4154bae2b12f5151fdb46b0dd90c01b4288e529dfc7f4440580512d0599054c6edb042e2224ad4ab3e5c0442214afc0e1951c17c4723896fd5abd6f6ccec020d6f93f3ad89e08088dbf03701cc10ca4f95666ff78198335a8b388dc29ea2ffeb60a6a4567ef4059f6c88aa88504782267da91b3b8ebcacd18e87218d2a9600a330d02a5beee6aafeb86482dd73b8644dca93dcdc0faca5a42caee1bc042aa34f7b431c43ba2aa084d769432f30d9c33d0df05f93cb84428057dda14ceb7e07e708b35ea703bbb4f464b0f96707763835fd951833ee0baf1ab0281f491dea47d8671b0c0e1aef6e430d40cfb5f1f4bf6035dbd3f10580919d3aaa2194fd161f189093574372c5ed73b9bf4f9183d126f790390be80ba01a88782017e67f76c3cfefb20e50eff75772a8dfc4871410aad89a500079c3702bfc2bfa9a1e9423079984364e204e271be6f5ddb4b8225bea603ed0904c0a253b08036d54b0aeb82805f3a1f6eb30da91f796b6246a284ffb227bb38403c74662d013132fd1422bb27fb4d5198564f68bcebd2aad5b7eb19fe630afa988183488c425952ce1da3586a86a5fe8fbc2bb62fbcad27174b458dd0c941adc1313e76d40887bb2dc600a835f41f31dd3413818befb43274400f2ddb407ff48cc2d9f33322691d251018e016904a4927d614aa07d15df03b052bc6cce20fc8d8a03e95e51def73c918a4335901222eb3ca8624ffa04f924cc84d69ac88a13b56ac2d69ed8ca13b16242564dd4aa13587be2d64ed83a13586f22ab4ed4adce76e2272a59960e81974ab29b8e03325fea26df98d735c725a33d27c2892e6ebaf03d02325fa359519ffea8d72fcb8f7259f3b62a9d4d08a86b27426e928b748a49ba2c3d54729aedb95be56ae731de5bd2b2f155c13dabdc58b11f60c57cb816e4207328d12a5821b19d6dbf34848f3b439ed2093ec40fea93047e04e28caceaf10f5513c40e4b6da8448407c58ce7b6f9e19e450beeb4ef00cde283b0ac560f70dcaafa88a2efb5065c124ba16a6590fdd4092ff9a9c17d5ca584c391b413d3af81640586878172676db047b2825b58c6da3259ee96008027972aaccff59471da576a32558f92e65ecdac3febe560d9496232a08cd4d8cd716ca2a38a524d56972d9baecd2f8c28c9e2b3375307ee830654a0030da81ac93a903ead9872c90ae4365fa2b1a6f8222ef17bf7df24cb332e51155956b3d46549a759bb9ac8b2848749eb8e67f5bfd503591bd38c4992ecaf4185904814b4db394be6b2ac64c6225c562ae8815f26f7c61f4cc80a78578c4be3b22cc9ac3b5956ed1056e8c4209e324316017d215ed82ac5e318851da3791fb05f697b03125fadfa55bb9e06333ac857b4812e87bb87c1430d598170e55a2496a5a26b075a0e0a7a67cbba496f4117f8b2b96f18ec356405182e8a3ba35393bcddf1348d3ea913de1a32743fa6d373d9cac2286d27450bb57523fea83a81c7ff9cca4528d54ec395bc6b2c17554f01ed70b10cab189a92b9a2b55b819447bc8bba0916ef49ea4a8faa16549efcdb0185287a303a33d861f2474591b68acb36eb43fada2114348faf7cd3dff9599582f06951f6eea7073745d00da174f0cddf154c6004bb68c22b4b629fb4dd954c6a319c18ad7afa688794cf739ec05e47ab7891b4cb121564faee44462de74867633c3e0bb03e31e35e0386d317f834dd356c67511df7e0c0aee81def7c13f3dafb44c8371339b073b26a2e05e36971ea1d73a873ddf07082156e2718f970d8f454d711ade60fff437aa88d013aa380774c273b79faf8cb7e444e1b13e6effe1d21a7c478895ff02013793ffd1acd909f06cb2e7542f8b3eff1504568127b4732523a1d9cf18399679ff250dc8276955eeb40a305bd02ff41aef6c9254cf43cb7a56561377c9f6e22a4e85fbe8859c77ee9216f75ae5cf6f0be02d760f448f0d206b0a9c7e5f2c434d108d77c4d45235cf4b7fb500b33523d54c274994544d71f5006da076899525873889de69a0b005e83f047df309b42f7c1ab3216733717c034f66ee040ebe41df98543af0d4613082e26e4df1effa7a104ddfa3489ba3c552e2779b4ba0bc4b64e7b8e4b3f8cc5d919e5b1144bd5daec21689ea5f1edd502452cd3c74992c9b9a309c9c5fd80b651e5394817dc69ff144165d60b68518651e2c89cfeaab78d6123717eaa246436859fd0f84d8eefb5b103c6c1941456b4d4636da04a7a475bde110c1877dfd6f360b3fcfcd247f293ac268c2f9ff25f8808d90c761a1a02b68e2c54144f1c7201fdff4c2fe461562e13cc29bae678aa37cf5eb269257986f1c71732fc82aaa6dca885212874eaa6c7b30202f491a1d0ee256fc676c6287f73c4f1c2c86507821f429ae513775703c494be1cebd33e20124bd3039b4bf7cd815007c47a4dbb652a6a49df6135a0b0d194c637f2e0ee5f844c82b71ebf5c6581e75773c8dc2bb2bf4c3f7f2573dba8da2b5a56631dd8422028f2eecc9bfc7ed12a7559699acc230f6360109daca1a05c1ae02365c13832e3473710cf052f146309bde81bf9065c6a722bbafc65b01abf005727e12db5bd18d403ee515c8f44191f000a0fcc41d60e44c87b679ebe51629752b78ca670c7c6e574b6653c8268dda07c1376b27a8efeee8a2e8f02e877a2c72ad94fc112b33eba0301e823d22b1f992d05ef79a0f9ae50bca6304a97e4003ba9641f030054ed6a24d68215ca58f004f3ba0d89a374fe33ae72b36d07885d4fb6b0cf716bb32c7669b595defbcfd468459aa46446ac2a3f6dd9b4ce842b4a621fd7f9d97781894f7a7a0171860362e3da3ee7bbe95a2fb090f8fcab609d743a6e3fbd29312ebb974e3369ea2388a5c4fc92bb043b5337fb7f45d3d1569e59cd481bedcb65033d5c30309987ed3b69810e4a013b1450bfc530761d81a82fe3f80aa2e8a6fa369a9be79813bd08bc1e6539d5ac5cf3eff14bc1ff0c9d5a1f4d87527bbe52a7e2cb96196ea517fc77b279e76a04c0c0f867bbf5ebd42264ed8b8e106e2243f118e4cc1ba6ef32e32de8732d620fc6c054bc8f455ed0c9c5d46d7e284f18c9dcc466b6380198674bdeecdba48ff47843ece023e3ebc5d947fb00ff96c838cbcbd5fbae494014fb54881814881402777e3c5f5fd5f797f9420e792fd6ee4e688e14ae3c8f47e9e216f16d75dc494c7bcd25e107e9b02cc1452602a9b81e52fe5846625b1f9ee0557e79e04bf1598a84e8fee813e16df7423054cd04712af12570eb18e58ae1151b341a3b19c38690b02030e62663b4c4adbc99c59d5fa74b15211a71a4ce98b76f0877832740290879804c380ba67553f946afdf322f59152d2bd28cfbda8c64d497ac33295cf93ad8f781eb665806874463403d873635460d24ea0c995611985f9b009580de2b34dfea242d790466d850834d4b764c9f673897e6039b59454773d3f36de77e07038a082fb8873934cc8ae14a462429f0392551aa32a66bec50c50627defcea4cb7c31b781f313ad5d3125ed24b728c731d744be390918b53aec1008c76620003c9c9625d20b29784bab2394c67688ec12768c1986ddfb02814d6398d8f32931b84a3d352c5578274804eea4bd270292c519b70ac4e6c5e63bf14c87f761dd379f131ede7dc7f66c6651dc016745b33eb5ffb35d2c47ec42793c1ee87822d5fb19cc85767a8cab2da83973af5625e8a6d611be6321f1f303446a7d91fa762e7ab824453e97224e934323d587d71c6cb17df5b4b8ece1aa4661d5db19c304d364ab477630c4216ec60a7662ca16a13464a9db6ca594c775fe5115bc2b4ce48cd74f1ee60bee949fc4589e803bca60bd17cb0151ffadc0dcb5d2210d9570e3ba85af06d72e19b0fb0662df72da9645db0cb4c92fdbbf05dfadfaa360aadcb047a1a77e49faaa76419cd57e0c2f78750b21fb5fce6068c818ccb7e267d81efa6e02132ca2a2be5c0577fce184e875e45ab9716a65efdded16df55f69017ee76ebcf0a727ea91c16ccf16993bc81ec07aa5c0ab2848b471130c13575a58221b898539660153ff7b3e5e660ea460596596acecce0f40bf1abbc9b7fd83123bc24846d201bc8508fd4fb59c5dc3aaaf25d5f6214f350c157a460ec8231a67e089411400faf6eccdc692646d8f88fdca577d41c95eaaffe43f2a2d615a5d6119250b35b66d29a01af565a22973ddff4a2e14d2353c5455ba922e6b57b6e5fbaccb471c5542384c3998d9f2c24c1f1c0fd50b651309c57bfd13241c6b6c759a276b117e985c7a8e8888d7db48ce38c8889e29450c6d64a66711571a67bc820dfb224bad32d69cdb29632a18f752d102a1cf82c9377df219f448c8d695325e1740a0d7c1ac3997dba274b585c21210f64beb8cee5c95c401d0f2e53e55daa13e841b3107c4566a473714fc6cfcba8b2eca5195485c7f9537c9d2a3bbe38c276fb0f41bd99699ece4c1059afa433919d5f8d1107695d556bc014978cc35de63eb233552a2f08b7345d1c3929118659ed327951c6e4266d4384f1601892b2d80e384a47d52c487f253c24937624f01ce9e49e9cb8ba06133caf99e96b55a8a4ab850a731f4ef59f1d03405b70b8a5abdb021ed13d6b6e85dc9f8a4d17a87cb96fa6458c2a5ec1b154d3c69b37256a0d76c4e6caa690b6bb0a83147d621bc863aecdd4db58abe2715c99eea87c2134aeeae47de18dba8844e627e9f5420ca8f0cc3f24c9ae9fd35ddce5053a715859435fec9396b4b06410ecfcde9046072ce15962747b0106b721b34ad5ef8ec903881c7e93ac1bb04ae41c7f9c1aee2eaecfbe6b94360334e7df8128b3a8abcc9532a2ff66191c5a307f1e18d6ee3658dfe6f7a0be54ad70c34bfe3ef6064cd2a9ea5eefb91bec93404e76ae2c1b4001328131c65c9c0592ef0a263e758069fb9ddb8a10d92dc3190ce1f942a60467df1fb381faafad3ee71563df4ead20515a60a88f6c3b7d17a5f384a65752addd1ed547528a9a82194c765c83467a78c7d77a9f8631bcee660cca09f066e164fb4963f56fc0403d176a306b264a5c834d5be7151c1c5902e4412b27f6829f2ee3c4261292ddb6eed9c0f67e7fbc54efe956813d3fd76a985bad7c834edb30953ebd7cd8fb38061fe88f9b7584ca66c0d7c2d0b9d07e492b7ea69e8d8e0da7f38ddd104a0e78d146fbcd14c09aa21a33d8618af352992039be98bb30a304d562ec84fa8c6805c2d19d01ae98d88f167d08b7bd9d2449904df2b8f43cb2e6f239a5c3045ba37022086a4a0a8431b65df8d38f6e0bba855dc55c17edd1a59c8856a1afee4e28f75c14794ad929b141352940e9be02e46334716f437040be1bf224d541ea831784ffa79733600996f32721a8e77b47c97e7e3d74cbea854a2f9097af4b5c326505b7195b2bb8cf96e5d7e4491bb233ec1a89baeb7db76b8b910293fa3dbb7a34536458501b0e827347ae4e7af72fb6cfe2b153d7bbe83186d487a6415c6458814ab878ba40ad080c475e67629d9c0db5e0e820dc423ec473c9b4f5d54b3e8f1a7d1f739496ef68755420cbc373fe00f2625ee8e8f9b9eae43a7a0b5a887f96aadcb62f85a148e9e281599f083f076713bfeb01b2ccf714b9493cc34f074e8f470c7d7a640afb5e843289a5c0135bd459ad0458149b1028d9e2e74158c05e2ffee324cc6d9a27b8f6e98133c02041b6612a207721053c08eb68791f13306a34b72d5949c602543a349919d5f82186ca5f2173497d64a4eba31272e2db0db4237f84484137ab3319f2e5c0fb36b56abb80539e656e521c0c48f7b4a6a61936bcacb863aa4bb7fafa7a6c6fdf8d7e47bfb8ec82c1d477463bdff5173c862e8bf3efbeb97a945b4f2c978f11ce41a4bc738963389d336b3c6e935d366546eefde05cbdb4780064112435199118d66735c403a6fee4df00448559f85680e8868bb6e202ddf774568becb1da43355814b33c245d999e8b8369add5a15a7c109e477422076c0ba6680364a7bed95bb73560eaeb25a45619ee02af16eae39687d584081203401327cf4ead813ab59dd26e7f186259c70b79e38b396f514ecd33ff6ec957e6e01e7eb8710fe6c9618c7c20a19fd588c243e3a3f7eefa53075f30b284babed8f8f8077f3af92a9d70e2b4cf383b7c37b9707b87160c7b0f76a63392c0a9eb8f4fce3e175349f4a902662829013f46768225b0529de235ad50fca761f3410b9b96d1ef5afe6b209adad2f87d8b406e5c8da7e05243b6a3aaf8ac863bb298920965361db559c5389747864caf932872ea1f72e038d1e349d3d08ca0f55c215e83fef839e551617deb34080c52da99e25862b6da6b4a403242dbd7cee8a0464078b4e690e4a74ebd956dcc724c8fabb6cb3abc04da3e5df72dda1f7141312556c23014dea6a8b66d7429e8445b59db3a484bf89f6174409fe565d7bb86aee83e4b133fe4c35b0c2004cd1a1f3a7916b301f819c68351b0e2702045597c61b7b1e37a4e5be62a1e2f081a8185b54fd91e8f82e5ce77943128e1b035b99ec8bcbfaaca08be86fac5c2e5c26976535d08ebb9bc5e5581388aa8cfde679a7201d79dbb7eaa02717d8e764faf3ae9cb5b9d8d35bfa2a3aafe8bca7f786f5c416c5114e73399c803ee5167d9e7f5d77e01f4c55a3bbe6308216bc15f1d61ecfc5d509b2b94c9694c21e5a89c180b58a9ea09c20f2a770392f61afdd4e1e88b2bb6619519d75ac0f5cd4f6b4d04804e7cd069a362f7783a8a8ea15dd3946c03f0875b2098b4f0da197fea5f6ce3ad9f121e81402ac3e1a660664a0d0c61d49edb32f7cdc04c0f20a358de2c481cd92609bb3c26c9a9e6edf6f679c449f908e5abf9d47e989afc6cd43640f3c263c1a6cc84eb1813571818fd221c4187778d19f954e016070bade605e4c2aae78fb236d392c779a922b92190ce196f0e22c6183c1ceb34e098614c224b5d3a484256ef39f988d5097f18441c0b63779da15519cfd421dd0b53e300f723de9496ffc3a2f08e4748913f1820b8577edbbd9396f4e73e76cd8bcebf157a4a25c223f5b412433239d152afe0b380776cd8189fc840f59445569568b0a2a9616e75061759290cbcd9c01d254eabcaed9296d6dd6c81331d9d1c5d49c243a62585b9f7b3e853c2e69be3159aaf9c3e32b6c53681e729a84ad967ec59882d2818c2b9469920b9abef242ac64622d3706e4fd5db95820c45f5347b9c12c4bb7aec27ab796116f4ecedf519267cc3eb92a80eabb86361bd9c840a06368866c0834b86621637601810cf1c71cfc488d0c2b6664a42893f93d40b3b9b93ab868b3af41726df4b22be3dac9dc059e914fe6e5a29677674651ca8701ff2d97e113d24c0153cffa2281d02737053273f0f1de0f8433fa92359d8df800e1acac8ca5e93bf7906c16f1d9495356b1aa013c409afab48cd18df979b4ae1c33d588cb2fd0e35143d9919851c34862cd7708ac33bb5fbe5fc513958fc3b7ce58e600efdbe37f91efab578a66dc2ac4c9106e562e221f507bf45ae39ffe32cc1936713e7f58f6eacc8815622f3ae1359593c3261933733e84e88d70c2f4f7366e424bb3c03f89b6e34f3f9566393da1a2c942c812aa1a7de520ed081e8afc800daa0d83e00ee20d750a5a8bd9bd651b79ebb708280961cde23cb8a3fef0fe86b68a38ccb3c3eb8790dbc61977e6766a41096b0b9308ceb370c2c605ef799e244fbcea4a593e3910fe155b0329165f939546904a8a1630386566ee02740dd0e65cea6cce2c74e4d1c4cc22d7c4b71126035edcd7c9c02c702ec953583cbfe372fb35f09f0cb402179641c4f5f98f512933c328e2480f21f7c7a6b31c912bf7cb5a8fbcabc748b3cc8104ab6c3a59f9f944ffd2366e895b34fb7f994df8959cd7ce3dd2ee9a02c8c00627e28d2e25de57a1b97eda39213d2b024c357e19772110524cbc5de9112d1b5af589eef7ca33742581e451b54ecf6e040d9f7a8646eb6b2d19e240ce88ac36d0384f34dc353b1497959d99cd0936a17e5a0e151775f875c276efbc96fccd42df801e3e306cbec113e3a90d9bd64312a8f1e9d8fcc626470f4773f2c41eeef3eb61577da61d71fa6330baa6047bffc262a7028c7e514901327066b6c83aa10242d8142f93d20e3c9a6141fcc50858270d639dbd89110bc3dbea213248a345d0d1c1620ba1557d8f44905de4eb74085b5359e2ba19382937029c0db8817311f1b5b3ea266ea7415784c20a25816ee727ff4394c9727ea154a317c65a3a03e7bb123181736b944e22d525b834315022edab2e3e7d1dd0869d51cd72827ddfaf18e3f148bd96450c4fca8d404ff52c6d9f81520483fc02ba07a495c6958539943308fa2c98b3b08c2861100bc55571d39d43b84ae4fdcab553cc7cbabdfdb492b44e9a0aa85f797e41ada7c541ca4c50b69208e1a0e177bcd7c1bd880c6cfdcacc83986b593be7519c28ae925ce8de7cf72fe244e782959384803f79ba09cdc157a2f0f005756ea0601fc8d4235865f18db399d897adb833da614d5da14b63995148e1a902de0f8db0d9ff9c2f7ae005639209af7cc5e719e06cd90c04f8e9f4c6c243e08d77e1b9ab02a48463ddd022473d3ff1229da9f2b4891df6d2e9003d5e73fd3759008994116aeefd72c7d7473e3c140dc7a54bd83c532a89df3c62d8b6c53910c3b74329a35e203457ae4663faa7b874fe0901372ad7a3a224da720ec89c991ae16c69dc5728a3abd3e30c4b0f0bb4694fed06211cb29cce35507c075ab0370e0f33131823a388886537bac326923d6b3b2f0f01a367d8d310c1ba07051c7e60e572a4df5fb0b537ddeb325562a61a1dcaef10dadef456c584490ffe2c68b60d6d454a444fbc3b564110f944029c8a3c45bd2e71ef4c123402a2c493044b6fe555a2d85dd4a5bf4a444084a0b941ef4aba98f9340d7388619e3a8c0d41a8fc08987fa425487d1185c6674b28375c77d2345f267d4b5cec416f1e2c5c0a33ee82662a6ac32c76649226952da46581b97d2ab682bb020252aa243f577e1b5a4416a43a4c0a2df4b05680a29bfa8e4326d486d182921517c13bef32add474c0897bfb314c8c09fd9faf29d4781eff4738d02e20962ab4ebab5c49d3e1329db82ee11316a413d90070f950a5d93a62e0e43155037852a3f396ca1e609d66d136ec3998fe679f2cf36ffb5a09ee474c5de69ff62ef2ab92fe0501b4f120aa7be590638fae1ad23f790ea8e59163cc12fd4041ea0f6db2146e8214c4d4a2e7e3a2bcb0a21402356297be85c1182788735ed073e47cb85bd1e46a25d256b554c47a738c085d3e13af08f8543efe01ccb248ad3ca0b371a83f475e8e20212a5b3e8b506965c6a63068490f4d073ea9fac0fbaaf89136f34b2807d078bfb6ba8278f8b2d47914affacde57d2811ee53767b57a5b3f1428c8e48b5f47dd0841f84fcebc38bdbaa694b6ad9b0f1161b78c1a50b83e5d19fdea767337f001a5c8dd5c9185a4b525eb15a1c7e61d0c971a07a0b4a5df97aebe0924c91709224621f76168a42b01190571fb222c8007b975e76d4fcfbf1ce5a97c6111ffad7d99f222c1acb0a15b22a97f4c6cc0d1f39fee0f607467c3e9a9439c3807b353f043ecc5f3654028757d6364d507dcd65c68e2ab25804765fbda4534756d8593c143ccc1ee75154734cc03afe0b355b0ed4acb22e0b037c529a15aaf1c691ab9983e0ce9e28250070571034025d1ba5d14ca66b022dccc76f7582f8c218fa9f87fdce0e4eee9eb5a9aaa23a4e726a64d1130cc7865dccd4f37415f8d7f1cd5a8c84cba19c31d010aee2f1f38940faaca5f7ffffb2b407735c79c03ed9307f706a7d0cf5ca54065e9ddd4d23cce9e59a50f9db9e46e0b9531d0f7b7743bd11be31744096cefb3799ba7cc008b827c43c0d3dfc35c80ed4282670729462295e7d61755cf0da851884ebbd45cf6c94a060e99205e572150bc7fcdf894158449e7fadafc5e90911893ee28326750761f63e80c11c4d1f360c37c55c6dc4af8ea649ccf89071a21107636add41dce4024372e402175152e3bddf4975598451f57969ff9c60f7aff71d102204ea64cfff4148b4701b072e28718fc836a65fb65cae1a25580026ec8370e2bbe75f21e9c564b7f741897f96a52316a24d9f9dce900ffa879d45db280a607a6531cbf54d1473d08479a957c8f9b8746b5be0254aa7f603d25e4badf95784f4e1fb484a290c1efc18d69ad7f4d52c9bbd3287b14bc5cc071ffc88a7f8f438a9108f63efb96f062221c465a4f2dde0ba9de5e05a54cacf4f533a8e9fb4f614006ad48484050d31cba58c9610d826a2f23921b8671696cdf3126b6447c46356d1a65ced57bc84b199009dbbba33038b39771bf3218c3d3a23c087e740c28762d8ea12527ac82ff7e7293aa7bae69de938c07b48e28dffabf0a150b5f8333d8320d7207c12289d045e620083eab74bdba90944a36a9612eba751b39e05c9dce007b3b4078fb38908ccd547f350cebf9e865e881cf79829ea810cd2cb1636cc8866fcbb3f3802b3fa6a4a9db395e48c4a7a919ca720a9705c5b86d1435c5d3cc74e72a402e9933c2f455a27d77f007fa5e9e659b42b822586d3d6cf796ba807dac056fd9c4a51cbcff51a74bc5cb57ed2d90c35f306995933d3ee9da3fd9352ec2e20a2d66e1b8150b70e52eff34df3b1460fe761016b66fcac53907daf4a0295c20a1ccb63ebb82613dc5a6360837baed37bf42ef063dcaed0ac9726b024d0b8ce665866f461c14b2e5a01a6dae322289193538bc0d4f115d422b0403aed0dea90a9cb571076996b493ceebdb1b6eb040ad966c4e22aa92239adba1d28583dea10bfbef50dc750c49300b7bf4dff5e30c305e00f554c0099db56914416ad30d6335da7788e511440d2afbc8ebdfc83570231698f8eee078752744e1426d15537ca64281f3fa98716aa7a50a026cd6e4548641990d9ff524635f5b5acffc8f8ece5059d631f4cb159d53e012b40d649c72ee3d6f83bfee328a0e946fc052585a1b5d6653a4832b5ef95d06e40cd31d9abc5fa7559c82edb40a3d17fe23f6c3e13dbff66fcbcaf51de40472fa3b19b9b633bd7c8ebef49f17ac6fb56a6a26152a835aa3bbfa83c056232e18b3262163c08808991d74fbae2add0dfbe7e01cee9acd449499e3667e8994332171951004b59efefbf48b9c4fc20c8fcdd5eba11c316b8cd52f67591fc04bc640e4a0a6d441c9391c6f8d0618eee0c0c6ebb380e9ebf53adb5057cb55872d6b21ae2121fcf68c9ed78fdd3c98056460ac38dee13420e2cae17364f52c5111f2fbfce18c49e6a3dc2b642848db2cab24f38700172578fda4e8bff9d7504370fa8f820ded97adb80a9a50d5d9064fe51b041c4c2fae48b8c9ecef5e9caf1236072b1fc4fd662f6a8501f8d2b9d5e20d75994a2a0c823a420e0939b448ebf3246450143315658b7e0be6c01ec33305a880d2b52a9e0890af1b67782e4e6da9438c32045fe178c2d369aea530920ff46d4a444ad417d0e81e2c697df54399c49f2afbff45f1c0a2621da12ec034a70b544f7aae640fb6b826de68700e8d64d42a6a50143e3a57f6c01544479dc3f6e447445e30b40cd19b22e9d092c778cdcb545a9f3c55ffad025de212a3e5fc2d7e71ec393bd1d68d2842b2396f529ba236c445a68ca4134cb7cbbe406bd9481052efb1620b0a0dd3b2d6376e8ed2ca75f9a21a7c63bb2881ed41b5a3e8085a97a9678f17f830e011b2f6cac663f25237c009eaa7f05dfe8881b8281774be62274916c3ddf46d1cba9831be8a15ea91f51d6c8bdbf42d486a1bc60f42896271e5156d4ed176a351a21ee82f4ebd918a70235164cd4354d2637a5682103a43a7f7c389157503ea4623eca4309412119fa868819e581c8422c5a1a4b2b54281044e6ff14c8409cc51cc684d345647332d71c675754bc4921a0388fa94c2f80ea16de44b9e2cebc74f6a2b6556ae8bbaad85ee16dcafd361a5d5b71389b46979869010d593261c96de28bf143b151a3d1ad9b74234b7fe4d417933245ca4b75e0363ab2a1112efe68558c474ca5e5ae6aca0842c6553290e01544badd68850da57704fb359f5785e3612b2543e1b5d556fe24f3caebe2f82019af07e121c1f6a182b6559c18612545dfa2fdc57f5d0afbcfecff286d3cbde797d8f2dd5893d330b2d494240f35bd0e2360d109561706281476551e781d2e5c4c56f0d827326d0417c8163b498440e335c73f3060935e687a6283ffda1fa191648244086e247fc483985b484130cc9a23f92de0a3dcae5dd00102269fd838b0981e03a3e2d52ebd55120270eb9c41f0c4e63f5212820aea6b03cc7252f7ed34f2ac176184638b023961fdbed3c595934e691bac91a4bfb9050a47c616bbba7291207bc346abdd38c812b05716e9e8109eb2d18b5e423b8d5bafedd454a416d800b3a341f5c416dc14ff8892aec3b59aa29f0c95f04efa8138a370b1830113fb7de5abe8e3e9715b48e828150bd6402fb8d8e27ab03632f68e808b4e1495b00ba169c6bd77f05b5f18c8183e2c2a32a2cfb11a16d794f6f0b683f6eee34b413c6ff79f62ccd3f04105fc677ab66c659981dae5512149a6aed27ab934a67af5068d9da90c975ea50e821c7b7321c0624b68820d8060fa63797b489c2a59354c27f200285b6478320f20c816ef15080a9df82f58afd0c9889a22a0e52061d9736faf4511bc518a9ab135024b281285e325fa0d71be4054b9e4464b5f52b4d969d4fff589f8353bdd1c08565dc79df6e346a666464bb2cae6b17411df63b969c6d1585493aa9f424965503321a3d135e78599369926c320128bb6822a3ba56bc027f98e16bde1cb13af528c9795a184162569a5750f3c15d200e8a8cef54431f21cd0b887bb6c124d0c3a2fc752af735af2e8c9864bb561930dc26b78c3fd1f39dae0b27164c5eec8bad813e8a59c84c8f358acf64faf52c754484e7c0c141d07d1ddc71311340a960093910c03aea07efb30a4bd6cbb3ae5d7fc422a9f68444d3210386f519c9fdfca703299d2c4c91ca1602e6ca250a30da2725b23e25895c3e5ab9cc2d8b4ff37ce35b308afa874aec74e17987ae1bca1635b711abe18669d42b3d89278eb502f253cfec72701645e3301954d6b861d09168f1e95f5c97ba8b084c61e115ad1a307530b47840472cf311aeb9b45ee6dea217beb8a1d249a414c279d634e58f03c8b47eb9f2463dcb43eb2d9329d1eac4c9c9de5ef3145263d22302ce4be5fdc7511fee5b2129365de7db440714f840559886c6a2f1a9090b664f6f97ec2d64b68d0b684bfde0b23b4423f4c1ccdce980218f0060aa7ed6f2bde05c49706e52bc0980dbf1b9df2c9c995e58f9ee326bb891b8062ff476a951c308934a88b05d13c9e3f8e9cc51edefbed45581b08488f2a2482d87d8e7f786e8ea736dcaf1f42e263294271e7a456f6c62d57769ce0eea2443c6a982033cba8e81513d4af08606e1951c20264ecf68494839529fa6180ab6bd3e32923504d8ef3315f94a0fa14db48199aa5ee83a50bc59858ae642693ed4cc8f67fe0303f89c1c79712216d208a74cf09eb23338f7211cfc0b7cefa296f0832e219e7c4c07c22e782a1bd909d39cfd34d6528a8d87e27bef702862ed80392e7228db92cb402207be7cf9319898dece040f1368e47cfbf22294e62ccc8100f71d23125d757dd32b0dd216182fbf6695bbd8a89b04ad705867428cba11a0ab9d0d25e1e52ec4d4e2a85612d6214384fa4ec9ea3313bc7f209f42a6884fd3d6ec04b3fe4df6fe2f51260facbb0795a282d805af4274912fbd782b0f412537301c2d1515a8682b48d943e69bc824056a5442c991bec6a36d165cc1328b604b56f1855c9848d867bca01a42468a9a6dfff82e4fc0f6627f227a81c3313c7443f00de5d6c29aebd2bb6d245f373064c413d560add03a07c09e12c90ed3216cbe28348d26eac0b25dfd33af3c846ea9816526b260756005562194c8224cfbafee43e62c9426d0371b4bb39e5594e7502a9236579817a50bb39e9fd8d67b00e36084fd0e0a6d160a401163cf36c318528a048a03874839c7badb4fb6db9efa6eef865d76585434a1eb642d63af80b6a94acacf05ba8a8398eb616cbd9236dc8a8458d354b63846c0668011809ffc5d6cbfa9c6db2c2793e67a1cc0f6586e0685c6eb5285cb7e3fe4ba67fb8420a13bb673a571ed45ab9e34687fc1140dc3237ba4fdb6ee2874db35cebe70d9cbcfba0270e51a4a4cc2dc17ca9496fea4090177227d444c44e93cde37eb666cc3ff3cacc308505b23ed8f51565e365cab960be1e9fb71b0906673f7cc92e5c8b90b3f7d8e206f86d269bbff9912dcd7707e8f01877a23c2a718aef5d52f98d477a08874d331d06804c5652b45c2ed7489c2bcc70482a158d5251c08ed639a5cc3fba49063367488b451cfd00dd9ad0de6fe670c722baee5c302d77174f08a0db5e34a2a733b304857a2282e4f5d9e0d804f57205914676c1298c901f6b6c0216351a53508b2506b325f094bc298030217d670a21c41dca7be0ea34894cb648c517b8c93a6f41724a04ec073453ab5734a2fc87d73fd93d400d15dc86c5c0a121438d64711701517b80d18a986c2d14d33b2f69408f03b271055aa450ca8d96e698c45cfee7810d4860d0e57a5471903d335c62f824b74bb722b96ede3edf3e6bde78b138e94acb59897c5eb06650fae713a2f11c8e51b52dab54cf27067d29801410bcde28f009ac43bc1c7a3ca69a48f4973cb717b98b47446dc59566ce567addce9ee92ae02d8b611587a2f339e81b3dfde650d129b71613c8ef99545d7f5062c5e185ad307530218cc86e67301e8a3385db77c704970d1791c7042b9ab600a823012c942a6ace36b0c44a8debc4352fb328c92f5a66276d5635998146762f33eee1e90e050ed91a1ae6154eb78df2587fe93f862a7e26f203abb1453d908545e85379038b34a6d029cf4980f0c0a157a1a11eabda6b0116248d06ca1a6ea47b11ad902a6ca4cdb02cab0b11d242199d4fd09a4f88d3b4fa99f6318605c321eb137e4eec4abed31ac9fe203fd2450982cb39c9ce23917fc7edf27c6faf44cbca3022f5c7649aa160320b9e6ac59c653bf01583b27dd8ca4e93cecfb0802e6b282744233cbd42d2231774e11d82b1110797f3f7e2e58cf1a7be3e916a271500fa3f9f43a820c63197891c70c4c37ccc71c9e033afe9c63d78232009d1f50d2fea0fa283e5bf650f3a7339a36fbeec6124d94a8e24432f7bc0ee20c82b5e48316acd93a8d7ba6b436fb41f4379fb6ae93b4710bd98e98a0f156f1c24e15756f59893fd4b443a0f086935f5555b21aa08a571a81c20a9289a7af618ba92322507b93e803d61b2e05693e14e4522822e20d7e9f259a70045b0625cbe25c2044a80e8a492611043fe9b40ff2dfb2aad6bdc3f5751aa83aba2f596ffceaca3941b3a90ae45ab505519b8f931af17ae9240aaa378468f73efcd075cd92e9285ca0cf3ca4b88700e85ef4d5c82709477fccf28c5a9ff5058c7eb96807338707e7530381fe1509c80b323bf44d04df44723306511b0f281142f7c0b054adae8209f729ccc4cc75f26ffec6750f381dac965898cad116abbe441423a1816410c95e32c82751fea1bda186a54a3992ff50dd9e4af22db5e368042f33d7666d4c6991d9eeee8d1659684552660acdb9f63cb99d0754c6491de7923513db8db70e430d13ac15a889045d752fd9406a6d8518eabc32c2974d806faba78823f543e59a4cd7828adee173bd4951f780aad0410745d6b9723e345a9da11dee008fa369f7fff721c0af7be9672d8ea052dc4cf03d60f4d4833ceb0b42b820c6c898b2841897b964020b2613b4f362d7d62421311e14861070dc9e00ef409d76d3e77fd35856e906437f091ea364f0588a2b99dbd41f2cc76e46cbc660fd8ed7094b862f4ef6a359eee40c68931227b5f05e1177d642270a5caa967d9358ccb4d2a958242bc6897cea989badc5a3dfe6a366e90a1f6b0c660dc03510add8fef75f3d193dd5c88fa15b8274049f9c126decd8fef6f48f774867611e5cd56b316ab73dfe35290da335ea2fb68e5b333ff74cdd04ebc72662559b5b6b55405740826ee025382363c338ced6471c2e541aec7a855ff849d9936f34a01f922cc7c59d698884ee2570fc457216399c597694c04ae21e0f5a4698c437290536c64112be8ca2a3fb0d442ce234ba1eac9ee5007886c07e6c04d9401886b95a9d9374e6b957ac08464c61842e02441111c01d6d0228f756899d9e9162e80a0eed38cc677c1ff58232cb2abeb9103f579f21a0f6083b78c051f86c050bf6e04e888cbded328614bf62c12aa4592b9a79d0f287ba26d8381df806f74fa59f416a15bd6f11e215457cc66f7b2150f1bdd5690a8526c1a55ca32fbd6ddc135a75692bb0ae6307fa4718614cb0396b27ce7c9fa730426d9c021b10e05f4694c21c57c8de37ba19c055f8eff575dbe1d1c40120c7a3ea8331900abf5b9653204acc99f914726840b05ad3cca8dd53a5595cc6acf486e14bf2d94c9da101a310ee6f28b6cde751f298f5a0c262903a763f0db0f0757fd0576cf45858cd3f7b15b62f0cc5a32e9208ff57e93bb1b067430010cd1b72b307e33cabd84da34ebb3e2be8d4281ce71766947946123346a4fb743f27ed779488683bdff7f8e3c088c2532795871ab4740d21d214885fb1110d34f90af0937566572e55e5664339d3a3ad5242e62a2f4be16b3ee92112f5c71dd637b0be8d58e462435d2798ad1aff1102337d11e5bc813fd31bb1750498f71e7e82e3ff63c18a22234439fc37b33fb80731addff79c027bfe0bf9aef80cbf9e86670c059350c08af7c2fd99c5a7472c8347cd6d69b7dc27232a1c33f84f291114a0901063c804c257b9caf40e80792bad161053aa90b91af2be4bf7ed73f511510ca9a69402126de23e44ee8236ceb52bcd243464eb23dea52d612d015318699bd2d1572712257854a486cd5f44121c6f6562cc8d6e4a7432e2a429f64991763ce737afdbf196c164b8375ddf85a8e5929eadaa037715f90ccd703bd88e51afb913c386f12f3a7a5b9dc921a57d47549354f712085432410e6107d768209c5a79fc730c61d5a9237ab42d9b1d150ccbdd808800eedcd54570226d1ed58191b5611428bf65974193e28e16e5e5ad635de7be7310c4e6f8500904fd117c5f812f719717174fefbc5d9ba5a43de0469f47cf994742e60614df266f8abbf81cca5f14b025715e73212dcb4b01b70ef8f04dbfe2a58734eb27bcf5f1814e302df6e32a531eaaea25060ecebca6e0774010645cc1726dd0c991f8e0ccdf6a0b7d2681181e0c4272a5b59fdb97e97cdfbcd97e77548f3f37a1eac31ce6f353139f23ca952e3610179c3d5a6e0ab6398d70383080564ea8d26bfa4598a1fa7368b9b5ad3ca14d3e5615bd49168c7d99cb5a15baa27a2d02c24ab177aaf7742ff39cb2f63d6987905b50dfead39dedeb5c5fb64042644101202db9ca5ca890daeefa8b6ec5db8a5b4bf833f50c97ba6fac61f5d52a6729abee57cfad499fe8039196f60456df4455afbff2e6158e349607e13e9a3e797976f6e1b8727ec5b06d3675dfd82deba4870b4e961cde19b3e0b9d3e6bfce50fc345a89dc5a788694076f524620ca11e5ddb9508f07b3dd91a246d6db6226913f6c31b1c63c8a183a999fe8fdd9913d3f3dafb9e617d3eb2c9312012179c32b72164c4f1431cadea07cb0f700bc5b01d695c753db68995a0390dcf3600ef0e12a887681fe7e8521cb558fe352afcefc705a9c2a682c87b9c39535c0d4ae5da98997b33ac5f33b5360081285849ffa7b7e3365a4b82c035076bce51dac4615ee8c178ee2f5b618709f600934b8bc007ebfbcbf22b2889cf2ccfce1402ac07bcb31be77d5c19c47f1bd5eca783989d2ba47f3506d99afb411693212b1fe842506ecf7c2c2680445d74a7936d82c161167798337f02f1c9a0d74dc60600c1819381d221ead9c008f37de63da007945ca75e566c2416c4c0ffdbc87a7708fd0fdb4e071c9627bcd9724c7e80040f04042994fedbc13f0c7bc0742851f11d5e9f5aa2eeca8924882e2022e248e497d9b55f12270bd930215233755c7bdb7a8e2295ba477089c7db21cc80cff373a63c980da11dda1af2f6088659d3aa16cab6d56a8076f2f687d022834020ae279029c3c3711adc4f98bf3f6afec6830dff4d23941f88bcd5afa28d3b6487e8d467bcbf4947e6c7d040464030e4c0b996663044a7d9780e8eb39c321aeded2f3cf9b9b007e32ca0cf3a981046739dc2103348c048bb01718d8a2f76d9ee5dc08cb6db1807c09ed99d3ae5c7187fc725224ae13a3b362dc1e8b3d241f35f7a1e5ebec673a34454ae06eb3a4599e91b6c30aa4955c720117c1deac3ac0ee408716c6c73dc3bdf6997865d6aa06ba7304b50dea366a74a2ce744e6f9cba740b82e2054f8d7c4f152641c2426395a9fdeb070b7472b519ea1429daf50d439830d1109b0411ca4da0686f0fdf21176a2126d11366c3fc093bca6fa82bd2371680d5ddc10ed06052e1e54750e41d710cd2ec8091aca4fbf3a77c1810f1021eb5bfcbc80ef50f4ae22b1a56a7d35e40eb3570003076e3bb974ad9a868cf0e7704d74b2715c708c31d8a5702f54d5b0bd1bf6813e55e24b6e559c4c5b9a99c1b234804f9adc0ed5015d773efebffa87c3285da1fa1d02b6861b54b9cb50c69d5997e877a91d13906d11585a7ec73ffc8162262bcbcd35ad19b2580349e6a193f304357d60533f466f86100083a7ddb2eb022373204e02b5e6427c94262c342065e4764cb3994e2b6564ec3c8e0ca315a7b5d7556c3380e41082b77f61c7ecaecd2fdca1b14ae5882a78bfe72c83e24a80247cabecfeaada0e9b9f3bb6ed05c5273f2f173c0ffb3cc40999c5c13aa4694c94f8c4cc3482bbed0e2dfab7d5ae4d89729484e74e1657c5ac26c774a55ec87c573ccc5fba3f0cb3e7bf9083a606c1d05a4e3505809152fe4867c4171526a4c3621febc44919f2375f2eb50d82ceb89b99d7a31b99a7b304ac56ae1e6a190ea7586e14d321f3cef47897e611671e301ba990987335fcc3147029534586148c347f28d5269853bb8aeda16a214f8b193446e98fe438ed52f07a80bd92a1eef4849742487bdc60e75c8546807bc6bd5fac54a696309ae9dcb481e67e33593af05755ea250baa7cf5bbd0f43b10b3700133c7719cc3319b2873119f4dd9c18ce10b6781b08c0d23a27656be34a5f3e5443a7038d6bdf178e582024207bc017802cc7417721165c42461f39e83c3cf6b48967887e0c81dc800d6aa969d93cdcf5178a3c533d2819f05200f44e96c01e24dabbf3a7298ddb3ed1a6ed1d0ef9e5dc612345e346644b7bbb38c697f6be9189bc6e7848e2006efd692df7fd7458adb04449d066a6d1772e80fa7ebc752c98dd23a4969b53365b52b19671d5a3340bd9b18ea3af53b1c20c590b1ccd985d08e07ac6e194cf0b0f4535a231ea87a04f70d27b5ee1fd61d5bfbce070c687d4081611d6e9f1de9a90b2d5789c0cb92678f121a13f1d17cdf07bb9aa30a04df694d29cc27287b8516f64dd2aec9b62c216d1e5dd6522ea5efbaf38378e721314ea45f3e0b01d9e1a7be4b56385e63187206b840f1417978e4189bbe62e07a663a84517320f0b9b75781c5f851a9ffe3212c061a4a83423c3cd0b76b0a10607777479f41f1a44c58215c4ced588440357bc3825039ff5ae49870dd6c1493b27aa619f290565da2778d4f8bf0d36f9386b51cb660a03348b6fefddfe28f315085a88052678a3b53a29603c90fb05c98f917405c109af15de8c0986be80bde2d6bafe950d8821300fb77d0626b2aae8a8c59b0c6c9089cc644c5443cc85c037ecf502fc997c3bc4872426b6fd374e60ab3b5eca997ad933971c1d3979f90cc0af3bf94cdb2e5aef06af7a66de5f02502231c7668668fcfbc8330489b3334b38f3d3d642cc904b304ebe9d843e128a96afc08dd59e1fc9e68553083f42383f68feb986d62f8872ef166a3444f490f4a497ff59d3563c43ee68ac8b216e0e651e8e7f83b79923166b45641052822328d74f40cd10e97a0aa5baad11a2a087fb2bc43a17a24ab94c62f8eb437dcc030a6ccca215527f21d8210b70a05c693b21ba49aad25d75cc18a14b2258e63511a4480e17d41fc29e3246bfae83aeb18c266264337e26209deb16ce9e2f47615f10de0137f4eadc147b5663a661de9f4032531a8cf1ae8a103e682e816caa95ced80da3a37251c5cfada6bbdae92767836d4a8fb4b25f565c0304892deca7f9ea73e1155b12146a43e081dd3f3b70441e64462f1ca440c639d082de64d0b29495661878caf01cc156e1a60cd68041de7ad2f57d5ec24b94eac40ec47d2e1fb3e98e10037a600e214ad8b9c9a89065095fd9d8231366d81625ddf760ec5538a843a9275540707c86ef3f7bbe34449c91531ca4c846b240ab4c58aff7da10837afae9a37e3a3dddd54f231a656a5cc2bdc9076a00ab8d632200677723841ed21b23c3f617b83e4bef727ef34ff3c2b727d44bd84cb130307492465c2058f25becde606c969e48cad34c2033b9581288c19158817fd2fc90c08dd18cc261efb2b3acdf51e97e166e05d3822090bb76dc3cbaa94433acbf198b1b1bdbe5608460e261ea8ba36347f161348b3ad41277b4f3c44580bc8cdd74239901ed390f35731520a08999c022b031579f9699539b02c33f26c4d1214623c4b8ef6e445eddef0cb1fd28c0df576ed545035788f2ec4c647cf2d21e554c9db1f31844a429f4aa73e9877c2325861d3f76afab428460568c2b99ec19505f0a5a47ecb14f874b65181da82f32c636da036427a489f0328c37a87bfe94cd803ac4837eea7f549472e1123fc5e8dd1dbce4eb6a6483f4c85fc7532ffe6c8eaf5bdcbeebd8845853c5dafb976b75db6b216db4a3ff8fbb12fdba265af869da200613eda524c914a30ec3c20d3d4b9f3ad2f415f449dce2d22020d935da785ae54aa106cad64241ee54a34db56d62bbb853c8eb92b0c0f16eb8a75e50b1b17bfc5e527277fa2b8f33ca9d6c9527ccc6a388339a4aae6fdaef0c2a563d33b735b0396c86cfae875fb35927526cbbb4cfa131ddc580202614e6cc92c89ff4f9f211b2a9bb2065b9b48a0baa589201acc44fbfb630f9edfa4ca9470ae6076f4a685b33e3f3468fb5e377da730c7b782bcac85206deb1fe8332c345523c306bf7fe1e10d27b89062bbe9c38392199a4d82348081620b2a61f4aace89a9b92ba5666423efa4561ff786acecd486404d9720bda1259a32024c2b0bc8a8668bf1b12c52eeddd748b369557fbff2579604b6afd92b2867401bc5527a3485bcc39a1551594f31d7698333402c17a388839ed821d5ee14a3715bc0b7b02b690d13282b8683249b20c6df6af5e358d901b352f78f11132dc9857e7a353e722bfc71f28fd879df1b6f5c9d2a1b472cbaed5c07ca9107aad3d4ceda716d23ce3f261cade9f4454534f2b8ba5a25f63ba2657ea3faf66f50d6c2dd00345ab8c1f7c618e96c084cd175a905a926d11cc7ecda2506b51d4410b428f14579f6ae68d0a07cd21b5f8a30ae7c3b238aca7f32f8434e46ca486f408c1f6da8e13b78984f847fae8a88996b8dfbe9b56efb3c1454800aca6601e955945ffbee71fafd6ddb57322b0a596cd595f05ebb6f5a859c6bab6ec9b3af290361aaa384dc5dcccd6f1a285ed03557507834059de4aae8e3c25d140cd99e5dab0141f71bc0bcf400454aacad0a5a5257d481978b7c26a27fb099b9b74c1be25a36905b0fedb15022942a871ab49089f5ae08c07eeea28d5ea0d67f8dedc1cd6e7acdee75b63788b1c598df9d1a8cdb41f4c40b7d8b85e013f63fb670837506f3bd41957555c594025414dee7f103397f5102fc13d0f2f033c2eb1e724b612286dc7bdd548077d9212e638a6b1c91280c997e3bedc30d53a25d063c83b70bc9fb43719afe8f9cda139be319e0336acb2c2c6e0d9851455a28647286c64a82b0950aee096133715ca0eac3f87df0ef807efeaf3e0ca91648236e57d27c4956c757a69988a8440ba7ea02b016d383ac624214b52a754032c7e4440292fc42d246e0c0746df63b081112d2a0c298175c5f882f1ca654afcd7a0fb9b4701e6b8873df30bb943899ab4b2adbdef2d3e36ca27afa9e4ca86365b7dcb4830268a0048a40fb48f883571bd8cae80bd000e7391e0a079ff54311f5f342d4c544cdf0ab83aecf7a02b92ee7071bb190409f1ca21f03d218ceed662c8c53d675bd5ccddf1c24c29110fa71f6f65530f3c2390f609c40b9b368e1cd3f60a0c22285161a7ff147a1b062024b1ef8861e56cb74df6ad9dc2f33c76f95c75b0bb285278bf11960a805eb80f9a37857126c8e8edd3ea03c9c209250aa81c717b66e42663ad2368e7ca1d02658b069321ac05bb0babfb1b7251a14d82669d4c937708001838cfb381a237f3ace8d6a2822b4f2820deb981909536f72f700ccd7ccbabb223fc1d46ece10ec07bf3e437c7a67eb801962ae2e4f7a5c4dd7c3123a47ee83774bd062c15b824e42be25385c94b3c32548d75b6361f2da7d42247e4fc7698909c534364b0849b2be190f6b1a0f6a24f95e618c398f082df960a3256642420eb7dc7d20d36bb3dcadc8b2ef612baa54e0af04c828107531d9e044010b925187d4a1c71dff718c2fe340d05d6f0c02f2b300294c0e3771f2692709a52d5085a8af656fafaca7d60c8d01bcedeb84dbf79180c7d6d4d5e0249864a91f366f134637ab9df57ef983405136190490e8da1a99cabb64c0b52b0fafc1644e4836987c1fdff2b516e0ea01cc64038aa98e865620dc15a703aac98a41a0f11413f4cc162271852ccc38562290f178456a67366253ce004ad8ecbc646900aad0d0b18b8303cfe8d6aecca3cd170677b06cafcf9b63b71a4a3557a3182a6b0cc96e7befbde5de52a6246550085708200892a653267aaaa82f95c2524ed33b5e6ac5f48c78be772afdea7fa3df2808bb4baeeb36d2c01b3e77206383374a348278d2b7ca4b48bc051e023162a064e3b5875e72797acda80f7a79e82598afd122cae16fe8e1ed001e00313abc003e003b1e079902fc0e0fbd44f33a1e7a69e6733cf4d2100fc4432f19f13f3cf49201bef4d04b45bc0f0fbdd4e309f0d04b0878fc4408f1d04b0df81f0fbdc480f7f1d04b0af89a875e4ac033f1d04b12f8251e7a29029fc4432f3de08f78271e7a098a5fc037f1401e7a6902ffc44b2b6ac43ec7741d61b8e58724b80324f50e48eacf2d4ba2f86d5a8ce6a299349b73d34a1aa7d926376dd36c17376da4d968065a223fdb0cbf9764147f81efdf81819b3f1cbfff02b63a297e14d60239383e1415b0c1f1297083e34f0007c79780854e7ae26637e1f811b0d04910b80f40e1f80eb0291cbf01163ac989cb000b9db480ab000b9dd4c44d80854e027273fbe0f808b0d0494cdc256e6e1d1c93b8b977703ce2e65ee168000b9df4e31661a1937cdc1e163aa9e616c0422711e0e6363909dfdc2727117173a39c24c4cd9dc24e02e2f2b0d0493fdc1c7b4a37c796937cb839fa3889879b63ce0e57c7cd71073a29c7cd7125808be38e2c7452006e8e37387e0e163a09877bc34227dd70af854eb2f76d44c514e4813d2d5774432cb6de0c77e0ea474ea277074d1cf2040e0273f0f5d8b11bb0b1cc09a1bb3bbd627bdf6c06e409f70de2fff2f2e2df5d0f2334bddd07dd225b6c5f04f41e905bc43342734575d9de457b97f92ef43459be60d96999cdc67b2d2fb5786bdaf8ec9e4f8fe6b758afe5a4e86d9ff624326868738923f48a9abd1ea7f1f3bd2a9e8f173b6a4b1c69790078dff22200dd97ed416fc3dbf02d02efbe6cf7e500363ce89bb0e182be8996f7dedbaef6458f30c7a4e867d0d8be9f148bfebb99deeee6caddfc3d16391a6af616a6e325efe7c3f92bb9e2159e0d6b71b77b6b699a111abf7957c3711cf76d1f8d252d3fd3347580a669b9be72d28ac8661b5e2bfb9733b8db10e7951ba366af656a19d4b6d92a2de3eff9e07904cff90e2577b33c61ee573ea3dfdf770aee87d979bc4553ee03b7968d342b3cbfc7064f161e158e9bf3d80e8bca39e88178977bd005e23c4ee25e63f9a2472c3b2c3a28a8d97b961d972742718df92c5fd8782214d7f0f35974200f162540205e7e7e0fbdd4f22cde72b1dfb7bd700ddff7dbf87edbba1a1bd787fabd8def9bfbef3a951e7113b6f0c7fde4a6c49f752a7054c34e41b10bf72df688b7e00edc97800a134dcb6fce59efa9c14e41b18deb53e088fb4ddae0fe85e39680280de83feb3d4ee2be85e3beb9cfded2b41789debb1ad16fce6934ba8e86f6332eb2b0abd1b89f69ceb23001cf67c95e2b7b0b67af9585c853b599c3b24bde7325d0e7da4d6a52a42178695eab65b6ffc1518ea668ca6349512d6c70688a32d9b8312a8ca8ea3d08e4d9bc615b0bf4de67f72c0b8865c76bb9b7bcca65829a929f433d9a56d4fc6d4f535b4bfb2b2a77867abd568fe663ad16964272560a0906ce9ebd56e6b02a2df3d23334df6e5f7b2d8eebb9512beaf6796bf90a77eee78ce016e22b2c2f898ca883fb19efb8558b6507cfdf5a2d538533b54c5f2211d7f4cfe7502de3736be179821c969ffd526e5696d6d546b26b64037a454d5d51b3105fe13049313a326a3f4f97b0293d545a55b01f9a440a4993e06e9a2b4f2690276e8c3078e4e815b5e5c308fff3967f52c86e8cda2fb718655723a785f204960a9ca9428895a1e6dac1bb64fe4c17d1a379639cd45b8c97aac7f4f0c19f6968433da28dd5d08e1ef5530cfb2513deaf9622cdf710d332f449312d538ba04ca8f0b1a72693095329bf97ccbf3952d9f5a07e4929bb446a3953710c24b5c76041d8fce18d1c6ae1f8051d0c93f0934ac2176c56d8fb951eec7d976ddf32f623f67a14dfebe1dda7a5efc1963e7bdad5fce0ee757065a81183befbee8cb81ef6a8bb59e669117f3a536112c040454acc073011c75ebdb4473137575c6f96f9ee67fabb1d37785df7a018bb9a98875d4d90eebd2547b4bb45774155d4ee3b9cee21aeaf753555a765206686eac3db78201e64638b3a353edcf8458f1670e335bc647b01425f7bfa46686a5841cd1dce843c628cd0f578c9062f69dd678975781865460f61e97effe78afbc3f11447f1efed70ba9b25b6f7fb5b017033ddac0d37a25231da60632aaa228e2827c5afc1429a18ae061b696268d074385e2ac249f1230f5f07f0de0edffd16bda383b4cfa3518cc97ab2b9f243103ce2e9872082f8a1ae3a1e3428a1613ac38fd3c40f82c70f2dd332393343fca845cbc42a3f64d6aad2dd401e3c5ed2ae08e8dff8f8d98e97b29c1c1c3fe6e6d4a0e60e67ea74382b31ffc2e37fc87a6278dc1e8d79c47cc7e3a5238e7af223718d55573a42554d28032e09e0c664328d800626010c281cbfd3e1f1438cf511468f4c46a5653a0cd87ba814c1c3cdb40ee0e6daddfce124358b0111fd85386f5087f8acd5ddacd5d3a398f5cc9eacd532d027ee30a9a568c3ee78fad24426029ad8d5f8a04477e5ed9ec80ec61d3ed4f8f0d4429a218ebdffa2657cb83b3e3ee9917de95e88effe06fbd2dda933bfe872eaed30312a100ffadce14898a3bbb4479e078614ee5e07186c700d0c9300861cfcd204fc22b3087d130e2f829fe99859f8f4330b1f6465ae9010d6f114091d3dfc773f1b4ba81d4e90fa3a7ca6b8bbd9c8e679370b11826bb511773648f7b5bb4808d3203a7cc4b0abd1e1d6eac4fc9726a03f7c48033b25baefa16473c43dfc8c7b0f1662212c115327d3ee0838be0e36772c1c1f075b24d2c8dfb6ee576c072fc812e9af47dd7bde7d0e60dfbd87e3e1b40cc847881fcfe4f5f0f1bd213ebee7f1f0f13d8f888fef79321fdfb3f171c663d232f987e7f1f1bd9b96c940784e820802db364d22ac36848d421011db4425b132a582da4929a794535e524aafce58915e95524a4d9b6157bcaf1e8539c16081fd65666a192430a796899f7d7735198c0906493c61a9820a13bfb9cfa409c7cf726cf9de0379687f61afd2329a53796fb58cf6ce719b9438bd00e34fd782bb17bc0065c2d8a6bbf768d9cf787f1e068631c1208940c09c5418de60a4464d0ad4f37ea5d6191fbb396f06cda733eea42f3b1ff3b99f35d15bee3e29a8f0359bd9fab1da7ecfd6ef6cc661c271248f7438fafe241f88237d1219384c2d136b28c98744060e13e5ba14541c260ca3f492f2b5eceab0a818898c914ec3ae8d5c7eb160dbbe370fe2cc3201698e54e13de8abe89efbee8074177bee3a4f12106f9fd9e8237bec65f723db2ee8545f8cc87ccac5dea5f428fab8b0365fbbaabc388951acf3e158eb928018039daac4d9c3a09d8f6c5ea06c046b9b8d5889edb5cf7a6cdaf515ccd15d6a45c56e86df1312c9f0bc331e068ebf795448235a4b234cf792f4a7f5fb91ebfcc89f9f9f9f9f9f1ff9f3f3f3237f7e7ee48fc48926a8d3d1fe54d019a8096330a70963823932614e19cc09bba02aa409897633910ccb2cc3599661f9fe30486090c020a12639868d48d6edb2a59cdd2fedd52eb19ffdd88531f5c85bc2209112e6d4dd2e8802e5c8115078d483842798070ca320e184dde02c4ab8458b73bc59429b6b632e621abf493ea41f8f41861419e2b889748e9748671ca69e5c7735fdb1e37aa4837bb483fb66ec3dbb797b7ffa204ab3aff46622d20584c4f32e77b3bbb2d0b9ab3d77f348c72da88abadd2ce4f2918d04d16ef61ee7fb93c88840d01be4b1cb880dcf7bb14d5e59b0582c168bc562b1582c168bc562b1582c168bc562b1582c168bc562b1582c56ffd65e3d1d1c93a9858363c3636393e2c91cc3ae074683285f8c747016e22b8961df4dbb27c5dafda524b99c7235a5bb3b17769c6c37f1493e1287a94718cce125ed3bc69738629cf208a4d14959bc777559d24fd4113b5e3a184fcc46bac88c52c6ae0c3563989496992d237f623718de30e55586eb0b19aba0a18ab2e4098651702005ef8061942527ecbd00421e517c67416765841d21e8f4204707b84538b8b3285e74e3a58dd25abf4f747383635bc518e38ad25abfef9fa3b4d6efd3c9324a6bfdbeffd1c8d4e16038180e8683834369addff73f1ac5c4d86c209bcdc646c768f4ff7d15c4c383f4f0a51555fb8d644716f899c66121de565e9a4169addff73f1ab1a452a8142a854aa15228961d277588d25abfef7f343a994ea693e9643a99626246a3ffefab3587d25abfef7f3412c5c48c46ffdf57eb8d0da5b57e1f8da8278a884976898edf549b6a536daa4db5a93615eedf561cb7adb86dc56d2b6e5b71db8afb15eee7501c8a4371280ec5a1389dcee4214e27c4e984389d10a713e274429c8e67f24c9ec9337926cf84fb3b9cae1513331afd7f5fad2b5d6ba56bad74ad95aeb5d2b556ba16ee07d980783e266634faffbe5a5d644369addff70fe2e9403c34337840a0193ca0193ca0193ca0193ca0193ca0193cb89f8625d5342c3bedbdf7ded3844eb59eeaa99eeaa99eead3847256725672567256725672569e93d669423e948a7c44211f51c847f439868a6e443d5e8a89198dfe6fb2e886e6f85c613e7f0210f5e010f5903eebc05904b2c05d227fe5a505a4bce4251ddfefd97829e6fb3d1c2f31c04b4e7cbfe7e3a5067c7f4d79c901df5f71bcf4806f087c7ff5594979e909097cffcaca4b13f8fe151f2f51e0fb67a466e078098adfe1f397473c7cdee1c367a893e14ee9335c05e087cfb0c50388cf2147548e291c88f89a230efe1b39ee10e0735c79359f632b471f1f7f436ed48fcf9d32c0e7b6c97d7344f66e129f7b07b4c4dbeca5da0701ff409ecb9e6ae20190fdc671a0b05e01eb14b03d01db12b0fd84ed08d8d803011b1f60a38d93e03bc0c69393e037c05ec049f09db04538093e03ecc849f017605dc749f01500bf09f809b0402c02e03361a1936c2c61a193fc938047fc803e2c74520f5b63a1930a6009802d74d28c25c2422761420061e1f3b03f94ac8c0f90871d2cd461694fb3bc0e375396cf71736579989b3f7fccf202b8f971dc3c6279d2cd3a70d67a323cc254331d00abc2fd38d85c6dae3cb8ff069b5754b8ffdabcc283fbadcd334cb8ff6d9ea19a915383b5615fac8bad613fdb62695891cd302794bd546ac566e853b3975a31e55e755ef65250a76d5630fccbb6e2cb8ffc9ac552304747dc5d6173cedf77208f785f8cf08f1f2fec91618f37de931efde6dc06a706f2eba5608e7eec3b27550a99d9cb8ef08b1111cf34ec8ca038078917a778523da956ca27859952d82985a158762e1b969deb866507876527876547876567876567756a9d7c4e97e9749d4e17ea74a54e972ac7493834a7ea7c3bbf1af1e4f4c4dc8c6c5ef5a56afbe053c8679a70df384987eed4d5c7f33da31616dd482c266784f3375fb7971ac5fce8fbfaa5e0d649a146961466d9c11d5976b055e8843b740ae5e0f69cd913f2c11df211dde09ea21bf7c1549d14bc9497a2a16a2a4a467048e0095ff842376c786334fab7f1410861e56c6a7cae06e8cb62cbec1640e46f9193367bcc3a213fbb45a893fcb19d0fdce0eb63b7048ea0f60bc1e80d82dd48d331365c016510d044195b5bffd6b1ebce5d4a29bb39e7bcaeebba30eeea300cc330acbbbca82b9e9e960ff7b1d37176014218f3811dce73e6304207dde891539863a6bb063938a65436373839aee33c3dadf631b99f60c4c9d1d959f1f4c4dc8c6c5ef5a52a2a9a32d4d959f1f4b47c463b3ee61b9d9c429f3306cfdc3b988606eea0522995cac6e6e6c671608eebf060082184d0512a1b9b9b1b1c9c1c0c21843042082184f126e2f8984ca7130a954aa954d0064208757cc70a7a6ced308df20e8c8603adb2a13715e7cb799dde91b075d1449bd8d3f231a16ca6cda4893cfe3834a7ea7c3b7f459e3b53d680650f1bee7c3927934d4299aa49295fb3a550cfae4673ad72156abf711a57ad7cd9d58024c87a1704a216f42e41525ed949ce42ec9ad4a4bc2f466c126f97eb9146b197f44279a11210837a8a41a3d5980d3992ca2be3a46c819498bca6f46c3c1500b01d6c074f29e5f56e7a147360b2c99699c23959060876480a6c1043f8f259009d09d9e3df2fe50dbc58c10e86c1d08b1528c19bd7b00a6e4c4e8c8b9f653172110b3c6be42d62fdc62370556ae11d77b24dc942e0148ee368b6cac0c8a890adb2d5101a8b2ff4551b2dd35dd7752970ef50ddfd4527039b4e8b236a6318e5260c11ea445942cecd1294e0284b488227ce1f8ea28432bab5e83a2d2e9b9703602f1fc8f5f3b12be15771f1541f57f74ff72a257538bb1ae861f8686fef66b5b39ce59225599225276bb2266bb2e6c5ba5817eb625dac0b63612c8c85b13016c6c2288bb2288bb2288bb2288b66ac8c95b13256c6ca58192b63659ab737e8543b7635b3abf17a75355256acab997356dad55cd7755d59578361188655adabb9ca68b57070e8d6f9e8ef5e813245f612fb8778362f9188e38ddebfc532cab8ca88655c65984c383865d8d89471951171ab858373951123175b8f58c64b1110c7d8311169e47759c802134d2331ae2de5da1ac13ffc422f624c0313c730094d30421a9e48c80362c8a3314c42138a803f07638337b2b756dbf7401d7572bef24d938dbd3f84d7bb16b0fb16b0df4f82a494202ba583e8d6d9f8d8102a6216a9c7f99c1d42457cdab28214e78110927ae00ed877ee3c70845dc7d13a0fccc1c1116721be1a6752b03fb502f630b0db88398dfe15ef92ed3a8f93e895573682898139c198fcb70b2626e6068cbbc314e05edc0ddc365a66fecbebe7865d69a8994ae8244d3a46e9bbe3a017bd1cfb49f2f93975a6bb53ec2d0c6fa0ee7d2aec2f4fd51fb3a933c9f59ccdf5530583faf24335b3396d9dd957283d720d4aedc129e9917f4f6d79c29acd150af67709a92ecec68f3082bbedcb8ffeebaf9b43533c94f3d2c3f1f5a110941ea9a0e61014ec21285b9682ea38a4ea91f738e9a6e650084acb84b2cf21306c70e8c649082747e70bec9f432b1c92823d7b88bfcfa129746a3524519f3c1d99dff272c120d1342d6bf96ef92bbb5a6e8ef0c77677f7b7d8979b8db46645375b1797cf4c3048b277f9abab71c934edb339e2efa7af4ba5c198fafac14e40359893e8db66545a144593f4c8afee0ed297a67ee815b50ae8a45c05d672927fc8e4241f9817e0c89f658c8e09cc0b90e4cf320624f977e7c3713fe8542baee143ceaec6b360547e7a8455091de9d185fbb70b84f55c161f98a37f422eaf7d0eb9a4b4d682a65a2c8d19ba30d532599ab448cdec3f0bb1288c1a367b183428ca3dd302bb290b69bafabadc94b2abe97e481113ceb23065613211c9886444b21a5316d29445259221a126acfdfc6e96263c893826927d96c88543a62ca4298b9a3f602292e1d0672299c964c228910cf70f7179449ace50a5a973417df9a17dcbb768974a933c92515aeb756596d34459888644560a89331858e5255ff98afa8afa8a4a53cbb4bcbf3cd2325344ec3f2d2ddf5d4d8bbbbbcf196af6554b952e61539ae42f45ca942954a854c117e73f3de2aa4aa27ae42bff69efe1b97cd5b6c6a7dc18b0318d4c05aa9be92d515796829a250ab7ccf519c4d9f57eb9ffa5658d1b6f18a6839bcacdd767bfc10d762d3717c12d3f6d7fdfd9d2e2b845645d1e7622d1cf965d5f5e6ef6537467763dc987f483c3b47535d78c67f67a9165f96c84e4432223eb6aae16fb4debe2f2a227fdb8b8bce85d5eeb6a5c22e7624539621a982452551d07bbebbb2b6a90f9b3bb5aaa5a46a68c489b96e9d6422ab96a44cf7535df90c63ed8cf15f5ca80f7e0eb06a1477ae4117b5733e7c5a9288bcf16bb16d496bf422a89da7248957963536d9982af0fb54c3e424d3df2a149548f445fc81492a89671ec8ff9b40c87fd6037e1ed08769148d37afbacaf1eeda76df9b85d575fd98811116fdb6b365fcf3de41eeb6a84780fee9e8685f8ea6aba1afddff673be4bffd75fa3bfafe1afc73a246a7ccf9736ae7bdd201cb841a6f6a3e5fbf6ec40d432adc5e6ecb937008d24e66bef7de8af17893e764af47d69f9beec4bcb677fbdc8beb4dc2e49965d3f3b675f69fc4c872ea88aeafdbc41687ccb0de2f2f38578cf75afcb733f3b23b69f2fbb1f2e17f6a86bbc8d2b5f2e11c7df5fef1d12dff7c30e891ab73f53813bcbbcefba1efda0efba1f6d395095f4a863f96db6f6d9cfef661138129976559b88ab4df7cd974d8ffc2f9953fb73555525a167d93ec41262f9ef7bef6a58de086ef9ec353b354da3f1a2ef925496e77e5ed10dc2f221961bfa19ff208b88c5058444cb1d30825b5ef4357ecedbf23544db87429fb5bccb6bdacff9bd0ba88aef350b4252bd077f57d36a7ccbf72bef22fa96ec395168fb5028cbdf25e258881038f43342a1ef80119cbd689b3617497549eafc968754e0d0c3ae4b52f3076e70e67e5e21de83439f85780fa6f1dc773534226661f9ed67d84c440773bfc27db5b9480a735f552d73ddaa24d34077897c4d4ed1fd10b914ebab31aaaf3055f6dc675ff97029dae4b09e2c51dc45554ef2a7b4d6ef83ae7a292da301ef711e5f7909fb2cfb900a67b33bc208bebc87668b971f17cdd99ae3c66830b04a55553df277e94a50618f28941e49940afb6356da9644713da859426999ec60607f7faaa24ae88d3bc18e13fdbde710f25d0a89a59057a29ce4fda94454b49166e28927fbf348e7e6e9b1b19b9681583ee6044b0c074bfabea237fb142c3f73be72927ccd5e18fd993682e325910167c4b1c2727c061bdcb6c79eb35962eee5f512945dd95fd9cfcec77cfa01311e21fec418bb3dd238cf45b508a374828a31b6335122a59c1714274f300ca3991430344ddb3827559c50e9ba0e04ea020b5abbd002dba6e02489f4a28b15eda2099e85ad8b31502c7c00c107084e5640500204327c4c7ca850e9a874543a2a52fec47090e14b467c498f334eacabb92eb7979d525e9b747971556a31c21b2398181923ef0de736ed9a1cc6451ba163b7ce86811a1f7e2b6099b1523d50c76d5a46b16bca31bca38701001b6ab0f1e252e36ba1210ab1cc58a91ea8e3362da3580fbcbefe8aa558822ff4e19113a5999f419ba9009259243b682486612ff42e219f094823bf098f66528add25134e2b6d14353e6c2987d038eeeeeeee8ee38ee3eeeeee38ee5688fb60771f299d65bb4b39e7c5b994735e1716bbdda59c72ceebc230fa048c9d9c273c52729ee070f3ba308cd2acbbbbbbbb27776118a559a6c56e77292746699669da46b34cd3b68dcb6eb42d5a2edaf614ee29f107f7b74ffb91d953babbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb230ceeef517b0f185250fc9916123d5e231e7338210a59b66d14bba6dc36dfb69ec1766d191740b8b87852030d571527e86ef768a36c6123cb40bd985b13be4c0b52ca39a9747104c3304aa36c91925bb0608b9fa9640692b8a2ea48650f7c0b2a4d723021c8e90506052433a69c5975777777777763ed4d542bdec38ee9a939bd07f4923d6370cde9292d6b22048c6210488f302c872639187bc28b895d204d96a0b597dabca05713b6b9caa4d44226dddddd6328d6c591293bc677c4f470f975e510036c768cf409e4fa91d735a5bc308cd2c4a4ad78aab8ae39e709685f32474a79e5ca027c5d4f43d7350b70494aaf2414dbc2c6e58ec7e46ce1640b1e5c4fd8628c313239313912e2411519852656e86ef7c824259b4c81f0e19cd715c16822064a29850f3b08a5c919a030c9f9b813880753e21725284984d19980e1d1a330b9b911850b1b781c080402795e142653b8c83c1c6c5d4ebd914326dcb09e2ebfbfd9a6a9a7486fae9faca711a4369b669b06368d95a6ef6dbc7433bd1e73269b03348d763d2c55733d9970cb8ab31beb097b3cf1723464a23db71085074a68db6c504784418d1e903848bfff46ab93ba360e5a20c10db2882206121ae0999ee9cf2318c4e82243c3089a70822048d1424a0cd436d34da2904d49774edf0b9254018a9312ec80082d2647703759026ef746a271818a196e30842a0c010b343d06dc4d4c4b74132b64584e764dd1e6f53b17e0a94076b915a2243ec5c0cd199e22720a8061d80faed9e40c20974f5c80a70214c3b0274edc8561ee18d6326092a38324a0cee961c75c021639c0b0d913e3c206db85611886f509c3304c0733b8e6bc0208255c010823f0410c5a60021a4c0c188bc2c406635bf0006333e3628b6c3e81653c39d01c1ed8519854c1146798035b5f1a1ca7ddbb7df44f994a6b30c4248679470ccb400378c216e311b08780f2a3d8e53e6510a7a7e9cfa11fc23d1fa23fd78e19e2f43412888e3ae20783903c300f7e8439e25fd2db3615b2250cfa6bb753a63678c365a6f81d1e781d443e47075e00523c69c8efc003073e53ccc3063e53cc43039f2be631c4c521009fc348c81f91813740110f0f10e411603f02a08697ef880950e3f2f1a311f2f131539cc4c3243090800444f115b0c067279e0171e5a197de4bdc47ede1f5335e6ac0470740400254e7833a5047e6030fa14c08e0088a87748a9b69f5c0cdf52372f3f71db8f94752dc3cc2436e8e893b1cd88123ddc0cd54032a1c69066ea6426ea382b42adfae18b8b95ee066da51dc5c2d7033c5a51f0610f33ac07c576931767688e8d6e2056e72d22800387c7f289e13cf9c7125705403478d4e8f53fd26fa406197fcf01d57827f61bff3287f36a0bce42d27f9a030147609135f0407bce4c3e5fb6b7c2e865751a99a060abbc489bf80977c014b786986162fb8617954bd893450d8250df827bc244d4548386a1d2fc5934bd4e8ab15a268aa75a0b04b26f0457829a29c744508a04cc4028efafb3f0a85cd70f378a9876f1fbebf5b5e2a7d7ffb78e9876f20bedf4f5e0ae2fb1de5252188f87e577969e669be0bf0fd8ee3a51eefe3fb5dc74b3fde88ef47e25b89eff71e2f2dc1c4f7bb8f978078a989ef97272f29e0fb254aa6e817513155010a4cc05227c115dc71c0cd50c7090b9dc480bb00ab00db84854e4ac045c03dc05dc24655f431c0fd51840f7b6333c415c206619dc4e3fe60a19376dcec291c656e76949b3cc7556ee337231b000b9d94c3cddd039d74e3de60a193eeb5b64f8dea540d1b75685c918d2b27addc6a4136a69c24552c54787bf701ee6983dff2a21a57030861848e921263ec5e61414a39a78a07c3304a630f6be3344dd3b6cd25de4ce9baae03817cba506bad2b2b3da118435d7c18823647a2fce00bd6260905894cb0753fa8f139d7f901959f4ae42186db9c3550c2440b255840a981939ff8f40bec1f953cc1710a8987c4a799e7806e04a61d1233a35996a9c01187ab5b7e47ed27577b14af74f944e45f2f3b24a2f6d262797344622211b988737c8e4362823a24e2c76cf3ba1a7a6fe075f0ca78034b3ba35322bebf7f9645c785b4425a21ad40c9d7e28b8febb13782cbc0fdf243fbec7d6853d3b4f7cfeecb9088fba79038fb211eceb2876f04cb4e09f9da9d4289f8d99d22d22b3f5a618337302e62bfc95488d50c71cca9f49e714298037bc843a335208902a1fdc03f4c7be8935a29fd98a48938e4713dfdd845d4e27354422ffc99371ec1f44248dae803e91e7a14d332503efdf7d2fcede68f4a76739da2dd4ca57c5fc0a61f3b1f146bf78339e84b2974d7234a9f7251e3e70fdb9952d081024547272727479a200a92275190e44441921305094e142438148b0f6137dfbb4cc6a72f3fb317fee6598c9ca42b9054a76c26601896d197ddfc4cd3368febb66cf3ec11cfeb401fb1dbc9aeeb38bcd56859a669194631d8f5bcc1767c06d2ce97d864c1c42e09af2635e609609f019faea854ec17863deb189a110100000000a315000028140a070422a158284b544dcf1d14000c7ea6446c541cc9c37992a220638c22041143000006c000c80ccccc28093efcb76e8673b481808b1098b9df6c3280ead4a51c0004bd60d7c184664f221aa9aba56906e01e9bbde4e6c560b88103249ce91a15ccc810a23a7264550ae19b3d3be49886d6272272acd5dad876a247fab2ea8796bf2b175a4ea4ce29b6dad27e2b3be0507d9e4f430a64817c3a68d18bdfffb7c0e6bc05a7c677b8659b7cff7957d906210bfb19d57213dcdf1cd79b0946c52b5a789a210033b6a871fe7b87197ce185f18e4fd126f9bddd1a8d3293e0b317160d9939986b389650914a4df9cde61e0ebc1860d3dca00d1ee4fda2ff9c7e7f26c7a7825ed3155c37ad36724f55dee63dbbc832f4982229883b290832153279ffbf12b9cec25f441165f1aadb388dc1b6291d0f9916e358a93b912117467a138d99635acf37a74981202da62b662186ebd22b387409f4a207c2da33b113ca77ffcf4342cb1e8d9af54ac45b00d71f68e32ddbf241cd898d448ce3bd0d42dfee85d5171e61b7be79de6ff7fad9f279d34d5d187dc929644f9e8e27e370f52dacae375c5b78201888fd2a95ab5443b7074991b2fc59e0694d34a3aa916e3b09c6f405cd241c4947425b823e2673871f04c395cd950126abfadf60f19facf42561f5e62f97b493634c8077ac58815fd7c9acbac25dd1134e1a9e8955ba05fc4a7779572924206e495cc1bfe2dc8770729bf03014e2e1067b2d32644b5190bf89d45a148be94be1db30f0074cb6deefb63408de4d1a4832d9fb32761f3f51c9d13ed96be65bd4b8ebad59b7ab818fbf5d4b9bf72f070f7f9efaf0290a99875aee10bbfdd66994b3cf7168ea813ada644f83b3d231446e3d5ba008df269f1dafc7139218a9405420a2086578fb7f345993593ace8b1e951074dc437eeb11f3b2eb8d0d7c92d14b9c5d76126b61d1391599efc75d5066109da8a34ea014fbc717bdbcb9c4db46d4e3c6a97bbb147fbab88679e4806d016e3a073df633dbbfb4b3fe4e16dfc3f25d58bf03ebf761fd1e65adb7ec2dc11473a3a872ddb03773f8aca9b74631c53b1770290969ab7d0a155495f3efdaf7a3b45252680e1fab7760f50e2cdec3d27b587b074bef60f10eacde81c57b587a076bef6015211d415081abb311e247229506e2f6e690c24efc8926a06f8b8be20a59c1db63afbb2dc4fab356c382bf8ae82de198a3b77e70f918a1b72694a792b508bf6bfec3b71f5cc118fc3d8766d2ebe7c4f6a1959e60baf359432f5b133cc4528cff190849a948a89e4cf05f601b599660ce69a46dfa4b798b77091e9871aad0d2d0313a765b86fcbc8dc776cb93984678ec8d02b7cb7b0e77c7d4ed8edcb06c0e6cc6e263f6517be321d06c28050e52bc1cfd4aee99d73efa5a725dd27b18639dad96a9a6f2d8131501ad11f265c3309092cea1685b6d734ad3bdf48135c330ffc47c638db82f3ba4abab34eb3457bd2f49101e00cf386b91d64060411fee4df5b0651437ed64d0190a46263448cc427bced136f61014f6d73ddfe952053587dc8109374fbdf5dcd6d921f94b5097dcc47a0a96e9f92222906ccfc49cbe7f206ec793875f36123eeb07e9c25e20da0a963b60095534280c1d82c49a647a2038e2c6151db43e3d1de9f702b9e5ffa68af35b1bfe1ca942795dd086c27e8cc6a4274522699f40c5e1a29369312f8ba899a28fb4e5228b2c623982af87fea8fdbcefd4629ef230b9087b5a5a7afb04b24d865fde2cd8853806fe97548ed900be54beae0a0b60d3ed3e2ffe76abfc46e78a177e4a7ce8739f70b285aeb16cbb07613a59a870937530a14d5dd2f08d8e965aefce6c1f8ed63954525728693e7c197c3adfd2ceb5b0efda27e866f15ea053be3724ce858b7acdc8e73c630e176e9714f83404c448545a22227e1da05279f4e957aa6aaeedb2d42a1e3e7aca158db5bbac4aa5c3775f59adb91697555171faec29af34666dde82f320566c8edb02869b7782b186312323582439a23950f4f5a39fef3c9f94242aa24833555c2c52f033dfe099a5cbcb697de166205b5e7fb0ed9e236ae8504c9a638229ec0b5f2db3393ec4ba81a033d2d5766c5171099ebeb7ea12942d96c21b0fd02b42bd0dd02bfa26783cf626d720631afbdb54b1decc11b9201eff0cc0cda5faf880a93e02c802de9412c583bfc3701fb5d2d7f8aaf1e360f820e888aebdd8b4c874f2008cc10124144e8976521eaf18c432e8933e349f2cd13e11b088394fb0b97a06608506340108c53a63bafaa0d2587382461e9a4e51633fbaa7bf7120e98d5e7b6e98ed235fa0ff3094f616ae5fe6fe5f007156ef5baa6da1238934129cc84172016b27fb0ed70091d820c331d30068d9840680b416d612be23417c15c1ca0a1136c7b433c92ca222b387736dcc050111bcf8c467b5668d2a898458b80e9b07b767dea9347cb9dd972e2df519017b4386c7bf284ba26262aa44b9f6b9eaddb317bb4209542fadf8671e3c066aa9a34408510ec78b2e94cbaf2d77c861265d8e17b682e4555aba2d0b4b233d046a7e974096793f4e40deaee1ec24f3da208d4b1511de13781ee4e3f04e4605b7563a394cd986669c1f58e055c82bedeb51bc00efe43440ce8616f6a423607e96dbeaecd5dd74d450687f57a2149558ab2aec0c23841c208ec928323831669ef92ab5b4bb6ef016a61267b89b6a4b649dc056d30bb429393a75c560451739b5526a99f25336911fd95d1a309bf345ea7216749b779349e76d97bf33a2d2db4564db61657f1402f3e34bd3568c2c41263daaa75dce2dd621c876990a831f7c3ef0a53d9b594aa54791425ddd51e95fb0276fcd2a747c6426b59b21e5ff5441b1c9853ab155bcafb978d7d6586b152b1725186bb0ae2c986a010235e1f16315b5aca5ae7c6b55402fd5d831971ac729522790f917a30dcc5f337d478f348ad077249a7496648bc102dce1afa0545aedec23d0dd86263a195b20aedceaaed2fe9421a326d7e74095c9551a333d86dc61eff38f41f8b52b3e95638e636e07470210e6aa9a0df10037ff36296a4a4846d56bd1cd1d085cf8b8f0f976eae5ea56e5b0c3eb4b459afe6b43ce15a63ad284b8f5b18d00d561cd5cf0d5463066cb3c758ba9c691257b23f2a8553027f3b59582ac924c2d501f7251bd55bf21f134d99ac2b4e22e050341c7cdb532707d0c900a64cfe9b895edb9575222dc19fecf19bd07a66850c77cc842af465efe1bab92858c2777fa6068a48a01b78584c77fb0da61d33ea1e6358cd16fa8906f5d940479e08958bd32a47d376262dabbfc90b9699f5b8a628f8cf875af71718fabbf2ec356e516b2ffd740048880f23c0512ac31eb80865cf2566f471235b780ff1f6ebb177fb64fca307cbe066f41f2a642d4cee9407940c683267c567a773f054e072e01d9a173027199510af63993d3f916a5ccf0fb8a5b76da1eb18cc910f4f70359704f2289e434c8cfb488f876d2505f8197e46f70efd330f96742ba3f1343f81cdb22b03c26875397e5353a2463b024ccc5a75e6cfe06da6f1b2da36f267c09c10b43aae7e0873cb75c53939abeaab9ba0c96bef27efc2995f538f7d7393962a436f6c272300c1e411c12f00629295323963d439de10a334720be1a2c2aaded80a60b6ae1b6db648f08f94770897238bf96a5c595341be961d3dd445c52a44f4141ef7e94d64331931520ab9372373d676995b4f9b7d2d47ac1a081764dee23383e58937717b591e9725a3c0a2b3323d50e7efd4db70fd3e006cf589a63627687b8bf8362b99b65328cb066e139e132aec0251daa15b178ae5d1df24d8eb190ebdd91889fbccdc42c64629f4c808b6aa0a0bf1364e0bd7181b5f24f1bfbc05f7b64acf8bd47fffc9a30ad4738e698e56237e85e9ce53926415e4625631ae2aa8f0915d1a3b721c89a716b4366c2a48f32ac4b0032257de907dfa8605833dcc484501262a25a6198517ac8cde7e367f70286390208653220c30c0a45f6df6a1085b27b24878bd2ed98c1878bc2182772dd870abe13348d8a7a3735e4a37a5bd801be586e528a7e66d11674627cc87606b71e46c2082d350191d46d9e4f95b74018f40987bf95c7cf96d09e88a34983e02822ff5b3b79675f439682483ef2d9d5daa4a42803488de810623a5c16bb09a4897aed310e4b980f20093e648a27ff6708d15fd47f0771b943f05abce1d754d700049523e95d3019d20ff3d667465035c186478438b5cfc9f4ac0e4b94dcc76ffb8b52ac39b476f5d1ed3db3935170e0da2bdaa7c58bfe6ae54f07dfd7ed73a5a1e87baa89927b44ad227b27b90927aace7e8ff086c10b396f59d591ae79e938e4a29ad242ede8e2c963e048dcf883faee2471f868eb6c3812586fb1b072003da61eadc971e8dc84e955a412bc532a03505ea0db028e04cfac5ce0e870a4dcfcd5c4eef7c039679ee555d70d190883918659eccc2ff599d665690704fa1dd60607932463e6af82fe4617d596e93001a7193853c60ea6a0265b229acd0738e76a58cb0c8fd135413139c63ee5b08177c7235de4d352f761a85e1251413bbae910c752fcd5777b05a40e3e93be8d63f4683080ea8d89fd8ee364339c9958a3010862f476840fd697acf7b9fa31005a050285e4a92c9234aeb3cf985e0db14108e8289052fed0d615b614c8685f171f72f92c1b6b98c1b9e1819997e2057e8c316f767d15ddcc48a4f5df6e1e94047ee0495760ecbf4061fa1983a34cd9ca6e021ce324adb092817d4803dd046df173239144e10aa627f8c42413cc4e88a3b867bc5703f48394d8598ab125513a904598938f0c5cbc480e122e35fb88a98d84dace780844316e52266cdc0b73d69600b4292b167bfaedf7ff69f5524f8ca84f98b306b9fbf78b9d5e767298452bccb15cedc094f08578daa38e7d052aceab50efe546ca79831c0c83b05415b04acf3a6ba5e1afbd862776debe37044372d4a5ab2fabfaae2e9e8391d7fd65dde78e59ea59458112827608f892427ec63f64c2f7d349646a915b0d2d85f4732d1616146c521529ca4d90aa05fb80bf0ef998857ae170bdc763aff362d5953e8d4137c9965bbc3d462e5bd36904314f6f6244102c4af9bee39e6e4d4dcfed381e2b9a0e16a62cfd5b2c925e5105165fff9497dee7590a3672e94e71586b0020996a7b5cf4415cbc4acf5c1807b9fe2e6e01c34ea31c09b1f6507385312ef022fa24ed1ba485a8d55195e62fb61597e39f668fb8898513d82f4dfb2d2ad792dc1ba9bd6453fe1cd94c861c452cd749fad0e17c89fbd7e969a7ee213a6bca8c24da17521535cdae8f59afd5971721639073abb7a64cea878a464bf317942b3bf421f528a6a55e0ec8a6b107253053a9923d54d537446afa1454bb4ddda953e90b2ea96dd30e09a9bf6e1a2a94aa440afec9e190efa60ad0aa502a22d55e34c59df00026d4c57bb71b769d4d27b41c976426839402a52e88400b211344d8b1138876c225a6d31c2639b6402b4cae4c4ceda4c294b5eae6bf0ec6373957f36216922c1906c97f3a07c116fba9b396650f939c32abcf1f7dfe8e5c3e41ca3942c892d07b87bd095a5f7f5661cdef2670b3806c7aced5f4b8b5cdf148110ac279e8731811562f3a5c655755a93c3058c5575c7a10f8f849cbc3dbb8724f12cd852136150ba1bf7a53bc854e401491b5851aff5c3c368296e0d5b9cc1970d405c47be205ee9c8f189b03e103d0a6a6655faaf87f74252e6cbdd9f1501dba15ce4c7bb1cdfd5765edd9ee05965a551ee014aa003747ad686af99641bd5194adb300884feaaac358d970ca605d34d73dbf7a9d6503bb7c89df10c1c1bd68adcc47deff6f88928c2d505b81ed34da7000803b57aad990e3752e2ab50f92babc5a6919ca2b8637312ddb8f5a06bcc3aa4cc6b1c59ea0b38098a09a8dd6ce354888b0ba4bbd8d67dbfd15988a807fb42a740ad3735291092fbfb1301a7895b91f475821d52db17fd8e1c53619f29e0ba2965019872293a89e97681c4e141114cd3be33ddfee9f32ff3951829dda24c3dd064f8132c3669ae193ded1b78e4b000427c29c6d8a6018ceef4967ca91d8f7973fd370a15e2468f91284403898a1e5ef425ef649c3e2e3e88fa54582197023ee4ead4d3fabe73ea3c8ff54e2bf700dd07a59ca3deff5a6b918a00e553b8f67115ed0e1125e19d664ae876aefeb288dc5d3f103ec5c31b0b3cbed78fa0782c894610110038f35c122673792e95fdc693b011d6fcae096756fc521d9a3db27407a6bb0315030326a07f6c57d5cc8c3fc7432a0801f23add9f6ac0f0852ef5a2396b10c483127c541c389343126d24488d97457b605e2905bc2ee5febeaa99c1bdbf962159e56f912beec8aed4826e8080cc459ba130f23b7cf61214dde9486d3c0eedcf439b8bc585c91b1753f378c1c7e8751aa773ea0099e8dcf86580e9a8c391bf98d1a29f036120e12cf5d4c4308dfc21cbf3e8645fa79c190a025142d67ee4eacf6569757d50d70f2332f369fe0ccd1698233691b7b75a33e631eea1d8e52d53b521ceabc0961314501cf5c43bcb796c7b79816cbb02921f90b6c7d918856aa7f6c68048634eeb96106819c4cd8380c5a9870c75065c1855d606f40625fe96e696850c7d95d98ea4b0fb428c87eff4de3ca90f4877010c391aeeb3620148eb7d7356491194a7ba8bb92bd7e479fee02cc9db9579fe6ffa54a44d109898e0a3125871ce2e943e125c77e0222601a191c17a6a7034ac59c997330ce9553472b1c99636cec701f39b22b7e5648edf711bb3fc2ad6a77ab9bd044ef4891157094272352668b2fbeef509ca6be55db486d435809334dabf6f1f2e3ce57da64592abcc25c2ecef493f7288b66661474a66e0d9bb8134dac4541967ee8fe193a0e36d8e98a08b0f831e9f128339c7dc6cc54321c94ae96e28ec6470ff9c4ba6ffd029924ca61efb092a15934282f97742c1ce9c8fa1a6ff29ecba61284bc2fc5cbcc34cc609f15ed0cf73325ad7cdf53f6cc89c9ecaa0c02229d0681ab4124ce80eb2006abcf563890a8051027628bc38e62f09ac7b9bf20f8735b40a6b82b6d56d123fe688bc8b3fa1b21a99a48aa1028580cb0aa308d66ba3634e7bb10ccfeabf235f792845e8ea8f6a6ef87546afbfa796795fa3610873d2d554a2806848f518f3a32054cd85d2b910ab83f2951551e74cae84d503280d125289fa67dfee4e39ba2bffe123fc9c34a5041a2eac49137aa4e9575196576037a3929581c72fdeed9cacb99922832878aedb9c0612d03e980426788d13bef468f900b61c8730db80191c504c7ff983bce091ae5774a0e8f02d0d04923d161922cc7f767c423bade087455c7f5a65eee38f68272a14aba97038134d053cfb60e3bbc38407185692680b234eebdf799a2fadecc5050c5d066a8b5bf224ccac80d9ca3d981de05858875b21d67266d389daeb2da4229c49e4c2663071b369994b54aed62c579ea72f3443b8c9e68a4a586b46d5c5e698f4b6117e5df22b5ad658091a2c388d1dceb32b417415e52d65915382a2f678bbba6aa197663c35088993489a309253f79b0c2496a9a3ff2854223651a1f17f07fbf9f171783c97a40150c22457b816de88c33a4e961cf495aea4f13e32008f8f261cec45d96eee95bb1faba9bb2782687ce4e0a6e02aa99c53d55f944aa69ee79aff8abfa4a3f281f57cfce40508d463c438d6f5ce604934cadb8c9dedb502c5a72772a9fe3e0b54e3983e374e532d0a7dc4c89fce7a049e3f70b38229476cf854d7a06063297d0f290061cc46770ac95b4832dd7341d67d6f184e5805405d3a7b1529a8eced7ba17df0cbaa63528a4ff49ef913a4564a126704ee55a593828be998b6242542e8d52f937a8917739350224ebf3b52208ae09d21df482532cd28dad8df85ebf0152921e78071e197822d4ad99cf7367fe907fa6d336140ab8c7e55c1715cfe46556be98b468f3b118379aaa93d3875398ed73987979c7ff969b6195fe168d3394f303cd218f5c95772532085ef4cf2c180d623c2736bb33043c8a5246435b900c9f856d98b3b53d9d9a71a4015f08bfa1148a1f434d01239a8e9b566b6305f539a1a453e82b47d45163860d48a23f34aabe8fb4be10bd59dd2aea5ff4c9c1956a3731654ddd571e025fa197f08a6001d73af3be1fb98ccf1152d995ec3dfcd3fa69a661e2a876dac360e5c0d8362510233c692f4d53cce7007de840ffc5451df1a11988ff78416741e8d38300b1cb51686adec2eecf24f4a9b366e3fb901b83dab8d76bd25fdb7651fa9388900362992a377a0530574c3e7106f023c228be8ad59f596a89da03324943cf61c541e18512b7beb01f51fb57bf05a799865aecab8ec87a7d88ad3a82db9854b709279e49c15002772db405a368488313175ab72fd5ccbfcde474885815df40c306435538ebcd2d98c0426319c01e4df7f1a91393f9405be928c13df4e34fa0ddc7a4dfece1a25067b29e8f4b14f8d8deef0775b2e0b3b07d1781d6f7789d2de8934fd21c4aea046bf0b8ad384a5234cee4c922a333073b989db1e3a64e06ade838acd88a9a7a8c447e848c5c31b8f9c3cf198c7ae9f8d7a22373dbae008dc2ccd47b5af0d90b52c4d5fc4deae859ecebdd4515c0e756628a047b4eeb3922040cfdfb9be932594abe54c1e6df2785ea4a0006c3580e12629061582a962ee86eaa0095ac1be58ea3f5c736da16863ff0796694bb071a7f6badf2bb1f79c126bc36fd61e45da01982ae97258f5bda0a2f0d40e82cdde70784033dfb296055e7c9c3b4bfd6bbae58777720a3b5c7647727a62cb2ef11e2d291f85ff8162965ac5869021618ac3aa0409aaece77551ae01700bc0a898fa8d05a78ce7d5731da42aa98cd959578df6e5254cba06d69b9d24605d939fb3410791223991f3b420eb9e688d7a1a88d22485e438a5e55a3178f06d5d1be6904b891410d997759f756d11e3dd571d901f238b3d41c8eb1ceadd2415e942f5e8ad05d6c741966d7b41288d1664719f2b4aa4edc96527cdbf5a71d7ac42be47ea5c8f2960acbe5467c6160235eb0e0875f57a06198584cf4fe9d4c0b9289d6ab0c7d95e8325feb408959d34a5de9808a0a6df09e7d20da25637e5c1c359706c40811479d8a3dbcc435809402de8cbf7103f807ddacbc34bbf963e18ea5099370aff05a87c51be1e87bcfe9b2797f4e96795b0aba1127dc660516a0537078a25f025a71ae1c136ff8c8e5a3dca7ecd83bddab0fc6b3a523a9c15aaa1670ff2f2d5640b84da3c421471c7282897a62dda9c228dcff8fade8a0f67d70c16256b24989f9b672f1135dcaa8c79338a805d0aac2e499a6a806c67d186a5d6f297cf49c5156efa47f1bfc93c2755206cee1f1c688a9a4c28a8b1d13600796a8967b2a9f3a4cd9355a90d408a6c9280247bf4baaa173934851a8b9e4994e5efb1a6d9b31ed59406ab788f9ddbcd10aadb8b246b5cc5a6c87b6303f318f44afd4ceed8f7f257d51e9debae806d1e1b2de4e5facecf4df5bd9163380f5f185401b9e2fe1099e25dce0f69813e70c6364c9d11b89e7502618a6fbf21c9c24d800c88dfa3065f8ffa050b6826fc2147177e80a6748f842ecd215282b9c0172868980f63c9d58503a4509b04ba433612da8ef9a2c7fb8386f1e7cd58d50742a3163ad07223cede4906e15a2833bd9b700506052001ec9b05bcb5e03131b12ea8096dae82487608a8c5475bb4ac6163416b2600a6e736ad4a30e089fe73e980867922cb2c82bd990d1d7f21f85c97592ef9d0c7c50ef3a69597da26d3f6dc31e1c2d679c8902194f3539a2e30ad577cf05eb6e208d5f62499b90590c93d56ddbf0556170fcc78ce4c603a8d5886c4e3466260764d54abc8e15407274a5b5a5f3f8e2ceb574630c4ac9cf756c83ef03a19ad67268266c93eb645861bbfbc2a6f51f3a2657d8f44fc50be88335615be2f5df81018fc08bcf079b7956c17598de2b14c1165cc93fde4adf64f4e5a3d4016c2f79c0a688f3a47de807fa823e4cc61ec53adafcda57df371dd8f2639c362713ba8ffbda5c3c6c721c0b5c0b0cd3e02c1b825c52070fe3b47175458e76e1bc782b42bc321904b9a001e5c129b9221fe366d9628779cd556d96a7039804a1c966f9d8c688f85178cdb2d1178735cb1cab2c35cbe2c6b6c545cec9366e644b6cd32c2774725a8d3c6cc9a97cb974cd413edea865b817478b4c4ca096b2df650219199833cd8b10f9f299c7194afc8c4e84e935ab1af8ac592fb49b2f54dd1341b2e866ba8c39713c2d15df0a88f1f09496b62250ee7ad0ed2e709e6314ab5c5e80055aa5a055d98c482d07ac7020e5a75c644e5732710bcc9c78908c74cfaf38ca905751ea0121f7a1d673bc85769a89599a920139a96f80f4e903ae60fdd7d0ee7306762b6c7892d9714f01b363d6abd9d16c0a9f275215a4963bde6a459b53c4098909af500ad729de7d012b9284740da89e45d640c25430ac659d5057785bc238a6bc0c6459da3a96a2a7ebc5c2dba633b0a668f09be3940872a19458619f31e0f43001ae46c47822da000220d1da09279c5bde2293649b7e6cdfc490610695c61a664d44349cd56af20fe0c43a9a517aac7e211db871537d470bb3c8dbdc8ff2a84cd2577cb6f90f08ecaaca572c9e3ab35b1c6508bc227a5b3e251e06c2bb9f2ef8a5a5a3eebbff220205108bed8703460d7759eef982b2deacf380a17ff7c391ad6dc1a403643232790305009c73ae394708f6fdd85c83438859501538dd4230d56303cd62decfec807afff47790de20d70d79df2154198c449ebfd2492fbfa90ce82060b235b63360aa7111a19da121081abffc021d98c11501c9ea5712b8273bb02ce71d3ca9297acb96bd481de9cc5aeb45f7337516cc4dddd81a561a263f2f264ed552e3136bcdc19e31b7931cbc93aae56178c21a3054f7a544a18b2102756aca71825e52d37fce425ad207a24e1395486d0594d35a1f71a640f845a37fbda15cdbf859c0e48215976e5f8749328d534b6f6d43cc47929f9fc42b0589a34bc6b0fa5d9c9adb8fb44c2618a1397d9e4c86b73429b10abd6656888351a9a5c0e26b0f378efda25932caff38baba2fbbe3925283330b9782e75c051848f0f4859054a5221f971e26890af6f38b96b09ade0b2c8825d9d854a5ea68575b146d66471860fcdd88fa5300e43b14c3145657e46a212d821f36b42017b4ccb4a011b72d497a03c17aa62cb28d2501121d7dfa05e7432a307866a7b70c519dbf1a510bc9ce3e7e42054254519e96dcb94698a281c0d3b1c9854067eb88d3e6d276543511fca334a92c1c06a4da15551c8bba39223e86a62f536d42b2dfbf74d09b44172dfe336a4bb3a719eec5ed16f05250be08b7768a8648d0931e531a07061f324e6b8bc903613268ce6fcd603be6762829dbf45c2492c777a51e755626758cccad3c6a5ae1e5843c93b5ba4bb652d3800b8c429b69bc8aa19213a90ab4626b443331200a3af792fe44fe454f3c4df7ed692adf51f7283eaab0fdd69e243682477937dc9b77f47000cd46963befe8b8122fc027381b4119e26cd93c08655f224b024183b987d920edafce15e884399e306d67578f3cb3998417e918ba1c232512755e5b5edd9ca8a1f67d38b3890a4aebebc3b5876c3b4c95f6f54f5e5c403255c091490f934b890ee45377ac5f81e4d121ba3d1078d3e44422a34e8dd5e6887a52ae81b8dadb2b078f6de0be6f474f452fa0752a3c8ecd63ca2d184438bc250c349f109d226739acfb47f1a2e9a6a03774a0f51849ffea0482c84129fe66f2049204cb42745a2bfe18401468f1705113ce75b9fa0006ba637addfa0d6008fa501c3c0738999205bce9c2436af25f596fbf086a0a80d6399a9feaed380a22255bf79d595640bf6c6cbf3d77587f50329c215ea74497489015ca1419404fd4a1762bf752c6f36f50f256e8fdc504edb5281dfd6f4eaaf412458ae8019f1596a17c71c6bbf2bed7172b47774e170a0b7cc8e32fd5012aaca3dc6874444ca3cd1026be3551d37f3598dc62bf7ec6dd9499fe844cc9fa32a7cd647cd7a86efc71e0c03115c576a413ef0bc343fb4a9d061e08078ec85e75432170972827d3edc6240f610b8b82fd664e8f3ffc9f9997e32ef0196cab08691c89d5deeab0812959099ce4fb6726ab6bc849c93ec47c59157522d6d18c329a0cbe89b6d7345216e94ae22261c5abe8a34968e6581cac70a0f92a64b53a916a01d1b4aab719987692d42956d0d0dd687ca42ba8a3993af69b484331762f8b77895e6aea44f04cf9a1bb4833f32b69da5169602d8df20f6bb6c034633749299dbce07c24a5457940a02de958eb35e4f8c4d7c0ba402e061b7be06193f5d53d32c06d741c888d55472efe855df6ddecd81cac55225d1267c46088942a89478da5ce8d4f3036b68b814dfbe3943073d9b081db008fd559a807634ec2151bf16b54a977dceb92cd5c238972602ecbe127b1a1a5355ec9aa529e72366ffadb439ad8c0f86a4af2b306ca2604bf113d7d588406064c30267c5e8fd2d31a3cd050bc448638b1df9d66d22cd0900886e0188c47ed022988614a1a9a7f946807787251b45340057fe526cb71699c079c72daa2fe3e0cfdde365530e9f65e86cb66acd000a6b91a24d6d53df7eb059ce67411bcd1ddeb904563486de896e018c2ebd1cd8c3ca2cc3af50749896d1a49f4ba95a138d64905162f087750c86f1e25aa5119fd2d01acb74d82e5840cfb4e611422102c3093335127a37d2a5dd35804ac8e2eb43e6fe3431e2416375c9f95882fcced17fdcecff10f2f0a7bf270b30ffe23cd266602386cd40ec4301d6acb6a10a22da4ee1d3b905580375cb53c74e6c849a93bbbf0d7414ae656c2df2cd4a9699b69c826edc005ee0a7ae8f035da36bc31e2ab23a5392b7c6c516ac3ce471aad1dc9e325ba7e037729db6b87654d8d990da3f33a0d717c3d803a03fec79c52545bd61f6abc667c02e713607a233164d834b01f01c326a690a33721e7869bed3207c76fddbe7ff1498d2173968c67187ef35c011aa3f47b17b94a98c6b48e92a0058f464bd2363aa36f84409540e196165d3565f739030a7f7d51c6d2ab9cecb8d376f8066a82fb3916a957904943c58fdf2b10581ea8f9e106c9f3f5cc97b190dfd08bfda81f90d800b9bed71c1c7f6b8cd84b6be8baef3cde19aee8070434715a56b2ea42d62b0d3102fc30c1d4a2baa192785a05f50db29fa6ce03e356b16baf4e70dfe2760490c1bc44d1851fd70c30ea2f96054627b0d0926834d518b19ceda02141d32513cde8cf1a919a1daeef60d38417d2b135abe60a24649638d1f8b946013aef2019618bb5a9e72c83cbc457efdb173beb42916ec10518995afd98cc94400ff27a0083fc0625fb4580b4cf3ac40fe4aaa798a1db9c0c85fbfabd5189dab33d6037d0ca87c3ef493c767a13fcff6f75f3ccbf21bf6400aaa1cdc363d50c179a1b657f01accffa7847d711ce5e6f533065656e9d55110899d646d24a5b60f0dbb832c70c5d6fc9c556420129d3061c76fa8d525109a5f3f687630b9b64bfe66728af6fe5eb6348bf230c9ed465cdbb5065d615211b1af7ac9e5db2fe7c89e35d3e1b1f10f07fa210e1473202d64cc21517a6cd89823317b30f22568537a936ebdad9beb8d938a2879f89361f25f207ae3ba88265c73744631d165d1bdf99001371964fed5ee94e973ee86dbda069f0b54353fde701ec729fad07afc2018a8d45737ccb8201fed28d2561fa3d77837cb01916323668269fab614f963e4a258d7c9b4030af1e894ad72da896ee8a9a6d4d629e443514af939ac63caea9fde687b2716727ce6cc82cd9fcfc34bb3117797ddcd36f0e39641d453e0108da0ee90ed8219b7f3b03c30d1c357ce8a7b7ba41bfbe53932c60c467195ca8f9d242889b1f977ca8dfda02bc23d3bbe3eed6f91865b2f7c8f94bc6c0d6b28f69825582942c85465352ed5b90dfd147a66619addd370e58f529e6d948b9143eac3cbb329c87faad6eb7122deb9ef76b5312aaa7d64b899f8f60912d1a2af4791ba2c94219ccb0cf0533f392219a2229d46f98ea42345c01948ca70aed23c95c26c5b4472309e5c41a90fece6f51b4db0bbb13c78d0a11504397f6a6c81941e4279a712aa4690297241a72c10cc3b1ae435c97528861f296bba3cc6660b31dbe3656db24fbcd80c8c6bb37a75902f614f6375fb5c7d7e6747fc742204908dee9e162586ed31c836cab91192b43744d551378f5562a665307a8fd795339e4b08559654f5d90b4acc01ab7856279e2a9f6236b1dd2d6d49e68f16db436bce4afcaf8200718d444d3d21f8ed4db78e242ffe779fa8a52fb9a8519a9d7612777f9bea666370a533cbcab1a6ca5eb6b82cf24352295c0de0435c2d0b227ed6be2b7c8a5c1e34d8ee888769940db9e3a9a2ea383e687dee08b2ed6b3d8e3b7c6ae5e57aa56407ae1e9d3f1c6cb1124f01c3c65912f9f3b14c9c8852e8dbe205f44ebfcb8e7e9d820b71c1c1927ec10ac4c9325d7683c51d3d630223bc529fa1c324b395039ce38ac97214386ccac225b179bc14e819f534280de6df928be80b1599cd4dd8b3ae158d8b29bd58753a707bdc7424a99028f82dfddcca7486aeaa92c1d21d6012606c4e0a5ecc26960c668c0fc035be8f19fe5fb19df1d58526489f7f044a900dae1f73097f2d48549989b271c45c18563a45f58e6df560bc173dac5fb98fe0ae574df893a97cfc72358be8153410d496d772d39e7eaac66b628b9169f787fdbb0cb999383b66ceeed80c3d666502e82eb9ca63ff1e1e0c5f2fcb56429880dd1824c1e7ecd7284138c854f6e69f52266b15100e4e6d750affc094e5bccd2e4bdda74e2b34aafaf93f66d3fbf0804020e121900b6104484a1e3716189854f8bfd266d037e613c010699f34e30d2fa10d75fba35d18b2e803fef3ac181b611285b2a0e5d6323105c1c90b73a011305c74e0fea05782bec9e60f0d17459efeeba62082e24d55577414517e1deace196373ec668538b97ac376e539e3252970329fefb1f188aa125f51567c187ec2877d2f404c3a96f594b60be8d202574a6b66eb6a2339771187acf47bfeb429e5ed86ba6ef50b094beabdcece890007c9d2230019451edb37ebd3b4a101cecad21f466621f9c49b05619b6d6e81e2e869448d9f287a3e20e355c2d24be58a9978d0548c6d418ee43e2a23feca2c3ace9986312530eae50de57203a9cb6ccffe3839fa19df925d6db19fbaa816f65f6c5846fd121412ed6e7baa9d0c8f08677dab4196bb4e10d32707ea6407d0560ca11c4acd156c089a610504fd7d556807a811746c721e11a58b149a7d777d3971bf933cd291f5c46eb4f29a6d9a1fc10922ddc3aa705e11254382f4f124e73cbe9a2ca64aa4282c1c7b522f55895944776fd7aa9cb4905ada43d6e84f4c098e04ada7f8d3d663b8574b71cfa61c7ec54de7e9a1f77f3f4d61db2a2da6cf3e202b386cb60129c7a8a16c1cdcf6e3753c8df8402058133c644e87d5af0bee8d14e8a05464f64f3c44c4d77ab0a381c1e331a8de375862e447a177a38a58cdb863311218db4c9e54cdf50b5b110bd90659b84f244e71e9ff43733857bf40e91c12be5c034c5ecd293279b65a6cd5b895707562a0b0ad05defaa3e574402726e4b3e07cc210532409dc33d288b4b6cdae11e9623c9f0f0f92c1149193c82e224be91829c858c0f3ad8ff0070f9bca9489147ac22e590840c74688ddc499b4c96a90a060ce82b5393053cce0787b52f371e9eae09dbb0462332fc3e8705dd423c53f7758e782eda49d793aa4d65c75fa6258eb93245298ef488476e5f3c53284c9cd47e1c91a09b2c440e5349af49ac5b06f6a39c2ce3fc3552e184006204de61cbd290d1e1b31b62ed1e0514c8d43c28012f085b79e2990ac5001966f3960c806dc8b854ccd01357492c4563bf32481370ea958287218841167fde8a6f8a5e5d09d40a4f9b89343dd4c220ffaa3e5bb5110dc61451750538e4eb97a4ba708fd4eb4e352427a25e7ef34bfbc406331fd7848241bf2adadfdcdc3aca3e560f79642e80298b09958c226c022ca64b2edf1a035196b3dde5db7dacc4b2c68344ddf2a3d6f1825529e05c8cb14b38bac9c6fac9b16e45b36e9e25b8b0657785d220e8aab1958388491108a3e58ce55c5a3d313e2d31a04503590bb94a0fe3fab66711470444897b59a98f99073bad21915a156db8bb1e5bb93496cad3e5071a481f1a57d3b824ed502df7738e5d8d13ef326be6d82df5c9bf1ad72e7ed68661c9a900cccd9c1260f6430d437b63ccdf7bb18a149521c02393d732a2b3d4d6122315cf26d0dbc395261a6a98e88070781adf163f48482117bc2da36a702615255e08fcbe11a3a54e0bc57881b29b5fc276cc3efb0e967e359dbf1822e85cf25dbb152739b1900b4431b0d25713e302dd5600bbba19f32e97eb8a6591c864c10df48a6226a687c007fe5d031fde10dac520f249681b31cd4fde62b48afc3daf3c27e77f93e06a58451b40ea820d5cf37e38ffdd5050dd00f6a5d47904b48dde003f2ea91b407e563a0a6230cd7207b44c3c5bfd8455a3f8fa8fbd5d81bd1157a2ae124a66caab6a8750f96396d7fea25563eb1ccbf259392f67fd3c753a82677dac32cf84888416fc6f6147cf0b5f57ec3f5411629eaa575d5cc0590fa596a5bd1c9a9023a12569ccff6530995eec528480c1b49c2d7321dc7091e21eddaac48475e7c43ad1667a9de633f63280252c3a5d634994ea59e4bf85e1ddb26990bd5ecb3fce85837738d86c8c26dbdf7c3dd8637f986a7bda20ec871c8bb1d197d2cb4f69650a1b16410632f086d6af17d47e8800bbb3017b24710a5c460b4ee28bc9133fa9c0a715e963499cff9e3c0a9226fd6558f9fc1556d57897f0827948b31a467c38d6841e841a2ac2f0fa86e7173053247db72897ecd01b73b84fcd512c09bedec6802301265747046820fd0ffb1185358e16f4eb440bcad5d7880a92abd7b8361a90afb9f69a6b4601f21a57af72f51aa28272e515d75f73f5d7916bd2c0f33ecacc54014f9f50cc95b8dd5ffd48d935494c76f4cf0c1d8cb960410e5751b642877c1571cdd7305f21cf312d76b57c7a2044cc01c45fd126254270960c39a4c434278492f32699e1d8c5a236fec091c98e6aec02f28649af03b324667c043c4cb55fc8e4cd2f40a7ba7666015b9fd38e2f988e92e0130eaca307da7826dccaa88e2eeef298db6aa8d5cb989b40df7c0dcd4f9da0543d786fd4138317b09dbc100d1bd03fe59cad52a65da8ffff8c72a0b174c65acd0117e492ccb81f67a4dc81bf4f46ce499569b3309cc8a76f99666dc32f73f168e2e9e71568ec94e025b06bc2fea632927ca209430a6eb73181e426d6cd52c47d967c2da27d75d451f49b2cb87f93c047d0256f4aa49acf2de146a096daa47ff072701e846332c0a4a5a1c0ec36280d52288943a770c59915082c86ed0e59d61f74ecf383f5082c75032d3f95b7bb3d316d250df7565fc536423f5f1367b56124dbf04e3da65ba46182ab7caafc8628f7343f177e668913102cb194adeb6548bd6b987c5e1e86c2edf61138ba227b48d2b0be4253188cbd3dfd52f7b38d20e4ff03217bef8b8346ba423add4867558cde0159f2befe4d8dd1a35d2dabbecafc67a651624d7f941d441b474437aa091eec100bbb04b05078da23f09d6d0c197e74d6bec01a302742df9ca1e784f0bbdb037860ba452e88005a7f76a46d7b3ec07d77ce8800971bf608839d593d27b354a26f37170cdda58a4852de3a7cd0c09081ba8c39120e9841d7b7e0793f5dbffd0ff34b72820d1376154d188e7316f56830c9a4191be907fe5c82c878089cecac655e3825004048019a5e6ae330ee615e8202bcd8b8e889e421c584b50a2cd65d73fdcf75caf072388fb7dfe345424d596f6c211ca45d55c4cbd27791d1eb8290e6d0bd7fe98e4667291359341a9f1a6e91bf8aad305347a4f046da42b7a2048388a83a5aaf0837077b2fd9548843050b3b867b4d9b0fd52dbfe2f8ec2861b2b7b9d523d2ae084313dea1a84e2a1d573df992f502aa8d5876338ec09e8ac50d706fa9b8a4c1f65797393acca69e218778cc2c455c9c7d06357927938ddfd40caa6403fcdebe820789207111745968de6eccce494c7a0233b04a8d720ef90eb8d23bf012ad5b684559d0e42c2ff9b98adb3019ed6fcc30f86eea21c871b5af84529d23f2a109940530492cdde0f1e88ebadbd3160d1d4b2752cf35e74e435a9317c30b8356f7748bff9071d8d52b4e3c816d41402588c2af825acbd2dc75c127feeb616d872bc2d4e7d51a838eaeae955c6b1a71f2aa399c9a5f28a34c6b0e30410c010784fc5277880004d64146699e30fc5652a5c977764ecdcbe00d5e5a5e19ce776da91036b802704c19620e29a3cfb3a346c3c9c40f3595928dd1870653ff030b8d51376a183416158de6002813422c0642c2a386e41220241f85a42f4d679b97a3689cfe3a369231d2d8d72caee46914b9dc5182180539d000b23c861e8a30323619d5d6d1b75a15a8582b700a5681f73e35ff726cb45c889608ceb5c612c64c2616807c2e10c7e773d1775cc6b5555925d5b0f4b2b6ce76dd363397a79f036f750c8dc6e796b81911f09c106c6ec92fe68e1086d8e0e5b0817f84e2ad168949757e334840c37fbce592563db8c893248f0361a2fbee67b8d96714643f60e8934efa06f89db1896f8ce22d29e0678f91474f339d6db21104acf0803c4859e8fb68d9e2482be781f34d98e048ae7e1d4be7ecfffce9cbba977580f7320a1ebea022e2cb68b0f245562339a79a2f12dabe85d85fde3f5d9adaf0e212205e600c31496379390b24ef3e2f0180e4f7e9651a2ffc49bd1004f120c21e14fc6937b59869d2b7fc1bf9ae4d42a2072474a200ba411a61d3a3cd0f6a50ed84706fd65aff8bf1d2b208fdb0eecce85fc1b062a6fb4157d1308cbf9f8b7a478f86b19c72146d26e1942d41da6aadafa3da8cf45e735c9bb9e9c4007eff9d8ece6adc2a4527a96d3b4b7212e8d937775fcfe5da5c4eecf1f5337be6202d57d9abb5768d3de8c5ad1cff4b90f320b75c39e25a22b16643bf8711223e22301373b36f788c4be021acd09ceeb3bf7965a3ef0ff4b39ab8fba36ac2333d44cc87dc1f1afadac1ec50858b7f1b1c2c1b972cbab68c98841b58f61229139f6e829b8cc435f10fc72a2ba5f4fe2e07805332485a4491f94fb22ef51e0b2fa7ff4aba91c6893eddae1d7fb98e55f6d0b8ce83e12258892991d0b4feb3ce82c35dcdfbc02c629e3aed3017f9136784a1876ec06c8ca2ab36ec6432b9395058bcef72fbf7763d99ba10a4f4bda85e47a90d721a82d6a1ecd32d19951d93e7b126df11650789193d512042ed83a680b9ca2e1bceee65de09897356f3c6f0bc639751c3f2f060996a5b2e4acfc4b3b204257d362fa946e812a2dd693ac22b2f79f384dfd6c43bfb3f02aa2c7ab0d006d2659eb22fe81ab28d4a0966d1953e31a33e28ffb8ad08d5aa810ec72529ec229ccce4d8006631fd1d4156f29abc96d819ad24d93b99800b893b9a8035b53cdbaae5e30d703ac08b32f9c351c05bc910b606f9eb698b4d3b74cc22430704e4e1d53be0a5be486ebe1919edfe4908d3535969388f879ea8dc71365c08b16ec504c9c65514ec6890b1afa2340417fd8493180321c842e00934998afa2871f7fa003eb1244514b943543b8a7fafd82b8dce22624e6fa4bd82ff983d87448ad9ee1325845d6368f3cb33f57976a9ef37bd4ba2ac350e5f24f7d917d612c4866266033bd9d4e22bba6d038294fce510d8cc44a9728ef8e5522161fc25c7655a613e50f4c114cc1509f4e17e8712104d91a50ba915d42a34c495769e5d8a361b1454ca4bb2d36b504613d6fd2cadbcf190c164d0c6effa26e25b9aafcb573a161248074379b5d7fb32e8236dedcf3a97b29db905f5d0b2f9ed60ae8c44e47284a5781942cd6d45d80cae8743cc165a74754786e4424764eea4a80432334bd7b92d7d25259276608ad7070f195478e8fcc8c913b2c359314a8c3410280c84e440c500b460c8008f2802425c05130efde1c004a823aea8046c4d74d03be58779f35328710959ac19fb505afbeaa7128ffda491a8459ee8b6debfe07b20958af611cb08f2492c6bcd84d48efe0ef492d8de5a972385d1814217edb216eb95ef67cb9560d43adbd86e2b2716fd326465c9a8915428edd79f6536d72733c83c69c3c6bde536b602192297a6918bf523b364446fdb261867411d7c1b776175d6939c8d25a5d0a43efa259b603a90e64476404553742daa48705e215fc68fc4cc5d25b36667a99e1a5d80aabbe543fdedefcea4bc5212c2927792d332984d30ad2210290006508bfa6993be43a19d1f74b262d716212cf5d4815a0c408f03f404184cd4edd31c9003109a5119cc74b749e8089d22c83c6b23da92e34da127b32a6a3ac422fa64ca793ff4335f0c45e0c2d652665098ea6a700412cdb1fc56d012957ad12f4051ef466f8fae70212a7d3ffec0ba979be35582e22955ee2db53be844b712641f2f83cb99131a0c6bc41cbbd85fb5c3b001bce553ca5d932ca134304ca0ea4d0edcea01973c93bbfe5fd908495d8a4cd6e5c7c2485c23f1cf8abf6cd7f88c87c0a94751d2b04f16d1264f99ca961297ce60fb0db10f052ef9d2d52092784ecc8f280a2cd5e15db839a9acfd4656ff7ae9b39a315b676f4015e9679c75c619774ede39727f710b505afd12c4ab2f0c7249510f290c54d715c35bef2643a2ab4da1f958b04dc05b22ea3778b7be1d9e0eb281eba1c08c8202600a54f41708920a764fd53cb129e9140c51d14cab20e2c2f4dd57ca056a40394f1bb6d90fb0b95c242b0483bd16a1003428654a1e22e8fa9653ba19bee48dd96def1e6a412798371ee61fd2dfd73c7826c1adff57055ca693baee6991d98046ba19c31a3c1e8fd95612aeb6c2037b24a0cb1beda8509b7e172e0cae53edc1c33fde150d28dcdd6fca39d75959af161c4692b7879f743e7d40b95dbc8f2bb14adc5d9cc1f5b5e0db28febbf5d77ddb8a63b73e16701bc5bfb6fe6b659b88f35a3b2b588bdf09be29f20489af8e992082c46d41f58530c09081d4d22705d649374a42318c6b5607fe704d0ca556957b1361986b55200b630f5c486543087409368006928dd207505645c9962e220c3b1e3071859ed8a3d88a54efc335960299137fa8c49b2dec04090ac51a459f8e23febf32acd1b447d501c443cce29df4ebac7ac419ceca3c54221db4a5e27c5b2a51acc5e75413029d901938123bce2af19068ecd97535706ef7e026a9864af275a8fcccb18fac34f897686b2520c0a48ee3ff0226078d231798f89db13afc277f67075606df72cd2a200a329fe0f719911e6809cb85c66c8d9dd5f8e8b6c4711c0e7015302d26235737f5610e7455452ba6b52b72c63da7f8109031e540ddc6cddb5817b89aebf68aa27101de3e2ed7afe5b2f4b205ad991944d99f9d61a66fd2366872501e906666bd2b0fdb36cde39d1c714bcd3e9a5ba199012ee2dda3d880a506f53c12f84c60c0120cdce535ffff40edec497019757f82791895cee6b34e9e04b5a9baa2db6bef5f70d29b6a45abd19dba3636cbba9729f4a91677cbf7f91230de55b5a61ea6b7405dc2a6ee3d2aeef63366a64004bcbdedaa7c4aef9936c84ff866bc610186229d439d159a2717a97b222c615c85d8b988a76ac7363c606e13998e031e30e57fa95ef897176cc1fe3d20c8d9d09aa75347024057b1e53469dd23836aa3054ab5546dc56ed5201b1c6ae228f99a071eb2141805d9422adff8320a293386e52025aaad9332996d1b3f6ada2ca181c586310d6892ff0c0234da4bc2262e33468378eb6e141619797c48485b2e0fd082b4ea2183640a664975d34e18bae789f262468bbcd4c08af2824c3ad6b3ceaf4aea69ae9748924bc35689b646252c25e0bed5328e45693febd2bb697acce5741091d123e982a4591ba48ee6dcc87cef41ce607b606a82b4ac947dec7f3ef6578bc05ce7d960f3acc8703bf48906d80f18133f8ac10af31e37d8340aa1a9f94d9e860e3e9bdde79bacae74d47a5a7d917f543b7a1c4b7f5b7a051bc5ee44b7179c9c50deae68516d0e75308137781cc418616630d27ba40a2661dad0a6a8802230e06a0bc62e3d04b65e9aa2153e900207d391caf7c88a6e7661a54ab2750f864b97decbc29282d2f0e995133ec6c09341363dd57efea76f8f362c15bc623f91850d88a3a019604ed0b36db8bcc33774485375d76d3a0db153aac859964d18b45b842fc99c6fd0590140bcf3eab5d8aca284ed79cba3bbf695b2a0d7adc3a43fdcf4aa8189ef58fedd331c28d85bafdddebe81411a298560974e7b95d2f1519f0e05bb2517a69ed99bcdc51ddaaceb89652ff47f46a2a1278665864bf2b8d7232cb46dac78288c33eed6c4dc4e4da2b9c750ec17b3a1c8b4d25467314734a86d34c4f48dec1d7cebf8150748215dee7ad7a4ec1755542cd3c6df87ae9758daceaeb3c70c674f37d705fda2dc1d3738bbf3cd86060e1c25a03f6712768d57f54696c35413f5feca0ab6391291690b50704545ddac5fa1348cb5d6552d1b0780ec9c101562ae87ebfb65e1d06c389e250c91e8b5b18e5f0be76ade0d56c3caf6ff766ba886f533021873374df34d17f57157234e586369020de8a9f7f35a091e2708d49d37b2442be88d527fd4acfd967a627f2c793445d7eac0135fbf02b472ab88fe4e7e2c8e7e3ba90a1c45059ade23f139853932780bf81882ed01d29eaa98631dbae5dd04bc26d7570f6f49244f1bf3bf700a1788e668436d362b5c2b1b0dd6da8b523a5bcc86a21360237ac621f64387ee83f62f9ac22fa74f7f5dc3745e7e113398944ad62d4db2407fc39c199137086fda4b4b20c7b92e7e701c152862f0f3459e4cad215af0d998790da447384114221b33f2a2d112199753e884f226d6cf6db284db825c05b9013d9e0a5e28430d8c23f6348e633b675ce3b866a8464f52e5219b84984c08b343f68465e63b4e88eb28d42f0effd3b004a26eb7180693803e363f83d575ad01198bab4008f8623bd2f92f7c0d7ea52238439eadcefd049e112176e5c5a0537f18699f33e85c7c9eec3fa29dbc66bc1a5dda5fafba9f20d3257ecd3698f6131bba04136ad40b4d585e120565781d3e25af0f38b02e2e06a8fe9d2762b928e2a2b4fe6072516653a28485e1d0027138d1506ab2c3369de61dd394706950478308caacc065f3d8bd68610f4b6376929f63fd1d5d2ed46b58f2f850804d493674ff9e0c47d52609de53c922ee379a3da20bbbcaa39a4bec17ec2e9d276539d3aec03b76ea04253f41daeea0335722f9750c58f01dd319ad7e93a77c43086fbc22dea34d8d2ede97bd35c2351e4fd708b5f438a429cc1f7dbb2bba911398e5b91cd9253c21af489b77d6a77ef72e793609ec934f4c69a4973994d4224994ec6b9ad00251f0cad639f16d53c8e07f9030cfa3539cd2abf65cf9cbf0167228da28a72d2243a6c4c0043b6a35bee42baa4b91c303d35c8997c792616a9b70bd92ce25347064a3ab4331600d15d81890dd42d08c005d7cf5b9ebfe2818c472667aa17a1747f415ac4ff7e7032e9f17a9a1d26b890d01e75d87cbf721beba735645181c705c7081015451f441d44058599974188908b8d2ee5e51196f5ea702072988079cd02430c58b48bfe7cfda25d39a6f4e356b66985558c8936644ab27879ce679b929ddbb0dbbdbde771dfe660d28e290e52276c45bfaf5aa25e208bd27e6e41de43d4fe38cfef71e8d78303f956d996d58360195a15c29f8bf577a3ce8c4a38bf62aebd4a7f3716cf8ef4aa297a1893c72c8723009058d57988ef3ffdd52e7079924b7d95da55d26877a666694f29443a4466a46bfe48835ef2c98235be5a12308444f67388941b88cd141bcf91b0da3b360359e9aa0ce93c8b8e40a558f70a575391159564513d3f95b533ee762404a9243096aef80ec55eb2d5faa28f01b126b8c62f7332993526b3017eb29874837698724173514f200a5c7c3fcdd30b5469624c5bd6425d0d54f3e2cfa190206a4981fa88e4a3eb260a3000d9c581e8c38bd0c43b454e397a0882f7bc1d4636727bdb28c5c30c862ad6df303bfdda3a9b0d8feafdc275f122228f6a25fa48bb5c2896aea7961f1f86a5b0b969ec9ddb20a1f44b4e39ffd3e835b88565d131a00293151e2146331f9cc5b50c0449faa01bb0cc28212648441af0136949402f576f6348977283ea5f38d9311bf96cd3d8c0b378556825b342aab360401476318046445a52402a29f3f9ba3e39a966f46894e230dac317dd5c9409aa13a08931f04561c0f25d409881993521dd2cad8bc95d0cbf16e9e5330d536cebceebb128e1c5dd67eef21888d6acfb40dc60f11329873f1beebb0ff9f7179d4272425b40b6da0d582313a01642c710770d6e80693e36f765d7d08a04e09a2094609dcb0b9942f9d345ddadfdc7c9aa463909b848dd74c365ec45ce7afb43b3c4f18c956b0c1aa86bde50203db02a447db48749a62fca6230f25a6e868908363f80791a93dd381f0bcd680212d0fd824a1e18400cebbaf66855ae0d78a3d6e95a3e0bd27aaa9216cb4f7c50b6cfb1f05511fa990a1a9cfbabebf9f04e70d08f4dbd8323fcb5924bcc7f08ff711574744232d6434ba642fba17a0d16841bb984c11ff4f3659a451bd93e808ca9db1b0983d5d4e4b4763c6c42da9b16ae2ce63cf709fb07c0407ddf98ac2469696f7d558c858f0195b633fd0d63028be38936aacf88a89a7fc2f06a006d9cf0ed34e30c84a32407857a09b31473972432ab39bd5dbd525c8d3e8124ecde6d3b544db768e6b7eb20604fdc63557c669ad232dda6a3b00cb3b2d043c628190f0af7317f279451486ec490f5b105e41de3af994d575ced4afca9d685ba9d2c640974c5dfaeef7b279ab6bd0af3229dd133dd0b39caf2283268a8d9043fa6d9b66b22be7036a7c4b0a046632a82beedd0ec140f22178a79c48fcb018bd57eb412eded60a41291df2c284468b0c2f052f71eb69b23a4463cd317fd09cca96291083b1152b0bf6d9ea56dd66d344da3e750cffe8b7b9f97735935c6eeab0ee178af8f7feded5752e37d97f8981f0565fad343eed9ccffed383acdc98915878cb4cc49799cdb7ccccdb8aae5946ad7d07acee03a95f99ccf37c6f2953da47cd7db6f50c0a09d4c34202075162a7acb03fc7a2fc485db0ca0a5297b37e8b42a2d3bb6b86541edfd8c2e2970b2258ce0cf0d4e5d98a89d50ef8309ccce15a11d509cac2090f29ebc1d05f742453067e1a08559522ea107a6c2c0dc7c2eb183e8ce9999c41421b440989bd718b05dd3c4673494170e89cfca1759c79e7dc41aeee617b12e45ac76eef4853f7195f431c2b37e851bfc9a555bfa97b0589e610eae1d66d7e8a177883f15dfa928c82eb3debf8aaa470e3118f91e0844d1f3598066dc6c064d43875e13baad2db635b639387686f36a9fe97acbe453d30fccb3085c4ac52360e6a38f31389fcc416d7630568c5b703c26d6a1c410d1f68268dac84d41a1e1eb961ea271e665619f3ce588662ec444382ce751f495dec0f792d51ace10fa5fafae15512ae09dff5c7eb69b2f915b0c51060982fa74580fdfbb912b009d0c2d6706bc2ec0e0d3cea8efb21c69cf02bba019522a9dd5b7b498010a26425d22e1803112d87d7f03c91712ab5ca583cb55288c83f6ea24b9933c924d3adfdc290547679e52a1b016e499bd4f82a40cf41088010982f8fa7cde8262cd75300801cc515e1ff07f4bc66a8066c4fae901a10ab2bd0a2f794f1504b427f132cd5ca686410b65c5005732fdded7c1161aa32d6be4e3499eb8edbceb63812736baf97edf57500bc0faf4fe3d4e7a6ba53e77805127221286e27ae4c49561e0461c1627fcac27a3855d338ceb7d1ebf5cde0c3bbabe539b357896aecc4859bc90e00d894be49170e89125db88de205831d95fcf50c530571466f6f5404a245a823027cc1da09dcce920210221bc019f48dd6c18a131f47a0e91a02ff710d9e3e40d728b3b56c731a0a007aad55dc85c6b528c554f5f6949a5ac62664da05c0c55e8f61a1baaf726223f56e09ac81dd2cd65d77a24ca4d0b8fdd0341adcf7f51dc5d43331fdf55a3953629e15e8b1534f1e78511a63b6528a3a01bfd56464e9ba155631b39520ec3a8e764431dac44616e1af66c1fc7f85f77e15b1090f36136e40e5e740849fdb15b5b7bba91f8ec974e72ac2f571fa653c537559d4b13b95367daf1effb3016f5513c02d001d5175b146054170b3f5eea7891141d0c758b892b8061919cfe5ae7770423d269f5891510b0f996df6883c63b895c53c49847fd7b530a423415ca5dd61e1459094aaefbfb4ff87c1c5789679c954b4f7991182c67393bc04aaeae556de57c617f12c4e2c6b54780aabd6b5c72fda58d01f361d92463a55bb038b0e914d45ca8c1afeb8ef50e20beff485a442b16e7cc931229db322e7d20359b0c5b91b6f9d7f293d508671f8b1115e44ab8d1c184242f91d7cf8f21fee87c93a5e4fb1864e909ceae034dfe368ca681473be4da9f9ee923fe0e4e62cee29706a0f36dc18d1e9d732102a32cbdddf5efd436661917ffedd007a196d490b3f964704e1508518f4aee8579c8a0cbce396e70e59b4a363804557ae1379c2044f109bba502ba4186b7e7153c6079be86922fb9f1f1966049d40d8774ad2140c8c003faa429d9c28ad006d90ac0293d79dc6044c6b5dd9ec1f6b505886652fdf74520ebc4f116c22e30841c72b80369eace3ddc8b591b54c2d6e97e04bbb1b69396eb07c02986fd5cca32780b141be9d27b0375068b0aa9e9d2983b01f0f1b5cb4b27885f8d46ec6cab75f614f0ac37400447bba2bb7b5535426055edec44c105510588a6c3af883cf4cfe0c937243baf3dbe38675688876b07286df9e72f4951fa627890e895bca8e26e5664dba91b4bbc975d1ce95c1ea6d79cc2430207c46b79324315b57d4b84f2af869492d0000918808d97ba76c11ce0f820fa81398600a11d8f0810e4136c8bce0c24a0a16aca08a0af4f04307580c2bb4b0a8c2f8020419b0a20a2a263085140f3032a3c30674001453dc40c2ec07220c4104b28b80252a2d88c7caca8a2698f051a1c11916b00206d4d3820a2c2bac150c39b8d842e947a322001001f90181031480002844e109c10634708126488ef8f4e05001e582328e702428871e95958a034780a003125840020c104404200081258c8a8278e868e99ce035c16b0325c587e0ad81f28197462a4a878637034f062a66b4c4c073814786f7c5b7018f09b5d4d5c08a2105838b0b5e0bde0a9d0aae14522878aeae857af158522b9e0a8be5ad56290fd57d5da76a17982fc707c6134a8927d410d50eef564928a25581a754aa6575031a45a0a6c041b5d042050654483ca186a8b0b002030e013ca9f880fae1938125ab5a5840583faa958f078e95940a9e585d3ca9a054848acff70023b4e4e02935e529d5f2820c9e5ab20c184f2a385ebc158f944dca89272bb0b8c0002350493cc1c4c0c47c352e1b160ed714235238b07e563d3e98af078b8aa78f088e8d6a4575c5d3c7a27a01f562c1f93a540beab5022485c3ca07d50baa15d5528b0a2d2aa8e0506161e5c3f70423542f7c5818911ae3c9862554e9321b6240c15a60542e54f7d57c42a823171654de0ac92ac7aa28b5c24ba762f952a896effbbc6ff5b13e95151850dfcac80a0598a315d74ab5eabe156a076583ea582e7c398a5099218581a7972b8a70a95039584346a07260848ccc7bca1b3ea0c1192e280305639c35a42698f8e143871c7cae25c2106c74b460582b253f18154d69410c5e30c312374f3060072872300332c41001171ba8c206bc6101675e029b492882141b9811031368d184880028fd90c4a888072033c8d0020b5f78d164031a206208590c305c3bc34b0e70c0a47c9af2c61294a0a4a405165c3310e304231001175b70608903144016001f9018151191d18213b020044f04a9011a64b4400c1388008c0a5061800108a0085266608608c0f8a2034e9e7e24fae17291c20335728002137801822c2cd084123fca02a0a40409d10f1e301a970b192d40c1031cd084931f03000022203f78c05e5c50cd0335c868410a4ee00508b2e08005107000274b004094030f98cf0e0e0d0a2e544fe1811a3848010a4e60022f40c0010b20a0890328e14407b2254a3ad8806e3861881098971bc0c04412064882e446024a1820e794019529df1bde13524ef09ac0c200ea029e05bc2aba1c0fe7bbe940969a0f87cf5998c183a1cbb17ae173a1c3816aa1634125051450f85a2818979796cb0b2d2eb0c0b0e25259b1542b4fa54aa5beaebb5fe895eeb6a15bab21dd8d4df0c919cdb69a379b1faf58eda9ead64a86ee66756bc54277dfd02d95141ac79f73b319f71f2bb6d571f55c9d47cea426b5894eababc068a940d0dd2fdd525dd11d7acdd6b7e19cc673e8e13339f4705b6b3f5309d1dd2cdd5231e90e9d761d57cfb9d91210049574b7ab9b866ea97e1a9b201e2b499b6ccc8c43b752494845b135e31fdd26665a7abed6f1dfd169665e34cf8b5b2912a4aee8d17ea68e5bdd4a2531da97e956ea875410b7e59a7dd269d7ddbc349366ec5fb3d46c25291cd8044d9b587e69f3622571b3c66e19ba594b5036e8ae49774744773744c703201c0f72d33cc51d40403f403e403d403c403b403a40394038403740403f3f3f3e3f3d3f3c3f3b3f3a3f393f383f373f403e3f3e3e3e3d3e3c3e3b3e3a3e393e383e373e403d3f3d3e3d3d3d3c3d3b3d3a3d393d383d373d403c3f3c3e3c3d3c3c3c3b3c3a3c393c383c373c403b3f3b3e3b3d3b3c3b3b3b3a3b393b383b373b403a3f3a3e3a3d3a3c3a3b3a3a3a393a383a373a40393f393e393d393c393b393a3939393839373940383f383e383d383c383b383a3839383838373840373f373e373d373c373b373a37393738373737dddfdd39baf551009b6079da254a56685e332b3343f8101e84fb6be5b5128477df74774c77db7c47d804b1f92359cf99cd9b5774f7ee4e88ee2e88ee0e88ee4675975d14202a4277b774cbe3010cbadb856e79207058183a6ce515860ecbb427dd57429a6cab55d33dd39e9c091d363e59290dd31c72f09ce86eef9697bb1dd77ccedc717d5b76181eed79674ebb9ecfdbdd5fb73c1afa4b870ecfd4c76712aba5b7ee2ee7d1b86e90bb61f924625ed3fc81bba6797d74b7d72d0fd50d82abdb0addeac2e85cc91bf630d390856e75adee46a15bdd13dd246dbae59bddedd29d827537b4be29babb856e7547ba5b856e753eba3b07a71f6d351fdb8a4d70bca58df84d8eeb8cdb27bd87ffcc47f2bc36ec34dd9deaf6725aad063641f19b64386a76370cddde5077e3e8567bd1d8047349b3114d6c235e92a43639939ab34a9ad734df2df5f1ad79e637ddde9a69b65f3e792babe74acdec355b73a6a579694ebb3ba7eeeebacbdd1daebb6beaeece4675775907276668a1050f2a2d40b982860b140871740330926864ecfca085fc3113d3839f3252c0b1c0263cc1461159002a547e6468228053460a2e20017e373c54830e4b4f063001160c56345083a5a13c3dc5fa5bd920091616d6e72344069256bee2423879e23e52492a4fb9104210e1f9e744748e7222549ce52d23c411ee23252304112a324fdc474784ca59322b192254322999cfdb895075d68b798272f20425730453cabd2e25d3b1265f0780af539df7a152aad8ca69b552a9545f2a954a7d2a16160f1543c5502999a54f082162ddd764c96b4f799db72381a5bf0fb584f22ef5c5bc180ac54488a52631265fe705cb11dd1128efdc8b71f224034c7488317ddeb1ce8f40c96480890eb1cf993494d84744d72161b517d142d590eab1e2ddfa7c5a623c67e93a1f2d4310e1b94ae6c9f3ce3b1f2c2cce6259a9a05cc58b71827216ef62866079e7b15a504d583147e8e0e3739518274f3a1f9f1fa1438e1e50dee2491f4b4b8babac384b4a15e384c557582ddec50ca1e21d4b66880c24a978e743acb0b472ac5c8718d3e755e43c6f284b2d554b4cfb588971b2e2aa18272d2d324f4310f1b98accd3e7e489fbe83e971f3e6f89198288cf57649e3e77e9e173cf3b97a4cfbd169598279d0f1567c53ce97cb07c25c6c9113af850f1279d8f1567f1625a50dee23f7ccee2aa1827489af858f1ce8750716f889594ca111960a2436ce59d8f17272d263d25b69261aa22e7791539947bca25470fdf91e7aa98f6c1d2b91c7d9e42a9b410838ca71648e9ee6e6f1e96eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee0e8385d52e42bc16942ae6795ecf134c54cc8bb5a35028140ad57d28140a85fa505f7b3d1f0ae5b5bed74d8742a13ed4d72c2b368069c122d6c5566eb4d1354b28293e9914cbeb596a2205aaeb56abd5120b8bce9d4545ccf39515314f0a6fc65b6ae20921a3ea8ad05a9a010b1616ac2cba9881d58456e7284fb560b100159596ae8b752eab95afac7c2e442bce5af9d460b1fcb38137f3f1a08ab1a09ca5858ab1b0be180bcb577eb0562d87f101bcb88baf603ca9250393f4c27217992fca47d3c5589c4525c5e2bdd2c2f2adc8b008d062c92caddcf32fd5b11511a8262a1e8a052b95f7a9582c3f23b6a46a125371e17ddff7c1a4522e29776951c1788b8b0b8d1b2e2f2d2d346dc0ec70e222c3e47b697181819159daf104f3e22c1817189817d5e7d2d2d2d1bc41f306cd1bde8bb7a2e28b1243b5606068da80711a37607624d1828159b56068dea07903058769b5609ca68d96d3b8d182d99144b76496603a4701c651d8e184c9e78269a1d0cde414dce592594261d58251210605d7d26ad582a17983e60d9a37be2830de2a8d97efa96bb13e5775d7bee3a95128f7ba69daa071a3f3de9144d74dd3068d1b4b3b9c348bb5e389c562b5be335cdc43bda058dc8585e5c55d31fdd1bcb0c82c6554ecc55b322a2f2c2e2d2b321915531983e60d9a375658aca0584e48f9ce90512940cb4bcb4b4b1bada56f8d6f8dcf6755c6aa8c6f8d32be3594d05a5a95f1e22a2ece3ac3eb69b14114af478dd51a5ecf4b8b0c8d1b2e346dd0b4b10a63056535c60aca2a8cd5189d4b6a35864b01505f1b4f346f74362e322cd6125a2befa515942725b43a1536a47c48f8dc68e389e60dd6d2aa8c5519ab187c6b7c6c7c6ed0bc41e3c647f306ab4566a99359a5be3568de58ad3e96305c542d314c4b2b473911319598a52f964abda4fc05e57d2b2a322d2afef2f2f2c2c4e21d538179795151e9bca5454685c9177b592282c5bda596cfe5456609c7b4c874ee354b6669a5fabc974ea58594d88e588b7182306227c822d635116b314c20458c05a6d5fe790eafbda7957296cfe52d314badce512da896a597134c4b2a673911b12e66e98bb578b7c4742b15ef56beb2848a2dbd9ec4524ea48bb9bc8e68915942c55a9a084104cad5e22e94eff0a13a8f617af12f8642c125b3d424e67254e730288791d9e16be93c7bb116261f0a314b44c4985afcc58bb9601ca6cb2aab962f651597cc126e126bf197568cca8aaffc2586155b915952b98ae7f09cb59291795219c1044c8431462c27d66284e104eb537d9fd7c2fabc537d315d0cd57d4cbe58175b6a220411ddd2104b2f279852deb18e59fa629ef739ca73d4e7d943ad5ae59eafb8099ec23863c53b971615625e8e68a93c264f4685855a91c92a3115166b85a3a542029456ac73e9645a583103a8b4a8b4b03a1994378384168bf57d1d33428b69c553b12596142d2c29bc1e1667b1aef07a5458783d5d165d783d2d2ccf1e4b45c5ea84a0622b9d0ccb096fe60916135e8f13ab8e25c57ac2c5002c2926df9429362c2b324b4d5c8ed05a79b3ac703142ab8ba9aca0a4e896bad8924c12b12595ebd06a314640456c09c5c4124b8a2862df089e629fa39c405121f372d2d9a4dc281563f24d9912eb625d6ae5aa6ef53aa2b349c9a058505698e0841755789ef77d2c143420861765a854aad50a8a173e78f1e2082b14d17a59c017547c8145ab05060606a6d5520181185fc4e00b20b0d0d2c57c31a50598265a68618105165868a1852fc240ad106b314220850b2e5abc0043821c2a2e80e185588b11023442800431c018008e588b010604c0d82286a3a58b01a3042e5cb0b84861b15c5d8b174e62dfc201030e57cb5340bb08610241b481812c504f504fba09a062ba4fa6055076686d7184940ad58db1c48f173620019406404006611ce1fb3ccff3591d7d3e2b991dbeef3323f669b1c6d0f77daa1494a1a39b245076180a32e425d66270f124b674a37a62f13e551028433bb06a8089b5185ba8115bba8142464c0b22b0785d193bdf6ab5da2289d56ae5040a542b2d4cc0f26e56ab956ab55aad56ab94c7d28205a9151428abd50a56b116438b35c48872b34a65c1044aa5bad9f93ccff3522a2a56a9211456a92cbe58a19e34d9820104884006b0f080163df0610421c4e0db6108d6832cd850c94021804a659303954a85c552a9541ed0220a9514622d86161d88b9c45a0c2d28f0b284cef39c87947bde24f6b97c32398850de390f287f596af2797754b0f4e79df3f079e74d5e9eb43c87a573ef66e666a6861a8ab064563858be16abc592f13c4fe6e5494b05948c4b94560d387010b57bce43cb745dd7f08062c9ac64522e3ca4ba1c449ed7a95cd26875312e515a3ca0dcf315172294cc9458cc5bb900e9bc950f95ea56ada2f2e2f9e7c97cdeaa022c2998944b91826ae212a5d532e3f9d742b154ce02d3759d4a9572958a8c2a470f9e7f9ec47294f7b1509e7f67c47c67b8a462785011a97cf5b9a4645e9eb45a5a505eccd745179f1429df1725cae72cac96548c4b0e582919971c7cceb252c5279392e141955279cabb5893d857a4bb29b1cf8be97c34e9502d38f8bea71aa2a0a4ace1a13ab5fa5ac58a49a93a2656ac8e9112e529ca195d8c61852785f7e43121658d31cee8a2c3a263a293a2256098a33312856ea9d3aec71c16e64c5ac54a7bfbb3d06bc0199c24a19bd75f3eda0f69684070e6c85fd9be498f66729284fe33cf912415eb2d979d242b1207b3d3677bc521878519ff187a0d484428c929bed3fb68298e9aa32d571c39a3372adeec3f2b4f8c69bea52de7c8f133254f91a4a2e3ea35ffb4d152376f16bfc9431c665c49ff919663c5eeff40c09b9da4e225cb6bd21c939fd4dd47ba057b82d5baa85b3017ba415c7f564d11cf4efc38b789d586f39b1d16de5bc47fe6199f441c16865e03e6ea377bce52272294c4cdfab6d1a4b5371d9fee37bb7849a7ce84639992f7cebea96691ca70cde7fdb2e6209a9fd35f3fe78c95fd2c474bf3477b6ff84d8f05f83d2c0a7df447824d1077858e887f04d75b0cd71b6d92d56c35af2d9f94bc95955a99f8373cba96781aaf957d3533ed5ef326c34dd4bd834b0737ba65302c06096ab69a9fed6b8145f7803747b2dac46e022e0f7c313e13e771fb8c99c44bbed368d7474bfd2645042c516ea46f92b1bf19fd747744c0fcf84d9a7ba6f173a4bda23d69b8da921c1cff71b657749cabbfc66fbaa58a8a8aca8aa5fee6a5bd0fcf3d93e7b259c71fcd2bbee9b8fa9f243d327e8e92e63719b9a57eb37bec08170f69747710a881a709190ea803e6d4d4e47235e9ad6de820788674770ddd5dc453b7101dc4ce53d38c6db589b4ac19007952da0ff5f0e45c5cd23351d207351f0683c178787878787878767676767676767676767474747474747474747472727272727272727272707070707070707070706e726e726e726e726e726e726e726e726e726e72808080808080808080807e7e7e7e7e7e7e7e7e7e7c7c7c7c7c7c7c7c7c7c7a7a7a7a7a7a7a7a7a7a7878787878787878787876767676767676767676747474747474747474747272727272727272727270707070707070706e6e6e6e6e6e6e6e6e6e70808080808080808080807e7e7e7e7e7e7e7e7e7e7c7c7c7c7c7c7c7c7c7c7a7a7a7a7a7a7a7a7a7a787878787878787878787676767676767676767674747474747474747474727272727272727272727070707070707070706e70807e7c7a78767472708890349bb72c89bafbd5dd3e743753b77634c17c1bb19a6fbf66e49aff43cec72d2acfb2da4a0477c9f721941fe39835d2dd4131245f6b1fd0dd25804891a35bd4dd45f14c37a9bb73408ce251fc81f4a366f22422646bad9ad747eae3c973bca5d76cb595966fbaf9e589ed15c2e62d1aede936669ea2786dac36d5a1276794acb489dad3dfa45f477c963fcba31d3fd33745ff59ec745cf19f4cdc564fb20fc43569fe26cdb83a3d90fc18d3dcccc7c77dd1dfece39bf56462abdf4ea67bc9b765f3663abead556c4f2b6471d732592334b84bce5ca40ed6c09f71fc4ff32f2ff61cbdf9cd9ecb95ac336a89de3cf349b395242b6efc4c47ec239db92d9b75e6d42d754c6db8f2667c8aa05beab6faf82ffa334a3aa63827492a7a0cc4ff4dd496a3a5631ea5e3ea49243d99bc0dd320dd1d140de8ee9ee8960d5930a0bb5b4077a78037cf0c83d56ccde69dc51c1c3fe393da9cde73e62dbff4eece8916bace91ff27499baca82149e766328ce94da4b49a6ca9ad6535455c472f4ffbf8c7da74cd9b9798e2f00dd2dd2500675c9d10d004909aad5f84a4990219dfa478147f24fa5b2e29f7426ebee5cc253b4b787a9cc7cfa90493dff424499bcccfb6ca32fe5a1d4518eccdaf6612fe5abe24ce974492dd6e1406a3e64965f8c4f6b1bda2ec86c54acece23180c08878727c7c43f393846c677aa40546574b76d17901174675bef4d36be53a5dd9b6da5b83397bada0551450308a0d2dd4d7dcd07c273337fbfd9f3adfc9c6977bb2c752b66a76d3d6b75866bb6dab2ccfc1b0c26bbe19f1c9cd3699eaf254ffce6ed6e26ddf29bf199380fd12db565c7f849c7398a23a9e766de64fe686bf92636c15c673f3938326cfe8d7c9b58f397b65c4d6a8399c05d92667e93512e5791dea85077b704699a3fc44b92b146c110937a229544771b756b0699353f677ab33133b6a1893d403a9f433f679ce18837403a3fdf03849393e3d38383f3f47f7e767cfe67d6b36323667c9a3618a9662bc69548777700a2dc0cdd92618d5a772fe9960c4eb64c6f36b97c03de80383597666bcd9354c4363a393fe203cd4620a09c1e517c9c9af28ae0ecb4e55acb9919d7da9bf6c7ea199f451c67fb65edb1db32bd3949c660b0ee4e09d6d7ed9fe7f86fb92c8b010da79b6c1fbf79646f2d72e21b64c334480de728f9634eb47f327993263b9d6829bb95a6ed331deb68a9ac3ced6852dced74a2e5784599132d31496dad22cd2ee963fcf18af6472926199fdacf54b4570888980406ebee9dee00742b4707b009d61b959598e26c7e80c67f1a8fcdcfe7d0df799ed12787f6a373b35393ef4899c87ba3998e9ecf9baddd5d0be28f57a8bbec6eb15b40441d14f473f610ff48772f218991341a6d0ce7af993429db37cd532887cdafb49a6fd123fdd76846aa5522f6566cfe91f233d128347ebe9da6f9d912f1d0ad1792509b53b7b5fc5cfdc99aadd863dd9dd3ad177080d78e2ee8a0bb8d74cb0525ba7b89d24b89928324f9384cfd65bfa9d6bc666bc666a539edba8339923c69fef9c95b79c5b18e8edf69d747b65f451bc33992ed97397a93e1c7f4c92f82fba2eed6d12d1762babb48b770900166fcb5da893ddb6ab5f4bfe53275f367e569fd6df9b54449a644c9df96ed9767cda4feb6fcf9163938befddb8dda1c539b63c77d91d38f183fd28dec469673e4467623c33922e24ae41f48776780ee0e89eeae00ddc2f164ca942953bafbd22c51c67448cdd5120151496a2b901f39f2768bd56c3533120c26bbe12cd25b79856030f1c72b068932f36f4eb464122f392369be59e644cba01ef6d67c3372a2a558b1ad66767ad9633a0bcad1397b987f64fe1186c1ba0b7477d82d16a4c8e29be6153d5feb6f52c76e3aadfaf859fc9bd33baeee6f4b721ea1ccbcb2d06db9e27c7c1baeb6d2dc0736419c6b59c9eeee49f76f0211712d61306c9fe966180cbf6829497d20990d7d59b33d8be4cc9be9682911929a7f33226969de228c29298473f408bf0fb7089ba00d539b8d0d10900eadc767b4c1c9a1373e3ae2cea8a3b3f373f33e359fa999f1ecc436389f97497c9b68936bcde6d64c2a82364cb4deee8dda7c796d36364c6d305836efed7662d997d4a4ade0d49dcd6bc37e6fb6616a73d863f39bde744bf4b99ab891bef94f93e11cbd0505dd4a33488f1b25f26f26f92069b617886a5e5bd097b2b146cd9b9160b0af6696ddf0679a4793e22cee0ed57099a92cdbc7d9bef9365bf137d55ccb6adea27c1a8d8f84cf4c339225ca51f1475916ab99f19b32d997277ef376cd7124af0dbf69cbb2d1fe0d9ff88368c6af8dd59cc5fc351251931ecdf410ff081665952647e7f4578ece39f340542c1b47fa3699c8a4943129c7ee8e00dddd11b6529bd07777037042bbd73cfaf18a3f94ede3590c5722f9de22237d5becf2f023356b372323fd202213224ccaa107a222fdf9670f3631d31bae43394a7e114b742bcd2018bf59fb712bcd20dd9d003a23c8b796da846ea51904cb3ed38c65394abe0983959f710ecb6ca536919af496af0ddfa845fa4c3352cdd61ac5f88908810229d8c00c1d24f0031ea0c00a1af450b282aa094b8b1597166434e15e00e1d9236c01c30076d0850d300318d28018265c7214f0802cb2a831028e05e0688119161822e2054948e48003d594f173ae6579c526804c229df9f824794dff995b2a7aa6b62c526ca999ddfeedfa2deaee9aee59bb320dbac1fcb8e64a526b7e767a27ed356b93fd41331d72fad1127d8d1efdf92713d9ad1c65f94992de64f824cff21469a643b54ab35728dbf38ab26cabd5c799df7447fbe6677b5ea1afd1a3f1f12923e939d6a63ada2a73a265775784ccd62a49650f44c5f9bc393aa4a53c85bd2a578dcaa1eb55a75cddaa61ba140bdd4bc7ca41f9f4e7044a8695c762a5505fd7750b1ed85e773da074e87ac523d55e775df77941ba6ed5795df7a980f03aaf5b792c14e93a55b76aaf73013f4fa59a59f10ee57928263a54d7792b5d12bc4ea5531dcafbbeeb96bcaef35846bc1c5ee7a9505e1704aff3baceeb3a95d7f5d0b5d0759fc72a41ea5bbd742c74dd0aacaf93a253795de77db2ce43ada8ec782d5d10ab4bd5f0e5d0ad3c0f85f3ad785e4703d3d30581c2616980d7a8f628d0a1be1954caebbe4e29a0d341d75eb75aadeeba43755e37848ee5ede83a2fe5795fd7e974361dab6bf13ccf5309753a3c0fe575371fc8e202eb86ce0585173c067429cf850ed57d5d7b479eaf74a8f6aaaa3dec94f83aa6045def7002efeb541d6ad5b974df139ec7827dddcfd7791ecabd1695992ed575ab1b14ce0c379db7a262795dd775abae83759e57834fd5a978a8afa993f1ceaefb6a3a1516af63ad3a6f074f064f062f86afbfee603a95e7752ea8d687f25cf03caf5375285aa75243c792f2ba54f7e293c303808a45c5eb66ac9695d7f5d0b1baeef33a5417a48bc103f260f058bc9597eabeceeb3c166f85eabed4d7753eddd7cd742a5d4bd7753c3a19bc956fd5b1509dd775b0ae53b1e0a9d0a1bc2e85ea803c96eef364e8becff3501eaa03f2bcee056fa553e95828afeb3a581783b7b2fa3a140bd5759d8f773876b07a7c38a4baaf53e950383a1515188b921c327434a03acf5379abef5a2bdcb004e93aafa6577d6b24533a29486cfb9134d628e3c8143ad080119ac60d521a51ba480c1addc3142ef81e28197d34c5170f388ab94646692c49191223c311784803861ba02970d800d1170cf8a4e152834fcc4ad79346f7849e700a047afc8d064327c850135ae1bda254e0befc66070e52bc883043e82d33780b28b414292ce930d5443b4a00dd5f77774f41dd5da491740be9ee996eb53c81663aca544e566c50c193ca8ac552adaca8522c5f0c2aab2ff5add0925444910c6b46b5c2fa41b5c074a896950f2df973f95aa9330400c593eac55ba9a05e2e31fc68e069e548cb887abd14e1ede448194175aa1e2478ca61c8904b001e6a05358466094f519c7429986b861d8af0502f7c35663ce190c6d30c474e5680f131808f872208f0e4820a921615a07802b2c28d855794f0d423abf01022a0b552f95c524ca8022451040be5fa6a748af081045476c8c009ab0d06bc782ca91d5c2b2094905782851129a4665680acdca05242ed580119f181297830c2054bd8387111872011c613cb497380005c72603a2e9e5ce829626505a45a61bd7c3e443c7c31ac00591541e482c40a92e307901595202d48638f0f3cb5807af5aca86029b8a856587ec804a0024f2bac2032cc0cf094fa5aa94ed5836a25c543b523a603cba9a2831544b5b272c16548a50654914a0b2ac070c30b2cec60cd1415b9a1881516b8d271d1f1213a5ab5a0562fa4605f8f4a0b4a87efb05259ada06c5242503f3b74a91c5f4c8a851b1596f801fde08183b5c2828a4f1142452c3bac19540da81a541778daf1821a4ae1909241a506140c30385f0c463c8136dd47fb6a505f2a08990024e0da0d68a00c28586ce0025420d1640827cc447b310c80d20f498e18413a1a028020b01f9d991b6ca0c103b6621d43445eaff833242d0aa045d522a6852a8b28594491852d8b1f0f14c1035d74e75e48e8b0b19a7ff3d990d78438f742b2d31785fe0a694623d1915708c323fd22b321af0167f05865b96782c170ee85c06049a1e38caf187350c86bc0313bbdadd99e9e7598b7bce2cf700649928a347826f74cf9913c70ebbed95fe535691e205f1ee80e84d14b94c40e3ce9c0ad03352c5152a2949b7998cb26a6b858075e3850c612a5b12a511a39c0c412a5d7e31cfb748b0347351c68f5195838f512257fbd5e5f528bfb222cc20d20a15faf927edec0171bb8752f517a813424b53736b38199ee36af140d401935f06489d25865f931ce1a08bb1bd44006ceb8451978d2dda0793310fac800ab7334e3eab4a6da649e187745946ed03e13cd575cf1c415b941fb4db57645abbb6b68e463b308036b748343448e812d885c1b0e090c963412c16049483058905833cd3058528f0bb4e0024298d7df024e7483df54497afb67f257cb0a265841012b9aac98a10a31aac0550ca9024737187a4d058a5400a4000f28b004056c14d0810228501183ee0e4bfa59961f877eab362c0b73b4b4d7fcdb8931b55debaf30b446402a6454bc1ab4e704ee046224c002090840024a2400c3143d98a20153e09aafb3f2fee019df9bdfe06f1e398ff0da703e6623fdd1aff93ff8a8514b89d8c4b3744cbb45a460420a26296011584204ba88c0520482743748bb355b67b696d95622104803026140a01fd083077401e6c8bfe137474b730da9a8e8ed25a967da930f6889a208518c200a2aa2708ae2060798e1800c38a00a072439a007143e80228cee0e310dbd26ccc171e835210d066b1c9cf11c5c0cbd06461d07bf390e2efe68529be78aa3e479ab96965e9a8f4f8cdfe68a734bc5f3e62ef65cbd66eb49bb916f231af21c2d77cd3cb365f3fa15a9e7ae99f10f4141040a184afa49a3a5af0658d1805bf7b53dc1c513483c91f3c4c7000c30800806cc30206601642c408c05e4eef14d6cd2ee3533a64f7aa6a6f934b366fb0e8e0a78a2802014f052400d2e7042082768126046022e208004fc90009d04b0800029dd199f66c6b6da8c6f5e9ad3bb7d20aadb32ee9ab51af29ad95e11939fa90de7e6c5433fdcd2993074eaf9bce6cdf8347378b3e7cff49233bfb9e28bc461210df7d60cbd06f7e1e77356cd9ca967042ce011b093343e8eda4a6b147749b209349ab040134a4db87d20ae096406c49ee689eb101351bc495b6206ad2522b0049125565a0760c201ac3840020e1053820d251aa0840094f8e9f173e43852c759a48e6b08ab2969d72deeda2f6f36afdf4ecf8e6b48e4e4b5e17b33cf5b794dd196cd8bf34ccd13db1fe098c414491c49e23300160630c2003203b0206106124820413e52b5e7edcdd3f3e3d073b3b20e7130478ef6ab492ba90dbd06bcd9f1684fdacdb68634f649d07170fb24f825b533bec33fe77c987fe438c0287996e6a5995714a9c519b95100320ac04501a228801060383e11933e291abd685e2096d24c479abfa44f0a3d41e3c9114f8878a283006410000a02f05084231c7044d3114747b408e9d60046300027ba1bbc398f30e37be43c44fb356f1e390cff7889e4eacf44f363cc447338be09e673e6df7467f46b8eccb65a25f1f8668eb435e3dc6c7c534cca75f6a379f358c398bf2ddbfb4d97c800564e4ee044024e8e9cfc108012044005783d1c9f8c8da1f934236075b7f44d30974d7aab19cd6a1b9d765fb454c80827186186114718a16344cb1645505144511133c8e0498927a4ee0643a1d071aee58fc7374a921777c99ff9f8e239621ddf446d199f65ced2b2a49fb18e2f6d22fd37c791baade5f8185b9abbd9d68ccfb1869e9b0101ff4d9ae35cf3637c735ab327f53f312632dfe2aeccd652866b8ebcdd4e6c3e10ff26cdd672a4262669d3356f374ade5999c35f528b495a56f14719aedf5433adbd35bff6d956919a34198df657fc376b3f5e5ba4c90edd4b94fe65de71a444a841d2588b882c883089f8e95ea2247bf9ebda70fe52a2e460aeb8b7b1ee86756b0829bd444989526c0829b08e276735d35b79455b8770eab643fc3492106b803e7e4e12e289af3d599baa79fb4c492ae227492a24c4ad0a1124e7e434f2b18f23752156bac11c99edbdf945923d38675050520f9a910dd3202449859cae0f182c8949bca40f182c290815105800e144b779e6dc67fb25f59c1662cee544829693114e36381be03a8053c219353da1a98cee7e7c6db81c1edda2b725c9b2d3875e038a14e76f4bb2855e9374e4e0cdf476b3197a0dade4db7236e616476ff847b74e1d9c0d38914e57664176926b301b7df36b31f5e1987a68de2c5220b1d0699782f6661a1e395122b76ac3e49b55bc1853f770e6b806636f6cdaeecea15b260e93359830c164ec6ef03df7b6ec234d18ce60b3da4b33ce7876eab91911d06f5edccc5b9006ffff4e7197dc1610db5bc9d0fc5bc4fa60756c8ed207e512dd2dd4ad7248192b5b2859c82eba1b3cf21a10c3625e03036b401f2dcd22757a248785a27969d76924b5fdcced75eacf44cb9cd325e99ba1d7c08e401a3c635e5c040c65e34843201c571a922465aa0193049884609a49758b8986a53296a02cd5a515ea12ba1ba95b958a7a54799460b3a21bc76bb6127198d190511248b3d5c4e6e72fa9496faf92e217aeb8864340c06b3e10e3ade6df5cb4e7b596de84fef8b41497f1b974de9ce3d3dfd471de9c35e2204d6813339dc160f90cbfa4f8c95bcde4593ea6a2dbea2f7ad6eaaca4b88ea1d780d5e949dacdfea1d3358f42ffa68a712dcdbffd2ce35b92f49b6e4d183a751c864ebbb48e96fa0b57dc674b4d7ad61c571b7e93e6d42d8ede906c2ed44a50b3351eb51790e668c67c7c7e75bae68e1d60c69774928cedd8e1e093b34a6d1dbfc97cfce6db3b3aade2aecd5f213e6f99b3d7d2d07333bf301e8a888a8ac49080322499ff8c347fb48fad919cd3356f9f69edc91f6d247d9324a968c334080c960483255d9a25a231d10dc668b61b7d7389921225b731da8fbf94283948bb34b7b187d24a94acd15301de4e58d8dd3ebaf53cf0e8d6b784a1798542928af58748cdecf47eb38f5d94d48e4adddd35f3bcd9f76b3e1035b635fe886b808fcb3ff3c7f44df147dc2549f16f58876e895074f79757acb1d73aa6b61fab584fa4dc0b21c93a33ff284816947ba6a0dc0be921fe911faf38c3c02c023302b46645663a66ed48fefa6a2609b9bb8fa11f9c1cd0870667c6c82ff617d151ccc3d0f163230e0b6b9794e19857f4af26a5821ed1a2331aa48707bca199711c123d523884b001615378e342424ce28f9ecf2b63a31b9421408693c9643131744b86eaea3bfcc74707240abd26f74cfef60ac1b96722124214001c000f40abb584084b74b0a489ee1ed2ad253f96bcba1b24c993e6b8be991f898339f39b7e745c3d090c6984668c429f7190e69b2ab67f737a18ec56d90d878e49928a331ed220cd18850ebb393f96592a86b93a854861f8e31543a7dd502844721c5c68c668bc22ee953ca0c400a5264a444a9aa0e40a25b66e1cc7a1c861f87335911cf90edfd1f9016f9efcb1260cc3a3f0e833354f517c9ce3dc33cd4e8c4fcff9de22a63f12dfb163c70ed0a9d2debc51c7e5e74a92d449b20ae9ee58b794c0d0dde0ed745aec071dfca0054db77e4802c76b40269396339c87343330d7f299cc1afb4c94c80f3f3fd0fc80820f4df0610d1fa2f82083960f4fb44d0fa7c171bc06e9070fb123d951ec47101cafc15a90c0796e76401c8721f1c7d487d7809fab89c3f19a900667c628f49aa01e4e0378a36f73ace33d47cecac738367b245fa337a75d7fa4c7d476f498da6e414962bddd8c2b8d76622cd24c47da17b9bd68afa5e60f182cc986a94d76c3f95e531694cf5b50f99968a876c92023180c062b45a71e9e9c204134333d4a3149292649f2432bc90e2436289dba79c59a6979f349edf8b624245b2049a29728f99757cc27c521093ab2c611271a0c698af86b249a09a9d76c6da2b673f49ff10849920a854e8174eb880d40dd32c28691288c0cf5122577a2a5bfce2c527f65f2fcda789a35c73509094910481282e404242bba3ba95b48490d8e3ffebd35cf91333abbe6cd7e9335bfe9d69ca4a7a5441ccc91b38af1bdf9db323eaff9354b479a7cde9bddbcd5bc8df44d5af319109fb736bd79c3f533520e52d32222282245912545584d7b08a307287a187a8d8fa9cddfd21e5c476364f2b4b123021c311db1006589928ff5bc3e7e597336afbfc8db393acdd55f4d6f6bb6dac44c4bfa336a4400a31f8c50bd44c987885e4a9440dc5b37cfeb3797f7faf8b7db3547c714477da4b6581119451b284ae24a944092a4e2b5a1ec99680edd962b13cdb9918e96f65094a308d5dd4b945e2f4c71b116110d10490091a0216b742f51f2d758fda54409b4f776521f2dfdd9cdaf9749cdcfb8da4a4bfc771cbfa9bef8e663cf997f32f9d11ab205d8ad214f9628bd942881376a66172979436a0d396a70b4e7a5bd68df7cda9b41ba35e4cd1b390b9384f8a0258489eea65dcf519c5febd471cdaf2767d426d237ede998e284ec804f2ada8a85b0dad6d2fcfc23d641a45b00c0a2bb414c49f16da2a5356ff6e816006cdde637d9ea3f1bc3b005801dba41f3d28c00a0427777b68f89cee8ee24dd227aeaa6d1ce99486fd869d799444a3ac5376a33ffc841fbd86d759a6bded16f061fac33fe27c6f5bef9b624a2a306cdcf64a52575374eb78854e86ed0fecf7296967e6f5277e3e856901f74f751b78234a0bb419a11e3376f4e5ffdf149c59f89b6a4a0209a99a02092a442305810ce2139a69ed4a3472926092ac5244178fc1e4ed747d0901e4ed707101574774fb7802800a65b408e00b2d320cef8332543af01c7ff99e34abbb6da794d5b16ab3dcbf28a2479f38e6efda0c10f247e00f163a6c1372bfe118f39329b94885012cf596a7ecd5ed2af3529798a4e8b0ce9d01a4241e88beec6757c7b8b6ab68ea5e8147a0d48737b9aed8b6f7ac6b7ac33224249de96679e46b153cf8fd4dd3add120261e0030c1fb6960f97968f2f86452b26447783b93aedfa8e2f2fdec1c3de7a738ec41497db91afdd81ab8d3c6918bf289ed8630efb91645404fe484bfbb6ecaff19f8966da2da99767599d68f9b65c1d575b761a9183f6bead4eb40cdd9ab7f45b04e64892d66cd29b793d478e2f7a58c365e8e6dbf2db705eb3e3d8f46e63e06bfc1749fdbbbb876eed804577afbab583057638b24390eea6ddd2c107b26ee9f024856ee970b674687537f898da44f3bcf93fcd89082579e52c755af597d7c842af013d476fe5e72a93fdd342afc13f9ea4686ba5a34971e6a551a75d5bab6f7ed3c5feb66c3ead156414c4ca618d1c86c861ccc1eb71450fa2ee0640b7784ce15184ee46ea160f08b478f418ea16ac0d301cc297f810201844aef8de7ec85f43806010f6fec89d3e5c89c370169f467b7f0511ba3b11a124b46bafff705898cbb7f2fd67441cfcc7a7e744d1df96415b13d99e571463b78836826ecfd7fc2bf40f04c364b2222322a4223f8ec87ef0102b6294842493c1ba1b4777cfd0d031aeb7c133c9482ade6e92a6bb0f50805ec017b97ec7610ec512dd31dd4894e0760c491f3b2d72c6ba2b30d0dd4d811b71d00171409c1a92dac4bf213925c9162013914421624d677f39acbc266d7684990cba1d766d386c82324b45186c86a242e87698c3608f6f608323b411422374dfdc68c665cdf931be5133a9079a119398311d42331dc25fa347364c83e06cbfc46412ee8b40cfd59e3423d1eb353343bb38f84ee8b89ae6a5e1227c8b6846f934b244e6dbf302c9b728df22dc1d726f921325828464ccf4f645c6fc4819df21199f43e3e3ee687f0c71a244ca9af17b1e3ddf22071dbc19cc6f6fc01b30a7c92f529183f635b321616cde4a3a4873b5671226faf14d958cddfe8520d56ca53f94640bf2de680983c15c49c2eece3dd3cdb0cf94c42678a3a58d79336d41a95d4804d05f5e24c7b5baf4a6f3b8f120e731be0d9f371792ee6e28dd479ee88f4776e8f69aadb63aacd6ee90eeee0216c02429b3c134238cbb29c84a817ccdd224fc4c34e97191dcf835375223d93e52cc9e39d9e33cdac7b9917e11140e08506208abc80edd5d8a4eb2d13ef6c05077abda5564a6db6119fff8359ab1631d65aef669b6393a67f87210772dd3e340daf5f2718e69f7454932e620c6e7ad266d72dcb54cfe43c637af484428c9cd0ed29024f58ce3199f4b336636ab8366a537a7099b7a78723ce7992839cbbd10077135ff6462afdbc45274b2c9dd8cbc7992950219ed238dffe48c5a2344f916e5f2adfcf145f0487d20dda211a967ba97b44bc813dd8da3660e886371d79cd930b5895e0a9b60767a5b7f048d7fbb553363588929ae47774781dbbd4530184e936cc4266853538a4e36a5e8646fc5e69595a2938c480ca22bda61a3ad4cfe7218ac89d0b130a191d0a95c4188c024d29913405ca939d480ee0940a0db003658363ea6a4bfca8abdb7da1b6312ef109ae91036c1b2c629d7d860a72cab407737c58bf616e57275fd5881ec0716dd3dcafe69ae1f5174e7cc3f99fc70d2ddb21fb61f7f04e96e9c7b26d9e71f376d3e937971b21f2ab8d178284ae3a13186b0e8ee66b56b488aa127b7eefea1b0878674b70c5184315443778fb27c49ec72c225d446cbf072d2bdba9dc0a3c301c7877609c1d0dd37600f0e785393ef356bbe9ab91b053c680f0d3378e0ee2c3f12af8cf64e7049d19df29f35b757f4dbbd485456405274cf1488ca0a482dcd494a0750f274d7224377a7d4dd8fee66e85642f70ebabbb64bc8d75dc60c34d0cd34eb46a2b590fd78ed5733534047b7975d55f8d0e38f636c1cffa727b4611a24f45708d2f4e0cc80355fd67ce4448938edd2cc8038788e4ee8d65efbb624077374465ccdbf8140549a19da7d202a0e1db4b48be98c26f74c3318b4b776b3bf6ec6374ac4419c6fd193336a8d8cd6088d7ca45b2493c96436b91b39de52e6943b2ababb29ba29ba79704ac22638abe4a5d95a836d708d8d8e0dbe345b65b9dc57194956a66fba6599c55f7a7394e59cee4b37ad5d3f4a5856b3d56429e1f281d2dd39bec36f54948de4f51c72709a991b15411af9f84f263fcac46fb2c1e41555331ce085718cd9eb232716e1be08f7453eac6e275af6a8d1ded3046632696913edcfdc9ea6f3c04e94080c96e4418ec13b735f123a5122a1921f871ccc980e7190e695cbd59e6579c519f095b394c8bd4918f740ee4d12cab768fc7c8b5c3b4a70edb0a069f04cdd3aeeadd76ca564a5f9874cd0c6460683617b2bb69f9d5e4703ddedb091fac09f47597e3cda3b93e5c4fc324c65d97e137db2bb93407737051226f16d4246b091a1524c722bc5244842b76ac3feea615e20e48caec06032fbe3586db27aa3b21b86c168e4e39349b527169d9e7c2c336f0eea1124de6eb19b648a3538a64ecd33d663247a5b6bf6875090796b9efd28b35796496aebe1747dc060e33bdd190c16144433f3e4ecbc4341e68fa6114e4e538f524c0283dd348d344cd8cc3ba35e93b325d1386dc68d9930942881ae192b666cbd44c99528b96b666626a6630c1d377c6d3abcdb9ea6bfcda5a3bb018bb6270ed79a49499f5d725649d70d478d33ae75566dd7bc1db96e687583632db2218acb8625babbc96ac3c56e467ebc35b45183ab06216af8a18615170d4028af58d66adef06bc4b11fed9de1de3ad19286316890a2bb9b86274f43927cad8b869f76d1c0ea1e22f226993564a0f493336abe25cf264be49662232e9908e0209924e06d56b1d323224582b8646e986e4c1bee361613058c81d23152e0d315f3a4c19830e6c7487d04c160e237c16063c6b21b1e89da8576f91bde05ae2e7fe2f221aff16d22f619d70c529428cdf044b76b865abb6480c10a5c3210400625970c465c32bcb86288812b062a5c313c751b392c1c9b7e80f834bfc928f49ad06121f84c347b8e9635340a1d637a7bb136998f14f435f35633cd7468a41f64a4df746f32275aca6430a40103160dc313484428090c3b340c3320ced14677bb729401e63792c38a1c4fd59523880e9b63a6e2b75f23c5a420f347fa4164b8b7ae1780d08d9f14ede9b47b1414fbf21281c19270d7be80e30596cb052c5c2e8c2ed8b85c980107192e1c50e0f8e1c271d3dd60981fcbcc27474b6dfe405499bda13f13cd309891b1ceb8bd9526a4c19985f9918cc2190ffd67e151989bb9df4a9af1ccbeed46cdbf8dcf749b6c6de18cb667ad05a76e77b50073b5c052a204bebd5f5ecc82152f254a0ec65c2cd830c525b1808387f9a3795790d2a0793d276905280d629a376f39e3394b57b0751bad30d320f9a24b8533ba679e75584f72a960058843bb54f8e9ee76a520e5da580a4f7477c75208d2608ee2727e8b5c29acd060c695c43ded64426f4641413d5cae23b832e0723571b97468496945f1f61681423fcc1881b76a8a35d4ebf8654904330017cc0e2e981a5c309feb8507ae9703b85e96bcb07ab427ed8bf80b2c6becf557cdd696117437d8ae9604b43069b1b95a72b858d6a071add8151b546ee0520143c5c9a56283ca8a8bf5060b8a8b6500174b89a5826b5582956b1573ad6a5c2a25a8a6500971a95229305ca9285ca99a2b95022a042e94045ca822aeef09ae4f4a771bb54b48bbbe23ae6f87cb63c3e531009fe491d7d084a1d3ea8ce3d7929890127f396c87d3eed32ae938d707a2e2f23386790d18bed7809f693e4bc779c18c6c88bc06a441aa5dd2269af4b1e74c6a2bd293354e3f84fec38c51e8b47b833f49efed9a3724274a24f4dc8c8aa08748a12ddf99bf5ed6c86bc01a7b8d780d18d2902415721cfc07c7c191c257356fc52f2307439cf09fa44df5645204345fe1e3f3bc3923a39d710b0bf3b5e19c66c67135af63d15e27721087f8246ffeaaa1c38e40f3ab7965218ed738a555b1665ca9f847cc1bd4e3cb9a64df8673793a746df412a5f16d98925866deda446d3fc3b5d4d1ae6e0c77754eae2e00aeaed54b9488dad55ddc7cba3a49e37f1aa6382457b37a8912cd9bb4199f528229b97b89d225f3795f3f1c4771b129386f38e10d2bba9728c99428817fcbe507ed151f3ba63824dbbf4953a2e460bef78d99b789b8c9634f68c356ab36bf37ff912760d14f78d2dd4f08d24dd25caead27e0b071638df6e14607ba1b3b512278fc92da7f9326c3bd95e1deba3154041f38c189067f96c92c52a71f4ec869021b4d30a3095134816c4250136c9860039aebb6e219df017178c01b7d9b90d780e3b5e52f6920cb6c038f40877d59b30d40407489128ac404206db4d1c609dab8b511c312c4584204967097205bc28b12b850824c092a4918a39b06773063b3ea301f9f34e313000ed2e0cc18d1fc69e619f79bfd9533bfe99de6314969335e995e98da9c24a98c3e792f78abe29b2028e6f7d70b9b9fb33437bbbd793b6fee45cd9fbd681cd770c6f133599aa92dcb9e9c51a722122680841209311cc18d2398c01ea10523a86104288cc08311788ca0a3083528c216450840115c9022042916903293124304361a2c7d0cf9b5b61a790dcd8cdf6a52fb22f68ccd8bf317d68204bed303eaf83079bed6dd438a63322fcec36faa2495ddfe9964e1789234e373c8fc5aad9ad97e1119eeadcc5e180cf745d6c83336bdc61dcce5ea44f3390b65968ab2d06bdc6145c0d39dacad011fc9cdbf5df3f622a958733587bc06346f18fe0331c1b19e4c2a49842e88904483494646453c37b35408cccd9c0e210643f862081318820286f03484a321e00c2125841308a10821ecc00613d830a3bbc36bc3e1f86ba45fc4717070401e1d875521580b12780f0fe893e3b09aad35e048df1c9f3ac6344b74af19d2842fda5b34e3fee6cbbe791df79626242269be49e18971c52425c90a8e45c27f13484899c43ba408b617d337455ccb7fdabf4963e3ec6ef18f04e18a20f810041410ba00820884a106c3d06944fe3fd2f2357e582df5d74df2f214cd2a3a495226a3f00709f801fdc1ca1a5facf16bf0e083293e08a3c1f1859c4668c62824492af498fa80c142a7b7dc0ccf3858b3d5a4f69a8e2b8d08a4c977c643d9f8b06c69ce593a23c96b9637533cf3c10c3ee81e5cd183a41e7c3c88010f9af0200818ce4e2c1b1fbf727076f811fd8c6dad555c337912097164324c69f0ec246f37ea37fbe8e7cd8974fc9f9d37776d745673de9cd32c056bf692f44d206099b3773c1fdf7cfcd13e120f5a6a4401d57892a9b1431bbd032c7a8992ef20dc010d3a88a2032b7470d3c14ca7b1462f51f234b0e834721a47d268458922c3bd8db2812849c0dccc31c5c5a2a8d0dd3988410e9e6c2c073fdd385083663ae2000338b09db967f217ee8b7080e3a544c96f50c63944748327dd7d83b01bb437c0d1dd20c5d1aa0d7ed0a0793da887f847722f2428682482c19282fe1c896a30d6c0074d0d5a3560a1c1051a40a021438315e232f49ad0968e835bf167f812392cc4853470a2410e347839230467303103346680c40c723338ea6e50062f9081123208800c7eda7c8b33030d33ba30e3290656740c6080811a30b8000c9a6030c30b9cf002345ef080179060f8185371c679107101192e88c20540b8e0c605b1d06bc067aac1c173cf34039ab60c2432a690e101324a324432bc05515aa0821668d1825b8323edfa7dda8df1a8e15103eb010b3ec0022858008405ae15e860054eac20d3cc7c79b10c57d0df964f0f6bf69a4842b2525af8e5450a9d46245301115400450549d09a2f928222a4800329509202221420010565a0e0858214c610c118538c31448c2488518518454e30e5046784343433f64910e79cab9335e34c043e2673aea4d3eeab7c1ba66f3abe5987c5950707c737afad556a5eb7b86b99c06c5e1aed6b32fed968627c92b4e9bfc809564c300668022113a810c61961fc28c1114ab002c7b5043c4af042821c90a00a12dc48a0c208d81841142350c29892d78673eae68582032814808204ca4e8b200122f801c613c0f80018b76e3087e089100c7de1842f32f0c5ed0b18be78f1820b2f98e8ee8c69a6a3df8c75d4d827717d5b061d045f8080091014016becb54141fe1a7fb4e7f521fb37695886652f5a9ab1ad1f60a21bcc6575ac2357bfd85fdf54c92ce403b6671aff033f0ddea20fe000bd0b35bafb4d7a8bbab0e102095ca8800bcc45d1164dd862025b146d0143bf68d756a7b1619ab1cf788ecce29b9586a4967e9923497ae273c6bd16a861a8d40f4db7899a644ca981111900000002c3120020301c180bc76472c1689574c50d14000568b45a944e1e09447a10a41452c61844040000044044443448020030a9f2bbe739c689d0e70b61d452fe0ec6ebf152a5cad48860265954efb409fbd0d6b4788f85fe6ee9be78411e7ca2bd76a39b61f139a63b2c8393e6565942cb7537f2e26be2646062f27738e05008fdada743813e73ff25cc0f8730d245c2bd4ccda86be840ce29a04fb9ec8a7c3ba47083d713b30687c17908f27e46f85ab3e64917ed57397d8533815485c1ca12013ae5ff41c234f94b53c12f63ec88ea700e3ce0a480826cf219fe673d47b4736f0b3ac819d9b0bfc4d6d85d2bfe04d56362f2f2f000c56e6f114e25d2d00a2a620035faaee07758334f824ff25afeeb937a3b71e7579ef1a3c28b9fba9ff5c893dad150a8ac7ebad04e51a7931bffde399698617f03a58a495f42ac5d46a54e5b57fd9069e02179d874cf2a8f36921806966d00b08032712a2142640438fc13451d98d28963539c1639955511d37d316987ccdab86688df2b6b0fc7eccf6a94692e927d49bfde5cd77d41495e5c60d2e489cfd498aa6a1e99aeec647228c73ee295c1b2d241d5e19f4776c65d630343114f5050c6e22d04c2ba69c94721064dc42ca3a7158f7080d5a12fd28685b855ecac5d553ddc77a5d60f549a4aae7d68267f1f539b2042275aa61459ede1656baa3d8cc127deeae3a2b16eff5d694e4062a1e66e22e03ee2c7a7c3ea2559bd6b7c49c252534629ab9d27babe7c126a0062501ebddaf598e4c914af6bb164444c665b25f7672a74ccee107e3a8471e5fef54546f7f009c01d879af960ae218273e36f17c60b7a820b097a67965eebf5532ea521e93896970a58fc036b4c80c61c8ee0ba3bac1593d355aa2c352412ea1130051cecb37eccdbdff8592472675f3a0b5991b6bb3630d10dbe3d81173e712a04faf9ddb6de4bb8bf87139d1fe66b42bdcb02f6be8c2822c802a601c33195d62eb057c705ed2f3eb7c64e5ebb0668ddfeb744be5a3a8244747c96bcdc8535c58eb4758a8ef2a52d5c5a089655a30bed05967c760f5faad4cd9a6ff76376fc51d2d488d917298d0018d4d7e3c1278cab9a08286b84570043ab32fd4e26b5f9217c6eb95df16277ac523e95b58d4ebffa44f70fa517befdccfec6283012fd6192a8ce685a9270f51c1fa0b051d3dea932ba0ca88d40f10d8fcac18f3b24ff4dd61e936dd89637acdeddda0a286fae6d71c6e6c8cae4be02131cc2613d6995db0cac9f4d9ee52c66b65e2610d6ae0be1224723263f7b50dfb0f64053aba5cf1d3f8bf7898ec845d3b7476144d3bba604c420504307121b162365477e2c3d0fa1adcad675c01b8eac188b567ae4e9f76180817ffb71c1a1f439481f10d883a70d7337dbd257ff76412c60c102bc8422ceee0c65ce4057eb0d2a1d9d0ddece127e713ecf5f1dc8434cdee12f141ee18686969a12ada97a01ea32eb7e1a63655a0a17b31317a07b11be671e756a28713d421ee77f46fba27382260db24ae2b9dd94e3a1ed5bd64f003891051d9c1e644041c0c2b1f0f9e1599f2bc6ffe5e50b4bc01c7c3ef5d16306722694dc872304a4c9e17b0ecf1965ec67d6dc4ad155bd35eb219a3f632d71f9382bb24cb4b5c3ea9f0975793a33a23fec05970b27f72c7c84afcadcfec3e95e36f86115033cf2f2bd1e5a0e0e69a12062b628ab3ff5ceda830ea19152840e5161a1ec2f0cd67678dcb55c88ec917dcca117bddebb19e2ec465140fa6cefdb5fe8f0d6cbbffc524d634adb788f9d48dc1bb78143760f414aabb10ce03e972228df5859033c6867bfb10329bb5077e107033a80bbc188ba61c240bfe6fe02590c8167798d3710774d4a23baa66625351000cbeb4b52d08910a6fad1f58f616229d25c5f69dc44adcdf674e7555e9675b61ed851b306b2fcf36f0bd78d756aa1188d7600d82e8a4f1efcebb1edc01e4cacc00dd4b2283b65a0b59b5922efdfe895f46881130de14415d8b77384dce1caaee3e1711d9f6f9067e0d10b49481f1388dd7b097fafb5542755fb0d26fd7df3b5a2a4583c17ad32a69a0c114db0a17d6469435b18cf50b9311cae68e67ff0adc7b6e7aace3963c88d2a60e25e9febe50da53c2bac780178b1ce4774c0cf6a8958f675c4c0d85e4095d3998f5d12f4c352f0d50305011a3433d4ab6022d23113c9aa94c24220d8650d40cb80425e52151ce282eef265527f3702a605a03fb15d4418b799d88384aafc0f472ec2a495f62098460806fee0d16376f188c079d7dcef1e1a3688a6932570ce5954e61c20f50269451cb2966af207e63c9dcd447a3d51494de479923949fbbab6d7a29c99ca6bddc78077ec73458167bb00efd200d1cca2c4c85c6c9a30e9ad936c6750d30ac5502c1a0cd14952fa9dd84c17ec6f5965106ba404db505ffc97d7b7e28dc3711fe09fb71c2dea04dd463068a049021a75617344881f48c0b765a99b5e0dbde72a5931f1f87dcaeb27c37d011bbf49e047bf6b8a08adf40a12d91745279b98718671046a4c116d35cf140dc9f4b6f80b6bf8d7fb20b491645117784e77dce9e4272b4c4f450c5d5511e0211915519bd9d7e2f035e0c435ec23d930214b3033ad85dda2065762dfa381421df644720117e93be2fe9868a6252f4559a6bc84fa651ed81dcaad50a8b68836504d0bc7e57e621e606c6e0e074b16e1c49a47d74ff2083724ba31ead72bb006502e98109ea07f76b43ad8b6c4e2dcfa60df81fd7dc3ded4509a24de328172e30b94cfe862ea08daff08ba5bd66fa73ddc8538a41e96cb404cf967b9a1dcbb33bc41c54010e170546e51d2d3659285ab2e3a1d2aa80c41f7e7b21266f4adf3a889d5f3f0c813fd05b04292873d6072e745132341dd5ffa7b85427d4bf47888977332e28793861456b1caa0670fb282cfce384471458712d20c69a61b30226bf175690e972bf215c6dcf6dd3d37dd406d35fd2fec75fa8e075350703f799d1f24dc409c27f2866b8ff5263c29349f4656e5e748add305e4d77be58b4837693251351ec364410270435881841d7b67473eaf8af638570413bc2a7746b3c9e85f56212a9cbd44394f459533b5ec96c985880d9ac41d66fb25ba23f62421f68b1f30afc8552af3aeb7525bc70b61d64a3a68303597c084fa90308730b975b37e400e84c4d8677d07fdcb3c4f3f74ca5dfb6772bc03e78794ae5719690746f0771ae9b885b1038406a36b30728b12a158dadf02d56e1721dca9b5058439e74bbd16a2b1118a40ce416121ae3bb8483f9789b310f746f0d4055f3545516c12e4a6a5e97f034d8c074d045c5402688e7e380b4847116da5fa5ad3264822c7847acd4b18a60def6207c409a39cf9273571e441e85ad37e0f8cb4917b5ac763a6c8bbd1f8f1a022137c37b263fcb69dce95a0d13668323058e59e9ec647aa8bc42562707634e511ffd5bf66570fb05ce3b3748da3b17812bbdf8ac4f433777e3830659c1e5f8310c5fc8a0641402445ef2873a2373431614335477e6f44d5a530451635d7dfb24a5ffa8a07a5bca0e006b2f83e89b05b76c94c732209c4fe362f4b48969273e3a9068596976c0fa662124024c7d1fc27f0522cd06fb8fad8ad9a52e2b5535371c7ec5941164c5fa2d8529b4335c373b64f554f54e3388235520cf5910c2e28dfbdcca70fab07b776ba9288c909a08b94ea4317cd35ababf0f498713a981a63bbe67942e642a79e8e53a4bb7ecd1f692ba9324ad46686d1d34d6888fa80b8182255a5483f52cfdc9d271c3b6ef4a0c056ad830c582bb77199a5b1614ce2e38e69099598097680a6b3933d117cc578981e439925ab5e789f93b572b321cbe4309f9600c492b44702610006d4e990bf16a69d5918ca34ebf0eec5bc4629dfe64dfe09bf5095212ed7c7242303eb887f38b0c5c419d301951966f7683dce0d312e1946881c5778eda8ce988f3c1f3512215f2e31a1e69941ff6c0176bce0cb6fbbcb99b1ad4a4dbe603e87268a98227cac1ed68d9370c06ac857a1d5dfda12a88c26ae3aa6fa68394edc45a8160dd58989ae4de91aca11f5e2edcb8f53d30b665027b773c69874338ead801d74c5863113b0f2c8059aa606510387c617761fe30a05aa95be9743ff581d4c9b59bc9f24016f18c7c6cdc5762209f80473983ded1413865a9e251725f11784505edc8604a748206a429b221e1cb75ff80d722016db43502953214345d0b000cb1dd1a0bfc87d2407ff59585c04767f0e2df035322126910143fde7242f48d45e897683aaafd9ebf2a5aa685d178db12234d2af01e968605b6ab0dcee4e24db8f0640ec0ffacfff9fbf9c65b192667bd1e689e621dca6aa9857a26dcd69f65abc92199421b8520447745e095cbd50cc50b2913244ec3af21be495786fcd59b4fa22c75add0beb5fb70af96a4074be80bd3c33af4c51de0648fe23bab5d9a07f405775093f88a6249ba23bb664bcb1f1438d98a678eddd65749e1078e27140669f358d0338a163825ecf6148c157e7a2fb2194c0fd3948dd0e66d714c486125de17d2302b75667ca9702345935ecf7084e181ad6fb3236728bb708a37ac8624bf4c6573c9022a727b2b778306e61a3cc16790fc956c4133510190721c28c5b1e128b321c4747460f8bce1ff8b81a13783187192bec66a9d0aee62851cb1fd853aea245cb6d483d8239ca94c64c8ea38d931b36f8fc60f8a2ac330c1ae8f4cb30f93154a68eeca5028bb07386683115b80060e5a9facf19af8eeb94220822b165a8efd93dd877de6d59458e3aaa47df600230bebfc886ef68944916880f755fc739163ed4e15ac111135d0b0cffdf060ec02c4af82772f8fa45122bcbf000aaac888ca745b3058b27355f6b96d23bcc15d57fbc4c9539d12b1b37c916d694010604cc508447e908dffb0eb23d3cece01bdbe262609fe1ce02b0bcb8f1fdf9fce22b5f698d87d305f709f5a3d722e9549e29097a53a3dc55b681111510c23ce3fba806278640d797a612299dbe617a742d3baca209e10629a77727fcb5be69bd14a218b6dcf252db6f77ed7ce111eba48ece012f041ba3aee427b1ef0f24d8897095d78c0228db84d606c426ad1a12a1493ab8f03eae1347189170906bb1f9d58614ec8c6d01974145b175895c5ba727f12ed068c9f1ae654d96c50742123c84e9a04cb4350aa2052d54a2ebed53d563feddf1b06b0f4c23b7ba1757944343939fc062c88a17fa19c9b578437180bbc3720bbc91f3c02b46b0f173705a21b824a81d3c285343f51cfe72e16502363cdefee3f6aea16b0dba1af60ee2209ab93c928a5e16867cfe5e33debd1676d5e3632d6aa8048e0d79690e67320aed89f6ec048d4bd2d70648868c9e38f67707673a829e7f2b91e8221a27e20fd6361f81f30b7ce60b301b5aa4c58271525dbe864b6207550b32a0e773ef2e0c00360fdefa5af6f50b35dd856d4d46790dd12611910098d8cf6fe941a33ec75e26de9fd637f14a0154766bf9d9103e985d09350f1acec4fe46ee3926bbe7cc90ac7ddaf3766d50fbada080e1d97895e807b54e425849a52b5e45a3563c5f6f08e548be05c749e87e6f20de472fea854a8ebcde9c6acc7e2599ab1efa9449ecfa2d4796a91d04133b60957a4b52ad59e8db5f4a755d041d4af45dd62c55c879c774d0ef1943c795a5c02e3f0ad150cbcda170399f51e65ed03b18e31391bef774aeab870aa6bc5a6039e6b3524b940573f38e2c937fd977af89cfceba22133178a69214f0ba8695ec61a45c886842a0ee4858a3a830cbaadc7fb2253d7c8eacae22ae05985b778e0ade9ca13ed6e18231d21e351cbcddcadc54be81411b040ea0815056ae600669952a02a6c37356de319a316fa0c7a84f5fe6ed564500646e8575f90974fd53882e8a4b8fb0b285e012504b1f2a099b33c3e4166abe420df7b17ad2c9c06ff5d22e990c80bc2f415756d1de0f43f23b9bdf1103b1d5935c12625894fe675ab579018601aedfa4921c29299962dfafb178a4f8ed8b32672477e98f32adf56ca7491ac386ca4bd2f27b4eefaeea4bc3cd1f8eb333801fb604803a3093c11684a1edb3f97b2a41a29589f51fed4c5ad8cf4c3e2b0bbca04eaa5730632eb02b6ed70ba5d6d72e2f39992cd152e80eb1b7de9a6d084a8ff8220b191a8bed2bf8dad3d529c75cf3d7d14f6c6358d19b793d16ae0d6bcf2d84c94f433056870ffb63ff613a920967372275e6741bfd2de2d1fbeee8095b60e5f33b6abc365f9c1f4ea14944c0ff870890e1304a0c78fd2086ba11b7b30e6878b903f90e26e558c600079cefc1306f1b3d6cdf34573bd926de9d7f0c04196349e92e3eaf934b9632188163700d110071f883b5fbb8ecaa5383c22ee96271c3e1b48f6beeb6b5122f3d5b93c620e1f4f5405052a0bd65542aada396066de5918e86ab70d5bcc959d0eedd1ed6a4f6292a84030104b21b2b56c050a23cb8248212927026b97176884ae09d81cb37a30209dacb6b617b710a76dc6c45be3a51c257b39eeaa558cc1fa0bf78aafb706deaacfcdbd29896d11fbaea0226db543ad571997b635fbe143884bfdc1f46bb05271a363308772f544e8cf37ea686c4fee178b79b68474fcb2281f50f3571bf58b2cfdf74fd8948d2bf13d05197de548520300b6d07fc6f69469a1d156d3e763e5edd1fc96b4211aebf2d86b0954c744ecb25272f5344a2993615c91e6db4807677e9a054f3490ab92ed2598fa8910c9c897e5979ea2ec998d90b8761ca2e10d71e519740111c9184297040d072e48f41bb1446deb4a1e9c0d89de0de2a1a188d18803077972e398add3c1318fa247a0b7d2e4357fdea64fbb2f909e189e44f5d1a1d3daedb369c9b117aa9509556472475dc75975e2829d668e5ad022aaedd33ebc6f7c0dc50372b17fb76e862a8449e090b06f33d8f8c69bc3747a1c3b3d2593695612cd3f500239679f6123f23057890bab16442a024be2230311fe5c40595bfe5caaefbb842fa54be11415f5e1d5b3192ce5b435e1efa3eacf5eb73663cfc1cb91e963db185f51999886ce9c2b54df8907b13cf010313c8213ed58cdf4c670e238daaf14caa7152b40be4155bd5621d563f0414663174110a0ee5807735180ad7f1c22aa2a562ba61c566b0e9151da5c5da18226df952b26f58580b2ebc04b2b787214dc6628e81023a85ee5bb0dd167bf8d311f14751f4433ff75bdc948c521ff3ad2be4c43594cdc3caaea978042c9ca23533f2d412d4d182eedf045956f8b644224cf68a955746e4ed9c3ca5d894cf52b69b69fd6bdc7636d277b419624b494d5ed860a2199a8348b13cb9a589583e53e08c306f9716b56d0f5871cbcc805b3d23d4db8195fff65e3c50ba297a0ce999d31b2ded7fdaf9bff19febcb6bebb44f434bf2732bfe4bb9302e7930012fa9935708e6b738c1123062067fa0f65c96360b626e516d9beae04f2cf272e076d59d21a8b1109ae7adaed56e6478d9a7de45b42f3ac9c109f26df5727df0731c6628c25d8a01cbc8c30671826ebdaa77e1f34362e412ddee77b0d67fd5e11ec687e92b64c9ee11a6f0fe252c1ec1e2760f1e927d8af66a990646319dd278c1198560d0abcdbe461fb101657ed6c686c8a37a24dbc3a1375e6bc5bf7c30cb4d04aa22f46b20ef9318bde45851aaac4834f1265db2956f4f11a8e65bb1c8aad0107a26d1dc0e1511e28a2b19e4a5fed62fb95eed75a2be4c09a439d8795523314eec0b5204bb0abfe98a6468e9b58b4451446978a75abb510a89aff00e35fb09f491d48b2a702288fc654da8953a5a4469e2f4667ebccaabd30f35e7bab382247e2a6e6500e565d167b608839d07ea69dfdf8d3356bea5fd9e88f7bfdad435554df00ce54b1101e46fcfe3c1c2e212748c5d2a9843bc5ae780be6a1e404ab0aa5e3146fc542f85d64eb9999f747d8554080fbe43d57a368690f10cbf390fb6735d9ef982451298ac1df1665706b3aed4ed12268feb7eae5ffd0405de552ea742e2b725cc0fbbc14351aff3361be35e3063d1483aad357a5e146d90bba0cfe7b03b4c88677340c9affef70cd8de3c91d7fe9be92c4f66641108acaa926e6adbf0ea2aedf0cd9726300c1a5ce34b7969d29e6bf403aaa10bf05517a8176ecb04fb0a42633ab5d8983feb447f14938d3d5e8c3cd8a4ad5288d2f8dcde2194967b2816a27c0b4f1527b4e72e2e9b033db7cf31dc757496e949c8963d990b3a203a4521cc4c4c47faea827ac2bd70a79118f31b6aac4524330b4008b3e150c4218c824b1c842d218ea804ef87cdf22df50949a25190593c477c16a70bc6c67f30858a981b0c0d0ce8b5cb241907124242c9d3c00df41170b63cb349fff2875f03ce2d95b4498a224d1d3113982037c842a34575e51a67b14db603f249ecd5b49a277f3b44c89d372345aab1936bcc0fad3b3098f3eb0b9e80fc0071cf8ef78c2dcad98fb48ba66b1ecb56507c696be0a08778ca1a233e5ea6670118cf5e2d89d51c6f8b64f0897cdb39207a68a33a7e081dd1b9d751ac57791ccc09ac20660d6b3b339af9585d8322e1acba77661456f3d8e6f5c4d5aa2c0432cd7dfbefce65314026d85d49e0cdc4379761c6c063427da4046f25f5a353c26d866f5f04ed56a62a9313d82cd6ce1dd8ab3cf7ec9b8976d4bbadc10cdf6a4ec7e08ff21c0d69789a95466293a0d96912ca90ab0857bcc5a0bd9c8e8882a097fc0f261d3a066b0971e60419dd5c1755f0bd45f27a3845d770a4ca7bd5e6385205e01df957f7720564cba31aa83463d3fe2b162e3349cf781ae8cd99e4960ed903253e5803562035a6528907cdc6302e42454535bcacca5dde1b3a3ea473f680172641e935f2e0d8d451ae049ac05fe8d0f55571f7035de6bf265bd085c47b020892722dc3a2f89fa1d1bf79339db0f649c62a2ff0e8d8752b4d7918afca0d6ec0ee005bc3e4c9830206ee8f9cd6d61e55f815b2a0e757c3dd13cc995c2449a7d6c90e3d1d348e953fb4b360a04c8d3f02c0874134a279bd9be621357ebc735a9b0f5dd1baee74b6f84f7ba34726f5872249c17b7310f465c806ab3c0ad337671abfe9ec11c9189579042a6a524fdc34836ea20128b3169950c368b96842989b768a640299452e8de4a9bbe5bf32f224c5178b4e6520fe517072a961fb59d1aefaa1976fd9ea5531fc8f287959f88939e89320d0deacd67e8c796ff70d89338eb3b13e0b8d551896494d357da3708e353355ba96817e962fe17de373a1fc1760fe1d5486b07b81c779fe81c3c0362ea758629e5d714c14cc5d19e7c0dd95a793742fbf7e05a39af73ba78661bd3c90a379deda789670bb41d12da66941cd424368205fc956b5c74d13c8b12e4e8e2c944153b38a7886b696ef4070512764821a3206dcd596a905d2cf8a868c0c595974c665d38c8b7383cc73216a4c04a8b30b34f448ff64e07530a2e197616093781addde12e7a437edd4fc5611157b63f8ab7d8d256301201b4a0532e6092e8b7219afaf74b51b93157c69e3f207bb14d5c03099c14ca8d575978ff794d3ba346f9de06e1bc04ef5782da77fb4ffac741bddf052af6c85107e9c7617dddd881c379e25bbf8f92af58f7afdd4253891c91c27f4dac8f722bfdf8fff53bb6361f67dfacee30a979e53e6c88eb01d8c63f75cef8981f211205abfa750963e60e133f30b77cef21d1d599b1b14b0919af049a264b6dcd09d83512de65af54c7d1143ef4f6526922da64747285c193bc70051198e88e46a66f9b6b1cfe37c23f1044ccb044f51aaa3697b0967b1d0c8cad3d6c5bba93dac3b1f0d593e5a164b894b1520c6d3aa27e9d12521eb0f67823730f21eab1cda927914a6936cc10fe340f4c2a120e99002c14261f516d7ef8a4bd713b8c5e18cae510824a341fe86366b3dc831aee083319fbc8bbb584c13d9632ab29f024b23053f4bade7e6ff0d16a9225a837479165825090ce6e30fff75540137455b4223d1ab0ceb904c2a9a12763300c6cef04480a622b0385765a3dc6abb03932974b20c0b4c02e147667d94c6911824ca9cce303ebd73122550a687e88b2faeba5ad3c9a7c3cb4c08995c045767f6898f48dbd088ca45a878fcc41ef3527e220c0a47b21a7779b59cce4379b4d464b6f1cf41d08b63e47fd6c352a91febe9bff1fce9321fb864a191f890d6c75e1b85f0cb55d2c700a1433cc86a2afa1b95a6343fea861de3e448de0cc5619cbb4b805465152744b8bf20879e4101347ed01915abd425ba6d601fb6c8e1371a30d352d5c2dfcb7fcc2b46946e34124ef9d62aeade5bec241f7f044a491951bb62c1dc08edac59a9da56208d15c911e63d82351a26630589dc2eb498e725ec85d67a7f12f431d82faf58084d226596884cc83c8884d88ccaaa0581633f2ec9da326d7bd8347986d3cf0e08a3b37c36b566548c4495c2e6b0b4e06d7e2e63e4953489261b6980afc233a79847ab8a6c8bcf4c87b9adfa18f991bcbcce4def13d61b26414487a6a2296000a230620ae87ae5dfbce9724564228913f49bbc64947ec4db42803d22b3f67009822a520306253f3eec2882825cfbcda69b4099093d6566511ffe970829d473151e58f494b40df9da67a74185f6f43263348052558bf441c12b14c965e23f46901ec762aea239a06c3791c613206a1c4fe6f5ffc180dc9cccac53ab6bf93343c7fd884cb91c20fab65ff11fd5670be564508afa96a131523b9a6c24c6464a1c78efd7601c003d15a44464784cdfa3f7ca77d91fc5b25feb41bcf8a80c20cfda8e6353783ba7924b007121feb3cc65a23048672c4dd3d2b3b2302050bf8bed332aedb7aebdc83f50a5c76f8b593c9dd45805088de71a31467b7f3e83d1c616664967793d796f2b16a13d88835390b3d21fce411640782560ffcaab9b7374ee5c5def6e4e2efe069f4a7f1d83691a137ac55cb45f8ad45507721da68a82fe55c32225348faf5f9a9a281f1bc24beac6d308477131527a66a72882db504f29b04a8b19a5c7ccc722ca7e412959d0b6f6bc09789a3a59240466d8d7cbbbc8492a0473cb110be4de4f765c5166ba288f967fb605813516e66bb590ae8018857038f90a0e884f0c01339b8e236cd2f54268ba1f9f2e40210b5a68f27caa07ab526def05765a8b5bfb3d8ca2d753e1b20e4e9ad1a761676e1a64a838db5de3af21f0e905395fcb89f77976e2353ada10f84e07bc228d73a8c70b41af84e2165d396c27c3f7009d47f13cddf9722c69c919ee56e441ebe077f94d70990740807b67c5722afc3b3d3d825969c41780abc16059065c4711f9f635ea4a0fcd1f9040e4201129efc1eeddd1eb0b186b08811bfcaafc8c13d0357ff6d10a8191f61b3af8a2f12d1a52303f7a54fd144de0d2a71ff895c6d89d49f8856e107fcf57498dc07c3b8ffe1a2c6c0cae1bed3b599b12e8de59e39ab107213248cecac1d2b35870da364c43119f4be45f328cc8e867e07d4cb7d36dfc2fe2ed409410881a3071aedc4f8995fbcba9dcbdf76003fc652b7c566973ee28ad55b6908c76ff189c326bff01c31adb2f574a98753537dc5fab39e91dab88708ef384859786b307413cf22f06d497e8c3d9ac1c7630660d36f96827a0adb8d62e7cb4762ae085393898e125f5621e8b645e0cf126d94c91a50e252bf5c0af4dbbbf9d8955d8dd7c63b41af6c2ca5ca3a0be368a552d34b0c74c7cceff45f2d6d6a85daa29695179c6d5913c15a10bd81926c71d84c1295debb73b0ef2366e169c86b161eb0160bfc91cb2cf28fc6a6df9abaee2435b278ddca63d42fccc3040db90d98267096265cfd8a622a088a7a0e31c85f308ceae69200a89050a0a3096612154310f05423888d0dec343b02046ccadc08979887d3b856cc19fc125c63c704d0b22e61b5e3be6379dc0adc6ce96df028d1eb63c79ba7092981b238701f1bbf2358fcd792c411a254680069ea7e0203ace41d37cb08f2c8dd0e3a1bcc6c384f1382744e5f1cfcbdab510371b126e44f39fc66376faa1497ee031d3e3d0ca38d52ebc8c69face7e1a09b70607d08345cdd88ee00711fa9ffebc6f5eed7ed2c21473cb13434b291511ec6e1a94943d035e4837dd2a5f6f39ff4bd92b270e43bc9e405fd8c73b40767f548ffcf517e3a8d0ea16df7093a48b62068d05d3c1352e445b0350b47bc8dc04cc6e10ad831d43f8745655fa73a3bbe75bd3bd55e9cdc8275fb36c06cab8e5080f9e12cb2a4063bf7f8f5b5c48be871bac39a3bf8ceceb6483acd4a9acffdc73a2988617bbb87334d4fb22b4ef0735b3fb9cffe20fbec9655ff44ddbbbaff6d70106dbea171b247c337788fc56179e28c99fa09ad9fe38f377140306b7fd2097b9472885b679c178e4875ea16b545201201ad7204715888fefee8080a47ae9d8c8103560146be27cb180b47430b2fe0c0208ae725e007c6e5ecd6bc7e58837bf9dcf10db70a85c02bebbd77e38c109fb66bc487acdfb742fb5c26d92d114dd848928c17063fc2a82a5a911a710fecfb8fe12a15b828e5db8493a7b4a325d655cfafb618e1ddf2fc1be05d99b4871c6caa64e0f6391d94961010c931d4431ea2dfb4e594beaff2108ef396a4cd8db420d9b55ca26f40f9776ddf8fe69ac1e26761ed6f5d49fab37be34e7b8936a528d937164c463f58ac8306cb791b674cba1bec6aae4a0093566480ad342d862a5ec4195b034fdd031f3ac741c9c76653fb7e00c6611338cd420a7972c37073224622e6fb6a148cee76b23f361c2c1242e68c27f088804eb7369194cab799398a391f0420129cc2bb51200e8dd09861e6cec74255f6a31be49e5fa34b2b5bffccd7112eef8dd3062b81ffadb95421c859ea83850df158ff5c371bdede64c42f5934602308a5ba0a7242da05a4696fc7e3ea3c8c3a14b7b5ff0f80de19dab9aeee86f25c4d6c6cb0c10295690ea44d67736a2eae869cb02275f7dae2d7382a5fe59f9ca4aecd5e0a76687f9427fe9d147995e129f4f3afd128fe5e523e82153cfab0fcb1fe0f3098e9d2821f494916bada9d4e94115d35f4426a0109f28399846842ca237b82e201fb34d6783e6f719b2985b87372e56c7e746dc754eec157473de9b0b1622dcdfe8cce9a8fa6e22636c712f04ec659139dd193ba8ea5c2bb0770e65aa77771a463c9d436d399fc29cd9aa17eeedf02a6f65b63acdcb99f7d48e54bf1e61829b7614796fd8729eade4ef1d1c0c5aa94757e338481a2e68f85c8149d8b6a3d97351085f17df025e5afe69d2531d09272cc5d439b09a4244fba23b0868f98a31030a759c48e6cc33db1ae02c50f01354fca3178e35cae4cbd50a4ca456acea78bfec2645d4ba66a99528f59a8fbec767e9347e81f3e019e960785ba8a27aead8f0576fce3bfd35fa081bdb7ef17794dc08109430612b0521fd7d80ebccdbb9bf2eccbdf1be0ff87dea573d4e03628a4980a4bc498e39e3242be57c652db2d06a45f5df8a61676e92c5ec14261775081e5dc2a211574be86d6628164bcd19c2fe3ebcc34e98049f47780e92dd44b683d2d985b4501e05d235999754d0e3387dccc62344e72118654b289f2bd0dce5f8fcab0005c4870281588a989185662880caa1e8ba422bfc289b0cf0e0e3642bffa1e70f1ae6c34a429024f4b36a42402af14ede33baf30608320fb53d52262012e066ef47d05d88379caa2883db4cd44ee9775adc3661d7360a8d9e7c3647ea4c957e69ae5e545a871639f54c3d3bf764689404a4323a17d6dfe6c33e45d09622b94e712140f267a2c6fb8b922f65c708338f1c467889711c55f655afc9b196a39e7c60b5fbb2f3b54d7be77fc4ee3f96b24fb137af5d8bcc2141853c409908847601d19cf8388b7572bb94a57bdb89f93fd4019e4c360a39d1857662dc3bcbdd5d8678e94f742f8db173f25e7822afac7b97cdb73eba7cae20e13714a5cd03c1a2886dc78940157c8535e2913b30cb4e2f5f80aa2905e216a93c90762fb9518edc35e620c3cac0055e65bb774fb9464543df4b122ccadf761750b448e7718c453d2100727d6b4b35607d4f4eb2862eb0e94c31502f1cd11050d45e451cbf4f142f4b364ee2f67bbfe8355adeff059b16adf8ddf6dd07f8bc27e981e8652b682ff598594297f9ceb340054cf148878c922da2cabc19686cf7d1005e3e923db0d6eea6242d5f9c26b250c78125bc00a96eb046224e8e620e085a79de23062eed6c6e80693bf0114781097b689c1bba0b76d500faf94857d590d4ed4b51c20da031d47807fdafd3ce9f45ab9575c91ea4308c3e8703876c29c98490f37b00f30194e81749688e814d881e4f273f96c1b5937ff54167d7bc7312fcca4a7c946963e5f8f66fbc9b16111cf856ffb051e8011d6fe79af12c44899654b0636da6a6e2dfbfcbdef2f79e4cb139a6449946987523563d7e5880281c23c1015d432fce7dc0e1543b2ddde5deb167a6bc09eb2472197748c7c05a93e02202a872de2a6bb913797aaeac66b30eee11128d8983b477ea7e7e653a21cbae41190fa86698d9d8cecbcbd4ea9f2efcd6a6b093e4e04af82cc18aa755429fb599eb58ffd14fcdbd9498cbdf8f2809f1a127f23597a4e6d43d37ffa0bc8c55181ad20168bd38412bcd9b47a31a9f16cbc5028f22bea9600f3ef06ad29e2f57a591647cd1eb2750670d4ea62957e55f884ac928bbfd1e135422ec7fdc6e6da3d187fc9b2b25fda843ac5d0ee93ff0e235a5522fbfbdf9d5366746f9795056b0e03b0e107f3e09af1db9985ae342a47f1fc8279b9cb665ce695f5f029cdae3dc2a6eb363378052cc6554898cd4feb5eefec538fbaeaab52ce54031b2d79435b2e32cd461fc21a2e4fa1107fb3143547fbdb1da3dc0fa5da578981a386753dd978b0f4662e20ede55711dd2dd77b4bea9804ce7dce8ffbf6db4b0db8244e8e597955a388540b17dc75839d6dc15b1d90774044acc16379bed66e78ef52fe79a836c5c23d46b9ba1951b67f3418fbb0d73fd9608e957279f7579054744681cfb4822ffeee23d8ef31094ad787cc547f6de10eb7d454831c4a123ff0d21ccc88f06410697de8b954fcd8815dd3d2b91fc0bb773d0f897dd60a854395d18becac076cb8fd32b48ccb482247c82faba6e025e02a4a26a8afcd0010995a56f75543c94f8a0a31af4aaf370ab5da49e5653f7c415d7e2e82ee8eb46988d04bc4d40fa02e67c39376aee730d881b73f52a2cf99a4f3574ebbb02611728d4a6aed1e1c028ec32a0d5d808d2f64c5f2699678c58ba9e2c6d9e703ff896dee4a3794860e4ad333302e5f8be7949aac9a2a188aaf074be2a15da03f2680e02f28f9719d26e911d05797e7e1f417be5090cc891743a99a8dd96a3e23b5597ea388a08bec6ab5d792a7ac785df9e3acefd481e198c17e1e2188c2f5efb050511f05c43561787d4594cb8dd8f4e00928425c46a144e8139e82dec8e0841f59a7aceb87cf2d6a4add418b96b98bd77513a9d17fc202ead923785de054bb89e054ff7e1487aab91f945bd3c074b08cf51221825910d20bbfd2d8de3910ccc8d7f4b402a37218ab818fdd804d4c4306b0edba3ae40b3aec49349fed951819539ac3a7d2dbdf6162863061a16e1f1da4541f08723cf333e84ba015c72c250b4ff5cffbf6426cb7f1a2360920bd95cce68faae8fd8042013b5200126e4b25dfea439b90865ae206783e016727e75b26d03eb73ffbe2a86afb38199eaa34be19fe0c1ca99a0b6c17f118b9d872999ba6baf359b636844ed8b3487e1e31e9069eb1f42467e435d37707e0781d7df46094d9edbdd7a8f963a54fd301bb470f49282bb46bc2e238fe94ed036b1b8c331669b09e50f6ce9e9fb37af1d6221d083baf3a86b6a2e1078c935142f9cc34b436aeee150995878de94562411033a1ee4041b5effbaa583c6ceae139160ab76d31874362424b4f23cdebe4222239afe3b7495a50400e5877da0677f98a35518bf1f274d95db6fa4e762fc521c8cc5cbe2ea4309f3adf896b37f3ba9f5e8763dc39ef185e24dadee11ffa7d52d6eaf1358edbaca607c0e34ee37b5c8430670c9c6ab5cefabdf2b33913fe2d7ec83b23220f1d5129b2b79574f54dcfce65662cc3309c54fb0c038db16ea5b608038c30e40ddab628f742bfa2bd9f88b2e136c394caff43e24ee8835ed2d725d40fc5ca4bf312a13ef43340afd01ddddcee39329bf0ba9735820ecfaba4276eb03af607e684e77c49c61de3bd36b83fc5fcc9663f7877cdf80f4bb2f2227d51b2ddba941001ef2bb54da22f1ed0f6abf983f47cbf6d0452c0813ec5fb328ed0c19cf25d03044b98cf83044a66c854b34458a8dc06aeb7638f66f9e5deb2656f319f892fb7312164cb8618016cfde0c19e7ec2afd8e4217fb184275cb8f1d22fdbbc348a241a41e4f64f3cba96d5d709f1b160e81d0f36f8801b65c5f48cb904837434ed6c63f2489cb61292c7138d5230587c713a775856b1141370d7ed4dfdc42e258b4780e9afa308d3d3c830e81085d47e9bd15f21f4a64d04bc2c9caf4f0880d9dda9658f343c96a8541a4c55e4cb0c050e2e24988eeeac160acab68382ff35fee0af9147ab803304fa55162d1d26689a8ec01e7ed30c1a5e441b1aa90c9a57885a94ebbf183f3de540b28fbc9a8de1a54f97b52d8fe10c82e55ad90291fafda9bebebd97c28c05905be36cae0bde5a853283ae5b434f747f9dc63c79338b64d6cf640ccc47ec74d8dc194bc5694169e8f3efbe714cd6b2a0650212a5f9fa1bf1d40333e26db4a9df989b271c07dacc864f64d4ce1f19f011ddad1cb9c607afeaff2f7171d9d14231076ffc2b81efc3f82b02fff915faeab1da7972cd0c45ca633b9930514894c3e3e866e9ad13207069b6d9e7c9fe141721409cc53a4d61741704010e19a217d17148d93afab802962118f876784d2007be88e29a7ee11f6e44007153ecc26fb43e4e3f6424ca3e6525df20b927d00fe630596fbec728b74a989f039bc873f1801875b7a43a556b9b9d9a79b6390c7843d09e752b47d0e56a46c4374d6a9b1a12156b210ddd7f9a2d1fe82016d2b3f897953709d98801f3e1f2a33284d8b6d78c53ed91df97bb5891a9a55a4cb7059369276f327a408d37a753dee0936cf4e7884819a684eed6f31539c8f382b7d58654778a811bcd66eaaf72ab1332ad04533b11fb5961f4316d127c72afba121634e1444d24ebbbd1000e7b85ea7a6a497e11426df896915f1f2a1204b03fffa6603328e03257903f29331e818ed38760d5944569055777c3d534312523a48e8e69e0139852d8417a7b25f5a18a0e302ec805be3eb31425ba4559a5c7e1f2e2328ddf2f42c6646b75f78d6971070f80203218095f2573f69e220ec38f8e7a7f813aaf8e718237b5b37574a950c2436b5eb60c170381e23df3d709f1a0a070f1d6e3237d0904faaa35251a5d7728c0ba273b5f2195e7c2f487ea8bc6dd5978c70c6ee6cbe9cd0f0ad5ef25f939860106ea59e351700203d4bd1db021f74a5ce6e1be85e6c021e338c060713d5de578d618ef584a6a69df96c3206b6b5f8f530bfd880622632ecbb1ea4d56902d13fad5122b637aadbbc194776328acf8314413e6565596fc13b91a0fd5cee60d213b0de0b7f9230d68adb848fad952661c4a8598f58d4cdd545e07f7b20eb5fb83923d036b6da04ea97445ca2e8f2827eff6917266cd2649c91b05daf009ca3c496baf65088d29ac417659b91e6268769ba5f17f937221640d6fc6c2488a838acd9d2e8f8e2bbcabc54f9bb9788d6461d7182368fb1754366f88942c368e341e448e85b2bd1ef42de82a467aef7ab6be7743e500016fabae32b80a4296207ac76b7c46ae1382ff120187d9d3611b6754e8fd71e60571182d328dffc70f3122cc0bcc39852d2ea6e72260c32effc4d5efe0a37fa417f92844c4f790a0c4b14bbf71b5cf380260ed56efc5097a085bfa4c9f2b874049b680004518278689b6dcd1cb132b40ee584ab4420e95c450ce0b50f32e80ae3c88db53bce22973193c4a50bb478ea1b0a1d6852e3ab1c3b1ce77273f67f7065d6ca864b0206d85cf80019875a84b8bfd0ebfed5602920d5f14ee86dab61256e45e096e8f33f7f6e5fe6ad194b5fccddd05f38d8316f765b1817da72a96c063298845b11d37cc98533ef609f61035157916084b945835a31d2211bcad1ae71a5ed20d8c71ad3d1472439d7636e4fb6ea7a93269b9e629fc564f1477fa96ec1f9dcbf72d0759d4c51938cd4b19f8ff371c8a2e6c6bf8a287724528cee5eaa7ebc962481f4527bc7cff6c48cac4df49d88d1ca5ccc6f47d6c4c2530d67a54c7f671d2f72e639fd0a5c080df642093f1fc400057bd6c026c4459438b27021f163ec6a61c028cc8c441b0ee1eba2d10e3010f1170327c9938be89da8d33003e2c134a9f77665c0b18ce4bafc28ce42e3dca959fedcecbaa96862eae47935b1e04271f4bb075fa25ed91dffedf31a962fb725056ee0d6151b6e5a43961838d1fbb3a538a564b0a3595216c105084f745faedeee10efad4a192bbfa29c423b1b4caf1bdc9fa3cec82f2a84a28a4cbe388b0c70602424880b628713c18f18e77fcfcdd1f1578590a4dad498f158c12d3566a78293289c20743324b4e08b2bcea461e7878b4db07c03c387c03783b36392e10a349d91d2291d4631cb8690d402693fca8101b8238852001103468205d7506b1ddee7e8bfd6819d2f4e7ce68178b75ae507604186da1c687a35378a86575fffb516f778916010680fc3fb0ed7e116da6d1fa845722f76142aa4874c29a7ef1c5c91fc6ec2b240ecb36150cb146335540851c4882c8640db2158d85be290a2a5e2bae547987411ff7b07c267003a70432e99a72deb2a85ba9a81d1d41b8347a65383b9c0732fcbd5d33acc9274804cabc058f976eb4f5cc2d6ad7c9ed7f95b015bbc257d5b0b746260ed52752bd6dd8a4a35bd71a8f019c0f93f817aa51dda13b3d8135acced48b52109352c3a48975624ac83bed1b0e4d2044f46685a7a3bebe5d6d866bf4f7957ed16651f61196efd77429a3745eb9fa8518aaddaf97eb48077f20253cb13f71dd7a2fce7fc2332df9d0ddd41867cdc38a628bb27d6496c2c4416be30ff29aaf092e499f3305c939b0c9f4812cba1f417351968167fed28ca2586ccef530dd127d6ce951a6348331a4102fa326ee43bf4935c5d03bef76646ccde3f16d06e3ec0337e3736cad277857b5ea1697e0522c265833590e8d7e111ea6a246705a0c65011032f49927e0a9fc902c5748759eacb6ba2a9e91bb2272b23d2315a358ad859caf600019b4dcfd69968974dfcece990ddc3840b8e41a307eaadc4b8d545a2df9aaac81d3b3bf1b79307dec0974923a65bb964fdc5269596cddf3a879af12650dc4dbac7304d7212772828a354b0a0e39ea9bcce2f309a56f62129f54c542f31e238bdf68523295c82543557e4383356c5bbeee8923a7e9619ba45cfa9e358b37b3c48e916fec04cde48989fb13539b49feee5bffe8cdf846147f56119dbadbc6c31a05a58032785799175f37fe0cbad90be7cbf29c4c76a5f15899cbb2d066cd18731b2b00b4237707d0ca43a81d6eee232f7814aa4e47f5710f24056b87a5a1091766ed865dae155b8b6aa545c9629837ee1cb0037173e4c91c86887271e79c3041540651da8f37223046c6b6da2fbb2f49032b2310e03a480b390385900de8145054b056d0a2b7cf1b911ddd6551cbf36cf9833b2e0fd28bc55d1715c97e4c9fdf1397ded4685665371e1cdc37fb6176f47cd3fcfaded01ac55d8c740c7bf94448be99a0fddd020cb2a121f304abb9bf29f0b89e1caac0b409923cc1c3ba586a25a4a0f72e618a3fa360de3dab6c55d0b2a568e44b83494618cedcaad28a2afbd9ca04bd29add523ce316d5acc3f2879a4fbd78b763a8879e312c322e6c37d9df20a0d6d5c4a5af3d2334825fbb267c5c360329b8c1174553edd86cd480bbdccc5a17b72c90cd9005d8abf5be6c2e5f41ef3ded02dd98a77e251c6be28d1724bd965eea63cd58866d687d0cac9eef9e89c55382854d5467c97d0e2f70825c1e8ae44a70e9ed38dc858b1da01926db14188b7341a7c9df75631fdd0d71e9a58ef98eb5b5e910da3ae000cfc98cda220325e9fd0a5da5410be842f6ab02d6a45aef49ae4cf45b9941c19d3f70bf5ce769e202405ef39c1456e918bee90993416fa72cd87e070b117140490206233bea061024fd9ec86874e1277219eefbbde31ef6461c5d5d19fc8818f918fae076bb1b184f66c4da1fd47cb41dc24ca3eed9d0441889cb2950a13b8440ea591e0dbf8c69746e18d2af53fc3ab7881cd9bf98ff179dc9e63804e7cffbf5b99fecd7dc8a196338ebc3703b5285b74d7b373858fe82aa613cf54876ae7d30b8a6b9c42d2f909fb72f68872cd86a164c74704a1e1a22a7513bdcce00600bd38058232e17867fd5b76ba3e64d324e43f2a7dc144fc35c1461fb1e868be64799cc7e364f2bf42a4bc3f76f74f3657e6ed6a6393ac8390d3c3e6a8ea070fdf668a8f61266e98b16f659df1c295a408d0f2674aeb26d31d39ca2f783b492bc6b9bb316b4d5d18b053f262d79f1c4e45ca7fc78c7404f6ed33a8a1f354f7a01b2dd54bb11edd0c2cb4882c17ac9ea09e0f4a32525fb0360019707b8624dc53381da89376fb2ed8fadbe914207545cb7da8a5c1c3c21dc72781e1004fb14a8b159507d25d586dfd75ce77769d47c1afb6a5d8305a6ee1e79ab1e84f41b59efa91bbc7c54a4120b0cee9d62911140e00fd08a8e1a21da43ad89dc768530e7e9fdd637bed9ac92f0941909622e9dc890c8bf729c4d77c4533f8f8567680a545a16e064ca9c4105d91552c840e5daebee01cea32730de651064aafff6ebccaa47bb0c1dc78b382931edcfc809c1eb04e1d317bfeb197ba7d43bfce6c4f26138ed12bcdc910bcb4594195a7c19df5b62fd9d454967f2276b6c82e9e8e713e82b4cdf1ede300f6ca4ecba20cab2a1057d8482385b6aac72e2a5ff315414661fc52b698e6b1172270f25c83b75412e0045bef2ba0284a28c6d880b94c7239f99d89e6e7a90bc8e03b989c62671b546a21d14d31cbf30ba2d41867388d5250f8b998622bba3af4ba825731963c70d93538a0887ba08c191dbe19b10e19895fdf965bbe0b919463e63b4f916e815e7512e0520d8eb2dd90ffb77d3e2f70c031a660ab93972f48e033374456ccb78cdc6b41f9cd8230658104a2f0d62c7c3262e4cf0ee8afcdee6e43875146d5872da896e022e33c12b20cc8ef87f4fb4d97a908adceb6c3efb5d52e4fd6058dba3e7a1520326388d3807e903ff9448c2ad673e8230de6eaf87797cc899dfe93b170ba5f7346e18db876d82da8b92a2eacdeb62e14f0a02f99b18b2f6856a84ed386076ceeeb1679712c75a0ce2b3b39a514057a784130d9905208010693f9a91ec0c93797fcf7b05be2e8020ef7ce2a50d7ae6529fe1f4bad9575ebd8eeea45a12c7505dfb2f35535417e2c411cf67d123332453d0494c51f422da960dfd770893f708c6b6079bd21756b80664f030db5fc0ecbb1c32c6d7b51e91de95d1d9a86245098d146f8e889c7b17edfab693b1fcadf45dffd1135f2c1c6adf23bbd3288115b7122eae2c7ff2d980e925f2af9a58cc0c9f3513ea3a6b2c30e8af0d1c9e1c1dec7d14c795ef33c4ac8cec3456b4b5811de38f9e1db6e4c11a950d83b031d42b4e1a2919373eea19a34743dc5ddbae2ea1085b81b92558d6cf1bb7d14e44b4d3996dcf358d1a6e7f1efb12eda96eda6ea15c0b1964f7aa32cc27f08b635dae12ee05a73c9596fbe5ad682318369d410924b6e74cfd334c1e0c23d7ce504094daaa497d474c230313e82ce808126e02c0da58c39141c004d398d391a23a65f3893edeb54bce2e7fd266b678b977c2a31bb939e308a370af4b6415696ad972fbc6abfa8177ba621cc84e86d4f3405d933898bc30902c8f17645dc226e61cf59ee94b5f164d0a584f49046755deeb812b6fe12e9952394a0f8fc55cbb76ad5694285a23a9a3e4537d50f9dd7b2e4e54e68d6b4645e9cd87c48a7ce852c1322557b32042c976c0ad60000c7b07557974bdd71b82cec41b3bbf2227d6ec127c4dcfffea7554efb7d67a9cfa951c64d8de5062c9fac7dc56342844e8d2df598568199b7a3d9bc2373ce4560a6b2b7862f2dbd674b49978cf883ef3e89a34c93c63f41e08a617c430bde2a87fbdf5d0211125a6c748cad56f3928397edc7f7a5ff9ff7fbb1f437b888a4a797d8efc38d500ac53992b6faf171cb5a85e4064d24265ad2ba4688560d8ae07ad91d31f6ebff22027689a00d2a51dbb615bf04c97a782bff64f91b73cf5652afb9c706b080e18eb2d06cb6a553236c42df2283059b33058058cdf85df23e9868fff118830d7017ba6c874b53986218d70992371eff04f997ff497449a3553ed569183e68b2ab8588cec9cd404520a821308be784bd3dc19c12bf5ff4cadc596b06a661601231ee3397653c38d41cd1ad5fd7560a9ee90a0df1819cc24aea5a3fd29e1bad8be98f8a9c6f2a2def2867ebeaa898af3c7ea811525d88846f13da071f4ef12a81c0608f9c3a9373c263e92ce1e3041ade5ee6d324e81df0296c847399ebf848cf3d4e8dff5a01e4e98fe93936ffcdf6406af4519f7af640653c2f3d5d0ad155062758ab68e556095606e3f9975c1529083be4efd210e45b529aa415859fed133b92eb63b0b61b18808b64378a73ce628bf39b5c154bd08be6383af3383309437fee9e586d8b1e5696be57300da9e96434df6fedbd8e1ee74551b9180d139f43657c0172ebedd9f7da864851db883a95848a68875a5f784c1628ee923ccf6c09c4fd625a3bfbd7dac44c359e4c93026bed0301dca7675e45cb7ca44a9ec5e70ea71bab2628fd49005c7521f7af8faa94f24e64c689cfbdb0b940f6d9a99e8b9db5fdbe51c89a7587e76d0a60dc602ad3c1c8e95340330507800bd11f5714484fbb55dd33e6647c933c1b64db69ba689ae833dd12c34317ca7e32ddf44ad38d0d3eac95763190f105ca3f46a722776de39c6e1b17dd86c919da894d79193613498414a45d449a450065ae20caa51e820018a7e4a36311c4cb25f886e69ee3daf937b39aa4bd2fd0413f46d97291cd5cdfa619ab502c3168ae2aa25fd8c405ec56599f9579c03f6760d1f88fe6204a9784df08c7ff13d92f93d6bf3a74c4b280e28ed4d1c8d97ddac7d07b11125d35349773a0db54ef09be96b816a2fb3163a4c9f7fd1a150cf08911f882daff801154eefb53501acc8acdbd6383fa0a3f80e4e5b57658c52ce5c7a14f7b0c5109e6b69b9d2ca43525fa9f33c37461bc67389ce539de3098633973c85f0edf1aa2d59c1ae71fcbde0915f020eb75e9d181df933009c64052e2f45e6a9d08cb6616b65d814b799d2b047580cd1d97e9064628c4aab1226095db570bd51298b59c68b4ed04f442ced662d37864eac73b37f86817e04197a2d351297590716bd97e7f6d598796bc22a08cd3be444e42779aae8d7611fc6a8cf10d08459199aea8504e083451d399a1c8fd9356fd8c35738f31840180dc4ffb2ab760d0af852f7ff3b2045446a8d3e6505460b5f1bfa826beccdb6598c17912318dadb9bd50b2a350d6b353500c20bea624dc73180bca9006e346e7240bc70235dbe0e5e3f9bdb221bf64c4c804b0d7ce286624ef99021f0ee86c7b01a3fb5188fe91ac3093f22d6b701cf8d290df1a4b8ad59c4cd8fb1da206c45823ce0365da0b3c7884f96d61e81b144235450397a46b746ecd6588bc18721463ca8c643bad751f65c2d5e533ac1387ccf2e35cf0c0edeb1befcddeb97610121e6b4b1ce9488157b2a8aa965fff4dcb06820cf466b8454bf19572f7cfd14a09b5b5348045a171e26246e7d3db4112dd90e7b38473237d38cfe8b8774b3043f06bb5035d8f65a8031ffb02f5b26c4c8265370c1bde9b34e4ee3c7e0af338785711c896520f0ef29ca4c6c684a86e6b4c25c8e3c02fdf5f1bf786acac7eee58dc6bc09c1af10a4a783d78780e2cf9aa04e1de2a552da5c2347980d05533481e601fd07d25acf1fa10a111575794518181dc2cc3083bd12d9568b00b74c74a3782bd3a657ac67384983026753ad3c324a92bc5e4809e8ac5412ea580340dbb9874d054093e57fc76d8aece95178d14ee7af16a64afbfd6705aa510c0cc075314cbdb5b89c5a4b9ef14b19e6eb8e4ae95077e513f2605c70eba20744d2369ecf7cf8c53a45596e2d64dcfe7cad6e2e48be38113a70959e410a7221cab489634cf166da93ab67f437dc09b4c195f689a9d06557599a365da3de71559eacd03ef6e23698829d7c97461b23840de78f957c3e00d2dbcef51be96b24c687d0eb17f353eb76777873c37ccc9b3bf69bae83ae6fae15e61b78fac4e268cb82a165d2669819a809b8f07bd0c796c985c84f271d3bf1e5d9cfc08357aa78fbe294a871b1235de3ce3f645aebd0f5c7a654af8d4446f922800d244dbe491d382767d0896034f454ca823d3d6c886d2b41684d211231803e801d2baa5f106ca41fd2b0e99237306f200f7a144f2694bdb7d94d94a9fa73af01ab5db636912fe1e475bbafdca19dfe9848685a66240ec7444ad3e72291f006b40a996ecb06f3e8f9ec937b237ae7e49cc621f406f1a44273441f78cb92484e516aa023e1d61cb9ebcbc5b8c5107501205ff41055c06b458aef2d90d306e019f584d5f4f4ac676b1c1dc52169a63563e2c0e0d21cc27d4eb0b4880c205bdf5a4f7457bea4175b82e4a91b35671068464700385db88f5e30da4c44cd0df9ef29ef1f68da42214e0125e509bce1c8797f404db4151891ba0d391e14f9e6e11d77447316ab1ba65b49d461e24c4079d6030eefb819ed490bde73fa0c1e41ac40f940d9ba6fa8371b145fb4edaf79f663af0bfe19df0a00921c88ed2c0ace91f26d2e5475158d8372a88246a7f3b090b2aec83ae2971ad61dd75fb2b7a3f1d2b0af62c094f7d482b13f51763139f4891bc2babd93412b70f74c4dc0cf7f59dc7ee4ed15cac20385f729fcb1c33013cde3b6f0e429050df697799b78e3da8efe0d12d4517f3ae759a61a2950569d1bc37bff4c184b99eebdde1fc3bf005f724cd16bb35e1f2549636f1e8030399da32f580a6b6c02fad54de22938c1abbbcbe0e1e57a3b72fc5abb0c1e5eaeb723c7afb5cbe0e1e57a3b72fc5abb0c1e3cfcf6d395fb57b73e3ce7e1f2787d763a1e3e799d76ff0f5fa3fbef93d769f7fff035baff3e799d76ff0f5fa3fbef93d769f7fff035baff3e799d76ff0f5fa3fbef93d769f7fff035baff3e799d76ff0f5fa3fbef93d769f7fff035baffdeec3a5dead37207379f6d1fb45d920d32b6ac6b7bac6dace629b5a3c6385b3faddeac6f3d9c3b783dfcee7bf5ebf3d7e5ed8bcd07b38f5787df7e57ff78feb07cbbbaf974f6f8c5f08befd5afcf5f97b72f361fcc3e5e1d7efb5dfde3f9c3f2edeae6d3d9e317c32fbe57bf3e7f5d39555bd2222a13d2c153aca3635315a3e1a5d64141bec1b468aabb744561b928810f87eefa089c9e9321df561689a8523949c3ef0fc1dd67b2318a600e473c130db915be5f09788415727687720dc29a5ee1246c1dc4e9e51785a2dab47465a17eb6445ce36ae48541c81c30f6351b264584eeac29cc7fa12532ee837f365605b46025ad908f485116b9e3b9f23a907b17fbf443741e3f4fd3cf1c9351bae7a0b16a46e6e6d3f333f3b65940134e39581bc7fb0333ad2530e73f900d501f96dcc030ab88167fe98844c5469f245582c7f8621e5a089a9336d01c8a8b0252dfe35ce500d59dcbf10d4a831cf52a07e457c0de04871977f93860126b702116878c2c110e5d99769d826f8984132a10a40908331ab036b2093e9d356d48b253d2f8a265f116da688cec0b82c56e3bc15c9501730fbaa02864d0142f1d371a94a940fbacc47ea84f9d63c825915ef7c480fff30d2f9dcac9f27451387b125c1d403e4c0aaa2fea6d1e6d238eb5bea6f161991c8805a8dcce4286cab514d34a12e2c6442beb9dc93075febf131e41090b413dfbfe11ebf2937ddcc59fbd4dc52e9d74f02bc89693e035c640c76721ed783f2fc28618eadcc63144037a1f46cee0bb97a8a244945689c4359d2e343d61031a08109e260c61585ced40d6c47112389fcc0ac77f8528230ae79e61fff68759a2c1da45e107cf3ed3560d1b4ceedc93dbd2a38e5dcdd7c4c241a80f31c7133fb0c3eddea3653a8340dec133976fe8e657fbecb715c92082fefd4a4c3ef7979de283d5d1e6872128a5b1ba1fd9f44aa0a84de6dd3edeaf7ba536405db039ff641ee400b3353c3ec42c625cb3d0871166de0f64ff97d79647b16e31cad5d5801d9abe39239cd4ed5f0075966acd46093769128fe907243b37cb827770564deacb1c069f9ee5e4b074cf8d6301b8d083dcb0722a6bc7b39cdbebf5139b78a7a22aad4e06d159ff9dec1ef4044761c221e6762b0d9540d7228891cc72505e69494e37620a976f1204ec7aa2057a8605edfe97e279802e66d37659ce4c58d465fc586a09bb238604685f558a19b3f01a6f5fee2ddfae7654e87432ae90674449031a7c7bf32ae2c58a8d9c415f27d5225ee9ae93deea13cbe8620d31028fe522d21bc31b8412495d27a78fce718a1b1fb45f703e317574922c18117920e5b4e5f5edafb7d7252a974f1c6c8674e9e007df4ed207bad3f54ec682e231a2fe5b0e8e87f6f05277a469449c03c8412400540615d8947a939a8f2c58d40e3297a738fab34cbb8f0bfa7113f90746ec7087eb410dbc95abd8fac8c584c13821b4644696ff2e4cdefb60057f1b823a30971430d4a876a564691f801ab7b39659118d4a0a860d8b0677d85b122c27d55c7d8dbd67ff4ce716b5337a9e83f72ce7e4fc898af6dfb06c9887b68e97478219888623f356b0fffaeb37b04e6b257d3236e376fb3b7b63730085dead418aeac45160e9d11ec78488540fb6559cd011f4711d490abfea3dbac502f76d734554903c07cb87422886b08fb1a1c5cae8fe35d5634052ebf192a43e4d6b8c09aee8a6fa0d1de5d20e623a95bb069332af9c42c0995e3c5fb9c7c268badf2f0646641bffba154eecdb80e97d50757f94abab5c9583bce45b2b72603b9d7404fdd84efa2d16447f51df7b3621bfa23639beb0ff0d9cfe375288cd1a8d6d8082b0fd26fd8b9133feb3bf397f95b8ec97fad76f20c66fcb82d7771912edbf664dcdf6a5945e4606b4bec2b39a8ad79718049ac18421a8fdc2f5b664bc4dcc851eb4b1e90b6ab4867e2770351bc5d5702519b5e8bac03be0a7dbc435702578dfd7bf373c1439120e195debb7956293f2bdcec94f6f02a583827c3d66e8b3a04b49d98e38a0b323bed4191259abcd3b69f0c1f6bd920fce017024a66ebb1cde0c6baef1bffce8bea3297a2673c648cd22a7c411affcc084dde59fdf3e5fd7f98e56c719ee05745e0efb353aa3ed6dafdeddd7dc90e17dfd2db76070c005d5fba37a9d86c04b815eea56b7c5dbcfbf5db2f1f1e73ee24c7c2edf2042f31ec4fbc167260a0ce286f4af0825764eefb9ac16849ba3dd3676103c5b070ec0c2ab7f575aeec39f76e302fe6205e4402095f5930b3dc79ca5c7bb6131d43fd63436c966609f7f6ef87f677e60ccd85f05aace9f8424b80fc4c4f5834aeefbc4cae44c41930194c8a937a2e84d84ca35df7b21214ebdc9fb5cdeb001ffeccee17fead339f7b841d1740545c3d52fc56a0ac30057f39e614c87b3edc11fe8252231fd201009440127c0d690146a08f3b0421bbd3062e37eec57648e7e00f6e281fb0effc9d9dfe4239b278c49b8d1af97bd42571cc88a66f5d695adc1a25957b918d70ae6d482624f01ad5a2074859a68d0a1f0be5976a1515d11a05248eee5c0e521051dfb02055715e6911764cb82dca9dc865cbf53c2fde7270354817df4c69684f9d5bbba7019b4f05c884292e608a797257af689384765d25cdbb3917f29af07aea0c31a2a9d14bc4940a76b7c1ab14c099d806024730e57a851dae04a516ca00b30115158160a1dccf7e4f2e452768b0ed33d07619a28447d440a10b8a86c3c4c28db3b9fd946e8a3b38ba383008c7e8dfb8027fb89a0be50938807f883b7b9a70a43511e64dc328eb286fbefb0e6d740c49f2c2bff052beb6f179eeda5ffdec875f80e45e3a4272d8783dc47f9715aaa3389a15b7c954f7df4a829ba5e88d5075514ec43f031fdb5943425b8781412a49669782f9e5a1e0d281cb69dc34dbd75430782408358200d12b05d15a1830c44703470169d7a313b8c6646d06483e6df4ca36a9b378d8ad550b154216838c4266121888a85e6cd883e985a30f61a4a36e3bc0e7fb30117b79a1bdcbfcb856e1e746290b9d442edb5069d0a10fa3bb82db686675a8d3190657fcb3ec4dfe797ddaf2c02f8c22bf4bb69002e4278957d2fc18c32128dcddbd65dc2c614dbae9eed2654ac7838dce74a2d29d471ee94f0fc3acca484d368c05a4007c009a18c5ba51f761e38899fd6f9eaf4bf270e7f3ecd7576e9919b8beeb6f0c29113729d1d75ccc953e70d3933e49c5c67471d73f2d47943ce0c3927d7d951c79c3c75de903343cec97576d431274f9d37e4cc9073729dbf1ae772b86f6b4e3cb95f36fdbacd77dcc50dd7bc72f2ff53937f9ff63ab3f0c1c645765fbae4d109bdce8c7864e229f387cd39744eaf33231e9978cafc61730e9dd3ebcc8847269e327fd89c43e7f43a7b71cce270ded74df974bf6edaf196e7388b9fd6f9eaf4bf270e7f3ecd7576e9919b8beeb6f0c29113729d1d75ccc953e70d3933e49c5c67471d73f2d47943ce0c3927d7f9ab712e87fbb6e6c493fb65d3afdb7cc75ddc70cd2b27ff3f35f9f769af330b1f6c5c64f7a54b1e9dd0ebcc8847269e327fd89c43e7f43a7b71cce270ded74df974bf6edaf196e7388b9fd6f9eaf4bf270e7f3ecd7576e9919b8beeb6f0c29113729dbf1ae772b86f6b4e3cb95f36fdbacd77dcc50dd7bc72f2ff53937f9ff63afbb960e233fb27fdb9717c4f6f8d1b8cb9ccd41fbae6971b1defcd131ebc339b7f77b90e7abce798454ed67f6df2efd35e67163ed8b8c8ee4b973c3aa1d799118f4c3c65feb03987cee97566c423134f993f6ccea1737a9d19f1c8c453e60f9b73e89c5e67463c32f194f9c3e61c3aa7d799118f4c3c65feb03987cee975f6e298c5e1bcaf9bf2e97e9d8912ce38e241e8d0abd502503d4d18f4260b51cbcc050ad11b43a2095009ba7b74915566b5ecbff9e8cf2f532761c80f1264bce40043c46e4849eb2e56e08e14cb761df9c95fb81236c38e64d82cf0b184701e7b651076ada5fec4cdebccee6c4688b41e02d548e6aa72c3f1714d9b9f37bc88bf5910edbffea81c1285c8dc314ef7c17ecae4ff377e25fd28a63022f59c11c48e8b853b2867c48f9e9c278baec695a8751f812af8588ee1f2231e18945583ae6478476b76115a1fe5b7ed69be8f729fcfdf4e8a3eca331b61ee05cc3fb78b306131fbc8fc69149c475a60fa15dcd3a508119141638f523e0a993e8aea3927d0240e155819c9bfb44be4cf47354d1e9cb56f7204148f778a5d66e33dbe4e2832b9262f138f7e5fc4d72413d8389ed0eb0bb78a78b90e5f4eb4644b5ca2e4f12312058081d170766cb7b0b79d53e444301b04054573da3a12d9f4904bbeb7d0ee63e454ac4f2034520be4e0e3366846c037b3e4f5adec722ab6cf22d6f5545b00e22e334d5ef45cd4d1d5cb0e6e6155e95ecc7026bb16d1b8b644c2a18b39ef0ce8315de8cdf116e8b33369215c46db9ba6d1143a4e08ff2a63225a03128d5d16e8c6fc3c0421fe24b492d70794cc59d7081d1387f4a57dfb1b8f663649f8c2a888e40c256453cff4cdf90eb19cad4c54d8be3c5573e6ec7186f460fb0653f3c200f11f06a9dc68d96ac88addc2712294ac908147bb001b33fa7f27dd9c31026e75b2ff172fefd705428124c917c48f28e12e2bb6f0ea211f0f72e06a4435b47bd35dd4e5b4086234143d3304e8f81047aea891a3b3456dfaf9b4174c7b996b6744d948bc687700c2f8ac622398ebd2ea5b8ccc9de573167548a86a5c9792d86299e92a262760ecf89f726e48e990189f1dbcf2e91ebf32c7edfd8b138b1421475e1fb0936ce61b9bd53a1aa2e99fcce1f1e105de8fd960044695425c0e93ed42148f7553a445f848feb1159cb3c1449c7cc0a57e3ec245eedca4eb89f05a8ed8e0a3d9a62161f6560b361d4f54f70fb5c7994884ba51fbd72f179e15b1316f7bf2283ef83c830f82fa562524a4e59245893f8fed840848f7e2b21f1c0cfeb5e2684a8878608c44514b64f4eea6d41e951206826e02db25faf43d664ecd7c86969768f11cc2a4422f583c26b2113eb094240c8e64cfba1dc026a333d5f7c6243a9204c63a67ee1b735e68c14226479bd55c122d1ecdb4a5dfc3092d282639b808370d6481efc0e1312de7a4b11e8016dde5397953f075b4701de6853bb4f7acc3e288f5dc261841e647428ac3efeec3fb224e25a641511d068f5a31ba586290654274dc8b5d0d98b96f5f732ee8e809f72031def2aa5b25d150d440e5c4b48e7e9f3327e2ec8317cd90793fab119b1394b1b560661cf4f3189e5f6359166a5aae9ebdc14fe3cd8492f43dad665e82d9f990a909afb9f93f76edf4da1ebe58590049a73e788fec6f79a87a3ccf0714c197aa62d4bb291e61f9d0abc2b25dd6dc141599cd70d32e8c060e8f67e07cc8447d2e62509e9609d07c886b7d6e18c3600c6c1163d90f7f66fe05635140c722e42742a2f62e63bf4cb30fd8b3d0ecc8c37def2b466d9eff25ddd80ce9e91ca09a88f19ddca7ba12f275437fa185ea964d45bd8840f2818c6a22cf01d804d010c2f2d18ce075ec9c2fa84d11478702faf5cf031d05e3088a60330f28085edff472142104ef13d24f1bc0262c753a00e91fd715210ee1ba549ac6e77705154e2314812fe9caa7b6f21401a50a0ae1c5cb07a82ca5c33a4d0e3d0af90bd09b6c4c46be4efaf1c1a5551158d1e391bda1b75dc4744ad2bf549c22e41251ecff7e5ceedf5e1118912e7d8bb97367c777071319175f5407854a45292847c1415d2d483278b4efa270304688255ba212c75cda5925e6585444a3b0da950c7d4abc154e12630f9556c0f6446407c80102c713a5c40b409a32c83f25fb8252c5d097d1b4f253df50cced040e7fd8a5538a1ca47e9cbb00118a0f3ea8bf7d51394b7695a888566ed8f1540df1627443b0dca8ac6340e4772408a9c76be056daface6f4d2e2b1159343b2455d4269142a0045eb9a4f0eb6320250057f1f47ce9d7bf807e034053c644a196caad44199f34fe283e4ade2f13d08f3fe5057dfda3cfd7bea7cb34a4b37609066ba9abd43a09a8c6be6efcfa8e7c61a16eefea5c9a55cec8a7911840caea6b181f06d0f58df0f5b22cf088eb77ff6ad5e3793caaebfbbf1798a673af0a9d23e92cd6b33d4373722f73a7cc762d0f859beb8320c13208ef6395fd54888be22920b9cd9e75fa68a9df5157a0efa5c43753e6fa38937ebd28c12f518b1acb6a5a8816af2de8f083d95ee8acfc723735f427b6a84e52a2ae2ae787be453afa35f3d0d35c9dd6977af63099f019a6685d411e6de9d3eed7cb47cd0801efd61a364a877e89f21f196ebed9b957170773cfbd4d66a86cbb14d676e7233906b84f2125fe2c392f65b4622fa2020206f2084222014c80288cee143e5fb5cfa5e3eea4b56a1f27a39dc5baf99f3c7872694087f5f2208c1665887a2f8a4dc80c36d775ec09a561699397628d47ad138fb33f805bc52e91390a10875f2cddba972ed619d9aa6d52230a845a5468949c8499f0e3d2bb70f9716267b1206d137567f0c267507c588eee1bca9260dd7765c1079859f3e60fbe296fee746eb38ae6ce434533c06bc9487ec184d67027e27ee6ab33c9aa8ca977b896dd6954ffc69543b7f3f497cc9d39756309decd5ceaffef9a59cb4f2917b9bb9c1745796fc041e4d0702252a1c12bbfa10278da3544b25794c0b60e251e746d104a06a62aeaae792d0e726d63c58a38f35db21bb77be1f956a468f012eee719af22288e9a2358dff2941fefab7057da0e5a9a1bc59a32be877f5672d0f435ec40f7a625dee7d0531467835d14fd73aa4e8e8ae410aff1e582aa081e6df893ce52bcb4e27320afc2e002b56364d63637767029b46e089412530a52b2ef0226d3bd0b72f44e724f3a6d27b8a701d8de49a00e16c39c11c205710abb79441feeba78e8710613435416b6222f8e57bba385ca6ea162924a104358c0a01e6cf80ec8210aaa1fc9cb36128ef8317ab0456362b44e02c61b07fbda930edb39bab60822e8fe19ac3d0694fcc07f39ffdd8aff3bec37542c23ac7d59ecd028c5f0629732d19948d03e9579ff0d386172a594aac1edecc7c26394227806e6cc5618c737ea8f74d4fb6304cf131353dbfc5b724820ec4c81cf32202ef6ff6072ec14d4367dd8ebd28524695b0ff781cb3006025ffd1432227abc28be5866ad931f2d27f2f889393193eec4af737c00b966bd3ef18d6c4054cb995c532b0a0abdf2f19ca4e0e7755e25d4b3aa715ed9f5547b66bd75ae1f945ad868af09e1b86c9f75af61e85849c08dd022fab98b96c5b9dcbe73726edc682537629c99792001f82feb983f83029cc8199a9d447171ee0cf0cf8a58f6f99b91305fc20bb4060c49f351352f75f09e210327932dffc4bececa59efcfa0936ae6425d94a3685d5c89bd045af026c7fa77ff21a0a528a4ea98a839421a7294f999c1da03c4bac95748b899829620d2cb4aaaa27ff87f33a69e47fa2584ca88189586bace85feee583e871073c2117241d5cc7138b01e364aebf8a49565df36b6e33eb999f2d2d1d0bb3e92d513c6a564eac9d3a01ccd65640b0ee319d6d6c557e83cf5f13dd724e441bdd1570339b0499fe004dbdbbbe110cb5c79ffe714d34183d021fc452edf291a0d2a623d84289df8c5da53a103ff27825dbc27676184b727372a82082946bc3bfcdc13db18616fb8f5ce77a335438a628b474f371cf1f915b1f5d49b4d63129602d5ce6e69c3e5a97068e7d810e79be1db63994aff027fd7599531e35eeee02a6f551a1c0fa0c5f3112ddd6b35f1c78c94bc780c89f07d75239001859c6f36a91677c5f57305eea0b493b172d01d88b07f943e08d7e6861a7b432af43362d3fac11b7902fa2b1b0212927277b7ff096109c918e33f1bfb38e8a458e73835711d353a3bc3467f688f54873f0aa978b7b133b7ca555037e540c61915bb69c13f6837c50a1f7f342cd11bbb142f708e41040bf20e182335ea5005a5c8243982ef535ab2e9552d17b99d459a3005d11c13a5b593eb4e92cc0618d4e8cce52bee855789aa784f15b704214c2067b542678786040d12aec10b9da5eb372878f02ac5e86d087bf4fc3b732b91214dc1382b9a8f97e51f7341845a36cd361f464a2d2a1263e06e9d8795a4e5e90b9388b8cf02c97339ab04b26a232d18b511f7830d138fd126ad55390611d16cc46f52f748f56bf77bcfef141bd5fc59f8feb7fc00f5d291951bc7fe968195940bc15d6fe840bf2ff84c1e358f5b4361408c975e2445f26fd3e77ae2bc7ec2bfb26b4bb07fd919bdd02bd5c144b138a029356d33ea6ef40519dee8a24538ba68398b224effd64027ec3c082b0efd2e063346d0d3d5b24763183d42bf8b52258bf71e4e8f2eb0813677a4c7557379ab709a574a328d29482f2cb59534e13677918a02300b838b0c63cfedbf0988eebbe15a3ae1cf67bc01a530286124bbfe5a5d7d785184d0c40432d5dec53e594ec00aa17f558b1d57802a43f485f446ee38153fbad12565a7f1441394f52eb1b9c8d34a24691e28020448ea0aafd4954996df34bc2710cb24d525816f2b14521be6f8a3b1ea8bb2f9b4553539253d922aced0b9d8a9503d1ee9499c723b086206d2649bd059fb420ad8498e0750353a3f1834f656ad7a79c28ef6e6a3da638d8eb72a609757e8b5ba61f859340d00f89f388bde948639e1b0fecbe500d2f46bfea081d65de387934b4b669c5c6cd764afd7ec2b0f8217e1ece4a40f9fc09d5dacd522d4e145d6cca43756e29db063d631ee1c3a0e2802285d72b706efe375c98e5260ba37f999eb4cb6b00584cb082ed17344aac9dce67a4cbb3737f8929b084fc09666da2a33e41836fab3d065c676257c877736dcf4358e885c2017e9e30e2713e803985b7305b0191a2d008078b6e6041036d24ebef185410c3981e9666cb791897b18a82137246d411004ed7dc60c70083e82ba43bb8d0c6e1c981e022529b4e779964cc4698275056e257afcd79501f99bf5528f1028e92f9f17bbdbae848389c89cf09b37316af6feced1236cdf400391e25c037d7ba1d1e00c8096c3e64475b33be30767ae395dbbc246771530fa0828099bacf6ec99205e46849f826cee5dae31134b13e28a0bb5e57f606f583da8abd554de5f8729f7104ace5c594cac01d67332b76ba969462a37efd73885f8168adac59a9755a365afaa2a0d9f9e3401dec7574a73e5ab4ccd85094ebb2910ea0be87c68cdbc26c99f4bf7927a0ca96f6f5bd6f9417745c1740eea1e972cb9783f4d07f8de452064318deffe3022044f68686142ceb4791e1426e22d6ae0e548e6b5456ea3798eaa323fe824791e680d256d7edc00db993e43e5fbfc5cde04d4f87b3c7439161ef2675a2b4a54ba04e64477ed4a36ad2bb4e2b6f96c0f5d6dffa6109b61577b562ac51972987061d1d678882d8a93d58f61a9089d131edc5637e13263baa50e8ea0f76e4d0e9183542e707490b05e0b1e6ebd32822eb35dd84a2adb950c4f3dd4fa3bed4b28c8b98e17d48e4ad6626764f54c020467b98a92defde8d8065a4c42dd1e452992a637da1853f6a80aacbf27bce8b4106e873f3e1d477a3bb4bf4e3520dce1f703ad947c8f3b82415eb57247cb592f2298c4dcb184c07d0636bddcff5e44fb50454e6b7270d194698fc9710722ae858892fde49a43a338c051166c39fe0109ecabd4efce03af07f51f378050044fa2572774082b16d0fcd625809ffacdaa6ad67a71a814f20c5a501d6e3a06c828d96afe2f548725d3b3555121a10a29adcd9ad0416afe3da80e7be62ae3cdb606666d65790ec2f3cb84eab03459191ffe9b60ddc6afb46e736c35ff1f5487110c972b2629588439c89646ac4410736c9a1f3ba80e6bfe2d17fbff79fcfdfffdff757f4a6b2bc7d6f3ff5cde2b950722f7e1e669ef69f8fa0cbcfd67501d16c893967ae09c706fff13b0f13f2f8acb0f57cd77dbea68129b20c54e18906b562af8f3a93d654bc1ecb3c1b965909ebc1188dbaf630940d0141b68be78c81bd29518c8d026488dd1a658f4bd8440f7314c03a099be30665289809f30ac412420c741fea701d01130b501671fa33b31a67e6c0d805ec1b9a802fadb0b99a23166e47b9860df4708770d80bec401b61eab147fc0e39e170ff8da00af0fc0db9a25d663547bbdb0056b189e45228a0070847fdd16f85af1c770b3dfb85a70c1a07ceb8260c4effa10927801a57a150c9797a1b33d2b82c356db1284abfde106403d74f0bd42a23c4722fc627c8b960d1c01d1c37ba0a2b87f787649e281d9bf80872ef5e101c55e84e6a34168d0ff84e4337b9ba2ae5cad1ce879c87d5771d8c2bb8fc3c0d11287466f60aa8df5cb9f58e5bec50bd9fdf83700ba5f991c48122632f93f3eb0b0e9b508e2ff333800baf4c6d3580fd67d1411afe2d2e78e543800da23939b5e8660876082e528be5852ffe916eb00f68103fd27835089a76b5aca3a3f3c7e0fe6815c29fee10fff83bb522bedf3dfe3ddf4600a9c3ca345502919fe63b3f3bf1e51306041a4450831ff69e77f1114ffa391f44c045eb885b0103e10a8b44d0730333333333333333333d1b52c22be9318b54576b332a52439036ecca008860e0a040766405abda59452262923fa71a028422c36b3ff686d07f213920f620fdbecdbde4b06978a60e5d762d39f7347b82e42ce344dd3e883bcc91c63ed6d3c7bfa6b7e4f8b8b90f8ca1d94adb1c7a69c8fa1ff7b4bce6d8eeaf7b5b6bb83ab2dd418bb394b8e6413ea74de162f6c4c192785a3ef54b25db5c97efd1ce2e2bf5415a7fc87ba8e334dd31464da2897a2103a644c676bdcccad5f4147b4e2225f0c14c4ef393b6e73527eaf13bc54d59ec6f7bbcf9e69e2d0ca3485c00492b1d7e614ecf71c9bacb2d478f99c731cd99b6fa18b378eb80f955ff97019d3f42b1f0e89a0043d9f4d97b255b2e5ac9160c5166583ac9d62313a86c319c83405492342a820846a5b9d377634baa9e88c9b7ad7d82b77067b0625648fbe3d95549c697a618f9ae1a6afd6dca5730a3a8329429cb5634fc516a76be6648f20bd9ceb470817fe9c1ba7c9e3f906a38c28176bf55694adc135ff8b114c19bd35c56e27f3eca6b203c8e3d7f83d576d50a3ee22c33db7603bd6deaa52be1517f93b36a0a27ebc8eacfdbfc998e2f924679a366f8cd6b5e25acb41e5a68392334d2862ec8af19fe4e93d9982ed036134778c13368eacdde5e44cd3e73d9b23ef1f1c2280529f52ce2da770235bce34e9f0e11d67bbb7b339ae74cf99260f87569e5b5a8fe6d4578c33eaba17a172a6c93b9b1b2f1f1cd3f4f2610d414367bc3a7d3a84ef45ce34ddb87103baa8847ee44345c734f9775aa629f4a3ce0654369fce348546201efee918f9b86cb200437e5bafc9e960d46f4a39d3b4ce653362995dec904c32b7bab2b536f94dce34899c0ee6dcbd1fdf5c6d9b1507344ddf1f323e3ca6699a442da098434dc55e69b337a38a2ece09dae0c0c14ff1631bb599ab291d0492495ff998638ba94ec8c507deff49a5946ccd5aebe4dc58cc4513024dcd0b7b5a449d1d9e16968eca34b1b87c7edc788e7bbda5d68a9229b369fac29739c76de35cff76ca51515eaada2a99af9d9139d314624e7be1c58b0a1f3fa7de7b94ba38d3141a8936375e838666e4c2b20195698aaa3d73bb8a716c4d36ce346d4229514dc5a283ab6493906173a6e9479d90110cc0d94fa932b5fb9c999b9c699aa611cb9c260d3cd6ccdff2b6f7b0ed33ce34fd8726184e95bd64f9de4738b5299669126d46221067f30985a0f5dc65a8f8ff59f4f59c6932020aada4ac928f19f355ae4f218b9c69f20f6f403e4dd37403078a112ee3075bbabd20ab634f6363cd99a6954f87c8347d08d45bacc562bb6c0ae1aa66eb9c69da4cd32a0b080400a5fa7917dcd8be5efbc799a669625dbc7655c78da3fedb1739375296c3189b92ed32b6538e334da1ff70b19a83f341e81a64cb9e73a649e4ffa2cde857a6e94619d3b46101f987431c5611a1b080409b95d06603000f6c442ea1cd06021dd0628bcd28c4230e68b130c0810d0636e0bf716d7540031cc8c0033000810b74c00210d050a0020fa0c004b490c005221001085ce0011270004b0324c000cd022ea080751348c0119091110510e0dad264b174b359f9743822e6680e700103c0397299400174f39c8d0408a01b0d0c60b1807af3a10d8bbc7fa3445c5b2dfda20d68d4f212ea2700a60220e2001623100800ce1fd2e204c564f42b1c285151074896b2b1191df92d327a84592a80d10dc8b359f974568efc03a402ec2000730804e659f8431280392822030668a24e0b0f005383010840bac3222881436a042316a1884420e210862804210621884000e20f7ee8031ff6a0873c60f080b9831dae201dc0014490b268c4281303014877480425701c40c290009130afe071893984469fef425a8519626461894dac7c462cf2b888369e4c0e49920090c1218542600cd17c780b2d5a3864e4e3324da19024a904521695c08424b5300b1488808611af748af0293220d874404270e8701f242c205901c94805242d2b242420f9228b49508224f3805748990f603624aa30f29f1210b8e0630214941b5f68b638e21d2d46f3c598ca0891319a2f8646a3d17c4cc002cd11ef6c7ec57fe3082f74a1c409a02f6eccf7947cbe50d16c36ee01d978820e48c630d1c348e49a2fbed07448c443696e90d801123890de411f48089124cd348540a1d0d30006aae1e20b0d27e557fc438f4082f41f1a491208f1a10307101c3a342a9a23fef1111a7dccf0785c78708ef7481e817eb807d4e357d0097284c71081214918258c42a01650e8638697c16997e73102fd00030412d2c221215e4628870be88724654020fa74c2081284a5d3f88f1992249dc2dfe371f92149991b1ff8803a181fe87b3c372429f3857b3a68a84c323c1e1ceee9a02149192f2429337d5ca624652249e765d4f174242903797c403fdc872465dee843fd01e918358e4f67bef34092326e9b04d7295bec85432109f2e4d034561a2c8d4da3a5e1d27869c0341c910822a250ca4615117546cc11b9bc1722cd0f0d17cff246343c3d2f1a224918226ca185689d71883d48923a43cf60e9238bf9ba23ef1fb55e3e8cc6f1f261b8a7c3d1f1e2f990f132ea7838e4e201320a31901707e5f8ee80ce108d11e23112f18b31c2c102fabcb3803e403ecc11f221d018eee3c54139469d8f199284f101181eeece87d32fc423eaacbc181eee74c75d44e03e7ebc7c70485246310b8b5cc24801c6076cbd3c1149caa824655417a310b7485226850b94670105112252e93f63699169525a649a54911b5b4c93480427700af7c6e8452295fe33e05217e87202b5d6b99c60318d17d0458dc55cd840882d44a11406f2a1ef2149190f4852068b1c417e90e143888e1f66886093068e31300818040354e42249990e48920480cc16394c72b8b048ff4e68b4811c3620800f0820dd400b52508244440452188020842894f20ed211f48005378cfca7040b18f552948bfe221e0fb388a43102c183467cf10824184192c890243340e00742fc20c210821084ce0d492242006988d403012e65d1071d48d27ba4ec7cf8d3d178b1341ad07cdea3345f5840f3794f910e87465e78b8f30169248b4ba835ac1181469fcec63fdf9234032d388019c2a7730608086814d2803a46449a3732fa107f3a1a4e736b44a10f9232c408e83364886a3ca0110de182df3d1a9166f422ce4aa7070824c4dd434610e47006491a7d10ff3282e808e21fda81872e6081051601f01fa9a1798e102cb0c0220044a42cf0a0b0c02200295860814500b61071e11fe642d4052bd205a89392226a9077d1c5246a198d385a9c40a4860e2cb0c0220077688424a5f07f403e3c1ed631eab074c448497979222917b880060534d2843a9a11879ec5e5f31f23a28e66f4228d1766889c73bcc88c8f8f1da01f1f33e6f0054902e9d04c6590514619608c8e3c17a2d191df70c88537a0810c4812260a6784c1851c3a925403264862f4e9b07c422e32648439a3d18b443248c20fbc60e968446ca4333b0e62f1a2131ab580469a111f792392e8c5f309b1e68b80a48f77d08f1c3bfcc3d324595c423ad478031644a1945167f422972e3890851bf820795a583a9b97a2b8e82ff2c2a110673070010ccb29303ee081052449c264345dac225d7448c4d24736291eeeb0803e2f1e504b8a08346ae9743c2d2cfc4686780b8b8b5cd1808268525a3a23d1902143345e6ce1018d179a0e683ca0f99f9b8e169a2f342d9dd166f41e2fb668e98cb4680ff7e60b8d66f49e2ebad0a08c442ea121438668525a3a285bb474465a68445cbc7842ece9b07c5c425c8c3ea0d01c3244c39a910fcdca87349f0fa8a53362cdffdc0c19324413ea802ed0d219853a452ea0f9914b0bcb100f933164d4f1b8b0e0d0fcf3f8d14b8e142e42dfa2e10eb7fcfc20a3cf07e11c9cc3d3611e2c9d86730eff7c9094eeb0f0e7c559241a75d8c80804929a7fe182415eb046a4491135d69a037d344640a1158d68c8900fbba8006464a401f967829ed385fbf880422b2b1c4423650e2065029009002a4051862363e848830b2063e84803c88e1b0f0afd0adc539185154a21491219da20a5ac7c3a9e8e4893f22e2b00f5f8803a22174f7f7cb0fcc8c74b68f401e303438668c6a00549d24c9fce86a58f643106325034d334b1f41131a088c10362c8420c5868a6d06fbad04cfea12e3ea0f93b3822eee12c6584f10ed211240c4052c2c00109086c4182a47c461d179064d6a4bc8c427f01d844a20b34182488c67f14024d8a08e4ff7179f780b4d0b4fc1361d18c21468ac83f9368031a4d0a6748cb0b688eb6d042f3220ff3d0a40c19023af2a036a2999d215ba0683144f4a11ffdcf0e8ba8f3614e3f4b7368f445dec38546d49d161c2a13c45a68343c8666c80d212a43fcf3a34fa7f371d1bc78469dee785a3429283d3429438604d1a46c311271a08559b4d0883429a2e78898d3c263a0b478788b4f47a449d9e1a3859f333d0bffe86f09e2032444e4ff3fc00009d1f101fd0085be041fd08f9225940ca10a31e0889803fa91c5153a71854168a62db4e0e903eaf4910a48528602929499802461a2100a8141840c307440031458418940a15f81c7f93d1ad048333b1c111a5950e105926228582f2c21660152050f504113549884240d195244336408199a942d3ad0010da73b9a1fa0e1135050822444a194517b3c9d4924c42bdcb2691189462ea0176d38a38e11333cfc414240462050197fe003260212a6039d0fb568342f92b306294041ea84462e65ad14c5857409e304335840211efe2b9f8e08e4d1316af96e1c657cbe850c1d46fe470b4ba887ff0e211e02a5a4845c402f9a4f4723bb23629912eaa08c441314449312fad9e1a1491169525ea4c608488c4f670ce71cdfd9e11e17101a1c726149ca4840adc58c7019eee3c83b7346a31785f83d1edef87731e2a9f90f283388d14ac9165d1803c92252563ea09011cde8f346342922e922e2f48743394a1620913ca2d332fd452e3662b085162fa31696df883a16d082a40641986009234992966002499224a94708b2a8441a12171f30c0e0d12249520f4992f490c510a024492a902cf0a10f8784fce8a145a6890ea01f2fa12f026a5167c74bc7d3f2cf6374e47fbc8374bc8839403ca30fe29d1d3b44a21696508f9f1c44f4f261380e118bb19819688c409e201c11f71089ded3d20909010971325a583a8dcf8b21f278708c442c86448127488ac8e3f17858ba885240a15f81a853a4e3a17749145904c10d449824cd888ffc6708a090349366c45b6861c365082f5cb4b07804321090a4cc032429e30069c3054b1fe1900b17e984de3722f6787823fd2008076011b1911650e80121079254b2061048423fea60bc90320d90a40c032429b30049ca284092320990b2f8811659fc400219044852260b1f20c2077c982429730049ca18608824a54200a02f5434de611989588c10485f7cb109b9b40d006ca10511d046d449d942a469c1161b0d8a488b0db44083b279919b4d4aa61340fc3dc42deaecc0c1e30425f874ccc0e8c0010a8108f403041ad00a26623620ed4879941d9a50e88b8074a4f1f97456de488a118fa73332234424c42ca11fb1919494eef81761679047828c682448236223ac01893c8c8212e234bfa8c3a0110b68b266f4a2e774589ed3d261d1f8eb30f23f86a8a1f10f8b3a220f818c7c7c68523ca20e48f3c1a1f98026f4686852be131a7160d4197d91130c117544a10732440d97d919d279f9228d66d2801a64e43f27006307193aa669e3f1bc11354ee0f1745044cc056845f4453a2b383429fe1d8f7bbe337d68449f4e4bcb4b0e7f202b9d1c2090101ef18e33708c403f46a01f38403ffc63060c1e61810f8c3e5ce43d5f8606f4d98c7e65880f2cf012eac81c340c002049126bd41031e625f44534a9380526143b32e102247c11179c404a1185527e0c9b16d4a0052b92660a7d271462c9823fb0600b92e65b402dd27c3a413644f88d10e14743f49e960dc85d449bcda8f9f35246470a3e9dc79876442f2249ca1440923051682f999044a194cf26f4a3ce8605149a5df41761e92319026406f0a28c003cdc2311886533e28d246502200a8146192c2409e38323ccf2453a2b92845100c89c4892b40ad1ff94240915a9183d91ee8c24296322da48a7f04ea62443d200960e7b741c69c131fa203d3e88c8c5d3127209f2f916fd8e10bf47478f1ff900431591a48c0d49ca64242983c1bc429230ae90244c2b2409c30a49c2ac429230aa90244c2a2409830a49c29c429230a690244c292409430a49c28c429230a290244c282409030a49c27c4292309e90244c272409c30949c26c4292309a90244c262409830949c25c42923096c0504292309390248c242409130949c2404292308f90248c232449229130a335a421923446cad4c111b124a9b4c42e7088b280d14892b402298b5106faf322d16fea2049183acc4192307280822461e220e170f1ff98d15f64e32f4918384812e60d928471832461da2049183648598840908568316b90248c1a3c04ea2f63f4f922a0f9915cf0f261ac847084214912902c4266485d5880a5d3d0313a0206875c7070c805c707d401cd8f8f344812060d6790248c1924095306324812660c92249160c4100649c280e10b2f127d403fa4960c904092244c8b0330b2f3052814931882262449c260410a5900928035e0e1499284f98010d42003083968021b2449c2ec601315d82254a2b2054992326280f1814aec80033b388524493616f0034078e2084860832024492a514211508121c4e40a10489284a1442982d002561c61124f92241b4b18729204ce1e52f0084992308490ab0e26e8810a1a2149d2e8d36111bd7c1893b0b1089047a4198d2149120824892365f121852894c2c21f1a8936df098dbc80450dba307261f1972c9d461c3e2068c387249386243016404892c4e911b3383f0708cb195888200d3982bf8e699a261e847ec3d2473c1ccf0e4992349ad08f5ad8796307d10d95507f3a7478f1a488341f100a875c706842201e1a518748082402715a1372019140932212b98c38c42d2dac717150a845d3810eb091cfa149117d60f42b1aefecd0a460c13b647879221ed00c19428479c807344434fa159166d4f244be4847c40191488386e6e58968fc5d3a9c979a954f4723facea83b2ca00fa8dfe31212a249d1a48826081402e20307e8c7cb87e1a2970f03f4236cb5e6eb5a2fce54021b32980d4addc6a27267d357fc5742cfe2366210e53e93ae8f5b5c7121679a3cfc23d18688c7454e938e954f478dcc2bbcc5e86f325cdf8af971a6a90891cde4f76cc2b831f9c5403903250c9491cb18d3147a222166995f46460b1957b0b7dcdc28a1bf8dafa9564cf5bcda968cce49f7749461c5be76ce706364e7eb2418d3c4a13723b30ac518b38fcef7df3d7d4e46154c61b7d309e7e2e6ef3a930ad7ed29285745a7cfc5880ad98bfd938fbd4f7eeda770f131336d716364065f0832a6d828192e566b39e6e0b7954c299ad9724fc9663ba59061789021c5f2f6742e93ad0cba84a358ffb6e4af8dfd714de74cd3a72359402d0ae912aac71a976d543b39d3a4829fa61b2a0003c834b5b0740932a1605e0ae54a39d95bf505856a0e1976f763b199dd275aef8492a9d5cd4b4a4846c613ef543b833b97b2d95c7982643ac17ced2a8c4d41e5dc624e8613534dc7a684bb1a83daea4566136daddb576dcd5de67671a649138fdd622761ebab3e679990fd224b562f9b6bfba208131d7d791594fe2eb1de42d90cb9b9269f259e37d5b24db8f6b936d691a9c453cd3fca57dfa632c794805399add92adfa5936f126fc9a7dc52177d55ed4b62277b4d796bdcbd60af4834f673d5c9a6b3c9b90d098dbe7131d6267c6a953fc2c1c80baeb66f6d32381df1da29e856a754ffa0638d9891f775aae95cfecfb8328cf8b75e5d646c4227d5ab2db450519945ac43a6735993ef3feafbc828a229f416a1fb54af9a652258d753b0c56773c6b79c334d1944b8576d7fb7ee41d961640ef1dcbfa9628bad31d3769c698273e49231848373c6c7ed66f7744e72a6a9451d964c21d43da7ac31e5a07cf823438836593ad714638b3decc699a6cc201c4795eaad29bb497ee54c93c7d3212288f5cf53ffad264581e827a562eb549bf1c18d8058f1dffca77e1f5cd71f41e60f8bb767c70725ef2a636664fcc0bee62e654edfebdd0624d38707e7335fea49574fd706c9f08129a67ccaa5ec72f2c73d3054eadbd753b09bb346828c1eda53befad83b2f239387199d6ccf7193ddba0f34faf8c0839c6aa97bcf9e3a5deedda1df6caf955b8fcde2a633a790337cf0e0c1226223d3b43192b14353a5abd49b6acfeb23679a7a64eaa0d8d2b851aee7d643394da00e1d5cb58c4d328cfb8a397d911b8ec8a5659a3e909983846c9bb7626b9794fd3c193944b5d4c36efbbe696c15b588547064e2a0eda9436ea7cf605b0b0e51b5d76c4ae8bd98397b83b6a5cc2dbbf6fe1c25679a36d324068e1c64881182699aa64d8b2847c60df3ddad8def796bc3bec84dc1d974c157f1d90055e3f53b572ac88ca520b306e6746d3f73ee31fe283d1935283fe7a672ead89593fdc9a441364fd9dabdc3f5e90d0d71b2b8de163ffb9bceced0e4ea7dcf0dc225db5c66d89d8c1f64b78fad255ba60ccbd983aba5469e26cc0d3264608aa1ec658ab9ee7aea09c29219834657d8f01942b9de412219316ceb4ae8fef55cea1293844c18a047874c49765e07e59a819941060cca396bfdcbb154deef2fc87c41c128a7631ea5934dcde685d6e2f3f6fed9d87476ee02fc55f5ee3dd674990b5cf0211711c8d32c60c13415e9f88e0c17dcad72cc4d9b5bf9545b707172436f962e2c2fa305fee6a0cfa5dc834d9b39d3d4d2098d449e691a7d3a66ac74724cd394c9828c31c2d570ea6bcb7172a669f322372f9e161e192c4ce5d95c9f41385f639fb9c242e676d5f2c1d7baa98e69521141c60adada339e5123f3e8acb40892a942638d295ba92a9bf33e2ab4d76afa5c6bfd6a75e5d4253385e9da4b3657b9d71e593d20903423238575514209dffbb93eae8ac27b257f367b1ed9c95ece3485402d9b1666d9918102744bb5634b41f95886fe25344d20c83ca1ad5faa695cf1ad4b176ff0b8814325051927a839979c6c2383cea09a9926a86d6cfe54ee39c38415d7737dd03987bcf439d374e386192aa0d1c787cb2c616af4f976675cf2edc3d0077961344046844cd3480931ca953e9b2d54edd63837fe03f2e898a6ff803c8d03854726096ace071fb6c6fc296c67a084f1c920817bcdb8dbfcfabd5f1e237384b92fcaa66dc15e4ae5733ed374639a80a88c3a9e9620a1110a3246602c2e5d773b21bb096311bc3175bbf3b16f4d3a11fa4d6d2e2a0887c0d647d8a25255906583426887d1b9744d496d72ba4c10a48cef295e9dcf96f70f8d1742d440230304b7ba774db5eb5bf3e57ef062bb5abe5c6457afe691ef117a23203158c607dfca1a2eeb75a92e670d323d784aa94727b9b106d9539c0c0f149bec1d93d0ed9472361e6476a033ae63ff73bdd5ca9bd1c15af2e17c7eada9e8ab8590c981da55532e535e12f69a39c8e0e0b57d4dc928675cc67309b981529f6c4a5def31d522741192b18193be5c541d55d95a3c7f646a30e77b5297b9a55c1b7340326bc4f8da7dfa54cbf52ae67891a1817c90bfe374de5853a7462e2d1f1fd0458d0da8ecc8cca0192ba94abab753c5165c1acac860c1d7a6d2185b93ea57ad7351995f860a3231786bbef52b65b3b5aea9ea2b1884cde5b738b9dd9bec8a197baaa8512905d72aa615cf167ccbde6ca7bb8c15f169fbe950a52f39a17c016615f139271f53b61acf8f0cb3038c2af4f1749faf65bf069539d3344d2a214c2a5c32b7f2557bd0bdf5e228c4405a8041c56cae3b9739a971fedc53a8662b2e6f76ad59ec5e01c6142c3a082384cfa22f9b3b31a550713d1655ceefa9d83f527c934b293bb953f952ea02cc28a09bbf645cb7fca1bb63648011857ba878ce96ac8ca99b4530a1f8371d745246e6a2946e8162fd52b94e1f2a11cc273eb6b5cec1a6aabf97e44c53101c184fb0569d93a53a5326d74a01a613d39bffd96aee3dd8260b309c60aeb8bd8d2fdfc2e7c9f996cd660bcc269447b7f1274fe8cfee5c3cd36134d156998c4bd58b70fe47ce6232b1eea13ee7be31757f8fe41590181a1183c46801fd98a6159047056230d1e4aab5ac3dd417a5b6202215c65ce2a9d7cf4596ec0fbdd7118c25d6c5d8ee5647651bf545984aec3687eef0c9b98de9be88394024861291b596f06dbb6dceea4d023afcb64ce59a4f158b2f18494ce554bf07ddbff85e2e071309b73dfde76230f684b1b5000389c5b6d79fdd596b57b506e6115329a7de14aaf6c79547308e502fb2f772a69a2ff59a08d41182694474b25f7184fe4a6a638c980a365bee2274668b35246016e1d43baaf5122e966c3126061845b815a7ceb77c1bcee90d343f3e5c8049849cd0f9b536598b0cc67e0106113b95f466ac5f7c76b5a21706e282398474e9cc5e7c52b1f8dc4f8031842f5f0c5f8becef7645ce34c1a58588bcda3be7abf97cee3ac7c41062a9ca089d3ff63ec29783780959537117bfb52b21e7460f4d7f403ad61d011911a2223182808c5d290599373777b640b4fffb6ac5e07cafb913085143a5070610de6bf2832bc2c68bb10be2ff3123f4181e60fee0eea563cebadcb383ed07c96a6a53b7b43d4a6e7d68ddd69b5cc9945531e5033f854da926db2bd9f2a7e9461a2a3c307b98fd4a755c71d57b548f334da051ebc0e8417b6dabe8d89b7c9f310f10b2f78cc1c874f6938ac1c3f66e5b6aae7de9eb15679a30775071973b84cab97fdf97910e8c1d5ed45dd9de7c6eaa5ef20c943054a6e905983ab4c976b9940ff5497fcc05183ac8d72c772ae6ddadeddef881d243e5079839b8f7b56eb2aae9ff9adb50012307a7ab5232e4d9d8499f44c0c441a908a164efbdb67bd0e1d0ddfceff563bf2daa2201f306f6656ef9d583eda26437bcc852d552155f33d81cba04c1b4c1a9076343d7fa654b573644371f9393b5c7fffbdc0698357047f9fe9582d131a85c0d306a70d3e5fe8add51c1c68b334d129306b70a1fefd3e63edf151a969ad1a7ec65bdcaccd7c09c01eebe5451c2a92037a744c0986141a9525ffb55ec734ace873d40de413fa6e91df49926e98a29036b12eaca85cf9139b746cd2d2c2a443064f8c97c2a75e8d3f5ff9a5f860d306368b0b1d286aabdff7ede4325c70ee9606068801183da573a99ed6ccbaa18260cdf98255c50f17412c2a592020c18a4fad756e373f00beb177331bafc5dc178416d6c712a7653f19b2c481d305d70169b2ac99eb9397583e10263d5e65acacb16774fce346d36a0954d0b305b808d959acbe63356cc31c068e1a3cef6506d9c6fbea859684b417e12aed9cac55f5870cc1bcbf506db6bd622679a4480b9c272c7e484ed4975733629046305a95c59dce71be7420739376ef498a61e284154727c2724649aa669f323563182a942932be5365ee7a462ba383e1a4305a98ddb6cae79bd640e39d3c40333858fccda62c84ccd28372ec04801aa734feed6dce3e51904e50c9430545a788c1666819828bcbfabb2926ebd9d734d5363a0b0fce36aadcde8ec619498273c3fd5cca3473697da202b1827b8c872675425b5797376a3314d788c277496ecf57237a76babc7c605c304f89c5563e91ee4555371a6699a6e4c534f9b0d09304b78ebad7ff59e296d7241ce34b180423c26c728417bf6b75f12be6a6bb9f93b5e468b49c25bc79ceb6f53397310ba0f1a6090e01d99732e63ab37d58db101e608ead2a34e9fb1a34bde2d72a0e0d0e20c8c11d874f6da83defed8b25804d9f4a346e622c3b6ad39d3e403430439d92d66cb247c6cb2861902535d2c999563f6b82d679a2668c3113167314268efa6f2866b779d5cc7f9d0e63d928518e132a6c90887a609049820bcbb26618c2e5dc2c91208eb60efe465d3b5e796e34c1311cc0fdab17d51adb7cec65019c1f8a0b5a83aaad7b61a37d31e28c9609cfa5cfbb52c99078dc55ebadadb8afe9e77e0a683eaacd75bce34b100a383567da81a7b73cba91647981c3c8b91bd6e4ab1e5dc9c221cb8c8265cf75fde58aade80c5770bae9bb3a9647736908b1b7aabed76cf45981ab48d725929a6782574c1acb1e25b6cb2f7dedae27c9c690a6168e02a55aef86cfaeb6d93334d1dcc0c963f7c26216387ccbd71a6092383a8949c7017aa53a762e44c1326066f4926d94b65915be5628141d4b6d3317f3354fa1e679a4620d00bde74c951a9bbef9e7039d3345db0e4dc6552d745f82c23679a565ac0ce2da6227c51ea5a095758c0ff9af5825397a964ce99a6d18b7c05ad3acae6ebfc4ba55c9c6972fed0346dfe253aa7cf4dc6d12d56aa8ef8bf83abdd599bbfd4883b28e7636e4d7d296d428acc079ddb63a80c3add859981cbc3e6ffea563f3ac7e03a172123e99a2d86ccebe6ba8b96c9e9dc4ca9b7520739d364e43fd3c4198d5688553f3be3f68f1b95e280e66703031540d6bfcfbe59bf8538382306324d2adff222649a36de125bc357ab1def8bbb0ab4763dd6acf69bbdb3e24c1368f44111c2020af1e86f09324d2a98353eae4cb2c531427fef0b59d45af6b359b6e8d12dbde1e9a5743da9668cd3157322cd70b5ff6e5b50974d96cde73d2f2da09ea61b2710a2c68f143874bfa47ab59c3a756b2452d14e53afb6315cd8542e2b679ad6b96c5e14e216e54036a7b66fba5d2911c393cfd874fada74fca6e2280983d36dea1fbf17a56ade9c699a2050080c52f2fb756cb9e16cad75c91760742bb693ed0b32c8208753e205d6dd188491df53e7a69c69925d80bed6d9a917997aa99ad3b251e977900e952fe1822ad8eb6fdbc1ee9e8ea3b2a3640bfd56846c2ab5520b1e971dfcb622546e5295646142a6dd4be16bd99325679a620916da7252d58a6faa548b59c91576754eb76693eacc5fb482ab5a51676371b63a094baac0e0eaa6deae709fc346857f533216a37351f5db9b42b3f56b5f3297aa94db971229bcf65cf63aa7ce5e553b2551603ca1e2c52e572bf587c22a3ba57a5b3b7f9ef209aa968253aaf64cfa337502e4863e6774767199b909daf0395bf81d55d359c28426e774cab1d7569c31ea12665b6d71b6e9ed5cc7364b94c091b12755bd5b5f9204d85653a89435e9d6948d8496cc3fe3d477baf3d5119aae5fd1d7bad5563137829b102aef1957d792ea2545f05d2f2e66f97139f63a4d2c2821c26c0e9f3617235b5db5272819425c3a9b4b173b7ef4f93128110284b3b9a90dfdf562f2a9511284d5fe9579f17365e57da40408eef1dd7c8d52b1e8ebfd404ed773bfffb5c4078d3d5b4ebfb5b894fa3541490f9ce96a08a1ceb9145b52b506253c608e11366cc6aa72edf6a06407b297d57a4d45b71aabdaa8354a74a0bdefa9e3e5cfb8b5ca41eb36edd5ac39a8bac51994e000cae5ffe2e2d8dcfab54a6ec00ab2a9dea33e57d64e655362835709b5c585dc16c667ce34b18042f3c64b4808a8a406529f47a8db1edbe85867f323f6a2648d37754a277bbee6e0cf1da384068c672f2727c73757f18fa06406bb3cc22961f764cf5ee3dcb8211a639a36a2d7885883e23efc754cd346a4826944890cd8772e66acade37eb79218f0cbf9abf069943de17ac5aae5b62da696ea94ab24ae60e6eb913557cd542d0b01492b24fb84ff72999a90358241c20ae78c5b3a971ddf3b631c1c24ab50eb79fbb7e23274eee934dde090a8627bf541085d192a3597334d1f2049857c7123549341c64c2ed7021254acc7dc73b0ed8c0eb643305084a8a480e4148ac5f79846b5967dfd4d21a56ad538f2bf09dfa70b49299c7a8fa96c31365765ab8584140cc6552c1d746ec2c8d4938ce23dc2e6607ceeb9b7f9a270d2294f0657b2a8a2374928247bb84a9b9473bd07e7480b24a058169b531f7737368d2d05924fe8ead37e978f395d6e4f3407d5b5c7fcc1b7afb613ae9593cd29c773edaba69c7871dbe2f5582e7f47b28967e9deb1173b07fd39ce34958044134ba5bad9d0d9366b6ccd84da550b2ab7361999ff172498884f614a74e6ef7ebd2ea6ec5404249758a7ce616bebee1a5c8a334d2520b10454fb127eaffaa664932920a9048b0bb23725ab549129368384124e4ea7dcbb7f2212904ca21fea7a1e198b2492684e618a0f9248b4d7a2624eb9a9ee1f33ce34dd40830412d22d6b919bc6a96d9b23790453324eb558af922d5df720718473d8b1b9d2edf52ebd116eed7306db4765ccac9c1d248ce8166173bd3a32e8d0ed119245c0c5abb138275bf33143454826d9956d7cee96af4bc43396f0619c91796c879b97d068062488e0e6525d9f95c5a50e4320a408c921def9edc3077d898ef018282f1f064ae83922ee416208279b2929df53b2c912901402cafd55717732b52f2e219ca182ea562b8dfb22138264104d257bd8e6f4f5f64a100e9fea18a17ca5dcd4403c5eccfe53e113d9b430cba685c730010920e6c6c59cbd9552269d83423c6e40f2079db1dfb12b065da563ce0848fcb0af7197cbefc6cfca1cff746610923e7c4b18d57aab183fd3c699a64d0a091fe6d4773b5b64f74fd7e34cd3c623d9ff63460d48f6c09497ab6750caf91d9d1e1ab68f73d55c6dee3fd5819206491ede3567d9d88bcbe133c4035393fbd5eefa25dbbb3bcc19237cac7059c9365988c40eab6fdbcb8fcddabf5b1d565b1b7fe7628a994d25a14364fc1a5b2f5b8e3937e7d0208bacb12eb8deb0f7fd06247250bccadb297d2637a051103072a0fc40e9a1323a02460b48e2d02f9fe3b76f6f2c5749e0e09cb9d8cab97acb7f97c803246f80ac6f275352bd2e9dcf4505bf83c40d93b1d6095d5fbdb8647c098d5e4242be206903bfe6eb2d285774ab35c73272198343c20667ef0ac27d6fadaf1284640d333ef91e4e7d66389d24510354cb77eaae3a53d64fc3cab7a0b68dca2d8f12a2813b4ec8609badd71f739c1e2467f8756a418d8bf53f8c4ad50cb0ed379baceb53bea670405286e51894b0f9bbd8acdc9190e13da7e23fa5ad65f4df31b02a6d90716bec1c6f1303bbe9aa1d838f2de4666180bcb39dc5e7262b6b07c363e50d95e752ea58db17d455b6251d8b4a41a8ee05e51e7b3c1b3e6bdcda23e982544cddcb5fae1673ee48b8f06f9ff3632775495fb805d6a8dcae570dd5b24f2df0f67218d9742edbff5f48b200a1fbfc56ee92554b27c1c2ea621f15378cdeed52ad80e40a6f36c76daab35cacd4f3787c406285e94d294b385741f3e3e30a245578f97aa9eb1657397bb149a8d04e5bdd5bb157394b1f7dbec8149ef742a7a25a33f26a8740a110183f2091829c4fbec69335c6ccc1a92d2089026b8ca9a72e9f72ab3ede80040a73552efde96a4ac550a540f284e81c7cf3276c5f02891356fdd2a8ee3c9563ca9134c129d60921b766c293acfdef7466b7a252415084a8288164096eae72dfaab5758a29465141028912f629d51af4077fb5091f45a5082449d8c5d1cda87641f97a9a6e7cc840f14f270c1494239df921202aefe261161224b8b95e4a550ec29dab25c78c0f19d3b4427204d92673e785ffefdc9f406204feb6b139d36f0cdf8a2e2d45984c1d93f1ad4a771b1d679a6ebc47b2214888009b7b1b3f366f6ec93c84f677187f5975bf3819679ada0c1221f09c8c958b8b3987aa200a4882f09436bfa9bb66af2b55e47f9000012af8d145e5a24fe58d9c693a83e407b1411715aa656ddf24f4816af3dfbee8fc216c73a98c3e042b243d90af2793d149a87830795b946ded5acfb61567f3a1960dc8a7a904243b90af1aeb8f52aa65d6a6095304121d2c87ce357d537abcb3f9803ceee343c634898880409c2d144581a1854a0b490e9e4be6ce1e6cc73d75e2e007c90d9ce408e17a6ca17a0b2ace348d789a20890d5a9f47e9fe4ea16bd738d3f4122243e5060f15964e8385a4068d4d08e15ccbc5765235ffb84092355494efcd389db5d8cdef0345888a0f1108084b679a564868f0fe8ec9157f3ddcef0f836406be8a7da9e8d6320775ca60ba9fbffa992e7cf09f2406aedb186c6caa5c9f925f21db7dfb4577d90c2ee88affd5eb9f79b9352ad80a6518254be8f1b1c22dcb75e653e5fc17df2a5cbb37e7f2b56f3a564f15da9a9b3fdbe5a6e2b9ddeb7dca6db5fa72a6e9c60605c734d940c53fd894f5ab06d5d466a768a86e79ddebb6d47b69c3140a55dca9ec5c2d29df4bd16fb6d894c5f7a9a0ee3a52c4f9ad7e5d9715631f45e3e61ba154fb8bb9a888614314aabf6dec5d6e29f89e6d84a2bfed2ac9ddda25db16810d50f453d87341e86bc2e5f2138c4529a7736e6b35b59e2756ab8cac4ee95cac793b01d7832f592b5fb89aa90d4ecce7bbdcdc73b8d46b0f860e1b9b5873a73ee7d645f6ab4f1330323374cf29b84ecd4cb4f29b0e7bfe4af5a4c3045cb2573a3309e7dcb82ee1a4aba9d31583b1c5057d369fb7c4369f4ab52eb7f3fbac84b2c2287d6ad3b678314ab874ccfd2e6fe71e9f9c44bf5caf259c70df8beb92d0d776cea8dced572da69190713294dbfe4db6a27a482854c9eabaf4ad5d161fc112c605df2b05bbdd948e9091ad1597abef7bea6d2366fc5de6f8fde3e8ad31a23dc3b871fd5af65ec245e84ee7a6da7687f021ab2274be878eb9bb5dcdb14e846b3f99af92cc198cd31101e19acbb4bdf6bf4c290c6c1c62ca29277b1d77e1526e71d41052b55f0f597b0a7bc5e64c93bf8b4660a3103a55ef926d4ac5bdb809d18f2d1697f6736aa9ff20626c4c53966b56fe987ca553cec711624310ea7d3f5cdf51adbb77225dc34620de7bcdfe1d2bc72ad76a0d6c0082f9db666fb15a2515c23fc0e65eba26fb185dc7e607764d4d091d8ccab955aaf4b0d1877d5e4ec25feb4a971b1f5c39aaf53e236c179bdac33ae6e273cca7fbc872f5005d7caee6c3d994d5b0918797dc9c6c8d49b914468887d9ab3175d23108e77ceb0e72d9c36fd06793d36154e161c30ef259b355b0b9c76494b20e4f3294cfb7a9fa6f7474700ffebed8ae577ca7e21c14eb922f55e1b7a6665b4c0e103a5fe6ebdaf5bfff38688c6bb1862dae7baf291c9a3af658f3f56606d57a43b7d6ad29a50f36f8a689870d37bc36ff95b7d35f77cddbb0cf3d362cd54bf94e5673c9e9730dca18baa98abf7d7c72656043b9d9d8b75ed3d3a0e42e7eecfd636c0b2127880d34348e102a5dad4db9feccc619de5398f2da2e6518df2f5def35ce34dd28c38619de4b56da60e49e7342de81d1818d32acf4b7606c4d9f6d7ccf0619d846775fe5588bdbfc3d9bfe22ef386c8c815974a5d3cddfe8f69d11908ed0b4210619d5af6fd3495e4b361506e7d55832b5fab3ad5e68d80003eb726dd6a2bbd7b66be30b2fa532c5d163ecb664dbf0428b531f6bc59e6b4fbae58878f3f244d64617d4c3753bdd37dff6ae6d70c1b9ea5beddaa9c55e451b5b804eb6843a1932b93a590b12ae9bfb3c7b2ed9afa1c046165477b96a30ee54eacf9cd1879bcf28c30616225be717e1f6947255ab61e30a915d641032838fa9061d679aaca09473d56e7daa361a36aae09349b798d536c75839ce086c50e14d757236179ffc8febd99802c7f555f9f141edd6f9b121059d90bdc89e7aee35d59e334d9b1b37506e40174c136c44a1b58fcbb5760a1b7c704141a373fb4fb272afce1ac8c6137c49572bca6fb229b662c309923bb6bf155df5b79bc03aaa38bf59573b644a85096f4ddee8aa38b2c9f28996d0a62eb7fa96f27e3347021b4a70ec456dff166cf91246ce347d8c708b689a6e4cd3e8d94612266faba7982bfdd88f845dc533f6b37b330927679a5e42a3696a368ef0a67cc776be1675292639d3d462c308bead5ded940a97542cc5b051048610fa5a50e16bb97c114142a6dfea298c4f192b8e1095d107e1616308f2ed832baea5903d462804a6de3f29598c2fd95c425a6c04e139de656df09935291f107c726bde1aaf9eec358f875982f8b0f183d9dcd65caedf526c31e803f664b3f54af5e2dc680185764c93a805c4367a209fb352b2a57afd0c3b04367810277b1ed5ba075d6f836163076eaae9b1f58a51d963d6c1f72aa91efcb5ed5fe9c8658cd08f7ca8c0460ea436f8e453bf4bd731c9d978f81322e35b5e8488306ab08103d9eeea6b42d56c76eb1b48d9e642ed259f0db6b58ddd94c18e30be5703d6e294ebbdb35bed6f630ddea9a2dbd7362aa5d8b241831763537652fd955bebf3216e196263062c95fd0a6bb429578ceb396e6710421aa8bbb596726f1d006600db728f1f93fab05d330064e0a6f74a7eddbb5af406400c9863d9cddb1a43f8d1bde23538d5ba05dd4d6657f07aea1a3ab9dbed582bba25bfc6506e94ddebac68c5d8edeb722725bbb80aa8d66ba89c8baaa53aa98a159594aa637bd6bc5aa5425d8bdfd65ccb3143d7a8884bd9d79c52a9e626cb5330d5b0595b7ced56d74cf1f6bd776abee55e0567299e36665eea373eab6227a4804df152f6fc1c8bf1b551acd662eba51ae408574d513cc6dfb45f53cfe3921d8a7fb329b7df7d2d23645044a80cff5964acdb74fc0997ab5d6beb25d5a9e6279e9070b94af7abb313aa9d54ab717ceb4c2ac70925f97954b0d9644deeda848caa60542fee7bc3239c6882cdc851cae5742e55fc32b17ad75b7c3abfc929212696699b4a1d6b0e3ea9f4e412f1d9ea9573d7615b762796d065d9cfcda254cf155622c2f970b694cc99fd494af89c0c426e4af9bfa3da54e16412dbd0bf397ef1ed7a268957ae59d5b1e922c1df1a9ccc9a3f24a09cafe1742bba545f6dbd7c18282bf4faf261a028144e1ee19a5af3a95dae7a5fb5235c3b85fdbddcb369ab46a8b75585ecb962061923d85c8fcdf6f0e382d2d522fc355eb6ae2bcef5d43c51c4af7cd32d85ac4fadbf9344b8a750a5718288b8af57734cbbbd77b94334f6d699ee72ffb6551b8259640aa5bfe7f98ef50984a8b101119c1442a374f2d5fb235452d70921d46bba9441758ce1543e885510c2658c29782288d5765f7b709f922ab2c81f325084a81c3909c44ae8eb3f6373f3ad8e67a0ac3050340c95918f229c00c29952b778bdaeb673f11f5eb53d3a6427739cf861c5d56464cadfdf4967f1a40f6b7673d89a7b2b3adf75c207d7bb4fa5f6bafea618679a5a70b2079fbc1ac635b54906795b4ef400d72e6ef139d83a27d43c48d7ba5daf97f37937c78343f7e8efc9279fa97a9b933bb883cdd63bc89474aa393b30c66283ec5f8bfb58a51a277550733e29196ba67490704506dd3ad774adc3149ccc617e84d05b73ef26f477393cb73e7f0d36351536a6829338c8d56eaaf5a074fce4370a4ee0f053be7f72a977915f6b6f68eb58fe736ed55d33ba81c17d1fe33f84fafa601bfab94d772fae8eebde6c60add521d3b6183b57bf86d53aae7ecbe691b7e39fa80136275f944b9b3d76cdb59ca461a1bfa7df2ce57bbc7c714ed0e04ac6de085d83ecf8b19333c88e10bec80b7b4a19a7094eccf0715fbbc80b7d36fb9e9461a34ad9bb4b3d3e38219f9061617bba2cd5b579d478320656ce977c7eab9b826b9d88613e5552fd922caaf75afae783a8f84918d6f37e8f9fbeb97129f58213302ca66c196c76e6b91ae44cd30d964ec33f1f248d932f3cd5674aa963703d85ee85b854fbcbd8723d5515f538e94273d5c95c2e3bee8ecb9926314eb8c0f199b6f7d0a546c5cb99a655649a54364c38d98253c7988270fd3f8b629c68c17194b1c5c6de8a6c7f716edcd031068a0e14212a22169c64c1f1ae8acb9e54eba97abac609161aefab8e537d35738e85a6e9c6c9151c5c2ee58c132bf06f63dfd1a1946f14fa222fa191e8fb834325f4d3b431c24915e07bab41f8b62977d08e132af442c898bfe85c2dd75ed514e053a8a4001963578d57e3fe283d0acfcd979d5b4bc5dd0d85f6ec257cadf4df523e9ff05a3a15f79b35e6e48c2a3871027b0ab5096fb997a298a04c2dd76b25fb12a6da7576b7aa5fd932254857b94eb1e8daf9a772a6698c93243c6e9d1a37b276ac30aee00409dabbb0a9ce7f12ae96ca8393234c5da9afdd628a95af75628426612f29a5365b6db8f4a408ec57f3f51e5cfc9863f284084d5fbb72f77a32048fcd98aafaa60cb2b7d21321f46cc820bbe794aed7d64910f6293c01c28bb275e3a96dbd5cfa3f80303ef7facfb187cda53af1014357d65d6bf5c275c699a61e273d806e9df0e0b975b2839ef197ddafd5ad1b6c9c131dfc52b7af968bfbfabd6a39c941dbe993c5a80ac938c1018b1a7f27b77273c679e3e406ebd6890dd8b5afe822b7a9de47118f931a38b74ed6606d9dd06045a9a6f2b753a7afc738d3f4819319c8872ab219dbdae59a82273260dbdc72799b12ae9a4bc7490c542d9d709b8bce62e4a6afd067ddefde846d63f7a70c1357fc47f6f6e99b2fc6c6201a26ad908fa936d9f94b570d95234d5851009355b8e50eaae51c94b2bd9b2f305185da07b7e37aafcbd9480b4c52a15e7bb8266bffa8d0b53ad7771fd43823ef30398572bbc3f61864be1eaa8929a03f9f70a73f95733f60528a5db0559d52b7ec99531c11f708fdc887ca9b90e2db6a8d75bda9be96e328e25aad397d5faca5833112818070461d344e60228ad63bd56c6f2dc9946bea1df4c324144dcdb6bc975255a9b371a6699a6ebccc4ee84d40d19afb15ddb58732ba959f78deba4c65c77e261f7a82a96f4b05dfb59eca9b4927e4942e9bba52dfff6033e1c45c87aa99f967836fe526de6357d34df57eaec558c74413ec9f7674f5edb2ed9c8149265c2d36593675aa74b262e2e3d3673e57fec69f6f7289189b9a4cee7c763ea57a31b1046cb017eca77223ffc74ac038e1fbe68de15ab52425e47bba9edffcc74dba9dc45adf643737f7ab9ad9c544128da9f994be18f5634355c42412fcefbb75aaf5cdc9ff368184721bfbd73b089d1fec17983cc2b18db22d0961844ae9638189239cb98acd5d3167ff4c794c1a11254fffdfa61ae5dba54c18b10aaac5d8bf315ba5b10b268bd8c9d45227dd9b93a97445b48c51b2a50e7fa382cd2411afb239c96f2de7e454ca041112ce65ce4fa762ab2df8017538a38e9112981c62a7f2d99a7c5d8bc9a7268660c9ecd6f6375988b8fecd9dbe185bddc7533021c42aedf5ea3e2a7f6e55104c06b196adb576a9a5a03be904b1534e664c4990e803d27103baf008638c6992be790981589e45e5c524106e19329cf0d5d4e9f843a0cde8578e80727c7fc898a62320b9f9e6d0e6fb0302c304102b97d25ebd0f5bcaa85ce61fde52baf059b7e1f62f3fb47fe9ec3db37cf685441ad487e9915dea54b339a8bc558c98f0212a97ff3aae53ea142b8a4a0e4cf6d0625b50457f2adf3ef7c0440fed2c5b4fb9205ce85ecbc3ce397f63740ccee7b6f940d981091edacff8af4cd52e9513dec1d78351b263f57a49e5941de26aff820fb63eb8da12c3a40eebe3bbd92fd9c3b1811c1b5021c3840e8eb5e55517955cd6aac8309983c286ab62dc9f3f9bba81891cdc495eefa7f6ea5acc95c1240e11b6e5f5e9fc9a4ba5b0600207a62ed5934b5df9f26d2698bce1b5630599aa62be73b5891bd62da614ca29dd7ceb6fd2066d4aadfeb7c712ca1e266cf8e8714a65baae3ce5a481c91ac0305183d334345597628286a8ea523487c9199c0e1333c0dda529243029c35275292664505597623286a8d4a50c3111c3aaba14139884012a753e4cc0b0144ee6625c52fe2a9d265fd8367f75f9daa8e67bb5851628981c9878817dfe43a996fc7f7f5dd8b6b677a7ca0715648e0bd1edd3c8be0cb9db922930d9c206343f3e7478c0440b1c30c9426c4ca90916a4648fa18b0b3e35e563ce8f5c4cae20958a2efa732ddbfeb315369d161c40342655f8fe803e9b4e0b8eef0f68022654688d9553e776c8fc3a857632b2f642b72ed78b52a8804914d69371a7dbf60ce1bb9a40414dc9aa9eb725c7a79e600113273037e95e1737d7feba9ab04e6e8453be19df4a284d98d069c181061916305982f2f6f075b787bdfd20679a6efc88313330518274725735d89c539155e34cd366f4923049c2eb2bc74c41e55cdd3b24c009a3caf554b3d2f87f84f6b637b25fadeb49e8739a4c8cd06ae35b8f3175f1e36a264568fef1ddb6d52bfebf3621823bb63eb673ee19734d8e7e65f4214881c91058b257bfd8f74b7795f7487e828910d88bfb9a5bcf3775fe73a6298849107af995cdb57a1bced580b0b2c2423c60f283255dc3edd75c3f83a21ba32360ac98f880fde475ece1e3a6265b8ec7c39b0d67d4f2de263d1099f0a05b8bbbdca05cdaa6c90e1afc856dbd6c50f2be9be840417fe7cee56ae66e2a931cb04655513219e352ab452f98e0602aa9229bf0b5d46f4f99dce0c5ffc6dbcdace1fb37b181c6a406ae997acf27e57c0f252382c91adc6c327eb1753fe946604203f7a054e80a2ac954130181381eefe8c064066bbe365f49c5363f027dd844061130898173bdbae9c235a3b7e75e461d2d94bc422db7c84dfeecfdb84a54e28a660d19b3fe83102e47ce34d1a0a4156ab957c20ac7cefc962b952bc25f46f17858078aca34619850b28a8d044a54a1a25cddafcce692539553c62b49451625a870873ad5b7d80feabec599a6354a4e115dafdd06d56cd6375d85838412532ca0a414d0450515db3757f2b6c699a61b64e84011793c3850ce300305659a6450428ab89cf972d3cd655637507aa8106990472aa16414082811c55b55cddcbeb6a7e27425a1184009282464dee9d1bdc7e93a4a3e01db599f35f7604b8fadc4130928e944a70507875c702ca084134bb177d19fb16657d039dedf1244966c02aa35d7c25f8c1b5b3372b428d1847317a5f35e6c2e6e1b85f8c8414926de82dca693136383124cb4b6e07b6cb262961cfd86080b259750f3b7d594bf2f9bb9bf28b18474cf93e5daf60d279754e2e972c3b5aea29a0c42ce34857c534209f5ac92cde9b3a56364533209ef5ffbd62bd7a96c55680525925805dfa5c2c762d3a9be2412daeea6e3e5fa1a9bde5c4a20c10a4677ddf1fdbb28f711ac9a94aede7b6ddb3ba23de9abbd164ae94f3e909246f864a7512d674e3eb7e2fce8c32ba31246b466efc1189dbb19ca3646c9229cf57bdaed1c3274ec438a70ddf7c6d0cdd8dac6c79926f78078a0f85069e131543c258958ab2564efd6a3ba32558288e9babebe9f977946a88292434c39dfdac771c528999386604e179cceeffa458568b29b84cba43e6bad49510921d66f6bcee3c6f91add7eb3a7641053ad9f8c4df89433278819f5358f70dfca09670c046c521d43f7989b2fd99c69da885e9ec806342a0104e4764c57636cff309f74cf526d932e76bf182d28f1c3ceb5cdbb8f2753aab93ef04bd798db7ba5fa569c69fa4e48888a90123e3853eb6d2fb84af6d0deb57e83de3ed58baa440f4e3ad4758a6d7431b2e288a132721923c78e1c2579787e56bb3432d5bad6464bf0d0919b1dbfc52fbbd793257770a89a97f96468877fd2359c0fcea5cf6cc3525287b8ebf1bb74d7a754b71094d041d939ca6fddac9be9e34cd31cd63a8d91b1d854dbdd0295c801f28cbe34f6ee7be7f92989437c75183f7a83fa549b1f22257060079b6163a8deb264fe86381d2ad79a2a9f5141ef94b841d95bfe5642e7d84bd9446d78f7a6ae7b8c4e39a996334d2351c7f3a30ec7c866f42b6c702c2a9f3ca7dc9235b4d898ade5d66391f99a256a682f9d9aaee19aae99ae334ad2c03a95b6d854323440c952b96e9fec1a7f0ad140c919e46b775337baf6a662c799a61d9498419735dd5e5dc7ebed96a1cde64f46d7db913d9341fd7f734bc91854d97936a7ef3c99eaa87492e62381248861148320008060bd588302131100303824200f88a3f1b064561b3f140002566c5482522c950aa401511c895114c54010c3300cc2301445218294828e4a4a0056bbd7febacd9b1e852866222e09eed0af701fd0bb862786293ef74001ee6df4b242cdf31bb0f59d4b2b70e07b6f5b7c64a2cbf703d4eb554c2f5d116abdaa82cba56827e95d449557a88d584a5fd0748ce6afb1e7217bffd3c4fa275ebf4ffb07b4f5aaa007aeaf9661a11f3ff88708efd5bdb2aec4f326f2b3ec0db8f202f5d45e5fcadd03da8ee23f067d33477cf8dfa0665d17b1c07810fa1fe0c6f649fcf1873a2f6db89a61bb1b36e444ab22fb98b15117511760f2c4e00b5dbc09567c69c99313909f44cea162c3d1b7ab6b3d502ca5916245bab0127df076b008625eafdf7b7ff5ae76923da8f1423c1f8fa9c00366efea79f1dff3f11ca85c0efd3296eba810ea0af9314f7cdeaf7327d81a0a08d69a3b027c780256841418419e310ef75f82c19ca1d688008691ec2167a8161ff17ce221d8fe47449164015ed18964f30c17fae386891787cfbd476bc1d718d7fb4a08eb57e4c42c018a30a069d8f9ad0ac765d54a5182fefe8ba703a706abeea0822022ae3f731761af34cfee216b61e7dab06e090661c6ed3fa40f348876c4c1ccd9a05fd852ba8358c3afe40a699d348451032bae174ecab05eae2ea1454c23d6f46f485c577004729be4fd1ac692f065b379ab792ff424a153878461fe47d2f586cc2e7af10d977b4a2b7fa303a58de5515a1bd306a04eaa067fcf5e1184c6a9bf4decdac4654aeb5766e4e4be1485fb52b4f9a9a82caa3c3c9f17ccb50d20943fa4373153c76c6dadac29c2615b3728dfbd00679b71e836c39a146982af55d2a6c6363f839cba2fe4be8968279ebe806c7e5e9eea297a5d1e25e665fd7a4656e6a8e8c9ffced64e1544a67cd96e1457702a6d479aef1b3e11d0b9cf7cf0a35579751f5003264a4bdf8b8f554c84d32809feefb8059fe41a84c9ed2a65c0e1891dd2921d412461b0ec3d42ace602dbd651ef94f41a3fca5996201ad3d7a5ec2e4147c742fc588a736cea08acce850a8227e3bb2f4a2c5300c665ec4729183d00f52731f28ea0d5d7ddb939fd0e211038c860508a7d69afa67612bc61d426b55b959f72597aed7ef04fff7c1562a6ecb0f9bd307e8100c0d618cf49fc08666b348079327e2b304cde2cfda5d197afe23660fdc4d3576facde28e0c7981439eb750fa37a84840e8c69133c8004654dccb6e8000cd99340339f7c71323740d985cb02e9f2ef4353ba3a04f4e2c6e29c03bc9177e8feacada17a86452024cbe72223ba07f4b6d9ed832b15da828a9defe9d7fca3c64bc6ca54a6830cba2108b9bbc9f379ab084d252c04033ceea21f901f09e33efb919438bc2dd3f79d8bbc7bb2a5da1186990039fb7c4efcd8fcfc66415bebc4b4fd2a6a65c9ce9c11d03902e2454981e62ae6795987d2729958b436df56460d8ee96d5136a8c91b696b9cdf2f0630f46bc1d70514d0a96d7fe5b82350391020c2fb4ee67bf0dca11b005ed3173a31552d4d36986ce67237cb68524111ba798971f3158615e18294d2d89e8158b503e008ba684fcfc91e105c1f71ef8d7b2559c07342121e39b6a9c473b11927d16ed2364258eee42aea36499b9a4dca60de528d2e4e5c024f4950e69f43f818ed2627e0eea005adb311be44664976b3e1ceb8e1eaa99a3171fc8af9ead60998782296b419736ac85c4618b160791ed1a2777e27ad02bb54d971bd12e9fa5eb2f358d33493e48a351a632f36b06f40e9ea442aeec02561e4dc40744c6e23612f8c333e5a1b1bb5ea61886c4e2076cd51c14ece6b54710b150870e3d1252cd3cbccc40bf142be71a9ad4c605691101491f32b4fb333a67a626a72349ed579129b774329c518e22d9ccb680ccae10f638b8ed094367971bbde9547f368e6c1f1fd878593591820455b8510a5f35ad32603df2c5a48ead1cc0377b0303bba54b69cccfd3afba88660a117a107d126babdae7c3850b0cd95d7e5975db47c39ced3397c7c5675db929bb679d24733892c01846bc2e33cdff7e847150839bcc5ae0e9e5017a934a522d09ea249e11ac6f936b77503f362c2921ec28925b0bfbeeadb954a0ef400c95808d0cfd28dc56664cfbcc1a480ecf1a579efcb44b567f8eaaada24f49cc7c35844eda4c39b90347afd2d188bef65926c3f5b973943d7925966ae9da8bc5973d6f5b399f8edef9ed776a851b1e21e1197070e344cc59714eca9d86795ee6264fa7689eb22ec30e10de3161861307c7f27d2db48b1f69d15e489cf14eaffc149e109df1839762c97871c79ec8add105820cb0f7e7b624d375c305d720f42a8348522569d58e886fe66d356b8ceee9962c57cc5b946e8052356b387876333372f64582271b09731eb8571d6d565f58fa386d6df91619a23eeb05b355ff21bb779c9875beb50aaf24cf86021462825df62570782047bd4f1a53be225220085cd25b9bba87d1680aa1db365e9edd233d71ec249793e18d5a1c199c2bcc18437e369c3bcc014156c86acee170b3e6feb7ea5f435897c67c510bd59b6d51955b664c056b490341ccdd42b4271de07ececb3a7e97d5c81f9b5b5563a6ce88c38f54546d76d8e2225008efe476b333f0ae40d2e7617f8bba106cca27975a29493c73b7fdd89242cbb8bf2b280386a066f26da71a13c2d791d423f3b8719be8c01a6913b59a3eb543f67a66765c871263a9b0fe3f1c0ad4939b79359546260da05dd847c5aa2f62087844e7a82d8a95bba3f87b4da7ae68a34d4b58307581fc509c9d1cec20578555f852c45f6d2546d86afc197c6e32f68963388160111c3282b9e8acc17154f5d9a342f677bce02f8fab403e196882fcd3e941ada82825c21f600c71895dbb46cd4f2112f3ff50d7154f572591c26f84fc5b1634beb89e31bef8dffb578ba7cb7fcb7b7d20f3bfb7b805e8b2ea81c273665ba85127aa953b6873a9434ad4c494a96f6270a2e0b15608f6f93f7e4cef58465c3ce738535186a3ea536ccc25a01180c4ffa56044f32cd1c6778bd6e734efbc99cae188fe7f608d4932894b421dbe029553603c2df9dd0fe7a8f63757040faf8c4debd6490a9faf1d99063c0a45c011c8ecf2d3a50ed2222722d881b80d51557a10a8e7a4320aade4526eceec6be8d431eae24f0bcce9bb0f51a423d10b921cd5f5a29fc34af3e1f345df49396cc8e5deebd93ed4836afef689d8f37d69d9a26c33b2f6f1c6e9784ff8fe91eb69a0618a6ca8273d6a4e20c19401e682c83cb1780de9afaf38885563348f8cd5a520ec490fe4331de2db369d85cd5a55d7e14429538844da98d62516ef6de97d48d96008a238e97dc792e8c13a5bb02ee421697b2a7c29692a61b9a5425025c41f8c3f936fc387a29d90570ec80b9a07030450b2b7ba698aeb43a75015108b8e30d29f112e381fd3f924afdf0cacdda0d11920902cb30ceaa74b9a9db95aa25cc1b749d00bbf4ec97036c9859a02e512ab3f591a4240738b4882f029ab85e0506731bdd70b6b5e1c293ff32135bf9614cd57d3d0b1384061b59b6fe77fa0ad6cb9fe10c5f57efd27339307efb7c0bed617a18344bc45b9381e78323ae0eb8ba3524636c4dc3fa86c02ef20c5649283b9e13d8b9f84a63c86080d6676290c2002088a56666cbcd1fdd97e8312e420491e8ee1a05c820e37ad37c74a08ce115e43be29319e4ca20210be9bb91867524eba1b6f98261c4738b2db8595c5828691d075cd9e81e76e503b3f77dc8cf7777b5b55d3dcf62f428b8b68b7f0a0ced4bc1f34eeb9b9b9cc9e8843c659f9f17cdac5d3efe9ddc3b3d1243a26817cb6bc34a23909b5324c2d82602837150295bed40b52af9404cce4bf7b994fb250bdafdbabb856ef66c5dcc1b3663493cde51d858c7e3d4e0901c2980ddff8413c9f2ced965a24465bd05a1f011eb565de53c2a6398ca59ba2758ba137c3d9c6f4fa0d069b35c17795c0efeb6c5dce0a8a308bfe5581d20c4aa4bafdcdab1fd75a97812533fe809e991444183b0d9d19215600d855e4e3e0e04f2ea9a0700ae240f9d0e3bf64622cf48b7fbf760bcd749f0cd833ac13522614f9cae81e4cdf5de751aef9df0bb3240e4478fde17c97c4668b92daf0a0029419f70c22cdd05120d771faf2722f80bc4d381a1b63f12cd219e17c685605cea58bb624f74a28ccd3f74ceb618958825b06c37f81700ed54f73a4edd523f05de755bb5c80769c929dd001af3dbb079a1bddeadd7e44a645f36af8be659a0098705be7b305c9eff9a98c9ba98b221987c908039b65aa9a045cbd43a16f7892090c1d7e7ac4ba398fb8f3129fae0bc0622a418863a89103788f9eb777e3f8586fb1aeffb0482149a2e4dd0713b0886b6ea74f6181c77315a8a15dcd926983f2b80d9ce0b0cbc6abe46de122ba24f03a1dbafb839637e0406cba1aa1ff4f81c330d19ffca831758c4c154482bbce448385582e844757476f6fe66ed94ca74ace53769970b0c2323d0895cb28e19843d123abe0395de70d63f629c4b5abfbd38101a3cce2969f37cc0dc1299329186536201e29644fa107a5ad41532ea32d64d291bd7bfd5081e9a6ab184260733ad97816db48b4c2ac2cd89f080bbb640db4ef3abc285dd6ad62f9800fa69a5896a66adaa376009ecd3da35ab99eeed566050edc599998af0c4a63455e58f4a070fea0b428ed29a2e0eaab49bfb419fdc28ec350401e556058341a569a45d043b13eabaf0b95eb5afc3b71f28f4bdcb3e15c356280057cea55e70ce1d82ffa40b63c7a8399f4af32052d65ba0111c962c1fcf9c455f586a290aac5800e32206b705c632033ed14f82848288194ad251cc1132b4510219a2eb72893a62551dfab3655120597b945337b54a06d818f1fc2a15a88904455cd57c114bab382435723634f91b497f8d71059062e4f57ae8e1b2ff48d2e173adb130edd019155e70d6cfcac7fde4a99356d95acb3a7297fada2a27d53203adcc1605d58c22689bad1cb9fd42add90774c128fdcafae99f86f1aaf3ab570a3456ae87394132de4b8b9639c36eedaaaf7340e63d0f74a064de884dd4af480dd7d33b26028c9ed015688515222aa42b62bde3fa91dfb345bdb2c39e65d30b98e63f1bbac1cafe4a46382f6fdab4bcca9e23174bb8b3b6f467e82ca5565cb2895b6455a242650d9d0bd458251a30d9cd4ff86787e8b2a43b5073ce70e36653201df104a3222c85ce1b5d2865f4ab28b741055da304528d6cedd54f6f3406786e63451f4dca69bb2092bcd68ae2a5ce4c37bc2fdb6815528eb05426bf7ba4167e3fd64a73e5f83177a58f768bb6a4822d0df9770a73e5228670f52de88e4a442d1882f00b9d9bc1220ac5e3f023cc46385629359476319f1aa32478ade6be86e52864aed640f602dde32d74bcdbbb9012244bcaebc50904efccd9f24299c8c3fd1291ef9191def0a48f5e3df414cb5ac2ad3c8d75a03cc330bd58f7f43f1598f5a6b36db3483e803453b42b3bb7707a666f928ed4c139100d1cb48b6f9cb89b40026946f162679d61645729fd20501678ed00ac0e9cdf806bfec59b64fda986f684555c0a9f8f142fb6cab3ac4f2f52912ca75e6e844c33d783650cb60a55353885debcb018bc28c2de4a785461cda51da4e10fbef1e58742446c9dc3dfc0d3db95d010f692eb9e2c294deb344115b5f733efe051c299083656f99a9d8e763d7e40d8b09aace9ea4ae2a28cfebf2df36d4055e8fc94c10114eb64ed57072e17f752e413b2881dda73e018948aaf5324e4a1386c7801ebdc75862b6a91be1baddfdaf058f446b7cfe7aeced0b4ad6ecc1178a1c1d8af478f6d47f28325c0daeb4568ca25c31cd4e878ced9a58d85d0ee5652e0142b48c1188b255c4068f2db72e78ba62c7987ec609795d28800570795472cd92210a0f52c610c4ce0408450d86e32fb0c10b6084800e2b427981da9a204f31ad21805743d48beb93729df37af51cbcd850fcef3c2c9aa1c36b060d7e871d89fe969fe453e18927baa429ff92dbfc3dd4d5b3f855ea07ff6e35311aac5f4457534ad85b2f81d7d19750631698c04cb579afada9bcb5a55c2961c84c099715cb840ceef76429fe9e736d6a20a944b65e38b201ec12a2acc644c188fb87f2082f3f6016d760f3e5cefff6864b8a9ff895a5af39503278c0b0c846fd0ac30032001beff06b167807ee71d4bcc41309acf1d2c8f702ff336af96f2db4abfce97bf8a1e5c364499f6328a6c61df1c1ce57f8b66ea115a584d985eb83bce45a3bc9d8a038e75dbff354e56a542a414b5ff1861a68a42cf8624d53790fde1d69c6cadf8ad68eab9d14635d78ce496d54da9ee0001ef3124d0ee50b34ce8185443249fae82cc267f14cc6212643db05b2db9ca53134973c0769918ad513ad6fb21fc90d2d5f26c74b195a7f49322315d218d666a747b852deb6456536d7c0e2cd0afc96c363faf93a963fb8cf3f416075c58d1684dbdb72389b8319ab1deb15a37455b8bd369e43ac29c91fb9fe03cc682709998235d22d7037c305fded2f27e83c1e46b9775848ee80d4ad6037f240a3eb53f7276bf9f6bc089895b0cd973cf0cc8adbf0637502f0d321b8a628c3ce7af8f6d5f451a2925aee4bef24c6b60742b993632adabc9a49577c5e0add46983ad4eafb8a7b5c26e76408937ede32b3200ba9099cca4a8e9065b255dc931785bc76e186f0e126070c56de9c75e5c1f55d099adcea754541907c6e1ba7d0746c18d5b3c503010fbb0938022dc57b1b2b34700fe04c9b85b55d763706eb268de49c18bc79a17ee6d795ac1b59037495c239b6902944ff891d1bf3454f7f73dd8d8a2d5e2251d41a7465ff00eea572150be5cd7792e1db4d6c9f3c86148197289a0e4d9d0ca26bcfbb89b29227d36fcba2577422c5998b77368f9515c8ddcc9f27a288ecad925408dd479183835dfb5b32fc26773bca2f80330ec9f4c6cee1c206ca9d9cc36e495b4b1567ebcd23fd51fb8abf38699edb01d0461ea6cd961624201737d85e4d70c220cbd523ae30881b229ecdb671be1ede5b01097adef96f3a02de525a16744120a0f43c55a65aff09eddc8c432865eaa643674aef5c70f0f3276b17cf254af253f0f87b1df914d0372b85de9ddf0fa7df35e220cc2185fd4f6def230a3a1b3d2bc971514bd6665f0ba5a951d5039138ea7342743d1395193948f9ab4f50168c8f65742dfaf98860e395a9e5e5f85e3512b1cf7c1b836511aa23f5b4c706322a15b97520ffda2ef9b27632b7724435a8ca00d937df0e1087aa92c0d2919d7ae1924fd98481088ae4f25127352abba0ca52977e099cc38b29f04bae9df9bf59e0cd513fbc04549d733ea84f7b5eed4c03e906672948d2c895d9ebf9eda8cb698c292c14b7aeafca8480e772d55ea42100590e3ca51c45eab4751788400131edd3913e91171dfa7b6fa3b6bdad3ebf9b5cc0724bd12fc19cd4c6247b43565ca552b4b387b7078bfb11166af721f5d234389f69329372879172144d059724223dcca07f5269e9bfaceed9850af1c535b78a3cabb8a933107c0d6c2c3be2da5c05160981f70787a9244715fdf44853ac03297be4729f59e7753e317490f205487af383a10bb62cbe9e01ab3af45a5bd2167a691eb2f004aa655adcffb1c4b8cb393b3b7ab17e8ee7dbc328865f92ee33043d5da3cfb3b3f02739a9edf738ca86ebd1619be9fff81e4ac896877a020dbdedff4c5f01e80e21f204d630417da545964d89f97ef628a154ddfc057176d16c7c34d94ee5b254bc66e7e3b86addac472bb37ca967f6d4a286ba6c52341343bd169a2e549d7f23c6f21d1a5214c1ae84e00cb418a23a732a5f2d0fc982a4848b8f7d487b3e79b14f4d148870f1ab78a1ece61ee5187d9dd7cba8e976e80d4f476dd836f1bd30dc311db0795da0e68e753085a10881ccc4f220a3760452d1750539c6d494249821edd95c51894a4ab6c648fc684e664d1cfd3c04c47651ff6e075bae0a2bfe6ac811675f3b28762c6085403f97823e4676c78d16adc97a451e7e9314aea78cfd1a404c5b858bddc1d70761f879d7cf9f0200b4e53b036211128452a0ebdce5efa0c474d0f279baa5d00827bc0a0d372ba48d86015fecf2e28a3ba73817779b51474680aa8ee6bac6cf2612df43cb2a9003fbecc63706b9120e6801e3a5032a7c83b15dc55df6de60e1d7a961f54d8eda65641a21c6e0603c0610072a697a2426219c7e5914c2b1311f436923b9c4c61c497ace842c1211cbabe1b161f2b48b1a1b62dcf13db15a809cefef1e376fa5faa88337cbc2e58245772a5d7ac6096e329578a0f05428c87e67aa646d55a4208c80a92e8c7529cc295792d236e989e8a79031ffcc2abf1e3dcf539a316cd9a4e41b0a890c00feef67eb12ee1344adabf6279b18069e528d706842b673e76608710b4096108b71e213a0233669694b0421279f7ba5e8bdb2e0a077e02655f89512a7f2c9d72675b1197a333d2b020c0cbfbdb05169ddd5a3dcfa00d370499e1e32f9a44f4c761f07f103042b0ba4ada254576c384b4e4ce13a561c4ca23ed5979c4db17d055c3ef67855c9e42ba7f1f262c0304ad0ad16f1b44afcf3a965dcd5dc37af7f6010310b52f035594aa7cc443198a0567f06e929193e7577f08d2035ffb3f192677bf1608b5944cdcf5bf1b76afbf6814ce5fe980360c4c3bcbd5208164baa582ce20b7708035a329e336cff803bfb6533426d8db27067a87969c758639508b51c575619a04d4cf0671d1b6a6b8201abdb08e958cc2f583b394177adb02dcb3825fe1a79671ef901302dc2b5813cbc4ec89ed2422d233f8b508eed13548f1d34f0f6ca022661846ad1592207c0403475afd918d0ec3fd912162de16940bb0c66c00a945d6956feb6f71787832e10d8b4a99db98612b9f31ac16c7e9990513c455a300e98c5475be95daabe1a383f65efb347cf4d7507633b3c0638d2618de8b96c2464a35168ae3af12068071cb25bafa54813325736529647e1365402c6d42b76394a59cd18004ba19cb1be221768d5aefaee377ae0deddc5176723b1094da08f36664deba84d89a2f7f187e50ec84ebb9f82bf443ddffd4d38cebd2efe3f6fd0e3ff65643a19fc67a06df6676758e77394b5efa701ff779802a4a24acb96c609ca854f914f2ab730b6ba1cc950c5ab2c2e2533a14962ec38cf64e7b17a18a540c35bfdbeab1d1c9d6bfeccc77f8f6152534a06e1a39e011da075b24247536a83fa770df3fd870d6ebbfb3746d743ea5fb393e36d64e7def0a3d98a3ecf1f891ca7051c51a56bd86ac06f4210c491a6f20b15e2b4f41e9b067b609d38d85fbe64ad66ea8f8e4dacaf2a949026c3dcb81824d23b09f7f945c2006caad179dda954f0caea2bdabde1f2fc8721bb55362d85c880a0b5b97e1c12ca11cc851c039f4872c3bc1bcd726b618d04d490515f2f4832d861beda2b46767f7c78815a680ac6552112f4dc695cb68b31e41138fdac02b6e127c97230b43dded4c17a3356ed14de8c5944017a6f8548cc6b728e9d7ae93736aadd296e3167b6b992e77b620c4dd4f8f3c57ab0b807aa53a0f2cd58655f6bc7f518c55fbb904c7d775853896c5df6efb944cc45b1ac900a6fcec015a8cd2cf3e0b37a8d7cc9fe626b12409a515201ff2d407f7e1275b8917e615b23addddcf8335a4995ec96a4a4a8e9b0952d84a483dd0cb80ac515ef4b81e7f34ae82208d2e858b5e45a83c0721e6df809daa84ba524e797b7484e0c073e2aa92eebeb2ae77dbb95237700b1e51dfbabdd48bf3c0054028825f7f2dddc09a7ed08b351182df6a046d357e5b4484ef179ef54d1ec436b7c3217525c6793ad669be5336f8a204b252a830d46b50b782d9d8168c0b538c02ca689f747970be9e52833663a6113c81cb5a97bb432643faca119afe36846cdd35dd322a56ecb4d863c6b78f8ef88abee895a1635f6855b72fea7b5c24e0704eec11f9a03dcb01604e2ee685b6d0c193483c40602eba0f08481abc3875a64f654d2497267e949d2eae05163a87948baee49db8d0414bff971a6c07c082218065828d1e64bbf3527af6e4003f5a9e1c33d26e79a1411203408e2589c2763d554084281f41873cd2955929bbc74361ff557707d854d2e2441d33d1c99d6953401c83b7e8324e5ea13151e75a99f7623e4468e0a2d9d42bc021ecbee917f9497db9c8c1a8f230b231e9c9c3b5c08c989aef7ab11ff3e30c5e175c4d811fd0edea18913869383ca74ffdf4685daa622d4820be0dff69999428544c9e0498068dc8c74a780d4ec7874ac7e27666c90c143fa8cc634deb5842e046aece96b0cd4a21a351ac5734c6a00a7cecf46b09fe19e5a966a6a26ac9012367781a2745ff77f4542e5c3ee2584728700598dbb39765fb1ec38f05f3e58257d0af13f16f4614bc5cc232e56b91339e9aeda39a3e8776802e7de4bd16bbedabcf5292c9ccd8f2db51fefffcf1a861e50db666d89aef115cef4b8c08852e5bfceee651e4459ff4a06bb8d8adbfd13b9927297d9203c09384dcaf9b11ca2109bd15dadf0002a928b12313f5faba5975efa3f8b37a5a315950772668edcaaa00a5a6236f87c7c05e82ad43c8186b1dbf11c4384ed4189bfaaefac5cfdfa9f7f7709b4ae5662a22a1e691dca8859fa9bf4f60b3e4773c506a4cb97dceaf1065e3fdc36456dbb11b7785b7cf68d12a601fc68dc1d76c12f340e2eeb21c258f8987a90dc01ab0dd06200f0094a4be95a912621fbe22733cb1c69fac0fc0a3d78155f9d7d13b41a3316e6e5e726f9244f40719e5eadefa0208a4a5102f362800c236e6253e52b37f5f243ef743449994f337684ff413b8b4af488080e55d6d4d9c3c708c81ba229e8c9a06ce0d1e23ba7c870729774f3a8059c3ec05262090997cdc34e36ca0a98675009256f430d8257695a7dd32a283696ae6b04980508f68aef30bd0307de0ca509abb14c8f7b8435d20b8d62e5e58f79e3331c0b02404335ae2adc188f1260632686e6763f56bfba7b000931fd3f2569a0591dc17a0bd935710f0de2df26806a870a56cfdb20f21f59cc4dcc43b0d406ffe9344eefacfd38320b2f85b358a83ec82efafced0443b386f829acbac45f09c50a8d3cf7639052fc6d2fbd2f1f134beb57f2b6301f8bb6d6cebe236b705625ade394bb1c3096d3379c39d6ee0458243499f5b58e17983446602cc83915b4c4aa70d20dbe7ee46becc348f11123d4ef40e9431faa06fae86db6fda755a21d927bba2ac5581539400cbb1ad35e800737a84fa30b3c01a7af87d812a3e40c6bff909cd913976710be3fbbcc78066bcd5a0f7676cc9f6e2fe216c7e006f792f30eec70146d772b53cd51600e89d6fcbcf1eae612f520576d21fb6e645b5ce114568a7ba7e5bf56d8dcc620735b067321b226af2f74cd567a9064a0715bd8fa1eca27225b388093cc94d44382bfeacf7a9d4dce97605464059df76fd820c2c45fe2e227098f8030cbe9b031823b4d9f92f5da420303101d44ae81cd54d29b5d8b65632a261af0596d0f4e682239d4cc61b4fce0ac1e10b04248114b33328e143011242b504701e132b07eec412b611c30fd4be0b1c44f4040a7763d7690a5bd2fe3dc86fe998b88e00f578fc866a27353978eb49285b84ecd4052a01cb05a8b431afbb96b0552bf883a0dc0de90082d149677400907c435173f1c3259c8282a723b469168256fc66a49af9eb9e382f01e87190a397dffe489a183f0d4a159fdaaa3647291889ddc6f85fe89122db4d99052dc46d9f93da056b108e078bed628bb67ecdc105b033561809dab1cd9b1fc43e80cb0e9a97691e55422f49fc3d45f00b3617a4cd1444178004cabd386806e7062735141460de143da7d5706b0a22dfd3f2b0621a71390f56e75b1150c85e1e94ad2d26adfdad076d64ffaf38cca842013bfd6dbe1bda740d63296ca9426e6ecb67ab455d2e43f220945ec932840cf1221a1606393c1a3916bc0b0ace42c71daa76c146bce95da374cdee20129e2f567ed6ef63089bd277e1085ad17c73cd9d5071a27adb160aea31739aa1fb4025cd1f4c2c999dfb4925d3976ce1b925003d6c02865031d9c30133a62fbfce0483dcb9148d560293d9ac961767a4fcb9bb1ac30ac939a7df4641f74bb79d6d1c624d74e0ccc897c600620039923b602a65c531f7a808d292e07a06fc94bab1c1b858fec5bb19ec66e05eb0be96eeb371443b6d81e8296c200d4ac643eced375850cc2a3df4379cb6ae0fecab7e2c10f1c2e17d0450031dd6470d7d6fe60ddc8c5289215a97a01914c21d5bb6c7707f1e127f1a1e502b9a85c40972d4fbf8313de387cc0d9b1ba1eee3c32136a51107e2629bee5360afb8e0295d71f21ba65bdfb9d7c61be8ee9b960f91a13db1b2074a65208133e6bc49ccb03fd0b0517b854900d84252beae139edec5e7e3869a5b2dd3a5d3252d01e1f49941bccdaa5d8ca350c7d6a228c6143d55b52186c0293a520dede898792eb7ec1939db7df759bc6f3efaad591def6395d1e6f0967ae67d49707def65c55aced1d3a2d7ddaea04fe11a8ce5ce46261017ff41f2329340b51a79450ade3df4adf8dfce93d716b7e340ea4fb36fca262b02b11c6eb2f9942e6f784b92f056cf9f7d4e26ad1c8d0545d7074cc1c789bc380fda2d17b27edc63c9a91237adaa16a702cce2d3bb36640ae3bce34f570e379f50e05b4276a6677654bc98c93888659b6174cb97fafc1141a56be9fc05e48e967d64b3bad5fa28d7a0790fd296eda72a42a45e99ffaeb250108d93ba059988f85db9ccb886de818aad874af6472013e33670fd54412a08dd09eae2f9ba60102d9ea29423961521ceb490a53b3393f1771e7638c85e5c5e54909099b174956a54cff3fa3ce2015f4e8407cd24c28b6b7d9fce7e862712c03a8c895763d0f1ff25868162d4d58bd92cde634e6138f219cc7da15af60e71bbca00afe0c5d754ad54796768aa5cbe18820b28c77404f7d8a3c155684081338fe14557b475c353a9de52ed99a7a8da0230e96d728491638bf0c4efbaf832c8e1b3b274c1b18333f9a4f2b73110e786ccfc3d58bbb12f0539eddc9da23939f8344f16821c3b0a65ae47997c965f3ff592851785e426b1858663b1ce007ea4be385ed299131d329907f0e37be417515d6add83fd80ad57e3036e5577aeacb34c516fd31604c56fec6ff879cd14d1037c5944f9fd7d9f05c165e99e9b07ca6104578b26483b520b92455c7c65cd7a37b07ca99f7ae0a416e25ab49ebf78773dfd2a1c1a45ff812097880427c151f988c86e0044487526b309c85f2eee4c8e82932dfda8c868adb7b40bbc1c23856328acf15e26e269274a16990df89a4f2e060889e3c0971878e47698cc2e965521b0cb7907f297fa6190122a71493fdeea5856451ea44cc2ddb5e7eb5be2cd3a8fa06aa159c3ba85cfe132c871e3055e3dcf5df809ffdf85f968c322584a8001283489c75bbadae07cf0d63da0bbafa1d9755a1eceeb0cfc98f5f62bbb2e8adc804fe073d7e8879a2f674cd69023224249d862d92ec3ef44c131a8dc66726c69fe848d82f36a551c366ee8054c32332839e71727949f898957e9bb73a3d5d2e36d518ce480be419551bcb8b254cb54fcea6582fb7835941806ab86d22ac1faf66220dd70ef92bc534086a8ef3df3b52ed1495981633d1c17796851bedd0b31af9b54077c08940135a2a2024ecaec1520c54e4da5a1df762721014587d0f281023323a423f32a1754893e05f99f3b0bb195236eb30070516848aac5a2441c973618ef0f995973a40900e3860975a5e12387b4b3b710da17468221d7d2082b79003059e74410d3f1198018069ccdfb19d81878ebe3126eed512a8611b00d4110f903c2650e0ec70c1a32d1a3b7b04c96a09bcb320c742e81dce3f0633cd9408314535d08df588d66b6f0e1f6e36fdd4eacee03cf88e434b86531ef94b181ff509cf14941adc024788aea43004b280627d218d2d883875c2cad77014c72f841649b6f34ddee22583c6146791bca2bf8c672f8894dd92076ab9fa2bcd82f3ef735cff1318f137ecbb5655dbee15960ca2751699bf5a98c53d16dde99a1c79c2d31ccf381a79c3e58e0d0cf875bcee3caf37945af3562b6d5dc3a1c97081c718c2e2f0bbb8e9cafa5491c237c5c92e47b4ee8f4a2516f772cab3077b5f07d6f7f208f349419090568830799c0871344800f2788001f4e10013e9c20027c384104c01f9c5f8ed9d0f6bfe8dd7f985274275cf4d6b045f6fee61ec6ec0f58158e514c0fdfca85f5d3cd2f33efa07f2ad9536d9620f31a456559fd52f2ee847e46797f6710dafc50e271de6e07b025efc6b011361bc90e38f7af36c554a939aacfcb519f8b8d5cf75e511ea9eef9748ed9f6fcb464073f65ec73a19e9db8954343cd1a6cdc34dd35cd9dff567abba442c6378b03e5ae98ece207785157e84c35301e3c1a3beffe0d68603e5c9a93bbceefd5e72cacef96d90a1237eb30bf2874bab55f32c0133bac0d4e2468cdcc6d26123af5da7a234dbb7f732d60d129b4e429b8914179fdfd489766c09fe5fffbc807e6cc053aca9d0b04cdcbf29e0a1f8b2bd1f3cd722b94db1d04c6e783b13987f0cfaf6393ae70d76d7f07b6575ae5ada48c7fcd89dd83757b2dd0d5a570d2aa60cec28afe71ffb66c2cd267ee1e8388c7fc4f83e43fc5e94614b75fcee3707299f7835ce7f27d87a3231b864e3a741f54de632c9bb034630325088a666d54f84564bea4251a200286fc74ea41c10f6cc7e7ddf134b79ad84e41e02b76c91a397f316e7b9253fdd87e84ca1d11d991cde5de7d41b5d3503343e279784862d8182ac6d86ee9676362850eb8089931a41bcab7a6ec4a4e39b7a3a76ca3db2722ae2ef1d4fecd696a0dada2c46b9deb2c6d55b4881a4db4e4f2cb71df697dc3233d401680583b9d56d9e63e7a07bb49008b2758bc93a4f94144ab1641dc0042d1384a3837fc6775deb248e26f24f192c3e31cd17005fac004f71d6d8969fb9540c5f2359a37063a1d53e44a29b8592042df4191893a5e65d38d13001f2670f042d7e75bc9c7fcf3f47026e3dbc07a492281c0472509be80f2efbb5d67928dd67e8e7255ff14f1dfe74dea8dbe7f67bfcd6e26aaa78c8225262701d7eb344d818647936e2896c4c6fc6ab38413ff39fab9a09c3dbadca0e0dd80b1f85b828ad1accfc8df95f5710a3e6968d60c60bf18a49a3173f426007cac40b079bceedfe64984cbdc048fefde1ebe7c5a9cc4c7eb2c5ebea7b3cff992c89ae74f880ffab6d59f3f6fd4427f5a19f7b4f3f925e2566d62ec24611e1441645b5a7d4070f5689c0b3e6276904cdfcc9a9e04971a9b785ddefe9763ac94a5521129da60dbbcd95ba2fbfafe4cc21096d7ef287793cfb30cbb8133ec6dca42b5d689d081ad0c32525754ae953f59821ef1994e689e43733ff72965d4a33ca16864e68dd68cf4428b88e6de89e885d84b964d23a2ea5af3ae1fe724a5516c29bfcb16c8629ee0b539e2ebcea63bfe9f9e29656251b14d71f1eead34ef2e912cd54ebd57d40767f72dd53422dd60f273e7750a63a7e367533d508d560084a92ac4540de6ca395a8527007bc41a20ab286b8ab70133f76fb7321872511ffcf66457a8e1ab298b4a99e1c0bfbfd3137eefdf698747d76673a0e1bfabcae3bde724edf188d939b0ff4639f42b48e972216b869b410da83b00dd66c606a95e9faa2d0181e40c2e38cace8c298b057a11b40ab18b2b08dd9c2142f7171b36f70c63d2194b2b53707e688df949ca025146c89a21dbde67eb0efb29f3140c6dedec074a465cac5cd32c375472dc3bb8445b9c1237f9cb20df79e5a8ddfde7d72cccae97396d3b933e2074df1c967f782b9d14a1fd9fa9ab46660f1ee231413ee1d3b2ddbcd97f93b2588807855d05ac7e6c4a93d1dc7bcbe6592d45b12216ed230408372d359e35f0ba2643b54e02365dec4a42dbd6de553be7c1da0d77c1fcd289c7ae098c85ad54134dde0f17985a2f4036ee9f4df5c88011d0ac91e365b35b1fd8152e4eec2fcfe9b18461f32bc364f3acddefaceccc2127a91c6691ebc36cfb93d0b4b8e8a9c432babba8b51a303eb6329db7c6387e84e97fa4dff01679d60cdc984d9350787f8394fb7e7378a2de53b4712200022af07ee926a613372c3ef75b1fb031f5711cc7f48c3319151ccd82d628a712532b16ec579ac61472077578831b119e8020eb64d613161a5b3c33ae7fcd8594573e8fa030cd263fd55cf3f584b96d268514abbb3cabe757366dfc89763f1315b306bf4905d7078d5be78c2aca51ee28646ff9e57238fdc0835811ee1b5c6121115a617cb1847e8c05a26a81b61e8b066a207048dd4ec330d294de090ad91617afc19a3c8666639f1b56fffc18f5dc6010f4b1bb36d21000d09859fe4a31e21bf42a5dcffad064bb974b0d1dab554cec361f1e40584c077000ea671b5c678807ed2970fb3ee084ffc9d4ceaad4db908f0b12a15b4c1a7b67ae0142e3917908502f9cdc7e8e8eaeff671b5381b0e0e9e8da7e49c98307d10cf0f2e11053c7edb024002e95ca83d2411063b7b510238f4a79187abfc2cb2e31c8bcf0a818a8835853017978775df9c8a6cbccb00b47034cd4d7d6b4d30d1a29853a1969b1fb73afa4d6555ea42aaa30369c9f1074d0123ed3e23339fbca29de0de03aac51192d32a99cb0e64eedeb1e93b0f65f2737937a5e228eeddbbacbd45f35ffcc521994d7a46cee598f0cc3757af401c523a59ebc773cd07eb406d25ae1534ed87086b67060b2594cdd76429709b79cd7c0312b21dc625f311b9f918e566321915e2b8699c13a067a31c5f51b06289225d1c0964cdb7c5700b7dd0cdd6396ed76f330749e64321493205594a05de200933b6e51dc8e5a3342e5ab819318bd9fb5e6bd7a20550541ec447967862a45b16e9e2a295ea041745690e01c9a191031201a72fa5462cc2159adec621aa57f42ee3f5525c0eaf70d8e68d72628ceaf38c7e1aa548ce210cf5f0891a915ceb1e832db5ed6415184aa401871c3ccddefd07d853a3eac53885ffd186509c87e542a789504e4903ff155d5c8693ad10e7dc46170be09cc40f94ef33d4794498c546b307ad31e87d26a5e213582d034af8ce42d993cfc444eca6741ed5ffff1e83a749881894b72160331c46281ab80be07b4199308db2efe60c51e48d1a1c245d591795e2ac364d7e996b91294354ba9c791194ccfdcfd8abb95416f4a7cb89c4bb942c8656f3c9b20ee06b17c184159024e487f1eb4eb83b7f250f681952c9cae9f100ff495c72ecbd6a8059843e8f756918ebefe14ecf9a6fb6122056798fb52018f2751b3eb1a065cdf26f1ec562599cedc334592523b3a07aa41943b7fd9da35f40d2a31cde5cb9c1767cdffe983fe86378ac4808f0db927e7e3858c852d98487fc6822194aa70f7d05a5767bb42adf9e33df192b66df5ecd14267275fe15bb31d493ae51f3af6c508e89da03a1c10c72ca2dbfc7386717ef7ad5fb6d964f93f79896c47aa99004f0c1a1f407e40efd2aa145aa1e3d4774cd3d24fc3f4df55f9fdb5c89ec09b4182c8cf3081b304974f4170654ebcb8b26dafd6a36766c8f7a0db4ab662bbf89a4885a1dc12bc50de465d46c59acf54be84623ba45926392a7f7e773a995ec4ad024a6de64972939622c970e4982f1f70efb2484754f0c64be2ee6bfe3660973e656273c4467decef663749dc972984ba7d359ab93c83fa5d228388b269228ebfe5c0c1f7d0280119a57e53e1fcebd58c28bdee553a07b6beaeb2aaba3c3ed4decd0d11c7d85879c53f97aa9b7914284907ec986ae3e4ef9c748c912f2b492b59aed346242e68bb89ffcd345b469a0ab5e88e94711211bd0d25e6fe8263c144efd43105763a5fc566ef7b4f52aaa2207abf609ae8e233ab383966f0aa7de5a44cb32ff6ac5488069ace8a0fce854bb8372240b74d2cd66b8e5c2c143002156c016a2b8580b171a3981d7246663fab4a755341477e0ce1061fb0be78369364dc3ae966adff7d4d170439e53ff1cc069da501cbc64f05668ae163430b70bd23dfe24ce790d0c0694c98300ebd5aad5c0d25d4d5ba4f639b1246303a2b41d7d8fcfad9200c3b98d6d22a941aaed8f48871e195b83d91399f430ccfe5b40e680c2462345288dda78830d0f9212b3c0c1f18235f0127b2150cf97089eb7c0f22658b90fcdf163212bc07f74a13ad7617655f0c306866f80513901960ef64c904747936258d6995c1631284247296a92b659dece2b0ee6a7ed272ac5b8acd793d630c4ec6f0fd74e6eedc0a988db3e691554515b7258e45e9d87966e49caca146eb7b1afd9030d0281035531b70e3f370f2d1efdd436edf19de24fcee10e995f65b176a1ce83cea3155bcb5871fc9ffe1fd95444d580eb4aa9c0ea8c1e441f11623dec104cf88f01ed14eb4e16da7e3302cabedff126bf531b921efb3cd1583dfa6bff6cf0310b568fd8ab39661440085d643259b524d0c6fb8464635cfc5b605b9b8757ac478eec58db37c76b8f0d533975fd86c0f2c560ade2589244fc1c789e0b6c041deab2f9bffef57c17d3fbe5643db704e4440ba3cbf164f3ef573ac437fdb625fbaa889301d718443ab4a516151567c225a1dfa6c45db5ecb237916f8385bce11a553655db88545c5c448a08b72489265416ca8e721ffec7fbcfd3ff76780855758ab3657970ec60bd67fc976fe081387b164eb483bbaf5359a566464aa8bc2fe88c76aa05736cbff78c8e93f8dd82741ac1b825673750514993c59f552774c92a272176f7d9449b86f857835bcea2f5280deed4188649946b676770f13b8df3b8b59eb8e5ce2bf8fddf143d2613ddf71647f8c83cfe5d04ea3885e51b0906b0ed35cf2c663fc4acc138ff305baf40c09797c1fa29d1756f02f239a1c75e983a860e860d279eda5b190f469660b39caa74e43a484e2230e598135e3ebca8f136c0534ceecbebd9c4e075537ed12a18c54e5aeed28a6f7b882ad6aea2eef470351aa5a2ab832dda4f37a4146e46c7c4ada14e57165d67994b57969f53caf0ef135673a5ddcb295103cd5368a67b99d7985d32303fbc0342ebc5d24ad9ba04261c8b2500de496b2efaf1f632de1cd35248f0d0f05d23d5634632b0021f9a9a3f7ffdfeecbc5caac11cc2b0c2ce11c13701a87542aa523047abfaab5cdbca046feaf381575aa9507c9ab20430947f598b44d8b7c30abb6d4598ca34893c70ca5139b23ecd25465e2428b99e2df28e82f732ef37e58951727684bfbf6f767d297c322317e43f49f44aa9fa5aec32c362db41e538ea061553b39e8288025b8f1d2954460f13df9529e9ce7e9a9c40ae705e532b996022b857cf04ca906a857a92736d3d41b751390124ba31970218aa7a57dbb40cb371560a816501247a9837890de38a0aec480c20cd1189730962f126b38e26de117b8f89f2bde8ec44d01e9fdc587842152987bbf2fcb4abc4c98bedca82b82e86947291653678c949243764664a5bbff8bf221437914fc490d71606ff547c2ad590c81c2fe13d9ba8e20d71479ec91d134a4d884f332e8e98f96e7731992816a52429242e198cfee37d5bf97ec307f061fdd5e91685b31e0ce906a3a406f88928448010911dddcf66ccccc2860c4174805baa0994a341d922540e07d4e114ef322e1e79fdee8be3d63e6f716eceaa0bb68091ca5b999ce15a7e6faf913c2a8761069e921b7f50368c54f5847995c940a35219a12822ad76e908b65525a443e74f58d6330e6db2106f12aa145656852fe86d0646a3ad652cd186bef183ba87be28b47a82f4ce0eb95f31bd083098510127bb8d67d98ad00532d106a27c1779e1325635268ca425e181f9975ec710fc55024d89f0a97716260c76db227834337326a8267b58a8b8378a41efb9ef6773e7020e2538e756edf547bd21777727b6538eb72fc61d4ca0cb1a45b67e2e6fd17031abc23764ca80f5dfcd44419e5a489be7e315379144865f315361763f4d1190329e33115a47eea78ae40cf9744ecf72fdf116d6c196dc4d17cd964606d2a73f14fc3805f9ac37ef60588212a7ea6dacf650e4c9da5cb125a39b4da2a277b55f3065d65e1d0f69e4c4dae5076566924cd9daac20ec1f679e435aa861c68c7856d606f085d43110cfc03caebabc0a99ef09df0b102f01b260214315f794a2e81462c988e6eef20e389dfc6152598df0a1520a0a44ad8ef9742770cf10ccc32833100dc5478fd805edc00991a1feca0280a2a0501b973f44ee8af23ca7751e17a8a3dc055d5e1c7987ccc1d692feb6787b5bacdec01b07e4930b23e1e8b0a23241dab05126ee1de641831b4cc73ac86d2404f37809762e26f1ebe4aa8cee95695f7d2910d60c6a6d57afa3d9551df082b5d880bfaa7e2d162fb229c4813dd88ff353ccc403e66a03ab680f2119e85f1f2587cbb4f84eded450163de53fda4dbd167e94f9c50d937904b1b116a1038a48e9aa40132f38f04f262e0186470139668d134670f3e772c14d47d6512a081a6ba4045dca30434bce49fa911adb65eee80d0207eeed8643d6e9a6901b26d2607cea703ce7a04d65b2cda7f02590a82d2f738532174e752d6e502dbdd19f3582372414a992301d9be534857c2fe1638ebee389e0588be45caeda77a1f155ff3c41acedf6bd24d3c3fcd3f11c49ce0b9a7951311ef035e23e75c93bad422194e2913dfdba112c752ffab5d19ecf52bfefda8635495b501d6c48f3487f96a5169a19bfbfac390cc4ff89426d0830ff1fb4940a40f477ae8e6cade1c4b6e2ddbc61c8a147625f91bb61effe673e3d695f6e9fe1b74d6a0691c9de37bb0a7c77f7c3148757ba4b2340f8c3aaa4c69372f4dfa41246096af09c7bcaf03607fe01f16fe64790d07bb36b6a12248e5d6c69b513060d674c8cbe364a1fdcdcd1ad4ec8c3b7043c2396f1cc9b07d3ea2f56219f53fcf25a25fdfad7379e83dedd9ef5cacbe507c9b60d6413c27b4da6087ad3bba887daf6f1a32aa9f99fa5ee712894ce1d3fc4fd53d4a03595990d80160334a7fe31efbf34d9fb31e164e4ae98609149659713bc69a470e468a9b80071c6ef1d3c032ebe3fb767e4fa9a0dda18e88cc39df22111a9bdeb3429ecc989d38b2403b3bd87bd664c65bbb918c0ee799275dc47d52b0977f1a98ea480da39f8125c59288298f077d85cf1bd388a13f08aba4ca274d6e7ce52c07d8ea19f22358040aa3eb1eea30e9a1b817e9fb8c48ab875d6a267ce14085f6741709fa071d364b4c050a0f453eb5c0a9d13f20ae84a946ef00c2ff2d61087d24eede046644dfd52641272f04f67eb7b537a9f44b4e6d1d12ca643270119c317f2533e16b2a88584575c8b16052c688fac39b4793304ffddd5cc0e6e4a4bf2d39c593b0240bf762e5caf2a0363a84a8c99c92426084ad58e4f7c2040f8a863de8061e5776d7bec9a0807ab376374f41071eb9be6663ce4c56d0a261702488323bf2345604bcc22f186ba8613e193a82c14bd9eaf6ec1ce7b7237362fc0200b681e7c9ca39c3926fc78d6078408893fc5a79f4c7884bf7b656e021594d160a03f367d739679502dc31d40bd7f0f5986cb2ebef98a44f3d7b7f4d4f72180d74f6955215ae64a6e5cc9bfadad0385442af7d43059d9845df6775125061e7f389c64c700e40f2ce7b69fab84548a23af652f3febb04c6c756b2eed857c6bdf2c88b057ecf12e76e8398f32043a9df2c770e33ee67ca4d6424b1cb6874baf22fc8f12659a6f6b673b38b190311cf9b8931d7fcb44feb124493100daeb9ee6bb95c6637b1e89236ed77d411785753cca35af8f6ecd6d897ceefb24538194640c8bc0b8b2e81dc579f4d73d8f44fdcfbdb3f32ad2cc96119b58719e397ca01f3b0dbbeb609daea5bfe70e0ddf1bcf9e3f8589470a3c2b1e36bda5bc7130ab772d578b0a61e411790d0f5ac873448e77621ddbfef2b159feea9100c7450b8b960746f97ec5b94846655d46139558887dafea151ddfe88a3459df176ada64ed84a2bbab8c4e39786d25ffbcac62b2f2bb1f78f9befb5a3f445b8f29e9e8dceecacf6b96bc7161a9af486bad90922f923c49df37e8aa91870643b672070a75c4572e98a307438570d2422b941a54dd3e6cd5ef96be208697bb583281212f9c31a2d3bf011829c238960d3b0d98eb0240112e6db94d64bb0573ac2afa073be535f98b97cb8c7f617fbc572ef935cc3f9feedaa31ad031c18b412eed4460c1f38402c298f233d74217a379413f79536af83ae986934e5033ea11a20df1bb64c8a41ae51cfdbfba54c4acf34256acbade270a51e05e5930b17f8035f822083fe0744a8199c3bffe01c250a6628edf74cb3744ed63ba96d60a35afbf2124a5904fa1a6042f9bddf15a9e77698d6a30e14b645a41fcc2257b82f2e67b6eee1c2c0f48e02f82224fa1dcbd10a225100f9a0b2a8b844d7ed19744c45b4b3df1985dba43b2ba23e9f28f4f52913dfc4fd65834a50ad56ccca8462902a0845918b2e0f5d256838d74a3c0964a271f64ae1998ccea5bc906305a4ae276ec6488f4cc3f6848a70622a04b7d50c6656e5ca695bd99cb496200b016a938ebe0ccc9097a0d39f46f41259b0d61496e07bbcecabae5b4faed6b370fd974c1e6bafaa9add664a42367ddc07c05493912bb7eefa42ad73e208d75ecb0909efc779bab99ff61c5d9d8f65154d868efee81048b9a1fc26ecd94d54f2c172e04abc362bcdea7115fb1e6c4eea8258d68f2525ca0f5264d092097a44d43d73732a96779bc5b529e89dae383ee9a5575c33af3c4499eb13b0439ca0ed501ef5806e0fd6ca8642792be4ee5052ea66fc8842cc093984bd957c4bc359d68c486e090ba9c65c06268823a152025787ec03e554701e606da482330a68cf3a14e7870d0ed416241a24c35d2dc752ede14268792e0128d885c9fd1a9c79da46dc36b6f2845bf92c86156f845559913035c94230c35f5895d8e68e5c38ddeda5b819bb1cca586315f0e5845de52c7a24d4c4b179a3df94af2b95e28ad75dc16a2b539110c2744e6f069bc26183a11e87889b73009658def8e2fc88e3d49cc8106c244b5b7f9621da7cc90d45060dda8fe6149e92136616aa52bcf46bf704ee66292b134f7df068fcc060ec27fdd43cafe481c11051d83c172af838c316c2b0471ce2728d56ed3bb4dbe1b3598b62326e7a44c61350c47167f8de78691ea48d920baa85b8d523fae6648e451c3f8c57c2ad7df1b50e0a573063df06cba6ac3fea8c6020ec3eab0865b84f1a7ac1c4126258edae0e8095bb8d8895216ed72b67924658d502fd9941205db5202d36fba86365b289e9501fec182eb8311151df57bb6dd7dbe48d7487b0e26a888a0ddede09d9d6e444b8e80e63569e9a8bb150332219dfb3c454128adeb30198dbc5342d87a420ed22376678639179187271b713d69238b2ea1bf7366cebfbbab0e60d36df71f997f3fa7d608d68b62b1ffe4350e82bffcc7fa20c2cc2ac51da2b9fd67c9fac2be410eb390e1ea959ce6c627763ae73fbe7a343dec327b9699151dd91c6f14613fec5b920c15e3440238c067c60a85b31addb419201e129e6bfe9e1e77a46dcdd15a02f198eeed70719296a31b31c71a79e22bcb7eb38cff7ea4c4d929d5c22d16f1e2cc35eef91323ba0572d1a90c76326b824573f34a0de3bd5b3824e766d829459e202a49a49f8607afa93e05f1be3fd9f25a3c81a325d5287ecb163a2036ec53a60587cd671a8fe843d9e97c18951a4a6112fd2b0229848f07a0e25c2f66e4982e7773a0f110f2d0f0696ba132b35b5e5b4c42c105473578184646a4ee80e74f75823ae9f593b71e99d24f53c6420929555568a8d96cbc6c058e3c15f3b2352790866be0b5cfc61ba726d06e1f3197b3cf9298e971059711863fb03e22284df429014201216bbf08b52b2e817d4073fef47a58e4b2110467ee42518cefe6c9c3236fa31c207647908f215935e67947dc85b6df2f1576860517e3562edcad932b54abd482af1d49fe729be5392e3950d254ec358e7399e593796864def49da1d15d02955f962d5acc21211c9c827e34c3593f6069355dad54a65e40a2e88455ec70c52869aabdf105d873c1a164e1caf3012a2e0a319748b67626269fb7d8cc3faf23c998998ec2d99f2726a3ccb5237cc24abcfab959230e2de91291c5d9b4712d12c88d7127e2abbc2b406c76930096cff81af83b8a373dd8064975ce570ccc0ad1e92345d80106ffea4d0c7337a7936b074a73dde62fb4c87d03cb3e475d516d4aee6fc606a735e18b9c2b4a9e8593d9edc2449de4162a643b5a756da7a152589d2f4899e45fcae532ad26c7fc3ece1bbba4e7de3a9803d849fcb1658b6acd16b497fdc8e4cd5de3cf52c3a9e2af90dd2b959fe8fcef97a27c87b8a2829359b7919c2b1e7ee4900436a1c5e074da9ebe45241d5b1a7f49b8f254eb25bd5761ca2fa3675efa5e5fb76a6bd09b41e20b0f89be55b016a14380092eefc136a90c6e4c21c7409f00a47b82885ff40ca10e97e446dd47c005e0f1092fc9d79d1e3494dd1fe279b455b6ffd14934673dd00c0f3d4466130478cc5c81e163d274f508f4a1dc15d87415429258d10be8bd1d0583c07344ecf19c08ad8123d0dd0cd0ddf3f71426ef07bcc2e7bbf9e6bc43f5453ee168aa04dda523a8727d3bf88e66a191f95da66defcc40bd8773b17773a874bf927cdb33784c935ccd1a686cb0ec6aa6e9cc1dd539e4336fee89fe94dc4eb90c38d8318bd8533a8400e04e7736ebe6704f83f2a078e2d48fe0ff1f2114a46917cfae7f2220d4c74742475671ae18c43890e4261898bbaa02933e79fcad97ae7505a1d926586d00c1e0fe0239716fff32092dd99a43dd5ce0482040fb7b8e437d8a6e2e5d80c1d9ca7481547fd63253d00bb780d07855e72fb5826826746222170ac4c3c5674f14e031e56cc7d533bcc3dcedfb88d3a6dd37e6fc46e1e6575ba9f0a431112fdbc5e2ed7c6c4cb93b6fcc48fc6071e080c5e34df202d2f28822efea738c01551fada03d1c993d7a6dea9f93030a7da4a794aa1656d8094be99c3c5a31bbf624bd525fd170e85fdd798cb95d64fd5e16ae74996189b26bbe0460bf245fea955f16f101d717956a8211c2481b1612bf4fdb9f7427614218f3dd03a5d77d1fa70baa58c6e0b9fdc3894fec386fbf6ad973cc32179158616b4135bdcb8255a814a7a861175eeb1a9de3a026cda78f8aa7c1722e12c441b5c335684b5dce9223156cbbc71953a32681eda7312b811869011aaf802a75130ae331df7c1a2a97215976f8298c0c3c0c46c3279dde10fbffad1215f0bd71af41f491a5988f6d76923b8680e4f413124f9b1c1bf78085e40672fd45ccd7a6561a7ae1650c56d3593b8ceace4f5f8d1d410f1a9c6c08460dc308f893e778d59be9760cc908bff33aaa807fb43cae52d63d6098044be75c665e47e4088bdb56656e442ac5465b359c2356436880cf9bb10101ec4dc51619013adde01ba4763883450b0a49003f3ffffffffffffffffffbd5b56fdff8770832d444ad0fe7fdf87cecccc94cbc19d1ab881510000000020b6d6da64f451085c087a08b95fa6fc9d41a8d99599a79b33e68b20b6143f212de678a9b80e3a0241e9dc7a4e6838595d401464f234c79f4cf1fd0fc9276586e7123595ecfba138212cbc6649e944b741471fda64ad31f4464f4249f3a18f5933c60f9ff3beb907f63596a71ce7c4f34b0f6cbc5f5a959744678bd09107ca5d3573ea582133eac0837a51e6579e2449cef5183aee80e96f7cfbcb9e543c23222264fc18af800e3be87bd2992425130b4b9ad151077dc3b727d13b74ac8a0e9d5bc84c6bd95573df3187520a0fd50de39f33d421073c955f9818a43c961e07452bdbdc52060ecfa7cce932b386d4f90dc99fd44e3a2d6e70a91437101a69371555d626a60d6a775af093e2075531061d6cc845364f356b4305690d8db977a6ec93839fac1a4e626d27cb2afa9a7d1a94ba98e32649c3a524a2a13dd1f82afbce906a0e9a5df7a4986f723acc7090ec24ff9ce886d03aca50cc54572b0b1d9db21d6450aafdfa63c5c62057c718b63c96623aeff3f325066faca257bc4f493bf7a0230cfb47cb6b673972410603a6335a29aa65c68c1ba1e30b9d94be498c91d9734c5ef0cdc369fad02587eebad0c7b614271de692965cb834455f4bf246ef0b6fe14b0dd3b9be374387166e7993e44bce5bd091056be464cdcfd9cb4aaa030b6cc9ab4a9ca8e1044dc7154e62ec7f4c265983e71d56f0e42de14e2c530361e4e03b3062a33510802d745421938b0a96f44ffa930e2ab8a2bf6d35d561af18e6131a677c8d334cc7148c0cdb8e7e62b472930e291473793ad7dc7f231f143aa2909c54b2b2f1ab63eb8042d973578a444f06b99e70ea253dbd54992c7b3a9cd06ca610e9edcd7cbda309a7b7d6ec6f98a9e990d16f444448d0c1042546335b87ef8a62e958821aa35729ae6c8c717728e1a924d65df2e6fc737624a1fe8ed9bcbf63786c1d4828575c357379d09c3c51e838c21a5b41f4a3fc3f5a2c74186197f6f43bd73abdf4081d45e062c6b2f58caf496b27741081298fe32745ff303bc2a16308dc9410fb66f6c935a6840e21bcfdf91a7b9257399a01303000c605c0b0001815008302604c400130e80802a76977528a960e2058d13296e73771a337bfe8fbe47acf9d5c4c0cfaa21cdae6672ab580a3178b5df4978eb1bb2be3e04575579b264613e6627c17c5d8a45d255aaf9ca42e6c31fd30b569a466930b3c3b5a3871556fe36402072e7c4b935db54a9cc0718bc33a436c9262cedac601872dfc4cb7b897f43efee4038e5a70ef25e9a614ef5427b4c892a68f1db4cea57c2d70cce2fbae8fb99294e4cce00d0e593c51315a6c4de5eb6d061cb1b8e2c9a925f387493761e1645cfebb09c72bf46457d94aad5103e38ad2735aec708d12ba1bc901472b28eb29f91c72c3a5450c3268989170b0220d25e694f3f33568dc8000042800c604c2b8517ec0b10a2c5f9b770c8f631171a8e24cd7274e5f7dbc0a071ca9a03fc4d875f77f8911072aca1226e694ca633aa1720aab4326fdfa8d297f70071ca6a873cd7665553c0f9b1c709402cb5c62a6b875ab511ae120c51eb26e3a45aebde475c0318a3c63cea51b63172d15051fb442be854d3e65c2110a63493145ccefdb3bc6010afca4d113a34f3ad1300e3e29230b1c9f683dbadfc74c580f3d0f383c61c5c9713a79ee6ba9130936917bf93cebcf8713a71863e5bd93dc44bac943f3d2e33d2e9a783647d924a7d51245ce843ef5c9a492ed9844c5c49e7939e6905d97cfbb84fa292f69eada67fa705862f16e8f93b3c4764da9845762f5713473f05051e20d277bae7c38dfbf580d46c03109c37e534e71242f278b248ec14b5ba39364be2712cdba54e88ef1f0f80cfa060f3820b17ababce9fb7ef3da237af98b2be6edd79a3b42934c4286d7d41dd3a711e670927c5be173e379463419b296f745db37bf88a2437b58cd923ba744116f7caaecedbde12a9588a3d2e66e265a320922a2b6a8dd376163cc6139c431e794bf3ed77c9a4a3144b31adee2f474d46cf21c85b0c409f39fbace924c08915ed68a76b2e5133bb4038e41acc15b3cee09759b2782305656d44ace1d4d9c0361e6f4ce75e241da5340283627adafc5dcf8f94321530abb8cfd90ac5f5227cf664655fa905e124e8a93beabbaf960fe923537b5f764ce1eda4f9653ceaf269660e9611d950a2626c5886cf3c066138b19c2e366af38f05059107d1337af70d61d923a6ed292b0d901c9fb0c52519d3374eac05698a99e4bef490d5070d0618bb16f3e5a7e8dcfcce10b77c9d35d2a07b6e4c92488a59057171868e08883c9d5645bd56cd99385c325e529a6cc29379f7d8339bac73bb63ea624dd90d4a355d3f1a477c336645a267ad8f53831772309071b98b698530608ca8001c71a4a6ba2ae1f9dbbc4510dc456f2749529e652c491065bb39d244d7e23227e080e34f425e7e7ae25d9fec071865ae33003ad7194c193442e736bd413ff1a7090a1d964e2ce9a94a42439c680cd66b72bcfc9f76f0e31d46fbee92ea7ab54e408c3c9b249c1cfcb247080810c2f7b9673f162b638be907ec969e27ec9b87a461cc0e10576237457a7fc332ae0e882714bbc24b35a0a38b8708d7c5f957082cb47cfb185533383430ba9d6028e2c9c15b452fcee88d53b2222c281856b83758ca9223774d82be0b882d6f1e43317bb4b1a0e2b605a1512ad563e4ceac69d1cc60d9a040168030715ead7af8fbf6d1f56714c018d52498ecb123fdd81400c38a460cef9dcc1a460beb9430247149abace2586bcb44a2714f0cbbfa9b59aff5de478427a67ed196fd72d7d0a87136ad32a133f69b89e3047134ad98d1afab93dd2e0399890b8a2172e544c3b8b8f9cd1356e20227246d748411826e05842b6a13f6b4a48bff33894805db624e6f877b09b23099d7815cf54450e249455f1d1b19bc494e58888c81964d40841b2010d701ca197924bac67c734741c4668a62bef4d10b924ee45e8d267b71ce3d4e59939024238cd736b38d138e90c4299329b89339a7cdff20f2068be6ba1699526a30263c4466b60021ebfa8d37d9fbadb9bbce60b53e85a5cc9af49776378f4a253bdb7123635d5056fe0c18b66ece39f96490d3c7671b9d65c67738b1aed1c78e8c237b9644be3fb33969582472ed238a5b19673e6c75286072ebc926c2c6d9ccee2fe2dcc9692e789f789b9d5168b9f9826887a74ebce0e3c6a618a4f9a3a26d195b3d0c27c36b329c518ee7b99055b62961a2fe12b798e872c985c37135f57f7658ac5219ba41df5dc9d656c82072c4cd27ab66dfdacee9a577059db4ecedf5d79aa2078b8e2d416a44b125a2c45b115c54e93e2d3523789c92778b04273cf9331df3ff058c57d31469d4bd32b5951c55297379359a63df62d78a422ff2ee9cd3749674950b19f209a935e97776b1ea7c83d938955b91e6e2f5318f39db01ecbc2aac44a8156a8d4174ada8314f6aaca57a897a6d8f11845b211dabbe525a99f1ea238639f18f386d0b03423c12314ce7895d0b153eb78d2031455d6c87ffde613afc7aeccfe1572137b78a2b2cb6c6225ef2ed33a91cde6c5934c8c3db33961a66bab9accfc269ec726caf7143bbbc4c81c4d4d3c9ea4366ef82d396399e82b5dc9ae9d39c3a731a1e76b3d13d4eb347415785c624bf1e50493ba24bb6b89632e493b764c5ece984a58e91e9b438bef47ee41896d42a2ccbb2f5e8a4f62cd50af39caa204ef482261e73d5bc674b72113892ae577934e8cffbd1448dcbfef9937919bae7b44a75252a65f9ef0e97284bed27541356c574e7a34e28d5e5ea33571fa3f23f0bcbaaab9f3788aba7b2c02cbc1840f53cf4311dc546bc5b9ee91087f5ae2d3e6af75571141fda5c95f512dc68a52e07188dae424e8b5897c3addc31067cf8a9b4df84f150b781422ef98a3497f26a6aa4c08536c596ac87862f5c92012635cdc9568a779b5204ee72721e2a9ecc2e738f0088497e2965dea71ae7540f8f139d6a418268f3f24229fa4d7c2927cd248063cfc5045b5e0f37f6dd1317d2849f28987c9101f0af52674ea16b5f5128f3d7c27678e692c86d718d4c353a3b5169fa5bd4e8f3c249aed27b92b75fb969ce0468f8101119132fec68d1ee3d4f0c0836b72cea112357982642307df81323ceee08ecc59b84971a2353b78d943594ec916c38f75385708bd12336cf23c232222367e8ca40c0b28c1830e4ea5249e6ebadd9fcb1c4a31e5927831c9e391cac1fd641557262bfb661c7673994f392599af824352db7cb63f4b2f197c439d9d73528b2ae7b9e28647ea524eae2fa13ddf06c5d3c79453528c9c341bdee8df2badaef6d2c0630d27dfcd9f767552e7a941d3312909955e1afc6c275571a4eb4a424392187d5e36be33647d498cfbea1537ff13339843744af9728e7a97191111b141c3cb10a30c9fe87a1e25a78cf4c95086b8d70b9ba26f163dc680ee8f6b3e49deed8cdb10839a626c69f88a7f3615333cc2f0ed7e499eb6f300033eda3b56766a52d71e5f389aa855d9564ba8288f8894c0c30b09677d557a7a74a130d97c96c2ebfc9f2af0e04249628f2dfc39e4baa57831dec90e786821cfbb2c666379642129bf7c478ba515ab49820716b60e2725e14a242aaf572836d73acef2e8e7663dacd0a695209627a7517b150e1fd38f5992a9606713c39a9f78ec7b32f098029dc3a373ca165ae54a81aaabd37892690ad545e1ef3ca5312d55a84f43e1ac6c255e79b856bd4fd8d7466cd4a33ad3ede184dc6be34cc6b4c5e767e0d184763baf2473fcd6916ce0c18454b6cd2c622c87d3630956dfd5bccaa7890f47ca00c34309c6bdfbcda3191e49d03e36e531cb4d1a9e4186181e4870ec5bcaf2342cb34c81c711d6aad614b47264c7d00f3c8c70f6aebeceb28e16a14711ac8becfa2031b1a577c08308cae6701b4fded94fa9118f21a0ad31c7b23dae93030f21f8de6252fa9c9b728af108c2b993c57c5b3629d7914044c46b58c00308a5b39213836e6eaec68f31469bd1f18b4acaf0a43945e5421dbeb852a512fbcb2ffc676fd4e003dad18be3a3f46d8d8617977d4aad50a9a4b4cb2e8aa3ee2932fd06f14c176cbcbce1d51596d50bc02d3a72a16b6735f13f870e968f8888dca00317c538979ae544c91063c446036cb0831d68a0e3166619abac3c42804692b48808046e88d1354cf08b0e5b909bd2fd5d3332848e5af862495cc5757a4a41072d6ead246bcc9a13aea959147387193fb1b54cf111111132be041db248ec8eb2124fd74c93a02316b7798a9fce5fd3f968023034108609c0c0400742d0018bdd040d954f88efba348d327ee4068d0f74bc22f7d8e9a135633acf97e18ac4d01f53572be5143b15e86885b9fc843d317cf9f437837f1b1ae860c5a3ba163495a7cf33780fbc18354cb0828e55e8a925a215b3fbb8a78a74e2642a54cca28300197f6303222210c841d7a831810984114652c60d3a5261b418472a4474ec319a060c3a5091e707d5fdfe924a2ea151c30c1a376809749c42af2b0fc976d3ea0c051da650c2ece2bc7df60c33ce28e3041da52806abac7997d92de66df41834ce30a3060a40d0820e5250c2d4daf625f5d3cc0331e81805b22e57ae5e296a567dd0218ae3ed0885f1768082783b3e51783b3c91bbd9d189528eaf29d2a2b46309278caf9cbaacaeaf6cd944f5e995c435b54f5a13478dd976f499681265429397acec132ad7fb9828be74a2636577ae7889c44bb5b72331f73359a2f36092f8ee5c893bdde5c50cfaddf55282f5d4304b4b73f7c1495017e64c2a75558b9524fc0d729e3f998612bb487c7942a7b87976163c90f8f7626e93bcec275a1e41ea45137373faef891d716957de9bc86cd1248dc8db4275d474e1e432462426e589b7d86f62d28bd0bcfae52a4bd48a1f45acd3f1b695622fd224114dac6ecefa14e5c4b90311a6cf1233b7d253cfc921fe0cba31eaa456551243b0e9eef79aecbff34921ce90cb22e351b644b183105abc967cbad7f5bcb68670ec3b646c75e8901782f64daf41da4af09411a294713c2c3a675fb44106d1da87c9b953ee63ae111aaf03316c900122085736deca49fa927d8f8004223926979e186df3a402a2c850f2279352b89de41ff28b8c572eba4983ed07b4b65297897d1f4889f9c049bc874c623d6c12e7a18d4f41cdc35d56fb232200c1c3e952dd6ac6b6545c41ee8009561b346a3b06103b20fb1d2e7e8afdfb3175e022daf3644ad1ba3f74a866dd4e3cb2937b2073d0625ab64fb10391c3639ff9a4b3ec92aa8ac32775b62710461962f448054444c6008183b3a2e7a637d112276fe8b5dcf7b5e3c9395940dc9018db2a899bd939a7491b1e17bb960e9ab7cb076183a749eef4d81b9632a606c81aa8cdd59ca4a827859e80a8a1994f926c6ac64a1f4b43b27ac7f0615e3ca95a021034945a2c5692b6cc5f1f12809c813fb104d7d5be8be903628664b9301e5a2f4c4c0840ca608cf1e32759a5d28da605206470c5243a57d6f537f5460d3ea0029031747fc9b266b014a6f34fcc000188184ae1a12759920609439f4eda8f93df0440c0705ab63329c224f1c232422329a3c7681a65d400f982a1f5dd2cacc4a42919a9212202817731c628010840bcf058c4549a1e9fdde488880804c048034817b44d2776b835cd9b0f170cbae69ab72471ddf35b38f4eaecbea66841f110a7396747959759504ff0b7247b070bf5dd09db1f07b942add93b3d25a13a6c6a8547be2fc9d6651592adf533fa784e9ea2c2d9c47896e1bb26c617640a49b90d009182df277796b079a2590b128543738957e6c550fb0181427272b865b089c84d02f28472bf2671a7774caae384728ebfcde871f2c705d2844d3013b3987cdfe14e1026949dd369964ce6f9264bf0fd4c4c255adde5bf94f0a6fa67099ea6634e20494836d13f4bfaae66bdf8000409c87de64a82b4204740adad14801881b316a4089bb52044d0ac6dc00b408690590b03102194d68204e1a9ede4a104ffe4bd830061958e13194c94cede7e91663f2948dbef8bc2a36a0015a3ea648d9116638a7de0a317c634a6b3a7b932c9072fba8aabf4e1bd3eda3618c30c1b5f83022af8d805bab71ba7a5f772525dd09dfb1f3d76fe86fe23172531a624327d6c13c31111111a5d63e40317ed46d7eec5ac87746fe1962473c9c3faa61a66d0a8c0872dd0b308b58fb615aa05f93edd2dedbac9f31fb4386ed9a7c7ec708dd1c72cd8fe4bd1c4c897b5d8882ca8bd287faf8b00031fb13036964ddba59ff5cb2766f873e003168f478da917322f317dbc629317ddbcae69e0c315e6e66af1e89d5660314f3ea664a1b6555658d99b2a4929df7fa7463e56616d4e497ce4f2758c091faad04b6af5a0e9c6e492f3918abcfa7aa72f273c85668cdca8c104c018b1d11af84085796de22ef6272bb9fe8f5318f6c4503fe39be2d43526663d61d5522f05efdfff919fd3a4ad5bf0410a734a7a97aa7ef1931d057f312fcc66541406b3923e5fe593a45086e2fb8c972eb398850a41717e13c346b91cef84ec13df6c9e8952d2577bc813bd98c64d6b279b707527aede7c82775bbceb55051f9c4032a7d0953973aefd37a125bbc814f9cbf16902bff7cda46e6e1fe647262aa93d83daa5ca92b60f4cb8e1254ab6909d64f38f4b14adb5c46d417f262d9805d554a2926b6c63f6e52e4951820c53e26d98b54dc11ef99804de29ebd5d77a92a247021f92583f9c9025688592c42812ed871253ce15df437a90a823aa0674e0e3116f5c92834d4e07cb6147fc31e9a524a51593d03582933c42e6d7c38804cb113a9225a798e7459833c50d7b523cb794fd5084926a03129176927b34de926852ff031174775ece9ca1daaf398479fa9e4e94cc5b2dbb80051af830445269dae933fa75550873a7da0ecb6946f61a34f68310fb973023e2ed9a3355c1c7201235c5f6d3d8eeb9e605c0d8401837caa8c148096e8c51031b4f82197c08c250ea1b25e5b5f38a2319f808c46b3935b7fba2a221053e0061ca206197acb283f6079324bf8a07ab0a91dd0f068938f9c4bcf33fe13e90e2e15f2565d7b81d1ff2246dfc2739cc49af7bd02bc9953b69ee4952f2a18763b0face375b62564a1ea84cafe8cd1353031b343ef04099ac54b8182abd7746c078316a98e0071f772874b47039998da99b7cd8218b29be2693d2b689be19373cf05187c326a934d2426697f8063ee8b09ea749498cce93671b111129a36d50811978df28410d1a23f898839d538449c2e7d9faff21072afdf58a664807953ee2509657b6ad98b53f9d02160883021648defb8c12e4e03b60820f386c49ad8f375c49fd704396d48f36144ef80f29b1311b9d0f36ace1b36af4a73c97b386c3de758a77cfa19d440de6f46af269c5794f5e0e3ed290b954d07829e9a53a1a12d3bfc4a2f37f7b75838f33b4bd2f2a37e94950cddf0634ccb8911f66a8c41445324f33c9979601ebdafcd12b47b5b07d9021978850b1923ac12e36f818c3a6f79349ecf7ce9ffc10c3e92bc6287e72b8953fc2b0a68ebb78a63b967319e800181a0823073f830000e1030ceb59700b27c9f225957ca134274b9a58fe767fd90f2f3c1f5e553178d224653ebaa0cfdfc95e797e70c17482e4a624790a0d1b6d63021f5b48ca3c39ed82eb98a43ff8d0c236d5f1195e7cc5c4f8e0230bdee79974d29a246df8b060f6ab49295e5f3ac31e7c5ce1bccced5e9e8dd1352ef06185f3669492f8dc25f455289b75e6149fe4ffa8f9a0c2fa721ea332be07b5cff89842953c8a76b854abdf48e1182b4613cc2b33ff128542a553fee497fd52a1f094aba593528f4ff204a72d59ef55d809fc6dd7eafb07d97b75f0d184dd543e9824ed4b2735f9608271c43f5c92a3be537e09c5084f93e4d86db96b302e1006191f4a28f5a759d3a8a175c92494a327f5ef604936cf91e0863a31c36664d2944237f838c239f8bba678ef4c77a1313e8c906fa70e1a4efe68f129423f6e5bb952b892e7fd204262a513a37d6b794eeac71078cd31c513d7da946118669c8f0b5062401503aa50418002ca60003560b1019500bf61a306350810801c18068000e0868d1a90600001f818740d6250468fc121001b353a4e0000a3c17100259818376a8cd81883068d8e0324e10c321c0937dec611de06669041c6936180031821076738194f46010e500413e3c61823369a0826c60d1b88910cc1c4b8919841460d68d0e83880107273ed8f41ee54d41cd95235101121e36bd0b08118098de4fdcfb0212262a30c316ed4f831c438830c33dc030708c2929b5bae2c3c0010da4ed2e65b29493c511ff919b40944446c84fc028bae1a1082105ff4962d6236555cdf2ea417675cbc38977b6d5f8aef9a1cb20b3eaebe9e2c2597d81b5d94a35dce294c9c2bf14272b18dc8679a4aa33148b8b04f8ed182a6af9ebd426e71a625b17d2e346cbc436cd1c7897271163fa67412520bcc2a8e859aa4e4ce3008a145c153d20d7daa9f5313320badef924915474bf2284416e6b9f5a5cf3649da2d2416797429ab98ef4af82c10028ba5b5739ed87ad7db5ec17db8ce9a4e2ae1f27785bb9f7652c63a45f55c20a41545ac285bfe9e7a8c492cbd576185f4be4525898856159b6c26a4b4e4eb889c8a84347933cbf3329ee5200415c7fc1f2bc7f360d29f21a728e710d1e062ed235988294e31e6601e7f722cbb21a5f0af4e0c8dfda12bd51a21a4d02b468fd6e73966bde020641494689dbe664e88c9091105361637bff9777d4ba14073d4c6592e692ba311cf40082876a91ecf8f8bf23a6720e413fe499e5c3d4293fc7720c4135766d5003c6feae74a79c310e844f9ab3c2c8359da9e704295cb6d19992d87bf89d36436c983099ae4734d585137c5c7fc31d4d24c249c2464ae1b1bf14e8209effb3e34fa5af2982f516b4c3713d43c75b2442e568216ad1af0f9a449feb552bede0b42285159ac1a1032892ae6ab95248d2392d8e65d273c8c4491c133543cbe9be790c0ea3ac774f268c926fd0856274e56eda90c1b3ba2af94fd5ea6e7aa6a232c212b74e757ae94828c70ff842d7df54df7d52234417c43bd7f3ee5a408f76392bae83a5bfb242239d604d589280411cbff6f8ccb38493e7a8835767d253939fd24c510ff99145464ab422474095d626849e61f11c21ca3694a425d5e9720d1201c0d1d4c743f854ba26484084293c2c41d8bafa9e3099d11120883054b8d0e37100288cb573327cde8a7fffe81efdc565749084ff218e287735ad4ca41c53eed839b2a3bcfa53c1f3e13523c5fd6a718c3903da05129e59f12ddaad4103d6096f73b9ca4663ba7192179783ee74b391b2f5a0a6320040f9b79658fcb4e7ef8eed027e1265be27b2273217620b34efdefea7b366f444404022175b044db9d280d3971628f1181103a24ee315648bb431032072c787c4b09f6336fcbe1334d75294d2d765be2c027b13ac9ae7be13e628cd8a0510687c041ef4a5520e40dd8a5bc2764948c888894000436ca6041881b96d5cbee781f99e3a50420a811821d84b4c1b393cd366830f3fc8e8888bc18216cc0d7c3a5ef3fa4b2640df94dc645bddfb27886a8417dcd65526d07ebd8a7417d13890e52d12431091ab84e99133678863376d3e43449539731439b6c3b642f195206e32243c3bfff450f86904119f314d77a3d6de88c8ce1f9bb4fa984f4e9af4644446adcb011220634ad43938b67dc7a2161f8bc4cea6cf564100206dcb52d5bee289644932f30f6b1b57fb12a068b1736adbaa069215c78e4737a09da9a25ee2d509e223a9a925d496242b470692159c8b4102c2c15afa1be3b461b3be40ad966f824479ba6931262856ad3fce46f8e65a249158c1699d9a4b230aba171a38619362610428527a5bad77fc653e74c908190296016112555d692c839440a5dcaafa251ea3e864c02215138f5e282e7cc506b9f111111287cf24928fd36134ecc9e60ac4ed29a7b2ec40906db0f93c6aa3bfba58190262072e973d84a7f8d1b04214cf8fee2db5cdfbb5bb68435a595323157d8e85b88128e76a7615e93e6d5ee1333ca4842929c4992a5b14768a420040968744f62eac58c3f5ec811f65417638efe492a66428cf0884b869da4a52d07356e94f121082942176325a3fcd249c19c400811125b4a3c598ec828e19021501a5503428460d473ff91cc466ed828430c1191158404e10f5f27e57c6804025f08010225b4bee9e635e9d0b801f28b53eb753d2797999c474444920d80200c1b6fa3c5186302c50601e20bcc63eae47a627799d404407ac1a7ece5966ffe4bbc6a8871684800841785cb9b7f82892771d218c3c6034076614e9790fccffc194a7461e7ed72ff0f15d6aa5c98f7328c85e8a6b8102ed6d571ebf041cde202b9c549122dc3dc648870d516c6293947fab5a48c32406a91244666e712f33ecf474068419da417ba52d04c29194066f154ca1f2c89c15fad97052227a6a709b76c1bc5c2cea81a50253551624e0e5dc932d2011058e497f6a52fbf39f4e51525b14c405cb148c7a7e7f8165aabe4cbb8410802c0099056a81155b1e28ca8ce0059451a5135c00520aa2023905470212a1054e03a16a399def520a738735b788b9ed6e43f013105b79d4e123a5512e3db23222220a5704f948b17c326c55b629dfeb7c92e52011945aa1bca92756a4b72c98888c88d1a9c616306fe23159000882812a7e334cbf667fe7028dc374dcd9a44490b2e0828b2f08c39790efff7f44801f984a1629a5c391c887116c413e67bddf47b72b8b0f10e8074c2d02e4963507bedec73e230ad95724b4e8cc53661cb678a9db724a9f38068425bfbcc57b2b8893154c30c1a5f861863942186880804429009656bee6347e910128ed078104cd8219aad53c7cdb84103e41276cb6a75a8ce923a1982302c919d6c41ec93fdc56a466cb40618a412c7e67ab95f889e8f8350e2603d9119a166af9621c6054026e1bef6ca956fb81411104998fce4f02973874e13a3010190482825a69f684e8d695e482484668ad115e6349f8ff02b66c8101a11111b618800c411b4c6dcf93245b1f6f6133340d008272e7c9fecb6d9be61c4d1fe27896b4bb6ba8853ae0a8d76512a68a608439da8feff6a1da1264237edf0a2a5cf0004116fe5a634e99b53867b883b87750188d5a884d1229150281007828150180c0002a2bd0a831108204040220fc7c231b970b6d90114800140322052482622281a161c1a1a8985a2d048180e05c3a000180c0a8f84501cc6f12858f7067d71f8c39626e069d788b0f1f88121921e747e90f0dfccb66af763c091ff8f8a523561ef70feceef04ec375253b6884288004428a932a6f3ec4a060c0403555cb329a18974d3905113bedf5b3034029e25064a71867c0ed6dfff1d78a21839bf95e845aa82a367a9ee0d5af767f9887829c7be65805f8783d26e1cc45e2448cb0cf20ce40f11c4a2868c698b58fe17efcd8337e0447b9871d38084042eac00bae3a5c4be610eb3c55343ff53d151557ff30937e69c84a73a33413fea163e519931b7520e2f3f89b0be3e30cf1f95db54acab6f3f6efa941fd1815e415907847357aa190b3dad0a7387e8dfb881c3de21f26b8453b0ff3d2d0ccd1cf35877810cabc5ed3e18c637a771bcba2352fdaf68273433e7d1a04449cf334c9b537f50a1dbb021c932ccb83657caaacf92facd74d539750290318e43d49d61301e8ab5027f9d86d274158552b654186aae4a320544a0df7826231ed053fe73cbeefdb87bc49e6681e9356ee82f47e81bbc709faa18da2203e0365c7b4dbdce035b5b0163cc5efbedd94713e7390c06b0ee72751707d062ef6b6532724487415ec50e2dcb2c14a463ce9abd6cd169957f37ea440ae12cb19d6ac0fc60470addee809e8615381be8aefeac5068b109618247417383ed4bbc1972cf1291a9a63c01618b98a46bb0e393ddfd7c85dcde87fc42e944deb73e81f7a9ea45396dc7c654cab92ee9140f3c839e90f70659cd41f8a6706a7a4eaaf88730c2ebbe5d96a99ce2b95a0ac65a94ee18504133196f0cae4f9ecfb2ef770642fa7f992a80e81833bf80e296c7e0084d8f2a8089cfe9a200d10800c41d52636a399f869d1a04a67ad4c65ffdbcbcea2ddaf618c14b8c75f1f3039c7ecb670acf713947459b40eb27affa6d5cf2cad470fd5fa8dff9128539f64a271a93d40308afdc021c6fcb89a731dd99d440c22a370a02a6942de67b65d48dd211a2bd6c323ef02126c970a559fe065c3e1a5e0d5b2475948fc99e604dd908e616863d337fc516bc2061482f579b4717abb01ce2a00e2d7ea56909c8cba9a48de67b5e9d53e0eb0cdd6c081ead89cb226f62b52a5922d2bd013a5660dbc725068a355b73f80a6413976fbf731869a6e96793a38a1e7019e26470f6b4afe367d6048906c15229c77cc8c48762ac018223ad3d065016b34a666054a428cd5f3435fd9dd12cc160f83d9cbe9d141d7b5a3115481aee47bb2973d3108f7be24bf0f6a5c015fde991d11f466f451f09d9c873896e6a869ed3d24c568d0c3d8db8abff4365526bdca85358137e8d057aba2ec90820243f7221eb8d9e053e28e6ab6bf7fbdbe281e657f65b3a12a72ebcbb3ea1407e6964b54533720417610922b9b970d8e8e2c11b1f09f9e6c9c5611f7c9a4f271ab09233d48d01b110aa0d846018df57ce991f3e5389a9bfba80ba0edf1813043d8892f97ac45a6ecbaca029ae7502fda38df851b027e821ccfc1707fa8ad23c83fab242ea6f372a8de7410409199eeb8b846af57bd356d8b9328259558f11f851a90bbe298fd5ac3a74284f8b443e6368d934603db49be5beffc389612172e1762333a51a8cb78a6a32f45534c47d1284f8e32ed9a990119777690a0950d52591a006c36d4a2c4b1ce5a3ed34f72aa5a43029e5a683c5c4a3ca4ebdfb365b34bc4354ce18a0cffc0302f153b51e5d778de143f0ff5d4faa670daa0f4b2d59bdbbb9a91deb4078039f96cd455f1cc6cddc2949cd2eb18200631ffde5a75507f6008aa4284b281f39e3d1f4e541b9c76b35cb16743ff52e1eda5f824a313677cc281df38bc8191c9ebf4e34583d584b3194edacbf39a6c8ea286bc98aebf4bbaf9545c02cf27a9a6b3fce9b02fcf0f71835c1c9102efd95a50a89e3bd8650d59714ca42e089a0ac052275165a8f810f4a8581e03b75baa94321da2496821026d9fd43f3e24a74ee80f9110213c8719d1be7f15c499d10dfa6e2ba47279ce6efe34c2d50b0e8e5081e515385b623cba355be85f6186d1e5223f3a6082aee0de8d4b4502bb83b10c8b312b39392f4658cdb13bdf7a61bd3ad243c21ed8096bba375c4d72e09f04a6077b974987ce85c12f7cb6c61fb79a76cb374d3e7ad5c6ad6bcf7cec6be692bb39bd71fb3616b4bfa9d8e9bfce292c96348d39aea6b0c8afa8fc30fae852411d9363544cbb8fc691fa1a442e9f577ec0f8d27c312fea2c353fe5f85c3afa37307112fd7109c494b75ee45dd0d6e7fd2f1042d42bc95f0b7f3be0237156a82c5f4f39e5db07d5af89a8a41c1e592e2051cdf86946c7711aa94c93cdb1d11a40651afec86699bd2b6663c4d66cdfebeaabb0abcd5b848c49ec67e3a38545f47d4d1ebc38cda6102f64be1edc7b04fbb5886ba12a1029025c1e19c9016e4e9aae07771884199c54d379dbf810441ea808edea4bf064afb85d053dcde54d5aa7628525aabcfed1dceaf7858ab2c7ce6005d202c978b01feb9d96e3afd1055c05106b45850b81ad7c9786acc72e3da8e66312345f3565578f0263428477926fcaee98d386ae30b42f12cc97d5b69aa05a2c72cac1c8124ca2120728930fd5793fe94d90e1b5d6db2129703806864eeaceae2d2641f382460db54a975784c2c11d1895a39d448ca048248bcb3d3297c8ac03d733398337a433604dd356bbc0792470f05e4f91ca30c29c5caa0641c71d718312a315da70b55e3fd1de54b399ac879566c348e98c286eb67d5b556f900965d6926638c91869ba7bb2e953ce2bdf0ab856f4d903a4f19087682de9a981e1598ec265cac7ba53ddc10c57d6e7012938f653c8962c55538022572e2fe3618064f227ad96d6aa93ef555b86b7a9c0173e738fc3a13c10e7e8a3778e71bea76da3a693b231b92204373f186c796d6eeac1e09b13eaa7ded2cac96291f9a3945625a307d3bb8add1159e414990df7a85597fb1fb8d2e27c5ea88dd818f7c210053493cb736725e7d2eb72b8d9ac5519dcd1ff2ad48cae33bd90e0a5851f6af30a41e89e51688b1a8a080cafbb5a82f29f4a0daeb62e7eebc66b14704ffa4c9a50c432203adc739a433f99e136e41f48697b5463cf26a706bef9dc0666c07b4c3e35b830191c3f4aa885ac0305841c8640732226c2f5ff06316f988ab03109d13720c545646d14236453bd7b4ee29f1df40dd646dc7561fe14c0779b0d5b034587f67acbbba44e4679a006987322191fd133aa3eff83b0b6c633df1d967f65d457ff06b0b6f1fe8f7b000cbc914b10757fb404d0cda67a6f2f0051f244154bc565e226da68dd2b044d2918c8dc87d9ed557681987a55e0af82c2d6a3becf6e38d0430b01053e32e752a2815b7caac4aca6a895c0f0adc611f3529d4366efec8ba92882a2f1e13ab999502fe6caa6b93fd9ec0f348e074593d2e645d11ba272f4b87d333e5cbffea0ab3dbc7c4bf2cbdb4722ea73a10cbfe060bcd47e8d3d904827d87b0ccf2019a2bedb16fe9a8c6e39aa32ad52a59eb338a0c570ab5e64b30f1c8e3bb11a524f49b522af11b80f1c72ca9f97dc83140da3a2ac96dfad31835ed4114fbfe384c610b7ac98e5fd4f5d6d148eea1581d6fa8a19c372332c7349ebd41e35c0a492eea531d4afea858a075cc12a69ef90f4edc4872bc17b3cbb73a23454b6182d5a099ba2d4029fea3738a2fc41942f728e8d22ac1f766585732eb135d260c3731f7545c4aedcb996d9280639ba8f2f403c05ce02c04c8157596a149ec5690aa30eab01e6e6579da97e764a700832ac0955e33418d949596ab4033e4cbf312c206ddcf7429a671486d264dd6e37c90c4aa90acfa1fc74980bdab84c57801ff93a1d9c5b5c625e0c468c2465b03f1339a88e080da7eb91cfd742d5fd0c6bea65f890a54d4d4f6ff3e3d8116653253df750b8c43c8b55bcc89b9f1c787a2e3b68278e6837b7931a26e6d094f4b85494ff105a386ec5d2da7efb9f42bc4b60e9e3b755b296ca1650d19a2af0bee91ae247aa05dbfa476ef01cc260cd9199d3452507d6c505db5d0d9deb48b60b570525bdcd1282af8331f4e23c56874d41736792df239bc732aeb293441be383774fc18443b266020c0ad3c006918b4772abcfd18d0ab1b6c1ca01c2afb02aa9b902286ef763dfdabd570076190d352795018179de49d18bb1c0c4c0016a4189a70da27f370e24b8479a482edfe8c10d662a6cf8fe6b03589ce02ddcd11c11182cd1f3276f17927426c594f7b115f529da85c3a9e095122ee5c7c15ad87f1b87419a09a011e4b8ac8b08436ec1ba985b93a14d7be2e85a7c3a20cbbe06e79c5014f8faa503402f9984f909d46651ce23aae47a28ff8a594f011b2d485bc33ebf42ade231d226882c22eb1a9a23b8fe8c407e13260ccf19770dcc65565ed0abf9d55ea72e02a270dda5661931e997f566179b6ab7198f44690d99871781e9d2163e1bb85dfa82f56d125dad9292193002691dd33c381929dea4fb0beb8da0f45be39d01d73755bf75d4dcdbd22ab96964146f431d2f717d70278109c221d47ac68ae0571ba41a5503038ab553bc9ee74ba5e0ab0f7f03c8d14183cc68a1fd3e392e333c380b8f215a8ff7a4a40977da5edb7c04fc7d429dd8fabe18d0effcd6cf836b9fef177cf1431fbef8e6cf520cdaa35a7059b355922e40f2544192138aa823230486a4307ae61981721da0d9983338ae09d5a4d7f8a1f565b9b8666411ed25def838ea6c78ab60c245ca08cca23094aa0623206fa3bbcc0b17fc0391164a755542e0db7b1f87f075abd6c9287149cbff9d4afbe575e758231f733b35cd7ae0c6a8e23a8262be283c36f5a1a39a3cedcc096fa644d64e561ea65c644388b32808829ef6db298e7c5eff06185dfaa6fa8476b473c726f4368dedc108f6ec3d77c52e4f30236a6cce6181f6acdaf713bab87e579362308d6df7b6c5d9d7201555cbcabc42aac5a6abe8a16ef2511e4ad85e175b42e56b46c52e1525e9c6091993142d57ec4828593d66e07c50ab802baeb5d29125b4ae03d1997902505a51204bd915154b3ecf5b26322b75b585e524f97d75fc814de70a4242ca97a1984335ec8fc75b5e55cda232ea0434673f1960e46d191ff94caafba4cec8e8b751f686c15f4cd9d1a559c17cec63f7676632e78eaccefcd8a5c1307ca29cdb3eb58bc5a864e50bd1aab3ef0e340dcb68c14de2340727762e37cbbbdac75fff83d25bd2e700f401ac1985dd4ca2b9ce6f1acb07b72f8cc83f134ae9ddafa94588d6bb3b15a1e0757210c3a52334b883e11b06615b2c4c885eb0f77c96341b17c2829f1fdbc376ad5488e4ba97bc167a0ed99883aaddff5726c3be5bb082b34fe5cf6430f23c49c7053f4b39083b151c82bece6930507a7df30db11c8b8a270c5c107e6e76359304766dc682d51c74f8b013cb5f7435f1b8e7e77bcb64f7a3da04608bd2adc4ec7f5d7fbe8f7e4df35407845a7cb44796d875f26ec9e99fb3ccb9745268cfa51313cb551c5f7bbe5e325165a768e913b9891f554c8703a0c1231113b72fbdb4aa1a4a009f3719734ffe67296eb464f1daa5d85428509741777076de9d95e913b67823a3e0b0b8ff5d9210a28cfb0714e153f97696debebe3a69b6ee93594b99617912fc50a170a56af489079417ff760d67c80da88200ca2a992e45420e817308603ae2c0ee7d59c6755b86b052da6087bbf1b5a1d05419c0f3c1f0130871e1d4c7d5a9fbe2cc62c45b9cf3ccc6b743775f50c1f0d7f9cc4ed7367868a3b9e42cc87bd33b3cba5d29c7ee6777cf561a8868038b04b619917e33b17282b377e3a5a60e7a84f018ecea2e6d9bc4b4d2216388c905305862161fcd56890dcb1a3a818dbb4988b666603ba29b699e2c4fb20050d46edf7801cbfdced3eaa1e070802e02f05a7bba5c9e922f5e9bde84e22eea1ad03593a3796ba9e78bb10a46e412d5f4884c1b0d61eae40271ed83311d8cec0a3de981d151c39bd5e7381cd61f53a6860f119512fe473715e11b65597d559af80a7f217a77badae009758f917975a74831c13a8e0777e5869ba8f2cacb132d39b0c755286ed0fe7e08ecb35574f0a0a3b39dd9e26edcdc79b0c5e1bf0b01a067e9d0b5a6b417bea6ac6c5c237e854e9f48f38a1447d44a9dc80fee7308cc1fba276c6bbc0b1db8e25022b9d9939460489e5aa7461158fde775f69329b01dde4475375c2d9f249de0a60e11f9e5081a915189636a273e5e049fd4d78e93e143583cee8f546825058b48998fa9bb1aaf0ed5519459962ee360e02558e82a0589e1b830f7038bc7a9d5440e1d7b9494c1e9d42b5e9221232e17d71844e2c464ab80fa5e3add8360e76fae025e39cc1f81bddb1f2546007a68e943788c0657091b259ca98bcbeb19eaeeae01f62850999bc5d7d50d76b0261eb2428302cc9e029fd6878a220b4618e614dff239ae8696883ff1b7ae80013ce6cbcdedc8f3d90d0f097ea31b51b2907e007af6a9f9b1396edc89df150001228205c6c2210cf8c733ea3491a23e3094ff9b6d0d80cbdec47993ac2506a89fdef466b56c53402d465b1d5280acece96e0fbb29a0746ae19c571a4f1ddce214f72662d2ee0068140d668d98947642835a010d213674d9e133b16716fead5b7bf998dce77ec3e1ba70757cf8ab12e6dba4061cb93fa579a5fac8fa1bb002f5c953c41269efa9e973f0de14db66f883fa239abd4c703e6558208b39d7ca6dd33037a8f39adec26382495aa69b148ba0be617cbb2e0139d72a61321648583c7e6241844e758c6499c609f54d209b5989c747ef1dd7a391cba65f3c88d2d925a6689d479d6b3175037b26a67375d1ea2cf454939fa105ab51d780e2ade42481b64bf69232a1b7831a80bff776f06fce7830e751e752cdaece050c35b1c97dedd1b48bc44c6716f1e6f1d9db77b512922888189d38791f97ef54c629636624c949c4f1190b2ad6cf809cba4227e35ff3855aa471b8b5051051a2ffe20afa4266780254225a2569d9a6df2443b6661b0ac321e4153d2e196c1dbd0317e23a1bf5bb25697c7177e354c0918b9da0b4a86b87d8113a2735b5b50be67a0dea301f53d149190f6c87d47b8d4822842f3b60b84620f88e01f15294a5b07756aa02f7bb6e3d11ea79a002997f566501d280672f15122fe3ddfe6a6bc6506b65ba511634fadb12fdf89abda99e82cdc3e0e071f75b516ae4e7c57b1384e21f5350b0fe121d722b736fafa88f270f58e8385a30ab4f4f8af815e1bc60ea9d058491f8c9e69c07782301a4f4730a741424a43c35f81aad117fd182c6ce2a7c7c28db61084d41effec4014ebcd79627422cede35e25111373d8299204d27e0057b8c938f1ec4f37ab0a0779baa14a5d09cc499e1aed1a92660cf877480440da749fe9c4fd8b8c3c5259a8f190bd1ec0dfa9cfe471d944a14c552320962e0e77bb6cedfe614d704e7a9181783da1b14e273514fc5dccdb9bcc54ed87cb4b5d4749daa40682e578ed7bc38228535bbbbc691d5952631253856e8d50212af80b169911172fa45b5ef562c10813ba9a943cf93c72f0d42fcc0af4daa2d7104a58735cfd3bdf7d362103ee1d6ed15b79d12c62fc374a2825b51fceecd18f3ff14f21ee8731e85834274ad97a49445fc1d114a4f129d2a9f4b5586d1cd5a846680b5e84af5dfaf548b9d66ac86a909c9e32f3010a4d7e907e66ddf0b1641bc2a19b4d88430478aa6c82a9bb48da9c0d6e74ca14a2321d35b30c088db2e76dc3107227ccc74770a40e4dd21bdbd087a02706f20a1a91dee731170f20f2642ac912ceb4424c491f6a192184db263727188c143e528186ac8edb025392648fa0c4a1d4f8c36e2f85ee119fe1a0932e864c5e9465b72a1acb91c6dd90800ad0fd3ecc2cbc7159b1f7d77f8476f9bb00c590be8f928084c1240e267593e53aa0d7e855000f539a4f821fb88825f9407ed012ad6aa2cf3bce69fbf9c7a3ab93ceed4ccf5e0e6954a2878412d5352a5af699cc4e779c93c8f249a3801ec004e41a9088f3dbff05ceb335221d3543c0f61d7f17c62896461172f038c90a740ffef0b93f3c0c30bcbd7b475ae855080c9b18f07c6a0b60b14d47d985efbea1d71199c26ed43397bd519f22974ff23b39f0334a6013b7edecb71b5a0b94c1d21f639256ca6045771030179134e5f31b7c677f4fe899d707fe53d480315d94ebe1e718009f320c3fee33161b400e0cb6a98705d06bc65ce3f810535b9a43f84ee3502c6dce9a0111a6d62d89d56922591c0e62836c25e6c4d396044fdd08d708b848f85f41c8a39122547811eb1bac6998604724509b7548b59c7e5ac7e2d76d10334bc5d72b75c18a9bc4ca94cecc258052edaebc22aab005953b02b6116a6c1af4037de0742dd78e38b9017604d62f916573eb33355977d7439d2cc909b71c6f2b7ec1604cbe54bea8de1eb3273771f48b9a5a811683bbf457ffe5e4fdc126cb0cb9202e132a3a5f29cd96b69f8944c6f0893a4feeddcea4748cb36f34f22cb2908349cac07696f2f3696cd1ce3df77d2907b5b465e77472fa26194dca53268f3d368d24cde16938c6c9d481a6c1f6d37a1c3d41e2b758e1a4100d8123d5097b8d02a136e8a242ba362b90a4fcf807d6a9d2cf69a017472e7c5cfc94af6c69623886182a0831cae9d0094a257caf7dbe547a99a1df7b506103d43fdf70a0122324edf841686ecef81484a4f4b7a598db66427acb21732b7ac8c9c2e1d6d3978f9ebe6f9d08b133e567d0e22a2c01d5a4c8c72e0db0e6590fa0a68a6b0280308cfcf3fc3e4b62399e531323ea978e13a6cf7b0d94647321b6f7647ee3567c6babd4797457c3f5db34c4e93ec2e44c08fdf59b780c58c16bbd478652a6e73a74fd6862717da61e0ab19dc4a7785e3c70841b7b4b1717370950f4e157074d379763e81786af8a7e50201b4213ba57b099edbd24017c64c95381ddb261241a6f4368b6dd858d36a4dadb86c11df6a50c471577f736227571a985c03f62453ae8e4c18930a782842ee318190916183e79cbdfbc11c7dcd674e12d9408e2d6c882e286c293dcce93b61e77e3b9abc74b538d232f4986c44ae084667610488de0c6fb4a4f1494017bb1d2462c8c9e966c9cf197697e5d53c411f2a6707e9773188b2acd2ddb24938877c75751389f170d3ddc4bb1fd1fb0b7eda80a88ee3d150a9420db2acfa92ac975e3136724d4b0e94a001", + "0xcec5070d609dd3497f72bde07fc96ba0e0cdd062e6eaf24295ad4ccfc41d4609": "0x104c3d674d2a01060f0ded218e5dcc6f90c1726f43df79885eb3e22d97a20d54214c3d674d2a01060f0ded218e5dcc6f90c1726f43df79885eb3e22d97a20d5421c7d7d38d16bc23c6321152c50306212dc22c0efc04a2e52b5cccfc31ab3d7811c7d7d38d16bc23c6321152c50306212dc22c0efc04a2e52b5cccfc31ab3d7811c5c07ba203d7375675f5c1ebe70f0a5bb729ae57b48bcc877fcc2ab21309b762c5c07ba203d7375675f5c1ebe70f0a5bb729ae57b48bcc877fcc2ab21309b7620b2d0013fb974794bd7aa452465b567d48ef70373fe231a637c1fb7c547e85b30b2d0013fb974794bd7aa452465b567d48ef70373fe231a637c1fb7c547e85b3", + "0xd5e1a2fa16732ce6906189438c0a82c64e7b9012096b41c4eb3aaf947f6ea429": "0x0000", + "0x26aa394eea5630e07c48ae0c9558cef7a44704b568d21667356a5a050c118746b4def25cfda6ef3a00000000": "0x4545454545454545454545454545454545454545454545454545454545454545", + "0x26aa394eea5630e07c48ae0c9558cef7a7fd6c28836b9a28522dc924110cf439": "0x01", + "0x3c311d57d4daf52904616cf69648081e5e0621c4869aa60c02be9adcc98a0d1d": "0x104c3d674d2a01060f0ded218e5dcc6f90c1726f43df79885eb3e22d97a20d5421c7d7d38d16bc23c6321152c50306212dc22c0efc04a2e52b5cccfc31ab3d7811c5c07ba203d7375675f5c1ebe70f0a5bb729ae57b48bcc877fcc2ab21309b7620b2d0013fb974794bd7aa452465b567d48ef70373fe231a637c1fb7c547e85b3", + "0x267ada16405529c2f7ef2727d71edbde4e7b9012096b41c4eb3aaf947f6ea429": "0x0000", + "0x5e8a19e3cd1b7c148b33880c479c02814e7b9012096b41c4eb3aaf947f6ea429": "0x0000", + "0x7b3237373ffdfeb1cab4222e3b520d6b4e7b9012096b41c4eb3aaf947f6ea429": "0x0000", + "0x26aa394eea5630e07c48ae0c9558cef7b99d880ec681799c0cf30e8886371da971163c33bfa29130f6489d001e7a8a29c5c07ba203d7375675f5c1ebe70f0a5bb729ae57b48bcc877fcc2ab21309b762": "0x0000000000000000010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "0xe38f185207498abb5c213d0fb059b3d84e7b9012096b41c4eb3aaf947f6ea429": "0x0000" + }, + "childrenDefault": {} + } + } +} \ No newline at end of file diff --git a/cumulus/parachains/chain-specs/asset-hub-polkadot.json b/cumulus/parachains/chain-specs/asset-hub-polkadot.json new file mode 100644 index 000000000000..46f3e0e4a957 --- /dev/null +++ b/cumulus/parachains/chain-specs/asset-hub-polkadot.json @@ -0,0 +1,62 @@ +{ + "name": "Polkadot Asset Hub", + "id": "asset-hub-polkadot", + "chainType": "Live", + "bootNodes": [ + "/ip4/34.65.251.121/tcp/30334/p2p/12D3KooWG3GrM6XKMM4gp3cvemdwUvu96ziYoJmqmetLZBXE8bSa", + "/ip4/34.65.35.228/tcp/30334/p2p/12D3KooWMRyTLrCEPcAQD6c4EnudL3vVzg9zji3whvsMYPUYevpq", + "/dns/polkadot-asset-hub-connect-0.polkadot.io/tcp/30334/p2p/12D3KooWLHqbcQtoBygf7GJgVjVa3TaeLuf7VbicNdooaCmQM2JZ", + "/dns/polkadot-asset-hub-connect-0.polkadot.io/tcp/443/wss/p2p/12D3KooWLHqbcQtoBygf7GJgVjVa3TaeLuf7VbicNdooaCmQM2JZ", + "/dns/polkadot-asset-hub-connect-1.polkadot.io/tcp/30334/p2p/12D3KooWNDrKSayoZXGGE2dRSFW2g1iGPq3fTZE2U39ma9yZGKd3", + "/dns/polkadot-asset-hub-connect-1.polkadot.io/tcp/443/wss/p2p/12D3KooWNDrKSayoZXGGE2dRSFW2g1iGPq3fTZE2U39ma9yZGKd3", + "/dns/polkadot-asset-hub-connect-2.polkadot.io/tcp/30334/p2p/12D3KooWApa2JW4rbLtgzuK7fjLMupLS9HZheX9cdkQKyu6AnGrP", + "/dns/polkadot-asset-hub-connect-2.polkadot.io/tcp/443/wss/p2p/12D3KooWApa2JW4rbLtgzuK7fjLMupLS9HZheX9cdkQKyu6AnGrP", + "/dns/polkadot-asset-hub-connect-3.polkadot.io/tcp/30334/p2p/12D3KooWRsVeHqRs2iKmjLiguxp8myL4G2mDAWhtX2jHwyWujseV", + "/dns/polkadot-asset-hub-connect-3.polkadot.io/tcp/443/wss/p2p/12D3KooWRsVeHqRs2iKmjLiguxp8myL4G2mDAWhtX2jHwyWujseV", + "/dns/boot.stake.plus/tcp/35333/p2p/12D3KooWFrQjYaPZSSLLxEVmoaHFcrF6VoY4awG4KRSLaqy3JCdQ", + "/dns/boot.stake.plus/tcp/35334/wss/p2p/12D3KooWFrQjYaPZSSLLxEVmoaHFcrF6VoY4awG4KRSLaqy3JCdQ", + "/dns/boot.metaspan.io/tcp/16052/p2p/12D3KooWLwiJuvqQUB4kYaSjLenFKH9dWZhGZ4qi7pSb3sUYU651", + "/dns/boot.metaspan.io/tcp/16056/wss/p2p/12D3KooWLwiJuvqQUB4kYaSjLenFKH9dWZhGZ4qi7pSb3sUYU651", + "/dns/boot-cr.gatotech.network/tcp/33110/p2p/12D3KooWKgwQfAeDoJARdtxFNNWfbYmcu6s4yUuSifnNoDgzHZgm", + "/dns/boot-cr.gatotech.network/tcp/35110/wss/p2p/12D3KooWKgwQfAeDoJARdtxFNNWfbYmcu6s4yUuSifnNoDgzHZgm", + "/dns/statemint-bootnode.turboflakes.io/tcp/30315/p2p/12D3KooWL8CyLww3m3pRySQGGYGNJhWDMqko3j5xi67ckP7hDUvo", + "/dns/statemint-bootnode.turboflakes.io/tcp/30415/wss/p2p/12D3KooWL8CyLww3m3pRySQGGYGNJhWDMqko3j5xi67ckP7hDUvo", + "/dns/boot-node.helikon.io/tcp/10220/p2p/12D3KooW9uybhguhDjVJc3U3kgZC3i8rWmAnSpbnJkmuR7C6ZsRW", + "/dns/boot-node.helikon.io/tcp/10222/wss/p2p/12D3KooW9uybhguhDjVJc3U3kgZC3i8rWmAnSpbnJkmuR7C6ZsRW", + "/dns/statemint.bootnode.amforc.com/tcp/30341/p2p/12D3KooWByohP9FXn7ao8syS167qJsbFdpa7fY2Y24xbKtt3r7Ls", + "/dns/statemint.bootnode.amforc.com/tcp/30333/wss/p2p/12D3KooWByohP9FXn7ao8syS167qJsbFdpa7fY2Y24xbKtt3r7Ls", + "/dns/statemint-boot-ng.dwellir.com/tcp/30344/p2p/12D3KooWEFrNuNk8fPdQS2hf34Gmqi6dGSvrETshGJUrqrvfRDZr", + "/dns/statemint-boot-ng.dwellir.com/tcp/443/wss/p2p/12D3KooWEFrNuNk8fPdQS2hf34Gmqi6dGSvrETshGJUrqrvfRDZr" + ], + "telemetryEndpoints": null, + "protocolId": null, + "properties": { + "ss58Format": 0, + "tokenDecimals": 10, + "tokenSymbol": "DOT" + }, + "relay_chain": "polkadot", + "para_id": 1000, + "consensusEngine": null, + "codeSubstitutes": {}, + "genesis": { + "raw": { + "top": { + "0x0d715f2646c8f85767b5d2764bb278264e7b9012096b41c4eb3aaf947f6ea429": "0x0000", + "0x0d715f2646c8f85767b5d2764bb2782604a74d81251e398fd8a0a4d55023bb3f": "0xe8030000", + "0x26aa394eea5630e07c48ae0c9558cef75684a022a34dd8bfa2baaf44f172b710": "0x01", + "0x45323df7cc47150b3930e2666b0aa3134e7b9012096b41c4eb3aaf947f6ea429": "0x0000", + "0x26aa394eea5630e07c48ae0c9558cef78a42f33323cb5ced3b44dd825fda9fcc": "0x4545454545454545454545454545454545454545454545454545454545454545", + "0x26aa394eea5630e07c48ae0c9558cef7a44704b568d21667356a5a050c118746b4def25cfda6ef3a00000000": "0x4545454545454545454545454545454545454545454545454545454545454545", + "0x26aa394eea5630e07c48ae0c9558cef7f9cce9c888469bb1a0dceaa129672ef8": "0x08147368656c6c", + "0x79e2fe5d327165001f8232643023ed8b4e7b9012096b41c4eb3aaf947f6ea429": "0x0000", + "0x3a636f6465": "0x52bc537646db8e0528b52ffd0058449e04ae95c504114c108066940e98db59ddf6af6efb57b7dde0b64469d187d03f0c9208338b0a9eb6f31f3d0dab728101fedf5603adc13d96d400acfcf610cbaa56a582dd86ca95fddffd6def4db6dc52ca94520a3b115310ff106bf4ed568cbaeacc358aede3df1a119009a9ebcf35e2d7a3228081c842f12de71abdbaa558cb26ed8b1e4708e99b4ff5c2375fd2f34d0ec57cfbd42f3fd5d97f5aa37e47cd7ed70809d6d09020c290c54f265f38c2ab0be9118597d725020bb23c10d6c13fb7f4884c8fa6e0f2cf298c88f5f3032ea882fcf98122e8e0495e70f043fae5cb1e607e1299610c252b7e1255b1c232c34fa21498e115066390603046942db480072de0c1b39330226be59f572cd8f2e5cb6b10269b007d9542fc7cf21222f843fae59b5318103d628114fe79931f283d51e9f9a75d5c15bce0350e599606d1a329c8f0cd3736e7f89cb121edeb96bb140b32b45fa273c6829cfff4c6a947537879760a23c23bf8e70f13c2fe56aaf2ec747295679dbdc5c9bfde04beba1e4db182576c487ff9f2ea456f9f1762e0c5dff89df20e8b6fb74194bf31b4cf6e71746e291684a5f3c586ac37395579a61ec5008cc780708bfa2ecea26fde116788c342c80199fb2c9bcc686ffec3968b43fae5cb97f5c688dcf8f56db1c98c2f80d87876587c47227e1bcf6ef1a5584721f676c680b09344d62b9ba61e51a1e589f85b4ef626fbed7de33bde788efa1b89ac572f72cb62581ca47e14d3de2e8daa8777b15d2e3e89a209e751c43c5174b9f82453acf90f6b9cea384248af7228e69b0ce53c117f93549cb7ab17bee72d97077f9746adc3bbf8a4270a232df8f2e5cb1720e7967bbadceec10ced97a702c5819cb3bae506f37c352a18ff62f39fb65ae4576fb1df0a5a40a6fec34f54cb154ca86fc2df8125fb46640ac6ab7754309ebfaf8efa86b7dc2587b79a9bb6b6ef06cc04418bfc1d950eaf1810ffc31cf78bd6c91675372bd6be15c380acbd415920f692b6d8715d310664eb21b082648d4d99a54264cd8378e5e2082578d7311959c20b07443d31deede0d3a4bc72e7a62ae2086946ed3be3875ec57d1d3e4128974076a2f7eb166cff61783dfb7ad9b7bb95eb12a2f7eccf15233274837de3642095cf7daee4bc74f8e45cb10428cb49b9bea85f5191e14501234268408dc378e709e0d3341d41013ecdd20f9fa66631824ffcce7ba878e744b04f03e9174db37ccdcf9ec7a1bc9ddba558107406c25e79c380ecb353d16a18037eb8abc818907576c682d8dde2d8bc00f6f5f5c586f4108c9243d639874f943bb7a8a85fe293f3acc67d894f7a7402162874e796553915a1577152fe288771163d152957cc882227505464a37f51685d5f31210cc52f9fb8bdbcfe50e41666b184406fb7ba1d6c87edf6a98eb323e51052de9473a7ffc3941482eeacc52cab2f224e5e6e294651de0dd961905b1b71dad7db39e2b4b3536e2d96809f57dd31295f5f8c083be50d849d72c5822877d0895ee5d65eaef225edcf61f4f29e5771ee3f77feded07e79e85647a2f7ed2f4e76de73bfa154ddd1fec38a0171de4fcea27f4ec5d92e049d72ab31204b2e5f42f4def22543eac5c8e88966be72a2eb496e5d975fd77579f94a95a7fd8a73bfafe8dc524cc872f9ca2d521c32c0aff240ef38f9a13b270571de3eb45fbe72c51450f49554ddc11810e750b6ff34f55cb4dad917c87e7bcb480bad686f1378d1dc6ab1a41863ba32d97a49bb302ada858025a472e894abf3450a42f2ca7f9814f515aa52b1c5b88709a99c1449bece0ee3dc87be1810e815ccc961d3c6c626dd1fde5db762f62dc58274653236e5b0491b164492b3e849fed316293aafaad8647fee3b27c526fbce2dd665caa92a3aab97bb6186fa7180f4438772bf8a2b8528af9c14f59dab8ffd175d79d41b9f7a5ad0107ce74328afe415a36c9a39afdebcbdc426e8ea2420fb904d0a23ce73edc2c8e883788b8a9372e896a5582567d1574e8a739fe430ce206bf4437bf4aa3c2487fed3a4b85e45f61f86d70e352acee64f0eed3b59f4f645611555898296216c59c31e62500620c52ce5129bd63336ad13914ddfebd7b7c7afaf17c127f7ebce27c5d245caafebb0cf022d11beae3a2b85f4a8d93b2220136a07e2e7af5bee52f5317bde1529a07a67b9e6b3e574f2edb33242cff04e5269ee1a9bbb280121bc80e50b907ac7f9c4f77c9ea4a88aa77c3a79e7aa3f5485987a2445099e689f924a348c1fea2f5ffe492a4fa83b29c2c20b509346f3897772b6cfead97fba23106fedd5a2ba6216d02b44015220be9d6c11376bc1b2f42aea1ad813285ef43376656f47cf0eaf8c08eb275b571680ba5a961220d3a328bc703eb1b39bf8c4cc5164f1dc40cccc4c58eb1b3d094b5f7566f6ecd6aecfeb797723ffd13779185f904f731faafa589f3dd97e076909db635ebec94c8cd5d7c67eacc9bbb87c930b467d2c59a31f32c0afb32b46a4192d262433faf58b4ffa6cf4ab9abdfe50d4cb70b0f4954f939d7d7d36b75aecc9d89bab2b46845da84965534bf9c345bc10b0940059f31e3e4dd8834f3333f169f6bc73e744f0a9bdf3129f144b1c8ede790efb309073e553ff2ce21dbbf31a3eb53b777ef169ddb9ea3829a4474e2c2540e67c9acdc4a7e9dfdeaec327fe3e7a62e5db2ff661a01dcf3f73be5d779358ce5567f67cbbe5e2beb5978bfad6628d4dce357feed8029a53fec396c5eaeae284ef5ce374578bd01563398b9e7565544ee7cd7f9a237417f5b7c50c3a773596d59762413a6c6a5ff7b891a38bd3dfb9d5578b952b06e52c7ae83fdc98aecc84269693a85fd9e49ce4253e356fcf69bb72ae937cafec9d677cda8dca266593e58b05d96f6cb2e4b49ce41bf5ad48d4cf6e2deb368c8bfa5c7ae7b07da67020e59dd9deb92acfcc79e7ed3f0d63e5a498c509ff3963aa32179bd61b9b9eab2f1654499c21944387d7b3532f2a16e42464137b566a51df61fb342323232323a07693fa689d6fef79fda1a85ae785a53e991e4141c6eb11145d78bc1e4191c55bba23d353a64750a8e0f5f5d91b1340760445153fdbb3c37508b57d947766f6eb33fb095f9dbdf1c9b9ab433ee9ab5b8d0535394446b98b945b7b51fec38c1951f4945b8b09794ec9f9fcb9c558d090987ffec32deebba8cf5850736b2f2a3e574cd9346b7e2dc59c9c4ebc732a4ef894bf389f2b9b28ffe917f5a938db8bfa8a3949d4cfa675d5e1b7ccc5a26193a9ebb3944fed13beba6ed46f7c6257b73aea73dcb7b8e37ee3d3babac557c7758b47d65ee38d91356f675f2c88afc5580e91ad5b0d0b5a5facc9c62676cb5d8bad2bd652d9c4fec3d65e1bf71563807e47fd22defd81a500c8ac18d599fecea7c6a676754b77648b05ad2b16645fd9d4fec31b954d137e7b0032f6762be393b249bdbd864febedcaa7fd097f66df6eed95f149bf5db1f51ffe618e3843e0b3c367893384bd397b9344fb2b954db3bdba6242d6594ef6f51fe6dd24584a808cbd5df9344bdfde5ee2937a7b0e9fd6db1bfb2c507bc627e5c2065cbe5df9a43f6bbe5d755a0af9eb0f45bb412c1522d323232e2ff3ca05942baf3296ea8b2293af58d410c553af58d250c6efab8da5a64c9db5ae7c9aea2b954deaea45bb332c3d329af24a59ca93a9b3742753f7b400e40553484f0e2f0e0f0caf0c4f0a2f0c4f0c8f0c8f0bef8bc7c5cbc2d3c20be361e169795b7867785f7860bc313c2abc2a3c2f1e973785f78497e5e9e04d7956bc123c285e94d782c782b782a7829782878207e59de0b9e0e1e0dde055f16cf06af068f0a4bc193c19bc183c2a1e0cde0b1c196e0e4e0e2e0eae8b0ba36de0d4e0b83838bca3ae82c570657066e829382f4d856687ae8223833b432ba3e9a1e5c119c1a5c0cdc0c9c061e170e09ce09ae098e08ee092e096e0b47057381ab81c3818b81fb42f4e076e05ae8a1b82abc201c149712570460e8ab60747859be25ce0b0b820b83b70154f8b77e525c19dc041816fd070683d683c7839705f7062682374111a8bb6d244e821b410d6047c85f6c25f3412d80aec054b81a7c050e02a70172be5c161cbb057582fb60a4b857542103adc97a5410420c001258a68200318b840050e70c4c7007a00bd2d1e1326400197078787d784352a7242822746208210380182261f2062b264a8092694782089d044f2a83c1f382dab048706c7056705e785ab4283d25cb059dc145c96b68246458bb25e78667026682960373430da96e685b78366a5a1a0c160a5d05ed088d058e0be7065383db83d74165a0c0d466fa1a1d05a68366c150d0637468761dde0a27052b827ac065e037771547058705758315c1d96097bb45dec11d60adb83a6413b01a381c3d81b6c171606cb86b685a6a55da159a179c158ec969dc24661b95828ec1316cb6ab149d8256c1b56080b84dd01a761b56c95cdc152591f2c0ff68ad5c16a61bfb0536c0956066b83adc1a260a378c010053c23210e28c2009cc5dad76d68a8b88f30416203459a40e2c812458a58db4a283952a40849f748920d2041a4e4031c284294c4912548945082a448911b07d332502638a0044991248a30c10125429430818408892449983800511247922461e20041740c8890587244c9910ec4a6429984e088501126458e28c14412479428c224044786286102091326471e70a35fa02040d2c42f3922b48489091089ad023d42848412489220d1a4c8910f1cf9400320a0c4910e7400090804d129502642491c592289964299102939b2e4c8124a90781b2941c2011cce832681848912244b889c38522404499a680289224b8e289104c907808492602209500edf413d5004092224944082e8c80264d80e2240920409244448942099c17250a1249848b2812247883e90c411278ecc301c74091307b8645a0c8a8b2b5bbc16597a6464f45bd4378fa7c053d826966aaaaa3a76765cb75de675ccddda39d78dd9355e755ba3b9c66b6d6b40d7dac2d71cc2ca44ea6632c176bb37cc6d9d73cbed9cd3e61cb3e55ceb1acc4d5114e51ac31aae063b08bbc1aa2184eb1aa9c11a4e9d53e8b4e1ba57c335e6edd61a1031ba95bb6e3b07371cadadd3f961d9ad5bc7bc8dd7ed2e4376ce396eae313be79a73ee6a55b5cbcddd5c63d7ad21ec6ecdb5065d7bf2b9768dd755ce6d7330ec5c734ea606e59c73d0ed6e3bc7aebb39e75a43ede61a352ad78ed9f1cdcd8dbb71cdb9beb9b971cceea6dbb91bbee11b66e76e9ccc0db36ce8fa4976ea5e2bb783ad9dd3d6ae356ce7dc3676ce717371bb3599d69c6539c78e1d376edc1c376e8d5d73ccce3576ceb9d6989949ce39b7aead6bcd39e77897dd4d63c76e97ddf23a6eccdc1caf73cd35e798991db773bcccbb8e1b6407e1766b8eb9b5b6636eae612355b09fc31a356ab4d620bb6dfddaed6ebba1baabbb3674b7edeebed696a276176aab6c5ccc3eac73eb761536754cb5d66ad4a84151356a3c2dbc2f8088b9c9a9219404121b489284091d383568d8a07183d5204a0209264a90584254840889073cc084a946c2e03039d20125482c91845472a4892690c8f1001222251f5822613840f4011f8e2c5184480992254d14498209120fe4501eb0c1478e2ce14091254c10219104134992209143c4c907acc7100128e204132020b2d1012548966082c4125e83680912444c80186209931f6e7488234c981c59d284079848a2c892234d9848e2c892224830512289234502207412c0104d247184898fcc12491021b181224b3041a20409074a1c40b2e44893220308800004308412478a3041d444089624f1038f2448847a6c80a0314309248e2c3185e088501122278e28d951d301206834004c88982071e2888e191dc209241c38b2a4899e98231d40620913444c8a289104c9124914214af20124387044891d9924479a1c4952c409243c7023eb0013498a744009920e748089243731479838cc12248e2449a2881347945082a4881224482c91040738c0441122278ec8264a8e34a60128a28409244c961c695284880926961451e2c892234a2c61a2c84900431419e2881012493650e40892254445889c38a2a38992232da31c82254c78e088075e1325477a0793c2eac489132745ce4911171539235ae4c44951512b6a468ad6c916151515751134a24545da46548d3871e2c4899366c449d13a71c2469cac13274eda48d1aa1175e2a4a88da813276c449dac91a275b2469c6cd11a71b24e8ab8883252b445ce48d116ad112d7a46b4a8888da81615151535235ab46ca4688b8a8ada48104cc5aaea7a8009121a2e45e634339ec9f88c9ca20424858c1457907cc6657cc6336fee3d7c82debc08f6d929ba3375bef9d53e0aa493882a5d58f1e29b2bef952fbef9ae20db572c5628e3e74ef9e633517ba75d2666517b27266aefc044ed1d2c7aefb493a25232199b2e277947a5642e925436919c47d6d625a36cbaa4b289e44057acf00987e4ed243de281976f6f5ff846464ff2c582487288acbd622d81ae586193be0e9175f7c238a18aaab6e942599bab363961cb99bd02b19c259aecc915eb2670a02bd88b78972c91edef12b8ed0ab2f61acedb97f0b3e9c7f34951ec3fbc649f88d7c7fa6c0ff5d43e9bb76fce42cd1b9bb8c9d9228c2ac8f67581843423a3c684ac91d1b733260452de24cc1a0cd715043090b187261481065528e37a40141518210e586c610578b0bcb0f8d5b57d8a7090072b6ab0050da290c31740a49fd9b6c0d22332c502041e3cf4cb9f966f57f551a90fe80ae37e17cf4e61014216df764ac6ed98cf9e87f149448ccf1e5cc4537ef934bde573c7b74f366a30dede660ed658e972dcf6e8671f7d674f92d743b71c143e350fe23fe3d0954f323edbc326e78cbc641e06f79b0cc53cc9b32c368771ba2851aaa892c591175bc2f0e2ca8042c514215c795d5858dc7750f814e3ed0f1be29eb0a93d46ce1a36b5c34807854ded30ee3b2c6353fb5a914d67f4ed333b220a36027afec358d427a910f3f2750a23e2e42f38841dcac97f79c3a03b287cbabcbd61500e61bfe42461436228df8611b1e4d03ec97fd8e2b7ca0de6c973e74f8a54a038d073cb455ebe5c5ca0179fb01190091ce80ae816d52e8a9a0f4212e9a22297e061ec2f5f3e8aa7e47402c543b7ae0b4621e85fbe2afa4939143e5144d867d153ff54e4775810033c94430678e81616448fbe32fa6a8fbe92437bf4d01d047250f8b4df4ec57d20c5b8819c917be2a03c2daf3f145d4eb888dbf2c10e7616efb6206bce25e7cdfb8e7b78d79939333232820248d95b182c054016447f9d075b5673238a18b07fa9dc1664edeaebbd3a4bded4f737eef76046147d8f572f4283560e91ed2bf6ee90f92f63a1bd7c734bf9f49e663c32cad5f43c328ab9c1a8f2501e44253ea73c73cb6141991c227b71bf31238afe492a501c28bac557e6835b3f6cf910f7ad6eddba45f5f1fa297f3b05e5696ef1e543d4b76c6cbce4945b950d6563e3038e5b7d598d01b9e1cf2dcb5d5cc31b46a41b23527373035e54d47f35eec309b27c3b8e5b7aaa22458164ca0514284f73956e56298a4746e38a05cd70561fcd5b4f9437d7fdd1595688e6357c9666f6975faeead3557aa7f9e53458107f1ade55da67b37496fdd15eac10cd1be635e42cddc89939afa9223b4bfbb4969b1a8ee398b796f6f9c19bb717fbe3798de3b496e835e4cc7eb69698b7f19bd6f2cd7f8894eed838155b4d361ea3eaceb4791baf89aa3cf3c6dbb8f2dbb417aa42d8f866d91fea433f0bac483a6ad2130da77c879e6828e53834dc2687460dcc88a2a7e18a01f1a7e17bd5d0701b0f2af90f6771daf0cc67e29cd9b711f7df73abc6860d973ed8b081831951f4365cd288356e131b9b6afcd988739f86cfc080d4d4c0d4c849c333b7f11fb6665c8a01a10183d1701bb7a1c165f029c79bb7119f70bc793f81f1cde28596175b0a9b9acbd855b0a9b98dd8534a578c4fa29bc081a2bc02c73dc729b76ce0e0386644d1e3780c1694e35676311684bf24935c8f33b49f7993f6cf8762fe49d9643f73c580646ef90f635ea3864f37de7cbfe053c99bef163ed978f305834f34bcd9f0192c888d1b6eddf0c582e00cedbb37693e780dc719dacff126ed87d6cbe3f850cce348559e89e3ec1846a4c67d904df65dcee7377e6144da716493fd1c399f673724ce101b8ee338522873cb6d48a11b27daaff11fd6b76af0ea4c0d07f3de87a89f133b0a9b9ae3c4a6824dadcac7bcb85eb0a9798db85ad8d4bc26ee176c6a7e13770b9b9a97e282c1a6e63671b9b0a9398db861c8c4b92fe3331890fdcda23ccd174a666253731a9f1175d8d4dca2713d9f37994f191fed9d1a9fd553aeea2388be8c53beeab3597aa739e535b0a0cdd2bc464e98c999cdcd42237d4f90355f9f9e05f531b45e9648fbcbc227f6e6eb059fb4a80f1dd2fe669aeccff84fcf447d99a89f45fd98381d26ce0b8bb3f4575c427d732b12edf773929c30fbe7959cd937dd91d6cdb5182587c87a5eb13541f6e4542ebfbebe59dae76708517847ff670852d8a4efe4843f37cb376f2f3e341a4bb05ef440e985da597d299f3849e927f4e73c9394fe4518350d1974e781d23bf6e7a3404df65736e981d23b29d4bc65c62db0f607490aee6e5e2696ee50f5f181f642eceda7e7dac5abef936c7d12f1eada9c04cac1166cd25f37f1e949202bba00cd1dafdd0e4b1d67d6bc01da855111d890072ee82086190035a9bdc3fc904fd5b367ed5354042098a08a315821c615b000554364fe3f9cb1152c981a9f30f399c5f82c659ef934bd9315f421a664939ba732e3d33974c83ea9190e877e7a0625a94461e333b2448a91b3f4995b7ed5c8093f6bd2bf84737d1a6e398f4c888a931ea02b287f5890f3e70ff249a8f98dafcfeb5fa41c260e399f45ef241320927291469c4e8e9e862f4644c69f62ce3952b1f1928b4c68b84c9c94d3f017677b1ab28af388876ed9c42b9e53f126d6786464347cbf3c948d05514c434a2a2467cc490fd015cead261d9845af847aa27ee745cf5810e743eb7084b4770ebfbdbb89fa36518160d4a321548133e4b9f3a742648ac54a95cf79c56245056f597ab93877975079d0c31ebefcf321f8a404503c93a26f4259ed827c1252179dab3cc65d9cfb316e597ac150eeec43e3ecce3e4e139d774c33333e342ee3ca3e364e79f6bc042939339bec394d54de7972967c262aef587c4dd374199fa599653ea18ff20ebb1372aeaf6c82693fdf979f31febe3c0dff61551f33e08ce734e27497aa8f49f9d07ce2631cbaaa0f279bdc7c8dcf9821fd43d09908cdf018179ae1ae49ff124e0e419fcf9bf42f41e3c921e8cf29777136e76f86bbd85e311a52d534673835430ed5482a53d0b814334e334323a728014941f219390504920273292e9722d31d76928cb4d82f9742752793133ecb79c4cf243d2b14e36b14239dc3384cc4e215b3de61b722293e41b2220747a0410c9c508529404e744b153d48f145185cd8c31540da3b45275593f3f96a3c3b64cf9dcff6ee9f53fedc0971fee4ec7744a8a1fdd7ee0d69b2ff248e10f8cf9350dfa49f7a429a3b39d70917b5132e6a4e5a1145cdd4c052b6948be8eeee6e539bd844013665a66faa995a6bdddddd5a6b3a408aa2288a821445398c8d2493003665ee280a42485110420829a7288a82d0298a720821a4ece05a6bad396fada9baa8950c11179b76db16f639e79cdb1fea412c8879d9313be7f8cdc1b5d65a6b6d9d7bad35fde65ec362e75c6bcef16e6b8dd739e75cb342fdbdf7de736d9923d8047d964c3b66cf37e79cfbf39ca63a5eebd452befeb005ec530bb1a0ddd57d8fa27c5755576a53942ff5de5b2aa32245edab1e5161801042081bb47864d53e5f5f29b4cefe7caec41142712577b009565e55105655554158555555418710c2ca21845e555505a5901e315362f4781763f1c8201674b1c9f90f13f16e07ef38f6c59ebf0765729abb258d59dd733def4cbde3dedb5d666ea6f6294dc8904fcf9d5f7c627ff18d9131b311454fe5400759bc8ed7231d404942c6ef783dca81174a613fac94cc12cf352d41afaaaa32b38c12cccb41bc5275b7bb7bd779d5555579950ddddddd3adf39bcd3aebeae657a2c69df5a6bae8fbabbdb7fb835190cb0a972483de7ddcde1d5aa0823851951f4b839bbc316b0df606bddad3933b7ee6eb1a9a5a0f0a15c7b2a1a79ef39f7babb1f15f89c73ce0ded33297ae8ea8da21646551ee72f3e1904346f4751d4a3de93cebd072184ef3de7ce39e764b0bbbbeb8a0595d8b4cc4e0602eccbbcdecdcccccdccbccbdc5a63e65edfdde57d3070ddddfd7cc21277c3f51f6ed72053e1999939a69d5b5395e95957bfd8d45aebf6b0a0d69a6badb564ee76ceb9eef6d6ecccccaddb3a397477773f570a0ba2562ad6dce291ad2b1694c3a65e7f6e5558d0934364ee614614bdf36f6c65a97573d75e74aeb5e65a6badbbb5f75e6badbdbbbbc9b9fdd4e0dab4b5d69a3f574cce22271573ee5c9b8c116c823e6129874fedcdc53746d6ceeeda150beafdf6acc61bc3396fcd2d8805393944b6eb199b9e53f1614614fd3e77cff9f3862d60dfbde7100b7aef518fffb96bcd397f8fa27eda397fae796badb926857a281384414a18a090d1e58bec150b1ca6f058c090e5f548075dfc34fdf3d22b1630e0a0e754b97a738b47065db1202aa41a6f8c0c6748f3ca2b295439e5cd6725718438a7dc3925a940712092845e4199c3a6b7165f3c32ca17830e1dcad9a042cab5653236656ca22e3651bea4413e153de50d836ca21c480b2e5002991ee5608bd7793dca81942f3a41d7b754171bb20fe5a49ef849c42f81b41003480b2e0d2590165cd8a44fb9bed5fc940369b18592405a6cf1e7c23ea5de79ae0fa405186ff1c880b4e8c2267dcb7a62b6a7dce29155aed86c5fb1f26916bdb2a9a288f8a15311488b30d8a40fa4851841405a6ce153d1eb33566a1fd83bcf5fef4c38e1cf920c90165fb0e9016901069bf4f52939f781b4d8c226fd1f7e4eb6a8319502ab5dd9312b06beaab78b47d65c63412d87c83aae2fe6a4e5ae2613a02f053e35e167665f229b5956c32722fee65c7a6e11c8fa507ff9f2e54bfbf5f62b71866c6b3977bf608002c0bd7261c5150664d61415b4155b7cceeb911538782be65931aa3ee67b72160da9bee37b3e295f399dbcb28985b4535878f996ef8967d72b44b1dae77cd68bef3bce7eaf95e815a27c2b21c093a36f7944952608e1052e9cf816c20b5cc07cc72a809c93461ac6a5578842a252020d03c888004f8ea0105ee0e25131c2318508591a15231f56d0032aa6f0cff526348c37a231062ca25883911190ca27d49d28c1410ebe0045194646404d1acdf695b38987804c19c6e0833d3c31320252ff612368bed909176d534fbaf9b27b94f376caf973ceedeb911555386fcd294f6b662eb4b706d547731ce7fbfc38cef5c88a19b46edfabf4ed4b7943efe7edf039f5dafb79777b7bcf0a295f62d3f3e69e8b8d4db0357f91041eac0a648ce1a00c2359052ef5c13b074b8fde7973eae3458843793f3f0e25f508075bc240049b1c0ec8f81e36395f4cd7fb154b1cb4fc621580a5f6516f9ff621b9f31eeac39507badb815e45c83bd0333e4d1bd83e25de81ee8e70c0e52711efdc467dec3b0b460c7abf1ee1400c5f6213f4a1fdf254d0507b551e48458735e551ffe117f79d7051e3de828c67c741958f6129d4de9c6bfbee73f64d40a64737e8f2edfa8c29c049c516d0ceedec3ffc6263d373c8fe1423d242fd82ec7b72b63fb728df37db295f6f5188a2b021cda90540a7e462434e3c29011446bfe43993a27f726882200f7af8f24c544b152a50f0953329fa4a3e392977fed33f0ce374e21b3604cae9c437a7dca2bce10c69fefc7973c5829e14723ef4c4cf0ef26473c680905e95673e778d0535576c08f5cddbd779bfbd1edda00caf6c52e569c5828aa87551ccb090646fdac1a7f6ed597b0dfb2cd0c3eb023034b05e8f6ec0822fe558aa71557595b074652e36b51acf02366ffe9aff6b4e80cc790f982dc1a7e745f0a9fd730a50f1cf31c03e0de8f5967fdac5bf1edffc87ab88f2cf73f8c4ffde7bcf55e74921f5c262505105142d4a24d32328471f9800b25972ae71bf5404309e3dc7b4e3d95d2cf5eea164e54a0e163678964550810e1664b0c1e2c90c2b70a08184192cac80315b09c2f3cdeb51118680b1c0722fc0b8dcaae2147a5e393bb7f89cddead6bcf2f6966e8528af8050ee60b5556b18665d72c220528cfa9890cab7f295b372c68248be9148e524392ba1e71c2b6fcd15a384dab5cdab284479d5a817a53698155dfbc0b0d87964ea1c557754cec89e5ca1eb4e767db0b89039027ef8d4ed10d0f2eded3dda67bfc856cef59e687271c73ab9a3874f2b658f49dfd43d507d8ab698220d5970010d46356003507ba63e5a06165b68c128082cd07205a8bda43e0640820eb410010f5860d102a8ddd587004673d88210aea8c1152f00b52b972960180cac766acdfca3adaeeeaaebca6555f51d9c80e6680c4380af475dc0c310b43c7b73f629d47c9e4037810341794513d29c65737df66efbde62931837825553bbd6045bc073aa3df1bc2a44fb8bed8b09e96fcc72497322f8cfd9c98bab3c6db5d5d630cf9f1cea6fcad3cdc9163d6e340c81cb6b6b150d82b0071504e10441a042082f00828b128c6106170c360b2860d8320413f4e00939a0d802042880812bf010c6d11562c0706bad41387fb882cbf55e8f9f1e45f4681fd3eb21a762e1cdeb5f768516601a34998a60d346f1de7befc99f1e6cda71bd62394215debd1e75218b1896eacc4cab0a8785e33d28701ca9421dc2404109a2d803171c62f8a97200051bae84e10628ac808b34e8cce08a296f6a96ea8a2990e480450a585460e906818b6a39a27d7eb6cc4c0fceec3f09683ef508016c5aa720c0a61b5052401ec12647c92198a3fee85121eef0fccc4db6cb1c9ff0464ffb5c3d50b51c018177e5d711c0a7f7627005964a08563016a0600858b0000428d0000c5cf8e10a1424014608650801ca5b4265056a6a168aeab1bab002e747b0699d73cfd7df83c20b25700db64fcf3273114515387bc50203287ef6b87665e818d0200b1da6008615f2600617482148e148085440404f8f9ad7a320d0e1ad572c52b04212a05073bbf31572fedc79db38df66915555054655f56c504ea8bb1fb16cf1623122cf574ea176f6f75cb11672de74e562ed8ac122b8ad858ba3d25a12625e8f80808246835e7af4f3c40545b8d2e50a25ccc04a1662152c7e4086e756a06d88a20b3dc8a18a28d4000baf22841f9ce19900075214010c528401873c74e1061743308ae2e57a3d42c3916b81c9d43e3d660f10a0a8b8c74f8f22d8b43e86a558f0f2b033343658ed597c4abcb3aecf67fbd51ae413cb8b4d0b79675b93bd5a7ab7dbdb77db2d5cc9668fdf1eed636a3e7f1003bbab8f7d37f5389fa6dfc1a6f51ebdb3ee28b5c2afcf1ffef9f52fea8f05a810ebef0760f8f7cf618d9c49741e09997e8f22ae963d3d8af841001618b8e00764d8d6b28f3384081674cd39e728caa773ce51ce398a72ce39aa41e79c7bce3de79e73cfbdd6f36a3ab57eddddedffde7bafbb5d7753cbdd989919a6b17639eb91a80ac28a223dcb5d0d6b188ed9ec523e75b70c0c7659a40ac6c0dc288ffa4f666687de4ead79f94737af6b4ebb9d7cfed34cc4dfaebb1dfb730a0b72ddcdce75777773ce756bedc4efb52fd5efbdf74edcaebb9b4fddddd4a57cea6e78299f5ebbeee69ecc170956555555d5d47992e7b08954c32692bbf2901cb2c939e79c73ce39e79c73ce39e7a073ceb9e69c738ec4a4162dab9ddc7b569c24276141fdde73ce39e7d8bdf71eeb2c75ad956c3d8715c29494c7c9536b7eafdf6386eff57befbdf7169e5ab3bf06dbe9f10f2a4ea2f6edee313333e4062f3629e5cc0dfa74ceb9766aed5a7bcd39e7dc73ceeddbaabbf9458a9d7bcebd76ee39f7d8b9e7dc6b90b44678c1523eb173563bb5e6e5f6e95c73ae39d79c6baeb7ef60299f7e9447bd881efdbadf7bfd5ebff7babbbb75de7bafdf7bfddeebd7ef3d2fd55cddafbbfb7577bfeeeed70dd94475bfee7eddefbd7eafdfebd7ef75f7d3d12162079bd4df7befb5a9bbfb7577eb58edd49a977f74bfeed6cddddddded6c5a66cea1dc724c62be2ebe2ebeae6e6d45a2fee7453ce5a7d6555531735744b089f21d6ca27c8b90ad9bd844b9b389726bb97372de7befbde7a512c9adb78e5b7763b78f99e173148cf355e579937ff092c5829c0f6692e38a99d939276bdeb6536b66fec1566bffdebbd844bdf71e33cb0bbeeea13c94bbe7449e0bb17337b7c7ddeccbed7193667bfdc3cdbedcdea31cd5989979c93e8c334911df41edeccccc8f99297d563bb5e6e51fce9dbb7e7beadef6c712b2e9f9be6efeb675fbf75cf7b5f75a77abb540acb01a9248241289e4ed44fd1042087777174228736ad8a49ead7abbd8a4edd49a7ff9072f376f3e77775b846cd2ddddd6e25cafd1eb44d6673bb5860b9db7652f35a165b5536b7e22e61fbc2fb46427917b2cc8676bae35d7d65dabf3e68238d984ac11dc1963145144114a7492e87cf74622d601ba62bdf9b60e37af143a608723306829030cda00061b3847a8f2ebd96afbf5a32348f1e11a05c4a00439b822062d9e1065073e58313c32a6e46241975bd6fe906a1ef19687e12d57cb31229a87b75c31215a86b7dc927b45211a06cdc3be10c5f2eb17112dc3af2b197ee5d07eb9e2be458aaa3cd0190baa547758569cebd0ab5d2cc87228c4f2950e89587225ce7a23495513f4954210b63ff659202eb2b6e1608390ad3fea417fada749a1c00333d8c1080d4798011072bc7d1a1033a41ef37a17cf5e536a1f2579d0e20e5a56a0451aa20031cef30ba0f0cceca28eff20ab5967c5f2822d7e7b5c2b839f482a00f2832a55d80296268c9105a8c637cfccc085511768bc726174f4d72b174630b0c1b71b28b02e74810a1a282a2f40b1a000010575b002961fd4200f35b8e9021cba80075e2abe7df392638912836fbe834fdb93063885e6072150c219ae2c01095788918312952750e9820d6aa81ce10c57a8410f5820031b2a50a8d0402606574a7087279801087140821168f8c00c7388998119b210421954d8028a2c9630834a16585a90061caf473ee0c1cf783d72039426342aba10842e1061e6f588ca171b90a1044be0010f64b085156a5ae0ae63dae1dd022dc30e34788309a8c0820dd440e3032d5ba05a0a5aaba6b0b3f495152ddfbc864fd637d752e9f5e80b3b5471810b82116568030fb650210b6080c30c0bbc7837b78bcd4239fb8b42943b0a5eae810186bb944fab65bf78bd9ae7137aee9cb121429e94d6bee7f0b53b2fdef973fe84d04e6df194432e52208477fedc92b96466646472689c9cd7bbf6cf55cee7559c101ba2efc56042a0bfc626ca5f9438247faeaf184902e1573659fc3fedae924e4f1109808091244e3c89524595cd824ffccdad9a8b54526f17364451b0c5f702da9d850979ee324861422035e3523e09c18b7d66b3663e6757afe29016820d6977de3021cf59ad79b539984b0b5fb2f8f6a237e2c13be7137314627a42dd771321cdc88885584984046d9d97504e048114bdb79cfccd511f52500ef553be00271bb50dc5d21d6dfa573cb276fb16eeca5939d562f31b3b7e1d12f1ebcfe9403e55555579f3169b3f742e399f59d55ec9092525fdf5f9c9099d9cd977ce6f739f06c4aeede1361a32f51baf473d88c1cbbc1ef5a07514625eb1c0800e5a7e7e7e10d0d323e707010930c2c6eb1111eaf0fc8ae50427d0f2034b75b6c8bca77da00ab688810fa280431d9a00862b3261384323c1a02a4214d994f7de7bed3d3047566ed01e0520c0a63da27d9cfb387904470134739eb17c61e5990b28c8f0cc7e049b588f544b0dfbfc24804debb326e7f7c9fad4a35f3f020214c0009fd8e6154b0bf4f034af474590c24ff85c5a572eb01e1b1c1a62c8b0cadb6c522456105d5f5d1a53585eb6290237378d2aba7523bda0b9e69e0adc738f7900e55d7bbd1eeda08c2f51d7c6b5c197d804b5065f6293ba4ae5610a1b5a786d5457aca1f2b0d71063e33eec6824d3a31d80f1f37a6e95fad80116bec4a655eab9d6bc104695479d17638105958643d52acb6a4a390d0a194f88c31eae70832b7c90830ccb196e20a1ccd894d5c0a6595653cac96a625e8f8a10c6b7d7232364f13373aa4fa0a4e79768497a1e5271ce91a83f480e69cfdeb60b4628e3f5c808620cf17a6404257c4ffb2c15bc5cde6d15ef7c960adf283fc87adac79b9c44ed5a34b9963aeeeddc5d15f7099b9c37783184f2c457d51a8d215ba36fd7b7c80f634d1025332ed9dc28efb4385fa37de2bc3d6ff03be6b0c995b864b3e7ddbe73237c6a3d32c295774ec4a7e6ce9dd81ffbce15feece9a959b4f8d42f1c68aa185c5c150bc88aac7776dd73e79ba4f4943b1ff6b9e3d54d5c4431e5655eb9888205afd80c2cd79834402bcb74a05ff8829730aad8c216cc4087981e64d1832e2ccbb22ce87a8382222d52e0458b0aa020450caa00d3833af8800595e556154d6caa7cfaebb069bd7d48beae59fb90a4ffac7101d0ccf9a6f30198d28323c0e1054448421d809a433e61df8e7c20e59bcb2108dfe44cd263da8dc1741f055aa762a9864deb2e664f5c874fcdb7a3b3699da30eefac2f1599005e8f765083a7f17ab483273ffd29275bb48e7282a5eae3c6f9f461961a8d29d323e6f99cf949fa1f7085609f90f269fdb856087618e5619f7d826d7fa80ad1827876929cfc3df687ae107346e7d92b39f9678f6787d1464dec1d7fe89aa68d67d3c4f10cd7a2a13cececd7fea85921d8d97fece8c127555393f3e6d987675f39d93fe3d393ecbc5f93eb1416d45ce325ed67f62c85f4a8c330e59d5bdaa31480b9f3ea33bede340567f65af3546c11b2a97915493103c2cfb2467966e84e73226ef094707cf399bd0fdff6c7b64bfbf2092d9fd9df9837de5179fec3a6f6a140ef3887979c30b34cbfe59d37394b1605da2704bae31c0a2e53bc73eb8277ce57799c73dcdf176453b5bcf3a964c0d4288ffe117c9a3320c0a729f44d4deb55bcd4b40e2354d33a159b9ad654935d40e0b76739f4c4b76f526aefcc357a824dce9dd8294eb668fbd9c0521d664bf747bb74f707437129e563adef3216443d48c549f13aa76207b20ed2ae26b662e31de78a5527ca1dc99d239124113f49e20ca9bcbd6513fef5ca2d8ed38de0dbb992aba6e78b0969bfbed890fecaad6d4f2c600951f6ff7c5588e78c09e95fb778a8bf94f195739cfccf37364c081b7d2597544e045f9587bdb1a02a36e1afdc525e6d18d2dc7e921cea378b1e4a29b2e6dc60e1905c7ffa93dc22c979c4535eb5cf06fdc5381fc9daa08a096c72f3cf553e49658ae65238d79a3b75eb4d96a47032eb1d752964a97794a57a916b5058aa33f7e89b6f955728304a2645bb402f4a8672f9d6b3581011385e0346cb9b7812d193240946cb497109e816c9ad38042184de91249d1c11710ea18b1347cefdcbadbd7060531fba2dc8a64c993b2588bafe15f1cd6bc40b7a8d77846ef1c87eb8fda76bdcd2abb1a092c358f292370c488d9766cce4b8b558d08dd7f069f3307be8aab309a27fe2d7a8779a433923f0d1e711df3e21f0ddae7fc91dfb3bdacfcb872c9f4fdcf0d97eb9894f42d04d7db90dbfdc86bbbb0d97433e481d28b2e6347cee94a17de83f8c139707cad3dc822d2fbf66e340bf2c877e794718673b8eff74431bfec36b64e3cd6bc869f3738d6c6cdcc9095b4f279ee4caa71cbf71cb2dc823533639a22779130ad027b975c493e4d06cd2bf04c99d5bae7fb9c721929324c999143d49326927872cbfbc864377de4344fb6ded458aee8a05b90d771127462a32eeed4c8abe25931a32c90dd9e4e67d701b52d53471e4900f92ca1498c3600e037ba7498149189702f3cca5889159ef349771293219e3d6e53ba57d64a491de691e23715cdb07465aaeed83c91b572ca78d348e9cb0869cd0923323c99939394b50b9cc9d7213f4ee90dd780f9b9a43572cc88df7e8374676e333bcdde29bbee19b19d978077a2936e555d4b7894b1c8d38fdafeb29ca6be24c72bdf39962c6a5909991c160fb4c11e352c0c4c0c064ed3345e652c46431313ee3cd4bed33054daeeca3bcb30dca37e6008a4b031628c87e795dc8a037b7164b80bee5442cf9ee90e10ca1bca24205df3cc87e796a4a4bf9e6aaaaaaea00b85db87cf3dddd5d0750fcac7c6bcecccc0e784d86976fdedded000744f2a32bad39a03907e59b3be7807e5a648539808148be259b4d8a031688e4d675591891ca29b72e388b9e9254482dca37a7248e90ca290f52c92dca53f43f1ce4798f808c6f0ee59b4cd2a03c03e5600bddb68a60a9cebca63c5f6ce2dedde71d1b0b6a5833fad6647c9bdda5d45cbe796f691fe74dce240d8ad562d6846c2f3671a97d9a94de61af9c54b2e42c5da576c4ce580318c849cb4befb03729ed43b925a753959c196c529eb7fc6cd9fa4fb7e6f2134a79bef8a4a441f98cb941e90665c7c8ae298f0d96eacc1c5e9ed2f26df190597ced95dea1dcd5220684fd391ff189ab406df1cda924e889b35047ead3c39b5359d46700de9cbaa23e4ede669b1284cf66a43eae4b1ed4d43e1b8c6fde5fd09323834d51d487086fdea4a88f00bc7973519f1e6fde5dd42700debcbda88f8f376f32d4878737ef2dea43086fb3870ed71ef5519faa79a63e9595de691d6fbeeac387376f7acae1cda19e4cdefcd21310dee44c426979caf90a9bf8e80e195ff9de42f2119bb2f0a93ae22ae8a97a429545cbb7bb2eed7371e91d32f874796193cb839eae39a82908e9bacc67f4edd594f6c9a4f48e95f6c9744c791c95956f6fbe978f48798e18849b220e0722e2f0f73653f83484d481c39beb70abafea884fd995ea097aca96a0a6f6ec28cbb75f5cda87664bef78e1134d976b0e7aa269839afae2322f32be3d93d23e3651b22aed639349c9aac49ab75a6bef5190a2288a8215849044b22ecbb2ae0bbb1666b5616c74c1306ce990c15c4b876ce244a14396b90573e9449cb7666af094de6997c252d8ca0c8c0a57a9f2ed5676e9c41bc934302a0c85a1d4d4d4cc94281d4d7a99b974a2cd5b3468dcf0133662a3196f8a520ce9a506169443ca2e65b0a97dc920e3db651741320b26e4c923e569b7c18e90577a0773c56c70b16e2e22e20ecdf388528bcc226564e44e5c2001c4f58251d92e5dbe77a202e950ad41b1c11ac040398ec8a82a9256241269a6479447f28a0f3ed8b821e546141b64d8f062a38b0d2e36b6d8c4687303c78ae344f101c4d5b2597a470e9ba5b2b1457de0709c28edb37395b89472302abb65b7d490b1bab0b03d3abaae9bec7bc41c56aae4e454507e30da02b3050cb657aec4c4d4e091e1604136bc688ece348c8d2e6ccab978643958504e17363565230c31d8d4578ed85c27c6bc4f944757ac54519eae5103e78651d699cd17365bd864a305270a0e15ea05c70798b789d2353659fce0ca3e3659f04efb0f3e8098a347cc718a39b225645766f8cc8e8c24193e0188d24a9529cad34eb385060db7b14146ef74a9e4ca3e36b8788b385268b0204ae2445921380db655aae0b0d172e335385170a2e0d011378b9a1a6cad58c9c180f0db01e7ca1171b84fdcf153d4e13a11fb00447924af482bca23233373038a8d30d8d46e8a36b8d06034d8c48972f4ed345bdac7464bef34cd966f0110c1c3468b966fa7a103475c1eb0a99d060d6ca774f10103c22fbbd8e1c6f5a64885c7858839ac284ff3c4c47843d813b784515923231c3678e24ae99d761b581025312a1ba5ddf2e1d289969487f9214aefb4036113a57dac097f905d62f540c4244b74216ac2cb134eb45b372e9d083f4754c248bbf5c3453d10d18804b49b22048ec81131c0a6f61c18052c9d6b88b8847fc889d10fe1168f6c8737c7e13a18111cde3c88f8c6c870b8b24987eff020fc87ad20220ed7dfe13ab0a01d72880c875b7bedc0a10333a2e871b862427048226463930ed9d3f3a38351e9d1a39f4dbcda0d4607e58d721d38ae46e1b872441dee03107358c951a577da858839a6288f4f8fb7d3b4a19fe4ed345d48de964f1a2f928cde69ef8936c2e09d0e6ad2061738643b6e60a631b2f51c56d4c78e89134576699f1d6f3f7accdd06171b5c5c474747103a31e775e8b074ae1c5187bb080037c5201c8848b9107187ebc4f6345ebe71a2e8d854691f9e56bd8ea4b233e52b0740fc014aefb4f344e9a577da71a234d9800a6847ca2e75c0b103874e10140e2c48070e1e59109e030b4ad2a0bc0ecf8105e9c0e1b341790aca377f4e1ca1bd337b4b15df5c75e890e9cc27a47cf3f9c4946fb3bb7c108e23ce240dca531e440e2c884927f69b22951d0762c76da2b48f0d2e6d33c586077c0ac2db6daaf04987b7db08814f948e4d946f7731eb9d76c5a8c0de9143b6414429069bda7544e945d2814ded36b874ebc81c1890f673d8d18151593964ebb384e3d2891c4410392e9db83b760071e9447d53c4a1824ded40441c296cca2171a2c421e3e236c2601f2906f360414dca2e6c6a5f2fd93a006e4a363466d4d000312393c598726070b84e24bdce741c519547a7c91f6ca67cbb8c536ef9f618674f21bb11a7c9469c37a67cbb0f71ca247c7b4e9c8d05274e538d387b0a373851bebd1467fb6993c5b7dbc4e934e26c2c33e2f49a386d8e666926ce1e99382516df9ed9e0327b0a3f6597d983c5097fdae0f2d08ab3942307df5ec569fa29bb643f6597676fd810ca790b3ef1153e7af0156b549c2b466901baa2492594966f6cd21c5e5e7fe875c21803c4e0c2ca936f3a7c7b0e174428e3db5b3bbb2bee9578e58b8276b5582158751a0b0d9a003eb7440b28df9e917174842e3fe333de6ec5d4382ba6c65ae8d4c2d0f8c388b477e6104ee8336e913022ce639cc280143d8cf1197d9a3829b77c264eca17e88a3551a8aadc79e53171167de5ec307156de228e906eb784780d9f28af714b7fc6691cc61a9f89599c459f79bbc5d7e5397cc27c557966c633a1b74c4e8c88738811810ee33f0d331865e28cf1e659148a719c21ce63dc798cc41902e395c3c81c2a50a23000906a00485814ba64c6a628547915219ba6734ad6909c6c51b7934356b9624778a128b9ce7276762b6aefb4e6c0903d578a924df8294751158c19253fc0ef7ca8bf7cf9407b27a9c651f080ce0b7573cb5db4dcd4c9e43ce233b72c57d6f92c4acbf7e9bce5304e9d871042084f98b367723a1a2a9227804f938822f814e399b32340c63367272293892698a8ca83456593a9e62dcb92ae9d14276cca71b64e0a2ab0e72dabb59e1e397bbe61707d609c2f3fa21d3b4c7c71c3c86096917c9abec55943e49a5b1b86cc397faebafb7c679d72ef5c0d203dd0f342ad5c5e6b65587037b625d2539eddb2009045797fe522075decc0e87b5eb9d001169e8b2358e141187f5dce050f54f0a6572e7610c6efe08bb7de0aa2959c456ff9f3cb2d1a7f951331e9c9c0640b2f1a2bf6803272421839b33d2ab9b4dc91e4029c53168dcb49dec4d81fce49b379a9e1b33d97b79aad85a2654a162947519e7df6780b4aefb0571811ebafca2b2c880ebfbcc427f59c4adb1b9a972b96b0204be640997066b3347d9aa03cfb1ef98e9b1c08cfe1385c479b188d0e3f79fc6a6fd86101804810009093bdfc453967c1cb7bccd0c8c06441f8e49194573e8750975b8ead00c06d08e1377adc03e07108973cfc076d624c1e7f3e9b9727b98e38f775788505b920a987f390b36708394d301e00395dc67be42cd1b8107266330e8029048f04008505b95cc8e2f18711b9fef21ead3d43e32a63398ce5992585900b009ed76e0af564b5473b3ec3e43480709c1c7e83c36d74bce42e363176449207116bb80e1deea87d968c1d39a149ce0c08394b39e4741c7ba4b347cfbe64b40f5bf941ce9e929c3d524e9329cae9ee72966ec8996536e49261cdc809218d9c59562a6510be9265e3d4e27846c36166b8cc8cd340bf7c562539e4b2fcc959916c6e7068cc98612bed4323674f8f8c9c26138c9cee999ca5d24a2b94b4f27c2521e22d9f4988983d4f5ae74a52be3d2a8730cb4aa54ace2444fce599acb1dede703989e4ed0dfb439f042f08af2bbab7665ced0d106659a95455b3a7874c424412229210f130323dcf5d7a877d96dc347bda726a616424110a86bb64dce57117ee7271171277e9f9e6854756c36d70dce291cdb8459344e7699cb1201ab72a27c5ca2d1e590d9b48a5cae291412ce8826c22491229cef875e333ae58d00d4663c969c4bf7ae2abd2cfb81589dcdf346e6dd5c1585e72c5822c1e99cd0cff611b0c08f4f1c14998bb981acf5cd927c7615cf934777ce53ec41ebdc39e136ba2f6ce53c7a2f60ee55654e59191b3e62bc78995d788ca26183975bef29b5899323973bef299ca69c4525436cd883672b68fc299a99ca527a7ffecf1a69f3d7a2eef2ace4684904bb642d9deb042382fe5687b43f3524283e99d5823aba43e9efa703f00e5619f37ad0b51eb6632d854521f9cf36ed5a053521f69c8980c3e4db642073ecd243dcdc5e002343e5595b3b3158bba4aea837ae630b2997d4507cb9994e5cc9aefa13cec4590e2acc948ce979c4bfce5a458c5997d55795579e556b45e18da9c9dbd58995724777ec524a5af2aafb9c0c82c974ddab3922cff6117db67318997672759243a3cfba2219bdc85bbb48f11edf2ec93bd3cec71c5154366f9bcde923571b6b79e932ce7973fe7964fe89625dd252d399df409a56539cfdc9272ee15277fe6d69b44add810e759e6165f4a919c82a9a8607e79e31315280e84f9252749ce85c188586fc56041649c44aaf4adaaf28dc227cb2b6f2ca822c50c0bb2646393564e13493e1361fcc54a52804d587c52e32670a018b72ce8975b15153f6351b03fa05f42ce2d223372f25b4e434e7eb751feba1c460b3abc3087ce2d877eb962432eafe45ca2c681fe9c647925a710cb2b2296574e013e91fcf285b23f2abf6455cd20390d16e4cabc0623723de9cd908f5443f218d27b3e83e43448cfedd15b5574cef9bbf65088f5d97317170a4d842e13f567228c5b7dcdca5d7549214bca3c49013639c7e293183781036155e5167fe69388a79c0ac6575ee3d92123eacfa410c92fb77c566eade58a2de0aafc49925712e7b97358b99b0ac643f9c6c82651ffe5ce05001d8b8d0500e5246a9808c64fe7375810cb852e09bd0646e47acb929349d1570e298ad27fff6608de724b9719668ee02df7965744dc5bee2dbeb47d9a57be9810ca2daf2c273de5517e12f15b5ef496cdd5245d86f961eb923812688eb9039a63b2e8ab38617b925b579c953ba7a0ff702c7a52d42d5f11f5537251b042506051b03ff4dd4679d73beb1d6b7a0a0d27dc9c2c74b2456c01e5412d9285599765d5bc057d96deb262e21b23836e798c6f9cfe3172882c26b6878958bce26591620539874dae897bc6825afb8dea9e870cf00516c12c87b145ca97bc44e373c73f9f3daf3e337ceadcf8cc7975cdaa29ddc84c6aefd0c4374646e3303030b1d1449352aedbf364d407e522f697f5a4ea2d775111bef52e2a526f511715dfbbb7aa7ecbbaa8c86f5d177551aa3cf3e6d961dee22b531fed3be7619cc66bf844e3fd68e410d9a389ed611a0b42f95053dd5fc3a71c36f1e7f0a9c6dbb319398b7ec661e2d479187fafe61f8dcfd2bf9c7ffeefc1b88d63f18d91d1f873cca988c921321a8cc65d79287f11d2c838c482c8c8c89c3364ed242c68c6170302e334fca76762c96184e83c0dffe11a3ed9784b253a4fc36d6c3c475299e10f9b512375d894a90ffdf63d4356c3de9ea90f8a1dc65f9cd9bff634f0697c5e4fe334723eb79c8a337bca2d99b83ff31c73c582c44498388b1ec61703f29ce43f0d132fd9a43d09632cc892436424d6b74892a87d55c326f67fb149d84eb668a691aa7074042831f85695512abe4b398bb9d89447a505323dca828c7f3dca220effe48a751c99d7a32cb800654646464640ecbb07cb6a6f27eff8c3a649397421ea63312094439e45c00f9bb8c1e5236c71be864c1f3ae5950329fa1edc2ecbdaab41c711d2daf76be530f22b26a4728bba5cb4aab8a4b2aa0bba4572cb2debb965412771f94a0eddb0e2e4b7e29bfb503677a90f26fb9437365dad8528cfbab5ef044a7ab4243d7eb9c716babb9b77db17dddf60f7362fb4d6f44b16d7dc77bb5f6f0668dd2d4bfbcf92146b28e695676760e9bebecae6263e95d8739c8ae71c366dc6a667bfda39a425a874aa96e973450c3ac790a1119a49002883150030301c128a8603124d54541f14000f93a65c56210a644994a3380a520a19c3082084000018112198216d00c95b065e65fd3cc27551dc8222c2552c37d1aac814fe97141a819b4296c99a44d0c5570b689f0544a4bd23e18e8d1de0f2f00bdff97c3598eb29760dc5af787fd2b9959a729a1acd1aa6e45a94c3c7897b6f483a0f1010f2d64052fc3a4ada9e639b0da1e617bb9b42bf2eb277d1acd271d20b9556c18b948106eda9a18de22bcb0a15b194f06e10a61de741ad0f151da3b048c1c4b43df4099d71e353bb50854bb6cf3c9dcf7e3dd9dbba2e8e9e73fd634e960f2d54b9d128afcfa2206ae5474fe07b6aaa7dc04ede8eadd8a4fb2dfc22bcc7b6218ab771148e8007c92b763917a6835dde339e1a1609dfc4fefedf14b48fcae013c9bb39db61c14a2fceb3ee6cc2edb17482c4934700f2c4866012a29df3dc655ac9d9b371d56678f6fc5cda5524777c83b7f612634608a35ca2a35908e8fc83ca2d01143801a4d3707e66d119998ef43a1312ee7eaf2fba9167aec609dba9dd5b69ade8d889b1a839e9fc82ee392bf60daa51b89da1e95f00ca90a99f8f4508c8ce0e3af75b18eb669a12f06f03f340ca157ad6b61c9d5f6e5723f2377c8ca82b82698eb0bc647d64524177f027205d4762662f046bde317b77e2c8de792c9c6a469dc80f3c5d50139cc255d437e030ecddcbed9035a3addc125b3650ab2e3127aee0be17362517e2322e430d31cea3ec7fb2cab225bfd434b3746227fe9a3e9b94bb6ca7fdfc697e48d7387074b893b61d2aff82fe7c222705bc7ab362635b97278c83fb29043f44a20edae8718372c329b64f74c8712c1ffba292ddc8debc6a72bd8a1d698905bdd374fc6109efa95dcc98428ada3c5b048cc4803df212ae7fb7e2a93c2e12c65092f4a2d0113a06942f67f231246d795d697878791937e83ddaaceb8ed7c5a764eec98b6fa08a81eaa2aa744fb1865f170681fc61ebb6170689cf6f6f80a529d33d0aeaf7e85ae3f07582c975ec1f2796b593b32579ddc1a57e0cf17cb8b2ba56c660b380f9e7e40decbe7aa63df7b02ce0ddcdf998ee8a076a0bd8db5ddf8fb4cdae74573cac0d542da0509eab91e79a852d465c5276c92f23d3460189e68a863753bd0a73d377d53c552f4059583f133b429434d918a0a0ac5a71c269f1d43bbad42ed93ed7e2a4b3397227c9eb937a2110a748771a822cb5d68d3430e271100e8760a0163db5e10783e00d16663a580ef36761447b7b8bd40611fe14a60fefba6b509d07f98b45cf40b246e5f967b3fd3e61d94cdc46c54d22eef565e27eb21108d8cccda5bc934a2419020efc5ffb40d463a89f09d03b9060ecd01b890d3503c279f1e0ec57dd45d8d3727c45a1475e9492a04678c1a5c7fba5f3c3c79bdb2be78e775ac81bb5299db2f8aad78770bf84080e0d4aded3f782dff3558977ffee8778f6be59e4294b1c6432aff8ddfe8538d7972502f7faf038f20423fe92fbd57f254184595bcd88267cfbf783295a5eb73efd4f2071f87ee7a778299c8a5e030295f31a7b446c182d44b43ba612551e4409543513253198f101176dc37213d22e54f5b7088b84924c0e4364f1fc2c4a1426fe562f31d12f9c7eb48f2eed985b879d096163cc379a3776f723f23470bb1ea7a6b7e7c0c897d1f1eaa1806239a600e00f716493fba261013804acfb6bf72eae4d19f63a8b9d7db623e93af8f9505208207081e2bda73650eedfa9208f9595dd773cf09a5114e44ff43e785eebaf893f1195500c4bb8b2071213617f0f1939ff25d742fcb45e0ea2c246821a9039513c854bb410ae2c2e743cdc2bc4e30f21bb287d6b7722bbe98cbf2ac0a344b0cbd4e955321e0875b00e752c4b6004988b6af3b9e5638161b9965e2d939410ef8e4c6da6326deb54dd8a4882de02961ddbf50d020cc0a0d2dabd2155e43cb6d29033751f1c9ac910250413f763be3221926e8c201d13451e81c79de799e9ede865bb874f062cbbcb3ae51221105a7ed6b379ba2cd2962cdfb7e1bb0c622d8e8cc88ada46fa45db7d59165720ca69f97b99c791e92ab4508c1ce288290fa1e20367841ff2ed32b8e73c94531fe7eef51dd680000716e1d5d8e881c742e112f10b24bba22972bc0005a0ac761714af9f24629c5a6e3feca756901ddbad75f8a42eae95dae7fa4c61e6eae4e89209e75cc028abcb396d6c14b75d1069d1c70443fc2065093e1679e0422fa20f88b8641992a139f4c956587c48ac870cdfd9699b6606ebe52762757d222a2b0b526101fa775e9ff5ffc7673a13837ae31461a5e4ae140460a6c4c7235097ba548b8f43e77d49c1c5641cf8b9f888adecb8bfb01ea0a033a7d43d3ce4b67754c5bc90094cacf3af48cd2fdbfbaff6c77313502ff851819791bfa70c2776341098c06d3ebd61649ef8d0bf317734afaf83a21163073428ba0c2dc3e6e888e81201972d544e0288dc4ef4ae3d2e78b00604f60b6c014a38628c3b958647318ba032976c4ad903af44a2ddf153fad3967005d58e846a4091ec827d20527e1e36dd76f57ee4c8dcdde9cf8bbdebc8e78e870124da16d1819f6ac93c01a58e456dfde329c5311a1af599a1abbbef95024f36a3e3aa600df54f67364b7c7f457c143450ba0e448af44558f3059e0df615a595d11f115be2b240670fe442a47251fc81ef497e3d478518a30ca0be474fc1ec000e6044205a2312b69c8c011875f496a8e316cd95c513dd9a11db7619904c666dd14f8ac6430fc82c896d95169f408364e923758985fb4692e6a50865371d35deb7798acd8a4110c96979ca6a1fc0cef3f1429345fad6c8fee0a30eac32c72b7968b8ffdc8ea684b5120020e05cbb77e8e28c3c4fa8582d11594d7f60ba1fe7fa2606334069c82843c748909e34e6a5dcd36f5219053ef6227d229ef220809aa18ff7cdd05d7f442cd688e8f46c0dd5404639b7a2b5dcefa5a5c044f68a48d35a4688e51b7681125b3055f971aefe47c648f5669c2925f6397ce1d51ab2645e2e0dbb87717947535e30dcc852264e1bf4cffc90a1a88740685b008b7d0268b577aa56e8ece9ac84962a11c4621e0310f14420da3bdfbe2e2ded15bfdb33c4f69f382b4ef740dcab7c03531a83518c56cac97d60cdc519870c729234911528c866e2929b33af148a66e38ec44943dee2609b72655b35315f2cb43625aa59eb9c70eb7c8cf617c9684e51c933622f87c2312c695881800c2211b9ffb4888b2ce340c401df4c087b47aa738a33092ddd0f4f1f4080c634bed35295050684a98dafc419048af85c6ee267ef94cf640aa02a54a641555ec9b7d245ed862ce6931000e8c7750a2520403887711d6a798b42be5e5e86181de50520a24c1e14c8233d1d4676b1fbd5de487d756e615dc7797253ac84d5a621958600a7166902ec23c657053d3dd189fddb7bf59181392c5c9b02f685e1784c8e5dc120027bddd10d3684462706aae145e52798b45f7e7bce1afd65c3ccbe9cd16a14d78611a3a60617e570819186b17c87308c63bb6df3f38cf3f0fb5bf1740c1a8c23b3ca5a3fda3dad681c8459d00310f58276fe0cf3e8501c32b87bc8af436d8c56005daf7897a5a868853dd41c06fe59b76082af400681235a6179a516607fa3aa6ab15074af0c444bdc846de40e746fe7673115a3e49441aed21ace0eee69aa4536aab617054c3f41af2468db3f4eedfdb972fe40222f65c0511d84e4983e7f793c6effeaa93ea06bd613232671ac02f409ef430e9192962a5b9359531609b4b384aa846eec0f662574624df5968013ae8835aab275586f64ac1de2f12e0457a1e76f851de4b015bdfe559d787501785218b923550d87a09f191e2b4f0ad588d80150510b9f6de8bf57cc108ba1588bd5cb9e81a803a1ad1e0b7fd34773b40978fc6e90653a0ea039ea01a2b53710334d1febde6d5765490b36000a5f4731e55a74d03cf3a967469260fc08ed094e51fdb1d9b667be2fb28108b3f04498e27e4f5f672a6ee52c0e8d11420e372aa6907418c18d55b984dec68ea6aeaba7bd73328ab26e9168b6a31e93d7216a01d209fc9d5fcfc051086eac9dbcd8879bc876b724a39be2b08f27ad117f7d2053267a919fc3acdc70002c15590ffb60a2487b0e5a3bd0c12efd5d66a2bc450c03ce000aaf97d2da5f9c0a2ab897a1e029b40ad09ef8290f7c4c1f594d3481a8f04133c49bea27d9aff27261cc3bee8c73217e55d22af784772b28d180ed6bc50d76779be2460b21e8fb10c215f2207ec98e94d07683a5f07396de7962cb9cc3bd40ad8949e9c2d24f1bb9bdd47eac0c4430963300413fa5cb1c18ba4d74b69e5d745de62c0afa8052cb2e50053e0173bcf1397d289c4e7627891144ab5226d35c1f2c02bc2583d77bbb368d11acbb6c2607f8396be26c9bdaa1ff8e0fca481ca0c956f2b97c224f66c9d93a7438a63a80c9e9c694310eb134c3f12eb6197080dda9e6b6ad46b6d06bed7c515fc6107eaf98b59f5a2e80518c2e04cf1248a48b1ae2d16a090562b54e2d8792cb217a3994608e68f9a78b08dc32b0f7d8ae284460667f965a5ff929cfdc9c5e0b3bccdcde0a1fe53c200c5e36099523e4e469c6580e751dd83cb1b2562cf8e609fc22a377d8c293c1bb4ad68efdd634c12254343f635131eafcfc2910e1df08181697b2e9cb2ce11ff651f68a67a89d5afb941516da95854959d2aa08890b91bbfed95c73f5f15b5d2fa2be4d1fcbd9f0193420d196f75141673c311ff6a28d599693b5618e73f6906046f2d04192eb46a045e8410b45494fd992b5397acf5df0f5f3db052a86762845184f604412402924e32ecaa18aaa80e0939d70be740c51672381539c9d33825759df62df1af3a25ac66dd4fafd9aa3ecdfa786a72cd0e47e662969d16b0aa1565d08b81834b7868fa037514cc3d6d4e637922e36cea616e632dd964c622cdf913a7e38cbd823146e5649caa83f96818ddd0097dfb1627125ff0aeb618462c218e2d5e53a912e0c00b157a69d97e01136431f96e2f9b9802a809404ea9e63c73a76acbef12f9ffbde0b3be1085427b4e6456a3ad3feba1c7173bc841f5c40dc0ac0f109160de47726a5b82a7ef9b0f21e6244e08404c450a6d6a88924852574889d41ee98d84b17150d222abf629c99b95e83e72482f09a3ee4a1856e9b9a3b439e0175d4e1dc9dfdb843ee0932e4a1607ecb5ea63380731946e1019d98485f0686e9c194a87972e5fa6f63392dff881624b96969e886c65c5758dbe4dd9a9d854b88d0d31c9a482b322f0bbde7655ed1dccfc59e1dc09f79880951a1ddc463bc0c0e07f2a2f78621c1e83b2a0c8d7ec916927267f652b82cc97d4a097910c89f020ca1ad881cc4c1601d52d63874b36efce62d87a55c238a61ebdffb6d25adac0329ef29688ecd6272283834db18e51fe93f054cd28d298db18e577da81524da2141d0cc9b9e28b250e6b7f2a1be7f410cc28f71f41e64d31782ddebeb2d4a3f695474aa1be179d9c4971574702b334aa00f1d4541d79a87e3fe9e7b3f358f0de1f347264226f9405ba8fe9af2c090c7479aa736cb74621bdf65618fb656774c38b047eb8c783d6fa9d359d74da4fd82383e6b6c7d7316469bd79786341b0db05a863a7af0cf299c600940cf010bc39c201e778b73ec8634f28c478470d9512d9c6d47e0a2e3f9ec306cc3d402397bb3d3479ffafd720adc480529777b07933396cc5d7ab10065efedafd71932603990fc284112916a92dc7d32745a477c17faa0e7de3db592d92c8439ab364e5cd4309fcd34d00d88b8b89d9d0293092a057addb393014f73e529724e5039485b370ca8baad5cb02629974c0adbd11e06b0258f84816bc6d4d9739aaf13d42365da7264cf14d407c2fe01da8f598cdbf5cacddc99110814174f514b70c9e3fdcf92e841d97c95b8d9a01da7bcf61c4a83fd91969177b099488847579ed9315056cd824fe5ba453437f5afcf6a967bfff076c3a4bb2ca150b5401b9c15eabe193ce7156842280a28e13378ce048a0971f55e7139b93a0acc0918dd28dfa4a84c06a2a51a0005ad9eb0cde939c37987c1050c9e0956de52403d37a4e92143abe92950f6d44e4ea3355b386230a549dd59d23f86daf9d6839d78c30aac71ce5e62524c81cedf922e9c76c5e2fe91546189694da853ec5440cbc870204203ebf520834b1841b574d878c48052217c6c90cf2c380a82cb03bb8f81b65c626e0b0b06028bdee617b22e1138401cb4d0e47d918276180eff010b0ff1959c813db1710b5328f5c419eb61f176d54b4ec01f6777cb8dbddf96f7c598e3704fb368b0ebb202c8438f0a9750060df0285a261e348da01d2f1d6f6c9c59af9bcabc1aa4338efe7a06ab64d5543dc20ba1fcff0e4e38663401e49bd4953dd61f9fa8851cf7e30a15a0223caf425312306165c06eb5efac732425de3ee9c51d567565ddf87b2b711d2f97c5eb542f86ed2b450ab189fb8b988749db7f89a2c2603bee732b80c338ceb36cd7fae73a61e1d407a04150cd62bd19d03f30371b91a6fd16ce71340890196b10abd3763bd1901b7743f8f59bfded775b1c7b499e7b1ee3a49e0c6dd495b58e868ac7f3b004be129d8920ad9c701a4a1144d78ff83816b0780ae73324c2ef8a7b3ec9cce297407bed7d268664e14240cc68f4d2af290066440b8abc62148f390175d54401987a48b24c1f30565ea180bcb8bf581de92ecf280c321eb32eb7beba3b5afb827b9df4415682b2fe31146f790b0bd02609c44ab8954bb8e38e8b6cc3a55630c6242ecee2bbc193e3b0d1f7c42707f769c37c060daeb71510c666a09f8b06eda9cac030d862b4c818b262df0cca22dc4a63542c7ed937106a09b54259c88d49a55c6a39c3d34a2296f71014a7c07b571b35c1f4f9bbe428f2ab8fbea54379fcaa6625677ba5dd5db57421b5c14a9e3992b35b8110c44a442caab50d0a2bceb7220af96eafe1e5a4137cdc51271ca34605e10d29ddf134f8088dac5cf58bd852a2d4bb896f8f012231b298602d3125a4f999f13a7519a2fc013e9a53031c0f30f570e0b3377a4bf5f043e232f3de763652e6d173f0a4720c917a617c63a785ca3617a23fd13ee19190d61152f6d584c19900333098b9b6a4e56ba0e4248fd97555dd7292565f2aa10ae56275a2c3eaaebc2e463e639fec58471c2a7786046f5ad9f6eb4f30d41ebc58f04c6c51c35fe4aaf4467d5a9f8759db3d949614e4f358ac0ba591a0184ab5ea7afebbeb72cd8ea872d392b0fe93a8086994b964a8082c50b7396c38425739eaf46940cb3fdce7a20b97f79a8966c9e29dca688c7c9b1f3ae1fdba70b29ba40e7069f2f742fc4929ae3723f607f4ad464182d0b8b43955e1976f11c9a0f9cf8a7e2eaa88cb17c51c2a80e82ca594e89074ca6a62b156db132738ab2b010f728c07fbbf3dac830670b7ec3dba647032fae1d3940e9eef7ea48086e33e02d6b6ad9824d47ffcf70ff09d332b9294aaa260f4102dcff9c3c6944edf937788abfd71cb69f619966bf191db8b80961755007a685d995f1469564934dc7f50657548834d00705bd0210a1ea937bd3524443b7cf00b791c6b8371911ca86205a51bc0117ebb4cb0089845ca0976337aa85e6e84df82ad3d2ccb44d290446fea2a3b619be4067a24ed5198642955080472e7049bea65a1f5ea6b725e319afeec4caf683f65dcf0781433b68cfdb7964e541f9c39f41a3b04cbe3671fa037c0f3d30c485dd45b056306e155b82324e189f3ccd85a2c741e1425dc5e8918b0e70ac6063db82ac7e202e84636166ee5b750d5f3ec43c496a7098b94032e4d9cdc127dc9252328f20617b3ba095de6a0359153b835e63fe830af1cbb8b520e1e55253cf70ca9f465980718e4aeeb094f1ff06bbf62119ef80feb24b66ec735cd3d5bc16f6c0c453805af24f9b6a53903fc9da9b34f5ec1d51ca03482b7f07b23aff95a99ab46619b50f30e6d06f7590f119e32d7bc6e6b6e4570c391f43adab8189ff73b3ca291a251c2a66b297a64ab577462243ea5bfefb60d5b45f98bb9ca476504b3676157e40edb8174c9153426714dfdef2777795c8fcaa0d9dffde27910993b7307a5fe1d626a28a519dd70ef2f36d21d940a0780e272dd5387606ebca7cdcc4e8ef73ea60dd99fdf72ba0b87eac0dd4c3d1a508898855be3f6a1a4beec30a068dc492eb3cd1b844c6dc4e14509a99e980b18b686f318567097c22ecac9907dd88695864545e852c7f83065fa276107c4a82902b98e0e163bb23062a094c4573e8b756c097ba22e94aadfabab907b908cd81699c07ab628d25a4b9dab8cc5da4ba41d10c10552f0f0897cbdeddeacd1fcdd74d24134199c45e6f51e21adac07c5046501c9bc0b582c31c6760013a72c65c2087fd7da7c40d3ec5741fa1b493fa8b47993d0525816b1192f28cd7023bc9496182bce43f639856a326f359b704ba992dc2906febb9849f8d5490454db87f1ca8cd83ab7ce0d3953349a7ef2d1bc46ad970d5644166e6dd075394b370ccfb8734c7c351e55f14cec14ee5d32fb7811aec50ab32ded47b5b4a75c2689ce8e9311b444466d2b6e0d12539d922035afd61b585035390daa4ec55ffa5321e243dd6f2d8d5494ca2d2dc0d77040203ac867967e2a44788ab7232119890d07103b2ab6c1194d5e7c3b503bd8ed91491fc803b01b5d05861eea051f96514b449a8630f1dd7ed1b07539e5cbd1cea27319a6f0cea5348c3d94e3a10ae69f42e84f16bf922fdd2e88fa0e3642dc039af193b0dfe5089cda711dad2cc4c543fa07aa7f2de933bff9d3f42f8c8f7ffa24ea4b335f5eb52045a46ae36237d097d13ad68acb7259f796551ac7c2518396210765bce2e563d73eb338ae053c33620d78629f61e9de6f85dc0ede045bb7b23c2e9ec8fc46cd37ebd4aa1c853f33389764d6aa47dc6a4dd6fdfb1691b2ada1dc19c655fb1e71cddd16007727eef77de19610908e0fe3246088b497a1029f469160318a45236358f769f65164fc9f3ae08b84d790f70364095618eb57fab490904c2aa01dd6ff81f5837680c6cf730a55861e284f5f518ad6e85712c95042489ef787cb1bf34d2923d3af601f2e09ee579bba0cdd929333b5bf8665a76b6cc39570eba6a74f92243b36558d38eed95bee1c14de21d43aa9fdbfbd32bc0a4fb80bba4b07e04835eea4e08156e315a20ebca38ba5b6f949b514848d019e3cbf54aec2a9bdb9843d5e10d4a93046c5d1a6dcd6000e14c44bc6089ab2d606c6c30169778bec65ad2c44eadc30e8193f76546ac966dfb7f5af83812b5cc53d5e5e97eb7eac16654ceb069bfbb56a1c15f3b2f5cee784c554a2024e23aa93bead1c59d6df34405d5489aad2b1477b38bec8f8ca9b43ca9087ba033166c30a6944fa667e83f72ca3c55f40193a5c63ba4b055fcc3b09573e951d42a73be8406e80d80efd97c37121308997201c156b31611e6952518e9c4d9ebb3f4d774a70f06ac31a2fc25404150f55ec895bffffd387d92866d8bd21af67b2b509efadf4963905dea68a27b37e508b6c365e6946330aa27b9192ddfeceaa21118bae8b474c5142b447b469bce34085e56ae2187d3ec67844c72bbd130e27b4821492dc84bc58f921d0c3bf65e5194f1aa7a559c6e8283b0bcd897f9861e5274f628b3d2cf6efcaba27ac44c487f969baf5d8674a0c921d532028a1e4d7abe8e2c54131335de02580646bfa72fd33ee3808d3c88cc8ff74ae744096815cded3856e4c4f183098e9b9d6b86d34cdeba517d37a2abcee5a961216126eb2b7e20b11c0508b9bb98531576bc6a3e1d19ef2a5d476ffca7568759b0c2dd313456b42da93ee8ff3f3b4d3ea4eeaf27b7eb25bf6e09d2a676e1a42f860ab63ec2e4179418987261e6006bf8a6847243d3d7c2271aabb0f4ab2e6695ee9e5b1799d6dca4c1d071437a784b842179c637004e2aaf80428aa4a6246aea02e0b6c8aa2a9e68bc9b311ba2331a9d6bb0442f257a2386f3aee7dd6e2e46f952142c9db8d82d50390c2b1e50e4ed32a1ca48b643ba21c71242943452829158403ae1615a679985a74fc5ce68be220f47499cfa58c109a1421c2acf9984e85909df51e847b05979f39f0b93043205469278df41a4ac75bb55cc0da143f94d590d62170d9295eba13b54379931cb6cda2a6297c76e246f40eb9be01eecc145d4465dbc720d75d2a2b3b62e2919afa76c41a9629467a08e324f53a5b2a7981dddc362a52d0e73a125812e66711652834ade530da041462dc9443f9b5c341e2dda10d54420c942bdb88863b0d12258e9a8042bfcc7a41155e84c792bb6116477497a3eaba966d492ff704e80f609768bd5835bec28f2fab00b013805ca6166a9eac6a2b6d770ae1f21fba62cf2c548aaa4cf9f11d4c0797364c4e50e0c3983866a2a89bb8a711662020f6ea0b5960dd1c42df07255046d2bab3f2965cba940ac2c3ec5ff323ffd292251542e3ca9270028740a293125a67c584bac8613272fc895edc8e7511d3a1eef141680184aea00fcb3f4ca86fce79ba57060c234a9cf2c21da3bc6f98cbc469c542e18bb3b543ea7388ec1108c207f6c4902f360702057d6055f059c505c88890ca63fa04ef46919698a2f4514ae537472ae108231143b98995c9084848ab8c6b4314fedee23605383496b64b57add89f18e2ed4f59d524b05abdf7c2d96068175c91d120a29a0e7eafd71a60e18a2df3c783a314a68b58fb53197354e1bf68cae8831003c1bc32c24d8f872ddf01064adc490c3d6102850a0eb15a7a0147cc37ae856ec2a36b3853595b668d0c4caf6f88af85c02cf230e8ced70a90aea08ed2d992db6105a8be15b083e6676a99ff8dc0a83fbdc002e69933e4b49fc09f9a3fb83f312e61dcd127e47a266dbf506a9879b24089efc5a6236d64fbf56229186e812700c0ec4d10d48b9bb3d814a363211090909c73ff8427131a67ef226269883cab2cdac8726926255bed597cd4f17ad1b8ace0e870b4f4dd19f3167f9d324c3dc4d6e7d3f9a84236688edd07044cf06583661969e81c9bb7050f9e5a702a087c118b5d4e573df4f4e804f0e9ec1705e88274397f8e41eb9d065b1a0e5dc3c783e15fbedae7620bd3d0cf3ca3503c0e54a73dff838f5811b8c0a4b633410ae4530a41be3598c2ddf7343357d3e22fd5f8016ec71cac219730a32e41107d1fbfc2738fbd52e5c2d203e7784b623ac5f5669dc6b65e6359abb1add5d8d66a6c6b35b6b51adb5a8d6dadc6b656635babb1add5d8d65ae38ab8551a44a5d6d3017dd0d2c2ff004c4f7306bc7e716a8f969700283228cc228ab3d647cd7abce536dcc458b0554c90bc7b744c48119cc1244f07ef39913f8c29d4c6f0b627cd617f402b12b2d768ced8a5e2ccf43aba650ff831ad0ce4e9f1d6f69f6c91301083e16b9dbe81c7d41920d0f48f244dace56112fb67ef8c17e8a8ffca16ff47ec89afdbe7dbbc0611849270ca0c065de20005e16b0f461d8b2dc65d98c32ad78dfe982ec607dbe7042a290a6f42a70abef7eb0c244d080b84c864571fea23a5afcd7b70381e731d34190144fa05cd179b10289f950850ce900732b616adb10aab63525cdb5acb9ee281a3e8b1a7d6b9749ccabc059f77201f352a19b7598ec747096ac20bf73ce5a1527256d0c6f8826d8508580f98348976756437d414911e4df3689ca63f555deb130f77433f66e9f778e13bc7ceab0429d6d26db87411b1e6f30de307d1ddcded3ad15d68df205668f06b734e7efdc0cd710f787212c6b4ab7ecf7ae8f18f0dcbf3a051152a9900bdccb39209e9f4f6b0f2e9d8e4222433b085009f3f449d81a360fbd35dced8f5e26bb1ec286de953f6811e13a46147943b490a22d1a906cd624ef85c09def565cfd86f08f3e0b7fbe0c743e64bee3b5f555ba62173faa90d3981e92bd6627cfd4ef65f4cd676ffa21dff84a2e4b451b8f1fd6b05ebcef5b95724cdfac9ee9a841724af94f4119b0055fa71e27d03cadb6e6496cca3ea1c9b08e06e2e3b38ef0dbd7b5abb4a69c8f98ee271777b7bac2ea9454aed8517cf39bfd37839218466069f3eccf2934d150d33aa4aa6e3ccd624dd40e778d3216a0ec7510a3c08448426424e6ed7a6e95b3b76dcf89dcb2612a82263697666574925c2e68f2d6240d8de5217f9228ae77dff6502d9efe8f1a4b1a5a13405f4a058eca097e3fc480e123f6e4639708c88974b75c33ff99661cd86f234b6c8585385f688d8a7d2b1436e0053622ce715069cdfcbfaaf22f23344c91e20d0d5c90163d325532901a48ca10e2ae2cf76c98362f519f8e502185ca36019ed4bb8b1193fffc1d398c51a3b9123cf1b1124aca1ed38a51734809141e7c7b6c4fbbc41fa41867107dc04a4a7b3fe4cd0c27d8870ac0b862d813d77287fea071e82721bb235f49855076c73aed4ebcac06927621bd866bcecf81c14622d00128bf44001e70d25b442bd4680def4136df25c7bb498cf46e723abdd4aa06c5e5f3618dd95b4733b0a96cc0388f28f2e645c3a23a4277cdac8b01f253a080177760c23ee2a7b8d337c9462cd8457b637c6ea7c683ddd47487bef47018e81165faf472d3a393887b3de67ed0103dec253fc24e5daf8f3343dab3a96684612a9e3c3cdb620ced7d8595ddf28d565fb27cfe71086835e70b8b98dbcd9ff022de443f345ea2dc9d358ae6ddc2772b7fd4d9e2f0b24df170538d0fb89bb45e09c92b8e5abffeff0bf22fe147f7e1d67adfdd7f356f1bcd2f88206f60b80173099fd3ef9ca3aa535f4d8c8051cd622e355aaa59b148683e64e4d1f56c57bce7689cbbf7565cb275c67271527074f27b1b4e52d6cd48d773a71021e5d877ad322d261e0f37c2f1328beaf0bd4dff7b6b44f4da8e3f3097f88848279a5d64b6e4dcf22fa1a91d0b347a7db7d8574503d3ddd17cba3a633c1cc857b902eb2baa1aab26efd6b9098b9caf6007a5f71b6a5d4b0f1075f65d2ec1da4644cad4937723127a0cd4bfb356a7f83e0f5ed1664e3a75f62cbe8e5f78f339c0f551a56b0f8bb1885970052f8411d3fc35daa23c15cab16ea7e893a3648e76e225796fc2003aa14354940fb94711cefe1379ae383e2392242bf288710be4fce2571a5f4138d88a5145b7248e7fe9b357bcf0baf739cd0b9fed4b9a5f6be387aa03a633ad3310e8ef957c45e1213df8874f26b5b64a9fa57700b2c95802b0cdf64bc3df6f1d1db74c26c51ed1ab8125ef0b17f6ce3aa42709b2b75b102b1589913df2204cf230aba77393b18b68cc421132ac29c44412bff8247db5c91a3e73303bbd62aa1469098931726437a7c34df4d6b74d31ad46ccd365e334dbd465a9b934cf1e22da9aa69f424d7ae9e4d7dbc6863f4265decfa1368109479de0881dd0bc024cbb5fea7113eb071b38af3a3e199be7aa0101b5f3a93cc08980dd99e34829df2204823cf42535854637ba67ab976aeebaa7fa1dbd3a906e6f4f7978ee56def1b0786a2b66fffae818a63a501e193ddf3bb11b8fcacfa26b832f972054c3552ddd618d8981a2fdccd9a5d2281b88abbebb3d1844f860883052838778d02729ba3fcc3756c4d6fdc58a33bd5e6611e293483333950a63614442b7faefc989aa5da3efa8f83c9e20a28070d2fe20f7cffb4c834437c0751b9f72f3e58fac8da379dc8b80546e9fbea5e53dcbb172aa4d11e1871408191587b76b01752a68406ebc783402fba05060cd363cf2c03490c8b7766191beca700669bd981b3cf3f220afa9f4a8e2477536de347e14acffa0ca7fd8147d8a9ebc48dc16b6176ab5cf819dac48f20eed3825fbc49fe0e33675c39ba7774e65beb945da4e89d7079482a422c436dead65030103748bfe8a151ff289293d209310a5e8b9fd1cf458bb9621a46b4fe4924e39207bb73e5b37e7a84b34a883447274e92b24df7d5072a4bed8449f0ef1cb565e3c3f1d25c299588859730a66277278929a999ab070f55c6fda4be8ab97b168b3ef0cc2b9610111f85d2cbe7db22935983f60d9dcf2a1be2eaf565f6ab8ef9a58b092a0568239c36b0773e070d5ebefce22da569f66ba73164a342c75c43ebc6b3c81f200ed014387d57285e53d7ba143be9c1071daa5068523c9c6338e96f43cbc2a2391e514759d1e0ed9070abd4d128a5d0ca4c2865f69490005d85fb0c07274c79c165f3e6be1d2607c2ecdb332cc463dc264c4c457872d3aa23e67571fbe4f6bbae9fc5b3e87a66674b22a273f6e824ba5003fc73d860ba1a5685cc0a90802bf72335a1f665dc5c6caa3841b8686f71f07b318a63e62ce44dad9931315b199c1d9b4036b18e09a585bfbb893f37749ba3757556404b6dd9592c4c610d8504548ea4c62f4aec5314e18500e1328b1bf44ff8b080f11867daf6783d01113d05d0051e1a00c3ee106abc3de5dafe6b7be8874e3230ec33652189615200ad969b74d622544093b4397e9818560af21f2af3771bb9b54a514d777815982ac8febcfe542288ac17674241c7412e29038fe5fbfa3a44a9ee05dc1a67ad5af6b7b919a99446adf0f399dc49972b1dac3ad5cbc7641d8c1684e9ff80d1dc023e693a1772327de496d43580e28c76ca01da6752cf82c461410071ba19ab8849f7bbf96ff064431f881e28fd7674eea742896fb3e058fbb0c8eec882ed6950fc640760e103e66c93b301051c7cb39a2a24770be34332d5d7a777e6b309409fc7de7a95f992d840fda36e88e663fb981dee270c329f4ccd6e48d4be5106e587f3dcf252881b7eca0840542aace17efd4123358ae32e10f19328865248cdb29216b4d48a241deb697fc5d662c0cc770444af16f551c9f9fdb9f51c986a5c652aecf58f1b99b1b4f04dbf1b49ff5ca66b5c746442e9a7ec09c79b56bf674030b8861e0289b0398976ae7788b9fd27249e3f32250fd381cb2bea9284849bed6a444bcebf82da66b91649cb1aa5124b49401882f09d8f4d594a0bdcb5933f261fde9ef109947be8c3c90e11b5e3b08961df377a11b5cca56913884de2846e709b79a79420a01f081d1d3eaa7af0d52aacd8c62b1487eca7d817e213f02b1b508dcf9d7a9b6c058f4891f9bdfa17afae3fac3449f51c4fac3ec352e1d01593aee61080a6c34cbf80bd00423faa90f18b8b4900065eb016ca78066dddc38aa000567cabe8368846ae763aeba90c440f9aa339eb5d7e339e5043c84f4ba923d92439afdda28528f8694203cdef868a298a0235be4fac4d455b5ee5ffa6182a133523cb5e873072a84fd67646a10def4ff420740753387cd20c5399a0b407e18b8512986be4cbe2bd538d4d16fe8e156e1c28a2123c62b1f56ed57927e724946535cb425203dd1ec5a948dc0d74cd660f2e9453175974812dc1595c32e1832eb110415898b5dc17da183e62a7befe549e14d1ba7a0c54980e1c9fe6243e5ce0d8e5b4c885eb7b4a9be6f41a3efe27a21397ca8ed6cb8bfc07ddbd23f2d99ffe00757a47e1c486f132f30a140ff5bffd14eaeec74a26274185a89ff2f34a6d1c0bfe2076f0ef7fdc87385f9cddb606bbf8a33988e3d7e7e6449142c9e104f125d2b4fa62c2e567693f13c38e635eaa44e7cf841d86b3c877b76a3ee53bf542bd5d15b6c3b2b68cd58febf1eb92c8514308179e9a5ce872a05564fcf4ab0ec46650164bdeb90c8cc3c1bee82c4eeef82e04ef94d1582b1bb3156ed1863aaeb17dc65533ee90974bcf29b354dde408fedf06856de401a421db5d62efdac88a4a47bc97bd80570e96b4e99065d4e04a776464b85a175c58734486102f1cc5e73c709a1b94062bc3b7f3eba2ebfff30a096e7838c985f90904589f83e32fb2a810a92d43d4daea3e87d6fd8f8ffc6c331f4de087274111feb5490ace1f97f9e2ed6f77f70f2ffa7f8b0fdf0fb79cab72361bb5a37c3aee7f83747485a11e0db7e5eaab44f77403a439e3b600cac894124cb7b411a133b8b26cc5e9824b66e1aa7a694136a99c9738c317a514090bfca9343cc96c02c54d2ac6cdd813ae73d1722a5dd497e6b870b7a7bb4b53ba9723d9631f7a8c4d14a6a39bfa808beb5bdddcd5a618013ec3caf2052ff706b4ce17611e649b315c6da9edeae7c6cb65a8fe2f2b2e564010d3e8d2bb700cc26bc7e98ee0435fc113d62b859e9a3f09de1b8abb3ad3483c6e6c8adcb210f4825e4a1012df401a4cb8c48dc156fb5f0504534b309f40bf498384f5e876017c85d95a8f882d874e2808ddb180650a4e19f231ee79b8981c9511300fbeddebef5c4cf59ca48d8fb206a01d74d5edde221c815c10452de7a8057b2d2853eae9daa8394c0298a264945524d62221ec6aa8fdce526ff7099410f36f945651d6cfc9df932d71b8c86dd239cfc6a39e770913b76c857aa23a08e6f706161e88816dfc5c096cf43bef94cab155400d6ce587b3a51bf8ef8c4103267d6e8d9cddca95d260550e955d9a6c342dd0b8704b84edce4d8b40bf93d20769df94656b45d011b730129f6f1b9cc8eef55e4e48427a1536515a04592a5c0303960f4577d898ab324c0a9f1d351cfeab0f4c4439008831d02ba4246735fe2e0aa739e0d2a572604261f4aa159137d8a3308d9683fea759ea11eb1b70921e69250ff45fa3e96af3df2b878beff7c970b0f095cc5f952480170e27650631b1022a4f4392ffbeaa94ef01a1134a8f4e789a22c35fffa6fabc7f9dea3baf6bed127507ab9d28978bf70e5d513be3f47cbfce1b269f5f45ee3eff945e1b703fa0bfe4d1c6ffb57763f6d452dfcf05ee9784a97fa1c632d5f27e60cfedc48202f421582bf38a8607c821b82ef38c8606e821b82ef38c8606e821b82ef38c1ef412200fc17ad976f67936f09758249ef41e336354f3b5433d89b682f27f2af694073d7dfea9c860630053aa584e7ea0cfc8548081efbf58238c4a6599a0676998f7a6830c8ca04c73877457ee4d30be7d6794350c517eaa25d11908d6148f3a93df7f3268c998cc337c879e14b9add235252d0c0eed8c03d326822792007a895ef60a5943dfe70602572cf070deb5a262e84c55720c7c47735bb2ff671259cdb974cc3d012c08edf400c4330cc30f26653ae1d7411cfce82b3fc1cf617e2460c792c6fae29a1defe33cae4e9865f0cce2ea6fc897250d9869855645ec50c79d814451a24ccba5752221c16ff5315e0a3670f9e5d19608065dc59f81544d77b6108a9ab9fcf391142c8a6595c452d91fd978c355d2c229fffc1ed19c34cf817e86eec6aee7edf9de30fbb822cb0def7a2b0d18f5e025b177f2afb72473347a954c5140f9c2d38fa8caca1d55f8d81999dd2f792a51b6ed20f7a4301daf2f95d8499212b93757364d6e354ac317b26f54b612b48d9243d91cfe25995a21203db99910d3a87678e79ded2182e57093d1c71cbac035acde264ef78467417412160e11e89c9f0f64baf372c4e1989be64cec9b9f7a292fde2193943e456502238a4877fa273b468265956acc5d4a941711b438bb77942aac9885e2b3fea066e1586fb62439b7e2c8b62b3357479728915f47c94063a26b441a90b41a26e5141baba5949c7c2c59517aee95a8a275f262dc808552bf079e98f0f085da752e25ede478d9d4d7e82e047c8400490f354f6de122147ce18339467834d34a453b8d109964b51a2a625bfc79cd29fc462a0d269f5afe556a9f75e33c4b09dcf1f51a1f44cd8716eb95086ad1b1263533fcd130422e7c5b70882497bb782778dc6d99f7d533ff4309cb9473a03b303a733b6c9909bd929325da0346cbe38bb475fd4a93b888ab65673943fda2ff81cbd0a9f76c60ba6fec6809886466fcbb737a2e9762bfba19a86fe690c67ecc1634d583a26722920059a9fa30fb99705984b65e19b76fc3590d98b0ccd22a7c0e60db92cd8221bd243eb998777ddc63e6be1ec0033d56e3fc1fe102c9b0804509dd6506c5c2900632ee379dfe538d6abfabe11e44b89093402811b0c2a93fc1293d9ca691e8359daa560417a7cb3da7d37855b4f1c56368f190dbd195a31019be75d87384428b1b3dd73c39e02b39918e059affa544bf030a19fcc159b9aec36f0bc5a21395fadb54f1852b61fa933f8311f4ac872e1bacc6a3a886ec21c493f6788c13ba801083222d85e3aecaa2a092c22c365994b83ea1a2d701027fedc93626a506f56f3ab87301dfd4c2dc64a54d7fb6133507db69895ee0dff8925e644ff10cf38e8781d2a0a91f12b994b5f41994a2db0787728b3d0256556f9d008133609f03c7235905184e85a5b3c4f257a3afca41ec9e1a748bb2911429ee3ca714a79ea174b50c98fc167ef0d7c2416bf1c1390b47d753a9327df6ac8a95ea8306f968b5dc5d5edeff0e95e24b64b89314173b8ddf8628554aa1ab9f8198eb5659475db6d59031fab8b6c8902a4fc9343c4d8411cfa0d71c7927eac46217053f322f9e9a5dd75b96023d518bb5e673b7942f503ed94258f8c6b6ce9ca7c2440ac3777663d949580302203326792e5ad3fe6fc8c7ab612f1feced835f084d31bcd517c4a655dcdac3e0084b1fcf651fc5a64f5254179079216ceb14d64cbc82edb5ba14716fb551c0bddde2311ebad461164737237a303578648e3caff54b13c7b9fffc21de5082132bcdb55e78c108ca3b3b384771797425c8391d1abeec24a0c04e77c398a31f478e37cae4e31b243acaa179a3fea6db9ef3c7080307efd9fdc04d781c14610257327b74ba223233237be2e9ff2fe4d24e47924e18f3215bedbe5e6099d0f8255886369f92f359acc0e8c185b22854dc423d9b9685ee643c30dc61bd6d681086e97a09e0e02607e95cdde5fc2a39d6e6d2fc4add9b0c81925663bf11122b1d640b2d71bd5ae1e2857a18e93aa4fcc66aeb63b2ebfe50bd9bb5bb1316d1920b4ff4a3f583d891cd704520e8caf22916757f45ffbe3b2eeb755d18092a69528b38a024428dd9060e20dee0d6ab4e3119234c93061494e8a9e8b7110967d74b0bbd4cb208d6f430e589df8782190836a2771c823439d56e09650d4bbe7504b41c227c0332021b5ff445fa8bdba12f8372a5340569624b9a5b62064a1f268f06651547cc32490c48023dc36dff703ac8854d9ccb4a80a8aaf302e70097e267fbcaf8c8c62e099669c4741f7a8d56bd6c90f33f284454ad7a87aeaf055c765abf9a97d52f5cf66963c11ba1e40a18a6e5e29e2b54f1803d0a4161ca43a93cd5be7bf7d1290af54f1440a2b43c11f0eab5e85ea80fb969e5f89db0faf01f74db8d286a5ca3dae65d1901ac0a36450975dc639b49d7c89224fc187bfc22a485edc512d346dde5bd53599b79afa632f5f0bd90bf987684021e8eba99dc8de4e51fa1d82a5e474794e66bf32fd0d1f07a4f8a3012eaa53a03eabed51081fb41a8323e2971588ffc382535b93f5bcf3f827dfee5b785743afe32f6bd5448072aa2579a79680efd34aeadeedacc90865f382ecd393caf50d8c13f0af58737fcbaa6fc941280b280fc397a68c69f27be67dbc8c63f6c111307c63b6181250d89ecaecc1744437b4741aecd3d2d4a231cff71417a92dccf9d084351683cb5d3a1edcb49fa0bf66bdc998e1f0c4bfd01f8749b631b720040d8831e03650fa28f81b1d6d5785d2368b37bee619e52030c6ef0394fca86201e7b50422df196e85f0217096753aae8f5372c14da7ccf447892dd2b1382050b462bb344fa014a67e2f4cac275cbc475bde0024f8830be0b45713488cc4b79d463ba1735f3540e7d63fec5f78dfca7d8aa72d93a47bf83a3b0980aad19a187963e390ec4e05098d6058a73cd3bdb284ea66b671103155321441652575d5af8627a95cb9b6685748632843bf6ec9053bff60865abd5d0f400bddfe3b91f046cd6f385d717c08b89f8028338078f783755da5e610feef1554486f9b2dc972e3e03f85bd0eecbef52c7cd9fdedbddf6fb27762eea552f1ecac088958fbf2593e4da5d12cc11962067839987405ee2cd651045a7ff08b020b0e5953dcec10627b38160b1c490c8e80919ae7eeb925cbdd22926596f007359104de868c4dab8cf8cea13134c0a0c43908c386fc790ec3f95f3773d64f7b501070e7b726f5f742692da2b3c4aee51a60bb8ca6d5779cb7af11f7f7e06c82955d88c5bc5fdb08219f0322e92b50bc4661a953933063ed611265258222e15c75524b23397d8f87b5ae443244ef3c94b7bea9e8e6dbb25d61f0f74a75edcda65aee5eb6c9049bc581c28523c0139f9c998b0c8f825234e4dc3849025809452dc7214fe03006450218d84c7bcba6ea2035d53c46b24e09cc592cc9c189248aee46af958a52441696ef0d142f2f3829f4666612bd95d99cfbe60d67f919eb0a7582ba9679019cbf6f2c20a9d7bf1cc29ec92efaa1e05cc23c86e503792325aa11d9bd54fa66b204901905ce521ca9f65c405653788648619d83f11dcae42d91cc3ac1f501fdd80b6eded079316a26b8aa099e2b3639102371478087aa50a222901a25b67346a6c6951c1967c2c81652b6f1ffa5af80c761233ddb66d747fb0c5ce0d6b1a20e55a525867358f2f4a01de5b5b49de5a9199d8d264cf6321c726520d09d5a732153d01b28c5e3230c045d86c29643807463fc74c55afafd3dd5ab92d9bd12ef059a39b4073a7a8ecd573d9145b63d063bf17835894da6eecb753189fb1ebed5d2b302bdecfab84b3b3a99a0536ca04e76a82140fc7eefe1f97d17046350735d75db8bbedac8d5e69a230198232a57a4c62d04eaa7dcd1d4fa47e480ea17e10ff502aff4df0d8814e62755143a6816a75fe5347a14a5df8620e65a1a444685a8f3d705e21957eb623b4b13b42547dd495e00b3beeaae51bd2e7bf80d476cbba8fc929e5fb104c1745a2ab9181e21378e737129062dac5abdda63992b2e7cf4d842c1353fb39729b9d2c273a5a41884b66fad18ec49f78464a7a62bd503dbfd34af07e42160c6fc034bdf1a75eb5e49ca7e9902b21cd23612cf8b3d590ffc4db3b07210e962e267a6adce230aded3c977119efce5bd356c0231b8d3831b24f1f7175b4d0cd24b92c9723ed47b46360d573442d035b8be82eb1f471efb5b9a406602b17d0b029a30fce50b2ba25bd05d0cd750ace9ae2a572020d8f501a7104d887721eb703ae99f155c95f63399c1d3b0220484723cf76010ef707d6392b06ca529017715f96bd01447db7b2bb4a97ca1e5c7aee0004c2863c00c48e0a23163ec5e393d9d38153ff38b735bf875d9d904222c47da20982d6fcd858e2e18b4edd82bb85e0fdd003d7836486dd3af8ade1fd55ed6e900fb5c4d303110a84f03a3d42b5ca0a8e7b98319d59e5b15778b07909fbe1500eb2873a9a74558051a5bb8df25f230cc9bd240083a9a2955c05c71ac0b4b2a04cd45b8cbc0545c094def6d80108152282a9ee4c3f5344093447bc6677902e7805281b5c6f031c3bc032dd27a5190de4d253b6302fbdb222a377671deaf997277bc6c9470ed7e037efb7920d517b40390195add7259c32a446db9c2e0cf322a9f5790bfa96b80ee282ee34a42db7772420ff29f8806bef1a1f5c77e62c561a6373f8fed949dbc3e1d81da3ac5d9c981ef8f5b57f342e1325f9faefa8c608f03629ffb22783b8a30c99a47cd7e6fb357c51eb4904fcc7ba9cd4c3bd9ca535f7770637e06192031b350fb0b493f9acf4ff65049a930e7117282bc89ecce8c59c7ef2010e3e964adcae55a9d3be8de83b6fbc2c6997845d77b48cfb97fc0355b53a0392e0b298f7ad354c1f900ba76d1e7757eeb929e1e701bdaa436d1aabd7f53d68ab2516c067f955f83a605e33dac3ebc8d82c56bc26c02ad0a70e4513414007174c7867a727079a4da5827010308f2e3cb2d90b1d732e178003f9008ec529d32dad8e38b068e5f2cb65e49451eb997bbbca2c7b956dbd6bd785adc2c531d666e11a326d053833098210950477ec079b2ba037bc42b97625369ee54c5bbe289beb9c17dc0cb824824331c61cbcb310f786abb8b84ce3bea14f7f590fb40f0ea069f1fcddf6a86721c5b169e0da9570bb60c8def577d7d0534ef33ac23f93c679f0d1d05b8c20deb3e0fe97d2aa2cbbb7ace0f8c53e5ac520a2c80f6868b433862298536e59af61d2d4833ccd2f98655efc55e5d1338c8422b9f765629d3147b7f02fcf5095cb4716dfa5365280ebebd8a3fd80f0917b959a612c9d0d95ca811a7b75c9826765e80515d263827b857e7b5ddaa4c780abe59f027426793e6682ef8195af528935b464e0dfb8bfdeb7323aeaa84ed5ad689d61d31855960d34b2929dc8c5363eb5b01aeca89809b19390d5724a6c9c537fd8115ed82cde14c01f37a182dcbb328dc5145219a037c1a6244b517b8188bc12ddc0a6392bb9d6822a6356dd069ff1e960a205455bc9c73dd6bf57997807410456c6fdaacd1e872b384e25b6628ebbdf01a4fba287ee08afb134de7e00f9c06abe3595fa398df17a0a178d4a1ad3ca5d1bb6f84c10734bdcff08f8f7f6aef79e8c8d10e99d74caebe2ddc6939e6c60e8a958723c14e9a32f99de88276ac6e87a8df35dcfcc6c6ce3524bab8602fc714733c093f1a8f0dbc53dd6cc5e73b7c45e049d71e362f947c0f4cb176a72b821f8f19ef910f277665f954270cc10f72a3bd6ae7b37fe9e5cb009cc49d683b9abb4cbea6fc0f62f64a2e3dc90b252ddcdfc9c29d32bbc83e75560f463aaac7538fc1191e0a8067dc90b9343960e5378fb95deae0e63c5901181f06845b8f7169a021671d36b45d25d3b86407ede780af34bbba4de722ed666b39db04bc6067c10f2ca1fe41d4213d6bce1605286b22f05681ad522d11de54dbaf2399dca346a80682651cdcb4cc12c7ecc69ea21b4654368082b5ced2885881819e8fbc00843e89701161d0798dcae303deb6bf66efc9d95e35c27a7e978e2b1b418efb9cd142cbdca6d883c16a41aef3115f30cf87d5ad4c3420f9ec7e119eea0bd24b186b280969ea5e0990cb77baf2a68331a17ae01d7240c0d2fd546bd60448bbb1fd5d430107f87e42d4cf6e622c5044886e5ed6d11de9cc3e9732e9a6efe31ac00e9470830b4eb4d29b3abcba5e07b46a4659cf0d239e58de4ccae4b8f1ca27a5301325be43b4dbe006808dcb0c06f34348e46e5e215548e9e2ddc472c0947c72439418563463ea894682474dc66a4d80bea3291e3b528b70d60563d2c182fabbaca0a0c96aa5804523bb739a9ebf116c203cbeffce0667f9d987ee5fcf5226d75dfdd3da207f5024fbdd26e5e14e4d2cd92f3036bfeb5c593f446d3383463f4fce5c945be5fbdf726dbcd34d228a0784ed5c80740ebd0d3f71743426148269553f8a4fee349602c4ed8cf029ea9f0f6bc5f43d995861ceac159d3ac80fa6e6d40380e9ba730bc2ce9e4df929db5da00cbe8b4ca517d1366376828742f7f1aaa9956a4ca025096a629e004147ed4b1ec6c5a0496558ccb8c107d166c9eaea7ed093aff19baef24d6261d603df13d4e18d5e1deb5df99f0e7edb2ac58563b852bc2039982fa8af99211600d519385617edab89b4e8c6df1eeae030cb0d6463ffef23a7e4810c37e91b57a67cbaa1b8c9a54d1650b02b66cb3af159a2be67a833058d9d2309ee546dd2df7038cbc86582ed2e42c0cb31324a51959b6930103e7f8e795d8ceeccadf08b46087d6db56dd2a8cce632010d182bd05e2a4533b97e7cce9a48844a687d043a7d5df4eb901232ed481c9870765393e12f7e3ef92fad5feb282ddf9cbe9e977adbd788f0980e02fc3f5cf6f54f5aa5dec6d4c7cafdc6da7210ecde5cb6858655d77ef0dde0a09c20346a61e713632b193acc3d8edac4247b875eaf0563aad96d855788722d0be13cabd7cde927bfc9ed2992da658abc3a1537bc4b991ddb7710a7f36a385ac69cfaac701d188f5e418390c99980ac1f29a372d7bb0a41fccb65cbacfcc8b3fa27baee451541019e0abc281b85deed9b03ad372ab4fe361b166490ac2b06b0e148468273dc9675ff8d4f8206ac6ce6521ff637d3c30d478ac3d6528da7214ebfb662b7fcc6b13637942147f7cd414f9f52145d771c31ab24138aa5ef521472e5da3f184a45867cdd6e200dd0f10608a0fe47991fed2ba9800acbf7514e411b67280562ee8b9a0d1cadbf65912f3f41ee0094ccf8a38edf75fd6bf5d4133c150b044fde160835c97f233440e3053a80d74986239dba19a3ad727265553e73d0daa191495c29de6015ec6ab8ccc7cb86574214762c80b5be9f0a3e6c48eb1113997d1b4d0dafafef00a5137a7bfa50803057727ec37b35e65cdcab581919b0bed77d09673bb0bb2b5bb24c978678eddade4eb844d50474c772e773a4684e0812519437339b55d320fe7b4c280addb94cb03fe8f60db9a191a9b911df7378f5d26b9fc01ad478e211aa3b06bc2811f36a082b491c04d732cada6ea1ef9b8e226fe96c3283dc335352e0e909b92350c021858bb3023c266cdff9a0a1b6a7f0359780dea2359b5098e150370090b59acf6fc80cbf6d8c273a509c369e2cca9587ef0f34308ee9bd1310150e55c5770d8ffdf5ec17305257ddebe396ef4f22dd1399bd3d28e6ef9eb96d91fffb15f330bd860095b030f361d0863768248116622872e186e7dcc98727e11d04f289e5aac2ec0023f11a812659877bd25441ca9de8fc8315f0d8419488be480b776916b21f1c17d20aaa31245dad0bd86104de080f9ffec8ac5c3c52ab224348f56da163eda4aa8b3b5a0a16b0190a788978fea424c9908f26068d07b8ec257affc0333cb3b41d3ae4bb87db5f3a9d226aa3f4cc163181cb13f90da5bc14fa18c5aef9bb74aa38bcc266f9ab75ec02d35bc36b49efa9b3a34335848b265b293c7fd0a483f1a2063d9cf5dbb900c9f8afd933f43bcea1452c51195c34262e07aeb790451e63c2f718a02847a968a40a18bbb9b73506c2b098d7b79737185afb5c9528ba8dc50e40e1961a5db340078f09352db5b9d9b752c9bdbb5073bda7ab9437ce9205f2290ef489cee3034622311959fb4feef9bc9279f12f1f6fcaa99d43e55f438eedf298968af6e5bdea9dd9312bdc8ac028e01883e762867e6d1ed0d1adc4f6570408e4e4cac8824b817f2f4d57623d0d87830e336203aa3820ad95194039d635cc8cde6eaa0f8f2a399355b055a926f7300f718c641af6a6274a579424379226dcc8462086f204d2803b30f22a5755b272fad395c10cd282f5ec0ed3cd7ec5cd58b615accf297756098bc134b89555cb71075235b49a3a1dc8fec72cbde65512d571f5e518e028903c9968492fc32393cc9a5ac7858665f6a8a292849189cd99677a39ee34c753dddd46262810465b727f904de44dcd8739f06499793c0f03c529ccf64333471493d2b0919491929209dd8db4b1e195dd83c14bf9b62aabedd4e128874bce750652978078557ff4933c0e0dabd3e846a132d33a0bed2e490c80024910085233eb2bf39e11c25b24e9e8a1f71381c88079eee65f278aafa72c4ce5aa71722fcc60d94540bc434c1ae9b6b3ae329cd2cf34c1996679e1dfa2cf447b5000fa22ae205262d428975101d366fb12c183aef869b160294a716d31d64dfa123f3605557f4cf018db77cacdb416f0a35c0d90d50a9ee207644d9cfd3122aa5bbcdcc5496021f2db2ddaab213fabfcd81b890f77a384e406eea2495f96f7c7f2b668ad0da5510d55c370b13c22fb68748718e6426b68e930528e1e1780c2f7e90baaa326ef504989317e1a1ff6093bfb204c876c944b9eaa68b217c32e4d9e2b275fca96315165f2cfdbaae42a8d8decb9410bcfebdc3b2ac54bcdfc888d21d85f49fb713d978ac813b389e466e60defece9130dc55647bf7498e6bf5e7305424f96aeffc4a2407d6fd0197b8be1cc602ed26d7897808a5a54cbcfe18e49142c331b70cf3db00ea5976383f8206aa110a3d0435a141e22540bbd32ec614b72165d8fe6e99e5908abc6f51414e4180fa377001153a60db8db31c94a77f3dc52872c09bddb730c0097bd4555d7b6bb43af464c7c1fc654a7ad2294ca0f7b3a6ae94576d88bac0f26c18b822f96ba0018002abc60c299561ecd83044c0b008e8d0f1de6cf1b661c4d0d73bc22a4d47233a77ecb935ff99ad64122d09636bc226ae0c87db9238308cbb83d599be7f989e63ff88fdb190521e546fcb9f934579a79f61e18e199af0c4cd0c7bb81922940735431d447981c5712327c716a09d6ccde76d6525f12c7208fc0776b9a4abbae25c671d39a0a42406962aaed383bf1f433462b9a0642c02d1a1cc74aa805a5f7e3912ce3caaa7c0195393864986af451fbce9cc70e6d0df21570f848f09fc06800fbec686fdd7c559fcefa896bb9cbbc2a04591f4cd5bde17ccf7319867f42aba9ac27f3a5e7fc20ea046ddf00d22538712851d7008d72d81316ad0b739974c3d963ca8e8299b48610bbd65dfe0f5f391d0ad003bd005209c80a0aff97017d2d42a209beab8caafe6f89728755d6b9b86d89e817988eb3de6c7e8eb9edd9b5c8bf8a7ef785816c7fac944d02e609a4ab0a907f4616f34681456f5b9c80e7c1d9b1c49b6f49904147a0f4981af89b9b1fc535f6b7ca165428896e9e82fc7deca99b8897cd793791b6b4f8db363d8c938520748f7a83f2a9d697e9588c27180a02cd1c43e2fe2c3ab565cc3e870eebf754ff6800b15d3abbbda36cff9ea910df27c778241dfb7e811a42626815225fa6d1068ae21cb2e7d0dcd2e29b96bcc46e371a852c75b1c2ffcfd30a000716028822357ecaa66d4a9160f53a564976a335561c6b7ff54291e5b3d2aa43c1b2976c358c4840a0a2816d2cdc3e24a793be592325ddb26471de0ac3a3fb582c95f5254cb372f0910cecc487e75f663350f9143498c166f19dab59ddb23ea61a134b9377153cd76a9a7bd39b2d6a58fbef16786eb191e5238e7d6d4f3d7ccd6c414114213ba363f59150906d509fc3d179b9cde2236d65782fc4b7d95fae3741a32369008271c7c835ea0e6b6d427ef1ca2cc6ade97e9c03447d4af29253d6a59c7c01c27495ce11cce358b150a7c43688ea0d37b490f1e72368b5569f79dbf09dfa002a7b7731270455b69e06e8861c06d743fc6091ce6dfa2fc0e975528984cc6e462d1d705fedd390b07d1c88449751f00e5fa9d3efae8cd0e78a87bf11aa2327010101e27b3e668e49ebfbbdc25dbc0eb25e9432c330b3d4859f65cfbd35cf859261c93d3b0a0b1bdd409e94873b6b72071e31a9e940e20e03eaab1187015fb1f01778dbd0722c0f7fdec67202625d771d97cf7df55b66ee5aa20b009530b40b8e777196e2b4ff6062d8e02f5fe1f8906dd00bbe41c99b737ab50eb28e81b3bd469098d4634ad68b5b17030d156f7226ab027a6686115cad97046e77e7514fac4442c9046108822a01b97e0813b8f50522e8f31bf10ee2d5265810e1df5d429432a0c0fd061ace752c70deabc28cd28131b0892901b03edaf5cbba4d28d38d2df110b02e8bf9aa16eef6580186c8f59db72366f387d01ba8da46b7a05fad4017db6c45910cd83e2477fc046a644e4aadec170e6e2c0a3603de5a8a82f24014d89edb1b56da418d97f97b39acb0c6993f1368a01125b1afc6520dc273dc7de5cb66b45f992c99fc6dc8f09855ef42f22ea8fdcb1ce15ea9f47135654b14cb6e9eab9a733163761516184f06ce6f03e24b2083c36cd1efd8334f14ac27efc542265b6e01216e5338bb5cb7f2e1b1fc05056985fce8d5a2b31a55671019c282c49990de758be38de7180b3948f0a5d089adcdd06e3321999a3130d9d64274dc2dce4f5181cb4a2ad0e3e92a4ea19ef82bd512c0d89a84a41a8353443540c75cb9faecd2133cf03edf5bfee36644257713a033b8ba8bf3176cb89ac2472367eb9f3ac4b2603594416bc15ac4ffb283a0a93c87370fe9eb639f708ec8d670cdf521aab75513bdadf321e4a6d0789bb301ee84df465ca206c7d3f1463d95f780cc7a61c620f7eac52aa8424a890145a62cc90110adb91ad8f3ac6d4107f79d946f430f40040609b5ff12ab35bf7e4b068abd0aab09ab52b0d6cc0a17c8e3c246f8ffa2fbec99f4ac8d1e9905c11609d6609cd0d65d44bd63fff3182d7df073704e9b427528b96fea64978ff4926e825817b7f66006f2b70e34a4aad5ca2f07e3deac062cc7b9aedf8575d6e0c5b4e74011aff618ebad67437e616b5624b48808917aecf71f4cd9f6816afcb4cc79a83b262534729433c055abaf6aa7fcc92ce49249b1c247b1ada53e87b04349c4bc11ccc271a617b6cdafbb917abdc215652601dd157133e26489d8872f73a8b1f3a6688fd4c593645e7f897632219b71aa20db141a6626cebadf72eb46c40009a1f07b01b79de9f31f7f2f9b6b3c46c7ceb786cae4d02275671609c1a0cc0526d3d62117e34b6f50f182a972fdc026e1a7e209e65209d1c2df484e4130e26ad84b533376c80ab141d10c2532028f6da76beecd8c6553e3907648a2f720ffc3f9868a50f08f4990d5c0cb6d66cb68dec1f511039f24417ea8b76dce9bd3790b290939291108db295a6198595622d7301d72bbc856e74f619268e25d64c0c4b6c1a2d4c5c00c67141406ab099cb2b069775cccfc2bf7190453b11181010e7cb23f0510c7f36bef7d20504ae67cda30c6a1fc50f412cbe002435403063d0aa0fc07465d25c35880ac53e9f401e415089784a89479c9cd899fa93cdc9f67bd0b7d7f7990bb783fcee782530c283da29cc0f8addcc14bd5fdaccc461c459ed399f822eb47059b3b4373faca5f499f5653702f422038a0b179c55201e555107b96918e506631dda351d8a1d4313f549c619d6e66db8e2803095881966df83ac54d2121ccc4314c34c52b4b927ded58821bdae757f12d38ce7facff5f97a4b68602a5f9f6c5d4bf66eb2f7de52a624659e09a009f7095f4f3e4940341210c988092605792420d28f46990d1fcae48f461939c25f2e4f2372e4d15b7cd63990f675dcdaf0a16c6d09be8fc2f64f987c1326fd08d7fc237f7f7e424e406ddef2f4e32f399c8a9c8048e5e927c9c9f479dded4afd1b914f1a512a432a47a348023a4fb8ec2f2201653f4f3f2d1a76a363699676e293e98a938ea837fa2be111d65abbfb48ae4235ba4ca9cc3b50a6f4e94806f27424f7deaeebbea15cdff32e19c893fcbe4fb43c29d08572fd4b0651f8e52ad691fe38ca6859e140daf2298a444aa156a47146cd214992a552c934ca6c984619a594526a69d759dad1d7716affd2b7a578329d4ae4e9743a9d50469e4fae65d7efb2dee86ae9090b783e9e0f1642ca727a40b93f5cb5f9fda9367f3cd63bf4c763e0d777208f7d5f6be9939b7a3f3c5e8fbf9a7e08e2baf36117f29e196973e4f67ab2975d080abaf3610ff7a0feea771c59bffbba506717ba47c8faa70be57ecf6fdcf62542ca7286b3dc1f52279289b0198716d7ec46daeca0363b09f2f420a06bad87cb9d3d5c9bfdf7887716fbd59f033950c38c74ccfbe1e13c5ca53dea3e9c591384b4da5a5b03ddf6bba6a96fb17bb5b56fbf4ed77c6bc7210c472018a64e4a23d00405e5ae5a759d8a451257dd7822ad5d71c178a586e6e5826752c4dcab62c5f7a980b958567c2d30a6c994f382058b1c1a33f20b16326aece0793cf8f0cf030060b4f0e15dc4d07979e93ceffb40101489c23014ad5d71c1786586e6e5826b52c4dcab62c5f7a980b958567c2d30a6c9240a43511cc7713422914824e924d99592d6aeb860bc3243f372c1352962ee1d4723128924c952c964329d4e7e3a75a5a75abbddddda7b6f672d89244b2593c9743aa150a892122f29e94a4bdc45e28834a14c4652e994422a9d5aa5537962697111c30fcd51367af325da90e0bf4659687252fa1046f471f430618c6843a63e6694a17c0cea4319199791e94a65dc5142d5285bbdaafb945fad54441f57af32ce60b158ad96b75a5d69cbda950f554699cbabb0441b123f6b94ad7cd8126dc8996f8d329a6fbd3e7cd147977ffc21166dc89ac7a32cc5e3980fcbd2cbb22b2deffd108fb2158f4bd186fcbe5c116d48d8afacb0883eae7896efc396961617177771e94a5d4ca616d186ccf9d06594bd7817976843b278d728cbf9d0146d48196f8eb2196f8e336ace1fbe441f5ffc8bc5872fa20d49e35f46598d7fd9e14318188781e94a6160441b32f661cc28bbf91819995116fb7046b4210bf033a3ec003f33cea899001fd2883ede3ccdce8735a20d9980af19650af81a213e4c91c253a4e84a53b45aafd3df4e91d89f0d74f3671b11c09f1d44803f5ba8007f369203fcd94342fcd94912f0a7f328e04fc7c1803f1d0b40fcd950e4f70100fd4343c61852a99a19148a245326a218c49f4e0bc09f5e1bc09f6e33c09f7e43c09f8e5bc09f9ef3d90e0316a080042040880318a000041880000270130b02886f3d007c68c9a0c15299a959a598a444950ad1ddad1d653c7c78451bd287bf9787d6879ee77d2f2f2b44ea316fa779f0f067db7a891efeec1bce873ffb472e488f901fba067d83cc22e745963163071a355efeecda1856ab540a8522c906ea20a121e7f11cfdd3fa01c77817aff330de876ff13dfc3f0f2cfdc24276532346636707173362c8809175705abcf89c568a0a25459e745de779a3acf5e127da902efe1b65305ab4fe65e745a32c86ce87a1e7e920528f753b475a7f56a1ffb322c1f9b30eb5f8b3795cfcd93860fcd93974fe6c2576feec598c3f5b87eccfa68d21f6672d43fe56c0feac41ffab540a85baf9b36d2cfeec5bce9f8d7bf167e7f29fddb3c39fedd3b517d90e3176b20e8c172e5ae4e0b0f8d64dec7a1f6cc58949090a0582a048b421557c188a36e48a0f4315de87e3388e463e1a75a523930926528fdd1d1f2afeacb81f367fd65ccf8a3fab101f223f4574a83fa841c878c5e53543135393c2f4ab552a2534d43c9da3674dab419e0e18e65bb0f9ae5ff12c6f833fac82e53361994fd1aa798969a1819971bdcc92c5e55bf150a7944914c5711c65de8723d1866cf9d12873fd689c51338bf7995e9e1c65304f9a1f964a5e2a75a5a57b633b34090f8ef2cf9a83e5cf3a6bf9b3ea70fd5969e69f75477ea93c64feacb6d69f340e993e07febb150b67455768fd89f9b302d59b492606e6e565ba5c5a58564afc79df2ac3dbb156a6d58a442291e428537d58126dc8d5974a26d328ebde34ce389d4e2894a3505d29cada1b917acc77589290e967da4385a4fc497d68110a448dd0207a44050c47259313540ae579c81ca9d9d3cc5ab50d5d157cc2232631e9572f7e0aeeb00ab38c2cf89527fdc9fd289812c96d2acdb13ca990dc7f82694f6e5279d220b9bf44736279deacc8fde1fdbfb9b961c10247b421c7c71965a4c71967e48836e4fd9c51d67d4e0bd186347d8b5176fa161fba70e12e5c74a52ebe110d9a33b0ca45ac5888d463bd43a2449425533353f2cf1b90e6b0549af6a71415d3667f09a6fe429567cd29c684699ba592c4a4119f26689a2c35e74569fa61a88c4bee2f8d32c0ec258b104724c954eadf346b4e93fe474d2ad3afd3b708593fc411a9871f088eba074547d41bdfca02508494eaa84ef325da6f997ebbcd69ee3b327d771d38ffe13e7c0664a448112024434240468a24f9a9b5480321f1a14cdf8580ac914cdf16714fd279d775a5ddcf8f1caebb7978db7ed85ca66f716dbbbd44a67f9b474f10cf3daf2bf5ba2684e4c8112121244782dc8f1cb1428de3768e4cff368f508724d3ef8ef4cc6b1d99bed74a7cfe7d5de9174469f58113e2d3e3fec3878f8b13527d7a703faa8f9faf48a6ff11011d04bb52b0de8c30c2086b87ee1d67d46c048f8e4ae3a93832fdcf885aab3cea0e918b445da96888d2daed3bd8aedbc1ebc90b00caf43ffa936980427668930247327d5104420fc3ae34fc469952b14d4a76bb8bd65e7a3d4f2459c07146cda251261a67d42cda9035a38c7e38cea839a64d17c5ae54fc46df37a22b7ac26a8d3069ecfbf3f313e5b563949cca27d645c726b924d386b9bf6c495139ec44c7a71c7aa263530e3fd1712987a0e898cca148744ccaa138caa1283a1e73388a8ec51c8e44c7610e49a263510e4ba207e6b0243afe7268121d7b393c898ebb1ca244776c7368223af6dc3944111dd71ca6a854a3ee65ee9d2adb98f7e7575f2489ea184bbffadbeccf5da61fda91bfcb5cafb9ddcd21a41e63c2631d7698090d74be42e460020337790833dfd8e93ea4638def3150a3c85e761847f7493081819b2cba96a6f0eead3ef6706a4c80cac3c3c3f36d80d6f8726d4c00dbbdcd57879b6b48ef082c35d04cd8f17aff7920fb57cfd6c323109e9d897bbf882fdb977559a9fba8bbc480e7dbb6b4d66e210c6d48ef3acfeb3c120d37efe0968c5b5ce0161f2a13cbef7f7a42f8fea79ef05d7c814b1858c7662b69fef2f14d6ce39bd8c637b18d6f621b3366e9e8d76cd602447152bcbf4a952b691e9379d68c357b1a6fc6c5a4797394d1982fd33467fe35e322bee099bff8e66330cdc360ef75308b878171fe05cef91a0c7b1738c59bd8e69335b3794c953be1694173ec75f8b366c59fa6cd9f7fa6485b6e51f690f9c9e0e7e0720807972cf00a8e36fd6f7089abb5c923e77fc2e3311dcab346f42bcad3b429cf57519ea9577992a237cbf393294bdacb7cfb295e268d37e3a27973e6cd5136f32fd33469fe4563be8835d87beb3906f790791813208fb166264226481a46f3fe26430d9b314d806870b9630697351e33b334471936af4106bf9bb85b5a4cd1c4d5c585467b8926a63906ab82c060558f6b94bd94aadc4c959be9e858b9c345a399af97d79b5894cd97695df82c73647f177c7a135a54b9d35c51e5583e780cd9ff4b1a8b35f326ac5439d68c3594fd51587fc29ad594b066b80ba4895693cf9276d2a17c96ac59492b875aa690fd45342a94cf92766bd67544bdd12509f020b4214b40da6603896b65c17f5efa68edbd6437ca2aaa7390b5768a56efb6b66dbf97dee779e148732192d64a2b4d9cad5cc082eb93f38fbffa76de078623592a9528c5194f14a7e4a3ffe10df8eb02fe52831069ec51794213b193381129c511d99f8c86548fb65441ba50f651c69889a8e26c04ee292b115c80103f117800900d0ab4d91fb45211ed4780207c5458967ea5e3cdcd0ea85127e7439bfda791469bfd210bfcf0c50ec7fee77f5224abfbdd0541d0a47bac69b3df3bbfd69a749faf6994d94e825c8df6070932c6feb4194471c2ef9ac7bc6fd1fed81f7087adb5dc6faa34fb638b74ece361fa6a5fedffafbd5df8a7ff78b3af96e28c0d22ff50045a4ab1285618e4ef2b8dd2f4d3ebd77ed816e997570fbfbfdafaa9cbb27c1449964a2b2b2ba5d87d3ab1b08c321b2ca3acfb303c6badb57aa5d42badf7adff0d59467186839c15c140f996f6e7abfde4feaff6f1e898a8a35ffdfd25a3cc4b7126542249e3a87b9227d395ebad17d8a046cc5ca8042e842428ec14926eebfe5524a4a55ebfbbbb6b5b5bdbb6079d362a6dfac9ba5940f6eb38499190970cf4bb170009d999500984b2a5df6712220159b37d8b06d38806a11108095921fa0909017981053a28cb690a656fd166d8891bb8e5da392ab6e1f978af03eb8186cb6c794b6d2a7fda19cb81fce5f8eddb1a8d95f7df9ea8bc7a89adc058babf6953a72b756834ccfbe981c23c283c20d1c72acf4f0528fb874a7892ecef792bfce5b09320bf9f868d823c28286c54066afa8f3ca0ec2f12f29889472424123a43259a3a6d1fb9bb60fb2becf9b62cd1af165bc95049928e611eb8d6eef65a6bdda248d2ededeebd2eb8fb15bed9855982804a25534fcd5a5b92a45f5e32b4f24fa9b4d84e5f326455682bf8f52bdc65212d3c43285409d0cfe39b898909ed18ae3d7d208aa3f2feaad4abd04657e585cd51067e1219e6e97ea81b8378a15a27a1427bc1ddbb6095c7b8f5257e79f9e21fe231f1a0a0bc890785a4611efd5229714d049dca77abd7aab5eaba3100bdc33234643b1731ed60096201c22c3f54c67f94f2fe23f1cf91500e77f10bfd90bf702db4e3afe0161b6eb97da0080441151e2ab6363b09f2fbb08695fa48a5a6b243a5eb56ab6ea5a2b24385870aad4d4f823c712db7d81a89161b4b10c5618d1ed73cd622fd89f293fd698badc546c14f74c12adfd2fa55910cfe69da91fd59b04aad4dff15ac42f3d7593212cafe261e8fb5d8fce524c9c433cba23f4b8630c6f8316eb12db6ecad12d758d60873d589700dd7ecedbcaf52f01ba9fc6a655f65d5a5e0d3b3aa3c59b08073a8d05c483e4d3b700eb3bca16408fb9c2c5d20c2925a6cb866f35932847b700dffa8f050a1994299aef811f7068a679280d2ef1704cd813cc95a6b14e499ea7677d2869329fab743f0b64691a3ce81a4afe3165bcfd22ccd56cf88a5b5a5e5fadded58087db27b90d3fa0541d9ba7b3779d61cf4a980743f55d943317c20fb7bd80ba232fe4d23eb576f77f7200f0a7d3c0c37ffbe0fa742efbc5028f750ee8f27e8cbe142413e5e907f2228d62848d18b74684f8f1b7fe15a240ac1eec52ff526f509c25f5e0e020a9ff0eb56d484a138cafc7b90628f40f8df0ef4624c531cbd91da9a1794bbbd207fb51734226f088adf17966238bc4fe277bc9209f7b73f1a6bf8d7d2b6e97faff5a7b97bd13b17f9b52551047ee2a87bf1362a83cf32fdd03a415227ac135f0b854e24fb4fa6f4a3209bccf4ab5190e7976df77d5f58cb3002c1d0e4a4340253282857adee55b1c86e754f24f15b71c1786586e6e5826b52c458152b4c261530d35b618271b17cadddee6eedbdf7e545a775efb5a2ab56f7aa5864b7ba2792f8adb860bc3243f372c13529626cadddee6eedbdd792ae5addab6291ddea9e48e2576bb7bb5b7befb527afb5dbddadbdf7765f8995b997ec582c56cb962693e9b5b4b4b858989d980b173b31173645cbbbd889bdb4745ac480d12283c68d0b062c40010940801007304001623ba2dcf202001f86c47668b8880143864e8bd64bcb10cf941a4f241352ecae150d796969d1f9cbc34b8cf7bc9b6f7969e9b48801e3c6e4992c30aef16f478a2792fd44435a620f23460b1d1f5adfc3cb4b8b28df0c89edb8880143a745eba5e5a5d5d2f2f2d26ab1e1f82d2f2d9367b2c0b8c66f91ed106327ebc078e1a2f522caa309b66288671a4f2452ecae150d318da3f9a10ad338dad1ff68f24c1618d7df8e144f24fb89868cad77c1b0982b3c6c63328da2fc435a2f2d302e93c5338d433cd37822916277ad6888c91b4793c91b6d091c4ddeed48f144b25fbd8d3231302f2fd3e5d2e29944d95ed66a88671a4f2452ecae150db9d692dd7dd3e974427d6f6f478a27d2271a62bd279d4472d5e1147caf15e56f88671a4f2452ecae150db12e40d1101a443444344474573642c083f2bcee3d922453a9f77c28452281b47f92a8d3ea10b387247f7f5a1d5f0e9e1cdf97c3023e44a67cc88744da3c6e4770e27363691d02f2bcb96931be8ecefdd3854efef4a194d5dbb739680c25f5f6579886bf9cf42798fa8bfc8ba9bf4cce551ea94c2754c9db4f5158c9d2b2f7dd87fe1dbe0101e9b9d3f098fd4ccaf323c9f2244925edf11f478bf3d8f77d246971d93fb4f5a2b0c99f30d959c827048c823c4940619d037992805498f428f87e0a9fbc09935efe6cdf47927ea6f2f9d9b2bf58824940fe2a3f40d69070cde4934827a4b7a3b72f52f9e5911d6a9ece844923dc05c9221210aabd3100e0cec9f497bf37f6787ff977b7b74aa5dadd411449ba48241292cf4f4891ec1f7a2ec1a71f7f759ee78d32f265265190a748cbfe61389280e24002058e1b1aa26968c1124da0c066e40c32a03d4b4c8127090fa4c083c48efff5d1a67fc59ec395a8c235f728bb2dfcd852b39f8eb7244286cd183022dfeff198e616a63954115517776ff706de5849a8c10d2f108a4112206cb8b102153ce10362e0f1a9dd088002361c99810db8700338bc40c115d6607b01146b00b2e3cfc27e93b449f398db7b73dcbd619a5368769cc7e84e3e5d0a34f764f75c769cc7465bff7932da3c56faced2ec249fa30d833fa032fe2a180442a5f15f61d00795f14fc1a010a80cd8447d8150e8b1845a76d008b4ec3f845aa6b9277ab20e99e69e08cae08de274f6077f4071fabb0455b7766b3cfa05e80309d2f2945eab409ee06dc847c3c0200dfb91fd2cdd465b2efb68b3f9749ce31a56ffc6ec0c28e8810e8204e10c5fd8f12fd13c269a81086e40c30bdec0630d3b3764e005320051a24711e600851dff92cd631298c10daac084190fa670841dff8afdd6a6a3e0a766fd145e51b3fe094e51b3be094651b37e09ea642a757759527f75833ec4fe4c73363092cfeed27f1c65d40cde4e4076f3384fbe79ac16e997ff2a9fb5e7de8ee42a92ec7fde9ece01d9c3fbc6017982b70ce2c01f0dab44bcb74fe4727f9829901d3e007df40bbc350ff0f6dddb924c81ec10baa51d2778bad276d9a24dff1b12b9d3848f71b4e589eaf25ce52692eade40daaf3de38cead3a6bfe8c70f70fca1e6aeb936e94e133f1ad6b5dc69a2e787b7d3c40f1f9e8f86f90071d97f342e17a4cd5a6b2da2779ac8ed34d183f3d18de0cd63f7e62fbfdd5b76dc08d71bae3f702e48f6b7d5078fc72a8f7ef9d79eef23c954ea7ebfcc7cd69ed40cfaf2c734a6e32f3f7f00d4f447a1b020daf49f41bb903d0103a0b0234134ac02f406e4597f641f17c8fdf5fc72111677b3652f42ccb5da1097b84011ddb9276ed926d31c4e0eb94719ada51d27686dd2fca34c81c82006e38cce18a851d45aebd766a53254a659daa43f394c89b4b4e3444f9b345bf0d6b0ced64ab5af28de87698ee803b8e62cf6fc612668ae0848e43acaa899da80fc9ac76e8d96661eb3387a7ea55997b534cbbeca14480c78e4f3d6b21351bf773c4c776cc82bb3f65299c6f5b2d03b3a6fe412d5117ec33ca26fd85bc510e4db742090a60e2405a203473e6991ec3537399064ff160ba859d1b057ce7238e2df4e615e7863dd9f285f69fc4b2ae37fbac91018f4755222d9ff522864ffa64bc8fe25c5794165fcfdbfe6b4a834fefe37a4b3a484ec37b90545abc5ca028ba582051595d5cf6a95728594149515542a942aa0a0a488a45227434e4e4ca860625232859212940f0a7592c2e9648a82c9548242a9440a2149d21348a4911346a3b109e328f68862c88430142d4124029500825f90eff392e0791d12baee02b9373b95a91606c571f7ecff82e274bba038f5a605c569d4584b92dad28e13b52aca426843d6fe50f44598aa278b69664a6bfcc6ce4966233bb51d7f4a9e27248a63ff7efd4b71baafdf511cefeb7b14f6c1688b19c410704003a84c7f871980174065fa2d56009599007da16a8e10140d09a03299f69912c26395c7a33f2620eda75068ecc671299fa92c7a0450997e4a653a01350d540a64c85d5f27f542eeffba467e9d794c085a79fa3dfa93ba95a794291018ecc84d03929429902ed8209fb566abdbd17944f692de325db921aa1e0c42ba436dd83200c13f7510fdc9e2540163c5cc0c8c8ccbc59222f79f2eff2a2fb9ff6ca1aca4504c327dda245349ee3f455f18fe6949d4ec17e103d0573f8807f099e47e57c9fdde5591fb2d8bdc7f001a2488f2d4219fdff7654b85b0b6db4b639e8751fd320294533205624409998e407cb987f73a4d7acc2b3bccfdb57af544b6f3dced519caebf6b8ad314a7fba6b7ef105ed051587b6fd70d8116aa4e2655989212ae4ea655c80a5b412e60010b5820caa10515d6d593440209245ce00217b460051d453fedae21206bf9d5ddda7bf18cecce31071fc29fe7894694ca74421ee441ede2cc5e8b047b6dcee63e9bcd5ea76ec8c067cbe5c22ef4c22f1485611886a552e914a2e850ae240cca3eca083311359f9fedb3a5a0a65042d5c9a40a5352c2d5c9b40a59614b059694741948d56873350e399bebe917d99c1c6c10db637336c762b15af7b3f9ab6d2df15ba25f6dbdd4ffcf4291240963fc62a92cef97a3ec7eb5ef1e7eb6137cb625be5bee3fd9927cb610fcba0fc5592d214318865eabd75e0159abbb7bad5e6badee5eabbb7bad5e6badeeb5babbd7eab5d6eaeeb57aadb5ba7bad5e6badeeb5babbd7eab5d6eaee5eabd75aabbb532f29f5b2b082147433f2fbeec6fbbeeffb3c4f241289a2288e2808c11169348aa108e441586b6ddbfd99a029a59492f6deaefb3c59addf2792e2388eb25a5638905da24895564a92a59235555a294ac90d2eb5fed166684dd0b91a3dcc80c964e41d1a3bb8787b010a7bf1f68ba031186fdf080ad3791a4481e80ff549414f9a9b69f3754363df6c4561353533c64b0ccc2d08381fa02fc0c4a0efc763a4dccc63a41af353648af22469ca9f3c33cbaf9a1dede730bb1c837bdc87c16f22d4b0ce6ebef74f61601c303e89df815132616f0d236941a0303206359c8fc74e38a0869d7abe4061a727e07cb2ffc92728fb93721e33b10d79cc04a8a6c634ff532992b4e53269289b18954350247378cc24477ef161d7759e088a429148248ae38836ea1847dacb34cd978e1db3d188245624248da48344a2bd4cd37ce9d831a391aadce9435234714a0e51a24a88244332318a0c69626282ca69f13538e6030b980e2b6c54bc7c6891c32206d361858d2a97ca2a5e5ec9289b2931f1490e5326a7c6712ac931b8dc517b294b5a2b81c248647808050ba18c41e0201d34d2d391354b116558e69477c0250f1e72a1502e195c7764bc64cc9789d2222412894c353016c2411897ac1e568e6563d55834d68c9523c5c5256525a596c223650915904a084b8b2ac7c2c2c2c2c2d2d203c8ca41715eafca794c8666becc1b95495d892fa59c28a6d4c02d403f54e65f84bbe15aad56ab4566f365ae6834951d2aa38c5563d1583a582cdacb34cd978e1db3176cdfc4a44c0363a120a01f2ae32a2a2c96100b092b09ebc6dad13ab166ad56abd56a9d4e709ce46853884795cba98274acdc4153698d720f3566f050e248e2776a7c143b3cbc3f19039296fa93acdd6c34763006faf1c1a1a0bc2ae808ab0666cd5a079b0e5b0a102925252525258564b1aa27882af73ae159fd79c2a3caa972af991b8b467bc1afa781657ec698773016c2411888ca380a55c262b570b489e3c1d2118359339313928989898989c9094995abe13c76c2539281cb9c0c97b81d7059e3e1a19933e68b55d2b09863708f9b77815b80a88cdf984cefe5509904070fd1272412894422d1975f33f365defccac4a14f2657785670ac28b1449b3bda2c098d4aa552a9f42759faf31bd156c00cc38a61bdb0b068e22fbff8b7dccb301ff32fcf3202615ff5e27fac61dffcd0c42ffe6594bd7881c71ad6f4f0c53162c468797d0c4ccd97895de20b9e09afa2e6d090e62eafc035bfba6fee5eb8bf6d5e21aaa839ae4f5198f8f55714d6f2f54b688ec5551aff935cbf44612a5f5f4461abafef1496f2f547d5ab60d7f2f6cd35e5afc8aeaba3d2f85fdadd01da2a8dffebbb52559ad5db3fbeaaa62c8118bf755c5acdb13e7747cdb1446c35c7febc74749766cb1dd96b39becb75b8be069f3772cdd35156f33a0d13ff8c69f9b306e6d65e2a7fb6acfe64a5fc79529a95b9b280b74ae37fa6bcfe44e59a052a53cbd3beeb5fd8fe541a2ba4d278cdb13e95a6e6582295c6bf2b59fe966797dfe5d95d0ff7bb9f71bffb1bf9733debbbc6d7dfc816d3fcc245741e4b1595c6f52aace33538e65d18e643985751736886f9184cf36894c1942a48d791e908f33a6d858cde9f8ebe545a21d93f65854123545309141482c12c983ee0fb5b22adf7b73fe683cfe293bdf5654924fb9f3772d3baf7faae3feb9bafd7f17a7620d7b734d7ab749596d666cdaca73b5898e633cc277803916012e1e5b3342bcda084830c83697ec134575caeda4c15813c2d4d6646a61c6d97661ff2240d7b2733050283388caaa7630d54567dc5174065150d62e66bd31cd227d787f17703795e2017e1790898af6fcb93f5c3ccdb9877f92eefad1ce202e510ddbbbefb767d370261fe6dfbf744657ba280a06d8e33babfa53dbb17fdfd0ebfd47285dd727d980f6910f6657299e6ed873dbcbceb2bbef769f77a177efdc51dbee60b9f36b28b8e40982e1bdd831f7a1d7ef9b08e00a899c64bd9b581bca50dd4f8a1d78d3cc4bcf9e12776d83e1d015073cc79df96fde3d3b146ccdb72889837cb2164deda409db7b481ca31a595e98146a6a4acb208cf33ef52da9ab208cf30df305f7f9829cf9a61fe3c22d78bbbb187b37b1b81ecfa6efcc17f388bf00c539e1ec8e30ffd43995de5d95f847fe31a564b2fc27fdc7c5cdcccc71a2319343f53e3c9333faa21caf7ed08c40d6fac517fe675bce28bedd8039847a78d6c69cb3c6d188cf9f2b45f32e5f9654bbe9016fcd1df7288d1cf7c8f3dd0fcccd7b1c6e8671edf6f7cda18e1ceb47f87b83ff3615847205cfff2757cbdc5dd3786294f1b2f3ca37bfb263e6bee2e9e317fe675fa05bb3a373e6da0f2ccb75c4fdb345db72bcf23f2cc8bccf2b481a2f9469e2947ef34dfc2e70e36b2e8efadaadeaaac066aa6f97e9aaff8b491eb3711c82ecfaff814229fa2b781ca345fc71f6aa6793af680ca34afd31f7444c8c8053b776083e08d06d3fc38c8c81121236d7a5f22d93f6c7c6d68c0e6141e6a9729347297293cdcc8f56f0c61cb5b5e9f219044d81b0d3e6ba6f9c64df37da599f7687b824ca9613f053472442805047f8ab479dec834a84c833bd75156a2e1c813bcf5d4d202a85c5ff4358ba8e8bd2b7b78df8da81d26ca941af553ae91234229d72703360ff193fd16c9fe37f28d4c4719886b1c797d1a4669be3fb25f21d945233e6fe4f1eb281bbf45a28a691611e127532299e6888023e78680245b9aebbd875abfb1fd1f3a1b2db22dcffa1aa8d93ef9b7f1ca5bbcf295b6b95271bfc5b8e2ce1bd99efd4574be40dcafb8ffe2eaa33651696a79cb14b0a761aed2e6dd3eb529c1db57965fcf408a7ef4d1304ad21093d8731e7e0c4a2086b4a6c046a4789bfede6ff4e54ff32739f3672ad7b45ab9c6c55ddcc5e5431b5ca2d14aa98f4a331b4c77da0952c5b3de59df7a3acaba0992754dd0c73541dc689a7fefb709c8fb3a6e9adfc3e6e968dabc10c896e7f641b6ccb77fde9b6dd3e2c05bc3ccf79507711eb3b9dfd9069774f4cbcbd2ec4d5c834660620a94bbb7c1a5d9697133f36de70d13532ad3a0cd062ed1b01f1ddb2142deefb7b497f2559ea95c67d0b9d71290321f6369e58b346d8a3f41a0afb73cbfcf7a79a6b28f444ce687f93adef69857fa85197d0a4c7764301196756b274824fbb7307892e0ed3a718240b23f0c3e8bb02a708a79031de02007cf4e8dbffc3b08e4599aa1640a04062108df53847f6b18e9a3612e26680e68d301857539a8391667830abb34a039b716030ab35f73eeadd2c080e2f8203bce6d0d766ad9dfdaec2dfb9b1f8636e4bd40202fee06de720d0383340cf6bae1a5a1f73b4178178ef9f44b8a433efd158a739f9afe5df7c44f2b53205bc0e57bf31808fec0dd480a040aa0fc7382371f10c9750f480a040a1b981bc205fd00c9024eacb866d0567328a5790268cb4e50d33ffb5fd0084a1092fd2dae8248a8559008190814076c82cadc6a0ee8a3d2f807018b90cf5b6b0d69b5585460b154a6a0a2b2f259ad52a49092a28a824a8502051494949054eae4092727264e30312969424909aa07853a31e174322dc1642a29a15422839024290924d20809a3d108641cc59c288647084391114422b00820f8fdf83e8f089ed70da1ebee13f9e6fae0adad7582e2b87b1314a747a38c6e21509c7a47cfa1c5a5ecc234f70349267197616010400fd31d4a712a18845e41f69f51976b24baf0f571834065fc497c81503613e409deba27df8569ae086cc824f632fd4c40927fff2ccd280eccfbdf1fd0fbc405925f1e66b4790c04427d39d884f10848c8feaf21647fb3ec1a09ba2c0eb374a428e6b0a49fa0e0ede69a40c12964ff5e823cc1db1361bf6badb5d65a6bad96beea83b852ae28b9fe794d4872bc4f6da9be509b34370fc873b479c9965d066580910fbbef7affb0249ac61f689b2718a477409ee0adeb488c5d6267129de2bc695ca24d1ff2242d2cae55c55e0e6dc85bbb3cccf2439648c78abbea639796667734ec77b860e8fb48f2f6e0cda2a44e4c4a5027d39ff5415ce9cfdb0e2e04e901716d7a8bf166d301798e361f6d8eb7d136dec0db78b3efb5fe686b73bcd93f479b2d47077dfc35dac69b0c9000bf7b7bb3e6267bdffd798364ffb691aed2c97b33dddedb4d7dfffb9d7f3baefb9f6a4bf3cfcff527992d88036ffdfd5d09fab0d5559e64aeb6164101710dbb2578c3200ebc95448040faf4b4d9309a55aff2a76321fbe950f8bb908e81b7d389647fcf35ecd6dafcd1b06fbd0fc52e8f0e627d80c4dacc90fd291872b534d742f61616cb63794ccbe3433ee4495c2eeb7299ac9667adacbc4e7b92b63cdd3dbc5f8d2b1fda90e563233279ded4c09c4fbf2ce3aaa1f9fa5dcdb15fcbd3468b5cdf055f1bbeb51e64fdf3d6f2e5d1a683b7174c79a63ca63c3fe63bf056436331d844a5f19fc1a00c067fb419539e264c79fe4bd95d9a75832920cdeffeec59108ad3a36d08c97a57597ee3223a5f1ef65d7e94b9b8609b57de872db1e29b55f8862cb18eb21e47b4d861a26b0bcb4adbaf6f6b12902881853694c1e70a6978a0129c4009212620811076c6254a8c316db3ef8c3cc1dbd9b3db78bc8db636471b3dc1db509e5ea8b4a95c8b82a064a866460000008317002028100c07846192648920f914001472be5e5e4e180874184541104629640c2186000008010020232334630200e2be49081a17149bf9b977d42c95346061a08395c868b7440a6acfdb077563f534a416d5e6e3dcfc5ef89780f9c847d177a6059e8b5ccf2c71060e63b1c126e55572426b893563aca535238e53666e03047f93e23b42e3eaad378327da4c87f73d769f54aa7042671e122422dc9e6c8ffe8ae82a9857a0909edfbab23ef8a9b66f29464be1231780e7f459819e3d3a0be2ef2c7928753cf1f7938f0c4e527875511feebdb86a6d69433e058636dfd35f905b91af79bf44adb6d44dc154193bb6ba74a476b701fe8241c0ec8bb9d59945b500062f1488f6b00d1ee2a4c9a3346c8a488ec589e7b5e5fa53e3d4b94c84802393214ea9937eae22620c322eb6c8658ba8bd9f4318fb23ffe25a67279896da2776b6bb02d73e13770adfbbecc1c887a64ce462fde5e2c6cd7c4a48ca05a28e414b37c67e56d3a31ece39bda6f7440c4ec787cf3b44a6eef184f4ffc772e971dd7ee45839544ee623ddc7624711bd2114a3b871895f9f28d9caec7940586d87af3858990a8e4fd64dba61c75781112205b666dd2758669101050481183cf6db1b53afaa70094ecab594c2041fade5a7487b540a9014ce33ca2679d1c84f00379388aa7b77bda2b2c2d9d4dcbaa1e7d0dba10c13039002b984dcfed0d5ef4dd3f2156b798b7dc50860e408f2be260af78cc48063a909015273cf1757f7c82ccc36288e4d476b1d7761740922bf4c662f8aaf8e66e7cfda00843c7980ddfa20c24c292c5bfb44a879b2a7e2210998655ecdd2c826031b7510fcc885718948454d51c40d75cfde34f06b2b9e1625ba56e1abe47e1c31a82cb348319dff0da691eb14a2e6c1f9418c33e14cdf7b1928e556e4f1293957955d443dd5015f2cc25e792e4a5a9de1cc1490208ad23bd956702af8e676656ef55c69e12a8b2616390bad83cf09a1a8b92f4e61d1586fd09ebfd2e5d94220f7ffbe03705cdd8d83c4070fb01e65371abbebc22ebeb22f4e82f1164f2e1c70e3d1ac2bb4b1580e39e3719bb6da0487e3d2bceb147a89227388b434a90eddb3772407311ea508c16cb592e47e61a55a1e540c79a32d52bd0a40127b2898eab5243185d35e46c03d7bc8161327c7763377631cbee06b812dc4cd946c09768554622ec2d9918d256daf6dd260171c390a431c00a08d5486eb5edaac8e096f813d1bcd9c21f3b3ed347254ad2d07c8fe3d8cc9135e76655ece18590c0299b9833f8b378e7b41629c22c221606f8784058fcaf993ff82c8e13e289710acc0fa8a9cfd156201b29085b115e414198160ea6e2c0ed2748177edf774827436364f252e41583486c0409bc65350ae87be201fb614729127a9b9d2e7373b964a8e159c10549cb915590da2a570b1d76bc5eb7049ac3e989d4d917a61c9000cd9429529c9b948885e413506974758a7973082e2725c39ca3499e4a30879d2848040cbd79694fd7121b1fbfa8d7f8d72363fb90817f948dac04b5ac39e522fbec7aa748a9421deee95cdc3907743be6d8b5882a48f886109f8b6a9ce4910d3be87e3a43506b31044c0fa7c15371d15c2e4420c10cca274c102cf447949102b14534096397fa2f7f713770c00e2eee911c482dc4ba2abcdb3b6b2a5e2a65a603fc1c2e76bd41bc7b24830cc61c916dfb678e253a69a47377a26cf4a798456c530c55c9708e0058e195d54443f34e95d73e542b173036efa52264f7b2a21303d1e92d338008d71643f8b286d428def02f20c15fd02f196c6f14f8bd689b17a851fbe06d9074549b34c9badfd32697b3911ff10ba74b2d67c006dff5de3039707c65182391498caa0bcaf32a75ad4e80668bfeaa1881dfbb51fb986b403839adf832cc7339362fc632aed5b19ba0eade76fdc1e03bd9198a770ecaf0a47184e9d51c4119185a93094736e31c14cb5205e2b87f4392809c45d0ed7a29484a5341716dada8379116ded46ca52dee31a005357c9a9bbec387913a04e3549517abd8037257fb46f808dc4bb08e4db2f479c2e401926cbd9d577feb0a00f77e925d84ab917e8244c4863ae579c8c0cf4801b22227dd6a9193793d2fd15487843e8686481e41b946e94ea918eaa36ee003efda94a139aa0a606396e4888c148c04c4810b5f2c8769dbfb6f70e9f89b26861d2d482b8c8882ca9be8aa118c93b983afba4a3bd9d20b8d851ffc0adade76f991b8242d666094329e7ee727f7cb1c21909afd9932c1dadb02176a92396dc30661c6f3c8923b8cb38ef6e5233a7d07bdd1562391e53108c7fc78f4c4d25c1bf480cac4131ab4058da74425721943c2e3084b48403f6b6da0bcf55282520eb3c0d4e810c0a3024c2cfb54769a5ec0cb5814291840d12a2cc095b1f2696026a41d0fcc8ff783ec31a5f24783307dea8baa0a1df0bf217e6f1080371cd20cf8dd8734692c0736d9bfdbb7873e6fd8c6633eb777b2cdde0c10f6a9e53af6e42df59881c592543fde89eb12f78bcab78c3d8139e3bc7eecdb1607760500d7c8aa91369a7c9f66ab8a11c012ba15d51f54a035d97089e85dbe447a063b42efd60aec43d4ad0f8ea6d9dcb52491721dbdc6a3fbe4e2f1e1f3c0bfa3a60c1a4cdbc32d2edc431d63e2e4b495aa53876f86170c0fb4b0dd35f0083f5eecbf0bf4571f402e644738f5648a804e5ea01fe18743f81d89fcd48d1272e0a3f68d9a22aaf2e61bc53edba86b008374f72b611a3b0ce6ea514602dbafdbfcfc61191cc340be65ef02914ee61cb9ff6e7b398481a455de3f3ec89dacb1c43c255fc19a184177b76e0796ad01583ae1684a2c072c9057b0f194d569d7892b478299613eb4ce33679752361452e0ecc3408c924923a7470b8d0375ad67c06496fa52a8b5e130d8bf7c6323d56afe1b69c99908c40bb09647ffafc98be5ce572f3815c2022f81ee92550c999829d85760ecb23309d0ee9ec2d2893a3e368ba80115d4d94deb397b49a39913c5baf298b1d59bf917d9765e0150454b1402a6aa87d8a6c9b4fe16c2aa335403fe43255cc408ad38bec8e5c04f43609b5802370f40a3baea19908a7debec67d6b022c71bef38a313ef20954c54f869e05e57b01f51356534f5a5d3681bd528abad2bb1966560f6e777f5a5ba5d12db28f2a05ffe5ff5505bff7b96648b1800c407d544a4ae3577ba0e802fd9dbda122ee4774701190a7035030600e8b485d4ee3e2b17c4e81ce731bcf9031b7e79b01e333cc4e1c02f31e0ea20f13e864d0cfb67e0e69c54451bc81b8a4579c014b177f456bc8d9d84e7919b1f5d5bf2dc9c3f31b96116e2f00bc92b6fb3285247ffd604e5db99ef92b6f6d1bf0d2f19a38d4e6b373a084218b16174489b366ae5e0b6a25dfe980ed9546f128c5fac5b4397a060f8bd84dab765a166d6fe47e1f3a5f48fb2d26fd2796d4bd84b35045d926e6b41fb5fda7067e12975e1dc1e3f564df9c6539ba1aa6193b5acbd949e4e3c7b9a0ebe2c748dacea6e2199edb057e6d5762529fa70eab42ae930d39115fcbc63455cbcaf9b3058f637e5a1dee02786736e4a076691b72aa3d0af7d7163c87c19544a5494522222e6d954b9aea00d8ba669cdad3db2ca5ac2655b17d88db2e5e4bbc64ad34f3b945b8b519172be698b99a2adcb34000f46a2d948cc2644e137d004c84bb3f0a8d5121249ee72ccd809f9298a187f8fc3bdd36872ec4c359a6c9eafb0ffde1c70fa1f75e9683ece70eb53a18601ba6d32a936ece38a9530c9a3634f7a449df5e8335880996f7b762d4e5858339029ad26cb7235e3eb7c6ed97270188c4c6abcda10a301f3f1244af05c6f41fbaff9c1e6cc2f1b415edf0b6ecef703b5cd28b945f7d02d7f2c6e9b9eca596e35098b7392d6f36ce3b03819c2002b36ecbc8660ecdf69e8be7e8204c71c575dacf26446716a3f6451d37c2a42dbdb92888d10e7c49a676274769968d32b2e18842888895f4a65ea5d5db06f48ead5bfe56f1aad94ab6e9cd6b075c272578a250d69d4b00a4440329f620d64dab6d31a4407744198970c08ec0224bac204ea8efc8d55f91ca6df5a88b47869b827279ba71f76cce10dcb02600d81bd9c35969e18d70bbe9eaa96c06944fea8b5a8d71b684166dcffde5d95faceba683958dcf520e0f89c06ada0c3b07ab8279d03a453b21ba9b87174312dc4c8ae2edb0917cbfcc7d3ebcf093be5f62d541cacd917b48e404b30e01de613a99c10a8ab5b13524f42b2c44d8ac10a06e6e47d88da355cc6a74e89474ee9a167b430e05a84cd854c2c118fea367f6772124ef4aee8f67fb7d8d16aad29ea93e73769084162c59ed09c561d3d3c9c5cf32361b92df24a81c61e08251971c3d349470fc8cdc3173fc08dca165e240c0076ab3376523bc58b83324180f91a1959659866c8467a09da36677790a2b217c5f0ee06f1589ad96776d058b49e22af13a8114ddec9d59a67730e604284127c8ce7a6122c7f86a1030cb4aef0244395961427c533bece3556435fc89275e18ab93108d63cc975b97b583aae0cda1a930fd34808c1ccdf2a344991b9338144d626045adf174a0191d7da065316476053577bfc8322ed2cbb568cea93e8b696934adf7ae59df4cffaed4cc524b2a05579a3009e320858ab9ba4a981b62a8f5254215605f83226851da8a2e45e64852dd41105d6ffff3ed31db3617c660033b8f84e8ba28196dbae7bc689f17d8fe857b2970d49870da54e8e401d254ce4d3bb0884fb7f9d976eb19d694c24f0a1ca314e6683eb15a53fd08aed397814ff896244ac0d0c2cfc9bac889f0d50147e2c957cc9bc37bee50426a1b6a1786b8958895f978a557ee66d3708b2ecbf9a3b8903ec25536bfdc2d9f64a82f477b86cf54bd23556fbce4bde900658012a63d184009cb9cdfd07cf1a770ef0980fb6263950842f3e92bf9cc08220923489ca9510151cd36b4b8c4d6d93a1a5b6c17a0da3b4a553cc88f1440eee21310027eb7a47c0e5336471d9f295680d25ea0e0f663f540a1eaf99cfb19bbf62a3b556e75e050cb1e777b413f48da4a8f7b578c50beb0a898d0c3cb0103299ce01c238b11411a7d06e8c1f25d56ce6f3bebd3f5e2fd4204e93587acbf7ba251cbefade6534794b5c627ac9182069b9ba57f7fb7f3797b8973ba429c155e72301ba3361245cf6f1f9f33b131a3ff1c5c2c31b611fc483a7612bf995ef1d0f17d96319c849e7ee95ad9a4613b4486037dd7a0c4e506dd0ec9162d30f7d013d0cb6b14134788ed32204a68cb4000af6ad6caf81adacac68a3fc00c9ef874332a2ddc669a2ee5b2ed35d82ed74b0013d223c875a5dd6544e9b4e0150cd8c2df23ec36a1e9563fa415e0c88698801f0deb6e20e756dc8b43c929f14fb45ed5e8d4a7cd307e151e2c4969927e80a153607b8937b39d3f147b0123886b2f52360288893bba91ef50e4e9dac770c3f927d700248dbf92d2eff4aa5585085b6ee6a55d2186f8d77675de92aab92b9e29df4f88d1fd9964506829eeb8090ac0d02eeab520be43941c65466a9c553e5d76e1b08d4db446d671154387c5dcd6e53647dfc0e6fe0df337920dcadfb0eb66245ab9a8a8bff32398029a718fa856af5414cc7d8434fab2318caa6ba709c25a9b6b11fb4dfa8edd864e9832a11561f0cbc60a6caa386f0844313ef4aeb31557fb62bbae093a929fc2d25cfc5623614fc465e80a7b9bcd3f1ddfb56aa4a7855588930a36b860f0825aa93b35215e50ce86d749674972393629b1e1463927a09f36907fc24bdac0baff43ebb5d200d44ac46c1c92085b26cdfb7e5da5212bcb81a5343e8003b8b8c234932bcc1f385a5c747410f7f30ad17d748bf96554ad97afc129df5f1564751cb96586f296a218dcad6a38b1886e7905d4134b4ef2a787b8daf5867660ff0fae41dbdd245320eba0e014805efa09b925d0a6ab579ed9294fa7e7d575282e154b9b81e6d93a8a6429fb540655393a4db8a881d33e8abdb65019778703071fbba9e627d1081fcbcb1a1a32969f09257b5ed9dac589da4c8cb5f7fef93e50bf77043092e4799ac172a0749c26b1354f0c31ea3ef5f690eb256deb1b6a537b17f7d2c14b23432ece0d6b9ff96f16a44005a9b3a1a20c44daa33690f8979f5e32aafedd98ad69c5425f3ab4a761ef52beab386470ccbbe66013812136fb09ff20700f26c1c131de8a385343f5137b18c27323d109ec3c8deacc163684b247bd1662caad3000f6a88efa0361e95c57a0f03b6f60a7916b0a0a0603985f71706fb49a4e8dd355927661ea4096a5337fa365e94e0d4f4a35eb2e49a6a4cd0964c359fcf9ee6b646f454ef417ecf390c81f588ce1f522197cfc8b63660feaff30ca842a0ff5a1b492e85173a7e2e7e661977f15b8d6107f060cd1add887b65cf75c69ef7b8fad10140179bfd35ce9e198f025665b0ab8ea9514289b45a2b12d7f4988e04ae263107d676eba5294603bec57b0543d616cab6ce74d2978a48b6dad13ef2d54ccc82ff179ffcd5c2352f5e9430e4927450f416eb0d8363a5eb2a9462bf01c1ba697e4b0edcc9a91c4b06d4a0af68794374c4d85c9e99bf9e6fa34e0622fd70463649952db89ec69a4769a31aee8b3c3be3b9029e8756dad4a49524158fa1862df5e10cff544108bcbd7f138ed4f45e037c61605716bb6f0364a0471d3ed3088532141b3d71dbbc69d22ea1815496998d9ac9c154d4595a489eb86914d8fc5ffd6c2be03cf4a6c6b9ecb78db9b4745d181b5f10ef35b7040ba9c275635e7912e2793fbe63ccf512bdbb305334a73c2dd4ccf7ddb5492a563956b39779ab1a86d2e815a6433ac8b5087f9a4fed8fd34f5535ebd5c817791747af8c778ae7d3b7c62535b236ae666c07e8248bc4d631b8d957d60a74e5e4ea5fc55b35aabfc6a82f45a45b767fbacc572e12f99a59282c9f66a794e7b100376becdf71ab206c82817c9250688af8dd2651a6156f4e5194111669366ac0d8add23c4223316c7318055b0d18f5e89de6d2eceb712aba0b8580bd34f8a42b41ae4e6de7e75565eec95cffef465fc399e868cb5db1447d435d826970783f08d7823ba8e3c9992d99acaf200122132187bd00a154e0466e4ba05cf4f780233d17016147cfef24258a1139f5b041223b35cfc0bb14394919f3f1c34bd10aea658eacc84e295d15e97292a05ea1f9e254399fdd45a0525b859e723f62546e8d81f3fd86adcbaa796ae819bfe8b39ac4e703a4e38f1867975eeba042841a8bc85564924494d2911e7d1b9f9341216dc1950a86c12090e88e2e859a8fff2fef49f28615b5473e12574c845c973b3acb9dda8f6619a5ad0d354327176686949eb11eee1f75e60e223eccec9b488fc1662f5bacea3b42fa2ddf55253b7bfa0efea77129dbf82ac6ef7313c9bc53c7a7f22fa3bd7747cbf467ab2d711f4b7b636265b9975edc7b43c779bbde587244f41d3b1c3f4e2ccad95f8783c8dd58363ad5bd0c091c2ef673201fec71f88101714adb6a418b7063e13918c84d8b0b87d12ad24682b3d5e820fa25c5a36a4dc1cb9e62d1ebdd2cd3bf3d34529b57cb4ca5ba2e94d5aef319c8975c099fc55773364d62ca51e5fa38330f1e8d3c110046cf4fd30f9418ed0fd03531d0e8cc6681dccaa9702a3907c82497482bd6c2dae3646da78088f379828042b02082b0b16bc3405f9395ddda995dd55fe6662eac66c0dbcec86ad8a3ad41cdaf9a63ab7965b65814645bd73fce6e73647138b70469771a4b739419d4c0cf4466e2bdc6855ff159a928a8ebeae6e2261b6154010c773b7472f1390cbda018fea425213941c2cc38088ffc2add409791cb25788a59d594fa14828509b97beb5fe6b09e1e596aa6abbe5904b5bcd7d3ac584f2aea7c929db96339f6892aacbe2d2e104ff4f7d404e7fb57444e464d95f47f31f0944f87c374d7b1ed817154e7fd2169c3af1448f3eaaad074fb60f59f45eb307c2bf8406dec41b50586e7c5b190c639aed21c423d2d1c9d2f72311aadbc7b14efd7640ad61749b52ae6300555eb8ed66aae199acc87dc78c9f08985a2b1b873cfb94c6190a561bdf61c756fb59b6096755fe8b20dd06742c66bbb49b6cf4c7e667644f63937b2855bc4dae91edbadcbab1cf07836cb75a6ca370208f8d3c975fa20b1101e85bece5ccb0907bdbad7d269bb171bf82344f5a5aebee838d7cdf363e075f3b33f33382e03aabfc7118d6f15ead3a816209d3ea0276085173c32dbb3cd3ce1025c800166cbb75dfc386fcdac17350fc4c3de7681ab4854b24f7704537dfced30227da9a46929c79df33870115a75756b3aa384708cfe5d08b2848cb120ec537df24186cb4b9fc1d6203354e4e4034993cd26056ca242066ef9759965c40599bd0034a1d5811a658e146622be991795f7c05ae88858b218fb2e7f70387920e7669ec2d0d3e14a5082e52e526ebbbf8b37f7e45324bbb2f3e7ee1ab4758a96e347128766183494bf79af8dca7944014a9d9d3332b10002597843df86fe8e5c6f7ec0b6dbda14fef20027bbfa782ddd495b3e0c8aa46848735d0d1eefff9cf7d3d7bedd9ebca5e3a3195f1be405713bb3f56951867eab8a9cd7c33b095a139d2c46f681bf7379b2a4c9c76dc237b3dd39be1b5ef4ff8915c155c66fdc01854ce91655390dee14eb5763f8544af6bfcc813b0793c036efed7d4caccfc8dbb7b072ce1487bccb176e87927edd3d62073d06038b4e451c9aeca2d383aea58780b9e3f0164ac85960e16307d764c42c569fb721eea9ec76c1425ccb62f3fa4643a4911cd88c6962f08e6f17ad3efec79d8f78945ed0e74eee0f37292d50261756ee861e05374078b2b7c1e76ce8de785570332c3c07dbba8ad25fa0f9199b00bd7f75e4cc0ea331edf378b0bba51d3ea63b517cac1ea7b957f0f3a45f4afd339927f0537e9a87ec4fa2afffd37bdd04cd3ea5b1f85336238f4e32bae04a62fc10d5277cfd5a4058a5e7f2864d960fa2adaff986bf1b9c5ec019733169c3ed20faea60cfb9c6418b14733bf61075922103ebc83eb3d21186fba397e5bc52bacbbdfdfafa9c81245b5ec122011b7af3aa0c14ce30cbc06cf33af03e0b0148c7f97dece0eb02cb12ae13a3563c6d1c21a07f3488633e60a1ea2c40787a5ec01a0e810f54102060cbd2b2692e5a3b6b8e86a8296f15a2ac7222752acf05cff260f0a7fa79edaf0d5698a3c93660307fdebf6a2da2f94b39059bfb57e96632f53d229fa2ed3a432d6124b404c28f95e5489c17d1cb69d92162c677b03f33ca17d0273ced5b6cca3448d1fd6dd63d36eeaaa6d684ee60bfb1ae3f666a6d3aea7dea7e4bea4cecc36ccf8998324fe9142eb4b4f9207dc3c0bbba6fc2ef672d2e92bea1dc145d59a6aa882b092a1a49daf04c6dbf53b367d35b8953b4c6daef04fedd96050ed95cc136e552da1ceaa06caa06b40dd0af792290a2de49ee90da173a09714f41e4d6af7b294c63905e1734caa66a1990dcf2ba21a15986752fb038268aed1d29b124e04255ed4fee85f8c115188f7d7da4b894c4f53cae4ebbd26cbf3377dafa25d86c6e2bdd8d9adfe8065f0a9442c8145b83532224b522cf5d3c31107bc925184c68fb159daa06d531d0e83e4bb77eb23c0579cb565bf7db03d913c63cb5590bab849209e7405a716d40d8358e99e91bf845896874cbb70bff190f32bd1caaed03a230b8dcba8dcec7f39614c0ab5b11e1ff1d70e2cff8b3e2989f98d8608e3c08acb98f27fb3590b60b930b1af49a53c62b65ed13be8509e52c8fca11252518dbe8a1c4ec4a3b4e33b53c5dcd85dcf3c4d0a4adbdce7d558f755cccca9b3b74d11c8a338c39a0c16599ae443a02661fb6a128fe89aba3d109f95561796d191f1e820afff658a000b1900c914c926a5aa9326d57c8d7df94cb72ef5b1cd19a05f49da4ae898522edc6d0ba6740ab526fc1e8ee298dddd48114d918d52c1b06a24eedd8ca5174fa598d21de647dfeb3573af4e2a86c9a206d74935ea836255ef6e4cbd6647c1986d1594b0ea00b2a7f1f3b7bd9b3ab92e6e9791dfbd234c4b31a4dd51bdb74d564cea2da7739019416cf25a677ed3c005701db800a6b5d6cdff9b5ed12689674aa1c1a73194deb2d85fc05cd50fd5205bb171f0a85c0b4c43b436283061fe4d6051dd27b3ed139c6615c02ae28275e69aa0e1b5cc2da8c744f12b34f817071a537d31ae872cd3b77aafe5ccdf00b51995c80b2c28a22e393ae84bf57cae478de7fe78aafd95a022caf795ec90b33dd1ab224a717ca6d24d0cc2c9fc8aa87dfc0a8f7b5026ee3a5ed8607278e3868d9b6eda07dec3f6a8ca773daff7fabf29770d610d3d22507aeefad63323ee0078e7c170951aae3de94d5058afe7423359c89f5836ddd0683745bd8d8e5cb7b046ade014f913c4e9ebfe1c7bce4674f0fb257fe2daeab7ba6098247eb015a0b22c92384328d2a1f50778feb88f1fa3fed60f21cf586bcf25bffb870a5292a8b286f8829e46ac793c56a8a898a64ac19fbb5752d2f5df8ed330e8d54aaad46b034d335ac4d111dd32dc3bfdb1d86ff38ce69ecdf32bd7b3e5711772f03ecb783ad9c7a5c32da9f2236daa30e47d8a364f5d2274ef9c15851fe1e9c4b7690469316e4c348c45d2abf22d44f0ee37e9b3bfc694932a5def450e00796df2bd101547e22c7f8f70192b94eb1e13055222e66c72dfd65848753df32551390bcfaf39732687ad00780f3c798e02023afceba776fd6255d5e7e2050f5584476e0124f05609771d4491ce9472a9dfcbbedcd3c9a212aca66fd34726ef451621819d7cb527dabf81c52417259ec9ff478e99c98e65801a84bd79e15b6564a0798593770675a595d77bb54cf5bec1746027b2bb0dfb029eb4eea4c1c1e4b9ad9f6210e35b1df3b5c5c79d75522a2d1b226cdc4cdddd314d4a3e287851e561dd8e75ead054100cda02ab716340b40b21469bb9c09bc1f723378c2f91ceb23f89a317b7f9eeec593bf9eb461ac8c0fbf3621193b2382545234aac3e09527a4f91ba84e41ceb4950c47c84f154a97188109b47a6bef945311d9dc5ffd71c33f8f3d6276d74a633d1259f30c1213a32e552b283fdc4902f0afb62c25ed04d5d105d329ba9fa66e50aebef68bdd953983bb54aed0278ba8c81cea2c2cd0580c7a8a83b5860d2bbf96d21d74cde3f73e205a65ed888e968e4e1d52039b7389cad095eb8573e04fe572add6f525dfd5859f4afaeeb34daf9238fafa374a52ac5ffb142f503de3cbf98eb200f0c62567b2743146439c2208b8ad16521939c5345b8944c39230f45f0cea13b1b97d2c216318310561daa76839137b6b37f272ea54cd0c4c7729dc9bc9ea7d2e74fbf974f41f9402b768ba9345284534e29408248a7f499017c50ae89ff39554d56d41b140fc11dc7e505ccee89d500bd36ce090cc89ae03d8864114dd9ad295b51f55d2c38375864a7109b1294981a908b2280a2acfd15e6a12a0fc7eb4789e977dce23cc636661314eacbe1e0a26a3812836025c23adaed11693f3dc9def0adcf235baa6d39e788fb2d0b72d60a4b452c446c405ca66a08585e7f75cb62fa4a4f62648fc8d9498a7a194aceb0d3837f0150b004b5d8d8b8fc8c0da428f56c52f4bc4a6e9126113c4b4a905284d95d8d4e960947c3bd681aca8a9b590acd0c8a3119b79337b5ef1d635ab0ffac9e691ce665be3b95b2a17872401bd474f45dc04c83d4f918849565cc75174264fafa37c6877dafb263802661ac447fd44b182a615c677ef144afbacfea7d30439f3391d62052a265043503a486f0a93063375e8a937cc08b6485eefc813b177e52c63d69e1bc2b85f613b9a4cb91d121a0012793374dc4ab3e179b9cd92fe553c33df00bc98b24c7299bade13c29af8af93082823ffbe1ff06b9725defaa51bfb6c2b0e67931b492bd7b441a8cd0a42412cb561f26c9e8724452c4c92cd9037997a9cac245a45436a43c47a48ffce21ca807674157336ae38834b8488415c9b02a3db290f4e04a15e94902cc28ca8fe5915e3aaf8d893191263fd253387c53003e3322250a8e48d9122b7a4b9e1f8c485132dfdd14f2247ef22eba0ccc54f932652dbb4d3965b8910ffc2c6b616a33136ce958dbe672180d973a3105e64015e3458c3effe124442f39e8b013c1c19a3675d26e3517d4a2fda4db200a6182da5864173209e5819720b213924450713363e3820e09001d82e597d6d179b22b5006f1008e9765c4cd2b9823a4216929ca8969847e140a50e78e32e49d60eecc006292fe156a3982709413ef3c38e916f521b14ba50715e059325a71122b66fda4a6c54b44431759b34004bcd104760f3747be6aa1e776a3e126a18199c46150e00d44d0717cfeddcccb345ad9b39697577ff11227089db9f517ce9f3c99918681b370603474870dc0b18dc90b1fcd8fc970a727015acc75cbc06f70b05cdcd71762c4e54d02e540ca99fb12137c6e8155e3bd54993ea221ef16f5a3f026b1290b11de7bf7fb243c1282836e5f002671276015292522d9f94df38a87d0d23df81da13f8a05ea79c0fb5effcd8c57e9d8d8f784b8b20d63adf0292c6a8827672cc8bfe0ab50d5edeababa45dc5a34de6a0250663c0ec4bcfb4387ba6591a431ea67222c84bdab148a3b5698f1caeeaa16bb81ba0ece9e786ead99439450ef00b7e9131eeb524183c0043e30c17363fafa822ae4c5447849371083774f311825a4cacfcf3c0ade5b6fd0847a4d31356b43b201e6d5cf442394730ce8ef7babc448a89ac345ada3639030ef881e5373ba0a5c3f3a2b5e8026d93e27c28f8f6a1df81726432104c3a71a5fc9c47691e867e6b48a94047b8573742f9a1a50b589d955f88cb4435c5c7607a7acea67a225aa12b329851b4140eeabc04642a0a2357e247c14a533a602e0698600de401dc63f80a9f768b01cd592192e0e930566d4eb67d889a1241d6353d304198a3ae12f31c8098bc80f8d385000dd1eea205998a5c7f637e3cdef5aa423f3ac57e3522230281d2948af566519f6ca7a50a39959335150c9216fb4a4286cf3014440ac1281f8761e299c4eb8c63d7ea08406857ee8c394cfa894640f093811c0be7d5c7ea12b042eaff1bc9a82531253eb09d00265e21034bf1cee3c64c6b2db98a80d78dd5021e96d138bcea0bdf7d15c47069f614247ba84641808ca4a2444dd49011244630797a6459128298e82e0c064be9326915e44cae319b380216dfe6d2dacc6e9e47367b74740a3798454682518faf64050b1ab63e1491b715bbc9963b4c795116d1348d9c0008aa59a1947cdc9a072b678fade3ff663e093ac707f2120a26932f2accaa1ec2764dbb1636dc87bc59c919f01a2bae4a221ac1ef6d6a0bdd009d392f383495aaa5d48620d2cb38248ca0c2cc422df635af3908224fb9f1878b0854c34e4b2b2786d24874e3953c7d2df1cd45f8111eb746871285b432b4aef3bd3984487bc110d7c8528ea84f7b124284c202ad17ba5ca8317dbeb821c55b0f8aa0d673b0db42b022a24ba5fb346fc5de49ad66e0e43d4b4b33bffb2a50d7e4f6254dd99f221ea9548658916dc5214b203f5a51d29e59759b34e24a5557548945942ee0e90371d3d7941be8715ad7de1c85648d2f70435573e6008e3a1ee05d2711b9229150200a3fd374b9ea3e2948f13e57c24ccea1b81ec4abc650aad1c92118923edddae77a327ba687f91fe03fd072de85e6b0d1c89cd3f794dce0f60d77adee284bd5719565d69500afc75a7938455e3121e1a60f1c6bdaca315e13cebd15aa6dad8868f56bee008b4be96a4d6b72659ad3d4ede242c3b1ab16efd8dd87a9aebd682bdc2de6e1d3e1297aa6e3c9e560961400c32fc8832fa1ebdcd5a17fa9f5cbf1b81d06143052f7f580aa6ce19ce38c23e78cb2058f80c9435935e834c8fafdb0a2cc847e18c0a298e715fbe4d15d2f0e301f9dc7add2dd8b9dab2ad1f2126bedd5da72301d9c7735bd9a87315655df2e83c592ee38e9b7c4c9447df32e39e0fcd417c93773caf01b771bdcf527c6834903360e71f60a7b53c8b660b8e71f6e724837950620ba1aaa9d5e5a05c72255c0fe32ef04a37abbd5dc43cb440fff253d62cc8765c065307a72078abcad8648be2432eeea3b82ee3f5a16a9910e6a4a7596dc9915b1318b50042bd5fae4527e9fecf19e837f9a3f0053eae611be02f04b843af99572c974685168d155f15b0e3ae55eb9fe9158b95ab714e0ea915bd2f3643189b510bb455cb72c816b9104b2839e4eebfd22967d9e192e424bf57446d219fd1057e9c3e8509aa6e438ce20d1ccc2b0a7a000ab147238767ca2fa20cee3c893987228ae6a76f4a082c471cd82c05552fc5af655ee9c4ee4b418ae8de2048a8a4e963defdcb1bca78bcc84163b1d0a702dd9634adf44d564df6153aff172f5b103c8e0035145c71be007ab61858ead72be458be238220563e672eb57fe7e5865958f56b8f7360a745807e551aa96511c319a71ce2ec559afba56f6eeae03a90b2625f6912614db9a234de0b01758181ed045dd2e2edc9c615c549e1eeafe4ba1b58dc41d6d85f88ad53a8041cd920a51426d1819b3ff6f7b179325a83cb089b03f3fef58c7a5d0dfb8d905475cf7caae640c9cf811dc704d1a357c3710375705f191dd652dd84cf01d1852576af21d8766e66fbdaf548d1612d18b84b23f738bdb6d2e775194a7d1cab13f81c4ffcee7bbaaaba5297caa7738a4f47ead369666c4e1ae3a71344e73cb72bc1238d28def03f4c1787247f5a0b62cfadf49f5ebc805ad25526ec46ee39b14c20f20fd43fc35613355a95227acf6522573657101c6123893c034df5ca09e7f5706abf2a8d07c3c9a07f4d52c00815e94f0b86839a04fb973bf63e27f891dbba28fa85940a118448dfb83a2328b448deb65e80c8c23e9159f352e528457bc311a48d8679958a22ed76e57add54a13311f6e6640e3628b8e655ad5f773e7990d100e62655ced290949cd5c8b9df2ca91fc024b43989a612677197aa109e0eb2e11c86b7e10d88206742c39ce5ad5b1f4687e493eef280b2fa6c790306407608db23843d89ecb67803d5f3f2f5ec7fb0c91ba8449b790309d6ec8c73295560d44cdc3bfa365e2eaa71be768ff997c34cbb967c55e26b158d8b85f28a19c7935e40bedb2de7e075e507d0c2d6436316c5b5721adb03a1c68bf218141c94453940c3bf167e22bdb47a0671595049806072b2daffc646301202fb6141fbc694d8c665214b4b564b05de72b929265fab2f51d7f434f08209ab920dba5faf51bd2a2c2b117c28a0aa40516ad6696db65bb5d46a4c5660885ed276ee79b54a067fa8b8d5981d1547144a79dc0ec29375a17563e9a6da8f3a98ab56aaf422c6fbf4757ba2c43ae5521270fb43d1d0e4c010e7ce0de6f1c15880ec527acc8b6b502bae83ffb8a9c6ad361e36606e1eabf8ef8a42e76a304d8c0305e9c6e83e51881f1a4c0135bee5b111a6e00007bc5e561c5fe8eb79d28e1478e9d48ea68c10d569e361e1242d6ab8878169a4636ea13b9ed40819c3628174eda31468dbd471c74552cdb66a2235bf5adbf44ff3e46b1b7c5b8d35ebb3426212519d8fe3564771b972fb1aec77b07765c6bd7d8e07da24293fa456a4e91c01907b72523572eea1c6eab7cf30c6a0b4b83e88073d99306ae05b32b747345c36532c7f5baa878a65ebb20aedbb8666007144263601cefceb17252ec9af8a3f8097cddfccd374c8c1d3c30da0ceaec22e9842d3a8fa3c3da28e8cc23cad28c3523b6f224b6dd1b020af213f8b9eef149ff90faa6d8662a79991bf1ccc88df2446fb35357ec83768fdca50263382b42f46ef612e64558c32a576256b9b1b4a356288ec4bf89ecc87b8c1c3dd26790fd6e92cce696c8010f589e650b91447518a59b95324569d2d0f55d096151d091b57d8bc11d5b7507e7032d93e59b88ce5547be379dd26769977deff0895c92fca2f7b2bf8b410032482ea90aed3c7f45059e7623e02f08a3282abe6b6779fd832d7d1d88ba6ad449a54cf162a538e66f456717ffd48bd6b466e5077f0a5ec1e496a5b24bb83e2c14a9204d250b4bb4363623f992a29ba15c7fb145c25f978c300d196e228c22431df80166923b8984fbe4d8a4e97f13e05b5493e42534ed2521c659e24fdac40606d2ca8139e384e800a251f0c677337331c3e667c2594c4322be10e5a29fbd847fa06d0fbcf203dc4327fb1874809bdbe3bd556cc610c3e8a07aa0ad67e332da610bf880ffe41bca914efd31bc2d8748f8d7241037562df237983813ab1f4fabe9b7a693d3d2184d1f92d941774239addfbc949094727c5750eef086793c2ffaa49e92d79208c0ea52bc70e9d93f447e50688f180fb28fb43f17933b9e3a07b28fca1545f75f592b0fc9430887a32958c91c4b8c741aab5bbc29758b073bfa5d6bc3ca240bc58ef91bc51604eacef49de5860a26ec33d92bfb23af629edc16736a55de97403383a5016cb2cc21d1f7ad156f98a715895d0fb5e415fe70f01ceb87ea83a5cbb47b598427c119ff7256e2c705fac35009fd414e6f3d3d9cc7c2e8bd495e8458d9f5669e028e1618dcecd8ec1b8eae7d75bab0473001f5223d0287ad44866135089353ef080fb28fb43a95e71f5e218cf9530c22a1e58da2f6a4dc69420d47a5de16b0cecbcdf52695e8f48205e6c6fc538a929cee7d3d9ccfc5c16292bf14bfbdaaea7bc5246ae24478468b7e60040492ae9c321e724fca7b4ea8a5c2c8d6e02bf3beb54dc21c010194c95a1da62a0c504e297f1898ff845b53c3d9fcd4ca73369a4ee890a1c1ff1a46329c5c4d2fb6063b1d3263dc7d2a688d7fc6e1a13a2478fca6c02801817126b9469e94e49bfd196343e8889828966a0863b422de36107bfbdaa7939821b5157e9696958e0e7b7766180a650ca6f69a951c455aaebca0b97cccd1e655b05a186bfa8bd3c5ab203f8719e2aac267ef1563945610a83302b4a4b4bf2711f282813900fc61647bfad1ac043e52c17acd2f2632163a34170dabed607383ceb022b788ad022ba645535ba689ca6ea11995b446944af896093ff2f37112797a192e6613c4074dde509d1a392888e7018bf9d53086d44bfa824fae158897ee80f647766389970aeead6db64900498d4c93ed674ca8dbf429acd7d9ab2e83462ab6f76447de1a2eafbf9c73a82471723500464ca9f9c7d10288f1403cda757228660a06b41e6a160b3a94904dd3cc31e06d609b1ce417b91f9048bcfc39b6b8a9b16ab2e268459630032f38b958498fb4e348d150ae15825b02dc677a4c5710e5ef1c6c92bca899748f889de6d957734897af16ee33f986d1e8fb8907b22ea635ca7fbaae171055a8d478aa1bfc6fb73a73a41f2256021a432850758c5729c02049ad73e28ad6565c893f35583911116a8c0d4d55c84188cbc913aaa67654d88cdc2451f47e08bc130c21cc0074822d75280baf7307a4adc161838b27f9b496820edb6f661629c1c01b1aa2ecb209b56df5469a2a656d5cb3ac858f176cae6652c818e57aa3bce95d43df4c0b14d6f29b9ae69e8bb94ea48935bc6ec63995a245342ea7ed7d5d7b2e2619db03d622f638c0ba960d6e0640620477931d8997e4d848f2484771dc89478b849e7c8d7b7eb0f47f08a07a6addb5079a15a6f0ab851f73e3d66d74590a34ad4960ff1250a0c5dc653142f6edb8d8354c095c3c9caa9192baeec9582b7dcccd84dfdca42520f528f8f4c3c469f4734e6595dd95580131ed82346b94ae1b6456da9bd2f8a130051bfdb6232c847c0016f0b0edd626b5589658ace0a10b023e514479d256c7307b73ee0750f23c8f24a5d45e31dee9242b15e211c693ed3e5deffc8219ab007dc062dc9fa2fcf193b326b884991e476f25ac292d02b1c936a5d0f029e283192d2feec251cdf427eae5495c0017ba1c6b53ecd730b7a48a74e3c1a8e5629ecff18fd79f355018530a8016a01c2fe95b0c1a2378a994b948a0ad2af31a169fa8f3d07105f17e009651f2e2efc0712dc1011fab5a756439836c55b5c3e752dad6375a45b7c89e5c15c748491a117dc54f2e38e474c1bf5fab93d5baac3607bc698e9253ece78d6062580437b56fdd6fc6cbf19e75ecf6651a7011a29544aa283257743f4f3aa10c0acb7155455a370439be3f4480d0521d152636c910e2beb9512266f67611266f408755b91cb1c2292fdd30937eebb6849fd20adb5ab19a56b64d123db0c204429059a898d7e607c18302e842093163524d1b86677ba256fa89feb0a6f5f6bee15d6389611d512337debf26460b7669372e2b7eaabb1d4220eb5f3e12c402836f36ed52f51737048c59a005717ba16caba573620d0732c5c68e437972ee2ed3e2fd142b171d81a2528c06c4cfc180990a0de30e15b4a903abc2353591d85c47e9a1db7d09593865e44d9b72dde8b1f4fd5922e0847cac3dd9d70f77ea1f3e4da8e69ad7f04140b4b6c84a85ac716a7e50959e04917f5fba6590e3dad8366cb40565193a0f2a545e02c2dc27eb51abb9e6212feb9cae31389e78009988d995a7dce6a440e5f314d84c41ced9463324463ffbe4d400a93984b7582a68f115b1cafb00324bbfc1cc4ae509c90ff1e6da10c4ec72b25cc2d9531f70936fdd7f641b8a7a667ca0b0129deab856d177edd3b478e907062c71c8497ae8897266d868c07e1a51102ddc4c18cf8b0dd55b72afab5ce1b27ba3b6667faba3cd392b2e337217fabef61386d6916fe89f93f647f0e05fd676822fa2b100dd4e1d7c29a3ca3a62bd784cd7591ec03c8cd9f7c71cf9349ca97cf2ea329891374c8f591ae26692564f403a50f20363cc17cccfce9e3d89196b4cd5fdc7b149da6c3977da8ca79cf01a67f8fa2e576792f1a2a6f67ed1c0ff7c5f8fe296c9bbe58d5d410b786d070bee67bbc562a4d0f089e54fb558af24f7837674028feef51f9e56b7780a104a37909a1710dc0f958dd820fddf50bc1d1a10c60ea3cdc95102b6c6f9b03cb0f90caaeb90ed27ec5ae1fc18db5bf6544432ccf581b8df35ff7508e262148bc3904b676a580989f56327f801f2d26d8acb5420d859df4e2d751f54f38aa8afe5b2c406430026962572fc37e7ffb0b43668b78fd581c1804d3f0d21080a2ee6fff88ab2f3a789f83f17d8255aac4deb56191ba9af475ebb37e8eaac675272a4a1e831d4c3e524fd41481b43087087e887d442655e5b13aba8c31b1800ff8b0f620db41bc37fa0fcd14989d985b768f5d280efeafa0adb9d3184790f98dacfa8e137b7f21f25494c825e05794eaeec4eb2fda0a43d6f15a6a51d4dd89d65fb05586a8c36da9a2acb313adbf5a9d25be4c463fe24005c2c3ab9aa9a4505b1562940ca740f485a4e54228781f69f659a6426c2924467fcb34b37d70598893c8e08b42f83adf5bdbcd5329e7c3b0662096b789ad12d67e68a60cfd418116b8476650a1d459c4f95de13e327b37adf067ea549bdff1dc8856d73315867764b04d223dccfb3c6c2349a77aad176b287f5c7de8b4a903fa60e3eedb64eb4b8cf1e7f61d30dbd0e7e4e1ee53ac00c27109fac9afd36b2901ac61c61a9870dd20d3bdc1a5de0670d86d3a4d0994f934fecba7d9c184444242c8997ebfb5bf3728525f4797b656bdfa42c3b4f64da95b2925b78fd29564e6e6d98bc142bcda6e9acdb42d87afc22eb2e625c30aada1163487ee3b698aec2986d1cc74c7aba6e3b9f5ffc05c1520be40f8855d77e1d889828b871861e360d2d7f5b11524830b85e99502c758195f19f42d74ed5ae6a5cc2585af3031a8bf35c9e6b8d136be42c5a036ac678a41e9bf35727b0a32a4858fa549c80bbb42c3e08030e9d239a29dc8b27a6019db32c64318eb6d50d319d9667f8a5bab3e679a9b9fcbe013c3ec867ae35d8c122663e4e87927127b189bb8a94cf5150fdac54d9fbac01f305ed7cc43bfa610fc6fed78d0c67f820a2e5ec4261607933e40896a2dd32868925503aa25c45af1c6507a66396de23460e78819a5c5a68acca196853205fba5c1e8d24ce832b851606fc510526e4c6ab109c6eddc1073ddf599427cd8b5b9459c996ff806de3fc6d6172460ee01b2c91856c5e076b7b00daa45db1b902587cf9330a4d3209171ad9c7727d8ef99694af61483916438c3b5261d0059ee9e44a0239d44d7809f126a9831fa3acabcc25dbd65987d4952c6c936eb1e453ea65b17fbc6785834ca459a502672877b7f90fa17ab9e151aab4e46a73b6d43937223accf32f5b586c18d666f19838aa4da0e9bb4df7d135866668f05228efa45605e0ce44efc39862c0bf958b1633687f75089b5508941bd10310db7c43bdf657968522eb9eca6e5f6fe0ee206c36e8f1c925e322ba5cb9bac74861391ab91d5e4df0f37b6213ae19d2a14af9f46b6fd3d24cd3e14535db35799bee0297d1259a9ddfc54f5e4799d64b4bc88079f4a594aadf74ad507374b32380dff106c8adeffa3e935ffe19ba567403ea3256662be2077071a13c77dd486a58ea11af6777e567cc1df2a2e60de05012e9a19f44cd0b76d06f3cf79fecd0d6b3207e2deb6c623e2adf154371f13fdc561590b08558832c95753ad9e59b9bc2711d8cc24f85cdf467656a8e82af3fbef323c4f959c67670f867d6eddd60190a5f7e5bb12314a2497fc5acecac8b7257eb7ecbeedfb67618385cda6a09fadfa8eb33dcf88bc724aa311cd79fbacafedc90a48186262f05504db556cfa726cde5c4ec5c02b8bf3068236e3266513d15a947678292fe715d74ee56c401b166d5536f5d7693221fd77b3bc7675c4437f187481fa8f07e782169d5881fef7da70b20a7790bcd9a09427623977625638a8de65f28676aa617b3c387f7a88238e41e17f379857f2c775aaf7b78523a5f75785be04d6a60fddf36e907f7934fe5fbcf23f7226a063ed144da1d18882b041fc052ec014ce650f2c2fad57f741a8d3d0082522bc8e7b7ef0c2a4112fa69308db53fe223c4325a32199dd3f563a59014c8fa23a6622aadba61485e8a3c58dba39d319a5e00e16be5efe1b1968252ba57f27ba219496fb6cda7966da88c31e0e645079f6c6029d74c51ed9a8c4c9dd6ec8ce39b77ab45b7f4439811d57ee4504788778cf1ebc38eec1ae9cd90669d15f5ff59d2b3fa9a9c4ad70421f950d2a5388095723737733146ec0c1afdc139ab36f8f3c9d09ca55bb95146524622bc2c840ce8d10037e093cd20e65dd6041a88eed4d49c7a505ff23d1596edfb50072f120d507e33f7a3632e45f2a6bdd1dac9a8ad43cdbf0c995c665a0e148dc8506327088a6ae7943862c337893e939296bac38c43836842277b11e8c11885c41c3035d4e8628c8d1d91b651af2865b29e4aabd0366064d2a86792a16b49a284d2a26823c86c30b3613c8391ae07d15d8f56f7eafcd430dd280b1c0a53eae51102d2b216c41c6191cce1229905e38c62fff714d841675fb1c1ad185b8696b5754c486cf1ee61b2b439593145e1ece03d10b6ae6d9229f66345eb6deb88b655a60dd1da8c69d3bf5a170c8813331614832649e65dc57b28f9d4a4cea3f1a2e09e468816b6abba66b842b2f69ca73d9b7e5d9986af12a5b5562f34f15f98ef5e2d706fbfbbe947eff53f87c1aa88f550b5ba94837ac487cc3229749535facf3a6e0529a2f2f7dcabdd0f7d7d68fd86c07993ffc5638fd8bbb396c61ee6f01cf5da24dc8975b70aced81da6e02305c6201b2c570c54a1206553c7fdb2c209b56c87ded65f53929e38ad4a1b8a8a46e0c2afcf7e9932c6300f453b82f58c53d50d87d9c5c7dddcb98251282f0dc08b27880d886e6dfbd26d60295a05e623c06057247d9c7c2050eff60416db8cd599e65fd2ed1312904a2fb22d493350ac68b4bd8fb3432276b58499217be25f99c50f5fdf0014d87236caa4b2f10794960dfbe4f7875b49b96dbd47b3d8eeddd603a9012c6dc325c2b32497346383d46fbab0db3be79084664ec8c5fd9a96d90d4a3b544f8c239415e737380796e561ede23ebd0b3ecbe4f83d23025e9255ad80ed905d3bdc0748e57e6228ae822c9afa7d280b6688474c36f4d00be98f7bdb6104c8e60309d9863ebe521a6469a4f4d305d938ad71b9995d55c4344ab047ae827c156209c59a5034d38b21d9e4879183f4703cb71aaced55f0ea86852c569589a983e76de5c05ae071411fc581b8151810020ea80cb4f9c2f30ddfb9269998391fb8f9029b06c2bdc803615dfdf24217b6f42f69652ca9452ec0b890b4c0c56ba4b2155e9d6eea4905255e27594424a25f560199963585bc14fe4d4920dd90df4259b9ed1c8ccb29b274a2dc678038d3c79218aad24bd11f4a352ce39b108b3ccb8ab60543033345e171667dc55302a9819ca1c7d68bace677c8697969b17a234d660da88fe028dae45ae1f656e23628c6d448c31d296e8b2f1bc9012060c09e3459cd327f7c1c03873df75e4437f524bb0458386d0128da804a1873092883e09f483417d604b4648bb0b77c109e1c29ba33d3bd07713d2ee8213220726443bed59576c45403f1a441046d6ccdb82fa32f0718706517b3da9a51687918484ff388987cedcc21798174f2db51713fda341a34a7b1f8ca4870e6910b5277f8b824af05a120d25e834966860814e638b6eb948a23145e9a1d33882adb8037dca0823a93d2bedd928b5b75d596a0f4b7b353c741859606cd15e0d3af0a5c22c156e0123890651aa49522a2825f430fa0c09a5aca490dacbb81d164c910a82addda972e2be541413f7a5801e3a562312e8478348a9535252477f80dd894feaee6cd2da0c893f1cd65e8c5f1701fd2e25a5f632c95246b902201391d1cc7f97522492c1d20aa2d8f9aec8348ce20f527b5f049af98f0691ece20f6c01c12cd0e18a7627337d896a30f4d16526c743fff44be9bad2de16b1e0e7a1634f5ef840bfb0b4b7452a107a488388c9c36b09fb79c84b54aca007ff61400f4f3e34d822163cf90f83022fa59da1a1ba13c594ba13c55177fb3488681cd190d25ecd43a76184e33f1a531efe4783cac39d2128e052e7b07503681b827be26c85215b9aaf868f14e8f59ec1dfb5b97ca1b3842e6bdc8de7450a19267ac59ec123fa6547cf47d12746ee88be0cf1c8fc74c7bec382291a89243320f732b4361c59ca4021238484e8b33bfad95f82da23625b2f4370c5fec2c44b9417277eb02bf60f7bf94126c3c3c3870ea3b1600b4616aef0d981ce575dc80bfba4dd404f534a79f229fdc45836ae7772e8d87a2687aead27bd75396402b1f48a1d2ec12954668af684a09019a2d93c992a84578c1ad42636e1e570e92f5e1b1a434d5885b3ca30d15d2a4acc07ab4c50772c13f43ce7758492118a3e7c297d900c13b14e30d0ebe8bfe873da361e663efaf480b2cb3c69ef7b9142e6e74507db824bf045a6c9b30cd0f391ebe8937102c3b02b667f9142420ac3103d0097602bfaecaa03db8abd8a20d8dd21f3d0b3ebe833de86725e11339d36146f28c8eddaf0d27714f465e8886f8f3e3e5b7c198a3e6bd31e87e82723f4dd3242b1c64b1239f8f9f95982620bb4b3d05930921cbbbbbb7178e8a851edf08eacbbab87ec7bc48d822cc6a2b2e84b7035ae4d03e8161d09fda7adb6929399428790ad0128f40fdba21858f918638cd1972642c0e83fcc8901e8164141e83fec8b3260f2d0b16e8c2540f41d9390016b1013f90830d9756d3c2fa042b4873991ee80a8827ebb84c49f08dc2524ed61ee268facddc18f325d11e6b7480923f4125f92fa4c8eb9d72f7aa8af7f497739997fa7d3d2e599a39cb53b2eee5a723992eefaba5cc992f6ae2597a33cbbea1254458204b67827fafc40d21ecadb952c696f1fc5e5a0d7a5f9a98528f5c3e5323d608e72146744663ffa7e63573b916d347f50d2831f49cb205eacee5a47778dd35d7b0c0eb49d7ddafbf60849bb926626dfbe80f67a8984b4b7fa76960e255b7c23692aa80f1faec811e9aedb757668cf1f7b24be3dc0e2bff88be574077e7da9c316925db5b320b74bdfac47319522bb816ec718b6bbbb2d97837a051cfb2074083dc69ce99fdc5fe8132a59b8bc32c2e616835a644c613ed50ccdc7adaa66aa2f33333333b30fde493a8957b2f5807d735f1198eda09b2add6ebb8ddbc1c89099bdd99999378e44cd7d3cbedd442184ce70b77b45551f23c7b831cab5f954df3054c3e2c6085732332f33f3aef73233af942c659432420eeb0e639392c94dcee3b1e81f005efc5bc1f857df857f319e39a6509be6e2170c86bd50ce79fcf4cca5f27b731fe627df7a4cd7695a5315436d5a85e9aee7338f1b4f264d7eaa5f8ce7f1d2759a023cb0dd08b9863da821b8a7637cc283070f19f6b5f2d19726a359f7ee96caef1a0d595fc00a69cf875de78d3cba5b9cee7659edadafeb68cf7f9dc296ef6a7d5500b457dce03fdfd642b6341f1f3d7bb6b1253a6cf113e8514aa11f3fa9827efc2463eea0f6bee8fc84a170100775c7de0b51973f811cd4defe74b90411bc753831b94acfbe321f5b40a5f7e9b708ca0b8ab4c7cf4ea4bd8b93e1013ee698f773c6cb8e55f8d90dd489ee9885baeb983ef39467266287e1295188dafb78484a7bab67e7284ef46750c378bbab392e44edda5c3c278ea174c7bfdbc5f193ee9887da63e729daf39f51380aff3ce49e2841036e01f51fd8e2284b608b9fec8a9d370b940efcc7519ebd5740e76fd11550fee3279cf1c908e99c7535ac3582383e7cd8a1bdafc3e1d1d5746b77bcbd4ffafadc7e488f1c8dfbd27407a5841e69fc6968e051e65cd7bbf656b8487ebdb72a899867d8a5237adcddd91febbf23daf41a65d679e859e9753a5b2e8a0837b6b713422bd9d2ecba5475075da5a3d3d1d5a866bab53bbb1df4a306b292e3976807426f126a2f08f620946031ae847ec4627c1b5c6046ddc1294d24e586d33997faac45a267d3694d12638c5c92c935c7f8dd80e2a17ffc3dc543a129f0e889a49c601e7b8e3737aed3ed83dd7e8b5200069f953b2e2d15cf0ea53c7bc492f3393c7363a0ed37ea9cdd5fcf6ca7de75cab443270fa53cf558597c335dfec8c137d3f7757a4e9e1b4e9d3929d41d1b15d14f0ac92196526e77ed4c9d52cfba727733bbac2cbe89cd39f8a62995e1b8cf35740a27bffa25e281d243273d1f3bdf2de6e09b9e1eeb0def2a69fda217fbb9bd65e79d6750a3f58b2f87baeba49472480e5529d41decbace85da6b28dae3a12c6e3ef4fc119aef7c86db0845e9ce891aa7dcc7e3a9778c5d51afd8eaa903e0556b438554aaaef3d56ad5e1c0d175ae0357d506ef680d35b84d0d3fa0d46da8a1a686531cd08d4bb1381b2ee6b748892b32a8edd603e535ded51aac86c92aa09f4968b5720601fdb0efdce4385a80600d1cc7c92ac3721bbc06cf3e25f2e51443b589e86712dac170541c6e53bf9eb771de786c3c83da456fa0c11163f49ef7286fc8daf3ac44e2701cae036d2a0dc7516df8ac3c365a8066784dfd60be73564dc2cf6e4395e921f31a3cf31abc7f403b8fdd75ae03bb7aa2513fd3c97be3b9f1cd092841362a8e1a87ce36be9cdd405b805a9cb43c69016a0182595a9cb40f36aec15183f7a83ec3331cb55b7af474f06fa7e4e0df1e6d1178ac94a522c73f1d3e871c1cfc6b3d7f1e73f16beac75fe3d706247bc6b61e315e83c359dd0e9db487c3db4f1b4fb38b1ae32f6a7418150757d51c8f5179b80f5507ffa1e610abc4a468c5f4c48e006ccb9d43fdc175a83e388f1ac373aaca71a8303cd6171e535db8e71d9fac7c3720379cbdc7d7b17fc67bd5ddcdc999996e8e4a34492c9ef176ee87e9332bd3c6c3dc8dbaba2263c9a315cda3521cc3da5c59e21cf913c7d0577ee969f02cbbe12cce991c079ffcf7c3a5b3eb740eceb9e19225036486fbba7f42272f5b80288bc5dd902c7696ef36d312a5bd1d1c7a8b13edf138f41616aca7c3a1b728c15e8b436f21c17a322d23f0e150864b1597afffc5775f7c77c7d70f63856fa0c3fce06ef80ddf6d86eb41fa9461f9caa34b26515e47003fda99c539ec928b2cbf1e7ce51f74f2f1c7b8e48c489fc9c137d1a59301ece0485fdd7002f4c029e9bfe13fe40d1c3c6e40b46f5f02709f8e5f79eb07f7c55f49c7c1a3c7e82e369ec8e59055eecf6755fe39a7ac73b27e643fc3e5e09b15c731896fa212df40e7b0b036d07df8b0f8e686eb409dee51a3f3503de7a939f80e5507d75179784bcd71998a83c7c4d4d5e958857322161a5c06f7754ce29c98856fa05be19cb88566050bbb4372606d943847fa60e11cc9e49d062c0f3d6ec139b209dfc42c9c237f04b0c543971cd81d72046be3c33912886fa0eb386779d83b02b0b556ab981e80efd8f100e0f82683b581de5af95c750cd7c3e472f04dfbca75ba39191d7ec3a34b279c13a70c40063b389209b36cc2392d4023802e8178873f9300b8cecf6f2e80260f3d07e74cbf21bf71fcd3f1b175a8aa1c78d496edd873ea693b761c2adc8edd088bc36188735cece0be4605e0da1bf667dfb8af9fa7e3702daf6e77319e83737a3a0ed137ec4597acc9ebba1c73e9d9bcae1963ac49909c1c6e3f9c4e3fa29f78a04b4511462f81440f423e12c915d98d9d74d7279f279f6e04154618bdd4f6070d5fa4bbc63c3332fde45aec0ecddb33edda7e4c3ff9c749529f99b61fa69f4cd9a995ae98aa745277b005f4eb25252ced2d71cefe8fe8adc5ee4892fac632dd08731ff79269fb21fa0c720203fccc3113cd7123eaebf9205aa4bde9ddb94749a4bb1957c908fa6491452e66a13d04f7707797d06bd88cd7fcf63a0c4cec5667e9553b46a90a96e0db3f1a1ebacde620d99beec2b77f370f7da5f64bdf5b742b739a99afb39c3a4bc6359593c9cab7cf5e7d7de5dbafc6f2ad115be92cf247fa481fc98408f4bb808ca4cfb75f417d057dfb0524bdbfdd076c5ddca79ad80e8ccfebf425f45b6388d8337b3e21db9ae9597b3f81f69123ddcde93b5dab524ad98325731cc50a2a69ba6b24ca0e91b043ae484572a4bb8944baac48ba9b7ed5223dbfd949eb5396695a912348dadbdf3826f140d27154634433a77f304bf41d6c1581abe918f5eec3f9afe328ec4477d38b401c9c13f7b1585de74e957e7a3b817eaa9faa19a7694fe38d775b2847618f32af29af753789a6489aa72bb0a58f7261643d36c68e1d320d5e3d5b1b280d315e9963780dd1716c57fd53d17f3982abe82fbe5b0f780479896fa2c378e53e1575eea3321c106c492198e8bcc439311e39ee53552934c3fd9ae13cc3e70c9799318397766f66f80514e36ba159cf9dbdabe16d5d407015d95f361eaf130c5486cf8091214386c3c858da1dfbd13988caf01929193ec3bf0b88860d97aeaa9fcad9b39818671b598b0d1b36fcc60b1b364e366eb8c4c4d018ee9be1b286b7c8909142c9f430c36b788d199894f6388f8e19b5573d3a36c5058d19329ca8bbe8372a94d25d741b151a75176d547e1975468d2eb556e760d4ea43cf57df8d87631a2c1d03f1d993a49e3954ca751ac63de682d21e0d8f7e05b537c3a35f4cb427c3a3672e367cb71e366a7856c3db5134d06c95abc1c9f460c3ab571bdc8b86d56032270dafe1996ae3a95143db7ce8f919329c999341532b0dde5cf524a9afd5dd511b10e834d048df3620315e390cf073dcc72ee33a9079647c8d1e323823d2536e44c695f0c7b84ed7a8fb198cb6ec5c8543154ed15d7c51194be52cbc45fbd0a8cda47f64d46ec24154c663b4547997e830eac70fc337293cf50f1e5d406b133da65e49ac4d7478062ac341a4eea2c7a0d25df4cc45a31b5f401093e13eac0352c5e0e0d1c216adbb9367fec1a30b05ec4fe206043a035d4eae27bb637b80aec200bfca75a0aaeec3f817f57317f5d360eaa77aa9415c2ef5eb961a447c5a83e8ff2ea08f9eaa4ad8e4d351dc876ddc47b56e6beccec4612ad5ca89cd1822f6348451946d573682424cc5391a0de847658d7169a00978e959724d779c9a471e83d13ee558dd8d0709ca3f1c338982b20f93dda6779dd8c4362ddb6a938871dc598c312e9c291e4aba63ccbb6258479f28d7e986289467b389dca6a32684ce4cdad3aec8db278e7da8877a08ae4e9ef22c5591e88066aeb991ccfbe4df2e29e98efd34f4f1d033a4e2e2fce2ec9cc45658e90a43c13886d25d507b5af7c6b3411490cc99090eea8fa178de6feca5a2dc65bbbce572acfbfaf98bfb8e3876b53631c9db8f8be39fee7c9874473995cabdeb582c25ed510006497b29675fb2dde223b8624ff96e3ca9ab09ea1795f9d18e39061d7a73323ffa53fe0df1d1f77b5e6e3c7c9403faf15ef16126edb17393f632d79c81d8c97f0ce5850c692f955d3df0c6836558e657c56493c77cc35a0261327212eb06fa26fa4ceac0d921e09b20ed49ed080e8ff6bab53bd2e4ec4030d273956737355003bd5f550762df91c58a008d977bbbaa3b9ec1407ccc9de3ff7a624d7c55cf609d65ab61dd7d31623e1b68ce0fbb26e69777c5fcaadd846f1ac3b80e01df3417659889177d98b24328e887edced26f8d14a4e1888c999959b294bd35cca6642921171b5298a18f1b7bec58ddf0070c9dd923735d044c09bbdaff52bf4515bbdabfb80f9b3ba0307ebf25f0103e8c6ec201748bca80e52ff79726c9dcddddddeef3da1dba93be03136874e84184b4b7444cc0f2d287c0160d647bcb377753a1df26119135e849a1d432530fffcb296ced8ec67d58c67d34760b73291bf3df5c7e54db4c5262f425852be9df4ba01f355d30dd4917a2043a840bd249a02d2f236450db76c822d85dbab20914b2942c36126823d11ed1142f3df6a7cb65c9cc2b99a3cca09432c628f9591c5c01ffd1dc68ba2e533c395cc5ed4efa894342807d9d3e6d1e6374194d3146e7c83531b923a617715d73fa5504e645cccb8b98ae791198c98bd038155c71a73561d764f5c02294171532ffe830b286c8308ceeaeef73cd47e949380cc478ccbf75c96b9a2e7d9a4c26d334714930bf38ef4e5241a34fff58917be6964b72f9c726973c97b34b13c75c128c6b02fae5aef56abd3b18eca3b16244318b6c69be6d231a44c802daeb791953be017808808734948685383cf4e53efaf178184f29475df3d3e74928a5d42dd0f394b3c0c97df3ad5ffcd63588f2263047ed7216d8b6fb342ec9724d48ee08e945cc29a5cfcb8b90d38b909e79111747e12a3ae645649ccac461dc856193935ce4a2cbd8d3720a45cf16bb8840bf751f3abe437bd021c6c5e8ed52b029cffed1168f5db1efcc64e59962a0d059ce103af43d8223c83a08343acde0357f5e57162f87575f575f17b770f29452cebf2a4b72ee71071f7419f7e27677777777b70ad063dc6cc6685a6d0ec61f8edf9a4dc6efe59de698ef7a29ff60fcbe7841c37a598e36633d94afcb6c0ee528c45f9c11cd2f00fc0ddf4e311adbb5a36c7c7b66a343abe16bbcd81d33d666866fda615e6a0fa9e6b0f6685cfb073dd3b6fa1adc78807ed2c0ab98db0e73b8fde08c44139c1242e9d8c623e5e4201769523c99c8b6864eb971e1eece5d4e721ff6a97e9d8b90653c99cae3f04b0513501e734d8b928b3e3720d3650ece397974250d399a18e3c9cc28094d3386644efe70392a6a2ccec11cf2f8eb939f8ecb772f2edb80643fb91c5b0f93cfe99b033ab92acfe4a8cfa69d3ccb5cd6e8316aca5705c35f60cbe29c0bca199f315c623e51a8188c9a1b4a439d50280ee5a84d3bcd702c65b81e58621e89ccb88b2f7c71f1c30f7609647250ca78845b8f8972d3068488cfe03e958c249fe13eec73c8f04f0737e35b0f7623d365fcda8068cf73d32627833b796a26b20c8410c3aeeb42cdadc77493bbca690b8c5f95c537d26365d7813115c6a829095baee23eacc561701ffd7ec17d2a1d0e665d38caa17cfaeea665dc75692d73a397a3fc53d2580f284e93d15cb571449cc44e4e2186f22ff6c0dcc889db9c3720da63ce3ef044b9140adbe0665ae5bf2094ff50ab2b77db330e3a63ec13fb823e3113d783a469190c030bd9d6409887f174e2647e9c5c7a8f13d7f358fde2c78f39d4e99ec794f443d7813c70bd8d7ac6d9bccd9a39a093269ad79cf28a17fbe408f91be2796de2152f6e7d72230142c82c70e219ebd6c2c87d47601ec3b893cbbaadc9d6b8efc84b8f1b0f98679ef50624fa6e3f26ccb87559bfeed74f0b5b266f8871d742c9450a53c05d2f6cb7f62ed6bbcb7337c9fae6d667b60b355eeec8cb49f6dd80ec10dc7335dc010c0c0c0da6b560bad5d8c57d1885d978aeab5eaea3bd7d4c076d6fb7130f1dddf1c293b377acf6a64b29fdbaaeabcacb3923996b2ee3835f3abfe46408d0f397f7fc6544e33aef8e9b50124d7e399fb0bf2a0f7d3d17ac1feb4fdc77447b2c064f4e7e55291df34b5e13ab0c05df5c7e9297639cd6dd0c37e3974be9d952e89315d7b5d6c1c4adc7ee2e8e39aeeb8e610deb825817b2a5f96eec5a51b272e58238485159aef9494d491d3d4119832d17eebb0355402eaa4c7417be3b596402fd6850a134886010292ab122e07217dc06da2fe7faa5525184904140bbca55dc065c78fbeeb818e2824b4581591a66f1694fc50eb3b4f7e2e2d03da5e4225348a92add25fdb4c74e83284583a85b34887a053d955aa25ce94f10f5490505c1968c101742b8e05241b0674709b63675e5a5a6020fd89c206b855f6fc07a2f7c9d019b23846fda15b01e0c5f4fc02259f1bb4b5800dff432606d9aae107e9d67737474d89c1df8a6bdb5393ef8a63d0005c8e103ebd77fbd165fdfb19e8bef0d5dcd77e363bcf0a0ed9f4b0eabae97e5e8584ff375189b83135381e8551389319cf322ed55eee32ff2cdbc74986d2181ab760cd0c7fc832fa5f3e6602e3dae57c3a563bbad1897b516e9ae590a5afddba41ed5751a09cdc7cf79967535fe35a34b1bd323176dc4e9fb36bc65da98a9e9d7f663c2559d6ec3864b1b97bc84e8ae1ff14d1b1b55c375da460d3eebcaaf1aff46ddaf816d978cf2aa107b6931c1d0cd643299dc466de2076727c661b61f2618979376dab0d4e9743ac54bfa69fb113dbad878e67cd97ce8f911b919a952fd88df440cc74442d81d97070102a15fcaeeb8bc9d89ae996d3c9189606b77ba32a141ecbc460d22099fe16db812ec6f00c115d0b767b5091abca3c1676de247b513e3372a06b0b7c141b004dbe2172c0bc1176c8b73b042b0c54a3007db622dac126c75935e69e1eb26366aaf60bb761a6a37d1a4bda1b487797b07752bc69b86cfd0f00ffe8c6f7c19dd6486ef077f86c754c62a4b29837cf776cee22e73a1369e8962d911a216354d281a9f5f83a606dc782eaeee57a28fa3f0ed33ead751be5d46fd66ead723f87699181810ed518086489118b737e9a7183f6d313128401383a361300451c178e142c810062c800ad249e7c5a585a676f051001fa84831aa355d77ed2c2b1e0adfce42d0f808cc846f3f55d1f1b11270b8083aec0e0e82f3e01c96c237ed548cf0ed385246871532510bfdd650c91a51645f862b8dc3fed27c100cf46ba1f62e8750c02129edad771bf594264ae29ff63e5f6aef639fa7f2edcca4bd24b682859b6ceb47d8e84d5b87187ae8f563a3b7d2a37fd786c9337739ac47d8e8b375acbbde24e7249f9662f4ed0bc8965983d1613d42c3351196af8fbe89daa85b4a7ba155332df7d975ec4ab6ed7537f769df9ec420f6f07a23307ed2fb88b6717723dce852eec29d2bc3037f8d0eb8ddf6ee569aeee4f6765cef0e6641d7b9af206401c56f51164cbc8edf222b4b9fb5c6557e7cf8fdd99ca84897662b903131c277a24bf7d138b4c71aa471686f2d286cfd148ee06a9168924ac997ba296461f9c0d527fdc0d5fe51d07fd823b5fbf8f9761fda8bdf4740df8df33b4350706b1042395149f80cdf4b547e96f5949d288edadb22259fdfdf191a6a4f06fad050378c22cb6ea01896a5da05740ab39278c4632b8fac212f8c6bc3ad7d3b54a269b4c8b34a93d7941162cdd86226d4d7f3dca85d2bbf2e95325316f4970a25984085124880bf5428310536475411596b81b2af769918a90a159389c2682c1d35271310bb36d2a4e34ab635598c7ecd0823fc758cbb62fcfadcd5baf4862da5e4608c305e41f47337cf397dc619218c10eebc164e6e5d5e975c08a7dc7558674378c9d074d7edb09579c38c73d8a62dd0e841ba5bd6472fc2e6ce8912c208619c52ce29a544a2b0e717a317e1d53997c7eb82179c10c229328b1e84107e47b48f1ee79cf39a978c1e43e90e23cb295931ca18655ca29925969288c0162b8816625c9185c3d281d3852974ba2025898d4811204a004407812d1347c4081a44ba63161124304135a18e0fa21d7c3ce1ca13b0c80ec820916893a4b47490214742862c216df1a8892061063126ebf820dac187164270b5314e2c8810218104aa8819bdcfd15581e88e8b10012288109d2844458020d21de4928aaec0c27f7bb48435f5c117ae2d90a6c0d2329f405484267d88929011830c39123244670b9f1ac44022862491d10c32841b421406a35e6d0c025b3a473050fa683d9323b8da9712b682e460e9940109c220425433344d187d4bb49581c57a12e30e57f4c08b0c6694d825d432a18ecbe4814d0a2c80c212260bb6744cd84c91ea6ac59d8610c2092f245eb24841162db8585de39b817c7c7c8eb0e20583cec26129584ba48535fa198950419325a4d0c2480b2b5a4d9881167ea0129eaf204443575a1ce3f649af36088b42855443bdd2b90251aff6bfae0ae9aea5044a4b5720e267dc0166cefc0b210b5cedac4384b08830ccdb1bbf4447b8f2f1b7e80a2efcb744291ebca884bae0630513c430052a3bde7f34044a9012855191157a708422e090038b455aa445aab9a205a95fc77a194acb7604ac03318ca0d4041a2184f00a1dbf91c6142a38c1083bb08172608918d4221cc18a294df0a04b64c145cc8e2270600a76042ac609385418258231c1910992d0811644b002021d3b6ab052a5000c1b634430a25311b5ec8bd1176c86d0822190214b01086218e530da418e4a093250205d188a0116249f273ce10621dda251085128c1a19c00c5432e18019524e0c00b52c01c104208e10d14fa90cc317a8adc977143ba630fd21d6326eea318b713040e09c24f0e41008215425081ca937c7c7c8c803285960583101328f0200c467881040000820fbe3d621aedf69976a7e970b0babb7bc9c7c7c703b1bb7708b24ed041135ca044132e5cf140b3babbbb83c4f676e0313cb4e2a1634b7897874e61aac8e221141e1249217ae834ed75354020c1e3c0c1a0d8203379910a1b1401e3f14a180106a7bde8588f07b2e042134135c8220c2eb889310c384ba400b52e8aaad081b17c7c7c3a0065c905bff40ce8e7cffe03304821dac11381a8888900688df41903ac17633b76b846413e9887bf4390ab7aaf98e17ff4b9efc85241e3e89020422011df1eb12abef341169e8a1fd0e07b088fc19e0871ca107977bbaf296377ec8edd32767b9b9b646c4cc69e8f7d4df6281365227314a9a5e929d0e93ea0d191b5f2db9d7c018d1eb3ce414c7cf46c6e3ccbe5a0d8624cd02efac7fa701e932ea0df1af9681f82606ec25ca731e938bf2c8cf38ddedde2f0610f570a74592806215b9a4f0225e9d11ff4c9b02a454095fcb779f469ef72e991497b2d2e3dfeb43856fb33de30d7e91ab78a711af491d8e6b465337193d3811bc699362028c75adc949ad395f4d69ff2594da914c5360cc3b0944f0efb817acae4d9a6b54c6fc13e2c3efdb09f1cb699b61e97cfcdb50dc35c6bd2dec6834d6ce3d92276aa2617cf1ce5d8e6da0fe7d08dd380a663aed3da073807e5f3744a6d546bf213a5e44ab94e9feab6f7c2511ebbe5c251a8cd3f94a7b81e18757293b7b8b86c8e71df8fcd31c79c3720db74ed876bf14f6bf22d7e99b61ed331ce08e629c7361717d3a6daaeadc706c3e7a632b9b8565fea346d304c70e369e172506d8acfb02a4f959f52ff53cac4611ffbbc8bd3aafdbca89abba82f0e535bfcba745ab6cf4b4739b6f974f1e913634a29b7396a73978ceb0185b90bf7f16f322e7ef281a7eb29caaf16ed29ca53fec56ff1de7a503782e2a8cf7f4aaec7fce2b4971a7b854a51eeb340cf639eb5b4b4eccf77a9fc1ba5f2a963d4457ea6699a928b3ae69f92eb5b1cc34e59fe833e3e2f27c61dd1de08758d7acabf23dab76c1c10cda9eb744bfdf86993ff4e593582f293cf16dfeaa7e43747d5afc7e7514eb1fa69ef63dfc55b5a6a8f961f2d2e2d3e7d7a0b877587d1cd759aa638545df25b3da2bdc6691fc856fb4056f7596bf2270e9bbcd207255f34493a4a3a4200dd222c4c7eb7f82df2c2cf67a9ad3dbfb025c4f4e5240e92a3ed2dc5b63b3ea27a1e897dc4648f1c41169ffe591b761c448e916a5bc718638cb1bb61470ca354a5d2ba8b44147a8f1fd8c1ec0661777707f923ac6f181ff00455aa0bc68fdd41e660e2e6bb71310bcd228f8f351f3f9a192dc6184d31c6e833c62c0ad3b3d581622ee3f683865775377db539e79c2847b567f2e91426bb816addcd6972ac9e5c4a082184ac87ce30dd4d0ab02618e87784f5987f41fe927e5d521a61c7341853d56885e90ec21a533e5317b73f24e6d96e3f9c20c3cf8877275d09bf115577d267ba8bcbb0a344c17427dde498ebc06bfaa92a4971310b16bd5b3ee06a7e2b85878e9f3534188afb607ebae326dd4df7318d3e1c1c56d7b9ab54d8bc3823763f32b5f644c6447326999f7c693ed6eaee6475774eb57d765841417e9d63d48eb03e9a6aa8163e4b4bbf455ca8f2df2249ed547747abbc9355a1871ca5bb1883dae30df408ebd763ac4d9c3ceb248ac5c40cdb7862c4e21468dc456a290ce1a4f6302bacc46a6f17b684e09d85ab6b6ede5d6ca627c7ba8b11a6bb250257d0672db280ee361efa2337c40aca50baa582ab2747d03f9ea2928233050b0a66e2a1671c050a5b43bc6399540f9da10f81ad85dc878383711f8b75715fd77915da1eb5ee966598fbe83031c675087d79e96a9a946537d0ee76b3200f594758cfde6c8422945e7a11487ff2e83e31ee8e934b8fecb14bc7580bbebb63d7e6dbfe63a417fd4cc47a26f0d91d50890d9600ca6fdb8f25daa22ee27fa1f29e8273ba4ad6538573506580abf22558025b2aef7e92fdb75976a569b0a76824bebd4530451b21e50c4659a66871c43958f8f61fa22642ca188cbc30e5af1c4dc109d011df0ed31cf8f617327c3b56db5d5aaac03954f827ec0e964223710e57e19b2c9aca0f013c64a4f6bef81ff48f91802cd1438e91ba83eed24297e819a9c5751a426fa1d9a96e8ef5e69b4787cb3793b9203339392d5cc90216aea064852a6461850a585cf153904214a69cb0caee90de534e08e5e6bd01d97cf3f5b8fdd836dfd7fcb4691bb6b9dc7e6c9c2637fe2f3c6fc10adf3ec920062c5dd0c2b767e1db4fb00adf6e25080ca83e725ca5bb7625d8430e89cb7ce399f084049be54ad4e5ffd75c1f7afe02aa57a2fae93d21350dd13d2e60cd15d9d6b052129ca8aec02850a87168cff60c55c8c2ca3a14ea2e8a5b591ba1f696fbf8a1509b817e900a58ac4d3b5f21b4d00921869c0c0ffccb71d2f37719e807a3c028df5fa09fea7bc9da3494ef28ab8235899b52987875205b9a2a80200944d0c2ceb600e09f3f2bc70d8d0f0307aed8af0a6d5c5ca74df5eb79939665d0e79c734e2927849a63365cb39149e91042083597366c481b6a70b84e673515870e1e46bf990d2a48bb1d779ab39ebca69e2e79418735f5633df40cbaac9867529315fbdd605c7a19f4279f9784326e816f2edf7771f1abc625b8f1d86058a7cb2a671dd29de61906793b7d004208f44cf49963957ff806fa694877fc01be818ef5bc062b03b16eeabe1337dcc77fe3ec524a29e5119cbf719667acca51a640f9e7c609c79ea9ac0d3b637153f965ed4142690e8e02382f5937dd2c168be5bdf1b024ce0e0d647e489f3e8bfc6e3c60cfce58501d3870380ecf669558c472c266957eaaf10adf4cc7b02df00d0e3f71587738707032d37908c4b2aa551b75a6faa99ae212d7b805be7171592f7fb9352eb563355ba13e7647dc7c87218f39ac1fc5b213125cc59333ccc30b7aacdbc57d9a9278a4fbd40e3caad0940711ffc349f1684f6220fe8ccf30e5bcf548a55cab6c85ee0e24606bb178e24a0f8060042da8d060877d093bfb28218267fe699f3e74774178b94e5f2c1fbabbfc729dee2e974716e9729cee2e4ea59ac0263de48ca8bcc533556d7118357eb65b8f165739ac2a7ff1c2857f5bc5bff0df9c207bc3fee285d7f40b7fe13cdac3fc85ebec0e1afec267daa3c15fb8b757e32f9ca63d1bfc8577edddf88b0fe65fb8d62d00f80b7fe1b1bd197fe12f1c0900b8208f5519ce325cc6318715ae8dbbb384dac3fc844924b015717026c7819ab376b98b8b67dcc2d5053bccfd546d5c5697310eab3bc651846a4063fce32831ec04cd43974236f508eb63228490668706319ed950f96fb819ce36d4cd68a8fc3595ad501aafe19cd9a8373cc88bf34b0dbe42face717844ece49341ee5b241e2f6d749285f39295b90d36cef4c62fb7c17d588de3e03e9c2ce8b7416cf887791ff6330a5ce5a8fb59bcf11c959fb5473795add00f07002c67c769ef268703a02e5cb132d769cc86ba6bc34fa2401b38326ee17784c79f3c930eeb6a898f0da8f415a23dc85180c79f3c73e92bcfe229d650b7bbd5767b8a92831c4e7790861a5ca5d57da843d606fa8c2aa342192a3138558551f75f54eab0b6bba8479f5b79f6971a44bceaa772a9df6ef1ec1a0f7daa96fac106fa549d40f728cec8e6d06166b809455881154da860a28a13769808cfdd6fbedb0e210159189145e8055798c2187636c736252a0425458108289880c9ce66f4db1546bfa17edbba09d013ef20d87a29c20559c080084b2cf164a7bda3b4b742c0d1e40826b2e00112507061a7bd87dadb20c0560f122520a20b2be882154e6065a7bd8dda5b201c51416aef2aed9dbebd93ac746b77bcabb3ec0ef8ddde8d04ae386897da79687708f11659b0b4b77d3b2f29213941a90fed4376c70299f2032954014516a519ecb4141a466520a2045f78820992a8e21b094f041511851e7cc109293bedfcc340ed75ea79202188095c98c1123d88c24ed1bfa0c11542f085282c2185043b3d424a4f8a8092823338418a1d015c01657e3b8e01d693507e3a8864cd4b9a3ff58afdc35e524fbaf41da4079159102b8f6141dabb1a0b9a292dc1d656a1083f36288114aa90e2043bd0394b7b3a3cf4f6d9c2436f26ed9d1e7aff7413e8eda4bd27ddda231f1f4682dc69a887090b9288020faa982245163bd0d9a8bd1c84debb1e3a4731711fc642dee5d08710815ea43dd3434782f4d095b4877ae84b5a08e8cce447034250f0820b9e30918520ecc0a02a3c7466a23dec7dc0168e773d98410665d042951c3401cb4ece43d73142f6d055b0a5000e80810959b8e20a3bb8c2ce0eed2110ae78291dd328085e1e210856bcf41959248417bc749af666badfcda9e1352e07ede721d842b2434020facc637bf5b3acb5609964a474b484f4ccacf41c04b6d80c7f3a9dfcc44327ac484a0c1e63c263d8aec763c841e3e3c0160f0de19ce1af1afeba98a8bd26f2f1f94f569e423ac6f114444b3e3eff498e89b8a145b2545445117e4e5fa524a42323a2a167178ad241fda481faa77d9e3dcb92529223f1c7d200462d244ba44b57d21d33115c2d41d21d2f92eda09742e85ed2ba676608ee8126215dc036094cbe3d52181a4d768c2a557739987fd7453195aa3be6a80a862955c166ac178766a5d47437e74af9b9009a0cce7c4d77d3997637b34c42c87dec7c84c7438f55353908c3338d3323ab94996418618cdf111adf78920840127976583f7f0855bfdd7155221f762f1b425e8992f2080eb3d6de10420877f019233347e60821d4b0f63a46d831c61865c718e31563bc628cf18a31c618638c13cb628ccccc713233333373ebf85d9b0c42f60f4218047f33841042082184ac1be8c02c7a117633d7ef08646666ae818c03da1ebd08679c587bd3b1083f9c871cbb0eccb2e871c723381b8ff4f6628c9143f1d6ae7d4a1e72dd0e7b0cf4a3365478764fef7a84e6255322e8fe3eb4029511a2f9e61b2784e63d3b9b84b9acbf454bc420d502de2c29208272c406862bcebe26d19684bfbdb1cb532d804850fecd8288382e111de18a0c82c212ebc4542f75d2134f5c444f18dd608b474f386118d4040be051134cd88b2c1f78a7679f2ad01b28e6d90d5add3cd639bda5b65ba65a3a8289c9649a31a949d1114d6c684b473c0123e9670bd36493c78728ffdaa7cf125315a24d9c10ecd35e735f73ecb34b7c9aeb2ce378e8cfdce4eca43d262d2484d1bfc0d6ee303925114581025d228a429499e6ce10145f90bf9220f9cbd4a6ba9faa1bb7dbae990810458864396af10e27f949884f22c49b4c3a5897c7b879139afb5f1a2744af7aab9aeb40ad9eea92eed837b6ec481125768c1846378beafa2dfac9827f6c6cd378688c8356d06fb3b0a6eab728055462bb4ce478e88fd397b4079f5d88f6b6e809280c45b75e82b60807505e303f79ee2998080747ffb113cf71369122489c73da03f0df6239da9be917b7417c0457e07cf620220efbd79cef0eec798797b52bf67ef66dde690bf04fcfa6fccbb72809e837ce6cd67e664e42420408de81a523eb20ed7d46dab9203eab9076f8a3856c3da0ebd8b759368bb396b05c7e8b94e0c17f2c557b3df34b2effe06f0ea6d1765577ed1f8559025b44dae457cdb2b53155acbe8447681e2683353be896fccab7d3d4f4d1d3b05277cdcccccccccc6ca5bbfe38c9a79dbdd5fee3a4779d5e9a9593bab3c24a7ce5dbfb522204509ee6b708892c3fe33334ddb1131a7ed2ddddddddddaed3d0fb63a0232494befb2d4282e8b1a058d027947cf0bbf140ee63711f4ba77f7ee6b7080458f8205537e1a22642bdf4404f988967ef25d8a270658506a1847e43c10a5ad424e967fc163521fa6c21156893a567ef2adc4a7d656a340f9110fa1bbf4548fc7cc61b0f4f6f3d9adbb591d1bf468258c02ba8f47ec2043778ee2a9f7b3427bf79e8d123c66ff8104218639c729b62a0edd8d6a39b5b0f467dd0d79b8333959d6c3cd397da9b1c3bec004da23a0d3940d72111949ddfbf911aa997189584ff1aa997c3b428bdbf40bb9b070e42081ba90cf46b24a3effee8b0cae85b5547d86869c9ac3b051aa377c3daa3934cdf1e0df7e1113642d2dd6e57e94e055b9cc4aed851e02c78e618f0ee7007d14e6aa4eea013e8d7f3dc59e8421f1741c8b214d323c4a52b3ac71863e4d8d9888de0111f5b6996c25660942d601418858dd8888d36c258942d4d9499498b1088ee3a4697524a29a59452ca2334f506baad1877e1df2ac178a9a0a8d42c76a5494c992212001000005314002028140c0805a3b16040ac6aea1e14000d92ac5672521b88398e52c820630c01000000000010001098218100208371ff2fc93ac7f3f252315e71ac01cca79290e62a604498accf2dfbc80d742185055b94cfacc7ce1912aeb01ce0638b540ddc368d8739004ffe9ff0d7a44965093e8a9654ead7512d79cae817950721717a39d74e16cbbbc08e3b2583ebad0ef1daf19f853be30a24759d125b692ced0d0dffbf1f2ce565e3829caee38324e3e6c6c8cdfb26e968bcb41df399a82a37876a5252c0e005e9b4b3fae368c80620886bb8eeb100266bfab90fdb519e662c2a2856466f6e30a7b6886cdc4840ebf0abeb307fe2110401cb57b72fff849f137bdef823518e582543f7833bee29eceed08c1db37073fb995e4aa578b7a763cffc045bc1295a97c1144108a42366f560344d8d9c4405c1fa12a52082e437240059a5800bd6da1d3e50ce9c9b243ae3ffdd1ddd75b740d9c9b35e8b75a26a4f4fda238c0ba3705e93b47d59f85d7f607e1fdcfc07f683ffc07ef41f9a0ff6b1ffe03e721fbafeb83bf99098d3860ac8c60e9d5c3af186d823a507e6393ca8b85ba0eee6edcda894ffc062286a64afc4ff869ccf83d91a082a768c3500950799e6efd7e060320d6bce1a646f579b3de1d62dbb84f3da1235087f993b8150269983ac9c6fd9461158b2dbc4aeec490ca4ac248fa184be9864155c38f3c494253e45dcde8d033a5feae7e9ef0982d1b2e7f404fba55c5fb6a36d473d171e22761a069928470998074df3c4f4feccdc6c95ce951a9471afee219b32b92ababb9b93792f113ec8b6922e41a0cbe8e3dddcb6889344b6a648f3d308f5ac8e193f45f0730007dbf4225200c7c75cf801b013e5a43fa706dc1cfa5be9523b61fbaf2b9c1810e16f6d6b7b554388b0170611086cea34944d646fde50c6a4efbbb4b660930151ce61613a6530ce52079a2c0df913c654f0e663c9d91bb6dac56e417f4b821e4ec8055c16a379b889b77467137b60accc46ec5faed1fdf6141a38d601754faec01daf80a7bcf3df2718ceab20475217d7b60267dfadc4fa438749750ca672fdd586d3ca510a60d905cb3c5388cec77a5b388ace77c9daf892f15f6d76d62007029ee2112b246ea82bec213c4a007a9089bfaacc16077bdaee682823fda97477135575841051a435618dc67b224a37f70546ae25b9c21b21df10f796568892f050eac1a906fa6b61209cb9e9b9d29843ec69d1faa63f65d242f19a16befe62974c07bd22dc60f6fde6d001cf2fd4d245304d0fb53eb243fb4f18cedb62a2c3c2511186cc96f2027806651bfc0041470ea95735870eaf15e1f0c621860ea536263b6ba7485070051b6f065ecbeb2c17d472220428c79cd5a2350f95343277a078d87494ca88b6a8fe98153a50cb728f6b8b67e531e251793b3f9e6fb3d504164989726b840fb4c0139e0c68b01682011241b8b86913e548defeae5f3af5253c26ba5c0579205e89e66d129feb101c1acfc6e0ce0155ecfec1c00f228da819d51c0e14fd77c1984110464afd6e4d86febbb837b13c42b78e3f7143b72bafaa2ee6d05b3dca948426c999a5b2ffc15e17df1fc293a3389b9c9a99f1bc0e305faaef12a4058e78c66543944b3b811bd86ca1c7bf843f83fe78ad5d08d69723f75276da2fb771a0af1cde7d3fa3249fc210ebb66720fabc17a3948a96270cfab22601bb9872499b2c8751cc518af520b98206449461a17309f47e10174b6acc0473baa703730763c4d4109eeaa2ed926c760817bdb4f87a911c81d81b11cf51a355e01bfb3899e24fc83df97cba57de979f0c7a3a72251bdefab0868172330c1b776a3180604f33c2c1b7b1e88a62ba46be8df952779884548b991141c01267f1e05a38734824fdd8c7cb6291d62a333d037c1e33d7a6935886865453d697390309317aba68fe2d0a5c35d07481d636ad9f0071dbee5e79dde3143c944beba2ee0d623cb165f83a5d526969f84b9e6b6624e9d702c242eb668a103dea0c72f36aebbb7c92ed4ccdae5e7dab9010fcdee22717312ef68634a1036dc508b3e73d4e0850b35647c67c38059d99330620d68b3595c2ef0fb0fc4c057cedc631602a4cb8d6cf0e316bb3e664af2b60382383660bae0afb910b0806a2db243c567d78dc83a773d8881180268d5ed547744d9dbfff12637da1a895d00181687ca86ca29bb004f454f8811082d75eaa5db2e95593c832299ca895bdc975f3be995a242974c01e315f1b3aa199554e168dac697b6e47213a5de549ac743741b3f1559594b917b0611df478127e48c39f0d202f82e87b0836fbaa403e44d77d10d25a9fb668e5ec978e1bae16e63649d2b512ec06c5f4a9aa0903489f68c283f68370a613147913f56ff8caf5e21c8a3880381f4b4e3efdea9540eb5f9ee3911c644955ca3aff420ec694805b411387258454ae0edc9461a9ec90caf17020308ed3f67477e297ab687e2aba46e87ce3bd3ed4aa67163c8e580c44618211f401ea63e9468558deb4d127ad8bcb5d062f437eeb8b5b14e5f8d59ecc94c090ca9f792d031e4f54f021424450c7f922f145de02d52c5e65f309ecb2687dfe7aaa551191cc95f81247d339732428747f5cb35d0750745258283648ebc76190b51511d03f080bf0a1042be73f56b9a87e043cb8a0127937b677ddc72710421840b8c80766a09e6f2ad059b30c78e5504d67d692ab204045397ed6b8cfc8ebe05b0a045b639573ad19e5aa5005ec206656b348b72a86dcf6b23ec14408ed74bf3a366ee50b82f8724698571140a9b4669286d000f08e6e844e0453950d176039592ddd1850710a372ef04aaa92a3cff407feb8e5e9a8f9b576dc0e8552e01c0c5781d227039685c777a0989d1b58ad5f3d693dd8f37f353d0c9b679a4b11715904b30254765c02d836fb7bf3806cecd432c58be3c17be7b1ea9c3906da2163dc480476429ef0394009a0557fb2d03680a4bcba0bd67a921cd681d5de6c35e40103c312ae20d0deaba44dcf4cda28fb2ec4cc254119bf12a66fe38e93b4c7e58882a4920ed63e24347c5905a25367f419512845e6a368c2372f61a798b58ea4d0030b5f19c1d5474b0874525c53bdb5989c684d3e87a300303a4d61a9d7027020c78289b91b5120b895c67964fd1b6c91207cffc64c276097bea458f8f6b78e02af1a9499367d7c6c34d3c22df09af560914abdabc72cc70f3ab4857c88cb0fae356a05bdffc93e7106c628c45e0ed8f995594f7c2ad02402961a4d6b1be37c19ab31b80aa08880ebfd7edea9a2f3d912705bcc4c5e650712d32b0745ce8376f819df356750f161b6a5d4ac5dbd88a7bc24ab7d2fdad60da6aef19a7aec0492a9d64838229be3ee77dd5dd68ddbc7d8e9d294955847456a3a61239b0ec15218797c1377d9184aeefca31b43b525ca0d388a69990501a429e97c534092891b6646445613e84e2b153d82890fabe4e429739b7c82c347bb49a4b6d24fae3666e843d6a6a2c31585ef5ca20694d7e444233f450ffafe71e4ea15ea0d79f0fad9f6cf6b2e4fe8600904cad223225e62588289b3722895994e76d57f58f0673d961570229c99d1794adee7eb35c111c7ba5de778e7f6869206cf08b3a4b56913526c0ca48eaa23e3cfa5581468dc29184965a85bde7df49592ea06c5042bcc2ae484e90f925302e965d0ff3e340f72d4041cb3a7f115edee3797bc33fcaa43b0f1948ad4397f5ca99bc85feede58f515024c62833509d6d9ac0948688449b73953c7316a678b5a8cbdfb927e2160a01e3cd4cbb2c06493c96b73c8258583dc7724afd90809f9304731a91973ac987866eb51ac9936e23b346bd9858387230f3c26336ea335cfe276a99486d8d5a0846f423ae149a43e04f1b3e1f6bbabe32f1d57e3874ca046c10b71f6da33e224761e440b85d831c65ef60c09677b4705fd2dbec273e350c5f18c274d00ca9ce8142ac7839f507c18efe1ba415d99ff888492691b870ea8f06b735d287d3d007539d825ed8fcfee6a990dd308a5cb3e95a50b8d9257242334ef5dad3880bc58f76d34cf8e0b5d3634cc6f5c016a4bbbdd3d3ed92ded10e045f5fb1306199ac4976fab3d6e253bb5bebf43235e283733d86dbc9acc6d3a0988287154781dd2932e2ee1270d1a28c9340dd5415ac132dc600ed237ff4521555fee34d337815e718bc93737846ff64d6662b03023f9aafec3659262dea610abd5f28047f76f20a254430de20872a9e7d4ac44b93f63d30062d101f2e50a62a17da01f67ed3ff5200856fb064d148a3027ff915a5cfbfd408abf495c050fd8becfd49faa86ddeb08483b2eeb80e08f72b4087c651d09fbaa7c03a8f70fddc867e4c8e7769b4a9edf3b129c560b493095facc28ae9b87220e429965497dc6bbb37f9861761fdc438d3df896ba62f0b7bbcd5871741fd4deaa25a5951774535a71c13dfc85d415111189e432c3cdc05e5aec41bb62c56a963730615776380f6455563ecca96dc60317892612aac68a3a4dd3f010a853dff920605e26f2883d95860588db52229f14236453323e050ca6f73dd2e7bdabd9aeb09f8796f52f8d6bfc15e04f8c2615e1e00427253e3e1d220c4427751c6a3ca333a8ebccb13cd8b32c33b73a683a28230d2ba83577fe95daf6f484273a8ca613bf60b090c4cd0f4fd144fb1c327164bce200b91780070aa3664848917142bcb1f193928eee96224fb0cd123015f49b25c50cc5cbb3165622e1ffc4b04a4d0f994f44c522c74b8c52305a99df21d2c4f24544a89d69a9d66e6d58b5d1ed94566abe11c6f0e38e9e6e7022c253ade8ebb8a64f6b4cf0508c91e9421e70253d204c168122e37abc8b25c44474117d7dd6cd81f63d307809bd56673cfd3fe49d90b527ed85c352862fa91648687185dd1712c5f4829240bd16ce3ed72febf0fa17c08b4cd926d2f135d90012033d4a7502f5e59c16e3889556f0db2bf894d1ad8ea0ea62169c2d23219e46a6e2ce167789d8c4718166bea6d78ee08bd878a603965514441f0098a862f2ecd910d680fa3d233c385fbf6e9eddf8057b70e9bfcc3e50744060821498830c32d56cf540b3e3febfe2e7790ba3b8fdef31c600efe32f9293889b26ce3b0537074d89f956c501f14c6df2e2a3a3063d1037ac33bddf34fe6464c0256561fee02a6814355f2818b6eebd1f59780641816a157a112ab880318ed4509171df33e70db8bfc1a5531e1e492e691247503ab4051178456599186e60dd7e05e61c92b64d8b917358756ddfc6c77638651118ea24f2f77457015290eb8a751fad7f971116c6d9e80daae2a3337be303ccaf87f2150e8945648d0a5360ed572031998097b66fbb02f29ce8112490c9a111b7e8d342a99adbe46f81e9e6a84b84e0a53b4d18487b68321cae18b23747cfa4813d8487a89b057ca623e95e39cbd0692ad440e6f8b3fda31539732494511f3a2e69d23661f5bdbab46feaf199a7a890bb2ed06ba37ef640552eb179ac0bad08536fd01845ec2184e1537d02df40632b642d485fda7d6395a0dde6e214064f5099ef1a4bbc737ab8c099eb978101d729699578065e3e9577015603a485584787603dd8357b36447233abeee6e7c8446671521ac2d6bcfb6f93aaf5c3e1f60da4cb021f0dc0d4be53d8c3a020f8b2537aed1d734a7099bed9c4e4133143c04794d5cec514815915b928ffe66b4c3122121607d1d8c22561bd604b54511b88b24ae501ab6009cc4761767e1bcd7d1aea9a84d50c2009888f363a4bbe92b109c12e53719a0ac0201fa93164ab57383469567d9cc0460ad5d5a0922c158e1784d0c8681371fa24591f45ee11bf6ac34f139e2e93fc8fe36c263699c7535b8b4ea52649a195c3b4c70e0598f4ed5ba82e7ce080889252955c3fdeb44c7f6e75ba5810e130d22c35013ab54450a412f4c81209eb0fdcbc87810d0401ebe97abce7839155c74839b95db9d7727723c9f53c4f0009f34f3cf0cdd48cba5524a6bece72b3000549b5196f0e79f293d25438fe899aae6077e4c9977ff1475390f23ceeaff6e71f38651fb796ea3f324a860d1c51f097291112c4b0ca39006b54e1fd7c131f298f3fdb2c583e42844521bfbf10068da56fdf7187f70d1310fb0eba68d1f3f732f340e6a2492c6de93500425a2e8b4d3f218f987c020fe8314ad3cf0f56a0c762e7947cfc0370413d231ab42ca9e25125bd2e53119d08e7ff190d59ea8176b50a1b88d4d23381023f42ff8cedb83f24f094a2ba6d429b2d13b56e0e9f35e100080189a24e3911aa71247038236e8fd2fd7d4a823bc0ca9c749589a4e73070573943c9c964cee691bf4e650ba4a0e9435adcb164e702de00fc1f9b2da19e18f8b684b600faaf3c00b6636840f223e9ba0929186ab1f2e5df02c8f9fef6c58a910be0b260e0a4b8123f6e964527000c2fc7a7f849b37e5b0d3cdc9dd2dc39c6a132004da5b5004a32aefa49576f88be1214c454fb6145594e12ef546b5f9f332399fdd786d253be7dd1560598001e5b0d59bc14de524d3a70a824d9a61bd77ef7a74bf00f6ce48f735a09c21683dbbe1f6320638f31c1a7ee88b39cd21c766e0d260001b9293bf7527f9c8a7dd18b24b103a1f82f13cdc1bac749b79bd86c800bd5ad5406332529fa23b04fce613e131da3bf5b244f4610c948b40f42d87860a941dd4120c89f32394a76fed97add37049928f8663c2ab8a4499c23cfc2a38739a67398317ac67fe4e4d31dca9fb8b33a34b829a7ffd1dad9d14b26b38248cdfc8ca1cf6d6f9a6f84b3ae90014dc5014351ae69472a05fab684cb3d97d1537cfdc46f508a73185957ad1e7498a44a4183a59939536880b3ad5562099669e790bcbbef4483d8cafca900db6fde0373105fc869e3bf6945392538c547883a1d163e01ba4fa111efcfcdd3cdbc58bdf264d7804d8422466356a883942ac18f529d62110f0dd96795ee10423d8b1fe03e8820714cb9a348b5d87600b85aa9ee578faf94fca3e497c9db58d1c6d6a797d196c840cd2ed67a869ce49052a07f6ee236b2290723ad2314929d2f2890fc5ad0b1dcfc934b358cdf93fdf4216a39a02ad83322a2416cbb2a700ce45d71ec842b3407434a636b7e3c180f5dbc311f5bae996cd2af8d43995d2d42f586ba202a52a7ddfebee520a1b0bf2cc7ebd164a599eb6385083e0dcc40ee16276cc3e3e85d5c7291b5d6b41ffb09ef632efb8a958700c6531da06f5eaa77ef86b013caa3a8c4a790f52508d688231c07d2c54ad947b8195f2945fbce0ec7d84c13d754ac909854d5684ab4c4a67f03acaa46d4ed44d66e020b613721e23eb6e091260d77ffb2a2f09256626b27e86066429b764d8b0d5de72ef40b08269b3cbf93cd9ecd84dfb187fdf5e60f7847e47c77e99a369facbeef368f1e0ffe25f8b9ebd15d57174fb48fde55f5e24c9df5112301a0279de61a5a0a6adb9ebb2a031276ee36d73387e1b782502ac358455239182c1bd199a08f3a6e63d256a0c5e85b6501adee961af1408530584d25e4588b9e0bb320b9b99429bc39d944cd71f853cb34a25b0b0d2a0d0d36f0200c11a25d762571c89a41ab69983af23d17dd0e3c2769d9251842c52098bb4e27e39ca29e1e32f9629c2b5345da0d3f2658bf6881efe30d6c372d532247195119679462407e71a012e345d5d344cf33bfded5f96c83f4e6fb443793a762547c9547e5670aa13c30bbf2c285fcb31c972123e0dea503fb63d11cfd95db8d4759bfdc5e13bde05f0a359e72df53bbe07589484cb0a76e5e88af9121d96821d9c2d0b9f48456d9395f5509e9dce8477dd98fa23c3a97c4ccce057ca8d3257e6bd1ca2253496a512f740cebd6b79d0f43dfc8c20c04b3fdbb54a82a2b574abf0e1728698bf9765893c2e57580a635c7ac738b74ed4ab9741b1aee89835953b963fb5bcdca1ea397400d4c9561e9ef1709b552bd2bcc61e61c90a8afbb000905535932e2f1c431a88fb47596b28f2b77e2e5002599894e9ebfcc57ffd90cd66fd0046c89c54cdb4d5cba9455af5f75af6b4bd9fd40b2e611570b20e016fc696e79794257eca8490544cf69691fe7a91cd0c5766b58e41b09c7aac2efa6e04d4d8d507c345977a41f85139109db972cbc019c7884124dd8fac30dde3d4b04f20aa5f7dfe96d8bf1a689ca3038a268853efef2aa42a16c7144ea5bf52515d417ae7c25306ef4fb5331f2c0e6786a20235f502928c52cd137f3942705938149d778b9fe1ef332bac476bc79c30eaeb4798cd4c6cbeaed99412203aa680a3c32cb1aedaf21a80fc7576aefeb6364574851432b96f5c781dbcc075480827ff236b59b5d112b0e0aab609d5a3f56f33e5f37f44551020c098f46059a1f12600b62ac0969f0ceee551a1fa422fd024bbd73842b44df498103b3d3f6bd413f05db6a707843f3d529782515d35a89bb6371b14009222aa28955180287ca638378df71b40292c7c7975e47e863b607019b7bef6d8f8201fa340864a551783707c326a42b08013a6623738fe81b0df7154725ac842226a8a702b4c5b473b0f3b581653d3140f84a2e905085013943ec910704fa73dc50b856b84c7b7da5bf363aaa67c5a53ea99519696a064ce4868e62927d222606a982162a6db051ea2a0dda2006a98a36cca178225fddd61ac8a386b0cd27281b5e8ab53753ede6ba1fd7c226035bc4486438ab70c7e2f7db34f68155a0e9f72f5ee998a11a1e212280829b2a875b1ac695f5891184d66528ebe23c1f1bf7ca2331d5a6d7e852d394f59d30453821cd2779e19b27adb3913afe4d3eb49ac39a150322860e1302cd48188dab687824337b179d408ca5c62ec109a1164a67dafd702cf74c0fdc5b5a4d45951a7ea7e04712a721eef5a807240394117d85258c296019a1ab601395ef2dd4158c6dcab0272b0a75755fd548962c395656c0a0c768be20ec7b06d3ff04e8196355a46ce5b9876d78d0e1903629ae905e017f5750ef3329c4c91a676469850df96d0067a8b52186e6926384507b6431e31743357dbcbd2de476f00fc8e0280a8faba245c22708b12585643b3bfc4d831f14fc67d2ffe8d5f531471019b2594d79b86b51f720e1e3249fc628234f8784c3f27271cb23faa5b3de11ba8e4de4269d28c22b429c99761cdcf12c5af5b212e0bf07765128082545c84484d485f18df1a884f8667ff17088d171e8d146611ec288bf6935a48a68071ccb702f97f8c14c2b479b6cb966a8188f74101d106e5c46a4a58b90400519d5eccfee18a2724464ff0fe1cf64a46a4a6f036d4207aef125877ee0b5f77283454737cfb374bdf3778f2d6ec075ee5eaa30d3a6b532379fd9c87f1b15a354e8e747b4f32097abca7c804123c116efb877432a9142271a7321486986933f4ae98a4ca4182422d028dd950e6960f1d83545963b056a55c0ec94ed8f7ef9c3450133b87e4d62076ae85afecaa7eaf0466633fbe4300eba9d457eb2cc6a248caeb21d70267f0428646c4df35f6dcdec2dd57188f3dd2ab5828d9748689cab26cbd25ba5b68a8ccd2f9992714bc43c5e74cdae9a5876dc6896f5b2e3bf05a9c50e46039ff6ff74b7da68e8c8b1cf74cd30b2d086c1cf2a12277f78b951969b7b2d44c4cb90c95677941ad416a45a34eda491b9d1bcc3db7a7eda3f241161e6fe54e1c1182ba83e8b5d3ffbfa7300a8178e35e6ecec1a836115371eba3849a4159283812bcc19bc83983925a711bc0c74c24b9fcfdcc56ecea62ac767388edc0096db85603ff8dfd0e0f8eaa43bc07606ad438d571026e21412558b60f4c3cb8b39d35860c9897f302aeae8e845e74e0431b2de4a8396e02f61bb9686269cc18bbc2379de944abfab7a50ad2afa3711950a04d3a58fd253da6e29e02defc1595e2b4e56c31dd0738e64f7079e78a6f07a62f4c3ae8259568d06859d12e826ba13dd0cfa9f6bcdc269d61db438156a585ad373809d3d0ef207ac2e72a8fd28e711f83060b2ad177583e2878dbdcb00f4ade57bac4ac288268a5690173a4dda46f4fe1521dc9c70f6f6becd5ba191d4553b6f6d1b3cf32cb13be7908dcd21a99d833690c01d723791ae77ff9d5ea3fc9b3510b5bc8333a5fd854c7a6cf0b2ec5c3c9b18263ba59ee4e59d31b90548e67692efb8c75086259b30572fe1e736e2fce05c10213f9871a0ea9de9e6664df3b5e3329502dc416e08958c58f87bd150088ed60db305153cd0863f662b9c4e1f1bdeceec780fd6781b13205b2f54337c760861558ed1ba58486d643cf77b51b5dd1369482a245e22cee8c52152996b3da9fea36d898d494a6a75f58dc1b655c3e84c0493c565f4824ee666121796a1e5b7e48e0d6ffe57160cbb53d9059f3c7f9e7df29bf898588e0bc2035c4f044ce99230674f139c3f974e72c86db78811082d657724828228d5d4364b6c4ccbdd28d7d7f218b61a15063d00e41c3694df61c6a5493ebd99648cc30b871c1b6ef7af763be22b3464a3b2915c5f1590cb93ef82ba33e7df3d0c1f6d6caad4db069abc4ba2d8e75767b6b6b389dd9e9acc7bee2ce8f8252076c122125472355480e466c6478046b907e48396d52ff409bc2ecf23b0810da212fe0603d890416804e745cc9ac727d8082c3fe22f9a16a74132b4dbcd20f3cf64d7ac058dd1cdb205a71363370c7777beab14c67a76c72bf1f9c4a94ef2525120b951e09585c12b7aa617642475a4a0a125f02347e44196abedee1b796d6e25133fb387bc211331c3341f1b215b2cfd17f17aa840801eec7a81dabf5a24a5202b7ef11e5321a0470ae8160af25a2f839179ce58042b9bda0872b8f1120d4e2c525cc19c3e101542a23b55c5171ec27b11de4201a8b147c5caff5435e0e26e7c91aba3e467bf52fb84a40da31644b83464640200a87a8b56e7e7c66d2529bb091048c4156c47968028fe845d4a1f9ed85faf352a0708c557e478f3d25624f26ccf33a03122611b95733416ca80431e39a3c31686c14a9be92177d83d479fee0274c89158afebd197abf7b227bd9ae1344041a0986bae79a5c4794821a0a3fd24e396a6df105c474a8d80c5a380c215a602a0b581aa4ab563e8df2560a6cab580c917a651214ba661a3119835c6327b9a841a6226b14da0a1f46d0fe27992d4814fd3ec6d9abfa7585b130084876c6befc177fcdcac5837ee12faa080e02be856dcf0809ca5c4e8d4fe48e3d4f0009931e1f9f419215552e2e3738c51315282b2bcb26f0e44ed0cad2ab671022f39e3c3ac3490fb578a85d3eba7c3b8b5b29047bdcc95f7f3f5709714e9abb739fc23e987c16712d884e487d4b86055f79e34939bcb25cfd71ae8741ca29ac4b341251af4e95dc059d6d5719c019c92a5f69351ddda19d55e819971be757891d7ed5c51ea8e99d8f1d42064d535f68f35222e50de90a5d87cecb60ae584319c9562c0af4f8ecd10e3a70b4a5e4f117ea4ac27b9a0e8c66aebecf507850a4512d435a89eb84aea0f7f1c6341a3c2a01a11f285ab96894d806b50b1c9b0d054f257da2d5fe063c6636c496001ca07a6f962042d452a180e7e30a97402bade149994e162d66ddd89b92aa8436445585f7f0237de7d320662a65c55516330093f450b85013df5200a211ebbf2f317f094790bb394eba2cae64d0029a702242a6a6f4757384978647548416d10d720298dabea33af40d0c608416b358c054b86ea56b447a4f914ff987b2a631c037fb188320d8232b3c82a11856a85b9e0d0afb02e5b4293de50c6b4b48492be1d1867090d1552019368fb07d0ac29a1bab3e5d28c969450a74ffbe328a1a84292db50773f055d1b93d0deb696844e8fbced29092daca1adaeee7e056565241477e15e3eb32812ba0a198d446b250a7a60604c245456c841ba74db5350b20509ed8d0a48e8e88d7be74768c4723b911b55b86859e8b9e5bd2d5dbb13977bd4d75c743deb11ba5e1c1ea10b4d2f37233ed38125b4b93dd211ca9e63afe5b0952374b73b3842df4f12d539dd085db1f6aa052a5e6d6d50deaaffd8e9b9321621a7757b761ccfc5cf5b798174c751f287534ddedfc120e9ce34ae1724d214872cbbdca072454a6bdc877797e41ea04cb3b99cb42b7dbf874274edba3354c85439a95ef28677c93f53b1522ff6ac76d96b5ebe6b67ae5ee7b61bc8ca623e954d6c37c36bbd97236140156a139420c994de88636dcabd57bb2f57e4e0a01ff1f96039a4a3bddf33a774af7fbbfb4328bcdb69b724fb3e4f1031c8f63f3b8fdf15dc5f3ec1e275ac5149f928b84733cbb5fd2d6069fc78f11d1a26cdee3420351f5a55897768924236945d990d497b1642e80fb56a123ac3e0fad002847eb81ab2f0d88d7bc64cab8c411c01734aacc51acffc7e414604ab40be7dbc09778683234f2269896a9268a74b364608b4cac65e1e2103aa26695e822c2fb7ce91e056ea7e77635c34ef87636c361544a72fbc402e6e35372faf6601a29483fd143e31121d105f3b7514d69e58201a0ea0c7daeb6a759205c5116b7efed5031ffd2f5a6c2e7248b7286bde509c93fbfac50a6a12724e9ab265f661cde0639c916f8cad718cf54619e27046c0e50b636dc70818055e541a3959be128b11c858f32cf81e7506aaa46c18ba0c23209fe88ac476ed5266909c5c01887a4cdb7848d245f5cd999c2a71e6023d919faa3c2302b4477edaf172c73e605dbc56dd6137743c3e7449d9f6f37c4b94791b5580008d94ab168f5ba03cd4ab1809c42ac1c431c7fa8726f62caa2eef6ab518d910a113edbff55645c79b3a290c97d3a33518c9575a6ee9ffd4fcb0e4461b640c7c9af0ccdee03198ee9404f58bd8feacbb433af489059c833768b760d8da7c510b64e43c43b9c05a83965e1876d6f06cca0d428721f91ba5c05d0e25727c53e45a1efae588580d6a62808eec7a09c42e39e0d1720c621792e6e791496e4b698cfc12fa6d1ec05555a91705d0c70edafed69161c5b18bd423b4204be7efbcc660313d2f2923deac76b0270d54e1d5c639159f4b0dce7f65049f751ca48199e7facdef8eaa12d97dd5e37776d7b61c45555644e86a363daab0a3b242c2d42d555afcd0b708c2c450e2c6eb5b73c953b13cd4dcb6d6c625083bdff58c0b3816ddefe023bb13e2471ef8d592a4547ef161428a98fd4f9b8e0421175262f63a891e4515f5b2c30ed426ec511b628b9f67b613cfd18fbc07fe489eb1bd984fcbee3e827f9ead1324e981e47c78aaef5b12d1521bfc82a72bd053b2b3817102bc6b352e3811c857cfef8d699d0abce53f4d942e00b92fbe2607a8179f3c5e96ca9a95bff45461641187054b33486f99b1a2bd028c2382e9f6bcaa73514fac563cec8d76f9dbcd55f1b3d9cfdd40211bd393808653714748d7ea0cf62544540ef810c3356fe337968bcc691861cc87b6ae78edc74bc05fbb5da37dd70cdf5e47d7192b7fbd7784d752fe85d32c6c035ac28943959dd942ffad0d949aff8c0846f38d45642012f81f8152e4b7111b9f95b3035a1f7ec91c3f20e457d4787105c2079cd583d083b97e7cb7d1a1034322c70ebafa61d05d9d9c7273b8d2a1c0dc0432893c1987b0d37698ae4434073267b887b34cdaf8f94e43ecdc62ffcfa0c96023a1920f74d1e12defce9c8ce8dfe17d61ff1cfe535df28df0c76c33491aed7dd21d3bc893376667c38e91a91b975995dfffa37eae69dc1439c9db2d8f6924c8c0b12b9fdb55d2fd6ebd93cfd93cc04bef9174643d799b2f2a983892b9331e1ab47da28768004aa50f3475f8c34f282d6c1630e15b85c33229a37b512ce24c8a3a8e062caac3d1a948f20caeba89a6d9b63aa7dfa78061af8d6ecaed9729e7c9c849c19818c5af6b57649f5fa6682b13c0412486823703259b47d1aabef558507293f6bea334172221cb6d3e2bdd4c121c16b58ea107bcc672b0ad0db7959ad5ac03d8c4e5dcc5f5c9958d8efb40e87fa4c2980415233a5570afed5be23ac1398271643e0cf4fcfbb2d858ce728dc9e8ee535a8dbe9660543692ed7e9c44048485833a84d507cbb24dc21b135276d8b288d21678dfcc22222f0507a28e5539e3e374d226bcb87a659bf559ec6a1cf7ee98497b41a0d5154e86c840cd54579027accb0bb68d70887fdc38ab4710288de6c8d1038235101daa0c6d2037d62ef8a6bd79594e5ba16df796597c89736b2772822a37b8370da61d5d6eda9e520087ccec9eb7f2564a759387795efb6eadf606fc14ea3879d962756e664a11c0c83bed60f2c90dd3f9b4a17b517debed14d8fab6aaaafa417fddac7738ed09ba51c7159e00096822e6d518de3b4342319a8b1704479a4893bb2298f2e659dce0764ceaa84c88578998f2ad3365823d2b6daa9bcd1fb09d465b2956876b60931da9581e3919799a0cfc0daa0535fa7e50accb2972d60273d5e49c257a5d2a20c5370c99213b5a051719cedd194bb945d9e1df41c5562b08cc076a02e7317038ac1a195376df483bd56c2d846ef69c54fa051577bf8a937b1348d938bc959a9066ca2eec663d23108e54839d080c6f1f44d8fd79c9df92e218512b15500c621b0337bad62d661e379e07ea42ffc3886976ad3691b16c516caaec2b35d6dd2e4d0aa8ceacb796cb0f7a784b244e074fb3e638ad110ad39ef9aad73ab065fc26acc9e7b6f08556f75ccab843a47ae007806005c9462cb1a39d1b302f2655e8494d7e6de77b9d2968c2b42aa4da1ed6a20cf999a3b31274e671fd3322bbb3360239495c62fea4d3591c286641c17546345100b360ee5b630b3df11ce552fa777a33272ab8635bdee5f3720aaee5832ce0021656cdfc295c0dd8ffdbdca877147ccf3e7b1bcdac2c2c0b94665b3815b3aec9d8a93622f3e8858bdcac3793a864eaf05f8fc92521f823524c0872f7e963eb053b4597bc9bcb714e2b6830f91caaf7b2049f8cc51b24b96749c226a6a9e0fc734043db674aad4c83225ee57691ac97ec69c24c59d838d2479ec136c0bb6120771a59e0a04af5c2efdbe8c071466416ae2a1929ef18e6d0558a288b1294ea90183d3498dc56e0140ff91543439fc868e6e1248e46decb63c4f39b586fab4b218158c8d868013b67b0142242d0d74147fb10748b1c95ce001d58338433b7907435fe2578d2a0320a1482eedab7d62bf594e231bb2058e44055d06bee78b8c97e2e6a775a00dd25eae193c3f48e3b7049ead8727dc23ecb1d0ce12b657b56424b6ad71d246c01236aaa7694636e765379b261d918aa89a9b6b8ccf44fa29b889e2c2d7238df51a1675df84334242acba0b5a49de1a74ef81518c37a0e05e22979a08c465305b6e850701fdda840206e5c161af9fdd451291114213c4227ad4c7409b22f862571424ad67f5b6fd2e76e7dbb190883e1917e132a1119a99b5c60285382c34d7ca6ed1d7eed9f96704180110c199240b04293dd6ecf6306ed5c6e785e9befe0ef80be17f4ffcd8e1a9450777fd694cd1a7e70f14c54e96da2b6cf5c19cf11a84c1f789444fb8c23ab96b58709ed908e00f0c1c71ac91ffe5fb2bf5af5502a6b48fafb62314314b0ff4b76668d54d4ba356ebc93d6c33ee7e37aa5bf0c2e2805ee4cc53586d059c32fd66cc7e6ad62009657e85ee34f515a3098888d50952fe66f9cca949405eea3ddbd74d1880ed979d2deff11e6f7e1e0c89e3fd4ccbdd7d7033ea881d08375c8428c68418fe721e5c709a8e0ca7d2ee833c5bce236771b03dfe292d3018fa71e44049e43127ab0423eb4cdd6e2e02e5b98ebec56344b18c1401d6d503f671b8fe35394d0cf2970594e1a0e51ac5210ea11b87d178e77958d92462c7abbac0365964ed84a1e259e11211200520a80a410077c9a82fc0d053410557304212bef298d9d26a6c26c959ec60709ca09e0b97aa9ff82177a248176653c0d3614a8920624a9b93e68244f1e5007275b68c240e0b9a81f5deaa4a3343d39ed7a5c873502a5bcb2616b8f2dc593f5c96aa567ce079b81cc0e94a888e680c94d1640c8f4622ba0bd23da6a63b0e0779c10fb292eebd965fd7c7b3909435111d95a89b56cfe3bc364e7247b09c13b64d59a7edf8d6037bed26449427ebb70618524b8018f1ab5c92cc8c3bc1ba673506ecf2b6da122f5d56c5b9db80ec7481a128ccda0b3a489c1a08967128493c7f7b80eeb9ecb556be79e91a581862b38820968896f1830e73751233130c54493e150312efd40b5e5ec49dbad661d75045725709e8eaa91f114a310d324fe215dd8bb90e118cf6c6fcef970cb0902526d62f43524037c580f0bdeff2364286593c737c1193190645e514a39bbcdaef6e1a4b5d7508a42ee6c650382a3d75d5198fa57ca6438eac7cb9774c62cfd97029a84f0109bda17834eba62521e78c0e81141235478e7f9c8f4d7260b520b41c771f8185ad74e61c6777e506cb13aaf119d09f6cf1aa7308975791d320edb0990e9e9471b81703e57a8df4f4da1a88bfd530a03824b539f0a6debb4a5ca10781076dd73badc1aff31297bb04848bfcde4c015d04359d06dbdf1053042b7c3c0e8970e2c0eff86ea8dcb2bb67b8cc5531dfceda526d6e1b50842a0698e4c43acd8ab794df658d9550eb5438f64a1f4d89ac747167bb88d09f50e58a44c7ecf9a028522781b9b77fc666375da1f214513de7aca12284c752f4cb3b83b2d7a9827fb76ef76bac041b7f465997da424c813fa806df4de7803089be0f70f245a29e30a7a053457cff9bafb96511376794fdba0f90e9444a9a69ef34a70d3f4686e190001edf29a8a3616332e0f751e727e808986d38ae090ab5d4a1d89aa501ca5345b6d1dbfd28c13e8de57d3d2867b3e7a3a122fa916a142dcf2ca6d7fae033a66012b93abba2b14558e3a6af80af11d0af34c226bdfceae3bb90249edbea84fa4c21a7acd0c636963d26148df51e780bcaeae93ba42a631c7e21ccc2400aa545560ad474ebb26b8d0be7d44821a7c60cd5b3fdc8ccfe853842becf251e62bdbceb4f387de35225bf9ea574ef15fe675da958636e05d39381f7a720ca9ad405111fb337f135e64ce20cadf302463489802d927b954012b9e2f9a41457d4c4e60327daacd1f7233147b7bd2d245a3da81a8fdacec4548a4fea61c31f11ba030f199b6b82dc01bccb521079778cc63d5d1884288c064fec84f7596bd3296e9284a428ad7afe54724c516ca29d6e5e563e5b46fe99f57b2ea68840454f6be28ef43031098228d4517c568360ebf8e2be24bf12a2267f38dae377ac7ebd9b25391af46ed58d21398610f1e8360eb61fcc9c6368118c5ec6d82da7c32bd26fd2a296985933ddd08c15494ad2389aab51572dc91b5edb0d4544c83c253fc604cbaaf6223174e8c54abea6ad72d883c4907ee11136b41760f157620eaa9548600802821adf88c4c8632e207d293a0a418231d5a493e4098af707634ff82ee06ee5b44e0a6824492eef940b721f9a2bbbae517ec592f3696e80013dfdc35402e044ec6f95e0c2d196cda8cf1ccf4fa1ddc5c9fbbb8ce67c3d2859181cc6e81e4c64af9e0fdeb85c1c1779713a09151e6430dc1d29ba9f4b26e800b1edb8b3a18fe46a4ebed6d7f36d2fc4472872ea5de128dbdf8f77732ec603ac40b1843bce4d4de7843465e9a07d44bfd293930dd43558171a1ffb2673880c757572888f8ea2ec23c951b44805e5c3b3b0f8e3288a68c9787421d17e446b9e61f187a8be8ecfc7aa23d0cdadcc230e15ca9a26a70f14ef4b1469c60b7a13023c92f01452911a3a97c17e61b4df5ef4c0980d5abd8b8398eea5cb08238bce7b72be43a673fc5b2617e8b5327f05f1dae85a7ea1f7d0ec6826655ddc56230f550da93a018b163ee31d8ce8534a99478bc98348a66cb833d9b6eb5ec37115c585dfa86c8db801f48b1a46790dc01dde3f37f1e4ba062d58f72127c50ae229427e295a6fd8614ad4f7ccb526c403b73541eb9c4b201c72bab23ad9aa3134a132916491647ac3f1087764d2af00ceac4239667ca62a8483d1b7d1072707378370e1ff46a17aa71b740362c03024868c9e554b9f9d9f695d4a0a65dc1733baeec6b2f5d42305d6b1dddd296bfcb5a5ae7a1479626196f1b2b7948dced62e40a3664136e1d2b6b7cf0bc5e3c31f5ca0fd28ddba703a2109a1752ebae92c3d9ed6214e40782fc125cbf80aa4a158c9551508d4c99569d668c8d7b583c91c2e80e9b8523b71caf234719fe8ced941ae932750a140bee88d35e0d76a2d822952d370c7b503d95999071355c8ea238e1c87b71680a4c728666825b8a7829229af00d431b11cee8c4e67d532d74b8b4a647a09e25fc87dc53acdfec98f959e67bad77cddd35b9e2c02f68c80b9e1dce0224483ed5aaf863b8e0a1e6afc1585e5ec2109ebd86c2e0aa7e2a9785f09a97ab7991bb63c7d5d9c5dcc6966b0326946bbef3793e8175040bc4dcdfd08e7d287c184b8a091316558784ff126fe118fa12978105dbadd24a98c7f46a6c29caf5b0992e184f971a386773ba188dc77ccb2ec0bd99c8503a176d8535b6934b65fae3c1da73c5f6f087b76532beae45970de61532aefac91868783d5eac28e4e37822bf1e7dfb718db5144fba4a7f7340c35be09f9a466f735d545562fc2f58cd3bd8c7984eb31a0eea9af6f8f3b8d3918cbe30d0dd1ed046c11e1e6f05153b86ab6cab39d2de3f3a11bd7950ed2c55d87545eacd43a9cc787b5315f7eb7c7dbc2e38a2c7a9007a025ffb0c9e1a4511296e7431028ae8f5fa6d7d56093a295c33d2797fab2c3ce7b79a52b081597ac1f376c5af084f1125608eddddb06de53f2c5943f107f60b96101b776fd9cf7951dff8dc4e0ae482eb6aaa7e995d36c262916e2106710e84425fd44ba3e6dc40c3d695675086dddc02bf6015b817b91ef5f3ce9085cf57bcfec6ccabf04f6875e0978bb87b89c8740bf31284c1678d41ed985a27ed8bd056a6369e90b74dbcd331a0f9b485e5699d63aeb051beace7f99cb716f973462c4678f1c4827ecafe890b5084799386a44760ad037b041a863c52982be70bb4efb3a4d045b40e13b5f8d7d38c1b4237b7c8096e44549d79ceeeb259ca93d6ba4984219c0594dba8edcf8e0cc9177f2d638c1e5cece4a85a5b05af4091d982975937e201dd7119a59d03893107213c646ee662ef19baaeb645a7918da950b72ec968ed9063c84a6285c75bd6dd741c437fa8d83a633ee690b3249b0e08365d72c5ef5cde257368c991f7a0e7a62a5ad74c835bab17f1987f53589675d07ad771b2681970b4e82202143821e64fb42fc473dea581dc00f3907a065e871b63b36893429bd261ba1ecd946a5c6fd526cb309285c5519b928798b92c1f073a795799be1031bb0ae3b6ac7c26a61d1c2ab2c7a816a1200f6cae1cfa3601db92732421c28fa0b59da4168a06d3925308885707af2e405a0d5101e98b1451d26cdcfce8d8ae6c7cc47f84426af864282a4b9d34f140b6f6841f9cfc8b96eebf073a64d63019cc2a95f25a29c10597eacd0db3b5124697bb0fdc17e32db65be5a0686ac5c53b3f128db50f6773091094d7d2c46cbc812efc977908f94f4f592e3b612552b5f17a3c48363239a4b5481df1c19852816099d6614a3bc566c35303c040e44abf83a53dce99b18a006a9d85711b240de8a8867e371ccba8ee2fb7cc4232f0046ab09a825791328a28b28479f6e249fba1300afaef3c1896e0b55012da5cd955d50ecbfc691893932c6c1cb11c17500839d6f2de8d440de41f05baddf2b23332e97c8a5bb8e401030e4cbb46160347a7987fa399743f09ea1e6ed009174e6ce4e230f9d84fe9e37669a8ab7cc2c51533eaad960b74a05ed1d7f7d015eac711a0085af0859872c524775db8b5ab01a9b0b98ce89d732be0c151a71d0b4cd0c8237160507e316f3ac92db457267a05c84b6103953a595ead162a50cefc1a87321c18777e0e1dd16fd9091df01ff58e7d724fb89311c3176902ccf0ec7f3592abdb2183692523c494e483cc9921a4addc1afbd8cfe459af415f7cd5fd6136985c04732bbe81c41d9488dfba1fa3e8b93976bf397d975732a5d4ce846ddb29f423a39abbce4a8fad1c0009dda2a45b60855d9df0f95650670cf2d69b2d8a61f983de7588d6e0589d29eafed6ff59e25746084589dd3fa5102c2130a0440499dfbd844bb6920909742c038a0d303665756c98a4e01739d45103e30b0189299e1e48bc2c33053a1aeb2d86848e13f2a541821c097ef91373c827966f870658d4034c67fe532249801f3d65217d7475d3572984f31cee826989228eef5b22c5845491849b6660f7c92e2ed4ebe0c9c9fd7b95bd0bda38eb0ba8250d6a79b9b2ca0b37b1bb53a9e9d404155e1b8303e74ed547d6a02e1c48d6ce8dfebca0a8270c418864e081187e10ec25d0b97ef9976b8c8a4f53bc3a4b846d853b5938d109bd8a4cfb215941cdb9b31595362788d5edbc366af009cd4df28662ba1cba000b3a43d841b40356a8ac581c7e197dd436811f99206112ec7409465a7b5861a594b38193f3d24305368ee0652d263aa33902f28ed7e6ff48b70bcec2d602ea9028c28eb05a34f420a130744ab4bcbc89c6b8cca5bc0b64f8f05d08c80854d64810c9d9cee36cc9bc2b10f0604cb022c15d063686e8722450fdf8735833e706a96845b6d5b48e0b0c684f70d5e39b97cf1fd0c81e08ffddc46f595aac8ac4b8ee1d010be7a4791234a422f9f2e3df424ec4c46891ce9c0f2f116883f4ca1ab02a63cd68e3d7adc22457ecfca918fe5eb25ca3a38548e83b638524c08d0f22c91086b542012a9ff50dcd107cb8190c5e515968764a849529f84f3e550dab7a8365d7e63955af5671941e99e29a01f2b6a66eff0b157724779b27c7bd05252e9452000e3fc6dfe14cf44f4caa6408001a6f3920a8d90c411a4f6a081432f852a7b35f54cac322f991d2411a46ca98daf415b10612f45880a7747a8900721c43c9172162ba6f04b711bf589bb1ebd13a792f42244718c5349740e9efd2021122f1b9ef2389e9c0971e2299fafb3afe3f52be8f9a85561c3671de78cbb03b3248d9e8c56e03dfe4b8e430d6d2f99f95e50fda1dc69f08c6e820914101ae48cf3a05440803f98725d74c56492f88ecd90e07e409aa94cf67229bbcf9803737b7410fb61b0f6c91a94ec1bc6e1998431056ef4f40185170d30f810692ecc156a1451dd9ef252a8b6426aa195c18fe9e237a5eef663aad210e1656afe1ea25f19b0350b1e7e488583659344f2f38756d48773818dea120998a5f3d0fa15954061a500f278ef43c84e5b28771f145f4120b882bb1124128a2bc3de6557898ee670d47a2803995021f33d984195f8ed40e4e2471030674eaafc3453713af5cfeeb1d475b85b00c5d8d7763aa5908272f19f3626a54380cabc25b943d999a18b6f0585d3b0769f64a0f8dbfea14b49a0c25b43d74b0c4d8652f690e2a91039bec5798ac8a54e22d6c2bafa03fed4a7cf649adb6c9697ea00ed19f9df0d2e4161aea097a3f9663a2a43e445cd12665d26e4576b0348935e99fe3e9ccb15a4ab083ea86f8a90cba53bd66b229b8ae93d6bbcd2d2ccf086af932498a33a4a281af1b725d9874d6d70fe38e315c5ec59545913e4f83cc6c2c21869b6803bc2f8e9503ce97d167bf8fb9e7a1f0f4f08b232191d8dc0542370bb953d838f0b3230f63c32eccfc82b995bde6a343b46c731d7479232c986c1c60d834c34d7e87c1ff860d6e994f4ce1ddeb0fec497c1d017740280c542093e6d27d0d673a8eb1a40ddb0d64e0fead811a3777a8f75e087d881f94bd28a278617decc4c410e275e81a7f06fd8272ff955d9ade9d281c24fa82062c0fa09863e5bfdcdceb16fae0768142e6fef3976ead0f0cd6c0beca1fbb41dfaef4aae14eb86a25a0fb9d2f1d70c09bf167fd069215c36efe345c3f60299d726dee5cd90df37f42657c69a2c6db2cb639bbc027be6bef959f5d708574ba312710614ad6ee47f6aa2b89791e8ff134607f016deb88ad3b100c49a065f6062e6ef9cacfc28097c3feac7cfe0592b642815de705bb178c88f54567aaa3cb76b6c106a3a1ff04b4cca2a9bafc3f8181172dcc72fed7f822760c920290d1a06e15282edd559f0af037d4aae632db830bd45a0cc130aa13d5a4af7ccef69a880e5ed6febfc5ce314b900eb074aa9770df3355ec9c9519f1810ed445d686a1387bf355a53ab8ef27b10ec13e45b82334af3e41aefdb0181218920227e95e7034f833b083195bd78636a9575b23998e80444fb526a0568a57bb20afcf4d584c02028cbc1d760851def0167fbcbae31e718052b1df96d6c7a01b927d10dc217c398a738b43595e8317d1b295cd507299800b3f73236f1c6540820fea994acfa1e142466197f632a8ed7a166bb1a288a13d52b8c097460a35dd8d3543a1162fe38c224dfe04a4732553a72a7cb31d4cdda6c24e5a9c09373c97fa4294b87edd8424969e1299e3ddd2be3eb10739dd5c9f1c7646131a62096a7f2cfbcc45d32ccd8aa435966590abcea105985331de19cf260875123e48e036c0d558e5170aed318f13b70a28ca55655e1fdb85c777957b2b6e75f10d442525dafe839a46ae12299c0cfc4694c4883199322bae0d752d8f20cdcbad6cb8b00053c333964c71a69dd5f4989ed422c6b512b6ee2be78a0936b507c1f2b05806adf76481b6e4856396c9994b1f307ecf631d5e2d4c7b3fa4adcd4810efd789eef1e70b562472abdc5fc77690eee9e8d1ea4e0766f4e56e007640da223fa6f295e04087c16f4fb9cf89e0b2d446bbcd7d2485812ed5c1db21e3dfec3f0f747c09d6f163f41fce474172fa2359fe23de4d5c72af14d57f826d5e16a2b23439d6f983336f2b076b07251cdd082953dbd97032a440167c4ffc539606fab913904098a19ffa024b560982ee9f8a3c93f743f857692207a4f733909fc07277e64a11c000cc029d6e4185beec04964c202920f7099bdc2ad82b76daea8d1029c90ea46a9c61fc096b202747f1576f1dcb0fccc1aa9b1a33d7112807c26b26dcaf57eb47786ca0b0064cd9f9a0e833125ff97fafe6a5c23a2c565276580f0910430dc2e21123d74dbde11545ceba84594af207f92d2a1810785cc3880ad3be08be90cc1821aa3177cc1d0e0733d078cbf3a5cfbce975f1fc899688535fb132401c264e81ad0c38349234f4c89b81cbca97f2faceb6149576fc662b70253ab4da8a6319a50faf74123b1a8dd2faca311355ea75e5d5006bd0182fbb7724ca94b8b8c9e8d0a05442862c8f7566cef706af56613e4f22195783f41aa329683448f6ef72f0b66c3d44408bb319c5e4db8e85683ae99b1a217e8e0140fc353b3da378410cf7af89a052763bd84d70863fe49335ff7021cb823f02fa4fed52c2022e37d42721ef60fa78a10411fc5d0a7bff3e6d8ef432380a2570f0bfcc3befad8c9ffc8655f18e08bcc0bf6d371de3084c287b4213e8b9cc81f3e6436f8fc039018a654057a68e3e34efc1aeef476e4454d6b53af27f1c0c7bd0914ae62eb68c4f487e148842a62d91d728ddb8f6b140b28555d67dc73a05d370215d293dfe47523d00e81d06957e52ad79f10b0200012145b47f506fea40f3d8c5f33c80e81931f2a7c269ef8ce03677a3e17e17f4f03e879d421e47aa64f0004433ae9e8efcb4ae29f8448f77f30c98a3261ca838b92ab01a36ba3765fcb1b964a7bb8b1cc62e85cbe0d61d64c5a27053d30f3378173e933244aa570f1cd9197480ff0fb2ac3a083cbfb6d55b853750f64e82adfa3db7a2c00277b6b59c782571bf26ea655f2a12c602f7bbee9d43726d7b30d00d4ef717873b2a93a8dc66d2a0f86226c99eada8ab6600fdc21b03fdfb2af0ea5d330a023e19803a0c934e273184ef7668cf980f294faf24af6555abe7d9029cb17493968617e7e981eb4e8aa9192c7902f0c478fef9f31a59a38777fe93037c5146186210b12abf6b8a7c13b8ef567b63bcf47221dbf1cf3855dda4be09f2ef18ef43634d002b5e1468194cabd9a4b6e0ebefe5d8923eebcf9c0ee17504382b2ff125e9dacce5a5feee9c9449a01cf9eaf9c561f91b760a61265a0061ffda06fea7f8713e3f2e62fabe212fd0262cab3f57deeedddfa9e1f6fb6e3444f8dd1ccb4c20c2d9d0ff53434371213b7e2e803cc96b20cb15207feaa7c60d97766fd93d49f000525b2f8e97826e2132e9a75f259229f7a37c34438bf12af7084dcbdd65461eec374a56b3ebc7e3203904f2386c01bf365f3f5b6f80ce8ca51450e399f91fbdc68705e28dae31363c8a81e29857a268a1f967e0baf5d3a18f417b0c5a265d2d2b44c7ae327bc6212c119cb85376a51099d3e77252115b807b9bff3c7ea4568400f71a0bb367cbf6aec3758c7bb4987a0d9264042ce08b0970bf92b622b1e264c09c0ee6a0fa30a377871a025c78392bf5f223432c5d1a67d32ebea96e66b7dbceace4802ca6dddc639f48904ffcd243ff07f001145555174a7fa6321fefeea1d20d53313d1fed47b475420cd49215959b7d82d1c3abe1ce20addf1290ab28571d49b4d29ee1f4083be76459486f7ad6b8ee2a77c128e7864c5a471413f50d066f6e7887070ea48c5eb08d099c1db4a3b46f008ae5a4f90d817d961984ef9f21e4fb0fb30d534ca11e57ec16dfca1fa3af94be9f705862442217200e26569296a6c4c9eb0d71776024cdba6ffdc5cfe039e15584a3b8fbada53782a31e926fd9c72aeeaee0ee575ff51f80148a5421f81ef6ef85e884d6ac93757bd348079d05d9744e1739324366ef9fbb53e2d19f5ebf26bbdad2e1687ce33958f46d87ff441467453b0b2a6b76856a85eea90a848e470f29cd26cda35f128eeabdf1108f6e3fd243a698b5ccc20e21e1369421ea1ecf4b9da392f0440c9cfb5bebe9938bd3b7ac4609710bd1b9c2a68722fcc09d95e58085420b84afcefc51048b4f1d509db83789df5b0239eaa427492d501b7fe1d267b9d13c2a1e114441b6909629cbdf9de2cfd8307610c52a7897c6f40593105db0306f8a62141454c0c23e3663c39127ab9f9ef5441c871096d853a31416b226ea5f72b034c86e9004fd14898286e14df57f46ee8b4dd25276aa9f8ac3b97f0f0d771be6352057b289dfc3a35b31d9dc89b7059af3b1b4db1d915206d7bc120dd313f07aa2fad46b0d652f4f4d276350e9bdc6a7b1668c4aeacd50a3f74132eb511665d3cf2dc53efa7f9b584f977df84eb57ede4a676bf79c323b35b5f9312a8d530fa932137d4dad5b6102b87462c656c3a6abb402f0d624d39d47f54a9f2ca43e364a757f270bd8979e9b8bef5aa999073488d113ba466918b8f980f117f48aef8edfadb2fbbb1095f5d1829fd486e200562d1f1aa0d5cfb120ad6952251ffab3f14c7ede4c0703adc85bf48129a8cef4835124688af1f6cce730c38a0418b16f30efa7fff581125dc188b89c2c9c4f7a15062548b90b8510aae7361c320c2aae17e33d22f544bcfd4139f06c182963ec421f5c34f282f9cd32601a0610af2eba62825f2df77d1b2d8ef779c14d494920ebc1e2e43b6d179fddcfd52acf0e7f613cb1b0ec620f6a18ec2afef53b6dc78d1dcd835bb22c50b9d8a1b7cb8b87484e5bcad3692011cb7096003daefd6288529614fee0c72af470cbada7b99979f50c6b38832a132c205e3fc6e671bfd6234c71234cd4a178d7c3ced167683722dc2cb734b5b68d01959ec35fd6c086527321189d887e7660444a1a957ad35bf7a29a83cda16b2150f1adf979c7b2f62a9263bc8912c899e5fcef41f6e02bc16a5f8fe507de1a3b5e1baf2fd9234ed9d49891341f6c3b0b01a01f5f453d994c4629572f89f8da8300be01e7964c322e1d43e86e7838cc3b08fa088786b98e278fd36d68a932e002c454a459884bcf9538e39e2a645a1e2ef8fa1325bb460015c5c830914ade9ad1a4af3222f9e4dd0aa2a0ed10281b246392cd2408ee7b066b221f9ad6b1ff67d1206b0d5db70b2dd39c87d61d962a3a170a591c59bae753c24e87c147faeacfa5dd5c5d9c6ec52f8976dc71c55cfd7e9f5c093fb92db0ddf44304cfd56bf3258e6a329225d19c1d91d0814768063a97eac770fe37d60a80859765962e73cc0551807cc947157fc52867d494b167e80ae6ea84ffe320c9c617ef4583791f1f746d6b0413fe8961ea7aa19746434ffb52eea8a27cc2f49f57e7d044beb83f8fbf7c0c6d8d70db5ec16d9fcf9716ad5317dab2e60f1855450c9f601871abe81b330e40ddb2606a456792d91bb3ee850eb36e1e3cd102bc1caeafdab95be1c466c5f52b64d252067eb7230b61959d29c6c9ca8416458fef1e95eec9357ab936f4acc073f02edeb05b0e2ecac65d1e3ee68ecbfd6b6bb0dc95c3eb53b3469f4292bb594de36eb062079eeef1cfc5c669b24bd5ebf1f71be6f1ab4c5e2ebb299117c460ad3199b2eceadf024e2b8eb4688c696fccd8d8bde0eefe6d0572ea6d0dd856bd655491ffc1a5e1dd5fc21b88af9c911f973d1f6e327caf2338953972838d5debb62c0d84dbea1acbbd57b1961388feab2c8581d0f4e711dd59aa0ab0b2bdaaec4a48fb37d34b44dd9d23c6d5aaab0d10ca3698d397ce18b053122e0e2549ac6fc6048ff0f7c57dd773b965313d2d8415a039cabb401f22da46bf80086a1aaac3dbef99f500bf40c296e4602f4b4ca2bbb9fb8b6bdc934c7a5e763949e19ee8e0e606f1ba66267182f6813920d7b2efc6160e68ff95b71133a2417bcaf7d26ec3a1313aa5566d7512038a7202046160c042732706c834a8027c97f31840e26b096fb329390fe30defebc9d688b7b56d12bf1392370e41abe274bda4e3dd6b8d596fd5cf9ab804ba429d184d6a2df4e20978a59634e6622c23efb1262635046ddeca1146cf0046fee29fb531800a8703ee505cecb0a8b7300492c2f1645125b7dd437dc841e584a84a306ec8b0648f777565731888269f30be29f3f6f40f0306283e8c38fcd0b0df3521374bc8f1ae714f915bb3a264c27ca531ccb27c4f9974e97c7153a75cc76b5c533f248119f0c936f7cdfc5bb716f25465689e33753bb41a724672630a3f34221770bd0e43d91bf2984e8b6592e196e985cda261530306d25808975b095fc761434e064e43a24c07ac3bafcce9800637d79068102ef869ab2a5c6385039746df0cc254f865c281fc2b18e9ce282c502d82c24bd27af47e8e6a8ba06fbd32c8451c72bc9f18e4d25ee5fdce3bcd362fe2e20eef677498cd78a87cb8cf20b43af3a322590dbff5770d41fc3eb33e917443a639c999b9dc8f7c21a72be8c29d642f7ad8654b19aa1b9af90d217c83246106aea75669cebf3bc32e0b56e0d6f9f53f2f2004ef19f53a42e13ae0d2b214e68fefde72fff8d1992766f4591f12c9829dadebc12e53c8a7dfa9fb151c17a7d704dcdc50b7453bfff4b7b1ba75d781b3f8ed14889f2e455ad3fbf0e5a318ac132d19735be1ef4d7232ef0aef0c540a967f02a8160ab01965f88d439d851cdfed1b2185d10c515ede81a5bd539910069cdf012db4170e7684568d25618923b70ee4db38a00562bf3373889674ed91a812d0729745547db4a953848022bbe7fbaabb0ed75a6e38d605081ed0aa60cf21ad8bf50ead25eb3a5ad470c68545253d2ce7894cd4ed8c2204f2d67ebea9d6e3c5f2bae72c4516c4a3259dca9579e685920ef64a3aa342e0ff00aa5523d3286ea31f50f6ed169947890a3e2b00c0d4ea5658513e2f4a972faa9dcdfa9e53a34dff194cd40c53fbd35efd4afcbba7898ffefdf1809009b32f95f8ee71ff6d3c3b1ac141a32a7e2d44b4e135028a127c4508721b7b72430f6df6c3f782651a12e8959fc493dc282a6deb2bc1588fa5a5ee451270323442af3ea7a7a69bb37f7e97fcfcbf61a9ba7b8887193af22f0a5763d4a454c12c21a516dcb11c0ebe24c07860f04194005778b3a57f610f73f2e1e809b79d16e5e9cd0b381f4973c8fe4b091766cdc50d88fd69deb6f8e06d7d2a9e0da43c2076ed295bbf395348946f45f186f5a9c1152d58b49d836e4646a2da920e5f761c64c4e332926203ad608e0a6338d0e41d1cf28b36128e2c12b260044169b2184d51718f4e9759858114ae00e0b74eb4547a68c09e5efcae8f92f100f44ef337a288084b1e1d870d3a50f51a832fca15dfa0c3671067bc6c1c5b833c12df1e016c810823b567becec469f0b4686b13bcd350b87432b056a7e03354c7bf21905a670caa4b6e7cb5bdeb30a3315208642df66d2e35ad33a1ed8b2da5b55855d359138c90df2a04bc2b5a4f5ed770faf381571b5d3cfe2cb3249ec4902cad3c6afdee3c1dc42254e27ae8197542c522572968f10b0de9425262627d3db01314ed712d00269a88401134254ad879bfe46a67a40b7e22efd38e2d45ab2032c2a39ebf1b69f7d137304a6e0f1a8faf9c19f5e4cf6f01f83ca5ba828c5f9303a16346859e07030a60972ba9fbab42512b7b9d985a13777839302b3861c91ecec4482c7bd20c74f3450c45635a20f1ad21c590ea378501333ce504164bf7a1a5a23bdd15655f39efa147e62ab05cbfac89a4733f6971bf4f4614b0bac41903eec4c09811191102810f045c286ebc42af132da406bf343ea07f3dd2e7ac0ee732ceeb53cb4542fd8d30096b1daff2f804ecf35a8b4243650ab3b289c7bf3f44951cbf89e88cccba5c300de287100af90ef48b875cfc7787ae73bd312a147b23354d2171d0b5617fad8091ab2e03fe18db81fcf115ad55f181bb15afec19e9375eee39638129c7e8d99e68ea0d29be920a5167fb0ba1e55f89468088565bb9e472179a680440d653dab8a802504daf53e1640fc072c0eab7a80ca7ab9c803b29c087cc253f0d4db110cda794e4d23cab100e52a90ad48907fc09fcc1efcee8b36b1148ee13044da4bb8606efab0ff141d3e9e98cf8a5217d15014a0cb648098ba18b7415ac8f478212815903c0ee221370cb0a610dba88bf8a27b230efc657494b4120781a08d4fe79166e316ddc3777a0f0563430eb78b8f706797302d26c0fc5c44887542812043bbf0cf3ebd6454d62d79b3f96cd0c4c93ce550c1eebc980075a2df669129677f58a2237f17db574934372c76106667dbd430e91a85e4eb3a772ecc210a9fc05d0b6672d8cd85382a28ff437a8811f22dba975a7d5862c474fe52f40456923dbadca57412698bd1d1ab93ec3bec4241fbd5c904cb310515893ae00edbfca1b06692bbc68fab07d9c5327ef66ee174fda49450e87e2a744b9d3bd56d1fe969789f80fe98ba29615d251fb29193847a65a95aa8f8f3f4045a5ca37de0c68ba57e81dea95a2c882a04be73f904fc50104090c0481248a110721a06a06387ddc37a157fb3b750347db60ffc775985dd9474a0f3cc8eb2e4f2291faca7ccc32784561a7ac5fad3b6b37cd38fa27655fb9e6cd557d14e46b658dc86bd97f08676d445e5026f836d36eda9c1174e3f4a32da511b75125bb8ae5c91e257f83f89aa8001d180ac0069c4edaa4dcdff8c165c314f2f68b3069e3fc21301ce74d3edfb01f0eb75fe27f6e0e3bb3f40adfd7c75e67c5e3a1c327e1a321933991801d142d3fe8a0d9d7691337210c421fdf3e85f893406a83d0c623ffe81cc7928ee543e7544f16bd0fef95b4668994817614458d059e94ae23f8d3376ec7ad0b8e8a8ed7bbb46911a941d7d43fd2ad06149798576b431a95e4dccd2c717f407343a57e93881cca40455a37a4cae093e7a800de1acc1f1b37020ead0def95f17132d15d60e6157541aa4c1a5d508943a1a673d4feb7360a2062e56744e875f258e1dda0450819f0ed25c145b60924cba90f7a5e3a4b28cee58e8bcac936618aae5ebee4527879fe95b2b0b22eff59dbae97aae1223878037fb5d825aab5e7705550a9f647a3e41416f986aa7197ccc2f837ed7e60953d3f602019ddabc1d196facc9c580571cdd2c0205e9cbe6c1e7c4299554aa20b3797a3614b4aa12d19657b7847de99bbeedf5405fcacdf1aed9290978450cc04f8ff30cdfd111c217495f7082aabc41ef4c2a1f170da820e8a2f2ee013413fe98c81f912b35ab5f84a1e3e901efc746d42e6a8b204dd09027f7bcbec1800f4117984e98bd4707b519606e01c7681538387ffb2666c4eae4658845f021712bb79969274a0f97d1c982353807231e1bdd4c9c7e8ab7387a5412cf1c5c8423cdb28e890af78802cd178522c798d2bde8698ffb6ef426c79174013ad269487a06fee2dc0ba92fa83121a97248b1b216a80133cd5679f779fd1b68f0315c63f8222cfdecac176c24f829d2f287ce93f9db4a464bf66f73fe021e82594eb3e401d28fb1b16334382434f7187b7b74c280219ddd1fee2b889b4381716440755da169088b3a44ec62198504b0608dacabe31fbe8192eb1bda4f20cdf164c965c34269eabbce991c099ce1096a32cf90f7db050c726f68688d2a7f7f14615ad842079dd48601843545e2281c986b1a79e056865c7e15b2635f0fbf20c882aa5972c25c08d1b4fb9aef39767771d34a408842592e02f2b368d3b7888c7d11988ee8c51dafc04f9443a81167e7a01d686f19d841fe1ae52809b8391c426f960ce947a897214389d93e93a3777510355a7f8559c96a7b1a7cc26f9e76d67ada3c1db8f90f9dcb15727e4341812b74a32e5fd6b78a9fb294a9ab29d2af034c96d303fd34255771945bb0fc7eeb238dd4ede69d2d0f50ae73a6885d0b41318394350ce9ba33afd660ff76df0fe06bd3fe2a6f7bb65f9f67b8ed259cfcd03c337e03e0aee1d085139a33c436a402caa23a685db81f743ee932178f2c45fe2877238468f639d1885e9fd3c93dd66c2d7214cd72c3dc7f66f56a29a471ae4ec35b1940a5f827af286adeae98d0ceb0429722faf94534418eb2e44d6356fdb592d29b1a6a86ed1de06713701d129ade08c238996ff75f9c569014283927a479fda624f2379aea1bc4bcd9683dbf9e42e2560cfb8fd22102ba030beeb8bc1948fd54a2b74752c9bc770502b6ed4db8f6e0fbc6543eed5bc6f3de4c035773ed860db1053106be551f2852dc514a3d1670f5a0ddf2e1eee7d3590ce6b62ebebf5888293253a95d0636f2eb28c354224a00a85599187d4ee06bb314ae573b0c3a12639abbe04c2404e8e566919e213bd18a26e15c9bc966960bfc8da7a32e374f2e1dd35f78650d570e678c9bb65d818f34e4f1dbdf2b816dd08a51535324e611a8554d2250258e4b750c75e11d530e6443fec00526984a9759c56b2a9f3089fb3ce8f2612bb5d388731b404930b0fc64a9db1f8f65c07057634c71f4eb70bdb1250c4fde6fee0ebf083e2590041128bcf98caa480311f73fe9ec3e20a7220ae1d2d5d2aa921cdb5d33806eeb10f18b837a71247310c2ea7f9bee8fb1bcc3dcb90e5758292482a45f87f6c572386c6e3701fb824b840260178dcf12376040c086687a8c9af0a39f8f4b1ccdf3a74d279436020ee031e483e0d9674e517f53d382776044fa98140a04435c65660a92d7d3b58c2553f90e84b9ea609a6093f60e0a9a891f014ab704cc581c85099a248e6677ca638af0d60e5f2d9da5cfe6dfc918c055e64760d78d85ff102ae4f54bd2fa3b67dcfa499931c7946455758d9a29006a88b139e915dc51bc7e16060a37b7b0347f4a89526933cc28d944cf826deba6c0ab24cf87a74b501b7cf6dd4e780036b2b6c548c0f5098e52e9a036a7928b2631b240caa58dd34b89d8688ef091a6b0585b388cd1326464f09809434c216d1f628e2f21c2e0e10f78b8403bf890acfde8f0a1b38755ac5e926e708dfef160ba87983f010a654ed667d11ef6463e1ec921a2ae204df4a792da6752073b6716eb215d40f5a1b19e68353fc00e4db74c3ad9ac8a38f158690305a196b75ecc2339f27b074ca64a7328d68010bbc75d9c385a474ff36b8dd9ac325fe6d387515fb2dbcd76d576165e1db47a3ef75cc4cd3398f20da57a0132edf9be9a22a74451d4649959dec7be671d219099b0566501f997aec122eb3d22c34581c141cc818b53a696db650394a2785afdc725ec73d379111ebab0c1a292265d3599e5d4c87fd2d571a0cb563b5760882f20b048f6e684059a379d13b31e6b65890113748327897d3c1fa07348e0c3841f99b44d64462f496bd6eb4bd9159b3ae7a318df2a06d96f80dc9302cebc0678d141020e3c5a0caccf61a9bb2af58a4def44f01b89f0d619d0a43ee455f4bb9636ba2e1f6fa2b6dcb4953fa5222fc0ea08dd36ea9a5ccff18dcd48e7ee2a0a8577afd9d012ad1cba1a5c0c26b1b546d411af7b22befd517523b06e4a173eaa0a4675d1675a884f9ab87d4402f7abf22218ee42e5ce040b5599ab7bf52ee1d74cdf439280026e80e3ec1240eef68d527ce6ccf6c97ceb8e796ef745e092996702bd74a27830c3aa0d2ca1e9df0d97e0be68f1f9b42397a56bb75551c1eda75c6c03e40c55b4aa3f30115bb1ced70b5403110dfa02ef1d1c579b1c11db2aeb2bc94af949a824b6215ad260bf48eb0c9fae460c8e85ca0b4bbe927e8e84b879c6d91943201834d405786e6818d00030dd30267b014ba3a4d592d3c0ea842c32a6484612aea1ad2ab6bf8ed226583a65164edea9f7950c596637bd5850ccee4becbad08d627740787d48233b06c6df21772225900192f21d7f525deb4a3c43b13a19a41e70682632e4d6db6396febc25c8dad39ae2c165889b7d60beea3c038f7fa974390d970a36771132f1bece686dcb47537f047d6c39d4d513ed0815103f4449df05f0d26798ba336077fb1179dc91e0d93c02f4762c319f8838be321fe8472ae6a1f5c9ef619dba1825f72cc6008c808d60b37c7b13e80ae5e74dfd190fe0a68db24dcc7a3e1fdb553c9e5b0af587cc67f608b34a508617f753ff339af40dfc819834099584fb0029cb35b6228dd52b2313f2d83acbb12335b583cfb16dc85a7ca0d07e4aa47f4c8217f5a3bd41e5c41d163f2439579406c9c7c1b3fcd41b4d9198c515c09392210b782ea26d01f4dafdf8c016162057e6154a6467f2eb3fe90075bbe98399fb7d0fb56b593dbc947dda443a30f02171522cf7d921e50207a95a146452b0f4c5c13911e9e8bc496bd60f47589d7af8cf2ee196ebf128eaf16b05a9525d2d8edbeb33ac0d352d18b94835a9a62d727153f8ae1ca733fb8e40f6016aeea7488212f39054a3b284d5ea0b3cb900af1718068da06d4da01612f53c5125d6f7b386a1c5b48c778f7656b3556645ee3e959775ed656bbffaeeafb39d59baec1501118a0670ce6d819948d02fd3275a1093e613754c6ce71ffa03e98e8e49c0d0c667678b52bca684425f0e1ba66244a1bf730fc3fdab78a6d4e179992609a7458c5a19961d3a264ba35d01cc04e7a52c29b59527eb458d3a446b69e07505657c1f13facf7c34a933e50e18279cf7d7a7837492dab88e4bcb7d28389b6582cae7b5e0e041cb929c0ec7f0685706af98dc4a0cbf33a7983555f06712ccc37e4be7dcfb4a9ad240b522eafc38852c303456a02b40a2f91856976ee5845f81b38d7e2cbc1cfa512016fea9daaffdacf6896fcda6cbebe5e173494df7c77576118ea0b0ab65460c1f2378195fb56911e65c37cd8bf59b857bd488262fb4b5a893c993cf4de64ee96e9eb6a0be70fb4eccb545a0b244bf1a699f48b54b9c82b004aa48612bf2eac713f6400ccda45a6ba43bcc7a6e9556962f15671862548d26d5cb385f82eb7433be076c06fc80025dc040f12853494941735613d314d165228f61a34014717cff7aec125a3f255f2bb08301da5274102e4a7a569384e8031f0324dc3927e329e0440c48a1056033c0f4cbc77fd481c0eb57ef215aa85a376cf34e9121c84d80f15a449fe26b8f13d2acaa5cd11e5d42e3495188f72c39de16009f476f0042527f9996eaff2136a3146b1c9472be40d4c3790efdb8eeded3a810377c70507ccd3451db0ff6c5675728c8751e1e621d76372e5c259c7310eef41cf6423d89a93ef5327bcbf8660e7d762a55e7dbc2467cf2629098fc5f723bb3004eb8e034bdef45448ed694fe58b9ff933047b20059982615741a5eaa4a991f8ec0128bfcde32d6a7c37d28365991f815fb4c45c918ca1518cbea30dac226bd272baa75f36a1d2238163ba5c8e6b18ae82e42b8d520bcda77f8e27a0bf06e683973beac56cf7317c31ac305095491d2252084eb89549fb015cf4ea33b15ff247ccb8cf0a8fc54640290f94fba867e66e2eb3367f070b99cc432ade3fe18e00351a2b2527377acdc9424d897812d3387d3180f1276bb9856cbb1e2c14df875a862cc3e7eb5f84ac1aa40559f7a21292f90d5f3df01b737a8789b97963b4b2475faf124d8edbac2f465863ae1f59f7d57da65a9b2d8ad397343a1f05c3e7d78e193e920e8688d57341f5b16d97b71d200a95c87e5e2017799e64e492d53321c3381ab01738c4f3fd067cbfc406206d2e07c59ea18e1e22f0ca1fb8d7cf8391eebde8551150fd3ca58d6f768a2ca08047ff3c87b57b03aac1dfeeabcc36559928fa58bb8b2e9fae422f53a028640bca6af4ea8e27adbb23fd52813d86da478652e7e704cc141e66c37522ec64707a4fe82cf1d94ae712c42d6aa6291907fa02cd26a287359d0352fc7d6193bb3c04ff483ff8ad89755f205938d52ca43f55bb3e6f8959b91789149afceaa116a774b4ccb013c6d7e31f951ed705d6ea87324f2ca991ba1bc9cd889e6736dd725f7ba60b191ca0d15c2c95bb1b97a0bfb614b7b7d4de369aae742f65b34436490a7cb24330c585d0d7096e3e192a7a242ea1182bf99aba952bb7c1b99715961d550586310fdb1929d709a167aedb3fe69fc2c285298bff0e642c2b5546fd6186aa34df5e4b48154050b1e4a7ddbfff762a7421f6739dde08a4cba8574606077eb7e00e311a2094fbb9f2abf63b018864092a6594b595075ff4eee357eea837e38a8d72a3fabac7182a2eef2a48a86a0580db935605c44b57232aa2aa80892ad7a4097467b33c2ed31cd404dd03867f63ef6491990322196c0b2d0badc990f236de84071ed8e75c60ec78bb016a572f1645853a82a6e403dbab4ab0e3a6acd6c2e1186de1dc4aba0086c7a9291e0c9cc52d37216a3feabd26e6192600aa74b2ef783c25cbfa619bf741b9e768f0a546afe7c9554b73a574308fc69d6e58305746fea774d7e85a86be24e48d428353f8d7b725d6ad576ce3c800cf11ab6c5da4ee2852f5510bdfd3bdc7024a6ec7b239c9487a76f4b677fc6b143ef2c24a39a7aff87375a050449b2955bd3f28f1ead218580c63d559510986012f2402a23ac99cfbb82dfcea84ad0a8bcaf76e56718e345a4bb8317d258bf88d53c3dc682440e40dd57d6c05ccc3ee3763ca581c7e3279f5946bb9c59a0acd94f7f5ee8887aa218915704f5ba4c6c30cf2c4ba76adeb4cdb81adfe1d2948d988f8c99aafaaf0d2b3609d349af759239636be83753e3b560a518b54f70d29133de5eaeedf6c55e0c041176de8b803e633401fb9210bc530cb1d0c48f68ba874141bbb6c3ec5eda20effbbae614615ca2df7b7fd089394fd21990feb414b9fca47891b1e6bac36f94412d08e226ac8102b907b2dc9f06590fa16650272dd19bf8462763c55445e1a3f4b568f911609f5b204da77da36c3fb0f6b74eedeecf6c9e1560d01b1109e72b0b15421ce266cb4b494a88b7923c2882fc6e86bae55402fae2281326c2edab9ec192f6db9020211bd4e497b9b940331a8c84afb70bdf0396a496e6bad75e22bc07f7ad3f51944986c04f1941569dfd03f001e34b09c8224ff4d4b46e9c1cc7d93e9181394ca519d67b925ddfe8845d54fa298c0bf45a84d6a6d0cf3b74650420360a939693ba1d9afab123a812156058e4fd0d215752d6b73b9766ce650422e2feacce56c488eb88e637f93a9d60d0b8bf10d08474d0d6c287e09acffb9f2e1c27fcdeab72d979c1f84440251818daa09e9f43ae16077128dfba5e6aa14cd55e4b25fb41ef40208e523ea43d6f024a7adb0986ea9f17cb35f58c291bc9752d41b5d1f2a2dd16e4f77c49a3aa2bc8a8be126856b1dd4c27e2c3248dd8706a220e0b060a4099d2d9a4c3c8b1422f10ca7a49cb289602d30a0ab55c4552925bc9e3c920fe4b55109b25a4f7850b964a97c662b4001ac00bec815e08211c9b9887bf1779a653f950fb36b857b610d0030e809eab35c91889c7ede961d6cc76564a02ed8021700eb47940d4097361ef412c5a2e562e563e351993ed9fcf941e38fcd3aa7184318fe293c3cca26a83b0bb1c286dd1fdcce124bd587897081ba762afd91312265fc3b174f45974c58940c58fa68a46656e27ead1d90e708b20fce15d027f173fab9ffdff117bd473041cd90958aec82326e997efaf1b96112986d7f9e61c70c2256efe3b22cab419caf841a69357589d69c601599348354bf4675cf0a85ff7f43d9997312e29e45a0659bb37fb299e479fcdec3fd1a8520043dd94e8223197a03960baeeb6635472417c914315e039802e185a1de02441c05be8fc4c10e56105086b63918d6c7c60eeb6363877547db62a3bc4d3cddc06f798cd1277b3ab8db727723befffe3a7af11d025ce47ac3629c399bc8b2ae54efaa67792934a7cf97975a45e156f05242aebad99aedaeedeede52a62403400ee50dfa0eb623487c70c004ce661fc9e94467b3a7a521f961a2019ca5d5240ca10752b6f1b36f2dede7055080b2b5b8e2a88a0d095865ab2e2385c97d2489eb081503741248f0029ccd7e8d016cf6ed8924885a0c94584114487076cb119870b6fb5dab76083252b2776d2f12c6aa935e778219e248206a5d42aeb508b5cacafa87e19582c2518b04f39b08ef94328269d55753535252566dbb565c726aa16ebfa00695e65230a8b39e41eda8ae7597ec525dbc2ca1a4b25b79be5db255149cf0b2cb35084cc85e6d8b47ed692694547b9bbe842f5b09909e4992f742d0bdd049d3c3210e4cd4a79829d00bf9ec73154320d065e071f48aff1f4ecd30147a1af1fcfe3b871cbd0ff403d35f04a293bff799f7e99d5dcf3f8ed6c47751bcf9c7d1cbf3f3133e8851472f1a7edf87f2841ee879df1982de091ea8ca2e7ac3d0f3c865ac3c26a8f359ea8139307795634a0294f27dd54959b9ec6fc5ca94ecd67aaef6a45dfbebaf27eae80f4ff7f9e34d76c94cd1fc6351479dc7fefca03f55308ba83d3d3dfe3f9e437de6b4b675ae4e30d3f0aa88a51ad4be547d8aa83dfea3eb6c8d01c237df3c3d29213054186af6ac6a8f7b5d7c96a66e25e39ef2f8a9c7c551ef62b9641c08d62fdf26a75e944735e5681747fd5dd8abca99f56b76995e94a555294b33b2f97b53565bb2a75e14e99e7328eff11c06ccaba55a7320b287578e7aeeda931a74b34f5927661a5ebdc59e97634a3253d41261d6fece39a61b5e894896e6b92ab3342fca0bafbc290be6d0d03a810ad95d88ecee6e65998490c14fd11c545a3865657edfed0fb2db2264b74bc8855396165eb9cc3ffcc2aba9f02abb877382998239d00b78055ad51e0f99f214aa18448b4baa98735af8fe602e2abb37038f0b0fb27b37c8fe22113f1095783a88a27a3508a550833c1984575df3b4b48f7f109c6c41caeed920fba72210fd5e94cffab4ef7db5d6ec79298aa6e1edeab6e59985eb4f5938168e7554bfe65b6bad157bd9b272b9aef83e19253254fe25eddc76083395712b97e17f75e57ee528ea6d873059df99757aae663b8429da38ead65a6badb5d6e644d173ee61e7aa78f1daf47dff0782f65a2539f762656bb55fbfd3adbc50b9955ff917f7d204b732612ed5141eaf9e617be39d5ddb6d470f57cfd6dc5c8dd05d4cff7a866958b1648bc562c9f6eb2effb09eb5b61b08e8e70745ade779e72e5f1bf9c7bd9ee779a1cf52986c6152dcb6d6faf09993d65a4b86b5dafa83dc1e8f23cff7ec289b47e557083aaaa3dcfbc20f64b158e5df07c151243560ee706fd1ddc1511f4bd2b57ce148d280acac86d5ac32f52bfaea2c4132ebef65e1a29b6f47f52eca843d0dc82d6f297e4c817768b5583031d6a7f8919582c52ac73216fbf2c732f6acf2168b855e79de5ac2945e8a1bb252e0fbb1ee591343ab759261c882b1ee0b9b564c4fc127e21d82f82cc81d4911b7c0243fad5564df56ebbfd6dff2d66a3968037a0ac6f1ac5df30e3e13df1f88cfc6f70f5274f378d6c4c0e2e1e6fb290847ffce1d58600271d4adeb50f45f46c68176f0962aad9904deb0d65ab97855e94df2b86467ba48de4daa954b05c6bf5fc3fab1da214c2773f8acf5fe361081ad91f597c53ad3f14df25938bd99f5faf1b4ac4b03ccdf9ff9d7f8459e4d183cbec693848df89ae585fd785ef361a3dff11ba96be48f974566d61973c933ed568a928631c34a18547c0b4c6a2eaff27673a4f871acaf37f1ebadccbf84f97bc9677db3ba2aa76452d7609e84d5d04073a69e3a8c4c43d809037b180ca7373fcda7187f987fcd87f914e692cf3ac9b306e65f3ffe8fa5fd78cf1407eb2f0dacbff7c9f3ded7082b61a8f97bfeb80ffb57cdebc686ac21c99b33bdf9f5296cceb495f2abe695c299f278b19761602e0cec759aa6f9437626e655905f8a37ef3d491679599fe2ef99c2c633edd1922a70cd5eded3b434f1cbf3c7d2c47328f63267579fd15c4f9e30f26160cef4e60b033b7f90cf7a983385b9e4c37c2d6760dd7fc1dcb3e6f5e68f1fbb6fb2605e050d0be661e39b250cacff0173a6ed2a692033eb73388c8a33c5195364f37d18eb7e6c1cbfc78f95b771ac39bf706792c5f2f2c55e663d2bbf7065e148f1ac146fbe706af4434e3e4ec93cdaf246de3753c018c1a468a56cfe906dbd89c177e123d749e57e7535979c83353eeb5f258efb25f9e38f23ebba2e7971dc9165455c43bdd1394705727f481a0463a2188fa878ef9d451103a96788a454ffc54f6d7dfb6957a9a723d9d1cb5bf5af4121aeb536a4b36d2847fd53fb0d55a5ad4079dfb58add4121e5ca825c7725d8e5d14b01542d397c3bc4d9440b91edf3705a23b9cc3f74db4df6c9b6ba267e4a664b25dbf76aada9549f7ba6e109a4a3b27786675d62d6b4abd0200ff972ea48559490905ee0623d00380d3399cf2f0a6698f67b5f772580ca60f86d94eb90fdf07df7bf6757b1ed50aeab52e5892c561cc9955cca9521ccb487aaf8771524abc4547ac1964c360966fd29aaaa1c9f07b4f37ec63bbbd6baadf556f7bc7aad3675aff551d38618a8b2c42e572c4b34f1e48a85045e72356b1daa4e348ca08a656ccdc82fc2a94af5428d5cbff6a7b45cffa7d664689f4ae3616540e98a6c1fd75a6fa933f5a6ce5e6f65603e7d65cbca293ea66b6d05d6ae1a42b54fbffd01fae1b9112307ec6367ea399833750f10b54fd770e84f71a69ea36bb0f36582a20d4409c0a142b1a2bc71efbdf7de7befbdf7de7befbdf7de7befbdf71e3552bd2fdb1257df388bad3d53f0ec5d4389ee32475db35d6b2b00e85ae7daa76bfdd43edd357b3e91dbb3076a4fd720f76fc9fd2edc2ba8687f0b97cd82dc4fc62037142fc84d78a006b50a6a4f77adafb44fbf96ec442e6707b91f24bb84212707470738383739b8b9b199b2b1a9c1414d0dcd0d6868666c30332303858c8c8a1aa8501143839898d813b1188c140c4c8a19a4480193010cf68ac1eb656a314d170c5caed60b5aadd20565494691e4d8827164b180c5129d10c5304b18824d80e0c7c4f77958b2777b97ef5d410db2d6aaa0063954a7e046670b22f9cb56829da37dc5d1de9d0de5684d0cac472244667dfdc202331c712afef82979bff7c00fafbd81697f7cef26dcba9c297e15dfbe1432db6fffb106fc9a3fbfb93a855f43f1acf1d6133f3eb3b4f07f2aee0809d7501d7545cb4f0cdc910ccadac04cfb29b7cebbba4ad515ea04a369696d822aebc712ba20f73fd1a609557bda6c322dd0e50252505566698dbb27685b4c196b0d13f6f66f98150b0670d905738bf957fbb2dfd93f8bb68a54b803af22206486596b613058ad7e85d5b7150613dffe285a11068359d1dab6229daef88eedbf88d317fe9e608a5f21401e29791b15fb495ce54d14ada5023b7fd887518100e9e4ddeb97b42571ddf7b395305f2fe2f465f6ecbaa335d63bcb74346c3fc78a4d47c5eff2268a40c86c675e2634557c8c9731583c3a76bd88fd2d4e710ce2fb59c6e0ef3a7fd411a79d79f09c1ec9459e9dbeaf58141dd7c440925fb3ad89a1fce174bffc9a819019763a7d678d7fb5912eeb1a7f5b06aa7466da566d556764ce34cca6795aa98839ad62478861f2e8be92b7795f82a75c77b9ee9620421e9db4f2726515fa94dcde14923ec5ca9b7c967ace93b06a2fad14ef250ce9689ff60866eaba9691de6c45d1753e4bc5777dcb78fd10bfbe23591a10b5a5d0b326d499aba2fdfdb6df6f642e04ae020d14526426d4a016d93efd2b868882e8ba3e537fd7a7feb0af46d987dcd4f535387272fd9c5cdf75f5ac6697aeb33de7b3b43f57996971bb07ccc6595ad8542db655387a476a6eb09ef53506b83f787fbfdaea7b6f64f3701d5f2cccba72a6378bb58441c435372a16a72c597c2c4ebbdc968553a3cc12d2b96271ba922fae3140f883ad9644e0dfb3c6867ba446fc6af3ce1ada76bfdabe37b219d9c273c8ed10cc3434b19d32d3de49595a5865fd4d5565fd69ef9aaa2f4095d3f085c433b216c74afdcffe17c7f03e81eaf9837f8080f04ffdf407c867f5043a7f6238ea9dff07a80254dc16d1bacfe5a63099303a52bedbfdd65a6badb5d65a8ff4f0a77319fef6c84ccd244198ff7d498030edf7e7d4ace9afd97ee71ad767377d2f18477777777777f7cfbbd6bab5d6dddddd1d7477ef7eadb55aefb6351cab8ca3b7d7570c3fadf56d3dc1cfbbd67b14433bb692f9171b798b2d18ab4efa59d599f54145a7bc5c3da9ec6f7de03d51a1ec0080b0533ebb67cd06cc296ba96a90e5627f506b0d557dfcbf494667de5cf61f1b84f1533395f128f4a632d9a372d4dffb9a6bb75cc9fe1789c9699d25e76fb9f8ac6221c114bfdfbbab94fdb39e47f9acc6cc308e7a8d41762d8e84f93d599a9dfa7496e651764ac6f3a87c9686cefab186b67955accc9f704d0d6d13bfc600e2b39e758aa7d764651e1797f9933036323a3c39f5a8bcaf38edd359993fcaf33a3236264c986d11ccf48bb25566fae9b27ffa4565ffefe79e5fe7fa1e95a535d40f8afecbc898a6134c7fc1e92ea83dfea3b51ef81787f7867f311032b75785cec5bb7c5e3cca31604ef994a350b527c465ebc44c7fb2bbd75b1acaa12c959dba8159f37df57c763f1b475d06a97f5ac9a360507b5c507dfc1b7b5413b33fb553afe3a84dfaac5e5270aa2968c9154b125c320bb93221821364223508f62e92304cf2c5f2c67ab184c1338bacdf4bd49a8c0c54086acdc64604df3eee81984fdb04b9760a72fd76a20699ad447f20571d0d1c516b3aa8940ad41aca0325d7ef226a8da77dfcbbc94f2bf505728d926b3b69a41e22d76f216a2d46fbf87712206a0da86b135a0ab5fb41183fad564cc8b542a14621d74f6b1572fdea968c7baa0766cb744dc8a66b43dfb51774ba0680b7c9791cb46b32b44fd772b48fdbd03e31806e501b9e9a991b36db17ea1a8fa1aef9689faeedd03e40dac71f0bfd2ee74c1de794a16b417274ada87d88b4cf54fbf8df68b191aa8182e69cda32e4c6e2d135bfe2a36bbedba16b9e0548d73caaaf507996aa28ff205d732d455d73a9f6f1af39145df3a9f699ea9a9ba0faf86bb1723741d6c11813b8dc39a61ddd8e149fd1e09eacccea2a776aab526b3592586769a22ef7c398d50c5be38ff6c7a7d6393ed92fcff129f799da44d51efb2cdcb5c7be88435cfb234b18c26c86d97fa8ac88a48dc0f00789b1eaa42c72f5bd233ac64aea8252a014b8059c82e1267b3338c2f3ce18ab18ab8cb303a56a8f8353de8db102b7e47e0f9c02a51cc5d9ddf7ee89b3c3d981542c7249c6b1dd8158873165dababb5f6b43bf37f43c128ab7fa43981163d501a39e6afdf41b2f6e5b8853e42f392547242b6b6a75695965ffdbaacad1a2ca39ea9e57ab55eeaf1888b5ca5fe8c1f2775585cb9e1552f63ccf7bd2627ade077edff7ca61f88121088252366a973387dc11c95199e75d8fb457a699478f0cb12b731975d9471dabab6dc13047a5f226e6b287b57a5ef5c27a8e4a8efac8947d4472d4736d6511b3acacec7b82699f720a466507df62990b3ed1c027f029bb8f4839b553585f5c863febca5177e5aeb2bf4b8acfc2cff98cc9753eebf06944cafe212e338864af72385d0e53b02987e76dda92533b25bb7775aea6fe5234611c5d892b49cd5c6bedae5dabe7f5bd2018dafccbc0c8c0d8985d6bedaa83a26ff3363a32b5d65abbcdd39574aded4a5c49bf109cdce7cdd55875521955b2d7b6019f683bda2b26ceae0685ae29ae27476ff2f53e65b1846d72be670f55ed418119669c5ded71d793cf5250ca7a3d545372ff536e57932b0339f72b032c8b25f08994c552f6b4076797bd21dd4375effdd4d574032783382730db9ec04c5d4d6d6393bdd3d5547bfcc6d5943d5f57151955ac8c55878afd5a5343f9ac272a4fd61355fb35e147adca4636239b8bf74cfb087c163e62fde7c51452af72b5955fe25a5d84a7a3df596d602a93bd8c0146fede8666fdf5d9f72c6cde90882cb4e0077ed6ba6d6b6d2d5be3c983b58da07fe18b57c4b5fa781fe28cc3e67b5e2adf175d6ba9f050ad3d85d8fc799f57bdefbbc0585b307f2c8d75374d776bed597f4e30d61bfd2007bc64f0cbbf6389c791f5ac1f9f7502c0d121fc82a3b70593cbafaeaf8ca11f7cafc431fef8d765dffc71f4c6d11b0243cdb5af8796bca607f3c98036e18b3a2c74e4217fca18ad0c43cd408ede2f7265186a16ba5230d32ac5c3f5f7738c3a6a50cd8d311d42400d62fdbd48b2f823eb6f79135f9e287e8d2c72804b6e3d090507b2e4f249337b67da1f900cc2f0250dad73c88e3f46ef4cc7b3ff7b16f6ca770c04a6a63c6f944ffebdf7de3b8af8873ff92edc250ef24b277fc8c3ef49d6dfa83d60bb7ec4a9f7adeff286f7ac16c6acf24beffcca5a9e178b583860257b4f852db9e61abef7e1fff0eeec5a6fb7a33dc1d0b3a31d4f1b86ad4fc9af4a660d8ed7d7afa75126dffef8c2a6896fb57e2d6fd8ecc243baf68c5f347ec5e90ff0bd2f5dbe6cc9153c6b70b857debcd1bdbe2cf9ba515f2f5c83a3feeb5f675ae37dcd691be5b17ee98dcef5eb8dceafd739be896f636b2ccb1f9d7461f259cec29e2babf4ec8aa1a3f0ec9f90ce9f90f6568a24830fa6a11024d9fb11a7ac07bfc43fc81be4f835b2f7e378fe08fa7b21f63faf0d1dbd61bf55ccd25873787f53249072e7ce588eb83aa22a7f34787fcfd34397f9ebd825f89beefed77a97f67d7d19cfd90f1f0982c3e17036afbc796fed7f58c9dba8f4bb131b6869c193f1bec04c7f7e4cf0de5de760ac3aee2ca89ee7e0e749c06180eb42762d6c1ffb5f48f39dfede8fee7fcf5bc45875b298f6ac325d23a9989ee95d26a018258e9d6c86f776770ca0f000978ce6ca840798727d7da3ab5f03a6fdfac3fb2224ccebb3b4060971dd0eeb0cdf835edf8ec27d7b4bb206d59cdab77fbdefb4e50cf62f0f6de47543b51266bde0f7fd1f5dbdd04b32ebd75df6bc33fdbea845af6b4fdb7ccf113c41e5d167c8150b0932837f9f46fe3ca4d10fefc9ecffc3c553bd4f9e2ae38d91af9873f456efd7d78ced3bd3ae62cf6a7b9775392698e4930cde6738434eeeb375fe6dbffb610d7e83dff6c57426bfaa8c2473a57595f97712665bb517a7e5a890ee4dc2d1dbe46456dbb5cbb264959fba2e27c5674e811af4fdfdfedafbde2a67e8cf3f6f91adabddb7764d29c9912c827de74ed8b7877797bf33c443c2a2ce20e8ead3afec5c1f86a6e9fa54e6b2de7596c63adbcacaee87a169cac8b455edb9bf04d3fcb4ada4d420fbb7d614f5d54de5a1fd21ef299fddefcb1fb2430e56189c02bfce21dee7c2433aa7aeebe2b3dbe47f3b177ad93a9fe96030d8d9ba10d7dc2f93657ada3926476feb1cbd2126bf96ee6ad7e5fb7edfa5987fbf99746368ad7562fd0ffb45edf8c787a31f14e2cae1b3ca19fa41219dad6d11e40b759d5a4f6b9dd5654f32df9ba90cd9495c187c49bfb2be50e42b9e66edb16dfbcb80197ed6eb4bfacc3a954753c5c411520eca9589245a720d1ad25f6b8f91fbf5bc7b3d9d7ced5b9edae33b21ae967cc938b932b1644bd6e57e0f29e5b919fcb16b8f4ef6f0839f38b3c94532b9f545379750d97edab99f40f79e303b7f0bd7dad3faf24710ebe4108fffe11ae29074146ca5fdf7c9af89813584879b6bedb95f4f7b7a390378ced09ff7e10cde8367dfff7ef47bff7dfae1cf3b3d2690bc274cfbcde368fda2ce4db6064c21aedcb5a73ba4c1e82bc81230c265ff7bbfefbbdff7a537fce1d5dcf0dedf28a743d96b4fadc151237b8dece7f5ea5eabcfbeefda75ec28f2c5291220f2f57ca3c8e5ed5aef9a1b7ed6e0a891ebd7c85164f7bc5cc9f6ef8fae4ba373d67286fbf60c53a35cd3eac5bcfde51ea101a6cc42ae5890a8ca9ffff9c3cb9b7defeda7457efeb8ef3378270c45edb3dbb66fd8b7a1a3357c7ba6feee7e1e61034f7945ae583670944757ff58a56c54becb6371884978c9250ddf8b6775d4f14ffd528d8e46fb0133d5c9fe0133bd1948fdf2e368f7155aebd3ba0417cda7f507b93e510d6a1a7ce4886da8d386f005e3e8fdbe37bef70f1c657f99f78097fcf913c5ef3d3725dff7803956db01d36ec0748f32bfdfb538cdf5dd54a8473914b9dfb17d32fd6b7632492f9d5c3fe49603a6f9a9d54149f159cd14a841f77f8867daa96d6a9533f8dfdb227de7b3761709c3ec2cae2b666d4851f80e55d28024cbbcffe827898b3a93e387c91feff7664903cedf69af385aedcb6ff5566ae4d4b23a4b6b9d61689aba1b367bd406ccb4f30f982feacc4ac24c6b55fd527c9a93af8ce956d66ac01c913053abcbfdb6c9673fc467d52015df6f295083b259e2109f058a1f7b15b833ac9c417cd6d7f2c6436798b3a16278264bd4e95135c83f2b7fd8ebab2d533c0f611662ab80cbb60659f361d8ca2acd49c5189cde5d367f6c25ccd47f74dff9cc65644e5c73bfcab01cdb8dceef1d2a75281fb2ed954798a943595dd71c88dc6fa538945ff1dd78a636f380c3461145fe9c5cff83fca2bef887fff7fee387e50cfe1fc94367f2c71147b5bebff23254617badfb43be031016ee9d8da3a5d559b917bfea5a73699f171eb338daac1c32385a557cda22fd3c8eb171647df9fd360d75badcbf83a5ed542d2d725aab9c781ad9df6cff58fbc344595aedd03c53a32ad9ff154512d5a03ab34d66da5057cc6e2ffd25f7d72cad4f4d13d49a0f14a4d54bed92562edd5369457d8bd364705937972ee2a739d95f45a50d595905eb8c74555aeb63efac4f3dfb6983a3f563b8561fd69936eb434bc3a1cafc0190e24c4dd86b4459b8d61eff9b5ea02a54d12a5465fe16bf6056595869323ebad6d5c7ff47067dfb2597279719fc3f9b0173fc1f427e08d59d5194dfa83a290ff81587601a05f811e59d1c99247f87ef47f2472ce4fbc4f7efc92f6dc87ea640aa54fe51b391bf1016ebfb4ef24cef0fbb4f7c2f59effdd86978a65dc1cff57aa78edde5bac28dcacbc2152db4370592c51fbfaf8e4fdeece58f977cf28867f13b6b0d3fd957cb0018e5afc471bfcfa1103a2a031e260dc6d145422106416281620624962186f014b9eea0e0e2d6dddd1d0032bc100a01e0060016b887d6cdf75df85f6efc5a6128610e0179a92272a4bf680720404247beeffb3e0ff4f011978138daf869f8b1fe03df718eb6c0043fad57471c6d1e3c7c8447e349e57bb1c4f1b1f0f704f3c3f1f9103fd657e2f84ed2070f1fdfc9c347f6fffe45d1fd4e1e6ef601633ada95ca06990c009fa532a8a511e9ef9f5c8180720ebaa05ae5a8cafe36d42de3dfdcfaaa430639828bca22b2897238da720a67399c5c3f5a6b6320bd2dfcd1c3dfdb1f229fb5ad9888c85133dfeebe16fc91e8ceae6d2227b2e19637f159f8263e91cffa5b6ca26b0391e7202272d4df06475d14c5d3c6d12a95233cc3f7208e7acd7896678d28be9f452edb2561be5566e10ba3334d234c900ccd1c9616c4b4d50ae77ada99322ec3df3f60a6285a81a26cff0892f7a4d2df65ade78ffe8aa3811c2d71f40b7de5cdda6beb2964bd556b8f053a532021182f77f4fdb9bd1f149d92fd796274bf3d7f78258ebe8f7e7fd73ec9d444511e98db81f06d124cffd0bd2f4cc5bf677534fc9cf02714ad98be288ae00f58cfeaa8d4a3c290064cd99f8cd2b205c6e6b4484171c5770ee5a8dba3d0caaa6aadf5b157397a7adda1cac6ff7e1cb145b238478f1c758be391eddb7c3bd73ed3cff6742b15985539f52b2fd95dc9bd7494a3956671321930c55cb130b140e851b60833eda8a86b6371563644484791cb2f0a73ebd39b4332b75923bf929fdadc7d8e2676fd88bdfc3dc1747dae1f9b2c5dae9afbde3cba0d3f3b62cfaef1c91f451739822e5c5f6f3e89871499997cd78fac6ae612570f475cb3896b45abc94398cbb356d2faa442540b93fb4cede32f37ebed159fb14e08e86428f1b613f80dded7526bf5428ff29e8ad222d504d3e22cceed91cfdae690b49167634bc6b18ea3f5eabddec5a9ad46b7ad134892a471b4b3755baffd2e295b752bd505e723049dcd9e546a7074b6b02134059e7324c779268c86d5d5955515d52e4a6a6a4a2a6ad7f454050aaaca5353e31aa973ad6b5de71aa971343c134655e5995f84afacaaa862343c332646c3f3ce20b8c70dad0bebf1b1f7743c4a84e6fea9f1931b4808904c910c8d333583e06a651df33dba86228b3461649ef452e7623411448a18f1e1fd0120430ea21e382082f408da4a93a0972801d4bb09defb04ef286825fa4aa74005bd6b2ccd4437f19ea59d786741b7a0a356d02e787f010c3a062d839e414bf5134d83f71a341436682d37681cf454eba077d05b9a07dd83f64153f50fde81d03978ef203497f7170211aa8a6084237469242441093d04ab253413bc38e109ef0f85ab2848610a5f9a40852a44c1023cf463db00b707bea1c00d821f3b073813d1c4c9d2932298a044516292d4363f8299daa820b83b70d4f446b82bf048705be06fc0b7ff010bfd11dc48ef036e23de08ee23be086e249e08ee255f84ddd683892857b93211a52aa7f608b932c1f4258722ab6bade43d09d0d3fec6ecfd757c26e3fd514bbb7d0c18ef0f3454837cde3fd7a016dedfd6b59ef77fc1673cef0f009fb1f02b64d97b10efcf43881ee21510d4c3fb17a94132ef6fa46b30ef7fc467e27b03f1deb8f76fa37724efdfba1fde8fbc1351837c78ff16410d32f2fead44d78a1079fff6ef2b435ffb59d0fbb7d48cf717fe5d55835cbc7f17a106fdbc7f1ba16be87b0b16bff3fe7de5389fe9bcb707dedf57bc9fefef3a4bf3d15483f0fbfb1135e8dfdf91e85acefb7b123ec3f99bf7f7293eb3f91d5ff3fe7ec56734afe3eb8ca511d520cf410d6a275df32d4da5464311f2fe4a489656d44aba0f33bd20346237c420097d1b815401a7172c20f4d788a6a3f7ca01b4cd855e62496c9fa83d34681f206c69d8dec076866d95ed6263600b035b1bbe3ef822d51eff16f05d527bfc7bf04d6a1f7f1e7c59c077057c33be327c2780af027ac05706460402df281cbe5a0e80af11be48f02500be3fe07b84081f8c14c1570aede34f04df2f2fece16ad80bca616fc68b225c60af0aea41b9a703f674b09703f6569c3ef063af083837363b6a68f0a7037f4833444d9c2c3d61aa01258a1025fc4531c19f1647a592f09783dae31f047f3d30d8c29f0eb23f6c4bf637a9b2bfc725fbd3b0fabc64ff1bbe2b107794fd08b8a97c4751052a7c998214a27005852738c10b11f0d75485bf238a803f248c80bf24bae06f0a12f0572509f8835202feae0c017fbb25e04f0b13f02715dada0a3bd9be9bc084255829210948e872042314a18a083ac05ed50eb057842dd833020fb0d7a507d8b3f201f6bc5061efea07f8c301017f4741c05f8e0bfe9884803f1d68eb2108814b1080f0032a1ff480075b76a0831860af8a0cb0278219604f0929ec5979027b5034c0de951a606fa7057b5237c0de140eb0b7650a7b549fad73c0227b0a0737b0011435a0c113523390410c76f85e61c1370a4ce02b8526f0fd92057b3827b077d402ece5a2b0c7b402ece95c80bda617602f091860efc9b3b51692ec2bb843f00d8317b820aa052c70224b134c60d9f508f0dd59c1170b09f06562097cb39400df28287cb598005fa913e03b85027cb728812f550af0ed82afd5b5f50a5480bb03df29c07df47d0577d3370a7057e0fb04b82df06d027cfb86c242df25c08df4bd046e23be4980fb886f2bb891f81e01ee254308f13df004de0877108f047795bf012be07fc03de58fe016c1fb80fb036f0477922f825bc913c1f783e00b656dadc40bafe46d2efcc80a5b4e36fe08b38e9c88003b09f9ae829d6a7c0b819d88be91b0535fe01b0a76daf1fd043bf9f80e017622c03708b0930edf54b0d301be9bf41421df41d4f81e82e8852ef01d45c737d38eef251fdf1fc8e1db033a7c77001fb1905c867f9220dd816f269df4ade4be0b1849c6e6c2b712e6c1cc9d743ae9f84e827930f33d9d72f81b3e4ae2c280947f011f25e9286c543a895712da5c38935410c9d278b0a1c35ea4fb74a32c8d86f7bf551e92a50dbdbff76469395e87f71adeff43b2b4fcfedfd3176569b6f7ffaaaaf835458b3efd4981847c5aa314f06995aaf1699d4a6b555aadd27a953652dab9b475fd947695b4a13a2a6da9b4a7d2ae6ac0a76db5c3a77de5804f1d29fdd4733f3e759d0d9ffa138f4fbd0a54013ef528037cea52387cea5308f8d4ab12f0a95b2de053bf62c0a71609029fda5c043eb5ba219fda27097c6aab58281bb607c09eb1d780bdc973e0a6c24d00dc34e0c64d20073ce463870e1eb0dd0d89000418b0800420008701f0b0e147ea801d1a0023e6f1398bc9b8c17181a88602843411459deb2270b5bd0483b92f70bf8d6823928c48fa2f9f4bb097bb02b89d92c04efd747363c0cc48a1ad9fbea5e021f78520c1e596f2635b00fb133e2a7a256f2b3aa974d2277d33f9766aa7a4a41ff276c29ddb02b87333f9924e0bc8386a81bb010e6ce0c73662031c680e6c60031c0037709a46f4126cf3e8916d01ec54f49d047e298d81ef0a9c321ac047543ae9938051441185ad35f02c9ccfbaa933e0b3cec0fb3712b86bcffdbe000eadec7e6300572b3b02d7f6499760ef246ce270b8241ce270b89c81a61f59e5ad9bce176667a033f0689881f3c7d19b541d4dc232381c2e8f1fd94b96603137063095d67d5f001f51690abceec79682ad14ec52704bc135c3e09bdb02b82b808dc09e11f81a81ad11d8735300878eeabe93be29f0a3abbc3505ce1766eb743fe44d01dcb98dc09d3b09873218e5d69da6a3d7085cb3a346e02f8f5d857e090e97e09ac7916495f7fc9c30697c7f10dc447c0381bbc9370eb793ef813bf746b8971e09ee277f03ee22fe07dc4c7f043794f701779437825be98be066f2447027bd104e3bd358d248df3d2c692542bc1de2c74bdab2917af84e12c47b473fde6f6c09e928987cd651dedfea7cd650de9be9fd6d93a57511ffa4972cad73efede4fded159f7593f7b73b4b6b22dedf3ee95a2bbdbf5daa41cde4fd6dae0675d2fbbb5359da8f77171026eed3301b7d6a6693458baf96268047df719696f6aea92c4dc80f9f9a3906494c4c48153bf26998633b3a2bbe5a1ad1ff7cb5341defe25f9cf89f88a5f5b0f1433ebc7056e6463e3573112a2b732242395f2ded85c7b9b1a9a1f96a693e7ec6574bcbe183be5a9a0e5f7b3f82e9df4bb08d42c256cb10d84e29c1768b10d8521d61cb2509b6554160dbc551ff70e7df40ec32d8647146670a4259997f88e44cc31fced404a58e9c2948e5c39986a09595f99b46ced42c72a62191333585ce74b481bf1b6ef82180193e1c6578d106f68204618561c862d9c0f70007f0f43d8600fc88c306b60a50000f215296e680bff1230c2f02c006f61e3d5e68dd7678175e1ca3c2f1478fb481db76b15351d1db28d034411b258a55749ac004de46594b6bc00f7d8ae61fbf5a9acd06066d173b11e07b20c083394b0b9baccc3fdc41599a03797f6b65690f787f1b6569367c4eca04a16ab0513968f8f14129ff10c91fa4b234b1c9caac2c4ddc85612b447aa29232a340ab506c39d560e5b0c9d220f0fee193a50de0fdc32a964680f70fa12ccd86f70f77961681f70fa32cad00ef1f4a599a01fe86f70fa92c2dc8fb87559646f4fea195a5e9d8f1fe22ced2841ce01d87f71775968680f7179b2c6dc8fb8b4f9696807705bcf3787f71676912787f31cad216f0fea294a531e0fdc5294bebf1fe2295a515bdbf5865693ede5fb4b2b41cde5fbcb2341d2cadc6fbb3902c6d02efcfca591a0fefcfd2591a0f7802b8084b00f318825b086eaa20d89b22801d02d8e21e80ed0e08b64d3fb053a5d81d8077c08db332ff06e88073c0d5ca82de07ee8119b0001eb85ad9ec158013801180ab95c5781c70b532187f00bc03ebc044b85ad9cfdf800d800b806dc0d5ca7a9e0078005f03ce8169c002c033601970b532161f030e00c681ab95ad78006018fe06ae56f67fc32fe06a6538ef02b6e18c87b00d5c6d3570b532bf2a626230297efcc8506ccd7c2d854e1a58e887ac10ee5cc34138ad52698d4aabd50ccbc031300cfc02a70e957a151f9cba540f4ead2e5ba4d43ea5b60a8a5be0d4ad52bfcafe3b5807a79e4b5d8771da52694f21754e87a63f3338b5b9d4a762ba4a5aaf70da4dd977d97143caa6ec4fb2422a113724cca94835c4cc290bd73935ca4278e41faca6b3ae40d2fef945e246620c92194642e877a582b1eaa433566dc99085ed16500a940262bd22986e7e0d9b1ac706ad05a168a547b2f8a08841a9ef03cb1b370b21f3180542e1a8b3a66c06bbeb90bb725135883616cc95834d617107a59eba5a07c10f6ca546593c419b3fcf76ea7e6aa7f297d3fb3320d35875d214bbecb5fb034201d37bef882b230b938e7adeed8d278b75a640ac551e5f4c323bb39ef59d59b8b377dff03e3da2cb1fe935a298d6641f6168e50e3f05a3004621a9cc7d8e55b5670933754d8d55aea9d18e55d96f7c279962d721105419f6749f72bdb98b34465959d76aa966349f5a2e339fda2a9acca7d6aa8666aeafc7ba31cad2605351611ea370786b8bd6de2fe6297baef9abcbe67b12339db11a806853f1636d2b1e2e1df32ffb3438f1664f2751fcab834d591ab8bb53760adc02ee2c0db6b3b2fe7037c23098613438940ae5825a59197a5583db664eb4caca5a8693e5723f2cddc9c56431531e2aace342ca4a972b314df32a836f963710a9ab105ebd78a87257c14c3158c67e144918fe720c76b2d1c243857532df99c23b4c8e4a45c9743b13ea46ea46ea068a9b291e2a4bb3a1c1f150d520da6c6cb02ecb90eb331609c31e599665d982e19b6968aa3ce5fe1432fdd5c2683e854df150c9a4b8acdf2c6fb11f5fafd7bfcadb4bd6248b61994ec54b850a0c53a142a686323232310fc3b68a95dc3f2363698e5cd6270dced126cc7427e77d4c18133396640c77861d5181c59ee689a689664a956a652a687056d66f9a3c545b727facbcc17e8c89897d4c798bc5c4bcb5ef504cd8c76020a0d48f0f6058a69349913531f1e30397e9f27e7c5083ea8d544c59836813dfe29a9d9c28d3c53cc974352a6a6a66ac66ae7ce6fd1d674818e64c79b3a2a9a46dc1306b9ea6bc01a1a9cafd8a796badb53136168bb131fb43d6d6fcab86878ba330dc39863bd740e57e9a9f2bb97f06ef78bae4fe1436c543856f74b91fb6b3b498a7348cc176b9657ec8776ea472bf0cdec95959bf0abca3b3b29d1d54ee8f79daa992fb63313b4ffd164b544ac343857524d6ede476260d8ee68806c967df954cca74b95fa69335f9ccfb8e3d787bc5c4bcc5a91b61dad8c7589e2a479b87cb8d06577bfa6398876a0566ba93cbfd290f55eedf69f2594a134b37365fff851a1a1383f9cb3d4cd3849922699af7bd997c0e0e76bae1c771bcf61302c66814c5680869314663acac91d5327f88a041adc79ec4942b3bcfa2e5c606db2795498f196bc5d6c076676539a83d3a689f2d5f968460a7b23217ae9345cd9960425e9190108d1a356cd818ca34683499f136ca1b7e1b43e54de887d033c75ca2597ac1c286a6c50e8ef7433e03058a8b15333f3a37345058eb821e4589c938bab531211913438e24ab6576f91939a7e7494cb9e23bcfe25a7caaf66c71d4a9b87871f48bc54579d23e96c98abd62774d309ab36951b32206b33adb9469d0807d8df2d64c5ebc8df286f33686ca5b33fd502e6f2b3edbc4eef7f2d672713a8162eee09998a4efa49bb751fea242d7bdbc5d1b1a3aef95b79cf79a94372265ad3d313f7ae00541eb0d8262abc3c63607c3dda5bd388af3232526137b128efa14bfe2bb2caec5a77c4b52142ffec5e22c0d6cad143bc5516b25075b1c162d273b4b37b79fd8e8e46255b5f4cfc9a1f92f6f373c8fcb5b67791c74f36779dbf973c50a1daba3e35d7574c496ff8f98ec13b5e40a1df2c67082080bf22bdbc9c330618845a2e8b8f8d719a205462e9e49ab856bc58a1649a2645c2b5a42f4c028c160cf82c50bd20532232c600fc36c25325688c5fee7e715fb16626f832d690364c95bdef05f5a0f3f8c30dc4db6488f6c164946a1d1427913fa167cca5b3b69f13fe50dc9ffb8286f42ef8289c5bf286fff2f2e0c0b0386778501a385f216fb5abbddddda7bcbdbcedf56faf216e5c50b18e5ad25f431cadbfd18505a2fa3bc7512932634b115f33060c4286ffde45f4679bb2f6336a3d1802c1090770502125bfecd44e9dba3bc8fd696b7d68cd25ffc5e79bb792fc9dabfe347822ede2b6fadf7beefc98fe1c3307f1e2c6f3a0f36938fb920818072727e4650508e9050cccb5841e805c4cfcfab84d24203f133fa8047806a139fe2ebdb27b5167e7dcb546738ffe4535b65f6c3a7d6ca8cf6a9859af5f0a9bd92ebceea72f8d4365911d811e4146161c287d9129a9b9d209e1a0b484e94488c2230c4d6955d47b59696eaa34f7b6ac70a974c27f9d48f1cc99584e8616104caaff82e8b12193ee55b9cca53afb2722f7ee55f2cce1e11e0538bf4b1769d822b8d82af2768a82fc11224b0f22350d104ee3cb6c8b2f4bee57299a6399ae4eb35c260b0f1befdf7ae0f6384050b7286cc080b25325668a209fce51c9a68a2096c730e393c69a2091ce61c72c821c9063714283fa62061a5f7291a0626168b758c8c8969152a54acb02b5678d715dd72ad5861cbdb8c8c6b450bf15e79eb8101411004892002c49e9b8826e2c79004979ac035cf70c18f32a48ad27b99d8cc0c0d0d0d0d5953debcafc9b1216d6c7c88ddecd0d0dcf004edd0b080a476a2670c22280cb148ebb8f8d719a289918b3fc2b566e076c133cd44fd7843da94dedfc070707272726039e43f0c632cb332997795c17668686e788276685840523bd1330611148658640677d4b713274e949cb4e0c793c4a5f7e70a72850ea9a3d3d22177765a2c58b4782c0f8f77e569ddecd0d0dcf004edb080a4d6021f3e7cf8683171e2bd6721cbf9162b34138f9637f3512cdf5164e5cd7b5947e1215bb35f61858ee2637d7cbcab4fcb091d3a74e8b8597e64816c756e2759b030b1c33905d8f6820c38601e3e8010e92bb848a3001b39d1184560887d02dc228072e1a3b54081b4a3044bac70c91cb9121309acb03042ba6005194b2350f1837d8b537989dd8b7fb1473687ed52ede90fb17d522d9395629bacac1f08db29d68a3d00b63b560e26798258d041c4091da316f451540b2173a816a010c022e57e1babeba741cd6666cc08aad584847068d0701dd9d9a12d39b2336ba107a1574f7da51ac4d7771dd45a0fb1a5ce6e983ef5ab2f3c9f5a1c1048543b3ef5aa284c21850a9e9f999c153f3230173045aeea175c1f21e5a204c97e20baaf831a81b1e4838fe8e46c6124e3533f42120369e7c511af0275a587590b5dc41150f8b1c07224957c4dd242283935113fe69038a5f739ff18e31193e739ae58b1a284a15bb02db4e05d5b3082be8fe8c36d513bcf16329a189d319090385152c25fde81ab4d494909dbbc63079312f6bc6387120ef38e1d3b9294686c7e1462c2e4471d7245e9bd4eefecb06051decc67918205d9a2bc79df02072551d4d55166b0a8910535fa0f63c908fa3ea20f37278acee19cd013274d96f85146a2a5f7b2d80a2bb0c0020b3116481e9e584f4f4f0c1b2386778d11fb59310353c4450cb3a8a9c15166b0a8f921c88913274e9ae05ee2db891327509cdc2512fcd802d9537adf820fe9f343c23055fc4f7933ff27c50fe9a2bc79ef02e705f9e2058c666934ef4a8b32339323f3330353c44593e0efbd4a51acfcf88284517aff4206cec398a948f1777661982cfcacbc35ee6737c8060579d7a09a6f14dc5674e8d0a1a35b77043fd2ee089c6e78154182040912244851519020e137835f90018711601e3e80b0406ce488a3b83e0a92fda0548e8fc2f04184422a398d642071266faa3d7e84103b47684c7ac09ec5512d3e1504f61c0c815d07d5a7ff06fb16a7722e8e7af12f16678f8eb0c86a9227e70746c70c2b443a4648e0d342875e22c613f62533a9dc2f8cc4429016e5cde66b424236356ae8d47456b8476ab2253e2cbd90f9d4a13e9b506de1eb3b12b5d6f3f53d893aabf928333ef52c1e65e453d792ba943f117dea55b03411a4837021166972f33b46301648829a266705104c7e1a47a48573b68842fab4b5bc7af86109ebd47438b202922b796e49fdd4753c2c1c013d6d2623c657183e5f7f1472ea227eec21794aef7b5a68c1c7a7bc99efe343fefc8c2e5cb818ef0c3b6386779d41e4a7cf16383827d213570b9c1e7e78b58484f09789848484b0cd44442029843d13e13124857098898888949cccfcd84b2f4817a5f72f1a068c183162740c52868c9ecd66425648c8bb0a3592a058ce8a6ff7f29603041374050d8ec84f2f2d2d2d2d619b75d061097bd6418725a6255cb3d013253fd2c859e93d2d06043463c68cd80c32282856abd56236ac0d1bded5468dddfc8d116ce79b200962d16ab55a4f702bf956ab95e44721b2567a2f4483460d1286d941c06043e5adc80fc170e75827f9ee308fb116e2471b24ac730b01d688f9f710d8e986ef208a8a8a8a8a8a8204297a6f14c5239c81b0adbe20030e42b008a2cd68725630b514223262e0b4407afdc004c3a7cb91157c60f2a616b01fd1831d094fc2a7f815df7916d7e2683f0f0b362e8adcec20d9817692d3d54a7ad0d1e1ca6cb8ae9fa84a6e98fe2e424a2c7a51ab3511a241a3468d26366c0cd9a121ef3a6464068b7b83bf6b6e7e7081ff1e71bd68263a45ea43f9b4ab7205e2ebb7116aad715deaac9dcc567cea4a443ef59c33b9ceaae8d3bef225cea44910d90ae70b9db1c9a97d508b2fb8b491723e7cda4c492c8cccd0917695b6d25069ef5a4bda544648be917af8ba44e6614428b87347c14e3afc0844d24aef8166cc080a2a6fe6070591b5f2e67d4d48a8bca12f54c2706bd81a35bc6b8d582dc76629a8c5e30809f990b483236464068b0b050afe7211142850b0cd454550b0e7a2222838cc4545450f05d7ccf4e4c7662244c668d41a35c818ae79b441c66cacf0e39039241b2263998c35c964ecf5a38d8ca13632d6f9da2c2dd5726c96825a3c1326f8cbe3259b09f69830c136e7900313ec39871c98e03043799e1f4bb255debc6fb95ce58d86f9660c77e9fdebf5b0f2863e2c76b3b79b77bdc5787ec78e1d3ba230618105d90a4444444444444182906423e1dc03b6d51764a8611c58c03c7c007194c81219211a1c1f581899010546acc16d25871f5eb85c4655ede922d49e3642f5e92e8e7af122d88f5cc9d1fe1fec4c584482594da23339413b767874dcb8801de9ab7e22fd3abc8882d084849668d4a861c306bae2669bb377cd2cde263643d3a4c97b799b9901c3344d5eec9c17c7c5a71d65ab5fd3ae92ebebebb712b5e6fafa6da5cefac9d759cea70dc5cfa73da5f3696f51fab4a9a072eddd1335583af2c30dba2205cabb9aa546d5b4681b167f3543a303cf809d2f76faa916e483912f42e46be756c24e3e7e64d1f871ac24399634ca1f7e6c99477ec8c716e9fde8ea251826fa26d9e38df976c2c4e4a445d730b1789bd88349f8cb413a097b49f826619b8304e924ec39081ec31c24489067f251a06418ecc7b22c5b240cb397be55de68fc0fef2a6fe6bb4a183a1fa1f16679f3de5c42ff55de56fcab611606f3aeb0b015f39daf976fb659074e921305a843c78f2179719895bee64ec23523f9b17db41723f9580c1c45f1c80f3d76ecd8b163c78e1d3b76bc37ba5cac56587b3a866bf6016723d8c624d40289cd2b1521828d549f2333b871337033bdc0bd833b892ab5a7ff855b04b54789ead3561ced2b8ebac0ad25073714bdc5076e2a2bebaf056156fb902b9cd4a861a103c388fa29574771a27ea6d01d33ca1b0d1a4c356cd8181acad9666d36ef6a7bb20405ca936fb2f417ca8f9e57de6cde83cd9c9fb6ad5e05b1f8fa466a6de7eb1fa9b38ef2356d5d4bc19f7653ae9d443f35ae919a026d01a61f174e706ad29aa52e4935f92b946323244667c5a32dbefe18d3f1638d1a356c9030cc661a2261982e7e7ecc24d38f36128689f3b6f256e324e6633d62d88bb5622c56ab936ec047549a89d28f637f356ad4a831921564b5fc7f5cc41011c5c4e0cfbb644c0c11d147c6101111bd37c2c010168b415b605bf57941068c83f3b0c14088d49e7e16b848ede9dfc146aacf11267d74e2666a291877d30dee2474566056fb908ed6f49328a91c9731d3391dfd8443542454de626758a386d2db286f34707ea884a1f30d8dcfe5cdfbace4e46de5ad9fbc2dca8fd705eb820bded585b015fb232a0de595bc8d8ad0a775aa52317d5ab934e9a56aa544e3e6d3c741531e27fd2405aa55aafea00621d7209baf6fabb59aafff429d35938fd1ccc07ac0603d7a9030ecb9071ec1c64e357e0c49180e738f1e3d7e64892c562be66fc047545a497f8333c670070112d2516433c6f3138346cb3c26a97563c81806f3079231ec85640cdf3c8a640cdb9c2858640c7b51d18f2319c361a6819d84bc37cad49194f1af19866bb6a9c1b6eaf382a332380ecd847d2c6120334a988c8279fa09be01bf95f56828b83ada4d6ae07682ab0b298ab164cc25633e320624631cf310e6d88f2019239231ac3ab25a4361ee249c6b4f7f0bdbf00b3cdc0706e2a8679556a96ca36a0c1eaa3dfd9f3efae3f5b8e15399984f59c8b506d55a33f9fa649d75d2d7e7a931aaacd662624fe3eb8fa363307ff9065c6da3bd79f46ec04972a2f86ec037fc088e20e922ab25c495633ecc8d452698958449fc56d6dfc23c3546457b3ca01b686059f5e98fe1fe2e63ceb0f6b48ead5fc32398eeefed9a9eaa404155796ab2388b64735667753667912c8eaacaeaeacaaa8aca84ddd60ee65f84a7a4a2764d4f55a0a0aa3c799367c2ae7fcc914cd71561d705acf7a8d48a986b733dc91822110000000400c314002030180c88c4a2d180385265c90714000d95be6064248fa320c721840c4184100018000000000000040620d0026dfc17e3ba7e998cfc5bb0d9206f2d1ba68892286bf7cc1e0f614896aa12fab3d175ec582dcc987aa0750e3f671defc7a92b7340428402c25885844c40c90597db4fa43e2030021bc5e7c63ab4556b81a001f222936bab07729ae185997b723d55614a1a76b84076e9c9b0aaf5672361ec58597606512e2dae8cf5c99bed5a730ae3613ce4b54adbf64382e158722d6dbdf01d9fdcc9fa5d580ab102ff839a04a55c87215d1ccf6a6582fc756b8cabdec363840e0d03d142ef6109d3f565f650b0b410226b9073d31379ae4ce4ee3ff148d6280d36d2555c57bb2e0589f469bcdae362818337058c5a38e942df8d071a0141ebf545e5ed3a94efa877418a952655b3c4cecba71a51c27850d0718d2f87b3ef6817175728a3c99065e00a77c02a10e6687c5ba66ba241bc9ddcf43930b1538a54b4622e7aa6c1141daf4bdc5005e21256b6fb3fba25dace6890b55b3ffb564e59ecb257d1d61327f5d7ac13635d6eda2cf476559b359f501f71d2c4fc7d34917d2eccfafd01adb67ebf6aa06d73c5c058c4d76759653eac00d5b2e75f47fa14e68a67693a4704bdf1491f238dbc0e8131368b1c9e46c737515c24919d5373ef04434373590b63f018e3f2d67fb042689ab0e20f89b7514ca97a6eca852c86001f677200c163a98c2ca6db272f7b354666d70760a1dde29da401496ee6f6dd9479c23e84083e2a31f7c833b3f108802b0350602ae7486ae8cb902b17e0ea0509de43c2504e33f2ab1dc923075ff83792dc4412df10ac557fec578517dacab7de705671303db21b000b2a391ca313f1b8aea0a97053e885d8229241a1a12df298114200a615f4834cd0d8b78e1b29dcc9e8787bfd52250efa6a387d1814ed1a68b64070531158ac484c1f89bc6d3f84b96cecf666c4878604147f8de23de33114dfc6c5247201a0df453f7771b3f25de8d18a17e9b1dd92668aeca6614199c029ad0373d48d5225f6eddf1fbd3e51ec4f5b4913815af1c5ca3eaca559a1184cbf79b4433cf7cce57ff7b570f434f94f7e3fe37fb59e44ec4715cfaed9ad925de2c500e137682fc06a4241588629a48f4aefb4e8660f67487a1d1e423737487be8e77a76230acb8ddc869556948e54a99326538981d0a7fa6add4b237c7fbd465244750b4b5c72ca8151eafa3b6cdd2fcf69c7330814e48b4834aa9ed4d2b978ea9299e1ca93bec0247d92fc123a84a12b78888f1779e8f1e1d08856879649874f0c952de8c5b7c8b4fa8d58455b89d9f733ca4dafd614ea87e95a59c2be22e1f5828c455818e606f0855a5d57e6a2af2e8e6182c3f959ce3725e698621d78375a38dfaa06f72c9b748acb4b27272619dc02d395463139f8b0f94e04293e3d4cee0533aaa78552cda212fc56db37dcd8034b58b969ec9f724e6346f7fa9dbef6fbdca34dbeb3aed38aa597295c04d88f5bb4b47be3b0812b9c511b61f76a9311770037f83e7bd36387386d9516c5eeb72899868575e52bccfe8d75715fe8ac726162d97c1d7f92ce70a7e1eb6558bdec8d1fae24540546e4c7f6e067d43085fe4b75855455757a117639c04bc88f4227bfa1e70db766d494af01226440a2abd6882cf69fdeba386d593be5236080168f957fe9033838577b413c2c47438e357714817d67da468b797e2b53060ea04c0df7ee1965fdbc8aedc458606f48f62085c963e4783e5f7c448079086891373e7e9ab1afa9ac9553bc3b98520596a02b81213b5a153810a7a6b214663afe24f093009c19bba67a87bba3756de98e5e560fc8365d9f153dfa3f47a162ea704874846e7492b814a6985dfefd20a668553d3f0e0ede4b1711987896d6196f1018535e7dab46d0f22709300724db564f8b764b4d4598d0d6f8bc9f588aaa0a36a68fb3a038c498a0408d475f50878467b8bfc34f0533a7eb82e00ba3d9d58987beae7f11a745d23dbc37258965dfa5e4a5e84ebaf088d36dc6e13c13d23d1f6ae24d3d95ac61635a706479db20ac927c9a5a8c839be7690faadf52764e8a49df9ec8cf063a6c1626a99401b329c8ce7c10ac35d01ba374097e62cd4e2931c58a9970b073e0cea728fe0c908595238850afcbca9761bb3b01354ea8065ebd35ded8aedbbe6a9cf14a7b5c0bc493b651874d36c437e046a07d040de109f9b58cfd6d2307ef651b02a3a766bf8a2a2f6c6b19c79a41fee1f7a8946fa85e1e51d95746818e3d8d6d4ead40cf6ceccf07ea0099f762f6183cc134d0b3fa939193aaf0c2926cce2efd67a09dbde147ca35e92b63d0dabca85654e3f96c641dc465decc2a1335a49006b5cf81113762371dd5d89f318bfc9f7d49d2043e7e28b4cba3e65cf9a1b9dc646fb4ed74168d7c07528311e3efa85fcc64de3058d0c4672e35deca185e0b9c5908c4219da675cafa2f6d00185649ec2c8f2fdb845d2bfcafd03e75100a654ea2ebb4a2b82e19faf1e16211e8b244ba749149a0f06114aaa4fc8d6240132c11c932f57d750400a84f3d53103232080ea8af68e42dad862bf2b8dad723e3100e81d905e4b3702da400276001795e1df198b8824b497bee5aa9ba6cc1766e311c83541a6c5ecb9ef9ded1e4d792ebf53d398d193388b0718cfe73acfa95c336cb562dafa478094b5768549dec00635fb727af479d4212a88bf9356ece548b5d829e2cb40ad643874f120abdf89f89b5dcec302d46a90f9c3a3d6510929e3a84e3fad1f9f342b818d546c8bcdaece0a6b1372f7604c3a0572d2f6cf3abf33f8c022afc9af3f41413f5b51eb08fb11d60beb995cb92ef47c954d4cdad2afcec74280ac2d9fd0aac5a2d5779e65d2f7b927e715537765f4382a89278a559c9f427b2e983435e988aeaa9940e6e97bfaabd54ec22cd91d74af633a3df3d30d50423a6ff99ab5a5d0e584ee1482dc9a15c86a972a70de09b78c162012cd78896e2d43d9369864db5bb0ce3784a1910d3702dd1ce34430dba709fe6519479564079383394a34c005c86ed4ef9a980fc9b85c789c29050b53bac24095ca8a65368e651359b6f2ce05ff406aace9391e59cc27c3b8cf99dcdf7038a85bc4a04f08e41d2e2a26c87190d8476eec16d7e4cfd1fb70b19329d1b1f616387ee3f2c0a74c252fcdd95c6a9aa10f7f7ca45db1754f3cfc9019f01dc96e644ffd4c70503e5cffb9a515c816b37aa4d0a90d8722c8aed08b024ee32f1dc0fe34bbae851f30b225e3ee24627ec7cd33640fa2c1936504f45eff8b9c5b9c6644072dd864c7957410e54930a6f8756aa5d255e0aa16323a7a102e519ca90880c0beef58336107f1b6bbfdd58311e742a161cf737e0e58bbd4155518039dd1d17d1d484d8d2275b031363c61e85e25a00507ae7c1606c022a77a9f3b9f46cf9310b7aded221092e79d7fcaae768b31ced8da35d385af86cb4ef564da42142ed18c0a60462f6dcea4e50985e06b182676eb3d9a8274b1b1f2a998ea9c178e6139cf1207630e08e82b5dca2988c4dc604513445b0442b58380d2b7563eb931d441508e2a157c75ac677d165141b5e7e84e89c0794ab557b2b9a46758a8243aae3fd8096b1198e5c72c0309884cd07b120593918de152e22f95e1c20e02fe8616f2842cd1ac532241a462be92b2c51157215efc731c5edaedf0efa9712ca20587af92e3c52bc31ddbdafe50b980a36594186c9af91619126d5e7e2c0d464341cbb68e3e0e8cebc1f870eeb5f00370e863a30b05f54b2480ad787e027488df40b73c72fe2582dc6fea7a02cc25860a5bfd574cb1de57dac7065137c048617c7810725e001007829c14fecfeb8008f2214c011b96289b2601f36dd0267ab9abfbc485b2084309e503daa724a60677cb638d04c3c18b8ea65f0a752b1d4cbc321080d93d94d0d8039ad0014d788ecc217a5c2ef6f864aebe438a06018c4ede89b266a492068fad6d1c9cd494169167f6d283cd8484f4c8a75b251f910deba48908640db65e321fe7cdcd8f1b42982501d92d0f8bbafc1d0d37f4c4c157be663eb98d931824022ee67e0020b144a8cafd19c074f07da47bddbca76d20d4d598561cddc08d5c2709a718631430713dbc36d336c4ed67bbbd91a335cc0e336d30c690882f1918c8c78c24e229661fea7f14ed624885b2b65af18868818b8ea452d69b3b0bdeaf5bec9b70f992cf62802b915c13c3d3082d9f08ee7f23ae3b6a03267e03927bed2d2677307d417dd12b58474d20df88c9035764394967b17b57447d5b3be302600a6f91f027557df1cc0909f19a60d5ff205cd62f0da572635f67fee960c7a8713f7ede103e5d6e2085c728b887cb731a105264be8b07d75c5234e3377c5fe6f2a5cdcc95ecafba411db611105b41aad951e93621f095a24520788e936326bd35d19fbdacf3b28317d4339c3d0410a2478771e10d099e99351baa2c6677e0338b3008b211df4e7ac9c24928334dec0ab353a9a3a3721ffbbc0e021b55b9cd0bbd81f7cf1d6471b1c22ca89d0c1de020b3b4f8161f77846e20753c3803a606258c2a43f0e9c1fc74ec474e3a40a17d1457b148b63661b7977bbc6578f1fafe848432429db922653930af8a0c4981a2acdc28c7f5b40cd25a4ddc582ed3168d20dd134df25ce3b9ef33b85158beb3ee7beb31fb9637084a875846b68340d2dcb876ca24a810563c7dc236457301e5bb89fbf296c17fd9c034b3113c71309f41db0c74f4150781732a078ccd11b041b1b0fcf8f6aebfcc426e1e43a3e7117a318e12909079d30bfe99d6a1a424274159e873867d2de3f393958bbce1e7ba598df1bbf67403465ba499ac02e20e73d7bb9e3d8802b6096efc8dc9550b9960769c0109bc9dd9140d256ae18a8a79e0dc931e0926eb1ca50a093185a5fa9adea00ca22748b95f9d28a10f8cfc8f604c1a6895969085195aa35e62683f173876374955635aa5b8b298b93945f824a053eb8f92d7b12c6a4736758a0f3cbd60d160930298a00c37b135d825105f884938bef1449fd2a0a6b238422324a19f0f49f4cbe2b7a844e32d53c48b4eddc2465a7ca8c24d6b7b4178317701c814bcade2d73c4d4877e9958801ec59721b1aba03e08e53dd652a717af65769efb722a0e3ca2d7b6b7ac2d9132942169a109a35995556f9b930b4a817cab4c2b006e43eb0abbbbab9874596cb78c104ddf9600d1e6b14fb27015199ed452d05419cc91529fbb48f0f719c76c5574f952c5ed7b319112a97d56d24c2db1e02c4abba7d4015a8593d9bfc1f860e431f8f914b33cc600fc8295e3a543bcce9b12adaa4e1e3791b7401e7986c6a60cec89ea4247d96c8ea604b50f2939ea2c4590379cce4ffda28fa87c9c82f12e513d49c6573f7452978c1ebf148d18c300f983708783bcb4c54657eb205651c9a5189190c2096c66a57928f533bca7efc92794d6ba875460eee3eb4a9cf785d3772aec60c1467ae601b7a439e62aa5ec9e15bc6b16a3317d8568d48072c7ed2a868a23c7234fa82769b1a9608516c56879dd1b2bc771fd74ff2d25a2eab9fe092eae6d1066b4340c3c522a764202707052e8467d426a4c3269f346aa41b64d62a939f414f0771ced54601db5ff4c0c89954463913f6a831834baef0ef84861fc27a08d11d85f69ee0d95a01999516975be59c9384ee20f66d2cf5ccde270001f3962c4bc775582306b8ab42b8dc636928f2f56f80da34d7809cf10a34815ebdf3950b61790d3c63cd880ec1215e07d5c07f5149a2a87841ef795dce5aa61dac947607b108e976cb15281c79a414e4e090102cee0f47e8e9f569149cfadbe7a5f7588232534e0c97f275c4cd2656cc1a99ad855a72f65f3ecbb64c6ccf4e15539c3af583281025326442acc99f9b29d9189bc7989fdcd26f65f24f8d515b6ac934d9eb11e84d9ba8df033cca89cd02866d3284b2910466b732d9c7e1c80467fd53295c9301ba611f819bc65fcc7668a874f4e0b80c27ab8e1db5abc2de03e564e7318bf272cbc9a65b33581428183044846ef5273d92af7666852c63e94535b305f4ab8901ebafa41507aa83144e1c05b89d97a0bbb8fcc27e5df43f355a865d30e46bc8bb088fe32cfe3e035bd4e82598c63b33eee5d60c9ded42774c0a2d6b67624b67d6fb2ffed653e637c297c78b3f2c295d2102e686b2c1347e587f6cc6c88d4590f0bdc58228448de9560d2297168c11bafed83727ed328f2ea481d234f83515e8f3cbcd035517441fbc276256a60e3e884390ad67d142092b17eac448f2e3d1dc51939b3401b3b94ca8f1df362986ab15466c152c24bb89b6eb25342ce955fd401a19c8bd379b5ad75c90bbb5c8bbec7fbbafa156b64a04be251f5f94e97e4c2d001ea06f9d4d296069621afbcf7d9b6f6aff8f6cbf7b971e1f64d58a9883022955126bd2a0dee5b98691bd82565af9a59b4afdca8351aabf45d225af64a8503a9293ea10303eab2b5ecb86471953d1b6d8729924b48354bafb767db8c65566536e5bfb34f9b119d046781d03d72ac8fca6b32ee3821a0d96f54e4aefbe860380fd8b6f0a1d8927b2399c4b8126012e79622304f82c283d5d703fb547b9f5bae49507c2a65b96bc51aecb87c6ab18b96aa9486fd352cca9dc5cbc3ede9770bb219326ad72fd9aeb79773051f658d275b54f3e7df703df9926de50675662a4496ab3aae0047a5cb99a3f924078f0ace49ef5dfc4ca555c637c72edaabd7f4f33442716524e19533bfc764393fa53218ae9f8b1b56c29f8bd419abef825984a61f545ae980e5ecdeea2ddc35f85a88b02bf2fb6d7e4728a49a7bba0157e8ff7e74ccb9eaba07a51be3052b6972b7d9b5df42ec3b0cec4a6109f84d1c4dd30dad16c00882ef575051f69e488b19e67f281472961d79b22e0dd0021a0b91c5b414d422f64fe04ae5c64fc1a75aea31012d7845ae7cce577cc31738029327df28c13e61790719e24c00ebe26cf650e385a2b04c555503e1366d5ea9f89a639d727866e1ca55872c05f83737700b86c7870f01d094692e4d6dd1355d59f155f2ea0e08cfcde61f015b0bcefb02ece6340a53a4cf2897797d71a048f6c128e53248c06234c39db8e8e749fc431299b12b8da4fd1364f86c42471f640516d3aab634fa0e0636c5a3762a92967f4dd1adc39cf708e747cfb25f7db894d2b12435090a26299dcbd33ae984835095e9a56e0d5b94c88f93c498d3f5c0e9100eed93b04d2a4f5a15cd5002a509791ae98bbb46a6b143a68eb9291ae209cd61e34e28de5d10f440a870fb48df98583bf221bd209cb8b0a8cb382591835570838646b4a39d0116132a85d6d5d598d24d718ab9f141cefeef0d2c27bf34f7afab550926fb53e89be3412b1fd8a8cfe50427ab9b04a829d98a661adcd8a18b27f84284cee32af1d852f197f41d349295b15ccfff43c64fb6c74c35c78cfe19d5b041b0f33d2d5fa2402babc10a114f21a9b1b7c80b1196b3a48f62a6e18198ca3cf90006ee701e1fb90a91951beb6dedb7d3f48f77720d48db95c543a0b2b0deee906f58d29b9ce80a447950ef9584e6b71f606a1a6176f70d2abab0f7e419f1ecaddfdf6783351449f2cb9e7d07cb195c836f79c11f1e40d6bffb5276abe9123d329800e19f7570ede026477e2d8b740a3fcc99c37615b3d37c345f47b3c6a875ed78dea90237f3988495f90b38e97cfbf66d4f7eae6b92f6baa2390299af4659cd8de5d5e874a39b1402751488d640a3038a79d693c9c4487e6b4ebc7a8539b2d01f67b89fcce82af1d9560dfd73a17b8040812e8085ff8d16c0610c0bce9ceac9326f24f913db2a6db13fedf9dcd4389c9e12ba9432befea82cdde810a49acee269456ba9002865d3a0db76cf04490abfeaecc1871803ffdd6c1a089e57af4ce646f06c749ae6d5289b59633c1b9dd6e88d8aa08e4aa219717430504b27e40249f3916e4d3477116e42723882bc638349f706c7e166b149aa04be6e8942528f8399d46f85b7ec615442c6eef9a6fa603a77fc3f92d758adc306352270927fe80217de19b012aabd9e0b9265d4d6e23648dcde23444a5db364530599386c1891ca3708e073150ef868db984203495c83b8bbbccb0d25cffa745a946086ed9e9424312daebfab6b4b36a1b4051cc850d70df0431d00cf2804293a887b0dfe320634642042094bc17b33bc457059d7436436e496425652b1d8800404d3a6610728c8ce4658863af90216776e05e2a22f485c75903582201d486f00310dc11f8894531d015807007bc9ff282968f610713dee7de751707828ef0e276287a233749fe8d019625db01c0288e3be5c70540854861871c3716d48181bb75a63e5d4c0461a9d647c3be71973d599e10503307e320a660c6d89e1046188198cabf862cf5ee0d04547e6420b5bb8d68121240b162e5ba69c9e36b2bd79450d26e652514535223c1576b97fa778e96e2144b1a8dc163402a84b7d242465d5501921d65d1694623099b50754a0a8ef32453647eacdb33a211849bd9586f1079774848ea4128b5ddea559ef07814dd7a333d285b555542e6f14ed91a0b102ca9e356b8c9681cd74c7fb9fdfb8a0c9667183595914ea1e1d2c91b5e6c53d5dc14e19fbc8e0cb422fca617c032c82cc52e43590753300149bc9bf6744ce4c9e920ee92478296d3c87a575af49d1e6209352688d0f4cd43243f19e786a5ff4ea0edb3c3a6365f9b51fd592c2525471caef80607dfe1c06c2614c45a2c398c04eed7ce82aa162e8d3f7739eceb379ea1e749eeb6d9ed0b35cc69a0d098a68dcf9cd8707ff6b8a3a33a3344f19cd939bbc6c6b6eab68bf5938d2dd34e5eb12bae685dcc06b6e802d93b46316ebcb22ae6565b96c5b0a59b590c518b24e43163964850f590591a522b22a91f5f4843faf3f801ae480cdc57735823d7430438364090e18180df6959e153adefa5dadfe6414424565a9bfe757dee29156e3072494d7303a5d60250cc415545b2cc45fc263432a6b0a58b2027a0ec0421b2063222d49ba7156b7ecd8cdf315f01878d562d47bf6da7656cda752fa487ca98fd559b5e960ecd22e6bcc7eb6c92df0272b8d20185be5631781dc086c0632238657cd5f4b7133caafc931f4037743c02b823cb4ebbbed94cf8c22e98ebede457fc703784ac373e2e249f89168ac023f7771dd318fbd626acfb2eca5d6127eb8a4ead35ad29c8face77939e8923c2361ec570c575095490c8efb6a4756b3fa7abb446daf73b4fd07d0fa06d41d0fa17737a7b85011d2c8cf6b41454d0fe90595642fbbe5b0976f34190894f335ba9fbe0781aea2bc8b4df7f8d31e9330b2f8b1fab2fcb64ddf772dd2fcdbfcddba414b0eaf42ad486ae7da3131c0e327a12c996e2c3919970de3cacb97832ef75d1f7780f5a4148947660db6758d98eb8273b97258cc402e321b0772582c59a299176961dd0b12be47b69322456c7f8c64828a56171c1371a69c71ecaa6706b01f337b73c62bcf0abebb441e12d99c92c75209caae92f75b0ab2fd13ce4ef6df131cd6a9710d0756abc58147ed0b345cd4bafeb1e97d869bdcd2fc8711ad09384a0d187889ec96d4e84a3e37625bc0fd7297d50a0c65d2e59ec5cb115b9fbcdf3bd7d6946a60fa8b14b9d4141a4ad8adc23e433f9a2abe75766d377b17a13f396045d0ab0ac63fa5f602e3c7e0f5f2208faba7f0ab2b34c00a327e259df8a38ab945332e19768c9592c3b784fb7bc6721a2192eb794d55741a9659ad20810b3b633a1d210939b9edd3e0548af85f68269584864e175dd65a072bea88700ae4a8a03e847d43331301a03184b46b83c00f2fcf77b1fb3efdf05128a6e291a24f4e7ba0300fce61387399e69af1bea3819d45d1d9e8983d6ab9466253f666f0c64da09f726381ae1347dab8b635cec5343e4a987d4fd3430e937a987c405fe6380ea1c91ec574c91dfdf59b0ea82bf73f55a0386e62013b9a93411ca5552048bae857951f51f513344a4539ac725a51a3716e4c44c3f98f65fdbc8041eee22ebae1358b2e5e9a9adfb51f1e9b2e997a3f34eade35c9ae01ceb59ab79f39ec33d84f1a76f0684af020d7bb4ecc0256501ff5cc59989a7ef0bc313210f494e0f3a4d2193cebe7af7bcbdbb072cbd0ef91b8b2af4aa915d2c0335d904e4515d3aa9105ceb4e3dfcde4784935dcaa2ea30fe69831d96182d3b1dc93f6c9a0a22ce513d13380e403156427803de79cacd53ad1d305d829e42c0fca1149468a12604ca9bdfd4ae8649ff29e78e6676dfc213d2403c24b559fbb0e22db7e0b1a03c1f32e90b385cb5ae19e5feb0bfe9ac855ca5eaa210210945af7ed370828d9617e5041babaa520576af81c18b5fe4cd3e6ecc985ca82bf4944744a0d0efd693be24fe3ea8cf164af7ad0e419427c9e1b8a4ded9082c90c2fda8923578d099edc94c2452f973828746b1ee15ea63a2b379ae5fba134fb8063f1f55486c854ff21de7b2b4ad3ab48e6b2a07434d61fc1db16e4b64ab99518e8030b52637a21757b07c57daf93b4e2371cced9870c57aeda7abe2bc91d2e8f560dddc51e51f9de2d09dd76b22a042a5d66c0e48cc78414e9c9a28c5cef920a6050696de90a1c4b4f5009114be764797e3b27d3c179494d68f3564fb24cbc1d5ff2e2e1238698126810ec55a7e84418108999124fd5a6f81986327dda0d576219d4a92da5641446ab90b8d06aee5d780d8d274a273c76bf1b9cadabd82312903e1f5f9ee37a07ce4b10ba758bb1defb71d3e6b5c054fc6f20b2302d71785178031c175c3c632bd259d2d771c14cb02de9fa2ec829c9c42d280e1600256a3e7c663b7b9162cff7ae98e71f1fe0499b4abb998079d7668e3974b23e063503f68d7c7f3e924dbe7404a9866988564d572e03d3c27a5904d8b27831b04479828479d7190b6f4dfe9365812c5ffcfd83d0a261bd6ead1d9127e871d8442fbcea1087ebbf5e35d53e9735465b4ca72b8ac0aef6816fe4c061be96b68639f8306585e96d16534b03356c6137cbe914c270b5b6fffc8b5416e416903739e71c2c50af2f26e991807c3e9add68f3de7daa21698bca21001f39485f5de76a2fe52ed31490276945bad451e6cf252868e777f8942eb1002977ef3e0fe13fe01f873e0ed060ab7ede5414be1855e146d425decb059c988a2cb326f03edbe9cb8225d0bb4dfbd341e80bed0bd4408c4f41151255278b2d0bd50ba42c192a7b1835e9b5f26c1b88459d092c92293e705d1d12be17783111f40964801ee8f876d4af1ec8cc6b0c607b1719df130334f4eb63e2e7133106e81946ff89a5f6559c838455a310c13a8642a78a991544e43733006b58fa078648766c63078c698c891e319600b6905ac92135c39e8c1e2e264827aa55cb27c861a4ba111f9a79fd1f477c5cd225e0c08b79dc187d6ef89149ad7f583f0ba97bbadb03d4c486566d2128b63296c7aa4ebb8877b4bab41b33d104995a20f2c437123edfc838a4cba5fc820ef2525b97ae277c689b39042f168ef18de4230611431434bdc9376273b5bf88d81b719a97578d525b13ee40592827c2a76e329ffa5c4f59042cd496e7562fbc4c3d29cd2f303d98dc5c9bdf4e1a71a71122bfe338a71b7e22046bce2ff3172fc6897fb7d91cd1cc3514b7519dddd03d72983b309615df4ad0e409b9e067bf13c6996253607cf8c7e925424842256ce26dce9a44ffbde997578db380a6354d5f04403d3571a24c824af958897acf269e79004e1fbccf528228b5e6e1007c7aa76183af237fbad06e9f09fd81575ea055ec7a7344846c536dd69a50c9f5622409fcf59bd22e79fb0f1ca1c73ccd20eda55a985f0c220894d045659711196af4fbdd8644c00692c529f885030ab654a7daf29a4c3d3bdc53de31e9d2be29a43f829e86c98b505aa701d178adc073ec6e73fbc31acc88004888f31ebbbbf1aa61dfd24d9a4ba75ff44c72a4245f4b2220ba75a4fb8a670d54914e65383d8c4aca7167d23d411e106b808ea4f9bbddfa1b4bb661b3c806226fb4a461ff147a86897e2e6b9883cdf1319947c52f7eb8fbb8d0b78c987a0a1fd32d2c36cc4f9ad7361c848c225c490abab15568d5dc0a2186b13ff0d2c22017cf37c08480d976078f4bc478162ccb168150a312f99c5e2952aff99d5c38dcc2cbbaca2fff79ba73955bfe45c25fb494cee4dd00dc110e6cb9cee9ed47115ded5074f34a26fd6c4408be714ab2e7368882eaf8924551a4d17fa50c34847b32419842fea9a16dd31b42efebe57c9d762b6058a56a5381e4c9884c07b146574d12cb6e68783aa27cf755b1b2d503625a692feebc4039304d5e376ed3e3f1440d42e126c25257c5ca38d7342fa65751c48468d8fba9dbe53e262cddc9e4ea24a31ebf7f70535365325bfcf66d3447a32b60236c35e644feef3c110a36612f0d257d89a1c16b02ca3b4c8bcb1c84a6a21c00b7b1db214d892e96f077d5f8149653bee3a2ba0cfc93a0c75a8c9f27335ee3ed4438231d4ff439305a853d1428037087834aa6a3f1a6daf6a4bd6ac6229adfa9b85019c03e29149dd97135ace7aa23e0725b6271c30c61d5a5f56116baa0d54b6140915d851e54a1815f43933bcc6e94df2a44ed0f8b188dc0d7bf319588adc68a13200410f4796dbf2f38fb38250d92046d35d3b3d5bd6818f345f07fa983d6140aadfad08b9f0966aa2ffdff094749651fd87215e2017b2fc57a14d9d30d73602f5806e46e6c00d578ace76579295e38cb6862f86ddf96fb45af93a173ccebde8af3c1a57f4262870fc4dd84000db5e2838a9ccda8f172a164dae66ff709a308c4ef57c758434ac39639a09610acbf55c8187dde7c13cf7a075b6709205d414e6275e95109652a994ac28966349385aa67b28cee6844f50f59cd299cd47668fa9059921b360f0682264eab1918078dbc2bda64dfac285762ab2f73e458e332f54eb36c64be1ade53f6e01958a962aee7410f40e6061a467033dce577dc1d403f1dbf4c3e6aeb3808f71322b7f470e8d9e45f7ae6309317107006e6c9303c879679006243cfbd82b8a6b7a5c1a92ea7baa2f4a72962520daab48bb0e13c52962c64c4c57469d55881eecd340a89162a8d59675a0e7b8d2fb9231fae5abb76488df937824e444d384f085963254b9ab82075e29d371ce05b3cd2241ad91045a9f8ce869b0c2231dcee45b9ad765166d137472f6aa9468fd9257693bf053acee07d7a42fb5b8be2f7a1474b2e210c5422572c8b08d6e14b8554173ed1d398490826c75aa1af58819b71794f2d21d4696dc04a7c80e4b8ea5668a5f72ae0abe65febb08d16c496ae652d41a0b8f9562101873b7a13fabdd5162d1f329b773d92f7b6a05555e5573ee7b85310a61c49fb43ee86d5a8e5ff39e07cd734e91b48d463c6f4a3c0dc8e62b325baeb6ca6fb60749a046ab48ec7f8c0759e57abc27e5f8a96bd86443e0529808a5edb5e2cef6014276428647a9550d3f8fc735bb985a52a6a53ade1b178dc4220126981660a129f620dbe1061945e63a73c79162525c0527dd45bb14950059ded2a8412e832ccf8ae68cee58b94222ce387e2cef112fe3e59a3128e4847cfdb114aa7e6bfec6080a911a95358f654f3269ea5da080ed13a459239270f2332461e0fb007883da1cf44f3a9c09c3302f304db8fb62d75540ce64608faada2a899ce690a3728397952d6271c5ba46662f2cb7ea028a486e2d4c2f71d17205fa75163b84837b2061fdc2f2608b861ec8cdd022d6129d91a570e78a0c7f86eaf199d738fe9bbad54bf7a2764a5e75f047a5baf6223ce03648b283ae55150b5230ab3af3698cc7bbed1c039aa87874f867516d06614ae36c72fb599f7bcde502b49989e4d62d208cdbec1c5c8946c6fe43d05246adebf8aace1ddfdfa8d58b379470b55d95a4c1b49b53a4fbfbd4c47cd8fc8a3c0ffb1ed2e5aacaf29ebcf3645278a42dfa568eec58e32c4c1f49b9ada464cab89988d3332842f736ead60074cd962f939c68d31c07c02bd7ba405a0fccd5b780cafad880efb1239654c8ad70a6788726814d5c713b7712e2a532008153e287c12211fe42da9a592030c15643241e62314b0acbade5b5e25afa119461b7dab121f8061f4d12c6fbc0565cb4dbaf55d75f15104414a5cad9b4f7ce8f81877c720075a966d252cf29c66e263500c20484ac826a80fab96badd5d8a6151815c704165d80411a9b4ae2448dcea7207a913b2f57494ce1c335390ac71d5e569093e72f27724fbe6062d395ecca1edb833ab36bb3ff5820f603e46c8709b696a38ad40a998dda145ab4700538c00ef0024d414ea7a6abe9c3dd30af0a01e8c8eae19d0694617acb5b122ff8e750c79ac2ac9a25da8a1766ab2c32a94989203e42b4830cda11126790e3323dfcc67ce0245344b27e31c20ccb35f7d35cf3b076c4b476efd44ee5f15df58eb5ea5c8c4777e94e23990506e567444de878576b72c9936b9313012f7942acfdd49a803fb8946ec4967420aa207c3e83317eb701b08e15dae713404f031d2c4dc076dd067bb0f23c15225a63ab7eef18137072d6a0023fa3061cea2355d29436c413cde6c22945aefb34ba8dbac456b7ce53143a629a8508c28a4429dbc45cd5e6d05916876367e553dafadcf1885367e01f7291f12cdfc3968e7d6b58c140ba03ce1b6dccc432698707d6182345aef5c5adac45f0d7ea3a9aa3f506d6a024e00e718c530b86da62e9434ef35f5bf9f8e83cc86e5e0329f506b81661196478e22f1df765666edb9200edd4fd2acd6033c5fab8769361e6e1a7904c1569cf14cdc629e1831278e50b76a3308b7f7b0688563124bc82cc9d36832aee202a4797c7d3526810de0da63617df35f4b57d33375ed21f988e8f7252621e3e8e6a3e852e41734f27eefd8c6c02f5765748655d3e5f23228057835c8c406450651fcd92afb425bba61fe04209a554206567f9546ff6b4b3ecb14cf2360a4480f3b0401914fb11300b90e0b58f6ff177f07da18b5c16394447a30e800a60e0ba156384dd97b7c66b5b44e72ef63528d9f65fcb76ca07444067084868aad3394c14e4345940ba8319e89878c18e02b5390bc6aa81687a0c45e039700d7243bc25343ab52ef7827535ded4d8276c03cf39d5a8605d16c30f844e30001f24f2126d21fc907e844d251d3b3a3986c3049419f1baa35975a42e3f810bd48ba14fc52f419ef571104bfa182b7d6f11622a4fe463397295cc574a77d12aa773dbb4f8329a6df13bfc36692a6b7fab7e7365fafbf79f4b5fc8b47eba5295f112b99809ee3c7b64feaddb86c3e8b35ac3f56668833467629d54d037dcb268696544b68d293e7709a9b067618bb220a3ee6de4a3e4028d131aa3e66693c8d04317e92a884b4c70bde512248aa87ac631c3c0988596c720528e4074d0f2b0f64470a3779c99f4f403709f739b15dc25ef2d7bcef74d98e024f3b3256875b4892644f08748889a714e8939cec067801a8e070132f046d4f046536b68953cd4819c2edc476e697b452b77577a17aea43206fd69067f516abf690416c9e75d1324778df8f2c75a0251fa008ab6fd8affe9d9d3dbd03890cef33dd43489e42b672b34a152a2a568ab6883b276e09bdbd05cb303af17cdbde2a6366647fd492f17850ad3d80c27afcd3c7f5a834ec83e0318d6fa3fc978962ca4955fefa1ffe7f1144e42276a77e5bf88e1026ed590ff37a686cf1b86e77275bbe64dfcf79a40fe383d623054b2c7fa248c235028292b619f8b28828a6f207da75faf950375853f9b32d3a3808c728fe4bb33b81c36c5391cebd16e560903ff10696339b5efd0450bfad90e3345c192046f120f356495c291fe267c74d7f7d52b33872e3ec3b7696f2a5287fa64872e21f45ccce23836efcc9ff031ae6732153499096dbaf975710e6061c77897345c5cb2620ea0398750d2130860f5c60819d52a09b1f78be8b7630c868b7367121bc52bd2686bc0ca49f03e0344d9da361aada36caccca43bca38e1db8488e5846728ccbc4f9c415fcfe6374f01b596fcd403f64466a54e8a5a52a765b819f87c2b55b3e86dd80097d49ff93ffe0fab1ee2fc7bd4b50328c26814780fb992b78ea4d6ae8b2c864100058c584c37fc2cd049afd85b28a0e64a9ad26e08167880194785c7289292888b6edad055ce91b4b2eda59eb858f7152345fcfbeb84e34ce0dc173ab75b9548718e1a1a0dddbe95592ca74247da243d0f933c30f90f0878dc21be3114ed50d302f625a9af2bb6e14d62212f124f67b5e891256b011d287b50d84a153695cec013c6b7554f30737b63a807d4923ae71c4c4090094d854a34ef6a1ec35e3eff1448406a4c5d28ec2205e53b0107384caf82ba396d8e852aa828a4c4afe2b0336d6adf5a4d1dcc2a28c88b198482c8ceabad8fe89260c64926faa33bc87c9020e900369590e374ba5bce58494673e9a5a2c32953eb2d4e58d705d5095bea59f539c4b75ea99f757c53da259a1a8a9d0411f83ce0020b517ab7b61c34e74d56aaabfbf754d29e1e1f201144ac2b5b345c3e4ed4f39d2a47b125d492fd6d0573c6e42e50d0500c0bb00a0c7533972a6a43e5011598ec0fb3120f155f4efd82388018325ed6ee5f450a5dd9cfb414b4e9a8104c6ec4e81c3f9e111eb6a6f9830cf94aad7a846cfe895d450627aa921860d342e35bc7f1fbefa2f40ff3387666b40f35cdc4cb3c16cd381bc75c12a3ef34ca3680b37fae4a869d07a6d5339fcb39ac1dc0d17e2b03ff383216700c2ff38f5483556f179ef9bdbe6fb610189406aff8a6ad4c880a3b13269822386313c23e08e55491c2f3aece16f82252ef52ddb5b35e148466d2b8ba78389024796d88170ed5f3328680a4cf6f99436ce626ce194fbeba12032c3e5c884c2db2358198cb12247a4dd7fb67d7a6b53fcc26f082510f1cb7bb9fcc7138e9c1df465eb7be388d29b50aea3f0891e6f99bae38a563e9312b551700289df6258bd538046c264c38e17697721607ee72032ee8e54c1a9ceaa2fadfce35407d4702d620ad7037041658c1992ebd86fe0d2443940a205f701cfc44b7ffafd1e22e7fad99e7b4e741632c663b083febd26d76c72ff757fc58e1b5e063e5763b8de034c233e6ddd353b720babeb1f16132e6ca02c81e21cd87785f1a68622bf67e75e3c1eb0cb6f1280c8332315c4189871ac43b00186acabf51ce912829384aca0c822b6104d7b7f566e1ccc19d1380ce1656fd11828695910191a04a85495d87591638b66047e987db4c7c217a1aff97ab17bc06d6ad08992e9b426e2a08df1f82089380e6ecf76c307c9ccdcaea8c7f2565a783b97ef3500962b877de0eb054d3f40b84934f9c6d7ccc1e2ac0fc4295b36386eb1273e6c5f543b170ec4894ee2f887c2359c0bfbfb8df68284693ec0a712ccca09178b13129eb024d9190d0cf47ed66867744345da20331f8746668b3d6df4be1b09f95e02516b1915cc1a7921d91bdc47969eec49100bfcc36aacd4e3f6d42e5b39a7f10e6816aaa82842bdbd85cc2e5d0c20764443910d3560f529b9b0871099377ef10754979b93c97041a1d6066a178a4d69e6add81f6e8e915d7d0c3a19bcbd5672945b1a0366304862732c0262db59d51038365cb1fd086542888c4972ecc8759472000428470b16ea3508b20f27921a855437a2d2f44461944186202bdeda8de39b948c6a808989ba43d3b15a04c9ab4926f13e95443d45614c51d5e7e3b024bf332c7c875ec3490067c171a3784ede565a2fdf46269a0b3c3ed2ac130afe0d825fa6ca0e6708b6edaf4c2fdedc3d5376e28f82a8a877ccd5e309aaab4379d73541f08f2030a4da0ca5698f64d814e0f1dca502c605f49c28722a579f15565026cb408d7b46612bf5399c65425a4da80be4f7a63bfe62a45a4b0c3031fc2cc419a8889db5f24fe85ea816ff87113621098003253e00444679b1db8579cc9240c89c5cd461a0e2bb9ff1c77a9f20345c06de8c0fdb4baa86fda894231dc9f12fb8e102394125ca99ff233c51b76d202ca99885be0496581f289ff0c255e3e8526f47abf6c7a87d2fab06f09008a31cb0a27411ee16d221a6ddf12ce1543fc81193770bcc0ac0411ed0f89331901eeee63da64532328b412f580b30f848ece912a65365a4ff4aa7ca0595b749084bc952da547f806350817b5026eeae0006e6a9e903ca1bcb1e2f6d91c6f905ad03b80d922e2413d067a7bb900c2be2f0d440ec6d5b53eb0cf49e3cc0eaa3ec23922e500c30e976e30e05c0fffb32fb734704e5a6b8090a9528f5ef9b0e2d0800ff1b55899cd82fa8a84091ec81384329148696cc99bb6cf5575af993d0e59270fbc10661d9de54ab96bbd559bfef1bbd1f63390fc8d29891893346278bc4d74acdca88469fb975670282cc53ae972bba622eee5bdcdd2f423b26970f02cbcc7e6d61507cbae14d3c1aaee71e6321014037c4a41349d72384d0ccc8ab846d44b5a3eeddaedd02dbe81462a24d936205d86789fd4c561c897f55ec45c6948cb9c7a5e0f540ad2d46136f53497912b2e0a626693c527a9b15ff6bf496c8f1001835c3e273ce94d0dc4710f9213714d1fd23c6f39ce042355557d0af770468a1e7e31c6df820980811560ebb100e37e5abf27cf7520d81b2b433b2860f2923238b38397c19663baf539ebaaf5b2df1cb95e4418d7a53a3bd17a926fc31b39d244794fc0d449d0956ab96950bbfcb7a7c5a5ddf80cbdee1f0f71841e8677c92df0ce03cd8cc05c46e216326d397edcdc21bef998ce5f19893e883a08851dbd95aa6d87dffaef7da4056fbf1115a39aad913ed44ea77c42b1e903e11424b4f9b93bafa8c059d379c68e907e775a44ecfa7060aed8ed3733462ba9498c9b079be7e9b0178a4447f70185547a4f9e93861a883cb1c263314899e4b61848c86e078a0d2bc06a29d832db1ec3c9d1426a9cbcba29d6ab04df23e161584d39817e792a0f4205f066e60910b18eb8c29ee3d4e9b0af1d95c218bb792813a478622705f4abcf0c49e189e7b8704ab3c120c7b8034c495d4ab1bf5eca07fb5c70866008d80c63b6bbdba1343f6f4fd2d811c927637180796456c80247c25b982b085b094ca8caa4ad62b0fce47e50349305765ebc2d682ef718b205553fbd3c34293423678114ac0b9b0a60cab22f51d5746aedace914c33be85ebce46a5fac4825885f3880b3b2af683539bff2c4b37ebc9368558fd099c59e09d1954ddb7f5dc44751e2e5c3c8f736d138eaf88549c414dbe4e626ec6d2487cda72409bb264067414d97b3ad71228b2ea84a5860ea595f66fbf13ab28d8e40156b16afb8b3dc1dfe877f16818ad1f8a18895537503aa8eb3848ddb33e35c807db4c10b6cc4927e1f0ea140b0c52a6412f8c146a5a7850ae6e0076f98fa8aa5031beca975f92a08bfdf799a4cd4bf922d0c026523c83b33659ea6475425f21ca5ddd3278633e057e64810b71e1cbad074484ef89554b0e5e556c39da21fa9eb561a24a42c76192cbde08a5bd5ebd02eab89e18fcfcbf45e90eb379af373f772610f7b49c6dc200715ffd5b23eef607aadb0fc0a60cdfc31bfcee251ea7ec904190c7f8492644d4e3806593eb8e20ae43f657dc381f41ee002a2f2572a5aca99d58d3c57896ff1e82a581a4ec5951ccdbd35439f9c19796824be0ac0c91bee12ed96c16f15b7c5bd6197570ee62963e3bcdcc69a978067236f5f8205f6ef73cb8e489b01f000e9c8b42eff11680de68ceeb83dc3b84e931e55cd221056f3c3a160ab456ab01eb9e7198c2c157d18f07e00b88dc8e425b2697ea45e3746c78dfe02e181664e48ae460297e87a26d17f3fb5ec1a47b8c184f519ee6da3fa34319bdeb9972dd3f4243d6b61ce0eed72d1394c422dce64bc299df90662e3c24d4df135b52c34aa41dffb17c43502f4e1fac803dbc3d8a1984631a06f6a274cb3814b98d0c8a7ff377401733592e86048b8a869e6a5c914d3f716c40d0d2721e8b892ced8d422d202162e6081421634a014214b6b758443054ac029b489b61a911acd2e84f6ef41dd88253a33d3c1b3f781589db0cc431d7ec37760d35261f07df1d4393be05e0ac3d53fc11e25ae2d9c08c3d292204052925172201563533fcfa215f604f80418f63da92b7951614d201d3ff3b04b7b6a0150eb13d76419478aa002013a83f1101c7cd2c839900744a5532e85cac6be3265174eaf4121f3a2710ce52d12ee48be1f62903a3f7fbce3ff92709ef5bfced4f915c56fc9d41a72d81233e977751a8f45ca03d7a91df28b82527e2cea5bbf682daf78e27698aaea1da710a1e3bd7148a151a50b81ef0d2ee3c39623650d291e6ce14ea64f49c8442e197174df9a70c34e92c02b5f15008aa4d22a2126349050368edb65206bbf15b3ac711bcf0455df0362e92750a1a4d5355156267e025804ba4f10c6d3a5d87a213a4befb169b4e610c8016ca9c912a8aa803c16b6a43678cf4367d4728775edb6efc91daf240911f93c6a0da6dc8f292551f181431048828dc4eb86c6c456ee1779593224caa4e7ed9d700a396673d55502857dee06027704acee6e32a8a7951d58d042003fc86504899f2c31d0542731995ee9a09f1920484acc0b312d000a8188d601d37e1e43785964616107d43200f57fc68f0ee82c8d31f8ef28f39791ff8362d09626923e036e1a74eac10bad62ed2f53abca6d32f54e45b86da4fe58d54b21d84c9826df5b5357b02e8c752af25d29c9ae7441e495d6290cd6c684a53aab28961728712f66b308e85a14101553483d4b2a8511d7271896905e7318c5298b1c20296bc761e14eecc76e8021d511c4d36043fd5bc373027ab8e8126d823cd47395d4a8060cb51fcc15bff717574691b4378cb219029a37e628625ecb1ff5be7644dfa192204343ccf7ceda091040d87bc232418a9c3809a8538bba9d5f6c5fef3fa5a0fc631841b15d6055cb804e5a9ed93925f74b680479a1cea6ae58da1d95f93ca14dd7af161afb9f986bdc04c6ab67d1472fa238e4b470b84598b93af5aaa2c7125e17f6a472c654f1ae1815854e28da98bafa9b8914de4e80c1fe821ffb83011ae3230941f421dfb05f8d851e6aad667bb06feb45cc0c47d5e4a838f27e5868368c7f3708a8b9d57b25a372539f3da43d5b11f8e71ed3920583cb84cc99a605c21d24831f62740afb4830145ec445996ab9eb1ddc7b361a63c7a07508c2d32ae870ce5c3da3baa5176c10b512a0c691bf395dd35ca3644fa0145f88e6530e03264de976b45ec95591639ac2c67fa46d582daeea4bbd71acf0ad93e6f8ef9c2bf4432f5620dac7dcc1000aaa5f409abf4b5635b69367a02bb977e817774273e549c3211666306281b64f1d88ad1999d5ba026fb60842761c7992fc85b4d4526ed19c3015f4f3cc1671e8ea54cb3d41b5e1b6aa93499ec227d16668c0829b8278065b180bba0904cb41137dad440a20a98a8cb3e1aef5f29337e972440e7a94d58b12c8b7ce0a5325d776adb9e4278916de933d67bfcef2ffc45a05ec758367f67e3cee28b092609e5d75dcd8f4b18f981d8ca061ba86696e786799e4e2f8490bbe5c241103f44f433651803851c6f8c0a70fd7f540011c77fae446d3b2ee52cb660a3193f04585570e2afa664132eaa804f8783a07e051018dc6708c60baaa0640a4034f196d4bfa6bbebc27b50e99c106ec24ef05c4815dc38209ce364d0a8808e61b1bfc4eb8911820a298ecfc47b40b5394c7302f1744034166482ce7201bf7b48f3fcea0ca8c0c50b9a2922d064392b0ec9309fc3d8d4dedfc620abe4f9eff4694b1c75a61895e7131fc32f5df3824bb9d0fb21ba6cfc4f03ba3127e508b441b70431b36db5205be68576f48618fd131b0ddb860f2fa244c12cde62fe46449d6917e21ff24110d203cc5e8e8a2a8a19c66299618947d63d75181e2cc257302ff3c0ae5e76baa94c2893e0b960189c01ad74ed273b7a27e64f4b9039e33fd0fe27072088da9c071057304a4fe77fc6ccebbe01c7dbe18bfda058e9874a94b0d5dc090e786c5c4927f9e95f0673772a15137b4ce5e2459870bf0672692ddf46ddb63a204e31d07648b8bc0f7aa1e33ab5ef79ac442e08409d893c58e6a5cbaa2847c85d02adc44c91098f409d3d30c126a1c1930aa691b50b0ac70b823fba749ff8fa6342efcfc5dcadaacb9c7abc1f4c7d83b7025b36090fe6670ef363d03b9943bd61b812d455316f6336b1b3379a2dc998378c2cf22397b7ab545fb924b2980dbe28b4a0ccb409ea5d9098d8ec4559dfb64a273c30eb6f172c7e51b36af6f3acca33238d1d1cf925b04a4386290df1940aa9f5e6f515d2889620c1799ff7dba19ee4e9bac35f2eade63d5d48127560b34257faaa251cc1ab6bf94d75c16ce72ef621de23bed81fc5a7cb87251edb843ddcfac2395dbcacbd0272a39993e151ff3c7d1c6fa05c03a2ca8c318c1edf205e5a5803bf4250806df48906692dd2c5e7aed27c262c67d6cae3230597d9c34024ba5cd95697345f33537e3aecf2491cd7001bd3c005810eb24c1f69d6e40a9087f8ac313536408e453be3c9019b7c92c71173559ce68c00d0d7f1c17a2b7dbbde3aea4869d2df33400edbea4cba0fa524bd08d8d4c51368d1d5a27da90645eeb877259d698e38431f780a5a03bb9e20732cbe03ada648d2bb8a6e19784c7591e05658e4da41273fc42f0be553d8bcb40c2430efa9c3c06c19488f013251604ad3778a9911012ddc66da37adb11fc2d74ba38bcb0d0084f1f023a12340bf38b088a68a85dac4c55795eb0f9ff4a9a00d0604c38380bd3c124ccc52fcf3e7070138575b2d0c1fae53f0d0418b9a3df1c701032288ce173c371496dd821c14b450d40590908e04e36800a6df3f55eef445128071a10504403b9798aa9fe218bf30b103a3ceb3630b676eaf7481f190d944e0184d7a19ac700adb67c426749834c0d44c020fdc7406faeb8078748691ef0ea1e9ddb75f8f9803619a1ca2a60bb515f997bfb90708d4e506026cf21431ac97bc86e0a1a65a768dc83d5fab9503f1386aa8e61ea00e6a707b102f083b401648469fdbd19cbbe6ce12c100623745acc54274d56621285f2a9b3db9456aaff738f6d0fe75aafe4bee1918b4afce61d9f307b40dacf0841f19538f8450b81dfcf9d9797ff7380172bfcd7254b97cf3c9d6a02e675a9a0b4995d97b847dcc468b785817469e5323633190ea64c52625f033d447cb32c91dd56011ba2c9f4a663874e16a4a4ad436c28fae819e8549c7654a079fc3ca995a1514428c2bfb78391d76b33c1e9228c5a7ba9c62cbb4e8c0b444b4d96ca188f4b8aba736a8ebbf09d45fd625bb6faf0d873eeee060bb6184dcae77e9595cf42c6c4876ccd967f5b2393f490330c90eb598c66f93716054094ffc5e34f4f51c18016de499742c395aec2d0023010d742a10b07fd1eeecd891eb66d29a0bbe5f28786abce83094180eedb624a8fce915bd1be809d0ebd8215e16bbea0199bc790e8f28625a544277767a22dca4a16cc3fe3d346417d92e40d2aca4ddadbf1ebeb9e60ec645a095de486a36dddfa66483535c42d3a6e784d358a58c9fa32eba2abb11e1b81189a4fa092a033435951c17cb577f26ac03a1900b14cbcca24fcf075f1317c0d4c8d0b112fa017d3c4ebf7a5c20743edb1e1771751ac75d69e36ad6de5cd74d087c04be71d3e4d214abf2e65bb7f56e36b047d09cb0723b8ef0a7f504e6340c49f5e1e0e512ad561ff2b68efc8d7b456cb190945ce739f3f9fe07837626401018e6da29b9807e7054eacf2b5d669bb25e5382fa10cb28226d0331985239fef9621534d521c3fe54f080cdb186790ffaf1e070cc95fd29c5a2512cd1fc06d570328925f27f5142b25ed4aa8cb5c1ebddfdff965a4f44bbca4fda705284028fbabc04e338729817d82a83b2f90b03eaa3fe2be57621a0a100c182b7647f7f7d2086d9f6c2fe8bd59ed396ea963e299e9d49792a9f73a18688b639a62adffd9728d778a197e2aed79a769227d7633a742871f784b48bbfe87bc8f29c339b654606999df3db3bacc3cc67c2bb25310a99d1c2a81c4fb3c8d934a4289781f0e76896acfde1c0461929b1a19ff760e253065cf74d00c9921e7ce4577109676fe25a64c2c9f1151239156b722a0233db3b6fb9f3554553ca86ae8fab787521436abdb474ca3bdfb921588e29b4280c969329833d889bc276f0f45aca3130c249c5cab77ce26891f2b6c1598155dcc5d1bb0bad861dc86ed535f281d88a1fb4e170e2e8ac328e7869d515d6d52d0ffdf4409a8dcd167dc0108ee9d4fda88cd51e817e1a7838b0104c70214e83f8169cd02a1e12c6a42956759ec47ebec762c1af4df42efd4756d8659799d6967a952eb246de1906c28f80b750fa44c38f2358a56edc331816ad4e3afdebf51199855c884c2a32637805628473c793f366edfef064e4c3d808409c025a7b11f443eea834bc22ba2350d1b9f9c7c6d2f3d02b26ef30098a154a40dc4cabb2cddfe5d6a1534085e0da3db8ae44bcfcabdc0fda745e5047f5d11e8b71dc1b64fae3aff5f40bf8d56ba6d854d149c43e4ea7c611ab754c664ead9fc1f31802923499f7a06edd8aa6aa480936562664c556df646e45d5f4ad0f034ff16df7904fbe8f082f161c4d800b804b365bb0bb62e719a2bb06965e857d08be3404140cf4b76ba093ddc50d1e3ccf32a1016519164e8000760b79fd0bba8dc4ca2d20c15026b04af4c3e6d16fe2107a78cb451d19f0341d4ff35006762d4eb8ba2151acacf43f66655e16f04de8643b596c13a23b2792bc636687afe7e115c6e92ca3a82be25fe7286929f90ff173ef959cd65d0700470c0f49718428e2a5fcf23a0cf5580ec28b19f708c7a46dcb7e624ee49f1108b9a2177b744468c447d92b787506a759ddf4f49d482af2340862d65fae4e75fd511d5e6fed89e4b5cde4f4289a07f9996fd90b883caeab2f90b31f04fa0117c5148c80ce22c360e8af213fbb25cd309e61e1f3a4f8c5c6f89585a06f81885f1acdf858a8d4660741853cc59b201a07935942aebd336bb7e1b4eace4914635abab0a83e61b38a6e1e275c4f155d973e6283d1df03cc95e3630fbaf96d9c28cfd5529eba442675fdfd417b50c4d0cdc970d934914c487fceecf79e6ee465eac33305267b89e4419eb641c7880f804284da67146fd3996e5deca09ebc6449c52b3cf847ba1777573953367a2b7ba4050ebd02b6c3a2fcd4dbec749cf542e43baece4c5a075a393c4d5a27fc9cca1d0b5baeb2d3d67d3596e446cc64aa7fe7539d3378f64a75bcc9e8e111a1cf94293ea97b9d9ca8c161ceac8435e019b3939a1cb1c72f747c99ca61caf18d28edc06f0c93eb74d7636f4b42518ea821b12c882e129c96d55d4b2efc5dd363d2478675772dbaf94306ff6f6e1667fc57ef25d4c036a06e43b033b1bdcec073de9ba52ca6c9835a9c006ca3665b43d23414f24dd4216a9831810c7d17332470eaab8fd4973190933a48f0a5586863ad9db8ead4bc4ca7b3194612653f3acdb75e30999696cd3da132f83970265222edefb2f233359ea2917053c29d06f9eea7ea8c7223f29328b2e2d2fe29f1b401223fb573013c1a48b837498f790d1910955fde648d661cb1c56760762334f4d87b1891b913eee4a27f62061a5b3a9280babaaec7dd554ba640d2e5d46009e85df4fd1592e60d4b51987dcd8bf14e6f3a42e8a116ec95b9389c9642500a380c484b3f5b2f906ddcdf43d5629e9bc6e86700f415b2411fbaf8ebf409cf2356a109f79eefd105dcb1acb21f752a46e260eaa6ed42964cd34c8f05b3686034379ac958d38a376ddd96f41373fc5126f6f3d0269d7f4fb5e3201945722fe23b4fc587e7db33cfff9f73cb68d5912374ce86c12ce3c0f8700f8a880d132b42b804440f3a11a129bf16815f951923d0f7567d519be8473527fc16fa5b4ff41df7159c5804c4ef7df74d00f403665197aa7e8290b6a587c883f057bbfa37bdcb0722bc44d796d5bda4f0a6f33849ef4a6faf580a4a0fd2bbcde75102f7891a1f09a61fb112f3a86211447e8a3bbde353b41a8bdd84438c0055f273f9c3d1974034601083ab7f6369c1e795a6dc0887dfad16f891d9a46d831500925731881ddb058f76dc7e2241d26731a348cb6a3e28e582592c35247000c01afc140584b2f839426bafdbc0c46e05796dc2d48698025b4d6c11aa706400db06768d9366ff8307428e45c40ada0dcfa3a6e487ae4c60801afc2bf161267bcd327c57860499020e9e4a3e963788c50f36fe50d058a87c34a00ed5e6556969293742ccbff40aae3605ae82ae600b5c53b5252573ffaa641a4d62a315c8ea02a49863d8afff288bb800cba9fff792d5df716285f03942b9c5b1df916651555ec34c15fb727136abc603213aeaf63a5b5aedb5953f526a3a49cebfff0813b8d172ad7d4e31e16ee9bcfe3652d82bf57b0afd075b8ebbee5f6f94e5f880ec7a27e08f802993d60b3695aee70fcf639a4d6a6177f9f0b0fee68f65965367c9e336f98ca4c97097385bcabd7c93d9ed9e1f0ad96c54cdb55a52e3549fe82ee69d4c88b51b0bb236f3fd5fdaef1bdbe007be280081183df237f8c044d3692df706b931cd647e4295c3e122849960e2efb50ca6183028a8ab48741be3f7f2aa60085dc3496069dd3f97dfcdbbdff9107a9c795b1cc34c4948e3423ca48f4d430fe4c39ad451972b16571b86875b2190264fddae84427aaf9c297c02e19ef2e505060193bfe0c94676ad3e262b31106a3150bcfcd24291afd9ba2274525e4aeb81a26843b7f1838f0a844b086f94053b6882f82a18eb3845cfbde27f2234f2a572bad7922f6893368744f05fedc2d65841bb9ca0f6f99cfbe0347ae8b2ddd97a2a4b508d82c929ca06c28b3f275ad8e1f99c85f79201803310bd863cd521cd701708231e17742ea24f30c10245b4b5254df8406edbb5d810351fdf84229e91c3872081d1824626c85890b781641d57f172e4149a2d0e001a23e4866b03e2640180fc2a695cfdcfb2db3c85ae63d68dc92c54797f06e18a437fd12bb08c598796061bc6f171bcff279808be54de43be1bb585ad3c6a67e681ad919390df075cef1918e87cf348578b29562a674eda21bbb362856dbfa7f6256301a862237ffdbacde0d95a3ae33673a6de215e4f8915e49de02fdf88f6155469a2728cf9957586074550cf002ced50d6e4a189ec1aea447096bd0563d7845c005151f2b466fd949c44eb90302724b99c6759670775ba7cdd3ec15e1f8217a692535b42151ffd0538246ad11baa9eb65ecc97b52fe1b862ccb07070dfb2767aacce74070cdc38c97edd58026bab6601e58164c73fd37e5f6a5002645a2dfb0851a5ad6728a50c4678ccd7409d26621b64215f5aa38641449009101bb1b7adb96bec496e1f8fa510e853b442844964473c3ef1514e84c1521739c9fa67c0d384b2d7fd1457fd02d56606f58079de2e6c57cb6fe23148f656e5fb0daca51387d17452f10424ce8f5b6a6e4e25076d80b837db50220f67738312eaec9bc77be471874af78423f6c64b284ba3e172f21d2161426b0e5b1e38ea244718d2e048b5c181410535e7a2a8b4010fc92a9fd2203506cac73c8a1b7792020d7205cb3ad08c116ae64ed11e1fc95884a91ec7af580e90d22de45703d5e5f9dd794566dcc136abea204497eb77f8a0b84aa6dcc3d380236a0fc9a0281d222639d0c5f2412feaef7ae49417330629a6a5438333ae3270d56d5144cdaee3037b246f6d919bbbb66862d4fae151cbb84a0820daa6a07d11965c0a568ec6fb4de53ac11c88b99a8a4404242a10484a12f63843160d7904f3836367ccc583e4d1a92acd5b3412846eb3c0910221365b6e1a88390206e59661e18f5edbaeb820f4e4b95c684d42f418d37adb6504eaae98961f77520fca10bf2598fd69ae1c82d0e735eaecc24f33464a95638d751d4711ce36d3787f6ae925e7e3cae7c268c6e434bfe48b222403059682b92f79f36d83360abf6039516d2055c7a15a993e084e255955a05f83185ee295e92281639a63c9a9fbb7c0dccf732a34ee78ec9d24000c7dd0f5ab1a02d79c324195443468f54755547c2493c232a8357976d3f0cc4af4fadd69282b2c6fb5aad67d9920e09424bbc66c5efde181e80cbfd27394eb3a88db93aead9b5c4a89b03d4be124e78546ac4809776f09441721580516c99cff3f7bac84f0e8bead3ff0363869a291d56fd71fdb10231340ccefc15842620d826ec805e62e8d6a5fc977175cabb78fb60a74ddd27f595b3627d77e4687da60b4ad0e342cd70984bbaf1d50547788627b9e6f6b8596818cdf20a2df70a177b8106bb30d136bf16ea4059cbf6473a687bf41421ef292b4e643526a426c0bc984ee6407c57fa58abfa46757821f08a5e9e09e081336ef99d9d69662bc26e54c2082cc21e1672f2924e412a0e3d6b733c1d3e4e70d7a40e46b72a7f284497a330c002478cae2a2ed27a2e2b2d04263c061cb280b7a78737f521429fe408be040775097e3493eb2e106d14ccbde8da700d0d85ea9138e39a0af42773264a403c2cfbf7b09318446adc83b03b616935956ca1c6bd5e7044ed07102eb29ca27022deff239ca518480477ce40b65c55417443a263c1d15d293f5d1b3edc1229c92389fc71b3a48db4a869e8364e03d1eb7c354470cf005c642cbed53491ac322c670fdce1f497da8211a06d4a1c82d9a863910f8011a951800d4664c7c279f497ebb572ae75709dd14df06c43b2a548034c92626ec5772182cf4c80d60816446a9d0814cd7973cb50e486c07f98b281491001135a00d021b5faf5742888daa9aeccfc6af9933f5e8838277ad53228e11c593018c3b08c5443902a87a62c02320c94504d6420d51f27366e456fed3fe947bbd46bb72f826db9b33dd873046546905e6ea66a6ce2da9a00fc25510faf2fa6fae4892ab985f83cd0a46add4547de02c4c6632b4fa7ee597f45b58502ceff68f0d7cce04a5d7936f7b3fbc6ad13428d60de3c41d51861f145beb3d7a8156ffa718959115388c5bc8e93bab6847cc6ad346328c1a9097ecf8db6aec8f78a5ec190cb5cde3c11fd7e06aaa9d7a16adc686ab62c211e288eed8949890922602fab0753ccf90f3ba2ca93a59ac9400e2d66d5676c284d798fe796a30b6e0fc3bb6f55acca958c78a2dd5801c65e26f881d22719cd347bcf509fdc138031c8a8a2c54f1a45823934505878c6f659a2f5cbd31665729b9ef03206448679dcdcb7d9fdecb24a840299fd1dc13f6ae6aea20c2d17c7ae3044192b1462a1ea062f09b81cec2344835a495654bf3216854655df87c2ff3e71f9b8b2986b06d4761f17ccc20bc6f851bf31a8b031440fa10526601c8da84eac80af1a839caec0941fdecf24c42bd0c1cc726abfcab42e58380e844c3554a1bfc5892dbf3efada3304d4502e828e65fbd0fe9cf6f7b3a66065420bc5166593a664adc72ab0cead1eead7a1e03b4d266ae6d62926ec06427173c3593c081980a566401ef092ef8f7019c3f4dc1b077b082b15c2f18a704782d5415560ade48a62c2fdd51b0314516b0152794feec6f6fda89b963a19da63a637c9d567baade7a23cc3dbd04ef04c8d71ab7238cc5c172978b948b05ecbdc74a57b9818cd9bf29ac0187e009dd0dbbc8d5a85653fab37fdf515931d4b97d4f3d1b1260569871825e08c612e2763942141ba4cbb5f40f6e9f30900035129028a7777f9ff8266bc0b57f00b5a31936fe1d0238833cacf169f0a7ee99a0e4aa8506a234ddc5003ad1ea89bd1ef6edcc544416ffcbc81c3a72e3901242b290d3f8bd58edeb293326cc5f866e887bb17a22deabec2e3a2eaa74c4285728488746ef4fa3efc87b4c7ee5d640f5f407ba896a1a41d72491bbffb5f3d0bde2fafd9d2c2801648f5c616161b444e971890e44b160b134578189bd0855cb3849f1391b2e23a22918994ea5302cd30e9d9c58c203f7d78796b26cf911e577d236476b36f9819522a83cb33ef40cfabd103f4b8852fc525e179032fe60e853b01005258dc240459731c96fb94c4b4e6a40ac95284cd0801ab03160e1aecda3fb744bc23e20575de3efbbc831b374ab77411f089f698950c41bb18d499d10038da82c30e27f6e9155c8f4f2cf073dc9829fa4b6f7c91371d052fbf7ad7af899bd9e011f8c195cc7888d0456cd102225fa7a84ccf7a61af256a3fff23caf49584b852f38d43be7df1437b788590dbab6b7215940c1bc3285fe9ea250dc92f113843c37c29848a6d808b170368bbdd30ac805c5c139cdbe2cc566e58a69941816bc85c399248a29567ff816055a7b079188866b876eb82087898043968662172dfc8fc2d927c0c341dd4f1d556a427efa3f9beff0c409e3d8dc059e1571e408e5d8faba91be22e7f03977a2e145f79730f207611c1ce7535ee1c12b6985cbceabbb6160ffc0fce719e6597cab9a06ae41d1060a606ef513996ef18d574909f0573e1829c658e55f4108357097d1150439ee503ec7e9ffb7e9f6a351ac3ff90d2fd405977e0611ce706753c44bfcc0806bda7a0927772d068a3f47d6a7b45f49c54cf019f2f0d2b7b0d4954eef1be400690b1727f5709c5a674233715bb07a821703b232bd40735b0278080462405e6157b09b223f200bd12f29baa961e860d511b4a6f1558876d6bf1d640c5f09adeca19f25d74043e51d5dbe8fc3c432f5152438bea59997234bf1f4b2ef634c61b8b46f915487f375a0a4328f5fdd3c784003a715d7e8957c0b7c20528b4bdf08e806eba51202d47d5fc893c89c018d076f55383148ce936804610485b772db88b9c117185bbede264dc95fdb0f424610762c748657e9eba5d0aa5144d0cf790d9bb8f3fde03f1c15768e0469057d05f9d183529f1d40175f3f7bc2e4cbb934c123ae4934995a3447884cd28fb62079809df3ad5e41319ad8939f7ef3131520f2fc26a79b394d42dfa9cbce4ac758300e30a88103c284fa71f0683580ee9df05459364827f66d88619a58f59cca59355b9884a07ae6a3a08c9695b8bd52cd447d0bf0c11d10e698b565fee08199f5830991efafebed4b3684f382cdc2e673638be9b41b5d31934d9531cf4de62eb5d81571b5e15ea0136e078395d9ff207bd785cad54fcad54e1110a3b6f1e10f3b158f897f2632e136b4451e6271602b8d7b40fe12159b4b11abd89f727a1543d1587aa7af822e82e79b451bfa2cc3d58c2b29f984b1480a1b5ea2f37b9cd16131a589cd7f734320c0ccbcee23ebca7a7545f88615eb5a5f1c2a16ecd93ab69903c7d5e419d16a6c6040b1687df645df4914e03f08a64611d2198c6d213c5553e9911776ebc183605b86fcccbba06810ecdc7312893716358c733ad3d8c29a52bced5f9c7b84d17efe610776d49dc7f93ae05f3997235f7f8e8199a86ed5e4d83bb3114baa9f5f5ef775d36a96b8774c6c47c73f02ee9a3a8175951daf2982aacbe520a382ce976a25d35b987a8c13b23aede55cbf039571f96abc797c99ba4098d0db4f16b3bf16df256652116088ece3eb3d370b15e3ecdcaa7a233f843ede2b678b43ac646997f588c3fd0ee05a6311be3b56fc40265be22b9907f50180c48a9b4ae425c20031ac90774babe30443b95e54ee8d0ecd1966cd3296eba0513ae38d95e0eb7901abdbffd050c4f39a5e040d0982d4726a344dc163f6d52668d5239e48e5563703de72c59873bedce5a452f3898bca27041b4c5091f1bcfea65622cf70f978b0d7068d2005cbbabefce420d96c388074d905c986cf04a638a71c9e1d5ca550aadf852470dedca8b0700d07e70384e472f9e3b022c1250d02b62883c453ca15f1135f99dc4a9b59a313f7bcff14229f4de222263f6f6f75d945768ebce7f7700d5b9fd7974d54c0e129b9d55ac4710418450d468d2064486d4b29eb151b452ab2d0307ed427dc512fa68e8bf2fb425dd4beefb1b6ad0263137c8a0285964d69d429b1f2903648826be0bbe09fd0c1e6a277b384a4aa805cb2c202895c0d96b91969fca69710781d29dbae9052c1172e8e26f88bc4a8460186306dbaafda0f6dda11a1bfa2dee8d24bb13d30ca9d03c1762c9b32b7c40ea898d41223bb43a7fc083c499571a579b9aa97c0948e299322323c9d605e4eefd44f07f5d65eb889a5bb6fc742df62c6334d56a5de6c8b2c67d7fd2b699b1a444b51080bab93f6814d755985a57094412bc6a545cd8683b119177941d161bba84ee3bf3326c2a42beecd8669dd2126533673e098deab96394eca6b8f984c45cc6ba3515f26d9cce6ef1c2490056dd4083ab68341d790048ad1c97102b985dacbc95195f1ebc93bd388bbcff4408b6696f51064cbe9e82a23332dbf8eb9c4a27aee4ec724d87a25545fe877f5504a0237dbd9298aec721241e6d486d228c4690822622bb39d95dc934b4cb6f4de05eb00b9d2088d82aea561c8ee0479c6dab7ea953c7fa9a9a190a04a2ee7b3bc8b41e232092ab21a39b67d5e2ddac59001cb196085f6005deeb7074938d48f40d3bafaef8eff2a46be875bd89e820eeb0eb25dc5459029ca15fad641002c967bde0afd5202686c50423bd239f98194ba69a1de34ae9eab042566cdef38f8be8058685a8b2c3457e6b15672c4b90c537615d4f27817aae374e5c245dbb6de6bbc6e61b03bfbabf30ac6a0236c4b76739d1ea709e2a62b2883ddc26aa7b0797e0dc026b96f8d4e14892dec95de27a0edb93239d18ab4ee7100e028a503a97fc0228df24148c827a8beee9708338d4635e746310981d8f2f563f82c92a9e208d42b0c77d4cdea8b31cb1091f533fd224979db31bc186e566d4f1847b44d6d42263ef4bfcf91737c0c3f54ee5dcc6aa456548b5f39b817120013b9dedf08a588a00a3d6320317e8685d54866fa6f63e2e73c6aa46b4ed45c79e3e9da9c5bb789987357f0dc62e8686e62852be734888ecff0be60fd2956b1c45a6c633196d8c656ac6289cd58c5526cb18ca5d8c52eb6b18bad5862195bb18a8dfffdaffd53ddfefcf77f41fbf15d8b57f311b78e48ccd40cf62a3754a136f9e06a37b45db9eabf08d7e624f46f983c0240aaccd36c318285ea2c3dd1c2518d9b1cfe447cb9c7cadd18ac47a1b21e9cf7b424f6e6a5db6d89aa67953348a3352367f32f60eaecad1451860a85e05985730c3b3c260f1e6cde05a3e38e50a76d5569529c1ba035de710f5068ee9c89f65e0d8d0612a7bf7afd907fe2f8e7edf16197dfa35e26b32e896bbb435580e438be3b0d598abd15366c175dd9cffc62124822bde21592a9a663fa96395143c8ade2edb8954489134bcc081f0fa196354829eae48969ef639191528c6a41d0ebb80744ad306aab507d2e3dd3b5cc111b42ee6b6f458d248ab85862b65a1f00b59480570d83a276d7cc412ff96aa3d0b5926fde0476736dd1454ec6cb4aabb4516d0b6be6a4fe0fa8bf9e0de580c902fbc47d96f4cabbb90f9ce45a0b9fd374c09ab58d42637e2f1d0f1bc061c85b6f7d7d307bd36a19075015dc32601f0d45dc2e1b8a0111c16f8dd57dddc6119aebd39be42b30d09311a4e52d7e5acbef475e1e40b4bc27c2c0c4b2535ca40e41951f373660c011893fc8299920e45c5faf0879a0b78b7c195600e548a98a810aa416237088a1c1b2754597961b97f9acddf1ea6f35d13fffff7303b6ce2b7c6a55623383c6807202bd5335e465862ade10b67238a28d8b4f0af112388c85c40f90319b71e7ce76e2d4e027c3afc455512817c992329a45402a95941e0742f4b1197a6767607f5fc30c368cca1f57685597fac89ff345818d6bff33f70b3ffb7b5e71eafe7a9b127cf7fe8fb820c46ccf44b999897e4383adb7ac0117890ead20416f623163ca1ade2d481266306e6b4830b9e6f7376a14f74199f578eb4e327b8c3fa478be46f97383baca4645fb80b9e382cf29df570037c747ca6f0e0a02d711f31db0ace08d359bad41c5bcdd7b36af24c27123deb7afcc9c716b97b119cc1ac084efd428b0c1571352b088632c64eb2a4d0956d8f178f97054415132c7c62eccb7a961258d584d5451ff31698a8bd551c3cb9eea95afb0c77f582a803bbbce581b42fa8429482e821c17778aa29757a82adf64ff579e4a758e928d81a20f68c8c19515290c73f440fc263895a090ba2c0ca24aee182f05e52641d39a40132c8cf09a3527cb817aabcbf88d506078d98cbc96eb82f411adebcaf81f271d52f7b6f542529e453b76819ef0f8c80e0940e0802b3e861d28dd39656e8bee68ce5d8c82676ebb8cb8c1e4b29e1a43ec5ed80cda90f53f838ca3e98d167c686e17225090fee818f4eb9731137af1e9ef789710845d68a24487049c94611f0c3af72dc16280cd24fcd5dbde0268ea2d4d0e4c10a5f3662cbb05a13085285c308279207caeea59b4d6fd5fee98c3e74d1cde4e416c32994b628095f088f0a2aabb2498b065c53d9bbed54db13d2887b9c306efcb996243d19d50d7d2fc7f896774d15154fee0e7adb1158fe260292f60194fa88410e0dad7963621f22b13bfd076778724101962246e9095c1b13a9b9de51f011714b66194473ede2e5c1f8f975981db21285fd6912a665dfa7b727d515550fd0f019058b0b4200ace7b2c0f0ae225d722058967fb4110a0661c63bd71f0bbf1374b8b4b100532d0e1166f2d4f33dea00556754ad71f6a0ce4baf4c901a14e174cf002e99c1ba364d5a7e5ac5c5eee23f6e657a979e4510f1c8158fc806e8a99e53e37cc9d7592bff835869d389a268ed98f9aeaae19e5b57a78b5c0db7867152df3f84363834b0a1def7f30a1cf1f2abc11a2425a8d0f14acc08bf794ff74c9fbdf4be7be2e38c8636254d929d910050cd546f05f767aa1d5883b504b4082dd3414d9f694c992d381bf643bae02733e3725471ed4656c775abd2cc76b1e24d92d1900f0a16316b401a110d0f438fb786ee071f9cf0db523f3124a3bcf834b02a4d29d51085f36deb854e63f5aa93a112383ce0387a81641039a58a810b91db338123b82f430e572bf2b1e89f4b2c4b1b6494329d24b28027e38e612cc79b6e81dc42de0b3763ebb801c3accf8c88ab7a96e9e858b5aecaff6ad8611a416a06c1bfda61b6ef5b7589515476a17433304942a2a37ebd0b284602598bb2633bf8d303c06fceb2fb0b8585a03bc7b88628462c1619cc326b170dcc76dfb347c28833ec329c5401bca53f99578e6e115418319f2f689013998dd9a4ea78f752193cd0b4cdb26a1b4eab14b45b517f2498ad83fa184d4cfbf1ed18b372139233b07b821e4d1eeb3d202e9bfde177ca63e1683dabb27263dd58fa79b69abef3c8c13484378410d10966bc5b98c98cfccac6b948a6150bb749fe3cda2ea40255cf207dd020af7f8fbe16f1a05cc5a89e50a000df584a9a610c214b35cac52dff972104821306e62bc4172c2d56c21112dac4ff55efc525ea140f27c12381af7f134b2005803f428b0c32bba55f39e6d6ccf055242fa5632379bf47eaf5b075c5e57784e1fbd3fd7d898d551ac220cb85d4d8d3b48d612757b6b2346a5a7216e25a46e14019ca01e37238e3a31459b271502153a9416cbe387fd8826a4adfbd738dd3c2c356a2947656325df3a349f984ed20c72a4340d44b66a57a2b20d93c3320472f9a45431e921098a958a288e4e04016d10dcf6dcd8582040bbce8d87a757569b061d54f7ff6131ab81e15599f8a23471f09fbabd67c42e9ece680c41b59971619eab318f06ac67e6f091b62c897dfb934f550d080b71ac3c89b84e137739b9fc388942f7ed39732de7c0a47ba9e3cc6dd418191a3f79aa890433fa4d070ab4bfd4d5bd1b49b1c6ce63a6e850e0e8fd62238173b03416b439e05b1711d35e7a3b31449921b023ee833702378470e362e01b71ffb5c2d47829360640458c08cd49e1389476b7326dfe84cd78db427727b76e7f3fbdc7282e0f6cea615cff136f98921f49fd43157f07c2cb4e182fed0c4e4b554f47e5d10ef43430d18726f767114e5ab3569efb1fe9374e165d2978b9a01427f0247d293253dfefcd9384de45c9bc4e6ea568cc9c5cd358c7234fea4a96de607cd393b87912b66c42540eb0f93126b042c0fbf62fc08d6b3079e9c4bcb74874a0783f68c6114bad9cab60761564c3b3545c5ab91f704370237463f006506edc01bb49fe9968bafeed45110f33bb4b23286e8f9cba60fa95ed6d0ba1a9236d433b3c3154a167bd38b36be82a10ed1168a71fcf2771696b91776ec2319a095a3a96e5e40950e34b49abb55bba76fd5957e3570270e97166d76de329b005ce41247a5d7091878a25900c06306f2e033425c35c03ef96fc52b68d28cb84f66976d2553bce7110f0b114f6b1d2aad7f4c4c3efb15e91207f92c4bd434ceee8d87bc846c48b77ad4b5a462e984bbc408c586c28ea437287376929a1efa51ce7d3d6c743f1a15529e8b7da9448e4d5819358892700cde802517bafc064917723f13ad291b39f3de0dd47dba4034e12dd170c2c1114b7097ed2b7ef2368d4d336f7aa4aeb9ae3f0f03ad1b812484a871dcbb27b534e5960e8f953c9ef78f00ade1ce0476d1972f53b13b76016a6980029fdacd5ec4a66542ae4ac57456ed7751e6e5083d2a8dc851039e2a461e3752c78cad50ae335932c70cd6127d9f03e5d926a9bb73437c29ad7b16eecb4b0ef4b101c19775ce6a858f06964d51c026c3924b9715fc53e41cdd7992f9373d30dc437ca1e0a0789412c579bb4fb5607e4e7bf6912f75f59fd5102aeb626dc0bf3f005cc7eec71e728c7de93b4b459c242e1b8e9285852a8162f69304fbe91837867e8434eb7bea66b7a89e6ce39ba03f9ab700a89ac100e95b11630485652f4be58efd7df8e820fc04bcb2dc259f872d7fa58ab2c30371e99471442ec303b3f1ee74bdd2cfe996f28b5697fef2ef77b86ba230b0c424becf4cd155055603736bea845336ca73e38d27881e3ca2c3133c9a6fc5c41d3d10fc7e275c708a59ee5a565fc2600d8648724bd33b969e8a053ac7117fbfd295128d0ae4b4b15f6e203499930feb9b572b37c926abef594e66ea80c41120639f090af4da637d210267a40f0eb63e28d21a1a9b395f5d5f8d140b5764fcfd007304f20d655fb7f64040c2b3704f0177e91d22ee060c6d9601b0ad6ab0a8f7e54df95ca07e55cad2bc07a55b924f87413887672bc1b198c2060151e5ef2bcb9a830e47f0bbadaa1e40ac3884be6eaafe3b8af24c7e96b90b98810c242433b5ee17b6b85f9e3ac62af78de77575f2ee4bdd0a4d26e56901db84952ac3c1011d2ec0ece2ab73265e46b4e0c5edc1f7a0497957134336e6736ec6ab424971a15c9c93189f94ba7be568d8cfda8112a5505538364fba101278e7b034c03369550f7d0cb9e45113cf9566ecb3fde71223f38255bfdf641b62f36750b1adf054e985e6591b0f8c162210e241456ac23c8894fccc43dddcf2ccf6909642cdfda3663beab060cd3ca351a536e783d5a2433f66527c0d8c479a06c4516caf2396660d1d1ec4fdabe5afc6c6ba72f0bfdbedbb76ecef25e96c4ea2309ab7a834b1a477c3bf71ef15b4951e122db1dc4e675dd0392f3d724a239a39d039d5a382c8cadc92c7445aff78f8b67b889b755d8b179157d4df078e41b769c47190ad4db82fafb171c109ed71cbcdef48dc6994fffb8d3239f03f4440234d0035a07e39d5b30561d710e69a0fd5a4fe380229cc0977768965e18852881eff4a000dbabe43ed8e5fa30ca403691c27d3082ffad6ae7bd92a3f9740de623c7e903a915155485f4172fd1de7a18a08f9bb16fffdbcfda77e993d0d2922da59449ca900aba098509369bcd368e2d961071884389b2b269e2c771400234445484080f0a45a6522ad56a457b924ce95a45a2521959ad860005d1fe8e18fb8454467425b4da84955b10908f102150b75464c88d112f802455aa95ae957ec56209f1afe4bbbd23f9200e9188994a133e4384040d7184109428f8a708cd49d779df078261a83dd13d5d13752dbca1d6b5590e47ba16532a954a25140a85e281daa13aa16837cc3412a96432b59c74edff8442919e58fa92ae89ba860aad2667aa18d24875025b30d82c8634529daa378ba9411ad1a0b972ce61d775b318d2c80b3b4d7beffb401004c330d45acf62682f8e46e3389248a55289b424e99592356ad4a8417bd3e98442a1c8542a45f2f0f0f0f0f0dcb8c1c383e3c5eb7baa12217cd624052c961d1e6270cc38120017b0175290518fa017560831c411423ffc0060082bd5cdfed83835861620b6d8ac879be9430568c860d80193830e128fe746a9643a9d50a877adaa1093e984423d49ce4a93ae8d2f2e249952a95eab55e9224b2c564bd76a904bd74aef027abd60309f9f9fd2c6e7e75d2bb717675d6bf9ec8dcfc2327ef9e2e234fc63b9f3e232a3060d9144228de3972f2ea4902c85a4c9743aa1308a2453a971fcb2468d1a35be30d456d35e1c8d46e3cececece38eae8e8e8e8e8e8e8e8e8e8e8340902f48a312a67b60afcd0c4edc74f9092204260fa28c120793c0cd1d19283c5adc78605478c0eeb53d4b47654ec9801abd1a2070d1e590e60ec756dfc374ddacb55b2788cf1a2b96c25cc715de78d5efd3e10a4bd5cdf799fae8dff8561a8add65ea9a6d162c48811c3478f9d9d9d1d1eccb3338eb8495dc2c8ea35fb09d29143089a128b0b0e529123416e85454b0a54000493c5e879b1b1669830746ec468c4ecf0782e5da3bdeba56b28182ca66bb48ffd934662252023b0d66853d616d9cf5dbd4bbc4750b4590c2ef2628d48828c4ca149d022588bc57c7109758df6a10eb528eada0c357ab17cca250bf8181a490b5d890721c410479486b45a86407f7ccad5b3984558318060361c6c66bc784ca6130a4592295d6bf9d47d213e3e3647ec2d1224fefcc0708831a96be593b194aebd4ad764af2a7f1563e95acbb35ab6d5f24a5b2d4fbc3f968ae09f170c09901157cb87b512853cec65b3d96c369bcd66b3d96c3756b2bc982d4248a248092b41acd50f12232f73c1e1486988e7744291642aa552adec6ae595ae5648622e1b14ca88a952ad740df62b9627e220244882ca179298cb46bca531fff80809f548879dfec46ee323402c7305a30931c411422e4fc29fb8d91f5e64a4f5414362a805984cf84fba5642a14812a774adf5a9abb22a9557aa527922f9a3909185a40aa1b956370624a260364738b2092b3f5a4e13f24250a278125ee44a5881d9945e2312d70f50a9643a9d502852d7723cc922e589fea69a0b195a9d5ae9d8d1e3038542a150281a8d86a2d160baf67a584cd758af6b29fecbb2ac7953d7666fb278621502d3355a2bb65ab578bceb9a8a776b752df6f6de0b335d2e988f520bd305c3489121438ce89015c9c1a2055596a6aebd7a9e85a545a66bff321a9792a96be2832c61d5e2bf30c6586cd8a26be2bb84578bdfc35b965998f50dc74cc868bec060e6f83e8c5e60e39364356529ab297900b55a4027242d569e0e1815058ad5bba06bb114ba5657f0296254e81acbab589d1e000058e189e3bb9022aca50b005684174511305c588459c3f4a0b977765f60c18ed9fd17c6159e8e971ad37c0980113e6acc9e2324c9a3a5857c1e2de457c008cbf57ab15404915caf143ce028a14a65bd28195d5bbdcccc0b5debf9172e18306874ad7c9a1a5b53e395d6d4c8e81af994d6eaae6be3bbb5bad67a0bc38505c991a07aa4452ca8e5c95558cb4aa36bb4a7a9d13554ca448b11c3c91d3a7cf488751c51344ceed0e1a3c7c58a01da779ef77dba86fffbc2300c533695f24a539de824b943878f1e71dcd9d9d9d9d161a869af457134d235fca351d7683f9248249665b1bc5256273a49eed0510a499af625d2643a85275dc37f2251ba467b14499224f9b2af9757faea4427c954486adaa754a16ab5d235fc2b96aed19ed56ab59c245ba14bd3be0573e91aeac1d84bd7f0bf60652ce624f9e3a74c376e504ca3a168281acdbbbc0a3a891fe732234a0f1d2a4b3031dbf1820e2f0c015d21c4103e3bc2672e042588911e802451a4849527644a7bbbc0cbb533040f56e8c70bd80d341610236605b612461130b21a2c5841e325071f2e6020f2834f0658a4a0142ef0d4e81aed6b62e81aed63a81e06187c2463663b789c3c2f955034ac22c798198d1a30ece09183a3c293a63d8a2453614ad7f0a752a14ad768af5aad56a52d4bafb41c4732665662852b4d7b56abe572e91a7ed7eb5561305827fa8f64cc0c0618608081f631f2bf2c4bd23449161616f2c5bebc78a52f9de82339923468d0a0d103ed652d2dba867ad02574d135fc2e23ed5fc6d96c446151a0f04a5174a293e3f8128e65dd22499215488c1816a817e0e1b9e1b41b4eab4c9c87a7f4e3c5908fd1e34263ab4b5426583c080fc1103e907abcb0228922259eb037fbc312b145ac111ba4732aed103a329043070f9f01519508d102c4476ca787db0c93c6a8023560d87173006a81c4bb81b241b980c206470c0beb0504c41ad1ca1750cd8c6cc556ab160f1f97d86a07cd0bcc74b9603e5a98ae1e24183f3a84783c0c69c9c1e288add50685c205161c312410eb558e6835b3552b36c38587cfcb0e9a9d1f17cca4d1c2078c1ea41ab79e870952811f5e7512b224071b1b940b2840161616f0b6d89616afb4a5139df50202628d68e50ba86646b662ab558b878f4b6cb583e6458810214284542142901829f260fd6109495948822d362d360fba84644896147c09c917142f2139b3f91b27713c0813923021c9f2375efd69ac1710d08856be806a664f83c64f908a07c3d006e502398e248e27e95acc93487fbac97bef55f1477e682968658a183162c4700145b94447e706be8143493d00b471c45a7f626d220426485999a0566e3f7cf613a42404311e2aa24c392561fa80d18344c41619528447470b8b1c52d0535615d45a44959284cfea508c1435b6d60c971d3b345a946a18918939461c3a3784368a060484f2817ba068403132987fcbc686a6f517860b4bac050e529167d1e2736b0542d17af8c0b018196964c8cae69a955e2f650c56cba4195960b8f8a886c70e1d397c3a0ffc803e1044813e1e0c71d823a401c5c83ad1c9212b234686cc4aae959197f245d61b376ad083201886a1aea17ca0c43ad235d98f604e2229f5902449f63c59da6dcbb61ee59205bc0ff79d1ddfd971dfd9f19d1d14cd69a34f245d098fd283d8517a088c1cf12a9108c1a645c302c3e50707a948d08d1645582b545356262a2cc86f436c2e7f8931c31c7562228b1818342d5ac0d0411ac1a0699103478dcf8b65968a1c295d36fe23fe8dbd58eed6deab6b18639cc39ccd52e91a6f6eb6aec1d0411ac16891e363d0351c1f43edeb8d891845c3a3592aeb0c1ce29c69cf755d576badf5d65ac7711c59c4e8e8e8e8e8e8e8e8d0747494f83451adf8ed87ff04cd8670c44811f3e6d282e467085bc48c20a88a10d41542402d18a41c4ea56413573766613c3636b418316080e1e6c6e7e7c7577eefbdb5ea1a0d15b3f7ea1a0d63f26180a1c4f15bd758fcc6d1b596c719bd00748de60510838d2106af3486184c1909868bec6f4d8b97a0d5583262039491a068b0183e32249b362107aa8201d5873eb14feac4f677ea84ed536e28da5e89d411100bdba77daa927cbdf72a61041bdc1489224535a0538e588c31f6809c5822882a2528c1ed08911220c8d6fbf138175fe7d9eb7eb0d96f66a0423178266beac49c21121b5802576bad496bf8b141a58a119614e140131dec8033655022efa80ccf9f5983cf7e5071d9bc89e17a8c8b0686a0811324424d0002c7bff31fa5b0fd4f2aff771fb0b0fd53b84c18a3daf4890f43d8e1a64f7cd0c13e63beaa770052c71d0f22b68a0fb618638cb13b768c31c6d81d3bc6eed6b1c518638cab63c7f83a768c31c6d831c6d85ac716638c31c68e31c618e3305b6b33768cdd3c6d9410e088b69b3ad41eae96a40052d9e95274cb6a4723d895ed573030e233c56434e5de6b8ea660a2f11c35d9dec467fed72cc240fd6a8ea3281cd10046443122a3a1d1900cae1d1bc5886c277bc865a28ca6d4d114aac2ad0bc69190cb9ca326234a435d8a3000d2b7f65e0ddc6bafb5d65a6b6db5d6560bbafbb5b6bbeec3786f775dffaa93eae4ea303e724dd96cf6ae77c954d65a6badb51d47c41195600052d96912d9f8c16d65f4284db73137446758ecbf85bdb5e74966f5b1b73f5219d5a7feb435a2137405a5c96f4f6ecac6e7f7c4c60f826fdaa858f9ba6261f0abca32895a59544ea12af0672da324b230b01bf954bfae9465cb3c7910710d8cab6f95366c15aa6b18597fe3e595ca52529c5c9636f593e9643a9d9ebae9cfdfa7d936fd39db27255138aea35cd775a4fd3abbfd728d5de7d1cef33c97909326a4a7de3ac74dfa5c8e9b95ff4a0c66b59229574b568fdf55be7e546ae244a8f4ad122bc9f8af2b2ea3cae5682b01fb010b4241fa59f185f1f5848d9bcf706d7dce39e7565ead5a7995ffc6e65a9e2df3f584cfb009fbe133fcbae233cc4a924b71b394af220b833f56fe2082a564b7cc92e5c4c2e08795ac261606ff972c26168695c4c2e0d71555f9aae233fcacf2d584070097e68b8acfb079dbf8cf17958ddfbcfdf018411e87f5f8cd202e533e7ef347f5e5e36f95af0f9f95443f7e16133bf38f9fd5c4cec41e3fcb899d813dd6e29faf2b3b56b21e56c6de2c619f4bbd5949f6ebcfd2958d5d0f869dd8fab25cc2facf1fcb0fcbff2acfcb646797799e76fe5649a98afcac72a5da1d558173aa3c452c6cfc647976a8f284fdd8f84f2410364aa93cad124a8cca9335b4f18be579b5f8c439db272bc9c67f92409cb689f37565e3ef48206c12fb149f184068762611eba3f6a032e904748cbbfc61fdcce960a41b2788237430428023da3ad83ff9cce6603c5ddb5c72ffec5c76e69a8e016b59d0b750401946df14090d684aef8cd5348066908b73ed9f3408dbfe0e31db9ab6d15e72ffeca1f5b66f4975cd366e6b5207024865df077e1f86dabcb16179d623b699fffb340ddf7b593f8f87bef1ebfc69ad31d65a9767ccce3e7e1e7e6d7a06f0c76058f5f75a3bb1e78beddfe8bfa7d7a33bf4bcb0e685a3696762480fcae0dfbd87a8ff8cc0a7c7e19fccd3f1c7616c7636c2d3c73c8732bbd09fea934980d0f43eb3d5c5d8991b521886efd5226a8df79fa9cfd367fd234fcbf0bd67eae03dfe2ed47fc391fa64a2bed3e7f0fb48ee2d2a3c654dc5dddd1d67d31bdfcb5a84fe52697f548e3cf12f68be9d11cd189279bdf00bbffb2f7b5cf8fdf975dee7cfd37f6367688cad469c315b7fde995f65dcefbc1f99670cf8d508ef39b31a5157e0d746d41a9a73588da835dabbef995e28e36af37b2e3469e0fefb1bef6e2ebd4ebeac9ffa8c98627be6e9bd6886e6bd7150eb97c15f7fcf0ebdf20cb7a74beab3d003cdf3f6d8088d30c2c9aeb7f3517b3e8be2c1bd97de5affdedb7d750fc711e4bc191be1e6b87ae2ba1f18739d97e33da76b9e876d675d2602a1bdb56a1bee4bdfda5b041d220252d9291669414aad52150e41ab65e8b62db4ddd3fcf84f4ba5b33055beac5dfd985acb8c6dcde50f226cf818fccece58dfdf013c1b4a99b26d12bbbea552697dcfb4543abaef8de386325158d6edf5da2b9e38c4221fb7c75a6e0a9728bc43184f8a67f23bcecfdd6bedb5f839734990c7c9358ee2e41c8c679773309e315b7606b98f1f8cc158adbd41762d3da6eb3ad90db2a93e80e35c251626d3603c3bee9e34f4126120223f8cfeff83cb67d5962a2746d5d9b32b47b46be9e76c3bade50d55e13118fd4fea1d115b04a432fb9456776b816a756befc5b8ba6c369bcd66b3d96c369bedb65842c42020940861e3430307244998d846ec34870e1e4028c1e106aa26a9b656bf97e56eefb5c1d8b51262edd5b5928b4280eebd38678eeb3a9b15c699e3bacef36c56b534c6ccc81b244992240f0fc9c343beb804190982b584b4c87e7cca95cbc26c9c4ac386cfa6d42025d1e6fe8b07e3cc715de779fe72d96c369bcd66b3d96c98765bac227088222589a21c3a2a0f25364742c3b689784b63d10d140d87055c6b2fc6ae9ccb97ae912d9ad16cc17061391254a4c891161f5484454b0ce3cc715de77926cbc7aac97271ce1cd7759de77d1f17763e7a8020582af9e8b1b3b3b3b3b3b3b3b3b3b3b38323870eba82c76af65222848e1c362d1a1697ba4465a236d12268e35498ccd5636399238c2337441634627678eec539af38ce65833127c4c7133f67aeeb3ceffbc0950dc7759ef77d20b8b27114ad868af142d67b3ee3388ee3582a8d331d5c9ba880223112234aab45f6b3b2c9a1a3aee0f162e9043929c1441cee2771ced3b5f1bd1f100c2add2316d35e63a9542a956ea954725ab964010f629bcd66cb369b67b37558837a091f21413f41ac5511488c380e31806c576ce2c64f10c6610138eb1af9c367e477ba86face836a0dbc2068bd82a027562a567091ac6b2e7c8e71bae67a8ee63b5d7bf9ce2f0b6663c3da91a28505b3d101c3a5d57af560d1e2316a7124c8081050500e23386258681c87a4d3b5eae3adbeefc5ea3aeffb40300c3b9717182d4030d4bad6f35ad4b5d58b235d2b7ff41ac191c51ce99af82321a3ae3949d74a4f2a0119b9e348d2b56ae44b362653cc656fe6b80f85225329956ab5727981d1a2da62cc7079d981d162341ac791542a955c5e4aa6d309852249329552a966cc9831c366b3d974747474747474747474747470e40062bd826a664d52a082d80c1e2f343b954a5da232416b1337fff113a48487214574882d2c6e3d36346c1fa3e5a26207ac46a9070d233cb2219dd3094592a9944ac5623a8b49c3348c693c761859cd5e65a55297a84cb4685c7e70908a04899f434785c5c8765c3d2fac19230c9d2337622c68f0a05229d56af5458ec45c956651367f692389542ae9daf82593c9743a9d6aadb5d65a4ba57b4b2c62489224491e1e928787bc41ea94a8d4252a13b4fa8f1f212e2d487e4c212851586a11ad18319bcfaa9c01d341a154ba46f3291244fe90234046ae8febf55324a8c512b2b2b9e2bb5e369bcd66b3052a9579eed8f785874b8f161fab97511a555d99678fca7461db27cb1305cc39db76547afb3588a95472d23b6954a39837d4547ccbb3ef5b1cdd585e3a134723f3e45187c4b71f8ae6c95d53078ed35cf8a1cee1b8a73b6c317221c7bdd6399c19765687eeefdb325761ecde7bad733adbbdae795ef737ae754e679ecc1a6584818de23242dbbee8c4cac83db60f9242af994e1707e3f9db76dbffdbf4090b7cb6bf537dc220f9b13c9d519ceebdbf717faa1fa499ebbc0f3c7b76564155787d3729f51995f9ec6925853ebba68c08f4517b3e164780325b6b752f6a42e6325df8a3c538ee1befbc4d49bf6ba514097869feb36ce1805e76f4fa7bebe2b206eea9c9833e67b66ee7326eb6ae79808a73bad9d1da955cb653c6f3778c9da16f676eac5721ecd609a11328b1a990098028da54e8043d6c9b6fdbfab0eb531bbae75e06e7bd0ddf7b2fc37baa6b3bd86c003fbf8cfce187660ff073a83fcbc826f82d19b74a65d70f6b15d0ac4416c6ecf1bde7850f8644c0245f13271e93cfa4da86960ddc7bef993dbae7cc967dee7b70284e4bc6f7de531caa6d08a0389f29c3336be8be2583470f8e0f1caa6b685953c614aa757874a659872c51c55376c5c165cb86fcf8f1d0ae9ff3672ab9e80ee1245809918d99e024bb16d919fcf552d9952bef140b63037eee39b3c7c5a1383519556ed1ae3cf2df3e9c6c5ac0c78a202071c3b9e5bf445470d1ae393f369b9c77a8c40f566d03fe6c9e77080115e70e5d220bd30d39e98a441af4e006446e55a80a591e48e901945b151272f259c98215a2dc70ec532243496aadb7c9ae6f89d8993b5422d28012379c4a71aad00db2ab1d222aa252855e39edcdde76b54ec0aa65b0db4d4a55dc5b9e54a80441d8f60eedf30aedfa6e85ba9a1ca84008a7680a511dcab74d597c783dd7c51e2efdbff5f1d7d70177d5a494721ccdb4a3b4a34f29a5945a4be9e590784225cab625edc106eb121fd8b6acd9a037c1876d4b181bb44b0861db12c5066f0fdb962e1bc425d8601edab64c6d9063e2085d28836dcbdf20ed382fd3af0947006b13b4409f3421836d4bfa6483f489136edb96b15db92d68e1b6ebf77875a09f2bfbec4a604545538c97de6b1d7b59ade5329ed54a6797d27bff6b356bbd17bb9dd18caddfca899f09c001d43d1a290796467a6fa330dcf5bdbf25c6f86baeb17fc1de85efa754b6aec2997aa3528674a1aa46ffe98aa570f1c246e8a450e8108d42b3aa119f7e0ba5493d7d1714b4267cfa2aa8cce9e9b3a035a6a7ff02a5293d7d4c6bea4f5d41696a2db1a9aeeccdf79a3c32c6713757562894d50adcd79f4ae3debf56b1f54aadb902a5b1ef4c0cd99c6981b0fdab942849d8fe2a236cff5511285dc10ac2fdcfb39f1debd7f1dc60b15ca08ba03611a168fd18635df2dc0d134130aca5ef7ab333dd77666d62529f552526ecc66efdab3cc7fdfad7ab3c3b9ebb5f5fabc0cc4a85e5fd67aecb3c282bab50eb1ff67ab9fc0bf6b207613218acf5fad8b75ebf322ff559eb5dfeea9cd7c71e8cb55ea797cbebf558e7bccc187ce61f33afcf5a3742b19618ec5f6cc95ead92aec9cc16634bf6fad6cb6c11e0fff5af370ba067187ab5fef52cafdd7a11e055d6c0d7d7075d6585f26ab56e77637fff9a27385485eebf5c0ffbd777a5eb49e62d731546d7ebff573ac7f5b007612fd7d3fdaf75edcd16a3eb5dae67e91c97c900f3faec65520d7bd7eb5d1f2b299dc14cea33d7b35eae56885f158acbb8fe05ea1ae8fa1bf7aecb6c11a0d562e91b5abae6b1ca555969405588382051e5c9240452ad45e14bd3f0f9f5bd0f7e5e16bade1de53bfad1e3bf2fea9cd16393455d3a677447e068e48dfea57346a60d7c5ffa011816c3a4aeb142ea32985a7a415c7e956571cba6a55fd4aeb7339e655c49b9d5e55c57f7c24da8aa5d1fa66bd57cc0b65f4b1b2a91db5c59a1388c3f8baed9bf2e83bd6f08871b63fcbd7d500806e397f1839ff19b740e7ed0bce2bbcec19884453cc26f750ed6d95efc259d733f9b6109fe059fa46b2038c232ecb7ac42da001d149789806a0b0de1cfdeee762a1c2222a0dad767d484e959f883eb6ecedd4fb38bf96fdce66df12916ea9ab5df9ff2eb71bca7d7601996b656986bea9c6e5bdff5fe48e7dcaff64d9d7347ba66ad66c9e675164d7159b74cd360936842100fdbbeac25ff4ad76ea557ccefb74d597a603ebc075b008800f498187c37bbbb7750c8dfe59c04103be3eb3246d6450d56f277392fd9d9f318da0319d90ad5d0849cf3931e92b033be1e83a5de75b72a37c40cc137dff080221a96c80e11141c29820980348107406801be37742cdf05f2bd297c565f50220349688009459001117e30028f9ba5b8e112a1c839e39c67f909b79d77f6cf5e7743510a235682c880107c60420a47888293a53c61c21362ccd90846bacf19c5f12c84b5a68903022a332754c10954f639a3f2e37852b98ab0c54d9f2061689fe357eb4beebd17e72f2d724901092b1be0c110309002cef5818f11b8bdc3122a1a68c2480f4131c0b93db89fc265ee08440c7a38b281162401089cfb2f5c86f260dfbf49c2f6f6fd19eecb70196a837d9ff82c61df6780cb605ab46ffcc6679b3ef1316297367de223c4ad02d2a732dfb5d65aebec854d7d17b556ea5efd07a4389da5303ef3c725c5012badd4134f1cdb86a3dbd774285e073cc5dbbfdc5b4eb5b9e7cc93fb6c826557524a29ad6faf59e9ef6ac6d4188ca78bedfe2f5cb850d1991b0ae3af87ec930a51228b0593e9e433bfd7f4b7b421dbda548e3e231fb427f7eca23ed1997bfad3ee52cda9a321d55aeb9818105495a62f9578a74ca6af6422ffea1cd3df07afe9e926ffd335d26c319a4853677aac734c17a7ea06cf09eccb999e3399678e7d9fce469f75cea5ee22e96f5c55b6de4477ea6e3b9a54c5c8f45e324f1fa6b25215a3cfba467acb954aefaea95c827f55e22825b003cfb877a82b5426cf4ff98308d3a8249fa7dba99baeb404f52bd4abf0a74a0a749bacd1190550190aa03335288cd72435e84cf50085f1231cc6033ba84138c27bf7af443e834fbbbba7e7fdbec7250e0be37f2a797ce65f8908dfbf3229fd2d4b6f2acf9e6dfa1b2e53f23fef735f32a938eb2e99e7fdd1877a00f7497f632f1856ecd78634cc9e38fea62e53c79a58d2adc7b36260fb94ed8ec4955d77996cdf6cb13602e8f4de4ade50530cd4ce802a00ed011da25162464f3f060d9511ff058c176cea8ab3c5ece5bd9775295a33ab2bfc4d9b3e4db1473b738385f1f1861f8c55463663b833a4b0498b48d4c96457fba445dce392bb01bfc90e00ff35c55817b5a68617d8c6265bae441a4762c6ba0c65fce9b29afd19e03230166aa05290b2fdc3b2fad0993f583a805261d32704fa472fcff0c177ed2f3e587e1f926c6705b090852d6cd24ba067934c098ca68dee870578d8239302abedbdf8a249e9ecfc5e9b9f69f3381353cae2a439a83a16c6fe356558189b851f543840ae8e9d01325a18fb173f90fb40a805422d8c9dc1e66861e85b53a5da66aec298f2e13d6e4123409a62bcd6da5bca36577eefd1139f6135bbc7b5e7cccf75657dfab9bcb9bcd5f260a4760620959df8b6731ea5cc461a259c510da55432b55a7bafd7a5b8efba94cc90fd52df79cf21718129df73a4ef1efcf085d13ff07b610c4df6ecc2111c6f38f7e630f999b8509222898cc8a6f98650f2bf7e6c09f3b7e89c96cde33312e7852555954478b5f14f95ca34690f94e6f230125f4977fa4c845bcbc4fa56c284c8724d9a34b14fb8b5e2b609ab842d421d7298fcf608368999948fa282628bd8d956bf2b75ce7b38da99daa40e5d69325ec157c03a3474495788fb71222076fe2286d8f9f1a8635df59c798e2a13ecdc79f7dd575a639974e3a8bc3f5cc6771e4db944f7bc42f705e775c1e90db1f3bfcef1ee2dbf65a25fa51a4f2f754ec3f7e02c9c75f7461dba1d2bd695489d506833a6ea908b14b70ecd3851765b64239e9609780aefcdc2e49fdd1b91798e9c79761d95cd6083481153ea134aa038959f2652ec950bc449d7fcde5c06a6338eabcfaf5387ecccca5cfda962fd39b64a2d935a9699f5009a44d9f9af949d1f659edd4d62e72f99f7f6e55785a52db9f2bc3727df895c2e52c8f22ba94a529c9689bb7ce68685392d1317fbb44cce173e8385c98f7acbe4de6ecc6067ee0f87c94f324f953653e6fde1526f1bedd47bf7169ae73de2649e578834cf0e6596cc8f04de3e30053eec95e25054d310be779df7c478eaa73b9b5d107d6fe2481c8961e86a857ffa93a94389645e5387afd4af4d17369c57de0dfe78c267b91cfd0f2244d3c8eabacfddddc3d27b554971f068bb14f7dcc7bdc7c46172378eaab7964993f1ed9fdde6522d9dd39927f71d0df6532605eafeccd3ddfb30c5bd529c534ae37527ebde7c961f9ca53e2c8cfe671ddad95edbd9b78db67defee7c8fd8f90a5d283b135998ae1b47f354a93ef37c2792cd6083481153ea134aa038959f2652ec950b044b68af6ce7442e63fffb1dae4ae7d8931bfff43eb333968985c94f0245d3bdaaf22b3b9f3121994c2c1326df9ffea069fcefc1aeac6527c4a75a86512783fed37b894496fa759421229719cd7ac52476ce43bd92aa4f7859afd42b1ec493e40761c254f93d57826fed06bd14f5522051e952a86099d4fc9649ce7f79a03395c2789fbbcfffab1589e4fde96d4fc978c6ecd3866cdf280ddd19fffde13275e7fcf4bc4eba4ffdd93d49e77466d7791e67b62870b7f7b6d1f6debd52d3e03df7208ad02bedfec0c7a972fc6efcc6cee4a9db336f178228c2eefef059fe50f563abbbfbd99867fe3bdcfca2ce7193027577a635bdb23e217265a3d8f4099128fb6a19c6373d984bd483a854d7710f7adddb46bbeb9e7c92a6e17bcea440dd29f3f41f7fd43490be336fec8d932d029c4acf537518df64f2d42a84cb7c9fbf5492c0cfa379e347a5a8cb330036dba9133b7f3c2f4e17fb3a8c7f5885cbfe9e9358a7b76231e35bc91300c48f8f3e0eb884fbafa438b4b44ac6b312551ed04a44ab10b6ad48b8dbda3fe9942b65e75b56a22ae50aa367fa77235732c061569ea9e333fba44a64b3691f9705f0192572a24d59eebd40beb7dfdbef2df7cebd73efb79d2b2dad92d0a710055a4369ec675bc53a31ba14280d05fcb385c1ce6faf8c9688ed0668dfd339f63fee7d0a74742ca87aa0af9d65a8bb56f72ab6caa5b2f39f96c8ceef55f267af82daa87a5e2add3eb1d0ce7f4bb762ad30e2b73557b967aeb2f3e94976fe3327e1c09c3d0f2cb7af70e7b8efc107b9f2f3429b5d41f3e386fc2ee9de3bd356613c6d959df3955a85fbd33ab1abb80c67664d03f75ec565f25b2bf60aa5c9f1e74cce926e3608a52afcb9db0583409fb8369c3ef14000698a5b7fa89c58822261f440c491f875e1030143101cf5030975288ef48fa3d723f307150e10110811dc8f5efcd1eb3f3f53296e8bce14369bfee8c5b2b330f875893f8c79efb9c725e54821f72f8cb8f3bc0e73dce3e7e8131228d9987bd7350e575dcb165bbbc24fa9b7f1578aef6fcae283ebc9ce21c107305224800c6da7f6b501dcfa637c73ec3bdeb5744fe124a8d57b9ebaeb5b21c6fb76a62a57e689b767118cdd7fdd0e5de6ac94863bc1e77400294da53ec3949edeaefb9ad73671f13ecb18e37f407d3097b65a6bad6f4b6c9ef6beadd5bfbef52360cc4c48d535d9370a4ef6a9fa0019b065dbe29f31fffd4a3b8a84d1be0dd9be3238f378cef70601a45fcb4e8c5fa5dc33d89992c2dc87b1ef2df7f954c5bd4cc65b3150975c128c6fed8f96885b01043d6bafb5d71619eb5b4ae9bdf75e77ea36de9dbabb67a7945e9fe57a6badb4d6ecb5bea58eadbdd65edbe18ec36567619c526bdd1495b8d984e109c6be67cdbe2cf60d800a001785abaeb827ccbe2cfbded3dcf70cf7ad91d515f76c6d95cdbee5d8f9922e3cd59a99aad6a48871f162a41abd76e927853eab3535d015312e5ea0cc31c528469be20bb31c7d598eff25e96365e961a5e95fe5698602c8a8218a0d5485ff9ec17b7fea7d03e8ccbf55e65067feac120274e6bf52953614e07bf03bf04f477d2e51a83ff377cfda28fdf55328f31c407e3287ad51a4793a0075aa50e6f98053793ad9d87a1c6f94ca30e421955d8763ebaff52f8fad5f34290d776baa04cac4941d6e046c76e6b8ecd96d6caef7bc7cd41e6bb590da7d7f3f2f5f4628a106fef9b273569a94c67bfa2c5f771d0c2fb6dcadef3ffb52764dd9ccba39f399fd6abecfeccc65a8def4090b8eec5057954ae53395162fae55db086b9fbbe38a77104723120e8670f082ea84ceec5b1fc1f87606436b5c6fdf054ad37afb29280deb536f7f05a521df9ededa774169566f3f00b446f5f66728cdf8f661d09ad1dbafa134fac5b74fa335e1db8781d2806f7fd31c3a536f14c6be1d4d1f8407a31090e06ab1f0f64fe5ed4fa24edff62fadf4f65789a6512924b7afb6c39caced418c67bdd59bbbf59bbdbb76a87a82cac467f6eb09a84c114c5ca6a68082a6d0465813bf7b5015de1eaa05a80a1eaaad37aac2be13f1329fc96f4ba2c8815f6fbb96ac4d350d768fef3d690107762d479b6afaa488c806f1eedeb5ae894bea0f87b11f82548fccb3678f4c417c86f42ad3971e34953548bdcd6034d91f7fe3b8d299f8a452e630f6b5ceb95b8563df540e5207eab5ae05a646a8d40a5f27319488460400000000e316000020100a05c341a1280da51c6e1f14801170926c6246a58b9324c8611842c81063000000803100223030435a01d964a9cef42787c22f5b13691c0500ddb7af0f08af2c48a760e163c1923fe9364e380cc641c6fbcfe55aee5f6270e340701eecb9ffe1e230a81a4cf2b528bcc4f5e1e03e7a3d3a524865c95bdb3cc1fe1591cf7642972703fba463e9108bcd60734da82346d1e1473556d16019cc144283df5f2222df7dc9c056dde1b11c111e98a7093db154f7ddbb469b6ae1e8ac85099406a3b5a28230a53ca0e709bf68e7c92587227bb206cf925b376291f27171799694d7864aaeed4cd1146bb9078bbe6fa73c958072fe48680befbd225efb947a9ad22d4f24301124ffe935bdb3e43458eb38729e0b8a1b12ae18a23663229b2ef5dd51b90e8285c4dddf41d27a4e9285eef202c4ddc7a78027e925436798359f3781ab63eecaf6a99af75e71e8f28d1e0b2bb74be2c4eb0434dd2805a3574ac1ee10d7241b09942ed47c17e26b0790b37786e1d7463ee3f835689bdf4ddfd67c74aac3e52eb5c4868616619c0072a09067d624308b74e1781694984f6bc10a73dbb101ad7098f9ed59225c70a98a64670831348ee0f844a15e8b5765814a7028914382704fa27c9d3241c408333526684120cecf12629f3ef7a82964fbc732bf2a4752912799206f8c60a7e1e08c89f0c26f99929dacb0e362928e3f784931d5b2d64f94fbbd20120cbd6f10460323383769ec5efa67772798ff89c96be920f1d5773c9db689d94f1a874ce666525304717ea0cbc86371e220f4649e2bd0292bf964cbb9b24d0be1707560558683061502f1fe8f8fe9646a131cf72371b3e9bbfbc419f3e9b7eaa0f4c5eead13506ba171a6e8697a6d864c3c31da250c32a4e5e7cf6cf8c5106f9a3c8bc4136c34e06a88aab5a69b1e89cdbabb70f8b8992f2f390fcc4c73adf6dfbcef00bf33ff31be00bfa18056c8a37973584675170ce96e78c7a93d01c3d8fd29a70241a72aefef766e4dae34e8e588af10f32ceaf643bd7fc181c0bc3de7133cca3718fc0c7ef43163f4a8a1768ee918b716a527cd7d3d9e86802e058fc81084d6148d0da5c58a2c821aa5850e1edf1fe5d9b416eb1df046973cda39de45c7e632540f94a19a0c079837043b38985586601715d2a0815a650e3ddf3180f4d93005e1e1090775acc92e699698e5713400846a8fd5392216e53720d8764442eb35bb8c1325e2f7aba2ef804ada3fcb17b4a1a249c782c02112b36f3822107952d015b21b4b30867bca0267229678d0248f9942dda436aa3e2b694a26bf794f15b4c82a155081a0a1603d6094a43cf79183e8ceeea8ad0a189d4971eca2ae95f798a831646a207a2e41d349c9db3e18636afb3cba029a26dcc54f5dddb37467d61c46c233425d67135e84ad9a81658adf3fc43b4769b660906dde11c3235a189ea8d023664e411a2e74cb9a4b488583d32576ee0756156ea3f3c068098ac4c9ee6d08608bcd1ab176c830eafa11b1ea000bafb322bc0e59de5ff014ee60bf5b31ac4d49955a82e10833215bda869639724ff3e128b44d760ad3f35768adbf45323f46fe11c0a4013e9ff04f547dac004cab559d599732db7cbd01deb85c28e31b305bf0657ff3c3e82a8a9500bc50a584be5482f59a4bc13ac07ef48990b92bf84c0afa3b0086b6b1c88b48a6dfd91a3440f9a7197646924833463a7deecfc3247ea1aa204a4a7bf7219c6147d70407ecf513bf27de7efb149f86deaa0a6e5c0701fb21e549cfdbc2b3a059db46fb4753df5c0c62d17022b04fe02c528126bab6add93b74e3de0f2890f0a5e9025cdec73a8db438a8b26a29948728072b08323ef760c71d50627d285ffe1a697ce7a4c724a39bbbdcf7ce302e4406929a68250a4e5ddc0387c4bb6a5415da595d5f1306d0d4b47bddec71cfdf4ea3038473fa8912364afa58e398762b3de2d5564c44e8852906edca22d9a9888fa49340a56446c23f48658e8d4fb5996eab30dab12a5da92a420155d611180b1cac69e52d6cea01d8fbcf95e49b9eac70d354304ee4ca67c9af8d3b430525c1615c9acacf503ce30b09463b6eeb12fbbcada250531f5dba85f99f6f239881b21b7e3f857a727371fa616be045804eea1beef0ac128380eb302cee9681962d9d03a46dfd8a1b4f9d086b3d8ea0196e5a952f38fb245efa787e52f43e9bd971c526fffe044838a08a55446eaf2be5ba7707a39c9d98e89477caab9367a0b8278f57e65640eb19f46f0cdb67434bb24acdef7d2a7bd79d3ceccf1777f941cf3f1be05ab86c3fecc096a6db07373b7970277ca05c3ad2a65e35c50aa4d7267495d9f8a5a4b1a4bcbbc880f23a45a2f04114ea27e7be6f00196b3ead4754606c98f53673f9d7675b98734a679f67429cc580ee3353868dfad9858520e9d5e0e8d44e410245a0e9b1a020003d922ad93342bc51fd1fd61868a1a0cd3459f5b9cb4661712fbfd357d358b2f5e7e51c46a03a3374cab3992e8ff31bb2330c62a7d07295c3d99576d3cf6659110da618273449a7d14bc3b9a8e74b725ae1474418a914c5491c1037e3b1395d2316dbf037376616e1555748cad8827d0d57ee426954f41af947f4a5424b92431dc5ed548787d5198690162b7502581d06998bfc374b15c534a39ae9a753e4775cf4683977fa9890de50b2c6e128dec7a291025591bd645bc1dad28f74fa7d59e8aaac4e7ecdf30564c23608926f808188a0bf20ba942b5b62052c9a7bfb8017466b75edd4ee92755d7c377b2df3584cbc15be51dd5a0b4fbed0bc4427ff3ba40629faf1ec13a57b86f7378159f8685636dc013dc0b43ba0e7d6a52e4b3596c91d2dfb1257506a59a4a6d6b9f9347bd3a6e23183d4ed8e28359a7f91ad99f7de7cc1da95771838ec354a6cf1ed1e295d72c73dc17149f2d3979957cdf7196a01fece4f1f0e1c18f4ddb254b1cb1cc7b244a003ab66308087c5b3d717b8fb5e02d8405a66400a0d4e66305ffe5c0fb85f4ac55b3ec3a1945030c6386a5d21cd88b0d501368da89406a213ee532c4a0819fbd39cb99cacb7ed7a8e74c9785c5947f6fe4ac93b76f94978e248b1bd33c7e008b3f9dd10998dae01201161540532aee8c31de74645958b9e15518992ef341585ebf1a5e532b85a22c9c936e90962b5d5fc529c2d2e2421e46f15ca6284439841a492b53503487b1952622189e876e944bcfeb694838ed1596a942fe4ef14423b9f69b232e7f17d0c2e656afa185721b71658faf81b241b54ee9b577017834330bbb65c843f2fcf577d8f368a9ad4fb0a314d41d99a73943bf3c18211a62804baf23c4dba7f0017ed0793471c28c1ef20c6a8d09687b2faccd4e3fc12b4aa0e0e9c59ef03ff930f148cef8586c7447d918372a04db3d1294d231c7137cfb285af52c975dfa9f7b1667fb026fa2ab491fbba61ed42667f37b823fae2eaca4193f62ef331db685ee392893c8102edaa2f1bf8a8d05dafc805ff8dc4d443b41448be19b45d7d3164351b83f0e3baf9b84e123b1c635e0d178098c6068d3a2bb2dfac9366733cdaaf3f680d001b48171799e023d9496dafe912d8892c2539a4d7e4e75969fb4579c01dd0ec0c6d59fe73a2b725992d799d70aafa7427dd8143c15aa3f4bf6756342d3444a0c9e78de027090419ab6102d0cb15d644916205378d4f7b21628b5fcfcfcd7d2720cbd14361018e35aa9b2078148b029c489cdf4b917ad0d0c2e503935c0468bd76e51ff0fb20751cc0853989f862d2a51ff360c8421cb143e01026c301a02597469541d4e62e4ea8a0b568e24e3c87eed8b755e8db2f9ed3de1bf6499d38520760178c33fcb1b92ece6ccd7fc7d43eb73f8269885dcbc962509e92c5fde53999bb0cf35347f080772db1cfdaf4c253910f12dd06004ee8c81d2cde1c125da7c8325a299bb847694cdece449b6d17c7b27f964af73b7999bacead3c23efdd2a1e98396c358fcaea78d31baad6f93d0dea7acd0a6479d04dd3dd84141c223b527d2f4f7e56a0129ef2f018e5f3e1c3510ad0ff791fd3bb20fc876f399d7bf327fe843d73f80626970559afc437913d3baf09eda026de4f94cae7789718ae3638ece85429e95ed90a0e3df38640dd55e4aa49c899a3ea30efa57d404267e32217c0dc1ff7dbd76e8aa3bfbe77bc4986c4e650d06cc8dc0c2c9987742e6a57cf947e5d453ba338156f5c4a5a11a1a15dca3f7a0d0715f6f9332ea225be84c5dd9a0f3fbc90ad9ff0dcfbb2483b10a42152cd47670b93d056bc9439ed4cb2380d320d44d041c81d9ac885c70dac87d80dc1aa1bb33ae682debd8473c792dc70ba189ee83e58a129ae7c6912ba66c7b2696b08982f667de38a13a9e8e30466d33e74a6185a86ff54a6e693e3eaa015e19450c8d0355b2517c7fffc30f31bbf9668df2a61a2488b1ea69ce70e490d959c6b83ef3a5126a6d27050e3e1cc64c229b6d931efcff62c8fcdc4823db1817858656ecaf942af59825980f9f76571856c03832cf81ad74ae273ab4b218a22af0add381e862ae2ec3e11a2a0fd8ce395238f1355db6b4368cb38de2cf621c2fd17495b9c6b0b9d7f0c311f3e1f88a2721f8527e9ed7e13368c6ddb1bb9f5003d4f93e83b8fa36cf99f71ab03a70c642d2ef3539e272010ae4dd15f33e1ee9081d3a5c5d69ec605ae254549c2e6848b64900867aee2fd0e59602dc806c08f0b06f5a0c346c096bb7c63e8e4a6e8094a04e22d8718ac9c5d9e18dccb4c931cb62e1fbc147752c6b9b9969965c1f65c25fd9a98dc2687c21bdfaab2c3354252f230fc7ade5cfff94dd4ea076d2c72a83d0490a6c68a6e1afa66325eb83a6415c94c3b4b26ad9babb3612c916b85d4332cd31fd251293422735742db1f209c987205130a3fd2493827f7e3fe7c692d622ad2ec3bf1e5f1e2f3ec931d6e6584c0d3df8524325ea33acb92d24a1f3802c9517faf937fd3fbdb4fbb2dc986042729fb22b6b5b530916b3e0706cbb21837cd9a49a517dab8d27f25cb647b6122badf616e223ae96a9df9a667234e5d9848eb76e2007b92a201dc1102435d6369d2741d78d6e2c44087f6239fdc3780a61584f360ba45fb53d9ed27f4c3c954f484d1ea9db63e57a5ef3b1032f8c9d96f2286bc1325802fc305dba2e91ddf0f061d51b824d7418160a1b9d03a5c07c4f22d2f78b0c05364a8099a3ad90ea198b904ea4f376f88a39565d99e9af48d0cf7aec991a4b15d7a836616a83fd58207f797545b39c00280f913bc63dbe02dd794e2f77ea041f6717b51174d14c618c7173e9ddeaf6037fdd0856b11d3962cd6a71bb4b4b762df56c1864e9f5685d1c2763f77f535466bd11a15b5b922b5ac0c4ab8f81946e807113c765337572349260b349cbd9a4383a2bb02188107828565140a39f0e4328393b02087e5cf344c3ed9e3784784ebae0db6f6a92fca0e04700b153e219d373ce00b190ded04f91afa5689895cd57b5487b11168c9a5ed0bf1df28b04f561beb6a4680b4e99b7464f2c136cd745ef886a6e0a148f60a09726f08970b01d2d2cd292796b2f83d43db337a910df51f719e7c886c2841d6a6ac16d0bf804c929142f94c786999cf031de8a5e08f60b16631db2c3b54dd4aec38a980facbf78536004f04fbbb0aa2ebd8b826be699f69aed999ab7143cf25d77689d738a9dc788156a2e736bdca1840b772a59ef1a1f4ed82b0427137902e6370ed00d0ca1eae1416388fa150ebbe0cb09915348ebdf04568256e670ad3a4a1c4f45623abc1ec47497e6caf440667371fb2e141f3e4a0e0c2082b083708fb4b6613c0698305c53b530af62f3f0666d2383677d7912c2e188d6c50372521e16e7fd3ac4dca7d2949016e7fdce1e730d87474f42edc4424e13451ebb1c088dbdbdec265ca11c78cc74031ae0082c598533a191c003457e6ccca26ad81e15c0a9fd46d69c1e58aaf0186620ae857c3f05524c717b9a4a086c36d4edc1586f86fad7ac66c1c2cd10d3ec867258913be810522b7d08292b0a3c90edbc9c8ba6881a4302cb668e6b7008394f3a7a80ae8aa63d9e6b8b507cba72fed356910ac5998b323cc0d8fcc1bdf67530cee03948f36fd8968fdd4078f3a8a0b44390814de06cd9418d7d1947a0808cc94cfbec082193a1311119fd131b73049a668898c79a6e2ca0cb9818b7d6194769871af00c60375f6d592e9b7834105999f18a315859d891ef87b413c6f5c1fa6e6460a3f16c7c4181467700fa676d430eaac2f60d8eac0cbadf1c8bb684176d1005d725043ea914c5fdef14abadc8d4e4c6a68f2883d944a3b5e454b50749c3103f9644c5fd74b14e74a3568fe940e504cc9eb9b0c33a38f06e1917fca9e9d092c5da750d18c7f656cc3150868f842e6b23812f0a1fba327658c7d942a9674a97710987962f12443fcc9334fbb49e06002275d66ad9c7b6d772da957bfcd2d8d47a713f5b5910fd7b1e106a1a093004d0f087c79fb675d3318f7391022d738f506ed6d44fe1d11eb1ffad4da404811dfc51d57d35bb12b29db27d07367c4e4915cca3fddd9cea35bc284eddbfaecd7604dbd3a1a432f0d97840fbbaf9baf82e10cb6f08890e5d7557f49f972775526713542827e802591d809c175268a01dd217fe8f2b6ccb6dde466686d3338f93ff102cb31af4bf2a21d4e61be23bd9945d3fc407ea543b6396f3e216bc880afef3271a1e5b850b6324219964a4710e0f5bac9fd75ea82798362b84b52e609de1b057e98b042be6ab850a1fd50fad85387a89c6f4461e68ac49cb666c12dd912e6e19c4fbf0e815d610bcfbcfd2846ebaab6732ee169a256bd5be7a34b9d10e1a58eba69f64d9b159767f20f879aa258f26eca0e2b0cfae001fae8473853545d7814d3d102e0a6f4ae85f4ce545c35520d167f1ac47cec8fa38b7d80d3ff7a5caa2bb0b2380616b51a50d63348a913c2c2827a926a797bc22d1b54d428773a63d21119577a41464dd6ee1e3f940729c3cde6cd6bf78a58e94caacba25180e96c2cb64b3302e1ed45501e417724a9d52fba17c12150082a061c199bb76ce7d9c48884cd975f9415219e850495d6189651f5c931a8bb1b301b15060054187c2a3257fd4cb4c5daed89660f775695449ad572a1dd89d5932a58c01516b4acd3cd9dd311fbfab191afc8a325765607a3cedd50c724f41a401753e5c553caf31d61254ab40d4f44fad201b4f3c82adb7fc4351031e5c604bfa12170d66e660ec1f72a1482e28ef805725683e00740eba8332119f00981ef7934418aa0fc5e5937024a993cb3862807570481f422c5cd17b7fb3523c75e786f4b896e6bdc07160bcc50ad97795d86d9547a8156b206fdab2f4fec9e981df2738088017a840f8f01dec2100715f7d92bc0b39aa98b2bf1bd7383b4a78ca0d7f7d747fe45b18b5e9786bba45bb17ede9b974eb270eb8da06abeede102a404bd3330fcf660eb843d5bc7158a2de8c20f1db852c3855929dfe7395e3447cb98547aee4349ed53c045760ad0c334b9c994ed45e4ce836c65244abad523833d83bc6f642e1c0f49d3bd27e53a40a390a21294f863158a7971e70d48e6429bd775a4daf5c34e733441ce7115af3e34fe48f959bed923264c38dc02f2de8baf46e5a64986bd3b81a87ebb349638bb5c19acc4cb2dbc5e9d1ddd69d853efa97c8b13a4f0811360998f39abf29371710684402f5a9941f0b7f181804693f1e5c7df3dddcc6d75b0ed505e394326c78900158049029131a7bb93c6011b044b4f2b18efdcaec70542ab9401703bec341dc8b75db18c17fbdd4e3a361a39aee31ed39ac50ea90c0987332e48340bc842b007ad330b26c913dc4a46709e63fce31c04472dc98090e4a7a9bface87cce10455794ae8dcb1237201bfd5c28f01e1cc50e229ed8795ab7a6dc12bc8f75444e7090814e84d1918b30de41d389ecc07685db1918f193862cfa816b94470f2b20547296f16e4e5f1b90facc20f7fcbdbba284dfd67e30aac9f5d8c96eb2ae2af22f1514e6edb6615687e5a5d0f96b7c3c682ca619e66e58693ae2f4a4ce429d1ad0246981e1a75357d69ca8851c6572c0ab1f10a22625fe051ae5e4d6f1975d7632f39eccdf813235ddba91a18b9ce3aeb1218e745b3a23e480aa5af248fb82fac1553415c0aa9cf989396069063a654949aa6be9a2e74b4fa8319703537a962494809811a7c0fd0613853ebb445204e764b98026cf914943b1925373c3776c374737af4ebb68595abd69530b294c459c9b899f5bc2097c3b88f7c85bf9448bbb0c4264c15afdd008d90798e558af7c05688b7630fe68133f49146c3d16592e14ba796eef145a760dc6ceb26c46556505294dbf4205168ee8cc39ba33d6a95fdce7820044738ef6d7b4b65d1f90ebeb9e6481de63ae8f1bbb2ce23802ad40998606515b94d4b6bc80f02e9d1027d4c1a95274bcbf126d4bd1cd8bfeb238a4078bbb0e27b7e3723757ce9bca825ed92a97e46692859851d32beae0fc20c529ec0a8a7817c4a425e85e8aeb3f6641b71b46c5c6413c003737c553e59a93a85bc05a70b98bdb430a0bc39d292ac29b3aa75edcd904a203a30cc2c96f5d09b164f21457c4cc080dd0ef3ba42130107784f9200c87a0bf8f482868bd6346de6b9a6383f1935b24ee386e5621acb9eca73ae60c62fffd324cbe300e02fa652c04122fb3151704c5f4ee10808651e749ef244a3a2f79eaa3907eca72040adb0a0a22409397197b3913e3208beb87ce2ef165323ae6237acc4ec38d6a1f57f86f1a206dfa65e484c580d1531f4bd6561928ed2a4b62b26a2b0348c6ce66db3b14564cfdd6ad318a87cc0c58bfdabe8c0e366030c9c99969fa65c24324c55ea143f91a4e1fdd0c42de450c12c628ecb68b63d591f033cb6b8a91f99c726d87d2469ed2885ff1668eae18a6a40302fa04e8a3b4426dc3a6ee731c4af197416e5434a7ce72d5d1c792bb473e59bf6c1fe7fedaa5c408e704c5b713bb91d69ad15964468addf61941e76bb019b3586556fb2adb802a841ea82cfdacde9de718c6d8854601df55fb60705c866af4fa0c9964b11ade228ddf10c255a3445d4c221cfeaefca6f5d9d324f534c68438587a4160c95d7c55a952f01032f4b3ce4d73ec30983772fbcdb84f0e51924b24d6b3bd517090cb0b48a8605bbf153d68121597dfe8e20fa2e219f77831bd318651056b29f9c959b6778dc98b8c608082a5a4c6511db69ec8e53887b14995c104535a188bf8bee7bc85bd1747c4a7264fdaf1950fa4858286019e6fd2c7d0c7509fdea02c321f45e94be203b8c7c59f77abc4062d09428bfcced5dcdfed8d4a084bef5870a18f018dc4998f8694d5411ac5be294bb6b6821037895a2cc99c55a83a0befc7c8622c6a209cca6cd92dbae8327018021274a6ab972e5cd308b019f9810e72e37a396ec7a9388b6899e4de3d0402373183aa9465b955713d6b29c05b7e13812f9d9337fa4bd98fcb3a4fb4d650ef1c80b86f8c9da8e71f1df0991bd0fb58faeed02b49a68254bb84f76ec067ddc345ebfc938a88250262e86b351850a650d0f744510593b5f2918d965c91fa4104401f15068903078e0ad090164d7f410bce46d9454590c6f5e29631177908ece7ef88db6f0768fd82161da0e378afdb7f19d909e85599782730a5576292b7baf9ad32429c76be8beec90918a4dbaba91dc8d6de5e62f65c0699a9485b94008a706d0776b5bc00282d77a6caf9d7e769d6687311506ef100b03689b2eb9268268094663924043d3e99092ac2b22817f6c7d66ba3d0af07ba4a7bac2f3e7542a1679569c13be7dd2f5e0bc178d4321dcde1d32656b25be85da7d392e33e182e93f32d4e01475632aed582bfadc6630eaf415dcce37e6f54455bd995e82b9562a796702aff536659a2d65361548f6f5185f98a24e341b1375061c530c7d9fca62c9b7624e0321601950b50c30c2971af6ef286f716ad5aeb573794f713f38cbb7259815abb887ecd9293d62b50e8705713cd37497dd74d84115a865778bc61f5266042153be31b8cf15f31ca856b393471a5512e3a40a21c5209665a65e67bb8910b93cd021bf5dbec6f79a52dda151de1e319e82879587ddea9052000cc999ae99dc2c993d0ed0d8855f028dd282829127cacd8be24aa2c1ce67c190df6d41de7ce76269d19b74e0d846f49c26d0b53e2f02794fb4bea492a7a9c29c7c844ebb647a7c80b938c7728be37871d9b295d7c0b229224819ba866d7db3b568230c28ba911651588347671dfd0cdbb1afd88fa9f208a9076b4ac303d4c8f8477f24eac4841733bd07af9506eca8abfc7c99a7ae70e1f27cc53a368f3b54672cd692488179365427db23a22dcc6b10b9bbee6fea44ad6deabc62876334479c0ae48d99a960ade877ef44e8493bdcf9c5745fa395e0681a25ad731c3cb1bec65b8ac208a91c26af773344b91ae0980c34117c8aaa9a22ecd8c5976f692832ab7f896ca80980f23f95ceb919a417d429862123c196967225941e5631e573c53639ead533007900afc73cd535c9af08c316da0fe51b6e1aebb478300a1841d4d514b5f7ad6448819cd4dafd046b657e3f2dab1ebbf2a4ea17f0befdfa363d08c0c9868752726f0448a6535d5cb965420a14e461db1522befa980f099e17facfc43f57c0672de496f5d76290c8803c72896c3176986457bd7e2ce5821606518c0a38d21af81dbfb40fb9a1f864dc5df2ef847d57a8629a916c1a1666c2ee0849a63bedae2a92d1e5477cc4bcfd0cbc685aeba5628c81108a2baf8c3c0eba7d072691327534922c6a02ea621ac423be686413173e2bc4b3180371e142d5d4a4b8c618561d9cfdb9156255a0da33527a1c0c9401ab0a3a63f23c7f574acd3716b4fed3733509a6d6c2491d023b5dcd9c1f0b1646d5e790464787bf4be6dae20113c8d7ee2fd19855cd61976c2eb27bcae9be42145ec3383234fb6c3c762080f12f8c908d0b5281dd6d0381e4100dab0127d82cf5b1ea8796562b350af8e9716bff86ef1129486469ba2685c671fcc381a31b9665e588e79b2fe0fa9035035e4e40fbd05dc800cf996fcbb11d933ccf7a44bf795004a9d6e957b8e58a205ba83c1abfe3e46d248f01fd175a15410b8f00212bab1f57617ab80460e414d97107a8aa04bbbe988b6acf8e5f231bb2338fddc12cf52102360749903c076e7742837a34ba36b8109540cd6e46ae27b27dcb3a8c15181e7e159967eb013c58caddfe5569c44bec58ff0e02ad3474e7891956e4c7e30d61c9d13e21b5b51f7bb489ff15dc66d5df340dd0b7786346969aeb8a19fab6140c98c6829cde27f979d10c7740391969eaa7dc54d30c4f074216a8fed9691ae133a4dc400f8fd6050d51d2e30a532be33ca5eba3848e62374f98a4383c3cb8be0d4d0274adcfc1b73f7a9304516d746be8ef664864a7e2f40031900dc168a38156b680360242700bb95cae94b01a0fa0510954b80c0a070c538340c4480208e140518037c93a24a0623c76fa5b4436221a22d111c6eea8504cc109bb0c9f2858b51fad22111a3ad6e894204990045ebea43e86629366724152628641bfa9f41461595ce35d6db12102be5aa3e07248ebc6a955d36a40f23d0050a42225f9cf39b611bac354c13addaf6c3b4f078f4ab159b516267a9be49505664e480b1174fb1a673a079e5c13319d72d2c6a2dd81d685b60c8fd54634da93247eb07e5dc63ca8e69edc0f8fb306db11b9ea07ec87f34071f8f25748d4b5c8b9ee31a82fc5f660c9f0bbeac6a57af018c723e7f0f9ce9a023c4dc5d7af2b90ef6a750525f55f7b6b420f159664eb90d7cb337d4fce6452d0e438049ccd839a8b927142cc1ebfc4b18d577e1758bdf903e01b7cf6b1aa1ffccb6254de65608e3962a3290ff60ad5df7b98c9936df20683a55833037d0faa3146f1489cd2996830fa195b9b69d74b9c6c45e281b32148a6f94d3224775d6205e79b7916b6a1235b567f234c9030a610a20ec2f661b7c8904d7343582768b8b0ffb53a265672e9089f9fdf8a708f50fc30dfec143ec0f5336dce479461044b8f0f4e5b8aafd06b4c7f8ebaf77f1345e838415b94de0b273150d3ebd635590ebe7a289efdd9d865228c29ed2e85dd0cfb148a650623fa293341b9bd1f8cda844aa969aa48e94d986a49cf1f936c18552492b5358cc9e88d69b6ad336bf66214e284ac884bf8e7879c64b2201e3dd8e376e20ca651b0260ef98843531b6c4ba0a4abce08115fcea63fb4c7cf951c4cbe3739514f997bb3ae92463333448ef301caa8780f3f5c5147d851088d431b35ed92f43dae73eb0061b3cb2f207f5d7c1076b881f95d3c055703f41bd0f630619cde2095a1e6f989aa7c2244000dc9dd209b5e8e885219feb27dcc2a900ed1c1c9a3f65b2ae3299595653b9ce822a0c9af19a458270a534003705e9643758aa0048a3e6239f44e6e4d12a1f03ea21e3c58aeaeaffeb03407cdb2b004ee6f273826cf8e1693c40ff7feec1968c0c2dd90b61c082f17b436567842e5a0414d73bb78c62aa3f849d885870102ee8b862813e6a0174ecb5aa7d150254758db38c67b3c8ce3a96c845c3077e3b28fb50d1426fa3897c6f09828187f588c6ed09dc10c613810c642e02023b0ff050d3ff1e206638b106d1484f04fd0175ff40957036544e33a9c2012392aa2f3ac29bd42782265a08af66fa5611b71d4ebdf4e005aacf016c24198738c99a5c3f781521e796870e467ad0136f1f33fd4299ef101939022b5ea62f595bd58a6ae93731b6f0bc2dcc0cb5c55fb2c4c131b830b6bba1a085decfe78a03e9e5e2feb33eb3970adfa659a5a8d07881b6cc6f250f8c54a258e13158e945067df27249b220deac2dbfe29dceef0e1eb5d7e3baf120d1db540c070826f71311a16ed100badfbf13a1d9c2fd4142b7fa66e2e09f1024b19566a0e17a66e8a6f68641d0802fcb451f25388332e2a87a3dedb35aa0818a05f808af2ece500911d166ced27ca994cc3cf47a32df31081056d5eb96ca3e077d83d6e7408d8e184ca076f5b826ec4697f21bf9d9b8eb5807fb430b453f5f3742611a94c9bcee11f1b821882b45af0606522999e3bf714b379332537bbefe46a98a8371f3634fea7a61836bf7ab050b7d5fb6568c5bd5bc84d7a1a708c6a7c31bfa2e4bf199138ef80112521fa265bd445121d3dc62ad9b88af72df1604360332101d457973550dfb92f4d4acacee41a88d7990fa947e09cd6dc26d448844977c230c73622a59cc6d660db5fe5e3a3beb9e12b0db0a6914bb5b788bd6425d564bf95fb12f7c3d2d404018b7f686b29f679815341a058683199f1a9bd55d7500b8b94d8c8faff4a9832331bf4f989839d37fedf34f0f1c885cd08b20b30358906bf8bf0addf07a05572228ef6d5321fe17b8bd45119f76fce6fbc8208f04c37fda22c88c6dd8bd74ca4055b78f0f84922c0e40180c5fecf61d8c1d92b46f3b250cf28870b9f0a4e4f447f1c8abdcc6adfa4aae76df26047257aa60d7987257badc87e751e543e34d3da0b6abaa579635a2494a78741dacea5f2b192f2e34d6f5c5360c9d4c211e6cc05ccc7e3f4891aedab198cd7ae1831411844b9cf7b22225ef712f3805cca9463f03a70c00f0053b0a6b40ac95db0b2fb801e4b66e5dbd1c697a4f43de25655856e3907414d2dac8ba71c1fe08581ead1cf33a0d4606cfc29f75b7300916123d2cdc103ab9bee6b8a1ff0f177451d11023e5aec46537feb75d7831f25e3f2bc3078fc6d1c70fd73bf89363f6c22d4ef2b4c4701a378ec919a3c8d70cee3d6e71523e94290fc3fc537cd1cb5c366e1cdad9cf1e953f5da601754f602f95cfd0e34a85dccbe99b2c4b1af7a99c47ddf5d87d6fd427cda8dd43385fcc0b02237b477b7d35c84cdc2b48918baae5011cb381b1b7c874defc9dcc5e6a1f3ae4f03f785e0eb134e94e3459728dd435fba0bea6ba7722f039e4d5ab16950364951d61da1f91d76af65145363eb93f37155a6a4d554c7f128b04d2e4979816870fec3283e342e3b6f8229f1134e788b907520836adb838b8bf3c59467bb1fadd761cf2fef0a2452afb138acb8068a4de0bcb980b84f49d27af28b11def275c16bdc05b60a0ddeabab306fc354e617d5e81ce80e178c4e69132f7e0b54d56e80e443bf9504b6e393b99915d171f5868636515738dbc823b3a0bae008dd7fb6847930c89ef04c9f18c61dfc6a6bb3f1485b92d3358f74e78a11e00f6c5089f2ff97f9ff6c0f9714000ad85cfb73b50846b77474877dea4d00125c23b8f13f82b79b8773e11132061e0aec14c33fecee72471421103062f7e4828d7269e238cc0f521046abd73dcb57ace5244292b252115811274802579e710e84f8a406dd249681aa77837f83c82d667bdd190e061601a19b66181d8a2e716f2453aae021e5499e71ce7220d6072a801bbbbadc9c648d9680ae3d7e5d89690ec3c33c0009e32474628832c2fdf8eb2c76c8b189d578a40eb9c61d8fcf3aa2524593a1acf9e0d59da1796ec567ae236e3b0afcec71a176d4538f3aba37865a56ccd02bed66ee76abb02c5f71c8958f0bb25786d5b84964a0169a065873d658d410f07b5d324d59e432e52ad7cdf23d5d2a2f2f146b108ced1b21fb0ba71e38b9c314a1c57051ae18d5614b0e4e2ab4458e74851a32cf75daf637fe8ea0bd33139b82c6c141caa423e5d04acd7fe369244adb246d771ad5d93cfd0e65e90cf8bc854de524622f918aa10e1ff818a70741bfc0542b8525b403b7b790680a2bb4545a5d6295517575f8c016914c79a428c776663220643928873a7502290e0f40471b60d2547b10ea8a7e081aece5ed3bfb53108124ecde6e7aecb1526448a36e116f4d040161ae3666b1b3ee82bbd1f6821332bf46a11c051db72c6c0e1128323b1ecdde01300ef58145b360f0d873bda069ddffc0bbce4cbc0bff6b267044920308583d527c36d034b91494307c187d86c91925c92a6a000ca92fcaa14d50deac86b72f7dc2e4356e006d0aa06b547f6d344d2a36534830ec764d19117e212bfaf396fe88f9dddaf30f1c22852966947fba363a581ab4c5f52904a06da57dc92417811afc641de7e014c010e579628e6463d14405a83b56d494464885fe5726df145d008a80106fdf499cab42f256f2f70aab01a97a2e044307a4f0dbf23d07ff60ad29bfaebc804c0651077bbd1532a08e4aeaeea22157925d9794074f15c245030825a034191d022bc6a2002ac54d794deb4f6bcc1fa492cbe460343c032febdf070ff28b46134c16bd0f713c6b45730185906adbef13310bd2ef6519e9a5d5e7b56b8cf4f0cbe18769e3250a62594be039297509b9398e2a01e1822729bf05efd02ba829a33225fd89ad4f040b7ae5f92badbd2c7eed7213fa0633d43bb27e8726ff1a93599f1102bc1347301c1009d00a56788fbd73689367da5859a8a8c1ac0dd96f8f5ceaad89468702a67dff410409268150ea9d81855855fbd01cc2822b59eb1c7d8735410b65d299525c570ab56c11246faa84670ac4aa4631b33bf07721cd03e3d2cadbfcd877201a30266ac3124dc019c3e8e7ff5c566c28e4830de6a9b45313587f4a0455c1c33eeca2a0aef7ce3534f7033925cc82e66626838a53e84d05fc86b1dac1741c0338e089664c357e8539a9145284b48ba53b83eaa6428d031e065ae64867445f63208bc0a6eff9418b9c511ff9f4e9a32820ed871867e5619c8d94cc107a7a5671b88c81f9942c85e145e4a8b110701b9cb25841628dd154b1106076d89b0b032be95ccab12a1550106c9e10df08c3103f717678075764f3a234333cf7ec5cbc4aa611256276dae3a63bfaa23b445c0a856d8240dd84e5972a3907b80ffe6254bda820f19b194f73aeb60f042f26e86ca626ef8920f81ac1a17185aac448341268c692bee8c4b15ed8f1a5a5acb547c219945e6afb6f02e83e0ef05f7f5f2f0202800e4287219689c66523d4cfc1872070110cdc976008c94b3476c5995ccd9a5afec1322b04dee56ac03b7f01782901e6ae3d4fe1ead6330db934eeecdff2e81c202d21611fef0e682d822fa3aa84b08a44550af70a3a9eb69ec61c6b042f5dbf1f59895800116a052cb1536d44f05c29b0bccf7046189e8dfad60fa49e8371488380649d28d730ac4c54d2d7fd6ee182ae691c4ecd2f2ea729f1c303205ae1c010638ec63ce8bb45905a477273732eafd44c10c8a72aee55fa1bcca0ddb2c21b9bd57c98e86c81c4698641ec32d58d8d089aca6ad2ffa244373d339e7a3071f29d753d90f5d2a82fb2f621cc2dfa46479a46b3720dd238b5e0305e264d4cdbaa65f7df13d26cdacf957f2872b6a7a43d60b06c29ea6753a0a9a957c227d63c4608c20dd8ecedfe20ca42cc2e224303b360ebb768e9d6667fc81ade3041dbbbd0103fa92bd6af20c59dc41e812a0909b140ed6447ab0e05a2908e82b7e1fc9eb60d37407c3a962774fe976e22033b2e3f9e012398bb9e9c72164367b8e0bd0f4dbd8faa31c124edef13e3d181821d8f863fb04a76158f044489096704985aca12587fb310286d390d96fab15837289d91a8b81096796457558480919dba05caab20f839241803e144c10b3826fc4cc84dc238616c9cd86588134c30cd500d575fb9f84fc501d0e2ca371215deaeca75b44a0500f0479d5d56b0ceb20040976d6f0d8ed0075c9c45609f7f4eaa8a80f5de5207853921a83582855e8fd3e8864e3bf21293c0050e982709a20ed32a729227b0c18d7572f30ff510a910128fe993cbf8dc1d86d0427b2b274e1cd902b8b6a9054698fa040f6c127cbbea131944a94502203588ed01b5431e0ff78213b8239f334e93110463daed1bea0d4fd88f702bfe8ed1888888703a07479014fe88042414247fb72a13f1d2ce64c9bb250399344b536710c1548e2b0eddfc809dd8119415864bc3f1b409d34dac0931971ebc3fdeff717682afe05fe1a2403b89a055bb561e7dc164177328d27d86c11921963b3e03fc5910cf29b76b8cab120783f14b737c3fe6445cd310c7de2b0be712d2c3626114565a7d0839055cc9d0697022c745f32706a8079b745279607dedcfb090653218e2f16b3f7a70f820a5129ebe7f52f2291e4703cfae064778cb13be36f5090d7d76e2348b17dc5b9bac25d6b00fbbaffde04ff1dfe270ea6ede8a6a7b799d1765c081eb3559e693fe36c2297d6875f198a56b1e3bafa33cefd192c4a91b0d85762c7a51793e25d8924c80f328c42edfbc40e1a15b0a35e4181f042c4a4231682f8e88a5aae28ef196bea40c46182a65877b456de0878950b94adb7844a5b9bd27f0a4e81700e6b1e872b650139b8b8dc0af58cc300388060f252fddcab97dda109a86d7001697f6a3b6612ba5c2e204bd1ba7c2693c0af921e2ad285b3b311fb5f44c29e356d109309341e705569b111ae13025f2fdee98770e37c37592b4d70d6511fbe7d2c446b281c6cecb1d83166f39d31b39682a9c7ca114ffc5c26be3c7d4c82a4075b38babc07be963e8ea1d06c20187839808105777a1783cf32470fd528148a417b255d5e10e4c2b5f25fd12254a9684d9f1375749ee0de5a4061b905931ae269e4b2db1bce13dc47fa008b13cdd63b21e7f1c2abe7e8d0bcb10f89feacf46340a5cc4e9b162223de007c31f2a70147b0773f256046cc66e97fbbb86da512f414f4d31dc20296e5bd2c064cd5d28719ad08b87d8eaa5f99cf132d465aebb916fab3e098001f70100acc7340453421f405f4534f174b9630e1b5476c6c8ecb6c6de7676a64b686276dbedd08394f81cf6dcdeb84d850b61c191723a40530e78a8cbf9d27328cc7acfc4586952ee0ad7c9adf867fd46cd03bd236030893e57138c73a88a8299b2edc05420845245f78888f25095752197d820c306cb42b0087ad55fc646bc318e949870901b8017f47f49510cf782603bba52a09a8a948614e086d723e9b1bd6e2649bae15ba66a29ad7173f19d1477f3ba8531dce0754c95009fa806f377921053c24a0f612598f1da56e2d3e51c3a0857582a40136ad4570e3a617f51a93a365d9a908c9f545eb589b584d0d832d69556f10081ec1745cc9daee2da686e15d0dfb04f736d453c32a3c9ac2cf6258a79a84984be5bfc0abb2f1548297bdded19957dfe207907042e75d51e00096bf5629547258884a91ecd7f7275fec6c7bdab976fd416c1bbc808350d3a693caec0b3f865c41aba1437239f4eb3b1c0c0ec109bad46337630415239b5b932001f6474a141500ce0e9e67282e6761dba9a0b6ccdf0af3ccb937fc801e639c3bc46537308364e7f1e5b667343970ced291c1057e51e9fbbc0005390bce1661d3afcf972e4a473bd184a1cb900201884a2b11613801e6764b1e073231f94a6c9fbd44cb1576583153c1d5a58c67f9e15b8944eb304fc2cdcc2df30150c8e08ba23845553f4f6cc807b0daa35671f53040e17d09dae4aa1881409fc51fe58de2001f18a7393a9bd642b2501a4d0aad71aa0f96c4cbcef7af34e402abb1d00764b3c90064644d820eef22b72251a7eb89d4da2eb0ca97c5e4bd954cc0ad5e8b3bc2a961f60e087095b1947f5517a7dc331347207c5edf228474c3695cbd65042b0a46da07061a58466301196693919603cb535505e74c49c01f58749ad53b61f63401884be77d606b940c01490074cc093cc59e237546fe8715eaa69288f0f7ec27a7768fa3aa634077e1bcebf64102818dd675bf4722e095a8a906bccf1026c2c56476698ceba92525e2c076fc0ba86d0f59daee86dd880a2010d576f5f61fd19bec6f0d7cc65d8fbbc3cc2eaf4af6a1f39884e5a0af0b9567c459f24c61bbf92bba2b9ac31483938f8b81f4dabd4927dc6804f84ce7121811362992283192253892200be22998a648c0d9405623c2d5442c515cc6dfe7484e66d9bbe9f34b8490c6b32ac222143deed0d1a2e9bf814a3aae783eff399e6712c11af8d907182642bb6c9a80805393447c765559ed7f7f126a7c1b595d02647f1f2c5c4e05cbebf0dec13d1c10e0157901abfe3aec99b3bc42f1752ffb1456b983488abbc725130a08cf11f5d21af47111f750a163d52d216ae8665ccc7c767d80ee80fd295cc41df2c37f983cc4dfefc423d3f502bc1ed7e10ff0cc481d71170f9a18bc73a1b5ed102274ec2364e8c34c5b2f84f878ef821281e6c9546a9109db2878bde5128c4b157c6d32f553417429051224c73159131e152e5ba65f7c1e06bd074094cc704111a6916968402402b1d1ae358c9c6011cdf2d4520f03ce99b866a482f563ab7b54a2bb677f7f390233ecff8785db148e9cd20641220dafb7c52456e4e3789433447c736a53824402a6b25bb1d7d215abebce6f77245bb0b0edc399eb7d19043d98b0522ceb71a27b846b0b0a8782f71d3b4dabb74028e2764dbc81cf3d0522c5dd7233feec3293114672a350d1a15d2c8133cc47392599a0c36e792f914bd424e45a5a3f938b8d7a81fc2f6fd18b2a8b75b57b10b0f890c46924e0942ba121853b5ec155a26c2fc30727766b9c25a0c4c7200d334b3e043bd7b4553ff89488f0ade705cfa8d5e0ab0c136ac34fe4739a2d686170bf9ab6b9bae6a0c9d3a7df3c5340a59184d66dbec882306a1352837a3c3315c63628f56551c8bab2015a5956fbb74a608ea36edba74270bd9a864a47e83aa8d9e4a03e7166abfa718a17b7a61a8c741e3378d962b42e4ce052eaceea7a5fcac2d8d8d7241fa30e861f85afe42f07d791d8e487dcff22392fc8ec05cf7e52427bbf240b7bf8682f5bfbe611ba65dd57e456dbd07d8af2bd5ca5dc977ca95a28e62004b55c095825451b742adbbe5609a2e00c608f78a9f839b9225b1cac0e752d0ab748ed9ba47a3116e01056e9fb75cf48c24576a7156cfa29fd65ecae94e08742bbbc611e262d1345fdc1fc635125183978250c56c05b3951d281e871d0db8a55683c184bd5a0c4f923e4f6a328eca6e5430e1a6a87a265f8e92ab2af9ed7ad76c868ffbd0a0e53d00f56b2b0afaf9da62bb586974408ffc4f44eadc6e5c33fffb861e038cdb71a6b61382d22341a920c700337c69ed5981407e3dd90250b0f9d9c12e404c9792a6bbb29d887a8c54ee13256198b670baef0fe9538cc326245b42a1d563a0298f61d5b3ccb7a5a805dc12400e562a0f62e1d757444e890337bea3b9333b823af1e4f5d3f90cce296245b40b4d22af28bf0f867ecc74ff45b8fded05b234a70e9c2ae092214e2da79f4b49244761c96ec67ae8ec224580ce275d8cb5d1c3ae64099f01fb6b548f6cf00990b4c1c09a373073c06bd94aa255163a546d3ae1fdd7c66476250c99e4b722b17b9b0f3d1df70cd71bed9a4973483d716eed4e0c0448b1e02877d5a7a2712a3be4063409cf4c0ae73ad85d406c7b17a5c19cde4f8beafd8f47d2ecd342f5ca169c94a677473a1194b346ff3b3d9322869727becb528a95c9a93ab8b36528d07640b593bacf66dcd1666e6cac8804b9b04bf542efcfcc6d24897db371ae74f36926d9de5136234d6e32534f3f193b85d39aee26dadecdbc83ee29d769f442442211de1ccb5486ccf47935fe78f64718649efd64eda3e26d5830241e7c04a9586e6f73f362f80bee42f0803303c141ba63a6ce965c993561db695a1e682cdda72dfd3b2bc58e068fe57aef48414551c024dabbc611e2254044d7fc8f92369ddfc8aaa260088270f1432c4e8e5ac458a5b400c840e16b06c6787950ab2975970f29fb98ca0ec8156e7756f9e5c32616d1188c4ea836fd59d34f2882c32b5ee209a56f296ac67cfd83cc0e4fea999d47b1b21ebc7584e00cc15ae195214bc2e7d337e3a9990d0b32b43d3057876bb81b632c471eb8ea2d688f3635c00055664942a49f16863018785a68d7974f843ff67d5fe7f18a896549163742bbbc45baa5854982e18b2a6dc8a82503afb9e397c85103d4e37e6c4201120e6bf89bbda902487d405ea74b481df8dbf2777abe4a38407094468508e5fdd49b6ef10efc95e02501585197a2cd4c4f4f722a113c23d4d08cd7cb78b49a2b91e002ffdaf9f3c1729242fa6269725a5c94bdc2a3031462502244dda5506c0914ffd8cc0d2c9f1d448807d28257cbab1edbd93ce6b4f7a1db2e2b630b28f2ee14fd21e53d89587073c9e49ba2a4868f11ddef054e1b38e23c3c97d93bad23b3c4be6ac14339057061e4e67e599e7627cb892bbfd10189fd6a1f44232cb03fe6eec19e622550d1fb3ef77607c15c446caa1bddd12b0e115dbf5cd9f0fc69830efb6dbf4c2a48c8239bb60ae2ef4d27cace65298433aa81e64b615f727268e656d4a91fa6ee18b66acadfade271937c43d5f4df925c1aeba18d6eb14f82e38036c2cd22a031f0d102e52c053b09bfdc77da58ef4ad23728120a9a4895006403a5c73ddc103482cdebd700aa2f55ea92ba34c22f73cf09468347fc5b5505741eeb44ac062eba7665f791a4bb8088b69444185d648188a08ddf3a004b67e415393e2ff07de4f3f1d20a78e61cb80907b40d32cc6afc9cdd56b8bae65385f2e4409e053313960795151edf8b98baac1691b7f2056b60e8dbb7d28e5ac544a787d0574c2ceb5ec0281647220a640efc4aaf1473c68e78da17b0c136e5e81d2f61528fc05607c4d2effd7ea591d6415b3c83390c4efd9084da16947c2672f494a5a1729e03206965a358f9fabe00088376c99dfb1c78592c43983520f5c36cce714433680a639c6e050eb96433d1731a4047344e055155b27b058bb5370ee49f0c4d2bb6f162b70a47e147d4237794989f1791ff940ab3b9daf7f7789acde31fc20b4eb9f5ab216ee8dbed1cec6859d38c4e4d1d0256078524be302884b01c7b907d72ee222f09fd237d54e2cdfe3a9dbc0da6595674bb2301045ef324f60f4c4663d7154eb101258615ccc9d29b927380337e9a05752a9b3f5df893798e4567fb2e85848a2f0863fbfc75ba1df09a09c1c7925495109ec360756b26dc1b1c811a60f2923e21c30280a145176332386165e49709622ae8b0ccbbca36ca0a1a6a3b0a692885a7e2679cae4e39699c4926af0d8c27ccd69ec44ab9e81a17a51636f2b041a62fea15c988fd3a9b3e5ace342a9376b221b3e6906fd567a8a3f7163241c4d5188beddd7aff489304aa5936f25f1291586347d79c50d412febc03c31d7d8224949b8a5c0eb8a2fcc12a42f1c7a90d0460efd84df606e4605dc569ae305d7c6bc5d8fd5adfb343303a020b267c56d8f5bebe57e316f8abd3b69add1a9268e5a8ffa24916062c5a9fd10e6b26a4cd74814e390d284a71bbcb44f1239ce3aa5c315633fb46aa2482cb8e4a32424896c456e7809568acd6d4bf0cc6ef89b6566c636d8c8fdaa89bdfd2d09ec24910df8a85ab624a2f28c89dd84013739815e902846a5d1e1c3287483e545889cca22b947297a5dae3ef218b1e7fa7e95487df79ca0c49d1410391429b0162b81d2992ee6af6c46a4db1328814d64974412479d5228feea4a69d0f5f1acf18914a4ca5562e9993f4ef8e1dc332ad7cf503e7060b250400bbdf916ba2076eee36b543272955ce07ba96ce0887c84be0b0c7dbc3b66512ee8de9ed4c79c00bf8ef772d81299df68716fd21a1c38557bbce80e9a114b831b1d14bd66d2a8325cd6f18dd52adf1614a6f6ff5f28cd3b007312d3a8ca8c3e8d23c6496006e6aebc06477112690448980d447a9f003102f8c746c0823d7d136f49a0d86cbcceddf092d6e461449142c98036a1b98053e4dd237919e5ce0fa5ab06cef68acc802cb0d7711d5b1a582131fd38ed580e98965f9fee90401015a38d61ad7c702484225e2779375b5c49a28a8e9b19128fe023407f740e52c1f3bd67abebac165a181a3d2072666f15970bd5daf93383c375fea1864e3d14348f07f7f3e020d71ddb74a86f51870e313382ff7d48018298f42307974df04ce845bb1c0caf618433de5143c517a1585a8f52af3e9c90c9b1026ff7daa4a6a43fb42f89502de936f6d519faa553181bf237f4c8af81d5a98c2c72d8c8ac6211d59f675c109f2f6e7ee1feb45615747bc0b8c89c895678048b79c2a7fc1bb858ea085336feeb17884ab3a7434998bc99e9206b48acd8fb0714d15a1e0be6802369f616860ef4417308d88ff6d2397b733b07bcd0b69df0f8ba69ad0fa9466c11ab3edc23e9926156a2d1ac94b673313e739f3e1a68c278b4a4c2557a3186683883103a8844ce01ad5515358aaa25f13ef37c1a64d892e8650f0fc819af8bb1a7244e2f6ef4492fbe1468b055a8febecb59038a9f5ffee08b6b68e9fc94f4e61ed8f08ddec2c317bb9666e8fd8269edf5c1162b40a41e54ca01c28df58de65fb667e5abc0677cb3be337eb698eeb18b130409bfed1ecac8e6624205d863bd60a8572fa21d3d8142b1b690f7fcf66caac43ed4acfacbbce9edfdc0c9ed7de8acc6199374573b098373c0165ff58587d2ee3205acff31f0d04be4bb3188008e277c318911c8f50b6dcadb01bee9363e8568821608f060d6589935a52a8dcc980ae5b297db25d5d881c0d16ed227f3eed7b4fe8589bf1f03d1a02c89f30a6f46a0c5cfdff494ece88ed75e1d00f7f13495d7d25eaa60838435508837a9019406e6e2e0b5c0ce9291540946437828edd795220dbe189d023707f5be3f8bc74d059d2fc2e4609f3850af5a05400c94e05bdd991b96574d8c3312ee0da39345d323b657d18fa37cd073d4eabf813813842025c00b6e8fcb523402a76e8f85e90029203cae631ce20bc6b8b8c0c839d8392990c4e8a8d8124efb885229c674b3ae2fdb5e55c09d41e2fc57ab482d51958ea6bb00fd0806bd43dc573cf5119cb90179fbd161f3fa3b63f49b4be3935aa79cbb75dc539d5af3e2af9f7aa6e2caa3cd7ebf73b36ff0329ef6b1ef709aa4f0c6bc80fab16161920bbcb47317bbf9ca447086e3029dc04d6af619745e0e9b5352ea7b45d4635602f38433c02d22b102b511e34acb110ba50c8407aad88147a8a74b4563c3fd8009593e73800fb2ca621bbb007ec598768c08ff0018e207467d7c75767764d6de783b54622530a288213d5f246c05cce42ade08430c83da7f663dd8cef4537bc1de491e7769c317a2840b0215ea11e49868b8fa85c5968596290069abe93d765d2bd0df35f3ac54420cc566093c3f8604ff560c6617c49e260dde750b23068685e24f38d4a625a0854e00a4f8f4c372099bd8cf4053a3139641ee2f4e0da829f582a0342e3d2f4c44daa549335739f041529d98da68b39157b9f28374d8024f7782df9709bd611251d87aeb994486e32299745568dcac4f71b8fa52dd3f7bdbd699310402a60389a98e87f8408825d1afe8d328db9e427b0a8cac7012264354c0417b6f79bde79fc245d064782bd945badf6a55c5bc28b4a7f423e07213fdb82f922dbd739bc76d3274dfe9e01070620b85de0ab1caab50adf8878a65c14fc8477ad21b521dc96428ee1189cd957341dd71da6fdb5cd8e2ccc6adc6d4b938de3ea8d5ab9b4a68650bbc0c39af4c4672eb3fb7bd6504ec855dd2bd70a56ee173b9ac60013a401c9df8aa9f1d5cdf6dcc68d01b5363e219f6b270d23ad3e6fa5c0fd92f2a5ced1b5761c02bb5119d718a700362b57087f951eca2a4dbfe6fdd400de0f35a8b00d07097a49af69c9d274cd430407ce43633c9198f0356f43549b8a1b1ef7ec8bf59825db09da1e2543c812467e1a052cf9385827980512f74baf8e99b26c25dd187ca65bee1457841a1ce666efae8174c3ec8260b51cfdac0869700355dbc6b2340f4e3297217d60727af370fa53749fad8e6be5f1d2ef46021285075fa2850ae7aba1c58361297bb00224d5ceed734dfb55c5024939b6e151de9d58449babd151eacc749ed4ce8d72ce6ee4ac744981e7cd7d4d5190ddda336a7d4003b91deda494d709c05e966ab61bab20cd94240c65aecd9ea83fcd5c8848410c2ecd3846d8aa74c0d6607255760d469c617dc5a7f1a56cf012fd5ba6236286a5f25015240a7dae59e2631e8b8e45695749b7fc439f5ce9e506dfb7fdc0f8b641a24ffa04ad588aa06341ac803d581998c7e9f043140ee45c49a5fea13837acf628272dfa2e3725b22dc68447b6f3417dda8b6c18c0c841e9d51d2ed9902cf8791d86f0b02d36562901d8f2bd94de5e8dc42a1519ed79faed024f37d5b594a99e88475e8e696f331a8bb11b3b08ca3c9c83bea8e9317c6bbca50ac8af5895695ca0aeed4c0e46251fbb42c4c2b443859ab7651c485b6b5c0fcd2522013d6c67a71aa2f694cf8181210080d17ba2d09350b247f1542733da1340e71307e3e65455d919be39b1c0c89a706abe4c9071d4264260b0741ecb171f50ecb4c7af719725c814f3b659540dfcc81635ce002a881953e73ae820a3f619735acd5563317c9ca2c9cfdc6f1186cbc0f3a0049da9a48251ec4a0a0f184a94f284c4dc81775ff80b7393d55a9c9718048906ee3cbfbe4afa98d04dacf34c1f6ae8178a1dcf4dc506302a47db215f41c6882fae30ffcd4895c1fc29eea0ab4f1e408ee524238fb89fee159a4b4689c93bcc996bb84101e2ae384357ba12ea0a385ee8d732cba454e2e2a228fac4f00885ddfc8ec6b41b71751f54aad450c9d3b579053fc5e2ca63e9e218670d03ae611b95ad2e0ce99d121e838e8da19b4661891e1dae187acb65e9e736a933a69a2007d99d0800d4f8d80c99bc0104f82cdeb74e5d87266f338620375ea0eaece3e8f0c947bb03c242812390ce5dba87233a5616c6ce4a4511b521ba01a94df9d09b4797cc31618fd31a6f580b459abbf2b85a9cea7df23f83c7b7c1022906e3f1c732c55892a1c05913dd8a3f978479199306af9909094559ceccbbc9b478b803da226014acdb0f7916cea6a3ac8cc245521a55b43dbe88869635a32d3e888c2ed31e57e7ca58674f04a0f0c84b2b44b2ed303fcbc786f5a87ef621f54fa3ce627b43f9ba507118ed287fadd4a8c178157eda2bceaa382ed7d0fa34540f59398f6e5383839dadf0b48894c20ed87b7ee5860042244329e4c808ce5e415e5544f36e6519634ea9cb989404966d58ff9abdc6c1bcb192efbf8644daf695f67126e35bf7044338a521e6043e3ccefb4a532e0edebb2afe324fc5b881435e8aba566e074a63a80405365498bdafa7d65224dc872369d3303ed1990b663c7c121d982954b72d01eb2f0ed1758c33e128de63fd98ad21ef4d3de721718ed38b7da63c2213c504585a86d26f4d9078d8e3a0c2955720104ea0cda5e0b2e17509313d95e4b6c0178e7b1099521d60e2a0ca77dbc45267d0505c18ad7bf06fffa50b9719fb06ec1570abd83112420b56d8369932564bec6ea213653f0b3fffd3653a67384096945d6ce04b20f045d231b2137740d1b446251bb59a77ed0f6db23c5810e716901eae9d66d09517edcafd61d6bab50649d469bad4a12eb7ca782c47f4e17d91c357682b01613cadd94d3be5b12ceb853f5cf90bb4388244f5b4e27ffdd5b8ab7e1846c42b03a65b95ea8dac8af66cc8a5e03ab523fa8f9ef7a3bfff729685e6d01f2e1a8938b46671fcffa88036e3d8ce186f7dfd5f6ad653c5090b1c6b05cdec584a9ff3e2dd854986c3dfa8f96d815bd065294ca7fd73ac85bd28abb277f003c4a674fc09c0df03827755d81ca4bbc36fe40b34385e09a147cbd88f4591018c6f3a05581a978dd576e92cfa163c07ff09c03403d0ab6df6edc01d1a99a77b8e9f5e7ae2c3fa022035e545ed8b272cb1c61417dafadbbb6c90aabdb0b71b04216ad1af0fc25e295400c5128d3319be35145e22de31f8d1af06eafc8416f8dc7bdabff8cc27709b3a82c164eebdaece5ed7697860f9a208b4df0d2d4878de9ba80a7fb4d19d42a24a8da5efa11bf4b9ea2c87743c06333f05402ff0d3c46d35a893683e0f42338cacc3794820018585e55eefbe0da44c26e327a0a231a7d3b0202a6e3b6c0023da06519d3f460356ea1201e45bfb04b0155db5a9a6ddf9fed77c31b111b4cbcfbae3de8815786ed0b5a5dd1e5137469562f46e83c69a7b2fe48c652c50a8d989c7324f9692319cf31701336e86e9cb1c2dae7d49838f4bf155a563ce1995b22499f63ba1095b9d11abcb05581a963158c5cdf7ecbcaaa967a478933931ca640100faad509c258d287a80015961659c9fd6998a256c7cafee841ee0d07d71a118b583f4e5a72b9c741fc7569a51bf22b2b5629364ae0c30be3761ce0d19de88af904654cacd8016fc23a1f263e5563f39444302dd93f3215f707c437b886850b14afdf5907783a5c6463719a77ed6bd262e766b5b962f2655c336de6e2ce619299a26f38c01f3db9181d50f6050f50513c029d1803300345b732c5ad8933137106551307f8e38ff544ebae485ab5a1a1e1c635e88171a98ad4dceaa58aac42a4fadddccbcda132f5775cc50df07813fa27ad3057f58ea360b8c46c208a29a76b21db7d448084c3a4aa49dbb0c7afb078995f832786c5e3e93eb6756a677bc0bb48004accb887d4e4521f91a2cea4262bdcf731c3b013298b6c48a59352cb85034ac57b6b0a2bf9dea9f1fd28be2f3e75268973ab27ce54e71ab90a6d55d5f7f8593144207e089462213fc7e70394e3f210b5891ac145862a9ca86bf89ee4c5b4d5c05eb2a4ef39ff4b8bf28e9ab13809735d454458590fb96df64cf8fe493b912f6cda05964a9deb7c8b6c52bced696e03c1b0df14ebc2d38253d3c9c6daf02e0288449316efd99a91538205bbe77665c2ecf18cf9d5b6edf725d0d2bfd90efebf84b4e16a39cf1e859914ae7d8b374e7d4914a4e81ded7a81a76d8e3d47102327254cd5488ac3d1301a68942abf739db645ad2812f483cdefae6ae1733191503c180b6dc0a00f317302d93c90ce7a44b2e7050aaa8b8d7e3787e2135856fae1df7c2a1c04b205c35545ffa145678d6500bae8b26e50ff566066bd7323a6c38576ecfd22c8117ed612e8583a8a888378156b21b9e309309673b83b053152f554a5afd7d396b7dfd53469fa65d7def613c99911c7eb9a9feaf0b71e183dc4f27b40a788ef14226ad9dd8f7306e63e1156bc19b0de370bf66a2e4b42102a00213f0f21312a73b012b16f9fbf0343045600009f07d637f37ac9152125777daf4ce9f9ea26d322e97e155c5cb994bfa74188b51434122b6028e1aa76af94060008c6c9f6f739b30554340d38b95b5b7910c0ecaecb9f9145d94ccecd6d3b6d7d7db348811e2d3b73d5da3de087f7efef63347c99d4ff02593fafe4529743c9ee9d3b42f39a95dd531fb4991b542a2f8f87086ab16e1593547f0ed2e6ac2b38aaf415138e44deef0bd45370f8587375bfdf4ead5317317a3ba70f96e2a559aa823f2333ba2f4166632ed139a8f44de20a2f9817baa712dfbbffbc8e91ef0764a32be47979cff998f324053f7bc5b521d52e3315e561314ebe8d9b181af69d25a6e761d164c43c0bbdacc8b5c569748f168c4f46f30379c273e9d57de3a510483e119156ef605daa251f13ceca2ee56fffbb5e582ed5dad167a9fb794b13ad98860fc245a460c30d84165fe65754089754675d27f2b2206f1be348c398b0773e96b4db8a8cd841e163d0d6f34cb21fc8de95a320c12b43006f94cc088407d525d3f90913d93b3f610ba758fc05ba2bf73f61776833d65d7ca4310648c5864024a8c81415c3979552b27769f6beb1f7ff58165fa53bf0fb3ee5f212d4a5baff604c6ab46ada9d329c30adddb3b6fb4c688613c436e7f886dd3f45cf4426708379e34dbc185ff6eece357820ef570ddea1bb44a670235224c4e102529558c66ed3af19214bb09eca62098510bcda95323126dc870ba02b6c270f8f32b4c204d5bb00151328c3eaa2d853a511ce35f6ab68d73cf6b922a7d2849690d4f2d14b899f33737ce9b7dde3874cc95827c0c93e1cfa5ec2b52f14c275998f6810b903db66ba750986d9a9397114d41795f2cb7c2f0f29d29aa850ac051c737bd706049d4a37983293eeca7483fdf38aee9d323736dc0061dc2cc90c4fe943afb8c7a6c48af1ab174469dacd3e2393255ce016dd96617dad1cbf192ac3a4bad9f5130e76bab322100a21d2d43e3ad0d872d3c8acde3194edbf22bbaba2607e22001e9c24f16834379a8adda23fd14a5c89d2c4a759f3ae21b8738ee441f0631498a2f65214f70a1a485039a5f470bfe8e9d2e6677f0b014faa2f7a8df5294830de7c6b15cc96f9180ff508553b6964f6441966e33c95f36ffbd733d09fd1852b9d8b350a716d583d263af396f178a5e7812bea04fd20811acc53b9fc3c3b406be7b2c0f3089289a16f0155de5cc9de76b42914bda52b1f59bc5fd6758dfcfefc3ae4f93daec8f413bd23562d81e5c148f4e336c6d5f0c5531c2af5909dee8c638e040801048a2b276524549d727392c059331dc7980194140523d61cc04774b6288b06ceb38320a62f1398e30292e58bcbb64a6e6332c3f225111418fde9e026587a093905dcece4471844aeb97fcc3337f496139d9518628c362b1ad792f7e5b874bed837ec1c11b7097d0587b2977bb675da3b51ee19eb30f51be963ae2d10390b0d1d7892b7a360dcaa5fcf5dc7d9e90d801c0ab4f121a8fb0dc1e223d312e4f705f2e5c1008a74623840ad6b009476e7fd13438749b1104628c715371f6a32238945b11d42bc3a11304b15c9ced4cb07d9ee49ce98495a9f9081ed122374f19ba0285eabb18c8121c8123a0bf40166e3c5e7236e456eef743a4492b5b9e93f481e2aaf87295c3580f621ecc0d4bc42fd9ea42ba62d1477044ac177ba5a305c15271d994da5d7ebf57abd3e778fad63cd49eee2ea527711d793542aee8b7a21250b13bfdc5f3ed970c0023080c381011054cfdc0d73794c1f56832d58c4df8d642b002813e6dc07a2bfadad19d9468834b237d95bcabd03800bc00b440b2dbad0b7cd062e763eb0ca068634dc41dfbe1d5996691fb77db1ab3da66338fb68ae3679f4856a0f6177f942b42b7571648d2eb6f0674ae559d1659c3bd93563bc9af14e95cb55a97ba9fef1e20d27913b6f830d5cec12362719261176756c4e264c3870e78f3bb387530d3d486247768c58112b92e4cecfce07be31c62d79e7fbc793b3639186f6f9afb3dfb61bb80da4b2433b0a0eef6af7ee16232b0343151f4457fb022e056787495c1abbf1061a0fc714b6a8128dc8f0584295188b745c2ae5e489425c0cafe4913b9d846cdf981b6df7a1f4582ba7529a4d7df4f19057023417e471bd49e9a37b42421a69442a71a34f725f8ce1915e12c3eb2e647b6409d3c3db0937fa646cba9d70a9361d75ea982ee9664aa9ee46694b85a1e4a704490fd7c07aba0898ecd98a80692c7786e8150d617a30d513c830d6a49e4c86084be7a7c0c8aa148c663202c3a8139d70e9b716dce8935d412310f4eea76fde923642e970949cbfb5e06caac2c0c04c18cf48eac867b8973c76374ace2693c9e96447a7d3e9a59bac0918f2b597ba1ca99f4660c8a6d4519cfa442f919e9230182b61301206137de44eafe8777cba1ba04edb4274c99b91d6136968a7a0873749dd44de58100ce5908cca215cfacd05a7f5d52a9f87e83208aad73eb241f6f4cc908d301f41c2d4157ac87530dcd62e984e35e5a7ea46cf3d71a94daf44f45e8fecb91972e941305403199c3ebcc36097f6a5e7222351e8f31c37efe893dcc7895a76a2777743bbfd06721ddf548a879457047a9cc3452c402f7bb8d59d5e22e11677ca973b1475eda7f7ce0dd44fe76f3b7d25a7d34b523f629a1c743b3a0fd11d8d6e3aaacb516f021e216f0a0c4fd77eea72943e3add7b0988f2c3e8a8a34a1f813bb4d227bae90b250d2e25bdf4c921aca2a28744a74fe9d08cd26f37b08cf5061ae2eb8956216ff1b33de4ad60db700c0b64d98c3f46f4b0577bbf7f40209b65d916923ddc4329f7f49c6edc44a25068d467f042eee1420f7721ba28a5d48ee136ed1b5cfafef1f8f666ddb90e071ff46dc4953a7688a79cdc213ef5e1e11e4672016fbe251d72e96d26a7055db316a40769599665da41df32cdc60c8c399d905a7b2ea53e34ebe15606d22e4776fecc7ab815df48da27d2c8b2ac87529ad58470360ea685e88155f330ac9a9a5741976010ed02810488ab1957cd741220aee64150827216c1aaf91e1630c00ff338620d1502441af43d1ecc3ccb67e7559e70e57f1e7b6214ae7c98c39d991121224bde66aa842daa84ec73e704ef7c584d9c72a39d37b66b029735a48e6c999f5e9c40bb640d15d93253150c539ec737aab21a556c8095bcb24c4525b6b2f3559125b6e8393b334f7a9f9bc447e5cea9e283bc6ca50fabd0e0f5a9ce953a7332b34fa60629c5e59e95b91f5458a54a39213b0753183c516140e472d65990c7c6cd3b41dac6795782a15471ab8a3e41dd0f2aa108e44095950f853e1e9d4516b79ebf1e0810c410444cc0474d133752f0116ef127af8a5bdd0f2aa1e915f443052ee8077e0555ddfdc00781e11155d69038bc7b3979c85b63943558891b6badf5dbccaae5326b41b5ce7a813009256efdc671f5db516fb3a0b973de3b6bb5d6823c64ecd6575046c5adaba85a03c316559eb225144ac8054ae0090d755c9a4ad11a73297dbc26df441f0f1f51ec982f39caa5c8e40b2b10bb26242127d4e40beb4d9e7de1bc26e0129789627e3b293131e9ce1d9844d439f19e455689b2ecf42652113763138b42d99309f5fa1218ea30fd7493975cf4279f350143eff4454e996a8966e0c62cf23c91492a95ddc42b79e8a5ee7d47cac424756a9212a5401e25a0900c94fec3740b46537ca12f812a93aa575d02dfab265dc725fded7a5fd52ed34b25d3f652c874ee3f4aeffee374d07f445e4d30b47d1726ade861dad58161cc258d4e1fd3a36f87e781d92938bb2fd52b3ef7fdd840a097d124284dcd4e5bd8625cc5099cf6b3ff989f608c979026cacc2fcac88e63e4217e2271c308445fe6b7ab2fff8377e72afe877dff4736e77f343841af57f23f625cd5f77f54302c2203bd7bf948ccb79c6014fc06b71879d2c8497b2848d24ffbaca735a452e6d8217f822dfa30abc0c0cfadcf7c983a7aae7d36adf5bc54eafd68c4f464643ff05cb8c543ca68257844d06ec75537e7c5967ccf998cced975d62ec7bc7df6c95919bcd76e66de773fa85c09ce0e87fde411cf1d0e06e70e0af690778299123a979ec814a3da3449d4665e0d594edb403b6c2fb8ace3108b88e5914696e4954226eeb4a1b4921d523a98bc386141e126b7b21636f477f07674ec3dd58bc5b2d281484faf28bf7a455f3c7edbe1ab219f131dcedf54ba19e6de6ee026b74c3a7cabd55567f9964337c302c2f0562c2b1dbed5599ac562b14c67b1582c16e92c168bc5b267b1582cd69bc562b158a1b3580360098025c3e2ce625d560c2b00aced2c16005836583db0b4b3583558345833583b9cc58261b9582d960e67b162b064b07860b15c582f2c18ac1767b19ca5c2ca81d5c26281acb35cb0582c560aeb849562b1582816ab9ec5621d876e86350001c8dc980000c0460f3568cc8071b578901103c68b4b4b0e2ae05da49ca450d26463f3448944faf89a4816bc011c795ec8850d2e4020100804028140201197d222856f28b49da09c741ab703aa04b5e9c07707d00b5289546badb5d65aabc6e28d3cbe2f6ce53a2eabd96c0d748d71e070b9171f5ffe84743b7cb2c74a5bd33161a26157e3d9d7cbc76b878fcfb2fa22abf815e4d2bf5ef42cd0b715795fb00eef1f4f08e8da8d982fbe79a70dbb367be3f5c9fb8d05bbac0f0fc8a5fdeef70ebb36cbe3f5dcb6825ba8f75b0a7681ec14fdee770dbb403648bf81301276f1cc434e72b110409f7bb865dfe71c76b1cc43d6b9317d26c22def7d7e825d1c00003c64296c9c6db815baab7b78c8b01a34fa120b69845d3de3a13c2291dcedae8ef58a5ec6786831c1ae0e6513304209c50eef170f252c94af1bc61fd77cc5232ae00dc0ae69430401b8c50f63cc458a8973cd58af5a2cef6eb66917e835038676003602b0b9f41c6b97169301437b633120d55ed6a65df6d52bfa0080a10500f3d8609e1ec0d0d678d178d9196068616c5ca0cda535565faf7665b11618a678e8988c8ec500c3148ce679691e9757cb4b65d3aeec156b178dbd7a459fca010c539e0a187a1968933a18a63c1760e8c5ec0a0ced0427cf6bf26c381bce8693c3898d0db754a7df9ee0d6ead4e6aa423e38a47258c981efc9c777db5edb6b7b6daf4baf8252c14185878787e7d2df60026f001fc3a68f2feae3bb8162b158ecd283a47f7f0c835eed02d9f4eaf502bd4036201b900dc8e6d27fd6850d2ef8923ebe5aac5d9aa6699aa6699aa6dd4b69f16a97a6699aa6699aa66936844e504ef87a1f5f1b6b97b5d65a6badb5d6059732493d86edab5dd65a1bfbb2b12f6b636dac8db5b9f42d365409ea721fdf1a6b57adb5d65a6bad356507d3a9beda556badb5d65a6b4579412abdf8f8eef0f1cd62edca7878623c319e180f0f0fcfa53fc9bc51f66a576693bdb257f6ca6c329bcc26b3b9f4261c128598c6da457978623c319e180f0f0fcfa54fb170aeeef4d52e6ad32b7a6b5fd4e665633d1bf2f14429fa92ce077943ac2f94e4e5cd871bce862305b7f8b4ab696b3daf53ac8f2fcbc7b7d2eb40dff4db0a33f3d7b3b9d2d08b2fde15bd8a7e853e0722971e87292ebdca477f03cea507a1b8f4df1397fe1fbd0bfa16402e7dca073bf9e84dbec8b4a427f2ca54ca217da31ebc4fd4a970df52d84a1bafcf46d0906fb8e15cfaed05273b2dd268f046a446f00dbb9a904f64d1675f280c9145df59847cae8eb4018918c33ba1be498e06e7f2e3e5c090e5c6ee3cec4324baabb8b583bb8a55717bf7d1b66ddb48bbed7a0d5e7c7de43ef088be0fe8383046969041dcbbc730c8c39e7b77fec2d9cc85baf321f592773713232b44e28e9ea1dce4278fdd8d94a37c33f9427a4dbe49ce44883b7aca02eec8e4281fea275fe9b1cb81c345994cbe50476ac46374fb928f87cc221ee12696d1171ed1f701a36f277d3c460f69ee68863790877d3aee8cabbeb0883b437ba89b81016178037836806ccb6c501b361ec302f862aceae1960d1b32b3f119df667c95879edaf88d7a8455f3363e1bd3363e79eb974111e3d60ac80282a12700f08879eb8ccfd71e1b9fbc333ee3965bf633ce714b7ec6bb6e6606fd324a6fd40aa2e05879fdca69ee56ab95d33ec668eecacc0ac5693a84e914dccabec9092b72c3fe99b076754eafe65bc0d05acf638161f760c1ad97ecb95f23e156c83bddb3154186ac21e3f36d84d8ba9fef25c856eb329f6f1e6ed9f87c1fe1160f311e6a498835625c216bc0f87cb914628d97cf18e6e17ed90ca26abef5653890aa79992feb4154cdc380f16c07b2653e86e9990d62cbbc8c4f0691359f41215be66dbc80191551356f781684d832eb73f84b3d0e2ff52a8f9d0f2dee4b4d41b901e524b2eac197faefa5fe2ff536bc4456bd8b97c8aa6ff1524da5941229b2ea515eea4f5e22ab1e06189a3c918928940a75251d175995db501be804d24c9a8dacfad15fea4b350365f725b2ea43edbe6c73069146bf3c9341a4c19155fff22c8a484346567d7906c57ca101d218a650744ebb7848afe6ade5213187def012bc8e0d09a912bc151836099809deb652c3ad1618cadbfa8c9482618ff9f24d5810aff57086f43437664458f5f2ac4837f372baf22c8755b3f518deea17afeb5e3773bf795ca7c00be7cdbd8f612905ab70b6e664778387532134687c520a5ecdd74fd257a4e1430ee129c8e08512677ed6ccdacd64200caf6635a748eb6450704bc6e7b39b4823c6adbd2f8f6c93c896f997cbf8a88f189fbcf406c6e73b89cc5329cf6b992477d25764cde3d0f8329c5ecda984279f3d9c37d4751918df0b0f5f6ba6f518be1f8f18f2eacbe9bb9b99416f839e071c6ef1f018206c9cdedb50e601b8054300803c8ab83beab35f7639609c8228f21e8aac2b0fed4591a00f34f2050587fcca6fc8afbcac7c059cf230be70e52e19f436e879c87e5bcf7e9071dae5a020cacbe9576e9f7d282f97cf603cb4282fa00f34f7e5f22bafdf5e62bc7c28385e0ee3375e0ee3343776315e0ee330c0094e56ad3c2c62e530049057e632c0ac0c5e057b645d0164fe22655e2f41994b7087cc5fc01d77857e61057bcc2b737f683dfb05630cd8a3af8d07200400d8a32f0faf3c9c0261030ce5e5e1f43c7c61129766b754de0211ca67618fbe3c8061052e7dbd54d6f7e8d8c530c5c99e81618fa63c85470f05abe88c9a8b83822fadbfbc7c863d2de2d6cf2e078d0543dbe1a07f794cc39cda6f868decaaf11ebef2c82e1a87f11ebec82b1860686fadaf41e38bbc5a0143db832f8cc3bc7e77ed98f19773f743eb2f971d8e197f59f9a4fdc222aefd8c2fa4b933be7157009abbd2e5c8b2d7577065c66318c6d783efcb37c9cdf876d8bf7c83f1fac9226e16ef4a0ef9fad8adc8d7d7c30057ced9efe533bef817fbf1cd5e6e3f1402c49b5d5e9a8b82a3de9ee6d6c92a5bbf32030c93b82f77dd65e37d01677cc6d77aa8e3ba0ef385455cd7e90db7281424ef200f7484bcadd6e9d728f06a4c8743dcd0f51ef3b63e5badc7b0eb9b30ca7d31876645589593ad7cf16e95a32b9fbc5c3f5a69fd6c952b3060c4589141c10c8787674432222b60d6fae4e5e13362de309391ddb48bdef46a3e06185aef86de641308b78e9813c6ad97cfcf9a974f6ec1f8cbedcbb76ee6a5c11ef43c621659d0dc8d7e1148dd1df42b8ff1455b3ffb6c63fa08a4ee0ef995d3dc182fdfac05b91c6e51709ed4cdd8d39bca7535a4b9dfcb17729782afd9ed512f8c182fdf6a566be56a6e4839986ca9b53e7639380dc8968a423fefcb638028f4f6561820ca0b788d98940814ec3abd018bdc799a43843fc5a91477ced7bdc96e3228c6e0c59a5073c3ca934521b6549f672b48de426c719f671f4ec2ad179f2e9f6728441a3a7c9ea9106bb07c9eb3206bb03ecf5e88357678cb43aec2f52618ee7c953a95c7e5137d209f2dc4d8c28a5fb87c964f0b97afc31723ebc5c785214a95ea0a97a58ebcb11f078455960392651fa701d942296c050c8988476ef6ba72f9b892add04fdb6115a59a911bd6ccd6ecd3ac902df40ad942c109a24829e67c0e5f9819e1cee3f0855911eebcca176644b8f3377ca10de017baf8beb0459862c317a2b8f8c293165f6892f28525285f883a997c6129f585a4922f1ca1be5074c3ec260cdd30bb09bb5276436f42cefbc22aea902a716384bc61767373e7411336a45d51a6553f27ce9d1ae88a32f393045e18633d7b6a3bda4eadf5f6d3aea0af9f0c42c12646e085f1d5a7695aed80116847d838904d192a95cb80e9c1863bef9952591462075620043164600640f0c9a289580c0912ca05976c0925842009cc0a4ad80c2183112748812a01052708e902fd2185076c40050f8450061cac200a5700218786035988e2044d6080091c74000a5db8f3a65457c5058c20796ee812abb42ef1bbb8c880e921ce0d5897ed8a20e091e0721817192e9e8b06d39c10842b58e0b2691f8ce67217fae30a988b8b0c95ca5d5ceef426bd3307044dd85c64f00a0445a09a13364dca6c5bec14a0dd824880ae3d9c004e10f620fbcd726b9f7d4c4b22aa0e03319f813b28c8de64e9c34718421840f053869f199ce109718a40480d3860831c5cc08923c8cc1d2740e1049c3bc1f0ac9a9d1026ca8d547801e7ee6089ee8e9fb4fb737677cbee29a482b657933ed415e86e12e732b0d160a7edcf4d7ed1d6befcfaf4eb31af04e337250d656982adc4c697a22bc6887265e49e19f0e463c7200cef57b2121408e2810d28a1020e402104324e5009e76481b1aa1bf6eea1cdacc3c1b2846ce967f3eb6f14859e05765986dc18deb28fc5876c99afcdf2eaadfb9b8f5d0e962564cb7c463f997ab10f07a4b87d5a05078888e697b18c91a572b34f7bd33e48abdf8e186918c1437463644d56f51b0ce933edc6a6b9f4ebe8b5ce1655421aadcb900e813e80c56db9918a0fc02e0874eedb69e3708970d65acbfd24b1938148180f176a3764188c63200c63552739c2ad20220d1ecb2261122644af4a9f975c0dee7c284350a37164cb7ca831ac5d4d8457f39c6d10d6b1791034b1458e51ce50487381d031f0f85d87a36f9804e9313cd0b7185ebfdac776853bcfe035cf3cccf399371336a72994300924d288371657f3de4629dd6c9f4eb625b7dd0588eddcc6711f3d9db8184779933020dc327d5ed6441adde707ee7c573184d840881d93356064cbfcdb09777612ecb50f857b9f7bd7ddf4a170dfb87e710de3b8fb8834b8cff78fd8af7ea251d022680e7099e9f4edc4712527eea8a3ced56ea6a4e4b69b2981e171df46dc68b4c168d65efbdac6932d6f38b3cf6f57b8f3dd0d03c29d313c49845530edf5bbe70f2fec57fb2042911891d89c73cef97abd5eafd7ebe523c681b618c78dd3384ca48030f57127161c1b993f38ec0cdcf9067267fbe857cc5acfb3b190a738833755319f4efddcf9ba2a0abb1348177ad64d24d2883d6fade7354fbfe699b04d784fa4a0b8f32f96e2ce47c930564d9ee6c0d05acfe30ddc79585c4d582c06db352d8687c3e5582504abe61710591304ba06d248248ddbb46bdbd370374dfba66ddcc6511269e3362ab558c79a48e7441af69308777e563184e88201426c81a60e15729c709370fb49405efbd087b27dfb8ca0da77e4c66d0191c6f679064421b8a57d52018b1d32e878e1cec6c28c1189ac3983105747a820859d26e8cc23e418d19d471197f430f4d2b7d27679e70fdb45177ddbba19ef5c37e3791f0c6fa3020450dced5991fb1babc8000caef62d08088050f1012457e5462a3e9073371bb8ede3db7d3de6ed6e6c17954aa1ee874df4a9dc92e8d35edab68deb6e6cdbe66da51157da385276ee5a97637b76dbe1c8be6ddb6328019adb43725fe4c943b46936940144f669077de1e8ce6ffbb62ce360da15040f56a48a10715d9eb7d385a504e38946d17277f48952e27acc9bdde08efa66e26278a7d067e8a77740a85ced7207753f843eeda84fe56a0f15c1113a0786f286420f9de6c61b3b1cdc4360282f77837be81bf769dfe44471a14f3bf79d3e23e80d674ce56a0f7d2a772be14e33477b08e4ae06ce18ab26169ef6fe2462dadeaf5d0eeddbb30ec7764dfbd6751b18ee28bd87ec8f44129dfbec3c8ce66960e880ab812103aef621aef6d9f9b0dd82e102ae06060feb902b5f779ae7c5abc6403c896c51e5fcc59e4e78f4354cc8266ce4ab57d2c666ce9aee51d9e67b3cc71859e30ad2def1b31c358ecda17c62323733e3d0257874541515bab36e06c416235c36e9b0e9e679811352f0041f34510407324d85db8d84db3a82d0d11144cae8862a190c893a625ccc08829850ab43089d20384687471be20b28a0b566319036b2f5b203ba7ea0012ad0820d82208405361a90e12978c1090bea6055bb622a38022666a5976308101b0001621bd05c605c64c02c21b32350025433900056871041e804b15d3e0ed1ae0dd4f101e698042440d0021a6430851b1f1996c2e5181666906922108388c707f3100e1822e601ac6a1ec9cccc0cba910a11f4dc30c64c5ea029e2f6a5d43e3fcbb16a1e31edbc735e66d0d258c94aa8e088e8a02fe46ed74e4e19782051bc5d157da0e66c94380085de9eb45c8fc0cd03b3779763bb22ee6e884e7feb6714de7c28034feb92c8b9a0ed0b5d6e26a770b9436e0c4b911d0743b825bfc52b4f67e48cc2934364f6812daa1851dd2a822157e5462a44c0c4f571e38d777b9daff576ce09ea7c6023acdab80dc7166dec268efaed5b886b1778fdd03c833e0f024320eab7b95590e596acb49ba931d630e23dacd6e1a89fa07db5df36d0853002f4f9edeb21eff6fa85aabb7d7b0dbcc87539be3bc1faac5e64b2c9cebed0861e8808d5e5be498e3b7db63d86edf6f8596b254b5943b97ddccd6ca0dbd86d6048f31869f4fc7c0c831ed3a2cfb20a3c3945603843b6db3edae198afa079fbda0131b58c1e2143b2e3413cdf8b9ff173143f636b07054320e28f90f4936e1dcf8f2cf0e4ce7b055ee85de69697c2314f4d1c69c8196b6c9695861a0c1bb7b871c648a3bca5dddd2de2297673ce1f7e3bb41404c35473e3e4ccfbe85fa0d7f092e1efc89d1a15584a267faef4e9559665974658958172e7c88d9734e3d8531c18a6bccac5ce314929a594524e125d9c94b7b1181301a910c1cee57c489906b7b96df472475e959049a4baf4d2081014943ba03c92d32ee97311981302c314b871905ec910183e95f23822ac92e720670e62328a9a8bc31057f25926931de472ededdd408e4d18782107b93248160a692e115c65232627f9417429e84d19ee8ebeb318656298c49d32fcf14ba669647348a0220b486ea4220b46ee0e37529105286e0caff490e3b4da76638deea147ba117563490bfbd0450dfaf032d2a85c64f54b5f175bfaa44f1455dd423f2addbe67ba7d11eaf64327b7dfa1dc3ed7209055a1fd58becbb7341e593adc061b5ed8e0c2c5ca458b16aa1629292b29282839a09c9ce0706262a262924add902a29014b50a80f753afd6432d9602a955c9448a416a4d12865e479289e4874220a854c425d97ea38ae84db36d406029d409a66d2ac2dd95a4935cb46d96df9d0a3f37db9234bfe5da471236bab1f5f2ae3ec908c2cee9090c9a0e7b1280949231b0484910ff286bcfe4972ecc831efc0e6ca679f3db3652b5895edf06ded11721e6bb7910959c3aa4cc2260dbcceb2aa23e3e1d1e16917bf3cc97365f69a9d5f200da4df2cb3057db71fbfb9ca36abf65ac66cb3f3676d8c2fb6a94e4424974d29cf3e19f6b8dab36f36e1d96b1f11dccd62d8727340b2d70930125f83d207abd8f4137d8ec0f3a392da4f273cd0466b95e037b3ee5a6b6d597b03f5476f069ecac5cede096fb361153f71e2c99a770dad198e9452d33e419a94de174a292e7f03753353c6899efea8977919cd28a89bd1a4949a3581a76907d96ef91a7a7f5224afe8b309b90c04aa19383f29a574cacb83aef56bf64c6add8c3dc7ad08a4bc21773bc7ec92a71214d29d76f6f292e646273c9b559cacca197923a1b89cbaf2e686d246029913c8d4be5aade4805c6e8acbc1a89493d3806c999f1c631a5097d0404545650b5316894b446a1345d09bfc662b6516d1944a71cde51803e10ec816f9f8188e5c03929d8339e79c733eb5b594da4e36a976856c61fecfb412480d902ba700128223b7c68d548440c8b5a067d18705e2311163928e3b37ce9c768181893f118bf9782927fa28eaa27bdf184582d5b4b1d45e294b29b95e72a5af9ce8a3b75fe8b10bc22d0bceeeee1afbb06bac8b6d74f9fa2485160c2dcbbbf89ae7eb23add3afa2b37cdbe08028110ae8496e06e714cc53caab5dd3344dd4b5cf547253edb39b01452055c3adeef35a6bd3d95cb690d263090788e66e956b1678dee7356e893e3f3baf6de6e5ab5dec8357f3405ea5cf12d8437a48f7cd23760e61d50ada87893ba98e4ffb50b07d1af4d9668dad49cd29d81579e24c22bd89be7837edd376421aadcf22d1b5f717ca2ba27dd1b5afef7d14c5bbb67341b01bc39b48f3ba35ed0ad9a25df4900abc18afc4e2c535a003b9edd3493694129444496951b40485f4d59fbed417ef76eae4fba33216e9217d3ae1a1d807c37e58758272aef9c1695b71ea99d61e42bfb627c927c952a27c210749dd50fe904ebb99fec9576ff2123e9160eaa80d55ab949251cc2c254b59b56e8634849a2ea5949e6efa66fadac7c63b9d1ec324898222bb197a4eb9641f2de46b5cf4100b9e3e795b7ca659039a803525e0ac6196cc2cb7669a8e6b77b2f254f2575976d27633a47712fa698a9c62327db2ab4da673dd8c692b7d2be120d1dce98417ca9f185e6791451659c8b015330c726c3f7eb18f3bb1e016ffa787b46b32f1c3169c38ed8a6c2d8873e76b9fbb2747faba1a29dfa9cb6720fc1cfcfa2de3f8e3aee676b16bcf5f0744b6b4a45dd701d922e94c81471fd39476355d4d07640b3dfd4862f18a52dee05cf9275ef24762f1f18b6b50e035abe8f9934d5cf9e624bf47c879f42382bb3dcf40ee7c0c9361e7b2dc480519a0b8db16b9ede3807407f5bbef03bd3ff9f36295c4e263907db06a327165cce6782f1e9876b9b8a854e1530dd3300dc3383d2f7ffa0c3afd30e66ce17a5e779df27b00fdc683524a2548bf9983df343b0d4160968572668267d5104344567fcba6083cfe42f9baf33453b9fda9b3c9ac20954af5bd4f5a2b6fbf0778df78785e0eee208f7362235789e4329d4f0003e88834b4ce2be9ae7d03083d745b724397605872c3c7f04697dd8c90d23dd2ed65496adb8bb8db91d8b66b3779bca98731c6637b4873b76fdb25407337500226a9a3dc5a7b2d25a5c527a4e429d6821240018598c00c98fee3743a9d4ea8ff309dfec3f493ff4095fcc709ea26a976951cf5d09e1e7aa687a91230461418638cabb8d2c1a40f04e5e3a5ef7bf61ee8035d520a8a9de80bc5585482cc3e7909d0dce89d48706a8fe149d02635edf29a7c949a263f65539a11e588cc39238bb7fd07680365df3260ffa3da5abd766540fb0fab59d0539a06da40fdeda0a8e222e3c6ed8b6d7bd5abe67e0c8f8e26377337c770129586f2f4e96cd2f948e93b9bb31fd39f9335b04595b0fadc5905bb05183446fa2140951529e5e3cae5ca57246863b77e5adbb1a56aad1e3f4ac556f7f894d87af158638d97c750acb1f295c3004fb1867c098c472a9fd81e10a6aea5965218af1f11a94b634c677bf17112f6e12d44d5fcea632b48d5bceae32844d5fc4b156ecbfc8ad7322f190cb7653efba01059f3bc235be63b055ef61901e32e7ff98cc8cef295cf087bd6e56704fd0e30be1eded5e1d9d7c3bb2db75f0faf877745f2865bd3da5a6b05ebb329563ebd977a0b862b60368514ac9aa31730b45e064e29389be28688d4a5bf3181276d9e9037373d4be085d9cdcd6efa2b60682fc130757b08abe614deb39b6fa7210fa98fe14991277a8ca2b981a82a42a4413390ac918113265b26e81604bd821b38351059f3a4d349e90cc5198f02a895c2a8b5c62a915a79aa4e8dddf9da236fed6b37632dad3ad58abaf3b2f28275d8b88dfbcb4a17eafea2bb0e2ca1959addcaccce388c0f6600b39b71dddb9a715b36543030ad19365af7ba5c36fe72eab2e1d2542e970d57066385c677b3b2a95c9fe1b2e172b95c2e1797cbc5356386eb8bd77ed2e5fa6cb87c61ccd5cfc56377a3aa868c70b815573fab35c81af1d29217af3bc291a2e4a65d164499b7e17fbf2404a24c10e500f6a127e0a00d60f3f40af410187b65c1d8530a1e88eecc2a78f5a09bd0bb998b8d88deb92ec0d51a64cbf6ec0b5543ee567758255f8db04aa248c1aa1e8223bb2893c7a3f4dbe426153c52776ecb28cc4597badd0461f3f5baf5d937a7e055245e77728fdda4d73e9a3bbf1edae5409625640bad4758257b5086b4cb471429ef61ef491f450a6e19c1a387bd28efa3e0b478c95168106bb4700152d363bb4447d118fb27ae40eff9baa0d4d748a22a05ec9ea8025df4f9689ff802fa059278c988be71cad73d28df11f69a807d24aa40dfdae4eb2391057a8bbec205bdab105b40df66ca27c4fee41302b332f629b07b7a05bae8037da35cca97fafcb28b92fabcc94fbe23ec4d7d4be9664c40185eca24f5183ed21980e6a6c046c22ad0b72cd650f344d69482077a58cae99d5e818e6283db4785253b252b6edfb453b24758d53c36e4a460579489239cdb1f350fd7c311f1b89cdbf7b8d8ed7b9d0ece1eb13d968743c2957278d56faf095ec8ddb064a764676a9a565fca291581e2e6f64b3f261fecd27c4a56702b5601c591dba59e862207372cf970355030e186252c6e3ff46e95ad6805992152703ddc32dd7e094fbb42ef97ecb44b54b2532ac2ab3e85b52b047220cc54429982558d12bb8d32e4a2e0941829e129d99951f0686eac3b573ee47ab80505cf88a923087679b364a7eb6626d758bb5082b00f3d04228192800ad8871e65ac1016ac3193a9c4d59cae497c7c72a23d9dba99931156b5941ca897253cacea921d9d76d9cbe7d857c5e2ca5a89a85fc58255d2fa28e5b4ab64a70e69174a10a18b2e0291a83abd920f8175880cca043d56f553bdea9bc894724a764a39253bf69ec8933e95cc2478f22659f604af450bef66377a97d905e74293b25659b5739fa1af3e37bbf64160c2ee04430afc5c2226ac040a567509ceedc7929bc8eac74e47894daffa455855d26155db1b96724a39d6f2f0aa1f41282090e5b1478cdcbe56a335c12e938d45c2ad58850d8adcf674b0b87d3f6334c0c20d35d8edae268a58450d3270438d89db329af474b815469d1d6e8514e659c1ad5885db3c37f48cd0cbadb0942333440a588996d2b89e5ef535302cb9094b76726e9feb6957f374b419d7733b2cd9b9fdcd062e66549b73ced9c49d555622260c012c63c1dee955f6fa6507d06462b55a8336ae0b89bc51462a9950273969eaa44589898b981242c191440c9a2e89492b3bd1c4b68928f78514ab58caebc4aaa851c38dbd8adcc4c61de4468e31ee581eafc70746f582619b1bc619127d62d12727fae8dcf4dcf8dcfcdcf0eb866191a757cc13e3c9913c3a926747f2d897074bd53c88ca2688bc71f151f59c27b5c331c70546e57255ea1eeb34ac5f6532192a33655a8665a48c9599577861d75c7918b6893e3d371247f2fc04995778a18545db399125dfed481a5931b2228885bdb18a0e24b952015eaca20347ea8d5574200a973ba7bbb18a0e20410c928a1dd8e5a9c98721091caba467f24c9ec94696fc1ccd7f7615bc21e24a874bdc818d97314c45eb63a3fc43aae1c64b32dc78e985e8b29f12494b232e979a541a37e299ea58cf6baae3d3d67a3e6dade7b510ed319c9dea509deda34ae8db76718d9c351b4806afe8b9a65329aa53a343333993f598f06454a33abdca3a1b59f3b1035d5845df3e3aed334fdf4b8834e8291362ab4f4f9d105d2e5447d660a160b8f431522d5c4aa97069769776b50f8bac613d7b416065b9f45bd7773d8595dc4aebeb4d462ea912552cb195bdbb7edd33cbe2d53e1fda97b88c0646917da3dd4c8330bcacb36c569cd929b14516af8a1f412e7863153ec6703791a453ca7863f217b38c6783f48bf194360babbc209000e7c62edc48c5088270a9cd1663b482eb61dac870b95125bab8c6a65df3876bda357334303c67330a84bcf3a75d5c5cc99b2c07fea8b05c098644b88c40ae51656078b03ef4d0b986998834425f78aa930b558ee356b7dcc621e5b9b886573327b6f0fb918b791d433f127a288653f61b88a38fa18f6fd794e0e51384e74a14dc480509621787e86a5d0ed10db1b45cd685645665a699b81812792352890b854221b0f361de39b9d5a10e8788f3ba6f235257b2a693e5341ca252974374fb9b893bb1e4100a0ebe6105faf2dd4a9853b32ff74530d47143225c6eb79c21141c7dfb7d1b0c93b8a1cf6e15162fbb68443acfdb2cf0e20abc906b98a0d9697067eea1d06be51eaa620350dc50096caec7fdb8202658c562f0e6c3f904b7f8f3865b3beab4e156ff87c801c13df40e477de8b186b699d3ae2eaeea4fb6be3ea75d51c67a33876b16743ef0ed8772782ea1f7c6719d715cfdfafdeea16f47fd81c351450f891efa26e2b22f74d217afe8312ce248a1d081085df4d8cd84bc4ff4edc81ee21e4a819b889b44f0660bbc11d74d8a2c49a47edf0d87d91c0a2b704d39b4884d2496913443d32564d96355d8e2865c5363ef248266d2916c01826dd247ee7c30b18a9952f9801bf689487137b717cee66969d3669af59412b8116f8337e26530c34008423064c810969e9b2f08a974c2a1c6343a25f9f9f141224f4c2614ca8432fd8405c94c32e7c7d2639a730373ce1a9b5f109e464673741acd9e1e243f2693e90709d81a7a4c23941e23a6d3a9449aa69e76a1f4a04c9422a38f765dd7733a15199548a72153c472e69c467a4cdf4627272258d9b06ab50a3253a9d1d7f734648a584e483262ea993da64fde911d9548a71e2986c4727a78aefc098542753323934904debc89450b76c4a205162dccef74ea399d8a24f9f139f9c989cf952793098532a14e7efa42224e925cc982648ee43dc588e42431d2d36342954828530fb766cf9ca6d7d32bcae4c3e2c32ac982c4f4b1f44c21f4142991e69c736e45e69c52957134b41bedcdcae0cd20d332cf8d37b44d42d264b66506b247f6c81e8ee3faa77fba7f9e100155b7eaca37ab98e0e2e242241623326113f60466666e261c416f77cfb76c1fe47904404706073ddc3ae2cae0e008b7e28d323838d2c3e3f87941941ff8603c83f28a2dee000ca74872ca11218cecf01840a7c89471ce504873f94f99f3292a29943eabb7d7586a51d342214d6ce9c5243391e7a434cb6aadd65a2e06253830989430ace2579a5bc170d65a9570e9d72d322232c22d7909a60060ce24dc100097250f072e4b50c4135941f0425528e229c1995e88514a5999abac999473071eadb55a6be93cd7787d0acba4949990fa189e31c6ec339395cedab5e76378b466598682a1609a06d3609aa651a69f10db26f0423eed22917e7e42efca6cd22c9bb47bce466100054301a981a13030511898b09a4d5a61192c9b9f10edf4138282a180b0cb724bca6a727272424249494931d5f909a9a7b567f79cb046c17a4e1da06074523e0a56b3af6928a7a0618b71da94df90b7654e8c524ae6988517b64e901aa4045ebde46aadd6da181eea15513e2e007a6d9bf668a794b2a3c64b789366f3614a7e548741378657716ed83d5feff48a1f4a21f6d92724d4cdf494a49ac8e24f1c7821ead573eb5ba706e950af209f2623937821a9e6b443aaa1326463b35be7a7c9cfd6db4b785dfd26a5340103ea85f28182a15e2660300143a4116fb5a94158d504abf8219b76d983766e2e7fa3a857eb5c9e968235480d721d4e7ef3d24f88a61d4093b1ef90b443aaf94841423635a8972642e1be2844bbfd6097d1c0d013211b5290cb9f6c72727242fa244a4a4a8a697e51c8d34fc87c366f3f1f51d4b770e16226a354047227b23864c3aad013a19b2a6cb81582762ed730c1a420a426b8151231831cb413694494fc502f948f2ff404aff8a86ea6c1900d10bc306473f9a49a5973f9a817a35e11646ba699f8740b18c8eca1aec6ee9deedb688c517bddb0078362a7317ddce2a9c62b2cc0d50fab98be792cc7b326d6844df7e58df69e40affadd0db68b6f64957ddb3737375a070427d5d5c4a87d5d79fb51cbb61ae16195dc892ce983553056b59474b34c33de6c65cb9f76e617abecf99c51695f69a8b1d58f1156b14acef31238ede2beddbe77c29e6dc50d7ba79bb9412f7cd41c9dcb604844efdcba5a4305bd78dd17383786575880563fab35c8160ea863a804ecd70a931a65aa66040000001315000030140a878362b158305145b9fc14000d8da65272529c474914831432c818030c0004000098010081999248002e3302ed9ebd577decbb15e557dd765d8334e0e23d9cfb577cffc74ec4038fecd5bc35b0a119d0c930f272a3a1ae0558ee0cc100b274c5eadd9c2cf8d029451d1fb675b716600b8e69f4b75d0bd43f911abee1da2143d85186648d5dd10fb59df3ed902d147c06747aa9d1fb85fa822388a0f613d086886f137874304ce61c93e75878a9e435b2c4a0268ef24a27e3d9ef1d6333ba599823b0595d1bad0fb265fd64d14e395dce27807770617ef15dd9755d37abf41bee59875acb0cd824d71b99b76e296b41b06210155196441e8367d01327210806aca417765dac381090bd700717002141f4e8925dda174e7d3cacf0997c1d8c71a8f2dc131216d2dd3757f9e18efdae45b4386bb5593e47679ebefda5aa6095abd63c2fe2162b5ad9c6dfd2b11ab819b242206a59d241ac6986c2729a963e9f1956e81914faffc6c28cfef7db1afd67bbfe4199c52f38435fb20aa8b45480eaf1e708b9428864d6add5f457d0e0bfe8b034cfc9f875e16f33d8648960695b19a74ac6ec49061cbbfdc6d9aee2c5e27c247caea0275414ab0c5b782e5d309cfd73312864f532103fd6ee7a4b5e9313c1fa18e7fd6406da3aa86fc3db444c63513c8ec38534392be690663145ac8b948992546e5c826cb52f63231709594dd4ce411237198a65b2eba253801e660d072257c75bdc74f09ce9338612d9715430d04b44ec11eb3d857b73960ce27e6ac4b668ccaa8b01568e92123e6262123f65bf9333bb0b65f0991098371494356308e6fb31f0a4049872e680d66418dc590a136f06b6e09a0a1237e39934cca2aab107469950bfd0fb62cc0c8b83f9360a609b79d5f5c892632ef63ae9a4d6b91e823b978309499f5d1a5686d2ef3e2887c45bec6efb2a2eef32daba0c7079a7cf0b60dbbde876a64f34f43f68868d33a881ee6a2e7339163a01c0d640bf985ab66ccfb45ae8da65570e59a5d468260165e996ee2b38429f3afdd7a12c738a88b1f4c56bad16b5917e932139f5fc1b02b4383a9fa3b3ab336b9294ac8b3a298181720cbff68e80f825ff870bc665be8d22fdc824059e8e1cfc61d23c67b7e17319f3702e7fec287e36fd8914d09d824a2f4e80e4bbfcde40c9877b23bb619c8b57a0e6b05f1c12be4383522c2107e9a49442903e371d2369d97984cb0449d76555e8cca3b2ac6cdcd95371cbda2b89ab872b06abc07b83a7bad16065fbb71e46f4d30558f36b29d3b0d26e967dc96234930df2283bd5f35a72ef569be5fc0883155e7918d55b009f5ae93e9cd079684f99b47eb985c4006b135ee4648632f3890b870e11ae960a70c79f32999ad2bd0e0b55d6813a60ea742d6f808a6ba741acd49e7eae1bd6f4c103f2d4e285f281678ce89d834ff2199f82c280d2286aabd9d25118870572f3e04d9a36a0547751fa260a3e0f307a19a32623463fbb96c73da88f15dcbe0e8748c720ace0a813d2b16a7acf39f62b22a6ac09d53ce7557cc1d5b31aa7b402dc8465824e5dcf053cf44cf7253299ab061c3c247785b9712bc0d79457260a4ef24c6fe8be797f57def745b0ed6c80e0fb7b42742a4168992876fe1aa2ab1991dac4eea23532916a58a0996849acac768b469e98f765342bd10810618d20b2d96da8944bec79d4b2b0e46caac9d89d932ea4d2f275f60d89cb519c8437ba4720f4ed59504fd25b523e4edb31f63a7a82a4543b8b3eef05ca583487b95878712d3f4da1d88b93e42d54f9af46d6f27e72b113cf9a9b774b518dd0a5450f3bf9edaef17cb7a8bb66c65780af482ccabfbf81d76c87fb2fd3aa51ecb069e5e9ee5923ec52d0189c3b98a63f218dd7c5c7329933c2288c6818df195ab473e732d1d7fe1a1a85e43e25d01f53b4b1021cf8f88817254c6cbac4dbac77584755ddecd60a7b0efef4588365ccf0e067ee0a80463bba5590ffba9da832509f2020ca3c78bd81320902cadc084f4fc5427633354a5dc4f934e2a740ee782ef88e8d66ece1e6d4a63ad00721c3d13500917c7f207ef43435274f33a278fc010e12768e47a52b7154a4b94107b50d92c2e1dea11e0dc11260a209b81cce254f492febed7dbec2212446fe3f22e871a12c46b47d83dea917bef7bda9e72580563eb5f3c4d80e2cb5f5ff1c53eb0d41a43aecdfb93af44f7e36fd72bf612a70ed1fc92e44520e436ccfb65975675cc1f14e28087b6f9f5b26769cb8e6a722c3a06ea18e1e7ec38abe30711b352da7235e23d10c4364f8c5f9bc2bd61f4f52f3a75819c673d8f77b176d325f3a4815abb26dc9bc5448dac62822a8a3d74791efe857a53403cdd3cae98b9cf26baf4a4bcb6059a6e4c871678a5abb07c8a26400c03f2493687b4b20df12e4e3364cf5107274b1dacd2c76765f8b8e8123ad02532404e50166eccd88b6485e2eb9ece1e1989a584cb7c43711e08ea619c1d102a5a5b6561908c884cd7f2b786b258273ce834c34103f4430429a21913cc5ee6ff448ee6b16e51a657aa3500ebf76a55b8e6978f15f141ac857225223171ff6383e08a47b2820c38da23b1b1f0fdbf2ca5c7cd1c055c61fb2e5bb78e233c313412819be9755a071a4d44e6eee334f95f720261aaebd5a6c8ee6dea5834a515dfaf7463d7fbbac8729d1448e522dc1d3582b361f89830a23600b537d91e6a755f8be798e54dbc95a7e84acbfa0939d71909b559d1fbbaeaf05f645070fe0d10b34a1a8ff5d70783b0cf2abda80994588d1dd76edd93933b600c4d3d8336d4742fae7e2369872bcb6e3fa2b88b2a73608727a8debb48d732f587abea9ecb5fbfc2cdd56b1d3362405e78b34690c2eade68c32f68ec88839b7fa71ce28838a1ea142c0c065c6e173b026598a7d24310368f50ec9f43f49844564724e226a47c87e11b14e34566521d6388326052d4c9201b6d91de1c51f8e9d54fca6bc5907f8096f2f7bf34864db1d39cc95cf6b154d645f0be1d91db2d9dbe328d542e1bb1b33c58444d6eeb789fab2e3a285e1ae9663968b1a791fd8ad1b6dbbe9ba105880f6f9b87a254612e51d6b41a0551b40a49ae8a9e87783418fad8d6e5131bb578b2113070cf15d7262b2a8133adb85e840c7bbe8777cfcb2bd0713e2df0d8761dcef7e5901e02d36eec894485a2dae60519e4594689ee33ecf842d2103de151bf02f639826fd3978396c0e9d01bedd9c27a7bc4c25b8ba9d4ddf8608302e80b7296d63768beb71009de8d3a15afa21566d06a8929ef1c5093097667eb6ef2fc97130a1c9c6be18ef22525518629f87f1f1874a29cde7c5a6d254f2476cd2838640810a1d2284b4cf86b164dacc4346d4434c2327b1c16c7607695a13a6edd3cf33274aaaa542d9d85c4bda9bfe00d443ea15863b10030c3cb6c738dfff79ef18f4b1600469f8f8879e62a60c381e399f17b51d311eef1ba81efd213166c06c8fe2704d827ef594a36396bfa3ee2116cac554c4ba488ea4f607baa2142b3ca2384a4d0ef88d26ceac3b9a3d8c7712805fe3adf18e82ba5820e236f7f903eb392520649cd6b480a3028dd2e912a0b44cb3ec33c5c6f3273402c492b3a0b515b452b28a4b5c59fc116c17b90d0a0ec82a448ed5bcf5f4ded9f5224993435bc63152af1b8dd74279f4c175a82ef0d803fc5845e25ee0b549a098ca06ea52875f5c481fd5656daacb4d6d9f2551effcd3e51bd12703ed5002a27a48e0d3748c00bb8624a8189911449ceddb054d02f795b8f5df09ee1b070e321c73db961d61980a2c72023e4080fcf5af51d5cf757c3e788836d921785dbdd59b8c1b4671cf07335aeb72069fc03ad6f60cf9225957842627e442809751c8e0b978529897b3763d707c65f460b9d61d1cb911c24ec114a47d1cc4eec6fb81db4f530abd631a9733536887cbec0f2ecf4b10220ae71de4f900339677aa49ef3aec47620c2e57c1a08ca997907ee99d645e3af36dfbfd31bb4aa06bf15dda0d76f29defdf4fcbe1ad2a917c90443ca4d93c7a2f517ef6f745f9ee9532d40cc76e5bd9114ed209682fcfbdb46b6954fe0eb9f62d69f76726209377e681c619b2b60eb94700590de0c5a38a408007a366f5ff88e5c249bb7af4c16b6348204f6d735ebaaef04ddec718bd3dd6d1fe3524a055b39c7be3eee550ee09aacffb4dcb2f8d90d4a6b6f7df60ff505a6d73adcb22417ce490fc7f0dc4a3d70585ffa438e8a17364246c303818c4bf3dc330d0a000c80bf36d94853bc3b6283fdae380048566ca35b4e55802a95cd906ca9588da56da31418008d6fa32abb626495117f81ed13012347558f1ae270c7f1eeab679334c3b9117315a3b288c40ede70214b15e6c77b580dd9766d36d3950af564bb9c9224b3c66ed7d211b97d3bbf16ed832148729f3ee4cf1a63153f21712605d5530eae2f53b18a96bc67dba2fcd570eb7054a65d872aa4031208aeb135282600c7f6daa950801456a7d01d8d07a9e5ff606b9d7053d22f3dbcb6d31b62f773a5882b0464f3070c8c529d3642165f17e629995259e9b094992f26f9a83da40940da25fae73c738f67eb21fa4c2e870800169c8883e3b5c0442266470cecbd397409883beb04eceda7b92220f370335d8deabb9473442989d3bd784b0b737d2b887c90746fc0dbc0db29d295ba81a9c9a568ddf7acb38e206c58c6b8530a5c001acbb1270c7903f0828961e6b40fabcee8fb05dd94eec40a843620e4652f6635e77d0601a396f4c89997583ac5fe71b1ef4ad4b52f3c271bc9b400a1b5df594db22d978967dbb2cb1872c369653f71255fbd429451ec3e8ca1efbe30a572ee68717591bf3f0097ab070c171f3ee11e6857c654601526667da0488b106476aefe63e5ab23cf9adb8f82eb44ce973784416fbdf3a62cddb258059b43d0435528a0bf841dad7a9118508a04fedafec935ab78e4a2cb29d57dcb4dc4a0ab133ac9002dd5a621bd63531ab07db64c2e689568fe8d1ab1b6700973379fb9968f337a57bb02e120fc16b5d59ed33917e72cadffc80a5320c80193c9909b1be42491afc06a825ad0880407fc1d8db9b6d11f6be3678b2283f3a4db0d00ccb66b2626b1fc5a7d837b4bc921ca5904b63ae4ef482317f8398afc2c4619a62f57bc5602c3eaa3290139f7c83c10814c453bfa48d4534bf258e44b12158661c3d3794561ebdfb223cdf1ef311ff86a9f3637fa2c1b74398661c815583e1a642cb340d00ee8bff18ac2dd499daa1d688e9cff0a5463e9d6d28f32075be51aff268c69181c146cd423fc71324376ac97374f4c40932ec811fbb9db8633379a758c44a671c6ece3f59b957b1fff1b79f885128b1c6ba9a71e8c85e1c8ee0b7592a342e9b6dccbd74f9822b13c805d53e0741bbb1d67f4420e96fcd38d8cfd49f804dc1c80dca97bfe0468d39be6e771a2f403ce8b677929bc6e395d185661c3e5eec21f5919d619a71e4995e245402986ccaf212311144664e6d51692d3a18eaffbf16359154e19568a7cf0defbbfa21e0ab2cde56a83597413a542d14f974330eebced71a72b6cea14d763144dba519473805bcac2336bb416364446da00cc76cd0f8695cce4772b274634e9878654561d5d409e3699f1ff8b8dd1c3e8601cd38f2d608ddc03cf97e00c4adf01e1f2e6b0687e38fda2376fe48b6837dffae8987ece72733008687b41402cdaf4dddfe452fdfa9d80f7732aba49ab5779a71f4e6b8ab4235a83e259d549b3620ed09f9c44205eea6c75006b0e731a65b822a431f658c6ed494b50bc5746bc6119f47a400237ec41cebeaaaa446d4f440b83de30885d67732b617f7b9f26d129a2033e0fdb1ebb66d65aa83a6b5eb72c631097d3ddb587a2adc9da59551e961bd99b3c1f5301516089e6bf2e5d4520371b332b48f39aa6e21dc19d19fea18edae7271f86f6d2878b257a2352046b7280f03b48cad4af38315ec142557748945fc52ad3434772fe2136cb32036abd87625bf107d45bcc95a19f96269b2aa3351a2ad2e22d5ef64aefc8f92f703de1e5219a6455786cf1d688700a5c169f0bf25549cde4e3a9d241f870962eb6c86fe4f6f03ceab5fdbc467a5872970d23414bdc4b03bc175c14915b2497c4c8b98415604f5ea0447514c86cb73c75a4f724093436627f4252bfbcb366d88eca72955b2b2a6fe98bc6b7715877b634b36ab6977a458b955de284ee22f1f0ba40cefa48887f073107bdf2c5152692402e711cb7195ab18bbe38eea8a906b89213f8961304e32ebe80af21fa52c2000676561f61d63022ee31fed75dcb4c6ca877392e392ccfaf8afd474c5661cf6f397b037d200773460cb6d09884499ae486c95fad26a0fc7f2514a09720e0b5156c348adfc90799f2eb86efd4b919ddfb5be12f875e0c00fa10009becc94cebc818a56b75d18e09ae4b9c0427cc49c71460560d1d82a6ec779ae86a6e6105522f13a4ae8d3afa8d0c2c4f70a4f1fce61b9b0d4399d4244edd5da44d18b872dda3ee46f0882c7fe5d190e57cdadec3b216c6c2754e89c5bf932e88ed2c878e8b0ce25e98a154dde6791aaa0c96184a43aa4da2b835db485f1fa4f7f6c29bc5c9e24e70405ac120f44e9fd26a91ad114f6e0e481136b471c683e1db7f1d6c38f08e1dd729de455239042b10e34607fc560a8f03146d227af7229ee3fd4bc5ad80d951dd84e748e29e8400ad43f09e3fe5c9a6ffb402de3d1641be69abc9e28680cb2d2c2b0e324f9a7ed579ec935fe3cc4076a714aabd7c79623176f37b53c8641f57fb11b2f6eaaf04013e7cd68867e09c13bd9bb28b0b60f351703cbeee3ed810b7e7ba161a448695779464ee68960936cb2ca59e8b6c8fc643a03356d42d82aa91f0693b561485ac0f58835540d17c6ee0f1af6c58d35d586face8ea0b162acfe091dee4c46080fc5563f26b0db9736cef9bcf9a72f415eea56b739b7a054281d7b268c9733a9cfa148df2828ba3979946a178a446f109ee2c06a290fdbf1a12038f937022f94e3d7c3341d3d4f2aa8d50ded7630821ba6b4503c692c4779d60cee4660b6f3ebbbeb7ecc4f60476768f43a252650fa8c1730396b8f651e39e86b4e1e3c728cc08e90ddbbf0e090724b6d5e5b1169f371197e6705fa3aa5f37a5b46420e38d018c8acc74d7c7f9a453c53cba4b825ea4d604fc4d1951579de74c0a1bbe9dd64c8202611f8ca9b6c2345b363137c1d88e3ef67136941a3309ac9f7efd7912cf130eebffae2092e3c2e1d2ed87fef4e7425d36081e8b0a5889dbc3c2f3a22d1188d307adbbd0e288bbeec422126f48c3159e3a015919b3e0198e4c618fc889e89c896b0a2a552c4d29b81da6d1846ba02fc9ac1b5abd96f1dda97f12ef1bed92d1e61c475a3d611f9b945f459cf6051a4c3962f70af4d525a44a3106e96ae58b28780d0ab0570882472d7847f465692c34c165793e819688383f182e7d4f94eeca3fce276f6edc3c042b8e45a3ab5ed7a4dee2e01763012d13a1f4eb904808569327e1db50743821af3bc32b22c2afc2829dbcc1b67b8c574956511cf4efe0d519d4fd84cb56cd7b2c2648d845814494559cc1268d64bd0aa13b007b6622dd26415a26ccd11f17917bfaaaec38ad3f160876cb6a6b385b380b8be0bafd51a954a5411ef5632a5830bcbb60a6c82a479ce8595bf6f00bed385e895bd07d238c68c958c537f0f4d6865bc606e85c7a46f35b9b1212a0f03328361d144bd85bc148103e71a72dafe2a70562e4a0d59d924e3bf3837197f333cd5317f0ce5154ee03e6488669b5518bb140bc4d4bf9972f0af14776bce86b1d1b73954de37e62b8003a0aa4e5628bce886dccae018b19ef4f504696d156822d4778f72165b9cac3788ea211d2d048650a07947e94af77d621b416a82de9bc4b8138364c3ad866712cd461c827f819a93f0c472da152a761b58590e1307e83e696fe15791018420be5622d9ab4c31411ba9461ee527f28839f5068835eb08f74eff2214209a4b281381962bae835c776dc52fe88a00914e2297f7284215e0f01e9af60a5df1a9fbaa1ccf9494c2663db31bc57d66a932037a466ac7b10e073e66111655296f50f03c5abe701f127f4b07f1a9dbdd4fc861b023de0ff6be66a25b03467c16d0f258fff2dabdb90ce87252b43e75f928bb6e472af96f1e07cc7dc18003273b928bd270ba31b41a8dba814d764b157303cc8a60fc355392e5c5de170177d7af4847a0ad5da9daa9d42d5a00e30a70aa89441c30e22531b67ecfc5fb2bae5dbaee4256af265cfa76594e538c7d2c8327c7c4f67d347fc5813037c81c30b288ebfe2d3ac68cf1de49673f3c17539070fb36cef801b6cc2d44aa7f45771ac15d9131ff3adbbc71132cf7142d207610e5cdb86e7db35394d757a6903bec303a7adec186d701a87ac08e0696904b61c6e32a4e05cbd5c4f5707107b5278e0e89ea8ac99daede145549d01f3f841b12f467b32880380d27080be1ea9d8373c2b36115595df383a637f48b9a09c7eb65d1f578ddbd69c685c38b8e3e40a85c0bba1efd3cca764191e1d84c0447976e43f11d0dbe61141d240cb051c36d12552259d6a10db39ad995bef9ee14046e70901b0a860d4a3131b0d8a0d1140f09097aa540da3bf9aa9990a8fc420a6cfb64d6330b3a010c114aa638cdb669858cb4a3140352876843b3d8ec59ad8b5207193e09b711f1e42a56a9793a9680ae9954572ded55662a815109b6b858f31454628da666c2dc289ae9e781d468ec30d9780fd6e28326a4ac1ef2d22d783f5d311d70a5e16caa28f0239e73ce2cbf1e4bd523cf9d2529ae58f27f96f3608c8c5ab2adb80ed1c426e9a2a4950390df790aa1a2365230fd60002a05fb333dda508f0dce5d792af142436dd7fce0c97e35bcd59228bb5fe7eaa235b49a6144489ad98aa0e74e9cd76fea1b0162edc06e96d7aed8424c48285bc54e0640854d5d7d8fd6ae76190c50f81270000361aa8f248fc8a1ee5e9bd7b9c9d984ccebbe61003635d967d5355f872e01b0e0e0c03f715fb59cc38af5093221abf5bb7a0138c2b6815548ea35f4f701af4706d41bfe02a48d6f3439295a8ede7f01fabd5471abbd70e55c3f7fd49ead75503ca77e35a2bb419f675d0ffde93c5b4be1beb8bdc9185e9283285e09e451e8d894ea192128cba5fcaf07eb5e2f402500570d2c2abeed44a7f70a24eaf5fb895732cc93addd30e9e9ee746e389f88e4798c73918f1017f8c3df34ceec50b873f50a98829a17d46ce205dfbeef8e5d79ced203a91e75fffc057fc5e873991a2a6342b557f8af8eec5831c4854c2fb608c99646863bf952c5feace752952c405e2f4fec2bfd6a2b838afb5d6450ec3978bc1b38d38b9fb8e6d7bd2f7390ce7c54c4e543ab548f2e7ac4204b013467c88631aac7c9f04352254177c792169c34a51220914bf11824bf09f41e2c6fbdce380a2754c0c5db7f801d7209a2919b0f9253d0ed40cc71ca84d8e53491b793949396e8932a464e48a7350ec8378cd710b408037f82e41c0d3f1d01055528a9e446d60abb11c6df8f617e3d91fe09b847d9e812c4789bc885f67d6662ee5eff09095a8c2aa307411e00172c4c7a8051234963d76bc3b9fbf2ac3e7cf7b197a5a3e6d35292a87cc34553194b7d6343ed4ac8c7128c5bdde4ac987c07d1055530ab0ef3c47acbd1a598993bcd9076a5eb1ea46d996fd06235a003c8efa44090061b1a56284d5f9856522a824698d028592c40286035d93222b2315842eedf83c64dfaa419ea7d3f88839779fc5a6a66fa89f870a79a0552a9ccba0bd0af9b9254f78c3fd3cb5e70b424ed7c299583b9b28217a232aa078bf68d5b5371e6918fc3dfbcfd227f666518abc0e9384cfef8c95952ae79cdc8478fb23f09f77346945dc7c4ba0b69d3a6c301e6c637a33cd56e310c403702240717a5cb0fc01117eb4e8b19ea71a58f8023918501a375db8d55db5944fa9c82fbbf1f44c0aa411c81d86347b62e92d0737cf646e67b12d3396a3bc4b924ff1af4826b2bb559f9da9c4c1afc1a99387a92aca2077d38d49232d13d9f2f13c91805ee2d389c72c676877b4831d2b640813525b2d7e01b4a82e7bdb31b28ecb102fa6db0fcfae2dbe5c1136d16d7523d966695217248a34beca6803638d6aa387d15771aa0cbfef1adfe2973af6e63739ee1d238c0e5e3a43ba4818e626cf3828661d440cc9d8dee2b644469ab092158b90438cb1e626cc9ddbb504d83787e6d13c978a2103762f14c0afbc9519198d04591e65c2376e480c54f712ecee46314173dde3c7e758b222b0f097a8e220b3f62feeca5874dabd799e96089651e0c72775b6011745664f1572d4328697197ed04b2bc3472391d1bae0abb1ace14178f4ce4859def01704a3dd9e0603888a2ab08e2b2f728c970b793eb4bd7e370debd3f306008f287a360ae2182735529b464566cec6077f241b957fd8f99406a02a093ae9e9843f50795a3dcecc234096b3d27da1c1362c30dcdc109179323761e8acd63fe28fc563f7da4a41de6650dab33b68d275d2b4135a2800bf013e803113dc9b4917549301cb9219bc662d4a192b3243d8739bc758a68adfc09efa4f34f0a0187cf8da87d7e3ca5b440131a25cce2f6e4453bd070a890fa00d3a06a16eb31bac39370ad74a02ebb2346492317f3671c0d3e63ae529715c32ef78b4f5f844780f179a1ed7555d2c64e68cb917ff50d0b2dbaa5d19b6b7d8adc402597eb75600518710039038b5931931b763aab718c8f28e21ae1362cc9f8b820774cc12f8483194b04afb51fc8fa539cc2397f067c517567808559282e5f0f70741a58cc8b76ced0319d70ae500b15297f7d7b520f0985f4dc85d9fdaf5ad8e65b0744c507eaa2c01f327f36cd418c10947ca52217ca75a0f4603d84ab8ede2c2b8a590d9128a63cfcf0f055073de928c98a750ebac670d8279892b14ea1849e3202515bb04780eecc7c44fb462bae69e80d6dcf308c119b941f4b497af51773fb108a97b03c4d9df490b6188d00977400ae22ae506fa22b1248e04841f290f6d39b6805067ec2a10020b3824f8129285ee8f1f6630aa2369bd48845900bb4ed529977633bcb8830c9194217fb024c3228f89571543ae80567bb85d7f2f14d7f21d281398d0aaa8af297ebdf7cff385e9a2817301907cc4757b1947c98ae570cf099560c72792f01b04ee7064be2e185656f822f16cfcb620ed857c64fe18fe8adc6bdb7273ad2bbe0c7cf320c073afd5aefefc89359e30b0d78fb853d514a6dfd3fd6fa832ab6f5d79fca3d54a4d36b4d16ab46f44980d42a4512fc2d86131bdb0aed452c61c7b0cd2575b158a65f3a1c3be85b237b8aeda9d8ef0b73235ee68ba43e89c8aa7d5cb0f967123d7e62c7329a46c3349df91123cd6c8c0151c50a0436e104b52f95697a6e7c3054f2431c574f8e9fa0cdf5aab4f94ccaa532a345f6b04fc63e883569920a9f0c1b95b211d9b64bb1c15f82c4a1002c4c2bee69596153dcd452d897f58f31d04db8eec9db5ab8578be8a4b35cb57470a4eca89fad8df3203b11ea0f30e0aca9600d54cdad1b11620497b20b4d5d5668e17b6171418de5d32cf12bd1ab65c88bab223ccbc06ce570542f3d356e41f7cd9e9e78a5b71f660365b2b7d84870e89ec6fb6c9de18525e12f94254064450df0cf837ff9fc6556fe4014c09a075dba1a43edb0ea9f4fabf56ba1358b9ebc301d2ba792220dd55bd0bcbb8b9759f44694710bd3097ff106b6d11c4adccf4e613d05dbb8c10f6ab02b94d83e83bf3a0c0dfa9f28d25f3aa4d7422bc648f99c6ba5be9134958c77fb2f97acddffc66cc99765147eeaf9ea5d9cee3f460b9a4b02d75cf76234acb905c478c08232b3deff7c7bf25df6ed4b508e4657d9bf18ff86a61afe076f9b6ac0fffb7a5a4fae9328c0c91e0152aab47fa147690cf6d933d923df5a015457b176b2b2f2fbde115eb87856649846512ca0594187cc06c0abc5e331174c89e9daa6a07afefb5999cedcfeffd0c0714dd02f5964464326e5d54fafc5f44e7b45c3327ebd51ef84a27d5b5d46fbc4686f23303bf940df2a4479b4eb1b96b3f1453baf391310f7ce27df9c278065259b34ffff453c821281ad939f0875ce296d36d308f1821982ffdf2d1c0a9124d339cd0373cdab1e1ab39822150b29f9ef3be2d99d5a39673b1c9abce0cb064715d0b011ce90ad8aaf3652cbdc6bfca2744087b93b1762fae0730f6289d4bfe64698deae84007c67c15d60a89829b7316a43cd79a9a147a802d1a108a5df8ccc7a576276cc4200cb12b6fde43cc43da4620b957362912cf6fcaf9962701759d48c55beeb13e1941f11b22853d25675d0759cfecd74043bcc32da78c879bd133ebac523666a9d9adabf6e6f0a99af3637621c5e3a36642756f980c3b9ca7c3884e9c86eeae042031cab63c880695c95d6ff72d6f00c8c629da27f7f20508837c04c51b1ecf708b2dcbf536f4d7c05b031072fabde9cc47d11d49c2277a9bebec0967efa72c8e9a49e7aee74c11693ba81491665118ddd4958084c89df49cd1c92d8c2bc0a933df5f2592e6a3a3c5097963b3d2b1d4524153cef46e0dd1142b45fa70798d1cabc660dae377f5be74130476b73b224e4a460742e985f14f5b52294d0ff2fe3a495075f74d904bee48562e65b7981c384f1247dda918ef777e3be6b45e5ab61f6e1b249b0659fd8bcb0c813c0d40e9a86d9820817185ea09bb55832f1db9af5531031f7f2492333e1a823b19e7762c701a17170a1e0217fa7360ee1a511fbaf8dee88ae53eb49d9c8574807ffaf3f1c95704042286df338f089706841da6fd50f4e8e6f2e3c42cca26b98fa3c5d273aff3871600c21a36e4497d92b23a04850ae55d7abf5a4f42664d36c7cfa6b9eff4786a1fe44eb4e25fb8cb552c920fb6483b491b80d987956703880c80463932038487c7e5e0c216f7ec44f7c30b45353f4b4d68be5ecb9274229269b85f66e96f7740c4f6c529ba129de3d662e7aab5ba2e4803115726527b13db78e1b9679aad883b4f848c9a1db77a23860ba33b01189726fd793ebda07afb428882e1f06c788a4f9db59c815ae1c7ffe4c28f9a2441919465f5501ba17d88c34162cffcbc8d578ce3dcd902074e672d41ee0cff969826e2ae0cc4b91b8aa852a8c4afd9a3a2822f99c43c6d6f75d2dfb160190ccd0ea6de18373da16e109ae7147c6d6c6428619c263f3e99125861bfb76cc33cd31d0de7bf5795e8bb8a71313935b094348617ec4ad5657bb78b3756e42081bb8657f22c30e4f5f51495b2c89923d1acd044a3ef97b8aeed1e92d890f637205516584ecae84234c2be2860a159011d175ae6adbd10bd30f2110d10d49b4e6dbb9b3129b8b79930c8033b8369994e667900393295f4411b5142ceda6a7e761f701baf47f6a3080b4416bfbf0226a884db4748d82a4a6175dc082731ac8d76b9dd5ba054a9c150254b460440f99e515bff489a2cf9e0a3a7779c6bb0ec882d3ccbc75ad492a855e4e58f3cdbcd4bd219aeeb1ead49f46301013a0563e4a35b6f8ac4e5d1600baea1db625ac2f928f7d13dddd4f6dca4134dc924a2306030932c62087d0e5c6f1505e4fd2bd9bb59bb01732814030aad9a1c494e6298e1b1c2402af2a5cb99af4a98869b4a23b025022b489d1a85a8834814e749229d830a61a4840b09a461b8054ee000c89522d25f5e4d562b0d4c852d9ed77b316ad853803c4e63248e0778f4a03a13d3e45c5e51e3565ae1c904a357e5b8f4044914bb3753f637c2a0845dced065b470a899a6d5138333b285fb1379b5859cc26a73700b5613ff7cffb12c04e206df8f7fa36e06b7e54643332dbad7724fb56172c00068693ce26b857195d2328a3c15d0f6942fdb5ae7b4900f6fbe457aabc0d574678e3be16f238bd691070952f6a301ba7b416765f52a7b7ade7a5de8593e4a071204a60fb8b8dccac986fbbe68cc874188964330f7f13e707e0f05781cf50423e3f6728d0e1b03be8d56443a3fb5f89aeebeb9dc1b271904224af8d39fc2f6ba542b89de9c8fefd97f0ddc0ac27be498deb68af940e6ee13897eeb469b577457f72bfa9d026d94fb2d4aabf576d883bb85535c97e593e7306178b37eb676ce82f45fa78417534025a7fe84f5bcadffa48b9a6c75c5b8c5df2fd8b3960678e35c8474a65f647f34afe9616e112025c92034951506ecfbfc3db88fcf381ae4a076195a17d54a5554d3ba56a118d009e5a021ee959b3a9ebd4b239a74c590c15afec000fa7f25f5e091754a2f6a925828f409cb51c5a0e1b5e9808d559252380ac7b95a0c3f3e004ffab5f5740bf5c3ea7a6e2f79514a225cc170d95f6154b37247fdd63fbe3c38fb116fb81029c798362fb21a3714b75b34c4c2037f45a635ff831c512b70a98ed2e4277c61945c9364a12cff01b4626ba4e0bc2af77e571b05726065414a8b6876d84cf191ee1c35c5d571f9949818d583a5781874103cec56e64c268a670b55841a873a24bd8ef2987e7527fbeb8aa35cd5ebf1399caada5ef15928a06c16ec7703abf85fa45c42554d36fd98533fa80e13582d8a1bc793d8a2be34c347138f682842ee069e26ca9489be0e3ef19d29fdfa598c5416eabbdd5e0571963069b001acccfc1d2728367c4235928663814318a10f70c2167ba43744d553b0b7bf073fe29aced95b3bf2c4222e5ee2e4dc14272c05e7b59a59ac9b73a90a8e839793ed3b13d88086d09b68eeacc35fe45770e1dd0858dad3200458b2ae084b839d5e66eab58c32d333b8b0453a08462c33a372ed965221dc9478d8d5c4cfc865282889dbd86480ada62108924e95d6a281ae30cf5831d7ce560029f22b6c3ba0a51b1e872fb2662ab25798409bf5b48f04c98037cb87246171224af2e8a37160b540c07e8d5c926ff113a60eb673f0ca9ab6b7219ff281a9534fe1f9e8fc1380353ff45ad7619a8bf4745760c3364152bdda821fa97297dd82806052d1d504fc9574692aa25b2e4e160b48e65ccc9573a4478ba742d8ddb8007435dd581492286fb85a13eed4a08d96aa0d40b82837088f8c456eaf025b910d2733b14abd5a0575c5813ae56b1e000c4a0c87f3ab681792c788621d08586bb49436395d046b066e86f9ed2e113b82cf30bc44561e01b44ba89ff779c802b201ef778d749ab42aec97a1c74af81df7f2654e32eea6694dc2ac39f0bbd1087531e9a75851a7afb162d7bdbd80343cc2814d10c45b04051bb1692aec32d8841147066eab0dadbb848f86e9dae9adf2794e9fffa0c0051143b55cc373dc5bd63fab5a59ce8264891a79ccb9091a0945fc83f59832ee345107329ac43a92bd5a5fa216f57be5e936a28bd006375785ddc75d313f23c3ac4e9980746b6b8d8eab9850f1ca46306dd5aba1a8ea79de6f334b21b6e4d95332958a318e3daab2425cb0bf7e00caf9c8b39fd77da59d9cdf1099127e067bcd87dbdab4cb0774f3f1ce992ad79451cc4f36f94e21b4e00d4541db802d47f2242c6b929c5df512b3fe77fdc455014ed90a0d2ddead6fb8f2922f9db39c12e43749031bfa9561fee61b3723b997a23de9800711fc7168068954d641cfb319e7c2c95662693bebc8cfa67fad26ff58e43fa975fbf2f0d110a9975877e139c3fea875eaf37bfabe9434740444888ed0efb5155818fa3a9a2632c6250f106db1d7a90cd0dadfa9b8f1d2234c1fd94db97bf78b8c93c3198c078d9d92729b09559b1c124769f2909ae4751b031b9865d7195124edd607ce14c620b54c3718f64d18f90f28ec363eeb3e94612b5857fdea838fef91188adc54fea9bd6bd16075b62662670a490a88f3eed222a09775bd9ce501d2ba41fada5db657ec4b85410335286b120051a2d05bf9c1e18243eead860c413257997840da5bdf8deddd3905ae6e9ff3230d0ce0f184483bfb3866b02b389039e07c83856eeaf097efe96f1055cc53434c9e8d78fc37bb6d3536fa4b03032e9696af41def658c05786c18282abab17058421c0e9f800adf4fba34a467afa55e1df70cff12132043a31115d75acd0b94a53afa4871dca75efd738630c4974a3724785c91e17aa0e14837f732dfb849cb0d6141c131c252a6e31eabea3db1ebc5a54a65a2798df059c4c54d3abceaf5c9a0bb116e1fdd40c2d57600a2f4d7ef1b7477ccbe4d86ecf3a5253e151b8f709a303e303467badd16ac4a18854c514673746d15e44590f4682f4d8b3df92062f84e909529b4481f4e1e637c8a7e06b05288feaf715c3a0d189ef92efb4fa6484a6ca48f7c818c4de2e0c6a2e072255e916c3c483127201d3b1619d4ca8c05911949f54337ad357f5d665a0def6ac73228606ee03c22a4c215567df632e4c1adf1f34f68c917158fb514ee57c52f76cd1d3e90528da3eedc630c380058bb1fa5fac644597ff5000a204b97ce2890be2fba3702be6d43449ddc21cce6d19a0408e9f38090e9e6c6c9503d0c97b549712d2f35638991de5f7938b7c9a1999b6f824a0eadb686f4bb7035ed124f389967d3764d6982098f0d28c87a702f14354d03aa69db9a3c048fb8eead5b3ffbcd21620e610dad556c1e86be88298105df471c938e9edc00444cde3b3b8720779d93f95408903be91023b3ef83c6592277a17059996206eb2695b675ae741830eaa1f78ecdfb9d9661f8039b2ae823178329b1b9412ea6ba4f7b5bb0075e28590575b1b5a31ca5a96e5b4fb360c113f679b3bb7df8d46465233b4c98e20672695b141fdd3f0acf6af4a71fe5c790137bf64c9ef3251fca61b2319cdce3c346846af39ad73f1d267945fc4c695aba5b8d91c5061d37ffcefb75115990176447687c19be2b550cb444653c610f4ad0cfeeb774d2bfe7a981a21b176784200546cd919d6e88c89effe6f3bcb65b2e461898201dedc881af29cb1e24877dd174885339b7132d6756e2d9c9b987eecad04c79e98dd8af42063b682e00bf42be8707c6654e914fd4757951da9a2bfa0fe73dd4f9eaae128acb6318e522c1c20eb413dfba0bcb46d0743ec4df030f51f9c4ae0fd3cc13c20eb35fc547897a686f594ea684a51759e1e5d0c4bf7463c28c6c75e295c339c10a3f55aab41540c77086822a728dd1254179f95d4ea72c458da71c5ffd99b74ad94c60ea1ebc5f70e6978566e17bb1e9316a75ffbf097b678a4a9e1b8ade66b44b7010138bb5920bd604b6568cfadd6ec8602f92e6b65ef72b88606688bd06dfd4be002a8a132af0b98504bb33e68429bacd260675f48fe1497b218941adbc285f39bead824d15f3db35653b9103194843e939ad60ef12ec18627c49d31f571fba984a05ba50fe8c25013b0ec702391bf3f0831ee13d21333ca82bbc42925aa32c9e366addc4bf07c6e40510e293bd8d3f79e43e68cab852accdae9c1f49ebd825186ea267cad88997d8002f4da2730b44dda7d9d76c652f1c6b6e20aea846b4bb09d04bbda2b3fa452c6071fd1b38f41346436175618d124ba5d50807241077bf5f06f1c16b7f9dfb4f2e103a86e1ca1d81b86c1cd503f25f5339ffb53492b0c6f3e3c29aba46f4a378d786e90ee2ee7c1cacbc1eae718f460aade1b1b1f6ab0b1e981ab0eb4cd0cc14a17a19ddf6600e8efc69a398178286c6aabf2040112a6226632a5947555e71db21059b83837e7f5b97da2a77f3bdf70470be4ce4ffab0482d8c394aee88b590f97a47d3cab03ef4087b579463e380347ed972466ed7d2118934cef58a431434754e128ca286c70ddecb7374507ac64cf7ee876fbdaeaedbb2ce4cf801e56457bff28b258c009dcdda0b87d0ed68317e02cb4fe945bf69b6dee6e76aa1104b24a097656efcbea7ebbbd42ad8e5df60acae4734a9281ceb6941844e2b7345a382cbc603c1a62cec99608e7b02c6b6e140214c14ab06b2097e99b8b5eadcbc93749c359b99a33b52f6e01fa5f5e76d1409f7135c070d10c4596bded43c2c0615f720346730adc01a903e5f7ddf4b3c0a7d26427a7b9256a995600709ce55f84dc45224f53062ef3a0a5b285890d237116fecc5782982040829b5e70927c26d192772af26507aadba66a1c263e2c2fbe7a099562cfb9b07cae0595b92d7d3d0eaaf2fe9924ca39d68ca762f991d0a5f717960c1d9f924e891751becd6244dc792a7be9e4558bf061001d981c40f82e246074ba7feb44b4ae33dd4e17b59175317d5c001a2bec8952eacfe735b318d07a79a47fe523d17c33b046e4b16fd0d2122c8619549d1a064183d6cbf983041f8bccf298171392aaaf99a2c27c07ace33002f8ff2b7b650bca8b025b214b972f638dc8a3926cef14d6ee698db033aca18c80903a33301dd9c134844971a0a41aa6442984161d8564c408286db8acdc1b441408bacc5c22960a11e687534f6537a4d25851d02542092145d2ac10bf597f2b774b67e246cf35ab1dfcba6f0d67f0d69cab68dc2eb5f050c6a097f1d8a0c9c98b02cd2d6c1481dd985be99d4623de43cf592b4d83c447dfcac0c62f610a6e72360554de5c8e7f6f26c840a4071a229d4222e1c34238797b04738065ae7a06b5c607eeaca55c571ca94d2edb4b6129b8b536f3224d04d0a8c94158bc03d173f62cce4f222cf2d25a49a6291e18f24e9a395c28e0d0e1e1dde9c82a886c6ccb57dc65b6b87a250cca9e96a52849c260d42f16dd1298cf1ae93cfd32120a30909a78ad52d40e8c922b312f6a7444a50ea2c2b25a9abc6a9ac409aa5bd251f919c5ac23dc1e9ee10779f59fa35146fe3635d3cacb816201f9177585c58664f7a0d86270b3d697a272024a5ca2b0047fe0335f3267a7a82baf01910c97a3bb147d6c86a97a5c8c4325bcfd2ca5187cacd9d79daf20b925367d1c47708207ba4a9362e8a0ca1a72d310484feb88eae896de41d347e34160496fb621c0204bd2160de853d47650391e15ff796f48391e2dcfe4693c4f516eb30c2ffe6d10cc54390caf452e54c1579dbd62eb8e0201d8ed43abc2146fa38c1d00d4a1aef500985b9418a005f114c136225ca0b2fc0af7d6c3da0ba23efcbd19a296e7d18a20faacedc8e6888754949febcae025d0f88e52deaa24241d42650d5749c136273b50cba80f59172022921be09551e095242c56898a20175b3e9a1b4f29d42aa070b20f676e797758694f5e53625d1dd2c00ff6c0b3943939a40c62b95016777e13cb1b4a3646e9dd80460550906081550340de5da36673467660ddf92da0a3d8ac5c20ccc436b0f631a0110b391a29170bd099a9d62dd0efb02cc68e0aa2dd2d393cf94774c1d135d7c139adaf3bb55a7dd4f1a4b408294f01ec5d3d6186d0158a178302526b2ffa40b609f5cd8d722b1596c7fce958231a56bfe98dfb89c0028bb78009b2cf0dc1e0dfffe6eaf765a73a6fad71b58e74e130956d755975457d010ae9e07643494bc978efdf38011592c93d3a151f17fbfeb1b3c73218a4fcb7708fcda77d6508fee0d0fd27c29ddbc186f2da9a06e2c25ea7b4698f19d4d2d6d74fbf8ad610b4300296e150792f5dd312e5c8cc41cd0cc72911d6f753ab84df7ba30229395509f72a6da0a07312667a961422c05730f6b320b96cd7dad5ab6aebe5eacc8bf07a6cc510ac1cd426db52e548c2389eb6604ecb4c2f459580e109d462be06f3b2a3d0a30c1d4147ca938427175b0e2ee23042ede0c02526ba1eae9643437b79a8acc4d4dc39c33e3432758c03657a046805ecc89c56a441bf566d08f66382f6f6e5422d54af56577195e932faea9d2683d4d59d85b3264a40594559f524ae304137cf16a89181186224af5215388cfd20d5cc4be970255371a31770a95c4931e4a804caf56aa867bdbfe18bee9eaecbedf7c04d07923564582a2c9ce7fada7d39563a073547f850dc2c4aebdadf2ec5f1d8e1ca653407c27aaff7807743d5dfb01c2cff23f101e66a8933a867d2200932d8d0f5461cea1624771b42144f5074522476eca02fe15e1a3a245846f8a1c2f15030eca53d6e1f8a834c69234640941d0751b0a20666d5a353d5698eb59a16ac88b2ef173386dc88524e8c19678644e9a08c19008092f89f318f39ea0d5435664c67a234187ef81dcbf930c84c1c73e40845617d8e1978386de3f914d8c2a7eab5c75f8b43dfc44d613574fbee170e59c44b2cf2d3086717855d1ae3d272098110d027663532cbfffb6d218f6d94012aaa49a2b790188b14416970c40715e681adf0b7eb771800f2b26d035c7c5f38ef23a99afeb1c852bda22b7bb6a3d12dc6175c26954b323a5d68200eb3ac64302bd36083b46b3206137fb19083745ddead774fd22e11e474f6f0bba0b04cef881683d4369e6729b70d1ce05eb52357b0201e010f6cc5ea5a15e621243b154636098a81d4630b6498ab54938c87e3602f4d109ef293d2473c0a2cb4b366d2deebfb7f9981517446bdaebc5a6c70d910c6b13a63592c26a068575d1fc2a98b4e9ed8ca34026cd937de8ec99efe4b3fb552dce3e6ba52607b126e66e18f51ecb2fe02850aa36b31dd9a1395093ed2f43065e99a697264ca7a2387766b51381720bcc1d6cb54c1cb84b0bd93f8fd6058f8398eac419f52ca4e3371d845f25c3c208e0ac619162d23ee8c519f8caa3c42c0aac332d3f2d5da87a0b18179511a6511a74a601fbfc9d1f9f695bbd828a28d94f00e2330035acb94d26f64fc4eb825070dfb8c1216d8a5f3b6350ae0796fb430e80cdab600840a640f94ac3bb46da733dfc0ec4879ed7049f99db8acce9bfdb03dc5f0a1c7ea6eb59c2544debf9ecbf78eb8ab9464d353fd991bc304fccda028cafa5e937f0a0e8df4d1ceac493b83f8a484a9d283ee13f6a65df0f02b70686ad03f464963d0b56d9119c3beea720c326b2ad50b86e2c828ca55492366df369ca826c47c2b5650f19f421d2f0f2b4d91e8cb7d4506deb12d61223e5906a449ccb5d4e3266fdb55f022cd99fc3d987f50e78cce58b51729f5130b05944da63dec208e219106bd63cfcb9da82428baae272b3ee29ab740e2a9ca2f0c16799453baf2b62d824c8a4ec961d8086f3962ae40799e90b76d0b152baf1996e8da4284a13edecb6ecf607780eca07b5b0262c71e3a402a4955283cf2c4cdb7de106fdca2b248a09cd2ac8fc696a0fc549f7b28403079dbb281cff88db9d6348f2db5757a4d9c3dd2f3410d49ee748961d06d5b61900b713b518da3cb44a54511e8ccf6215b9adff34b82acaa92ab70234d96387ab8b70095b4f21456dadc64bb0c00085a2b24e46ce17ab1de3c9a0e50501a52658c737f08c58d94fb861ca42f23abe2dfd59ba36200978cd135ced5e051b169a78b7f92bebc1c49d6b2e030b169e15b501f263aa7f5d5ee5a2369e95b00e6c8fdb218009c6a71ae6ce65c2505e1985fc8d243e2fd7b18539e230902fd78289889918c70d3e3d1430995bcd0abb5620d715758885e3f2950a9f82d1c0c518bdb3691a8d95d5b192b376ef908a59ae4e6afcd52cd84711791b77ab55e96e521a66b7f6f688a3be0daedb4cf204acd8ea5c8077707561fb6021856b76306fd85a7e1d31229d9e3c5fd9ae5f0c3e5b3af32f5069db8a3af4108e52d1792a56dda65c6cfc539ea87441fa4f0a0920cc97e6524a0cccb81daa5b14fb34ce5668c1ac84b2556078be8e9d55f431f60d9b96974d72647afeac0db65ca97b6e0fb794797654f3560e135fbff54072267b21c57f27d311b4e790e888d0e7b56ad294bdc21501e08e2880359f05f620554813f89855407deeb01228bc44c279e5d6dd179597c96470f7df6c30932d3689132a0791dbc49f3eac7c4d65bcc80a1b0f3e19f594a4ffd3e2bf1600c6539223e33856329b4970335e2e4747086716ba46376762e984dfb4c9d0677f6ca1527a7426c818969010b81b575ed4adceb8a9c64d03e8e8ea56d67aa66ee0681da3b37e7398f551f00c122e610d9b7041a427b7ea3385b71c0f2c3b44242bd46e6ad84fc656b823d9ff849c8e9998287bb6d5858fed93ef50acabede20a7c77ef2e5f5bec70f79c9707aa45d81740135b815ad2703b043291b3f40e3bdd3b664216e230fcb30948abafa1a46164c649665bfddbdb29bf817b87b572a797b4249e22a29d1ed528d6c935c334baf0406535287c9aac9bd3e330b6369e10b49c3980ae9e33fd7016bf87205c60f99ba1d2528db8005fecbe733bfffd4a54f5343050345c784abab321abe5791e610cefdc5f512ee907fe1744523095202eb132ec6ed5976f839672ae8d4e8c44148a904409104d91812205fa5efb0213d37da532a9839653b98b8e9a8b9528ca64d524c8f04dfe645045e3fb79d2d7e532dc8da9f13914a98af93c55e89bc757aa421eccd02fb42c2bba308aec3645508871b9814c2b5a34ff6f8473e3783168a146f6b2037e3f8bbb438cca98e9992955dd35e74bf89c4c4ac1f7fa5980f5bda640f51ee227084451a708dbf3b35f8b73626fad0da56589149b568a0b9fae15e0e672a08bb0341af252d0794bf14f19c77fe86785ed996161dcbdf088c499644386259c4a9d97a7fb2d8a00f947f7f2d937e69c8c9f971a9189d6922e5289dc2f453d6163bedeec3816dc32a1db3a9428bbd99f90140a2dfa715a9a57a6f0f70d365185c601fa15fc21f1494556891e9c0f4d11bb6ef296868262232d16dd2c7150f3ac0ecf30beca6baaae8340d40ceb11beaa49fd36e3021a45cadde4fd565042efe2e48fc8a3c0539f0cd17f024532c86fedd4d5ad8a909deaf3b2c2674a73e73a3540bbc0a2135493917596d701212dbd43664303e8125c15837ec5883f6367c7dcdb7ca8dfb59d58b15b020cb7644abdbf6132f55e882fc1ef47ad02f05ccae2a747d915737cea6a2dbaadef8a2b1d14bb2e6b10b10dc9f1daeb19e8bae0f20fd205521f2c82148440e350207216dde6330bc94b0a9f32ea5f29dfb6c393dd170c86497f1f8321667f8f34bc1b7839b581bc82a140e5cdfff350edc1af77f4b57bb085f1adaba3c6f0a4db2397c8ad5f4a3c15b841480a046b8f0a8669b8372ef389b1297e71e6c92374f0d55178d6f0686ba889ce2f454b309af46ef8d0b032f529e9bdc9053299612727b06dfd4d13f1e345fb1b5fb11d500de0295b2d0d8eb56a4ed70c529286314aed2d27882023d66abad1c4e0657092f54eb2c2fc10daa913669257808d71de3102a0e620c03505b76842988ccfc67e9a84e4137d34c23209751d17756a05a17fd4c4015c8b61a80388b01e4d70a9bbb40149eda9b56c7d0419e830fa394e5333731081a72fa0071183b0a1921e0c9451b70e52220ce1578b2cbe379d4008956423d1edb2f88bb284fdbd010dc959c6c5bf525ba2ca95462a9fe958f8d662627075eb80316bd50c30b8d4b974fb9235261572935c472a9f2c3e1ca9451b8d4c7343e380aad3cc05a09c27728462f0e50056028700683461d50802feb87289dcf49e5719e0f446e3465a011116aad2b6e4bb044cc56cb5841adae2b180044f76525d449cf6bc5442bd6d9871252510b088c790bc9692390a24588c03db06979556e0f72048225d4294956b025477899bc1a953bec653f5edca47cba4542109a8348303431dbe5f2330eede4e3ad2710bae318e9d1d3234238645c4243c91c497b38326c9cd0085f9e7fb16550798771ae2162040c5b131136e8033e48e8145a57c4313f669e9819266a5423f783805461ec6739b2629837a0d25ec54f75c7d4032968cb00af6bcf0274c18ab5c5bbdd761ebfcbcedb197dbe7641cde6194ae58428161b88c305999045f98eb48d3ef4585b5a505b58d0cab5f50bc2ffd29fe877da74b4f636f2196d0120cf640877dd5fa3d8bb95002c90556970145c4a18910b4e08558f9854c20c570fb9a46a7a4fb3ae835919999448926292986a66c3b3b5201a4540758d758efa37b62a3f4915c0c23f198f40c1b914c3525f3ad3298d1e1d272338ff16569bcf0bb8b6b3ddd9adc19b577809920f17049fe1649d44982cd6ff5e738b16a21327415c3b5637aeb4e957dab7712a8dc2b4146362e6581756ba53d4e537bf2f724d8864b1c8029aa8c2dab43639d2262e084a50c98f08f15042ab76599fba8b89d99df9a1a999d5f5966c5ba64f57ecc2771eb5206771a86d78f274434be63624f4b2b92303dc5e47a4bc9c25407d0b85ec203dc0ba815d85a564794594b1cb467c0c11b0dc4b04c5cdd61fe60638edbe4d70ff45d7a0aeeb2b45c528a2e7b306bdfe78ab5140922f2b1ccd344c8d994a22a4c623dbead08c0d8b25deff1385e1cbdf862c8f753103ed32d0a400a0356b4a13ddc3a0e648059bd7d0dc02b5da5bd2540ae1e3636492aacbde2263de4dd778bcfa6ba9a1c4fcae910c17f54be33b41d52e5cbffbc80df01c63bbf05c5eece503c859ce0e01418261245d8f6cbc742635f5e0d2400a6a58361dbaaeb817f59f187b90797efdad29995fde39d9196e67d080a21d5412e889a8f47559c128dacece4f003702f27cd8c984b1efde3d0ed3adbe5eb66c17cdcce77676591aa9fa0bdb54830b13756d3becf749ad20293c0d243853857523c8a96f03a7d3a631eb5acb4544e978558eb55cf10a3aa0a9415562e5145bed1041ad7cc00c183ecfe0c5ce396d3e96b877a4f502bf3b41469b5f9658f6ae47d139afe384af8fd42e6b4ed79815e13d2ec4c6dff02f79efd835ced007b08213961aa974996d19f911f10fa765aa5c56f52022769e6a31e35f62a75e2b569bc93f52a3590262ec06e8d4795840dc638bf8e7c974b26f2050b3e48da089fd0b0fce41730646c9e5a452c37de82e6961ae1a181d15b1796472c80d9e778b8847621f55bc241da6c18282aaa2135045683c8d67bab4153034902765eff75ac3bed9e2fe9a62e2d1b00086cd7f2ddf29974d667087251c89c86425979672ca16b74b74f8c5c95485a4d526c926e2c1dda6245e4ddc461070a9d5fd1ad666e4d882698fe7d37d641f9b760091ad6f4f24bc9463bdd187e860877c73061fded036bd49f8d95620229e7a9fa119919ae1004935cb0dc5349ba12ec61351878ecf08efba3b840017fea813bce1b644fdf061f27a351c544775d5611df213e5bdd36e3aabc0286da9507a8cb576f21e684ed7ba860e7702559521bfa9612cb9bc5915d63dc0bc4fa81b12d4d08a3af0013866ecdda2e0c4a867a5d3f70c2e369983ce5209bb12a9b51b1cd5ae43c18eb24855db5b5f00b262d0fbc7c2fbea378c5d205b785a95e8e20c0a88d367e6988f270de1ed5de10ea1d0c73b1edf2dbbc8e3499caa55495deb4835e84b11c4686f13c04c75010a6aef38029bf58efe4b870a6602f9c2d383f149c8693f797ed4692d37b59a41000075c70879775e0f7da90ba6e2995d21923e5f5ed7b547e464a836c81102fc6fe7afda0baae5a67543faa53e9b23db43c6792601e884191666e8c01f330c0e7a44a0965281f46c3589a8cab922a1c801f9193af851cc410c926d6f9bca4c6ae3217023a94627aecc6a2592a1b60d6fe9d91b3dd119911d9597dd5ec85dcd5da63ee8fc349d275b6b49ea319cd31ede314cb5cd6b5129dbd8553aa3cf04a0af03720aea56a95b51a6330c1f40e6fa4c1f92dc00bf14608fa28c3ad030e919f01144731b70fadf8520bcbf1e857795dd789953793e3c6bebbb0926fe0d3efb223838bead63f1417cab514b56e3a1f49fae21b81576c1dfab3ef0fb5f8234aba6197495da03a4f9e2d35edcf7319884d95658800414d7425ced812bed5e686a5243a2acc0a62afcca20806609e927d6cd11d6cc52aabebe343d2337403fff5bedd95934443d1dedd79e0db008d90135b0744e6d740eeeeb990b28f6d7de3cabfbbc655fe5412cb76f35bca29c5efa3eb0af269fcc3fb9ebcc79d5d5d4a787d577a33128d4d9d0afcc810cfbb401ed2affb718195dc97257d673e4db10614de3e9aa6d8f0e17d3d93fc7dafc369e78f046301c4976fd07b1b036bc67bbae7f72a4dce6567be049ab648baa2986da477e1718ff9a96df29dc231e6f857e40638eb65c7e72f811633cddc7d9ab5b1fedf9c2453dd637c18ead88f704bacf7bb123c2da040ca4258c40581530e462c22a11edbdb6857e41d431e7f2336ee26a7177442a19c6108d382db730950dff38bfddce27dc0ea4b9ff944de31b66a33a3ae2af4e648f373bbb6a78f66441b56a19e98a7800e2b2f1b2f16a69113dd33e136f0b61dbae88bf2d8841f715cfd0b73618a6d6e05a0e1ab9898d16c2aea5110b23a5b6034c6bf7ca049eb0b06695962beea3f192c55ead9b1cb569db89ae208498cc6644d73f51c214e4ca3faee6428fbbb7d6c0a13873d109c1049cde6324dc4e376f89ff7e56f433e97cf9e8ab9cd71e318b4b5c34706348a40e5ba800401c88116e88f71c9b26e75d63a44d63eaa159d20dab3c398dcf23db48f7964f287f1a8783c877bea0ef4cd0313ffcfb03579b7bc1dafd7a3a17e5a55df6b90940ca1443ee1ea35eb4e4accfc07eb98a4d9fc02523df742f8ad3fe8caf5a4bec2505ae183a23488181736a83db66de23152ce74e637b71f22624678764b761afe1ec76744f43723ddacca9924bea5f9eab3e53dea7f62415f240bd59117b2c5e2e2d5f53d6c9465f408f5d986a2b435dfa389eaa72c09df3d25990c8953a437f28a6011391296634158fc5a33a10571f1faccf8e6c349c236568261a729f7756868dfa6ecff210a0688df618f93146ad9bb8087d2a95c5a08d3471b4639777f544db145f0fbd34a505b151553ba434b65a11c428426db704a3413f180bc801c5ffd587ab57f37a7f25122bf3f1b08b3f66f65c053544834b25c623b88443a616f708d98d8b72015e6317fd2b5321192f8269d47d9279e51fe21d222fac114fb0fe70fe15947a5eb0582770c038ec2ec345a2f2a463d3bad027438ed7fea691990b6dee5ffec11ae15b36c2382dba55d4a55c78e2b719738e9d39d5450b5f53034edb96ec374a9fa810cd0b68c0366f17d81fc9066aefeb7b04708e32b4b48199956285085f70e0fcf5c3395b5182561a7736e5a4d17cda2cc240d27c318a3dfc414acc5e21cbe9627003d2c7a4405521366f11cca3a1185fa508d2bd71e860296926aa41a68af50ddf2b6aca89225c03462b985ad472981c52ac96de38b51e0cb89ee2ff1d064dfe070bcaaf62581290c15b1c9f05363a05e74171892cfc0b19fed8e8b0ad382313ece7ddf467f9e2a4fd44bf9c007647612ef610ccbde8aca832504226ac6cf794421d79fd93160187352583377d946849d2a8809827b4669616b4870140afdbda3aac212569b5c7e526a7e57e7d358df0896f8ed89d3ef53d6cdbd64abf054c8026992556eab4460c71b182e539c2438b51c09b73bc68966a97dc1d68cbf1cd6480d51b9b06f256cdaa2f88377fbaf8e9cc42ce37c6515670426d5cdbabeca7dfa188382d777094bbcb4c911f715e0ba37477c424959270587e48875833603d1f62bc98cd57cc85384766341fc6513bf39ed940280ff9a66b9163574a6c87e3b95a4852e663bb65bdd1ca16036c5bec121c6ba1c009730f4a06bbf0e97a1203fc1300860252e41a40604039f65739220d80c1c92e2a598e46cc8abf219ed172eeb4a8286ef4a34b2998bba67047b317566892f3e800e97823a361a69f48999351dfc7e59794e4b0fa9068a33945ed97503edfb4a1e961d451fa551338c7c71eba9ff530067646b8fa4f0b4cd0a98b1fde7d6730e06e3e84317c34205ce3f6d50cf26992e2da42524168dd98088122b9130074009d8c70ce5ea053d69b53c3b5fbd0f08655dab06df4bcd422b7f0877eefd534b15ca577d0b11312cef6d64675509bfe43ce72ca37fde0ae2577d3b2c9a97172fcbaaf0b6b81741004a63e2e8b05fea33396f6fc91f11546d02df1e9b85f6ad48480c7f9c19b0802ece9d2cfccdf8157ccc0ca6be995f901ebed92185e657f17d25dbca4f1aec2f12181ed121977d561305e129a1a0b89bcc4543d893adb874511a4ce454eebfa0ee542fb59956aa60859a6951e274d4bf9dfa61ae1d6c2d13ce38ce8c7dbc9207c58b8323187e1e51348b4837c1e0599f75287cb3f417cd0e81547685b0a53ae3a4a133e7c152f9ee303e3f8a2675d867a646767d2cd4121590718f8f0364f8435a4ae924aed396dd2447b1ab356e2856531dc4daf232d3ada15c9f18f3d9dbf8df8187157f0fee5f004979f056033c34f54ff3572a8c592cef6bb2e74b7cfd19a9525b81932cc63e57906941e3ed876c71e1922e700a306a6612946c72d1a961400896cc99e88d409926bc4b14f88b986799d84611fc368068fcf96fa4822116bf3fcafc8024382ba6c4f3f23671fa4854cb24c5c6b0beeaca3592306104b8f33ea60b0c24d681b2cacd0cb40e75ce2c8a3d27e81ae79dfa7ceeb0e018319a5e9ecc75b193e0d8b9f3ffc895650cf7f476bd0d1ca369569fd4e5a8ff5c034308de8489b0717518b53dfe91083ddb1fc90c99c5ca9f39db0e09d8f785d790a99e7d712314bed60e8ce7a2a6a6472741b61b2383f7abee214eb0be6656e75e6053355791a7410cdf9b4a39de2c5e54a7a6e4d2baa740f0144d4e4b184e1b31237ecaf819d2a33e79fe5f4c804a2037f51345e733c27bdd768540bf2a75df52c0569c2adee029c370acbb98594b5b064cd06e550a5bef6409603ad272c7abd29bb7463b86fe76becfe05ea39a66db18be14b91fdffdd0a70a52ab09b15e3e3116b22f9329ef38c085e0a2fbdb8b3dd183bc78cb1c74e293350c1944373ae1492ba1ce378b581cb330c9aa458801cf551373d5ef9c76d7312b8e71e18bdc188fb3ae91743dab2241e5b00986bea03adaff001303a529550ee18ba72db63c9038c2db5fe01c09e76d5d4ad6567629af3782d2e0cec6632c6446877f80ca1345c3c28a949f54d52263451f36082506482c160c9dad92227509ec984490f3225f7993ac0af08c480b8197788e0a16c6db2f817e8044b62ba1c3a63beb1fa2f8e3379acbc5c9760582664b9dc6e849872f2f53076f461e8188071612c6ecc3078d382ef52ca2017b1efc6b00361b12ea9345449c7c4e857e7e30223d0833dcd75d4a5d02311cb12bc62b7bafb1963b0cfd2b5ad40f3250ae0ab435b008a6f1681cf89dbb2b4a333b57cc9a6c73cf42c847272218340e996aab089252c14b1745a49f3bd12b2008b5ac22bfe6a88803981658395e0f3e3c3b3b5ed2ac132d97f2cc0faedcab670d339f2683c46d8580d8d6248d11eeb61f63d0669b12b8e65e6b40f586a01c702df925e03247f31260a55c4b19c08ca181a259ac3679b1eafa44bccfc41504aec279617dd7bb478c6b1444cd7f2b2e902c557150b146c4811ccf6bbcbb18bfabd008df6b218c3aa123451a649d764e38cbb9eeec60972748652395a3d89bd9b3dbf77eeeae3cd3f2e750be0b6bf856c269c60b4462083d1a231c9f1e976a9db64a262974abcb04b0947ec4262017b008204288fff542c99f50717ae0d29607139ba6a96116bfc952671f4ccbb8cbb2a53659cabad65ec849f3da0f733a0402002c4bfd17db1e48f6bcbf5b86c28b43d57c5c216a106b5475878a17218c4a7e020600586350cc81b9c5d9ba315e1e06b10bc672b022e84144ba1ef8735b1edcfb77e828cac260864373502d949526cb710bc27e65d92a5a0d8bc61d52a45df50cacf7e2bd0affd6e11afdd28ad7229f14b39eb23246209c960b579840c9ebf9a6d1e0305c8356bda44c7b08b5e5690be98c05a02c40444f94b42b1a700009f7651bb8e009a7a01eca607fe81ae92f4b84fba8960fdf328f95b9d7101df1f8eda1b3d1dbc6486a0252a26de3c352d37309f3c9d495abf046998eda35522882d2937ea59f04d1b9339eefa00beb5c3d149fc945f73d18d3b72fa914bc9b7ac1401fd6195e67ef0707350dbf8a8e98678fe6bb4370c306cc1833db7f85c8a0845296d12e5abca7f98bc684f53551f65eb0fe3a825aefa142d01c66eff49dc43ea8dbd1971640bc71bcdcd00f03e2de7d9501337d88d0b0f67fd380e5b8a1d84824cc792cc946508babfaf1f9aebd22cd57a5fb7a56d7d10b45499a309515bf6f94e858dcf5a4e08c755a73f11247af666c1790cad53db202e5ea94a230b721dc4366c5ed7e5c4071e44a5908711b603c49d2d8a7150bf7b10a47dd921f5decae06970731936c1575798dd4b29d4f85e48e7ae0a6eef2b3ace5fc0de11832979511b8df77eb3fd883cb1ba85be8a286aaae054cb992719b3fcd4d54005b527c6fdd66309d5d7cead4ceba9a4a8f69ec6ba9a8de3ecd2ada19e5be8f952b23ecf94dc4373e7e79b9dbe2ee260ce8411c784bf67452da3528ba19a4eaa2e70214b19bbabb9e07957e398696a803988ce3fadc5021b5c94c9ebd0b8818841a90b4715729735a2384db4c0c4d1e9d386af5caf34908049dc106b4d7c299fe2d8b02ea10ef39c25e76aeeab575190d31646775630e66a5a2120309075a79536afc6528f129d5d9689f20a0874b5649f96bcb7e66a0c1c9e2db7aaa60a01ca17950790fc2329a95bd7cbcdd590a96184d6d90db5b8cdd55c54fa809307d92d5ab7359ffb401c9488179ad43b15743531b4a0a902d528f78d844af6d978925ac342b17799e68f0f8c288a37afa41edda1cf9429067f66382c4f79137de65a5c27edf1c637dcadce0bd222286eff2e67cec58b75772334a2ef99774537ea7551f9cb5cc852d3ffc49acae0320c7937b74adcba6986ee6ece571188312d75decd0e38690bf72f7f8eecc01638594e2eb57ffbe86c56a091529149ffc495f26e9c7ccdf80adcc2fe5fdd93bc1b6da950423ffbfdf86e664001711838bc54fe2d85bebd13a1c1b86420d4e8e7a76e03dcef3cc2e0a4049fecedb47d0a47177637c9a04c4a3389403af9e40af87e7d87dfd40def9997ace56f35979b4673168057ef1875cbb35f0ca4ea66372392d6a75c2800fd35a58ed7dfa568f8b5ffc31822f211aece049b011bdf6e2230c45238282a4c2a5bc400c3591b1779edb19d25cef553c74fd22f6f8b89529a890f2e64dafe326b375154f34051bed27087651153335aa6996a89b2fde30d17f3bc996e70fd24fdcb217b428e81a1e20d2a7759d01a94a22ba4d417dd3dcb24ece626f00935e84add505391606121a8b26b5a8754917c9822b346cc157d24e7177f67f8d1da162475b34e9f548bde50e9cbd1918fd00ea36454edf72f30f15a76e8d6dbaed3e1e800ef8b090b48a43d88c6c2f9ab69344730d74ec1c66342f6797075f1bf2b712486108b306c561fc4f05550ec3e9340881438554e61809e9bcf9338e6ac74138592415eec7793baee10553a68e457bce35ef2811a1624abed75d0c113b85037ae306fa2d4033b6f2d014478de91c12402384ceab8da3a631a4ad9006b5866171c68c7a4067c1858e6196102d5bf641855a3f45f91262c0574f020750715b6e15f31f223693a3757397aabc24b3a8accea14538a11a6a2f05fe6bb240bfb32a714448b9511cd5823cbeb44ebf2dbc0fcc313614b6fefdd421a8f1d39a623f8a27b040f987a6c47f96076c401988c6235eac50945a57ada9c620db19499bb4857746365c58f8331ad5f6d2e5d777e09a04b76c4358eb2d6fcde630f8f4a6b845b9fb03e32397f6280079e8e0c14689998be5de70abb91118a8df2f519670c3356c84d5a93b9da1c183dcec07db2a31dbf24a6d017479358e07c811f538de75616a3f4d58bd3696ae37f83d2e8c55157f33e6c456b5f903d9cf00f73ecfe54275a8c56500c360bb58a51fc17d1d77589b672a0a83001c7051f00cb68762a8107e0708671b2007e413e06b8ca75a82aa99f0e6ad1e99dd56008a26b2a799ba40fe3a85fdb2e58d1fd0b2dda2c83580447e2466fd02703d55cf68875ee16083d9e4d4485b735b29a870d49c56917a1cd6d45afe1b14268725a216bf3ad9128fc2c28951cfbe8dae128cb46ed424abdc63e593e91090602441d6d44e04edf8add207e63caf43a7a4cba6e54e4f6ca04467c9530ee5f9c29b6d4e8e58d96da12c61680585997e2d8eed83ab47f617f05efaa2ef650e9c6e87e3a8fdeb8a2b183e0ed3a1f5d205844e4a4dc4b124d04532546f3eb8f9579a412e95e02632af3c90a4e4e28721c849a6269a9a1f3a0073db399da4cc422d6a65f263e2bdd5946e3b4f49349ac45d87a8a78cf7dc740ac9c75c78b61c965c30a2bda91e73d9798b21b325df89acaf7e4500725277aefde4358829d4a82eb7b3f11df728a03cfbfb0b88c56c32dd1c2e4651903bbb3a47f0b4e10be031578de13d881b5d8811f98c0052a90400d64a022e6c00e3cf0811358600512488a6520811ee8c0061e8126eeec29626b426d69b43bc43efa3c6a2ad64dded18b62a8b02dc8de4dd46723a4e2266fcc92e12b688c4a1b05f89b3e2f96b642daab46a24df0fe89e0c86852c05f9b2bfa2636acdb2f5395642f61e9f3dab0c0c67142fdff2b4bed0bb40bf17767e9f3cebc8c715cc2b27dc00babe682b78579983e5b04bbc2dcdb74a29fe8fe69a0486b54c8f9b084bb076c587be08bd167a9979a57fcd1d3f4d99b221fc6e1b6a694c5ce35174e4ddbed02ebbdd71fa9c22f03f6c790df02352880dd2968526283fa28ba5b41929305ec4bca1046e1a480e96ade69c17404509c7f5785819e2c2f49045e8fdd1992999f5980796df8704412216c97285fa9e06668dbe7ed0091ee335a14948b7a5e396f16ab8ede34e05cf36c89167b80afc6acd02c2664b10a6fe49e25687748339c34b008cd3b3da5905087b8f153f08c071d829ea34e54f9929c1d4f0f7328fd36a3766fea63270f2758ae44ae7ca344e22f2fea3fcad6e9aedfc80e01f1f4daa05cef247717bfa6d6a48dc013019f4bac0dc06f082dc754a2112723eff81c2e9b0c023e4011b3d67794133fda76ecb7a522c23313af16e8301cf6ef92f6a27a9c283f5ae98524132c3f60435de5634cbca69c956ea33da46852e0108a7d41ca144cd4e0841144efcd93cf6da341bf50f32ff5af1e693f6bad6230d6c12f4560e0ac63d9bcd7b779a442860c3a518d1a40f1332690f34220bc308f337c2e08a4331e818809890dd9e0a781cadade7cb9cbdfcd97ecdf4cf8ec49ad7f49f2017237509b4cf06e044336c7746406432af9d5a15127f20c0bad0e587cf60aabf71230531fd5954dd36b2560e3169a001f0142bd78f4c2c48e6ceab1851822dc4a9e9cac84df1ec3e057e20971e70b8bf4a2d73e8c87730034d1feeb45d6f8d635ed9480e9d769b392addcbb8bfd7212adb196aff5c213d2771ec1fd46f0c15f6430e37651dfbc754ea7d5e66a3096eee202f1d94e2f4d5759c79553ced9d8c9878b30a1dd0feee0fe2c0846de1512a94d1caf97103c8f0d8d515f37f15d486040a3b95d2949296f38ebf8ba27a53eea7ff0ade981cd6e5d1c1605a236b3163d8d473eda968cc6994a08f8d979dd6d3dabd24191b43c8409d2528fa2a30d8fc00decd65ffe9e35a880163a8a5db846756f56fd87636b12a9ce2c015d563c7ab6dd315c84253c287f48dc5b621a0627c904fac5d5e159985ec966f247108eb49725c37a1b6e11bfd10203de7beaf6868e5f31d081681b2a031bd5522015bbb480db17331ecc663991b85d4055687f412e8312293666c27d5462a1bd2ecce1b66e75c23d64fa42db58d0c6393db855a338d7f3d69523917c1063388170f7e0556cc7020e4a4b16b33619d7768f7d4de913d92f0988cc6e21b62f87b3adee92de736fa46c62fba5c246d27e41bee33aaec4db322eac1ed632c527b0571228929d8507bbbed63c024c380c0b109c51f3edca62f22d02fae1eec054d8ea02ae0d96e0d9b557113870247a651ffafb270322d52ab8246aef6c332f353dca3ac513bd4f0a2c725d15ec1d1273a907db645c68bd2d3ac54fb8574f58a88b0a352745296ad7f74e82843a8d5a1125ff34ed0f3431b897802a6a7f610e4a39f099cf5564a8f1aaf3d0aa299bf07d3fb9f058e524f575f4949cf80998adc7edbdb6180e3f896384b2e61b0edf881ac4d8871371b8face84f4d496e03cf0d80182a19e7ad24393d1dbbc14f758525c6df2a4940e33fa759be4c593f69c537feaccbc91bd90917921d910af0e09840f2402640cd1796ab6150cd9ac2061152b02c40349c0b9e45f12f4d005b94feaee80c5623d1616123836eff6c0dc4f0a88b17bf09149f20e2e42bc55846af837003db608da415523245b5aa4a0501f941d56471a7d7e8fe3e0abe264e87b18bfe49f64056d7de1bc37cd287889207107dcb54a81802d8a42c88437b81e20cdf6b56ab9c90fb272b04a84b30d5703c64401324cc19a184577f4377c4ac1f81144ebd285165ec621d19e805f5a33aabca220645f9e9b7b9825d343f9d2fb9db37d9c815f118aea6d8d3048bbde73ceadce552994073ca30c1effec1c8212231310faa7faa2d274c709c54dbbc53eeef6248a5863d23747b4d9b2da291943838a8ec7de2d5e21a56297b9302d56762d2a2873a49a8b22ad3742831bd2a90bc4c8d52a4634275003692de7ce04f5cfdd0d1e7b3a57a15837e5b842ab55bc3cabd0b26f7da0f790a231bde6e68c3d788c4e14873b4b8bc910a3c5b262bd0bcae2a96cece0c49cc1661d9321a9b5b232380309801a50db60e1ec1c637cb9a5a5d2a30f8e87e1ca7fd0cc128a9b2b8ed68bd435ac013cd11c315963ca92985cf384b18130eac6cbcb274c8285487455cf99c929d5e7cf129201f44d04da9bd3b65720dcd5a803d2e58089d1a5e1e268c0a1e00b970f0602c680c084af7be5cc68b818bea29325461881c6370a72451e0b327be5e7681dead969b879d68c71006b1878422d42a9043f9e6f646b96ec267b37d97bef2d939429b50bad0b110b935237a2088ee328a51f781f6534f061ada38c114568e0882d4240c2c0877352eaee45be721ce7ee55aca30c06b8518688213050e43b2c32a0450b880fe7a4d47d94b940101cc799388eab15880b04018415ef09f1df283369ae3055600a29a4a800153ff83085141698a9a2c4715cd78d3215a0e2bd51e687f7c61d13fb508129a4b0c04c153b3c4184c80e505080872788f4d0812854baae23f2de28b30314ff8d3214f86fdc31310f3b3c41a487f78c321d788fcaa78c46294d4c0008c7719ef789042847294d4c0048ca7b469995f7e8f0e128e3c490177d0efa7dea8bb5c6d1377cc88b46855c1455ca264ce845a39485b8e81bfe212f42aed78409c5904c985013d88409e1782f1624180786fd4349264cc849cd8409c9944c98508ecd920913d2719204d76025d806eb2ca9787a611ba3a82a74436f68558807fd32614231ff024c98509326384c98108e3f02264cc8897f8e091392c91a30614239390e983021084c98b19d40113911e188706cce789580fd2f13b07bad6c1c13bb290bd84334d318d8df2446ab2a8ca2bc55d5058df237ad20e0f3d9741385681346c4aa348a7241ab2a151a75695fdcf0336ef8d00d55d51845790542a33cf464ba78a8365d3c0465ba78c8365d3cb4335d3c749b2e1e8a325d5cc4ea625455caca2474e8c98411d13ca94d18514bac41993022232114db8411b93cb69d09233ac2eddc268ce8f5a2fea12813468464ba44c1fe22d68411c1a60b155a05c241a3fcbdcbb21db3621ba7d8c623dbf806db3122db981669325dfc4d338ac241ab4c4e68947f935246cb24d04c185192d68411d5189949686a5a4a8c607f916b8a8e4cd16bc2886ea60b92099b36ae25476e5e4c906018f6efa255622d0ba623d8bfa4e35f7a425573049304ef5f8a4255b304ef6fa2a1aaf97a7f93ab719c9e039f4bb4524d89cf25db129f4b37ccc46713cbd412a36144494a4ec0fea524fe252554355def5f62e25f6ae25f724255d38bf75caa29d904f95cba11f2b914c31bf85cc229c992f85c9a61ff120b1a4654f3b9e402ec4f82e24fdaf12fd150d534f2fe2523543543f0fea5231af84cb2916e457c2eb18cf0cf2557e985c4e7120cfb93c668189192e9e2e1675216b03fc9060d23b2212da1aa89c5fb939850d52cf2fe24275435b3787f520e55cdd6fb9374a86a6af1fea328fe241a7fd211aa9a1e787f1212aa9a57bc3f2909554d9a173f93708081cfa41b526c88cf241c223e936419f84c22d130a906c467128bd40ae233c97581cfa497109f493052cd67920df61f91d130a22550a86ae6fd474fa8aa8af71fe9501515ef3f72425553bcffa8095549f1fea31f348cf73e2203f6d16d64b3c0e751ed87cf239a0f9f472359053e8f704437d3c57fa445c388988c96505507de7fa484aaa278ff5112aa82e2fd4747a8ea89f71f19a12a227f82cf2320e06982cf2310601fc546373d7c1ed950e0f3a88687cf23d8e8b5c3e7910bfb8ba0505513ef2fdaa1aa21ef2f8a42554ebcbf08090d238a4d17ff1b1a87e85da4834534209f45b5097c16d9b08b6e79c41ab59a4c987642ab1abba809f6ef254effe3863b43cc822849c725c1fea21a4f8d922b5282fd4536a20df6172d1997607fd18d888928364f704537d30457c40414c542373cf0de3f14f30f35f10fe17431ae89c749281373c619cbfb8774264cb70b8d0f9d88b2318765869d46488786cddf18d89fc5669005a0189e2eb00b218756843bc86117b21803ec1fe2e264c59a97159194c08a474860452323b061942336dcf1c2864f4460439d2e6c98e3b261132e6cc8640b1b2a09810d9318b1211210d8d0c8076c48a385f5ecb4ac074a16d6f3a488f5e460613d4e68ac87c915d6b3c403d6a3c40aeb41c2b29e2333d6538505a35061c11d8af29fc2825258b00316744251fe5158b00945f94361c1272c48c4824928cadf090b0eb1a0118af26fc2823414e59f623f9bfd6a36c0b03f132fecbf84bf12620bfba74416f6e7c00dfb2761c3fea81af6df000dfb0b9961ff2035c4b03f1237d89f061bec7f440df6370286fd8bb0fe00085dd85f033664617f1b37ec9f01226ad87f081af69f6186fd3120c3fe211cec7f63d85f881bec7f018f0df60fc25383fdad0786fd81f0bcb0bfc9e3c2fe204f0bfb5b8085fd7fb037ecef832d6bd8bf0234ec5f7a19f6ef810231eccfc30df6afb1430d76127c617f1d5cd87f02b6290a086bc5eefc9851cac49a28f6471bfd0425ad8f71582dc5140ca50ef63e8b702a45559a0964634538502873a5d16a13aaaa4f3ccbd5288ab37957acb5a88a62e75af56d201b07dd6037cd3ea29969e65e87c18f03b96eb6ba0be5171fe5020777185cdcd8803b0c2e8c6091105a84d338c0f72c6e2756176e63d8a4501303bb090998162945b26f060e4371ee943b400c5ed3ab6ff89b66d5c5a5fdc3f9ac08c756fe5079f92ae6fd4d0c787f53cd570d787fd3cd5732ef7f7af94ac7fb9f6e7cb5e3fd4f335f39e0fd4f375ff178ff9497af1ef0fe2937beeaf1fe29335f41e0fd536ebecae1fd67bc7c1581f79f71e32b1fef3f63e6ab1fef3fe3e62b09b08c37a36a7c7ef9cf38949f1bc77eeed9fddcb5193eb7cdc6e7be01e0f36cd1f079ba6af83c5fa8cfb326f579dad8f079dedcf079e2b47c9eb21b9fe72c009f67cde5f3b4bd7c9e37da1ac067ea22c067fa2ac0675a6380cfd446f599deac3e531c1c3e53d9013ed3198ecfb406f399da10f099de12f0d95bee5a80d7e0cf6e83b3697683a704acffb0eec3d208589a83a510b0b4879db407d8c9c34e98a7e63bc0eeb042786abe0e2bd300cb00fb796a7e8c759c43011601b61dc6e2c0c1ae700c600b3007e07ab12ed3766376830dd65328eb291a006063069ba72cc8b6a74aeba91a767eec0ff1e6efe411e18870ee874d26c02ec2e91b5c28f34703ffa3e15cdf2b3dcff33ccffb7e52af21873f5f7cfef3d4ac60ccfc901629e7f718a55833cd44382bb7960ffdba9507a3a9f99e0d9e9fbf1decfff97200b261f91ea769664d3393cea9753a627a62da31cd4eac93918f66823de6388efb195cab949527b126fbbeb23c9dbccf626d8296dc30a1aaaec66423c2c9094331ec6c6051549db5ceb0cb91f94a45094df92f9931a135a961577162c39e039a8174a2809f4db352a44566e0a0cc221cafce9c3af2f06a9d5e37bdd7c1a09c19080a0541c15e2f48465134c61f6473f2986634e5eff99a83d2f3dd7cd0b3ddac5e2a4ae7a56e5d7df032012d714255a0076463aac120284fb08374b083726a0c24a3aa89414eb0839a809850d5acb0538db15c58856da1ac0f7e16e13436cd7c65b269a1ec5ee484a2bc1cec8966221d116de6b6967d2aad3ea93578f2a9b54aab4fa6070739a026d8bfa505624251a0d80dc49aa7e25d1d147b624d844283fdc7d79884ae42e2ce0d76469ab135ba4624e20dfb7bb356588dc1a82a7fb4eae20e205cebfbca926bb58c6bb58c6be18085fa34afac5afed06187ece1870e3dc379453822277436ef27d2c1fe4346031ddc61d0c0092600ee3068f0c2205aad730ce5473355286516e198eacf7c4351fef5826c280ab46466d2111d61f64a84d32222b4276b1c1e5c4549c0fe2209c35ccb57624dacf9caa423d6c49a1fb211088d51624351ad9a85328bb5ef2bcbd3e91f857a79e15a3860816be99835908d0c68c29eb436e7cc09896ca3ef89a886fd7b02a58e219ba9ea8765f53f5f953f415f7f445735f6116ba5cc63a5cc57261d9a721314ec9f4b1aaeb5b2544219fa9a5386f50a22af866716cd30946a85b2be13baea188f86a708c757209bcbc1446faa61f9211fa6e16f4a726a1cd3f3296f6241c378de69a238fa4ed5ff6a95e62bb775aa569aed66b94e6b94d75a00f573cc629dd637ea9fba6f789c80ab8b81ebc42cf68bcfd3f85ca759161bfeb41d3e855f7f7c1a96c887c30f678415023338bcb3be5167ad429962b33b0167114e0dc4c47483fd2bf8d59bde6c31827305bdfae0acb785356fa5a8ae53e18c70b0efeb93327b4ff07c8f8b950ae5f79f07d9709f45389f6d9fcf89d37ade136faa8c50074fd17b6eae2decf9708e3233ea14cacf7f9f454aa8ca94c45443551ee945382e9251557d277de65a35ec7f7e26a67a3a7cffb95380e1fd149fd7a1c67fffdd29beaf716762eacde0735f69e5ad5228bb0a06349f9f54ac9136f064a4460d1afb77652f1560e840be7d2a3e57c5fff3e5974f2f15e455f1ab2281f23fcf03bdf9e3c1dab737c5935203153aa1284e36431ccf5f7441136c7187e10218d601acb3798a4bf180dfced5b8f9f33c7af3e3eef04fac1656f9a3c885bec18d469f43d2763ad1fca9e54e7f0805c19b8780787cfae308be5310bc2b3477a54551dc0a8bd55da1cc24174634a31655a9f837ce33231655f5adf194d6185fac4172a171f4ad5028c1cf1e7df1479b2b4e196d0b8d27a54619e2f88ac6b7d3685f7d5e953572d752f263afcfecf734ac6763a2e29067f3c908e67edaef4bf639b1d2c85365e6dd3c9bb7f3b576bed6db1145cdd4ed438e1fd27f04535152b75419930a25f99fcfa71a7f625195ff0c13159f46d286a0bbf81e2b8e4fed388ae328de518ba258239a57d542391ad18c5e2e2594ddd79c920b55e31c7bd4cfe11d2fad1cdda98fb6854551748a23088a20288e9e07c5d1333e0d69cc13abc68735c21a618db0c6e7c7a1e7a37efe288a7b9b67f08f589e8daafc47d3b365cfc199b4f9c4a2317e3eb142908ee253f1a9e7474be9e8e2f81ea7e3f8e2ad308ae2fee97f7d5114f7a3ad4828ea9ffbba85924342553654d52f6acb158ae2be76a1cc27ec6df314d72316fdd0e62bcf16da6ca10d73a0f7c438cdc3af61f30caef17394a9a12201fbe4fb60c9eb437b0a14dd669f552950fae183352ce9434b6de3d2ce18cf56c3dcdf546c372c8a2a3a14a542a328eeb959df001d0aa5533a6b7c8fd4adf8a39dc1b486f8393cb4a21755682adcabe85015131f5e79ee55668d83c69f5e458c86a1f1dec8447e68acccf06c9c67ab3885c6ca0c1596cfe743ca426365060d4abe0af929e487c5a63cb51d5e4979fa335e25e5c3d02833e30ea04c999142bb14fafdc96615276456a5a8d293e168cc674f145569651e9d5854756251159d22f879f233495a958f0a0d73ef2c8ae2beb39599b4b130f7a48daa3ccf3db943de9ee4c6f1562994e3e7112bfb6cd207c3ef71871882cefdec1bf4b3a7a728eec471dc8aabacc267c01ac5091e8669d3d45665f50dbfd94051147def8c406b30fd1518a6bf32f3557d95bf5dd77d2b2fbad219a1ccdf0b16fee8f31d7eb1588daf4ee2778aad08e1e8cacba472aaf1152dc5530da6a7d82886eb4e34a71645951d19e5f7271a3aee381919d15014c5e2cf710787c5b123a32c31e8434fc71d158b2390ee14e8bb53a1f771876371dcd18d027d372af475dc41b138cafca0c1028b538be529daed38b1aee8d637e8cf390299312b1ffa0c3b45fd950f0950aebcc0d0a1beca9d42e5ebafd82966fcca97af98e8765ab1eda994951f2bdfa304664cfd1cd474f3d5ca53b1fb3a4f47ea5e9ea2624c64f3557dfaa29baf549e9e6e2e3169ba4e9f2cddec35f1c53de9e6cf23be5e626ce57277fc149b4f2d4c3fe43490cd27d6c995dd76bfd1576a6c7416c3f4bf97afca17a6af622bcbd6eaf5ec375fd118fa3dae5055c959256a0b971f12a05c41425760c3fe5d90f1e7c78e4a3d5660f47b6ebc392587d273e3e9c79b4ddfdd95d773b7b682743f821ff218bf7b3afaf83c7755c8e71eecac0af9b9fbd0aa909d25df2b7de393fcc71ee28ffff97c37fae0ae4af83f5a95f04995f0eae89e7cf2bbff3cd97139fc10f9dce880893d2f5e21a00f3d6e7c80e73b4b7e8f1198d8d33d79bb3094dd83ef79f206f1fce70621fdf89de756d27bfe2329a5f4dd8f27d3f7dd57fa3ef2c70fb9b147067fcc000e9f1b73f01c32f8e48f971b73a098fb6ea682b474e4e13dc8f1c1f0e66eec56602b30ee2b6757602b2f2625f7796505c98fcf8f48fffc38faf060f1473bfaefeb46991189f4fc68c1f1bb5107f921387e9e9024c99b85783f8ea3fff018ddcfe770d2175acf01c4e28fecf83d8e20f8642786d2f3a1276d90b187f318fff3244992211547db7824f3e79b98c1e48be3f8a0ed96508e9f4950142df9e1371e795ef4a1ed51c713369cbdf75c21b5853f9f471feb2fb2b9891af63ee4fdca6b05097d2f9dc8fcc41ebb0fc307cb0f39eb192ff89c25491de37f7eb63017fe98673028fe98cb17a6df63975fbc413a1f65beef6c27f3dd1e13bbcb24c155bf0f233d19a17fe82e777577379dc9cc39298c524add9dbbdd6aed461997e99837ca90350ce5e3e0f48d7e2884dc16aa11bc5ae777dd247b728d638240a795b7e1a067e3544f9ea29eafac0d4af1ee653a0de90b9ed531393aad8874fe290cdd72b862c761edb8ef3e048d32ddc44e7698f6f7e96e7e556861d1ca289515a5b2be2e0f01db5b582d45ba96d6c7bac20cad0c3def71de79baae03bbd0d3751df87d077e1d48eb0a66778d3ec9f9814cd614e52a342494140965778f324b843db095010fa93f311d7b9ce88794523c6372d5dd41b0fba07c4f444ee4c4285dc59d8f669a7d34118ef82117be58ebf875941945ae082d62abdcd7ff5aaca34cdd2973d5c1f2e0871c128af2bc2337283fcf05c1a762cdbb5f2827f72c3687cf09a92d2cbe694615f075d7343f2ffc289f1bbdfa39ee3a65e0a4ba64c0a414c96a9c8d0cac80b3c8f661cda00b9c4551c0593f9a6946fb6854d579df07065317ad42dd20c4c8111c1081114f2bd54ab6d22df5e2473c20441327353644505183050ae050f4407381fc340cd1840e009820c061baf8cc0f5c5c11c4936e62249c19ad8acfa41a02dc07272610050fcf6a616088059263ba7812403c211bcd76a8d9906880164e0a994a3f72fd08b632b2b9f93c8ad1388920305dfc3da107765c1547163094a30e8ab9568da238282a3c90fffd77a950a94ffef7e4774cb53e46391a116b229428d84716f69146140376110cd8451b767107bb6c86703f795b6663c240a06d4c2f4c5d34ea88ce939d521423acc9d537fc8318f1368ce067165e08f9b9859123c4704212254c9a3811e251ae9f5a04792244f05464f13564e02db0050b5c006587c6c891d6059e060f14f14d84e075d082082ac6c8c212264e72747e781b43fc2c02c56ba0d5c3574163031c8ca2d01c41926402d38a209af82157e8303322634486264e749e4089620a1f3a5005059c30722489922593c80e4f0ce161f4032d80000251941d1c271425eb1b9e68860a90ff58ce763948480207725c677392c1565840c019256641059c0b80b358133b30c4450ba602cea5cecc869a00837080a4f404cf11dc1294e9c5cd259b909b4bb914651ab9d9944d3447dc6cca2623aed36729344c292b5101fb772e29c1d3757329979604b9b9743345704b4d6616b7e4240337977229676e71736966c4cda518344c08496906d8bf3369074f0fdc4cba61274529e2e6126b86e0968c4c2d6e2ee5d211226e2ebdb097905071730926c42575a1614230d217b07f6712130bdc4ccaa42643dc4cc281e26652ce6c5d924e0f97f464d2dc0bdc4cb2617fd20e1a269464ba380fac689850cd15d8bf3389665a7133c9481037935c4d5c129279c52525d1e166520d769292999b49363fdc4cbac13e7232c5cd2319f6518e0f378f661db8a32755dc11140adc3cb2611fed3871f3e836819b49426898909251170d13b2191161e44514378f704677c484871bc5e7d19221178acf23254fdc3caad9e18e9010b9443e8f8e607f91180d1392f9ea8617e12cc249b959a4b372b38806e4aadc263e8b7666dc2cba0df95c009c4538a29b472c273e8f68bc9b47ad79f3c885a226c02624426ce94909ca11b6c4016ba23105a9e199c51626234c2f5c9202154a4a4a42d852939293521136252d8828e1607f2a4aa519ad1483d20ca0b0a41e2c294ae902b674c49690dc4a2cec3f44132517f6d7a1344150aa2175e10b3396f483259172483a4158d293188924c3feb3086986fd354022d5b07f15d646da010f48344e58929109581212120f96d422b9b0fffc00e985fd31408261ff212492cd0dc90ad215b19193510e1076f4640465b4435123d96886fd276b44c3fe3b8c6ad85f8ad1e846c48e8e8c908c94d8d1123b624251a3d7685483fd574636d83f65348ae18c84d02efea32edac59f08232f46345644c38a764439322f5846ae71c4c2fea2e886fdabc826aa617fae03672231dac5454e70c281111c39c201122ca1c4088e30f12a41129f5d5c7091bb1012c4c5c506bc1001122e2eb8c85d0809925d5c6cc00b1120a1810f67ddddddddddddddddddddddddddddddddddddddddddddddddfd7d20e8f17842310c4531013608dbc64e39719e6977f7180ead66bbb15a2e5a637313c391cd6c3756cbf5a2b0971a8af6b3930c67ced80deb6b95aed3eb61a89a971bcaf6b513ad9ce1f0827af76fc678ab5b36a3d56caed70b06aba9b1b1b99975db58edeaee8e691c7c45fb68adbc793138e080030e3828e1ab9acfa6bc39d92e46095fd96e94d5f21a6ed6d4d4d4d4d4f8cd172b714eb2ef268dbe7c3569b4499b34d6d72ae78bbe5e99be64beb2bdd450b49f9d3e2a6bf9eae50585fa3f9dca92cacaef54fe09f52f287fee7e51afc7260e3961db58957ea69ec27c95c3cf20fef3d5e8e7e7124f2456def37d172a69bc4a8a893483adc172430d002040035e0031ef7203e600dfbe7ac0afbe7de580370003f00212f0edab1f9ec7b7af2af03b64be7db5c303f9f61506fec747e0db57403c04be7d6581f7a1071ebe7d45c4ebf0edab215e889f3be58ba941d4b80a3f7f90ef0f83d8cc55a733c68bf97c956a01748ad2cf264c3f041bfc7c513f880571b65f18f18f7ac101899b8f30c27e9ed240068818c20a712f60db53415c202ce0c3adc0a5c0dde1667ac313c8fd717dd8f654042e042e8fb963cadc06d8f614036e8c6d4fe19b696b013753177dc1dc595b5dd52dc0cd3326809b27ce94ddb837dc3c61a959c305c0cdf366869b27cbdeb7d3e52996a97267d8932ddd40b2f15a149edfcd2f38e019533bf6f9a43f8c5e6829922a6376b7f7f7e8c3bb1bf064b8bb4182389de9e6dc226c1bee343afef059fdbe9e312da781ef19dd4685d7e7c32ad2cf771d37ca749f595b96eb4ed5977bad05e03fda274e6b94e3ea2fde6e5477dfe01cb4fd85e7f78bef7ac889a3ad1fda0e835d18caeab14b54c1c2f5c350ac9c57f73ba73f0a01fd14f51d535f54c51de145bf7b9f5c9d5e9d3315c5fdf1cacacc867b06cec719e40f856a09a30651563386be2000f7a9002d53f4ef45ccd9c0fade3dafebca78e19c9211860428bfbe4998dc788d2b498283a793260eabcdd9c273d21d3ce7113c678dde541cee8632594275f09cd4e6e62cce455994264a123c67f79c945277afb5c66ae59ae0e87433cf6b32a1e03939239d91241eec88913995e0d9c2b37b4e4aa9bbd75abb2ec7cbf96a60ceec9e9352eaeeb556cf5b1965e68373dad831714c669263a51fdc2f36f5e9dc87de99001d846d238b688d6b1340ffbeeffb6c14d501283d1c7c5f91d45775813507251315675c391989e3837206c7aaf000bf53f23318b4dfe7d928aa7e2e8aaa9fd716764b71ad60286ddf5796a7d33f0af5f2e2361287744255df4da2b6489983efa30c48bfa04fe90c0eddaaf0f0f7debbd9dd6d14555d14555f64e3293094d9ab929a04d78a04d79d6a04d74a43a3e0fa6eabb5abdf775de6819e67f31539f3929c7d2d5c3f5287aa9aace1fa9f58ca3c551f7c2594600b2b4a94cf6b618d350a652667df27361543dbe743db27b4e5289f7b7908e8f9cfba7fdef71ecfdd7bb7dff779ceb785d25ffcc670e694f343b79ff7d9d4cd3fcf73cfbd0f3defc1ef3ccf3feffb402a94a10dd71975a7ac367246ce3239a336b481e579f781a3587150924fe68cd42169b5a5d532eeb7dea09c0fbedbeffbeedd7eef59f0f3ce1ffc3ea73b74d531e48cd4b1248da2ea572d94ee0aa05fc959a597f442e933116da5060128615fcf9622e473a38f1077640972a112ec3e5dd8759fb0fbb8f243e58365e339ca900d7e2ef8a1af7bb27c92f4bec4654b911616f92d4548b2bac85b8fd4d715caea1f7263e0f96317f07cf1c359b1470a787e38c618ad1283ba6d4e5cab358e4ef41daf950f02bd93ef1f7e481059426006939f197ec2e7843d9e9b5d0c9c4b4c5b8a746d61b5d01469695da16c69c1421878ae0581baf153419f4f98be675ad0cb5419a2f8e5180afd0702813e047d17ba79625088413dee008126c8bacd7728cafd6685b2fa93f663eb13caf1f389a2706ca041e1d8c04a95315dba5baa0c1b58a95baa8c4fb4426903abb242ef7410d20f4916ebe6c66b6a6c369fce798dc1512ccb8fc78296564b913a85d29fbec784aafaabb70457ef06576f7a57acefb9d96960fb8abef75e0dc3f7783eb4550aa5e7f39c1ff7a0c7f58c794d18fac4b0fb1353ad1e08fef7e1e8c37b0ebc4328aef50ea1f8f36ea6b8f415ac5fb220c7954acf3df8a5cf41c71a7e2aca84f13ee45032dc71dfe7bd67dce1792fd57d2a8a0dac0a7ef79ef53c67c1272bb68106e7541913467c8f96483e463753cc7d36b0b0572a5daef4b9f43d9a3e072d79e28b37cca6db837bcea6ca982ede55111ffc8e246bad9f8a3261b8f76eb68165030b77eff1984a13d78e24b9074d5d773a716f02fff3b837bde7b161f23fb62bc8bd09741b1c7296c3a2f87d5fc562e9b3a928d3c57bcf83b67e7e64c71759f1bdf2a7e5c4fa9ec779e2f59c8e957bd2cafc3ff49fafe8876ec5e4e721b5bb333a3194427c86c9db7d57bbfbdc8b1e1b0c7bf7dc0fa9f87bf26f17865288109f850f12c99b5138f5837c57ac32cfc8d5eec5300c9f1b65428ff510b4b3c3a09dd8ab5c579fe33a87eebfebd92c84ebb84bfbc4aaa033a387a610aaf0f09fd55f341aada13573ce09e4a3d128a59402f1dcdd1d4867abb502e1388e0352bb0e88378e0784764c2881cc18cef37dc1ddcf53f3fd7ef5fd298f7afd9601f7b8e34312f69c30b7a9dd5d83f2e449ed5683f2844669adbfdeba9f7bd2ddee4a646cba9f8bf577fd5d77f7dfa2ececdc6e51766cb5f6735dbfd7efed74b72dd684099358ce4c166bc284f644e786e39874314fd6fd1f93eebea9b5eb5adff7ea07fbc1eeee9e94bad7ea79b26e998ca7bbbbfb44a97baddfd78d3ac984dddd08a8a161fa61c8f33ceebf6fa1f95a8c78461ff5a73f4769feaaf538cff3ae87600e5dd79e6fa16969dda837bf3beef8fc375b582d455a5a54e5fde77dacaf6b61b5d04c98aee5bdcf415b8a4c98fa3404f9286fa62d2dec2055f9e1ed7e76efffdebd2af5b9ff7accc1fb79330fefa7f7f37bff169aeb39686e69e10f1c77847ede205fe8f3bce7a1efbeefe3429cdfe05a6778e777b6850664c72fadf8a4adfff9b4b0c8f08629fdf97def7d3fb91ede735785cef73c04f4781fa44eefbf9eefdefcd0e3f9962213a6b1a7c39e372787bd9f2d4526ccb3bcf73cf0fbbcf99e07cfbb03dacab2eee9c8d0af42a1fc9e35dfbb3904c4dccde1610b8baa8ab4b430ad8a39e339a80a21fd9052b29bcedb747e772a12f0be7b201d43838577bb8b05e7a9193cc71d93be97b57e0ee8db9151569c5d0c176307a9c283be7b5df7d941afcfaecffa467f7f0eea2f8871ef2f588dcd4d0ca7e59ac16a2dd70b5663f382fa53f97da7f24fa87f41e1d0f216adc6865372b68be1626c3506a78cc129399c922bb917adc676335938e587cb22aefea982678349e7fc15ac600546bcbaab20ca576f5584c241019f4842f03eb8c350010f3e1177182aa801e8c11d860a5ee0093d1e10c9b461a8a0083e91ba3086a2f0919125498691828a49b8c348410cca1109480c230521c0a7695340239a818511480c524aac74aa318d28388948bc4811e10e03090b9f1a9cf111c7b042c330a4392845d1399150247e83e9bbdbd4ea4930fdea48382698fa8b46a9d76a1467dd6a4e83290dd377772532b40917eb6ca8122f07d3f79c604a6b6c75e766e4bbd62dca0e7d5124b65813264c62393359ac0913da139d1b8e8b7939b219a3ff31a1b4eb683c9ad6f7bd666bd2783c3309a693d53d27a5d4dd6bad3219279f1319f804a4c93c4ec2ee3929a5ee5e6bfd3e907a50989e64c61d1307194cc130fcff1dffe1531b3e1d75844eaa3ca12a4e4547854655eee44f2c5f59f264ed89e5294eac5183734a92fe537c9ed4c1926f6fc7d09bc7174110fc7c2a51379e14f153b75419356ce36e94116bd41f01abee543e91517aa7fa6586923dce897bc1fef279d7b8ae6147f9eac506c7d9a028cf7a40103cc2fb107c8f5dc2f33cef2e01de5cbbafa38fefabf75fc7bd0d8ae2ba23a32471bdfd83284b708f3c483c5d4cc2b651863297d84b7f0a8421014aaf370441320c5b9cfdf9397ffc6fb193193f74b1ea701cd6faf5dd0699eff3aaf478fafe65e4e014dc3f98d9e0d07dfcd8aee3e76355788cf9f3e3cfe0f063f38ec64ad0f74f823e6d4fc7c4e3eb98e3d531f1e77347dc8956c671776719306773155680d3e6991eb30c98ebc4d07e9ed73d787bba7cdeede952ce8cb3f341d87d48eea8efbdf793fb9e651865be6eb6fb274f7c1dfcbe2a442aee5f82c47ddff333d807e5be2f91893b4f5f951e354877874cccdd1ac467c0494b10d6f0343414f9626a7cdbc8600d35ec8c0929c9e6ffa1b1309ca5cff3467f49a4eebd27ae230f920d92455154f72512a9c4228ac052c771f9be534afa928d8f5883ed981ab66368b01d43fafc82bb27bdf75d131ba4f4349ee5fdbb1f348e15ae867e9df1b57e57bfab1d8d6721b17c37e36bfd41921cdc48c0fd83241ee0c492e57e857b1a9f83b2882b760912db2f59168e23558ee3dec6a5aed107fdfae18d1a345c5c5092d87b961a33c6c71d15352305754ba4008835589a1943c32df231347c0d5be41443c305a37e6843a4b092c23e257dc3bf7de520507f1dc8c2fe2c9f3b508b568905d2802dd2d863ac79e2d17f3b2aefffdd6c54451a7bf48c1c667c7d128fee6be9bbfe649e5094f9aa63be43f1ff45b237dbc0ddbb0bcafadeadbf0489eba7a47cb5a44b5d97c8c4dcb78c3a0230030bcb8a7d50d9750e5fb1d45b50e62e86bb265415fb41e3c8f4ed07a197c6e7ae8b81687ca5f1245b9fc536a6f1214a64b14fb2a51cead3f8ff94a72faae26ebecf8d2c57a5c70c7ffffe0c3f471db5e6da5861795b02c08fa30f1acf72894cbc7273fd7f318703c0c655e9717f869fe1de20ff4326a6f13968a52a7b33a92aa12a1a370809fc461ea41a160c1da0fffba52752496f5f8548c54b4c1b8df78c3ee8932e91894b171c7db07cdf5c7fe573b8b5d445517f557a8082acfc9089591e7483703f64be88356cc754aa72fc958c324655346eee5779961ba43b1caa5ab94f515d8f193cfa9e28aafb7abb0f5dc43beee07ec8c4f455ec0c5b52548ae94fb78e3c4c5f5fa42ad3155d700500ae2ca42e368e3aed82126365dd51766217f3d5b47de9e613e9e6b27cf07378632e6441367f60ccf74f56defc91275c759460e75ee6ab0f8c4ef907e1d4834f86fdcbc17c82c1aeea74318a1a42e95ffd3fcf1f664255dfd79befc67c08c0fd75a57f8404e038ae56b0ab62ceac703744a141abc31d060d587896180c1b184fc0c8c11977186014019fc0889960091df5b9d73175d4eb65a9a356991d7447f783068b7e2c66df18712b2b366c9c4e75dce112e8beaf2cebb883ca646fecc828e953aa83eaa02139b137eaf840efc4ee6ecfb747ab615a5bb5956beb73792c8da945ca6cc3e5b7b65aefd1bc5afd72ace7c3aeebba9b6738ee3f9b5132ec75dca92c5d98ba2b07a55f5ae7d5ae725eed3a6e7ea247bb3084fe6d23936878ee94d97b956ee8e2628b101801c107b4686551040b9a2b3c60056ba60a2aa690a20351dcbc26bc219e131e11ef098f892594e040121b10122423718411384af93373d17087c185007087e1aa01fe88d19f59e3287dc845ab455a11b2c8b875c13606ae49410788b9f8fc6df1b90cc1e79311107c46e1f981cf2f78865a7cfe5a9fcb2c3e9f8a7c7e2c68c42b3e7f3897d873c29ec71e14f6bc604fcc53f4a928a5785c51507c7ec14f7c7ec1443ea3b0e78437c46bc263c2bb2df1f953e273c981cfa7243eff063ea3847c7ec141320a89cf9f4f461451fbc0fe2b1b012e0f7ef8122717afb9c56b86e0358dbcc49f20b819353f30b5b8a16cb66e289b59dc50368bdc5036b19834e4bce28aade9812bb6a615576c4dd6155b33555071c5d814578c4971c55807ae188be28a31289eb8f985c8cd28276efe21379f9ab8b96462893bda2871471b0edcd126893bda6ce08e36423eb0f183dcfc72330a899bff889b4f46dc5c16317e60e307367e60e338ceb14787f30c2ee2c397af423098eb05e3e205dbe2050bc10b66e4050381cc57a1ef03377f65793afda38a84323cb1085bb1ef2bcbd3e97fb2c4d68cd8c225153797a7296e3ebd14373f0a15c5cd2fe28dfe68e3abd1cdcb0bea899b514fe4e63f3971f3a91c7273d98478fb98b8f92b97b8b93c2971f3e93970f3a392b819b5819b5f701e6d30fdb1467a1172f30b2ac8cda8cf37ff09899b4fe5113797468cb5af3cfd07161313827d3eb00fec03fbc03eb0cfe717fa5e4c68f67d65793afd8fde452e9274912ed245ba4817f95584f37d65598a70ca2f9f1bb1e8835820168805628158a0cf2fdde886f4a4273de949ef8d6cf44935bef2bcbca050ffa753597afe72797a77c19954d371d58bb85f70fffacc3e345fb93cfd4fcd572f4fff73f355059e3ef9f2950f4f9fbc2167e4cd57403cfdf255de94b3f2067af96a88a70fbaf115114f1f34f355069e3ee8e62b0d3c3da170689c96f50cd536500d794e1aca09803c657346dac8d4455f0ff84c6b32cd9fd90c54f6b999da807ca6372b7e669fdd26fb8d06ac67c03a11960e6129062c15c2d20bd8590bc24e20ecacf154bf05ec6c79aaff077b84a7fa7db00ef0547f052cca53fd3d58c7f1543f0578681a407ed8f6940f1b81fe1c7a8547efb0ed291d2f63db5375468e05d8f6949700db9e3ac1d8f6140e7b805e5995017a00b65f6c7bcac572d643137d006efe6edc5c8abee5e693e86ff0d06cb81925fad4cd2e387b68289bc918492b5925aca48160a01888166261fa352c0dcb6257ac8a9d6153ecc99a6cc992ec674661a2cfac6f387f66d306e7cf2c86e97f6ca633d0d5389dcda0c9b2654a03bdd76786a3c2a30c78debcc42c0376fa144fbff3279eb73fecfee88c329f9dcf8d7e6814f5c475288a92ac5186a4a128fa8942516e5dc635d7d5ae733a3bcfe733eb1bf49bc878454a1e9485737d951edecf9f3708763bbfff28aaddaaf4b841bc39e79c73ceee7ec1d90fb7af42b35968460bcd6aa1992d34bb85661e2b34f35aae0ee6ea6a5c9d8debc61573e1b86a9fade46e27d6b730ed5c229ceec5e26c5837ac180b872563cd58b49bdb0dc7bae15a379ceb867bdd70b09b1a9ba7621f4e293bcd9e86aae151b561ee3373358efa2f37289b7fbd3e33d4cba34e5f7e66deabb6bc182e3413b946acd1cdc8e6bd3eb34abaa18ad54caa8a39e35c114c4079aa3eca5178deea2a7e758481020ed76f5982ebf79001ba2ad1ea1780aa3a8c254870fd5a5f6aebe01ae3b4a4aa5c4f2f85155c6de05abd8bf95f111fd4b9cf41fd43ef3329f3ccb0db915094085697886ea80d07931125712414e5600c014a514c46549950948b48197652e699d9ca0fcd57e4cb53fedf5796a7d33f0af5a17d688dc3c320265f950b4eca7cc5bd77cc6765b3fc617a979865f84a97358ea63028f34824f3ce08b4bb69777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777707a916a8442c17564d102a44230000000001e315002030180c078462a1300e0359b21d14000f76a24a724ea10c8431a694318a18220220000000000000081200eaa783925cc8b116f54a700b934c688af5a58bc9c0854604435c07f68e83e428c0c16090d859095a1b4aa5eda5f0d935ce861c41baabe47d5d9aefc6d139f4020b82b710044fdc28e99c361fde3ad45d154e19ee463940a847658eedd754064271d47fbde75857528fd37d04ca6e6c81658a1f8a36d6e8574954e3ebe759ab4765fa5efa21ed6732cc5c614788e9c70578851d4ff61174cdb2817e3cc9c5fd484395403d8d45cfc4d5ad32df846a2ba10b936909915dd34a519647f7f75f29504114c3e2c90c63034e3eac9ef59e2174936d0f2dc650f71715cef910082803aa56fb1f6a976674b381f39604dff6788b8b2a56460c31fdcc6339baf7b5b8f642a96ebcc1430736bd56eb320468d18086f390d0bfd0f5708661b0223c9ef45af9eb137d38518bb0b9c1fcbac76b1845738327196ed2b917258b36dd570fe30cd007e22904a3b765923bc2b4219bfaa4dbc02aa930baf0b6134c682850026f31307b04d549dc4e1fa467710d73fc5bbe0294deb7cbaa13cb348d6d262ff165c5570f374407130b58c65698fb192fc56f9b59e0a0a6cd73284a2a397b5a8af913010d8f107598cee9ccdff03560b73578b02a44720f626599ca248840e69c6820f88d8ca0b3f3e8a53a3d3d86adc12d790f29ce0e2a453168920fee556ae45fa912415f3affd85641be258c7ec14751c023505acc994b1ab88d6208710c4bb732ef0b1f8f8ade30cf9ba9c42fa0983886637c93338d0373a5a5311570e55d2deb4df4701c92d6df732ebb06b848d09fcebdaa89d9477fd1ae5745b95ddb50707e8374d3168765d5644ad39ea26300b91a3d3d1681320df03c65980e2a415a49b35bc1e484eacc8c2f9085fc522c09c79754cecdac5e8d1889fc58f4ba5d14e568cfc6b5a2ae1875fd0da966d4c3f2a5e2aef8404b378abe8927a56db9c2daac7b9f477b433767e975d248393fc9ba7fa4c5fb9cac968a3b1bde4da134eb29beeb2a947a9e92270904ac66671977ada18708e064433c44458cabde84c2449c2f72614b362f1955481006671213e7745690782dea77844608ee0b223c956c4eeee0d57d04956679895da6748e20815cf10319ca38e1998fa4749f4ec6486f1b18ab95b0a1cc217e6223c50842c8fce95b006edb84cb4a801055357613edaa642ed14be4ccfdb7d6098b6a94c99eaf003e13a5186ddab8c387bdd28b1d4c7cfc1bab430383be007a64a1bf08abcdb73874dcfe7c435964a8c3c468187167868365d50a2f03dfefc5511b6fb093573b77cf87bbbd9cfd847312dde97cb1e5492fed7b60a52d44889c8af0408301c3a2dab28011a65c2e87b2217996a4e160d622553df19129c7c279b7a6a2c990c3d8f3b3a635b95c74588b7b3ea11820dc12c593e2019e0bdab5a6484c26938567727c2f1fe0843ae0423595e9b697df10a6ce46ca0cbdc05f86c28246e61999f7cd41cf8a218a0c75b060a711d7dfc247baef8802ba1cf9fae4c225493abc9892a3dca33243029f254ea05506ca068917397acbeefffd2bfa4f87032cee319613d0be3470aa183431509a1ad004ee78d223c80b4441dbfe3e05fe68a6820aebe3805118e269e6c71da25896f9c2778b642a570a765b005ae3709d52cfd5a7bb140a2ecb15a381a8143c45b443cc355d3f022935f984ce452cb0bc098744a91a47f62747cdf88c9dd67521d50dc539ab04457dca0d7dea6750e1077270b51137d37fe50c5e687179fc86c138ccd49bf90583f7a6598869534a49bd1856782d7d93dd6713f2f3e9f240644db4c76e684b34859d7b1fa418235c4e2d3fa068de93d6b5401fd84e1bef6e271a3a719973eaaf8cd91bddf109256b308fc015319c581d874f35ab47c3c44dcf04f849746545b968583aa4526eb233f2266ba29d075775fd2084151f79fc91b9657c17839c784384e9013fe3afd384bd098e364fa75c5c43d4e7eda6f8fd425eed8e2762ea5624383817d5972996cbea05bf7cc00fbf219eebde7e9c89d5f3836d0d28d33e1b6b4a0f8867cbef1a21cef483d3272fc08125408fc173c86a5e3179b57b56c918bcf8443aecd345bdae0a2c4b1d6ab24de388ca1e314a8fb6f876771dcfaa98544710641e817483638c77e2ca34587441ccfe064461d6481b8036dcff5eed8829229114d329d8f40b50bd03b26e4da738f7eb2afce72b00007cb0297917c509e945db4c52451e38878579b69a1ad0187ef76aacc8c548ead1212c7098046198fb6961592755ca4faa018dd3a1a2c1704d2e6aaafde000f45cc9c5413907e4bd29ed778484cece3d41b8ed845d341f24e6939f41acf48cb6f36bab296262e5dc298cc03214446f53366a80d8a5e0969a05da876e2041a70274082e894fdd09039c90ea6311ed135d399336a04948261402421b30df2721096864830d52986d5b9e2183b8267b840d60e5a30ae0b5400431966009083810cf0d5763005a95ad80325bbb5ea34e567154def40d1956590767ef41b1beb0d9a894dd23e278e70debe7a8a02baebab91a2890e12349d8c35795343cc57de41ef31079a4cc94c0e845c160cf3d016f748a03ed204413d6074bd4018297d51ad56d7a061e462de21ed884d8ef492d64ee3fdfa6733581876a077118c560de57dd0dfb105e92f4c12abe8addf45bee96ee8baf2428bd78832d608f3f2838390c0849569f6b74ee96e40d2452edd4c423e23f961ba6e9a29c98c257a2f0e1ee588b077b47510aa1a362d1a14bd4142c04887032c12a08859a15ffaa6cee5dd35d9a3325d00a1b25b0a2d180c3ffc89a0b286a5556efcff643344be66fb4d3a9b240f67940ea5b522b7c1370c15fd195ca2df85a61831211808f0b7025689458753583956273f4f3fd8c28f60068ee1ab81c0003877b4ec977feb44bfc5f7c451dfb060f1ffab34ef70fda776aa74f06acd45bf9b9bb276635ead6f25f92e1f79aba445ff75e41cc8cba003b8077f64905aa1561d7428fdf03c1a1ee0a62561da016061a8787d5d653e7b01cf04a1fd1fb549c3c84d84d4ff8a715618e200b28c13f727f73edea6dbab461061cb3001a56128797c620a71b4c36b90bb5e8d2bb181bdd13afdf1ca5e66f87d817008e98107c57ee587e84c359f7abb171636076b8c25631c8d907fa6d25a192a85c10825fadcf36f05bea5dd9c4d0cf2439f0a426528117a24ab57007301f4e49281f101bf97cc3349c3968edcbaa01f7c96c5be052b9f48ff59f7f68516b981cb135e29b52ca803eb16f6e30b4e7feba9e4ce8c0d4b19586a8b81ffdbaaf8f175f31a5a2dfeb53030dfb70cc479da02ca634e35330066911374c7427b02c9799de12dae203d61a4a20fae26efb69f577c66a7423e1a0f13c9bdcb4c7633b302d20eceedcbae1b0522b3edb7ac0617c2a13a37cdaa9eac446cd1a3712caa7239544f1eee9d23cf42996027322035970ec22b32821575117c2e8449030090ab1aa61a954c0b42cbe500b1816b4246e20a32205afbd40b8cdecd10de1606012438be4fe2f6d2545932466b2cb8b93fb406c5144584224604dc0a4f9dab9257985bc8b9f25ad1eacfd737e3b604f379528de2a7c7e7c3ffd48cef6b78fdcd1eee62379b32406220896d46044b6821d1f0b434a3af31f669fa32efd614ee8984872dc6a058cc3a53195613847a04cbefe899d6540b116a8cbe5979e82e509d6a9db56a09b2aa60f4d330e676365dab51cbc1e82e04f50105cbc627f60e5fdee81a897fc0e5cbe420e54b11f2fbc42c31f169b125c56ccf59cbe2efd8323586a8fea4bd93cf3daa45c6a3d24545fc4f1bd64ff3cee92f1913897a48ce3b7a46b206a49dda1ce92e8bdb4fa1243404b53899f9df77ca80c162bac62788415c0504871eb029b1d642dffa4f892b9be4eb061642a832dab10a672adae7c24952985c5daed43ad397742d82bc6b13871f1a8da35e358c7d8a1b071c8cf30708712f3e2e7adba40acdfd09f30959b78bc1ca737b9066ddd9888126ffe0304925a805c9a7ce04b703397c237b6355c0047cb4552dc888fe0e31bd57dacaf8f21b2443e85799fea4045d809dc921805ae3ed04a6f5663a7a86d6ecdc6507eb01707b6d3f6ab61c1638a9db5568521adaa73d67735878cfcbe2c9ca3d140f1ad81dc4a913b37f82a93e361ac5afa96542c3e88337fd7cf49a5ea1acb7d4d8babfef792cb880afd3aa4477eeb1a2bd6ab5341b4a6ce598f7026658c00a8efe9dc4e8275e9ea784698210ef173893e5d5c6f8fea7931b4e8584b9ef41575458067076120dcaf636d15c648b21a604e66f4c67ee022fc69c0c82c3527500c47793856d7703474df967076f8ed24ba9154d45dfd414f1752fd400b4478106d04e75cb468bee32a2ac9ed1b408c2cdec5487cef4b7ac814c13e1985e5a44194114dad2fb003b9e6c8da39f5186f2d730d4157fa1f92d41785f226a23441ae43b5a3833269b6e33255981c45ccedd3af73c4ffa87e50903827da4f7d8967eafd789bb82be1efdf13c3be78ff75121cc1cab68ef712f91ebed8dcc58406ba4cdf88a74b6137194ce9391194715e5050669aa6c68c58d152fbb911e897c18b423da60ee8dc40e9c4676cb4a0d687dc5b4621f98714e320df5572a94869e2f188854a931969ac34d3946ac4a2a71a6108285563439504ab6ac4aa63d528c36bd578b898935523cd1c920259d3ab710660c9007dcd1a4b0bec19ceb935463d264a396567d7b8deaff1e08ffe89991c85fdf4bcf76f4a710dcad9c75d88cdcbad87534228f6a1d3dce3948e452c0cbb89ed9e620e1a4197b1fcc7291be9724ac5c13fb647f8c6cc9abd7ac4979408b26c659e77af53be723a4634544f699898874b6720a12fb06e93de58c270255612a3d3a871c396918ef1321175442cd0e44017e555b09c1a4bc86fd1ec629e0e13ee9cbd601db149c61801344d55ac5bc9156524a0258c22c854c4a1b2aab84245cd2de9a54a84a1fa992b124538dc0ae15d44dcadcb18d37146bcb8613e31db9a0848d24c5d1d8c00c7713ccbb876124d1deaaac51d859cad98ee96710a72ad04a01777b47eab8b11016aaf4cbd38682e1ece984d2d060071bcf53cef31a5b28a2c2638ab223053744eaefca4c895e1499380791ebb7bd154c4b9d464513004ae338154fde448b67c0755cb67ae7d1eeacf8228db452f5582eefe0aba6aa1384c4e7f650999c8a2eb622f27e3e14f7c66cbf1118d6e8b8e8f9df82374c8c75ab13d53137a8f4c02b5e46a18d2af6c822b39b3ed0e388d9b010709d25b55e130552149d2013b2334af614a947e45990ac417584283e0e20c10d1b27c3f13df47e4461ea1a71fd45875d6a9131821355d3279c498321fbe3b8fdbd5dae6511ec7aaa37224bddfcb913aa8361f984a0920bcc6675c6a608e0dbfd656192b4ec150baf301ebce1872e050c4e597d61647fff8d66a8b0f908786e37bf4cdf716d6db718592df2fd80d42a9e28b6df0443c42227aa6c4f1853d128ee863feddec4992c1650cdeebd02683382f8d678a13beb5ec48427c23ecfe8a4d341a12559d6d181b86fd28fe6b674aee5bc1a13c132f652df1d3c9f4426f64fef970c5934ce5b0f68a0be9a110f52639463e823679905a749d71e62efce31cc386559120f226cfe62a4099eab7cb1bfad13a4ade2134537736f8034c0a0e20360a693630375815fe24425af1cac7bf4708825456e784cd3a1e5522ecf25a9639d304b11b44bb61b4fcda6148d24e9ace44720ab482ad90160764f959d9c6238a332c21d8c197e9a0a1ef183260badb4c7fe86768c6466a325aa14734b51af0df8419e35b55826d40741c44c55d5582d80b9ab61611569540bcdd8e837dbaaa746274f3b8a7feaab2166751038759558e648064ae934e2f569606e4fb87130dbe19ff71232010263a2792aa5407277da883d3e1cd1a3da1288f0bb77bbeb27aa18396730b567ec8e133836192b5b80a57c327370c7c9e1f1c03e9a91ae13e2bde7ab9462f15f00eb2d61c877b0f9e7ec108eaccb786cbd6979e089427f2561d976337ba4f4ad5868bcb95f000c0919664e8f50aed6fb5752f465a76e1ccb2068efb2a127c7c1c1c9acac109edce24fdc427ec0db328787bae14622e2611e76387d693370409525e7dce42d4f610b209258600b3ae3ebc9d5c358bac8d98605934a5600532e833ea5c5360a0817b537724d8bee104c606c31b6d2a012b99702f7852c5d010e01d3040dca86daa03336f7dd48461cd63686acd438535ba3d3c52dd481d9e35ba73074a73f7f97ac327d9936205abd9b2a915de79d1f1310ba565bbb23503d4e14903d10fddeb74ff05db00b0a789355d5b425e099bc07bccb9f3267ca3e33446947bde0a52c3222143761b169d507ad97117438a697e7b7b8a4b9c4293552fa2dfc73d0351777b71c1f4cb116b56d3a1a92ee27b6afdf83cc132ce1721006c2dd58c1997f139b82aa9fa002b2cdea7b47046620c3ebe2aa91ac80ad677fa633dcba274d2e7d0812b7e80d59e765ccbbe2a4fb45c14f00a1f78bdd71ce9b2d68a733d970254d107aceff4c77a9645e9a4cfa10357fc00ab3dedb8967d559e68b928e0153eb8fecf01999dac3fec74d7ca260e4d44bc2e9f0c2e090c6de614f0b15a2b20da4bb563c6454c0eae4aaa3ec00aaff79a235dd65a71aee752802afa80f59dfe58cfb2289df43974e08a1f60b5a71dd7b2afca132d1705bcc2075eef3547baacb5e25ccfa50055f481fa5f3ed87c62f964d1bbd437733811627a3972507968b8315181c6d55861f13ea585331263f0f15549d54056b0bed31feb5916a5933e870e5cf103acf6b4e35af65579a2e5a28057f8c0ebbde64897b5569cebb914a08a3e50ffcb079b4f2c9f2c7a97fa660e27424c2f470e2a0f0d37262ad0b81a2b2cdea7b47046620c3ebe2aa91ac80ad677fa633dcba274d2e7d0812b7e80d59e765ccbbe2a4fb45c14f00a1f5cffe780cc4ed61f76ba6b65138726225e974f0697048636730af858ad1510eda5da31e32226075725551f6085d77bcd912e6bad38d7732940157da0fe970f369f583e59f42ef5cd1c4e84985e8e1c541e1a6e4c54a071355658bc4f69e18cc4187c7c5552359015ea7ff960f389e59345ef52dfcce14488e9e5c841e5a1e1c644051a5763e53f7f4605967a86b8db7f2d54ae1aca3a13848cc9ff5e26fc5653bcb0e836471934246725aec2c9d9f723ff5250c1d86de758eb959792f53213676e93440ef915cfcbb2f88d8beed4678cc661939b4232f4d774d503ad4fe1e7a79aecd6746791102751c283ee864739d7c689b526cfb892ab55b05ca8fabbc9c30e36138ae7a2a08911a3d3e008b212ef203850ec0ca84f121a358be45560a90870ced6a7b329b8d5f3130f306db5d7f4b45c27f694a48b05ebf41062e80264ec463b441a9d623f872f4048374583cebcdbbe8000b28a4e688bc3816eec3e593db64dbf0782f692b078738c355f5b70778f71ba5d7d0aa5944309fd0254d32faba07d1ac581166c46dda2a180ea39aeac5e34aa729dec4805ce3063d926d5607bdcdbfe7a51bb8f1f6997ebcaf8811240b194b887dbb8070d1770301ae921876a93cfce4e36cbc10f2cc74342fa18077cb6d4efc3c06689752a25aa23630722c1d141fb800a9f0af7d393a12149e730ebcae9f5fd5aaf22b22709a7a8adfd6da6a8b8b8b30dec8bdf7d1ddbabdff7341fba89e2655de630975225780f38405e2dd92983b01e962a255e7c710159ed6cccd4c054b11a410f7cdfb09e5f3e5d76ac85db5a97531f558aec9e2811cf1db85bbf4779e8bb8c16c47b29df7c84522f24d2bd27732b11f46bd91006bc7e95778dd1dcaf2faf3169fc75820893d15f9f63300bf737aaaed1c95f7e2d362e4c2582a70d453fa2ca6ea323cacc60dd80875f36e623e0702bea35250afbacd3da95ce47f59437b9ddb1c0b04824dde93996c6b96c21966523a465ef67b90f5e3f40be8d62a75e7891c438009e9bc302bfe023638824eb81293b09a6742107383653d947bd848dce29fe9aaa51c19923207c205b92c1a15709e5e31cfc400208f048a94c295c29f9bd033b68e653bbcf6edbd2ae956c1f4a701fcadd2769a6d00e52a89e5491c229a0f2013850b66b04865f7555458145bcfad4542451930b76908f5ec81e3a7ab9b8cfbb6f811bb0a5a0c325aa8c6ff431d8e0991c433e0fbd4093588b32bce42339bc4cbd847829206a2a6a2edb478c1dd8cfe20b697d93992c6860aa199dcbb93599888c5bd7c9c30cc51319a1090d684307a18d0df7289b6fd667653a720460b81f48e2aa663d074210555e8da05f112f8df61af7f19aad42eb8d417cb685656b53e1d3519107defcaa4a6a24a1577e2437bfad92cebe1bec3a16182029c402899a0ffa8a084454c79001cd6ced891844100bd174aed2297a1150b51e43d927fe6d64626017288f7783e545a88062534af4591385acd8a69b48ff0651f1e57f7467045a696130b8ccf60018281f351a7326442de4b72251439750d301006285b2a477344325b6b81f6fc0a9d47b031f50d2e096af0055464d6061aefe61272e8b14c60fc8b6210e04581f44073ffd30501988eeb76b1c93bf2a5a18fa6c0f8fe2c7e169848fde7d6493d2e2d1495bde93673f740f4418f5ae332778312000dfe9916fa9ee13f5d3937b9727f3ce6006559f05678f5cf4ec94e7b96ae659a3f2f854f564c1f4ac177a1e359136a183a8cd3ca92ee598500cef80cdce8229e06ca1c989dbc2197fcef170fe4014984fd54ced2b673342ee170c376ad37a1983554f10ef3c8973e8e54b0d9faa891f4b3de4fec02f3e79c5c3c2370d8d240cdaa0918eec0d8cfc70c3211ac131aae2b018a12aba716a93dda791dfe016445ec0a0d23c384ffed6a58bc5408c3ee2de7278031dae6ec1d2d982a207a4fcc9f36e19777e105b8acdf6fa0a975f53a41277e23fb7a3c7d67192aa01bdb037c5eaed2049b633e7b4f347a8852665a6d7e2fdc98abcad01f05094ea9fea0fb8d442d9bb1e8236b5b00b7bd2281a6debcc80cb6b5a826640e5b4afc10ca83a5f3c3b530be7f9c543d2a98585f36267137b6271d3843a011a75f42c91a73d4b9d05e5c7c62d96f51a556797b0f39f5740d36bd5483f010d35acf3cbac13ff41211ad53abbdc5be7f8739ded4b0e9ae3072e0d8cc76d08dd20b093700b3b736e40e5de46dd59840d195e260fb5ba6672a3903fdb571599cca9d788871873a9ab3c85f8d28c8c78a93675ffbfbff312ebfc19519e7959e7079d45ec32baf1c14c24e64a7b19a3b49a8cfde6aa21c75c136719837c1f2a7b6188785ec8b506ca1d49dffae9e68637a3e7bf2bae36da2c57d143aa6c365fe2dbed4f458f256a106921099c898963eff3b8470ce65f2b3d300e77fa6e4a5439449e0e68b8a1ddad5608b434a387cc340539614077810572b7e5ddae6c903888fb27c790de26f13ef440afe61a66cf6aff59443825510db93ec21cc20e8b8a321c4557f6cbb0fda207a3f047a42f77983537f5745e15c1e89dcfac80da89acbf14c4fd1ddfa0747893108cae8eed6af22fb3032ed860c3e5e383a7d2b490fc7ba89e245d3d2d88834bed679c20b58779b0fd0cf02b286886f4e04ff895b37adc0db049c7f16fa16f8ac8fb7f8c8db8bca582adb3aff1e4e6d741e5121c2e337199043492e3e6b4c2a8a1bedac120a3f64e636b09a74645ddcf1834dc4d7db71c00b5ca509816c2fa2caa1166ad252daf6912101dc2365614b1612bb98f4d0ab48d06b77b0b5d082ca5e3f1c508e78d003bc370d821652df4eda49505fef8a662d7870eda1a04f3674345a521b0a2d1483f533275973d2a454f0c392ceac28e31f635f717d3ecb31db734da55f59f9e4202a1da31720edfcbb2e416a15b8b307e3f5b3381a48a11439966480ef01956d50e05bf485cabbae61aa80df0ff292b0f2e0484d1f4ce9a483acba580588b6a46716acfea886f79e4035dc7405aa5f82fa53c266f04d339f1625a8812c4c4124bf81ca2eae2d8ad89b0a3e307f8334e593f50c62089cc854ccb100f74a921899b91411140e3191033d3c9766766dbe7750cea74d3310c8d95ddfccabc02c7c5fff278f1c5e5c082e34aff787f22c850e320b2ed98598e69d11f856366e164be2f168d4121b2a8f607ccf7a479825c7134bf6a9546482c89e0c3cfc42021b973da107900304abf08006335de82bea2f618e8d832a85cfdd513e60da859416e158ef58a789030a3cbe40f97857c84577499c5682a185cf00de6a4ff8d4c60b930b765ce1f967c4fa3e337e540f4913033f2eabf0e1fe6ac88edd68ada5bac5932609d21ec04d2ce755f5f5c49568a334d5b32ebd0cd30a83c0569206d4741b794130fbc9f8a6bc00db7c80755138b433acf8a6c5f53f70195479c5531ab6df990ba65a587c9b86fd0700ea1d32064b2464407e18dd604a6e1419ce1aad74cf47afc9799c5a3401f97f16bb08a7fc00db7fa062d69eb1d329927966952b69073a443b8cadbe75460a8b2e1d68f2e6add4ce7bb0b237a68281fd1766646b13c44d88939093c74d48c624a86b4825d53b0eaa4501a40e6da837c5d012e5e1d38029d9583d6f382bb7713af87ad039c4e01626da84eceb635007cced026127586da1d00dc6ac5c732eab7fbec0e48d53e3d99417e8237a06f32dc44946181cd400e6f15e3c40a706d1f41861cfe16833479a8e63cf35fcec37f37d37cb92a0ad446cdc35bb54eaf9fd879f78abc01c4d2941621bc87372c146870a0efd32df604b5d5447512f123406085af571163208af18d6006c3b0f3a9c88c2144cd75dc9d649426dd20f3f9606d67e118ab6387c125ef8bde37df0d12484dd1409793ab428b1536c73167eb6ab45fdb6096a8731a69e53cd3a5a8072796ac59a438a5820c112370464edf98256a6cbbb0d2fd369be8e252b017e3719e57a7d4d04b6ad3a55d57fd652106449a60a03b34a2f21e1c9f89daad270f9a22e85f927f5a6e8beb65d452ee6a4974de927b6f7bf8d45b4a3d32e136e2592978ea0c3203fca58bdde3330584306fb0402c9aad3be9d68ec9f05acb9e6feb71fac984f73daa7c1ffe0c41257100d77e10510883d8724db57a29d2606392a332cf8895b43ef540d5f19e0c288109e1e377bf561dd67f2e0474a4bbf42c024001c76db8f1b7e153b20eedc67f0e3986503f37fe0c5195e7e1445bac60a7e31ce62187675677d33e3eb1b6a4a216d8c75921ad58c15237e54ba522670cef8ae2f490afbcf204a2634a843e6ad43c3accfcdcdea683427000c2f02ee2e71d42a3298dab2357aa1697b0f222872fdc61499e611702180a0e6f5bda8c3ada403a69c8e3fc8f70fc1a313f5a01f8d35ee89b21ea7f7a4844e414d2d2f9b3dd84d1450c0dec45ecd16a788e9d2a8d0e7b0774fb18d2b30b3aa70e14103705b89e20c812a09a770afcc76922952ccf6ac14826d06fc32fb2258a616aaab895885a9a587ef1d71d22c37ae257377cabd77f5f5db095d1a006a96e5030757d8ba51612bf077aa1c127be0222d0492e9eac9d54202c974ad2ed4da5557a7888bed54aa4a60abfa21b3575fbc5898dd79ad8cf6ebc808777e251e01a4979cc13883ca0c50658bd9d9428e2958eafe5bc8c54e7bac5eb4847ccb84ea2f11aee30a8da0663edfc8892b3ab528a529d92a4402eac340d7d9d057bd34c1fa16f54e0d38f94c8d625c96305d89d5e423de05e78fc4ef11875dbed05ae8cf20dac68210c343c69710781d2fb33bf67228e5e26202f83b07a9a6bde1c122084844a08df22efb6e083b1090e1c01355d6c8521dbb0e0fe603825f7f621c17ed2f560937aef022224ee6228a4947d981f49e13060b04ad163c6831724174a68e57c0ed744b26b4ec7e67b8c58d7e80130b1f083a90e8bfa00d75cc09b3c1424273b2fa59d9f05cce062a87452780115611681d01845aa6898bc41adbe11c7d157631e37d9ae16e3adf20339c79c7528f28b22318dcfc0b8d18197637daf0855410cc037b4c1002519eaa8e8155f5c0aaab387a7346a76e0dde92cc052a8cab8042d3768db45afac78697e958fe1583f182a309408e98736d8c03416992623014715962891755f31b35a387cc40c175a1160eec6c340e410fd9435ed9e84a28758203ccb0060a9472358e8b53144d38d773fbf55b4c2aa9b45bdd7512d7de9f9e0fc98dbd35562518b850bbd0bb4219bff832056ad0f90a3b9fc2c7b093c4d3becef0f4264a540a371554cea7f790a3b28bbdb6302a177b8c2181e09c5a842c3bd504e7eaf3f08f41722cc947de28ade01608625d2ff1080ac2e115e200b159bb7b2c80dd037d5ae2c37e4188843703cf38da5c28bd2439e81d10f94c81344b86854a74c908c769cb53ae28bf23ff0184214450d6bad4718ce37257440b172f0133e4a2db3629f7ccde186195186f32ea47e19c75db9a6d1b99c5dd467ae4ed3474106c29c00d48f3da62e46a06508b10fc479b442077adf68e33597b3b2baef3e00da08a03b9f3def11dfc02c070c18f0d61804da56cefe6e394e409163edf73907fdda1c21ff9c7e5cfb6ec07644b0d71d04633b112c975d1f42b3fcedf9ed453a75acbdf9a828db57fd284c2640eeb976ccb12cc3028bd8f3ab25751a3dbaba2f9fb26405977ae30d2f7e5c3bbba26de88c28dff31657b9ecff047a7036687ea04efab82de6c10999ad65030f7568c63d511700805a8ceb5441ce94c92183ec14e4226b0c34acd7dcbcac7070f9ca2ee5e4018423f41ddbba1d7046674fec79cc94d470f459c35d77609622130e6c6f101274244409b211fc6cac2bb0778440c6998b13736a21d1f0f905d82e6b6e036ef9fe742e8053fc2f15b6620e7ea8a6dabc9e340ee3e9dd88fc4381ad854758abdd480c58866fdd88758c2b698daf5111ef67cc59ea6816034257ecf81d2009248e0d81eb34c3ccf6ca40ec89d7bde6123f7f9b83e832a1e919a0cb0c523942ef9d096e16d7d9714e7f08dead8e5853e631124c023a5e99da36ace6de2901aa49b94cb5a01deceed19a6d6d76a4549b96bf1217227ee5063fd1748839f5e9e61036b916775da0617d4f762a000a1825ce2e938affcedfe9774001d0ff1b4e60e5b98d2073b37a38bbbf67617d0df21d1f17b1d63c730c07d5679c82677e76794e675fc674a7331add765874ea32474c1a16d1c09382bd848e93eab9eb5a01836721c82811a037f330e5cc11e838453d5a32a0831d17b8a94dde27210a025db458201ce24f832675b1fbf71bd84787f7c846e3f62212b04e5b3894a8c92f5dab241186f51e3b958b4f309421e35bc287e937a4b8a93d89db9673386069d6a23017661bb99987ddea1c6cc8eafb58177ab3dcd3902bcfeec81703c8af6b5042884ef0bcdd9183658dabf912d07421a6f200ac34c8cc16b539025addde5aa02e7bae349a79b01ddf69bc8ad528b3f953ac6de0808fe946100ec6b658f555765c4d3f0f36dc35f20123abc7ebf5b461180e30bd21c65f58c9378c1a3429f78ec1d54a356907aa6d61f7a0d2638200f4257ddb799c96cfed6913456e95201421dff067d2077dfdf4417beaef34ce6781073411bba1684f465d9ec43ecb69b2629cdf04442393f93e6b05d170399e63f34f3ffda703cd39302b563395ce40285b11ac7704ced03be053e44e808e9cdb07560e81a45d055a54c60a2953f237aa157b685e67936d7a44003b8d75eb178c2c3678d943c19e19009ea2e46d81745603d58758257c2b7c997ff9d82d9d9003ca274a45a2c4041198f7d22c6fee1878a2865e5e3751afc640e1da112bf284b59b3456a21d51c7c677ff43a6c5b428a4b546b4933886c4e8efc284af5e4a8eb7abc4dd22876940a49d94b5659e98ffc7a302fa0ab6d7fbae2ba1d589ba4da7bfb28e087afe06f4ca9cb18ee8f67becce9bfafae3325ffa99846e62c33638d34f18ad0f1d44fa4384655b859bc2ffa62390033dbe2301b025c187340fabba37a00dca5b7808f1b09f8eb99d6d536955efcac370f2b235078c8e78f6af7b2e92fe36b978223a5688c2f055cc9f6769a0e08ba895e4a9031890f31633d9e54b58b754d1f7627617f02d052a7e9749a9682ecb54da79268147d001fce4cadb76ae2e6160969840083daf30b1efa28bc9a40d8aef64bf23ba7dde063ff8aca1275310e735fbbde6a3a01c0a7273803fa5093c74772d117d75cb1c03dbb010e5939a2c945716fe455634bbcfb0bee6ed39ba01652b607eb936022452e209f3d0568bb22d12494cbbfc1b5cc4ca2b1a39162c608dca8532d0d4078771f5c1bd4aa1463bd46e56b3058acb13dec4e3be22a3226b64d770ade759c324fdfa4a1231fb5b7e232072573da28100667644dc39366f4ee995d7fa96c30c595a648bf2b0157dde760efe0fa01e7120422815249c36169ac6f8932629ccc343508cd26bfc31b4520f98998639133fcd4c3a4b747acdd92f90e0c8e0a052f6904b1d92f29163693032070e174e008855ffd16c5e6e9c1e6e72e33a24ddb608ab0d60d555a81e9f6019d099efed1a99fad9479d3b6de81d7fe0488e442e1bead09054505b9a114bcfdddc5b8f25ba11c8fa63754863c5d22cb7f7eac11dc17438151779b3385f2fe012eaaf403d497a1aaa83f4c65bfb7f3749b0e357b45c4b9e25de22ea6730b1d1b428c0fcb3adc63f6df19095ad270981c7b3cbfd5c7502fc05767e99fcaf0aaa9d90b262fd2028d95cf0008020c86bbde4aa900979f29d18514e5dac38197a46c469ce593b45397d40be60facb9d2a34897f4fbfe6c89d4294750c5fd6addf1a0ea20a77ec75713498d418c3675588900e454ae7865f79b1f1b3c791182ef84b3157611cbbff667162982c993cd5514e590d328713bb1d85ce960794064395ccc314ed5acf1facc3c69ad24a24afd3487e26b5a31144ca08382ba55e5ac9a15e5fd1af627116bdf3d60c8758b194d22e85b6cbc0daa3b1606a1236b1944bc348e892e79268ee3208a5781f60bd1268ada18583aca033ae87713f64d86437fbda16ac02edebba3b4b9b4ef32f8b6341e2d4f6d17d49dd24857a14bcfe1d85701e3138e86e71b1777d61a2d659f49f23f36356e839ddf1ccf86118a8c221298a408480caa521c635540259aef9050177b9033f0a9f30d20f0a34a260b4be45fea55f62fb8312e4f28b0a2fd7517f099caa33f52aadfb6fe291960af597b8b999a8e0e1168b7b12b57a477abd02b8b23bb762a6067b8a6cc57b6a4b0da3583569a0e28f45e17bc8997ba7dcd5335c7e4a739f4945ad094872a0ddc6b4265e21ec44f0949a12625f051f8044a8cd40972bb0a32cf1e420dc620d056530790195cade34d7b8a86f6e6982b2493018c5d1c213513e1a56ce1d4b1859779d0eeec03f9190661e0cb298133d623b796f17f47ec8d58cad2ce05ee7e17b676ff3666a760d1666481543479ae3a68258c130b75110392a0d43c27100f3b9a232416449d7a11be4316cfc52a636b88b05891e645b877aa9f653165537eb6619452e18d54b35309bd0b5c8ae155565e85261b6169386a3ddb934247fa647c48154f02358008903b64f04534912f6f950d763fb606cb1c50e40f5e8dd5885b94af898daa666378da148fa24d28a85e6a462ec92902f7a3ae13096e58d74a528d35ff5f4a9fba7c57fa7e3c0b4441d9d1e5f4b7fe4acb82220cde64d288a8a219bb847d15dc7d0df7c0e1d408d1a50e9b2a6469e5379ac5897ee98999d4c7ff2d98b60717bec349c5737b7e926beeb029bd597fb43ba959b6da5da3f9ebee30d873917d2576d4bc1a6fc3f92c4e2c275a272654b642b616a107d118d48af2c774f85e7fa42a0eefbf2c97b86b38b20795fe87511f16ecf98e697a2e48b405feacab52960f33854c5b34abcf4159f7a89ca35c98de9f92449fa6db94dd6237c3b011604b80a47fccc0cb4bb639f37c126be8ba281ed0c408367af805977fa0018a88d78826996d9b94e0db692ae4081e62f938d4237b5eb888c4f8bc2591593c864d3b31163416e3481faa6d2a300488b4f56df6979ba90f16b456ff2572f4235935ab4fa39ff2f5303afd49bc32789b4d1e5799c299d3d90b9ab40b1c38b3b9d4592a2860912c328c8e514ffc0e5698228ccd5983427d87e4519f7fcb27d64143f3877c3e24fbfc6acf0169a35b7bbe5cd192e2a91d68bbf27749157c7751369a9f3f8b1ffa2c37f3de52e45aef92ae2266540987700e3dc6a7dfcc8b2211b1c1a085b0cfbfedfe80e1caf4756419b982eee91af58dd5327bae7eb8fa690cde97b4f1c58e971b04ab9c885baf7212285a0b4aef200d9aac35d19d4c2a23105305d8aa9ac95ddf23e7ef20e9d86a1eac727292257db7752ba071a430ec77d0c3fccb03008f20a6b0cbd81f8ed8a703f0ee5c24ac4f6d2d5b4edf52b378b11cb30efd134e30c6575db02ddbaa762d546ddee956a9997ab9a744b3f94ff72a01177fbe3ede6db85c7070ce00c9e69d2f877670571090a5dee02f16d7ad0bcbaa60e875c2622036321c9a48f81e27cf7a3f61b5ad160126a26490d1d5feca1cb1ea915e19f824b45dcac3fdfb19e433aa2768550115eb3b3cc4643c295b7092e559abd50a2f717fb17e62da5551ebe760615edf430d6fb25139371da090f478bd600f4e32c7fe1d6302ab44ff2f31e4749aee41f7f6d87f5d6274be83fd319bc045bf38c349ced0db6ce66c6e8f2ba7a0e0bba78346f9208d6284c01ffdee4bd0ad9ac6f55063ad9064fb92e1b39c2479bf16d8d2e9d4edbd2f363c5142e40fcbbdff9dee57807059d355e60f63802727f0883ee09c433dc2bd3b1b27e3d12855963f6df7e7a1fc5cacb68cbcb9101989d7041bf138496bf86235c7b41bdb094d3f5e7fa0570a69d2c59b04f34c39e335b5f9c886b6117934c7beaa4f766f17db01cf00031213c0685e1c3aefee35424004a73250180ab5eed2893c9f8af800b710ca6e63775e03cf5e944eb2088e2d1545122e7fe7c3f6ffeaef039b3885a1e83fa1a8e0e5e27e835730f3bf2948c9518ba5df08432548c70fc9545369964c85ec84d9e061bb6e4d1d607d20d5dc0bcae2260ab9aa01c9f86e03e145912be8b2d8b18646dab1eed1a831276ae34ef317eaceb03cb7cf2c9c71ff341f8c0df5a20e0bf1cdce7f1f1139f7ead07a7b22abcc0951ec5ecfaa0f50995a90801e168071f8c219d5b8965f718ea5a7d71f2b83028ed446dc9bdf980fcf686a98a7da488f2cb635b0d89efe0f8f105d217bc72246822fba4b601315e2d2bab45de92f9ceb65201b1a69c5ab34088daa1e60364e55972f54e5daa7c006ddc732994202cf1a841ccaad27b7165d61062f26abaf2e3479eec7ee334a25c526a5946e7936eeba03f0c42692be04b29d9fc20df07ee775af981ea0b3739b9753add7e091801959e1200791ff82eed2e700d4f0151123448c5a71f04766ac431b55031725ce618269cd0a3ef83373f2d56c87e960ebd1e006191f8fbedf30430a26685663c766f9070c65f2d06f859751fb8396de5c47d1a58465eac2305dbe5d2a55424d530b7331d9e5960aca1cc5d3f8c03ad2e947e825ea9da3f937018a8587d667e00b5cd7c8a740618ff4f8e8c43584c111a986e1575d3858cd8b3090451f9fbf26069f10e1337a63d6b0102c03ad1da936c6e1b3621cba016a0cae63630117930a8349ba1ae1fb30ca610bcb959f60ef28f5f6e761a17b2fd0bc3d5d9a30d474f747e850fdf361ade5f74a6dae058007666585443eaf858c99d33d85488b53635506df929b40210679357967bfa39f3ac8594a5a77d561b2e0f347ffd8b7ea896913b7c1d5379d820f3fa3216683c611ffcadc001b9f5f7c161fad169d2c693970e559c87cd6e2b72c4aea58c03ca22b6c7b91d6b1a47654902adeabcd5cf6ac76b4c560c58d017f5d821b7abe21f78db8a705dd126e2e2e50f43be3cb4824284c13592c6b20d09064a28a132644732c0c37a59d6ca80f5e5668c2029e208fb043c81d4cf40b9297549f76f8730a37f24bf272ff0700a7e17d16ef2ae55983483cca59d66b0f255a1ed0ed4186acb21bf7041eb2db085561c42132801f093d705d4c4d2367f7286025761d2a304e499b703a7c599bd29bc2669d04cc2187e7c595037d015834cd41dacda32b55d8448b2c5979595f43930aab7200cae19f9d97cb5a89509866488da1f17b8d65b85699f943aa7f47660c946df04173367e12c5847f8cca58ba78427281fc2780a5e1fad2dc2bead183c834ce5f3cb9f40063d0cfae7727245646ee36eb347c77c9b7d65acfa9028d46e7790c4e0b565260d669d80f58a96ce0b77b22049e8ddfecb0fcd67ab3faf8aef979467e10904e706fa4ff3d6ce59415d15ea994a555fe44807f3f0b01f92c118348705da1f6daeef86c1bdf25d317d0f0a08fa5e217a9217a76080f1f8e9bf78d6aa64575c237baeea12c491bf9644ad833005a5727eccf57f419f609a93fffb99fe451fdc4d6a7cd81dfe468fd0678b06bcd4250aecdc92ee1762904522ce222ae850841f21b40bf5f0e14468466ba2783e1fc5b2c8fb548b23eeb31d2ad96b92f452bed4f818e8cb406eaecaa8c98c88d1bbc534e5f4b76dcd2352faf819f6f96df30140491a971de2a23467bb6fc3b77b590b2de2e468992c39fb5315548bd159c5d7310e9f49da122aaeeb2f7982755ec09b44b90ff4767a0c674455cddb467a8a898a3f460eb8baa826ba834004d0636105d2ae594435a2bb5084e061ae6ab5a397893b94ab0abccc3260d2d2e41cadff8c6743732c6b35e76ed67d54fbe37f256af1bd7b64e6d19d6df187c3b063839e4ae698d98d8ffba03477483461d287348656c2df11c93936aed88d819e0145291aae2df0e6f989ff2287742c0068817ad67d8e901f068931b3a052849b426aaf04653a548aadd81e2dede22afb3824500043680653a0651dcd9b812a2442e6a1fdfd000c70d5b84aa8fd66538709ae38f17026d6f41e31cb1423627a7a1e73f4f137dea6d813d72d40dcb7f47d2e5cc666f45a107e52c458ec308636689a397a873856664c0ddce8d207533c19b97f85b95d98e69258691a48b2a2ac8d37a02020b03863a80d365fb3faf59f5e8aee6bd733a1b5103cd55744c6f7627a1d74278ecbe05413cd47ad006f2842a9ba906e17af17b532d03726611b797006633132d1da86fe46091a8e2969301ec8de8d43e3f3337d2e9a65b812a8467d30a999a0945adeb35069b4f067a5b4f364e1f937b5d20bf4a49d91cd937e7b97e82b52acd0da959ba7a81a00ab520bdb9566a86cb0f5b9039589d9bd68cf44f4ccd8a2dd917ef76b530acfbc53586267c888ddbc6f0b6b1ef07387f0810afda43ba06b9ef4ded20643b9a242ee1426b7219a9983259315ca2c24dcf0e7c15a48c71cde13d0d4bb1380ca13074647d56b9e86af7dd2b8a6bb520108d3905814374e765c57ca3eac32bad383b5454106cbcef614b02c4ca4824a2d12b1c2c905760ed9b4d20120c472ae99e742eb9ec1ba4a8e8bea3653f784b9b39564158dfff163a6326de2b24ecc74cbf9b14841df10cde47815f8b3cc09f0bd23f238cfc1c205f5cf617608ba790f9b783cb0079c43b238e89e4598ffad3b64227f7404805edc9aada58bba2f641e60540e714063521fc7d78cc3dbef193db6c1017952db1e70116abc01641954fff0d697b8600a12b1571c9d8290d64754c648fe50e0be41a7bfc7a4f691a9c1ec55824ed610b6f3bce1c3827e20bef117c8edc0e3fa81a7674d22a3d9946d8fde412f8fa9476ea15afe70ed65ae0d3a7e18061f7ac1754178ca12cc6a8b8cde65c7791678a87ea80a635257c4fbf0ce2e5be48ffe43d827af2b184a734e3154d0cd91c32fa8547138b1a0b1f0a2b1144523c10e75a989f418742c86d8b7caeccbc02c94f411cfbd2e563e84caab71cb50570ed673bfc4ce4fbba72b492ba63bbc82c0fe8460ee24ab14379ae927437d3e5b410cb01dd1ed590bd836f8502dd48c990618274aa39586331cf1c457d7a00f0d59a0780b5a652628ec3f787110e603862ccc30d828750a1637c720c1404f24a44faeff7d079429bdf214c802f527f14ac0d36ebdf1bed1c9ae78b4aedbac82f73c4a10a530168b24670801bafe2cf770d78ac316d8a05c2f6c84a213376e3fd8a9efb1de313a8101910a4412e1e7576d630954928f1d4209854f40a8477d65bd4ac730291488acb127504b44fc4fbfc1a7654acefc6a4f2066e66cfd3b1684512a0dba98e8fc99d73c357e5bbf6863b3ac156807a9aff99b34463c392e282a01bcec42d0344c9b0551b8c1edb538b97e83d26001165da7d8d141e6d3494ff6d009d50725dd54133c6c25058a2b611d576692ee2b63c0771e9f0400c944d7459a061858a5ed477c59a1b12b8d4e6d2378c711c0ab6f538aaea99dfc682a849f27b553b5ca139547a359b9c17878056c1acb62e6d09a72a9c7e83c73ddac93f72d7718d83cd441dc43c92379fd8fec9f369db74d20d0c8c17831a0fdb4163e1ab237c0d1c2eb4c259ad24e8740c1870b5ac20d1df7342b104bb36e99184eff5c787348a704884a03d3b789114922a5eb15c13b042d194df13440aee0e5017c9ee8f7a33f05d41da6f81a2dc3fb9faabba0d13b30983b12be0b6a78b89fb2eb31cb6317e443829c16c1ba3c26d7936ec84de4878b9b0e8f27daf15037170e838c624e8a3f836f9e06b76c44b8151159c5d50dc06e323e741d0665b544ec1e763fe8c17866b5f89086415f760630c666340b8b1a92c41a813177f96fa602f0c540e667bd745c476018c4cf56daa9a360908816d8fa54b10416436c3ac5123ef6455ddd0da899427173e26d9dc5609ac944d1421384f568ad67be10ef6d07340fe644d00236c24c68a69b01263ef32e63aa3046c09fce533dde600c037eca4346aeee56065475660ac02c2ecf46518b3cbdf41b1ad27e27bb4129cb1cf5a052d3e61c7a7d668455f90d2a483cc95c644ea1f55d5fa75009da88275776a402fddd46eb3da3611e8cd0faa1d89d3d254d97e9485119ec603ad5539cbf0c817dde61e60d1aeedb4990a878e885b105c74d261b986b7c82377c26b2ed5b2207bc3876c431a742fb0a0c72c832af04644c53c6bdf2c90b04dc7ed58b22e79c6ebd25a5039905d5ca2fe4fcda193b2a93b48813e70c50b116fe6099d8a444e77371aa6309db97a2a2bb55fb050379d3d5289bc63fc020d2080fd8af56a36b057b8bb09a28e6b3cde1470df4f392cbdc8afe63fb2c948f80e3b7f7f435cf0f6596fc706dd89288ac714e0b7ef75eef9642f1ac96d4032aac6a9d6a3f9f0eac5bd220d37b0691fb3be586cfdc1020d762f47d9a718b291e0345353c93d4da9b51a822567ca88c3e33c0acde75d9b546cf4d67515eb4f2b0b1654f77ae96abeac24bff92cb9f6b6747f13623dbab70a9a659bbed322a39c9cdce93446f1ab49b7537bf23b5b5b5613e0bad31507f3b3168b442c607fb0dbe7cf5d3710be9bc6a12c054e4c49c01a3145a85fd7af4bfb6dc633b019abe881f2ab0411569363a68749b8e3acfba475b85f003b88c1cb5b6e044dd29dd034f15f75cfc8b04638e620bd66f72423700892040c656f2246185d4c5d04638d3b017309df39c670a47ca8941c8e3339f19cf43abe160bacbf8d173ec4e9554bc3ec145fa4b4871660a478c55e926c9096a993bb4a660c414a621b3d8565758e925d2d0ab574baedf7756f117bd6492089cd058601f9f2346769f1e123ec3880a9ed562d39cf36212ab53ddd478dd5e4be0aa7a4af6da9a1e90c9760f7976c2346e3569a1c0aa17711b66400b6a4208bad751693b87c3b7929ec0c058433f4b4a91780c7377239214f5a07cbb5642c1a792491780d97162af43d5927506771e6013680d8153fb4c93e7adad0fe3a79b807641e3694dd000e29078734ffe50a6bb06bff25cdeb64290c420b5b76a6ae72110a4caeabde753a2efc3ad32173c0bf60b84a935b5def787aed08d2f4ec75bcaec4b1025860d1c7367ee08271daf49764a62f12f6686eb01881b94e83a22f5826957f62582ed14e4d19c007cef8e312186b5d1bd966f59c8a65a56adffc526d1a06028d28c5dbe291ca0a9de084725e5f262ee3dd615b4b0a797a5d813750a325e7abc571cfa84e72d7e96ec198aa28ee9efc3d01383c7cc7aee117b4394eed94bc3d1f57abd2381e2987ac0189f0baa0e23a631846839bdaddb697e4ae5e79dff770c49a9636223fa8dbe8b2703bd730604af7a437520781fc9ecf3f2c77890ac9d3709fa12b99858d5785e38092ba965122d8e071a4750b2bc2e253b08c902304780f8040acfd01a2afe0f4000a4eebc4da7e838a158f255021a29f855a738f5b43ca7ece0342e8a4259bd2431a2265bb46970e16f6b72e37cb4534b6e13c8c136cd54631b8666075bb7a6b7e7f834800eb380c6dd030198a6a442ed974697271fc06011d1468d098b93c0f2327f6a030569367a83f9824e292a7bb3e3d5baa53bc408c3b70583464dc8023704b4dd3650be1b9201008cbfc50f94d958d5d2641c0ee6a1eb30dbd035f69add83b64025aecd8158051a3c5c3b1163e1b40b89333ee14c27ad4c10e8db4e1eb5844e5a644ac6daee1a876e627d7163a6e941b59ff6260a429bf01cdff912f1f9a1b56ce89cad8905746e3eb73aaa33fabdba582e49cff51e1c690c6203c246b02ada9baa0d58f2fdb367fa710b982ac0d146af92dc85a367e241ada40cf593c99c989b285de88b810a44b0a0e45fc59da34ec0a808a2634e618a29e715f5345539d55edeaf7db4c754693d29462201b9e3950858d7fc4394840ff04fe63a75def7fa1f464817b223e0e67a1bd483cb9006649ae4581b509c06e378072d98bc9c3b5a7c01071878a01048706085320b1e9ee6836137bee51d018105a7da87384407619a52c806a66e5618bc0097560c0dfb7adbe1091ee4eddbc6b61d2ce06650540c299f4d46f667d5f83098b9c022505a57059421ced88a485fc03a7826823dc5300a7a78bcf37d069478384472cac0c02cd67c38f87dc160078091913e08f5abbc7fa55b648a3b2643530cdedcb9d05da5ec6d365d5e0483a044065bf1810b5ef89ba25dc6971ec41e343e23bed627e3292b1199b46b3f98c9516923c338804e5a525e828b684924ead05b030a2e26fb5600ff486068056c654b3b0f70d8b6bff66c0ee32f7503342aa0a5cd2b7f5fcc81c4a3f46a9e2dd40495709ddab81478a5f001206b28cfacb49195be0f4140025e0a7b6375d4ba245f9a9a80c53f97d1070e50b376a1413c4add6c649c4e0bbaa4aca39ec930e482ff1ea36a0757cc6c20673bb352944a1a27696a6da2726e94134f36720473092cb6f0324cce185b324ac229de4d2ab14a70a13739a1c890bdf6ba1c7e35b5229449330722e35c299366d43af6d40e566f9a7fea1cc9892128dff49806755e06d93a26f1a988ea5cb7167933d0c7e96a116a47bb21af17399d5c51b5cbb4418b60ca89d776af3249d20df60f38f43af381c12a30e323636a2429359aee60a16161983e76a22cbb5825d1687cbe64add3f817cbfd01e1504b4ac3c79d8aba682bb63acfb4b5f4cb627b74a7c89bb7c07e38f8c61ae2db674f710f3d1a1356e2a3aa4089398e86611cef0117821cbd38488a308da53193173de6c601d38b891b825ed244fef6c6b1f3a1dfd86e4c00109ba0cc9d3482813188f657da66e85f45549d4188fb919e86f89fee77eba431220ae6e9360a28471aea75dd9da2892bddff49636f9481347afcc12d69a15fe20c5e95e6b017512705181f1451098a77c07ea85877b85fa6fb4e06af6af660ff859ebeea6280d147613d21bdbe91f1d34d2c6b06f2bd469451d60522ec448f18d4bd8ab700e621488398163960255bfe5f561c101d1556697962111b482298ea895f9d7be0fb84fe5fa2b3709195ec99db1482cb3caaf94dc4f5881dda33134a70400fda97e3cd5a453559cb3f207c50b91162bd3903ef4a333cdeaa752801f347f090d4434c1b97a75fae63074ea4b1e5cd93e599138855c899aa6ceac918662bb584d8cf06211cec2b927b2918c2827ce6653ecc6d81b5f49ee1c753858c2c8e382810a58504603d08c4b88b78c23ce5ecb98d740a5ca5180a480224d1baf97b2bfeebeff0b2adce55446955ce0b1b9073e84753da60556901ce6cd6ffbca803ad585a42c3532c1b494a2c1f8b6adac0627e6eb1b7823f98106486da9cb96608bf9f2709eb88cd38d1210a955006ca2c3d83bbd833a85ccf5f0221f2f9afbf8c907044f213da16122190059c4a7ec8df7d26898047895154b125ac7eb430ceb58bcff24b58eb1431bf000305720c323e6f97887966a04556fe73b5e3b8d05ceead3dc8c712bc387083c96754210fd50a2820d686d62a4df6d29d1de784ac040d84bfe48cce80f0c3466b01fa177dc7b8efaebe4e569bebf780cfcaa66f254c15f23e265d630c76b5cae029de0b9c963a8e01d2800924837b989b32a5245bf31e2ca92de55894c4982e30d5188082baad63235a7cf573642c78476bfaa08d3703d7a17251b123b4dd10595e20f09b5bde5429791bd49ef044e7f1b28a3badfa987ff5e94eb2be9ad6b783a7ebabde0477a5169561c5930e1b375616d122eb3be7188c93232cb9faf4158e59be2122552b05a547fd1e9fbbee673ce39ebe979a635038ee22fad68e3e8003d247d0d217349bbe45e0c828d04b9fe392be99da14d0d773ecf3a55e7dc6591fe8d953eb23bd456b5d01a5f8177f7bf80dfa330d773cf13ec9f8f9fec9c31d66a3e7963fbe7717f4f8093d290ebdd744cfa9456ff44b6ac7fc64952bd096efbedecfb74d53a7f79025bfd0d577fae6e35a7cd2de7b8fb5e707b2c6c49f53d037989fa7b3978f225f9f6f1c743d279e37d43075e14f84defbec6d7d6c3b9fc41bdf0bfa9e57d495c4d82f1f7bd04c65cc35f231dd5b276051ef9bd84dd2f33c57c0f133f28d128225e91b8b9cc8a7fbaecbf8293e1cf2123ec93400002024b59e4d071f319a9ea6cb4cc59b200e2bfa2345177eb845f058747b106d275c4a34ff2714a4ac79da48f00bf1cb78bb56909ca2e6b6b57c9362a19f013fdf840feadbe3d3410993cb0429405f1f7b312c9ab256c1a2ac3d5d380a296122f450b7ebbe10f8500860bf7db4bfb50bbff0922899484cbd414fd35806b3e13416e5ae57ce4c04dc54d0830791e0e049335a3a9e4146de2cc13187a03b983ed4e8b79cc1a131026d0ebd6a8fe551ff694e680c4153fd17a83c58bd3f2e60c96a1563ce86bae7d23f1eb74dfd7605b0146faaf3adf8bc689773e167018e3398726209e210f70038cfe426977a503bf4edc9dff8a5e638cc737da1fb9ea583c5d3f80ffd61177094d2d99d3bd4443b6b70779477b081971bf194913725f3940819dd02127a93a9c721f63adcfb037cd08be1137d575aabae3f91dbd937f2fcaf05f29db61899d47e2dfdfdec3f5802cc2b03aa4414c59a3c827a6bf5aa056fc51509613df4e4c2196b34b41c45db71f2f745ac5c998f8a7deb5ceb2eba2c1eee9ead180048df1542f8df08c3e2ed535cccbe20455c167c44f19ca9a4f37af397abed1e63a43468d0150571995d0ec208f46dadd92cc023487bb1b4cecf216d3660ba8e7391bc236d9825e8e07c25d2c41a1f10393c26cd0969303738e4b54e89101750354eb982e09251756353550eaca2e63eb2c1c69b5506108effe1b062e51a30d68d276d08c3b806ea66e3a11bb94b060f80aab2b06a3c319f79483606766ea936aa11ac4837ee9b349bc19129bb8f0de9d7c6cfba62189f6a6c4b8ba8fe28c6165b34d0c456fea1e8a3c7d60c7647b34f0e808ab67240031fd81c8725c125982191eee72f178703ca31cc8911be7de3e05e7e00cac3eb6e837337a4787947ab810d56afe8f1af14a3647a517b7c6e3341495011b637c6cd91c1da47214517e6a70ac3af547512d1a31af805c950ab60c663b5681721df8447f5054baaa65b841228544a42ae41ea382c98de95ac6ac8d89b6aaf40b86cda5f041b1522232d3048b645c1372dc878b8e2a14185f7b48c49ecc59cf9454cf64b410663a59911f056b402d17d2f36d4a82e723bbcbac5806d62c792952482e32cbe4e8385871fdfc8ccd452bab7d8556e81df77ae34f0cf84fc7b553ea4c54b61a55705c2e2fd3d868bac900d97a502278c8ac301330e4fc8b589097e0a9d96237afe58b27ac6d3dc32017471b058ad0c1929146d1f68126c3124d40cd3b8ce89fe4a826b6dfa671e669d491f33bc1e6bb4e13481d67a8793e1f54a50e2ca0dae1356fd446236792d4ca131af19ad30fc62ee3e8d7bc6f410ee1cc26a4c1d73cedd9d608fd189a082c8645026244c998da88ba496269c159ecaad3880aa5e9cacdcc83a5e7c7109904645422e81bf47f03b8f6bc510ebddd9c8d1a905b4d864258d44617bf4598851534395f3654e9f2abff9055c6bf2bc8f6a098d459d030fdaf25e95fe6ef12b62554a2766433508378154a1f159802414d4801a6ab48123a88b1b9f0adbd9508c282835264371303e86514c1c3445b9a241272e7d2322695ac9759a6980962127045b3626ca59d4b890930f4ff15be4e1fcac590be4240e757d6893b284d73065a13776fd288843a0198dfddc34091ff4ed733d6d01b89db5d44ca61a81c06b7788bd745e195d02c2d35d5183bc4a4e715d2e9bf5c1888935e22eced9f7f9e176f01349771adda6be0acbf68435f760be957521fcec2ee9bd3703e366e03f21a3072a96d033a81eeee238f0546b742d3dd7be9d95ed0db79216a9864ea59c3b3076aede77e30a8b3e71a316d0d8e5d996d93773def1f23868cfc88286c723aaab41e9920c94888008229a576abd018a00feeee37853e4a3700c1fd21171f7c2d227977ee01a0cde8d9866b77b3399f5bcb758e6fc620bcb9ef35644c66764a2fcb9a80a1e06d2de29fecb081dcb9815dd0f4a59901b9df463103bef6866398c31604f727d843b19575178d8dfdf2d38d6aa7be7d881fd617132d687f975e1121b357cd9452465a6d2c93eb18b57421e0b14513baf8466420c9b38a85bf424dfa4e582ddc1dcc3d053eb54792d1c635d708147e4b50710b5eff6e0b28d4cd18a71adb0b386a73fbc5f9d4273f5d3d1e56503a0d60a7adbd003d9eecf0871a45776aa00f745e9aba05c3ee95bec6946c3f605630f8e5042de83e0be9c7e538d22dd184baf71da5264e08e553491a9489ea7d7f23dea95b1275d5c4418a01f923ea2a89fc6b52568a580f295fda99857cce4ee5caefa5753ca1710ebd4ae06cd2095c16b2bceafa17ca04313710f2f433cc1bf1059b8a52c0f5b1b4881038da545012e7ea469f066bbe465994bf525f88b37335669ea782b1e05a9b92fdbe4080e710aa226a91df45ba69020db5096169b32f4c469d4c0f12654f5be93ed7c7a6c96e585e2b897855b20e093b28bf4a079bdbb9e66e91ac4ae811300c9a0f3e521efe42a338c8703cd76982034eb189acbc62361af7405c3f61e36fc07962b3b3833d3046ed77a4582b8a51a848bc6572e68cfdb9309955e7f42de508692872c4926b8e69a7187ab71062b89079cc7e74b0bc0e8bde1e30deeb70da141db6f31772488ead129a706424ffbc4e68f8c2d36b5e8b9ae2b31077735fa67540e405e08b46433d7d451b1436b107400600b958c280f64df11bfdda356c9a3bf6147706657468fb8beaf06904ec9951431a4b9af90b89a20f53a903ef547f01d89e420f1ca7e7c2235329c75a4190167afa4c7a8e39069d2983bd6be9eb223643337ae0aac186aa77f5e7cd717a98e994c4e269850ec9ed070f1df74ec7ffd53fa254be061afa26903cfcd5fb1d2bda3886ffe7f03cc5dbf58a067313a5d843e01056a640f8547d67e8f092247991eadaa7dfeb64a12d5d06a42708e5c7f87e3a6cd6c33980c3a8bfd03814fd2ccac3c2e0fc4e3c04d7ec7dca8c88be153b5eb0b4e559a212bf49e206538423eef4ae41f0f6b3182c0a58c2c1b7de41fb9da84b17f25732a34df14b805a242ca0917983c1e364dec1274dd4f2cd6e132a0ebb5972e9530e490a6be7d3deb16ef07f04df5bbaf79c0908fcb9664392540bea87d7e73d3c8ccc2e1cd577ab68eb7f293cd8c302968b50444b1ff0ee97fd8845e58b184fb4721f6ef46b121d2db06ebdb4bbec5447a8682fdb22f6df2094001889313d9fa7e4090f2338db0efdff06f510b9d291408878882c6f57431987cc5a931430e6f24942e1a60fa6f9dc2ba0c1c40a8f15ec56724a6ef955dfb9252077a19661e41380c6bb4ef435094b8e9314862a2a251525ad82e6002c48544d01828ba32496a3edf791b7b225e6ae16746df1a98e596d607c720ed1e1c78732b43e10aad657965cc8c502edc3b4ce932f093af16db9a588a8c97342848f27adbf6492ae6b4919ab617c22191071ad022f4abdfd361e9b843cd95207c166539f68831e33f202c343d86ff0e3930615ba522b73d89ed29b4c6ae20764221f519419a54b453c4d1276500e94d0117c5997739d01ade73b6f1b6225c82481d94a0880bee5d2a9118d14295abea10d0a7ae4a760e48b74c1b314083a29522748258d7dfdc350eed5fd96b70f6fee62de6ecf8ca6b69c879b65a52bf11a0b4e92389c612c0ac25fa16e53081f622af84f2942208ad1edaf6799b7e4fd73e255fdef41264261dfc6f0cd1484e7e5999756208bd905ff3ba8f55fbba1571b45021ff178e44ee6439ed601feb37cba3f4d7bf22b3dd25037fd8fa26484004d3aba2883c6ad00b82060119e815c61342a04fa15a43cf3c748dfa3aa587f175105c75c20403291c8e1e75f05eb291a38d0de6921c93af5f0542e6e2c6fd09e71b7a86ac8920d5d4e2eae19dba90c7b0c466f34dbfe3f12841e104bc9ea159626a0b5ffca717bf0cca474d536868c8d7cb22725ab186900ac40589691cbcc22dc96e1f8154220d3dcb186a244b14934d49b10885773a9b3ebd7396a05f5c2bca700bb5649e7a3b3b97a0cb5cd77b5b0311cdac2a20346975a8c4add1dba2ea0b7a6b8a40b3f5120f5ea159eb04786efde4d65118fc086f4a5457bd0d0576f25dc047cebd70e51cf0eae4e96ce38c2bb0c931f7f460cd9642e57275e77e4366368627677ab19c30fe671a019049f705f93f50d77f322113c9c3112336167dcbc89ebbe9d1262a8de74ee34250a586e1dcd53d29742ce3e6b014b4372a953731f3168505354bd01e21e65a25356ba495de44e0507a784a8fa07b23524ae69a9da5c254f584a37db1f62b015dce38dd851f78fbb84d0c3d574eb981c740bd5147b64ccd06e1058ed8bdbbdde03fa58700a6b0068e8b41e5e873a9eda7ab3079dcec000ee19baf98ae52d19c9d412315a77531518d5a9c6978e36b6128788860671838717d7a8b91b0b3b1ee563b26f88518acaa9cbd1e71ec55563bf7744d46d7c302c78278b736998d93c25c93f55a2e0ea32f280b82a59a2b9cc161c65a507822012fffb6c3203072ba727081e54f1bbb6be3ad2e3e7ad5c4a5f3f0cdf5e103a10a74e187e86381c8a344ad6d8dc357c8c60de518e2150dd8610d19dca38461bca289d84b5e01b8443e77ba2a966f26f7c0aedfbc1e2a60c84dde040db9cd9af27c76c9c46615e912d6f097cdd4ae016031578668a388b3c4c808c9d8737a03c6a5fcb3bcecc886baf314be36dc049bd37d85c5f94e75f340b4621094f490e04ca55de39be99944767df5d262ed0899f3a137717ae986dba5bbeb2fe115d2f1b614e1d852ec915de1af4a731f5c0e37ec7a7987a2718798278df804356d85c0064ba127ef49b4347c34913ef0268d7cd8a7ce9ad7f98eb2b1235ec8959b9b0b6db6c69a79a1980c5607f824da17510b1d5a639242c597a4ea6149761b89d622a61c766412d806785f4eb27c8ca408317019decaba9111f1bd493231f6552a04b1acb774b3e5bb375f9342cdb50013817bcb3261fe7a09f9b6bc67b81de49238f5dbf7f65aa6b16d43539ed8353390d7a08d82df154e703ae40a48f222f64fcaabe8d85b80e0233efdedf2a3ab50dfdf2ff88f6415965e8bc941d7a332238f46f0640a681015b17b0debca49ff114c6561dd9279a6b0bf9295a40e24ddc6c8b91bc6c5fab96347318e6fc0159b9b0725da829e24d37c0f19398be8344838d06635fe9962fd5a38e713636bb204c0fc628addf3b84f5459478e513fd3f8205ed439a288526c95bf850cc166d1039688d10a3ed14fe0923e85192dddcd6fc131c31c058c10f4c3bcbdbc27651bd3f570da1faffa4399d4a501114744376100c2f5723784d44d46e2edacb9f0bbda283d64858050fcba7323b776896b118b20dc07ad610491d29410a421540dac6f2227ad232ee132a2f3ccfada0d25d0eb3cbef4c6ef7b68b357c632164bab0e584c89ebdb7570d5e223ed6e1531da2ac84f9c415539a487d0062e97abf7e44d8874675d327616e55954edc4e96eb2ae3ae1b0d37453dbf0c868d5d5c1b08b5e685a9a00467ad53bb94d2bf05159a4527ee922fde35553c74ae277d11dac9f9f2adaf18316231cd394db5c34c236adfffddbe67ad53f93e2953da2679f45d8dd2ef6aed170559b48a650d1ae683295f298dad7657a87ae49f7a420531d2d65664de6248c2cfc93bee46ca884e1c2e18d299f1c679729d328dbe2e554bcbaa48f4c01c7d79adb1636986604421450b0984397a4c252f57f1cab05ff38cd5cb8e4eae7cfc919c5dc74013f4b6b32227d91b708f81ec5427b6df1bf45375247e233e95d35e56b56388a771adc9ee2057a2998f69b6768e8b6c7cbe848c09d0a32a450737de423a1e298e05ccd1ebc9ac3114a2d708e48a21066d737012ac4312c9d5948f375cc996f67ba0ff9c7163b6296d45a938a38944f5675c4528feae9bb66734c41ebf336770c121c0529a410a08d03c8bb05b5f1841570ac56f3d15960ce7e18b82736417348c741af45bf00117d3f61d934f5a0b2ba065bf70bcf701a2379f5b4ab0911d9f622ae615f36bb85889aa6a9579df08670cf32642260276765b1efa3161e49e80b4d7c72619f9d65063a7a29b7ad9af18826c49d9bdd108401006b19f8fc1df20be2be1de6b1d481b68c8eebd7dc00b9740d7b110c1b9c282c1a4113d223991bcf9f2d1630c6141681f8d79e056e7b328a546c8da54477772879f705597c20857d6ef094996a20b873fa837fb15a80081ff11c7063f58f2032429498cfa1dcf664d006084170dad90eaaaaf1d908bb51b94935d87e3f4c1a0770988459fee53331d441e77430a19f7528591c5eb0a4ae39d7b37dbd87abfa402a4463c1f6dff8f3b0fbcaecd1ea153eff8f1727db6227fc374f68fbf2889de93844a1c54ae09420c6e64e453ffc80149c3d99ba98013fd8890d521b60861ddf5c8d7ef7f12191925bfaa5aa5cb7bbf145c1593349dd26c95fc5ce2c78771570a2ba9c05260a3f8db0dccf32220a47061231d6312a19457c5dc552b31090e156db4b987c6b0ec59cd6f2aa09f8be72edf59ee4ee87d481f092d7a20d9b06f309f98574ad1aab78a080b0b86e4b88a95a0b0de65b32d80c1565ba415960b1dfeb6c8a9ef01cce47ad7d503d69f56938a81b4577a1080646d5bf05a95f6fe80b9631117dba983a2099829bc7d3e8bebaf41e533ce76f465d327a8674302577a6c6c665114d8032c2cf0aa687b19911c8c3aa3bf29928a3c16fc80896ea15a9d188410c9834ba7d86a75621a0d13da8a2c84a30b1a881244e3fb249f0ee5460637617c018b4cd482198fe3f20c5f9d2ed059c03537ff118d02e9c1f6053361a506ce348a775eb55f4b8fff79112b4c9763a58fba07645fd942f4e31f4c50cd235f08fd05cbd6b25191f569272a121ceb70dd0f1822178fcf5500edc80a320dba4ca885e5df37c51a400b05951804fe61117c22119d1c3656e01d45b62a36c1397c55db796f8ae37fda39c18dddf9a37d411755cf0013b6c8ab0fe8e784f00ccf8620d4a1974d4567d3bccf54bd6687c344583d1ad7cb541b222959e3f7023c509e1bb64f1a688544156f5e3181828cd44661f07d472c39a049962dc240402a0270ba4eab9e39c89ded66dd4afd090a4a5feb4c5c3fccf460c86b773c194880e598c0dd6c73f0f81a6776faa6b0204c1fad554401369b70dec0a9e24036865e51e5ac3eb3d9d5b24558e5e46511dffd218aecab5dcc0cead763d5fd65e430cf1a37d4f4ee26de9d4eb723e60ed28ccf549b8a5f3187b9f3ea5710c2abc5679667a291bfb36aa52bc526d127ff641d767b3915476cdb0554d12ec1d2ba792c287ee53e2515c099d4f699e0755293a3baa339f2c67779ce26371ac91d58cbd110f42d79965f92b7fd5497add91e601e344e956604a3f4788b2453fabd97c05f488e0d50676e6b10be7f8e75c650df159300a31a4dadcf20f1204ae00867c25d4de1ae5e5b788413bc5963f09d8f7380971390e212f5d6c81a8da9bb15ba037dd4366606852c3b9622d573389adc304a6b85b60e91e565ad38f0c359a100a5a584393d3d57b9b4e2d2c940e8ac478412278797997e9709d3ab3928b0c906b9e69cb9262080853e1c8d0a856f9d3d571f9e48908e8a930a579a8c52314eb82e8d5e1e7662a4aefccb7c447328226aff9f4ca67e594ccbe4b38e0a6fc9c24459067b3cd839081e538b305723f4ebd37e38e73e571c9400bf9d1c73ae9101ed95a6c112ce330ad16e4a1933e510784684b31f86da0c98e335f1faea06964f9fdc8f109f14e89be56763c14b2833892d15bc97a44355adadcf0a624b73c69ff2a523d00b4caed5a22b198c3020d338ff7b5b079d227c074c7e3557ce0467b692aabd9112a6e4d2b2c8890f0e697838d629a6190a0f24dc74f4bf1d7437a2f10a6ed711437a79a763e4cdd3cba2fa8eb28acc2527b9c78ff9acb08e1072418ca9e1dfffda99bec6e0bdbdc8fd016edeefde8db653ebc30178dc5f8ceade90e1c091c5cb92e059bf22664775275c1ad81fe75e70f675fa528e1cb067f872bb0952add0ccaf385395583885c71139cbfb4b730280913baf92d706aa28067ff7b4cd3c3ea2e75dc42a6c9b6d1d0ea02cebb16361a8dbcfe9ebd73f901fccf040adf33c25520d65d491be1f5d7aef10f6581056dc186a4128d9a7d5b4f7b4ec5464bdaa95c7815ba2deb154e9093946a6cb502e0127fe986cc6b4fdfe86ad548fe595966f2aec2c47caf6ba7ae44f6b746ba0959da422b7b73cb8b0b4f0bc70c51272a4949a3f80aa5392037142ae42b08f7e9f455f395e94f3f03b74e534aede5cbea9ca44f29955452ddb9c964a25a13ea934a0d884a299d3399dea4692217e91395a2ce91fa92a252fc222464914751c75dd1b5a9fce5abce8776fc28df399977a8e2ab28857c954df11596e2ed50d70bdeeab600ee50282c80ae023fc15b99e08ebb095e0f77b9145f017593d4e49534a3d7e40f835b5e7de68fafb0186fc78fc078abfbf1e51770077201aeb4dff12bbc95e9e34b25b81395e00e6985d7235ae1688c236c9d546a798648537e92906a6053a6d1d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d05c147551173d72a74773a373a373a373a373a373a373a373a373a373a373a373a373a373a373a373a373a373a373a373a373a373a373a373a373a373a373a373a374a3d38fa60876fc79c4d18e6fca520b8f8b8ff3eff89afc62c79762fcc09d077774328cad24bb6085d74366e1e144b823bf4028db0b3bbe520d096a6a6c3061c3460c4bc410430da01a356894a0a1a191040d1a3390983143f5a352cd1c3133233302191919229021232606660c189854185229941828d4f665db4e60389d4c61984c180c8cb5254dbb5fb837fb22cbac17acad5e6ac5ba8061940b94ce2dec29a5d4c2eb1163ccc2ebe1ee58783de00fcda4a1b0a6599ba2b845b118dc9a3a7299d1dc1575a04ff4894ace196173201f2fc2d649156c7e84f847a28efd9814234fd4b15a2ac59baa958a52b04d146cf2670c1a944a5ce4c78f01b7fc6b704b7a7c4c89fe8cfe9e4352d7b68a3d2aed08dd9deae71c7d59e534c146b54a6fcec1230fa7089b4f39b4df0d26328c884c643442c5cb9c73ce095d62d0e7933edde7f439e79c73ce391f36b1515ab7397d7ead6ffe9c73ce39e974edb9730edda5ec629b0082920bb647eff3d594af6916da9e20cee3f0e12cf6d820d6da5ab57dfc36de12ca9759dea8e96bff3e0c1fcb5deec916f0f6b50fb34cbfff61bff2448bf1c48a65b899647006e13e1b9d1b31fc036318d5608c50ca5c717c35cbb28ce21fda6b4fb59b7f9278d67d1a0e23845aca85af4415618c576bf1a27b47d967b895d58b4d7cc36739becd1e730d3c9c938f651b9ccbd962838f278455014cb6bfa6f5c0209e69d9bf8771363dcc9c73d16b3817a3fc9eb73dfb37e9ce664b1d31635821841056582b849826fe83b807e21eed637e5bd352ee6b5fab9e51bc1ccdb778490f290503f9ee65c32124e741fc5d4ab813777c97af879c7bbe4f72f7e8da11734d97a579bae0ae33686eac38eb4fa32d40793feacf2db8a413aa23e3a37432e79c73ce396974f4a7cbb9a893645fe7633848f655573d839c8b3fe977ee7306f96a4e2717e31686decd4f923d0d0a728e3e9d4f27d5158a2dfbeda78b6edbd3ed793ccb343fb7dc3548fd4d7710ee5b357c1cdddbae7f210e12f7f6d78588637cd9f5a510718c3196d40d1f0e7d19b59a39e0bbfe7d55bf8743b574754ca493a0f9dd7caa839cd349e667b2cb5eba32e992aea8135df567746199b6afa43a483a19a2076e89cdbac4270b368899629cc35edb1896510cc35e9391b32c7bcd4a91f1769341b187c12d4ccfb0599ba5c890218320b4a3cb5752647cfce8240661693fa32028ed4eba60340c7b0ceba62ba599708f49462661300e736358889cbbd68905992fe79c271c44f6c8c7fe426d4693d8d70cfb194de64edb99e65c965d95265df283e25f2969a412d5c6249e317b48a5135fd160ffd2a5a71396c985fd1582e6ac39975dfa90e24a1fdb8ad2554f3d37ea279e534fd4cf2c1f02c11d6b53735a2d3578714fccd77f30ff64208437704bd60cb7647ecb18421a70060d0d1a1a8f42e94e8986d210b53d7e0a21fe8fc91dea339cc26f69ead7392bc401b76dc35abea59153afa21f1323374c43d4c36d460a8592337407231e82a2b4456d955bea65ea6bea9b54fc0eadc5a9b9c1c86c0fb747e5b7336e6d305a3a072337cc8c8621965ad65e6a52d77933ede11e49a5ee2c1eb2bd9c91f5537276be639ea66a4c0cfd6e0926a19438d88f791e4ffdbd9af64f0392dbb6750fb97b56dc23f3f5797c255f9352bed6a46a1fce6931f5a89cfaf91ad0ac5f67501635e35133348fa3ea867a38e6791c5567fcf6d27554d6feb432460b99d2a23ef534c87c3964be7c0d08eec89732f53215f7d498c7f090d4a4e9999f64d31d9c7888b6e7d3a464d4d4a4916ad12bf3b4d65afb31292da10b05f3aa2ce367327d1919d4f378955e5f563ddf7ea7444b6921566b34d9a35ebecc43ab53ffba29234bbfb131557e8a090db7689665b8e7dc2feb9610e6b34c2fc19660dd126ccf87401bf551befc1a03f331f36386c07c7d18547dd4a772c764a3b0257bfa6c2b65f6b40707c9b63a6b8ceee446bdcd44ec09a33526e00e148f0f5fa15ebb5a131ee734ad6df8e7c46ad69cb0698fafd4b29c42054694d2f56ea2ccd9325f48efda78cc9c1a5daae89a2ee99252da504929a518a55677f94d8cd23a25955352576af274812526212521c5f9cfa6db7694ce1961f38774d27f72734ed237e1fb8473fa43a9e39194aa0d618416b832ec16bb45165534bf41dae4436afdd57f1a53482ba41042e86e02ec51b0bddcc1a4188c12db0264c9371f7dd8c35e7d533fe9121f7938d1e30ceedbf7f46f3a5e00ecf1c71e5230369a20fed8fb3ffaf3ffe54efee03e1d5b0da2ec6754032739fb1905e195d4d5b92dd59de53aae46a8bb2dc69bdf5cd4812cf99bca68cbbf795b065080a77a46cf39c7fed5a84324c61a6bacbee95f22b56e9b148c8b3a44de8dfc5ab74d059bd834df6e0459b5cd572fc9716bab4e00d714534a299d26786e04641263fdc293c902f9dd128f790f5b5447fa9aafb443edd108c9a4d8cfe085b875a396d1b7ffe07361693f232e28a97c25c5fefc1a56a394d22e530cf764126b23542c2ad83fd5f60ce33085cc0d85cc5d2b74f78983c0f777c71aacfbd137e979297d2f348918d319fe841a9dd5085e4f1066b8a51c723fd34b7cc359ab5ee23bfbab93643f9554596bfd59ef09eeebb089740d0fb9bb5edc837dad4d5c433db3cc5e7b1008ee6415bafc99803bdafb12dfa721f1a43b9f5aabaf4413e20f7507278df6f26fad0f87d48740fa4278718f3fd49954a26d976f714ffd24a75a5dce2b5906a7869fd13765fc36dfc7f283b0d6aaeb6b42340de14f4bed4bdc937d120c6a3b63e241261cb7aea66519ccb409b1ecb444fb9be1eeb97fdf2918fefe57d76a99804cc0269e99c0d313b0e8653d6fcf3c1cfa4c98b1e1669e082ccbb22ccb52daa1b0bda22b4945457c459376f6f47ddca01aaaf11994eb834b881edfd967dfc1a19be5f9c4b66477f595683b7b228a803e0f710bfb0c671955c439d3677907e74c99bec139d3d32fea5f99650f87ae5d82dde7ae7eced9c7aef45596b1af36cb32ccd62ccbb2ecdea7f1e11cfdb783af34aaede01cf5c1571d9cb2e9532ddbf43cf46956ed4f274cf4b753d69ca3ef4ed84c0fa1c0285067534c0586a6bb0dbb1a53bd1b8ae56014c32cc51e8f8d15e5d4ba512eeaf0d83cfa188659ecafc56cc69aa6d98c5fcb40d8bf42586badceb256ebfdccda5bdf7e56df39ccc639cce3c322cd4d45d0c2cb3eed67a48514f643dd379b6c8fdefb3477ec3a1632638cee4ff3e37d7c04ecf83227799a26c80176fc03d00489638c01bb58c10bf2134cf7e91e638cdbf423b6a95f8331cea9242ec528837694414c26ac4fc0f7b21d6acfc697a094c86b463f024412124a2916e9a45a32a7af094310c2128e5064832934c19253903a478a8d6a1dd9c33f127532cdc51bf8524a2939a83b586d964a29a5941e4192740409162ed8c1c676c759b727a0c2e61b892f7227f1b36d5697a32848403ac215479002162e70c211998474040976440809291aa194124897a02e50a691d01196b14ae4e17225462564132578c0842248f1841596175c6820e7c532f7c3c205af24242245549d0d8dfd8ca4bcc05d4a29a59452ca5ab15ab35a6bcdaa75ac62f48b2dbecfe884bb75395be6d427e516a896524a29a59452ca9b65d9fdec667fb35aed575be5bc72aaae812df8c09c9c1a6a1134f41f8bca7ce9d2397f88df399963bf3d709187e3cf13fd7efc1a2f0ad531f17851f7c2e8afa5aea84c83c1a121b86dd74375a883ae5a9fc7a193d7033ad9554322a8c0d8b63054051d38147390fe4815638c9ccd9678036db2acb5fedba8bf40dcbf2ec4bdf7def75c75275128ecfd5e0cf5f71d156f4445faf2a7e0623fa329b2b813fb1951b9b2b140140af5b766215028140a8542bd670ce5140fb9ef28f928aae516690d6dd35d7cecefcc3cde7bfd33edc6d872ed6356a2daa76ce26143967d7e807440b1cd2b9bbbfbc04421a194521281014516c12d63d0e9ef918f79ec31bd3dd657e6f835dbc7f6310c8bf263263f6679a7c4b2af4f62768b2897b6e097735724114b94bc2487e2dc8ce2dc44d59a55999f6cf279a2120d26651972e1dcac1a6a716e6e714e4a1da340716e4e29667c4d8faf68fa2e067de4c2579a1740106d10e68338323f466b1f8a412798dcc5a46250cc8e4151071ee9930ebaf3bba8657814af8db162d895b9ca192516bfca39a38e49cec52e5b221751c020e7e013288bf6bbc124069a6670e73f9b0ebae615e8a3026373e8d01d3a74e8d0a143870e1d3a747777ce9df38a61980442fe9d42482925a63bf922fd29657cf933baf4e85086218ad2be27cfc1f67607a3ec30aaec67b474b479ec67b4e4d23cf131bb65c6a983a7729a126d0f83d3ca9d556c99dd02c21a5f8b134aecaf948b69ef2fd5aeb47fb394fa595ee2bb65f5bc346287d8dc58c6a6a4d3dd3fc97cfaf2e98c5309095fef11ab8f7d7c0c9352ffbdf79594faf06d20d51cf760da088d45853e1ceae00b56d9bee77b213177f015e57c52cad7f32e7c79cf2b352aaf4cddc1211ecec13fe299587c3fb3aa53edf778e27b3fa1f69e7c53bef752bef7b4ac99c68687afe043087fbeb60ebe12ed3a7e33c77f593e75fab26cd74f3bc27f7e620cfce29cffec60f3efe097ad677ca3200055d91e05c21215271eafb3e1c7bbf3700ec20dbd86af608435ee496ef82edddd1d4a97d21d42287586359c83bf6916346cb1c98fb3d3584ac50c903e470451ff4d8a416c3169c3fde73810eeb3e920fe976113bf992f359ce115bf990f4b4f1051624fb1d410c8b9b9e7852fb3d882903ad62022d4f095c5d671187f12cfc24f034619a56029a594d18b3da34c815bacc52dfb6ac52494724278058b73b3de373d8cf0c63799200563332d21c2b9f9f7067183983e4c88357cf9cd4bda7ce0b179f9eafe7ca9e00bce28b621e4869a73536cf2a304e33e4bab8cf56ada57ed4ac17fa7fc7aa5604cfdc88fe27b9628edb52a6925d56ab6d23eb5d6d2b7bae21eedb5a9c9c71acd566bce254569a1f64fa355b6fb4ab46d67c5aacd6ece2aab3558b336e77d4db36fa5977da52a26f9cd95f551ec049693de373dcd597d556327d809b883fdac28d40935e70943611886a9362d443ead3e843abdcc9a66fbec524a5ffec34de08efca92d7675d8b5ed84f98a87d818b97442e92b3f9bd8d3743536fd4ef6cc4f82d1ec7e6ae9d2a7a1bbed74b3ada8d65a6b3d690ff7d8c74d2c769299f0902b93b9fdaefa86799b3becda198cc5d94b6dc7a478735ffe53615ae2501f26264d9dcd37c9b8ef43f7effd19baabf76bc64de00efa5996cf136772ea65b2951193bb989b63fc5beb49bb73ce39757dd4cfd34fd4fd53bd9ae6f4f4ad133f7a17f530df79936d2fea377b3f096ade87d1a86edbd809b873b5b72653f62ca75386bb5a5ba73de5b7277602eed098a469dade979262aff92afbfa9bebe0af5a894ab5af490b997f2dc54ec01d54e31cbbc41bcd6698d5b223155b1793ee777e849db8f9ed13765d6b3f72b9274a35286352f4e2345d46402659cc23b836d3a34bf920c4fc3d3dc3864dd95e739dd7a54674f7d7e3de6a83c18ac7bdddc5bd1f8ecf82294ea49452c297923ea42dbea4704e0c4ef81e841305db94d3f6bc3da558d5cc0f90553d227c3527e5d980706ddae317824e1e1f40324a4d312ae7eea55f6ba514088ad9cc3e86518a515b316bbf52aa65866573764ca08b4227b38bd9f789983fe79c4e6cf73bd59c526c3490a0166a31bba453c36fe6cfa943e5dc9cd813617f5afbd5d2aa594cbf492955ed4955ef66523ae9a4934e3a298d94f2504aa976efd5ee6bd7dacc62b4528cce0ce225262c09a20b1390901029e203d2fbf8fff7c10384e71521212111e10182540489c812228240ea52a7431f2810420861ad7fb36c24be7a7fc4395884c7c70d72d6faded6f3fb6b709dfaf373301a36ccd28c52dd699a474ead5b86599e38710bcbe1f18a64cd3ccecd4702c4112fc2067ffea447dcec9fcd556131c6a83bcb45c543e0cbaac559314d4a29a3c681be76b166b5482079d281544b8cbe945b68b6affe7dab255a2e30ede3f3b8dd02eec0c7709471d3e46f76cbc6a4bc8ffda6837a08a5122112fb88699afbf5678c117bab05eec8c7f4b45bf6cc700f562106534db5664094527ab56a733c3d6adaa8bd70a83d84f1d6aae9635f35ac8560afd578b1ac69eecb9f9d92ed3b08b427fe4ef6c44f527754b2e9533665e93755774aa2ee34c0c46e61b7803b6fcf1de3dcd8c6ec167047e879b193c49fcf0b08e445148a8f4525dafc2a14759e16dafe53db2de08e18e9da8479729fcdfb220f4b1122ce41f964f3413ed9a02bdeb87625dcd86f99b3c7ba2addab2beadc20a2ced59ae260c3fe8873fe98460214751e104a7ce55dd5b69223d1fdfae0abfa6e8790bb833e49e477980c4273dd622651111f6a8c1ab502c2ba6463efc5a864acf61d2fe06d1c35edb5d7aece34938d69bb057c760bbb654b2617c2a48de53887e59eb7913c1ceca7945be10f5096af07dc32d8bab71489f05597b3b13a77ce0e40f8ca1ffb0b9d388761391bb3af445b698f7d0d3c7c05e14dc53887fa9b55cea1fe694dab7f65b5f5de0a0476b3ecabf6cfb92b9db3fa6aedbec6133b2635b3b57e9635205bebbd99aece699aa629c239ec1f74f90aeb8ec9c61767e8720e834ebc48e52e66a39e082c4e273614928b9a526cd8d3b05f1f22412d1babd57a94adcb893a9adf608f61183663b055ec8bb88fbdcdf48bed7ef6f6af5f591ffb1d7ca858c52a56b18ad55a91fe48f58a361e58ad58cdd918177588c88937d8d75ab3b7c9f23b574d18e37fa6c71988ecefe3373dfc4308ac336b6f9669d95ffbce551be7eab3c1741298a441d31086768c71cd94614a712bc37fbf8b663299b437695988394daf6521e69cd344dfe7fd89f57bbe54c3b98333ade94afe844dab5d955ce45391cf63fb34d11cc3d3bf1b548a4adbb67a398f7b13f42ebf6d7ca4d886f62eda959c8b153f7d932b79175fbdd8fd8eef3e3fce4588143f9bc982c595a494524a15c4d34c8d07e171a6a8e344783726ed479d1f757ed4f991ecb25d3b101e4efc2e5a61c797514a698a2dd84ea8e7712fce41dc33f32eb13cbdf84d97a2d7030bf4f9712ece2e148a8bfaecf854487bfa148aafe8d390d2459d380df2d5f3958dd7037f8c2a8f7e95eedbc8110bce7047a52faa6d8bdb7f297a38b18bec2245b09994dcf3e9b7dc45a33804cc1b4c4ade7719241cbaf86ae6695ebe631c54efb38be169fcd4dd0c2da76b1ad3d3985e6a9ac6a47f30d9a6976fbaa6d7bec7f4dad55ed3524bd367b9d3fef432dbf057f9cfd4d86cbca6b9efaffd7c9a69ee9b9ed25cfd83c9be6f7a0dd304b99f7dcffd0c679f691fc436691f638ae16d68fac5667a7f98bf18c50a88e1afe91f5e80490789e14d3a490c7f75921a5a0d21dbd3afa11f8dea250dd7dd8c999733efaa99f7199f6efaa9b9e9e9cf197fe95afa945d7ce53a521a9562971fdb5f7db7bff765e84be93388c7bccf2c334dba63b283d8707683b554ca7457bb9897f94f4964846c4164fe9a5e4646a3549bf493c97292f9f76ff6329b7e4ecdf4d264cab499efcbccbff3be8c39697ae64b2d657467c4be7ffad3cb681999bcbd77447610fbf451c957910b8dd4a7f412d9e397c62836e970fbe9976ca84ce99c74ce39279d94ce49a78f73d1579b5e22f746a16c3441361ae579fc9ab27429a594746e196e29e5944a01357f44103f7c3671909aaf7f6bce7a86ad26d7d4d4e8229508520eb9e68f640ac5dbe15f24db4c75c83402993a71ce7f0b639f82a2e95d47e7bd53d029a8550364f30faf4386c017c93e7ccd70e7c0fd35e5774e7746c039332cabe1446fa018c811865bb5e61b906b3e876c73113be4f7b89c6fad21006eddbb613e6a30cc535424d76f40ae9f43aed5e70745320fdf80ccc3e790b17de98fdff85bdce2e12f0f0fe3780ae4ab0c54a3e9c8f0cf573d7ccdd7e88e87bf99874c7d76b0e5efe84f4dcde7a8791cafe1961255abea9a9aafb5561c5f9395a876c691a98f7339ea5f1a362339bee6251e52f339f49c92e9175b8d91e79ec72f97e7949a7fdbc81b00b78ce8193423f80626bbe61f0e52c3e939a5e6fdb31e72e4f81ddcca9143e6d59093935b389ec7e94fe5e1fd29900e6ef1c0439629193e258336428543b571681b78f0784076c0670ed03f327c910c770332dc39647a376033963db06bdee32340fdec6a597e3ae41ddee6077c91fcb603f2033e874c7703f2db5783cf4df963083ccba65680986b73f1bfc43d64683534ac5215c90df81c72ec38b06bfcddd4c73848dd38fe62ad48cebe0139fb1cb24f215f25a97fdfdf01f5ef49bbf77ebdd9adb93536e0d6bd33a6981a13deb622397f0372fe1c32dcf903feb8ba71fcddf21b011f0e8ebf9863f049537e1e9fe22b1cda3f47edd6e839655f06649b27926ffc90ac3f8514752e5210dcb15b3c553fe847dc4f7dec16b8b32df974db45aa760b03fe4626f23a0ff9cf710fd1d28fc3c7e18e3c823b4e415c8e6d29fb5e40a6581e4e0fae781c0f76f070aebc9c23b2f270727083c70d4df1706c4003c8cd40e8e14889c1e360f0828703e5897350b0e0e1ac00058f737282876382269a3c1c122481c4c3f1c721d39f87e3cf68dfaff96adf5777f5ffbbfada3bfe51bfe68dd8f9a97f7e1b874c45f070fc6fc874040fc75f48a6473c1c7f05e4209902c9b42753261e8eff8f4c49f0e8130fc7df47a6ae87e39f804c4bf070fc59999a0072fe3bd31464aa8287e38f804c831e8eff01325dc1e3fc0d9069140fc7df864c5bf070fc773275c1c3f1ef916901328df270fc79642a45a6327838feab4ca53cce9f0099d6e0e1f8d790e99487e34f43a6541e8eff0c99da0072fe03c8948a87e39f93290e1e8eff8e4cab3c1c7f01649a83c7f9e364aa8387e3af23d300646ac5c3f10740a65768d1c3f18f0e45fdcfef5fb3cef68ac7bd278fe08e7da1bec39ceeaa57f170fc73e80cf78d6cad789c3f0eb9eb4ef60e93edf0af32ddcedeb58c87533f06194960626ac42849c1c880b9002a1593c2c086a24165e0b4bd3ecc1684697b7d1a2721b069330d517f06d6c0d54cda92ece2bb019b691907eac7d80e60dbeb775925826eafaffa885b17f3c09edbab8f12f403536e4f6282403e9cfad4c7919045c4ff09813f9cfa11b7f25f8f336a38f2db36d977fd24f5332bde154fe747864fe25932682af5ebbdf11207c9f28de7815b37f40c5bbd5171903af111e7fc7164b86d7c77355f3fe7ce889da4e6b3b7563c8b05b45abcd5bfbf45721dfac43f5314502720e77f2353251ee76fabf0b72fed3d2503e63bdf329def99d4cbf807f332313ff3bbe66faef92974a37beae3ab9a1bbabb5fbfbbafbd7e9ef839043a7746ecec2f161dca374df7795cc857af3b37023e9c8a15c0a4476e21de18fbfe14aaf1bf7a0a39e7738a7331e48eaa60fbd7c89d0c4dee6068e40eb53bead39db62a777677d4a7c376675f9d49c6ee2cf5e952bba33e7405fbeecebea80bb6ff491ed128b6bf467d8af0d5d518804744409f9bba1fae522c3c6251c1003cda738a5e128473fe5388e2a1ed43819c73da643bd5b2755348f3394500464026358c804cb00c2aa105153ef701fedb703a70147cb8b7d94e7b0b32f633ea828baddacfa80b2cbbfb1cb9056d06edc1580388981f734f23cc79e7a532fb80875493668b6022cef963f2f5a895be1ed8d4f9c178a3d90d1888dd4c9447bcf1c739e766afc7ec31ffe168788896f65693aa5de3b5ef6ca884a931b63f955143dda37b4aaa1d35102e65175fee6bb32cd3b497da4b2d88a6bd7635184dd33a24c7659a868768c5d7b07c55fb4ef5362ecca9c14d7ffe8c963232c6c4a86de8fcc7180fd1b28ffda6d5ef6c74e4c8bb53f0ed20813bba9881c7f94d1463fbc3f7c5f6b7c0eb818147027794cc903942f545296ad7ae96df1c426239eee71c0e627f6a1a2fda9fb1999561add666ac4ebfc249e73369f2dd9396f5c8e075194ab857d6e03936b478481a6dfe75701cc5626aa85455d36ab5f415452e3008e17cfaf4319b19b6f9f2f51022a49b1bbe4f29e5cb996d767c8923f220077b9148ccc209768c5f63a49452ec0926501475010a2e40780212134b5aa862473969d2a51c12a5f4664c3051a2891a308184164869810fbea08521cd39872149dd016043ce0777265541459744a43d62038a592de6943a2a1d818d4db1a022842c36a5540a1ddc112ca2f8b1cee5703ae491ee060cb438e79cdc4c3202912866949c0e8877c79db2c8911b112d8c2a362713929438429655c1920748910f204b43511675811da1414623911d908aec4085d76cc2842c62e4d1c205573a105db88e441d9e986404a74e440bd7098331c60806a478f3624624ea64fa48133f588209b250820a2e5040c2174c88555a2d7cb62805a478f36a13095089e20ad70cae80420abc2085a2298f965257482a229ac14912d901a9c80e611092569060669452ca2900cd9973448e9528c410e59c7336a1896c8293263cd9549b48d4e199483e34a2e40152e40348185c78c2f03203110b4e710a4853d8128f9032a0295a00a9608c2f584102172fb0069b6f624828a594984bc99313813807a116b6a0c10c9e90042f8696ba904455f02be7a494d26a55d5db8cfd8cba88b2b1fd8cbad8418c4a74493aa28405cf0d9aa0a6dd2ea59454488a54508a54e812a9b014957ca212500e9d3973c8c7c78704515c5a7378e4d4c0a3c80947db1fdbb29faf30cb83a772ca29e9113928728215720a69180f90221f40ba787551d4c55117485d6ce922a90ba52eba48201a5d4ce9626816494c56e9e3e3e3032465952d6324911d908aec3086cb6f5e5085b209a986fec515e56c1fe3c86fde2e6a82062dc860c9670a345081185c088318638c805e3133798014f900f28a92b0e414c67d0b4988c2f62d6664d19296231e242cd4c803a4c8079057d405a1a44d331239df51d2911b78c134eb0ef5683fa31134d9fed83bda741e51338224be90133b82ca39e774f9cd0baa50fc468a2146e5a812541ca18fbc228c1ea162896c3e9b3d146fde9612cb487608d2e2a58b137ee04305cbbb2041832e76b03d22215284278b251c5cd9520b9f85160a60042a4350c11550b08417ac2c3cf1aaebd4c8022a4f3201c21ecc408b000a2daa28a51116453d50c14e6d7162b3ce395b00858c1d73ce2925168e307757c37e4c5e3e68820a0a9e70820628c0c29c73ce39a751d07624b8fb4d96229ce004252041d214aceeb73b141f1f1f26585c76c76dcff1953f0f1f44dcdda5bc32853d5fceaf3b9862cfd77c8563cfdf76a0e585f62cc27e463c00a3007b7e4e0d3caea062cfb78107893ddfc77c20be7a46455bf62c7a485264ab2b2f016c510021be2b643145280a4488d203a12bf4780167648516dbb7b8e2823de39f54412b269de8620443480802129660032bc85985146c80824b065513cf39e79c33d299d158851635e2111446bb7ab20a25b088305892c0092975f022c200a04891032d98600a1d78c1624b022868d8667635fc146b22af5edd6dd9d48109648802697b61b11d298aa40bbf0a57a862092f78c214545421562cd6fa82a26767b3e79c44629e1461cfae86f77e03bf561e73ce39e79c930b02d87c3567f8fc81972658d1831148a14404168fa8f3f106fe1076a752da5d0d7bc29c2b6c229d92ba45619bf3a12ee21c7cb90311aa8bec6eca18895e3d2a8d0358ba4fc7a6bb259bbe126dc76a5ff66866adeeaaabb61f2a98aed963fa65d97b26f52cc2e61fa53fa92d944c5c9a22b2084d13691e0043c07a2f9f094be6a87f3ca31c4c810ff7649a1fcf2807429b27c6dc3111021ae520ca36c299b84321c8a7617befd5a3bb76af51cbecb3caf59f58e0f693324af9f1e6fd5339f71cbeefa48c52460c42973427de3c191f7c3146ddc5f83531fe9bf1a0bbbb3f19a573d1dd9d4228dfebd3524a39253dd5ba6defa17e917a7ead8a37ef7d8c0d9af6fbf7dac381104238e3e15c8750c3086b8c5bbc795f1f8cd5e18b31d65021e3bbba6da88edb36d3507f378d1f8919a899c7afa2f1a6d3cc8ceab599bf19896cc6cc8c4945636606e3b755db76828989e1f6844961a8192afa3130a7146a464686fe8c0c19999919999f9179192d840c2d6589984702c6b4f98dbf96d2d8514a72f0cfc7269dcfb1d41329a59452fe7bac1a619393ce79edc4a00a52ea524a50d1f645680a2e4210570187a884a1c5cbd2121884f6330a03cb33dacf280c2fa84cd9cf88ca93dd411fec6734450b1195735ee405765a696db4d6ad85f6d96ab35c881d00e859d83f1a6b36e10ef9dd69c713c0c3f1a779c2bc03618f02f0d05911a0061a6618c0a473ee98908b37fedc8ed763be9c120a206e0ce7f5b0d8d5687c28658c98aea19a11623632ec789d0156db5f86d743000f47c70c991ea86ce0f62300c7c9b7715a8e6a276c8b3a37efc6ff710f870518d6f17ad0f7e7b8a8f358a91a6fb697c2302447bd8009b59ffdcc9d06e10d4c6ad63029f15fd4d5396f725f016f6b1088dee82c853be2c307ff419b0db7efbe9bd1a12c176f68aafe01b7f6f7511fb74fbd09eb1753fa4594ae3a52cfbae5aee6943b9589e3e6cba284db561af9dfe77109775e8dffa0eef286f24ddd416ecffa381615ffd72532d1661686f064d7ec67240431f6a56143f20f572da68c86c0c5c6d9cf6808538a8e20b47fbfa22324b1b40493ee16a8f9683fb78bf6b2ef977dbbbca218e0dfd6b8658067bda61ce0dfceb8758067117d41c0bffdb8858067bd9af0fcdb35b8c5f32c222ff6bf6d03b7f6b388b8b0feed18708bf5acd79304fcdb35702b01cf22e2c2c7bf4d835b3e9ef572d2fab769e056eb59af9f1ffff60cdcfaf12c222f3dffb60ab77a9e45e404c8bf3d835b409e457425c8bf2d835b419e45a405877f5b066ee1f02ca22937fcdb31b875c3b3ac7811f26fc3e096906759f972e4df4ee1d69167113589c0bf8dc2ad083c8b084b0efff6865b393c8be86702fff609b726f02ca2273afcdb26dcd2e15944518afcdb18b78a3c8b28cbd1d670cbf42ca22aafc7dbfbe216f61e83ad9b5eb6df207656445797c82edb93f69d5c38578b2a963a54abd42b75a85641fd388702da969cdbbe54a972e54ad1d111cb8a46f3ffb60d9aec655fb6675efcc63f55b46d5c2755a4f215cd7c243f9f66fe63fdf05d8d27536fa3fe90535a720a2968bb5f4d4ba4b4e4145294ededbbf1b75b2cd2cedc055080817fb175292424d48b65e5ca95a3a3a2a32bb01c6d4b4c6a56c5574c5856aacc2a555cc7a4d4a5ae6c8fba432dd5ba6d2ad53fc7e56c4ba7201b248394f88587221eb24bd00675d565a3d42ab54b477de2ebb565fb979396edeeae72081dfbe29cabaa4fd537ab1aab3f2dc05e2dc0ae602f6ca8cad66151b6ff9531b8e22b0c8a7355f08b89dd820539e7d81325da954fb6fa8f6ed94eb56ca7596ee0a7a3eda72cdb4f2f796fcc322ccef9e9e59c9faec04c774c5eadbab2ac24f98a6525c9b9b75d7b1b4afb193961cbaed9cfc809af6d97a20eaee2378eaf6cffec9d2054a445cb26c07e455aa29873fedbd9ac794e9db3bf8187c4af36dec6c7dc69da86f6b8957d54025f813b70e32ddbdf46eef0d0632edbdf06fe01371e7262fb1a5cf38adff863c97c6616201d996bcb606359494ae2c2b2c28565c58b2cb3ac70b1626359c934cb4a87aa75085c76cc6659498a01c7c0b2b2c5575b585694923cfb7a6fcdb2af590d9c428a3a78480b1734f00d6f578d7af9aaa33e577cd55d245491af58565058e0cee9ca69e9f578d5a702015117145f0d615f7c85e485e86b2862425928169713ec09e6055bda4e3fe3a19e9aa39db5ec1ef28ff6feb489af8cbc3f75f9ca46b5ed1b396efc9554b6fa459c9b4f818f8122cd3fea82d8f16b7e1bdfc92c7b1b997eb1656fe30220b391334db1f84a6a0eb76a06e2dcc4e22b0e485a14f547dca3f55cc2c6c3db18c9314138389d4373b8956551cf873371641e725703cdb2fd7be8a893a965c6adaa65d10b8aafa06bbf6d80cc7a4189a28af212f2157c62bf7d80cc7a09bda6ccbca6102df90a3ab1df464066112d117d9121faf202f2156c62bfcd93592fa0571319af2649be824df6db3bb38892bc88f18248c9579004fb6d5666112911718121e2f20af2156462bf9d80cc7a05bd9ea45e4f88b6f80a2eb1dff69159445b88b8401171e1f21504da6fb732ebe572b23979f9f80a2ab1dffe91592f9fd7cfe9f5d3c5573089fd764f661175f162f2e2f2154462bf0d24b3885c4eb09397afe0cf7e3b486611bdae6857907c058fd86fe3905944485aae1622215fc111ecb76fc82c2221a22919d1942ebe8222d86f0bc92c2b5dbc582f56967c057df6db4732cbca92952fd5ca17205fbd31f6db11c82c22a0265893225fbd30ecb773c82ca2222c148b8faf9e18fbed09641691cfcffc09f2d5fbb2dfd621b388829ec827507cf5c0b0df2e92594450a2c42847be7a61ecb74d99457494c5b33c9cb7594443be7a60ecb7b1cc221a72ee6d165195cd22aaf270ded69062d1162d695b244d491b823bb64aa751b1351c106dcd8aed36bed3aed8aef5e065b15d0bc28def3422ecfb9d5665fbfd4eb372916ef8875b373c8f2f31fd8d3cb378383d78f38a69c59b448ff39779e2e071738a598387336df070fce794ac44db42a6d0a481b5b2fd6f0ecce19e1e7ec880efe3f19b23076e09818031c61863e3f03f70fcd4d595f1f0b2ba6a09de2ae6c891e323b6b12dc51bdf96ec1623f6c9db90279785a2d1b7312bd55d7d1bdab664f3aa6db3d996b42971906ae32d1423168a916c836c907d62a118d1a188d56cd8a06102d9d71c22166d501f237f5d5b23a822e76aadb5fe0070ab62eeb31c81af99fbeb5a5621fed1c3672319c9db205f21797ffbc4dfdb6e703702b93a97730fcfe5b791a2d6378e7cc643750d017398800e457c77d46708595d38e414967b030381fbc6135b477da84fd49942422d23df4da19b3917b30c17612cb88a7331872f61ab7ffdb7e75c87fa0000b7aefb4b9dfdd43e5167a9235fdd18554be6be7fe4efcda9a354d1952d5594c2e2f4bdce342e724e95f10b6371cef11105639bd99ac6559cf39738c8ccc65730e8a68ec9ceb412b6fabe659bd9cfe84b0f7645b2e1a8865d4f453adea606d5b7c1ad7a0ac243f5a7b4f11d8ffd5a773c78e47812b6ee221d6df1553785b6165f3d23171737b4a219af3a87b64fa1fa3870ab4e256cd4c78b7c7544a7b0b80cdccf291eaffbacb2fd65c0b3ba5c2ea834a71811049576adff3a98b4352554d176f2e4bfbe10b8ec2d4730fb1909a1ca164294fd8c84e0a4c67e465996f6a949d5ae986f7602824fc756bb2baafe8b7f6a8243d427a0939397945a6c102f811bbf9c7329b624f197c05dbf4369b175a88caf64fc7a0e619c263ce49cff17fe9f38479f083981b29d36e999fb3997fd603bbd3e05398771c041eaffdfcfaf230a8b738e7a0951515e4cd9f26739e7bf3b342459fb877b7a189a43790a492cdbfd6e0add9f539c73a5dde1a11a6c1dea35877c75df8f701f967d1e0fda9d12a8b4af10704bb15ace603b01e92d5bcd539fd7c3f7f61f63ccb9d11dc6384df5b56c1cdfd9a5ab05094a0e0a7c770afa1bdfe121eaf3704430c61633d35f249f0349e321c8c5eef0d0104e81dcf9ceb9d3b6e96beeea36bd91dccd9f2e67f720e44d7f03a06919c93f2ce4791cf5f2d5159417be7a1bc9d10ff6070720459d256478241e20c3031eb025ea2c51814742860ac8f0830c6fdf97b0c02351010bd8afc00ff607fb3fbcfd0abcbfa5f9e33af6e537fe2eb91cc92f3674579b6cdd6df3f564fb0ff52b505f8607d47740adb5565963fd5875e0568daf03b762cd02805bd9ef2df2e5abeccaf6a2f8b3757ee49fc557f11d89fafc68d9f090af1eaee2abdac2433f4280deceb2afb5d65a6bad357e26e5b561e3ff73f6364cb908e79c081b5577febe74cf8b5724dfbd285821b8c37f70f80e2271c377300921df4125827c079b00f90e36d1f31d74a2f51d3c818fefa093047c0751b0bf832ce0f90e428180efe013037c075fb02b84c1ce77300605f80e0af1f80ece40e73b4803027c07a7a8e13b3844c377f00603f80e5ac9f90e12edf80ebe70be833bd0f11de44100be8357dc7c07b1f458c077d00700f80e1609e03ba88319be8354acbe8335e8f11d8c7280ef6014acef600a7e7c079f782b057c07816e7cf7bce861f33c7cf7b8e81e12b8da3d1f7406e80880e3c2b173e4bb1bbbda40db2970470e456aec9a4de0abee9410e19c2fb1d5efde12dc12757c8b91bf5a08eed82124dabfbaa20ecae57255978b02d54581e7a1baa6c01d5bc5067e1475220fdf430f6f4477dbb6437027bee00e7f237feddd6a320ed48b43bd36f714d09dceee5055e04eaa08eeb0f27aa4b07838a9f8823b3608eef0ef41c7231eb46fbb14752e927da5b0783d6c15469ed39d4e0edde53c0edd7159775fa33bd5eeec52b54b7669bb8d8f5517e19c7f96d5bfb5d6fab3abb6f1595662e3e1967e9b7f10b7ae3c924030a23b9d1c4e77393970e8eeb3ee543535fbaa1921a9f643b60f81acc3fb908bfc9d4096c04b20bc1e5b180fc775727238eedf54ebd52143e0efcc5ff3100f793a29ebc30ecef9cb5d244b0152b17ef86dc97f0bc35f872c99f038ff1cb20cc2934738f29504de5f66719d1fde5f6a711dfb7efa777a9be90f123892290ce00e281ee738be26e3f89c3b26ef39e0cba1bb9ad7fee21f35cfed9cbb10ec9abf9ec3b6f9874aac78a8344c582a831a32342323000000011315002028100c86c442a170384d1459f10114800f92ac546e529aa74910430821430c0102300000000200813430003bbdc2bf263da8a4f0944ef9db508f2d0a90b7a8edf14e0f181c42f4eeab7bb0d81bb00f311372a7cfcb71c1e63f3bec715be85995dbae38faba3a5a1f1010b0c429d8249db05d3dc1ba891390b5c2bf68057c9b201021e4f5b05d981314256a193e4821ab1470ceb4dc6be3b0ab56dafb7f40b9231db0ddac6e2837ab9baa9be54677633f37cab50c7dc28701f887801ee1cf6ef3cd25bd3a2600f706fb0317f04369d9a2a003f8155d692c5b876c848436700cea6e37295897554fbb730ab5015804725db67320b2a1ad73eed44ff9b23772e1564812ff648b1cb9107883a80a23604e240c3228af08aad907bd1a0defadd77828ac92223f76415b3f3bece3c11c1bb0657bda4ec86c76d84aefc608afff5bfa4864265acc3809c65e68a71742f4ec110e845ef5ef6c5e91aeed8c776a5edbec3f878c6b4def036b7f7cbad6f6ff677a10124a38773bd7235d3af7edb539e1f4b930e7e95ca3b2ab03dfb5fefb69061c9e7636b82dcddcc2e465772f0e8fde2b9103583505e073bdf3d46d3f53f73b484ce839f5c9e68a9e2906b55be32cc7b0bd873a54cdfd5791da4691cf61418c4377a6ffb137c13f3c3f5c6609f43fe461ff256f8083e3d7a524da26936a924c62434dd4cc6dd15ab3b6d31a0bde950af9c08654c2fd7cac444ec36110ff8368778369dfbd3df9334b2e97bb974744487a74a0f7028c0a65a51ff405e7d3ea6f29f3d33a5b8f0ff4639801e648dd22f75192e74b5440000642b134bfc9bb83878202170ac0f0ad11d9bc1a3616e0e8a785098e5e8666f61858d3c887da1a121af8be94efaf1278b880d7c4fceb8b70f2cf071ef3721ad44cd5346a2f44e3957361d03a006e3be836b291836a91bdbd69dfc649e8322355b5c057614a759278520c1f2039cf4e4f27187e75f1ee10e6f6e0ee1cb24b0344f473f0556449dbf96f23a9b3702301991256727e4f082e7358a7f2842ccecde1830c76169db4e50bbfce42739fde4858313bf031cba16a76758375aa36305df0e63c1f9b73d9b49b349c4148abef7eaf13747a7d8bc89bd3716dad7c9683032b90d2255426b63a4252aac31971d5003220bd64e7342149886776f3bdda45e9f4b1b5ba42224c182d8bd4af6c5e011eee6a2b2f31f166771a8f0bda80926cdd533a22fe869d95ab028ccc332cd3338a2cd7ef10a3aa53d1fadf172c76749f7d07fe623874cb7f2e28cea638f4b8f3a7637884f00fe52435d33689984b124ccc8396ec9a0c9cf6552fc627499e81c42627f672399e22c8b00ba1d72aada7a64e312cd900160359fa74d704130e0fe051fd6f1d1b3357e9b55202a9a7f73e0ddda122e0323f3ee401e128556f7a6cd89cd56fe3e6bdbe1a983b7b6cc6fcdb6f53e6f09e9b9b077c68d25ce26743e6239f1a37a7f9d5c0bce86333e6567f9b323ffbdcdc1cef4393e6893f1b32d7fcd4b8f9eaaf06e6bc1f9b316ffedb94b9f7e7e6e6ef1f9a3407004eaabd0ee692b908c825a3df98dfa7b67479a4dee1212749aa75680d0fe07988ebc848702833247543e52220cbd8bd173604253ae8f58dcecc389b061e32d72a4e595a4a8403fbeddbc3a1a569bcd55ef030392dafc3e05a942c3418ab35f1a144366514a7e6c07f67040b2eb5deecafd7f9e2f3a3ae13de28cce742f011c4a887a9b510239871510c37a761336762acd94da37c8d7aa4e6f9b7a0b77b758c62e00b4997f04de44639963d56cc133bea67d6056961c4494450b8de5ce5fa6f22c8f7fcc3b6a2dc2422d05d0231412b02d64f4761c2461586ae5fdb89da451e62d3a36274ad077f7891e5288816fdddf033937c6e67c7757830414c091bff0b8a72b9553a6cded2ea71fd63442bf226374f2a864badef11bd5eba19874749c78090dcbb355ffdf7850016b5b83a35755198c1d1d4849ca206c1cb3ab60f67766c1e87fec0b5f1a08d6cc2c5e48d7c94eb1c18aa0b165cd3a6d541756413d201ac569b9c5a6663fadf0357bbd8d4102159f62070abec258c97da55b01f77d31722b84fd8f4e2c2588b85c0f4567a352b72e1e02bf90530b02a972ffceab64fa8536e9aeea2a753c89ac1df576e3432062fc7437a6a34023712120868fe2090287a49f64d3f0708ca70f1c7289667a5876df86e5ae683e6131ab678653f2341db8a23cb26195391c69e86692af5cdba75463e6e12decf6faf8dbc08c76018db2cfc2c06be6e90a269a18d18fea0bec998a2514b3afaa4eefc5c86928c9a9c60e0c53b2e47f12f4a8f2c4ac8572c2e86b36885fa9825f79e8a315f9585587419fde7efad03f8fe23740c9db80c24deeac228d5469ac33456f1df0ad03265cc872455db094c31000cffd7ff76f3342a156cd1c1d132d54fb8165bb619d7c38a842629cbd275c1788824de3d5cb6f03aeb09907d6e4cffe197aa024997a487a3670172e16c8e871bac742025181ec49e15996b10a4b8580d7575242d3f884cbf61588df7f673c5680dd36ccfa1301ccddad086c02bcc1d16ac6c159ad4ef4212423950290e29c89fa3c27aaeff10adb88e33491357d6feafc4559ab0ea73afdcd377d06a020b72a3f6b2dfd567c239cb484f7aa41d8c5f5f09b4ab111a22bf6ce94c5277e136c302acba6e28a6805b53a362a53ed6710a3333a8ea44c75464e959c7299eaec05c248e1395591098861ec03525250c10ffe67ebc2954b3423786898df7b590b7009ce00682998a04cfa6adfcb5a418c77e16b5d6c0f6e902eb8b999e0a1a15759dd6d6edf8414a6fab32606e0b7f9797b27e4f93ef64794dffdaa00749cb5c5ba21d905457aafe9dcb7d65df21c05954add4276fd8861f0af7dc235345245bc0f3006370b89501b4ea31bd318d6aed1429985fdaaef02722aba434320d37bf6cd337f03b45310e6cd17718f259ce60afb0aff3f91541881eef8f4d3ab24cfddc86ca69243b77c6a566bee266e19d4e7e1423e09551ec7a115122ab587b02839a24c5f099e2bd93bbea309affd02c30747cc6953a89737f219d6eb4620b26c3c2ed6d83055ce13f0e7c2fd9b48922d250a65d7cbba9c0cd15a9c1aea1e931c17d9a6a0d198c20ec50b1401ed3a6d4f92b0b1c6e0db8399c59362ab07fcede430c5b5091c5bb0ce89a678ac1302c9b6cb44138cf7cd99903ca94b64d6afde7dd8492535523c9adab42bde0fa1e62a47064f80e2827a002323bcc470750330ce1a610c03b4690a51451fa26210519fd53c08021a0d906121ee3135c3dcd74e9d56ddc4fcb34bb4bcadff40f6f3d32a7476d860ff43c8fc46d32840ab89ef8fe9d35e8600541883f7a55a4e2aa06cbee145a3080f173e18a1150591490f9e216cbdcba22de66a96c0151eba83b197a22599b97582c1d49a925948058a3dd1e6933451ecef080fe5dad21d299b02909abfb4b09efbd3924e180ebf409408899384ccf3ce83d54c0976125fb64a966f5769366efefd399e571668f7a31f466fff988cdfa71c8cddaf2198ff99b04663bef9447790ff1b8f3a47854b1a0c7f9ffba66219fe1515e4dadd97b4fe091e7497bd4fcda1ef7cec9638e25f568c75f5e5e62aa10c03f8d8d0a74d493d22023f721a29e9bd84545059d681cf7c33f056db59d4e7399a3b3baaaa1c58870169945f5683e705ea0715d0a226debfe781d31991399a4e60a4252fefa8046ee5ac24a3352013b154d119b5be8ac6af60a4d26ea8a2813e62210d088f7947d59b687a49d263767fcb09db4810babf18f1bc9e9fbb5bcb482480b623610692c90e66f373820b3ab68a147deaf8ec6f9c169a07c7c60e0239777fcb0ea6a836372d1d01aa6d260d9a3ae347d3dd343335cbaa64bb3c389a2a8d2dcb1aec781aafc5d38e6380e8e0bb047bcd7520584ee6e7adaf245141b322963c7268cfa1092638cf341f1c18318eba1f57e3cffaa255d638570e5d618c6ea7fd0f53505105c1140f54b7365159a164cd9c970a53bb5bb6b3e17b142d79b54f2a8f9a5a828fae2ed59ab3a44895bc0c379094acf27fc85b1235d24c94d3454cf7b7c672c8486d6a5af18a0a5e984d6ef7da93ff49dfd349e2ffec34a642668cd3eb7deca62e318fb019ef54d5ef70112f0d574b831e0e86bbc0ec51e8ed24d21e261ce64af1171d2014df672a1943ec11bc25f318f8ac2328de8debc1ef243e24da23d6238fdda1c0b99bf6b2cdb4c79ccb03e8c636d291cd1eeb183035dc4f243340f69417013f8a779d741b2bc866e0960516938a24f6906722ad83b24050d52f5805045f29d993820168db13cd4ab14647bc36cba17b0926dc86c1136957f5641088699ba210aac1a532564bd48b2a85eb5097dc66a3bab0826cea0d81ad917a13b29612a63498cb911c467e2a1ca92787aa4f4f42714397e6d9c0588ce5170011c078bbbfb6ae689d495a26dc9321479543ebd25eb4f54d4482d2531ec0712a8abb76298d460c32b6164435820f8ada15f0010dabf6e204151dbca90735ea40e8bdc0917ce1cc2b787e107aa51d9aa39412693121b1a402b87fc929b4f5ea6c2d3ec448d49501689a97f484071c65a5e7dc01f0fd546b1c266b1f6d4d98ff1c241450255a8aada08548123afcf1cc00f2b55805b1f699d40a1bcb31b5168e5ae490b8c54cc302397ac5a09fc3e9dd401a694bea829407025c6d0daab8343bb7e8e91ccf64177edc1e2d0b937fb1e6a6fe5f41d95adadf6a16ff2a40e80ef2118abb89b56d087ea0a51e7e3c6695cba8b5f895058f32584a5f188d566b471197d30bc3c237efdc6917284bc8af970e8ea99481783e415162ef71f79c93fe2bb69d60f6f268fd841553bdc7b432aa9317141490cc12c4d3c03a9571ed50db528cee52e58be1812fb6ec0db835f78bf8edc5437f4dc07d893e4fab5ae3797a9c50795198e0b39c170b43ca685cb869c06f30c644e78151a8b99ae5516adf8a7d7e83d8880c7aa8a60fee4296ac279e2d70396afe25686f239298f1b391317f88f61db7bf5491f26f6b47bdb6ef2fd9aff89a8f377a8a599add1684e705432d3988c8ad9a432b0f380ae7480130ed3dbc5b96d5dbdbf61d1e121515cd3169d46c54d1fe7dd446905c2b7668b9a0b8faf592402f3318bb81bd1ed0d183c6e86db08c83c68536c4b9ad1d548253098520e1153a3ec20e4bc59709cc6854f908ecb338c5791b2e8206cdb6490e3c3b06449fa59fe7efa9b6c691a5135c0c37bdd86d2a0504d285eb9750853c3e9c4176b764076e4aaa063d803c355f8658398d4c5c2fb77415cf5ba1913e418cdc81ae41ed6906eec4ec1b070b2426981b11a174488efb637702a2c0d180a5d6bb81dfd631de90a4af364a837844d1c5706360a4c03b823db02c5df14f214216fd671ad15570741554cb62569925fc1f4c523a8a14f52bab558e10d4a8ac22d25de43ce1a1dec68490095dc3c2875f7e557bcfd783f8a8583370f76dc83bd795e7887605ce7685630c48f4f6e553ca2d0003a42e8c1809c178812ac04bf6d17701e301b6f79fc46ce69ccce5bf169d86a2d97b0cca02f259e52efb54eb0c9809c4f31e84e294e0e9a3026ea88839c96c6b1dd9db0111a6c1016a5b2a11dfd0ae118fda5a40c31ac86389a332d2e84565966ad5a03f01597ba0017cbf723e35d77eac690be25c052edd34d69a474e0cae1e46897b4a2ede78e3f62c31d10959050831ece719c82af5677a871198347bacc53343e0bc61d8f3bd8c87521a769ffd69eed79735f42923e705a62b0be9a27f14c1c449d4c0bc222bf8493b8b0862244b4963d9bef7b709b76c0cf5a2cf9f7ef9bef9fd929c426062f95d38e135e38a07684c1ca837faab76c56be0acf9c718de00c05781bc99212e2bbe2e1adb209c2fefd298866928f2d1067a6109bca07022ed1ca06bbb12464b9648fc6963e124278648e07dfd888a62747111c114159e8a25582c287da442c2fb46aec192ef7faa2049e77ad0e25dd5c36e6d03950f4408ef727b8a2d2ff81f049c362d18bb1c64c4957927b4ffbc605af8d05f6a87813baf35642155403311667a032ce149134f6d4f37efa149128bfaadbd4f7b395df56fb558f852be5fe1caf7d4c38cc2d1da8c60afaa439971d3bb5c207bd73b774def5d15b69d4ed5e5dd949fba750101dd41f1342ba21d6b845103fa7c1527609066c58e6d1816dded1797b53257a0f0b3ca1f3e08fa161cdd546fd437827a0c5ead3cea69ce7e5fc84a22332355cfe90ca17eb41f942d368a31c20bd45bfd0ac70764bfcea18ecf805f424332f22678b2eb9654d1f039075c67bf9f46afcc50d92c8ae97079aa291a413e820ed971516d6c4cedb80c34844ad2e66b53750a3691a18d3b48136cd971ac3b2e1fa469c9c26346d585bb3b59aada161ad8c6a6eaa476d98d1de8c868db5c4a45106efde45e2585733e2d62808479b1943f5bc4d0c3df3a74540b2ec119d33c099720e58bcb2dba109e80a46f721857699abfc137f832715f98722c8fb125244c1c965c99216ae6580366b13f919d0e0cecd3ac0e5ee15a8b51d4895e210e58319bc93c54c4926cfec773608c320a85504818b84be397dd64300b04a111fe0f1eaa8315bdd1c00abc9ca1038db07803299e6018410851ce4a1d846acbe8cd2551fe4eef018777b272d19cd4c381c5d230134517f0d3c2e700b7f2e2431fa1ce4e041361fa8a6fe645a910084b2706866a466a8e5e93b671f8781331a90310e840ee893ef3d829b603f9cae580ffa131ab5cde4749744485925645e89e69690f2e70bba28ab4f4876fd553125ecb272d3dc335882e6f1be8cf2d5770bc5053dcad832fb233d45a1e001ee960584850143e9318e8ef033689f44a8ace5328d35879b2acb67aeb708a920e99a7bf3d042a5b32304c665d1739a8eeba96f0c8a5250204f0efd07970f8e411c6bdf09d70495b5fcc5900a3babac455dcae3e224a94f64600992193b86f7b5bc4e19d1cd0b3f3c9334a27c98f086cd3f87a3217a576adef1f2ed27590e071d99c5c8034ffc9241b5091cdc77eabce8f99defe29cacb497b6e926687862c2c4607b622c34a6459b5f23eeb242f61a235b5e1352c42b4aca2bfbb67cd01f8e1d084338bab2563300fa3a9a02117b50be545d7e82da223705756f645f9a04205a87bcf26e4fae0cc0d75eda2e77766a682f5c491206f55b1d29d16051cab198ce1b46a42cd7a04a2f6c8e06b10913b326e1a2ce465e8c54ead43fd02bb25684463811b3d4fae051a809341081aa368f52b7f9582c7b2e2c7d25efe6e6d94adf7454c289f6db0ddcb4b7d3fc3bd1216a16f270a16401e6144feb287bb3c8349ea24196885c953138fa42eec9fdfccb15e63d90da5b034fb63a3208f042f2538e2fff03bbc93397662dedc228dbc6ceca466f5796a6221a0920d8d28b9750c7ad3e7911778041d4aa343b8293efeb8e964534b8bbb999e6c500344bc007f0d2e629e873a43e6546efe180dfed1f98afefe30c70b97450d4590adbd436be8fb097ddccbec0aaf76e6dbcae878b01f4c0e0efcb620b3cb0e361a73e7eb65d7789349fd7044513d6f7982b448f473c99a96c1928362219f0f31a9b2915f83b051d94aec7611273e7cfe53e41ea5f4edf415b17a4bedba9e22eb8d67500631f25e27ec5f21a3b73beea26478fe5cee2abe719f2942191ad433051b78e1065393c3d8b0854aea9deda8267c205fda7b71fdf9a1ff0c7d239196938405146973f367ddbfd89c237c6364eec0de1a70fdc24eed48a9f5ec904c1ae06bb57e76bb717bb813b047c114b9e02799cb749c003ea1288cdf4c486d6b7a039d0f0d7b3e46ad7f3ba3a2bac4156347ae0d3c88e89eae5ae4bf85a5668e94912a33e0908c9d9380a74fab95a9ddfe6d48b729d5fbd43add9a56671823deedc01b9f49bca0e7b006bff7e3ef39085ffc92d889f607234187fc7551301f225fdd8cd698c567c48dc7052a35298bd440b3c4d4a5b7dbe996525d7187a9e4742d348ea71f9c29aa532a0cecdd54786d6b61ad950d8d61b320b2234e961202cf3114bef60d5762ceca506938e1c484d283d2765d8c1c1f9af37bfc1a705d08295d238985ca80d3bccdf2617d1154cfd4271f00080057e6b153745fe5a7412881f2e31d35fb45efd39b99e4911174b87668f908bd544be5ce3c43c3c8491b67ace00384cf830e0b529741bf0a4027b0ab46f428e054c92e11e001b4ea804404f539831902405e201c0b8844710dc01438b004636611d4005514824808e14381118d209e52890100c424cdd82487d08f30178c19b024a071cb72a34fef62ce6be35c05601273d94bd69b961bd5b87e2ea3fe7eeafc43e390ec068d6c3a870e94c2c7ca68d277f758731e6b6cb57000c8cbd047c01f1be581c187b5b7a52af5635d5b97a1f442f5f391e87dcfa03cfe8902d9de50c5948fdf02a2164782494a608d37236225cb440344ee430e3e54d01426372d49b9bb65726247463e370ade1caa09090d42f946b8bb399e20a65048f84f96658df2ae8a0ea2086a65d05f2fcf9078d80ee9fba4798d6c6d7fcbeab915735520f13cf2d6dbd1c033e7a295328ac300190e9e84ea051600a98b4ce6a65be524732166ddb1314f208bd5f9f6a7d006c0472e1ccf679a4517e800991828fe5b35ed68473b2da4c96af2cab404264759930264b4007ab983ccae3acc2cd01cff02d21d448e79929675397ee37eb2f39b1db796f5cbe08d637dadf216fd96068f60e3de03c720e4e2f6062ddb594c9790009ffe0bc7ed45765c900c613b31f0576fbcc90b0ce83b6fb3d17269123d9d3ffb470cd53f91af8aaa10b2f23860c9245aa9fcffe659c0c3d8c0537fd055d1bad01e526a9abd3bf7b401c80b871456f9a74eec74d4d7065ec751a43fb6d24c36734be41e8d0f53167764cb1560302b0881fe80e01c70924e601060c606b914e9894532c4a3e18b757aedcb68249573dc629655d83f9163b961973b623a530e118360dafa18e04c26f3061058391e101f1655d2b725161a0ba1df17860bdaa2c1aa8eaeefcee6cfdb17e565081f7e372cd09d76220094a0144d7fcba5c7d50e335ebcda748e535afe4d4e5cd7acd4b4c299252cde94acab1a4efab6c3d2ff611eb3c276fd43085ee4f508458ee107287d44ac0b027c5220a8bbf7506f8e97eff22318df01ce8a20e4e41e40a35928e29ee6c4e987d4fbf0ca88ddf1c14397b22f35019f8d05b106ae2534b51c9e806d003d8a5b46dcd9ecdfd55511b4415c018cae9a72a9e7c262287453621c4b8d5a39db7bd187d4689a87d386782aff9c5c89434fe8c7650f0697c9fbde1ab4b415fc221cb8c6aba5122e87109a69c216bbe36473d75545121f30f1a87c35a606d32ab06c35ab1f8a95a1e12eb8f0060c8daba066438c23434b2736be98484e05d165833fd5332a061b919b2a463320cd090ae931a67045a266181543051a8c515f55ca1038ca2c9a5d4b9adb88177c82fd8a2b67dacadaf317dbaa9958320c97c54625f604d391bed1c5efd1959082c857cdd44845c24838ac934a8c55883cab6006855aa802a8eaf53d24bccd256823f79ea51b07e5a7febc20338d6f70c1242ef90ab820f00e788a73d2e2f2e208cce0e2f4cc2b981d756d7b973feffc9c4d83484d9e2ff7f9e41e280e8279980b17d545e9ed9632387da35dc09ed98bc84d432d06a525329e5c3259a503bff26663eedff7789b74c8bd499666e960cf8b9c3bef906f8be2d49dd67406e645cd090ce4f7df7270fb1d27451fa30934edc42a5982e92a977310d923b2a2275811b14f3b74088855ad34797b8e1ed60f4cf99fc58f08966431ec66a12444ab03cba6bbdf3a1616bae3f7975b0300c3afff6fcb8ea7a13ac457493cbfc25ada9e32e982e1a6cf76da627972722514f83e817900435dae3d72f0663346b8092411396cdb8ad5de5b35ea120dc26225a0f6380bde52a38f989a385fda7fc51e5ce41838418216ca61534c145efc09cc914db67080df951602d299b203f23edaa1393a6ff19b3f95a3d815c4cdb5e12314f0c7b09106c5628a65f358eee9d96c36367b087be8f5afca30cc6a22970ab120575ee0a7a4ae1f5ee4c6e8a7d248262d3c073d3033285c7c7222d28cb0cde4c95f5db05f47d78c7ca98184c57c4ee38dcccf2974f8c401930c595ed605fabe148ab80a091f705a59d008311a68817f7fcb459f95cab1addd7a66f6cb9208e8804a4d9f647aa425d8ae34d349d0d7163a50f6d0034a80bacb6e3e297d2c76b67014296f9b611af19d33a5f7ac8b9071e59f24a6380d231ee724addf42918256c435e158408f0ad16f65af1c18a23af345141dfbb101eb248ef7be32887def68029b296f922bd8f931572e3134023f61ed74d7e3f88e47a3c78fe32d7b558bdd4e572fc48744320b3167565e5a052149bfc88d45a2548b5b3330f4481cfdcf39b08057a3330927b9c31eadeae3afea070944d1a98216dafcb10cb62330d17b60f1e2efe4ecc34bf40f54302d4fa9d1835cfc9157ec4b8ccdfc3f5c53378d3a9f3121fa098d0964cf51099ff941633a722e2e85e7cc1b32e287ef56e61099faf9f76af095478c6cb2e79b30edd3f1c8cfd215a8c6a029929676539da26511254ac1437087ae780b8037daaf49a5d89efe1c27010e95e20b2b039713502646cb3b7af3470dc553cf16c2110ff22754f74cdf6ce0497ce69123b09e44de0ed16358cb7a21836171041c028f87be00cfdb4595dd519795d03c20da7cda46f52d7596d49b702be94c7a2f588ae2b64ffa83ea6ea5b20c7680a5a730ff9302f5ab7ff67f9320265b1545a079d87c2c55b6075df09b4d8057c5681c659cba1c2e095da5980dc9a796a3ad5e31aa20b6c03819b1580e42e64a7981916c06ab03564b00b2bb7a144f4fa48accddb2d5e7a243a14be950c8f501c9452523f7c0542ad5b745d7d5fe421095e970a3171858b95fe60f5f1455530f64f144206952b18306c9a684485fec05d654a7d00c812181757d3b9e149ede3e3bb882f94de0ebe65d687667443d16bd1597bc4b2b3c5d868115f44b96993c17732fc40ff3d153029454b282701d726ccdc1291fcdd8f780b67a32edee3fddd333b55cd12632696b16e544e5cdaa35f3f62a7a2424b01cec9ab44877472458568cc950cf6803d8c4ff9bfd1f91b56ef78258325e56f2b4feecfed251e6806e13ae297ec29d846980502f4d2fc1575af51d711cfe18fd9f0600a00ab20a566eaffe73e4a632c67295fadbecda3f88630b0f1bf05c8a4d4e432235f8088397b3c4a70c1e68b0053a6aac49d0ca0cca0667c806c1563d906ab359d1c73fb00e17cae3beb594490345015ed3a716690167de40b51b6d0bc5424f0f359054fb99c085200df09281a48e85436a1887d7cacd5cad86ca884c1dbde5d3b2dfc18b79409c47fa064d452430d98fd2b8a410b450afeecd2416440ae8b37ef7fe7c15115e15492dfc732c8c3b634a077e8964cf2a2e8fd041418f1e0f455d5d6dcbb4faf9c404fdce38fc9c04b005682c8718433db8ac3746078043e38a6cdc87c4d0eed863f3e83c4bd5c80f71f11ccb031760a1e51f1e26dd72117082532602015ee03906991902068f8e20ac22dffe2a4dc379f427b517ecf64b441c12f170b107d4e764e192b55c50751de7d08693ea8ff5a5ba5fde86a900073a364c59f6e1ad4601df3969148b778992a2eeba4e16fa534af4c1408ad2557a01cd361056f387fbc737e796e6395c55e4a32fe015394d2b1c8e37c62990a53180efd96ce5787e48107fcaa059d66bed6259f6adba40791b40f1b3f747fcd249f0e3f0a200db5a3d4c8c04ebba1bc104694d2b423210692d271625a956116df84ee3705105d25ebf579a1bf7e65371696e9fe48ef51940ab04260b98faec806eb5e13ca18b14a15cf428c42a509e13923b0f91af07a1f45f6440c99c1535c2bf2ef405f0b3610ad8008c55b3d626c115826e84529c88829a4e39c5f5a35426762ffc7e6aa96597c7f0ff9561507138fe5f9e09dc34594860021f0573228de54d93479887fab4a1878421bc3043aa2656257c602c3a2d76e668002c433bf47b3bfff559ee59618fce5994f9bff3dcb2298ab2254d6d6eec3090fe0be78b4d1ca3a89dd61c1bd577586de639da21e487bcf03ba7912ee3d9e840a2532d5f23132ecd9d551d7246edfc90889be915813cc841818f69638c14910d7896b945206808a481587dd08358b2113aed8967214f4794584fec412547aa5dcca04f4dea2073783a70f74e0eeb333324e1120c00a711005ea1621811fba200411c97d288bb18c75bf21c1a8dc93bd0979837845020c5903de7452a59f8179e66a46b3d42c70ed784d14c239ca8fd129ca6326d5a046b69d31cb056e846058870ff8954f7be279a85e0c6d5172f0ecc96737e32bfb83a2f79af3dcdb57bd988f2e32739ae2d04b210d530a24fd1701d03fd58962ddbec80e05dda843323f09b8995a07a49115e7ed34861df6e30fe0f6c1926797a38932a1d07f9ff2f83750594de88b5a0125ddfb38fbbd1b0146156b1f6b89efe2f53295888290456e06c42eb26b9a7560079128db79138d7cea7d12530dcd836da4a1e8e6ad416b26e8af1a45448798fd787fc24c5973428407de66a82745e049b40c391b0b67a853b0eb3b19359e1051e42aa8bf47d1889c2f983fcc2cc6a6b490fba577073517e3c2036c5ceb83c3ca0afd80b1492377973e256ce08d3dbb49373be673283a03af25518fdea09e9678c1d9a7a6bac0202de0213d7b30958f575341c2f66f133047eaa49a413f327dab6f176663bb9ce1205876ae541a429613d99894e08296f9bd3235f7387264c15f549e28cde630dac9649948d0d95280fb3a043f8d25a336fb351d6d492994d4b89ce46a8aedad30a437e16608d92c5c176eb4de9095fcbf4b29e053c2853c575f73463983eaac3870509b23164fb3ddc871195e157eeaffd8381036a8726a9b1b208368bfccf0dc809a28039cb2fd73dd9d4bd30b7aae769c3e4d9356892d9ac6944224f82802ccc4bb851fd6000df4f52d286fdc1affabf6e26d1bae36b67cd7689fe1d14c51dee26e6682a89a40d5516cc0c0c68b171881bfcf656bda325839a2589465d4d39b866dc4926f341f69e2aa494af9f0597b09bbf92491f92302161d1a54c9428ba0c2ad3e1982d06b87acd00e7afbd45c4407f14aeecb8ba9df46be7fea5b36ee42345c9e8c140ee5c7e77d1114721cc08cdd49a2d64a129dd816270bbe3ed244716433f4b1b89b41e2a37be71ceb57346f3bc79e97539fc8484066f4ad1a6d45951d4583ec0437a44a8dd8b3f4ce7ed4cbe2ef150d68a712c8f6c391669de52856e4c34e5a6b780f855de8778296ecc7ec524874343de43b1d1ffa6369eb56456c45ceab701b2246a8b13353651f3d17dd09f0976763a412512c38e5ad86683f05d2a913be0b2d53aa3b18d09c8161ec2ac9a8b41157a4fb8b905ae1410c61749140a9610c2523cdead96810c6f20ac2f43494536feff6fd5e0fd95cd488aa9acf95677fc7d6a64fa8a5f43e7ed891f157ee0ad7ec9031e6fe58b215f8741f92636242e717c6d44eda8b19b27b420f4c659892c222bdd1ea44a197813f57117396e37196f4d1fcf3d892f7630f2cabfea6c807a8caf0c47a888e71c9677e81c239aea5224fa147f350a56b83a5fc2fb51e10e5c3c1944f8ebf5669c448391130de8c27260315b57cf0a9ad393c58e2b48fc79a98213d0d63eaa7e960b9f76c2e7831debbe525872ffbeb6a86ed33889c568d2480da30768c3fabf89f3a8e92eff43f0a1ee6c6ffec023108e2a0c87e5a08f2bf19ba9071158c5507865ea3d5235f61bb0d0d6a3a154c7e7f2934d19ca1a8ce5226bd10bc683b49f4f3ba259064056317abc448153fb688728fd49c1dc15050a668f2f069e0c302508f59a32a8bf80e4aa2fa1cc9435243c789cc67f48f7b748da8e4ffcaf6a9a44a62e28f2a0baa0d90614f3a281c123d8252dfbcb49140f18b0505d9fc0dab6be41eda901f29ed4d686724333b18639bf0d4e53228ab4cdf7c8bc87d739d2ad3f4622a223c76d6d15b336c9d2b081b3c4f4e6e9112d90e31fc88a25ae27e3888d143287f6d4c133b240635cf890f8f9532864d89ed28942c14115a8129f284146f75f1e8b8be2b3fc93345f40b1d1988dd1b8141e7048d7e18a179cd492a4514f632c831b71b5cdc5d2c296c08e3edc4bd84bec9c46ca631c77735045e9affb18f6573cfc25aaf1d50822dffff4155adb9908befee8466e7ce31f3bad059eef0b93c72b9e158f06a87b77e168b2a67ef910fb84e5b6b17c7eeb690b873af404114a2a2be9f46e8f8e1048425c746f78fefc731c1ab83cd6d7a91fb08cebb99c9a56ae65739f31f057be9f46cce33d465c8d65f478b99604e176b6aa2a09b1537fc73a924ee431cf7d8392dc43ed6ce01a50ba7ff4fe62b53be902e03ce94f0b0e20988cb3c19d00af70bfa220601dc23d3bd6faec1de96ab650f948850246f3a8a3f75810dd8fca430b89150fa43e40aa42a8b21aac22258be0bbdc95e8f78b686e2f22f1d551e667cf2addfa3be4984208f5eceb8ffaf52c5297deae7f811f4c22b197693421a51e0e2e8356c9ad14f2b93d7b019cdc97a4d8725c600914448eac91911eb45c9eb44c352ae10d1e09bec9a80f476476dbb45110411f44644636f154f6eec5eb1629ab7d38e0b0faafe90ccf1583fb74c1172eb03d76546d99d7f9b4dfd1b81ba571050775d56ebb638056d9e2d0c5716c127e0ddef8018d47378e3c7762863ef7f87f030558f375657dea42808145802ee36c5bc16d1d97e32c4d4da1c970e9c2bbb66df29f5dea224b17b98ca9eb4703b51db5a0a8859985edde10d9ff757272825be42cc0a8109ae62c2c801a004c7db08bbad20b84195068d6c4191ba846dc1b9a7603e0c2c4b37c49d0fd1ffbde116c8a191bfb42595fc776946c8434bd0623078c6fc214f99ef9ea6ed35a5cb2e693f074136431dd27a8478c86eb3e50088e0abb26896ca5907f4b1430f8c02126ab4ab5a9b8104608f4e051702c98a216f14a207ba881de28c8540b88fac4d55fe1093dbb2a82c135f117f6875601b16692cd7d14382f926b8c8d1be349f8742e7462c78470cd062897ae19ab3ff359f9166305c51f99eeafec212adc67aec7837c15f4bea665f8f0afd5088b8bd3424b2b611da2bd47badf46609df07818b4d0934e8e951790715d7a601fa4ae010800dbbc1d00388f0861732e8c682349b0c0f49e65b407e21b0a08e9c980b70d32b47ffa798461895bc25f500ac3e4d5fb51d741e58b1f9a167bd5b9945a3ddc09dc42c67353fcb54d1319db3aa3df8c33d6eff9746dd3eb57c776d973ee434d337b9686121737d61ae79f760fe395e8e0c1f4b2bffc23fe3f628aeaba0f0abf686c981aab278e60c908d99a56376604defae8499dcb9743ec28bdacf0067557d11081b838261ef177d3cce8f8952f5aceb93ee5dec05a9b72b0570740849f14206f0f6592decae6798ef6ec2981794ead1a47d797951e8bba032fbe5e5fbc0c48a78764417561a9d163abf62d10749a9f8c0e5fe97974c43a3e22fd9b183d069094736543af9707fde8c3f3c7b70e27886391ce6a50402115338b572028b6780dafbd73c757da226163d25e60fcf33dbed867e44c71837bdcd48fa8a048a412f542044b1a57cae3f193ca693860d8c5a99ba178a2f9701aa638706080c7cdda6d30034eec565b8c9cc0a2956a98c6cde78d379d830ec1de07b796e29bd05fb3ef194f30fcf95f4a014b4648ac43335a442574d14d28bcd5cfade8b47f3a04528e3df87fc40eed310c05c72ba1084fa11f8fb00d328b4a598d2e1f308cc157ce34e372dd4a4ab4daa51fbd758a694c0b456faa04b2dfa8fb62e21578df94b8f5d7c17ccf69a7b1e78d5b855aa31ced252b4d8499dc987cb814677c6a2e1d5b0144835d35d0342391b2c9fc5675e0539b3624e8b70f0985155a0e926c89262b2a0dd9de344bbb12de55f4c2d831f8ca57ba3d7aafb0de8760ad4c2fa1dd68920c5cbb781de8f50588987d9ed8b9a5a31effdb2c7c48a326a925fca91fe34e81306ca7840bd5ed530b2d3da00b7fa47842a40cca56172c4b75e9b846e3e68b28ff9bc93b5823ed0878aedb3b3da7ace3011100281f4833bacd9e843274d8c61106431cd91683e8fbd096b0c8dee8ae9d41530e0c3af3ea547e57ce92dfc137d802ea04c069f1c7f71befb8d50398628df008960b26a1a648986d613f5575b3956c5976a3356b09810a4c6e98a1cd103d5f73bf68d0db59cf20ce28757b325444c563096dfe339d3c639d752b700bc14db2309410451bc6bb7cb7e49a24295c90a4f4942d1361d8495008e1e6c6a82cbd267a1b17a6d8884f0b3caf3d567dedff845404e6341615c74c9fd3b5d3e00f4f755dd580a402494d6241a86fd491401b118df523afcc24b24cadfc49654c1eb0cd113b1730869b3c3d72755c9449ffaaed01bcb8c0255944f86113b9ac94dc00141556b265b584924ce444eaec4baa44c4f52adff27555cda04a242ea2c3bdcf1dff2d3c2b05d4a9595ba1b2834a1315e7c06ef39013708bf2c36ef52dd5d3ac2c4ee9defa4336dfc5f1d637d300009a91ce147c742580f634c27fd45af1dcc4bec61aac8736ad200ddb153d459eb993179a5762271424842978cc607b322c03894225825b5c87dbb4de99be1c20b1f5bb5174483e64180c1c8e100a345857e695434ed0697c127aed7632bf64781a4f42efdbfef0fee4dc4bb6aea5329818334c38edfb5cdd376dedc4b68787d39b085c29912b50d5442552a62cb92041d97c954670b009fc6506502ae4988727d4fda70302c2f52611dc5874e682b6a216f0b2428a871057df407640aa4cb329d0ac730880b9908b7b4aceaa5f92edc6d362b0d4aa72f7ca1731c177aa3080f93881a6835cb1a1be1ba0c9750e2bfc10c57d91e46406eca76b4de8b2e06e076058f06c02f30c46b0af71d01560bb03729fef4c465afe1677f13172efc1b04eff5272a84e2b08d92e1a9f88179191b2842fea8b0d5b776481aa73cb297fbdc4664afede8631dababb6329cec279fcb415a1cea4b146159c24a3bfd1448a4dd15e7dd9df0614cccb864cfa7c68e9a1333e2467f9e4446b03500edbb57404a0eecd08f1247a8452c697775eb99af91c4c799861c490c2401671896b96230ec50762a6ed9d311146d9f6b5678b7ef88fb463d1299e8ad3e5c814405600265d4d10c244c1716db39659eb5f105f1a6376d9eafdb48a02d3f3c4d6e45bb207ae473c55d77313548aa64eb97a49bb58159f5fe1686bc7ad8007c93a5035804f2b05d7ea447865845c7c73f6996ee168f7958ef301bf4867a275c95d8d4c37e7f69986ce677822eb54894886f12ff924968ce47cbbcf7b25228c6ac7a30c68eaf14c9f7faf4458d6544c7564ae0909c13e0382ea518979c67dc96a73a64ef07aa354f7cb53aa5583732c54389cd7ee0dcd894b565ca96db018139a9ceb312b0d7e66775de1f9003c38b4c68210f6c3483849466794713b3c3c46be9001ddbec50c74541c8839029b8aae8912564278165c0fe124b87577cce30079f8e3f1f73d2c22b72fa98cb0baf48e27a1ea176ed20599414c4d12a3dc3e1c21d584527a4d2477c5e0b21a94d102877761815a21f829aa012f652454e14278246f284bf5ee96ccc780a986dbbd1bd150f9c564503ce8aef91b05e60e16d926fd59e0589ff5bfd2d42f9dfeaaefbd2c75f109271d1068f71c57c08f675d4d56837530ceb57f5e87294f951c481424359620220e867f95f407b2f63d28dc14dae1a5d4cc34d0f113da080207531035290ec9ef040bba745d148ba49962f854749a55e45c9788aab6fead516736ad8025a5fc63e92e4d8c69edda99e098a9785bd0ec8d7f21c024e29063abec8c5345c73a127f8cee6c020f4e5e48a2a1a0c6fd2d8b7ebfbc17e5d2e3846213f862d357b5d063cd20ac64f11fa119e2be4ecdbbb573ef290cae652d6538430ace4be6c901973c571c75d3fba6e0f7599e04da256b534dd821b4a0ac31ecf1b2177888bce6f74c796911eb660313b1bc6c741008acd0c088535da93bdc8c51a0a390a26c9c65ac70e5a7afc89b388fec086a419e9c08bbd1a5ef627f87af9ac6587a1988653fd6a2e4df44ad7fe1c44bdda46300ad05f29145283270a4504b87083d15ff538a804bc0fb3b18fc46b5d55c8c4d965a8ed80ea75980865979ce4c69e0020e78050c149ab007140e5c186525a30231dab690c92ff9c5af2141cf5811f87fd81addcc09fa12852fd50f3686df41d1c161394b00b87586a67e220c2b0b3ee2dc82f31e0ec0b0d1b31a7e6523edf4a69eeb54ca07c6d91f1ad384d18b0803169a1212643237a0a01db65fc0cea36a2b4f56192db3d1b557c56e85cc3f8fd63010ea5979358093a0842388f2f80b9da40b8f70f473ee20f44a899e13925f358303e603e6978b8073c6a5263ff649a8ec2c06fde3f988e5982168bdf7178be974766b516d312c4cbc5c3fa153c9d1b941d2c10be3fed8130ec820e785323d05e31cc68a0a5ddbe30a85a830e831e1f26a0133d6483300ffacdcbb79ab2849de617fd0f9c6029fcafa12e57bfe420010560ef8861906530e589548c69127b7322fce3bcdd899da7d1e47b7d3d0cf093db181c9c1096760976ccface6dbd19e57780666a5bd7f51364b731c5b08cc0c20c2f85f44b2118ff6dc6bb498b35b2a24c354df54bb2228430b2f43dd09675311392ab753368ef1c5932296cb7c4f7b45a5b2776012b9b52fa943b0ea6d7abe09f478cf3207b567c106a988e357705229a7ee1714373ca9f1666dca0e8bf86d70a5bc68168418d7aa561738750ca38357ed2e9c7c5b14badea0cef976453fbda87c491958a7bf9b332bfeec1bf65da27124079daadceba65fafda170a0ab00f12ca8af929c2cd95ce502a32ecfb7c0a6b7bed49c7fd0ab1b8cac78861694fd513354b6592defbcddadbbfd8cdee8e4184fd73cf9ef19f230c6e48899b91688f731dccc91ce5905971ba0779107da53723a7130fa3c984623ea27b3e7164f4409918dd16a3ec41bfb32211967b01b800634280d01aa92ed734d8f277c2031532567bf623642866da29cfafd38015e2bfb7fc6507fc6ba80182fa7af191b7ce470dc392a50219cb91ada4828180ad2d34741f83a8d1687d3b522fd53edfc122f035c689058691b8b68c28e3e2feb960cc90b5fdad2cf0063454c98056fb15f762d40ea5dd922b14222d574d4e0b87ec437e01010b8921a26bc3483357c81239004ad834996ab6e6072de1172d13b3a314f8483f731105c623213a5c561b2e2036cbedf334ed7b22f221d702a727b40c27b04162623be80905e7cc9a4d651bcc7947ad49b11b2b945ebc3c366ec451411304206741d38732f108a3d4f6c90369bc1b60122b88f935b1d74e5c7a6c501f7dc74e4030bee3e1d05af36e55dc58920df7354a602fab0d5c382c221070dfdae50918a263294749bcdd39b831e9d814e143667cdcade992ff6e6f8b5561c27448881b27fa8ffc333e1c5e62762fe753ce73f26a2d793a11c905a0a86741a82238117d246ae47f8f42bf65f3111c40222a8b89962af4259d12b6a90656c9cd752a1047a95f7614428fe5ffac7f61f567570c5462279f2180895c0c1608962c328c871488d8fcafccb37038aed4500a23396fe6cef0d42c25acfd2f2831820bb2f28367c86da23f582fdf99e80bdf05443e3cd08c54eaca4285aad8e413c69d8216bc4866384ddc42a6ab965885a083d88d21283cde1294dcae04f45487e52b9c1aea9d7cf24e8b0c5a108f09050e6e59d1410d6e7b4168ea0f7a2853c891a5c7d431b50193ad1b08ba2f69d9ac9fa57b7ddf5641de14606824d2d133d47a641d2ffda4fbb265139e28733899a45631446c5050eee5b2e8a7df90628f4334652126d874b6ed888e926d6174718dacca2a47bd9a766efc17302746d16914733c7b529a06609a1e2511a1c73cd79ca22bd62f8651d5a3f66a506accde7e704b8bf771c41e1eb04c061f364189c4b873f4e6a186c660b858102566c91e83f409ddaac4637e5e314499d009188b7b41be1394e00c7f7b3b18157e321e6525dc3d08adf567363a932577de6aad58ac56361e4c412e5214abedb7132ca68c86a5fb59e942a24b413305f8c0f6c4a0f52eb387d8fb1796a1da74240aecfba0322c880cdf72f1c39cd22c770e4cbc0b363c3c1157263f027249c500f1eb004d598da55862781a4f8122d70ddc53df28ac61da37b17d52f2b274b86d4f2ab15de37b32db7a2d97ba0d21968d9c7c0efa2315f79ce7d14a6b904446bb3ca92c827cbc4218e9099fec778799c147f6ae37083f74c5a7ce9a87885be5acf5077e3f093e6f8c24c0fe087e34af71572dad2ab3085465397cb6f0291a61f97ec23c9703b2c22d27d4b99d6c9e68f0f8740cf3a0abb434875d1111d5c7fbf86911789f053d49f3bca44652964800507de02473ce59b716257a8c059f3da51415652668b879f482db041c737ee41aaef84c3118faebcd7f2af42adb9947d13a9f568255bba055c9b7920fc636508ce79a9b98de6a05de4a6a506fb3d8b620d1002b981df8b07aafa22a099a2f84211a159374a871ca9728348ded20f3b30a49f5583d4208c42c1a9a0ccc3584b001602e2e3c47308dc1a882112e3b2cf6ae3843bcc06d6c9ab2417067ba1baafb4bb3fa623b3281504526718c7861813e1ead418eed80839790296900505adba06043d95efab3ca0a04a7e37eb7fc99c45070505a8017dac560730443f961a8d18f1de924ddab207da8a05328f7c38a45e3969e44db0c4314e0b9ce3ee404ac54b44ee800473f4b82b065f68966f982088bc9cabb83ca7803aba08e38682b20bf497c81224024f812719be280061cd0b4d15cc1c74da8362959fc19e7d01fe12fb02196c6d072622ba9d838f115397e0163f7ff490723bdd74591f12513a39e9995217def063d14a2b8ac78955c0e27c078a4a4e09414d39ed9096751032ea0341139d1302e1c0f1c55c3cea4bc1e2d0711d2c8a218305be3239d29472981f05faeafad98459f55cf4f2ac700db31cc5dd6cd6a0dd3b2650bea8222fad010786e4a8e2bfec7c595bbedfbed7561598294e2dfe452adfa908884c8b13cb5ebfdae5df7c0faab7ad5bacec19b54e84967f2a09d490cb4892aeedbac1603d9beb3b30bbe46c5728e26968fbd36be8531a91164c8edf66d29a97c267f1c241eafd97f1fb5105ad589e4fed285963dc09a45857ed6beb27392b040d1680ca457e0790fa0e0891481df039a147c10946272d7e48ffe9cef35530a2ccc969b5106d90d9d6abb0690b129cb756f8b91b3fdbaf9c2da6add27c41b20668813cd288da71e1b9335e638ac34ce12cba045d40280e6872df8a8f7046ad982c7d54375f3184ce14ddeb07029144e719917ce1266838053c6ee66a1814de84310b64ead62a96be17a0e7a10af48b2133012d920f36d652eb2faae56e715f1f0ab5c3b2d482371fbea69c19b9993444754d2594ca29934670408c81bb27115f478e81f8724eb999067937b5915555485650ed5ed7ab2576e97e138ee7f164411cfb50fbc2fd9480edbc6fc1175a2c5b7eb78a6d98a768332ab1da19e0041170097b2d9082195386c13893cdc9149614e29d3b7d9cd11c583d1669b0460d594fd919bd425616b11d283671b195ec69a603401df79db7732c04eb8599fed9dc5b62ec2d5c006b1f1f2d83dadfe4a7323b40093b9246717752cb7e65e90f62243747fe2987e856b7daeab152fc039fb6f26564833e6abd83a76a60ebeccf0d0bd6261e5a20139efd21ffdab2408860de85f0916287044d259a53f5e18efd01a2fb25d5078a44c0245000204e33e195703b8701e7bcfee2071e242ffc5fef1b18a64b6846569ac04a4347ec80fc18b374b720e3efd919dd78c2e8fcaf7e3182b4d8a7ab3167fdfa38af4d8b65bad2f82a8a60f8e9da2553f9e67e23572bcc447c072998d2118fa4787f5d65376b777dd27f698787bd990926284850ff3c5dd7657d186d4e4d3b2e6691da462a84a6a2c696c07d7e98f95629937534d08a6cf0652ad72ba6b64158e18549e183c274916d3c9dbb488b8ef5dc44b982ee0457b640f598c4065cef04ecd8cff4f9c048155231c75625a605029e381fd70b720abaf3748428bddec56d56d69e6d8906d32f95473717b571d0efbbbc53a63cffcc2e787f52d5b7b9d9b72ccc46766ca8dfa0cba132132def3b12c7132809df225714d2b5397be90865b2187157faf65fc07d9e7e7b402de36b258c51aa819da95529186bcacbc452977d3739e71f8370e65732031ee68ef6d6e6d74616df4e36a08a23ff30ac03536c2c60124438bf34a2826387723ae592f7f568f24777967fb9af202da9925a89fb58006e3db283dbe8fe38c201b9b421da8b3c9e9055c98bb2b4e9df5aaff21b4632e1dfb036558fb4a2b4669a3bf56cf60bb5c77b3aa117a4a15a518d13239e2206d09a4b53840dffe00091520df8d7e75dd39295d95882b21c454b4e209bd42b162830e8bf7f96548321abd195d698f371f1ff3ede47c121524228726f1c78a2a6e6b62316f5f400d6ca85433d2264441645cba220c317a7e9f6bdad69e29860da2d9ce801582d9371538fb0754989501bd20bd5510cdce6261cd1bf951f03fffaa11a541825e982f3d419bfc6affec3d64c9622bd93dab1e80028f7d21903a0ba14deca99079fcfee047be1b454fac45ab618ed190391cd69ba0f06d16964281e838874d30d674a05028418f28f6d4358e0ad2b3e187691c83ff119bcad2168130ac179160ffb4fafdd42a85ece6e0ed3836f8284c9fcc7badf5cfa08b6f8dd8c7de427e01671dcb9dfdfeb88efc756fad02b753f485d27fd0f10750384742e490811a0df075d8ddfb9f89b91db84317fa6a9f2f3311b441bb90d033862b2b0c4c2d4225b3a8e506f02d9a6809916169f40bdb1a2d3797a945a2e3035531ebaf0a4e5a22ff80ccda01c75bc80cb51a443ccd8118cba8f907997d1b6838c4381102cb7e118d85eb88742ba2d4a0f95500c28f3126532fe8d83e774f707a7ba15c4d572421e531e1ba9a48e30aa58f2df2481f4681d4e7a91a8060259610d72f3f492b93d817aa1931d83c134cdbc2b7cc210b0d8c59b39a1189c11abbf2fca25d2e4c9d7d5dc0c592970536423940d38adcedefe4dfb82eac5dfddbfccb4b87a9324ac25c5e1ee053662b7b8ff77860767065449710091edc4d29ddab46b14d2a6adc2941b3cfbf00da915e2fd80302fbe13439097f9c1df4fee84031a859817fb5bed1c0c059784b4dbbad6a6999763b10d92c422db5985b15f7371fc32185a012f832608ba05c8148322a76ecb4a58b305f8ecd5d1b754ae39015f3113d2217d24655704c9ab250d70d087e61283ac9556943440e8b9124e5528f6b1a95f9c8561254ad127131b99de066efef0d6e158e2b43eb83ed34efd80a36722e349d7851c3b4770ca23e7ecbd013ac9009c7846824896987a21aad29f745b60b826f636d467fd9e0775f4eaa3958b8ec6cdb55f3d1578625982c49e87ae04ac8a0de6bab2d6675200e91757c2bb587819e55c2d33ccfd11ea3e2f1ca580c0fe9156e49430c32c981fc9701e50e40f282de6968b85a51e2ad833d8a66dd101c8cc7d4f161d4e9b811329462e4c6ae3a2557d76fb94aaf870ff7dc450c59341956d140c72e1f0f39fac1a0561c5a5f5edfbe8dea88096c18f88fa291ab005ef4b2216aa29458a68f41baade82ee2b2a82dfef8b9e49f62a5649a069f27db03f547b51df5624b2d3bf161ac536a895251b01c5bc9c8ad48eaf58060d61158f9ace219d50c2ca508a2d24355a03a956a402a454aa0e531e032aab8939b72b92547547e51f27b532f8ea8a0520746e50db58a8112f8e2ac5e1459eed3ae78a16e36e939db1bc772f1b8ffe340df329d2dc963979daa1385b7f8eaf73eb4272ccda1860647b6a72e954feef0220216ed1ccce8e9bc69457002a777af9f22ad7bda26631d7eea35819c02ed20440d77cf196e08df6a3f2300efe61f79ed558f064d3f0b9321395a27e82b79f57306f9eb39d0af7c76e422602881804397bf92d2d44a7bda1f4ba809271d44bb70ae909de3994fdbe8b545444d99c14749e5487d8b050bb470e6075685859a74b31649786abc1ed2b6d4a391a6530c41bd959f0b28b98c60d631296d7e781992ea2e1dec56dd8effa14451979a531086b8a4c5fee084ab3d362512bf73c006bf11999c04a32c8f4eeca2ec226beaa6a6836a4d1df9d08f6bb0e674b95da4a1440f3d638a3455745610df21123aec08109e92333edf3a5ffdbd8d4b8ba265880616b8cdfb851dad088077c993e09c6a95cb2ac3ae40b705b141d088436924f5573beb879f80216e1141f172d22d4c1e4ea62a490644357b1d64773ec29d9ef171c8cbb37b23f265057b15220aa045525ebb81e9f744b2cb244bea8edfbf125fdc825232d730473366749b317f2387dc0274f1db006575d6b99f6c8aacb091e4fc25e3b773f9440751a52909a9949ae55ba77b6d4d42c9d0981bc22ed5e9b2ffa44230025ae146493177d735f1d22b9957ee5bb1f403b06e97018836f367281df1b48f3035563564c26d9b557e0547e2095fa815435778fd84c691f8f11d20b0e5081b8fd003146b9c759ce04f997e6b777e3d398be554d060d6aa4b37131692530c0de72f01002fc0154eb6c36e215a2b9ba11d78a68df73fcde1f7da2bb35c9318e8888abf3679812dfada81adf2a1b0acf9b7d6e473ade6bf448e515c282d6422ca9c4110020fce98f03311db4bd3e4148377e279ab0726ec545387e8ce818f0851ee904b87919cce6ae9b8772003e695dffeb83346f239bf4032c4a0ca4b165972ccee7073375c269b1f3892ba1a688052879b2972feb050b168257f6d7312f7430bf385664a798c70028f8e8d94ed3f18f30a09b56d608a366511e23401846c0aff18fe00902be637f440d0f704f10bc1f0c65df0ec7b99d0d12bef4a071e141b4f108f2f4d4b6206d81ae9a765b4c82f284132dc5abcf73ea1952007996a811fb5b4b6457023abde199091af2064132e320431942fd952c3056498d64fa05f51f22bf7316e9386603e4ca7219c2994f7b9845f076c62216b2c50604c9eb1e17c87927dc2893cd0b949164b79d9d61fd0be48d688196eee8b37907d00266c83d60b634e77b260b5fbefc8a0cb8442b1e118049424cb87af41f1c72045d7d07a20520ec027b11866771f705a6730e1e43751b74a880cf76bd4296339d0100ab47eea986981ff52e25b2eaa703764946fbd503f59667f74caefe5df9b697c35ee53c31a5007f6ff02b369c32f376cd79eb8638643e1505d9f516f0f08a10dc31d2bf0406f717a40658f9d85f8a74821239cc5c94368380cd22104fe216c1986c8cfc41e16692d7d038fb162a10492272c2a6d49dc8c2b8f0b2502dde31f63f0d5fb6166c86b0fc4b2208aad8fedd0e63532cdd22c64062926946040ba2d08a7492471c78a65a31fc0f14133c208f19214117ddcbcf057058942fbcbc4161e03e7322d4dfccb0aaf22b5978e5d272c24fa137a7254519f0edb52c4dd60e87b3a46608262dd904a925f1756d375addd971cb4f2a1c6a4a7c12daa2e88ee9fa0143f685d8ef0250dd1d607e87875c94360078bd7101c3b4a12c9278927a74848eda0ab9372818e7204fc10fdb7cc71c325af0cc343ecd59f3bd1a13152fb7277fbba9fe19c2f73f1b933e903102905149a4bc2a788436c2b70507fde4d05d1bc7fe754b9d37cd5d281030333aa96fb66d55aecb0cbdd3f7da1b21a365b6fb9d3bd64176dd31f02a3a4a206cf4007fa9c9679ba1a8568fb555e0a33e34b50f79b10d7be6cc7410c664199cd95bae9a45e56578c940c1b1dbd09f80caf048ffb6356e715935457c5ae1aeafcc326566f9de4cc490fe7de954d81056481e01d599199c571d3150e9c8126713dae268046af531b95619d89193a60b2d8ab5805b2aec567736760ddca112cbaa16e2d4759e4cffa8f665bf477d53d1964f6fcce8530092a21b9d772f013dc3aa6a0206f39f7baaaa9cd2b65956de2521a6a8be45c43d0db52ecddb49922b660b5604a1cd354cd91b836d4d65f58089b317bb44d02a9f14205b08b76188f868136d1b23a506fe4f2056489b403560d70052ada25d43b9563294bcc4abeb1a60c9abc093ade24904871266a0ec06e49b03c1319d7fb77a0815e7dfcd18a41f980105dd181baacd302bfdda9c7f0300084e40a23b1da504a871aeb02f73cd97ac9c7d95204101360c8ff53e2a8764c9cadbd090ad1adeb896f3ef8fc7129e5a2317068deb551efa5d2bf42217b55880c45009260c53f781af5b7f8e64a60eecf0db05c6892c8170089045591fc704d5f16f04dbfe4cd96a197352be4330b0be58e54652717f30a42eb86d5bac1742816a00473cce686b577db435f7585cfb5d466ba0477a75193da25fb4f50339ffeeebbdb9689192bdcaa6ddfcc73edaf9775ae78bb5ee6312d8bf95f90ecebfd5e69ee8ac9cb46e0eae81e67f958d9a1081136dca708f48c3cd561a0c5ccb01841747c4bcc58bad051054c5b03ffb01493d39ce3b6e2238ff16b5998ac60d1e461f2c37d41562b52b55fe72feed90c5519f284f863096b14ed4fdabc4275db3d389d30607a634a8cc1944cdd6e1fa911ea51f9ee97b54f3c7bab1dad92986554e8ab00c5b715c14253ca2b1af9ec9f910befe8163d522ef354f7dfb3bdf13025f5be44cd3f2e2843c53ad033c809f382f06dcc04c1e3395008e3d2593b9f16f7febb43bb7be8ee6cc7db664a6d6c288dbdfb79513b868d7866dfcb85aaf81d4d376065360a214f6cada5885b0f90e547f36350c20d8970680177930925522389cad097cd5c3b3eea7c73310712723889a4330fb7c17c069f39e600e0a26a0bb9a314821660aac6318bf907d6a3462e03bfad9540431962327bc34e4e7e36b017cdcf07f1663a89cb790a4fac4249f7ee4b8ce74b428c75dce83b65d8b3aecf96b50942ac0ca0c10fb1f83a8d25647a44b3e87870c9e97a16fbb4a4b7f55cd8cd493d952328be1f32f03ea1952b6a3270cd9ab0262904f02850e1c48daa14856e448205107e4f0b4036d3ec66ddce3cfa6d3cf339f980322210a43db702445fb8a4ac600b815f80fc11d951c7f50c218afce8573221f27062d3bc48cd9df9a76cdc2afaea9e7869831841bc3cc6fbdd93299e98a6729151657b83e6f62875e571d98a4b3df092d01dc80b64777cd0c8e119bc30487617fbbbc519250aae3e74ecd785a87605ff383ee08314218cd8e8d3c8619d6d0b25b08b0f7f78ac4108f59d452879e949a8290794dbe5390d15a8204d0f58bd450f30348b0914b78c71a4fd2ffa14c489a2f84bd92882625b66fa822540ea2c46964c857bca71101327f6b287461e0e523ab4e3298c52ab66a655f3283b16d5d613edc00adac5c64c54939f1304cda1257093071d2c378cedf910dd05260d4788cb129442005c27dad3526a7e3b39a7d2c6c78fd6eefe48d61d7232d0faef1ce7faf1d81b46c6b9ab63a7f5cb4c798e772c49dd557a1d224485286fdf2839b5eb50fbb5f8b60d090917e63b4d451924606885fba6c736bf2ca686fa384c427a0013286beb4c47c21ca6c525d1ae9107b7599cbd77b8ac45daf7ebc8ff9d7512cdec520cc3e38072d253ca9496dd868c95c1de7bcb2fef3bd765c239b84b42ef207bc75b62cd67781b7406e107bc6a6ac3650db599ea0838a17458810cd818b5a64137fa27afc622f06b188492cb114ab58c42c76318b5d6cc4109b18c428a662885d8cc514733188254662f9a0faa036bc2e2ec1cef97f3134cb59c6fe9dc2ff40e18a8246adb35705cfe3edf903856743f7c4439de7b9f9c449c56bb079eaace771dc727253f038da9c3f56793ee84e3a54799c9a4f9fd5bc0c5aa78e5a1ec6eda777051e63cdd94385e7e3fee4838a5730ebd47503df390ecb382ec1f962b2aeca84bde8f8aa162e8e5a87cd1eea8d975f3a26db7e6d87041da72815c40b3e1a71f838b31e40e51f49555ac5a164e4a22d9cf621658987b8f4650154c30ba4333cdd4ab8986c6c3d9bd20e9399329afeded505233b75e80f480ddd09ed2d8f9bc172fef3a7f894eb6a7f5fdfc96b1e5175fa3be79f7a85ab6a6ef9eecb275dd5ab68bbfe8bf1566fe9c89f015fdd25d1b040758a5a70e9c7deaedb79c0d002d2734360ce82418f1e7e457f6d7ae12502bbe999d564a520863d10c33a1d80194902e2629c72533f21c4c74818744a1190f9bdecda54bb784950b7d1c2a9a9045672314686e6143ac8850df6d895117ab103e5d57411292316b153d4b2fc9ec906870b2e4089ab15c1dc839562ca68de93ca1a5728985497d21586cb19edf551d354ec1293db0e5a32e73173801c9c28988209caa57f27576eb651c4c2f4e010282096fe0a63708f69a3f4a7b692a9fc3aa204faa4e051ad85dafbc563bfde7a11a4e7070756c638773a9ba8ae13036b61f6002f6c551e28b67703dc033867b0804f22d60be3af4c42635009c2f59d48de9b6e68692b0b838c2ce52c70d7cf4f16c695b3f576732876d8ab0c90dfed4f09dd79b3d28b5208d67c614cf83d46fb6ebb84a599c8431b181e06ad6ceb7f8e0ffec11f463e48276a618854f5342a8eee21e42ea568630a56e384003dcd006ab40f957585528357f434526e81355c1f78f8d3613f0d2c452121ae9ebed33d41f35cab4081531eb337faad9e569ed7ab6cca69c6e6690a28437fed56e51ae2f5e1a3fff5b49e119cab8197d476906169743df3d2c85037105316e55220531474bfb0d27a9a7e74535895f30a3605708e12a45a5c608a99441e198193c3d448a3d713e972d1aa98375167abe99b2c33a65c65f16fb62a188b9f6e79a80ee63197f93593b22eee50b3e97c092de008e2960ac6da655558a3194982bf53920174ca53615a3cdcad745310854554c4d9b729f6a5b78f4c79ff2c435211a0310f16c06b2af31d1f2ed06f5d76b1a54f215cdb4dc7c91d2873d690ca928dd865627c307cc4384d50d41c0a8e16421644f13dc163dc23f8843718361a6d411be31d8f781428c637dcd9a99865634f07be508abdd2f51ed85d69a688be5d85167f01c7a6a76b431e611ea646261e5cd05eb6730a85f09ebae16c7e03b6727850265e150a6abfc092a1023301c3c03d2caccfbfd58e6f3c7c00459af06ec694a2cdc843b597293b5de503fa919671dc3af8cb944daffaf94cd6b896840fb92dec6a598c375a7596b4bbea60ed9f79b5d8f2e76d775c31ad22dbef348572da344f76e969c85757b71dfaceb615e56ddb122f1cd9f82a6c54a278c00799b91e83e10425d5f19e7b1e159732d72ae72917e66d8a0ee66c0ada6b6b7e922375ed4d5fb66e82ba1501816ad6ad96cd723d708800c19600861f4d1ebd7e35ac8e6a89b992b4081eec28c668723e148c387735caad5bb76b8251c7d5e2b568ab44871f61f0359094efefe76e1ee50d17978ac0687aca595c73926dc39ce7abeb8341d974d45b6e21ff4478b6c2afa2c2f046e363138627a889314dcc8bd3c0634bbec5c15a1c6b83fa62d559c06f3113700b7253d96429bcf3f1584aab5be9cf596603636a91fbc1caec3bcffbf636aa8b4efacd7a68629e33de05bcbc484b660a31de6ba371423fec87eb16091c9a817103e71fce01707274bc1c5d83ecca0f66ee1ebc4aa35addee3895c058464194845d1dafcb0c459e41c327331471cb2c2c701c6d08d8cef4dc8912d717bc29b5a93d22009a203520fc2cd30c781fa7cc55ca2a30b39e7694e681f32c603ed50e932ad5b66920a485ac438cc369e6558ff914efcdc090fd8594214b9f3e652fd15254421c558efeb45568059fad1a16a815642a04a3e02aabf601c2d552d4091db70fa17d5c2b34a09e653bb759eb4ef19ab34cc34f446fa1bcbb5e5b0af34526d03525308493f37343f74a41b32ccdf406758e8290620f949966fb7f3aa909d4166858f50355b0dc034f20f74ae00b2772d7a4ecbaf294ca3a843ef432a899c17d766e379d1f8826684bfb993782166505e5fb2178a5888b0806974aefa33fb816cdfee28e99502a095fc6203b905bea6e79dd83d27197236d2842282f458d5a99763ba828a9d1a18bbc9a3c6c1fc29e93866e16015c2f66af753f47e9f8282b7405d177708b9b5f35cdb38783239668b79916104545e7e94a0516b12320451022ec1a6d734bfa0d2e295734d5693429d8ae316ac7f487e65b4096feee83a6a385f35dfb44cab51bae73d82db26a01d4bebe5ae283f5ba9898e52b83944c8eccccf1cd80c57471e690642d59a32780d5386ecb222697d6ac932786472acdb66aca4534386ab997080e23898a3c27e5dc566da879a0a9360d1b3c9fb8759ee801c5e4f15c5b50dc628cb791187e6288894b987ef2f101f54a9c915576209afca34f10ea5ae183525dc0146b193e031e4490acff408fcc3651e7117c3eef2ff3aac8f2dc8c7be5c02bc68f2634f143603893d9d5ddc869e89b76add8067f9762fb7fd8553bb56433851755cc75788acda8dda23ba7e6f1c69a60b6edb932cff09cdf411f45bd718c3ad034ec7a7dd0ba0c09e7d1b15a65e5e0e12af7bca2f0533cb10c00663bd80887eed81f7a0d1ffb6f8da899d65d62779932fa20535a20a688d20071b2a241f642a0709a77a875d6f0cd161bc583413de01325bca7ae0407f4006f5b57ae037fcc6ad0ceee78041b3ead096342074f0c36292cf74875dd0487164e4aef8e7a30e4fb1b311b8ab5433e05c7814f59f7140286fc13b63b2e6e5c71720b3c278d67fa0d59d2667b7ae2678bb70d651b7b0e79b5ae61b3703c27341885c7ca07e0a726f66c6263e4fd504a1b1b04bba7b8a9765fd4cb1b9edac491fe75d3cb13f287273c612d62037ece9f92a94d6efb73d6a74d8b878c36192342b40220ee292dd88d3da049616162429a45871a66e22186f2547f54d7374c3a39829889c0e84911a6e634787e94f92d7086319197fe8d021cbd8dc54829be543948cbe2b8aacec34202c541e2854a4b6a30074bde60b1313e65362908f729efba3dc3d92c714ccfb2a2131f1a9039a6d93946a4b04c24e7a8c5dade7cac4503c965d02476816d559c31373000786ad66e8695f53fb483607b91caaf4b169c6df68d6d8ba3b039132b5188479ef17c16d0deea0acb4a7f961546d801fe6295e069a96e34b9bebe6fa91266ada1fa212ead33b1001f5013249bb947a429f68e1213c3e1c85029207415b75db32bb1842fdd768eac568322a691edc48c728763b9fc7a17c5f71f48d9c669c648284e6df56aa47bd84b712297e0342ebdd31d07484b5e716474a71a064fb838bd8dd5391d30e1a537c1445246f74d4b92eedc2990b8c40ea10a857777a08469b9c8fd8b256a4d6da9827d13a11bbcd49565658e08558db8811474c0c086bd1e8a25c100f51c1ce9dc0898285ca6478d56e734a8023063239f4a30645ae0aba737fa5186d9cdb2580cc54bc20058d276dd099e59c904ffceb2dd13f8c7682b62f9e4aeacb1d434b22762707683a50d46715b63035284f337c0bcdca6b13cd4b943d24cfaab738de42092c089519287fea91fb40d8223b7116a4a0a2080bdd7dbb2f4eedede146444ac266ea2df7aadd47c7fa3ad9b9832fdc966710417ad6028bb24ceca791ff22ef5e71c57f98a2aa8a20a6b8ae88881f85f489eafabefa7c901f5910e958711cef1c78742a288e9814b8e87f0a46e45ed94616c4a0e14b5f1857818b959ba3aa0ad396a551c9e86bd385413de9a165989cde21bc5263cffa6f2db55f99d18ab9f78ad23455727ea3ffe282753397ffbcb681e103d1cdcfd5b0a6e9cbaa1bb35a14084869ab427dde546b793552df0d217a45c6e885b9cd344b972910370c6130b7bdbfab1ee51af35e68f54207c27dbe106f527d660db7abdcf05c653dcf5754f0ceda6c2f6a530684de50fb8fdb27058db71b3495b7fa061a22da7c68d02c004ce048e861253a0537156899625d67685cee75f2856bba9f8540c62e01c3ec1f5f927527d639330bd65485abb652a14aed4c6d019e4497172183ce7196056f4f98f7ea348cca50766cef58da64849e0cc30249c5192a8ce86df5641e5b1bbfb5ae7d60f5962c1f5d08a38f9e519895633c129fdb9313a46c01b7b018a2eb0461d5d0ea377cc922d56ca7698016c92f2ab43a74cc6cf49cb8efa4ef94746ca4cf543f49ed0522498177aac8e9a43e330b2fd2a4ba5fc201f576e6388e055f20c722a7659dcc29f5052795aee158b618ddf62ab74d0c5cd1320013f4d4ee186ef20852a0d6056111cff4c4eb9a8238ca97092cd2e65fb265335d1001e91ec5b456665a93fa852205be7a472f0932e199794bf2d0249a6ea49a14aac1df147ff14713d02373231c21bb9d2bf3a48a9d3942c81884bccfe2057a338c869b917adf4d4af062665a182966453cac1a89daba2e2eec89771621df36daa7e2167eca18fbda0d98cbb51e6bf0721e353fe3dfd194cd2c538c1ae3d39f22c089e96423cc5ce829a7c63d3ba68371cec95333f25d44d0dbc0e9cd950c7a140090c04599c2faf5e139df5f699a035b86e2f19840fbfc8dc6e139fa072574bca5c8291615e1b515670880bbf72a8e1a36a97772a6a090a8608bc520df35f6c7f76cc8576de4d452d8b528be9589a82769df80584939883c4dced76abf6f8e932f0c0448b65eb0207d1603b09e36129f2e10be0e41466b75a4b8328a6eea632670f7a35aedf3e300957e8da8b410c98fde0d1dc43e3aa08269b33320e694b4f25eca1b8024d6278fc6cf4aca0b53d07302c3f87d0a0a1d268585b41fcf2dfe033d19c3fd25ab9170a784739de3eff5bcbd4818bce63116a98e636f5bc6e2aae8bedcde5bce35c0fcbfd535591f0102964b91d79206005587ea61ca1d5cff8f534946364d7735171aa0bd9fcc951457791bdee3c80eb4a30bd1ebdbc12ee32c0dc2a37d23ecc21f94276e219b22a634d571eab448a59078dfa105e0ad08aad2aff3bd94fba4cbf8cd4ed81057ef11609048312e090fd9402579ef57494cc29091d810129afa4a302cc855325ce83f940dac4ae195d849d00df031cd4459885e3ce48b8250e18c441b3366639939f6901358c4ce274165e9403512220be273320ad468c087c91b406114219f00a1d1d5257e4444304aa0b8fb2708c43c0133134880d9604a017e83b4400ced98bb4449fb5ad1b80fa8138814cde6c07e67c834e1f228c4e846b514c59990b59edb4cc6a48c1e7aeeff1a5cb1962fc47f8d23e58b4222dd74b1bb346a5c5e7fac800b9ae5172cb754e331e704b7ea4d134a8be13c5332742ce79f47f21e15583e70cdb268cc0bf29b4a3220acf9ccf6d3712430a34b54f1968d5bd386e5a75964b9945cd3cfb89ef4b3e743e669bc07a61965eb3f8261043877dcde449358519d90e0733bccc8cde9098ebe03e6e0b1a41bb028047b3e9868e4c0b448b2db4763be205d89f95e2bf9650c5fc17c825ac12c319b537e83fa3805363d9b47c619518ca75d91256cdc4afd8cb316da1208b35b61dbf6f89eac053a833bee37bde98f6533eadcbc8351d893e11c85e32781ee26ed5fe6d823fb87a21274bf199f1520208209374185402d5182b2a81a9a271588e2eb8173e2ef03f96db2610503511db9757f6c07a5b0ca3862ff5202f6484eef6f4c716a85e839b02b11775964babf2fe5e8bae8cb38c91bfb487f8ca6bf34d63b1090f02cd98cdee190fe884df4fde817ad8c68cb069ed3c708e09b337b884b4c2c9157e24be6c3e502e7172c7a4ba8fb302f36bd11d8244650e1bef94d7be548dbd59ccc55eb2f6d40b2ea3390b9d33d8d9184dba8e9b0a5050555964e88d304010c6a35d2aa2e6f01a94558c75592b907fc6f82c9c04a1aa71d2bb6e4c8066db22ace1df8d14304a3509809a5efd5466fc0664106f1e911d6204eecfe18a44b7f6a1fc0014b6af3f01ed6e36e8dfde4a52189262090828c08e2c953994d9bacd5d8c134f944903af592fb94cd6540b0e3dc040c6e675125156c3215f6074dd730eab6b1ea9e238b328a2f28d336675f95f8bc0586f8315b32bcd8806ac66af669dec8c8727577a93af0c4f482055913c7f2bf4ac85763482a11dd59255a67fe0b8fcb9a0e451922396c21305adae3a8ca08d9de20e75b5563ed1146e78ccc7f902c541ceb382d045faf7c301da460333b8ccd077976cf59aed8ae75f8d8b8c0230ae6233708f6d03a0d2e95ca77d8614018f9eefa54f39bab0c73b979a08579ca1a04921b61e566773b43f70894ef91cdd27000f7ca1078ac3490222ca4f265ebaafed9d05c1d8bd406cc37159477c4ccec90e76cc6891c9e004e3af655f4a2a2328528098549e043d168c46b743ece8e94ec7797cd32bb61855a9f9261240dbafde331117037c88e4923b4f101c4393b11c5183e75ae23c9985cab1c320023c14e837e6ec5ba907931f91c528a1ceaf1f15e0450a9f1887f3e6f05161d97306e1e3fd77a012ecd025c77c23f9918563f1765007b3deb4a3808462b458406f1b182a2f168b30a8e4d0985219a927c97ae89fe29dc9f9f145b6c51539c815c98d557cde01d5b1a55fd41664fa9ef4f347d570343053045842c028bb3c2257bd0d888fc099109d3f8173c0dbf0c2a63f54a3a08861960603d22db0e9d547f9656b66ad7002cc40ebbeb4a897aabc17711074ac74b6c2a39cc19cfabe474785d0db0befd8b6301ddbb8b225e10b851cb170558361223f95cb1a06a001e0710e734b2d33618ad3fb50a00e323859f3b3f3d39acb2fa69e9fa20498601c41d3eccd79a9184285144321db3c472655c1b16430ac7f3f477348310d40592707ab5362ca77bfc8e8e0240938261dea5b51e1936be86d15ec546b6741bb02a7f2c02f84e42211f99a11b2fb24e6afa348e00bbba1a5c67644442b83437a08dc0cea55732e86409e9d0a00ecb8e63d5a6b41ae8b4c4a387cc069eb459065fe3a0ddc27ce177f30c35c58893855037ac46e81e69f64d65036aea0589f112d5df7309a736091e436c8c436ab7d78ccea01147bef111e8f711d5108776c32cff83587533b619c3ea38bcc5be221950b5e364c970fbfaa1aa774d6b710b8567de204d00b6db2c250ba75cdc61efa2c9851ffd3a83f2c4e99b751b9f5582b2f18ca3f4ccacdf93cf8bafc03f47365becaa738534c1fd2409ba614250c600f67e9c5fcde4a71f5198e273641945d96afdf4efc8cbcaefe62c8237931987bde611ac01c8cdb89c603cbff4728e37c528984041095560aceb56883624745101e72840ddb48c2b500800878a89a7007ea2b0c4056c8d8a16d41d4383b7200d78abfb175b1ce373163dc2fd49b86c7a38f9725000122b3534b6177d489e4476c3594abf088d5ebe3f1820cb135e60dc106dc381270bf225e6d26271a324cfc02a6b9a385c719cd0751f4b68a70a37ff43d06f2d53d0f8204676f433073e5351102c1ae50a5064f9d747d0b2414a0abca0eaeaa96e475925a0b22bc3e12036032166af1591d510be94456b311640681c48e2bb4aa16584da403397f658ba6a188e5bde202a3040c78123b96b433d88622d5dbb4050d8a7afd91b71a1ecca1c5b507006c4c585116c5f0f915ee5ac0b33da68140657e665a15b13d80358b5a323d09abd59546502421456b8672739de6554fda8d9ba3c8bbfd2992ffb5080ed37d74f82ca8a83479ac913f03656736567d73648a62a09dd8fb20c97549567ec652c4d978419246431e4c862c56f89374b47092584b4933b9e3a37653df8356118214e45d727911859a1666709a0a866768a919c6b7f9d14be9f1fcd4c165521956dd5c7aee11115d513bbb2d68425aceb6594a777fafe735b5706232990087a2f13ac3bccab356c287908da53faab829b2f5e48cc0cab976191012bc55cced1efe80d6ff07f7b56df8510237193c6c17c4a4fcad4f2b624332f8a2dde1e45ffed36d9a3243c9c2ca38828763d9c41e9b3763cbe522722bcda31dc4ca155f37875e13a1cb33aeb442521640f9cee068cf57ac507710664cebf527c3e5a36ebb929cbeecfd1c5871a78e56f2bad4869a4968da52a25c5819b4f46da82124888b7c03b6f8e40f5c696ca8b9c4bee281f43e2e789927277198d4239f5457316a0c69afeaa165aaff562622ec08de2a3d7362aadffafbef4b5056defba6b9ec64dc45b9859c150e5a20eefcd5765a235a15fdb25b1a25610c9e0a819857cb43a8de43fae5a0cb4dbea90d153f6817e336ae04b8980cc3a49fb30794a9261ea0018bc5996e0ed0c2d076ed98522898729c89e6c7e6bb63671ad847ff5e67206908093cd1f6d81a944563609aa2a5d7ddb55652ec2024d58e6a18ed0cc847cb950b434cdd1f552c03b26a106a061c358e241606c9111a2fb54f605a3899b05ebcc01970a8b659ce10e19edaca1d904122570ceddcdfd80ce805751e9c40e314106dae6dcfc99ba2e509998d5a3b3474c4d95a049db4f2003decc7d80469e2625e7a59e7c1211f4a1b9c7facb2655825ec6a5ce29e25d84dc3fd8560efc93e256e0118352eea96ddc250112353794ff03d72eb79f96753f073ad48e4291e620389cdd3a1b00d116027b8142218d2184e3703346e641e3afa9e52034d035467e5cd36bdd511bc663fba7422ad34a922622db258e1b0ff213bbebbdea14252699a3e1bd4d9f0cd080860c75f430fb523e83cb0913f9408868a4292878fb39a25ff75b2a1e1220d422abd9a64c3732fe8af434a560b295c6d35212641c66b93b7abdecde36fe941dd080287300522ba6f1b75be209bf5c9ee5153370ad5206b9bdc73324b2f05dfda2c3d1cd3e15099ba148184c4a69c1aeb0f3e2bb9e4d17daebccf99e6300a0197a6acbd561df94dad042ec887f9811623bf70b00fd4436794989e1e79a4d413f215fe447090efc2851fc48fd06f279a8701ed45c3b57e5fcce66fd6d95479503ab60d5bb67f28db5037abc3d0973f9345425d11ccaf14e2c27d42265f8c40b57f9ca88d4f4f500071117daa5d92172e6df97cb52b68a58e0af66689a4298baa1eebe79b714809edc426bf93cfad18deaf5c79dd20c3d2506bb01952cc9f6e85cb93c1233e0db9069872b8adb609f4c8b0d211416436677a789b9c58650cabe94075d8f77cd998964fb15cd002fd8cfd9d25a003951aae13f41cb69d533cb0a048ed8b9bacaaa2ff941af186a61d741b356bc738898229ac56c6543c4640cdb4c069ae31a2457c750e8f9a6f280fd0a1f176b20f2e8e3f399648c66f1457b7f7f634b2b26dfc931ed80f53061d9a50dfb3f2f4aa2a5e720d1786b7805ef5b467f5c16ecab2aad4bd77c82e25d7586999633dddefd1cffd01736e88473c5b6f1099574538d5a7738d6b1cc304539dc008a6ad76e246a951bd86a88d0d32bd6c1c5310a29212f7e11ca1391ab441ae5469bbac713a5065862067fe697b15764acfdd19fb4389548aefc457f27032c6984834cfa2e9d706f6258d474d725a20f22a864f49cdbad164112d7dd79af522e6197a8d1a9e0a4816ecedf400405a656a8d6fc6932ec1f88329d51afa66ac24aef5cf9e61340f4706d8204b2846db1b73d1ea0e03b7e4a5ae3479a0aa03d7d0adc3cb2bfe78148c2f324e5310fc32167f10512a4e3e6f4ed4432362957838a9f14d74cc98b4a1681f98c276618492c310f2291e2b458f159fab3f3833ae869fbe91b39985403f86ab1d9220ab6b85caa6f2650f49c6735f560bab920dcfd2646d83475eb3e077221100c84d6790786f6a21228ed03f12cd977cfc3f9248b53a155a3886954bb0aa03d34d92e26bd235194bba6280e3a7f3484cc2841e27a2542942021569acd84d7a5d418fae89fe68f88256014c5e049e4cc4770e56105887dc1c7a86ca1fe539f5efb0121e47b58385cb3f3cbfbc4abbdbc4e91c0820ff610f2902ff188dac89eaea2d7a31c3ce29b909c204735c736872cedd879806a2bf27e9a3a41ae7caed4f90f5f6b6d1922d6592295d0ef00d000fa74725f1bebbfe8f85512cd15bb74d3a78e4e72d2751b76f37297233781ce4657d6f59de775e182eb13fc37f477c2dab93e0b7a305bdefee5f7192d377acd3cfec376b8602c324dedff1bff7581e26b16f2249fba8f0075ffbf7efa902f72f0ff6f9cfebdcba141454f183145d9288420bc25808ac2e98ebc4ca5bf8bb071e45145c740085194cb1842dec037cc7b29af45107f6ebf66f78a4490be67625f0b77fad13201450d084329d17d24dac8bc394873faa0755a83f791e089e7e428cc14fd18c28eca14014ca031fe58148502fc4432d2e1ec41310fd6bbcc036a66cb9de87ed191849de9ae2ad2ab766694bd2161a5c7ce78452ba1e06c118321e63ce0be9364e178b0d168ac4a00782f75eae0be74413de72bc459ccdee3de2fa8e0dfc4d7aa382b8963c538335c3648defa371e369dcb0a81bacef67cc907283068dafc19aa1aa90345ec85dd1e8505cf8e385a71a0f3e88ef57c3060fe47d0cde8bb778d8c3d7f3700dbcc5310d63d01b3906884a388f8b0f97b0f098fee0ff014110630ff585d7fb401b2fc43d1b2c0f75f21e3cb16622794118e4fd7e066b8622ef8c19bf5aad1ea4c13ad5b0610cb8061e3f95d7248d197f5fc85db17a868c8b0545c2f0241734637b4b54a5a490e065994e56098376c9036d10a00983d756b138a607b1c92a79cbf4971504fec1f731c617775e7ab052448e860dc0279640865cdd08435a2ac87e62094e20417b599e145f22ddc33ff74b3d07a35ba562d1a0dec50a3481a7cbea93c913bde518e3d388576f31b8fa136b85df84c9ac6ed0a8f23e342c1632f8c6f79fc0bfe1cf0dd722c58c6f61b9122c6fc2bbb83be1355010c1774ebf833d5cf256d8cd7025ec346e8d1b061c67b8c6384391e06a9cc120c171460bad9c58a1920963102f19bb292326d32d21ce5ccb9de28af11d1b6098301472675248d6c9b5f4abfd8ab7b0f811ed4b7d040e7fc07055e36bfc0c04b90888a6074de3cd491be3eaa4962aef43e39f80f8f14ae271869fb622418c4156dbc0644ea71bfe981e34996c8c356ad4a8710abb26444ce6fb6eb8c449d383a7f4e7f4a2e9c45a79ab3b9417b6b7ac89c6af4edfe1cf8a06ebb4024d2cf0572cd6699c391612371eb328e32d7fce03a23f6ef7fff0512ede65b0660ee6c54a64cd60a852a811f458337caf8731e856c0932b9d4c7e59bee4562c0e9e4921bdcfebde831126e9765490b734e3da6041a342d66c45862afb1d4723a2ac901b4a114de112eeada36c87342fc4395688e242311cbdd329fc3089ea4f8fa3882bf1455fe29c1b43d538b3e17fa1111c7e7fbb92155f12c39f9063b55da17e75798eac64fc8b079f267c57b23f54a15f21bf0f5f883fa7f299f558335f3a9d1efbe9345a7b3a7d873158558ee7348f7af18f5c9ea15be3bf1a658ce1db7186247cfbe15bee5d4994f128f11b9fd83f85e16a062afc1926c54e8629cad72b6fe44c2817ee45a552a9543427d4683fe7f2ac628c2f4657121fb3faf2b8f89f7d472e8f8b71e88eae0a9f267c8b8a8146f5a85035da40fdf7e20f5d1ed1fe67432334279a8fa27a57b9ca94a21967aa14d145944aa552b9950f253acf7dab7af0ed9852fde933dd500018654319a490347f7af13d8ce1f422929338b6b7c47116fef7586419119f7b4ea4119f7bee454f153eea55a990b622c1d1ad589cfba05bb13fac2f911fe6f065d9548c2e7f3aa1def4f83fdfa1a16cf79c29346113eaf1698667a8204e412805a1aa8242a1be300c8308c3d106113ef760db204294b7eeaafb8088faf041cf5a93352da19482a812849213246895ba0f8856e97613f8ecc7323da89aa1c8f0f4f7041a39d95314f29e4623a7ef1e87484edf8d34f2bee7423cb4627156de8792f259079345ecc40f95c4f08a182eb9d28baef42b95a74295a85279ca5722195a09ad8456422b5916c025540a9742a5f04ab8e44aab952bb9d20a7f28d261ac3e55eafbbed4f721abb10883fc5cfc54295f8556422bd7b30097702905830b969488c595520ffeccb960b93ca17fc8c2aa7126c220ddeb54aa7186223d0586ac952bb9d26ae54aab556825b4125ae14236005c8a2c2f5e844ae1951763b8145a79f1a1d28bf0ca8b70c995fe852bfdca85f833172f6e7c2e30cd2ab4125a09ad64112d07c5182c478c5c3ed4873a5914136044181d105797c78201b302b35a8181419829c45c316629540aad34c1a50b9726ba7069e570e0c6e3b069e58456c22b1d13e2eac6e3b069e57040fcdeae6e3c0e9b564e0b0c1818ac6ed8845642a515182ce4ccc1d40003c60a0a5402b37acbe534ae422b63504a60f71ca7e25e65ef673a810fa2dea4528dd704be09a50adf640a416f168657157e2a35863615a6b00af5a9ef94831fb250415c4f59fc032d61b478d182454b155207d95f3030c50cdbb7a3f78ebaa329895f93c9e4f5e9823f0b8d3c71d3173efebeef1b69524fc36aaf498d334ca65cf5a22a157ee0f899c69994bedcdf15378ab88a3263c816c8fe72812ee4970b6c217790fd25892cb290dd7b4dde9e617275f2897d6e6c6fecf0c7fb0e61d4387dbb674abadd77e098a57bf7995dba3ce2771fbe88c9f03b150b4586e3ec43b1da6bc0ef587e1aef9b460f8dcca43cb9e3ccae9ead72c719f6c627f6bbe7ba118f33fbf76639e18eca170c4041e620fb0b06b07cd99205698720fb8b963124a8fa6c38e859eb7d0af5296b7a7b72c1bd1127c317e252c84fbdea51ac192651a97761df45ea512e1e358ae30ca544a63a511c5dfc283e0d0deac5ee2dcd37ce30e9b950e1efd48be3ec234fefbd2a35626f7d286fd9d338ebde64c3ff1b47acb2dc04ac921dfb65936ca031ea6451e3d580f8c4f4dc8752429c89e2fd8fb4e2898b6dc27671eb84170b85ef74e34c8ad799469bc55b374b12bec36df19d6f039cbdcdd9b1fb2dde6940b4e44ccc80f8bd1561ac6ee0f8560c2039b3e4ecf40503559e8beff4170c24d91055c5e2701c9e39179be5d6dc4705617fd87126c59ec67166ab7069824853a598de66f9ba9305b1384211a92f471071042d261509f00ec031dd320215607704223aae6b1de4708404a0301450b7c3410e474001e500840fc886304140617490c3182f0c50d089ec278ec0c584839b83c4beff6a25055b5b44989c1c2e0ee26c725adee2c2e82007ccd958cbc37738dcba453220da6fd900057155f41067dfd730b0ddc79e01dc217ede7220c4bf2ccb91357a88b316992ce40c07e92b8bc3ff06aa4c0b6263900571e56ec700882e04c42136eeba0e002277646415b1e48b34e00a62631552b861439cb24453799fcf7bb80ec7715cc8755444fc2871ca1298fb11c45aee83a23d027e8700f1247a3f6509ee1fc7c7c4d44d11bf14c02296f46c702cdb4830892f899f6beba316fbd8da2040cf365680d8897d6b6c14b1a41d3fef3b2a62f7383c0ee3cf77ec8ebfe5461b782c6239b202d8768b7b2bc57770d3143b2ed17d0dfc6077c31f8c2dee7620efe3b01bbd91e0182e471a2009f7de38dc73b83b4037a6ddaf1fd9b8ebbc6eb47dc3f570b5d817e23709f08adc73dc95622d0da08b5396f01568bf71b0a0b83efe0d83b42b6fd9f71dd40c063913510ee821ce5aee45024d90fe36cee33eceb224c7ba7185ec2d9ca0010b18e1074838210b9f46d1a0bc855b025a2c793f00e215685045ca152666300311dc200b1848800807885fc0bc6004099618c10d764046050d1022d5046922fb091e60e165b62a028b2b6e2d16537600851d28c13ac10b05aa9c21bd64e981972c4ff092250b2f4c2c91ed858924d205d95e38300412544d5962092f36916cd68ac953f358416c7a7ba3bb65e8233dda6041fb20d864e31dcbbd65d9707ace5b4650e40c0441d0f41ecbf4f5e4bc0d0e6f591bbcd516c738ebb7c15bfee0cfec0379cb06dbffc48e3604cd7a7c2b44ffcf07d22d105140fdacb5403da19540fad3ec0f1816c777bc6f2390ce83dfdf89cc774cef7d04b2fbcffeb0572c8ec502c3feb047581cbbf4a1505848d702de407510c8212cd5d02d7f2f07a4fb80f4b77d65d6589058ec8f1b90fe4fde22d12f1aec113d701cb02c07e43b76d6ffbd0d8bf47bdfe4294c77eb1b57dee281ec1e6f04d500d928c4d9eab3f460a538a7fa8057c57f4e0e8f1e20fda2099c80a0213441053f88514111587cf0103ffc60058a05281fa4c8117b7278e49868b200020158088c5bf821073f0081470f902f409c804c91fd05082ea00ac06e8a58437c61c9c6477cc1b264bbb1247d818019945b0b013210c0e28a2f4528f1050b1457cc172c4d903314f9054b07c822b28034563364747ff78b41cedcb13b86f1c2058da84a8528f064fabc8ec3d76d7bbb778d1a29f1ca294ce75d8771bbf707c6abd25e157cddb69fc2d8ae518ebd65410fd5a1b5a82efcf94edf07c35bee71237e93f7733ab9f5c66e0e25aebafbbb176b0182aaeeeb6fadb5d671163c60212d0f59c83b629f0282e0ec9a21bbad7bf7cd45d93362f7597fda35c39272ad7f60a971dfdc8fc2a514fb893059c8991786a379614818e04fecc7b41579efca052f5e5861c60a32e267bb8d08f3a99ef8128132d8881260115c7cef12e6d2dee26e6085186bc6082d6eed1723923e23b22461bb3fa5cf0a1558b7d6afbb1528c020b06203e48ac3d88a2c5cc771aa212ccb8a29e4eaf3bc2ab2a882cc521562aa60c167fa3e0fcca7f4a14a603a994c556ce0049e4e3809339d14e20cb29fa842081005824f5441a58a1f4817a958022a44a170d28a0a2cc2541896a1420ca602cc47050952aa548a0a2da41df35171844a54a9a850faa6d8429c4209342e68684c51a03e21b810e3e2850b174f4c11c5135338f102c68b17282ea829b27c532c4da18027a4280303150346a8833d63b92bc5186c032c0514e4bd2c299a90620bf984145962c88811438aa54bf613522861b29f90a2cac3c842c60c19327a00d6a09302d360053350ab1933ae9c9cc8512289276870e5091a287d67c0158dd54a461068d4a04123c614356cd4a8f1c40ca0c04fcc0004e4ca5b369e988105da468d1ba9ee9b1e6f4a90039b455b6bad756bad75d40dfbdccb2ccddd31c61c57a5ebaa785e95cffbbecf851420b6edde472cc900118bedd72df60e984c9fc9143e74f4e8e0d1b1a3a3870e1e3a76e8d0a14347478e0e1f3a3d3a3c3a3b3a3d7478e8ecd0d1a1a3a393a3e323a72787276727a7470e8f9c1d393a72747272725e35d71bd1bf6a66d9fa2f3576de50a22f427fbda1dd2d01b775f7b7e840bd9a349bfa436b39e4e5cc68d14aa0bb63b4e8abee2839769a4f2ba1a0b59c7677d8cdc5609f882a23ba5b468b3601ddeda2457bc50baf9aad3f33ed817c26fa18ed86cad4af8165286aea8aa1359cb5569453148643c4a3a8ec2182e9e8e84104db9179720f0f5151118f1e3c3d652682e5e410f9c821e22182ede881035bd55b8aa3a6aeb556d4fed3ddab16edd7dd4774b7edee4ed134cd7f961fcb677a5b73fa276aaee57ae65aa6d96ae6af6699ae6f749aeb5ad652b4e8cbee36a2bb23d0dd45e0eec6d2dd2fbaad93ee8ea145fb6aea8265284247658a034b551c184aa395384869991299b4eee6ba7decee1b2db60d862954800004464c33bc2851238216f000848313041545c1230828da4f8bf5839e302f8e3ed713b01041094d0149987ac69a09e88479412308d7b5a94470c030ab82000b7c527808b880ed252989eceb5dc480e07df08edda4946b0500f6dbccbced370aba65b5146b77c0eff29c9e872955de87e381871efceff7601f7f0fa6ffbe471ea8bc0f37f2d08369acf23eb687eebfd11b7be8ec732310aafe1e3a7b5a1615fcf69d35a50a154bc57e97c7abe02955f0b8840e305059420718c8275596d00106f2be0eed85bc36303105132b20574800bbbbfbbb876a87683187fba639af4b8e24dbf5e5c1d884393cf36ab6e06ab4e830c6230c480f437a60bc2eb7c6df1bd30d419c7962bc2becfb7b633c31165bdc1f0ae442360038cc753981dfb0ab31137e8d16618e29a12a47922af5dfe5a1f9145e57ac7a1a560aecb8bf1e82355bd46c51b3c5f594e3284e35666ab4c89154a3458e29399230f6662d30aaeec3a713f8370cd99d5e9c9d5423ed8a49a5c213eaf4e0699c996ab6a8d9c23361ee0858146bccd46891638a58b3458d19f16bb410734c115de448c264f72e6868c6998bd98a69dec5c360f5a54989355bd46c51b3c51da372ae0ad838665e994b845bc68ea622e014caa6503e109f98bc3046106797cce5f1c278612e192f8ce83b5e9830be13fe27c67752578cf17ae09161a1fefbaf468bd064aa3153b3c5e841e12d2fdeba9e170f0a0f4c118870cd24d56cf179607c202611e192f1728950e666e13b384cca91f47d5e182f8c37c525738970b5a8d1a2c60c1994e9c4b2a66fb4974ccd165e991e5c8a774131297bbd334d71378520f737e5e3cc7e8a158e36546ca8d850b9770c78bbeefb3ecfce56530762d0f47d3654441c021a94cd140fdb50b1a13205db28619b2a268fe63dbc9a52e2987afc36546ca8d850c14945808d63f679c16fa78ca7206094c9a23ed30fc427a72f8b10c4a50f2f99be6f8befa094e0f235e13b5d58534e6f9374e2c6efcab7f461f996be2b1f16b00b02676f735b6ca8d8289d3e2cdd0f3a32a2f7f65b32fd4ef7a74f02bc5b6ca8581c703c9db27c59be249678ac4f1236542c4e6733c526092fd95099a952ac1d6da87c427c4964876d926ca6609b2a1f4e6ac26a3a9dbed56432996ca8d850b1a1b2721f7cde37abc64c8d169e97238974af7377d1431f67a7377dc784fb9e377e5eeac12b86fc5e35a35d31e0a3c071b662f29bad98bc3f6b81b962c8ef671fc62d30f78a21ed7f63cd16355bd46c51b385c72161003344c055c81683935ed0e83ae0ad2630011733a894f1945ec8c066f01783e338cee380e0beeb1101460e522f5a10c3450952344830811291b8c04985c411a61412546484488881d2810b308cea24810cc43049e088f09380102acf24841a35a0f14263cbca8810c8863041406174f085010a6a01a00320bee2b31f4d5bd18832e490b8ba41d32f4b7ee21723c6bc3bc0d660051552b861a3068dd50c193160bc704123aa52210a3c99bc0ef8132f5cd03801bc17f78d2a15a2c093e9f33a0e5fb7a5d85fae5cc1c2438421dd41f7eefb1bcdba2498624d692f3313093e262fd9e037cb933a04711452a9d403a1e2418a4fea410e95624d113b6c8eeb514beac30e0adf4b205329d40bf1be82c42fe44e600c697a1bfe74d3a0bc65329964908202b2db66c6fd7dfb9c89d55780dfac4ba6c2243288e0830f5e54c81adb0824c8a14256278104af37c6b6ab919a1d91601624f8b14ee09836ead7ee34cefa4395c13ac0407edd87e9da91a8c763c81e755881d40106d276a7b1dbe6bbd79bf9df915c6116cabf23f4370eb00572d623cd5b345bbfd21c524bf7521a09418fffc3df8ddc3885ca8d0ff7555ef8e0a7f90e0c72462369def2cf21673080a67044e2ac89c043f7ab5b23c5a7977084082620022e6392927c38d6142aeee37d95203ef8395695203e3c2c11849f071bc4f0b04490f7dcc8c3111e9608e21e8f3cb46e8d83692624a0055a8a60030dec8006dd12c4f691e20018980009249e10e30125f8b44ff73e9895843760c5023f54c0043e53a8dcf8e0aff2828615ce9cf1c12d90fe1dc66315ec839f1ba75001e283bf0af6e1b8e7cab87b46b4bd230c6fd95fad6e8d090b1089aadb5afca63782df649fc3d74d636804bf8f7e71636febdf6fc4bf2daa7bee83bae7bc6e1cdbdabee99742ded008c630380ec481e3c68d3b8e3682bae79e490776ddc9ddc81dbbf0c7472fbca311246ecf9026772377ecf7372285f442f74015eaa24ea6cf3b8b4d29bff79404aab807551cd775defb2df39121e3cf5df1864630fe3c6b2dd979dc7b5cf78d69f4c6ee1bfffb419f8f08f8a49078768d74a3167f6ed482c59c61390eb9116585b5d65afbf9181fe3eededd72b9cb5dee729dcf2d53067398c31ce773bf4b170e77491d777d2e37bacf7df04371acce0ad3832a1b48bae7de92524810e4462d77fc8c78df3dc7a47dce9003b03e78bc62ae985be323c55e1c4eb16d9d68c2baf524bc23fcfa8d805204a614914567040ee322c690abceebba22ae3839c176c3e0fb41114edc1be0c009452c7d4554c16206633142378d63f9016969fc06244b8ab53f58c4b8b558c06051a202b88a7577777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777f75ba5cab52f5ce1b37befbdf7de7befbdf7de7befbd66fc0a50065605579cc0f75e514410388caf74e1d2711ea7006bbbbf5c99805b7b05027edd1b70650157a870185ff181882b88d8e20b1144f0ae7c5340c19de0968008100c810825dc5a228ec0442c5d772292b2b0d676eb60cfe00e1bd0832938cc35008a06785935a009aee3b80624b16ac095ceebbc064cb1597c196208a4e3f03ecf1b220c14a6ef1ba2892f437021610c9165882ba924c0ae055f8698b21485cf2900368e998d3224eafb41140b9c71af9924f28efd2896fbcc307379ee278aa771c637ce9eac9105bc662e8f67e6d698fefb44d1cc35b90fd8be8322bf779fee970d995c1ff03d33974755e6d698deb4f2cc90261338ce00736b4c2fc45565aea97b6beaba6bfa1765b090a6bf5088b3196648d3cf5e94214da01633cccc402dba088a6c6f99c68e09e2375a33b31961487f0e8fa8cf4699ee09707697987c3e7d6bc4781632968b99f6a29a7d23cb5333a400b07e859b9aedc0c20a2aa47003a7660668e1868d1a34565c6ac643ab4bcd0e50e381393e1772a4ec4bb1160701368ebbd38373e342cd8e8fdcf1fac89748be828cdf9727008fe3fbf2b4f02cb49ef63208c0cb91314fbec9bb5d21051bef961cf2f3d6cbe5a9f1762503c6db3197c7c8db8f54f2ad442467f8c819be67887d373c01be2f0ff7f6c55b9af0fff45d1e1cdee6f04e0a507ea2b85afdb76cef18a05b9ebfa188abf56d52cb26e590616ca3fd3ed1d6bcd0c68fbc49fe3e3a175176938c8adc27b3b4c0f0b2cbe3638e28a25bad160200809fad324b8b901fba3c37e96eb93549748b02dd5aba5db86496162437cc6dc18501eb7db652814990911aff347e26cef8d9ea22e166d1adccd272c3cb2ecf1d43467c178f8fc04574ebc5a7ac4f6669c1e1878ee06e75abb512c5ccd242f4472e8f5d528055b2e1b64c6083c92c2d3c7fe4f2f8787f9b3f90af727cf78e67d12d7724742bcce5f131d68c9309b32456b935378c3573c558337ec770b9fed7ccd225936549e4b2e4586e0dce2c13e9632e0f8f1eefef652e0f8f8f1f552e0f90f7bf4b97e785cb038390f7bf5b2e97cb43e4f21479ffebe5f2184112c39277a0f7bf652e0f93f7bf662e4fd03b0def8fabe0a5cb63c3e5b9e1fdfb5b5581c56044acefd6b4981c461c0830da50c30c6393118895448618048084d5b7e6c86884c5650b0cacbe3541c6998b01c27a8d33f7d233ce2e969db107eb265d2f37cbdd72b9dc2e2c8c01180130b2585ec5971c0b8dd50c19b706c638b362fad6d08c335b4535ceec12cef2a287ebd77d006395b62c7042db6e3130b06ead0bfcba930173f1bd2bc01cc666a0e03a8efbe2755d7b692b4e18019a42fb85f65b077be68e77498c672163a6bd5851e2b3b2a5bf140c25b07b62c56dc799896c7b258823c856ca42690af20a91841264ffcc92412891de0b3185b48f7b40deb74a5090de5b283a78a4fd3b33fdf4ed15fcefbb4fc2b1302a4ce2a1442801281a94694425cd2ca1902baa84768b6519acc98a2a218d4e53b6a2a0bb4fd0dd9f09badb89ee2e0109ba7b04dddda5bb45d0dd21e86e1074771337c89a8dd272fd175ef8f406f33335ad27a8906aba6ad4e7a146e86dd4160b3cbc4d9a6367565b48f989101291900c96965915424acbd3247299babd0737d46c0d45289adafeff4ff361bfaaa8cc36e90fe4180a7bd91de59fe667d8893e12ed443f96d73266bb7d26fa55bdd5be5c4b2234ac598d9d5915426337359677305354b6de4aa115569eb9bb05d0edaf8e651dfe47b99631743d67a7f92a5279442b6b655adace5bd1f3ecd8a163aa486a27a0bb73b4582bd3ac474a3394fca7f9eb99d59cda3e133dbabe1acbf9fc2fd73226b466554d5d679ad7b5b4e1a4abdadd2c4e08c7a36f0cba7b498b36568db4428b35bab4dac4e83455d54cd2dd1e40b296361ca435c795e3d2b9418b4ef326d34a988ab343470f2cfb208af9f0a1630706cb3a373514e622bac956d308295d55d328a7dd46dd1dd4620d547777a0bb311635cd6691b99e3966feaade98bcba9eb96694d597ada5ed6934f2f5dae9a1e34877dfebaf661bd22a44e386283937158d52d6846cb55466a4d6f25ac6ccd8590ad56e6794b2b69e371486043bf34d879c16c5d2f2c876138a52d682c8d4f2489a896a37254f6028cd07a9a4e598d02d86c25e2f357599b652a8a69647383d884a221f3b3a383d59479979e41e311e1d453d3b7278dcac68ac7c42436d3cba6768714696eee652ae65ecd79bed346139860e39451d86c0447773a0bb973873e6cc99ee6eb4e8449263656a649b61554b19ccd53c91ec60d2cad32cf28344b3d9c828652d96a1a459cd6910a134dba2943598a99e66ba46c94f60288d4828ab25d10a2b6d3574c8eb05cb31141644c78e1b90340345296b41809ca8b9da96d0ca155d85a29435a3d34cd726af97904d4d33906a3520c6b0e91596d31485fd8a9e9fd3f2d5a34fbfc8fc585e61d91625bf6afe6759d0ff18124a51a1a197ade6d1c7b24c354fb3e87dd4d4a5ae66cda475b71276951999b9062222b966aee78d09528aae65ec2c93d0ca34db96d0ca5a8a2a51d5923644452a8150256a2680db5e5354a63e8aae32b594fd2bab698692d33f91a8a94ba696321c9c9da21d1e3b787ae0e8e828737876c078c476ece0d19393796ef25aa6ab4a745371d4f5863e8165190c67358d70720d95dda0466909c391a9a5ecf55a53d466bba942b956a645228c0e7477accc69ce45422a526953d59206cbab991e050962aba54780d8ca2439a7413eb4723dd11dcc1495c54c5a0925c88924d784624d5eaf6ca6ab904dcd6bb9c6d2f2e83c428918a9b5b5145acfacae674eb3ec34d50cc55ccd9a99c6ca2c1382e95013d2a116abd1b1e3f6363a76dc5a79075315cab77cd341289683d4c4b251cc4c89c8b7892129d312a805049669506142e66996b221b9bb37d0dd1ac83114968914a1680ab49e5925227f6cb5f448941c3b91a86a4e8d4e24b65a7a24ef6036c9b77c1b800cb69636d5248254d2329358998fc07448a2438d88915974a2435694d6443593ac28caa4bbb7c840cbe759ca86d86ae9115528afe5aa0a2195b49cbe5eb5bcaa48aad069963258999636a135d368a54d48bdd16eb51b6c4565aaad3c9be4b55c9b189da651a9aa39090278d025002a04c850046b29d4e1000934d1c44d12560f58c9808a0c10e981064141bc9083aebbb560e04cb72b96d7d5acd550d8139ec04aa28f651a0d4d3f13fd59c27e2d652bac54cf325dffcc36f45125dd7dd34da445b48a6bcdaab99ab4f24cf31a253fed445313caf9d3dd17103a8d4c5a29947730d5f586229532747712a7b9aa39f632d85ad6321afb9a56ceb0f486aa2eb428fa1071b40add9f8b8f86aa4c77e3607fe043e7837c9ade60397238d5d89c5aad03fc01badb02dd5d81eea6c0c9a6bbb374f704ba1b89eec6dd584e06f8b77903bc9aba5219ac966b387d438f9abad434c768e68d0867ad1575ef6075b70ed5d7ddffff6fd3420baf2b4421c6e4208583feb5fc587e0233cfd2b6de92a4689afe1ca1698afafc6b68e85f279ba1a17fad4599f67f1aaa59654666fabf16655a6be85fb14c33cba234ab6ad9ddb7c5d402502da6a4a46add4da3c55450f70b2fa8e60fbdd1699e5976f435ff02906fbd00e44fd32813a9a9ab5ccb9850770ddd31747797491a6aafe6356eaf391aebb5ca72326cca7e3a304fdf2b5805cfbf8fc3d7daf6b603c030d8f67e70ed6dadbd7ec45acfbab5b7dbc1ad5bcf6530b1b6b35ebb0d5dd7bbae757a8bddf192c5d6fac92ec1ada9398bfd666b676ead7f33b80db7de61b743706b3bb703b033acbdfea580bb5ecacab036c6776d16dbb9b57e85ace3938987a36c90cf7238ee8f3bd6b93daa1dcb052cc21bb75fc0e2dbc29cdbdb9c032c16b6bd45516cdb165bb746b09fe7b0d639f76bed0e8b633f8b7277ef86d816dcb1db9ceb02697c2cd8d0450d8780e59c86c5f6da7620ff93c5ed66d73f6485b8cd4a816dcebe56e0d776167b36b4178bfbf7bab6e75a77fc8e32b52c67ad978361a0c9b17eea3eb7d65acfda9775bfc1edacc9f18562473fba37d604bafd3ceb425c054fe1a670fbb655d9cedd8658bcd869b8bbed2c2eb2261c16e4dc7236c563adb5d6860ba0034d6e893e94e77600f6b3f6bac5f6884dc17df80d07dd73ce5eebd641f7b0bddcf561af6d599345596b7f5815fc743dfb61ebd6beaced64380c8bdd72d8fa70d05e57c1deeb8e1d5b1feeb6869facc97ed8adb52f9b829fbc6bf187adb53c6f5547d705ce5e6bb278654da61788830d152c00b075efdccb568c91031eb1d6ad5b6b6fda6b5b777790ee66d2ddad16432e33a0c09699c1d51fb403326182288005119a943bc819c00ec63410cb06bd640733c84b584e48400905d0254aca5919015040052514296fe4f860ad707a7690da004f19e2d8a1c0c9ee94360a3dc69c41a247962dfa660c1454b019b3c56d863080ba902527870b6f730415c63c4a852c335c74961739f41037443f06a2fb76c7cebc96af8a279f934daba92bd388caf534531b4e8ea130f3bc75534e017841528d175e93e7d13079dcbd3150413e2819bf5677fa7a300a06ca23006abde10d3f31404420a94bb967c236610a3d1c483ad1808a619b940fcec3063703b61d902f492fc840840608c7272c438d15498d00cbbd6c3e38ae716fa8487201080131543e08b8467c4840120d530d281811482a32e3fcd41313928688103dd30db92758014a3e7c98e6eaace043132a60ca51c594cf0c04520e7242683c1f38868c03971f5e70ad5391130b438e73783e7e1801058cfc300306e04c7122082892c05b911140843a5456044934767c38793ebad397ba3c488cdc144e453c1f7ca4d0e43b62e3a7c8c97404d52406c44b92886d764e9e8f176177027fc6026020e9f41d5181680149dc1539db0da03b713fba1c240ce0cdd4c277a43b79345243542a6025a619306ed090e36b2961c2820fa7cfe5ed0877f02001f250d8abc1bdee8e09855b78219ec93b611c2e06dc23c472362e8b939163fa60d70796a4ef24c3c4e3c3529205797c2d8c03e3e8349094238589702e702a9870e01b2a9d9bc20f492e1c7b8bee0dbe9c01c60210819e304062820361bc70614203490421e50051d42745193654002737d840c30c4d806410c09157cf8e160b0100c0e315a800862001186bd0f0b2c400065a3030801f185e29c440811d144e9060892d5a92b00005b2486086560b464480e886231841086d0003cca2203f4ede962196784c351093812d2f1f3b336080a7cfbb614304217092634b94080049911f24ac2820012ec6f43001131cd080941a68e0d959c1c03308a3041a82bcb063f2ba0920810403962809f2a3059485823fc19de0667099378293f11d7063ac0ddc0aafc244056a0a9f813be14feecce2f852e06e84347c86c7b030685e702e9cc68a38e5207772d3f739b6d7daaebb6b84aa6be39e20090b918465e872b4a288351f682e90c471288f051bf88029a08367a092d84017441296c124e374630544928900f886ab02b876a8afc8d7d39d6e4f8e17247d5d926038f1c1c4738598724323a07490c49d49e25035aa4842ad371f4832ad52eefde070b82b5562803420f003564a52b1c4bf373438df8ae6cc0f9c0b5f8f07e4aa2e906fbd3758061858dda95322e9825d0d6c03ea5c8b51d8e6548473c1234057a33b7533140c140cd30c308647801b851fba1a97cb0f1c98a400cc70ed850290027ea1541d0db6f7e60ec140610ccfbd1a3c91eb3c9afbe262a46c075e0ea3eebd7ebdfb5dd3e906bede0c9e0b15d089c6eb3c7b3dcc03e360fbd1b86392c0568f0d24a594f081a6c3363e223f601dfc300a7d9fd9020835103383302d0073336a72668b21967e7c607881073d8f60049c1644d5e7e170c312256764f084971518908305024222a0032ba260010a44c084161c170b42380fb8ad0c50d32520a1cc15544ca1021048e9a1004e6eb06189122345565061868c273851022638d0c3018452b8819e2ba8523ac8810eb530e9cc164d6082131c66c8a0b182052b7802052208410718604501420520400d4b94208942062b888109b01cb9810da290010b54808213602089052000082494b1820a149cc0090f4c49ca31243f3461191ff440072d50410948d04406861022c76a40f25343134621831648c08821a6e458010480a4c8cf8f572ac4ed831e44210317aca0042468a2031968809529390800c90b3f5e3c3c746a5cd0e03ee3831ee4c0052d58810a4a40820e64a001435811620a162010cac1090c382e2da020430caa140e52b8b1a4b4001b6ac8a980100b408ab2449fba3b002d9a98d0a633770b1c050e0afe846f0358039e01d76275b8cecdb12ef0c66dae0bf765ac6053f01b5e8d4bc357dc0c2bc3f4c2858b2b625598124318281ae08d138de9fb3aef761dc75ddb6aeaaaddceb45c553cd4dd30ba3b77b78d1671daed7275b7b78881f4d017a15ff36a5e91885aff3966aaa7f9aaf9abf93f90d2322d65b02f7f45cf57cd5f9188ba16f14d777f2de20074370b2dde33a110c4f007dd9d6a3114734310e113ba1b6cf166d139b85c2e1c5eb61a9d99f645e8679849533f458b6267fe6c749669778f2d5e5a778b2d5e27dd3e7cf4f8e0f1b1e3a3870f1e3e76f8d0e143c7478e0f1f3d3d3d3c3d3b3d3d7a78f4ece8d1d1a3d393d3e383a78787876787a7070f0f9e1d3c3a78747872787cecf4ecf0ecececf4d8e1b1b36347c78ece4ece8e8f1e3d3d787aecf4e8d183478f1d3d74f4d0e991d3c3078f1e1e3c3c7678f4e0c183c70e1e3a78e8f0c8e1e16347cf0e9e1d3b3b7aece0b163c70e1d3b7476e4ec085084d6ac0e7dec348b8674929cde686659d443ba817cfb682ee55ac616d0dd515adc01869abad628b99da39965d14f774fd147b0a0133a0b3575c5cefc0456129da60c56d66e622d66ecca4c328d66c6709495e4183aa449ac05311b1a89884654ae6769a62594cf273a24d6403d3d9a349141759d66293bd72765edd1f5d31c4bd13fcd4789ca3f42cf27259377c1b24dfd18d29a661b9ada7eece9a1aaa36af6e869d2e46379cdb1168cbceb2c612a5ab3aaa9794b6dbfaa3946435b6fcbf949ed93bcab76ab9951cadae77fa92cfcbb64b2a19ccad6574fb35c6b5a9f555a59e45d433a76dc86866e695011fa43b9569eb06c5387deb5aa28ed33d17f363232d3f57c743d51d8d0907a9be5a32f323fabb71296897ea8c6e6f50a6a0d7db621a939cd6bce456a09fbd3aca9e659ca60b9062bd33543c9b49b556664d25e4569307355cdd3aca579cd311566da4820195d6119ca9735396dfd9749deb5aa26ed878204011952cb9c7e263ad30c259faf9ab17c7b24da6ac24c5a2daf66cc95e658996536aefcaea1a14722fa35377957cd6a3eba7e14b505d556d65aff2e35cbd4525626b1596f365a59f3a7a9d2ca150d7a17112445a789a6f9861355926ba51258b6353991a0416a2c6725b06c6b02438386103951259c111c110408d3dd5c64a5aade5025ffaa69957f03126eb0a2bba5e897adccb2d7d010941f1a5af2ae9a1cabccc8ace568bd4a2bcf57735ad26039f6cf802e47c812012cd4d4457403ed06176ec0d1dd4666edd1f311700416ea0d01a6348d661609d9545568bda15915a2d1cc2742b2d53c12d2e1d2d171e5dc9c47684a24534b19cc869e239456946628b0d256c2fe656a79c46de03ef015d0c095559406fb286bbead67999646ff3614adc17472a9b17c669306fb1355cb9ca66811d3c9a5aa2551f9242d6b32d899893e458bcea2a795262cdb4c2a66908f90d09cd6100601b51edd82b628eb24a7dbfed8155ee86e2674f3402cfaba3b8c151d86030d02a220fa891428badb033278208abcd6a8eb99a1e0f059166432994e331499b51874d42693e9e432994ca71a9cac9644d928966947e8f904e7cc382a0c8de140c93117ce4bb5adabac95838ac3d7d055bd0d31994ca7ee465b6c12a665d0dd316815e7475b1b17daa21a0aaa90d169a69d9582bba67566da0b403e66d652452d32e9d2dd308012cb3afccd4933cb1f27fa44b55b0afbf2d52c536fb6cf31f41442d7d3148a9d19a6e658bee9906342b00c05473d51f3bbe9ee02b43880245ac7e7785b09138ad1d07fe185af69d94a98ab8896d51d1d57cecd8aa2a90d0b3d65002b3575e98082034bd51a2c8a90cdbf6cfe2594665aec2c65423638ff8ae5d8792bca298e7aa3d9d2dbbf5633965398d0690ad56051804220224043806a808e808c809c00b174ec98010d8a759b20cba0d268a43a24cd4064b99644981c6525ab5acab0aaa50c6a0db65a7a44a6964732cd66a6416850cc564b8fa8ab5aca00b321c7d0214d62269113fd5962ab1161a2a62eb32d0e0cf0412da27fc432d123d188caf556ab99aba99a45660cadfda09566ba7e917943cd22f46de8ba9a51728c76438f64e0a2e6954664aa2a6acbb2352d3f434189cacfb215553f96735afe8a24c750253e44b29906a5b0d37cbd886ab77408adbce99067a095b9494e8156146592cd34a86d0e6ba3ad79a2e66ac64e149653dbc750d99a6ba979d321a756a6a62e5836775c3a74b8726e886237d94cd71208c0a6bb5fd0dd2ee8ee160489659bcd4c57f55553cb23200e4377a72df2c0a57b6845d1342d6d7fa4be8484942c41d284c90f0d423f4648264b829a0809bd7e62290acb4ccab5248216c9d4f2080d317035cdc5d0c10d1a7f20964ddb0d0643bf482896d55be325d6331f7daea14ddea512ddd447cf97c1ce32f5e99b54d3425a6db52ca49a2ea4fc4488658dec4a658aee06d3dd2c1852724407caeb55a2a69aba884c1a14d309661ad4841545d347822b462408a2112090d20ce5737a5bcbd3c86cd25601302320b03818b1e9760195e91ae5e7f67ac1cc583e6790a9e591273094e653ae2591a05f4bdb2d4dd121ff62b28409939f7ca3a131f495d792662b6b3838b6b2f67afdd0f809f26376ff2b769a4fdee65f2f989aba70d4d52cd39b1a2c0a4e0d16e5444d557dbd5254a8068b22b4a619ca89c288c0881ce9ced1a163c751c92486244a8e9da5b9d26eb59cc662a4b9d26e497270f236eb0d7d9a1687bcd0dd3a2d0e4175b7cb767b1acd2c7a1acd245bf4e9d2a8b996a9aada441f1bbabbc98f1112480888fc39f2e8fa3a3d7278b8746c6596bdda427e241a512dab2a49946b20a5209d2093201b4006b59a8d4a9b102f48e8fa423620c4869d1ead578790202942d7dc44888d90140c4280214c0771c5b2517ab3bdd16966a2d49661674e73514e1f4df30e65921661c8e96ea3d3cc34537664abe57525bbfba7c52063da15a44bafe8191464a8cf5b1a3363485a0cf2f5dba4689a661c9cbceb85ac963985e5d8114aa3bdc0c3bb86209de51b9d261afbf586be70c30b1c005a0482459116811c612b737a9222909e3e6fe9a3ab79a49aff67699496b42742579aa996b21b10d68f30dd2e9a6aa24a7e54e96e178d762b7ad5cce95ac3bb90d20ce555138946b379d57c576c488662aa67b645c9ffaa0945e8f582a966edf5424d219b3af42a8d56c25a3f54d3a4b564e85f436b5685ce1286b49a51326da8c9d090a126efc20f89a130578b3f96747793165f5abc88f07ac1eb04af9af862bdbeee1c9cfc4abba9397d9b58566f42383871a9b78fe57cf4aa8f29a20f1960514e14a6965f0ea0c59e2edd64cf5017a1b17cde705aec69b52bd75058cd34531b9ada6ca5cd0acb4545f973cc54bf7c951c1afa2c0b72ade859b422f96c5b616594fcb1fc0485729a2e918709dd7da4451e0ef0ecc063437703b5c8f391218204c87a66283f3938f998f9383871251962c3efc4768874770e3d2ea3134d8f3e9f68ec8bccf48622fd13989922a9657ea434d3f02e9586c2d0154d6d4f2b6ba9aa66552d6d484436eab98379a2a90c76223579976aae678e9dd99663a759caf28a2a71a525ed0633d7b4b47df927fa6a8a16d9b901a687da63051e60bacd2722fad5ace58f9d657e5226e151c4c3070fb13ba7b01c9ce0e084147778819945262cdbd45ab923891d43edcaaba9a22bed5616e5d8cd899e652ce79809336f4dba1b86167788dd9d8313b4e8347170f22e241aed56a4aa1906bba91fcb6ba6d96a28ecff24451d62babbd1a213490c493e4da3f347bda967564f7408508e8effd173c3c1fc1cdfc3b3c38564e86f90f293cf271ac3d0908a949f0c7d113a842406243a3a9d21e84821ea3820851675a20441ca3120e527aea1219d95cebb00f4399ec78e1e578e4b3d51f3666808293ff92274086868a806c845bbc16825ec9168792dd31b0c563e9a8f3e8a59245bd31c3b6f7f7b74fd5f5194c9e747aae173e478fd042d51922387ebcf0cc53442ca4fbe546b793569b4f2693433869c21e444912382eede6931c7871c1dddada4459c1ee064e96e15293f21baa94839861c436132b594b9866818426143345a09337f5c47f98495e91a253fba7e91eef669d1a5831f2dba92e8206f5383d93004488a16a1d1ca21b472c8eb757abd56d82d5dd5138509a93976a3c14e53e8ccb1982913326da5904d7dbd8a6859cdc1894c2d654236a76964a6280e4ede15cb39fd9b13fd73897843a6656a79e4f50a8a218191af57500e4efe7170e24a730d75a2bb85b478c383ebcc9908478b3747ba71803c00bec9db64330d1af22f35af665ac3dffcbf0f91bf5141f0e57b7474b878fef5592d7dfea646a7b5e451f56d9000913f141b7a35ab33fc6bc808a509ada68ada726ce8d1f569b412f63a7fe3aa697d5e332dc73e453faf667af4d9a8d4f99ba11a9dd692a1bf0902e401e0ca66babe9a8d8ef2d9e4c6d5dd352dde70364ee8ee558b363be8ee1e2dda2861e3830d926883b6d0a2cd916e21351b9da50c16240866dad0554dd534d76eea89c282d4f28a6455b39149c408a5ad678692a1a036a12865ed2cd79248accc4756144d856a592d6540592d65b6203d3720b04cc3eb05cb505eafd8aa0ad9d4722d63eb794387146526ea7a6613661615dd5434c34ef45c4177aba0bba1e8ee1474f797ee7ea2bbbde41485adb7253ab06267f91956d26c397d744d83d4d4956165519ad7d3bcc1517bba9b01624d171b9ac6fe44ffcc4fca9506b4e8348568341426b4c2328d86c26a6cdd693eb3510d500d8f4ef393143daab92194c59a6e55884cab620b06ddad26babb552db68e28d73256aeb9d6526aaddd2d27dd276aaa69861233a1a0a9ed4b9fb639b22851c2b472badb6bb1154337101433c3321335964d9acd46a6e8daa4882b9f686abecdaf513291d35ccf1b5a2bd51c33d334434187d87096fff9682817c5ce52b69e37f43ccb4fd1a2b5546fafde644767567fcd48bfa2a7ed693473553fa7e5cf507e4ef393b4aca5792d8f1e28099323efca37a45899535af9e8a3e71799bf6655c9513e8bd0b4cc34d867a2582e42ff5d46a7594361a7f92ad1c7b299a625ec5533cd6b51f9b10ca5543f7696b11c2b511a119a8f3e5666d9bf2b964fb35c89d057cb23d554f3998d6a685af4e5a32aad7cd5a4113d5259534dd9fa43273af4a7f92e23577e9b22f4330c4d6d4ff43639458b722a839539d75e353f46cb66d1aba62ce85d69b6bd5a7e7a3b4b289996d3b5a4e534d750f58bd08fa1b0cfb2b53c8d4cf5f3d1cb60a6ece8d7723d735ada56b5a4c1805464aee8f9e8fa6b566b78976aae59fd1c86cab52412cbab6aaa69061ac24135bf7ca313a5bd5afeaa9a5132f9ae1c86d42c839539cdb2155d8f5c67b6d94a59961dfdf96b799ab11445614fa399479f66d99a8dd0f56367492b73fae56728a52c87a11c4387189d66eccc404338fc9965ebdbe41bad84f2e5aba5ec57f38b90bc0b8966b3951f3bcb5fcdacfe99f3d16a5353b4e88ff2995374551f5d3fd7f0b17306d5e8346db6929666284b80907c627935894c199a0219993e01a23ea8e40b57763d4b32a5d0cc0888000000003315002028140e0a458301711cc489e4f5011480097c9a4c6e42174cc482284671100621641421800042000c0001a931880023ebc8a4f917736295e480c3834f10d4848a3dbe44f02cce07f03d76708415f8b2620584da6780e7a4f0e72a51f9d7b84188c268546307c5d0f082027da03e65853aa8329da77b1497e9f22b58f1b2845c5d9eb4d91d0c22a5575109c9c686815d226e668247fe8671c97b579a917bda400fdb4d1b4c3bce7b79835ef30a34e953bb2d832e43281028a78b9f2fdb7332ed61a0cd3c949ff53069c35c685e9d45cce5eaa6dcaadab3202c7ac5f1b436dc114fda13352b78410281b1c7ceba56e2e07e39847fa2b19d8f62f106e4d1c97e74a3414e8c5792adcbc9770e22d4bff0543aa0b8c2b30ba1e0786d5f56da03f1c609187a15cec8632f5ec8cb5ddb66fac8764c31500f8adaddc8b0ac2963c0979539a7d2a631c8cf00b5f25990282debd94f19292f94a92b253353c164eef03288dfb5e475e6ef973440579a5b43b6a0c989e8faa7cc4ff012a2d5b4672c8697042be5a81b5f1f583088eb9db70088a4e1793fc4cf8b0a940eaac2deada6b0b63eed129bb1bd81f7aaacd32f4e2672bf853e9910a1f5e4e44863a5c2f37fa908a302a5ecb2dae420b7acc59e9f30a2dac25a7e9b396e0298168747718ff7f03848adb164f2bbeb01610951a1647df4a5290a1c722c6b90532a25fd8e8868460c0228c9e21440af44d1d350586e9dd1799e2bc69e3de2837c5f8ab19e50ff08727db319132038f9fbd512c93db2a099538d8301efb0044244732259fbe53d656803b09cca243ef7fe54f81d7198d849b839e20af443ca940bde86103c6ab9e989db1349b418d0304579a1f27df42ec78fa90b45a3f02fc4203fe669bd5044a90c3218f8c0849fe8f1b02dbf97cd60b4e183915ff51ffe5dcc2e0d5d653beda23b1ceba39d9ece60903c1386e367133c6fc1804e9335058914964b041564eed8118f65b96e94f98f6d7d05c15bd9c596498426a87111998a5ad2cf73d236f3f7b1503d0001ce611e9a2d0ef44ae010913037235d455d1e3a3dad8e15e557bd2edc79ba4ca4ba050c8f79b3b4b1ab85c360f9b5c1a04cd428b5eccd10ee79675977ea61194d52b299cda55c5eb80c49734255a3cd2c894803f81b62ec7702e57d54046091feae5af06a6fcd9b36c1b1d1ee08ac126b2fcc66ea40a0e3814c7d473023be4ff195174679b5a42282320cf95915a8b2a6ede9641a55ef4ad45cbd91d43ae0d924ecd54c310aed3586b17f76765db96c9d8452e992472848539fbbb2f7b91ea3cd7c0ec82fdf1cb0a56bc2c07a3c25f83ce01562598cf8d43871b92aec3fc17f6f7677193b264744e1695e7c8030e6b7cf78b71dd3132a98c1cb71064326dafb6492b35ee5f288503020e2f9f57e2599bf0e7df3d6dff59c55e488e6cdd350e749669c9d7bf98eb0da20707bd766a3fe1017f0fb30a4be46eb693280a1243d98dbd18d7c5341632fe7ade366f40067f75ffb9c96eddf3dc5268a9160675c787b92c6e462de98ab993cc5462364cd6d2b3a23ac3741a711914151520348db9e6a880ef719f2a11928e4b6d3744327bcc1522034a56a80d6d3c5efc018c1cc2cc2c72e1d67f62dde78fbeb5f3b75660136899a96d16c47ad1f60ec994576cfe486ae81c32be3b408b1a0b437c64077c29d7fcaa4f0594c2a6fdbaab23d760216fbc73d4b03a70dc05cdf79f0545890c74678e7c36e8e989c97259212affc9d1d4efb264628c3d6c8e4f7c9350270614028c7fa2d6d9289e758848109305b76c6a9967ac55b003d4f922aede5e008ce296bf2c6f52b482e28d9c78fcd2087aac33ff8e5f3cb65db9268fbf2c472f3ad74f725eb6008e9eece1dc048ac1162ff228cc05ddaa4ddbab7f9da1430c3dc10f98f4f668185ade23b507093b0505c767188b8192de3713ff3c1f91413b2d6273d7b0f72574b7d36b744c6785f229964d857ea391f509821c55af026f496faf583d73c447a6c9030e9a3c55c64a683d387971ee6e1d6105aa36f770f27fee7d97fd34fb972aeb096f1c7a6ff35b3e189d34a506e8f47a17dd1ad66138fe3bb1bb8c7e40982b0068d727c06ac112d2cd6a338e19343f525c573b07b7c6d7b32814e8102ff82d751f08b02a52bd2b17ae7bde45e1cd77ea4a5754a5b442ddc7bcc2bd1cfb193f0fbed41aed1c9790af5288b53aef36a17b837d646883cbf110e43c7b39b3963bea3a5d12fdcdcef14a8cd39cb0c8555917e30702093fd19f864abadeba080703c0aab008d36b1a823868b891463a3f25a52e31687e1bd5a5a1487918518b743095ff6ad8a545008370c972e4064278a0fb083c32b2bd8a42a7e7119fa534058a3c8fa7ba999eb50a893a490f5d4b10ea4e94c027ed466e34e66d28ece57d1a2035739d206e1aaa1b37f3cb3e84119cb039588a635d795240164e9fddae3318d78b27f90b5a9149034edcc8480785fc34a0e3b8d09456961eb20c23414a25234dee133c4990ec78ada8779bf7d21fde590b48af7fddfbc31abb94679029a87bd4967f0315098fdf60167930fd6b5b5710a4806684879d70894ad8192debfd0269be3c606c6f97f689e359f10fddad1b391437e1d9cb681fa52e8a0acfd63411142b3364067b63b786eaacd10e9cca6d5f37e229ae79e2e8af5e83a76f4d670f253c9b88f52d2b390c8dca3f759f0adbfeab33db221a4b4d11945a8732e78f70860d22848d7afb92a42d233159ac9f3283c2e0ee78d7f779361c2d6d40063f171dab81bd6b94fff2182ae21b1a38d787a960de8fee426f38b3475d5faee528d873eef395d8419c41ce2ac138bf960a682c2bcfed19ccda40256c6992cc677192cdb76df223607773398fbcdc3ab1ac289ba0e7494c165a13739992ccea553f7d58fe8be44533d17eec37dd96d9f4cf490486567c29b03fd1c290cde96bfe45f0291b07cb2755d9336c39946aff671a67694f50921761c151a8166721bdf8fc34c850183a24e00af223e0acc9434a505b115211d0cb3df2d489ef3f147f016a7bfcb19c6d973b6c3cd335f931c9499e70ad2d380aa2578786ae98e719446cc5162729d8bc6a9b4132407f926868fb395557ca773537306aa2a86c48480768639c2d086d5622b2e5f26464d1992e6a6e5a4aca12e012a5ba889d53e461d0e5f86fe8693e3d2ab629100398c503c6efccf98bf7d8ff2c335748643e8db39aeab9eb4838e3675e55224b00ede60b9f63d08264fe38bd5357f6a8d727f60d8f046bbb24075ea302c9b6a345262dc7bef92ff89cfcef0d9d1afe5fb81bcc920fef34a7e9f29e15a16ffbee175b5bb823ca346d953e76667a276b021336c635631a3b31814f0b69c66919907f6d13e383a911a451ff33b2ad662175ec0037780961bd69609cfc0aaf627a8ed5343037006a6a2cad7b6595fcc6b9d0fbbde03fe5d50b548865b8144d4b7465981fe973ad2d661b9e87b9891bf45256af1ac5f6060ae4afa4d01db75d27a0c1fad49bc270a03a0f52d79c84332502ac150840b5259d06b7b43694e4972b16743ea3a3a551eabbe64155f75e324240cec434e0928cf7c03cf9f07acba32330949cdff426c7d681abfd6191b300de39578ee7ec880660223d5624523a7c0618b942d40d89d5227efd251f771e23619f79c74be5fe9d1a7dbbb8f1de2c8bac5e181099f533ae753e8fa69e703d26ede1ab3d88b8153ef204959826a2c65746156b74f96de4a229f9ad0571dfd05b2929fc327f02d8f90cd4a1b1322a95abc923d621c63580ae964d6c57a03044dc1c7829cc041fbb9b5d221379b4c693e3841118f184b253e770e9314f6de2288fb9bf188dbfe0a76141bd99f3f4b286d1e98c47b16ff117f5db3a8a9c3edb61ecc7701b67d1afd05233640ff7d64e7e0c171d93184215c41232bb10617991b4d085c7df7f2b81e5f78d747db783cb96c3cf7c56000601b41c3d9dc6b01e05307d8e5f468168d5896061d17d3636df256003fc5666b11dddf62d3c520b78cb9db0725312c373f084082f34b7325369f3ed026f3c088d18db3f13d6dab320435c88b032736a22ebfa4da3fe240ae2470c883ddfc09053305d0c3e074de804c67f09a0ce53599e0685851276ae3e22aad0a80c037d9e2d4e651c91e330cc2c9761db6de9cc4983cbde0f71bcbc89b312dc7091833f05361dd03345d85d623a1405eb796b9bc68f87a3af23a0e6c6e52c05b4950231102c7b43b9f393f8e2332142a051e8132684b80c52f81e2fec9c8f2d39bdc70f858ad175033709d736115c50a33d6440becb009574da32cb3038afeabb088dfa4e93cc661839554169288ca930bdaf6e43dd29f7ad5cebb8cbcf52e83439cf60a222284ad977adf9dd21c3539492a600e929b2a792a213d629ac9d8dae626badfa5d18a6e1c04a4ad7ef27c2d9119a5c803ccf40838dca47456843943ec8e655014eb8406bcdc4f79f4d722a1682fd98905808d16c01cbcf376c68725357ed1be9c1ae630146ff10f625aa976ecb5d67b9b3ab25a4332c1a4ad57c247ed5be980840d8e2878a809b10fe294f3e60bc459ce9a8471e405a453acb7e7a10ed69fa7db5ade8ce2a712c0db87fc9919b75dd5afe8d6aaac9314e3635f2efaf606e83af39feecfefd42ccf0bae9f028a7f5586613bbc9095c52ca8a9a16f43728ee4d402c005d260295ebf0ed6c89ee350b03ebed63537e2abf27753e9a97ae125d9ac2aad801ef4e17f8de3c3ede27baf2b2e7d8ba86439a5ade1cb69877f278bba35d33c31f1dbe679b7caaffd7739d37b94786a66dba3b3b16a71745ef54bdd93f517484876238a1c62a16cf317dcf14653f1812800c86f2cf2ebedd1d6f3fd7cf4787840719340fbc925ae8a78ef2b38f710f1074fb6da85295e5b168c2bdf253df8737458ad14b4e092752ba2642bfc479f0841264a5b60b1de6737037ffd5f14d3b87cd0dd58131c8ed6978bf08d806b47570ec8311cbbb39f2a77af8e70b01b99f79f8e7dfd074e5264a8ab42d6f8ef75b01aac17fced3db902a9a9dfee3b0411ebc189dd5f5e8f935c58aeef4f87fbdb43c6c3a70c44db4b0ec5b046ff68e0fdb12c66c5bd64ad629516c45647a38c7d4c048ebcc20bd4b0f664cbb886c5defb56e93b6ffbc22dd26fbc91bb711dd34289ea9f663e5e4db65736fe52151b0faea2587a5944c517d966fac48912dc48c1aa21edf5f33a2be21ca375b0a70de06362e210a97b7af071b436daaff2b4fac97b2385b5d123addaf81c707470800338c8e2b91c9f25955ebc80344c7fc069b1d6099c1914f6e0dacb3d0c14cc5e88e11553585d25340a84f50317384b08679e6ba3c199712d74ab63470cbfd179406afd3a929b4110b6eb64775f4d43a44d25b2d706ec5698bfadcc946b77d8f4cce05657cab944af0b0091a1a1e43df054403d67d907a35e10ef2466539aee5f1978dbceaad8ee871b3659b862cb4d4b749a3b7058b1f105429ab4873d2d08cc3fdf95568017d8b3d6207b6e10bbe841df9f04deb20cc67ca0549dd5a293628335dbdbb01a935eda5fba219c2ff9db5e910152079642e4ec320bdf06816a413990aeb538a647c5e7962ab4a9d2247435c9e8cdaabd56ab8dcb100b84075ec8dfafa943fc89bb85eef1cc1ae33bc1759c4676bb9dfd3f65dd267ee52419725c5256186d8f31cafb261d8f530c15fef6f5f8279fd312faef504f89df7e8c3e3ffe5e46a7836845a675b9c66787fb788a2118203a06e4158307f281d39df1f09f06a1040fd837c704026810f0fc4ea6f935ba2d3a3dd058c64b019a055f32ad40b1c741906280d2086f319722e9287aa9c2a1af9ec9005811b52f323e1b7c7329601945f5ddb7d16d79264ddcf3e042ba5fb3d4e0f78d9dd6fb98cce4490f2c225aa51055f05a20567500fa86020c6a9a1b2054cbbe1fe595dacbd73998592780405cb6194f9139d1e373877ae4a6f85aafb87dfef427a9ccfa14bd4774b2e1ef4d0ba685df58e5d7059a9083f7b3b2d61ff1cad13fb432191b280aaf813a94f593f03a5616b9b67eb552d14de366589506cdae7895f081614dabb5649d7703563a24911da4ff3be88ef39497c3840311332ed596134acac5c6eecc271bce8fb81ec31cc8fd4decdbe93e9b6e8367e1cb4ea7b137f4ad1730f37ccb17d34c6ba58a4bfda5b410dcba06659941e2da6b9a0b58fd1b3154f8ed5c50e6544e11a4cfcd3f52ff3c34448c2f5fc12dde6bae13a6aff49ddf4a5b02ef3d80a4914da1ebdecf05eced1a36d801923f5fc03ad2b7dfe8798dbbe1892c2f6b2ce6ac12565800f23166266a34b28dcb2445f33e423b4e5dc72d33decb451b7aa77a238c9953f665b955952699edf8f742754ce5372f905929cd0d3e667eb0045ec63c18cc97ce953b2bc53c10da228676deed336d37131ab160da800637b29c45499bdd02620a7c149e17e65b2c5e150ac0a0d31fc2f296801c4281b79268505cc980038e32a36e798439d1a16463fde11d55f86a58555a22eda54487c67e0b529e00d6aee013e709987c574dfc84fee2dd5c8d7c016ff079d08ceeb34c7c162f72f4cf810f576aff437bebb5cdf7612f6b0eafc862864a537cdd85e195607e91ee084f9243b0396f24d21e2bfa5bf55fd32c804af4d2ac9c8efecefd14d48c37d436d09937fe44f7ff8b71f8cf44fe2610639a09360634f5f7194cef7edfe43e63d9417b5e8e340332ac8606e0f13d37b642a768bbb3216c5e1022c20e4342e84114357af70d09a637a0d6707e247ce891e0b29bea2152942ed6a5c1bbd9ef031842e34f597666062039f082fff5f2ef876abbf8c210e12c68dc31ff9442b1c31e760f1ee58ea336f4070519f297fd17627adf6953e97dd35b7fb252df1fa86b53ed7cccc16b5620ca6c2514ef61193ffab06fd41659590fe9e43423994e6e9e17fcb6bfcdf1074dd1f6376e7eaf3faa20c14f16f4b86c4fb418eed02d2d9f4ae63def65bb2cc1d9da7e86c8f2cc7488791dfdc86ebcb6a797f8e82fb68c6ea0f92191af3f87099e49ab8b1828051fd8c92d4550f6ea4c7b9ff6a0dcf2beef4cae9ee5513e76a9372ac0ee17aadc0f687b5d40ef0f8b6ad867282ab0ef04eb05b9a82a08c6eaa5aaab9e5cb2589978012ade419fbabf88c316e9d393ee3b9dfd1189c09a45fa4e40dc1fd787bf6459853989c9551edc9dfd064efcb4f637780ed0cb11b7c3c309679dd6c56aca2cc7dbb9c2342c6036c34dc89c57c3f101f8d85f9d6d59cf0f66a30be53af0d677fd4f69f89b2dd2ad299527ca25bffe9cf43f8e77de17bf93b1459bd9305c1d55f7ff0704f087ff32eed358856119e8719f760036f7fc4851233b6b3d8dc1359dd5d1184ecade4a92904978a3a43523f27515a5ce66bea03c7cdf1b600f41916ff8ba4ce63d6879165367b415cf5c097e38664c0be38f46933a063daff05b0db8cfc265bad8742612f50ed608fe52249ccb8fc4f6a2f0b17ece81e8758cba9398eda40c0ca35a1a179ff32cfd7a10b8389a7c2b5166239cceb93e82070ccf97d596d7579a20a62d4253e8c16e32499f8a38f8633583f690c64b81016a9781f6fc80a07844ed897fe72449cce45ec09b7c5c8eba63d66a2045e24ee662980463751a31dc745c954545342ea31ba987451f70709300b79063d4d3e46835e77298be462a1081cf5468cd040204e3df669038cae8fc6741d994e34b85a7bfcd11280dfa46085c74eb2d624e32cd09fcbcc0d0e9fbd45e964af7c6a02b56c671293c48a5a82ceea17e14600d6ae368823941ed9fe0285fe88d808eafd9d1bab0fef601aa76774043dde19a70ad96f52585db3617bc9e4e1bbc00b1a0cdb8f2ba780ae73b80615d3f46c90131ddd3a306dfadc334e56386ffe8ada1b7cb41af9502578bcc2812bc9188c77635755d840f354cb965345fc3a28b6fc0b9ae048d405171ef363dd0c1fc39b02ac129360d1653b80a685d80a8d2320cbc6513481ee499d40af7042c497753a25b900932b194b1d685f6982a4c2796fce0849a6f2fda0e92689db0c68de313e725409732391a4a0046a8249cb42068f410f4b96b9c261972474549d415e8dd39837e9e82bfd9dad509bfaa4ffc079207abefa4fbd44d2e26447ec261e34504a8b55c4ea7a467680a4788fb70544b3a3ae8e1eaba04e54d34676476065548d7dad0fd190e1ad42e32d6c94135d3bf98f8f816f536a30316042cbfdc76aa8108190369a52b8ccce111771670869d057d8976d1699c3fe0342a38d7418063ec59d9099f6e4521832cda1b94c7c086da557c22804bf07bb301719dc571811c99970abc56bdbea7a34cd8b18326e03d00974fc48813eb40e203bbbe72dd05f4ac27a9538e608d326adca51ad3cd1aec1d997a74b3b7e9f73c0a067deea051d9316684e3e191cf8c2ac8cb4f596e832ba6831715ab40b09d5511304078918db121e1330805b3d95190a3e66bbcb4a34db6244868b5bf3c308538ad2b300796132f9b64fcfb3f4c00ff13f8f4caf8e8c8207a6c6e1536ae879695f17c061eb6bbba0be947fe075e4d67763213640174ce645b72a434f4f3e0c6c1ed3d937b3592beefe7695db9115fe928372fc8be17a587433db8b5de59d6ea7fd80a24e04f48b0e780ae629bbc4a3ec0f0b79bfc8f3639cb7e3bebfdc31348870fee7f0c0ef573b680e80b647c6dddd165850b7b34e07ff6a4e00b36c338e7c3492f4784041937d983ff97cbc3a08bf760c00d7ae37f41d9c8d6bef0161acf7e2a8af1b2afe7ca92b140a5ae5a57d531fa656feef083190788ff5975780d2312503e11ba792d921b0accaceab9b7e7537d522ba063f18e7ab543174b755c2d6fb70a40de667ba6118918221758f0e06dbb9ecff078edf2a5d7005449d877fb553e087c22e1504f3896bcdb22ba8630889c3892c0346c536ad226b3e60217341107b7ceedfae870ff8500b047b60ed60f868b6d27227b83b68a3d7055d4507e79e4b1997becba2e6c17e50dd697b99dcab7c42d9c5f4c39646e714081b77b26a43f3502da129b6b0f59bb3a0b6508e0f9d50ce9010268e2b24201e4521cd71c152b4322b9300c3c05518bbe4d7c93534c385294011c00ae7f8cc68432d510f0edf4aa121f24a3cc5091af801280c1c536e928ef3e3e4c4fb22b3be74996cfac519e7debb9fa2b54453cf86a62d85bb6fb541134ca8161b5e0129135033a0dd9c5288fd50f5d331b0c20dc093f73c29335bc7043a45cafd136e5b4cccedfe6c8355963e36bb8a6333ce035a1ce2fd57a05e5a332c3e9a36f8c3f5c019fd84226147b864b3556ccdfc4bd520fa483bd57c395e8f91e8ca56d1fc45c4217da54ec92539956446894ba89677bb0445e9c9861268a71da8bb09eebb0fcecbeb2b909461010e71f9a48874b28268c7a1c7343c38579621bebdd160eef3f135ed82ab42183f9318f319fde41e09b0eb1604e5bcae2b0ff6996415098271db9db4f58e15890e15e0bc16e08d9575cb046d2f5b545740cfc543a60380630f842f3ded9ba57184a54afce5f9bcfdb3081a7ceac8e8853d31a886148816ed2d3503b5aa12d11520d17e62594c19bb3805c7ed7b0e488639441466e61885202d987cb9dca55529d738f77289f093fdab7bc958e7c9da35a38ad40157f77c11b999b27e75331e86d21eaaa165355f4642335b2b921f98e7a94d5a4cd3fad544a522840ddaa6b8487a4d6f051a7d833fd1a02c1dc5d33e5b100d3395a0ee6ccb49af4d16ee6f17e8e704bb17d828b3d812caaf5d0e61a5f105fab1a9d22e5b0d1f77a21b1f15427ef6513d118adc17f92bf215cc05a5fee8f4fca48a6152c40c948e59462bebc010503dff0294c37407be705ea82f75174ca2ef23139c78c2a5b9fe5e4025143f3b1bc6784672628733f229b2900586045d055681be74ad1364688621c912a25d3468c42ae54ebd32ea8f57f10a1d92384790e5461386e24cf4bbdbc854936291c78a94918a2a98d4e7495d359ce3997f9bc4dedc51b0cf471680c8c06227b2a69ef6e3075e7d1eadac7e7c1228cd73f82d75c78783ced002948a6d321774badede47b7715e9f5d7c574e4f00eaaec934b54447cf60b0d5937281200c10f93e0ba34c62d89c99fac6a2f72d50f5ac1c4735f1f7ae3dcdc0b9ccaac4c0d6d559b145043da2dbb7601f9a7c81c919a14a0c92ee35cf0eacd07df77e37cfd1a78c312f88ef9f95bc10f2681d688fe7f57e0c126505ab2dfaf830e4681ed997fbf0756d805b646f9f88dc00f8340ea18bffd3dfd895faaf8fe0b5030919e4d5b1438494fcf260a46d27b6a090ae9582c6578b5580e0581ded572325f77b10657f3b8a27ca74b9d360b5a5b93c77ff34da8f240af061f462c35b0c32f135316b33f172cec77846dd10f1343b407c6b96ce49bf871eaca36fe6fab71c2c217d21cdd0634d5ef4bf1d4cbe89a9f33f457d1b647289eaf65af0f57522fdbf6aac23b6fbfe5edbb6fbff5e6776f7bf3def7df7aefbd37dffce66deff2bbfef3dad1cf128198febc61a33feb5feff6d3a3e2b7f8bdfe79999166517888ec6c8163e1f39d38783b1451e29ad229d75567018bacb1cc0ad6ac65c92ad6596289d82d9d5c1cacd138c062803a091fd1b508846b8b0ef6107e832045fa54d64be2347509838660e5de50adcf4262c744ebfd4987c5d7dab1e690291facfcc5e72d09b129584e89bf807aabd84270c0ab7a188ca64b3f211bc27a20880ca0e61ed380ab1c8020c977cbf1b33e4a744a33e73c890cd689dee9f5e9a34462005144c96a574c3ca9c6ad67591e257aab62e8a591a7dc1cf1b17589fb5b30230945a24986d5d8e1c3a186ed600867e68567a9352478635f959cd8ca2683ab4d9d7994cf4c0ede6f9c511c75e6b18912dd5abe9bc28a5bf8254a34896dcf19c26e4c51a21fd5f45e29621c66aae0b985e80a18faa844db4fb73ad4933ce2c4e88e53cace2ace9e94660666941d4ae4e0651a11930f1e1e84245c60019b3b710f10a8b6dd7fdfb1fc62b993d7a5e2170658c0400e447009e8086e6ab8f35c1b184b4b51327bd345ad2be9c47c5ceab2044a33ec9d75239fbe084e7969b85377124d104ec810947831710e7cd073f695d284c7263abcd0f2111d3919cf1922925ab6045dd1416e3c9ae84ba671e27a81e9dc39523c3528dec0ba5ab84c3a0a204570bb3cdcb87fc373ca835a288556c80ca7cb0becfbc5e00b505f9d4f04c32be0e614d863a5354a2f4de17f5f6275c373477792d6b58b19483fa1b1a80efa7534c722eb08cb696769bdf28e46f183799fbcd3a4e2dacc4c0431a3ad1f6218dc2c92e40f6c6170adeb0b6461a0089a17d66e5426be8092c2e0c896601a3825f04cfe80c16d0d40ef7eb484010d95360de4f69c8504c683c3819ca75bb2667815e0f2491883893a0210ffaca92287a98c1654df6f3317694f98777d65178e330c08c46393d02018b9e156dbae3ce3535f0931a6358cac87d839ce79c8535b6f01e706675944450299ee94343bc17880d05087fd3a5c649be4be8f5a777f1d500cc6ea45287f67d530be24996e3e54b45d4ff0a6b260474a483d7dacb2cbf3749530a024b45d0aac7660ecd7644d17001c123e675481a98588a691b3f2386834280f59da60c233071e9194adda5d23efd03c718536c42162a1cfa160382b505f14427a383ee66b4368edd27a62d5c915f981fd4fceccaba288b5c86fbcea310bfe7025b69f610b2453824d9ef1c28d1d030356eeb3ded8bbde5f405fe3898f5ee42c9b2c1488279b3d4f53a97c2e765aa5393bd305c4f7745aca31a26a4a36d64255f06e64c72e05cb9f3ea287e7c8d445a3634562871f46e7724392689f81e0dc9a8400a9bb125123ca20072b36b558444e5eb2219e9f433cf43d6caf40f19ba36cfbf86fd370299aa5ddaaa91332f029f2ed44467fbdec42ba4172d1e9a2388b99dd1b6738e02f950bede874d173b6b1305b58757a8664cffc953ce8f10175b12ff8dd329b22d4452f2b072bdc23128df3a0fff247106fa362804875c030000317eb706347c08ee6fc1e84d1c085ddf60d1f734a71aec5e62e2704315d87f8570b9a2fb0ab29bf820571524bef4e368fb9795d1dfdcdc53b955cf9c592731c02d9512ced812504e11b0dbc2385afa1d075d45e7b61b06adaa47b227e0ff3e309080799040d1aa7783d0a038509b1b0dee0d54d03d9fe259909f4b34b4884a18d5a933d056a55e04fe3529c317883412527b7ed5ced15d0d611aa8556c1805c8ede821d3cae944ada5fecc000428db07f176038d6f63a993704864d9c7e30e1ea112af8ed4b59f90360be3f255c9ff000ae9d98fe866321b087a72fa2b159b5eb3ff2070aec6a4012add92f8cd00119ffb2646d235ca16606ddfc181ca012fe609c51620b2c55c40ebebd44744168a4db2fc88c0fdedbce47f73dcc031ca8211fe3ab0e0525a81309fb6ff522364ade80ce35da76e79e2a9af00557154742a004c3e354e1718b7d231ae11a354723e560a9d69b81717d0875a99d9213f119e7cb23810af267d18fc5c57f8b6bbb8068015f605ddcd7328fe4754c404d5a8ba6ebbe9235954f6922b202e3e4e06c210445cb14280cbd9f66ed3a1bb72a9cd0a1745d45f34d704addf6ccdbb56783c3b9c75e0c8a7b227fb767187a3e000b3628e01d8fdb3f892eb5ea12434a9eac4eb05f5d86298197f1bb7e49106ea9b890f66b7ffe5d30dc7101c7a82b684bb4b40801381d533e305bb8771d8760f4bb0012cab534e114f50b5e6d3788f6c70e27f92ee353a4d8f50db0c557bd23d47a65c693bdc4ef78e191c0554f0962dc25dfe45ee073b0f44ce2aba78931dd926f72aff13b5c7a2571d5d3c5586ec96fa957f81d2f3d9378eaa9626cb7d4b7b4577c8e96de495cf53431a65bfa5bd62bbeea635429a6c34e576242c20e673721732c893344b2279602a6c6b57e103505ee7a1b4ee6fd7055d1dda0359fb6bfeff4895adf2c77b4dbf497144fa1c58fc95ea4dc35aa08eb7dea5af64afe87646f52de1ab588f136752f7b29ff23b227297f8d56c4f49eb895bd967f2d3c156df31f389566fbd7194095b9cbc58ca2acb365a159734d1f885a017bde66a7e93eac5ae83ed8ce47ebaf775d92d67fd635ea66fe49c6a768b147622f216f8d5ec4f49e72977a95ff23a99728bf422b627b4fbacbbcca771d3e9566fb179842b3fdef0c48d55ccbc24cb1ec99b5a0a9b1a60f46ad807bafa6a3793f5c4d743b68e5a3f5f7bb6e52cb3fd31ded36fb25c653b0d823b99728bf862ec47a9fba95bd947f0d2e956efb17988ab6f9ef1c4895b94bc50c91ecb9b5a0a969ad1b445d817bde46a7691f5c5d743b68cba7e9ef7b7d92d677d615e536ff25c65364f15a786adad63f602a65ebdf39904a7397891945d967ab42a3e64a2f88ba0277bd4d4ed37d78b5c87da09d47cbdfd3e488484d43c96673ed51d08216cd59266616659ead0a8d9aebfa20d40a9c9b2a293d9f4d2b953ccf8aedb575b6ad66bf43d05abbdf5170155dd3bfc1edd0d8cb70c7edf4398e0c65de942c31f40c3610d3f8d7bf4706213ee3016322c1c9c3cbfa975dcf37f8cb90381177b897125f93573825a6da231640720901e9434536df2492cb35e66fd51771b5ca510bd471720489b9854011eecea57dbea99758d0cbe7018a0128507ab4fb0a627d1f83f806aa3cb4487257a1b858f21d66289fd203c2fa57994c67b4d86782ca77d2cd2ba426c5dc50b70df9a82ecbd6c00d89399d2cb1a261367e2808b25755ab11a7d5154be0e944d4acda4757c1d7531aa94e2823a06c09f61908a0349f5268df9cfbf3b70b97afa0bf35768eaa4e4938734cbe2dd68070747b2b28b02c3d11d68442f705f1478a8402e1bb5c166cf8857add440afab5caa1325aa3554a8534ec4f8276ca2b21081e03c413546a707b5a60cba4b3adad8db1c2632b630a31c58880d1f86191b354b1b5b0c44a0111901140f0dc602eb90932cdd63921863490334bb882534dc68c356bd79d2232091538016b6b6a0d5a7ff4d309ac0f69eea74c0b4e720033056a6c734299a4d7ea7900269861fa0e53ce775dcea9a94bc343d39adbdd17347f6fa603181b28e08c47014fb183f827cdb1444cc9c0b54a6a5934b981fe1797612d2b1ead2b7c9801c6953a3e2b97172c71afe52df5b1ea0f12d6cc798db5d6d691c8d70c6e10fa4c04450108991e5fb13158ae054070cdc486d47c4a50200c9b4c011032cc7d45c6bbf7f0675724653dd82e07ef0a419aaafac59571896eaf248e80db7df95b4843e81256c00b6c5a73af8742ebcb672d1b7da70e5d41a358b588ec7d341c2a73c0643c0bd307fbbf779aef5ab610b20e5c0177a9007d3b044db7cef35f4ffc4fa01998462e244d47e2145be31bbab98b8357fea9c0999c1c84e5a7ea57701fdd122bc21865a0940f989c938d8ddcf22bff032b41397340bdba126334fa1861d2d821b6aa1504cb0b4e2ab82878bb9cd151b0756d03cfa40bce9d06ab4ce016ac687381be8740e57e3162d9179cd07446dd38b90bb85711685cb585cc723f88188589a5b3ea976cba3e81d5fe7084aed9288e4013c90e01e0975699f0411c5e13c4cf62bff317d35916da2f191cd78daef965e8140cc39afb13cef616d1e9a196c7548e400b576392a57342d22c1292e642489ab442d27685a43f9a4c0730a898ad425604db8ff9bf73b249c6cd181a732407f7abdd7647fc7db8ab24f989dd66e84a391e66f4f2ac9a5d08ecabee96d5bcfb14245f3457a82468a1b1b2aae47858737e0df6e379aadd0559383193a80c589064f754b11464693624e98d97cf261bd9cde4a367818981470a0cfda9ffe96fb2547f98177c99ac1db79620d93f6091ecd212d34352fa3fd594207f9081e33d58faf843a301d2b7a662a5604180c8507d88144e90b1c77b0813f16e52381642e4413a9b95211acc8f362112897744cc67259bb97b84105ac930788f7819ad641ecc171a845c9a05f536600599898e025b0d8d66a5f9ce68625d079a951728ed40e5c5da8a062e15149ecaf3583311581d7769e11232676a6957785d32a5592900568408f7f84b83a2219cb30b6ba15e5256528279207cc41b4c8e95a2f70e314f3e1da0e29fd8397e74708f6acfce068a92db8e98fad0ca7f5575dd1c71112ffa7a0a6e6574ec7b83969772ca8413b1436cd75dae1373720ebdfa8beec3de931a21d971cf8f58233d695f0e59519914db3025e67c2f598aef8506f813389c79b8a6a88d4d338e4ae45cbd792e4661f5c127381e1795d0c5c3e7629e74dd608691d8fb5401261674cc38c8f3325ce8c33f6eb38f931a5c725d68a03eb9bea0c5855e13b09ba6caabaac83135c13819d156038850d78753b501a19bb3ed4df02041bde9b9be74b824057eb5670e1de0136a92baaccc637971e5616ff8e7e9cd7d09a5c1416d7efc39c8f92c635b2b84508ba6f438bec09810b569409a675842aaf3ef0886fdc74159ef9ba84a15fe2911314e3d18d1553ca8925029c4fa555cc4323130d8d34fe0fa7fc8bb4a364b9cf1de2d6f60b9288529a7a4d9735647ac4bcc46f0c02d97e37facc228e908e596e6f694d18ddcd6a9df4d7253a67f4ffec04e919aa54a18a2815c495b654e01e57f622ae6dec4916aaaed19aacc6d2049ab6a5d2eaaad8b93815a62fcecbe04ec3e3a935900fdee12086437113c9bb3711937752f54aee74921fb1b6989d98eb86c0edf64513e35c38f6ac67e751765564dd0cb4b4e9edfd6a89a14e7bb2779e36db233127172e02123de3c208cd83d84cd893fa95e9c236bf6c609acd9528c1f26fbcca9bf50af5237ebcccb29d192da0580ea719c7039fb455cd40797eb2e2b714398e727f13eb487d637bf05f1ea5fc419a06104e5cdeb669386911995dd6c7c6e259ff066f8921a26a25bc3a449ca19c8bb6dd8a8c25f592acab722a6007db8bba0394c01a62d73855a93d5b48d14ad18ed74da8267b82d425771e3a488851c3cc1a2ffb02bb977e29e14f153ceef59bbaa376f9e8681007493ef37e3414eb72402c3500e1f7513f163e2dd70c1564f5bd9ee021d0cbf7c45ecd93d7e6d9d64c478d6a2d617b02138168c253e059b686e2602a62586a247841e1f68259efbf874ebf8fe03c7302ed090bad7d430b9b15efef421880764a98d244556a9a132b86c4dac3032d01500d909fc7800c70119758893d968f0510696c6dafa57d8c8ed016df964a07ba00c62397fd74a0db015936b48efe2289c7ee24e2dceb6abfdc15924bafeb19603cab1891b0d2b24fcf6526d62d8090628655b0047ef13d720f7eb55405cce0cd0cae5c1311111fadb579eb1922a8c981e310a27ef83705537da3fc6c08b90bb42584e655238624335b594bb66cf75e3d095a1b97c9ea4a36755cfa3f73bc2908deafa2f20d025f3f82f50508ceec1bf780987ee332ac02432d602673eed0e711e58860519b2940112d72c955a2c127e8bc5790425c02ab3f6671a2a38931858c652bd77a58d170862d5c3387a24d5efc193251866598be6b43209ef339299b51b53321c0877d2ea084bdf8fd6e065cd7d796585f0a7256e8829b8383299960e98d82a51de1ca0377ad3d4c4e12d46a3b3419850d0a6aed9598da48b7e12cb71dcaa74e8572ae71704904816e2107e690a9913a98aa2dd87ed69800dc08c7c64553e344afd59ce742c1955005af2b1c4d9d87be514366f7f33fc1a4abcffc01699eca3777b10b4ee4a9bb10f2e794db3f85afeaeda7e01ad1b269b07a6766e487c2ee24bf4a4db43183e6e69021bb3f667f0801b0df7f1d578dea61547130968a17fedf37a181e4718668250fa42857258aef85e48c6a64691a9a460858b4690a9160692844e9941411d2abdb2dfde444d1c5ffcf0069aa3f8880c60883807db47193f6aed0a09b4d2bd9145dbdeeda28d80afa034a283b26743308030b181163ff50d7d96b675df072286dee075e3f64b284209098d6ebf5e8225845da2251c4a66a54e56de58a0165e42f6ceadab3aa2105a0da292e2d61f92598fbcb45a6c8b1c396303e9a12839e64e7ac931e60e847d1fd866bcda5d5c4ba3e581fe10ba99b4a45f40e3fcc00204f72c0f745932d052e9a56d8d524cb62230b23cd079f744b5389a35825bb9d2a9aa3fcfa197a073d15b29cc197191f5a9b1bb353b584328f6ae8712b41db5bc0e3dfe60fc746bfb01c855c4c7914267de9a429c5fdb91326ef0d4cd843e4c49721027db1655e7c099e7103168d42f3ae8467e4d788c1d0874294085307499503473c9abdda33a6a61a32aa0867d8fdaa0196db6fcac1f127ecedb00d2820b514844a52886bf6ce3c4d3c47a49dc6032cb29c953310160dd615038943434a478375a7ba90e99a2f8c12611e7ec13850a1ea4a13ef60c6e290779e657feabb185669a835311b6c0235c2c61b0790adfeaa8890ab762ebad010c10db58f84ff0e1616485f87f5609a2817a20a149f3678ae0580a581965e39f562705da09882fe6433217f54f8b64fa31a3480f1e4c809c907d9e138e9bce4404ab02bc55300d93224d12c1c53e3e3c65334720b880a4338904f3f2b8b5a70630118309c8cc6ad8f649c409e1f5f94de664d131a1f3eb724d1d55a1e818e4bcd530729de090dd3bb080d0a45dee2e09a84f5474a03a36945f1cc3ae34baf7cc706649d2cd4a9de4f65c7ee679ccf78a2d5ffff4bf4b595f8e9d5584a255279d0d99fd6efdb0b5c71292c927bfbac515341d83896401f8ec02b4e22af0dd7fb6ec79def4b7321f7f7245bd6b0831e2dda1c9a42f6c7930925fc612bd439afb201b32458555825e085aa69119e11d28370ea8b62c4d40d96a7990010e6f07ad0e9ba6fa275d108c0bfe4df7478be008a7438aa3de44d5348b514e034934df6d4980117cbc082aa112fc260f4bed08f7206cdb71964a971090032d7bb4652d9fceb7bb72337d7ac2fd32436d6bd209aeab38e5d6fbd479e1cf5b426cf59364e160b5f806dd8832917ff2c71cdf9f43a87c2b2c65942e2b13b0df944669a0eec7422c4e94587be9bcd00e955ef4ad1dd324fac0d2584393249e9a9ac80c67ac5b205aacce72154db281c1c554a3dcc3412eeb8b01303d072968714d7d656b9d0a180ee11df4a15bca936c8220849fad013931fd3a72aeb972a0fdf2aa45a7ea1cb83b69e7c6d31bf1c622354220536823a20a72a529c8940254b969179b44a29ec5a87ace8971fe31cc479cac16d575dd109205c7641d9b50ad5e83adb71c4447b8eb6ed9a6eeab69f8d7ff281444f58c9074d029dba8e74efd721c710609b7dc60f801d216738163b888c35e37a6480cbd62eeef63e0933da08f5591416daf58d13701d20530dc0a2b3c1c91c6b6d235090017486b0d537056ad70b178612cede01c81f03e5acf1e802e775e74dee04c0483b28b5e71605ae95565d94e29bac16984e78277dc5115758e48c5a79f7701736aaff7ae9e9d68c7cdfd738c004e4e3a2cd5b66c6c8453260205c777a3fac2596b397e15d56cec5bb23685f23255651d8c0aa4005d377b7307a2306de98222560f449a4f16df7a98caafbc624589f55292f8d95631cf571942f8218cea79739e46c77a8247fa669d52bbc3eea686abd5691ba2f13a61cddfdcd80a9fe37f481d08c6b3d60c75cac448e3605fa10fd053e68c0059ced27e5f2798583f84372cb7d414a830b06001a5db0cbd44b1c19c1c76e0cdc9f58082aec25db7f9e35210c824355565a1c466fe58825522942676163f166c86afa0bb10704aa68ac017fa9bc9b16a4e0dcf558a5415ceec4242bdd546b4ed9a0c3c23cc036ba02efe26911a9da67b5032f61c1403868f3db50f2b29c7f120bc0ecf0350f8dc3400c16e48150dcc70c80f130065ed795a419bf197fdeeace02234df4a22503be046c2339d100287ada6be61f210f7345f1e986d8925e1bb0b88a663872bfa4095fc3d61cfe665fb0b395ff5da3743bbc9f6640dbf135d77976ad0474c24817457d5868a330a1acb13f4bef7bf7d426eaab4a0d8eef32e78c6636842cacd731ddabcdf8f40bd50512cc16d42889e9df9e62d75ea0157e56fc9dc063e18b6c8fbcdab952ad67c978746fcc3a520808aeefc8c170e0f5e8e645a74e864a489f700d180d91471758050ed12a75c410c701ddb434190ba8ed9ddcd8b94f5d29652cbd96eea36290159c8387cd44b98be07502b7d1e9ba95fc7eff6509b398d99324a5c45631e4989a18d463d611e43200d4c2661702c0f334f7ffe3018cf7fa7c66e417bee5b9f2df30d516cb8fb70e53e0e8dcf183dd57a858b1ef3e8fc080c04cd53642ac9efe6a5e5388484fc277c67458bdb037b836c9131d1bb6c9c77b603e72b6894eb7f00690a96b292e6731f9af2566ad8829aa61706eddfbacfcb99ee88b86ea8373ca44330185f995956119da8921926a61c0274f06f6e501da71013ab79cd3d1804fffbfc80bc20419fc2b17598d5ce42fcbc0ac83242625341257809402557da8bf374da655211dddb51bc8d56c4f801a34d0ce795eaffb2f6257937fad756009fbdc686826d6a74ee9c31ebccbdab4209adfb56484bb67d30c4624c8ef6f06ec11557ab585ff35b5d7612726da4f21f11dab75b48a3c9fa2604211a8aa6e6e8a02fa22809a18af5e0abd27f38d6d710446a85a8287f94e2d053ddf6a5ad80a06fd766b154d6ddfa3381a4df327be2218bd4b18a04a475f0e765fe113eccf7bb617251167e6d5b19aa1f71997bfb2bd3c5be744281cbdebc48cc694d464ab60415c68f546043b8d4a047df3d97f31f9c40ec081876101c0b3a8aa21334642939499f6b1cc00fcccc2b248ef229234a42bd233d61ea2ac5982c950c41d9fa207545c9f7e5148df6df1d5197d401bf543905bc56c0cffa148480836987c5291664289fb66b6aadad0a76ce4d1d21786e6c26e429e80683f3d03f5961ac8905fa60d8281108740a48d211240f1c46d163152d5c7f22d2b81b9fb5d77043422f897680ed15be9e9148de15613611ce201d5a961a9749231c1f47ae07ea38e4443a72d30c67731abe7f77e50fb37648fd334f1438aa027ebd92654b1480832a62802e92520735f2ccaa2825048364791cd452470660f08c0de8f0f118e99c9a77122beb5901a26a341efcde9b81d31f92d973f9dbbfdbe49d595a578c31b49e93d9000da3bb53401b038832c9c1b88747706900fe43a244f7cd2e4fbf23f9aa6415cb25425f50b6fb5b4d9d951bd05f3f83d46f37d61e83e367900b9622864e7a0bb3241359494954182740e8394752c7519829de8672e64c3c22adb754146283f8f250b95239f2921e04721d65ca566f7e03cd06d04fb7576303d3dec845165cc38c381f573991e91541c3ff7f34ac5ec87971b68c51f9becc568c8cdf934ba7c0af4373f17f1d98d3236107d510ffa61eff1e07947bf270a15a1c3d22e439173e21bc3038fc0a82a3896e3d5c849cda46a089d744ccc4f5dc7c05f141d700c6c86e1732c56419fad4ae3445b3899f811393948827395650342e36c4a3d3f8815c93999b71e273cb4a194f7a3bf0355da632cc3c636de9db95086f9d9bbd3a948b26700d0dd7180ef6848603e451060544ed20901a85edfc04b1910f55d0d3516f1cd22c96c13c849fa33b5b4c5885002e407a89d275de5aac37ecebd2a4c2e5c016b837020f9de936e7deff1cd4d656129e7282773f948be900c52791977919ffc2e34b5a5f7c87b5f3b7998132ef958faf6d817747d4ff9148d704c660167515fdbb54a88ad5bccd3a9390d440a908b3c278229113e6a30b2a6372171792d57293a5fe056fc96505cda410735c530d22cfecd2e178c5af61482917403617d5408affe89ec58496b80fc12348e08c18da8caa976ddf95a86c6d43a94316d0d60356849595649bd88f11abf4c8e76cb6e0843b8fae5de2d25e05e2e7a1a6dc0b18ee91b815d64f17f938a05715ecc18f8ee136a8bd098fec477babe91a88e496787c7fd4d8a435c9a6931726252363aa99f55d0dad11c2d436d804a2df826e9410492aabe2abb2c061513c426e55cc015ee486e3fe5d2f35b8f977de98d0f1e41afc14a568c8ea6dbf23c81263d76f2114884a18f0eeaac6468577b1b9c5ca3ee4e0b013fc95557009fc39d04463f891f10b1653862a8c99100c19e80c4ae3736a4943ef74cc7812feb13c340069e0574d72e9fbace026ede6d22f836059b51b9f80270c7dcaefdb454dd4baac6613cef53d2b4338dd1f4c0f76774c284da00f8f0e08bee02357896b01bf6b2d73a09a9e98b256c1c0f8d70826d283b6d69e7bc6c97cf5f87f6e9e7a9595c2323f529e342bdbc2708299ed641209b03234c93c0097338293f8ae2134940291a309fa4b439281a651a206385ece16764de1e5886a68eb3efd2f3d1e5bf2592f917272f449ef43e3c3357885545a905982ea058ab204c3b310a018718bf4e983c156a84e94fc50d58ddc566bfaa0349df2101f02f64f0e149e552077a033abea414ce3193c7024b668ff57167037882976b501adee1a61e464a7ab48a160050f1a92b8be29be63ac97c4983b015888daaec9c773fd56b9669028d184ef8e1cca35df8b3ce2255a24ee6f9b72a4c1561b493abbb5510a044efbf84664c2e862a756732b8cfe4e015436508e7c6a6c6c365592aa697f073f70dde809197a894548d47765c517275e5225d8148381b2b58ef866ec477b329985da4ce4c960db3bbbdb4d4f5648032bd9b619356e1a2de3245bb753651d9648ae5c3dd63d536c7854a28fe08fe2234ceb0f7b50d881630fade1cdcf1fec7187253fa5efd8c0ab13469656849288fdb8f06a473031471cb288499e4ce6a87ce318f5e989f12881c7b071e440c60c32ffccff0cdd1e8b06ef509d1a7f1730fa3125bbd4b864e10f208d45d553642f0f2962b5087ee48bdfd5d3edcf64223ec36c3ebf2d9c652eed3983a2287c4673673114b24cfaf99ec3e8d32f93f4a0249c5505450439081859c6fb86f14ceb3fe3179e7800eb0189036698fec97002124724580b027abeecf20dc90080a2bb32567e09777b87bc60d240fac2311883b84e2687b2c9300e9a709d9a24f582db0ca6ea67dae8fa0ad5ad1712187a11e8efb0c1f385ef5c897a117710de7e77e18512859c6046f2b4a58dbbe856f6ce35d639bfa538c2d9049c59e04ad33dcb8e495a87bb38aaab4992f6dfc5efb13f00ecb829f40ebdf1ae3d52aa92efe283b42746826d62a9c88baa77c1a01e059d88b41b899bdc771127896ca7e658b12b1b8c40829ff8b7a6ab6a9555a7a07711773afd282a32ad08047d871b73704750f583f882b5144a3fa1e9d91ac54f473c70e6fccd46861a98b721df2c3a53831ffc6d54601ade56ae3d3822a9679098800a7af13282887078451d030d9eb38fc91ecfe35bcd8643917b1d66d5be28bea303137d04ac138280bcd0d8623d7c480908d6bde33263dfc8071f7b87cd39f8bd8602869a5054477d87542b1499e0c487d56a3398839c195abc43a55c278ae594c90a766eb63283c6f1f0b0c5bf7c4ba1b9d4f263062069d088ef3877debaaa7de3561fe2463fae109eacad45a26fa6b74fe19184bfb361fa44cc9ae29fe2a4bbc7d50292b2e21ae12e2de2bbcbc3465c82540cdc20e4a54152a4ad217807197f2ac9d030084eec584229a1f76d8cbeb7be5cec18c206018f0d40837c1893ae3ee424d650f1e367334ec9bf0dbb22dbe8a3eaf61ac5923844659970745e517c79857031547025181e0bf71e569966ad0e5b065c547318e581f22c8a9e0698a7586d1d2d5420afa295cfc24afe34ec4e0f1c84181260f1ffeca482f82279cfb097d644a487d0dce3d80b7d3264a7903c4187db4cb680681086ee323787b3520084cb121ca8efb5ddb7972454f980286d3bc985552e3fbce2ec06d24261a00c80411b15e40483eeb950e051438108dd908c80dd0e9fc6c2dc1f18d9f07568df2fd51074bf4fd22f07d0628ac8ab3850d4c803dfc873eacc853c0f7c65335c4f00e4d13d79cced8aec43d2ab4630e4b3b347ba728b30402ca2983f2c4574a5fa49a57e9a0baa8bc46ef340962542e08e719049f6636939e93312afbf0303938b1333ca941a345ffa537a7d13ca1441ddd4d9f0dffd85e3b261b09fddd6c82320d6f2cbbf29a484e5f071c20b9efeaf76a0aedf867fed1da6d823218968670a225d9afef1ec31e7aa6ddbd095c6a9882348ce9570bda81c788465f04e74087bb6583ad9313e085345c63fba92527cf3d71bde1ccb7b5ece6e1b2a6d0953e8e098d671a4f64543e336178206b9099422431520a9ac00f63746626a11792d61756148895c06a078dfe988b2a14d2f96e6270e89881ea2c25b481f4c48b1d6841e15d5c9766c5106cdafdde7447dfee522be9d819718313449f026d2dc4dc40c916faaab289d921c774e85ea7dbc28d21180c172c064f9923d2d0115a118dc6ab93552212e0f05dd9a540501445721e8fd4fd41dc447be645704f65ba5356188943851c84739ba4d26db4d59539819afa918b18fd674d614c8dfa75812344d5495ad928f50ba89c053a86082c0d414ecf18c8cf2fe567b39d8cd438f1ae2a2a0511905aa12cab31b1bd00799051a3b7796a48dc1c501fdf044ccbcbf98caaa55d7044f4adaba44e9bab458901e428ded6ca215409a9aa33678794aa0dcd7cbe0ebc7fab7a9ecccb0e7ad3a6e89d490d9f7f9bba4a2d617ca1eb6d1c069561a64ce764e8eef6bdccf7de4f60c735bcfa51082f44bb0bdb87cbb86e23831bdf0454270efd0be66faad605d6888d1efb772e861764b3c36edea9711c3af0d04dc385b7b680e2a5f028a957c9341729dd5b826b71e7d31abe53808b81ced989a748cb027f92b810c81d7adf6b13609430aa830ae5331d42754ddb8abf53c6a88ec4dbbc51b10c05870768c91069cc3676ab4d21c542facf204a849ed831615ee164d8967604916515b75ad4cfd7fdb831101d41a3f7d61143f8a1e2d73e3beb722cabaed4bb5ed97453156443c9f31f50e0432aa49b54fad215c34aca70d46cdd062f9b95eeb0ecc78c5a8ef1437866f2e968c3f5db238a81c050dc0c679b231750b6697216acf4e65d33c10c4fc316a4b11012ff1578c54f03b6a2bc8fd2312d8782e6a7d3009392289eb9fec04830dd52b3ce7ef407ad37f49f6c9813e2e4777961f653e476fa650f358cd01e436fa788c0f9370c36c0e677d19f43830f0c1c78b339da443aa4797686594a1a657f6e35cc75f551543f95e6528c8e75aa18ef80ad562666e364a030cdf82d272bae8d8a78a63561a70a4f67dadc3bce7097db4f6f9419e9f82cfeaa44ffc5990ccc3c1f4c5390f3e4ee8d961c0d8e781afd57c7e894608c733a3392b2df40181a0e66273deba0d962eb87dba75195cd647d32e5d8df1de721ad766cca79c1e514e1fb51cc689b6f8ea811f3c41eeb60b5685d8c67c545c8d4a4d63f04d3997d36024df4a200b17930cc3be6bfa5349768fe6a44e4c956aec1310b8c79e2a62265051089510f2ba5466df1252e3d29c4cefe875025a0dc73c3ae11e5dda46957a1f01554c04c48de29c18eed3b602aa937af486a7a43ae1da6b919a165a30455fd643f8888b556b759264d70322082c32927ba2b87f85bd221426d30dc6b15f0c341c4196195658a333ac5c5980c72468b9101f6156a59226280472c5640a53b5fb568420e88e1985ad93e70d63b84036876c2bc98c3820ab16fc214f66f82c4e4d38014bce6c726422096a2554d5ea2e0a9a48d66b0208ac41c0e0faa3dd55f37ed022f65c2bb953e672f0809f3885c034e9a8f478896970423645c226472661f078a2aed75f00cc4e2fad1162746d220605a95eb3ecce0cfbef5453266e34460c8c297298d82abeb1ccad8726ee097dd5d1c8d498d7d2780d6df64899e342f14cea831cf4d7adfe57c946abbe0cf6beb317c176f4a373c612356821a9588a21fa2467ec0d140fb3c05de2a418978d004cf180c4de05f9631bdd561edf01043e374bde20acf38a7568c20b94383f6fd055d1cccd251c1f40f19b2d6d9bb50c2d2a6a6f4135d0a67bc2c9ee7ac15a052084d6dd5286f3e2ed7008c2d97053d86897a8164efc175361a5de81ce48228b9aeaec7844f1f098fc2e684578ce0e44174f58409c0b801e6a037667244a59c3cbfc8539dff1a27369663ef7a6e5e9450ad6ffcc356bf502365b01b0dafec6e4b7e2e9fd538b04ed6614ed1cb3f6dea86c20a41cc23c0748eef9af7c420620ccde82e429e091a328f539875274160e0667a105542f23813b504cc761f036bb0048728223c34b85123d7ce6ace31880b0e1b69e4f093a95503ef70373f085a3bcece7772a3d8e726050245fe19a3fe0e4c3710b0b0ee10330243b2e013d31c4f60d379e45c347c98faf2124a2b030d35881040bdb8cc8641890cca51910e1813399c2ff9a03efc25331eab88d83fc676867d496d5a8ad73170f80803e40f34ec7ad900d57305744f8ee679107fedad6d056e46eccd6f7995d66ec99a924f10e8757609e5a0aaf449953c225c07405c7e3ce6b8e01c41bc9dfd3152442378b6e1d128b064b3ffd1a1614b95a3ac4d53934e5fb7a93e750fc50bd78411367eeade14718612a582718d335e5ddc78f940081b826596b3dfb3a424f4817b44de80582c0b544ee101ddf9ae9d2c78be9f23178b04370d62aa15caa7a3000a24b5f3dd6735c51cd0ed03df33e391274593155f44a8155f68ab21de62063cdcb6a0483e6cb4f948f7afac3b39e279e0437cfae008fd2bce69379f006032d48b49bfa2b9104594b2b3bb0fa020952ec82900e7c791480f5357fc34679464b4391ac0115e05ba1768250611c16970336bd206d4be5fd9aad7f1264640efe4191e0042e4c947af12433c4a7ebe16bf899e2c629dd26c2b30a39ee99d0210fd33b96c7693c5804cc8b934a94e848c1beca4f32a1d7c988f5348c4246f1d039c49964244e1fff38141d3557199fb253a2111855faf437ae013fb983f4d75354bd721e6f020ccf2afef0e3a97467361fd0fa4308e94e6df07c7496818ce0c31a2c6777fc32ed012d9eeeb435ecc877d7640102b9259d6932c6e9468bc69d50ca1550b1c9135d7c628f6c4b468396bd7b94738039d331dd391b3895a44244ce967a4add5042401b3aecd8218aa23766087ec7bb4af3a14ffbdb8376eca40e95fb77f3971e3bae4e387080dea0d731dbcee095b55e72e3828ce085df5b9f93c9708ec850c551ca1bfcddccc5a9cec7974d66579c6192800b6b2ceb353ab3b76315230e187461d30ce0e0e05d6ef2ccdac58b971e0001f0eb23cb78d85dabedde21a8cef41d5881def8bfab36347b5dc6ec724eeafbbf978b7abb7eb61bc1cf1b2d4b04d9596cf9111ea4199412d6494ade48de3086b5bafd4abd8f23d2b8c4695df2106fd582425ad5c7c8b10ff6c98357dcaca9144e1df0f211955aa49375dc626c3b722bd8d745d88b1de278941ee7e8c38d355f452d2129cd00ac607c0671dbf7ff7bd473e1332b7ad84c53f2deee9b3948e3792f1feb08111d8f72e744cd6c9bcf03e9a769a4c303213a1beafdc66c27a749702aab8575a644aad71d09c671166505addc5c42a4779e61bd8eea4913abb46a0624d58072407c1d27d88fcb28297d0b1dab744fac71e5eeb4df3acdb5ccab15db3054d8295122ca4419473134d2483b7db09c1309d8d8dd412592206fa23b71c42875304a7f59cb44251c53367a2d575a818c13e3a14689ab56a785d2229807294d8e447fceb5f075f34bd78180acd48089dd061fbd84990f0b291665d8ee1d7499035799a1a3a03bd5da4ff23bea40cfaa9b08daa184968da92963251bfdaebea13eed885e127b02ae48e21bc8c830c968b0818d10dc617e785fd454692455b4bc976a820784aea0c9a3f1eebd49a1d2568ee4187c49793dbba165dc5c2554335306fe2a5491507cc6038dc45ea037f103ab1a8d3d80b4f5090d5ccf55e5812475132a90e7c640bd3f26e45ab2666be38e3178133090b80579ec77d7288622e2470b1fecab8809a2b50db7a28cd79544f0f8d1e4f519d98f66b45445a05bfaa8ec6d7ab5df7d26deede736fe218e88d400ba117cf69855ea1be52f5633ecfaad1975c007ad88eba8648d290e781b75c80e5fb82ebea3d29adfb3baff97c844ce928c70d9c05e1a49513f50f18212035ea128c8e8893e54043aed4ab72219c9cbde17f563e009553eef1afbc673ab3c31063717c5358a9d74361c4de0d9286fc804138a8374a21c057d22ad1a94bbbd9b148efb0115ab8432a294e41668c415b984704b68c5aa585a760b74d2aa2829ba6534b14a2a15ee62a19ff4e3205e68bb5bd9bd4852f378d41192b9d206fb99cd2817f41e9954dbd21d48bedeb5b26d422ad180f3fd24b60dc8779c315518c4d0213a4dd6665a05c4e1f755ce1dc747fc5ee2c87ca146b12b104f5c473d7d2f6e55553fafc276846c092bcbb24a2e368a859989f268fa3c8a8c60ae76f6d3a37ca2d9b14982ea70ca121a30596a510143baa35427edb6d60f1dbd518b5a764c8610946d19fbf8afb62c8d669420d79bfd4e8309e790cdf46420f18c14c181bebb5b87bf225892f6c4ffcd88442057230fbf25a6cf48cd7b2256e4b8f9798d078b91149aba8edb290f99936c5743103bb7730d9cdb8ee63e192fa143c68ad9614041a82ff7fac63470264cb35531dec96b07498c3bc16d53e6b4e409c5a56baa4f5061c06d935e18526a45f0ed9e924824edd1b5e6a595549ec3b01418d1909cec184084e6dfdcdf4abd05790fbc099193a3e1a0f199affa652802a26ab4886c8fda9bfa1c11e0d3f3b43b1dc89b9cc94ec963c4fe78b1efe2c86c18b8aea56a8c3a2cf4d5d501d7c774dda59bf19a80e5958011110df98a51088905cb514fa3d97e39db052bf0238a9a23ca50f90ac000a0bd9b01938c7a1a0a6f56d8a5391904d4843f82d3e7c6f24c28261cadcb3346b1817280c30171f32241e01a04eda3830f924d122421ec2192d20968f6de42fa7139fb81c5adcc6572cd9f0f60efdbe2e6ebbddc11b6b8977401a46ac06a48086bd5a317dc50e50c2c82960b60900b2052b44972ce5e558c6c015c8fdfbd3dce04856390899f4a4a303462c18b3d11f253927ce4b096f18a28c79bfed7a966ba320fd684f4ab800dac06f371edcd625ff5ece7aa3f05a0dfd995e7325d9941351297c8a804f466dc8add36b1c1df4b2dd38c11e883c506dda02e75fc54ba3dad5d97da4b3544ffb3323161ecdd51af3d19f3016be372644ed7ee6376d8af751b5c5518fdcc0c2b2a0029e1991e5b87701cd0519287585c20712d1fbcb052506a36c061834ede64e228e2430de9012ea70801eda59d191ded38006381144e98cc47ea51a70a11dda385698a965c1521a7c43aca09d86452c7cb14134146d672f50424da030b2e1694c2e5ab35ba088e591e1df194d2b526ab743112c1c31ed0d1e7f3c622642bf73159959c3a5f27d1125a4a476b4b192ae735ade3ac8d73d111ba95e132eb889c1e9c3bc706b2e389cb310743e55a46b5fd7b216c9a38e0fd4dc4ec05ceecfc92b97ed8b6e416a3413f485cfc6796d8a5befdd7b9a9031fe2b6ad06b73ae5d9801ef533dbf7f9f387881818a11235c611ba4c43bcb4afdbf9f631331768dba9e364a1ed31dfd6099e09006ecc2ff3fdf48cf07c1d2d666d33e146fdb9f799372cb430eba0f174c04d18a40b0b1bd7f3cd9cb8ab322120ec5b708bd1b070407c8360c2aa3aa03e53e69c39de422bb1d6c2168e3676f08789e2904314c7c9bacc62dbea9fb2813bfd192c520e4bae8315b245385a0d6e1340e478a73c2b02f72d16081b2b2d3b4b78ae5850b9bd6da728630173ccb5d56861067c10cd8b3e4bb9e5296546c0bbf64bc48a45169dc58cd94e40b43aeea26754cc19955b51b9ed43f8d583046bf580030208bdefba4b2ac48760b64ae47e3f405a3156722db58dadbde02ad78f73e48dd7783c55bcaa5ae2a4af0b2e8fae333df1a83256adcc2269b4a7909434fd0bea7c1c4f14c81e96a408376b081e484af0c05648cccc98887317940bee0cbdc3bbc8a090083e37170de6038c118829f91ae9018a1f8895e3d36ad4432806d8e526cc3132d59760b13921ab49b73d4d41de89199d2fc8cda8c57ceeeb5fdcfcbb8418939392108c1ede87275fe910056a7f2920e80f71bbf6e86985250bf7684e753944e0a4307a2871867b1e1584882dd2da20df820f579054188bbe66db57b3b69d91f68dc321406ab27c6e0a1b3cb3269d1258399f73673ff45d4338064bea03a307f763147487dbad7b9d5cac3fdc3ba7fa877738613f418f9b633dea744c4d807f5b7f25e09a31e84d687292fd6e5ced23a92f5cbcd8c4e98cad4121a939d3a0a7b6db860659cb0832c3024acd071c7883cf60e36b1461dd0f8ef473fa3fb330c7d2038e8ce0804656c30a9969ea840b98322d74d6f146fe22411c9e61ca079e0498fb8c868713c15e329c1b48f4cca62149177d10038ed444d80d3c10b8dba403fcffffffffffffff31c2f0a325441b914694089229c94c910a55fdca1aff541f151f7fb2b5424a29a594522623cd5cd11020d6d62cd901b80f3b0d3d0dac4fb6e5ba5a07981dac940c9392ef56f25daa8911e443653e193976b4673420d6f07810e833981f6074a0d6be92721d4a95ee9826c695151f3e6c0851c9f19bcf901863ccb480548c6072b09833d6b4aba06a0caec613ead818c2e2f9f490df222446150c0e303858ec9915cbc98be5ea1e82b9817727a9f239e5da69490d17396ce0d8a2e56508286306c606dedbd8d7c27e724ef89aff649ed33cc4089311a311fec448024c0d927b8ab97be8abad26c3d0a0b5cda7e07ab2a5d7e61699417be67e95d47ba76fba11194cc9ecbb9d327dea2d05c5c0ed43eec96aa5760bca356090d8c2d55ecf7dd204d9650d86dfee39f84da92965d3c4c8e16c8aacf102b8e6763ff95ea1bb4ca197f74d31f866c3f578a9f939a25e53ded3c92477264f20234ae75b4ede53a143f5d44829b57a2fd36ca552264d8c20179eea5fcdfe9dae49c83431ba84dceaf69c62cc35976c5f13e30704e554523e3307254baf34316e3efe7e5bf9a7af7a8e5f13a30b1ceeba73dcd263c59cd4c4d8c22c3d6caa4df5a4bccfe281efedf54a3f5f97853c9e0eefdce476c1574f72b2b07c96dab3b4ba1a2ed3c44884b312eb72c7667bcbdd9e481165d5dcfcb4cbcb3bf4a01640f8da9baad7e76ab2d7c4e8fc9f1863ccfca6d3bfa45ccab42f4da51a5fff3a3de6e79e092e915d722d55cfdf594a6b4df5a5d69249cd7dce09aebc7b3f29f7ff39a9abcddf9cce3da5d39d4b8e3d964ce7392f2d1e19e3ca0a86a420887ca9bdd79eb9e78fa5d43431aee69279d0875bb6dfddfcf692f2949ec1d5c41863e885386ee9ded7a77dba1832f99c169721308dd97a7972a85e82f2fb33db2e695b7dbcd69c8fb100ba4eed1c36d953cd879a152cd5bc7ed35b70b57aadb9a10255ffd2abaa5a870f7a0a58976a123a94d0a5b65813a3737e33631412512055a74387f2bd8570361cce63c428e404ac094ae77fdbd0506eb05fbea552b7e77e86624f4dc956932e9f6af086196cc2c91e9b0eaed48d411f65789b6ff6ea53bc1abb152387f392c790f5abddb6f56bdfed4e17221f1c2a3b84c0c4aac1b7efdc75b553321cc2a4567fb186cf5dd3c4f84cb0df4faab66d6a4ec53ee3c5189ef6a7543753fb6a6fe21023b11bb0fddbda995263b82eff051b101197fe3082bcdf9676aed666e3b9aec9803631422049e74bdaccf536f5ed9a18637c96d7b4f087488c5f84c1deeec1e66e2d93ce4d258131e7949d1c6cca6a3147c4a57fe588ff5079221d2623c6129480f55add382597963e093ba0927ea4c51c4aa872f779a6f5a11a6c351564edda9b8d2f5c21f35765e9526de7399923ef9923ef9d11f478c5a694f2a55baaadd99a1875f0f05f95eb27b7d9effd343172f843e4b9a507dbb1b8b9f2f4d43ef90e932646df64bee52514e3ca4b07478c2f1d1ea2b23a52e25fbae073a56d2ea689716565e5b9a87c3ef44345478cfe9b96cf875ad839c6cf87361d5079c99c964c679369f17c3cc64fc893c33b1b231d974c0270a85773bdd9ae977c5d4b13e36a2e9910cb0c01099c3384d0b129df74cf5ae3c970382c637cd911a3d323c618412d1e3882a59e9874afb1a4d8d99cd393096d382d201c2badb85d33b66e176b565d78c19e64eb7e21b335d96a9a95a45c5e98d302daece0b4b06c54626c61d9c4c8e2d209a2f26652cc5a7f7b9c9ef2185f0d0fcb8a081ebfb7bd58334d6caad2c44fac1072fa9e9b56394d8c1fd648114076b8ab992fe51e73dd9a183f215066e58c943352422e2c1d50894f3a53eef7583684b3a126c6cce786639b5482aee93bb76c5b1363a6350675e963da4dfa92f035317e68f331a201b6ffd694ecebb5575d6a628c31c43263e4c082fef8d919fa27c68c3531fe7f260f055bbe67df991cbae4cf1223686642208f26f3317e915c136339b927afb5463c1f223736f53f5ccbd635afd49e2646ef7026e3f118635cc16163888a7c338c30194194572f86ed8a79fa6ca68991486753848b10b066ece9ddba6cef746962ccc4b86eb0783c01e842d364be5029b8144ac63431c6a86cf493dda494dc9e9f7cae89f1f31d102c56357f4ee7ef94a5d4c408f27f50c6ffc86666424f24c69514100b212346168f77f813a306c41a56017d80c5e3c910f9643201e0220372f9643212d8c2031e88400738f0810d48400316c840043090b2c50532608109548002149840062430432e1588c091d7643212b461a10004581eb099ffccccc713620a3860b50a34e0a5cd1cf11809598001443a1b0d8835290bf0800252029c16198d0c716710a08103283580070a10f27808b0c5006c0880880702f001002445e1e2e40226473e02259b4921c1848efc07221457986082149867e18e8909265ac10004741181362d5c002e0001223bb0810c38222eb6f0400738b0010d6400032917a800052620810840e0010e68000316a08004445a3c2025d2220894e802090d0810d9410d64c0114551f48128c2bc02f4b9f1f209753e042dccc2c3097488a2e83b9e2069a4a4113da1141b29d146ca74020c9c1072821929469a208b288a52a247632425c626d8a1095948e3f3e191464a87533a9e9434b8d8a2853f463a2e31a601d2845ade534273e32911f4b9f12126b251833b92090c6002880951282362d0e746184be04411c6074900a208f34544a413e22fc2a10c0783c1f0f8783e9f288acce0c98440cc017d6ebcb8b412d010b1c6484af44f097988803e373e1fe26ca6121aa0851230ef1ec9ffe9b8a4f8c74c442786400217a2774fe7640231e8a8c0868d152f52b838e29b2d42f3c388647cc408cd0f23252525a5a38235528ef826f344fc3345247fdad0031e9824c2c8774caa80041cbc94c08b95f99c8c733c273fbc5001414ae739998c733c5fa204942c84409ee2851729f263b285179ab2f20235a24de9c28b14cd8d27e2ffff0935c98608a838c1901f3a708c8143478a4aca11df04a0a4c5c40c9331809884a1c3849944208ac4e8fcf8908ea4468c2cf2480e278345a2e19d32a2088369e1cf101e1ecf10d07f0f229d4d103234d20588c733c4f3e99411fa785a76fc0b36428e301090ffcb233c9ce3f1f19ce690274814617a788678c7c5d323e409c2399ed39b1f214f100ec7a5c727d429c3bf53c67b826078ec2083c37109d229c33fb461d9841145911930f1f32097cfb7b808e910d9fce7d5f00809c222d18822cc4a4a47db1c5184c1b15ef8f3c1e1dfd9ccf74e19ede1e488224c23c108a295ffc88e474714619cc4f19cde10e9b8f4e8788278d17199518451d94c31382288224cfcd0a6b399bf238a30d0399b33b8d802f4b991518c247ec08328c258c0059b176c40cfb2f1b0a484d8c8773a2c8257c393027a11805a9012a48b147f0ee78da4f0e43c288d28c23c353621e68036443e0c0ecb4d47237f088fd0a65306873772e32e250881f8c308e1e04f8f50e79be581bcdc78cc60f174de593c1d4f8be73346873543fee3011245911930ce9f8583bc7470300b835cc070ce46a3e385d311238a30eee5c1c0b42fa2288ac5cb0e87409d1fa1e770d8cb17d1f4f26060563bf2dec12cf5f118097d27298fa2c80c9814fa704b1461f625b4e1f0c78533461461d484c523e43b9e20abb9e41012448c1f43740429a3041934700049e91049f1745232a0cf8d102c46013b6044146142104551006e44118b0b28e531281fcfe6f3a158b484e1d068683034161a0a8d84c6a2f19ff71145982e1e1aa0cf8d900b4bfb6f3e21941c390c200403443be8800e74e0052b38a1887b4a10819103154451b42608c2091754524ad65831f21d7763bb90af0687c32c208c4651e4c5242211456588410220390045a48407ac20d2e2069a288a8220e1080928c24a9128da18204a238a7c3ca77bd351400a222d6c008128fa7ca7b34911414ae1404ae7399ae20506523acf1962c4a3a30504071a582202b126c4633c0b778874e49b01dab4e0006d5a98d3c2b2017d6e24e5e2348001e8379fd08a8a7c3332a01feee94411093e1fda9cc81978144504f80426eac1ff09817ef3090189a22fa228ca445ac80006511463047d6e705a5836197743bb90afc60b7f3eec81288ad088b4880124223b10e96c3e1feafc1e0a41064c1a305788426488960f818a480f27a5b3f9ce7f9cb3d1c816cf90d8f981430a1820d18d972fc221d2d9d810800004208001e448b9117ad04be8b3f10fe3f816313c415e7103b4e1cf8e2b34e14121f0d7811a1e16010ca0e3f1805a5a3c1f0f81f83929214e7949e9e0c0810315445184880078668dce26251e31c4914d4451c48af062124535a0010cd688a2a8232d8c8022c421d016bc5386e7f32878c9d1f16c401b35363b3aff02cfa7870e1617964d6703c48887f3397eb3c3392e9e3340de71e9e109d2f9229e2163788210e96c3a1b6679323ecfe2c271710f9030429e8e2624060e06b9e4c1c3391d239e4e914e19a11697221e0f07d47149e93017463c9c971de6706f9102fa9f2fdc12da7036cd9d1fff7109b94c508a73a7843e9b4ee9704ae7464a87f99b39386e80fe8559441045181b63c07c60e5b9c448a4b3097d3c8d23c58535473ee5e5e3617996144c1491e185e3ef1ed9f994ff803e375e3a0302710b17a228d2445a7cf01045180b843adcd9b06c3e12b4f1141697cea7f88605c446401e1f2481007d4a1a41d248f93f636fa81ba90bf9ee915dbc84361f6ef187cb58fa8018e4f23da19697cf0a925a6d05ac715e8de770588d4c6c0171389bfefc18a0cce75b62949bd0b368429b0f675a4062e888228c169ccf8787f4703838381cd6e1df21b21102daecf0ccce8f28c2200063000c02a208738028c21800d31b2f3ca5b8c4113c114511e6079fb800179f13952f44514412068f1164e2071ef8c12aa2282a69c01008218a2530010e8688a2e8c409496005061151162488a208838954140106b058c2255c1445254f4803004dd0fca1059388a2a80502182d5ab408416404086788220ee8c361e95137f6c676c161e7f74007f41e27830d1d09a0a183830c9d8e2221f4a0b34614451088a2688b48035b78c009222d3a8288a2480ba0cf0dff10e83b99cf87361916cf67868e7c08e4abc1388c4387288a3c9f7f41ca4ba7bc6fd4d8384778d08208694411a600041800460042425f446e422c1be6e838b2c1117a213e5e8810efb8cc004451c4a0fff9e292834867e31c8f8f1f9f576343e4080f00648e30cbc7d382b2a3b321b2f988f1e1e7e8f87842443a1b9087a323d4f94dcb46fec73fd4f252e288cc1002bd8b0b9e8cceb788a1c3c8076961f9f88822cc09876508e461c984388331c194b0c82321d07b144569bc7c782337f33bdfa0d08340fcf9798459a20843f289220cc6379997cfbbb8e0411d4f0be8c978f9bc8b09fc431f4fcb737ec88e28c244a107817018e18f6b429b337af391a0760175cae0705e039a451131a22892c5e7c3238aa23462018b57b882155114ad228a22554451948a534451648a288a4a114511294411455128a228024514459f88a2c813511475228a224e4451b489288a3411455126a228c28425a228aa4414459488a26812511449228aa24844510489288a1e11459123a2286a4414458c88a26811511429228aa24468818334026efedc77ac5f82d086cae79ddf07860924a730c5fa395dbd5aadad96a0d4c448520a5e49dbb6f6f518645e4d8c3e484851009251f09acb7a29e7c4d4aff21dcf69178f3b8928946cea69dd74fcda96f2ce060c151c24a170eafedb10f2baa9dba0f8442b5e572bb54dab1aff16483cb1d059377ffdef4bbb13aaa4f27b4d7ba772f84f20e1044ff6d5966bf02d4ebb4e20d9c47aea74cd36374d7ead9a98ab92ba337d6bb29d539264e253534db197beffea1a09269ad3746ec9a632a5105ee2adc6de5367abccf15b9a33482ce1fc13544d3a645d70b94a4c5f95b01faa09bf156a280193ea5f4db9a50b5f5d13e34ae82731596be61e7c505f4bce3531c6184f402289f6f261d29fd33531ea2089c4b2b6e07a6ae9737e5d99ce6b4219202490589241989e2ed6a47e530bc923f6db6c2e156c56b6ce9ac692c7c8902fc29c1c2a322071847cdf6ffff9fb544d2a22248d60497a3f4f73364c5be43f0c95cd6748182a2a2720618464e8d6b3d4ba5f53872b61a890806411ce5ba64eaab7a77afa2fd2e9902882674bcfeea04be76b08074812b1eb98a5b9af528e1d2a3976f84b6e11f2f260a80c214104b7a4166c0dc2f99ab56796e4103c934bec7cb29373e1d3a480c4100fc2d4fddc6bcafd5ebe48c6ff478c2b24859012aedea4785d7aaf5713998410ee9653c7acde6a6bbb577ca8bc3c181a10fbc03c8164100a366fce4cb1e4d6254722886d8fddfb5beae05c2b69620cb9b06476401208f80fead3fde6da54d69a0c8841386e400208365d4ad9206cd8da946e06247fe8956dfdcdf65ec1574c08891f74d57bd225a7af6d9b521323cbcb80a40fabd53fd8ed3c2dc93c8d80840f53659373b2a40b57f3d5ece15d6bc6a67aaed664ed80d81862a30718367ca8e4d80144850c123db09d70ea2fc66f3d768d01491e946bfa93c1870adde7e3f087c70b48f0e0a4b756f8bd9a9f39be83affa5de57a32a73c5d1348ecd0e46ca8baa527999ceeeba0187bf0594fde6fe94e13e3cb27d4e111eab06433c820a1c3ec56d0f9ec65af10c22f48e6e01e7b4d25985a73d05d9283e4f9a473cca52bebc548e2f0bb5cbb97987ada6c190e3d77b97bb7f7dc0caaa6b3217943cf778f1793ef0e195c6e50f7aaa1ff53ccba5cdb007bc9670bddddb7dbec61a30c1b3f545a184888393d62ec7c28c49ca9f22161c32ab9b83d572cf52e630d1a2f0292352cf85e9d4fd8acde3fa118fd55583c9f1e2f9f21d143a2864d03091ae0d2d5cd293bf766bb75869d6fd5eab9da92ddee9a1849ccc072a9b5d85a4f5df34d246558eef7584339d372eb960c29ad4dceaaff41e88bc720135bde6bdb7a6e9f849a2511834ae62b216b6fceb92d6962840149181abe526a2e9b2939b81c0918b4274c8b25ab6dd79e6a62d441f2050697b25debabe0927079619d84ab5677f3d589bb074917b43df7e6adae909b4a122e24b6ef3bf1ae36db7b690b53a9fbfa6eaeaf49b12f86a8bc0b87d520d102eff62ec6eaced9b50c755e8d5f610149165eab5287ea3e35960eb1a08db9874f49e8cb25c5245778beaf7c59314faaadb3022f57fba64e7d6e77b526c60ca7b953468c1c0eeb60024915d8d2e4ab49f8d85a9fed1d974742852617dba9703595a4eed4c44832857e4f9b5cfc2d2df95e3531663a653cc6062452e8e51a32bf73bfa22346154c1348a2c0ae5e37ed7db9ea0d6a627c8e6f321d0fc77f74c4881154c4e3d1a48038850b1bca630b154902855f7335d5d6bbf9d292eb096f77d97fad752ced2b151f244e687eec2d37596312aaf5b409fe7c9983ca1f4ed654a93241613776d630b1e6d6722f4896d0dd7ed373fa4d719a50098c75927071823ba7f4e6628b1e2449d0d5d26d6a2a95154324b8e4d48d96ae35ed5e90e911dc99d5dbb573934a698de0503ae726177a6bc9a916c1a95b373ab1563967b3a7d2adac20052c202142532b79a996d27bdcd21cc24b50c9265d32a8ce0c85909a5b377afacae78eb9996482b3e3d9fc8831a5802408d03f2dc74e3205753910d872ebc6aad4ef6dba7d92e1531689c60fe062385d652f9b904de683b51ad46e6e397debb90a8b4423c69d243d788dd3ece50bbe6ea84be5f3fe1123c6334878a0ccd7fc552fd70e9c7be9c60a21d181ec9654aa255f39756ce6003226bff12eb94d3ea84870c0f82d73a9cd65723566243748b3f75df2c95e17b644620387db0c55fe844db59c243550d9f259bda99fcf956b0d4868b0d8aa1b102ec3a5899d7bf13e0d1a9859bcf6dc7b6ecedf5bef4a13e34a46816064017f366bd59cb3d92f5bd5079858a86c269dce7e6eb9f283059c70ddc3e4782df93ebd42beba6d726e820c4ad6342b2d9ecf8e185b3c1ff781718583fc8a2df86e539a2cb562aaa4d6b1e3245d3ab533c0b042b66e6fb6d9da29c8bc470e30ab78add8ec36d936f892b9a454d1bea162e6977aa5648cc1012615abdae467de8fa9d7d8d3c4b8528218836050f1de9a9a9e6a6aea29753b1e738a7706df33a85c7b70faaf668a7749c17f4bcea55c5a0eb1dc705a5cfc3dae0930a5604eec3f4128576aaf15299acb4d4aea92aa0ae76a62ec3c27235f8d8ce3c08c42bfe5749ae052cbe95b93e1705c7e7cc498fc619861030c1b211716961ff3c9980446144cf53198da3fe7143bc6c516a1686bae6e4a155bcfe04a6d41c1546763cb67f3ae55fc5c84603ee1a673d58a5ffd5c0927c7e3e932309ef06d6ff8ebbabbadfbe785bcf0191e2343621401a613bdb4fb417fc79292e9710226973c715adadc796a9b78523ae9af35cf953a77e5c7e78b7c982583e9014613ebda9363a952d2f53e9e964c0bb3ecc064a23599feb9eaf64afae73f64c448020c261e365c6b7152a5dacad6ac7cc7c3d111e3773c1c89c3460fcc25263f099553eff1eaf96ea5c70a0e9516602cb15eef6abb9cc276df26104c2564e2d59abbb4767bed91efc4b812e3182aa10da745c827c4020c25d6ae76525f92ceb5b927d1a46c73ce55d7ef498792785e5df532bd67b9988b44af365d3dc98da94ad5209160aba41ef3c7fa945c8f9070addb67ad92c1d6c9118a49c77465729adcf220292218928233308d6877df744e3667af299711ae4d1b32d656ce26153bf23e3e6fc41386c22c623f2565e98f2db6560301a388d7ef0caa36f76cb29289f8b750fd924e2af3d632473c46423d308898cb97f267ac4a3d7b4b13638c190ee78dc4b86a940073085fd6da995abcafe1274378b7c2f7f857399842b0a770d35be8925b8d6d0f308450ad20f4b66d59277f3b043388e494cdf5566a5ead1a042388f9a0ae55e993e4d5328d81094452aaadc365f3d7b16517ce6c1840a4a5f6bbbf9bd2b6d2d22ccc1f9aa5d7aabc4d06d7748cd34cc413c61321e209a3c5132446221e8ecac3f8c1c9349d5aefef17bbd9402a8ce9034c33a99c50353ff5dc0361f8a070e57a5ee709d56ad6983df084dfbf53579b53613b82d1837b0fb663eb395feeb679f84fac14eb62ea57555f3078586bdff26b756c7973abc1dc61eeb37fe57dcc566a0c038c1dda659a8cc9b69e4c4d360e3075505dbdd09f5cec4bc13f82a103e4b4fe947bd5a54931508c433073988e597bbfc9d66373ad1f122307c66037a5d69b9fbe4e0c0d307150ebe05a4caa35b9f9aac6317048fee0735d8da5d7da6cabb9bce17193eae782ac6afd6bcfecfc8801c60d0abe061fb3f35d925f9301a60dce256475c6967f39c79a18635cc1d11836305fc89f9abfdab76f0d0dd99c6c7d5a4d552f03bdf01820178c1a563b359743ff6d658fcd505901260d69a55a757638536b4dd190e4620ace34db35745ddff232e425e48239034fc7ad4da9da33fc5566780ba75b0adbc2d6b4189031d6aa11e3b3f067627a8029c3bb05a5e46e53beb4a1cc0a86a440c507860c8ba72e4cd0ede495528de15fb6c6186cb8ba1faa1876b9b7a6b6ecf952590a4373303d86adfff5aa7a302c0593d356fde4932c4d4d8c3188c17f5c401e8e5c638d18df5d38ff69f9826aec1aaaee9d3df79917d8e1afe76dedb1bba69a1855305d589b18b25ce5f39d6a6b860d3054629401860b93d7af67493687ddbf31c06ca1d59f3a27d5594e55416cf8501902460b4efe27c6bee7eefcc71ce21d58c06441616307ffa17afdd2312460b000df54ecaa57b9941e5ea1f164961aefbe5cc97a458509182bf4337399da648ebde75a157c5535a5aced6253bed7c4d861ce188ba182f29baad327e6d3212f9522982974626ecdd27f4367ca7560a4007b395cb33df89f74362460a2d02afd642fd9540e997250706e55ef544f49f8e44bff7103cc13d253eddabb833331a70aa3038c13a4ebc6143eb9cc7a629a00155b9e16fe339652934a0b304c689341f92ca1bea95cd9fc1d32c697900ecc12761bff73ca9ae3d77f221825a44ddd64ef4aaad5d24d8252134a574cbe7333b937468c9a10b7c4f8124a182424a74fdd83caa5a9ecb50c260f9823b42a26f51f4b4ffa4eae34967c805c30464872b1aa5b275daaf9ba084cb683afcaaadeba6c0886086ce9b3dff6bed6ed94426c9861030c951606d2c22c0f3304a6fb9c74af4c39e9fc3b3186382424468911826a4ddebc98933ff5d6c4f8031384768d575a734dc6d653100304d59a64c92974f556aed5c4e899185778645e421b34544a80f981fb7fa74af9ea26e7835f3cd753d55c33bfd21589e9c1940a197b93955d3b734d8c1fe3bb27488c31b6430c0f9eeae41fa3706d6e36de24fb41d95014abca57a765b8547aed11e96c5e769884a2997aff5663a7f22907353730018554fac9b909173b255d73d8c0a1126367c31af989a594748b994dc836ada562e28996939932e58b5bab529a18bdf342dca413ad2f3166cd4d31b99e3e1e8decf07f4860c2095fb87c996bdced716f42dd4b703275de1a4ef934e1cd89a5ece61c5c5e9f89f565bcfc6ea5836c35cd0e134cf074ed958b69f76f9a2697604d1b3bc97c26dfb4890c134b3c377536c554cbfef4d6874925166cf046ebbe56b79cdbc5a94d28e1d4ff4afd6f5b7bee5de885984c82d784cd96a5934a39bdc63f62ec309104b7066792adcd0d134c414c22d18a7b7b7d1bf2fbdc1d269070db9274c57cc1f61a04f2c2e4116f3194ae5bfb3793825313e3e2c0c411aeee3d25fb3de9d41f6a6274c1c7b8e2021e63c4d8c222cd306984db6d50a6d69fca4d4d8c78acb1b5d3bd97adcdd44c16d16ebe967edfae4ede07c4441153c9de4ed0fd2ec90f13f1e07b72364e69dd7cdd10f1de3b7775cd3915746ec8172687504b39dff932a94a6d394d8c1b151689c60f134398148235e7aad84d351532bf092156314eaff4f53567980cc27127b99a2575424c04c1dcf4799a6afe6afe4e029340385bfe891b4b8672bb57fbc204103fe19ccae7cfd4d6faf4875d2a29d6ce3d6650be663e9e8c11fe64424fc4c40f909d39a926956acb96a7a50c933ee84b093aa74e13ea6bcb62c207d5c6cd15af74a8dab63db8c4bcca2fa792a97dd3037bfd5e50b69f6c425e267950edd58dd95be7fc70e2e139b6aa29d91672e375877f3029d9eede3f9bbe1d649372fd5cce6cb99eb20eda782a832f973e7edb74e0b49662dbce3b95399c03b74badf9a6c75a72e7e4e0f6b525e59cf0675a6dc5a1b1fa4ebc9cf436a12738bc77f219db769792e27d83636be206985882ccf5b76b43394ddaf0ba1bd46736e1d2c9920d0bc2e9f337bd9a6c2a9335b07bd7d45a4f767bad654cd4f0cdb972aaedebb676c234b0326f9d1273c552da4783fe73f6e7269b26462e6cf88f2d9c6072863567eac76a49d58a1d3483eaa514ff928be77cee32aca7ec7659754f4f4f01c1840c9297522d59b9b97a6ebec9189aa92735534bdb94746b2286a7cf165407dfdc9e92352ea08c4918ba17fc05a1db872bbdff610286b9af3d3fabedc4edde13ca68402e2d61987c81a9e6b3b596be4db51233f1027c0d654a4db125e55ced9dcdcb0eabe11ce38a8e229243423e1913987441dd635e6c1533f692ad26c6344cb8a0eb2de7b72e4939d96f614275e7af935b139caf89310c132df85ba9f17c2fb9a6724d8d49161cd3d91e6b6d39ec87c9040b0e3e4c69f12bd654a7da5859b1b1f25cb6b0b1f25c3e3b62617205d798fe4ac92a31365f32b102930ebeb576e7bf572a995461d7ced5a654f66a99950a4dfe54af7ed52b7f4bfd309902abe9529b49269602943f1b74fd268490d9d2ac7c3c217e814914be616396e073dfeff44ca0a05c21cb965e3f053bb9ce863f9e3179829470219b922dd7b049e884e9e0c3c9d4724c597ba789d103ea7874bc983461d7cbf652e2c7ad94a9091364b3267fd0b172d5ee352b65982c81b99964d81cf232574f235760a204f6784de59c7beac136c32409fd7eae756d7e2dd73f132430b7b7986afd3d42fab71eee374b4f95731323f854add7bda7b46fe5dae0a1c2625284a95ef3768bf183d075a97866670d1322ec3ff69e6349cdb6e06f58362b406ce8b0314405e41d174f0eff239b1e317e3ec3228f083119823b08595255acbd72652204b70b2e57869339f4a53b3009427af97cb7f5f49eef12174a860d35c1169c16975006062640989fd6ddb2af9b4971ff80a5261393ab1c848ba99af8805b2ac6d493bad0a9f297d032e981a6c52674966c77b55e334c78f09ecfb92e5b6bff9093c90e7cd9bae6e072b7ec206b31d1c1eb345bd373b5ddd4539d4db3786432c9c162ac2d7bf796716bb834311ed9cc678283fea52677f7be5792491e263780c9bdb135f549971a261b784b2efb41f8d67dbf167201f29bcf9021263570e98f57ba43d84dbea789f1e3c97c67c3e96c625c11c38406f3a9c993dba92f566f352d99593cdd6750e16b6a7972b04416ee75eb4feb57697694c462a54cbd74bde96a29960ffd8871e5853f1f1c38545478c4a822df0c0e875984c4a862a404169ca0b37313b677e75cf97b425ff28ae9fef01f530ab99d95182aae909f145caae9957db71fa2127a211a10fb8025ad988df93d742d9d36f6c98ad6f6937752aeac494e4d8c2da0ce8647c92a5c726e8c9de2f7d6d34896b144154d993b259b4ad5c418e2cc4a492a1a536eeeeebfba316e54b4d9dfd8d437e15b394a4ec1dcbf32a65cd75b9d821253a85a10a67756ebe92a2b8582da2bbdb3247fd98a8d2e9490825fab5e6e7da576ea5b8c2095314a46c14efde47dcb5cee6a86841251f03fd8535572eb99c7b8f232379f37a38c9250b4b6cbc5cbbdfbf9ea12507c6be2f4df7c7b954a9f80eea91bcb925b4a327dffb56b4b3cc1d3f56b8ee563b02d4f4d8c669474422dd5e07acd164c0e27e444afb45a29b7f64b19849a18f9133af29a924d2875e8d69c4aaac79c743f5442ff852cd104dc75ec8e5bb71194644232e9bf78b9b4e02e6b2bc1c46237d35b5dddd479b3924b2ca7fb7829fda4ad2b35311e794d89259e75f9a5c6e6379d2e6962f4945442e57cdb64f3fc65a75c13a3094a28211bb35cfbdcaaf53b46c924563e742e29b69eb37f2689d76d6aab92f03597e4cb9248f8ecd5e0f4b752d2fd2652028987c96743675f3fdf27969247f4c20455a7279b9b4b4123943802aed65899e3091b2159a92ff5ed69fe72c5085e76eff5d36f2d2d7d8b90f3b9a4bc98ffd4e5b3855b18880a4a14f1cf76f73df8e67370be4a114a129194724e39c1d5dae2264b10d190f7a76a4b1def4f2f39446ad031974d17f34e89211a634eca94be367d991d79efd87095269414a299f3c3a458257fd7241a258448cf2777bfe652fa2b1ec44aeb35f9d0ff137c3071b1450a7c940862ea532e5f595f5b53d7c32909c4af6c0bd5946cf95dcabc12403853ba1e4c6eb2abfa1f20dcc92ee16a2b534bca0fcc98f2e79a42f90e26ed8392cebba77bcb565a2ef928e183ef2f9ebd5c7aef9cae3d38b79ce13f9838c957b2440f4ea5c2e9d682ba1264b3240faa95bec94a4228e15bfd82123cc0e5a95c7339e1b7552bdf0c2094dce1217bbcd27c0b726ad57678a76daea57cb66e7a85d141491dde33de6e6fae63b89e3b9b32543ca1ce0f2f4ae8c0164af65455ae620bb9640eefaa70b2b24fb5ea4939404e4b533f65b5e46fc7613da8aadfd69afa0fb294c0e1c1345b6349e76bfc98b694bc61a9edc79673cf746a732eb6b0a182c941891bd46aa96aa5c53ab9d4c6c3c60f9550c74523a448491b363d2ba666d2a7dde6beb42e256c60f07bdfc24fdd2e75aea139b5a4fcb174b545891ad284ce92fefb2aabe21694a4a1e5bfb4ca9282b2798f1234bc5f8db9aa656d2c695341c9197ca97790b1cfd70fba45a3c40c497d2639a1eaf2f65a65505d1036847397901232b0e64bbd345d3526dd1719256358770d5d4b73b919f70f2911c3cfc46d972fa598adda0c88332fb905f4f24542615095493e96124f85c93fe402448c1230a4b9aafeb2797aab774d8c2b2aef9e202a28f982522eb95b2fad722b5bd2c80e7fda0bcd3629d636795b6d9f349a922ef0924d7d3f5baa0c2a6b5a3c9f122eb8c470e9da86cd0edd6a625c79b9e108d902439f4bba3419644eab34314e7e4e8c2b3e546489165462bccba55227d5934e13232804628e0a4ab2b0d0d95b394f06a1dab0b08481a3040bfb9ad49b09b227e76e5b3a66945c0126d5b7d8316def255f9a18399ce11857e49b11248d122b40c79c2fe738ed324becdd13e44baae024a7a6dabaf51a5366ef9e202554d8fef496bffae4d2db19a30b7e878e9229a8f3d5349bf53d3515865c80c0a0440a2bb5fffe93ccbdda4a2551784c9bb5dca5dcfad78682329e132e3ba66f9f73c9139ef972cec15d8aade598c68c1227f47450727250265fbbec3f4a9af098be564db25c4fee7109133cb1bbf5f978b532e896a0040c942441c8054a90d02bf1bafcb4bcd34c4913e3f4643420f6b14a8eb069c1718618182831429249b526e7bef6ddbc4a8af0ada59974d5a9ce5f2582775a69b165ced44d6599d01309fd17b364089f1cb2f595fc0e5b2995e7341791afd131851221402597a69da9b5264621254100c20ffcdfb5345b3fe89cdca989b1c4079325c758da09d33ee659d203e54dbdd4de521743090fa074b339b9ff3ec9a98b4b76e0e4ab941c7bf5e4538d3d253a00a594e44032fffeb6ce9b9b4969090ef49f5b4e299996bf53a68931c6151394dce0b1326c4d5bf93e98541363118f47c3f18d0f4a6ca0ffa69b4a5d2d55ceb025c69597500b0b8f8e1836bcb301e3e5f32e26b061a30525359840090d949c3bdd52b29f6baf0f44320b4e4ba9e98cb5753c9b8d6f38ec051259f054faa6b636df9bb5a689f10624b1504bbdef730725536aa515fe848ef0b06183c3611d3654ca88110305125890bc42cd999aee4e663f7f2a3214892b5ab198dfedcf275f5d3ad3c448c28a0690ac82dd4b9d2dfbc9b7eb5cb322860e1b200e07870d336c848e7ca8e3d161e3d5d8d4804415fb3c257d9f2c57737a9a184940928aa6a9adf7aa72674939092a1e6a5cb8eda269179b34a56c91a23714bbb11538c1bc74170588422017324c304f845d887498130012d0e7a58b7b3e2d020012b5b0c836416945e841ac78353c2c2ccf02009455bcb448966741415185ca640280920ab509713420ce640480820ab5097d34204e2623009453706325196c8eddfb2917088a29b8d93e6bedb9df1f27cd17e1213182c24029c553b8eff519fc9518dc8c18a498e9579ab0f725c76fe9286693df58a9263fadc44a14c949b59a42a714fe32170a35d76c133a3fd89e540b144dce85df3a1fc3c92b3ff1e939b78ae76b2c392f4fc097da26e85eeddcb5be130b3ed45e754cfe5b2c714297d9faa9e0eab657de84da6f0535419ebd1a639a504f296eacf12f6eddcf842feba5ba789dfa3f63c2dbaaa7ad15f357cca54bb0d7a48249e5a6a98aad06c512709737e97213833a57aa84d3e4524a505b62c8f629b1a95f6ba558fb24526be75c72c7eff5845212cc0d7a7a8a41e6a0ff8b44eb6fd627593d4848a94eaee92e5d6beaf688c476f9674b72bdbdb91cc1fdaea64f995423e44af786f355ad5ad766a030c27bf683ad6df37d2dd317288bf8e5a6d6b9dd54a689c14051844a10ae94ad74cec99e27e23905e17b72a9ca04792162bef4e483cb9f7298563a84520b4ea789e99b3e1f33446bd2a9f54f4a57fd7c1642766a8d7f394e50f162427837db96ef9f1a264e8370cc31e8d237e8d6b247114493fc6e55fbbf9b2e3d9440e892ad4c3e5669654f06847c73e9aed4857f68eab9e96be17cfd6f991f1c3ab9647aaf5c2e65fb03a50f6abdc9d6cf6e727943c987b54ff152cc29aff9aff7c0ee56b973effeb83947d10343876c4a9514ca5e9662f402250ff2ed92bf4daea7507d62ce0850f0b0702ec59cbd394d4e7d51ee90927cf773aec54f7a6b767829599b5c704162a0d441cac94ae1936b39a81443a1036cc75aa5c46687e64603caa0ccc1b1a7cad6d7af279b7b463c3a629c287248aa966b49a65733b173287170d2df67af520837a54581c3d4e5e44aa6ebd4432551de00953fd7d2f324e15ad30d492e63cd35b65c2696300c9436246f69e12a08d54d095307850dce4165cfdb5bfbcbffade1c1d9b8b56763271fa3a84136e65232a6509f42222869980dba7a4acd94bea74b1434bc2475cad40bbd49b75c07e50c9d7e31d896ca5532f1ca7ccbcb901c2a3388467ef8411837a098012ad8a63f5d69aefa2ec35cf86eb27bc8cf1923837c70b6a70e26568c558fc131b83c5be2c5dce2b46268d35db59accabd62b158605593967b375ab2519fc0fb7a4810206a69eb36ccc5baf06dbd37c5280f2056fadeee562eb586305353172f843a04c118e4ba300c50b89d5f23a5567069d883f91cfb310e96c72384a17dc196cf916be427d6c6a6254a348c60c3080907801850bbacbab4d28a5dc750735285b600a273ba86baa5ad9a644d102e34f4bfa7be6285980fb2b255fbc982646100b7fb845080e142cfcfc9f8a3d98f413db47b9024ccdeb93520b97aa5b8d15bcdde56cd95e3535330d4a15dab57e6a8db7d9eaf6c440a182842e673b66e94c4da9384250a6a09493b2dd757e4bdd93c2e46e6faa666f2954f281a2d0f6dbf14bb6ca5e4287423bd84ef539b8ea2d7d423763cb579bba533de63a509c00d964d8ef9c7b0ba1a62f509ab03df535d98bb1f5664b4c902fa5d6544a69ade90d97b0debfd6b37bfc74ed54422b6ec834ed27f5e75a12d4540a2183abda3fa6bc0305099fbabd2a6b9adedfef113cf95cea395790fb41453102c39dce4ef957a63715175ba8284a11b8296b3b39a957d8e62302744bad7bac5ff2959e030da19f9a2d35d7c4522f9642e84eafc1c4e4eaf9b4a104c1f542f7bdbf332d5557060a10a4f7375b0bf71d9b50a1fcc07975b1c7ce57e14b89e203d91c4c337d62a8ce54f580bd74fdeca1ff83ebc113a0f0c0357409ae6bbff5246b64a0ec80db6b29ad9a9a5a2e569e50e7870e1c9b32a56df61c48d8dacd6ed656a5d75093d9cc39e4478f1e2c2036f2d231668ca0e0a0dd767ae72a2937339703e506eef9b34dce2d9e537da2d860eebfc9bc925bb39553941accf9a052c93b95746e8b42837d955231e5607a37ddd4c49889310c1c39c408e38b18fdbfc52341394e66c112cba65e49a9dff3b12cda3de59ce325e17ad0cd9358b8c397562d29d77b5a6dc1092c2483ef25297dad5ecee9e4157025d9694a7dde0fd39eb822a5d96fb9f996f9b17e1d25386945f2a64ab22a73ccdb72561ce064152f555a2ddd7450aea4709ea8626eeb245bb6675eec899ca4422eee991a2f05f777424d8c6a8071820ad814cad678f1a7967e59361a901a6bace1e3e414cab9c7bcdf4de55a621f7201e24e4ce1925a4dfd7a0917f27a9a183b3df4a414fee43276cd16fbc3e9a458707d3a7fbbfb2bf3289c4ff9d4bf753d5f4aed4414eb9aea3eb76eea52705d4e42e11032cbc44b290c4e40f1942db9de6a33c67ee7c927dabb37b854b5f6c838f1445bdf1e3e95763536a79e74e231fbe9bcee9413bdfbcadb4b5787eabb09f7563ed99e41d6d26c4b13cee04b6eaac63a1389359e9a94af5bdded30d1ea9957295e8ba5e7e4259e777ae933b15dce0b5aa213f3c66b429695804fb59da17c9468efdcf926d9dfbca99e845a6b4f242177baf5dc635dcbdbbd934848c64e356937b92d17ee4262bde5cdd96cc6e6548bd9e0e4116bae75f716640a75d7114eae8509b6b657df0c9e71d2886fed9b5bc95b72b3b13c678b13464ca9ea49b67465f393ade99345b8afb9543db9103ae7d689229e9c2eb9c2c7ecb9f53b4904d4e678b6aefae670f90411ef957bee7d5f63a6520fa15eb1bba9feb5d5e532f4e1315edc93e3e5c410abade19c3d7f2e36590bb1ee75976a7777c974ce1342a4a5a0beb95a95ba5f3608b9de0c3ea8cb25a594b99c08629552d5c5cc5b3fc81c88b756b7d5d649faa6b69a1340a86fbd7057ee7a6f7193c1c91ffaad9dea9827f50fb5854efcc03cadb2d458a50999ad3e34995e2d766e4e79c287f6bebd606b77c3c46ac7c91e78c96549216b0ff67ffb0b39d1c37bf5a4b24dfbed9ce5b69ce481bd87739553a88badab1e277880afb1c4d83f97eddc52179cdca1956c2edf41d689a9f52776504fe792eee1943b1deb933a249f2c556afde69b4eb917277458ce264b4e6aba25994e4d8c7c3287754cbab92cb55f90b5656324732287e549a5723dd5f4d68919f9ce9fc461aa4308613b93caea89052770f096a6cf9fcd2da5dcb99337347ddc92335606e57c5005276e58d3e173aad3a7cb491b94b6f94c5b826c504dbf3e13379f0dced7b09335b8b69458793ffca9aa6ad086cdada5eedf355c5013631ade7c53994c6eae5abb7c8c1334bc6350aae720a757dbf8431d26123a398363afbadeab36b19e0bc889199edc76ec6a5542674a65ca905aa9b5bd60d3397da91f2a9d0f754ec8f0968253595328156c5f276358b834296f4fcd666f77c18918a442a7be95b34efd260c83ab739f89df6b6ccd76203038a5cee1fc9d2b77d51ff40526174fb57ee7744ab2f49c782149e6e042e66f49a76a764ebae06b4ae7a6eae7d6cc05b7b43d3974d8e4b74b5b78d3e5fe466324e3099d68e11f4ac91a5370a74cfe4eb2d04ee1a6f50ee7f2e5ef18e116d00916a073b5de4cfdd4c91594b2769f5c4befe17cb682dc6e76d93cc125995a55e0097b657a4e1364c593e5840a3f5fb55ade8abd7f29a7901a5b6b3ed72ed5ead771f14821b9f66d31d6e65b69b56962cc60a2701205f786eb39d77ebaf3ba26c6222750f0c7eb3d872aada758ce969327787353d01f9bad3565eec4096a95576eafc4f45de326ac7ccade42c80cf6f2036d4e98305933f898f2dd061d36d0129c7d616b70d564fc2468c3f9d0466324137a224ad877b572bf395e8d2de6719204864ed7b69418ec954a9e20614df76b41d5e58e00dd635533412657a5572246902e5b7aeedd63d94d6a11963377289fdbe452bf3b21822bedb94aeabef4653e19425bb22997ad252ec18910bae77aad5bdb77f8e623721284e91a4a6deca65b9db3e500424b8d39bb07593373d3e3f9fcc90fd65466a88d4185ea2df3ce084e7cc09cbba4d4b1e41e6cc73dd84daba0aaeaf5e69a4e78009535b8a4aa36abcb79b283b9e633c9491f9b3b25b7e044078c5d8213aa564cbff1cb41abb78350b59554d7aec1090e52ef93afa5b3d7569a930627375049a5e75cbbb5ebe5fdc5890d54cddf9d4ab2e7b58cf138a9c1926ae9b67aee9eb576384e68f0cff96a572b93ba63ad89714563328bdfa593f9daf950d79b9a18631c81892ca49cf05d9f724aa6f63a16bce6f25b6f9dbe3575bd9bc0425b63cacf4aa9f4de539997fe8f2724a4e3d980402da020367ca8848ef08081c92b5ed792be9a63cdc1d7d626ae704ecfd4639dacc9c4b82224c81a26ad70a6ad94838b1dbffffa3061c54fb66f557b9edeafff55c8ff5d6dcd97bb4ac90dc34415cce684ae50e5b76489a542bdc650eaaec2d6da739a18a1092a3e39e6d2e3f7948685bf6324c3e414afedabe9ce3da589f1e51302bdece050f97c8c1925989862db2ba6e93506bbfdad492918538fb5c61af3df66d6c4e8384c48b18b4da6e4aef489936a4d8c992fc2a11841018fa2a844108623792410898281200642103a346604004311002030282412880412c18856ed1c1400025560546c4228281847439238200c06e3288882188661188622290ca2304529a70572ce17aa34df4519b01c7adfb7a2546be4a3f3edbc7e5df3f2a5cb5c3f82625af1a308da8ef45ac6e2ca9281651e422b142b0af118ffe4fe7dce3eff7758cd82664f96d21aedc3b7bd1a40c7d563f4b8c66ad0d709b6cdf920c3418c3db5712464af9c3a446db762b4ef9ae2649f5043bbe3b2e48ea356d0e93b19e20cf1b314592739d84d68bdf9a4e07da45aa4ddb8bba8843dfa6cc350aeccfdf444421fb812ee2287a847cc2c42237aab22c3ae98a332466e88236025aeceab87ed7d51205fa935693d03f85380d9b4b3ce38af92271298ab3ad2638e6a0c52f39f1fe77ae7772f384f4a694e838baa0fa71923de196ff15e5f4ed185847fe982544d99efc9b0548b3d5111ca71a546fdd0c1af0500053dcfd5a6c88e28e375ea961f44c2478065c30757cb50853b41d5453af7f38f14b8ac24a937da2f0569a62d3eb0af5ce8acdbce017b1774040ebf3bb66ca0c6a423ab648acae421b2872ffe1f3d6158d2b544076fe58e6242aa1e02ddf49b7a637a77601261eaa95373c43fc2e39ddc2eacd3f66446bc35bf0c6ce50df4932c7bdc0dd5b0754f66894c89755d4399793072c70c4042f44591636155e4922ded81a5698584ee496a54c37ab280bdb3cd8640642f6045dad5102cfb4ae6ddb9390cec444c2ed2e81c011f9d2d556c9eddc81b66d2bb3973aafc55dd79b9c56557c6f6792ef0a74482922dded87ff2905c5b4ed6cd3103894808e49f34e2c4d1f9d6730792534f0ce7d7fadc58982005eb8f80c01635c1986b983f03ad3b43c407d83e2a9d837f4d486f3b5f5c49ec17e5096715031b4ce374ae1d607df1a17d931e0b27965d2502d5d7a401db378d8705c8a813e20bdd078dce4cf4ff12e782a15686e7703399257342331d1d3c98c89576418dd0b88e0a5af0af9336dfab0caf7691d9f6fdba97833008d831baf3332694a9c6703876acd8638897d37563ac2f3e5c49f65b1354e29bc65fd31e199fc88c196d59a8c79545767810579a22f2e1e002bfe2c45eac9472fb1533ce79dbad6d39f44bcef35969e80742d34ecd995e0a7e34c00c87679431633b4363bf33d1207089754b495f55a1c0df1d574184a1d3ee9a99e425c4b9be4892bd334c11b668e0c1889db4108e3f195a1427a26f0f1e0f9411a7ab343ee214c0d21bdc001a6ae6a8cb4afb3d686c7575804c1c94990b7a6f09f74075b765d4ad92b50f7c4a9521f3c0bd986247c1649379dae0f16822d8bda98c42418fe714ff3a2cfafd2fe734b76f8922ec603493a8e08860963359e4644486cbec2c4d743292d60b14f97b652aa4a6ac6b69d771cc4a7b1c9c55f4e3cdd45b79bfc7dee5a00a34e7e5b0d92e7410dc8127586c0f8ad7f9dd53fbded2cbc434aa1c91cd50dee6661bb8782c97138ad6faf1fab9c73e63def36c0d7844095eddce8670aadd46bf45eab750b0e299c22f241b0f7f5c7f9bf90a3de24d4c3ff6ae6b732811b752c5b5d16356aa35edb4c404be84428b63d5644db51f50965ab573ab97b79c9a052017857df658d5af82df9757f0d14c5089af0930febb69dc9eb2eca574dff70f6a46bfee746451a2b6890210c2365f969cceb884b265cb130f4b5480d56790326d5aaad228c38db99221f1e359288b7809c4621d315a482e3ffdd7e284c0328a6d965970972825887ce6d3d0984323753b3a72fa8f8e248cd016135002c0abdfbc153e1bad27f9025149573b14fd6f75e9886e08c58679a1bb45a5da05f4ddb9be7a512f04a7307be432c6fdd2d9cf17164cc392a80db8fcdfd4f551892a0d5e97e0d429d8e020de8fa2b52df40f480a6ed52381d9424b5e91c645092735f4611e42340555b2b7c227b5b35da1206b881e2f5ab0ca69aa7cac213713de4a9c46a1a7e3e060ae613a7b9940faba873dfb07d438609e918c17204d673224fc2f5a9f8671dc1da5b96d58ef4af83e54b0b0e9394c9b2d645ed9fc6032cb92116686052ccab9cf8b694b6414063948b8cc30cfdb03ed62137792afb881640e9aa3d4422224973ce345216307c9bd51a2f2958b6da5d27f99e47eef114a105aaa5395a176cb6d1c092ab6bcf53a7164f6f85249cbb508afb9dcadc1c34a8299c1d04b1dc52da2ed3aeac41460cb23fde5ab4fedad4fb351c14f0e0959312cd4eca21bb4bb706e0c781854bdb804b014b405b337df436c25709112ac9109c11b3a451bcab6bc756af8cd5ef7c4577ba2be02161f69cc2fa0a83537250803d39a98a6cdcf238409cb54f86cdfe6110cd34c213fe254d149b45a650f436b1d8205bd18bd132ceb9755d0a37789e403f91c7420f59a0dcb78ab7ec39cd7ca01b63160a92781619c713d67d5adf91ebca97c87135e3bf535615077a535ed50365dee072bd2a470c6711252ba0da66433fdf56cd3472a86a46449db80c0aa5b8fac194f1877d0b0a949cb962b830c853feb2293a04ca7f7762e743469f8e62ce300869d2b29c21541c8b3e500094a026979cc12ac26ba50a6b212a2d22cef4ffaa735008bb4916c2d5a72100108df57889e377b5c8a5b7d88a9996f989063120d3e3dca0fcdc73947a78fd4e738b56771c895eb4599438fe60f5f536968f9e31d9f61a99c1ec2568ca6c6b525b9a22b36e56421e7c43af72e14c93e8f602c8468dfec08f92170225ee7057ba84259d6bb38ef84c23779ce8b00bac43985e2a1f10803b9764f066da14abf6549830e6322323a11356553d5f1c2a17a08eb2c1526751ce5ea3cb97f308dc8e0525226bc9512846a799a743faef154e2a42c575a0673981f24c81069d77f1cd6c0b4d9f800e670bad9ee8db3ac6938d3a40b24d5c5633417de31a35efbb203a8f6bea99837235b4ccbe3bc578e6d605fceafd2a13f2802d0971e16c177fafc47e602e68caf3e2ac89e0537b20c7193e4863508fd7f55b9288700227432d43f12b6999443d7a2eb3cf26edde8b66dcb0bc56409c61f1441065ec13ff381fe48de811b136480fe4ca6e4235b1aada71396d102730f3c5e227daf1b183fa16609028cd27490727066c9c5cda5172aabd26c62e547c28a5b84d09d873c7607b95f0c83b8bb09e2414269e3baa9a18a67a35ec9f969d6ff55589b6729a01f5cea86d97a06d57e98556c78e0dedb1ec30be610337a6a35dd0c78a8a3f589bcd078076243f1618e320b815a39dc8b8aa9e2a028ba96f2aa3cd1321c21a26df4f156bcd080307975da62ddf323b1c6ef38f3857310a142783889a543ac016f0d5e67b59be56faad8950f4a96e811f9826faf696ec73b3efbc2e1d44e4be062f13f5fc4804b7c5d4e0f010bb98b577169a3a65c730d9cdb2b1c32151166d0d40bb07fed5f6489ed66ea2299a90b00b9c0a7e01e6054f0b71b384dc147771945bab1f3629bb6d6729a946bf39f5e30e5688733872a6d5fbe8cd99652bc3400b9630dad5c1272384b978269b9ac5b70275f6a4936d366893957bace15c56349f0afb689f23b8027e670b5353020fa2b19e405332b7dbee0892700adc1e9c699263e074ce6c128732f036c4196c408fae6cb07ac2d1449b6aa08c271cb168eb9ef6e6a75cb78209a55c214e72ea18dd3beb4e436594c12ffa76b3cfb39deeb8ef7c602f1e86034f88e0aa9a7d46449f45d41eb0dc4602050fd748109cac9641f56b2f1fe2db6cd7fe41ecd61fea3095eb7ec6b2cdb74bb6474fd85457a3b635dca6bde52d59c13ae210afe6aa57f0ee3200e564fdd0a336506e500429ca783533ff0888924d0a5689996b087f7a3dc49251f728a0abc53748402b640bde320b5fcbf536ef6801c53c4764e8338ae54d04fd13b0e67b8106aaeabcb86ac812ecf678da086169682411115e86741d7bebda4cf396b7f7bcb7f8f1814daabac88fa967f001e3ec331609e25f8dddb04ba1bc9548bf5a959b9f434231c0878664481dc9cf972d5fc8dceec45c251bfc95df6ea161baf3814f4944a45c7095c40355112e1752519c587f58482ea89ae834c669db1653789dd48929cb46d7894455671c94b669d31c47fce0d85d11a229b84a9a0197279e2201025ef9176b95a1fc9cc11507f59ca02c8752c272bf7041909b11611fcd8d2085f1f222c1f582ddb361966842f8b08921f122d651b4314ca4dd4b060c118d45ecb944fa391f80bf0872f4ba6735d5a83a685796d0b4f7dd4740689796db0837cc614827b2200d171705528c23e3021a55c901152048d51eba2f9bc72b7c445f0ac44c6c38cf25bbf69399d8450804beba8eb4a9d483e300e48a9036f8b3f9341d41448fe112c9341e622646ada5e1b0db2c2b63d4740c7db20a591458ee091a5d2d947554acb010e0a3cab7b808001123b4ebe1e5259b6240d57863f1b5f0bfc03aa83d0e492cc1eaf17aba0c6ed33e9fb936f53d10bad33880a66e4bd9fc65665a3ee20b3be7ef568388abeb1e3acfad81b4e1d5d06e18f5b8c30d392fec4813e31d9cccb1f02852800a5abf9dd9ef1056ba2c4bf6f941e225831234137c7015bdd30743278817b87a0eb0638587a34bb1c5ef832ea5f2901d89d71a076f282cb4ac9a855e30e1aa054f147c4b8e2d9b731f667aa873ef05946596f35a158475140d1f2218b9833b0cb1e8792f805e93feae199bfefd4224b2eab02b61587e6da13dfd42b2169b917d0a5e57a8701087abcce6a0868f281f633c0ce74d29092f8cf5215e10cf2e0997499940e28fd85e9ad1fc9e595bf6f765f646caaa685291656e594f742ae45004d9b6348ed91cab4def32dae565bf52ba4d282363844526f2150bbd3c2b4a690895fcd44ff5ad116084b2890d43acb2d7a11384d06a97cc48147484d478497f11d5500c78a680341f5ffb4ddf08f6cefccc5e686983e9d9cc2fd2e8c7c3e4aa8bd796739500dbf4cdf2c293d0859f42fed39ae0384fd506c0372bd3ea10a1d99d673dd3df1a2fb5ac03dafb37663bc3bff3fdd9ef446b9fa4d3aacb3f3d0417bbe36ad6b13fffe9d8245b38f7af6611adac30326034592038dec1e0d05dbe1077d4d44d8c6c0014a9fb9b78f31b6d82815285486d283dbcd3f00515ad73fa6f5be50b6aa9a0cd23b646c2a0d0cfe18306866e5db060e6634fe1f16c00dfcc19b99010be6e4697c10f1d594563d7e0f606dac264b45be437d637feb66388ff708b587afc25cd1e0072a2587b389902abc2468fc8c0700f058ee1e45d198fdc6de79b27f5db5a1856cf5e4bbf3400e010f811a7c6027e8002bf8e7548f96152c49a6c0e3dbd86d6c369e64299e3922a1c17183f4a16fc8c65e7ce14454dfcdd7145c623486aac4e9716057e78dc2d0e84bd7ab75d61fd441353ed323621c48df2dbbaf6ebc379711f64e001f445b56b4858cde9e230d00d3a19b86347f66c5ef385a812e394703c05bfad87890ffa1b02a6fc84f2b382e412a5bd0c6707171012ae0c9ed286c24b032f533828652bd98b7e894693f4e5ec1887485bb7a59498fce48467caf218798b5546faa7f9d4dca2f6d8b76c6d583c7a9aa49e0e3b146e29ec3641b3b9e97e81ee1b0666fabb17d42bbe166e0419f61ca7b78bc3f4a142c9e81fdda7693419adcf4384b0113f1cb0f60f4d70f9bf9ec5cdcaa26b6f85aa07a1ae24851c7c4870bec2b4bc498ea04195fa573882ca9daefe25d316c7b6904f0cbb1a7da57d430cd745f8552c1bac4f25affd0c6498f4208a3cdda45871471f1a03023be269ac423b263b0f616a36bc085a78cdbfe2fe1395ec96741fb03a0722c3d369afc1a01633f0d7498a85c92915cf3e40ec394a47ff353432f05f4660a95b80833b280ea1f5f0300f41b9aeafa0a65bda0cc15860c80868c96a4f7e14441cff6f6a5a00b900762360a722b6a41e4ad8ccc2c1d325d3629f54cb9fcdce715c835db41a14224fde99c6bd88f7edb9f2b052bdbd03f8136f0c30769b33228e0d76ac12b4b700305b976ce6a40f3689a1ac54582601ab69cda93bb9a95a8b4aba71d3764f5229941b8680551be0055d55876f2ae36fdbaf27f9b13c6a33d580518be1fde5fdc854ecab05bc05c10eb6dd76767a1aeef8d778c1490cd7674ae1d0da61c21dc6cbf7180658fd1f3db6d55bb484d0db6799e99365ad3e61675af9742f3f596065e6bc0f4687640adf3fbc78c2e1e42c268816d01fd8590e4625d68be2c798aaefc68d2ab34ec39df2bcb0ab0e52eeed2ab74728199efbe0d42a36fc3c598178d64851279f9374e2fcf2eb1cd54513b6aeb25f96c8950a390689acfb50f02ba1a8f0baa23acb770e7de1b8be13746aa1605e50f1fea3a67e6b31f73857a6f7a7ffb1ca8d12a5d70828d566938128909b27dd007845c8d3569436027eb44c5858c42212d0a6bcb20cafec1b0c8043afbb84c9247661aa33ccb2d6702736b10b0fb69796c9197bf7205582bfd6b91934e0b7d2e56a67c4ea9c43c30d4083e49e387a8ecf2caf07ef0733028d48676503090e102d08461a9a0e4ab233c5ff551bde6ecb2cd6de4c23f0153d985d5b922d17f6bd3f82984eaa5739e8881fe5e9903104a99bf795780a4c2e558b8c7e6c25fff1870b77adfbe72bdfa648c1cdaa0cafdaa95e206153f06d461c8ca88f4c393216e112ccd54ba7c45f031eb2acdacc6a7b9349596e29941505779c19042f0fd334ddd6a8ec00a434629fd48c8f91b17c85b2611b57980061250d3056b5102c310434d9a33c097b293d55c3070646731b3521a09fee4882c89939e6e27a7af08ed0306ad5c8e5d50b4fa7989088165452a9dd3f4ad8eb1e151f6d2c79fe18c8f6fb83d3ef7acb3e2393d08c22663f05360c573140a82d11ac324e65564a5f376440dd138bb201ed9410519e0e0ad25078c751c9d9d546cbab26c91b279a172611dc5e26e4fd32ab2bba9891d61da65a87bab6586678e38e2b0b03dc621330f08998a0934f0a8499026ada4ff7ce5cd6e19dd1e31334624184761d7b5e7783a834594ddd7e70cfef32236ae1ca9d4e484ec3061a02130fb84de88149569aab587f3bda442139b4dccdfac4f78084ba93230740de608bfdbb449c5569dfa877e9d4f2f8d7ac0c6201ee6848a582505f6d78923c88c41ad0154ff3c8d310c63d9a9a155fcae7a793076a7769c54f6724e7ff42dc6205bd476ae0d63b05c5a479f9369a51546540b42c21189db637d99a02882b5c19c8013a6c3b2f85853bd2c9a025391017f0e1f525707074f9a06e607e501459a307136166784d74928416c8ea9b1b62d8beefe1d81016fd4b17b305700231ac429da782011e080d091191e7c6200ea81c105ae2575a9b682017571afb64b9b1826a5fe256df33e834d006a08cf8b52354ba18e1457b23a271876d77d987bf03931d371e9c50f8f92bdf3c0792d63618a37676dbd9687e14e31d9264c324a56b92628b84f59fdc0c2c5ee1ab1db73cacd6419e30465d44e3a243b669cd803803b86fae6329e7e19ff916ea4cd338c3034433c9aba9f58a66e79b18eea0d801034ed90bf7e3bdf600be8aa5e8eadcc063000eaa7b20d9b84c9602b04e6ed4cbd0f8bbd5fd5bae48fce32f78c9ae393a0e7c3474430813ad810aa4341b5aa1768bbd88c27f96c4d2bb98ea35ff727593609811dbea5baf8fbf3940379b6636f3e81b09aed4d979c3624b7637a257e6d07f944fd1eb730955dccc027985a4eda25be282f84047ad234ef5ee2245590fdaafb50bc92c0ca84e3c9e20c905cafcaa8ac9026eba8c4d24e498296d7ab55a498ef2e10b0a4b0e42dfb8afc3bcb578f1c83a23bee878830898b2f865e4acb25dcf28a50945391205cb3c28081eec105914de4fba31c286c6fefad6908ff69108f9cb6f668e767ce0745bd116231d2c4cfbd667d66416b049f8ea9cdae2a123a04ef66161718b0588d299ac6cf960a191bdd261c870264dcb3279c9f540dfe50d2f586754de0d5fec929d61501caec7b3a9896c720995011f4a26320c60b4275b96c9d3b2f28ffcc5fdad5cbb90e1652884263b4131a76384427909f8b211e8d10171694fed5d9776601d5e442697cbad52f87ee79c710a421db0be3441ad23c59636434e670d6b5bd7a317a197207f36e352d4086b1ce38b852613d00d8843089a73ae82322a7214fe2eb9d29625a269c3481363cd2724df05154326807c4750a530612db45e7d0a33fb6755542d090a52bb261c580ba5b17fd8f2348c215edf06f4312a0181da597367a063a4ea0acf29544ec38f19256248e289a9f2ff34c27c4ed82c00f8789e3f7b6bd8e33f7c4acc6f399d8a7f5f4d77dfa8a5099f79d568357c84153bdbe8b5d3185494cc7aee5e45a44b63b06116cb18205a832e0272c34c44fd0583bbc3d05a7cbe2cb05626e1a9b607546b90c2dfb7a1dd09c3785a6df261bb76f867b1061ac3d313565081edd576fa1d7853152943603e8e681d5ff9bb6fb4893b93272fde6efe74056077f7fd622208b200cd41c6eccdff36b011fe08ca54d20a1a4e80661ce5a4c148d5dd5c137d658f6d373776ec21c83ad929f59a4df868c80be216c4cd5484e74cc74d02095689c965ad134b5e5da33f6c04e0077a8eca494b3bedecab0e03c75bbaf28a26d46e41f3f5e902f9e0a2feaa78e312a9325b45ffba866e8c90cb91bb299fff2adea1c3815c2d430495710800697f7946988f2c6f664aa1dc582c5ebd22fb121ec7c488fc0cbf47c0d3dc16214d5545b050739da298779b42a6dce98244d8bbb915e9c627248e141a2a7092fa05565ac7ee96028866df311b312657d62b948a4cc6f02ab5b1afced3069b1c0b658efdc3365f3ee52aaeb232c95f5e97065d62e02eeb9199aab3246b4331d58fb792f8d342220ec6ef8000b8c98d878ec668472e2105b21ab03fd288e378acaabd51067dab3882570dcf07ad3a299693ee7fc273e9d97bfe2d26f9710a75b1ba04c584a3bb0663d01c63f61ecbd81236145e2ed9fe84a74494db4b56ccfb8d5a02c8a72e097bb0bcd260e9b78fa32091be8c318cdf76d949b423164277dd6e5bb1a4b7bbfffb3083adc55956723878d0e9fff2456d4b0245d32c32860a73d5a9c5ec84f64eac7b70bbad085afdbc4e7bf5cd86f1affb7fa217bc6391703dbe5254fc0351d02279cbc0260a8400d6f30d80d88fee5be6b334b1a2bc3b885df127760c0e3beed7e139088ec912daf319cb31f51121acc55fca45507a21b746cf662074c11be673fc1eb171202e6c70ab0dafb90d8f9f089140cf8a2472857c73ce5a1586f9888a137b14d0ce89feedeaa715b0685229cecc1c5b2452f746d74e4c9ccf4cd211c92d5da6a9606a2b033b647bce0dc1cd849d30ba49f7251384700a6aa77b89f6317cab26d1fe2041d34fcbe0f481b332644a6ad2eaf0b88fd6f2d42ce82cf3ace1b57afe42137ca1cf4ced7c321538a6f7a928e4bba45920f46b39134738be23bc72e65a3dd1f714d458e71535088a5fd2d64ad7f203860978b5ef2ffb9c12cc9f1da67c32612b0770902ee39865835dcdd797637b4362fa22c748b97a1a36b444a40385b5ab83cb87470d04ebef5833667ba88ff9e5a0a9a586608c89dc190b892ab2ee40cb55fc06b632ee660e7191006b8f7323be53b0551d8feb7b8d43a1835f7fb936995ae38745c1ed57894e58d580334cfd01a1b14b937282e933253e1b8f31f05639e38886c434101caf629f7ed6343af136bcdb4125301569fdd6f5e5d7f046e1430569c708a1e3eae322de41d37701cd36f5b5663ec2702972c6b6fc8888bc78146039e117c02535108205431bda2b8217829f4de6b3bf8eddcedb4515e6194366c94b72c9898846412e5a35a97b29071d550cb4f8e2ea286731acde3a38cd38fc75cd21eaf14f21c4e36a0c27aa0ddcca0b3636662071de068b721d22d00565192cc89f4fd57f39632cde06ae28c39f50a5c42779e4908f5b561973d85a510fe9d60075ab066e6651981666f2b739449c561464d93024a6050215f6aeb4b5b88797001ef62766cf7267194f2b1b0cb6157d202b5a751bf9a07a959af7ab5936450837a940750deb8cee160b40ab01aa9fa103554919a4910d48722efeec2452f0770690e95a791d89d1013e75eff2d885dc8a36ba9a1234f937f11bd93e2705d176ee847931c18c440e04f66cdbaf439ae1656ed1b881ad1b575394dc330c54751fac88ec26aaf252560649ba8d555d93b6cf636aafacc688af067a1e2e3d99fa6624d838c3e2fea61f8eaa3df0e06b0ca22159f5833dcd93902c0ce18a49e619bc675b03407563d2ec0668e2636edd8cc9761669e9acddbf20d6f08d988c33f7349c0a3de3acb84079318434411d198720cab68eaea3bc09154eede78c81c3affba9d9b67c2bd4a2425aa22c219b2adea91b4095b4e1b326d154819227af476fac047d9055b829bbe9fda875140368d6649708a53efbe856accf62a4cc928f808f2ddf309759825564f96f146e86e6f03ad5c4760b110cf03b62991e1fc2eae83abef253198c5f4a034ed42e8f0114bf93c69884c906103503e86d5ae14df8a3798cc45f796ad744286770f4623553755ad0bdd48c8cca866704d1aaaa0025d193aa1e404bb25416d5242b079e37ace3f03507c9b787d15e309a2bf71b57e8099e5bb8772926b0e9ae66b77fb92dfe9fdd4fbbc52e432a08cc7aa9197f400547c4bb9106132b28695c7091324eafd8e922d69831488eae16db5452ae464271f5ebf6fa3036930f690bb00e31a884c03d9a80a1229b9958d82193210c234b4dc06aa1d24feccd34914d60855cd32e3b7a5681fc82f9d0333603234082f1538beae1686a4d264aa3fac888d4ed02fddb465c75270f79dab7de7990a2e2165158a041a088ba0da4b327e48a8af2512ddfe21b4534f9297c99487639373be6fd5cdb510ebda12d7d0e57a50838bc4d714fda7d4cb5b0ac089461ae196805ab21edfa815bd7f0ea0bb52c5aa1f009eccf96c1dc6964014e33e616632181196b17c549374bd0784c04ddaede20be2c628d7d1b4ee3d99ed7ee2ae21f034b8f51374941df3b9c181f25189b7fd02154fffbd3bbd67e6a5379ae94c45c909f096ad27da443588e1fccd3091a5c7dbe483581a8dcf675e462f30a9d073b73a0b89f164b7266adcf503d6ae0cac932430eb06d0d67a6d19ccfa6c3f29e228d4b76fab91d0215a222a81a8d49f096ade86ad33ab72e0e7a1bb762fd26c09a4e19131a5e25e9448f47b12515e835c02259e7893d564860b7f00396f3bada08a8bef4fe419e9f64b066400ee6284c66170acb5ff3822c019b51cba00aa2be32b986412ef6983907734d43138162770413480332867494d033b3d4d437d5851b0abea67a4a19e8cf783b1220e68800c1a0674ae0a1627c08f4f8b2f2fc7e12877aeb007b030fa5b72711649d69888c4586b6988f083169f3203ac663023a663871431dc51225bad783014b4006ec44223fd346d6fc600c819c90eaa132ea209ad6b950d8db41bb6a21f340fc7335a9e9d0c2ecf3b819c5121c63c7c421ba843c148db4b4b323dd148eb2b28df30881fa43252535934d2078bbc8eaee920db359e6b502373f9c466bc65a4cb0c8d46ba842e206aa3910e458575991bd50f70703c0312baa3912e1d1f8d549e96ff5c78c29978485efa422ecf5f314bf5386209760d2303cbd27b5305ba67cf6ca9e857acc6cf40638847914ec571b4dc327f84c4e01f46e4528d64f1823960f84e466c5d55cc068957ba76c2443916ae25e697cb5b65c0b9dce3c80d21dbc06065054d2f7eacd4a99ac9fe9245c9af420e269b0e8c035320c7549f18ec5b317f047803dbff70b18f8bc9cc1324ce36b82de2af91fca54d0d7ec1d614d244542eb8d711e55bbe5816aa6af9f4be42e4226d552d33e8da12c99e0086160b69bc0dc20ba5b99a8e7ba344ff354309e516dc3c232720912142206742f43eb1e75b627e75331e73bb57e3ea816f792a311aa5e8d8554d90ad4826de721bc0dd7c73450646dcc3b044cfe1211e854ffc5d20aacc4ffe70225524455760a0f6037065be10389f86f30b9d87166080c70c7898d868286150c7c0e6cdce3736c2df62226354fa9f6a480686af2d9013157956c4191fbdfae467c435afe39f4dafcafe70be9d763080ba84497a54acdd5fe4b32344b0b4ce4708584c99a52997bef8b68f12ee7034555530d955a517203ce0b91aad2ce1da1ec712bb4d7297273547635e07e5e2ab7ef2a1b771cf3b3dea770ccfffe25783c45ef63ad564f61e7c1c6b6943c1a1538d41ebef6658e144c64da3d2fefb41385737b0c9c0837daa2da11418d455d29f1214d9ba566861eb2fe2f1dc1321707033e6beb40a87a02cf1e408a1391f7d880bd61edb2a5fc571294f47d0e2c76fd58bfd39e4c7530df0182fbf8fd08967b58fa0fb8af62ccf0ee824374785025745c7ea078793cdbe02db29d391dc777b303ccf4627e3537aaed9af522ffc456a814cef60cfcbbd71081077e279edc6688abec5faea056429fadfc51613df7d6a8f9bd7a978842371f552be1f1b37ecef5516bffef70909187ebb9c71ce5a7750777fccad05dbd2096592dd1885b1a8750b085b5594a8052adf6182f83d63547285d10d2e0d43cf54342c7382fa8c310e722b2b5d361960ef98e0108ccc73a83e3da11ba94a53995f7b453e4fc00e8ae354d84449fac7de861b3048e22237dec99d527fe1f8e803bcf9cbdd0714cd244d27fa733b9c9c0cdb3d979cb71b1c8bf439021945c5632054a4292ec6c1f74465c2df9e7ce4bc4f66837abcc1736a5ae0af5d9e2d4a4e7593a900a10d02c6dff7ec2e25097a0c5cca624a2e67150889e2f837b2a6a4ac0b420faae41c70f0cafd4b991ec23d4e408c0cca6f833ccbc2d3e5b4135d7c968e7d1166f56d6d821608416af3f489d89a0b8792ee000310fe3b007b1f76d8f79a35fa893a37a17aff71d683a9490a11ef35b46d46e5ee12d18756d48f80d2020fcda722df6600c69d16cce73ddcc9fb5d058be44377b5db386f704e72892e310c0b21ee610e114ad2d1bcc43774f7007f58e0ff4fd974b096fafa078e4f975548869a8cf3233a0c2fa09590f89c203d7daf7afd8f68cc74c1472ac441a4819f950f23cb5ad3edd977b363ee819e74b19baee623b73c0a753ff7f60e70a4bc6130d9da33af1c9c370e7a109bb84e97d906f5e91ec33d37de93656362d27b78df150d2434a8f736372cbd76ff5d455fba73fd25ff3e02cfc34f4d339a64500d93fce8ab0df118247133b5eb5834e3a07b440f7ae8d7123890b0461b8c84a1502b4df6d6c6edcb9c6cbac7bb9ea0b8eeaf7120bb5b005f8514718a204ae4d57021f6f34fb85b2c3c3d8332e846dc992d7e024ccd78b2c7202b197b3c3a67b823906eed092724128695769763553af540512345e5fd42929c22b872c0530ca20082553f46819139cee1c7e8cfde432a868d5449623311f9a9dfddb7a5e0c34b07f2a93e5eb42c472b23970a4eea3f9009c062a711d38057b67930c2f7dd69901860767bf477e4ee36e5a29f8583702a737ecb6ded4bf498676cd1119aedde656b9defaae6a827adbf9718958b50d6cdfe2819330a0ac95246c77a2abb1e4f2de03b18b2a1edffcd21b629694f6c04d5410c9caa196351bac8c445ef094efadc71b1f6a1cc926ec152362cab2b336f93c152df3644bf91ee6bf9b4897b13e6941f907bd78b4660be062f4bc0d5d0934ec5f7afe828f3be1e2e1fae1e9acd1a2dd9fb13df3c151d9777d85e4d7b9b6d8e8c6aee64b6454ee31728336c9977d69abdf58920680e60e8ef5b1e6a83a302f87447f3de1549ca7dbf5f4a32191d72ba0425270bb7bf6f17d282b3a172cb4287b954c625118da112319485a050f5cc97c79871098303bf669d6e8903fd98dc464d6374a24de1f8eb479ffcb2a901882577f95fe9a721cf4b48fce8c3667037dd3c2ed43ba138331e13dc30be40a6dd07ea7dc2b78f527f0e866c442575230a4e3152525cd3225a9280912b287502d9c24d0fecb9f0f8ed52f600a5cdaa157061e270445124d4960c0060e2b1c210c7f1ef6294924342b7c9c033dba5d3fadf6560b87e9b7616c2bfde253b7d2e31860d38bcaccc6699979696c47600bd6c1d8387d25e3b9a9a29d15dcf63d1b9a10717a5aba28948d55d353dc2302e3ee97a9315945d07caf75cf13d30b4c4b7881a0b2ba198336408db7eeff1a72ba35452f2229fd3392d264c1e046109a6a723f283fdd0b295067689d026bd26cc986d97e0da6179199b121565e2455a6fdc4b408e76e13494a23ea8b6ca8c438880a25aaeaa490434f660c58dd74be371b083b4e14cf1a029b8c6d5b7a3f8fb1994df0628a8c0567c43d0739da80aec11785634f9aec6d4bf7f7267ad42b74d0833628cc871718424334368cf24c9c980d22531c71c6329539926d1e3d33df6df9f24c1713a059a704ecf34927c4e4282856a38a0fe2a1685247e6f03de067fa84fafc8ecdf5bf62d68e8c49dafc3c2cc531a75db46bbfac79ff77e32795e2cbb45d2419bc2ea9ee37a2b4ef05da56daac9e55273dde8292e3bfde07d48c6fea5f6b947a8efd0ef5a0e0fe263fa229d1032c8b979f1fa9fd8420eddcdb6566302cd707c662bbc3c3efd024320814b97edd27fe60b29046652381948c605c66d4360dc7f915285d1559d27eb491bf6c58d400c4c2451653e522209f8c7597e5c375f32114510a522ff96350c0dd6e0527004432d4ac2da84a032c86a0e8b75ffe6f1348b4deaa238e09a8ff7a2cf2ce82beba3073d428f6361798ce59cdfbb347c55bc1a17361168841b072cb6c1041e27d0ab3de0f891b8ef913e4c59b23144fd1b84d06887f21a646b2d96bb8894a6759791c1b243812abeefa16a114d1f14ad5a5dd3834e3997cfe62d397371f953f4256def55fb9b88c783641868c5ae4fe4b61fec596ff97ad3662df86cb0b85950bb11929d4e1815247a60c37635afbf45f0ade00407f98f41cec52bb1b73ef2fe81fcb23a6541b8ea233abfea3ebb714439d54ca433ec96d32f40e762541cf9a67c750f7a643101aeb6bee2ce9e69a27f540db51fab67f55c5bc2dac4afd505b6ec7ebad2415cf3c3b311f0e15b4be4a9b1df76d14dc00cc4927ff8ba3d00276d8166dcf9a7c01ee0df2db64e818a821fe0205eeef49f056c3ffff051f94189c6bf6c7669402418417af5447d3b237c1eb9504cfad72fea840798d2077b66fee5e74b040515336957858afb47d595ee1ca3c7bdcf8b4bf477ec1dbd687f99a1209f885cc13c087ea133b42197edf66bfd8339e1f4322cf20b9ef9a5ef8938ff1aa71fdac3ba0698ffdbc3246016712e0e1523cb10bf7f1d0806bf35552b9691ddcd4f0710f6a2ca4a003e6409", + "0x3a65787472696e7369635f696e646578": "0x00000000", + "0x3a63": "0x", + "0x26aa394eea5630e07c48ae0c9558cef7a7fd6c28836b9a28522dc924110cf439": "0x01", + "0x26aa394eea5630e07c48ae0c9558cef74e7b9012096b41c4eb3aaf947f6ea429": "0x0000" + }, + "childrenDefault": {} + } + } +} \ No newline at end of file diff --git a/cumulus/parachains/chain-specs/bridge-hub-kusama.json b/cumulus/parachains/chain-specs/bridge-hub-kusama.json new file mode 100644 index 000000000000..5e45e1528a10 --- /dev/null +++ b/cumulus/parachains/chain-specs/bridge-hub-kusama.json @@ -0,0 +1,94 @@ +{ + "name": "Kusama BridgeHub", + "id": "bridge-hub-kusama", + "chainType": "Live", + "bootNodes": [ + "/dns/kusama-bridge-hub-connect-ew1-0.polkadot.io/tcp/30334/p2p/12D3KooWPQQPivrqQ51kRTDc2R1mtqwKT4GGtk2rapkY4FrwHrEp", + "/dns/kusama-bridge-hub-connect-ew1-1.polkadot.io/tcp/30334/p2p/12D3KooWPcF9Yk4gYrMju9CyWCV69hAFXbYsnxCLogwLGu9QFTRn", + "/dns/kusama-bridge-hub-connect-ue4-0.polkadot.io/tcp/30334/p2p/12D3KooWMf1sVnJDTkKWtaThqvrgcSPLbfGXttSqbwhM2DJp9BUG", + "/dns/kusama-bridge-hub-connect-ue4-1.polkadot.io/tcp/30334/p2p/12D3KooWQaV7wMfNVKy2aMz4Lds3TTxgSDyZAUEnbAZMfD8rW3ow", + "/dns/kusama-bridge-hub-connect-ew1-0.polkadot.io/tcp/443/wss/p2p/12D3KooWPQQPivrqQ51kRTDc2R1mtqwKT4GGtk2rapkY4FrwHrEp", + "/dns/kusama-bridge-hub-connect-ew1-1.polkadot.io/tcp/443/wss/p2p/12D3KooWPcF9Yk4gYrMju9CyWCV69hAFXbYsnxCLogwLGu9QFTRn", + "/dns/kusama-bridge-hub-connect-ue4-0.polkadot.io/tcp/443/wss/p2p/12D3KooWMf1sVnJDTkKWtaThqvrgcSPLbfGXttSqbwhM2DJp9BUG", + "/dns/kusama-bridge-hub-connect-ue4-1.polkadot.io/tcp/443/wss/p2p/12D3KooWQaV7wMfNVKy2aMz4Lds3TTxgSDyZAUEnbAZMfD8rW3ow", + "/dns/boot.stake.plus/tcp/41333/p2p/12D3KooWBzbs2jsXjG5dipktGPKaUm9XWvkmeJFsEAGkVt946Aa7", + "/dns/boot.stake.plus/tcp/41334/wss/p2p/12D3KooWBzbs2jsXjG5dipktGPKaUm9XWvkmeJFsEAGkVt946Aa7", + "/dns/boot.metaspan.io/tcp/26032/p2p/12D3KooWKfuSaZrLNz43PDgM4inMALXRHTSh2WBuqQtZRq8zmT1Z", + "/dns/boot.metaspan.io/tcp/26036/wss/p2p/12D3KooWKfuSaZrLNz43PDgM4inMALXRHTSh2WBuqQtZRq8zmT1Z", + "/dns/boot-cr.gatotech.network/tcp/33230/p2p/12D3KooWFQFmg8UqAYLDNc2onySB6o5LLvpbx3eXZVqz9YFxAmXs", + "/dns/boot-cr.gatotech.network/tcp/35230/wss/p2p/12D3KooWFQFmg8UqAYLDNc2onySB6o5LLvpbx3eXZVqz9YFxAmXs", + "/dns/bridge-hub-kusama-bootnode.turboflakes.io/tcp/30615/p2p/12D3KooWE3dJXbwA5SQqbDNxHfj7BXJRcy2KiXWjJY4VUMKoa7S2", + "/dns/bridge-hub-kusama-bootnode.turboflakes.io/tcp/30715/wss/p2p/12D3KooWE3dJXbwA5SQqbDNxHfj7BXJRcy2KiXWjJY4VUMKoa7S2", + "/dns/boot-node.helikon.io/tcp/10250/p2p/12D3KooWDJLkhqQdXcVKWX7CqJHnpAY6PzrPc4ZG2CUWnARbmguy", + "/dns/boot-node.helikon.io/tcp/10252/wss/p2p/12D3KooWDJLkhqQdXcVKWX7CqJHnpAY6PzrPc4ZG2CUWnARbmguy", + "/dns/bridge-hub-kusama.bootnode.amforc.com/tcp/30337/p2p/12D3KooWGNeQJ5rXnEJkVUuQqwHd8aV5GkTAheaRoCaK8ZwW94id", + "/dns/bridge-hub-kusama.bootnode.amforc.com/tcp/30333/wss/p2p/12D3KooWGNeQJ5rXnEJkVUuQqwHd8aV5GkTAheaRoCaK8ZwW94id", + "/dns/kusama-bridge-hub-boot-ng.dwellir.com/tcp/30337/p2p/12D3KooWBFskNCQDVjuUeBh6vrszWrUvYMBBhtZRLnoTZDdLYbW5", + "/dns/kusama-bridge-hub-boot-ng.dwellir.com/tcp/443/wss/p2p/12D3KooWBFskNCQDVjuUeBh6vrszWrUvYMBBhtZRLnoTZDdLYbW5" + ], + "telemetryEndpoints": null, + "protocolId": null, + "properties": { + "ss58Format": 2, + "tokenDecimals": 12, + "tokenSymbol": "KSM" + }, + "relay_chain": "kusama", + "para_id": 1002, + "codeSubstitutes": {}, + "genesis": { + "raw": { + "top": { + "0x0d715f2646c8f85767b5d2764bb2782604a74d81251e398fd8a0a4d55023bb3f": "0xea030000", + "0x0d715f2646c8f85767b5d2764bb278264e7b9012096b41c4eb3aaf947f6ea429": "0x0000", + "0x15464cac3378d46f113cd5b7a4d71c84476f594316a7dfe49c1f352d95abdaf1": "0x00000000", + "0x15464cac3378d46f113cd5b7a4d71c844e7b9012096b41c4eb3aaf947f6ea429": "0x0000", + "0x15464cac3378d46f113cd5b7a4d71c845579297f4dfb9609e7e4c2ebab9ce40a": "0x1024f063334d367a9a9de80249cc2d39127236124cd65601840387a5048afefa27de0f015d686f4ef823353d5217a87686d3b0fb5e8a46d6652c3f217d85f2ff1afa66e865f8710e3373bd7042e4ee89e363dcea7ca2f46f118d5b5962967f3b0972a5376b58ed027e2aeb7093e96e6a3c67a5562ba8dc883562cb88ceefcc3c16", + "0x15464cac3378d46f113cd5b7a4d71c84579f5a43435b04a98d64da0cefe18505": "0x5005ca1f000000000000000000000000", + "0x26aa394eea5630e07c48ae0c9558cef734abf5cb34d6244378cddbf18e849d96": "0x0000000082395e6a00", + "0x26aa394eea5630e07c48ae0c9558cef74e7b9012096b41c4eb3aaf947f6ea429": "0x0000", + "0x26aa394eea5630e07c48ae0c9558cef75684a022a34dd8bfa2baaf44f172b710": "0x01", + "0x26aa394eea5630e07c48ae0c9558cef78a42f33323cb5ced3b44dd825fda9fcc": "0x4545454545454545454545454545454545454545454545454545454545454545", + "0x26aa394eea5630e07c48ae0c9558cef7a44704b568d21667356a5a050c118746b4def25cfda6ef3a00000000": "0x4545454545454545454545454545454545454545454545454545454545454545", + "0x26aa394eea5630e07c48ae0c9558cef7a7fd6c28836b9a28522dc924110cf439": "0x01", + "0x26aa394eea5630e07c48ae0c9558cef7b99d880ec681799c0cf30e8886371da9170ab9e3067cafb34b160da9119e7aed72a5376b58ed027e2aeb7093e96e6a3c67a5562ba8dc883562cb88ceefcc3c16": "0x0000000000000000010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "0x26aa394eea5630e07c48ae0c9558cef7b99d880ec681799c0cf30e8886371da91a6f5560d454405e76bae8d20f41990624f063334d367a9a9de80249cc2d39127236124cd65601840387a5048afefa27": "0x0000000000000000010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "0x26aa394eea5630e07c48ae0c9558cef7b99d880ec681799c0cf30e8886371da9609afedb001690b07828b8dac6c74ef6de0f015d686f4ef823353d5217a87686d3b0fb5e8a46d6652c3f217d85f2ff1a": "0x0000000000000000010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "0x26aa394eea5630e07c48ae0c9558cef7b99d880ec681799c0cf30e8886371da97896e968dee3411be7bcb6e538298679fa66e865f8710e3373bd7042e4ee89e363dcea7ca2f46f118d5b5962967f3b09": "0x0000000000000000010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "0x26aa394eea5630e07c48ae0c9558cef7f9cce9c888469bb1a0dceaa129672ef8": "0x08446272696467652d6875622d6b7573616d61", + "0x3a63": "0x", + "0x3a636f6465": "0x52bc537646db8e0528b52ffd00587474043ef944860f5520581aa5037f9463647bd51e20bd6080b25e2406f1abe2ec64b0ff439520e6ed1847818671893a082d0b4f42116c01308207e08dc5aec66d31d43ec516ffa92d7662a8fd98ec1f76cab795dff6de9bc82da54c29a5cd10a10efb0e1c4f13c9f633aca37a92de6379982bb2e96028fc7a9299932a1e86bec7249429b798fcab616053eb3b55520f2327063a65719ee43b900a9e543d4966d3c3480f631dd10dc01013bdf629388c9cb39a5ea32616f37d95349b2bc62433a2298b8482459233a3906bd2ddd5c38e79b4ee1899cd455a240e53c4f6cc47e3efcafa3a7bd677e4d752fcf7bc3dd377dc248309df77a74a0a5f7255d23aa9ff2e6ab7ab3314bec5d5195aa78ffec7d58ebed7715a66ae260ae16370abaf4afa1e73dedde7bdd523260a3f3e6661dc99b56170b9fdc9ecf2e8ffe9b755930e4ce1fff4db9a8b9b0e0e218d5c875531f96b073b6ed333ed8a6e008822c32dd8f64c49e3cf64a1deb3bee3bf44b4fd2bd3f7bb3de03fae1ed9b7cd5899cfc7ebceffe5e840625a3da0f12b0df5c7dc35a087add65c6d9285f6bfad5a47f4bdec62befff1de8e5847b49f93ddf9ffb4a490b3c22c0fff9fee214cfe254cab1586faaf06d4cf1f6b0d08c667edc7d2c81db18ee026e96a8fd399a1fffde3905847f475c73f93856e00881e7b9427466394f45749dddffddddd0b757777ffdde121f8218a6f547f7fd7a8fa68f7ef6814d3fe410aedcfbac7534dab0bb469d541fbb77994603bd998bbf2810add956a4c02e8ae7a38a2da4f7ffcfdd728ebe93e666d4be3c614db9ec9d47acf58038a1420b21e630d487c8babf1e363ad019934fe6aafbbf7ab01c1ffe9f8ab39b69ae42a11956f6d555affe3d6561fb57e3520f998b5d50850ebb1d54a5c6d424b6f6d7557d4fab8d5edae89921c86d840adafdb5d0d42adaff187c76d6969d3c1e388238e3134beb55519e87b8c336b7b7f018b5a72d3c1a291ab4c2d4e078e238e38e2a09588c228e4cc5f4d94257b1cd8de3471613b8d3077d5c38a564977d5c316ba9f750fa7f64f8dda956a0c5d5a75d0fdddb13fd8f2e88d296f4c5fa3f877e96b54ff3ec61867fc5867bb343eba48e96ea9fffb7ed7809a5ba6f1d12589ee96f2bf6dbbeb8d696bfcab39f7560392ddf5d2de98ae6681652eb0a5fddbcf5ff7b1eddff77e23ebdc1235d380f1f336c9982b55185a1fed97fc52aef76cefd449f9eba48f1907ef76773f35eabd3fe6f0fd41c8bd8d6973b5df7d2636b33bead3fe6d54a3f8376c7be6feebae9f35a0e5b6bb2a81b6bbfe9f464dfefe53a37c633a1bd56f6ad4f36de96aef7ffaa779d39941527e4999d399c19fdf9f3921a68f7be72a53fe9f7ea601b67477d449fbb16d54e5f77f9fa30389c95f33dadbddfb044cfe0bf01b716ebb7b5c95749fb747b324aa834599d468339cf1d6744599440df36cb7077ff5dfeef665a32a53ff7dcc3718a6fffe6a3eb6bbfae8be73b2bbfd9fc63ce3cda9c624666128934c667b2c6115d5e10194bfbfb50b3c958af2b30664aa287fd6a8a5fdab016115e5ffe9dd76346764d20d009173af816d63bbf3c20126fffe96b0f59e28efa1c00757ca192194e93bfdeff74fde13c57a28d18a5c149982027f68c15ca102942f62c6a80296149493eff43f2eca2905e53de48616cc152a40f922668c2a604945912928d277f88716cc152a40f922668c2a604941c1e2ffb8f51dfefda1c7fd05e3df46d57de6b6bbfd7d22e61b6c57aa2a742d6c1730f9f7b7a4c306c36089242e9d3674a8a0c3860e183a473a5e747c907325470a3938c871424e0f72769013860e941c1ee478c9c9418e303951e43c915345e749ce514e1c3945c8a9414e17393de4c420c728c74a0e14392ec869418e11392fc801470e113943e43cc961410e1039a290430a3a44e498428e0f398890e3448e34727ec821262705394de4202187891c71e41c21278d1c2a3952e4ac20070539aa90a3821c247292c839418e0c72b0e45421070d1d554e149a247214714a3aad7152c2a98d131b27334e4338a171f2e21483d3151c28e010010709470c0e12708e8003049c20e08c81a3064e1370ccc029034708385f70c8c00183b3039c30707880930353114c49386c9896807306ce0f70dac059024ed28d13372bb839e2c6e8460537546eaeb8b1e246cb4d153745dc107123e5c6889b14dca0e046899b19dc507193e5668a1b19dc60b991e226063730b869c14d143750dc3c71c3829b2a3743dc087113e5a6e826881b206ea0dc3cb9f9e1c6879b1e6e54a63126384c5030b9617a82a909262498904c473019c1a404d317261b98ae98a230553159311961926213874d1a3668d8f4c0a68bcd17365c6cb4d80c6123844d149b229c1ed4bc5133851a29d440c1c6079b206c7aa869a3e6083548a861a3068d9a356acea8d15223839a2a6aa8a8d9a2860635596aa6a899414d0b6aaad44451e3848d1a3541d8c04113070d1568d0a80182260d1a22d0c0a0464513041a20d0944133060d189a18d4f850d3038d14345868544093021a24688e9870cc31130af38df984d9c614c2148346ca0433d59868cc3013073440cc20cc22cc1bcc2f66976983e9c5e43257b38bc9c5dc62d2606a31ad5842b05181c98b09889c31333fcc006133c63505cb4806099923648c648cf02b6686f05470312113c522423fd129e82a1619355b2c38fa8a0504cb0839516815d8acac319a05396ef40a72b6c811a29ba841ca01a3460dcb8ca9440e1cdd0216c26242bb20878b1c2af4949c29e478c302c25ac34ac285021313da896622e70639aa86a266ca9584a584b69263044b0d4b4c53b1d0b082c8419248d7132e363022b02230299811d810d80930240c50802b09272c4e3d385d71b5f156d718b08d9926c80461060a1e46526130ae1e5848d6102c30d61939502e1ec8377470a0c34547c1b4e5948413146aa25043058f024d1197159716ab059717971225364a3c28dda00446a907a523947650fa81a94b498c121caf0acb0d6b8cd584a7c5a68a67c555c675c625047fc2a57028a014201cf38709c47cc22eb0a1c2565c8c23c18d201346068d69c435e01b701716141889d760245c5b2e2eae2c3a893e81dc6215711dc1326246357d30bd611df17a20038425859f601121b190475848b081529a82c98c8b0ca9326d81a3841a2badc44c190c25668954c429e20c7a89d20a729e10b5340a4c63949c702b66cc88555862c808c140c02df8498d0bac29d6129612960c2c144c272c24260b6695191fac221f6309e150b0869054c8195854ac342c362219d61b561bd69115c6a4850c115715388839039b13f0103640a0419a656030c05080a5006b027b01e604460596059b028b01860593012605a6028c05d814ac05970f30283025b028b02bd80a30176054ae2f9718d70fae238c09ac0ab604f60466e532e232ba8a885368744093031a1cd078a10183e606345fd074a1b1018d17345c6856345dd0d480860b9a2d686840a3054d16345b68b0a0b982c68a9a2b3455689cb0a260fdc03a820d10d612ac2fd71b384fb84e80f306840202017f803e4028f0098cf26ca033058723871ba52a2515e0ac2153844c514d16d30c8f43aaf19e5850e02481c6888b0a9714bc08384cb0a2c430667a68249921b8c872828c94d6a2b7b40eb024ac27e478824d143021b0281c038601c3c129602acc04af8097e02aec044761ae715a8295f4a8d88ca141c2a98c8e82c3d820c114047f31d1c02a821504d3155619d6096ac298b0e028a62498da2815c19485e5031b241aa31810a0009e9906c40263ba7c2da1d41eb403110f085142242807214230761c9004091172cd40718390241f4002e4c891241010ba21e8c891241030c0cc13bbc3912244848270101214f40102ccb060937c0049112124581224021d841451428590048580044482fc4c950dba0149122442880829a28406dd8024890584908820c90d375016669cc021c90d4138b430b382dd8104414684ecb0030982664092a4c80e3b0465609b51c18ea08812ba24c8c892241bb8c036436585048920480434d4804310084040a40603cca46077307243500e3734b13b0821095a12940392223fc30492221fd09999b23714d901499125424d828490e088122544842c09c2e1481111a48cdc90e4484ac7cc121b0221448488e0404428a80234334a94a0c8112245848a20297233830211dc10d424a86626895d920402d9cc097687a02242459624c9414804446c66905824498a08115922021c84082539b28390224a28912522a0376f0a6be48624473c20244888080e458e106122b31c74c40344849088e00342846e085a52040724458408c9b1029462adc0e8b2852e11b62b958a3291e788700bdcc24ad87a3af01feae8409d6d8680bbf4d71d63d4a2e67e8add1ea3d6b1376a518b317aeca83df7d77df26dad63b7776ccd7737768cdd0ebddddba347df7d2e13bd5fb73f7f5132f3cac4d72edf3247c80c6962f4dedd185f77cb27fdf96e8c71a3f7c218e3babcde945266e635ecb664dc4b3225f93ac6ce715ef76eebb575b9474bb6f7c67d298f71638c3872a663dc8d2ee5faf3f806f0b63b46cf5ef7831d3b4ab9bbddeefdba775b6ec7dd8edbbddbedb4bd3bbeddee175bd88dfb1e7cce31f2f308df8bf141678fdb2de5c6ee95b26facedee09fbf1936f4646be6b4acbb2dc6577f477f9c25de8bb71ddfded7694dbedde2fc69fd849778fccf0010e6840472303948931c218b51d0c7048231dca1867bcdbdd6334c118635bcfdff5fcbd88f9f6fa9a4c1ac7c8bcddc37b017dea75776721f3d63c00b1e345b3bb2f6b7f98c3a679bdd7c2d734976cb81de17a43b8d776efe3c7bcb2574a99374380f7643f87ddd2df6cf85c3ef8dededcdcdccce94feb8dbd592f0b9d65f1d4bced71773bba1563afd5fedc5fc9e7b36b69bc7b7b7070bad7dd3db67b778c0edd4fbb32c66e993500bca300bab97979bd63f77befb949cabe91b1a335e3eebabbcdc66e544ecd5eefcadce63d0574af7bc7eef7ae6b574a29a5cbf76666decccc7b7d5dfe9e3fe9fe64bcaeeb6aec5d524af9dc358f1bd71d67370ec0b3ee8e7105d0dded31ecf0ddde6e21c616ba7b3d6a5a6f7b8c31c6eeeece121063d6bd0f00edbd0d805df7ed861e978bbb71771d86766c773b72f7b6ec868ef364cb766fb9af1b3ed87d79fbdbdd8dd2bdbbbbbbdfbe17fbc11929e525df7ab6ddddbbbbfeb20c013cd90bbe6f17bede9aac1bbee752beb7beeddddecedbeeceeecfdbbbdb6a87d13b6e773fe6d6614327095eb34d8225494210148218038a85264946200400940260f815604000089014c9610722397c028e1431c2730002f0e85ce872b890830001288001786a70385224871b84081d1101910f04e1b063110086007042449604210902c1921d04802d0c413bec10b444490892dc20644910932437042d114264071c6e08128200232805c0a0e486a01d7a4a39dc2044c4034272d8a10892221fe8b60f145912c444c80210a00005c08043909024424a48b0e48600948e0431093a22a4099110b4c00208921c11020224454000822447727c93201c90141182a408911c6ef8c00792701c825d04042df9809025498488dc90e4c811223a0a8043d092201c9624118252000c4260083242e4880784041559225480a0101411422282259c8dcf078444c0824d93a01c84082129b24489901b76281282254484762040cd0e394c0b4392244b728cdc40c403478e245952801d22414b7248106444885093202400d0211404821c2bec20b4439126413aac4500922445846e20b20312224b84840815094108927439168626453e10b4440967b38448d0911b74982009f29a45801024498aecb0248889101c900429514244481008882c4922b48310a126413a982009f202685e3411af6bd810229ef1a12122a2b87008110f0d110d0d0d1111c5a1a1a1a137e43d64888986867c08112f5169c8120d1111bda1378488878686868688de901d1af221433cc443433d648887867ac80e0d0d1111f910221ee2214b44740d191ae2213b34d44388181249226b081113f10e0d1111bd21434b148710f112c121bb43889888e80d592222221fb244443d84888978c812f19008bc14f0ee72087620b201717471c612a020052ac4912a3d14a2548983827dc6edeed4feb894b71a84466e1be2d40f1b47aa2847aaf4bde960a5c44529fd552afdf51e4a89737239c1022b984041173aa892ba1e4ae9a140297127dfe1b7382017fadfbe77a24f06fab0e317d87baccade1e53efbc7fbfe4d13aa7ccf7fdafbb1d8f04d8fa15df32c58de8fe83d1924f4a6f96d192dbcad285652fcbbc397b5bcaf6c2324de6c9c878b3cc6ea66d96edb63249741f939999c976abaedaad7618ba4f53f36a6abcb9060cdddfe2a5af749556b551129217305b380b1b7115568d01e3cf91d60b577745b9dbfd3d185f8cde1cb9dddf83305acfb2bcd97a3046cb92b274bdebf2e6cb92a5d2756158a63d4df366edc2b24cd3646466e69bd39ba796b14cc6333319cf99314d8dcdb3b1f1669b9a6c6db235ed56e7aeb042b638a7773a79f38926e3ad26e3cd06b3319932de6e341f4cb19b8cb715341f4c17e7e1e078338e9491cb637fad782365782801db1d3572111785a129ae3eca9cedd26c775977fcabf57270a5c4ac9c44997298e5d1c4acebe5c71ed12f4bccca61c2f0eef0978c68a6e4a8c2452c858bb8e88a991dbd17ccca616212ddc35f3a16790f7bf11d7f33a8d0a3683485eee12d7ac7cb7bee42fd6b7ce2d9919bc0e808b303c985a418c68401431f57b9e8c50c08aaf8323e1e4c7e6c9bc6d49d4eff7e018716eaafd39c049ac2df2fa210057defd328a7fc32346a57406c41f97368d4527ea1eea151f147a051bb122289fdb202adbbf2547d5a7d9ebc2421b43c8155b0ec2a081ed0ba6d50ee473103da47972c9b0f2eabcd07972e8daaf31bc528ca93f2c7c00cf0df4167a86fdec47c5a7d28dfd0edf20509b4b9ba5e28fb54a0a98f2e3f3d1b35c32a77c29fa7bbd25b8f61966571ee25eee37bac33d6dee73ca3299fe6eb53f9bcb2de9fc3342a7b7f16d33df3fdb98d46697f595f9279b9b15177fe341b17f98ebf9f4aa814a292db5c0372ed7df6ad0159998faada973e7becafc74a1b767155885effd3d85695d0eb57b3c0d212b7dd49ae3aa117c7461a0636c52adff19f58ccca2b5e79cf10dff1c7647845fde7265f93dc772767b61f66de09516ae6df3644cac7b82a2faece13955c0d42eb111e6a8489532b2598f90db3c99fd9a060abd1c0cd3c6f929bd97aab3ca868ff8fcf7012d47f66fb8148b5aa6254f4c4871e54292844292c6e46ac0cf1a4b0b406b9ef37b54ce73849eb1217d8eea8700a59655ed7c6a9cbcbb551e04777fe6379b84c0f544f3a8aa64293c8a4c8edc1cb83df1f6be7c2df172f3ddbeba50bf55d6de1a3a579a4a017980753c04557b8888dbc07fb2cdbf8b16d7d07f2eed38ec7a7c4cdff5dc7c383c56cbd674fefebd38d5c9590abf371fd3f7cc725e5ad4a2a23c5ac3c0546d1a80a8fa02a2b82460ea7505885a7507f78e43dd7fb4330fcfed7065f84619cc8ea1b26ac68d78bbf3e06f85729065d126995c1815fe85f1579a17b03baab2215c55863aebfccca5b683f6f69d4168df2ba6168ff220de9aedfd262ee2a8831d43fcce3551b18cdf6f09e063c595948299edba3e9feae37ef93a944fc562f85b50df6f9d71874f48e3f6fa7eedeb6a9d30ce69bd2a82a1f958cf29ba2d02145efd4a70589f6571eea6fc5ed4260fd1ddd5fdee5e5ddf7de3d7af4e85e4dd49f3fbff77a777a0fab7ca7bf9f0233ebae9fb5eb4987e9af4fbb1f6e5cd41d4ba1fd6e90516ca6fa3e2f03ae34a64597bc4cba2a559f6e4fede84bd513d71df469aa4eba625255d2eda752a95455524fca39fb77b9250c35a0a701bd8cfaf3f6fcf01dffa3d282d99ae34a634abae4e938623ead9d98efb60790dfd99e09f08ebfe7a075bd9c8440fd2b0dad1d75dea92b06f5af25ca1ad08fe5e1ef39984feb2679a1a1cb6508336865158d0f1bb4d1ddd219ba5cd85863ddf9c954220aaf604b74e038e8be90a4d6f363bb959607bfb55dfc4253f8fca1052174f8d6fff44f6fd6eeaedc7ab79ad1dead5fd62eeea0fcd085ca4363a0fcfd949988b9bf5fe5aea4c989b298c11359c818e30427489192a1753ead27f6014bb204127230842e68b044169a163350a1832e9a6085104d202395d1fe29b320a2f2830ec8102345142ca801b66e6411860f5c8081e508405c3478ddf3524a992bbd87552a95aaa8f2d0fd4e4eef19fa8112b88861869820002155a22d7b7770336781ed1cc25c2fdc0883d2d0f5c20944a0278acd30ddffe99e975a2f5b63a0fbfc8e9ca80b74bfb336df4cddf14b6207288c0045163dd0600a95f4e28d1ea8fc94db49f2f5f2ad5fefb9b8e93bfcfc4cab89fa4aa552f990aa3aa8efa0a9da51cf42bd8b942ca84b6e46cbdce93d32c51f37b9bd4d4a99fca64631e59ffc3a1ac5bfdec3e407478c61638a2a82d841cae9ca0a16d4dfd4a8a627fad33fdddbec8ebfb4997a87dff4c43cd15d597182dad05d599142773067e4e110d87acfea8b2954c8e92e0fded4fe64060c80830372751ffefb0a6dc0cc7d78817d23d0dd7d397663d7d7d7d77f9d8899076ca61fa80500b0a0432727c70967851b934d0dcd9c91d132ec2a492bc2e7cdcb637f351d380e6ac5ffa779eba9c7b9dd1dfeed6d290f3151770f81e33357e57bd9efc96ddfb3b85f728f6efff6af77dcaa90f7f63b7cbcdc924785bc9ff0f7efe7f5f5fd7adaf7a7abf9d39f266266f2f6d1f8f0428b7fbf8415fe76f71efc0739d9ddfbd7dd7befdfbff73ef263a435d678bf8bb22cf956fc2aa5251bca33de2f57275d7eeba1fc6a3dbff57d3531fb6b46fdb34631e72f3794c5ccffd3567d52e8f11a98ff72d544f7678698fdfbdbc3c7521d380e2abff22fb30d987e6b97479d747f1715bfcadfeeb8faa87c6bb301331f954f8d3ce7df9f268acc6030e7f7ef0bf4c6dcebceb99fce020c25bc082174088f9c5646aeabd2b912228c0e21640821840c397ed25d0da0185522841046871042c83d77034ea14547ac8217336ac0252929498b8e38855724c384089f11d314ff6df13d86cc3ce104b24a25f9117e7c4b72db5d7ceb31eb02efe166fdd380ac1fcb11721b9f3c0da81f4ed3890a2e9820554e8a7c8c163ec60d1f430377e315c924bda25724b3e9637c8c5479a1011524a4305768aad24aa5828f9f7cfec71a507cb72ecb7adcc64dc6885d253884c687ffe318ccb8d680a4f5e2931c43c82dd312fb1a60c82bb10957ae5ce1455252d24a87f543141aa40009294cc71863fc7e0861e408e38c042085d80c3a26241925d5206909495796a0d1c83d55a98ba77aaaa4a4248c46cec72c0fffd9c476346534724dbaf32f0d0132182ce7693b1e0aa150e4c2e6bb8e87c787d63df2999f7155d23c569a365ccde944c3cda3c949297fb7f4f544e58ac2dd29bdfc1227b7fa429199c4a147a435fcf22e278d2b04297c2b8b18638c985b177848a315217ddce379c2e14fbf1a3ca4958ef8049fc949d6bf8fdb9391bb9bfb79b1ddaaa4bc5b7d94f9997bddc5879b0e7e6493649214d6d713abba737ed205ab2c56c96c7227bda4a428258b65cdaf3d66bec220f3b5001a9c14c6af4ee173bb6d8f0c557af8bb3dae87cfcb000af00bbe5db204e1f11e25146006b0147ec17fce9929c39d34ae9e78a8e422579bd60d83c6bf36a6a5ed6d075f89f74896c20cd87d41fe53989494d46397476d2abf36ad2c85fa07f11e36f21d7f29f7a89e68dd23ea8f651b5336c2fe745a8c8db0af92ae174435f88cdb30ae721d008a1b8542a006e4697c8cb38bb783500362f1b68ce42a5318b7cbdb2e2cc3f28b2ec8d8519fb9eb6c6eeecb9e06b9d3054ea7d28b5540f81246f832c25f1a238cac01815cf62084ab0179f4c5d7428fc6f89163f228e45e6c48a567b6510ff63b7cfd4bdfeb7ead01e92772e629f3951ebedc1ef1e197b687b4b094b62740f0a4e42600fe93d203f1a9ebafa16b8b9b0028875a72306231c2d2b6ab80e7e4652f9bb19d0ad872b6d866ae01595f25157a55cc0d5bccca56f3c1df0fb7369d7aab5f855ed4801edceaa4dccceda6c3c6c799b808d36156817df2bd476780ed8eca46d41f0392724eedab4ff615018b7dddd9e87bf9d5d4590eebeb89bef823430c7ebcc706dff16f81c2d7b8da02ad279a9db013bd4eb4b4aba749a0a9c51d591efe4c0430d45f75b24900f22294410623ba0120c2f8bd816da3604fff468fefe1f628c6d9d32ef0de3f6ede423d8373424dfb9be831ebe01931578754945fa260569e525b4521f4d1749707fcd568e8d4fa4e5d240ab9e64d4852f8bdc9ee7cca7a4aa2f073f01eeb21c757a87f159a3590d96423fa7e91686d23bee2298beb31bee3ffb898fcb58da8ff26d1da46329b4f484a499fd163c17ae908bfd24840d2d865c0f5e2fd3c9de4bff7b3bbd37b721b9a2a95aa871496f7ef2d23efe3f3c34d0712f3bd051fcbd121c47cbf147e7c0fb51f4bdf632f7bf0f9dfc67c24a3fcb69a3dee0c6e4c597b5c364da7ceb27f42881bb99ac3297b1eb723a78d9c5c5367f4fdfbd7a717c4ef6841aeebce5fb2a0db274feff4aec07fdb43c8b778da0c4d23f79647fc48646dbb5dfca7013d274fc899781b019b26f8bcc113e55f0d4807dc6a47d97af8ba830c7983dc6cebcdb9d8cb56bbc0a38fd380ac13aa6614fedc1eefe1c37fddf3dc3cc1af939ab8d37b0fcf5b5c95148399b59dbae3e9ceffc7ccbaf3e75f4d76e71794c9148bcb2df3b8b73c6085143e9b206ebb1dfca701c51797ba06e4d1f7d374323d13641803b97a53ac784b9800e94de1e24d795762d2bbf2aebc296f8a5cedc020e41a15330ae126b14c08ffa7e326b78b198d4ee4b6bb139fa4b189b422b420e48e6434d2d5623661b7182b0c121c09068e847e2b1c09a390f33193091fe3631cc991ac30b20af5c7b2fa8a68fcb7552091eef2a84d82acef540743e3ff747542853e28b33aa942dfafb6dd45ae3a9942dfbfad3a128ddf5be41ec799679588c6e7b8c1af4f45dfaff5d5c7d0e749f439d2c977fc1d8cf75cffb87ae41571c9e629bea4f14b5c9593c6975c9d277aaa4fe343ae3ead275a7745fd5da3a153176725f98ebf37e14d89f54da133c8f81af55ed12ba2afbb9555ac8648d8eea83cd41f035a69bd5f5fbbd2d7a7f0d7a7c35fefc91ebef41eec21578ff050ebe363d62657cbb4acffe96cfbdd818f6dbb3bb5a3f04f14fec5d513ad934e0abfc4d549eba43c142a99f4fd428eb93a84bee77f1a90a7ef7f3c426b5b1a2d8b3bc2436184f021878487be4ce41a10cc42aba82084d17a55544a907240cae043cd47d34b967c8f164cc72065e86280f9d5a25b79a8ecd0ad9d6a8a0d7b6425488416952a54683f5f254ec555ee32257295bf4cc8a9a658960664e5b3edc7c78a8f4f1799490de8bdd47c34f52f65174a3e9edd08bf5a5c65328055fc42b6619b952bcae4971b6f21b98a6f61153380b3d817fabf4c0e8306cba31fb24a02903ac75b96477f89055be2e3c294da84c664238acdf4f0a854aa1f52cb2f1b7543f967146a74f0efe8787c7eb25049f97f50a08646c1e7b761087f0e8d2a517e2552406194ade7e7a2264e58b0855a36a0d6470dc892b10114be8483c2cf1ad543e116142e0a86a700ea5582a0fead01f96e4ff76a406c442d7e557835a711120d2788b043df470de89dc1bf0224d07700fa9c40017d38886d3c57a954aa294cc080be7f2fb3693ae9f81d9d0b3c53d0f731348a81a0ef7d64f889c00f0a04d982beafa151fb057d6f030786b441dfe3d0a88bbecf6177c5c41bf4bd50a334fabe49a376d5c40ff4bd9346b9a0a2d2c39346b15064057dcf521ae5f43d1ba5600b7dcf4934ead1f7fc9ea9346aabac80bee7281ab55fe87bbed2a85d5169027dcf52346acba0ef394ba376a5821dd0f7aca5519b03fa76b58225e83ba26f3583908223d1fe961770c30a1ff4c046117078f16ede53a9542aa3549581bedfe569d47b9ff7de7b4f6ecfa6fc356a0053bca05dca81154bac5ab0440fa02c21842d9660821666d6d05d2d1185254c91e265ded05d4d7102698a9627c63ccfcbc293c69ca1bb0202a90d20a08081316d7ec8c64c19baab2094a0f5ab4c8cee2a8828689d1a108298a279be7b0208eaef024f1058f0bc226cbb074e6a6ab83e9fd6b9710afe4fd3b03fdc170dea4b86bbc3cc8a0efd9262d6f56243a3fc7f644b4468f29eebf4d867efbdf7decb1ef6b4f7de7b6f4a5725fe4ff3a6bdc7ae92b466dcded582f9fc4b44dc8f4abfc743fff5bef180a586fe8be3c11fb64708218c97f53f0d2184d08a57fb15c5ac3a68d8d49327f2e33f29fdf53bba7b39f8cefbd2a6c477decbedbde55566c7fdf41eef864630a2efb197313951fe57f41e6b3e34e63ceb22db23fd374cd468d894f5446c5826a801a6c888fb82c1ac0bc6060e34aabe21cf881b2611a3b44a7fc518638cf18aa588c518638c31c6181f8b7fc52fc597568cf1b212e39146551da146d59c264a628cf17572b6c7d301b63b6a4945e3638f661ce82e3261b9a3740f703073f7141aab60fcc4bc1efb93efc4182363b5554fccecdf93b13d3ebe13fde1cbb8158d5f7d78cb14303e554ef1b3d0c85768fcea432357a59c5e5c4af6627141b215b00ffaa4c6448346268346f642e36f6d158daf86eee267988ac6bfb8c886eee2bff8bec5bf5c302b7ba1f1e373188d3a6a54c5f9d2a8ba5f68fcf8eca551fcf16b68547ffcf7d27bdec78f8fb33d7644ce4849f55a7ab114abd3fbebdcd1dd8bf38969bd9456e97fbabd24ad08df5f2f8044dcef05d663d795d9dc43d3a1217ebf06e0fb63de8fbd06fcb3efc7b0f72d7b97d19100bfd761da74e9a63adb7418db7452d2fa9fbe4ad6bbf5bc0591be637d5bd64bcbb22ccec82635159876bdcc6b40be7c198e072c35689c0ebff69b92cf830e733a41641e039b9279ed65381e9c60d1c04c135663a4348e07f932cf03961ae4cb703afcd613a578b85ee6b5af41e6b5e7d738275898ab417b8b7382bdf64eb29779a2d4a63675fda630d6807a890e33307d8f814d59bf04287e101dbe361d7ef99bc241fabf4d87069997af0199971c0f586ab05e7b1e74f8af972ff31ad0bec4f160713acce9d070bd7c0d94defad25baf3dc4a13b6d93296deb3bd7e62eb36d4adb36756d9b2a6d9b925e65e630a43bff2a37cc4aa2d7ef0b66d90f6651097e43967a68d5ac268e63d64c5a312bbdc75598991233464b124d912898fd3feedb9145e22a4c7e61fbdfd6ef757777774368c9a78367f5c826bdee608c566f9267ae2c95aedeeaf4d1195d6859327b4ccc2a6953d9a86e8a716606dda559a3fc5907e5fafb85ee623fba0ba35b0abd27e71e3d3266954166a55276bde5814959da2f7977377cdd1b345d9774633657330ccb324d939199113eef19b6642a112d95ae1d58a665ee892e96652e00adcb54222ae1152f4b3ebf9a3119b631c2117d3f85331f6279bcafee51f685a765c29aae62fa03537ac2845cdd304647f47d7d1fbdd0f7ba98fd6174f72ccb8a96b4a4252dcb8216f7bc74f73ebea30bcbf4f7cf8bf7bcd4fb77d4a8a54f876965fade0343df7bf8f579a14fc6a328bc5edf5ddff5ef860d1b767773fb62f09d3c3e62cc7dc8c5dcaf5326cd27036c9fa7983a4b1f11f369a4cbe509165a3f9b22af983c4559d80b23caff4c336ce93094ff1233f7314884597b75f21effe7efd52bc2d4d180f3f0743450e2017e49fee3746a786fbdc53989ff9cb3015aef9c4e0dee04be3f518a2855e23adf1133ebe9599be44d59dba6e2b629b86dea6d9b72a02027e7623eadbdc29ee895a9f66ad6d91651b75bc17647b5b2d09e2adafc7b82e5d15f9deef3e647ec0bef0c13dda7d177e43bfd15f6b08cac2376a7bfad2a67d0b6980043639246357a5531eb3b3af29e78148fde513c7aae49a06398e5d1bf5a9088e43bfd3f1d91bc47b64fe5e94a5fbfba518d48ee4611c9dd2822953a1e237938372aea89dc11ed7e6e2aa67f8d47f5444b4f98351ed17efee2643e30dd1d75d7f168ea1031275d2e504882be2d47071293b7d0ea53c0b8d1f2682eb35a57687f7d4746b45547b4fb5f1793dfcaf2da62a2f4484878a130d0e52285228acdf8742783bbbbbb7b8ca5eb7aec8a57bce215a347df22e7f303051721dca06ff9bd081261fec83ecb1e7b8c73a27df644a99920de83713a35602ff3329c1399c79e28359f28c5ef45dba329ffdc82f80effccf6c377f84b62a6cc36b54d1a615e5866f5792cdbb0ed8798f5443989ee585a71a15bc2ac9df72c0e8c52d58d287b12d9b6296cdbd46a5deacdc7521d474c1a5afae5a2461874351f3454c73fbeab802c0e8c682775c73d66633a05093475aedde8cecb984f6b27d5d0e55234055a170ce5189ea7b4847951318fd07ec77e98788f6500fcf8af51d7c78f9ffd6c54e923e783f3c58c5f7da80cdccfb52d91afc3908a5ea57f1f1f6e4b84e6d38062a9f48ffa0b9529854e8f98a8cf4f24bafaf22a94dfd49d494777fc5cd45cc3ee86dd0e9fc4a494d27b738e9fb01429a24001120ac25456c16fd8c5066174b75486ee0d806006855ce5e19946682309313e45e660ee2a092968f5a22794bf3af5a21374a1fc2ea5fa14a7c259666595f748793497084dea4344d917f8abfc1286124ab0d1c6acb76aa2fd588cf159960f969a9c52f3d155f6d1f43d56ca5cfbd2f3e1f43df61ed47cecf2f07f1c8e1bd3b9da6f3de49a9f7427df351ffdf2fd49a3daa46a94e42e2c66655589c6871761f014d3faeb8af966d00fbbbb39b80949ca441a812f1f5bcddd8b96073fcb606e1223794fe97969f054895bdfe9ed3d84db7b6babce092535e96eff6d4a3637e8fe5a343ebc58a20aadacaa5ec4468d6255a376b5c414cacf4fba8753cc49507e2f6a547c7e4c7edc2ab7aa0ea968bf5b2f97c77bb831951b53ac795ba61231c5d8995a1bfc1fffe9b811512824c754a6429d53d2ddfeba94eea6f7700fbbc31f85f2333341f9a7f76c8a59e5465ed41d7fb4c1ac5e4419cb5caf22dbc60a1f4bf9dd995be7770d889d88ee79d9ebf1585584ed63d66f4c31cbb2fce373e4b8b72dce8a568cd647aec69fa1056a24fe72e4aaacf1b76634fa889cb71bc9eef1e4d246174af72587b901752fa83fa6017914338f708200d4ffd280fc48a55241e9ee96e105455054610611b46cd1a6aee9b6827677779734a036c2cb3f1143fdb3690412f5379d8cb0a0fe3afcbf51bb3a0208eabfa35139a8bfd480bcdb80148608e30c22bafcc0031b294856115c687f0f8c30f2a1fd9188091744a10a4a24a18b1a7051a3d11a039502440fc8f4356a7950c414d44e0e68ff9b5bca688de149aaca40858042fd7d50af5100a0fd52d0fe961108b23d98fafb300984b0461457242db1f241aa4a9a8bd618a8fff2346ab944e1b260a898feccaca3e7a59c6ea376450411b4850ce9e7349d746063cc120fb22b330601eb626a74575286a06d9938745752d6c8ac9819dd15113dd0d3098a9e4fd349c734c130b4cedf81e49fed42f73d6c4b73625e74574faad03ab3a329e9ae9ec0807acf4bf1778d5afa830418df81dbc9347f47e7c2222185dfda76ac4077058418f4d15d215144ebf37815ae423b8e319902417ee8603a69547f93eeb6c7fbfe9dedf9d15f11501740fb0cdafde891ee48b03cfa7f784f0978a7bff988338400c33ed07eacc9f2e8c729e9aedfb91cbaebfeb883eeeeaee2bdd2e8e26042badf59e432f9777be4efef16607b24c766706d50ffda835adcf64e6531d4bfc240fd2f1c4ca74b1ed58072581e63d460d584df5b7a4a77b0fbe34329e5a42d7dc7e1c65b78d59d116f4982b7a0f1c1a58d156fe9cec88893e0298d7aeacf3960acf116dec22de193d1f2f06f2dbda5b3741775306b67a1ee71081cac8106f52dd4bf3d071d77307f78bf97252f0827d19d339828aa4c9e52190cf58f5ecc2ded56b952d25ebd9649c0fc37f5de391efc9fffe374f62d33bf12efd159fe26dea3b3bf29dfd6991fc7f1f80eff0fe6a636f5b3cfcdd5793ad5a77557b5a37557dd0f0c6c7760294e8706f8f135c0bf1c0ffbfc91e3014b0dfb1c9f077ec8c1dfd4a9bbfeb8bdeff4c36d7da79ee8ecff20fcfd36788fcefb4d2d6fd277fa77732ef335ba5c8a86a0ced529e97269c3085a7968ff13fedd30dece05e6fda9de368571c64f4cf8f1b9f214f895ab04b11ebb56a0c3367d1c853eee81be5f38e87b24f9de7bb9618053eb3b3aa217fa1ebeefedbd6f61bebbf7570c665da41c1a55a59246551d4774344a0bf2c4fddf4befe97f2fab70fb975d0d2186eeaf0de663e9fbdd517f29c6192f796fbddb87f2de8fbf5f24fadefbf81ebee70deb8ebf1d1fdbad2aa1f05bb30053c8010579efc5079f8e23267c9eeef6f7e126793b11deb30ae67bffe7db7bacda9c6734f9ad1fe23d9c32f58ebf9245a21ee17b6b935e9d50c762d65d86cbfc49ddc411858f75916150de2f32eccab55805f37dfd1f393f1168d47bf818d480e27b4f89ab52724f21171f48c711f33d8f0fb5361d48448e9033b247bec276073731bfffed802976f6eeefaeb91a8476a33ae7addfe71b8f3681e6aa8e23e643ce880e4c9c5ab97e4bdb0fa57742942afdb595a0f45867bde9607d954180e054f6d9974adb0f3f38190a2fb3dd3cce568f509cc75c03bac991dda3c477e05f7ffd6b54f6d7e778ecaf4dfbebfa2ae9f56cc5f721f3913351ebb513bd9e88fef8b5e1bcdc98aef04abc8785d7e4b3b0e5d0b83a698ecfe1aaa4395e7b1d20322fdf870cb7dde5784944354e0748f6dafbc871f3337f71442b70466e5a0372c35522ea385b3d62c2b6fde90a94e80a379bccaf264313c4fcd2634b533477e585185a7a99c716f3ac1ea1d7675b35d12c7bec31ae4e7a5dd767d96ff7b0f0f27aec59d8b677b2fff16baba7af796d63c214e75b03d27405ce88cc979eb519e6977e3520325f7a09acf0396e3e27e2bc95739363850d0826f33340329cfc6cb31e678bffe3d6564f9ccd639dadb0951eeb4c66aba5df8188cafc0ad86a3e88a80ef63af2ad27a218a7137f8527a2da86c96c95a9cc675b3d42b35f61f3a1fdf57103a2657fbdb5f9c05e7bb901c95e7bd62420f33832db66a5373dce568724404475b2d701a23df63e346ebb93798cdbeeb427a219a703e4faec7d5c3292ab43b4f4339f71daf5334f442fae12d1d2fff40a1bd39b9bfff19b6dbe69ab11a0336fb3551be8ccd76cf5089df920def352f06d781a10cd725658f8d5ac147d8a056ec894c2c284e9bca193ebba83a52666dd24258d724e820a31e5d285ee17baab5512c5b0ebb54b53d21dfca80179f6327f6d5af6329af67c6dfddad6d976f9755dd7bbbb5077b04977f0317ebc2e73fd4fef143377050531d40074576fe480629d3d0d687607df0263625f27a7e03769943f7c278d5a0a2fae36a1d7fb66d14ce32a11d5de37deb255227a699c0e16b5acf74d7eb6c95fcd6223a801f9b6e451df74a492465d0f2f4e88698903920f5fa851d6437e42e1c7d5a90d30036ca50ee6ae5661984ebf4abf8fbd17278dfb907fb86334acd498f179984f2de93b55a60efcd2ef914a95d2815c10ecaf771f7c11a38b2ad55120c85becda4ebe03c67c6afd885c7fc13aef01b23bfe3e90feabcee1ea874c125e6c990566d12b8d29697ddd76bed3ed2c0f2f4077ea411d86ce73707464036c7758ffa8f53ad66f2ad389ff68d489bf29ecb5dfd1289dd22f95bfdf354a07ae0bddf3bef3de337d9853bb7c50dae4f688c8ac1e609ba977fae3367f309fd687dcaf4afdceb0d6e9a63121dd3426d3ed2b8df93a4adbc97bdab087f990ab3eb49f36830bb2ebae5f7675b218f39dab3e1d44626be8ae99b9025d863373eecfdd2f22782e2260e7d01dbef6e7eecf1d3a84eefddcdd9d6377f87cdd17ca2feff204219722e7afdf7b90217c9e82c95f82ab09c8f583527d388dc9ef8f5f1c83c9136666e67766f2e4078f0aac1fe397f5f2ee26e46f76a77f4fdbc35ed60b0df36565d07ac35efacbecc7fc6d7c2c88b2e2c2c6ea055f5653b8983a74575d5041f361e6a0bbea420c135d8491749a3ca73c9d4ecfc33ecce3737a9487b2b1066aa64772f7a9bba3e8807677779fc2a8c11639e80208ea37a0fe7fc2a1d921cce81d6c8f1a1441fd5f0b3287106300000807e0620bf5674103f249b3860f5b8cd1850d88e0c3e70c7182eda18383c0851007a0be4515d45f4703f2b949c9218306509081062ba0fe3966777777b7109e1662500f83fa9f648381c6941f5041258a1294e8165aa67d2085a085156a001c98842caa40bbbbbb7f050da8b5226e70d3650104ea6fd280fc14441a3630649102066c5183fad768407e1a81105a20593952255101c01c228cb7c4cbc19625c4a079c2acf20a351a80850bc8c0228e37c0152a9a00e5888b24b46081460a1833fd329ba6938edfd1b9708513b45f8687c9114cc8c284288ab27843c70a4184b11a19571041fbb3693ae9f81d9d0b3c3158a185f6673e2f508218585a3046063fe0a23313e58dc5105045196568b9e207564431401530a0fdd79c3078230a313f7882c4e58c9c53924aa50a428a0ab2591a02ed2c48b4c150b1d2a1a20c3366804519ab2a90a0fd3134ea946508da3edd39ba082c9606f4168c2ed43fd698885031fb4c2105c865d2106e8cc14451156aa0ca212303eddf7e9f0804e9ce9a9b1e03751968a1ae0319c4a1c94075a2d9217cd0d11d77185258098214550000162a64607902463b8c4aa502221503fdf11dfe2224c8c9dc24639ee80ba4a07d06ed6e180c413b89360ca4409b0ddaff4b3b0647a0cb8576cfd4110f344e539c0063d2c4a08a996d1184c9821722660eddd515236052b8128796659ae8ae5e00c5ca0b989872ca78500466884943775594e484283d685f44616247e70201e8ae84d0c2e3055b66c0eba1bee7ef3d43360c8f0f2e62c898758fb80c8105adc186466933f8268df1deb3ccc862658c27d54dbaa26a610a0b868aa1fdcf5aad02bcdd59d6d38515786c716ffdb3fcbd8f3f6d6def8161a34704acb3f8be317d5b3d2243671e67f07f0f3723feef6df09f26017e298fc8402157fd9930856f410d0846d85207f37bb5b4bbc05fc87dff3f71fe6237eed3f15ca0fb16677af163b5acf8d6b3112b72496e95b65b1774d0edd666701ab9af960d5b3eece253191f72a6ee2693793de18287e77f47e7c2efc87e68c28ba328befb1d9fa3071c2d7eb0363d945cf0248bef7ec7cfc78a8e40418b1140a0421c47f0727af2e5c919ff113ea22b5c9004106e5085082b53a41cc78a10a79295215ce0048a4377e50233687d1e8902cc5593bf9ae87cbc9065770fc287ea7ff0193eefc7ee03c6eda6edd1f2f7b3463537b35c1edd5298dbc1df7a84666fbadc0ebe6b40a010f5b7409e0379d49fdfb9b6d8a7c0765fc7c9343309bfba94dd399c52638479aacfef026d37989bfe75fafb1b61eedf9cf1e163719d50770d08b6f41e4ef5cfc7d3438cf19b337e817f888cdeb25f775713b3e30af47142903ad72ea0d8ccfba6f2ab6f537fa646fce1ff346f3bf805e7749c4c2f7292db37e9a4dca26a68d3d602db1d4e8618b08319ac5258fcdf3f0f4f141d10e183226e90832e9720d2d81e1b4c10822ae5037521bc2d9a98a24aed5137e4f24c30dfa3fc2d704118b46e920bba70ea8918d30c7f04ba93c17adfdb7bee0f1f8490c14c268f3ece08fcf7b0680554ae0e4aa87cff758f5c5542a511ffb8d5195f897cffb749ef4de8d186ef42cd35e1945461eaccd0fd1b5d2e4548a1fe4198759396bc46d5ac9a583a57e73c9dfebb8e87a7fa34d1c1fc15e87209220c9a45a8779264dd2496c252497764cc9702068d343ebc7822d384135d2e5254409b2e172254f408c3018cefdfcb759267e15308218c727b92ab1b5f843052fee75c44ff1e42e1ef569feee914377295fff1bfee36c9ffd396b54bde6b2eb0fdddb13309739f553dd38d69c4554df70b28baa07c01ee812e57796332c30c517daf03e4a28fd36186ee6f10280fad1b07fd711a22263fd36d05ecb3a6c3eb30a90a8c1ad3dbfc3e66da6cf09d7e9beeebe67f1afb69995f0d68e67fba04c49c2ff3d65f5ffa6b05337bde1edad3fc6a40f37f9a8130e7d37018578928f6bcd55df9ac97cee6ebc9f475aef034bfc266da7c4e3cb4fbaff91fe74de6b16dbead3e4d4d0d2714e9fcd67cccd7a18538e288834e9ac9fd74d72fb3f974d7af6d04581efdb20893a78646552148ad147dca8602ed009befff11a451fcfd3c8daa0488a16bd4f5fd2e340a7e3f017cb3d97c07fe369b8edee993a7316b53f66954c66d2696a1bbfe67cee706aff43cc6fc8f8fab0b8676658ab58a5560c61c2579415a8551ad8abcf01430abe7e5f5718aad9e32f3f5bc451d9c5abfe9d00257e55f7f713afcec4c05ea9163c2547242915a379c0e733e29197aa7993a0f7c2e2417c27c863a10d27e0a64a1fd4df849afa45ca1ed23a67218292bec48a552a95258760a9453a86a92a1512bd07ea646e9489a516e8bd6f5a244a688f29bb64dd96c9b922a9aa629c276c7536666e69771ebdf5fe7e9fd34bde7793baa0f7dbbea2230feddb1cbd5209587f632f35bdfed080fe5ef9f861a1001502eeace9d74c7d520f4fd2e91cc5683feb6233c4ec63487ed4f13a174807465da1c112d3d76fa425a27305e3e27350a0942281b03e22fdd1d61a72e10935203b292fddb7420f11e839696814d65271bcc7e3e821cc69a04d64ad1a7328eb57edeb88bff7473bcd262ae4e9bdcd649f7f8f88e7f652dd42b4be1c20e9642fde22a3fa1fe4d7ce43c7dc7537da8579f2dd487569f26ddb9132c334a31fb595b7ed3ec4cb4caa72a7566046c772c6b40bbbb8fb10fe6ae5a905443a3f683f08e46596fbd8ff596f53c8d7a6fc5772b066a3db6fbd6ee6ebb63fd8eb47eddfafee5613d7b99fc5618f7c1931faa50f8bf3d80f8c1f80e942739c677e03737068c747777778eb57437e6741a33c67b988add819f858a0b851007147e6d23ceb23c201050e018305728fcf8f0798c94733e83f11e2e02d3b5e32b5cb48bf1185e7619e95407a716c76396077cf8369841e1d4326b47618c5810b3abc838e0632e20402e80422e142e0e28dcd91dd82d8f2bf3bd0f69143c8203abdca0107e901a8ea4f7744e59b3bef31e226a744ce8283cd11dd2348c5195231a1f8b4a4cfe187bb2874640f0b1ce208410426f8e8bb42872ace42e773c86f0c9ecd3809c8b3298fe3f3e48a3e2ff8feee28c16d3df0705ba8b411ae55c85ef1ffdfb31df827417bfb71fddc59fb9c124a2cba948e30f0a344a036aedc752875506ca31b84079870eaed90fdf898f3dffae286bbc2b8a6d2ca5bbf83f3cae68e5221f1f1e9eda75ff27e7b8a8bbf83346cc1d7dd2d128fff8ef135da0b1c3cca0ab1624d1ac51fb721b15f9e852c1efeeeeeee67674c7562ea07ea8656053d7c5456e477710be0769147c1b1a051f3e07ba8630287c25500c85f0a7511cdf77a063efd1b03bf0c9a0100d0ad5a03072419607f4c22a27bc97724ece72a4bbf759d84b16ef29b23bef99b0e5f5e02587e5f1be07cc87f99e56ce22e59ca7d37fed68e52cf40dd91d7e24ca6f64c48e43a378762525093ab54cf8d31cc63a0186cd00317377b33b773b63c19626cadc550bc2a0ef9f6233389875c7e6a0bbcfdb3bbce707c88af53fede3e9e3ac147dcae29cdf7b3174175ff0a351fe3f14e89e4db91756b650ff21deb3294fd5fdf2a72fb3bf3e979d498411c6945d3031d3e2a28a59138326b0400d26849817dd5514465089228829a0884363c1b4e8aea018034512142a3018b6d87bfd4acdb2bbadedb15fdfdbe8f298efc50761f78bddd0c777b6fbcd19ee3d7fdba4effd78f0d51385ef21d710c6ba75c36e289999abdddd4f77d2e5dd79efbd7eef3dac24ad082f991c6860727bac5faeee4eba33d448e73bfb16e4ddfdc8cb632b746fefbcf7e8bdc8aff3b98e284131f91ffc85106e7db56bd8510dcbb2a2f55684ef09cbe2673d6159113e21ac08df13f059f009015f84ef092bc2f784258410d6139615e113c28af03de1cead3f8bc18dc9685f77b5ab5a99adf39d7eadbbfdc5c5b62d29a1a5a7a5f71e843df8793e9f3873ee96616e9747a403a824cb566b4341eb1c433432320084a00113150030381c120b86e30145d3761f14800e89a24e604e9788d328c761145308216300210400000000446a261503e6149e8dbbfc970f5424549f34d9cb91c88ebe71d40831991669cb2ed2f877c43d5b3f8d6e0997f7a3d8e874da3367d5749751d0777b90a571c0853ca7fdc9c1ff802e558ed8df6e906faf6a2d3eb1d8f8bd05ddacc328e8f2c47279be8658f3eded26cf18e971f36c003d6e1f0ffa27a082166e08b466406252377e8cdb1f5b1a8168d444a0af9025ef00fb77fae6b86e5c370155d80214fd72d0ced47b2f78fc2583c5bbda9965acdab7fd938dfd5907ff2c00d22be0570c689f6bec37d420d55ee7da69ab145b79b1807854355784b77f5c86e91e0ec1484beb5c106afa05248fe1f713eb5933a7290d0097a8004892ae2e0e683d9340552d704140608853533e576fcd33529468d6dd64a02057fd1c049adb3bababc4ac08af603504df344973f4fccc59b172ded80b4a4d68f4143bf6773c0ca920ba51a0f6dfc30852da848aac8615a6c42f3f4d409b2244efa7eb6de653eeed04c9ffbc658520be78cc77be5ed7a30222b762d7e7390d8aae00232e58c55aabd32322b3f8ee4af91afbfdaa54a3b2cb9e75a0caa99692b1e93ef0bf0bfbba28ca8bc345d7e8c50e36161ceab29f3c8c48b609960e410bc58478579c5fee76fbdd8c8a9f96388e26e1abb76dfa05be74711f1c08f79ae61a0066f173b344f5eb77d418f34332707375a9226feb6ec7e9deef6d5d301a6eb6a9dba687f9d3881b0db7363baca1e481342a3ee1d65676ab42baf7f264f5049350f772fde1da4f0d4075296edec24e78c6f60c3c8072ef768bdc751f3ba6f0fb8609763104f3157036e9f437fce8dc4ea6dd6d3ed026b391b56ecf955d5ba4f132b6955298a51c8cd97c77bc969db6a991c0e9591896b21f6727f264bb861ca63f88e3a4bcdec921f8e5b693af4501e2b35876da342fe01397e68ae31c2cb5368766479354f2acf627720dad3a3a93a6f8888ee7b916088d70378f1e94489f5e8ee5f3f94993ca0a833bb92995d974a51aaab9efb9ccf20429230a5ba6c4a5f578ef6c4f0d97a466b4f2f3d413dc83948ae352823afccf565dd51e05470bf30e71447f4b5e7e153f04477600735b9f438200fd8c2429ec6bb1f8cf0f3f116817d24a4df5355727fa757b5dd901f5a39acd1337a27ca657f889baa2c5b40fb20c6e13ae6c95f7b3a54209c37220f488b47cda925cb60d27545adb1be2aab6d538c9a4ef427685c82ffd744d00d3ee68e93827ba3b64139a2d1403f484607a6893c0bcdc8852933cdc363b71990cadb020cfc5381bd171513d51e07645032def933e4d684cf31eae60745347776fda3d2ecdc408b61ac7684f22fbcd34fc1bb6e33387f0e72ab33240bd7eabdccec6174401440fa3ec105cef98352432f27fd0bbc93e31c897306911e3ef8d014d54e220b892894a0fc83a342e605e338af43088eec70481f8d67c76f38a2ce6fd9adcd79b644184db4ea226a88b96edaba35a91021c8052ddf591eca9e67f68784bd4e34223a13ddcc36e023c83ee8e25174f970b558036fe283259846ec7f259105ef4ae7c48ceafb682d35c1dedc4751cd53471aefa3ac7a8a42b27789c4832aaaf63c97389fab6d6233700756b783aa559562373814abc7a9efff4a63a40a958a841a3bff8830eb1a3f8471c762cd56e3606f93da05b5398d80a9f80215ae4ec6a8e915233c67935cb05fa331b1b69b6b256f8fdec417ea3751caa5653e9415a138822d7c39df5302832bbc17f80c1168919614bda08267f3b579baee52fe4bea250a45114e243659925c29d17f3a6de709f6d4665366d4e207a96e762e452c0e70efcd62d8057fa9ef2743fe4e820a71cbd5a44c2ea939c9ca9afb77a838ed14727a37557fb5d2bec267ade9c1942fcd1594052da228a03debfd3cf6645b6e0c14d5006e41129cd8e64d99ba9215feafcca719e7e8cbecfcafb064c5f076096b1437716cec0f3e3991a33016978012cd465b8db812ab8338600f33998429e41a1881cbcf33d220f7c0e36288d4200326ee805e7fc040362e1f2d737ade64059dc8d163a084a064c32a796909c961b95845c5d2495fc444050ed901f0c8e086e99d609cf3b526efb030f5f742622a3cdaec616b8dccf381d850d92322362702176402a1f839ae0b204ccd8028f3c7e82a184877765a045bf4c500d3f0d027b5aa43ef08f34e1e2fe1eebff4d86c95bac02b68420c9a82f4dd95d03166e16661ebf487956aef2364bbfc1f8e890aa0ce6b20304f9080aa25d28c426487c751d72118648ac8131f5175d424fd083ae8d7fefdd343ec6bf61c234268986c75cd151fd6c6fc0b8389da1837f411468cbe40d09d7d1eda9d237c3ff4edbc70d64d1014c4b90fd84c643f3f54f58a960c9eb2c100fd828f9c423a7cd44622c5100485f5d36657d1ea94f4d545bbf8d4f5a8b9e94554d2537e7e17bfa6dc9b29a58cd3c247ce70f679ad94ddbd13224494fcfae3f47e5d1e5669b4466557a46486ece110d3ca1dc807c98bf950e41c4f66f6416f8530bf4d5c8cfc5ceea5d3fff2f62ea9409dac3941d75bc8658568ae2c85c370e93fe8466ce3600e5fab24203a092000b56ca3043cc1029a422f6c94e2b4a2bf7c947b77958834d145bb9dd4747bf133773e12a5ccc5779fbfa78059e62ddfb7aca83dc4857d69be216b26c8290d9b54641dd5bc95fc1eeac826c71544e1aee5acded203e9bf225e73883ea55a607b61ae2b6a346c667052c3534f5869bc6ad1235aed84c8f2a1c6b4795b3108eeea9af8aabe28bd0964b23071d05d6cfbb82567620330edb714b0acc595ec10bfbf66d3a1e6be9d19c9a61acf31fbcffae11db6de5727dc42f9806e336e4a86401d4942db9464f0422d2aa81b2dc9708ee5488649716f4f536be30fb3fa959d1cc2fcc10bed9d3b2728c98e773f46d168c7990e47007ee80f3f520ad4a023dd3c11a51c85d7ab6636e8b0369f5babb90b8568a6b962c9fdb13830b63048a0e319198e1785bdfe5f1a910ab507ffaad2123c4709d15a3b89dae0a44f54aee191f8d49c822bc6698b163d93ba038edff0c2bd6eb24034f9da26f67296ebfc9b595c88439dd09f19c6a0ed21add4f97f3bed901bee1b44221f474627048ac8e1703c77785301e70f0781427a7bce369126ba9fb675398d8fb4d3e3401d6a0dd9a82f301ce6e606acfcb31153b82aab60b8ad1586399302fd5b3dcdd1520d8b8665e43e520b73a866e3f1a492f7f1d5fc1bf338678985ee77c9998c28efd08639ba27695eea56f582feacf8414bb1282b34d6a64a74baa976a0198cfe1a4791c0696768a26e65166e5e167a35f37803298d94073e4d197c9043734d411bf8933d37bbf188f298724edb8564d62a8978b28b2757c1589a95e69f301a165a621c909c81117acf04cbaac90527d6ef1379ad2f5417f707f7febfeb1d6684867af15d18e53e39a947e317b9ce49957abdd2b23c38762ee80dcdb0cde20999dc5350342c47b92c6fc989b2438000d0b3848721f82877e0c160a0f5a631d1452dd706818055087d76dd464025274bcf9659127b07e9b663badc97a62a33661fab790909015f94d3b12d27cfa1f87ee1f02f8ec1626618593dca0c34e6515c38b1674f6193fee038e5db97d1631ae8ed6b504452b29c2a436a7f028a277a0ace42729713037c183e3de3baa08c2212639d8df733773b55d2f4ee745d9f185ed4861460eae33a1a975b6d44faa7d30baa4b8a974f5f1cbbdcbcf619e64c8c8ec2b4125d0a7c252b004c5b266438bc6c679c54aef7dc11e1ecb29e7e0283674efcad06a99e6d834af36ee9ebefa5e582f0b4c0099501da02a2e39379d08c5263bc2b39306eb08b2b647352a494716671f9960a98a35fe85f61d78d963618e0a974d6757ac82a0169bcdaa3c359705a5dbd511553bf44d94a95c36f565dbbfe37392199e8d9010759fe2bdb44588d961f2fa24844fced231c0b38ce212c6dd88358d76aa5e7ef5c53e1475fda176d391895bb3c57959acff90753ab1064e6016f516e4fe6c53185aa3141e208975152d0591965227c0878e2c1049a74b8cd41297acac54398160a98d9de53ade3e5ee6ed5a43ecf449ed35e1c251cfb53d1b5670d2b545da6083f34baea4bf99eab86f8aa3b71d5f73dc4ef9af5cc4635501f28f976e267d5afb5306ba41e43012550dc22880c7f8672bf0abd807b6fab444d3b8baf8ac0a4235e3d50f39adedc486c395d143bbfe237030272ef1c9c7a8c755d9ae6b90a97a4e4e416cfb06861a9c6fe4f2a208126e622f24f246150b8b10ed5d587d4d9469154a0c7f6fc88b6378f06535f97143a59646b226edf8f97ece5ad2dfaae83ad0ebcabc0f3b20c3b1537f004046ee6eb8c9a325e4bc05c495dfb9c65a8613ebeed7dd76d9e5f9d07f151c0ad92abc7c7f638711cf86c90a265edddf79caf00f690334cf2740dd4dbba57d28b2189efee7d2c0b05dd50b72c9569ae0c9bacf80faa5c1e037a0fdd5ec35926e4253caac206f81e0484cfd0152e56c9ca3f6b13f05c5ca3b55b4fbe2c4af7baf03829e4c74f59ff9cca2a5fb5d8f094d4c7f113345feb958c33606f9aadc96e51704fb4ff9aec5a7087939a208c305f9d25087ee349cb6bfce8f438ef8f21102382b2a56cfe92e8e787e5923555b02b70225a17ea84623baab3b33dfd4b633e27ed2831d94ea3fca9e743b3c8549964f96e10c3b5db432885e161c9f0fad6355424282c0ca8705185067a0c0443f9705c400822033ae9f88f2d7bc575dfa56d5b80271c13b39be9820a7b012e86cc13ab032ec288d8bf507b63c3c699f2a540ec7c6c86494313703f928c348e719f4e4b36de02a04d261f932a2a14a79467965d4a97c3b2f31bd9ddbc520de223a0d76fd65b9a7471aa8b3e0b58ce33bbf71001a63996bd62ececc3831739b45b3145fbc3779d1967b13d5d6e72cf654b248c98f025578a4a8d4e5432cdfba06f513d03ee81ffa87dea1bbe85ca3b361581b87ec1eea20ae1d37bcc227454208b145913b84300ae06ae83b33b22a969e064cb188d679f62f5e99a80fe83a2391f0876729175e971b62d570ee1aeb426a7f3522624c21212964e61df5a2dc1652e438093b62f2e62323ab428baa5e649214d5ecf9f1d40ad34f503d6c312d4573bb4bfb088310e34ffe9b68920ea709f3ec5028751922480eef2a628d8faf31a2cbe34747aea1011d773131b6c3a276e534fb4167248e05a009fa9e55dbdf7e38554dd2f55374b1ce15f74b1016615534e0ac071debd51c4bdd4363af5d66a649eccd0c5dcb81bba463513da63383d0318f758c6e39ee2e0209dc02985ebe75627d2df779705cdaae7a9fdc116e5b1a3e7785bff8d057961e823be7107a8637bb6bbbf648f63be9d7717e0aca827ab41e895547fb78fa45004ed043b458ec3d651c2373771f54cadca6d8204c45f11ca7165c1eb498de67d823a928b99f3b13e5c80de0948e88f67d1f4aa2c1ce5e613f1ffc98007cb73e3f76a763fe76277a50f8313c0a72c035a88e459a51f92ee1e535a5020432d8baae0e868ecf8b47c7e1fd9e335a9457fd5c9f9a2e2629d591f09306d8310dd46f0c37f05df0825a8cc36d77a4dc837e3263bc92094b6bfabad0948edd576f275f592430cc8d438222ebea3aff6572e32ecc5d4e8f45746c62955e85fc44a37011d755ba6214567522ee28a383780a6e60f8d0e8c6b1ff3b855578ace1ceac3bfd7c9808140741fe0d7141f74a1bf76922116d72cc03f92e9558d125f8256c2669f65820f32d63ffdf716e0a7f3377046f39a476089408dce642bcf821257f5a5d0c04bf42283695b53c2442b055d4a862fdb8e90b6d00a39d4e3f088685fa318e18e616ba3362855600632fa7146eebf59683ee5d70a09ae1ccc116e7720046d79437d4132a2a0b706bac9cf6b440a7f3656ec059b9ccc27283c0b37047573356b726b6f3448bd81f65a9d7745d1573846c7c0fe0de9506d78b2094694a045b658ec90fdb90a6cdab3ff3db9e2672acbbf7600e7d8c7f90509107a8e2946da22af1ddc822c6aad746cb241bbe83be8420d9b6b0fceec17b099edce6b9e0a5a7aee4867e0e50cd424400b5d274380b2a987a40861d7f57b0df69c278af0e846e7d7196017888772b14f3e9ed3bd227d396f1248c7b3f8a896895896b7bba54862b616e2cf3772272eee9f40d315857035f03ce08ff77cc880c8e51391ae047cd9c2dd86e7bc81e54fca9be6ee8214673f88f51e2a82a4da1c1983655e9473549904ebb08682d032e906d5cac11620c3079559e2c799a3d2070673f79ee1274897829f4431fd0859db5913990f09808b2ce4dd63005e884767cb2f3430243baa3f143691b543f0348005cab4c037a0c732d1a0d18652d2eb2885577e219152b6e82c438fd891db25ed5567c17d82394339f98050746dd3d166e6956bb0ad68479ab90a123d9b585e546010ce073fdcba34f6eb7af8ec7d77fec19817c1d4ae64959df0a0ed1ee4cf2f3bc6fd1778a8a5ea0a7dfecd6db59c845bbe1acb02ef9a1f1dace54741d27f05f0555e54fb84601b24407093a1e50ad314b13015e4048d8b6745044c5134b4b0706b0ba3a09b256c7ccb1caa9a5ab8cd2832f1d06e30d735f5e73274b26556b2378a4a0b4336a6c962d35717a7599900975cc90cc1c377ea0aa7ad94607e5a945cbb8c7de4c51a4b6cac061ac65d4993e6ff2b75036cd41452bef2cb7bfa289989b004d67c98cd71d57932da498db90349a0012acd6c258a5f7c58fbd3f90396b3b3fbadd34a2bc1e2bb775a3ea0a2d035bdce3878468130251f4150a4065884081f3337d80a7562d6aed72ccc387fe792058e598160c55d7e9325b8876f8821d3f5867961efa46e77d29baa91bf986d497478d641d0796934adfbc628544812c2c8505414815c1315e9889e0b9194022160d1eeabf66720bc64e506d45419235eacd74f1d10829f5fb00bf34a605acfd25cd9ca84d0f4f77ec44e3495deec91949c62198de3ad3fa3897d3b15c8edb69764a0ec58645c43f1b8bc4aec96d8d0ba737d12e964f394886de4383df1948e5a6dfcf49bce5329044604739a17649436e4203b377768f786c92920f43215e4c2967c2243eaf32c3cf18f50f0e91ff758fb331a135a325938dfe6342d592a4e0f97bbfe72754ee87c0904dc7fe294d884252b9211ac546dd5382e38992d2df09720b446a0c9f6d7a4c400934683417248dd0d0770236c5acc29035ab6af8604030d288b4f51d7c2d893d42475811cfccb805d783813e0ca3e573600b23f75018036de227d1190a6ae1c41465c7d311560e41b5cd5baf8cb2215277a3ea6660bfa841db5cfc113a225eedc5b990b6a65bc7432c646861fcb1cfd05421506b60d929fc27c944ca61acfa5b0c166ff4184c41af2e5b05dc3ac6cf4ca08870c443edb8679f427187d6533a14a251c7c0b5eeca3db6e69ff100a21449cf39485f09aa477c2c635028ce10a196c5d1f1ae94645fb183f05e8e8fc881d02ca5414b41e12d444c969c651094815facbd508054f6ed442759136b6e2f8063563574241f8d71f66f056ebb0de5e4d820407043ac76a41302853dea8659eceae07543c36844f11812e97da62165ad3538b7a8e2256f545962e3a249610127c1b128da2ad166b3e491b5485d871a96cbcef1fa41c11a0eaa173e7c0da87ac8d9b8e3e2f3d38aaa479231cbd50e0047dc53673ffd730c61159dd4d99280bc91d99cb562565582d3e2cac5a731ad9d904aafa07dbcecde48c2c37c34ec8260a4f3610539c312eb36989e850c2c966b200749d6ec2284d5f654cb2f6c225f2c3558d8c23e10c0f533280a8b60fe8ee44a01605ccc2a472ad94fb881d4e37a39cb902bee62b87e96d73df5e25afab5954db531604805bfc5eeaa0dc8f35db74c08bb7c77dfd8034520d709719d1cd569794fc54fa352f863dd10367c7ef1f100d5431b5321c8f1925096d28b3a37b6fc382f41e646bcbaa7c4355cfef8241db18a95b39aad8e7e575fbb5971ca2a5ed0c0c3d9397e2795eccfd1489e62669d25a9c3e2a45bf4c4c496c85f2b2294a33902aba7c2f61a811693585c66c47c7f766c3810a2931dcc28d94a0d098072cd36135a02f6153919a3c9db7a807a23362151c64eefd7685b4f5c05380288e7b740548e4b859ba6f543b7fabd92a04a424502d03fa17175697629b9a8160ff4b111a571c8f095ea5d4b1bd06d33234ea31bdbe6153e278fc524f5fe82cdf865f612bf12be0146bcf12373c9a15aa49628ae93eb850e533b00953251db60ed8ef2c375cfb4390cd7f459c27662453ab9d10ba62a0074a971d6a74bf02e3e6040ee718093e8d48fc530abd08bb2e893999766766b5bb9722db97b83234eb2005d9d7ae4f06650d40e7384acc9b4285a1959841645a97a14fa2c4a0feaa01ef10fb0627cbe4bcbaf119f232a2161b30634411236484f99f21a8607e797d3fb41985e769be018f3a163c0b5f7129be85867409dd25f3ea7bcc4ffb21ae39e9525bd363e5b88ef9067e11833c77949dc7e6035595b71be61597b5b4123f18f03749fa1e7bf75e9226e38d114c26c83e9a52d0fb6b235021a09db77a0f293b8deaaf6437e5b70468893231dbd88357ac12484ce78bfc52c775cd0b4317947349927e775acec08aae07a8e38d4c486525d713a67a8b7ad47ad7de645d5038a49f3312736874274c5279e851346266a4e25d3a9014e99be56e2edc262a7536f3ccede58e9a8ab74279e6c4113a94e2075931b79a06e0f8c9bc40f3437ce9ecc7287063433a1fc139b99b68535c3834cd5f375e14daa7c544322e7866b19966079db0fcacd000b773971ae68bf98689ac43284ea8574ba6c3fe7d2011d4533332acdf26c2e0793a66a800e0132dd318ebe0046748916f802e30b1b776594c95ed5d09214d789054cf497c641504238707934cb30abbf80c4ea437395a67676e501cd362c4030429ff908e84aaf452d7bc85b2a2d06e00df317c60a79d807fe411c0c4c2f37fef398a52798327b50499195f48712cfa4176b6504ea4ea6ce0c78bbf0d0595f4d2c0e4428aa9832dd7b9199da76e259eb9a89ab2765576ea4f47ed215708fd5cad31863e7d59725a3771a2daed06dc9c2e315e5d1718990f68618facb08007e6d39e41fde56d1fa5b7fbfc81e392cd5d5f6baaacde80bea792a93e6ae12c00e9448dd1450b3258780021c7356177a23bcee966004469858f44c89b1d75712065004cc81149193a6236a006697c849dd938c43f37f740ef3375ce652c8725d4714992318e208c363a7083ba1996de30f6892921244ebef08836a3aaea5e6732f12cb7d2511fd76daa7f7d4169c60802802c28f54700d2f12c4435615cae44a2360a953ffb0a0431973e4609c2359d6e84e7eab43acd67bd3343cc58e244c4fca2ea1a4b4cfa6f87cb1103ab664a40298e7506f08527a94ddca095ecec4275008a97f933be18b4c6cbae635f175e21ef68afc145278062c8069178e03827afa79fd5c9c73391d064134f6b8b65cb8d7fa5eaaf8d586fdbe689978e17b06796ed6e1886b21a279c00988b794182e993813f0a449ca04801e232aabd4e5fb324ea9015b8eeb2c2dfea7ad4c4a68482a0e30e85c6a4411b32ab06d9c4f4ebf66056b54bcab494572a128fb9dc682e109a2a711e1c8b747a32af8551b5e24beac7609029ad617d34aa7c0d55b6ab81a0dc6b749257f256952ad50ea14d87b1f2d9a95db856d8abd342d6be6b023f7d8c14d3208edefb3c891dbd32fb547072954e973f18910cdfc2fc6b1393eff7da7c0f59ea5a6d221edf0b66a1140c50e652db48c8c8a08272569f9b9afa5bba6a062c01adc0f91e01605faf782e53268c4124b10a2218e3ed75453d0a5aa8b7ff87fc052ed03a038a69d8502385d89dbb1b580860e0e6f8ee2d0ac7d71c2c17051328debe30b0f8ad78fe3326c8ae37ecbf809b8a05e8b80c0dcd5185c5c26752a9dd3c2385c9d110688c2f183a551490bb11d62855f7607235dcf3371bf69fc0014559f4d40a09b7fb4becd9bad24e8e503b2067c178a09048253f4b372a92a369fe94a53c1cbd620e1c999d8e52629b00bb503e446b5601bf8cf12eb717e727cc7b8a5abf2440d361492c24f35a71c8204e14c01dd970762d9873c1855eabf302703787132a13d7462bd4f50ce8d631d8ccf47ac26a20e8114231e94a67f8df196c5b6b8dcbb918e37f88c77a6ff987876958f21cd514bc41c286213449d91aea61e07732610cf773424bf613e87d32d3e1b7bdab899bd7db6e5def96edde97f9f04ab1b50c86644a7452669170f917bc56834e6f84eb2dfcadbfa5bdfa9996eb709e60851527d7ea1a7359f1239b70bc3081af601c5eb1cc9c93a16b6274cec4b31f3e400186dae18c32e14ed5b92427cbadf5b0f4822be6d4349a45a10c545b693c56e640a8879493565af48a1b39e43aa4beca607da0ded1967ea154f0404d6408e043b2c46fc3149c1b3ec8e54eacce2cc3ecccd5d9151716ab7e63d0ed0551b4ebba4a123fed4adf6c81e065fef06c67b2e2f01947ee66c6755dbe239a00fe073d3ad62b70f447baabbe1952a5543ffdc621df182a216c8430c18eef930c23b5d091146e8e3b2537a23c64fccfc7169b1ce5914df2f56116465087d194d6fcaae587897c7bf4b6f4d3ec888120d7c8421b88d6efea1061324be6422a4da51cd7b56328be5c6f8e13feeb449440f95ae58f0968c8f4b3e219960c9011ad43b86c96451a46c74988abdc8b85866ea7d8ac9906f251653381c02ab65100ee3a6f07cc301604d3f272221c76c4a7eb2851ffdc780f6ea275e96912271efd8ec71caf1eecd9494cfdb83b7525ee3488e857750b08b1ca93f135522f474a18ee9ed936f9879cf4e72e1982bde91aee56829bee40168021ffddabc4c3ee61372f852a8951906c807ce68c837fd8d49741b161320ae3d0d532e68b2b279a932b3ff1271ef74be40ab16392db523a7c116f4d83c4f760cb198445800d46b0c7d001226a5985470c34bd0336f82316cd08c89c04058e372f56555dfc94a8e24074b02804b0d2dff681cc8d0bedfabfdd4320cebfdccbf2f6cad753057a0de83c97c008f8ecb774faf9f94b156b827a31937499fd9eae4a933dd1d3f3c61b19162952204607021baf0d0cac3f9577c5b24aa57712893a802c0c737acece6c557f2a784ca2d27fed1444ca2771e846338a55497c346b09a583bbeb855141e08db6b420b864cc5b628d9976f366d1001c426059fa8ebe158422828267d50f97fab560849b8f02bff4c81869787a4aeec5ca3ba9531c4d2e9489174e3d30729fd0f1cba81f5ba624df2e59a5e2b8c8d1cbe3812040cca154645b6323b56ecd5da902bd1f7ac03a570ba98b649f50d04eca97042d385a8ddb5d0b58857d92c4774f503947ab5496489048ad7055fb1522c684660dd0595a0fd55940e0834f763a6057d83924ed8e82e38df68699da1d0c9c0e28249c7cdc6ff4be68acf8e0e4f5ce884aca124669211d0075216ab4735b68d9004037b2abdfab06d0afdd616e5418c8298444ea0981eed625d76f864339d52e86f7d7f08c2967439dc1a3b36877ab5aa79a0e2b51ded782353e89dcc0a9777212fda5318b25317c33d3245d8d882813f6d8204b61c102082c188f4c922f142bd368bd070801388d50e896a8eba3106bc059ce32bc6e623e75d42e718b3e1f1ab6dc77382589c6ceb99275a3810a06d5bddbfc1f0e3c549f81fb2955b1266a00016e55da0b5dd12973d3b3b24a03b3a7504d014898f36aee22a38183a11b5fa932bba18183888735f5d71c8025010a0175910484c343b0184832edb319db65853d940ecd7e01a529d208be0bcd67807c7d15be8d666f18a5e2e57089d0d050ff7b27a756af413673e5d12e7d9b42e994947bbd04b839be513566f40954f9d02edac8157ac82b7f4a38c8f83bf5c213b582cdb2da4d965123b2a808fa9b737f8c51da56743d0b95b64caa589c0716b2c3dab28163f01ca7bfb37201bb69f75a4287019b3a91708f23912e519d17027e506b0561edd657084c030014ce3327085e0b39da0c2bc0a4961962aa134f85e1a09e054ab119e15a3626d7504e212a7b62ab9a86845e12384ac11f1dabc1262e702068fa76c14d08467ed3d00eb1be3e867219e14c507249e49719e0ba39fbb65ee68ef0195b741442a8f8b7519734cebe9b12f66769158728ccfec85c05fcc0572522c54d22330db63d8938ccd3c382f641a4bdd278de508d1172b918a36f761c61c9f516eecb7561073a23351fc618a72bb8143900a353927db00ae2f9bbb834e77cd23bb22c07c0e69cba33a8f45d5ed8099bd7ff8e4d16c737ce172a06a319ddb838286441600ace410be7dca2142dddd246ce678c8c9561006c97cd939b135a88b01b0581a8c525e0d6389423399250c708c248ad709d490c308708987d2c5f4be7fc93e9582530b7282ce9528213500be35af7497298a573596b293d80456447b810b304d7f048ae82514fb43231378cdb6113cce73be57b06d2b60a8d931c4ac0071c56ba89e505504fa41242e00df4ecc32fdf24d90616ad806111f7425e48215a9fb55c7d10920dcbbe3e831f6ee7ff8f157b0184e92be9e44ef991dbcf13aa591e6009a926012696fe42793641a17e44a902476f081825f7c2201632e9598f6cfcb15afb69c9c146a1d2dbe304985201323c7d956a0623cd6c0c1cceaf97a8a29256290bb0a6f7cf7aebbd3643b801ca3012da6a86d0cc709b6239470ca9986f8d8ad02a490113269117b71e519d06bb4f86395252634300ee89fcb017c70d5ae335a2bb5b73b08fb0320f33046bd07a0da355d7b811d9b7f888122d435099cee3fb416ecd78f03aae9f94232d7ee1c216f8469713137a560a8cb478b6ede66135e71387477f7081251ffe566d43c7fdd10086e9f613e1d6dab42f8ef6c45b4ca1fa4671346906f316121165fd48cdd9dc187a2b50c36871ae804b553cbee6ce91d7256acab2ab8a0fefd28b43c3377d7e2ffbbdb9c526281a4d5230b8ea1547cc004857653d08d2a12a56fa9f971c86aa60679ffa1152ad7f048683c609a0265d9cdeb2ac840c16becdfbf05a3e183eb41d5c7c24143c891c22e46b1c3d1a9223a4e6c6b04669505f4af9dc6c282284087257ec7071d40175cd389c75e5876bb34d777297a5a8a03155a5d1fe6b81a1048a0462fc8c9ec5868008c1ce092d228e06b6c0f88f8f6be12a0e70910f67ff12bff028a5b17d02580c566c7cbceb5ecda21eb1ac6900a72b65854c1503493366bc1046a61c0e7e4550fa639e3d36520ca28d3f22c60d284147889f83cb83bea001e69902be1e027265645c51e3f25a99e71abdce4d9bf3bb52df028a20115d01d7dace60f4cc6dd1030963937cf7b1d88ed2f0afda9da605785634d738b5deaf551bd0f20b046c17961bac0fefb41632972c80a8b2b2f2901fd47bd0c367320189ea6b307578ccdfb6e5ac947b29c455381e9ce3b19db4fd1ee5754bdebeb70b6d68ab8f67ec14db89f7acbe2ba38e1be0cddd4df7ca0d40219c992aab4b0419fbf57f4d1bf3079bf1681bae4fec5d965078e445a6c42ab20b5d3a94dc92f7e7944d80a1390497f4a3ce679b39041f2e0aaf4661678ab722bf9ab2c6c12fbb04cdc26e3307a19d7b435f9f3e5f3c8838006789ac092fa9c845b35278693b959f28aaba51a387c49dd91a93c34a105f1108b7f7966e07f73d8eaeb0f2480ba0011a6057f858776f544222d5628292099d391d766b7a1a65caac2db2f8e47d5434f22983fdf4b7413a0ee31acd291f89df1a27866b174796ee5f4fd6a4f6c35420d302390053e921551af0072f7d5da704689f84ceca0c4e627bf682de89bb873d8595c9211784e7970d0996658f7d42222a03a19857cd71a6f2e3e3ed894ac5c276b5a27436fcf669edf11ec93dc5a2e4ba584114758d6039f6540d1bf1a9d79c8b28475da488d8bf8fc142538added1949eff553b98fbb8cbcc828aa7dde1113b502a819cae3cf9b911e093fc5b9faf2e1d3d0c166c49443f901347925a68a7fa26a56c5c23084fb023cd257f2deb8c4d6c7b0e4b233a79da70b14941ed108a643f5e74112152c260eb18a384446207b0a0b36338c68ad9f4e86c088d5afb4951c76a24834b23e7a52d05066b1be4bc9a784ddec39447f37bda87c66d183552fd2309f9dfe3a41ecb0bb733c4a0e1aa400cda2d59c192af91b9a3722cc610ea5b13c3ed7990a225e010fd3748c389123768ea3f2e1745ca3af9d6fdafd996b86747139778bb45cf02b6f30ef9035f5ec2053032583ffff784fe761eb00255725c64ec2a72ecd2403ae4ffab60bd7ae2e1bd0a8a73f5eb7114b35fcf5d69f9bf7b918bd748782944f8d3f7354306d3a92cb8ce132161b09e8c07e4f31087ba39b05ae5f0987001d0149bb438bd6283c19c0ff0e5a1ae05100f165ce9c50b586d354254e6ef38fa26d2d6782fdb792892d1eda7e60900aabc634ef2bdcc3e6734b3327bdbe7a26b198cee4240617d578a6e0505832d13430a7faf6f15a7284ed00107a51c16c144b77fe288c8b20ebd110f048319b7df3e5eff1415dfde11c4d767af6f72f90a5458e0a9e9b1fc8757e58fb73531592ca04eb4db47e94aebcabb8ac392efe77dda9d13d407b37db1bf2c29370955c11ed444cf12f81e3ab5de6f1d7415bec9b43370597e9c75fadedba044a8b33d62715a6cd175e73a5d889b68ad6899ccb37ed733edf1e43e9610af2acd0248f67bc72dc560a54835c3e88f40602fb5ea490b04935299f64406ad0437dae2ae610b4025b01d5d91d5b9e28b8824380318ac39df589260bf5434e642c85f76f7998133eea6cabbc44b08257f9901b19bbabb3cb6eda831410b59c5aa5e1975dae9c334c8033b2c18b3a94978d0d83eb0118b123124e13680b6f72b7bd1af3651bf47de5ab4c70b292f1b5084a138967910f8d2aca0911e9b28a2bc589d53eef6b4674dc7ee7f06df28668b29c52147cff61ae094ed804ed667c1ff0c9a2b44d7fc8e747e5bc8b12fdad165d91aa85e85662460bceffa02944859aef0cac0a2a157a1ba518ba81be77e0eb953c80980186335962ddeb5b65a08491ef82d1af4d27726d1851d09f64c211f765ccd8c75da14492896ad708d85878bc29cdd112525f919d7b9d2202277069c47c276625b2ea7670abfe885b12a76dc61d063aeb0900731efdca90090510b62e973782f949fe5c06ee20e0e0cabe310d5a3f3027215fe9507cc746b86cb0ff71688b7e101124339ffb6b823729ba1b5657d7c79c9d000d7675b8a1d1fe9e4cb073d24562b0187c4e1fab51bb714f408480b9439c6a7fedecceeaf8549031957e6ef2da794e7d0007a7a64c49419adbb27ed3b9834c567a20afb308b383f9687f38aa92303c1c01a9a16238019b7a6992da13e1becff98d7cf29011c6c926d7a226e583cfd4bbd4ef733e79b617833b3a5dace41a1c2759fb1f5da516fcee9d76ebaca6a62ff84b52779423f045a9b1764b5af49b36e9c09847222084bd96500ec185550b9fa5795f56df9abd45355184010b19116aaa82a31322cea63f4d77a093de023dfe60fc4f491e944a29b251c8b1b39e4eda599a26a2bf85ee9426d6c1857d9faadbfa7718cb6395af33d9a796a3f3ec25d35934f1b2166676897659187e1f3103dba345b7ea647e7c2708288a1160d320ee2c35e313ebf101475575d4aadd19e05267878ad5908a8e5b47f23ef5743bab2538373a61cb0cdde3c0165ee3e839a490e6de3270eb6122bac0472cad0cae49a6568244c3cf26a5629909d401945bed905627ea201d4df6f854507a9e6956281ea4dec6a0c92d1796c8457b5b939ab46cd99e661df33018c6f233e4f7e0b48ddbe56f3363b0459ad7ab050cc68ec762e7bcc6727508b2181d093b65a24f649ce8d1272a6983acc044045ec8425050d315f1f47c835eea3e7f2e40b452da4a1b52ddb21c4ef70d724c33899f562102b6257bed5ffa81f3c4d297467115c0ec805d11a2ca87656320ecf111b99dc0c37b084132982ce1f9f395d802cab2b201efcba5bb6a3bc76e5918da1fff360bfba2511bb667f36928245b30729bcd1aec9d3a35609cb35736d8af2bf4179f548119f107f4562cab82c7cd16fdce85693808952f805712b094758b9c577503d648c26c46f8eabc46e13fd3c6ef27bc84776771329043ababa56afeda512807610f7152aaaebb3dd032b870416b16e1e55a45c4f91814f64a242e2007472b0b606f6306bcde633343694834b3de3ef78043990fd8be6a101c4eb391bf79e186a99137f4d3a43076870fce2fe9772d55646e04a734382ba3bcddb357421ad127a2b8a2dc6746c394442492bc45956bb1b91bddc238d14ef6fd7bdd9bf8804628832295001bd888b231967f1b4d1df70a95549247ac7efe7c62239707e701f29b2169a6366a2e576a417279eb68c55b97ce502336cd7c9de80b68ad0ba52ba1555f31c798a378b74853ee0965a922900cdffa86dc8260972a3f0b7e76ef76e536374f6d49f9b8b9ec02d4373f3197e3ee3a780cde84525ea270460b7aabbd78c0d2e771e1b517ae52f2444908345410a6fda993a98bef0d1224faf07204c0ddaa2a58dbea0bdc7f39342d9e74793a12dca790cf528aa3fd757985a4090a101c1e98bef1a79bb573827036947e3662cb98c7725a0ce2b13768ac1370746f7ed9cdc5ab517f6cd8e70050c3a0af37a43941e0f1a0096b35dc8f6ddf7fd229e20a19609c2195a8ce75c42172b141be033be6719d876c03201b555e1a3974a095319bc22bdd7e9e4569a12e9da216c61c5d0a62c23dd1cbf63928cc919a5cb7e1176c2be91a2d24544daa863f633d07d340bc0b9524d000069c933adb489b07e650bdc7d14f265919d512c3ea0b1d25321165f275278f51d4dba9d43096ca2350afe61f6f34689ccb7898ef472792e22177ff8daed65ace0d237e2a588342e29d3521f0af08d5c9aa4a91aa4beb8b30aebfe4eebf98295969d5c2f25cf6c4123acd5479e875fa9341713009718713934a47c3b5f27a432f706917ca527adfaa728edceeaddf9710fa408ade4c9ea9ad0ac5024c79a9c5a2161b8fc9c563006b191d75cb5fc827988cf23d1b5ea1f0162195bb6510aa3b4d18397e086c1a1b4d88ea99178ec74e6979e88a208fecdcb5f0e5afc41f44658881600981bd82a8ae3e5b0ffaea6a0ac54105e55ae7365a816acef240f4139da8bed6b6a0f247bc41754adc46397d4c9cf45e0b04ebf3bed2b9dbb4e8507a9c64e6e21b2acc29da8c6d49ae80ad68842fb999a4685bcac28d93872e7e6b5c430a92648d44b50ab7d93528b4a01a0c62c7618d7a5860294c4d0d2fc9a46c726e7d13f5aa18520f5238df143005ea31ff83b38593def263a859c9409394b8d9f5c022d91c4adb00cdfdaeeb1970909cc134e2b4730ecbc5f39385003fce64aac60b7a0f0d36ae0a61e040441005af99c8deb4709e85e61a2bf539c2cbf66451ef80664ac1fbe0580fc2b3333a6371875d40331e8072b0dae41b03cef144057f40165d2530301064b70b5006fdd596d355f5b398b94f08e09dd64f4263a33ae6f0539b64d58ce93464d23bddf710093fbcb667973888c5011d5e5fa0c7b7ae78bf076ab2726f7422b2b2e1ba7ebef454126b5b8056872b4140de2cc3f70767ce0ca92b8686f66233f2517d2106c651d003b21ea095056f244840135554257215ecae035892ec5d69c48ff565e00dc32fa1e27884e458d643887aed7df07739774a27a2730a164522d95ba69a817288625f57d9908e8d72beb68f2e6a3639789f9b918bfdf258b5a8c7a8b2280a77f48c7aa88f2ee3051a9f705e79baf85062044b428b7613362afa130d187289f3ca03e0eb357e497ad92cd6302b7409c47668858545d595d1e79b55f3d5b2ceeba1e5caca8e07308c1f95a3d966e1798e83f5f881fbabfededf8a661cd48308714ff71f2350fe717eebdb7a47f2eaf253ba62e0aa92558cb37e2a7acb439eead73692a09e5ef8ff6d04ea4de14479fc25fced0c895c110df778c6627dd2a37fd919542abc168a714524c490acc170a72d237c9da03ca11fe775a867b52c6ad3d19a6c4a9cef63ed89628f5e99b118059ae1b6bfb494dabf8d6a285947d073095dda2eed0f8669967a0374fbd8822f4342eb0501f40bf56f852f42f7c6091a2e8f7b51532cee40a2717495c10015833d3eb93428e0c6a85c9283162e0f83860404a9f667f4ff0414ad949e9b809c998d7e567faee70f5fee9e0e56dee5e66e3abeaebefb496d8510662ff3f60a94e5ae09062d15d6c58419933f32cff5e3e6729d6fc9bd18daa54e856260cddebf186314b214795543ee58fb28695613a1786603aa8e6033742a73557c2be98390aa8404e68bafa543448b3be0cfc09aa94854bb0383f96c19704dab1b460e175d98a33110b00a871b37ad88f8ed59f7b45fc0f8bce57e572e2c26e882e6578ba4398fa075c7d7ca536e15af2bf9b92d40c95a6ff80546d6aafc91ad1b191abc8ce198c93714982ece2624f70d4f1bc41baadb1774baa263e328fb430fa7dc219489e95b10f9eca1702c5c430fc4e4453cd91b24bc1209d36de1dbe366836101a77e3f34ce0163a0d9d2238f2c7b2af45431195ced99313bd43d19ff79bd9799c9243fa60f09c1a084049d04f60e8265930c078ba575fad74047f78603725a05c053d39c908727fea98700565c0365b78fa4d3b4660cd0c3c06c20a19b199390b0e7e2886841e00025b0575d297245d659926233b6d5ef2628f132565b995c0b11a92159d8ca163a98608191927501e8a50aa7d4c19f835046ee218eb744371df7bc36464c5b28a7dd16f5c42c68d0f2917bdc1519444d1e9186eb7719aaf2f8a421bb960393812922530bd344c721a0c82aefe793f3f38448e23451b5b18aa969ad2085661004669ef02b0fc50d34af389d6dff5d0739cfe45457dcd8cc2e2d2ba51c14b488d855d29b681a20b6e687e8ac3730428cbaa83693577d278d9e4c91e8d9dd2ef39b0ce339b1ee8e7f2df70f95f6a5416fd2da0ef54c5624953c912face1ebca8a949dd73be41b0e9aee84ef1510b6f278c212a03afbf97176d66ac7b84dc713b27d6ffe38502f212d391667da1403acf6b43d531877e496e901abb46678eaa76de55b0cd6414500dfe241e9bf4d2659cb4a296dbcc9e031992a6036405e1e1396940c9ca58daf0563198f0aab2bff64611bae20fe29d5690ea5df3942fad395da8ac23d05202f84eca6ed85426ee6285f589fe35d6c8a80ee553ee16db9e71e7faa13bee844564122b497e58f5269ebcea003320995fdeb4a860f5b4b2727be5d0be2b7aadcd1d5c44909374136a49c9dd18f7fbc3efffde31aa7051cf135734acfa110dbebc66e073fa83143bc5e3e56d009fa79f25b1239e1e6f23e03cfd298f1de2b16fc869dd2bcac43f224d8147538e218ed064acdf442b8fc09676f16fd1fe23d2ca7b3139bcc6698d61c478d61cbe44fe5792baadcd78d007e486acf7701461b96c7be31fb73c862925772be84a4c32acd6c5193f39d16a88500bd42b2b71abc9270da511da329240c9033efbef9d207b2b3b4f90cd301452b03740d02060450c16cb8535020dfd6b0155d90719ef377d950a9dc2857480b106c4a59c595f467ec02dd6265c257ffb879e0e6ecf401f1b9098ce044bb59a15adb4cfacc2cb3589f55057543aff5ebd0a2e5d83b1bd9fe0a872b398d8e8b60744ee4ee6be712570ecced8d33973e0fe1bdb6fb69fbccdb14bc6d168cf3b533cbdd614480f06e897468d970a6d9850b848a46e626cd9f39b9e6a6deccf8479bf6cf909039445ea50844360b14855f465154e3cdf1d5599e3c399134bd421c273aee0b8d12448988e58285f1d4f2f820c22fcce3efd2cd390236ece0b2acdc3d76d6687462cfe9d8a0fb0f735577cb4d08fae9cd3804a5038b3926384cc28493810b9eb4651ba901146c97222de8201af0d102a0837a50728d2c9d97a873418a13f8668c36a871c43e5206639fb011b434a3412540b40892f4805d52138ae5fce51c36d3bbc25b78478e865db925d4d4853693750f5fe043540c2eb8b4e36a072e9c5f1a18738e7f9a0b6cf57f622c4438a101c33a2909b1b4f4792a0ff20f98d08bbc690cf61d2f310bdf7ac63c038f5d4d115264cbe81140464585f4a7e253ef2eccb19cd20d740f949aa42cfed6014942afe2b40125dfba169543ca9c60a39a6179ae28b2b6491e4a7735f8ba4c02590bde7940932f5b620c388b1bd706531fdcc1c38bddb209fc00d70a8a1701f1422bc21eaa66a20b593a5da46ba9da73d019b4adc0a41792d551acaca9be34b4a984540f015937283bce7a86933b918d5fa2e38a25f36445a180452bd89a11e86aee9384add03839e2255f47b92feb0567242ebf9f4e25243d1fa1685f0543ff0c0bc8215e63d62f45e4583a095daa0a207f386bc446c4e6488706023149cc5cdd72752c04a453568c2a90a6ea5ec2cedcf18600640d8ecba8e4d5cd37ab9df43da15e124889105edd7aa9fac14677c39382584a234d7c980c405468037ecf4b6860291320eb752b7dac91f0d21e8d0f9c06a3516e64867a8e3877cf91ebef21d583a1db9fc7f1e5f3f2a3403148f5cbc2725ad249b400812d471e175faa51a8b10581f6ad89bc0a2ffa80be724f6568637f54939d771bac434baf4b8b9dff110f76ce33b111a2682d65cfa4a86283f04476f9c63a8c0e0793982353a4a33bb8da8d69961df233b4338f84fcde0e0fc54271c93965b18fbf6019cf52d588516c4d71de9021a12cee1b57ef396e17d66f608d8d9994e461e2cb52b4bf4ace32d3be711b24d5a10cdd61b6e3b5371f5cd57f3c3e24523621b1a8ba4481aae5f1455ea52b9f13dad2d00ea84813446c2c34f08a87c6d85f708f792ec44a755e130baadcd767adc5e201214fd67f8b1c511b76487ff191e9aea0e4e651e823c01ff6ee23a0484d060c030432847c564e56726577c796a96091e7ee72f8bce034eaed73088e52d52a89239f85c2b1653961df53b043ea1309dcf39f6981275e28c3a8e44a4239b2e858a113a107701d62b015a0e35bd46cceacd6d4e531f0d59417656420401bfdc0ef389cd693f65164ebbebe44f89e2631cef38104a50282e45e3827eaf45848f45e095e3882afe2577078625acaab320e8b3a24a21143661f5c41f38293a5641f871d2f35d529fa6b5a898dba20bc8e1fdca11fb5c64516493bfa57a0a129f440ea5f2ae06224d5e90dd1d2772e1e8774bd37f0b9de9c631b05ed05de79a7c5f99c955e10323e498b4271c6a58cdaec3b1da5498f541c74a5e47bb3ff5159447dd5436702e1cb1992c1555929f9ee49ae24695d1e5377dba3a48ec249fe2aef48e9253a7e51a11d47a477a43e322c5382fe031e2b7af886120a45b0cb2266a6146e9c2ba64c4f0b7e66faeb36f7628ac3b03d26d06a2a0b64d3fd7aa0af754195a07d601a9d738546c5765a5982c3316dea9f0f800562d25588220e0a89781b064cf6f1fe9f88edddeee50093487c97ee201a2c2d26f497bf791fc3485d8cfc6d411085280002393b7c244e60747da0e25c063d3222e96f8d4b994a8c8a232fb9abad837944fca29c9778029f06cda34540ec823020b93492aa806daf453617bcd81149698e5125d7769ae0388030cf0e17a57cf29c5b38faf5f51ca12343a889a6aaab756444cb438c1d7a003400872fc8806fc0d9ad3a9fdd813d073d3e620b2c1e91d180c50c382be8e459f483859124e1572ccb804b0057b208bd7f443b491846d08045205b2ba6b6d0966e72890fbb53b336c716abfd4fa921d2d8a22df958b2230ecb85cb2ffe8cd5720589b3cdc3ef9d6025ac275e7d80d1dbf62f5141d9d868c1c7c2ca23c1f88a5959b729f86f48f72746c7cd84b18b5c31f07cf118079e8f20216ab42bab8247404fc92e46d7d4ff02d6c65ecabf87d9bdc9e8483bebc21387b23ec47dc13d067241f803a20f1c0f48909f23234f154f211f4ec977a08b7ab09ca2c1414264c749061c56600e3ac4fb46ff614bef698640a03cd4ecb6445df8deea902a8f729bc298acf6e5b8a5fe4126753e0b10f5a8f1af8c06012f65b1c0935bc3133e92bade360737e97112b897007cae9e828071cccdfac20583bc6a7cbcb4991dfa771b52289aeadcbfa219ccc682b3022dc2cf4a46799b1205e02321f431bdfb0c2de72c03c7d47f14a40c5bba5bd30e3b934cfdb0dc2cc577013b1b01781c7b75e947d47e837623b72d565c6badc5f130e13b252514be5b30cd1db89c839da1386246940d48ae5fcca5bd6e12830a2953dd34ba6727a5e3b4c30c45a95af537260d1b18f9d4398090a5acadb5990d9ae1893e5d670d9eb1ac28953557a498f8b6f6b999f14cf494f64122c55e6c3bf5a48838b89efd3af2f1a06783d3703f6490a3a15a3ffa22c8c6ccc26d4d83bf9a99d272a8ba123627a46d1ec9153264a1a90747693ce36285ee5e6856fee328ff67c4183af00da04522d60b72e38f44f892132404b5c68da1064c1c5e747fa1cb1a1bd6fe8064d1aa3a696c17cb073bf9c69a095e3768551a1359951959fb788443a81fbf5acd215ab535ca853ae34d51ee5be733cc6b1b6595c967fe95767eeae634a18f928716dfd7982dbc85fed6f6b7509077d07b727806b2c0c0b5425381fa67c211f6d210f9c08e9d060b2532acbf8f4295be64be59595c0b7ab3fa117b80d46d3207764ccb9203d5d0899868a168112899bbe761ccf5c5e7017ceea0823fddbed4c992aff7a77ce3cbccb9fe3376e2bcddf1d91cae8c3b15e04b74886047a524bf3fc16fbabe9a264f4049e4cb842c32b1fb92293ef60395962e620e0d788043927c08b9be616e816b42cf51baa33754f1f744af38bf7311c1673afc632221efb15fa39fa5a83a40f221f385b8ac3044ff75586a9f715de42554b67ae7c3b8cfc88c4a6be459cc04896f11482f00935ad56094e5faa28f355a3608e2948a136d9e42dbb212188ed07a212e3ad8ddfad0f72b23113a6043ef9f973c6a17444261a094742e49b14bfe79a69db695684f62b06fa2bf41fc19202f416c3e36d6fac0e00a6d44cc0a0626529236f049abf9c4c806e52ecf199043d4d8cd0dbec676339ed9ef0179acf0a84de3cc6692d35f20832efc5cec3da6ac93a92b48ccf38764b7c5c22474de80e14a9a38458c865de1f50924986e2c328a5fd63445a9e14aa7083888dde2d2f596d61295d23e65df00da2c731cd66b509b974773302c3d6393e0163f770614213538eb9ff721dafc503137afae29c1f3a7206c8835840f5df68886273d2c1fb18e875bae650bbcde3797f988151a3f7991808f22f0f6940231d4c80fb049cfd3e0c64108e5521c134c8fa6d53144b287ea38352f943a4c014d628fd4a00e921364383a968003e76981c287e54e9dc0030afd700928ef112b84bbbe73673108d4560cea4027ef486b3d67cbb1703a507ec26c51e50db01146b819e3386818f317d4e3f84f065238bb7e92e4000b33c333e84b0e3629c8a94274d44bf74df480860ff8058f6e0044acb641ed83d7e382de9ba56802790126285403c4a428b9245138227b634eb43428a78157de8466c9ac8e8fcada95fade16dbad39c6585e1a4b8080b44631988f3b101af992e9b4678a7f709630b2599552ce9ab9897f6e2e331ebc82bb97f09f48a5f76c25c78c1cbedc2780bb410bcdba20bf6ccdd0426162113193e0799b41b96b564eca64b279405aa04af6d6722321bdac7b4a6f523cd773cc999b855c06ce083bba2e625390669188bc42c36f42179bd2025b98eaf6c7749af6f2cc777ec9bb8e5bcd7bc44a4d140042f19905a6c6fa204d28ec17c73b512cae365ff13ee525f11b680c56d2ee93dd908941ce88fb0b2060a2a871a592cd78a49ddbf5c282021e3ee2b82a70a23fc10052e14ddf1ca1c80f053599696cf81839e5e881e41c860dc19068ec173118fd10da68d894ec0cba9f8099f529410e2971740fef5fd5e341cffeb6e91b25c5c9776bdf8fcbfdc4f0e29f4016b548b42a2862dd6578cb7da936168d3d83a0bfbfad27e099842b1426deb86687c614b88b0177d522146a1a71705da3a8165592764ca49c73a4a673f7dd981ee8ff4ec4729dd4df3c4b3bd55b32ac7c71a92806c1b2a7985829c7961dafb8c006679466819d42c0c00752c15be2f7561dfaf5f9dc95779380a2b660ba23ddd18705fdc11a74ef6d07b77ed85db1d338fe6a4ea11d50c1c0f38be46667b9decd2b089aeb21755f6d83da4605ec34ea5590412d783850098b1078c01015dce4eba5e9192567be7a1c3e690a50e8d71cd006aa144ff30fd730127fdfd4b7b1650ad4ba610aa508722475e00c0bb90d9079684fcf01cc279f79b3cbbb7cab396fd73e0f3b45908853712c309817734306ccef21f36ff566f07d28393439dfff2227e0392b5659b865476beafad0521aece737bc1ec7c101e04aef3c6795ff56949d08b737ae65be47c9776a1ded3ea7a4abdfd874bd69405f032be20052a0a70da627bb5c2924eb1e9544781026986670d9e6b2fc700876bf2bb394f40cff87872fb1de0be7d480c08ba1716559f051cc1d3f3e5d42b7728d6f6799308b6e926bf82646929bcaa4d65a407ae20cd1ba4347dafdce93d452461392d6fb9095d4f6f6552c5e51d735ba311268c9ec417700e8a58328c25c97160496eec48b70d3236c1c5908e73b1d53b2b562f7d98eb9c1a6969a6b63a108f83942e2de29b009458c1b30f0b2c12dc2dbd2b886dde613600070d5cf67668e345521e288aa335d20a5a8e92244d761e8760e18ddd19a2816648c43203ffe4ab063f8932577d2621a1461f9815942961991a49fd31d3a63863238ad74a98ad0671d9e39d0b50a4bbf3b5f82f7e406a00167270b3b79c57dc758720ad2513e8cac8d6e5ce6820fec36bead0fdd6e68fc2550013525fa2a51f8235239758831425d5245a0a7831c178d40195587e75ff200f1d775d2eee286f7cbb7be30a023c15a6a6a4a8c50d0f2e38b14d7b2d7bdc926bddae777896f8ce061905515b96c43929f9987d536bfd780e3932090919388470fd8f4200f95741b44b7e8fe149171b532169c4869ca91c7baf382c0f91cbbef5cd6ad12ea6917c2dcd553361a3066ac9effc97fbb7d8b4721e0c71184b754fe0cdc186412c634eefe49cc44bf7de32851a667acfb25988537ddf6eb6fbdbab5f45e36c3c591a385ca2e3770909025ddf1471678a6605bd47dff9f237ff4f2f4a253815cbcfb4bea0c44af4943c9a32ecf1ce29c538fe7b7d548d8265e7c9fbef574fbb4e92c29db4019ac0da711e6686d4a69861649eb343108c2d964b5bf2dd3d2ea8ab10089511405a0fb82d00516b870bbe9cb6129e79589ea28d08fafb88059738f07182aad75fbc39a3e451a160a9861109f3313a4ecc43cafd7f415cd4c116d2684374708c7e0c4cd9e0180a8a83433b5db39fce872e193526b7b5ddef322409284d47c0b5b2aa508fa6f51396a68af29e8d83452b0313b699741100f84931a91f644c3c848b50c9b7e571ab96574fda4b74d4c5bac7c7959cf9e0ea9be395224ffda8bcf5f43f6232dceceb21a8425f0addc436bdd44a1342f9aa5811a5dad2b7a3a4c91e933d0ef1f781078572a5e59431ea00c9c2700a9a539be3ae1a56e734cd110f5de0f9e07515e4448605bceb90b48035e27e98582683ea1abc270bc46738374e7ff5502460dd822530c75267b3ce992ba7fcfc27c056ee3607dcc000aa46f86c7a4f029058c19df57882e0229176ea8a5161adbe7a8dda8c7350a5069736f786055fc069d784ddbc05e81c9e1223bd09f7a617306b50fa1c8ec57697b88d17ad63ab781ce45dabbc2a237470a3e758f1d9f661418a2e533844c879113268fd2a7d193ca32e86acf2b8ab3f51b508a6ff4849f2da61e4a5a5338f54a789e6624128e351161bc4aa6421853fa279e0f2e433804f1164bda6b60faf04627aa62492202bcad81e272c1fd17292c1eb607780ef67831463345c8d93ff9dfef5ca859698c29696ea2042ce9d44661b493405956d0a55d45974b31dd3d481a2593a5f25051d8e3e33cbf4783cddc1a5ff24dfef5ccbe8a29f336199854274b39e1fd27bf7fbaa277fdfd42d5dfeb67393d96b98f8fd6c82bf42dac1369d0d9e0dccca5005fdfd64e979793e4108e365967e411035f8ec2c411c0f33ac858dcda55ad7096efcffa8c8e6bf65e1e2c8adc8282d2ebb1088ced7818b8a6b4e92a502ba25a5e60cdf44abc8c8d1fe3dc40b991e479112e72529e953f10af9fdb771ddcf2253eab10d63850013da414da3425a6c344ccfacb64a3e8ff9eb65ab5a8bb4f1b5a50d430340a27e1b9123f4ed347d34d114d2a6498dd7bbcb6c01f5cc829c360e860f59b02cf957136dc87c1db7ca4d81213a9fc6dc98269dfae951dfdda989f00a3622a50473f51032540ee0cf3f6f685e4e1c9b83ba64847978fc033889e8ce14b47ad2023ffae16285ba83a0913b09ec9aad79bce61cff469bd268d49a976c0664b24b41408b82d4fac1b56b409e1c8191e032610939cec987fee3cb3aae3eb3cb0c8e722cc4940a1e3957e3d2c2cc4e49809f78f0e0b735ea140dd913d2cb8eaa73b7a542c19be8992420b4932b9d50f01aed09c7d56613729b6ef9cf0ad7c138aab3fa934a2c6855483b8fe81fc3fd17e911510383e11bf6e74409fe4eccfff59989c43ffa626b58a517fbc6132e58744feb912a4a93c32a06d809e22411c1f40ad98f3d7d902778a9af2823f7b11858b094590b957527a38e53e2058120ac91de996afc18b5e31d37149d3c51da80fa32d84d21186027f2bc8a9c74f191eab99b114eabc63f40ca71f383bd9e01c2c622fb1979b583bb2d16603840dd096812cc05d493e9a541491332e59c8f90d55916577bf440ee8e4d61518c011a201441758a9d647b39d479632d2680ba30119bc8875dfc11787760fba78921e68a22e6c74140f425decdd369da1e429b7e0b4017a1bc0b26080066ac7b611c9a5d154019443451965a934c50ea629215dba15b896a7ef27422a7306ee473eedbd75504a06ea77c54a534927d17259d20ad46008658d73958df49cf296f849301bc5dbeae4825d004f6887a4a056f6953ac5c842ee23ac395f84ffd6bd2dbe03a361693c0c9a4813d5cdc836a3046339ba6633367fc65c6d1e93393d665e9602d68dbf2a1c9c2a343b1d9e2bafc6386db8110f0feed0d43c9902a4a5022d8c4d8b828b6aef916f94adaa1c0665031adc0c802c01b2620485521d438116f657295785181e415092739af7a43fc9151166fc8240b75f2efe0ebd063c09dcc2d4bf3c639caeb96c589c13643be88fa580660ca7ef20a6203d96c4687be1b9bcdfcb5d954fcc968d738b2b3fbf81a935b73e85d4cb14379b474f99094ed30c0933249b8f2b52a44d42524686439f5d7ce28b31adc114d4a460034e9ed60d3d3b5b1623ee41b272bb45a7c43c54fa0ac3a476efa4ee2f438484de3cc264a6c7a5f9a83c47cc95cbce862e5bc58ff250782bd383d9a7f94252e33c2c98b6728c2fa3f6cebff45fcb7d01efc7afc150b6f24466337c333e22490c24249a57ad79fb1543e381454229748313a6402365688fdd26f8d02e79e476afa0bd9035242c1f5b56e2dd04fa991cc7ddc1e22c7c230c30e6eefdb922ea00f0b4bc5305b362377038467453bd818be0383fe38f0b17ed2e9662a81be6ee1262cc8206e0c52181d1c7466ea9509f93c360f9d57a08aacff2b41bf421102476fd096962dbcdebcd40426a293ed53afe85b1626087012330305b41cb120d2623998f41257d438c7e081a98afe3822e122457fee60602bf142fe25355f1ec8fb1c07a4076245c227ae43e8e071c72d662c1c846f10501de2e3e2c431e81f6c88e0c8c476ff4b274e08ee7e967ebd90828b2d89edb1596a04a9498e1bc1bf5291ee734d7f3b0345f41471a843eee3137a1ac143fe3abb9f301ef0aba8da7e00ec8fd615042a9fc0981031f87d1434b811330ae5a383b0d3c8421f71621d7eff4d81d61b8d68cbb4e42f77ab2d25b0284e4704a1d60723847779fd0563bac018f6ca16f1aafaf296db07c966a04f31d291eb54de17193b827deaff1f06807928b4f1aeb3e35234cff9d40f2847c20b3ce97cb38c3e03d8cc44d801ecabbce29fb1d6c13a92c956958aa884422e3e6250d7dda7faae9d7e0818a9765ddf3357ca5475a0940ee0255898efeac3a3d414d59a40b56110eae369beafd3339011efd43f9820e803892518c28e3a72eaf7663f44a0f15a1280cbe71111784aa49fbafbbb3b15978283b88341f1e1dce7de6a55bd557cbc9ac1f9eaaa468c7d7a904bfcbcef5712e0c4fd9982638153965f6b27bb2c68b84ec27447258d627a52cf46151fdd597b34b6f0f2a8b7067d43f9860325070f0ffb4660a373d2d631242c105f92224c1750b8256da702f1248c289fca0812582c35b75e1150464f60fe2511d052225202ec10e4d0184a6ee7229865ea29c96397d3983806a264b8a88853163d63fb5c4ea257e51da3059653e363d8fe13372dc985949322b872eda643c8475c9bc14355f4749941d9d5b89ff55685da5a324d83a9b19420974084a8a7c7e091d6ff233e9d8387c797bf65936599c102931b07bd5123e39a63baabc6145fb058d49594b3abb1b872bf4952a9e89e0dfe2cd3a03d04229407693a1ea05d358ce66c29ed7e651040e7288cae9cea58b9a8850df5291199adb98fb0bdc1170187d2fcf07f876763c57f6d3497f30030de2ee1b30de2f60e2f029140e97c37e8fab812fa2185c18d35640d9f55103ecaf0ecf96383109ee39508b6de96cb6080d86d1cc842d37542b3e6b603a042d716307b6718855da201822657421c7878fcda64de4e084db27b054ce7020a9e767d56409c0da5394d7eea3e5c336024a61795c9b90ead04b212f5ded0a5a219b6970c22487180c271f38eeccaff0a7666ef3cdc12225900b7063d99e3ba35f827e9e14284497223fc01fbadb5b62de9468d7423ad9b90901d5e0748071308d9e921cd916da7d7391adbcdf09ed30bff095de429fdb19ece67e82217d11eea80401ded2e1876b4ebae4879b34b0a14e259f8baec8a7c54a9ef3c6edb9c1b84145ac7b2a7c0278fddf54976cdba1e6537574c297c89756d52722d7b89859e579f36040f770e698ec62bf2497acd4e3b270ecd4e6a55ea29d5eae955ea754da97d636047b74db3dbf5cf3ff597a3f4aa68f45647a33a4aa70bc50eed7cc76aa736d36ce369b38772a176da09adcaf6ed3a47035ee7686cdb8c18a439aa76b30bd6a68d3d9aa756b3f9611221ea3befccd74baf1d5e45bbd5d1a087b73a1af32ed85108af9251ec4e071f96f22990850776728a25252da38f137be0cfb7c718b7bb1e69f766edd953e08561df7efb79fd93d82fed9776aa6df1631dceeacd2ef85db70e07173fe33bef5524be133f2f8ac3ea3c9ede3c22e91053e43174d1e3cda0bb7aedf5f47ac47468af371f51710848f0075c30f67a6a73cd126fd825f97c653bf6cfc5be61b13e565b7fd98cdd3d02a16faf7602f5f4d3e3abf578ae3daa235e92cfe32bc9e7d835b95d92cf0dc26192ec2bd73fcfae7f7eddcf8d3dc28ebd7e3b16b15335f494d66cd6eeb9254f54edea08bdde95d0b7bb22f28ad968b3765b220edd2872778a0af15e3fd11c22d78ddc1688e7e9ebcda21b419dd3cee3ec3c7e76a2f6fa59ad5663dd2276edb5134f3b1487f518b51bef76337d0bc495c6186f6e814cb0f2d11c17c65eadf5cde61e784be9a93df609bd76d92832ae4960d479b4da3bf663f30c203c37bb60cfeb8da2cee79dcfe93ff7f3ec9fc79ed259e2cf6558d9269fbb46f9dcd108b860124fbc279e3e66d75977c7ee8af5eb297dd11cd6cd2eb86e36b7448959b6ded1fa7e5dafdbcd2e78bb6673c5daa9cd3d489edd358a8cd3cf49ac6b93cfcd126bda6558d726da41a7be85b0bb527fbd5ff5571022d6a9ddeeb1b907d6deb1f9e1d076faedf49f6317b12bdb8d3dfab87ab3876ce79af5746c638fcda0db12f185d96af3f50fb8e0edd87474020e937c9efd73cc7a4eedc3dbabcd3d70fdc76aa79eeb7a548f3db32bdaaddb3b9b75d5e696d8b179097c91685fa1afd76e490c2a490efaaabd5e2dbb79097cdd3de27987397c5deb96c5d2e61dd8bdb2b908dc0347eabd8bb44726566e924e569185c4618973849de39c734e24290a4e729a260a42385df6084e14359d9abe42c127a6eb13ead15121a695e9f1616a8cb6545f121587fbc2e73c3d040ff75f3b6c033bd4612642082184104218e1fb42d72308616c202d46edf76e3f064c3762078705165858e1a6045f4a35166665d666ddd808015203e475ad5129ab8a13455595949745ad5a2d8f25b244ac023c31afb8e28a3a547098ae670ff0af2c0aaa4bea56777852c2e546f5b6d9057755ddead15237cb69aa0e5fc57bdf449833477b8dc5df0cea93914e54f5de7439bef75ebff7dea10d4b84c1ef5d4929274dc39ccf8a8a6131b07b57fc8951619cea7b5524df7b1a4e8d62d42ce59549275e0e4ecd12378497565408df7332980ebb3805000077d844af129b471842482dfdc4b06317767a451a5492d0e3453ec59c1aa360ed802829f0092fd804bb19277481e76cec5115edefe60694c4a00744197126ef93c5efa077eb392ada016548903502b246de452711bd4b5e55555154f5e4fd0164b31c11d91e7a349dc4d6b099a501b8ff02600160253499ae8d5149e01d34917173c5f0eed8014da6f3802693e8db2719d8ba95055dda1f1a08d141df9450ad0d09d5f548f6a83ac9439664e4a13f2c6249462e72199f9895bfac8c539bddcc0abc84b652513b41307cbd8350891e4d2ff97c588fce5d2de9b1845a1dbe468fa6f7504485c113fae9d3e10905ce2d8de9e521c571c41b0388971dbb4a86dd055f36c75c0486a7999d8d51abdd5115169ce1e7a975c1d0b2e0695b26ac5d043c03c85f36054ec7462c1238421742e4326eec51b53d641deed86a4b6c16914cb76e42d66191ddee0f3d6b40140bb4c9946df4d0287407cca2de092de0629aa8876c66c1a157363f5c894017aff509b35b1dda0b964c7915ecf29abf604a431b7a66dd0af5fa948600b0376b17b1ae93e4c09e5d05cbae4b9283feba8a75334b862e2c1f4c856e76c1f5da1dcdd153038260781956d4d32830fd0814183ef4e9ea19aa9b810213185ec6e77c98a438409f13de054315d4dc03b740bc123abc6e2e917408192227f90e3a44e8f0f2e8d1b4428f9dfeca511ddeccf279540776aae282e73ff8caaeeccab293e4909f5791f3bae0ec92e498cfae329f5d978bbeb239bbf608887c523b01faeb1d786a2debd8a9cd2c98fe511df092c8c36724f2f318a5774d22af3c490eead555a8eaba60794972549757a92e6776330b86a74f81d4e6ec1bbda3413c2c82ddba254f54ecbe734775889cde1591cfbb32729a59964fc62ecb078bdc3872ed1415a29e7ea23946ae2bb92d10cbf8757a33c98da2db0271e8d7231d2234848c9b1f0e1d7e866c5e62528bd9477340ba013c21765447c443e4ecd8e98d3dca2d10876e2e0186bf3e25a6511ca043dbd8511d10c321b01b7b449fdd79f3f51688e97577f4687a63c883c74387f03ba0e5d1a3e91a132a7c763416e8d17408631d7438601d170e05b9c5a676b0cea6d58bd9685d706673050496401e90140179b6873e109b33d6474d3bad37c78ca7f9da3e370dd36c961dfb75698f9825d15e8ffdc25eb1cfeb94b665da5dd93eef8ae7dab1cd2312fa743a9d4e47d334ada3699a93d2c98861d682357db21d3b1c52e339e8d363b1ce318fa5cf3a37d763db8cc1204fc91315fbc7c2213dc28e7dbbd8b5b47b611886619acd945e8325ac5918e639cdb161d9a338b03b35ebb2c012a6840c0b2cc11a9c59602989246694901189ee12b0046f405dc3a881d9cd6622f0e6f974e2a5917a66f39dc7288aa29e4f04760182b3edd33a1c448f68a594524a75a87fa8ebd188c02e29109bc13203bfd72ca3a88ba2a85391d24efd511df55407f6799ac52c6631d36e0e8c9e7acc683627903d7ea2f5511dd425d14e7d9268c75e339108673fceb479e7cd4460ea197d95559b6bbdd95df97cde95ce336a5966e0ec94cdf5b2ccc09f9b51f11945458afaf450b5665446d1d7671eeaf13a45d51ba92c52d4459d09f3d74504d60e298eeb13f45c12128935c6ce6be679d6b1d93d9607d9038e0dc03188f62c881e55acbe56919b657da81e74b1ccb83eaff914a855775d73be1231e3383b8e253896e0cc23c2d9352d7f70fc648fd563359b6537b3b9f3ea749bf33373c988c0916e56cb9d2be767631f88d8334b440e7ab378cde18b65069eb7aed9bc049e974e961938c6872febf0b4574abf5b36bb40915d8010016780ec40dfb1990577a616b7f8c98db1ecd16636febad727c69279747e5947b33ba861f55b7dbd9905531bad0beed8fca11f2dd62887f83cdeea01c91e698fb76693daebd16259768ff679766a2b097dfc768c84bef3cc350a0b26a177bb9905c777ae79ea939a8ee6a8d16258ae177d9da80440af9fb20aa3b6fed1093c4ceb0704f23c63f9e00ce4b93bccde3487e773ecd910da101f2dfbccb42c9b9936b34cd63a65c532ebd566165c3f158b26c866db31db01e511c6288661b571166920fbb008a28c3c7310e5733d3757ed23dacd2c1fec66d9cc6ac5b4bb3ee97ceb6c9d8fd82cb1d6c932bc7dcb2a468fd5aa5d96cf35334a6d490cea279b53e2ccf2c134b37c7ee0c182dd658d528c8c84da23450bf67cc247f8c191dd9cbd5af3d69cefdcf528b31e6d7e3bc8c61e595fc19eddba2531a8d8edb4389714e8b10e57a75d3554af0b4228e91017e82287377fba1eb6f6ec9a7538b36b211000fe800b9ed78ed98c61ac8375e625f17ca5f379cf9def4c78a859ed16e81dcd6a5a76ec115ecb3c87d7483c9fcfac8e75493cf42bd63da7d63db75c8fb4c3f949033da5b35bf244cd2e0b1641d7ee0ae89dbb128236679705c3a08b854222914f3d56af9b1fae30cbe0eccc67d76ec5647663e7664cc3209c1042d8823b5976d927d8337a68b357ebb1f940640cc3ea79f51cbbe77a4eef39bceeb9eb13d04336f6c8f30d7e83a00be7a575344b5a56e76617dcc15a30e639b51267d9476c0ac46cfe7c7a07645956a8f3cde6169cbddafc30a873ec9d6397773e64573a1e8c1e64eb33bb55db78b3f97329cbea7c763ca7f77cda4db3b9a52406353bf66d9eda95ceabc39205abd835ec9a765d8f26bd7909160c5fd33e2c2feb4a98893002bb4f36b75014471c19b94b6037847091f608c13e6d76c1d3f38ce1c37873fd8c7685bef19c9766b30ba657fbbcb988ed9a8eecef51c55e6bf564373ebcd96376027934ed1d0f487a1eb19b45a0cee722210fb63d521df3d7697dbd24d9cd31afeb1e8f5ddf6c9e77d7e7f5fa5cd8a7c753bb6dd74e697dfc75ec9a25a99fd7b27a73cc7bcdebb35dd75df9bcde95ceb5a9d10fd6d13a22d0b16b2221cf310fc8e3999aa59a36b5ebf49a07d3e8bd300d9bd629851487f5097ac630861debdcf3d9b15a531d9f6b16b3d93bd730ac5efbfc3df2bc631f3e441939f4dc358ae72336b689c773d0fd78306db6669d36b53baa6918b68d9c6e3230ec239d53afdbbc2bdaaf4bfbf539b59e7f6c0e8f3bc59ecd6f363b666be36a73675acde6eb7352db23c7a418f60cd3329b97c83123c66edf65adc750778470fd7ac86d968847d68ff66a3508674f13864d18364da03b9a599f32d041d324e7b64dad5a4dfbdc95ebef61374542f39d4f8f8dd5d180d3344dd33461d627ad7a28ad16f5fcf38f471e5e45deeca6e99202433637ee4b24a7b64e12e910a2ecb98cc39b47eee810d6e176eddbb36f76ca3ee1d4bea96c4fe9cce60fcee4896b9279817863607ab7c3679d4ea7a372fd532bad577534b64fb73a1a70fbb4d9e98e4ac0f3393d7b9c2e9a0edaece7736d3afc4532bd9325ce15639764bad33bbf8ecd699aa6699aae52271295d045b6cdf5684b6252026bd374157a27174c837878fa663f1efacf2d79a24e91eaf07cba2b9ecfbb02fa748c5e960ff6dce8a65f12d1e1a769b20ead4fa23b7d9a93364d6b3a9c1487fc344ded663851d813d49850a7b77c525e50f4ecc1f01dc700ec19a00fabe72387c75e9d0fa0c3cf3bd7b17f2c0671f6d9944e0a27cf69762d7be88e4278157a8f78636050060f33f8ce5d30f614086d63ec631fc61e03e03b57dc39b41d6780cee1476cc7833b1761b83b9f210bb2f4734218a498869a316a8a4a066981a1869a3f9d8646434fd16868347411a8276b1589fed1a8860d2723b32f2a14d20e70303a2138c5f9406905fac62341931c889241941ef005a2d44b59ab48f453fb64a049fc2b4194478226f17fa557b2e4504bd6192a456a29bc16e27cd8c2f9202ff2a27a01472ce07827312ea6b40fa7343e8333896f83c4a92a6827626084518467635d849add14606fe10c103f9fbc04e2b9a066d7057e8754e5e1ccf68d9b9da1c237cd3b83434981266dc01107c737068ead021cdb091ce363cc5e707cb50e9a68d64763378fb4cf9b7f5955de8ec88a7a26e0a8b59020385e074d72e7e0f8fcb868218e467c46860adfb985e0f81e50ca5a45a2c7ea467aa992d559154d684229078565155d459d34aaea02877b4583ddbb8a2aa59433bb819b9165c80ca1e6ab86547dc090a0c9cbcc510696e01718da68d96190884d55778c56c430f3bd673dc3201475ead3bd1722c9cf890921bca7e037b0f982fb57ce7583fb14185a76d55c35211921db9056407fb25ba9aba89675cdeb7a39f88981dfe9cb212a4232d0e47db2ef6a3099cd6aa0c94b7663a35d5bcdab5b4d377dd634599fac8aaa2a1957455531465851f1ba280e2a5655880adc9fa11fd80ffc1ccc4251fca26e705f8ec001f7e9480eee6b325e60906b489bf455d3851ab317290a9316d653548bc6bbd5f4a8bf0de9515715162c15cd56da6a64ec407ab1d5c8d8012529193b703eb8ecfd67b1aea2ba2ba83b081fad807523bbd94818356f2119cb7e8144c45353f2f35ef9702e4709ceb2c01c0a4f568afaded562a4cdbaf00183fb54b3998df652b31cdc27e1900c75339a1ec900c355d327d5fbd790ab14928128f55948c6ba516f46331246cd578d109c455885415b61ca6e325b1476fb014dfa990582fb903483fb1b4dce8f8c264846d3232930e7e2dde9dd48326aea55138aa24dfa94e2883724936119c5118aa247ad840f7984fa9e029fad3e591678132285647ab4d5381a65a839a3c1fd1c92c1fdacd42779abc14dd34556930de993cc026dfa5b8df3c13d47e39db297cdc1f9aac1fd49a9cc9c0c19d90438c17c2fb66c08a173ceb9c7474deeb98972eddcab925f24fa4889cd747c99311afd2522e79c8b437d3763b5a78892cef4141f4df4a12a0fd7ce467178364fa77ab48c62f3b264e5f1783c23d9088c3683fbf3e62312d58a49f93059678c467fc9eb9e1c8430c669ba739733d5b154534f51df7b8b9ee853e37443c19bea3998d9c838547733fca23461100cfc4e51d06647093ff770c0cf6a4e54f5f084585351df21cd5161528c8932d83d432ba2aceecf52b87a6909537de09e8ea769d2cc992904f7211715900a488fa09db00cce954da9264608cd17d804322104f814fc4645c235b86f55328d52018126fd998af443c3412ba04f594da6728fc2898a1746d987651c2a12514e578b9918ee29ea8ce9e760e603778ece393739e726779be184024f17f4a8126253aa10da872b1f37f81de6c4bcc8c09070471f3f62de8750d592b10f83d1a3ce6e706736382b4d174c51b37474c2c8caba1b568599c048443c611c34893e220cce52e21923ac2a6aa226f80962948439756a18b4107f81f3c70adca7341cf4a829ea93cd150d9e2eb1a8d329cb52d168323d6a2d46a381a3d19762a859d362705f03d22759a3016e1215da8f3eb1a24f324b45d3d768e07c70d5d2e01c5f2a20b8274cb40f43395511f6a3aa2c7f006b3353db32d0d05051d327f9c5e0f7dc34b88b3e795198e91b8d009c7b087eafc116bb192dacc05a44810780dd4c1662c03919d2d068214617a53e71335160e20bfc4e839f7b54d40c67de7de0f70c856451d65179426e99706e9bfe74c57b53d1277db1a6384e5033cb07df921ebd477226ef3f2010fc9e5f0e7c2f3f2960687cd4c4e05792c14f0a47e35d86a1e6270596c2f9e0ac14d3e3f487834699fefe62fac475176df2ecc32fc6dda68150a8c7b9695e0005ceb0e4eedc5061200af40167204a9c8126ef9006bf77d3e00c69220d35c694c2ec010956200339b0e0046ba0c3180e808499f8442720030f6cd082171f3649a8e1051dac27ccc42702c116576c81083070c10dc230c018302035623793c517b2e08248165b783ec882067a31af176b0730a05e60e960240e560ebea00d61828c2be40aaabbab6e6a3c09e314a1944f260b326c918439855ab19bd922084bd8e2099c8f15610bac0a216f50821033e05c7f0c8b3014e205862f10c39938c5197df2847061627827856c212448bcc2ec27aa9bf3c554f73ec5bb7204f5fcac3b14c82be17243deb223904750cfd5fc7c4a4b29df84cb0d799bb83e6f9577e0e9927ff60829e45d817c139625e52dd78474f24d58b74213f726e4154113778a3a092bfc3b8c75988de77b389a3062ba19ee511435dd4d8e87e37eec2a4c3763eac7c7f75d89cf46d94e8bdaf753d538320089b7685ad4c6f1ae6d08243e02dee105bfb73c24de495c901b4c5dd42794e8415e30f519352ca6ee8660eab151de0d4a657abca5822aff1ea64eddc4f9709d3a0de78375eacf3c1cb104352deb1c8d77c49b59cd703fc37d01e0f902f000e07e0070ff0178760a9e109b7645be7f5912eb0ae100dc47c2e5c501b8ef00dc77c1029300d1b83a49751d8ef8e15394162eabdbfd39e79cbbefd725f55c3be7dab917e38b2fbe185d7c5fd654c947e38d955de9962a5b84117603fd6ea62da6bb99dc7c5694c1d5bfa675b8c7d5a34f1cbe5afa84fec22e7ae507832fe75cbc2cb50f0e96f5eacfb6483c59af5fe718af78c52bc668d923e0df0d1435bbd24d8f24aa127e5f3c1b0cdfd2a307839a5d09c317b10123ae2ba69b31827a1af1f026cb7ed9fcf0551f0f8774de95931082e303296d9dc00ed5d1889dec0179175f1212c31be1c006315430b1cec406319068820d32870d7580f1b1417aec5087177bf45cd3e0067705467553ddbcaaf41a96f4a82f12f5a861903867764c20d0a4ff458fbab2c15dd94caa9233c6449900e046113decdc9f8c87125fdec51d5f20cab48112675a188c9dc5e7524d8a636a9a43e2492621b59937f4141a4d559aa46ada5468d2578a0b66629d894e9b4c6e5105f105050ea5a28126b105b8732a1a88228234a269035128e7037c47d1b4a1aee80ef53d8bbc503714aa4626da24be7ca166d1439960b449bf21505d5315eb296a678360b8aa54e1b098a0e9aa54956c445569f38064a82ad14c1b3bd894a64d8f2018f53d4f9b4aca9b8f126625ad4bdaec6672de0f9b96a9813ea84a5a55966e26e7fdb069999a385195a464cefbf16c5a264e5435553339ef87cd44c576ae73de8f38c1692627763bd7d91cea3b6ce77aba76ae9dac3217eb5932c0c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1811fc26c51c3289d7b3c986e468633efbd9218b80f733ac2866926a2cd173dea5782f09182e0fe34d31417920a2b5a16ec675956f64814251f8cd5724191a3f2704b8fbac775651b5de03e46d3b401d99006f4a86d68487444bd3deba12acf7ea8cac311144120d80f04b23267c3dd905e690b75821c94179609e0b26bbad4363739f0053b08432291482412a9478d9b91cd4ba21a086d88600c948124f80302813315354568c3860d1b369e1bc16686d5ed53c94852fd2102f29991901a4d63432291482412a9870d08a18d2eb5cd4d0e7ca1a6d8366cd8b0d1d9b00f161251cfe62627262626262626864422914824528f9b9b9b26f58f06d2332da469a64822914824d2eb7173e36edc4d48041b21997e4820754624e48fa626a6542abd12e926e7a561da47c74448229148241249060900b0f7121313131313135382267d59ab48f48f1e9037f3843c9a575372871d1313131313f35ea9547aa5577a00080056e36664f392a8a6d2744c4c8c7ca930221f8f19c9d478a4474343434343f3181953c55031534c8c813102c07a0bf5180d34693aadca39d734f46689dd5caf9b453f75f3e8360deecb4f0b6170c34093be3084c9e46059d0ba0167e8bb801532aec69a2679cbb22c6949392d29af4f89a3e1e1c4c606d2ca408deef9a8c1dd857642073e9cb09c703e38ac4772861bc9db802846e43ae51f0f3cfd09017175232076e79d81251178ba1bc94a092aa52105eae7614f5681fa38ca55eace1ee128e76217ae01a32042e008a23c191969034a94b661c3b174ff5123622a8bcda481fa6420cafbd13f7ac62ed4fc7ebc21381a7d98839a9dcd1b82112c3dde109c0f9f1e55961ef56dc88e198d6e03b70d1b6398a9bc70c1620c36e820063746f8810b16f011a3bb780e0353d4600b35b0c20e3062d800021ba8680315c2e006983050701ee1d8830d1846a7f4a8e4c4e1d8047402bbf81fdc6d4094286f00e165065eccc8c0093f6ee47a82b308c738f2c4c71aa5761d1d03ae1360d859d032f818ddd45c8c340887b385e17d428c31ba6e97d2b1b250005d9d284bba07db657a2d03e9de7befca1e3d12e067a57bd334cd3ce11602ac917dab1b411378841240487c441238ca3064c55da194b5ce681fb077f4a8bb9bda010f6f811e35743b9ce5e1681c8f3e71b79dabcec3eeb0408f1ade023c22dcc10352d7c6ad011b4208e18e3eb1008f86875d5ac394779512eff36ca6fedecd553e5b97e2ba753db24edd0908e76850d6bbced1682cad2b05cc6ff46567b4097cbd42adae74d731a1becf80328851b8f80343dcb2472268027d402113458f60757728ab3b94ee49f9de8d3391b64aac4750ba57f89c8ba418137d44992cc230caf89021f5498e38c051f449ae110711077de20e6fe04dfc51e34e5082a3b4b54731be9750df9de4c09ba25651dd8df7de7bcfb22ccbfabbaecbb2ae9badebbdeb5dd67b104208231de24bc988871aa3d18807672f0a521facd1e683a736a3c6b539d45ca3460f8df2b9019d1d19a1bebb4b08e14c69ceb08016aacbd2f2d88145cdae5404745df8986f5849f5bdef7b81f0c1f7021fccfbfd867f30efe53121fbbd3c18c82388941d3d827f344c1851c44d097e2f0fe631d127d9e5949e0b307c09c5c567d4e821c61863a4ba638c718a31c6d7a843bafbcdccc4c73b17ad30d680020a0a900b55bac6a23674b5b6a046c1052d1a67a705108f011f314a9f51a307299d8dd16bf48866479017e487ad0c15c21a6e0886d083dd4c144a16764e00630b788a429ac82428c08a19f9bac1d3675751bb6fb8b76d5883736debdc08dec94fd3a18d08a254ef6562741c8df72d7700f7a71b3338573ff0f4a614b06e54b7224193e9cd859ae5d4599d8e790053206a4ba051eacdf41238e0a97f7cc4c09308d7c053166e70026717044f5316375ce0cc039e5e3f8a432588155408edbae98e4728e9a1bbbba3c063e8110f1d9fbbbb29ea517fd457de5b4af99e7cafbb71778d1e413b4a3141ed4308a1e3a2876a8594345e78a31f7a0473f577577d7a7ed55ff595f728fbe45d47ddb2aacb7debb3ada4420800bf5bafad2c5f7583b0512305ceb4bc213c7a04ffee8e1e79b0a8373d4a49d0b4f40914030e3b60adfd3271a185a440937e02b07b89f3c1e1f7defb88871ef5a39e42d92082e813ca518e72d299f4a9cfc90661537ed0a21ebb2e02bfa7fc10044c09e2d6e8517f2b43cd23dc3dfcd027d9cde41eb8e8a18719213ec0108317d3cd10b9424d02a2d4ed0ece3b48efa07607fb29d63d9793e8ae6eb75331e8f5e66b379fde2cc2ee741de83a68d2378f707617e573b303034fd7e32dcbb2a25559f7dc7b0f56ae7ad57b417bac832613622470342611380388c031a04d801f7651e0e9970c9e6ee1004f8731934bc2d1989e9981ba68703fb296019b4ca8d4eb178a931c550c910c000000008315002028140c0845e3d13c0d44710f14001083aa4668481acaa320c9611452c81863082000400000000044004405009d0b287c5b387ecc55b5e4329ae508d11d57a1151ff5676ce1a779492bb3735505962154289cb3d228a43ea5145de09140a7db15700cfd98bdfad9ae5accc1a932a977ee54642e609a2600d6cd97915226f166a1676c5d700ff558e9f2074b372a2c018babee2361aedfb22f29d6ad2bcd205c599f1a32ea0c7dc7c95a7b8f45415cb859b26fe93582057fd299ecffa9c21b5c50290b31b6b4f8b6c71ae18b19809df68f559418940128cc2da712161ad1ff73e94d40c90570210c69f519110ba3ef53da936f3b0c873a81ea9440a459632e5d389b620f60662826a5c6b13fa0a9471451016e4ca5155dd1e6c0deb9f43caf912c1f9954bd43c2e53885ed06eb4979f94cff4f2c0d3365583df99138aed11fb9f3794837e1e689f1506b2d1f42b4a3973a5bb4f6042576b346fc82d0f96ee724bba0ee2fbb22dca407524c926af98efe0540baf965e399e37fd2ec03d7c61991c38b1dafabb7f8ceaec81c865e7d5bd09e4a398830e9c887262efbae68ff9cb769fd3ca42e2754e905c07f2c93df7c46b0638e7977375efc3891447a94c232f60b26fff9414982417f28db4535ff437e675562446d8a5e6754b6250556a4be514746da73772a8b46106722a54858122616fc87edf1667d7f6595b3a9570eae384abd26905983279f31d7fdd95af7bdfad52f882d3ed86a9d2d840ea8809b25b4fa4dd4d3f137827b5e3835076136cca0fd4a1748a6ad902cf574ceba664d43f2aa40f8d43d0e90c8aac6695b0214e1ca8c860d9a72923ed556c2b8e07c4597b6d0248787d250ed18165ec569a55db1dba53e6298d4a988828f01103d771ffa87d8d52621c92690eb1e00f4db3e3835c797c4036e2041c2e18792740ade815a4d68e89fcaad0738850e9591b829929fb20a103d39f182fc98d9e2e7081dd3e6625547d4a1bb856cbbd4c51b342c74afd7f441f51a77705bd1e633dd611439bde69fe55873c7a062fc6ad81274339f303220946d30fd31c1fb1c0b7c90770b48713de10d7213d5a32e497e19b93f354d3930357d89685c6b660d3dbc51827e30394b4b4fd461475347ae136d087d8290c1583f825146acd96e80faa65bea4a8ead7813fe8573c5006858f3f2092fd35713fc587e1e2d1086148cc1f00c9b3a48a70a2a2e3b00f35d7dc9052df115827d885df7ce012f44172cf11dcdaa2d5ad1597c80b61bc501aa0ba7cc761543ebf26ae97aba68c1e36f2faa392b87426a9f4e7ff665ae4b3c683caf28342aafaf2672bee2c31a7d1f308f577e4a27bc16f22698b0eb92ce1d593fdc94f5acceab07b104eafe0e8ae0cdf80d814b178d905e2efafdf298957d102ee15da78b9056a77e104dd01ba08e67f44ee8d2494fa82b8a7e87e308dee9ba09d289f53ec278e35b826e617aaced455ce98cd17e33ea863afa5eb1b689d5a74fff285ea32261d8aaadb8987d00c8403b465b6a4ba14e6ce0885ae6185b277213d68b669105b721aadc96d35f0d7c788c39b5d2dd363e3d70c9ec00ba4cd691e080c1099fcf42189b751966d9abea9b68316bfac8bc78829b0916afe630821c53e057e251b42e04b8f9dd851f4790e3270d68b61e5aa60fb1807388c22ff2b197867ac3f8bbc02df8e2aefde17341ab865ff2d0dcaabc6de97a2772fc79c41975e6ded2d05e8c17fadbc05486525e2f2051d6c2e051cdc7bcdefe551409179bf67c547b64fcae6fe75a226568d085229b3e8fd5ac2c22314787660a325882d8b2cd027cadee9915123a987451e0e13e024934f4918dcf60f058d286839ee3fa5632d9fc9a5041d28b25eda1835d472c30addf43d190fa8a7f8e3a2b142c8afc8e34cbabb9a55f8d188e0e1ca4975566599535427f62db94a7ee90889de2d1d50c919046f1e788e3b120c1eebc145d7a6611132adb41f41da94328210b8b65f61de336b4d31f2c0278bc7bbc5c39e847ef781d1eb4478f47867c996f7955cc1b960f598c616a1d8d6308dfeaba0883d6c67f7a1b7407e82002e6940074ae803a9db7e22e1073a65e628815b5295c74ae7acbbfb05160ddfb81c2b7032b5f0e94be31f0030eaccfb968d0756f45e6d404c0858d942dab7b02c0556071a0a6752ae47d33b4396c923a4808df63c9e260e428d5e6d7afa1f841085276ed84cf7088f398b554cc59fdfefe705de2485f369964a701d784605412b812bfbfe391f43a2ca5ae1e21c009945a2ca60e58b2ccbee2ead5c43d1a54312c76b7d74a23009d9e4cd419a07f946aa933d823a118baf7c03efc3ba2cd745c0ce6b03beb13515ace3cea93bed53b18aecff1c73ec5a5bd438446eb6a6bcf165008bdf338c7d6d90b5f786e0d4ac5d84ad145caba6a91755c470c5a0f57e993ee36df0a75cb4cac5ffcbb2e15bf1cb9e6aa9f1d032485b391e196c49d661932ca2a8aac5e61e496fab1db5bb1afccb914850f09a61bb2c43a2bacb266d3d592e3306a9c8992c93897f08a6008bfb40b42d4adb33061fe4085f7b32509dfe074ba72ebb2d15b80977eb799a187561e340f975a599bc90c119916181830cc2354a98cd428e0fde1096b32f9db865daaf0d7186b680d9c0bace6b3da1000a2460d4d45e07f33f6b96c41dc48afe8d8a7fb2eeadb06b32972cb0658aafae96b92486db194f440fae3feb1b8da3c15737ab33a99c81facbd88e6902f8ef2ad2e6042bbd4d92c14415cd46ad1c04334126ea27a788a5ec52bdc8dbfee16d481c94b5d8ad07f5c41c1fe22c835cb4159c022c964810e3aa098265bb4a6c4801989dd57939ba937a738cf2198c0230af190c1b4a26bc54ab89f2068a01b1a432142beb142b8a739ad720147f551b3ce21c88a0ade7006d1270fcddd138527019a57a78422fb16d0f15bd91948c53885cad424513434694ad3261aaf2ec7d9e26e19c57fbc5b7179900f691da4a1be3fd3de33bf9470d6aa08f89d17fa252eaa50f10fec2aebf1603c168120fc1daf9cd156628fd0918215eb14fa9c1196a6b333e66a2d6393a46a446bfc123d13c66bb9d97863203be90a6a651dbb38ef2a49e71334e4dc7bd28e71338cdd823058cc2765fe004df72d5cd87430291d1b716d1e6d6c5a785d60d7bce3f78906ae855418c0fd74b59043acd28dceed54f1fe85471ccf7e645f616c5087724154f6b0b38a3f3c7480c6c688347eb2928a19ed3c0a648b85c1e2927ee875a112cabcd82b787cb39094b59627643b6cf5084547e85f2d6c8ee9199a4d8c9ec0e5084efac417e3bb76124c3247e52d694f0833a7b8218c537f13ba3da7d9b17d73af0f479e22d1c4b34ae52f7feca0ff4cbfcce4abbce671e3c5a3ab4d2965e00e83a285ca038de9fad76a22b08002107f309ce25eca56b0bc9e8723a3b01831f4c944cd4c8d5f50e69685bef1e844e57a8a1d3b23de79e122611bbbd274f4964bd9b8f3b42675ba39cdf76f185c2018df3db51e9aaa790f4d4a67ac6146e2e1c3d2c9a22dca6ad12e9f9a2ceba85b6a0bffa0afdb9f82800e8a7d60fa98257254c3128a3bac56523ff1c8adccba3cc18ec23bdc86d4c113fda9267485d724bf05a9312e32d79534255131d85003f45d07108415070b3a244bbd04bb32950751271478a09fd5dde3d21b644cca7faf41274488661d8f01284ea2fc1b904783d73d01c2a07d8de85d69e19ab6c5fd4d416f37d56251d81fa43589eb03cde471f6348ed382f3ce115550f32f63eec94ed9d9891b387072ca48f418869b1a8e352bf9fd9a20fae5570d8a764e9486791f4abe73566e17125ef60e085db1e854aee61126867e8dae34e64d3f8fca9f1c01ead944a5df213c7151697a7f73a1bdcf416cf699e204fa37640d417d61f0209a0f55a53bad478b712665760af18e16a3b73abd7aaee1ef2097970718f41234d500c4ad3661871fcacbd9ce90f916061906bf1e56434b40826e744d43b81eb320f544157d99a17c35d85360b28417b643e7009a9b673e3ff14504bb45a8da3128d92b78d8cf7e29c9449dd7c1df3447fcf234b055a457d91639cee2dc563b3398a3b96d879f1c9fb44fe68926227ad48ea4fe9d9f070bb3649189e3672144b43ccf0aafb65e7e5160f852a30a2efd85359ed605c7b3b5740c91b582d4be8f0ce4c5410d798b7c0ea44a0546917965882c9aac272c138f95cd3c22928106b03a51bdecf12aa35daa2242ebf459aa5505014252b73ddf0e1dac07f8252be17451f0ae3c32a07c2df3cfaf824cea22c861cd8aa1801fa9b588afcc598e66996146a5718189666da602e3d1e8ebed6627a72bbffe35c64590ef79cb9c9447af002c10ca5f0546aa1e537fcfbcf6df4c852b71d63427eada4d2b29d3346645cb381ee4345f45c3dd5712374f0ad8767a05d5f276343ffedf4300e62519b2eb9fb373094c6ddaa4047a5281c43be1772a443d815fc89e8afcb719b8b5255a6cb05fd3dd5c2e0d601705f1e7e9dc714cb02c7b25c6532c8de79db37f962ed400b49c0a5aae0f19c3ed700006be130912daeabff7284da1f8b282c20bc0b515c5a5f722150cd07cb872739224e5b60f1f305de34fa04040fddd9c65c0efd5409ffca387c6692eba8936d0ded2909c7129c0991a1238768097a83885750c1cabc7a32b12aaa36d4f48548333ab8eb93fed0df3269d0c4a07cacafe088cc1d40e80f2dcf752efcd35da2d62689f9a4d227d83b7819fe0fb19f5d92ad586683f168b8b1d734acd1f9083b1083c5af9e109819407589e7804ca280e1ad5e0f12a70dc5b5aef283aed2d45b159ff91eff2ba4889ae3a69717a759f331f205e250219fc96d1f657abe1e19ad81978ab805813ff69dc61ee4325c7ef32995314da896afcbece69fffbba7f8a9f8aa278b135651988821b5dd68674343f4451ba1f3e9539479cd420b13990fc335dd1c39b45a7fb2fa06d0c6f9e82b7742ddc10ba88a27f8e42134a9ab28f1b58429f7fa513c7502eb0cabba701d7b263fc22858fe570bf4705167492d7e96c516643a69600539ceb13d55d90dbf3ad0993c41fe5254d0a8cb5e54d57e933541f302d6a169f0582bf989828e874810173de8a4608e8bab4c3336ffc8a0729b4c229bb3dc13939d1d7aaae1fbd80b7d24750e6575bc1b4e9cf305e84e26a2c82be51df577b3d9aa97b4f1a8504cec0f6becc3039a844d02797e30de1d77e2b237b34289784fc06027008924f57974e640250214be420ddaa5e01ff53d64b14f87fb7b9c8e66742a2a884057d04e919fd057beb9a02df0d85cbfbb6bb2b03ac357be826ce01604b637210eaf45555dd1284569ab491d7118bff85317a2dab04ba07d33a4d03d5bedd270212209836fcb812bc76ed623e1864766933763bc3b52568d4953e9b71d11d563b17e2eb00f4c52d15f8f8b9b9da9689b3213e5c78b54fa739696e5205e5b726028032e6ad705385aac24485fb41370164dc138e9618ff014e968aea34e48c4e66677de469d932596ceea313a32083b588b0f547d90d77effef2337da50faae845b31cec22aaf42b83dcfedb6ef161a5a9c7a654db165fee73f034ed34027c14fed2b142ef4ef9f8d62d859f8f3adb33d10217ab3ab80d97a83dbc029a98e68910ad863dbb9531e8f71fe9cf7f2d963e450cd54f0208b288521ed38e018a7696599161e1d5adbcd441e803218c80bd4891781fc86d23841e706e8548480d7246080f171596a3225102e54fc0df8ba6bae40832ce84cc85c0969c7609450d7cdf4ba2f879041e2f2068f60a182fbd0ebbe789299bacd96e0147404040fd01405912e5ef03faa173388764ca7dc18e71ab3a67670416e2a1c95d7e5c95d521244a2d9200e297b9df74d0161db03a7599cd0471abde5dc2d5010b58cc398679e6b744ada42d9f35a44bd3371552b2f1882e1062bdba56fb78781fc63a7df6b8b54e62301f1f39dc480a8194d63a79322688ea8dfe8cf20f4d9ac309d38d1eb96e0bbe6e42c944b81caddc73f27575b5bfd903cd7f97af8194351bfa20a34b8c57785a7fcdc466d8c2cbe91e79b63b701b8f9230c8048e10f415f0d5d1a11b8d623d069dba202e80ac91f8b38df6f6d111b4a4c4ef42674511e8200e12819250bbc9823c238909ba4a5eb904d3cc292024a0683b05ff6cda69214a45d94362d8be137c20325a734ee1cbe23009ee53f81cb33b06b3cb75dcf54484b09b485773ecbcda9737805730da9a96c7af047c8b39f090f0f0895c40122c9c44a51a884d496c311fa78db2eefa1dd3f20c49f1e96577feb03a721a766b5c937e9177405ce398ff1684d16d81c1ac6103fbf674ba7e300c9058d895379556ca3410010f82a2f1d3aad8c8a7030eb8f0b476e6cb30ef233b95e930ca4cc91433eb4fb1e2194e27ad43435ddb434c53798f6435aac754c6045d5e475633435d02b1d768014cb68c0c3b814dd9eb2f60a3e9ed561999284a869c602d6c7a165e2925aed38d5301f9d0f998682b8521ea2b0805511beab9bc3f1605dd542a3085572741651844482919259ff97384b7aebc6c31319f0e625e484451ff98d761b88c71eb882eaf7ebd4e82d76745bbb5f325ee4e14cb32da1b8ee6fe8e2dc6527aa4646fc474dae2c5ced6db52935fbdf4be575eac7ea2d84613eba9bc85f112306a9305f2eb26306f8fae28896eda385dd6b70be475e0032e8da480d3747848cb28f8031a8e84553832a7a3907876af9e19738926c0f00f1531ec3cef9d6fcd75c230161e8c82aa165456bae1e465e4c6d4e24d2e088dba5bda70c9dc8410250d90b5ecf62cbfa5e304283a2dd3e64dc50d407b47c936c8f60e7656b5d3bd34ebd93215775fc3ed2a9fb6567c2b9368c6a11119ca0e129be8c5afaf3a6fd82e59d8bce1c4a754a1e7b71d0461bab11d7953913fef161b92dfcd6b6853217c846fca97dbd9fa9805d22a14bbb9024e5fd15daf5680b4b2ea4be455ee505a3fd0feb6b35b27620c0fa502306c729f141b0076e37bb5b65e40f3b547af489e600834bb924437b88099a8d03e55fc2d892098b8f003c3a9f9e08a4ffeb1d755557a0baeb23043277d684190823751e9d6a710989c775c1634c8528bace9190f3defa5e062bab2e2bd1c32bb2128ae437074ed9c9b2bef9761c2964ed2ab2fa41e540b3fdbe3862c4004275006b400952d27043ad270cbb291a291ab6d072317a079571b44a6f4e650616610141be16dd2a3ade66151abad59568b01ac8293b39f30c0d157e60c8712ea29e6c14a5988df7c090986dd536ef86373be9b8d86f824886bd86adae775e3f56d8222bfdc32b81270ce7dbbad0a07c686854f3528bcf70b2e5a8b73444b0b5c235b8b52ed80543dd551b6fec82ff8835bac25f4936c598ae7fbb2a95061a5abca8c6140b936fdbf4fb02b231f0dec15e5dfc4c7495c0177d00ab8c6f6b4dc9c06319814dedc54a56a54ed928b2afba0eb27a31746a36a4244749380108d8f7e79adc69429f44b609ec90ec7d03c225da789b2138f128a7b8b283aaeaf70a8613b2588b1aa309408e8a7c051623413b4783219e0de793657e9084b918cb36c4b277b08dd6835e810dbf45755baf0b3a084913d0891b27f931d8f51ef58cf644ec585a87c2f8b35e5c061bcc366d903814fb44b72382ab080244b3fb4952c6889c926366051ba4523dd4f4090d436eeb011b2e1a1560f10799431615e34666403ba11735e031ed5b231f92d7750aef395916f3b32c2376df40d654a46a5852df1d4a20604230eee981651dd3864ea1f41a2b28be8459cb5b7d0752d6718282d6b3554fffe6f85a6483a9a296a8646e4528ed55ce65494e9b981003821021fec68c8a18e64bd542b8f96f90000d28f2e0939ccad1a4f08ac738c598da05903ae4490d87f62a7f48acd2336799b2b086c02bea677e979f0d5065956ef044f491db1e754770d142fa7b68b6d7b0bab8d47d65da27635eff022738973565792544089c096c43acb7173451a4194899828e6822ba8d6c0136c24746d035165c58ac70b679dd79108ea420a448c1e74aee2248a8e40e67435e692956da5ca59bcf0f7b8b920dbfc1547f2212d6bcb5f057bab67a7b725dfcfb01315c1975f41be545393c70fcb619488b5cab06823c4df906960845224d57a5561c3aeebf057807522434c24ae41bab2d2f231ef4b479dec0107ebeee958a3f35f10bc2ed7322a321c99164bded56e9a607c8ed431028d46fec95c69d7fbe4b122d4bcc730f9dd8bffeb94dc337e7308a692ab23d7c6eb9b73b5a4239c5233b13a22fe328048f7860f6a7f1ab152c3b707a040afbca21f043744dcc10d1fe29bd594b412fd545b8d2c8fc8556ca540ae25e80e6439ec912a92239c833408166b33abd61adf17456915f2b82b72c714c7ab0d81d91f569a03416cb69c76082d44b09d4f3be1493b7831672582bc44ce4b85cb183694544f5661ea16c6a68c81159d3e88acc45b1aaa4a04c5e85e54896051171ab004f4aa159896d297ff903a9cf03a69459a4a048a107f53889df6edce150a33a0100e4d08814325fd0ab21251ebbe725dcfef4377ed3be752c6d1396419b1688c3a6714494c059e1ac79f74ff79bfeb20e75173227980a93862f3b3d1493c86a770b96afd17522a5182154150308b5edb5779d453472c5341b24de61453004c7506344e3634bc48d557d1c96101f3d15b526ce1875a0445b84ddeb74cf7897c882a3eb6357c328d95b0a4f422d0e1a86957434424bd86944026f0a090a281147d6ea6155ab05a1840d836b49687135a92228fdc9a7dc48df50505edd0a85c141178e3eb08f81fecdba02bbd3d07c3ae10cc7aebaabe58bbd766c1108c48df7f74ec4a5ede556b9694ab779def801b03db5859427d4eeedd479d8d033f10befaf3bbc5cdd457c9f79209cf8a62ece3af58478340f7be038a3b8187ce17c86461efb12cbddf4bca47f709cf9b04933fb573f34ee6fd5ba9972949c4335e8316d2dca95c60d7a627300643a786197f760c48b51c6de36cf7aac940524d945861102855f8197e0ab452cb702e60af1267332f6af0dd8115c7c1b1b31d58f412383e04ad1abc69151e2f8ef2e570f96ad8c4cd18e4c82d0601b4ff6f065ad545b161f91c7b52b26774314462edc04de7d1e182f93dad30b3cfb5705c372bf53b7c296bec3b60a62351d53bda06605ad236aae139d654d32daed08be69c22c8a2d7702b703bf9c6833e8bb3da9b9c13b5d8f8150cdc9031b3a923c781ee6f74460c56513530f63a11beff2981804ffacdd7f88b30dd209c70c026d11c043141478db4ac2daea8489c22b64c21ae8cc06fc8edde359660a030d34e9d80d61bc025c2726af078c7a0d7ff6fed1b704691c96a08e4c0058b61a95975e204668c31a1133d910db9fbde5c42ad39f47fd7977b0a355a762f1e354e6f3e8b8baeb17381fa54b454ccf58973db93cde793a7297071e8d5b066acb7d35840799a7d9c48dd5e2f507db8a0a8105aa395965944332a366b1c862098aae5d2ed077812fbb655371abfa9e7ca7e9be5dcd7a1cad88158e11421e48e3cf636f98da8e6150470eeb05ce58c423baaa36ab4fe9bbbfe8cf9212305bd8ae8522c40fa0dce6ccc0f603689e820f9692fcb2515b0628fbc060867c8a1d630176745485bcee1f7c2b2890e5edb4075a9062b61ae86c61c849c2f2c8eb819d92a74b725e196221526faf73d0f3392a73a2f08b3bae04c987240eb875fdb8f9fa6452924af4deba6e2d5b4e1d9f48e6e269b3bbb3a51b52138758b42e054ff64d2ed2fc46814037acfa602517abd3b0d4f1e13b8932cc2a8e00d2fcd28a355f09a68ab61c081593b6e08c57b6026aac05179e430b346434206d76f652a174b3b58ff841ecc0ab456d36fa14d5b7537a240c4c892bdffbe0de769ee893d4d40fce063bcc07939c6cf03c4ae866aec22e42009011d35e4204c2cd48a1f9881226bb60a97117ed80915040adfe5be08138bb333d595fd87f242848fee3ff646eadfd3901f3bc793d939b82a2eecaeba584c9d3578d08c2b74f64375468fccaf7fea811097a06b49cf8009d979e676573d2b3a2aaabf8ad4e2a388bf997e1f69f01eee7e25da31a857621f435abf6445e99112a65ff1223c53af75bc946748e1269b460bc6b524a42ccc459af93f1b3939201b67405b67562877bdae3d2015397ecd9619aac2e2797a3981a3b47e385f416420b63dc19b0ed711d1ce4955be4868a1a2de7f520d2e9c43889e8e007ded5c4686cef4b05641848f86cb0a7a7fba932991d31bfe9543405d621a6d9912951290f581680bf5bc55e248b011aa53271e80c0babb2decaaa5ad942aa1a58cb34501f74cec9106e24e85f215022aaf2dce524745387e2414352826a0168fe8e2d32de23668aacb3408b1d5afbaa41f29f8bd7d590013884278eeac13be908c353898d7d973e04dfdf0a8280d3ba6f88bd25e24100418d66445b92e580a645054c7c9e75eec11075b9180bcd8f68549b6c1581239d7caaec4ca85ee6cc952aa596662731ec7cfad30b81e7f56bde6add90548c271a6d72d36590784c511af5eec5c726d5bdada02d19c8b3af7f5e58768085e3e9796ad8081a83c233aabaec0000b8ec674cd9a0e9f2423528a41777e7ebf08b46d1c63a3b2b561edf47a88b1b549578aaa90204f6a908b7d82d42f31c8784e003f699b9765523dace44018b99372d8c82494ecaf7523ca88d5cb6727c8d51204a12d4af0770f9936fcf19500ad6ee51ecc39ba43773044dfe6ccdce6b2d6de572a3933013f8dc10c1bb863eeefda511521df366508c0be55291eaa0f9d06f67c0e33a5258c37c77986e9edc4a3c78c2177b6ea726bf2105b26b8eb80eadde9f7422af016e3c68d51ca1804129916f3a1f60ed21de2a64b19309d55462907e7b8b65e6f906fed6dd17c410864dc2519e61f05c604bfe0a8394f9334e4dc2cfdc3f21634edee7949f2ea8df049a7f71f7457c6014c40018ac71d7f1611b41decb20b008825a6c4dfda77a4d46c15f8c650001d6c006b36eaaec2aeadedf09bac1c9c0e2b113125db8b956634ff92ca32d8bf50fefefc65f5dcef122250f1e35b03191c51b88ebe413a53b4b5dd67c98f39239070550cff49ac5419c07f040b977ca265c91745797b98886efe447b487a8744d52824d3264ef60ca8f08289696ae42d85868daa815d354bd48eff85e033495b6ab596e341db75fcd50e53c72ddbc3f66c8c223acddb42336c0b166f4d2d7c4c20acb1958195c2459291142f5c0ae85e97e37d0444284c1680d777321b7739437e5501e1f4ae7181286beaa05b353dfd0bbd4d577a831679019baa33430a26195dc367d0512f729a490847a65557c4b20a26afc000bce439176396e707a3292a58420301882d9bc2a0ac7bd6db0dec3589f673595790e86e3d2188dc19f60c574b1938d189b8a0a7b9113f453acaeadaf975e33aad43141688fd891cf33eda6f89e4529cb65101d66c89b412e777ac95449b47bc6f9e2122d21cb1c466c255d659826d44885f852819daa3175cf0ff27e2c817ca2f9093f9fe871dac24e14304c18e9603af529aacf40e319d1c9694cd1719e81d131e4e73285864c8570553c9fd31450738c712ba0a7a03a128c1800c68b9d5ee2f3a85b630584492ce666a6eba4981364e84b03d282020719cdd8f2737deb1dda6c4b879c26b06983369bb2a2fcecf87d59fd090b8d5fa6990103a7c9370347c48440147ee2fa0a1b9f4b9e2ac286cc0d050a7776b2827d71e2afa8ecbbcf348ea7b16da420c1cb11bc69a5e48cf7eaa06df73e22bdbdf535fe08de4f30519e490253a6eed88b28dfd833a9f0589bf1764495c36140ae76e834367ad9a67ff86f31863573c6d1bdf394164bceb802cbe13e5b826bc5a80ce2867728318c5955af4b7e5e2490a7d85818b261468135db65b51471a79b20d2c0c064e36d1e56edcf8ba9f00b4de0a9db53d09bfc69d9ecb92ec6e00e7c7544d8b24f80f41d31d6d46f77adc9e2a2f033d849a0357dbe91a5d09c22e5d28bda1a9690055631f455e785200e143f799d0ae7bc5309db4aa70fc862694a6a7157e24495a608b6005cae1ec3fd85cf42b454c6cb256bb4c4c89a24f601da0cfd5f2ad3639c7b64dca2cd34adbac10e323c98b004daa9557a1358e6799751225d2ef17e19cff4554bd984cc0dc513fa9324da0d9f02ff0ff374eac3ee9a4a9130aa003b1a33758e3af76d60b29b7504afd889d49bce08e8f087241eed2739d69cb0c3b478f9bdbfcf56e6370ca8ad3b497ece35126e72a17fc1cc13f04d378b181f2ff36edfc12edfa307a968fa81808f41f54fb53ca56a9b6ebcd4b2151769b1f1cb99441422fab157ad9d0cf73bff4cbb8f2a25c49f743232dbf6cfd9c16b7efbde44cf34bb5ef09a325ab7b54099a19da796b1d4d7b40b6b28ac2f073daf76afebb3a7b470e1e4727860cff464be8bea5b972585503385905191351cf5e61a656905d69d9d4ec9db080409d27971c9a1ce8d0d28110f979d159f9ef078b4062af1f28ece11aa986ae44fc60364dfd28bfd5f3e1a09b9b56eb4227e8502d51c81b656bda790e59005a3d148e1e997b2d5d14733c0b34ed9d46ed73a6ddb1035c0243671fe3237d0a7028145c460959f92c42ab224b0bb7596e67da3cb0a675991bc095b982a05422c4466d750a032820f74a71e2ad6647afb4cd5ad3a95052fd7475570395de6b9c63cab49b38a5b9876af515479377a60d8855be393a98d8abaff17da93e160e620ba51c468df476f8831852fac7567da12ab41fedbc9de845c2b1505c7a3e441f92baa035f18ca20291bd8492721234450e9f89d5331b6e613dd1140837f8d0da93fc18bc3a84c71a1a68bdefe7abb6c909b69970f2bdd1a97d581c05a0be87c30a35d8b6d10ab45d87bd83b7a197bae86c0d7fc852164e59273c918966ece478750a74c414cc3bec0a9f62ad0e34e367b162ae99c9fd8af2fbb1769fc1aa079c232d79e7792e8edfd0246b2e36d5f576311567aeb464fad847d90497f5e534be4cab63b7319dce45be8ee17b8c6ec11850f0dd7243e73452ba8fc359251bc33c3051f35a04a3a97b2fa40599a9f263c451c9cdafc376905c8a558f622630f2a8af9a1cd6ef987e097df0ae1851f949cc8fd050860258186d26e5846819a3320c151b0dbfbc4aeebe3eaf855acbcc07ef16d1b36c7d73b9ee802a91bcff53b27fa36c56e9856b713857ade745f7f75fd7f19c6b68b22544257ddd3e677b41a0e084b1fd71da53a001a2acebe65d23bde158ecaaca51ded00710e35e8a5e2cb611fc90380a8347b0ed8aa4efb929ab53a3130b2db983e7daa79c8a0239862e328f0cb0cbb94aa115fb574b0a4ba7659ceaadd88618a2962846e0d599a5c8857858141425e6642638dc3fb1e726a07d5143c87ff34f63fcf9ffedfb0740a1f459ed8e84cb1fcd9069e227a823466488a14eb9bacf972116b78507f49f04e402c772caaad5df672e0a3ff2e3ad84f18619f121aad9d940ebc4dd9ae3d32bd2d70e8dc2dcccbb027f10ac7e09760db614099821a25e9b56f5b569d79b16fc4199f2fc3bbc6b1ba8bd8b5095f949ea3f3298109afd2bd657c2f1997aebeee5d7d96b5628e36e2420604cb1120e09407f2fca0f0653e7a4096e787e11be9aff98f5c079a9f142f1c0536478dd3e4df34d2b4dc60d3bc5230714e151382c3cfb8dbf534d020827325ae108cdb7e028539be14f2d1e493fd12152c35f1d58316e13571c98b32bcdb6fedd02ce6c31f9e779a98d35b5bfcaddafb3478b58cd727d613f7ee291a36a22b65fa85411502c55d7ab741304f80a7f85220080e62b74146fd3379150f4f9338aa1e3a28424dd30e2663cf2e0650f71b4765061de33b406de538290693aa41f4e1f887d0f06149606441dec29f87f813c2c98af1ad849d6e1f98d8f551ef45efbbfb57b81e99cdeaa8c463fba80cadd5edba36fb60f09cc4c78d250e7c602f50d44861d6df334b82a7bc242359fb5c4adb02804a5fedabf82d382eb61a3478b8016980b4fc94d2138f05129b649eaa16c2aa4543a243395792bcd66c92ddc90735b89e42080b48fc3169c12cc3c0acd2c77beb1eef262b6c0b0677c348b61683cf43438c269ca14a7e38ecbf3cb420f29c7c370b64a5a48f15d5f0f0c61bf2765d80bfd559c5aaa2b0efd28e40d55b548fa0e275e24b5fc26f946fc9ebd72abcccb3890b541f264a4ec44459ec074a0672bfa59a23657dc5cd340b7a5a8f12581010fbaf35def7666a083655010c88f92c369d1216ce84888614c734ebcab3f8f31e3d2d3e8daaf2d1326ecbe8d6f22e4cc21e60617d9bcec01a8dd328774aacb98e3fe3f98c3ebbe1c6845d4682aa7a559c9897e40c35025cebf59e434ee560a78e71c5f362b71a14f649d9761dc1ebae4388b393e364b78f5b3ccb6dcb4035c19406000851d3889850c4b3b211dda22976df236ed0c39aa7b5cfd2720ae51084a6fcd4725d858e2cd70e876a2272c6534b2de93302c0a1382749431085eb11d29e5eeccbe919fb1f0d44b398a2d2f5d61502b568d72735adca62ec1e852ee6ae9107d7b64b2c152e374d10b48e35f977a7424635cc06da96c6497b8136b5603347f08d7ad55c6f787373fc6113f7a852e2abc1f3772973563871b2c0137e7853833a3accdf2504546ff4c594b6f54ae87c1cd54546e4b7491601a979675e56c14050f9ef024ed05513c58ce50ab47e6a5befe730e0fd995907dca1a7741b772b632d09e2db9c405a0468802603c90c01e8b2ac0b82f37eae3bb75532adf0bd6c1391d560d249d93f5aa6cb9d4f48cba823d96fa53cf79c3b97ada9f52feb4f284ff79ad3d5e420ea869cfe93e719ac716a5eb49505c212c6734014d38b2eec75a0ed8540adac662122928d906c6e47b18d191fdca9208892fdc3b6a0303d5fce55ae4680a2bd40d0f399bddce5ec15de65c0e211851e2aa2c6a98f247989dea31f230f293615bfafaa17bfac176c9a0be64f8ab822a23ece949280ce06ff9cf902c32f1854a68314c46c6d5bd12fcda8128b9c39d4ecd2b4bb6118016bd71345a206271ed286d857ae53063846fd8156d795bea19c42996acf50a27e85f239615d963d197b9f5da290c0a2549df196185e605c7cb9a3fa1e11e07e07ef3243cd57e236c3f02d89c658e7c8f3056f864476c58f71681229baf0d243a658d553a8fb54fac932af8f377d608fecb6e52e8355bf36f00c4258f81916c7083b51986af236333b91d245fdddf027702c5d52a936775c8b99c356f1d1ce8f234d7bd6fd3422b8cdb980a06fcc499436b2cf8a6f362a2096c0ddfd3ccbd787371cc5e4c6b19d62cf1ff0ebb29082ac3cc8f87b106d22203b25c8a0d50510e960e0f13fbdaf96bde101b92bf0f4d62f3d275e74892b5195504e616180b23f84e0d01ffbb43e9f8d6a82d710178b0b85a0057e921f2d1030f208cda480ac63907ac02f048df188d24452002dcfa89389efd0f194242a0b7b3282a860809e5818a2d51748f59804b4e9dbce78f0c6a0f42d91ccadf82c6f8bd966f8233bc003d8c8d73e4c352df0e504afe08d4650cebb7bda8cc3a50676a03966e3f486b5511ce77984ebd08ed41bd450ecd43de39238b6c46fc2a60e3dab610c94fe2a82595dbf2b77aa2c87982a81d1f3caacef29e1568e4aaa5ca059b60bb46e7745601d85e5bc4ed5ad471f665adcaf80a1db021c6840005ffa39a5658a4dd2060a11cf9036d794c96f4f2e353f3c7c6f3be10f75fdc294a57493033da0d33d0ab73ba9b849514f959de4e4b8a60b773c0306b25d3307365a14dc70d23caa31846250bc942ee302a891ba6bb13cc94141ad5975c8aa4b9dc11dd6347d4c3895ced26c5d2ac8651414d3a150d80159a331cc57f9ea4a0ff4d8a7342f3c1891b6620c5669755886a104ae1b4dbcd52cf2e46c05a5dd0ba4dde42e064de9fdcc494538fcc75ad173e3b3c8cd82f7c023a89894f7384e23277f9771d8b2ee4a4e61923347f99950d94561b337104c6c77739e1be064929d766d228c08a28cb3636f785be78839c332f5e298ac5f3fecb2fd19e0aa53d2951ce0ab142fdb8fef0f34114a3da7a94924321067721e35889195aec81016c087c10358d5f8a162371a44123c2fc9f1b47aafbe87eac07ae1e0c19240ca80cace7bf9493188e449e4e18c2f0b9d094912282d154c8114f3ed0cac56463544015f288451a1eed9e7ac66e929b60508fc832c84a9b2b080298a2088f9d5039e4faffe65b5c7f2b807c8cf2a1719a670a93ae5af65e906105b78d5c806a565a84d32d69ac2089c87659c2fb7bdd057c9a49479614474ae40df91f98a9de47940a701d8160bc584d72361696d84feada10a52a95f4a891b205304f94a60cc3ae482051cab675058a879662cdb28587ef0a3ab164a07b0ae2d38bf79ba574ea14801d0d3f3555544df504a437a9480d48cc1b457f20b67c6cf815027ea2699ca5a85143f3d42fd57d5e315a5a59387793ee678d50e3110f6237eabfd9f98062a51e0e08f14c25ad9495dcd55fe2e588bf2c1086e05314e4ba1ec41ad2a2b1df75e7d4f55e0326e3110f560875842398b07d425e87c507a075d5d0016b304ba1c82c0d8cc224d3a405a938d5765f523fe6e5bae78a79883b9b0f9bfd209c95c16b4188e2203347f1fa679139b823cabeaa7255f718f84a3a1d3d2bb061148dadb5cb93b02c1c0836a165e869b2290aed9bddc212d6971453d00eab2e67acae4c0402ce4a166dd45f9b746bb5159f65527cbf9214adcdd853939a854334d95e493ad30122f43569a75e3b29c57bad8515bf5bfdd2abc125a1a43b87bcb5a9e68972d5aeeabe50e26830661b0d79157cc4f9f0a34169684e0272b439bfbc36a3c564edb1f836521d3c6d40b3cac1b7c91bbade9518eb138940df5873a55185de23b09f1e6e454a267dad38b26c4555ca46ca07dec63af53b885fcf045946ab768c6769151241766102042b81f5911f3a7e2cad3657b4ccaafdad25e6bb8d7bd6d5a66feab96f4162de24979182337c9e65adbcd9ebfb418b67751ba058e63a7b200c433b845a1582c1f52569cc80c5f279dd87cd466f8c7d9f8e9d87d0c99f2add4431ce049bd18d7767030487e02dfea1b089f1732dc36d9415c709fac2e6f1969888a32fa24789a7e5a45118bf372fb5b00483004ddee5be5d17e7f056100d221cf39d1803f9a092c0f5e694688d1fe11c468e97e51c348af5ce3b7db676a9d289bec98e18367b6ecb4a3c7ac8e16a552502b329b70659ed98d2ec634d7669ddb35c1f9494a3fac0d1be748158fc046d843640499fc5e5b663101b656194a88143450a4ab2d0dbcb1923750c3204fed18a03e893e07dd878c9bce83403a6d2181d9f0d1d083e74cb600bed7f3c12370e14cc6e0092643ad47c420ded9c3d947d9f61fd1a8acd0736dd432bcf994969a6f31b2a940f773762f964fdf1bc3a521c16095187d01a94b580a3510a28a1aec82ad371ffd15e0e59ef8da8d10d08154ee4dbdf31dae1bfe17d41e20bed50718c74f2cd9ff025590b752373f8a3dd33cc31f38afacb8d26c3f3a7919bbc6d30a900321b4d80878aec4fa8619937f8495f7f6930a52d480d302451d5a486edf431bd9d05d4f818fb0acb960d2a17e96db683f5cde9c95d721008e04e94a4511cc07ce74b10244c422f65bdd05f5ae07f58d820a272aded9f66932e2930b4c4f72719910b9e44e2f3558d7fc638425da4603421a6bbbf4c58ac1d97542559aea3bfaa9f5fda5540c669acf52c1a7019071dd2ce7983aad64482259dd3b13f5444d72ddddf13c984580cb02efd34cf72dca1637f629aeb4c147bae6a20ad7070b3891993a30721f49a10a189986632bfa441ce679a5f70cbc26d1d68789ce8638e1ae8d187152fb3e885f6e6f8e224d9b8dca6fc6842a9a6d13f3ffbf8aea92ffb7002fa140cc3c337c2be6c91832a7c5749ecd975ffac92a6aa09234ef482aa689e2ef026895613acedd7480e19e5f8bea19acd24d6c0c6bff0579e2111e079daa0a6f2cfee07444becf946e94bcd864356871cb5d64209cfdd0cff26089398ba6d71cad24c1b605992bb7fa33f0efcca7865717627aaa16a9d804b962ceb64af4ee4465ba79005b6fbb207106a55a87015e8272b4f8869cd6d891b0aa502b44bbfc4dc22e764d7fb81472a78eb92378c9d2c37b57e5b0bd4368f9f83a749a64fb1904496c5941c07b59d437fcc253a5410201d414db030afb7f7a9a0c3c6ddc2f276fdc56a18e9219c58d814eaafaf269940b395981ba87dc99b9fff7bd87ec0e1495f3025a87de2836de7c09ae7742a56f6da2be9df59b85001f9eae1e2b49a706c8f8b1209e225424fdb30a209b7d5fd54d12fa3f79b029b0b01153168190ccad4cdf339eb47fc7b6fd183bda5d24ca7d4817da023443551a729224c65df481aa0611183db2bb9223d04e1817c20135b8293ef3ebfb8077b8210176eb4fff795f050d838fc48c8f9a23a51a776418bc1ef12264ebe8afa6851405c91bd1267082b049157e81f296243983a00785dad3f4153ec03901f962648ac8f4a85bae43f51c88a28d5e4bd264cf7a07c9c8398e2e11d3c12393ac2f92d40c8c7d02eb502fa51736c9ec5570a404aae25c5c3c4db8643d0df076e482d4305c05b09edb7e828a90c4f6fe42073b5811a3866fa4efc576621bd4c8ac644210c4dc67bd602cd3d7e860cc41451d14bb65423879f2586fc4d8995bee5db2fb9a267a7e174ebf15e4323e1513c56e41de7d6eba0f5e26e6478231c6fb767b11056057ff330d28325322c3f34cd618631a3af6deaa51f184a8746f0a5d9d96a6985b08e8982156cf6ab81d658c9fdc6de1c216ca94f7f505792b076871c87f6399015fe27a4bdfbcc1148a165802472cb24d0943287817d9958cf0db57ff376d700bf131f0765a84e3b3a5d631f159d02d63237c59964c1611ea2b924581d31c3efc0ef534e53599dc6d1e9144745b05d702a5a17b1dbdab2189a28f0b6938e91cc8498d68ad51f1d43fc650a364904b4bfd631229fe8d2fe2055e0540a758cab944bf14d6b6a837c23169da4203ffada05012ae720566e6953740e74ef207c9e718889bba7d318f715283c47a374af4d7b5024010c962f9cf853c5017e4c34a2857ef186002fca2973d4f1aa6438330a332859e11ffc21d6a62dfc5201e7af24517ec6b57388480e6937202c3aa263e06620cae9d90f18a22edc0c234876eca03c2bae5cc2cdd0c43790a0328d0db6230552cab5c95784c9cd481686ae4edfee4c5e71560947c917cae7d0d7ad5692702c5871d5187f4aac318c0afcb33a84818efea696d102a566274d727388723275d027226a873ff4523e3798ee7cd20e95788e678580fe358ec780d83fd0d60061dcddeac0143d3d52a31122a4a31c6803dadf844b8dfc6a8f86a9b906467cd165db30ed5b0a1d5403c2e89a20e83fa2084aca65529e5f9ae1fdc6513db1ec2b915b7460c4eb1ad90fd1ec70246e0c1e2f44186d8672821b7fdf2f802cfccd9ee269944b4edc3e721cddae0a1b38e2ef3dd8b3ef846b19c105e843992a5ad91492a0614d9ed76b24bbd44048763fe4d3dac29dc8038c5af8a38eb1c828414b73522551161fb4aaf2bce0867b1c309a7884c7bcd359cdd3a729359aaf5162ed453172575cc61a9e13bc53b940699e8b005d31b7989ef2425fc0a655896c24af9290c62b37596df86c9a987000e77fb7ecdac2850e8bc09b158f0f533d8a03b5557e0e9e61a620a434a63424129e48791d285c035d0b4096b5e2e666e2d26cbc109f452a56f366fa3a68aa7a6089c6a06a83074981db0649a530ac0615dfd606f058c468ac547122ff98498f1b47e83cae59bca51c9c116ce5a75bf058bf6b799d018114e6dc6b63b423b947b1513cae82e7045b69bf1268aa29f6527cbd06a72890caa80bb0b91334bad9681b035da80c279a12980ebf228304c9cad7e9627e81143006822a92af1119916d354653b16815db3f280e3ce27bb470fbda1e6c88c191ce0209e37cdd26273224a87aa14ad6639226486c8176310f71bfe232da2823a9a0bbaf5191f9ddb05adc53ecfff28c9b4fcde50093aad13e9c14612004ebf33516f461694f4131c011c36b02878bc4bf64af25d74b8f9791bdc4d4a82e85293251a320d045c5b00f1db02c6caf43dd191f96f3e6d42347f8d1167d8e3d8946ed16111a256ef4d8b240a31ad1c22f774c9f51a43da3d2d17e4aadbf89338a8bcda8e437bad3f53030a36865b240e665141150e7fe8f6f0a19304d46e1de2019951bce5c464659aa0397bf3a0778071ff84c8ac728e74656322b1ca3e20da866ef111942273368c33ceb1c92aadaf94015aa2327f98477721f56fe530b82310afd8c7bdc094d68d25701af7836044b04c5a8a6c7254655f22d49618e72a2be41aac504c428d140388c8a2e826154a37f6154cb7d7b24fba8aaf16f6e6f4cba95eeb75c698d718c1b1f6c68516315b914da11c6b641390b34e27fc977231490e24af7215cf2d03b56376dccdaf7c2392aea580312c614be191d3a17f5a4d7343556cddf55beffc62a857b44e24d200b7013e4be44f18065de9fdffb8bd9382ce1828df3de3d61e5698233ec609ddc272b9dcb00feef0477803aafee591a259e63270e5e14ff9ae963eda062c41271e7328831426925169fea90f4871f19c83bb824f74ac1526fab247cfa7c2668b671a44c3e56e83ac73564467123f146d5685ba4cddef3eb38e6a86e06a2de6a4257c2fd39f847fbbeb2951d95cd3549c1ced93fa855c6c9f5fe432f69069e452bbc7d933adc55cd8d55442cf89b2dac07c0d64c19f9fe1cf692b19702792a735be2eea171c38ce6034769d6c52d4e94567a8ae49abb41a7b26a15fd8bd79b797671dd0b12933003a020fb80b5cb5cf4f2606814210dc89e2c1d2d55f3e7e463ee85cdd45bc10b1fef1f4bd8c59c7e88094c7f0d11c3268b7f4d877c3af996117c20c00e2ccd989b42eb7922499d67bf075e6258ee4e9f0b6d05178ce8e5f2d6135599b691ea79af69b01f03ae5941e9559d1f5cb518f44655a3746626c8157596db9a03705b05e79c774756c39467ca8434a6e1866ae77aa630c5ea2cad11cfb6c3e0b2384c034cbecf24eeb614dafcd902464e37dbf5e55b3c59e23b5058f7453e830528afbe8faadfffb7287b559640b1adbe6ac74fb95640c9ab3b6bc5dc7a5ad96cbd7adc2e63e36effe30a4da0ee8a76abd048fee51542e7ea699dff7df0dabbab6b647325c2bf6f01c9d05cd4e986c9bb3a806da7523ea544afc603da81c75605550977b3142491b777d19a041cbaa4fbb42b4cafa0a417a864ce5c2bf7b39b9b663b73324d0fdc72ef5a73b6e78f8c3d55efc085f80384da27f4ad07b8046353177114073d0e63cfc82c6e1653a6d3ce249c8100dc082ee43ca7dd0ffb3a9b27ca384bbf0aac96940cdf37eb1614cc8d70d50f262e8dd13edbeaaa081b110ea8422281fbfbc9314c4ca0f86334862400bf665c4faf030219efd6f4f4134d7523430bb4bf0604d31fa45555c0cad26f556cd1e55436732743d1c6c62683c631518aac59fea38f4a7a6e0226873606125410bd5dc1afa181a0cd3cb83bf9f0baf72217a2c678610d2fa3ae750a42ca8450e0e8d0ef8dfc8f842c3ec714ce067930304a6a801fff28a93cb9b91c0551c7bb84e18c849c1584041a94f0d67cbe6d07561cf9176305f669bf737a3c86cac4f95b180380019f12e4757de3feaad00703d651c1c913d43b8c629219dd97549634812823b1d075a0cda37e9ca633a7ee975cf76d99b518f60b847a969f09fad86fad5ab1b2d2384f03a50b2b3408f55aa28c18fb36767319c10f2246d41ff725e33fe5dc7831643f6522badd1326fcea5aa936b3d879cb8be616c9a19c7b91f54c3f5ac6cd758803dcaa1630f576d68170c19143c1448fc0d9f5dfabd927ac5a55f8b270508ef4d23fe60faed3ab536b0c27b1825719c757917b3f06f407b5778e533cfcc6a18cbc1d303f2f3afaee04f0d3feff5a7d3dc14039b72a9840699de134ae145d7f5dac14c962a2267ddefa3c76729d7a780367ff8a61382aafa6900db4c8bec8790148d7c2950a85833839751a06090ff5f5b4baebdd2bedc0693a1f49da53aa783eed53227501acda02da14c666594018d6a603f9f907d92f328fa8060906bb540dd6024189a4bd68d312f598fc4971431084e95fdc0dd2c5baddd9716cf1e16ed87efc6c936da49bbc93b4990f86989f312933c7d677051ec3150e3d42ba91dd6d4bb9654a29a5f80576066606b2d38890a29728a713e9887652dd0dd51391214a820309229a69937f9344346d72d1ccccf4ede5aa29dbebd5a84d797e3f36f46b9cc84512bddae49f55919817d2b51d2ef987213b8db533fd3556a35aea03bebfc685fa78efafb9ba3596cce991a6b365244d615cb8d407ebdfe0616445ea10b9d8e4df6dfc1b0ea3a0ab4dfe719bddf6d241f21c216fa86ec468afac46699cc8e589b139a92297c8258ac227287251416d2fd194e99f91b657c329d3df2195e9db2bc744431271222e7231740dd989edac3a91ab5b20b595f2f06f16dc99ce6a937f0b50909dc8c59afe0630fda100a63f669afed0d5a818a584aeeead95c84e2235e55b2391ef357dbaec20f89ad25435c68d4b4e03f9dde8e68b4e44c6f417b9f804a7e8355de49addf69afe2d84541976c289714bb22f290fe7462317456919297a71221796856bfaeb9069218a9e699aae699b5eb9e24be68c74ba14d3aa9952cebf462ed98a2cd566f9a03929b68c6b6ed703ba30a6e99a97e3fbf2b57933bdd3718b53be39a96bd54c2d29839aeafdcf12b46b442eede05277a539a17f0b84d8f718038bd9ddab1e638a9e1d330694f9a1591d618ad9e994d97242cc5ffaf463f6abab96f83917262d89ff8d8a9cec8f8e199a7827a1694a5d3aede54455b777b561216f587cd239bd46093ef5db4c9ea2f395d240765e03c5b9509413a1ee84c2c98fc46427028c1e41b0623a0fa636bb38a328a9cdce896821e4b2d7b07234c0604e3ec27ead46092e31122025b2f31ab7b1719b9ad9794db39487bed7b80d9f7493324718b27907d9794d7c7e57c29f60351113b52bab0565720e3b81ec771e65f20b67f2763e65233911e7b8a8bda294dd5ddee56d57f56e18bdcbce91c9eb6e5f8c1f37bf8739167d83dcdddddddddddcccccccdcdddddddddddccc3136333333337777777777373773c6ccccccddddddddddcdcdda13b27f6b96dcdd1f12854622296bd4d06cf0e366e68e68aacbef3133ac42323f6666666666e67f1b8b22867514921fa6df7b7ecb1f80adc99c0ed8b258610bed611f1282fde350d062c3a6de6fea71aa2d85bdca533cbc5f414cad1ac05f3f423c85712b504128f59e5330ec1de471aa06f05f2168ad3eb0f75879601a46f20731cebb5f372f21bbbb5bb9a5293377b3a63233338e963191fbcefa7c861c3336813fea4a71666ee64643533df9c3f79eaf73ca0c452fabe6983bf654f5d33e4ca13d2d794682c9bf5af2df134cfee5134ba1a9fad0424ce2a9c3dbd581b635d8a94e8ea099a3213eb505e5c12db9f43b64af889634521efc39a48ed45510a0cc6e6b417d8cd48718fa6a6c5cf239e25296d2362923d1dd4758f2dedded43fc13ab2635ae6ef8dd115e01c39efdf945d805b3189e96ab5bf1bdaa6bb2e62ec8ca2a0fc71e07555f485df7b4380a4d5535b3e235c75573668e6f93b90de8779ab33ee8746d94484a2ead8cd44fd23a530bf5ef6bdb3a93c8ceae777e2673ada33cf6b32aa4fec3570d148a832397bd0ad9de7175fc8f4423918e76afc2bdbd5d4aa5d7f19b84dcfab9fb133526a343850e95d939dd0d5b2c5a68aed1b7d13277bb7491ffc067e4e8999030acdae9c14e2f29fa406ee74ce7266427672f84a0e6f4617a266ec1667019cc4f289b51064be124f8097e829960261887a5300e13d00e14a208baaaebfb63ad9d7bbbf7f32079eeaeeddeeefd4422966ef7c69e2708b9ecaafe465a63b9ce415490ebeee2392257dddd6396dd2c736c2ab1879895e1d9f6879581412060d47f1eecc1d8221c44a250163d980f71e39d3c1ff4783e40e0863dd8ed1cfc300023f5e4a9d5f8bc32e47eb3ba8356793c9ddcbfdb6e0fd9d684e5acddb387310c0c97aa606f6abc41924fadb7e7a41f3d7a60da0641aa3ce2c77e3003028cbe021475836a7143c80c19338f0f4ff63f64badd1e4fa68d74bc47848328c608a3a6651e37c9a3cf12d926d5b67d8800e97f2ea517edd5a3ddb09c42524f9e5ac3056c66c8fdf0aa3b6862d9c6251e62967d70700516fd1d465ae5f14ed3a688cada67daa4df69c87d87bbc1a81d845c2cbe62f3737df8ab09496f3bc1ced44ec35540f4bb55790cd9aa2fdb9de5313c0229c1ba6fa662aa23f71dc35abb1546d0123e5968da2b48bbdaa40fc39103af18579bf817fe2ec79bf2905cd53b6de2ee1c170f7cc226f66dc56376b11cfe37d96374a49c824fc6becb38a60aea4309d30a9f1a874b53d0189a0c2d404f9e829e564b184f8ec9d9511f3b59c77b4721d6aeae5f8c614e430be13235d0d4a513c06ac6d794c824525b4927694d5b7fbbfbb2ddd7d803a9d92f0987def1108d0baba93d8da4b395484f12e999fa1ae6e1ece16af765ef492263e601bd3c4924a6350e6467639533854b5524b7f3428c12a9e588b2cb442a0eb095c3c5a598e3e549227d6a120995bc80e405159fe0772fd88c7230a311337635706ca12817e217120973e3709831e37b8620b7dfbec3c17a418583d5a81caee5643652dccf128d9fc395230a6bacb938588b83b535e63e84a2a7f7fbd0a5f00573f8c48b430b4571395c8e1166fced0364b5d57c338d82100a74c1d7cef76a6315a2991a46da146725cb98c8f7309d65ff48dc0e97e20b315c8aa336c5efcf129984ecb89d199fdbe1d3fbf89c95f89aef596c586e70e8a88fcf7c8f830a8e1d1662f8c4f30d1132623e381595c3a5a6f8ef614b7d78e6fb108dfa6099efe160413114f5822a871266fc8886ecb89c195f736135fb06b2b3b1822bce110697038aa0d78c3972b86cac6674c126c7177d03d9e1907de7c20b02ef6d6407d299f141397cda8fd9c707e1f0c9d3ea3499c913c7132e451c2c2ec5d770b0c07841153ffa74b89af139870b2f2cbaf06a53fced5c78cd98c335e3376afbc89a71e370b0da14ff0cd9e160cdf8826ac65797c87540002b16a2782945231d54c81a335448500eba909a1456a4a7c915f979a211417ec0d8ac90a032361df9a6aeb6a062842da6c085b43175d542d284d6115a1649386945e1ba118d7448d11755cc4e7e1730f8a2660b420260eaea8b1fb8907fc6b644baa0c52603d9c2139f17c81a4684e1450cb62978a1828f0a6468eaaa0b2a4c903a5de47431031bd3a7aeba80c14a53170d087bf38e6cdfff547cf2ef9db98d9af411eb46c866d33281c118a51c8d605a54f8a493445c19c10a9ffa77f8e49e3d59000c0c15b25b958e87e46cdad7f4c94827dadddddddddddd0d499a4ab1b04d4b2bd5b4ffa317352d8c9af6bb1e515d4bbb9a1d0826fb746e48115e02a14e4873549bc60b92a0d9802e0e9776557c6ae9d7c9392f20c86e551b88915757a51be8bd913a559bc29e871524e0e16b4ab5a916e55a6c083d61052585bd0def2167640921d87b4dd9808120882a9248615c8b7241e0632f751723ad4c9bb6692408b026323486ec5635f7bb179502858b092732e0628c566a5f3627a5ce6b82648f38a334c53ab82485fc4d04c4c6a0f3fd3b329de42ad90f03c9ff48b6551571695b63965cea9d1e1ac87e4814e544d0cceeef1e0c66bfa7a12887ddfb61f6dba1f3294c39b5675495d81c1bafe1d23683966be1d7b9df5b10d26ddc89ec3cc73bca114ca332eedbd41f63841cc6b5fb5299bdbbbe33dba76048a4ae68a0e13b1a60487c6a1142fabf1619b9047bd9288c8361981c4fc81ccf6994f49c19de8ccac373667bb3644443f23bb7d13487b450d78e5790fd9d336fcb22b46e926a01186bc1b0c7ccccccccccfc981db0bc04fe370a72b28b407ea38156802f9ac4f0c6a58d5c92c15b31c40e66a9b4e38995b94f810c30eac1f0244ac4e28526c9b68680c4ec34cadce7edd20560eeef076063d0b9bfb9887494b6b453e78ad6af2ebbcc8d44f26bbccca0212d0217660e2e4cd767f302d9af7ee9d4ba6743265c6278c3419b2ce4c6b415b4aec26a65630304a3a1097515aa9093b3b3d3559061ea47066c089aa648e826ba8956d24ec4cc55d036b21375139e8256e229f0143411fd5acbb44cabaa2abbd8b5bbbb4cc334cdccfde97e1ffff8cefb841c08d933706f075a2b91fb5aa8934816ed676391cfb0f3eda0a94b07d299bd1a268361d9bb0c9f5ae02b3e3df1225c099f711bbf712cb25622fd35f68f21fb8e314c6b9b66629365d8679a125c6272339bc96ced91544bfeaef2388a51ab6994473972ad46869e2ec302d9b94a89dc64dc8f78f65e86412049a46b4e2487385979c4f768c449ab3c625c5671a921d77e844bfdee3ea3bdc540569cc4ca83bf3b2373bf359bd9dfc19cd90f3d9c56d3a6eeb49a5506adf2e0e7fde6d576ce9778bedf8ff06939170f480732c8082d7b75e974c84c7fad1bad5695f311e1f0f36f2f3e612217897fc01b03eff0820fc32fd8d969933fdcd9e9b129911d8cc2257f4dff5845765a94a9b9b8f401f28210673a8cc225872e2e895c992823b504790d6b1704ad1cd5512b2cc73ab9009f58cf07b0a969d87ac41ea432730f9e3ff8d4a1c035e7d576508f1f3d7ef069b91d5c6a54e446ee2245324528c29a5d69c624398c1a8a0af40e2932977361297feb2ad817dbee7458df2531f6dcda89079c79f62a334839551e2eab3a98a801466c318c315e187f17c320a03873b908a7dc7deff9ee33917dcff73ddf5d666e48bff7b825d1238644032c102be024c6e54ba51d14c8000c3b58bcb05a51b0e725e053915297bad4a52e75e9a54b6d6a154810e4e055c4f7606066ee3161404e90104687c2218450a76e0b1affa57cf5b115419bc011d49f3be6d84b800f6816a02e0a6040d5820cb4a8bc7427e648102171249545c3723fb8d40fb91e30bc0b0d9f0181f7bac7ece12e90dc92c8518b18637cf16ddae4cfb61c60e61901cc3e218031c68c04733d96c0b32c6248b020682e8004c71cc32006ddff87d7207de1e47f5a80d8fefcf6fb1de0dccb48d0df23e0666d107cc80de97902f62273f763747f6568ea12b3d8dddddddddddd5924c9ada99821889318172e3df8fedc1d7b6f3f108039f3079b3a25dff780405fb9b25ae22fed8b892192839c937fb500be0ce8217dc5ca7c3173485fb9321f47e47d0e71f28f80316e48cfc769c9b9d20e1d5c14f91b435397e56167b688652d9445626596c9deec6a9f60cf655aa06d7123451d4959fa8cd4e3e585069836f59328d04b82787c90ddaa8a70a95190db404e0e3764e0e5fc90a0b2dd985f660fc3f1798688f270cea6f7fb51326a5319a76c8290d4ff487195412cda6db20cfecc3543f164582a501096b3e0b681a7dd0a56f762a673695f11ac27d3c8e20a2bb385a9595cf19aa49d9e18ec0be9237985746e09f6241b4257ae5cb942ea714652f01e7e91f8906bb1017ef619672472dc122d298c14ba72e5ca95547f6ad0d4e3629bb6f9a599cfd0d4a5d368a6bfa692be5a6ec54d6407573ce10ab21ad57268039938f618f62f8dea87e11642ee63015970c525e7d9c1d5a4d942a55aa2bea9e50c8c228c2a88610855c8e006082874a0808026555c901b7169a368a46333d3d455142e2668ea4a0c5653f1027db87145ab0657e8200d39922229fb07ed8a2c76684225e7b968a4439362467663f697a4e8ccfe1d7c822fa4a9ab2836f3337525250c2631835867113acbc55e4942deed4c40fd89dede5be6518ddffdba390fa9ebe1d2fdcfbbdd03b3e62166aad0f33685dd28bebfb7f57bcc3f1b2686dcc75e738f6d6a8dd4ae36b5386a12f220f73de424af99af5e2c7322f75b555bd6e0d0d8cc13c4fa8ebcbb3b32f476ef4e81dcf76eedd6e71ce69cb7773b166184118886dcee1d1b4322f7b77dd80f723f2691dbeade2096e6792c8e4655b68fbf4cc3a800218771ce258cd32aa0509590ac226bbcb75af21328ac6163ddd76d5cc16db0b8bb3b8bba0f7cea90b481a3abd860b9c182bff738dee12ada0d1656e507886f0f0e88ce556aacfa0a6d0526ecd245c660cc3c9e7f70346aad9f63517e1352f3488053918b3bc82d6118863dff802268db1036594bef4d30fb771d6e359e17f166a98fa7d5d85a733fdd9a31725ea33c5e3b21bb1d93df86bf67636b955c50a8c68daeb1b58dd47ece359c86dc7fe1d37b9aa85fb69b90dd0edd99fbd9de9954bc861fe735d80ae4fe0ea622334fa4914068ead2754b3525678ccaa96ef1cd4b291ae99011c3074d10c3063f104308ed8964410a9f18c81b49f840919f2ec808831585309c20220c239e8431c40ac0b072058c299f27c0c05181f1c50cc070f2b142fad41518562001c60d1836aed58481b62124b28333fa70a667e6f2421b3ebdb90f991c99fbf005a7306a7d805340b13217ce3c990b6f5ad00571e67e07577319cef0a983357369f8d4412594e0530d9fba66c122f814c301660791f02d660775f8207180ad50937628c5dc6e81d41517349c16b3a48516eff2eef6b6bbabbbabbbda6e0f7497b7b82991da77bbbbabbbabab6dace15274b50bd62cd74125668cedd238100ee8057ab50b870a87cac64dbb40afb57163e34693b171a3c9f0e7e32b7e3850bb40af76b5d0d28e68eaa2d1d0f0695ba3691c251a125a8d46c325ff4ea3594ea3d996b9db42c84eae629b7825598662f8c92b49531d63848d034d5d3a1b2f25fbad44f67e2791ad925d48a309c5f0c9ff71447cb6a03ec685ec4231631009c56c0c3bf93b0707937fb1500c29a40a21919d2623c3a716e498beada9d184681ad522645318d7f27448d5c89f5d2866882b642687785071a1982864d7b30be58c46365e2f9a6fcaa7ceb5b9fb7577ab2a8c43d4d043066316a13b7cfbfef53e182304c2a9803dc7489b7a5e25f51c8875027333a1c12d915c1405b3638e40ea5879961b3eec6ff886fe2408a4bf5882f856bd514f216c3d29f49753ea6a146c14f6af055dac3631466a9d0859322c8732c0d93aca83bfa180bd1f7c755a070d095fcdbd03ada320f79fbbba2b1277d57f8ebdd7efbdf7de6b774223cda0b35fca435fd3c7be7beff779c387bd32f0763b6fd476ef2935f480350b0bf77682f3697797480fde03dc66356b04cd8a8f6b1694592f64785f507a36119fafad735e5ce27f0bfb060db9cfd3997b8b8dc32838059b18de28808765d664bc084d5da4100329d126a7b5046dfbd575e6a220cdaa8c9cb9f1bd62b0183398981d0c733b1d735b25c0ef0cd9849f59dcf57dd87befbdc73d00dce316dea9aafa7bef45e5d363cca7bbfbc33e401ed7dda0aa9ec39bfacfdbbddf1534dfb6b820985357f775a7bed1640d487f6c0526088107123485154ad040ca4c1a52547214775063c61b9f20ae68544c1240094fb494c0c3e47fa31a3f14e12c971c21093f302667ce24cd1494237e60032abc6085032b3c4794f0a000937ff50c293df87084131c22a4baf809a2069b22c305f385c959132fff2ea51d52904045896401880f1192c5881ea488893685dc585f4809e508e9c14122e1d4d5ab09b3fb23bcaa7c9420a30797d28e776922372fb61f88918424c490c21812c7d455941f9210a50673f4bc45231d2f6de27f7963c8229af3033176522850d6922352482dd101186401ea8379bfcbe1cd1ea41011647ff6dd0b1c92805fd292ed9db444fbf87918eea191549fda5ef3bce04099ba3a634a6bea0a27059386466dcf1fe471a4eee70da1078540da923cff0283277bfecc90fd90045cb9726566ef1f20d98783814d1f92a6626c2fe4cf206a302300cf9890eb417ac1919db228d05ae3f032318d6bd9e65af6e3dc07a9263f4c644918d8c4bfa4172a5e94cc9eb283b9fb3a012b24e0bcb84c149b2836a4d969ab7b2b224cd97fde3b7ab43c0c0998dd8fb95ca72e979fbc834ffb1e18bc2687b4a86151824f51d38ad0f40788fbbfe7f1bc973d43ae03ef756a35482a85184889f9cc906386584ba4b63cdf69cbf31d4b0dcbc3b087f3cf70e85707fc77c225a0af416216481049089bf86390d61032b337880ca41046f92a8846795cc8b5e2108e9342a450cb27ff67c8eefc0103c3a5dd7a6f68da7683249fa549dbec1dcd0a7f8078b4b87984ac4ca32412260c452592a5fd6301c94de40c4b0d8b0dcb0dcb147cca9e7fb59d36f18758da4e88e599425f5e763013e9d1f9e9e0ec422c162726933a16b4b7667132e40f2e75a11b246981d0b3702d428a6c0cac44b14ab1bc0e2918f6d0800555ce0e0b8b8dfaf03c3f0b133e31093473a86488e5f170120bd9c91bef216d7366f25f21478d123dffaf422c298a339e8f9e7f69940888a7156782b489bfc5f3f27548bd2784e5e56bad4476219647aba2b34ab1bcb69f19d8c3d590a5422cef817cef3bfe39a290efdd5d44721bbfe152c3300b49beb3d4742c371d0b322c2419045e91ddcb0f9846d9787eed07979889e4d9bd686a3fd86bef2d90d6e467855a8dd2147f28146572177a916218c2132bf87800b3902c2c241662dae4386e8870dc10f1e049e3f895e3b821da27bcc2824b2c010b845e722d42e4b33c0b572486213cb1d21808d2bfd35688c56a93139267a72d96b65888e1126b8a3f423ca91a2c356d8a3bc8ce59568dbaf1dc45e9abdf69d40d8e4514a3b6c3c2693b939fa5903a3b969ab8da207f1692a624a90649dbf4586a623c29961b1ca9a91049532092a69aa5596a586a72bc36def102229ef95cb1dfb347c852a38c64dfa3519b32b28490ecfb8dc08fdfbd4cae453d2dcab5d4807d7c1bde93ea7704d9c5d91f096c0a7ef336a8453f879d2ddb0b819ffde77746528bbe9125b437923d7c234b7c3821fef18dc0cfbe492dcab56c9c90ec21d7a252e384c4f737e25c8b72cf25cf7b560ad9a2b5685c4b0dd9c3f846fcb3b7211a69fdeea7c7f39ed746b9783a0952840b21435e21124208211108218431c2ccb32a1eb123b2a3f6fac6ccecb35720fbb12451677b11b7a83db8d469942ab71f5cc32772f42e2580bf47489d0e531fa687401d747049477cd2f7efd7c1a7f7df580c641747ca386cf37153b4c71362cfb108238c1ea1c32c83915b2d3d0cc31cc3308e08c61806318f8761191b6f1be1bb4faac9512335b996fc3b97f91869d392ff23452d69c93b1ce6ee2e37a4c8648edb1219185e1462f00125e041c80a279bd9a8a48d973535756a4600008080024315000020140e088562b14016c7c2bc0714800d729a427c5a9989635990a33888a29031c410020801061802c4989a99b941000a3ce0ca3d44e60a2ff3247324dc8aa53a2b07047a7195f73b599fa5a2f8405028674a039db61451bccf3ce6f61f81178148c012aaaa35e5779ecc4d9a72fce138f0422cd8157dd1b596f59779d894cb873b97126e0b8bb94133129df468f500c2b05514a826f69463a0f1ac577750a51869caec928b239569a3880d491a21a9d82e3322ee9ebe86894ea7357d0d5a5aa5e9335c235242126e6f0378e9a55f2bcda2cabb88a1cccbb5523666793ab6843ddfbb3dfc6b1c4b3a82d708d32160833cead2e120271f9d52ace0f01fdc7dd1138fc76cdd4aa0a63a1dce49bd8d69fa37da231c705eeff1d3f7233510988168d4433ac2b9c8127410a5fea6f15ad33d5e87338d1a0d2310c3305aa8ee1a05dc78fced106d937cbcd16cdaf4836fce552b6f0b834c4474e96584d81ab500f7ea5d1794fff02f715a8587922bf9b9925d3d28e05c248ae347766e214b1193365b9d9ae3880f87e6498bab61d101c6dfdafdb121cf2a282f133b775ab9a49b476fc83664fda6ae19c5a6d11082a2c30c8745c5ec85f1a30c0059a9d803b81d2e7ab070418978037b761215a40c338688b1db267324e08ea8d3a66210a64308d0e1124f0359cb4a7e14f6d43612090c027ff87d6599030e7d8c5f6d7f749308b772a99470946a253e5e19d21c13a6f5deba874267405d22a4b58a9298b9e848f643fe1b29b473529c9f5ab3fa4130e4e9d97b999641235a71f014edfd5edbc9797ba69b41d1b6a6ceae72dc254d1b39e3034745621670d4d9a49620e2fd5ba67482228a194be26f4b12930dca56bb5b5bcc5b75a87699b97074f13d1542485d775f73939086430c6f71d14013e7fe549ec814ef86435c9b38845f827066bfc7ade6bb4fe2fc10a8df12b95ab90b0bed4c50c2c78f98f41cd159878cd5033868b9e45b647483fd994e0b368a8c20f9f6cde729a8c5c9e3c79651569f91b653d2f43c13dab8ed84936c004ac62f0ada007a1705dceefb5c7e5d4a98337299f8b7b047ab72ff61e78cdfa4aa612cebbc49ded70996b99d00d5eb9a13727d1d2f3d8b36fc2d9f7087905843eccdd02e183c616bb3204d8dff41e8115b60752a84af9c5bd262b729755365d4d9d774e285c8c6f9949a17dbf696ac139710ebdebdf050c78cdd48894bc3e085bc4958e2e81057cafbbf602b5900bfd61bb3663bbc34e8f3b5f42721c8a06225440f43ac439eb5326135c7c19fc18a18361e90dfcbdd189cbe9b907faf9b5a3738027bd58d53688886ad963a456dc943e183995eff65b93ccd6643d722d4cb6862c3242912dcdd973dec10329a5ff352844acf1b4cd4a46fd65388b429d00293484db6f190163d61584178a1acdf21492b36ed1b11f03686b530d3b4936d53474a929f914c47ad7e3dbbad07bbd443718c30ac9c46eaef8b5ae987c277c0951e535ad78914149da7a66e6286d89eac9962ff9d04d6578c92f5658458f2f2e3f4a30ae08161a87b08fce4cc8a3a119c99026da6e0c2c7265075f79e3c40b2412c1989547eba4c997b84643748ab633864a54c8170b642aba3e844cb0324d1bd0e96075b49697d463bced406e74e9b6c9c69381bf3f019858aa542c0128039e4c3eab90065b6c3c82f1a68622109669fb04e63fb2695e7e18137e718eac61ed93a1c2ca68b4361fb824fe34b46bd894024943f2940130270ee282e391c080417e4ceb072cc3e0d10b45e2eff4cf55eeb7f935efec1409b119f60e3a5870cc71f9fd6a2385c853d9c1b59e95bd241a59b033cb6e9b08a0d7ed34e18e46071b715ccf076aa497fc14e22e9edb367821a39c37adf9584a28d8514b03e255c0f1bfab3d3b74b3da9e83ad8daacf090378e77bff1cdcfe7f472047f954c88d4d43b4b09e40dd3ccfd3387bcaff13637ca2fc9c7a761c0179f7d12982dd3aa34102d552e00c4c0a4f826cc7a766797bd8c4acc150ce8b5916f7f1a9e3e232c3eeaaa678b6a45d60a4844c36d148c443cbaefa44b97f4aaf47b9f5f0622780ebaf81b5531ee5739732dd835ec17c26d92ac3685b060958f0995ef5d61734a2dcde00b675db221ef3fa8221c60e20da417b662c9cffc61d217923c59c588f7a705ee28a24791f0898e32da5d50f97c17931b86673f2a06f2888efc1fcffc473ab8498a2299d99ce04d3196a7039a1be7a2b9cb8763683fc54d073ba28aa4b41542e4de1474a0e7dce4cd1fc05c869dbc708e19846eb509077afe5f70d90399fa2f2e6ec26a358c1b6acffc90839e25ea46b772312b14a91e03b7ef7d5004ee701fa6784cd0ddb511fe6e5c4eb21836ea3d8500f5e7bb3f53e49ef311891b21b6216dad09e84e95e6876de86932ff2d62feec501db2e2dba6b7b3540e7f9629940880e1a3ca3617e3191128b58815e809d77c511c0661f3d3bf26395a347ccfb4533a5a4588dda86f4fd46cf36b09e66960fa99c3a4af3151d3d8d13abc66d5475f42a880512deba4ac9031f3776488650c8c8dfed0108179a9211d6ab388501699d12d4505babd032cdcc36a01c1c42f1540a263a37f19f5d3d0d57cf954159cd7d1f6e11cdf8c6912bbd223f3b3a14ea603a2c19521d81eb8650ba0186fa3da63b23bcc9d96a8bddb05ebf241322f83c73cc952051fcf96ddf09dcf87fdaf56573ee77b0a8d19221195d54e6e0677d01c854814cd77f8a83921e0f13fda2b744c2cd90ae201a581c141be40e519e6c0a3d15671955687750900c8c4ef257f483249240bed162bc09688847bde8201c292d7e749fafa983833e907e2885356cd7eb5ac0dc48fe3c04faf19054295374f745c4c3c686ab89ccaf4ccad3977099e068ef73c611c9d2f413145a3db40cad1210bc00346df271232802c381d0e00dc0bae0c8bb9efd337dec42da95aa8449b34321c32e3244c26746b85c46e5782c0add880823cddd052c888035f5d608d38e0d202d7f535e05406cfa0c27f1a280b8338a89eaa6b028dca0f02992e5a16ba17704212db1bfb650fac8b5db4e5c3e18610cf95f396dcfa84ceb755ac796de6bc363351ac603104d52b5019b26897030687afd2cae21a184915c65ff1e4cd04ed95565a40b26af809c73776390b7addbdc9c4f73bcd769e6f39d98060a652769d09a83e5be11d6d95f475a3e42be8e2e2583584713713239a9f63cc041f34584d4963eb813b5bfdbb9cdef6b031939b27d6aa0d48b10fd4883a7bf03ecec92ac34d0fac2aaaa20cd4254d6113665e91b287148e081306a44143100385fc271f04e82596bb22eae3b1d02c8c9176517e27dff78b410688be283a4d19098d1511649428b2a89274996cb380ae7b4c637b279ca67d22574cc865efedc66b6ae93a188e2552ad545b726b14104ef956eb6b6629a6de22f897eb85406964465bb13d343fff241075a7b556d1e89e151f7378ab7060dab374d5a8250353da8844b4354dcb51f232be6e68f19a2131e0c70ba2d71bd02563bc1b6e11724a1d911dd2726d922121bb023914bd293c6d8f1c84cdec10d212d57104928ab43fa28ae620f740ac884b47adcd63feed0ce76fda6d1dfb83411dabbce30a70113a48462e4efad50305574da86399c5d5576fb2e9e33d6616e324b1bf2c283741bc6347bc27d940a05c989045f1e3ce3ef1cc7037215372e0eac6978c99411db7d4763b1ff741a29e76a1c3e8cc00086a74094837932f4da44f85cce846f21d18e034855fd7361f3b79812b26323f7cfae2389d83b77b4ac6666dac89c7d756cd22d1b0245e82e68c254dcac8b96dbc0b5d9458c59f9c8dacc8be2d81b84a6e33ab38ab05b2069002772169698d436fb196d97ed4d8e85dead59d38a237ec4e4200a27d75749ee83613129a8360df778c0c3e868fbf858ef356e6bd8e09cb83c10eecee8668b0f368c050995028d9bd3c55d167432963ae049488d609ad4f47ecc5301f6e923da8c79f95c931593d11540a873718332614ab40e1aa80b6a2852f8820cda03ceb827d2211cab3c2e97e1da33cebbc1127324ae2cf0fb2c8962ac04c4248eb56dcb7e09dd2d109316f35dd1afd27f48772a5266a89eb9d2899531ceabc2c5caeecb900c59903e7176071d5d5d9a826dbd2e05e2ad521590d08ed9de9539fe8c89c1af145425cfd9dd011bc9e2992485d8bc95cc5cf6fb8c760a87a69a490cd8738699ce84ef4c4f070a6e7e6ab1983d044732dd15a60aa5d8e01984f953f82b8982d9a1fab6065210efceb692e5664eb07be3cefceeb4bea5c21f479c2acb6ad4178f63a6837804d52e5331b5c331f4c53a287cd29c5b2e0b8a554bacea9dcc1fc15d2d5ba597a9021eaae342cd17434b1b88cbc558921de2844c176b89167a43558cc005b0e7cd586cd71549818e739e389bc9b36559cb1524fbf6e0c38f77766abc9378eb28c72ba8efc1be55ad026f0f999a6c4b6869430a5f82ad24642f0ccf01d099ffc474d49b1d7d04625e49943cc2a3b5263a8d6a04630331c392b88fb912ee2142a9293871248548761a7f39d3bef5789ca13983c89031db9ae4d25a97d8ccf093d7d3a3d8aeca7427712b7679a920f76425f2fc61a218c1a8c56730bed31d7a2aa95d3f54e047c1309a0b630b5564444f6df4773c3077f26e41ec2fc4b449b5d0208690b2ea62ed359508a47c139eb50522bc5086b41417e8d92d07ea991f0ccd1157c988437f0cbff262238b9b42302e417457e08b7546eb673e6bb1e05cbea084b064e67234bb47f22d527699865afc8ea5ccc3045ad8619e54d9115f68fd9ef20f47a036f93980cb99843f89382c1e23610d2dd9bfd5d8d961088cc10e6727ed846d0e7473428bb715d943831ea6369e80c3a15607917b4fe8437c12c3603a92ae7bc48f9feb880d893227d82c2c3a2b266705f1ce67207f0441adc8a1ac8bf85e907043f5a2c06bc3c12d7e7bbfd4adc7f676512c50f343a1eb3a4b62d5ff8db2ec66af091bc6fe7be00766b2a65f56629a9721fd221f4e6c1ec228c73a902f0080897d6895b01804590c690ccf839d9c04f8688bf40f95bede821040e29896b33f99851665af23c3cd7f6d6020b23694d0649470b39862270cd95514b70571466fd6c71f500f52dae41d98a9bbc86437d2a50f52e01b1e2c271bbb860ae3854828892ca3630cf4eeb570a8711a7448e7c6cc479c2a9dcaa9b15f77ffef1a7db23a62fb8d495615285e5df91e0a7433ed0097e43f3f52a70e84a14a06da07512272a06ef83690f5c01634a6148f370bcb7f713bec4fb75ebd32d3b383fa8f9e78a5ee6a8c01925d920e8cf4005ab487e4a13ba51c8ad5520bd3009e63807df92468b14ca9f3dcfbdca27970989d37c932254137d6e4de2cf2ec8bf1bbfe5479a294f106f9b519c1ec0879cd113a82ff890b5717c1a73e198a52afdff733a350aa2fe91d297c9a5b292d2039dff8b3e400a65bdd47f309bd38e20c6c133fa3cd983672aa650ea775df9049da1334bc207c96d22c11992b5956f356d68d26336a38146fac4e092e649748ed101b9ffe1711ffedb529d2a257812a24506b9fc0d482086fb38ec58c46d9ce259f043c2c02de2fc9fcc17076471be5d22a80936f45846bdbfac2782fdff9e9b11903e16584ca4b43639d753177d4edc68a7ffbc8108836991b0cc3964926940b1e8e65479723f341adc7a459a68e19581b1b5bbc6c87ed5cce0360d8efe0b08946a6524eefb60e089e8a6dc4f98463add1fce6257d215a0dd390dc5fbb39a3d3bacce155f3c36ac8aca93b74d59bd2a1cd3a1bd41d849bdf8ada49b3c415bb6e55280fc1a9b80009b060f7ebeadab97b265399302781e63216462eb38d7c7c3b2387309576cb9ec04ebbca02439f4f7377c6970727bd8fa6b568827dacc9d42247f9fdaea91ed9cccadc83d89a0b37b3c8cd3ca565e37f58999b0c5687bcdc9df206b37c9790a003ecedf5170a821265133a52a421c6a72730db29dd31823cfd4e1c7a76fbab1a991eb221d0932b141b3283b0cc77a3fddc94b062f5afea0f81b348f9fcc768f0e08df63219f10d56608b37ff0b127b5b281a6669f453b736025d0c02bf27e8a7dbae61f2ece507c864751ecbb41843c84f72c32b337e499b29dcbce61f451da0566aea6ca1e097d766e1e9df9cbe6b5bdd1feba6e07ac6fb4d07c239b60d94eb2b83d2585e3a5d9b23123f5606a64d3eb0a66c09bffdb4fcb3ae75af60122c954327b853e30d6b10964c03cc8b0b718a390d43c0fcefdf66c9eca22f2ee78230e94ff1e666fa54896caba91debd539edc2abc1e386f88b477992391d53977fc1b3bf3c626f55bad045040fff63d6c42cc4fd4fc9eeb07f8cf1bfddc17da6ac94d60dee0d51e072ba7144426f75cc824a9b32f93f53846562f19ae97294ac192f17df9b237da2d8deb7bcbaea01cb370a620db0a9f6f2afc0a445f003a7c35d94c0d700f524e12641662597fb7299c98838e2ec0b102db1c9a2745723ffcc3ffb462a9089741f7de30ec1935ea37eba55e7f4b50a14cdc71a8a5b82b1d56cbc5b369e3a228ed5172e4fd1a42e502c55432c0de8ded718b08d85323866e92027b9e80434bfd6897b6fb815211046ddedc947cb1a2b44ee42a622670b6656b5021fa63e3283e241b021c2da2fc312440770bfd425074eb672244e095c41f2a81291e07e4f71b08af5203821c6c09c76b779c7fcef137dc622fa4d7d65777d3d1161874ed1df01ec402c4c4bc1e8cafc724deaba37f801d665df00750ed4f6874ee958e5d7d8d07b4584ddb6009efeb4f706a84bebc8e9174e6fde770c7cc327ff70ac627ed17ccf8f52cf6ab047462136a83c76c749235f4bf8dec93387164a2ff3460909b907ced33811c10c7452d38569b7361340ec31db62842bb8300316c2367f4b2609324b5b50860ab8c5ea11e193bd1cc672a81c38928e674103a8400987ac049a027f4a16ae2afc653e64953f06afb82af059d6d975d521bcaec39c2c745d24b8cd9f7c28a0b4c2df43ecf6b894b1b50c6c5d1c03f9c29626f102733dd39c307af2193054b695bd34a629b816fdab92e38c41d6edd18703d98c3b8b004a4db31ae458797188dd61e194d2da16147ebfd8f58721f6fe36c30fb4233a7aaa41466210452b8d2e4e474eb9086ac3598d2833d193b8aaf0d51bdeba2bd4d8a3690d71f52c9c1651b9ad51f5116c6fe882e6a94af3708e4ef59c7529d9344152d68d11ba3e4735c5eee60649c545e89535c93909a96935f68251990c8a1b04695371902ff7c8ca4b18c7de9fa114b4b8c92b9368c3b47ee5d24c54614e8d493b3257fe7108d71aa858622990318a041be0aa04ef510fa51632425656b98626d7fe881ad6fa40337c2c611aec740c6f7d6aa2cf7d7db24447914a4902c3e460e2f06d95bdf1a83fe17c2ddfbd3ab3e6e6a65bb790770e6b19a08463f14a4a952a43f482ec4ac532c1ac08c5047906fa3bcda628e3ff30df9fae77017a41a50fabe553d811f1abb58b1fbe8bfc74537239b41373ba08c16842adc2aaf8a2869a2dc1b15da90e12ee13eadc215c53d502b1717934997ff02940609e535d3decfbea9803a848e74094548d516adbf1d582eb8cce5e10892820a14b7e4064d12ef36899df91004f2ef75ba3c99458483e81aaf39d33f5a8194d32ebbc06110b633337d2f61938cb7d81105434a59f0ad07e644585fc28e88d4a0ef1d04079e471e830137c0405f1a6de5e2c26443c410b903650c4cbbc0ff5312b35d2b0959737d25deced6cea56519d7228ff8badbeb30fd953a0a6ddcfc1e6c225c802010683438e907411441108107b7b306b0c4cc835d0d4a81e113dc52483281f9c415057d09b432f86710f339bd011240f2abbc988ab77dfa09f34c7e171f8a8f02992fdacf784d74757eff223fbf8c1068de5101abbdde4c08a2fff45dae86e9e5d94ad6927df45febb9667bfbd00246457900a0f347a2ff44abffb9e829ee868ea48e2bd532f0850c853cf3325d44c669ea51d3d9d45e0dade4d57fd73ed8fc1e11f0e52b392c9beec9ee54fe156af99c8a4158062590401f83e82d5ef849fc26ad4aa5864856aaa194f8494e83caff5075636a99ca33614408f52d26d1077b4efa17fa57776b5811362aa22ca5ace74efd770cab24dfd0ec6a65c5db214237e9c774684afd37c9b028c7d15e4e347e73e5e446e9c1b983a8bdefdedcb023e198d883492740e8d19b95b7c3e2ab731e367a8e509301f81e7c1157d959efe26a28b343ab1058e4f96a69f8cd0e2590eb075970ec514005f1cd9bbe7cce4083ed89d311f6df0628969d02f902679994a0848d356dbee78b8dde70725950f0db0bebe75f2c5bda692607871fb4666a1a24e4341ff03d048b03f082c9557bdd2f8de213b70987055a7b74035b1bd1da00c6d9069a15f509b47b0e96a0b0d14816b332c1d2f269cc5f5dd8cf32c3dda4f3eec5a7f728e8bf85d405aab9b17299520213948b969cc2fd30a9cc1e671bdadfd41b33a18985d707aed44a6a0226fd41aaad8fb671ba3870a746f4b0c26b7f0e9ac5a5a017870d8b4db3391ec404a1b71306209f275935c80c1d19fa11860fd24effbe123b5e11c920df09d6c3c60d5dd9dc4b0d91112cb4accbae8cc97d57740709fad3bcb0c44d42a5df6e3d6bde768b890680cb44f95bc151c5ca7e700a3718f68b95fa36ae7b94a3a42d7afb0d66f2ccc74709ac9319473906984640d1a162a5375e06eb20317009209ca965272e4cefac00564a6a26377e963030f06361c565e7d38b5e4458fc95d466d01148d514c624200bbddb554fad7fb2c375f0268291895069528a5eac6319d3be4fae22a04961f47b17dbcde8b97ccf7afba889bc48672283b1879406635f98a99217c0e3f2cfccdd620d7451d0d73b33f9d6c878829072b5a5bc7c84ca9adcc44a1841984831c2295fbb4a0eaa6421ab9db8ae2604dd8bc54e6044acdbe6bb35e11a1c30ab83994400072b55ef16146fc0bafb789b465fe5c2797cd9547dae24c710e97120fc1e9bbb7f8191ee5edf0c5853a987aa8b0fdd1a504795746057c017807122cbf11bd7a2b6113f81b40efd070ea9ea7a245e768e5568cfc7c6d4cd96cdf1be878028d579b41901dd5243dae9876b4de98711b4b5fde013cdfd69cc8747f4d13a5e360c14f37ad0d772960e6f4c06dcbd20afbba0d63bbc7646499f679e3fba2aa1ac8cc4043af0a9ac0528997025e41fc8178717aeda6e11e6ecd418761202ebcc7260c821eec3130afc68c8d9fe127836b61420a8f99d570d7e7c0b5309a4a5c7526b5d1bdc81c0b6ea9ca869abdfc5783abefc80f38d6fbd6f25d12be39c20ec208d37feed33cf4995c31f09d62d842c540ae7081081dd311f360506b4d5aacde0ef1f7a2cdf2f9eab03ce57d3f40aa4d62a8d287bab2e3d385ce346a21533063a250c47d9019c89e2078b361c382309b01c48e3c402d9278a2e22cc5c9ce068f73c13b3fa0c7d8f72c57e054dbfb1869dda2fefa978198b3e83b2bab94cfbb46e0b432c49f48be55fc52bbdc71e4fc5f8a557289479581338633e4ffef88f34d9dc4d2691232f6aff1eb1a5234e7a4dfc26b0f98ac6a8c6293504959e8577fc200dc26913ee0146b1c8780baeb5edec002248d7442eac3eb8ac0887b0c04e32935a56ae58be811da3618b6e422268a108dc3da1196a04ef341a1de3224226979eb8cb1285ab52ebeddf9e6fac7311a881674588e39c47425c1c03649a95b2824de38f0c14bc739c3d0871efc38a592cf642632835948f657804a540bdaad9de06b7eb30c7f6964cddc9667be5ab2580fbc1d6880e6b4c8f2239c5273e3981d8a626b34f8b3db63549d035d32801bdb2e442d3adc9a39a67994b5a8b3e65aac38f6828a7859fb0a814e34a039b7b8f405c14639e992ec667260ef88945b711ba9f701d1f21d53b60bc6b8efb66bdf7cfe89116ce80329c4b8694f357cfd85c95a4fc0a51bbdb18fbdc78f0d2ea9bb34b1d4943b61385957ce432fb98b35c91159fc62a3f62f71882f07fc0a3a1b3aea2a9ed4c654ccdece19e3f1e9df93300e4440e6c35da846739b81c7a9860da02b8a4f0044300d95e2fac6ec2aba5051572cc0ccc242f738a149f4a3b58173720212db6795887bd13c0f71eef91b789ccd2134e43f31904693cf054fe66f0ba3ba582607af0c8f41d9726bc384a4038e8a8e3e62e6c12895350f85344c86ee8c43cdff4d286a892d157546a3babea770a1450dc6a9721aab263412f1c5a4c3643b7124305d7ee4c070f9efcc35ab3260fea97683bc0774e04f27a5101d2de8031a9646b0ca8f5f0a02af2af3e3e60c1e321795f9f69c92d6684e87205c5f27884c18ab4202706a774b8977d190e3678abaad7a1b5f9bb3cd8f811b680b301166119696d2ac5b652b16d617c9d7c1a81d6274ef078be5af5e64ffa807f918e643be17ae03718073c799560a179da3aee44374fd7cd80fd1a282433071038d276efc30a73bf0eb5fb2174714c0cdd721a62b1806dd70346b0a9f78633da7786daacfb9127ab2e83081a53d70cf5209a6677261d2aba4a9e0c169a286e24b54579fc3d962fa164458f9a8d20e1b411b9cf433607d2eec3d7de934cd39497cad2bf9f5f6987f28161c919a0b1f734596993463327bf809797dcf328e713a5f6ae7634166b331a598bacbff64d99d88603507838464e1f94e6fa2dae44d2b5278b29a4a273f899ea8e374c59a85a9a657ea84ffb0ade66ad809f5db5182643b6e6fb630744074baea19b9a525d6044ae9d09620fa2d3598a70671bf2b6b38da57fecab21356e9dc08518fbc1ae2e826f4d009b8e6bb19b22861c741e532656721af2a95c6e4fd86991d390122ca8193e0a56a1ff2b3805203550b5081d51b37760d546d6de4e71bffabaeb6838126f5b1b1c6ad49f61819555640cc3f1616be019a3d273f0f4b07973ca355c32b398e046a6b2084777e2d0cf26ac8fe6e166d726bd07a37259345408daf05e644f882f3069be69789fa8d7b34f13b80a78f7357f08ce779fa583821d899f2496c2777a9ae82cecf48632b004955c59b73e2a2b6132c2b31cea8d97b5a804b7405f1a05501f548c621067af8f0381586e4ee971b458aecb6d9b259229edb1d25cf3eb63721c761b5cb257b7b41fb1f4def9f8e57c9181701ae16c6260e3f4d6b794ded0357c1da05147c76e3e6a4ce7903999a34073dcda1894f2465534fbee90c0aa076cf608f6ced0919ed3b94867dd5a0140e51b407fb8be71427ba1c37b8427c2e4d95d54a76dd91d667bf6e51efcd252003a0491f220bc81f060a5df559ad193cc0889714423da7efe075703be2dceda8245ada0edaee9c3e0af7d1bfa62d121fc4db3e442f5155598976702104ed0e0ffa7a8c6e7d8e5a7bc807052e79adde4aa210320fb0af51977a9a2d620dc3a58c4f4f1e7f37f27fa3885482367f6f896aac9866730bbfcb8922743257309a15998228da7acfe2d12f9498119e25cf8f7935ed82dee0e2477e318d2477e82ea28c80544a1861355582c008e9f2eca2188e00b9c2be71efc3fe0d7230c752f57dc5fc65f0ef8c9c6d899282ba78c80a0b2c6f264a6063a3827c83ef2d9d3d0ef23c2109176cc8f50ad7e3c67bfc11976d10ae869f1a5bc80a665538b4b777cb8de4ab2d609168efb963a0ca52fd0500028f80dc10bf6503311a65de717ccc1db5fc7db1196c0c92ac8e708b5482302290ff18060aa08b44e9d43f4228265ad77f957bbc2ce4102a997318d29bd000be292cb504d33d086d4f3d65ace143f55572f685b7d6cf8806b8cde0f53b982a6a1167918846fc9205b16395b7a1cf1f237050d3cc9f904a08796b17f06619c8cee714bfb26fa1e57186c62a7dd70b3b52c65147a0130aebe23e3654ea963f5fb6a6472566ae7bed7b0648c27fb756d9f8a0006e9726bd247a53818d4f12d67dba11686571269533646e55db83e2884e570b9a747dc32b0e075a4816d21456b7f6ac97903db4786f7d2201d4a9b2c82627b22914513a57cf009932d8cf20c75b14cf046979a9f9ee60b14595b99fa181f5a3245b814ead59b211c476e3aacadef820203e15600c2654b511b9dd9340220835a778a6151a3ab3ceb013756d9a768725d29370b9dfda03788e86dcd39754bd6f4f1b34a80dd0f821cd89566d379df012d377a568a3bac7142ea2fb05db11e11f70d6d998759443e10ef23533d217fe46c75237b761e83c10996821816b8134ad20e1d02266fe97b16f8f0422228cff8cdeec75560aad5ed56683f4f37023b4d310d099d2a296f6f6efc0d27ef1d81b991f3a293644f3597c7147db5f7717f816e8ab7f4e81aaeb3bb83a1b9cc21665cd099a0d4d2ac626196b7838eb03adcf5bbbabd5ebbd736012cc2ad1419fd14f0b8d0b6bab14fb80f2fba1e0010656178237254fb3fc4f5fd673a58266b2eff8ac8bae860b0bd19574075d3a5087c287ca83dc1869e7cda0db613bca7994c2268aa036b9de2ba820371c697bbdcaf62b4baf1d86437db2d85915cd339b376a5a41299775295c142303b2c37a843b3bae9d9c461ae45721f00a76c09375a87505941c37aa3050a95bfe96d2285292a14c120268dfde908c67a74c254d3ce70b271dc0becea42c740cdc58fe5100b3df56ea3f69add7b53cb7776c84ea9b9150ad4f7a8ace7a866d6a475adad40c58eed42f5feaa60f41d7e8646c2680083b97b41282985f51556c6315ffca9123f1c203f6ee110a89fa85f1ace7c47e8e9427b3114a840a7da14d4100a620498288636df5760d92fd9a219c0abd4585e6d9f983f24eda4b57988eedfc32052a1c26205079940f7f668257cfdc9bf3a93a37c6bf6336e646d47e975069f86d51a6e8651e4e7452aaf04582f4b3d1fbfdf06eaa7d5c26da6f4700c554e7d54ef7c72795b1bc698e51533ff6e51a19dcb7d60bc348cbf85466cf79989de129b5e1a49140fbaabede48b8968ee13fec5f61d885bc6d5e76cf42b193ce446ee8fbe8749a0e1d03cec2fd70492b9ba6c90d819873b76f2d6092425359c0ed4c49252856016daf04eb93abdf391c9426c5916838cbeb24be12a8b5bed1884e6ab542faa3cc4262b3fd5aee9b446edc08b1cdb3b3c73589f583b787049982e7e4b8b4d7d605a5fd15fe728096265466cfb370a8f93cea8ff01d9e94ac7bf258211a2a0efb6dd8e57153ef6e2d1b2429b50dea76097a0097294149b792938413c987c8a6546ef3ead4e84bee870618b699b861631e682ab29c175085b73516b933c4bf7ed39a8bb7a1e6e81d8d7e268af4ce2b997de8188ff9085f8b4f09ca74754e525aa06dc5ae319ee548eb77fa244d53f1b2e288c0c7f3e7040841f3f90780d91be7525c59dc00e02a9b0a05b59385f9c2b8bd222f29794ef1b34d5a54453cc0ea2d7abdef129923878a8f5beb458b01c6043ad87fb517c01cb3710c8cb7bd51dafb24d0720982f18d093102a93483b86f8b2db33c632e779b46a5ce0d48e647fa7c0d096211009592761c31287b791787d830374453703943e14ff45036c83cc4c471661245675488a1920c4d217bf6efd3f0a4fca3a6ba8b117182fc70ab2498ed91f4baada18a0a38c887f8515ab9d0bd005636bf24c50a7f979124e699498995684d1b9144cccd1099184c4f89c07a89e427dd6b1d299c3d3df32035fe3b90f2156e322570c8601218a3b14c361673b454136b281f0c3b5e4861638a00d525986000c32be94d856d13df7dbb1e0feccc5ae0cea45affc1028c4a02daecedc0da1d5cc3f70ca7b340787bd7724436f235d689166c139bccd25a9c8836db229c6b5a710ce2f9584c60d97306541a873a0a90bf29ceae496f7f30373fb80784f7b5ef34edd76f34e5874de3f82e2af3c66ede8c916a868dfc49b8e9588ca7cee8f74a8571a2527ab74c722bef40c282f16e5bff309e49fefb97c300439854f7e73831bf860053be47dfc15ff3fa04cc816e50d06b928cdd1f6e6c8e33b6981a255ebde6b8d9fb5908c7b2071e7c43ad5dd0c01bf7482d9eb72f26fba752172f29a1a1143fc0bb249a0ab4578a6c3e9aeb5d15813663383eb94fa933a1e0369424e5a7cd4b44474d5be44fdb633781c881bf2420b26ebdc37834ccd12eb75f21d07eecd1deace6d301d9ac22b83325e194a1f53097f0186cf6911d709c6d5593acaba12a0bdf9211a7affba64d3b68f96d15e1cb009619cadd9636c8de33780bbba8e7980d2f2918babeb04e0d5d539b16f45f6b0331ce875c37e59113bb3f53ac2e921251697f90ed0859247ed194cbcfad7a6b9270ef6073076a5d663f6ff98d87becef4f02a087128043a8452fc5e74ffbe9e06b3f8822c6f60d8cbf8fe6b28807125122b469d419eac8f67fc2c860f046c991d3b82f5ec1f44c8958798a8bd5cb0304a0675e0940e53a94556cd450f1e016b78f3e16aa5e891afe9689b1d82551466dff8b08cb7c88ed3624a7f792467813d861fea8f18f950099fb4027a9f563229eb1c8c82f1a19fd1d145ffa1ff0b37f97a0be8cd081118a84d8ff2d5a969462dc07711882c8647ca244dc438466679ad47eaaff0fb8a242f176269bc8089bbe93ee8637c1880624b1fc4a9884edbde07cb1e0214e23d5ea799c23bf912a66dea4291624e1e2ac92a8eaab2fc701034e43dfb254c4671df4af55bcd00e8bf47e769f737c15d92c0903ca564ffdccc5b2588b7f276b8c55fd19b435c0c50527ec132c5aa3dc5eaf5502695eca6cb6251304c8cdf3e32aa6bd9cb60b71bfe202f5538f22b812a3522a9550210051ae8bc2f3d7bb963b05f1a1b16af49d3c409374646cf7e70bac785d003bc658bc24e3a2b8c71064916875a80e2caab0726dd6a91a8dbf3d3a12966f6e534166b11bb14d24948aafbb17462c53a9a0ca60c9a720c229c8a74614107f9cab842b73c57c25b24e37adfa433bae543e2c9a36d0871da389b892c8aec7a587d22a7cee49c6f972d20a04d827fa510db5e6b1849bb62c5e60ad361a127d72033cd7106b2a2a5099e837ceb95071c65a54b01f68e31e59c490e102106be460ed8ac699696279ce2413213bb412a060ea9a1160fc2e240dfe8b9a9b6061fdb87932f562fbfee4f7075c6dfd4a3e55bbdc85b72c5396c7fbe8f454fd4180a6e4b7dca4ec30b4676461c5f4a576caabf1017dfa2089c44d9ef080b8d8285a57799c4927abec8fe5625e52d76462021d59f482910ac5a80e334645b17e0bbc84d4358c841fd4a7a2a170e5a6b6a3099092ab9b6014b20dba193779011aa91e965e1fb347adc05995b33f8c92b4cf35dc55ec256bb2988b463e07308ad11bc04062ffa033bf0b6543687aa11b0a5fe792a7691b0ecca53ea85a5f0b5a0472cf0862e4b021dc6fae7450b00a5ca972b8213de29ed6077496b2bda0ed95c3da6acea2ff053b92ab311f731de208e6d48479ff318e5fc48b23b12bb04b20d71db802e59334d5376d428babf895435e00153df05af42042a3349d28ec9a1949558b1465fb43fdfcb56052b5e37d22efad1a5b628c24efc70ae9e5d9d103899bea2751340ceba3078f40915d4f636de9312385139dc311d451c08fd0772615590b2527c9a652347cdfd1d7773bea8e627d7d123adda8149d4b5ed8932d0ac6a61cc6a810cc8a974f629632cfd1853bc1bba2c2ec0a329a8d08dad3bb9c549b54a97c59169391d5b14c462ed925a020ff1b0986cbbc4675197b3c757e93805692ab14d34ef9445de767073fb874de8e54aa7a39b47616405bf204d318711ffd0aa729897829d39c1e8c4f0f71d31854559f09480e6814ff42d7968bafcd17f8a3f1c65f5613c23e637369e9ad262e1c352d73e14385822954c27516b803891a94dea4ccf4645062cfb5b376b7d7a365f3e0a690d8fe68338c7d3a7a3159f9bc6279af92d288d8ec0566cab311782cb30e0102e31867b2b5efc3772963b3fb3a10046ce7b684f3e7c8bc7eb744224d375f367396e6f861820071a350fdd63def29fe6379960a0a55c178f6a15015f21c5679e28da0aca934de0f87bcfa424c2b9cf08642559eccba206ecfc09927fbd5e306f02950d28f07ae7c1bf4f68ac070a5027fb34eeed1880f2e6b2b34f746c0a0461fe24ad1e098e1faac681700cbbc44d2cc255d4e8b95ba62e04ed2d9b58c04bc2615c1888bef2558cc11cb5077e6d63ac09b10268be800c8424852c77c563ba217c4fdfb68dcb95dab6467203dafa2fb347205876da3e4e56adab80b81a22bd96eddec99bfc401af92f9b28f7825e7a0b069d262226885a1199d741f6e2ae3bac6cce1250c2816b0c1db08cb5191984a4210c756c0c7e118d7e97f153ec0c9dbfdccfd6f19d34a97c4e5bf041e813b4c396ced36acc777dbc5bacc30c1b3625acf0bff028956c0e7ecc0fbac91380159763c9b8bce7a8018a2dc36ab121dadf830fc6e05f01f0919c91f278773608822c29283ec1b8c869f746c6e3394b824ba1ae42e84c66b69988e7c49a7a68d138c6e111e507a585d67f878587c32d51d7b178cb64e53a3f7c2718097d6a2f7157afb9f7661092482fe0fd3c5bd8fda31088f7f04beb3b07fcbf15e4407eafca18a8050e9522f8a1dba7b3be999d43bda18e18a62b0cfa4e09c8d48c81e2a4c10f9161cb486cd881f923787730153b40bdd4676bf3e5f650b9386fc5898ca52c432975608042c80458dd88d9278ad62a46cb7132a3497837df712cdfb60284b3f1094305d7e06584b48b89b430f0c1c046338812c1f8a8bc4bb743ef4b74db4c55b8ed09e6ff5dd8b3fb7961dd9f510c682280161809e1b8320582b22149250947411db5e3e51ac66df425e8b80ea3c5ee3166f2ea07ce36608009e66c5f4a3a49e29794f234fb8f92eac5dfc94b9ab875363e4b08930bef6b89c6806f2b0c4db3964709da7552c7e8e21647b92e0fa0cc3290dce90e41c15130caf6a796badd91554415050959d712649d7b2b28f398f93c21d1da2626ef2020c7e362504dc0c97e63b767ec49d44b5593e529d9a66b2704c04a06072bb8cc80a79af9405ecc586895880ab04bc8efb2a2886e00850b70c8ce9930e1a4d8040781e2356dd0992cc69a8506d3807958249e5c5d8e11bbb3b801c14545a663e3ff270258cfc1e2e3b7a4b63350db5e83a32b8991f237b455496b8355297fe10c8bb1f6c0927baba46652d1c6e2091ad840d622275b6ff7ecdc06b740d825249301e8c9abcf80091428312a5dde83c18ced861811c7a49bbbc2f33c7a2600045be4d1891fa07c87dd40e511b721792c5e1a8f5f31964275e01c26ed296ed490435117990cd61237da9331b8839d9c68e088172cdee58c53b8063f2b5cad8301a91fd026370a38b48556552a3c3e5f2163dfc97736d7e10d098c633c539d78a23a7165b21c8226b0fff3ee5a287613629cc837adc942584d8e446c578cb936cb5b7e092a635e301fa83c400a32a820b80fb7bf0ad30b23700633492d5d99c2c0f1f9bd037c8fbbeb74504c5ba29e46d5ce1df479b4c6b5c9f99984bf7aa90206369ad562d01543086876f9357a30e144faf718fb335d75b7f2a9f3858bf1b4aa92a979620c4b52ee2c6012d7c0c676d2029493736b832e7a55ef2c108be0c087107af3ef5eb473b58f171b8b358bb52169fb174099959ef3fc94586d953b631b13b5e144fc30a8d6aa35753230941f444c08cacf3293e8c18f4fdffa0416af310d5f672d89541cab533be99d5d4a6a722c549a3148960126868cb8bb51096a2eaea760fbab525ab5f634aad5123016a2d5c202b98ce8e33394bccde595dff54a7a5668fd6b183d318efbd4ea3baa21c0474be243c957b43a3ef1af885ecf56a42ec81983c372cbca21a4d30bc9baf7ff17fd5640aa69058347397402fea30742881b64fa05463cced2b91e7dbb6e2f4ce9295af34387a33aa0491c66254e4ca6f4c18a9830b16f970d93ef531aee83ee0be7e6dbf0453d00e18acc1ab6613ef5a8c7b3b1c8d4d7a35cdfce5ec44ebb33b3d49600708ae3a54ac54339b35d0c8b40686c622ca8eb961aec959502b68b47b27f76ccbd1050366df85c78c9fe075c06e5faa3a2b24d8efae47fd8873c02eea0118b52bae30d3b55fdf11a3e8c4efedad9a8262e156a414d9578c516feb43875a4c2b5817350aee45741630d2556ca3549c33ce91114391fe67389ecf1861f5d3edd6c10540aa2b179b6507d6e860ed1418b233a03165db53283d1ff4ac036fd88c57bb93a9737ca2facc6263576803346e6013970bab8acda6f6d3e7fd7c216d24b5920908209444caa149d6b32b12a8eccc5407da997c295b90b1d8963279f0558b24fab73760880cf205191c8c9d1aa4864383c94157f160ec14acb4127e5d64096fc4df6548e8e4f3dfb4728574f2be730ba252b303aa1092fe338ceba3abd1042a27c412a87258bda23dc5255342f8a40bf99e31f323475e068d2640413e0634d1a211f6fad2df714193ba4a2a18e64287fb6ca9652ed4c03baae81c0f98d6ec3b16302a8c3187afd718eefe97446ac3d2cfbe41667a10cd4f8211b5570b494654366681c61d1506bb4b6a86ca95ecca42cfd6eee9be8768fbc5a91336e8a88d27113343b414e5a8c7dce3c0cc7007e1071b98e1fd4187146d49f56a61af5aa5f872e48a40a1f7969b08e36d299f4e9c74628b52f7386970ffce75fe1ac7b893489bffd398934c8ea443186685fabb323da7e7c9750b7500e65b4430461b7b354004500fdc15cab0527ca7d0b268cea7600f4af49ea096c459b4ae47ecc31be93a19113287aff3b28302b942ec48a083a08c76c91871ccd0818447ad19e8cbcb6908c1c33265083442c52bf2faa28f543822bb1df000bfb1d3095d178497210d30f05f18f104a711c3243a2db103dbd7d630a61e142217440284824e0047c8653c7243df3d600c5a31cf08e99b7d7bdd11a124b49e3e2af966d5c90432b0b18034afc048d6959166050c36a37c984c975f268775abcc8d340c4ce97fa74a8ee63012f28a40015ee085a9d4f5fb1378e8fad699a18ed7c20507987bdcfd20401b543e3e581bf9d988ccd6404ab8ba53afb7c9ce427bcd53b93f50a83401f8eb6323b73d0a61a42e4712256a51b3c9639799f7a03b878a8842f042c3ae3d5a3860a343a7a41349fac042095f7dc934034fbd55765751e29211116d0e1e881ef450cad4f478df965f5012579e4f69e916d6e9dfe782e7750edb26abdc8890c991ed9af6f22280415ac7295e06193d1ee682dc4a5e8c25802d63de343400b87b060268ec071439e5a1a3e2da199367a0a88dc8385ca301d26cd239241e4498f43b1e46cbe27dfd0491d67c28c765dc60ab40de385679677aea155f4316cd1c1d02d3bac35640be75a4f2caf4d0a95fc1b10f8343463ec2b7ce0dcf357e4102a259eb470c51ee3135124c57fdfe943ca4626150e2d68b41068251bb635121af7dacc262f2eeaae886b8a416c141c2a5e83201be77480c6370eca909b3ab768afb3f817c53af992b90c94d267650b642cc0fcba52cfe7adede322a91887ee1ae254afba26556790deb12ec495cc645c7db8710cb7a1854586ded6015d978abec2f9d274dbb4851e1107b2d79b7c5b587b5918dd1acec33b8d0adbccc4885f30e835aa605ba3c96b73a05fe1eed700be4052458048c82f942d6f55fb73573730c827a1946ec806f783ff1e78e7900b6f2e471a832473c8630c40307021d2f8f1c1c40a8982706c27beecedea91791a7bfe3a8aa02fbd41247a53811a219c8e53081cc29b5274c2e9c9b2c53803d00dbbc53e7f8fefab1bf30191ffc67d99d143b853696bb9f6e30902821557c2385cde7fb55e902444e8c9aa2067ec1bcc26712330c8a58fef367a8b1e9bbed914350a71cab1ed0484a172e0218f1f9f2f68642f8d4b5bd76a874095725afad58e412143a18bce6104854c1d4c512b67a59e445f72c78d172e550fbc4ef207e34b3f224c050b0040a07908bce3427786c0324adc73a8b10051261ed5e18e260859f1d5e34df0cc10c93a91ab9445ad05443607562e1202be8ee0e9fd44ce85956d945ce4994e4e183d4a4abd027c30dc4ebbcf2d694a09e558c22d85339a2c526deb30a215b9a97035d1cb567f00c0b63c3678543dfcfc7834eb207a89740ec905531026f85d5e8408f819cd0b1c608fb4df28d63ac32958636b58bc96b432c4059925074c02a0dc93f7f23c9cb531e86c1495159a8a9cd502c544674cf340a515329c2c181f4cc567e0c64a3a91f8c13b134d3fd163486d3eda7531832a54e4e7d5af330f82e1dbfc30674f9744ca2ac7b0a00814246739cd84ec383e11557eb27622c352be5f1a6dc05a474a5d591797873e48981283236f0144138979dbc6a962a1a56a007b0a0a510bbb908cff29f38a0fd5357724c45a399eea1a479c6c2bacb88e2eb2ed31910d30536c8c5eda66bbb788e64640d1826c8f55bd41502ffc0c0bcbbf6070ee0fcc0f667b2bbf51edfe6ecfb0cf1841d536f86c5b436e037604c9ba89d5582c3ec0bddd404e7b3582d96e739ab2855c5c8dd202e5b5638930a4ae459745ebcf7af96d8a4e1ef4a651f114b6e667192d64449c0c3f3b3fe330fe08ed4d96ef76dc903e8f8e62e6efc85abf32b3f64e3bc5bf2bbe2e365b00be597e2844e62adad2d55a9a3468ca983ef970ea62201140feca0cd55cf20c6718e22d08bf4b6a66b8a07c35b8b07062502642ddca8e17b6f08f1bb17a993d533bdfa87a2cd8ca813ec800b18fe50897dd4578cdc999121aa491fb5f7cab3bd55b310a34408a93e749a495fa553cb71c3860615bb6202468d65a77fcf7dce724c2f7fb6c9b76e4a66f5b46cadd2181c4530712de3f4341f6da39975a5c95c7a62c0949d79ec38af9dcef506b2187072c7e4fd2dd908ceaa89cd1696b0a571a514e6df414b67f450218c97ba48c67aedcceafc0f43b3b8486e5de0666783cff30c6fc82652028511c8d70c0ca80bde6ae1fc29c72307eb4f4ff7b083c3bdb17fe4f0a60618fb341ecfa5639d47e0f9a3b286be736609578a15a43b8942f4d22c17890ed8a6eab32183cecd717f6abc72425595c2bc321d906e0dd294aa9e71a737c736b8550fcdeb509032e239fae29503da06337dcf011f0439f4133d9950f1cc3a6d3ab270f25281c1877b69cff9c4b63129240a61feaae60ca0a98acac4a1681e063b55bf628b14d9e742102f2eef54a185562ea15f447fda459255f04abc4af832c81d42d0345634947455cf5ee981aff0ba1233904d0043de5f7ec6aa68d7505b6aac89b560d8089ea2aaea3e4ae5f24e5d653636e3df6b68a8f7ef929ac448c9c2af841376aec4cbdd17f7a9bd2b787c3871b1cfd1da45e3b2ca77255d8eaf3a99aaac4db9a37c95791e4e77764b5d60ae9b8b342e85e61495d698c74e022b95f2dccb7e17622940872983c0d7e96cb7a13d705701191c51d37affad087682e90ce63ae521fc000f79c69399100433a16696958a2b88a772ad18e0b52ba9a6ef3580a1bc7b4f1ecbe28c3c025ac689cb87e11d2d80b1b709d669a44bf4060c8b754cc093b02a848a18a02f9171496891974e88a049409d8b4f32d1e08aa24154396c47e5b11f8d94edbec87176f0c6b127c15c4bbddc67919d77c3ea7ac4a6858fd60ed9c782c940b8fe92d9ba63a633331fd3b0adc24829219c9f9351fb931f90aa19fbf3728c3ced32609cc648b46b857dbd4001dc09c04722b1b14fb21694f875bb2884210bd6fa372af6a616c04c295cfa9af88c597714f654eaa522d4f8d88a117f7b5a717c36debe6df5f91d3af1f58eff35bade5f7292a8d97a0ae9237212f2cb8061da49da794eaa427d31ecb5bcc2bdec9468c1d2118e1694195cc3635229fd4fd4b1efd2b9843d5e1bf137f00111a3fdd3b55654512c5b3aa057437b968ba3cc652ce39c3490e4380530a9ac6a07fc0d081d494084eefd22ac606e4c9101b2fc5734465952d5fbd5944b7a51f5cabffe74f6ac8ce47d0738002bf61a9e2020cde9fcbb442c0033d47a69957a5b748bf381b1596e9b0a64593e057cbe37a4505a62f21d22289b321757e9217eb529f4ce98aaa088d041a157867c83208313c91f7e071e88ff070bd8ad22a2c3526f9286a77e1515cd02a62378a460f4d6b387e08965cb98a6d1cd227bf8056b1f6fa4f554a2868718704a0eb3bfef7cc8b286329624993e12d6900a8ed8d6535ef95652c457386c7f4e14d0e9ec13f73292c3faf4052a31d83a0a0963a2a72f9acc91765838bfc0895bd9d3aac5bd9a38c088e107cf807482559735fbd4b62ac45df18f53d6f37363966c0045a2f28e61989724b88d365d28d67936bec4e0bea554ecd28de02a55ade15bace189797c334fceef94457f17431ca3736a8bbec830f3e5131e07d21f13953bd431c36f9a50b756827470cc7483d6251cfdd45b0a4607746e01e5311b3b6561c6f237e3e17475af00cf53dac567ce989c8ea6fe28367d2917075b8110b8ff40753ad2f2fb5d54fd3fc94b924aa18501e18f98d637444510aa964d45f904c8a3a5ad6b8c2a5ca9a495be41d676b15c6668a9dabd10cbd42eabec08ed92920f393a14427f82a7418bbb66ccee28372ce746a7cb38fbafbaf39e0ea7e0fdfdf2a2793121f5d8877c502dd48b4043eabe631841683059e3eb06c01081692563d555fd29880e61cf060e68bcd8b3b02a0fc20dce8661113f7abddfc1d715e8a25b10c4a21c85bd54e6ba63e6071ed8e70986ed2e2b463a25c97ecc8652349ba4963b252b912e34e58d7cb5fd1574ce8b06c69ca961401f4d3c4ae3244c7234298d9ba50afc0a7622542da325ba823d133ca6d6dde38000ca0a7f32ae6e03305e0cbd1d6f44b8daa0de9b3e08f2312b49fd9061a27a98caf043f2a163cc192c37e046a04b2ecc498d5a0632293031cb6066619aa5be8c56430040af509591245f457c94ec00807ec029f30f45d86005d8572c8310b20500b7c46acd906342ccc61b101096161dd893e8d5a2a2178e85f67b89420ba32a9672bc42c36d8ac5abb396b48f2fbc07aebd87d6c7c2d0ffb6230f69c0c6c753ed15ffdc63c2f67282507be1d80d2fc9da72bb9cd1b31a5e940a6dfa95ea239c83598a83edd782d2d6caee39508cc52417ddf0fd7c997d5668ed8445e363f502e2256b94582fb2d268a3f51fd1a71128d955e18bc198ba0b4a8c65bdf54a1433ff6e92b2b87d444b624ccaad1660fe67fa6dcb5507d06b4744b4192d653e88cb04f62ca03599f363a731a8135b48a5cc89d89740285672590e3d7be99b88280698a668c5fb6455f27235572fa5b1f17158a3910cf1f190e640a5654bce52b4544f15c0ef1f788faabc44fce625fff1495948f54c66ffacb82b55fd131810cb88e0ae2f0f03410296d80c227c98a8de829acbae104fa48f99cd0e723c5f0d2ef473d46fb05d1e84cb9b65e9f3c99f7299f6e180a0f05805fd3cf4d449166a1f8cfe34789139baf4330c0b15ceb9b87eb6e3e16733e3aeef90aad11a38210fa89618369b750cf7150fc481c7c258659af07a826f447cf0e2d9579a0a43b45e5fc75e09966a751f22040d8e00cc8e3454d89b55ad662194c9d8fc686073089f85d4522ceedd5ac70bda383143d10f51c169245fdb8de24f819e29522675a4f683a133ee925a549150e8d1efa3c43f1f0cbab2ff374f940a037a61027759409c15a5035fe966b4bff54aa593c47b6a56060142c030ac93cccee2da54dafef7af4315bea1e0e47b8ee80f3371c21c2113c8c8bae40d1970af1294908fddf1643eaa7062be928b611f95ed63a3b464efbdb7dc5ba694920c57077d0752073d5c14be4b216c387453b2e16c38ddd38508f94361ec7c28ab6840511a7860a0d080a201e54a9ae4acec4dbf1f700e6515e7700e0fdc67bd8220abd308ad876e39dcd7cfb0f3ef86ed5d4308a1aff33e978e6838d8651f30136d1ae24f19c3b41fc1e18ef4e795d9ef7768f9902321eba6443abbe5acccbe0d46b908fa77aadedef0dbeafc71018a5500fa545c88826af4a9b69004c6c18c8d121ca480066058f24409429cba0824a633d7168e20a780821056b0640b3f48726a28a86a0b48a0332b496c61085234c10314ad81be269208a18c23f7b3c76a0fac7575866659a6bde7e30a42dfdc9eeb317f9a86611fbb4db2328e4dffd85d4bac8cffe5f1310c8bd0bb6c3d68ddb256b0bbbe4b2cdc5dc2b21c3a11336eb0f1a487ae50cf052d66b63c3277d67c331406617b7a90b0822596e8e911a28817f473b7b4e57d17a1bd8432e4b81b329448ff3ab345b8c40de1ff708ea5b74417a15aca732372b489c4a4172edf801bb834834b170f645d1ab82fd425d0000474110abb1822b23e9f599ac14e20ebf3d991c3013b346a89b6de59cf5d0bff06512e425b5bee86d3d7c4795b6459b3f6d8e83504096d36884beee3a2cf34eb4568dbd45320010dcec8b1e22f3a19315cea9155c60c7f1925adb78bc2172f069736882ed741d4ea5c869075864f1297a011b2ce787103d3bcf0e8292ddaf0d0386b8fb722a277f05623b9a9a8a8b8f8dae3ad46a3f721473f92a315f9f1472b3c54f6e58f5454aa0dcf486e9b9423397a1595d1c759e5ac5189959519e4ad56566c785634e5e56824a58a7c15a9a222e5488e469d0d0f75d1d5b7529152fee85546a3d1caca6865349a3ee45442f648d16fca5bf1a8f04685f601140af5037d2fd6bb80d5a9f6b6ab8bc3a3478f1e3deebbf85aa23ea3cafb18c5e9030bd5befaabbcca4865f4f1555c0bc00f79f1fe2bbeff28f62f7ef45e4cdd77f18f625ddd81ba50f9f72e4629ff523a1efd2395ce85881cfd6e415dbc0d56f938eb68aacc9c90f8b744ead4bb0a44c8d3628b13cb0331c4e674739d58e6d3e016998647fff56f07aabd6ba28f514a9148f4b544e316947b6d37d7d8a94a536f1ae3be658d46f15f9c55e55dbcffa87b2f86cfaaf2da0ed445576770ec167447d868fac04247af124325ba0ff81de0a1f28e7964798c25c6c7defda3ca3b8bca632ad3c7682a31048c678101e359586000e05948efc1c80fc08b1ff2de90947ff1706eff68f6a2aef698a1188abe17839b759bfed8634fea5e74a486d90f403704002b53767507182e42c4cd7a2cbe77970ed6fbc71e42163a3489694f3c04283ad585fa90816a433770d11e9afadbd06dd111df3fe6e0c3d26bb6f4b8a80f4dad7e9f1b972e1b1556698116ff718c52924831fea3be3cae8fef037efd008dd30796aebbbb7bfab060380a24177d5c71fa7c2fa6c6e9037ebd7e7f07f8d7fbc7aec6bfde46c72ed209c4f4614d25f6e17cd306ae8f6088b2956d6bd76b0bbb08897536a767738210ca18b72791b8d1368af1ba664a393cc525fedeee1d3bf5f908bda1d4114f3571d98b87e7c692b6ac6bd991bdf69acd4973e182bbe1edee0dbdc7058c2deb5afab3b739615d4bff3bd99c8ad89c92c41c2ee9ecc81e9b40b2d9dd0c1ac81ae30ed3bc20ca477089bba53beec42349287ffc619a203661403109d33c15178e504e2da1ec439979b810045ae36acbd90214688d4ea2c714d3d4788411a6794b287b3c82696acca15cb324494e2cc27c396193bc01e5b8f360f8630dded324868938ee8677731b69b3b8f89ac541003b614a646f83b16ec61d21ae6783dddae28e7bdc893bded06143e8dedededeb2611c7c0de320809d3257b58fca530dc3cec3307a20fb9790fdefd4eba976e761e83c0dc303df6af82cef4e93a15906196490c1f7c990614335003140c87b5248938c991f332ed0ac0e08eb2f08ad7f9705dfb22610d6bf0ece1adddf465bdf6f753532a3407b2f167cded5c2aa05282df8c820ad19c81666d3c3827a9f4006b4361420d9424c03697f3fc182f6bb698d682c564f484208406b0fddd0760b6ed7e82716eca116e21fb455c5105c53b35de335916bac530dac59e15c20890421704969b95b5f2ad5cc5c5ccdd6448e5fc32ecc08da8f9a9a1afff6b7d66b56e703077c7e1c8ec3979bdaec5220a5baecd71566e79428e40fb7e276416c4472f997d65e5c4896c3c75b746cc4f2424b7033ee86735c8e37335f2c42d3aa46f9f1e280f0622257b8db5fd31afa66e33fbc21093e336cfe9929b43783ffe02855a7c07f70546bd145740aba882ea253d04434113d86266217f2c0344c9b9a68e4f4600554f768b7d8024cf39ca0bd0ee01cdcf5e0529c3b7df0d0dd3c3c2135e77440eacf0e609806827c5a1f14da5c6ad10179b45836b8e1ccf1847888129b1c4b469e4ba5999997977d40c728a5d7f00aadeb2e2e2ffcdc5c4de370aec677103264480dbce18202c93573b3b81a8bf26b297e23391714487e96d586f2c5d5c4173111a462263e224411a2fc2e3586b4f1cb3744831124f7376d9f89d3f784124308a2f43da184930d48a9857c4f2881a21a7d4fcc000bbabfcdd8d9dddeeebddfcd42fa1920cb9e32c5bbbd6b77b7773b076390fbedcd1813f23defcabc7f6b3d8c09f8de5b4b568899e59adbc690de1adebbfb432fd75ac05e91b2df7737fb410676ff5a970dcbc24ee052b8148e842b2162517027b2aeb8140e0547c2a1e050702680a8432664bf45df5fff3366dcbae00e15585df245cc294fbf05447f2ccf1611eb1529b3adc135fcdfbf55af360aa7f36051e0f1ee3d9920be357c095e93f32cccd6c8c19a76d8550f6805e4b63572b22488901b7d2a2baec04275850fadf28798f97f29c50401a806547055488d3e15155f9882c4e8533df981d6f7c21322587862c415aa275150a7f567861ed08a3fa01763a8220c2318c20839d041821545b81e94154891c416ace0031838e108562881521855547113058b1f40418253ff0ca6b1c1048ad1fe1c6dc25af085220c2d01288b204efd3b3c951552804058893e951531a02af4a9acc8d9818a72767adddd970f9758097f1b0cf4ebb3438d65415e3fd8e9bd187c6921aba6c282e66c7aa70d6a1fee48200655148ea89c84e10a59e38c114dfb2ee664d8b76459dc9450ff190d60534ca9869270be8282d619ea4357a0f5862834b3301c58cbdeeaeab5c23a253688cd1a5febec9fca5134fb851b73359bbdc6bd6f13d510d0f76264b362588f6b15b9b4af61deca512eaeda4aa0af9bd0c78db0972843948001d0f7afdad091b6466f8d7d76419bbeb97d5d91efc9583e9a4f13a9acac401ad5057d2b13a98c9a4b2eb18b57e24eb232dc3d2bc3ad646558e55fab542aea5be32ab2324c73b54087af59995e46b8c43d8517837fa56b273c9825bc12bfd575125e0c7e175d3ff160f8af1638418b6c8d5e3d197e9a56bd127f477115e97f145ab09f5aade2ae9d6b5ea9cbc89512a94c179d647b56c9c2243d4a6a3c5a67789172aa57cabfaff01aa29fffba793496368e7f3f611a2d0bf009d6f33714afc67b32d7f3b79366c2345cfb3c1aa2a7c2fada5250bebeb611640bd55ea564994ac7755be7d2c58cba8d258a55160a5367e8424157c42220589c0a09c9f1e0d1609b12cacff570a8cadd542ea7723a954b556ea7723c94ebb6aadb4fdd80ea2654b7215a37287553d5ada76e3c75dba95baa6e3a94ffd52da7e7a76a405513aada50d5a0d40d45eb7653b555d57caaa6aa5a4fd578aab6b3435a6a2713aad950cda0540d4559bbe1a7e970507644b68257a38facccccd7ac05943f1be2d1348f0e321cca8f658180cf201685daf0fc189447c34ac057a9bd6c533baa61f865fe00b3c6037c8c59658c8f999514f335ccfa353c0d343c0ccc97668da537c0acd2005f805949057802ccfa04f897e7f3f20298a83679cff6b4c905f033cc3a33c3ffaca5ff6ed6ef7ece4a9a3f8059e5005e06940cef326b74f9965965cbc3989504e359667d9627cd5a220db509eef04e9b6000669d01c0aca595597fe55dcc4a5299558ee61065396b9c55be6856d2acbf3b94ffc8d6b08e58191df0f4f860a68f504e006642c0fbe0f58c5ae5c42bf1fbe0d15849bc1ea6b1522aa6b176b89d7834560d5e89dfee731bfe71edd3268b4766d6788059658c594931b37e0ded4303aa4d9610ccacb134ab34c0aca402ccfa0440bdcc3a43bda74d57ea1ac0ac71ce2abb59493febcfd023801e19668d2eb3ca96594930667d161f22f94e9b620e046a539c7931eb4c2900b3961e00b33e696556927431ab54813b9447b34639ab4c9995248240d1a7442b048a30098c09cd506dc250d8509b30a08639626b604f783229a6c1a0d8611a8c07af068f0653f24afc9124b3591f4361a8a1d20e8a87f2102605655aad23b09e17833f011da6ea309f17831f011db6eab09f1783ffea30274878e2c991584294d712ba7eae947572247dfd40a198e3274702a34f4341f1c99148ff8a5ddb7636747b826f0336f2cb5aac0713d2d3260e7a30cc413d16d6c3588ff58f5e1ce44244b6e89881c7fed3471fad3b5b70f89ed58328efc430149798560c45f93121fc188a69d6aac210515c71635f091bde6f58b211ad1814cad8106343d817d6f44e351ead9909b220289f2aa605e57f5ba3624394a78d2fa45ee9d5e869e30b469ecc521b38950c0f2006da7b81b08b0d53a25c2ac56040c692199f95937ea6a92e2f3e04843e69dae326807d9c40b2c7debb1df1b30924fbd830fdcc3d1a48fe1d892a08e87b312e1cc8ddeec11cfcadc903cac502fe6c28deb1ff2c583787c23a83c226e9b0debf0587ebfdaf09e1dbd02e817c4b75839e9f1f1b8a5eff5eaa3544fdb5ab631a65b0aa55b9976224bd8a69fa79f23b3781fd1defd7d229b5a9020ce3efb14a527cec6b8956804dae83cd1aa37d9cf585d6f7d6fce159df13ea2f88fad4e66b98fa3263685d1ceaafade06bd98f085c331501ff6918ff9e961d9c73d3751a26023002af61346eeb62c3b4a96587e8379bd3f5b14ddb6f13c8f6a2c9ed10bd3681685fbd877af51deaffb807ec899ba586816fa361e06b968e95822a0a6bcb8eb539695dcb8ef7d96713880bd99c74fc63949244729d16daa17555426df2550f91e493a09c7a48a2843c87fa348ceb407fe682c482646bfbdeb60807ebfbadd94272c1f1bfde8510c92a148ab215563740d1218ba5e9bdda1e8710b441481c456b0f187d4ec4dcd0989e1854cc4dcc8d9017d4e3053581fdd0ec06fbc17e72c038a415085d80c0e5504ec5e570394da06a2a2de8e6c86ac3428753f268f00ca6ef6113264b6e2061e1caa010324a319e0024190040dfcf7b262c05f43f24d30c1af04b10881703e90a490596aa0265611b6028ff5ce96a9ec21b827e2cb3e4c89d9764f941b6f8e0f47a1f29f49a6f7dc5523af45fd387b578c0ad87c5524c630463c234efb50fc19802a6a88b72e8ae104cd123e88dd0857319b13074bb67ba6e1e0cf7458267b29eaf2228f36f0cb30fe74a77e170e9ba119275e3b96e584a20fb7d675da16d9d5c373f9cfa156433cb88aeb7c633bcbca09d42bbaf07d3fd4afdb0ffbd3f1a32e8722b83f6ee5377518e95446b8be3b5ed392cd5e1022f12897534b62cedb32c7a3468f1cb38914ad29d75b512d3788dc55c0e2ff59a5bf4c1470adddf7e86f6df906387057a7c4048ce113b49544c7e364813754290681fc49f9070b639f8f3ac9366cf6dbe39bc706945e36410b2fef53f6a1e7ceec636df93a9d9af0e7eed99d321029a7d8969b4ef7f9c0e7f6d56a6990e9f2f3e641175e08f6f837d2c752e4e1f5be21237f74291f557574540ad3967647069e6c5c89133a51dd218a3c20d07da04bf9f6fa233216bf7d07ecdc80e973af56274df340ca783730e97ba7a2af5803ec1096f1ae607b2720ee77011a6d1619ab55260d02c6903c9cffd245e599caedad0e863b7a0db6bdb6cc9f1e8f6351cd7cf3d7c1bba5ddd680f34dba7753634eb7a6c149b4b6465aeb7e27314fed86b5fb17f18867d6675bcbcbbbb5fd06b22ef6665de77bf476465de5fefbdefeeeeeede210f38320d3f7f05a2fcd0fe97be4fdb14597264bfdb60d77f372e1f91d0b2766a310c2e31320d5c64a0bd971a8021ca0f55f04587d7e4e17f3d57211f8d94ab901bb85694077ceb21b7858c6cbdf6b89aababf1eb520e870bdd79ad7e206b4aea4a49e188f4bd18d78ac21f4b7d9b31004340f88f3741e548b8139c89c5a1abe4cdda63e36ebcb96471e2157e9af0a00e7dffb0a0ef9bac788e388edf08052d51a58e8802e5a749129e1cc67922e4b3c4486a51409c4860868c75a125f4bd9194a3a238f9e949522467e809139f1d23421805e444498f4e112c38b072404c29569f4153fafdbc17a3caa00f0702d0e741c87d7f2ff441281a41a13d4ff91151a0fc3449c2d3384f847c9618e114a3a238f9e949b2453667a8c76392a3b4f34563c2bebf6ca0694b40c29970241c0967c29de04ef028dc094b8822891552e823020db6a0249794ed961dee6f73ea0e88c51b471215f2659f0449e87b027d2a2252d0f7841349a04efd36a72ae8fe06b6c6d2fd98591a92b5d4451e5967e8bea0620ad4e971379a0548a84f0a0f097487647d2a2e044169f04d1e1c042c4824291ffee37298213e7f7310da7bb1a03fab93f1c51a8db7c5e1ff626c09e45bc982addbd7a865d97b18f6ef9148148b0fb1b89fcd7d18e6d9db60d82eb610c28fddcccadc8010016ed34576e1ee5a96f5e8ee7bd01dbab484b4c734ef5d7ff95b0e65fff5f199aeb7e6e3d2c2ebe2cec68330730db4f74cce6f0614f27d8dcbcb8420f82e7ae2527b8030be5597629af5d8c3999581d6848fe9808095811f2106a185d1cbdad7a2cb61f778a13eb18530d0de4b0bf5ead1006221590b74c87fbd08b2896447f6fc98639f61d78ca7fdd8bdd36b9308f82f12c9a54d0340a9bea023837633812e579a1fc887c4a09c5006b268dbe01e3027626ea26067ab83818284ac91728ffe51d1809a81c9f4fe713aec0f5677134fd6c36e07a34e41e8f3c129fc161c3645e1f4b15b50ef5983ec90104e1f29d4a71296cdf67e518ba20d0305edbd5407a2ee43d85df840d8c7eeb4d83d2a014c024cd33d5a017f3f95e4b261cf9607f067bf833f9b4090f403c99ea7dca101e1d7667cdab4396ddd4a6dda667d6d3e86790983e441b243534d20d96b134955823f025bc50e8a803a8920c80c228560f2829308826413d54ea828823af1f357efb1e1af7b3fd72501ff0ab8a9536100c85d7376bf2c1805f52f2981d618ea0e743de99f9fc143c3f4d79987758d6a987e1e7472fa59e7e686b428c93a4224929428ac47d685b204101074d2f14727bb6953dc6998fe1eba50b462292ce5154b5d2a1f2cf5e34cc87a7558122f46ff76180c9e4ca7ac206bdc49d1feb8d3a6386bdcdfd91f8647833210cfb43d18285b63df8ae1d16cf168fca1300968af0e7dfff10981d69725f8a4a13018300a76378fadfbddb5e0e028140a45f721758aa21bd32cbf26a242f2673a921f4b4208a5cd271e9e895127fec728da2bb02e685dd0bf4547f765c12520843e64b53ccc6c26e08b7f38d0a66fae86b1d798903cb4a94ff05b74f8efefe441f96755fc13e7aa967336877f70b6c62a5142ebe27419f7e8a8523ecce384d665f2b33e5c5ac225d58bc1bf4ab6c636e1c48bc15f170894873635378b94d07eb908ec499b40829cb2c93b3b90fb75551e20d11e4898531f6f0bdad3829d3febc757bef295af7ce52b5ff9ca57bef295afdc95c85aa24a4a14ca7e43611a489fca0b4592b049a472214cf3545844a1fc45287f75940e653f42d9f7c9bafdd0a3b1359240eb8bab3a065a66c49beff57bdddebcfe9e6746c87de8eecea5f720ac0113b01b6afc8e3181052c2b5c826d12396118f8a2200ab1b7c1d7aa4dd9508c525e582772e223088af21c8240d910291b92246e552690fe5956b31585bf0d758c52f646b9639ad23dda2aa6a9a255fb304d5dd93aa6bd84693ad2f510bec8492682d972dad4a936adaa61e0934852768ac22849af89ba7e257eaebb5e897feb7e2c6519d6de1e8142174fb3d77613755cb775a2558ecc9eb117ad98a61f3ecb8dacf1afbfde9aa226356cce3496680ad4faee9944ab0703dfb2f66935345f5b031459af753714fe77383bb4be053f736112b6d232ae8aa1f5751ba2d0122de1993ad37f154941e1ef123675f3318cf5705aa21597e05b0fe1bf173879489e16ee61036d6f30dd9797d2be18bb5c0d37f77ad98677a5b0cf2fc7e0392011d6341c2f17d076e3987e291b84aca9f981cb220f42d6dc4097c3b1d6b26867d0f7d2bd97a0d5188628d0c210a06a4181c14dfc90a24f08f435817242b5e56a2c1722244482fe80d48af2624022ccccccd38ae242128a50fb436b4c6d29116a4b8988c86a41690b8a05c5e77cd58242f953acd0de0b0442d68d7249063108821118689a0ce4e352864518830c8bdc2d336b9aa6adb6da6abb6dbbdb6ada8c6102103a747bfe1bbafd3322af5273a9b4ef61190b0b10b2ff7a0803e9f1f74b6d8a316a9123bf387ae11256a2d667338fc6f6d66b9b8f1da2efc5b0815aef5c0e90c3817f9bdb1340ec504dbb2ea8e3856a737d587a7dd639603a4b10fd5e2c1884d69abbb1bd9be3c9d0251d4fe1ac7267259164e020fd6d264438018a3e22980045e923820972a8962204897f107f4af9f7d263e8ed7bcfa3ecf14aefbdb7edb4c013dae18045757bc30ae07771055957c92ab18448d196452e6a8bdab8a84867502dc81ccff195bac161fe01fb0eb848a35a884371a1275800ad9a38f1e96125bc84793845d9081f611d2ec238723a10b81cac08b77836f72051fe289419e5587890d0901326ab9f254928f71ca18cc37a3f82726a77aabf45a23e795a96cf28840d275eb1f002baa1bda669afa568acd928f6b0bb9e99afcb6ad2b0b945d67337834b391a407a591c97b72eeb6238338369b087655dedb1d123687c9ef13d0b3983c4f1492e5f8a898b13745d127237786e4d48c80c2f6b95828415121138e7eb0a5d9c5127db3378a960880ba23062e5d0ca42939c785d990f8c10c48f0f0a5ed80298f000e8844d9b13e6058961da8b217be2b07e3bf8718a140c3901c93ec8aea2b4e084c4dfe6a4615dd65d41663a6cb6ecc0b0accbe66b2de0638fd3814477e90648f07d58afe9d42744ea6ecc0bf2f253edd1cfdd80b30769133139a204e7b794b9fde81db37e6fb6c6f596c57d8c1f45d7accbe9c868e46ae26baf3d2b72372c497adc0d4bb3c116f6a8a8db9cbae110d9b41b22384aa886855c9c8cc886cd7a719c0e5ac77137b00d831b112238296b3de14814faf43591e4064dece0099da1af891d28110a4393a5588d3ff2ec77b3e7e4f529ff54feb149658ab2093f723a327a5d5ccdf5db6bbb177763ff65d495aa90fe32880fb5de46633ee31ce452bf6f929e16a29b5f21b7673e9fd76eed81e93e5637e374d0e8ce5da20a797dfd76af3333bbc4caf0125bc3e55a37d0de0ce9f021843ca073a9eec20e5ef0827fbdd5f180cff07277ea16b420649abacc0faf87f02db8d66541ee7858977559d65f0f3b1ed6f3af756df1d160ea16b4207c7ef564df565c2dfbd6a8f6dac6d28fd8c3d2fd0bbb30ec8aa1d6c738a743479b63d176ebee7dfab0a7d66253d4d5c875556e5d25d12ccbf6b32c66cc5dcf9dc32b8b5ad4b4e58d1616b118addf2c2c62315e31fb88452cc32af659fc38796011cbb0d8f1c0302c8bd66f1616b1182f2be50410e55ac01f46425cbf3f7485e067ff381dd7dcdfedb49df5c5ea61ebf66b913fce300da743075f0a7c2930bea7700aa7f0ac317a8c36f829dc18135f0cf8be85bcbe463a63a387061e8debe137e0d1e08733500cfb19a6193d7c194ca3f2f0678cbaad935ce25444bfcd365afe8034a5fbb154d4558c72738b35dadcffebaf8c053698b3feea9c7bfbfb3be9eb81ccfefdb55df696d7c6a3d174997fd0ded55deb2385a3fb17772d3a78d06b561b6cb1994204b974fbb1bfba5e47817c36b6c652f80d80f1cae1d487a50c453b72e2e3eeeeeeee9ec54d290b14ed8f99d1ffd21fbb7084f66f4dab087ee0c490052dec36e459f029fc09ae04fadea1782691aa7d9c10a9da24cac9c9c9c981b3fa4f4e9bfc090f867f0a9d2ca4acd8f12c7828a398f027b8159e059f82f2b34781fe131b46f8179c38f8faa7509c50f84f9f18f2a3591bb683030128965a129612a164c55242be4b48375840c80e9347838bf4b013d4a361e4d160ca8f06e73c1a1c376f22b1eb4114d00787803fd0f79ec533710ee53d4122914800203d18e680da2452591c5073402d527140cd19805691ca00b4724094df7f68cb3389e2006a2025e06b50518e13aa36b13c18fece076665c30f65e6a71261c1bb9aa797840f5be83571307d5cb2d855b462a92a5a518ea888480949344456524e10d3542c25f4c334553a5951a0d4124c0887a74906e5889b80a8146d15a64d2e15d108020000c314003030140a08c42281302822d7767d14000c8b9c44724e9909b320878118438c518618620031c0200302240322440100013bbcde27e2566dd18795930d96613cf3ccfe086cc1b64076d1775d7496e12b8bebb1ba30e39337b61b12ba0ba88b55804057ca43f1da77f83a5d22f74c206cb34d43bee498c9f6d17148e89e470745aef449ee5e22d103c16d6e322d064fda90e865b7bc4968b075fbaf6e06450476e1a7344b364f747831c6d934d473bbd852081b01db54dc418445bba63596c08766aa0e6b55b71553768460c9a6a26a0fa639415b83f054686bff5372da2837eda788b131c0dbd32e82d25fd004d139ec474ee79656a0acd1ba73ba84b08d4c7fe0050493e7fb49cf1ebe6f1990d94e555212a796604d62c404feed99f52491d004bd947c7a6d7dadf163522414aada803f74808fa5dae12d12665cae11a72eddf723b13ec57be4b66ff77cca28ada5883144a42be8be81a08a0c830ae0968d8db8d1426c7e58eb409f1f808f017ce39d41a7ad117e637d00cbfd38390ff288e13ac4fb3a0fb21bbf663b12705aa3e5a544a099d5a82d2878773ba6960b7e7af4a2ef44206fe1f2a9f09f4f166d06ed92efa993344efe0a833be0792d303191cb04dc00415343cd07f76bdfc7d38d346f447fc67c23527c7776d37f6f30fc2ce3fb619d8f2d10c8c4ccf5504bc9b62e144ba39c9e1bf56060578788c3ed3580e1d6945a0852b7c957023e9fe1030d5773619c084810a7b924191b0313156d35e55e7f083a21a0b1398e093e446a44cb4a4b40674026a47858cfbb24bcb3295a784e955476bd7f29c8270d5d3c46f0aa55870ae1242e2bebb69e73101e4d7a736a69009a32a5e190f686774a2109d369ec0492828a75bb8cc1a65a47cfdb5072a7517f70a156ff97c9a46d2e85111c03c18fc7905298780964683587b543cb381fda95bcb824081f04d53658b80b4b96b622501a14e01c62b781e9e86150bd7d50ad1f18c40ea56bb9c126dfd8a3e0d7b26c4d73acea79e1170869343d4dc4a55495f455882b137e9f80ee1750835c861a27d2899f400f4700f4e8eb000157d02ce3419cd1756f32f53390c80fd0f966588ebcdabff51b179da1060a770cd5873f572c4e3fcd6d61ad27acbeeea4b55bb0ca0fc956ec7de58e317092f8b87c9b5e6e812e07f8a9750fad3285707f982f77bb1d904b6ce88d2707da6b748d5217e1b86ff4026faf116bc3ebf9540d4873d45ea8e105f645bdca6ae509d7d395d1a4227ac361c396a285fe4efa02c818be6fc9dc91fa2c01084b3eff4a3477f0efab5bbc81d9a1c1d698c18e513bd0310eb12d6039fc2debe7d61adda466b609ce65569dfb76b56ec9c39b9fe8044d607e76d7a85e5ef014aa446503effea15237102246e40a76bf7fec98a6ba4817262363c07609ac94492374fbc34cbc14071c560b492bb2a134f0d577e7280de4ebe48961977cf0e585527605e426a5fe0060b4b7f690c0f5bd12ccddcc460663ac158e7bdaa87e2c0ef5d5c88021d7b0721055dc7502cd4befb0ae24430881e82385e8451a1ed0bb36ef0a78ded1b1530dbbae9271cf870ad236ae25c005c4aa7e256d42eb0d908ce243c77b409093e48ee833b9c0ebee55340a773b67815f9717b1a913e93425a282a696c0f04fec4e94a83de78c6907228b2bb7ba3d3bec42dac7676a2cca1940050e54bf099e726c3330ea39882b3d8195e723458b1f30ddae5da93ce7e48cdf8d8cf575a3013a3935cc78f6ea67c38bc1fd154026b03e46f4447cced10ccc27f130581ca889f917d0ec5f9a176c2a5371d33418d48f9020852c24f85ef7dc6be730b429f6f1365ae39d5fb9e3079ce789a808a4b3847842acde0d2609ed4ddb8e63aae859e9b71eabee391b1dcf4bd95665b316bbe81ec47535b99d8a608cfe5c2be3692d462bb72b2f3b14e8919624d68e270a8600edec85c28c345e1bc462451da47031286f60b5d90593aec03b2ed8dc0d760866706893c4de838de08bec362ae6821d9fa73ab9dd6fe6a40e84cfc2957877ef4107afa1eb314d2c62253b2b8d29cd1e060d511e6d2b467e09d5881231a04eaef82b557631a4b441da82772345490c1c75503d94b615f25807636ed71639d033c89e778ffe3a67fd2d8ac523783130f33eda0d981b0d56cdc160026bf00b5ffe832abd1b98f8e073bf0273e9c898650b1b0bf936e7038c9a8a74bf92378b6b1dbe2420edd9ee7e9b02154bf83241300b8793a0431f54cbdcb458eec82d2782f828f1d8cc1a341e8898acaadb5c34f0850900a08e17d58934abb1761aad6bba98dda7cf1a8992109caa4a4fd43491a7e4e7dafe63b2ca0f937b499586baccca63bbbeeb73e6188900d3e74c1dfa3f207051e3542aa958100f0a9572d7f0566bc5dbce5df4b57729d3669a6a3b145d8872e80d46d05ba7856bd1441e7e9d001a2547948dd78510979f4d943d66952fd8b41708f0e03aa0eb37d21ef934c74a2aa6b5534f699646edd8b16675cd44d1442ab6c98037884eb1ca8f8015446b8d6d06f31aefb930ca689a199464c05978719b37531e180a28e528c9d18f11ebf477717f558396ad3434061f22fbcef269b776fe4747ea18ba1e1f70c3b1c70c478a07d76097835e4487e7adaf1b34b623c03219d27c15ddffdeeace89e501c2368965979be3f618903798d119577d83ced1d7d182482645bd1c28c91e05c9c37562fabf58934619dbe29c2a083394249e258747803b8a69e7817d766dfa5e83cc285c647a119264823c55b11a4b4ed5c3155f526b567fb1cef6a3a85883df34b7ffb9b689a957d4100f977468b7b84cff3fbf152f68126c6853f761029eeb9dad419ac72d97ed09a4650e0c6b0ff282650cecb9e09d238a7ecbc589160b5c49534d4a6d492ccf863afc491af0305634bb0a62af6368821e9e40abbecb1a568460ebe925c2f5ab782a98285f1754a6f574b920f926565b578838e8b57c83c31db3e416fbfa8aa6559b74ffee4b42241841015952a2e1576080b76ec03020bfc037d972d4d72b807c192009f0264a2a52c816d64543a9b781c902a6aed6770b520224ad8ea68577a3f59406dd9b1b5aad4351901f8ed219c4c8444a0ba17ca39c32687c52c1f08e33377f10b8f90bda800b3c0e2193adff2389cb991c2276a956c511cde4a76ac757a57236141df86832fd0fe2cecd0ac47ec8e5bf16e814de88848a627fdca3682dcd7f13951f67fed78036c1794b7535d40bfb2ebe888253e6bdd5dd107ba5119af21007047f3cbcd6f9f3a111e12aa31934d832eb920831366fe1076b64f7d6ec01c9e8b19c2e60647e488146332cabd89ed7ee89f48e552b180881feb7cddf4de3a0808e31d9d46b5c5785866e25dee2850e040d6bb46afb7df4a396523e5bfa073ace3fc4da8bb2fa9fbf9c34b4e8a9ca4820a0d82b1ae1aaee066be8590e1b2cf989e77a47bfb25b583c69f0950e99c5ee9ed655f45e5903c21ef4b83a49d94c1a0ff39104ec81dac4b1647e57ea87d71b5db722d4714942fc16f6cc4c835f2aeedc6d9611e0d3028d432bc5934e5b30c1ca1ba59063472f5011d714cf332a13ae428f1b86b6c74f30d555492ebbff648b6f97741a0ae49947d9fde93264ef3b8b00a5c1e533bc68f8abfac08f43b474a73d74290683cc1ab61b456c526bd19a7027ebb7cb78114fca864a605a5b8a251706f3095bdf936f84684f652e22918528b99b5775fc9a9d1c585aae48ee3aabefe2b0039d1ad3469108aec66298dfe72fd05a859f0a01c5acae705f22d2495cef477e91ac15455b42c4c86478d0791efe5b604c2d39feab9806abd8b0893e663c8acd0f9762c7a80cb78a70467b9672f63da4e556f10375b58f003b382b27d2270b62fee2fd85e0932ce69997802c32394c9c41e7b7866d39286e27c4b2f239d773a10f680cb7f08a1cd62c4ae5aa64ed2ac9ecd592482237c366cbee6ff35f1cbbcf11752875db43552b39adc4a0752d920f8c0e649a6645681fb02c4bad830eb694a50c15c56e56d582e48489a5a80c78915d314dda43ee2d89870cf1e966df9e7a7ce9f277e2938fe8845578f2315687fa3444b06ed7d9152e9ecb066364011131d248a6486ac8a4d44fce7c74ecf12e276c4a0e238c5b3a197b55a6bec4129570a86c4e03c3baa611c765f2f290de122ea0ceb1069333038d173d4f6afc3c94b2b41a3d1e58a307d801fbab6641a15837b7d646503ba8b5b632f8988f62e1dc699935c9bcb2d93ebbe34ff9f941535bb30f65dbd029a364e9aa2a341e075d874586acbbcd2a2cb84a29a4b2d728608c08ac86914e98742fc7ad92a7efab9f164a6f90bc8bb8d382f428551204f21c33e37bbc7a0f5fc2a04d4a42204ad3336b3250662b0c16f6b4b2994fbca4e4311e03d0c21b6225ad4e05966967f461132909ad42dc56e9c6ba8b10358a4a2fd90dfd17e1fb466022e37714da48387cd6e84ef8d18a4250c1519d4f3e5353f4d8b224d6c75067a58bc624eaaa286ff9a44a6c0b8d577c1763a8ccc532d5e59a2fc235fd7c4ff909393c11424a961255d6f902259711289d685120a0b40be34ae05884c60782ba57a13ce8af32b7390f27194c3f27b299d5897b088e4acd0e3e305d43f1ac5a0ce0bfbbcc1992bb2f1fc2c61f9b0fd04a1409e0eda1d0d74a1912bc31610dd96902771859729ca33ed32236cd1204bbe1c171e41abb7129cb8d531f1c4e88595e7452df0dc50377e8a647e8ae060db78a016460648d156fd46ff2909b943dff63408394f9b2943734d97c5ec293608780dcffb51b15cac37df246714e67c9f2da3f45cf194a28e48d5d363b740eaa9162149296596f6045badb3179547a9a3e65f301f5271be3b76c04fc8a361c513096e13e168b0e1d1a74a687e5e8f4ae64837338d5cfb9d1b9c9b9737e0eb31f80e7db8cbe410ed11d67971c8a4756e77672140bc2373484be8dcb7571da10ae81fe66369b6ba160fb82c5b8d21a730e7323a9e1d1ca5d25cdc884168742a78405fc14ad69d695e9c4193d75ebf1c3136f2add2b12c3e4efb1731a00e080b8794f648447790046ad296f2032f374f28bfd211eefc34e5c0154edcc9cf6a0ea834eb42df8fc1315c4a47ce9dc517a75750806551056c4100b4ab55731a150106bec472e8e1284065eb090474a20d291de6b4cfc584fb7802a22ea09198a9b970b167b3e659829fbb86e2f4e47342a7a9c7e87f0e3b1d7f88d3582041f3b842c2a667feb7ff189801af05d3f5463c15d900ff98ac5f5f331a9059e98688ac2595d75c1e841d7488c6f96a9e8a1593dd9faa04556ae2674fbe4833b20cf25d12021e87af5fa0b14a4d8e988dafa5f2339bf7ca439b2b56012b3071a49d4154860ad50efe7bc6c12865abd2726165298b55e5d70a50f3d2c7bde1efaabd7b6845a727d2173af97c9d58ca04e831d16c4992d2496c2db1411ca2fef8e1886e92a146539c7c32e4eb3b1dbc26f870c9e91ae0404e49191271d4d71e7cab1856d3592e70bc11b1c140451213f3a3cdc29f1e221b02be68a641fc2fdef1ea27833c95657d906605ff1c9acea6327df8b67dda81008ac32e4dc9374dd504464cfa0e1a00053e728246512cb0bf28e03f6d4a046ee87a58019c0d3441819bf254a4c6678078313011dd3e9699184dbb59bcf2f36ee55b945262949bcfd67e6205e1b9bd373a4907029fc307bfd245b6d5df287e8a726e6ef07fd95b1f237cd09d989d906003544f48f8a71e9705a1f00ccb395df67f4f33c4cf966f8024b32a12f026635dd38e24bf4b10ccc5613e5018b42394a3651d2b12892a3b4268ac4a2941f295e13c5d25713dd410d8898d02bd3fca84cd8020655eb7cf888e724d9ebcb0edbb8a40bdb1288b7f0f2ff5d108c4b7289c8964cb799a11fd4e95c32f608d321f5fd78264b80a1a94db38280c57e42d8490e7cc1b1d80811dc3bbc9fe22eba1f2b9b182be5477001dc657ec0f9fb0da86c959fcd4c1f8aa05a11b584bb94920f802da1084f4260d3904620fe0480d0c8a05e194685e633a6e15a0b21bebc1fc95ca0b940409b61077fc4e68ffbb5c2c61334da673e82d88f43b9648726934327d97c7b06bd6347729ebc3dcc23cfe4fa9622bd1244a41e226a1511c11b91010575e2fa0a07718918e26157e1bd1716f526b405625d0eb56b4290f361110a2c888cd662141306f9db01559a8226d5b7692a2e86169f2969c0292100bd65c2f09a3985e89dd55f5bf34752f08ac93f3cfe612ca519e7e6a108b140010f0841182a343d6f2dc99e58a5ba8374ea49e34aeba1a6c76028dd1024cad11df7803e94d46d2151023c47391e4054bc24772cd0df7270788a5017155eab68cd28309aa05a211a825e2d4d9872b890ed34956654219977838e53cf36ebb61ccabc44cd0405dd4737b8191059b550c064e35a2c6480499038d9ea2fc0f51c8b28fe6bdd039cb458be7a0e8bc4e472337c539ecaa4018a8e26ad01e34a25243c3732d4ee48257aeff53fe35f4253faa699f36847421499083f908a9cacc47853389b0ed09d8dd09c67e000f65bfaf80b7a0d44d8653b87a785ce3effa000c712243b2cf06b11be9f61a1b1c14d04bb566297069c72196a7183aff7f448b0cb7d11ecb7c838855842ace61d99996723f4eae14b08c8fdb7cf315a660d286a33e78c29ad8e60af08a84158048d797e411f67d927c977e15ac9c484d8a9cd476ff263e277e40bdca79a0f60a2469e101af43964170cf00bc0ece98386a3ad3ec1d234061d5510f75772ba3d49165058c84fed92c1630f0077ebabe722c9736c290e7095c42c76601fac3a619d4f245fad8f5cc4993ad376bb7348f5a7b258cd45e6319188e4f7542837b11b2409b1c277edc476cb1d577682ff73f751397a1d4389be1e3821c0868d9b9b395afefa8c1397a020e4715e38f80c7f6b7b57182fed4773fdf7acb64ea78de7c7e968afd7a5598081160eca79c6a34bfdfc69dcc6a94cc5fd097b1dfe81002733dd3e065ee59a23631e91d5f1bb0fa1f1cca61f6696648c202f82005903db0d8ac0708b12a3c0b395245288618b648ed8ee4d172d50b18c7b57ff44d9b71278d67c40f36232439d4d2133ae03c9e220ff32742a61a175e8e4b6be72edadd432048d118a39331e25bf3b32f70d98311a0b80856a58e01b26e8127e3c2afd04b92c7b19e571d7273a8d081e4c1fa190164201380c70de4e282240b93c1dd13a8773371c499977ca733fc2598d0ba12b37202aec8833a8fa529326eb776c1ea187ff5679bfae155a12ad692872f88cf9ddad49311755fc69b28c9427170da32632e0ecdb16e16684d902e09ed2be0bf1b38a3acd7824a9688fd9c20e4c3e083f8b8f66ee67ad48e53b20a0e1ce1a08d60da398d71c76ce1fe057a246ef60e42ae3e2fdf6640ea1a769c75ccf11e5eec0883121c6688f2482655a94091aba059a8e7fe5dc9d66db4508b0164ddce39ee9bcc0765e216f057a5e22b8653b28fcc71a141c4715bf4b62a8c78803e33670a633796e8576bd4361ed1a4b5e4b6a7d275e5780ea126267955e63dd2b17448ae716190c568256ab982bf878a425e1d80005b871b036cdb65d40f2bfd3e51d0304a04b3d7f0a64f78af8a21ace6ce7093a6fe91a8ab139178a7b0219699f9ae5278bb08959b446ca6699fbb0aaa618476247db5b0f27da6fc588a3854f4b6ef3b0aa6559a17356a4211d265292be007f7bc415e8af3579247480f450398ef97c583f75b6767a3c8030023d2de42dbeb4d5d8db9659b1f4df1f83a70a4709db69318dcbde2865b12638649e082d0fb0c617181dece8d07a75e7a022850758067b93bb3d8fe3b92530168e22eef0d435055d8479af4da65dcacd10603deef93363e41942369f0f6333a3db3f18ff777487eaf59ef48356eb2048bfdf53944540cfa2b9250cd820cd1d3bda5ffc582c5ca458b8ab1442ee79b7a7bd6361a64f84062703331c2de2abbdb4d7323496b02b0eb12c99db80695af102fca925c90c39ceb6d7b989ba16da9b857619e607504e5e5ec178fbadeb8ab942c1f03a6f07e007c7783dbcd0b75d079bfa755376b43b69471b3b136644b3a05eb790f5a82a2034f6f5dcfd9875f5fab30ea0eb2d195900987afd0d9c1ddb2edd4bb6c5918c674eb542255b978282f102e5f51738f5bb4fba2a8051fa7f58dccb9d851f2db767101ed77acf1029c36c08d1732b412d10debaca16e7bf01b43a0b1cc4c343c5e519a9eb3df58cf1acb550648a40c0b7a130d5644c2f9579365b91d9b0ebebc7111f309d5fac64f949e0ce54c763de6bee1651248fa99f9c1b80615cff730270019c431d3b4764746298d4ef35e0da843062b3e436b0d6c3ac56cebcf5bf8f38fc0400f92fb24affd37b261cbfb7213a0654ec7b88daa45752c6047c5bb117f677278607a90fbf9845d85465b2f8afab94d871c7f81990b9420af3bb7dd41df215a2ac60637edb18c184b832c38e7cd82c4d979524c7df91c58bcdbbc2c88a86028a771af29117a07d584495017d59a1cffc1538149a26c010238394ca6376e2a0f513c1719cf387d70e8605abd5dcc6def3f421a632fd6dc944a699d04d073676a0d030ba1c62ad9c3376f70d7596735a895543e7aa17aa5a6b9e7fc4e153f2dedff5b80109fd1de9bd77f3cb4c0ff992e121ed80d0357d3b7889a35c3ed492c05de3810e1049a1c05d7740c7884529f045d4e11c209242015db3fdd672301878c4ed136c019008e40f1744ef3bbd5a6fe6f94c75907c399268940570dd0339441c6503bbae030e246ecb0aec9a87728c184a0309b10e5a569f2d977ce092404b489d86a7213415f656ae23a42aac046ed1d289aab88e9f288b8e2186297a0c015b52f1b8f1e3c2d249d3edc62846e240fbc6f22a9d6ae7d2035ecf610e118d12a9d348e6dd6503bbe6e11c455ccbd1470e2242d180e63a3ddf4f8ca507c610afdfd73292e31c0d3b1a8c48ca576ef22e09b8d114fe42e43194eb7dae4d64f2092b220e64e16656e8c9aaf371f10d7af4c186e6b45588445ceabbd37cd8d4fdfba977af1ca6e21457d8bc091f1f0f2eb19e6a2d68a203580dacd3c7dd23b4c9bf854eb5666e81fc521685c53f23aa3b6d556f239e1d92837eae1aa32736d6690e1845e890ffe45db31fec4e2042dd746fa051d44040884cf467de2ffb57c0e553e4c01b85c5a380f8685246f27ae7926801f687d437cdbdd4931fba88f99a47d22cd6622a95c1f528e0c03ab71e9f7983d81270de32c274ab32421b9378369cc7477a999beb906aa1b1d16b4e782b75b2daf5cc0a84c6d9ab273cb0ba27286b5c92c6de8bccb85905ac1171c0dbf1829d3020161a3b177a5e06d10601fbec2ae4bce51d696e1a5ab74e89c33177ba04f0e0138c32706dcaa59a57a566496f3e8e35bdb5a5a76637df039d3604b21599aefa523b117c012ff267c8995feb3181a161e730efe741652ef6f65efb02069d67e974822185d9647a5c846dfe067a53292819bf0f540e79287f0cdaa31e508d2107c3d23f13471dea65b7ceb3f8f7f825c3bb1f1030256eedf5907abf8078bca086ee5dd854f812a695e02e90a5485006ac2872a9d1622ae2beafddde60293cd12913431a01a970551cf5433252e1aadf74dfde3adadbab9f9eb6ee2626e5c5362673b12627cb7e28b4b13ea1f9b77d7c892b7be5b858af13e00f541a7676871b7d7bf81be100998cab4cc1ad9cb5e4c62089028e23bf400e55430998cafe608b34923aa11e8832fea04edd69ef54deaddd095f065c4fb33e6c7d776217eff4b7364fab12309c037d4e05f71e82dd847722caeaad7f8a15be8cf6c4cb58761fe19d845dfd3b71f648a8133878cb8a7d7e7d68d6de109495d14027020598c5a0d83a3a48749744a3cd810857b93fd53c89a436162b75141a167bf66c116b4d948dd83e86dbcaa95d58a7b586855128ccac94db05468c86e6a9b85b729c79bf3c8cc8158752ee5ac3e6a519de91ddf33c130e98270948f9edaada2ed14232bf76ada48e8a2f7f9446efb34406e88ac73c777e05ae9b24c5b515c67a89cda2a6ccd95c05017aa0bea56ae7027431c259f6458acfd437288abe0ee306aa2c3a732ae50fcd9cad2149c07005d8030491515409bca5a878ed4f89f3e7664d531c499d4684efa68ead45eff65c9bfe9a825c46d0afcb2db26957bde64b5261b4ac31b8a1478b366befcfff942f8bb2d8d7d4bb8887d222e8ef97dab9e2b952fdca0b5d056be75107a0565e5a049a90299d7c7cd9a2d213b80c4bd9032249ac009e3c8fda2c84594d89aa9550fbee505318204ce07ff1e5191c3cbdf9e928f2d79076a913f29cdb65c9684bcd4a7a6a2fe77844818a645214fa2ca01278069493cdb2be9d6c806b0579515e2d7133d93b70046dd5419f4e1034bec38880fb2688572bc45b3b8d4e2c4d97db465b96787df85720fb5419e5cd27de283edcc0f38137a8a88d69973c777cf05d8d03a0e21b5647c427138addc885c9f0a25a294fd6ae4729f648057c7b4578482bd0e4e4a32f191d7725315b7cccf219bdaea79d9b34969ebe5560d541099d6d0aaec658bb22b11d5266876d026b93b5970d42cc24431f02f47d80da1544b4e639d092cbd38a976b88b81fb5e18a72e874305c8131bb8f6a6c289425fafb5f8c3e4000dda0ad0993d57a5d4c1696440becdeb6560a33cc3f39ad68dd3325eeee258b0b6736280adadfdf8a579264a1fe4896974bd7f72d0de52d62cc783efaa8faff36524d7dfa3cb2729681c86631d7e46b5fee049b0be04bfef9782147956f52d084a81e3618fc463855e5901be6d9c36a653d237a93c5da4ff2df8c90090f84bab1b9422158e4d84af3a2e8b2c5b4cb0f4790e706d7a752e2e00db84961870bafe8e4550a4ecb88291ef6d8d9dca6854f8a7045542bcad3cdc28ea10c5746da3859c3cf05e2efc23cbb1a319a57eaef80b687724f69dd6b0632d6411b15b66bf51fc46692d842b9f02b7f069d95fae66e9d59c3deaab93690ce83dfb38584fc93f4ad982329b9605a49e8b3e753669ea86a2d2de49ce3c21d827b932b91cc9db759d7f0f452f35786035f314bca0eb5f87ad551644eac5b0e3ed4b080913d6a343838274a3fb58b8770bb358fd63f1af9751839e6abc61e0e0c20052fde2a73fa04663f876012849e31420b73e2da1053ecd0894e7ad966ec911a9f3e49d990b3e3105e84af9089d8ee8fa3e35352c4655ab4d32302707304cdb4b786f996eeb944081235be49376f6840934532ae1b3eb525d728055481fe397553fdd4c1ae551c61a7f2dac36bcd832df6a4409ccd1542ede1e6935d2248ae1159306b20b0465339cf4f61dabba66a3974d2b56a26ca836716177551663245202605a87afd1c2b267e1e44ecb74dc781e13d8bcd9b2d6de1fc308b08be396859ae5a368b046712f3168b4d0f89fc36cbc9be961a30bb3480d732c15e4008816267f5717c01220fa213fa873b719ac66c68d6ee4f9185569287f06f826601c8d0d8b85183e09620148f8e21232a4313c9a701eb5c69cf9a849dfdacf6bc5a4df8bae5d3ea58f31fa30bd289a47d7cb61bf1b7715de588f2495c040d96b89d0ffc2699a0e211fc5147f0f2f99e06a3c8fe39b5c851df3c1184d961d1c1dc21ef97314214364b46ca54f64738f5abd29bd823178b680dc6ca0cce3029192592fbcdd74869ce413d0ddd1a4408e8d5f9ce50220912131d34654916df3e4a8ddafe6ebd69f7bc3a5adc85c01629189c92b394b35890083a9dd14ce7ae857bcdcc07b8fd837cd6b9d832fa0a777e0316a2896fe803a2fae367505ced0a93d0825e02b3a0d5b16718365b652869f555144b186ddaf84ed4f2398de40720792b5c2c0e975546ea08e0c4d51561e35a275955f2e44c153ca5f37057379352d252c47ab64bacfad070c5a60dc20f2c3d616d944a900cf55dd3239bba2b074d4b779d655574e66368136248cea26d1f3ad5d0c862c45fd1a12e7a30afaca7f22fe97f354d98f2bfd751cf8dab837fde544123fc62dc73ddd5f8f58fbe67fda5394a4d09c635e611c578dc20eed734805631ad8d195fe7e3b9f654cd45dc0a0f0a4cfe5331a9a984e53ce8cdc14d2eb014e52b6f6ef436d1407bee904e0930d022344cec22291b0c75e727a2ecaa5fd28c78c382ae7dfe6d76f6f24be2c787f8b0c297f00ec3f1a39274562b8c54531df93144acdb9a35e91dab9dfbd65d160ec8b24ddd693c0b8a8abb2b4d462e5bed14d6730282d5b3b30f27fb2f645cb135f7e8de5dba52ffb2442a1a3723c82f7af087a227187b6203b3bf204d6c585602a736d99c6e0d9a12dee9b5b810f36e4a044a35036f6a37a32dd99df16858a6c61c3538bceff7061ea3b1b715527632c94ad0ba392c00d440981f5f03e2282a3a48f400d4f73eedf49682c6c2119d1a183fa4b1ff523d08439706bd28cffce9202c8d7bd0c645905b696af3d866d470e2de0e9ae36cb9d482fe0097bf0fff67aa2860b26bc6862ac45623e097c08db8436685eb9d9cf60bde51f5dfaf694912a17ccf8b5d5626a165d060e969fa293283fa3833651ea06e9da9001d092905c6d17daec3fa5e9f9b3c11b49ebb89450c4bc591490476158c76ce4767f7441258d818777c05c6d86b461de777fb67408cbd28e5ee92b44cf6e35e343f2590510fa25a5a7c28aa72ea44694849f14526a0a5aaaca2b3cebb5ee67944967a512191b5e5362406ae706b45f6e2252246b98f200bc007c29d340acc1910945471450345729c941b77260d34dbb63938e8a20d86355b44f69d729c2d913e1f03ee1b7372c45e47c98a3547d851cfe313008fd10e3dd782690004117dc81c073a17e5d9a29b69aea2e88a9761a55565a5a624a71c7d2548ad3c9271a28556bee631c74bc21023d220bd72234d41739a0375978069df612d66d85105e9b8c248c1ac18add7b58a16f9c5b8920b6854823349a5db0d3eaaee169a6e2559557e649387583b2541f22db2a7cb089bd991c63493cc90bac4a849d76b5ee6fe5508cc50ee018f288456ecdfadbaf0f14803ddbbec400cdc6d827b82317653d506ac8558d54572ee2b128fd14d8fe43f7ff7fa8b5ee252088f8ae0a9c6cb6917681ef7a0598876fe2a28342b9b8c098c1e6ece29bacde31da176a8c99d807ef1dccb908a761af0ee0462f743702780b0558042027a66ca6c657fe80de9e509d4a57a7f27f236bb34a92f0cae46c7991c6332c8220502ea4b0964a7b78c9ba11700de1e64dfb5fc3e3d61d4442bc1543f5d2be7c72f62d04b0d8a96013e34e328cc6399c7e1034bbd504f27e04bbba1248b21fd538859f4872745f79181ad4130738103d520859a7ac38dc939be52594c5fd7bdc5393099a2b9bcc6b47d0216ddf725d3bf53bc6e67edc090c3b8155ca2f15ede8ba7372c5849f6e0d1389e61eb4a26ae6551488aef9f5bbb98ea50576f4eeba28f03e676c015a9062629ca389675d641391d70075f213699e80dfc8c297f8a6695e2d96df8758c785099c3e80c7ed05bd3e472b12566295c67ac3cf3bece93a4c3cc04f4fed55f5f36053c3f1194b8b6dfc43613bf26c971350aadce185d2deb0eb385b84f116956bd5c2fcc5bb9bc967543afd7c691974ec94c0cecd10d5bd46fe7fb5791c57dd3d006d7c4088025df82eb5b3c127bf11c956302b7be89208fceae7922ec7fde528231289d49576797f53b9d28a76cd251f46b046bbd973672d80716525c66c32e0746cbacf3841570228878780d18077e083066ca69ac0e6930820ee752f13a04282401851ba8401bbeeffca78d51f72342fdf4624330bf0cfedc83224ac30dd49e7c321561d9ab4c53ef2a7a865e7e4d77338825d405ff8f499450b5894430e2e88abbf15060e6f4567704db1010e7dd789aed46c14b92507efed873bff39ee142ac853cbc3dfc58c2fa91c33f73a3e1a92628703a03850fab36683bdba9c143a4918127cfeed122ddb5cbbaecd69faec8ab8ca93a657c099b8fa560ab16d6db85e61a266ab86dded47f6a3a921f458e70243f8c0fe13327069956e9163248496e1d6a633af210d5d4745358069942409350c466aecf138809741cac78c1e759de049df5394c09b73ce258091541e75999ed7e1754564fccbd3207fb8630f951077f880e9135b3c5832f09551b4c7222149d85305e4efe8d21572f067a82218582af1e8913f2346109cc5b4acbcc55ad39925c462ec001ed1d4ae87420c597cd9e1b55689f86f8a3ea538dde66d01bd8e863cd110e0c0361a8a65243fe03b55b2a14c30e1dc14c883a7a2c43e25fd9255beb4879bc8c13bedf2161197422dd892494203c0064b033fcd3cacdb8c2bd0641037d8416fa22684ae8297323fa0946a96a667c0ad8ac778c1b53e4ead7ee8d2a3a469f42c28b13b223132777d13ef404bb0b5e93507ad226352fccf099246301c0e006ab8bc0b3006fa345adecceea273274555f95448afe627c625fffc0fbe5532fc389d7e681d889016640f538067d9c21cf1edd90a43d622283b3dc3a1632cb49d45017f77d7eff3f5ab8bdcf332f802472a7389036394ea4b8679d9101fa37ca4c2f549d95f0c189ab36f923f3493328a8d68bd91d3786e9ff46da6749fe14761ab364a0a6ad721d76fe98b9019404726dbda8e49e4e98edebcd9a04b50c13523c09480e0acf9cc1752e3d53cfc391d55effc09635b514b85ae7bcbd87ed6cd466785e2cecd409814c5bead400ff2a8912f01ab4345d1c5143e94bb05f18d6af669137b2090a8265f976d414e9757ce0505d34416585ca730778f8926ed398059a70d494b4a51f5082b59f6c123e6f35d801245eb362d46dc7e01241848d4ecbae3fcd815393d82c8cc7f6daa8b14e8a8d389e5efbdde28460a9e2f3839dd552acb9d1e57999a01d16ba4722f9e6ba22b431f58b8be1b8363b2e73a3ac59343cd45412cc6c3a5f58d3a1ad9e2bf8211d644e3ba3707b90b5a098f26b95266a174ee28dc953e220a2b770667ee8352706b517b7631b7fadbef2d645a912fd938b812cc79d39e4d16c32280fdd18213da29ac68ad45dfed573996b4051d8954130d8045277b8904eca4dbd13a971fed51d99eb919337fcf8dd30061f6d10c76ee35d52f2b9fe724ced64e234fbac25d221f11b2e07ef6321be285ccaa12553dd86329c505c58fcc4897b0939b8d8f680bef62029b74b4b8c47de430c7ea54d4cdf3e1101c111414096c4adcb164baf82799f3dff7a788ff621bd573df860535c285ddcda60ca4d4753d0e0d9a684322c2c5bab4d475d03d4ff7bcbb065d23ee4701c0547f3782ffa201b0804590a6403155be871f9f21415f8b4ae019726c11ae5b7f21d24e02ade216858e90e89aac487a41aac4c5d77c864a217b00d8d2b4981012d67092c10f83730fc72fc80fbb7092f324912ca77ac4219469b3bd6897fa0609fb582c888d1882a6ffab5d852bad1bd8b140c2ac78112e93a4809a2623620410726cbaf4ecd3ada59f2b0796e497ec2a9939530ba6a1475471179e2833481271d38f30b59082a2d3fc944187a472b96cb2e27b91f2822a3b266c21b480bedabdaad7abf82761ee7a0283004649090390818c6b74253c92689067729e7b7fb5204c1ccfc61ff25daf37ef7447d8e43307ef730489d5c47faa516306855925ff5047c3cd2d8d120c811194a51618e83406bea8911ccbb099f0a50d22275b84d84f5424fbd998c32908a9d571eb0b1e841c1da67cb2eadb57831dbb8af4c32caaf6d8dddfd2b164c72767813d5b4eff1f842a8d8b626c5f9daaf3e1bbb11d0537adb89fd0c711e3a55345b4d33f44b68bbdf2a5579f53439daefdf4de59e2df739b530090cfb7906b7a693a24cd519ac3cea7fc67988d44eb69f45dc70ca337ad5c1cf21ba7b2e9a37d974896c53a01e53f05a8da87047f056153acb01ff570ebfb304684ac2a0275358b7f4d63cf07fd1fd0dcc596965b25c9fe191c3348ac114a10d98325310ca6cdbc2c56801e867eb97fc1a52a316bef89982b4bdfc7f25afd2a929b4bc3ecaaaae517fa3259518003c690a59c76208d25d1cd82d602f69e94bdaf0788bc1af65b899547a825a73d22af93d5155959f5d8de4820bc1621951a9de8b66626333ceaae83f2304a45c1af534951bb4eb35923010ce2676a15f12145a2072583e2b10eb20360eccb9f8f6935b7c58b27d269a4cae724013031abb9c7127960a7faab6fc469c56143e6759b00fe00a9b0f0159badf5c7cc13bb1cd28368aa3cb5cd96237c8719b8e9a2ed1ca6e8dbd852e732622b01e277ec0aee038a4c870a24f880ca71af767027cd22f1dc927a2caebcbf5d9162aa246c7b18f9470af8ee0442b5741c3bb84124d9185aa10b7ab4bfdee01373fb4fbbb13fd8472b721d64ac069ac0d551a005e59dca20b0d78ab8fe4c2f427566fac27052f4fcf8b58c21b78428e0012ad019a2679cff0ae41c91b8066a2ec680c2e550265d4afc8b2e1d28cc7a165f147038e64583cdbe2ac7a3f51790cc0e10b4f5b9bccbe1f7e34d0edcc60d36bd62dff06cc9ee2041e4d5e28d01b328bb7af50e66f25c2e10e9f1e097f4989903f2eddc479048f04d190cd762afa540fa62f885a7f130195ce114b8e3a2c92947de8761a8b7e7206b0a238477eadc2b94caf6b6ee7e52a72f35a786b11772f407bbaa82fb41e5b85676d2f7e31766e1b783eb580c408fb06cedcc5861032e3f587d30d34f066dd76db3576f104894ae8d752587bafe458518426fe03249992028edcadb945d2f2661df866ee7f9aeb79b26c968b497a636fe01409d65dd6989818baa7b9f10e65142448ff04d7a8964ef881a5d6c334a31fb122b92098c3ae636e6d75b539c94f385190ea68898c962b1e89ddd033cb61f261fe84ca3f259276ad3aba38d8836aafd8a541c33a5ef2f1c309a41ed5aa01a6de8ccd0867fd78683d2b6a4a1953bdf84cdb99a951929f28fbc170958b3a70781d872f7849c58f336cd56e0b576b1acac0a3f984704daac08054192fdb4e1df367d228ee2b8392b5cb065f1121425f17695bad16352f6cb88f28581cd0eaa8d76b99046f63ef2da9a00ef8a73fb9c4b0f5d9119d8355265e6f050518294b23ab9f65df3baf627edd440071646fc3b04f2f767fb2e9c5524c5a50089d2acefbb70a0d22dbbd7cc3899b9b569eda950aabcd9726eb4c2d90442e69acb876d5a4805f17d2e96bd8fb4490a77c64ec350e81d4aebc794c83ea7f66c74ad6c6f17faf73c01e8a2d722319c292be637fbd3e4f1764a42928df5bb23a4da882015d995265719fd7bcd453bc5322c8bb102e1464c47bd531ad0e0524def4b83ed8eebe71a9d2d385d3110b5456bf8372a9aeb8e5ace575b46c8be3574db3dd7a647448685a89855ad5e6171e005bdd3efe5c983f6e367e23c55a899e4165107de9c30fd35b73d1700c7e182b911f75b858651f013b8570696423174380215213259908315ad497f13d9b165f9a4c4f341707caad3caa4c49c921c59b8219df41f666dc0d3e752dd34112498f070a86ce04314af4f3b1352b5281500ba77bc30ebf9c7fa45bb701695b8f9f2e0b13cb6169f6ec6758df6961a7a53dba655e1a53fc3168025a8f6e401fa60505762968f2b0e01ceb03348ee91b0247d8f33a2cda46751a6c3cd3dcd2115a3464feeff63b8c9bfbaa1e2bc13c5662c95c23d73542f87601d9ac46f6f39db6a9155395e6dff7bb1837f31821f46e990d73ad5b54a5a9766b2cd6abd19600b04815d950beee2593d590fdbed32ab5d25425fc3b7e0703376da41452dab1058e34f7635cfda382c2aa461e26ef7dc07db763c932be26dfe288d6a4aa83d665f0ef7ede851f9884f5431cee20a419ecab12ab91084e48c20507285101953a5c3719f4d6866420741d84d87901565ac779023e3e5391df88b6afccfe7bcebbe086b9adeb6b6ba363e8aadb633c374c9e3e35501935084e4ebe5012022e4b40eda83006f4753b992ce6f2f78da6682b0a28e5bfe7bc8b63407704dc0d84ca69a021bb1a041e830810c3a73a92354feb9bc430a899014cbc915610721f1d9b92594c4fd58274a0a1e970d2540b896ef8aa71e310e26b661bbbe7597288874d4ad9491e2f04f17a923f2a933099ab2d39985c2921541f977a336552e43cfab39242abd72af8f4890e90ef4080dc59099c7882fdf9c1c907fbef6ba854d616a20c5eb807410a5760f121cf4f86308fd15b9cda74c8f0a6757b8f75e3fa18dc944bb0371eebd5cca1a8d093917a89df544a7cf0424c40af83e23758c328f2a172a38cd40bf2579aea7aa890da49c3feaff55882173ea6db9180b73559bca8f748904a2b27a19e8ec24e87de92941581a3c5b08f57350e33fe350aa78dd4d76a5facb8e1c2b11f21f1ad409295720da9b6b00269482b71aac99f032c086491ac75b8868c9101446f3996e109985becb5065b626644f7345c681426d817a55388bf900619055ac1d6621f066889f3e0fac51b6d3f27b28f4e0b634fed1ac7881fd3a24f0ba570d549cdb75b3118fc35fb93c6157b11e6b0918269f7e2da582731be3488992f8dcf2501d1ef7cf4d363c7df8976bdd0daaf82561e524420645bc096a41d72cf9066c712b0c05fd2d6042b35a0d919a34270357382773d4d568c2b3e25389c7b58829818b56d0483d0033add26b701e2eca20d60cbff7126516c0ed43e4647ef0ef665c87af847b934dcb2390684e1491a5459060ef369fdcbff3a8843b1de336b0db06963a503d2a519fd805805f8379b5315956b7eb33f412f53cb363d75266bf2e5c9de55e0161a1fdaff7771b13313d8486fb44eb7260a25fb5c724cebfc1536f4628b488fbd0d36bfe821e8c5ef0dadc2c7a6bda3c345a9bee2014f46e0e482c2abab590747949f48fedfe211173c3ac74dd014aec6bebd84e0599fb13b08e1e13602151e08cf7b6da23729193addd042e357afc82979614da381a95a4e85f6bff7b40f9c3ae9c584097ddb40d544a0878543b11261f8cefcd4611b5b4769556944f42da51307dafd239106401461931fe18742ab517988d6fa284cc1af287b572420684d89c3095c65ffc1fe03a122671d1ea7447a73d1e174d02bcfa4d930bd2219ad80a56994cc8af38f9ff88603029c4095da2ec431f8501f9ef8fbcb32381de0679053af802cf559dacb622af6827cce67779c48e5e455fa78458103e83db66b7ca74e157203a840fd5de11ee47d57bc0623ac41bd4852104d9d9f971459382e2b06d4fcd8ba41de736b73bd812ffa5483dc6ec6932473be6a6dc0d27fd94d17cc8c021c4b46849b4a24dd1217f4b63e51110b80e160e434e97b788331c4776174cff9739c347cf86d4fabcd037e7630df2c5258d363f7e34046d341adc63b84de0f4e26b7f8f8002c736d65b19d4ddf57f0b82b18edf59294fd2bedf80e5c0c8d4f1d7a786663ceffd920f7e8be93bd3f00d488631c96d05569f5058e37b98dea0aab70043e805fd65e94c748ddf7fb6969a84d068bfab202afc9ea2e0571d9de93af3b9951566a4bf1faa79fd8a6c5d039540d56cbf61f8462b36260562fa13704909a1ed40bf6ba412e6ad37b7e71eca70b52e90060a3c93b9f1262515b6e9660056c3b38b02ddd492df2d669a34aff094bd20a848e92dfe4a1cb440f916ed59457bdd4f1aab599e275242de076b54829a0d6e589c2e8b5ebdd3ee262c81b600b320dcf215fe0157d9ab591fe627c437ae7abc8d8a647e3c7e023cffe2cb4951510501169ee6d9b5661e84e43e2edf8ec42cf22fbeec64613af60cd861b95c72f8dce068eb8d1c8a9a221fb4d18523f64035a17d95dd43a93f6e047c98e512c40bc9913bf6169319b162be59256ee4f9bff8a31c99131c8e19372434d43bdb2a93adddbba3c1d19ef50ab31f8fa85264b39ddbfc8603a385716a31ee6d27959c71cbc6f6ed5a4f507cd69829e592d26809d2f871c51fb069d7e49e380e5ddf5d4a9202b6452f98f1daad94dd054a500aef353b10a71e517267ce9a1fc1b4cd76b9f93477de4b1c91d5549d86870196a3614108a12284befe59a76b8be95728196ab0041e0d946053a16cdb7b1401409cf59d244d829706574748a69e6a3bbecd0e30dd0fe75b468b368f32e01091a4fd09c91879f6ba8ecbdd936a8b275946406febf01e277745f6c9312b82080e8e098d7526c185785c7ff817e654026d4bf340c25d30458674e969f1a6bc1d2c9e8b1fd1ccece71e1af1454317154c5618b6ab13c7bd00412e91ce275e4c9720dccceca7e263c83b760d331bfde9c29af5ab007c247f7805d5861c27f49a8187ae14389c6c68fd873055a371303fa8f57aadb71f7438d007eeda2c564d18e3ea7afde056ba4d9039632822e0ea33234c6c495f8e6356d0c1b57ace02cb252cb599b9010297d97d966b38c2881be93f67d5c2cecdf801cd29932a7653ea2b45f0a77a584a89b0c81b70128631e1b9ad99cc7c1c0fb767ac0c52902ebeebf514002db62cbf4cea7ef422aac5def2e149b987a51ca7d2871e1a10d074f3a452f3620843062527b94fe508ba88e76fbe203accfadaa61c088884b0071a924aa26d2e9f49965170836f02b228b3cd2f57530077749bd9e8e5a7599c11d8638cc2a8dd9cbfe1ac81f0336c5a6baaaf47529017cf74c39e8b333940a205a8d203f639fe4276f54633ca2ef282d40e42dd4d2d7818c0aef526b0737bf886bc87b16bd725f83ce6e3023404a0ced98c788bf2e22bb11ad16af244cd7038272dc1100b96dca0012893fcdbf18a232b312404404ba1fea6ed6a91dbf88b51650c2133a0618f69bc1cd75530fc6e284252fead21cac4353524a3def11a0126942d9db2cf76da0f785d0fc501a9ac598633f8869e18c7f09143e1bb3a5091a62a66122e584c6623abc1a519694c9551ce49fe3025cb40cf2ac8ae66b83a483d71f1fc502807115f7f2070c51486592a2fe246341b58253cb697c3310171cef4db98feac50aa971915d202e55fcb6c59b2417145fd72d0d44bec07a3df3f3c54e339ffd4129e2a7b110dbc9700faabbc5786864ab0794e40bbc184b71ce722b221204ba433dfe923cb2f0c387047a663c309bfa7a5c390c0fc6fd87f07123a1225d1afb203df9db6c33acbdee92c2e28f2c07cf21e8b1d9d48b18984c5405c038a9a92790de1a627d59f132c3cf7614b396756ee93d690ad1396a7856496c928b42d4ea350c554c297254a3d0b6cd48db2f29bcaf76339aa5eaca3f874b25a0d1c9d3f65c98331cc95e6fe1c1228d8dce178d3f0535861163d5df049a586a3636f2815dfcca26e338457a6b89a3306ef37d626545d4bafef143c89e5964bc01b84f100be8c0b745b7f4773d79ef8232d5a2f36b4b596f4c401dfe4a5dfec53b116042019bba2792dbc3d5962420a2d307676e4e34266faa568b0906b495d97e14f8178e8663f4e1d492b00635a9c5f0e2002a24938129768800f17e2c6112e482a845299e669f894862e2c16ddf91f8987a2b659ac2d9c7312a4f324a1061a5c11b72848b063d6a7599de478be9f2bb10753dd983b5e726c10b524f685315af8b20bacbee02075d10398d81ab60b02ae52ef11cb2759ce14b075dd0d22d32120c4a66487533cae9599b96f4c63e07345421770372bcf782e8aa271b8d67f0f9582c77465ceea09cd3724656f483d27056ceb94647a37fa56c1399be81472ec719af40108ca55cc3ca083021d802ce38af87964c1a00108f66f568acb715cb7c3a0827abcab33747b2ac3a1bb4dff1f0109893c03a1a0128e4f4f55be04bf537dbba8ea40291a6bc85bd27feac3e6bd24159a57e3538af88ce8578a6bea5e492f575dae917069c0c7e6be4d891b584e729b65fa41432b3c8374f3ff80d991fe620488650a81a4cf8968d767f4259c6c250c2934a1f9877bbf5a5ef96ef5136f19c8515b5dacaad470fd200814b861645fc2d0f051387c0e283f89ecb773b7d2bb1c3a9c909699c5151dd74811681b1fc1b71e89838ea7bc4c47ca0a05aef871c6ccd62a18f5902043df053ba8a2c1eba645949a5d6fac726c311844a29e8aa16bf32f10bab9f22a514b4ac0073bea48066c0df0c800c656ccb89b6f09ec5f0284a29602a13032d2f32ed10295bb62e0a339a756626bb160ddd94aecda4c35e3332bef594851d337d74761e78682df1eef44735c138ed11f4efd7a842800f3e245b7f3fcdfd3a5be3fa98c3d8c3a48db09648696e66752c12d03afb755bf0271d198b85fec584b3344f90a3834399a03bbbe300527a81a8ed354f2ad5b878440cc65fe533987086a0992ecc43ef072d5e37a621a58f3c5cf22688f21838ebe9df4237ead8e8455c89f68b30666681320711a8fd6e01f46b65c5522b90d2da878f5811d53325f5e2602c8545037f1081d8822cfc285f53ebbea0d5389953a3cf032e0f5762e3f2255378ba91a46e57a3d997e3311131eaef6da6f1cbad89c46643982af4b3edfbb75561172c945c625d8d8d06f24d4ae829aeec581e234a6c79017b380e3ff0c147ee4ad3c57a3f8c123e3c0d5f40301d9784264c6a2051b63b8cf0580c7ead64571009072344601c882d472018d3c15624e90c2a33865bc686d81112416430088ac231106e46f40b74420e746f85b8010ed6f48bcbb02d558c1ca8fdbbc3782c3421131dbf32670c877df5291998f667c9d69c215d49d110f53c58787e9ad313cbf1e24d23e42a4252a349e220205fc3c611d6c60c0b595d130019cb60d8e7f748f3110a1286783454a2d3aff6f3bc4f0ba3d817c7f9f810fe382c02e49af3efd7987c84c2e6d42b42e011eef15018e986fb36ad8d9fd281917ff9993f6f5fc228ec348ff18b9d4c54c5598e8783a95836a3dce7c152554292e62541cad57e1f8394a50936248b6fd8d0e59c1973cf9a8057c13126e29aec06bbcd819d614ce742c984d8230587aa16f22369ab1faff3d52a219dbcd3eac389367d41dbe5d0583f0394ef73337c56d3140cf79c71e7a13d9e069dfae1345c81c22f871ab40cdb5ff2d46908cb5d5f9ca1877c2ad801e3682aa68018ea57a72190ae35da6179d64fbb526c09b859c0d1fb1e9bfaa2b2941c7fb4e60278f05f8a6435e53db4a4a85978038757139624fc876a43713c22a517bb98c47030b78114e9780de2f1c0996319af006721c82180e5023c87ef1131a3dd14437e480ec0e781d6249a48d018af18320733c78ae99b95e4a9dfe02e263afc00bbcbd6ddc5392929dd7479c95d8c76c9d151e19828c1721f006d49d0f1677feae83847b818893143765953bd435cc7d140b606e31307176b263aa87a6ebc21533aab55f91677f9247bc57accd814bb5bfdf6f321399e18d2ab59403407d4a0ebbd50656e6e7ebeeb710312fad348af81c90f4cf52bde3ed8bc6ad10dadd1a355f2b3e806bbe8854ddd68db717370c9eaf06a53167c7765a7f21cb1db8132f802ae67776dbe16078feb52b31280421b50629827dd86070f2fd1684fe9de9820bd63791c4cbc84a445c901a94796834d5a0457cc5099d867537e63827515b4da364f2ce45c0460a726950c46cb35d194777c66d0ca1cee2add0017fe76058c1995af5fbbe6d2c3fc985135ef57d725e0f150320bcd978c927ca6caca601918630293620d9daf797eb15f08c04a0226ad054cde6a664e41425892fc569e5919888937e8c2f4c5b849a60879e734447c194a596b4ccdbaa1d40cd6adf559c22de103299cf63a2ca4d9a112404c4efc6df4347709e398cdd550b1ee49e01ebe2209013e2d7d1e78ddc671bb4f96d46de76dfc55d5b366b0ccd7174848a6ee913d3c7ff62457d33df68c142986538a7d8c552c4d5e160e0888210ce97c71101ded37a90f6da492e75d3a5271bdbbc76a3e5c505f6e9d49228f09219eaba97e894f4aae1904096dd2c65cbaf302db44eb68304187a156c6c544876fd4161677e43a30fce6fb11540f4e4eb2d1cd5228c76c36e49fd7e416c6baf184ba6daedf6e5c0600b17b2138712971127449b87a618db0e086de67e97cd6acc8b3ec4fc55c713e4b82dbfe745228b169b6713deefc045482e44325cf27a026571917b14a141e0c5a9f1df00b66918605843b3a86bbe77db1b4290ddb412f82e23f223d8fa5da6e5baa4b2f97f1e690ac5da04d0ef98a02a9aa2c2dbd7851b7e870a22b19648bd7d46c87e78d5bead3e50a2be71c67d89310632bae41cf0ab540f29d022c1bf20d77d480f2de97655f19d92ca7a3928a8ffe15a6d5a060a795600ce37161446745ef2a6e21389e7335eef1d247c315a07fc729a826a90df9687f60b392232c44f67f9393d80cdb35299e4416f3495f9b0fc248cd8b50f7913d171d892f4ff2217759d0c062dd914f7b800d149802ea2152695b601815a70dd9dafae9fb13007f30fc03a0a81b675d82aab9be09a066636a2053b3e1fa4ee24d0fcdd8d4b82397679edceeeccf7c6ed8f8f16245a830239df15671d8ca345aa428312ac2cc2028cd3a6a9b58a395dd9b48ca4c2903ae067c062a06d961803f3b0d60bcf3702c1f293853bf28e0735f21019fbb0b08f8ec3ebcf8eca71dc70232c2997ac6c5e73e02cbe756420d9fbb092b9f9b888d63b1dfdf3370a666993ef710a5cfbd031a3e77112dfa5bc6b1646070a6e639c0e72e81013e371005f8dc2c50f9dc31b8fff53c263893cb388abbfc9ee09e14dcbb029ee15f8e63a9a4cf0fc7bd23b867847b40c0fdaf07ce4f3e3f957b43b83703f75e80fbdf0a1c10c782722c13009f1f0ff74ae01c189cd302eedf8033c194a3788acf6ec7b92738c704e79280fb5b9c09d6f0e058aeef97e158b037f9ec6c1040430ac9e73f11c226563813dcf913c7029fce38caf78a9b668da3f8cb096c595e096c115881c09655e4e0265963cbf2011b8d0d07375333b62c1db0e5dbb2e5d14c617f1927959b64eb862d4b1bb67c63a8fc1ba0f2970cd8b2bc0bd8f2c5fe305ece8b9ba48c02b62c13b0e58b8097175b5681311e175b962c5bbe35ccf8afccb0dc84b14c5b96a52d5f1a582d78dc84cd388aff01b62c0db0e55b80e6c166b0bf4af360c75e5264b017ec3fc39655f8e778cbfd09b06539802d5f942d8f72b03f692505b0657903b0e5bb62cb23ff932dabb84e5107005b5631bada96ef75c2fe9f922ab62caf0c5bbe316c3ad83f058c34d164cb2a46f7c44683fd479bbc25b67c4bb63c22d9b20a5c45354ec861ada00c0901fce892906cd97bf06b2cd21ad73b533e50cd4c999c506b06314ff38547247aff591da193c3721448cac820481aa99233b708a871b53cd20512254ff26595b1acb0a393f3f96cb97d648d2b9d21420d8daa5f2af682c9004b6128ec64ed6b4c73b8d0dad1a19997ea42c2b5ba6a2e1a8aa5d6b85ed7e9b2c12573a52e540bd339c2d3da91b231a459026b5543c24fa3332ec5e91074a503213345d01d60ff1c5be05c4ad39917d2e6c6e1ac982c498a131a9c8b59f364f71138d319ecffc36d3861bf497180fd230b6ed7d019af7138353734d89d0d7e6e1202f6168ea569c0ef11308d38c2965be097e1d00386ff4ea0e042787d6a041e06688458811030303030303030303030303042082184103d7af4e8d1a3478f1e3d7af4e8218410420811240c3ff0c5b6bb5b46155cd72408a838742cbd8170ebe05477921b85e1d7006068ca294ef0c963015b08098a44dbddffdc49fc6e77a4cba15c0fffe4c10b7482a57cefd5e0bebfc11dbaf8c3cd0f6713c700c0be651e1c8db7f5b5dde801dbf060f64e1188eb1f849d7537ec081b75794185e3e588ac8c865c9cec6e24c94d313a899f5bb88cb3f97c7ed198f45f51d6657ee4305e989cb4daec03ba21510dae2425254c8c4ea0304911830c2a5edb2cfdc7f5c47e86b4acc01f9c26c5dfb218ad596ada5a5157d84b735c5152de0b75ae35d2a6fff85500f6d2200669466c4b46a26cab46e766daa2ad2edd8f4f8db4497bdb722c7e5f8db5d69a786badb52ade5a6b6dc95b6bad45f1d65a6be95b6bad1dbdb5d65a6badb525de5a6bed3f6badb5ff72acb5d65a6bdf5b126fadb5d65a6b45a1b72fa34b38aeb7d65a6badad6f2dc83e4916c3da13294cc81083898912940a1962486172c28425812a3961a2c48a50284e9828b12114355162e9458d4c94580a4295583a3fa8122596ce0c052d9dd0a2482c9db0a21e9df05114093ae19b283aa12834e9843572a7459ac3a1593fd89026c5d9a0eca259fddc1d5daa1f3fdf13b6b3e98daf69291c6bea43993639cb5970c65950e52c1a92f7f79e3639e4e12972da0451281dd40eaa85d32511903641952a88ca4675a3ea9289f777549b208be52996cbb07874e91669136cb58cf4f88e9d2e95acda145128162a0765d3a5f9feeda34d51a5ea1faa06a20a82fd5ba65fda1459ac3eb11ac5ea544f97de9036c5566c1189ad224642efff68da7449bf64ccf581553fae9727d3c57294f8232277480bc774b578e8128ecfdf784770f6fe321cb5825219a5b8249835612847893840ef2a1c37de11fc01c862780df6969becf516ca4db4d542b5502d148e1452482164b98952482185b0e5262ae545b969b65aa816aa8552b969b2582a968aa5c271ce38e38cb1e5a629e5bda8d842b949b65aa816aa8552b949b2582a968a15ff62b949aa1c25fec58a7fb5e24b796f0bc7c7506ec25a8e125fca7b5bf149b467a37213c67214d668742fc61a5d19df41296ccb04c5896d2bb1d91689c42b3ea256099296a875929960952061895800b05725a2973add6a092511d14b9da2707c8dce566bc6ff498225baacc962e1f82ae49baa3ba7caa7ea4d158e2f03169aa83b27ca276aa270fc18aeabd56ab570fc1451b29e0e8bb5c53709e2429cbd46aaa654b9545d52f5c94c8cf4e06844a2a644b9445d12854114d767a7f1477338d31a63ad560b6475022a3471e6e62773e1c87171e8affdfa661ccbc3d86737ab41bf335036837ebf8bbe31d0bda3d18b341d7680824bc1fe6aef098e054642d3711aa7711a1a1afa71cb01b4d9aca5371d0fdba75fadb6830e91c7757129187e3a8ea53ea6356e2df70963ff9ee0581cc67a4763ff8874093e5623775e6794735958af1a05fb6c25c94d313af911cfcd4e27f3204d7a9942e33436b8d7bf2e82333dfad8ff89139b890e88e9df0061daa44c3f94d5989bd5f170dd72ffcd5aea77dd6cd86d07bae9d04e27071d76a859b17274a4d63eb4f000b013e2830df6efac9f6a53cbf170d65a465dacf6d19c4b995fb54cc30b995d17e89663c5e5bdc0ec35187b0f12b3196fe35afa5876436f36e6f6669a847d8e87ebf67c6c232fdcfc649e4c97e863ff7cbc992e3dd557aad1fc8ac01810972db7c0fd2fa4cdbd19e1fc53f55b4982a5c04e66c0bed260a1e6341a7c12dad3691ab0975a8e8767bc0ea9e2a6be6914ec3123394530a642643504638d83b1c7faa96c12f63860df60d8cc5ade769b843d66d2a2e18861d86603cad806c10c0caa1013038fc4c0bffe5deffbfdf3d183fde30f37cf80a1c4598c2adf61eda349103f178ac1e531823b6ecf118e250651702e3ae6b1802fdde43352de51084200b7966912f51dc772b91468bcbfbeda2c6b797ff9e5ef7dfdcbdd73c4eeae6b834d82aee350e0efcc503e7182826ba3bf659a047beb19075b373b6bc6595dc269d3a74b19d6e01955ab9ca68b74893efc36e258ea7bf8b9b590bdb54fb59c6d996af9bda7643ca67da649f03f9aff6894144d631a1a29eff591ff93fea4bdc78817a1c2a5a93aef08b6c1e761b4ebb8e9b3e9f8bdee4f72b0c8cdae836a12fc1c0f3b0f67653f393c39111ebd23ef1dedbc60f8a39e9bfde427f7f01dd525ffa669211876901def9d2682d33736455a56401c10bfec86ee2036f4100c9bc6a5c0c7c2b5e19fe3cdc860f8bde32667390aec992efd70208e25f6c31ed4a7fd75cb2fabf1be63eef754d6d2ffde635ce60537b70ac3cfd9531ee3325d72978213e9207dfd9f8c525c1227d290c79f8c526487b67db40c8ebfc2f05bd5a50c8174093e9826a134d771222e053e9e2238e6b9f0283816f0e1f348c11da81e0ca11bc1101ee152e0e78e01865f4f94e0e6a6d1b91e7ed374118ee5ca6af43f22bcbcd6f1b06f0fa64950e6f968d2c438e04b3509de2881733c1486d190479766681a47810f49ffa3d1bdf09ba64b411c8bf3076b66bbbf5ff65e9a944997024ffd2a34fabdfd5dbb34ca852b6ddcb0716d1045fbc35037183dcfe0828026b8f9e22b5e287fe4581a5ff17297db341caabfd3e266437c7fb7a1072ca34b0efbeb2fa9e1cb41084fba3378e23613f8d0e5b488de2fba787de0c368e79c730ebe4bb984f8a0bafeaf97d1a5eb7118b99410bb275017be638e45022e74cb1b22b15a6ef11c7c41b6b08a105657b51b1a5389c9c0eeaf16dd2ad89dc6c30a6e0eac60b7d9783f576a566f933e9f49f8ad73ce39127c2729ef1d8dfe4f27ef142bf86ddf241552ccb8702be058dec7b7806371383f1b1c3f6ab905bebe4278e167d3a548812645d2ff68b4cd1cdcecfefdbb806379aefecbacc831e0f74a545e6681dfcab1889f53f03b65f8bd87d26e9987153c0ac275f5441037bf158e3dbc95f66e9a1457efa10def7bd525f7f1df8d9430c3a1079c42885bdfd587ab8623922ae026d0df98e31cca75d1805bcb2ea7456bc18db81137e2529e068dc0ade513b899bccfd0065fef30cc9e8d4bb9be566b5d0a8c28b8aeebba60bfcbaf0b7e841146086d684c37e852f0d420961ac4a3ef92952112212f4070bea7e83413fff7d224f7b74bfdfe58b4454b3802c3e0030bbb9a232b0c5f7c5ca3f66214f2e2033b212f31b8b3e71cc54f841f0afc541a3f15374d87021fc28ff07d832f5d0afcf872e1bb16f0552a7001c7e23074d0615c904aa552a9542a954aa552a9542a954aa552a9542a954aa552a9542ae5022705774532370104f9d79882eb6a8ec06057738407ae1952f302bb1ae962666626c5b3fad5e05c489e1efc7ed6bc482d4420e611e269aeb81063f0fb1853465c0a0bfe802722351ec383a36a1e3b364fa6c7e5b4a03533dc9314753eb8ba812c68047eefb0093d803944885a11fcfeca70e801c7873bd0b1dba00d848133ad4ce033a481043e432222f019f600029f6110dc0f631c8bc894438dcfd087077c8627a0f119ae0007124a70a6779af1d99be080cf1e8596cf5e05199fdd088e63b93b70a6a7bae1b31761c3671712e3b317a1019f5de55842dfef4038d3cb61c06767c1023e94524a29b51f4b29fdd8a79f3f4f2bfd58fa35dbb2fc2ae1572d52ed6177779f4edf7cd3ad0ea5f2fbff125d57f429e51c624e39e99c33fb39a7fc7c6c566badb5d65a6badd7adeabfe852f6d505ae5f83abf66badb5d65a6badf7d650ada1faf97ead3734e99c93caaf9fcff7a66306fbb496eef03d871ee1d31ad3e8506e4fc6e38337a034b373ce39c49c736694da5b5f5e593ff2ab7c9a633ae59c739acc479dc68348798339279593cea7534ebf445152297b659f0b770129af2ae5f522cd2da01dcbe95ee32b2f60889c84937889977013efee6fa24409090991bbfbacd3a9fb67be7fcedea5679f39ad3c6159a73fed45ddddabbbbbfb8abbbbbbbb3badd43feef5baaeebbaaeebbaaeebbaaeeb92d252494b32b25a2ba5959fec6369e4905be449d666b54aaa33e70d289d52564929dd6c5429a59453cafaf948abd1f991f323b33a29919d15d90cf9fdb1ce39e79c954a0b6964a5524a29a7a4f15d832fd28880525e5e3b0711d59db8f7a4dce4f62084230c6345718bb8107094e7423e16b05503210b36c92140011861e717e3161f5cc55abfe1778c20ecabebeea62b163b17f31f7e1f7fb8f9e1f734a3d1362b4dea7e3cb0f8f2e27e5f4a4a308c41718bb87104f3b18f2fcfc57c2cde602c1e4106631f65a28f4bbbe102bf7f66336afd6c4695f223099c49ca14602cf67031606c7b8131af5512fb86691216a3e329157764f1e53ac1f9314b8cc91d586e19ba63d12f218c9f1f865a94946e10ca8669d48f9b3d85b1cff1056328199f01c6de633cd5a538b31af1db531ee332329b11633cc598c257cb66410663234759515121a9d48fca3bf7d8b9e877b8b6eb6959817340785d15f49fcf67f5e77d11e845d94ff91784f05b7eed77fa517e8cfff9f8f4e9fbf531783ec5b1c1f48508fd1ec291009072af72af7a95a9808264a741f9e8949d66c5897c3efb8ded1569db3edb68bbdbd36d457dfab99f6e4fe6b39d642d024051c172af7a7569e00ae94725dec4676962935b2695d85ca3d42d378e2c19724936fa59ce8f0e88e7df00e1f9fda9b57e566b1dd555fd95aeb5d65a9da6d6876bad9f0f4046e35341b566a09c7dfdba01206bc91ece6fe6b36d598dfa93fe7c8d54a7f6b0f4202e057b121a8d8d07c1a560ef40702c9aa4f21e7b45bc6d557576a2a6d3a54864e7b31950ca7b7dbc995853ea0c366a2a9f19c160ec637cf80952803de481b1afda09fbaae22f3ca355af1c67397ad7f207187b29e53fec257d1d10677f0384b3efaf1fcd613be77cd014cde95626d72fba647fbac0f36b7073ce39e79cb3f19c53b4653444f3ce09ead57dd0cfcfa29f2ab216d1a6e3e1bbe587412bec9de6ddc6f4e7497777777777770c598cceb41ad9d3af33481537799046c1de8938cb71fcc66d2aeeee7e6f9721a3511b76bf68233c19222cac6b7d0477e0615857717b3215c6f0669e8fcc698c5004fbf9de7157b17d13a3573578231e17eee8c1deab50dff4542ebb1530d618f32218c61a32c2c13ebb0de8b197d9d3cf0f08c69c2845d632371d0f83b6ec5d66830d0358ea88f48ea76300eb9a53954a06294da4aa8575cdb18aa608acea926f29540e84c6249b0121dc566e7a3a4fa73acdd3793a4ee3586017e1434a56ba6b5ad1f1a62e9f94fd3a20967f0384e5d3975d92f54f6435e4d7ada58ecb3bfa7eaac10304c1d81f206b59811f90ea341cd0e56812e630e736179782053980ad1ad472b856075c0af6371c0bec8dac4a8a55af7a35c2d8087e3691b5f8b6830eae4bd1dddddffad36912f64ef31758712c9ff7afc149efb75918737777ebd45face6e6faa6591f5b226bb9361d0fcf4d6ed3bf35c72c78511a638c31c618638c31c618630e5de241e6022b8ea5fefb175d824fe2b30ac96752c9e72ff17964e2f3358dfe7d0dce857381df8f34a76914ec4d68ae514a68ae4b34d7249a6b944681efc513198d18657c41d3a5f8f2f3e7254dcd56226bf96c397bf9f14bb21af17a321a0fbd6a12f6243413fc028880b957a32edcfe1bfa6dc82d6ed615c1d8e727c3c30936b9f1f0e775407cfd0d10bedebfaed46de5e9ab506da50697ae10f921231c8cfe8b36f56aa54bf2492a4f1abd4987624f29a694d62fc968d01754053f198ea51d4b378f76278ea5b1bf288be1977f0e74d361d3f1f067cbfd3b3409f3d7d9c9216bb9b292557193d3380af6a4ff3af8f14e1d1dbb8f07d59de4ebe50713916fc24809f708d8b9112f10e04cd751b0cb5a1c671160d73fa0b5428b1dec9ccc9c29ae5e48708359602764043db8524be98ed7e3d212f58ef6e1f5c4d56ab57a3c24484a1a2612711fceae06c6b579419eea87ed1d29ec5a5d9252cb310971c5c3f3483c3c9f5f10fc80705fbec4318438e312c48c8b2b2f61e25d9746ef3c12c1f17fe5fa3b49c5a56cb1c20021846f872b61f7f2ec10756e8e0c6782a1832b851e7e035c893e2439535c3dcf48baece09fb892e8e14357ca1e4208a58417842e2bb7723c979470e5f19dc7e557a8e5eb6ae2eae1c7e3a6186d1e8b9978a5961fcf9199d19647a32ddfeb64fc68f35cc49ec722be0d8e0f572b9e1589edc2707194f871f4d936f8210d7baa853eae62cf73016d1e8bf8a3d883e3ca797ce7b45aad4ea753a516a76f643ce531317baa897ce7ba09a660b8099edc0467767c47faccbb0a612824c2b22c240a61374d8a8f27c795ec17c7027a1f707c1c0ef3810eb8d2f5f15d9e0b87792ce2a38238bd1ffce5c8dbe1484e0747821fd21ae048f07de5a61d1c0a74930c8702ffbdf0ac7446bec3da718e44379176e2482737911c0afc281d8acd69e5a4e2e08c73970d8deb0a7d7e186a212ccba0086226a1ab99843ee432214f39ec318e25f4f11d06ce534704d1f11ee43811717e687e28f4220bd26e7018f4d545a43d9ed7f3c0d031cd820622a74bb0127d7e3c3d8e2566345e74652da19fdbdc5c9a145f5623f4f7abe86e2ea0d08b6952fc3c1ff4bae0586ccc0f7dee17d1837e6ab746e845a11789441f7a187da748eb5593425aee246c7d73c287ab03e21baf85a7e861f48912dc164fcf8bbbe1829d4be9acc6bbf1b028a4e570291e702811e60820744a80231870fc1c5938e6df70c1f733082472c9e1581e0e7eec841c01045717fac1660876b8074c8220f8043b212390c1a2c742a2237ce01076428e40e12a4d66883e943d9d966a5f69f62e5d027d7c14f46bb52fbb41d4826533b2d00976590be8459b494b63d1ebc8400f38f422180d722d1cf10487be529b851eb4b99ed0e692831b7a79abb520ede190c7841e861efe95cd083d0c3d0c3dbc01c2b0033de05e893ec78b01730f38c7875be7c0ada794cdf30226e28c6e6e6c419c41c731c125c10921a93cc9a55162af7ad52557d373d38f475e2eda425b16800d15642311d7e1dcab5e451a40179b134008f500c72702c5234ad783637e3e700c3d1e1cd0c5b1cc8b7d5cc5555cc5555ccda97da6964dcd4ead4e8d4e6d4e4d4e0d9bda35b538270ff3619d67c22809b708421ce656304822b3a196d89292ea220e8e3f6484736f3cf562053b79ef68f44f6a1e37037fc495284f9ce30a6ef1a649319e48c1cd7006fee852f6fbf1e18c8c3eeec90a06ae9a47973e1fb38f760a24c071e7b1889f27166df98e4623288249d80919810daeae9d7bf083e2169172535c394a7c49ba2aa3959ab85ab50d6e23700cdd3816876f3894f8f123cf8359dd908c14213204a786b48a71456594b5acc0d9af1ad0374d1269399a143df5a357f17148376f330a02c49148ffb1572e2e257e8d39b88d839be30ac7f82f7e5cc59bc8722cf3634c028e479c299e1ce50b8ee7b980a7c7227e9471412a081c7f108944d8ab348906f6224c54452012242422908804e861b409fccb047ee8455f2b5ce188598d152e8633999444f0e3490c283e979cf81c2e25be48736992c9e60187121f45c9e94486b36bbdc413176012753ae15a1ddc874538ee93f8ea1ac94fcdf540ad45b2b934296212da0d172cfa99830bff7a971ca2eb619803e21b431f7a99cd801f0a855ef4aee361d1966d7c669ce02c9e4ef0e3e9144f109ea07c13d90df3ef75dd75d75d1cafcf02c0f5a1167a11111cdaf20986105f0d841f8c7129f241f86a1f9e0fbe5a8693e1ab5995c557abcea3e2abd11d8aaf366d26be9a6c1989af86f560f86a57ce85af1681447c35f8502e45beab390f2e453e8c96e1f86a8d41db894b910f9fc3a00d360984ab9de722732cfae388742308f767584d6cbfcb3f5904f87af11e48ba033f806041edeeeed7dace63390aa4d1910af74a8912328217ec6a7a782e76353d3b988718369051e36187b80216cba5bc978577702ccf3609738d82c1f0b1ab1f4ea38cde7df24517dcc78347c83649033b5c0143d8dae3d1a51e4ebe3d160ca56852fc1d70b842a326c117dfbf16bdc21043e0e0124d8f4fd287eb536bfff3554a19fa7bbd5e72cecf3e4f5d4a29a55f220863f5f9e42774879873ce39335ba90c65d7d60f952ba4b4f4124118abcf278798524482a4a4842c314b484888e46749ad0e88ebdf00e1fa9652fa1fea745cce0aa59406991ba8d4eb59ca821e2aa29104001316000038100c068442b13ccde254911f14000d748c46725c409405e320c9611c478c51001802000000000000024056034bd03ea6b9bd269469fb26ae6cdd77df591d10eeef4f8e4343256bcfe26e0e26cc60fc8edd0d339e811c36ce91d344a066afb58eac54e877b770d860c40c467171c1d128396f191057db038ca661a133fcf06a6035a4f74b4cd42779870b4ebf66fea96e46a185451cd2923f27ee660214e1c6f94e4d91c48c91424aa02ca73243439ee8a510304b028b4201389ac03214800c01cb6a7b9e00e486aebc36a0acb61ae2f36f8017005d4d1e65399ccab4f0fa4e879999c8203f93e9a51f124079573b1aa87821828b69b7c2baf8e895e6dbc9848f3726d5db5bddae3baef3d95c2879186aff00801156374556287f3e4fe03c8d31aaddeafe6deb47176c3cec31aa995e217c0a299a793897066cbd1fa70becd6ea095921926d86f49ab987a70e68ae574791efd78e3460d0e542987f2973362e49e35b5f97928745d7580a01efe20295b2362edfc219b24c60081f8dcecc1ddc129c9718ce7a68cbe99e57e116a910a8bbf4316e11d2ef595937eac02062cedb2bab88590d789bb5e496df78476c9bb0988d2391696bb70ade314f4a2b09a56756fb95909b7a3804c7aeb2e4130ff009b1b5a92b51868de47936e45662b6197d01657347c9db98375f2ba6a240e75b584c6256684b174b4c309866c18c495e74d4c14e1b31a14c0a175c1b5d5e61ea99005678c6427703a4cd11114bf91ee8b10372117bca8cf4b3b1bae4d207691639618e90e963a29f1b6560499fcc55f1e65ea9aab2dd448c0a2238698192b938eade693134c62a5fbb92f45c6db86afcd36b8cabfc060c59e7d4147272283afba70d7654121696cbe63711353907ca0103309eeaa6ce42c99e01df90d2e4625b1398bb8de2baf2513099654acbacc6ce0cbf50338a9acb7c28d1dbe65b98f16ade92f9814e78efc0f30ba2c79aacc8854570e5afb8c53d0f2faa814930cd31ad9ecd86a6cd8214869f23f5d951b3bbfda4f764f81180f4722a0e31bcfe3e88b9674a6a5b2e3dfd8f027beb0d2aede18a15522fe112cac4013ce6124a6e9071ec1671a4a127ad5c69d8c14c1efe249024f1b7f5907757669c31936e4f0d30e06bedc78c8e058e381b253fe01ed45d29af149f43f26801543cc605e3c77f528e4d7c7c8ed3518c82ff8d6c63f849617d5c0c8d11ebe93630d15be4cf6bb3797737c2c459f85e01311daa2326ff3a3c6e1e1755b8a65796058aa5d66e2673c95328bd9af7f07ad58260584c782795da7cf3345f277367e71f4c5a8f80d63cf267075569e9904e66449ac2b19ff159b9a5477132a9f50568ebf8638085df93f29e624a597d77bfa9fb6811792d6b07dee01792496777f9148023ea7ab1202eb8780448e8adf64ed6d9e4698a2c86f95201f93fce30d6492841ebe9f69ad25092a3516b85ed417b39d01cc55418aa11c5a5ec35bb9a2cae8377b8d46c578f975cf6986c735b8b1c0ad16886f02ea908bd0a57b3783d7b782c0ba46ef387c99634c31275de9cbfd2f131704a5fbb01076eb08f14d97bca6f8dfdd83ff7ef8ae67e3c97649709235c4a933e83908501d1f3873a0f6d2fd1bafec13251231f1a81d188e7a2a87ec6c2595bba24e7d852a7ef2a635d8944710103543c755ffdb0a281d93cf814d0c48367c683bb1f9e5097338d3cb0002edde546eab5e49f85bac0ce8d946bfd5a1454bf1da10a231755996e3f0d3de8f51c89bd71cbc8ab07f2082c3dfbb2fda692761cf1d6b7334f1caa42a48f2a54299aaa45c524a446814c9685dafe6a81ef974593c91f593070135d0710b588fbdf90c9edbe8813ce6ab296a022242379acbf5c4f083a919b1c3e1ba7b914ec1ddf40ccde4cb070367e3c438847e18b3e1bb5910afc82c797ec20b3eea2f8351b2c2cd7fe359b7f31f572124cacad007a0f3995854f53da71689f110edf7a859ee2fd001d1d8bbc644dedd44b10a6ab5e64d569ad44717075d07603f273ce21c37e573afb5a5a051dc6c56c2e10b470335a3513159d1318248f46a0c4fec0503ebe2b58f1690d9f6ca605a12c2257c7e26658f95a7045806832a355a7e724d18d0a2f6aedf2e1f23dd605f20300864b4be4a6751f48cefa6ec22c412ad935f8aa786fe9da03e5b0dab19d977bd960b60f617de1cd3e70c74097b81a24d1b84630049e14b814f82d43d12d09bac4714727c17e3310e0c42894a1365bc02d3110a857c48ababc56851d791caf22a08f8d7485b33360aa4dc06c552568036e023bcc11eaa0f09a23a1162e35cae8f2ef8d1ff749743bfc8e40701e2c865c347196421e7e031788e0c3e71513377c9e10c570233902b6edabc1b4fae533432ba9abfdd3d65257bdf26b01846864d90d5a8a73e10bb0e1f67183ae8ae2811cee54a7ab8fec8234066f869fe96dfc903297cf659e959f8b5ad0225cb67af0ff7684b851f7f933354f5ff42e674ce5fe10cc780e28ed3ecf7a4c962ccbbaa88bfec259f9c17c087445b602aac67971552edea8493e315775907d24bac5c819010f4f09a3455cc3543c4812ea2cdc4bffd6300b62091c4085acbeef8f3d0c61714e13cb2381efac33b69684a286686887c11f855a87c1b21f32ba19af67616cfbe1a7920cb3c5833b777d387571ecedcf079a40575eec53374c5cac730a21553a1541c7621a6c921681fee4eb5063aacd0cb0341765e44228cf48092bf555ac3c92205a5637fc08e40b7c25e0d7eb49a32bf8271b8a300216219bd169b186127752cd8d361640d142e2032abf14630e9ac20ab41f3c000018d4b8214c7cd5a4e1fc73829e9e10fd9e8b2e1dbb4cd607de02adde650c676de66f05b3ce092c487725906a6322256655c56475426e8cc5d3fbf9b863b055017b9c0732f12372080e853933ebb358018983090c2550e2912309ea4d01a2e7c8eb97c5f52495560b4dfc891299b46074d8297c8567bb9257b950245d21991766b8eeb4023ce9fa5907b8346af5318e5b96452bd52a7e0285161c99a67ff49c237e5ea81a686269c9c55da8daf28fb894283b0ea85569415fce2169706543b45d23f0030bf8bcda026bc0065da5b29398a91e0597df827e345d0e0037f75ce02ea3f4ccdd5704d084e362ce6706d62d6f2467502909fa522479acfca2cd007b55ed6bbf63d8933284c8c940c54b86bff86058e61b0d2a1f4998f36c3c86e11d19c4033819eb2cb832cc60e865806d7f6604d786cd88c8269d019a4d3f23643b840610fb8f8686dbf6a1347e057e1a4690415d10cdabd1dd1a9bc5e9908b929cd6fe5884814911d323b29aa1b9aee09679c32a02f6b93dfd2fdcc3d7155a28bca2dc6b23db7fc0c4a7d7d121f2dd0619d6e53dad731782711e6641dcbdc5979eb2e388941cec4b719fd2735006832b30e2e5e9a2a27ff66dc68a23e5dc713b2846aa5c4cdf454a39ae0c5192e90b76e2b0789cb9f1098ff3dc9493ca1840c347363ae0d077370b1d6864bbd18f552a3536327cda2d4a870e270280c9250a8831751267813b9b1cedf0c859c8c3a1b2107adde8a76c7060956295c07cf658626534c7da45d9cddaa73d2a1b1214d97405f1c0458f842ec88a734ae718025a0760ebc8a71d4adf540411e1c1dfffdb06e982c455bc9551235b81e0c33173a025689cb922fa961024a4415b760dd007001ca8db824531bbf48f95fc8e1cc208d994565299340a3155f52138a8964afd417684e7787ca7cd71e6de5902fff8612c81d5889351afe37438baea1526f6a8f4964fa441f1d30f2e89527af9053a5cba0a2eb9300ebaa69e025d9d9f8af31ae9f40aba39a8039dd4a189d98fef01f693b737f6c8a5d413d0216e89cfcbb24d620db1b7edf4d7530afc446a41f3e75177cf3ea7a219290ef477026db9bcbc23a7de24cb972754891ed75012837ea3beae8963c942f26a1063e098d8a024ced964530bb889d334731e261d1f3e316820ed377bb59cbdae281c40a4fb2d60292bce3c44b17ecfe8311a3b8f2ed88c5016754edd3e77ae9fec44741046d6301e8972b0b6e6342c2c6619d1805796f75ae099aa3598dd95a19fe4a52b08063f0bef44ba598bce2db90b7da181cb56b5f595b2d513961030d1c00b9b5cf8adb0e418a9aea648b6d072bf29ab5bbb622afa094bbab213130411adb56c9f6b6282da5efb667a7140bd67fa5ba7111224cce5b2cf576cab06437cfdcc4820db09f36903302e0369986cd9864727563220fde6042a81ee2b483e30467fe8a1426f5a94878b032b88a89e3dd62ba889c8d492c0f11359a10e87d11a098bc0d7f84998ac048229812077974a9c92652c1f2f030f706a06f7e8cce9f97729e72ed5eddb227f3480438dcf40234855754f2e945c34cf0a7be4527475110045fd729def10ec83c4be815d6b22fa5190c44813592990d6e9b073e57c90f21c7cd702dea982de6099f66cfe0660a733d7268ae3990070f7eac5b077a7de4f09d8819a78a11ea5802ed7cc62bcd242adc22d51c83010ca65c2691984e4bd2af8d576baabf28fc277c2597b6b43327bdc612dece5978430d6d581eed5b40555c4ebda8b3f827994ec2a3b79c3136c56e06f7cb26d46bd118c8193e1a0fc21d01a7d1c9a7ab61d4cf51fd1666b8cae788594a0bd26ce3ed0d12d159476433392a72b0bbcf259ca584df03734034baea9b2fa5f775c98e107e3455360c8eb6a9587a962c4f059098dd587169ee532c8ce197d17559916bd24883a271511267db030350201ff4ca04d9461c1170e9032c72d04184d5c2ad350949fc5fa54c85eb0fb2a99890a9407f79a46df8012f66639121947e5addfab4f32a70949127dbf67f590d925d51bf7e122b371e0a0896e215023dc907d3987813983648f8120816deacdbd67da75f7b53213cbda27024178c8e64e5ea71adb29ddc90be2e90d6f704d88082a5f380c0cd0e4e260ca34c7cd2c10662d0daed0e6d9b8ef613e62beecdafa01cfba264d060a67b696e172f61ae970d95c1d26370cacb495ebc9c8ea48c0658ffffd75951c16fc45d6a2e4a326e8922eb9b98bf42e2f1a0c68a80d0be45f101f0162f4d5b8b1d17348be9d5df9a5e149c0f4ce9b15a54958c167061affb011503a94c66446419cd806b839ba813ce01ba06e207db1057b09473f0b3c75d31149a9c684b4740107fc81d4a43cf4d54b3a5253727273400368e7424723a71ae79339dcb45c1bf282ae75e72ccf89b9ebcec5f79350d9c57633490313927adb3b468f752ade7f43f9a673fb36ea357ce6e0ea24b40b67d839b4b2cde955b6e8840eb5f4f104e3eace4ec8700f365438ab5805e896ce447e3ea2b4c47504d38e4b02fb62cf22f33088c9f7767d078d9da55eb77546c6f6c7acb583b4b5b01f2f7036de3fff65887c4b28c85fc6545d40f7801b7144a4596bff1dbdab0bcbafb79d5078b7bb15f6e73a9e1090c9244c603530514da8a7eb48e068ae73850a12f5656fc193711610669595e1edafe4adc782578c13f2b522f0665c309ce048cea7f109798a6e0ceaa409f2a162c530dcd7c7a4bb7e7f9a685251e5b8d32a48f994f23b24962f3ee518e9d361cd8c7575813eb850835ef8fb1160c88275a7094d8ca82320273621ebfeae9e0925dd787f32b53710110f296d3b66768192f9c8c4ea02fcf6ec024260025f4cf16f52f98a6a3d588a6ebebdb90d9cdf4c816b7b5af813d7e2473c7158b48aaeb8f11c3d7788337a00602f0811d50829b0b366ebaebf2e27a1718db5df895575c13a211a56567194729da3e6452c97ba80a7c98be80facc1f96f95d8e80b80b389dd5b31284722166999b08b66620f46e6e4ef5fd7c1440510c07b201bb4c81406e9b6957be0ec6a0e9ece5f47917218ee24a81e7edfccd6149dd81794139a8c8f7cf278fae251106369c187c42c3586f17140ae2cc5d5f19ce8c42212d8b29a6a0fe4f2c203b10e175ca3829aaa5d8ba176a2133832a9281d2fc0287fb06c3c49f3b6665fab933f01bfdf0c69d930d769892bd4d855b377df5d9903dea5a4125db9b225174cfc82a38517e51d92b1442776fa52115990f505664c2977e2d74f8e19c25cf64d48998e4ebc20042e81f0f8881d5a8a52a20b162f48f29fbc4c6c0a4af28a776fa2fa3c7b052217c93f676465030ea7d8d86143369e8a4f39e81a32c64427d69a7b4e40cc4073ee957314050ab415a3cf85417c4ba7d2bba68042f58b2b9a21624f462bd9cb91057ce0ec577bb2b1c45c2596f0c796ba0f269f409cba4e45f6a553ec6885ed3eb92dc97534c4739d774299fc65b0bcbd75fed8e7a06f4c567928e1a0c5cc4e5920b891499a67f1aac9c9014f86d9fe16111b49e826cd86acb6e4d8028a0036f6450cec88dbbc8e853b1f28e38809a23c4ecc9e844ca9996d6d255b0d94355c436e7e6fb43bbe5f1784617b4bb55298e3c36208d5e4b196faa957fcac9a9757cc29eb295caef4574658a9b1102aeb7713ec633dd22c699f2fac3d8532eca527b4aeca22e24b1099c1b0104205bc21774b4122f4a27b41a810066acc61be0ae3c25016410a04286aa527ddb6fb5ec817cfab5343a6dc1463f9b98315ebbb882810a38e9b9a3d7fbd558e8aafe2b6da4551eb45b0d294beda58baf6f1ec41dc03d22af791668a6105472d37164a951898963ff5c638c807705d9b6161428494249cb2f780431da1b71f3ffe62d00f245522b729232666b58850cdee93c00a8324be3ee45b248396bc27ceb0024f330a9742c92542c5de75496d504ff954831cf14fe2c5d2dcad46c3582fb67ad81c27a4688e66e19dbefc62502f995c248bf4c0c4d57efff443e139d4e87c1a5f9972a9a94d11679235a028069ee0e927477ef93420173bc39684f9dfc726edae2d3ac76547f1247efed82263cc2ac2847f9130466de057850f4fee6cbaba161021f97c2f2e76fb2d38387d4f345dd01889481fdfda3990cd27059279d54582f2ee93da25f6e205b4e5ba773ea0e183f3627daabefffcad35ceb0f2562bfeba5213e58f9efe787c4640380d9a24fbd4623509401676bca6538403cd262fcde8ebcb26f771d06bf9ae5256f5697a156256712bf5e910f3506387bdd97a6b3f815315abf0fd01d25a7183d6e011ad1ce45ea956c0ebb3d37e93ac2c6fe1a36c67a0bac4e25920473172b49fb580f4c4f02ddccffe8278280a7139125da84a2298d31a51cd664bb5b9faa730a8b95095b0012aa0322b94e86c82dea43f4c6b5c7a81bf59e1d1a42ce6981f2914ae01e1d108a5d870a1fdc73c5c0f1ec4a4e034a4b84655297839cd8aa8b70b3924e6ab6168ab01bc31a7853cc0a65fa26a89eb4e011886b8556016578597d8aa78a1bd5a8637532c311630981c8a9cf2ad31c71438a0c4237eb2d3cc822a1b51e86fdc53f2bca144d94be2303da2abf19387b850e727031d46f0ac240df3cd64fafd15023a89175b913721c0017184eec07e7b055da3f664d1f3a8f6647fe15e349845c3eb05ce57fece7f52a9c7f859165db76355c1657e3e1a80e745b2c65853accc73af5167f447767dd67feb48ffad87867c1cd959888a929d9250e88991156e1a7c3ed3df990fe1cab1153fc7496d57a2990c1e24c13af25110962cd2aca517425078e918a44a1120a517ea7435a842e5eee84d61e74e12dbece9455dc63605e4bad055274e11ccf5099d86f9fecbcb3c0a0ddcda88d8c13b17a5d8a8200e5b713e98b5f32df4189f59db8638c38fe6f26bc6970be79565c3222858c6c79d2383e0887129c04a191fd7daf8dbf2b4a7b35dacf2a493195f8ed7bc223a20d7a2480d2965f791ec793e33aea12c90fd102c9a5cdcbb8a236de243d460f2d8f5d8df55b86a20c20d9dee622de5b28c4eca1c75a0ca7e4a295ee1ac7ee5fa3921a94f5aa60d5be96ff0fec8b3b5e1a71aff85bde2d0e80ef0f51f8cdd024cf0d557e02bea767145837bc44fbff58a0d95e326c80be262e34fa00d9708e3ee11b33708262164772adf11e6816741f41cf52876f944503748a50274afff3e1819c51b86085899fc87bbdd153dddb90b19527a0f41f7625e92a3a6a19aa6c7bf591f98dfd3d838b1fa44aa4735180940fc294818cf2188f72ed4d982c1baf38c24ff964ca882b68001d3cf1f30a08b4463b4646b0693074b07fed9d4cda0d0db2b765ae40f2dd02d28b8184508df279205bc95570db52370cbc5f88191c425063422e31b95047c0c628dd961a478fd6e8702071a3e482bfe5bd8ba885f470d9384d3da4ad31a7530e727b9fb9a271a03d901ccfb9a4797fefe3a96264e8f168d3443870b66443bb6b20f0382eee26f0f652e90098ee04db74b587934970065b2adf3ef8f95dbcaecda6c5321bc5a3227030481cf3a788f3764aea959feea39b2663a37c15ed9bdee1d8c6c7eb9639e475a4aa4eeba0c173d329e42bfcef9c9d671780a855d2ee8826b7d9f1ae16dab3ca615e87060f0f804999545a79c305fe3a08bd30fa9ea5c9c96709060401c31884be6041e394d564f995aa666303939d33f585c313513812355e2ed1fd3737d4364a98e730de1128f37e9a8a892fce24bd2428a0175088fbaa40c24939feef117d189f17edbb5717815d9a2ba461e139691b341b17410559aebd433b3b35222c81e423fad94cce7b9af6bdc8563bf9279e84a6a2840fe7e1f07cb100ec3e220c4111257088fc9732c45a20c16e620e64c67e24a03b5edca7519c6df30ea1a733adb2291ec816439d75dff54906728f3018061ab7b02c9fab9320e0d49281b47f07fa0559d8775fa69582c99311e22652aeb0c8e575dc3ab7adc477b3a1a5c4cdaa004063ffb4ddafb7ac463b87ce259a0b988100d4b54d266348f0377b102add0bb6c1b9b164fd5e8d2761a9f2fe674871da0a6f722859e04e447191aa4ae34ce597258343dc363c4a7bc9319f137617b74b5822f0d53528f41e7e9089049480a8cc0fa98d52563c47aa6840be7608d8302088f44d141af7bcd48de130011456a7247da9993b7d9b13979aa41127507a54a4c0700e83e9436ea3a8461c0b63cd0b8509757b3e01cdc87fb049c70b65de2d0f2911e53cc2c582dbc07fa2ef3d78e8ce7f5c3b6ec62b01e10d7141044008afec6c1faff229c902094bc77ca070ccff526d8e2dc28ef5a3658b75ed015429eec08804288cc02e1eb91994844b512838f05dd6832fbe09f1e1f96c6b0f615385cd3944ad5bcc3bfb7caa791f1efc18484bab63fc60cc4e0ee756f2538aa8fa4ca0666c304c1db4f3d0325544133f38ff2aaa1d5034d167e4f2989d0fcc83932e8251afdf93d7f206d3d12999e7856c945e16ddda9acbc579ba53b0991ea6479da9c146090737dfe7ae48a6c0d7b2718ec5d85ab841f689de7a8a3478362f97fe0940423adaa46f39b212de99a2c86805210f32411da70664d00ac0c612a0678f814240e5ee39f55e9a133d9c095b86893b7fb8f3d53e9841400032363f217cf67663fa986224df95150b2f909d882ee7fdc10ec10bef025ee707d4689c87988919c195eb9ec373cc953777e678230882523e70981d51c2b151ebf0c2f67d9a83835686f8f9fc31af19a8e0a38ae6eff662c154aad526930fe1fcebf758a328b20edc847d71c7d8f18531648ac116f65273218719e2a02e5fe699b42ccb05fde85b477b7a7ba7fc21ef059fd5f090eb1abb7b07ba2393f530a5b512bb59db60719ec7e43de08b59e9dd267c08f4433ab8f030e0e9fa96649aa887a96032f08ee01eb3a8cc0276bfdcea6759733df5474a12ab59086d99bc4db919999d7b91191db5ffe3673cc68a570aaa8ae0ad7f32669604b87a820ed02ab91790a773918a3f2d09ce7ef8323628d3d1b37c32feee7389506caa7ad815596ce16f97098f41d408c029c246a12f36c63ad309f5caff3aff43f9b15fbb9ef499b9be5e8b906496d3928852b0a4dd96c3816e06d5449aca9ecdac4addf3d01b45149497cfe50059a7eb74285a6253658b34dc8f46c2087106956aceeb731ac07ceb52442dcb49006608edf177280dd99010efc3160dd456cdf84c393c49897392cfda545d04142248dd30ec9f08090f3c0130104242354b798c3b192d9c217d39a0fd5e1781310be2e3435e40f370cebc9c4b9a2cb1521c85082124293882f8a179754e131fd9e8eda5107c3215d388962f1fe84189773f515f359cd017a33d900f268cb78845da4848217a484391dbb3fbd0bc8781c40f5c2ab3b2105fb8347a3d7f61ca429a31f1791dd7efec3c20c33f12f4849973f5749fa55c76dd562b0fcc64e448818e22e8e03a1a701f281413b0830c53406742e612411640f828b1794334e720326d5363bc5b197c12a9c59840365d92e35268697e286c6da3602d55909f438ecf98656294ea685e4ae91eb6cfe5658a268007ef7233f4b174a8f9ac955503a1d925acd2838427bb4e87c9a3982f3cbeeb08ac75157b98a3c980e2885fc3918d5841826fe685b0abeddf46c995f6d234b2b6d78c6e63504e2715713510f9db30c28b230535c1de120ce79059d87a344aab556b701404753ad75956374111543699c896a866fb276e856e7d5a221bbdad63eeb2633b6f58a5df696581b8e1d9aef839adaeebb8e5ee17542efa288b96d84d09bf0a07d94db698260faad0e7b9ecfdf1c589d54be660e30374743e64cb58bc1b767b434e3feefeec55f240e015abde234fd6366c422285f42779140c86a440b940c175894a562476e2866cc6f192660dd75d76e6bdf1915e8101d4ed5f1d20a10dc15f5b8f7ebede0d0ab9d463d3bed1166f9fb02fcb44c33fbe2952ee776135c5dad7d4a5fbc93d0bcb20ccdde5ecbd99ca7295b9e129ed080febdb0400b57bbe0c9539fd5f7fcd11dce460256c55242faf04425e32b29ff98b428122f2ca3da11d266689829b8bcd47ccefb371765b5aae0f04e0a76a469d5bede43986db5df291de800b2f69c3bf1a28fee27d91badb115d8fa2c591a76c862717e1cf2e64e036d8ecc5adfc1cf68dae9c519268759ce21e9efb28888e8d7d14c36035301475bc39fc1968c134ec2f14a0b4cdb0943ee1f1c564b4a55c54c51302590e0392378befaee977c34ce189c171ae0603d99affefdd5892ce976ce44a63318f98bdb1e7e1ab35b9fbf6a21b5553919f00002a235a7f36279c5e5eaafdd32076d4f30fa86feaf87e1be60a1e64d199ae0d066952e0970589c54872d5d649372b001d2d39dd8ff2f8d858611e22b1133fb742c63ab83a04f9fec190646f630633ea11e287275d864ec276f0b6fe299956b29ca1d0fb14db9a0f958a1de82f7e03c0d1e16099d02f989f001c96ae6f501aff5707758d5f64cc51f2c0df3125fd38995457eee8ae151826cfa2955d8bf73ad21660d2190b2e92777b38d9742b45212bee7387c1d99d44767637ce94d813c67c12c93debb2504b5edcc26d4a16bb4d6be11d63e12aad925a7079b2dc220b22ffacdf7e92874d8c6bf6672b28db9e0da2eb39fc5268233814371dd5ad015051eeff14df4c132c3d494b345a32db8d0079e7082bb7979cdfc9294e7c59217d95c503ee319117483e2112cb5166464f1c13b23aa567973605124c8bc7467355bb6e9d4690133a8d1e2683c4dc9cafcddc686abee00aa7a6463e288e3e26244863dcf35ea0a8cd0c4851cf27952fcc10269e9db228ed1c897de400e75eba2a3c55e05d0b61da31439983e764c494e011cc36c7e061c4c49b0718a303feed3941e587f83cac00fe232996e8d06ebeed0b2a866d66298b29c2dde1ac75e81c2905556a5a28f95be25282a9eeac2d5f2b6ca6d225d4b42fe45d5ab7033045f4019b34e5343484a4397a102f22c198497d4c3418057bf2d9858dd40b97a10143a0c842c4545013d2c25607756c7a40da61236de1106f861a5a815db9636f36f8dc8ccdcbdf8a3417724edb86eb8beff79ae1a714e6f616f524a422b47366e988c37851667fd0bb7b5e4b47a6310286b0e0e31ae7190c1d2a30e688e29b763c1ae515f2cab29471f38a28b4de7e1ab04d16848f1ad7284a436bed89d9217c887d60651356800cf4a63fe868a5725df28b9e5206af4ff31b14c6ac58b3116c58b4eb0049441766ba9199fa7ebfef60f0a4c66613635361c660ed8762a09a9b8338f6a06c2b156245971daef4af4a93d6af083e52320dcd2bcef676ac2a9640cb3cfc1455878146e7819bc073784744b74e616cdd6d066022ca4da5c7546d528052745dc074524ed8001e1078dd6053c0087cce57f057653bcbd5d6e4ec8f3e2bef5286050d70e9082a7e5af1d04ab9155d1a27217d892ced11763f64121a66016d7169c589cd6f2e77ddcd804faa06c5fbcee35a9f72dd2b3561f38f42e6cefe935086532884faf4f1b1ce2ec1991b053e62349d19a10d20313cac86b20552e6f1873be2ad00bc32c50ea3ee0aa0fe9841023a0a125b18218f615952f2b56f01d3b3cc1ef357ceb010dde760d8f231fef7c9b7065fb1ee9f5054101fd2f88b4ad35244b858c61415c1ea0bb1263bc875be328f5650587b56b4593f547f849815601b944f5380ac03d3f8e0b845923127a8f47191c858579c796267040225070c72583ca6c6243b895ce2329272b580434903f99a4fbc17f415b123c1cad06a4894e36888710c159ee7a7caf408725173f906d4d88c6b1e12208b9759ecb2cd1eef90dad733e6547b1ceb610c95c396d63c3b1861c5c14acbb90667810a03e6d0d13ac6c545a6c40503f5939feaf3e71e3939f264ac6800229b7ee1fc4b0470c6e49be9db4a8ce594234d48f33d3b0544c004d3092698997842568cc98979b299e8000632ee299ce14db6a8d4988b7332e04a8732c7e68e012732160655b0b18768131649eadebb566f58cab3a2ae9aa30ed947cd21ccc109abdab9ed0c45c02d805bb5c451547889f00083c0cd7b7c57d4dfce9077208844cc23b770e222329cc759955507dca85c119ea8f6d239eed290221b0dd512a423d158c4a7f2f38e23ae5835e870a4d0ce128ed83d7a9aab2d90d703b1c4a3091d22ba654626782b63e07320f66731dc817b5391ce9deabaa8b7a38bd5eb2ea60cdb5a52dac58cbc34281db738767c28a13fb3043e0e4c65ad24b6879097422c585937c58b061486f0c975df9596892a4299d41d319620ee9d9bcd0bd96862b220e27fd32f0b8b17d18d4ab7529df55b4df908428062195feaa751a57427195f019108c55458aac74aeeb82407e7b6c750982ea212a9efb8c1772465d4053e0471ab90f4d81f5f318775de5bec31e35e50be1141035b1fc6ac3f6221ab51f846bd73794f24023f537eadb788126835965b125c134baa7f819d1723bf1195833e606c5e168b9ef5572d1fdf3a18986814095613c5e36ff34fa012adf45bec2914411c4fc2c1b671ec561dbd0da66ba511eefa35390d2e97906cdb53b361834d93a4ada0c3fa302848979a0bf177af7f8bb97058387990a2f1890ac0d940c1160d6c8dec4f44333de9b468ad2ff0ed4e7993b97f8e2de30ae7322690ce5dee573efcbaf01115cf222f6abe8c196a366d139491786ae8c70b383bafe60b6dae01ce27322f501b12bfebe7ca7f0d21c03a562b61ea3a28cc5c86cc54433881bd5afa079100c1161f9111417d4c1028b07ba70f069670f425ad697f06c86c9195d20dcf0035a8b38935412ea8aabb9f208e989a1501590a44c9503720d15aa1a0a6a071faa752bca645bbf71de0457b79536e4b990ddba5e6e316e76882fafba84707ac28f0b58d81728db65d96de24268c12ce6cdeea125d31f4303e5ca81af19164bfb3b2baad9d49a27ba57296fc2537b4ede9f9d3eef756ebcbbbef460da4a6b76d7282a8a49b42edc0594ea57f88afe26fc8fc0c8e514f44ff7ea117cd81f18c523b261124dc86634997bf086a42a115280b8c2a877cf8e0888ae7c541f37b18d280224e88cecc1582098bf060c8bfba3899ebfb370b089b1b15425419fb05c83598507bbd1c640ab74b0dc0b08ccf934ae35b981500a7c630d477bea5d11dac90ed5f0ffa7ed7ea3f7357eb0374cf7e4f468583de109297fd8a4e6bf34a2b7def6e7d2c1f2e74a0ee2a4ccdf500001446740ece212a5febf6b367f1786204278e5a802f16442bca09affc2b0b8ff94f03e0bc5d37a551eea839414aaf4682367323382a98a83c2ca433993c24a6fdda3db0e597f7c9964a7542b99273e2692353ac4f5a9bd597056ac640bbca92e14571761051353fba86fcf6be81d7d302be3855eeb055a97bcae0b777cc766788eb376710568e78f61c0bb6fac6c247b0e8288468191ebc7d8c0ec4bcaa124de487afc749d30e094da31a249d76e07afb0e03f809e181af104eb6caf3312d40e22f989c44711dbe246fd27c6bfb0677975e3185e9770c171d73fe1aadd77d0c610b49331f0e4355086bb4196dcf8d8d9d87bd063fd24a8a10f545a95374422c363008a7cc742b6c36ef8656e0692e7265c32dc1516c05f67370990d2863069ab3473522727ecccff3df92da2599cc32be9bd8393ef8c637488cb7f1554e77bb689db8b2b96401a41ed866a0fcfb2b3c6ecb1b9fc0a01fdba2c6a31de1e876d39f3ea61fc4e5263f9d9d5cdbe82276b46eee41bd520941bc9091f4a846904fa1dd6496f0db0677751008c88e769fb1fc65376c578fc2c97f1a510befe66e25046a22ab0ba34e72e64371d87e683d68470e420a4b79354453f5cf8349c7d81fbee83ee9e50069f44765e06563f5408f263c71d4c8f961978f36e2237c7d776f9aff2506a730239fc466aaa1cfd53a2beb06387b8eadf767735ed9eb96bd6d9ad9037a9de0150500916d01e987b6e1ae1d644ce656b5288d6d45917a928121bec8e5a4aa3c2893c65b6d2cbe23168ce8501a42c43505b8baf4fe94513d0472f69aa218f897991d05c706a2ea17b2536177faf4e91d08c5bb8c1dd7af0a09e88a306a5ad0e17610f300536a71f570069e73025292216e5b76d3e956f99662a2ed7c240658ebbd413ede0d7d90d015411f50bd8ee740688998e531367261f6d769de6aa505faf70477ff7f50d96783894619e93c345195e17532270499c1cf9bd464a3af4363268afc33aed71c55599ec3d76136e75dcaeca7895ac66b2c039047e4c8e67339ea9f4f01ebad839cf47911d3cfc738d180a06368b6c9ba3f7ee365f9a6acc3835ad6094d535afa9e063e7942e49a736361e1a73b5fa3cbca607623f54feab3b4493e32edadd00b919f8da8bd2d6effde035bd2f3bdc73f81ad95c3db0832d06da94ad97f6ec054815189de9ac0e36a47665fc4089793ecb76c909d91de22524408fc31b772e63a91a03aabfbf2f32371a475102d6ce78916b9e9031f01227fe1d5a196fd3dd59dfa884e91534c324d309045cb245fea0a7b344194a17d40de18802203c17e517285eb543ca75a9bd4a9fa3dc1951037ca222f7911d1343abbc4d4c524041809648425a421a50b114d46e885ec14bb83e6c6d96bff45a8fe7d39c89aaf544ef4bef7bb990944548d5aafc8d960731f25cc860d7c0d29da120111c8c7bfc8e780c86c621f646a4de9253efcfdc4b2e2733e50f92f7cdfb7aac4e006ccbd505c015a120713d68153dc0050287bd5ed230522a861cac8d3c99972a6c3d83f4e68334de158037cafb32beeebac474c8ee63be34bbc6be8b68b1778c83d2059956e279881b70ce37a6b583ce0eae232422208b999cd46abe52e73db0ba9734749223f92b88174affb1cdc265da710cb1df6610b565898e44cd2b351ee95ed46bb5b5cd5701e9601f00efb87840f4f807c01d2706901ef701788f8903a2c73f80dcdae655003ab80fc01b4e1c900ef609e88e8b0544877f02dce2c401e96e1f3c90ef0f8b60d3757e9b6ff1f342eca8ceb788795d6066396f990dbf330f38db4656066d1c3ff61bd70c7d786e7a0f47cd316ead8e38a779caa5a338077a8163e6f6c8fdfb7b37b6aab43483d267c4259b9257588e4d885e01ccb2a43a772f5454f798b9156f45b8e4e79babc3dc4940fa55f1f3f2259e40ed5712902721f3ab1ecc133a1a7b1f5558e953a481d73ab1174dc176e535467565d3a5cad1b11a56d14a014d9f143f5375497b8dc82b84ff115575a077edb2a0504ca3364a56fc4ab0cf006e5c6200e9b09f80f7dfc400e9619f7e62f195f48dcaaf0ba2a86c5bda713b80f9ab5edc775d4a16d40a5d51b98de69916c67bcc5e75ca0c2143ed4b706b709a5cca6a56e9e52b9c622a8bbab89eaf7b5afaa99de67cc8493ef85dad32f45d46ab11780516b56ca2f48412478ba240accc3918bf243b60fbddb45aa1cac893bfa97671ce5d7bf71d3af59d6a1b70e8b9aaeb5dced89aa277ff54bfc069d41b71ca781fc201f63f245d740992fadc3256d0cb1bee9dbd56c166ea52654077709b9052a39b8ec1039ee0b4d18ec4c7b2e36f76a57cce7425610f756a2f6b663b47501b1929663ed57c63571f14e78323775d4c8c7c4f014245de2e2d3725173ec4e2c8378e30466ea32955915d3de8ba62e2097ae16eb03256c71547e696d818b92ec14015d9994e2131b28bbc17879c93cd424614bb0045631f7da45e8f893322b6117f7a203631940160a95131d688acd2c1656421fc58b0f465ef6c6e789518af8db102fb5051dde63b6913dc72f1b46b3fdc18c3caece01385ac61c4605f8b7b8811bd76e63472fe3f39182f2c65e4433ea2c212f7aab5c50df33eeacbdc178b14c7c72d899da26071daa0f484e6a7ea67982cdf0e945cd4902f7b7b2c3982ddeafc0df1de406575b7795ef6950b3be959cabe1e060e933d0f373ba8010d5f3767f69de853f8e44648be4dde982be239764e3d403d1a525ff25178d602338c00f60cfbd448d67312e41d0de1f8d0cca815bb5f03e4d6f643c527396216d181c417bcbd25b86cbdc94313ec76e01d61008915119a94dcccadadc1170f1d2560cb38a89c5150c947ad05ccb6666cc8bf94bd376d6e55f6c2c33c96f24f30c9ff5340c4c2fb9aebdc9819acb86042310c3437eab483b6c553cfe8a93ec518afd7badb74954377bfe14a2a016238875c0e3dbd26bea8f69af59ee4c027b06b2df4f12ffcd407981272d03cfe9162440fd9e51a9c056fdfe28d9f95afefdc86e7572dd2a90ffcb3aac1bc47b0a405281120311834b05b8decc3b58180a4a9c9d2fce0b1f9c4f5e11f53bc1bf82e2a2af8f6c6e2df8221bd0391a53a4ef3af5a86debd92b0342ad84534133a0610234a1720453c9ff9f9fed84fb00d79682660922a572b1e7fd099b261f039084f236575f9e9e8cbfc5d255ec2826103ffb34f41c44dd93c0aa847f998057fb4e00f12f761dc7ae2337f2b02ac715b8f554fab3388fa047f2dbb9132498734ff20373f3052b5a3b50a6c3c9dec8ad80bfeeea29892f8e4e4ae8e7c8ad9aa3c36aafada393cc2773abfabe997ddc5e1c8652b013fffbbab7c48ae76c9ee3fa76e25b3f353cdff24042e46971a06c7a9611415d33aac4407c846b0bae2269cf658e093dc4e1dc276bc21bc4ac289e3f5f4221d77f97af5b88b05fb639d78474f9ca47a6805df94dfef77b90c6bb0cb6cef70cef1aedd20352fc57126c4f019547ceabc1089cf88e44b3a2ff05000ca8ecd1607195004b3c88dcdb11af47933dff16e0c786701f03bf1cb6abe71d045dcef49641d9650eae41b8699f5fc2c8ed6ed475d1126338049878c37276f9febe86f4f64203ec212c8885058ea852214b845707baca0104b27ce9ca22a354add2d59328e13ae1e3c3c241ad3e30401e8582e9a4f1820149cafd1c526a7eb03bc755d4f2f8c080e460af6db0c71a3832946e16dd0420f629ead6ffc015912d83d6ef5d673e3ae9f1a14964c26b895d20bd5de2b63f78f5abb602ccbc243b7ad3c74b69543bf59f2e8362b8f5627b6557a96ea1995de95db26106bb3e0d16d561ebd65e1a1db163c74dbcaa1eb8a6daa5ea3f45ea5de81d9e29dc68352d636ce7882fc6220940c94d5c0b5d99fa5a35fda6ee2677d17c6a0be513a43c62864c38711d6e6e2b6b0a7fef7912edc561afa196d4f9cc1d984d352b711dff7220aaaa92da1406601f77d1c61f14a16937b0fe3d19541c47b6c9c2b2f4c5895b54165155e0badff3d67db41a80b881d33726122718da49ebe156f30a3a4c9d16c77971d349299406ca1beda1bb36d299cad865a8000fbaa1318ecc93db87006473b28ab4fbd8681de66695776ea9457d5f1aef8982bdad17c548c7e7272fe7265000f77137c326b35cd1fe3e967ea1334b60a738f4bce81ca3f8a6e6c9d1511bfa757a509f93c9ac80b721323f9f368da86949a5aa52aeaf12e860cb94a7323d7b5e78e91cc8007e5dbc66101b66edddce3f8c8379554a86772c71798f95cf1bb67659dc402a6f19eab05daa99917997cb07831104f1b99956c04106062b3c8bfcaf19ea49eb1dcbd92173eb9b85c1cf593e9c4927d04dfee15c0cfa0c0fdfc58fdfe745dcdac87865cf0cd5ec467336be346a74e1a8c7798ef2b95d1c4ee2f556f74009a29a2f0fb4546e7490a0ad0ef43045d8237bc248cd37a61185be2d21a04139086bfe0053d9539b5a62d518d67bdd9b21e8c8c7d0f38b83c89b74b58d59dfd266f83bdf5003121a31dde514182e4a86e04e6ad85881ffa7368a9ac7a53f9b516d9fe96a2d09e8cbf11371bfdeea42a9b581c03dab778063024dc44548c3e55c48c067f364328a02efb8e0f9b9bf38347d6a743870f78f8a0c30f1d76e041870f38680f185cbee2f2e51e40e040050e10b08081050e2ca00d6410e89a1c08d982b4630a91a1cb22bb387c16bace3ab1caba7bbf0cdb15a28f831d7c028eec9b0099c75e34705cf1d425d01a1b6db4e8c2c2f30e2326f698d86841524799afc57c24221bb4daedae9e33e6985119237c204eb3c596075aabcc82f827b86664fff34334fc083b88ebe0796bef802f2c7205a3be9264be865e13b489fa51fce4b7c4ef22edef757aa491c3b50fbf17479070224c63937f0aac74989c2a62a7cbf4a20a333df30f759869991da9614fcf7c4f096b5ae6132ef571a037f4498e1254720a1a3eab56ca7882504e792112472b652c68fd96ce345b83874bcb74aa164437f59a53c2e811a3f1931c93a5d7524348dacaa9904a2dbc5a4e950d80045deb797b6709ddeb9f07efc127f33644c516cd82cc81a040806c2d499189606cfdb764fe8f270f885d9124b5108d56fb5da6fe27f2c62f262999900dadff4de6fea4e40150abd2840e99e155bfcbd47f543660b24aa2c82331b4fa4b32fdc7c96b3e6f3f87665b2b75c3ffec2fa7c2ac244d1178dff1a745be28175f40331b90cf45ce171cee2fc6944e94db9fde08754cac8ea972e31ab968391e3a5eb252c5f9b8715600275faa015fc8df5409550afd23921076e2336ca788153cfca6d6ac825b82af5d2425406129fb2657d08b1201d9ee4ae073d06dbe32ac3c82de490733a5302bb3a4d1b29c83f49aec037dc0984f513d6c6077ac23641f76eb116be58835b69ccc22ceebcc441e9a12f384f459e186ac5fe0ad586e87e2982ae0b4876aedd8c60fa37cfc93f538393f7c50232fe0aad5ecd2350490298734a58cb002f48bb7bf34aa1e5868e091dc4aa813d7b6f4060a6a1d69595134a281c29230aebc020a0cd0a95122a8d69670bfc1c38f5419cc973298cc51fd24d1a5b13f8db43e459982c9d2903909f7bd374054ec9568f3256af5a849e1e184119c3405bc5e6cfd066773cd80063a826e45a9de87d7d7bd7a5f3bb03d381b3f5420e13ddceb702026761f4205c2544b518ed458d1234b9d6d5d07661d15da0cb3c6f92119ea157a5f203928a704e9060a5bce85150d0897b35c21ef6bf2f7b18e40b82dc039ae258bee3f3845597f896ca6d7ca8e9fdce35dc25fab85e2596a433c22878c953a0cefa05d017daaad8fbfd7428ba3eb531f4e3da2bf61c35ea94996aab7350d6aa3d516feb289875f991f7c29322ed04a392cc56bd4eb2858d6fbd0fa57e6d88877df602a6d8010db5b5c03c50582cae2450ba802f9fef05ca35eeb472431ad62942c42b14bd4b7a0b5d8a1f9db217f51c54c31d8db96b4ff784bf529d98d1dfa6265ea9130a1c42c32d2538710618938009595e579b26ad3362dc764df9bcf7838bcc0e90e5883a853a61fc8d30f8b1bb2c3e93a9dfc98de4a8cb5d208457479ccdd3f74b07d365f9e904800ab8c532c62f3fdc0ae4fd1519aa69ef3ca6851cf7de2b4a784e216ae91bc4d676ad00257974c8496479c62c590adfa6433bd38ff6280f22cac385eb1125b9d7906720ff4b90ff009737c18fc4c2eaaf956584e50fae87441c8842c9e2c2e1911532ca843c044c996952ded62d8996d6d21759d3a178bce7d625f248e419d9f119df5dcd6244ee80d85a124b4f3b4bc53995de2ee8ea63b743ba22eae4deb5b896c78c1cd917fe0440cd8023a014e665b3016564d0701d0bc9274b687a0a1ac7a3a9150a5645b7c32cd8ef96e2342e610244497da1d042267dec44835a3e3d7dfe9a6c2e3d597f2ec1d06ca326283180bf5cba4b72e5ca751e8ed331d867049ab4937b2bb6db9a59429c9143806100670063a4cbcec7018a6e22cc8d93b3846c6137c31343865fce2a7c5091846be05c630e2863b908aa4e00505cce3259ea0dad40e9ef12b1fccd12bbfb3be48a4142efde979a9e91aa491568ea19fe35f70b0d0ea16e0190c3448bfc33a634ed4e9953ffdd80a62c50798470c5107ad4fdfa6e88736ee905dbee2c66f86452c6efc90adb816a0f325cfcc61c91749660db3866dfbd26f9b9cddc854f86edbb66ddd1bf8a9eece04818df6b62120891bb70dd6608c490d469996662e6ad4f050f05abcd4d70d115b755afe6fc52f86effb80be181aecbeb6f92252833e90701a86af0f249deed8631c93041b7aabd5cd8f517c248ca8c531e11953288b40fde9f49c17a24e9f6499f84a164f992371fe4ebf8263a2646dbf7d5bac566b3de5ff20185362815abdea698941241130be6401c9dc534936942c6fb170644ed7f5b4346999960f4a9306e3b67d9bc73826cad6251281646b274a7f584d1f4a296e7c934703ea9a9ebdf0f4993ebedcf6de323d609bde5fea0d895d572995064bf16f37a46fe8b12b782608514602398c8411c19170e3730c430a41c48ddf47dcf8a525ae8cc916c7c4974eb0ddf2d61d8a4736db6fad5e6d1fdf777ae54bdcd8844a47faff92c2c172438f75d79bb40cb7fbc4da2545a4b8c530c2ae4e8cb02855da460df683a1f4db578218a4bf6ef2c556af76e2d04f436930b6abc148030a97c8fc7c7678a6a371e3e770c3d8bf7da56d2b75737e5be90b8ddcedb78f61ed51b100c7f0cbf03f47b85df9f10977fa4a8e064d1f4658e9e3c7289128f26021ea889f2afdf05e6890bb004fc3b2f00ceaa3fb541b51f8589f238f954f7de90b6d066ec986076ee95320b8a5af41825bfa1515dc120a13b8a5771f97b1d5c6ef7e3e0aa51fb747a3e0bdb47836b47c1123342d3f3ddb9daca9fb4a2dcfa56f696969f9f64afd2d29b0b95b8b7ff5c2a6c267c86ce1ee22c672c6d20690c209134e9c30e18409274e66308324e64f9c3bfbc44677ee48ee934b15dca11ac5cef8908d5846c4cca10dd309657d8565540e339fb35ebc9c3b3759368cb008ebaaf5fc72b493529ede4fefa777aec4bdc71ef8ca3bd7715e4c55f152ac3c0af58e7ae75a588e5a8aa68f8d45a230fee0c24e2618502f61bd5a21e219760115847b22f1da97ef59b8109887c993aa8d496db32251fdc4d45e09ea3dbd13367a07940710e04a1a9c8a6f6104e6e13fdfc433279b0843fd6a25c5793ee49b1e75ba81ea270d4e2967bb9c0a4bc7797189d80fa078d90047f5e26d57bb5ca7d38a0986d3bb0ba7d389f362e7c50ef8e56a74ad3ed26919ccef44fd83a9f798db7679c3ec8c151b11e6329161fce70c588c45d9ca17c62deefc78f2fc69405dfff84f2618b4a7df2e5b53569672590e4b675dbaa296b5ac652d7398c35ca6791c667ae8b1d0631e03aa61f2984b0b5ed9643c73e23e7cb6d13c1a4f443dfd503fe30b9b753b07f55ce984427da8a7017551dff3668261e593fe7507aa650d22dd88844232b52b55860d1d168b9f0c269379bdd1755ebc332694ebe3faf125ac63bef5bae805be235bf18261e6af70c396790f5f86182de3db11e6738558ec935255ac1f79eccee75c86fad0b5b8b15ea13e6ed00403eabd57ec545cc633ec02ea93a82aabf5e43a72dd7000e8bc78515e071a9c6fe35d61996a7ecc01c33fbf343c589c4518c7ccf7d8038e991fa1601d51ba280503cad442903a519fa31ce528944798f3541f57eae7230ce5026774b65d4f3866c29a80c19a4a5721456a074edcd9429026126f1735381ff5b5ac8bdab5c2856d03d4d74f222cc2222cc25c2e97ab63d665dae52a97692330ccfcb62eeb4515c376192abf010708b7655d646a81fb1419767e189182d0df9efb82a09e48bc49bde27e46af505fcb6878ee0d41bd73cd4591f5c2f843c45ed4b76be7898b894bc99d6114e24e53cb5ca6030d33bfab55ee4c92ddc9321b1c97f6c82ef304a4c1f95ddf38c433a5af85ed2312afe6f3354f4aa05347a0c5cdeda53ba5dab7f6ad7d6bdf32897946939adf9c4c1090beb96b9e2335d7dcdda5bb77d588b2dca79151cb9c48308a3cfa277d429bb8753e654d8a73e7c904037df926930bf4656f3fbb60199e4ab87336e1cee9ee533db69ffcab17af4d524ba425accbf9d348f3a6d19c8d434dcdf29c69c46acdd085b89af69dd3abe61917344d339a93da348daca335ad6a5aa59a4667f609259a840131ae87035cc6853f1709c89f1f83fcf9fcf32be284bf18e6d3afc8949f8bd33742e355fbfa42fb448da3005b9f5f3ed8482a65d3f6212b1532374ea6779e9442bae68e06979c160ae92ebff6fd53fbcebbe196d36510fefa9e0ddc73937e3ddd53d30a3a1a273d5c058264e96d4f3df9ee859d0bf4e517e4db05f99b37ffb61712b942ba5bb5a75f90ef7e2e2ef0cb975f10fe3ed9309193974ddac753c4a7b32bf5d6f3130a4bffe35a79d8a8237e58fa4221dd6527d63fba8d3cbe7efdc2ee5222973f7a8f2e22a4bb3ddb4faf47b6cce6329226be497e5607f66ff8baa1eac6f62a1cbf708d6d2bc7f07faca1041b3291df187ad545be31f46a48748e3f56eb86b646993f21e60b066a90b5218e639462e7141bbf5d7653355750a9e80aaa1c1cedb46e4ab1f1359304369adae1a862d82ac586b62bd929c5862ec5727472d2398ee33ab23d85466eed66790a8bdc95febf362ea3cd1c869fdfe6f237cb86da4c9bb94c8c5f5859072737d4649735a2cb5c73a818fc3155356002c9d204a7237bd0df60ff4b8fc65972435ba5ff468e9ac653ca97744ad6a6b8f159d547e0e4aa9f6327249669c76cfc8ecf53584a061b8c7f63111e975dfe19c5ba2cb4b76dc0c597bf11fc984a593bdfbf7f6910f488cccbeffd8dcc71074d643ac1cae74e5ac1b9c47fe9e8b98ffd26fcc25f101507387ef114a53ddbcb000488654064e815d3155a66fb7e1cbd00d6d36caf759119b6ff8000f5e8a6cd8c03cb7de9e38f1b84be10d5955f4b1e3b4c6d817ef30ba910d5c5d1307d3707229a2f1adbf263614315cb4cdbd7c3715fdd809c58373cb1ea2603e2322a29bb8ba2bb7da9d3b3cba0e8a34edf79b63eb1f3a70bda160060990d300e9ed956618edb262e660cb8bd7d4038e60656a64a5ad89932e13852b2b70a51f570cf7dd732dc77bd5abdf453e540a65aa1c16863c3f14b0966ff86f65f473db840b431ea34d83c0dfa336955af5cfa79855eb994ba94f6f26a2eda33cde9238fcba0becf457e61aae4d5cdeb4e9a14e959961e643ff1da35857d97fe03f985f6081b461e96ece453cde34fc528e58c0dc425e19252ca29279506fd23d19421cb4fbc985c1e2243dfb9fe1e4687e924dd48542bfd429b4afd83a04a3574259d73ce49bfd2b74dab94a6ce054dbe8cd167e59139cff539b597b56af4e5a433c618a59c5156227401bb0cc44512175714b1dc9d5abb59a534c90665dc3c1bb62f51ba3ddf59c408cd7603c726097cdbbb47bfcda7177ff32f479540d830ba22d18dae5e19b9e2935ecdff8115f10b08a01b46d70f500f01c1d3603ff703a557fc469be9c81870fb239147592c6a999b0af43ab284db1f8f5a66868b5f4024dda6697758afbc555b2ee7e9b13eeb954dafdcbfbfab784e7f173528336ab06d832e34ba5e3a323a9d4d7dc4315ac87c9e8baeb6032b8ef4cc61663c36cdd221bafc4a3213c0e5978eebd66ef786c83b836543f0f28a141b46578f8eae5ea1c2baeb49cb304d57b1feecae9e79add6cefa8805377ad53cab84d5b8d33e6a5dbb6a75530b44347c5ead28433eb0fc6ae1b46eaa14965f4110ddfefb0a0286c4e786f6320e383724b9507352cd84e388fd4bbf9005474d97c271c452b06bd0c8f597a6dae00c6b4b2b65f8f15c7e2591bd5a4939e45c7e2521baa9cb2f21702ed79d2ca2691f91ae3e6a834660d05c238299e5b2cc88e5c7f16bd52a33330b280572434424a594d26fa494ef3d9052fa34729854b325320303f887f6a994f77815ff75da35683d9562dbfeb306319694d87e17c27263c764463fba7a7529bb82bda302591cdba1adf50bb5af327d0ba6ae57da0295eaff05ccf12f418ec0e10a2f9a9802072350198a02d5c410b1a4f3e0bffc531c9c30318215485a373842468305ab050ffecb73385e430c248678525be5844a2983094e68fd04018756105e3733909bcbe5d7cd0f38377cd5c6038e9334081bbeb4d74523b733c56fb7b98d03db1f5fc6975b30d13a4dca287bd52b297f72cc6d1d730e367ecbd060d337c2317defea536f33f988b39a205065303d407efc38be274383fdf168c804c2737e913ea7b5aca7cc6e7f57e955a83d52af82683de319eefb1b0c9ea9dfcf95be9a60d8be725d7fbba556833c710735638e3f10f03f95b2b6bd0ec9c1ba4d29330ce4326c547ad22b59fa012292d59991cbb629a526b7e40a6bd206bbb4d5abfa4d5b3a3c37e6f20bc9ecaec0e64e9bfa53aef7216754a100d5a15e815f80efe74ed9149edb584ab030ffa341f9df53930f982f8606e517f207f05c9d39ccef6850febf66f201f3b1d0a057008f65e6322902f04b0a5f0a295493033805f9b9b420bf22ec30e10bd7bf8713c00b532f5e68fb07e0850cf479e17673fb3d6f88bcef85f5e87694b873258b48cdb9fd354249bde2322e5f0178354249433648643776fbb9230e894bbafd43653459f150194ca07485f58a87be30ba1de5da0cddf48a932edf007835433743ac1e62e9f48a9b70f902c0ab11d269794b8849af988ccb17875723c4c447fa0425f58a9970f9ba7835414936d3e6a6578c74f9def06a846e589425f4a457bc84cbd7865723f444e84713fa09aad22b1ee3f24d7935415582906a1052935eb118976f0daf46a8896b73edf48aab5cbe287835423b3c251e219c5eb1122edf16af460847288713ca7925f58ac3b87c59bc9a57924d67c3a4570cc6e54bc3ab0962e263f281d22b9e5dbe33bc9a20284027a0209d5e71122edf15af264827a8850a6a15f58abfb87cad57f32a32b246af2abd622f2e5f9457f3aaf2425a79210535e9151f5dbe27af26a849906b4690eb75d42beee2f2357935afa3d78cc66b76d32b46c2e5db793541372c16164eaf988bcb97f36a8270725a729ef48a8d2edf9287c20fc7f0ad09dae9156f71f96e5e4dd04e833c132fdf1a261ae2ad09e2e118be13e9f6cf58d39eb32b5b48d5dddde7744dfbe9b94d839dd43780ec0c2cfdc2f8e3840d234bb2644e44aa3f524a29e597d4603f514c064ba5e6d79f065db77d4a3836ac3f40f55bd6fa55a09f94d6efb3590ed315e8a72b6a9876992ed611697bd25dcc65361f87e98f3737f587339ad59f99830aa509f6873b32b9c08680185c6c2f6d21a8ead19b07de1f600dded4930a5395c14e1691404c3c333333333333736466e639048ea5a5f2f5778c5fec77f65441dc0db65ba8bb87b0dddd0d85d36e2cbf9792588e31dc86a25d62f91987eb8e1e8d3a9a474719756c1c332bc7b4182559fc90794e8e71e4b9dd5a0b0876caaf2453d22ea594ce1db9786b5952388a5e47b65862675c7e1da9a203b2a6cbaf23b02340af1ca224b86d0736fe9cb16aee533c0fc99b037bf930e5c6e5d70d125e3e4cd154e6d4c89882e4089f2a9e009a4798dc9cb3ce39e79cd3a76bb2d61004423f9c9f6a50c530efe57c1c1868b0bf6ff8a9d4a53df0d0f4ab7638c065fa2de0324c042425897c30c10d5086a0e42849195618a107583dc2863616416ace79e4a1094552caef80e2e4c5d728f1c0d5722f41044f5c30d4048c24aa04516472b232840d6b0e02f02801b3a1e9ffd84aea8e31707040920110621c51046e0718b89cb4a6987e2ae931b048a26cc1c48b8a231f1a106165872326d0e18d10e16ac215537c6c70f38316540727350c8b23d54b14a008402c08828b295ab4643338e9f677a4020c25e4c0093a104216850bb298f1aa41c6ebcc82165f40e1e201064ac086c0c21a2205f296925849d32c19219d5864872aa694dfd28ba6d9a629e594372ebf78406254f9bbc70e7f61470fede5cfaf477bd92619d9b463c70e4e6e68bd0b661a1f3e6690c1a956b7908d924a0fa4c19ee1853438c30c0db60cdc6f5ffdc21dda677afa491b1b1aff4226a232dfe4e16098f99dc7c2301386a3fc90c8957efda3a1c895f2e9fbcfaf87fbf9dc94dc27039106bf6db6d674a856b0c0c23fe832d6bd1211d6ba0c68bf0adb03ec86556ec840fd04fdfa4668aaf63718a199cf4f6be2759180f6f563d0be7e459cc82fa2497617ff5a87bfa70e3b0b93e58e4844eac1d46f3851d3e6fc18a5c1086b30bea66930212ed360308da857dcd1a68937a26860fbf93ec14374c1cb4ff0187139a7cf496a1d26ba3c803f1ab9fc851e9b532cd7d06712689afab991c3448f1941808b70e5dfd0be1b3588261f377060e987f5c7f663fb9eedeba91f3b8cc680d7a2344c8cf9a7c16031723c5a1128a002a6800ad8724cfb70fc12c6987d21bd7219b6b388fcf955971828fd8c74c7975cb7aac19abadd2a87e9e698289bd0a7807cede75315d0e71e582bd5ad5d6aa50aaa76b020e756356687e1d98e84033f65c35aea61c70afcee3670fc32b178a15735aa6e9491f3bc924723bd59f2a48d0dcde671144059e4d8d0d4a6a11eed81c7a3d8bf59dcfe66b39da77e8f9e50bc57223708bf90eeca0fbbab451d21bdda73d411ca1afacd166e95b7f2dbdb01dd51ea45cb216887242f08c30924be38e293448f0c5a209484102ddabfbc6ef82aea0445a20b9bb22cd6f61147221604febaa84116494fe8e10550d0780fcf102b3c4a5c158f0f3c371c1951ab5542f9c1050b9f265d14565e7ef9f840614b435897e1eaa3b3430d2093131f1d8cb02832b4cf8b1e583a1cd8ae0c5314b60343c85a2d82606b44e1841a846185e52ebf7a8880434f151c5f3d51f0f03c53bafe36e5a906a9b0337eb82996461137b0362ebf7a704c3cd87af9d573c331c1b2cc8caca9082619589315dc102c0a975f4600b5c0b65c7e19918418460c41a7dcb4cb2f23708c40b21da15625caf0028c2ec9ab082d4c48bc8a8882caab0827745e452001845711431491e455840faf226a78314972e1e71b9f63fc513dd896a194524a29a594524a690b28a594524a29a594524a297da16070fc926a50feb8ed42545d8332be50abb5a9d43f08aa4cfda172ac7fbfd05519f2d00e16542b8039fee54a1c2c0dca8f39d20b8e3e7754ab704c627e5ef5741f568d4be188b2044aecfa3b8767627784b610445cfad11c73b3b1b25dede3e7b2fd90f8c22beeb5073907ab7855b5f96ddaa2dc9045eb9c06e97bad537be7527904abf96f2cd3a3c63c6b235cf116f5b9f4431bfe5aa779f176de0a0d43bf87cb748ec3d04fa56ce71e5f7a555f7b8d6bc71e399afc533548df5ffb4a73228f1f78467bfa8d8457a5a7df41b0cce929ea869d63fab006fd93a7314cfd92e70cd6fa26af7ee7d5d73ceda67b1c9ea6fb9c687f83ceead577a79a6b9af4596783254d6caf7ab60f6bc7bdbcd45fb12bd86818b07a2f317c910d23a38fc85d83b4ad8c572cc159b2e34ada399228ad890d19e87b34c001b657dccb68fad40e15d87125ef649ab2769e6cb0ce6dfb367183dbf62fa1bc46aef62ef4b321cb8b7421ef1ae313db1fe3f768a4eb8cd4a0e7e0485a955e310f1cbf8434a8cf2e2b80f534f343130b2c15cdfc10b5f102e673f47ae8cf4f2b6a18d7649acc191593ec303ef324b817ce0527c0bfdd6843c2869c91911bcd98586d7683c3d3dce060695032cd4365c107f0a71e4a088c00ffe9a1aee004f8bba905eec60f15e3187fce8db459af909c63c2f59f9c11c7f86f48d8509371aec9ae6761430d15bbeede4c93d8b076dd326a4d03a806edd828995d035c7e25617239948cf2d677f72929ce0d89b414d28511866e87a8a37fbe77aca8c35f7add0e5187ff7cf926938fa086aface1eb5f1bd1a23be1ef89183069024504031b4a1b69c342d201c9a78de28f0da5cdacb3e950447136e319ee322522f24cfcfe1ae287849571b2db59fcec72fc42c9cdc0c819da22cad5feb7ad542a751539297795063ba96748d8198b6772bc566b396dfbf95c67f2317bbad7bc1ee63a1957a59f5fbbb8923ea60fed4bf5b76de3ea56b76dab5bddb4a286e998c344260d33c3848426a1424c29730a554297d025530a455237fa023a840d59e812ba33a5d01dba4395241182dd85f89082e380904295489952a89239654ea13a730a0582ea00f13cbd06078323f3298c58dd6d8c310eb941c80d32e8c8e2deadf2a1fa80aae50c6e4c2ea02236a534206309a423b62fbf5a63e078b5baa07ef9d5326a51b1a158f0649e39b0f1e39c4558a7306cfcf9cd29e794ce84672f38aacc8f7ae9f7e3093636944e728c427c36c60d424370c7185b4603901021084a1223076e78ed7812e7b12b60bd4a9ccd4c9b0ea4d10dabd16d81bbdacc2a99dd66f71a62382ebf7ec0c10f49975f4a6c685c7efd60747d78c818fa22cafdcb435e40c1c9992edda54b9f539bdad4e68c382ea7cf6cf269fd93c96c35d8360210c0102b0001680100003e3870d8b8b8b06edc10fab1612308299572d5a8c183020a42392d2d362c2c3e346800cd9811d45a5931b2f685844205b94ea7d7cc6462755d0ecff0e59e6f4d50e9f9f2dd9e2fb714c2c26aacfed0a30aa502d528958816514ae5ba74775a2d8d494965b76994dbad067ba784544a2a552919958e846cc8197148672127931571312a9147e928f5b3e386f5c759edad26b79fce6ab536f5a02ad2270d967e1aecef3e75e7fc4a4f6888a531aaccc69819915174a9c81a5cc246b44de1dc9b2f3d21dd967371b8ee885c7985edee86739b0916a96371469b0d77d42bf9dc8c4bba9d4d456a30a9757be7f66b2a7836a8f0069853856703a8f094ce574185cf0615debdf9a9e02a68af82d675ac065bfb3a9c201bd2275eb04b67bd0a39225aa557216de2ada4db340a51afc2128c9bd22b7eb900e7f69760bd0aeb4f945e851289a85721673425f2e8703a180799e6a8f4add5653d0b15cd0002000a8314002030140a068442b1482420d184790f14000e7f98447c5c18c9b228c861188610328610000800002000203333330a000fdcf898a9bdb39ec031240594027a0c17b3dec280979e012428e1cafe59e4283686da0ab9343a097d30514a5b6b88d35f94af28878f88f61713f9b68c7d421e6249c8ce42e63ad4ab1b8c97d653217509b44fde45e29db29ea06816bc90738c1c1838151f7384640e36a52a8ba0b54b6941356acc8d161aa49bbac96cd914c6b59eeaacef41855a06737eb59962e23ed7b6f5d464f0413760f5d9bdc941cdf78bf6f07d4598344422f881cd3a69cbcf6e303b30b4f8ed3ca3f4f1677c1cbb3ba312f4a847b8c49105cb5336b54ebd4a95c4a0f13b9e9e98c0cba09c5bc7bbcc797794eca2c893327650aecde501be1c24b911de624ebe04e892ca0dd8bfc8656f217a1b1ffed58bb4b82078c4fd86215dcd8726e0dd62f2aa10ee352f7a7cb84b2f13c2c98fa5481f810a7592011093e96a1af5723e123dc500a2303301cc5228c7620b37e3c14e0ee1c8fec56765dc6d44bea0ca52a4567e41b3486c96575e2d158d9064ba1d55e475b7539e53000a8064ed4f7581f589da51f00c13922a3c1137ba6134386d378250b90ef819654df3b01d5121c6680890e1c6f5fedfbadfdf8b6de3c4e6d0375cf8a782e3f18320a0b6c33041b27cee4cd7442712fa26e69d6081d95154c3935f077484c10d5c3f637415a32587955d4f69d52e087436bae1dc279292a893c738f28dfde146c5434aa1e7afed5d88bbdc45cd0194770d94226231efa825402240b12d3a15e22d3671a2fa6acf20c4a856258f96f52133a9efdf0f24f92433fe834641e8b19872194c78b45641d9b7992052a2f35225834cc0a2359069c560285a933c97bc0d0d908f027c311231c55ed1f33272ce1e67c8e792065c74a0c102bb6c5a64123d45ea0586f2f38a30da1504b9a82801267767554961e8a4e1b890ae8a5904919f13b708bd46e8bfa3c9cb0822c7d56b83b6b089bd3ea542b75b4fe0bcd98c27b1aabf97d0904e58ae4010465c8acd5b7425d2c1f34338d8a4a0890e0f47a0bb1907b40f196bbbeae5e64f28bc1fac6dffcb85f0721e60144c477421e1831c0504343a0811524ae2aa9e0da61221896b02e1b8d13da3b7afae9bd9b5908541e43930c530223a51ec38aa06e7004be0547ecace8ed60b6ac94ef6872ca5be0d15106249e4f2f920b895496b8fb12f9096059f1da12485ff6dfb28751a41e84285028b9edd1b7b2e9c845ae1ed7e23dc76c2cdb00aa5f5230cd116dec71fcb369e2d8cf1030036b8461725b6fa22550856b128ff4cdbdd0c409a811020e474740a8d8520771f673b81bb48a021d9b388ebf9315caa8eb00bc4e33735518072b63b96f0ff1d77d5c8be8d3e8c71e1709cb90693e42000a239a0c168a1561ae01145cbdb24990f75ba479fc2d4e4649f0ffe1e1f97caf62df5cfda38e7d34f863c2916604e0d28af092c37307a94ae29fb8477c2d4eea0322e3a379618623b4ce3cba44580045cfddf9f874957cfe6e0c3d414da61aa670f400326b330729f7e13ababefc293791439c8deac427284d71e44f845a8fff2c8a2eec374d5399fca95bfb0c95597d2a2ad6166642d659a35e89446dc40e052ee56f1afc03c7434f5458cf327c35169cef1b5454e8e8aec7417491d27a9e5f59e7f707b46ad3f9b1ca4e469388be2651075954c8439a6e62f0fb823a07aa8883875baa7aab791ad45b4211633b2ee0bf0633396e7ac1a13fc225775461ef2fc22c6fb8b8cd3fa750af7062220162b644ad4761b1a06eb85defe44b70c148a3d3e6c81edaf5403ae23b9bcf3ceed991a5c8be7a6b1c56d81a2c2b7ff30ce22a835c35bf654d35d04a1f44c9aa5d34be85234a2ab9708456bc842093a0c286e2062b678e7ff2ef76f4a13e0673dae2ab19e63a9e592c4df09688dae802ac14c146bcb12e9ca4e841ef20c7282c9f77ae45c7b7d7502a0c827546c84acf3bfb2b8614c584952ea3a6fad09ca6c3a45925aa2ee81c872e2c9d097a7f4cfeeedd4a6256e433fac4f35871437d7b63ca773fbd90fa1b4dbccdf38e48b96f224e32115ba551e36cba86180b73c5bdfa22cb6c27b4464b9388107f1421e621ec853140068bd28ab9730d26e75efda51ba7eebcdcc048958addf923afda4f94b6e148e59ab95f93049251fdbacb2258e4dd6b66270b33d845313eb9c22198c5a7e64ab55c2610134a70d5cd7a9774ef8b080494980a2db1a5ba52cc318faceebde7a7d6f1739899a687fd48e501de716ac3e60ae832a0d8fd1de7eff0ff582f217bd05e7171fdc57447e09b866501c81f62cc9db424e0d9dd89bd23418f75c80c29aa5d599f620b45ce5fc6311b4cc3c6263796a833f6bff195c198c88b974d1d21382a6cb1bf999b323e0cfe5213113aa2954aaee57ea6bb7080119ed2c45869c73bfe00889cf28ba23ec5f08e683fcd25fc3e174108706382f70bcd50d3c0420fc15d2bc3e8896f378fe8bdc33b3cbc988da2d3df97de3579e9885380657a482ffd54f659b6629083278a0a03bb5330086071903f0b2950543a41ee0fd0ff67f9c671275dd92fdbc5fd201147e8798501a67418914fe72abc68c7f8b167c95cb4649f34e33fe59e10287eb5624a5853ea3e5e4b1a7e81c14cf61eb9426670bd17276408abb59f9a6abf753ad579bb9f7034fc3d2a7de9f7d71bca98ff2229483beec6122fb00a074b3be01432301990002024a80aed7bc2e1944cf2fc686f9653280314187617e17bee470aae127ae8a7523fd2a82abf4788702da713102cbb963c4ec26c0c07f024bda0521dc755c1d19f9155e19b527d0fdbc1b6d7e1f74dad993f2674a8ec72cb958aad31f06e9ff5d2256b08a25794c83fc4a8dda6679c2a054bba03709015c61748dee9380befc3b6707f03cd2254e4558e751123625fbb159043b749df54324644dda133d680816e4664c4cafb178cf14c000128d1d748f6efc2e70bc6be2d340e06d422a456106222582120f8ec896a9530f2c8c2d6041d7d1c5b1aed8a707bec300289322ba3e324265cfefdca2dcad6e666d0e5242bb48f597618114259aa62e9229d21f11ab6ccec9cf49dc3a07437b8baf50c4bf4f38787114bde3c62f4d838a7c4e7d06106c639d67183324e535ee4e52e5ec7110151528fc764fdb698b6bfdd2d6c3719d1c4d5ac371345882cb69e128d199786dd6bbad84633ead9d14f383a3d88ad80679b21f194c2956caf98f639d538bcddd8251fcf4b43d8762ec1d136d8aa72d78db737af7a9b63d27548b6927096e34c49abbd9b7d2901cbda000c95c9a5076d14bfc126d2ee75763467b812b7d3d6e40723d07b802a9afa1021a99bbe5efb72a0cd3dbfb7e846d63b808f3a67dc8b49d2f63898c0c5716205af43bd72c4dcb61e2f1772eec28e398db3557fde384c24ab94a4fb939d90eb1a6e756419fc537edac14b6abed94671b0188a066cc63c811737452d6eb9cd0e9f8c70944f209202a751b19d9197189b4594fd6983e402364e29228bdb806a4b59fb4dac274e0073beaeda1ef67576e152a54457722412f9b7ab41f435472fd343292c9102d95b6ca5d1822e264bc0b018e74de9052aa0b7a07ce81684f92bcb78898f25a4c5eedd34708fa5ae20d7b0ed4a94b293df33a546dd3d2f1d53b739066612215080980fbb7e8e6231da7f3b8ecab4359016bb991ae8148fed98426524b67c8e0bebd25853c406fc8531e06b58f82db92c0ad01bd20e058a0b5b28d3ec56293a6c09b0ec05650f44d0cc87285d09b209a7d2591c6e2e155fda7e22a6be2db9946e264b9d3eb7be899e83c044210d424f48760325f8239ea17150d3341189f2f8e89edea2242c518fdc02ee2a5fbb2da03b5686ce31970297ff9fd0f19100ca3ed7cdd06f31a5d00abaf5bacc309c29f3ecbe83489b9842fa27814fab0a04bde9be5dd9baf62092cc2a9d021caece4e92ec7567bc282061774f9a3bb72d7fd3024b2e0346e055af54ce9602f9ffcc0bfc75a2f41bec00c5e4d0c0e896450071e65e84b7b135248d7bddeb6870142f13993f652e41bc3427e9fe017e26ee91f849433cab0ef62be432dfbac29cd763b95d411daf2d0756e80add8d192b2403e04e040406dc7f6fe501482260f57b9d2108b8cbb8750e7c23da6053605a422dfed947fdb05b4de33c05621837a557424db19f08458bae8ba4813e47270de6db41561998e2bd03f35a925953a8f45f48ed9e2a7b99a29d62dac8c125a4d152bcbaafaf93541cc5a9aba342fcc9a6a86066a32f0d194f79b4a5417e4d02819cd4ccdb8957f37c2ee92e8fbb809d38d13bcf2fa329b5ddd839b01b8028f7c61f93b4aba73630158e79aa5ec0ce18985b5cd23fe97118cf7f07384d520f1c947382e5abc5fedeaa5d51f1c6531818b59c44d2a8d9f613774eea82339b7be421474df0097651827210ea442f798b2cde012f4f686f6ea9ed42e1e9775cb933bcc36305249f8fb526d9eb2ac332afaee46face44294186dba18de2867603e369403046dd0363c3d85a38a487d96beec93d4dc01dc916ced0e968ab76ac5952839192cf90f2fe455b565a47a73a31b73eda16e9f6ef2be4110476371e9571ad28573eeaf8dc4e3a93dfbc1a90bc84ad2a399ca17f0d8f8e9a386d52b16c5f6984fb9ed09ee574dee5f8317b2acceedca520c0bee4c2ba6e3640c2ccdfc5852ccd5aa65e1e4bc61af690af78367971bec96efa7692e6c2119d6bb394737a7829e3e8800f6177c94ecebbde089ea07f4b1c7a8c0e963d7fcfc8bf0aeb3ed267dfaa7f4a7b7a1603254a6f53bb4106b36fa74207b337a5e790b40df73224ea695edf7e4539ff4e931989f897c3ee3ab2883d56510196a69290acc4f5eccb2bf5919364bc2729c0f8a159be6bc3d808dd8c5ec68e4a43c18c8dcba812b1230b60153ffc5041f8487f40f42eedbc451efafb02920fe94457b99136496ea3e24ff94d4063a94f7ab5981ca3670cf744144b41061453bd9bc4eb6bf5df0320eb91f3d57008f24040d157c293da260ec01d9634d1d6025a75458c2955746602ab724b4bee6b2b8bca30be83ee8ea27a328a6861441482a877276739ddbee03fa5532488ace013aaa0528888093da4b1d061feccbe3fb1e4e7084f9d3a9048e858e54a6a6488bf6b614652d53c00eba4868d5d1782c7e0a24509689eff72e85e4e53322a5d2caf540f9dc93faaa4a893c94b81e87c1a6c4baaac8fedf387d88e097c33388f654ca1bfe74218c46246416d96dd24dc25f1053827b83bcab5b0f8124d45ff3ebf1d206003c519a4a9b3d47cf2e40c6611d7563443465635a66db8d8e4f82fae21a5286c7056a38600f051b9b135abc1904c9d5881a21f2b352a31b79e4a7c6455fd48db82d7ae8dec6898e2ef9b1edd2371aa344cd1cb4b2a6f9cce4f19a628e8c2293f4b195987df88d4143009017a9cc7f486d3ddeace7fd8539c7e898d7a43cf54cf4b4953ddb31b25fbd5e33f1f9321406dfd1778f27167748bd87b22a57a9a1dafcdfe98efa3f3e03c180fd90cff880c852850843099112746d8ca7956935a4e715aa4f053ce3fb92c576e912e4d052d4c2bad2921dc12c7b467b0003d42d55c34287c87c1b420845d3a9c6c4cded609f5926c31d76ab3aa982f6ea15532737869698c7578a1cfabc541b30620b9167fbc89461e03d2d578191322024bd3a8bb9bccab6e92d0ac0926206f7ff0e612a2b402fde32f7c9f0d7be73d89ec1151fafd62f8c96a191ddcd0ae14788672df6feecf3c18bc612cce560602f1402a8b8e64e1ef9747c6579c625b8383449642fa1372b37737f5a8b5f783117ae6a1623161cc8ab284050529e0f59ce435e7bce310037e319f15874c7f3852989509b472f8dd166e94c35cc184a55b7392412ebfd027d8d75884033010ce27efe776e2f9029a3f505b7e7bb6e5af7b568c0e3fa639bfc6bb9ee8321ecae1ef07eb8ae7c7b792e37816f3273da7b41f3fbc88cd1fd807d888b796bffea8867818ef1ab835def6c256e2d118bd7ef0b63ded67c1a65cc1a85315971afe41c1befb3df952144513da6e43ff8b5fc81c3cd7151557a328007746e6f7199856cea0a5d03e76ebe08ce010a600b77bd06b58a8342a35e969d36e38e261423d6c89261898aa10e9561a8ddc82e03f19066fff46f3ace4cc2d47aee995cccc116942a4a8bd0bea781d232b3539ed91fe015e441784abc9975c6626da3c993a671aef2966a4db59e8842049f058e1913c9bf043797f2afa21dd627abdb39d046a8540f51aa61b1439a0c679256662d013463666520f5b3ca468dc30b2c5b06944fd6b140b8968650b2ca04b9e0453f930c36e3512ddc26f057f7f42bc9dd8a1033111676f4900de29671f4dc5375b24f66bd1251da2c3d2430dc03eefe91e3501854fc06770cd342085b2255d0cc7964bad82723a38314780d949a0a6a96f05be156c874766b4d46aaf1f6836476e43218a69be158d12c2edc6d84f89faf098d9af1171a9e568d0604473134723e1a064d94313999ae0561e896313cffa055ddd2a06574b22bb5cfb61fc0b01918dc298e0f30782b76c6ddf3c1a7a0f3934aa12579771958885c7d062f7c027995d77d99acd7407ff0696e9f81c94d8e3d84a6be9a4fd9c4a5031428bb2fa3391946058085c6f179911d880ead0271ce1cd5644c5b03e899875706160c8284ff2ce11eda999fb7e21250c536b9d43e53fc6dc20e12d3fb10323f9f2e3bd85a6eeec302262ff7467dc08cd78ce9db74a59e2533c356336f580a7aea5d93db941d75ade6dc7af24ad2567eb495ccf82770dbde34453b60d15b8f57fdab56f0014da7a6270ee49b4daf9962456ec2da733b445bf5e47474d4ed4cb08ce11ac5c1792b8d19d5c3ff03710870000c28cd9aaaa9e7ba3bcfb0e8bedae8c09d6d2f055980074edf3128099756a62af9f0d6c3f68e4a7fee9ab3d2bb05050cb101462b76566a9ad2d193511e20a3c710438daee6988858e445ab63161bf7edd00c6148e1071f0fc58db4620423c8eb0d9e4063f09481dc22f55ac777e4cbcd4a22f66e6ad5ed13b64cf7692bcaca245ea17880bc85853ff0014b818454759e62a7e3bca705dda1544beec8d0ffa3862a3474ebc307ad589272e90b92beecd5f98d7e816d907a8df2df4ffadc5942d316ef5c172fb339a9e025c89ff001d53bff27f2f63a026c395574633af09618073bdd97038ce597a17592ca545591fe405138662ba9792730a68c8fe1f8c0f3f05b75e280074ffbf94fc3d723024f659907335bd0e89d4ad4bc4cb154bd80f388033e3de726df575d1b140c8c20b6cde54dc639ba43e111be2a32cd29f85dd8a6cdb09f0c26cc850782389e9233b30e72279467204be54672e89565532022b1e9842219c7fe1e60d0b8222b7bc3e11b406b73dc82da923c15d2507a503d2f83f7614bce5f72d14bf96a33c1c56723dc2dc04e8443078b759e388c5658b91f9991a5aaf8d2c0dcea1145d505844ed90858a1a0a6220ddb0e4dd35c7a6f9bb92a4ce3964ae4e5f0aa67cf9c91bd81cd76773540dfaede11dfa29522365b5839b43040fbcfe30d1edb555224090eff0639822d6a93af515f2610f0aa80838269e101f767364d266025ad3953e12a4416a32fead8f895d26cc258611db5b2acf699f63aaeaba3bef176585e1ecf69ce5a2d4698f2348d8600953d9f53e8f066759333002a4d0c33d585b7ab22284f7d08fe11c3c5664b18cd2aca84594f996ab466a9b92711a75d2e0e9f86d632e2ff31da6465db428021ceebb104fb0e713696643488ff4734c775c290055278093bd3f6b50dc6153c8a83ea3abd789cdf7bfc66b0109a784fd6c9e3ff033221cef8ef1c3aa0bfd934d186fc967f120ebee771fed24c67221779cfc601833351c08ca28b9e762026a3519cf4a9d397b3c9f304780a64a1905db0187e138efff2f1f765e26bc5d9479cdcce75af7877a44aa1edcd661e60604c20e321f782634899be4fc5b25bd423ee33fe041e4a0fb18727e46311d8bec3e225e1fe1c591e244e91030d9185ca12f7050aea455ac6ae22838982fc687556a0ef35969357966e451a0383fc28d5a7124bf5ebfce3574ea06bd6eae894113c71495425151817b2097ccd784a9f7e3322f5f3be2eb6d00faa2dc1ea61715596aca9f27de26d4ce45af790ac11d2e101c4e91efb800a2cb86fc1d65b4e2212e019f15bc7977d15e2a9cefc3985cb8e18b31124a4c9ecfef1b24cda7a8008e4c3e389157096e6950dfb3ce1a1a085c0630307698b904c2da417267130bc479887368bcd7a53560e22e6e19be2f32d08888bc3e5c70e7b20bdcc46c8817601ed838aeb7b7dffa1340dfce268dfa8a41f4967be1cdb5cf09448cee49ea198e7400a66d7cd89079ae01e880f5c12d4a450a43c7420a11d3b21eaa87687c00bf14b73ac1ebe1d0035ef86a67671eea01b3f6e042d9455725ce848efdc720aad13373d0d072aa3183d04ec50ac912362daa62a30cd5bb2391b0085dbed0c5ecafde4c6084e425f301da783f83e2ca53e66b83c7d8706806810b6f7ae9d424124f98fe8ae5e30ba5e58370cf5f50fb48046da2415bc58c4e7a9526ef98d1ef12d911a0ed88e06b2e9e08b5700740d99ae7021070805529bb66a5ee66db9a6871e90390b26863e3ac2d6771927feb486c0f368b0d0fb197ad728b6ab2ce3640d734698feac04555e9b9a75889dcf8e90e9db9bfbc2f3f4e731bea01d9126873a65fedeba28dfda24b2f144042b5c386049683bcaa994b01b98ec365a97b61c35437f124fc2a6a98f0d08f2585c5a38ad5dd71d2982689438132389b7c30c92529a42a8d9bcbfbd11acc54275476014e6e0012de6e002190d960c4589133d2ea280702b2b59a8eae5feb648eb6262153d9981cde99885f06aeb118584427847b59f3c448987190db1a03a31645b8c670d8fd1e317668bc793eae124c589b478e59f47a8fab939f26df1f294eea96013fa8727a53e2ac0ad37d743dd3373c8bcdfe5e9f9f7e302d9b05aa1595462196d0b67d065eb94b359bd7926e5b11b05f835080633b00739732309cf74e388e185e498b62cbe03917f6a203c7761342c2ab4d3adb5501667b9cb1a8c8ba67670bbb06fa085c14537185d2fadad075736444100f8b8bae33f68e4a8e71fc1a95a12fec2a70e73bfce841b7e4d685b47bd610ca0d2c47bc15c6b6a132a241627ec017a0ba0d838e1b1a136f3434d688d972f43d62650b7ed6ca9833f168dd6fa95a68d14f6bf56f88bcd8a057a9dbbaa77d036141a3ef769017a725f173490f4bee458547dad184ed911bc0bd6b156d1d6bdeca575ef001987e8b41d08ca679aac9edd88cc57590797413744b1b335ea2bcc932712a019ae916b2b3a5b61be64d46e44a501b2f1a2157e6752868b9e5a150a84612c4ae3ce19fc4d6885eb57c9067096d26b90c6a5cb34f35856c6b6f1d15e4ca849e62421681d59a8b4e5125f448e5bc424aec2ebc2f3e6ae6218759757843d68af375f896d982a3c28a5f4b2966238a8684fc571a707d4ae158c722164c97b4820634168ab95beb11caa5fd4ef2289871683a52764fef0ccd7dbb5f8f9ad119259d82912ce8e201a70b1b9ab599be339f4917fa0312ceec8ad15e5fcce601fce6cfac7934035ae05a415701605c3aac0fb3339a8db34e91de284974a583d6f3be8ffd377e7205fb41e58d06992643add80e648379b78b17e58db730ccda52dda56d688c9aca1b1bbd33d7f41dea817aaf941b4bc5decbf027ce3253adba1725e519ee77dade803274308d6cb59aa434711b07b998680953acb2632c64d2610141d0622b29ab606fb7a9f9c6f0071f7ccf1aa42b8017248c6cf5ae6036e92b6f70467ceaed6f1ac95985444baa108ee3f3ad5899353426ba279fdf423805ae5c3c8f5c1e21abc116ca83dcd5106c630348fa40e4fd292f71e61fb50c1c6157d1e95f80395a8cd5a5537b6122fae61f86fcd1d3e04d026c7393ad865fd15516493db1c8857fb1ed5b595c8fb96832a980618f35cffe3a442414287b9b05fd21b188442af614c02945be387af90854e8a9273203216bef193859a0a0a98fbbdb508e76511f492d0cf4e3df2507e8a593d1838d8cbadff14655e470768a9c15fa5fdcfeb36ec75fde8cb69930a140a9274b670ea49ac9f073b706c06de5a2cc7c5ae473572652591586ad6dea5cb5b1d432784ed0a6a17b192883332bbdbb203077e4bcb40e45718a5e1446e33b981875be32c36c995c7253bf2fb764275f44a47cc9eaf7daff7ce16a102a10b509cbe31848037549307de3034912b56a935ca751fb0798164d7af50c168140aee40be60aaa613926acd97128d1dd006e0ff85b80a4c985467dd18647821cc3875b1958ceab4d363fb393e87bf20cfdcaaeb2223a559fa395749dc2b0ba93655011483a70ed071672555d0ad221c7c33428b84054bf9f2f70de709742d08d3cfa1b43be50fbca982a8e2ae2dae6f5cd6e995958878669fa10fa5d7ade513f02958b8f24a58eb86c74439ed9b136c81c49f0f20e780e5c7eaf44dac2f80bd46c4ea43a6d997223bd873da1def4091b17254c4c94bd7aa6fe717111f2bf98a121b0b2c5a3c6820d2013844af4037e3bfbd22d0a0042d2f79cbaef049cfa9983a1784040783b3d04b941e8b737e6698c4ed273640dfe8da2f0b14ec81c215e8aab6b830c507b69ff4c947f120e123aee36ada381a7779162080cfa5f1a1ed96b1666f94f86702da1f995a8595ddf5a4f89f48102fd2ad8963082c3d044f3231357fe3403fd47ed634b35ee89a0a6e5bd583f22a35b4a0cbe5bd7af287f19641892fa561216028f9261b458de25844d48220d7ec37c4c14e6a30c0e3ef1adc0acf7d72949dd52cc348b060a4cc87bdd978285d743ea51fd1c99b62c5a35ee71918ccda3f5b4cc9924921697ad02e1de69916a1a2318a78ed339d096630477c8508f802dc39ef38486bfbf5789af31020ceb86dd0e619ef1c4f3d96658cbe01bd53d2fea7cd987f527a889b65253947d5cf5e4058c4e1bf3e1ff004365dc2179763da0707610d4b613e9b2cfe7663b2701f544dfd86211e0c2a63d3e8e6077f19011dd62898e7aec33cc9da73070ec48baa59f98dfb0ec150d20790bb8c3b4460a3135d42d832a439d47d798881cd4971f1133d92c340b6b1675689ecf71524ceb309c34a104a9a65462f75b579fdf8650c8d50f7f29dc42b35a8026e1d011e1c853b2e684c921bbb632fa277b36e88323cc2fdd6218507948eb2192d4db2e0a59cd8f3fb0884c901b17c8ccedaf8a4175cc271379230a9deec97f31943e42fc91b23da8cb53402afb86571ff044c5ec2a8069fc9b60c6054d7c562e12ddd94a177f44cfea8c22bbe391c183fc76d2336e861958b045daa12ecd6c898a509dbf8d9c24af344ae3c57b467b6c401a2be870a08b7b8e0563b5ca42c247b570b7af6e1a324287dc660fb9014e947373ed6ccbb00e19ab21daff9f80f3c169d6b11c9fac355fd452cd91bea5c6ad2b3aef9c46594aaaff351848ddc37d108e6fcc8f1c90175f9eace2b12ca0d99b9fe211a7299dcb7f6b6526724a60c2007b152a7e3ff735f8a842749e2096fd29711be40084106dc1c917c615b9b8215f22d6f1950fa9cf23b27c81d4a2097880be0f49d7a84349939e50c2f5ea8e3e40af44909ae14d3447d148cc1ac7ce6c906b0fd001608a38faf8ba6f269912706cff25cd6aec76e0d7e219056f2560590255630f76029a0cd7a4271b3113f023d1eac51a65c0df475f2dae8f70ecfaefb6ab79f85c9f11bc9c3b3435b358093f09960004246799bcfd793fea2d55afe3632d29ecf7d9d4c924b555b6b576e27434583797e1ab6c4e0342afbeca7685be416c17ccf4411e7ffa8111660d71e9604724c30408c4c2340aba592b2b3c9d0ef6d88b85f6bdb84532319c72f48ef3e5b953e2f30ebc3e53a0a2119c0682a2949674584660cf34552750a1d85cb9d5a2bbc4772bdd55a77d3bf1348ef44b6b59c1e3d078d4434fbb02df21454a212e2bf50480b815ecfe6cd9d0607953726c92d4d0f6c4941006409714e94aa8d1ad9c97c24e7b25bc967b3f0310fd332d9feca8b8b36a1dc465923fb522d026d5a8a8524e94b01292e7ee024d8f8367387698c8b88e4324d594d557a2d02b2f0d3678d4482740b18c210369a9365c505ded399f5982e03afc12054103874f57f2df6768b8c7fd2399651669e6f5f1de47d97f0fb0f23d5fd321881445aa37be38352f83375a7c5c4c38480526c3077aeabaa92a6e7ec05b5803a8c5ed157811dee6434884b062cf127a91d2d615460f2c162808c0f79d1d60a6027efd3edd17e3f9952317033a70ce287024ef58f9384b6cf6042940c92d05626c208fdba47947e055ba8ec37f45cff49ffd1647966f8fa94188e1d206c43145db727034d7004608e4ee06e3ebf535a7661753b1921aa4ec69a041e78991a579a1aa72856cb8258f7dbf4d92f99b680855d0d8421bf3f02f6927362a12a145fbb796e7a649b59ef8138e11c97cc28caeab182a296f87200bc889035402d697feca682eca4c23d16c7b2e79a50efe13cee3496226b31c5677cd90b503c505f7a62eb65a0015247095a471603a3821023ce309c2a805b636ac81f36176a5fb2f3056a56343203f87a66b6c361c0c9405b4ab9a42d3117b240b2b588f9ff29969d4c853816e3c0b6897137222e6c28b37ba8d8bbcc9aa5a0d482332aede5f109ea6e996014eb2e67e073a4dd38fd5bad5fc80a9df92785bafd12d38ae7798483de397d88328a0100911c9d89d9241c5e4b56228b5a3db425fbbc72c0f4ee7f7a07ad93d0cbf47b0a81dac43273c24601f6cc3cc63f53ac079b0f2902d13fa1e383cdd55645247311ce22d40a7d1e53908df2f2f574a2812a1c82c395caef311e926e10ccbecbf68982c2670c774539c8aa1efbf36be29106d948f22004377ad6f5e1b1ea97bfb24c274978176b429656f9580668ddc8f2fbb294b4a51b74bf704f404d1075e57ba284b03e8dd65a2834010479b9d8dbc17cd6297984fd77b23a18dde4c2e026317d74e184bef88bee491411c3231ad0aaaeec108ec1981e6e2cda2892907fd506466ac3837fffe9d5a5930d6af9fe8407aecfabc77400495e597f71531a1fdc2d27fa80baaab8da12fdcfa091e4dc558bc5aebf96c66428ade1d4caa3d5eb071540fa2c541a077bf2e82c7802531ea98aab6e4fe400d7394faf3d260226c4fa8ee3c49b2729c15c560fe32d31fac54cf160dd4a8dc7eb9366a1c7fe4aff67b00b04b1764c7219618a988eca129462db43715266d7bd9d6276ebaa760df5c7603f2168b2ac9ab2d6123720e09212c0552e2f838eafa3a1a2806c19840c895a29e0edea18a6219c8ac709a0a761107cddce1b304c49a44270de458ced617ab7ec860e7636b5c16586ebb0902c21ff0aed37a204ad9e6bfb6e75e48d4423c114a31f0343d7e1c4f0667cf79b34ed7a612366e2f27fc8672e5a116eb021bd4df7e8bf608925f7d64eb724f5f6090a298337c594d07c17a38e1e6538651879e36903a6eb551eae0d9df83b614c5b12b203a924cb1262a0edd41bd7a40ac0b43085a40e6a56964ea20e79064e12dfb8d7855f4e719cd4a324f3b4badb7c324ff3ded33fa46f173336d9c411e478e288aa43c036a6482b67bcc567fce846bce67daa00e5de0c7962983bb01bc9121bceb58408980a44db24afe2e58dfc8e3a4a17e0bf87b2ac2df3e6ca17c2f2645dd2fc6acfd24954360b1367d40fbcf95069c27ab81fdf32d8c0d28975213600f6bf3c66777ff9f7b86b2060bcc50e61d201efe144dd701a880374c3000c01b2f49500b4c7fc3906d5c64d8d4381c92bf5847d3d6216f71257ef17de4d26d7c31b3291bed6653d2f30e80d052e8b89ae45f2fd158f643363d1f0e95b22a67ab32caa453886fdb00cb6b733b4ddceac7c353b82c9be6ed8e8af79ec5a23cb4c16b67558cfb4f841574f1b78c25137de7fc19043480b57f3fcc2078ec65850044d00f1302d32cb53f424f434699337f20ada8a9459f51479586b34b54371f83e4e72a74839c55ab38095481b938a34ddcd78b7f3658edcac52cafa783272bdda959823efbdd1fd2626df0c1784e5d47d8dd996b8e021421cdeae1fa7444abc0921b84523bbf881ec8df0b54fd6a00caa0bf7f9d9d543a75601618680e6c6a5caa11bc4905a59a8e2a8de5ece7aec6ef06546e6ec6a71a3e1ff637f1be276d515c7fae24a64cd7a8ed55dcf806e448ad6b14299f84d8102488d84762e5135cda19b32fe0c89c611441b6cd0cdaa84bc40b682ae61ef32b1147ed8f0ca4384336c4260481aaa8978a4761fc75c5464106f5f1cfa4609cbc9b80a758edfc5b24147b3e843bc345fe10f37a0cc18a955d279061708f0e943007131414fe7276a4a622217a7b577bd7364b0913ef278f5357b077d6e36e4d04332d267ba29be50e8919abe9c0831859e5f51e34c024a473afb6c0d417951a9b97eb2601b46598be88c8de44a39d72d90818bffd3022ae65e18a251a4f12b28ed2d43bd5b22ed2c607228d9f640f28d4547474da4948c10ea797a21784692e6a860732d812d3675dc3093d35fb30570041118265efce8b29a895bb6463e3307d23c7c0c02b81686b983227452584884eb7f52c5a695b6738762fdd30242afd6ebc808202fd6832d9b83d84942b84dbc9de6703d02620c97ef824a2cfdcc7c32f43440430520f5989357b00636aa0a15e49701eea519d6fee511c123b566faa99624e0055a23ae0a8a635872b308bbff83f386f24078709ba008438c0223b6b763284ba5ddec615546b2ca532871564712b104932d3c5b8a19392b5b15dc858d01f31bc90661355b7f7cb3eb005700bb2a5d8119071521af3a2e22ff579490a06db646fd8161f91bdabca0e3c2c0c2637bd3720030add074a3b8ec0d05c09258b0ebb5b2529bac1ec0a607e3c325d04d1b12415c761261eea2bc935f27ed23cc8b75490d1621081bf6d454ab232548eb562c4ffa553714405ca1758ad990128d4b71ce1eeed636b2f79196e3fb6803f2ee00d781cc6125aff2d562600335537e8b8575e1abea4e8108d11114c5bc66deb40a19b73cadcaa9e9ecbb81b4998bcee2873f5d6346099507bf1bf2f2933809e64a347e7479f516d8c1c8b4ea08906391e3889ba3a47f58d88798c36e9a59f4e3d88e6f46224312ac58e3484a745eee39ce1c03ec6a6aa62b638e1f3eaaab70fed5aaa160d3eccde81f65dd108ebdc303a01dd6baf5153a562b3a097d09938645420b914f0c8d9d3c4fd74655e17b5dbd689a23db0d0f9c9c639cde1f05d96d7e95f929ee44aab9a258072238a3707dc712c06ce00fd21fe01400881aa5f73a94605c17cf90cc01fd28ba799a73dacc294209f83cf244674ddda31265d71b9e661b4736d449ded80cac69cb3f7d79c2cbc125617cb1a22632d287653fb6a9555981529d60a94706bc6b9a1e63da25f6bc45d86a131762eb033f5f557c70d7047254c08b184948467a9ff94db1b8f5616800c746a65985e82419c8c0e3a6d7bd0d2398731c3184bc5fbed9dcd023b42f2a2798cc900fb28388def3b0ae50bced563d95a1ac16addd70b7917b688fa8e72234d530ee22f7335fa0343985d844f41f82a4f35530bb42b37a3ef164909b7ac63f183fea32d68b622cc99032f23bd15add23dbaba158fbafd8d5613236a55b103249c36f692291e61591c66e2910e281c842b6eb1b556722a1e8b5842269c122ad9aa0f7210d0369c3a3b8c73aa41dba9bd61c00ba80b74ef6e3f45d085f5c27e5a5a21830f3056de8baa6783fb64ed978cdfcac1bc43dd761a418c126f96a1a0ea4f6c38f99dbb0c7a35c219486a87ccf077f19148a83c53708afdaaa6eb38de2c6e1c272196163beb3c3af2d4a0da1ed015d8d995382a4b00d324b8e071742db800e5a8632cde251d3ef15b1acb3dfe49de1db5861f6d381f11a81be134f8a1307b1937828433ccc6fe2037f06f294d28ebd1d82e510f0af7473731a4c0dbe7696070c40841e57022ada9b59e37822ec9a82b1763a0a13bbd83241a9f4e69ddecff6d3e84e648546354245b59483d1310e77572693976793bd52f5510c741ab37be7d32a083cf6972f842f42dc7263dfbaec95b9db446b0eafd712d4484e6fe88dbd8a857f6aa47319db68602e2ad65e21e0a4a6bef85d1543df1260f11a95bef604dac71d38adf09c10897233dadd28d0b76f725b095b4734d49890b4fbaad6c6113857857586b586ca3908e00841971010cceabb758041216c8aad3e92815154fb72108a2b48934fd2e2ea2e2c9bd897e770f9c01fe26343e01519f86291b79e5f94821a12755b82a03e2c01b80b4b307cb20e8085069fb1d2e146403db43ca4fc649d843e0edab3223ebf40870a71ac695e093d4b9acb5fbdfdef38b1d5eaf9d74efa1f4e12d3d6d304bcd5e42a1c80a687dff639481011a5cb260d28badadbc207cd53723c768092d9728f39d206c91e57ffbb89305cc9905194cca62a84e259828ef5a3630065be690e6d0544342e431e84203c4ef0f56c7465d48c8fe439eeced0089a2688b105fa7b1405948885a69278b0374694720df2893e31774a1374c89a0a8d612753c70cf36d08a98c34d4e70591053309b405ae99847e7a81ad2738d2df87bae87a29f151ea9149c0812fb3f631976c73361fd13d18b51be6aae247e7a076ddb81ff0ad53c25eb76eaf816207ed0f45fc6d869078b4b921532d85f862f425466d13925126f1cd1586f91fa5467fd0e770b9d27bded7f253d0be9c50d24505ac03bd1957b9bdff349ac9430d582f86cfa45206d8abb2c3717ace2210cbcf599b43415465488ddbc0db2ffa296b75aa82bbe86d8142499451d9357161a8cae7f09dd69d98097794ead05422545feff417a49871b8f977bb4241048c1bc2524954d4149ba3e7a70b78ce9c6aa282130551ee4c5ca96483b7137f31ae1251abd34e13eb332685c76925654aabf05e09222c689739de704b6e984ac512e538dbeb781c7885dccb6c5f216a180c88d69d1fb75d15fd2729a180f8711cbc8873e2879800fd4af0c34d5d2555ccc6a63f2abe3bf919f87b404f231001f963af238770c1f4b069fef70fe29f96c2b636d52550fb38468a0eab1c2d497fd2a88feca8fba369aa3997b349169d856c658e1a19e6a0ff6c33d34a68c38d4731166aed9373dd7070f16a46da88a1903bae14fb84af6771be9620cad24dcda14962e55f48c280714b40141bbc61ab562d5572f4c3d97f9c1fb930cece97d4baffa3ec4dbb7d4c119e80ebc4be908ead92a9fae04e73c26af6b2e2e641d307e3c732b2adee7a4ade914aa0e9df00446eb061c8acae8cf48c04ad558fdea46a8de54d7e0616cb0db9ecff7608f764a931a95dc337f888b459dfe696bd855b743dd11b83e69d9cf4a1c2dd41371d93270fd4134088d0bf1775cd7a45510952634da4e1f59e3686bb6cde0453557997dd4256d146a8aa0e05f81ae23c32196b69eef35e9c759644e2a500ccdf3306a9892acaef57947c4e9b50a6bc8eb98e8dfe0bf5536358c2abbce855d93a0403b48ead654a4c0f3042f254557a7b681dad5458e77c352af9eb850b5c7b44761757661e3f1229be993625d51fc1d6385ecd51b23167cb878a5acf26df563159e9ae568162b17b3c2a0990417435a7aa5089fff4ae587843e845c28365b2758f0af20f48c6904237f6dc9233131fb759f500c1644ab600bd376970dbc8321b9dad68d3f4f99aa1e246411ea7809d75959634ce504ffa6de11c7dc64c2eb4ee1e21e056dc5850161b258a417db9a5a71da4e8f2863dec22c928be4dc0463485fbc9f67cc43ce1f5dcea077d9ac5c69b474f178d2b084a6ac97b4dd02ec796ad1c6678caa713e7f2373185247b655651ab0c34911d7b64feff615531e634928f9f150673f04b47e11d627b57ab18e94124d4f8be9dde459df1ba46be659f9fd5db84d2274a8c8c728dd827d33965de6e2df75ac00833235b9aa42e0570c500c7828085ca41bd9284de2af68f196ae8e18eae940ef2162dee2e631df0514b69321dad69326ed2bd902d81535457bc930a73bdaae20013e028daba897b81b731e967a0d3a1912708e61624305d89f8c34b74c5dcdb31a4eb2bf0cae89986312455cd75a64804fdb4c3236cf5936f31a54e87c9e75c700c6faa3bfaee5961a7720b5d6973efcae14e23bc457ac43036b60569a81ef2b4003dd854efc74c5785a7c4ab6bc5f9e5ace191bee308ad25d10019e50149f7c9d5693dce8b2817e35bae2ba2c6e6cb5d42f4eafc4140280e25f895ba6c4758325a6eb291fdc241e7da5222d4d5c1b134b0fc6ca38f33956abf4c00ff7e1c79c145ca75b10736d73f11097c8261348a96b64dbd129a7bc21968faa6eb8dbf3bf3b26249c7aa3927a1b9ddce78beab43bff4f2bd90fc57e94ff3167a5988253f5f579413689a06a26263d21f70e4ce06b84a24d06d6fc0739142cfdb8cf4a629e3b6f3c6c8e5e21849d137a329dc03927cf31665a5320359e40bb4e371b6af4a435e548989d3db4529b8ec439521a5f5954025b89253adafa10013bda88f3e083df1c9c4a514d22313cd818459d66d24f8863b61dc4a50ccb8861d0526ec4b11177842f16771e15f96a80cb05e564f9360076ccad6e3af401943d3a531966baa161c34e31adf27441203d05a6b2cb88ff27cf99fc5215123d89755237b08af69b8fef629bc1fa03b97bb9c52cfb88ce6c6d9a9cca5815e8eae9a9638a01c1424d34da43905dbd9e68b6d03d67bbfe98e8213500ae20398d6e903fafb3703ecda48647af3e2d33f1e24010fe90349a0806924889a7c5bfa4059aef8e2eff1af0c1260649d465e259a4b7f0cd39d513902d3d9f931b4b3e7c21609a587b55e44180d41fae6bbfe8eb5c566b4e4b702a84c295a9b1bc8c22e45a793933a6998b1ce024bda2c86539de0ad93670549f09d5456b482d62eba36b2628f1cf865eab1b1efa8bf2263aa81264812523c8f2da682dc1eb79064fddea1a20e7aff443f761e51ad82473d750f52c1b8397819f2d6aecf48977419e38abd37b5a8c243ca41ac6652f0efbeb117eb143b4f8b94dd5fce95a1542af1777fdb5d68a25b00d8527c29375310535d3270637c226aaa310c9f53ff3a8c6a1ad26f3551929ed933e1453284d7424c5ac883d70e556b0c741b6fe8e717f53f53956c663338e5e528973726c7c7325cea2a1b89e391c6f48f5a0aca1f91132e27ac6e43ecc99abcfc139d5cca704195bd2625a7a521c068cb90f63b82ed7ab04e7848e2ce478574332037e195d7e2db24f87fd9f4ff372b8dad7b4adeae58b4695174e137430cd8fe9b609e040692e8210d45191193eb4bf7aa93cbebe58ec2328e9c17ad6b145c482e558a431abdad1f22114a921a43fc4cf15c0d0aeee4d7daa00cd44b1d693e1b80711d162fc13e44aa5995809cb8bff3ec6d6fd2fdaf919d0997d243e42f7c198b075cd2082f382ea76946ba77533467c10767d93f6050c53101d00f9942acadd76abdf8c8acb47a95e107b1ac6ad2c0bb81fc2b095dbc8e576ce34d974bc67c309c2223cfce41e668ee2cbaae092c8579cdfcef68d129497f905846e1bcd471716439e7f652630b42b7be0fd0af9c9fc2e9d79202693b1c82fefb91c1aeb928075af4abfa52f13055ab0784f3113fa67659ff901cfebd0d3050b111bb119c7c2bcd040bf7d4642e3d5660e95e12434db96e1f22626299fe0e4465bb8110ae4a3ac50c06bd0ba3d1cd57cf9f523ecbd085a18f84fd4bc615a3e863765ebc65f0cd9d7dae6faa1a9a156796d1eb9219d6fac00d2e1928db978e102a2d7c96c51e9df0ed68537fe24ab6fa3956e0d8708eb6e1a78bb43c41560595c1fff1050b61c5923069300aea28789b295a3e2778220d5827123d1067c043216c315889da390fde6c1383d859172967865adaa8a0c0c9e54f90b9bb8bea00d44c6b104046edebf44e0223dab5f5e065e795c3fa076a9714af83823bfe992446c32205df62019890f62b56297ab6b7badb3c3f912d92be9f5f775bdf737026efd71f5c20ef52ba7fed4335f3e7615d00bb6d98bb6c5d6a10829478fa3b0c351772b1db3d068ccc04758eb970cd50c10628da173ab7b4760928b8575f479f6d086c3c61ba2328a06c440cbdb46d905a80ed7ea01f065f97ab50b9853f252e1cc11e96ccfe813b67b3d4c01d8e44d484e9c041db0d9240a8f37be3de9410aa4f08d699bb50beeb1527e921acbf0608ff8e60cc6f6e4c9ea3ffd2124a01c23e8e8c22dfdfbb6eff46afb2d2523592311164c95f4bc36f55094ea42fb46c3a0111bc1d170d5640f97a1375f040616f3b8abea25622b574892c34d09359b29d42fd923479a29f89f00dc85005ee0c620d6c1692b4033a9b4d8c0a02e186c451bb07b5312bc9bc2f7859d4ee2743b7b8eede95c040a0f61eecc231836c2ccd16b0d960f9b5cff52759d3f34f7896df2156a6c7fb999ee287147967d99b9c6be639469b0cc2164c2887543f87d66a0cf9ee918946d7ce05d01e28c0ff11c19a535b3402366204a016ae7b5522f405962da088a1f812a7863b338c6c0f97f94c385fda5de018b2615bac4dfb598c219fe54131888a352b3e766a085f709ee4397841c7a648175dc0a948bb199833159cc62804e7d3c62d204de6927567cf603c61474b512398d06e8a9e730d7c5d94cd51e84e6d116e54ef4e188965f9376183bdd829605727ff265b03dc802389b8ed69018d154771f0fb6537817665b44085dbf6e37950bae81c5a8aabea253074de2f14c2e060212312b35841c3265e6b10f1c9c19bf58d1e67cf955e0da7a2e0092c8771486424fc8ce7168fc43cc8369dc5993f04ac91042b11ad7425ce38372bf1b74eb971b4a004cd9a33c47a89c8a3aa6bb41cbe6d4ea7fe839c2f27083634ee661110aea33699fb3866a124dd956bdf3612d167b7454de6ac16537bed5ad3295e7b556318dc0a9ee1e2495ed51b634ce8ff39eb84c9f2d52cb2bf23abf8d49472a7a7646e188f978f01e410953d545a33e075047e460cf2fefaa4b4b1c627d919081152e752250e64bfa9571bc7e1c625a52ba35a110a3adc79d0a2e57179b6a35de2a4509630788ed70e1c634a61e57676fb880f0b052ea41d194716ec05541d781f99f07e82e5974b6661b29303a70c03b4fd6647e7f5151c8c4fdc618af6e71a2f44f9418e801597ac152f8404c41f57fdfa96f771bf943e1a48999fa49b5a0c58a25e1c2bdbf87271e5ae249103ca54cbbff030a9f7ba06b62b09f25d49d393078eaadec4c9d52233fa5678248e3fece19b50128713c8e561041e1d762902438d80e4feadab033acc43d92022ae4fc2b85dd850a2d109e6e57d543e1adaf65444e0837f86c788fd8130186abd6e1d6586e74afdbb8d80e3f0ed009e1a9f2cd88ffb03b5bb6d6869140cae4435840b560b87e546290947eaa59e7328781ae0716aa17a3cd5011ecc666b9d909372416d809f723b679ecbdab706c500acfdfc858aa31eb4124bc8363c6f370ca8c27e2a18f4d3172a920edd65d210253bb8f7613c39c2b2dd069df91623d2d04bc967189e1882d852ce53d19e4b47ca6c07f5d56f998c9eb451e14fd3355a5c655bc0075975c9fa2cdada6bd0a2fd830b3b622f15b2318991ab51513f389e0b55c204dbc7db9d2c0bb108a58c56d802814b3bcd17bef9aa588c66ad3ec6495f77dc358b181ac420cc4ef7687e3da0e97330f64575396a1c19396ae78e4856d81e1ae35b7fb61a1092bdd0527176a69c5b0bfad101725ae297330060e7028fa02994bcc2fd138e1c323ac41427781fdb4f3f5eb19e437afb9ba1cabfe157f9305361b4df90e40b2ee2ae958c487221f0f0852576d3093a775b0f4358bf802cb4883ac26fa7790be0ae171109f4565fc8cd23a902cd409e0946dda483d0aa7a840d69cd2aaeb8032aaff964a945dd2c0cdb70b2a627454e70fbd6e0ee8760707bbd63f6df20b2013e08dcc2085e1b1bdafb44d8263fd058e7e5aa220380fa1088a194618888344d99acbbae5ebec6bcd33a861ce74c5e2d7e882a8391faa0611dbbce2937a6c082c73af0752205278318f308138c3afeaa581a3217366826bb86b689a51709630c179789df9a7d35ad89d3812ebcfdae8860345c6033a88baacf41951df347b08f79c997dc8c21b1bcc616e6bf098c1f297b4c6be39799f60e39279e8ec8dbf07bc5af9ea7d4a7b10e17871130cff9540cd37a29c44ad821ed3b4bcfdc38d669760b9d54c53dee49f8362df34b982c138653cd8dd64bf315cc5084113ef13da19047c7e85a4cc5f31c4b5a44425960320d8a6a0d1a4dbc2fc8425d1cc2dda820a867beefcb78761f4ad5d3be7f798043f6816abbb84ff622545cedd8d310b69ac51c25308f403c2699de846c2ab67b3292aca4847c8a7598d19c5076523f8cb84a02d80c208cc97422226b28139fd22b4b6c15ea80428d74cd9f7839cca5a75163ceb9273e9dba755729ea849652a3fd99e1c7754539e1375109975607c0004145bb0aa9072ef7b91d0eac730d80529d188437f0725f6b0189aa849eb25a2501a1b3777fe6206337fee3873d40d60a00e36f157b17d362858c007a1cc0d11fff6f8df2b2231e16b9104b061a0d2a8d43d29aa57702cda37aa142d7790d6d78d12d78130680041dc6399df703949b7436dfc6617b0175de5a12c70541def2c2a15c2662542859a3c9d2d2cf02d46b4ef763e70f0965703b6d421e8982e21370fe95e47867bac880fd03f4fd83539a958cdf7f779954a2562359cc7b2681d1f938a494bb13d0ae9eb6742f0199f681b2614964fe8606052d9403a1f8ef2f7139d431c71c2b33807c033db15dd7d08b8e23ce4bc6a3000729ba9c151fda727450b281b0118ae7294348b1241e0c5b1450ef098db4870d2fa013e4333d2a8acba8e24e3503caeec4d57198e565cdb4fe16335bf1e68817d2a05e285f05a995eac837483ea2dfa6451d9b17261f90f873eae877a12d383ccfc31cebf953cf6fe4783bdc1bee9ca52348f2ff9bb3274a47f6edb196927c254290810e1a2868e9d140cad82a676605d3cfc1f6f2bbd6a4b8dd591232ccdd47ae448e022ae93087448eab0e245184cf5c99ef42a36853a92cbd74d3c5992adcfbbd94fcdb131e7952e4fb74f91f6039c6c9678b656a057f1cac4bbec0f7e04fd6b009ac2e0687c72e43335c63d852ba0cc6e246be3f9c772a2b9b3c7e5131c1de370dd6f48eaea5d90b84fb093731a083735e435c280cac2a7e2763f28302dc407c017cb571193e94c89068b3328a3c75c88edbbf059ad912e467ab6b8380a81f38bf56cc547e8d7e05e597bf03422f4e75614c881f6bd1b2122260db21f92a855412c57e25a8254ce6dd74f95b65c1ba73f1138450549e3c287a4b12460ec393aa655f9d1eae89976e0de8e9e3f9ead60dc5ab4359cccb042a826c561eb77afa3960ebd266e92379a6e724727e4b72082768024885d89277d9240f97aa05f8034c40a021a4c91435d4050b29a0e112f64e94577bb5c6827b513ae13a1a9ce88e6027405f2d4d6af142e88ee35cbf91abc29620b0fc8596c1c76d0f390408d983f52493755fb2c7ae04b033570e1a910f9153322db287efcd50a47535b22e5de526e995292320404f9034b041bdefc218431c81ac3d38d7ce6b21aab3157b94c465b2ea3ad495bf0064ad7aa25dd981042ed214c02520a6c385b17330318edd128cfdddd674c91666ad665dfd1960c0ff72bc1624ab05ad45effcbe4e0b35a63ad166dc9e8b85f095692b5cd3767b96153626d53d43673066fe0cb6e94ab1da185f945a675eac71225d706714c4388fda776fbbbb3e4edc4c91c35b4e179f26951d60f77d40968fcdc2c4749e5fd95c9fde5ffbff5b9b9befd239ab4b28bdb92634e3cad9ad4a7541677c45971bf124f0f9e128f52ab6d62d7ee43ca9325a594ae28af695ad571e47e95a7b24810c6e0b2fcf81471e4e925573fca9ffd71f975c9da6cc593fd57cef2ee5d4f683f4fa51b67bca516e743cae2ba4da8f3b4dce53e40414219d631d9cc57f43a8f8fccc624b261a3895e2d1f1b3e401d2434249bad9ad53c50d6ae16cc07ca5cfaf8f8f8f8f8f8c45a4034e80a9986f0cb238ab056abd56ab55a11166111168166ad56abd56ab566ad94cc8b619889e8bee050bffaf57abdfa0585fac59a3df7a32c021cb94cde8ef33721d2933fef4d6d131f264b916bb458e417a32cd3183691c410326c2289a11c4f32dd1920dbe4cb63464fae5a849ab3c8e05933c540895ca58d4ce092174cc9b10341671966fe808d27979d5ca78d27cb825ca98d279716e4ba593fc94c0c9b580209998961e289cb35c8b55a3fcd0a2d24b1c850ca0d04d6f4b4d7c4124fb234b54d8c8c0eee675da599ab2cfedbe2c9cf72d4ff4afbc115db8013bb939900872bcec1e1dad140a4310d15739df7cac161cb75b0bbcf1bcab1fb40f039e22ec1add8e29875d91eeb933f6b04c8662aee107d62fbe810c772151d32a1a36f4fd6e5a8c7f5e47295d0b541d6056fb4fc9816ddefa3b42e1a343abbb540dc5a20d02642eb82379dad0bdec4aa59ebe23a27c231333cdcd9dd31c36c5d31db635d3178a3c4fd6893727731e8c6cce1fa2fc0108b75036e2c10bc0254592122eaf1d3c89f7599bafb6c91fcf86b89a8d87d5608c9ba7e6e0af6c49d76b86f5df9b18cbb75d99ea3fcd8bea2b42a86ccfeb40d5c32448f5812eb93df0ae54f41feec507e12d0122046e4cf3ac96f81f263ef88824c6856d436f06594ff8ff2a3705d2e48904c1f48e08c1ae9c1480f46807069486847b4234048dca9e2309c59867805b6bbe5584897e49dc7e4ff7f314cedc88d61b9d35dad5637e0d498cacdb070fb6e2b3f2ec025fbafb8ecb8a3ca67118ca8aab8b3e3584f3072795a9f397e6833b1630a6d34682339ec1ee5adb89fc7dc88e28f15b9ac6dbe6bbcd196d039dc9bbd6d23f33866cf9e7295a42da41bce9d4824dbf7964cf0e2f3d2bae13e9fbdf47871bdf478517bfdefb2587b4d7482fbf92c969d68a86dfc89fc5527b921ca894cb704afe4c63e83a85641888325b178f702e472456552a5ec10f83ba1fecfa569cf29c55e61758ae5e9d12a98552d8a921dfbd4a31ab3abecacec3c6a3fd0ffb89112ac8908217e78015769d8710b271a815c8931006b5c95818872fccac2892bb2ffdc1a90c8d49ee38f2d5d602e0861c486116c16575147c7540a28386492aae10252210dcd311962bac36dfcd1d3f77f94d655e4756c2fe50bc8fe5ac9e01d43e88e0384907abfffbb430821fc2c382897aab4be6e3758e397c29ae82a0e87089713eb9013d0a39f1d9945f5422965ca8694b2d3a4bcf76a9aa6d9e024e8f655ad17d26b42a1bd1a737777b7264d28e48e388686bcab11847618631bef22be5223ed208e88ad14b7318c38268914b6e042c491a755d107580c3f72728cf8e14985254ce24f6492618ed875bbbb310a55513f40f351970b6d1331ce8427d30d0d733fae0cdd322b481c71c436e41920964349828632cc2fc4a01634dc7b5d85a1e7795a8c1a36b5d72d717bd1c39f873facc953108a61fa76c491dd77b43d282ec4ff33277de979356ad4a8b1319145853435b692db301e6960d1246ec3fcbbfbc78e31469fd29e577123f618ac890b71e7b21cf4f4e4cf8485f4811a41f9971f53269860428a650a28b4c7648267da1b229bda8ba78735978b0b9744d1d112dec02c5b6c7b331842880c937c0ad3cc09e74fede5c72837e20f0f1146fe6e0ef35f5288712af584512a05a5e698e0c217751c3b89e38a852396d244352c59dd1d579a7456bf1059514714d99c1204b7831abda67bd4349a928191b7b8802a2161136249299d543ed6a8a4536af25f2cb4cd672377942ee816422d8ea390a7a05086f263843d5a7411b2b800b824063991dd630e6290c95de81734ec277a6790527e0eae23f91f83fe93388eb1b6316a55d44168491049b2c708840bfd0892bf5814877ee8c85f74921d7ff58ecd22710ced3eecc2864dbe9d4c8e724c654650d3309c53ceeed3e6cbf94dc201610f13148bd29c539b5a0bdad4a4cd97fa524d69cf94fcddffa94eca548afbd81bc7242d4423262d33f931d25e03c9dc82eb7e773526b4d83b555671bf9b9fe87e90d8c93cce21e2109191388786711a7ba086896537811a887c9703e2896b8858c33510f12ec7ec6ad0ba080447638a610dcb0e30aee27e18e288fbc94b4ce62c8ec6e6f1f75145f147af8926e7ee76778f9aff477777f7399b4e8856d0f28b853964d49ecf0c5d35676d92ad981231156c0eb2e1391b7a5d22db8a69b11a8bf12226690b8bd75efa6b2d9796b553108e499ee169e651a36413466789c5727f37672e93e5fe38677336672f55dae67ba9925be2f7a3f85205dec0d29412acbd2e1571dc0ceee7b2976c7337ea04cc34974997d5588d49975a8dc11b588be4d6aa459d004f92bf6a246b0f524dc9fd68abc6dad3a4d4b03cc5f0ad1a9b3329724a495bae0a77c673548d463546c10131d9bb549198b750665a6542a31ab7c700cfbf8b0a693e97556e5c5fed3991aff62fbeb8dadc641b572d89a5745b5c666662c01b19938d89392a4884cd64346c0c8d48145ff1151323336382373332c475460419220020c60cdec064886b00ac66e5e247016bc8515d14721418428dd3f272209868d8ce25fa382aba5cb04846500c5290080414233342cb8c081636942f184b182358ed8b4bb309619341bc0501aa7ab55989ad5601e8159e39cd9420612cbd825ddaa3d522cd4e9d2541e789c18a0460b52325588789c0033158a420711557257856c2ea10164370089e85b8a2360d5c80c8851660310880f4421d80a539da6381007f42c1460a1168af318a84a39a3053236512a6c92ba28a34932c393ca43cd36ddd78e4d65809eb9d5e4154e34d3625b77cc11d4833d26cb6c9729366f2e55d005b00d28dcda80b03a4485748242b50b5c95870c82d61122661d2005613c2fd48b354ca4933479d2e25cd1acf246c2661302f240cd3200531a54ee8130e100f601160254cf200aa4833d24c8bdc27b8117fa4d94c0c0dd30c1931605e5c5a66665c562340e1a3f5033e8fa3e8f467390a4eff774d7613dd1d1aeeefdffffd9a5abebfb4ff3e82d81b99fefffff17f13d5eaee1e272519d12f60746f771cde5d5211d02c73a74378c27abff2c41f869cebfe0e438e3f0c39ef579ef8c390f39ec4e3e8fefec41f063a053daa254d89a6445362618cad55b9529b74e3ec8450e078408c3898dd1b38ae9d8b70467280cd94858be789020704a0caaea01476e52acab289dd2af7b6d22429880d1bd5de1659239522b1b4b8bc099e776f8b5396a36ecc9826cd24614dc985b16fe2791e30789e87070f4f0ccfc39a25f1ffe276085296a3a8b854477b2c6b795c8ad42dae94dc78124522226a7fd657cc226a75d5c58f1350747cf85154c455f71f53894ded99da467698cace74ab06b04092c51336d0c10f392e98537ebe0b333259a6e8192b18318517554cf043184200aa01096e0b716730b1cdadfb6847e1e33c6ca7c135b57cec71814d1301b1d8210c2249b47ac0010f47703bfa1b0a181b44fcbf917a4c1288ebe9b1398088232f74a8306972c408f9ffff228092c289f223072e1f448a8020520118153fe8e28bd8aaca8f0ddf41d351dccf94dd71801f8004ab88155a4861c10a86e41e9dfcffff516ee36bc2422320220642624274386901ce7785e4cf84bd1af95918228cff7f874d44acf28991224a784085106280138b90336f246e3384391b4e0e18874824d2f8bb27981c639f5e728c2799d8279938fb74739c91e334e5d88d63db1cfbe492633cc9bccc6398acf589cb316a750aac715c7b006b1cf78994e3c30a2b05b9ca62ff4aafaf34944b429ad7a2ec3e15d6365366357a1f598e27192aee57611046595487b320cba7da538551bbba75969d951dd70af3c7337c942d34dabf4af12a05e615e615e6ffffafc9f7a9534a3e8eabb8efd355587b486eccede52a050555f58afa45064276fc29a066913db383ed7d58ce985eb28f45c731e209e4248a0a30cb19e431581369d1fd6066505dc19b9f30ad7b686519ded4214a391738b52bb1cf20dd70130987a427cac5fd2eeef7576b0a2911df4b392afacb51ed4efcd5369d8bf20c72149d41d05f748b3bc3fbcb69744c7c11d12daebf72c43c23c020a74a4e11a00c9714f1c9101e65082580c404423ba229993e66103308edc86401dd2690e9ba1fcc0c62fed08ecc1ff3c7f4d140d4e94389a664fe8064fe00cbbd6d1bde5aa2ff11a816e95af9936ec821a02a4e693924b79cabd84579e28fddcd85224cbaa46bd55ee3d5d6f55db9c789b5c9ea6fea90576d3337fcab99d3360f21b0fd373bfa143687a8d3071a778feeaee1149a06cf0dc2c2385a07d3a8980263c911aebc615ca25b73b8a353a74e5d926e449b4ac19bce14e770a16d1c537c0254518a61944f019952ea44a673d2b447713cd10eb74725a51ca6183ae71cd7241530dcb60d73da161f16a9f7e87e7b2d426242acc831b24a1936113273e5ef9b0c69e588bfc910a05ec25d05e18a04815208a043dcb0069e7083da82c38db845a59af11fbb8c86610e8be250bce17962519c49f176cac106ce94325ac7c2c430e7b83854d364178436e906c429383ddd2004d57b743bc3253e50e488210b11d1eb4dfd1ae55c92947e5e92fcd01e7a7fbadbfd87be4f4bec7fb8d878e2b2a9bd39e7a494e338ae5621ab2f8111836c21430890ede1e1c113c68c39a445417ba8e5c2f442570a8dd8eccea041cc0c4215995f996638305e08132d0a118a48921df6437ba8a93d193264c8983163888bf424d2006f4a2c904bd0296753f22f2de82c91bd437448ce1024235c81358d1fd6f4f81e7e5643a6641a2144429c2c112284616424c8960ce141a445f1a6f67e00428687350f6b3826a91f233f3f31b7ca854b8af8a1192e29a227b793a6a89d3d9d4ea7ae93214482a5a1a1a121818418434a20dd28a18412482a9ca0e7916e7847f47d3e01061e1d3684c9ccb0c990245b864d8638e140ed0d3e5d52048fdf208d5e9420eed86d03908f2b3e002a72850e4e1881f1b1851139e860020827ac28f182258864ea3a08e9e8f42c53197ceed01d7eeed01deea0e16ffacf1dba434dca985a0c186ab91db1458fb8f0791cc5c58d58be703b26dd5c363a8768e55a6cb53f6f5cbb3ef37f27595962215d77f721965f99e60cd2a1913afa14c2ff1e43ed56f8b94377e8b2fde70edd21a74307a7c31dba432bddfd1dce8032b09c61595400e13febdf64352818bac3181a2d1313676448372086704666868425562b2b3a54ace850d9b1b273a4a3a313a38e8e8ecee5e1840c2f5ffe0e8e9360033aaf692f9031c638834e74b2b3b36365c72cc1bcc168878a951d2b5462b44225c61d54ace850b1a24365c7cace918e8e4e8c3a3a3a3a2ad8f161aeacecb0b263e7cace8e1d3b66723a1046187705ab1174d08e489c1aad0cc4691c8e756377c4a1d2e843edb0a32c807362c71b6a17e5a3ffb7c41f0d9449a8f44d98f5b45434020000009315000020100a88046381309225c29aeb0314800e6384466c643c9486434910c4388c8118c618620000060064904108991aab210086d505b61f4d2108fa60407eafe5da663018990f94b4b9421fb326538f6692803dc0c684679019c8841043e1f43be243fef5a382973709529d3d14b03bb2f83281c5787173780f814fd93b7cdf1d11d7788d09cd571ff6eefb2caaae4a88329a34ce765ab17125490aad051336409704aaec22b393ddcf0b8cee33c0a16fcffbabc912d2718b85699a0f5139dbde0b5b8637be2c5ea391dd43bbaf7dd6f1a1ba93962c864333ea69bcfb00fbc9966b543086a2710a4d79c5003779c83fb182a2313996e5e6d38b05b275f1d29dfa7a3499f4e54c2d22dbfc26ba66ffcbc8d1938472a859e67fafb11a7e8248368322c3d2bcdb91f4937c2e3295d21086997d4db3f6ab7b4cac52df03e7504466c8094616c5cbecb40919d07abdcc5a870c9dc2f192f9440ab3933088ac3d4c46b3b47f260a6bae29b185ba10f8d246abaf40761aa6f71e2077a527f5bc3584263dd06285bdcf7e49bf2353fd2f882a8686d70a246f1ba555f7a996787d58860e0baa7e00b7a8f336db70e07a8d53df72a8731487911a94a2e7c5f190f63be0a5a19e50a404ab30e2589f2652dfe828ffe41bcd130c26000109180102c22e418f5731fe8fd3acfd2839a92fb2a3e13f59668db8a8a3d5c7fcf9609205a712e49673e8da2273b4ab55f1f1a1bd205f6c90a27d50db829d6adfe93824b6936c4680a82395c0bce6bd388e5e7958daeee39eb18fa292eeb5ebe59afa013145ff77871b65f85b533f5df9965df0df579bccb64b39a01db5ab1a549a4050bb73cd8118074350a589ecfada536942c5d39cae89b1999d33b7ff560e59f40ad65673c04172b89b05f6ac84647dc78a53c0c2c4b116655f97a289ebbfbdccc296063e37cf78687761a16b24973d24e33a26e0f7876491c3e27276b0399242035683d90632a99945510f1a080e953e474db1b5cb8b1790a64d5a760ba04efb3f134991dda555373e1363b2bb8090e063be126f31216f4aee17277b0b08e477e333abe7e22cd291b36db0161de2d99c09729222948a2622ab6847b18d369883616f077d8b3609082baa57a3618ce22a7222981c519ced93560f1a6630a7a4d5c3241c71bf6445718a2aeea537cac70db61f1dc92728ce2546acaf0eafa36bd0b1356460a8f964583bf1fe6d15e9e008f01b62731e016b527c263718a8e7b581c6d6f504a427e1a6865d566af8cab256764a7f279d44395b3bf91520bfa6e1897f039a07861b79b9eb0b4d36ff6243d844a380a8143398983dd48fd8e181b47c33a9bfe4a672c8450f5858c9274da3b5add2db6812b97c6fe08f56622d3ed643b19d369925b1bc410b2c9b16a2ab808552e6d015dd1b480ec9e5b49c9ad798c1396f29467644046ec42b7d10a4cfaaf51d405be43351786f80f4912006b3ded98e0735ce4fe83814c502323d01d68a78465e91c47ac1d80e87a13639ba01d1d757d30cac8c5a8160c6fb983d0c8ced1304d072a4c4380778e431e5791c10398394bd5eed3424e8f90aeb40870317bb2789fefc6f3b44609ca1faa2f30a86d857d60cff9dda3754d714824574dbc4cbfa0f12cd412f0121fb9e8a638d5d031f8a97b2b92f382e7fecd079b1338089e0e69d5ad7c531b4c01c1f9a7db52b02b277406d1f57a7d444be44cd8561d6ba32345cbd39f9f2e62e8f83ac5232a245a8862821db52c087878b90f59357ec05a8c513060b266344a425fe637c9fb3d1f4b6881d062fa0fe85eb14e3388c54e643084b9fc5d69c1c8d86ac26875f653a038f845667f4826f59617b0f1545e5de2afee76d08bca1fca87683bb6bc54202f6453553da3ebf41c55769de052adc81c6696a9b66f64cc54bf0a19d5a5ade5bd53badafb796be5fb9d74df61d9502fb66e2e4bd5157ecaa23406fd35cc3359134368323cc2ebf6c1286cb8c2210f4d66ea33b6d4af89c3e416319d27fd66e3f45a5f69e67ad5e7843959af3accc0aad34d732cfda48ec5fb56ee4d993ae7534d3c6b30c912038eae359c0b492842877fe594044ca8a67bba316cc5c6233e50ff2ea75a88e7a67e915d3f30fee8bb0a12e4efd61f3b7899988894c8e9b72210c8454601a161023974b79f41bd39c5f180ac93684261a7ea7b6fab6a58c561af9df8397a9447b02030559cdaba7cfe71b0641fd23182461fd015d9a04bf64415cea71b7c204e672fb56343b19a4ffe07d4b031c4987a7ff635d844c3c7cb9875d1284c5bf124c4297fb209af84d01a9a848d4850eb5b19a2cef1140f3057e9628fae8abd98a01104df6dc5885c7d30ad36bd9144ad5886787256c7c31a0447aa6e1718e86626722da7cdc8a5a33564faa5438548dc7e5d5ef9836f560eca213ffe205611289334704caa2536419c8cf7daec407593460e7424b17669a1e879b2f6baa96218ace99f7b8fda855f596630c3e99d1d61bd1eb8587b2a7658fb6343f1be1f7b7d593a002862689854939b1e2e3fea814d0d645fbf1204a2e35fbb3e6905b1db11709fc79d0ae055a4099e38db18a11c8da5da3b561944b1e210b686d9fd4133fdf1e5f4cbe04a67b578b36eea74512795b2ca2f14e4a8b6261ad0bfe68047c05e3622e8d763546c2889b4eb9ba3c1ea73e711e9b03c2c552fdd99c61ab00381cfe5e906ac454f48c89ce3514f70a0ee2e5f8170f7d26c9bbbd582788c06630ea909501581180b729edd0c1843296632ec4a73727608c560da07529ebd707e201cea3e5b5a3e58ee32cfe5c7ff595923c22a3c9d5dca46f0f716f78bcf9184bab863ede5abe9644ff0edee7666862218bfa17ac4d7e7432fef95647fee42cb8b497d5cec9d096e29180558375c1d2a478c69bfbf60c8597b9bc8280de25526d0f67c2cd725268b3d9872019583f9754ca0b685cd9ff8c1163d74d43beb8322d0736747340509b23233583ee21ebc19a60655bfb2be25807c9af66c557a1d7a3d8a15e15d627bc00c934ea516877bf2e26abd5cd6e86488f727893afa66492859792c314764960e2f60f32bbdfa8ccdffad79bfde8b0a15d65130009c1c5ec91be037b6cf1f4d34ae05016a7aedd140c9c3df4a63c14a88d944ee2b809be9958d0f25494a20f9be614595d3a53f9a6fe06147b86906566ea31e21d4e8576f27db3da4f1529559f61e91a4d63083b04e968e08354398f50e685b64d431fe04f11fc2109d5a96f8c8c5ca1fe2efbb0f42cca1618e2d78cd1cca24cc17fea83870573fb17ee1fb6e03f4412af228bd860182aeec68e515af62f75e274dd84e1a810e1008681243bcafe869c3ca6bbcfe9cf1a0416d9713578a45006c3c91e75a81c6abeade9845c33b9d1e7610738785d3cd665aa0711550787753f81bbbfee8074dc6b6854746d2f559d1f10285e3e97064bd2ac04452f2332e751ed877d419415a5a955da2570c41bd60b58d39b30d4db2f35465fd50170797495df1a711c3cdd6c70bb91c21b606e3014f91bf23aadc2d753b8a4792eb88aa585f43debdc34155ee02d93b276a26b0fa3b11e74c0b2c1a6eec914a36edd9f7f713666cdcb1e483cacb914c001177655bb1f8bbcf9407a6c8a489d15405a455d6447ea4d86974e7a408a0d1929370a6d4550d2778031ce0cb8f3038339565a70354a40e868a09beb1d46be393494c40b0b11eb7b0101e72ad0f20df5918739c98ebbaf48b963a73492ee684cab56dd951c298f03c49d7865f03d1348305f1b0d0f7cc2a2f9ab4e03aaae83dcacd2bcb094d487ddfbbac325c71f17a5646d96c8e45a7bc18d65d80ea97726dd7d606a9b3bc351a91b0402548473c3ef6dcc551434fa66039496d469149758a1b76aee2d7466e0cdc581d5ce3caf7caeceecee812b8048d474b93acd4edd088f714b493a699b34faf374681e9eb7699bc03e4755ddd716c335c0473ada6e58d7ecfaf598f92f8d08feb09e7c3ed391eb036f93354aa226581dc4fe0e7c87f4a5c846a6df94452e2b1da5c25c80b816afb1eda6273e12d7ff2e99747da0431911e00ffd23703b534ad133a820aecb6b45feda05b3aa46f880e8077ad56be984cda38b98646deb4587e70846503f57ff444ef6b4987081ba75061c28f3b34da1bb39345f6bf83ce1f273ffb5171687658f624d636796f8c0166b8421158aadb9dbe8bfa2d67aa72ff088d1a51cedb8f2b7dd63ea1f0377c8cd81b6211fcde5343dea16026777c39b8f7787e411d22586e2ef91d0861b40a87a23fd8188467a72b0d241d565154af9fb5c335fbaefdfc5fc761b60051f4d6b5db675bab9f21949bd9b2ec17adaebfddd37e59ee4c53402515d5f2bf3d7ae985535c60f443bd0a94e4be76c1e55c424abf5fac5208b02411a1ffa03ad4434d3d7a35fcc5aea19e2672c3e4ae93ca950b40357d42692b2c43a632b4256ef638233681dfed61f861b8e703738a3bde95cb9f6e426408d871fb3e46d8f2a800335b0503d0f7d34736af3bc55cee10062216e1132c132e16812c9ca1a8607fc3a79057da8bce70aea119495761d6ab8c7b6d3423f203b64caad275da2a4f89882f7c8f9aa0bfb5b00cc0aa8dbc2b5cacd3583d4bf91d658ec09b3d170240e602dd016985e15ac93918d604de20898ff382da4b56a86f67a42497de7806705984c5009e18070888144d2826e8ddd213c447e6497767c1a06ac207399252c97ef4aaaff8ce378f335d22619d06356cb58192fa5c023d1f18a0e70fc32471e0b98d210eb376234aa3cd5c8ae2838bc4a9e8242f46013f44f47352b0b3a0487f1b34a6b0f08db90bc76d70e45dae509f9208e2c0ef52c5b047989d2b0aa50213f03722e75039024226781e6cf517a874cd97249e2199f970639d29b0f5e597cb3e1daad2e82d5387e0e9fdaf344e8bb4cfce3e71598f5d8b0553dc5ed7da11e81a08ead608da33817930780155200f5cac8032a43ffa39696748641bbb100f5a56dd6b350f2dac0591168f91fce1c664419081f4cb571a6e0b8b2c1f33530108478f6b34416a1a450727ce298a7d7145f8b217163c454d53b5e0a51c85619f97208cb5988bc06a9ab9da90e61a7f5442acb69cddb09c7d9dd56da69ef09b8b28efa3048777eb4c2b3931897f23c62551ab7968f188b059b40d10ebc9a4210746ea2a51c41540e4882154895cf2aef65275d89c86682463644390f2c10185d60040b6f0652dc05115aa1d1a5af907abdb05b9d1578c3f77b8cedd102fdd08cbacc94811af724c72350e3535ef0059ffed948ed2ed3189f88cbe707fc1c63c90e4368b2344ab013403dfda2de93fad80afb4cce547711a99efd3473b75778812ccdde3f76f02edd3c96a3b013c45d32308c0abdfd5af0e0e8a46a49c20b8f22067b71545a3619d7701d8c0d375ad31f08c3d114baaed6114e9c5ce873a3a736054d2d0bdb497a3dcb1de9b811951b2425a50e4aefd242cec304d9e8b7cabe04c636e46f8ec19b1292e2f8c812915986a51f231e03a91e0de01ffd9baccad10d49666ac406cda687adffcf7ed3e3650ed091cbb3a7001ac65b439015428080712be4405432c64cb091b8213f2ff3f0628e32aba326b13ab7ab7f1df7a0957836d7e81490b44a0d1b79aee67669c842bde28ef8a2632cbec0d85a8194d9d2e834c45221b5a4c087ab08de1e4fa84d297fc90fe60d044e9ac7ac7c673c7fe1833fe1319b1c919f60a8a60bbf55ddb158cfefa000a97bf31d3ed20bfbce55b94999757e334b593a787daf1d3fdc63d9088ed1cd8d5aac436b21e9c91e058597d86441c128a637cb420b2be3ce7862719ff1452cd4a9b04126662b376b97dfd82ffc095cc3e26a27f095510277e64b321b5db44ae4ccc329f1d6eb76222cb8a894abc45a1b445356a5a69421173d6045229cd466b156ebbe7d92a5c32d0c95842853720c06f36afa2d06115604ee3dac4653be62e136421e27924358dd89c984fa53f22022618797df0b564046dfa819db4e24a05ea4e017854d4e64f2e41a85294c4aac8317064f5b8d8ccc6de54649065bd8f62509356b327d7c065a41c1f60c8f3741783b2c82df51579142d56b9818965c5791a2edf6a3e65da0e1ac0b1a42244285218cce59cc7939d378bbd1e77bf082fc85f32ce51bac1d691f921a19d2470777f3df6af3a5ee4727874dfff0de0eba53ccc90885c2d5c4f6b09a53f02c7e5d8af118718bcc8c0d8afa4454667a5eb4f5b1c711a9f1935c239720e9ede1bb7850926e59102bb6e603d69b64a38608f070dff47e4e91c51692420fc3b93480031870cb5771791d2620e69b4b88d2197c833668c2dd026d9e10a525877224586e773997264702765f3e720cae69d2cae7f3e1de27708deaccf6ddfe8212a2243a8344769164e1c0306ecb6aa2c52eeb7cdfb23fc31d224aca90c8381aee6089f806133a954bf20491a462c5ad279206e958801031ce1ff927fa314a61d735656395377abc28947eba09fd417983ba1d9d2d2f7a16e23c724b45d5906e81700fcbd4733dd7cc242c26375c7c2b34fcdb1046dcfc05798d6e11762bfe4024bf768b751a9f7192a297ede89bfe86fb36648594ecb341024226fcfa3587329b0d24cbaa022443c32a89ef23ae0cdcb1ded5337b62dab5f120735f135aa02ad55eb5182e6e9b1f5a8b029c3460dc57c519fdd9fb867a409df0ceecd15f16106efa4d7f20db05d27e9e1ec948e2970ac49b571b07ecfd3a16be322593082f53d2720ca4a17f13ea585c6e2cb4a954cf187b95ca1a2ba551d3139d7ac11869863eba6bdacfb747917fb06bfe063eebed9c817582a74a4279e808edc860b7a11559e97304f50ed3366e69e7acc4402be209a55236263c6fc5329f15e116b6e5cb9cbff2550089039cc8e59851b0a3c19f9713b6dfc144bd4e60efe9827d572ce84fbb0b301af8e4f6fa86e7038ca8270f3d6e4047a1635543dbca199837a62883f466d354869af10adeb210bf865e7277637fc173835d8d55ceb2e5426d761d2410d20123d95684350d6d7b1d319ab2eadf97ca87a8c650d6f0081a0f66577ffc1c369aad13616c3d8f610bf243d6b23dcf95d952765ed28f0e99e0270493c5ebec00081b766bf6940de6281725fac44bf761cabd88a89c2f8c944e892b6715f08edd2a2e0f8c566a176f80a8f1c69493bac38361a8ed345b9c2ab943c5ce268e8417d31a19183c4836bc21a93e08551ce5ed2badca2f7b66ee14141bd6131b4e281309f4cce4b9917b08aa3a8fbe97b7478eb97acd5b39dcf8093cfcd1ee59395820348af31706f17430146fda13fe0144b4542cab271020ef712cbb6d0cacc6d0aac2e0431f03b816e50f2860c24824981a02010c32ca8955d3511c99423cf2acce580b70731b999c7429e6216067a01cf0e77946615cb1cfda209ead51e0aed602f129a3420de3571ade3e2b5772caafbdd88bc55729bef8e94063e75ea19c35d7346c2738b5b04d073470956e60067891a976dae43fcae1e8d6f736a3aba4fbc109cb782b111615b2273e01c863f954c22c6bc0a512bcf6483bdb2118b54990963e0e26614bfa1ea20b66d00d9cd6bd980aa09ad26cd7b4f03c3052754cd139b15a8a168d647f0f5932917c6079fd2c7a27cc2970fce297ed162e4771dc7ed4d709a173a63618cf415721827a8ca0320deb264bdf6817986d5e9a95d9ff93db9e1791f6816d8235f5c98bd190a623e3a80a8df0517895443a6d9cbbce8df1601bc74378a29ab09977776905f78701ab7e8340e3544f4cda2d4af4495d0354caf549a344e47ea9d8b9fe383f0d7517e201aaae635e8c741d3682d6a5c656f82b4128061e1f44bd1d3970191dc9c1419e3169fb9657684c79e88ac2692aed183dd804880686909f94e3b062e809aa36291722bd62f0fe930e51f1839d625c59a4ada40647e8e2d2e685b2a42cc9e6626cf647278a9f3cfe660b5c2ee4997f4bad60fab299997a401a93da0e83c0763f0ecbb4e2d421f0d0a167e8af889e4779d5e0c2179b456c19feb2ef8e9e5f4854ad17ad0edd744a86e9d592d4bd8eac210c2e74a515b24ac32f7a5911e6a71ff4abe57c2e6ccbbe02fd7f4ccdbda22987a8ca4d10bec94f695161db15f736d56b33962a74ecdc89324038999da609276640d2595202662d086ef146dbe4538d7b1c837ae9e07b34de772108fe0bf62dab3f5290d14c14cfa9388d3ea90fb845abb98a493f873cc99c0d72a089b6f587f201532523a0b66283cf896ce9808b87b760b79c6b0bc5ca65d08884d482a38be7281fa9e11b81ab7ce0a092576b613d3ea151cf00e1e8ca39a39f38a042426d5abaef899902036802f219abd6d22e66be6471630727e7103cd5175377918d9fa7ff92d0d9c7e9456493dbdf41f6655ab7c59cd774b22f5401e6a4147c6dc21be382f52de362656164dd3f43467623a348edcbd21fc05b6ead6d695f26c6d9abcaf3bcf1cdae885609667c2c0794e2da174d750020e1b42fcb37085b98a0b5fbb21a796f0f7e65fe5423db624b5f500a8a95e50a00edb2fd37a823f0e03b5c34850ad3c7d39ee46020aa6ba94b43c32416b1678585e3d8ad2f878c0781737d0f03be9e170ef49bdd891a3ebd889be7034395677d39faf9e4fc18e6896bccd5842a8e64d853aa08a752d72d3cfb52b83a63eee7b7a644944d461ab6ab12b7d05dedbe300aa97a99d90fef36e97e63b357b3ecbefcdf7760509b32f818826caa37f512969f3711ec62e2d0c5ee4bef103e52b90096020186657c2d2c65d7d8396b6acef150a30495a917d7cbd8f2df17582e398e47a216b0066520161018ffba2f4177458dc4c5298b83fefa41e1fffd8a80925f7ea20dca6d79da71d227640af060d41b5032810b2684e8f48bb820ffbd541fdb3461c2d61c638a0d063c79b6874d42148bf1e2648ccfd00bd22a078cadb72e7230b00024c320b6db375e6e919fb8f009820b54ea9a1c952b6ce06b076671a62cb90a37441425568a3f3c5e59c51807c332fc39ffcd1a0ea7e6a1c928b81caeabbfbdaf8a30538fb6db7f12dbcba49f6e6d3244e43380b4c37358687ef4edf86091fd8a546fd883ddda73c67b990c29e17fab1acd4f40ed5b73417dc0ada09eb401796a556f539e7c3d4297cc8907bea80c944cc97c7036211872db2f97bc8ea49d48e792111607a2a55e97b355a36be3bff917d7a461755307b955b8344c1ca9385997fca3dafcf724a7b34ecfdd641c4a05aec5f2c28309a5c8268096ff444cd82d0207d9c807ec65d6874d69c1c0edbcefaf37c6941292d0544a85dec27bf27804654a7b68d88435d001e6364f616219934f2c514b34eb3795853a076eb96fbbaee694bda5e4a6b45ab36cb5daeb52f18ecbdaa82e92cfc98083b6dc782222fab853b717f2daa1d3d54ace961946c6920a2ae0223f957dbab19a783e1d192189ff265ca2fc31448732e7c3c6ebdae37a42ade5de69ddb325590465163585320fdd373ba1533a5129176d05e56267ec4335a66987c2425e42efee06eb2a1724e65dc8603f6f77b1039238d1ec90e2e4ea2598757b825c71656c346cb984bccf0d7aac823c65a185f9ca95df745e01d595fcab430c4b9ae459a85c9b141a72e9bb27be4499b5273e5ee4862b30eccb2d98adde9b462308ef3559b4d9080a358c8f847b0a08610db258136cc43fcd9c138136c9ac584914509377a1efa066c9d3468aa51fdcddea501812b9e85fbb7b3d0f8abe8f3cbd4d3498eefe0be0c6f1f6e18a0985d112b9be928de993818525bdd9a15028061ca07f326b9b08a7a6dba679c2c3b5f299e4c3dbdb664f4136c790c00dfb0454f8832679321741b85c61de39ab658bd6696a684dcbb700427b900d03345e503fec98d5977abd07287939c41cc19f481f0bc5743d263a19cbfefe166842b8c2b8cfcd99daef8a0ae00a86110f5d8f29fa779cd00482bb155180fdb91d5f88b49ca12d821310b9a8466dfa1c79090b53ed5718781d5ff68e04501899604f3406ae27085a04e37c56fba3735d3a30e4aff9255d8199faf691140383c3d1914744e912d7f1ebc476ef984925376e638f6b277bb0a8439a0ee7ff82139e7e5234c2543e8d10dbe5773b289fa25584c56a7d7b841201c640e4bc9d0dd85d2475eb8341b331743361b126825b133a8f666930024029262e422e24de03a77fc40cc37ddf87d735ad8884271b2265a09f4706813a799211fb8ff361267896cc92c918c215127b4dc231ede20759b30fcacb91158a74d5b70780eb9b63dd783bf839ceebe18b7287867e7ece94154150cd030ad176ca71903c38af8f512ccf4e7e393faccfb71aa0c4000e569aa6ae4cb163869d9736fe303bbda51d78fe7e4c8a743dcc6f1d68ea617f8a5144be8ced87d6f0cb1472f9e3da016e5c056f24bdc2f87ebbf9fa3cb2b96611da8a6f8e8408338f5439e0ca4f415e9d0a862f551ec2f574db93d3200f189fb550af5d737394f14b86710d51bd28e0f8a103916981f87ae8d6d2fd9ca2f4062a31dcf1a0cc6d5e45b537cabaa472d0c081398bff622473ec218b6d11b52147ebc5f02efc59d9b6ec1fad20b68cc32234e481ae7b1a6ba2c6a908e162d43390c34a8226c2ec11e01acf6f70717fed9358502269fa9101d24713ac1604078c741d429bba5bb93a5832ae125d7b5b91a9ed50905c7a6cabd6d0ad52c01d2a8be17b9727539c387b26e16eb11242b078dbca74c71d43ea016e7e2b945644545df438b61b2802b6c9f42130c9a44ce00963f5c4cef83c3bc4022e9eaf887aeecae0484571b63f46cf4620243863889f478a7c62d09ea037aeb6803a226278fb5ec724156acb62e706d47cf5b7a09b0aefd047ba81979ce391d4f17bfad8a050171f42ba040c32191e0e9e7bbb1e5fc10df94edb1d2b5d78bbd6b2e0203037fd24abe2401c0f00abc256b7173cf9a7a54a1a91eb7b82990107eb79df238525c275842f3b75e67ccc3ef1e4025d9b8f05b61b542035a68ea7eeed1b6edff1a5b062d9133c9d8b39d78740e8acce1523ae4dc604e0e8627dc64c0118705c97fc4af731c9c1b9164a90ffcb33ca001cf30d4bb1961950038cae0ccf0b6f5a846c291fa426f00149c9163cb2f5d77957c0a0b10a7d83c0122b2fc98a5b5f5db5638240c464185c8ff8ae4b170d8e05b94214994d0ca06255621a6f5ba5a6f64d8e3f84bd6fd7a8196584cc282a2cef82009c60194dd3c9f014f767827fb4d008b1d30c40ec17197b3a8f46fea5a06db999b14c903aca178b3e9278610e0d05caf47b49aed10a165bf7505397855d820c618b3547392da1b3835d22ff279986721117cb9e271f5a23e0ad49cddeda2f3c20f984490cc13d5c6b6c89487c67ed1af22996b70c5464b46c03c9995539e19bcc8034f394ecf4184984ecfd30ef1a54116e131ceec0542bd846a5e323502152d3b98a2aacd25c6b18432982022224142ec5d47d113f66047c3e7546c9ce2aab383ead4b62df454d56e14e1993d7f18b5f651505716d6e6e691beccaccc0d34b5cab2078ac8d04d19c555075ad24c9ae4bbd884651f09d77bc90ce45298a2c1ebebc38148d5b1766f4d55f48959cf1e4d990a5bb56b7a49c64e95ae3a8e713441503338291c96f7a3e11df02314a21e7c34c4a016402d32b366440f4224efa7b805ffe21dcc1fa4d655a103434319dc8bb41397657a96b8912439c1836b27da08fb5859ed138da13af658c0be5726562b35e04352bb2e5af38f15c6eb5e566d298451c0e505ed2468242fe845ca8fc565d83f3306b17eebb47f21067b656501ce89625ebc6d74eb4c5eaf7488ab236515c622ecc104e8e87f6037dd065a2ea45afbe8f9c142f5ff3a3730f38ca0a7ec7fb932feea13cff9c12e8e2188865f06aa588e736d88d665ba4fd34339e3226d3d8780ad55fc5e077c69303d9d3875407fafb2c4d955ec21628e52d6089820c1db9c5832c2ff3d51fefeb02a75de729cd72910d65b3bf7415bffa92e77839392de351be12cef1c286ef5034292f5f9d1db2bbde117bc81caadbaed00082febdc0e419c08e204d299b5967744c042b6be0b30635c4dc7740d840e35ab21543b07a51b832d3663bef8e9994086135d7c98e355f40f5cdf8b2203725773de1fc7daaba03bc2314d7b9a2c78749775ef059b8e57285e671141d8f4f0ea9ead1f2e9626b92d07926790661de0f25be2c7830f5e2272122e771be5a2f8756c16db0f706749d22bbb1c022bc1386354b43cf2dcb7a7f5b91c547cbcee5162f40c745d0bbbcec0a9dd3e589c95e3ccee5357c2e654453672eb4f962d8f5eb3e95b89a5960257791b4b275e38e7bfa9270cd185899d53996a9e9bd609359baa4a5a5ea3c99857d4079ce8968ca2c61870cf1975928b025531cd6886098c99f324bd1e306813a69cf95593e34dc77b0d0082d3448ac8d87b2e67805d84bc0f74a32cba4bc6496460961297693cc627997b7fc348650966e753dc8254059ba41bd4ef8e5a6f35a2236b925050bb3a31194f0315b9427ba58bb36591c59ea74835a594ed51d917c7ff6ea6e86e4f6e1b4f6452e4a7537e4373616964b250442e01f20861bb9881b6af566a32b549236986248cb8df59563507cc2dd26ba34aeb47b77351472cdf7f7de517c2a5a1ee0c3647d36cb507cc673e6b274f2ddae2640c814dae47c9ae69e21645cef5e8f6004771f04449d452ad8935b6db040483c9b1b8a25c12de1d2289a20b768252b43775ef260825ce1409965dff418e1413105621c3e63a4ba163431eb335e6d74a257c02cc67077cba8a847cc5c2dc2ac1aa99b04539b4c11ae373d29e219c86ad36b86781ed63552d843e9531bc66a8b654f733c3709c44a3d753304c2d3a71267e77a60356cd250ad2a7b5ff2167c4e9d95220afa4dcc2f8eba833cbd81dc12edf2ddf28ea8fabd17c82a6a814007c3a2b8541ed03097364ce27c16c3243cc3d690152611170ee583a1f459767c4f6ad1fc91749727a61e5307c8caaaa33d3fb2f6abd0f0dc0c462aae63311a37d199aedefa29aec8a2621749641716157b0e9e16a60344d1c313601c5e595559529a42a75dde383cd6809510c671238d77236e9404c73b083d619609c1e27fa9d8e108712a96e4b903d0f2bb5001390a00de18bba91ff68ef8abc4c2795d1324c45da0c193dab2877d8b8a16c893dddb893138821a40b399b00f5e4f60fe85bfebfcc98a928ba16ef39af41f0e5031141f027dc550d2aa9cd34ebb550ec74d3c7c94a7c890f6811e4502c9320343be9eb21e8302110b21a50a66753942b010915ddf0285cf737038ad6a60dafe8d524933ea9501d5be0dda297e901eb384eef028a4aa0ed92163daf30f96e2bc79ef03484afcb65cd3025dbb8ac992c91987d419d18a3e0a4344e9e77fdc7b326ae024ef809f2b310115d87bea5300701c20a9b6f93e2f63b826793de823269945ab8027022cc4ec44738b3a714474d3b190aec423953b23d34cb3425e80a5349e68da2626a31953810fc24fa1434994c80828c93baaa5722a3bd0a21f8a81552b64f0de0cd8cc8f31284be05579d01266edca7882c9a6db9933d247e17a97b3cd46ac176d3aa8b64158cff96b74c32b7203a9c6275a62ad75995a0ace87ad98bf2e184da71cd74010aaaec428cb8372c1c9d263dee140ae99b8239b647a6732d760598582984dbbad2d9ee9244b3d3a1eff528fefa0bada5bc79a2c03ccc9c0d4576e88490993e381f32783b645785761b6235214148e53a4eaffa3f00d06440d12db2db3682a9d946f4ddba1926bba309cc62739f243057be770dc7cb72ceef3f635487a0950acc0ac5f72c75d5b875b99914eab9a16ad34c41c66a5fdd3ac9e1b80e15f13870db79118b13d2d43b772654dd1e4be86ff40128616ea4cb4027ec30687a97d9834d6e07c02adebb05756fd7570dccffc14d83ed5f0231defaa3931a12a5bb3f97e2af4889124024c987c66b3d5d9640b7b7bf836561f3bc6a1c5d894780bd68a6d7a76fe4f191c645b984ee0da920b544a119588e35a14d4622d8eb33fa2e04ec94682ca9129bcbcd387cb5c8a03288ce7e6c9a94ae74f625bd857aeb8625aa9a10de247ae126945b999bc6ed80d3202e2facc3d1af80d9fb3fe9fa012e8086646d3fecc4b2400afef21553a90ced2f408088aa2823a94dc74aa26ff9250de60006f5aaef9f1a2d76c7d22f2da7acd61cf9e902d4da22bcb0659a818ae97118e4c65a1962af2c0b1728dbed292eac214df95ade386bdda70708e4d7066eeab360d84f90b052a3762a59afab18833b4f2d0ce483fa7d63fa141cf5711395e08c57492cdbdac7d0f13b08a5a05e1fcf9d9340ea58a43f0f796cebf99cf7b33e1d481161a7225f6f032d4b4fb50df25286d973fcb23802ac538844fc5e15a10a2af895d5766bdfcdb427298a2c380ce842ab418c9dfbd72fea13944a7e0cb2b2b55249333f87df4f8a3d908d19418b44d9c791174bc81a4214c576cd69671d3814f6ac6c0a939fe7c74396b4ec086d5a03fdd21521c6c2d5033895f166b876245554aa90fe651e483a0bc22105bdcad87d6a80940d815682a4988a4e9ed4e9ad2d26556747923c8c0cd50bd2cabdfc470d4ac10eb5149749d1a5b885ad0ddb1714658e4a86a8de2e89486fd2da25cab51d45ce60fea88441677fc8f29da578a7b4011dc31280a917df64e9d9938b0fc34dd7c6d9e036ea400e9f4aef77feb1e8ee4da5220d447809a58afae0a16f34d6d2f0da2b01f70fee46adfbaece4e9c35d73c293ebd845836d5eab903120e0a670abb20fb531c83b84b7f069228612aca52915b4ac0752dc14636bcfcfa3c82360ea94f9d20cdf545896fb97a01468711af6f9b13a02406bbd342dd8e10f23e7a5b9043f4b5b5d9ac0c43c4b065e5da83100841f80d071d1cc665d16f84b337c042d0e755163e03c3a481577f64a830682ec46941161b5f1d3dccfd4dc6bf6ab1e1060a2c4384a917533bb8e6d88a0a37b1b0088b516924f849794aeac85e81d88c1ee48878989d963bf2eb6568b5a3cae41d75e25fa8e217edda41c21a8af887d9b4adf12526e24bcaf1ac1af979c0383ea5a10cb1104dc0350f1c15e0cb7129373d1f5fb2604edf20816b3cad9b865d2bb55c9970c6a5d9b6d8bccaa5bbf7313f1452b0582d1797804e7861fe5b80bc4ce019792d664d79655d90b163c4ad7870793aeada33521beaef582fae87bd9c5ab1eae6b0ce7e59511fad53a6e364d17d4ea10da83f87e87b13538179b0b0d434b716a02e30bb5b8f40243531f5095640ac4cc00032abe9cd813a8b47d6e2fd96f989b4f23b974badcad4b0c628aaddf64c18bdc2d7ad8d68a8754c0e210094c6be943e4ed9527d231339a78797b6be5536f7b03542732a7db3a31937cd88955d035a82fadbe1c56c3a9e47b50a714803fead2626e88182b15a9bb9f312cf46e1f8a5427e380b5c93c9726ca3b9b8432a90d6fc42f7e15302e9c1eff3e1a7d8156276534fe7ee1743a02c398cd871b1f04ef0f9fd95671e8d934cace951111040303e6c0780d9f342c113ec8a422926ac8f9b68f64588cad72d1c4f48a2de3ac1ae6e189f8631384f7b2336d479221e618468dcfe0929ed6e9f1c2bf26aac75940f1813828bb21865cea91fd01f318d0aca8a6acbae4e2c8be8d77ec74ddfc3dcccb48d282a98939e761ad87b7dd3fe517260721d67624f5120d1a2d9d18aa22b8a4bc1fad35a84b4d69782fba4ff999f6766864e13467abb8046113d4a80eb50d5dff0f7c0e4c330e6820aa724a077f5cd3d691cc750fbb35cd3df0466aeb28df0c5ce4d0f8cdfe1b3dac7bef2610dd4894dd30d6b846d2812f53350a8648ad9b0ebe8ef301b4847b5630724759d15bdd0767b1e2af5b11706a4b79d81ab1e150d03896d45065de3504dcc35c58e132e145335ee29fe0250cb384c4be5102e760fecbdd2b05347826ebb4c76b69e655e24c5664a88f925e5e4c6056e728dd7dbe832ede8371b825d6fd2fb79b49f736bfbc08de29587d0b4d295fb04b58647766d29fb9f06ded67152c0970f9ac7ac0593a8f4d64cc0821929b83da239681eb76aa2884bce3ef9d45e4759a0dc0dcb908a1818fec43a1aad2bc081ece0c68c725bf09beab765cad225b06db3ffcbac6db32cd05440393ec65c130cbd8f9ace9c2e4c4aa16e2b89045ab3e2321165b3f52173ac94efb6adca09093032d0c700c830161a38216c2a734d06984e023c18bddfcbb79129110c57e4cfad0649478c382d1a48973817497155459e634eddc1dd351e5f2233a2366b6ec6bab7e20d6c1c86059806886ac4b7935f91f55a928bf1afa02c1d6440e822d33ce781449c829875e291208a89c087ac5ced211cebb703a8ffdec695a7b3ec1c00a1768dd78c8d3d4c1a98f902ca7780f69074b81441af32193645d123eff00d32e30786277a4951c677c620017f947ceddad5f33fcd7417dff1532840d0929e21a29ba0caba8503735060f697071ce19fffb093e72c903a548af32d4f83c1e194e3264154c25431f939a3b6cd983fc836865b6d0515577eab656058572270cbf116ce821d99398f2205d0dd54bd5d3965485bbc7e4de5953f616b855cdf55d3b2303c21daad7141c22e6f895db4d2b6b4a90e1b1969f9a51709cd367b64477693404ed2d2afc12014f3786f15963ffbd91aa7210eda618e2991ba417391fbed1dfa63fd1382be2ef4d650a584feb08f8b6223307e5d4b1a64aeede6effbe55574a552335d16bbb296444c87c756aafe08c650c910924934b26f5ea93e17ae03614dfc429a021768f6648a12b0c3a36ab25be332e7b9aaf1661b7beb5a913f90c6d910c2a305004695a130c1d64f79198e2679c9e03a23e666ddb54d2e4960b3c15445e6ddfa209cb5230a8a242a31ae3e314a532717ea4a29c6654bc24931ee453fabb93a35fc847017ae0af9822c259810e484b3e32f2f5eee11439e535fc729103d93d1c68a70fee5040e92af8eb695cbbcc03661ef22dd11176b6f37d9a8846c2a45bfde87ac4e1b6250e5ee126fe32271543f5539ee468e1096ff4d4d42976f801d995f1816d7dfce0447b01170361e978b201ac2a98187972c4a4e65c04bca9a58a0a02fe1679313ad5c8f8dc7d65ebf2d6708807fbb715bb3fd6c860857350ab1a06adfc02f33c516d103e2a428f7c4b0a2f773e8428749373c739464e5389583f149046b8c2d328b879509ba35a5bd25b7e527fc35581c85591f8d5c87354f27d933affc7f997e9b79d4368ac3c94e2540ccab3d6b54305b60e09ee2b37fec2921c2c277baa12197110deef9dcaaf8c0ed3f9743c7c9c8c85f250b79506ab0c05e6b024b002b1b70960041dc4bc4d217748e33a645e80240c39958e9bc4f6a990919a6c28b0357ecc942787d3461964922c602de2ae2f38fb9017c2a7b2a5d1a2caa2425bd3cf8e27e12501b7a3b5118550af7e0fe469791558b0e1b733a2ee06d3e5acc703cab5fa875b4090b24a074ae66bd9b71af1651a897d1f788aa168d975c08138559a5fc798b2dcf7bd73d296279ce383d9789221ebee42d61df4936bbb678b22a69a0b19f4a6077f9164c70ed20eb962a2a34c78fb5b6e22f7de5b4a29a54c490631081b08d908b202b7e9beacd0b9eb9f0a782aa700715e5ea26055db0b962e7b32c71186d5d57a5e5fc803e2d9fa09f0f80d7cebb315ad27c6135f45b6b2c85655898ef213233fa41faae4cb1f96a66d693f2b3f5e8f860f4e9410b7fe55ed05e987a3dcd91c593facbf10e7c25d552bee346cb510e7acf6576f28cd01fcc6b13577f0ac0e8e2a0229eb8f4e0c2d21f8966ff939e4352eef355df58e3375e3bb6f3ea8911f2abfa3e94721e0f9d38febaf3f3884609c7467787474d4d539d45387fc26e537f17142c029ae054a96b83e0901d726b2872c3f86868b3ff55dcd291d64ba87a00fc6386ad7391d6d75fa53299fd475616f0e419c9acff136fe4197afd9b8edbd9a10b6d4639fd4479f7b93ac8b0c4fa606179776e9ee477a4f541197ecb372c5b2d2e8ee8af1c83979555713da13b18a9845f4429b626d3c8a479ccccb8f45584c5918968238238c706db85b604b4bb7746a7b79c33218e3f8c2edaaa6dc31a96a726e84dc2df3db57191ecebb892fab0e59d612d4905358e6b74d6693f96775367c9d9379215e35f94deae55762f80dfe1e3c9691fb59c8fdd203b97d868d8cdcdf6211d093e3a7f086e542a1321073bf0a596efc91e847ea31ce4067fccf0ec1f83927833b1b1c8b9c4be128e5b23685c6cde15e28ac631096b938f6f0da61940f6e5bd7798ba9f75a5a5232a94fe1d88373f2be54ed837f48411c5dbfe9620f7348c96fba2894abf88d8c53b29c43392e9ce237dbcb6d7bf983edc5391ddf920377d506eeae0b8e444bb0d60b971aeb78f86d877896da75ee43903aecb7fdb651cbb1caf1e3d3f8cdf6f179f4eb6fab83e3531d04bffc1b32ef667b59f3cb05f2b2e1ed3d11e2cf8ddb42d8e226b3451deec3a939e4b1b63a5166eb641eff8ef84499e65f0829f9839f7fa1eacf1c9a433f433ff1e7508c4745f1bb49143ff784b3bf984310a7c1e8a5348e785094e524ea184caf46d5030fa797a49492659da19dea084e90e5cf881f26dd5433e15eeaa5d45f146f9d2fadc5c707631f8c31c675874f0b78c78ec73a74b4748c31c27c6de2c46fe213bcc11e88b68f5bdc925a5cb8ef6242a8a9c13109a738bc14027eb0260aedf898b463c7cb1d3b76ec88423470aee071f26312c4993fbc1af9f2a350079943d3892525ace4594496af82d7437e1773c85289b7170f670ec11ae94e76d07ce74c88c2281ae3cda332687ec777730804105c5e7aa9979aa99b886cb83b8235fe9fb6c807df76c8b344b0129ceac1ad8cfc46c7cbaf8e204e08df8d90e5d7f85983fcc6677b2c3f840df6e035f241d8e08e0d16d16cd0a86548ea533db81d3c82499fc23b292992200e5c4ae1e7dce5f2f380c4ec0d633f89c2afc3c67723e42c58e052eae5f7d24bfd86fb63cb1c4acad2e5bb3994e5ccff068f9c939f63e3e9fc018637b6aef38d9fb6fecce0f6cf7c577fea4feda112f9cd8c94989a636e8e49e5180dc7d64cdde49cfc69fb477e4de1aeca9f19f9d677f5a7eb3a4311fbfdf0c76fb0975f99f84dbf7c13ec7777d5cbc86c2fdfd85e8ef9e9bec6d6a55eb61568ee522bac10b3b6c950a2d4abe97f1bf9f0e8687b5b8d447e43f1ad951376064871bd2cbb6fadfdecbeb5d745fbcf59966537b3d65a9b6536b399b5d65a6b6f66efb57fb37b517fb32cb399b5f666d67e66eda33ecb6ccb5bfb2d594b4b96d9ecdabf2eac23a6a132f8ef3dfbdae682bbcea8d76ed692692fb7b468d95fd9b5d65a6badb5f7b39bfd7571b99fbddd329b596b5f88df7bdfdeec66d9b3d65afbd4ea586bab8579e938839be11dfbd95fdcd9bfdfc5a212ec90beacfd67dfe2e7dc263fdba210a81335af61824bfe7b38df7c73c20963965c87ff1abe8c45e447f931c6f8f2bd18166e5f714ef6739712156bd00fa5c8fd3e3489e294a32c41791d4a718f717fb692a43bcf397f3f652a4b7d39b85daae352339fe10eb5befe7840aa87d6d3ef08906156dfda2afa93fedc5eb6847825ffbd43e9efb9f30da420f900a5a9e8a42b3433f229bb93937f3b4927086dec281e0e6645f64eeaa49602bfa4fa4a6c1eb2c7187f7b382ef422ecb02cbfaf5c9d14b138e7094882fe6fe12e553b29dae8586edce98c2be3f3c68e70197e2f99906588fb4accb11f84a82e09517e3a7aacae66540fcbfebeb6ddbfb47fdac3a6ac695ab6ddcf969ccb1a8bb66538752fae4986d1287b0df51a5214a5acfdcd5e7bd46b7f518c1e6508bf7b812fdfd158d8fbcda56d1fc4d59eaae0765c95fd63f2301573b5ac15695a11ac89414c707412e3c2dde1e9ec455c8c0b77e73e4f67ed3737720ebeb6799173b085db710e25caed10998f3496ac7dca394dc3ef5c7667d10392655be769c4ccfeb2b22bcb50a8cf50289a82ab7d178be210961cf4806c2f5b5f831e901b6e14720e5a1f8b8cfc467b40500fff426d9d2392f6f7b547fd75fddda68d2d417b1446b9b8fcdd6cb61fce41977951702ec3f189d58946bc1ed0c6a2d7033e1dba9d1315214539ca4fd374b4b75be7d97e7c220431e734ec8fb2dbcb47ed85787c125baeece1572eeefd589423472a75835e0d7cfa93c86f5c1efe94e237f765eb3adbbfeef6b2cb16b30bc647b87cffbadbcd578645bfd1a213196a9aa669b1e8d5c0d734ed2fd8ed104a54f677eb8c7db6b914e7e0c7c870ef67b57a2db2a06adf4526aa866b10c4a981619173f067702fded1fe7e863bedb3bfd95f1cad4e869f73b8c372b4350705ad10eb0a3d87481c79a0107360e5d4e23062f4d51d93b251638c0933068dd2d1c95352aa422577a5076466ff966578115908c363f61f238b2ac2c84a55c03072bf2f41a5070436bd1e4db0063abd9c6b6e30622f559c5372ceaf8a26c19a8e30c62308c580d0094a899b6092a55df13e5da7996f4abd5cf8e438b428bb0d9d66be29f572eb554ac1f728a79c53d248c949279a034fb7eae706df7f30a8d5bf2eb72ccb33cbc29c5a3bfe16a8835c4ffdedb4d45e2ee9bcf08ed31e248dfd34e62477f0797ce7fa24795a9446f9d84f07692c2877d0c23bf4a1fcebf27cfddc3a8c4986d94fdccd8bc2795d0d2fd93f99461f5813a9532ce33fd84f771893dcd885b5e02028e9bb7ccb7791e2aeedcbe682bbfe69c118eb6ecc285feeee17c67e68fb409c18f4be9f40273108e244214cdb6660b8ed9329ad4f9b520c885adfd87a3b8f6093d2ad3b827514a2b9bfe3a1d93ecab28f555ab38d7fadc51d0fed9f8fff707704c38030a08931c1805a841989f2d3d1a3b58d2b34e94d986275ebc3fc7bb9d5afb6be9e9530ef1b76d1f84d86fd75c1aaaaaa1dfa49b2df4a4af97056dafd29b516dcf9f47b1f5ebc039fbee38ec7710f12ffee1fff6ea7dc61cfe33bf79364efeaaf4b761336ab7bbf31cce3597a74f8471ce21df9f71d773cd023ee30bfbed9c0c004d08965e8f7637fdddfbf6d11ff893b1e67c2be56ed1deff85f0d93eff22d3ffd351bfcc203b37f0bf60dd4c4a1cceff4623ebf3e36e5cfeb053f2a7695e24e62ab3b824d0c61d7f25be223589630637847fefcc61d0ffcc69e80d93c30cb9f8d656ca00d6ea0ea61eec7deab9f325e30db7cb7aaaa6aa65ce79cd3fde8fa8b524b38c5676878d8cc59bdb5c1b7416c9bf9b9b98d1a30a9f7bf2e8b524a797cc77e923c25262df996cc37c5627c7410ecdbfe8d2231f846d779cd6904633154c6e01dfa3113770f922479feb3e920f8a150eefc797c27e693e4b97530d328dfa683c087b3e3698a773ce6e1fb80f5bbeae7c41d6c92fd6dadf06fccc0702be6f1989fdf5598c7337c0a9b3c290c9027eedc04f9313116d3fa172a0116fb6811fa65700cee626e2c631fbe10ad04f9f3e7b72d227fdac039bb1befdfc126195e4ba4633eb345b0dc59c696fb3e3ac87cef70c0ee0696799425227fa7f18db7b6089665578803773fb23f8acb2ee7df803a704abee8cc56ca297fca18eca345f0b799bec937fdb7dfb0105813ff5f7097ca8135fc017eb0e6e20a3ff8aee678cc23f3f6600d2ac7f660cdf54185d5fee5988f0ed2f50f89bb1f12773c5266fb234f8b6702e85bb00468b14c35026343fb42208e1158133f1ef990b9ff47b67e5a3f2dee5e1ab11fad8d16773c12f361595625a99452e64ab18f1661e2da3e373c3543958c65d417f12413203f242298889092b9fc90886092899892afdc3fe337d6e79c53becf3a67cf6fe9d35f4e1ec73c9ebbe29d7eece37cece7765faaeaafea5f1731ed4192a4ab10b8837d921cb70ee6ee22eda7ae02cc3bf4b122d9c5e3f116c970e719cba84a1ffbee08d661b8dbb14cfd6925a084fef8317690f893c773b444501ff14e7cec31d4cc62763946bd95610bc747555667d2ede53a73cb1c3799fb6311d9d96d0957c6baea06ea2072667e57dc75d61e66adeb5cdf6279277e7d8aabfd28437fbe7c9baf7fe408d64522fd3b18ee3adb2258eeb78118ee2edcc5dcb8c3404fae6f4dab3399e46a93336fdd06727c0ee4183fd312ae3c7103b50812c7eb740dc08628433957d65d84c08ca2239f9c2b7b4d2c6de1234451ce95f9124b473957e645a06029e7cadc89a7a49c2bf3295a1ce55c5903c16489a19cd7c50f4a5e173f28e9205eb0220808a62d88ee4c3f99400747291a1914be7192f7840b529672a2c830e52beb1c6808c349ce95c11f287c722a22279c8a4081152749fa2707207c5cb034f9c9b9b224ee850b47594fce952579492c449194f39c001d1643a91f61e19493a41b165d17eda2c6a9c94a0a54895a41b700610708f8790ddd819fd75951251daea3faa64a2d3f5b3ad517e23dd249628971934ef56b8c3a5ec74b27898556f1706210cd224bea4596348c2c5fc7ebc012cbd6b2c5209925cb6f128784a6922c3f46bfd1f10f8bd5914ef55d0ad1cf772842ce3d69c0a7a7b43afe52a25815f8a55715fe4ecbf8bb98dc5125175242b1e8904fb350abd3f2d4ead0d7b1d1e0bfde162b3ca4ffeb534bc2cb15d33887ebf38a9f2a39275fc746abfc70ad9f6f05e3271d4bc16f3a87a829356a6c322d58088adfc08f97c842a150755616a64a321f7c0a1da47af91088c0bbc13b5c4070a92eb8aa20ecc0d5dab06a56aa54c51c2e057322aad4449de813bde237968a41b1d025ca849de0375df527581c33d3a5544e4484caae8e1d3ab28e31e678797a65c96f225395f8e3164f90589cd39c9c6b72af4f7dccc3772722a2791c1094fc26e6e5bb15a3efbccad1149adb97e6442ec58b70cc60dc1dc11a6fdf51a51c5f6bc5277cd52448c90fc4d9f130f5635085693610b6f893e198992f493a9df013ef4c2c4ef85225aa44ab502b34cee198a9fe298bd7d4f8ee3db9145e379f32310e924e414e32bf6d243827ff379ece393002a892cc7754892a51258a853ef98dcccba75952b061e3dfb391ca363889e385f8079b4b711c9bcc0cfe7c29d58aa9920c76a2d4775429e63b27a2595841a15e8956a15650d85b56cac6b6424f18aa44698bd4f0c5ddcd4f02ca6eef76bd44ef5c16bf8f7af8dd74b96f9e9fdfb8c780e0d22e32f22e72c743fc69e7b148abb2af88ba15e27090e3b82caf59018853e3b17fb05f8d3fccf6b279bee8a3291b7f350fea2697f25d468d14b581e7cb3ae5b4ae36afdcf77a5c69b811e724d63f467c7bb95eb189780595c8056a0a0a15fbc76fe41ba9aa7c61d8dcda88935d14e5f6bb7ce74d3a8cd7c45dc887fc86a833fb9a7c92e5bb2571742924c01af9734321888c3c5b7086bbfe212597e4f918eeee1979fe855ff07c14be328b809eecaf399e7fa7a6e3deee29382729c53b124b0085b292614d62c86cfe6d7a4098f8cd44fd7ba8877a97e97f1805e764ccfe211129655854c5a8e9680a931c95125f4262e228fbd7c84a30a5256ac0796338214df1a92ce9e337f0db8bec1f675e8fae17e6015a1daba373188e93897cfa9810c7b6e8356e7d095675dd9be08e4a3d68c9af9b9369b3b44abb9f44eef007f946d574b7dcedc8b69aa8fb38a2e7c8ee31d96d64ff2e95e503026f9665d957e7b27f36fb67357cb30d6531ab8ac9afc7e6d96ab9219bae47d3c91c1e73c3eaac43d42941453c8a3a4814f294daa54c092a2282472ca2558510266187381c1525051149293ec5c809c4a1946b113a9f69ece26c46c02eabfaaf79dad8bc9caf2a4495e0769d44248dfc26f68b4ad0b3222ab17f7f8d1063ac8ef3e3e31322fb617c1a8ec70f1ae7fabaaced6d15732e0add7ebf68382aa594733ead54850be4497f87be9c12d22eaee737fe9688fbcb2da18450b6952f887995af88c19a2f89453b246e2e67be28362b4663be2aac5a58e5f9ba30cb0e897fd921f1ab4aa3cb11d85442970a9e7b9a9f2cfccf104cfca4e0fbe687048590ec42ce6ef9859452da0f40c14557a57c596429e551bc2a2888a07062490baea603117c81032cacd8028b242c8eae507af5b2811262201dbd90021b1b1a63e82058d8c1924b8ce79ee6c9d8e2b9a7f9af7e7610c4b484076464f9243332fc9754104ff85c587e484938c8577e48494c158ca752053fe47953f7e5de194375d4827bdd97aa89dcdd8f42d8a024acb8a8482206394822074749f4a04acc0fc98aa72b4b92beb83d8d738d8249050da8d04135e79c732ad99067d339e79c5309873ca794f2619c36cc390590e7df1df2fc940af29431622a3c5c5482c8f079d85cf92141a1745365242a466019fe5ba2549ce49a1f1295209a464df11821dfc4295460b044a5064750e981131725430bf722c1d30e18d1adf9214de18365620a227098e2091c4c01032953387971b5fc90a860c1052a68a042c509ae4882357d5f9094c04115a5f80286f3f04d70617e484743d603473ba8e0d4831b6e681264040f968ea01c600a30aea4e0ca114b749103bb38d2a1ef0bd291098eaefa9880a2892c949a60802109060f9042c50c4763dce0082670e0a203a28a1cec40075e3c5de9d901045148f07483335e20da020243f060062b320c2d41d1e29d81c30eb010c20c2eb8704116465e602286a5216a8042045652d8706025062cb8e003192078818d148e08011554c430222a820c2c6c95285c8c01c443173bb822052c611c3dfdd090040e33a8e2002564ec808485a8861c6060c5039e8832c50b34943c89c28676c10f2968a18a0e5cccd042510c553c20c7071864003202638c23947a86a801183624b1a40524b250f180be010c8096a001932fa84c71618008092daa0022861178414500305062062376b88209175250008a26559260018b085c88e248154d3885c0043dfc3001c5a3f2bc68420b25208010020c9f277a62b082051a8628e30a179e488238ef080830bea0e208a1195a90e3c4032af4149ecd08390aa9b73f450289655a7e7cb9555833e4b185900872f7767768e33720691a10e5cc9710a02f3f004e394802e09403818ea84119f9bd1a247c8cac1825e58774e5498ffc908c4890ef03d23836454e7c70820443b8004b0ecccf39886414821cffbdeb90041326403f42f0543c7c9c1b22fa4dc725e58e271e81566a9e8c70770433e20886844da6b4ba534f327d42a7ed464c4c3260c204e80788c70f8f1f1e3f3c5e889be4a184870f8f1730261810f65359a9ac545854552a2c00e05383464d969aa71a3466d044b49426c25a6bad0779907fc099f8076470f5ac15a5b4daba2479d63a8b9c4af0d12244a70f379b1621fe14023d62efa9ed31a0105268428c3d1976f0fde5ecc990c7b3ec91dd4f5c186dcceb5f0fcb90f0727d222f573c33c3adb56e1d7d8fb427cb8d07e6881b0826b9b8c4181797eae222615e8379f93e3a084cbd3418dcf56498d7b6aabd8d0f585f5a9d2a04c26c31ffac4e0cee7ab2cb0b71ed7af56daa8faa5517171fafd6ce00466cd448491729ebdb48c19f7228428142fea4b3c4f39f8dc4b089f536be5fd678f99df572e2783923f3dd4d65893bed5dbebb38b091192c836fa49e7c233085bb2745eaaa7067802caf975f314c8579f90f2b867dcbbfe00afbfa2edb0c0d57c33c32bbb4e0eaedc6e3d9e53b1b155b17bca361974afbaa06e6f1cec23c9eb5b7d8878f0e82e11ded5dbedfad092e3098c7f385bd86491f2d82a417aa2d11faafb2aea7f63122f6278e11ec82b514b63ad8f746ab75199973e9dbed104bc433f699ddb00bbd21e7c386bb3c99733ecd89654ea739c598134bdc4ccd447fd689bb66caacbf1e75e7f52cc37286bb23594dd6829fd764583643c3b5f0112c5bb88b28fb913eaa7ecc16deb1d95b0f7731cbfa282619b5a8e3ec2bbc532bcef0ec6dbee4b2acf36b95b3cecd022f59e29dfad66741c20484ea794a27a5d977f6f2330cd419ee066a2130db50ff7a80ba9968ff003135a540381748a36f7d55fdf517ee5e727dbb557fed6540cb6bef56a77ecb76abbb3dafe95e72b555e76aadf52bfc67626262026202b2b17e5970f54829149f4027dea4837ef0fc1851efabb78910c76b2c8c6d18962dabba2afa313fbc73459965c53bfecf8437adf78e77287d38f68d2fa5945252da9242ba5900cb12ef448c19313162028425456d36b00616a19b7c4929d59142e0dc6a05a294c98b517eec187150df451b8883c210c628f143a30bbffbdc8f85c037e3d6402d42fca802941175c52565951c427e4845f4c0a4c827c7e487540453be2026a58849708ae78a3b573cb1a75feb775d34a4b3ec507fdf5b7f5b1ef6d7cde5fb5bb6ce26d7eceb3f6d8bb9d3be56dd11acabfd77b3b1708735b6be2d919dfe982fde41e17e6b73611ecf8d793ca3649e15de41fd35e1520df378ce70d783c23bfd32435b44e6ae6adde4359f6e93b6eceec691e6f71a7748624f378c56a7e5fd2a5fd3eef5ecc5759bf55bca2c9256670a8177cbfef5d497ebfb17e7acdb9317c59edfd8fa2357dc1dc19a081d49448bb0595fcdfb10c7e5a1cbcfcdfed5b2b9f0d0527f6e75d639677d140a85aaa8576b4b7d5b37978d6ef4515bf5f7610d74ce6beaa59bf53ad7b9dea273d877fd8aa96c22a610481fccbca5090c33c298e4f679f19bfbef53cf09ec6cab5bfdbbbdbcb575335c57d6ed0d3d2a71dd7b063925e184253f39bdd44cc17525b1248b8da5da6feae7e988a78844bf77ff3c1df1e4a48905de47dcee520a85055935aa46edeedeeedeeeddf069835289a8d5a81ad521aad195d52552a420dd0e2e2d9171d688d18a542b56a34faa22ddaed65ac3edc7b2dcbaa42e79e9a11271eb10d76bb8424495b630aa4fd84008892061712e7f7619e11631e489bbdb127717e21cf7a50bfed3e9f7228fa6f43d8710767e5d8ffcc0d57977e76b5ab9ef1d0124c0ed00100b71ae7bbc7dc9955133eeebf710f6bfad3e2ce3f8e5c0839e96ac2875510bb5cf125c721ff7a9dbcfa95cefe1c0afeff9c3e8feb323ae39ad246fbcefa4ecb05ce1a3133a151fe1bff75ee21d1b4af7860b5f695ab9f01140c201a49027dec3b05638311627ae0e43bcbace4f425821aece59b95f6da0f34d4a677d32c880920c28e997e7be80db587c47d1028ddc477e45865664f87528c3c7b24823c3176881051700a7baa4ebad4119554beeae07be80dd63287b85fd13818e8831c61869ac28893c5c3fd9477e4866fce41710bd4028778ff40227389de36f63756413d75f5671ad7f1602d6cba45b42bdc8703a8a93522aa584f1a9452bbede0b8531437cdf867a2d01f47a538fce27c6a4d3bd494ec0b94ff5eddaaf67ac35957a48b2e3f3d92d3c5cdddd31fe8094526ce3dc9b18c634e0e34163835b04a73e93c6edb760451be2aa88db7f9d7b463ec7f7288509c8917768a513421823445111679cb44e692f0c8b91ab53c6ae48688d72cea452d825e3acd8554429a558d297b4de28a5c4ae38b1abc8cb90674c19713b998fea7aa68c91e276c2850953524049fcca513b403969ada2cd0f1e28ccd6d44753c8333e8ec6b72c5a6b7f356752290bb32e14c4efe825593fc2dbd0703c46b06927f8ffe58bbd17abe14efb9dcfd8d7dd0ddbdac9c49e83db6f0371da894d9648b188e9c84765d86d27eda49fb49307b4931751eff590ed637d485d9b322e981cac0b34402159f1430e42df15597ebd5964f9840b9464f91e8e8c6189d0c3dbc3660492129597e14951451619422ab0c8f0fd3d1cda5204d7a3f9976357efcbcca79a0553e6922b44ad6a139711f7a54ea94cd425ea12af4c2cc1c4edb0252a77293b2cbe0a1c4965f80e6b0d1851ae5567ebcd84f745aefef20ba2deaa446e5f2ffbabd660a50c16d820074912ec47d270c3655df15cca9f273ebf5229f5a1e42a9be4fad5867b05590f371b5b8dadad4e9d39303032284c24ed012d7c8821074912cc2807e693cc1ba6c889527d4fce0591bc24305a0025074992ab0639309f246291464e94caa5bc422e759432bc7c2797a486b8d5915c28c85b2cc46a0dd7460c667b39d0ea9c302d135c19c6c38941728c5cbf934fafa93621f1704e904de44a25577945ae2f4b2087c85546c955ea70c6bb72fd98e501715943ae52865c97e4faf494e52e063dc1f893eb771286faf3e166f3b3274025b8d93c376805d6d4f8549560150fc70656dca5c2b85ed4dad42cb84253a0a8a9ff6c03e6c7a78a8cdb795393dfd8ab5ad4c20bf3dc712d809afc268e65bc9afab57ec43fb9e290eb771f712946120505faf32746927ad28110577228aeb0a67ecfbc705f8e8c618950cecb7101a691464e94fa9e5e8ffa561ad7e53b2fd230ee5ac39db648cb77f15d8b4f7e6387602e1b8f4d85125af01379996be17a1187492172e148d45684dac9b9fad18973f52d1c839cabf55d897b82b6ad10f305fcc67efd13ead75bffb21b9661b697e34df2abac4fb962dc8f76d9de31fb35319b11389bfc38e993eb8bb971f7305b142b7a53fd54eade5a2dac01e7ea5fc0b9aa88db3da79a539b2c0abfd7233ebd9afa586f7163d014b97e6cf2a483f8d78736063571aea29ee4fa3504b77e7c82b5befade04eb63cad537f4af780723b2be4389eec676e6c77f416efcf931f2c83cb7296ee748c492e2b60ec59d91adffa2f9d9aa80ce15fb6f33f7d7ca231f0f95d70b9bbc18e07f3c1eef537d5df887d7f403968c404286f5d5c8afb6faa90ad01bdf11bcc2a16b71c96fd8fda2689a4e5124b9c4a328cc40054981433f58b13b43959e45c131076b60bbe4ce2ae4c8cd81a60c3b0d10e52354e96acafdd5c70786cc03bff3b326a432c4fdba1b763feaf484523fa8c207ce4d1ae74e4023e725c8c74227f79d9b58667e758ec6392d288a1f986baeaf87fc97648592a634a0fa8a3b50bfc242fc07076b2295a17446a4a01ca3f489474e39c667e52d2971a512102121051173e8944fc39de037dd0f03f84d90ee4d01237751ee66a4ffd3703ffc6314b2e272f9b17e0e871e83d75e8f6e0ccbf5be51efbd87eae053d3fdd9415e7bdfbce6e437eafb21d3f777d7686994b57d4cea6ab5c24cfdc18ddcdb6bba1d6cca4b664718723fb44118387840ec19b91f92913b8ddc65e4863cc80dc7c80d9d5028140af5d539d4a3fed9bba136b8b461159d6eb5e41b5989e2f0f5557a2495e9d7bfe873e2ca7f353f5a245a209527de891f2d90ca3b1086ebd1c49853979c00fb755e844abd82f7bc6d17f38517459533be787a010a500e33408164fa418a5c7297b0c850830d6080860d32188109821081114eb8e082d1941b7220930e6d034a3f11c3fc805ff53e7cc1cb7ad57b8f475666c8286594d4c8b9478b9c7bf18bebd174d0c9aa5ab2dfc8eefdfc9f3f8fd9628cd542e8fe1a00d961d5b1ab782df83f9af77a2eb8c1a625dfdd01a026775755c8042184b58ae9b6d7e3c125e7de772a8af8bec84114688c91e5033ae0e18beb47861ebc3e9211415cecc88e44aa4695273b98c11843463f740cae262dc821678f564cf9c905c80f698a508e3cd06f214a3f9535b8f0e9cb4dc4277ec94dc4bf9b0647d089c9921388053ac1a72021283dc02c3e4d454b4c622c59120b7482598e94886ebdcc5575d0c9ba2eebe39012bfa901713c4a89468ef374b01499045d95f5e4375d4ccafed08bde21fb2f91255f6f3dc5a8d591af6a29e77ec7f2bf34f9fe32951539990a0ff11ca2dba8f4ad7565450a15d108000001008314000030100a07c5a2d16038ccc25cdb0714800c889a42765c1b88a32488419442c618430c2084003000046084a6a601010dd3415c0b5293676f7ac941718748bd22c768ee00b3c4158cce923d47dd6b34aff8887c1063ad253eac56a3b960549646f1e2575a67ca80c0b0fbdb8617fc271f3874f54cbc606f256f13a8ec6c7c7ed651f3662468f3187d435f68673ff60845244ada426dc97f0d661afead828aaeedb3f0b8ed731a00e0e82463eab209dbfb8a4b99f1a0123b7283d1a65baa73f4aeebebe73551acb411532fa1bb4ef26a9492c737a0e6d38f78ef0370ec4f0430388897ca83514e54c5dd1b396cdc17cb899eb706ae5c9707b1b5eda39a03e56c4e2e27dd4146602a1c27b766ed7e5e8d6c832cf2766e6d42e61c088309a28eb88e67d6c7bedebd40d23d07e8f2dcb3d587e59d78c05cad1e3772dbea2ee48f316342e503d6d607fcc64cb766282d97a31f7ac1fa79e0cfa30200a02d4fb535ea3aefaab01bc375ecb2e7ca0e31867197b53604227cd826f6752ce709a615b7e163da74c81abe01c0e4e1c72aedcfa8777e6c61fbb65e10a4e64d132f103f35f6f88b1376254ea551f64d8c6808d84c9eb6d10b1780d19073348d9218ba26cce286582655439512292f18c167ebf327202d334afd14c124b3277b13f85f929601b81dcd5aa226e259b8594498397275f534fc4ae0011e85df3d9a60db0d2f8987c4efa3324e8f56ef7508ad7276d9d7dfbbe6178ba1ccf76613d38e2dd06de8bcc1eb383dc7b33b09c8d8e15f5b6cbc42efdea3730b820f07ce32703bb6e6ac9b1627147e41d5687e0b0bc29a231fb0e184e635c9f7745ab78141c4e5a1e1f6351dafb94dbb5be798b111ef13a8564b43e93060c8cf94b5863b6612cb56c2b12dba668e4ae17246df270e509df238f96b35a2186e0079ffd07c6da6b563b1ee7b64401b2601f80c07d863dcc3eee8e399c1e5ef93890ad7101adae81f452ac53f2eef8443c22b7bcb83a69931db558fd490862b69b2d3908cdeb61918282cf57d1ab4848d5c2cc224d866d7da7e374bad69499707442528f177509741bdba06789b6860a6ee4a78e9d56c8032b3e7d6be802096b78c1c227b3383956b0b9b2aa778b6b25c5d1b947e2717427dabc2d972b06a133d78fa9f4ab0c489a85fdfb3b2c11653205a297428176fc6e30c19d264f232803b731458a878d876333938b39b569c190644d83696439620bd20d70494342099122b2dffda303b46b1b0122a0a50531b96648ddd03778e841b413df2d88af0ee6f7f02a2c168cb1fe7e6f278ca91a8f6fa504cbba34cb6184ca02d1aafeb91e252db48df02ed90ccff0ac9c0bba78c07ef1b633ea338c880386a02642722190adebc174aae46c45810cc313ce791b24e0411988eaaa5283b0bf2db295746b13964c1f1a496764cd517032cb85ecf4a178f384b2580e77981993903d1688e69dd880518ee416479600b1f432512187b0fb087dc1d79e80f4518918d4f1be051388be59ef2857bcf57f01318524961a75bd53711bbc8d4483a00a9759a0cefd012a3bf9d4f6154daa4c176f4326d8b01634099a0807aaec35fa0bf5e2412bf39956384c74b4025091c11147ad48f7af17bda74d326f6eb30a4356ee9333c20580c701c9e870bd44e18887722562714e8129bf32674ca16c5468daafc7a94fece5a5631bee05161e1e1431545f683fa2d83001f87a1b2a6363676ad5f5ef0f44a506d514f81a554193f83521c2d5bfd99afd7c21091589a25b3fc0b76ddc6a72a905533dff76622a54bf63bae7bd8d13645fe1da4fc5f73e5d9535fb8a2f229692eadc38fe512705636b6569ea51a917589b37261ea32336cbcf2f0480d7a184221a8761d19921f7083f952c7919cb7253387a613f2d579c2a93f69a716bd6e9c9e8a4ca68f81539e93a9a6ee4376695945fc210560f86e0def140e47c4be675c862a92e77896f5688ffc08f301fda784925e4649665f691f164ed2a42aa1d65868cf88aeecc7faad30a978a844ec0fd1ff59900eeb385d6b122153bd7e942a6efa7347b73e601af592e80e190b2188656e88e933ea6338a565e20d285c11bde8ba837e153abb20ea492c955dcdf685ba354001d37c1102ea9092ada047a3e4e709ea5689a8b167850ce48542dd935362e6a58669bb19f8218238f712d2d21ef4c183966e6414fdcb36929a5d86b70f71a32afb04e126a7c546825fda78f348d13104996d00a7ca9c01e00062e0e461d5eae6dd5099d65ab0dcdc04f767656c33a20a1be5b64b76cd48a9f13e24e84344a068e6baa67374bdc830370091eb319013c5e04a48621046d039914e354c009e69b1e285a19e86e654279c591d488a08543189f1f1995a914440632835ce4b63cebbf157bff8ee456ff4765b872ee0674b2fcad9c3f1d3e684c8bb45f8135708e64f4332cbe08c4073804128c14e6b5e5e46849534aa4570ca6451e5c2dae0805a9338ca70c0f9e3dcae700b8bc05ef29d963a946b83382725d2ee61944bb44d7ff832049bc8a4266ceef082f783b904bcecd68b5e14ca44dbed1e8cbad909c2dcbc0a00217d0220712f020eaa228033de631d9a0f9f4fdfbe7fdfca560908da23e35dec6f44136ebae9e332ced81fd4968b55f0a93f4db723c697557a1aa3c978fdc889ebc9e26260048d0f62c7e0678451157ce4d7febdadc7b3b6f67c2f5e02c70bc9c432021bbb003736c4059b77215d80b7a86e075de85ebf211fe27eb3690ea2b27347612b6de56ba3e36963c087aead1cb6c91fed3ec0bfe40b2aca2b61f6aa46d4bbe1319016a320a7dc9590f0d848532f157d1175d3feee5ebca3af7bd30fc388f4c323a200e95c6425e9ca5e77f94a08a2751bdf2020a55bed19c8df18df9ae8f424d081713f4152b1d1b3ca029e18f84556dda74e0db14cef2db5ced1886e5d3d02de0174acbb5de1c3c3e02f5244a0ff0a6eaf25a08e1b0f2560d0937182d64e4a1035c8030b9918a12b56c247ca74057f15fc769683d002c64aa3f2ad47bfa8e06763fac768d335b771bbfb66386286b7ea25b2f772621a8278e54f8c184eff77d8dffed80c00c647c99e62580ebe53c5567077e27bbe74ca53165281f04b410d0b029b270d35b2c2ad776d78fa322d5292b14be9a05e0abb9414d22d29f87ab9628509cad4655bb07c600baa1b27d1bae6699774215d7c9281a3f9d1c9608cec3a92c355785e17a78cca377e583381de193eb5345330824a0594f6ab97cfe23dcbfc3ed068603e4f5502bb3b2371a90e436d0b69578be65ad3401b17534fd0013f8c12b76ca771df91948b3076bb13a189d04fbd1033340f9e52cfc81b07a6c46c0a2c2a23f27a3ab87395a359e777794a34e15790779c4a533915e5463570428a41a04d61ded88117707515af546d648508cfa9c0a76a3ae7e90812bc6b1286d6ff4e6a2fed613cbbf8e99d07a4b2c0ae056ee8eb7e4674722a58f6abc2e3d6300ffbaa503892f613cefd8f9ee3806e57c5e7800b5ef1dc0f02f1939879cf7362597edff00de7789fb3100861bc663516ac8b5607cb3eb09bbc232d0499f16acc919a21ada634687cec0c85dacacac00f520c8ce466636261d3014a426fe6e7eca78fe6a6553f9d29883565d4a3e286a6625e7a9ef4b27686b4cc453a27be778ac34d6f4fa5453899c8132beb3dab0c22f7d0e6f12ff85ddffc701c6e6839cf48317a33dc7967931f1838487a243c3ae2e1868d2bd8c1507a0326e3aa96563fb100544b513d6afd4087a3de755c480a0771afdf98aa5ff637596427a0545644f791f9e948ff15e936de996cc657fe250938ddb9365374f6bb945cd49799aa85fd8256a2b483fccfe44e164d2c569e0692a13b46dd43a9be5b97f266ac59305725a9e225bbb92f1cef16279b8b97c88afe875bdaab5618e1f9cd2a42b0435b790ad87a031112fed92373fe377b1dd1a8e37a2444e52c3c3e5ae3c0055b855ba728743f7356f984c89474da4fba746a21a4f9f509bccb18858da72735d1ba3d99b8078e3998424841d3622b5c33f52fb26773a7bbefc7f42976ef5c0e09d90a5c96f599076ecd0f3bdca3b1d20b27f0cfebdb7b062582fd18756864585084f3478593cb765ac3fe5d35192b49a8ae734a56e5f3733c8c079038a4f8a0d85a6f2c090024b4feaa52758cd6a140c00430c882349c6c10201e0a05b72cf1e31b5240de3b296aa3d08db336eaadd820d8eb95d814b48b10d900b57174a144b49498ab100f3363a679a6dbdac7fe2e99254afaecdc0d12976ead1dfe60cd58fc06286e19b7502a38ac7a2e2652e753f62481caa0628b1b880a3e2b9bb6599a76358c52081e8a7ef31652bb2019c8eb0e31d452f46aa66cf44b287c9f1652c64a8afd4ec32fa2c6ca0a883ca2a28b97604b06245e051b69a5a093a4cfe5cf2ae4ab92a008e6944d30ba16a7ebb396f5bed3d0f82334705e09d7d40c853bc787ecfca89c85764c878386f38bc37d1e5a350d95b6b88f7137f230bcbe3b45472e398d0ca4f18b0bf851331f7741c2c66e8aaf342cc1d93134c23d84e3d04f62e9adecdcfd2466ebefbf3f5c45e4947bc0904875f0860bc26130238d6ac1a9811bc323ae60fd3b89dbfc27b20a2e1bc1a353cdac535d356f4c35fafc5b9c6d7eb09d143db6b8c77322e42f8d8adf20695a92640f1a2ff3c6e2efccafa55d26cd413bf2f8373aaa071570be8a35fbc94de396f7eca746b714e7ebc2df5881207dda3b5fe63a66ff6668b148a5fda0d04e7b75e1de48713f872e07084ebe81e8d98a77d06dba76142a65ede7ac07bd264c67654fd100133a36882c8c803972632b761842b7add9369e50166969cd058bab58f075cc96fcb255330bd57c0e52f418757505b97965a4684a10c400cf9319aa9f7248b8f584d22c7c443708f1925ee01b244a283d78f78a530a4ae099c48fae7061bde12ee9d12a485d84e5dc73c956c9ccfa9411aaacc09ecfa4d8bf121b8eebcc31686955e50bf0b8b77e0178cf922bc16cb4a0730ee9533e89d6c61ccd9f6212225f65ddee8a2447a18b25f5be1729012719109391ede0583e4f957b70b108f2bb36342a81868db27091726bc959896e10515788809ce7905cccad17d310702912f429033ff0bd22b4257d02cc67df8343743244f58473542126a3645b4651cb6454df0076b9730d82279cac18cec35c5f06b25e3e189f68b85eafa74594937a4ed5955e1ad5e8649f7084e27fddb692a6518c9862264c6ed770a9e9883d328f8de4d7e497302ae08dd2e6b80f2a8ac7f6c42cf689a2ff8c4c072b1828357d6787923d754be43ea70d0f89473c13945a9d6b873b99612807e42278901182a4c35cbb584ec388537e81cb4f0b27178e1cf338cdc79ec966042362a64aa241bb6811b483777280e8f892bcc7b3fee53116bf0cb1cb595e1f43c08c8fb9ac1b6c2b98de6cce02a539184c3c08f20a4791024153783735350b2fe988179dc32ea819f33c60b380c4481a165d5c99adfe800b5bc58bfae9a877de25637ab618928a84a2bd726896b3b819b8c9bf6330ba47cba6ba7357511580db802862b758a281a0f09edd432af63e7a4e7c140db957bf870e265b45ce6305ccba873d9d01759082bc69ed2b50ef2eb6ecc743b8d1eb98d46a9f39ecfc053ffe234606814aaa49f01f372c04242894e0045a027ce99e280a22704035cef42373050d6bf8072cb36b50be1e3d7293a2193f8837f35612e81cff570ca730086c95fce571e24d4d2b45d96acf6dd503b05fc6892256ce1cd9bfad4e55929e0cc7859ef0c3186336998011151724d58b876c70234e0564f591d9caef1aa9abd74c36a27a15bd5e43138047c74712735f521b05ec8d5cd97cd3785099b0ab939c3c9dbafb5977eff0f2f32e21c80589e4d96424532546c90f7b682c9aa8abd8a441ceb1668655caaf90e3f642482d1cefa029b5846e31b650121a171b0fa406e9d5f314e8019cda428809342fbea647e870df80c74cb249a3b12ba1819093a9b6bbb1f9402eb9afbf958d5c269d241b717027a1cdfdd6f5c6b82e487a7a3a362de290339a4b97a4eaecf74e74687aea51e0431fc179bc9b2d26877c2050a554555f067e653a958e90a5b709627c04938a14f3f11f581cb134e31febd0bac99f2bdf9e8694e59c8ec0a76ede05c8a1ec446fe0d56ae103689b5b39ecf06859fd7d198e1e43de68f60111bb905943c874722927244b97782df9d374f012b684287ca3c664cf212328a252ad94713203498a37f7238f01c114322f2cc0194f18b43ef6c7aa82bd7c16e21fdc6807c76804d8e4867f608d3ce4a50a93864e9ae2f9d11c20d3f5b69f27b253e027439fe0d0bbd98abfb6bf443a3fa13c5e5ab12137f521c94e11790fd850a220a5c5cd52f2e2ee011fc21203925c8706e0af65e8080d72c4729746b29abb989ce6864efbe1734498a29a53c4a558794a52ae25f0aacc24f6ebf27b5382200874b5f7af48112d748d007f8e2d30512edd5718b21ec281cd177ecc34fe808b6912dd83d83751fb254e995519b2b6fbe912451ac523d5c188b73214d4071bb0c1a8c4b5e29e10323ef8331c42ffd888689cee7346364892737572f8a1d246434fb51f376341885731def3137087c186ecc166084b078faf593772b34cf76c8e33b5eec937e9b102739f9ce27f1f743a93a6544230484a45bab7a8309aa81b5a150f3d12adc2cdd38ae0e74460e37e9bcced30ee877a6454e7fa4ee23d5e269ef57bd315b4f56751f10f921fb734a148a7cf00aea7bf0e3d2268a8431c138e8c799c0a10e2b89b655ba8950bdf46e8697aab15c56437da4f132e06d8fea136c707ab29b20b2050b1a4c2b64b95f7c63d7210d0c527912494cde1fa81e3dbab98418b9c2e14d363e0b36e98a98a55ab2c2a70340287f0bb74bb6d4d3f4fb31f997fb3e40e3c7aa676ace01125486e59698dbed2c86c674e5725f8e60cfaa14225cd5ccca44770c11540febab173e1c915aafe6ea479388590f3b9076a4d31b4770fa56c48c17753315c3f8d2de811125e59fd065683153cdbb33a6f55c75cf827266b4bfbd0bfc33f41892a1a4e38a9d16de22c5502382718d98fecbc05e432967e79b700d56a050b302de40c377e3bd3683b9c8fc69d750b2b8dfd34f4aacf0c3d4803800b2d02dc8228141b20198b8c009c4c18cbb3ff1d89747796a96ee6b40a5e0963dea017f9c55b1c9f868499466f305e8228592519bd83d77ba32601bf09f4e8fae2a1162a86388b6bfd3ad3a963bfc162082bfb2ebac3bf955b370462436a69ec6e69b8e1c016e33c52cd3c92fa86e9bc6dedbc9b206d8bdca08d88037b07f095a4d1d732540cf278347124a230ab4a50051fe93f14e87fcf1c8058c9d7003431838696628488079406a06510856c69600516428f8fb44b8a80d8b0e86acfdc10af303bcd91ac73b9c07faf3097916224e37ca64962d9c0c08da655b447743a15ed90fbda8296baea7f5ffadbf270c9b1e32276776a1da318c143cb606244b4dca190a6f2f014231c2295b67ddbc92f6057de520be0749f9b4f901070d0ed51bdca799beb0e9555e86bcd7b43ad8c154a486d5249ce7f8480ca695c16f5c0a026d8ebd5388d78b4be6fa4057a0f7abadf3806b8cdc12c549fd436d56da488614460a889cefb0d92761a72ac9d0b166312a8b0768d3cae1de68e4559bf2d03575346d9458f026ccec97a31187cbdf7cca852f9b9141327199559ff5dff1ceea43b027b85c8de3b9baf062bdd7cb9484e5399187acd4f80a7fe32ab622c2424969bf34b3318940084b0abe051f630e7e522dcd41181c07dd71d1d232ce41c69a65544471168e46e7478f95e1b5234f2d1f9411eabe3808baa065a8a978b78cdb96ae6437d1a49499ca7c97d1d7277d434b786dde88dae74d7b6856c4bd121200f584394c2ae3429781062a8d2bc61fc47699d7dbb34212a1d30b8237fb2f6df357c8435f463d254e287cc98245793f15c36f780093dab4b97cae0c48fbc3a434f007d5f15310518aeb1a40d3a65335c0019be608fd3543174d3a34323c8195040b9f38bb44e2ffd9a5a27cf0e471d5fa69d80475f60fab6b88d8434086aa545ba66fb27d7aa97f2d7ccb5400d368d5563b47e44b917bb147d15152304b5d246f5a7d241628816c84be13b695b0f833cec82c2b067edca672129b8422ab4ac6484f072bd183ea5747492ca13128c979fce6335239de87eb2617514a0ece298aed94562dcf682a2b82762a17581e0a6890ec28e128de89882df2aa4d256fbbe5086286d33726f5f2ef5ad4b4c2e612fdcbdc94bfd6044fcb51f01647ef3da9554d1c01d4acca3345fb8a5c86c4606411c0c5a98f90e53fc653f404a3daab7629108bdff06aa3d4b88514207c2c23d02e390d0d7ec3d28c18583054f1c3445c7d37924de5b306048bbc348fbf232229ef31cfe824c38812a6295dc758b7eaf446c3022b40359d5254ed180b634a7369cfcd11477547694be4a7e080f94bfb6beabe85686ba877fa75ae048d38fcebbece1a80cce0d0a4b0c3215c8915e3496b3a24949abbda3bdde5ddb6d7848dd65a756deed9d60f106dfe545bf381d325676ffc2480cd2db373871d549d8fe51edc743e0750c1a95db605939657fb1ce69d04c7d91bb1db12ff804b07f4cae4669cad22c14acbfbaef921b9769534422e354eb471cd74f113e20a2848b10eb0db50855cd10d2c8a6d555ee3ab0b8ba7cfe5d17a1ca505094eed3d56d6876d5f108b45a36f57e7414b548b3345ad9d0c7c1c97a2a9f81e0982266b7e79ce3d33bbf274962d08181b0edba796a3fce3b14013b296ab1677c61775d48f8292180f431653b62790bffcdc0977fd54056122b2d10733856eec127100c3b2cfaf5e06f37330720e1b234b43c84f920c3fcdd38431853316ec0041d043790846381531cfd06b2cc01bafbf2764ce4a5d2970f1bcc0eeb91a4217735ad922035c63917066e74cd2299fbebead360893732a1a2e203901f17a29addfb63294dd67d885ba3e8d7d547c45ba4ac42c89ad19e6a88be90361d97a98e797ff44a2c43625c5a7aa1fa08a272c784689d29b9dfcd5e63bee78e0f693d96d142d386b8d5173d76402864833a65a0019e327b5ff98787e0bbde638add3277c38a4517d790c95cc61ff8a573ec6705b93d2bef4c32d404c983a515bd1531e3ca0f52793884dd265896e36e57741f6e231099b7e543c5777df1260be15f0c009ae80aeb120ab0ce1f8404e0b372d3a05b255e9c9231b21ef40a133ac9e53cefe5a035f6f8d942b91cc31b1397af7fb16abd45ad36391b568c39c593f0ee74ae049d4ba685cc604aea9033b1282684ff0fd436024238264898221348a114e465fa2c82c579bc0a191ffd8011ddd3ea07e2fca18349d3cd1ec9584afe54617c1cdc8fdd367cab64a382e61c0c89296cb4015e6f62021bde83487f94a1ffd9e2eec4f1893020ee0db46da1e6600d75407ba51a417a01eab11b465ba94e702b039a4c3e7289f52631f86da84f752600469b257ee2b168b65b5c4c998f2898ec873a6d5d155bce613b8bbc12bc29cced3946ad2f2801167de9c92720ea75cd43fd454059ef7259bda4e3e65b0f920532695cd67a647e6788e275dcb26040ed420018da7083d2e0f5285ad4c421977978bf94b550fae2dbb65a605ea567c9cd5a267e8726010520b9e9e167a0f564b71a01647b99a3698df40886a278dd7f2513aa65b912968ec7f8202d04fbce3e050ec40ca55738128717ee76ca0a1dbef8b9374ab3cc526f4226e2cb92a22cba85692e48e5ae96c060529dea21682458a0aaa9006e3d60b5c85915192dedae85c141e54c11c35f493a3fdeb1806ad93b3523f5548bfb590553737b851bfa6511fd774ed2ab03814db00abb952002d04c120e5b3e289c2cd61fb0369e828479c5077d8ef65d663976cbc0e1cba926da2d68af26990516a62e512ac601af72eb24d69bdc05edba3d1b3222d44f5a1184155592c5798c6437e047fe08a6b5d307d78e40877d2d48ea47e93002cd04b4d380293e0cefecc809820f9308dcd65e297a51cd00c1548d64af010ba445fd4667b4367b1d1d6e646824491aa6411ea8835592787a079da042fdcf4e24ca06e00fa38f65ac4c9cc62209b4c88d21dc719542ac07b9adb7e85c0e21da80b271bb9c1d73484cc8e2c88025cf90d51ecfb7caaf5a082b417aea41d090859eeea01198364046fda4a069af143ae7ea4851ba702ea3729d3e64c009007e33261640270b41ddda3101908442049e1e8f1d1122980e6bfa641d804d858d87ff65bb43211206768e0d8b2afbd3ba0d066825954bbf2e1e3ab43743c28349f13dc38f59cc13f947fdaa57a3a48320d647f42c40b41a0a05b5dcd8ca5a9f6a2857864f81f78a174d5e08622de9c5c07c6712ad9b9fc1d4e1428e515f653a3c1abac9622992fdb72fed9e5a9aee17be401e8aa8f1a5405fedf9e2cd5f15f733d159395ce413f9f515ebc91e702f1120c16fc4d96926809246a5266002e34db38a14e3b50dc4ce527a049382f2a506441daf01f3acb60727d7b95b7ec8feed460de240d1a0dab2167622297275264ec911dddd01d22ae985c88501ceb2b5725056c4339084fd8a501666e478537a6fbc5e1e94461292e40a569b306e8d8b3635b54aeac73ad7451100cabc3cfee34452728545403cc86184ec5d1ed03a7bb1c0124c569dd87261f0a1db4e577ba0c5c9fe8cb50c1660c24ed5dbd8ba36be026be0bf2bc7138558afc052421a6a860ef5eec773617490e089fecd207b0e59eacefa1a1579b1c3fe0e5bfc7a321d2931c892d2b07ccc79e43c2c2d77139793237b2d51f19407c144dffef0702067e09f4a3a7283a63569e9b6a2a973885e11f7fa39dc58eb3ab0b9071395a4a280bc9b752811328590c948964874f8aead89ef2da4a60e71d4479a5c711e3b00dcc8239f02a7ae262be94e614470f40469585ac569e867cbc0c7290a6135430689e882d445b81bc892feb80196321caead90842753fb834c3718f43d0a1e7f9f4f67778ca607f47cc9e17875ceb07f9b60f0c6ec1e314e2d5a5059ab6d769c37beafa535dc1c84e077482b946ca94486987e4bd725cbfb6e000c22dcf083a5d5bc296e18d387236faba53c5245c2855b4a8f085623de10e84f2c0044b68ca5e0394b901c1b76802d8b53fc45439f3c4c98cde641c3146f09bc72792ae287053d43b14991a053f077d83c66554fce25decd0ad89222366dda253ead9e43d7948120a520cbfc474df043a8b9a0aeb5b30826c5d738338bff2d260110542010928c4dd452cc8cdcf38a4f056608d5c39e5fb3aa951168e51493702a61b5684d910189fd8be87a80ac199a431c090f09da2ada075c2300afe16c2329b3899b6800087b8a6081bc56f7a05c2be04e10dcbd54aaae71393bcb99003e5f269c141a379d24a97e7b114041270d836d7002525b3809eb3cc758f901e6a2773ca9e33f057c9ea825dd5cfa0245a0a904026e255965bde4679f8a143e1a9c90055b2ccc3e645d572bd0ba175694bbe1ebdc002cc6b1caededa69b23d7bf7243e66112bc34437cfd26f4f141137997e818514d353da6a1cb254144b686d76de9bcb8c3d55262ec2b840d5090ae5e87a79b37a1f343db772420bf7a0466f51381239a8773cae2bb82ad5825776c6a2d31845cf1c56b2236011b5b9aa3043c3b697c935df495792c9136d44e1a9b1167bbe806cbb194f25cac24a7883b1a5994126e87f39b78d07324b85ea512e01c41d2b728124d63a4a23e5548f4ad33b27fe6d8345df10caeffcc27964a004da02d57579acf80937bcfc92badbcccc1fedf3e28286783c0d803fc005806ba0c80fe704a0d00112558a8ba0ff6e04a54b9d9ffd9866ff6c14df6bbd5b1de079acaaae15b40fcfd127fc39406b4d6e5af1c80f48bbe2275ff7a197788847581638b300ce796157803235c6efe521e5d2e17cab15f3eaf2d7b7c7ee4e55e3e6e1be67fd098d3fb5cd198f8a1b8a358155644cdf48fd70aa8f7d0a68513465c74bf3ac0b1ceb623a7f5aedc4c825b9f2b4da3dd2a8a65b201e27d2f21164f8b602eaac537ed3c509c9c12726f751817c5e0a9ac43e28380a746222087d6b0b320af83939b738dba0838cd08843ca7a0074f990714eae4b789fa14191c80950c1124453655be8edd201266ac02005f831bcb0f3d9e46fc531a5a519a56ac3933080ff3876aedec5f2d3069dd15f10f45ff74aa09c1d5428b659b332240070ede5b3a4788200f580c5c2d1cfa9b65e3891743b1f0edba9efb95462803c3be406d13a2bf615981c1c702811e806bdbb13f657c94ef7d2fc28fd6d3fa8034a7b24aea0d470a94dfae1d29a8c7b89493360fff4cba488699e8cccbfce433845657860ea8670c18591eb8aec78c07f1ffda5b99d7818197391aec1366f16598a752cc88ef7f3442de500c78a7c00d30ef813cde01be150dd45373205cc99d50157e152038847e1b09ecb59a08506a44a072d504e194e6c491a6e426f070bca06a3656474da08cff77ebd33e661f835734fee60d4316cd21be8cf8d255e0ec52927ad602cea306ba93d548921138fda3e4f0112832066539ba22a848523f82562ba6ed1e4463a9b3399864b3cfe7ada753f2b928b305a791f1c0d5ec233168dabd0f08ec9652e4d3682beb2748d09f67fd0397228dece2be766600b894cb90e642097a15b1952d70db5d89823c91a0ed70bfbe0a0baabe8613a51e901ca00dcf50804b41bbe8b9a8c2bbdbff60514e0292acce04e8b981f801f0b28ac5d69f9f2d017614138ef6bddcaf4760bcaa8c6860dba60af6487b76e0fef5fa47d6e641250a7a3261792b93105c5e269c75d6c00dc26cc1bf01af84ee481e379128815e25e8604575008ee52330fdd0e5039f47a6021ff7de63be6bbf72919c08a59bc627d15ac20737d284d0d9bba8a2272584e41ee799f7b1712faf9c7565aaee667a71f69c35202768eb9048e6b8b60fcb7239185b106f2272b65190578c9b3d70b0eb63aaaf2e70aa074738e86aac3ff23ef0a61f59b122fb9077b1c3336f863fd6882419107628b19794298fc4395dd276d0f9eb868086f37fe7e2b1530a63b9362166fb0f869302722056d0e279fb23f520ce74bef39751317ce04a2faf44f20f0281d3fb0c69b18151da6d611c4107deb97d16c6bd9e09883e144d896157bb93d26455683513324c481f02614782cba76462120a9846f1a712477d68e423a897f4df2b8845e7ac1a49d3fb7d2862fc5fadb4f2ce8251100720a835c489278ded60e5fe89b515305a2a9d3a28f392257505a6a84447f8c320208c294d8707e1dd68ddd2543df9e99526be57406b23752a6bf5a736ac0a86b7cc2764473b0ef0d1225af15b0b61244a13df2bc0368440eaebf4a3020405fb4aff9e88f556211b9283601ca520a65100b4ff9f0a3de5917bb060a947e87b829686e5405308a0f00b158b4e528d77a43ec584814b95ada38b078f14b41ec418bd2abc171ec948e9f27d879cf9c33e8a3d2b052f05215b960b24cf2773c8e6f369cdd0586877f71d1b3f99c3393f4b10f7fed1ef0a02ec1191727c24b15dec20fffd4f5befba19e48362b55a99df1f6925c9c2fbb7ff6aa5739f4345610a962a8469b45ee8e5f7edba22b748a761dfbf07af95f3bc3c8fde0c6e5aec6cfef05f712f767066599a591ae3f9e5ad798e0ffcb13b616c3203f327b895adc9b8e3c011780d3c065038f4786b1ee84f5cf3d658b092706bb4b70f6e3e8797d0b34f076ef527ac7e50af906967d0404a58266a485903cfca1334449532775ef2f77f6555b8c3f85f79310ad50db9a5d88077e3538f6c2ea946e6449bf3a0cca75d09040d34da196828e6f7f16b4073933094a1f812d641802c6abdccc83bf1851160cfaf3a3aa2f0ecd2cbc83b10b699d65b33c7c3560ca59c5a2b624f058be4429ff9f003cb7c0d43c1ec4afbb0bf5256b868ceed14b5e1469c147fccc52ef059826cdb227e75022164dcbd25980e00e7abc02d679b82d9316f3bd1eb6300d5e7a83f0bea3f7594ca7d31cd98cf8f9640a74ab249a1a099e0cebf0b3f123ed3344c4437ef2ed9c5e8e3ddd1a15a5e5d2d3b595763d14400b7bfa72dc7598ecbbeb6fe178b8fc7d6521fad79aebd379bd7f5c81e94378b6c70111720b5ba4ef18274302ea3467f3a121e2fb8e2687e7abd45593dac27962203c990fff626ea3fc80f4b538a1f8b0224145b68d9f3ceb8f07674b0cd23840bdcdeb1e29b65dc9d159ec740c60a1496acf8db0e0bf3440d77ae086cb3ebabba6d3b7f69e81d9f1858a01311d4567e2c8ded2b951e530fd435675e90d4186337d6a9e2fb9638c5ff277e9a8b1d2f13dbfd0af6ea5ffaf351495019e37e0f9b88a3fb5ed5dc9df39e64b14e807d3fcb80b3a9fab96ad71d232f1e2d5719694eef7a385b700ce68b626fb0c43a6f7fc4d790dfc7cf71c9da61e746d0fb802a2a667485659dfe0af4b37a8a5c2491d68f2bc4aad7724cd74da37535cecf51972f9e133b71325a776c611a5aa794edab8c0c654a6ac76c41093d966fed9ed68b041dd2145808e71a04f7d4ce981cee7ab9bd0899d0f4b6d799d711d9cce8df623956337489f65463a5e11615253c58d2fab929580f8ca5fa332326ed8f8a2ed5335f42055c0bbc4e045d8d928e9dee57e064fc66c439dcf4bb619e2999fa3030786b6bdb3b4f81e7815e9a464a31b0245b251b15ae7c7f885f738fad1721cb7677f5e5501679b2d585cd645e3895a26426d78e70d233b63bd8991bb0cc41dfc243ce7f831fa902fd26c302752ebeb01555489ceb1618ce155e925be6350ee6da2173e1653370d07876c748f0721b16bb7534b875fc507631007cdd893f425413641c557dd909aa3d2aa75c134959f38911c201b8b5cd82ace6c9b0dbbdab82689bf4a3fc11442ef23f6cdafef8bb2d7268acae164d66aa83be1e6bd7bdd03428342e6556492980112d5925cad1c0f44b90cbcf8385f52a6c20b9b5c84bdec8bbb7cafff48de7bdc6369f024ce3a0f9de7dd08af119ec953f14611010aa1c1d228b0584d09b1ac6d8fce37f0e82d6b714cf5840130490ad516a903793629bf743daf967bcbe34440e2a3d1b309e1bdf09b90259f7aac374980af6e9d6fd2994897018c3424be505d62006f1934354d4ead4070300f2d5a4a2a4bb7ca69be17168152e1ecf54ad8a2a1f40e9418180817faf9e43aa71fd39156169f5892fb8fef8c3333d26f9c73d1ea6b55f7a7c03490a83fc0a904039879f1ee117904fa23091c4ffa7f703a4836f47123f2c6ed4a59fd495d785f124d3ec6895118b2f62696daeb58519dad1f3079d47ced2fc9d1f4d2382b1f5fb4a2cb80009eccebfa28d1647b72a462c77f8092643ce1f02af73964a2fea17003d31fdc5a2a88b4f539621d1e827341256adf9aea42501d0b230a0c680fe33facd77aba90076e3c4f80e8b63015cf02191877c267f0309769205a03f1a5bdafcd1f0a817119ba3773fa061ca898f80f97df1d11d607fd2203a4968ba8f5d8ed41a9b16973a3af7fcddce59d7b24f8d33347561cb2e12c7ee0e7961455ec3eb9fcf8ee4aac509b0c0e680ccb687fb4dae03318ca77f154e728fcfa82fb995c0ad1f0a5bbe03ab22554fc0bab00d05f1e386080e0c0f8c20eb4b16c828148291b5bed33a36e4333229d2769e596353ae4ec917d08d41c8daef18f71aae2d2da608b3ea469df56c9a5a3d6f35b17ae856e294a754b13db79c66756145dda1506cbcbbb6c30f953df1af1fbd9d5085f7e0db94671e3847c10552f3d0f00dd682517d40cd6fc2edb02e85403ef346d09aa7eb207d6690eb490938f8adcb9f753e7a05e0ec812bdb8ec2b6da37f324e463ff475ea4d246691b4edacc6b21d8613e3e01b3d984dc64d0eb31a6dab50a1ef6be5cb2e0fad64bb4ff7f0eede313b63a8dadbca35619b41c926ee29a3035a1fbce89679d94ed1c764a11f033fe308b31732d959405a0ef3362c6b3de3ce9ecfdea7f418d172c04b4f4b7fae75c153268a0bd646355292db2098390bd4fe0b51c2ecbd5c678a02185d6135153653d0a32d09418acbb08a2dfcdfbf50e72856cc78dc0d4489aa563e2306c38a97e42fc46b50d824701d01455d6e461c066419509cdb4d89842b4cb3e8283c31392132403051747517a7bacb83c7a27a67b1e0778e276a5f502c6c5a6435aaf006f8e5c2c07ae0227ec79656f9f937b7233e33c3dcd82e40efde94fdf6536be40262ee01227df28ee324d0d6b1dd6a1de9bd547d58332dd1b4ae10dc6b7c502f00b4d06efdcd2e270ccf873f3f24d2333ed42a1ef45790818b64bd159b5744d5e316f658101766c0c07b856b28178a283c5b7698094ecd69f867b124fff3874a29b2d9eed2ce818135867668e9ce532b7990a2c0caf92685c6965b940abf8b278df92e65b6b4fc5080b439b8731533a99ddc1691629e5bd32c7aebad7a2a5085160f38f1e344b8808e308695f988abf1102ac45a4e35ea4e916c60d97e2a038a8a0dcd36f9aa2d49e04a48efaae09e489c3f6fbb350191a135e5933cf053943f36cb23c754e7d247da4e7c6a21202dfaf9ba6466aedd9f31cf0953e848b2dea2882588f66d0c2811dcafbec4d3ef7ea3584c428c877eeec6c6f21845183573ee749934cd124790c682cb1e343c917d2a81e1b2a07018ef9dcc5624ed8102fe13de2fdbb0a2db1e12f61a86c851e5b6421dc507c3b2033d0fa8b708f4a0e9d9896ea0f597e1224a85288e44aaa5fa74439446f6a8bc4800d52bd9a87f3a108330a0730a4686a074f0dbbd9e6175d1f6bbee0fe0a239aafc9a5b94255066f5186a251497817fe9b6490d481f33ed0765b611b7e88372665ef6243202c18100354a12a4abb8204badba8c740788c2e116e1891bc34a25e64eeedfb6cd59b123ec9fa393eaedcaab1ff7829ed8f613b85a5b3036bb540c72563d403a639c590106c07c3eea71da60d15177a8491a6e526188c9e97e5a221cc904f2ed11ed03a277af36b3442b9ed897978b9441fccafffdf9016daedf7e68d3fe2607bb9a901a78a8e2133c54b24aa0d94844d091f8cd9f03490e1fb9d6580c5bd24072f9f9de26cb16548529fb0952bbe99f882cfed152c845d7155bdfa3fe180923c27bc7db382e6e81410d988e2c53ab38e50156d54a43d243e7d0d56b73a596d614462cf4be5f5a5c80a7f60baffd520d69a6084111207a62585e2d2f69c57f6238a4233d61c1c087ceca784a8bd784883b8ae1a4ce55de34a0801997c4a9960f95c365888002ca3490b66582cb05a7448be26d72956ef72b712633c97fc6b2be06d04001fc5e5bc5b77f001e38809fc362781774b90b0971c1d69ee8e38127d489834e9259ce5d282dcb1e39e2112e49603807074cea9854ced5b88458bafc6af6dcd9d7014dc1310d4035c109d0512bb9a554dbcc647c91352a6810de4ddb07a192f1e6329ac6e74b8314cbe36e60444792fac72aada84687ace6a5830fd968eab257e46f3eac8c22863c0036b9521d542878c80084c9b888a57c12d01556117a2631b800f46241c407867fae8be31226c398d8dcc8c3c6c98ec8215803dc05b529222a155d79ef7ee51034813b82b1c492d402ae00ad09db9ac919501c84c704196bf1883560bec1c34c877c4efe2dda92d2dc915a300d98bbb02f6f24ba1649bd6ce72bbdadd4aedae82251999f883a7dcd48d31fb6ab8617e2d6d166795858e5d99d04fc4afb167654dc907cd5eebeb29808d746ce317eb9696453ea8bb922471de23d6a8fb750fac5956af3a90bbc475bd4bebb50a70d619efd0a7d7532b363365dbaa3b16ff3e3455690a0f9ad0758b1420d3bcc17a57c00fbacb3337874259e8f0aff51ce22e09161d80263b5c6d1758e84e0731a869d7da463224083bcd0592a99489cceacb8bb92168b2d2ea2399fb7498d0c9c493b778b5b58cb0de72ff06d2249ca544ed9329010333651970ff44ec5d3fb94a695417b1a76fb5139d4f0f8ff9a0ca5c6649ff188891dc13702ff501e2c1de5e7378d5a24b39b6a2cad6ea00a5f5602239e6f1942168cc2a032642ac708f2b34e4757bea425c1934bd5d1331a99a0358dde18567f15f27852e8e1568f67ae887b423544190d6244a4d3353b555d1051bb3ca946be667cc0299ee9597b72ceeb9e9b6f89651aa5e4e2ef8067b90c57ff2b3e04353dcc8492feb20b159db4a7546f26b46086c7f79449ad94af381c10d6d3368468b9f10e0eb845cea84614aa54de8cd441bd3b879a8ee0e280eaae6eaa0c0df8815537882e2256ead5235886f65e2c29a62505e6d051d42f2c63da86109f30145db15407a289f7e12e6d35e6ef921fcd3d622d37d3b2810381d1b42950e99e1051ff21b9241c19ef63c0457f3ca1c0c1d84826a0775b54ed516a8f5a6c8631248a1f61b9e3d4ac69a70a0a46db80768cfa5959a62a2331a8fc05aca8429ab8f68edab40e5fa8d58ad0bc3faf6a96e6d60d2af756ee1841e6fa6cc94722a46effbc34ec0a91d16b811fd11c2090657369a514cc15963907c8f8a0bc28063532869c41b4f12973b6596068d8bac0f0c15408b6edcdb5a067d040568cb2ce73b7af4e3d37b4d5975c89bbd01de1f25f12001a2333597853f99d675e041d0882dcec9de5330a82559749f04cf2c0344c078ddd32dfe9d73979496a63498544181c19eef93d69630a4e73d116aedd6f3c31f09657ff8198424cdfc9a89fd42ab58eb7f3d186b567b253fd518f7e5e0e06f9bb72e6de84a2143767c29396dd3c22464fd0e0dbd89bcccf8ad2658d2b02d636132525c49178b02470b8bd458b0efc381059b2dfd0522a9c9139389b0e675f08c0c279ae3e89ef1f2a569698cb10883997eaa9275175e280ac0ad1d9d639809aec82eb6fb1832ba77e54a6690395477457225e656aad5dc26dbe81ac7c898343bd8e13a5ec6d5ac8a09ffc078791b9700887f3bd5214f1c754add90c9179f2fc26c1747b86f2e4c3da20e329e7fffed15ecc16c34d6e6affac99bbbc66b4c89ecafca69fd845ba12dc0da4f643575fd566bfaa9f7d39ac583db9a59129eeaf4ed49e0e128d7ec1f1045e86355c9c7e9d31d5f567ef1387b70adc37661689aa5f1409d3f5fdf1c51d60fd31d0b7bbd8db8e20f0763e96efcd1b0ea9c46dec7118f0825504e9ff7499db774da5be735cd06efb1e2c35a25f3819cb480ef4b41eab50e5ca29ecd6f7f91d67abfa51271106d65ff1efc4f72c6277970d92e52f86d0757df335aace4330a588d457d383e0dd7823e9fcb809e3c38dc539ec369b201eb0d562a586e38c75d1ae43094087092ea1b5379c926a18a82abcaa6838b3cddf4d2c54cee8c3dccb60bca5b8f7678aa6d61c4ab27f4ac5e7659e9981cfa4560dad92852488e81c96c0a3f115fe539e6c12c4c394d51ba67191b63dd045cc3607a589070702353e14528fd1d6f76a7763160d397b7e825f7d401065ebdea33059ec8d1c002f881b0f41af7ca3b05ff9dd86211e51c95525c3916e0a32b14cdef032dc08a16f4846b49ed37572351d43e965f5c980ed4c3d5707df370f6598039675738ac7560882a8fbc73e7e7a36a61621e7816582d65bb7d0b9392337b7deb457b976eb1a778cb10ef32a059d464d215e7bfbba46b78f25dfc42c613723cad8a44aa341169a5519ae4863dce160c4453064c42db604a015459e158315f5d0df8f0200e28c5080c4d7fbeac0cefb1cb304ed424b40ce6da9950d57929d56ee9a3b34f28d95c9c2644c3cac2940ad8c0f356a4c292978aaee8f218c0f7360c63e98c76bff521732075d98b6821fa3fe9b319aab43afde27c3b666ab0d28a0d8bde98c49852bf7b0ebd2223ea5d8a4af9f6015d54b4eac9ec22c1bdd71a5ba8518d28a1276daa301afc55a1db9375b4fee88228b210ca9133aa9d013febdfc9f800f945c11e826203a167c76b0295dca61055ef24a045f548742037297962fb17c2dadc3c54ec54114de095991988b23139a349a801cf505b5880bd0ddade9a7e00a18909712af9b9c47006234026494b6362027c963bf292aa789684546eeb1855ad55d12042886d6e50be7615d3e05360ba6a9362cd423bc05680bcf7e95c3b15ef0442bb19f9a158eb744f42da7947f052d3e6a3d7ff8268b8b5dd31dd8800f7548b5a7cad94632373772a5efa52f1f51045a9ea03cb2f00306704a359bcf6b8dcb46914f6c5869653d151cdda067d5258289fcda4cdb685d16929ed6a4b11d9e6bf670b9dbcb645096be69b2832e93846637914209e5c72bd233d80dd3e1e51e116c5d5d1bf9dafe7ff564a8a4c3640afd9ea05f6c58abf5cbf75d81f9aef0a889d1609c3c3d88ff5c1b8278cc16ddfbd9abcb7eb0198a54288c6d43a3d0131debb441295ec7f55b7031d17b69e0659b15138785ef7f0ca7efb7d58fd038f80acd1d078a9453a146d80868909fd23a08f252877fed1dda86b04cffca3e2596b70e776b8ee6dcc549218e51d58b85fef9e63812d52a0c8dd7f6e24e911c59ba1274ae100f4776cc8381c6085e23be925295a076654a9892bb5e8de39db4426fe0dc4584a62ed56decaff86c6556c5dac18284e0dcef115187196d43cf560da77910f02adbf3ea21756a95a1d879008967538c4dab1bae6e21a0972c944d0072ad879466a316c1cfcb2e4b00554062b5e2eae17be8fec5eeca32a58a0497797189ad8b24b51ce4328e957c3e30f627df3e6bb0efb71cd4bd47df8de3e91f9893af5991f8437965355f99a71f7e62b80b40bf9c5994d7576fbf6b5270cbe2ac3a6246f116acbfe499a003d7f0da22c2f34c28ac7f9a96d3fc1c9760ca37dd08bcd7edae6a3229c912c5a899c8fcfddea3e08ed144c5cd3f4cf7fa92e5b2b5806870ce593fd137a64d75a41c40ad2d0705446e6a96f5239e77d4151d6dc5463328ec9e115e566e31264614bdb80fe9775341e0ab1c9aa037cd8be105736d471016f1ccbd353f043f316acc5c98119a0835b74f55882ddedaac2e53928b5fcc4d5c5b02879c245460ad2e9a74775bdd15702939a3f9417b436a4783de0bc45ea22701b832452780f4b52537b543eec4d57cdd37fea413d4f8b815df1a84746c71c1b5f57451fc560ddd61ee237b4c17148d507244dd60125ab1ea4c2042a08d45152d80cfb07b1bae13ee891c9593d2d81bce25f37afb20a4c7973fd37b746213f326e0d0e3f338d9293fa2073030653bd67a9d580ab4ed9a9f6ea2104324a612cefde7ad043a85af9fc6573a98f190eb1f7ebf081d62148a58cd2ddc11a769809704b7ec623ea6605c5ee9bb0e58f0dd5041639ef54e83bc331edc58297123d27fb2a0ff284a6c8278849a0a157305b7685160469d764072c1ba63f386e50c6789b17474f409d96356845c5aa05323c4e14f5aba6ba24b44dea3ea95ffa70e42b8c63b5024095f8cfef02be1252fc70065175a5cfc89bf3dcbf71061f9b6ca741d82c282fb0834c7b2a35fb208f99bd4566939616b21720edf5d72d7581ff194e341c424e797351b745399da47b1e7c73fbb2997b1cb2ae4ba7baf2f4026f1f932e3bfe47c13fa0fbff8fce766ed8303e21b7dc13dc98b8cf83a83b1b190c0591f0ec36d6f11179ba5f4f18a863883f89ceec1f4c2e8ba1cd5f253dc35067e36e948180e00fec9d0c00866af51567b66d54a5ddaedae87b0886965c9bb40a46191c439eba1cb2c79144124492df5b0fd99fa78fa1ab41c8b074a0907d4cb377ef4891d07509a056f7bde35d19464ff7a3092caeaf99374444bfd1284a5c5d9ee4f4ec6c3c5754ea4c4b921244599307e28a2c2ea5ce02bea799904c4fd12b75068dd10ee9324210903f2152c5ad3119a7f11a0fddc99de0d2a3568777720bf5c8db52ff113fd8b2a71db0f87dd99b4ba742a6738b759feefca62c26a5a4b7e9c7a0f37b1d6b9cb2060596c5447f60420a01572fb2f4d859382cf3e718be661164710d42bd90dcc771281baf425d64fde4406c048475abb278afb3282b8c4b28b454742ae03f38c8288dafc02d82cc0939c7ac2fa6472813b417bedd38dc421a121055cf96ec29f82501f94da51f3348ccc4450e091557b4f47b7aa58bba57ddb4a6b629410c92ba61a1e0ace90c487e7fcc228c7afdbb8a499bcd9782594dc7fe9bbdfe08d6e59eaf032111536c6543bc0766c37e42a8c98161000743709820220deab225a3bbd6f98bc8d678daf748cf7965631f6184a8a2b4a3b5e973ac6ffcf136d0205d4d9a2c61de7ff87e14ee573c5dc55f88399e789b26dd891aba57a679d5ab16a5e8075a6c28426842561b442088de5a889bf715d3a93ab95e242051f371f8921bbccbc1de637cd244948adbb931bc9959881811bb86a24e65b2855bbe99d004317f963d88d244597de72c76e95a4a29531a11c904f47b98182bf547c8583303fd7cd1d80738c3a5bfd23ed8f183440f89a68dbd19b1a471a8d25dbafbddc240a2e5e8a4493b8e5c9703e494da31ac0a355bdb480e75320258c5a5d07789d7e2307b8f0f4639336ec199fbd4e41da908d47ea32ec7223f583398530d6dc4ef73aa5840ae650c97782503de30aab5735999a108b41105d2b00d6dfdccb08dfe793b229fce4cb36853d3b6a331c98450f16a92c86510fc23d5a52fca9e4914f560194dd81127d3f7cb6bb4d2db312c48886c77f112306a53aeffe6eee9f01a6420b50cb091cb893acdbd704214b9e64cd536b905e6067dda1d4d9f7a735e1dc89a9ff1ae093ec6a73d2be80f18b577229f06fb87a81d861cb1312a8ce567c26ae02036d7d3ceb5c50b7584c5db5bee79a6ef2593c7479bc4b4c2a7cae004db6756d2310a29440c16ec7ae2a08fb53c911307fd5f13dfe290ed7a7030271d489cb981866441fba4a916a7da56ed7914b65b6d35b85ecde1cfa6d39ef3ee6d1dc5d80ae3c2075d95bdb200a7fd151c202c3c55c59f44ddf5e42c3206e5696fadfaf5f9e950b4d8a7f6812f2fd80e49e47d32530c67ff4511abd555811089c2683b5bdf5614f8143694287b2093fe6d8ee198b81776460bebaa51008bc67348148ec1fde4ad4998c8ae7ff3150b83162f6ac38db8a10bd91136dddc684d88254a1300c0213b9e792f6a3a44051dafa1b10b086228a560af080f9ead66e98cbd0416b185123015e2d1706fc236a27402627db0cfa265b6439814b2a720b5eca822b4ef5b85d2be340cfb8b0f7f383976f1c1eaf30e5b46311d822942b7b1b5476039749106f67c081da75be05522c3602174f5a94bdfbc500b802def93eb194549194557e8532280d571c2f4fc0c8508cb871ef060497ba0456fc7e4b9045e2921b85816bcda49f9c17591a1b5ffd89b68d377a968fcfe58917b8d43591fe3c544691e89eaceb24006f2cef5098b36c506b0e08176b805973858ab4d31ebbe1856d65578016d8aad123f173e0d9b16c355da329809524920bda2fa66adbce1a9c49c98dfac6ea132323f83deae68e67b4e032065e5568d20924e93e6013b0287e94786d8eab786a813acc9fb32cfe34becbce26de053a277cf0f176ba8546199abda0cca9592b046ffa3187822eb88d8f4b844528f42f3de7127a4f5d802128cd8008537192cae3d9c2ab12f2cba235c6257ec6213d2789d047b345dc11163a37db23f8130020f3b64a7a7bb1370b305dc287b35b62689f16d131c090fe37395aea58fb0a481f1ed0a4daaaf2f94df8b2fd1cfa4f0249b75d323696d9043771675efb66e711c647249268cdcc1cc265b29d19670497823abe3d148617764fb84cfe25bc4b86e629c3e9f9307aa0122f288b1987608110c8826c4c23716881f3fc1a0683a827034981eaadb77d3e3151d2ef5d7a6952164d1edcd512035aa06281006314cb7731933ba9be801e275d5260101354502dc4d5f39c5024add0e876a097b9d350d6347c284b60c51ea8c30aba6646b2259196b7d654a333095648f57f00238b0e799bbf2d5352abaacf6552c9244ad20cbc20a17ba5d716b9873c82c1fcfec61a6434733b477a676823a49b219ce030b95c4e7a007e69fee55d683b7a58a33d900c0c99c33e927f1c808ce51f0cebbb5183c3953b7ab2431e25f5739ce861f640ca94f984f304ccbea6386d10df8f6c8499e64e1829438c6f6e95c9d25f292c6c38e4583245f99c5e47656a10105344ac9809174042d13f71f3c5d94f337217659222c18d6253f6d7516e1d79d889fd3b6fcaac8b1d9f907565e7bfbb328d477b3de45f883a5b0d8302413ca07aee105d9284915ce0bce06f63edc9d60afa25fbb2b2d708044659984a9c42db48c160a76ceb9a35a805645594a37af80aa7c7dc58ca09dba40b0daa70f2c169b6cb3039941920a7f2a8fbd69be0726cfe1d68ed15e8bd5d9cb38aba82abc9736c3fba1728bc34188035d08de095c04dc6c9be2853052825d9e7856cf0e0fb79217658c4c88caa5c44d0d7906bfc4fc8180fbe91844ab025d5708a4bd83db51e6e9806242f00703d2d15ec9e4751860cf677bce92232fbe8d971366e1a5abf5abe71580378261efb3b5a158d88bf615c3d7d8cc15f1fb1e9bc3f2c24a833d108b15ab24de299eb8b3d3d953d5e264fe41264480f50ed67b5b24bc7340288166bc999694d346bfee7f5b50f83b09e58404ee29460ae89e21f0d3666b2104062f450405106630d3caf98f0aa0f3b89a36b9616b1666d477e3def66eab4e0294ecee7fb3978bd916f4fb9c67a18fbdab14c40eea4ef078991cb47fd6a432f2ba3647663daee1343c11b19837c89503bc45aeb71088fa32534d5a44c22550eafd8694086828b0ee4d5d3a45c007eb35cc3f23141c5aa3b40b49d989cc42b73f3a4ba832937021b4b013be0de47251f6820a4058e3043e1cd559d06cd3e2304eb6072272d5cc248efd9eec5efde0146d04a765490f7c19c2f40ac066dbd74a13831c46a8e72d9488a8867ca4997ea3ed9de80b87c22935e84bbd3df242ea2bc1fd0c91afe38c4ae4157e141ba27eb1dbdf822ee8835b5272d807cabf8d2bd0625383c428eef21d4df7497b523c61620eae6adb6e14ccacbd9e49d93a940bb062bbce0c50a83804a28d46c0a4c9faa2314de058d880ced5cd1eae3a45822615885ccf82a582a0901a12b99e9988fc9b4ed5547497372da86289df7acc43f92b920ec88d6d5f48ae481e0ce369bc0516ef1d88f78b33a5812d482f80befdec3b198a64aca8574ae63a0f2a6cf6c258c5f8d7c2b868b021e79b5df89bd1a4af07871caa12f78532285e29c983b4273f6ee9ebde6f51711af120615e5087c6c79be78954f123a88b1d18aaa112fd4aac634b183763cafa95f37e21e100d49717c454540e04dab7bd40136db1017fcd6787ca052cdad2b108078a052112acd77113bb50c0a33d5fe696514b3da1b07cf52a85e6f72b6d1f34a579449c8c7694ff9e0ce63c1083e0a91ecb7d242956a18125effb3594c32017e1c16727d1de0d51030e2e6fe1705a893eaf709fe9896c4e0cfe6cced6c50b91de4210ee65b2b36516216a7c4fa9083dc3a57beffeb8c55ef3294ce05a1f1cdfc9be4d5e41ce811513322e59c8469223361d06a28969450c6eea902a6b8d752f16b581907c2cbf9ba9d78e602acb28be6c87c8243383c567524881fc7282b724d5ae0e34694f328722f496b18a320b6ae12b0245869e962c06c7716b118cc63c576748b4e3706145b61e4841ad32e3a3c71cc0b8d87b10c2e939197bb839aae49f947b04357863e3d2d8024ff678af4d58b8646890d8a082b85838cb59786cafc38c49b4dca417b1c3cc1e962c013df8463c5cd0ab0aed922fbf6f94a2ff70fec113dc9311a00047f88a5acaa628ef68548f59e88ea86ad0136c4ac42f24b87ae55317b19b6c7a7e4c96bba88b8d378e166d79db16c8c81b2b372922ba9f563702e2e8d2004044ad520b49c604fcfafb0cf9b6094006996c26b132ffb7f2b788696ce4eb51af18cd649f23bba484ff5ef888ae929dc8a1a399407ad8b082a99b82c47662bc81717a7396703246acc53765cf927cb7027b3512012cc98257947ea986f5768dbb0ede6880648ccd83539e458ebdac395d1e62c6674062f919968843d957048101528e0242febd1b113a446999d5f43760b374441b34083bc11be544b6e5023f875adb9aaa64deb98eac4963d4edb819dd8a0c07b9888ddda59afb066e36daac552562d55cb783c7232b9b70b7921cd1f04bcbc122eda7cb57a7f0bf679ffaa24565dc9a0837e72e9d0b4f453b4e7a84e90662fa908c8cda624dc13a0b5daf84ed25bf5f11ae8b9dbf7cfbf4dd83405b6a30535d18860b6e82852d993b6f27698c0810579a688a91c62a92771b6295bad71b970e4429024780df2feac15c85bdb8acbceaf3d766d183a17101fea325e8f4f57de691376ad0a75bde031aeea960a3e6b756b88485c896b45f317ca4f04ef003de91f6c743326d1975fdc658c3f9da9e8ddcc35d1a8bd6d7dc996667f560ee854fe6193951c173639d4027fc50231e994a604baa8e6f0afff0ee23a51462ca68d318a507a2d77a168a80a4eb986d941c7ce6b7b52e4937f53f5aac21a888485c606f9a73e5ae6ad353b9147d2e4039005931fb680c58b9bd0efcd87555f067113521695d7a41c8788ac56a53af03d9daad8c98fcd9961601cd8efba1e627cd79453285cf852e3c3025b7a29811069bc7a22b392f7a9ac37a7be0b271f091ba851ac49a1c098732711b5c1267678495b0fadd7607c3b6f5839294a8df58fcff75a51d19d4ec9bc884d23f555aeef773557cd0488c17ddacc7cc0927a39070adf6351dfd2b2990a0081e0cf109fcb37df8f2f0658a4defa97b86aa07b2113401db01388932febe5ee9331283d3846da23857ab7623041ee977f6681230a249adbf8e728809f7b54047a0cfec28a5064804cf69c95a8178cafad55871a735e3764b5add681007a63e2a4a898f51421150d36bb37cb816de343f8c1eb7f001805ea3d38caa8866dc93b8b6434c8c31dfa5f536590e9a7622fa9de6dc2c8036ac86eb6cbcc07580f40048ae3131860e98e09c3ec7a6346ea87a68bdb29cbc03f4a9199a88a5fba827f4c07a2a2f8092c485a8596c5ab45733e95d7350c7c66d371828fd638fe32ffecc8b3f12bc84006b6cf00448072f990a7a5a0eea5dcf2206ff43e6ff6fd86014dce7e80844ccc6c9be8c16767292738e5aa4dc801b2043983630c4eb36e9b6856c78d2c9a2f0a9de611dc1b3c4ce19689898bef5da1fc13cb15ad4934fcdd4199c7266c4fc9d833fa214d83e5fb8906c75cfae85f1679a815d34dbe206d4ba0b8bc8fde96eb3855250d87fc0d78b40c23880cee200aeb558ac870308da170a3880b960d27d03b82ac666e9e1b57f186ae96cb4031bebd68b055e1c6aa19128a3214119c97a3e555477991845e4c4c4c0c38dec262100fd043034965d265c010dc295c1be2c450a56f2c2dd95641911ffe4157701067d83749478e46b2aaef725b9079cac774ec72c7fab978da6923a133ce771412d0c3d8651c9afa401fa6062824c95c9f5722a1aa12b80c241201c9f570c44769d82e3c3f7e5a22dd24d8f01cc55659252dd1ec08987779927514f84febebe99bc6179448ebf8952a649d512a7940a8c38d06340351b01e9d66173ec4b29eda3ab8a2bfd6ff74ec068a1196667b80fc64869c250bfeb3c427601a3ee7a25f6d5793d0698deabcc19d759803f842129ae0a0902799961c4cb3d892241001701014bb19c9dd18cb887f8d1892ffa4fb4c9f0f9c00657f573ff87f63cdcc7f1f837a8e0e7651bc5579587443c40f2357340e24a7e86a1f5e7e5199493ab2ea4084929768aa8cbf38fcbac92bc879e1e3a921ed77313fa12190b76af7254667a46e485fac25b0a5a2b4810800fe945f3276901430e9742257f2397953498aa1ab992e5a0eb1b9f42a161747491b163b452c4c87c64f77dca39c060261b80034458a703a9fb39d85fcbf754aa76a10f96b7c6f96cc287a31d5325ca884d2812a902d38d7388ae396ada0278284a80b07ca65004b7aa33770d0651eef0a2c304171cf4cbf7fb46f73db63921f81c3f30fdb6ab9080d47fc3bef8546a0eab4b8c44641f81839e1b81656e090a3b5c0eb96e867a026ac7623ef57932099980dec402e885feba239dfed4419b1ffe99cba840e3840846d3dc28736a815d6bb12e53378e19f9a21d2c89f51b5a362438047e0d5bca0a973f5e92dd115d0247f7f82aa604bf1b332619213024ff2b27277a8e4c9dba385c7b0d2cc5a358e172a76fd6cd6e9871f47e86ff411982c277e1b3331955f5f99feebc66d3a3fb5e083cd8e002d733def05f6b4d92cb23bfee013fd463f1a502c538d927e7e27c408133061126e461f65c9384cf472d38d90c883e41da473c663ed6607706ca410b9b91a44d704651e1b2571fe7088806fb7a39e5f26a6f3a48d468844f1eb8aca03c7a3af6843b752f385b17837fc2e708365480f6280f32728a3e50fd7bd302067f6a133f3945d2022be58fbf28d24bd38679de0d9e63517e69c4c18568b1e58fb4ea6614585f58e42ff39e2f0d2c8963f39d2bd0e415897f7d99e1da03e2a328c6900ca02aa6a76f72f1906fda068a07db1cece80bc96a99d1c2dd8cf83ecd00943922febe8b2964357ebcab94e2fbee743a332349db04f6b5db39405d3628f5b1636ad7045d756e01a9d96c5042111f2505a4ec74bf432bef2ed8107a6e9fcc7dc9aeb6d6fb4eca47b7f36589eafcfa134db31b510ffbd594d07643acac4c6f01cef7a39ffa6b46b2d74401f9eb380d09e82107a465682ec8c7c2294ac04681839b1f8f2e00ae17ad4da3d634e442cfa0c474f30c9c7a800e260fbb18433fab240e5bb370ca477d7059b1e3ed11dd32cb9c4aa54350fa11e1c30dfb4c855e33458404718ac48f98b37255ea669576529069b94815b53f9d778ff040bfc15832bf835cbbfbc6093f95c0bb40a0325cb08c11f810126ba3ffcef30fe236da566969615e14ad844f13ccadebfca2ce30ab35cebb64fa487a1500d3aa64d56bdc2c485dcb3158a9b515565537a2842154b481f6ad5d7726618c6eea6372dea6a8d6ef814fbc7a80b58849d0ad0ee57a6fd46963fefdafda80feab85b3c0f69811f27d961949ae3136a704592199efbea691fd80bb5b9c7011134f4f22db1d9f69d0e10d41611d9f516f2ae9a5fe54805768037edde2910c5f714bd25ef030eec551fd3aeb11bd59ab6fdf2b4c5c4177c71627bab1f9fc023b42b38043a51996f3783e49408c7e8368fbf88c3a94a3a651a70f092055350ee437217c9957d7154a2aeae1d614a6238965a2b4769725dce31469f8e9de1da0f4c1a910bfa430186fb0c11e3cd353b33fa67281e4f7dfc19af9b365ebe7d5ce6255f37ccf888f70be40f5e032225d6d1ca5cb653a3221bb5ad0c7fd477a8e7f333b23828edc8bbb7fedc54cedb817478446f4392f089686262f766d92d369b3a1417f533d226bc2703593b7ce963d202532b67a0e78f4634550dc9f5c0e6bcd018c4e20c7fb78c86b3ed6cfaffbc0f08edf3b637fb99cc317ce6d2ba9165707aacaaea2b0b96b33b25141f223626d41980f593d02e432f3cdcbe2b78d87cf3402cbb526ce7475a905e4bbde3216ba27cad60cf5b9bd9de65bea062da95432111281fd7501b965cda095bda87fa8bbea77be01b2d3d50bcc0c723e63580e802b6542f57281f72dd89c00e0cfe95548cd497570a3040cbc5ccf45a4bb0d05e127a4f8e8e6f18a3de05a6966f642f7218af6aba2345d3809c9802f3263603d7d56d6036ea8095fed4e904b9cb0644511f005020c24c4a3bf1c581192bfc6c28e963b8482d7210332a8582f62cb9b500d3657cc76f81b23526cc541e85bcd8884ed46cf02ad8bbadb678420ca4d4407ab041f429d59595f534bc46585591f56c701f53e2511c48f55cedf69624b81cfb3e00b88a5d40b8b9ea766c034f239b5d73e89c860dc3c75728ac4cc4946ef2eab5b21a426ec943aa97c30956d4a3a3aded7b0277e049317174d9ae6a8006fb854ff27c2dd5f49074d691da43942006d7df646b2c41a49570e9b8acee65b746c6b95740f694e1e2b57c905184c07807f1611ee6d0f349322d45a20620a6c4227099284da8876cb2200d464c2203257a8310eb2a537193f5fcf791038e8835c02ae04ac62a87143cb6d4e09889aa2b1492db6662c8d08584d7d3696e882887667a2a7ef7b9acacbd5223815d164165637f0dfc6797db2878451aac009672feb1d56408b12666d352344271c0e48ebbd7755ec4e8558ebe38b5b751d5e26126fb2c08ea65b187bbc1b20689b910334095be4e630e9e772f26eac3ac5a14a5711ddb6c922698e6799e1232c838b34f010c0b7eb22ba822023199f9cdbf83e652985249046def5a4fa1ef3067412cfc32fce2574d2f45c3edf44ca62900a9c0d2327b24aa8fbfdd8d0e29f8bcebf1013db07adc38c6d2c04e1a843229756fbaa5782fa7df037f6c39f602afb49e98ccf45526155694036eb3a46827a42624bf57bc648aceed05c6c7ffb2244fb589e5f240d0f5084cc02bcc08725e84c3d84d971ed471f5f003df1e66c95974517abf68f03fa0823f42ce4acbb6c8e6acee2d88c91906bb114bd249c0953e41a0e4ae4dbada8d985bb5417feb71b04ef04b14c37e390e1f9aa80586d2a6f1220ff89fead63ae5ffc4f7ea473e5732fd740e570cdb3c35114a8ab92c4ed99866ce02300d0aaa7dae5d6f0297b6b16fc73fbd7b06de22d8ed18350b796707477764807bf400662c1e7b29c8dbf38190f1f8fb9dcf8602774aae0d0fc8ec4341a7d1dd27801fdfcaac3b2548b125cd6ed48357c3dfc409c3ae9d5bddc2952ee73a59e774095ab205635e996766b28469b7135f9371888594149b6fe7e0200304acd79af63661058ae39b3879305fe2ed1d44615b72330cbaf0017864007438a484c6228ee897c266aeaafa0849fdb0fbf8aa8b2bf13f0e5b7b52efe054f3a79b14b4532d04f402391645976e3af77c474264f2284f3d29cb1699c3e17175c494264ad52dca4810ec48bb1a52f9056039c589231597aacaa238616cec6dfc0dbee3c13fa72056fa6a83fc4035c3ed3cfa23736b14c6a9c4ccadc2663fda289773abc71509ec4a07ebcf092463f75d4e8c84c00f1827a06c7c4a1d7ddf81b0e2c3427aa820b5645eb1a3c050bc85be87a3b7a5a4e202e31264a6762f58f3bcb5296c1824c2e4bcde57beacb79ce02f157323a9b18ae1f0375b33aff1ddb9ec24c509ff1b3049a2dc070a5b6dc482a7cece0e0905a0f8cec48eadab2da777f9e51ed7a80f0078bbe6d4ce539cb98e4c98ac908b7d2611305b1f24ffa02db012c21030a14ca6757309a59a5036d55f465713544339018d286da5a35a14031dc64cac4e3678fbc29cad4612670c74d68f827176c98d1c60fe134ca71d505bc22a79902db85a6d4b2e61c7a8ef05e32c5999aef1f9290bde5de724b29534a29550675066d061243a243fe7b191546c86fdb79f1fc623b92c349ed53845467f9f12d6b87adf2bd6ee6226fbbe8a28b4c722b51c11efe43bdd38c7b10d750288047515787ef5c2795e33be7f11ef791f9ae87888afc74e33b472560797a60767bb75175779781ea7290d0009e06e7006099a7ee6e50dd8e7b51a5329b26d8d3d4ad93b5515b03361cb600fd4f47eab075923260eb6829c7d6957e015bf73836056c1d4c0d7293107fe997325b27a969eb682966eb4a9fc3d6fd8dade312b0714a2260eb24c561eb680966eb4aff1c67639335b64e525a22c0d695feb9ede4a6ce893d30309c00b68e7b97adfb5200b6ae44b74ddba4a4b4540240ece9cd5155ca4dee13ff4b259494b4a3302a958aab3e97d63d54bd7e3a40639a87e3269b262aff62e59bc810eea2c278d2f73f15b07cff1b6217c052f4508b831639e0573495a75aac335a40559ef430606c32db612b0c8da568b04fd501da2e0e9d13bd50195a158d0463dbe6bac2d0766db068551ca0f32c90b8ae3ce01da0adbfbc50d9761eb0fdacaa11e9491b7580b6340f85734d1a0d054fd304c39ef4d94f98d5641886651ad7114d9571d39392d252e99f13e2a62725a52f68895ed00b8252525a2afd431c8803a5a4b454fa17823ff1d4406e8a3dfed27fca9192d252e99f038a443efd30301cf75f2a511a895052d252e99fe3a417e87ef653477a4ef7826af30baa843a8553bb7162a788eab6c31f48d4eff47af854b7618fd71889baae26bd40316cebf8e287f12dcd9fbb1b5b6de53b34ef34db9187a269d2c9997e5102b3733310f9de4cbfffe126ebdff7fb0e624d9dea21ea6b16c8a0be9fcd02fae954e59daafe0b5f403b38f4a278410fe82b7c3edbe3cfeff93c28fc405040e143e5bfc29422b086091d1f1ca22b8888ae18225a02113694055036044474c50b0287e80a22222222ec8a2088e610290aed26d0501640d910904f16239b26598c6c9a8c414a4a4a8a7d3af02d299cf1c14bc2fc5829f54635bd8a31c61819e603fbd21f04171b06981f3e85768c2325a5a5120ee3cce95395616ffc572eddf2e998673e72dfba22b1c2bf7e5e5aa93912136634f7465b2703b375ff6405d3316c038970bdc1369c77ff8cddebe2ea75c9d4197f69d93143ec4bff1319256affa0f6575bc721511bfaf8d63da396403be6b8b959876f186f3ba49fe98d56eb89b92e1d0d9ebdc1a7129215d026e1bdd8d74d2e5e7c8182e0e5a48176955025f4729e30b978392b3f6ba369d792f3535b722aa1975309adfcd0e019c35c976ec6890ad5f8d736e7d6057939961228d70b7b5c2d574b866509d50e0b4246838182a002aa30eb82768f876771ecb02acbefb02064e58de6c423d08e8527a7b2f0d49e719a03679cb820f9d44992103e33ff8c43083720fcf127cf6d174710271a92409dacf3b1e63abe673b46db5abca80d38b8e622f954ef2d50e84395f7a5d6f910fbd08e51650bee587245edb80e2d0efe09adaa8808d7b8f1e4d883f95e7c328bd10241055465a5bdaf5ec24aab191794bed74b90e03b949191524acf766dbcf8b62e48900a254039fe03f2deff3d7902e8c9134b9aa5c6577da780ca1d0e95abaaaaaacaa792a0cab79930be8618a5d75fd2faa5066dfba543523bf8cc5d2b7cad48ae3e29e3c59a4a2f633c52af7f6f7ff6890270e0569ef4d9cf1519f559f56de9bdfa95ada301a38618a52dc6b6fb4249dbee68cbb68ec2d8765fb0ad2bcdf8a50d3982a4b39aca48d73e9d43f4c33a403bc44855bb231592ca526e5ba3fac707494fa0fc106e2a7dd5e087dcdd3af956c99252fa5bb22aa1005a2fd774bd6b7c69b0242ddf9791ab4d0681a1ddc391e17b64460173b31340bb1db6bbbbefbdddddddb7bbfb767777dfee0a26c7f8348ac0cabdd4dcab016fc01c2e0e2df9d5d6edc70dfa434bdbdddddddd47853c83e68417ab574508abf736ed89e8eede15f17d5ba76176149c284abaa7ee132aa4d411946a9152ed675987545da4e154f99130139982c514502c4187e8fb4e3e9982496de97066cf1f472352a70df1edfd5e1b66b4c0b28172041a62fed5b3a53dcd7a7f656f699df5d60664b31df29fd6510babcfc2b6ee3debafea1fff4c3fa9011902447dbf3502e95f2443bcbeaf5a78f05bcf6ffddc29b1b701d95fab5fc6877193924753da591f2dadebb7fe699ddcb7e0f4edeae72058ed5fdf80ecaf4ba07f3720fdef8314a91dc46bffb6f4f852ed9671660c841004e9c4118ae0d31349ce0ebd608730205fe0e3d301391880105145448a82340529880474baa188d4858aa822aab42075218612345034506ba39f245411555ac45082062a8612d51495944aa80a6a4e9e68a0e4a90ab41a1a40903cd5a1ca3f0021e8c40e956b3350d0161eacb5f0e856487392b522cd3d608b0a2bd231469aeb223c3cf7b7d6f74f1edcc4346f2de0a3b927a4631e0f441e0f6ea2401488ce3c600759bd94cccc2ce304164075a7d475a20b51d42d40509241523dab71f6a73726c4b4b8b540ec46c7f8ef463bc6b3f713ca20a59ad5c47f91374cfe5022cf9999f96930eca66bdb6edafd6813ae0303c305edd6e72423e10f7f6918e8c38d1f43bc3e3310e6868ce49e792f7e67474a5cd01cd024b5e3c6c1c9019f5cc70a6eb92d68dc30a63ef88b734dd0ea2b1ff1b9a8519da4f6d7f897d5f830e5f58cea9822cc4ab8c648c64c9ac3aaa931166c2496eaa5758b45275365622db28a2c2bfbce8e94689ac4f81149e58249ed642a142e96d4fe1c3bf416948b9a6b2b096554cc69910f7f5949e5a2feceaa2fc2556e35fca98c47acd5c63acdb1119cd31c168c42092d39826e37cea524c6c75ff6062d6e987243d10d4431744840a49faeba48f2f186d25cd34841ed0154c12b281820b536fa699c483e2428061840152a93dafe4e7848a9e67cab827c682767d42137dc509946e54d9ae48e192403a40050792301ad8d7e121528a92787a2daa49e98938553b99f07d6f951fb7ae9a6d15f5b27a4361046d40602a7363f090ab485473f44f2a3a439232d3a80688eb5e526a8649aa9c991c63aced5258168ce878fcb4773fcde49a2aaa84aaddb2995218e0fd9b0030478a00cdf89d84d19f6f0bb07b7b79dd1efa8376ee1d1fffe6d1d92ba6f5d326db1d704ed5c747875698e69b0214954f97d14557e9475aadcf112f5e980762e2e5028fb0671704099ab857311c1bffdf3ce407dcbf19f3fa7b60313b485474b8f67a4391ef15fdcd8864fdcfd392ffbaebea174ccf51610d606049f3aa63fd3b8a77f63b9419fe6582aa6756c44eddf0d9292d252e99fe364d0fcc95327cf7356339bb79dd1f7683bc242d3c4b7961eaff2f3e0f7f7ada507732d3cbc02d9602a9233d0f05c41db470f3e74a0b5a8d130966f527c34d7ff6e403b59bba5a4b49bc3fa6a327f7fdfd2968a549551f7c915746a0b8f6ef4d923a973347af9a397d55499b663ebc4b4f7b3b3d13684bbc87a5ad9efd83a84d150e15b50eb1a3ddb2eb7bab2f5985639d3312f2cd3ba1d5b8104f96c0341f5f2615623ffca6ab21dbe636e96d679c53422bc36ac2ff2a40664be7c9cca95ab4f13a7b9b5f4a85ebe7c99d5c8979db13684bb42247562dc45dd8ee98e0451e763a73a6be6d682d5e918a6453804d208e50f7c800ecbb85a3221948232604da59551c0c6441528a10b5968d90dc0fe0cc79781f173b4fca8cd68b2932971dc649a8332143e81ca2742a7c68f9895798b7b57f839822a34cdd069e2a7c25f185421f33461059c3a46e0a2768b45851112a153e1cfe818e6d1336255b683089d2aff3defa099d12ff0657cae712b310165b0cd5ab96feb20b37c9b6b5c5bfbcadac3e62531b826999571d3cbc8b48ccb442babd9afaaea754c5724d678ca8a98eb72e3b98c22108949fae8fee29beb25bbb3662430aac3cacff48b8a0a5451791ee201ed96a88d740c57089f4fb312d2317047914d08103546ae6d0877b113d2d213618c5344582b022bd560b41b6e92465a4079083ad1dddd1106f4cdc743cb5e5813fcc91d8fa142ce6a6457978c324a50ff0ee6c626b33ba29bc63cbc84cfab6ce2217f813fd43dd403993407799a8359cd0c16d01835db78331e312ab3956a2eead0f744ded4b6d8032cf8d497a3be1b352a99f2976540dd1ceadae8321800a85b5700f071ca4db4340461a00ccc908c938aa0ddfaec00819e7982052615c26e7de06b530d0f9feab0f25d8d0a596a4739e52f30a864290da5188b1ddac90a79465d43192ac0019b103c20c84df7011b0ffcb8e9808d8e9b0cd8e8704335b00d9858b6cb9c845906d37e820525a5c5b1cdf9146633f36320ccf9a3964a5a08e664ac6b34b72bb9653cc847737bc3734c517b68cedf3799b5b17fa3b9fdf9de689bdbad85b7ce657332bc5ca2fd86765409dad59037f266c6be6d06bbc89bf7de7bbd41863f0fe8699543c855b51da9806405c44c3cca522bd2351a7de7bc7515a6c9f993b5eba7d661b55a4ffa796535a4b72ed2c57d759208cdb0c95c6986691691ec871c3955d2685e181fe055ce7454ff9c216421753cc2b3240e2a1a699431c61c55b617392adcffad4ba42e3ae07b3f7eb0bbceb404fa2110f8fed3b5f750e38a24b2cb6007ef63697da569506a2e7533090800facb74f43f6cff75b0ae4bd5f1361f5020fc7d84b92e260ccb1607bf0db409ed64ff252b95b037a752d217d0ae54e1ec0a67744c7c0861dab434fc97c339e79c8fa4b6d6c98e6b7fd4e45b3fd39786a45a5a11afd2ab929bb06d3d5b1bfceb93054f3127c93ac23ac23ac23ae208eb08668b073caaa00c9b246a5d9606493f532a533495226d25094ee7f0b29ac8fc33bebb1b108e186fb367d767d75b4c68579a3f2f0c66d797b2ebdf7bbd445e8d1895d9f5160f6827ab915c1badb1a5790e89eb443d0de95794b4899443d2a6b3af8f3a24753e6c566fa77aefcdafe64c5bbb92a45f9a6a2b3a9d43c5f55a41ad2459416d2b39b0c22e6deb94d8a5edb8ea6372a55a7274a6a64ad194e65ae508ba92bd6d05d59ca53d6cc4cd1a304b9b35d376a8bfd0185649d62903ab6aa65d9ab53622a9b45559cd4a121c54732b42ace4aca05684a89da36445a7639674cc5c116271ecab5aa5684663130098e49a693ba3a7da760edd8ace935694740efda4c792edb8ea7b1ed06ea674cca86f9ba9b5414ae9e011d7a9a292d5ac2869aeab6a7eb5a2adbcc86a548a666a25a7a7633a95a254c738139e8e71a252b482f25ec1b1766515e1bb46de3c63543d566d982104ad9e508970ad7271545f6dbbc283758c33cc69498104b7bb3f7777f757e17bfe0484f0c518e10f845b70181dfa131072852f46f803e1161c4687d7131076852f46f803e1161c4687d39fb6433af94b5f4f3ad9b4e9da18cb628c1ee17bf1c117dd428242ecaa50db990f637c2938ab39216b568df0b1266b8cf0d2301ad66285afd221824e9c2237cda253913f6f5e32583bd68ea5036b47858896da6355c17abd0ec986847a7f04259d2a924d8cd547d249250b952ca28caf92c5e2d07193f55267e6f84b431956d06ee254515bcb92b2c2a2c6d76561cfe3cefcab5ad239a43a87fe392712aa54a5d3dc696db416683771743a66e6748c928ee9829c16c7be7865d0ab6b3bf32fed593b34c3b29a9d595ddb91300ccb6ae457d39999979997d9330ab8f5a49307554bfaa52b9d2a5037f5943fdad2442d56d658c32c1dd0681d412f1e17f297ae74e08ef55756035ddb8a33714827eb4927998d82d606cec439e1543ab565d4aca8c90ab5a8551562178c95b4ae3952a1b182c7f282b2ac3c76081f84706343f81c42f8b4af969451728e4b88313290eacf0fb6fb046e628c51db40d360e2808f25080b6cf717fbd2cfb22618ff018358dc5d7ef8940013638e165744f1824d94212d28acfb244a154b44c942e9791428ac285254ff1a318a938ad57d122565053460484c8cc9c40257b2722b9468019635c10a24b6b0a206562491c28514211c4809ba8214285286809d41ca0e32202946645a54d14596aa420c555c5185501558802ef877e16a6c5605c5c640ab29198a4a2d82e88cb2845a53c8ba402b285ad017490461810413a814f483a09913f439cea38cba4fb890441557d4ee61a6c0c048e3402c143fd0994273043671054d14ea2982e6085c810e688272c00529d01c814d6a4003b7ed1cba1a35bebf5c007ef530b6c82dc2afb6f847600b6620b1a8519fe151a3168040487f692666e08324688e3c19d0c04742c3750eef8604e484348518637cf04dc1ddbd0a7232853734837c2c4931d159c6899193ecd08f1e7cd87a7a7a1cfae85a5a5887534cf8596a6735ec3385763b543be9c3ddb7faad5a7a78e5f7ca5bd752a365e6875781381428b4c78f9921fcb7bc5b27a4c2f7409e0ca834bd6acad04241841f6c7eb001922c1d763161bdb52ccb62a9b2921850fc615fa41109e368188276371039711245143e04ed4829274ea2804778f0adef3a4b63e917ffc8d5daaddae4168128bfb763bd6747309a26f1378b007f7f7d4e0433d06e7d6458b62ec2b4f0e0870ff93dacdd87b6a14a3e972a35226fc91254747ecfb5b74e622c3d6306427797c73d33d0d669ae972839a9fd4c6a3f8988762e54ea4a3a39b563d4cf9225a82724a32067250129a5945525bfaa2ab949806231c66dd140dd8dd4382957bfb6a7c097aa45594c7356db53e0a38fe1952e6bebfce90fe5cadd2f3e562565a9aac6a28c2852ff68eebd2a3a7c32db8f97a3b9ae20849121841042dfc14d4cb31109047868ae77f8d1313bb8944e6572ccc058354c841042082174777f10be3b7c2ea9e5853731eb6577e5d5b7ce7af9130a6d77aff8f2ea7a5cc5ba1952fe6b49bd2dead2438d590f1a40d4186196145130330b99db1614ac232c292c28584838e9dfddddd588ecf0bae362690e6b5e42f2acc6b97a8e4e8aa7c7e7476888a8c84f289c144f8fcf0f5011ed53a9518fc3e5c0e8f4481ffa5302fa204ea86e0e57a2124896e897b8e764d6870ae93942550b752ad21041a29ed7c327e7d3fe448b0ada511ae6a571928d07b9142251fe5651f72d2868ffdca6d4aa7f5aacf0e7cb6aae4a83546ad990d7eadab6b9cbba42ed2a7095d8675aacb61d0c3edcac8650e6ba2c9be4fbe83b05e0f0625d73946db0d3eafe0ac92d7ef7d5d67df1b75ebc191bd4c9c71df66b6283ad7468b7419117eea2f6002dabdd4502dd95510445c2286ed94dc7be65f8322ee3bbd5c3aa92d52665a88ff84de4c34d0c68a209dd64400324c25d8b1a7d74b7436f9bd07961c338d264d8d0dd766dc4e7ba839234d677b28b1b1de323a81464f580fae86132843b162603aefba6e5e4ed7beb84f2c397f139ae7bd7a044051554b04cc176df7b6fb5774518fdbdf73c4208df7b0f46187ddfdb7dd25441c86b2342685141f99f7c113e089f4708e183f041f82cf8de8bef3d7e0fc6a5fb9a23023e081f363bc3208410c25147c9b604450f0519c29761a3f78f8328431a9ecdb3b171b77936cfc6e6c517f4e8d10386156398026fe0cd0df30dbc813737553442071d74a82188aa9252884a08ee2da6c01b7873c37c036fe0d02823c58a79f6055e3f5836e03f5924e1b35015919b4ac229902b2237d512951095909b8ac84d25e4a622725309b9a988dc643096c016e6649d79f63298c5acc26466cd9c2bc349e9cc2b9bd74f1351fe99661e9802c24811db9c4e9c8451368cc2b2cc9da8f24128c8cc7e0c8d3212fb30cf3e03814d30c53cd0c90b8456c6435628b31e5edf3647309591b217990af3c022200a024115ac09e6e4d4b650168a6871bc6f0b65a172a012394516c9220b50fa2253f1416a5f1af2002651fb3d571bf3a4813e76c23c10e0d9e145a6c248b01ca6fca553cd19815e281915951596aec17137606056565860f08c52c9e5593096ac6627caa2ac862130cf26b12659545484da30055315a0982c9ad2a6b8c124280b85b292b4093281291698a2589601d5b0037feeaf17e5db49e0f77c4d371cd048c0123c1198ee18b00e100fbc80aefc3c58e0a67292364d9f1e3688c8a788da6d511549b0d0627105ed38479624eb0861ae4bb7444f3091839394b3fddf859f871eda649d6aa42a338f1215e268618ada6d149569ba1c95bda5bf0c519f01cc5766b2d22ac9e86f616fad859f2b6fb409f4ab4b13d07e560114eea6507870d7d18cb86902fbe25f05d7eabb0dff289adbca525e9f2adc24a988fac80bd4ad2150ff36491a7f951473062f4a7058d092a0211f4687b801891a9c0b3090e0409f25fa65612894df77dfeef36da1f31728bf3f1fcaefcfb16b08192f6c5a129b298837971096259fe37355599665599665591c9f2b69310e64575230f3fbfe1f6e6a1aeefae1a6f98c629c270268acb7e567de88308ef85ca6d11de9c23e4d3337ee413da9d727e108b5e2b14faa7c6e1f6464606038eeff7a52ad8f4890e0198ff5b9b698a3b9f64d46a6b2020e195c7277efd7edee6a52c260c812572a15f9c2a217698eb02cc346937451eb8554a956220b84f1766bf0dd182dc3dd5d06b6bbdb324a368cbc474aa062ca49da7ea2051ed7b8daa0c9a8d331d74a3546aca1c2a89506f7e565f58940663c648d3f2bcc35963a25e6da8a4a9d17e6da8b3a27e61aad13c35c23d5391ad539c25ccbea2461ae617552ccb559e70bccb5abce15acb2ea5c992c986b559d30668c190373edd559c25cf33a65603364b4d8307a25a8fdcb3defde5e15735db480fb3632093502eebb744c0504e42353b9fd528952aec852c11549d14a42d7db7d94619611b46b54a33a09cdb0ad6b256f2b35a1ef79522d8ae6d6f19224dbd7f591546242dfd6b5115a27e9117c27be0005ae135f588269209c52a16f6d447310c8b7c6a25b8b0a5fbac9077f810ff9044339d28f326cfb5d417cba4ef27debbeba0efc1ee202280c3fb34bcf0d559805277501759f086d51e74b42ade74c7ea31c268803fafad3a8cd67a660504c1a15371f16c7fab036bc7a8b873e869173167298944c0a26f5eeee2ed5e14a1173b9c0efc3e6ef30344d30ed04d8673162bf19c65a7c4cbb99c07602ec598b5b27273635eb31adab51fd67da5d1825e9db3a3aba0256ea9839bf65b2f010570fbf512c3cd3dc4f370eb462b6f480efffd26767f2277c8ba33beb119e58a8c44db745b9746846000020080315000020100a8784e29040201e11365d7e14800f7d9242845c1b08c330874114420819620c00000000911118a919898200fd803bc1af6462351915783b70486f39f471cdd8d64b555100b0355875db084556db1a35708678bd66e6c7de65c9d8015441ec85aa25ddb07fe594656e4b286e0bc93274f0b386958882743a2dfc211389e0c140d9961ef224174f1da7d835ffd7e9610e9f3044d1a52ce0a069ec0bd81ec15ad17b41ed33cac98166fbf6477e70f1a123fc67f9d40b4d9e792aedce3bab69cf341d2be95bfe57a005270ca956725e869c6a59c4163ffecb442462541d47314a1d9b29acafaa20fe792ab76b483d0798b877a24273f2d057b5e6f56e060073a162e7abdc8d4358047070ebd7d8d33c680612431092cdf52eb63444ff0ca8ff33b907077531fe1e4935481af1677fc920a9c29f7d2e84e4b68d72044c4451e9d786262ce7ddab4e9049f74236023860beca40b2e61824de9079e673e677ddabd9cb9baa557449141bbc01b00dc92e5f4954660293676e385962c7beda6a14ac70c02f1cd9e2819fd785a4aad1dac0db864e46c9488dcb5ef87e53dc5102e1c39bd2e66becaba76a9ae0f2fb18a7b329bd14b555b2c77822d32644e08aacd094dc8e095bb153247517397c4066c3020806f5ae8e96d546a357bc930fbd982c46e8644657ae9fc231dc8bf7284f0aad566c32680b818fdd692a05eb14d518b5435e389811ca0317eda86f0429c64c744493819d9e815702f35cb6d644987a4445f51d2bdbf73a40a325bddaec447ffc3f07dd22e003703bafb5db9e8737ec74fc4d3de1188a35b703b7c967cd8f06facb27d4de91562c3601e9fab3ae5058036a17e768ed8505688084d154ab37ce7ef3ab2c6d37b5658288d1c06c58e2ed71645268d0e8ff9e9d690fcb2d4bbad1c01f5f2f20d1711fa28d4f46c7ad349a43e99b88508b50da700c9994af10cb535351822085986b481fff34b0b07169b7f5e792e476b09fe4b0ad2b74023146ac67ea5ff8d818c634ed5541d24f777e68a8696fa73e7f818af381377e29dffd5cce1a9a4d29bb4fe63eb01300ff4499c2db6bd3cd00b134221606fd8043e21ec216dfbf1c0f0f65d8ccc37f864dbc9d389a31aa869bdf3026e423f9ef1925b37c622e98fff93d2cc05cef494f691ddae33309c9b2a987b95b22346cd95a33c740a180819e317b97f93f0f77f045047d0179e904103c288e4f07f96a2695b185ac3aab206a643177dfaa42b3d3f6613e9d9a22a67fba965cbfb169ea345be70e89863c71052089ec7ffac2cd9206909b7d34aa7025639e9cc609b7a0b6ac848c00f7f424bd1b1818c90d78042c346a8603baaa2fca50359f44dc5b823c92232ff74a79066bf757fba7ee8d0f4f3480709fd8a062fc5b172f6f23add182eb96ef43e4dd5df9121555c1cad1808d7cbf5dd6dd2502ebd223e3aab73da7f094a0a9c16cd0bfaf7414578b09597b739c24a0380d8764a6c2352829d75146932eb8f931a2ea417dcc32de281d1f733c71117b04127810c76fda531de3269ce016ac224b2cc9356f1df7102812bb9aca3fb8ca24432e16d346453512538537cc1347b5b23116be5303056396902e7483e9a21f66221393eeebf1185bba8cbcd693a73910d986acf7e8e3ead0a2864ed107f53e508ada634b31982eafc54797c5d2edd1de98df6044c0e58c9445cba3b0d0912b39eb825829e3acd01e80d8cda396bc09cc6c8e742758303f2d3c829d56398d0517faa88cfde5c364682b3f2c296b54557888f366751d1e5c5d5d63ae6d3d513079475eb0aed5a29f386d4b8163f591ffc3f88b13350bb5ec35659254e099179150118a6648973aef2f0633eaf95480fe878af35c31eadcb6c47762e0f22098f592fe30a3b325926f911f7358f944a0e106bc8d350347526bc07ba5348427fa7062a2141e2dc030ec72e30245f7f5b6c2fc103d5d603feb4d36d3cb09436db308a58815daf2e17ccc64f8c3f0d8d5f16ad6cd47e9f48f379b8f6205dcc7c847f6703ccb0d47e0ae607826dc66bd972137adeb8292e79cfe9dadd662c1d4af57795dc832265043f78d77fdfcfdc996b2ba2446378be48a4acbff34f3291813ccb65c1561e690e4f6a9b49903573b005ff243b5b0523bf73e17b46a5064f56ef97056db2c29c499cd4a94324b3035c8a3b31c8066a444e4ec1230ae69916adf0a13712905504f61ec2299680fa97c6688a2452b8633b2b59d720088f246ff691ae328e368d55a4bae15269611d362cf6e371df54e08c0fc277fa64bf270b8df14c3078c848f0e2388511a549a6a31e3dde472e9140f63164509076786fa07a5a0b4bc2ff84084da3a8c95820f451d916bbe592984775215a66d1d81f0376c0a7b635aeb3370713c8c1e5b47381833253b1c582ff6ccfc085c60d046758ab4a209cf56e9b89b6759a02dfd5ba5f4513cc1ed0ecee2993d5ec61dcab168c23c6d804521245da5e9e36a0bae5a37600f190e58d9e77ac325e6690c4d72c96cdf1262c4f239e726771582471a18e39e9b2782f182e8cdc840b00083008617ab60af1f389962d21702aec89be00d1963d2c4bbf76976d0f6629cf3e1bccaf6c1d84b18dfab13f040f6f2c260f572e0c82c9b7e08e12ef7246f65389532dedf4b2644af11c4554b85643f98bdc2d4cb21e8651f8da54a11baac5d07f8bbb095fa990dbc4cf3690a19b7654d7ab38c91f94e70c16a19c0caefee38b71ff222539838553fef31da61ea798e30eece26f5151b18f07e92b74588ee64c8d0351003635abc7023f4c8848312d952afc95f25be1599b6359e108ed8fab77fe2209972b2e8a03c1ebd95ead383bbc6e2fe953373b26fe9fb5f672a6a1eebfd53bcf97851bc9871eb3fc5dbc717f5c51eb7fe57bc7d5c515e8c813bcbdc77db55ae6871e4fbf23e5457635f5e0666634f037efca587a35b90804ce96caa1699f65d212816e83f5ab9b6f4d3c4253a34464dc9f70a87f45f160da4359702160d5614e14d37524cdd264c796e51acce74177f22b26641dbf8216bca38088477ec69c0bbe248e82edb1587790e2b8f7af09e24eafe03cce728d62cab95829f193c6cea0cd2c8a43356b42b288cc52bb6c23110e6d068632eb2a815589e8dc29020a07895d2c226739f6384142b0ec3f4fb9e495bb4a41380a42f32af9de0f6a40edded58c2cc76458e51f4058804df6fd60d471ce0addd8e4d8de8d9a608215aa57ee4ce37f32208501ac2fd5ff95bb21c89437ebb5b4b0ca8fab88496a11a8599fd68df54ecbf083d23f548030650d4e3ccadf0680bf5ea129e03697cd4024395677c9105c94fb5cc0c4c94d3c863e630412ad86da0cd00f35b82a588b185e42490fdd854efb62a52fc824de700d9bcc06c95d219426668a49c096077344045bae04586f81724cc2686967915d6b5dad89c36658be54ced5eb40e59683cd456256af7191c9dc45da20ca365e431a21cbfe97056082537f2c8125cc3d1e7a18a902672dc98f2358fd770fa1cf422255ddc0043aeedf008296f87c2a918a2e094e6c54daa83f3a3c1db0e481f44825b0acde26cee587c7bfac5b286b0f17949d49f7ed3730d8a48b281ced857cb08971b0e8566d1088531d31364319119662e6a0e683c4951b8fc4915d44f29314518c2eb55a51b850eb6525e9d5588c5317098fccae9f9819285892a6f6e800f2545c9609387c2037f3078beee3c3d3efdb022555ca38db70d4039de4f7f344b5bd26dad0650eccd43e4c3669e56742efdc5abae52fe428f536179bd04ce8b73175aaaf1eb2857a8a4def81feb338b47758ea48697dde4c7f8a392dd57bdb80afa008c6891465896a9e571ac271bcc43e67b4654e99da7178cbcd926cafe9e7919e8742badbeb0b1e4f77ca2de3bbf47e877eaed2874b3d92653f22e7b2d6d97c57fb88ddd79142ff915347a4cfcab6d64a54760402156a7343c765f76c94e2e41ca4e3f267c3a3e5d0b0152b2f3cb6566c72b524917c38fb6a7b7db1f2751d1b5d5d6e4a5f0ddad3174e8f371b7b6b185ff92a9f555c991b6d16207e17fc4d7f8f582324b888d3c2193e7141d8c5f14b49ba4936ab660ae2ae914df55330de05bd2d2aefa7e3d17d68b379eff16f145af141dc86463ed42590a6cdb96df028262e86a0a3cddc30bb086c3af90bf06c6de5a39387d2b17f03454be6566126470c01e296e930c1e4b12365e67a1817836a1eb469b9869e617cf3da7fff013904c62eb8ab84b61d82bb042e4a28fd54ed5ae8616ce4e3e5521ec2b338d1f7b342859417249724aba3515d1130f2036de9dd9d4b0d0b1736f1ab815eadd616e0bec29eedc8fb2b87b39af91071c9527be1b44a960e5e24f3bba4a53db54b7064c5c09ad015c9288bdc1925e18cb0269fe8b5e35a40af4634d0f2850addcffd85d9928392921918476bf6699f99cde3073a0dee3f7220a78a8134e9cf6601eb61554be12facef2d9979279c1d254cc63b357a5f9c01edb04528ab995fe2abbb1ffc4e364b48895b2a6b0c019a22a8fa7aa7b5732ef01675bd272ddf822d7c67386ba8a2938fd83c18a0b6cb78c6a94401189bf74538b4db0a1536441ac115d6bc0bc613d3ce0ab88e32016895e06067fe50266e890f2a52f1c5dbabd1e23fc41497af5203972560a185431d6c265d7e53c2e532c68b8223c0afef534ff2cd4dfddc72f61664db688473726a872453c942055d4927487c54cd4c8db56c2ca12da371abcdb7d28a37383beca87afe5f39d5318d69fa045009cb6283af801c949ae8d46c4fd07c07cfe5fd8c4a66b3c84ea1881a59bfe5e96c79ceb3fed5dc745dd19cfb0588b7b654783057b3849a98f34713ac6954af1a395a4a024b1e35953c8e176c26082849f37138078fbd58de65ed0e2018b5b0aeb44f722b6371ccbaa2880386091f5442ce66befcd34bd5849f9a400f97e5e52c492102b6259486a79485fc407413b41f4ec7ffa578d0c1ece26921af4f7b8a64ab2dddf5b144e2537304848435cbc9c148cfaa7b3e8a1b2bb12cb8be7efeafd3ce6f0eccd63f79778aa666600fcb60ebc4948b7ecc475c4c0840f455859cf4e924210fde4f5a22ba4a1c0fbe927cb631270a8d2f9943847610baf0e10e0cbea72130466bdd5ed3b4ca25b81ae0d4015b3c39a660753f8cee400d3c36414c031b6bfc42589891a251579f5366dda7205ba879872551f203979cf9be6729b9f9f4a5df5b2cf2bbcd75ccf14a8039a91e4f6a67e280724441d450ea642874e30856b518f130f9273ee3bac556ea4f3944ac0d72cd594c0ffba0404d53c5a78442d1919342b0004c1c762ae99d1d972f6658c00b6be3778bcd2a2c370598bb1408f9953cd72ee21568c3b7e6c17c54d4c1059388ef27070b3936a4c7e52eea3ffa7ac92e734d76a349e6dfb9b48e6fe83728d1c7af5b31e84bb3131a752de726b14f5fb8ffe190fa0d76043b169ed852a6394c35888f20a31b730e30b285721f316327e01e52b64ce02c62ca4ac42cc2dccf8c2945598b985185b80f2b0005eb5a23a7cc6f7a20db5c9324cc06dd21101d1d581a106a02df29f5463a13562e86f8f4d979e5cfff80268f06e5e6c0e79bcf73ebac58574c2a775a94411421d5598a02b94f347a200aba436c8d9338c02dbe4e8909f4a1a0614d0e2a151cb7f55e30fa0a567df97326d8549a96bbaf1fbeb3de9656a787ad5e213baae1215aa710c31052314b7faa8970792387b401740bc8a4ce544e6dffa000884e57a41ab9de3fce64b1b812f079c15d69f8d3ad2eef751b843047c7209986f67f1b97b301ab03bf9ea9ac22b4290aa464a276b22c72d05217b90f4f19d51445310104e110f0abe0f9bfb51ef0f04fbbe42a40607c8bf14236f0ec057a11934576900b0447360672a75838e234b2cbe9e80226283369e699525b848622b09284a91cc85459264d2ebf3c8af529584880377d3072e70248758fd9f28bf3986dadb0cfeae1b2304ae54a78d4ea845d09bb5ce0cd0191ed920bed1890a4384ecf5b6174a113135582329a97bfa21896f3ad6b2ccdce7f9b6c6233fb4f7c9e2cacfd45d6ef4901d21934232ac3caa21581214a9f4c03f1de978f0b6ebb598e9b22eef2bba7e686a0fbce19ac6782951fa70192d448eea3efd374fade1385acbd5d24eed3a1b9a3e08a708014049d0a645a1899a5b0b1ec5cb199936b1742c3e18087143eead0c0692d494408119498e1612293e530957c212b4675850050293a040947209542219a65b627ffe2aa8232a4a3d16820a7e46a1efa4f2d40b5895c96b01ac886f21b27836c4bbdab4e0bb331f068247a22852d7759279eee52c1f9c9d62e01c0d0a5186702b3ae051411b3e38f83584ca805f958684cfcf96e070090368e1fd3b14d0c2bfe809871e5ff192cc09e79276d828871bff73039e201c76e4622fb90d6367c326ba796491281a9b399d48adbe209fa17f99c8b3a736934b6e790810180f7830dd5f67033601fc2d3353eda0538c4b224084aefbecb6a49828b37648696fdaefad56d8bb5b6b884b4ad2833001ae3678b8cbdc411cf56332393e6932502affd23301156a107b8bc1fc2dfab1ae07ae4458e371bed95c1e0974358f6b4b2f43ab1fa3a95349a830b1b2a32abb708e93b368e32f91dea4f15d36e59b9850a819b8f971fdaa4b6787bbdbdd755e9d6ba0c0505c0331633b8068bcc2d55a31d53e2e5138a975b1c12724efe793769ad45708fb6fea319c1756459aa87c68ca3cad84a554ce4ba6455b39a356481115eae3b6db7a246633719c47091614a5cbc25077304b2ba4fb6c45239dcbace83db3d05a2ce8d79fd4508e783cef0db91753801dd465e8e38d1c751c8693863f39e150a6f1db38b4338615847dd21b79558719244bead9179bffcb9a492a9c9ca48fd215bce56157e9a948b556ea9c0774320249b376fba699e95656fc20ce75949354a0e2cc4cfa0675136346a51b5c503b95a0ef5fed2d69a864d237b598113ba847752009dab345c330b2f6c7c3d5ac2d37ccd8e74c74a722cb864775333f23a98a761697916371b26d32451b6c1c3040d94b7a7d75e8d3d0e7f9009a5297eb68665cbb0673c8c600d739bfbe0e2afcfb2ac3abe70fc1b8293543bc318856264fc72d6d1b69b5511f93f3a34a81d3eb59281f8f03d7beae1cf5435669cf60ca8d31a1bdd078cf596d0e5a20a019c22e939c0b4d4772d3203c6a6e6866024a1d55115f8cfba61ac056a5582bef3b57caf437d3b4e83ae7614b27721607bce9ba9db7269c8ea3d03d955c357245c18333c093eb42d4c473182745b3d01908ce82a0f53abfc5c38eef99ed7cb464204d28673999d3ec0897e901fdb25c13d0c214020f9327c4c81b618af19b27759e91a1fc199ed05243125a9720c190e73d8b41c3178992b7562dac61ee378f98b78c503dd48011418c53930c0b14d8a8725edb262142d004b702a1ec1d6f28cf1d9004304c9aeaa171518f88bd49b009a519b742b3fc83d6e66531b5938ff7a9c514375f3f64af9356aa4f4098562fc54bd3d6d699572f294fd84d65164da8210ee5c246bdb1e700394b30564d9af95ee5ddfeeeac59093db5682be63af535dde0c814f703b5b91f97fbe7a6fb3049a4025554d28692e7e49ddc474ae2ac649051f4289ed35f0677eb732096f846775eff093cbb2604378bb5440045d8ab8e6e767abbbd6143f4d93503d3d21d1345c0509d0aa38cd7094861b5d3a41621cccb30cd7d8eeba1e810d3af73efe16a1a2712c0d7051953fe2880665373e30b4495d9496e3ae823c77043cdcfcaca6b28fa084b8ee9631968d7ca5865d50a666b74b3f95e55a3b857600fbd164c474944046ec3baaa0a0fd684d6c5af41e1e2efb4539a029ca9cbdabf1bc679fdb7fe0de1c8b233edb5a00a99122a5a8a7ef4631d1988f709e3cc5f30938098df43e96906b69efa9e76b23b5c00e8ae7e18bda965a40e436ea205274a1db1344d2745f7c6834d27866131eafbd2a3822b3e778447d3bc390014c274fe4bf34ba39b179f841bc6666a3ca55cbe26740ad122584b9bc7629dd4fd058528daad606a249ded69c07bd7967cfaa29d5cd84be040ccfde12dfb5b515c3ea28476d2008794192df62149f363be7c9cc649c28f3f2a43506a58bcb755139fb2c17034682c1633a84b5130d424e8ff48a9069b4d14ff9af6b871ad9db1816d1fd07548d50d20c6a9d9ed3398270da6db6bebb178ef4e4ab4ffb618c21ddb74bfac091bcf0e32aec074851cb4dec726aee4d8d0c8bd46af45e59203e2839b19db73a859c21e9da8c96bd2d409dcd42120646a3819c236e101c6a1806bf653266c7a494557fde8778bf5734edf39e02c8363475c34337b054d573ba32b7395096e2883f2dcffca028d94e9b061b4c8cdd0ebe92f90e9029dbf691caf0df7a3848a1f1de0d3f1f67748ee1e70d63c785b2151817a72de0eba078545f12643a0b6ee649b4b5b2cb2259ee106ff4b3850789ff031cd3d39b6c34d7ba49870633620594d0604f5ac11ec98a6bf1a1474c061459d2d8a1c0138b0e1607274009a980687de497630d781817c76f2111d0650dafd1cd0274de01dd23236aab0980c630af32e289bce91667bb52d4529377b4ce70bf4ff503c53697abb12ead14987640b9ed83ac67a7f1d6a8135dd8232a88edddb46c754aae0fbaecbbcbb13e4e31cad501ecb23c163a0a0d329fabecfc2bc0f522aa857da472289448e5deb4d5ea5d2215d3c34eaff0b323bd5ba4508b368d7200150d297b42a17a379f7839a11bf0c2174f6b4012daa3d1c959b4c4af40a3584be4f1856560965b4308cdbf34f3652dc7da9cc49affe20162d024866245d3230482ec869c0152bf14be96590564fde444269384dd3e769742b2bfce0871e7a9078cf116e82f547c9d80e471f0cba058d1d35f10b13cabf9dc2e2da05ea410a844a8a30a2785829d79789b46b0c313b2946009de7fa401a52af9f80ca54acfbc9992c52be57574dc840742beaef01a43e28499584d60793bd0448f963ccc351301940a77875db8d70456f13b2a6c394f0bd13dfe4bf4c6f4d540bed81b16448849d97e2b349d653a146b1a39f4958d7014af3de491eae861a635e3efa2144328d8bc24b955f67f12f49e7dbd628167a30192b0e4169ef9be46fd507e7c5d54a2e07553debe8a40fe6c17920d06524b3014c9c4b9ccaebe06da7154c0f5ee4249348f1e82ae88c99de22f9f91cf180701d24440764cc0b0a6524cc92c88cf2ccfdebc0f16f84706cafdf2c8f29ac9e7106019274a7df75f0e36ec438ec937ec24ba24471323242e04198995859c0c660677880f50133c1d1fd4fef032371656058dde388921b5beea432c05acc3acc07637d8280861cc06f614e0372bf9ba02e561dee635095d618fc2188b7be396e84cdbbb7604f3d3d31e28ded1daa0ea31458092e7efa65a655f47511ab0cb11cf86b14388f9a5df2cc5a68c48d3c2aa5f008b5a4e1a0d959db094cb4a81fe17805a1048b23bf6ce387ede9595908ec8cc3da0d5e66eeb5b4a656e9e3ce6c0ae8353eaaf17fe1a4ba7cc8cd9cc70fa1bc47dc970816300b03fd9a223ee85fbd392bc61b5dfcd842405ba881a06cedbd58945170c38a2e1692ca42c58a1ca18a4baf0e5518b16e9a20ee18a2e6ba94d9cb1482c6e1cd56ae376f132ae6b06de71f7cfa6b66a6f9c418a5015490390de202a4af0b0ff4b29c0a43aef91ac71ca2864e51f3d3135ad474960d7a7da465cb90012657fec280e6c715bfebe9b6645c82602138417d43de66dd936a8ae7c75aa73d6a1505bb23fdbe608ff7a30d325f3bc1469a1b862045684b22a8c6cd8394f1d661c5175422f5f5ed4ca8dac0aeb5019bb133078182f6787b3dee16e587d855caf87354c9db86b94af6bb70589964ed0f73b17603caf9ffc85376c786038be236b4fa78eb05b4982e0c5baab8fc8fc4667cc82a6af66aa9366f6763c651a92a03f3aafdf5ab412314abad1c193d0a080d35aae84c6dc9fae1f9e81e6dee53306db966cfeda5a70051de863bc51424d326e0cec6685d380d4c145c7a4ce9e4df79bee95df5e95d93c3c186d2accb0eba2c6377b2c6f272198b876c8134a332b224f6d8dcd7f8fe7089dc588617d7a8e989aeda4f764c3e51955123b1d79092e074e3fa22585535b2117cf6b4592f52343ec5a83aec4b2285315d6f25f4a860cc072d1144111085eccb5a2c35ff81ba8dfc25db2a0f1f0e7214c39084c1c120386ea3808eb79c1eb9dad50eaeef029a8275f15a39b2e75721f436b46f19b9dfbfd309ead38e20d6433a580074239004286757f104dd273a34c7b38c3efa3b6d602cd558e7376b4d29149c41cd6ac43446462693062ac9cf0875513e1165d343d39570c00748aca1eb227d64cc2bc4fa66f2d3320f0aa1c03ad3ec04a92dac26092a93987a9c7fffa9d4b7291a1ea9074507450916027e885edbfde815907c45ff7787c41c17421a03edd92b3921b62f939940b47993d52a6609b217352dbeac4b62b3ed7f703bab5346c586551f8909cd7025ddf06f2ef1c9c0e274b70b99f1b1c435d15e9e25f639c9dd25cf8b2065d36c90228e275bbf18336b9f645840503f9ab07f33108a8384c956634bb1b7f7b55a2f27d5a2014bdcb17a2d32f92e0872fb1d65d16c73fbc1b7b0c9934ab012142a22eb3b3c5ba3fe2bdbc7289ddf6216fb3c9b2321c311bd26eb362f7a093755946f60c18e1258d5045df881ca4759257e4291aa83d91939a8f48d22cd0b2b0e833d5bb3ac104370def8233591f123aa8d78e7a19d39acfd7b1dd5c146acdde282b3f4ccfb94ad77cbd881515e49023b0ca88e96f22e0de0899cad7cb156f4fe967a4a413a93ce614a2f10eb1d994440465d6daf33b606848fa26c00b3635663c4c8406daaa2fced03f743c8a75bed5a540d03ddb59ed19c98e5db660b1db7e2c98e6dc2f766b4b0c39f9cd80c402553e97dc926b993099e8a7d9f388c34ba31ef320fb819fee0e9c59a4c17760a5e3bcf32f9fe4ba17a8d6b281d65389f638678598563733e5e3e37fbc1c6bcf6194568912eec6cc1742b86bbf65cc18ddd71f964c80afff75950133643e98edba8120b2b3ec4c3651d66449f6a8609243991ae623421f472ce602d08bf19629a2745b5d6519e3111b6eae08cf3922459e2c399e9059c59adde1b654221fbad98cb4d37fd1b4f14b41622cb0e9221b0fa1ab47a9d5bd917b541873550d6108388ddc32ae1eb29cc29054f17ea02f64944adcca08f8786f5944a0b87d481a4500ca6ce31bcc8eda93e49a58154cef0edd804e9bdc364078fdc979f6024c0d7b24bff0b4d277d42e7b3fc58eee3407645e05f03bf0d8a0c6976c2cde697da17266635a9f02e26de1195019ac46e6e842ee36dace72fa2ad6fedc742804ce31a49be27b59485774dea4545ec9952b25acfbcc0639de79870e3eaf09e466d3f27b38529a52ba50e82e2e09aa8d3739ad842b2df41130a144aeeb5f154d6f1ab045a47171a8bd4ab6c6f91a7cb8ede3dea6d78f01aebae9f183018d712bb794ae7f547da2e668925a8078158eda3c81ef0f217a3babe3a04c9b09571cb88ffd5220680f542e6e3f3318668465782b4ed6bb5e8dee7362f9ebec5617eff56354673bd8a8ced3ae8c176cb88aba2358cdebc77f9a3325db15096561503237c2af7e8685c33d45b02a770819948f1ae96ef4b9c8de97dc62934aecdb19c72731f76a0b0f8aa9f8a8724a77825333bdd3b1cfb43efc88d563b9e0a8b83deb21b20395cc864c497646b94688f1e0b0ae0aeb30c3d9759177ba4fda45e6aa70f0e3f88e2e4317ac9b5c5c5f452ca169f8e62f84365aa11365b62d23500a5deae997859846f96f4e69a589a4326f00684262de720a58560590de704ef30f94411bd3705b88b3acb498e65129ccf89716337c86e72bca42c9d94cf8f19b1a2ea48325a72642a3c6c522f8d6776e132de1565152e9e62a8e2428570b148e636771109d3b207355cc7521fc5865648b34b6385258d1cf06a85f1cb5ee1c1052e5c3920a4c5ab839dbeae3c148b33be4718e715784e71d32ea1cbd5443762fbe2a4f73bc8226743226745c1c339216fd1eaac4e1703231c28606cafccc7dde3e411b8160022dd3ea7ce17d93e0f6cae0f00b054f6ef95d818d854ef9b1f918379a0fcb433c84db05d7b8da8a7425989c277f368e6edc2f40a05a08f0651e105647343f88c0273022ff88c3d8b4a8f7505d6755054132209a4f8fc484a7df9673078b49336a4e4207bc89252ca249bdd8ccc01096fdf76dc7239e96ffbc54917caae9932dcf13a9878867c76f83845131dff88d8b9a486f374516b68a1d60fb2164425766290bf0d1e92bb64ae6ff8b0d55de6b1b4ae29754c194da9db501d6276efb24c557a351d44316089023c3137b9aa91a6a10280dd7a5cee898d4acc1e84bc9c0620e4e52bafa74e657ca5069072f6f7670242b7b1bfbb31b518f26b3755a98abc2245c2f67b0404b3021333a31577e2860e52a49ee62544fcf362178eff9e59c716f70df0cb06f920d16cc3a419401a13931080240c99fa4effadb7ed0540bca24dfbead7880d2433d3145193d200a08d3bf0f6cafb8a29069d35c0e899d554d1132f52eebfe14117cccdfb4ac0de32f9a8e4ae541c29a39f5bb01f383b116c36f6d0a8d3b82c274430266cd294907c4d67e0dc5a581141b5d613763d4bc30a4505223c772006e217d5d06cdf575169ddc9d852887bf68fbc32dd68de0f38009a7b49eac1f3714d9f7cb17bf0576b08c0f6cabae138066f228a8555859cc723474a7c035508e8113f9adbf5e72afef2a43c21673aa5add6932d70ced6a0269abadca8c126587304faab4232a076e284e9c8e5772ab4904ccc4e23cb98f569b1b99a46b88d15f646d4eaac4e83e9066f97c78028590b37a7c5f7f1b883e82abe82e647d757776eade289fa192fc9888ece25c08b0e1615a680550d2fb3d2053c4cf40c2c9735a722996a83a285232260f0c13b38ca6b204a3ea65811ea6a30a1a14f9f0ac8a063b4410a4193abcbc73b6751b7df0134b9bc2bb6df34cda8f6f400037f01ce1a95522028000185bcadc7eb9abdf24ef57621d7203e3fdf5b1ea514054f29390bc17928b02463cda81a04decd03d68385ef202c2fa302e57db1738249e4ca8982a87662764d20dd078dee15beccd3da461c044320d8326357e9d00c7125015619b92071c7fc02cd0bff26e396925226088cd3d2bb9bc532febaed0f1bb5287bcf6063f09b4c5c7670895ab8d83cfbefbfafde9ee02d1697e2af988c853b35f3f2926f002dc162d51103d70d5d4b0c21cbd1b5d55e902f9c893174c9428028dd74648bbf6aba5f106053ed88dad8bc03b5a5723b3df79377d08a7aa138178a6bf546120f63edbd530a38f5dfcc36b74a091ef1e417b2ae0055030d2ee9c298c7f29951cd47529d3a7eab89e29691479efd0408d66580e27e6ad704378720869e271dd101c291d8f5452983d3671511c33865ce2d088561de35fc211ce10c518c8d8fef44de5488f61ef810388a98fab1b500c26158e4c192bf51bab8a9037bf708707b8081e1bfb3791df9a36acda12d63b0cd82996cfd9aff8d143fa220ca8ce99e1c38380ca32b27fce3c6b2e12819245a4220ebfad808cec8c2bab2fe0d4f905c29ceecba0f568d38c2412397747d891bd36323d32d194363b45c7e242451a391283bbd6ff29e8708bfb62e8686b53a939317eea48ab070083fe41116d3da3a4f2ab85e5bcc19dd5ccfa3d481991b058c62a1efb359715360232b4722ed0a82dcb115584a0f65b33f68529b0eb84552d7bbbfd6ab0a3cb8b04e050f69614ea99f4f8081bcf0b8209c8f378be578e6aa6d12004e14840210572cc3a20b8b3eac5f2839208ee3463a078f600c4a68e0605ac629f7dc294810a15f07809393d5aa5b3611c40fa19b2083e7251be32f1540bc261c100946223921ccbedb8d8ee84d5905c35c4b0f78a72e58e76f85d512d1362863d913b92d755b070a5714ec403502db7a4e365339162fd8bea77b78bec84f87eea94b00c91c79e801bdcc2d09145fbbc872ab411fe4a05121875930ff1b133ab05cb3894babb2c862fb089c051df8040091cce5957d278ddfc2c1dd4e8abe2c1c26644841e0b725e0a508b404f30c0a08ab1c2591d2e80d2740a3d5252333ec741b3e8442bfdf5347bcf7bf04ee743bdb205855bec2a782fddefccdb873ed77a9db2f5d35d3dbd5b50274e16b40871a48b0446b1ab40f1342db26a913a7b7c1fcf1218a0e57afdb3b7203b056c6740488671768cd056f0db8ef902d8071fca1a3e0c1a165242b37f2182200876836fb51357773658cef401cb13e155f99399f854aa027090b266b8789cc96a8188434f22b75f63545168b7eaf723ac31abd228d598022160c7d7684a0fe818a04229fd694f7412c67fdc75456ab4b975a68138190182b92e0023fb975641eea3d031d0e702af9d9b73bfc54844860a96647bd5bec8647f84c5789e00d0e002233ed4b36e25bcbdfc2691ebb3c306b1156b1f450e71b252b20c1a009c4a86b86caf781f92983bf958c243dd3896118e6e82fce8d0fa0828de235f97f608927be54317504f005f1268d17c74554898f6cbfbd8c38e9e15934e20e820ee839af1a8ed5ea176b84749040ad01eba430f286cc4aa33ad5e57806bde2427d3a9c845857f755e5d6bd7e21a2cbfe21aa44d51a3a9728f3efdd04558e50f71037f717d1526a34a230a2477dd6a412d718d21dac0451744c359f8cfd108ba220c6bd254908d4844ce271d6677502e5ac3f64382b1a5e9f83322a4b75ee5e7071e8fe8359595a4adaa6d2ccbec1886156435d9cbc985de2757a74acc6245362d3ba76df268816c289559c2a9ec2bc9239b069956ca516274eee6a500c014a69dd0253717ca72c34c12d5c338a19ac027c0a623203aff5c5b6e17e4416353d9acf1667ae70e60905c74fae565a818afc488a0f7691ad7d358d51d1d32d1251c168a1d86872cedc97824ec4ac03f997afeabcfbce6d4f22e1e446e70b3a3a9181818922c5dd055547f1949f3a74498f21bdaeeda97ca5b9fc562ed10fddc7becf889e38ad634db18ffe25a78b9f501033ce5ad772a83d77511c429e2e90bb92f14e36f714922c7442a2145c5330a313bca085098a3f53cc5e0d37bd62d39cb0a90447522c958281526ef05751107c69b413b50ef2aa809acc2d5df188b9b220e332bd89bca23374bd2be2e47fd846db3a91d57e5199419542cede159c88921d19b95395e9d4e524e30ea17622326fd2c26d3180c3e11ed252c885ac180e5444c46048e3748f9cd09873c3f118a3c6f82808b91de440ce7ed329590f6ae53a7e05a94a7ac84589ca8486528843f458bbab02c55ce26df680c09017c9e636c6d998b8bc036a478fc74b15798f22d944305396d518b04f823c5fd49098460e177ec6d2364d8e12a98da1ee2274a8375cfca442208dd7bc03f498650b24115a9b93bfbf16117c4fc28a7c959d44bedaa64e81567572aab8d1d14445a721bbf89ab2f8632310ca430c019035cb88f084bb57c9956705888beda3c8e0484d272e928fc1ecc32276813ab6cbea2c9b692b54ed72e65230ac12b26c94dd98c16773c0cfe5017ca3c8617c0508286f26750a9a721f877d9c40c10104ce5b31e9c762286a8ce54b464c02cebe20284b2b6ef2f4f575b45f445dada4f3bee1bdffb6531d0e2d95795807ef83b837f0badd87f47ac3c0390ee6c2dc14b95bffeb5b598bd66ef707cde3f10740580996d70d9c7e298ab221af073bc76f068b587979cbea65698eb5bb281f4166a187f36a42e43a1c18502035d71f46dd141cef8f7fc98f0c29e6d8e1c8ef9a0c457c001dcf5870801250cbc1246868427b62184f41d943c5aa73b3a23fd85b1dd906abeed877d328530382c7a1b7a314166abdcef8fae427c49db2f7c9da3d2d618c97088d1c9b041dab91ea6a716c8839d751763f54c92ded49d9900e2256247ce64ef92f4263b4ab9171fb353d401fe70a5fb572257fafbdd2fd8457bd913c9f1b199719b7e86070a481aa36bac96bbd85e071a86409f0466a1068668ce24d7c3843311cb51f02d0f5d3316377a4504d03a3fc1d54576243e96ec5b697873c93e2ae21f3c7c24bdd56bd56497ff2300fabe5b6b306a60348b416e2e40b78796c32dec83b98d63c71e73e0e019ecd24bcca1436469b9c9a8e8a38c008f9aab2221b3e88a0d2f8759223c6383c0d08da422b93eb11f710150f74ea708f66a6abe410801bf4f9fff983e540f8900900eba28d6e39fde3b756c05d7eb850ea241e57ad0ab23aa2fa50f727fecf1bb50b690a6203425ecd877fcd2a56c53a6a941e4a2b2d5d482bafd52e5dbed206a0d5267eb848ff0ebaa701a6d68633d9cd08774794378a24fad97a0b8b09e72edc41852606492facb01da6afc3656f766ac15321f707e2078338417784ea502690be82001380157fa99367eb03258f1a83f35a49db23430333a99c0bccaa1e838b1394daba14a5b34943f715c6c76580f14b1125cf0208cb77574a089976d511821ab4dc14f1c7cb26f736d3a8ebeeb2152861bd2db9b0467662f7203d592112c88b390fce912536ed3859252532f38fd8266aedc855b98804c2ba57fbdab772370d3233f2a2b3c9b6b4c204a338cabfa84bce5eb0c574151133fe0322ca8871e0ac2694d9a6f5e88a0db4a4ef40325ab492c77afed0d1720c35edff5b1ab49ec3301531cee024e0d7058c8c68ef05e4033b80b49bee4f27ed1a3706af7de0598fd9c02edbdbd4b925e65a2527dd0a7424f2bef7fd08f77438a68461b5eb619ad0d558d23020f655f3cf2b2f50eb7d05c259880c01eab85e177255da3cbb16376f48573f451e4af5d7c22c79a5278262ac1d55235f0519ab7790064acb938bb666a8cc4a3e245cca6402c72edcb240cc426391e1919dfcac9127b82172c648088d3ac678c478c8d28e046d6dca526b95b34809213ef20004fc8e3252184d71b84852ca5b6e8acfad62de1f41938e922a9d4452078ee8bca13a0755e620d116cf7d1ecfe1cc05877b0cd7030264f258c2e9803d6d24e9cf620c5cca43823afa2b3bc9a6652fec6f392c852e9b2024a98408a8638484f95a6312a6a95e33659f819d73e2f7b5a6555765227e1b2d4c8858fc71abc494b538df814342a6bd18273c8b9f92de7c594b9be5f609e3e2e5949f09a40b20b3d4bc0cbf09ee1267cdbc421fb1b6abaa572d3ffa54d19c9cef72faa2ce7100c538482c5f36d6dbca11e6146a5a610a48b823bc0a8b3cbd5a5ed832e1a67343c9b356c19ce159c5fa73233e56407dc4920d977255b364cc28db02b8de194eb2f1ea6bba68282b6be4215947500be4df37e5ef157a2db1b4e119c80245b0f241f19b475261a6ab18ec510184c06a93dcaee125edd9eabb51c1e31a1e50f1bfe1825ddc27ac9f3ed0297948cc1b8ba31b8660f437d93aa2fad99263546e2f259535b88f4d9c03c423da6a0ce2e7d2af0bded8c89d2e183981469a573de031531a704d5066a3285dee3366a1a5810eb48ad5d5e10c5eef56508301fe79055e038351c8235f9059c0e3eea1bd42524425b77800b45f0c3e3ed3a3f277770bce8a8a0ca3ac513830b8ee6e307e091064554f8f18937d8fc665c1552a17f0eceb0803531191b2996bbbaae509bfaa46ae97d58c18bb3a1b84a7394a41a01e1ac2b9b5d0588ed4e5c606c336c467ce2bc08bd8d509bc622b4ef78c00d80860a6c606f16237ec04850fb2161ae1427692928db52ddc7262f3368e18568e7b801c521baf01f3d90a5a422bc9b18aac6529484854167c007ecda89a105ed858e19ee8e7240c8b0eee39fae23e9a1d1a1313fb95622ba9ac3619bcd0c4973e7b8157448a171049a5f878c1f9632398044a19a293cf538759db9338379dd5952c1c922363bc9bcbf3f63bc2a9fccaa342a3af70937310beab9e270b6374b947f1749102e12a105965f0ffffe400346d60413dda5dd78a7115c0b844168941ca1c0531710c6a1883c408b36ff577835a087a4122bd9cac637af98f6c32ac3109a9df1045428425c92a540109bf385dae5cf04730f9c9dd4a70c8ca06c580c435ff631c888c036cd493e18fa1b630e6c2aaf3e8046cdb5a4b1a87433dfb15be0375fbcf23acc8fa0608b8e6dff04e6989e60df0126050753503726d85b96d16d87050cbbd011b2037075f44555731e600abfec822bc282a016079da030bceca71f588e3fabdff7cdb02a0907c3136d8a79823d70a297d9752228e51a6de729123425cf746774cb4684484f0ea21033b4c596cc855d57d655abcfef8c1d9f9588f23cd48c7c0829f0dbb6bdddde3af6f3c8eacb425f27c1b1be4cd1ebff49e91007ffa41813eb327ad9456d980af72a4f5b2f2de7c79268f83b49dc6a478dc707e6b4570c075e862bec4fbd99a7626904a46e9556ccde41fe9d9721069bd21311504617b2d31b14fe7a521b961846923c2807900f2fa93c2a60ff6c41375836beac4ed6a56aac91a96e4a3c929237016636371b1862b41e220993aa1c047423f049ad73ce0dcc581101bddf9344367091270846475579174e9120020934b016b99eed7b690bb313e6676140204711476f178d57d6ea8b428f80940e610e6a9252a48f45ba1310318ce4007feab53af2489aae76bc5f027d3e53d19d95a344726e5f82a6db3f3a9b1584ccded45b36d41aad9e1b4dd57e504b11c1b55c7077a715e9a9b0b8eb321c709227da898bd7d8b207cf012fd20e7dfe452a581536e1bddd3fd21719b1aaca3ac5acdd55902d79244205517eab0e7043954993ac3164161e7e9348193724d5b9ff0f9f136bc15b80113e52aea20af1fccbbe310e9b64d207927c14e24e80a19de8abd51bb05ac64163f922b1e760667dd424e75f43c37ffb715f3fed33d771bee00ae99ac7baf7e18a281197cda00d0ab04fb91458da47b11c1e5f2a9b95341f25bfedd8fa5d838443920052ef7ef92e2fdfdb0c41d7b3d65984c25731cdc2dbfc825c882a1208b65bc54d0ae2413c3626cc294b0589b38a559ec269e9226bed24cb4924d30a583c940b3e16c34d69154e65010bd42b0bab5ee9a9bcc812f9e9470f43f260cfe73a5e59d1a5a5cad95dfac83d57abb0cb55228e1e029297659e7f5ff24bdecd812fe89402854c05caa2912da0d9204ce6f0b3133ad5eb82777576e904a41d42e0dd2ef344562239cf8e1b6f36a3ea4c6df0fdf85c979543bd5a2bfc9192e1c7a32d0e64e956dc4402d7f2ef2edfcd170bc2b54fd004aa75ab774b52653b10b946a7b5bdd006ff395d07d78cb5eb41c29e158302bd81c0a9e79119010cde9d7837745f6aff9a150dc5ccc3422897398d0d31588a255a1327e655aebebbf44c452444e89ff9e648834c36f75ad486d4068efbe0241ca7d1eb8a91a6ce89f40cee7209db3d4f792fd089b9706e751012fdeaadb22a41bc99a440028af10f7e7a44be8d41e38d610186c4a8ddee8f70cc51062ec7c7d37183336b0ed86f02d67dfc8d392b01a652bd8fc60174fb064d5e592d01009a1217d80311c5028a7a7efb474ef2afdf499239373e2ad85827634d822c3135cb9a2223f244633f4c7a9797e9bfd75f07c64c076b67ab59b3c6ff1ee601b4d3fa7bb4129f9ff1108712afc1356e403a55b0aa56e0c3c63c3346c37ac67526c69b5a10ac6e782268bd52ab7798f24d94a1e4b2648ab7d00a7ceba0dd583987b8ed52f2c3ec4dbfd225af61231b309952cefbe16eb9bb1f5fa7ce969d1c3722cd0acad2a1e286e718cd3079bf846f921eea471152a31abb08a184ae5e18b4528e77bb6980bfee32d28dc35434601ebc1b610536e8f76117200cae327ccf177948f985d3e2711840676207433128522102e98e7f9a9bc1776f0d4a5dc973cb900e090baf1219a7646ec0dd37ef2e4766b7245d4a10156e62b04dbe97e309e1c0ea813049d359924e2bc2af7bcb7fad96cd79faa33c0d1990ad4fcdb67d3188e86ea32cb475eae66b3c710744d1e516b88e11540ac8ab30169457753e4d6161adee6029f65567bc90e2ebccebd3724da36e8c4c5f4111660d2ebb103586953d78d8a21be466f7fcdf46ff3e0b2e5bddfc34bb78f3ca5a7942bf792107161eb2470c0f614047c518449816e277df33445b0b397ec6ae07ac10413fad6f9f3c1ab6be1e5439f611e532f8bf6328649a268e950b36898596d93f770a13fa65f84514539a75a970c4267f5c7518ac57a9537cf203da00dcb25d4d10bb335ea3890b1973a69bfa9ab28b5a43b300c603ee96824dd1068103a168ad1ef8dc44de5cc85ae8907b6c0a96f02edfec5b9ad4f03ad6cd58b2fe4571c454766745e72c9e1359be86e596403bd63e38863886e03c750c31f4398ae3a85930df9f2ee82e64bf024bbe842adab8387fccf9bd4be1de680f18096c69703de1b5f4b0eea54bef90fa128017534eafef89481317920df58e281fc4101f140bebceba17187a14c2bc1175c200af2418c1e05f9c2fe28c80f182f7237eac51d4823e9ad06b299413e0dc820dfcc510fe1df2680cd243c6462da1a782768cd7cd541d545b9340b69a6cf86a97a7d8288673d6b6248b6a485702c3dd01a35099723b4cdd8588887a3395f183de3cb2ea4d658cf9c3501d6faf8142b885bcb098390f610b3dfc7194b9facd97400b06b78c347d8f80ec256ca28a19a1986bcb94916e2117894c077adfb242267bc7b412101dfb4ae945cc8a0566adf5ff4319f15bd4508c9bb16c79c9e1f94defafa158bd2f855010b6cb7c3084a4babfd51d0078096f06018e7a8e8e03778a70380c99a0a1903b65d1bdfb03f987ba659810863b1d0945c5903ceff4ba11b5277bb3995dde8c8040e9951fb199c815c749ecba769df5b48a836443a5a6ad63cd1e95ac0241144385c421590945a6c14210ece5103b2349deb1ab56efa4b883a40546a0624a1580d2adf873f0bf7cc095598da0f55716e8e2fdf5fa5fa34ec6bf63e25b0afd9760d93ba6caeedc09c5c1957b2605fc3d3c9ea0737ded770b9197ac43483c21fa880040fd2bcafb9da81119dd3140bcd32b7a426e96b2ea7a451f09f1f9a6c70f754cb673aaae81d76704be625ea46bcaf219587f0be666f528ff7355b6e6e08a8c07262a63251c1121ce0760206b8bcaf895780a2fb8e93f5e6fd1a25c3a1c0a23dbd9fe84db132d991bec638dcc1fb1abd2fec0ee6afe801d80add7c600349fed88ee8283347e3d1586688ba0c2a74c65bd7ce429edb313f0f4029d56be052a992cb19a4785f73f573fbff19e12ca293b0a9990ae81f1cb16e0428a1e120a98070c492d5cc77bfa8521d6121c288f5e90a1e16e035e99732a87d5eb9fa936270691f458f13800e739226007a052539a0f2b015747dfbcd319a0d7dfaa4630551e153a09f5fd23f2a75a32c73e65fddd784be80dac2af02ee1c8f49fd26865fdf0c0c7cf9504d79ab52ab205a7efaeb91ffccd2d31854edc0753b360f3962a51f98f38e68d98881bbca7e935f0450b28f2496de588851c5631b826a1054d312802ec5caaf1c6176343c9127f9029dde67a9bf89269a6786b58f7c408dcfeeddee7bdbf8a08005c353f980b452b117ad627fa9aab25607660e304b676f1c975d63789857194bf2d49b60d4a598ff77140f23001da7fcf84ef451d1093f549a9d0a53dfb868d253af16d730334f34ed08fde5e14b83328974f221e27a4d176a1572c96842e833a7e931d3c8e61d2f1494a6e6683c0e1f1b8c40530923da24c7ba33c731a7e033cefecb3f921bccdac1359d07a69898c09313541e748ac236b75c398199ec484b6c316d8ec4a73a38606031a964fbf27c32c201c0b4f8e052a642c306cc184d2a8fe00634daf9290ab08eec6d2e10da696a5fdc1246109e8f0bbf2bd87533286c6676b8f4c154b8443e6a9082ecaa2aac6df78c308436bed7a33b06c967646616a3d2f6a16d1d4970ed92149f711d1fb7383ab1294f650903b9f5f459e7bea9769120ef1e91fd8f4d31f3f77ed0506ab67d44986e5f0dc621e1e883f1bd1391309a8e3275da33185f7737fbde361d1a61dd04c9896b361dc295d94fec348461da7109c8d4453dd02b7df558811a0dc796fbec129d35ad7c1009f570f13cd3134d082170f8611c44ce510225e16a3ed7235d48d0f3654b91d7995d143437ace8521873af573e604cae31eb43241b87bd520a7b251c92829d46d8682c367a2a0961c47e4e719b7e3d50ce46db08849ec711a208c324099e7353050ad54be9e0ac78cb2fe0d9ee0e98cf5970975101cf13984c15ab37decb55cbd349a802c3f2b295fc199cb28e6f16c4a268e71e2f3d6cca0779643f8ebc65308d1800c8a4baa35b9a1eddf455dd630ff64afa229cba83d091a1eba3b62c0dd0b52e0dd09416d70755e78b863897f1b28aea356d403ab9768b759aeb7814c3e9d17ab01be2f7976f04a3a2d87fc24b925b901b093936379da51a2846037a6e5b6fd164ed7111fda5b82960348692d856fe84091e97a8c52aa11244946b81943601f5f20048001a3c8da82c623166a9d1fc5ee56683e1f525601bb00ba2206c04a3030da206e3f59fa0058fa8d37a54a3803554f1ccc650dccc7e0501d72d107ade7f83c636a75bb8f7a7fb1a9d35bd05e276401e90a516dbfede62caac9f74c2542481ea69cbbdf1608051f657ecf312bffa16c0c0f59d49fa4633a2889dfb2169fefa574e3444ac2692c5588324683548be2eeaa37d72553ff1c6c962b34d4b470c7e08652288c6e25bf93e62149714846d690941419ad236722d91304f3bbba407ee2458bd8e032dccd652a752da33f0cd57650cb3f89d267fec639882098c9ec470309406332f360ccc220329510e7a30df3ad52e5d156b86e2f65ba1f371654d6235bfad6ffae1ca01361c119fceb75ead402548cd45934812c6c7ce81b37f12337cd4284ebe92878df96269e6a371780bfc33b196fa4c353579e8e82573c8d3f907639593cfbc0c321e5ac40c57a9447d0a5bf851663fb3b38f8bf23704fd3499ce41610c7d6957071f223d0d5b34b5726f106df340085dc2fd0b1d499318451fedbd4636cdb721275c7a9e26db6e3342f91b6ab28186040317f835782b035cead3c3afade2a6b0a9a7ade9a9760be0001a66b45d2c412aec768f84d37b2013000534ca0dfee1f4905513a9da2b395c9a22da85d68b05de232a60ead50b9ef621713783b15ea983a11ee22ea527ccc3e633e5ace831c7f480cdf5a49cf7d5c99fa94ac1a8833ed8cd07ea80a2b720aeb10b22c939a09eca1f1ea8ffb66c8bb196d58c734ec3ff5491e9ec29a2b10a1cd62da432f2e6799b3632e299ae7e5a29dedceaf291dc7dd50b7db755035232f4c740d9dfda0232133f18ec2107d28685d147d03eb4137f0dc7ec2e4006047bce9224c329f9b3d14b3cab8eae890f2df3e87a99d0702012106914303473f08f20ff3f862ade431f69059dc1d5398503071578cf67fc393e1a194cbe9d72d03de98144af32959e52ea2f34104295cd4d729c3ed5b088981e470d3383891e4fbccde1f0684bf75e7ea580ec01f74320f5300f7052814b7bbedcaa45193b9890a82503a78be82303b989d090511df17056d9106d3d9d097c2121ca4e4a3270939f88bc6b2f99f6c48d1e4631d04a54e19bd6019fb773244022448eb9c6dcc78017e1f7067230e82f87d59c26e298ea33fb92813dd9701b850eb15838ba9113f752a1c4d19b2bc8f4d460f5cddcbf8f0de2fbb84219ad18dfbd9a97353c28ca9ea8872f0d97939cee51dd562e08af191b73ff720bf969b33c25d5c03209beb8aff3a4556a3168d43dcf9234b423d24903a53a2bc2d5741d4fba084456986144a139454ee6dd252693fa080c6e8a636106e90ae75d5c81b0d89c3783359f9c7d6935a77089d2e6682199c4fcd69ba2a842173227d0c364cdca4525dee08f54e676eedd001ba160dac346f311d08d46e64295e8ec2ab4e1e19eb32517be777c46f5f9c0f80a4776fc03d22fe09527fd755603a317696bd087eb9861ccd46cf855172ff01ef66904025179cbab383e9636356441809ad9b8910a010382714a296669ec1834964282a170c00245e0ccc950519f7a5817e35b8e823c2a3b3c085a541c11db1efc4cdb1a87be4e3276eb954be534eed0513b18637a8dcac358091b44982a867d17621ee0de904707ca462050b167aa35318f16ec8aef1ecf55b1f7dd0482956be7ff5d83f3d2d1706989857851a64840801be81358a5d5bcf0750423188ef0eaf6851a379a7fc725bcec408e702541dd1bf8df6aaddee784cde5a4b2e50c528dfef48e832984ed2ded88ff8a0f47dacfddbcaa3981c976a2082d673c1e24cfb11d170dfa37e8972ccbb2e51c6f57d34e9f79ac841fe7be11fcd2e974849c11ba28f0704ca8350217bd654ed70162c7dbf6246f1f4929d306c3a8812d1e8af30001299d7e7a03cf860a018bca5bb048e2acecb21c93536ab383b4033d45912a88dd78da2e85b5615969e388e1f007233fc058532f6ac396983b439b3cebc788d08da53dfa9babd8dae6294166b54bb21a7620aa3b457cf5dea2f56ef217afd0f32fb8aedd2903268c4370ecd23ada131439d0b7271c2385ac7f10864e440956b8cb6de00bee6150fb16d2495abaa61aafab3e215c9b6055d424663d018a11a870691ec5f352305b832ef8018fd89c19bb75b386eed17d00ed0f4c0d845a36995a0876d4645422121506a5ba9513f7ba86c6e6ec5ccd0eb59133959bde1c8a963b27122780d9650775614b5a683959d332d67340472d2deabce459170c96accca27d133c6032e6a8f83ebe320119d77a31db32be0ba2793d01a5af67a6964086e729949587e506823c0c5a8cf29754b638fa921f80c0f11f07fe47e932892933e9305508be839bb1617337d1146c0acaa2e0045629afa2f41c6171fd505dd955317ef94a0cfbcf61ad00ccddbedf40f5fcb22226db737455f951f352ba49d950020368813327d6f0c7c0116f02c475cf29fe747c2ce223ca013ef06bcb8e0446cc0eac3c7d0ea6d065c2f77486968f56cf7b778d5216b430ac8d07454a82ca163256bb22ed0a4ff9d07af22eeb5a50968690c7a1652453a734b489e940763f256a42828dff22fdc1e7142df0933a1510d4a793bc69ed1b860fa9b2dee984823a2986dd872eda8cf9b2e9d91cfa5df73ae29947da43ee0fa1a0f890c4c49148c9d780a0b2bffd1dd8569c230716ebad859ca4c081502df6cd8770c10a5c759d6fad879941eada6d2a476f83158bb8ef22a5440ab6664929b9b35f1f8e45e82e4b73e3b2e7f7fb90864c7091fcc749bbb1c240349d1a084d70dd148b3503a40ba7812b1f3481bfe7f03c39fc4781c918d96fd25de21b95f84e0e070540f845d9410f9fd2441177e3639125ec1bffe226e4866895bf2a8d2e6d7d8dddadf5e849758f35588acc36d78e51e2f3e5e63760b439b35bc5b69095647c71dca72eab700b7a430ca2009f31d0b7f4bc04e165529fb9c5351adafd9e19f417aab82ab31a33615aaef5e0192005c65fb4d7a8c31d4d4510ac6da922b394697c5da025ef4cd2a3d312904ef87f63fba6d192f29888425a3d7e0789e3eb1eb8a5a79dcffdc177c3d351c37310cf41186bc2fee49e9f2b34651264a3a78eaa50c66b320f8ffcc644b51bcb00da4b895239697929cb6f954e785265ab0b66e2d7dd28c29486227891a710ea475c893dffe0cebcdb088fddc6433e95d94ae0f22b99cd0d3350f341d580cd2d6f60f6370af8baec4d6c2c3134698e06ea06610a3cacb32ff57c4cb55e964b01ebb4f5b2093f1996aac84f645a3af2c0fa59fd9444b77d599d97ee32e387c802dc53279516e5c557658615fa2f9e18075c1de7577376c818425571c101c3cdbd3ee198da84e5ec183a0792c5d640e8d0fa62692d6260316263b05fac660d0a02ebd604b7de9a60d65d12dcfa652218fbf603d47df071eec284e00c5ca696683c566a7e4e0d8f07cd6f879a36be73c73e36f777b9612b4ee4d0aa53b4b90cef05727f29402c2c42ba56cae2aa7a00a81a24d816a9af0f4b03b99571fedf9f93eb578834fe48bd378a3d123a8c2861249cb0ee757ef381abf645fa5467044dd1b30f3f0b92d95d54627615df80175b3c82a80f487616e20529943ea0907d021b0505a6c837a10f99f283f5ac133c4b6f0f40610802a216924bc36f767fd34279ae28a71bd9cd4f67ab6f44ca18459e6d3b422ffb995d75e515be19a766c9f4c8707b4211ca1501bc958d0255de82b9a5a4544727f30509bd22ce70f3578e0c1292fe8fec8894934c17bb9dc5d15f77a28d175fa7bd0d4b342c2f0ab4c98be30d4dd5708a154ca047457d15c4d48c7fd2ee103b86b1df2264c341a48681aa330ffaf4f5cff6407f32cb1f0355af1aecb3017f1004848bf2df4724bde916b462ebe2cb85014fdb2623fad747ca8d98d7784b8f6779e1424907cd1eff607e71d23b6d15f382634c66869581543c02d85a051fe1af9092e767e7e0a64590abe20cf408aae3c0886c471623f875dce8f0ac464887559512c33a875252a7fef85e19b1fb9dfd47121de033886806179066debfa323373c7fef87a2e546e00757ce0a63fe4dd2fa5822c7523e49e61113d4d4adeb05b507171a1924d19d6c5d65a69c6541bdcac7a0f31448dffc03894ffc9399ccc3a1a15785bd1070a31b6ed0fb554eaa0f2cb19fc4295c8304ee54842a0e571040ea6ad201444ee2f0c8a2d8df610d4033f0294203f706008141a70e761a89f2f4031bd8d802b94ca249f5cdff6bee28a6ea3fcbdaa9ae054e6f90a013d9cf680299b24041d68beaa5caf57f3e5a5bb3841042b69432440eff0d870d457caf7c99be447c87f80af1b5f20de20bc4b7ca77e9fbc3d7872f95ef946f0f5f1ebe52be4adf1dbe3a7ca37ca17c73f8e2f07df24dfadef0b5e1ebe49bfbd6f0a5e1fbc96519e97bf4fdac628b66f87e8ed92226dff7eb4808ce84e678cd1be933d01cbf71bec18f688e6d70567346a2396ee3ecc6b909cd311be7aa330d34c76b9c6b70ae81e6588d739a738ee6188d731a672734c7679ca9ce36d01c977136e37c03cd310dce68ce4934c7639cc9383fa13916e3bc3be340731cc67906e71c688e65703e738642730cc63906e72834c75f9ca7ce3ad01c7b7186c179079ae3179ccd9c95688ecb9c5d70964273dcc559eacc03cd3117e7169c7ba03966c199cc790acdf198f316672a34c75a9ca3ce3ed01c67715ec1f9079ae32bce589c97688eab385b71ae42732ce60c750682e638cc5905e720688e53700673b64273ece5fce52c04cd311567dd79089ae329ce28381341737c82b31467269ae328ce26385fa1392ec1f9e95c04cdf19573116723688e8938339d8fa03916e23cc419099ae320ce56ce49d01c57390371c64273fcc379e99c85e698cad987b3169ae31ece53ce24a0399672e6e1ac04cdf10e67a5f3169ae328671dce4d34c7399ca19c97a0397e72c6e1cc04cdf10de7a4b313cdb193b30d672e34c7359c73e726688e9b9c69383b41734767a473179a63f21964f8be928821d0dd2111bc08dd1d02c16f747728860f9c88ee0ec1e081175c68e141e8ee500738b00116ee83ee0ead701034a0420630f019dd1dba8005ee01dd1daac03ba0bb431498c077d0dda114ce01dd1d92400420f0d3dda1075c07dd1d7240031e447787187020ba3b84c202962840c95002de4377874eb809434910708021030c15a004020c00c95b747788848f70440401e086ea1be93baff96e009edf00d584671b846e88e736c4aad5998d15d780755e83c53aa7699dd568711aae331a2ed799ea753ee3f53a9b61732ec3c6e68ce6e64c839b9b3319e3798c713cef70ce62e0e09c6790730e2327e77c46e72c031d9d730c76ce60ecec9ca778ce5ff0f09c61d073f6a287cdf89c5fe0e3737601ec5c06063b4bfd9cbbf8f939b700c7990b1c38ce64626716c462e72d80ce638080ce5141672d8282ce2bc871ce22478e33163ace57e8d071b6e2e72afe33143d8ba1f4ac02f21c8624cf603838a780030ece5f769cbdecd871d6099da910123aa3a083f3141d747096c283f3093cf0e06c02d9390a99ecfc343b9760363b17c1e37c85078f33d30767223ef8e03c448fb3103d7a9cad0c9d83181a3a0301c2b90a08209c977c9c7ff0e1e3ec03ed4c85463b4ff971eee1c78f330f40ce528000392b0539ef1024c8590721e72842849ca10c39e73064c81987daf949ad764eb29d6fb0d9ce36109d9d10119d7344ce35102172a681ee0eb99d9bdc6e67a4223f2a52e433d0dd21219c09056b085e0d614c1562781615dfba0d75fd86be3e529be3d09be7d0f13a14e73b34e73c54e73d74e73e94e730daf31fea731c14f618fd3910c5f1201a7b0e0a741d34e8a7398ea3465e69004ea98e93f4e780d2efa0e4852807ef80eeb80754e832dac167d483f3a0b27f4067ef41797c887e7010688ffba043a75110fe83fa38104a7b10fae34228900fa1415ea3426ea3434e446b27426dbf51a217a1441e02bd5d00b45e048afb112a808f40453809f4c891d0113e004ac2094091bc043a80178012e006a025fc00b400470035c093d003dc048a809f40933c01d4842ba1275c0134015f42957c01540147812e3903e802de008ac21d4019f007d0061c02d4018f007dc0254021f01468043e012a815380a6f00ad009dc029402bf00adc031402df00cd00b5c058a816b8066e02555e12b500d9c055a7e0374857380b2f00ed00dbc05ca81bb403bf017680bf70075e130d017fe01ea81c740613808e8072e021ac38be8b8437d005018143da4cf4ff410115019eed119b543524fd0c501806e2da25c8dbae06248f7907e08b45c15a1254e0848d615a30c375afe10a12525a2e5cc46cb1f355a121942cbf52284965b45105aee1820b4dc32b514cb058346cb1dc3072d170d1068b96d0cd1929bf4a0253ff980962c85072db9ca8c967c45464bd6e2012d994b07b4e4288468c95e6a297215b514794c2d452e534bb164304e4b1e43072d198d1cb4e4368268d94d8068d94f62b46c293868d9557e68d95760b46c2d3eb46c2e3d657ba9a55876153ab4ec31656a29960d462dc5b2d1a8a558761bb514cbd9a49662399fd4522ca7943aabd4522ce795726ae112452dc5e9650190f49b278af80900bc3fee2d8457979737385bc45d789c78e9534bb1889d086ae2a50eba45dc841097971eccb688b90c39bdf4f1638bd86908132f6d44b6889900c0122f0350b7889708d3f472c5d4522ce2a62cb6bc5c2d4cd822dec285122fb70b066c112be105095eee1713d8222641185a5eae181ad822d6524696977b462dc522ceb2069697cb4608b688b1bc91c4cb5dd3648b38092748bce41b9e6c112311e58897bc83942de223a818f1927fa8b2456c841045bc6422ae6c111781c495978c45cb16f19526a697cc04972d62a6278878c92588628b9888298678c95478d9221e228c102f594c155bc4426461e5256b31668bd80a1741bce42eca6c1107e105102ff90b30b6888108a3ca4b16638c2de22a652cbde433d0d8225e5ae38797cc06b7b145fcc31b3ebce4354db6887d7042e565dff0648b984a94292f7b07295bc453a8f4f0b27fa8b245dc83103cbc6c228a980724a4bc6c2c5ab688a53429bd6c26b86c112b3db1c3cb2e41145bc43b4ca1c3cba6c2cb16b10e61a2bc6c31556c1147c902cacbd662cc1631142e7278d95d94d922cec10b1c5ef617606c11e310c693972dc6185bc44fca487ad9671471d21a37bc6c36ba8d2de21bdeb0e165af69b2456c8313272fe70d4fb6889d44c9bd9c3b48d922ce51a9e1e5fca1ca16710d42d0f0721271658b9806249abc9c58b46c11376962a49793092e5bc4484f1cbd9c2588628b8ea698e1e5a4c2cb16cd1086c9cb29a68a2d629285d1cba9c5982d327a73318297b38b325b3482173908c872bc3d06b28411f907c8f24487812c65b67b802c69b5bf40964443ee0259ae4ec85b20cb850af20e90e546013907c872a57e7c0364b953b4b34096bbf3f115c872a9407849965b35740d902523f5b80a64c9491f3c0364c94a3c8e01b2e4a5d92f4096cc24bb05c892b378f00a90253b75700a90253f097d0264c9ba1d4f812c198a834b802c398a7c04c892a5e82140963cf53f802c79a7e30e204ba6caf106902557059d0164d9484047812c3b29f60590652be1f812b2eca59f2b802c9b09762564d9597c9e00b26ca79e9f4096fdc47313c8b2753b4f42960da57304906547e5fc0064d9520620cb9e1a5f00b2ecddcd4b20cba622005976552dc50190e544aaa588842c67522d4512c8722a8d409673a996e2915214812c054096d309578a952ca7ce08594ea80090e58caa5c8b48008450e44684ee0e11d9e8ee506d88902040e8eed00fba3b44a3bb433e280848953fd4e3031eb32c952ff3e0a9f23bd055bed08ea8cae740aaf2497aaacad7912328a9f281942a3f86e307e6f354f93dbacae781aafc9da8cad7c9c1d955fe4855f9375d55f9362f576ba9f2594c95bf129de653655d657ee2e6b5eae2c383e3848ea09f263c10a25c7c0ccd9c6c437e301100001059424c182f4d5a6451c5962eb818a3c4175e942181186180a1e58c32c6c8c2c61a6860d935fbc6b691c40d4e9a20b143942747fc40458a11440851a5082c485cb9c2449316a6123cc185082aa68862083161bc08a145165558e9828b31417ce1451920c408038c2a679431c6121b6ba0f103afe137b80d1f6e70d284ca0e519e4cf9818a941e8810a20a0f5890b8228589262d4a257882cb0e544c11850e62c27889a245165540e9828b31397ce145191cc408038c2767943146121b6ba07143afe937ba0d1b6e70d2c4c90e519ee47ea022a5062284a842031624ae3461a2494b099e38a2628a282a7f063161bc543e132db2a8a2f28dbae0624ce58fe08b20e5f4624839cbd4291b8e42d0473b66d88fb86a27f8cbcca5d500a8ad656666b652bb6b734e4de6335abba30475b5b3d43035d852374c1a3375a7ea8659e38aea29ed8dc1d8213e4fe5b4313e4d5bbf218512d28d0ab6b0420909d73a24249cf89db63986cc1660702c1d9e70c4f9bcef2bcd1b6c6081846b2a2424dc246fce4761320eb214ff43c2c812e643f690a5ec63aafc1db2a4f197a5b212140e597e4923597e4a959bd0e16ec8f29bda55ce89fae10c128eef2d4df0a96b4cd3b6381bb25ca817592ab9c8f2736a91e5079504327d542cb2fca42a7f5122597ebaa5a7ca1f5265afaab29412597a53200e065bd05a3104a737655ccb9d1a72c19540350cc38b2118144cd5f04c0d411136069432a09075bd9461a5def40cedda59df44238d74b882915fcee07dced0a56dcaa3ea3403528541ecdd090dc445783a1963a9ae9730b0a83dea7ad9a1a9e2b4fdec6c5ef659655deb3ac796f5e8dace105cab188c403d9b7fc172a8183d10377766ea7a09c34c0552d78b1867aa6cb6b7ee061ccbf7ddd947b6dad52d6b594e0de3eb8659419aa8a982d6ee083faf57202806525d2f3358aa1fd4f512069a2a760d0beb737aafcff5896751fc8ebcdffa58e2f708002b28f6effdfbcaf57dc5df57c11004c1af7ab939d39ac9b4a2a2c42adc93c53e3c28d8b55aedccc3a95e072a7f7e45d70381f845f5d821eea8a5ac02892e18ec9f4d7c603826812b9e42356d30182bb12c9cdee776ed2343f19b3bd1b5f2668f2523106c7566aa944ded107f99b6d5e81d792d9719d90ea191c9643debf770b1c4a6a262e4af5a62d8023fafd56af1b071cd8ec289416ba7cd6b91650b9f78ef4e4270d7c92e59b61092bbb39561fc77271ef9817c27dec33bf93e64486954cbfd06d91fe511b9fb638ffb4ae05a8258dbe8bb3867fc914d7d8fdcd91b839b39d5b53d777777ef76a9cb74b1a86da4cd58915925f1b442628565c5c5aa8b5517ab2871b52a2335963bab2e562d5821b16ac1aa051b5f29031212528501e67a5512bceabdfcc8b2ebd6f01f02407205efd31369692401c97a6831ae9734b2d41296c6522d451890ac472c09eb5b953412eef571da5a2ed65d346703118ef52411f77a91aeb368eb46a6abb610a4eeab8415a32e8925e6dd6875b810b01e8256cdf366ffde9737b66492d63df284c57947627f66b43c1c1ebc82025b118b71bda051e5058d2aa24155fb2e34a6d41206d4481e9dffe800bc4fd657a2f87d8db06f91ac1b9932d46f258ae20a31ccbad7a9fb2ac183ba249610d43c6ff65cb3c6f3bc5db306c7f23c0f0bebfb5a1200dc546aedbfdd6dcd9d936b9e377bae5953a45fe0ba6bd6d4eddd86a14b08405d722ed1da1d2ed64132a604045f2d2546ab873fc21de18e70ebb5e74d6f8a710a2a2ace98a24207af8c1ad0ac90d0a0d1a1d9a971d19509c69efd7993e5e4650da89d87b4c6ce73aa419287eb7fde9c426226090c22c045b83e808bcc6341a67937d3e4c878515e72583079c99131a3bc38c99131c2aa8ce57891ca6ec218cb7f545442784c5ed248a1c51421d5144e5358a06b290ce9a66cd8222a77064cb872f274669c9cc01973064737c6cc541ae3860b698b1eb4b0c0a001868329306a38313dbd94c0a8e1821f72a6743674a1baa1044ebcec20eab050d3544b534ca01314af296e90a698483a1ba8a250e25b20a420259a32963415bae6553e0b519519a6632f6740e57a6ab9543338c38d5ab2156f365f84ae8dd548a7003a89475fe720e3a529647d9b9677f63d6c912b9c0e7cb31508c4902af15824ef906f045ef56226b8de3a0aaed651d80341195dd82af1bbab47b8235cbf45969c637d9cb3d677ce5640398c2e6c555ddc37c2519d37325b7471ac9ea1ce7bb4f44a08c29a9fd57b48b9e99b737a2f1b918ca1e7fc5440446ba7ad69f5aac41bf22961242424249277e6792dae6893f7791e7f9ee7a190d4e402515d018659c3cbead100c49325e756b7a1c905a20ac3fc314557835febd4efadd0c52f04ccfa6a8aa1c339a7f8d984640c5d3ff01e10ab823696ead76287a57750247765a5870023ef1b0093ef55c23755d046529d241c55efe2cb005d67f896188a3fc8f528e4990315ad90bf01784848bcb26f043134d8b35ff35e187e1b8c37c9f2dbb9038371eb71c297234823e18b197e1d01578db96976fb6b827718c4da2db4ccdb5d6fff7920f8811ff881dfb7f776c5edbaf7da585a892bf14964edec63c5208aab95b8c44a5c893788a1189ae0c4f33caf82a128d65a21fdeaac226d56cde1c018d2ae9e8713698f9eb5ec03e7d7bc9f8dc7ec8171674c8138673458892b11058d438566f4ea7a29430665a08029c30b199451f61dae31b53cadcdb4429b2f18c753f834674de3e2d8b91e7f7e21f97945b07ad63004c1e9bd59a9c330a977c8fb98702cd50e95d61686496152984446a0cedf2319f4e65cfa8a5a41eb53739b1eba3d4fdca1bd0e7187dd29848b042f35c650cd6b06a398a6f534b2c83033b6be401ad1987a418d393f54f12ae322a38c30621033cf04328f0503fab9f1d945070e3926f7f6f424836794d20ac36233467ecf399b25c5c8ef3977ce5d01d16a2af2bdde39d362e47be7a5aec120d6498a372818b7ae949177a5571704cb4001538930cf3535831cc65851066e9f0335b61095015754d9e2090e55aeb8822be7d4919637a8a001145344210316e0b8ad54fe54b3378f03b2bac2eaabf314ab43727ec582ac7a73d732724ed17966379673aa95909090a4e0f8ae325b9b514461a6f65d527b9bd5be0b8bb64ddd9cf15dba699b512ea8da3b7c68628922a42859e105d741d4be4b69da8e505046171ec030b146066fe0faaea5ae3510d3c66e3431c68a0f3090e209aeefcad2b5aee2d4c5f5d4b5be4b8aae896d6c6d5eb9a2a646b537336d9b597ad6676abf55656b138895f181b052fbacaa699b5373c69f42aa4cd3660216bb25a28401d3450b70ed346d47438c49f3060c5ef0459a3670fd43edb774d356012d2c285366091e6e2802d76f4175ad7db0853828ada5bdd15ab2a4a87d56145b9b4d5666a56d33a967fc661d51fbac345d13a9d2d43e6bd7b5a652fbaca969435285861a24a145145cc4c0f594da47507c81822d6a306306543081eb1e6a9fa59b361b31463829d3458b32669ef6f6da676d6175e9daa24953b5b71cb5bf429ab65dc1106340d15d99a2056170fd5552d79a87da5f294d9b9017496b5cc0c31450f880ebaf96bad6526a7fc5346d2b4cb1c4132b766e54c500d75f65e9dacaa96bab2e6d6be1fa2b2c5664a4f6a6a3f657bbaeed4eb931c409be48e2055dc6c0f557555deb1dea05c630c344d20d7a18020aaecf4aea5aeb50fb2c25326a9f3545949ab6deeda676bbda17a1885396f606ab7d9169da768c145b683153c61b64c8c07547a97dd169da8e8048e3b485872f6b6e9002d7179fbad6508e94a092a50836c23c9172025ce750fb6254d744325d5b4d5b47458948e196b0cbd3de7c6a3f84eada6e3f4c132e4d5b3f3185588064a4f6d653fbe0ae6b555d4beadaf6c3295df36a3331813a2610aaf6bf2f4dd7aaf6c6535aa184540c90f8a10b25707d30a96b8d43ed834ad3b62d2841171318f1c40c1528b87e52fb20d3b41d1501444e09242b3e744101ae0f66e95a27d5eeb0f63fa969eba4a4a90f4ad794bea5bded4cdb91095ab00514515c7162290caeff65e95adf50fb9fd3b4ed185ebc6022f7e508354c80eb7f4f5d6b1b6affd34ddb91135ea8218334383031e505b86e27b5ff45f53f325dc3a99a36a6a2fa90bea7bdb5aa8c0c952f298822a64c0ed79d939a9ab60fdc6045182dbc48aa1203d75d43ed7b545d6b16434175a9cd524c5d9b6ada5eb8a2c50654aa9081c6165c7f5675ad69a87d2f49e987daf7a6742da7da986992a9fdf9346dec3491a6edfbe2082a3378410ab61881eb26b53f95a66d45c515663ca15303440ed79f4b5d9b4cd3b66218e14414279400a3050a70fd99a56bbca6f6a753d7bac64ff8899ada6f349d66d67e4f4d7e6781eada469191eab799aebd6a0cd832566abf971a4af394eeaa1a112295d7062e80e20d2cc6606a7206aecf505de31b48edba46d5e734bca56d22ae9beb1203b6b6da2d5795794ad76e6a9f95f88dda600d679c41e50924c69881ebcbd0355673d434c60c338408e38b932dd806b57734201d4183252e55b2e0968c6dfc5198361c66d860268c1359949a70ed466d31ca58010aba68d2430cb6701b55046a08f1044d1562a6aec0d17e18cb19c50fe79831cbdca20517a123732a752d09063af5fb0e59dbc6efb006fa746974a993479d930b1280deebc8c732338e4e585263d9358c653f8d7306a3e791a9de77ba3656ef3b64de6140de370535489d60ccd4a04e227582f182893a8f4c58fdf875c4b389c138ee308e3a8cec65645defbe1a8cece16abb49c4280e31f21823eb04a309a6aa875497832316eb18a2b53bca8fe90dd11ba2e7da20c14c56ba564e66e22c23ebcacd6e079e27085d3653aae8621e567336cf364cdf520a544666b2e5625919e7d7a9ceef6462a5f1565c8cfc7ddff77d53e5e834826cf0d72ff00ef53b6a65c55b43491b0120a7c33579e4ed30deb820e6a549428a291c37592387a79b9172133a2da2706404c1050d43dab022096774a3011a64e06670bd61c318b8ed21e58eb79f4d7954879cc931e15a3762ad612c4537a8e8462ed2ac34965eeb897186e689748547c3cb091c345a8437db3de77ce3c6f3e62c99bf40cca409dadc0611e73ae768bd5c552e5f452f209fbdad727ef3974e0dbc06d7ba386db5149366980dd27fd1e96587f473e8e46283f46fa8a81ba5c82245f76bced166f3b2032175a35e45ad972f77f8ac0e10f6b6fadec716115f2b8ac5e622c572731c3abbd8597fa4538c88b3b1491271379f51d376f3e63538d76d10712fd67bf52262992d6a55d78c9a33293a757306456715eba3dfa2391b8edb0d12922f9a34e25a2d23eda249226e46a353cce6a8ecd3c5da6654af8e562d7e95c3caafca3795792afb540eaaaca3b250650f2a0fa96cab0c80ca01a8cccccccccccccccccccccc2c446566666666666666666666666666666666222a3333333333333333333333333333333333333333cfc033301366c2466cc423e05bd1998b9cffbdddce97ed8dc8f9b4bd11d9ce37b2b7daf948f63644c8f928ec2dc8f929ec0dc8f92aecedc7f92dec8d76be0c7bf3b13710f636743e2bedadc7de3e389f99f6c6e37cceb2b7d9f9ecb437d9f9fcb4370fce67ddde3a389fa1f626743e47ed6dc7f92cb5370ec8333d9fa9f6f6f3b96a6f3ace39ceefa4bd059d81f6163bbf99f686e3fcceb2b71fd8f9fdb4379ff35bb7b79e33cf79676f537bcb39e39cdf545db5b71ba4bd25ed4d696faef3e7d264da1b6b6fabb378fe7cda5b78fed4ed0d3c7f676f6ffc151f87ffc3a7fc19ff079f08bff207c03781cf00fe04f81ae0bbc00f019f9bf0f9099fa5f0b90a9faff0590b9fb9f0390a3e7be173157c1ec3e7327c0683cf63f0190d3eb7c1ef26fc7ec26f29fcaec2ef2bfcd6c26f2efc8e82df5ef85d05bfc7f0bb0cbfc1e0f718fc4683df6df06713fe7cc29f52f8b30a7f5ee14f2dfcc9859999a1a0b9b0f257f9bc4398726dcdfd0d0021142957aaee6ec94f1e940d55b7ec1d4ed254aa4ef3694245bda07879f344e95357475d0fea0ed5b5d50d405d2696895d629bb669b7ec9655629558122c0956cb6ad937ea66592c8b6593d824168945628fd823d68835628bd822f689ba579669999688256287d82156881562adac950d628358201688adb255766997f687fd617d581f96ca52d9294b44dd1eb687e5617958292b6595566977d81d5687d561a36c9485b2503687cd6171d833ea3ed9279bb4497bc3deb036ac0deb649d6c6e735bc3d6b0342c134d7691768ff66867d81996c932d98b7b2bfa42f13dce76f93af16de2cbe5ebf465e2bbc4b7e9bbe5abc4f71ad82226c1f72e6c116bf966f962f926f145e27bc4d7886f256c154a55c4a936df17093835e6fd7557efb8803e75def8c458ae14a7804ccbd6c593051ec9022b881dfebcea71d16a30056379e4fda4e7793934b1961865df398a468c9f1e39bf1b5abba3e562bda4504861da80b23049e19062255e0aa2ac0351d76354e738e8ce613f393ee0e27298b2a0c02d05c25e77b9c8d832699dc59272b1a4a4a4725c2c17f9009694144f8f8bf56a310005299e1e17ebd56abd7a6893ce59cfeddce5bd872e6ebf178ba5e332dab98b873625c939588a2d8415429d675a6bba68af589256ebd5025ddeeb7525adbf74de7a934a788c76ced3ba8bf2fca35fed970b257005fb95e46351146696f13026a179ee7a015c2c149220915a3db7fd8a2589b5eb4a587735a9e47557f851af86e157a2ebac2b719dd5c3fa8b347a3d245f779d490fcb751e92c9cb45c6bc1d1d0a94c29ceda8aa9092949658284839853d4ae984e2788393d331a09fd50151f1311a7e751875dd87b6de436dce435fbd522286e157a4118e51ce45311459ab2f11bf62914cc6875f31b9b92886224f2886e21c00129d501c6f70725c8879802b0f995bb138bd237c73136bf2e68675f39b1ddae4fda33b0f6f8e43c77fdff755c54c10bf7325e2776e2ebe4925e17548a3f1e1e2705eb12437a3982489d737503a23483809870f8ca767ab1829fc0f65f1d098d773b3b32ff00664855f5dcc191f86e14d184e1dd62e6dccb977f0d3c9b5cb5bc1605ca493bcebd0c5f5387ea492f0636824e2d0a6243707e956a09eb01dfa6226841fbf84f59c7fb42b984363bd1b69acc9c54da69188a47da125c9e93ce7fd8a99307e7525e357463a1f0f924a702e924639c7192f529c87543c8baec4875f223e5c9d890eb933e62d599d4532c98979b3e28c34e691b9d5c3505cb15aae97cdce91d7af13cc834c858021656519439af82310bc481ad91c341a1f863f0243da8a68dac2af4826390f2f924c9a94e43c64121e04190a26d2833028184325c1114106c236912c0048ee9769c339110a14282449684b3425281f2818140f540f940ed40e14f81f7a73185ddd878aefa1adf350d677e8eb3ad485832e8ea6b4441393442428249c9bcdb119c00e9d806487e671682eb73af89cf89b873f61712119eb1cf0e195800f5707dfa4929b9b05a34c9d5542b84827d5694278f04ac283a451d377a3915402ee2b49ee7557ebacd5c5f0e0bd50dc5155212521f1449ea3d9afdd172a505c96b83cb13c96472d30c56297efa528459d17a5e85a295e869fa7c0ba117619ada5c34159ffa13ccfa1b0f7509fbf765ae35db1ced9494107b54b612783f8e4243a7dd395028f0aacebbca573263d3be938e70e4d3267f33daf35c6950ecba300db7448231619556984a04a1c4718ec97c96834a2174017c283e43fa2696b1249174e585c2e073beb399ff33c2475def49149723e9f64da763e63bd22597f5d09ebaf8b3c3b748718b9c9da7665e85a4f9652e7933a7526112bcb38eb9405f6d69fbfc0da42b04dea7c39a70c3b34cf508cacf3bce73b0f6349747ec2e27448a326253ed7d1218d74eef37dc592bc48a3269154c273d78d6024eb5b8d7c481e91ba96b476ae7326de75ce4332d921c99847e2b4be3896c7487396a4b4c494c56971235d9cec5b759ca3b0714ed0fcd6715e42f22fc980786975a7abeba0ace7a03e3a8fe5fc87eefc74712d24737eee788949a226695cc468f39bb38618b5ac0db6b6310ae652274371d4098c7bbd85c49564f5d697b0ee2299b8ce7a8b64d2a4c47516195b268b1327b9af243f37d2ac559f006c63916c65b5850b2657d9a11d9aa3f8d778b33b5a2b14613f642eb7bacf73acf71cb62a47b6021e4617079bdc6a892e72b5f22177ce56504a583d248b3cc2f1d01d2ac39ccdebd01ba8a5260f70056973acdefc142394ae752b0992695b7d1e85696bfdf57919a6ede673aa5c2a24d3b6b828a929f284c531d39cb1d3645d9d0c55272f2541c24b60e7e866cf99e3334ac7049a4113c78c4dd85c9d0e2a3e075d3d88f61c88f21c87ebb1d76134e6fddc5c075ddc9c73ce9e73ced9fae2a678d697ac5667adc8d832615d9cde9c17a737276c257a2b5204714e8fc79c738e3e2bb1c5dad1f9961bc56addfb07fac0c85c4e7ccf73abf3bcc52e1fbab8168b05b6c4f0463d4a56463ca4471ee19a928cdfa1314f67f51c1af370686c24733956cb9be2fc8ae59a36f33714697a73c28ebe760dd1e2cf8a1124d31604e3a41c2fc7d84b58f99c97321c275a5d0e0a7b50eb31ea3a0eaaf31c8af391f2fc86ee7c5f202e882e0e882e2e461787832e2e872eae059b36cffb098bfb4822266934d8b4c5f63d87dde74b7ede4332e9f9cf7d48264d4a7afef373263e8791b1fde2605fdc0fcceb57929bb3ede7fbd2f5438ad06c839164f5be5c6392c7ac464030239fa7edf503ebf159bd10eb9fb0389f2fb949434706d7f3efa00bb17ed3098bbb2173b9d661cfb9fe039219f9bb4dacc9243e64aceff323dcd690547293868e0b5c0f09bbcf95c0ee037b934a7eee731fd2c8f59fa6fe0f8d81fff9110e46632079f0f5235c0b3422029aeabd05a3b6f5e80a50c599ea799e93156a54d7153ad472d3542f045767c599ea1da86ba3cf6157e2731869d404fe451ab1ee739054d2f31fd268f59e1be9a61ee0fadd4599ac0e7b8b326952b222637dd85b879d098b8c35193361f59f2f69c1fef3d60f751d465bf7a1acf7d0d56faef3fabe92d0c5c1e8e27ce8e27ae8e278e8e276e8e2744e585c0e99cb8dcfd93ce73aebb99be75ecfb570402df390bcbc9bad72ad8c308d87b5cc03bf8c3d475fdb88a9ae1d6b018f96b483dbfafc74b5c1cfa982e5f754596f790cae2af8afc9dac49d8107c54f4a054170764f1b2c7cef892ecea34eaf117caaf7447a4eac2cc6c5f14b6f077a51730646795373068a3151f4aabae655f09e9a3415fc97e5ebd2369ea82fd7b5fd5284990a3a4da960fd962ac85439f08b113dd4f2db52c1b18aa1e73975ad247aea1ae84d795dbab65a90a0969e1415d4523d24223e782fca8baae019bcac8cd1235f0041a29681c73282074197d34acbd7e65fac4c55d6490017c7ade99aa18b258a63462446886ad75c2b846795b0ba718561ebab70b55ab1560f59ad7d9120922d1b6a64f317357a7d9c336f8b18b7652eefb125fd8a2de18f1f492636e72fce135b240c5e65915862e2bd2a8ad032ef22b938af67de270c46242df31e92465ae6ddb551a013addd518a4ed5fb7ec54f0c4551141f521716e7476c15cd1b5b405df3def2c4f00bc390a8651ead651e0b6446efa01623ebe5ee2a0e154566fec48f3fb26c8169b84228cbb9788f2c61f0aacec5b774a88cde8951e7e52b093aa4ac651ebf8e6081e1a0468cc381e34c595868e188966519c52c2df32e922253cb3ca81187c742d7700ebb37840a2de8b8f77be72cec346d3ff7fe7abd6cde359e9d7b97795ecf752e529d1d980e2d5f4551ece9b9ce5b3a222dc7aa23529dfb5017b6a787941dd121df328f2784c1ab3bdf9701461eead51d1a2b61357eb524c77fbeaf2541a7240a3f34853903a2464027328addc89cb18a18758e73ef27634b66ecf38bd341c696f47ffe4332017a7f71254d249f6382b1dc9d0a5dcbb9f7fd724a30ea9038bf79ceb4e1b8e7b54c0c6f648ee39c79bfa125432957b5dc5d0e1a130fbb8784840ba231914c82e33f7f8d003edcf1f5bbb625b04820201aa32b1a835745728590242bebca781cf48712cd9977189d6288689ee7451159473b9de305165fae2cd59fba5fae388109a34b05aa0be64cd4746aa4ba271ce15a3bead25e6b4bf4de6a5d248d62dedfba9178d74f581ccc689c33f022f923dc697306fe08e7faea272c4e248d5c6439debca47db8c5b90ec6bc279933d0235f386171484823237306fe0877d68f7022195322be75916ce20096d7bdb748a430f691b10688675dc9ea36ff6e431a357da412f12cd2887162b9ba242f32f69d71b125acbffe229bbeb3c826efde2b4948c692848f2d693d7cf8d619375f47bcd65bde6c815f9d1947f09f4cad2f0e8c792d9249ebafd65f3667f23a8b8cf517c7fae240af2a859681b7a12acc19087a2dca2f19a218b7c692e456178f53b9ba7ef3de57925caef5d773acdb9cc6bcdffc08e7a2ae2b69b96e48231b929de60c3ceb462ff2a9822d166d51a69877d78f704631135a675d49ebac7b6791464d1ea9847517a9c4487306de6849863903196787bcaf4891dce9c4cdd2a1d5c4b85b8c375254fe8d145d9ba154cbd80cab8949a2a91d1b61d6f9f9aefc506ada18c7642a87534f930c0e696a931ceecab02adcdd48b55e789f7b88b194cd0a8e539fd8da26e717a3ebaf8717639345c6e6ce1948b23ec9147e845bcaa251b1bdcd8f7052b1fdbe451a352da9a4751b923667df8dbe16bb8e24918d50c67187f82f8cc07504ae383bc417ff798e2d69dd751729921b5bc27aeb2d72a73867bcff56dcd5d2e66c1f4e757f547c4a8c934214b99d7a7accccdec724922ba65700156a9f99058aa465b36db044791f980f5c4168038524145198b3598a3656b0b7a28d528e33fecd5d617dd418eb4ed75cbdb375472c816a4fb2c568cdd9b37b76cf9e7376cf39bbe79c5d84172e08e5fb8e9ef4d0021a8821e3460ddec065a96092b0a27efb254a10eb7d6152536175bda8a1c61883d6c79f97fa9d757585efb3ecaffbebfe7825e28c3f30fa7d49ab1f91bad7056049ef93a2b57b73b558bddb246c5d89937728043faf77fbb532cf9beb7537f76eeff6ba5aac559ad6f24c3581e5286b9b875b801a4b75bf1ce174455d2f6a64a9385b2406b1de6280d539ff312155bf7f718252033f46b0d260a5c102c3da892b561a35c6728795060b0d1618161a2c34586186cc6055b1aa5e640ce130729796d1efad11d63510bee3144b05633952edbae6cb85d614546b2a0c7daefd2a01569b1ca976086ac890db6ea4bd30413edf0a02c407101f3e5a42bac170c8105b15f81d27a20901e223884cf6e387101aedc70f221a8d8846fb5621407cf800e2c34710203421441d0ca909f1139daad3fb7e1079b4fff066551e8334900644880f5008e80304c9ad39d450b54e140211ce0f22efa9e94f9696cdcfaa784c9955cdd4f058e2c1c4230b8f2d3cbab40d47c723b7abf33c92603a18165ddb28aa2c2b174b28886ada66553fbb2037d244f740cfa33c906655446fa21b6990e80b2ab5b3b9bbe3bb3bde548a9aa1537407523524129923a1904ae414d24a0ea41cb920354155416982a87e624644a052744a884948c703c4c78708f9517b9db0ba62ec93295c31f6bcdca91c533a87951c4c39967258e9d2a565e44c071414141444a51647846441052b469f20aa69635c909a6eda5b1e480b4a1354d5b29943298712101f3e80f8f0f1ad435ac88ffe21e4c78f1a2984d2dd143dc33b5b10220f5efe7cae3374d7321698d1e62d0e79a70d9da266e8192a25b4fbd10111e11bacdb0530ddcf6ef504f4c0587700a56b3f94a67460a56b3f3a60eae0880eb6742de6913c927840e191e3813453338bb1316e2d8582a85a80414868b654301b8c25959a51d8d39cc93ef81a37d3a960bc5d7c29b49322722389fc0847840ca5c4706ab58292a4348524c356ad8456af2342423b52886ada7e70bb692372166d672d55ee224e21452b546ada848cc21b194611a1acf4c2c2497346022a1544d5a0f7b36b10ec2e2d7629e9ca70c16a9e825e0d8ce709e9ba86a3f25b2bd73856b95c66e8149562beb171cd284622bf5d0cd2cb45fb01bed5143c91a0a0a6fd07fd41d3321fe40f15f9b36bd9ee75e4074dcb26e8791e48feec7ea8847656c6b18295078f7b49b575e38aad5144bcbd1cebb415216f3838f4b3e9e9f775e4cb7871da42f8eda55863b18740a9999ecded998edf481d393ab136c6a3ba415441542e187dba692755229427e926088b2341513741503b347ff34a12f483e6876af67dfd98c0381ea4399b3d46982e27889083b414e279b67b745f4786dc4833d5964e6b4e719d5595b32adbf775a476230d83ea5a493b687bc9020c0aa6fb32d2de4cf386f4d684bc2f6e2dc8fbaead01793f8c32d23f678c6510d5e78511c53f648c259d9d4a4d1b91bf5eceaa88903f668c7d21f7e84f9aaec560672a50cb763f54414e36af5a52292042401e20e7791d1902e4202d6d077223cd82b960af2340880e1201e9f63c7285fe8fb770e0a0fdb8aad4b46cf2c80505bd8ef8a0812048eb6f8aa102aaae181428d52075c55041437ded70b1543096ab911c5f4a88fc461add4ee4ad1b5d2dcdd98d32132fe1d8c5b1294550574a3b34bf382234e4328e545d3b9a55cdb09845cda0663a21344254b1ef4b68e7d168f7281108fe007dfcf8f103fcf1c307e8c160e497423f7cb4e8f23ccffbe1c33be87944e479e468240bde3d1f1e07ae99c3d82f7f401cb9ae95b3aa9d96fdec7ed080a9f33f54493894a62df73989890206751ec7120e2b6dcbdd208931c1933a8fe388b6794a3f69bab662a2e852e77faa40af1b8a7e6246d5b5924ab590139020a2a01f411d1424e4dad7111f37d2ad8477d0032907bca4dae40ade949a33da83a868b403a19d88f61f4d7b29b4ab1e8dd20ec382051d0c4cd77c7c1e0625d27c74d31f3fde64ac0663498576620ea347613a1c2f46a369ba3663347284ae342a45cda8a93c5524d23c9944429927a7b4cd668a9e81aaf3749e06ceaaba56fe64e181d4351eb9ae6d549da55029b4ab3f5966ba6923f2f90a04ab404040403f422e171132886ada2652d5b65c2e10e7e7ad97ebe56a4af47ed1fe83964424e0a82049a5cc8cfd138cdc94e8fb3ae2d16ea48980d0845c177a1df1f15677777bdded75d30ed292054fe84502571ac5c9e124e140d9e1c231771889fc763e95fae01f7c3f7809ab384c733647212aa1aab1694d13aaea2049a84a6827b41342234425a4a603242134426984a884d4748024b4a352423b20f7416db7791db109f90d902142765ce3d4b4d1a939eea68deee66c7ec7b52f1f3eee8569f049ddb4a6d15d55d77eb47ed0ad548a884a11d1add4cc1445d335a2cf532aa21f949ea19194a2a1a2522618cb202a4fc8735e477c902c784915c8756c1407a965f3358a3384e224b52cc78504a123103aaa69d97cc108c423b4dba1f99c3adff271bd5efeec586146d96b0457e5c1e34c18356d3125447efb8d348a2db9bdc88b904c62497e7e6ebf7d7144c8308a4afd64298560ba25440ed309ed747c7c533a95844addac31f6cb9f5d10d5cd5b39200ba7ceb7565c8ca5d0aeced2b46c5e6807529c8f542acb4f96ae9533aa9f2d33aaaef1989aa5e91a8f5dcbe6accaa3b3aa96cd075175d1ed45eee3f914217f76d3b3f9ffb3c3f9f47e662d996b9cf22a0bcc585229a1dd9c511cf5478cb1a43d5efef0a05366cc7c304ee56cdb7ede6ab1aba9901442ba964da1a724d40c98f1f57d51a92667555e8c424ed356e4f3424fd376fb1c77da603a211dcea954d78ad0ede1628119c38c6411cab81b15722222f454e761ba9dbf1c77889038e44b2a95634a1055d72698b10ca20aa26ad9f48a18cb202aa90ea20a4a1354d535a4ae758ef91c493994bae6e3f339a674edc79295ae1dd1b51f59ba46fb7c8e2d39ba742dd6244543a96894eee854cbe67d507a869a89b531f6b99642bb924aed6a8f9742bbcac1cb9f5d1a1e247cb5492a25659c55cdd4943b6ae748aaf3658fdb9b481055cf5e47fa83d39036fd6d27ea031c2b1cbfc5023372abc7900fd738d53590c87f7e0ed34d1b115268d7b3f91356b81b49a55230f2f78397333aa2b143f344e8583567f32d9b1da410edc003d9ec3c3ee83104c2e785b399835db15aae970d90cd48b543f351435f29edcdfb3c7ba9f3fc0402c940f5eb21fa02f7a0a5f8012d471ef4056f464b5146cb39e5012d777675be035ae224d579215aee50d5f91db4a42fa8f31cd0725291b4cc31a5ce535a9e96a30e5ad233753e070da2e59c02a2e59c8a09d117bcfa334ed579d8cfaecefb0451d5f91e5ae658aaf33c42bb524837a97266552f78237dc1aba5d0aecedfc07475de8652a93aa3ca90aa14a7544e2a43a62eb3b7383ded4835528d69d4d4791ca6ae6d699b8fd3a8a66bfb458a9912a89623d558a554a76e871bd41267a94e251c6a8973449d3848751efcbcd5521453d7cab00ca7aad26a4ad7ba8bab962ba5d511752ad539a4ab35fbc046b8ff3ed2f33c0ffc1edef3a6c80d962cb8faf354108b801dd97bdefccacfb6fab7a2bcbb2bec7e5f8b8c18729e6b7a31e456c80d2017432e865c8d2177c46e08445f28f3484f041346212debf78be67d2001c61e32d9077e308c3b7e30f4804271eeece75a2823e2f7300a0a46b1ee971d9ebcbee8a0c68534b2ea7ed1218dd798b155f78b0e62408d3775bfe820e5bac138d6fda20394ee8b0e4b3760184c1479e77c9dff81adc4cf9b9f3b7bcee6dd1f46bec77377ea30f2dc9de0275a91b5e83155aaa95ded5410a20b52183120837406d7ed44ed375294daef5cd758154a6f549fa5a60d06e32efc548bfa81895c0cc41491d44d2451fb4ca66b215f490a2ab4d0546d6a5f0623ce752dcc40953560a831220d2745e09a4bed33d31bb54524d3d6ba39e39ef5862d4b9801050e51a4c0b5d3932c5ab50f9b36d10a9635a8d8c0082cb2a001d74cd4fef843edefe4d0543daf8beaada07a5090a81e16d5838246053ae2c9ea6e91aeac87af232cd8971c9cd4d5eae0ebc8aa858508cc4760376e8c256cbd90210523a370384115ffae9514e85df3c8d26316f989540dc37baf23e191c0d6b5ee8911f5bbd7351e3a358c654779322424241a7448549cb69e9a92411552e75924c158c2ce345335d24dd592c148248e1c864d9aed2193bcd4791e1186c3143b5d7c496222476a8e393c51c8e01c16dce0a4cee39c618313170d8ec14c7c832ac408d18066c97ca9413726278548edd38410e5aca8fd108c0851fb227c714255fb05e8daeb48b3d070cdc68baaf3af8f6a8d11b23557d4fe4e1fc6431552fbaffb054905b5aff8d2444a0d40135518cc4cd2527319bb7db6d8eaf36514a3ce7bad3437b802a8f6590de6724dec7db9c1933ac33041edd79106776f4ce9a0f6c1118ad4b7516ac0d479ef4b434d11240cb6b279e2c4081b77600d429d5f1ba4016930eeb081096adfebdaad366cec6163849131baa6b8a4985e5b8c3a75bdb8c1840b8931a8ae1737beb86030e2a8ebc58d2fdc684307a52f51a86e30c2761871ea7a29438c2bcaa87a9d6074d5f062c1d8da810d3380685199c1250b33a2786919c1ba5ecc10838bb2dba95edd2f517e606a234ddd2f4730b501c572aa1c8bcd5284c988785c1b53d1d616ea92accddbd6cd058d20f9b2a58269194391a1ae652c8135d5a3a17adf50376dabdd6aa723210552501963dfb7aec8f5da33d33329a826cb302a36bf54d3167ad919bf8aaa31951f96c1557552a89b5688abd56e8586cf5aeada116d632cab345553402b2a17aefc6ab7dabd56bbcaf7661f81244b922d287049a109159c68a16b257791a16b259fe159a97cf6ba087395cf65484548c5defa7c11b85c32ba338ba65cddaac94159a2a9966c65f5b4d285ba302969da16a714268549a153175f1588b4bae849e93ca6d163f2983c262f8bf7e4419db1b79b32c65892a7caad8b251199a94228dae4d3b4c1c6c3a8ead3b42d4e37463d85ba39634fca8971676ca275484835e67dab4761402d83dd6ed08cb1ef784cd6832684568b1185c04d9663a8ab3c594e386ed0da9dafe21327ea245bcb2fe8215fb04ca9d0352663e210236d67fd6edab63136e1275d702521c8be8bdaab45115a5d0bb4acbfb16581ccd2116d632f4acd0698dab41db32183febc49eb72cfc4c6de525b895a8650bbb70db0a4adc500d4eee3eced8511b86e188ae29ccd27de1d18d2d892302437b60414e791d7a297d672bf75c33a636c21f3ad1bee51b7a4adae1cb7c912a8ee4518181db3c0b0c0fc5b8247ae475cc14caac08b1b39279d93d4ee7a2ca7711ef9562ca79103a4f1a8544b166b83550a15a2110004002020007315003030140c874322e180304b0351af0f14800d7fa254805a1408c33086610a21448821000000000200000333b30d08953f7ea888d757a2ed439313be9dcbd7ee56d8aac8deb5920eded788402d768bece5fa5a913d73378ae49f97da4dd4ebfcdf446f9f1b4362b802a01189a529b247bd6e0df71cf053a136f7f7d607d0b58629c013088029695dd9950c9931c8464a8104d940369dcf145503d93c11110606598c0389db88fc48f196c47d90757a4c66e2f41cc22980df1dfaccac1811e1c56e5c619c7d2da8e15fe834ebdf43f1da032fd2f8348a50599622c0ebf493349ee2e6fdab445a730b073fbe3807efe9db6a4d1fc64273bc9ee698a0df6236c53c43f0a0852d9b003eb433f46ab9b5515fdd29212ff02af0dc03234f86e080f597f21c6f9b6023f1c48758ebd6205ff22169f9be15cbb62e503c68817f7edcf1a978f8a967dbadded0914e342822cd3823b57e6cd51c57ff607cdbf4f7017c7549921833238af4aec4f4e594048fb8ca7f25d1c346d01173551c35cf671e500434634f7811eb6e1a1223b1df8bb5763414055528908529f7cf52cb1d8bd04491cb286986a89e2177c2f7a8a8106f71043fecb7acc161ae725695a59e05de351b4eac7e1207ad3dd0b52e7c58d0c237d69a0dd7c83064520b5d80b9ba6a69a67390a6d1d52f30b605ca3e7acc54a6cdad5eb52bc9330b535b96be140238b9fa2db31928173ef327b23780b56513d9090ec450afee3716034c6ab49ebc7b480844000cf653de6469009b9f02e98d39482dc543a9bb2b35514015f9d9c76eb7d3f2a7a4edd1fe5745fcf2bd551fb254f716cc07b01483cb5e4f4f4669b2fcf18454e40eae212456df5d0d9d4777a30a1dcabbb9a16e0908614f059657c7caa0a0bcfcb6bc73a8823cc165cbfc3eef7e57e66ed1b90b940411ab3abc59b5701156edcbe699ebe1b13f9f912846086abd75355ef657ddbb2eb5e4244949b326ee08ad1c3275fc9f2f4d2c12f4ffd4d28f8d61d9bf56f9167aa82b46e90e8f93e2693cf15d067e350cc327a5c70ed8ba8dab827b628797adfff2d6c8c0b8be1772ac0e6949c4b9ffa5b5a1baa5e344abf0655b4ee7b4df3b4f5b9ac532889875cf08501f62bc57c87e1281a00fc053a5b07074fa117b1e8e9c30d2c9899342444aa49e6e7c426c7f0e647fd5f375dc69afc533be67871d340ce471d10d9ece52ee0f11925bdba9f007fe32410bb564b6dcd0ac1056e6b31a210fc11b19f4f249f88d214f0358f7c2dae60d34327c0d7522e9eda51e13692ca89c4d147fc312b19dc4ee5d7b9898f6d812f75e1e9b11ae87953473b0d6f90ed55a34806b60040ff0f102df480fc3d8b021157bba427492896118e38ae92c4cda8873ee660fd76f8ea15a9fdd64e44791e343d7973cd42fa5bb0af6706606abee62c7a6e71fdc861c90dcb626060c991d817995c120f4b699f1774aa953429822e70368618c4b99ac7a721535070a1cba7825b2b75a64e823d2c2fc193177cd05a3991b60ed63ee7101804f083062d39d44d8bd9bdb888dbf296694d6ec6440a7f6e0747228ca808226bc01540f036e7741db754d2c7b9b41b96a14a3a928696448029b79635398c0364ec11c8c7118bd0b4c4c44136d09e31393c79e3984e3a133235cbc72c05ac14830718d3061d61421eb5fffe4193e19605d84e9b3ec6226aa6b069bc4e2722c07500dccd61028191002877efdff3e2d27735b2114ff3d77eceab530f88371729b494301ffb019b6d3bd9062506a75d1d3fd01b61d0416692eae70cd2c97e473eee5a02e08a297e3f08dfd82f178e1b4bb56e31e30cf94ed0ffd02624bafccb68f87f936960cea41f75bcafdb5310a65f894bc8c2a6f927b4728ee2c2178f2ff1dcbc00ca80a97f95ce06fc09f87821a51ac72f2bc51b5faef0a51876b680b54028e29258d736f3f045f3097ed932ca22f70a6e04c4a0086e0e6f2dc835704cf4a9585987cbf8a0d285a082f0dc80dc3c051b28a10d0e8b9e1315e89abc23235506cfa2b971e2c40c354eb1ccc683e04743742d3cf97501b1193e8eacccee82666a2834faa8d8551dc1d2eb8ed346d9869644a6f1cfd6d26ccb312ed3547bf62ca0b900cb9730c283d3effee11191d10750d7f0aa540cb94146e002bbcf6568d8396f55c9abdeb240872cba2ed9ad08e0c4be1186d44e1f282edbebbc13d05eb9d078ac2bd5b271bf1bf59e0dd2307b4e70266588069170baaf46b910482845470970fece65cf693cc5662bc44fb6900cea705d29d5d27b0e2cbf2626704c68efebe33f59df262d22758de4b768e8409cddc13c735fab9f6f64f1c1881190a416a2ce5eefaa9d268b10e8df51b9e60443480a0d98b1beaf6c7117f31019e5e20b95279d088740e681a6f2c7fa4b906bacdc8e3227a73fe940f4e5398c8db9c1a3f71ec0e386e57f40f1146490a7cb15f5e0ad561102da4c1c5712859cc96cf5db6b74652299dfa73a17830471d724a444288949c8f52c24d954fbb7be3fb79f270ee2aee4fcca87acb7ce34227e347fd119720f8855e96ad9dde969478f02c5bf198872573bb5043efeded993164b616f05ba9d862f733b605934e0b091dd7a5efc023bd8b99da0b343543dc6a74142c7089754835e30512823ada57e28d03be7885530515848f0bfed639bb8a68dd8c42c2760fccf5983f26b1f4d927d328056f31c222408d2bfcc85f72ba289963a1f3a10309921b8482c58eef4a3e538faf6a7ab0f2caeeb2be938e8da1498f709c5e070ba1557720654f5dd3f210c8a70e0b8de8d9e488f4e9b6521a011f81c675a80a86a439ff2623e2d0c62809557e0190d225cce8b50008d5f4ca1b02de80df17ff08c21144c04062377d4e0dd13336579df8215ddc49a1b61b7a97e9643182961506592e2f3254a70f3b03c7b54f92ded0f0af5f4583efe90f7ccfadf4076db20e14d4ef94f9c8f135ba1eb06f883dd1055d43eb24a999568ace5aa184dcb89428247014026868b52e63a229237dd708c68f38024358f988c8109eea3cd8bb0aee257691c80db419a573a1c45453c8f05c9015ce41d04fce60e652393d4b23d596269989a6d4325b1574ce2342dc5359fd4e1d8e1a595b33042f2aa4cbe944488e4bbb0fcf7a03cfaa20806850b4e8b268c210ecb8bcf8c0fa8f22b82a83bc90c226a3e16833f41be0cced3adc9859ab2b10800c3f90f4dabd546c72beee5ab1a8e0160f616dd74b026176f0ffa3b0c2c82e3cf0b8ee664b098a72ada5b4c7be3041d09a9e66b4452de34b8071338608d5bc4201d0f8e4e5745dcaf0b4c1e9b7ec05877fff0bf258b86d5f2cc21ecb9c0bdbe12d1aa250f1ca985c1d90aa88e0e68271c18299468406584d067583c65f8a5480aeb7086fdb4eb9490b834f97d18238380c6523b3c464d900c19352dd34d8119f6c0d251c4a9e66d9951bf9f73dbe1e383b0c05da24d1dcef0b670799beeab7c7b2718c7a38256816d0b8ee06ddef061383d949c60421b39711cdd24b41a9ae83863e3908b0674432270cd17241879441ac228ef2ae026216a7206b7c6cdf6d7f33c88c08cd0455ab77c44c7a7595c696f5ce2e97d1472039c1d44cfdeedc318928965559b5c67087b75541399183d2a353223e62275336230e5b6cc55e5a57d252a80dbe03d0ea0909491d7f4657c0776f93afea865a9722c1713856222aaee239f5ca9b4af0c1754404704fda8c403c2359a15cb296710ea41743554a2831126a0496400657bde9366829ba1b8661929d9cc1905baa566feb424e39aec0dd08ff7136de16c78da614decd6d7780c46db146b1b1b4d651afde217693d688283e606ba75a2ea14815cf87303c2f1ca3708612ebc9932cb6e0364e4e6efdb6d74b4bd99a614567b5378ab8c2bf74cc96410a6b5d639d37e28b2805b1cb500cf68137f874b17f92fdb4e0d089fbd646fdda1e2800b5ed321d30f05ba3248e6d9002c872d707ac69ada12a7fafa2f4630fdc69c8ba4bd7dfb53b843e81ad09790a2911417662cb8bad48444f611f4593e5d86131ae0e57e80286eaabe5f0d34fd3800bfe6843820a3722c94c532578a3aed2fc5b32e5cc4a46089b66330765bd5ad57f8b5772f810a91cbae6fdd9626624d9a25715ead613ee0c6fee70fbd0554b141487b010b89ee71ab9168cc53955107a9e20403d845feadccc21c907ab14adcb3e9975bb55e0aff29be3e6c9b256cff616c4b5269a63867ed8247b91996b224fea0478bd64ac052c28076b1fe61fdce24fce954427c7e4f6f509796407b438158f20065b4668fe9f1a47a03aa8ca155ff990236be726fb717d900909f61c0be2c56878c7b0ee39d0f64cc271482ca57cf03fa944a1f46676a3221b227c901f013c7d61eee1a50e019777ea795921170022f0bbcfc27202f19ef1496338cbcbe98abc67912c11cfd6a6514ee36e41e14c79d8521e2f16ac0d7f4def7f5a156b83e713841d970b88d07459796b6877f00af103c23a56d555c042ab3a62345cb55aab9a89e03896a57723f63cd82d7c50109484ef0386f20b52c3bc8c89b76a54827a657431f190c6e89bdfd4791d614582a95dcffb1a6051dd52625615f6e4c6c4cb043a290b808988b1bb5b74f452cae7e3e7e4e27ca50682260ebada0acdf6a0a0cbfcba9b01691383084403eb92238204d1e48bc0b9953b73bd192c7ee3213ce1b91a41680bff8874716e280ecc431ef1c88d342896219010c4a81c0160a5ed6c5c5484a076a2953f38349615c22f514f8ea22858f3d659adce4c4ce0341ac9c0f1634803759ce430854874fd76165fb12dd6dd47693a955df45b1e3ace4be8890091824543ce3af2c87f6b0ef5d191f217ab526f0287dbdc26e2aa22f243a3ba190b22f943bb9476515fe8d53caea9b801fd55b1e606ca2c222a20e2c4cbe9d19c9dda19bce3ea6b9441b47506fa65c9eacf69217162d88040168f72d374263cf3d361673e1297e514e16ef974d077efdeba0d6d9fa98889e57b9c0e64694c61a451d63a7371ed329ddf709fb602dd193a6edbc67e40a20b612e0d87b43cc38b1ecc6610cd5c750b3c8ce48634e27de64177b16c63ddbc4bb88cad4bac25b6a1adf0e8da18a2b500722f94b383f119ba4f570e352e006f238d61cf4ae2c745bff2b565aa5bccd59408be6db41c032f6cf17b63c4a2ea57c3f70d51ae3ab9ba881cab0475c54f02f3cb63d8480ca968950eb97e0e0749d0cf603c1337808516982004be68502253801883a1e8532103b483a4f10ed92f5011b8d17175f98aa13dfd715bf8558e7c51038ce039d982a1a70c89405a3c3ff54488ccf1f1a22fea05fe4815dbe1da9a40422a2996ac5a69d2e3294dc8f42c6b81b0d21484b8cc5813fcf0eb8cf9aed44c96a6caf25d0990dfaeaa770ebc24f0fc6e12ac24bed1a0c9c8f756054a3841d43aa18175f59c48c0cd98ae4b568e1e38cde0e2c073b3a00ac4476c855fc0cb93b142fab186ac5812fff0bded60128b1533fc17135674010de03512276dc58abe902b76d0e00336bba2d76819299ed8c1a2e7feb6151178b852ce048b9d7dc596b9ba987b9ad27e07bd4466c9cb500cf7fb0a767ffe4a3a4fffd5b13a4daa6782c72b0da5d446696560a33fcdd482dae6f3697414b19ee2ee2ed938b75e768a3689d3e00134a9b30fd7f4b9ec8d3856da46a9748d51e91ba5d2a511a46d63ab6410a859d8729fd3d090c6cc7117daca25f0317d61a72894ed1fbc27ece16ec909b90945fd466a6dafcf9d0cb5af6eee97f2b3aab1322d9f1fc021d77967e23bc7f4d1e8f9821f7c11f7d8b33158f6041957a93be51ad20683ffac898f4d5e6016a02a706077bb5f9df58c493b4db5bcd14070b14d958b05a966b79788f6b281a1d99642bad861f8285c5a0ed9398461f88d35f9a2d448cb43baa8167dd79d75b23391f5985b19892891393133b9c4e3061cdf93deebb6ef24622fc6fcd7a42dc38b2dd69df932685f2b82461bb361275271cce2a4cc201c499cc2245b37c0e004beffd401d5a52bfef0f23da426923f315a4a563b18fef4dfc4e7486474bc3daeb235077cee47780381345807807f9edb2c6bced3aaf80f5179815c78760e362333f6f6465bf930c28952f9bcd23db034148bafa0690043ed8ed5481a62a68dbf180889cdf19fb881f458d1461ac0fdc5b3d2cb17dab9f9635564751f21e1a9cebd11ceee73d64e27e35cf3b3aa7e902dd856d3c14d0b79e8c24c2aa6a0188862f700fcf06525b62c85c4bfddcc974af56d08ae711fea351fc9f41093d9d88ea0aedea1ff031e1b5c9a43caf429c448c22bf2fcc07d69ce820b4c73d4b3a49b3d8007eb886ac9c0592986958a093d82286b2a24dedbf2b466b1a866165b6ff708d6461908a9a859df7030ca1ad469a6946816f48aeab3b5c2d64b42b54b2395a28b81277e4dd5f10b5dc73f23d49cd9c40ef8efef53d6301f69175885298f2a129b06260ca382cb7227312fcaea036502980210c000b0956d2a78364c27292e7c974bc09d1f0cd9eef3e3a7a0101fda77ed1488a8dfb8e7be540243219968fbdccdb75fc04c4e456d07c501b5449abf942773da908960a06d902cd161fed95289b4174891be0e769276c553018af6c036afa3a399144e97ea71fd6fef0666c1d48bb4fbb1ec2474651c88614e979fbaed4c4f80d5f6e7d75f86278b95c5700b787db67e08cf503495ac6ac07502adea9ad55f72898813353233677482a5da10b48611139829a3a001620d5b6ab577ad5375f70a32764d5b2aeb248684582c6c89944eb2fd94d39051408a97b157012bc519ccc0771a4b68a0cb7de7f54e863248b52e1c2a6e33041ae2b9ef368459280d00649ead9660c3f88555d3883e645b33dfb35000ce696951f9e032c8fd2fcba1b4fca340b244e40682efc0c148f09486937742c5ff37b107af3cb664195b8c227ae7c37b8c2e64f5295b40dd796b69491b297ca1636eff8711ce003aae960966bb72b62e232aa2ce675a09a1fe998f40d0d8d4f6eb9569cc6d6c3862c93e6ba48622503626ac5f59bfdb6b9c2eda64041a335de0ab66c3d6e1dc4fd9e1f9d4f5fc8ce33aea14ca076c8e752a4f8331834cfbe3d753ac8baf7b388a6424c9f561a97a88b37487b42ea6d266628336374cb63fd4c1d9482da4f630e304e4640255fc29c2bf3fe9da95115a75c44fddfc6838f2689274a42855008f6906acb3337c4ebb7d113942e0b1fc66d07f39a16753f17123fdb579db1bf94698aea83721e2ca97519090d81e5029932ee1cf13e0a598938a3c22ae33b33b9ffa5a5119db148d2a1c2050e60c8e3cf300f13d8804caf82197ecb53ddea5e199fd95722ffaf3a9267122b99c7bc98f9a20b04910e5676292533f6184671a1bb9d74f187574c80c1f50abfd5a8064fb787062252f4258c11b257cc57f4fa0f4e7995311a5466b228a6dcedf0cbd4918c9ed8847c0c81971d76be283bc3868229b929708202a93265606e5a1a01c844d6290eef002efde8fc8921c6abee972bec72258f3133be6185a96bfadf16599f7c5e7c3aa24db8af1d1bd68c99176a40f2a1d743bb9d84206e3f54f4b450ee9fb64cf238ad605b21be6d3e6ce413d022b416949c49b6c86ca95494ddf842909ef52c3846f220eb257636cf7cf6b2dd58c5ec9238be2996614e3772bee6ddab279a71d83008c9ba4d49250024a8d9ff79916a44eee3c30ca0f4928d9011678b2641908a2083fbc4821abcd7e54834fca9c18221d5b063575e402c7f22abc8461482d634816787aeb0f08dbfde781e10780c3bc2e594890245a1719e2e547d98bfde292430994c5862dcdd9f0813a8f67e356545c14de0010e67ae6a1e936a9d612c583d6631bd809a62ed0d438ec6cf78ec60a21681d78306d406129c4afacc68b32430810cec832944e3a181e5e8d329f325436be66f02b632d659fef721f0b4f96659cd14dd900a8e5f48bb206c8e3c45fea58675b9731cff305f5e8361f5ab12f55d721c42af77581587d608098c7d476a3194aa6de81147e3cdf85eda17b09226a4465569b95d15ba47fa8e68e09f967f695895a48567d40bfa86b3e9f783ff880bae2469621a6e709447d2c461536312a022834f1a4745b64bc296f81c1a81f163c9e1d661015238150d698da3895b8a8eb20e0e469d30b58c873be51492b76c5b134961fb3058d52f9a2d306653a0867010aa3e4f2ac6961ca454392e82e48cea5c50faf422a1fc03cbdf7486caf1289ab0d5bbfb7cefa026befc758d0bfb229d44e296b66f4eddade5c614a9b7484fb3a276a1e5d853d8ae16fa0785ac42ecbaea8d2118ce98e6afd74960d0fc05a6b3ab88f6fb5dc06eba46846fd4a26114eadae4c5991b58eb029d9bf023fadc4d278d5851da0c40afa47e0327050fa73e527bd8f895fa593381806b0cb1562792a94832034a858b290747387fffa3a41b062acd4c87ff783872d99f234d65efae61b93867ffa93bc074d6c8c3a8f873a2822077f9029d0b697a00cfbde8585a74c0e12d6b528a06995f692ee434da3c4969539dbbb1a83b37ba91d41531dd0e48d55ec7020c2f46170190fd291da54095bda4320b6a38f61ceea89a63a222763f86b847c0f3ebd8c227b6630d09cd7fb8db422c21766ec8b7f61193ea58f0b4aac49e7c892aefc32f28c101cae7236f19e05b48a2c28172e551c93127e45ba0d78bbeed78a7c5f587a3198ad1555e9266cf6a135fa15d5a9002372a1d43fcc881e288d5f1ad1a4645c912b2f86829d0e1c2f1a2438fa73791878b79f8612d970a17279b44fef3801b98f5a163c469a53d212df36363a29b387fe5889a1bfed327ea60c4904ef8e440d54683b8c83ca0d2dd71ba5813506b9ef0eb94cbe1afb92cf7fe0258cbcf9a00c47950c80a9be8c67401764e5749f43b02fef57d48fea1cb3150f5e38a584c09aa90d66b16a6d94ac8f50815352432dc912d9a9db222ad563cc2644458df8ed8b59feba81fa0862273cb3e49bdce29afabf0dba2ca6184fb46a3ec484ff2821a66153e706c08a01cca71310476396441ac4d4b8feb903586b7dfa8f1c02301630c20128f534d676fee307a28f016c081827044dc9a4c2d2af7d0c98ed9e5652dbcd65b6f07a886887f3f0e9b1e44820c9a9c879826b7034cdd389b62b18546a91647a3c364b402af20015cf7125407c8439bb341122cf783c8199d08a74cd2f44829167930745b270f1ba30dd8ca64d2986ad420dcf63d2a13a0ae2b02bb84a1c587c8d0dc640a1200ea0862198054208f4943505c198eb3d776dcedc3021fa0132aaa22c140cd457131e79070b14061ccb5a19ca3b0b4b0dd711534776231e9e535c7b006b4849d46afe79c5933890b3c2c2d252533f6655e15435d3d610868d7c2899671e4392f0ab5a80d50b0b5008694070ec53f952a154f62c2c042cb57fa12dab71c00b8e4d8ff56a61210ead6cfb4efb786af0e06b70963a4b4d58918c16d5e0cfb97fc9c83167c6c980cd6ea0da4032812c517b4fa1858e06e3bca3c384581ab47b4c2dc7cabb0781b01c43f95ec1639f716a214957870ef4909d028d91d1886001ad2bbd82c97460ccde777e9d77da5e614a63ff129e4405c20d98050c1f6bae0a4a25476be9a79f5e2f442706c8899cb49b58c02adce941cef87eb21fba7829d0415ba0f89205a392455fcdf484507265a433479aa017815f2d7fc6774d14f90cf61a9f0f096594b6a350d2799403048fcd1110e3728c11f6df160d0574993f09ce899f38081294e5cedf7edcca4fe15b138a3d99e3f3a3c8691050ebfddf50da80171c05a5ceb72759792a16c1660ec9b9741bc8141437a2889f049a1aca63ec024090b9e962f0cd6357738159ce45e3ff8b6c42f5470b3d2417c2fc603b859479f1b7da869e861e65b8a6b8e47f1b634ab703b81048809e951a4e36f724d34e0137be1ff02204a9262a3e47689271c0d5101318867782a511b9bf92dc53405e46909283908f5880b7300df10c23129fd0f42f2c0a66e19f358fa188c939ee9a132ae0814e2ae5bcc38f9fb5f1a06ce7ac4ddb872ffbfcfb8d52068688b5688a1dcdc40a63e92e02577f128911239e43a2b8469410c51b9fffd73a95d8165e8498b66c45f6746f0e6907feaa75887ab6b814a7071888a4a3c091ec5279e92b140d87aaa401de943b5242917c75c7d07a7f9fcb6f7e2a7e99dc1fc04346128d650c5810c735132cefc92be8c6e9a3f1e839041ffa190be8f77a84dc984383b794187198878ef81c7fe8326df6f8db18ed2c2b583b2a6d421f8748d10122fb949308056a2346430e6bf7c602af5fa1d0d4fb358bd3a976e8e28bb3d48e55f1173603c1db38e812bca4d574659e4443e37f816247e1b55c0021b9a2af5a88aaba4d4d816b901806e200d7374f0b6b6b6e6a0d1968f6c52f0593b298f7f300f213a29107a34f14993ef12471d24186ad06c3a497a05894f6ef88058bbb8572b93b29e1fc095c1cfa5742f0f7a0cab72174f6ff3ebca8839d61f5ee04a62284310c62b69459ff22621bc4732f3fb07cdb43bb9e883ad38a57397dc4b91061388314f95d8031e382085d313fe35a10217d83821e4ebe0b2a166f4b0a3a2e743f14a5a079c49684a21ffeb57a63bf3f83f31b11cef23b4efd217ae697dae7cc31ff05f8520c5dfa8409cd1292159d0e08991cefe6b528d1d21ffcaa3dda39d91d4fac222384636c3e7d6e5a63e5e309fc49d6b794a44204ed70d1ca137165262b9301bfa0f594d996daefe42d687265d669bcbca3c64c36b410f0c5477917c638d8fca8777d5aae39b4585016f72cf6da88cff9c5731ef8d0d66693c6780d2761d965e6db45e938569404f90f555f35782980ad895d90cfc5a3f28e3feaff0335ba85f0607abc6853dd059fc8019390c238861704baf43202b66a69684b4e0ecb727589d154dac49be925ab0bf863de54b4994e32c2846449be41d6cd77ae2ea49b063fbe0eb8146b12eaa68f36f9b5d540fae76e4c2224dafdffd1afbedb5cfecbdfd6469dfea34ea0eb558d69beca5ffdfdc53741b2f0c200ecdc9b6a1571abfb431406357ef8b9f316de919307351e852a8989cea7e65f8915ea65c7a408bc0b33f24ca87815907edc8a8f5ba99fa151173e62a9d08f488f61e3175eba38c01fe306cb1e44c564e8043df4c72f6ceb338fb20fa686ee3c8bc7eecd9c9e731a97ecff615802b6f0b88a49f61e75f8647986f66ba2e746feecaee8b58d3e13809199710cfd7ad02aec3ce4f19ee6eed5da0126ba4a737caa64fbe03d573f1affc82840dfd1c3e12fdc0a721f9f20b1db44f2912d01c92d25ad8cb08dcf839c988caab55463c3b6ce1ea36e3220d9f1877d067a6968a2ff864733c4846390e6fdb7b80a0a0a51029c8aa150fd4bcb918435817eadc55857206972fac189ad4f76d6087be229f49fac93ffa0f7c14fc17322da808f9c84f9e226c0090136c2e98a9f05221698ead1950ec5162c8f52ae75ea224ad9bb4e20c378be27b382f6c65d23058268cd52da743d2776e95d327b279c126214aa218b40b361140ae7d05bd51e11d76e93ad84afc427774079d3a1f6a0d8872760950d304638cb313fcc384493ebde7d919b7c825e5b7b9f29397fb7676de340f670780b125aa9c392906a1ea9de252af995e0dd984a69bb7081f93f6848d2a8606ae85f7b2860260c7077fe241e038de91b51372d85839ca8f7264d1aafa8b22153ce2410d573d72730aefb5b574a09a13a53fa597b604c10b0c5d9e876730a9fc96990200bd180461062ac05a0ff425949df5975b5ca3595a225522fff2df9bf5ae0133cf3603edfa03caa580312d5262e5cb0dfc93bb494ada58b9c7050e83d5003cf0bb9e46ee046279424ccb89994a4a9f0adbff61a6dc86fbcab3fb6c7b6987a8a868b256af7708230268cf51c6505e48c4efb3fcd73bfe8cdea2458a33805d49820646f4e6652f886228e632a268103b80cc1e3516b455122fd7d68ca82c21ede9f51e977c82e34dd074dbb788a75b14dce30afb3a7b73d054a215e1ea5c9d21014b34d9c7175fb9115af041b040e351547b5420579ca7d326dab189076ff5e7dae9397e838d9c75571b3f6e97cce4c0d8798b57c21b6a956edbbbd28942a93437c5363c444b3f45421fc153e6f481b70302e4aa9c9c61833bcbeb92c8162ddd8670e5a344194d90d2e71c8b3e6c4fc255cba31c4013d97c42a9d01f6a0e4e639f1f35d34d5bb49949dd7bd85ba29326eb113bd607e6ffc9327140934d7bffa0bb809181e52dacb8a88f96c7ebe619481acf694c1c426a1ec32126a41d0e0c4e8215f52bff3fc84a39053b212b7f058c377581db47eb73ef476fa7adefd3221d87c6da1ba9d83928d7aa128dc29e369b8d685d4873b09325b9cfc7412c0ef5e83408319ca01626f3fac447000b5355196c4ffced659966dad332c6b2d090c6fc45d2d2b7f8f0797f0d1faad807ea9148c0fa8ee5dd9c674ac4ff0c5a2d19c9523f30815f5a4f5f11b8d5c8484e4e0bf5a77a21049c926e45d935091fe21ba3c71e5c284615725325af1e3955e2b3a4e2190925eefd9f6d0aa4914e199a27cb6c334a01a6e3b90ccf8aef57d918e0df5897a908d4e68fc6625bed44b738370c64a9339016470c0e51806b06b05346cacff2591450f6f07a80d0e90068d3dda95d7a2875cd2708a7cdf31d01eea2e78514cd7fd7f53ab8db7228822b5280f0bb00ae26ac5c4c2cbfcbd65100fa1635d855c01b1d5f32760e010accf0bb30eb0ccf467b60cc10ac37595ac1a0953df757997453059a511863bc1e00e67d588dca2c52f8eb786499c1042b88e2012b967b4be608ef88e91bb384c4f0d6e30473140bd0c0fca54aa998f07c74d479e0cf94f8ec59de8c173ba7b7c6642a434dd4147025c87de9ad9264b9308c5a6014e6eef86a6a68b5b4c153f7adfe4425f622c0b0a461c43d9db8ca59420a3d2207b33994882731fdedbc6888e0ee4f9770a4e8fc91ea3b1716d4bf13713cbe80bd68020de896eea4593abd138b1fd726831c276990210b3c4be3d0e455c4fb0e383a718ed8fe23f2e06511a018ee3b00f5c686b16381916afa2abe0d0839b4205027b20b143a9f8e76bbc38fe4c9d1c6604702d5852e5d1480bde7417e2da871b327016592ca69847cb611f16a84d0c0ee10d2eb73ee9333bbcde37b9418b21616e620837c3b07af0076e87f6bb2e579d80e11b6d95496fc445e3d09844d72ca98d6684cb9a5340d8b87c82f6832513bec10bcd9b4ad68df69354874765f866b85bfbf011ac4e1833b61907a4b50b95fc2424da4f99e8c510d19a1f5290660542cd481ce4a2ced3f20809e7f907b17858d56cc77d45f0ac89b57cbf7c586bf3bfa817d8f4ece8f5ae2945fc885d762116156cb7ca3d0df25fccf941ba251b58f1a0c9f19baf93edddd7641569726152c29e1f8b5d50bd004eb51eea2957781383c2197ebeb59bf983ac3f809166f0c0f95c03898e8381eda5513c69baf5ba25a080c4d8f9063b5f7f3ae2f5b579347942526e38b7185c27047a766983f573caf72f9ceca4a90702801fc23d678a17c8cf730b0c1e13efedd394381deec1d298e0c5d0db522ee7686a2f2059efc901112e347207114107d5a3271c5a682cc899f14513486f56d777826437e6e9662368a0f8d730c83b1078cf455bea0d401df1ce7732497c3ae337a4a90e984c7c14cc3abcc26c89893bc3c34bdf47c3475864b7d3a61c4e062c5033874542c4dfb38b9b7d5559b8c5b90d9c3f0a7448f1c2b470035bab7ff118c8be762d092e1e9f1d16fef258cc438b8e0e6948b666253d14cf39f133dbe93027a7baa04281d7d9fede0411b6be5b485f424ed51818d0e551dee54a98976eca0a9701786d2cff31ad4dd093392846c5f63908e73af73631aea0d6a2e54241bf947bb06e8af658a5a2c2fa1883e96677d59f2e8a7c2c7522547b14b9788517af171c5a7d47a786b3d2f3a8334a2f42efb4c86996816fb0014885d27a7fae21e3a92278d9315b5ac1df5ae270c0ae687f1038e4ac73a8337f447fd0da88f98d30a283f237888ac46c03b15b1a5db397d166602ad9ace5f004a4d509396b5387241a7a134166d1ca051dcf3061dc3f8f0042e877e15132716d39937ecc06d1101acab241e2440aac42c87903cd8badfde687ce458b607264785ce025544cacd8bbaa25372ae149ec939c97a43d90d859df8fe59f60ffee2c8b74d477730ce947ae6eacef433531c15932799d42b4e1722250011ecd2485029e6d06a5a978b9bca503d38f772c968242deac8b8aa31b2c41d75ccfa429499b7c2af31ab164703dcd63770cbfdfc78d202ea1d4e140743167b25124c63e2d9b86f944091649acf2af07747d0374a2d8b4be648952265fddeb8a92f1ce7f8c1c5a9faee1a78c03aac2077c143e73e370ea3cf99f75de73acd37cd466201fc2b3a85124d39043a7f8b3ea23262ce6890741a89b4f739abd9f14f207abc1bb9082404a8b970a5851430d8c4fd0193971af791e6770a1413cc273191dd4d1648430ffce2a86bccf8273180af4936a2e0dd9816a552f4feba93018ada6fe485a904c78eb02bcd68c637e1b987dd96fb682425781a9a240ed26c750f0452297620a76a733b9ea316238cd62d0ef492186c8eb97edeebf5038298192c86832d10e7348f5639233786f20becd89b6bd31be71688a94126618f2a2d25ce38fea33334727bb740bddd625661835ca47af9724bc1ee5a3a0df08e18325ddef856558caac312f75e573a8a9408eb6d4980abf584bfa20ef212b6c392e058fc454ea34a3714edc14dca0415c9374fe1d28a7e0ab7af1a7542347a5695d18707d47adc73217b0d608691777f02f013e9eeef3024c0c490c15b6ff58713b9a7e39393519fbc434b6dd1d00739a197aaf4641365dd46c92c5058396e50345a6521c4a4e2f0b75dc1129358ef1267902019a07101a587ce2c91508aba504fe25e52c69c913f153ec85a356f6bf45140f68b2b492725cb3acfe3285010fc7184bc68f60d24b611325e4489e9f1fc9eb1d38de0b621c58654304183343018531750dc6986189648ceec03eb9a8364be93b555441c8a197c182b642cd78332cc5c662bca51dd89081c31daae42c542247ed0f833f33425d2e48ccd3f90c95ddf8e8139f35846360c5b0b626dec25a354a58442d2692f21f16c534edc0d4880a1e9e708690d5fc2ae47721189dda32879a3eb12bbbfefe4960f81be217ee02baecc5d4933d71b2b6465fd0742f86e342e8da25f4d0dcd639f7b550075bf3f48462f8b3ac04dd98e0e396fb82439dfc2ddb7e7525dcb7b5c5af55b45ac988ca44b794016a447c70a61ab373dc4b45854286a50c19f478265097c87f21d65d060a0a19008e271a5244544dfc1a4825f5f4c6f32955ae3831ed78d32d7192538765e04391a7fb0192dfe6fa5c7f8c6138eaf6a498ebf653de37592f15dc7c502f5ac4449d7202fd4e09caf7bce38f24bc20284a90a1c86d958f19c8d1f2587f0651f12684bc9b30307d9bcfb40610d1c3744e3cc0e0e0ac844c6228284ac24c3820c7ff94b2a75de9ff4ce60bac2432e6a1c420c59313858952ce00c26faf13bd0ac9262a52905133e1a1319457b44da2d2b1a0f0f9ec322ce3bc78af5394a003fac40aad7d16002a53e1bdb5c3fae3df6d9b7110b4a04bf58a94e044fed6bd139d2d160c1d9c1390b443d8e5ae8252350a2bd821ee74f457ade07c63f85fba3f252a615d0ee2b3517945f1364f63e58f39994f89ee38bc7503c981de71b234d97d4e380d95f03a04f9287f50f5002ee9d447a85af16fbefc484a6dca20c12ea58a1fd5ab307fccf83d5e11c5abd0655d064fc81149eebcc30969f392068d4587be3416e0d0ec97f36813ffefa6b911665f9be5c67692d3ebfe23673e22a43581a63210f3e5571e55667e6011ae7170a242c2a122f3889c288080b81be8b7756cbaa79c18fcdca606cc0ef484ca463507b8702fc6aca2fa68b018f5865b5b2e9e8999ad6d24130d61745f1cdbbe73aecc3f62a77e94aafbba5ff77d626ad8e01234c6f690af230995a3a1c9ab4bd2f99dbc85f06c6a1bca71225d46d47954a8c42b8468469eb4dbb6775068c59f18581320765fe3ca43f5e47a8a246a11d6164fb619de87f863805311716bea97171df19dcc98eb498a2ef146501e61057829009de8922d30e8ecb86db0cc980803558c1be466a30242b7ca3a93023c403d20c8c3f5d7a38bcff56a024c2123fcf04048e301484eec27394ddc071cfb4958808084269ce9d1cf925cb00da3b792d5fb2258f20715292dc4ea833d2f65c37ce1ebcea2bd0f3150b31d414da934804e0e63c0be7192265b675da23edbf9e1fd397e0fb94a06cba4ce322ed0a598a0544d163957c46b96250139b5df6090fd1f636cbab25d4b5cb0cd64856ba3a16e26c2b7e54e417e14718cc3fa4541340e986483dd626036b213db35e5d09231741970afc1d1d54081a3fb489fe6d0955f3f4ee6c833a8aec59a1039c5cf8feedc84f47b5366f5014e4d7a08869ca54c41f5e8e61b153da669b2f90723360fc95929d2ce5546cf9a2c8fff38e61975b9fdec2d3f0ee6dc9cac6e7eeabdcdcc8dc61f970f80aa28ed92ace6b59fa5f257064c75a30826f677eaa07d8735d89b834a7548f0a721aec2e03df280f4673cae7f5fd291f0debe69ac825af09628de8489144f53f3c136854f9800ebf3b3af92bf761b3c4defdfec49cc4a3f387b43c59c4d13e41cc073e88c8d96d955050261249f1bc817ad6117f1e837f072b53ff54a5e13274a5cdad84a7fc7e37ad5fbfae9efae316c71f5bd2b27e1dd389145b0c04c5a45184af52c15010e16d9157a5e03aaa556d2d2e2e49b66c9a165d7b5e7a3959f583b1cce8ca92b180ee207d5af199724521ea91e99e3d0620abed19de4ba57710e30c6ac5d9ebdc8a2c87154abd2c03f50211528458b1f2d5515948210c31a31d82f2ac5cbf98c9e64085c8aeae810680f2d962faffece28b3bb939cc2ecddeb3d00b7c62a204fad76359d3e6a527cdcf33b8d9b494d3568c4af63ac9364ff5d869ccfc88a9e6103e1e0d1fa20f5932ce61767626cb02f7fe534fa823c44b703748a78a3b5ceb5cb89e162d8e1149bdb071a51b248d9b0896f06a5ad480bd11d6fe18679430de4bda5249b42995d4eaf0d98b897887fc4067045f5c48263d855612f16ba66c82590c3f022a729cc13450bd6ae594837f36a502a6c18b7cdf52c1dd84a4fbdb55221517a57ecc1101969ffda0daa3a1cbfe9c49ea2925eae2fece85028a392381115185077af582292531065192ad020baf038add78eeafdd7db35abef20a1ed4bc1aab7ff41c6b03215ebb90c597dc37ef12c0985effe1a95652104dd5758a5f9181e2e4bfd315d1f95fe33cc30b1226e54fa8c19741a0de15e1559f84e0b1642d819d5de307bb90fa8f6c6841eb1a71bd15f7a03bcf69388ce42d5ae17953bb5eafd7085ae3d4f2c8521c9fb152a946e2f6f0b35cb011b3eef40ad5ebd3dc8f08b1071cd5e0d327671e12aecfb50aff75a326c17f88c77c91063bacfa565fb0b5905d8537cede454894a2cca0f2ae95e0b0920868ad0786b928dd720b711bb19e8968b0756ea0d55b4185a4cc6ec90e684f7989665b96f4dbf58f51b6af5d0e84312b1a5b15bd2db23ae3ded8dae87e4a57c75a2e19785f12f91a5d0bdc4bc1f32c6aa8bd21468df559bddd0753179c11eb6a2b281df707de32e325c871e9efe0e06fba5ed297c1d4e9cef29dc9f28d83e45ecef8e947b8b00b46552ddf5231c54248e598eaf6e9a07cbb87896bd869052affba1b846669fdc1f87e1f754f979d1fa00ed34f435435bf5d9d2dad85f949c0d4d61543425ed6a5d5db0225f2770206691eb2fbe5e77a95812ef0b6644e248513bb34444d26e1c7aa1b9e10d462057014c2530bb95e9159e36b0bb8445e50b777f82c6ba0fc23c50f5f1f5fb7b87822e3e86e129b396a7d247c13e2b6e6581d664ddedf64d41cd38e79bb34518dc54be963f5e7ec0d545a3f2bd34d9b3ff2c0580b109f79f0c4a2e9e18f762cee8f7d0fa030a65106231fa751072ef2fa4658a3b57b0e47cd4ea43855a0967d5e04994f4ac58a28c79f650bc84dfd93e95a812c00b5cce66dd10b27a7e0672a0ddac4ac9358377b3daedf28a1afc6dd30b67e0d5fe301806f5a2e4896e7ec7c75ebe93a86160807abdced34809be700e1f4b1a03e8120ca39ab98808e8972d3aea8752d265e2f3f382e0b047b1b375ed57d975de8790ee76ccd0a00bcef3a67aeeb92fc0426a6543678e97bdd44612b968bcef3dd6108fbff527bfa972eaaa851d6604692c14bad4848eff4dc05a9f13cbb6d1884961ddffac25c77ea388f846ecd8526afc560ed85663f2fe6a51a27d0a67886dcd223e6b0196c447a210679ef1f10bc22e6f9bc1a453207ff94b6158b93822c7f1d98dd8de8525e8d81b0c1400abafe9c79d5bd805cd14ec93ae11d76d5169e698d7a445ba61c6a9e48959500f93637f1cea23a2fb39c1879df7abd08278640d070c535c8f45cb5946324b3403805a3f0a248f90993d82567ec9c9279055e1e56256915cc324bfd6e94f15d144442b5f7176cd8a74d038b70df5260e5f36edd32341f2d00863f2ed06c5193650f0f54a560ec0161da7dab6f0029062dbf73a435cf431d7a87daae1ff67d78d8d1a8bc7638470227cdf7d8df56ceb12831ce56508f82010847e33e329770e30b403cc0099fde1053d987729c0e3fadfbcf200a82f7e765c0a717395c6ccf80c00d26777743b5c5bbd1c87cc77884383802cf0e69e79468fbe78b4cfe0b0360bf83ce2e69aae06a46376fbae8c6da68eef5ac2d90c60047bba4fea85c10f9cc39b981c10a4223150e061c254334aba2fd070ec1e3b826790c02e4d7b05b777021965a90668d8a70efa8ef88aa62160b80889e1c309cd423efb0aeb1403dd6499a01a0b3d7ede72c7c84ef2e199b87311204a483504f2df016c01672c2fbbb376335d1012faae02f4536f498231ff974d9e97571cb2a56a18e93f61b08de5269097bc433337d712db4e18ca1139e9e0e0f813d3e84e3d898fc70d01e9877412ad433921ce48dacb8267cd0cf7d7c919291b835d6557527dc453cdb5254712737edb384c90d16ea1a809e79369b7a4d21409bbcf2f385ebca8a24a2fc28aa3ed7696b0ded075dbed4868fd9dba241ededa48afd756a4b60ea54d57c7160c847e0569c8ee047173e6236542128845c958ef12222f3648378849727f8bb4aa1db3aa8106d3cf740dbc88d3b3389da7e9e7058cee800cc074700d24898907005e55e073d520dc81b604f7971cb53cb864cb15e4208020ffa9107b56f68109481319cc8f99ba360026ff9fb54bdc46507a9f996b0366aab65c74415de9b2504a9372516321de28e1519b073e077ee7fca86cd8ac381863941240e5c0f162617203d2cb8c7df76034473b158e38c152d3685c21f4cb5d25ade07b80f40b5cee24f6cb6c3d9a4198d6a0033b5589b20d18636ccef01dfa6d648a3733cfd7597a3308ba22ae685eb9ce8d6ed9374163359e12b986610e1d79935116b6ca8e4d202a5116ba3dd8aedd9a6cbc3312a0d6c5d586a85f00e967de88fd645112a206595908b09b2d07b2979e185c830d682470c462772cdee39e0f7725a808314065ecc76719da1c7a725e1d1bcfcc018f1cf73f7ef31b18751d705553127ed4f51e596e743c34c4a1644f395b4a5ca407b274fd799b9dbbf90368b57ea6da279aff4d6fc202ce99e40855fbda0b4d73f0d8b1dc958618c88bd9c4587c791d399263382a1c577cf93aba3091ead160160aa029c4c257502131aaf80f68184cc3a86ca4994d909806faf54d8f2f81f378346e2c2c2934711acf016e129a0ed562cc854511141ad792cccd1c6ae4e2878ae6ba0c0c2315679b62fc8650c652f57e6183df7b26017b016c822691a2555383fb5de63772a99b0f65e56b91ffc6f4c56a9f52aa03d10b29a77df905782c9478094f6aac6c6989ec9d0f4d36324951010dd956446b78410fa98d0a0713f62d143a0db0a25e643dad111778b6a9821fa3ba447ee92a3290ab0d62588d6cde8ef1a760568a2b820aa445d47cd0c3877e1d98c2299a0150e1160265cd0faf20535457ae720e1e2ed8da4231cef03d0ee00dd5b14ea82cf1f4c8932e1080b269bf56cd28390e792f0c006111ea842582930a36cc765b3e314c97f548af1f22e836a37c255282ea56712536c995d70f51054ec860b7acb7d6632083c062aefb4202fa9ff659fb4be8c78639309f2a774d31a1f741258222668ea2929dcc92a751d62bdd05ba49248fad1211947f94687498757f763cced2a2829cafbf7e9f152d7e63885ab99294f019c44e548c5526c8cc21da7101cf451d7ff881ffcb23e405bb0b0c84f39db3b11f24591fda1a29513ebaa92ee14054fae750a872a09135d06f6bc46a029fda0e1c7fb77b9a8da3f684ea88273b0b7a7fcf4c2b24464208a41a4d661f412643789317da000b810957d897ca9d65a567c4a968005933ab326151bc26c8c673f562c65291ad0acc51dd3fe64086f0485982f411cd9fc07e6e5b8197098e37c56cddb3f97cc2b4baaf7b1527baff0d12698ff4e5d493540a1f61c2daa18f4f9317fa0439c414d6f8b04d782041ec542ac0c51a9f80932d64196be1de036eabf8cbb580ff352ee5eb0e44da231e15193cd47c10a6e71eeba23801ddfe7554ca5c6169afeb272b6e48be028eb3592310d0ac95609ed104c23fc8055450f18a586af20c995e61048ef530b0ca904dd958516bff03510c7c20e24926f89c37e0328b6e02e867db4e1e94aa5fa9710ecdc327d0b94f5ef9085b2f1a0243aa58d6e903a4d660007a4ad357dcb8f90e1fd4a9cc386cdb2cd67fc187bae3a943e869b50653551814b5fa84bebc7e091a37a77b281c041df8ffa48c0af4d0d5d60f40adbea2ff17101190989284aa8d3a457dc1e07cc6d381fd44fa53fe0f406f7c095d04d90cfdf84eb4b0e787b1cd44f5b28cfdb3a940a5aa52c93b71d911b71b45f8da6bf10bed6c93876b18a15e1991eb129abae8edd2012e25b4540f90ded72ce47c8025a09c28d62116387e938ab2c0475c03f5740f05b65b73a394b708daf0e144744a12171d2ff67ce169e1d9f099bc749e8e90e97ebf07e249a8a5a0a00f8dce2105619e1392d8a4b94f5368e03c7e390d9410ebe39fb430c5c7cef56f35c61fa01710381cfa8e6f7b8a427bf4c957609f3c4588f7b6ea01a939e4c68d1ad08e201bee1723d64408d97c42e248397230eb9acb7d4234223fc58c96b11bbfdc7f60f9346a4e3b035c6154843d4e49a358efea409ebf1eeea3297be2b9b1a32b783f21cddcd40e20588f53e8612ca54b0b6a4a86e3816d31b5a039be749125cf411cf9fe357991c992726a51c82365d7b5b5022e99577bb13de207880d3ae28ba4e2fcf78612cb5a133954f7c249e3a9fa73abc8969d8fd6b63ef3b39b2ec3552567510665c09406bd0b58853c0d68bcec33454f35009430d6daf0690fd6772b5ffe6f8cfa0a4735abaa00c4dd3d0b99f3a8b52a068f791e113331b28d990f01b3f775328df1b126b2c2d7336d50350d111b3d143e68981d15b614adae1339d34a7e5bedcb8c9842c5f920da8bfd010561730f95e0f65721ff8dd12349032f901bb0461a2b803bb5ced5f7f92b24fc9a7af3a26128bd2e93b67c3e6d1e11dcb3eac7c19092980268a7cb49c4df376d011491fd2ad24a0c9b3d14e93c4cb47eab0b41e7e52925680d55de3129f96a381e5538cee83067bbffa7d2fe47036d0981b67a906c7905f11ae11ddffd7f62565244db725232dbaffb8aee7a5d82e04120cf0949fd0472f12a352f84e314bbfa956da818016b485f57e1a618b54c9630a4dcc44006f40b541c97b18c6a5a9df214d2f355cc752abe664a370f7c55c8c945cd36336fad21751565fad9f69d8bb4c701560bea8cc44ef9ac8bf60e5858fe48bd37d568d77db896e47cd398c9b3ab744705fad9c8ff3a0935bf3690009bb814373ee1598ffa3dd001fbc1fb984b073e69b1053e8a197c948b5202093191cfe8919ccfff7d7afe7119a50c15af51fe89f011a85d8461185337115a4c23d67bad780ae93d79872d2912ac1d41ad7de59edd466fd7cf124742b69a14ac1a8829769f65a9083c7221a23971c7b4375d271752b433fd67de285ca7662e2875afb01ce0b799df4da97d76dc65288a308f3fb6f1d243d239bd829bb93a4d836e3a4149057908929d88ee0034c20bb4ec4337cf0e9ec94458f03c359efe211a023e4e7478c97538bb5f0a3ece558461794d16cee779a7bce0d412ca9e1d1e9681bf278b1e38ff7c283e4a1fbd9ca2aabfcee38d8c260a1759b9a61ef3fd984bcf923343a092a894ca5d17e9fb02bb653abfdba3bdf910f1f59c99f76dd16270d1b78c35f3498fc09af1c543426ff24fbdea4d21c415be0784e43971667103c2511c128084009359e65dd9bbeb89e7f83fc23a7378f0d475ca156227dcf42c1302363811ab72c652bbc89fd08405602f78450f5fd9e4f8fbf18366a26250d6aaa357fb3073f94c9c11ecb25bdd30d16f4c414de378a799b75d1dbac40e2ccecc5cc7382bd13378c34ffc48735532364f1a31bda8f20cd901dedd2d9cc782f0ada5a2b5b6f06214de9842c9766fc238c7a4fb1665bb110554f6f034b24f2d4d98d72586fb05e51215dffc38dd2a4234fb3fe2472a79834920a5bf9c0138641a8941ee1872590b159f5a844259e82fea0c08374d32e67c46e6d1e542cd73ba6b7f82ddd065f0cc1f5d86081effc3b19856816c799d5f7784f8ac23cb36ddd26baf78d5fd259b97afafe8520bdaa6bf169b055e267f2eab1eac7ed65dd8c78f285843cf31f81d2df15c686c663512376294945203c2308a3d61de601e8a5c70c8d8c8e17675f5fc34c77a7e50af2a008983c8e3995d44bfc38ce14afce361831fb2cac9aec253ab103f17a2b0a568c34eeff88f7dc7e0ad34f528353be30cc600ba2f0fc1075ae1e015a5b3055538ec98c52981b5da24864aeb700a331832b79bcd5f0068418054aab32fc3f05880dbf0e8f5ffafb0b3a48493d816d12bfe9fd257b0f998bcb9fe58f5e3c940871704b69220b3d2d963660f0195b129261edc186b3671e42ddd6f6c041a25844e7678c9b7a8d8ae88da5c1c4558dfba7c3f72d6bd43141bb50517edf210120fcfcfb2d7d0c1135f245c7f5600e3e637a65339f9248ac29792563ae0f530698265aa2d6dae76ce019803f37a308d47abbb2efc1df96c6184cb191caee1eac1ca361e801c06f820eb5adb2f51881fde3546882c965f11e50806f182d540b668ecb85835508ee55fadae1cd2dea1d8d6936d6178aff2fe9d4615d2ecdce9d24181932868efd68642bd3d6711c767485a180685d6b5acba285099f289c63aedf2ac3752d90f469d06b03e4206c69ee84968d02308e5cbe6b1b6d245aa38bd195aaa81c9444dedbfe6905e2e017776871a47edd3d2d36943d3f69d4d0ad8d52bc0ff94a8b6b3b726d29a2d8ee6fa6c0c6aab92b42380ab9eae952b081ca4b2a0ec3b44802bbda45cbef4391361bdf5f3f0fb7c2d9405edfbe2bca6b0132691bdde72a8a623571ceca3cacf5cbc001cfb5ef6a2de43627560afcf0cdc4483d6bc6ea0474c63f52e1cef3b2a86b9d55bdfd5e9bfb5ae1c9b422dfb1985e992c8b93001dfd498ce6718c388d26b5fccf6f072e11164f45630dd36d0c1995dc8291647ea71ba149b5081b3c2a518e8a327be34805cd3942636829383c92c0833abf07bb3224c8882685fd7fbd584e9c2af03521f5c2c3531436c868ce8e3a12dbec41bf9a3987a73a94ead608349ca3c9022c0fc22663d056160b4827e27e3cfd36df702adb002e9e952132febdc76a1badcaf093ae24f7942c1f2237a6abd77a116f3da5484dd22686b3b9927bb90f4b34e3aee511f6097216f508936688ab20edebc0a575d2487240a0f17649260e4b3ac247f4b888f2ddfed5c8ed4c808f17addbe83c86fb8151843d31e5cab3047853f9ba0401d4e6e516b2416867cb57b79ded283e875214ebe8a8259436017eb3c9126e7e6533730d7c151d08557315fbc5ebb0f86d1828afaea1e940e9b771ef2d2df14c295caaf3e0d2dd9f8b7c4685e1c3bfa414e9ec68fb1558ccf890c8d2a6eedaaac35cf5e3130f15ac657db8234689a60deb224d21708bfdacfb50580e936076b47ef201f645b3c40576ec6f90c2f99395caa1a9ceb580b7c13b4187b09c6a59eb71e9ab1f4719ce87975a2671a41e63099ddeaea5870b690b0a7a4e41dd3ae7026c3befe550e1de50daa75398c072370927fe8c199c976824b149235b2678f43af8423c237d95532a6cc5419c7064f0822ce0b8324850094ba162d0d88f4635da1cea02e63cdddc37d61a010c11ffb10de57dda994e476936639024bf28d00c3259874373c4a9b6e726265d6ef9b9ba8ef6f9118d2a4ff246ea2e7bb0ff970995d292b14838be52ffa0b90544347533642731c40c477194e2d42870ed365a65cd9166e61f8241f24681acd65d25cf30625ce131325928351d5606c3dc1d61c2d1c01530ba495f79f3748780d44c29f14b67ed3dd1cd0a3a39031f76a72441103d61a2e06a96f7fb2eb3e58d253106e65c239d57f1489bdc5843f28f7e0fed45c28d40cf8649d85b19f5175ae183948085b867fb3aa6f63980f0bfff79f7e038e44a59e3f78a6e6e36e0d2dbac091ab5f71dc923ba1b39aba80742c3c72d55bb7f48c9e4621a74073dfbe44494c353a88e85bf9137afa15222b5acbd3e06352e38feff3fada8af6ec5e256ce4bf064b46eebc4552eeb91101c939fa476d46ad340655edce56d8e28dceec5fdd67c0dac1e475a3f61162ea282ea881524937322a68c6511748b1644a058f1b1e352be4ac3591a17599936520bfdfe07ac20c51c432aa331e260fc2d5930f74b02ab878c5906103cc82d10aee5001a1f3c49d3679b5e5608b0e56eb01009d1776fc0f1c1aa9515ef6a751cb984838c2654299181e8830601eb3fe2fdb7da83e144089e4f97c3a79149d715cb63fd1e22d440d2b0394ce400d69661833423fb5bf4cf02120ce0af2ed0496c30a430d140148b413b3ff626f46e5a0d940b102be2b191434edc61ad5b0e274bf4799b9a7ea63d9fc24454cc9191131c323f1528f2e82916eb7a0b667666d113f43472eae6d51b7b6314d6d35c7b51d536b8b21a8ade8a9adf5bfb633756ddbfab58d92d7d63aafed3dbbb614716dc5e6da9acfb53dd2d736d6af6d9db8b6526a0e6a6bccd596ea5f5b09a5b656b7da26a66b6b22d7d6daa9adea59db63626dcb8ada16d16a8bb9d77633515b19a9b6d8666d4dffda5ed36b1bd5d4b685b6b688b3dadee9b5b551d69634d4d6f054db93a0b6459ddac6f4b5d51dd6764caf2d86b0b6b2a7b616b588d756e95edb6ca6b656b4da225ab575be6afb4ea96d4a51db02626d4587da8ee76b8ba2d756dba8ade95ddb19426d8bbada56d06b8bbad6f63a575b14726ded766ddd3fb55d116a5ba4ac6d81505bb15b6dd3f9daea106b2bb76b2bfba8ed81b6b615bddac6d4b5b5ddd63699525b83acb676476dd587da9ee4b68d9faeb9390071fb801d67d6f9b60ffceb16e23abdfd49f2f0e2438dfdef87212404ad7e0e79b4faf33caeedcba30bbd167b68fdc6101ffb954ad4c25bcb6b003a3ffd02272f76562136b262c6bf157c91ff9d248f67243d84bb7e07d232e71ed73af0f7d77050a081359cd393ddce826afb72c5774f1649d7931cbf5245c101af0f5eddb34074bb83e1e05dc374d22f4f03bc7530312fbd60472dc62bc528c7adc62a8b298eac8daa8aa889af8e5e8f5c8e5f8e5d8e5f8f5d1e5f1c5d1f5de5a6c727b50c71b958b717893c98568cc9163a1905e3b590cf3efcfbcc84026f64d0d5afeac10b0b24e4eafe3440072a434d8657b6d86ee23028357a44e6b45f91c5b024fe54435e2c1619020ec86283e6e6aa2c16d0e3439905c8da4cd2592cd4c6875db4803e2ddc95771ed6c2ac167f2ab61845c5c7da16601c99c06e31d08c950197d202507471610051ee948b14dcd8ecb9600bc7a4a98b1573ac20bbd4b18e81ea5db495c4f3808fa017d021f0f2f6a29c04be4ebef4468703ee0b6379f8c25fa4b7c08f041896cddf938191767b1f5a30bce3decf208c6d0258a5c2d47680211a46b5de7bd58769ddf78e203178b70486568a696df106b918a641dec38c1126761f431cc3a2c77c2abbe7081979b3fbd823c328c7bd5e2623c37c61c9055919ada85ce79649d4e5f67a8d24de6e7d7eb71c89e1b5d35224487eadda41c90f611b5233217c443e8119f6e95300c809cd798ef0b78d87024b567d4aeaf460796bac291d5926cfb83b3beedea3e0dcdfa3ebe39828c86d115200eef73891b34a6b2bae45c284e4479af5964692af7f30a952c39cbf938b8d7828782813bcfeccd3289ab45a6b46ceb0f9b5769353f6cdc73939ff167372cad7f93b69673fba31a9177a2235f4191ddf676a1950bed840875309fd8d154a9687e87349a25d0f4669e519fd5c7eb4e90b29d4409f939f289da8bb54b983295ecca6c9c59beef63d650afd34b956d4dadfa86061a666d79c5a7a51155458d5c9f956bf86ae12cac6fab8266bdfab564a195b7f17726dfbe74a2dcfebef62af6d9fc05265059b5d456c7ba4abd6056499e2914d2e5f766bc92cabe8b3994bd016fda60514a13677e2daa7f9b5e4d2dabe8e6e3bb6f5965fe9dbd65de2ae36c6e5ab30b7b9d9dcdd72baf037d4ce3fb63ba7e4aeee2a5e7c11797317ea5ddad7cb2e8c6fea62be755f7ec1c5fa4d5d03b8ee1130b0088287b309fe4d1f0c01e4fd98a06de17b5c6fef859d6d8b27875d99af6b87d14e2306af25f1e94cc5cff6157357c4787527cbb83126f12712173cc57d60f1a8b87843304e9a8cef91c665b67115723ca01daf79ec71381139158d1cc948ae87251f539343f1c9058ef235a0720c59b989583ecf5a0e862e57e9cb0718e6683ce60e98f992d01c1ed55c66369fc29b0328ce6d38e71bae7324e0b99ef47c8c7c0e653f1720d0d768d03158e8261ffa3c283a98185d45471f30a4a3c1a43b54e94bbc74f89ce93e992e89a79750c880fa73feb14d0b4c16db876fb9f365abef54f75d9ce457a6bfa0fcf7c116e0fb6cdb76602712ec6fc1fe53835ddc44d8d1df85fd74d8d5cd871dfd95d8cf8a5d69b1a317fb89b11ba28a7ebc7afd737bed6d76ccafc773b43156e112974d430651e4af8e7c4b4a720f7abac493c345f9c5946fa972d39b84a16f84ab5958482ac0ca44f2268d7d63981aeae73b57f839132ede7cf2d6e30da2c5267f12bebc8766a898cfabcc68d8c9479aebdf30265f4c45d7b04212b678efad72dd48a660c8b8c84682fcc7b172f7da82b5320a6f329267f33fec5c76ab501ef050b2dcede158e237b82a0b3172c191e4fa178ce417abd405f690c22dd67b8b5c1b93151c02d7b24922fb718c5c76af500eb0d0b2eee6f1786236b82e0b1132c19372f557cc6416abdc05b610c22fee75cbdc1b90153c0257b24826ff38cc5c77a9501eb050b2ecee795c623701d716a5e606a9ee6ffa83d1237941f42fe8d90f96c68d06290905642e50c72e12101711a2d6d1c18a8675d2d0997db0b38248e7422d87e9c6d52e7850ee35f88f7e5ae9eecab5a6da5b52b2e52ba1d2c105ec76548753ce32c240eb70052367ec402abc5d178f04b9a0d0374baade99e876e446ddff72299cb19092e54052b29b1a256b2d0e6a3953adcb916a4d0ea6b902a381ce3d70fc5aacda1def4e7752712025b1f111b403c7dd87031ded9ae7ec76f3b036e966e62788bc793d978e23878dd9cd05741f2bd183393769fb1c2d454df488cee6ac6491c78b318585f84c525e7212dc4bb67712e3582ad390a3477533d5e9e5fa93bab27885d34f4d188e248df1cb27935b428dac5d534c74a7c81f5a2b0ffcc6792237272f35f480e7e14b62a086c94a62409dc2d7a966fc279a5e2ed9130e2c832f1d9f1aa1d9fd74738b79b83ac5ae41bdbf3cb8200bf43d75810f54afe85aadf19f478b68d1bea716ed31350b5c3b757f7b64b12dec7eca721ea54eb16b53fd1f8f2dc0725d4f5cd003d42b7a0d2bfee7d1a25aa2efa9457c48fd45d7bcde9d1e509cc8b89fb2d81f8a4d84fa9ce5a7638a29b8492293cd6abcd6b19ee7d1a259d6f984c5794ced22d776e5df1e598ea57a9eb69887ab53ec1ad4fbcb830bb240df5317f840f58aaed51abfa165b8fdfe7269a0d2a48b31106c45d6c7ae3e1f5bccc3d59c7601c5fda5e01ad9d0efa30b7ca0ca1682ae582daf588c15f9a63d9efb3c4aba01749980d0e7d12a90266b6ed7202065b980d126106579bcade50873bbd4b5917a25562a05ecb73250ea90669a3c501dd04c53049a433465c20173fc864c7d408ebba9a90a88633764528173a0a64f2a308ed484c909c481c1fa89b11f8b2264e0c9b63042ac6819c59f9b8cecc76474683066c7c66d02b16da93900b3e510a33be3ddcdde86b1cfa13302b77139b070a6bffb605c216d03cbd9e6cc39c35e7cf8a64dab2a3f3ce83b2ae3e7ad8c5aa72ca326d9c4aa4279b4d1b17a675e206b37e398c912fe80e5e43ab66cbf1c970481f31d8fdd9227ee7002e664d03e77088047a8e95cc775861bab4ec650db1ad6949a7b84765cf8159d42bda5009b4002668bd4e944abfc820fa75ee74331782e66c5bff5184f8c5eca9522f81bb266099c7406fbedade119f605837f6d89fedf11a1813170c44bfc4675e57589c95448c7d5b24be8223a6f2960bb0eb30d8864d4cc53a440e0cf35a7f198475836f5ecc8416e20913f8ca0f9271bf616cdad0fb8116028b5a45aba0e0dfe04e7ab5c76b7de0b7a8ec201e5b85172179288f52e7c29bf0aa6ca9465f3d4c5c3e65e15cbe6e0ff410fe838a4141f49fb023285bc745bb63c30b2575d29dffe4ef80509c794b0d2714b98d1275cf09368235c95489727a39b07c5b9ab77ddd3c3c33f9001bc1a5f1a6f84c912d5c27a77f1241947f5ae3af8ffd0533404a9c7c492b51043cd74e349f9453025a7971be70e1e36f3aa28f723df1f408299d60033dd537cd39b62d0b17e115d389768f3091935ae6512fbf660bd58c69502cd0aadcd91a78332fc235f61dcb0e5b701016e9cf69db0a4e5999f1c32383e5393ecfeba9be3bcb6ccdcfea0d213722e0f8bef4179b3cd8ed082dfe648e5f707309c657d2dcb7e304d2c59626ed90372901b7fa76fc958cfbdda5b2c2645783f019b51bfaa5b9e9b5876394ffb344b84ee19b9a33f1441eb42da8800fb9c507394f927731d95ce8c2d75810401ab4590f43dd4f0327e4fa396221921333607884833d0df125a52d2e6e1623eeb2792ecc3828565a25c73012d2bd3e4970b6066b61472ca1d56afa1e4abdbea5b0247a4efc83005ae0a568472bd7100346bebf9ac18e6c240b1e6940f011e35b758a3f55dddfb8fbec5f461d291a9bc8419c8844e999895a5505c59dcd34a47141409eec4f5b56f63b8df7007a20b34c0720006069bb9e82c892323b6384755bcc3467a4af7e9e4ab7035c907d742a52c630b174c45f8c5b6229a0fa57801dc6fe0b67d6e58fa9aa6d3f5cae5e6a849474ecebe126e630b62729620077a747090f7d3fa0909176889301e51dd1c3de78aa091fef42906042e3f8dc41b5a0880e58575bab32a1900ef46cc8614e49ea54e1422d39e4466a8ab420dd88b0e68c81cdb6877b69b167ce1c39d754213f5165178d3d0e84a78e4f21d0359a408d55767679c2781626ab4b1a6249d56838dc21125f9038baedd2d9345901dea2e4c795861098bfb3ab26d6ac7eda9a1490e135393080d18cc236c4426e4f16b1b23a5ec0226a336e97a439c48a08b83265d09334bb9c70a03f944e613dae7d45201f9017ede612a3a1912824311327e6aae343db03af111c2b7ad322d653b883a9f76125eb02fce5d284c64dcd4589020ca1cc358c685e8f16abce4ff60fe80981d9b5dde26cfcaf0e7fd2b12d56a399baf0144e4329095135125364cd8b15564a357f68e5a078f6fc4da44a0276f395b931bcbea52e53217701378159c0b03fee6673e0b6fc7b5dc53f82807f62039a3a80a859a11d6cee526a3963144a973a6649f531dc274b64577112b5191ea742b9a81263512a9f4e35d8c6feaee021b8132bbadcd69bde5659e5ccd24194a325b766665e70e181d3e5d89d06d4a1d7cba5f8644ec66c459acd9e0669bab8264d24e523a9e59086c658a80d651f5fd76a04a54f9a4917460bec06860ad692ba743e5baeae94ec21167413363cfc39887c9ee77d173576270ba366745279f81c79a8690e8f4a7e32bafa71dba2d3ba3fcf77d5e4779acdb157d38f19f34b71053a77d1eca7425095924dde450f3dc127db46a989e450f1f67533fcc72f980afab6e06a8b198defe1a654adf2f065f48f2e74aaf51dbba812b7074b1edcc8f48101c3cbc638bdf15309596c0ad50eaba00da08112d7f16b682ce6734313bbafdccfc98fa395704fc4e6f5d01307ba9c3025d2b2c5224c5b7b4e03cd871990bfe6a5874204f88adaec440d2aa1c2d9bddc70502d86eef939b67414e52e6752e4bb022174954591c162d7ac4a22a6a393be017482bcf894b72d54df53daa8f13251e1d1825f5119ff65c589f4936e6babe06ff7810714cd50460ba2978e1834e3a8b7e23ff535907081938f445ed63e6a779575ce7d75fe69417d445636d99feaf217f11abb8108dc392a96b7515ff35c5eac8d3ad32425bc2de227a43adc44f9dbbdf50aba1fbb95e6fceeba00d01f34122e262141e9244c842237f6df9d602e63112fcdb522616167b49037d492b4130b5c94c5d01cdb7960004f585b339abac23fecf24589d91733bd37a1b82c655cf2f2943a787c1bc8c2a7d92090070ac9626ab9e1b6d82624f55b1e81185e7a41ab27be9327909d6f6e229e3fdd6e0fc7b267cd4d18b1210f03f6d874e00e44be8b0aec738929304cae3380cc27500d1e3f6488b4690b4ed9daf2aa003a8a06e9695d7f6af773e922e948f004788c111407fa0a2c9b8a9a0a2d6b95c78a5054b7104f98e72cedbd10c8b8aa12aff702ff26e1d40cc06f24727911bab7c9b99aa75f2d637f3d70f29119b9014ce3fdc09b422216aafb748bd1675d9615aab605a610da197aa7d44e60a90eb42ec41d91d311d5aa6887b541c10680c5040e184d882ca01815c8645dd27f02c797cf0ff70ad64949fb640f3163e33b88eca8c22242d5ba57064e06e0603143d26b12ca3c6ced79f7c9be170376b3006bc024eb67e50bf2282c057febc6c9f4114304d524fb49b8397d7b708f5e8b056fb1d74955cdd79ce46f4cf51bbaa91b40aab5238f91f7d22a8cfd0fdb9215affcabebd550e21811ecd83dac68365672c5b81b35e46117e43e0d11b79e39b53c4465b5f2826cba94914c088d7f8d08c64c84ddf913e6613774b9192cf7272599c98651024ee3f91a2f0fd10362f0bf5b7b9d49a3cab85441c175a0ddffb79cba49a001a65e3cb6678046511395dc8beeeef33445437af70530045897ab5ff9ae8eb7353687c0cc3018ca2027af431665d40ccba4a07930dc9c398e051a3c041866d1fd0d491b81f53b027ea804ceac14fd9312c831032f18f0f23c41fd8a4bfedcd66dd910906cc5fefde219b40b242ec99ce79e584fd166c905bd88b4a28da27224424217bef2da59452ca24653d060406dc059c0e1b4624243f5a0ffccd78a0daf5553b54bbf6c85ff1df709bbf991df5f1f7b01f919064d9d6de98d7536d24243fbb7a25a8b6f42a90f43c19fdc82d424b16041501d102c267005cd31314578c81831327c0614a163a6647241c82d882e02084435067f19dd606a519d38f129136a00d5a2b9d51b47cfbb5d60aee48e53f01a2162dc61af7c3fad4d61a7746a768af482263fb4fabc5888361c38edede8596bf02504c0647e7427756e8bc2312d092157d7744027ae286a21a6b1231d21721bfe3115e38d9f8c8800d4b5d9228010a8208d3642e01ee20c39e8f818d007644d201ccce7644d22116c4270d49b63fa501891db3d4a0c314403bdb9fe68663bf992e294bb2ec2865c9d19e6f87a4080d6dfbe4668fefe7c7c19f7dfeeb652f677fedcbc9d12981c708375e30eeb3a71f8ef69bf63ade0ccd5eceeeffcdd01466e84cbd0d2af5e5e88f59b3b24ffb10b4edb50ba41ef53394f366e8a77933f575541ff33a2c2d8b645aab2f47ba828a5c2d191423555a6be90f659005ae0bbe7b1d16003eb2541fcaa29897b19ccf21c2c95efb1c221cf9d9e36c1ff3e548d8735f4e8ee4be9c29bfa5ec952d693294317be4b937f3d99ba9df0c08fef771242c8aa12f5f04b55a2cfd314f84a3fafc39bf7e9cfcba85933fe6cbf1d6f42057fed05bd915345bb0d86cc16200f0ecd1acb119cc635a385babf7cf21c2c9affa1c221c99cf3d1bb0625e7f394438fa575fceeaf5abbe1c221cd5eb2f67f5f92bc78b3e1f9215e32f2ef4221d967dbdb68faced9ba91f0f1ebcad903df2299a955fb2f273af7a221c4d3403c2f6dce36ccfcddf8a70b6577d3973fb6691fe82260c1659d987d315cea014be19fa85907ad4a7be1ca2191ed9572086609f62d8c2061b945a2dd6cce97116f72a6c8ffa6642c83cb4f9338ce8c85a9a35f3c3f9daf367f8d091359f08094209259a5a2d5664715f0a2a6c5f8b8b1135d1c4892bcf5fb5a021c0f3da91ca0ea76785acb5427b5ad89e7686475cda7ab6666cd6cc158f8eac8c25773863b715a343dd82211a7c7e50faa16985bd2b74a837c531fdf5fc7befc559d5dcbd629cdd7cf1b59e7f9d138a46bf9ba2e9cbcf316b5a963dedb3a77d5bfe2cdbdefe96290d1e00ea3e75621785c65aebe3d7bc1dedb72cfb42126cb4cdcbd16169d96b9aa63da5afd11434fb9ab54fe360fd6614d1a928e50b951d390f521f265b42c769012d6aa41cb68834e18cd8ae1194b123cd603218d59e2500d8f135ce9bdbcf8fbdf3a97305092df919da8c1cacaba35ddfe8c91672b0ae86f64aa868d728498076d0ae5d4c46cb6fac1777075b75b0b8bb2fddd3ae6fbd95cbc1baf28973a5346b2c9d012bd29a7495b45272ca5287d8e1aa69cb5c29cd95d2aebf4af21b19a6f932b05ddfcb3187a462bb8355bfdfc1ba26192e19405e63e6d56da9b2ebc73164b464f4c8f0d9b58bedfaf8c2fc264cc598fc46ae9a4e48b2ebffec3a130297824c2cb2ec4bd30ee6a1404ffaf3619dd3ac41bfa529a3b4eb6b335fe8b083b976fd1553572445d30f655ebbbecc13fd6642a029cca79c08f39379fa6470d00e69cb6fba1d292a68069e00543bc3a9e727c88f5c4c924c199728fdb425cd69d688ace969b059a30d71b06e3d0e569783553a596ff3f9d980fc266e2007abf6d6db3697dfc4ddb30dd9b423ad71d0aca91dac83ed6abdeec9c1199cf9f4e997d37d9a0eabaaec67e18a6907e0b5295dd141483f4cbbfe56a46576c5b4cae2372e447644d8c1e417e22d487b92c34983cd1ad1c7b79e5903b3ea6b4b5303dad5c5a4bda690569441d1beec1a2b18447bd0e1fb87e00ea19b35753ecd1adca7674dfdfa91c35b90dfc4a60ee6607dd8d0f64493b28355e9f97730bfb933f7da8af442d3ae35176d43317cd9750bda35dc8476dd5ebbd64aeb5f09bafc26ec7eea539efab467c8ae149c5f67c4be259062387aaf004f035ed9f287215b461a5e23e553f9f5903ff70ea73fe7cb1ef2570e7ae7a013e930b569fc238de47648ce831d28c85085bd7210bb27e30a2d3f66493acab924b120f93049f7efd2c50ee98ee09c3e7fd2907e3ebf1ed34ad1f5bf1ef3e7ee41e987a594fe059211a7a2980f3c1750cd3fe05a4cc0742a73a4316bdcd2fb806fea01b93da0ad568ee07c9fdc8eb9e5cba9335367a6d28104b4eb0ef19edf440626039381c9c06460323019980c4c0626039381c9c0a4b22423a32c298b9225c946d44a7dba7339fc4e13423c53ff841b7bbe8e7b33f5db11811ef367dc80a2b6ff091ab5fd5104d85ad4e274d077b59e0cb3ab17aab042a53de27b7ced18c36c8d6eeeee78c6625f21930f90556b69f9f7391adecfae0940807d3f1308b02f4a027a9b2063fb9a2061dc7494ada92de69ff77e7e2c39ee83bac18edc0e4ec706fb7e266cb0ef6b7a9b92faa4280ff8fe80dd73870543b3894ef3f734608c397f39cbb28c6da62bd3a40d3ab4791b1bafc9344dcb7274cf7227ce95ce79bf8f3a68f1c5185f4b63ec08afdb96e5a67dfe4ddbb64dcbaead328ccd3f0d18b968335bf0cfaf23eef8338bf3049afdfc5527e38b37fcb3cf83fc9e79feb07fa49952bcf85223befc3981ee551733b032a4ac5c0e99ff7e98bdf6e1d7de390fb29faf399743cb729d1f69a896d8a63fe4ab9e87a7eddbfb8cf3b5b72fe5a9de5d33c43d5a7bee4312563bf5f147d093db213de05ef585a9e7fee9a6c377f517f4e4c169ebadfad99a07a6baddf01be7416967aff5d0b353ef9fb71b38946295df98dbde7239b614f785ddc637f0e6e1af1f78fb4e4ec7f62a6ffb42b955cf71aa0ff456bda6492ef58524ec14a7c3041966ab3e461adc075a8b7b4b793db647d57db91df2ab04b2d71ee5514a29ede1affde4766c5ba745d3efe19ffad05fab7e879b07fea9df2a4fee6ddb7ee334c96d9d137adb3c7fe776f86bafe27478333bb44f7deab5d7521e6ae7507dca0b559f0462a4b17d8c34b84fa5b614ea9bd9c17df6d96fdb57b32f7bde8d31ad8816699e860192cb5f6b08eecae5bff7aef6cd59848f878312a7478771297f1d7cb947cbfa25a02079bc46648db1b9ebf1705096e0a04df66ce40f6d18f0d9a8efa03421b5ef834d3e4033a8f9563d90ab9e0dae7e51fb7b2fc68fe337f351dff685abecb3e1372838e7d9c89e4d0f3aeed086c5001b39f2e43a889bfb50f05d65cd397f28c8adc9adf12821d42e123a7b1e53040c84207beee23e13eeae380e4a11a4cd1afeecddcfbc1368c69ff3f09b7b3f14e4b65f0e2a370e5d45a7ce071d6ad78e05d041498e899191104741045182217e8c8c84387aedecb52ceb664df6f1b5e838d3aff7299d35d39cc7c14c4e6ba7a59ea5540432cbce32ff447030a3f4abfde086b71ccc3ae06096d5207c5e9325d0fed572ee7230fb3a84963f7f520f7f85f1ec0c7ff6e4156f817e92e9934b0e669f5d3a7b77cdece3b4b5037ec32387f84d6624b34c8f6067a15cb2b33176a6a46767493736abb2b3cc5db326cb6cec4cba4bcf2efbc8598cb58e33cb7ef39756124410251802bf965d46f4971859f67cfadadce6477d68498dfced15bc3de7ed708fe2b14312e21287e25e4a8ee3384e04ad4db989f1df0fc497db319fbe185b7601767c7da1644bee834a3ffc3c1cd40077a1431b1b7f35d259935452a7527eb2c941fcf8352984beff4f6b953007f1d7236d5fbecc4ff16f5e28af6cfc999763bee6c924dec2fca410fe4c44e39730afee14dbf01bbaf1e3f88d7cfc18182166c0237ba4cb6ff26771bf5077a11ff69b78b4c3c8b431f6d91803610d3686cd1a8c5f9740c326c68ea36377a5b0d89fd961e7a69e4601fb727b28c36c1946fa3bf7817df937a64ced8f3a3875a436fd4c486d9d2b65935aabac5fab3ffd9412b269d34f8cd413122a549018226204114ef80842c4d20f2c2e3099e0c8132b4236b0938397292ce850451756754245ab7ab23064a451b7b0a19174806d04ec88a4c30fdad31085f8f1e7d7e3730ad0ef8b3a50901bdfcc241a05df12986fc244c1f77ce96044c1bbf985fecef97b146dce786da5d3294542e347592ce3224bcab86451b45812179e699145c9b8645cb22c322e99165916aa9ee83de8d779b4e596483d286d4b01fbd50fa907a11d77dcaebda5c5f7b40a749ce244698a93d78e539c14ed104f719264c7294e7c76dd718a131736b7e314272b6c89c30e045a7efadda79f04e30a18abbe0e6bc3997dfa3aac59058ea73b1bb2f7d8034f30c58d0e9e709f459cd8c243c62b5bd624b476c36f620d067460038552f9f17a55b163b6e4e9cbb7316bcccf9cd09d83f28f884484d8f18b9f0932cc9e5000d122a3133a7e84d198166932ee66de0c4e96e1d04d3513c2d47e7a0a9904faa941bb7a110909d08e015c741ce9f418a3cc284ab730828168e9884969a7764c7262c8fe3b39295d24d9514aec69dbd8518a972c5b8a962c1b013b4ab1e2b5895e47fab3e1ba1f7477445bddcdc09a4e667210671db5c15be5727440e8c8619dbdfccce58f0cea7ed071d79964fbbf9e86947644ca21e62eec88c4e488a8c815a3ec8834e4b48798a4d096455d12daf1eb9cb37e19fd5367acf5cb783b32bf8a8991f9b8f272745832af3d6d7a312f23f3edc8fcf462be104799fa32d3d3affa1baee5193a3e268166dbec73ce39735e4802d7819983fbe8692f85f234f9947dd072d3cf41aea3e21a109594520a45eba8482925f676f0e77bf1c78cef63fcede0afdefd426c2df6c7d5a99cd2a54bd1ba2a9d0974cc9ca7ba8fe1a0f33818bf6b32c676e7a99e4c428b28295059347530d2840edbb5c6eae30ff6fc89d730114abde472c4f8cb931cac1bf6fce8fde769771a6a433d8acb11f3282e074a6a727b12ba9d7139b6a75bb665714f0ebfffe8affab92fc4da977d3ff8f3a348a33ee75cf624741b7fcdf0cd2e9ec1da63edf3a350afc968a8988f5acac31fa5fb914ccac394939ecc977aeca5b08375532939583fff6447d9275d0eca21bf89d7cb5e7adca73ccce9d5cc3fa593835b620ed61cf99bfc26ee268f8bf136595465d7d7de0972bb569ef4f19a3a42fcfcc88fae748111fca46b47e35879abf7f1ac55aa83fc2474fbe6a739e79cf3ea95ac3e87fbe80d08f1c654e3b8d4e7f88ddcab8f87e8be8f6711e50f258f1c4172a9fa3340072b97fa6874d01287df487924b3afef47d9a33ece1c9362d3ae2fbd117230f0ba7dae59c38f664d7dec4faa2bedea2ea0fa57562cbf4e88ce1ef5a9cf91925f8c1b257db20ce57db965153f9abaab3e7fc3c1594316a99fd5cff5b174451af595b4bf855d4084d629a1e9c718263db44b82ce9742eec6fda6a550dafdeda6ee5fd4bd77434dc06fee77e037dbdf07697ed5cd40799cd72969ff6d048cb54f793ba9d72854eae3e6fe866b2f4787957a4ddb3cd4a7525fea370ff5a5b6e7b8d4dff0d496359ce18c6f132dd26c1ac5bdeae38798c6c1fc28ef1dccaafc59cb258d2790519f73cef93bbfa99f3fbf4602a5f276541fa3b5eae34efd0d8f51a13cfd2a954af5284fa35e85fa544a95f2b457a168f2d7232e1541048b31c618e34767e84e7a5c3948e9d3d944c63675d0698bad527a8d9efcdcb568a9ad94691f05207b29ebcbda45d1a1fc51ca3f3f3f3ff547e94749934a4a474f8e349bfaf267fed8af1fd59f7cc9230769288f22d6ba9b355c0e295f47d226d2a02fade8f9a154ca5ea98adf30e1a734cba630ba6d4f48426cd2b8cdb39dd7339ef64aed87964a9d54a21e6afb512007a9fc715043a271a418169b36feae482507e97742f4cb1fa511228dee8af6a77a86a74a25ad78d650f00489670d07c49a5a97d8d5461215a4306811058513d3939c01c3bd2e39f99aa6492e87a67de671a003296e842a5a7e766ece0ee2cebe99f93de4df9fdf8c223a3fde5e7be989e061c0418ae9bbd5417ee491e5d7bc305ed9186bdd75d4060b3ad41a780d9e302cee67c0709f665709f71dd8a13f09dd74bfdc6703668f81c456071d6a506b1cf09b187b41c334d8f48626bf98791a784936aae8f9df476d646152dddc30fec8a5b868aa5f9d149d7f7e1700fa19fe99619c614a29a5f55e2fd4c118d7d770a54fe320a55694664aca9712f5848eb83707fda38ee6524af73a3d2a2513fac8b5cd6beac79f9ca4a2e94ff0299ddfe660ad35c95b901e638c5f7869a5b448fbd3f718bf907a1597be0d43fa089106ad7242b1446847a4242d9b1d91845c737e618cd43a18232b82b30608943a08ce9a48e300b2867e44da3403bc804d7f628904060ed2a79145ffa543964d5f04bf29a169d327b941a116488b349bdfacfc06f5f13554dc597f7c9447a33f502ea13a0d6e42703501bfc1df0148f3ab6e06caeb8c347510cff7fc9d149dbff834236419f7dadbd1af4aa5f447957e8e4bbdd65a7ff6521a85d2284f7bad6d0d838cc6c1cc6714d1d33fc6a51aa4451493a60ecec40ce4474a29a591ca4fa8b52591201dd3114949acc7755a7bbe4e2e241e398ed6ebde7ba90c550ea818e998ebe3de2b821e8ec460049421865e605d305690ac5cc9b2cc5f5946a1b841a6c482c37d129a35111351a50616624d5e6238d214461431bbf7de9bb37d1b6b4588141eaaa0c27128e9a13cecd4e0400312101b4b6900012646521418927049c113960b9ce4ac0571ed0084a5a7090d540c8171f404ca8fddd65a6ba36cf19af825b3a28cc192c2d3616badb57609d7b6462c70a5a0abb5d61696680b4cb4055817c500b82082c46be2d821c82a20867ac3961bbedc30060e3c380ca9b8b3d65a5be4f29af88383b45057f447e0cba648c96be20e6dbc362f30c618e3284b5688cac117578c6d625b6dadb53b55328e9d2b39ffb0d65acb33040b1b37c1cfd3f88b5a8142c95a6bad15a56c65295b61ca5660d98a53ce2a0b83b57646952db8601245cb962b2cfbc5124c9670527b7244aab2a587f6e4e8e2428bc9d3d2154fbc08c3e6de7b6f184fb326621732d016495158789ac1e90b981c968069e19e1914f04505f95e30ae7d77883888548ca51892c2488a2752244951e588018c90a8e10443b41475d185972b18638cf18f272a7c8a2d720a1fa94413307ae86c34164758bcb050aa9d8f7be9a2e8c1a7f9e781e2887b94b3756a92432e9ba056ab050376ed887484cf26e46689886989212af8824b172540a0eebd37862433ec60c40f2e3ff840eae28a2d45f1a07d1bcc83b5d61ab9928d64c9469ab2912dd9c81770025142e2d9feb0d602e00726507ea0200261fa7aefbd4741b326625c04004d98486a0245966945feebf462e435f149526579a9f23d3347a878220823b6584114d6e5b2af8fb645e0cf185e137986f8e09801e84130da910d60c1c4c2162a3e5c49e2c24b45a2c77d7448c0c353e50a25ad2aa4780a9c08915fc438f072f4458a919414347fbcaeb53d336c6b73efbd5c605e139d6296c5e5c9b2622d6b33fe2c6aadb566f80b16505f641992d4a522ca15dde995d674e95dafae0c60b4b0c2119296238240d992595860b5d62a848be210e24757b1b94f338f5c79a20920409a88b1d4650b17389e181fb6645ac5eee44ce5951c94dc15e02e4e338c2a4a4aae56ab05242369f1a4b47ff44427b9d46ab588c808e586a41ce410242d96703165063092ac60592db2c84be4071b6cb8a7b941b3d7564b39fbc3b64eaeadd65a6b915690655b4b7fb4bcf062052da890b39ab8b65a6badb5d65a6b5770655b3b81d83057a08471628b99a413c31421531cf961454a972cba1cd9400ba72426887eb05c71a72f62d470c1529016acf0d1f2c2132cac885179946490a20c8810278454d1a459895131adb596049493e1070821beb89cc0c2ba57e424aebf1c20f1a457412cd84277d45a3ae4de1e2235e07befbd41b5666c973cf834ffb5c70162f490050952a005872a28289203521743eebd4a12c892051b0760384d1caed7f6c209436178b154451640ba7853919ea4223e4e45155f340d4e460051431231b0609483162427565c78a470c16114abd7de7befbd5766878a7dc364fcc3025898c6404113409204b915493c71e003bbb65a6badb5785b6badb5d65a6b6d13ca2494f390a2dcc364c2c9af0c110b929da31b8e3c89824b15fa6717ffb1a145ad562b07f79f1da16461fad9d9f571efbd4578c9e2c1a7f9efe166f8d2254b8da089268a98e2ea22c91018603124311f1e7c9aff2cbb3b40b8a030317a1b3c74592710c2d65acb41ab9573b53bd65abb8210282bb850f038ec56dcbef7de0b4be23571081b794ddc2cd813af89f583dc7b33133d3d5469b795e13b5b041442565f3451010d41af29885041c49598e440c945ffcea127af892ddca35dddcf734014e435f1664faf1cac41eebd374a8c89fa5c25a044799285964f6cf19ab8e9135fbc26d22a7fa35ec950bd183184248b1316564c0124672985912c462c09a2c308a47812d4c5052e6b2d144598604815613226fd806d409428d517eee39bd4f3726d8811db1ed10fbb18a15831b4ef0dc71407cfb2c409ca922dbad3ab4cab8adc7b6f8c0928312d5aeba7489c03231a8b09e6433cc5d8edbaaabbd65a6b12a6591337a5d7050d18d90942c315493e6070275f929c88718bb0e16e5c74d21331ec8f7d6d823abae4359109c3b453b77104c5bc26e7b99343d2b6da5a7b6db5d65a6b7f5b6bad45621f5b7b04936d2ba5984589b44873f58c8bdaf7defbf223a7033f8d83f307085680058f0f2643c8f072288810e2850ba6446c96f012265a4bb3bb73efbd51ecfb5a867d2f68a4adcd9fbf9f35d675ef2541185418a12206253ffc09a4252c3ff6b595d21a69a85d02a7fc63f42fc96b4bfc6ab5b6bb0ca2c856ebe5581f212d960a5c0a727c6987184b051b184c00c4229af140ca4f67cf2ea830b154488017277ca05d6a68b15448800a86744d3ac4db73641640b4582acc1a362e47a608f222ff0109e88504f4c4dd7987a0b7430c7e041d0855041404b04e294168c14906547a8c33bae872a575cc40decc971fe26dde1a345e33039831a8148d7795390a11d50c004002a3150000280c0a07c40291602ccc234d760f14000c748c4672582e0d07837118864110c4300c83200c03010400400030c83289b20601ea5874e088207cbdbe16189bccb94a6cddc22a336792badd5ec5ab57528521379977aa915d61b4c4a14d155a4abcbe337d96d5d0898ac6ee2d481c6793caa3ac4dc92dccccbc0834d439e1103bbc030ef28fc2d2ac9f3c5a057bc5158af2b50cbbd39f1b55980a97daab4df4620abbaa0745bee07ebbcf697af8f4fa9bd3d4c12e3bbf450281e931bbcd59446b10c85490c5cbd51c2ec4f8e69ca26bd16f24280dbebb26d6f1bccb3acf755e700cb131ff7790957366692157a94372fa0875e5e5dfc2d249232a95a9c1237d44354e5c5f6d9afdd53157bad2999acb221cab39cfe07ad9a74500d25d3eceb67183128b2a22d2832ef3b22b361ae0621ad46730c69f6071a1f5924c68a7381db71c24b1dc87cbe2bf6eb1cd44bad8883e7f7492808816993b3db5beb57b8a91df42cdd2203655a72cbc4d4023829cf433f49c2231e1191cee6491456210175e3b671928cc83968c5eb83c54af6ce455ebf9a1047a5e1db3722589ac2c684c31b04abc94dead38e527a901bcc8bc4ae7825c05e16aa411a1a434216f27966f3583ec01be11bd230831db63399ba68362fda3eea5dbcfc43503b7cb681dbad983dd75f1b2cc86d79ad7124f616bc075922e4cb38278986e609509183073186c71de3fe8c8176c359b238dddc51e8fe71146a3eeff6f112d4d5009b071d2fd2b23f3ca7e37a60bdd2226c762d1452a60d445848987e31743022a3b56167cb83c55dbc33be91ce437a973c60501ea9e3011425558e04ae9395ed133f927d34c1870f6b4414cd165fcc930a72b88ff740dc25a7e84394a1a31a1f82c215c20cb0687a4804eeb1bc0cc05b9666f8e93f558d4048458efc79279ca3708582fd00472d71d91bdb83157ba696418462971300b70a5278ee96f2ec370200296a1e9b7a8ed2b16b7633275b66812d4b3d6b332b5e26e53682d944446202d8d067582aa6b332acc87136eea8fda4ce7f42c55f955404b79aba2f116b95981fc69b653d8594a81da026a5883e9b2583e571c2ddfa012c4bd8a21e777450c3a306dbab376f4d44742f565b879e9f846a2647d855ec63ea60b279e8e1c85f973b8583597b3729b685c251b9ca4f5fe783c2b4c5f70e0ead5fc132b8e67d5576cf61bb4f3c191bbe112a92aa4af859c2f4eca986be451ea18fc4fb9dbd04cd128de8914abcd71526708b211b37cc67fddbd694d59bcf03fb3cf9f773b78d492d940ef98dafbc977837a8efb986002ab2bee7ad0136057ee8de652f90d0a988ff011bac2196b574c8fd5ae3ee8c1a02be9aaf37cfb65ed0807bd4164f0639cb87dd3031223e82c5192462b2d531adf4a0b9bfdcc9cdd17fed8509ae078d67e0a66489fa6e2f12055598471116abd5e5d67492399683896ce8158943f711f1f8faf5fcd679172faaf079d2696e9c7b006bf16f5c4286ca1b6593ec1965a87de9f945657644140d33ec87669d90fb52bf172ff8f59af5c182742d3b068d1fa4a103bef690e673b21fb37e16103e6b0214f6aee758015f7567804f5b8a84ed1b2592939d301ed2a73c6a7362a1864dc3bbda4541276b907bb476e839aa80b5a93b8ed69acd4251256b883e07a65b6b8c2d65cb0373b565cf80ece93af416510d39a56ec17fe2cca37d0321e44d5a4042cd5a66c65d4dd2a82468f187c255f1428362cd6da3a57952ed7bc7c1db603d7f624f0c734187fbac8f841959f3871185bc83e4da47f0b2393951a167c3944e9b687c7f2d2f28075c84eec10306abbc488c3b80c0cc56d945aac30bd5c969709fcb994216ee02c78f68c25f413d8ef62805b03f752e6a509ed733ffc4db58653ecf0e1a9436e323a84a4eca03d3455c0d552024d680c015e21b30e5b53d9e64b1cb8d1e7d23739ceb2c159775bb811077449004aaf83956a284fc55158dd9beb266caad5b8c1db669498cae396a1a4885e5c5966d2984529b9bcd3588e736b7f72bafbe76096cacd4e1dba4655e4c56a04147777e47e3a4b033e214fb76ccdb776ad073326224968c3649a5493b709cb64675f555bf1b18f1acb2c1be5994d34d8453585c9030ae1832a7939f5c4c6332a03d1891369175ee1f214ddb9828dd6ce456afb2cf279ac9780a735c834b1aafa106ef217b77add1a7bc5afeeb7b0ebf454cf98e9c2c29a50a0129ccce81a51bd2c5d8006db56e0ee49a21b58158fa67f228a6b077cc50e7cc76ef36e4042634b7f02c90196b05bd68fa80561c5c70b9bd6812a502136a5c59ed31793b16da70722959b62eef642085b64440f0841fc2151ac256136b574207ebcb7ec4b4e2dd88b6b679fc18b084b5c63a8e8db6a0ed7ee7102aa4f1f956b0c991d24f1c558e74a23614fb8bd14667acc25451d1e5cff28ca57d03e4e4f6f64db720cf986d7a052ca36a5db8b19998d0d40c47cb4a197bcf477c2187dc33d179a5373647536a147f18bb8e7c065034a946fa416036c609f111e0a74a651c5ee869ef2d7117feb9bdabcd8b62375781cd81f75b72763d961eb0355232d7021e5fe5ae0a9c1546c52d167f95c9f7d3c641dd26f3360c5b78ab2c3e7c60481ca7fb0fbff0af77b4afee5f95afd95dc8797bab5a97bc78e45e2516cf4d2ea3fef831223bc61edf447a2ea7f69d3d04454723c75f5523dff3387d096f80d9a804fe635987f473b7a708c3b14b15a8ac81daa9965db26e2204cc5e498d74522f9e74f8e0cff102b3d9e9e4de11fe7a42ab4a64dbf7324292d0a53f21f2c3cf850b611c5628a482b4a2a51b975a5c0d4bc6eda9b171d772a19c730a4b051d7aebb76f5a89b8695ce6ffa2ed118e9d42e3a657623e8b0a4cc2fdd55b345af6225d73947562caea0d66a86fb3f522d9c5e2052a0cd4cdb263282c07ed15d90bfe085de0a31a82d97083b6cf2198b7c4e8936e46c6b6a69bb9bbeab44496d031bb3a244c90ddc831246f8a9dd1244615bc1e30ac260028a64088732f773f7313a25856aa11304aec1accc7ac1c36fa9bffbf0fb88a66ca154299b0b5cda0b59fe00a99ad7a4bc65d22f2f12063e4e31842fba6449ae504d173e5194ef4ddb468fc37240a90e86131c216e0e03065571a36594ade8780c546d7027403eeaeaeacb019da9898966a12e745e426706c99c932ce23032b241cae46474feb285be5250531d517aff84ec7b9fe10c68cc482b6bf969ce6214b145496c78bd377309d31f764c4eec434ea03a028f6b7b75ba903b8709b506dd0ca2acb5b58ed416740395345c7df0cdba9adb2b25dec8b48b6ad1e222c4fa0e1b4e9aef6ab45c00919b62f916aa4c33168d308db0b69d81e19fe3fb00f6c5d2afb06b272ed2560aaf159982d7f7e41b5326f18a2e162517ea0f890394558065f97a822e1ca33a7d66ffddfaabe8152350a81903b019fb6bb1d339b3a48535b81caed4e75c2f24208e35eada8cfbf87142f90761a99fa7ae70c7b429028aac56fbfbd2ce4a6536792151c7e6f4d2eb5984da8512cc5cca778d5bd53057cd58e373a780682eeef24173fd49c672e3d6aae7b3559a1822fae86dbcb19f5538afd74f23567d2dce4ba03d7c69b8ad936cc3f8b76bdec392be751339b36cd1e8606ddca7a4335ceab9d54749cfb67006604568719880f9e0ad7ff68d7b3292d1b769cf62b14c6df9c22d8e53094f0307b73d71bb5097480e28f11932a26775f9e56a416d2c33d43181eaac972fe0aaaa07b25fb0b6455bc9d8e2c810e6315415e6d13b89b59fe126b6715c30aa9339e426239614c1bc7a33833ad1ab802833bae2cdd6891b42647fe2d02e2579569d0c9e60e7f506ed0071f5272054f99848207a17d5e9c2ea1eb8f7070b1abe79f58b69d26a199f005d3b50a7f835646f561a29bfe3e61299f6355bba7db453d64fe97e668accc6d56091949220889c41d411f2c13571204bdb11f3465f870fb659f63c875e501d3c7b52addb30a9d3acc14109cb62cc39d0fe6c1547e945a544b4d66cc22f229900e275358745d56a1c87de1863de7f416e63266724980f6c69c1f3f3e5cd348785e9560bf52409750b59f5cdd9b876396a5e704beeb790a9a3b4190670904d1635693683ac18ec3436bc6c6a9c8eb94ae44c5636bd6e73a6db91d44d28099673270763d23f0159f2164d2128ccc8af9985eb7bdae356e5b49359f335c435fa3a443095fe1ad936b9a1221bcd189999f1cf81e5991970079944aba2a88304a3059b3532748b4943f69cb01fd146724b7245a8e85da9b5628589e6c2408de45661e207b26db99ba0e31dcf6d2f08bb08505031bb8075a9f8803d21ba50ba1f1b4492593d24d34265539b99c7789e572cb507596865b968d39aa531010e8293721c8ee7efd01ccd2442fceeb78af6ad22825d869d540b0a9b88c943894bc7c88174fdf9c9d43f4e899c945a32b3ed9e5978603f90a3e496d551fc44a10a340342a2fdbe2ac6f2e9a0d085404c28a6c858e1c39475f2373cf7642246d4d7ac189f547db67ef917cb50a25f9c223786d9c382d55e913d35cca87ec659961685b7dc30ec409cf950d6375dd1a10a5adf9f765a3b0bc443cbf99f1f7530ae626c47f10312aa4a19f2fe52d31b16d35dc20da5842b053fc58faea2023176b05fb4836824cfdebdc8eab4c42466092aa0a8a10298d73269f91ef56ffa2190ce5364d391d893f1318310b395ca55516e5c420b9dfc1706b03c9e0c53aa4fdb9e87821262c98ba1242cec5bb87cb11b3201babcc449e8d9e421d4f79f91513d3e0fbae2784de6b07155f2a28b43e2d11e45aa968c546df4c8255b82ea0a66889ba7182b545325156d4bd12e77d53ea2d3f8829fec987e01c316abac489742ad0c142e122a9c5226df2d3f2dd5c5868b52359e41c5963ae2b726d31651896592f78e2f72b542e8f26b211ce482955739c3dab7e728d73dd7ad32760b5f7d3f50226861b735d0f8047469a9b627dea3e56c7f410a389969cdfb9b74a568551ca10ae44f9d7381d53ab39e1ec3541f4751e868d46098c898dd61fe76a2ac38e0e1e507e8fb83829e75c77df031f2ead935fec175811016fcf09c01dcdd95cb45af48714d792414fb9b405e87514d4a1957c58b73187c5ae6e82ab51ff8a57c82cad13dd913d459afffc0126ce579b79a150f8052e049caa36796130aaadcb62b6c2554510a31f3a821bd08b84a98cfb8f863447d4f859463dba39813af3a50fd946c1247af129e3eaa2d2f1453e16a37baf9ac5bdd6ac78fb99043054e7655d602dafcdbe8a97051c07ed8973fc4f06d21480569a229d2d31ad06adf16844d900724c46cb8853d14b33e13a528a4254d0ac4dba25278a927a8b1bd7d715feff4970512d6e2ba44460f3f3a782250857e021d938902d40f2fe3df30485062d05ed48de90c61e3e72322e1e43ce14e2177fbaaba6823db782a389fe56cffc2f9ad1c0815b030d04764907a7eb443e2dc34ddf0711b09404eb1977f403c17d4486e9fa7a9de6cd32b1570f31669ec8aca3b4612d06c353af21ffc1ef7668c2a911759dfb8dd27ab626ac630dd6714d28f89acaf1a5e58162d7cfac0b2ad831a78e18de0cc1c75621f9773f1184221465617c83790a9b41c771bec2b466d7f9f8a567aff228660c1a90348601c3c3244378da40e5db4cb3c55fefa2e85dd113071e87c6d16cf93963afb46c13c3cc61a24a3ade832b8458f327b09b329252945d7e49c07d8dbb249dab2d85fc180053e2987bdcb3118cc1df6ad1e22f99efe1715fd3b9a6376145930183c847581a135e16f8c316fc6c876050b756361584f2079b8f3c0b33ecac566d3d8cd18a8770ed783142581b65efc53c1e7618d2fcbf50acdc5ebdc5242a5f5355022f61027efebbb57cce990377494e33f03caf86a2a59c34d29ff163008271ecde1184d133ace1ec7f0e2e7c588f0a47a73c3c62a680987d200b35070c84a894cee18bc821a030d8427b639edbac6396084e1a163478c77e22857fd632d9010a7f0b88c7e3921ea8ae2bda7c9d5785826c912975307c01fa870ab8c502a19918c28d37b74961672da533a824d9f6268ca04d47fbbbd0c2498491d1acf39e66e360c13bc28d2830d9fe37ad85d777383b5801888d550cce7208ed2561186263c19f7926ac91f23c490f3f1d36090a6b2139f0310afa3d89387ae382b42da7edab003868e52b93304064ec82e33c5468b2ec7f8b99023f31066b4141f5c166533dd198628c1dcc82a6d6ed848441609e652db5e32a14ab05068dbb0508e4a6c2fe64521958263a06540dde51092248eb9d0dc32207777d29ffdec1aa7dada8ba27026c66e0ffa1fb47e2b6e88a9d0284bf2ca4c9dc07084f86c13655480c8808e710a63a615ce5451e72bf418040bb603a6edb51fdef10a5e6526f7faeda448c3a78cdecfafb09b0bc7eb50f0448db6baa9515e61f5a3d908b4492f4a6d7c0db851a6d9aef108680e14b3bf805e1d2b14ae03368732b7213b062c9f3da18034928f093e1d711d43b5c98a6bac1eabebf7d6db9bf2db9fa2a6c49f5871238f69d61a38b8a432160b2153febb012d8027fa5560a2e5754da1467548b0489f02bd5bfac220e841a6188a46faecf55601cc40192dcb91a439601cbde462ffa1eeb7e7b52e5459f669f2e80250948a024b5b9b9362ca431382b480d3201ab814d48881b70e9ce8745bc2691747b1c88b0fcd96796c0d95d0aa0dda91ee632c530d91aa9a2d1e6411d75c1da671ccd5d01d1527ea69c8e9f91cb94c1f19163a9ddbdbd79fd03b33664c680a650d250afd6a939a4aa14d82441ed40d9d2b62b6289fc312d1a068b40c4076cc80054f8f5708c361ed3a6977c2068103dd6cb529f102e65ae05fb522ac7b739e9dac5e2af1c346f10d3cca8b85caa2e5a78a5a74acf1f438062fe6c9c52292eae67c0cc2552660485879639e4375e065821385e0f6c25fc2682a5ab8a855aa6e9ea6480067843456b2b8657003ab6ce5249ba0567916ef453df11a60f76991ada9cbfbf4dc8b992bc551e6235643d38aa17aa5900e2a8da8adc72d463a0b776a98ad41065811dea7c8f34896820b23a3dc2bf789ce69d0498bdce2769a20b759114006089a82108333f28541ae99dc49406add04403769a261820b4bf988a74f34d807428fe832c99d7a8c37ad0d660c093561724c5178060b23f1ad55b68cfa439772a8efdb94e2abc3c38a90a3e0dccf40fc84e18dbc26836bb7a213a9eb11aaacb7bacde8e283345bb18e9ba6262935ce78b4cd8c65dc9a2b68d386bf98e58b363407c6bdf70b4a189085b1e99a0d7b9a9fc1338d731fd615ea16e6fe218618f9fb64e9fc3100580a94a0fae9f1f23ef011a19fb4a98678b95683a82d9fc036249f74286d985bd038ce4edc968f0a9072351010b2630fd1847b15d311131e986a26fe38586f5e71e60289b37a10d00d577bf816a228638ab81f67a9f0eb3b5bdd0c2df96b7122080dff9449bb41824465f5d8c2726851498ba13e86ad4110cc6d9e6a1a8812b1c76048470e811490d727cde573fedcef23cfc567189d36beef92f6dd6c26d6fb9b5424f3ea73601def996485b86ab9288141f66d4c0a94e8b13c384499d4abef55570a05217b21ede1a39282b53282a12ed05e8834829f0044a36b9356f17d311e7e5cf5ded8ecce66233136f8a31dfb1ca02b93188c160b6c01fad591246c1e468425db8def7f412c1fa41a11b73a1fe4f6be70bb9cc1399f24aa616a32faf0e57d3a4c804ce79b66a8421e8d3f873c9702f8246e32aba3b90f66a27f7203b49e76856e3c65e239b8a48c1f393c94b9c512cfe1348a0a5ac3bdb4bd62855d261254c8c68450f79d67897d4e9bb934a0e5d40e4e2b1250e94273fa90d8223585954a68365d90536cfb68aab8bbde8365927d6d2167376ac3f765fc40380413a1fb037174fc0ccb8145a2836dba1f0b78fd3b55928da3977fc5ed1d8ca008bc7a683b02258588a8f23a2475f96714c277e3afaeae8686bc8cd96ee013ffb5df9643706f35f45a0ddf9afa0d60f67a64dada94ee24534cc7aba16b09bde32d6700fcdf8770b176bc59c1eed0532cc1e37af317f4281d4d9d6eae6e997bb07fecb007e08cc40db8306cf7131b071d84f10fa1f7c9c7cedcf5bd8f1669e3f7c7b6784a4169559bcef0b1ede76daaddf9c331a24c4d455e2be76c04682a950e4482e0ea5d45bbf51d3376043acfa2b245d77c0ded6979228a9b69eb2ba7298b5344386b5c387fadefbdbac34b9e13a63a34dcfeda308eba31609be3a7332becaf4dff1cb970d569312cbf3d12b49747a54f5e2ab291a2a3d85443177bd62164eeec2cb44bbc9c2dce904809a1eba41c28616caf2b5eaee9b6e4f57a39f7b29831d815c906ad6c88862d2c62811b9f7143c5b514ed6cc992728421283f8bc494b46f8a07bc4c090ae6786528a631cb94b8868dabf6044a9458673580c76411002bfaa6cbc4c4d1004fe056fda059b6eaf0c0a4943dbddfff90c8c1c00aee39b99698a2134cb7167c574e30466977a6f9bd85f4af859129e73e086a5102e1778eed931f56ad9b1b796324b77cb462ba2c30f559d80977ddac0d712d36b62dab2cd4851896d0308b4f1c48aaf7b9d094ee2683dea5a56898da6498652188559e2f276859ce67db1e42dd4d760147e097be847be013a8905b6fa814ec14ebf2d82854cb7c8401aa36917a56f7bb8548c2962a98aee814646b7cbffa6a3ba195dfe623e0b6963682f36c472fe3afbe754231205bb8488692c241cb8a89cbf2fbb251f9b9a7e4ccee3b7e86959084ad3505e475e6ea25313d8411e1234fb30b3249d526e175594877640f9dfbc1921bc64523a913174a8d3350290ea949ccd917b3969233c5c729b921c1614aacb86f0fee80e816a0fbd03493363f6c627509caaf0694b8c98ee6c50be511a8ce7a18ac007e8210b5a887c2d935c59a5026ded7dc9bf651e288981c319c0f707d5156249494ab9d3b9f1a261dab375296f972d82430ccc17eb5d351ec6db27839c2a9bbd8e656a533eecd34ff4d8abbe33a58f052de0226fc720d40daa515d7b88545b55140450f2997530501e720456ab472200664a96a169b910d00a692572ca3bd712c737bba4a7de9b3830e64f689105cc130af6a435663ccb3d3ec20a57650858412a55fcc3e0c69989511b924bb5413ec3ebbbbac8af7e4579fdba73e4fd7204fb9300b36e7636131632b4d976391407f44b7cd2bfa1c11283db2eda8c3613dac72de863205937a60ca126631be9bd3ee24444ae57460a1bc6ec7e2bf63d2f385914b28a3d85e9d6994cf22bca8ad8927332ed6cbb313edb3d03dca380d2d61300dc33085790d0130e554566ad7b259ad0b9f72db1c57fa15505f354e0366077f06ce9cf8180c0095a01928943092a54453c26e2bf837dc687eb288d121127a0722c43939328dd3be3f5a5dc90408feb07a5fa5021b527b240c16aeeb3c5f783a830be78342cbc37d2e0ae89d62a6425bb6c86f58ac6c139b73ff13c815e2b77ab8cef1a343b9ca54118489f5f4dc5d927511b16f704f114cce186936f0daef8f752d8a699282f05b10c2eb7999d5464a1bd1b5ef17527a36d462635a5a92b1e51bf86d850f1a2c5a3801323490239e6db490453597aab57a096c8797f74cf4be60f5bde30b003099e68cdc15a417b45a1e139a5bde5fde916747f18a39acc7853173a9b0fa6ca6d9c659cc8d9d1113bdbf882fd1b82994f8a4ffba3308fca9b33481e95248ca2567d6565db4a307893e9c29dd74ea60eb50c3d631b21bb894ea51226707773cc0f97a1ba19128969ee44548c3366157d377403c141ea873886c76aa992733bff297bf9b2b429a373f529d81f45241ce59e671132360b10fd68480da84f49d30f132c0e4dd692044adcbb046a8204e20ad4158341a0a0128624a7dd9460732539ebfee6609d21f95b257c60139e8f62f11407e71e0ae4c97740d264f20ff1ce4b1c6d32e293d4262f12be3d5df2ee94109e7f1d69e9f8bf7049386d8694d7c90c8e047ed99b4d305c1cc445315130140aa65670f498eb3864808c96638a92168722d138b2920c37375dacd66973c3ef72590a11844770d9a07d9588a35d996f5be219cdc5b8b599e291ce492d28bcd68ecd77cb605d1e543c18166ad2ac1dad6355233230c9903e9804176ae6fb4f18eccc3d29a53345d0034dc035b1b5c0f53e10c156b5113da845ca8a1162647b9ddca90653b8510b54cfa74c55fe4e8640a48c953f55d1a3bfba3536a58398dc9bc2359cc8e0aeedf2796e6f503a4e8e23cc60c26fa227457eeb035a2dfa9c4830c8350490566d8667d373b8518f1dfb1d11ea1b3fde4fdd3cfdca756bad4adc61194e621dbff968137b38e1d2d446d86fc23165b0f1d8a42ae04e9a10cf856b28350da10bce1fee5a3b449631290805b5581f54340792465c9da83590db1543566071dcf781decd0de455702949b15f186391302c316af3cb902e0dc2c5e221a2f3e39bea07370a91db149eb2e893b4ecd50c700ff961e94d0b9ec5c23bf9868066bceffe72a46fc20163ec67233ea42bd196caee1cc66ab820ca4121b40d44429b1b2bfec49322576f24033cb277d064096a5c0bf742946b4bcae0ec7bdd6c9ef23502e085af641d681e579a450a548c134aa13882c6ade45bbc8b793248d9461404adea2a26af39d270d4e2720b93f745230d6833360aca785886fb8d91645c926a23f39a44e2dae81ccff5682a6adf239ba85f3883996f62c79c0dd8de1942ca4e8fd98b20238cfdb49b4527c106adf236ac83e55ee2f4f00b9eaad862209a11e6500807c241c6a09da97d5d9a7be3df3942b388408f8937ba5754ab7c6fef9f89fc38b386ec79e252f0d7bb5e210c27ab6080621b48731255ebdd831244464e36a0a99048b7bbdd68de7927e6280beb63ce73f5cbd5a68ad864358565c2f7cb5f4cc0a261b7f5cee504098f67fcd100f7d648c948bc7c2aa75fc089903af74cfa4ccd013a4c3d74f90add47bc8fa6d32fa4b897b8b197d34d18abbc015214d7a9442a3af239c785cb682fa7bf3c7b12c9b853e20f227f26f56f27a3f2f53793ba480c0a1b19809bd565b70d558b11ece8b26657da0318fd914b9128d9feecf52dbc690339cca246a8f96573e3c1f630489c09208745115a2b34cb13e509b7f4b013a1172d6fdc275b2a7f6ed058f1d8b58b1eac4cb96e0c8fd874f91693c1dbddd5d722951e108c74e85034a3e5b8b4a2e279c3bbb6073d37ecac9f1c50a01e414d2cb83a42287c0f52c4a691cf30beeb3844bf2a178fb1f2f555660dfada50f6ce12726020a209440bd89b08a3a6ea03c7e10bdb7bcb65e42560008ff2d2fd672a002fd94408866001e7e182aea03c1541335c76578eb1ef4d17eef220816f803fba49f344aa25172ccce4769aff15b376e76d2f3520b647f140d8b8e050ec6dc47d9f50957471fd615fdecb9ec9d8db3372be7f2b788f102975cd9102061cbb0e5038109eece97e27ab253112d5aeafd6709de208fac3abeafb68563f41f2486d82721716aee7f13bb6c04f5f64be9a2302d569d86eec452a883f411cdf68ed7bac39f5747b3dba380192adf21d58666595023f38af7004ddf4050ac5f6d4741de2114397b118c1756009ba2cdf4cffc1fa16168641ae1795d4efbdd42cf4151959480ecd717d3505172963476dbc6b4c2167b8e2cf30759e36ed09b3e02fa28f518fe65f6794c041b44bbb44796e8c0af196a644690803c0bd723a691513cf1ad9568791774226fffcc1ab4ccaa8cc438ad20e81cec412d992a3d8bf704dd35d6788c38988745b3bd993a28b84e85212981cceb1eeff12744b47bbef6b97d2d16e77822fbb06733eaac1a33cf52ce63807b221b831bdfe9591171df5f1beb62dec1ca9fbc4948388edbc3ec73c3a9fdf9bee443dc2099192c36d7dc289a0a345ed36f47616df1200b8c1ebe5da61e893a3c3e08410eec9d46349aca38ee89fca83ce7ec88d07222cfee4e3814d4ae3c95fc521898c48c44b1a89bd6ca5dd998e6cabb7db828daf3a2669b9c283842c0aad263cf97b2cb1c646dda1a64856965f83b85bc85af08afb709282631cf60913b7e85de02abbbe9acfde3d758f40516209cc14f632996622404e4460541cde65c78e097ca304db8b50f88d584ccf4a69ec9cfed946dbb42b3132f6ddafbb06df39f90057784d65bffc5945404c246e2a22ce969ded284e9cd0239ac3eae63ce45f6ffcb930dc7907bebaaf0fc65e10e87004f55e6b996646e6734a12847089a6b27f721368b3b0ae9406efccc7c955327e98e8ebff9c5d2553cf6f77dc6d1210e4863b9e9cec5e732c69c9470d15a06e34593f209ac98368131f73463c1f669a4efe144cc0607f2740781af25ad021ef172047aa8d36d448bd639e5e1ada25a766568fc08d63064649e97477378817af54adc34d028c46ef8c2f1671046f9b6fb9b18ea8edaf02e8755900c3db981dca0e827526d495fff4d28048271c49779249849b89d487436654a3809c775fac11300566ae4d1cd028ba672fbd72801208e1c40bf3f24541f9908d4eb3a4f272c81ec163e73a8768cffadbeab0d236387640a998f6a58b5413f4b4c935ae150a8c4ad360ec7d1f6c7415aebdf70a4651fecd7551a2b886bf3ef561dca84d0e5d3579f60942e1ac6d533b0eeab0f939d1cc08307f04e8868d779ac5175a5bb41433d1144e1f17b31d66236a1498e485dda70eeb91b0d91dcfd2847586f1b9236637c40299e97a17e93c41bf589d45bbc592cd3b6dfbb12edf77187aee7d056b2c59459cd3b5dd5555475312396e2d4b144b12c07e53a6f8095641b15ac557d42e9f9b61253740851155017a44cce4e358a097a15dbec9163dd35cdc53041572dbd6635b8f2346ad1df047c914bf0aef5721d694e43d141dd8552e9984484bb18e84c23fd6f5db365154e2a2027f4715c788ef3bd4ed2a3f1a5bf4b8368c0b5466ba4ffbeaef6659214a80e737816fb27a858f3be5c01eb342d9861930357d28ef87a1152550bbc8a6a6659c1f690fb3ad5305635ea26dd6e2124320eedaf315a78891ebd4642e6580e0beeb4c09c41d8343debcd6096f0488bd5d88cdc7e8402607392a2b1783b44c9f78360d1ccca57752111b4bc5082d6d1141d474006f3b8a38160e02ea119eb3c93819fa40176fc1bcfa855601614dcdb098450b9f2fbb63121884998d3e7f7d3622f699c8fee8417ee79d309d3427bf31cc304e0952ad47399fd065547d12a62d139218408794b8a2464e0c235e108e6827f377c8faf5811d7362d099847c083f72377e001cf023c1f9f8d7672fa3385e64301a9ceef16b820ee1b76301fa76f0588b383375dfcf9a9f7920046ff58a9da066f1768310f04d9fc9b2bd781ae4afe43ccca935470febc5e16a6a27e5ca4dace28cc13b3741aa9294198e50a0d326ea611d57785863df16f777a775bc6ce88c9219648057786a9496bbd9e377865880be50f24bc35cae40bd3af3a58fd35c8c4389dff775db4804e848cea5631cc1d30d358648fcbb8c89c1a1f7542fc3f124c3c7e427459dcc82d24e2dd4260a44d85244ff30a2ce117b4e06ea2247032f00e66c007ffaec67829083a38a7f3ec25743ab45b99d9265d21cc14b5b384afe9e8e3f0b3c91b41936b12fdfa1cc7c1c00a9cf6483edde99fffe1d33b024729143066de0733410ad8b180e683f9596fa07afffeb148b56316aa0b72731c70ba68fd274f4bb7bbf4428b21e0b1a45f03e102dec5913375117da2a7d8bb20a713d92768cddda00e3984fcf1f5b8570d5b4835ba7d76eb5cbd43e370cebe444cc4ddcb78afcb4e4ffe509772d0bed5c5982027f8bd0c411e487c3bf375e21fc27ca0f16686c2d8c410bf21e6818c6939737c2ce07c047bfc00108551497a167d52ff92f12b4fa7a45e33c2a9680b8454a0d3525971e65528a282cc70fe36ca93ffc7c4ce681a9019fe17f71312e042d5fc365dc35ee6ffe2920f72b2be68c4f25ffe6728a07b783023f3d33e9467e75fa2f245830c25846cf7391b91401bd2ad9f19ca82c1e7064ce0b386d3f2104a123ef69fec30bb65bcd40d57e0cf047717a2894b4b1663f3c5acc1b2d6bf71e3a1dc6db70c3d17008da6356269c3b4de6e9c7f09bf48a94ed8c90628d464af5dd3e31ad8ce5ca11aaea6dc66c6a3f503555c5379fc5d15dad99b00577013fc3a8970aff33a4aa26e3d4856674558b7be1b5e647955aedfbeafd9f51768012206e0fc4bd25769569322971d68b2140392e904604456d26170a2749774fac0341f78b69267eb430cda6242cb405abb8dc944fd2d2d8895064a5ae3a04d2313ef264ad23f50d7084b2ce74f27b72bbeb3a94f8d9ca7a89ec92a93932e85007661ca05d67aa03195b43fdb64eaee9f0e7003913d41fd9e074c10808740e0808bc7d874fcac158b8c2ef97f1a214e929c27e63b0090c8b8588f2b515036fa671057a46e7f5f77a0a298d090567d8745858a33b875c4d94c099607444cfcfb87aecb4df98e0e46f163e54f66e70b80713d2f5b2634c886b1f609db3da703b00cd7ed058779a0e21bc90c96f631c76027bbe9d71176f7454d0fddea88eb28b242c478113f5e40a8843827145b9e3d62919d3e4b61910b0fa10918471fd96a0d41c1175ab039e9b507058ac0221716eca07484c538c833a3e7cbb9e2be5073cdc8a2306615eb29e17f9a682e9d71de9a041e1dc96cdbd47d769e8de4f38596a5ff5dcd9ce7b1a7af29071ea7c6b32af5fd2740cb2090c900b95134917972c2937219d24a1c71fcdacf89aa1f9bb6c534f576a0bbeaf11ac45a87db528182e894a5296bd1d75f417ff7c406388e17d220edc72a6cb3836c803f7e499b671081ddaa0237c5bb547d284a8364d4d744c836142681e88b09b1368f328220386537ba4d3a407f13072394d4b2ed4b8f9e31e954bb9d01498dc81795919c89347292f3cba3c507fb3658eac1f19c87c2c36ff88c8eb963a98b4cce5f7f4636d83d98cee438969dfb52d3725abf3e4f919079301c0857c2144d83b0abbb90dadb4c51bdeedc7a2472d8fc4523330c96cfe498abb11b522863c9b5098067384488b37e7fd00dab22fd664f6bd91bd9b30456f83b607401dce5c175c07e35c7af43c2fb1e4bc868241af13a613fd0edb2ffc29c6561f2dab27be31f71a5fc59a29bec60ea1dfade0e6a65675181c4ae958250108ddc9a6053e1b74c7ba90b54e6c4f46159e4ba1bbaf4d00d9cd6e552880f1b06582fcb60f96827e3b0829a8e16306b5a7ad5fd951e7fab4dadcf0ca0ca6299f4d0f4788a136e7ff0059bdfe597371e67834001b29bcb33f34bd7fae585986b3c68d0cb48c300f72fd85885da2fcfa81bd751b0c6878940d53add37a50dd438483fe8856a30bd521ba513aa7ba322f2134ef2d7e11883168bf4b711594bba755abadfa3f20a09bf1f43498c0637ebcef18805715cd5b199434fba512bd16894fe81bb2a3ba303bc0d8436ef57c789267a2a3ba527ece296ba0db9e96969e953afa06aa117bd17ac99932a0d84ae222b38e9cd9a5d88a94fd29a981464bf5988ba520a8cc6682d1a7645066c8c2873163ab4d0c58ac32a57abc6d14bc3d3f231acf81099ef43e01cd3d392d011370909078282d0a0b85728e2ca5afc5a136808f15afed0bf2b3cc209626cb0f16ca575c8a7cb26b2ef068397f4ad473cb71a2d9245e9da96b593f6d8116c4e1e81fe1de000d4331f14f0e8551727cb6f14820db97650f0c8473cea51e2313ba5b0864745ef01b50c458c0e6b56022fbde5c4b710578235c872b6c6a184986d96750cbefa30f587e999066e8ea15b45bf9aa7717a51854428fc5beedddeb12191efa0f1563498e096fadfd67adcfe61b81559cf4ae9a5857e0860ae55af59f5ad083c2c88956f64d8cc231f7150e4e75060206ea824d1dfc70a056d2c41d01acb32a783961f3689e12f619c89afd18c878a030822f4a0a16ebb05c3c69a9dcdc9dc5ea2dc52f435427ac66378bf701aaba393cd92e31281f4cd6828a9ea4f613df309fad4ca49229936782c20a4b4007b10438b07a6a0efd9e2a8d2614dc9deaaa9a795e449049a9a56105656b7961799bb097594bb7d87630152d47e55d038236ca8b3135c5d1f373577c3379283a5319235b1634914d52d132488a938cd50fbffb908bc3a02a1bd3812d9fcd53c11471c1ab0a3b7feb5d0f3aa79f9c696b2c8e2718a7fe56b2cd2b592fa8699e32da2b4666d72119a2734a6cd0b382f14d06a17bfb5134a7a5c0f24e1b8abca3e1d60dd0d5c1ff21920f562c6c0a9742761080eb86d99fec7206f0e42cf0a77fa8be3bcfaf497e0d07bf392d5655684a6cbb16e15068d0ebf446267350da40946f900e728bbf56c37702333fc87fd580bd26214bc15f487ebbb642439705c2befaf9e3ce649e80757064c579199b862655790beba7df5a2d0d171a9f76f9e3a0dc48fb52cdaf1e0da5ce9d1c174711a9c08ffa551d793fe3b7098513a83b31f18d3bae84abfb375eab628d56c2d43469db26f8593eaa67f36afcff85c38e22c30d3f4b3edb25bc2459011d19d5273c47d3554c8ca47fd354f3b9050b031b7258e208a855836ac870212fd00bb77d5712a747413d04e088435e772279c4508ce75a25b512cd84140301c69edb440d3c885c54bf1360d5c9f4b859e0965276feccee9fd4d906289edb8d96890ec087761d03073aa050279e68a920505ae0c150ff1423d57768a1fe2c1532dbed67d2158437e80d8a67f422868ce0f33da919c586f809925ef22c7a2d8b9b40a302cea0f6914be5c0ed44b28b2c5b94301623fbaef1fb183d9868eea0a81d47d2e1c6efae16f85e1833b54bec0d20aab22b60466033f6d4bec7679c831da5d41577d4b0f7ba9d01dcb4b2996362bfaa15b6a4481a88229cc4b1e31fc7a88c534a3857adbec6a799ff441c6aa0b4def712dcedf88641038e18cc6eac02c656614e868b5f043e33af1f608476bb89a3480a5a948576c46c89ed450fbc5b8e833b1beb784145b2fd9fc5fa7579eebd30b1b0c99750e9bace3190b81841ee2ad10bd4fca6bae7fa34a8639ee85fed9262c54b97803cbaf75bb74b3180d3605b3bdd98e1e357b3a3ffbfd0a74407e336472cd2d0d974f0280946395c5098e8d433815df22bee4ab140c52b6de4f5c7c4ddc6564e2083a79079eed550c5850f18b09e04adaf39530440af00fbdd03b72bc52fe959fa2a8bf01004b9ab488847ab4b7c978447a871cf02066d26f28d4a61cf3e2e8d24cecf1ccc207bf62461c34e4ff4356cc5cc8c5c77af73aa74b34c4a5d18b61658fb8de50a1c92c2d993cba29101bf33aafd9a8c0172ea3c636a854b6653b7f14e0919b192ef37dae0c62046792b2656f3af65ebe20bed569f06a96bd0999fa5b5983af8998e11412ef63f96d2aa2ea3a7f9c11988b483d79f04a735feee6749bc42d04059148065765a0a5e7dc268998e17687487d99d0796a46e16d8d44dac2cbb8b413d120de2299c984f44e2c2e7d6d4b07debb90e6087fdc4a362bde1f6ff17eec9878cef5a5e1e606828fbb42c0c5aac52d2aba4d7aa7c20c5b1a3672e336fbbe87451f292a03d93e868c05be493fe6f850fd0c95382541783b1f926d5b4c0c5e08fecda6e52da08f176df7a74bbc03cf628a51c86eb62da9651ac20c7f8feec4d0b3e65cb288e77385b6f3fa213b132471c73704874fc49560702a109f8c2c14eb2d09dc67baa15f80f2149bf8060c4eef9d94229d9a0a2d7b9f177bc8890c18bc93802bc22c388843a248c0667ede9bc8011951eadca2eae8cc08e365427079c209b240489d43633b8a72507f8df04018cc4870b231130c54586a0397d79851128780634a1aa93742bad6304c414bc7f7ab9e1fa95c48d13914c4dfc9adf032115650dd7e22c3ebd831e3cf71b89c57ad4f7893ef0e0ef880dfc117262ae222b54404ebb3e688d831169a73cf5202b1b461f0c11c6731c0e59023b9f0faf161acfd7c51755a06aeb1a00bef5265f93c89a86ca49ff44aa7b16f586f6ad2e1626cac4d6cc8b4387c297b85e6c3b2e5b8f70ce39d7ac9baa41d286a97373bfb8bc4ce974edcd83fce5c5b3e0ababbf037bb208269d96751a708aed57ff970c6454b9c93d2e4773037a1238eb30000c3c81239b1a95f9124ebffe7d7ab6a3d821e6846d6e7aadb818b93820ee5ac75c8c6f82a353947d0fefe6c028bc5f97a9066bdad904b4881b09263247471dffdf78e347710cac62f27c97181e67d9e9d9c071a433f82fb0dc7d901a5b45a0cbd9c131b9c03b7ebaf2306d14fe3c5cfb6e78c78b36139a43d7eaba8e14fd4565f6cf6f0d9c4963e61e84873f1d202f9bac04121ff0dac4cd6aa2fb355ca3181fee80c51a358fa82b85e0b375629041f68b0414a5540e93c9ddb0c99e6fea1ca740e54f9dcc850d1e040550dd23da1a03a425ab76618eca15f0e55011c7a3e14698905ec6183f6bdbfa951b6cf1e7def1f4c12806e30dbe0d55f6a78f24d5a96841f84d96a8e4a4ff529a3b97d8f1b23649160761bba5e271c07e2d6f8b2857f0af322d734fecf103fc7887279c0dfde7ecd901dfa3df7b6f297033388803db58b386a14b876d6a4998da2cc29291b002139f616f8549c3b0cb41b0d3d509ae9a03f3f36e877032a9eb3fcf8855a07a644b2c03381b814391412731edc118310fd6e0732b1aec2e9e52b3fe23a70e1cf8ad0d6a55207babe937567b9e5a5beb3525abb840a1d5834b1758431e407f46e420ead7534eb8d04b82bc5f12b391d90134d71281ad1d4617305ed6a77328a9b2dc54dee0e637662b8b0be03edfdf5916465112628ff8659a6b9fe86d45990b35926a89a3ad2f637e4aaf153c55fe3637961e7506c358bcb222c1b23f3ec21bb0e78c84cc2af8b60f1f8e48242d1891e4c2e9a8de8e60360cd363b9326717a5b77b34ff65080f94444e49a0b35971265d66884fa4e182f2c79a597312c762dd0927252598be18b4524e511b85545b660a698d99c80cd65f2657346952164553e019c13b0372fff94e5dd1e5407a4c9e99042d1c1a3ae7940c346a83ae83a71bce1b0dac2cddb1a456d0aa7dec7bdd2bd932c9cf7bbdf1dd15b97ba0d8e67f23cc04df1dfe62ef4bdf9d8d9eb00c80faccc11f3ca7ca3b0714c6f7e813759c01e1c2f537ed12e29374bbb4f194c533888acf241817fe1923ff0f5224402d0f7f02a2ffe5a9774903708b4676b5a434cbc0b727f7a0bd2dfc65e6b86597acd5e8085d01df3c8adf7377ab4b9a54e06c8bab7ff6e1a16332b7cc4fa30a979a85b28cd905a79b4da223947b78c5b8ac331f75a3fe43c1f491ac702a85541e7f36b940197a82cf807baacad9462046997505bdfdb50989a591cb72fd40e1669bb9e01a33a91dd4738f9b008f205867d75a62aae695aed3feaf52c6124439dd3efb8fcb45e34cf9b39a8c14e69c17053548377f0b4cb1a836a9d29273abbc3ee4adc912f0937ca5a4e63d11f90dd8a0bb7aed2d7ef40176587bc411e7d010ffdc0ec9b4133ab0c8d65b8ce420304f8333c11e2552622b23a8317330d970e206e47100accb0f0b81b3ec5403fd6f8fdfa4bcc94c571b662bfd30023dd1c6c11869dcc51d764604a7242eb281bf5db316f90f2f982dbaa4a5df7bab952808f8f8de47fda61bcaaee884775918aadf96d1637d5a1edd13c45ca3e96764feb49e1dcdcd8c55fb3eb520e0540bb6e12b2d863c8a2bdf0eb59109d542b856e28a72a71fa76c58e59c2d17b9bb275597cecccbc7c6e413e598c6810db93e4d582440c61a5019d18e589f8bc1eada61fb39dae90ef17a4b1edf35334a93b5e68cd74600036d81058d4a606d1a0159ed5b51818b4da8aec6a3635d530e642c481135cb63b71ab0e8fe258509921e7ca179f306a0047a11b89a9b580a3d870c6bb56c81103b99abee1113ea4e1c321214a0dc0ad4896860f0972baa14f3a173d938115964725df06184928940af6e3b9a8a107d4658df5b3137bcd2c6b1813ea24b4641ddee5ef2cc43f6df81e7f86ca4d1569ae2a1de393ea95c32488a8f5b573745bd55da4a7edb45bf847a6245a89077560026cffec60649997b9ec2b7e0363a51e20fbaa87c81ca14b87260d92098e147ed358cd6979e39d7d404083f66a63943388fb506caa65d139f2871cdfdfe0903dd92f984423a049bb825d058f9ec382df1a0a1db48d637330581eb2f1a85c125f5883b3d173957742b401647fd86b91fae62c32ca9ef2d97a7147640bb0a5e0e0c39ecaac171dd7503eecdfdc55e2e0713d376e00ece39adfb8dfa582187f32ee4c2aded20df491e25e08161c4e720e27d0f794fac653c079f2c4a67589ebe449fc4085bc85db2ce34803cc0b4aee160ef77b725cb8b66b5047d0f8dc2e6824e46789b5dd38db6347aaf401d5b84227dd505239525af3482803c56d86da6c006dd0e28d2deaf5485d961e943a6ec328ac1a05a527aba980523501246ae21d16f95f2fe6b9b62eb17b5080c6757b7385ce9eed37f3104a57b54891ed126837a4efd1aab1e249dbae854de64d807d5028272853b0d6776b6696c015e14ddcabd52c890bfffa34edf2c586362e8e470fb3615a703fb375045ca4ac44df31a5c3bed3e8181016b2013ec987374044c2a0d01a1b67bb41245c287a8d5815a1ab8474587344af5144e34e6919d9bc5c87c80185a86eafd172af3d18fea0b8eb6b7ee4cdfc968307b3144993d4676534355789879a07e7ac4a02f3b0cdc73118f62168c29442e62114f089189e7c29086b62bb7678982ecaa3f8435228295afd742b455b1341dd02db1fc70c46b72b818a2b5a436421a713c8cbfa67ed5e3702f5f6db2325f116c969d7ebe39faa3d3c517d90559b731d13afa24530b33fc2c47646c1ecc8886b696100b0d9ca61a99f6375a45a4589d85c096a52ab5eda2c124e4117e91ec31d620cffda42fc399b3942716234af6b1932835e822d95f5a729d6fa99f89a488407ef9f14760334e14549c6131a019ad6cf5efce74d8aed7f2dcd331d359421bad3f3fe3a89279553ba406f029a13ce906f21d18e468b806755c78b22bf87060b94c12744f9d948b29ade73e36775c1cd6f90d2fdb940631e30817d24495029d89ebee97b030813e174ca48be159dca0dfcaf94e601da51dd455f500cd24d07a2001977e7f99dc345834c7f5bd9812f003b0d905f22c0ec156da4c58009b752b30185199091c2d6151c4200b310ed61100a001c460004d8eec9a6f693682fe6efc9116591dbc2b87b317a14c4d49364efbdf7de524a29939401bc0424042104455264a08016448727764565555596659149657b56b1a1a4323fe209201e27de18da985a6989ae8fd984132be597d71a1104d9299b289f18537308f90ed79739cd27676a3c29d2f5c7ec621ed001c2cb665466566658665a665c68d0d41e97a0e6a659a62eaa48f5b93ca2eb74e49c3721456429388e13ea5a28893c269e43ca9a26dd122a32544d951a30c63826036c63dcc3130689244f0081a0879e9a42aa4c07644288f8210829404c41537b506961264ed6de7bef92979b264c2634646b2c21b2f69473ce43bcdc3487806d43c8348987106b60f4478a882b444c9220f305955120d25973041024fa429317a0bcf043e2f2a1b2b0422f332f342fb52f258fda1a6b4508638cd3bc382e8529d898e59d19ca302b85f2a862465ab313fee17a185b39552d0f741dde91ab349165b2faba34c86c12a9245449ac9260611c2b4a438abb39e78cc5756960796926b5e3314192a18c2fc6186356968d710b30c080a4071635388896d4d492d8921cca78c9f8628c314653864373864353c4a5d1e1d2ec94b40d112e5f26949555e117c6188309c38129c3813943e2c11863bc84913418634c048a9be64fac0691a0f9fa78f072ca5f8f049ef47071d1d0c48797ca43042e38515ab7796badbd40ba6c6babe02de3ec615c615e61606164a430425f92727138901d97aca5064a941dbf659c73ce59cc15831213a4492d4c1b607928dba01f37cd5850962ea8a030f9e4f570620b524fd8994a0f2ba1fce268f05092d95293061321f7a109555659962b54a13dab8c092374c689353f55a99c73fd408b822073484913223dbccc105b551da053a555d3dcb6a2697b30a9e1154433427638d2e11f186309989902a407a035538240611de52a562239612e2b2e2c2e2d2eae4723846b2479f9563b952ad0da9e54ac7499356a43b9a2a715829923470096ecc088d85c538531ce517bb4f40e0e1cea96629143093038863872864cc5410337e4e454aacc9ce374f18631c61803ed00f1001901f2016a020465fbed07eb0ca9e511b9a76888ce909d213c438cac40c3c38a97529955500ab32b5496a5133adbb38a99d6ec4b0fe37f821e147cb842defa9c7306b373c1f05c30462e189fcf39e79c3549db683d24e7bc26e652a16436c40f1f506030e2880501d1c5f806321b1ba14d48e971d91d6a93060e4316c7ccfe98d552bfebd8711ead49da464f9d73ce3907c13a368c316e02aba6b99130c6788c8a1bb3e2c6b04818638c319a154b76c096541f324a6bbc4034575b8a53c94eb6460ae5dd1ec648f6a587f1af8db0e22a10618c2d0d1d2d3a73c0ba2de59654bd8125e689361e39ec78b9a2c64709a28ce009353a4272ce39e7dc85e3b8b7e1388ee37470b969be6032218cd261e85465a0119565f963d2f6acb2e3a2ed9b73ce390721c1ce964787c34895205df45b17668d54ad5a26260d26ca2d48d699c191a3858e265d7ec1891e3449db685dbb1bb82383871e2050410b0b62645e24d312fac85f7894e1a106d7a8815565d534b7aeeb3a3545fe84d54c2d292d2a90c612b08ac485e4850486448644c8822118b5856816e9e8dc7bef4dc24ad24ae24af24a024b22cb27ac49da464f3da3b163c8661e6076ee3a6ce4ab1322374d27b3cd094d3ba9919e0c0a2ab4cd1823d63831e403402c0879099450235f73ce39e7dcc1d04282c5690b20cc255c4be8f0c052028928283b7e35f9feedbf9d56d906a74176fa8751aa00a6ef9eb1205870a2477bc682d8a99b562e369486c422878d05b163d7af513370147bc686c6ec70cfd8d0d016f7d79ec30d609a1461f1c1dab2420a056493fa346190378b3a341e9f19eb01caa61dd833c64398ede5b0524ac3bce5ad6e4abf0335f8bc2705b06bedeafe5eba7e98fcf93bda9e1e7e060e7eb5d651fd4623ee1b81b8ce0decb65eaa23f9394ee5507cd371ae008109982704ec0a63cf17df74d59ccbaa39566bd0babe71dc462b64854a18788996b7bce58c91ad50cdf152e95f0be5bf7fdf598e33b7bffbdc9c47fdfdf442d17707e1c63f0ab76fb204df3736ea06bf6ebabdea1fb7ddd8a8bb7edd752439b0c3af397fa83ffc3e9cedf04795c7f739953fc432b4f51ebd87e20b45bb5be0d01fa86bad9fc370fc2c86f941d046985584e0f7c12879a98213347ef741f12ec2e8f57b8af77717c247b1c34fe181fe507ff89e7fe1eb0f5f24471bd8c1f7e167d0c668248dd54fd8dd9324f7f1927f283a2b064d37794b97fd9bf28b42ddc007d40fdfb3f92cde5f01daa81f8e2fbc44a797f0f7b5fe97c75b31f0121521fcfc9ec10e680a43fb7bc0f7d9463812cabf6213c0cebfe98c438f1effe664fd50b4bb821d8cf6e83d2d7e3c64d993cc9e312cb3edb1f85ae8d024dda4af458eaf850e2dc28bf0c2c50debf6a8570fc912b68dc8ed9188f375e174bab0a16f50dc3209804d3a8b246591fc6093374e56ac978582fe0eb12b617e88a8a1e68c67bd20b5f76f9036beefa006f8defb6d74488e0efe1d8fc2a3933b2ba5dbb47f8364afbd3809555344101122f06ef0717777f7a7fe1efa3809ab3a8b5267a313b6183c6f6429a594d2ea042c028bf03ba13dff30768097aad7bd15bb171be3223dbd148ea4dd3836e6676b0fc3dfea934a9e58e29e44d2ba015e2a42db3a1da71be777d381def9f59e769c345bf3bcb00706fbb4dee6a6411b987e3d0ae9bf60210657508dc65ef759ecbe724fd25dbd310bcd18de3b134dba2047acedcd19c31bb72c944115da601b3f2f4d40a36a3c6ffaa42e25ecb1757bf14fb221d9bcd09bfda46cb684512afd8b7f018314f6e88f6afa9b7bd8a34912fd6dd351451299ac5671ce1c34b9e970f3bd6e25dc7833c79bec282718a07b84fa44b93dff14b79184417eb9411d49ba6f3ad0bbbe266fdc5a27b06b7de2dd11e8f933d3520f913339e77ce5554d73ebba7c6b18e3fcf55011b3e4c8179f1c4892a8686dc6a9eaacf2820fd7e3818f265ae0b1e3091244a89002131edf91bdad42054a3744193b41991eb22c546557742564b567955613ba125b3c414eea8f35370593191682d27cce394751b969aea2b034c9062f2bcb8becd018cec450d444875471b9710eeaa345c10a40a6a85c70dcd0a52e52ce394f2a2fd6ce79686b9bac49da46eb9c5d39e712b89a08b265cc95165240651f3b5fa11e08a26f8f0345babdcc79a038f7a6a3c35976793c53467e7f0f8529637b7faf079db193411bdf832349f73756228e03252c58bc7f5844939a4576d51ccfcb34dca4176e32bb44df9d28a6eab7e93491de10a73306fd94e3384eb1c22988e24d18a4e7dafe5e9d9b8efbd722b7abed75d269c2740f697744931507256d110b84acb5af63759fd119dc9e4fc1aaebb442c56787ae342f79ad39cd856bbf09400f4065d0d1ed8cf18edd47776bad7d6b33bd38941e0a91a2be647a92007b56b04904ec17c4896359b3541f05e5608a47bfee6e44455688dc6040647404f0026964966c720b22b756773368c3734631bd7463858acf9e56a614ed4d045d0495a016d44f218267dc4d2458b4eb7bd3bff066117f474b1d1d2f81bbbea7fa78be7088fbf8a53ed5ec6e783b2cd21d76dad3ba236f643a699b8e22e4e7ba2ddcead6f9d06a4ef8e3a64a86e5ae61ac46376e7b292fd1cf22a5370cdfdb44d24e4ae9b655f76e53b9f768cb5ad97b29ce59e4b8cf2c2f553a52a7d4a9d31f7923d15aeaeedb53d18e9b117d7d429003df206dc6a07f1366719c4a4398e3e4a190a87e380bcbd40fcf84b19a5351200b6c390ef9d5c0156804f4a90f36a91f8640405a57fb8a5a8028443a7340d85752f14bd14fa7db740442e3f0b53100cbc0292512e7fe993170b56940fa7863c6f6e8e9531bdb6fab1740f46fef411056431056411848036720f64193e00fd1ae0ffe74b08dfab7d50d8126b7d5eadb3e9b27419a8ba091cff95389167f08c2c84d8bab4cc1fb9c48de98348faa668cfa9be318d9d9f537d996c5734495cf995dc3d7ae7563bd7615b2a74479b2c92d6857a721cc71c84f25731c12a4852fc79953a2e8ecfae18fe3e85dcb6c328cedbac226c3a05d9faa3e1e90e638332684ceae0f9e711cea63a7bed4b63a5d503a3d65edfa05d9f5c9baaddc34e99cf1a9a605f563dbff4b51f12b5d3a3ff9953b8f4a50bc3b8aff743c07c5d7ff4a14e2c7e3a65a7e293a7eaa9bede7a7ea7104e9c5f848685aff3fd5944181d07593e0c781b429c3770542fb2641da08d4895d85d04fc7ada3eb6a4b79a9da6d67d71f2fcdbddaf5b795e3904f6c3aa630a355ec0964c4ceae942c954665e80628c2b317e78debb6e93e67ce1aaa2a7b71deb83cdde7ac51179d39cb87ecc579c3d37de27ca7fb9cd98b2dbed6de7a6bd6a7fbb43e84a65fddddeb749f2e0b9eec147bc67e50a1823d6359726cbd67cc87250830b44317623f6cd13603d833f6832bf6838e4dea978196db05aac97f0313a8c00711c8a0015eba5fbf9eecfd3b7e3511d91978154df841c36ccd902a30dc404379911a3f8e603142c3210a10ca5726946b621002b2e5081242542214c821488e196af8b28507e543724c68814a141f50f8a1468b1a54cfd6d2820df9123b2108947f041ca7f2006911f203882d1d388107e542386092e242c4870f69d4d420dbfd2ed180dd22f8697b9d6a3bf530188a6321c7aeed58b61d77d98e5fdb716cfb573a27a5e1114d2f2d3aa229a57542715d58cdb1dba63589f45f2a9d4e17f6c1f7b7b42ecc9cebbd6f79c164d857b664fbcf765b7a735f2b3307bb78d88e615b2e6bc6f0ebc2ddb265b8424bb67fabb5ddafebbef04f695335677bff9b6e24a10b2a5a02c5015b04e5c4be09a80fbcf196d5e4b713511c9a5b12dd72caa0a422da9d62dc04bbbc845b2dec721c2e9668fb942b58b63f6e82a1d019147b49bc31d8be41db7f1352e256cdb1565bd8f6eb38d68319665b0bab3977ca34f9e720eb2188ed4fda21d88cc14393b8b5dd1fb78ace6cdcc22d5aeb54364954b036fd6ebecf9b7967e857c6a37da9cf8857fb7436fd6fbafbb669fd5f2a9d4ed9a66a4ead5513fd0b2e389d4aa92791e80f75f1129da86ff4917cea7967367dfccd400ddcddef0ddf4192b4c1ef47e2e71bf867ee1d7b435ea2f97e58a41e919774d0a437746bcd963567a23a30badba46579b31983da1f2fd1b7b0d4969a32c2a7f8bdeee7c4f96680bff9e718fe200066896cb1ddbe477ab103b0f188016abd21af0bd1053d9862b68f4a46efbd36d535473f05a143e9714b55d30c9a566fe6cd54b092d0f7fcb62e14fa5787da227a9b6c7a539b5e9e4dbf3a9d15780ef7130133fc6701ea688be646edcb858a00992f1436bd2dee3b6a2fccceaa69482c81fbcefbefe79c734e7d47d03df739f73d056f7c0cc1fb6fb4b33b54c2f75df8e0d35bd69cf04be8fe7b5a02f8e1d3a710081f04e1fbee43f8c654082138aae857d0d67e346967b49ac33df59ea2ec50cd21f2bea19ad3dd7ce03d099b846e9ce3b4374c191fd855a24c1c29d3bee80c0b855a409fda249bfe0e9bbe8739f03d02cd77f31a8e9037de76685b53edd815143aa3884d9f524ac96c0a65535b731cf2ab7fd884ec210fcf4e9a811a184cd87697cd2cdbdfd2396746c1c194222fcdfd3f65d4c74b739b660e264b78fcdf23af220633c602a6c93f08e86b8e02480bc05dc70b660c7f4ad3942aa1eb5f7081ffa558cd6867b433da49019b5e6a4eefe5c53c1ecfe5fd782beca5b64d6b12e9bf543a9da614d54a7a12b9752806b478d2f371f1a467e4c65f6f24fda49bd2bb184977b518671be93940858a584039a9bfb5cfa0e96750370bccd9c6a3081604010df8711514e9feb86e52b0b3117d771b78f8cbaeeccaaeeccaaeecba5ea783d6a0fe661fe3bf3167fbbddf4672cef0c9dff35cd5e4371020b9106f20c08284169e0bd159d5e442bc09c1c5dffccde8b06af2957813428b77f12e469755937f8bd159d5e4fee2d268d24be56ac3759eca713e1b2b7e8291a47bc56823fab611e9fe44252db2abe6b4187d8a6f915d75a8139d5a401f145d61b8c314db66b63926565bc553970dda7666715f9ca80be2572166d7477e9b8a1345c5fb2c36721b6f5c2d4c768099f3baffbe0e0c9274a834cef605b5746848020000b316000028100a860342912c0b831416c6071480095c82445c46361c8d460351281c0a8481300c444100c3010c053010c3300c55d29c9804002e007bc2cb977b834d0389c0ffabb40faa0a5152511d4efcb8d7d4c3bdcc95551a58392ab241ff22a7adf51a73c4b7397b502a82aadc802095e97b01a530339c910fe8e4bed30359c36afa047e1087d454115cb222199f16e246102d6c4ba42f5f588f802993e64a5b5028884436cd5ea349b3a93d149ce6b9f704a84ac221a8e7a9ff7eea3c22e2a828a4fc15f1bb3fd04b92542cc40c59a788b12960a502529097320e4b8fa5bed3639bd34951a496e572f32a42cb927cbf4d9a86dde830bfea6bf781f4afdaf7569f31ed6e2051d3331cac19c7c5843d36188c6c55567716427c8125f047d8572ea898651a18503bf91d27d5fa3cb888d7c027a2650c801d3ebfdda2fce66d835abda03b48c4e3cb26840669ab3d3771436bff4df3943aa4276260b98a1ace4cad9f3e907d8e57b2aaeb33e3108999eb012a0190ef263f6eef390298e3186b9e2bc1675c10a7a82d64458ad167a411afe00669e3e5589575bb93cd0dc682afac1750dfc4836a29fae9e3b179e90ecd6fb7ade24cb66df57820b838f3b81f16a0f67853584791e447b9ed9387ffb7aa6f96e7583f08e293f37566299a0c40728f6e558ca2487f77a5fcf8bb27baab2e84ab038899fd2799fe37c5cf141498de8c2ea153eaf307c685ee06dd98f2e350ffd1fbf031292377bf71710bcbddbc1240a2a61009067cfbc3e487fd36dcfc159c67637402a20ffc1261c31c44236ea694bbe4ddcfd88451513f10798164a5de511db05b85d2fbb3878c1bce518953801da96b69c46935c9a3cf3c620e9f3cdb93f4ddbeac0060813e9a4e143723605b73c1d4612c43cd7008032a1cc0fb99c330b230bcde43aa012bd5a960fc8349819c382a50813aefbbfc4d011c93f7d07ec13c81abb57d151495de36ad973249274f354ec1fc36260876591dd301cf0f6e66576add1d71be65cab7f959bba5cebbf5bb4468b002cd873f34b19ecdcc5de0186433fd7a000a267a4819972c3e58ceb00bdd64c2943386135853d237ff72a3d33c90c3d96f1623d663a8b9eaf9da4ff4f836f805d9797ddb2f74dfa33861ce5c5f648e34ae93d19d47dca69110ab912adb06badec8dfd989251517922e7549cd1bb622d38265a30772e76e420245f645fb90d9eab05f6a3a61bc75344ee11d3b9a764c5f726c33ba64b369c3affacb9d9122087d5f354ae2662490c54413d8252b5dcee3b1bc14f0d4a0f63800caded49ed2dee1089f181d152abbc5673a8de6dad2551cc3e3c89469c3159dcc3930fb70b224f76c69bfeb32e4260f86c805f2d4923cb21fdd7b0a3393b1cc5ac80064f5049dccb2314a6f28bf7bb85661f4975682a6add40681375f52932b25ad02e32d5ee0507c7953d2d185f90447e2bfd82fc355d1d9d06d5cb50906c16a7933a512387ba2db388a5189a56b599b0e0e749b95c1f9c950711c556749a650677a788cc0ee48896d5bd489e204a355438883a893de390750768c124b61b25fa5861b4ace3b9595e230fcaeb3951a77b33b7f3efbebed574c618101ea50031d31a20bba14521cb7a8a3c61ae88460204cd5f51a57eb32bce7d6256937ad390359893e5c7abe404cf0f4cc9e0d2923b7280c7431dbe7e286a27fe3b899800147c96f42e58043839b1d6f7e132cde5a101336e8bbbd5677c0ccc3fbf5471c932cc16930baa1078145fa01635b4f0758ff437f9e41f61611bf9647e4e69c3ec680c020a0d58b96e644f5348741ba82a239555ff33a6d8aac96c2c10f4a1efc2b011b3e403510958acc5e70890b6b2bc72b9a6b592f20a1c7b7e7e94e9e94d46ded576641d4c7b5de17d44ee2cb803c97d4cd57756a2335d89f1a57aa16b80ed1acf5d0679618a1eae3d57a50391e525d9a1059200ab195e6b0e1aab38a4f0bb661878ae28388f1b5c6a92a01a51dab1a821868e5e571e60499fadba4cd754713659e2ad30ddbac000a11f1cd4295f069bf2f6c5f98548702e62724c92cb10974a4298400098fd11123a44fe9eb1ed77832bbf74ef342303e4bc739ba16a86362731b39ce7ff4119d03e60d7f43e2c362a185d37bfdca66a2665610b1ee55afa921fed16783f2940a17be48d2c135e14c864dc80b60761263b825fadf9db4f41e49759d7babb796e584e1bbe2a8ee0bf1b1d684b5e3d0b9dd9d5676b893b98308b01657b9e46710a0b734881a3a95a6cfd6b2746cc1f7ad101ac6eee65e359642f2ff96a7e0d3a6a98dc7c5183475307ff5f0928a4763dd857fd2c917f4fe43b7d9571625d9ea5ed5089df79e7f00dc70352e2c613d3e70a556a6807217391054ab6ee9f47d6d3574154defff01dd5a5587a7a5bd57d6358a6a23fb7e0a43c89537a26347c2872c0afae164568b64c3c938e5b88066c15c1466e6906d446efcdc717eace394cf75bc710c8cc6c884d100261c4ae5e4ba7669eac7957097d63708df715b3788db580a82d7dcec6423030698f685215fbe747473b33d3d07a12ff0e177b50620125ac54aba12b2be695d99c2a85caaee6be36a211c448aff841880a839e8d8a4632d8b07e2ad01ba0d01cbe023c87fcfa959857d0a12bc0d963521233f5118e7fd57cdb3dc4b6f5c394e3f9f8f303870c30cb04ec81e9983ad03be8476afbd47743034da4da7a47d523ee8c0620418181fc3d9ededdda6b8cf30c0c71baccc41d5e755393e0d221270ae7c79b8023847ad870c80396e7de4dafbe7d8265a05e01ab6c910249eb2911f01a03326f00746aa0a19f8d663355a09dc1fe51a2ca84f6926906672e38f0ff043748ee17f25b974c469f5d21e710128c610cec9d48c89861d9d01e345b5e59592beb5d600ea181aa7eb3a91fc20a9b5875c26e2eda788937a85b1fc16755876bb6a2a7a9b04dbaa360c65d6eb9ee18cac3ca673e186faab8eab82c0cf5f3bc6d5c9149b97ba6d6bd20763cd4ba4b551c33b820cca2e5b61698777a900017157307dc0a2547b403db2ec8e117f34cf80b4800485a241e9c9696b56d407fb5fef823f19991942050dfd7f503cd7a98b4427141472106de445a2e68c0b2684333687362fc85289447fbbb67b7278975a0a70c1f726502a15c940d944846752f9c20388e28c9f50e5b1a930b1c8b6e430097b6113f61ab67cb3164d6f45f8ab6aa2c4a22e4855b5e543bb4dee3152328804c6ff4f3d32accf20f515a15b4787daae4c6d423c9b3d3bf59f0a9dd479eb2d6d1de8dd4ea8fd2c7791a8aa54b028dfaa49706165b60af262e544c70bcbc7923d58b3770aeee62dcaa7188aec015cea12573aa6a5cde3956a930a4b642a57067c4fc00e04f199f9513390037dc19c5d8e4d1dc54306a37bfb5a1afe54192d7f32ae68069d67ed2f2bd607c83512375d61a3f382883343d64a5fbac53d14d1ff06c9c1fe57af31e450d5419bc00c596a78ec8b950e4040d6933b46a8b6497c616a5ee859519e4a60e36268a13308baf9ab1684cf26a3a51941f5f3b23f1c2058c94c72ca5afab39e853f1752dff21f5ccaf0267afd01d80c5c34d507f3ed70784c2ffa95a74cbda30e0609d960ad6ec97e8a83cec05042d0ef2ae66c38763ec3d27175b330137866aa2047d22dd08078e793498c260217245324c41074b78913a6f5a61b14aa0fed74aa986fa2174a96f3728b28939e87c12561cc8f1ca4cce17d4c7408cd6a9303aaab73f62eab489582225b286b3a686559753c930e63e596e66205dce55aa81020ae4184caf54dc7e5750bc891c58289485ba572a98a1ec2219fe7a1e3eedf5df20a4b46031b0307343f4a64278edcdbaa5a11f4ac05442b7fea26a46e7be081842e9ed7fb1dd8375cf907d7264f51540f85b82dd10df1236cd0e6bdca6620afd8fc6c1c1eec57533c4950e1368c8d881ed8570e5eeaf6b920cf3ea3f3acf21cdbc849a0b107c06f0b2eb8b45e471b3a31aed54eb72556294405b2a1233054205d870a0ad7080da87de8415b016247cd51900d1a7d5e01a30f546c289b1e98e986a6fe06e53980295db84e975c06e5124c0eee881db83e1e530a965dcb41b859af142c110a8f9754cf1657a65bd0f11099a4f85ec69b1c26ddb9f6de295634b4401c1178ac28fe498641109f7d56e41824822cd462b6e57394a6e7ad99f9c067c41116f59516cf9e0fd73c1248a82a07f829b91e3aff1c08f0ee026a715db17607ab029a6b959508b77dbefac07b387c0428497e0f6a934895ab853e8c090a71e865728f3b9776d0e369bbb3c7eeeea1d7c7306e38b04d3c4b80838a88717e17c7c75900a47b89f50163b6ca9a30b0c787409c8702e74e1db9f7394996454f892a9f76471406349a28ee628449d1d1034c26433250d09c145fdc746fc3468e31c5d034601b1c8d947d4d208e6bdbc18c4b881f59e79d6808e7afb824de94582b57f2bdfaf39812c1feea9189c2b51c3a98de934a8a1d7ec5d60e3ac93fbaa86f4a51844c61ad35e86f756065e6501a7d6645e0ee75a8029872c81d1b7445debcd2e9e6f7ebf5974a5e6900ca348fde182a03ab85196476f6c3ddfc96fa94a9c5669121da417d49073129093a11502bccc6092722920a389d198ce8e5daf5af63dcfc5158887743f7db4ef013501845368e3d739738f7db0a57a291c890b951837e8e1860b4a12ae334a30f0a153c8f12ae4a69c6c2fc3f72c5fc3f5e3f1eff37f1b1af960d2289c91de6b9c9bd6c6818a5db547baed01260d2f4bf9e8380ff50dd63c8757547effc81a61b3d7dff152a7f5416026cea05de2cfcc30298855d570187605b6c6451541a7df40b56624b25465fc85e28701fb73d00d568fb2374941334ad024ee50f853e10060102884831f2d066b15a35ed419ef3e1fa16207fdc06a9a7d2065dccce598841edc43e70f9f2f2630dd198e52814bed723174774d28289a97413b77308d4aa7918ec264b99a3e3a58491daea2e71fd35776281e8d02f4b6766f243058fb10b75770fdffbea2165f72aabc59fb571a57d80ef5bf87545394e50cefb3d952cf1a36047947f807d0eebb666e1135c6d37debec11a6d66237e873d6fd80fa5298d8e98db09d820a3054bb0a2e96efa48521202e92568bfa2ef7a87ebae2046e931c3cc2705649356a4f23b4f07ce1c264c15a0ed318554efa0cede1ba862deed791218fc6ae687ff7bb0ca86512a7d2504a5749e6e8fce2032977d0c17c1884b3eb81b76ea846b8540bb6b36663dc52ccd74f40135f52ffe649a212f80dd6855e1b1709dbdb87c1899d018393e222a6cc57e55b0d6347106bfd7d943e88240ef8b4efab46b597b8c8634b96be1ba26ad8bd22b540deab4970010df7adb4f696d87d8f727b60ff58b0f2ef2936c30e91d2b4cb63aa759a0b99d4e58784468c371dda622ea174c7d73b49aaf5d4a25a91e46db61a2b5ba3439164badd854ac09e023ce4f816bfd24e9d424e50dbd793af6966fb06945ab18716dd5d34760c0fb574b85a027a8f674e9fe86c57a902c109f9da8b6f71b3b7242dbd333ef9db2ce574db97f07d4573ac724569242d5d0f73b6416f01bc116f91adcabe47768a826a5ba71964eb431734a16c3cab48b2285ab18cae9d0c16e2b8893306d2cb47694109f3aa9f5fcef6f5d20ae0bf837774b659b74f9ee329e4d417084e6ea217b1d0e01c141ffd58197872e26ef45e218b91bd3a867561434867958a375b026ff41af3d0052b5b604bea56aee67897f8e679f674a12a7742363290a928ffe2107a2e8c7a09c40ad9ec8fad97e4a2230e08110cca72e08c88bfda641c216dce13afd066990f66b1d55f0fe05e7423b1cffd78c24b1005b6dac01864e33c8305f1ca811c089184e80b818b54e4cbbc05210b9c54142939c7a63045d312868cf373ee41dbc7fa9a89f30ba368849924ba36b0f1f3869a33b1f79a53757e415190db1fab77352d6dd34a9b48ca6131054072bf1095381685824da37bc575824ac4963ff39a0088bc41ad2c92dca77f7fa91b7f9e59d9909b9b5f4c7fca84b5905cc495a8c3b624e909e9b2bb026a56c8a93e6caa76b5ef98147e68226c5a7ef8c095377bf0531eaf893a05cc0694b2cdaf5b2471b6f25b1b47be5766189a46db605ffb371d849f5e2f7916e78a2cf9c1c91c85a1efdec06a8531fd7b102db90f2df947f691dc8383f11535589e2874ce02d13a1b08d5257c924c3c9b9cc686b68be66d7c0cb3fbbdeb2d16dcd65aa149edc607a2bce8d4697b83c1237094ac7670808190b3c3a2120ea2b645c84c4315f89fe0a2564ad306536c7b9fc4a4a04c81ebed29258a0343ae83e4927e8014b548e9f2528aa39510c5c8b2b4b56c1fb61c6094bd0a9ad9d0b741c56715dd204d2875c6081e4fb926805f0e51fcc5f03c1f99c1b110f342bab3e072d4dfe49b6dfc820668a46ad2f0286ddf9cbf21895931d5b92867d3248e9352403820c42300ca1319d5cf024eb4bfbf870c79465f9f84c8ca07bad2c6db44885f2332e13803cdcb9b31a840a0987417819cd79200ce3af6f9840cb0092d8e14e743ac14624121de7d8289d144673b833930e418677131074a626fddcd61f035e230ffa2eb273a753f59626e9263790717d4007a1d1a6d58d81a4f27e5305f53786722e2382c135134864b5fed04653f071d422a72d19ee5cdba02ff67433a2e748fd30354f6c423a2a4f29066934ea15f60422b159cb326939b62d373005a52e2ddfdaaa19f6fc923c3bcc701f1e8ea595c44a7791b68ae3a5cd986b92d9da841a802a506bd087fd9b7f73aab877fb20b5d1c77076039e39de669ce87cb506fde59afd30679e671df90d405eb0e3682aa5930c4f7e31b4f72eec2e3ff82b69a3a58b703151f6bf2f346b1c63c5fe5d68bea80bf9eedb6e30c295ba88b9832cde7e6421833e882320eba3f01be268f363d1b60a0e08a671d5d51d1a28718764356be0627dce8219c07dbcc16e4911e8e9237022533f5dc0a94f35d083db3a52ffc2fb93d88c80c91a98c632e62114d09089f7855cb59daa1b36794adc14110872e875185f6b40eae9073876d18a57315042f4e4742991eafc3298cbbd75829a883436e706158374109fda43daac23a7ff0481dfa3a3fa126e1b2616f48b084f0d7e73c25d2834f3855c93cdd8d68ce561109ba216e3566ab758009efadaa48c67066cbb6454146425aec586b504c58b97f08a362d8e2b0ce24302ec125d0da2c415923a31ee8151fb56bd149d0ba67fb49c9f03207d18ce83b309b8dc302d224d83a49005f167ea3c0e0c0043b6a9703dd9386ba63e674e950d2420b292213700d78ec04c7fb345a64f12c22fbf58b8da9e0047b466718292213ef430685f18b4794199ed98939c4c1d670835b338d63941e769905134bb2ccc7f75241d209c3ca08c903efb994e7a4d4c729c2e74ff07cd720ba68cd006e126f91269f28cc53080ed47a97b33591b01693558b21276d1a4687c5c80be9e50f4e69ece5063930c023b6d90a9d78807b364383c728e18749b8bde8c31b34d80e4a684e7e0828bd4acfd806911671b0a8172ce296814d9f62c9d3a6a426d4af6d6bcaa93610c7cfbced2e7c54edaaaadb8dade71ffecd876ad8345e06cd3de00f58f8c9844ce0df2bc0324a64da4b0d38ea22be8316a6842ca8e1495a80b945b9b6293ee66af390249a72db259e2f1fabf370ceac2630b2480a41caf8114eb3556a11a43839ee1bc3ef8d16d438edf01b20aaeaeb92abc11bdac839c88d6afd1c6b507fa34b8341bb01477743ebbd08ef94c5a4fe9d492989da830a490e8827ab93e660b954896a1f6837aa978836066d05d188f1333ce18ef3faa475a6ad85c46caf709ee522ba5c36b4f6e63a34cd11a47d76a3a6aa656744b16026961dcbc0918ac47abd3b61cc37875533a9d21f1f67c201a7d3048d0f6d761b3e9cae7384fd12a10ced933d5971057f18ebc878ee35bb3305a42879b912a8cee8eb0331f31b2dc0dac0af1ce13a913303bce416915c1ee258ff32ae7fd06c56c328d10c68e45fccbb1a21659b4b5e465a8b5caee0be3ccb63564d0588052501cde4c236c53307d2176300cf46066a1da57e4de5dd1e3274be0e093ae3fe54249108e654ad3a569b5e2a71918f0bc46d22e2ede904fedba84faa3fa856afd19edc23568ee9484520a6a3d0f4896f8e831a9353ce2d5007a93e6b20eb4bf408a36125ee1d0a94c61604088beee9b45693051a5afc688297fe6137d175feaaee9862950f8242c75a296427d04665014c7c462fed193ccc706aa960a90c959af86df8dacb088b4377f349774993e770e478049a79af0144b23934511eb1989bf31253163bd64a6eb7d70da95469862a315eab91ec7954a86d88a550db573a40abbad262fb78baebf195074d21d1a79a6a5836e1f2b0d5d650bed561ec3bb40fb4045e9b7ab5ac98b90ca10491eadb8fb8883127c17c5be6151f73addf6c5c3b1829c4ad05a3d89f347ea9451363c61a31334f74881d2719852e3e82c8e1cb130e9058b62750d6080ede71ae59dc859d34afba63ec68930e915d2d30ce36b602b1893a5958c3faa797feaef173810ea13f9faff5efff498e470dfb112cafeaebc780a9b200683f36921d94922598fdab0653e731272a4c638c94bacb7c06a32a990e8064f74332920ce458826fefde8fcece307a46db527be07628aa49f16b1f6c5c09a7fbefc2605e100685f1bf7c87847985db47328f41720d5611a634159a46875384281662be628717e841d03e10950215dd89304bc2bb2e44dee0191fb3fe4e36b6f077d6c959c468c95ebe462d9a2b4bec887b91d41af40a6844deba7fe918e82ccf37f9294e89c50d9eab8f698f48428bf6fdea484812e5ad22c23ecd7421338e523ecbea4541e89526f199b62717570ebd6f59f4b4efab57b019c8208ffabd7a8193b1956ff9088e7a74ef74944846e5a04bd9c03c38da52fba9ae88a9d29868d5cc960821b910db878b172f1f9e3d5262adccf8d5f2f788a73b7dc0f681e9bd62a237874bc4691014f5dd93ccc4b361d21b4d84f1b9da1807e32e94ee81466492e0542430c88453aed76c76813040a7c53813237d5eef617c7395d134f90493829602c95971df55b2ea554b0ac697454d09a338fd5065f15ac16af9a3cd5e0a9364f3578d5e45d2d1eb579abc5534d9e6c8dc7b306af3fb68ef7db4ce9e6890ead95670dde35e45d83678dbc6be0592bcf1abc6bcab3064f5de3e359132f93bdc73b60e778712c68ea47a93d80a8899c5892496665303d22da7edd345595119601b979cd1824cbccc855b7c58b8d3d5da9f8670dbbbd70496cdb37294df9e49b3867bbd200c23a45428d2fb6b6a98a10d91d448f36f44a717c680e087daadb023da35c2be51f78200a68c8cd121dc32cc2651c16d55e220fb326f8c61d3012eac63c570250eca8c6b9c9e4cb8fbce7a5f3c07e7634dd433bc2675d10c5fc5e1ccdc717ee028d01e3c1617680c35659c574002e408b2752300589ac4414cafe828b8e8c7414cfae4dd494556febee81cabaea515e32b1e35805a40bf07ddeacd004e11330d6c7c9a49c6c4706bfdc31e403fe5398ca32c06605fbc9695b05f8e6f67cf3d8e1be613bbcbc234bec9c4061092ae7e4d778d5827e32ffe1fe4523ca8fcd7ed55f1f134ff6e6b6f687f6aaf6d898a2b0ff7d1ff6f910fa8ae9ce6e85522bd7e7c2363fde51031b3595023189297c981212acd3eda971cca2de2fec59684afd0b71570ef9453aa61ded8f51794636670efdfbadc5cd5422e47ebfda3082d06d91c3cc9f379e8860fe7882c67a3404d6e0194cd5ed502a207117e6e78bae23c366e01d0e91286684ed6a8c28ac0fdcbddecd01f8bdffaf9fc369246006d853d2935821061bfd66ad9be68039d588bf466b721bbd1500e226c006a0469ec375e3525be193ef506040132406fb49e4d6910143e2e586e461cccc501b45c2d311bcfaeccf1b63e40f8d6a634ef51aee0f37c73935b2d3295299c8ad786a3bd6ca261c77fd5b7b421db3d7ecb6eb840376f0261c9502d2e21b9f34e61844c0e8845a3b4ae229be924e3146655de6ad1108e995244326d7ad60d2b49fa9960c87e6b8e2794f6236a5f265ec651770d5cc9706e389a579642d0b7f624da95bda06c3c255333d2ff2c761017b6d978e1a10b2339259e229a003f8fccec5b594f25b4d41de4a02e1ee4c6ce725526e923f132689633c8a64c68fff2f8c69b5e292fc45ed41930e5288fc452b0e2f62ab851514a35e5a0aaa47f8c12e4c16e3244ca7687eb93b6e86b7768e38aee05bbd221aa08f17d91999950165a5a2c8bbb2e710518cfc9782b421784f77352efa4c7cf104258f089e2e78c16985ac06b86ce360c70b5b0f580aaac9507e8fc8a532dfd884dd1c457b4a92089c423d363384c63b4a724c915897e4ec4816745ed323c321b3f9af83945ce8adc2b37e8d2e9fba4c3f67fa34996eb09c45206e4c002f4ac9fcb203d43d1d80a055ef43fce41fa3a71b94715fe04d4dd150054424d90b87e45a3b658630318a2abb21f66b9fe2b9d75065c46582fecdfbbcad57a4b579c1c1cadc012874191731e0a78cae9b7d2fafc56f0241f2968ca5580ed3f1679eba1cfd8100b234ca9dc78be7e3d198f40bb05c4debbad77a5a504a61076e4dbef1b16903829bacda66ba887cd8d407e64951cd0e70abf372b60514c2ccad433dba3841d4a9a75e166480c672ca6d82f05750b5304c92e4c6d8a52c9bec2cc7d3951490881dccce8a6e1074b0814e2cf040805d65dd0ae31b442a98596fff7401b7746a1ed43613e22848e04566c82cea3631f991e32a9fffcb63ab92cbfa2615d29423b1dc2b296840a46ca4253644ab8348b831730f35333fcdc24ae7d0373f1f2f2ead41074cc5a3d06d5b54610f911b2b8fe4aa4112c66115a1a023b5079bbfdc6060d4cc565377401e438b5e1715368d8dfd32eb32706ba6d4c1886a21674936758e62ba996924deac882f033df12aebf6ab92ce9e8006ee0787e746208dcec7dea56341cb0bc2a6f06c36c900ec2181f311097487c6e7dae19dc35a385198575559f00e90cb183a2ff2974ce8ada8244a3bab4a31d7835646f50923468b1fed3f647ac39656145c5b498a85e4f8e374b3591cf3064940ec41382e781640141b20062d9de669019d88410d709923b6d3141c0e7050f04066379c095c532bc2c170d046e396120450226992863576029367583d1e67459a22c6aeec4ad8d59c510d9568f3cb26240298b06314881b803d0257abc364f1681e5c9fcf27d8e8a93afb1773afdd1da66171bd78baab877f41009b254e56cf789de81af6361b225f4253ca8a85008616b5516a19a74d55b611f6ad316d13016a03d983d4608ff886a502a1f453a19aeac6a089e7be51efdbc4653109edbdd6c824021c1409a66a3c549c425a98a116953f12ecb1a41e1d4c9b465e770a2520e543b1be560054085f0922169020f3c391fe82017bd2b2148b18466ae9925fa1da6df21f3815c76b477202e38cf482b2fc4c946047d3c4378156cecae7ba38368f7d5510f7e5a03cc4484874d4b7d99f0d1ec56f540c0de964995b4c61538903f58bdca9414f82184620cd1056c159318682b2e824ccb8c55ce04083737af9b8d680fa964b9679a21a2b0526a01b6be15729306f735a4b80ff2f35bbaf8eec2b864ae3a2c54a31ad7950921883aa2c4ab5ba18d320f2630414a216d241fb285c21fde5a3545670287ff21f526e7a840f4bd883a88e7db253e6187cc51190e5b4f8aa702d392660d2c4ac4d87033bdab3f9857da2131a83dc27c9e261fe746fc0e56f92570dcba6561d52398359cc51595e4b0089720b7737a4e891dab2612ecbc9cc62e72506a833ce2ca4e16044a0e23066415e80e684185c16431351c9f857ccec71b4c403ad25d98383996414a2150abcaab39712b3badc74bf3920074b66ab80518aa15933913beeeb9c5f513035c80023310d7c43fcfcf94ede9d041ecc1c2d7d2a25d6ce2b941966b76f24ca30a054127c336a7dc2f3758e6e6e019162a0df7ffc62c88f80aab80db01409613abaac99a36e1854449b0c1526694fcce60b694cae9d34fad21cd1318a96793b2dcb9711600dfbd15946a5f4630d6bc16e8b44c028fe322d542c00bec2c8af05392f688fa92fbb6bfee51dde978a1e2eb33b086f99ab0c5bbaee32d03c55917158c83486129050de6d5954168ec0bef89db5506384ab49f7d637f354a4536acf9d088fc35041cecc115e7e0f505b9475c4dee3c72a35276c16548f7d0fd1b53b2758f1cf9c6e0a285e22b2519781a2575a88560728d5d9417e2c0a06ff946db51646b1e17670f09ed3d0cea03eab1ed80793beea29a53eace5f75066b9600ae34cae5887edc1092a2e853e6600010e4b117cca4ef255d90eeb50893235a361886e1de221db0093a5f3e88ed7d0371355ef7c8ad7ad3e6f1abb1db1efce4519836c01a7d004c0347fa4b139f177258a773ca90b50a25626bd60981cd5e7f008dd5252f0bb7f5208206e23dd68d22a0003fbea6962257433de3c89853eb00a4c66edd229a363b5b75a48618225291e5cb6ac6d967d9e0781c846925480aa026c56df306322a4f75e5f9c9453d031b0c3fb8027fc41ca15f2c369d035e7b9e2e4a1ccb05cab00acbcf05296043289bbc6efe3410b4e8dac529e4b04b0d472420723e683d1fb38aa8362b46c622d2fef732c651e5f683c943a0cb3958ccc6020a2a1055e240b81697a6a5bcf1b9fa55a41bcdf864b008e1eafa21f2f12d09634dc6c17640c12288ffea12545b11e7d331155e38a9e53804281da76460fde848191a47e6bc2f48e083e97c35464e557a39fda8d9964e7291f0de44dca4dba7760e4d230d5878d2790a0425ade05f4cd953fb8cc191cdd9963580c1c3085a77612bfee92184200d197fdf57cbe9ecd78d646cdc8c0ac7e4081e8d130b3926ae88c300cdbe4a55c8ce1843b7839fba32c0bf36a325a128e637ea3600a25ae428736e9c03b7079d62c10be81c8b61e5a4ed4105816f99fc7992fa9e933023974e8e39909591738d1f383ee241e81451203838a5f4e35068b05efa3066717362b254061f24af8669e900d3aaecd0052b1e1674c546a7612689190919acc00f25ca4b816f4277e408f845c8664aabae2fe07aa1322364ba481a468f45f37e1ac00fc291172e82e671acd345814f2c585512237a14a80a891c662960b947577bdb5108d51a93d69711c3b20bc41ab81eb885967b0f651691e5eb5868a6ba0945980a098ee60e034ca9a8f4499749251084587e48b191b6107ca48ac1b3b6b42ab33935608db71ad92134444acd989eb5aac00507f27cfcb255548f8376ae9a873d98409234292c8990f4f3f5c0d1119cdb90cbf1b6b3553206a8a2faa26344c2664d27430e738bde74b814ce0abb9b1dc200201c6278f42c46d2f6c862144f25d744d660e36817da81ab471469512ad8d40222c021524581031024fed0903a72758d480af3d0b4a816a38af94604f63a379a543a3911aae043aeb1aaf94520e5cfaf901d8b13fbb6ade3b4e0f4098620488de050126a3ec98d1fa99f52e51ec6d1569b99841f83006bb31c318f492a72d0a4b47a093370bb1e0d1436180b595592c55a04dfc3c37b871502bbc0736c685ff9f5161310386eb3f0255a39e09a92960fd95f1da99b8f098a488a6dab767285765f45c733658e11afa0203a426515b32716d7daa5c4b8916402222e1c3642478b31477ed6ca6093713247fc8b8497b4690db28755e6a2769dbcd6e1a3260ffa9d104f9bf2ccd4ad47edca59d450677509b020f430dc07c717840a6a14285eb7ad4608ec6235fd889289fc1419e6daefd9a457e07c74c8eb84b6827b8b0a070e760d046be0d8b8444dde77250e3ba309a4fc2b114113f6b5398a08d33109baf25cd147134b40efce466260dd2b8a692141bfaa99d9c8ca2ecadcb0a295d232d09f87922694250f144eeeba000f26cb806ffa209a37eea8c0e8c3408ed147114f429bba4cd14b7a0a00d226d0e016c9fb6696460e82cfddaabf956be2bed55400cf2c09c1f28ff60e5901e3843922d9711c2409e74b9bb2037939cad6b3005121d2bbd4965161742fe69f05bd36b789a5c071e2b56c8b953340a330da8c11705bc5e5fed2e4980a84f79a87e2428da53e97bb25693312f9b92a792b5e3610fcd4634f342104a731c4de7c3519c44e86bfd4e0c48994f7a1b9ec33c10d20c838ab114eabaa1caf8d2a551f32d82d2c3f800cecbbaa5ad50d0c6e5ffd76f6d7328f60364a72f7a33e30d92e399284a37244475ef7c1c9006260a5c9307adb5e5aba64383133b2546af5b84eece632e0435fc0bc9b15e53b695b412321b2d0c042ab1e486f7e68f2f14e3dfc58bb2f18a6bd68ad31a09e9608b9cc633dde3e80f15cb5799cf7d7e6d14cd7b175b6e282adba5906c2795bf85124ae0d0ffdd053c1c5ba3d4c6b1027a26b96072406cc30cb80a66ef1df3d13014d71cc57c75af07960659b34abb09fea8ae81d4b301293efec169b3a78efc183098c2a6c2cd319907e4fb9979fa65dda41e88fee209165d8f0f5b82d49cac5ab7737c001aa63c60f26d25fb1091d746266ac9671df533d1081453d2e996b111d5cc210b03196a55cd5321c0b48c4dfa0c28625c87f83ce1f000789e3e2c3f9785f91e087e06cea8562beb2a5ac32046b85c3696f585c2f2608253b4e90ad5025746fc4394ae56474e18ed1eb986126046086be590907c2094e4e0903768305a0b4bb0385d97df6673707673c1dd1a6823798848c8ef9ffcb04f77f52d519c713a2d8c437c376195740be83f06315a6f8e2ae9574c427940afbc84787714f2d1929f4c665a827b04e3e26ca80e3600072123537c75dda709c5320be84dc5be2599d82791baffb06656b39209201a1f8403f850b6c9a188d803349a841bc2bd2365a6b3f735f6c8b505b7c8492abc9159116f69a93310980c0c7f196f656cae57c34b056ec11d4d11ef9981f75b4caf34b8e3389a50e06b8f14b4e3224bd2cc546435aca993d917d18ba015ebb13bd04208310c025caf1ba128c249382ca0018ae421db57cce6451eaaadc1f4c0a8c823e046c2904bab90e0a2733f7b63f4907e2697801b530c3f08368f30334a9132b4af653ec37848d36102a6ec083fb10229f621c40fbdfc0002f55698dcd77cad39b54a9f4886afd81b06d5d5aef86466d1b0b2be6bbb8d18291635c8c41133ab946db0f0749b0402b62a2323626c14bb9a95377d1a93262e0563b9623dcb4d09b759a9528aea1fde4c68fcad8c66ef4e24533d4808a1c17235870e90b5a88ac791a20bc09252c631969b00751f0269bea41b077008c32cf207dddd920cea6e84cf208495c8196d89517cd4ab7d977ec1402ed00a7881642b98c00b31b0b2a82ccb49547e4133d94aa8b41decc31bcec04968905828c9c99b6a8f13743a492541d1aecf0569f0b3f464f0b4ae6620226f964bcc2e9d8e6dcab14083a2cdb8798361a33f8135137e9cecc5e33777e0982c794b8579bb116a9db6ad07ff52d681578a7f499835574a4b2a85420e451b76bdae19254499dc22f43f2a10f49b026abef1575c50d8d1a803d9da1170905b6bb2602b38617d00f40eeef6944691980c890590de613f052b24a606264c5d96bd6c019111fbb8d502802308eb6d905ebc621dc6740c8cad049fbbdfcfa3bbe39ac7db03381442c8de7b6fb9a54c32251965056705720576c66232edd56c34ea6ca1d77017360365bb7cbec23e68436961c8813e1e1c2ed45e6b90b07fbf11538c1b7ff80033621a31d58bc371a08f03a9480ff7dfc8fdb60a055b3feb36903ce99fdde7394a45c68c986eff88a9537e98c2bd36982dd520b83654a77c5808fa2ae75f6e6b1b883bddde40414c03b8f114a4e56ea8175b702ddc8e8a75dfc8e55c42ce871672a024d829049b035f5aa51dbe5c3b0b887c255f3c208107071272b91fa20c5a1851fafb399015aef0e14413429c6802e5440f5213536130d4297dc75054d80f63e236a83d27c27e1c881bc5cb813a4548732d9d223fc4f1e0443ed35efb4ae67647ca8e5625f56aa5af584e85fd3c66d45efb60294acda0c50709ad8b65b81db79f7fde6832557135aeb3c1f409c77fb9cb8ab0cc815930713f0ed429f194c50b07723cb0e66a9097bb1ce4dd401105c684bb1caee7ff3610ed98d4d07caf4e0d7de995035f4a3b2635f0e5be7c23770317a2cd5d1dd7d25e73a02dd56da8f64676b09aaabd18e4d2ff7874a31353e840c993de505c4b75bb430d282b9db290b9f1b4c5e97e59e99405cccd4abd6a4fe6f68b802cd7c28150250ef4420acb81a467dbb4ada5b747490f36d327fd9890144bd6127a4d63e04035bac84ab7ff338ac97010305131c0cb20ec0892b88cc9cc1ff6c342979b8da40703d231a3db9f81d28365e0c598c04e98e9f663a1f460a18a85a2d6e83616dec648a08b9538504b142e7720e6561c688a2e07e24023e10b35d0620adb5618b6ad389073d9669893d9581c88e3b1b5b655cbc8b4173ba66025881eff4703d37c942c79c2efa0c64a10535c04d1e3e74da7e9c4154d11b6dd45bce25504b50a958bb8c365ee46e53a2637709f6345e33a263870612dc913fead6382c3f6dc735d35c913ae2a79c298142c631886d5f6b0b7a8f678c3565647f454509e4812f04504b90a500bb6817936af79df845ce6582e3fb6e96a14f1845f8355ee85dd486eaba6b655eaf25b54a760a16d26cab08428833fffc604b6519f7f93e994eb79d3b4ee62497001f1f6d830176121e9d956bc69ae0bc130ec688fb7151253b8ec2eaec3431185ff7b5b5deec4bbaddaa6b27e81034a296566ed051a231bfb538db647bb1c38039c2b99fbb8bb4b77778fcc1f2577b83b9160396e92bd0addfcc2d2a2eeee966cd56a2ddfcf4d2d5bb2bf56ce9764abe4b1fef557fd1c2bf4bb2bc67917323fde6a6f5e1d778e5f7bb17d6f788b0596c5e57fde9a2ea4bd96427a60fd4351b6640a3b08eb2d39d35ecfde62628822738c726317cbdc35cbd644d98a28ed69c956268435a9e1baf2b1cbdd4fb65a5106eeb6ec34520ffbc9166903a2f7d348e16de962a510569b00b6b21151814454b2c58a21ba644c58b0dc01dc688ab1c2154969a006a280b8f068ad745b83b9adbddce6d81c7356c4edab91fe5ea82b25875cd9811e052b5b737ea36cc8566677f90ceca781a8dbaf8192a5811ac822a9ab089a64754abb0f298467d83fde12bbfb99b9f8dcda76c55cfebf623aa59fb9bb254bb29a455150dde426961098152a9c49c5fce00305f8e307a13b801b7f38c1ba1aa5d44931bc2164e68713a01f4e7c2237814fbc225ca16f5257ac3ca93e663067c6b2a4e1ff7574fbeb487ae8cbee05f73cee06da9da6d8713f37754a3c4dd172fbfdd429920389cd4d20aecc4e459e8cdca4003a037db1801eb0fc039e01edf5634fb05f445d6e8a2937b989ab76026c8e54415e78922e4fd4e51973799e2e376b19263d30be5ace6bb80d462752eb0b6b2d87b3f9d7781e57c351dbfb0e8bc24492b110d829916198ef20e9d93c6b9d7fd6f9631d487a369dff104ff8353a2a47846599a68e4aad403ed8efd39e10d9929961cdd11c35a8e6c89adb6103da8034436c582ab60162f383fd4636a08d0f9a21363e6c7c8801ccac0935a146e4458424526a4f083b13639433eeececae31f1c03a4783c923fb6bec1e86242b1752259fdb4fc245f48898aed625d244f48890a40810646635d9f9de4f32739ba445b26aaf86794560602b17f61321ddd642174a84243d9a50138a902e9416caeea70935610b6c4b1392ac444c214da809638862886e6bc24c088bdd4f434392953c21d9c292224a89494384484b7ae88b98444cf264d304fb91ac444cfd4cb22259b13a228b82587277777777efe81e637fc72c7e444e152c17545cfe48bce43a5e388987bc54f292979a45041c265f9263e5bb4c9e8d5a6fcf2d7cad18db2083cb36128e8c0e5f2edb341932b6189dbe5bf633cb30cca46392bd0b9f63a5a46372fd8ccfb1a245130c09e32f92662d873342e90d26ef4287c38537f9ab7343c9cfe870ccf892d75c98e142c70407171e000f001766744c7098f12ebc0b3362649b0c8ef324249c189dbe9c8c183366683f43ebbbc9e0b418222d74e22d3181d1a92fa29974e24ac42a56b5ebd27a94949454edc24a4a4a28a73f0555c4844623559097940f122aa6741a8d1ce42067f18f7f42a150e8fa508bb338a8bdd108544359d8b0642d49594b755567eaa932514d5555652aaa02b9fcb223658ae8db36d61fd1837d4cd10ac5e5af2f59d28375b554bbaf7eb596be4d8c28b5243d7387d01397abe9b287b58455613f5749562dc9d4522df586554917cb3fee1f9233d1326201895e423c6ebf47fe7c989dbb0e85fe4640333333b73347430d8165f9c73fdc6269a151157790fe74d3d6edabe5369db9fd937bb2589335e764c1b0585a1e67b2a20c4d298baa2e15448a8548afd0a20c325e2e885712f1aa0167081bc4edab078e142c750255416129e7c09e740663b16d4a118bd55efb0c47c30c1df685dceb7d353bda2df9268b4e116807f6a3255a92b55a4b4baa922a8606611bfe916170172912a9582295f4385855a00a64f5cc6c352701c935a06f6418fc1d949e69c4112225464b90442a1a6acf595a40544555fce168344f1c31fae68864821ce4db1019a11dd99155d920f685ad0fb6a4cb1675d9c65cb6a5cbb6638ca3d168341a8d46b55aeba35aeb68c41ab1242b32f63956a8ec5876d429f43256b3b63eda634b1ab5674795244fb85f93f77390b3d0cefb396877b071e5aba356491dd520eff659d1e5aff7db4697df8aac8b1d591f2fd5477b275b495d1db5477f60a31c49966cb11d5d3bb223191a25a4ec611de4ae949be45f71aa885d2c283d3e41965d05733333333333734f2e227633f7b89a22ac04473d6e8bbb8151c17e1324495694219256dc537c401fa01d5d294783dfc8310d1d732c8a224dd49ca8d6640102e3295fb910577990db3f39c63835de660eaca3fc073eb844881e0742f4214447b10d3f85dc8d7164c56d1667e696c7619f3f43bbb4e79f88e2206739f90eb79f8783e084427148412ed4d5aa2c1710be60aed4b5ba845caa2b48f76bad19c2ca557bf12f54a75cdc3d5dfe53a75ca82ba5830b5543602f9494e10bd59b0f9d420bec33c109a280b8f4e4d1a5db2fb7b9795e1fffea1c74d05933ac88e2608fdbcfce2a59bea9890217c26d41f438290531650571826cc36118867e274d18cc9e71b273114ffaeb0eb7ff07564469da2d27c17071fb5b6c7f17737a08fb643aa81f071d440171e1212ac18c5edc638c31c618638ccc551cd8f871869ef18f7ffc2391b0f47b25b6371d94425aed39e860abd626c4ef180b8b6118f606b8d83b26310c932eaf7caf86cafbcf9216420a70e3498bd36de176dc94162fdd8d272d429703713f8c84cc81b81277e27634a947b739f0b664c9d90684e8b5dd80c0a3243d938778d23f89885e7f4f1e36f7cb4a9387b0bd0ed25e6bfec5731d1c9bb7321715f11ab4f3e5f0eeab5272b2733dc75d4c96a9dae321da76dcaeb6133e7dfaf491d933622437f673d67db55e5d771ba0a197b0b4fb3230726717439fb049bfdfae8c41c162d80b8e27fcf1ef57e38ba61a376bea042a666e3c6d01e4f6c7266e3c5141baf14f54882efd8e2bb09f7799c414dbbbdeace131a13181750c5c9fe74960bb578701f91970007df9d7e512e0f78bd617faa4dfc4dfbb87d2880317e0dc4b5e574703251fa362fc8127593ae5ea6e2accd7a15374686febd4f571678073afbf3a3a1c61afff7488e994efa97dd1714c7bdee4b04ee41ac9138e862b06355f7209ec673940ecf55f6bff75c8abd17cd17dd5de4d173b1682f5ff3a8caa0e83ac3a45f3f39bd533dd921f2deb544c769b0ef50a82dd3ed203e216dac981a9daa39fc375af1cccd21e83da9bfc696fbea853e6f671fe742b29d7cff911e6ceafe1840a40f78be1ce176ce41736eb227758a7d9c0c6274e3eee67af4b9a52e0472ca26c11458e6458c3001d835c9152755940229c056986e60c996078f08e094ed23c4dd1ec507b4b8c2b9a754b7ab2ce4ba5cd8db1243d18119811266cf4c4e5770c8c28dc022fff142205b104719e20a65ccf3f436cc3655233949a218fced50a20881e67d52bc43a24d616db982d2d18b79d941aa5760471f99904b7e32d11857fba64cd16d66cb91c9aa1f6d2e5276d3970d13445481185a60813f7d636da5e369616b27d3670f3b1813c326ba46045e152b87b8c2f317af40d6a0373fb65836aaf5b6bc9bb41498fa6fa36294da5a96e47f1c2dedd9a21ac742158603fad35bf4bb3aba0cd12eca7b5409ad4344d896eeeeeeeeeee6e6e96ec37b8ed23500b4b4469799cd1287483f9a1214614fa41e20834881e37c1400623b6e131a6d1cc41ad818d1185fee773871f421d2111e1fc8c58224a3f9da1981e2e68721f6246234e088b9973ce499b4ed953a6f873cbc0facf29432bd0a2b64981200a888b8987a804337a0141954aa552a9a44aaa381d0ececbe83ec02ad447ae54546ad4902c1982606f2a9554a9a44aaaa44aaa98f31f4745450002e828e249ff77e22426a9bab6b09f2c4995a44256c136623a05fbce62b4a081303218529565946a60045b2f5e038940010fd146e4bf4b05e3494cd22355302e9354c1b0d429edc0e888bc00e95b9226b98b0341f005a0066a5a9d425d402250c003942a10942ae9d1400d045f0082600a002d08126394514af9028d11ee7290577e0e726e45884a30238e3176d75081b09f83abcf5c620b4723559097fee983848a299d54543cef9f4b382215aa00572b1fb89a506225097e599a4a44e740617fc43a97b83d2ac97490ebe309fb796bcec97aeb8039affc1ede49217dd23bb07fb7aefd3bfca023245b73d47db7903bc186b96711ec275b379e805c7199aac0854b514a29a594524a29c7184bff1c8eb555cb589ab1d8e17284192a7a15951a2ddbe1e0188ca0070f2b1fb854e14a12dc922d23225de23655e2363d02acd1a2e06c6519667d749d2e25267c50ea946f962e4ca77cb375fb2748451cef4b2de9a99d095f9d097755fea0f19772775ea241b0df544d55946196220a15d133399c5952cd92ca5bf313b32c6ceda14ddad5c03f3b1c985767223b2f39137dd22fa7b07fe9089c9e493f05e9c800ff5115951914d05e83cc802f96a4c7978827fd3f4ab7a3e8072948410a724c71a9911d1a9056d24e3bb885993597eeeeeebf4a2022f0cb4c2157fe33f4b37757499e30e82a71f7b4027333333333337373cbf95db75652a6df3d243d7e443ce157620597bdf3514461d912e29f46c07c1f8d7a3492829b99999999999b5baedc5daea4c7a1b0920a971de502fbf9c78df85c5495f82ce122140af5c476848bffc0e37eda68ca39fde4e323740a5f4ee14b679a4e58983ecd6503ae25504a315063d20ca11942c3038d4b47145731fa93ac4ac01217929992d0ed2791216195804a7890b44a586e7ff46118866118866118866118866118866118866118866118866118862e832c78178158005f0e6badaf19623f15cd10cd104c3304d30cc1344330cd102c0bcd10acb3d00cc13a0bacb3680a20a1451a9f264f3442640f913b4629e79c93ce39a7c718a38b5a5d58fe898dd418dba34b77a9434a29e59c7604c6741a3326c7b320668ceeee1e6d757f6696927264a6d15ebb6398080b9c65b7709432c61b645986b1f449af8c6633cb3ccb649675465dd336e61eb62c0b59966519566badb5d67ac929438da62ba3d9ccfcaad775d52b9359cb205934599645ce062c2c2c2c2c2c52b24c59044de396ee31d4a8610015159f54d2f87fc1f3bc5366d46dce194d29cab35d4629634fa67122a1b14a4a2953720a969f6273baac564a97324a1967aba29471ceee93524ae9d1a5ac12eb8ca58c31c6a819410a4600c20873ba14a6dbd0c39c0ec4741b7a3082116ce8c1861ee4b3704b17bb692cd5d50a3f378256a96b25e7a671b1d726535275e3675545c52f8e067fcc5337e449df1b11a50bdbc550a386951cdbc3fe7043ea05cfc3b20b867e31b5ba565d8495b6cd6de35c75e3464a6e9bcd6e1b49fb41bbbed66aaba7328375a98008d86dce8fde8cb3021c4e9c6f01a923c618e79c735e53824f7f4e3a27776c97934ef91fa593d249bbd975f732c6e6c832d3f12df56b8c36e44ff7c901bf3d3e2638f00a7d5ea11d685b31f1e76bd280cdf5dfdc1e1da0d77d086dc6cfa0e1eeeefeef52769639f7054ebaf4350d1398af6e5d7a5df4a990f6e86bccccfc95d51ead578828b4766415220cf435b97132344a9f7e672b20c913fab55acb798c74e993341dd76d5ded5efc66a4fbedd98fb0f34fbc3f55b319e7faeeeb90f4c078faf2d422ddf72dfcc789212324a3db6e8c17dd2781b4b0e93e1973a9a6fb6410189d8fa48c6c45944d906a339ae2d014a526388c3c8c87d17900c68f7c5ca175a4e3011e46be85c7d1426782030c0fb4f0303eaee018f916ba91aeca931c303a499850d9da648bd64b59c42216b148032c168bc562cdc06dd5144db672ea5f5af77957461456b6fce32017652dac254397863ac52451d2936385be4c49b9a24ee29ac408ef6a1b217e74d145094c4e1802ddf184983984c90a94f3577e2b0304dbe597272082119acbdf20264517ff1c8eb519f06e77102cf3dbef147e1a9d2272997348d60441db00bf490e1ff85cee7c64fb6f24808baeb7a86a36e3d09f2dfa5a7ea487f370d539f68565c276270903e47631aceb2f7be6ba4c07b97e752aa5dba593ba8deb6313228aff27e512220cbe8a287e84951f234aa7fc6bb596b3751fe79fe52c139bd8c42636b189431ce210872ca065340c6358a36a36e3d09f5847a2ee7dde951185fd2449ae582d0fd595244959929e1c2bfed2243dbee22f554f49b3fbde4558db4fbc5084563e0d0720cab891c6e749c003faa4ff83e1323f03240eaad7c2fdaad70e8828fd0d88303ca0633cc0ed18e3f57700064494d64103b1091bef175947d0d0a28af4f40a3f65aecb5460515858ee06cbf5d8d579a0bef4609d07b2aff5ea605decaa3ca9214fe2cf6e19841669c8971fbf3fcf89dad6e115acf392a37d66e298e6b1f7ee86caf5330bf69a8ea53ed7dd90279c1c2b265cff06ecebf3d70e4712dcdd509feb70d478794231ba625beca5752f4f78bef4919d7f75de6db4b09e0d71a57ee46e603f4353ea5dfab63dfa94473e39ecc7e9489b789923322bb2f960628721469354ca8f2ebbda24b7af70fbb9d60fc4e00440d4600813f8808315990209c4134e56cc5c9112b6eae06147885042125b9cac58e2c572379eac706209d6de78b2428a29acc88d272b9080c5bcf1740413142e6b473833aecb079bdd780a42170a38023d456185eb379eae08723ffb202d76b1638c1d63079992a8c40df7f6b8643302000000a315000030100a8804e2905838d1b49cec1d14800b66805074563c134a634110a4308aa218638c3286000300200610a3100de924000d5f235f820f1d5f828f1c1f1d570c7a7da04b00ad834e00ad833a001d847ea8f48c4a099474ca09948b4aed901e41494709418948a946e81b2925280929d5da1dc187cea7cd87d117c507668128c51400b1ab0b396a7d8863932db0c330152125f98e05d8382eac72bf83d68e22dcbe7471600d7a74cc19d3f03a3cb9f6df89e09f90cee61cd2573267ac12881efa1f4273c6229aabeaf9402899f2e9b039632e8e4b480c13d798d89fe09c31a22b78385eceb63e736633524f2710131501b466bddd5e173073cf0575bf00bd082d6f3e50c8d55d821212f0fa1082e9efa503112c991bbcda628f2c4df0ad974216f6ccc6046d5f1dadb027068603b655d12bc3f514c66eaa6ed3c4ceb80b12b97383865fc059249137e75d286cd3cf6a9809483ddb2d4aca9b0b0a7f7567a144069c3c43632c7d8580b76a0a68d79cd85dcea2c42b39a31ac73c9362a9e13c46efbf9bacdad80caceaa7ef0beb2789c99ba3e784ac434e38930e2c5ae0fd92655d9aa85ed4309c22836b1d522ea121458899ea478903f3bcd0f197c7e3f22248df354d6effa52149bbb0f0e83f57342b0347b66d456222b143ac9e056652918518ca7240601802e40104ce065be1fec35d20a1c358ef4883310478d9a36d467ddb8b5727770a970a1362df737320ffd4e65bfa4a40235fba1b615b0c009b8453d703ee0c65d745812cd5b893a4cfb26f2ca911d98ec2c567f140600efa49ddfe8e5cd999707ee4559661e5792e02de9764e70fe879759e65a0875ba0f2e93be967d43b37785569f9af6e77175011b53a2edbea691b31786304b5e89b7d514f82fa7e66e71139290b630a0c1c007460c5e36371dc34b13bda842177ba322f9ea3a0dd69f72050032186a444c5478459fda783a913cd9d828e401c487606550ad9ab5a1746642dd06ba1e3556a9a470f995b6bef062859288a0bec2f50f4a196e58ed465e904f0137e3b8e99358851929e9bfbccdf8fc83da47fbf569c41905c6df7670d09f906b874b1fa8ca2e559ed2445fd174b5cf1a188686e9e5c100c2437001838157b9091accc1c7c354166b23bde6c022d59c720f840b43f12d185ad630e7cefcf27aabae99305484785f3e0719d81ef52a3b9e89cfea47269c43c9dc527c5ca6e42cceb16373fabc68ac80aad14668dfda38fb30afc9133384694aa5dfec1d22dfbe1ecdac41fb2c441f131628d0a2a941fd6d46196d6818eaa7f791aa65ad37e3cb96220657cea8ecc1fe40f569fb9c00f55ab8e100b778157587f123f4b6d2e207d85b4f6d34c1286c55d632958cd23ac90e28bcd905343fbc43e5807584db5dc6a4a4d406684e691cb3ce575073c940ee7814d08640bf958f88c92331fddf23d7794a1fb7517cdfd5629f4df3d47e743fa609de0a99b743a44a3f4a1f0d86d753ad8eb105e6d5de24b3c2e88fa29057b7cd19551a503200143d58be8680ddbde0c3a402738b53850dd08fc34c06894409b2c63aeb0a0dba306f4ed214034a991cc9bb23e42bed73c93f5abdd4b5accd4f41d327a04373049ad2fcd4043409af4618b404b2257291399efb390f697fa26348fe88d4c3d86c2ad1b66b2411889f77248e444b18b163e06b642ed0d2d29680b87d891f89b46e7633096be9cfd122f320342052f12c45a116197402cc524b86ea689bcc3592fcf3062bcbee0adf7cb2389aab3765a118c031d651364656b6dea9428f0896dcfe1d663db94b8bcc702177334638603713a6bb4d696443632b6e66196dca9440082aa4dff5ca5c24e6e745e807d49b19c229fc36dad28f62ac51d2282468dada440c00da9558080d72eb559cc21c8c6c76ada0e3f9c92241060fed5af96240eaf96b4e281454c9d2a7b1f17527a0f2bca55592ebe72a3b9d49c435c72c93503f9dbfc9b68043f53ab047d3189f8eda27749a37e855d2345df0d8f1804911dbb43a6acfa5168a9f3ab764f808427e097def3129db0125b41a1e6978dcd38a7a220ed035a2b2d33a20f34a1684790c903c54c3027133e1b52d5122d47fd6641a6d17a21be3521965a6a62ddc4fb0e30f26e7bf1e6786110c1316df6bb1b0dfeeb0b75a0c7e5054146d66a2ee3211da04a5a1c14a2fca14af6e364efda105d3feba5f4c131fb8d99c05f2f72df026c333c40bb4f32e451720fa6ab0e93342d483c2d389e06ab88fd236636217c60e919b6f0ac9a20276a9f60e9c25fbbcd4d24436670641538113098469a50eea6780394ad5463623ee4bf2ee401b5a681ae5de119ee2e7ac1e0502eb180716304ded0de8f8935757cb2e59645de7a3a897b076a72684c07bb520874485731aa11d38ccabc8ffc0d8c1f1ebe715ec4165e654bccd8299989e08ac8eac241ded3ea3e15e17299ce9ada158a7ee2fd5d4e7ea925570099d5105ce28e975d0f5240bde9738b1e5f1c21ac4c2b7d5932bf3cd2f1373b098010ea768f321a433e13c7b5bdf71701678819033cecdc050211997bc14a7cd60b2571ae1a14aeef33e9d5bc3f1b828259cac4021c637b7946509e7eef0c210025935edd071b331575b1d5fe68bc2e6a005209a822c81e8a038d24804927ab13b03866e5b1edf0bfe806408be29f95f06564f26abb473ef023743a815120612c886e048f38e61cea1c56c697caff52ae7b9cea1860f0e610417dc13a817d0261d9801050d94a205fc1b40488286f38d51b7e8ad18061e853cc87587cb56b00af6149725036c52c56b6983dcc6d2ecbdff4567135532f3057646134e47149accf2ed93689fda0ff280ae640ca52d3462f2c39d5391db0d1ad9d384919f2f44a0e57c865cd510199aa6e4ee846451218c941575238649740f29d1c5226d64680240a0051b633b274e830484e5ce9fb928b37bcd9f662edd6743440bfa3fe71a1245f812cf5645ea5adab0f0759fe2f5614671ae7d569228d0dec02a2aeb6cfbc3d88345d4d11755befc4dfaf498e959e3d67a9461ec769443e2d927347002bf841ea7bdd0a47ed061fecaeb9c9f663cd0860fd2902a8264400b96b35b84dc14fe1ed5a9379e38e417498e9746f87df231650f480cad48fc06cf26ada974c84b65b84330718660db9bb4a07ba91807ff9b3c56bfd60cf22cab066e87d109fdc0b4a1e58460c11e4f2d0ad57409bb5b16e5dcf0001c219b2d67d4398a05596863d6049b24e4974aaa037df24ca516aa85cae63d4f3c4c2b2a0ba94c9f021867fbceacf66b72887277627a93a6b408eefe1df667847723768bdb3481c74b3c3a67fd49fcdc84618b9796ecda66f49d7419410cb607e4b8622f692326037033d4d6475db6dbf10452af8013c967493807cd2d4564d321563d497a38b30c65032b7f173d55466f1b8cb4187f015672350b8a673589df1e56ac0f88611560d28c59d1313e3c10c148dfb1428277e0eb1722787e728dcdd617aa2f696431feaeced7480bcd889df65ab781d027c9b480bb5b6b612b2bad6ccc04f085850c96c939895d66c516976f1cc5ecbcc5b0880d718996c44a7624ca439f14ede0876c4191f711691a40aab2a2ae7d4f15384908ab3946b569483b72fefccfbabcb42963aeb7189c097eb9fcc04ff50dba358a112704528d85f8da11927aaf8746b3ad80464868a5d4302a6c8f482158464d3ef78441e9d615c0de651898730ec22e5c8c71034ab1acb0cc0b3f82f247050de38d5222b39ba8dd06fc6e3c5f9b749beaf5c73d7421dd12ee94d8598e47acaee75ef1fe4ad3b2d951b5eba2e6dbb47dce6172cc30d4b9e7a09290036c33be5adf8db7151fbaff2132abf252243c1ade753b0910783d8a9271227ea46f4fd10cc20fefc3deb91f41ec43cee40840a008973e5963a587e1edb12a73af1c03283ad6a291d891b219b67955faf6880c74d244cf62eabb3d2e9e42549d75f80f5f281c87db11056391ddc381c1892e49b27f4090b96240f69cfd21342f1dfc55890e3177630e0f697cfcf0d2d19838a9e4d6e9b52c9a16138b1ccfa097beece3facbfe105ce42e19b02bfb7b44149a5c099d5c3d70a5acdc22f1d30dd94642e3ef40d57a7243eb49d1bf123c79d6f5603378505789743e203cb71079006c9a66fc2de710aaf7575de913f0ad21dda8091ca02ff0b8daaa082ef087e35d5b27d130e97ec1bddf57791ed85b30dd8b518e5cddb1bc1e26f63d18dda80e5d3eb96664c3f24e0cd179186dc6f2604e0e0668117a0ba4ba442e10a4341ae39221c5309a08bbb03c6a510a7ec0a19e0da35a0aa78a96da6fc2989eba2fa9ca1d53a6a101a54c9ed809379ebf92042194a06af02e2d5886b45e55885df47cb60748bffd0f1bf33451765469f28adcb9a5d28655ed9998eb0e9774f7e2a6690f29afaff02a642520f65a73c4bf131a70be403841938d83105941404831ea19c0bf9c74c73404b88995e5762ccbdae443a5cd3b6d23fbea4eff269ad38540bffd6ddcf3bd6b976729956ce0a8eae70cf53df7e1d6fa32c2e4afac9bee0a9db79017bacc561f535e32bbf0a1569d2c7863c0eaf574554b309ce1c5ca57140ef53c192175226f92777d9d5bbe2bfc2673be72fdaa3964aca42099af6184eceb6776cec9515d19b63099fe7d25a149ac547ae65301a897eab70bc5320a4cb5c4cf92c1ed27635bd04685f29a599a196a7ddcba6fdad1213efd0e003f53b69f8dad2e46cdf492506ba796abb0e56e2ca44a5faada16ce36ca6c2ea5409b4559438bc7dd4254948b6f834dd3da55cc40fb6b2f956a49b69d3d0ea0a2dd10ca7860c17f984008ca47398296079e9e9eff9a4ba243c42933e07685049ca172416ab8c5120a8a9cbe75b1d70fb400fbc5dd2b0805ca448b11b6c12e6008cbc45140f615c3de468c8179aab9b251608cd9c848574fa5ffad54198b97e23074e6eaf03d37188b8a3d536f24d66e50b85c856e62f5ba4474f25d9bf5d0935604a8aae3bcceffda7bc90d2b57302aa9572811717dad5dcba3e3c72cd48db453c6e97e22bbfd65fdf03f5dfc4584a06f8fe7e3a02378c0917015a4441676c1b91abc1105a1c7d2344c88ec2f8dd3f2e2fb84338c306df9f40859be216003406b53b81ed5f336f98b151194b6b5ede43cb8374008040986f955aa3e39382b0887b0f5f0efec1ef4365a2e81d3ababeb97b5f96f63fa0991422be33ab78d6124156a633b91300ef4c7eb177199168860d74c932bcb4387b16ffdb0db4290546cc6d6d56c3d97817beeed56e1c6a077ee374821bb061c8bbf37740b559fb11ff4849181b452ba79188221fb04adf7ee84f9cfaee2745f087850c5482fbdb6d3e81b75984c8910cfff69f8a9ded6d98c4952d95a2cfbcfd107378dc5d704f2989437436038a08ff5085b9db247b0a7142a864922f5bb1ab6661d0c3108ca095df69773966c04b06b8d6e4b34012378c0b325a938362cdefa8f24aadfeb29a6e965638532467f25901c53a8a4254ed48b893a7a493272ab21eb32b940816139c38f0d3275ba66f335a3341679fa38fb31fcc393889779e638211f9ac39e4ac6ffacb51bf2cb24f547931bcc559252bb72ee6ccaec317b52bc9418d1cca10923267fe8fb31d39ec16d83ecd7b220b511d60a8b8c85d3f92afe10a8d83095a8c7e5f9882ccc96cc2593c5fbc082b9954d1dbc38141096e995dfc30699e93f40ac99cabfcca2e53fb1c2f1d874c920cd8da7498b44d660418646f89fa32f2c652f91cd570d0754617d021e8dffe7894450b8aed9d884935787fd4518ff78c0d6e8de0fa248a8102d8bbd326c8a17131fb5f1232de93cad254609410968afc5c966374b1320e46ecb14cc01e59cd5ee024e3e510d83e7d9e174bcf435b8e1baab1b4d4d303f01879ecfc7591c694173d1ab0e2edff2e091f80153d325ce496b68bc0615aa798ea8e20b8d07d7bf5228d7def9b9fd11fc3a2bfc869ed4387a9747c81f9e24c11cc0ddb7afa0d1c428b9c533473d59160630fbff33a6434856784ea31ef716a2bb5d6bf3eca1e18370175405841fb5ceb7e4a6dd0273ee5a0ea2c2160137ad691c7986adf7032577098eb9cad2754f34ed29d31f786cec28a2e7407ead6fa1804e40304f21bb8e5c2076b2fc9af658148113084a1007876abf19bc97f292fd236cd8b56983a401ba5ac42f5550ada2ca250268e95203ee86989bc3bd2657706b39e886d31d7b583b8db442d3f6d978856f5e15828ac5f55657c061fef954a19a487e21cd703a29d603c6c1f8966b8afcf32c5a10d542976ae15d6f427aa5b84807d061b8b53a046007e5e62484c9d4915e4052654a609dd05ccfa2c51136b1352739e9e16ed30fce8955ded90dceb611f3a5221d93169dbdee2645b55d0475976a5af5a54313f6b5051883c10bc358440dccf3f13a34a7dec808db4b0cf426f0762003b4d9cdd671949b34e7988660b4b517390cad3059c352e7b531d99aca30962bad86c47ea8938eb0a10d89f62a5d56bad14956b3998eb4639b452ec959699c23c0b2a59269438d460ee59f017e8a9117f0b24b5fb75152820e5eff03f4ef479f7a76d66de355fd81cf59e10a4286c8c28c77e8fe88290ec76f18dfaf6f0d634a955c8b2adca80429598f68254e113aead84265d719463cc0cef4ad45afb3a1661e8177c7da137a4412ea9a0403642b41e9d6742f9a220258232fbae7a3a71d023390057093a88755e41574c76bdf522fe8299fd9af51b964f5ecf96f117832d9a078f40c45a532d3d2a46cb54bdc034e661134958ecb6c5f0454db58c016406bf39a457ae498cbef1e2d6ce4373d58b58d20fc90d6bbb818efe435f2921c2223a786a691e3af297ded06def1090c83d68d18b9335d713eaf996b91ba9119762df7ae1dbe003835fe9f185900d28f4e1eda0b865caeea913a11ce78ef74469bbd07027ae758a18e9bb56217081a83f864b24f8637b30bab2505cb04ee92e16a35803f3ea42a90525025a90e0f69d6087e7ef441187397ea29666b07ca7e5f87a307ae3bcc671c3b074e011ac887d731c978f4c04a1bac1c2853ea240a9cdd04b3c237e25c5f6eba9f0592d4ea573e5faa3938cb8b7097d0d8dd8de90e641acd739df805a43e27d7f41b347e07ba8d36886f06bc39bfdea1bd265a84f3b7a914fdede1be60083c13e003016ff1718572de267297a96aa810dff53562eddf11fd4d15850eec4dff401cd9396ad2661c727e3dc89fe5ad37c9ee268f4eeae2a6114c337aed91ef0294637bb493fa6844d7aa60a982d1155fdff13b51b2748d803b0cf0f98a3a21e9f42b7dbed5e0cc28e0cdb780153cc6d11e17770b1be2b14dd88710889824b58b6ebe2d610ffb67021e42fec4f63c3a7eb6d21150df52a5fca6dc8a9bd700f9e0709b5fe5f78548441ad3fa65d384309443c34ba5119dc25bf612d061745c0833215846530aaacefc772f9b10b2e0f9bc099f13be00c6f2aa492a47efc03ee1662ee9fb110a78f69e0df7459aff31ce5e271ed4642630fc8ab949fa77958c3c2a1d37f5ff021db2feea69b018e47765744ae0fc6c38f0ab86ddfb26dd55fe29f9987c637f68a05f0f109bc2b8ae954503af0b00288e6b7c00ba83c8fc08470eb33a26d5a14f4f693078b7563b46506744fcea12925c54d229fe2bc08d81769bcc03c43c6c5f981ed190cbc46529649e177f2577d9f1ff815bbef3bc805632af6100492952455734dce41854a9b7fd53d48e5aafc356f3a9a22559a6f874f3cf1829978038a55a1e65233b6ff1d58c8cbad1df84b8fa15d98b749e6a606892fe7e9b78eaa84a8681716e9395dcdd27cf1944b0072b7cc3b5db7ea316e3a1d678b39daf55636ae254eef639b6b4c6e3bb8dfcfe2415f36b922fb91f12842b9160905a1e31d4a7f4ea3123a0e99dec8293704baa75a5214a60ff303158a0813a5dc0b59b1c90ba659159bb97bf78a9d17a1d9c6208e8b41d8b82a0ade716c27b71b2b777180358b8c1b1032e986294151558690b5d7a5cdbf66df4a546a92887509604a1bec53404eb5a32077430523a68266afbf9f985bda3ae4f4c31c0b999a6d354fa48741d94ff126c5cfa682298c0481fee8e02a47794e0479e99f34054481aa65779f6a1d4c4a61d7939e48f61c58488d424ac4d678bbd22226f22052460d1c267a5375bc0cab94038c838839889a10674731eba8a28febbed0388af1c00566b5e164b95e25e658669f43d4c181cf1cc821a2a42f767a14b6cf1cd849d08bbe1a719141826352efc2032d88032083d134a618180cc421775b7813ca6861b7627a3ce1140382b60cf22013b3fc10fc09c2d1c34fb289b95cbbf3a7a9f649b3cf0ce4b8c848ba91700aea81bfe62c3295edc033489d5a28242e144ce5a75a09a70f4de63dd07a4b8c6f24bd3151c2108d65407e970008bead3065f6403f8c71da39261d614e3b02f01c4829e94ca0520defdc76e7feb48722d963755473212e658ce1a31650d900ee67e90390b68e6cc0acbd542395c5e0ab062208d835dd95d5b300db2dba463f5d5be11b4030e410430d196ea9a82d57a88c72b488a65c06725d1d00a18610e5fe9927910cb50ce39785b8afd6441a198b364170ffcc2499b83103db681636deb9748abc1e2046856a645d9057aed707adbd4635bb126e6401e2d95e180a139119eb173ac138b9bf349901109f54d542ca0d270aa8056c56956218279cbd0d62544d06052646b177811045c52f3c20227b4e8515399468a3be7e65abaca01fa267936e405cac66da45a54673f5e5606e751b50da7dbbce15ea298b99fc4c0ff2dc6a7e6fb010ae7a90bc0214cfad07c85d80d44b653c5a4ad1115a97e30a7db09b4cd939c94f6c9061d700efbca531930e5cf1c2bff9899f46402bb4ebe284bfeea13bb809052ddc5b74cf3158173bc03969b8f7d982277c1a19b67550c0c6c23d47a30c8f79cf3e9026166f1b9b07ee40b3848fc42d9eca51a94a76256ed8c18d108f2c064ad10f8252e84d6dc892c63dd575d19436f718e0320720a70cea023cb2efe0d6f3d7883ebac8488a40c0abc8e215c097ff5504daf5c2185097bf0f5e43a0dd6e49b8118d5f01710370d16bb5f6db75cc068fb78c37e16c0169b31cd6df9196ac18d94fabfcc0f13126c442c60e2768a983672b6d8e9cbd75c2e2ede079a4ecda0285e0bb30ddf0209ea49db857cd9067b9081ba414c792621ea9e060755821e7c1ac60a190fd563cd502c1c1aff0ff53df6c2c3e1bfb9527ead42b3d55ff7a572329811430993636909ff5f661746544040f00a3406d04d5e9bc3c98bd8dfc765a1c2b5e9e9d2f5f20e30080e07135952c9fc4e184a9021282c1025e9ebd4de714527f64a8f6701cc15160dd18edc3e0ba732f41d0e1e62702ed3d035c18498032b5639e0a8696a0bfa941c368bf87813f1f7946dbbb1ead0e4b9b9d8f77ccc358423f96d92f6b7ae1c39c7eb4a9abb8aa8db39612a329d31b5915b036b5af73bfae2be691c303590cd0bfb96c0b6f4bb37df18072f64ec1c53caf20253745b8bf37a7e3016847d7e655eef617517277ccb1277c3ea58bef9ff2b84a8e139e8fa595d478bf67428b0f68f18860a8bc6092e23acf0f61ce1488d267ea22ec1d527c9d3190996ffcbaeef4198f93b81c44d9dd250ce912d6670bc6e478d1d41f70b387eaa458444d8f607614e97026aab287c8f2b77d30a95a4e6e246cf8373358db046be3c8c5e1cefbe94e11a3745164beeee39d96affa5e8f2123b9728da74980f79efc19658e74493a5480b0ed10de786253d4c63a43b11add96d8f6a0b60597fa0c17f31568800e0d21632d8c11fae9ce4f214e57f23fc2b2f08de458af1230b38053cef78ff0927c7824776066ee3ef4acc4b5b2e3604188ca7ce6928633cba5f6585b065715d6910b9f01b4f91bab7d06d14b4046046a1b2479ddb46790aa1af61b93de5aa8994a774df13c1c3e2e398c2fe23e4dba703c26e00d9845e82a3da6ae109c5c382d55866d41c52a8496d8acd7212f9a969d5b606faa661735712864418a2b94d581088157c31a040960528c92e0b5be84a88ffe3ebfd879c3e4be9c83084813ae18eba15aef2e8c2999dee8356ad6502ed313c6963c476b830babe2559762288bf5cff938d635e4a22508ac96421b9782f30b0dbfda0272b56b7aedd99ca5398e897dc8666aad9e0a347d6ed34f9945486b9e245e341305e319971e64135adf3c4de05171e367ad6c18f8f666da71a99c9126df5c2d55af5ddc29d9edafbd0a40b4a817ffb2b5ef4824ad94e4816150d9934b40d777d226272cb7a1449fd484c16326ba70b68d144385cdac149356879f933665160b8355613501e765357cf52bd8f2673d652df77e97486ea00016294950ad22a58658addf3fb0df0f1aa7578de2a451c802bc8f060c4b69f723f5e560c5826aadb8ba8f4a5dc1a3d294c5ff3e73018704b118b5ef3a8f9ba1824a111c652619065b5eec558a70b0c60a091e86f0c06760d6ce30e9c7e9a8d566005df51ab8f6fdec2dd614b40b9a198ec8bc58ffd4f316b19865441ea819e7477b61ac65fad80bae349378121595b082b01e9d646e5446c7e4f5b75ff7338e6427e7c660089c1866e76fc660092014c1659402c90e908ce3ed19fcab5cd9adc3ab0f8cda85a6dc37e10086cec4c52e753fdd2590d5b49439387eb00aa2d6a57e54a4027c9bdf4eb51b078dd0953791a9018f3a8d28b156b981a6a1cca910257ec41a4fff796661f3eca265f5ed223489c2709aaa09657bfa92b9ace08aca097b758f3e1990bd30fa49ff09a1e76c7451ff710178d3b30b180abd47743f54d251d7cd2be7ee9fc7abd1c500a4b6909983520be8ea6e43572c4db66404944f38778240e5d8675aae607d661d8ec631920cb9f30a62a6caf9171a87b8c170e89d5bbfb42d7d01e9efd060afb61a45dc1c3339b25effafa677bb8bca50b29ee86b83e759807c89c3b81c5d0b2934a2c62e2cb0cfae2a30b0b270c9ab00494b3d923eb6c0564757e7d8be7becdff6baeac0ef5fe114b06d1e7e18d2b1d6e09469cff21a07471ce3120823cf4a5027e2d048953f526b8bcd436a2d935904252aeadbbdbe38b32e560f5d18248ad8fd2044b574d5be49053266233c87d10591dd40ccb99a5499e46f5111b44c38e833162ec737e40b5ed393377df7108da9dcd1c54e9034255ab113448c69b99aa8e98b082b5b4806f3ca82a50c260f3fd76bb2d465fc8f7278bac79354384bf06f805c563f959e9ced2f9565e871cf6d09af088b66514845aa230191e9045ecd05cd600f4044d63166409b833041932c201941ea1a89da591ea2b13a070ad6ec95e86825ed019181399c44e0433be8a0965f292c9d896db65ac495f1c566744eaac6c868e7fe5777e78581325e590f9aab32a278604839a7bae634a2cc076a09de0d4c17af72da7ff2c30eb801ed70c90fe1db2b6f91ba53f7b547b2fc7a6f55fb5eb498a0d060786449bffa99b27e3e2d383a8fc42bb0b64102823f1910a0c234853ef11e90042381d548aaf027829d569781c5ecc6153cc7fd2aace32ad71ded9ce40744923e8165acad2b7336a652a347ed9233f484636977d924861fc811e2213e4a8a8fdf28f760eb8769fe13de15fe809ac2c425fd3460bc4bc1b46508b9aa3f2b503114a87e44e5d4ddd955d87029632b575643128fac34acb0c2ff3b6869441b7785d94b8b5eeb570e7a4141e989fe31e2e5a531a284f02975b2e9556e4b4982daec94a685782d4fbd46c6f26f2da5cc5482707a179547986acc4c67519583b715679153ce1205840ce6e563192d8ce3eaa8d1d3401fa38c87587351f69305a434a1d8a391ada4972a0728d2ef78a372e8a21fb67a1d6a2267c09290e396818f04c7f6c9457eb00a61f1740a7a479ecaf3abcf3665ae46bb63c3f0018b620e4ad221e136f452ac1666a604eda708c601772e396cc860a9741b17002f14a2e083b93a427f51873bec53a2a15859256be4eefaa01615e1f24e9a92162c320ecad231ce4751fa5ca13a0132e72fadb459f8665b09edbb8e2c02faa70fa41a461532a15e10d24287d26d9596f03fa35a8432300352c158ce42221b891785b23a58bc9eb95a009ae481b2a0c6cdaef0f1b8b9f7e68f1084823dd42c13f18a73d54122d51c8e8d6dc2418d0255211d793e2530478341242a50f7ed6dd3756402f261060ead3388bd0b66bf3f6ec3985dfe43272233b40c446f283468ef48d61f319394dbc56eaf6e3c7bd315a235333cce7ca637b9017f5f8cb3e7b546051a685312f37535e21f05f1dc2b6234b8adba1f227355e7d2e76ad3097fc8557ec2fbee2457ebdf232b51dc9f6a0dc9d4490c483022374e5804f1099c8d68af5fa8cf7435ddfec54e5f3c86a96010093387a1849bf838b3989e20bf8e0870676284cda702bdc476fb12ce9825e11e825892643c93af50ba30ce89ad165193355902e6a3d3614ee38b1230776a4697dc528a86980f04f7b755341c4780f76185c246fff80475c97dae63f2cbbcfee084550e5aaf31eaa5ea2172de041bb04f29822facdd164f4dfa817e27799ceb54dc455debb0b30ca87c969f68af996a72a85d60ebaa799b34cc43ded4f312a7060a0bd6561b5094d2ffc1263596029747238a711f52f2050e87cfa37782b66c3c22b681ab2c45df54017c8bb92b9bad8eca931014e644dc6882d6566b8ad7f367849e568d38f7dd7201b598d17434f16479f79de180ad32bff269b5037eb5173135752e59d23eafe37b650b1fbd348a29fe5968dc2083708e0df361fd66eaeef97d252e600d0b9321b77b870626f77d0808ef79a1dd282ed5405156f8759b3e0259afea5e672391a03c18afdcc44f8d57c1a9f1f5349dc246ecec95c464ef1945979e3b5e2e830e69f0cca49b5abe834b7114833f21dcf85be24936df214a817cb5c54360321051a53ce2d5c3d6abf8652c44e2f65efd46bc730523526217c9c4f488b210efd294a3a0cbe5dde370fdc7de34d70bde8ca46ca2ced9758b49f041026cf6db89a06f28bb3ad2986f3aa29c444425ea22ccb60e71446c1a3ec51a20b6cacd202a395665e2c0fd693dfb72c1e6584bb225b20b7e40a682c2f0a27c1ee4a8034406eb34f036e63ec9aa8b642edb9e599214d75b7545217a276ebb5cdfa38580bc4a6c653a59ee565d4da075d7c257f8434016107debb041761aa82e152b2f46254d510fd54c4d6d066ca64f17338e7c37f218f44c17263ef5bcc67d6a5b219879c9add2a69da5d078b21c0a2e58650e98ca70106762298e3c0eeb5c577b88352679b8a7953a456ec72d9f170f530275ae2ffa74539c2176ae0352c14d113f6f96c29b2224e65bc94d2cc253185e6d671a7c81fea240c96fdf36e81a0d2c8f383e23c47ce2633310d6886cd0b11124f7c40cee8771b1191d73ec31bb5195ccc25954c6f48de3796829b77dd63e959966d32bdd39a1f6775c890f2dd7ccac2d8960286f220e9e31796f9efc4a880a5c07657efd0fc654adbdd33eb08d0594eed6c896ab0053d98faf4add69026011d6a00a439aadeaac48031daa05c092d88316a47458fbb7fe3578c42ba213bc8553cd9f3b4e8e8958513d7f804c99d6f36234f99ee29cb8f19665287fbad6fd457b5f80b553ddedde406a2547aad275f8de24e4787fb22425bebd59ee127b2279f8547e4a6b9cfdd6bb8252a3a90042c68ebfab402969c0c7375b233301cae68b57058a9c94375ecff2c7086690b893405f5c18e9440f0bb78d5b237e70721bb611808e80281f13565d62e1f86902117a58f0d4321fc24bd2b21fbeb67b82a28ec326c48bbbad3beadb798d40439416445e38a1f52d98ec0c0f288072050a9aa8e58548066051608777a925bbaef11b81611c69404e15a3b5def4a776e6017c852a75487939095626f17b78a14c941bb9540e294c4a52c8d838a690316423ba20f0168499318db7fc7770e58e7aeae272ba03a8fcace6becbec81394e736110e09c2ef15d4e5f9ce19e38c74ca73cdbe52415c35276391a5f4a79bbae8f2c3abfc4c82ae6e8da7c9b767d37133c132456227be3df2e3add3e3bc9f538cec551bc746ed82b83ef47999b6deaf633b419e15bac1d68f6833910c17092c70ce032f4d77ab775feb22dc582012f20e071070654299075bcaef1ae38e0950cb44775d9c2b58065114f8d9d62a6802a701214542f253b363b2021602f9d708e9c8123474584e43431054ab387805016b4fbd89359a024bb1c2fba25996edbd02e102f4054bec758c59d51b562d6a08b0dc9a4ece8802732af9971fc483f9f730d156f4cefaa8ace49b5d026f275c6fd2ba17105764c5f2a5cc48e4279a7fdd1a9edced2aaa2b4131849267d83e643beec0625aa7f87f50983aed625e64a12ae706f8a587531fbacc7a7391c000a28b326312ba6676f923abb15b86710c3f7ae8e5efd8faad99cc49b0a993a02992113f5cf9b81ca440259af2a08080437b98bf3a6fa255deee561a8e88d1b0c199d50aeaacc0833cc6ec533f0ab8ca5e969f30e7f8509744f8002eeba9aa8cf20cc48be8118a599c9c1522c9d85633a23f8172c0472d568d48e326ceaf6afba6ccdfba20cae1108900de508f46fb75f0c3a0d75dc396f6d428f9109ee02bf6502fd4cea411bf6381a7cf16ee2d1ac282fd186d60c11d1a404d4866020bd330bde4c58db044acdbd0e73511dff78d00243270d405e401544a25353083611ecadc7ecb58f415e0f4f6c9fa6642b4972a3aa401e783385fed004ec44a70d609967b1ca0ddf5da1064799ddb11e98aa3750381c8e4ca02598e9756c13c232a7660a000d7be6404b5f792ac0f2914c3fad430b91c6a7920daf0e07f2100043428df71a12113164465f619926ac3a6bd18c8865e9fc1b22e9b2ccd6178ac5bfeca895d9f6235f4ddccaf87532d6d5d85ad48b8aa3caca7b90fb80c7df0891309cf91e56ed22be3ba91eb0d28c77d1076abba587b76c3941ce3eacac5e331a9702a760e9c9222b5a00edbb9005d4a1eee551d5b9998ad15ee5b40ee0f231ccd80c51d704d2013bb26b70d3da1519c6af39ceffecabf5ea04b569a7e9cb0b5a1f0eaddb1cf68b293a79f582dc3952ccb993defe85377a3aa41bd69e4cff026b215049c089f06412c051a3fb64b2f0037c405e474e511beb6d8edd17b3637919c42f2379e29d6cfde254275886c8f5da3ed084f1d49e0550d010158716d8714fc6a5603c51f0c9fa82d810b5d556c6b62c6944da7e746b65855a4a5781d233561dd6b2826d14806249a68580b5900d279e9b75cc084b307824259c176088b6fa3d2b5d972d8a81bb59f07b430c6d086f5d99a0493b89462acbc0a9bca0a81ddab9801cc4aace7232ca58c7d12f1904ad61b79669bfa5c66a5f13ceadcbe8f3d31b85c868c0e5afe4808384cb62e66dc584346107f39971ec3d21dbabbeedb03b7d439e906a5f9e5ee7a72aca2eeddbe637df01f611a622dc09cd5dce0c5cdd3d87313ce3eecde0d80934c780549b2f039e3ec2340fd57ec9d1d037e11593ed7b4483a064468d526523a9e359d4ab4332e26244abe72b8a0a9a6c4ccd536fc45d1af53e08e8ff68d2f1155183bf7b7e2de3ff29505cf077d082fe874c602ece13882eedf872bbbb8025c3ba2512a4c35003c6303482a76e2d1d7fd8e394bffb4b599a79496412e04e6e6b124b697791e8880c977ad268f2596c26d071825d4576592110daecbf4b2c2c47fc26308705a0f67d57328860f025eeff6d90003281fb825e263a3aa43e0ac9bc469968ea1c5344e4d744a0465c665bdb300ba2d36bdef27b1f647ec0d3336fc0f3406ed2f24deacdbc0c36fbe4016d6b218b02927175d64e7f278e544741059846d08d4af925b13d9cdbf18bd5b79adcacc10085353b5ce1ad6707005dd946485195dffbf13acf735c5b096276fcc34b657a33e294e85d4ad33580803051b09c031f42d5aa49650cefd830e6d4d2e22e47b08e1d527504363173315e6f7774a0cdc4f4b9027c5a2c8d0563e488316e5b83022a96166eb9a31d82e952eb22321eb4a7069407d4242149cbe038c6493f7e3c31ff4ec2868e8b9bdd571b3ef8120084222640ab9b6867e9d7c753ac2db496cd805c8f84a8bd7f58f47a098d4d73b2ea43693f42a68dcdb3120ea62b946d70eb4c49540cef9a5297389078d2678b0abaf3f664c6186b5d98a31669e249d103a5fe5b00f5d9a76a2a86fb0f995134961bb389055617e09fcf8dcbc024946447f86b154d944441ca4d4dba51450dba8c59114c3b93b999cd2c9886ae96f57bde80a8b2d689ab689ea67d70aed31f3074d984d034d4b803ed8f53707ebd6b40a2d10b6d0fb69301a8f443263ef26a20da032bcd40af611698bd38367874c7965940703c829332114494b189dc34ef0e6691674b3dfd06d7888f592362cf49487b441436c850418739bdf2913b650d34ae7fd3aa3520237f268e57b1d53524a31b7173a534083021888c2ef6448f0c32dde7d477eddecb13692715e5dc208c9892db3458e10ee16623e8d4f5152e406629dd06975ff10df549b91b85ba626d97ff335b4d81d9aa45a6e8c983f2922072cf5dc31fb8f818408c260f2232b7e1b9d20e82b9d719c3833d264c9f851db57ead8a681f66282cc3d177c25a452a2e5d927cdcb52d3226aefccb63a7a81ec0ff8ad2a064c48c09d0f61d7b04fa3a12c3a36c53eb39cfa6065809de2364d29f468492f4d8d1e53fe44130e12082ba863e1f7a94fa128b9e4cfa8fb101da4998bbd7c0787e4c8fb945bda2a45648db55f8bc3dc6fd92f544ca7ea23a109338bee1b2875a5d9cfb0c870c602bf3faec860e5082230d39c3d5d89713ce1135eaebf1b4602db09acff9b788c26278581d88c74e91a4b562ff2431f454d28f060abb7f90112b305ac32dac0f161353197ed5426895e3bea5295fe52d50ec01294f1b1b9a6281e897152380a7a8e971fdab82b267e86a758c0f7e851463d7d1079cbae446bc126e4d6375df4df0bcbb78dbe041b9408b1cdc0da791fff070022fa8daf69bd9006e88604346170e1204ed864c22e501d1deab93ae24de4267b07fb77f11d6397c580a240e490249c6a687919447bf75cd9ddd19a81a43b15854071d9925adababad84f8a2d2c58fa81fdd8515349c54cca7dc9be99a06d3639b8642492fa8b859866a1d9d5143c70add3211694f23077503cd8577568966fbdd364f42f632264d85f8ec379498ddd0f933170c4ef9dedc426b8c786be2b389421da73cd629759b81909cf7c6f1f3fbb9d2e0f018780b28c48672f484ff5dc2cf50832f536f258d093538c9f10055d7b6e0277c380394f02e6bd89bb9c392ce2516befa227876ed558556d989bc6a49740335aae86da6668f27acd852104a84c992630b441aeab24f347c8b6223cda08b14acfe516eb90cfcba3b5e58813b7b994e0d2d8bfef945e47fe0852bdf38d8f108beeb93ae39093b099e363559b3919a752eb1acbeed7b8ecd2e1104ec8ff9955ad03357ef483606e98cd31c07fee8bf9f27e2e839e236b7eaa2413bd73bffe318b0107e7b20b07f10ea8ab4a66e9c31121ea015258718c8fc1ca7cf0b9061e4c3ba2c24e574d298488e81c4e1f5c84e9d1b0ca8403f53fd46bc4378186a6e02d8b8646b7abfb05d8b29ba9ffa9ffaf5234a16d42cc5aa83d05b795ae6832ec1dda9a3a1e498299a8ed3e03f091c15dd6473e39dbe965b9f0cebcabcd963ab9ade382ea440f2cc60cda2e0d275960ed10b5ddb84431423e1fd50f355f7bc29708e4a1dee65fc45945e52e6ac04425f5b0c244461743442576bef1cdd7845227df9038c4840a1b0c20f758cc415c07477a54441b12f1a39cad3003fedb6c11dedb9d4bf8677a20e9ec1fd869528f3c4c28869dc7ca832aede7da04c4160811ac8ecd9b54a563c5a6063da59ab890f04ef57a866ca80a7e96b53c2fe9a13ca1c3bffa73250f6070d2fe98dc54c317973067cde4b00903dc0817aec2012960b6cc4523a8b058397f929ddc2574b8b26219a0bb6018c8d997c1ef52574c194ca86887837f1e8de516eebd8dbb5826eeea226d12844b4c90c3838c821c28115d64b789c1ba55758eea24ef252c921e091a1a2b9dea53aa764243d3a8087f7059b8df1c7986f5eb200d8d239c462516735cc0ab5762487f7c380b2e2a21a33eeecb97f08be45c938206e55d10b5fe24a5d5f10b948f53cd7350fdc051847c60105aa962b2fd931386b760447043cc85fb78a570fe58e795855d54928e8bef656404360004d3ef181d508e5231e6717e8aad2f3a1598b63d1c4c90e0a6e28d21f7181def9df1206255541105688099b3599f45aab4996a3c82c7982cc9bacbfb1c3148956d2b8d58afd4a7e99aec89d8ff9f4cba545686e28823d7d6123fe7f73b499b9114476b4acd455052bb458f5db6d6b279d288f0ccd73b31a470cde53e23b3d126c299a57c529084b951b033c6a90df8cb2aaa9824c295972b34ddfebdc620b2a0c35515815ca2dac3eb1ed61b4b7a56028ce6c7754c47440adeeebd69dece75d12cfb29baf7821f709cd7fc286481b743cacda4f20fcaa8daf565cb22ab1ea1694111e60e79d7616ba7c4375a3e5a82fddd7b39ca54b18db07effd87db2e7a43a6e5dfe0d021ff2dd7b68a5c9afb2ad2230bd5232299fb2aa41ea4d3af8f0f981a30ce6aa43ec2ad8034857b78ee26906b96aa3aa1039c60ef28ef4a03905eb1c9ce71f59f172dbc39bcb6a51ecacfc51e0e7c0fa2a92af42962f1663a5a5ec4ad6bab0a25c2a18417787aeb3a42e40c0ee624b2af21a526c77ca9fc1858da959f8fa574b83f21391249d466555abb0ac4ee38d33026e5a4bf5091580a521bc58a66b5da6c3fd8f42bbc5e576724c827af90a5a842b49efbe362143d33dfa08345a00aa8eb096471fa053839b06899e33ab8bd92b8f1862e263745b7087191d90a0bc0af364a814fc38da416ae0c4f0a6fb393a9dab4e77ebc050d4e15fc9ed410917746bba169b3cf54501256be94b397ba12fcb4e088b966041b65dae4883c8f28ad70c8d9771be9b560d7f782318c43bc8bee349ddfd2014064fd8dfbbe823ee2c28ed99cdcbe8a18ebfc3568934e59cd97539fd5c8b756f91c25aac4f9d54d630df57a3b228e39bdee5d99d1d9a3c8ae19bb46b42ab8dde11aef14473b20f30cc1b4ebd8de11e16a6afb169548a4d0ac4034c1e10c81680d8bf6c6d724b2d7d2e801dfc0b6d3052a4efc3de6ebd08ae071294c4a8a288290c78c388dd4ff80e8016eee628e444d98d1fe808b1012af7ffe37060857a49e5c297fcb907f28e46f512e2df163f343ddf4c0dc3ed69a691c8aa865f4553c432379a36bd18d5e99479489b91f87a6c0f42cae430beba2d3221aefc679d398122e748e1463909bd93b64d13c401c7d260660a36bad3b50c250ac5adc28d36f11b258b96ea34cec92ddd216d8aeb05ba530c3542b60939fb529981763eee5aa511c4303cd57d3ce5a0fd0d22129d7f564de7aa7a097427d3cb20f0e91cffacd1f76f397a81d78badee359d916c5258eaafd87acd8666eac0200b0cfdc302ce18dd0ba19099b5a11fa2b053f6f63836e6b61ec139f8f31c35e84dfc420d6d72912c20ff960ab6f73a7c4187c94cec7eadb47da4baf5b5c61461e43ad4563a3f38477cb78404fe83be505af64132f525f33cbcd2cd5f2b8fb6b4d95e18ab73c97d933b1c9f572a2c5d9503c08bcede304f27641ed69be9bba30df6ddacff749ab3887d6f6a51d224607e74a9da6d4e578809b67836931e5a2ca8506052e7443aef2ace8d2284c4e41295b11d61e3c0b189412b30e5f207391abdb4e1191cc723765f99f857bb37d3f85b71a9e9dce19865a72e8e0ddc3533aa7c2bc99ebf8b6b2c15066f5ac3d3da16e534b021d9be69f6613308fda4b2637f1f13cc50cc0c703fb37ec340c67a76bb97b0b30dc4e3f858d2d12bb125f8ebe188ab679ed394dac3c6405c8f21eca0c4926c9fd38359d04cc8f683e36c933e392c9b33117a5e9998004cf6d1641cdc4404dfdcdd0bf02727c87a6afd854df2786850db429914afe4ce21435ce0a2d149cf8740a319cb7a0ac7423aff6758b19d0f7e67f82de56ea93949aa790491ad32e1a51aed7f2cfd4810a1820e663c8b405f46f87402192462c0511e3bd7e6679575655319c67aa1b0ddf7c8ea11a6fe8e0a200f453d8a3879015809b46127d0deddf37f737210602939374a26c75d3c9972cc379f7c7f72072ad30cd3d67e7cb04298a07e8d5dae17c066357e5d338fc3400e36abcb40e9d30cd85a4ce18ee3097b3b49a6650be3ccf931a4006389249871ff1b2ff46999b91ef1ba4e2412550aa447b53426d4bd3baf5b1156bebce12f5b02b8238f489b7d02692ee0b33f4933dd81787ed1f751ad1f8b2a320d5987373a8e02cc9a3c9deaf40750981f3fe5fa6a51418909bac8e0d7650f991084fd92fd691dcce692053ff69d38ce9c6b2e2aca299352b0d7fbaf3cb12099af2b2ec6d4be80ff96bb2b0b37473ae5fc476774d7e7d92fce4e2d1f576fb9f7791f03bd7c2d29a9ea322ee4108b2aa8ecae4e5b49189639441626260e451441751e9eeb1361b5edbcc9a1506144ba217d52cb48918d02332fbfda50d53b1785f64f146640075b7de95f0d3a5a5876ba41709b7599dd694075fdea4e5c135bd7fea9b4a36c9000e983e74983f142291fea26bfaedea0f6cb473dce299ba132ede26a889aa058104030c39d25ad083434939d4af4bd76f7d936f98728410f2a03fb7c643ec9a5ae8715e4590c2aa1a7ce1c0702a87735dcc84798f9f1211a9bbd113c40e61e47a9c6b992a2b727c60c81f560aca5472ce478aa9309b02c00ddf5146ed8ee1697e400cdbb32df36a295ce45f0d90139c8d75c2b02cccf71023a538d5d77af24d855d65bc60abe9f188316cc7b9f01ab1cf71b52f76acaab9d883afd3d742b3aaa67ecdc0220ffc2726da0bb9028f3d29ec21b66adfedbb3f3e151e365c4fcd6d7cda5bc20712169b77fa849e9632a29abd7a121c2a42919d6be6a7eebfd7813f81ae93ed6ed2e371b5da8bead859e6fcd4d5374c14f27b130e28206350c3d1140bb5a59ec47c0da85a0cc279df4a252fb9a421a6da5aca935952c87760fcb800f0e58f624ddf183b279be716a146e322565347f29380e68b41afeadf0b661405b72223838a95d1bc6839604c35226396adab827b1e1b7c8cadc3d6da62f761551dbfc04dea57b29636521eee3ef650666c335f88486654b33e4cb79ccb71c0b79e79792d22bbb13264507b3d9ee8825b786ceca014baab83f58e57eff06c3f64b896f44b104c8e68e63a86528c8a1092f42608f1104cb8c5a2d5b28aa67b04224885f362830b299fcc878b4f86b825d258a1788fa5ac84fcff6f38379e8f3e72465f90a327341f87043458b194f74d595e4e6427b1a9c9c9cf75898c9d1e1ff296feb03ef68a4176e5702e969e892b3ce14ba7d50107047ad7d423c8878aa16c37589226bffe8e2df07c0f2bf3db5184d255b58471fe262a9533f16326ab291f50dee6ec08398a8cbcace3ca24bed93a2e0207f8eed4a40d3013f6c1e868e461f8fd7b1525c9083b8d2f135e756107d5af24aac0db11df9510f7bd06f9c68bfc8e6ad39c943875223122678a2bb5919d8d46619f313b70b26342acbcba9ca1b0240561e5ecd0275cc2ae78635cfe8825c6d26028ca11b30895d73680bb7dd2fc4c7893c3d51894f509b5a6a1d6a010e5f429351fa1b1700f1a7679173459ff233010ea6bfeae19c1d5d68cd93385aa6234969cf0058743edfa390f2b984200e5b4511bc1775df02242441de7097c2c22879cd0c190ef5d30a1284fb40330f827bc82bbe9f55ab6cddef8c89cbbce870bae84f6e8c57be20f5d4cdfd275df50ababf93f841d8a61795d4968b7b3bf610421c8744dfea4bd1494af59d74e24bb402548af97d431f94e5849ac1a9fe3094e93c9763f6855f79c36371ebd6a088eeb0fce259d0351308b8125c66c50df979f53f71ca803fdbb612fd48eaa19fdddf3596c36acc41779f1b99e16deced4c567529eda88054a7752fc5a685810d0029131266808ee709c29c29c2df9f3431ed83648047046d043799808dee20d8980567e15900880de046f97c04df89f73f79f38422ff77c01f447036aa436885720da59a5032dc561f24315cf978774e2b7a39ff45a5c13efcf1e733efd65171c69971e1e56e665502d2682635fc051cb72dce8cc5f466641648a1ff72394c38f7bd741412eb1a40cf12834b27293bd37d9726f295392321f08990894081f958f4af751f9a8a83ac0c5992c430f9e1fb97cfa172ebc269bbfef27e2545cb5774f070b9f5eb888c1a72b5304c5deef27d6ccf95f50b7b4bb811590f5491096fffdb0f0c7023c25e51cf02dc16acf4d4d7b4ea6e807bba64dfa9a974306c758137164b0fc6f099616619a6537c61acac2f2292873c860faf4cad013e3a49452a5721a09059b2d9ed4c115ed0752bf5ffb24fe3576a380b2972ebfc9b49f1a983511135318528a43184a71f79e4de8cedc27cd6650e95de72af756496fd9ee3d650f54aa9919faeeee4dbf5d8abbbbbfbb7bf3e8974f98b0099b99b161430af58aa7cf8a73c82f42634296cd70974d4d2e5de2158f1e508ae73c4273c82f028729956063236569494969fa4c9f69632365ce68c5ca1362524c3232a22e3db3dd8a4d9f3e78a4a5a42d9b9092d275912932511c387cc997542a29cee44cb4622d26b377f088639d8cce69c37e4eeca7fa00f27524cc2594f1f8899fc0c56e79771fb14709012ee296ee2f41893d1dfff6e8ad499cf638c28ef5c89cd5c644f7ee692d0d6cb65cd81c99b4b0d2c120963444141f40aa30c59290ac6dc2ca2849b158e3835d62e71216b1c635959c26ba8a9c48768c2822f130994c40898860db32616d6cb04dd462dad430fac15deee334b38acd6148632a31f110439ce0fe206a17532516b94b70872a6c8e4943dcfd4a5f220379b4cfdea63ece22e27be05d61dbd09f018b026b23e4b1f1e5476f87888f4cecf3a314a650c1939ed7ebf5e38a36b051dbee06d2a482602710f3958364c386164b703f8e9fa9c1c5e08836529fff675431b3b521d8845760c2fd346c6aa6869c5625c59e3a60a59440f369daceee8e1fd2881e861a5c2186447b865c8168071ee2948c0ed1e8a73566a2943446dabfd44c51d85c6d6033eda98d946d23f9cdc4820b24a4c79c260b9b63d112eecfd1810e6951903f3e34748526d28914fe4dd42da46ee10e924141fda45bf1bbe8473ae9b087da867e073b888a953f3d248764d85268a8873a0cbb83e493a01eea16076cf6a1b641b89b38913d16d64f9ab0affeda7981e311a2ef2ea58c4e93e3cf77f0884d11acbcd51d87aac38ed9bcb02fdf3fb471059e90068ee984b5b14318d2e8a2140d2f9c4c6c56a9626c2a0686576cc2c012ee4fc2533fce64d9edd25d4a97ee59a6655aa66559a7b2db3506e48b0334b0b9f634713c1e78d77cfa6d03ac6de8af32b0b95f320a9be7ab739d3e32fcd5b098e5994c7c1ad661bf624d7f4ef792dfc8fbea57bfdc35efcc5e45aa6c6d1644b83ff533356266f6a774febb2459ff4e55b1f993dcafaa43b02566b7269bdf0692a9a3bb1b49cd18638cf11ee9b05d0a59228e3449251c84fb53441c913c312ea594524a499dbabbbb747ffa392db39be50b37111888578e5061b354924addfa577fed2453958293ae38239fd82a7da44fcded93252c8b1edc2f97d42e4632c14d3a0481edef17ced207afe4c74f425244daa109f7f310672a4699ef1eed90f5dbb1bfa882c976ae7509f777aa181a29faaa6f1bfaa715d1d5354dbfbc40b01faa62bf0bb0b002f77f679511162fbca474d3aec6de04731f8f7cf94341c9e51e3df95274ab093ed2d802136f2c3a8c9c74c8e9301a724e765d548423d6e103a36ec520e8c0098e18a5c368a85b1737a1d9c7ec6a51348f7d576cae494995a629463981a2c2278a0a4ab5b8821b0b4b70df231668cc498935ee4a53a638277b36ca93b8a458e32fab60b3164bc2cef957fa85cd9e84fde7bc5accf164c2660e09c963b1c6639c5266024ebef48fc84a1d6017bd3929cd3eb0111b9fb12ff618bf2568c4064fb093362b78511ae5479b3b1c553106ec1ede84552a8dbee9be53dd4bb85313dc9fc5a6c9ed8486309c6bd85274d83d67acabbdd55f38a7737a2a694d9d70fda07f0463ff0d56fbe6eaf66dc4a67de00e4bdab43e2775f45b4009d63ea7b589e38cd9e9b353e3e8f58d4af00ebf165082a3d723cb4ab2cc45bec3e9f7b7f772f4d7cff1221a9eb2c61afa5f13f6fbdb0e2d519696f7c0acc93c799e159c745d9437248c3ca3f8d3d353fa1a7d4df59d15a060ff4ea5fa18a7aff5e5d2108e48c0d1c80a53302703e8e5e8fe4800ba90a6931107cb205f62989971f9189ef79a12773d1e52d3406f87f7da476fc6d3c0979717199a0c50e2199af65c4d9665327ec60c564ccccb5319d9ff8ba6fda6759aa681fd2aaf077fed1a2171f731bc1cdd7fcfcdd0b58fab54d66659f62a6f0e75987dc6a4549479817e138cd7833f65caac74ab29e2449cfd8bc7c39fbecb8346489c63bccb6755603e2ba2bd52b7bccf9e4b793c2476393d7de9f5383d7d0f8cd8c5dba1c9781558e4377229d76a33af07c6cbd15846875f5e5ec6af3e93311471607cf6930611a7fbecb9aefbd5cbe81e0628318bd783ea3bd577cf75d775aacf691860c4715584c4da1b3171f7457cf8e5e5bb6b84c4da73347448d80f6f1f23099ba7ea0b36cf1facf2227e8c3852fb3ea23c4df532c088dd2b426219af8146482ca3bb39c6779fbd3cf5741491f131aeca8bec5737c770d22dd52d126306754bc6f554df793b62a86c3a19717214e95ee5450ef9458c97cd0d9b43309f15915fff3b8f87b743562ae389a2521dd2af1dbe680fe3c60e514fbf5bf4763160cac2f463cc3030f530cd1da694524a1ff5d1d3416f767aad03236e019f05b460ae4764ce5480b34781b17bba05ebd612b9e4375991cdaaece686e2814df0fcacc86f3215449af93710c2f3ebcdf60578be9615e1f9dc1d8222c51cca6460e5b7cfacf3a516ddaa1d66134706c664d76e3eb0f6d4880dce9ec699a94425412f548983a3a4944ac7f28a222a1ab582d81cf7a19ca09cb8bb12285ae01823288db81857c4b062bb2084a007ccad6acf61ae51fec4f4798476dc0cf4e35d4106f0e36b2e123b809ae711c23777ef42dd4c1fbf27840e9f43901a6a901cb84705d9de0b82f29e4748879b81827c0e42d410e46d84a8c1e67984b89b51afc3cddee7f027207acc5c24b5eea071da7a701b0f1a1789edc1c30eee22d1f0cddc6f3d7e8248340c14c409c8e511ca08c833bc0c1749a521c309664e1a33dc4ce365b8482c9019b69b5f341e0fd363e679b8486a0f9897df7a6cb3c7369f4788c7cd403d5e0620333d1e06880c33cf23f472f3f62ff361fe7491681808081808a81808088d0a6447ea6100e16e86f1a78ba4c337091e21eef43c4208b81908c8ef0082c6cd40b07701f9192e128b93e011a231c3f308a56ee63e05e3e6d3c3f81cdf41470e1d1d7270e11c1c0e70030e30fc1b60001e078ce10d0002e06d80372dd006e952c0d70063f8028000f81a4002d88034b44b013f003086af0101f0344001cc00d2247197022e8f507859431d7a002e4b8a0efd650063b84040fc0c0800202e8bc869fc8980407e08d8e38580407e07ecf141402097f5e334fe3fc01e9715e434fe175c3d08caf80763fc0c50f532e0ea59a08c8f0163fc07aa1e05aede03657c07c6780aaa9e035797d5d3322e8b49c7b82c1fd56535e9d0df053c6118309382c410ace017502302cc0935c030403f0112485be0149831e103262a6097cfe922dc027e871e5ab00809064c27f79b9c5dbd9b96a6b26dc300d67ad08ad0b4f7ff6dbb471a6bdab360dd62f5746b3e11761613ec2c1fecac26d83fb37eb0b39c60cfac20ecac27ac21ec2f236609db2f1c715ec1561f88ab2662e87f1201f6e79cc0fedd09b0bfa702ec8f6a01f6ff562fc0be82c59a8823f6217c31ec31f3aa7a00573ec01fc0a1159844ba7eb0ffe003e82e1f6074f500664dfcb8a2a7e36305b3c2fe155f919680fb19358d7f451dfaf700a3cb8bbe22ec4b88004f27d89f37af7cb0af60b70801ed8304f6ebc2fab70d58b0fe2f455e486a42f4c99ed988aa5a89539464141f483186c3060d1b1b58ce7c873247fc7e29f3cb06b9ce88cae5fbd2529251d3921117a06096a3264d381e998009b6c1f128054add910f0f16008e472590f2750c67cf5201ebe96cdb6641896b8b6a0a5bbfe6a09f5bfe48e37aba398539aee5394fa7e5b996daf25cd737d3c57df574ea472f07065eaf171258c94abc7127b07e87df47232a6c3fa73b4fc77ee7e97c6f41cebbaf3ec78352ccb5802c5f59fef374502c8f6241b1a02c8ae53f0be66a5f7a3a2b7b79505cbffe77ed5730aeea4b5cbfc5e559402097bbaa37d561f6d1e5d92458db7da0c4d67ef47458c022506f9ffb5858c0fa9f8ec6a80936b680c4730a361fc119f53643a52a8bcddd125c51ffa9f087fa6a6f9618f5f5338fc709a3ead388fa0eb544b7a45ba8af3f3d9d6ac1983d0beace0e43f9e40636cb58911c92b19311921c925248a26ed9cf4e9d84f54d746d1fbb25e40d89b72ff23d77921db70473df815909ee58ee6a8788595e47c42c77d5f24558be3e4bfd963fbd12bc81b9c3dba394bcf0d7c202e66a41efa38752823f100318051ae930f71b98e31d183b8cd2dba2c7dd9811d8fada6f9bb6c98e796d9de0bc465f8a3811c7f8a0166b66cf299b684c465b5882fd939c69c2946ae06d21e653b627752b57257f7f9fc202ac459c7e281c28caef785f13887eb9e47dcdbbda91aef9d2356f12a11fa2eb880dc42aaefb8a555c3b3ee4168e4a108463e0785482228c822b5210c3f1c8043c2720c1510aa8c02c14905f847f71051b69bf14f01efa85e5a580df150f89fd25f69b75445cc448ac822f0562152c3f56c171a6998634240d4943d29034a4d7905cc9955cc9955cc9959ca691b42267f2e682b4240d4943527a252fb8cea1634e1d4f67c260b4a848471b1afaec1336fbcf0fb64fc4a6a6a222099330fb84dd2aeae6909ea4d312fbb70ebfad3501652ec591e05520c1f25781db9560a46024e0fc1fc38eef55c456cc22769f2f9b8f35fdae2d51b1b058f36561f3846d4b5a934fd1a4c4b09da66716965342011767327d617f6e09728ab6c27530614085e291a6434e0e136c963d75b381cdb207cfa6d7bc02eb79c1fce64f91be3c1918c1a3145f45a9eae8044b5e86e291cf955a03777e1b3f3e4f605491165880c32e48801bc431adf2414565db81516532e2c2898d1e27cc22232ebe20e5cb59d07538bb91bd70d4426c83e347bcb5b6de9afbadd6caddba6d1fb3125ca9a7b3f520bf629c41ed6787ddea5efb186377719ceee96c13476f47cdde47759a88b3d76ef603db4c3ce02ab0e2115ffbc68e638541bca93fc46f6ab556a5fa0f434d4ac139691afa43c827d556957d55f83129cc3638ab6ca830a53452ea3f56125d39d461f6034ba5d46cf149810a2aa83842cbf4ed24418a37241bda867e229cb520dcdacf9c3f68f2f414cc324da3e006723c2790e36af57480388d93941a993e1ea54027a51c4fd3f812e6b6ad398e4e2aa2d7afe33ced722f1694a7b9742e9e8e3f8b2761c0f074ea73744e23d3e70a29b45c91d5ec8a8813351fcdc7699a1ea196b4264df351b1997bc518359f54b7657882a797ee93829d722e25b992f60e026dff793ada12a660c46e05eef529d9ecb1c8bd62cd77052ac6bd5e1167c6e76034a72a2d8646352da3599daa6f427f341f1d8f693e1ea3284a3d6a3b0de54d16169b4ab9c0e8703c9ad6c4c1b85787da6a89cda825eeb5a4058a0965a55b3e1127a5dab816a58732a38dcba0fe33ccee331db68753104114b0807dbafaa3b52955cc66533077f798ac199d465696640c381a5901023ee168b4c594a2ae8a27a67423e08ededa942a860a474e14e1c8891d1c391174e444088e9c5022d54515aa9002eb49e1c060c511984cd191e088c9133afd88490bb2232628c08ee3111313e06c318cb3f286c4387800a6e4c2e1d554e452e2e262774b29dde386a2a1093f78b936d072025ff020290966e90b1e2425252525c914e1ecbd263b9f8b19b83df574b070a621019f9ecbb2fbfdc49ad3293b7d9fae96d4adede60a489cbf1f2dc6c294de17a658335f98f09429f20e70dc47450a2902b60e55faf21b8aed9f3e606da27d965f7d24285f1d36fd744bfed42a41ad0bb1e6664a6a50179e742b6b4d75a85bb9f2f8c81b59e27e4983fcbe99a4a1bfc276f4cbaf3db7f6e45a7b2a4cc866fedaeb98df1dc1fdd21be43210a8be067e5dd2b549d3380527aeb0da436ff5e9d06b5025aa419f146caeb159ad983556ad88d2d4e195faead02b4fb7fa4ec755ec7c7fad0b11277a52e8d58a0ebd7645aa4835a806d5a06e1b6baa87c4d12c9b71c61833adca8e295ab992f98c82003b7b039362436c1793b10e933a945364940efb7b50945599136b70f0d8f899060e29582b8d4e690fb44816b3d962997da5b16162567e5b252e766b7aa5adc437205b5a21c6186f8e31c61b3bb4b15114ca489d3ead94e2e9d3095a1176d747c54ae9d26972a60e97965c7aae043141c6cb6589f58f381a7d6109532e7f2f4447f01728dc136d68d3c2e697a0d74b90df44977f2f2b2d495b7041e92a69dad0cbd086386d481b7a097a8122de6cefff121471e4ecedbe401169fcc5074d9146defc3205f6bff985062f434a60f7a0581385cd2d492f414320f7136bfce94b10f697a097272f492f555ea4f85e2f462f432f482fb197292f44d89f4ef91a82752b733f1fcfb784fb8938fd325e9b265f7a3e4897f69c46a4116953c418315858368d6836e9d0ef64929d0948bbbe945d4929e27c4a4a557a9af44d8c97165e68447e65e9056332656b44ddca9f064533d294b2e0e24cbe45d8817c8f8fef46a69114e6de480a28014f6345b8d73e8b7dcaf674b3112398fbe8cd22dbc7ede736bd39c19c2aa2bdc4415b18b4c0da6bb48bde8eb0c320e0ce0f01853c37c1f01f0c67604fa7db2fe4a5f783fc9d9741fe07cbbeacc427d473d2e351bf7b20601220ffe37b80497a7c90e7220e1b8dbe80822366791d3804777fe2a2d75dae4ae783edbeeb5e7a2f230d3309ee7638feeebb0232bd01dcfdf3e8ae8ca1f7b4fb77af8789658c682cf35cf48e8e9a31e316e158e6c658e3bdd25f6ef6d1fdd373fe32465f5881bb97a9d22d4ea9c3ee72555660f30a96e18893e1d3f51b213e88f7e85af574e82b261d8c13d4161626e8c26443b0427c86f939fd7dff958ccc3bcc8fdf24912e21eecafbe812e23d21401b04ab019e9179ef673c473d9d19d6dba1c77ff7393da37b99bbe2d115f9cb55f9885964564e646456437ec3e33dad6804862bd87f055bf5742b46d08a6805e5262631c5a3d712ecbff2917121ea5686f97181d2ad9e02e6c763607ebc21443e8897dece0f1fc49d414e0383e74f87fe035c01f9f14a5c41c01590201fc4077193cc20afc4e56391b047047920fe881f4fe4f30a76faaf08fc1f44c0d5cecece471710e06a4788908fae4c09db3d37bb1fdd0701a38b931ea5a38af02addea6eb7c0f797590282abee25ee7e08b8eaee57e4fa8c9060573277d53bb0f7f479059bb1a69b18f59cec8280d1f5038c2ed6cd1d461561518445117e82b5ffbe68824fefde4e7f121f2fe42619f23fdebd1df9497af89d9b24c8bf7cf82382bcfc1fe0cb873f62c8f7fbf05cd6edf0a17fc8ef80f285801fa4eb582cd6b33ccff3be76e87df458dfb1bcf7ae4b50872e0352ac29f21be94a792f3d1f36ff220f4c6d582c49ecd2715fd1571471a490677d8c373bef7d8c373fbefb186f883c0c2237461a182f8475b34ab57363a4f16eb618c6ffb831d2c0f85cf147c5761f3de6a78fdf4817e70592cb7c79f18498175f50c5bc20fa86ba9557b08fa85bb986e093e283327da68f15981f989f2d5c885c88b8a064e3116905731a2e6c6fa987f98a628dff8cc266989f0cf30dc51aff15cbfb6f4ab7f2f4e9c054872bd6cdd198d5fd57f4197d48dd7a51fa96fc3fa6cf8aff77a56fe8cf6745b7a2d19529d8ff8bb1bc6efa742bbb10617fcfdf50936ec523b84b51c421723182797d43350411a78da4f0d783f6df7778ba21101fbfdae91ed403d2c3af76e4fff81ff708202f3fba727c82110701a36b08185d30609e2cc09ee44938af6055860fac80dc56309b0125e039ad030246570f30bada0be7bb802c58873e89d07e7ecb91c639b4677916cce5fda7cbafa4186265478a1f569e74e84f88acb410f2a45b598b6ecdcb7242643564b5d4ad0c2464b513d4ad0c1464a85b19e8c7cf2520bf5dd64f0c53b732508f9f971504bb61c9017a706092e3739b803fef64c6fbaf88ba95c3c7f1fe2b28ddca01f81b45ddca38cf2232ea5636c0b3a0ac907678ff95153ade7f15cbf1feab283aefbf4a9279ffd514d6fbaf9462de7f5565d5d4ad7cf336de7f75a55bd9866fbd6af01400a6c3921c7a5c4cb00faa89f7d339a144ddca04f81aa0742bd3f036ef1f533480f78f31aa79ff18a46ee5d4fbc758d1ad0ce3fd6362ddca2fef1f13a55b19e6fd6392ba955731534eef1fa3d4ad1c23a64ab7b22aa6a95b59004fe3fd63ae742bd3fc0cefcf7a752bc7f032bc3f8ba75b19003ff3feac21bf49325d0a787f16ac5b2ef7c1eb808f016586f80e442de03790039168413cd88021e01b6088cce318f2370c39c0101478f30dff43700c31404c0386fc0c07804464fe06111c1c1c6efe077366e0102182f33c427ff30ded86c7b9482a8e9b71ea101c37fe87fcdf7c7fc6909ff13c4237dc0c34e47110c119f20620826380e711ba71f33f0ef7e6199ff36003643e860891984b042472c1e71192b91988c8c73480480370dcb87f03f807781603760a90596fe322a93b3c423bece8d841c9ecb06edee163760aa003c5809dff866009b93c42d9c6b72e929a515fa346ccb374bed6d7b848ac15f23c423137dbf8ef22d162be1c5fe322a93bdc5ca3eee8d8f8989d98989b65fedb89f99e4728c7cd403baf23a4c6ce17e022b1350a10f339646efe5ee7590c68dd6ce37508417d77915421ad4e46084b880ceb79846cdc0c24e45b0c4009f98e01365a32bf03eb75bc076e3f2e8f50de916bbe868ba4fea801c5e570f3e67535fca8b919018fba48ec8f9a1c3c21ba1f4f17e005b93c4259876c536b705d241da635dc5cc30fc0e67984ba9bb1b6e30770915404dc3c80fac385bffbd1dd8c7afaa30b13d3d8b56511fa52d2a7ef58ca2d7cfe71865b32e79cb3e7ec25dd9a50b0a68aa981cd36b169e22f216fc8065536163dd14c64959884c91b59151ca77f944b689fc92564956682b3efba3923850d1b8653ce25f1c6364dfce96037c5683e47df8609f68f55ab1a0eaca570df7c8462ffed66bf35481ae2534f477d4dc61ae40d269af56b6d87c30636c758ad397e339b267e8d296bfc94787e7b3ad341db212dfaa4f081e1a3f229d9262c0c6c13f6051606f6052e5b4ae904927fc7297d9a073b2c5ec12e9bb4606aaaa2142549c90a242845eefdf18372bcb2a753653373f7c13eaf947ebb7bb22876064b383255c17909b6130821064f60558794a5eb30c3510831a8018c8b31c61cf72bdb6b175d74c1c273da68a54bb418b34e4527a594524ab318638c714e4ae79cf3e39cd3a547ae6abd553a299da739e7e6e9c4a794d249e93ccdcf69b75f343971b426416b123589ce4bc2a35c12944b824b02f56919931c3972749102a58fb315a912551dc89b19ab44734aced9a507d19deb9cc3f3562214b8f712b86e1231379e8dc743f1a0a60f3088219d37c46729dd5131ddeef6d9169749fd8b25509f12e06161716f99d497407d4a80a745cb34971a860c84b9b8a452297718933a0478a84f09f0c0f074a8bbbbbf4cea10e0a13e25c0c3b578818b33b19de3baedc471d2939528e6b712d913d02344c4269ed78b33128125203e62410c497ac0104a5c253a6d2809e33e8e856b21a2934a18512c168bc9198bd26127c57888ed602dcbac44a793ac154ad354a297b5e1346dd3d2e2d233ff34c2d0c5252553312ad57c87d1ea2a5125d2b9809db142e9b0898c5422dccf9db88d4371dd4f4b1439dc6a078e37aa563525aa0e989060c2833d1c8f48d0052218c1e34312335ea7b2457071a66b6cc40738eb1e9f8296be5f8bfdc345fcde9f113b0c462001152e8e465d10054d5411541d7bbd5e4e2c49c2fe4c68220aecdfd994aa8929b07fcc2fc1fe33ddba013b08aac0fe346c9a60ff1a36b4f8b01f85e00bd89f876e3181fd81740b00d87f4810434481fd1f10811e20607f23fe4428810980fd314084fd93746b4a9e6e89000af6283d3d720456f0231250811d853d08c78843e70d4cd072012ef874000b28184ac213fe01104c9b830f9cf8e087075030a1410b58ac682207d3e51ea357c14261a1f8a8582775b332b031b03965a1b0411f151b64836c133516c5b7b181d215fd460848ffceb7ea63561f09d7c77505f355d64d4e535f89aba69e38e18a2e2179fad069ea0b01d9be81f49f6e1295d3d4ef1b9d6653357d8df180ed2bb4f5b6f56fdfabecdae8b0e6384ded9a2dde408755b1b99bc0e8a23fb2e90d6c1376729f7d92d36fafc4a5d18fcf813e3a4bb2650f64fbecbb2f90ec4f3749e6eece126bbc5eedf667b1c66fe20ff366e9ed46e054b36a4ea3cd2cfbaabdd3c838fdd62c0327a599539fd35f94529a6d5258f953935946650e6d34e12f2b7fe62ca359466558b719705f3157a5964d4ae7742dc63863f4ee6eeb3475566db3c257046edb90d4ba21a9da86a466344eef28a9a4799b48366f47dda2f744b2f99f09694cc18403db12058f0bfb1da10a96a50757d8ed069d147bc2f1880919e0fc53b013c7232680b01702267e7498f0395a22c83e13a212663dc5604dc0fe9ba7e3425d0337ac063109571acc58ab138e603850620af68c8a0772e083230f3419e1488920bce0feac29092d1ce17e9a6531844e421229d802891ee0fe7e0e3861398005ee4f1d75800a26e0fe7702e378c42305f7d3e8ef8e35e10e0217b66f6c54c216044dd31a06f6c3f1e8c5a4bbe2e5020f0b36c3f1e8750328eca02b81ed703c7a0961899fa30f0015415b62411c8db658eab860637034cac2075cf0821658181c8db200658a2c28a1038255e16894852525985e545818381a3131f172c00485ce929836713c5ac20111a8a2e020f86831836587415f828b33b97b4d2dc8d624ea70fb3cb980b39f49903711f09ebe7006c359cfcc820ace3ecae9049cfdcc7e22c14646c06f265296dd5c330eecee293a0d6a5e1b4e93bd771c285dfee29a48d944b2e930fbf979122145d724f21b1fd90487709aecabac55b3c20a8c980dd25c9a57aa265b392ad5e8563c02ce6260138d764c2224ce725cfaec7df8cd679f6121e3b689b46df5275213e5e99b6884a1ec67946e45a32f98e06c56c1d9c72c8b91c9ec6396fd56b5ec331bc98433cf5ed6bf7bcd3e3521b39156955282cd1f56a9a415b21efdc8115caaed36b175d5db7cdb7c11477ecc9f3818bbb0d33b7d069eb22c8738cbb2ce7eb4f6bb138d9dde5a9507a63c6055331cb0a7cf3ecb2598c6a507c31d58eebb0818e996f7d407677f3ad98f1da69eb3d97f50acfd94cd3ea753609ef87473cbdb1ef6b3abeaa17ef69c7dd9883b6c638dcbb7b7437391e2e9784f9960f3e3b8c9e8a82cbbab2ccb69540dea737c3b9dde469c98c2a7b71daaa2b0271a67c4f93eab3cb222d99f9ecb40fba954cb3592c2f6e6ec8d90d83ecbe7b4fd0c8c9805b41d525587149498dbbaf6bce74edfe956b7abece9531fef348d635ca2d98d11bf99ae087448735cc2d406d3c73d272450c0040300471f9cc00966f99cd66a15b6887cdf216f91ed6f916d72371b3982b76c6eb8887cfa526e3ba2a4211f81e5474943d6009659099679c3da732fc1683f6bbd9c1898070953b282fbc31afdd6fba6bc215fde88d8519ee779de47efb381f5bc1b7978ff7d4ea340a0969fe00af5f35137078e9deff8660fdf9da8467d7b3a311dfe557518733a3382dd3eaba6a703d482fa0e5c7d2ff1f731abcf9160bfa14cafc7175d87d1a5a36a874d05bbdd58b799491afc6bacc938507bb095b0f56ae06afebc32cbb2150f09047b17cb5dcd899d0a15f6b6f0297d4a1f183ea517a64990375a2c5bca824acc09d893c0b2bbc33005d780a35118823027bbd983fb8f54f0f381c1e6eab45bd2e1d32abaa7c3251dfacb2749029beca804cc368641ce3285660680000000c314002028140e8a44029138209267aaaafc14000e878c4a7c549848b324865110c52083882104000000008400200a4951551000c3866261ebc9c5af229b17fb43f8e5b8277279203f152179ae4d74792e6d9ef682c14ba6fb6142b5425bd33ec5b2ad17804e27068b431026a39633a417aa8e1d026555b3b699d387ed11152134658ac7eceb37b045ad9679550f9dbe76bb146e5ee99fabce944c75cbedd2b4544848d13faa440dcdf98c7309e1b38fc24d6679cb78e2e14c38bc6f5a32e971d8b3946d4e94ce0c0ae66d15e303f1f672861f5406fb5a7a048f7f687ac993929ce04eb2a9dbf4952e097208dadfbc72c266d1d0f7bde90d6a00a8cef7118a8a6b09850bba7ce3d4342f768b5123eb271dfc0b9325056d06d9746bd9657d955eccede159883705b2ba01eef8174cd657986980992ee5b9997b5e941356bc5ec8ab73674a5b91f0b0f9766a98198d55ee64d4fe01a069fa670c6c28915d16ae7d9df931c4d90bd88afa1037c191fff3e10a92a91e60465336bdb822df3ef28837935cc05aa995c6de072eb799ed31751f06c6f2565a73b2b77548a206521681f98aca20ef768e4906fe76d10269ae10276e527b7ba275514b4f0cb1f733eba3d22dc940a2d9eb49938ae2f3f97d950dda2c29c0a31472d63e617219683a55729ed08b8455a20646f54fa121abea1a139a3ab158c589a60bf850ebec905fd515c96baa7f0876cd672d8e42a659f3595391a5357f7646d0ffe0d8ade8c27ab21c2e73486cd3c9d12e3db61115d7d1b90449130553023b1b6fe6b492665161e93fd36701683f21e84a31bab91843da7eb41c84bf3c27685f7b23b9df447518a99b32b1db39566d48031c518e41ea96803d5085f600097f19971e4bf4ee554669a6750a3dcbbf4ecb14f5c7057cfe479198129ac29f978be2d2a2294e67701d3df41dd5c2b6945dda5828705c1b9555181b06da5345989b823506ccde18d4fdc7e0ec5e6612c4105bb387f15e6415fbe5d4c3873d6e84843d8d1457a368762bc1d8ff18be017b1686b6b4411a2ddef94a50e6ac1d8a283b2393c21d662f404d73eacbf899b635d86f81d22d67ff58c01fb36a38f5f394881ba24c4d5b674566fd5e82c6d54fea6e006013e8f1be84cb1f54a497c8883b479006956638f03da7788835f41b512c9835f9f1d4ea3fc730bbce13656b0d87534f84ef3fdf61df52cbf8a0faab906b9bd2c5543bc7a6778a2b0a977238828ddb0c77af5a5fa4d115c324ca4151c9766c9e3e285e1755d44915e7eea8e8328457d334fedce8b533b844a306ddb6324986d78c6648aa3c6811f9f6003b16e65c4c4ca05f2ab7a15fe5a96eecac2021fb65c741b16343f7a6169867f871fdc867ea64aef2665c0d48e8b9577c35eb490fc24a603b3a7a610ee6a746e88a7134a9df0d52b2e23cc4d841178b15021e01ca81243613980e98d1161c9bf3a3c4b6e6194a4a8aaa1242af2d76075d6fa22e727a354d5e19a0c4de392211af52ac677d5cd8ede0d01019976313c21327897db658591cbb0c8458db1921a56777cc01437a3202c571dbe449678998e48748c16448fc9016603e226396095ac68a8fc9abf194225278dff880500a81bf533cfcc7b82f5989d51f4d766b611bc91ed9c1cf392f61ac1909ee7d8bf73ee7acc887fc8214ec8343536c46888861320ef5de840bfdbe77371fcfe83152dd0af7042bc208091251814b259276ab463ef30a9bccd277a46723eae6a60bcf98282bee6214b65ce7bc9c275744e353d7333721b2f566e6b669be8409f09789319ff138291a92f136c3ae92a1721b7e6d8b7cfcdffbe8af03a737197c9433c2ab4fdaaa02c85771cbd7a2eb0a7fa2a8fe1fc0db02a23f4ff3a7c0c77083e669eddc54c88404a61061aa7214de1422a0eac34cc26557e425d5121aa60eacf0b684de3a707f6cd2ccb2ac42634c6d8d9ccd02aadefed0e0b6d5881bc26a767ecacb7bbaae33f4c2865ebf745c7810bada3af36ce96e8f17036fc564ddd8d8fbe85ed186b33b92510463d54d06a2ea23b1cf2ae0473e14507c5364b6f27887caecf0c7c61753b718ce32eb21cffb62f9056059e86e7a7fb97d81f3a0d2824b2c0dce8121d9ab120d69cba927460435235c26ef753dcb432ae30e6f344d30832181dd4a5cd48ce41d9090f3a05c6239a2a884beba07847cba4bba66a5c41cf0678e021978499c9a4179c3abdfb31266f59fc7689f1802918c54543b0897b70899e64eca591774e8a1c893c987078430109c8b825659a9584ad2b9093b04f1769478dc7798cb26ce9b95b3adc2025054325b48f528ccf564f2d06dbf062704f9966a27f69efdb000748440955dcdc8f9a62f9f73918511a2ff8d2b987523e3bb7c28066621bbb5314eee08fa894cbe66ce6540a48015503c6a93045dbaafd8e3a0d69044859348d78c77420cc3c968a45dbfdd4c8608658c61e8481f226164cf92407656c03790b542e2006955c560787062b3a537e9e3b16ae44d4258eedaf5ceb91dfef159a71f95b0c54a853054fc0c42218bf7f1ce24e95b26943edd145a1df0609a344654f9f79da4a759c877d432598fa6beda0a696a21f7793261aa26b0460b81ff7f8cd464359ec4a155805ea493adb14eb136b184201149890541047aa4fa82b843bd2953f5f21ae2a8a57822c2638f9e473a7998e2a09029e708437477dcefeeebaa99932b303437d5f558a2e489a5403019ca29e7334fffe4785f4777e818d4dbaec9911010ef9d9e780b3dd30bc9b890f5995d8aa40605c5e3b00fe501175ca2a431765e3ee81c3979824fbee7cd12d31c2dd936544dac8d899804ea03fd3cef03cc05623dba237bb987db9affbc8763d21b73a01822e79adfd1d36ae5e2657c57ee22abe0e9922f827ff0330f838b94878b8f62113c62a865982f821e30267e5edcc84518a256185de0f0778dc1220903b984699e99583c5430e11a10f2e2d6c138e42f7bc48847456f71b788500a6a6f1a052f5b2a3893f1402a146913b1efdfa041163a5cc091502a84b1b3879b88a713254f26ab4ddf6e670a10f9c3d5db16d6282da0671506bd2a10607f9a0fb81a87624c9843d268a3c08e23e042accd3db244cc7f03149b8f03dfd8a62a379209009fe055ccd2abff248d7789acb14b4a7101bb1327272c40a733e1639402e849c13c47e79abc2eae812135e23a9b00e39cbc62a971a9dcdc8eb3811671142c92a20aff4c6e9cad98b348d2fd7c9ee9d13a9852dbef5953a37fe907efff803361925e55d7b4d0086e36c025b2e490021c7f38919e690551948f68807012f68429c7328d4e33bf7aaf45fcf6abe1b40f7ef8187e4aad5ed045615f118b9d046a76a32d982799ef12d7e8bb5bacfae8950d494740c84e83deba1d5c07a4994ecd264a3015484151eee54994b356abe52f459271c886260a6bb28e90fd41f0daf8a8c90c8cdd371daf0266ce247f62bd49c07300a28f8de509042591881a04f511c4441fecb3dd83659a1a9a09a341a5df64f717e929b31278444ec06648b74423c9511a27fb3ecbe40c3d36e5aa073311eb9e90cf6688c21fbc7a4dcb9570a8b099ce598a8a7301c513a3286c3e583ed1d42f3e1b6e8087281312212c09203af878da03926877b7039e502400040dadca80002f9f1c4ed51c0a93a1504eccac92773ec2d61a43b9f2a305bbbc10c6dd7dc206cc017353030d768481148f3eef31bd05dfa2c709372cc7591f070bffeaf23f39a4c89d146d3e3336ee24acabbcc09e3bd9801e986deb4341ba433cd8b10f94b107986d7fe1216eb1c9b4ef8ecaa72296707c351c94046e693701f7793a711b4a410c68ee48b76b2b1ce2948d5a039a51f03f1ed0ecf905c2cb04f420cdb3157d1f1cd2d7136a61bd816640f3d0858f5449b321387903e206c5e4eb49c9d6c9c6ba3f5249ab7ca92e3c05884d4480d8b74b9fcd28324b6d67bbb59b2261a2f850099e171ead9e9760a0cdd42ec2cdeaa4bbc83b9fd55c937ae4fcc3e12baf019d8dd7ef907a4d756a9384210bbc0acd62dfb2ece006b135dd7d1e7ac93460bd59bdca4fc2a54be189027cf8278bc3c60e6fe604ca862189b70f2205139b4592b45235d0b36898bb0ed5a28b9ee42daa83606998e25e61afcc55d1e80415f6c874d137349188d1cb52a2e5c2f9a4e77a6f55c4bf82c0195f42a35bfd13ee36b94bccc5a96c5026f33a0e45f6930d364d3daa14605016b0351a3bc3a1222c205a99a355e930eff9d6ce40aa6408cc4e2cea31a28d00b8c16ca010d405e23ee187f7284d790fe0442930efb09c540593b35f25394f7122bb21c5cfd1fa4ac43b23f0063ba203c2c9111d9175ec494c1bad466b85881c7e0e398ead1f53d67edaf5e74a406e74138e61e31cb4638a10d3b8aee4934333bbd57ee9161aefa8e92fecc0584cf8a6da81e73cc3551d7152dc60c42d6257091d56eeadb45a47831204672e966cc0637b535e2800574182382ba7de55620838831920f488e0d651985954304d810f08a0058d003d6a4402c518022bacb6c0e8d0afc8e0a97b55ff810173dfe929cd4f81e480233dbda05a9fb231032d19b49aae133f047d1379d104a1b4942e357a62e673d4f53aed22d73e61aa09e001781370c19f9b1a26de722eab7dad540908f0b98b416956a3636b2ab5fe3e81efc11a129b4d4d8db3ec16066be10731658881d8ee10245723b68d7e5f723d8e4fcc98308c79a13114216b58f68e0b4fcd056d18e915f90533fdb8924fbe3c016c90ca33e1fd0457ce4e97d47f419b1e3564ef111fe9789afcffa07bb30f4e28807004818b8fd9a5eca11a8e595245b4035a7662d52fa57b4de50669784c0208a6822ab638d5a800501b987f93820402a2d16172bbeeceea5a8a29fbb54a8e536231de11b06190e5b09beb9f6da074ee092b0aa6d8ca51ce5536ba8e550f347a8cff8e8f2984267bd3b071b7b8916cd694a882b44d9580e545de298b8e6f825eb1695b444bf39158544e633488967bc92cc73688f9f26c469144b61dbca962509b35f8d923a99595f936886e81eb002de52ca67f7f1c1a5d24d49ade5285e9a79b26575c8c32604999b62d58b1e88f19d7502b510addfd1666cb5dd3504c1387027b7d74224f8020fb08e0b9000f80924188a28af536de10674ba0f498c786fa2d7a2cb287468c08d04d2c658bb3e6422331a31871bce69c2e01ee1344909ce871f49f144194584440c048bb3f4a6d41f02f6aeea923eddb299239d36eb60c779f49b251dbe0d38b29e19be7f157e0eca69a770a504b86f9b5ba621d304b283bde239bcd3fc743414280267cbc7380ce9b3b3a722a38cbf1080781365b1cad144d920236abf3ea473c40386f17d9b1535dd63a6b6e5d8066067e1f6c72c2bababc986c7dceca3998c0e7d90ddfb47711a7df1fdac9abf7dddb2559ae9e06aacf6883e57149d8b93863323305eda527f022dd5ac695d2525266508b370d63612d07c4f2c6290be74cfc32ee2473d969f53f5bdf31fd8022cb03aff3b616c268f840a187a9f03b376d285598fb3461cb4451cc36f2c162cfcc374d4c5f2cf6b01b83de7ad3517bfbe62a06fe8fbc1229e70224a4608494ae2d06a7cd1589e996ba05d14ffe682def2e0f6784b5c38c2abcb95280bfc635d17667e573fa7805ead93aac1c550bd2bf825c15f6c308c48a18f471e8f7f8e74e075ff0c8a669b453e62fa0e6bf35ac9f4901bd27500377648185400df8122c5bbe4200107d267c63b5c1b6af588bf49ceebfca79342403db54b6f23729478662218d13e7a25b086138ee007475b325f9c24a6295070e661dfa88b02bdcebc59a902b385e336fa025b39eeeef60df7e07f082af90021e38eb4c19c974f22fe01ae34e48248b843c68c051461d988e445b95d7ac9c8a012fbe56194c3e27aa63ba323c50d0c68ee16d31218b2acbc86bfddc09e8be439463232331a15defa96bf0be9491ddc5a8039e3b1d16dd34b5481a895c4a2521fa32b22416d285f263e7f59b985187f322f0a52ea8640e625d998dd6d508d7555bb4f3cafa290b13e2ce4e08d5562cb989e7b1a97861112b5b50a682c9452119568990a64c3a486ed91c8e1cdc1cd86b248fafe4554a8d64fcceb9708c5c70013a165025cec7c89f3bc3166aa666592a5a369942825ad80566ecea32e0a7b9e9e1022e3112e8a79dd77f7f098e8e2d89dff0e2dce3514ad724d9564b450af260aa9e01454d7f1f61a6c3e14027b3e7092db51ca6292df176125a3a46972aea435d08c25d164c701cd14198a0535682a094c7c25211bbd5a25b65b049f4289560e717eb73c0177755ff7e56faac5edbfacfc6444326acbd41aa08b45e619e123810bee6e344e07724c39efe511f996ced833d9952008a967d64d0e92130cb63bcbfb421e692e7a6e70000e0e481fed0327a393565570ea120d315e1e28af8499224687b76063d874aac2885754dcc8605d0e1984ef2aa13a0c673a3d2adc0bf141fee344c9a84258e70d7518255e1415d68267b09a479970e0b7688910a9563e4555582e43a20c1bd1a66580bdc7f1f1fe12cfc54654484090df28ace5ad8744af279531c688052d1ad9635ff14452253ded2b98150c9066be06c3f9d4ad42c86c77b686920158d582599f7c9c5662665d93d41a8b221abd9f18feba07f6c48e7bf66fc505ef3a633876491925c34d7d7a88744c884722af38639fa98e882bb2d2a703ec3344e30540774b8329a1815b6dce63f4090669262c1357d925edf4e615583dbb9413e85157abb6f60f9f3929b69532a7bea11a6faf420b333c20488feee3a335fa693498fcac4e6a135ec4120ec7680b03fb8954502a9dd1382ac8403678f746a35be4e12d31ba22d0ecda05ac35b1a93d8ed216f6950b701090d1672385d06724544834466e7e333f96fc3415fd70bf17dca6b6f91da8c2fc3dc0e499825be654c2325781a29f279bdac851b78d815dc471d4747140132f7c766cdf8e72a9031e5f0b9d02073ad3a32d4c3c0b3c61d5e9faa0750e75a084ad18d8788c0b1ac2f553bf0cc3e59bf8b385a7df6aab6d26ad8c8d18656a502f5788cee27c74f8fd0475986578ab547a43daa863d89270a8968271015ef84795b87c94c32f39b24720826a3760c692a8c67e13dcf2e73d4c0940f5f3b199754fec2b684f683704824c193770469c1df09488a083ce8accd6d23917935cb939ae590d048bb93e4a3b5190b351dbc254f6b2d5ad0d46e21a70e2269e8018b96b42a339892ee3fa2b76e31657e4e4a5916383f3cba56880302ef82a37577d09848fe1667826938f8123810488be6184b677edc09c780c078d09d977021675cef068d2d9d131a2bee80654d2ff2b7517659dc5e32548fea3d3785b834ec9219283961a13f128a48c0735b83c073ba2d15a98b39a73c12fb124967fbcb77a14b114ade6148d33cb0a72ed8667509e12af65663a010b8d6f47f5d41c606afac4251bf97eba6143e633dff4564c2bf1a4589b6f70fa7e7fe16844c1157e54a988f4e575ca48880c1a8f10414194dcb88c0fafee18f5a701bc08413770e3bf16c737e43fbf2d626e5418c0a79e368eaa42a4914e21b924ac70bd2bcbda501d920a4b677b109084f9cfbffaa92cd22f03819c5b6f48083bd8cd8538b19b4aad0bd8cf0870a7acb8eb26f2a7a9249df81a94b16a44a70c432b6ad3637244d1ac687feefc1b9f3803348e9ab72c29f9f2ff07e63a662ac14a498a2628f7d48f99513bc18a0ab5d548b5b1613b73e2fef86a01f7072dc601d5e6ccfbea0091a7cf0f747996eb4bf7a184b178c6923e0bef91894fbdf98c6da77c7084d0a1750618c0a126292d300ad136ebe06c396c97cf9c5d6fcc9020bf8293c24b19478f2a91b552fde3b9c8673986ef75111cfda7fde880a989111f56b6081dd21513033831d066ed328df5529424e1b698a24f58e51726cd71e5821c0131ea9494a06b1fdcb4c8c9f92211e2929aa73e4f1879a57a53105320dd770cb0c46ae7f69060cc4cb7fd841f758c7bf184a2fea51c38780fd331992fef2f79e1d61ef0a03726faee91d91ecb01fc605721ef2305a31d079900d418e9ad00f6a2a763e3aa1f39a4c7cf42ec0dcd25f56aad5a063a60fef01215fc142fb312fce2825ccca8a78d28ec7bf006bd6c7af80bb1b680c4b2ef358770377a60dbed16f384f422df86ddc72775b12ffcdbb8b3f3deef85f6bda0b6cae5506b96a20e3066419c133fbaf18f940a0e3fee9f6479152345b7c229619c0e25cdff749a757eb42cd52be3d900d3861a770c58a31ab0f753a675a0675adb96e9344e63608959b96bc6a5b0bde8c9a8f3d374ca025a1fbc2f1b7b4a7b3aba0caeb1d3a6870d69b173c5b03b4a59f9ec51b9017409438fe3d9c00e7dc59a50eedd8d190634723fe1073f48a7b4803dafc8246c304dfa72f9beeeaabb0cd5d571d9ab580b81bbcdf306509eb4a877ded81f5c0bae68d3f54f1c89163f3b47834741510083521e1c7e6465ecd2c45606b17622230e84f38e14828ff08c24d4cc3cff674761b5912764b0817bbc8e5ea6b51f8fc866f478823124b507b4ca5f4dbf8bdb7f84948fa6aef3dfcc020c8e7588224be884f6a6755d45bc5b0924a54a9806ee9bb6c12986630cc2ac0d78b9c34d32c31f8bcb223847299c1bd74bbf426c4338afa97a735d1b90130f372ae34b8f42cd13104e4b653d835a26ff070b6832f26ec9ac83788f2a5c7b32358a96b6c1dfd7fbf73091ea30f75808cdf372911f49411f1862a96292e9d4d31257d5ed6df34f525f3b8841d919441a5447327c80109ab077ac2f5436de99ee06a28af4c363f67d5e66fd6a27daed9d92d01dc562ff5aab5e1582ab3c896308112aa1639c00612913a5812c56fa62816fdb6191a884868831e287cd8405c3cac6e5bdbb9872f40ec42dacc46a227ddc5242bc6c7b286011bd1d3c42af0ffb564aa779bafe6e120a4b18e455bab7f2ba13e563020a80ba03229566905e99d669ad9d2b89a9f673643ff4f5ae52d0d233eaad69328db1b04bcfa3536d3bf6964ad1029c64eb89eaa8eb05b1571ed10c4cd6f33a1f1e2877f5d5761af80ccd8df8f900991ac3f419cb6390929dc8a7caec39d5f456ee1fba9de03fe90b15e87f908ee4e26ef9c578fc398526fce2b98daf7bb775b956409d983d07d5339274b0ee05a229a59d1254a4b94f8967918a6f1ce9f30f6b90c3d393848baf0d9800c1d4c9298f2757307df1f11ffaaf64e090862c569d7d72a0df360228ffc1690a349b500dc5348ade3b88bf119de9b77b5fa1ef8917e033971aaaa98dc0d11efb57119c85bba2fcc710a9845786ee22ef0cb061218982add4de1a5c98508eb89b68414ab5f464b6f5405ec34292242f356aa0ec4447aca8c7e6663bcf44fa531b6d639ec48c2708fbeb6815b39b4e05d96eb6845a138f7c8f6ed2c180e4c75f7220396f4c4bd54ab2a57985dada29f5d707624dac9945744fb3b5db0640db5c16be6283c57f14e6392acf3a3ca2f67b27fe0f5adf0400ef2d3362a12483ddd437a98e43bc044dd89acb7bc9a15822789af08505bdf185f7e935b55ad1698301b78771d816fe7605b7eeb6d99cdff58d58dd56d48b98f4baa01f4ef35008f236c39c12bc37c01b6657704ff4c17cd693a865d3b373ea8e79cb2cd0c28907ab5234e891c3a5480f77ceca88ce917ee50e2d034fe3b57c7a4e81e9e6713c53e03ee9498c4ca84d6645f8b1d95d028d7b4078759568e8dfd17dd2183ae7cb97217caa5a5bcc6bde6a310414d4b1afd4851165cc8536990a7de33f65c2ad8e351234cd18590b6066cf25782d0996fd743c28830920bf55414ffe3883120fcefcfe11bd298a32e4d77f59a2d8f34994c998df0e74164b87f794e5001f70f1bd78030814b1c321904524ca09abb4e6a30698a7b7d98c82dfc4173ed2e81cc611e8c4b6af9d1edf2e22efef1f9e403453495e3af4f0641742bbbb8443f5c6d8c3d11063a1f8bbea21f0fab1ed2204a53d42d523a34541a79726847e9b7ee1532f9372c48c77ecc3c17f94bcd9d06bd82fef8c350758c20a830c5ec95f19ce2d5d35c26ef654ec289693b0a520b26acae54e3021c178db1821e8ce03eae33edafc40caea38c9a3d2e0431b3f9292098ea8a53658ab3fe59814cb6298c01e8af0d47762172954001d6d7f93df6dffedd9c195d4f9494e5a77a88c74e89a7f9b844b5ace5433ed227046777eeea56378e0fa28f7b0bae1f5a81e4ce77f084a51a14e163b3fd5f30095338802c648bb00f134ea922722be8a49afcd313be3e31c950b44e86f6be4ebddf8facebcb3159f0a782a20018a302ed14135490fd236c3691b8f1f497dbc962722037a182e4849abf4dac57c5fbebed731271c90e6e467f16dea1f1edb3ee6fe32699cfadfb6d273993bab29109610af4ef05d59056ee772edd25937d663f62ee4987d78007130ee0cb172849187c2ddc7ee384f2db80dad4fb196b988e0e64047f17eb31895c3ad8e118a9df0bc9dca699ed534fc96993cd0894acef4e4816de19da25e14c03af3a03b8a23bbe43b9b21bb740baff1cc0fa3be334160bc8d7a913671c9a98e9fc400e918c33ae49d53fef534723a91618dc70a22ceb24f3fda6b707ade37c548e4d236fd6b86759c9403a903b7bce95a0f59db647f82a3c9ae5b7fe8da3694010077359bc72208c6813cebb3288eed3ce2b4d1a9def39a691cbb93ad2802a57df8b2a60ecfca3140218f31b2115bfce2c6e3aec489903ab5e41d07fa00c71ec88f2a24cb532444b05fbf2fb2d66383167d5c9e951b4edf91ac2205d71ba16cc0b5231dfb8cb0c4f256b87a8ebae4f62805d02680cc14f925327522d9f17ab52754945aa8614b895b8454afd60fe730361d6ad166c578a09aef3fd6d90ccb21f42192aaed80fa3496da898ec06967620446803ae57bc53014484dcf42caf0cd3f58fe410a6e8bc5319066df505653772051e5327d6c7558dff1cc5869b637fed71d461b089423a83926528a57ddea51c4fae51e05c7b1a19cefb41a473d9516ae862e1646143ce919d40b635ca2c7836df325e14698099e4b24883364483c9282b5a6439a21ec4681f9ad7e20c4e63adbc11513385a8ca6e563893b0c21313b0db3551b058ee5a7e800b5de917a48fc2100af50c2bbd7f414f6b30bbe77a2b603ad41394980436906a561044f3bbfdff31b0008ce2ebd1afb7d4308658836780305f272a69012111fc4beab95356c4fe34b0b919c24648280c0a3f1e933165ea40806678fa690f3d46d73953eeed9682e47f1853795c5b820952f395f2624948e63cc6a0c5347f2f3661507253510f5e8e798fba0fe29d447d10b2d250a20e7c05ef33f9e11a7d01c45484a93578738113e33fef608f248f6e40522f5da07123a77aa1dcb137524a453b78cd0f5dd21de5970481d063476a4ab4afa6883cab238a24be3b57511c1c72dba283583d105564e909c58f30d5d5fbcb3b4db2317b3e5e36df5574bf4d2b3cfed806cdc61fede507491937fc717ad4a5df3193fb9a5ba0379d1085bb8d8fd34c1ce511ee5396144f89950689f8f456d4a4c8d522c811a0c7e0abe7143f73968df539875843eca3c2cf729a75d5231f3f27529354f5b542bc7622f27e1a3d6919a165a0d50ae8fdb2c99e5fc07bd423f41bc94c5a5e92112a532c6777cdabd2b25d96760e5635c64d032ff7a547eaa22352b714485d742deab5468224017d41395230a3f7eb41632d70e6ca83c1e451656cbb0fd2e920fc26c67640812e683bd8194acfb3a17cae16f48b7762bccd68be6e19817e366e302830acab2533dab61c111a742605ddc624d017d27cf24233aad3e24ba561ef6b336e1b311b7254b81aa91cd61bda166f3b18e665433388b851ec81a538a1bab1b72944feda7665040b78282d0fc4bd6a48abe9b1a15bbf8d70d8ec71ac6263f525471e8598b18a3fd130617f4dbb8dadb5898a151fad008c879da63de19766c1d529d330be061ad255efb4916512ce2b9db046352b0e91b6a2428a35556c683786fb7ac430175c44d5601cf76d569e7fc8db9462307c0b92132c1c1a66c1b6b664a295b204c339db526692efdc4a306bc05dc19d9fc5fbadcdfe9b3a10454667f3ea96498be10520ec222d177cd9976da720dbacda36504b34c8e1c9ef436705f84f9448938c68849e0d36ede2f81a2ad04cdba13fc339aecd03816cd1523eae14911565fb150699d7cec60b5f2dd16552318c0c716c4d43886e95e3d68be66f85432b41313d98e0913c1c0eade7b04206e945fad886f5cb5099dcfa54a9ef901ed49172570af07ea5a0f923e876eae882dd501c0d32e84a4d3acb0c9eb5a970c6f88d46f8dfe085e7d1afb4974228022b6fa6395641032e34d2559dd2ec6c842146450b29fa9444af572b2624e191a1b0f0b2b26794615d6aa99d8171cba590c28fc8be8176b39f2a25f951230637d69aba4eb2b0291398f54b2615d274e30ee86d588ce9ec7c6aeda8b4059d592a8b416799c1a3aea3cfd115345d405dcff8c7965ef01fb99f6803a742efe0c3e9d4b17d252fb092e14044b43224bf3deeb9c790ce6c2ca22903a3e10954c8784c938b214796a9b9528f5625548ca5206b800266692e47af88db147a88983edde6bb13a47c56bde515bcebf68cfdbc693814f027f428ae2c1368cbf6f21867fc9e33faeba1183681474a2230519242e6fde654ed3c67eb09959a4d930849a79046a015de72efdf298c530e2013c1628c5a4f3804f836272fae25df8cb11a632c25f58eca3b73d8a9d3c7bd03ecb0de53c43be7bf66f3357a910fc8fc8f6c5bbac44e5a81a05e81bc24ef56c42079731357db0fc56bff14c379d56d3448f85230fff9ddc9ffcab4f59819e52366671b1bee5b838d6f5a88585a0e538c4897aee51a80d5bfe4067a364d9c7140b206a20f6f8ed720e6e3c26f5f22089863d83407ae2b1944a2f7e98a5e79659f63f42ecae57fbe94c9b2f283d55cf0d4ea2bff6ada4d8f9121738cda48cb4806e254d31bdbde9898d30c3fc166ec9310a0124e70f3f6ee791425d27128a6d563894ea020394524c795c0ab963b2537a525e315454812025c5a8158557ac5d27f5751c05a8f5d2c69b829d0273d5798f5101cd21acbf2da190f5d8026fa2fa641be6ea528c4ce41e9f84b9bd2dede3c91abdd2f238457fb69ea302842acd0754da16e4d9b9441547a1708e2351d1db952f93d8c1ee6d52fbab9e2b14d7c8d11402c608778f5127db5e82a7960723915201cfab9d0263e9ee2f8bd3703034ad3d029beb8863776104c321e0003137f6290124a6d9907a7e732ec73486997ad80b2a023e83bb6e2acb3fee4b129901d91f6b84616440213d4816a53967edc77a21650a14a302cd24505f5ea743164d648766a7a12d679079ab507c6e598d5bad5b064a8cbff5e00222c7a27bd434d3f8c622e5241592b0171bc9f11c39718fcd1bd463102c6ca15fffcda5202145d11a28dcbe8b217b0a1bf683eb3439c8742007cb0993b3260f1753de6a50036fe08c869e271070165a071179ccec381978f5a5247fbee5f04340fdf4d89b61e14900ecea1c2df11aee4b01821dccd280055ee25efcba0e970376f723426128f50f5306d4a08fd502e93546e56a325eee301285e4e633ca436e5b097210af4185e7b46352e64d4bebe24b9a9dc23989f4790342652deec209cb890c8dac72c72cbbc55c5e4febda551441800f520645b5636bbf46bbede274ebaaf48c87967441dafda251d6f2dedd004a7b383ffccf34b804c42c07e4a54eb7e0b93a264495c5e3451cf6b8b98e7c0e558220a84cfea13b77794476235cf62e2e3f57e9b15409d5d0a749bcad0919fc038ad08387d04bf6a818d5425eed6fa72c4fba3572d06917dc2ae496720648ded9577a96aefd72521860a56cbe8fa01100c030ac2a23a9e0cf67898cc12bef261264c02925143c02f590e42d5f4fb6f3bb0f0b0ce049803a74b2b106a8b46204c8c7dd7e56d404cd9b4455fe6dc0a6dc3698ac45fdd3d46781ad1e6c3dc04855742f5f9538c62e400098cadd64a97738316510a460b01179af7c616aa39060a47a8b16e794c4728c819841196dfa199afc999c859c4b25dbbf0601f3cc597c39dfacc94d271758a1fb4a9485a2ae6c16b0b8c254eab29b6a1d9f60af238daa8daaefb8696c961d0cd00cd457d66dc4e2d1a1d7914c8728a83291fa770041d10802ca79e0d3a038ac34feeed9812852c277aa6adebdf660fea53bb0c9bfc0ef5e0aabad2ace34fd528bc7607a5b64e92671d235ae905f1fb91d0904c6febaefebecc9ed74d3df4ef7aeba375d2449a725c4d20f309efe0b42ca788bddc6d12112ae76d983b8dd8149ac6bc75847e43b0d05b4715674a80bd03c12f6ef53ccb0b2e0b03d11eb86e27a0b042d118c5ff3c242277e9db085c5740c9e09d2dbecc20ca21411372f67e925a95309eaf2cb609c30da4f3dcc9c5475f545dbe9f16be1f0bf77e07d9fb97d7fb28c683e781332134574847558960ef24aea19cefe44025ae5556ffbb1a6287c79112b9c493c891902bb2ee7d91d547fcddff104a02f351722062de727b64378b3654043c9459c0a05fe799dca993bc8bf633d5f0b5f322180b2e073e85a24beaab124556f4d37334a3467fc3b2ba71cdafc5a86e397421b889e5fcfc03a74c2909ae48c7d5925d0036da0d3e190dc4da2c5393dacd950442437825bf8e2ddf72d392ec5944a467afb61d8c59b0ea937161d91efaf5187f6349c0353dae5cab376574558fde73e1d4cabb3a67cf61adb548c8f1971f312c5f558e4c9668409141c92ab5c52f5daf8802faf08668c1cbacbeef7048052a2e61f9029858b15556fc148114da0112b1fdc65f899852d48468e39d4d4fd1f85acb8ba8e3a70384b860c09707e7151c63d357bb5d058b4a6e9984c045b67ef12e65b88ab4b4247d644e69ad515ca8c95e59a254ae2da89c44c1f31403cd0813e3bb1fc5e02d5e488378d114a39fdc118f66f603dd52abb4661147fceb8166d5dfe508725d2c80aaf037ad7601b261f7a8059e2acffcc415b773013ca2e76861b6bb1f166ae101205bbaff63e6fa8d991286d7e82b9384cdbe80390824ddb260e06d8c5975caf6e0b46765b7197e3f248ef87bb926b4c8d0bff9dc3c715677aa5d6051ffac7ebf76510df845600f232c7a6eed5975d030adcfb2d1ea07221f3d3d176e92dcc0991f4d4cf64ba224ec935b928ddb2321af0c0b6636f8a731a138f3261b50c479915a138e94aa22f517224740d0799d4a40f14f2408aa438e48b3552b567ca9e1d656001ae93788f437a9c5f6d45cac5084517c91b38469e9998ff5cbef164feedbaf1ad40db3993981a9f760f22c87bedf5bbd7b3eb3839a53901610b76ce8b8dbaa2bedce2d3a72e8c78de217f66732058617d3b943e0dd7bf38d0e090f4863917a12cd96d4a7cb723c994619f55627789d420ab6ec3f3f0f978ca4d1c03d46ea6b53084678d073d7d52f0f662394f8fe3e69375d5983a8f683888f7aea003c468e047eed8caaa1c183a60d1e805ac1bf2cc607de6ac380f96a67b4450a83163fd14d1f4870e37fe08455084604b9e272f520d29ca6a6443cb8a8fc7d508b4fa3bbc3bf26022899f09edf4ed99a0495654eabda48a9901f3ee9d1723cb3decc34310278fbb6591c26f8b58659b9e6c8f0ede55ebb142ccdc60d311423e006211f87adf1dbf4779e6dc18fb5fdce447454df293c84a2942c745c274bc067052447c5db9213395af231aa110d250e1882058b2c74c94b7929321f98e4280ee970b72ca50480b645a88acd0279a72f329bad3be77653162644ebe45182966fe16c9905f7e126672784010132fd93649d41a6d98211d01575b172085d45a31ea0f98c23a7272001c052c2011a37878d91aed108a6934a06bcdc5f35acfc3cada5a2942f5b28a5a01d33ce0d1b2bc7d6d3514724fee004b53ee288f6dacd49a68fd9b280cb194254e5f61203115a9ca8b4f182d7dd9b94c10281ea426d5b2846bfe9303653e99cb5a50aba8ecf1184632c2fcd0e977a20ed052cb64e383986a5538e2458f55e75c5dbd0bab49c718a8fccdc2b3a150b8946412d68fb0c9ad7561fd3dd529cb5b12c563ba868ad0f4a33abed9d390342e234f8da124d8bcb7de419da47f5b9803902e2463d48013d55ba5449fd5dd0755b2a2c294de6414f3fd205d6e745e86090f250f0faf1e06129474c00f3c65ebeebb5845e94b8570fd8d9ec75c5a9f0784153199e7c5c5e9ff3ba1db82cdc6ce903c8f593f7b4203162ae848041471a278292b878315e06d29729fe5e94231cd64951541ae211425042a1c8d2aad13a9c3e0ae93b44e05d140cc01f9d1f0c1e40fa4b2ca7eb634ccf422b88df5d96029f89405555355950ccf7495476ab461039f20a05806f9de95bb67db6fe12bf5a8d98b36a05370e9c71e404f0334c549fda7163b0b41b3fb145025b208890ce15a276067191fa0ecbf244e332434109210c611b4efe345bf373f868fa315fd51a176b9b795d4b1043893a0fad45f23d6949c582640dd66dc85725045f64705d4eb568de0f6efca633b71a00d894e35a7656ac49ea607294ad92979eafa8b2dad67f422c9c8ee1f12b0d49f1c92ca0876567170a817a8ec644d955cac1fc8753b5317b7990a2127ae3052b6567eff4e88c39931e06676477c66092d9a69e754cdceab85055ea864ef04e312751a6d54a7781f032ea655f43995874b259c0945467226107e6251088c7e901e3f841a12622e63881f67af725f89805ea8ae0dd9e03d498c07a359c246f3da8c6518e69e6097ce36ca803cf2d43dfc95851cb9f892af322785d4b51412f46b1579cd9cda88eb1af5914a060c2797c4e57521532dbc74ac9921ef0bca3a727d0ddd0790e7d002e4878999768328ebd6cd95f0a931778910b9a8ba742dc77f08cc407ddb227851bf47e7ada4758277202ff921762f46fde711df1e12570ef32c1694258722d8110e5051db0ba1c3912cb410be90b54985aa492ec644aca380018171851cebab6a0c17ece389fe000134c7bcb53d12a83ab2fe1190c7351e2882a0c2a3c019173a5b08bf0eaee086d6f47fcc18dc6a06cf48f89e421c0314ab9651e305575348f5a0e2dd7ce7c9feaae193ecd251727b5c273755cd3d4ade4f69f652ab4cb54d295ce922803ea261e13a6061364eff6e09812d8054881b182e3f292cc50357494b1719859302b1c0ff962b346ab17827625107e186260a68a4182d76b2dc3fc14d8e962b2e446193736a760ebcc6f92b3ddd9ae972a65dcd46b64ee4972f8165601c3656bf7f3b92710e1c9c157c136032b4c748a0cb817de8b8fd4a277e6c7caae09c9e9deab80ea917abe0dd8910ac6146ba50b4bdff4901aa9bf4786f5ca0430298a9f433a18e96e181b69c485c74318a9792974d0cf1c109c750186505f41ac648f244070829631675215b91f995745b6b15d579fb2308df96904017a61dee72f02073e6e9c0934cc8200d630b64bcc35307d1fae5e465c333f99956380400e9ac43363d081fa44079cc6499da6b7ceec41da6a0e152cd35668b5edb02870d9eda78f17bdc48e3c362639498bb07651f64f8b38c075164164165051337a005888788a6c6f6029fa1aec05cdf38f8ad00953ac6b6b5bbf13b8142fd48ba988eff5d575c5962e217784acaf1a291389f53c783108371876fe3e94a505c02dc4ca482c8046d74bc9bea25aa139157b0c8baa9f2daba69df937ea2ab6032aaa56279a9ba31ded4cd7cf9d5df2ad985ae70d334b540a11b616d11542e83db803f33d3133bdd12ea5b8d1b8287746fe1bbea3a8369fd40e6d491e01c97206d5d94defaa13a5deddd165bb5abe90951b1fa9600f2d26b7c508e92b70c227c27404a60abaaaa067f39d47050bbc1a1d44dfb7e9b5da94a7529fa83acd8282fdab4583971408c2ef699bfaddb4d78f651881857e64ed8d2d67365db6af9f363213c23a4b705936950890b65e3a35a41df396687dd02fbdf8d17b40e924519ea71f35d1636ad92f9bd27cc6107e4ee0bd77e7ff0cb62e5df5e2a82b4b2839f9a0349d864cc34e4a8cf738778f73a3277044ae1c4f4ed31a3cf6853ae73da936df48a1efca02fbae65daf25f7c4158a8a9eca3f3b18bc22dd2608bb6aa7687a2e7ea3710a19ad3362a99a8569440f48ab6af5dc51bc7526b0873d228b18553cd08204a3f8f074e34dca4c45416ddd499a7ab39021e4c473f3a4a32ec4992e5d9d88426dd6b68ca259f74bf62da8e08405353844bccd0ca0e11ba111f6902bb90737c1680b311473629f7057a34819c73a81e9f9e31d62df572f768376c38f77c99a807c2b98127f56b1462261073fe0a0a92b7da9d596d09b3dad05c44a5977b82e46cd4a9b645b9c1796ac7cb283b50002ce3106d8913320abaf759ea4b22d22aea9e16d089d1b12e42fa6e363a3ebca3d3185c354f8debd44eca9ecbf761fd29add2be8ddd57dba158c747d6d842c26edf4dfd7100312dba212f30adc2f2a709dfbcf1bf545972302b51007c26f42d15419e1c6a14386f26f7a3d707f3c2bfa612f9e4d90bab8940ed31d4b35934c3698d7caa290fac3b9de81b5fd5c7969af2836c9f4814a44a40e6be852092802ae9a3dcce47f32d7543be20df6ab5bdee394ef780c01d55bac903531490257873a98e17ad3ec90e3356bd329dcf678a4870f26806775e4b054ea2851bf27b2af5f04b8c7856fcbf4dec96c627a4a195cf55b94f5e27fafba075f94cab9cc5ce2491202e2f092d1dd31a75efab65967969c5c69a5deab47ce094c9a815f4057e6d6e72bc6203816b2c45160312777e276dd5162ef2ec0d9bb8cd4b01078b520d2cdb39ca2b11893634272f22017e6c560644e2be5289cdfa731197d32e24e7ef292d31551270861ea25fe1c24a401da01d47256232e0de0191c9a4174a70852b8b819f6535464abe6c723557abbfb89f52fbc704e2555b2004ddfbdcfae82df72d8dc0ab7dd888f77fe7e2c72b310c4eeebe8821d88721e775bc07c54347ebcbf20ec3b0ef9bbd4bfb2ac57527d607c9d529988c16066bc74df7a989f53e12fb504bee3b6d70551548bb435b44478b338489c49a89e0184d402d42bbe03ef92058e1dfc600f93f8e020adcb7e1966b7aa077712197502246db435ed771ee49ae7775016cbfb893f0aae95ba5dba4603cd11fdeee6e8af64759a50f0fd72d21c72309abe541b35323060b3626593aa086f03ab4b381b5ce4746993dfbe276a6f981a513d0cd3c899a59c9327d5af7e8ea003feb8099166ddadbd34c4a1da5c8f8093749032fef149d64a3ca8fb8979735ed15ab61ed5ea9487ebae90ec1de20931cfd5152db77db84871650512d9f4aa50adea8216daa4760fb989be13280d7f6a284e8cd3baa181d6dba974e6931d7d05bf31ae88636b6bf3c05b196611dca3a4a36ddd2ef74c04aaf55ff9054950912875ef25014b676e0039557fd3126df994a54df42a6e73f544d830656e1b809a9c9a4aee84f2a86fbd1b3deadb9bd11caca7fd53ef4228a2a9504dec238c12275db68d3ee2019817796422c38b6035b74d563cfbcb80af34de553f610046cc0fad2c1fbe46e4117b907664b7edba055c368a2c2768a10f7b81e4b40cc7824cc5df0a7dfb3fcecc4cfeaf50ed81dc2a4ae0a44c3e4fedfe96df8e1502892a0e78c9430ee06470673da4cfac0161a53e8431626b9ecd03ec6835d3674cb54cd0efbee60da71c90bb0a334250722d691b50e67b9ed935ddb8a4dcdd7aaa7fe11788af3e9abee0dddb6667e84818cb05ab2ecb2a109943a1cb5b941ffb3e1f8ad6c52a9a442ce48b6dc58bdf8560c506887f1e0c2f8b03ca43f86c487b91f6953640a8f37892d0511e3a61a47dfa46febc302d6b80b52b30e44044ed7c307fcdf9979042bc4d9f0e199f69c21f714882c57c6dcbda101910df076b86983903c521d2cfb978b195e7f0f59d4ec01163cb3e65a7345ec3381da12397c079ab7fc6d9884f651a0effb1d960b2fa0f5da56b12e40703550a942147d6e098a1077c6f7dbfb03237e6a7f529764dc682926ea2459b3c722775c30322aa5085f36595e8addf09322312e0c923a010527cc8ead2fad15ac47fa23a992479edd2d263f94de66b6fcd02f2a43f9eed8cca0b4397161f8be3fffc092188b834a2fc5cfc0a6c8e6e267ef2011d339bf5357821477791e73583c146361fe96ea0cad979f164c96dc3d2bd2c65e10b78fd04f652cbe416c7568c236720022a2ffeb369ec944414b0f83d42fe643e861f33309d70409232d1a04da24ca8320d6b28bb16258ff474df19af48ea39e6b41a9089ae014f2a7ab4eeb2dc29e51f65edc49c82d94a5cd2266e665263af9ed9230cf1807b050e2b32f8fe9968c5e22c094f1f2c8e86e17fd3f7b16d733ffa69863abb287f662c54348c9c61db5b89c2fc54ba05db5e5e77df3337e76f2e39d183572d3634522131d34efc7157c81934a6006e9b229f1ea29c43220a6412d73ed33d48ed9306c832ecdc4cc311ed645ea969046064345aae8c4383b51f9a17a0f4df11fafc9e33b69fa95516e1e846a85e9a9dc3192aeb09cc715e97d81247f67c999ca62d8cb8efa9e6828ba9ed64b40e459fa4fea8d15ab4d44fd65b00c413f93fd1dd34a51216d218ee5f4ae7c0d2d18f9fc9d1336afbdd9672cac22c799aa97b6544a227fde723eb0a83f71b3446e8b2903f67d79845bcd9cd23ae6403a4cbf1dc269d53381fe1cd32fe80988c6d04f451f364251eabef0637ea14d83b605f7740474c96666fb53f450bccbbd5b2c722cdf7242f88650a5d994b21789ed87d40dfa6b95c76983984c86468424e7c876a3b3ba48175056e5cecaa3728fbff6384f42243abb2b8ee098507233b2d09aa36d3e23bd128a19997898603522a7eebbf853f4f41837fc39a1fcb4c68fa8d086e26c8b5d910cad7d5bcb48cc375c57c025486a801409487fbc0c2edc57f610f828cd8620878ffd73568170e5ba84edb7498753081827db9a9dc494485bedd250ce9695a6c2368a2baf4040a7f9bcec8ec499c0d1e78dd002159ad90bb83712370f4ad13f7dad0a3f3e0b4ebfedb6b39b7644fdfde4a930c686511195104b2d2404ec169d600952717061e74db0ca848b9c723e05de9020e37c9691ac77f7c5de1d1ecc2d75e04ee9cc42f2debe11a861a2b193d22884b6ed809b55bc98e69e81ad75b5b8e594a08a5642945e19965d4384ea2fdcca762e6ebf12425c80edba9ee2badb67fb11da1e90ebde242fe58c3dce66303cbb153c9031cbb1c0a98752242980ec85f11576c02b708fce03212f2f7394a95c2ae4e76d149ab21bed295c0a1deb589eab004e026254587104ba4bbc059628c1f3d12ccb85542de6e94e09169ddc9ee5b5a0c2f19cbb64fc8f1b65004cc83811009c0b5a9bbaec1fb9bcf7e99d756ab0a4c38284cf2d9970526042fdaa6a295b13566711da3c32793dec747da5e276148958a948b87ceb211b7b630c0ae751da83fa54a05666b44c6ce95ae00fc74913ff6ac97eb8d45a3e88f41740971235cc3af17a432815d2d3d72f058442f34287f4eca20c165f0ed3596983d8e269e5f4b96765bb287f093e01f789cee84917b9d43dfe3571f9d2fccf439057c6d9e1ce2b2727721ab4ad56d8dfe6628cee664aa69b50316fabb316d7ed33708ad90b8a308cdb9c3dc689b32f55d11de29e5729395696b092441969c3b8b5129cb1e55374e006001e84ec1e3cd10c3ce53c92e1353b02132b8de514470f6d959e2627392c913c5dee6b0bef1a4312f245f2a728057546be528cbe0989044ed5696a9f9d117b7374e862b8dd0d13a857c64c8874cff213d832cb396909975180ea1324b43a54e79109860b49ec1339b6f38e5354631aa3bbc056cfa8e851b566c871d6fbb1dc09e41e7a0d1433be262140e279ca83c8953ac2d42b4265b4906292ccee6754b91d275ce5347639f2dc0ca2a7a41b603640121de79a9881ac8e89b3a01857ed5c27ad9e8bb1989031ee55a2f0b8620f3b8f07cb7515bac2fdb180670d0b78839cb14c14afee8224051a75428d9db9f3fed74c6754c87473996978c0064df8c5038edb93b3de54942f63da218c98f01094bb1a0a51cbb6ef4c65f1e0c65a044c6ae33edea1294b662a59ca77e191976714a3c26633ac6705aaec4f77ed4d2a924c6b4beb6e1c152ebc1514564f277eec838d26619c6b3ad96b1450cfb7595011a8f08981862272cfe5d055636483ae504be4943ba57887d6c9535c8fed7cb29b9875f28a1a0cd851f5944f7b7d0c8f500e1531864d34300323c85dfe090eb5e34938096204ca3820012d5702b2367788bd90b81133870c9d512a2c8ad35bf9bb1155103f84c10e4e6d74374fa3464be2f5ecd4a103d8ca50705cfbd735a7a5981b8e6f1eababec9d141f156f905fe10d323842d6837aef9cd26af98952ab0787d758558c77389906c4f7295ee79c90ac35d37b787fa45ac12546eb492d6e8d4109ee6646bd7d74133506622a654ae0254b7b0b6ca7650d621eb7b6c93c65dc1bfe6ad565cb0ace154f90942b9b0769e023914ac4f435fb53a7feecb7a1856d257a0ee134988e00023c3f51e53634fcde9186ecaf717c324c63f51fd0537bd1cdeb1efea453ad21a6d694607ce57e07183c166a2100c56eb471a92896531bd15515ac1ca8d3f8c0b71a40445c58561bcf1786f5990672ca5e6523944d9b479db7d3929ebcb50f37c8d07cab3cbdbbeebe38090011c162b0cd8b8572e2d320e1292e70c6f69259843f12c5b39a9d7f9e00fe18f72933ebedc6bde8075ecd89cbf94c6959617d13ab850526dc30cc5055a20d3b3406722bc8a5720388f684974eca5b49b02451c433b70331d74dcbd0780cbb94abf595b6c49b636dedea9abad87d9ef62cfcf66be7a4d2e0289800346ea6728af21b38540bfd0dd541cde232b0c8551552c79b55a624da6447fcd4cffd98cc58afc0b5883882b5bae2fa0147c98f93b5b49c864cb1554c646e35f51918a5c1f52159d5eeced29808bc639b6bb872d5c5e0f08cd39a28a51ec813cb1c88f133696e1f94e5fdc07ef25df9b0eed31c6a2b95c314481e3c9dac9d98bc5b29267eeecbbb2607488bb8f540858b3a5860d506b1924ae6f6432b4fb24619199043a00c1dbd547560bedef6cc4023833057897a2fab7d128f549450205885565132916a15981f5116e8ee7e3a0581b78e3b55d526ee1506cfab43a434628bc14e9579ee599ec20dd84bac09c296a6234ad8760d0412a0e09627c1e18631cda185ac4c1f84d960451c9b576c45bac26b180f3ed9d19cb6ca53d580b185e99c21b6612312a32bc6f0904b176368b7cf0764e778c313baf12b7a1850e21c90d8ea7c889d06b8b885b88b4c437e562c3e0faa45c1ca7fa2b3b9c18aa4461e5c0e5628c8088c5edaf0e4f4fb7b298ca2e76549a122101a7eb19f01db8a5418426627f15eb20a7620e8231bce7e99aaaf4245e31b11703bd901c357a1c16057bbb508e94e0d9e5014bb836392f9b3fe521436865f88384f676956e6dc2c7e4003dca5dad2152b4531b1adb5ede0ac25aa9bd73377bf65af7e95926e68d7afd5147eb1ef1ab63d22dc70e12811d872557269c63c509048c22e56a71a6e5e1c925bd200becac887bcf452134e620e1d24c925057291f1bca7b613b38bbad02608881d89f66a0c2ae00fa0f5347d4dd37458c086eb598fcd3a4a79dcf6128455d5b324e95c6c6c0f9f495004bc314156c0b3e60da7887e6b02eae310388beba2e3317e2d10672f1cca6a4a53768600b69f40a1bb0597df96cc744ef198a4ad366ea7d43c40aa31bbc78cd269e2badbf8c54eac037355cd6fd275fc93fa31623fb684926c566ad8bbee8eaac60081695a8e911c8a4183c8330310ddb5b0375d1b961b4d11d1564c19618a87287af33843d1a8588ea263e7bdb302ea7369a0b60a4086b525d9e594d1d120210117f358390187b2ec0a05447f7b924fc21dd2119ead42c7554879d842bc4af491b6d4cd75750b4d3fd5a3ac2afa19a82a0dbcaa9c437ccd9fcc1389a8f26182150ab5fcc40b729b85427d2d77dc321ec835c6c16143a230c67940f9d25dc57c000c77b9ff06b8ab28d2cd8cb74192eb87ad9df4e51b469f5506b162a598fc39fa72aa4cb1fefe14c481377c5012e99de5478d1094711b67a8590f386335b7aba78c26a7c0a57a243e93a89e774ba8eb5e5da442430b933c177419b34068198be786d478d9cebdfe5bb0a2f65b27b79730f780c4f9ded4fb2a4a298a4c4c67323c0df30f4eee65aad57598ef739296037d278828dacd0a5792e028baf8fdcee8d2dc2bb88dce7758c012e768825dff1a303312ecd3520710a8f613851981d66b1c23a6649d13247726c259c2da6979721584a56650034e02ed44c66b3ecb057d32278eb9054a7a8d83eae12402856d9e01b67b3e3b7ad1ce7a5b5320c69d7e26b8ad026a1cb77f62dbd88571a1c1f9178dc29cb0c6158fe24c0ec5d20a551595709025f891139799f086c81ab3e547fbdc4c5c499986538b9b17803dd5a0d0e78a52c87c532bbc4c5e9c57dbe0484eed01a02b08be6eab0b28dcd04507e8ae7280b71053d57b1bd1789015465cf1098abee12fa38515c2a532c3aac709ffba1f91ac84a69a3a5229c8f0d78231773fee2854f02018a232da2e7d4762682587ef80a2f33f296416b2e04ee0ea8da02a5da76e7f3b7e4cd8036ad223563c2627d23bd0665fddee12aa8f8622e6938112d02d27379fc30849e726500a9efc48e96ac0f83096ae7c66ed49bc3b218a54a3ecb32d8656a4f768c8a698d97e57357d6496ef0831d624f20832e6f2de2f459dfc775cec33d9237164f2aeb30a533540440df79694888ff1e690a466a1884fdb12257458bf84af4814e506706e3892514e6cfb252ab3e1f474b0a7b31238fbe567189b6cb8c0504b81bdd47edea56b1fa998516123ba3ba89e276e7d90419afe8e3f52df0a4d4b5fd1e70ded3ef0dcc746680d1078f8c43066676e93dc014c3586357cfc58ab3920ac258223f84ee3aca08b917b09d07d5530916d33b544055450c67b8ad5762df39531c16f4110e01b8c945facfe958062bee7189866aaa8a4cc1a5e50edc01a6ed2f07a6a71066316c883a1f96c6a54ccc2cfc8d21b1e4a5a87cc1c6bdb3adba06fcf2b24c79de87a372f204d270b00b5ab427b5e5d3e76c6f038c395b10d6c334995b95f37d4f9dbde51bf75cb8b4c2458c67fc5b454d97de14d51246410ae66d4af9ed30cbe986d176104bd09c8ae2d27b51b7a129800ff53022e07d63e8c378e830322582eef5b1aa79bd791cb1bb5c4e78225bf9a7eaf34777f6d571b52e9d54cd42ad6dec1b1da03614409082f0146357a3f4ea180a71bf50edf86ad5ce4c36c92692aa50b6233ef74399e6ddc1cae3c3ae48a73da8f74f9189af760364945714248717bcfdf95144f012dbfff9ce3514399eab7e2ec60503769b56ace45a5de5642f41ed1232684ea9090d9473b4dcfb823abc9e5b826fdcaa63522161b85fc7a7d760601b44b03aa66727a5a30d03a4a074bb421014a09cb43e3794079fd9ede5c20955a5e46dfbee4f5ed93b1fae472a025ab878f877ba2a546c7882a8412a2129f9d0a10b87acdb00ee90b03a0e186cb4a52f66d5f348d2396506c235b922da594322599028a074707bb078f89b2cdbb63c0fbac9fe8babb5f7fb66658ff769e1bcf955bc4799cd09291d125c09d50d47e6883e28b703bbe4a34c03986c0ee14fe22eee2df3373923b828107483e921ba0f7ac0b5fc87d4afa051fc6059023696f60bba7848b0b9f88dfba4e111093f1a4082845248931320292ff8c2010334479818717001dc1c003f41ec90dd0110c0d341f490280decb0d49028088aea4f09e080813d1951fa22b29c87f1cd173ec3a90715002184ca9411555b48002888160d10d5f5ea0830e5d9c562006102c853732027aafa47b4458c2393a58910dea46c87d80c96c716127e77744eee43e20a4088b991bb90fb013ce754417fef30d3a41c395dc141abf2372bbf71e5f48d1932b3f808023a51bbf835ce7c2f50fb0134b6efc4e0417cac801a1c265843048c01ea8dc9ccbb11e92dc2944fc448a9e00654635b0c062440646f0df14a30f64e88109d290109084f06234b40293b9538c46088384510b08385272c1889d5802c4df89e0c667e658942e77e8dd292f3019a08c39227e221fd061072a8a9c313202a29cd1919111107f477423d771a7223042982e6922a0d2020b1fd018499306884d605d6fe982ea30fe9b34c6f7a79b8d51c2edf50d7187db92118aa9ecde82bdbf5cbe7f269f4af93edfdd6d700e99c36d350e0e84223f4e79619ba9fcec829173bc5b42bf6294135c9877d47e61df7d501fffe53ef5e3e7740f7c1c9ce39987dad6a13ab475e8c78f367818c386f4cbb1284b264b95f6fe97633c88b939fda2f47126cee48438160587cbb12837dc56bf28bc19330ff375222adb261b9f211da1b295e29d9fffd597e221519041f2216ff23dd500f92dfff177a8ba054d1ef3f96703e633bd2e1cbd50c4e80e413d0b4557a80bc10ece48735960262a4c4c70ebb350742bffc8b81ea82ba58c314208ddbdbbdfbb31c5e3f1405dd44471fc31c5037599793ad486f3e3a70b5c107d21a2dbb90fdac97ffd92a34abb1c8ba2e4c28ffdb106f061385e25c46f91f169a0a8e3c6f8ef8b54e6c7fc345059b2fe09fcd9b3e5e3a013878ef941ba87633c28ddf9152802c79dcf29de66d3b3a275c59dfef35993cd785265cb057cb590bc5c7fcd3df0f8cb6d1f956938b14fee5340bfb3751354d59eb135ea777757fdc8819ac522e2f66b0f28d21286062d37b8c10b323100318b0adbbd6c6c872db77fc787b8fcb8d80e56ae92cab60bdb2f80ca160bdbafd55c8e21952006e50c2721850c2e5c9ab2609102c4a9ca9fdaf19e61fb80fda22c55b05ffcadeee99e5967967d3635cbaab35fdabf540fcf72a1f6a89f43defcbcc66ef4957399eba43353962a0853aeff7e093de92e47bdd8c43a592a6c47e318ddb24e2d54b64e7c61c26a14dea86c99da87317c20f3c4142d53a880b1a8980f4b311f9874136058f8efbd4a1292d3adac42e23f7c310148901fb238162c1eab20512d880a4610e86101e2c9bb54e89e16fc13aa8c71e197d03e118805b7e3a615b0172c3bddd3e1f88046467e39e5c31aa57cf092109b3132ba43ab1bdf870c6937ae707b8890026e33cffb21e9ea1e38847f48feb8801008420ab88f0145b739e69d97e2d1f9a778bcf7ce5f8ee0c627220109884c22b4e8c6232ef30ee5bafea0c975feec3e9cc3f9d191e072ff3f9779a7ebe7fe1ffde37d7f0e14a61b37e6d80f31dcb8c56bdf1968d0bc34bcc31f195074c46d23dee1362a725f9644651b03aea995b522bfc131284a31285a623a78b1c1f9f1deff75123ae420e6f20a01f13574aea8dfd3c2df2b7a6f0704dc5d7b5b7c87cf1b1a61a05676ce4688c80de237a0374721a43c381a9453024e88c8ed239be80f46f98ec3a3dfdfb9f841fe505ef9d3af4b65bb84ad364d2714551bcb458808bf0c546e77e8d01dfa6b5b7def5b08b7be7b039ec0f2af5e3e53e4e2c617dabcf6289baf9a66f336a1f95d8a7bdfaa57ed00623923f6ab4cf1107a696ebfd04b73e3737d9baff9fad566abe91aee996e90d003b19cfd234540963b72f32aeee9ff74083f5cb772df2fbf597db675454997724253565c12fbf627f7d7c84b037405beb55b10d7f1c87d01d2c4f5cf9eecfb07711f95b5af3a625b47f88fd8f757c17d546eab514de2ef0f99046f66123afe72df3b973dd9feee1fba3fe4d6797fc4e16bce72add66be7b2e3ca792806e2160997bbedb20796d502726790907f071b6e42fe9de43aeaa91dda6b5f5fe33e4ad4c34d680a8a4b423fa3f4b3fe2394234241d9610827371c110324a03f72c4bacefb23946b118945b1e30edf3773d594c04a8fa73e4fed50a56ad7efeaf7e651cc2ffadec5a9dff747df9baf371ba71e50a482a42262a040892b526401c4ac73f37463719d76e9df6c1dbca8ff71a2bbe2589b10ede2d8bc8ab3d6614bd9d786b335d46c945ff5b9fe7b48ffbdea7bca07acaf5ed47325ba2f0999456f9e6462f74912ff888cf25d87be2c7fcb7d92d03f329f4e2e09053a22d9752217aff447eed97579e3a7d25cf53d96acf458b2d263c94abff8c2a6ca2e1d337667f46d4d297df5eb31c570fd1f5327b90f07dcdbcbf5273e6a71fddba9b8feaf7b32b8fe9064476c7f2744bbb45f6e996212180c53d098e007295a18f962028f4265844d3459bafe3b59cde558132665fa5d5d00f77e47a13fc85fafeee72a62df8fe059da77524a4e8846bf6d18f5e80bf09e79fb611e1d47f6e5a201f0a721d41eb0c492ebba1c5382caad3672c2a0d8452efee35caac2e025ba78b1405421b0ce566eced4a7b22ccbb823daa73a2037725aad5c92ec8fa05059f6a80c95a1b2f8831248b1332a2c2a34aa2455920a8d0a8d0a8b2a29a68492950cd50319acbfeb8aed4a78edb40ef80d889fd2ba1cdbea97bf175e1aa3b729aa4f6dbed51e7f2d6c80e5341abfc6999ce9a98c8f61a4a48994a42d5e9ac47cd13d1d8f54dbd195947be91eface5ded612cc6b118939b7a2df5c397b88ec5b9977ef94c5930b673a5ec616ac7901e3cbfc7bbf46db6be33b5a386631ea1d3fe3d09aef65e3ec5f952f76247b71fe5c3de27f4509b7b49554ee8ddf8a8cdbdf0e317630d25c1a51ce7ded42f8faa26ac52f72c758f97b8846e5165e119bcd139aa7cb0f1fdc23ba5e45ae80bdf8968b57680c1ba7d07a8da41870e2a208c9123a203e80a7401665bffaed70e95f4b97f3d4b69a094d21a9c7129d74d8ebef724e5e27f7bcd8942cd4963a09452fa96e9d26f557129d70981bde45a2cfbaf772181040aaaca49163bc2ca555d8e7151ba9c4ac1fc3739cbead7abd9123b8209c909815d150a544e624854b9a8cb312490926a97a4abb4a47a623986c4925817252431a52fd9738d3e22120a94b96f53b2b83d6486b0077a5f4f93a60fc03132a4f499636448695cc22e26c625a96138c060aa26ad160ca6baa1b94879efbdf7ded3b830e122c3b536b01c2be2728c4b92db51fe8e713172cb70627180bf5b70fb6d6bb99de6a45a271b2fc78ad0c2354c0284f045b85d0c4a51ece0775903788b1b79a31f37b8452c66802867c44e2ce9b22bc2ad8f53146027960089703b0aa79d2af46e03d1a47dfcfe0e7a9ff590c73c429c467b14aa722068dda1966b5bb669d9d71ab58c99a728fb015f7b4ef9c85eab9f6dda7bea07fdf7afb9c73c2f4d0bf40a391aa3a1275f97a9dc3e36df51547dd7eb155dd4967aba15dd5aabb6e1d0cf3ef5d5a6c8edb4e6af81e14855f955d65af4b26c1322ba427e2b100dc2f9313ffeacffd3b366fe9835937ecd501c0ffad9674c177ed0bb71d332140ac505c5efe0b3508442904401fee43af91a97f1cd344e6e369b370ccc243ca0239b87819904f90fe8c7b54d88e8427f9b8d81a0d0f623e382520f3f55834dbdcbd4570ea73efc148753b91ff4e5d347fd0ca274fea093665c27b74e7b9c4c6e3819c7237ea51284fa2a5fdbb4c8a37eadef9f71ef28a05e8bfceebba8d6a85041e25344d1fc6e5f855a6f2c55f045b8bef99d7332734236efe9ceed8895221930b9833bb7a39f1b9f71e77c90e3e4860fd6c8f8effd8fd7b8ddba4375c4f2ff34bfc318a7eac8f247faaae10d7639db2f11ae73a9aa186c0b71391644d36da4cb312b59eeeb720c08323e868c98b95dd1960e04352c71f99f2a06eb445c8eb10087fb942ec7b084b903b81cc362e4a57aa09a10738554b8fc3d506674b842446a6e3734068b1694db0d518152c7dc6e28863104b06288dbb140c510978d8c2e739acb7c8d20b93189eb4534b97f638c8832ee0bbd2d7e7d0fb92ea64509fe38dc707ec4246effdb82de772dd0f04fa1f03f8a5aa0b174fd3b2671fb4707b5bfa778bc8f911baab708a53bd4d7b9aebf85f7d7b7bf43f5f217c5d7613cff6ac3b56ff49b3afdde1eedaf4fff7d8f89faba75a80fcabed66f4dd3fea7bbce9a6f1c1fa84b39219b9a28b37eec31930c9f8435fd3f2e9f3e3ce33ecdb691156cde880d5111900ddd86c0aed0bb2d0c75ed1dbc6b7463322e0c6a4654a0214d9a3469806cbe522a6b845e1a9be707bd26b5f153aa474dfc8e3e3faccfa91eef2b7db466abd9188c5b5babd9f806b7ba56b3f118b746ad66d3be37bf36db1133b1306f0b7d373064a65447acf69c521d598d9faef695a3bf07fbbd19801aed37d8ada8adb5d4bb5fd46ba97747fd90ecfaa25edb86f80fc91f17b82d04028a5327a0fea7df734b8ebb906b1179455aa3a8a452a9544afbfaa9542a957a76a5ced45a6bfd1bd64cadb5d667572523cbb22cfb1bd64c966559f6eccac09873ce293ffe9c737ac1dddddc1d9927c277ceb1a39f728e1e7c5d959999d9c67d631e1b8d796cfe86b581adf9d46b5fdfdac0a2e65b1b58f93636af718ef7369fe21c7c6dfe6d2e1b2ec8ba8d0ff952ceef7ff47d3e7d76673a5b7857d2a7dcdfc905d18f93739f52bebbbbbb10d1f7b735c3f6db6c38fe1b8e7f6f73f6744a57f0a1c275e79877e8ff34a51fe44ffd870c6957480177485e7f5fa155b894ee38f77cdbdecf8756bef982da15f2e0a514ea23f2664a749f9017c18e684ea199264d9a33f7f97d5cf7baad726a07fd16ec15028d8adcae5f689e2992e6b64083e0fb4bad9beb17a2472f14b9435a989785a2fbe4dc3a7ef9cc0df5457142efcc85cfe1f878a91ddd7bf9beb5d017f24ebf94cf80a223eee31d06fca3bd75d0bb7be367a148c8a5905f1804af3f17c4df1cd328fdca009a6abfb05dc3b11eb4dc0ede7e0c7ca1e5a0c2ee91dafb77455f1fb5758f07eabd3e66f7cdf95d6d7be681411ff4f9e9b772fac59fd9bc5b39b583a5cafed6825b87828ec3c36ff619f7ccc3282e887e9612a2577ec62dbb03ebdf6f0b199d1fe594304619611777973fe79c51a5e305a14fd83d90a77c1865740823f4214c78ef41789b5542fa65fbd5fdb03ff2505f08add6f585ffb8e7fc9e7b6c87ceacea1e0ba0a0024593d6d3165904a5a4aa57bf6cbf607f4f11ed177c2914e467436d37b8bdb77239d67474ede558145f6e654b03cbb1289e5c8e4531c6ed5ab1289ea815f57d4349515a8d851266f554465603f305982cee7b4bdf7bed3594440d4208a3b4c103d5e69c9366355a5035140a85aa1a0a4c2a954ad5d8482a549ab5d6aa56ab2c58dacdcdcd0d8b464d1836b41a356ad4b0d1624a7343f3c0030f3cb881a3329293daf15ecee7e47c90aa00d07c7bac189833b1279880a0bd4dcba1f2f74d18594861d4c4448ccd142ff4402d0f5e54414a810cc2b822072898c4cc393d30813f21c5152994e841abc186144ba478d24316af025c8e81a9726b5c8e8161523987bcfc912dab95f3aee71c7ef9675b8b5ffe7463f1cb7fca4d637eb97bdfd7e3735aacc70911bd6ebacfbb7f16606d564ff59e4d64a457847950b748e600e6e987b74a4d84370009b0ec1582089c63b2b531c1841baad54fad262cc084d58d79e34623f11ed550df1a1f36a156a2ab7a1c38fad5366034be7b7dcbbfa3adef347fc83972de3f720e9c1b3aae3fac8377f5d5371c52ace3c8d9de11f3f4e36cefc8f6607823f47bd0dfda1e101b5cf7aac1d1e0589cdce2e6c6889318f65140113c30096106962e4400f5bf32ec83002331a2b07225055ac200f5ff2ca07b1ed2ea7f7cb5a53e6eaa6da86fa5aea38a62f976cd3362626202c232b29e82c64c2a32b6bdf48be931bdf7b624e9228b145c18a560067c06cb16288c809881490b8781022b44d040850c1839b0172b4f189d01028cd111af1fb74612b9724378c02b4474ebfb80b7725390bc51100e48d323f398de7befb1d24ff744186e900327665470a60b194527b0210645bc3062424a4a810632bed081872ca29891001ac28841c5891562740142ead77b4b966d18758f898190dceee1707bdeca3fed1ff8d3edf108fe7373e6719e9883038deba9eb461f709c42bf9e17ee29f5abff068d4da13b1890a7db4830e8ec53b4040c1a82f8618905606c01d4ff90b08f560323726003273a90220650ff5bc23e45398c99411725535e80a609a0fed7847d34a0431429965802c413470021f5129cc6c90172ebc06f2875e2fb0f16b69cb03101517bdd612abb2ae7e8cb1a7bf4b87920276ddd0d52c83a10049e0be12b7620dcf81a100ec531bd6e04e21146c87534fe7641177e85fcbaa63916f3bcb73ce5ebb12eb41a85b73921a20b617c20fd8aef66a4092a77fde109219e18823b009b0283b5a8b45a2160095302343bc8420c2b9cc9dba119101e1e110426b1807d3a4beb442328007c5cae8d88ebab0a8d756d57ba933aebeeac3b897bf99dd44ded0493601698c4a3e8beec5fd683857d2c8c5d1a0637beb9715bdb2d377ed38dbf71ddebcbfd1b97b49a449fa85f10c975e2bfec6bd2d436ced159a6526ddf7940a69bba76bab19f6e5432533bb89fa91df3b3adb76dd3d249aa278b2a63834b98d0e0686c389c0b5c0697c16570195c0697019f7cd943fd7bbfd349ef81f07073d508a1460dd6795fe3b7cdf935c27b0ac27d1f828dfbdeb5c1f736fa8f07cb977e26297dc87af8b566d192929260cffba0bba9957a89cb9225c124cab920e45836beb7740f545a6ab9d10c4a51412488a46ab2f573fe03980493ba27001f43f8f8f0838f0f21ccf90e4218000821bc594108e1cd0a5208e1e37cd749ac8710d2c89c4cf7701fdfcbb88feb5b0fbb876e0108e16645034a814810a9b5dcacb8f8aecdcfb44eec2ffdf2d24b9d0529fed6480000c0cb5427a982b0ef41f8ae936e7cd7499dd44dedd43d207cfc7e0aa2b23637ff1bd196e43e415c27be13079340e05cc8f9ae933ef88ecbe81668e9a4ced25a6a7e1c001bdf0fb69c8db54d71fd8d8dfbb50d79746eddb7b6ae3564de8e9d86de657127f42bfecd86b3e26e7571d00c08fd3a8a39b1a4aa4245452c0663c4624026c644193126c8a8d034d174b9892f973fa77b9c89180ccca050b9eb2be34fde04cdbc0917c3c494b3f35733d8a7fb5e997ea982b0d396f1320e39fa9e99fef7c52bf3cabc2f9e196824bd54559818134db41feab32ccbb2eeb49b24b9a5c3e10e2abbbaa774fb7df3c7548a436fafe15f0148bf20131a2cfd0abcf7eeefce3388730f8129f4ab8100494185157a95c4a66652f7d02c5bbae75d46a910c475fae1fbcc858baa99f6ae734417c5a9d0af06a2ca62bbb7a4e325ee0373afb0254bde8da91d38fc9fc3ee8efa3935d8f7d9e380d1cbba2a26db51f97c21eb4a58099761b0a46281e5e75bbb2e51d9d53cf9467fbf3c65c2bb3da77623c7067b53999c3b10beef87f2082a9c9adc6ad3c1db09d1aef69e9444aedf17e1bf0dc91be1bdc38730c8e2a5894325fd7ab05fb3d73c0797a8be74e5a60184af32633b9b0b1f4277b7e11cfe33cea91ac3767fe7fcdfe99ef9ba33fe9cf3638c314ad819af8c08c1c408990c6b592d77f77785189605638c483c293bb5436503dbb5ae6c754f47735cdd23e56bf279cbb161cef7e6935350091feaa50c9a3f391c1fb3b94829a594524a699665b0236acc89af9281edfe5d0c736cb0ddfd64e005c91dc0130ebedc9dcbb125902e0fd7c10c2c0815720d220086750b5476c18e66d8cede18bf655991045575e60601a83df8720fd517f63d935059d7fdd977d0d1095476714a95031bcd75fdef9d8b5347a76e7777f7e6ee6e0ee2b1333fa646e69c73ce3979b253c74ef479eb74dca6bc62c2a2be632fb4e976d0041e1086caae0ea6fddce6967ad6138bfa4ca3a9ede53a3d67cdb953fb7e8dd32ea5b03662d584955b0fc975bc828118fe71ca293d321508ec6d4260f703b0cb5cd07c3a37fa75eb5cb77ec7ba35e7d66f758fea6bad5f9feae6595bf797f53fceda54ff8488ee4ac8efea39b563c5e9e85709db3685460da76dae7e3573f70cbbcccdfff16afbc57cd35007ef75bb4318e30e6dae92b0cc75acfb564858e6e42a06963fd67434d59a57888a19478eb9a6b473e1f24391017bada6984f7a106fe70edd2191c3875b4ebf5ce6cc0ab894e453e1bbb498877f05ebc41074879452bad12a8646a54fe8d76331f711ad30f4ba270881ddeea6b7e4df0dd909078b6131b7b9a0c7799605ac96ec7b66bab4a3847d9ff3f005574bd8f72e84972ee45660ecfbd514f0692f552d073671ecd0de6c5036df42443e16a0f4f2c1d1296d633db1aaf76fd5aa7aac27d6c28030cffb6853ed50642c1d97ff877304619ef7fcc2b1d3da47d4a3b8276c672db7001b13baa7510ff3d48efa4d3921aea69a97cab8aab19ed854c6d1e93eacd6f1b96ab2ddebfa6ba77bb4771ddd433f7bd4672dadbe6b9c101d175551dc7b2f7df86cc74bab7d4c709dc8e26227d10b2c0b8bed5e93d7a471faf94ef16f6dac2736be09415651d88ec5c4cf008be99e467d77425ef79dd03d53e33a6eda31b921f8b2304f4435613db1dd6bd26405855d6128768f94eee98434e91ef89074e0f889f409e1a5fbeedce065758edd894a73c9ff300feb803042187154c075e1af62ae1b637cb972565fecfbf88fa58c52c6a90407bd3dbeecf862b73fc9f055115d4af6c8ccdf9292fb15592e257bf9fe6f4a0aa52c61674e39a784afafab29e47c73328fece07d4eb5cbcf3df8e29853ce296d0588987784b82e7309acc7753a7660cf4f888ecbadf61936562b52bad98ffcbe84cb382e7752722ca480071b32f3348e4b5f6ce278ce3923437e679614760afb1eaea4b0ef5f17553e861d3b4618237ce66115565dec8b1d5bca28655c85b10f6ea9ecbab1e2623b5813217a40f189aef813996580e0bfa7fc54efe9fd6957ceabff6d5abf2acac4c85c8971e114e3824a19295e3459bd4029e6059258174cb12e90625c9411eb22c969d062062d6a208343eb995acb6ae5b8fb844cbcc08119d3b6fc7574c69091a141153a65849cc5c828a9ad31ee6a4c96bfdd0fa3a4b4774ad0e1629df7d49ba32f4869e43807b20e34e2995acb6ae5cc396592314d55886859d6164fdccebe94d510373f14dde0f46402272a90e1cc5317639a8c0182aa54506484114963aa487af201072eb4f8428b33aaa86ec0d142092dc25499363850325a206921446c0b2b97c6e5d81638c086ab2bd6ddbd8b96154a5b2d206afa8417c224e184c30c52b6900018679cd144122ec04109286360b6f5ef7aedbc76fea519e9d2c475aea39c10d87577779fa2c4b44515314c6262a0cc16cbba5e3b36b6b821db020568ae8dcbb1315e28b567614411131fc2c82283334986c8a2c5ed2c11628eb270b222225b0de1ee938526468e780063c50559b89855951511730c178f95c0c10633a05481060c14cf2236a68bd8982b8a54ee9ecee1757777f7d7d3cd0780ddeffa0fe61c0a701e7ef8010673ffe1060d288d9f8269ce39a7fd2b9498a64d9a73ce59c383ca4876c50c5740b1a9014a0aea8a234a69a538b8a248ea68f5f4748339e79c329440881c928cb132440eb660e1943d81a91186e660b583ad024409ae60e2454c105796fc8aa71b9e7aa094521a9520a9c1911c921879b2e4e5e9e9e829899c569461059a550aa2d070921ae2512bca54b183150fd275bbc909715d8a859524403e10e8cdd9512caabc60556099aea2d8168d6151c3d52ec7b038725b4f286db55c2b1d2074b960ab1c6030368388a72d846042081e746045f70456513a0b63059a277600a2092e69aa70e2040673274e9c3c485737549144c5d20a055388eb528e5738587b3956050d2837277771a7115cdd10abe2cb959763552871bb8731bd950d304819ab42695503102e2610ba5cadd5095a2d97cb5d76b7775c2d51a2448994981392550c2a215631a856b092a10458e35b90ee93dbd10ba917b775eefbf79c985ac13eb075fa7b0bfad4af76ea573f314eb75915847d3cfec21aa32f2b252b25427e790671f3156af066eb9e20edebd601791ae5565f81dc9b340fc8cda40cf4f9c29509e00b3b6aa8dcab2357906261965c8e4d212536850daa2b5647de7bef69f057472c3217c7851f61cff05c7b3b544fd876f62d10f213f6fb5be060b8c0ca0d2f78018b247a007232a272738b9b47e5767715e0a434f244193d096bed9c54b395fe964bdfcba532db38964392173b1fc27e41db2f9863ad34c3aa80f4cb66199def071a8f323a84d199acd06ab5b846f5d32f1b9fd2183b4ed930c20683fa87cab24cebec49335035d4dddefcb4c0996533b3519dd02feb107aca474a4e19cf70774a5922a852e8d7e50c85ca340a1f84ee31cc1863cc2095199c524e49bbbe682207236c772859e0eed3a50c7243caeeb8598f323a8411ba749293811e9c653426a34ba8aa40bf2a0ae6d860a194d9cf39e77c140a6667607f741507fa559fb6583246eb1f1dfa908fe2206dfabc36840e23bc92094238a16a01fdf21823e578a8ef7cf39f261f8452c6ad280b9e1fa8140e16553d0a15110900004110004315002020140a87440291482c188a829c7d14800d83943e6e50174843510ec3300882188841d010038061801042c8d4d4500d0080195ed4afe4da4a03f092092bf769ae1ff50afdd46eef9e7d4c2b31335082c819550e9161f34460f310519efc4f1fd5515bce842cc9d2637c910ad10d06528b9c89ae77ac714a60db14808b50d2d00f7c4c05a698441e92352114363391e71f175f06e8aced441c58c90ad231fcb30248e17c6dca3ba70b64c325a5845a4711260859a33477e1b57ae04bb04b8c0eae36bf8082fb0f266d17c26832c079034546cf5b872ee796c61dd5be801ebfc626da9b2a895d6ca822ea63c02a6d7d8e74622978d604be5fda5b615ad46d707de6c4cfa19d574cfd69508f3f09fa04e0d5cf19b94ae39eb710ae82190190af2aaf34f8941cfae73db8b82698fda9e8133c79f6b9dcae8bdaa0c5b6e93c19ddb9b44cfefedd42afb6c9006e550701aea56770687ac22df1cac7f0cd1b21d85bcfce0791245ff9788ca70e12881a8f226e3c7db9accc3aac4a8d8db7a3c4df0b3d564c0e207142f543eccbe2534c4fbb9d2d4c40301f29572ace32347998a1c4afba1612e07d83b37a3188a770cab200acb261059f0e8c6731f3803d1356c2d2d51e88798d23d4755c1a905b7621b8dba7e3b0ee34346fb8770c4c74377cf9171c1529ef5fa2631b31b3a1a2ad9ca336239f585a555427b4efbd760fb7c33c6c7959b436e212093ca351ff176be7352b9b7230df77346950a5fa794d744b4160841447f2b704def344e9e2557d786bbd16122d870482c8c3ccfbe3392b9879bc8146489d1d7aec675966cef82549516976b5d9fa395122af503ede906027e1052b67e0244bf8c5c879431eee3fc911d1071821cb13376228b4975e7cdf5d6f3ded32536b07ea1e11e416609ffda5f2ce11a9e7db32a7aa1a583cc3e8bd15cc51ea3a426866150d4ec3e19304d4b83e11a6546ed238de960a4aca2b40f3e2997d319f2f72c462a476c75a3567cee328d1c050368992dae15ad6262b7e83dde5d3f84b8d471bf30a96b240e4f4e50592ac8838940ddf30371d99014730fa2003560a65809682ccf05220332ca5f818499471b6af9fab97e950f6ec923ce11ec4ae98d3fbd2be5e40a931682cd133ef5459e113b6b3489c5fc1272c66c1351a374ec6ece96f5e2c2cce4ed4e776836b552c88a73cc72a3f9494d88be1a72008a94c901a7281869f231ee054ec619021674cdbe8287e3609491a19fb38c3227b9b983447f652be1c532c7280ace4a40c17c6826f55503a6426614bd4975403ea50b041164ccc823968c0311f307f5301683b520f24da64dabe2c3bf6df3ce91a07dd62423e80ad0d195cd2ee19ed0e2813c6f7c6020fe240cd08fe217a231d22827d234f4aefc1581a17d69cf56650a8490843453cb2e26698e6104820a1be2c9c2acbe1b21fee3b161e89e18e2614bdf393280650f5084f9ea0df88efdd45e0e0870b6e1a6f510bdce9d776724acb0d57d64281a22d61bde369b48bdd337315056e79c225c20ab80aa04007fc222d156316dce86c80b4267f60e92a0f12c3208dd017c3ec282bd81e73b940ef30b3eb6320fd8eb8bf5df70e59dcf2c207054aa1329e2422b4de2bb46cf991fba006cdf223aba1403f27f751de81011bd9ee33d62ee04bf8450c0d6729b7433a99606ffe53af02a477a74fade1169ce17501a3305fca1afeaf2d024cfafb821433ac8c27d920199ce0b25081521a173b02716ef05411006111d3c8d9a9846069b538e0ce67c16bcff75ce7e239fedecc21361c023498e75760c209d850ac3c7df9895d3c957b523c6c99419307a6d9d59aeece7777b4d6c9551bd72632bda81176b1cb0a320bd05c5ac48ca46d7a5097726cdba065f00f66bb986dee8d2d0a1164005eba04a09d10e7555b2a29b40f51d6e3436e55f5e78cb870618e5b5a688e77915d41c8d344f769fb764044d0a20f03647b1713fe5015ea44d67ead31de76d47e8ffb5e31163839a7931b062db3e8bb55b365bcd373738f5ed855d4686c386e29dc495df44de33569ead0f92644941b6ffd7a662dd7f2648fd66a73cadf2ea138e75574ce2478af3d8ebf7ae3be8b345f3fb2b59aa2cfd1be98f4ea54994184f06773e9ca554efcad878993a14375a97c304ceed15ae3c785ed6242041bdbf1f285973930941ea976fe6665f296aac2de81b092a37125fb8d7f74cc18e3bcce50663376367d12d601969c3b858d8911319731ad174b9fe9eeb0058dd885eda3cf966408f60e7800c046450b9b5f4b9e6f30bc4e95565281adddf4423d6bedab2d929fedb0f0a239c21c416d8bb9e9fd5ce20e5ff4e839c7afec53d7761963d29ec4bcaa29f163811f288fabf0d6b5f04fe4ec45938a77e2e024e367485464a3fd6ff986f41c913b666e32fc0ee087faf8fa8ffa9aac648bf9229088f5b7e4c3815f26de9621947f887d65e5de0b5a5f30e037e0ceb261aacfffa95f055b9a0953e2a13267373b55d6403093a69139b55e241db8c7caf69283d9e5c6b4bae920af3587e467b7431407c7001af2b63b7bae838938cb455ae6f877dfe3e508f7b8468fa1410d11ad9b5a08255501d9aa483d77754ac2d829ce2d4e889df5d749d02aae65eee9cbbb96385523a9d85c74ef30d3a3c1a6e75d26845797a32b39281a6e65ed0cb4006e14383da0e8929b0e2da76423061468b0c45a38cfc21707754a632ae082204ef61f4da1a1c800c4cd4fab255b549423cb4ce2e7dc1b05e3f08da45aaf85eddd6cf64c7acc4cec0de33ba3a3d703d6625f2a99bba402eeedb03dffbb70c89e2261eda72aaa49fd58637f457b897284ad35b9249ddd955966422e8bd6d42e9f39c2e543c3a1644e5df0223bf14673474c9a424c6f440fd32ad19452a3b40dd5576a57873e639b6e37573184f5487fb32a1f417155b6d4b07325524cea164757b08e4370ac8de18a90da921105b9bca3e5543ae0f8f17668553a0f6778739a3790df73aa6ece29984ba17757306a9f64a090b300253c15850ac2ba8513176a2af404609be34d1acc7ecd1e3a76c23d0d50e55935c3363eeb73469375acb61e027881af13b91e57163578bf8a92fe5cd6418f8c9aa5a0983c376b6ed17cf947423068cd596a24b2de56948d3ab3694c5c92c3f680e73f882358888c93ef10c2fa14e2e295c1ac89130494a3322a34cef010c808d1f8d387f9d50039260bed10fc0b9d8e243424bdb5b18c1e0fce31c82f4c731e35cf6954f4964a12a55a0c48327fa2241dfa03eea9721797f5f0362c16c65cc0b53d149a1e27ef570927e92dc06abe704cafbd610c1d892481b831b8a6391fe76c24120561ec82531a02ec1856515d46f7c51f3f7b4ee84cc67398a6bc35e580216243d8b6908ba993df2632939c782a5964b51e51b9c0c01fc3120e125042232254a62d2c1cd9793361eb2f3fc38cb8061c6232e2119603fa2f62e38305674fbc7b25bb7fd180d4c1e20cb84a349705f976d7abea836a8b7292f75ddaa60785331b216a9ba7e95f9097a1ebbf182d374447634e262986f75c55265642af6417e58c0ca9aa4105fe0ac9f5815a402b0074aa94ac018e88a3234ffd100fff70f99e0e87e32a294f27a5f6c3e1896f198349241aa2178a4dc2dc6f95a3edefb43fed89027c8c46c79b38c93a13cb4a1446f82a68a32eee97132118ff81e7cd13a34e4216aecc6979c1052974499860c7b9df242946660a83a40bf4a6d94b4b318f9c050b5e688340ca5ae2507cbd9ee95599d9c558715516c67c858f1d124fdf8dfa0fd3987bed62f6764f080d27b1488439e7913e7873bc856271cbc6f18ab89fcb905b980031908285875e77ef97043707f110f15c581642583c04d53f2fc870104e6e0f458dc87f8a436f80c294647a9acc1995086d61fe34641d744f6270a9747f51c9f5ad81e4e0a9655102f488a310eb13dc6fe93379459e8b33b9c75f993a658e7f8dc91a429a5a0c38f119efefebb49cbdf8601a57ab385ecfa0e68863979172d19ce8010073202b141825051db3a93dde545f0c8b49aefbf13e410c7c45329883268b8719e3337dbc4f646984454b22985910255ec55a1bc446f0b352c48194d6d57260f84080151ca834ed8e256deb8da97ef721299521766ac6e636a6e2d6a2b13401f34c70df4d2acbf5099e25cd1036d12150f4e5b2b9cc01a9f8a2a7652c126e57b598e3f08c1893574d587b8602dcec4e110c657c50b1530384ac91560e68b5b54cb276795a83737b00a70cf4aa30a2b49eb390eb1e187e44113f6de245383b9a6971f913f89ed909b31973c34aee6115d973848372579e5cce6e6f60685d7ab95bcaeea4aeb25b6d8c64746146b4bc94bfd1e397c6d6afc34cb4d986a0ba0e441f79ba7ddab19d7ab02b0e7f542cc410077c06bedcf4a851ad21763b4b934683bde7db65d78dd00096cb19cc4eb505c0ec8add4142397a55f1987988bfb3217793ccb2b9c0fa72447e87a2ab2ca6dc71ae6f678401873b91926cd66507559daee5f81c7fca9ca31db25444175928844b32554f450ff1fd5382ba6bd97613a7ab8c51fa6dd73310c0e4277bdd054154b3f5986cef1c17916eff97aaf101daa30f498ae98622f327b6d168d15cb6ad0aa558ab2e293717871f07ed0d0632d6d7b40036bdb7a9f5770849e35c73bc0d2f3d6242984ccefdd8fb00705b817b39438f1915f5de8308a1fd72142891f2f24fc02a52917c1353083c8344087b872fe14c4728620a6abc089cb883ecb803e8a62fbaf49ce48226d613c9d91354e17cbd1daa40cf7aa6f9f5e4dd50895f8138bc88a35f311c6ae368abcca48fb339eeaf66e108d0f1aaf523845ee1e9e42435250454acbc7ff73c4d8ada0a5483f4716e99229f9bcaf4d0e9711980aa0ac5ef5deaf433793a31a807f39d24d67ac0c986699a22506c2a8791941be3bbc49be1a5c25546c5396a8f71dcd24e2542e37dde32ac30606009cffede0ecb80d5e066ed34c376c238669697b2c3ad70e31b9b64e9e7db3d9e77c2daaf71488dca408352e16a95c2e001b0cb2e39ef6717a0eee1e931dee92b502a17408f0a1c10a42ead7a680c579869889dea1b6d4cf31586f81f322cf15b1b60e2e14276e5abae4b3f0492bcff1125337402d3d06e4604ead68e4dc365f480cbf595dd2e976ee133d7038df6dffe402335905db9f3b558c8e97b3610427921b091e831295ae947776f334c895b9be4520b898c37903293e569ad7eee3509619709a07d76bcc77c9f7cdf77d1a98a5b5c4fc78d5ae16372c90880b168b0a2254108c984aa919ec48ee308b7a22f0beeefb2d2769495d7c3c71dacc6bdcfeff5d9805be51744ddba4854a23acdb0339fc3ef5698a844aedf2113eb7107c858dabd385f31dcef811ad5eebe230c054917e20b99cf899fcb509c280ddb8c66385c21de9c41457eef83f31eee10c5b36d2589c39beb814c716a339d767499af372880ab5499190333143226f97dfd3fbb33f8be8f2ea21f3f2e2105dbdea14668256092e301893f045ccfb8c81251ad3b418418920a087fb72fb01824d50d469ca8c7a0490f5a6fbee77342dac74585910dcddd17da4741ff44f81db7a329b818dd112b72a8f3116291aae8629890f63988be654ab15881830157a903031ab2172b96ba66c1fe61c6bd8f0025b4f84eb801ff0be3116460decfc343176a61d4d9a572ac1e7a5c4b03b1eb7477e39abf3cd62b1744eccbd9ba817c6d9754ba7d788081251f2b7025b5afc4f53e38d4bd8025aa28e8f0a41aa43c06b8249c487139f503b2971ba499e9ab4e7694c6291189850a52f103e35af58b086840c9eeff494022e2870907a9ab1a8f0f0ef900421f3a459f645a40a6dc574e11e631032b4ce38d06255c6d81a7e1aee92f03fa2b435a59097bc80a1668f24300660f615449675377490f76645a366092136fc0d28fce62f8b03a06821f7b467c5ce0e48d5b19d48cbf12167bbf8d23937a4a4ac94f1d16d2b6188ba9453b5d391fd81a81b461bc78e320cb83795f52c9b2f3e7e786310f46cead5e5d122f2050e06027dabc11345e5ff653e36d92518dc61bbc20b480efadfa7defe9e43ab15a11a6364ff87f46b18aed59a3e7408776ff9fe89c74d028029de855821f14b0996ab5c08f45f903ad778784b1670d155d387a716bc6ebb173d8e9831af576116c7df5c615de3cb4e2a6186f4216cc0c4d19266bf83d31c16eafcec7240b901507351ebfeacd3268dd728758376126d536069dd1851783ca0735dbd70629f86ca7ed5fcf41c2859fd265003407beac89a614bb932bbb8d278c006a29d3330697c70e5d15c692e1d04fb3e20acb8599b4c1c2d26b5ac4b00c672fa53fb1724f7ed0eb3b9033409c4460f4cbca99b53eb97f4a1419eeadd1dd80400c290933e153b2d507b2c41761eee5d4600bb0578d034a41ead726375f017a67a7b97017f861dc24510241eb7ce34bb10c347373c4c60eff59c6431e22b1aeca01c4f603672e452982060e8fcb58293095c8414cd55bb0a7d76ca9319f9688dbb206c83e9f0057518f4dc1e18f3e8affb998fe153cf5128c1d518f8e8b6455b0078dcbdb81b1bc41087465ce892ea447c1a1c30accfabc4e8a4db2d61503d63eeba97854127dde08ac0f8a82d07cbd52f4b0375a5c62f4946320d2ebf0942a875e9b7747b09a6226205672770723ce7e876d0fd5f6a19d86192a73afa13b283e3b8034aca04f64636436d0dfbff4d4f04ec7529fecfdcb6fe731b3bd4832a33690e8c7a4d5a941ec60a587ac5b4213f87e4826f317c4cda49b4be82032ed343b4672ed7896091e108b0651005451d08b8150006261d08a28a8af00f4a2b056f75b4886729db37a75508a412c02bd00904541150649318805a01700bd2088e204e22f0662915bdbfd055ce18a807e611599c4497796c3eeca0dc1af29ec18c9b5f30c1378402c0ca2081005412f02a51888851bc45b009aa2b0b6fb055df38a453b58a3b1e89cfde88af712798bcdd9d7cc14eef211322240304f1e254c2c58a7702b45e3bd5d40ad378c08713a9bc2b554503fb8b8741b5d9076732a70f499e50a57348a4a0ae74a329bc21d4e3c3b4d5708e7768334e7001d9f6ebc9d7453e377ebd57d331135852b34c2d914ce4dd1727c49df0b5585f66e3a85fb884310a3e4e3dbe267c6b7804622fa7ee6f816ddc529436e4de610f2cc2c018900a131b2ebd951645b331ac3131915fe08332b4a16691e01c6915450ba56e6a02babb6703153e8867d912ebc9c5a056e0025e0944cd433e02a42ce1ff3dc4ef0749804982e0285dc819c08432d8170b425b8b159728e955fbe7cb786b21605b50426957912f1affe21ab75d729b622a6f627283a66140f93e3ea3effefc005450ffcde2deec22a8036a668087d9640634ea4838084bc58ffcc02c6230d1bcff231c8b2b0b0fef854bbc179e6fdd0db7cb545889ab276325a5dc8363a5726fdba36817dab7993c17d76b8fd8e43606c4ea7e58ac7fe38a391501eec578d772ca7461c06954157de748d9bd46373c559d562fc1da884c2c109cdc5e38ab343b760d5e43a139430fd27c6adf73ee29045893dec1b93f4f805157abf95542fd436312f786088a257d8b79ee9d7c6db51c42b58abf01911adf3b9f7405587365abeab384b77ea44f3e4c5adb1eaa47039ec29e2b2a098cd2ab0b82f547669799c6578f642ca2586062b4e46bd1f67f4bb707efe5fd9b6789dbc1de4d93f0f32e053ded3e7934b9433cf13df18807b28393171df08fd3eb140232470790a6ff8193e85bcb535a2ba91a1173cd11258102395af697fa2702b8302dce64837ce45e6e7f0b40c2fa0dd2d73788173987ab5929d3f01ea172a37b9548a7ef4cdffc06e31a7f62510e44149e851199e21d7dd6d1cdaa9960f10057a4eddd00748bd4eb133e4cb0cbafc09aaf19607e4e647018618b9fde285388ad00387cefd755bfedb59069da6a02f22566c07146fa5159be7d803c50aac0ed969740278c1e16a641af796b35c20f3696d59aae6456245afc5e5d46de8fc7749007889ed7120fbcc501e877ad1c206c1a31d1ea9dca09201d91f6b150fad6dc0e823b6fcaa8beb58a0cad85be4a11364016354366f06485f4c612871e01129f4be22d69457c3980a425a2f4b4b669b7a45bf34a39dee6d9d373a7a32920e31d01f227eba41b2ef11cab972ecd7e0c80cc3f1a1d44adc5571b426ff10f91b60880451513dc24b9cd4ad59aeba396e95f6ad6424fe4fc95e308f15c8f2db02bb8f48f5da883c86a891a98f8a5f4f6b7662d48e499e7f4c08480d1f54f1b341009a74259dfb3c29063f705411cc491c04ea345d550dffba34fc2957f4d4033a119ca58a83a105555631814972e29cdfd6692b59ecf2c1a02d8869b5b552466f92e5fb79933eb12519be18de5e53c06ff307e7690bc51be4af78c8c196f03e11a4b87752bcdcd9eea4f8b93ad60c97560afae286373d53c247aec6ac66ed618a795498241c05aaf3aef75850b356a15a287586b3f748588ce7f2bdf364e194ef451e8cc8808adc217407acee44a789bb3a3bd02848a05c0154296276903b004e118efdcb4a6c7b9f499a84f70b7d07087f90d3b47cec701d70c0c269d4e99585dace639fe78418c3e16cb891a08b801fa599e31227342a76d9779a2921c835b79d492e8da4c6a06528ecc05c2375fba700317919461b99101815a1df9004b3367c87d9b6055b286d8904098816fbb86184424de9ea6bb2649d30bac5d35e657c7b9c578d7cc0b14456a758595812678aa5e28bfcd1e1c3ef124a7612f4f7d577cc3060e63ff229ac4d16da7515f6aa0a261308fc605030f919e1f205c68ab232b8020ec3cc68a3b03abf22c71fc8d458d748e0404e356e97c64d0ccac43b4361e3234778fc88c75704ad7fe449cb2ccfe41ebfeb7cb4a7737dcaef76510028696001c5541d5a70bbc77eff502e79216b96416379e868cc611575218da9ccde44b4a04a8a0693e4d86f4a5906aa4b05e015a75c56147fed8859ea988053894a48d5b142b68b30ed164cc06c0d6f4471529a562e5477895349259517d8910e197560cf2498ca22ede31726017c6f1fdda9446f5b06fd7d2e4f9703e2590b39415f1c19ecac7eb1c2af8e8cdf29a9268c1122ff548ff0b0ce29d98963c14e208764012a2362bacfe581f28f9499abf31f741823ec6cc8715142d618f92402cbb1a0fad8de7016b5177dc22f7bfd437a4513d2d41d3a0c35e64a2016730c8c7eb8619f9d95701f98a6567395af1584071b1095210012d851b7def47beec77186343f07e706f4c812fecc31583a3ad2b54cd8371a7108cccb5e7c7c99088685770851835a8090a0cd55c1dc9b909b390d2e81870a1d9ef1bcf3c29f41a3f7aea7975cd17305335c50324bf6daac80021d98c95243658548b0cb112842123e6c23c8df29129c9d8457dc2a9192c5e31c06a41005e1deecd23ba2b2cf70bd99b60665c456de1640f5081410fb912b541203bc5c3afa360a1d3d0757909d2d45f505446a048a05ff9909b3ba4dcca33dc0527531a035afbbb29a0a464d7ac89d6848129e8932cb61665a240763b0da762d509084bb703775e0f3f33b03fe1ab9e3379173aa47c0cb4ee98a8b8ffc722fe42c7924f290c7a4839d77b162fee55f014c5ea85699db60500a3a2e5778789214dbed286dff9a77d765c24760e4efe1199c8ec48855e690b5bb67c465f17dcad3cd6a6d17f5c8456f563a41325c1ed5871215b7a4215b258ae22d4ac0bc0275235d85d48e343250cd3b65ffc00aca651e64d43d17f8c03b7349c6db4b9ada7c932da2316ae30020d85b2f1a0a5fcd9bed3bb37ec454ab173b7ef993abc9167d6a58834d8a7d14e3f6ed92a5569b23ba70a5782d72a115c2cbe34f9dcacd513512bff54148f5edc5d220b27a21f89b4693aec375acceabd375b64ed579aabb1dc16d22045241d00e6978e1646d9117405d3eac91b18bb1a651c710ff66652d30c2f5df13c5739bee3cea074e84e579a61288b41992b99bae38b9d1aaf4bcc5c566aaeeb714d58db9a8df94c2eda65ea5f12cb6dd530cbaf5dc6e8aaa1b7ff1b269a5db6d8d4ae75d4c9baee0bc57a8ee198be326158e6f88aaecc06c2727f3a66b720510b99d61b2602bee028fd996c6daa61fcb14328e2bad1379e4c68688b52745ba7ea3f5918e6dd054e7c159b04b84093b912c6f6c1d7ce38032a79b815e054ac0fc106dc59db088e0e55096711a3a48bb78eb9e95e5387870cf2ee07a0bd8fe4dae95081388c942a97dcc60315d7283d282fbaf5024de8e188a590fbe4b4a312d9bc5e16dfd8a706fcd96260069ce79faab46611c08bf82c9cd88eca52b23ba5614797c03f8abdf78c9910508c88183cb393d593308e176a1671075e8759d71e83b746e02e37235d083114a207e5a39a4b853f25bca3caa69946535751c05a338c249195d91a5f93a6ff2dc972a6519f863bd655bdd19f3a31645f80e5b088d68358a9e15633a7c2501a2366c2735232dae0d9e1633d0b6b14f22d8d2ec938c2bea6620129dbb8405c86ee900e75097640061260a72bee6c16bc85afec11959b988ab91f92e4dfeb56b4341aac03d952e38c93f9903e896f9ae0fd454679afb358c3bfa7fd9b654511c633873fdfe9393e6144709d87870afeccad4324ae64c10c77ccb3c42c42b1954532cbc1377cd0947b270b31ce14c4930aff95e7897e9a89e94a38a457f7780ffe4093b5d4c64cfc6ae7eacc1ba52cf3fe2b84e41186bc3939a33833e74e61409614c98a6a16f1df91e5eec5e1f73cffe45d3dd70058ef8705a20802dc6a7bd02631845c1059f5ce80531c8f1ba76394e4738274c9017285eff7b87a7b5e16c284ae9fd33586d9cf1462aa20a14eb077001df92aeb799c9902dda7e4b53ac128b33bcb88137f28643c124bf27e79ed890212a7339a49eff7366fd2e52373d51540f8abe1fe80e09f19f00c94a5edc5b21a448bc3e8280e9f4fa4817b6d07a6db8bbdc65daf82808b101e0aea8c7f340a59dcf8057cb7542997d3b458e8da113d96a34c3d469e5500418507df23ece9a6a2103e2769b31f7401ee94efc7eb9f91f3314722da423b41809d1691ddb4861cf1dd1c2be3bb2a5dfa79666c09060678367bdc20651f0689843ea2395ef4607dc948584a06182b34d1279e3f6d640e174d0885c0a04de1c30786e021890b94bc04eaced3002b0b8c15a039d3203a6e4feefbbe15624244450040d578a9d65595694d00fd559d15484f24aaeb7c886b576dd0fe98615f50aeb4f82f8392912e25f819f9c5a76390da20f6955db9bb1f4622c054eda3403a4144dde1e656bd62a65299e0bc56c82c7a0c131243a6a7a49ba93c0ea8bbada3c4bc252e309d14f9706124a4b2e4b054efea5e29e93524c8592b00dc1efbb324afd4d94fa9551ea32766e98a7548b3c5686288edb920f8356b4fe9df7c8ecd7aa42f96b8531aa8bc4d3092c0fb5ce7ea105a40521e7f82ebbb1676ea5d7d6ad909a403afbb03a6f00677e37e8fe7d4ea74c6bcbf16e10498bd3704a7ecb8f0be3fabdb428a60ae2e6ad8f7b42b8a108550bf7e8e47cc8d91c228160e2fdbfc9ff7762bd91a46aa618beca505b2decf124c912a0d64ee8a7362709977ed09b525a9ce54b1be7cf370d6f8bdc120a03853a6e9096faca98b26a371f4c26ec97d4cb200beb68a04f870e72c5a13522f91092d97b3160c9ae7f7aaedea06b54c97935da97e85aa351e267111b62baa045b5ddfc83f391fa51bc60ad0faf484c95d924b22ef63c7e3541fda059caf7cb1b3288e069fe0b44d2b5ab94005bbc05213f914f4349999669250b35e5a89f1ce53ff98c94d81acaed0de18c13f6393016b75c2a914c151d17c180cecaddeb89d9e71b0e0d7b00c251c17edfa2752a7534f540a7762812a30c46fbc2e68dc9efd73a4538fb032c9734a8d525e2011744ab9601921c6f440324ad1983286d3c6f7a3e1ac7fcf2dc075f71184fc1b3acaed041310c4ba595097f61c3b2e05f5426dbd17d4765041602db3c825c9158d59770ed604c5fb0984e2f4edca975af6dbd3216807e0ca58c9305aeb395f2e1137a7ff92090a35c11a7d1bbe4eb4865098674f9ae6a5e25838f6274978462850f41488edca61f6234e7135e6381a588bca0fae2de1d7fa8e0d7690c9fea8f70c9395b12ea7c81c6f0f6f74c9ddc1fd1bbde925e4b50b7f2b2785aaa6d1197e9a61b7909c96cf2650b710fe2b8317bbb3f9108f86015f2593d2297e7a8f980385e65d8fd10b0340aaccd82c2c0685020aa4867d11592db82de4c71b0a52cc3be962b33890781928e3ceeaed9a39878e7b4f12187a4b20376430e41748834cf668e6507ff57fc87aaf47ebf4c6eb3b13752b809d9ac6510882761d9724fefb5125aacb24a65a67b4ddca985d0bab5e5e4d627dc74962d42df2a8fc72822b791ee914f29e2a63ffbd88792cea77885dd64c6c6b15a096ea3cde000c9fc198a15f8074cd73a0c4d296a40ad1b1aaa6f089313b2020ffea2f0ee5052e3c0d8f45e07c705070127f94b11260beb81e5638e565b94a3ddd145a25e03a48c3361a3078bb415d9ac1c3e90ba9ed32216c5f07f1851b6ab508b24cf0e41d8a9f0d7bc02a379bc650501d7e0e39940ce9fa6fa16ed66f07801c0b0605b9a6c00319c6db2ac8eb0a727519b03671ee9bb0341bd51fd96b3162dda652470d543540189cfc0bc1f217a1134d5fb68009c22b2b3397bd650bc17b36cab78d52613a29530ac7a0352bf3af6a5fde52a1bb84709a1203845da5cb5e3c959b6098e7b53437d5d5ecccb142396dc203cef5dc3598a1469734e0b99da7e54fe68735f98e6786a8dd40e2f38aff2c2a3032e73b4592c200cc8daa1ee2346e6897f0d5c1c3fa7cd469bf7a50662155a2eee75983ac79fd5ef414bbdd6558fcf48fc38051c991eec3b7ea3cd94af4715497fe8154166fb6453211dafd4d373ac27a5d336daac9801d222000967273885582dd02cb565d72ffc5a9f086eb4b93d070f03a8123efb88cf51f83f6096f254d252cb1524116710849cf1faada0fe4010ce0e1fd14c98a95ccddf68734e235cd02e40519a9a6841567990d0bb57270cad9070851dc9b307e454161e7d342c0c5d2bf3c6364c939c63a025da4c5c906a77a945f66b9a29d5ac0ca258e1974c829e16ae34df932e957a87e48c7cf5f1a84c6365b4195e4cc81eac287a68eb13e18e0bbf1249f3f233d7a1760fe3fb5454b2e2a3398d107bc17a7e520a5e377acb5a869179d0d5dcf6d036fee743635604031a92d16688ca584963b82b39e2d39d0a1b925c986c8e4c4b49b2db0b0bfdd9050052532803b2f339ad1943496c66cb68b3a2eccfd52679dfe0d1d79711218dae194ad1d446b499e15d201359928f64beb0262c20e429dd6710fff9343d31d36161c58e56967f5e561f560d450f6256735183576386eb5f9b2944380bb6cf43ce0f4ef3e83c11773ff2ed081c236641548e3bde34def16d34339139bf10c4d40790401db0cdb9e1ee9ab8989658ecc086557ba9cf5292f5b7b02830f9cd4017a18804bc3ab994201c8dde3a5df9cc3ace04eb96b411549b2d0f13747cd4d6e632c99de14e2f4016ae0a5d0c4a5a276a8d8c54974629fec50d7e00915e8ae14672b2884d6c62a56b6d5621dd9c543f0acc130ab7c137dc1a9dcd97140565178fbaf4b582b00fa86cc0465c755a51b22243e3aed3c14611c86b996ee42f12560b4e79479ad51bf9ac05cdb01df90b2768827f67de2fbaaf0972ce890706048588dc5f8f3a6b3818d8262aafba8ef49f43c0a568418a12e0b2ccf1aea6150a72d0bf89dd611618b0ae20c8f7bd6d74776be610de6c9ad6e0ef25a193dc8462016159d72c013c71a973dc1908236ff8283844c1f8fa76ed86d1f2e81d6ae8189f89dea3b6a6f73cc7bd3728d779a1b6cb5cb6c7dadefeb3cee4375e601b2a90e6422773ddd606e573dc181127f5f547582876dc6e33df2728178ca7011d37455363dd48fdc243b552264fc73d52473028946ec57742ee62502d1b63f0b943360e24c041ef94d7eaef43dc89665da6b289a9b1b085e75336e486325629a94bc14684de357925181af033d1114d20978859f1a4c9015f7ed930508b0650c865187ea19445fa00ce992839b2ff816770de7722d7249b9d4fd060e299fd9ffc4c9e86c7a9da2d1f82644db77e4a3531dfde5aeea8351c3ccd9f0f8613e819c792378c28d2a73a609f6e1cfc8e50ec574ff093ee3ada1e68594a513c8dae009fc985d91cbc4cc3a8f7ab87f87dacd34c46bb4b831d1985705d73ae0d1c4540d8e74a59649645a13ebac05c9aa5a0ea25ec92d07c406817708fa852875c5f1a4b7b839a58558d0aac06cd46166eacc6ad98b137af6ed6e284f970ee49474e485d10253affec343c93e0040a6c6755b6488caeaba65768505494cf62f56bfcd6408d00654588ad0accd4af00878e12be1cdb7e81b83e3880b1e3fb72e285d5880518080f5d0970c9c1c83a4c795c0aea616033cb57bba9f2af538baaff443da9630da9ccf8582cf2166e495988d52e28e012e86b827d78581cf9fee5d76cc4ede1b1ffb6ae6e6ea5dcef1e6c2ea9786ecce96ef32bc4a961bb958b6c556dd95f39ba1946478021fa905180256c2c9db0e3235c3b1e978d3a23e57c0c8565a00ba084e2322ff1693bc51be178140cf14475cc21e8bb6590cec03222e557c76ee55b8e4769684c64fc0927546b3459671e157408428d8cb3e16882cadb26227ba0a42aac0e41805e15daf7ce1e377975785277cae504dcc4b534550cf44e981fbcda126b08b9f6186042e5ac99a3ccb423c977984b0f792bc69befd4c69b7dac3b66d66a6ea83a4a7821dcc759272fe554e329b1c3faba6313ed7f319b5940d7ab070ed0385f690b0220108019fb1bc52fa1afa708db7693860aedb7439191fa46aabf4e354562135a78f07d9fc8eb38d96f377d4ca57b08677e9c02c3ad771a86dc574dec9bf31a839e72d97da888f9db9e7342b4f2682c5572fa999e61527c4acc4b8b5ac0afbc1d0843246a464c54b9a05de14b310484bbaaddf8f30b513d409b8afdf0c19e0c112222623589ebe53ea35b2f2a5d78877876a16f94dc9471c0c4a4d06af64228d31d9a81bf195a085c690190a51f06ecc3dfe80c16303dc85870b2f0a3d36e8fcb4609949ff8105b1e9ae5c75fbbe708182bd82584acbf3bf2952d96774820db4a092c13f94639b2fe777971d167cb6b562401d4aa5699e257791c42df09d48f06baf6092476cc6da33164fdd79cda958529621a890b2d9c0e12914bc32bbec82dc3c6392b3242807534c34401d20b27f49243e4e24559b301ec0f70b0cc4b224beacc74b68cae8a7ece55f0138dcce414af09fb37152730a3449d8e07aaa0bf8b4e4d7c0dc4a9f89ff6a9e90f500742242c8e08daf75cd665aaed553706f059fcad187a828aef7bfec5025df63cd37e5cb69fa3e95f4df87289200f3c83f5940b27533e8c921ee15d1a301cd9db461d6a48fdf9d0f01d162afdfbfbb4c59fd350654612ba35b5801def32cc9536a6e877c7f1234bdae30a21092998222db3658b1db4c85ba3ccf21a0acf826ec5f7a36e9df6c2729d284e0663d91105eed769a53c96102f8062aeda67268de1296fa00496b4c8f45867d4a454966cdf70f66f788e0c1081a386775637b891c230b28448370487703bf740256c7e6252610feadd237a45f975a5193e043b0984734c709f7e78dce6611911777150bca08691d144863191bdf2a169d151f9337619077635e355b95615155dbd8b598151cf99410fd7f4b749031a00b0f04c3cf6e0f49c9559de86e8d58687c010662aeb646edf77a02780fd25744c33e5adbb0d42559e58314224f36fca051f51b14502f55000850a68ff16fdd13d2b6af73392c9fd03c97096fd806056c18eaae12fcf14f3d1e896f40b408251d3249960316badf5619585974b8c0341cf4a2dd23cd074b8f7d9768d6ef6684fa5bbfce5a72cd321c925e2cc9e554b946e30daba3a1dc97e1d27e4d286f42f0d82106b6a79ac5b17da06aae6b3a1b71f20dd5f89b7dc7ae77d5be19143d1cc8785804924af9a63ad9edc26a9634e7e2c85795b41c1480995e7b88d6f7ddacb24a169f9452b5b75d4e4ae44b0dff6e537a10b625e02d16220027381c23f8dec0f045a870e82bbe86d42735eef5663dbd0c29168bdc4b9495b36b4045eb5219429aff2d80663e40feeded762375d5dd59b8c6e553e896df0a41c9d8d290d670c85c891f9e1cb56c6ae03b2943eeca60d2f3c97129074e8198e8d035116bbc798bb21b397a8fbe915105b8b9e7bd2486dc7688e5d6636c10f6a11e80b802c08a278508a412c02bd0804f116805214d6ec7e0fc952ae11d6d905df738fb4d3ec19c969f71926f8402c1e44015005415f00421188053788b7009422b0a6fb05bae215890e881b7ec409f3e34f7cda58f03197fbf9ae94e9b44a464672f8dea6f0665542b02c941d3e6ca0784310443993e8f38d62c0bdbbd4ce8f75ed3d760e408664e4ab29dedc7edeb085d5468ea89a95a2066bc26f0c51bbb1f7c0f088bbe0bbcd42bb356133d38ae607e93294b81cd8984cecfa2bd4dada001f2ce7ea3fe2a3282088c203c5c6cd12cd0ecf91b836afbd81100882020ad6105eca51b9b0db3e73d823a8e19850b7cfd2b59813f6089503638c3484ce831cc131e41cf5e54c0fa332d49bdfbbe5746df5e98cb30a26c692a5050df1a5174ee4d090f1d96d20d278fcad207bed8b30b9e4b01be0e81b7afcf00f9d28d2547849f9f8efc6705ef7a9cda7378d23392e48d5f72ac5a063c4735497ccb9b6e460b040a037f30ceebf6afd590337ea239a51cf2fe4b407fe849ff36b68d30bfd954cf8e92fe26be7a16419fab44cfd8aedff5e9bd1927ea07ad018bf90b64f9001677cfb7f3451145c5e243433f2e16594beaf0a3e15097dfc143218222a4c545ee8789b22f8ac4b9f5ec06d3fb33282a78f21b1663b706f78128f61caacc34f18e0e58c24cce2bcec39c984b9ee9d86aa4c3882190f11e4739e11d1562fb9b09b83b0cca33ee5ad2ee0b31c04e20ddecb1ea96390888b13966bcc08a63160a3a5e260ecfe56f89a8e41774256ac041f710768290524a58ff9d5c9fc7adad0ba6ff0716699c846ee1e6e91a92a71b05754903dc452363ec0dbbab072074e5f1807ad38fccfbd4efab573dbaa48d044a509b11c2c2dc063029c663681f627b785f394c4e49544036c05aecf4a3db474e69bd010ca6e69b6a76dce58cdb0d1ae2b271e92fd0321955920f96d6c2a19e12bed7508a97ec5019143cc8a4fb3c9601d9e892126df2b7cac0f3d97f6305b2bf857ca627d440b14931fb4e5cb08574b2dc91bd264e6953983b4cab24a96c316b34c59d78de3a95bda8470dfeefce08d682466089e534883f408c1346fb2dd5eb49d12e0f2f5ecca96087beed7ef9c70f0e3223a8a3eb3fde952bb52a9496cb6a0072dcd1d32fa67b363e990dfd5d4415c4616a9c43fe0df50d6f787041c65c485105d66e96509f7454dec9039538a3e37bbca37543618653835fa0b9a089f14ca7a04708d5129565d54083979a620d8ff3b10fc284ea1d612fd9003f896f0b988c50f04e2a7b6936b38b817632103b056928978590d192b075eadeb9a88ac956b38907cea98c3196adcdcdad4aada4ef7087d2b8d9a678dc4d6ce2bd7a844c89684b45452abbfc68cb864acf55db04ffd90a35ca39393a0cb791b1cc8270e1a8f0f9282ebe41af9fb5643b414363537e5629ec0cef4748336eb0b5031b747aa3f4f087ed3289a0a44a27513110f7a0326873f54c513ad4af21081b3a832b41780b807863efa46b482f641ae08f0ee6c1c0a9fe09c8e1594d6f8c25fac8012848c7097e328ae890978eb78e8fc23af830ab2dbde7a43e1a8cf090ff3830033eeb50d625c0695f6f65b3c4a600a1483265a911288ceeecd424ee9c976a5d381b5b9893421174119a29ccf0d6348c11aa006c60d551e02a2601219d6acf0b291b7953e20b6974266648370078d82609a0b1f160c499178490edf50e5e45eb0373ae11f0b4817cfe3e46eaaf00c59f2244586f415b307ddede07e60913aae3132db529cf4b409942041ee7889ab6f72c4436f0704484196a5e623aab6a26c29be5f3dc029e598e1f3931783d451b30378ea6bc6130c465b4d46557d653285e406af9aefc5cb82bf70eb6c4fc2df642c5e0e609176b75f6009d45d69808e8c4c48f4382cef9a39543a9838e7a035ea8efc5b2fb164f75d52a6245bc0b282174ea1eb6e1225d70c746684d7df2c483ae71d507f9373c23e8bdb645a2a2d7b7f26e00025b92ce20827e40818d0438fbd164a7d513c0fefed8d3bb851922e08127bcf0b578634ec5239bb60f7ab123632c406e0cd698ee66ab79b31d5e52b7209b941aa942386b8f26c08e5bc2ecfe12d81406486bc3d44960f18c934fb2c867c8aa1cbf8e0100636b8dbe6040414aab116b23cc657544591d76f6d87c0abc4112bf3bdcc8e5e2aafc3c859dfd8d98f19891bf5e03cb37a94873627daf98dbf71e23d230d54a444787764f9153b80c4a8b0caa50b620a8adf4bdd9b6231c820fb5ba64a0e19cb8baf8ce36320e2f63ff9a43e464c5c9f019121c2c86a1aa29977fc4e180ccfb4407393504e7a0e00f94222be51a35ac811f5536c245aa32e50e179ee0fa039381c4b0bbb1ad8ac2b13f6746f9a5fd0196dc21842e232dd26c7d6a1da23ee9921b03c0bda6eebfc7a07cdd9e07c1ccf8f3d2986b760ad26d31b8ec34b40466a10f6eb73f31f38ffa2b49199d0f8ebce85809f766a3eccfad89aac6369b6d8c8a3d280d068869b33db2d346757f24fe6ba2cacdcc06bbcd849a48de6aeadb28196f8224649c778dbb03535996a03bc33e9def0d364249859ffd5300f294d4071cd2bc6ed985f3ecd293a17a729bc2f41b4bd6f850cb94d13a7a39b10fd5eb30aab198eaad01080ad97ee312bd9d70a3f4d7ffcb9f738453f1e3063cba70af24cc4d58c89f208f115a52a1c94a22899ffb062cabaf42c968ceb13ad060ddefa7d82daace063bf39bf28b82ddfd34e35b43a7ea86dfcd70d2f2fd200a0b516e1362b92cf36d92550c868b122b6d938b968306c6de0a07c3ffec26817345e8508ca4eee5dd21574bb7eb7d12838d7c5ad59e841a0b4e5cb795c0fc59db8953ba8dedaa7e752a9405166f0cfa77ff13a833c0760fe18cfeb50ba3ba0eaa7af8e0d5576fbdd2446f9c207ff311088c03dd9a4e12a13fea0217432d8430cce1c047670ecf0ed4e4d7d99b8393b2d2c6ed23ed837aff320c70b64151c724585e21a24a0647f2cecee54c71d06058ff1e3db22c76a2e5c826f0bea4b51ebb59574d8d3e0e22dbe5091568dec25edc226f7946919a7d9675a7f1fee7d51c9ecb4827a8266897eec4d5c12eb40924c1d2eda7482a86e871e727b833197220f68cbac23e0234e3378e5e3c78c2460112a3baca85568c1cbba36e9e74c97bdad69a5ac2fa04f6909f58b1fb94026571e65e2912b4da755f5f39a2b529a62b586f89e941efee5a7aa485aff051390b060bf3186588ceddf500ea2b4c7d6912eb948e9a2e83eb056eb4764085f6e699f291e31594bf1edef2ffe54048ad88c6743c825c2ed56616205fa7b9e7321f09c940df0ff3d3cd8372ef9e29c2bac1bfc1289cfe35f0c1030e1b74fb4bc7990a79a574b47e6f4b2a03cdae04bade579c393f11c3d768b627cb0daba52b5c8f3f97fdff6220666223d7844fd5ee7ba77abe84b55beddeaff7c5ec5da01701607f5bf4fa21002dc87f2c1a725438a1d49f2613fdc6b0a8afc94163e50fec03bab9df3e66e0b4d02d2a788ab2e17928e4fac079c68098cc361cf746a83f88818cb67bea0e7fc47e31128157cd13b4ab1cb113ddb053db2b513fc1414687c01378858d14c3cc8078f06e21306e2f423a7393767b431789a916b0282013f07d1607347773eb7146baf7f7f216870f043d000b0b16f9935b039f30c881f53b68390422c6774d35d906703a3c86b43dcb4bcb0acd906252ec64ea0ca106e8f374a1a01d593ac9ff1875d0964e429ef9d19c6eaf76139999cf7d1dca58a65a3cf2dcdd15363d19670fa94225aebc16eb90b37df6b56f7f630dfa5f599813762153f5e8230e9fbf82aabc73b303a0c41ccdebbd26d227e274654661ed964d5643b236efe435e1c603511a0533f1087a8a05155f6b6091ad825f9164b9def082d1aaad6257648aa228b47b2896c4c702129a46c575667e689c11f43b94525c5c942ff992f5d7a87b38d2957dd3185ca7cd4795be938f07ae0896d3bc48b9fb4519ed92a2cabdda11598323556dc25bbc57a593a420e54bc04b86a56147bc4c214858e08ec6d895c5a7bf7eb4a8caa9f7fd358455691292d713eba235a2b018c6b6af1cb244f8cfe79c9023064b43fdc4a0c91d9023464716bec80dbf60f352db3f0831c81883a9a39e1c3538f6c0192cb0ef8d25facbe7672fb8766bcd528a5423ef5b9f4b2cfb23082de9db6950d90b4b7c88c750abd9438c7ec01a8406eaf5c008acffc5f7a40e91b370772534e2ed236b79186119ba06d58caaaaaad107874f70fa41b098ff9f9a74752013c2950cd2cda1c16361729e270edae9b84b967a24d665137a1f742af0ab640bc6b8e2825d9b107c02e512b5757452f73b2b2621ab101e650083d836a0f10f9b67a3853c4294d216409ebecfc4c6b889acf858e5203e727f9bafe65ac31485c6f193d5ebdf714c726d62adc3ffbd349704039b18a614211452fe91d70a7b71ec1adc45cfc0991c8dca82f7a0b7a3b24d161592a9f97aa2dec04b47d9d162c89ed64241c17628cd081746167b4235a8af7b1b01f989889c45000324f75cc21bc604fd0bfab72aa11b5b2cad839dc77631836981802be5242908ab1c83d22dfb4e40d87065404cf1f7ccedbb9b3dab3314620e244666574c928f5aa2025079128474d18d91ddc81bfcb229b97e970f008b24b8d6d01289aedc1d976b49a37ead56ccbde6c834a0d23862941568f2780c8871bb89023c208dbf42128f9fb3905c17226c2c890bf4ea609b3bb839ac23938f5130cf60845885c7a3ee24f5abe9776bfffc8f6662a6c69009296c0bc5895ef447576cd96c093c824b50e9c1cafd02b4d3783796c48641e648d645d4cadc4659761782482ea7bafb8433a6b6ff47a6f7ae336cd768dddeea88102c9c7a2533568c448b6d372d63cd2b752fee5c7cfb614a5510b3b31e94f5c6e5a46b08f5160d81c04ce3728d671afe23c8256cd974a92417c190c00ff5789e69d800b3844b75f6b405c550ee3f446719c4989ddcd6c34cc5b21078b99cd1998a4d544891d943a619dfad16d3b91912917d53e57d3fe0cd362c730f0b0d6f060bc6920b338a7db8e95a962b3784bf2d90ec3c37d4967c013d6456513295b227a2ba1a407eae7ec87ecdc0632f82e263f5f46b4f9fb9a085d701784392d3ffcb8877b7610483b3444c518573a5d3d83d5cc9d4852f1109b35e04ba8b8cbae0235c1badedb34151ff5c3ed5553fc080eca6d35d038c503486b1f2ac71dd2538eeb6432444ce114d04f5d31b2af6586423bbf8833d5b5f7bd0d0557a4e2b82a06083e14455e19a7d05879000bf7c2528f64d8eed831d84cc1a22a6cc9d03da7eadd199a09e801f27f81951791691697c6f687b3eda0b3c852ee68090c32e2eeff0c7f61220122c11a37c2dc7229e89645c6b09f89e8dcf8c1e1aa70dad3ce0572bacefd0e7825571bc9b2620e21ec111aa707dd6c5c9e5e0aa535f4429f0596fe415694ee6bcead24eb8f4a967167545922dc45cc99706f703707d52dcac565dde25e58b962b23259505b8886376d3cf15c2480c28dbc5a703a0ba4c181f5f74aaefb4b54d1d5cf9707d9305402eff681814ccb8751ddd5c5fd409892f4b1539b397aff3576865d360bedc5f0c1aa8dccef64428102b8ac3062c008e4b2f96785672e81346d8386b09ef65d43d2838c89ed6e782a2fc997430b16540d89ed0a6bc1c2adce169db9658340fbf85c43f2b2dff3c4d7953d61b99bea678279f476d06dc10dca552ac4eb6ef4758e4e8ce3b8b56f936871cde50f62bc3b20edd33de9191921a5f89271124e73596e185d70a194c8c5681d34d4127af3ca97dde2b7015eebf7a84b0a4892054bd88c6916c004f206a699762ae71ae8410ba2a622688e0ebd5de9a1a12e35dc7a498881f583fc239364029a2df28ad88933ba63bb85c174412e9a1c71ea0f7c4e9617b57532a31556f646a0cf24d446efd641f05682f0eed90a27ca5c2f9a9368e1b5a6ed1d512673b1ccf3e30f533d3c8395d9fff96746077bb6de55a0018ba853afc17bc11077676de8083009f677d846eae130bac6b15f05ad473e3a5b010215780ccf587f40e0e1742472b843911ba5f374f0563e18cb72409d707063113e39e2a703c9af8dd11b896393b27431764a756cfe5bec793adc244129f922ed5103c1053b71247bb6852336df8a46e749280e365b7c606a7c827b1c1fa17a8f816577408b5aea5d211d94926abffa02eef1dff08ada5fc980240f4967a14c9fea56fa588e948ed8d5f8803ce79a56f2f9b912462295ea8a0f10babe1e3d003f8f3d630d864694343546bc62efe61e933ec6a1cd5e104e69278c0974f78bef9559ad152ec999c529a186740a0d32c396a9731e0417be23be67f20084921ffb8e1cc2b432ac20ec653d6fa9d8402a8619c13b12df24bdd9699deb7b978d33191d7acae7596a84c811620cf4efb29448f3ba2bc25e6e47d7a53276af9f7ed2e3b7638cd61c5d5585071f0800be39628de17c88cee9e3d3b104a6dc9c37a131961ace0c793b5ebc6ba9a7b05d5e921df3501e27f6f19e6f62590ea51985c281c3d7ed6f92b9790ce445f1054623adabbf2eef4efa2e02f489f2de61480cb79805a7b24fb4b9bd1e52f6ab255be4b5ac95966e3109421eb9e319c256380b145bfe41f8a7084b3dde05b0506d2766ef2f95a9395caf1b58de2497a277df72ae087acdb5205e62d97cc5bac5adc9ebb8eeb18db3485cd0d6368be1fac6a81b79e819a9a9b02ca53e48a43c20c8451e73817e6679b2809eb2c12cb5bfe76aef44a0e2e947213036ae6fa303c56b7c4ea6a56f2ee68774ef84473b560484c9986b29420b9d02963340db06b6dc958bbe405d79008ba12d73fd1e642465327943db0ddbc375843fdfa3e74e8d8cc8347c9365f131427326cabc0af1f0a84f6525bfbc2dd43d9c0f8c19ca5d127b836580ec83f2221ed00ee33fc957be57514d2367bb07334d0de5ffeb843913e857b74294631271cb1b4b09c79983da6b834bd72c8862136990151fb875b28a7162a987fc1ea2470dbbf12b457f87ede4326294eef61bffe55a90c3375862ed9bab46902ea4ef9b8db8f18c525bbcc2550b355e7eea5994928dbcff88ab8a35265c5ae07bc2d7ac074fd840c3257768abc702e4fe2ad0998f218d20bf471b152ed95ae1b7d7df8723f9dd8dbc2f5092b94286e2e040607e0ddbc980d6e39886fbab42d799078716e109407ad2e2174ac52afd788e334c177982047360cdb7693f19106c1f608528cc13fae4e93c65f58414cc7d9a00752e1182b4d0c988dfaf44b7321745af0eabac74afb6ce977207c2e7e5408bbd90b821f8fb24481e6f191511c236f9240fadec12c3141c147772683cf4025e50f06b479873425635c4d89f2b3b67ee012f8978140f4cac961ea5db842ef0542945148f5c5da49dae87de75edb547dcab1b0dcd759eeb9d43d6a47e09f87c43dee12301e2fa92b684949d9da40c3a90c2b61380752a77c5d1db3548a7d211323df0a319121c12010b8918a63ad98b390a3fd39a0876afabb3c02266e717cf5c177b9d9140e70d0a06b9d9c094f71f1b06136e012a9de784dbf9639aeab4a2b8388ba9aa7f97d2d600708731f05da39003195ca688e211161f3066fd4a031c50d0dd400b5761a99d0a81d4f6200fcd6ca6a949d02ad574a5ccdceb7047a7c73ede2673ce260395a44d064a45341775c19a316bff61962c87c8980274f911b14f6748d8f70004f46773f9744268cf3825793522ca622190039d968de6fb39b6f5ccd839d4df2e8b7df4e3d47879e30bdfe77452f05a3d126d87fb5e560d9f108872266377e2b09288dca5a1f16dfa41a5e9be9ccb9942c8004e26a970f887a4f8ed902dc39112f565b78614a692dc8c6657bbc2e5f2810a15aeee4861bb3f02ffadc5cde0d14085076b9772b37a653adf14c6b2c7dd28fe1e511807a7fc35805edb17477ce9c10815136954fa2adb7d97cf8fa0418c67719fe1075cba069b449fe408eb2bb7daf0a1a142950056e94530819415c56ac50a593120f85f09907546320debe1f81928d1b60282868353e5e9fb61954ed476265b5cc51d42cef7bec378fc6ef31cea0982aad22d42e64f82e856f9f4c0546d2bf25ab6228597f422adb677395bb5d9fef2424ed501df7b909250c250b0f3beb10ef6e7cfd4e8fddf3e254e07427bbe93040e83f7e0cc3b5190d4beae8a72cafcd990a46602f86ef8120c42bd70d1ee3c4b6e9f0db5f98a756d017ecf2e2bd6c2acce6a126976a3d0c6efab0c4fdbb481ca3d4971ecc5d5765b80f1bbc441b9d086eaa0c904453c612309c52bb13e306eb9b40f58af45d3ff2ab610134371f41216514d0b3b6f1fd8f380620d8e996e79e4c9daf506b0bbe0d2052596ae74685a55d1138ba546abc679f1b04e260efe66f4ad1879cd92c9fe029291d2023714eaeab89905e2251f15e0e8488cd0e182b901e78c4606dcb6933e5a7cdad3850f74e04a2ac636026c43f4af187bb04dce1f87e1abaacf13a6632635a3702dc70532dc06424ccdfa62fd4f1cc9577df88dbc14893894bea032858431a06c8034805b18c3ebedee74c7c965588fb81a2a0459d6272b6336b6221ec81801ac3e5f649996366263a0a42c219804467ce2d03f63e91cfb5fa1a0d3de86c0f82f7b8445cc5e81dd19e4b0bb81156bb42e3e278a86b64b714a9aace8a5ea1771a59cb59db11aa3ebd05d14e70af96170eea58e1e8acc34f9cc1d4c890b10974b8c9140f66b00c0c821df023a24fdf8170cc7cad4d06294a69fe82d429d0b44d8adf0224353ce35a60d9627f23539413b6ff2c501e9fe4fa79e587a3dbf9e4fb70a60b84f79cca2c5d80f5e87863563d8ead40dd5583acf2e6e22bded7cd6a79328344ffff570c8a908f112477e7dc330c8e48e8c8a39de9a11b236308394b344f6b2fcfb814431485ffafcb0d470a0124934b620e727d4a4fe8eef90b196e9729b016e0ae7889cba4198f5f162280a86937e4406c804483ddabb03e1476511266e3c76008f7afcbeb65bc5c537802d8648eb63124f610f188af45e0426f8b5f0d7e046531c9b3bd26198f03e51bfba2e240b207463edf539e57cf5752f902772e59d01e2ce6b17df9af3a9fa04d5c40b1901caa07d7582da3db12ae832229cbb091d075100ac8faf37323ea4e008d709e4bdca5a07383fa8f2fe725d0da4f1f000b1dfd4591e26564e2b72857030125f173c4016182006e8ce00ea6bdac7686f582f8bdea2f9dbd8d5af0638cf2fb2ce042420019318ccca7e4faa8b0cf070b158844298e4618948e5e5e8798c1c53711baecb420394894b27d72512255cae4b05e7947ff440b7550de73d93a9b2bab3d78221fbdb7c0c657e32a42d98a61682eb96eb28d0ad622ca25549ce21a46c638802d5ae58e60b485bc362b8c295d58abf136d864cc67a6f8dafe0c9f2ef12fa9613229d72d8e4928f08f1c7df9f095c3148f1ae8e4c06573e49e97583f4ad862c24deabed7e7047ca9cbdb0110a04cd0634f985d19eb4344ebf7afbdb3a1872697557e7cfebb82eb8bcbcf0e93c2c4dba0558147b956cb82a7b42f5bcc70adf0a9673f074e1ae88fc825f0834574d970ca43bd373d36d47f0e81646b9e6eefd4ce794d22a2477729c54eae0b949c1613352bc70ebd1990133003ab9a17c8d22121ca519dd6c338fea6c4566659562abb0320880c79d3b2f7b5405ac653bb8c28823b207dc4039f43d7754693b84e796184523a1c5d7484b71b58a99b4c3916881edd699e36635fc1de786afb62a473a155bc53db67e032f85bc96f5302e35516c8ab69a55ce7d5a7e168ab84ef1e1be3eaddaae3178f78f78b8307fa8a12490e7e170b226548a522ebadc3819b695287cf757f791bf43a01d1daa90fceb870107cd117e648df6fee77f06bdb228c2157917948c70afbf0f1f2311ae0360b1f32e78a2647bff3ab8b776ecaff39826547116fcd5db9aff2e8386f65d2a182f8d57682617af8e13f815707770f72eb85538b978f562da81ed8ad08e16d6279647b5694446113d83c3ac09c4ca89aafc79d9bab1f43bd957a12b4b9b0d07fa773858fc194801e88109b873d184d30691c8352fe1d0e0f064b0dc83b8634da197a18e9e7c89d7c7e97ef81f495cdfcf131710fa547e670790d4d846271a0ad2a41e876ffd30d6f89e502d1c40b1c9caaac701b76e41720c839592363b876f958c4e18c9995691038eb6c5d7f0b2f2e8971b8a939ef72fbc9a5bf901738505b17c2b747303b2eea32fea752914ae03b7c1a9bcc3a318d23903137e0d8b2d31fe02a1c1ff80f7d0da8aa43d9e4daf5d27c8325450c24a4f8a8836dae6f44a9633f207de22d89587f6056f804eb352082b6e0c6d5bcaf09239cdc0c4ea88a39728d09391dfb7603c21ccf7c4b6793886f53344f6691dc1a3d4282a18dda149ce63bdfd3f3253401702266ed3ebda6b70fb1848e14ab970166515f9ecfd38f8b47e28aab4ce760fe18666c80119380967a1753b439c99cd738da45921ef5a2a2c30c9216a14ffe368a3ef59eedb1324c7654302952447c069411fcd0e6fcca93e580f748320a30ad9f4950abd984dcd8b3c2eb73f01f4b5021ae455625c308ec24a07fa7aed25ce245a88bed652463782fa0086a2ef2e841e2c588dfe5a71f4e8ffe5d1342aceb7b03789080c07058002208cd474dd258b3e57cf4589982d8f57845eba411771f230048deb6fdbff9290bdf7de524a99a494325a0612069f0574fe0646666b7230e6fd9f4ef95bba70b93273985666d27432994c233568ba8401b3258b937442bd1a9148338c0e8f5d74c4273927a5ee15638c1fd41a000060b1022000178000e89402c036375de77938383900c029fa7252ea5eabbd5eadbd17632cf32ca35366d9c51896659ab67199b66d1c974a652ea552e56c6373d379d7d129bb2edbdcdc749de7e1e4784e0e9d322707274747e7fb5ab4d859f96a45a75cadbc8d82399c0db97574360a7e9c0db915305bb40567436e9eb8e33b3b74ca9d1d2cf5c517f33f9ca2df0991e36cd18829edb22730e545e40b0a727c1531dae11785b5cfd85a0c44c240f833f048480c20fc481848ab9afe19340331d0c15084ed35c6eaf83f80f98fd3a96b8c3d24fe0f3186613b6bd40b29eaa8fb21c71791a71711a317912d2f24233a505a3b1d5ce26befb536642a040d79eef81a02440a5e43b66cfa2e5cf835c4871dbe8b42f10a41d42b044170b8c14ade767c0dd1a163ca590d5432b7e36b080c55f2b7e36b8890ae29a7767c0941d3d590f38e2f2161760d215f70780561c12b881729be29187f1f4b8a3b8b559d689a205b82a8601e197984628904b2055b6b6d1027b427626badb5d6febdf79a10a6d630212a5720462f20416cbd40eebd189a9709587433d02e4a8da3272850a04c284e9c50279f0c187f1f2b067716ab6bf232dab286890e8657088098f0e465740591ee49d7e465f465e31d5f465db0505233c5d50275dab180317661cdd30eff5b6bb6d09eb8abd3165a393b6ac922882cb4ecf05d42b20ad9be7c26b3276e2c0b28b327ee1067234c5ab22041b742996f09e3ef5b32953a14d42ca561ea52484305489a2847696200d221e950d09246c9be3b6a49638495c49dc5ea926877e40a353b22b1a3962ba0ccd5bcde9430f0d7771103f3842cd7ae0ad835cf9e79ed9384dad1b538b3a097d27b6326fb8e5ad00cd98f351a20649cd2cf684cd8f4bdef5956cd0edf255988d81acc9359e080939a1aae60a18a295156f080828d756875fef0951b568231c632d8d88c0b1b9b91b2f1b551f9cc0b7698df5f80b3b0d7da2e48a694325a7b66886dadb53732c8a91db59c31c1762d677038d384450ba538d53f9ae23709f1e0117fea0d6cf93f66919c35343c7fa694724a39a50c02d35c9cb004122b8e7849830511206a668a3558184a29a55a155136045815585441858b334cf28c0a3befa8e54c9028be2a30febe3254acc19e10b140a94c0c8e68c972858a325065ce44615150c99ab062066bf01151180be2decb21895470d9418c131b7460819aa83255ca60894a9571a10c95a8d6b3a420428b1558aae842c514376be855e1de5bb443932938c880080b32600274c9ecfb19481921519d91b7a3162b92d8da8e5aac10c29ff2170ac38689da12c83e59edc31a75b168be20c9a42948ae0f6338f8b4c73e5570b5c3077efffa443ff40ffb0e1235e1f727fa61ff3ed63fec5f7fcf5f07d4684e992dc9b4e54f59ed58edf0b7ef6f35a82f144d4649ef6f41a9c8e958cdc7a8cd531f977ea771af519d03e76d2e6713467e17456d3a7f1cff9ccbbda661d388bb5d269a2d3f3591a693993497340af6a8cf69d8e63177ffe66fb48fee2ff6da4720ef6f6c82babf796e6965dffb2220ad823de6ef20d27610719f3ffb1128b0a2aaa7c08a7eea2350f69ae4826c1ebfe482babf9fe3086f8fffea957f8e961d1aa395eb1cf271b4150f5c59e95441b9331509728f30428f084420fcf37b442002753f7f84a0d58eec55afd23eb4cf3e02ad8082563b543eb8577d045a4d9de3e63b9bbfaf496e8716c4fdfd19b30323edb9019d56533bca5eb5430be25ef51eb47df6910bca3aea15fdd4d38314d35df0d43922edf9918beac4586871c6cea89201829959da64ec47ade0724d87aa2d267bcea9254a69cf39e7d412c534b5905932e7dbea5094e707a9458c1a8945c617464803c8041c4126091299138e001066734d80c147910931604860858a1c5c60844e21460562925802d723349c00650435e60447440084c788c122c68725ae15636563313b6c7ced12b63a6d41eb59504530c15c90ed8bc8cc9f67a17a3881091d846050535668811827617270011492094c401501c2440ba050803aa234059a314c637288d5dddddddd3d4affaa85fc290945db3fc49f598defb5b65677baed0dfb9916b21fd627a168dbaf12bb6922cf4cc831e668608eddc02f75883128641f03fddf2597178c5d2ed613ee2c9613538af122664c155a9c2c967f9fcbd5251958b5169f8195037130b0daf9429c698bd7b4edde7b412195b66d3a2fafb63994f4807b793fdc7438b7ea351dce7d43d7b6d15a6bed6b00f270aaee431e3e210f1fdb69a1fbaab7dfc922a21fb4863eb6fdaae9bb9a1bfad2cdec50ee1bc27d3a546f7eee9baf60e8517b2671e59e10dcf55b441825d44f5af1affa26e4e113562d64ffe6eb8743b34e34add6cd87321cd2a19720ad509cb52d05824a470fcdeeebcf279d5fed7c39fac66fd0b76fed98ea511eb5abfd9b57d98a5f477b3aa57354fa49fea43a1fbaf68ef6be85fd146783ca4f3d472db6af69fce93056be8e0e5d38a0477548429143458e46edeceeac95f6e5be993e461ac03e36834a9d192d0a433e6d1fea64152bcac03bfe07f3e76dc0b0c290567c8b4e320cedf197fa896ae7d160030ebe04da53350f9f6f71f01b8091f6680046da83afa4db53950d186e2f31cef9fb6ad5e1a6431e3e9b4bb56ddaa1a401e4df12eef7b55a25d01ea73a3a5787396b2b0ec5c3676f1ff2f0d9aa4f7de8da3e749bc12fbe908f391bdb0ba974282f17c2b6b72f81c268117ba8f49e3cb1cfbe9fd29c43490f36878a72a869a47f30c13bc1e515c1d8e58a51bee021b987a405262c58f18e1cb5c0e411f190bc96bc6cdff1c50293b4f1ce82913d9fe5c2813ce57c6988a52d31ba28a59456205bdfd2fcf3bd14e44929f50f9dce3964e98ad3f6f7260c09e4ff5be6c7a89948289ad301455bbe1f7929c8f4671309f5c3aa3bc0c176eab2c872fbb0a27c9ab73c5b346f8ab31402e0c0c4088a0e539ca9224a21850f2fc8b004054a4d50248450e208a326171051a4f4f4c496147610010f2b287201861964c1458809546090409122988c3cd1040f5720a145966b87ce92b315b2766bfbe645181105668c2c61450c9e94a002683e4f84f15f4e40626488234574004a224d874507f55a224393344b60d8f4bd0f5bb2b4c377e115a02c41da61c4b2e7372047963db9c433398c5f3040ebcf3062330d982d2b72f84f277da7d386ecacc8734ec7c2aac29dc572c9c0e52ad36161ad5521866dad8d4a73b3e34b85a41de65fc2d808c6189ba04402251fa4c49952154c6986acb4424a096953a2a6dbf1a584451625cd2b85a3170a2b746a3e3018638c57272831819225b412262c345787053843dc9c1deebd375038204b5e29287554a4792911a10426c5a4d597586738c319ce7086b31913839f615a087f944f42d1c6d3a3b3ce774a2709455bc81f93d9bdd6d6ea4ee99cd77d847bc35a31795bd02618027d493f8d82429e39fa135cdda8a1d442f3e917eda22d391ad4c195fca24dc110a6107d50c8ffa9fbccc2e57213902143663a99da45512185843ed8bfc89282bd8c1c0e0e7eae13ed5a33f70905ee6290e715dd2b69c89024514b9a7825e9b2d435e14952a0646a91214691c39cbd8f074b52938404ccbdd70ef110bc5030d231d145b1c18eaf24529234a93eb3456b747dc971525bdd5dd26e8a1cbfd65a6998ef098cbfcfd57971b9589d13ee2cd6ecc6c829854f8f4bee72754b28f13a92e675242a478d5afad67ed1d6ea56c1b8391036ae33224fe98176eb365b4664df35cac05feddfa7384070b91bbe85ecd7afd4254dd5aa47a01beb7bc33e0df39518e98c61487d3ff265fb53cd7dfe789d5f759cd1a501e217513959d8b091310ab04fd7bc8c1cadd9e64f84917fa4a5d96704e26ad0b759c8adf6d971a15780d8e2ee34bebbbbd7b8f90e29754abd2b81bb3b757777ea4eab6793bdce29f50ecbec82c852b2ba1e220683afbb82f1f7b13a12b8b358b3da8b311c67b517df38abbd36da1ac3ccead1098db43269189dd078ec5490e54777ea4e8bb0c4c6743d743d743d743d7426a822bb111c799df0d4ede057b2647915c9411291c37f56cbc5094eaf225c867865bce3ab480d2928328508fc2a92b48bc410a53ded78c85a88fefc89fbca962c4edd6bb5f662c7984e893156adbd1763ec628c619986b12cd3b46de3529e4ad12953294cdb368e4ba5541b974aa95439dba841d3654b963060b664b1584a95afd8d86cd9f36fb2dcd0297b7e47a178ee79744a8f3a891a33c3a8c99bcdcd4dd7795ee779383839393ade869393a3a3f37d2d72369def6bd1626767c5e33c3c744a1eda626767b5e2e1d16003df60033ae5063bdb8a87f268a0c11639643cab7b8db4861c661efad56d1a2bf183f9e39e3329a5b42e6411a058914189abd180d9528a2f36c7dc873895d2119483cb41617cdfd396fa039c3f4c87df6ab9acb5318a768c2f3c18b28726ab907bf80ebffdd1a7ee51d5e91763fe60fc7d56b02d8e2d11c514532c85ead35dc3216a41a81fa91ee26c58a1aab18eb3278d08e0902de1be082ce4f861d196be2988ad08434ec3e7e7d990c3ff9e9ec4c870b46b080ad1f719b3e5ba1165c82dfdef8b06cc968c32a49c766e5b9421250d39868f02b6288304b9ed4ba77f31fe8b31c659f69808d8fd21bbb11e197eec7ee41c707548332ab91af4eb57df7c627c11a6368d1bf145ae46a432c61c9681b17fd51eb3702ac5711cb7811f5f784c191831df92ab61dfe9db3a553f55fa07cb2992eab10dbbdec6309e8de91053a952291d67cbc3d76565c02c4ac99945866197327b96cb6658b35f75e8da6ea5d724df9f98fe0e5d996b4b99655cc5c00db8acd0bc14883dcffcc1ace6cd1fcc65d35fe1c0fe558fc110fb10bfd67d8c2f6e6ec00e0cb1b709b1c76636fd2e0630bb6e3c1c0dfb18c8bdb73d7e19763f3f04fa9dd652dbe468d89bec6fc095fdd4c79d1f03553f3f832b1cf5555f5fa557f65738529f7deab3cfb09fef451ea14de7d9924299f67458b42b37a9135f0bdf17e3949308cd064896369265e99c73da6aadb59ac57af23e567d8ab1c6aab1cb9fac1db5d07cf938fe042a427b3d01b3ef8eaf274ebc9e0cf1c4ccfe6692275868904d9f306dfa3cdb9cb56acf4a0ebfa699933851b3e3abc9101b013bbe9a406d0c6480b2289ede0f39ce160dc1b5eb5073d05b92fdab5725e7d0317fa40772d7b729d264ccf6b7d225524d82dc0e4ea969dc6b2d40ff0ff4ef400ae230d9f75738e8dfa73ac47ef597c6ce3b18370543fa3931bec04fc190d2cf58f66dc2b4b7cd7234769e823aefa02ac61721605487450edec7790cc4f91b5068fb9bcfdf75ef81ab9d8ffbc374b5f32d3e6e6dfbd56fbfd2ab1d5da3687bbfc2d1e26dbec5dbe400228190623c00cfd7a02d40ef3fd07b1d304c3df639a0d0cdc7add1cd410c4787db631ed86916a63df56f4021ec6d74cec018a0504a6f9bae711fd30eae6a64ef4fb50cd4b4cfa236f64376673db42f9b6a8d7e867de41c40ffd5c4cbbef6b5c939a0e804d85f8a6b60ed3fb9547ce12a329f5575e6f5a2c5a961ea1bb681e1ef0dd3b2ec2f8fd5df6c794cb2a43a1765721e612e168caec6ab598e06e674cf77894ded9aadd695767b94517394e1db3a9e3cb3e54d183cb3877af3c7ad6cf298720fdff4b9df400c0c45d8586adb736a1994dbc662da4ff0fe667d6bef9c0dedd778b345e7f4216a033f9e168c1789ef8bb1d7c0c67fa7efb97119a58f53d6da59ff6290c7b7ed9478b6f20a34fa6e43b2369e31aff7fdd578b6300679b030b7bd76e5955262f8ebef2ac1faf7bea66535f0be31382fae0803c37418b7583086dcf19cf20714e39cbfef3f633f5f32993f53e6d203b87c90c2b7697db713c9c321c7ff60cb92f7429e44b367bed4dfa5a143dfa0b578b624de74c891724b62c490f4fb28a5b352f74a5d096f054a25161f2c511ee5501eb5ab131fe350322929e90503d3ab851c92b6740a8ae2067e7f1bee5041b893fca48db3373f03550e624d7b0c946fb5cfe66baaf7b430ef22a21f41fe944956e4f531fb98679ad9ed6bea3d9c73d7ac37faf76bd559d6972e431f92c90eb5ed7fec0a867407c9771d43a9b469e1d5a14c8a540fcd4d87e6be7a886a9a563f82205cbbba2f5fbbe1f583e68ffc5a53af4ad9fa9aa7743834354f0a391ca25e34ed39ce462837f7fa29f9419a74aaeed537cdeb570df49f416d0cd25e7272b3d26edadbab552fbdf9135dd770a86a5ac8dfca7943d3abfbdbd7af5f37cd93421ea25b6a5f1ffb0cac2fa4e9ec9d0b61db12fb206cadb54c98d9dbb64fff052cbb831d5f2f1ced17132e2f264c2f2660b6b6b7a83d595146fee814b3843cb103ec71007c5210fb46dc10a3a058726289c8114bac2540acb94be45224427a893f2cc125c61269424423c35294a56e0990252196ae5822c0922c4b1e304083254afc9228856c22765972e9a020a593a5c51ac0f7094087867100b20f0b00f9a8c9b5149de9ff9012488b2cc78fa32483f9fe5153b5cfc25f6bad9567b6ea7b58e4f0fb789ed572ca417611d16ac8bdc1eade7bebbdf7de7b2fc65a837a6ff8394d12683c385370a6cca20db69058556da92b57a368fbd3f93326081c8e0b6cbdc12de43f67085467bd82b6cad177a46e918f9abed901e8a9c9f3b71f3c88d2002d1f172d9c1972d86ab970f9c4f868d06ac8ad93e3d56ac89d93298e263f5a31b3e3eb862edb67c75795a71db91b768f8093e30ccdcb2f1ca66c175a7793a1d03bbe7000b2a3065a8cd8c6461626b3156f50b3e5c659ca315cf3478a604b9f2d3d20a9969143bcb104e3a6ef4935ee38a4f4ea53a33e61d0e27cdd90e5a8c9a98c3f3e5bee72d76d44b3d6cb02ec61add552a49582f463ea519c1d509f136f1c2a9452cd63c3a2d9e41c3f5a2db27cba83e1f614e3fc7d5a95e747dab3b2fa7152c8934c8adb72742dcb474df3d3e2fca152e64f8de51f72cad0708eae451c25f9e6fa474dd43fc40ff0368c855de3dadc5b93c36f5356ab5aafd9a546ab21b7679aa3df90c38eaf1bb6ec02ecf8bae168575967ab5e914397cbc77bc82ddfe3eb86305bbe6e303373a43da1ef7065f5b7b7ad94c33cab6832a7341a311f35452de481e2ece0a829ca8f0a98b87bca2024cdf97548452ada9aeadacf3840b0eb4f30ac2e67cc6c6fd828b2528ad1a2cd108a54b4671a1c2959ce9f947f767fc25d7b1c2a3962f920d8d2ebc695fb2086f5a5ca1c0e3a6bad422e65105a64b90d9ead2539c458488bd32b638398bc265731b2533bbe6c48b3e536e79cd45f5598dcecf8aac234e7182dce571527696390a9bd4f6c8f62852469b46c0c89284851881462f024081049668092244d66c29299b69d61880a2f1c8184c949141aae201963c30b521c69020385181b906c6dc7970d40585fdc592c570b5c2e16b893183140c43471610a2305d29228741802480a529028c28d349581424cca888d4111853ae1048b25dd892698a6d4d003134098ae28d104d309987af896f8be2e49249104171abe5091c111494a40c248112e98e1a1c81527d010f5c4e55583d2b63bbe6a40f219f17dae15b85c451451846b08974b0897ebfb3c20e69c544e185d5c6df91e1133a099c1880a8ea42005410415a78dedf8a2328607edfa871f8581f9d87c34e9d8749c2051938e6cdbe66f8fb50ed5534d245fc52344ea4c7beefb639a6adacc791cee739e7ba2261d9e7c771d3a4f35117d1d9d03e7a52672e17c8ec6d14433343735d1d39efb9ebea0ea53e00a02d86faf03fb4d1335e127da7468afbaaf6d9a48049a657a6a2269a493a48e226ad2217f6a22a2261dd94b4d8401da733f7ba2fba9cf2e9b8f40f1cbfc501a751f81ee4d2893521d08b43df736a08fcc47938e4c4b27b4e73ef63e36c92324dbaf9b965668cfbdcf43246b1f444d118840f5ed47204cfba81f814269655f296a768b1d5f5392b616679c2929f567cc6c95c37e042290fd1d12a8fe8c79b590745215cd7967b0511265cc2bca0bf08eaf284fbca2a8919a3f38427cf952f7b891f5f811e48f5d4fb077c2a226db5f42b15d471a747a4fa278d9f2e3e60e70e14fc1b0e82918dea84fb57fd421d18abec7d88a4aa4539097241c149484c1c7b487e5da9bade8f1b450c8f2a3cb45678e5e2c10e434840993fd3bbe5a80c2c876edf87281891d6508284e3bfa186b3d4a524a25a6e5e56c8c81f2280a463ba3ce2ee28b1c49590318e71c26e84babcb3f6d890123ce29b49616a5f5eb7d3ff19c5256afd3dd7da83a8b874e4a65ac30c413e418b325953c0a8820279e1299e41b07525b866d100b480f2a950a6c3a9bd96fde52ce3edc76b6e3f990b7b980f9d472af717ab5637eea23303ff5457b0343bcb7cfc0b0849d3d4e81dadcb46c2bda1938443786c13076b14f8f2ceb37b5f9fa35a5ab4d4a87ae02c3dfaa9f4155a04db76d9b57430e5b3ea9cfbe7e2bcb40ecb395bd0de8cd56f619fcf8227b55f62930cb5e661a03b1de66cb4925e90f19eb30fb7cec69943e681146565dfc9fb4d313410e5dfb0e6dbbeaa1b9dde902f027f163cdca0db0b690fc398347bd9976a8c4cdd754b174866800000000c315002020140a0704e27048244e336dee3d14000b78823e7e543211c662410ea21888821886611084620030801840106306225403129f166f51b1de5a447d255574773b07494ca71e5a74fa46a2d01a8733a958e7c042dcac208c9b041dcd0356b869853756b89640730f2dcead0aa8dca4e86c1db262de5874b891283467e39954631a870729c776371c2428a6438f836463381b9ea41fd3389e496aacabdd99744c73b0c2dd56707491a277eea0026a7712b4360eacf0f75247a2d7d2dee299c431b6791071da196251bb360b7e906d7f92759e7082c0697879d8687a637a8761b05c70beb611377cb9a303afb56e246632f6e62a66ebb3fd205fec9cee33c3c56ffd2f39101ae46e34cc8de7dd69525c843f3d785da4dd0cac8dd1fb693d17967e6c77cae0dcc76bdce4d01b731d8a4a24447e494ddd826233c8295137bcc302f598a7cd26913c6dcc66b073dc33effbcc5d6f0678bc260fd4b27c57b9da6c2afb37389bc8b87d5d15e277edb6b79b28b58047a048287c679703f92d0322a61c5c6876747b33b025c6d3464ab8d0d5a43a4937b606d62f858e902980d0fe23bbc002be6d9adfe0bb28bebe973d61303c3f072baf7b4c829033261e49d598a9cd7439dc2ccc678fa33f1b8c0e7215f3ef779cb0ebee31859727f0aea7362d24eb5b687a63902d6cda2b6f19b82080eb49537220f8ca0787c4d37ab11992d6eab2a2abae6fdbe0c1d5449f896e56c13f21112a800451af998825e166a32fdd2ac21a214805b3fffd5f5ee91e1079eb9ff0ec4c1f1c94b0a881c98475511b052517a4069491688e6a5e51321f0abb31a9e87e30d7b107029f366603f5651076fcb16b4eec06cc7af0dfbec48dcc496035ef992d66cbc4c9961d76db776f75206feb73fedc73bec0e1784c5f3b81c0291d5c8990d78ffd71b6ae4449ab399e2ae24a933f7a0b3f28a88c11bbc8820cf177bd687fe1506e3112346f81e9ff01b93e46356fc154b1c47679b55014dab6fa120b161120d54936a1350df3a171ae302d020b45d8c6f4f7f283942888a0ad5cbd33dfd1cb4ba04fc30c4d5d03c50df098abf7cf5bef0d07020fc93c77541816ba54e3ee7061756cb803b0ab727160cba5d350b46d1770d37d8ce35e9b1b5a179ebdbe63896efb359ccf979d4c32e6467be09be0cbee7a9e74a7f705a38b693d10aafd38c1980c7e96e592d7b96411690b7336dd4775893faf0c08157521c0eaccc74038eaa20f99bd82110a36c725e2b1c788aebc90db69820d6281fbc42d9523866932999e5d864000310a54a77d5223a1c7a15850f10f91e37813bb4619b2a14d2e63699c24407a92bcd569df5fbd5238aec11bba3ebdcf25832972e55ae0b163d504099c4df567bfa796c7af2c870c4e66fd1ca2140d40fa126de598dd9f0afd39903c5b643dcd7dba18b68268e5abcb27ae0a58d22bc0a1e994cee78a19a008b8462cb7b8896ba15d406f6b9caf94c6e40e03be6a0f5bb31a5281a7aade6f6b3f56bafd2115478529339e6dfbaf22db0b8aa0d04ae900fcfabc6c0cc5cece6ba2c2ad95f5912014c4cf71e3776c68f2635c52d3d9c7b3f20d8d7846bd930f390db11dfc129c1fc5d73b2e9d471ee58bc467ae064ab2e682208e8fd7ea1933ca553c24bc453cf86eebd912c9a45da6955f7a60eeb5dc68b6f8e4fe3a045c4b6c498b41a16a8b2f99d82896c1465a55008b0584a0a6b90c55d592c4001f9b07d6e4b97c808d927d6c561b1f0298d497c47b56cdd0c7021f1b8a5b4c909de45dfd0ab480212f96ab7364a38d64ab517bd807be85dd8c3a65d04ce80dc609777b15625c8a78e2ba076f72a5d28ad6dbef2542321146f1d37761cd896d5f138ab9c8a061c9d1173d2d2ff2f6b8503ddc3c51bbb56d6ce560f58ad70287e7ed28e30e4c5c6232ad6156bd74332d6cbb2a7c0be5da16996152b2d567af5c3af3bd8e27fe1554c89b8a9615bca580d04ed0e86b65a8ebbab955899184460ad5e59e0edc96839c051659440762cb481aa337aab17d6844198d79a8a3d6ba4b802c4f26cdbdf7680eff2e879cd34989607bfe075a7755f15eeaafcb7d94e743a5b95f8c26900c86fc3724f9f374e7710e2708ddb3b4f5126f6b6cf9cf47786443279d6a81aebffe6b9bbe10da8c58b8d78eb72ed2ca3020fa78644328298fc6d0bf537677f41792381fcfe6ea09bc3c5faeecf918669cc05ff8d6d42d27f7e240ad22022031f741fd257be29f11190d3cb1b59cbf13edcd428a00dfd946b438e16f8c7697141bf8d745a671c8380c7939d5aa352a1e58d7da7ebe43b99385c5e67d4af31ee115d4125beb2cec53cd8dbf74634acfa89b9c382560e99c4c65027e01bd9610363d635148e2059bba7fa367e7e1869a2a5160940570734f0051a8bd318703fdb7e4ce0a2a33fac855f45e5451a16d6a05544b72b1b42fd0f5b3d5cee25713989aa617d99bae1f4089e93dde0e7070df83857aa6a3168200e8afd69f74445c228065da0760f7baed4c1e6c2394e6f82c4f4107b2ba29081c7e9adc39c30016ae19005abbf914d49cd9d2b168e41209c234daecd1f82a0f9c241ddcaf21fbbedc5a553d663c9e0e220e7a44aa6700dc417d5ddacf8bf7cda5e129dab0c8d6ad122c94725440eaa8961968d11d3235949fcab97b098644323976cacac62905695009c1b86e47dd7a42725f36ade7a6b066d3c4f5485a45831b88b67f39ad2279787eb77018e3636c77c58da66bbf1188254b55db0194ab8d2396744bb60f80c8118328af38f6d630f39f87999dc8b60354ec3130765870fde15e36560f681a1d8694c876dd217ab6be951fb88b85e98733049002b80948588a617ad589cb53082560422ced16b99c0b77995fce2d1f76338650779312b1558804751f794c5dbbb9211aee851eaa7129541d953df0d3576df14bcdee7a7d58dc4a75c8af39c75e9e34c17631d0fe815d8e0d8b002e0d86814c99bfa638b139f9e598796ba85d70d2ec61a77980cd13de150aaefb268d2874a6d8969528b77bebd865603eb02d297fe5e716d555d2e5e665222943cea132ac324460517708853626667be0aeacd6653b740651bb492886151362f68385886ba8e9468bfb12a2e08fd2f6f8c125e640e79c2a07844dd566740111d232f97ad1304aa03c3765e004a8584073458ad755e6153154f4ca9269fb0459781052fbd9fd4db7cf7205e41ed10157cb06a802854d4e374464b715cbe2ca779d316980adbb42532e3407960c1607f21fe0ac6384871200dc60c56b09a5b51318ad598b9ed97cd2afebddbe89b331afe2f349a9df9ae5c057555e12f60af394437c22779722bace5530f409d97762e50ec7c6e7d9cb6abb5997a2239866b68aa1396b80c501c177e02c4b3e594bb4bc202964e8edc201423d3b7e486afccde29933c7f88695e6ce5698b42b0b66f7e3d36eeba8bd9b789f94faf6b994520cf9ef48c0c0d292b301027184c136cda5ae8d71aabeaf211eeaadad4c25468876aa50836cfe33c6aa8510fd89df275b8b8e33977b163f31dc0235455112aee41c0dd9d5f3636c812baf6e58c5e908889a885896233745cf9c9b1f7e1bd933aef3670917be0db7811af86c3b84f4498dd37af5298ac1230c859386df90d6f6a156db3e9ce8691551cb50fa34d28d1a5dbf8bde6b550b4309eec8d22f5aaac80135cb6fa8a9374eff9407db3ff1d781f4f149391778cea0108215989c462c671a25de8548a320f6585b1ce899137e1eef83d442f513f80b8737236e2215f495977ef1e005e7096a354ae54826c7b87e18e4c07ef67c7be103dc026edb3ef163c46d10925f5d063acc9818c4bc59c666ee79e23f031d1b20ec2a5551ee127215144c528e5caf73ac295ef3cc6a925c2df72ebd735df085c40d9b1986f2e60dd967ea2e97304e052c33c997f04378e4d21cd8091e17fec6647908edca3a330d5e0112f91c96d092f56aa4dc1c56340f69d843e5a548832dab180421f61cfeda8801cc4225ba74823f769be5448196b3b6a7e6a89502671ca302c5b5d3a5333240c27821069c3570a2e8b7e054a65789990a97da59f04a3b7d9784616406a10e2b72a2acf8050ba53420058b07d3274f8d8dbd0f888e912bfcca060a4b0c5d8f4dcbabfd3ccfd63a03a02d6b9cf1792e67c4f9a032418d9b6179f0b3eeb85aaebbb8f266702874bfc318a5f8c9f677bba121d10c8e3566e21446f412e94afa91ae84eb542d435a52b590381fa4d25f4ff753af998974e31b923533d83ee0e11e44876897c9f3d7e0d4bf9ec7fe8e44f5f4945fd965fa3c93bc49ad347b91008307fe216a38a32203b6393bdb1a41c058c3f962d62c4713d8cb04c15ad3e4171b874f2ecc2f42b8be806e368425a0645bb8b86490a840d57eee74fd812e9bc82fc695663810a6cc42b5b95cbccc90eda8a4bed1d95077c6542d9e4b4a0dd89963234f1fb9a185f30c80a9d7952845b754aae2cc8f5dc17b9545db20c75a2f0dc0ec44e8512c77ab0b224014bca1bab85aa501f72cae5231e571c66aee11052360e614cdb6ebe8d317ed0f054fc923760e0e6441dcf92cc1753a20f9a9c100b977e022e9cb4cc2afb4ca47454e7fd6b53c91979511cb1efe85bd37f690c99925ab0119ca83c9bf727722ab9da8c7bb15748aa614534a3021d88590ae00aab09ec85605b089c585ca9c1c8a92d1fd142207939f53c52eb240c92e6a3ced966e2d14eee7f54640ba60c45095b694958dc48cac06b34730a3fdee5f3831e7e138c1e316fe141647fa6bd7accd5ac0f7cec8881d58e90475c1b207528bbe38502e91bbd4132ffb11857d35e1ffa6c473c7dc2217fd8b43814f59d3820d0649e5288d3ab844ba9c0d34f8774cb119d0fbcfd3df1b8af344ec84f00578c52ba1e7fd59e0447c9160b2e72f093b9d6e5557d8597a413e7aff464f51208c20471479dadc6154b49ee86cbe4db1a500ce5931f8d386666e12a5ec887c4afb0e45cecf7d12f4c0f88778fc295be9cff4cc5888698155b387143877c165d53abbaf18a059fdbf6a743a46de30b50550dbd6d14c06fdc929274979d1ceab2c90c28d0d371c8b450ba147c8e4bd69071af50a3de4d364cac7cf26d071f1826e47f19503e502e8db313d4809b003d9d6f8cb6cfb6e1dcdf23ff0a2479792fa0670c6e8784955eada53170d901058847f7a00fab681186e1415ad79d35f51d456b5411204a9c4964c70d8652b720c9937911e75695383c8267b17613039a9ea570a88efb5f4ca3683dc125076df9459aeda817dc4b7ebc3b78b7f9922c85b8026a1bfb150a11dbfffadb4c1d306b8a04ae2e0ee134256af6d6b6b1fbb8d13c1e5452043ce4cca11c5fe671caca1d7a98550906cc3e1fbd6edfd3b69feeae8a2b34c9ce8c560cf2d8dc620bbf1c3ae3e10946b0434cfe0f4f40f330fbcfa27f7e3f0e62e0523b9251cb985d7e71b16211869c1f6203bb7e53333c7930eb1d518f0f615aab669cfdb2c275b51fa9b27918e1209b78749ea060289101248a9ba680a410f8d66bbd99f83fecaede6a5087cfcf0a395f19bbfe23e3ca09dc947a43825202a0e0642e61c8ec120e6f5623316e05184058482e3c92ad1b6f6e594532ff77f581071e2afed9995cf42957b4e1c2a66e909de40cc129d3633ce3c1c3e838934198314273fd779d4d33bcea010b298ec776ab699b9b3857fcb0dfce0663db5e4f72ce01e952439b8d92893121992940e68dbe8ca5454db4b270205dc9b350edf0685cd163cb342e217c3b997440c8df514d6214d40fff0852cdaafef22f82f319e03f5c5ce0da6fc5ffdabc6eef1b7faa5af89402a027146d5334b829d3dd0a8fd1f26c97a904e68e445e61336342c25046dea151666555939baaf221cc0f3b6796ba09d0d8fb332ebd1604352d9d02c760625eb3c46da04658635e36189e7d179c38bcd740c4dade6826cedd06129fa405f2feac8eab0e485e627f63f65bc08aab7a00b8b9bb0c2c8896eef1b7ac3f26c756c2509e83607945a78f11189bd8ea15326d5efa02439e885db00e29df0028001fca6e4c5d2cbc5bc3b8fc14b464301ad4f37a492b447932c64fb50ced6e95d5332d5209694456c3e0d13398b1afad063c24ad6576fb170b1f8278e872b61f490d350902a74b5a20d7eddd9582bdf810e864fe03173ad4acf60242297b4910ba81339d57f89e464f6d02b54b342db3718a989d826809e232b906bd882864565e696de8bb734c8a2b6b89d00457a169211ec0e606e8c186b4044a1996b8d221b617c0aaf38f92c7bfaf6a19fe864f83e4ad40c9920c2fef22c4f53ebb9e6313673d6a17cebc5bc71bfa1cb783ba1400bb4e34a7c2787974a9a8a25e9d793c3a60907049892e539553712e5d3e905644a6f16594f24e45f98c9e4f1f9bc54642019d3db6eccaaabc2b38d15bba2c6a4b988ad85644056db4190bd0ff4aa9921ee9a2e5c3ecd7091f4f9bb66b211479240c9b2f8201338ea53649d0766754b2b8d5de82dc7e82de752c83ae264af7c8654169447657675b0c24859797bb28ddceae286139b6ae1ef32fa3717d4961f4ce09469edc4a5b5e81ccaa5c956e81cf79d5b761c980eeb17172ff23ee0c266000414b3812a796f412dadeb1d4b24c9305ccfb0c62360ae771155b0d6e2acb813c3038be6cc696cc6c168d6cd141ea568c5abe2aab6c29490dfe52d40596ef7ba36f5dbd797fb035b412be8e173ac86e0818ae6d8729f9da96020262c16b42d05d7e9b7f4c792b2613480baff3b836fdba3c0a7538328592b34f811f296eaf215101493c2f235d2a72244dc3c191be8864d6f43a7482ba81989ee5767403897d9320efae26ec88c0015966b116c8158ed28760836670177f63426e03777b657f62eeb60b49dc85fb014f084daeb44dad08f541095438a264a41c29656689f645acf76a078d6658c44d2acf7e1002b573bc46ad98a13d9d720b1a7d59159c1677694450d512bf3cfc62bf783980b3d229f6ecb0dd4765c14a0294102a2b7a8ce3be66331c5f34aae7b8228a9b44aa833a10df90b5d16c4e10246661b938f99bb4e0672dda74409b3a4fec1f8cbcd8d8420380b67748f27ea61565b4dd8e4fda029678120be77f0e2949a5b936e0ef942c754d8df953c9a9cbbdbb5c2203ee567bdb8e5c3fc0952ca5d00bda4bf60c777a3ded35c27a35e4b3644b42af8ee7c446f4b526782f1daa7b39a5c7eea5e61537182930f3e0c395b05e072ba1c076a3db00d19426d798d3f06501c840f73102245808cced580d0694ba1764af90fee0eaf20dc7df6d10ac295c12ae5f0523eaa516445d12406a8ed188409719ee27f5c433519b81b4e0c3888b188fb63862ba44b0e3504d9e641a301c2e32d61c5b302bfbbde30e792947ef37492cb95cc6b6e9049a7907f32f52fffc69fbf38e740004836e2a5022d6b9866c5b4aafe461e966ad37b984f91f23515d31f3b231e583be9ddddcff4f0d352944f237fb7648b1ab32cc40936f3edf23e984ec95ae5167244c28378ca1ebebb3edf72e94c5b3f59d7071eaaadcaf2f5fca1409ab6fd3bafa6e0eec2c0611292ab77aac929ccc5d3314ef178ca8a0dc184e00dc8ce05477e72791e19adf865b1e4b5955376615b622e9b71d4404d98c95c4f6dda0ccaa7544451e5e1cfa5a14252dcdadd2b833e90b4fae383d9b186ceb8531f1b4eac2ea0134148e0919a96cc93525ef083e570221ee87f4837190399b3ea1fe2566b615746fe6b5028d77b7182566f010472761b29520ea1f8dffb7a59beca1b7423749df89529b30d217c27f3be083e169a1cecc3ff538080a2719b20caa4103dec0761c590c1a8a4250d8f981b7c7077208eb9bddbe79492c8c34e50b8fd9307ff044e1ada08c0ced9443b7a4370b90de404d869aa61c873db4a58791977a00222279009ac476fa63b27761b76b11b7718bbb95cba438171deb7606582d19266d5b710ebd235888880e92f0a5f00f08b4c615d180de63acefafe98e4d024990136790a856a928708560f18e8a7474e346178f3a680d5549518e40bb9db4d13969da5c5ac0bba7f1468ba3b27b814a53ace409eacf88a4a886ec2a8294912f1d005d326ffbd72664b1698882eb12daae71d1a40f2f773084d98b9966ee7cf1708db36b012a895606afd2a29f9c2388739460acefe2097ca63563153e2443e79e16edc6ec5109e65122d92e887c2b4b2f8f63bd49c40c91eb64040c265b743635a4210b3897a4c6bc7fe1bebd8b4a784bc753189cd64cf0b3db222f54080ef5921510d8ca6dc0de649ea2ce9380cf79b5136cc757487d56441819bac4f51f656c21d9588dbd1d1ac970c5d84b8d6075475333c0431147a752078a6b7e2e85917c8a13303cb2bad98d35657d3dfb70d815687800c4955adccc7d3488884a72ec0c12cd770db1f3e4a2bda25d7f734431e7d7ec5b2c76c6bbc2ff8173d1eb37e741fd360e124dd7878a535047cb7ddfa07073ad2b1d4a0870ecc84b3077403bab3a0603669c5c56bd2968e7c969f126af2f6b6675c083052464cfbaabf07de7b7e31bdc431d1b2a1fafb703212ee1a4d0206b41a11590c424b44a994865593c8a4d7e5703316917aadf65480c92487585247ccbdcb3328d9747dfe2570398d3326aef51c071c20e4d9d4f08510ea00117f83d9d64c0980d2ec1b534e4f7cf8e20cf21c7d2033580d3bb5da3661d3e5087c9a4ed950f6a9d1796a5c5303fa0e0c0ddd3b7275c2aea080e2118f1a34c35ef12c0fb4e5e4b33fa1deb10e1b4be88c64c19502e4f9afdc3366694a18c13fe9486a98f86e68dd9f0cd6293301ab3dd1d7f6f406d83549cc54aebda7445848e57cf453b2c5ac1561c3895f1757fe2517f60b9b32b3a8e5b51683bc5be96f81e41826e34c77f1f2591271d8d534267c5f8c319c32363010a205651abaaba20aaa5fcf576d68383158848c025cd65fcc97c30ae0aa56bbf79f84361f7673f2b06c0310882d24a1ddce770f11b559d4ca417737821779fac53d4d65219daf698744ca3860d1698e0d1043de8fafd43f0d64066c05a5c44f59ec25221adb3cb9c86fcf917858ef3c2b65c237472cd7ab1980afaa8d9cdc230befa8d23fcf3217802bea63b94b2319e1454fbb039973f49256adba559266e30cb6bc373a3f0e28c1fd2eb03c8f101ec9770c70c2126496c880cf53dfcb8d2928a2f9d1da83869800e080e2f41152355a420d5068baef914f8fb7b9486dac064b0b52ea77d25cc3addc481dcb365b20b734807e21529b99e295b2b4e0bb1ed1a588e85e575afd5117b85066b73521075f52f2185df8c7ed3d270756a9052a7f3c8f947fd54f7006cad7561dc862fa16d767a7ec69f8c056b93a083011438f27619d7644627bb1501c769830e3d8c9f93559ce5768ca9bcbf8f35257c78fafbbbf36c7dca9d3094935402f0e6c46bee6a8af4112d3c78a6e40ac14b122d16e1f49a42eebb4f0ff78edf5bbe0491c846ac55bd6cf4e5d44f1287b6312dbf03218d198767d36e152aed9e21ceeb9597196f22fafd9f3ae53acc07b0a99757b7b2b8b6e399b4dee823c2e42d2c62099d7d15c87a61e54f9779e7263ef5e3479bdbe1879d9ecc279151281099fdf65375673864d814eb97f4e0b4d744596ada97f1e5dc2452d9fd5465598eb9eb8d914f46f8a500891b45a0522a4b95093e4e3bd764026341dba3be02203b62c71e9aea93bcc3c0192e3d4d2d1a1bed039cd5077243537ca16436207e4b96f244957c8beeea6bfb46e27903ccc143bcaebea198963b79cfd5d77303227324947764dfa16cc35df08c43f642086307879c917fb26a4d269786aa3cd300f4a2eda738a9b19964828fffb1c8f85815db29bf4c002fdb8616589def372793591e89ca6c0c34825129960212214b64d2b99da1986cac1163010b3bc14097c096880b6dae7e5c799df3710bf5026a2899cc7d91021f146556f2bfc17b5a46d30f3b13bd03723cdc659e09c00cb5c64d8a944dd007d68480d5f016d4adcccad2e1951fe96bc2c150bec5ae4f5644523485b46a2bf3d390c28e08cbc669da3bcd5a962bd2a6d4e888936961535f2eba46bfe1135ca53b009a2067ce04c7c3c99ea1383e91f24355c0c36a642bb59942d1c127be62d3e654135935fdf524d282f9dc25bfc4deaf63c1f919a5ed83b15c4f8d8186ddee3aa84c405a19d44107edac4499d61db346aa2190d183a76ca5cd4e94d46db89f01ea1d46c43de23e46ed40659c5e04f854ff269aaa02b09afcbc9ca5c87cb604f71212452d53c6e10ea1c15026b4fc714d759922d5e9efc8e8309ed121ba2d9b89891f0b7af5a6bfecf5ec09da21ae7b46cc9fd957c3505ebfd4feff6933227618f04ae0b15dcddcf5eb58ad5ee326411c6ab82880f351e4cf80107b7f6e47cad1daf79526f49a761034e81324e1146ddb4cc98c647923aeadf6d8185dacbcbaf1b25d60202d1f2a3167834b89eea68537812d1ce4ce567b1427dc6964347658193966a78ac4ac05aba2c386a217a4ee3ad83f8b5ca7ce0a5e9516b28e0d4d3603afb2d583dc975390334925100eafd5b9275787f9196338827f0a8caecf9ac2d67e049f81bf7e22c6710e2fe19cb0ddd178ce69b603cdf569705f6d2d60ccf79c47b05dc888f9ac2858adb855220f41a71b00bbd85a62e51a532c6ec6bcbff07fd2566f5c1794f1db142eb2a9cdcbe77df8a79e08bd86622105aa0121eaff3130e0ea9151b5080cbfe2c8e5861a193e986ec9f010ef4cf07d800f7e964c7f96029b260a1c35be05982db5a7250b281e48f3596a6e420c6c05511f3e20c91ab9921d4412483bfc70d4db1a7d38c189ac961eef03ff7e41aa52076968b344c844536ec8040399e6fcc1683d8d6d349bb3d5e72b48a58dfe65d4c9d8d4f4bd8ab8691c906e536524f92092d445f6e690e30d97b99132c27177b7aa07fecd312165c4d09cb6ddd7d678bc432128406f7164838a96cda8bcfff9f911cdb6beafd1fad246f389d2b622bc8a289452f33a3209327e1dcefa814003f573b56962ace2abfc3d658660944a45a1d2b0bf35a45c8ab338a4dac19b24f4b43491d6970e119e9daaee929670d1bb54174cbf988960a31210166741dc9df3a0f9e5ae13310e7df1313776b50ebfe4128415643e36c28487ea626d94859f199c5bfa5683f5d3430d4c07c002c223b780deb34a6eaee4864c49de74626d31e76d47de94efcbccfb2733af9702ee1e2102bdc8400a666942f7d5c1370c25a9e8bab9d119b18cd6aabc708d72f32f5639d6d4656a211288d7bd3b1e5db15aa4b285ef180f4c96935c07ccd6c3c1290a2ade2d5d55f2fc19ddb4b3072f948a34d6a1fc494d5b81d5588f118f2a507a71822f893aa91d19d64bfa6060d93c9051aa9c70b41728ad4f1b95d4dc236fa0326facd24ac01e62f2bf7682b2af525bc1acb0a9ab27da30de93638ceb5e539d4708295bbf8e58ee2297f2c2b4455e4067117a812da47b704cd8b914d1219e079cbc61a99b739ff5a744db2830ec66a2a6b051d16f79256c1650f626b2ed3268fc66a29194f5b69444640bd52f5d170217b2fe1050b940b18cd195f0716264e288a42ac5b55d48a0c79f9db51d870199d5997b135a70462503d107f5eda6c5378bf848ebdcfe10c8ee8f2732fe48b9ceb49c8f7f0d3706fe884aaf9f01334ac4781b100c009a000230c7fe9b79ecbe97c879642bd84e7a319301494c6148b2681508690427c5159b810ef3c0c08693c83075633888109371eeb3a03e81bd4d7f37918f176df5e49a59e489f1b4750d13942f31c904a040972043efae9b267b7084ca0ef59c7ae64393934ecfd9b33a935d39638acb9842e161d8d9fcee0eeab984cbe896d024cf8fd537c7b085b101a264210ac17730994eaf166d13648c4173b12786dc49e2ff5bafce72249971e34cf52b4152ef0a9125b2b84b1592607a6bfa08dcf1f209974040ca3a825559e43e37b231b105641b783ef7b05c2c0807e87923e0c0b33a2b3f80afb95d297b4621857a131c0722775ba54c5d10463458d1bf37baf87242eb76b049984971542f350940e603b16f627d3d286ecd9a4a112953c493a3e5dfd552d7aba425411ffba43c9f579613d6f311d22449a46b7be911ae0226a69423cbbbdc52ca75d32ee567fd3113f6a446aee3889114c350c29a20069c9fd7795096b16249acf27583b6de60ad0d1b177bf39ab79b7eacffab6aa94ec2c763fb43b162c216aad259deb762f80bf29d7ad64a9a342b487b1e102975f772156af9f3774b0573aaae37f341f2dd6f16c8aa615f3d7a4ab0425fa40cca72ca24225eaf6ecc6bb9ec1e237257e6e28aace60e4d5deb536344ad0cb547f0a4b8dab05fd29df35ac3ff0c5e28a538e04a582088ee1df59663e7be69367cebfee364a2c20f9dcacad0b1aa9002fa2ffe9c69c2de157216284ab9353f02baa2aea470dceeb06b78750ef163417d47fe33be0ffbd5ae04813258621cca3dbda7cbd9b645e1c048260e9bea03888a42941d3acf927605e816b5bd4c1b1134cf3af23e65581a6e739b0432edacc70b9c3ef3b99c82e25e67ac9ad54c1fd2950330a51a39d3511df7bbbee1d631c27372a5745b42958ddf7bce3bb5412e35190a119a8b7709440d855f805a5d968b816519dad3abc90b2553bbbe74629db7d058c443260816237d341bb5748c21c334181ff4ff9d89562920e58c641826d85ce73582203ae44918695fe2878cb746cb982090f8c33777009d0d58e8d6016741be3c667708db1d0861f623c2bbd5854c04c303672f0b9956ad4ed007b4a42853f6b3dfafd86255708e5df844cc04629e6162290cc9b923751b54ae213bbb1984084c5569a90db4bb7a9b1c9b51d7a123a542fa1d9aae28315e867903c0938f3d30b2a2ad076985ab017ad780a288a045e8452fb6095e590f28c0db828ad1875f70d07b4602c24d094834d2b17b4c6d3798f69ebd2c3b5723fc173c2d1ec087da70748586f159e0d4fb35f872b1ab10d3b826e33ddea230091078152dacdaa810c422f39a5f34164fbd324442ce00551dc2f99573f44c950b69ea57c908935334ffd65cbb47014aba9fd0daf1e3689d1ebdca0f8469ffb6d91eb71e1c8481392c97eeb69144946962c2526a17c6edbb6cdecf3154e81ca072d0ad77961c2edcda588cef4ca6084bf07188b29002e6f9f29933d83a18dfd610b2a0500659b83955e288a09e05649e2cc4b28104e56bb813e00183fcdac92f24462cd6909bcf7ac8f999a5495c3424d944c2d30eac3677ca134724c4da383e02cc011fc9a62aa4a27cdba3138fc9b96c7c361b4d19c4361e473e758f06cacdb3eb880803b69761645f67e2f2b47729f3eba0e3dcf543b0b849f54e54510bd0d30bac584dd3e5d6f7988bbfc66b9bc8057275e7a336a8b0484be50c510c3658038d8e2acce0f9b871ec3d9f0e46b6c4eec27e45d28906f766ebb64821c2166d64ff66504c6c08dc334f7cfed35c98e4c91f7b215d5a3d840305011e1158992aca9ed0ce72a3759c4d8a8459c132d0baff9bfedd6d138d5799150aa2d9a90f048768e0e987372bd94e9e083f739a41015d04c68dc5084c4683b44f5bbb565879a6216de9d624352375cf81da7f68deb407e9702807546108e618f28c7025c343a14f6938d2c33522b317e4c5db04f1a43a999563b61c317b353f8fbb2a20c95f2681b5e9148c58ad6af2ad911c204cbd2e1c69790317dcfb40f42c7a9c35de56a0e6c91ac5eb78b1565e14fbc589f3613a4cfeb5eaceb74950523d123a5adb9996db71e475bb1530ff50ad9ddeeca7b06ed98bee1f62d6fd2ad2e88fb2bb91a3f2943bb0cd8370fce765de031cb95d332dbc64692ba2bb03b2053c53a2b97da6127042457ec84b28436af75fee617fbb319cc84750de385cf19a6a13e3e34bc2c8d80359e7d713006a55d94247f1cd3c622fec16f888f2af7a84d5e1e3c8297e992379b11544f4db165a7aeda90af856ea2fdc326fca477d04272b09a3adc46487742000a95ead9f7457501b61c6218182b64bbdb6236f08e692b4dbd2a19fd046d9b765f72762121ae540c6a8cd63e92e5fa6361313acb238818e562a61427604550298a210115497dfab3101122da55feb4a14c54352a1b362c505794b33ee65ac77cb1ae95e16f6014bcbc882dd6621c1d6778129405c310909e1403602ee74a2cea527286c2e2b0f27ba6e81b327405542c7084105bda587b11b194557edf210b54304c16390658c7ed9f3d5c43b7ab5b01ed0c343966ab8c91b33ab048a5436af848b3292a516c7513d5f48cd331097baeca1076204e5a0fc929c55d004e9bb07055f4bafb9ea0cedf274ea9d08b4cdf0e3145045d34f338c41cbae5c0c61b53efd8bfbc6a16121224d762d1689b27d34267292eb24de9aa004483b4bf5f4e2dc0661d7db015a00e96fe2b70c4c1fd16fd43e9d21f6ffa24b44cd4f7b2347482add8a7d2ca2f882ab126c1151ecbae296af981b80f90c7863199c443befd8f293c6898581e7927d96b7b301d9591e0d227ab71b1a4615f9311417ed2bf1d701c3c081a81e6f0819287656620fb1baa38250c90a4cf22c277fb187bc9f35699d1244f65995fd09e3a9bae0352c2e7c85a92f64be21615e7e15e460aebd837803d5f141a283382091db045eb59c55149f10d76c184047d55a52e5d26c3199eaeb04ded3aba29b17f0730041d008cc183a031e64e0b0e3008458e175da8b5cc629dade8299332ab6102670bf02fbe4feabae4bbadfa2a7e1b0c48cd9b22361ad56834155315694b3b1090e7d37f21abdf8e6daf50f39f1dea6eb335122c2400798ab3307386150c1619e6f15691187e7441c5ccb971668bb67d313cc541c0e756de9c1b59824ef18a1ac1e605faeb5c39bcb868a2d4170493d77449da0c7213ae74df6e483a85bcaaa96ba61cce531af36f6049e6592e39045517a5e126087ec7f5fba901fbeccef93a5c4b15dc498c1c962679b961282cef7781e8f4c92000fa0c12926695fbffdeed4bca1c7fee7358f659798e0eb27cc34d00e3740b15c27ff295e635fa7a326c27c633cd22e36ef13bf97e97d924a6160efd21c058f142471310fb8501775a956f624522ab1c326339c942c0379092ef7d978466adc4efcc9cd0c00d4803400ef54569cf9e1c54e5017014725af1e888410f3a2d718b2ddbf0901e86611767ce3e05343610bf01af66d47e6c0a58b63cf0b41de3ad0bc1655bf5a14bec1d3a7c20436e6622252523b1bd48b6988d917f0f8fe5e60163423597eb010c83e35f4fc374cc2e482898705f8d7664d022da90800ccf6d4f46eb38bdd9ba7983022ae7f7ebc9677d1f880a3e203d62987d1f5ff924a6a1f2ac90b3a6a4b62fe443d44de5ef4489e186ea78a29e064545485dcb732551539cb9fb9435e4c3924af517572740d87dc4588a46a7670e1d4868e1f6afbbeae499df1b7e9da0582dff08270081cc079d812078f0d1402c71711a7d2fb0832eafd6741dd4510959d7cfda9dc4ec6d7ae63300c38cf99b6fcd67c4529db4d3c515ab5005510502e0edff1ac8a2b7d863a8dcd672280af758cc5be5e0f83ae63c5089406c4b417c939f09a6af0450c5badf397f05f07660feebad748dea874828399f8d3a24001086d6392242729ad83edb2271c826e50ac70ce2b5325f0a920fd9b024d50a4be3b508cd623956146ecc3092eb3a51e032d6e8fae6d7e391a4cd6779c8fc866d71e6b55194913cbbd1b57d3352de5f513390015079a322ad062708f0139dea92661e7c69db9b40a5662c34433c806758ae4dc91b4bd93c492902e4e209f8d08b027b28b7be06e2d96092b48dd2e488c09e5e6ead1a7f743b15d1b5b3f57a5caab4d1814d90e362a511395f7ad29580ed0c125280939bf05018ba3b7404dd1b5864111dbfa4c6e835142d1148e3b92b4fe4c86d8ea46e4b0b852a77ae254bc252d31222df1136ec37e2b4f6a564b983c8b02401838350e84f894cd5fe3708c4011da858d97a0d28a250b7b39d648512db4358935ce6c5dcaba1b82b1debbef60985f4d83b26d5687ab7018634bf1c4143d74b8a6e5f83b37887f1c0352447ce2dec363ecf235a0f57d6fdac7ba421943a8671c751c91c5b4515f03c99615097591242721548d510d353ee63057c6f31c42e4f2a9eb52683093fadd029d0344cf5239e70395821f590bb37023747eaa7ce2abd603941922020ab753b3de600b62fdd18068e9e2cdbc3c748a2679591f274118e57c3715315bd44ed2318d44dde48afcf3daf05b393b2d2ae1b441331c0970e73b30940221daec7c3bace740c2ec086d2c21dd7e3ad4ae2472e9da8c6e4fa923d8f4ad29697645588748b4a032aa2db79f2b9a937eaaa36348d04f19e608bfe148bf6ac1dcfbfca93a526f7127f353ecc5329cd1aa996007db9c7e446cd1e7b46c2d1938a44f48a931a30e61d3d259da53a7a68c9c82156f4e10b7d5319122576780396110328d91c2ba5bd8d69fb19d0d15e5e6b2c293402231c7842d458a866dabe772c257360e2a8d6802e0b28d32a676a50ea2b641b78b7911d12f2fe529af229e9f9699767a0d0a88a6db37880f39ca3b6f00baf117ffa141a2526c770d2ff31fd0d9cf10696ea2d07d84c2e99088a0b0206ec43460e6314e231944c271d25709c1cdf3086c1d8475245d22571755bc8724779764614d5fb626ec5e5a813c064fd6b0fa83d6edaae00cb51891bdb73aeb3a128b8a5d6c39958b318ec4e342b89d0fbbf0e3b4f1358a5b959c4f76b5729ea17446749028064a938635d2e0c30923b950d7947fa52871015555ec27a7356aba07b99e2e58064466171036fbf7a057ee791540145adbb741fb07bd9045d4c46002eb70a1914dce5750bef65ad2f42fa4558d73eb955fd5c7bd1c05f2267ffddd6202b17900cb91e16f7f02accf9d123c9dce336b0623fc966183448e65d6ad9dabdcf0eb65cd6694d02aef02d10ae540ef832f59f5a3a18fcd56097c8ad4f54a14314764f63189266d6ad1855f34bf81910fd24afd68fbe677669eea9f1cbd69242f49b242d3aac589537c2f3bf011f349121fd71a1c0ac54cf75682db0434f8cad15c115113d90da957534c97ca3ffa45a64627ea85f7b18e3c201b4f89585bffecf338539f3a97ddf07413df0c9dcb02afe51b2b505d4fb030bf17b4e85e1368deefd8161db96ce6930f5c3edba89b3e9b915e748825f2fd808552b822220c03310bfb305019e715dbbe7422c62e058b361d3cac647eae4fb241810fd13d8e82e7994104ad17d03ae8408a7a04aececcfcd74fd40b732a17ac9f3d23a63152b415eef8d9c3370baa57cb58676e9bb41403dab9be0ddc9a7aabede4c92c45ee9eca97f5dec6884186a47b4658cd9f09310d9e0e02080a8c3cd0eef2134e92f32b436be0ba309124c0db6f07c99269c7871e8d912374d7d3d0a9b3ab39a9e717264648d202151d7dda070bcc742fa420940298f0baf62ca5743311be7566c0e86b61fad1de4280142a3428c327d31bc3a4c9245e51d43fe55bfa7c69104a3e87d05581c7bb6d283e621731afb691a5b72b825ba6de4e2c7c6d803a0948bb7c4b37e36e101214e658e16ee3bc8a2811919432ff44758d630abfd3d8277f4a0fadf1f1ad233d89ac805690cedd86d313a63e69a36c0c17d1ca07cb0d764b5dd944ce405d10c8f6b84596d3263c6ad5867a3cb2756c760faded75b952ce36d597d663804159a6e632f7fa69a1445f7b1de1b22c64b6fffe49c853319790f810fa96f24a89908d3307eca03d86c719c8d10ed0ac334ad10734122bd1692175eac5af165dc0bf234368f907cfaf444b863512a33b551518b5b8c7690194a3d1899af92cfd1046765dd0bc6fb5dddb57bf562537f739ec3e1cff540f5714ba736146d9abbf1afa23dcadd7e5c092d810ca16fe9e1c2ef037294ac9a8a05698e6fd827fe6b2f889586d05914d142a72abf6539b4218b753c544cb14ea39053feb1dfebb5e29b9093f381ff063aaf741ff9fa903e88718a6b4f23e22ccb6e3857b22858ab68d38487fea61c1e4909bde08e6b6f88d8b6990aeaa6cff48a96285d3d7ff989dcbb79d7e782f1d8e3b2ed3e518901217121a781b7ba7d1e40c68bdbd517c44bc06565986be20fb52a76c7ba98b3a88c37e47009e221a132137f0732dd8be47d48531501585391dea7710f9040b7b10ea91769054b6bdcd7b833a9989f2b6fc33109ab7b8c2bec98a87854c4e8d7ba4ab3cdaa2e11018c4b7966efd6554f453eb4740b06c94ced6558b5cf46c242115b7d5556e9f2d1a040cc12df425abd1c0bfb518a9ef6214d091dd8ec35fe4bc13c09469250b216cb104b885d9e02df672499e32f1ff7e94f30bdfd34065202a245fa1e54dbbf382b8692874beda516c1c66928bcd728254e12bfc4c8fba4c46aa295a2f3563529de8a7a0fcbe4154c41e514ea2748bb057003777931aade5af56ca2bc1e8b8173ed24969183ca9c83db714794853b0f07562ad0d3aeafecedd551a03f3a5e8090012ad2b2d276598dc1e8a8681b3addeeba768f8ba0ebbbee1e6fd6433e16cb29181e9d4209b2bba92e58c4c044ab1d8b6d0a00f292aa61a1f2f694182e4193957bf861aeddcf8d42899e53018e2d5abc13df20c408e003b9af559faf17fcff21da512bfb838b8e5edd138949aef57238bf3301a4f6e10495f007bd7b59db6303c721e2f2512d025d1bdd0c2de51c5f72c5031ff12067e5f7f0bd6f07e39d154b8a52d12de32809befd8898306b278bd07043097f2317fc5452e37bf83e10289fdb1d978fb832759cd14d1e624ab23522ca872971ef5ed2cae10d66bbc28d7bc49a8922ead76c98e88878210a2a69f242342c1916970da22a494ee8c4628a2ce81ba78b2c3c62b98dc6a1d8908d5f9117406a03d175ba6c1f69de68c5f53ad616ed7d2b43db7f1c8102cb12c75b04b85a96e7e6c7513191be6c06e2ab758d2b6aae60ebd0a5050a2858c7c8f434190fdb1faa25f1e4d6ed5a029acd84f7d2e2bc46b3945b76f5f959cf5e12dd4f8a4177ab6e66f085362e964bc720aaa36b500a4b200b8b2c5ad1930a2176c96333a39933fd18c0b903fb1a855cdc6f2180964d703a16ade09dd2f302fe2b5e4bb9955bf0511b13de1a80d20f8a4e56b2ae5cd7f3b9e361872d687f9a5bfa55e61ab87bb3dc1548e09b66d8f7855522eaaa25632b65205c29fb4e90fc1009cb1217cd18518c981d0f835a43a38cfbc09f7d881760024a7aae71aa52300561fba26c17cdb546aca9e436dfb01faedfad515f09d799e9178e961b5adcea1499100d04036c6a7323422cb20ac5eccafd68a1cd8a9e5363bf60185293911e2f16d84ae8b8a896166eb456d70d4737a5d2a008c6960208acb8e7c19937a4c79f73584977457be1231d4adf295b904d01199e530c70dd6f79b0588d6ac94b55190802951b509f52e8a83315654f26432f596ecef9ae4802df340cbcb9318a888c1907e91383265e87490cb3f7f1f10dc5a8ce6017e651b84d4a3ac7ee3eb69af80d31d9433a960c8b04a82ff041c70e480a533faf274456259adbd3996942f8a41daebeebb4be5bccd8cdbbd2c48725159ca54930c705997a9613aaaed64de53c4513586d954d001fd046c67ca324657cb7363ac8ed6aba4bdccadbe9c84ce1e5d249bb757d606d51afd7ab258d741368a6beea96cfd140bac0e72c29a3f143c8814cdea0f088d1c41556d0b007da7fe3181996a74418aea8926881ae67adca23e67934dcdc9910817e91c8a603bf11f879fb32068f1f16d1837f6669036880276d0d7a4da04c9595933883d7352becad129a05b0dc41ed1d61888239e6fb406bc2481b78db14505f7193533032dd13f369af67b19bf96a4266052606ad023e88b4f51c5084986ba36e8384e0608aac3a9278a43f47b0fc200dea23b32efbded1a031e6067746201f732c2d1128c951e23e604a2cf415e3058a861d9844d8e3268b6ca53e46c9f53b44bd5ec933347e4e95be43f58d7505cbbceb3c48744145bcf60db94e40ee1f602b2c61aadd735d5b8c4c7a7fba3d340fe9d4abd64cc15440efec726d42518a688d0deb73cfb42d5edd5b6f8f2e66cadbe6519eca9d6a7db00d6481fb6b82c5b671c5ed2a0df22e95adff513328e480eb2de352eddf1b989825c6413c07336834a5b520c576edbaeea0f86549780a6d294c3091cc4b71d240555ec870652c02184838b9ec3769aa3c1fb4ec538758285162c1babd64fe8dce17c470541bff5aa129970800b2ad628585015c0a462f50d6846bb1b167651879e1b7faab2549d94206bffe7afc9a4cd0d409857ca5d40cd2ddd8fe4774a55bfc762840a77c8f90a0264144228b901a145f8fff52d47ebf8b5099bab63b83ad68ddc629c6a5d8d637f09d91a9e66c5abf56b007731161dea5b6ee9a555f9fa84a976f1f053def905ac21c82ec6bb6893e0fb8ab8699323f1dbda3213c9953c85114e0c77d979133ebd51f39e502e6cb6abd88615e9b2682b42853a8ef27629791f77e9cce0d7be72c22e4ec41720b773fe1b0ba929ca5437bb688a9d7606ae7d099c25cd509722c6fa7647b7e5096e2e4595441f1daa2a0adf512dedc71b680f3dde536843cb043c899ecc554a11ed499f8343ae708f4def971c91a85ffb57c10469ca5ae0bd9e1f17a54c4c9be6206d9ac51ec1939a89d5a8cc1da58bba0dffa6a93bb549081fb279d71474a3fd5e06075148259aa971c4512582bde1f27a52c82b57bc905c40f6a881438c2a5764b426764eafeb53708c61bd3e7281e49e96d498d8e78f16193199ca5bb33a2b99af360b13d8df4d45dee5e10dd51fa2adc36a0b1f31fbc9ae4c0f2226df6c94580b65b1957b436fa24614c075a7f1c758e2d2decc2fc5b8eda89cbbc711c8f1757e4dd37a1da1970cc31fd5a9891c35a23692bc610ba5ad9ac2d06dc60880cad25e7578c26748eb60c5b5a96d5d07501ed3278a3e3e6e7f476e71ecf3248fcf7d001a8a619d1e6751bbcdef7608c822704a455f3b3f5ad13328781d7ff9e9012ed12d4b026a45069f23e2e8a9ebfe6b8d2b2e3fe0b8fa330f465d97151834456bf030ba3aa2019204d82787946f576aac9d9382c0fbb88d3b10684fb7d90446663fe4429397dbcb394bfcc4bcbc6b59865e0fde9afd6ad83691767b61beca66e12b0a451fa225e438a05fd32d7ff69664b70d961488e604cf3eef57b2860f258b2dcc34119c06cd7c521784a74edc9a0f867619c83fee8c33dec25333954a668080b719975a5d25994c73bf94c75d4cb44277dbb8a13de16fb138925b026e38d7903d29d059f0a2af5e40f1a052ec35eca4b4ec27e5ea78de4f82803aa422aeda0e7b4e7d8006751076cf830e974dd4e637a7cf4c9d28b0f1680b83b30bd5e7c787ffac639a15b4255a05c390734270ff4fa3264c69ab81291a565d538329adeb37db890ec9a518bc83e46f578c9e412052df137966e5448d91d9bd508e4c7e24a66e795b2020ef2a15f3794fe1a76c9a4b66063be1058cc6ecbeb5332a451a67456d9a0c6d1f978be8d77875043125639b68dc70dce9b9502577902bdcabdebe92dabd11eb0a0073dc5cd2b0005eb2cfa111c040234b08c6c52571111a733fedbbc271a720482af32762e2b1a81802e19dce5529ced24d6a57471ab9a9d337803a58dedea95e64f741881621d6872f133a8e9d1ffea6ca849c8136180b1d62194bc0f4a46a751674134062c441d0004bc9601a8218c698285a9648f76cc8c36ea56c1e60967c2f8c7817352b48213e59b9c4c2eb8cbac7e71838936ddc52e8b0c608d78c3ba6fd5b79709a73e82fea1989f77d49c9cded3c5a54c0580120d39703901ce5b5be0082c62ae3d7d5803c66f1a9e2cf5958152988e6d0abbee3d57972b89714a23181f41aa274b244e025a147cae495691cdf38570d3b8183b43143017eae0268341673c085eb11fe24e8de0cc501fa769559c601c1cdb7fcf804916a5b2894d02cfabd7ff2b4c5ba8c02f4f7041e61684406eec88c86d967d7c0fac01c49c010c9933cb82a34e267af1a71924f84023821ba38093aca3acfba43855478ca328ee5859d33ae98d5aee4b8c742b6e70019ccf77411e3948a6377a1d3ffe9380db3445358ff42f65d290f021165d8197a50a8cc4e17c169e68a2ebb5eb5cb4da16bcf0dc0f8636b1d583fba83f683fbe4c4f6d32ab051eb347da06feedf8c0d84d18c60311402105e6b208d9bbd9d5306ed562f7598798f40c5405b59e488aa9ad5680debf28f39598bc50b11c57f9469cecd08e4d868580fa0f087187cbe6707cecdf6d05f444ac4db2bfcb179b205a3dc44054aa915fe4d8af4fb3d96772358454c75c0ea0e31dc48991b436cec5a6418e990a8d7250c741fdebd57e52ecf86c5f2f83da7d2fe16fed55f6bba90d373c01bcdc01fa413d445f608a69690e647edaa3f8cbfcc9d2c45fc7858f4dbf756c0daffde362a65579c3d0a0f5f4d61b66ab55c47bca99acb18e8fd60c12c3a733139fce5982bf8ba2a4796eb14af4f2ba74873984a4a864232083b4647dfcb23591bdb2bb7b4b2965b6045304c60323744982652443c586132e4e2e8a884548617c8c4644e30b39c42234a07ec8a218a293212cc41986a4184da81aa574418285ec808a88e4649c7222818a885890a47c903f442ce4187fd018837e8cc420592cb108b39402489568a5cb142c31a888419c901f388d2c8a884490c8157c8c3b8842c8718506ed474c8cb1268485e8829014a48f2a52852e5eb01051118d9c8c711a991419b520d9f041fe202259c8213ed110c1fc8c49315aa8b1107dd4528c5faa46225dc417b09038a88c409c88554e6294224c48357c1c212261398ad010957e84c4186328b1e0402905d942d507ba88396019a950199beccf898bfd39911e30912928250122e2e00295a119501069489ad1cd10a3939f6e3ec923c9a79b21e8fd606b49b05708cb6906e03902123b627a1d3d79c0eab47604c5684b6754a5823b4201db8e5ac0ee5108b0a3135e473a56809dd68e766018b4172c324d464f48b3e1012896d9a2942d66d93cb2ce48c682fb79b1edd2dce528661b257960640466c4a403dd690dc89410ca771f487be19241b371efbd1bf743abd0759df749d5684c60c6186330a46da159d99b67265797cce887c562b1f6ded109b57052751919e9a5c5696912ad9626a1412dd301208a9ac4e54653464c680e41fce97049961541bac090b62065c829720a47e3fbbe8fe8cb0ea7fd711b7c2b222d445ec8a43da612ed6061899442d2f607ddfc1128467e60af20a770fe06c898beeab406444b373f048a90da5a9027dd7b4aeae6f7a3d35a10a15a90138288d02bc594af8030d58e9e826409d2854640a904c2708b51158a16b5a3a3138e744c09c92a64ad914b37646ddb6e6e4a72485966b02344146626830ca32c5736a86ddb9450ca71db867beb8063cb6a7e1649b7bfbfaa1456b2c8d77a70c0834cad878f0d726a830e84af81d74f6f6c702805ded3df2568c7a111d8afdf773f7c37187c1b10bc016daecd9b14b2bff730f8b8e52d7a938424956d4928dbde6cdd5a4b33506be1d52f4db2eb6f2fd4a298663c85d49665cead16471a715646012526514933bcf0cc2082d485c49c1f489d03988170519554d98e0e2b3160a87081a30524434ae843ac599233760a40c46c861301b3142a0ccb6933bba2e534e124c08cca49ce8010a9220ca15558a82bc8d01a0c62708071a2c0c701b3fa258693d230ab71562171468d3a98d184d41798a816158e6ca853359cf4c95980d965d1a5cc0ea52d3cb8e050b454d5757cc005bac4079713829997734b911e4595069c8a43ada1665142ab36ea450a0ee7917328cf2a92239408970d84ce86b30f332aa4926005e80b15d549a15039a3ced1e82c5b33a6194e9a04c470f21907e7ec8c3a17308be16146a16852d7755dd7755dd7a9505b68d2a5cab972e51c60a6a4a4a31a09aa637ed0303d51904638a9931c374e1652909c15c616a70d680c0953c4c8899015ba8eda740385c1ca89f4e264c08c47b5516b378c396766595a705b8d080ae3174add234afa254c680e506785d18019b501c58e1305195ee79ef194f073aa38310c0aa6a2684f37e4604307495fbad0d239e55440073da39d01e8ea8c296704b329dae4494690b3cc79bd1e2ac409130fec869f285e9054741d4b12cc9a4e08cc88ce8a25842edc6af680d9e76264e1458426b21f436e44603bda21eb42329cb35a45a686d9023a662dafbbac1dee4c0bebb8d6ca75ac82c09a7bf81eccf65bd12dc216d6bdb2f4701086f5ee3fcd758ceb98e7791dc418631ddb686a879f190e7c55a91eb2362aa6c326756373581980aefa9e0b5f9a72e327fc84a36a6ab869bd508796f3f013a6c24ff8098e32b154bfad37bfcefaee47db147addbddeedbc2d031cd5e2e647c3cd3dc3f11396c25258ead2a8ade162cdcce7ba4dbc7bf17e8b5f1abfb4198ea3c0178ec24f2b203377934a711c0593c1155197bcbfe1b14dfd8ab840a5c781ea92cb66c5a654ddf3a238cd3d8e7a4f039517685fa0ad5ac9e07ed8bee97ed8be7e1ea5a254607d1d5d5b5d3f2b034ab5fd6dba51b5828aa3b0148eaa20ba6d87c6dae068eab9b3de5a9a93b3c9546f32d4e4d584d6c30ebe955dddd55ab95a39ceabe09bdbc64d2bebf6de7b3bd8ace03af6bddf2af77d5eddffbd75b12c08daa71606722ba39b276c76e9787605825bb69fad0fb8e23a79e6bbbc6d56762907f37bf9b737b7eeb307d0821be20bec6ff661b582ed3b6e65dfc7f2ecb3ea0c37f7def69b5b09fba0c620d3cdcdcd729385691d045db4676bb3b5d665611544fd8f736d5f5ddcaf5c319c5d9625088a7fbf2d72b3d22ba2c577de361365d7d91eb4b12ec41561c1fd80b9b2836f9a28410f7c0b6ee6b15a016863b5562beb5fd7759d8d55101cdfb6a56912521b7673776517c5232a85a1bab920000e62ba2841895901648381e809d15454d012a5b5d25a6badb4d64a9378d96ab590983aad45f9f4b06a1294de5abf1295e2d09b7389dbeffd12b4d3129ab572fa59ee6ef76badb5726f7eaeae69eff26ef7de5b83aaeaf7de7befbd3e36f745b6372e230c338c4f7694be711e3aad412541f54821c4049c041338a06cb9424850839ad16fa735a812ba19a20610ba19020a548b510714076408553070118f66109f4ccd96d4708484a144c28f1b88c6221c514c40717a797241063da9a061ccb8c5cb98058b18c314120526e450930c212a8028b530ba20342aa1419e208238c6e9c50ca7174f9911852fa408342ca1128f38e1a164e431848946bee082f8238511c909630b19a20d314050d28345090a72079812b44c89a10a14159ec62145c62e47e40c1ea2d39048e606b9828411840f56480213694952fce4b0810da3112baf28a29628928611524592900f302c7041e104b261964353acaaa983b18798f1d545862b240952c4265223151232454dc70b433b5ae43861067986b002892c05242bc61a64c6d90db52c648c8a28a489f825097963092ac8061f1897e8b85143dcf233a280419a70c403b1ca111eb10987f1a886114a1512c813d2c72908911166348a50e4820a640f1b4423bcf021858cb0186918d9004718316a4b07328c00030f14d9c334222189493dc4212b8c1e048d294a1095802083a9850f13076490aa2b5cc6d80c39a6c4a525311c79521a3ff8618548a4c231e260c2d8738a4c8ab8e0a0888a3263645e461858c81c53c41e4cc6a5a6314a883805847cd10259c2c642a3d3c6349a7e6e8831ca408485d885480a51aa2a1fed3c5b073fd7cd5a14d6a29b64733a269bd36473429e657f97eed265f2429e5fb6ab15d83aae42411667680b2be6ea1049067398737347835ba64cc9c1fe9e06953cbb76b3ec367fb3993821faed66ed6696599cee6b4c926a505db239660d2a7ff4fb36385159fafd2a64735cfd7e6502d4efd71fb508f3fcaa2034b865ca94453033dba22ba20615f5fb7907e4e609afee1a74455cce3f8b739bb209329afcca270d0d474343f3f945934f1a9a2ca3a1a1c9b0fada34f5b5f3f6334f6d8ef9f5196e6e9a9f793a93734feec93db9270718c4f4faa2d31a142b5b687ede9befed7d8d4bc7ecfe7b0ff49abb9cbd5abff77607769ca73337b7ed3277dfe940cdae799dbf86ff88bb5da696b19ff6ec32efcc87793f8b6b9f1aaec19dc9bf5afdae613dabe39e65b278cdb37e6686b3369aa796dacd4d1aaf66b59f8666ff36b3edfa2ceefdcaa563d9e2841de466f7f83dd8ff3ccef5f69500b4b78eedbd5fc3b696b1b786699fbdb79659d8fe92a575d6ac6dd3f5b3fe63adb86d95bbeb988ee9988e7952a214f502745a8b02eb6077efbd3a1ee8d8d39af599a5bfef6003c3fb0bd40efe089b7b720fdef859f8599af5f9859fa5f3a9c3a71deb1d9c5fb502fd39cbba59ff8465710d6e67991ee83a1a83f0f58fb0f973f5583aaf325fad586f6e7a4568fcd5957b2a88cab78f9b5ec7fbaa7a3f806019965ff9ccaf2ccbb09c35507d699d6bded35a6b1a57aec9b6be724fb967ece7058a1494252840506a4f9edc7bef35f7779f769cbe96d1efc38dd2fa94d25e294869addb56b906b7d70b6cf4bbc7187ff8f1c77a56f838ef67cd7cd525742c07b3e5e64c5ee99c73b6d6da99991773b7ab99196e6ece5a599d437ec2eba02d373602cab0fccab00c03323f0c24fb3c597dad80641fff7ebba8c5d979af70cef59573eec93db927f7006ddb7d79c2f4a4c6139f4e804e6b4eb23ce90be8b4e624c8bbdf99956f9bbffadf67ea68d001aa2fb8f5f6aff213d6d432125f8bf5a0f7fa57f5f430e7f1ec7eebd1bc8731375b1d7fde7f2f7233cf7ccb45edf7f9695cd47e98314d947d631b189bc54f78dd7b13839a9b28bb177eaeba84b9a31372b36e0fbe0962eeefc775ead7f77805c2ce0d6deb21e5fc638884ca9aa6653d64d500b3bfbbcfb9c0ed123d97fdea02adecce7c1ca761d8a5a33916c761eeb187ab876ba843ccd55de2b25aab6156cbe8e6b5a1b5f639edd3cd5bf17bd5622d0baaf63b7ebb7a6dbd5dfdbecaa3639d6cc565d9ca344ccbf47d10b4f606d5d070a0ee2f57bf65391a5bb30daaddb7ee6f45359c9b26ca9db98e596b35ad8718637c5fc3c07a06dda0ba1501e10f97015c370a2728af26f1ddbc7d98839f5d9804c6fc35e80a1f739d6a0cba9e7939e2629707b4712628aff85ce1e9a1cda58d7d2a295c69eef4044a12ba12d8cbfd8bc0d7951878aedcfd4769f7dbe2d88eb770ec8f4b48ad8872687b4f3dcfdafbdee7ddf2bcffbe6dbbb5df782784f446069e18b674eec118a6be90cb9ac4bef6bfec6d8bd301fcaf04c775409defc1e7f8fede2cbf040057da722bb9e7a60ef8dfdbaf55a1aaf2145eef0290eb1fa639f86dce062ce628e5aa8e7d70ab5bfd6a051ba8bd5f5d01cae912e07fdcc30515dbb0d3177cb687df046a073fc480d23a7eae6fbdea0b2a1d6131df9c760e0845b75befbdf5524e6d49637f16c7da10a58d6d9f6fce45efbd76e3e1aeb5af63cb1a9b524a6928857669c22e5f60a97b29a594526b29a5f4d27be9fd4bafb596725ec6c8b0cfe6d84e71deb4c143ac2d6515b695258ccddbecceb7557a57f46d0efd117723f2a1aa2d99d5a49e6a5235a8964a123a26b4b3de083dd7eb2310fec98120d7320e82af3564d87a8655a87c6d1302082805f48371b40f9880e9ae4e6b4c9e421dde78bddd34cf304de2a311dcafca60b9aaec7e80599c57b9629bac7e71c9a214d07e3d8cb1059a7b58bd8e7eee35e77ef59d79a2872b1d9ac81de4f6e3d56e209446f5aded50d2b6f971967e5982103dadaa377ec384f426dc1dca20dbc4d93eefd67f1b5518d6fc7d96f53adcaf38f72ceb32f3899e1fa4da153ed539bb4ce41e7e6f47dc4f96eb75519630acac5b9a9559d90d5985cd98ca17174b6d2c00197a21bf70546d0a502d2a0bcd3c747db47f1d6773b6afb7aaabb7bdfd3857ab73ed32b6ef6fa0ab955bfc8dcdc18fd3b74fca9094a06a010ad0cebd8757df8fb0dcb576f54d514d3de9dbe7d2fbae8467ab5d81cfb7ddda3c18e1b5d72471a277b8e397863067f3805fe77bee3f4ef177663e815dd4dbe99db538f62f94d638aa827f776efdd065963d7c7d5d2baa31b06dbffa1537c35fad56abef56dffd8aeff410fc1137ef74ec3251f68fdbd8bd3b61b5573e8efb388cb98712b463ee017c1dfcdb63fef7773ae732f389ee753fe2ee74cf6522f7ce3ee732b74e3beb0674725aa6659ec763611c7e9c3d6eb67a186a988eede0a78aaa632a68238475e336ce01eb596b39aec366d6eb3df7f1ee37d7ab82d86a50bf42fddeafe777f6cbb99dbe5dced5e50eb6fd0b44bfa11553a70c9ebf31b4a425a6a627a98d6eb02f8db6699bb6c932345ad21253d39394f6b9524f344cc752ecdd2a6d6e1e871c83399c629365766d9536378fa363da87b69b76eb69499ba6631ab66967372d6ddfa7d12c2d0c6925c871b9756c4a29a437e66df2e995d35a796b6f924cfeb0666eeef4b0f2ecfa50d492b4a8840cd9535a57a4090023170000280c0805c4223992c420148eea0314800b6c9e3a5c442820cb02711404410cc4300c03310cc3000c023008400c7206198ebd0011e3f2fbf082e744f375ab1e2ace8e0608543744b8cc64ef6ced1f77cda025d48224b510540da40b806cc4fd3746d030ab2272a36ccf0e8265a69b5cfc9f0f747372fcbdff773594a578f6110ca1449fd5dcec143c0bdf49d2ef0255c8ac116798824812c0bdd2d1c6313b8c33fa032f989eb2efc433a74f97e93506c0bf9392d8faae3b9b9b69fc03923df692f7369ed564523af72cbd5981abe8770e3d41b815bcf364bfbd17897867ba09b635f9ed93b879018af5d841a2362b44448e925a4f6d82a5738be25962bfbc07ac1ced743cdd825a943215c69ed8e16c85116f05204f26dd6678b0bdf36cdb33ffe56c45299213d5705bb4c3d1ca88820095140fe210512f018c29c468264c1e4af6bf1d559cfc3165a48cdbc7ad4bf6621cdb6932ddec4e8a15aeed3b2d804447802d275ec65d6e8165d8931ca89583bf88b1a285ba8bf07cdfb859a03a813b9f6cb061cd6834371000b524cf5593d43a3091c449197f04d21696895ab6fc4eabc4f004c1b277c109f4065a59d575d51df9281a31f04a97232a0aa8f67b6ab7e7101b6d44eb35a1481a8f80d09043f32e89b94cfefea95fe27c53e7b2f6b7f9cce81d9695568c5aa0fae8a061e6c81ce164509fceb0f8bee50504d7d63bacb5303d2a71d44a5733d3ec4089aa228dd938777506e6dc7898ff332b16a70f9870b4a67ab8865f4d89ead08303731442173377179ec6f46b4c1fddfdcbd2ff826c8a6644f3a984d3c05c927bb88afdca27bbbbd0752510c248c36d8341d3333180a073df6724645dbd2b3ee768d7362cf48a81d9a2fdc5ac60f23dc9e44671a811a5a141e9c6fe9057b7e976e690de62c01036a995ecbc552b905420a2841686455d5e8133d00e5beb3c5b236e0d1dfd843cc9e5a5a1e6ec02d3bf2f48075ea03a18639a1bcb56c10af364b3fa398c3d6bae17b008f78c355d8b3ea01e158b711cb0cace4201ee85b186b3a68fa9fc15573032d7f7e2d85e9999c9aa8ce18f68b016c19d3ff754d5dbbf14a4258eab4ab09f5c6d758ddb65e31df8eb2538047d8673be8be9d913ed94b50458077dad8ddbeb11781a03ff3cb202a5a0b9577b7b8287cfcab194d47020fddd9a34e14e502789e75ceccd7d225bc06cd3b5a395c805590f74b6e76313fc6c709613dc25bbad12b8888f91a23098d2342904618b6fa836d99103151bbeb2a90415b577742cc9a592c0350adf53020bfd88f64c8a9036e2a74582d153b9869737547df30409a224e9d96f7738ece148d71e81d9f2a1e04ee8fd30c2401f4dd09c22c0e723967b74694f19c102530885185c7717aa9bb465b0dc5ddd71107390eb18996c60b24a1d7fc9a68e7c9b43a6196b869f5c725743af04d166a043f8ecc7572d56668763e8995b5122b463a3b494150fa9bcb54e09df323b90bce21101c45d98cdaf8398e89aa24ea83a49b566e67a19136aa191276dd57da09bb98cf06fe8362ec0e1703e6b048f2b31d1d3168e458fc9e0564fd8745f721fbb15b5923bd2b95a7c26fe2c239be3788d39b540c00976b560ea6813f9a76dc13c9ba619487a35092dce44c2703e4eca7bd8ed977ac0c698cd2b3f79aea67b66d5dfb8851b62faa7d7fe11c25b67ae4569c094e32d299059bf448fd69d1c5a768434f22f3260ef327cc328a4b9f092f7553da4afd422f058dea42f6a24f49a256b14dda8853587ee199dfce60509093895053ab69d1c14af90c60d0c852e2f551ddb18bff2291ed304dec4a84618022b33e0ed3fcec75a0d3e6777bfc37bc18eafaa68aa475cdc41827be0c671b79fefff4455a8b52d43b9b31f69b6827aa5a89a401360b6d70f1f0a5c7bce8a93a36f33f581c843acb3dc90108761e7dc6dbc530a959c128c271d7ea80ba1f46f10fdab5045d1055fe74d623279fd43618b7f041b0d47d11035e89e7e9a0191e2d36603e32c3e0022ee456ee1332dbb2404a48d01d2db83e70063b6a77dc16c4f9d8ed3b0d6eed16d4dce48d86a80fb89d04f66688352bfb2620042a022c1df5409d4e198cc9c1886d653a21a5e70482c0ecca38d6851d39fc098269c9c4c741b1d1834f5a86795f830d83dea895fa4111161dce33ada67289832e623815ab55e1feea504475bc1bc65f831eec6687a7bed0083f839065998bcd978afc543620e7bfcdb009d6f16c6d127bcb10859a957702828f10621b4361cf3e3875dc05e8505dbcaaab8f6dc454b97b3f812c61957229275df3a7d91a21358e6b0ad2e64531b841c0e5dc93ddfe450c6db45734b5b868a850246e2bf4ca84d30b7f5b7685b4d202ebf8751772b231a3f6ac2292f716e58e9fca6f5c598e06c85aa981405a349000403124790e08d14ca0d6bda9b1b36ff0fc11bb2473ea5d0e17805547c97284583a890bebd73c8406d38cb4594be8fb20eafd4c8ddac547e5e41769c7c969a2b47832ff484a2680b786304f26b6541c9deec6a62b13b0a11a59e1661a6a4c9a30ce8f5fc3a3df6163590d16675512dd79507a53fe88fd1d09a8e019b80d038ac8a88108d0741f50e81b293b362b644a0cc103e4bce6a433547dfa8d90e974952a4cb3af60d90fa03d844fb10e9fd6f4979b41b615a9c4d1b61061bb58579f821bbd702f0d211ea980007af71d346ac701244ded145acc40861fa3ec1b66f5aceae2e92b20b0fd660cfd25a9f81cbe7272da8d063ef548bae23c230d87e0b272fefbe66543ed13110f0d9d701a7c401eecc69708cfe9c427f18be4cac8e05fc71d95ac45a089ae484a91dae9eda1ea7b49ae0262cafcaf650e720c8bc0189338f98c0f57a6468a26188c976fb2daa69ef5c48ff9250e82faacd9919c79ec5f9615097312643e715503fac6026d5e579b0bce07c7e94cce2bdaa91605da42cf83ac8660520172cda853cebbb3d7d291cdae41aa67c3cc7b081e2505a5f05fc9d36b44ea31c08c5d830f67c92847463f1a7efc2145cad83c0c729b7f88f71e11bb9842ab6bc8e8f0866239c8dfd66c25f0e7a8a67f0096c37dbc10626b1dccc151e1b5a83363288141b982c70aa0537942eda9276e98bbf4573d5bce0eb854a4625784156415e6082c52a318f6d29e1c53451a23ea899902cc7974da179e2a22e15f31e6ac31b10f4974552bedf2eeb453a01354d067ef75200c092019488310079a3a8bef1c8bd52d38049d2744796602e9b6bf2154f156d269c98d22d86655ea1e38cc8fcf34fec43fc8df5ce40b53e6b9c138f6704b3f540042654bbd804ddba08dea2d272509a5be71ad619dbe2067b98b3e25ed99c4534414f24fc5a32d67825e43444d7817f1f928ed106979e65af5cfde3551c9cd2a8b5fd38b7efcf268a9e9211741e808c64c80dcf33ff1391b6f4a54c5c481e3645089362234a7b487e38fee30042d356a88c2685e42dbe1275e267d06669a7846be7ea1777c43a61f5b6df42c0ecbe60dc21757464bc4c36caf45aa8002d781ff58c8ad1b73866e8cde85bc0d2a61004a7cf45c2541776a522c70396acd66c487bc1278ace3d057bc5fb0dc86742e2ce2b2e75e978b538de86e19d95fadef881515896034611c80c05599319abc0d95ba4b67a2af0a4c1dbe10e496b4cb86f040bfcbd093d9f328ab59d3e9ae09c73aa62fcd21c5289e840aa6909986e4370905fdedde5c09655860efc8292722537ce744ad506dcfb8231d81b30cf9466cd01ef18a9dd657dda2a2f6ff3f0af1b6f3febf40ff2a566f27e6c0401abf8975d56415a8bfba87baeaf96f742e72c16334b5d4163b366d2e024314e02cd6820137c527455c0256b8015c6a5c3f809a659423fdafea5b56724ac545d003edf2de1b1e01ebab468d080dd55c5eb562f9347e1d2822c219a160bf07c27364004d224272aa44bdbbe06eacd8b5e6c63f90f5498838a0f01e7c5fd027260a4b59c6dfd94440c4b780b18acd08d51807f45c70cebed4ca6da40d1bab45145ffc5d6a08b8d900ecb9a49b0f35546f220c10f98cafca7261449f08aeef0e2be8c15c8602d62be6b9256a877d082422f2283a3ff6845478d467cce7b86dedeaa1a1f1aa861dfb973fa289fe54932eb6b23711b65b1eb17dc2dfca155542af4d06d3e14d2ca9a4c40e56b91280415e7c8f8257a784dfd77f58a9ac863ef3cb3511db35f894425ac9f1f82447abd0d31f5de9f939be42cf9f4f184fbaa99bca33dab5a50402c12ab62a1e5f24662d29fc53038300f035dd680807d1e79f9a64b7c2ab8ef31c69482ebac6d38dbad7166c170dc38641aec83bb8dafbde5c620464621fba855b0d60732b0f0a532e18f073439c1bd87949fb160e8cbb59a125161b29df07590639c4ba53892d7db8c5af3720cd8f4df7e169415e0730002008a17191e68b27f7e941bacf02b56cafab1247337497b492e15f3a44150c7eae9098f68119a0250486c7979b4e7894309201f54b9f907a879dc8155af29b410a8f4e0ad9e290b1cb7e7c291205d304e2a8c5b406221f50bb731fea1c42ad2b82d5d3ff65112c506a09f9ca834e437cb58bdfa2e6c5fa968ae24d06eb1722b00be55940439e068cda2863d084c9a186778330bb0a231f4b096a4ca1daf916981f0e4234d43fa79246b0a40e18ccd20d0f0562e7b33b8ab97c1ddc073605738c8954d41883769b47e23d529da194c9ea29504fe52961da1968592e345ed180991f322c2bdd4f4ef520c711786aba18f48fe956cf5cdcd8e2eaced3890c5b2161c9b26c56026e0745e0c25e833a326aff3c85649cd0c6d9afc3a35b329d4198f4301998a6928d02679d3bfe9dafabf840c8b0dc92f4ad5fdba9e26452696d9e9b1327baa0620c56a4439a58d4a3dc1479067b79436fc27c7e0057316238c107e4d76a9b30200b3369dfd9a848bdbec18e6602db63569f2b091415987991138ca6f26f2c45da32019e751673573e78b8a26f9e5f66d9f67d37d9d98083f0ed40a9dcdef5652f40b7a280d0453500baddd453cfd5737f4eb681bcc4393428b0cf2206c81b9769c3a628e4d3479bb31d7d5e720ca179534106140018dbe67d28cff37854774381cba596fedab3740a03b6aa26476b3e3b083e48a58d90d0a83cca0d27305792ee21edfd48d254622ef5cc8ce3a0f11a2bb4d2fced46b090b83fff766d42c32c22a2fc7f0802df7a2592c307d22e5622272be4a6480c30a66b650697de4a5a9c917720c9889f920b12313f4c91bbaa7d0d351922b1d83cb9e937e6a38fc3f04adac1ffd5e4d436ef5e9440146ef607eee54d94bcf921ef5bef155c6d2eb72d9b05e9462fdd28ce4581b85379752c2022090caf78d9c6071db55d0dfb60eb49627f4fba5447461fa73fe4022c0237f915d9b464ea804a73343c4ba20ff2fd617f128cd601a5994f4ae8b28172d188938b8af53d3ee4ad4f25ca7f5f065e5a350a2aaca716bf47cbc632b46eb022a407c6c5225beb2a27cd494da0324c5584da9354a390dd506c8b623b68ab654ae20c3b5c524714f97f4596ce3fc9e63289b9322e586aabc130e986b703cd318cd364ae7aa411ec8ca8c0dd093c72edd3e927556ff084ba808b44c07300fe2491f464b1c45f3c60435add20a011fcfdb6fa9bdb720f15000b9c563705a8b104f83952af0aa9a8dce9025a2ad9626830aebe128256e0c4ff5fbbf020e914325f0b977204de8af47b6d21e25fad2cf9e19f804ed35522194cff47bb8642e09a567d5225bc4072871d205bd4a001bfecd0d2ddb9a338e8819d6716cb3c9ee3bdb64a35b303fd8cc5da167df256e32dff13af156ea127872c4e4132dba6632cfe6f6e39576efaf44200c9f5c0f74291e0ecc9ee5e14b72617ccb78625c6a8492dc2f33c8fbd96195dece0a953ffb4574b2cc98ba09f69effc7348af68d8b52b4545379428b88536e79f7ad3a3b2cf0eaec072e52d9f03c699ab41f63fad818cd7bb1cbc523299ca0fbe5872ee2bdea9a68807abaa3ef0fef43a6eaef8a5201005020e2b0f797355f470c6c54e2fd9794587fbfbfd6012f39279b8eb2231443381aade54719c1820e873552cd72bb41eff20b22f6931b0f253a0a759869ca33acc47ef57b2503c362f8da203073e60e34eb8744f1310ac9d965cb92f1f074b2862f162ed1a1095b642b246f8fe3d8e610de066fc490aae0e72e4a13cd57ce54f0cb8a3078cba789a5594a9bac4070e91073f9da21dd63446566bd0af9ab4971917e756814bcc2cd177d1f01ef19ff3b91048760e368f3aa1d11b128ea59fd8c790f66691ee72f89f3d9c9c25cfccf215566ce52c43194bf29612882df8430b157630666de6a88d5b8f8c4fc0362bb184644c7aec9cd51e1e0d2656c17ee0bb0a392180ff9544b0b3f8d2046e4331821f1360ab5a21552a212bdc69698a2b8e951682e67928acae80260e39e19a4b61b1ae3b23cf981a51c12134f2bd518e15edff931085440b7f0e05815d35ef282a2577f39338a55a11651db331d6b98a3185ae98c5f6de926e08501d2a185202cff25fe00515eb31f40da201b44561000b0acd925ed4f8212c39214789c40363371627ce68f106ed0f0834081d59783d8e6eefc38e071a0ff679a352e1a135b6d89eca517b1e50727bd78bd0c67a16a4a9ebe893c5f066f378d22351c34702ef6d12e119be300dd404252f7a3ab11c2cd712e4712f86059890bc862574a04cea8d756e6fe56674b05a1ce195e94417c636d34faf3e36a5920d15cbb780fdfe7cd3058ee9126c797631a12e0f058697d9d6c1e0b992dc28cf7df79fc0dd92cd57f07e43f79fed6376c06cc603de48bb4b4d20a3407f22258d2e0e2624c53be25b6dd4d49bb81df183e62902433b2dfc63017542d8843fbc0510e8881121ff432fab2a3d3691cfe97216102fae49c85143869a2accf9b0fdc14dd01f1e0b79e90110c31df53617c1049cc511e06dc4d2cabeeef69c326ef12cad1078e262de2de093144936cb0bf3325dab86806b736802d65dca812097cff0bac63ddbd3f4673fde1dab0cd58643ca7132b04a98cfdad301f625f95a119f5e74824c1e9fb8290a474654c9d05d9506af1130da6a9626d964a69de2eb915ccfd3d3a7d86af3a5c3beca0018f188c3c1cf2c9d3453b88685eac02b5cb1513746cbacd8ba07212d1a055501491dcb0b2919b5992e1b06c7171284d0b56a57110fd27b8b2c967e62bbf00ddf0f730dfd65363cb9d2acce7897e411a626c79ea797f4b77cfb19e11ad75ea0c16d8d305dc7c8874f6335f6986cc1a68cbdda235b728f5c5174a31be5bbe96fa889f660e7b4c61dd5bbb3b03642984eb9c5588ef9433852d7ff331dd5b24009b4c1d9f268ccd80fa495425648000eb68e80df9d63bd004b00ae4b4d69ec2022880910965456e58aa22808a4bd59d461e5e6acd3ca22a273b49424ed9d5dca60cbb9e565916d1155084de857fe3ed283c209a974830169fa914a787b63761dcf4cce64609dd39b933111b45ad8c8b00cac5849acb9e9da220210c8e9de9564da3acecffc8a0688ed274487cac62882e639738b3d01cffed28ec5c8ab068e50068d1cd04f03a5b1cd31007dadf9e67390f2770e397d12e70b90d2191a5ee08caa36db5342ca61ed010b6d1fe61f25e0126f82f12ddcbfb32cd4ba3569eb94bf10aeb6c27c56c5302cf84516fcf691997b34a29eb3038f94fc2abeecc68db887288bc4fe4422ab0d99993630f387da932e2e29ec2804e516dc2e1923c61044648a580f97cb63d086a4ba1be71d54afd4c755d44e0b5a1dd447280003dfb78f02df999c22c2b81009a69406cac1393825f916c10278bde5cd14f2d7a78bf36bc923a901b417268a9ce4bedc2b53c1c019a1d62da01c5463283de3b6fe85ae312f86a63a7047656cd8d406d69f8904a0b8f5d5f34a2960c4b5ceefe80946e90106a038db49242c99ad3aa3a58b2aebf913c97e16c2aa52cec4ab280ae288c90c36a78564145a28182f3ec9f357a885c143372867c5261d6c257d6ac4104253bcf5856e7d6ec19e5c3e107910500a08563bf31fca6f230b9b480d84f9a0d8da9a4e188ac026588aff5aeb1cb0ab972338da98cd619fcf1eea0549845d4ac9d38fd0d0da97259cb9b83ae376f343314ddfe328b327b19c1aaa411f6d5e1283d66a8f7a599482fc9deda8e59822e5c378772a95287009aa195045dcc7d97137e42ecd07d4c1cb942e4cdc2a5ca8b96614802818fd11a7f40f92585642de8da5eb7d2ee1d200c5faca557fee998b7732f9e3876b0649a284f3656e035fd3272053eee2a8f96c0d2f9054060cb53d7c34390ae05214888aa9d548f850f0ac9f0bced8935c11dac2bcdf6158daf6b305a6eb28237bc86b6e3fc60548f82221287f58955cb4a5a2425d770dcfc6a291356ca2d7d5634db4a0145fdac2a4be8797e9d79d179b8112fdf9a5f2d548d40227f3ce428ad326a096c60534ecd04ee1a107cdf060f66bce78f1db7b1241d59bf5a5e28578493d8c4796e1688e1442ebe9e177cfb6122bc1ff6e3d0d572ece08141c4abdf3bc86e5aa9d931b311f97cf26db8b615494ac108ba5a96086faadf72c61b9e0ff26d2bd064e55f8b3cccae23d906bc966575196d4ae8ce09fcaf55606ac08240015cf9a72fdcd429ad163a597d91b3ba2e88b44a1826e1daa7b25aba4f123e2b36226891c477b060002a5e4f61b5acd7b11a8d481bf1e5da6e755de2a516683cdc65a835980d02e1c6e2073c3464666919a301c635301f8f7bdd2f26794f472df4802d6242c141984155831cd25794b0a3230377ffacbae001a25186246eb9072a0a4e414c3cdda95a9a922204351d3429ef24fafba92fb6b5986d9b5de14e48c2d39f8043f4c97458516be4cdc3480a87998b4f9b17b1e1d52c87030531156a77d3fd83ae0bfede010bb3be78a5b22fb29e05b1a3e9850ca8f31ac86c5d70d836ef24eb792be8a54d6abcc4b55994c6e5894e0528d342bffa903435824742cb01f462c2791f404a10589c34b02c1b8335b0d40c1e4c3f1ceca2e77b430388c61e6dc806320cf2cb2b6c3ddf58d77eeae21b6611c1639626b3d95c60a11e1b7142ca985f4d93671ae20542c1127828410d5cf71eb48c236cee5f5c25610f5802be28835214eac402e87e95a837a26731394b184b8f20bad1f2433707e214bf385d13db855f3ee11bc04cc3ec01167d7a2b795ba00081d8f9a8fe00964217cc314a49d4a7592fbd9ae33ea136ae15af658083754a00dbc44b2fab3515afd3fecd7d250058ca009b64a7a394c959e8464f5f34aa73a08415c83df0cbf326f5087a80bdf9573abfb2b2b83581efb8847b4173dbcca11d220d9ceed1bb21a281dec79c6c3580a15167ce3e15276b9c78868516c014b3bf12698c1b80406e8813aceaf213a2c5c5305fe47d6a77b362e02fb050b74b7b0530d5c84ad42ac7da5f7eb2d838fefa155efdc980b83a22e2a961fe8a235f2a18876e6cc103a64b20afb6ade91e18e6d6fc2bd82a2881efc41481482ac848de0499270efb9542550931116503ed4dc6bc670f2d619d81267b76e359c06e00eacff875333c9111dc9229c8497a6627d9fdb7b829bf1207a46a59fb7fe2b02b08f3e1a958c012e5577a65a6adf40fc97a44c9afc44636beb2e4772c870e523574aea8242e785f9c24fe059152b373981efd10ddd301b71ef41ee51a9d59dbe1f14170c197e668c969b5ffe17771f29a3c5bab6f3bd969a9f40a5e62bfc332631cd86a0aafd474fa58c2f1dccff5954a390800eecb1d44882bdf17b4e2a1466a392344061e86dbd9576a0c21bf13e23cc142897f9e407de5aee82461f7e10ed672e55e3f482a5f59d84547967fa9013acdb95deb56e4c81322e86d0b6356acefbc60b007ea5d71193ed20d4dec6ee1374f001e9fbd69efbf2f6c68bb3f59536e75cdf0b622aba5c2c2a92f0a49fe30c55860e520dfbc6a531a3b650553ba6d2d15020207e40f8aec8145e7f1da1595aa16e529827c0bdbee505ab3680830dc0d92ba7fb03681b8e3041e66537a0c36805339cfbcfc01af46634e90553c07698612128ac82d2b554c6351a189b1bfa8ef388030efa8c3ef045345956d0e60b44d804824b3aceef9b302ecbff5b8c00a50e9171967662ca249aadea98590d688adf08db47110e12eb4f728ba662287e9f5b65d3381f26e2effca9bbbfe0f04dcbe4a8bdbb3faaefb8c8da8c3ba86d3f324720fe9bd66e2d564c733b72f6526f2ed32a2800befbc42611ca5579720a85b509b57684f5ed4877c419795e8ee2979027d33884c3bfc7ae23c126acd9f0b993817f2913a3d7f045ce071f88273402a62cbc41b590c9bce03c5da71bf0b9be6e88799e39e4120506c120718db303e308ff80a89f6d0b4c3ec963385664693d0472a1462854960b22f798b6f0588955a08f3218c7b9d24ca5b7f7605ee0fa8b9ebfda6348edd03eb8db7e3f6c78fda08c57d0285a1b8f718415681bbe591841bb69fca6a9402a2a5868e9e9a284c072e9695d890a90c76092bbc7684e2fdd72295575c693183d4a2dfa972d6891c9e453b7004e020d02bb173638b87bc25f0917742c1436f8a8cbb03d46fc6f95f5ba0bd264c24fbe47313ce518bf396926ce93689cfb4145029ba1e1bd3d8e6502b77782038a766e95383b6882b093d1993f7fc6063ae3381eab4adc1de0042912864b2aa9af856be50ff445711a82247d412e6b4c472dd53c6014b42568fe7f9ec94a4650de10b1b4f917f79bf42d784834a9c752e8b11e5af789df2a1779d249fdbccf89bf301a60c6a419788b41d8508f22fb3a8eec6b1f1d7cbd74334e6bc18d472e7d3a154b2130ea2849354e4a37e30b257bed5c5842d34cb32119a9f2d0b216c4d1c1c3fa7b75f045d7f0b27682457c2f4fb778b630ac9787bb9405f56b7008de2ad3aabe40f2cbed20f76e0b54ce3d17766b4d0f98bc1c90de08217fe135b2ca5f6928cac88185a35cbd0d9782c8d17832964dce212506118f361e674e7a9b30018e2f4d5486cecf910a27fccfdee4dff2bf5970f932b5c4e436ce79ca7f39f97496a9ddefc596adf816af1e0af8e4ef6f762824175c5d4622230b887a99621ac3395323a12c41aeb7622b1f1c4746714ab8af42e26f58d48d65c41ba21e94184846943f14dda9183c6a91f0c1ff1ee9eaeea81dc55594a4cf4286e6af065e0664456e964aff7d6da6bf989be30dc453345615ec82f86c0a57858df1b75d964f07b7e382803714eb1a0f5a4849bf3e290543209b8be20d32607d8a0419f1ea160893d99230fc6104a2ed61a55d05eaf1d74f086d3b93f5bcace3a8994a138a80a2c862102a0659e351dd8c34867298e57a9e16eddd498956419ea248d6102536bcbbf9593d46f09c70d6ecd84fc9506a36cc54e39980a9e37470831915d47e5af29e0b132f2fb5dcfdf2ef569ef11403696d3fe65590bc7d258008b810e3464d14509c667db99fb87d5b5727a24ea8dcecde2e0f65018d91d648d9e88b40e9e837bc5221b3fd8c37d9c4c8ca98ea2e620e8548f27cbaf3041664d936edefc1e6e3d7802358a10d9c3b4635d8349f3958d95415b3d3c09a0229d67abcf4604eed93c1dc4d107d6b13f6935c7ec124ea080084c349373da28fe861acbf053a2da1e0cc81340fb295100d9d03ba3069c699321f61e0649173c5ba343c662729568ab0faa939cc57ae1d3353ab3efcd3a78f29689cc9c92f016c8c82d63df8a27868dde18c8f466ec1b053125e0f1914d117cf822904f6e06f4c81973a2a42d5a6218f5089b31e5a62d6646069f89ca3cfe9188a69b58177e81ff592ccf8e1986e39913e80469517895ee8e014caec57283359221b984f036a4208d1e022dc5ed471faa5efc194a9506a866a3708485d00fb272606777e1004f065af9d27526f9b3f32c21c88206339cb0a070608e16f8c7fca7d9ba8355330cd3c208c23fbe5ceae1ae53180c65e929a4d63ba0ec2f8ac45eedc69269000404a8a08b8cd80b010409d9f2145b602e3881308d2063bc48ec3395fcdb9060076a3f523b39a5e5caab7517296f65e29194e630f40a100336a932d724519ee005c601665c614788ed92a7f03329ffc92776552862151faecaecc1372396edfacb781367a98e81a92d3387c794acfeb33b367d4d5b178828323a5219a2c4b4c6ca62babea705e7413b985f8e0cda0481b56a77a1eece50f861e9f96a64948597d5e3c621ee9cfed43677344779d9e1a9e7c23a5166aaf70fd86f275392d884521aaed95d8b2e1cae97146024c1f3f7b283c298f92d914c8b037eaa7badb599fdf85de2c1bff9cc42bebbd2037fbfdd7f36b6a7b86b4ca78efe1bd4f9edcbb3fa8eada3a63049f1d210565d63130d13942adda9197b98b2471cb8b33fa6fa5e4ea3972011caf3804d0928e3e30a40700388ebf0c05122f8b986b9012f8c2fc23d0c0e86db6520a08b83c7dbad37273602220e0752188c3fcc7b2c516d3f87637adf124a14b4bd8ac55a01fa527f93a6c5101578cf0532fe05324868fd9536e5d5c5118ec5adcd65aa50a820ed826c819a8b9c260fa0e2b2e7689faa0592b7b91bbf2b40fb98b55ec6a2531edb6faa2e048503d77613b105433f01c8e069dfac71987730a6ff499305ce12c2408846904480285f0cca9414c80751a0ff51a28082f635f76ce19a89e273efcb034c28f12dde25a0512e0614184ac58e14e882701f810ce4eff5746f34758f7667557f6ca9939d8fc071ecce04e1f36c1d48aefddc557f830438b2c78dc2c479b24573f170e14fae8f3373db7f6c829c87bacbdcc3bd0485ec905e8ea622c810845bab411d592f068e2c059510abc8ae4103a2afb4f5c4a11ac6f8dc318e38f5b0996cc61f5a555075b859698b19906346b4cf50a5cf104b5a7b89b6659be92cc8a04d9088248cac336844930658a486467cce9f2b6dc226b88c42ab2a8994e230b8fd119018e5d453c8b527e0b2c42625ed46991b85eea5ea90aa833f73fc86cd2ce5c70d7307f2e653d8a61ab2d2ac85f63d22c814d412c2c7cdfd4079efff0a75edbed93d3b01b6264973dad09bbe02dce6ed3db2054f45ccddc6d5043d12e70aa10e7017fbc8958a385ebc2f5f43242517beb05cad60ed9f77e3a704c7d52176250c659afadf760946c693d77e82fd98c6262ade9c7f43629a6813d546e32d6f26fcd6c3255ac2d16353b501e2111072bb5d41056f9cbc40dd38ea603fd593c6e6ce2260e534beaee9e5b38871caba6113d3ba1c46bb20f195f069735f3bd40866e64f2b51f9a07082805244ea41f33c386977386e862b89036c813d8bc71ce78726fb9211822549805c267a023859546b48a030461c0c2784bc2cd50a576b00450e6c8c0a37b665b618c86dc07f2469700f1ba1e165b756c83a924e1398b92bb189a38706485a25d5f9caa710b8fae397d2efc28c4cf11b01dd1438a215509fa06d05a0aa256790e0cc526622e8cf0ede64123f1bc296ec6651b83444b8c5d11083753bc1fe2c8332b2f02e3fc79bf98333b66328e7679733a6e2189c007b994547f72a81f0f0c147ead939a2481e54ecc861841c073a111eac31380deda8a87a6f5c270077d03b2e04bf1ef5d862a09cdc1e39a832b608ab19694340239414e6f16c3b1515a698bcb4825809247b32ee4552540f445b1bb2526ac289e9a39f86c8cc2135b112665c15303ed12456452362abfda29d0b9ca5187d157ec876ad84c5b196f734fa7dbe1357c7a03f8022e68565d1a371ad3cbc361c1954f269e7ee5b412a027e10f31afd548d6fe83c17dc9150243d1c56e6d94bf5d257568a0353055488a2f4b1f794ebcb82cb8ee973bd428ad4934d18d02fb7407fbda9fed3a453bd52cc5b293225c88e5a3748a4a7c21fb51ba2741723c8343914b0652533040353851c8b897b654d51e622f2c6d7b1341187989be05d8069ffba5e61adeb73275248cb07c5eec40fe33516ee9534cead05857e119bc192aa88736c34e8cc6d18837476e0ca228d2f924dadc64bd2449bb080ae705b74ab60f4331c12680a113c69c46da2990d6b1c5c92daba8e40246bdcd3f2a4fd56d8151ce9a473ba345249f1cd645a3c91394883ae49c5e558e0749784a08d6347aaecbe6bd1919d644a67a34bdab68d0398f45aa7067952f01a078604c2d5592caa405910ae886ae1baa263715705caa2d802cac265c1591a74982bb816d555d8889ef4b855caa20397e4ac357ac986c4bbcaf134486ce23a5e48c9db4f2b6c4023216f128b38da624de34a3abb578b6f2bb82c7454a02c8a16d02cde57bc8e45871e29546b3ab050304ed8b52575a48ad601410238f12618671749a4ce9913598c57e1b7606c1653569220a471e89380c215c645bab9c016ff166c0b2515a90ae215d1577c51c16db153815a41ac02dae25f2c3ce59052d04165269d9dbc56d870279d6a5e2ddc5654a7a40e835ca3a2b965f674ddb8c28c9551523f2d51151c3948f16c50d1a4f81af38a1d167a0bb40581c547594475914cb4736df10c6e524ccec66bd2642b898533a092106da2e2429738987488052295b4725db3b0bd0e69dd6a4a3cad301636d093e4d138a44800cf758c01a1ca8e3977e86090f4e4d2704d5a64e3e8e9b0dd71a4ea3e68c5667fd2bd164c85fd4b9c691fc200068700a594ee19f2d46b3d3b795c005ebb9ef569380b7253ec2fd7d3c63af5bd103e0d1146eb58b02d4cc9e219e9a48e2d5581ab308b0a8e19d2c6955890b5f05dd1b65058816e41bc629485db82d3027716b9a3911eb5348b9cc55bc2b0c37b4c4ed4c2c72c00f9936e1bd0748bce5174fa38ce525e464bc3b0485b51448b1b50244407520ba8d124456c1ca5482a57ab826ec5472ddd4038945a741d959489c6219da472691645afa452d7cd9b28688e9b94fe8a10c340b5dc242bc3b6b6f815118af12c070f2f432be6c5d475ccf64e767036a394ddabd0d41f40aaa7ae5322d7bcb09366fc4a9606033242581d5015efb3e8682755dcbe53618345a2bc715b44db22aa8214dad959e092851a69a477360e7412bc6b5a74b74547efa05e12956bb82519d2906d3779814a7f72d3f8ff843a73e63a8c9040ed68af45eab54c85a55670109154c5a5414bca6fd925d0a6bbc2141650d393c0d138d024f82e938a8e85ce02532d3a8848a0ee96a721f55aac8a74e47fa7c9d0d563c510aa393971c58d85b73327a8ce3f809242db38ca938eef3ab2a490da9e05a505aaa28a3583108af2a8e89523ce4d498364dedaf528d732085900ea6c089a82e2d0d427d529a2e170172c41a4854e0c1c387974a414368e05fb0a6500f42f1501e4b5027ac9555c5e30903a4e07aaf1fcc3705ba0e818d575f45c51158c3f1ad48660891f5585242ca1049d73c432f040345df3aca1dc6ccff30b5da40a186e6518664db9c262638189a008baf95498b8c363247d1f9e7fb440a64d5adb7bef2da594522629036705c205e70514535cebacfa335951d226ba5821f97f4600b1e57f3fe8d9c48beaccc5e9c5c589e70ae6e29cc2c5fc9f0fda5539e8d18b647325732c7c36b51fe74aac39b928deaf037a5a19fbade857849e9bc64a90bb0c34a94ca0e9428918bfc6388cc1f57ef431585f03edbe1d0d673e273abf78320163fcf7fabdf3eec03f87d417e7e7dc3fe5d873944173c53d855d9156b694a68993c8f693a2ef636badb5d667eea45cfa9980bb7edd24c6b87beedebd97524a31eeb6a71ba7b9cfec71aee8bcf89e46b3baf24784c6a7faa5404fce247a5feb4cd7bde7795aebf7915b8732302f447f7e9d1fe6b737b23138762391ad3d09069498048e5e7a1a0934b2b551f7181c2bb7cd74f22b95f1d9caa0323e212d7fccf7067777796f588dec4a3d69abadd6da6add9168bda59097d6b66e8d784adaccafc20a958f08dd7d42faa9fd9c2dff7492e1df18f30dd65a6bdd3b77d72fad06a5dfe8c2314bef66e75dd779672d12bdbdddeefd1dc7183fe9333857d72e1165872842b21db614cac2da358b6a73d74a8b5f86dad32eba3079b28763f6e9443012bda3a9154e3a8d2f74d00f41314fe22aac633e57e24a3c892b7155905863ea8af40e3925d1f739d9635c89832619a3817595d4ae502ae70cb528aa947b4a1806a5fc32bfcfc589f2428fb3e53e533e5354b545ae20b1c84f093dfefc16249d72b24044eacc9fa94741dacc9726ff82d0e37c4d31539c9c52cec8190bea525d929899fadc755d0d5d0d5d9226ab6f872f7a4e978b0544ebd3332567aaaba14b123313a46426d3a206fb27468d9deeb1512f89ab2c06a50567cd7481a1c71923da53f2cc9f443467a23dedcf20397a92184fe238526ed1639605eed4cae0fba6db0fc8a995816e420b2a2f7b1ae2e7be8fef5bb97be9f63b140064bb1cf7dc76ef6673b6a7db76a9a63893a7d6add6b7368c71d19eaa0954ca2638fcd2f4aa628a0dcce1f5f8fb3806c7edf1bbdf078242037ce4de9ebbee6197bf036df5edddebc960e722c7dd9ccd43fb35d11af7bd694eeede39675cb44fadfd0dd4660ec731ea7b3dac727a4c870fec508096b3b68206a670056685c8a31224c5d501d1da618593a8644071445a5821852013e0418f922836fa1ddf36e994bee61addac66434a6dad754e3be74475444156b11d3ddb7bbfe3f4b5eeb9a9656df4b3cb23ea4da6d605a133f7e40f32475cd835f15506476f32e9d4418f32363f488e693da4677e929c31de2bb8e89f4210173d5677e08c7048a4d0431a0659c5629dcbc881b32f4d332da2ec09c596425bae6cce3f56a5dc54c00e17a500b9e81f65b6f40eac265305f3f46548b9d0425e8185090441a10123fdab801d2b7c7b27013be8f124d3238cd9f1396bf598aa67034d70d1fb1f7d49681a4a17367d28324022beeb9519f528a59eb5d6ce5187d24592f4ce451bd24a7d546bc3ef89b6bf43714ea7213df67beae8d5306b9af57ab839e7acf5498f896c8bdade9cd45aeda98422e3ab169e1c077e1961029cc67fc7039452aa6b385afad40710ae823ceea628481930fc0df193dfc777feeadb02737f4f349616636cff4381b652c378b396dbbacd480ff72412e97de4268532fa85901e3f29c4af5f7b23db0347a0064920e7ddc833b2bd6efb0ceed06abd2dac334c74c638e39335429ba09c538bd1f25f0d9c9aa64d0dcf39b9accda96170fe9559bb534e39e76b52863dec9e12fc74d044f628dfe2dff12ba5fca868134c5e03c4456bed6b3ba4ee2f89d67688accdd1c2aa7d0e47f9da76380eed66ed6dd634edaa6cb0052584454c4807573647faa668e9f3f5658c5379a59457e2b8f77e1766307f25f077f0be068e39dfdbe3ef17c4610f8bb59de1fbbeeffbc007a4d7df79d64e7fad2b70de7d2c3de6af9b79a72b8cc14917d232db52484b4a48364515211d00d1755dd78d01574e229c4e88414e0839fb891d10827838b1638668012f20322f07c0a001356011784190524c852652f8643f5658a031bb800b5af8e00526501ea090b42015935a42a49aa1ca61682563e583100b8615040b5aba45441517c93565054023a0255410e405b56009a28ec889a017f7924209d8069b54a460c6b4199b5a5020cb322ed2c6a9ccf06c7a91c42cba2f2081b228245376aa2e9136aea2aa13481dcf61e5ab23a48efbc092366e02a9e341481b7f6f958ee8d1631ec3e238e6cb209f491dfa2e25db3ab7cae51a3aa252a284e4caaeef2929bbbea780d8f56daa8aed263837e7c37f0eb15fe407efee394be407ef2c6de653cf87fd22201d33a7398f2ae78751dcf9a517347de942ec9766d0f5a58ef6f52b77c1ed35f087b485e394f907fe2b6fcd758a4104b4e7dfd611d40e61cb211a627b2432adf65c9e777ecf9c534a9beeb3945976520347edebcb36fdaf9b3ea4bf8fc1edf3e51e8f9e34ceafafe9984fb7d148dd33b473e61fefe3af3d130b9923b51e8ff91e8ff9f7d297ef0362cfc7fdfbd3d34164d6fc90f61ccdac02d9be6f534531c088b6dc32062019561ca9c6718c35dd739ee6fe72a0f7246b3d2f94a06977e068b9cb5d3cb722339bc8b7bd2752b7febc992c6dbccfe0e83950c38c3e8fc6b937cf070e37cfc7fd30879d8b1ad4361b437e58b84ffa22755ffb5de7f9b8f649f6da273d673ff7586bb911e83d97b7e740f916f47e049ab6573d1fdccc725b1bf5b724381864a41ffde5ec99359dfc6985f87ccec11a0af131dfc31a17a76f01dbe196433048d953c6be943a3f73b6abf69c36b76927d6ee363f87a63d6b1c870da5cd38670d8d61080620b6ce96432fc8f6100daf0db3e5100d4ad4d4489d21f3a5b4b97fc3d1c81ef15fc7e3f51212e7a469d7481bf9ee4ef84f191ef5f1fbd43bb70c6578cc97ef3343aabdacde0fff1916993fec95f58642a86bd339706f5737ce9bbed5e971325ed775db7b1dd7e3fee653730547fffb42d7cf2fc0367eae6edc77739b3e6b07621d32dd17a923f773cb39bff6337d706191b9e5e3afde8ffa392c32b7fdebd15087fc3bbd1e267965dddca453f8537feadadc94d4c38df03aa9e353ead3fa5408b53fa4edf5a9113be7101cbd2f9b6cfa5586edaf79d9f4eb18583852fe893d1f999fb9b52f52b797ff43da32e4fe7a3fece3fb321cef0fe1a1b705fcb5c7da3bbe4f6486323da810ed7d037b8212ac5e7551fbecfd90b605a40dfd41c3d76a911ccaf4a0fe44e6be6128a43e91b96da8e367ee1ad624385a1f57a99fc7b8b2f35f2e7739eb931c4fe2699e7ed8d83334a1466989fe39fd8830d0094ddb94bea43f9eb06927b5c4316798dc2cf1571eda8f9aadeef1f0b0c8dc56f2b091dfc1cae3e270f4b76f85d83b85938ee36796527a1ceb1845e6a661868025a20a21c6119bb4a59018419f97efdbe2fbb870994270f1712124464a288c27df0e3610649d63d081182b31585f978f0b0fb6140a8386305056c8b468b142460118ae78428754173bc8a2e5cbd0972a52c8c000e20ba04f8bf785872f23c833bed4801fd72342a8a098e0200c20172ce1c9b231bec4b04597052686186079d3e3c74cd80086143050f059f19f4c7cd31724f6684ba12f51f6f8276f86f1f32cdb5f23f10018dc3023c110155a2891833dea4fd6c229cbe9f47d39f8bed309cbf76171bf57884ff09b81761c68f9313dbf4a9dfcf53da983bffe6cc03787e7be8f802d83effb6750065f3906fd167c37a094625aadb8b6cefd552c5eb836fd984fc88bd60cbe1908717145888b594be88bd527c5f7c172fe3e2c9f0dbaf0d20592ef06780915558238a2871e42f0421545321429f9a2b0c1a763bc84b1b91401c5e904c50785fcfb3eff3e8d7ddf7190b5481ab947128e0e2f339034178c81a6b1e5e6a1c29ed4ebb1ee9f471a7b3ef1bdbc28e1787f50bc00b9b47dc7613fc6d60a24458943879724a428f7484f2b2f5bfe7415499d59e425b5a51097d4964b6c29b445158a82d44141dad0b0d66a2da594565a2ba594525613a9339bd418489139953aa5019f8d511affac3d0847fd7dffa28c701461c2f1b46114e79e4e22291cc51f85e37f77e5b0ed4f55dde7acf5f7fd773f8a5d38deec1b20e6a144abccd2adcfb5e753221ab4e70df0f25454ada88aaaa88aaa28ef6e8096a702590b64812c9005b240967637c0ca53671447d25b67b7ce6e9ddd3abbb37d03a43cb685b16d61dbc2b6856d0bdbd6f6bf013a8f8d511cf9a79328fe7f9fd634dbd8be014e9ebba2396b9aa6dd55d646f4416d73609e73ce393a6ccf1ba0e4b9af02f8004cc049d3d8a9366d1265cb211c5401d8720807d6ae48244e56d594d4c9af04101011ae205a3ee42d3d1f6de710c354f4e64614ffbf4feb05481eed779c1295acd0f335b096b4e89183a960947ece5a7fdfbf28be460e16945514479b6356652936fdaa432bc9f498fdf31ea16861a7b231ceb9e85297b9e936e25387357de0a473f4390a7ad345f17432f9cc0564f9ae634a9b0ac4c7fee8a86f5fc7d4c14da7b24a3be313b375843ac2b9a5a723d32b45943dd6ed9fb71c7202c4d65a6839e4a4c990131b869ca0e4735ee79c2a4889e594b3b3034803ac5c9982aa627497ab9c73bae7607fa79c9d1d40aa58b9028bd15daeb5aa5083583b8114886450ce2904af3dfe04540892822c676787a9c68497434eae382b46775983e18bd1816ce68bd95ef8b098ae990f8441cd6451146446827a8cd9e6388e46dacc9f13ecbc1e1a9ac4212757f6284d342f0e39e9020e39f1b267329c70a51bf8a5f75e0bc3922a516e98816008fa0595255c97cbcd224b141b6a0a05268e6c996245104374c0beb0c40574cb168cf1162f6616594ef64d2fbee9bf0827a1c4bee006463c51450e1c58f15c141318e696279b17b1c5b460f89327b4e8c537fd17bdf8a62faa5c609bc5945bf4a74c4575308a90b2831f82f07bef1d63df25281022638c8bfec489c0de28f74f398b04a214dd50a425e88a23c4f080eb4fc768fd04a67561e21a226fd9b2e54f5c09ee9d426f78e2058b11615cd18104612c99c112991fd9a28b275f4a108417487af812832ef97259827242632e745eb75f5059822a61d222012e2a2a426d614d07a30829b37e616d1653bc092784141e98f560e5082dbc607204a571efbd5196e4800913f6de7bbb38618284dfc0640ccf62df3ba516bdf8a6ffa217dff4201342a45058a4604951f4a7bb837df2ff271c84e70c4b8068585244146e79d09f8ed11a63dc4507265dea4805032de6122634982c116ab0c5941dc2088aa24aede2862e95628cb95055510d61243898a10919623650f9e10375073f04e1410caa25a2e49a3a00143fe0b0644a952642e0454503d50d9c861c2421e2210a2c25d8a2082866dc1633862e4cac0cf75e2e2a2784c0a1ce9860318466830996e06284163cc8d07a428b253428d19f8ed1dae22318639dc5902a0b174dbee9f5a792bc308b0289193ce085091e5cb76c8c9f1ca981c5d0922e6a5ce1a51bf4988de439dde77b8bab44c2a04d7fba58f4f36bd3223f78cf481bd77abc1e1d534aa2c7dffb1dc737b3dd460c37efe3396a0a8ef9b3e723ff5322b57a3ee6b665dd1e3f0e7d783ee67b3d59896acb2cef63b0ba282d38f3633efd3a9f7e8ce3908f393064036bcba124558692acb6e6dceba9f5c7853dd21f1af0af3ddcfb9b4c467a5d81694d6ebf793de6dbedef76ef773a7cbbd783669cf3dbfc74cb2a5b124d2b5b56cb651e3b5e65f2ef9ebce9e7fc37ff3d421fa78a36fe8c3fd3b7f62f8c0c18183d23c6d3318336ce38302804c6eb3173d63994d93ebfd4e11b3fe77b876250779fe99463070a4156684106d50e521c8707ee751c80755afea0938e43c8edf4bb90ac793de65092d4a68ff16f3cb2ee6c48bd4e49ed2868f445d09e1fabe1b5e78ff2ef7bfeadfdd6c2d11f3fb5457ef0d6fc8678037bca9fef43046db9259257e6b8fc17ecf4a4a0e536fa55c3744875913e0d47fa9c05291d9f3ac1491307ab7999886682ecffe0e7a80371ee92e2404e85d28ed2dab9d793dda5fdf5f2fbd0b73de8572017a9b8a899aa6ffa452a301a915b56d0b4adcbc77e0d9d8a8b210f1bdb86ee72d15f0387d83d4b478a288ec73c668281e9117449065ff881513cf83450882f96102c168bc5629dd0e974252c9ecfc8ebb8edaea44e7dff9b83c4d16484230c4ca9a4c315295cd551186e214ed190de1087b11c86d65a6badbdf7de7b2fc618638c73ce39e7ac699aa6691a354057aa428f9468ccd9da0c70cbd2079ac4a1f1f26984d70949e3ff81963d802985e37dc12e2c87233db27d86f755e3881e71ea050404040404048442a150281425e2743a14509db56c6c55aa42e314a594e2144ee17d5ff7755ff7755ff7b5b2d65a6b6decc66cacce72d6fafbfe45b1026ddbb66ddb46abdd712de7486d54a38a9e41306e697004e75fa242d7b7b2c445d31f50eeef5007e7a620941bce908364916bca580e1bc16340e6e14c3e7d345ec0c6b5958e460c0080dbb45c4763064880d1a4916747a30be21d8d1aa0791142006146a6061e8d1b08008d4802006c984608332780f95e6b2875e11907a2e726aeb179447398a58dac4485a64024a52971d142a06cd9b4fd04650b25a571246272c47c0c8fd502349e19374669265859f626b9ae4d698ce73377924d6352d2c60abdc5806c302c34e94571744a06cc36f25e52076fba758ac27410c5993103943c1394a3185d8d6294358ad1d628465da318d02816348a05ed31933c465ab98cb4f21969e545a4154591563445a22ad2ab95c317e9f59b86a3b843d22b456966a82d1cbf942ad4a9934ca414af280d2aa7b4ea5b3d4b6cc162fe5424ce5ea683601b4c3c891b4c07cdf41c47b14c55b0d5a67385614e7aa536a53a65654516af68d1a88336fd98d24c6fb071836dfa31797e0563b4cbb8b2cd362d59a147ccc2ac92167abe56d2811ef1985914a77e38e2960c31ab94859ebfcda6ab3a6cb666791669d4977ad54926c61ef6bd6293283683805039a555df6ad53a1589b3977d310dcb2f1e9b79a40531abe5020aba3c2cb85029d5caf2cc9605ab2c0a42a5542b566be53cfea2fecaa31a42b1394f18e0c7acf3a33ee1c72f07e74711c73b4cea6c377ecc267ce2e99d2565d6df8b01f829933a9de9c71bf137feb49421fc7823cafff40872baa48ef7f35b903aa3ff7ebc91255943cac8190982a4f1e38df85b6ba97f47ea9072fcfc2c7564a8620ca073420e0e8e70bcb96142010850c2cdcd006c6a047043239200001b372384e08b7003c28c4c8dd2cdcd071ed0193031e08ca72a1818158c0a4605a38251c1e400310f0c38d2257b3e25aa95a81255a24a54eb8ced61c0fa39a495565a69a59d01720f03dacf71efbdf7de1f6f6680ddc380f773488c31c6f8c79b19a0f73020fe1c596699659659e6fce3cd0c7094c3ff6a3fde484d6a52939ad466689f436badb5d63fde80da9e01ca0861404d0a726db025bc20428b0f52e4d0f19b2cb312b61c6a42c539705e41dddedc88e23ff73b5e370e0b2e6ff6be4a57481d191e93c85da6477dfb3694db3d1dda9edad3ae4671d1c7566ba94fbb8d6a5853db97aed0fe43ea0662d3cfa06bac2125ea61e5de714e8612499bb9f3094a56684c29a594524a29a594524a29959d5c62eb59df4aa75628a2fcd2b02ff6323125e6fce913698aa6eecb9cb5febe7fe92fe7c1ff82c564b3a28a52ad562c56abe572016d2929516ccba222d49654c56ab55c5b4a29a5c364338992524af9524a29a5e4c9896599f6d947670e4d8d399887058a435bd9a581bea0279abd66bbcad9e599ad299b15a1522dbab2344671e803e5199bb1f9b1d8ae3cbea238a89cd2aa6ff52cb185a9bf5274769289b1877dfed2f9d3ff897f12f3c88650300ff512ee6b9ba077fd762da18abb4a9a6d7ed4353f7e021037cd152f091700d7c635dd116ef863067fd4ffe327c28f1fc278da78e6c72cf3a3def92b8d220d184d8636438bd13cd03ed058e3696fdb7f7bdb6094c66fd0ac6998aff4205542e6acf54780b0847ccafb26dc154569fcf300c2316b9b70d45f4d387e2f80707c3100e128d284e369b790c570cc9a8470d4dff76f0a477184703ced3a0b5da0eb5dd515820b0419c5b12d4ae39f67c2316b9970d45f8d70fcbe148e1f9b6ba8c44dd9243954340380024316000028140a864322a1481a864922ab3d14000e748e4c68603c9147c31c46511cc410431400840000000000106294527236090435610d19301fc342bc15e6da64a1db8dcab3c79abb271ce55a70e73565f249e46a31711d53212c539f81a7141d9e7bcbb54d8ba39ed43d09da0cfd0f6a021238721a9aadb719433849a318b01f27507a3f09e4a1040165f39396091444d321636b40791745283074cf44b5fb03f30ce6d1a1a6b9a3a204a671a1609740498c7b795074e9e9a86ce37b8b9dbfcfbc9ec6f2874b4f9d145dddcc0fdb28212b10fcbe9941522c03ac8c2a4b39a50d7d088673bb7c8a0c564e46efc236b5a7920a9d5a1869a8edd44f7db2a8f624d2505b624785af5de529645923c16fa9ee74513745046db26d17ee6ef941e35667ea609795b3ae67882cb373f44f2887e236c867e89121c12b0d6abccccb8166913e239b793ce1b934f5db30c2b884d105f177c1016eaee8bfcd27da05e0932a0b337b5af8360bb2247a9adedf5342b46c407537e3a877751f220c757d38e119a637b882b4923503d2c55bc48f99379f35843f39498e77a61261bc10efb08662561bb0880300a90d4dfc98def195458aec613ab2491781b0e983556080ef3cda6c254b68680c20a146d087291facf3d8641bd9cb5bfd4f01af16f5d3124e35d8a67a42c23ee05b06433cc7d1c426ae0c98e726e8648d77acaeaca4786e41035c14067a5bd74919080705f698ddd98ac5da7a3fc7306902802f9ee0748f59f3809d02a81a0cdb99a03d10a7316bb638ff351f1c4a97fc3c753b7e25adac0a4ba5fc0cb7f37e93116d8c249386d252cde7fcebb3f71568b190970e9461a3188872add2702f537c43133f6f04270cdf4dfc5847bc18fcd9d34fb894095b768ff8d6831f65ed4d8cf31eac58a4a500acdf42e17ddafe94753d27a416ea278681c354fe118bb79dede81a8284ba7e50099e6b9ac617821550f6372dbbf70d271cf95afab170f4abee2ea5685e0ec326ec3bbe9fc67744f783d61a8fe169cc19c62bcf5b8214af56fb1d8fcf061da555b1c97b075bf1192b4260749b8e2767c1c97db7fcca97fc4b4affd26367016a89e7db069f7ce9c1e8fddf44da4ffd34229d3beb099e611a70f0464e3764bc91476fe6592f7afa7a3f1ac8d6d53e7ba2ffbdde990cc22f30c8506ff4954aa02860f6013683e8b94c1f6ef45e753998affbabaacfef7102be7f9d1464996c3786579778cacd544824626a9c3dee168e53961d5c42d58a57bb0468b905035ec21eba545fb6e01b8530611bb9ecddf955704e8e044ee7e86d660e1f4c6d03da124c39f985ff00055bf37e58191ffe011ce4a5815063e320152e42f6935df76054aafa4503dba412288402eec9b01149b9b15f86ba7c2826c903ec09b52125343f539a3f92af97c243df631fb85972ea65a104eadc2dba91f68d3cd5b669a0c252c04a9565b984f428c2106fd81b659262efa176f355be02764e37f8f4db31e25b7ecfd674c49598f0dc033522aa20653a16a8dbc69227a3d677b386fb808530657cf92aa65f762d3f1a35300fe955b328fffd9545b3c956a6730f9ab8fa26e51f48d8a5fbbe0fd2a3baf7d048d66889932bf8c441204619682b3a0121d5e6e6b3b11d64642cbecefbd92f953459bc6833c963a96b39309ff88b54ca13932a20ab62f17a128dfcd39d5c7f25b19bff945576f8ec83afe651ba45aebc50bc12cfa02a85313cb70624120d32a46e13eb85afecaf27abc86f348c530da1cd88ede618cc186873e1139f5d694bd1540b3e463bc117bd157cecc90c8136c1c70d29f31b4f093e46208e56f54c7d02ed9b6e3dffab4a799d29e23a363e0b4aebcd4af62c42ccf60672e759e5d8d63fa0ea4aaea272e2b35a5abf9be78e2b103ea39fcf3a35b9c78492b53be65191ff84a2b6e1b8db9211c12073fdcc486480342030b90e2d7ed5fb559d497970d087d919b730ab3793ead91efe0128a6c09ae46d90e3e9cf6229f0970f0b1bc37f5de1860050b4e9cdd499c424ce6fd1f724183c35754155ef940fb4f48033930048bd91684c74a9719c35435ac6792ff04d50436c7705243019dac82b5ff6f95f548548ad5adf83b09e0c650d5dd981f1e0a382ebe1ae80ad3294ad16bc35e2186009d777e7831f0df99303e23ab8fb20eb34bdcc3e19ce53419de3ac70f7e142f77f437fe39c2dc4d3c81f2d97481f209b2801806e40e228eaad1ddf16af5b67c7087a09762a9669de75364146f756d792424f1fd9ac5cf78c8af0f94d16980bf26500b2d94537f61a68921301ce03b1601e4607804d842e1acc3fdb917d02de76ff0bca12df0d3073e3a8917a31a02938aecc484c0eedb978e0774f552c9675ff265a728fe5cf6f3dd6dd3754aa30fb17baa20dc08bd4dfd9cdec1725524b435844cc65c10b5ce76122468ad2206b0e6ea2b0742c830a741cfb3247d80cecb8fdde717c94c716ba0cebd5e187b5803c8875fce63db01cc9c78d937ad3bd0a620e5fbc9392c5467ee3a1a7de982059da1396a11aaddfb7adccc1032d9289f5db9e1bc1fe09e77c88dbdcd67390cf0c667251eebdb8e5f40ee2f90a977bc622616eceaf344ae4fc42aa5e34499b2b02d5d4fc5d5468b7f388eb451837586a213ff89c35077e35ce2958eb9d22b3802af9b93c590395da984a902b02ff7375f7fac4f0b469e72d241edfc2c58e594d53b3cd432c8b587621319eba9a1defa1bed338cb33bed12711de416d58d20198600d5d47429dbcaa91706b1669ba4551416e6daca2365628c4a308f6f804c9f47482a49a4de82320136a5f5c423a83434f20b9a244063f46a5e1d643c20eb0f451359e37133bc404c65548c0fa7d9c53a5b661c20162e2181a3e15c953ab9a53d1ee806f764160032004f455cb9892a5954a665b86e71dca165844fb5bd15a0e944604aaf40124a24a912655daf259526e554ac90f3ee5394807d3889ac6696aa6735f2e65e1fe660d6b85b40fe48451c63d1d20b974c8b69e0c8fa7a9c03cf951c14b5b2b53ff28a4528cdddd36660388845c2ac8f79c7774cb00169603790156089f82d811cd4ee6242b74d0910ffbc17d878038f261ab8614d0308887f1e97829ac507f4e75fa445334db036d0771a083da4c53916392bd5fbb7edd6b6c5505230ac5177aafb9f2dad9d82b35a509c537f95eb9feda4b2dabab65098d2ff95e77edda23582b8b84128a6ff25e77ed15a7d9a92bad843aa1eb1aa4de19b4ee15a59c86288ce0736a825f693ee54a9da95ea627b958b3d39c34848b78133e09ec8a766ca7513ded2b1735378da212c297dafbc1a85083a155555627a96f98f2d156c4db2959ca8c3fa3ff62c24a2b148a36e936d5f3387554edf47f8292f8d84b62b0c5eab1b10af0007a619a7e5da6ecac140eba6355ea372d24000c56f46f9699601130bb4d3cf265cacaacaa1945ecc9275c96813d6636426f0be4631487c3b41ffb37b9ef525d5303267b194c4f09e238bd370eec1a1020096d9917b0027697e6973d8a5e738d979c3230367117dfc8eb39f51033909da55fd849af4beea4a0bb797960fb0cfd57895fc59d8278b964bf3189ba66a8f4437657d2cb5df43b47f0e60cd84825cd3096977d6d3981b7d171f834632d210da5315ec31e05c20ccc83dfc4319e908adafaf830484507ba4269cac48a37e1986a4c095280b4145f97d9d12955a85b04d2efcfc8fe313e50596f49eca3ef92529fa61259f0c38b6216a0f79a3bef2e85d9c9ffc97a1a07ed65544bebf741f3e2054e0582d881e80e38604e3d94f3dcf3b0b1389ed02ec240a3b55c32052dde23a34905d30d59f1ba213dd71125aabc08ef0d30e2424fe61090028dc092202000bb72953f786948ae03d613c417e4ce46f028de695650599528396618a15804ac4c19ff988b3bb4da728230d9f1aae12c265d00105f0011e5976cc2ee4f39def05f1b8fbb750c3ae0a061735bd49f4a166a2b58cb2f110edd596689e0b3cda68dc9d5648e0a0caee7e5c8ae1ae6ac40ead23913d36d0cad93d4162e666acbc6c76ac9dbd7972c5a4a22dd2fb8fb106edcc1a091f8fadb812d0fdfd7490a7b9e2a2a34d17a215dc0cd08701624ed1c58f0937227dc7545974a276cbc3d64207587de36e417fefdd35b25a4b379a3b0a20bf14ce2369c358022b4e67da86cfad840510629d652c41bdbd1bf43e0c130e34a464489626d5bb741070c5a43f863a3536e3265cd1244e5717cbdb46b8b5e333d4e9b784a35a2063ad91d64ababca2402e9d6a5cd506808574047bbbd9cdad3bd8d8374abb73b35602519ad4a8c6b79c3f3026b8be9478e28ddae7be14b07d7bcd1dbc271ad13eb454b899a7615b3cbdde9cc54f57081a852a64b65a8841a8d6dc9a040ad694e67cded2835e443054a0fb09d1012fc6340a2ca309513189a4f04cb97b8f5d955810273e903e5c990202ccb40a1abdec25d148e9ebb15e09efcaeb3da701f010bd0c2a6bb32a9d1c2095d31c0b4f0a84c8c30b570daef4fb0b663ff2e0bbab5e1200fcdeb8622737f81bb6beadbbf3fde6a550c10e86dabda76fbde53343b221f630e5242e92abab5b9301e99dd13a010d787374d5c83aad0bb194dfce3db7ffa41fce513832a77b120868b8affaab34098e0634782371ce0ec6f6376bddb066bf906b0b0945002e27c4228b5caa867be3619cffd30544db750d5e89bd2704bf3f22554b5d7465c1133d36d7ee0d256a9d8722a21870c55cc26d3e08308cf39a601db50d12b18c9768d3ab8e3e84e180cbd81d5b0d1ac6b0bd549c42cf931550bb05dc2711746c1e3564839a5c65f2eb6c0b285acc8989a178b9771f42ab25aef37186a1439378fc82aff480ebda7ab7235c93f081e18884222a6fdf567567006a444b98757ba503b3174c33f2dbcc530d2500766e83c5a0a3e2d6d06bda38af7107e3988bcc5f22f0d34f721829985c262b179768a54ac9c94906186820993b44689ebd2e569c0948b350022fa764b9030e28ebf19c738d44a340348d34c3a03f29bfb177548fa12ddbe449446987687a86c9e4d28ca451fee0ac2d6315cf0097d0858a5201f93dd631c7214fbb924f36efbfed0b1d2df86fb1f30dc7477b0f7984964b301a47e9625f3848f3123dc9a9b058d0d96fd8722c484b1400ecc85b090408ef4196bed95f6052f104822988be8ca28dfbb190010b0296bedc4f5078f2f7a02f2ab1570866f063b2163cfec97e2aab9ba9eeea9f99a29ee6c4d7795c910633a672072a93ac1740a43ba7d18c06d75ee4754e64cd45027588be5c9706738598a6587828b83b06e9c206d1e465e26baa25f8f8459bc416bed1146ecc7244add72af2976917b16ffcae9ff98b71098ffc7c482cc9c32e4f9642f528a3d2f9647dbbffffbf1638d72821eee13db31a00d8a7acb35bd35c69f4cc1502780f0b1f7ecbbdc0639cb28756026d22b554d75808c8796c00e90a1857ea18822cc28a1ae84f74cb3a5010a0f7718f6931039d65cea27a9ecac1bc9c7c1aab993cf4c490ea4b675bdc749ab0c218df589ab6c1b7d535aa64429f5c3f0924c0e302e4d18b75b9b1ae30366c2efb09d40070b463346c838d64c61f340a6dbabe9929df0b0a92def4f5d17691fa86b285eb67d5630466b573bf831e7e55d33829328ade990c72bce8f0645d4b2e95e7cc780882672beab16cd555e23921c385937261e138cb3093a669693814c591922fecca2f440279da8c3f83a282146aaaaa0dc996546ae36e57554c0d3c672dda9a873f4b60be038d001b2ed950d14bf9d433fb711bfe05a3a6bd7e68bdd5b7a5c1c535a41b15f1c1b651aaf5abb29a0b49816373aa9e12623a502c05660e196fdb9ec5b30aec066ecdb22518bd4fe08a348f1eabe064685996070e35a77b27c0800aa2f5a7ea6adf214db95012af227bb02b30b62e7ceed34e740b9440220762e94334ffcf0452a2877db249e970932b38cbb7bfa111b743b6a032ed7914259a479b8b539492fae34151820f07f94b1d60d80b86954653e604e25348a3e7cc04cdb665431d3e2782de2c73ac988338cc2e8a1cb83192da1262b54bb0108ad59525f7d0bf04337e7aa46b7ba72d7fddf36e46ecae8f36d80a1e9521b218ab52b0c572a3a6a8153de1b08b3eebc18f6eaa62a20de97759dd42ca30e4879b25ed4db65fc06d7307319cbbea1838b70da69e3b87f123488bd7290c1735a12afc724394366cc45ccd06063ebe768f6652bdfe233b94238ebb801d820a72aadaf2b00700ba48af4a04e2152e9cc414bf572d8b4637c93321220288080691d91a8df1af1f184240b4d4c6367d7313d0ab2bc53c2eb41dd2adf81ecee9e737779f2051eb029c4c5c2387fa402e698f7cd264547ed5004585f2e9a899363d49f314b2da9b765d676e9dac5b28f89769be54348c74b601740432331b582850395c6fc6f96f77055302b026eba5110d8ef01f296dc61bfa4f60910df23f6d5622aceb8241f5e480ab072692ee003fc5dafb4dca46440b621bf2889c86669ce677779e665b06e03578bc4afacf3c745bb9ab884a8beba9bb4d5f1c113484df140602ced06beeff2f132f643b5bb0d478005297c2185a267f4cfcda92448cea1ff1e3a238b6202e7ee01109425fdccbdd16cc8d8b35afcc240eb725654832ccf5a3a1804a4aa520cfb8f339b5b94a9507dae7be1879509768f05464401cc029d983193fccaf638001113dae3bf77143044f558f7ea86eb0a3ef29631fb00030ce8c9c3c0d6cdc2b0baf8f7a896e6996339951526fd391c9640688c53183b2418e745cca98c05630ca92fe0bd70abd09f4df3383f533bf50567bd8375f064a532d14bf73a9ac78c3168ba814131d574976845a86c13cc696a8004692c087ecf244134e72e5b90fe2a2dbee0067400a70fdd18502fe4185a00814c46eda31528e317440f2ef0ddcbbfcc46a4173c464710504ddd66efcd0c1095edd20b056cfe802333319dc8550e6f3c32f805d5810dc31cf5118a592749d79621f47604e575405c8e020791a23d043236882c34eb0f9f9aaec3454da2d4c08a612856797b463608bd07f39c75df503de78d6d2803165bfbc06628fdcecd17a3a4a900a0c06d44c81ef7d9c24289680d600acb834727070e9c58c13dd6d18c942532d089981feaafe0198c519f2d0c15752465a4f9de06451dc2597605e4d43f44ea0b83e82bb4a9fcba5a63fb2e5e524a8685a398ddde83740e3e6addd0425bab6fedae5236d519551b73ba2799ee50723709c2ce11ad8d7ec351731e460deb3c7a46d6d607f480a90509a01856f0c8d1d1b54c585aa5411f68e939c715599ca1b787efd0ad8ec86ce55b450dc554e0797d1d646c94ec5a1564a2e95bdbdab8ef8692f36c5fe3a3a1caa65a7663dfb560755463f21e595139d0a82b97ac4d85dc7ee47d634d1ce084569c6823132bd623f0a133fb06eb6f1920f5b1fba9df2b2d3bd0eb521fd6811b6b48ffc9e673f8df9636bf5a6f0f3e59e403b6398879b0b8cf027b4db0ed673db49c089a012d681d7f793d0687dc9b7f1a0d1f02b7082b8ac43802fc096adc8e9fd626d37ea83f15a34e14cb87a7bbaa29d3ee4b92fe8ebd6e52f8a61b500c1bee9c3f8dae65b5de7ba174b4e52a04e9991134a18106790fa87026ed03570281ac54795b9fb2edfa1484298abfaf182d984a5bcd2a3cc253f45b8def61c5f64993246f980ca0cd73f6d6df6889bdbdd9ce41f42d326d7c28a6974fd39b57511618f98085c1d273f594dc70a91a4ea51edbe24290fb9bedc4ab04fc2f368c65d44688316fe590fb8ead95ecb313e42c2896eef6fde75e271efabdade510740ff4945fd0899b907ddebd47116cf9e5202bcdf894ba192e8274e0dd17b3d6167782eae6aeebedb8f568e7dd80b84f7ac8f84327c9862f456cbb91987c141fa5bc2f8aa3d600b73a0a31c3186afcb3c006028805c1dfc34137b1088d66f6a312aa7eace9d3da8781252baab1da7b14c46f259807e8c47b7b56ba88e20320fdd88894b85e464dc747e867bb02d9281f585fd72ab2c13f40727138274e5699beac0732511adcb5f19506560210a462d7a685322b87344c3a537c5d78fe4b472da7c6c14a7e6a296f4f70f8084dc6d79ecc46a9e8c6f97a39208f92c643f037aae8d26cdb62afbab4e4fdbe0d4a03fe1b6f6da9927ba60d65c3cb2b7884ce478b4b4460cab4b620b88e06569bff5cb2f13e10a554608666fdcc5a9bdc5590412c0424ddc4d0cadea3de3c7db11f99e545b02ccb4c8899e7bb9065fbc4aa3a8a3ea0666a379237f37be24174986c7dbc71af3cc3e364c9c92d6f749e10d71f936d1a3c1cb1f2fb86f72bf595b2ed277a204cc854e92313db1f07a7d7c687c4f41342c5a9a41dfe110407c7ca45b7ea6ab8cc5ee3b995a3ef0d903760b0ad90a09d69a610adcdbd6fd1baa3ece8b55b6978b389376e4c69592c8c4ae288de7d3e339f72bfe03fd771ef30aa2d70366aad909d0f8d708b02b270c7e5ddbf623f50d18d202f5af45c79b3d925d9a68fb01455c6c4162e7c3db420de5280ee9fcc8798cd2dc5491b3da16e884b60cc89ed75da7b8eb390c877a2948509336cd14a405743bf7ebc35678ded7c9dc75b089c1d94e71902d28fe62601448a28cd7fcfd764892002b3a051bb8e0d1bc88c300351ff88773c2c430f42df37ec8aa950a7fec2fd6de9121bf248a9ef19a68e1b30cab0927b44a4111896614888379af45fe809ef091e95630dcfcfe3953848b1326808cdd77193a26cf3931c180ea51868a31e2b929a9573cab00044f24171b6fb89a491a9b39253648d266b1b5b93021661e5063cdd47b0421d5c33929a365e649bf9d0dd8b8df9fad10aee32c386eaca5e89a86e89e13f2272bcef3533d7b02af5dcd9c593505850ad3579087ab6220d1f56f764cab6bff48e1189be84d1dd611c16be0e2baf9ba24193c0fa5eb4b16e450f687a33b1bc2f5834b640814f3d524b692f0ea26ca4378702cdd8ca3cb7daeb6d5db59f65e318ad8a3b0c896ab7192334927802f0180f7d90abb4de127ad205acd7a8e2fcc296973243b803c69eb3f71551d25b8ede2212cc5d7829a43bb0d10965c4244d688633161e9a19366ed0b6e910094cf9897194e6e6a2ee03e07c50b4ebc36db85e2579e53c14c20495506765dccaed22f62c8ca79beba40ebdb0cebda831efc424f422cbeb49e8a1bab5dce0557eb54ee0835dd56cfd57b876b868e88a456a5fe7b63a0b411586c82983d99afd1803d61c16843ddd8adde4c00248d08cc78800494e8edb397785c495b4cba2c5e5bdfa0d14467aa0d1b33a8ff8a5ab21d5df0d287408457b3effe622c3c86d82c70f7309680175384e46dcb1720a3bd7c7e36844129c700b74f3276444fc33ae397ba211ea6fbc27d05452ea823e3fc3ff8300b3660b7d5e55e9ec6ae87140b2421ca2d09521e01d5c6c9659cd246baafea50010c1084edbbd551b69270b0c07a8f3867de89eff4fa89a43e05d2ac5ef80b218c967a1a138f9c664d86ef739c2b18ed549dfd23a3b598340a162bb7148edab5c84c6449e78ada98d66c9e5e04ba6ab46db936c3364155db709ccb48e49729383a3a38b3b40740a8d560a6ba40fdaedbad1d706bceb3c35cd44ead1d0e5cf360a38659f8e9a5afa87ff1b608bdbef6dde8e3bb45ff1f6ade86a6f915ab102485ccb4fbb4181dc318f6b9756479f9f5535cb347fd880a7f0f6e5ab4c44574e121833c96cd4bc2dd37340dc641f872b04d2f05a1baecb8e4b65fe0c9de299597900b04c73d90542650ba726b851c3feff37743e4446e1f982cc04538f7b4013c9d6f2aa649e0a2c27123974428b60f8febe4c32ae0507c03c6581a49d3f5f2df3ba22fee6d9858fc831807a3876be9513fe68e385d97501b9c4a76345dd2ecbeee93807f0b795d4dbdc68dcdafd3ce97a85fe93ee3c7da15c1fffed051104f8e76b5476a46f0b686d69c75da327b8927ca583096dd9d0cf05a85f99aff1fea8fca78e9e0e943c5221365460bc66dcc7d2f9c696e8c8a8467b9e97e00095dc6abc7839b5aceae79ba777212ff1444c54431bbe015a888d4e8e3d42bff659c800730b477c6954add5591f39bb2529e8763b0543cf58ceb912d3d9de1cdeb9c49f420f7ac3e83d43657b86d1c46f0e5b02900305568b17d9285175250347a1afb1107380ba7b75a5b1889459e69d6890326d78069c2f8d8062011173520b238703289efbab1b68814333f3461e472ae58ab16ce99284e0a12142d5599e609a89bfe3f88d3485afe3a98fb30a8ae8eec2d84caf5dd1553e0f9dadd11db238f4ff276fafc5cc772ed5e2182c7a402fcdaf2f5618f4f6ecbf35b101272572f78b13855c85ec1ccdb00c8511c6e219de14dbeba5a8fa9a9416402924cf487358019829a5499d38854cb40acc66906fb210f89c22a1e50a1715d6cfdb549abc0589ffe38825757e07b378f894a62cb0eed23a3b7386e9f703a0742affb1be6ffb842d9a1d4f35be38eaf2452b8e93bd32d79d26d35d83b36df6aab14b05b28d8c012be3ff56d386500a7834769a89b39f7c5056d00d355abf59a0cd8b4ca12cc39fe85ad066d29a6699fd0420a9bbc36ff12d7a861f8be3aa782581c9fa886d702436f3cd9e9ef435a3ae5608662546e71a353de38059455ac2037d7203d81405393ee778ef72100a626716146c50bea482a62978a0f49ec08e48bd55b10adb84fa9310b0af0dcb05b605534688f954f0d273623c6abd59ce40a86a108dad8b76135fd36086940a8ed0d3002c28e8511d6ecc5380e41c2496e779fad9eec6846c939ecd2fe85768db49aeed488b0ce372307989b41e51820b08babeec6eb926f792d5284c8a6dcce5252980891c341655a22e0c4a84964b55d02430b4fa0b864efc666887d31bcac4575cd614b9398019763281d40cf815e467ae345b9c56107b2a6f23c792965305c2dfd3f60f21787000d7d86b4f39d454237b3a398cbac81fa05134dca3acef4782248ded2df233940e805a7273fdb9f63e4a28f3e8eea819400d790f441c8e32e6a243dd696d727e5df1ac33573aee1d6375fcccad16bd6a7e56a679295309bad515b1689f7cbe296adbe69fb9c11f7d388ca4f47ba31ae1779e85e2058766566512eb8ebeddda4d620f6d7e6bfbdfa6f379c1a3d6b59bbdca24d61cddbab5cb6aa46fa3ded3b65f776b8faca169682fefdd4e7cb3eacba02eeee8c5af947aedc4b2baa538ec9bf988b59488439eceb5729521bf1b7b6f9b6d76299082e18af08af3e7b344e030c0c62f8b6f22b5b5a9274bbbf791a1450b425b081ba209a9466b9e810c5537aedcfbd66a6098cc7840e0ee074dc77f9f2ca8bf5ba0c86bd1fefc6fb00f3566a20636cee0687ec1521266aa6ba0fef825347c135f14eb30e2cbbad3df5aeb4550feaf1c4ca2da372de303d36b7c5160cf5abe64786c586634251597acab7d960bd27474964e693687c14ba690ebff7c01c7d8d7de006132c84b450274c8ab2f7a6a83ba2775d738ce495b2a6036befc0329e3ad36c3be6c73540474cebc09bb848466777136c732a7730cb1e20f4e1b7fbb1f5caae5d3e1325be535c009b610baf65e5e46c1c09d1b15d92fe6d107cc32d7675b619a59fcfab9696755f6a8ad58c09791ed5526621a2c6b7bb841001c4a5f80abc4e6705e64aaf6adf5e4965c6a943bbb237fc11425919867347f35eef65513a7956c7ef1833178814a63efcdd08cf0f255619eea8bc4b14c7bf64d484a4db4597cea1882dc92eec5114b78e5c483975bb7ab21572471c46822911a067dee67488d733ef7149e3613e2d590b12dbfd0e9cd921a6150a0d24f31039381b4e8d33b54fa932692686057b7ee31028481e91aee68e02a3d19e12fc7752cb87516394bbd7b5cde004b7acc7539a6c776d9dd421239e4733b29358d12c79b62a0e16e0a5dba70c0cca710def800c3ba0a5356f85bada004911ac0d718a47be10475b948650e2def99627a67c8de37715d549ec1d5b6946bbd6a698ef645da96111bdffdfa7468228ac245eca7a5330ddc5ac8b0729dbfaee014b0398b166ebf3a0717aa0322d7f9b48485c05e82b156249ebe5a31524e221ae849f5b1b20ecadb0915e66e5e5bf3ea57f471ced2b0a8f2cbc664bf84c6c41a60504731b432645b978d9290618dbea7ff18d0d2486a926f958546c8d8552507a844576bdda4dc3a727d1310afc34a7b9f483c1ae11869090f794cefc5245330c4c406f7a1c6b14cd3c73cac07463f02e758ba1f8ea83fafad3a05d5f7ff15e1b4c5302980d8468ef6ab3f4c391f8252ee098b1ba75b7eaca103c591bde5199ed018670abe244ac9159700848aeb2f9bc50f63edb4973dd547e46cdd97cc15ac191d4d4d6270bda5933fafa0095eb50160aa401f0ff2049df81ff6ff553ba3cdf9a2842ea14229b8651672a54b9d71c8d2777996e0c9b0f1684f69fcb3725a3087dfe0c2bc46d9e26e0955365663e2111c4947f056f7bf1a2e04b284082518940ad4ed8f1796a080364a0f87e984e8ae72f318da68c1d0cab35e5070d9cebdaa27c686f7145898da3911c174edc09039c8ae912871433204f4cf3e8e3dbb98abc677b2561e26d406b256cd4075039d9cccd7455d2e47390203f87e5c8f0a5282c6d14cd05600ed7072c2bfe0a4431e603268ffc086c3da1906b91b3bd6fc6521e0adcf85a28688cfdd8a471b12b8f1aec0c188e8ed4af87e00df01b3fcf8e82c3a6d79c5364257f257660cab664a5aac642eb1b9265149361ccd2b1ae1cf4458b07e19d8e38ea4ed96e283cd447fa01255a0f0fe11d1aa083006759c41ae2d8a83c80d9cd86cbcc2c68adf7ab238123eaa2828232c4605b2090dd68d77bc41042fdf619c79d86bacdbb075c77dc0c74775259c2075ed31ba22b388ea9d9c435ce9a6351191134f5d1956933ee0d36d1a58926f9f8e68d4720b72ab80cb21a1ecfd9bcdba1538d4aaa7584438f79a4b4bb93044e3da9e211ac2c64c65afe5aad0b829882e2cb7f3dee6fdd2105bec3b550146c8c2a5fcb745ebecd4e63399a01dff73c6ede1cecc90176d7a94b4105dfcf228882a091e41f92a3950bb5c246c44734802aade4b839a07851b431be1993de81d3fd78b92d5457283cb2a265850a9b1902468248745fd822becac531d58fba868e8b0738953b1bcd578b1cf9ce8d7744528f7e53002c054d06d523cab7e5af761efa232e12fde4b0b1fa68aa20bcb7503da710bb549f0b3b8ceb1146cb2d2830b2180e649c0d19f566ed9040286bf7141908049a4a54dd12c2005fcff3cbf7a197bf2a255baf8ab3785cb7f23da362e05648f87142d3f9544b399722fdb63b2f15843cafd96bc8863a65111f329f87c33ff899a33b2bce167cb942dba0b17804b74e0f22c02a66ea2252da5b544ee3f563a6a3c0e99b9ebf1d4e65394db2359d76d47ae61012d928c82f4517c9bef2a10f940ee5dcf2a0eb3b88213d7851b137146ab2c6e45eb5b5df0e22d31290806f12a3fde96b8ff00ef19834bc4d05fd51914f03094694279f3c5102d045d427d75a5bd35f444a72dd0a8c0b66136cb6b41874b445cf3ef6733e84d131681f48981cb670387483cde39a8076274a205a15cb7cf31596c576f423a67bc8c3788141f4b8608f69164fd3c6abe0bd0d62f3b692e8962a9d13703a02a28728608f56e06439a2dd2bd0673c0890ef3d8628c6d94896fefccf968c6ba2d8ba5055b471906e30704436bac2b1f3a6dbee16c23f474c92435f3cd29a4292a8d3f9f46d93d917d23975cf684c2ef2363548413fc8259a11a1a96cdfe73c1472ee73707ee4afca07d26fa381e64a30183490a0b8b5d3f29a7706043838dcc9ebb76b48275e5523e50bad3a7844039bfb5ed056eaab6e2b3a46ac02c5c33f67b2dfe62f286198c0ee69c8930bd700d87b058fa3d6f9da42df6324be960a7e87c67db641674f928518d1e4cc60fb228fc8bd8cb3c2f8adee62d59a3fea699f928f322e49c3653dd382067fc68dcfbbfab345fef4e3f68f8b30a19045e36bb86f0451174df7a7b37500be55e02eb3b431018dcf3f9ec259b9eed1d287d4582b1457646f20f52446c605dbbda8bbfc883caa4c985e3841aafb35b0b66320b882a98e45d23c1a730818cf4b2b9ce2ea80eaa1210c19864c32255000bb00150a6f7f6b8da48a7a934d6fca918c3462155c2774c5e373ec745ceff481f92b3769a8308993e2aac9e6d2103249f4975b69690022ba0dc403320107fcae77d31facd325788c1f83c2f70ffe9a325d51510ed1281ae82d1aa99afc540a5676c218d9e4ab3cdad54b091dcacaa0d176d098a48d39622b451182697d55f04932c34345370e704bc4d4167043217a5676944aaab03dcb17a36daf773f6b6222f08e9148a030bcb735dfc03693a5aac15dd66bdbb4bdf2bea7cded36dff87e63c062349b6390229039c68a37286a64c7582d1d991fe5cc5c91d7f58855d19f7fd5d46c43ece796fdea06b8036555983954e5380466c80a33e0c7d43a15677d5b43bc6e6af41422159af16e4a074ae0fd860879c8a2c21eb2cc90986850b370413370b940ca5053a5d402eb808dcfd59c1ab61a5860768e45e7330ed99f0359a8b42c2ff659e4c69ba9070bc0111410a9c283ed669ee179c745570d77907c263c4d75d76691e83148e3e32dd9ce8e9f95f07f744517ed6c6ec850d815cd0b18de11a506104b2a274b3e3ae09b14ea918b1769d792db630fddc7875c9b4a219593f55e448bc6baa533a417da1a4d377ef13c2470587a22f0f17b723e46a50d5f4f556e2b853a32f0f33edad837c30c101acf2ef199013fa1be46fc437efffb53257a22af75f9b80f45a3a2ec76a46baa00d4bcefaaa390c9bf1640b82273297c0c1c7c332f416f2b02e214937b418471669784e4e2d150ad02d44262e238b19d4f5ac59f4950711130f4b8f2f83cca79931f1215ac4b0589735adf2eca83b6525b67470b17784c71d4f5333b3b61f456b3981600684895796cb9a7bc10977005a0669cb4f9a91326350f66a9d46f828c30a5e0d55237671b1002f6850b1e17125c285c5350190913778535ffec2aa9d6a4562145daf1b8f2483ed05894f4deeda76ca132fb41d0a1d016382102aa3c4b2d06f8a18e81dba9606009bfbb1948bf9066db698527b925f9734a950ce2a8e0d346042a5d616b5bcf3003962e1e785192dd8f099e54f4fd4e62a6c50ccdd7e81a8992e9c7e8ed9b225922b8362b920b8e86cb3868b15fe1f12dbf0373095fd84b8b137562643e9ba80fe31a817918061f30541ecf461786c98f8690c0da059d1453c212b9693754bd087f1ffbe2634634853a9d148f0c7ff54b8b820ed6380051a82181d35047efffd64f8d6bfa51e23e5556f28827dbe941e1d6e008879bb72f819c1a0bf02413c1faeeb707bd6c49c86b8119c0cf80452c0529775367de13b979e0c7e5226b1b2bc178daae00d1eb43d1f0d3a3c52b84243abc46c0443f8957a09ebbc8b2e84fe148595e886bf84a5042ce0bd51cb1f1aeeb1c7c1153727fe0f6184baa92f730ae88ff45e6ff5aa0cd0c347ddc79da0dd3cecbc6cd3e2536b61a0b24e3682d1943ef6c69dce1fe806d20a8613684ac418b58738ca1f4eb09b5aa625d8688a9313fc99a2ede007b2b2d7f57622a7107e2defd45ec3151b5dfd25d105dbade43664a1c65ab051ad2825dab99fab3a130322287a74160b76a245ad063cd47223daadb1ea38b709922bc4c821cfe5ab9140e464b8d2ba81617adb1340953768c938f208da60b705d00dc57e3d5468a8137d612806449f2abc8ddda0ad6bc27feef86824c7edc2fec759510d133019a2fb4d7e305a56251d051bff83765709d0a04e1f880ba84e91c8e404253797e741ec2de2c984868ec38fbbab042885facef0ec87f35b5bea0d7bb280ac6b5e913723e602e8e8765e9d726835fabf7927edd5d21a8fcd7622ed1f247596157e96857c55c3b8dc0020e6da62228d503d643a0f6e562210e8e40e4761c800ce0f000b05896f12d2735318b92c757d519b969962a64aec5ce51dbd8115cce1db5009c20a935a66a661f663f9ce8c43799f31b29b4d91eb99911d8a0ea64305dbc2749054e7448adc7efe24f630449d693bb6e996c2c339e932c51163b6410013a2b808d828161fea6cf90cb0e28bc3b623454cb18729c1f345b6e87b7b150782e3ccfca596505134a09712531552b317e0e3a5f8a9fce15800c3c1366f1eee074c7f02c88d41930e414b0e8b95422658c221ca68fce11a17eb425e58830ad9f0b3737762e311ee6880bbec4717ded5275d45754c39d3044fb1e9b7c532e636b77690d84a91a0dbe1b052efc1a56e7f0c80aa1394ab0a3ac1408dc46a127093ac9abb92bff2d8e0e56c7916f68cdb9006eabe634ea659d92a261d54c4c2fd0ac9ef87b5fa4c85ef653b26d4eda2a2019917361c84774e050ceb2977ead46705b29eb14b56fec05c5a6d029bd818e12a274c2970b4a20675347d319da9e228eac6732201dad515ac2cd3b1a8e236fe25bc552e4a91bcd19034c9f67fef220e42c3aad7f8d404146e0361a36de50f7c5c097c84bd0db0a5cd4b5632cdd20b866b471c114ee04f8df3ed3556add1149011d204a89d51d64650f338d5dd66cdfb68b911889ff997bf6e13722746ac7c6699a853b7ed36dfd0a40d1bc8182cf27e0f5f84986d734ba738bfe1dd75ba3a0ca8c3b5b2bc34ff7b93fb3522cfc03397b040930f3cd75398370b6c9bb0e3e859bef39505506a2c86b2d0acac294c2fa60e80e080e2bb64bf904f14df56e330051f540009e1010ba060c0c0a78c2b44c4a6063608685ca34eff4d8e37e06d39063dfb78dea5ce1e7e1473eb0ede1d2d1b65409c34d10fe0b560d85511bc881bdf50ccab718c4811825fb109172d0b387bd90beb7216b42d36c9e8538f38c3aa636050be0681f6c68e49c97e982a73c61df80748cf0b43d579316039e6d072ad616c5e422792eb6210d3b7ae5bee205cb5050d2fada983454b1f1daa2d2f98e771e7150d77329457966a0df2b29328f8940bc5f141b248dea9a6690e53af024ddee013563fb402f4957ecdf57a4e44da13ad27a34f3846ba99bf86da916430c8516624166c26d3a7301bada3e54d1f938dd690e283189b08ece3645be67c1eb1eff55ee11e4d98b7495c47545d1bff705e0dff5ab5ecb2230520c50a1724336bc3673124fefc6662dd8e802f6124aac2cce30403f82e4b152065f51e924194e566e2f9fac2800d82e3d8587a24fb5671623000afaa2a02e9eb9142d7da2a9f02fb797d7c995e6a4c277ba1692ec73705bb95464f33e7fb4548edf07579b46f98eb39eac684e5fd1ee65162062cbef301078b5702f5c4bf8fe31121daebc1101c54aca70df008582c46eca5f12f8b96f12677b4e07f44941fd7ba82ae5991c5a74a6ffb6364d48b978874101fb47afb2a6b7ca6cb3bb68ef85c179f225e6e7cb1a9816c4d8781257bf76f4456f4d26da1d5803e776ae54f5753ea269cee5333d4dbfde6c56571ff220dc62700ac6d9c791c551eea152ebd82f6082f1c0886e27264e9218af608e645acaba668b57c1e6fdcfe1873ba89686e8936a9e2a88bbc706b665938507bd9a8aaf3e1e153c1a4361b76a053f8d2e2d59f3f05d5bf5523c27897b59c65eaa2fc39f3fc1a1b994c9dde7b64b4624c4fa95a60ac21a263b0a36f32a8d6abaeed48f3e4acfaae7242e06dc8c844273942fefa436accd8f0a063a9717fb9aea6aa6a3c5f69d7d6a31a84dcfaf377ba33505ef0177210662c22bc182454becc81bf5ee49bfd329f716eebb3aa618c2a3079153ccc74568ac7eccfa28e323ec4a12fe397fb167c5fa9f34de56b872de4e64be533bd430c1c6dc8419f0f344fe126c2396051473bd8cba6a38c2ee85654e0ebb2a24f0b83f6c1178187b808035713b43b19477c3b84782d1d739c36a600531aa3668c8a15889f9d8ee98344437a52c2f31bac9d8df602682ec28ba1d02c4c3b559ec4968ba3a6ff6d6541745840b6362bd05188b55e0c01efc8256da46450ac355ea48963ee9a5a1e4706704953d55bce83a155d42509f215d91ba9e3a67478a965d7a81c2f130c6b47efd5f50b8fb93938c66210a823366bdc0b43c00791c7b772c7957b2ed40138019249f5e90808347d1c3478f0744c224413e7e796620b9a8ea3b433d1d69e88002892a059e2c7d251e2948e0596435d3b2d5438ab900328973a996b1ef85ef132c9ef19df2ddbcd3204326b541639cd034f3a169a18c08dda525166a9e11497e1389a5e3c1ac21435ecdbff044ac7d4e094610c7c3e8bbe41d63f4878702a86dda9a5542104ee933054d42c676b0b532bbb031b03fd6ac16e1938cbbb87bac4ce65b1b07ff0d4d06b5622369480c0ee49b2f4208ef5dfa8b95c7a6196f66fd48c2aa157f4f54657e32aadf29f277baac573993af60711e9a8aaa515c03369068a5bdca57d754ebfb178989913f51958e7bb1d01d14fa4e93b29042c5e505d2707e485318f7c3415ba8fb0f2914e04b76cf6f1b624a540acecde2159b18a10422b177b322801d2ecc89661b5d5d3b1d6862b6a4172a8f0be1c95a1562ea6f29a460116e331ddb21a4812bb6c89d472cd1e126a17597ad1faac12d91125b30148c96a2ded2852a33e6cc5e408bb44cf8d0d03b4b73fa90089d6e9fc17f0c7a400a827292a13ab92ea3f09e4ac7b6109fdc00c21a517bb2737cbe8f37ba9f5718106f3396e06edcd02eca8dde49fe375977c3e9e1db2a646fb444d3b8d838a1f1f67b02e1b2ac0e885da487e723ffb70c504bf948d5b02cccca1b013e9c089f2806141f41b1d5a2277c008b986c54ea48cb517c88e1e9f8b463341c27946c5368d5cd862d0734861219f02cd5d43497ef3f514a2f81c93028be8b91c739a22924243ab66b23f164d6bcd625a6a6a11ebc1b518737699b19141145ac38b334b99c9996dfe84425d9145189dca6853689ac19b53f41ba0ac0540ba20fc6f4a0947a04d495901685bc4b6f513cc75fc07c9b40010a43514c5a04b47973e72a96b6de52af8ee242101044ba65656e537383059dc2776719874b3e528e0764aaa091d2b16a4a6bea6a1a58e09017cf93bded9c95aa8b04e65a62d25151c75f6591c1732470e5d04625a2fb2813e9f8b75825fe9231932810a17a33f5710e58bb00b4ec6f3732407a870e73ea718f2d7387720679dbb72c9797ac334d70e0761f35abe44042fbcfe196942494c4c943a1f3aa3e857a31531efc0021c254202b8977670ef8d85071ce4dcdce7078e134d134de309239eb0b21a3b9c0dc81733b351bbd02075ea0770fb9b274dcff4aa4257aa427e1a53bec4ec25c99a917663317f608269c0fd19332fdce31e78036640f5af03f44c9b73c2aecd7ad6c12208b69023f4f2443856ed50894635ba2347e7f213822f953fd398b1e42243e8b455aae8c0983133d9b3754b78535da58ed17e4adcdca67e4ced4ba7648c23d47ab9d5c9bfd217219e7bf123c835b36102a74bd23306ee977b93a91f7a8bb98c77ba28faf22ec01b47ce18b52adaf08f37f79a72b4c2148f922706fb9fabf08008c3604bcd0c962f65156f16f65b1f7cf23a2833cbc3b60e552ddfec02a932826964d72b8138e523b9c69f61ff475fa1d676fa2f21c5babe102945327e0033107e7f500d568cedc61ea08e3223e1c7f8a3e8b870ab69657c2f0a3e7710d7428a2a393f8ec62b7d1b40ed690b35db922c6ea4d405a9159b4b2fe0dc0bd7371b5c0f13beba7957e0959aea8e0047efe460564593b7bbd0cdc9451ba602cceaea6f0544006e1b4289c927f690c48742f44aac540f9894ff656a5136be19f1cf48b5be0316bdb524fe15a832d51f8e8cf8508b26e17c5b98fd4790ecd6d39061dabf5cf851ecf0b4c248766f54a893875c6f8d8240134ea30ab7478846f6713098042019c37379040e91039e321364ec56f86158f7d6045e0ebf36498a2048eacfe849845ad53564d9c9f693e479c778a8ac353f16d49f321cfd51b0a01fc7570399ae2e80421a272bf9e7e685d1fa15580683834c75a3eb68c1fde59ff1549bace954ed182dcf5b2f6b51549d0e838238e8c2e0346a500af76ae81ff9562244a7b856a214fcca894bf907ddeb6c910a302f7ae922d57c7b736f547379f75e79b1afc268ec088a059c9be6846cced56eee1f7d0b9e95d1a48417548d4853f494380a0b25bd1dd1d78dc6ffe41c50643aa1cd4a428cf85f5b5b68ed9424b00a4049c951cb204ab45631f38484603bb4b901c710c23605b38806d83da00b05141dd990817d73a712682ced3495cea192bdba6784b784dc9baee72525afe1e918793dc64153244204899033239bae1c7a54e2cd5e70045f1a499f265545a354c19f2214c038cd4bac20e90e10de9ea087535b14ad1c6fb06f33686f9bde08278194f20509cea808c956151aa65868ff0bbe0e6f426492bd880ff1c03861881327707f30a737e0f2485683a4aa8ce0ddb9d6b48a30724af2ac0e6c599b105ea9d02a5de72047f61e0dc3c193aaa595c3aa352550eb5d71e4812d6526a9daeaa4490a0e245d54f2a152ce1e6a1dc88d03e6ddf846dbcf7b82ab6157c9b6b3c7c4b4be5456138ce981fba26477d9a3057c1b83cfd0770bff813571d88071620ead058e48f8a6dc68eed7256a170da95cd2409ae67b1c0a84c100a67ec43604a8044598c46d0368460860dd470197905335bceacebffc8a4f1546ac2c1607920c8042246ddbaa2bb7e8f054bba7bc87ba477020b1efe2e7a3a89a319f2805276bc91b0459e5d1cb80d364cd295d4089a9a546c2e3015050bdc7b3e7673bb6186e052efb5c27a3c1dacbdba46e07828790c8d8ba1554033c9b34005dd2dfd8911e4caf3c1b1fd4e2e32ae0222eb4f29f5206b972f509ac2449e4bdc8d1d01094b6b14552f0550d93440db4a6e4b22559e9c609fd34f092e4e615da67611e9fd166c12e6de08ec8047d6309417f4dd5b8b3453e37d45d265fada81d3da5f3046329bd50ab2407d70d8b04190e3344c462045a098a8f1dcbef0252babf3d89790dc922c1f8b80a3a143657ea9322c4e93a69431066fa4829665f95ac0a6901e564b5ae27424cb19260077b5c55ab9a7f28d9325aaf09542a84746c0e0af23561a24bed99f80d9d75cc1e019512bcda61b62d792d35a6affe4c8834d3eaa36ec59de0645ecdc5e3ad7efd3e60a0197175a16c562d6b165c13486530d3447d0fe10f2510bf18b62770b88aba2f53f55ee4cf2ce7d82609b4a1b4e9735eec53c157e06ddbbaff5cfd5f41236fea05a0ee0c52921468dc3b01e89b9603a4cb894ee975a6923370f7d1440e8da0c416ab7674562ccd302c2adf1d6f5d7272741163a1113be8bc7fd59ed5c9f91c7abc94ff8a39ac536121f557e9cc4371219612d39c505df9f75acb94a1fe842b3bf0054eb051aa3a9a7b93e04229cb6fb2bc602ee116eca5349708cd870af1641b27f7acff63170785c1fa3ccd84f7342b87087e59643797605c8d052355502f1058e8fea5ed22a2909aebd99b7d1e9dcab56fd2ea12aabc338ca7658e5b1f781ae5c429550c5b925f18aec6071b4b8e96d4de19f905ae40be63e6ab6fa986d5daf504195a3cac5b1f08f3a78e3f3b06f99eb78bdddb4836554d9a1b951f44505e4a4a1dd91f2b278c9b8f67bc310dc2adb1053a8a4b718a7acf0589c55107124e1d07fb21438cad48257cd2d58f60e7986105bb85e32133c7fdd4f1729642895c20e57382e8810a6a59162703403bd715dd399543066bbbd3a7d86bac0ae376a49c47c57d2d5e21982a79ea4ef1c964901b2e90231399657be35435a0996f1cb26199b3d0e89844c429c31613df97d37acdbace40479e5726e93057747d6e9a9153463ce56f35d54b93b5ed74039d3372bf2ccab9ac9cfb24eb7793b83a143b255bf283566b7496a7de7b6f1fd00182dfb6d7e964627646f9db36732abcd074ed32667a51459d7aea75a48b554cd5ec5466126f89847e36ff12da65ab5378b7437ebcf34a6d4a349b92c84d85a7d6a2e372f12476e55c5616c7bd80814904f5a14c18ed3bd9d16379bd32c6c1fcb0977b4ea92da1515a190ff666ead5cb09abd9d399b80d3654a2e42e71422e7cee07ec53434120f3e93b653b6d8ac448685742b13136127b60c750901b27302fe4a8d331fe2c246b22115dbc9d2f3c9f560323bb9b7d05273a935a9b882504793b8fbcf59d132368f8a04f8d722ec84e098508ed3bed3e583c661a085e45b56216f42364fd978417d34651a18560d582a4298dadee82a2dee1bb701350475b011886be40e477e5c31972a4caa6cf9f16872155f09742a2b5452864fbaddbd1f40da5b5b2b25de2db94db7775b39b000535860079f7c2566eba818a40e7db76fce66652b39b0d641b714c9c8fdbf0c4d11b9ed6ce5b395635dfea0e66ce34aba5e842aec1f247ec1388d06793090bd284c0cdb92df5efce4fb537bb54b6c2517f2177539835379cc19d9cebbce12b4fd08b64d907a1044b57a18bd9cc5e22d262da0bdb318ab177e29112a4d226cebaa355e2a1bd2e6a220b5feab47c86f198bdf7399d7bea8234faf4083847bac5d4a542e70df1b900840ea80536a70f2976345318bd4072e7242f88ea12824c5790ca396b174fa49bb751c47eda284024a571aa6d35aab06e2e2b8cb343190f582abdc66f72565e844bcfd125c73cb1c8406e77d465af75b77fda1c623b890e7b965f04d36a19a507b43e05b385fcc9f9d2210e00adecca645b28feb1b27a1624b8c46e05e4d5b0837d55512f11008e3c51af71573ae62b1ccdc1e38742d65883a2c23d952171310e16334190d7ae091f4899caa64b13701bde22a0f290e4e3c5d19763f2157a7728c1526e8475d7f71dca0931d7064f5c7e59d7dc207cbe90d43feab76931ce4e8d97891c22037cee017a11ed355e805415a70378a238621c824526ea393c3711327ed102c54730648feaf9c7f3725e1ad689dd1cf8a571a2685d2ef214dfdff98cb9637639b7fb1c86e93e77660ad4ce3a2306246be3f1941b670de0bff8077eda646fb9b74c52ca94a494011a0321036f03f9ca594e5a7fce39e79c94524a29fdffffff5a6b875cb88582a57dbab9515be1564e9ce86ed40280434122010881c251a0e80851a0a8d8cf160f638c31c62d68a9540a007c6aad8aceda16e6ee3df9d05a15e5dae5fcafd6aa2a8ddf2ee7436aadaa5608738e9c339673fe909cb47ad6c1dae5a4f5fb24a59452ca39e79c73524a29a5f4ffffff6badf5c4e5e22d149682e00ab64b9da371b48dbea163eed39a032ea8e7b2d4a7d362ce0a56d12db97472dc2e6f86ba867eb8511b7948ad557504b00ff44c6e1460517dc2d9bb8d834f398ea35cff871e5aaba211b6cbf93f44673bababbadad1cfc9796b55f5651f595a09fd09929793d620fa94f5a9d3a7aa4fdda793cb496bd5ddddddeeeeee2ea59452ca39e79c7376ceffffffff63d682d60054f4e995baa5592062882884d803078fe521458d7ecb489fac95564edbb66ddbb6e59c73ce19638c31c65f85feff595a6afdcdc6b66d9b084ca552a9541502492452ce9173cef9415eb4cb495f73fc58541630c618e3da2e27fdeeeeee7677777729a59452464a29a59462211b127daa508b52a9542a950a60ff00d12688b8829803878dfbb478c3636911671c7539b825baa0b66ddbb66df32ee79c73ce2d5ea9864a4ddf116ed43a18638c31feaa55158542a1509b8d6ddbb62c8e4623f81d18b17639f363f13972ce39e7ff6f9793ce39e79c336585aad00b4b050bef8a1b4882a9388a31220b443c0d0ae1b1bc6899227dce4a9f9366b3826a4e6ede75dd8ba730042bb04e980933613411e804c418638c71c580d3e9b4d9d8b66dfb2ba2b0cb3b1fc23befbcf3cebb8e524adbe5c418638ca594524a59853e442291482412c4c17d9006f7c1205690e33e0de2782c90e40e4939734a6edbb66ddb3652e3e05e3324fa58dad31edca8ad6809abcb5a2a56b037f5569f659f4943a21518820cc056d5be3d16d3c6b66ddbb6cdd0b49973ce76e9eeeeeef843a3d168341a8d606a05bb25c0c611dce00d30e63ec881fb62dc0759b84fabc07bff59f6f9682a60aaab90e87b6442107d86b8519393881bb5fa72e34d7693fd67d9e7d30243de55dc63d1437292939ce42427a59452b6777777f7cf90f6a1209eac33ad4a769dbbbbbbfbf0e1c3c7088931c6584a29a59439e79c739e29564a29a594d3dddddda507c45e2ee048e47201b55a63edea55c492907c4c4e523eb831c618e31d220a46146c97979db48278b2ced777131f7d8abd04fa97b5e69c73ced9755dce584a2cb1c4124b2cf1a44dad55e59c73ce9e73ced98330e79c734e4a29a594765dd775dd9c73ce39e5ffffffd75a6bad554a29a594240f5eef63bf5b1f6b82923282848aaba874842a2aefbdf8faf9cb31e79c739e14c38a31c698fa0e72db1ec4933ded6097a515c4937d07bb2cfd199233b6cb496ba5ed72feffffff9c73ce394d7cf8f0d1de514a29a5b4d65a6badffffff6fa9584a29a5947aadb5d65affffff9fda9394112434efa0773511b6cb49ebd76ddbb66d43b171dbb66dabb5d65aebffffff731c97626bad4d29a59452148ba2592346d8e0dca8a9a4b41da01f37347794f012253ac212252af63418db3d44ea1253c768cea050b10923398e9301c66e772927fdfff82448a85815b93db9bdd00c350dd590bc81c989ad9f3b949c62df754cc26a16641f862c7c131685144ed8ee09a1c7947e1f4b1ccd3761403c596764a9b01e0a52e346cd00212294446f8c50172a23aef88a151de18a15159b007cc20d4188d622d2966609097d0c3061e6689a1ec442c9c9226ed40c2073440e209a2d376a2a4c181084809b1576e46a80b5aaae5907bb58240b8b776461a998e45e8a576bf6d12a88020e2a29957c3e3696897da0931b7253c1d6e9f93dc7711cc7719eb30761c2c0ab015f69d6c128acdd65ad49e1652dfa5dd7755d5742ad03d8af7d7aa7d3e9743a2de146cda45dce87d45a55ad2a206045bb9cff34eb6057fd0f598bd6cf3ad835ad35e7acb5d65a6b873c24432efea5f89a627f847d10091b122a2af6419af3d0ec83445eba5103b98e9087421d61285431cf70c58ca3aeebbaaeebe228cee0464dab95beeeb91e1cc7711cf7b66a9743745dd7759db452ca9973ce39d7aa79c885ac200accdca895802961c284ad20916f376a00a871a36601c056100a0e23054f21858e3085142ac6622b85a4472b00e47c68ad8aaa805c5f0de07a701cc7715c3744d775ddd575d6aa3ae7c8390731b0ae284a792af2b66362c4c8c7d35a16ad8a91eb9d8899890bb5083df741f86aa5c913582fbe1742c3148323c6d80d4121f763e79c93d2cbf6c03e7125a609322fc8c4c8e020b303c97d2699930c0f484c324928e9b45062494848484a4a64f2c87d261b6830b96c9c747a40a92e483991c1084f8a8485261b88f8dc4f5c819fb80241a6191f4eb00b05d6490b1a84ef5f4c2f2ef7055fd1cff821721d825e6ac418bb5fb2e9450729e59c2f2fa7ffaf95e9e5c7cbcd75c304b359181f687345d60403034cc7a7d3d9bb46446066380106e68a1ec6e58a3291c7e269511b31c170f69fc5300ceb74608ad03a2eb04e32e079c2cb5e8a9b2b4a99b1e3ade7b180f07ef676c4d0e88009c4e1c247870c24c7c0a00324d4c486ccef33c5eca0870c91982284c434c105e485183c3132321c36d0d92106769a71c9f0a0062b938419ac1664a868a8a1da80e17b9081ba20c694818cb421c501b78188989e01260718667c68c171d30c1057de679af9e18a32ed44878e3f50a181ee6e9cae8169860d4c33483708d1515a2cd0a9db9a834412f096eced3f8af24226fad0cf63f1ee0b6043378dae36c3a53e16ff589866b07061b0de0ba1442d02507b5a0cdd0b40b80014164c7464263400810529100ca104383b8c6052ca449a894df60386d7fb4c35e4380f0b05032619789862e85032f0f4ff3fc6ffbf115e66a8f9eca9cbfd1322a060e09389986ad0713522289cf3e5bc4bac7004671c620bbc7829e2831fb50a15ad97ba51b3efe66af15244ad5638a294524a29adac890faa5d2e28a96a75ce39e79cd3da2c832918376a201187449728c33b1c987a100a014f100577c00c7980a497226aa987d7eb53adb5be4cab4549140a8542552fe08b9c9c9c9c9cf974ba5575ce9173ce39bb747777f7ffff7f12894422914896890f15522491482412c9a55f4edf3f954a752a954aa5b0cc0342adbbbbbb630b57b831c6dddddd9d79463e1a8d46a3519c41884f777777f74e76280f88acbaeeeeee56997d3a9d4eb81b376edcb87163777777a758cee5025ed08a9546dad44591e31151566641503f6ed444ba9122b8c8e353b1887a10422822124724b9e41381885bac015dfcff43933ef9a430056b7b5f72d20ae2c93a555629a59452feffff8f46a3d168341ac5d168341a8d62ad2cfa97c516ae7063c7d8dddddd23aa512854bb70b54b2aa594524a39673bc618638c2d4be50ccfe5a46fd29ff4542beb5596bdb067ed85611b84afeb649e778aa3ae4b9d322a4312cee9138cb1db5dc2d8ed2ee5743927a5ffb5a25f2bebaa2c6baf0bc33a9d4c4516e2292324259a8afbbca4623f8019a06652534201acf1e16d848078b20e7659abaa4fa77422401da8901891827262f2292119110901f1641decb25655e9cb0f1decb256559f4ee9a68d060fb80b9a6662054577afa006059776778d0fb7bbfdd3353ddcd6443ed554439211d13eeb4fdf748a7b297aa6796852975a478f7aa66152375cbb4b3927957352fa5f21fdafb5aaac5a559665ed65597b5d18d6b1375711f769580ed6b9efe6bec8bd144f8b378028d9081149f146dc7e4419b125e74784a121e747a763874d4907c7a3a42343187006c2c0ad066c8130207e3710e887739f039ec863b7bb94d3e59c94fe57fab5569565d9cab2f6ba30ac73619d4e96793c2099070424244444646484a4a4e4f331313919b17085a4a4c442906885fb1eaa4f3c4d060bc6931c324977b8403d60def7529ce490897e4affb7301b5a6b54b354cedd3db4723ba8db1dee762775bbd3dd6eab6bfb272f590d9da0325127e7b6d6c9b9ad75726814797b88da5e4048d7c30f345470351aa6186f620587acb241e500081a40b8a24c9ba1f1e38ab42c0735d85413034c4d4c8d073450b35d91a682473d6539fb4026828c068e16dc048d1e64d0e8d042638217684a31688288414d72c85230e67d261a1c9a03470348a094529aecd1b86400c769666e0772b0ea1571b796da8e7f3e9ad61f6b625251a070fa7f2f0061ff60e23412628cdd342ef713579e122c488304e891115db8309ee608346ed0c0e17e68e0a03eb04e62781da465825982209a20dc5d4a144d0d28a5f49f0633014493c2e40dd6898cdf415663c60629c87640ef33cdfc00c64f3a2795c944da9c73ce395b90bd641ec8469059183d6424c85490bd290686fbf799625a30826575207c1a4a8cec4980da78d7681db94f0d446f353a9c54bb4b3927957352fa5fe97fad5565d5aab22c6baf67597b5d18d6b9605ca86118eb64323c3817461e84b830a2e28e987988a4222e84711467222e2207081ea8d4cd098812ac712124dd802e50066c793b622ab6ffb8d006c6d8ed2e61ec769772ba9c93d2ff4abfd6aab22c5b59d65e1786752eacd3c9328f070424444464648484a4e48144290f2452e1422d444588c87bd146d8af2516438f00019aa5a894107a3b2201802008531900000221108571408db31049680714000b285a4a486e342a2e4896c863811021483120ca18600830041863c0ccccd098072287bc9d40bbe8227a12012e4435548bd8adec1339a97b76ae25b982b373600eeac56b045f1f8f70271d25c3c147f5fc21b56413380c17c2a58fee0a485c7d9c2327a48abea3daee3178f600337757fcd2a1ca992d67f9f9fbcedca3a43e79f1538f996e9817164eef3eba3c9147d74ba891548af59cbdc1bcf0dc11a8fc35487827ea646228775711bf67dddbdc3e57a7f24e8ddedacdc22122551597f9c99f257079f508fe60934c9d0231ac26a50959dae0d4c8912c6d434ef7f54680570997bce4c650c204c06ac2293c53b65bc235eba9b4650a9c4b884a2515dd4b2da89e1b15afa640cdf324eaf844a9eec9f1f1954c506ed09dd6228173276815335147fba4ab509820eaf69436ffb95f3d4f9111bcb6417c3541966b2417cdae62374b13bbf2b5d996d2217ad16a18b6c1d450d14784ec38e28e8ee3a049f809f3dc9916b9cc02951165d88d93e66be7ce2395d7f4108ef2973469f469c7470b607ef3f5f3cf2fec19791c589a208866bebeae47459d5c1b62adb428c2f0634242e2153d6ffbb308bd3cce1ea2cf0e67182e5ac3e313c8ea86bf14703754815a0c72d540147a19d06b86931fc9940c38a1ce6d79e627ae8f05377e44a68c99137f8a5a9a9dc14bcffc39b102a491518369a41c461b615450d49d712126f186c1222ce5e1c138fa6d64210a3d38ce70ce8d5f697088dfe7beb0201c755ebb66af2d2f3f79149dccb4fe712a5698420c810fc6ade299b96868b5cddcd000233602d1b7c1ccd08de174c7b7c24e275761f346aa8eed25896a622bd8e77813d8e47233d8a7a629d69c8726efc8d4b17b93a9c3f6d218e9ce9b440dd60b29556caf242a8f658499c444636e1312f14474f519257033112236f2a424e0be75acbfe7e22bd397a1f3cd78ad422f27305fdc1e76825c15cb6bb22a76dfde1fb060bcac625a509a0cf55fe7589746636d406189582ecc9782926e8b41ba01be3fdfd8d4f231efb8752ff872084f1be21c63c85d5777aab4590c84d2090a03c92b613a5f9e1b13d7e2fa7c362afd68f15f06167e88d17b0e88093f28db40e9806b0400ae009600a06e0e97b7acb7f1a2d8d55c437b84aa2b1e58c15f2bc3665d279bd3cc1a21c0b5770a2b62cbd096de71bfbbd453d5f2d47d16a5fd3a9672e5a3148eccfbdeb5e5789d39de6718119d40659b74ed553f0ae8048b6093df3d709c847980228d549adc10a5bc9068bd777d732ed59012077736b32f0554a382d32f4fcf62da6eb605748f39cf3388c0d9247032101220579ce36c9845661ee4f00b9e81c4d5f66e058ce314e65a74684458b30f661eeacef6ba4e73ddc7e96ad8a4feacaec3543f5a0b62363ab145c4cde9a5368a54c7058bca4d5c19890f6c33a7c69d0bf9d5b75ef6e5e912b3f840aa207a7836ff918c4c22e3f9783d11768d84cf187b4c80a8a5cf495845d71bcf3c0617b99f1c643ad6e83f44bef8695d1a2fdbb8f23652a679f5838d0417c7052163717a3f9d51389493f9bcb96dbe3821874cd63c5d15aeb942645eaeb1fe38e4e3760aaded093f1e041dde6b08f5f458a0a6145c30e7a7ef0e74dd5ef33ca8f09ec0a9a78f03b5256195293f7d77a4d7e6bac74287f5055e3d7d1ca85eaa411973767ace48d7ed351eefcea21870b868352829cf3baeb4a88fddfa4f50767f38747b2cca77678ebcdf9f27e4bf1b4e3fa88abe067e7f7f5e8c94454845cd2eaadc9d4ba754a692f7f4e68f66cd7e5c722fc5e650d76f598c2225a379281cd79ed4c11e9909e1cd7935e972b145ca21611615725634bfc006178491c74afdedc3d5160cbbe806a5d3580e0d86c823ad2e0c49f17b5de04bf5743b12ef293c8fb63ede213eb940330da8a69ab531af6d359cd45dc2e5412239c915f31c82a893f46b9ec379c21f8646a1ed9e0428cf73080d85e8cd8dc499dc6b24eed8e9e6b5faf923033c9dcc9ce07e5c01752c49116fdf4f6f38895671e8bc42f1113319ef468a3eb7e8907b0e32fc14dd07e7d10b2ac14880e5ccd14078385e93438bf244cf6b85d3759320b853179ddaf2ad3566c4ff1e061f49cc219d2ccfa263d12a04600913f77e6dca57370d0d4056c7602477657a912bd4cd94f46d10e27edb75c87833834be8ea6ee3498fb09271c6cec7545e43c304c9a6529040c800e1114dadb522c8153df56971f036c33691bb6ddd128c00b0b3abf3d3199e050c11e20d786821f54f3db871102050fcb6573e8112cb96181e28e61c3b41cfa36c95c3539dcd9ca7ea828775a0a1a2f44dcd971d23f77eaa369eb2eaa1db6792ee003a60228992d1f4d293191da4a876d420dfe4a146f8464c0936376f72191c0544b6d09d86b67e2ee708fd57e0eb0f045743784d905a4208d3b920680b30a8fa5a90026024a81c44e1046916ace7d2456ed2147d12a4605f5f71e71f00c453b6faf2168060aef89a3cfc3e453941fed21482a9f0ac1fd0903cadd64e3084d38bac43e8105aa7aff56dbcac001010cf8a48bb6c3fc14029fb7775c509e11e187182c1421662bb25010300f2c23e2bdc2b61fff3e92a8c6690f78f28567847a1520de36db9bf2cba51300c5be6947063f3519ebb52c43336e2ac04ef4c48e8d098ed6f6e9c25e6f9cea681af053509a5c303d7317c434e319a71b25d01fce89baaabc82bc313444e42cea273e7951861a82ce7b96ee2d43e8ac6298ed012bd50d97114ade67548f176c2764dfc3de3738979d5bbb602f5a2e3c5b461b3d0ed25dc41e4e9137290ef7d1061abe87079f5893fe550c0ae062c530ac52802d664cd5945046ca0432058843dcb34eae940d8e30eb3c4194a42f247826ca21251c104b8ceadfcb618e6b60046c5546f4ff86601112b0f8c5e5b8d7d6c88ce7b3e18044b1333a3853d1444200a4650308844fb3b3c1b557668e0aeb771f7c18040216e4fb70f14e2350f8ce911a08707f678fc35447ce448f56ced9489402a02113313d05825e6d297f501b9703656047fc03d1e9961b8747108cdeb5668199954a78c9c5089e428a773f1e8b2fe952de09778329fd09495a9f625b2600cbd5e225f5f82cf3049045ce444a31806b8e494e67af57219faf2592ced2861c887d7f70e0856138226ce80fa596f6b6f9fa99b1056c7a73d179c6b813d8d2c27470157bdeaad67e080af51c262b5f8756aeaf6faaaf3e390be0ad43f65e65076366c2a9f2be0390ecd22e07dda487c95a2fccb692ec7450148a2673950379c228225ca5ae92ea06ef35ad6549fefaa37b0fbb9a7ff0150aa43825986ba7f88616265a3ff29a3d3f821af5490ce0f64bc1b7de9dbd4bcf0f82757b56b35f48b183acaa3c6e04a6b3b3f3c54cbaaf958eba1ee51eb08cc478a0a3780d25a54681654ff0719683680ef7c220be47c1daf595528086cd17c3ff4299b2d6c00bad9317c597191f5a9cb2b629543c87b690239d7b8562e24d8777831561bdf8e04d354524db5965977d8d8bfac6e5be62318dc13710ff8d70434075d342781e332cf61b3241a979f7a5c8ba346301e2515a819edeab3a3698900429acbb9147b15aec329d8f8afad82c1a1e60164c0b1da2b5cf73436d02bff80a1cf23276359533408be97fc894a6ef81aa82751d40d33a9ef19b1253b308c33f22c7cb6fe38cc50d65349f8618d0c74dfde95e92644b9c2b1a4e866ead395a12a043bf70112d3651f1366caa6ab3d670c0f0ff89d985c8260db1a1968bedd6b63cc7e7d8d88454a49d58dd80af86977d49514d62a1f6809d75f1dbed2b0b6aee2f31a2211ce257cb0986f785c7fe06219409c6b1d1367811fcf1a977fcda880b86fa4e29d70247b4bee782b945bc6e7e1f6dabce36a3babf44350918c5c5a08a74a3bdbaeda8f033772f7efb93ed4bfad5d1d8599d5895e4b239100906ed9173debbbcd0d8ba7437006baea2d556ed6d84a65c7d78ef57f6b842d5b060ea15e2cecaf419b0ad9fa5a936272acb790540cf6108cbc43af646de84cd6024fe4a1a2cac26396b76f95d6d5897b47e350d88bd26ac2d12fe1f80f9e844e4dea3d4397682b6b64f1020a9a0a6c0ee1cbc3e538909b753e5950b849e0218ad040b14062a94c9763b663083d479eebafccb8c3d5ea063893fbc38d1c26ab417e7815a91d9e728f7eb245a9e5d86ba9782b9f91d3331cb66673ccf09cefd48049d92855e756dc8d990d0872373956fefc0d0fb98437147b638ee87fd4194aed669c6c73287f741851f35ff77b76d712f00049150180e04d918e114ca0a185e500c8c3fe08db5e0b6a49f72f9c296e4e2cd8d445cdcb14de99304458bcc92946e2987bc5266f642c01c09863d7088f070c22355e078543e294d239184e811b5e730d348528fbaf00fbba0244ecb71e1617b4093a204fb1a0012aa6ca80073eb78236db2c5ae7ab06f64d8133f87aa241e89b2dd42d844976a2bfe0a44893cf574476b9fdc6e0e07acdce12665a414a183c547c770be303bfaca28db99152beb301174af277d748f92a96c888e610fed8afb50d3e2292c179b1a457e326d321456873617309c48e7d433f52525f100be829842c71ed96cb107eef363e9ea68b7a0f283cc254d10e76448bc0c879a156fc13a422fc9eb77d8525dd95f79f7d058988fa78e7e6082fa7b4d80531ad697c20d7987c61c0ba4516ee98b07c710c110c6ab99143f94af1135b014b850c3688cea09153f4f5bffd9508ebd8e0d69550ed0da2e322244212c0069a0f656263428404b1db070922e859f793266c930056112a385d618eeb1438f57b61628dc05d1742ee9bd6b8503f52294653269aafafb0b8ecd042cb7c7c8cfb1b6e87c947892464110b2bad993cb94d2cc57be3d476162794dc7034ed41a09f799b112ce9a0716fdb2adaca8e101ae526ce3027d11205f29c145770c486b898e65c3f0f86129b61c42fecc6ed1dc4d67cf64624e5a143e7540ba1b3a50ffa4e117cd90baccb77866d649d81a284755a1618b35628b6b8825d7df9f88e41298c396365e6642948085866e064febf01dcb6b230848930cf079ca37cdf405db6cdda1466047816716afc6f606e1b599a424690e523a728ff674073205e0eb39c80c506380863aae7c184023d222bdb21f6db9e90f1667d5a25a3aac8e6a1806464241e3afe526721adcb4261e27b714d38c26cf461fc1bb77078897c0c1147dab28af1bdf8417908a29c6c400a66bd70cb96113fa9f7f89cb4b2ae0ea11a4ac4414a24f24826edf39319dcbecd44eae12c904ee3ad354ad194702796e87f0f38f475e01ba162891552f18f5005795e1df5137195381a8b64db1026276e2024390fc4b40d30090dc8c8c88db1b8c4295f6f55e3338a76a4dfbce66c962f26d3a59ae3b8d03e6997bcbc7c24fe702a510bb55b51d38ee07dd59eb9b12f882b6de601fbbe46d04afe22596507c533fc3c68e88ddb4d5ccb393ee47e7061b7bc6b846c4e296f03d9b24d20e542b37b119a8c72badaff1a25e5246e954d9c86b1cb2d628b0fbbeb60654702f77b91201116f1910c6802a0e52beb226e51b2df162ac689232ce6802ea8548d978c053b39c6e2085ea70e480b8b23aa1a9f9fb10fec261cd6df5c4501d724c20006810a183d8d808a9aea5ec306581244b4e40801949c86e2f6949cdb147c29086a4cfeb9ae9d107057b6655d8ddb68c6e43c6203d20bc6b1010bfbf7ccb4169da93060e0be2358fe3a6d955e115352b9a735b8430e3e9bcb81714abf91ab1d359aa8a11d044777b60687a3b8ee17bcb702006bfe11ff39b8a0720464330f1b619cf50f10e45b913813b79d72464627f705e2f6fbe6bec0f86107d6888ab9b866b865289efcefe9cac9ea5c0ead60305e05fd22c78ebc06498400a43da4f425c2772feef5a5c7a27abc8f5f647fc2739c8799b362a97c9e56e60b149a272d205649eca9dc043f0e378994892cb172aa37a417b763e597c6e0027a9c1de53b558def81f73a787c34e666adb0274b0d0e40eb8c5929d3a6facaba4ae113b581c0d8d22050e2abb552f9b08a4195629d61d24ef2a916b8721f883b2e06168ab45e86a07d5041394c5b56274603c1145ac5162c288a5d6d808a8249053afe04d213288a6f8778e38ceac4354b90bad342de7c6f2cc9759e45b342785105bef76a4439720f6436cbfd328adc07ee58e0c2953942b44b59e7dafc641d2286a1ac82010da993ab9e0ed17873e09250308ba8bd48852cdda244618920c1b6ba50bcd072753a3627d33c68004105bd6795b91f3dc16f224f206e360b391358814f24918f61c03381546e3bbcd21e992ea202df5880ec1e2c409b62c01d4664079cf0ff014e2ea8d102e8a208d94f39f68224d33b21480df9f8fa9aafd9964699f51ed9c67d05bad51ea255f6065ab658f572ba35d685053503fc0cb1c5e95d9e186f3b20435780a6fba4e193261646f01d8e615b0e41c34be306f5f36fdde1c00c3464996052bdd92b0c8301fced35903b583a77a7c5ab8b59e25288cdf49af2b4758ef6e7752566f5ec45a997c9bb5974876c7fbdc2f552ed12d69c156ad897245cd0832aa96b2b72c181d3f13fc0d7f1a9a9b4fd58bcaae083afcca77ceda7d22f5fe5d6b595679357d6c729299e4b049ef60f612c056d0794cb7344ae8aa178a0e147b7f080000770cb22d4366a55150aa0644a092eb4eb9b8eccabe67087fa57f969d775ec29c69c293396f0c6a66de0e86112bd45d5413deb247d38735942fd6e4dde17e2db829a984b7904c1ea47682bd6f4c3240058a2250f034fdae413a966bff26aad05df6e1ee15d659f9266f5799964947f33bc77a68ec06c7ec2b8603fc6817156439b1fbc045f7c8966fc80e7f8b4345246e79e965e54e7a4fddde3fcb99f94f1e8d3444abd4f73dada1b28f40f155309b59e1061c60ac095c9a42740c3c3e15eb8fc1f86c84e25fd385edb0a2d4733ee71abfba2b087f16ae6128824548a91f27218b66acea32510ee4d46ae1fc17707042d5fe6cc99f3a7f4d0d48b272f0ec532d2ca2df634a9a6c5b2965d2a52ef24150cd58b06b32812634678b45c20e7c536345eb47c683aed3f16eff2d562de0d8ba28565f3079053cf1b3c51bd3520455ee2b16df63c990abe91417a7270bef96b3d699e4250889b86605773b644d58694649c6e711a79fc75394deee63c9d552b43af218b37ef4c2e6f988e38b0b9ee29df5832f19ec03f806b381d3669952c3a20a22975032b3ee26d3677b1ead3c5cdaf1b322d40528c40c84a5ef70ce82f0291a130751bd41f6caff0194ac7eefd74c46f981dd189c62376a3e59869ccd11048dec52591e7ab5f377e681a3496cb5d94069d14f851cd6f6876bf9eeb014b64549da268df557ff9bc0fff83cacea7dd3a2c5e9efa9d540312003ad80bd0d0df7c5260cedbf688c5ea0fe98d1acfe28e60c7295c551f6b6a3d58a3e32b8b0bb97ae83d41a1c3e0a44781d988ab3de839fee4ef84d608c37ee0ad9c6271e42e42462be168300fa1e102c566af15aed924934bddde6a313436288bea61e7da25add2e6a7989b6d4c8f3a0bb38428688d18e6f5f10c31f54ecef66f214bf9b4984599e65a0e66e087d53cb9742aa41b13627d25f4c678330125c1dc75c1b3b12d542b95ade571e063d62c222b6a65e2959240bb1d2eb58859ffc9262c3f3537182d8b910c11f114e0583945fb7639974f958318f5f5786d4c2cc7a4fb49a086c5ca52e8ea2679e8386896c9867b943ae62cc90df13564a06b2e6ce20eacf7bd45a02f2dc025cb703c27c11a27a83a5c5507c8195a2b823b02fb7f0a4906bfb8a22a37b870182294bb32b374e14249ba272a7a3afd8f25387b998c9e18d202e90bd95ee372cf168d750fca6ad8ec82510b2918ae9b48068f2bdb79142c7a3e7585f687844bd70f86be2a36704f8005d2b4c1b18e1d8cd9164c91ef1fff21db8cc9953dbe9ef9a5d5d375f5f0f039718b00f253061429f59c769a5eefb249472d0b42dc628a16e43c58ca2b85c3b5a149070ac0a07e15001a5006b0bb86d1265349d1e3530964d1ed1eef21a8a1bf118d53ce63feb8f1f29c64686809dfb2ad7d22e7fe4712b8484293393d6a9178727f62b0e45b0c5ff9a4170c20b59c5aeddf212e46a32d99c6fc653c79b6c554de8c6bc300e2da7dfdf857d5baf34a0cdef745f0c73a0e3ce4424260c69621ee1580a904f486942a5541b888c3b034a73d8f06d89335816c998ddcf255c6671c10ec4e958156d7f1a06f11bd63a6af4358563676dba161e3bec9713013e0d3ee7bcbebd54f5ba86d54157a982ff617129db55291ef1a7504d1656e0b1e2f2954c4ca58ade3dcf681831025988f445fedf2ea7b7ff00f36746b95ee3e0ab6af3cc1832f662444b2732b41e138a7daddf19e80dc2c08087647334835294c8e930a258fc29d691d89be2b410648ba7c16ef735631dd012c807daf3f6518fe07918ff09fc6d334dc3adff818aaa1b892c7e4b307b44953e11011baaef1a17317b80853ee1bd2208d52e5bba716d9fdcc4bebd16ebfbec8d9d987a71e4b60866882fc982a3283bbae646fd9cdf070edef7b362860214b9ae1ce5d596f30aa068d011122188280b836159df9abe196ca495b67792919f3361b34d5afdead1fced6233f2c0e515f6e6acc0373055030ebeb25960e5886941b99589984521d733e4a8ff5dae3b595fdd013924914e1614621e8c1b9f82625f454848802889dcd06e1fe6d9c27faf3d074a54620b9a92ce64908bb5e224358ee456f1175f4325a1006ac9dcc382c37438a9b60e761e1c474fcbd72e11713078614b818c454c9b0aa2ad2274d95882851257084a7f226a1a9bcb52c985c08c9cbb150385b7d42591b4b5e3b543eff51b9844a5793b7efaafb133ca6321b3c6b5f451192ebf15edf5efbfa180742a159df456c4e9366baabb6f39a0270b2c5b4b28170813d5c3c0b9e7fb9ef1996c430d2351e0c41078a5d00b4a4b00cf95a8408059c811773618b2c90706c5d4bc7c26d55dc5b0be1deb0d7c49826be76d5355fcf5e8059ef80700fdec8e0b866003287613c8ddc0abdf0168c2c7397f884afeeaad7ffc21f4c82fff00b1bb20b148fced8ed69613c501033e994312700cfa7031675572d3dfe70d0138e4367e15d9722b830013122bb93a57aa10a57fc0d5e05b04ad45678f28515ec853f187186fed00346e4e80f7e21c01601ecf413701f65b21003037acc06e8e9b035aac466ce65bb146c8762111eb3086b9d0f163a96ea691f4041ec51125f4d36de263793c3e45134488815b20115c37fbbb96a9b07dcfebac4f8803f35fd3ef77aae154e3227f54ac2b5b1556d8b75df43756d3a3cca7a3cbec41bc30defa2664358cf56e8a195dcb210b63269327b7173f747d30deab3b699af29a94204ec82d742d298064ce8cf0c1c623250f0cdcecf032b8dd4d81b7f336c84dc80acd136ccf9f45cc9806c8c646cf92106c9783e83282bfedcdc8ba5b32a884c1e7ea74e59b2fe6b08a8dfe86b3c9e7ff966f701f57a6380e3aa73c61213e6c74b49fc2f413f9354cf051158977356c72457739f6179a6b1864f81228bffcd17af63ddda36bcdd886e9d27e71437573619bd8c5241a3285a8162131753ec1191727bf478b747e85d8a8f766feec7fe7aa0059db4612c725decc01000e7304ef2b9a869640968f8b64ac8e2b4801efe0c1f61aa560266501ef405aa843f2c8fb136aed3c633ebe662be0ce62d4d77db15c3f8b412a26e098b1b814d6a59c9f717ed25a9e43dccdec85ab4fdf8a093bb41075272d02b15e896a381a2c6481c6f72b0603eaad9581b372802f0de6784fcf356698765cc97b6f56f4e2eb6676165c63cc90296f05ac0a3c00567ff5de063eb09f605e8ae7832dd6849d2a098e67c2f1a502818d511c307c92d7bd7d7298a40afc828e1beb67cc4a6b39f1b8512337665cd6956807b0e80a9e90f2d4bad79255ae8488e41be6d742f570309db4e88570778e6fae09e1058f39578b52eab3eef077fe019ff437f5810e295e2931bc6154e48880e002cdae081287bee40b596bade75d20967236b135238084afe1f5e83814a169e68d5e11a7ec31fa8b121b580c5007ef2a5c750c898242bfa96512af445903abf9f85ccd32c81bec24eb41818ddcedd4beb4e7110acf62b53c1797a125bed68c82617159f0a17319784df14ef55827f5848db853a650ff15805b1181f3bf3937dca0fdc1a5ce6421943a684dc0239545012c8b03a106338b711aa898dd1cdef58d9d8d13fd39605ccdd0620665bb6223bf33a4d30758ca5dab00b0c0d146b34d94294d47ec2efd0c78268152f91b3eab612303be10411e57136cef78d7aa89395c711d8fda759f184460b5f245969d8ddd442ee14d8167ca0816eefdd169118eb37f2842fb5692db1b0e56a69c313712d4758c7ffd94eab426550dc2202a30e897a3beb1be89bc4ab91665089507aa9680d354ffbff193e2d0a1e566823452ff981fd0823e1c569c452581daff4eaf5327d48091e61245c2032bc999a4a0a75a58a2001f30d28aff4c454d91a9f1d41324df8679a03649c27302a49500b7667f2e561e441b005339e3ac216c50045111551801815e79a8d11e51699c5e9daa041aca601f24ac5cccd7cda039c3ec62c365575d0a2b53607888da1952ac50917623af0ce50f1e983c6b20ac030b15f057b78ad6144673ef07413da5b381df019dcaac693a2465171310e09c73c07f1c1956797fd7cd82d7d065f7016730538dcac87246ef586ccc4e695dbc698355cd22b3334f715fc235479fb8583e2284341f4ea494c89bf8b04fe3325f262a1f59e31679d8cad6219ecc56759b68ad363e5330a6a5ad3843eec4d2402a5d22c6958c83910607ab058e383d8e98740711045ef080dae1af743960ab149448ebdceb89c4acebeb35a9b81208b498a86dbf6c981d0cb06392a211557426eb8c459ef08968f70a45d61c29c2cdfb0bb27bf1db08396e131623ecffed6cff0085825dd146cde763c382982b7866dcc9631042cf7e4851ffead3842ccb3c7ee6ca8d0b2b3ab289ea032d8f79b21f6e8d83805286898eac9d9af0c70c9eeb2bcbd6e8751c788520a8c180d7053b0c886bfc006f335f6535bc9adb630db65511530140e42b9689ec1e26b599b743f1d3734bb7f896bcd2f060b5301fa28057729c8e9b1e4f60aa0fb0b8d88af5e103e36b129806418fcc512efb17cd9355b1c71c818cb184d3dae890517f580445c0f45e7d923755318de1e511ba5c21e763c8dd71763f483c5d137d7ddefc14446951aaf5648eef9e1e5b8a38488fe6770f1ac9db2b5a3d0977f5d5c347a44f1aad7202d58f947300d2c42b4678358d449001bd5401bc7b21c5f4ce03f1a922f3ff7daf8b487328a77fd0f7288de83fc631228d11ca4c41a919d2733539ba32442eab15e18c5c41e0affca071de03b1b03b02e1041b4ef8de5dda83be148fb02442633e5ebb2af51205c74d56319e55cdbdca92ecbae65baca393b77f079d45bb9f5018bc30bce2b3d4d3b48db718ef7d20442ef7c71d38a072c4cd38f16f0729e0d86ed73e4eaca149c88fb471707999200ce73381776a02b0e623ab9caabf9735fcadc7f4db2baa51db637e9b0aefaa8ba0882f64c2dd0783e7a630f684ff46ffc68390e2d7ead05b73331dec5f9a7f376c408520a793b39f228e3793b196f94a0b793978c525c65ec41a9c27aabd20da6e037620a3c25ccbc0cd4dcbcb10621fb536431388693d7a14b7b77a9cd55c549c97c17036cdd11fb6bdddbc1356fe63ad1d5f04c5312a4961e664fa75569b5b16adaba26562cf4b315f6d21a6bd5736bc94726d9ea40e229176a3c7f4b53991b6d1ffb645dac51defbfba5fbef89817af157e0918b0bacf28e81a39c34f04de1389db4deed6a506f5e40bb5d76e576ed75db56436d8d98559a50e1bc5d3b3fa2d89d330bfae69b504aa14c985e5257134ae46329ddf7c72bde248f947bf5d80ac3c74b06fbf82df9237adf568adf6407d7937ef21ca728110311e56ee67ee9649a036b382c37df0abea4d17e3bea89616e6d1b8eeefed04523eea8da9af38a2dfbc99dfe0da05473cae820396c4cfd9900c8accc72a653ddcafe83d2f6a265ab1c0df675fb99cc947be34ea5f8c1974fe70c5d91e750bfb5de420521ff69084fc0e8d3df946095c4bc63ee30cc9f52696ea61c0aee51087697914ee8de694496dacf8c215b3f6ab13a33f1d4275b00104d31d1ec68931814531af1925fd10bee7df9645ed8090878ba3fb6cfcaaf4ee50c9d37dce5a7231a0f706d92045b1258e3173ac38d9a30a721925955308c24c0cbf73219f2dce24bd3a1ebf9f2765cca7c3b5a1aa8e8daec2e475f0361dff8583ab748ddcde531c921357ba79ae8e4b9e9a3860fcb6b1d7ec5a390f98fb2320f00dbbe26b80b18bd97aa0651a80e1b75eaa80853cf8e947af0e8d1ff75e78a0a22832792c99d07766c1a54d5d3541c923510db7e89808ae497e6e04f96def1f7d0fd77f03055f8c890ea10794da20cbe6c9be66c717b1c9e1524039634d22a4c54a8023a5f2a1620a142bac429ba7b115cb0f7f34ca318d454cdf04d54053652de8689c52f4f9be5ad9aea71715c5a3cd32f9622a3dde5648c40561309c2bf5693a548aed7a03a7847941ab88bdf175d9dcfaa2ecec16439692f2e4bcec8fcec91e3ea3795737aff7b7de9ae78fa09efdd6ca77de7ed594c11d0633d687081e46134918604d1858f6441f00f015fa578839eb08a63f01cf83ac1d994465984cd833ab4f40cab59f8f15cb0016cd44ac64df9e1406423a30274be1f503bb5801d7f265aa489f7d80653cf7c063b4d1f000ea46915bca5653736fa82e75e3e06a2c40790cd3a00406803583765a085ef02c67457d9d52c92ae6980468a337a02fa422f55c5c23092b8dc2162d1070df6b4439e477d25a24a9c08f3d545e9c202aba659ec94b44935342f4cbc0a4634de7fe24d90c4abc77359c7566c7fd30944f10d6a4d19dda29ae080b6698321b8d2577eddb8829faa3f31d4468452589723cf017ae9f9a2663b03f92b0c4c51e535db259f709d9f189e69862019e0d31d478b4aab8b85ea5f30ea4300541be64345130aa22623fffbd23e7f53eccf17f29d5592d849c330aacf6ef246cf4d92b1b84d22b0b5c9f77cb1cb6c8284d4b88864366a102405434ae9e711fd9b051092eb12db15cf15f9c65ac94abe0f9897a492b78e20f933f72f53652096605f4406682836f885ad90248b30dcd458bea0be372668442f4685a65f0f5c9fe5bff10aeefb94d16fbae410dd225592dfe556b3146789869a84060b7f9a7c2609d04ab5b7c5c5107accbb153d65b857fbbee4c84f0cb7bf24df24a4ae8c3ffc023e7ab8d4f5cc6d5861697738e0e08aad3134e5cd13f7bb203c8ac55fcf3a972483f3b2a935c26631c3b94618e9906f69c00dde17db33dc883d38d3f3d9b2830f7c313fefe6e8a3315e667833ae95b58101fb45f75a992e76c243d88a492e4af1496c45db98a8225be9cbee8c0a990c27e4c07abae692e7fabdc5eb35d5482637f3b990f9af979f7711b844b324f63ca1998ecd59f31b859a0ab2de5e07be402473e616d10b2e043ef54198352127959acae410d206fb0659c45e918d683847fad1d184ac8cc843558b89bfe655e58163246ec8eab67f8fc89e8806ab415f1d37d027f5b69d3e733f972ce9fff135a0b34898c1ddbeeb74d0d03221c0ebe5fee1ebc1f06cc350b21cb9f498e838fcbb79a55298af62318bd2fc9f598bb56b7b09580c224c1908ae1d6089dfa184fb0bb3a6f6d9e43a9fa51cafb6cd16d65c58ab9ac03881a8ad659ce7d790975b719a76e070c9e200a3f2b669c8adcdd1ed42a6207fd0808344e2db65e047be4c8a6b871be234ae612430d210987dd91060c85012a432466bba10fff079820cfd7105f4eb49b253f97b71c3f3be97e015baa57183496282ba5604a44ca169f7cd35f8273471941bd5ad9384928937fdc7bc132941e843141d89d0a52962a2964774680e56fe883e022d821ad2ef237d37290829e6cfce4aad6a7af4cf025d4bfad90db346d9c0cbcc9eabcade44582e408a2846b82a2738a7358f230137dfa287cb619be12325dce8a144c28b93088c33893d0b07f4b94d986bf2966d973a691fb357992a7623e62eabb23d6317fa29d5a3f4427c6f9c80d96dab331e0cc05f9dee61c8f145a08a4187b31e19e8a14ccb411f037cf2ab9f3ba9d4547c3c69a13a7bbafec96fab6c034aa5b2e243282db902079277fb7c01416e7cacc41eb8f5698089a3b71a40c9f00f885f52f5268aeea5bb7bc0c09b80958ff6004340ff043895b026493f189b02da9480972c9c9f0872e4806539d78972626188ac0dbe901e25d880264aec5f2d633efe35b159b44f15ac4d24c462937f7bd08709190e8021dbc9b14636bd91ec74996ca35b94c4f6525d651bc50ef92374ff7c06b0eb426a5c3e5b998141008d3d0a79b8b23b0f0f69649527183d81ec0e447b4f927bd1b2e1c2b9b5e8d93dc8dc219a461b348bdccaf6c7f3f7373795842ec37d9ce344ced0ca56497cda31ec7eca0b56b9165280fa848cb00bd1dc0a9335d7c5c885df6d7b03891f326cc9f9906b27fbc1ecc03ed61d4cea43f6e8d6ee3caebb9f8e72722643b4df5d011a9613a349d1ea7e36a8d502953449b30f6c8681e6f9e2567b42275f7695911b107d80f899b102bd0ce95295d14b9f8c31e7ac73ed21a5485bec2ed2a57dccb44b8db08ef852d87c24c6de455c7de7f0630ff84dee908df337fe236b06f0e996eca6941d37c7cf16b80af7ca1f04705ca36a30c00095ecb756cb8357e67cbf2a8da98fbe69dc6a43f11db29fc1401da67b7b338fc35c9536729bcebac2590c8cadd2f4f4cca0b1f3cfec547b9291c5cb1f7617abe1ac2a84cce0bbaed9391f955dc8358b2a2ac2ca57050f46a80247493ab1ab8be984fd9db0d51cb745a7f962bc1fde482d3beab55d2aae9e68ae44b3a13f55b0eda17ff5b289a1afcc2e97ce69dc375b7051af51cf03204969ee3abd4053f21f74f2143c9dfd81a813d11112857d2f4d3972a5f89d833130872f5efe37ede9a41f1347f87e8bc374f2a5a1c540da0b296e98c7b91f8bd7b5764a0fcfabd6238d4f273f2dec3cc41d1fc703124c59382821a03c752b21ae621f4282df2cec79a6fdc2453eccb8b8f2f54536b038a8dc4a8d79a6419d6b6c84372d1a56b4dc66c50466b6e72edac2d66a012169fb6e95867a8bd9aca8ebb28a72b835c59f718652d3215e7a282d2d9343b053069ef9c5407b76716b6fb953fc5a85f5ecb951cf93b5d2f3b10b3d739ece3384ff8058068f37d77974d6dd47d15612fb2b70694a0b4cb3d7658acaa469c9558eb46950e83b8853924adf0778bace07e2a7d32a08cda00e0b7f4e64e074b4f28692da4068344d43300801c8142f849eb8b66b8b7a827c93e23ef69aba3fda5a5d8a74c9a0eebd29cc4770575be1ccd211533d17978b706c9a951fa6b5ba707c3a15f4e3888a259c43f4419c595eefe3f7f2bf588964e629ac40a5caf82507b608b65f5c15feb8b7e845b8ae5d2d795252536ebf0d4350c848d57c773392f005f370a8f3ecc086fcd5af9ed1e5cc94041b65cbb41e8741515462a2303c21f41580dbdc6cfca02d4aec001db3f339d0317328d9a426d36b441b1f488866002dea48b94558ca96fa472c73e8b4b5e471d62d642b40b243a26c505b1662fe241fbd5f4b3dc30a2bec39db259737d866408470c1a0059790598a40551abe9f557b3e8ad6aeac344dc4265435f9ab4d2cd8c92d30c07ea42c24628ce470293602ad0a1a23945ec0547f9934d825a270689560c363951c278c203e748e191ee52f79653d7e2ea293d6ff9fc3b13caf0b3f96d1a8c3f4c48e81e381c51cb0768a2a133178b6c081a6a2ea48c5d48b9232253146e64aa45221ccf85b77b96c4a25be20c01ca85b2f9f4e97e029274da707152a15848aaa0d8f651d88e502d9c864d98df08b70344b21477f9ee8a8d96c4784691940136de275fb1022caeca1f73b696ddd4c84842727193296d3e62a753f787543c4734c4ff74a083128b94ce236a02b9e8b1013b6c7c3c23646ce5a7f48b457d27f8ba3bbc3df86ebcf03326b671de05800720bc382d53e280a228123278fb137cadd662a8bd83295d9a072988664607a36fade6b395377bc0881ddfe96d1429eb9d22456a0b014b952dda189beb36745eeebd8c303eb4fb16f6ef3220e26e148768bf9525a59afed12220ae6fca755e487e23097529baa580ce3d22c5760b1608ca3df2be3387b91227ce2acc0b7fcd643b06a339b42e9f82a3ce9f66301f6a9de35b0b76316e3ea2c00da34f42001aa5f1c1251d865ef6b00989ace44207785d5dac6054e13d71ec782890c6d172fe4a30df9169857dea8f98d42c15ff01dcff441bfdec3ddd87c12a6d42955b6a2246ec40fa5b67273fbb74751a71f03ff75c1efbfe8043016d3fbb91149a260d75e131f56bac00fa9c053c65a13ee20b1354afab79c52df884bc39e12be4c90a752209031e521e58b8704d409dc7c6bd5a357471ad950b4e7161bb77f2a414eee74bd1a3551ea0ce4e51facb182aea26573bd5dd219ea5342a50ee0ec46b4ce83ee36c30eb9f09ed64ee8e50d9d3b48e97d5e8d15a112b6bdb324dd3d63b0d740c7b93a397d7791f9983147817fe4a63ab0132d63c6a9d57d07b0472807a48442caca52f5fc2cf3c4ff00251b1a6e6c3358cc2d9d5c18e4bea0bea720984108729a9974a6546815257d60faa27006041f81eb2990914915ac22e07cbafc1e6b3af9fb0bb82126e735e212e03734ddbb40941437fd495941256f57431663b1ee4a90c1ea269fe1d7d4fee14e707a56fad4c87152ca3d786f7812742fee7a6dfc8c5553d4b309c1b07260e036e03b04e671ca9d8d60cdb3da8479e8b4ce4381ce3a906f3024d50ea46241dfefce8903ea63e58e05ae2c351a2a9db16d5a4c31990993f38e3b68f9feb51ba518855cb90d39fcb372044eeeb8c64179e128385db0614a94c88c836fdd42cc9db0cdc944b7a4a61c36f7e44c868e3af7e0a5db69aef7d4806c2e9cff3ad3292ceff322d790c2b901d7ac496af640c71d1a281913247d467257111e525f64ba0d457dde552bd22a97615d11354b6e607d232c27b4ec6ecf5e83b5538ffbefede9298a643243d9b82ae4a94b3d4a4db2667b04035c5369d20a294056df3c5b7fd471e7b8dab5f11ad4368527a7c29204428cfc51f2f88c6cfd214aa5f701b56c84aa7090cc5919f1ed483b3792f584d4cea41b046b5a3b34ee8ae9729121fd8bf6fa57695e9643c3cacb16228296222472dc9f6cb7015a02f53461809011710e29d123323dd2f448c7ee8d0b5368ba0087060fd475857e3b59a1c14dd590ca1540d33b6b2d09de1dde7c1744710ba61a5be69ba3d82ee728547ca616c6b7d89fcf369ec80ec9f801d19b31cd6cb185e0b7220df2bb57aedc528adc012403330337035424873963255c7616e1517624e79c33e864493a9f3f7f27d407b09a3852975d1f747a10ea579e50bdfe57824e23d7ae3545c40c341d7b8901d547db828ebdc860ea9d8a8e36a6f358ef7c67350a1144d0450c6d8c1da10f86608f9ca6e25ed807fce97343601f804f9f23820e00e4e97334f584e7e977264b8232e38312f22b722944d5131f2d74a97ac27bfa9c69494444dfefecaff8f4b31852fe9593f05e5b0e4e4725d16edb743942cbd5cf9f750aae57d1c66025e88320a81e7af3ddddd4b0fb2edbd4b086db771ccee6d1bbbce1e1d6bf5014cef8ff8423429d27ac3d14e64afae71f0afde7ff50adb552ac6a1e1e71c343ad8b54fe1e4f7dad7aea8687b8f330eb6048b11223c20e543c789130f3f076d13ee59207ff850bc0b012263cc0d4bfef3c0851c45ff125519cc19fbfe73be8401b00eb1d84b47f3ee25749f57968bb289c414224449901ea4010053689e70f029120418276ee113d369f50457c30a4e16325ea8b8459248e10c5cf8ed0008c350c5166f03f41dbb1634729fc8e871fddf0709b4c3ccc2693e9c37b8ef7e171cc5e0fced9f090764f88699b8b217f102c0f69dfdccba6c6ea1a2b3952d394634038530a8a60631deb545f750b974d9fd67bb3acd62a001938e7dce31dce3d4f1f74d95e67875ea7d3e9743a9d0ee79c73ce3d2fe4bec339e79c732fecbec339e79c732fdc7c8773ce39e75ea8bfc339e79c732ff4f80ee79c73ce39dfe19c73ceb947ec845c1c37aebfc42081182e7845640cc810b2a24ac9b6632faa1a74908ebda85c2e58ad56abd56ab55aad56abd56ab55aad56abd56ab55aad56abd56ab55aad562bcb62612574004bb004cb6a6f86730bc016b0056c015bc016b0056c015bc016b0056c79bd58ced3056cc9b804698034401a2e00a879dbebdf5e3febf5310ad00afbd6120dd4c0fe32d529345db26179f3184f7a0cb64a51580d67fc03bdc8ed4440dfcdec66e76db3262e0aabaf48314ed5655f3f458adb373983407c5fad7f3bbaa1556b1f16d6aa9cbe84bf16a06a385fac84ce01a7cf8a5d6f58823d51d46e224b0158c3ce7f7118432d4b5553e00dcbca20cbc6fe6a13ac546ba5d683a3b5ba60fbb0b6769825cb940e55cbe8189b69977e6953d3e8164f712d702b2352c368187d8396e91aa69ee05edfa071d0309aa569748c86e118638c47a4c7559aa567b44b9b9a46c768183d22c18d0956d22c4b22729134cb6acdd22ccdd22ccdd2accab1e04c363339924371299353712eb89366611b582633b79aad662b8263d1b79a7a82fbad88cd065b0de782336d35a6f9b19d5c0b1c8a53712e38d356b39ddb699aa6699a2668a363b036c14a2372446e27693b2d264d8cb7733bb7733bb7733bb7b396655996b80666b19909b7b00bc630b8dc4e518d480b9989c42b7805c7c0353ac631b00cbc8261300b5e1995209cc9344dd3344d6cc305c76018cc82573089c92c725992cc64ea60a36913ac84432dd3344dd3344dd3344d934462d262129398c424262b8b25d2217ad94c04253a454c2227914b64627264632473511dd18c68462484484717cdd413dc8b8410a940342382227a895ca219d06563d2344dd334cded2ccbb22cbdd707ca87e903f5c1c2333d1aefa5592630914b243aadc8490445f412cd885c3c95f3dedf37224736462ea39811cc8865b4327a59125a0ab5423a42e6876a7a1d43ae904c25d550eb2b2d092de5bcf7f7fdffe6b336c14a98dc4ecddc9cd909b7733b459c5dcdc2e5fe3eefa5599a95996866792af35e9624cb7b7fdf3f8964f25e3c654778ea2bb79bbdd715b92cc965edeffb2791bc97c8e5bd40a78d029dc4f151a013e8f49576445a928bca7b7fdf3f89f49576045c618f22976b8b5c2297c8d53b1f6a59122b8a5414432dd0c98ed0ad6bb88f58a8a536bb9d1f47356cf7503b8e7e1cb9f43a628da318efc711cc881c95f47eee22d7085b01de6be1660ce950f9b03ac56b21f71d86338c2bb5387b64d0c992d052a5bf80ab4508b54240844cf021997ae23e8b6ec2b2ec4828f45ca8d509b546e468eb5ac73dbba72f81fc38aad1b35a80da4731b00f365f7f24e3c308f08dbe1f473023965e4764af21eda3957a82fbdc37e1167221214828325359b5c9cf2c4d97d2955fdbfcde4432919965979fcbb348a6caeaf52faab66aab97b20d0f86b76aedbd59866f86b1a6e5bc6979db38aeeb365cb7d968ede1c1d11e1ccede9c7736ef743c1ecffbf8001931e2fb4242c01ce67004f5fc2372389ae8012116c459e940136c1c6c7b527afa70ef401cdb5a1cddedae87c53ab8c3a66f758adc4dd8f4bb798c7bfbca3bc4680bc3362833ec16a2acf8d20ced675cd7b83bd19e7664067bd458d6c658994ef78b966e48bbed48ea6e5d6aafc7c8800ea555add5ddc7401eb67d1e76eb6a2a186c22b6bd19feabb22337e405bbbebd9cf90114776fd636612c56599a4cdb2c4b92a4a6595d2e92dca06b8f3695025ddd65bfc2d05df12b89242242427eed4d3e9b7305adb0bd3ed24bbfafa48af48ad47eceb2a8a9c0226631cbf99460dd5efb600a4ca03b42ce4d4becd7e7740836efe8559754fb09c17efd122b9e745bf1063abac334efc92da9b9ea12bbad2eb95b49863176d2335d82b1922c8ed6d5713e9f11ecd72721fbfb2658094585a5af221345ec4f54ee6351c5b642db2ab1e2273f02b4c79fb5dfd45ab2d696eebdb7543fcbb22c2b558c31c6b854434dd3344dd34a38047bd8a34db95c95aca4699625355113c6027bd8e336c9a5fa1da75245aa31fe124d3ce998d6b0f829c122d64b26586947bf56b42d3b42ff247bc0ad1b15e0c08103475531e9a0010c55661162aba4a8c0405568b074305880c142690a8d18d62bc5654a39532f505a6b0f8f172c2fc8fdc2c5870ecc01c60c0c178c18183a7c58a534a51c82d2105aeb8b9a17314081550100416c800515322fd0f8a194330cf4bc421059a339e79c737e79e143e73af60243042ce8b61b353466c8c10d261c2910504941c92165054cca89032911c09aa6a5b0e89aa6bda45c20057547ae5edf9636e56a9db4566befcdecbd5986b19661ac69396b396f1bc775d80b63659af3c6715db7d9e86eb3d17ab3d11e26115eb22a695694f96295ad92b25013556599e69cedcdb2c8d9f9b11c8e9fdabad671cfee07d343db77eddf0afba0037400f6eb7fe5577e65f9c9f4cfa5f3955f8d7a42bb56fbf03c1deed980505e8d67da4c7fa43e4c1f27fd81fa60e19d5fc96980503cc561b866792f8fc6a3f186f06aba47534f70ef0de111e1d17cb0f04c8fa6f3b96816c8c66a13ace4bdbc97f7da4ebec25536c39cc5597889b90bafc149efa567740d26b90bee82b7e02b9dbba827b8e72df80bdc05afc155dc05c69ecf332f4f618c31b698244992e4299ee2299ee2299ee2a91f143e287c506800f6285809f7946d98006160c204280311d0bc5744c4c3da7a036b690e6b6dd83952a02188ad65d720e36461d3c082f2030d34faf826ce0eabf9041b77ec45c60d5d46096436192e9c20a3450a326440c9c8c00a9afb6d4f0b818cb28ffbb10b5705bd3deb5ddd68586731969554570eae5ebffb8fdb745955d9beeb18b65176a692e867db7759b8f5cf5a6bb9eeb23121275ad68d3d6a288db5f0b6b82db4d4755fd0c2a5043c54805cc16aef8ebd9035c06185075cb06c908ebdc4a8818c71a3efdc9a80dd3158a0427d12dd31627002fd183a482ff2220302314e2d8891001d23c9a56b6f080952481a445ec81569c3f7d9d39ed75a9ad50b0e516bb527d841e5060c2a32bb632f2a3ab60e6c151a27a87020c36041050a83e5b4f38b0aaa8ffb5ff8bca0c18d22646c90d1a2a4c1d0b5195262d840ecaecc3c6c1f360c163f6c1db6c6ea61cbec116cd57ee192c28b1b68a0007fc7a19c6a3f21645fbf24fbfa27dddea75f729f7a18c03ef6279dba8060f63570873d6a2c169583d244cea9d3b221ed1a4c25552d64554bb12cd3348ff1a46bac4aaadfef8f368673320125b1396c4c25e18005a3c56839ae0551e1d0cd748c71ce4ac899e21230c7ce8fbfd36e0b1de367d1f16f704771572beeacb5b8bbf75edc7d966559863b8c31c61877df699b2dd45436f57261964a9ea64b19d3317e4d8ba00cc69d4a2762add5f16b58fb84b0bdf625db3d6575abdd4a87898ca08addefeee6b3cf423e33916559863f15d809b8a78e80ecb36fbbaa7bb2245ec7e3a9466a4390886d37e288d0e39d2c491db7ed9c54591662a54ff8b1fff99312187eec83fea41b5153499fa9926a48484b981e717a6ce741a89e19cfab92382df09e2c49ad22a0a8c0ec887e151e4e47977884c048a4fa1d6de211021ba9cf01021bb176a3ed8ee6fcfe8e06adb03def999129f1d0889c8ea723725ada849640dd533de20c3f23843ce849087910f8216f451240a093f3093d2e3b5241b80fdbfed89da00f79106acb9280be3e3ded48f5784e8c2509f9fa9c9625f97cd523c431f70f441cedab8f5d77665fb3ff10cfec3be2a9ea152466cfc3d1f3ea75ec4e8fabd7068cddd89d1ef3ec293efc159b3ac6ff09f183216647726847a8a510fc5a78eaf83f16d8590f794c079365a884920fa790d508040000090317000020140c8a44a2344d71200be4dc0114800a587c46686c3a164b2461418a032186a58c210418400c208400420c333366880066007e784c7517611974ba0c064e8745b0699d76e2c2b0c2ea0803e9e6deeefda1a58f0d765cb8903cc447173c08dd01220eaf3d0c5cc6c291f6b7a21bd7f8c7f793de9fe0aae1577e59f92a5229d76039567105a4f7eea692ce3dcd7fa4f12e6118363967693a6c4a104cf2a48a748c509e2a24f5a763277b8b6498f254413636b6dbd4595d9b2d47297f66756148c1403f66a11e18c72527e24dc43a8f030344b8ff339ebdea20d9266d1a0642008052be7594676899802833716cfe872a99182eb06ace18f829fbf89d812ea492c3f632f56f6b63ee5bfc2bf7da62f7391f3f687a371c21730da127fad2ff0d82dea74ceb320602817bd79fbe4af14dd098a83f406d47e1079f4b073fb074c490e0277c33d98a1d31c110a10af79dd3bac2d241b2101777c79e50328174f6bd08dd4d80d46abfa3df9e1340fe10781877aa0f3c49bb624eff3d43239e3ee0a44e569608c655167f2b2b9a0e5cc82c0a092c0342042c8f6e14329c12503076a831479d63b3a7bfb1b881fc14452d1480a2b663115661e9978f45d787c55085412e03fb8cd3b9870011234813741593fdfd8c98211d0c47204fc054353e40efef49de2afebbca41ae865e573f9907a4fd3c56b232c8befffb4a454a137378cee77a5c951d048271f26127039ad48323ef11109a7ca3e8be9b53e944fdd3978dd7bcb0368a459a39cbe905fc7e37d94a1adca4d89335dff697eea2ea6d1f8e456b3be3b1231819f60637458d3b893fee81beb9672fdc46b2eb2874b7c34fbfcfa2bf0cfd8b9e830618ba1cffc3c4135b6d6024b3c0a078cf2a5e16528aab0db240c46d5984db4fca7e4c70443302ef0fca7e59a28c11eab3f48ef826d9c17a0f9083b91881865675b05a61f95f2d9a00546e7aeb590775d730e5ccbdea7ccea9aff53f8e1671c42afac87e2e5f50e152266f4f60511714a573103704cd29aa2ab693e6119e67a0a2f7bf75e313b45171936d9af940ceb81c0b942f98e3a7b15c45433653701a89491205179f5c7f882231f1398091b7fc78ce3d234160a2ce4db6c950b65c0dd89ee99a192200cd0263032220c71fc0b077e11f6f7d510ce3be949e8a7d6069abe067d30bc2ee4c6f5780534e6f580fbd5fc70abce02346fe7c4a6c083a17994e434ca0cae53256e372bdeed4cd7d6dbbdeaf6355414099deb10669d24437f493b2a6918f03e36f03941449b6613bb153603d365e43807a8fc58290c5b541b0b3839409d0dbd2a429e9f305308de5fe8c0ffbd486f9ff75738012c27464a4375b053ad3396256fb0d13701ce0ca2bd008e743bd0517d01b8051e74f83a6e2ae968dc163b19761d529442ed5933b56e5c390fc58967e70ab3c6e4ffdb1e47ef477c3c48fd5be538377d93af0768c8f02b1a5bea9ee76269e14650b2c835a1770e617b33ae64220ebc3521b75de02721168dc7e08bc313543dd55b549f543cae63c3e873d8611a6bb74103e93f3645d9e1abc554fd6930360653e1169d0657db418b460fd4dee8dd7faaf2e5c4206ac9afbd1558847573eeea7d54dd5f3be92bf564588b013d060a8fa2527bc2bac8c17e837ee9dc097c2918172ff76404726a0942397cc53f3651856f04835a0a99a47aa905d44d34f799e6ffc4ba0377f7dbe751b72dcb9a108528f6541a08fda1cb35d912720d22d982728d2f2c980a8fe52a084535b2e71b73232b742aa1a191f7c9e07dbd6671c7a20ad3a0fc8d814b4f9c198ebc294230f429d0a9f44ab265794aeb5184bb453d4819b2d2810bbfb88021e0de71fafa320c917dbfc0b819e04399e0405f23af188266322f43ed0f22b6d1d923cbd74eb71fb48ba7d6118a4ff71c847586a10f48ef6f7dd9a9c0e9af3967c4ccd305fe0c0223f1699537d52a24ce6cd18f0aa8422f2ea3743a17ec515dab3ae9de757bab92a8b496b33fae0651616a60ae912f2ff1e6df0b6c99db3ef4b5841946f2dd612e8f9c8d8f6849b39a8ce9443f1a55903a095e2f28dee8b5c3606885ecee1f6b42cddb1aa00579c24908cd6c667d697d1fd4a4007a7bd2fa778af1cbf4ab493ecb1f8c254426f47f4043722fa8c16dd3dadfb009b9e9688ad6b8ea972e7d5b8ac5a60d15e9e009aca3a1903c05731516d919575e8abd84d0d9463e590ce924bbca6368558b93fd20e1192824c857eaf925e3b349d725b124c9d4cade25100029b9b438a1bb8d43c4afc2454b3c7fcf3a89f38c7596a4817496b7bf4d99033daf7f4452e8a2bb53a25adbe59fd55fe47d870af403416cab3d8a3f06e15aa93f678fceba63ed0b724a5fa70fff5a80be8eb498a869d549f4c1ea979e44f6a1810651feb7f5990321bcbc446e21aa586029d8d57117d474d9c83585d0470351964f1d0d91abeb817a2d0c97e92b404d73626cc77761ea8634f181f9b20e32fde107bc6d7b33f1b9cc8ed02e7394702173fe5916a75632a3c14c160a21707c003e98196897ec71167111567aa9999137840d401d09c80f0e0872550465a4b548c689f18772175e4363795207c7371f86ba23d342f1ce4d681c948a92a62034cf92699189d9151b2a6067bc5475d8d938bfd0ce07f170db5127dcda20d730c645d3861fcc067c8c513135cdc821f99c5bdf812ccd21364a6a7422fcc981f8ee96d3be5e02101d3b437e965fd66d63870d4b71b6e85c8e44c92d2016661fe54d6e32ab1c9ef72311b1904e49b45c779f2d37aba242bb79f589f9f6011f22e891bdf7f886a2b90e07349b8b115b03c64ddd13bf3a6766a717d48b688935ad664919b1a948b567b58bbdc161cae50ec9248e5f5c793580e60fbfc70329fa34db4d49c21b66558c3ac5e281350ed56043e49b93888cdf0d2b312bc01d5a01bfd6d1a7336ef9044ded1738842cf3405b44a6efff49520f2d2fecb6849435a755bd061bcf976879b5d6f556429a5650280d9d762289ec6286f43fc0d24742305bf2ac854790790e8870bee3d2808435988962b43c7fe54c083823df9d2ea077a2d021afee0db8e4e6dc7bc325c5fedc19d48452ba3792418c6fd2a9062d4cd174005d84f293d9c853be7b7cadef9d527428b93a5b1f1fedc128f8a93ced5687a78548de2a885e38a6abe516720aa7cbb7452364de0292ab789876667f8ae0fecb1d696e52991bb42fba12b9e3be5b54f1be5e5f844329c31c206f7a0c633067fb8783367b113a833f2f1e9e94349aada59421d23348b563e8791d998ec19bceb951a855b6e88f75830eb71f94cfeaecec423a2467dc21a1d767a7ea5a59698f5a42f8ae5cab2daf935b6a4bbc760690519eb5bce8a2ec36dea388cd425a09714cd808d3a4708e1a1a6c626cf6902e62c15dae0177550564ff2786dde4621c1e343c966a7889536766d617f081fa397f67a184a3a52cc8427167e9e3d074145b10bbe0874b069b115ac2c074389201140ac706c2bbefcb66867177c1a3587cb55ea86a084c7279388f002f2e8dd698980bec00d4106dadb44b3d0d0611635d88e6b11353b9a9953509a654d012847358d51854237fd9725cd76b78fda0344b4d9225e0ec40bab7fcdab967a2431b88b51df646d2966800f21a0c104d607335152650c9083249d3f5dc3ad0a5fbc0d51882f609a274ead3593e04331da394c611be0e750c5504ba21710787f62969e8a0260f2bd50c45c16d132dd1142181423037916e5400c06686ecf770f61cb2be779a9505db69f2bb275376e35ccb91dd61a01b8731b61e0234ea86289e6aafaf237e41aa576cbea7f7df68a74b5b224d3a7a8187b8eeddb294e8a079f6f8a7bccf7a1efb6d2bc6af1177e1bbe60050651a236f49aed685d3bf53272cd32266653777ff1026e48931bfe37c3ca1422936f995aa9b3a5cf0ca3190efbd5738d9d360abd6b5a5fe53e8f1b7a5a71b708bc0f37364d814c114c374feb60dc3795516309dcc2252cfa16ff2635b52416b0e4e286ffba51baf0cc7a6ffba642d53fe1f67cb809ae5abe97de3b059e56336498ec40540328ebb65932c6089cde3cb3075305e4e7f405cf232b911d2efbc1aa3d3f52fede1d5e49e3f923caecde153596fff93a8dd666f9d3fbb7a6e6bd359466d7ff267953ed4af8048f4032d120244866b337d341a14d817d2e44f63bd01409d988344e94d101c2199d1cf950ede2c1ea4ff5603f0d84d2d4c0dab18ed2a0dbbc1ffd4a2f82ce258dd6c6454e2a2354f9884500ac6aff962d6a2591aee8ed29790225af68443b4ccc7fff9e384b20f671e8b699f542150c7b6680e2100283461c580fb45315d6a057d195ea7c479eb9483a7db8bcf2079f4c1c9889e9a5c71050537b58b71c1c9ba7d327a7f534b51e612ffc67a146b4f1a8f88aac7ddec41944ba5ccbf978951c472a967c7f0749c4a6dd6957c5dbad9934d5de4ffeb20a87dd0ad74fad619aed8819d0bf68faa9c87720bd86aa89e5a882642e435f9064f0cae61486ae438b7dea7703aa764f4283c70dd86dbeaa7584607acc91c9311e1e30147b931c8099e60b6797d309bc018af10410228cfd7487807af51a6b33a0ddf3c2f50a7d5fd4f09e8026ba13d147baa7b2c5d8ceac4233df0704000156718d3526d9300fa83a8b1ebe298f2ea8dcbe636079a9423c2faf09f8137b9a4648b3a8a904516945840ff05fb52f84585a2ac1f6d7f2978c6333e20d5a13ae184204fef2740a500ca209a105236f362804f7c00a725c617b2a1a8b02f436c56db60d5623de98d30c01375fc47beb6cc2e6e40c757413d74673335656b01e3af3b4317fadcd21b2d96ae9c3d970af339c9871e4d4aaaebfeba0553c04f654ee6130472f12f44d3628edc693e1686ed2be8c403fff052ee2486e3f1fcdf77453aa6d039487f62d51173f4ece69fd1cdd99b9373687afb9be748dc290b887eddc54e6ad6a538485626e5ae8488cca3ffa0eab91a0e460971948146df6ffb6193c9ab16b7b74a1ce65f69e988bb0127bf84ff640c6bd6969cdc13ad0bb847a6854c4ef95a7aafde4771d856c99cec2e56b62d8ff1277985ca855729efcf9806b373937955fc4d1c067915ab6a95894e65327991cd5160f27110fd348b6ec9117e1b4a9854836ae1b68568ecf37a50f3d964dfc28a4ff2625b5803fc256ede106a6d277a0bc02394d6bba50003475efd1d0f9719e85a8c794a6ef9b7fb8f2ab20fc82a2c4a315a611cdec9d9445829417df117548a1a0d7ce53c4167373f95f1071dddfb1144265a19cdaa558d9f453c144957e050b81b2ac1c0dd7438c94324c49ea0e084446a4a338e0e6b23069276adbee6ee4169f2a2fcaa53b557160956ff4dfa51b87575428b0d26630813e40114743771b551230feb9ee8efa2d33f92a7523cb6f97e110662c9f7fb5dd324a7a43201557bb88ccb8eb50cbb6228a0bb1633d55bb46c7847d028bf57a2044fe4c009c3bd92e8667d81f8e8a87276b5d387aae601eb801136d874031618fbe1d80d05e62846cbfd1d721aa0b9d09fba64462842887917915b9455a7d16dd3a04b846a538b04129099c4cba969b0b3aad283e3366338a710e7b29011ae1b453db6492f8cff5120fc0bb565941529c6b3e9025d73c0f09e73c426c09dc8cea5b540c409ad1d8e14e0faf0985333c4e37977fae3c8c16c3d28772c5b8e8cc9b1523b0ec6f816d6402d7aa0114591d2e0d15016677c8f92dbdc4bca277a3ea5a4d8df9b53d5cc86561c58943a035b8c0f048add10b8d0493204d44e147905203e8d44e1a05e205d795c7862a0f51413b0ef0214db83c2a0ebca44e089e3ade0500e6d73739e4e14062099bf7ab38452735ba1739344501c9739b3fd58d25cec5b93a54d904be303f4b4b5ce282dca203a8225d468d38aaf89b2e6aebcca2270949b35ecf07a12d8d95b0f6ed5ca877db5b311ad46b92d43e187efdd0157faada38dc9e360f70f6060b793a0dee2d81e6b6cd6bec2278daa62f9a535b7cfc39a7dafdfe46dab0becc67f0fe0ef1f889bc7b17a5e2e684dfc95a31a281ff229f861052d0e9e0325bac72004ac8ed286e951b0749042b07db8a6defc38b84337192843af37d2d1bcddc3d367e6525ed387a311ff5e5e151292f84f631c1ecc4e49bd6cca8e05390684e19164d67a789ca7b4e3bb9ee33517b7ff9e42b24872525fe13bdc79a01a497d4eeeb9a6ee337e74418ed960c897834352bc4875399818baf66d90ca5a122d151686af6ea931f35ac7620485025deb7d151b3a739f04a9b1b25101d79fe8a1e828cd65b69930b4cbbfca73e89f36cd5a12a0dd106e0ba8084454aa1ffee3fb3ae3a31583beded2b5b82b6b7ff489a972b119acf1da27a66d1f9df1c22123a1eed3ed44bc8fdc534d26b8a3aaa8a9f5a053d21006d4c6ea8d1601ce32a633809e1b5cda4734e0842c82d3aacc5fd0fd0d124f048d3cef3a3d72d478936b92be78e9988068e4f2315e832053d077831048eff359fab889c527985e514faf6c79ed42a71a3be6e22b79ac79525ab88e85a290cf427821364aa9447718a90d8eefc67012a98f5623a39f6b31b3ad3442afa386017393b3511998ea1f95623e24871872d676526dfccb6ba56bfcfeda354feb26415f48913e9fa7c388c6f8e799250cf8962c78319ed8066b8d907f6d59f1dda4acce8979f633233b76fbe7f4a5d42a78c085a2ae079cd3b5a42160011a0e9f8b190691e2612101c074f0502f81b8a40eac124a00b0ddf11a4295094c3b0236c5d4a107f49944f3b4a6db816a202b563150b2b1d6a573bfe44880443b9b1a32483bb7c326495aa7f6055c32818afe03ea3a21daf5ccc935e4034d1fa78a955f076047a63f6860cb5c812898c31b323a0584dba3cf14856be23c072ec6f000793d04caea3d28f30358e933e6e62c7da4e5d2a629da62e61059f767c845e54380651ddf6d3cece02bdc3e49819bb30532bbc713dbd418b13117a0314768047b6a02827bb377a87fb0a5dd5c66ed089f3df6da871f05881c703abe5d42a1ee520166463a935dad2ecaf0dd924cf2f2b2bb39cbccfbaa2b6970ca5d8cfb8c25948c4f30cc86b7d6d7128d6a382b21f14d0fe44a9eb3e48b0b670734b83a6c4a75467dd8ce6323742440b6c85569c53d0aef4c006f55a116e942adca2651823e450d40b7124c10e31e35ba8976e9639762c8e2e4e5cadf8225e3500688632876daeec15c7665c65f01c3e09d9395b05498553511f150650c0a8f04d68a2c26cff801e46c086b30d69dc36642f85313b08cd90f3c3d749f75fd7c202da1f12a22cdd4f58f7e866b4ffa42a6a00f5d05e4aa96bfd7329dacf96fcc1a49c95372da01f5db47fb6144d925f4d21e6cfc65edab3bec425d56b519208b9785953d2bed646df8d6790a4b3a218a94bfbf7e24cc6e6ac852dad15c120f6cd208f22d54d76e0946ec15611daec42d3031685b778ecd140f1d4807f7b8e2f81334da96c649c69efb05a05dba113372d5f78378ac0565f4e34af36616379d223df8958088a67d46c8c22623480967e92edd940d14a89b91ababcee412c22caec5c0d9a2097fbcd3596ed1f7838ac5ae65ab57d0fe248f5d2a0f0a7c3957b481c85e46016354597c306025fcaad52aaed53205abcfbfc5389141fc76a0808d10a114d1c1de08960388c1129cff6c58dbc6c1a94c743e0a13b79cdcff51bd6012506a592336d4716cee31b8caefd571adc151acdb80d3c5a75c5560c89a2332cd56af8cab921149ec3d4ac2c6d038c9f6840e00137596898eccca9600f0072895c32a696f2ca9b655f5dcc19ccf101b74ca5a5d06451a14b6205970d1620212da47cb9f0480c8d06351141da3f868d229dd4c2c07aed94404fe4d305ea770fedb8501a84e63252d58b6b0330c2fe1e46ec41c39420ad03ea51ec45e661d2b0d76087c1b1ea11318ae2b19961d97230bae12f9c7a18af21c8686cfdc5cc752450ffa6ba2d99758d8e287efbf6db887cd48771807072206752404216a30462dfbca50f93cf953508c4a8878adff66102738ecb1af73dcc2e9a495543c187c154a3460080c05ae55ad3d8d0c3c097fc09f0a91181f0b363cbc334bdc443aa9de84d34f2f255d31fc6a68d8e1be52093b44e3092ff30f9ff66323a331578a9ad1c6678f7833a1a143bd9641ebc797655841c2943edfceb67021a78d2d64b33f8f9308f2360e7ae5b47dc39e7a15d0c83919a196066b90aceb141d06847bca0557351860225a26d339d957bc49c8006935a15d64e64db9be1889770517d341146663677e48881f461b02e32ef54c4783a0ec95f0d10478a5db4ed99fb91c5721d6c8fd71847a9fda44d55e8132366d6fa5bfe06409e5b6796843d7b4a00b4a784a13d5969206c9eb3d1f8d31056f054582a6f0d9be70021145ae5d08be90e1e78e20041c8f039778d5b3ae5c6521dcfe1665bc9995c8c2e77655e2ab38a765b66313b265b4a10bd800a8a4bb154a9bfdbcf7e75a1818e8f26095c1a11e9343b1941da0e9c3e6882c0394c6481fc17020a2880e021c8f11cae94c0c069a408a713421c93d6384820e42479ca71a40b280efc4b8a1d41b99acf55fdd4c8d226b67941fd66a721738bbd574e8bb2f71fd17a4cf37c31b2e79bb6c170ebe4289ceef7fbec9342e58885f41b0b6e242669c9707e7b7e424d9cac11453cbb4bd6735deb989cd5008e8e8d45e6f643f4ee8266333fc0df6fe9d3e892008e83ea2373f995262bcbbc27e1bb95eb91f0d7ab80ef875f80dedd4543241090bae8ba56d10597ac92173a1128ee43f1e6056ef25d49cedddd5697b2dd9378cd2ee17f07a7dd1226bcfda86cc9425f8c945e5d74d0976c5428804ba66873cb0d858af242ac8c0eba6462953849f70c18c5945a157350d960b9d2803f510d16695e4c15cf92b5680907244b0eb77c9336d0956e07bc41c590c027ad522a91cd4bf6701d76e30abba2a8f96305a98566abc5435dca5a16aadc489b3a3759a0532a350215440ec5cc1b744d16043246ca17f510abd4eefc14a086592fa44b282fb6a1fc3599e51d2b8c9d536b322ee95d81c6d074db8872a4b947dbfd137f199a51e6eef5f4ed90ba5532b95a7bc42633b510b8b901d957255819b6e483034c3c17cca4c7009bb0cffd70c62da1aba244b6e996aeb5feae0884c23833d3bce96c804f00430470352499c7098c4c300cbf019c9658f00ca23adad68d47dd7b2f6bc9abd1012b6532b58aaa23bea12b9f8a8aea983f37f7c71f7eff1d0b19bf61a6e022e7e7c34bca56e6f70aab26d7838788a733fdd438d21d155e9774d9ae21eabb864cbc6a1b1c37b8f4f45a0908dbcc440faa1561135fa6849de62ece2a8d24e357c9595f2665c79c243241c9638eb6d18bf5a1b0ce0bc37b250e736f210604965892473147f21ee4e00f800a1d24a816132edd6a8fda11eb1f1b4dbc7f95f330a15874e328cb7629f85e154cd808efdf4c3c8c5d563a4edba0571399ee3783e9835ef164faae986fed582036d85d96accdcb23b6eb8f5ad4a31e3570ce5401fe8b574cf134980ba19467fdcbe2087ae682bd42c6fd4e6b4fe325ff3221df3d77426d4797d03b87af249739165f1b7e9bd1e8c7320ec512e26117be6006ddaf5397e9364e185662a0ffdbb865c6099338338a4ac95636d1c793cd4b0e95b94c1ba7646066b10dbafa0ac28bf36edea55cbcafa552de83cbb49c45838d12ced73adb7a9916c1c253c3e6e26542bd15502d250a85f6a9f9fd9fddec7641e1fe9d057149b7c742488dcb0cbc1829bd68d148eb6451ab005ea6129bab1b2835956f2931facd654a27719232f3653cd3b601c6367206f7bf820de54a7ac26778fd005f66e0b0e0ddd9f65e870e1d992ab5b4f5f2823f5de64307306ef75c05af9d7f4167db904f69ed6499794882af5a1975841cde4402cd8e92aa98998120f3a4bca71773a4eed06fa195dbe10e1d95f78d0dbd72665ae911e101393595995c1823f695c682a7460eeae6c47c2ba85c2c9fd9695b32fa561384b42333c955f178d3c00f50ffaf39366b6f582d008e4781c2e99900d93e0398cc9e26ba01e5b87f3cb4c015a0a018068bdc7433cb6101be10956f17336166e6ff02d459530e1465d8ff13061852782cc9fe966e0313a5831ff191d48639047176273fdafac37b259873211bdbee6c56b2d408109ab066cd57d18b2eea0b1c3331c409a3c522e8874cc14ca69abe444b142508282001a8cb7959f8d9d8694541b25e2bd9092c6d7fe4a1bfa4d424679b536c4332619e4bdfb048d005d0c525e134be85bcf9a5a83c96bfce69ac0d67c44e90fc8c89a5447bcc08a69b78128c4347542a12a659289fbe5c18ed8c7731f4139e5012e8909760477cda9cd27a43b6512e7d0a76667c53176892062bb78b41c7cb0f353274de6c838319e81dd3b96bb02124bbc528702112a9f6c30e117eca70b33604c9ff1080c7fc0dc3086c902368f9cc26f1983f99351916e0d849bdc147db16770a36d43f12a71bc01a7910f6af0a1defaab565327476bbeda4da6d0d510522563d7daff289ad2fd479bfee1d9527a8b45df13734ee5766ea3f7948cd8b8bd29ac04640b6ea3a8849ed55db558dce01c28cf1d9995a4451063c6b8ad740556a62f1a572182ced5b6810bd1f78f52492f5fc547baa3815daf61267ac401c17e60c9a2c4e6347baeeb7b46adf633787cd72e9243ba7915d1e0a5698c03de52f04095a640f894579ba82f57b64e125880698e3065d947a06c98c810f5055a6b6818368d4f6e31c79fc20a74bdfa9404cb34b81009ff3ec061bcd39350af7b31d6ad31ceacb3f596959701e8da996ba8441a1cae893d88902a45ca6e32d59b4a8f92b7c5a5ec75efa2c37884bca705692b7dce05d3912e7e8ffaac479ab20055297cdcc7850c7344846d48d8bf602eca01dbbe584b7a1320c05cee29fe2031fafc1078b03b741dea78404baf229b16b50ec5666d73f9c1037ec7740d55fb78cb9d5a5a8bc3266fdf25609bd9427db0a74d51db3cdcbaec723c0746dadd25d78776f0b1b78d8fc4e10c5bb797344344a8894ee0398b2be0de20872e8ea82897b2f4dd27aa32ac2dd7ebd58c5b75c338fe48b61476d4152fa98093e7a72b5a3f310c93144ee91af439bcf391519c69b23b1c9a7621e9f0bc7f3a64d7fe768b8313c68deec25865e23e9c243f5949e49e3ad070d2b740a2d1b553ccb60245c4b2730f5ed232e2349a353f0701315d1b7c0d04f01f718c16ea8287c11e7818eb3b4958409cd261ff5a6e035a00dcb21c74974f0efee772a930b308bd0b715f65d708d6744711b6e4d33b6ff2e4ac4eed260f0fab11c58d4fef72b3eb7a90c2fd806b813136a3ae545020d67980271d98028b33a8021d2c19aa02441063fdb329bff03e4c1540f7cd805f5a739fbb5436eded1a7d4d5164b2c7950fb85f26ac95f3f02df06672bed334dfecd8a3dab7aaf8a86b3d924c4fca336236b1daf65cef58822f59a1e2239f7dad7935941329d00db854d408387e479cdbd91c8a1611416b9b7c4e4ebc3b586f6265a4577b937cfb149a2138df4b16c33ece82bcc56afa85097c99231b34c1b86e7010262b6f1ed3cfd122bf0e1d73ec481036ed60787be1bd34c54f841bb533caabb320bb3757948ec75242bb7d3889fc6bc31bc408bfae9d4db63640e5e6d6314160e70623420c12b78ceee0f12947964983f6f2c84582d9a416192f9d246d6e4922b5136cbfcb20f8277e2921d16185c20243ade0748ba2515c759ecf96431b5da927d2a480820d46b49489058c3d104c7b12c79de8e06ba3df6d51f05c306cde7dd19f2e54892cb4dcdaf44954eb1e385f874215833f7a07b90d8c8dde991ebefe609f6c4ce7787886ba30f3760805f49a0298dcaecac8325b670e0771aa04c675bc9bb0a4e20ccdd0d45c392b3d88b4fe703ef6ea6091f693f29f626d6df2a39afe771a2c7ad9fe41f421d683fc8bca17c5c9f59f06d1df3c16c1d9bc17b2c0fa764295525453895b8d0f803993b71b289474231007ffca825041b21a8a131b697b19e1f650a7be264138f8462007e72764b8b36425043636c2f637d3fca14f6c4c9261e09c500fcd0fd96166d848086ded85ec2bab71f180b45a78a6c449111581f0454230a438c78908453fb532d36de7fca802050475143386a3fbb7a8e2b2a54fcb2d9cfe0e7bf9e93d10c32fc9a8a6bcb13666227bf53a22b013248010fe43a2d1e9ad8930434aa6d1e01c87f4702ec3e8a0aad33fa7f1b0c17ee77a845db4773cfda7538ff825a82094ceb8325b4b6163670cd34a81990ebe6dc609f09ec6ff0a71d70f21983970292c8d7dbcbb8d447fa47d02895eb26103bea161a9063620113dd5085f6ae10cb0de67021f5bdb528215283da429f4f79bd7a7e37af30f998b4a0c989900a6f2b91342a06cd2f8c0cf312df37ad8171e8334ee1d3c2c3b00c90dba4dd1077c798fa9870fd548da46cbe119e0b70bd06301ff1b930fd4b8161978e5bcafd696cf4aba1aa7d6029bcf95e1e05e26de86f38ea332cea8e2beb4e5eae79836c5da18e89bdcd45db1ac20994e19ef5e661b40f0aa10b5d9c205d41f0f2870bb126a6c5c17a91a1e3f7ae1ea9aca1651620244eb44061f9ae98976979d414ae1014d880713b9d776e8844af7a1965eab7cba8323e24db32fb00205a7af1c271e15adfde3ef9034bbeefba7f506da9819a6aa0aad9c5aa4cc58ea12f2559ff025de09d0ac0089d0bb2a06c53bc1d718e5f334e3abf188077ad5eaf25f77eba8f583c1a1b9ce00f8f8a13971d917d49ad8155fdde9dbcc9517dd07c9f20c6cc17ce692f97029be8656740689f692d7d3a35b0788b90885217250a4d1785d0ed2095a12f7e3d74015cc65758006e07a90ad4572b936ae059c4017aa47f9905da9cb0eab044db500db41e3e3ea8db6290293c8ca7735cd92f59e860a68c64ef67c947bf71abdd8bf9a1e1b48b85ba704d5717ca64d785fad885501d853c58af13fbcb42dc063e600b42b91c5cc31116a702015b87850a2c878e55e90276aab1309013bcf65200fd4822ece05351e982e48a81be04fac5b02737fcb3509db9a7de645fabaa09ca29d68648f1073287b8ca5b1dc138706f117ff08d924331fc1764b319470ce5bf32b3a6399733f54b4bc38cc15c421b423ef86c08f74bee89b402107b757766b99c01bdd4581fe3731e80a25ba2fb4672fc56ea5e81778626b8613c5e5bc694883d036e1f9ce8b6514c2a499fed0da00dd828c67527298371dc1b400b30a318eb4e528632bb06c6c45857a2db8cd470a306bad23df12da3c996372d17457cc6183ef93de3c764109b3aee410a0a5bfbaec4811082900c6243dc8cb81e6886c7d7a3a61add8d22e5390339ea1bff0272ae8e2278088398826310fedf43b3d18e0551f80b20e72212acc32e8a8b5f4010211c5d4c4ae1a25e446c17411cb688d4663ecb7f298290335a4e4510871713d99e7bd65b0c28a89f2e71c2fe86f3791ac2be9568d553a46704e4d19b9559c1e20c11401b159340d074ffba0a80c6fe638c02311a8f17f83d52b18a624217bf073cc6e44e817a40d0b72b065a32e1ada7c0b59b0e04fea31d02889b04c16d285e95c0f4703c7570589d34f538d4dee7c86727028b15a3a8dde4ead84cbd444ba419f5ecfb4758f234bad01649daec680885dcd2bd040f85fb7e0b3a60dd07563fbdc864f9121c135dce0fb1f4e91a7e93cca4f15238ad4124298b1982c6921b51caada960bb7f13125ade7b7b42d7cca608fb9d9c61debfdb27225be634d5cca608fb9ddc013bce44862b48d86e6e8c59ef4c813a3e2a52a8b139372262ca7ddee3c5a1de5a2d2531713a91e8c8cd5b5906baf6fba4b71cef43a0e88f6d942783923a4d1e174fe200ea998d6f331e37ab3cab680a77cae3bc6435e771e56ba4c7cd14588f5b05ee596c1c25fcbcd890bbff69d0cbd32cc876af6cb2670c8ea6e6a37bdd21374141eeb9f9ebdd0bb21b89cb0af13fc690432ee0fb41f662854823c4cd7321b7011271525256d45af5140336d2c10c26a06095ee41fe41039b682d55c4e08c392d3b817ef82421a29c926672d5ed01633a50b19d28e746826cbdf5292780f18a98aeb5de8afc5589b61abdcedb7d67b8e5f6aef78dd3e6fe6940f166dd4e6c65b7e70693e29680a2cbf52fe6a1f2527ca244ff7731ac90d9468975936f48a737a730a10b4dc3246d6fbc7805cf5c11194a51a2e918625c10950aa34e27bb7f4e642b10896780e149f4094782a9831b56e22022b2fbf9993d0e060d9e69483409a369043b255ff37ee071b3b5a2c63f1731c8a0bf7a85f598121f7e2015a0b5b4053b9519e935a95125f3a1ebd5d14250a8e77a9d5918232c16a06bf29bfd6572009ce8f506c9a4837f888fcaf67a9b20a4625c2864e07a19a0a8f6e5fc103b5416412bd64f746e83c250f47e17318d45e7d74623dce52dc480fc0d9f61fee07d329efe359ff7f1c126d43660b902aef97da999482950be234e08e23b55326118e2212e72d6a65aab887a1a05518e9b8a2ff76b08ce2e5c1d8d2b8b1976e01db14e6ae67226a90e681681bed913ab40af26fc989106b2e0b9016317c465ae5c22652936ccbcbf80c93525e8b40ed202341354169512588e2ec7223aef162761185cc1ce7633149bc6a9846a0b402966ab01ca8568cd1b58ebb11d9faebd95257cf337a5520e7ac0efa7a7c12da7de5cf45e3eb06febd9d864a307ec361fd663bc2d8802c7200fb2d80b94fcde51f8121ce1114167964c45a0739640935c51eebbf0beb3bd71b535ba7389a4dee25df8c56e59b2528447251374aff21c54e193256a3016ae506b94830f2acec757d60f54873cf0e0c996a7b53b86c3652190f38ae89e7135880372dc349a0cf98a23ea66e028e2e6dee7d76ebca8e699403e4e2fc8b063765c70cc13718463e28cae287c9428cfec3181607492a391ad6b05badfb126d8a9702f2f267ced89405d4028230902e173eb8cd46c4d02aa9c8d4f5b805451491ba096e9b8e4e3aa35e2fc6f2ce9a40206d81324f04e651a8a5b8c1ed84af98a8aa12901a68ef258f5cda6bf2379c4524cf59f3a0bc07b7fc212a81f35f413bc2672548ee324550673c3d1b66e92486477f7d2965cb903e304d904ea04eead8d2fa78a4fdca34c3a7374b29faf148ab1c4afe063a36702b1986ddf8b90928fadc81b1f6389d141083536ba5c67bb2cb90eb623243ae414ba51207c6c77602c0e86e95328dd36621aaecebe291463c1589c0bf1e96323889130962a27d3c0b6d65a6b3a744a38383a6e6666c4acb87021adbcf8405a193518e524e9a4b6b56a71cd6dadb5d65af3b47fa51d393370d4ccccb8c9313323c61dc2d8da3f7708637bee10c638c1384d52ce49e5a4b4566b6fb5f7624c5115a6aa2a678fe7f36921adb13012122222c24213a1c13b81bf5677233aa37faba75745c115a5dafd4a51c2dbdb0e4f1a40b4d8fe1f2056b6bf754f776cfa203ab6bf8581c35a791d96c16dff975d60a7f846b1efd9c7cf193eefd47bbceb0cf473068b421f3ffd9bdf7596c2e989bbc2addaffd26fef00eaab07500d3def79fc396bab7a7f6a555f1f7fb62a1dc3575a3f36c06deaf17b34090f996a14ea2b8d02f2d4af0c5320df1e62191c0a10dd3e748aefcf370d413ac5b77dfc0fcf60ffa3fdca566c7feb308afa97c328eaa515d8d5578c02ce90ddaf4f357ca12ce3c0f6c7bbeaabf1a738c57abb9eeff5ddfd09d9dd43a23fbf084c43ddd84762b8ef700c59672a1e9d555fc21b3e61b13db6c4f3545575f54631359d81eeeaef9ec288b1e9fbc558045ff7f1531fbfba30e076de55a3b80c28fce9064adbf31e9da580a47a5d9cebe7ab7a7c55949e68461f07958dbf5e597dbfea358223bbdf2b5bb1abce56d8b73a539938e064c0c40f21211870db7dc0171faf5282f5d2b65a6477b75ae418dddddf6ae1ee5278a908f65be62206cc0b1733335eb870d9ee1fcebb71186fe22427e942aba5d5d6d88b4f2a5855fe5c35a98b4955ce55f6cc783ef8e4038269cebdc72b797cb8070979300f4611333536de4b69c76b79a41d39333370d4ccb8c9312386e4569c0be7d26adcfbcdc33144e76a88388cd32427add55e8ba98aaa72e5f9803cb01008c7f0011202122212c2c2080bd7220140004201104002aeab5d00c02721121c8347bb04f0f0bafcb96b520298d43f02cc28bddf5d859cc19197f60d0bac115823b046e001c2187f7c5b39f7b2d002667c26e435efca0d02fd7b4f8301f4ef73c3c7bf1bfe7a3c8ce7f2f8cf35ed0f8fc79fff669b63c601f3b9e0f6f09bebb1f95cbe6f6b2d7c7cbc7d5b6b012404207c2eb73faeb63d6e3cfa87107df5e76abbeeec2f80fc7b9190ebd1ed36d7713c931b6c7057d81e2e84c6000ce45d3d0cd53fc7c9ffbce6027dbea6ed017df51e7f411e18e401d2f98a1e0f8f50be20c8d59a01b2bf1f11ff78b6c7d55a0bd5057221f3e4b641210f72ad18ed8ffe216492d4fd9bdbbed86bfc8557b1bcd7b45df6fc2ce438971f31437d4604399b3831cb5b5df8ef0537fefb1485df831bd036a6f09c97ba3a73fe6e668e83237f007989415c7a3c0f28d44a29b542608580be1502ea4fafe906a3fda68f3fe2923338aa6eb4fb59df4b23528013e96e5addecd9f22d3bca77f8e46ea7ef880aaf2a499bf8ee087a8ca6905fdc9b04144002f36fcd3359802be1ae0814b2db90e4855e75380233555348da7ecd995b230bd908f90b21f742fe12aee1b817bb84bf006766e04cc38124c816f0d246717fed7d38e32fdc172e7aff326162442e9cd96fcee05c7d4990b3503667f6fbd0b5d9ef5fcbf408cec137a13b0e04b2b543cefc8614e134e1f55296fede73ff9cb5439ece3977c19188b503c9225920788bf4029e2b24e685e07f5c212f2e82ef7185c06c1c2fa09a1be40cba806a7266b96c08236406a806468c1945d868d9d9747111ed784e69446261bdb84d88410c104ed8365e150e96701b1ce213152351f7eeb15175aebe2be1f4f2d4faa6afaea9da15cb63a467523d0abbddcaeb749622a7ce09e93449ce866f63360bbbd190818b6dddb57ac828ee63dc1fa367e2517a264eff07e9994c1946f2d8f14c269d8f956702e7ff6c7921c862c36f93b4e15b2ed9c2170b09997a0b09399b301bbab7f14222352f04456ab416e05b3ac8eef30e9d0df39778b7e491f34cdce3cff28e0d3f5f22392f04ef67b7e491f342f02d1ce4094726b2e306087fe27830c78653c786dfde3c62c31d1bbef5e14585968feb8424cf908543979dc11724395788ec8110622d3c104a0fd60223f4783cf73df0f3106223acc5e3f912ef033d95cc2f3d3a739fab8bb1602c180bc602756810514323c68c5cb9af2af755ae2a99e5a7bc3dabf8f9eacaf2565171ab1795443a392b69a93cf053fda764a5fa4cf13fa0f7783e3257daf39fcfc7236d72f555a5b314ee453ba21dd14ef41be904ecee7e63a4e2530f63791445d1a75e4551ff1e367a588b0d5e3dea6124ea987297622c180bc6329a6c2083965db21b0d226e9ebb7b15637c7c453ba21d15155854c22fd2c1252dd5a5a8a874bf2a59c1f8e24a4ef12bcaf354a5a9afde13aae1fbfe15ed8876443b37404c7fd7df4daeb9d6dabbf60e1b612bed1dd6a23987adb4b85a3152bc0d5f121df2ac3a856eaa33953d5944f2548a0123868b21760ca1631f60371a43c0dc39958ca4942a2a4425914e490b55d9a29248a764654e9f958ce6cf9fae4a39cdff7466affd6ced7dcfb596d2d45a9d559d0237d52219bfd942c26c5a329a3e4b46b564f44235efd46d2cf5f3ab2b54533dfdacb310fd11121d52b80dcea8761b8afe08dcb2fe9d9e5a5d2b7c4a1dbe3bd18e6847b40373df5482215eecd06e3484280981b307b01b0d21668480d908d88d46103adb560f23b9fceef417dfc3481423bdd7a426e1018ee4eb9042f7fc0952121eb2d42974cbcf52a853c75830169fa3297ca6129812aa66c7b77ec4f61cdf212f7c39fcd455bdbddc4ffc1e97ffc7057f84be75fbacb536e53d3951d3fcf7229d69a99f1f1a3c3a9b94e7df343d1ae5fd7df953eaa9a262c596a2924847be2b69d919fe94e7f9155b3ed1e44a567686a7f5bcc3564a9df2f624610a944fa34cef79f9590ab7c94a461b876ab6d4d823b1e79d9c94ba2e85b6eebbc754be7c5169be48c7c1207f968ca49459cacb4a46db7dcdf8e4e3f9ea43a97c9c02b3500dec20f91ffc143e991ee5f3789af4ab39c9ff38986ddfd5a67da7494e2fa7ebc12fd2712ec89ff0357d099fa2d20bc97f39fe4c81d974f3e29f5467a21d0783cc59672910a6681db04699ec4b6975e664a8c6760f0576ef3616fdea65265f769c2f53e0767f3f0bd5d895761bf9f63f2e8fabd2573afeaceaecf8d495c26d443b0e86fbf645a5099fb025a35de3344d139d5ab4e35c9093aaf1d8c13612d6877d77f531476c05ec462388183b8815981c3b8816db6e8791b6ad178e565ae443675b7e3a62f19d9c7392f24d27ede443f750528d02310dd9632ccf3d8d029f9214a5b2b52a2a5640fad80ac55a6c940aef63236cc5c100ff612df46a94f715637130503fbd171f46da93fd0ca650ea7d7d32d4495bf561236c052361248ce4aa8f1ac55601f9c280db9e7f18c593c17dfdaac2657ffea32f4c79ec7baefcd485ff6d7c65959635a3de5afbf0ca54b85833c83006eaf1977078d55f61cd205b9dadd8f5db67291c67df4fa9b19b066054b83c1111bdc271465604e6c7af41fe34a3d4d38d836f7a7ef7991bb11b7ceeef4fa0761bb7b14eda7eda728ff25ef40861bc628c719aa6294a29a59c3264c89021235a32a80c2a83caa032a80c2a83caa0f16d7df1bde76e494490df9fe013ef84fb0908e18918633c314dd3349db0624e5831373739393131564cb6139f786858dcc7d77d4ab1862a46db7586bfd2eb8ebfd114daa08c95edef89d9e1fec6e8d8f73f6270c414b1fd3dd3e39be75dcf0fd0e7dbbc8fff7ef58b83abd4bfdeafae8c7e7b900b72ebc37b51948a51a58fad4a5b44e47b3f3fbd3215253c5e104a93f0902fc85f8d02f29546f9f84bf74da11b44c38ffbe1e179fc17f4f1d84b6ffd4befd7dbe6b49490fde18c111323e74a672a14fe129ee5d1a61e5ff92bea844544c63a4ba1293485c6f870f36894558c6ead5746e914ea57a662641131aa29b45a44e4149a32d2c048c568b76f3385be0dfee1282b5842583ba8019f4916aab1b314b853c01931d8888825d098c10b0d2066b0156cb404f7662bf724f0dc1d4208638c314ed3344d933401df56d610d3b535c43401dfd2b6dd0ff05928defb9f3c7fafb2df9b3cb4177a14bbcfe0c83ecb3e4afd39bfcef71cf86472fe0fe613e8714ef8c4f7841bd0767523e4e5f9fc39544fbdc456043c9fbf861a2aed372ef29f6fa9fdcb4271dffe89d56ed35a701b2c1879ea4cfe8b6d4bbaa3c68cd8fe2ba04a7d5086ac711c071dca92d134c109c2f8f4aa89fa4525914e11fbd5b824bd248cbbe825bff71c7e236be28b35d0c107b5c448729a9c76d63e6c6572ff3016e7c25b21ed391a593fc091f5438671b28825b07e04f5eec6854541ce3c47da481bcf91369e630269236d640e7923753c93491e21739e892d9574443aa2926847549236640d59236b481bb2e699c87734ca1acb058d54d314784e8d9511c904d9ed1cdfe125d7591991443b252bd27324ce33c9a4e78ca48d6772c91c9e236d443b229d292ae58876a6ce5c73aaa7ce70c89cf31cd1cee8f6601b0938724e24e71eecb45e647f7f7971992f2ed609320a7d992fcfa4ce19e3994c73c633997926b6460d1b135bc146188b9e2e5ec81fbe707926f05f3c13f9aec6f9c2eac17d8db55a2a80d33a41762ee00be82fdb615a360d18973d5d66cc33693460584020ae67d268c460c7f69f30a0cb7cc158aac6569c0b93c6462e2ec34165ba1f7152cfcfa08bb641786bf59051e4c73d498db13c93d718e97a44384d964b9e5a6b61e5e137f8cd8624870c515ade394863748e8da4f4a8121f1bc918e5c7489d94d24df81163c148f27293c5869383113e842c2c1fe4e9f5545dd8669b754eca7855a48c719a7416a50d8557dc353937e1eb5ee99c8b252327a5cf6cb75c6494f91145dcf35d672aef269239b56cbe3d5b0b2e2439e498c2712ce0387bd228d17544335f16c645fed5651d9636f75a3672c3560f321cc9a0f3c9e6994c121df2cb1c674fd7f1f9befda78db9016edd64bceccc0de2234b462090a824d21195443b25a3cf475412ede429bfa824dac9a29268a7f90b210ec4e92c05d6af6ee21095ac172e4035a21dd00dc80684533202e100e500e900d588765c9290849c4d92e772384035950e0e4fc88bbff0f1b0de17504dc865b170117c10fc59a5b3e1073838efb9532782a54354b27890b3146e1383929197ac83d7f4efc1375dd8c8dd79909fb66080911c6c816d0bc8d04af9131bad505febd52ff189842c5ec85ddac7f73de11337c62956f9e389558e3146fbb93cd5e7ea3d5567a38f8d5cadae5278848c9120c6e2eac74a83dd35d66bdabee399541eeefb11cfe47ec5276e556f8d6dc2dda6236cf7d2b733a15e6f3b13dcf61c7fc1712c2364f75986efe935e5e546602c313bfb02039c975d80dd68c0a054831cb72eb35f4dd3cc574a3cb10c754bf9f5adc427dc8e17f2f752fb38b53dc12b2bb9f6ca2fe43e453b25a37a4da7ef4d2e19bd908a6867ea6c9a1f1aac65842cdf4327da79130e2ccbb22ccbb22ccbb22ccbb22ccbb22ccbb22ccbb2ac6a655a45c8094218a14387eed0e183eed00b0061c8f59423a8fcddeadc912dbd7826ee458b1a23a1a0b5f0fee77ce1829c4114a0a031a06d480222bbf6a2e0b8faf6d699b086902bcac66cafd5da28489b17e4cca3b0fd6d64f4283c67c2d6e744b0113bfcf7d47c7c5943c82646483c90e1bb8491339e89933164cc8e7f77b4f55e168c6c3f731b152ffbcd377dbd54f6bb528876423136e2e3cb6dae2867bc07b6fd08c907f268b63c93f62bb0a5c5cc268b0d47a32773489bd6c210f2640144cee0e841e87ebe70427bd77c986dbe926d24dc9d75051986dc644ddf260f27ffc96f3bfe73ced1cb417dd3017be33a1c6708f9664affb98dfc13f9d33f9396b98eddda0c72606cec6b371a302f5b974cd60b64b41eedfdab61e4fb36bbd68ff455769510ca9c37856a93b8485ee8592cc819096f814342e49d88f0ba32c859c8ba42ce42a13973161109853674be834fd771d66c58037a0c44a592119ca143c6e65930f078c57f2630fa0823c115db9e1dc9e107eee57821bf79a1676323bfb78e73f01b8b4f5a0bc1778b25e036bf7dcf91e385b45b6bf5c09b8624fb3542126c71b7f49d862d1a925ec8b91137408750786fdf8d1b379ec7c440086fc418e3cd8d75e3c68d1b376e5837ac1b376edcb871a379737f93084674e480446b6d45fa5c7926e0a8befc1ca81581faf26ba8191cd54033f8dc83cfa73bcc133e81306670e4469cc43dbd8d175e270d981e253efce9fd9cde5218ff647a505b33b9c483a39117849c41185610b2942e822af1c91cd0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0bc36e733b16c90dd99d0b16fc8b19f8947cde4cc733ce7859e25840ca7e7e4b8085b6cf7961072e6393f4c3f8167627a676770b0b0e386939393e71cb6a6e21c056840037f5b59333cdc9cefde93c9443cf198261224a288489480cc7982f0e4edd0c9893b796fa9a4d3eb818c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c0c0948bdb5301bc954b86ca8b3fa387fbd2c956bd52a9b7a98a5701c8ac207c1bfb57e08fc0b1f043f3bf594ce40400f1f7e3cd499c7473cc3ad4f7d7dec79a8b314d4d793fad86a88ebb77740f5f94bbc07548d3fc2afd7e7f3d47b3cdaca0fbf5af9ed53efb9acac63a86fdf7e7dcfdb6a7faad47f34090f99d234545f354af559a38450d5631df2eda16314211a44a7f8063df555674dc3fbd47d08ba0f2fb46f2bac19e2b75f2f7ccae2ac330a56ca615642869e5fc8eb53fa948fe0773886d75916a9d99fcff75b89f7c93963ab51e857aa5b8967e1370c6b7d4851d4e5389baa7efa96bca8640e5576b5653533010005d315002030140e878342612049f23c8d761f14800f848c4a68481c49435a10a5280621490831001002646000606430da1000d17001ed439d17837db30ee2819583fe07cb7f626f1f207e866b2bb8ae9dfa2dd8fc7f4f9996ef0e27fa0899af6cf7fdf29d23f62a2d4e13860068982ceb5df90f5c9005be805ac2950dd61a5bcff50707bdee3e1867d49c010ef3192d230e758bae3f7a17c1e86fd0ebc70fe4ba82667ebfd5423303e846934fbffd28082e21321ee607dd3e0e4a97cd63c400cbd2cf6a4c703b747fbf2b1f7be00ad7df9cefef079e690e38ad1ecf5d58e2d785856e0f49424cd2d35fe81944c9910d506d4c004c102ba1593001f3e3b88ec1167ba555ec56011c7afd4c280118983b29f1687cccde69f6dcb3316e3c3b11b0de6fbc191b036880f9b45a9f38355e28217013f2b351bd9dbac0e006b7bf62046593a27aa42512ed78b7e011145b3cf2631f1d9b58758ba7adce4f9786259c751efc451505af31688ce1112226b446870e1e2976b7ffd8a5429cb308ea7f56c623ca7e49f205a6ab63f1a03c4109db3bf8a29d7fec5c3fa439823963fa69cf0f4aa79e12bf7d97b7d04a374058862f1dca243f13fdcf81709486afae3f7c2408849e075c7eea0c844ca36e73dbf3958394c722016acb25b4bc61724eea790abaf8322116ca62fdb243b68954108a70c8e1d0609e8e80c929f335898811d1b6a72e3c48fac28753de9a4997011f6b18c36d5cea65c6dfd70ac3ed901e3dc14c7cde036d0c95d22f1aed86d38a56a7e91ec8455f961c8bfaa3e040ef328ee991e8e5a023c1f8bf69d47acb4ea5249722839bec61b0e18c227a09ed5393ee63cef5345a0d7515bb0220f82c36fdb0f6a02b1e516d08ff57965efcf34fd6f50b74c7ed1242bce9418956626e68fd288d62ead94f0b663152916ac1200f3da466e65969a63847e019534be8c22d1c17b0575127b8a9fa06b7a7d4239d1f80210a20e4fa03826d7c7ab319c1ff225856c087d9e91ca3478fa10f8e29448089c62d7a55fbd63fc9712d4e7e6ff86acff03a1850ba6b776746fe0c8511836478d60e0dc00c9c6321c090fd96adbce8cd90c8290df048aa717a933274310e1bb0f98ccd8aac29e0d121c13ac738acd61016d91e06605a0afbc67220382c06e3fd332dfcbde40d6655ddc3e2f806a74931f190053613053dc280f369964f021ee6ea827c27ae22269be7ed7f734f6d18502380a8ebf77cc2b339916a07b1d9fe2b26ddb3a4fe241a96aeb2a07f17f556f732287ed584c5f2f86ee92adb2cbace27d6a0febbc201066b35ed25e273b090d81ef46d3cb40beb5b17580962cc43335677077e3527a889fd57f89795127c8513a82c3878a6d618d655a5d491e217101b031b89b268f08c024f8d82a2e778a6dedb4242aee934ea78dff485fb0d11467c2cb03cb2c99028b09a9ac9b4657eeb49c3b8e40d313a9b7404f7246c097b2f7407331ae52a28a7d4eed9f6f858359e66fdd34d4338ed8560f91200c762a7cc9b2e83f6d364ed9f71550fa21b26a3a65267a60fb106e5cb66f01c370c541c9ee3db481982aae2a5685812d9bdbd18cc61fd5fef42aaaf081bc48a2de57b683f9c5bceb583be9d7f64abb673ae4cbce05d396b2b95e4b82b61b12d388fda937f49cae89017b2c405ddeaed1efba2617ae846eb926a4bb1474de6780407dfae4edb82da3539dc98a11c4abe5842c4422dfe4d9a18b1af7ffe48c0fdd53ff51ede1cab83e02f3afcd9a9eafd46871d1c68a97f6981de2f9897124766d07ebd3032aea83e3551b99aac86c86914b298624f1e985b56cbb010d3e184140fb1b880f2c2f24db61bc6103eb9829f443993430e996c0d6b8f3b08b79ac2c8ca913ac866e808b23abf0c01e8c01faa30a00c4d268dfbe8a8636ff4818dab99a0a9e85ab5b79a302d6f91a471dc17835c8273ae255433a857305dbfa5e1b2eb19a0b6a7f26dc854a49fa9f2310721d1eedf7d7db811f0ec85bcc3c54812a843df7cde87955c56bb2bc3e604667048871073d96f3300fb15870274f7dfd4383df7ca210fecec0729539811ec2ce1968cca89a1610c3f2ca18f8e3de648bde98bac2ff64814d41477f3f2ba79ff404fed6ac55cd06491e8e73c996a7fe1faf116dbc268296ee0e46b1324127c3e8573863e41fc9a055bb69e8f44fc54a7e783da432be880cbbfc3baa2eee9a2155e76df8c2282e1fba8a8d1310241aa4b656798079b48154db765aba2e4b05a1aef3cd742375f32b03ac09f2e206363245184e23c9bfbc42818158ec91b42bb2fa2d6a7475df4ce1f37269cd3ad102183db802f587db1ad043293188727e2ee53073ef1ccc9ca585d071289bc01996f8e8f5f191a4bf7220105ade26ae85c0c1942bc4b7eff793dcea8c47c39bfc2967c49bdf956278352f433cefd620b40525f9e3d2c6c04f53489a01714045f33b6cbc6e8214e5dce58023f6e835c41c3148c3ba232907d0687f5120df0f401eff790585fcf99baa22b95c9d84d1eafcb7a07ad02fee61c08cc3adac08059c7ce70ea224810f1319a8a366799aee756bed6856ea6270cb228e31cd2e64fcc10e610a22dc51b10e91888fea8a73c6956eed28640404b4d0462028d83e7b574158c7e39268e30433f6fd7024c7ff81efa0967246eada81706c200a632487f9c29c2d6543e45c093134587cf8093b1dcd7329b7a7940d02079881f5447284654234981c3af7752075b7ed590a854ac6041ba986bf3ae8c4e46f95b705317b51b57d0a273eea013c590b910784426c67e6e7bc693858d2326ae242bcf0991930a0ab5f35519ba2660b5c067e192dd398bf2e1a1f4b92e12c87260a132f10307e884118547167e28b008ae2a62497097b0b5499bf34d2adc7081655179a12c6a75af8ee7aa150e4f067c0a9080babadbb404438229347176b7e22d5b25af63cf472e079373b3ce0a78cc82b8ef7003c660d372fd9b3e210b53e638c3fcfda62dc2541796636e761df1b9359936c28b9b526009e64c4a28e8a483587b92feb5fd870588e3d8cd38006075ff98941635087926a65a30ebcf85039140c33bf98ef7c32c186fb066acc3bbf26f9831e5d6de3f7f590ea0c1e81bbe40ae5cba5dd8015daa1a1df88b8c1d22523df5e30a724289ed37db5fe56f1c8acf711ddd3dd4cfe6dd34b7c9afdad7b3ff7a493afa6d3ce65d1dee1898890450a9ef6c2fb32a3c148cca53bee7647283c030940e7e0d1240897a764ba8c4cb04d6d29681e8612654c8bd2940e83722668235940bd667041a2a6c0218305ff2a9f07d20371555ef26a97b8266974b32c9324b53ecc8d9496d2488aa831592850d8e64362b2eed2a83ca0a38599d89222459135580e839280bf06faba35db075364564e046efe2a11405b8554b92899cef641e7f15c836b98ee81076e36499e3204907759c0105a96cbcff7f64ede15ae8eb137d2f5a890cf9bfe4b5d8ffc2a2e76ca7a68ca5b60ee8c5031114c075e518712ce678f6317589664cca96b7761752ab8344378f2a8981167420db65578dce7d6900fa2138cd613851dbc2970cce1d8743276a0f243940cabe7781e69086efbdd212d562d8104251fb340269567f0ad8abcc8bda406edc20b7024a728321f15b8e109d99df800ec1ba684ce2e025371969893dda939e3d155cd89c10081d0a818ab544e9cf63080f520a9b6d6134e76122402d46aa59a3917f4cdb14f4cf60f16ceacd86822c4ec4c1d9fcdccd0610ce066db421c5a6738982001a4aa6f2d0febe6f48cbba1f403180e8e7dc5419fd4416c0b1a3517b0d5e5cec08029d813cd97114e10960e07d6fbcea2fcab239830c80f1d7ebd39e1c1958b9dc40eed0521d7216585a87a38c6a163068af6abcce179e181c6387fd0161a0f1e1fb4f11938fe3b2a0814a169700b2c41cbb086b2d3cb99b3ef230112d28d5d6f098aa18ae513dbbe98a862215cd450caf4103854306e85e23ff078130b2f7c4493523a979dd9ec55a523b27f2d52027addc5548701da91fed2afda4cbab1b88fa1076f800146a5e036bb61ab488dd2894fbaad3f45fd9b9a33166df7518286a6a11242186e4d90534bb015ce8452ffa5985308053d4e6e665c7b6b79384d93c157c07b6a5f722658514b3bce8ed3d28b3b2cdf2b2376fdfbd0b257bd62cd96271e1db1b2f5f5f7f2735366c59b0c0ca32589b22cf7ac42a0b310e6e09644b33f65a4024a88525bd425b15e60644fe0be9f8b48f9a8d21bc57b1df93bc4e2ce58b45b1a780f3cd2ee92310afb3233aab260a824faa54f5577d66f70fac21141a05d283a2815e7dda946e3ffece5e2f98267d391ee2b64a3bbb783e5ebe8b4be8459ba43d20d7afe7d8f36eb542229f4539147e8a079301e2b2bde8d9f29c5763849207161dc54a93fd701f41e85cae4968e7779d83de2b18f0b135cb2d12466caa331cbac755de49c23a9d45c28cd190bdfcfa18ef4383f4b69f48b8fde052387e88da684abf9653db3b803545e0fd064bb20e754228e06c5a4910c3e83e143c1b719149a383aba45a3395de9facb6c4252d94305e8806b1ac58a58de7f5de8dda3d8082936a4b8dd56b9d1cc6cc3df71064f77651d4d6ea609cebf97c9248856c6c3f4c2ef30c2b03c0a50998fd54964176861d66bc3756dcf162d4374ca298307b71f7f513ff008cbb54a8a550838270a537a8518f23f04d6d25a9a5d77eb1a41ce74bcbcb2f48975017155d9458b9f4f27d54b2b1c0fae2fbefafbd83221b16ac59b27cfdddbb57dfde783f35dbec2cb160c9c2599f728f3b7790abe02b58e1b1d485970ac3e7e2f10bf262795711249bfbcbab17295096e3495c04e6711980f380afe1358e53b45cca192db861d171d2cbebc1547f60f5760fde015c3e6c5b56a9e178be043edc836944482fd78391197905010619a0878a0e0bbd5b0e8d8add01dde87d2c7ac88abea474097025414adf8c2c17a1b3d994bf662a279acc4a86deff8869f7213831ddeaa5ae0af641ac7165722e2a84b8d3838128b8b9cd4fc60fc0ce3416e8f7b7103520e20ca64a87bc0a22da60c2efcf8e0b833c93d6f05d2f5df5085effde29814c045a7bdffa95397823e86e397e7a80ff5d2c7758c1be1d98b37b30865ac5df5eb18ae79154f2e78803bcecc1108056f62ed872708c5d6d03d4b6f61e4ce576d4a6bbbcd44da25046fd88fa81f9c51cf2b2213972d2572c4b0321b66793dc030e582bb7d5f6603cb7c4fac6df4ca84d78279970d2f235ff6b35a80f00558b103d18eb1d95ee128755fd5f6bafa295514e558cd2bd2e46f077532e8c86fd37b8083d18f163e8f55da6691ab64526a567f41e0ce443a61c57098b417f0fc69f79c9bc8a2fa0d0b81802f477b0e483e9de70f3f94fe7489e7a7178e10f214f6c633538cf2688415b4ee2f967844aecf1a24acfdb1fa731b600073bdf349af57ee9a6b34579ed98ae74e9d976964c2ab4f8ffc162e6d9f6e44c1d42ad29689a39b84f229c80ac1cc6d20dc74d7e07655f800f15ef6a36622e871bc4ab61845c4b57250b26bb22c16b309d3d1839fe81e79b4de3154e238b19724d09ae91da83997c98e4baed36e80434b74e5636e9ed6ae91cd9667241a639780faffaa2b9e261e850b62478787fde31d31edf44d9020a8b665ef444b5a399109ce8dbf062ba3b78c4cc7b8c992edd1ebb85394455881204f89de1bbf743d17d7e608ab66a8d5cc1bc618a72a06e1a3e0ee1b1b768b3fc778868d2a55ecf371d255845344f11f1b096e46228eb229af8562a0993c9fd128f9a88e6ad413c527460670dfc315f4434512e6a8f54983ae9eedad75944d328d984391b36ecb225fb59279a8f25a2d9c7f8523c61472b0eb567d18f917fa3424b2590c6ec0a7d41eca1596c18a28dadd0c6d9d3bd739c1bcba26d5469d67f96094161529299dee8cf2a5860059494be39b889d5d26223c3da3e6c6ee7d9128094c858a5bc491f99544d722b530a31d49c58ec8a0783c63200c24bdcaa048f53fb8c284c33de1ab745d934da98ae3e579baa8972dfdc19696fcdf643e630d811847117df1ec63d69d1a05b86161e57ac68746326671b7d9042b60121fd3c07c7ce0a69882f8cacfce2d03edc44316e5553b437f2e0eb6875420c6bf3ccc334ab88616bd33b11e4844cb8d8a9db8043d23e1aa2179c87bf4e80089e7c49ad547847988e47242ebe22bf7b23e0aec2474b2614033b85c078637dbc18ff7623555c9e7af0f6595b12f14a3bd5434b1d7c78492af04dbcc589b312a6a7009ca99a58eb83fff4c8f6a03fa9280aa33acc518712d91e76c3ff85257670382f47c7641e0e031d4523eadb43d0297338b365e6fc1e9cfe8b9a0429f08170db3f9513b0406027040d80e43c7d68cb4183a92c935a7e612efb56842a5c048ab3850f806596cdeaf709dbca7ffa51f9c8141f94ac5ca98a082c3e586afc6ecd07f25e823af247e2e559fb1bb935501fce086517b1b74f22b90f8557f761ddbc2180138539182dd2c4a8f70187c5560f3ccf8e519cf704ef43d5291753733030c40fc7b76bb6f4c350a07e489ea66a3c1a8fd279c040fcc1dc83fc6176b00f66ff50f4944bc2111c82ff006f4c9a3780feca47ff503371d15b37f7dc50e89ad691d2746a85132b2204ff375e87df87c6f67a7f466554ecdc83f2a1b42110422acc73596c45a31633188e0bb092fff0d1d9e45ec54c89c8a2934e852ad0d221154fe8d4a60cb0a099025ef40dfae95d0fff0ccd3eb728f5561cab0a5b69b59c98fbf946a537403ea6188f5ae1bf5dd4f935a3e29fd86c9af5aea32edaccfa95b2f2574d621b5521b140abac0452779cf7a23053399e197e43affe7248c969817bbdc156eee78ffe5f371968789a17a43ef56c6274da6221486e4df694bba58e67efe6d9d4fdebeee5a89f9d59afe91f6a5d71cc7774efea24f987c648c8b897ef2fbfd5f4fb2bf288d8826d9e146d09e6403ab606c0e88749a5a8fdfda2b663979682264d91667aaf5f4dba15c4b4faebae806c0953846c195cd0d37ea0c9188ab22a6400a46081a97f3def38bab5e31570993c0d1d298a1f4373bab2bb23545a2f3f7359009693a3169e6f4c7c1277b7e4e7ce987bc636712d23fe61acc81044512661902a518914c277545f416d6895795334ce7650ce836cfd7da3ad5650a56426f9a957c07b3d43eeb4d28198719d64a017e0a272216f11d5410fc04584bd7f8aa1417017da667a7b37cc9fda0f8e17087db6a5a8cc18a1180ff5118a0f52a556684108bff0b8514f72c420cfc2d0c0e2e3eacaaf0cf775c846e75f2f2d70de41af5580ffb498b146e72467e071bce394b4898a560b946e6b7b0bbf622a0d320d8946b7365c6af2af5920a974ad989994372afb7895aaccab5f5157d4384a4add2c281b7b0741e92ca9b059e06a7decd418189c0a55f191355751107b97511a983134d1561331a980df2091e866b0e3526c42e4759a9e2c6092d62a4a06372eb85950064540c723882acbaff025f3557b623f0eab55d4732c8f36eccb64e516f47c1f391dd0607e266abcb8ebc2e8c6d35229fd61526bb884b8d0d31a1ff89db89c5c37d287b4122ef4c7e5fa46bd1a91b01e928e9edc4e189b0ad5d02a8872519274b420795b21164588289897cad63f5a53ef6b6426109edf7ff436dbfa550dec4b5012519dc8e05d228075692a3c6a8f4e2230be05ce693192349b9fbac24c22f467ee45e127649f78d77aa91f78250e68c825f8383c7a3ea421f83bbb78a0dfb9f5e34af4eaa96c3ddbedf5fca9646c178dc9f7edd1514a7b38a7d53dd72d9d82c1c720f80411b35f1cc64ee1191a1be7123106acd3b76b749151c90b8f5ffe6f8e8ae226d3a54d12446514b819b569f09584aa343dc8ab6d0d6ecbbdd51a94e1c952a9b9384ca0368b798303ae472c89aa0fc00bd94c342404090ccfd3cee9e6f4d0986a0d7250e557fe75cfdbc95d7f18295a3f55bde50c1a9adcf32848124c6eb941f1bf650cec0f2afdc49c3528257e33d3e76c339081440ec2d820450e0d9f514a98b288eee868a001ee0913aaeaf6b2066956820cede8999db6febcb07dde34583f2fb979477b2517988b87540b8adf0777f41df1cf56d43012439b930878264f1044cd494c615ad8639eec866313eaf6b56bb3cd7991674e1f06d340ddd2c1ebc18124f9d1f23d6b060731aa7e70f393fbe2a82a8df0bf8f661b6d411e3250d1012bc568298bcdc267b7f7b853896307cc2383ae68634788ae7d34e80e2a887b264e059ad9a0cdb68b36db9acb5936eb0c818d3528a9aa9208650165a06ab3c40a408a3806e9a3994a3a15c01e7db405d8c3a14d2cb36136bab054efb655d12f9dc287b797be7561ee0a555d945d10779364cfb9a80894b8b50bda60cebe9a8d6247baf904b07a924351458a33882131259fdfe7c79b9b4766dd2f0692ff3efcf67899def358de641b7118d67a34db3fb3bc714c30f85bdcb7527182914d571cade2ac35fb111866034bbc142ed29acdf66bead100e5ed09d4a37dae810fddb3a2f14357d01daff1268fce740c177e60a62a952c473fa2b0a4f0b64f1294b50ad62638679dc7b3b827a1d69e1279195118123c0c587f95e7d8979d7d23f0475006bf913587e89549f0550f631859b5bc7feca270b69278aca929f492d10efb32c7b945d646dc88b32f9ce90954e385007bff6bc369e1538a87f95841972a8ad6b6b42d1069140c276e07948b81b0b8834becb3cb722fd93a72c54be43fdcffd45248d0892c1597e06129010703ff6128a81c238506aa3beb2f1ca92d91bc879a03216a4135d18f755d536aed7f64a36542aa4c034d2fc0a9412dfa9b028fd247e3f0da04edb97cf62e2147334d093040f25756c3cde0c769d2149bcd8c60158120f303e9db4389775d9cb3ecfb40d52ec41108058fd2067c4f1610934360ea26d6aee843de7b6b3ec787dcd34a21183ec5dfe46a5ec9f9b24d6e5bedb21e7a1a4dc795432ad93609d22fd6a6021130a1eae3615ad09da63920d8dfa20c826907ca4cd9fa6a0d752a1e1db3fd187d19e0d99192c24db00866b9a5f6da7d89fbbc3eeebfc1a5e1b3339bbeecdf828c8b17e13abc685364ede5f76de5cf406b78e455ba22ec2423c4cbba0e880b9ac91718e17ecf19183d290e1abb33277bdc4ee953a5751ead280f42099d1a7b46e601b1bb2974f49a0b05e4f647d72383bcba5c6653d861623639ae131a6ae75399232c760399c90a9ca22a1dd7319b46fe1595996747626e48fb9ce633f553112f29007b88b564143f7f540dcd963aeeea4a213f8fa74b46553e04fbe8c601820ea98009a61c1502c28a7225bc18b071fd3723e88249256204817b84e7b75761b060ba8ac45e38fd129672e0e73f106b273641e2523636ada0ee725058f0b19db893a47180c30a62ccb00c1b4fe6682b14094a87ffa5bce7a0955050e88aa363d53b0f254e546065af5515c1e6f8e5c8135da5cb725a2fedba0df61b7da2086a2bc819a0e0cde4dfa872a51121132e8b52e361adf4968abc0bc2dfd84540b98c2b2b19122511b0f8b83f4dda2a3176645ff812202e447b44d315ac15010241edd55ede554853044d3db68cbb2d2cd5156764a6fad41478765dbe784d2f60326f5ecdf5cb4cfa4ad0f30bcc637496da8b617d654169a20b5fb5bbcc921f2ee9fe6161f1e5a9f0898f267a0476b3cc03d8a4e29b269921d42408140a17a63e381633d052c620b08424dddde49b833c6e0037510425cbc89ff8c56f70268626983123a88104539231f56d90ccc8aa1c47784c8cd2a88861d36336db8b1750bab339a40df101cd3333885f8103c2d9afe4750563641a2ebfcc412200504667ff3fd1322dcc47e65622285ac2dafdc7a8f8364336dfb2f6fb4f430bcbd24f9948c9ec60947127f630002a0493457c282b42731a6451f82fbbfe92ea8c5072fbfef2ec31545d26721054ee112e70a34c7a78305479441c00f88bc0160a33536cbe7e7608af4559108910aad8c345cd31cf6c4f3f112d29f6beb89229c0a76647173e18aab27be17bf3bb68e4bd5665f64e6341f16646f2d068ab339a860a09e7a57a5d81113d5915234ede0c16b2775305bce43aaf623f59baa842416e0e9ffc4a4ee00159b05999b0ce907b04527948e209e13df2f0a0d461a2fd500ec66ae29021550131b1f67753d91d9ad5876a355ece8b9e50ad4e66d82a0fdd71ed162a507b45631feda1eea1431f24fbc7f46ebd7ef479451557497e49ccc0fb9655b3d1442fea797a21a2c51c7e010b0fca1af992d59c7b6234590d51c8171804785d9afef5c6adcd6323cb24b9a6180ef656b8057129a0ca79b061011793b10df542b58ad5b70f77b7d331d6e2f5374479f066d7c6269b9dfea2bc17f26fdcf163a467af7f8cf8243f562e0c5dcddfd837e549b511e22e215db76c803e3bfe6d8092b7a9ac2651f8d8132d864709868410864fb8927acceb556e367537328ce2c1ad28204fb9fa3eefc7d218f3094ba153f5963e442d9c3c02fad6d7d7ef254ca7f703378a9cea68cb3ef72a04da9c79210fa652be64e325db389aa4ad6847bb11cfca22182f9ab08053b8369419f3ad372221c9bed2a61386d15d5016a5e6450c7debed992660a178012dc35b83fc861937bd7ef7c5df94fe0ca4711bf9b3ecbf5dd774edbb4e349926ab1736d5c3922d154d17e71cfe90a4215fb92a1988e3dad0ae4d2ede2061d09657d34b6e585acd673db59afb1901c6146a12dc18612d5e3951740b8e7c916d35b1cbac46bc7d8dbcefc0fbe48a86747c2aa6a139a70137445ae0dbcb96a0e91807e6d408dc50b0a66c270b836668b6184ee2517452f611111fafa219b51f3f45b3caefff2ce3ca4ef315a7e805ef6d0e8a8b116d44ee63417889f72e166687fafa85b9b4c7effc2fcca45696d2954cb9b8ffc0c3d80fd542c4c47fd7cedbe981f9d436c587cb2bf55b6c1766514549413690def1467b62f3c2c9836b31d18579d022582bd9f9dffc913ee1cb84cd686603f0e88d1629f30f785b985f2185ae34537d17c7149a31ad7a7d19530b73f8569acb2558002a606591ed868c0a0fc644352928425f63b2c3573d38396d776e4a16f3378f73054f49c58f1d8c315304435ad369038a66c039908ea961966ff0e0c4c90b70a83753287f96929ae5a5f432c229fac70790c3713884bffa2548237d406454035b81cf444dc7d0b106105511c7783dffb0618477767e03cb9c580503b640129b35ccc0fca34af96665e47a86dec2d8f789649ab1edadda8377a00a8ae57968970756a10633cd448b7b8540d13ec0523e24ce31d36ceb1aa8421020123e701977f0fe44fbcaf07fa3f4e6adcb091881bf57a7a4445b1a8c5c00d1878d2447601c8cb1bed696397c9e2d7114a0e648b46632a0aa12895a206ce033493a48c64c4c601b950a5278d16ce6190642a481af4232f8fa1019b32f5be50d3143048037ad52f35fe497ddbfe780284b1c232a1b2750d9d21833b8a297c12c4ae3e126d1785d625346f238f9f1d64ff25f598c31272a4c2ea13f2df110f72379be4d69665e6113f866ed65c793618ddd4d125750447ce3193873bcf10055bff783fb402e46c172bf325cf869c1dff935f1b26919f3e0181f7bc08cfec395c63c13676e6b486f39fb4c9291d3029d20090d0962363ce8ab11ab5cbb6133b3b71dc199b18a60df1da761b3e6e4652707ebc32b6defe9f0bd3a39ac5e550329b2b079fbb67a88409e9dd24d901b32b34eaee1cad6451f5d5fd5f7f97c6190d207a1cad3c2e665420c4696bdbe5a9a8d2d24f555b1bdeaa7d3abce0e05e9ce0a51f9b34f1025a37e8e90c96830a9e872fc5c6c75232ec77f25d77fb59010953d8328bd2f184f3346c819b04fa709dd772c2fe40113f89241b5b2e2f2a823a02297edc2aa435368c4ea2a2ee3abc25517ef2af3a43a7b565b4e17dc24c458ad92ad68da5c3571995638d4cdbd0915c79929b3dee7b70bac1d6998324fe9fc363e925411328cb1fd08444aeba70aaca2fc6a5ccacc8503a42bc32206a4737e4a02ec64b52972c11e897308da3bdba13dee2104a7aa6c8afd6feda3aa4999c15e2833d13a479ae23aeeadaf0a75812d1aa9958d266cdd9e3560a1088aad15927610ad70cb0a7b000433a1073f07437531b0c5d9bbb7e8f2d287e51518fb2adc61a25f564c13547c5b6feaefbd8e659fdd90a7455c6644eb2c0fe0b8d205f000208798921d4c183a4c86a55b3e850ae88bcd7f43741a2730b1d12bd72527ed1bdf777905c56d37a62ca1e941d113db051434f5348bda32ed228a23f2c1f40fad7892598f71a4f8e0a588952175748daf445347bdf1caba46b2eefd7669193c82cd2782a32741928536f38f495e7659a46f47a619492a2222efba2ec0506b6016db79f0561a98e16d93269e756624787c8dd3b420b1dbcfc8af0d6382b81646ff96b49cf258b35af08524ef39333feaccfdc5a1e327856c7a17d6a0aa4051cbcdd6d49e627555cb2e730df7a5721658090d05db4d334b20c7e1bfc4b7e8f0bd5122d472b689d90cabc34e12282c270308a99c348e185eb551a228c821cb802c921a368aed8c547733d06b9ef72d7facf7129526a023bbc0ee53288d2bcd29e032d4a6828299356a02aa9c15700d27925ec940e35886fcada250de709979f440e848c6e27707dd5b87b038c566556fe12c492d8ee1faf674faca6b91cceea4374613fa8bf78a17918a0584874031fb5a33888a8f6fe1b06fe4217cb4bf912ab37c0f9820013231baadd57d12dcc054a1b476f743261817c30b9c3161cf7c14db14e7dd1adf312614987ab95d6a8a03da2083905f0ed67e169c38c562f2b6b5c4e9b562e82b2957b62f3439aa0f3b45e522a33889b37e9ec07e52d9a3b5c081c5fd34bf28bff51d4881826676c931c6cfbb7c304d780ad422d599512c7f16cadfe67b08cc431fc503392ac26d30477fea26cd96b59b4354e4096356e81375be28a038d7f588277e99184162a0c1907a75b7f55eedb16c9b9c9542b38150614c9116185faa418d1552e5fae0a2806caa6546208c3394bbb53aa2cbeccc0c2218a3c838259f0effad7073fb0621b800964fbc430c39122cc4e6a776c6a47087d6e2bc533f25ad31d7ec5bf5a83480f01c756cb13e0b87c00233edd5ff971ed48e4d4b781343ab262fb063a382c4817a4a2fcb2258794c502209a4a73c644dcb6de9c32ffac251c3335a0cddd23cc5d892a6fff605450df2406c979e912a419da0c4adacec213d770f45e2c3722cc7b00cf7c789c00a313429786cf53ec6ac71ac90c6298c939a5c7e78285de319cb89183ad964df56ca6c16c59333674bb19ca616024b1d441ff72650525f41893e5dbc63c2bb14d510f3eac6e0bbfa4e83ef92e26fa7849b8ea883e8d8f87ee03a68e986f2ccc0413cfed4a4418ed689c139a5aee384becea33951abdf8a84b7e3802df978d0686d680ffdaf00ed162ae5b41003a258b8ef626347a78c44b12bae99bb4e93641caa98aa7251937f800fd289474f740d2417fc150fc2b1a68d5f8d4fed8bb152cd0ac62f81546409e59bbf8ffcd918127437a0be5e2f7bf5ebd3a2f79603ada0dacb89899fb3befd8835afa5afb0b2075ba3f0ba1824a17b10888f914e9fed8dcceb188640445664b1f290e9da56e2fe410206d802eacdabf176639c48662e59cc7178fbacbf3f16d20719771354b4953934619c478d1f67edeffba4d5673dd64f4eb554f5801e361663dff8d70292b95962325b23c24001a0bb8abffc6d18b21f977e1decd3b3f6337a1fc68c3055798a58338025c2240b4275c95e6a05174741e315c746c140375ee4b49ec2470474e5ce0d44751db34ed94a5c0743a260ac390a101a31e5eabf718982294b20a7f1e09b6810331100dd297f71ba168c200a662fa3759f1ee3be2826bfa609600d4b5e3cc9ff5557418b6ff3db8b6252ef1e4b98ce66517b21c887a3df189431e4b980e3e5dc453a70fdac60a05976d6ccebd48304a0d0a082eb22f73aeadb233caf60e45ade70ed0aa69b6813c2f807b99e09c1884a3bece796c1d4eefe21775ff4b2c6fa9e93d2b99a2b07319f6676ffa18f0271ca24cae2d93332583c0807ba4745148cc4ae757b7205e36870ccb1b84756b3e003c70732c20af611de500d677fe049f42b98d4dd28229b941287b80014368754acb9b5c64daea02254206f86fd2167cab72ba487caf8e29d98933e037aa6bdc41d635aa7837ee1b1baf372434dc88c1e75864df51404922d852b825280fedf9db09215d1dbb5350d605251d2266e2cef53753c985ab6842ef064775d4cbfca60b46c59bf749e5d8606d7abf264a40ac4e86fa74e184c895694fb470883c1d5dcefcea60818e6d55730c29a991b6ae12f0dd718c4840a19254032a2a269b5d523970f733bb384ee474b066947cde960dc2aa4aed9ff6c226d04609c8ebe81ed821201c1d88a46526842580ae5b6c5768d016516e2d5566d7ad62a52d6fce76c127622830340b14839eafe0289b8a3a4df457e39b45c25aecbfcdf34991a62389a445d9699610ae9a91e2dc28764c2fc2f4657046847209a868e70185077ca88a8d52139950a126e652abbdb310c05cc407c14cb4d607209b67792760fb67f81578815d13bdf567c4d7edff1d8e6dd2fcc78c0c1fe3920f4216599a311f6b34e67ad44c62601bb7fcf876e2bf68926c2f0d26c14946f4f2dc3e2f1339451cd6162626dee43535c88edb46a21f9b0925401ed40c1b662fa9e5579effddf220cee1817e1b672aecff467b5c2538f1a602fcf1f3bdbf6acb4b09f6fb825db06e3d37bb33d229fa13db57a307591aee3ed70e65c55bcb6c188c04182c1019f648d5d5186c5c1bfde91462f1bb0ccd801bf01499c43f2df353f385cae1297a328130c97f7960de62b14e367de8a775d58400f755dbf5a06b844917adc5361b9dd861354f0e94db92f3ccf1922fd591cb8cd768d1cb4adf4a0d0a11d856324f8078033eea20ab47fd68c21e26f6839db2d5aa1f62cfa31b2bc176ee71e44354cdfa53120991f013c7712aeb37a438d0039ff86fbdd9046b60d371ce620dba211eeceee2eea5b15aa28041adbb64f184f01c2a603347fb8b15af0629b690ffe2fa8ed661a4379668a5e13de10b746e7385da0f072d876f651b595ec149b9b25a84d6ba220a30d1ed00ebc8c113e6c6e7e80df22ab2a42e8f0d9f3fe17331d06b9665f8c259e54818149cbc7b78783bb39c6a0e128a9de5449066f209bbf1d8df21589f9d133783c7849f4475b7495b3dc402d2eaa1ba1f7a5afa856ba930d457c6055bd3a79040c1fe7c42258525779f7bddd8ea8066f34632a5076aeced4ba3848807bbfab79ab67d318e9ebcaf39521257537bca98ba53178d824483eb052517572b2acd4092387f910a9a7a142151fc0ede3a42a19dfeb271196328013832710d6767a5ce062806fafa6d0a1133dcedeca1921ee7880d60c7855e6aed645c67a3977e0a43e58de1b7ca5651b577781bf65476036534176830df99844571ce3e976309c6affddabc9901c2aaaebeb1e04c6f89b3e03b5345dbbe2175be341993ee0ae42bb049f04379c03d49fcb2cd8ce04ba834ee17775e4086deb34c1028671831fa6351212a5ede3e61808b8e1f60548a0b9f82903ec7c1045abc9ef5af98d1fd3d03c4f5255beaf68eb3cd4471d1af01acc38d313ef33764463d3a620df9f622924ae1df1c517f23fca4292963e5733d92023f8ed1f15586f7c5b937ad01188d414f3bbc429666adba1f385a28d1f6d18736b93ef6a81a5b8be2b079ba71a6ff4f0b634f84042fd5e0f784baf4e35459d72b9a713d95eb7151435883b6a49f9838ee5910fdb69e38c578165adbbdcdee214fd08462210f232b1743c494ec42da2e52ce69f5f1daea1be4ee15065388f490876f81f3da548a3284ed9aa9ef18db98062a6d357971eb3306d2f3adafa276b732c8349a8917ca7ac5f03a51ae4a1ec344c6f9ef80ba19bd6487ea3fffbe8d8972219c303ab0c6c52ea0c26e0ae0ec9c7ddc03f08b62dd4bc70d7eef76aca6e95504ae1104da618d99f0eceec85f6f471dc8697ddb9e37f45359e71c99a2dd658a5954cfbe2260987580eb295756834a714847f9b817d0d4dc8100b9c0319afc1759561d917a244ea418fe8f973ec1f14d3aae3a0531a856e4b588097f1ad8778321c9152ef51afa7016f7d6d8a3dd34e50f46a567256f8fb2fc8af82bbcb146941c2cfbcef6a6500e9c0ff8e4e525d0f83ca520d62d1007bbd4c931d5aa0550f170095f55d1454a7ca2b557dcb46a4e3cd68898254abe428cf2f5959c452aef9c28e013c7e93543341a47e306ff347d5e4e82e62d9034db9f5d8f8055e9f0428154c0410488e444dbd49eafbc20c3f5ee4e67cc61bf52672e31c5215da706d53d981e88e159758c2d5447fa7fa2ed0d43f10e6e9a58a28280ace0ee0b1ff99fe7e3493f6816abd025803a0dbbd485ddadaed7f5509bb144788ccf1984d3597cb50d67f3cc65fcb8db007a92e0a9f71cf49aa4b716d147595f4f76c442cad0c43a0244a1b0a923eab9a382ea9e326c38e991332ca816874aee99bcab6debe22b1b68c484aa672e1c295ba004f6e795caeadf8132ffa0eb1c280f7b2cba3a0678013e3f9e28fba8c6b235e05b11579ac39c47a8bfabb831be30b7fd5eacba12e7ea5e01b6fec185fc5502c2eea3a063629e8a42e3b8ef0aeb7e12e74814df198f4133d3ddf9d201193d64835407cc4da89c2a6912cd72b006c2967feba56cad3d00d31a233401fdc51ab641d1ea1da36f7196ea8b9ae787d5839f75192529d8299dee3a008e99df25e70df816072991c1a475969bc9105991e45d8f6f97bbc4042851ca90dc5aeaa4dd01bf4ef9f36c6b8b97c55b20ef2957d919d27651bbe971bae7201c10eaa4abebbdb749530731bfd75c8c36e717eed6ab99275ef49fcb24c58deb3c848f5a62b4539abcb4cf79e00baba8c3436afa2e32ec44f9269df7d5e396ad55a54e9eeafc0d5603f49d9de4023de54f48cca8689b81e83a7df07c626dc5e7b324c51b38b2a62440731cb662d44d60f1b9624a06311255633c4a2882041e76de335be8da915c617d9e9525e5d46afdc996f8084c5015419820df81f34a76ed95bca358d0b8949fd3d3384aee96f7d23ef9063e8c670bb9fcb76bb9aea377befd86de0ccd011470f975d8569749bde88bf61a01c1a1576d5b0ed6cbb3196e3d08fb31bf52dc8bfa4c390cec330f2f6da58941e6448005e04310e37596d7db218c64f596d2a7ee8d9bbd949cdd3055f1354c291fd40edd460f3b136f72edf2febe9e1ba43d817641d53c044c97d638abcb57d526db271987dfa5ab54cf9cb0d0abbeea81880bfd75f532f77508423f7cd0f058ae79a29a77f5d1e6de8eb16622b81e158067732e0063af5e595525e4076a6fd9b423a8f42e7cc0aef5ee5be0e8fcbb43e13635da19047209e8ab175363bd25d52e7ec04e1dd8e357863713f4aa8d1742eac9ffe63d22b59acc702d6848f1350075eec68fe3e12372b8b50bb2c5a63082e6c6065f31db533d554cd9061440282c7823113b0d3ee4610e08bf8954edfacf914bbb5db851822402f84a1f6b9f7754ab68857d26895103bdc31f4704f6274ad90a57c552a97c1b731ca22e51df44037617c1bd4b9d2b3f6317c1d7e71776bd304161228f7ddf47098e1123bf3d7d5ed69db9c0c8b64bed08257d08bab9ef148b8047414ddee862d5bde44359370a021146ff72e3d609ce2638187efb2237a29cef0d41df47a3f59ba02187c73ca6186d9631d96f3f0cf8e8804dc5d3672f6bd27f0686c97cf713b6975c193cc77a4ad25a4a3e9d3291936c87ddac4dce3b1ee2390ef599f0d65a4de9036c01e57c4c89b3b046910c4f7d3b573c45606dc2fcb108dea6ba140e7da3de768fe04f8d7f5555ed2e91b103fa2285cb388220a59caaa3d279a418fadfe37355ba8fae4476904e179c7a0e3f9f6733ec849819efe1b47d6fb5bc22256ae44b64b84906c215681da801f04fa8a7f25c86959111f0b404c099bc5989371b5caa9f1bd84ccac2df563b50d2622cf6378ad23050a46dba31dfc37705b1af830cc06e4e1c35b0689c2330b11cdb4a7f314671e127b4eeb213084c4cf2d080207284face814bcb3342b4c7f737c783d99b4d1de0dae423fbbb902a83aa228a6044fe1eda70f8cbd729dde55bd0c27f63111305e58d06336efba00c73f9acc6501fd8170a5ebc28da836b8b7900f46976b1006e85e179615195ac9e76ebc680773973bf8d7ab838cdb2903b4a2fc6747eaac188c9f4643357d13ef3af587843e87696f653093fbd75be7074d44484456fc34dd0424298887df3904e69716123fe0a1b6754c44c5cf898805f075c158ae4d9d9f304e347b59f18b46f02ba6a9badaed753950a1423f46e3fbe88cf53f1989c90f8a3047d04c6611fc1606109e6e2a7c030dbfe9f958faa5d6422f32c14f84d069c6bfb24ca00083210484281f30e118d8796f689dfff28b6b1aa4702dc997fd450a720b4285a97def7ac547d25f95b6cf955e73eedfc0bb00d4de9204f9f75c99b7aa19a014728f18bc27cc313721b7891f86aecac0c57666451f503f7a1f0710ea9d97d4a63f8e2f54c9013081f38dcca45bffaee323c05e110f8cb75de270f885667e8ae4ff596ef1bd0d38d1552e056f860b0514f44e598fb49dd77d29e018d5a433c852b646614e9982535018f20f15b78bff9197999921200085ea71932168b70c1d3f105295f8ac634bd941870838143fd1a5f701dd1aa8d9b3db9dbf9b3660790f5b49c0365fcd197eb302dc6ef96df4ea074109303bb743dfa3a04a675c89e885c3fc2bc3cbe1f00864cf81819522c8d4ac39c0253a2eba54dab4ce19a79becde33dc3b384858775b2806b5427677487a7122b8bbe526cedfb8623b649aedbb5f1894c28ff7e3b5f7199b7d5a896feff03415c490bd72fee5ae8b18381e17805a3abc9653b48e8bc42424a11eb2a938c91de413e43d78fa44b8be5584512290179766afb46352c2ca218207d9ea37411872a7d1da5d2e38ce73c1ce5490bced281a4b75f83f452057aab1f6e83fe4b7ea9f9012b36f2131d7398666dbab0459ffb3414dfd1cd5f1455d8a1d7871556bc14ec40618b007321d280e2daeebf4b84be02137b5e302c215d9241819e8ab309ee1acc3ec157469f69d2d1920516293f165999da603fe30711aaf70a2fa4ee4d0364f036083b919217bd62d8649df902d5041de840e7d6d21b9b79317edb2684c2b120628b828216b50bad15e8dd8f0baf9bc829dd0a6c546bd1b084e1f44ffa26704b7778abed2bca142aaa00f22eb80f5a6d9fad90102dcd404ce78c4a10e56106867351d08bc262d891d27eea00374c107b35729701616018c0f551c18bcb13bd77202895b4ab22de5f65fba91b4bbc96d146ae990892179a7f38e49991c90a9dcfed6cc0969a82e122b36cc985f385c8775139202880f740d770eb51257a21f1227cdf59f898a32f23f8717cbf06f20d22bb1559a316d1212ce1fc24872751ab136a90aa81eec74271376f7748a2d89b2818c8e77c3f3368f1ac584182e443a415aa3b7ccb3da28920e5d8c14ded3e8cd13d779939874314fb2b5172985a48bf931d4dd30dd291cba7bd61d8c0efa99284f773044747be1e72996a07803f31c3de372743c7ea69ef1db68481bcba2ee06407730ef5d7baf90ee26ea0ee645b707525ce9cd4def758ae204fd695e2798278969e8f749cf75d23b99fcab755ce9ccd50a2589e2140a3fb460fd1afc0b899ecc25e53e870f53cffd52ee977c7acdfafd8ab313f7d5a7e3cf5669587f56ede7f5ef7c11749cdfe699c8bd1b78e763cfdd5929cd6d95e21253afcf446d3efdfe2dff0de761a535af13f4c7799eb7ec167bf8f95aec99fc254c1d7c262cd226a6a1d7ace307695889dcc338bed2f17efed06df6f071e94f7351a4b8c77fcbfec295da9ee67f5b929bbefadf32cefd92971f7bf8e5974e6c75de40c7f3e661a5b7a7dd6cf4717eade3a799e6fa2175908eb65af0dd56694ebc1fd692fa9737c93d21f730d3ff2dc96bd6dea34a14125dab24fc3c29683196d9a2dce7107e9e2015c97208e73e075b946b694150668b5c6674fbccf67677e374b7abbb7174370ddd3d80ee5aa8742d53ccd0dd32b0bafba6bb6174b70372340f1f7f365aab56e8737f5c4ef069ee7fcb5eb39eef241d533f9acd66b814cbb1045b62747700ba5b6dd1ddb2ee5627e8ee97ee564df4f779b514df67f2b7cd6b33be25e898c9bfcf61d5c83d9ccf25f84def39f2cd46c71c7e03e90de772ecf8ef14c10fdd1f0085149230c28a9967389be5c76f9b18ff380befc491e52cac8f67362cf187f3dac872167e0ff4da5b2ee72c83b37e77e3d09d2a42c583eef09db88f9967e8b9fefd5ba56e73a51e7e065fa952c7b98913a7ff9d8ec7792709d632a4e264f2d1a16387e21c1e3fe31c86553a6fe0bc93ccc13978961f3f1315e78cfc5f12c539bb5fc375defc4cf7f1df5ace1ebcb6168bcdf28be224f3b5245962582cf623cdb5bc2a01f8b5b56ba3a3dbea0940c20afc609de2a4e1ebd1a8582dc5f871ce8ff3d6727aece0a9eda081393b3c53c74707b823d4a163c78fcefbc03ecf9b31adc43938977609fc1b9893a92dc7daee0473ee87222d69393fda5b4e77e7e82ec5e3b10f2de82fd2e60d9c7f6be9e1dfcff53d26ce7a3f579a1fe3dc2fcdde764bf2050733ba433d75a62289fdcbf3a3d11dead5dd31ba43a1a05b9c4c76fcdbdd2fba5b6828a10e15d4dd35ba43e1eea6e90e35eb06d2f461a5f771a5f87aa11d73c067c2714c5d5e5ff41ffe340fc5d2deb0e374b777a7c2eeb6d11d4ad5f87a79ac5d7bef7b9d1e7ebd65feebd5d23c73fdf14572a49ee9bcd96d95e63cc76b6b3e532edd7da3bb76eaee5677ad4477e3ac58bbcf643d972938c909e2eb81cf34c3cd9b035e9c035a519c39b93b2f8d8addedd2dda84e75778b6ad5dd291ba408210529b801a6c6942670567083274748784152ad073bb2981185b86c9af04345068ee565a1082d8ac4052801f37383a3811d2a32606080a722f1d00c36283925a0032c20bcc44009999e12258aac552f5304c14677a3013788586af115102a540e32bd6ab9515ab5b0a41cc000a894a7564154aad54a95029976140ab584f295ab6c5030abd54a48ca61fc85b57a8159a95e5e605030ac9b25d56ab55aa954abd4132594c338ea0953ca5bb2ca5bdce546e9498baae509ab85e5a9173800217b71d552cb52cbcdd28ba7dcc5a5c583a894528e5a7a59ad54364a289051a55c95b2919169186f94cdcd2b77b9614ab98bb7ac6c9cd890a19c3c91c178cac6890d99cb0d4b2583b9515a39eac6c913d9cb4d4bab644bed0d43960282854ac920e594725a49710a82a5f24979502a081b294e4e38b141b614c4eac6092736c884f41499ea07146a89cc8d07b06e38f90f999e41c963dc864ce53363937219142a6806ca0f297fb9899272948c8cb3582ef302b37298d4ca46caca651c650385e5a8146bc68188c2b209c2862095c3d848714205a93c081b6a8eac7cc6935432313633330e13e34ea8201829322c29323ee3281b28308e62dd40712209c6510e25c653329d4d8d8bdb205b52f912b994bfccd874508c8d941877f220187fb19132e34178108ca3666ea2a81ce5a81b29507e5039cc4d1495c338cc8d14270f9a71d50b1d666ca0fca0f2989b282a7f714495a4f2148c8d132a08c659364e281b8260dc09151483b29139b2f219d7412585b50488a018473914188712e3280fa20a82b109c2092736c85c1c15744388ce497741e672b3b4442ee54be456be7255cd9195a73c697594f297a3957b2ae58202991b0e60a97c9e3cf921e52aff01e52b7fe2c413294e1ed49204e32dfe03cb63bc6f9e04e1412d374f7e70f1981b270f5239cccd0fac9b167fb9f9c105e52d372a6fffc1055553373ed029ddf024949031012353398aa66565b34241a7f21b513a77777f220505182a997ee997d5cbea15e515c4cb693544cad5ab2150455ca043352a0a6ae5c444dbdc8840b76a992a65b31a82f58402623081294e2f39a2c83a8552358c8bcb0d0e1760badb454877e182451423ba94a35a55456945c48ae5a242e583f27625171559dfdc8840d782aaa2c64a8d153557d45c5103842e4a87a57bca0f0b46a7091d4af6f2e23b52aedea251322c585c6e941a0b16abeb6cd870d7d9d15bc852a828b2d50d96dec28a2e95ba61617942874596da4286650b2c3733587e80a507c5c2124512356ac8948b7873428792b1582ea2502847a1ba22502825504920d115d125d11245a9b96862b1bace868d9ba8aa92f289f197175413b2d48b164da45a6e48c95a7c4aca95ea9890a58e40e3441325d533338509979b30e54a5de9be942be53ca852539a5051543e303e338555c58635e5ae642d517ea2c852fef3f3f3937a49c14801065cc0c00930646d031854f9e9a4d8e2055160f878cd11ba18bcc6957e54353631a866a6746c0231316466b8cafbc55710681f305c85624d41d5605151e1a854336c62788b8d8b2c2686b7380d1a323168c468e9665151f9a8b0344eca552c2a2bd90c9b6e991837aaa776a5acf44eaa4515d3ed5ad180710459aa08316466c4906a49ddd878a27be13349a8669848f534a17aa1d56abd30a344caa59a618285ea9929a91ed5116a3071572d9f4962e689544faae52a9f5122d59372154d6b060a148a060dd48b1a2b883049f5b478aaa56ad9bc7e8830a959423743d34f5dcabbbda5512997192d37bcc6936e784d8ddfb849dd2401c06ff88d9b27371c00374004c1f01a21d4f80d57fa912939111348f5bc701858547e523d305ce53f7440c5a6e52dd50b962bcd24f1f3e3c5cd0c2997ca6b521e000780d7d8d4f80d5702000f80dff09a00b838006c6ed4d8b09248b954ac221aa65a4df99111a1f2b9e12a18981b36ac1a9b29415efc88a0537549cca091e12a672151c386ab9c55848a86cf38eb02ed8386ab669288f9916133c3c60c4f798d1a33fcc58c1a335c522e352e1ec34c122e2e3349c8a099e1e231b8c430c34665c5c5c56dd470a9e1e2345c5c96a8719a1a9751e3e231b8b8b8b8d2cf8b17425e8811e3c609aa0b316c6a9ae85adca5d5b500214b75caf58275844c85c58aca0aeb653533a3aa918ac108999a2cba94cba45433def9cccd8cc370971b282ffc859a23330ec375987118373abcf017b0aa8b551415170d5329790d123a2e542e53ddf8aaa5a54546e6a6a6892ec653ce62bd78bf60012163b9a0687961a39ab149b52440a66750b2f1d4728b898989f18e89116396627cc65336318e7a3184860311a44addd41ca9e1343ca986d3b879e244ca9fd0f01a2a1b35800882a1e135a448f5b4b4c4f096192f9c565556344f32336c5e1ce54152ab2a3160b8cdaacaaa8ad5538c1b31e53a9242c36bb84c4d159d0d8fc16ddc407122a986db7028346e6a544ec36170181c4a8d9b1ad54dcd11189c862b81e106c669d4701b6ee3a65538a9191a29522e9a29345034aca57b92b19e80e9baae0a0d142924743450a87c6a788b930aa7c55bad1b9aa7174e2a2c5d0c193264b058ac97171aef1729954d0c7fb1014296a289e1303162c0d8f01a36366e5455543832deea6caa28cdc85e8899b94139dda0a2a45c59b09e5c62fc29d575366ca45e38c138bd708271a261b9128c93ec8593520ceb89f5c4c28285250aebe989f5f49245a744f34465089d12cdd393154f7253cad5b2b2c245cbaa4aaa27256b5955595591ea51f9d34a0b590b965bcad522a65c2dfe72934a71a17b71d50bca29e56a414549b95a544f50a8705a9ac64d0d171d2ae543c35535ba99140e8d1a2b3a2518a7971b17168bd57529185f5549f5bcf8138cab822053ea9e56ac276664a81f744a304e43c01401c3c48bb36090807192b5a05e6c686c6aae90394247c36bb4283d49b95a6c584fa8705a5850c85aaaa45c2d4a344f55642d4ed3e23458a4664451b1689e642dfe927225d50d2bd5e262caa783b8b0f1d44a01400b2a97172b2a1c94bf60b162050b965e11411343cd91181c064f8ae106869b24954c8bac268b6e55c48b151122e8504a2b2284bc487122b364326238ca5555d0f0cc92d570d40c9f715511dac70c47ada2dcc4b0a1f1948d8bac860d130be53468ac6868d1d2d2ade2a2715a5cb58a225bc962d8a8b468970c1b26968ce64665a55d2d6ec3468a0a4befb438027e8812644365a5860d134b46e3468545bb5a52321a362a2c1ad6e2335a5cb584ce69a1b15902069761b384132b08068f61a3b2a2c269711b36aaa786b5784d14ba96172fbcf042ca46a96553d34497f296ee85af3a182f58a917426054479899918291814c8d1537a47433326f979a2bbace6b82d02975b295ebec509af9110373d3374a3fbdca5263847e6142e593ba51523da13cc681085aa150fe24c6656e92665cc6656e80086a79a1228b711914a47a5aa6099927562d3a10e22b1b189b9a26ba952ba15e54a897169756bd54f142e52508aa172aaa272aaa1a2b949a0aa5a662b54a1149f51451ad5435553aa59922c8a06e3c29d5d3472997135417a4ccc4b812eb9552b5a86648b9521e2448ca85e2021459cd169d8bab7c6a5a7cc6810892916979b969b991b90122684585cec5553136342aaf294107734344e5e22e2f2e3639a2a45c2e4e5e5e5a5c88a46edc6a4ae02a77c911c505081726b71491544f9154cf8bb35a27e52c5f394c6a060459b264c992254b962c59b264c992254b962c59b264c992254b962c59b264c992254b962c59b264c95283a5064b0d961a2c35586ab0d460a9c15283a5064b0d9629d448e1ca952b57ae5cb972e5ca952b57ae5cb972e5ca952b57ae5cb972e5ca952b57aea464ba83a46ab2e8da1b488d27994a0a9929323559743546800185cc130c992718324f30649e60c0f0179997979797972799ca5336329ebc06142a1fd5d393152b4a2c2596928ca7158c27194f2a7f92f1b492f1f42453b5dcc87852e1a86e5a49c6934ce5aa1a4f2e15e8dd5958e9427381886c6b920e39331e696e32d3f120051e8820c799f18f34a762ba75ba534578e81a45d3f116290e04c8eb8bb35c7b71168ab6890aac94b8fc20e3d0810071f0622114b0e330207ef3de167eaa071d8cba09904424243b9209f90f6f0a692b032f742b0338ba9581026400886e61c0896e612008ddc240147c66e0700224d5e0091d93b073757ead46439fb96bc71fbf0ca7152d98a379b69506dd3d05cd98f30c1f531bb844062970419025435d2e592ba28c344a879bb05af02fe9a1bde51f3d47435920a5421141c9d731980203519c60c6769ce5397bc193b93ceb81e2d9ac698eb93e2529f8f77e581f5f9bbbdb059dbb9382b4f6f569dd2d45d31c9f89da8044d182ee3ec2ffb5ee1ef2917f09a4b9bb59801fcf9ae6d8dd50847496bb5f3ae9ee15a820054947dd38ae24641329cb8f745f0ceb24f248b814c95b2221b9f65e2148ea83f887ee7cd18a42997c10947de9e491d4278d84705f04cef0cb9b7125e2618ac544b1d4797abf3c82c979933048499b74c39348f819cf2233cfa1dce7909bbe08bf6d1eddaf38a3dce7d01da9e2b15cda2328e8ee23123822c411d1667f796cb4b77664a8bb7147604760f098bde1fc85af97c919ce590e8cc546b0e9681e1599375ca5b3599de01268679e43444653f44f77460868727ee83ddd15e9a0fbfe58e26ac132fceb953ace8ab52420b5d922fd041551904237127cbabb8aaea8cbe96ea26e224688e80f78808812322a28620391367339f228d951a2a364049b469049f83014b931a3cbe109492b8726bafb06e63986f33bd0dd1ce8ee0d7477121940a2bb8fb840771751810974b704ba3b02dd0d81ee26c201dddd002116d0dd4e4174770210d0dd07e86e03747794ee06a2ebee1f3a1ca8800395fe3ebf4f6b16e870d040f8d856692c368494efeb262280ee88a068cf56690627395aa116221aa26f7876ff08e7df5ee81eea8ec8157ae619e2ebe5e09a64089124370821e94790c9d72652ee3e930531b5c20d48ddbd841c6f6e8a7fff08bf8c474792b7cda3fb5424ff87e4a62fca5644c24fb315ca8f84739f43fd2258146543220e43a22327e350c6b3080ee713019d1899456e7812793c6f47b547f222496f924d0a71560c6afab0122509e9d0cc73289c4f04e38c67910fadd051f8617d1297485f7e7904891c4126b99656881c2f1171669bf4609d25c644cf4433382b117e11ac49f2238574a85d2d43b74d77cfee845edd8daf3841db5d8aa03f10b4811c9c5f14837cf02472bb1fce2792aad3e503385c725c9678b66a2fce737d9cff6891dcc3b412dfc03a6f900b11942c41d07a6d163e2e03a08a41051c572e93e3cf30f572bf34b3556a4380ee6682d42f463857a7e7d286d42df6d78736e312876e25484df4e8ce86a7eefed0d670e2bea835608312e1572a86b67a0b6c28e27d5f8a53492c167ec5197d688b3e1e1a25ebee1bdd4dba0392a2bb5fa4d168057242eaee1bdd3c7407a40b7cbd5c8eb450867ea1bb1d48c6335ba537e74b271fcec0674205a06de86e2c74b70eddfde0829c236a859211420f4e76743706ba8aeeae75e7638b1f6217b502ba7b49773e3eba430bce3eb495022df051e2eb7d9e36ca346bceffcdb41c2c5af0fb6a8b3eff705ce4bcb85ac6621f8eabbee8d5c4c70ee48787748c61e9b096b5bfb11fc44690eb8fb949de6c74962b69b118cef5ab25472b64ab14279975b1b18b813122a2bf3cf6f298177dfe0b562bd463073d9c7477cf661e1645eb3f5de86e519cb412e74831b4e3bcb94988284e218cff86a16c56c66220bd5fdf3623b190f06b127cbd9cd90836c562d58ea30567185f1a8fee7cbae8ee4ae74d08897777d26c049b7c2280c35ada205bab44f87a1fdaaae3ede0f17460b410f6f4e61cf062d8083629c9819c46fe6f52502e5391e6b2e746773f13cd9389de0f67788ae29ce139bb8179d266b74c715d68b0bb77e88ec7b8c3dbf1766062b59732d5cfd1c1f3037e0f5ad8a3074f0f08fe0e2c77c979711d8f1923424c9c9c17e7364f2243847477f8387bafa5d9fb3d788ee61f52263a1ba585ee36d2dd0e267dcbf4ce1c4cda6b41db9d8e24740fe1ebc1789862b1588cec8ee70acdc3e43697a1d11272049988d7d6ee93654854ab444c767c246128ab36280716e11ef7451d4fd8fe6eb3a38a204eeb3853afd376a7187e584b9b71dc27ad93739cd5bc2570d2aee7c4cf93863f8ed4737fcbfe7d8ec121ee65f0ef6d9a4662b11dbce217fd6939519c1fd29a1d720fcf22ee611c7fe5b22bfc265af317c5b81f626d52123ade3f12cab60813858f24dba22e07095d0e0aba65f03c1df795363ec673064de0c004384419dde5d0d0dd7966b2bcd70ae1ebdd6a9913d4dd3abac3d173a7e3791332ce62311c8bcd66f845dabc5fc592a9d2cfe15f8a3f9ce5c761b5b4590e9ce139bb9f31b5fdcdf573a5b3679a2fe6321567bed6c812f837a1f0473a452191ce21464221929c37a9fed24c7a7c3f1cf2a1057f28df6732cad528cd85f331929a24d7470a3f93e3e72c7b09a9618aee9e859fe948c51916cb59fb7036824d339c1fe339cb617d9c230323d824d35d8edadd2edde5b8bd3c96f1873d9b7db6d525eb6e8f85b5744c8d0831493224ac8f24d2212fd2664df2228de6fb4c95682897c951c8b537b0ce47926dad5308576aa3d76806d922e10cb245e1d3e80531ad4492bdf818d6ddb65629b6b54a673850dd60136c049b7240dae4c10386393fcf337fc7f3087d786a3f3a7476c06820000d3e0690850150a1f1f5404cc79c1c10d33116c3b1585377336881736ee0e75ca6779239a3053d5a79cbd4e6f9fae3f922e93ec2bf6fb3d19bbdfed3fe96229d357f268aebd73ef4298394eef6d1d55221b932c85669285a22b9fbe5917c2df9e2277d266a12921f6319696d91284ea1fbe1b5b1d80e532c36824df7c36b84efd3f091705291126ca39866b134824126445d011946d0c930018fb91132dcba3ba6bb1fd0dd36cd804e86546e7ad8bce5b411e7639f484a99d7996d15fad1227db54549462c275e5451024a11303ca4acb40800bba930cb0a4d30d1dd46ba6f60ea6e5b7737acc6d7a337773641c0f573d3bbad7e6d0d1ce7df8c7b25c48a013174afa4c0d0bd32808dee55945ee17a453b1b1bdd54c4393c3c1edce9b163d27c787678683e3ce0cff7983a66cfe401be0eadc623dcf109431e3c660e98717973ba54a85222bfedceec4080f82d41d5e3b896ec0c530f07fb139c99bfb08b8627feba1fd6c7aedc2fcd72b4d9ccc318ffb555ea313c55381c31d1071f09fea1f0c33b414c876443bc6a69a5fed78e4dbe70fe6d961fc7628fe4de37fbcf6b163f0d74997b5fedfd21ff5ba6f73e93156252a73faed25a5867cd3a584b5b6b79deca890beb63cf9ff36c2be9a24833f6bf934ce27f717ebc74e7783f4f9c1f194142c4bde99eadd2d182953aa6f74ed071a5e1334dec619de187d38a21cdfa33cd9b3fcec33b711567c3f02b9d99661d4f1ce819db1b9e36fbf551fc6b6f989c1553fcf56db4e9168b33e3397a36effd65ab94e6afbfb6f637244b7f1aa6a493feb9363d3fa637cf382a7e1b7aa68eebfc519cf7c7bf91a3bd354be2bfd782d7de4b471f3f53ea4fcb33a4619da0870f96a1bd6416c27dd1b7c3f7a345fa5e38bc165789dcc31786c34a49eb55e65ec6539c36788d665bdd564bef2f71efe9cdf799be3ac691a987753e58ade7c44a36bd63ea5f8a9309d326dfb7837f991f7b2e9c7fc569dd56afd11b38df6bd6bfef818a93665a2985e5c45cbf74f2b85af0da3c45d1826eb3d7721c2d48f3e379f3582c1623b1c7dcfbb014c16a410f871fb497f42c96f86f1321434642b118cefdd2ace26c5d9a89e2e37668f27d68c1d8b743a617779fc93ece5fe2ac368a3d9c7f9b306b2b1d3f13b5796e8a7fa7576bb163997be153912467b534149fd65e1ee24ae4496c9592e414ef33191de582c2cf94466ff61ed96890b54933cf21252fd2a64827932cdba232634b24ccb64866abf4966d51589300e94e060bba6d6cf83c3392add25c27d38b8fc46dfd709967c633f16b9d377096dff6b9ad52519c6048f4d78246c8f112096b6969b9342a22c2c3148bcdb20de79268c999e750b514537cffa8a77490ee64ac6c96402bd23c779fe91fff25fd696eb3e3f0bf76b7d7ddb0995777d79044774d37ea4677e7ba8b8184aff7607d8c7f16d65f02276df6f4e64a6fe01c619f67c639f89968a623bd64f8373c4524dcbce12dd325374ff2918449c2fc48f76b19db22199743e1e36c588574f7adbb560260606062c2cf998eef3bf8df9260606062727d2621dd3d76d77ae9ee86818189f1606060627072300ce7fa4c8f411bc22a9d638ea59e87411be6e4c43099f3cdd504efe0a3cdb81482818189216a9a466a91a669c41b69c6efb55cd2fc15d6f79ce8d916b957ad674c9bbe36cdb13e699dfc5fbab474f2d7732ded387d2c475ae9e87f4bf2f0c759e4deffad7958a7db2a7d3dc6f8699e13ab451a2df66a1d2f815674d17355e61ef97882983aa6b7248f0949322a722f27568bbfcfa7e3c7a5bf3e9b3d77e7cdd5823ef30c438a6dd58ad3bfcff15f9b317ee15acd7e386ff65ba638c73f5ad031bd65cf65907b1fd2f7168bb3b404f0effb1c8a3b10d08f99e790bf42a2fb2165b2f7c85f403f62b19af8483f467a4322a71107e27f6d46f22773d9dddd0747e2fe2225470bdafa7d9f1097c1bde9757acdfead66fd45729c4d8f2713cde0fcd067c6b9b45eb35e8931759c692d5d9cd9664c6fc68f249769484b27b44850ae4f415a0b4c54cc7d0e37b0628b6e3025f74b3748c223e90ddfe086a9db222a4e404513154636b8820d7e60831f6c80a3063fa84112fdc24fe62a759c1b9e19bb8be2bc28da9c28ce12972e5ba53e44e4167cda23e11accd0400b1a4c41830574340069208029a0304514dd14790a1fdd1d0b3fd3bb8436e4b0eff3d757330a895e5f0c87f391d0861ce6e1b8704867b95fca21164bfa3c630bcadcfb7076841ce68934d7d233f8b5da5f3b9f96a9cdde8773bff4e138ce8f24cea4902809dff0bcd95a259a4112ddb2194421e75fc71327fb7a063fddddd5680636646045d6c94008191c75b7f75d2bf451212f83ae693178e2c31830b1ddf292f67e0fb38b41d71e08abb63a9eb79082b4449aa2c514263cf0493c4ea0dc2fe53e871d3d2550ee73f801be920f2d3825487ea429acee4cc7ef6ea0ee60200539ffe61887e764b45f0203ef054778010f5e00a5bb8b74f7829d17d8f072f799709e89e2ea987a2c66e98cc42eff70905c469fc72638ab13fcbcd6f4217d485e83bbe0032e60e2029aeef66e0982385a896d766b91e496788e1c397278b95fc2e2948205528452e820050e52e048e112c594766fd2bf7989536fc7611e8e6bc7619fd0e77f7184bcef43dc2345318116459a4314330a02446114050fa01f2ec387b3e332fa1c06f4c365f07e691a1192eb333d50d20ff095603cf30c1facb6627ce715128b25e1592ec91b9e44807eca1fe02b69a2c3d3844787fbf82977088962c00229e8f07860b656299e9ee7510f0f1e2246b1d8083209897e4a201608008a2e40c144db8ae937fba5993fbf653a7338a12800142c2f27e279eb567081157c2be854004537e1c1cb0c4e7f65b1cc6f0b4b9ae7c49ce75f9b63aa022515d0a4604a7b1f8ebf4222d78799e6ad0c7d7ca238853e9f29205310830d508043c109a8b4177ef8d6da68d4eb7d266b33e25e4ea4518c2d2eed7d5b9d612e2dbd6438ffbabc9c780227f0044aba13b89af0f0da81078f9c377b9d482770e94c1084b9011330e96ec2c3abca4c50a32b81164af081121c35e1c1435a5a0f73f796aff557e893da2a9df36d580219dd135dbc727dd9134378a2896ec2432e27ee09274f0cddd2bacdfe844b47822190c0e945737da6fbb9ac7304699ea3cde5ac4424c831822034e1c187885e3bf060ad874f92f6868e272e9c37d9087e18013882179c80a2bb090faf1d78f0aa25cb69f3eb7527ce5d5b694e8460278e747792ee9ae8a2bb9bf0e0af57487d071ebcbf653abd89294ddcbaefd76a250d9ce41238459f989cb7fb47ee55ea3836749bbdf7a8cbf1c4754de8b417d6d2d61eec4460a569f87d2e0222ba1bf6b713c1ad13810d0f27fc5bbe64d3d7097aa6aefab7a4105869af0b41115ef8f92ff92585008810b8badb56692e6d6ee2dc569f2f3c71e15f1054e912537fb0520c8227ee040199ab73746b9340f0d3384010c3c3983a10502c068473488ea727fd00faf1a3c9060101e1b87e8c2013208c3f1c4126f966a3bf84474709f4a3c9062d815b02870f6cd1dd9ecdb4dc1c3f87793833d707ed98e7cdf5b5897d7a7e240f5cc10331f080093cf0b587fd7398177e8869cdde5b16459b9b8478a0a5bb8dba5342054a7ca0bb9174a744527b38cc8946849878aecefbb66a45b7354f245d07a2e8eea5ee3a70d48199f672d388e7c0e7800438d003075edded619cb54832751bd6e997fe2ddf69fbebb85cc21b78b28119dafba5994571bec2a77e6ded487749c8ba24621a7082068aa081260dccba9bd65d06b6908125ba0c0c61200b18c88201243030d4218105891c20d1346fe02d49ffcfd589837db6e35f9887ff6b0ef3fe6bf563308f4747f8799dee4fab599779ecfb1ce6b976987c7eadbf3cacffe1e0789ecb5f2e1e269f38414ae6b28b225de25ed37beccbf8c3cf61b65aa7d72c3941231efb3e87794b985ecf53a4b376cb75de30fd7293b495b6bedbec64e9af6ffc4c67ffb5efc31fa6fe3fc43322c4645e5bb3d1bfcf647177c4138e78c0113d7447cc60c40d8c804167846884d819f1d3dd5e8e1f2dce9113f1c4e572645b7338a6625993791fced1d657f8bf34f3df32917bd371a6df678bbc9c284e9aef24af7d911c699f0d8f9fdfaacc0bff25ce3afd67686804d01d4d0dddd1fce88e86487734df1d0d10ddd124a03b9a0b74370d1931dd5dce16dde9c474a763d39dce8eee748874a793d49d4ed89d4eed4ea7ec4e2701dd0dc3a51584a65b4164e856101edd0ae2a35b416ea099e95a3008740b76816ec19ce8168c05dd82d1a05bb01f740b664577bf9061b560d492d05d0d0addd5b2d09ded4577b69aee6c347467f3bab3f5746723eace5680ee6c6477360374678b4077b60d74378c1a3166c84ce94ea607ddc918a13b992974279385ee6666ba9b114077333b5c6ab81475e7b2a43b9726ddb92875e76280ee9e91d131745068ba83e2dd41c9e90e4a50775066dd41c9bd10f3a25b62c8e028a23b1c20e80ec70abac32183ee70e8a03b1c45e80e4713bac3b1457738b0d09dabd59d4b86ee5c3574e7eae9ee00bc8eb80145835a32033504454357012c3e3b9e0e2c5b7b5d30250a143059daf4bf4b48d0a925bcc75604bd29e32f739d77dadc496b45ff5b5e0213e3fd9d7866ec5e2d9e4360623c9ce9385a70e2ee1c6f607d5aadb93829f824f699434d1c5437ea08d50325e309449840107cbddcf4360be946bd504c80c227497a338e8d78e27ea09474a39274a392ba5148dd2824dda823dd49207712b8a18eba514644243083046c1041029f69163ef84ac26721210249ddcde33942d19213441575a38c2ca148777f20071c504444ba1bc785afc7c394035eccc374034ac8102a8850372aa81b65032a4837ca866e14901388a8820a8eee540fba9b76e7430ddd33948a88203c3a2262ba43a42a24fc8ccb796b12f2801f07b8c0c3feb623643ad222f7998ca0f8c0ea4a33fe3c4525f6c8e650b48fb31487fd71f9efa43e1d3fd37d243f4237040ae6105fb7c7dc26fca0218e3c36c4cc10309d1055b4e7400e6423c4043c66f3e4280428049210443a0655504de8ee0274c7805b7763808bee4ee1588053771ff5f08369474a0d44828cbc8dee9c66e0240327269c92e8d96df6caf158f83978f672fac1897accf3f4f02b9d8d6013d8a4801b2840050a804037cecce51ef39b57eae1237951a439e0be28fcd00ae107c112490100e820aa80140412dd473f3c9090a6e7a5397ef896361d67eb52b5783e12f7c02773f93e692fe9373f3c30be01a748fef51f1e48481efe871e8e1b9c36e4fd9265aa14cf3cc39abde14924e34bcb4b7ac61f8ad6854737e2453c1cc3980677ef46feedfb6b6b19c7e58fc539c4bd8f4747f97df54972de70e3ace093f8f3f732b6a23fcdbd3ab660c5798d7e38b15892ebf32773f8efe7ff5acd8e98d679037f9c37e3b7d55b7ea617a908c2f2cd4645c720cd988aa2ec47cd3e934f9c1b9e4462b1a4bf2e072969b34f23ee654c45ff80927e7cb74c716338ff56fba3c5b854aa59582ead5b9b675b9b6c907bb04a5d893d1231c581d5662f6f49d8bdfbaf5b26f221b947739c996768b3631c989ca3cbddc35fb34e4e232f9bcd9e4b529c3895ba1c27b9374474a75882748a6259fb7116814f2211d9241cfe834f22813629533c546d91bdaf43b545a2388552aa9627b82c8c13e332b4453c3c19d2e389cf9319ba27359e74dd93171fb2f880c507297493d67106e0f21cc71980e7aecd33ac73f4d7003c465a7f0dc0c5395e5b5deeb15bb6d517fd85bdc90e9d0f2ff041091cd78cc1720f53f4f0811ebe8702746efad9bce5b4b30729d37dfcb63b6f423d502cced2c9fbd37aa0740ab99fee6600020ad0f444dbfb3dbc18ce176f367a1d674af31abde125dd1d768733d2a4444747017872e39d8e4b4b99fe1ee14a00ee783c9e0e18ecc50962187edb246724c6b9b41fdafcb889d6fe923351a44bb3a53bc7bf21b54aee8be214cab3e69f144492a111642234824cc81164929b84cc5bcae62d65484224bde1231cdd281a06d08d9aa11b25032a0037dd281b9477372a3f11d1dda8ac031a0562a77085049ed0dd292638008223195150e1d3dd281b22b08311110bc08014dd8d12020a02c0b92d3f44d0dda922426c6082103884b84277ab663c804a142c5084143fe86e172328c0052a08312e04e96e14165580c0932e2c70854f77af8ef85e2e70cb819212ba1b15041a0f0d786880132474f78c56de6638f7392051792aba4ca3bbc789cb2518adbcc1de16d24bcbc11ecebf52809c9ce00cf715c5630876e9ec783b30f09944718e182500d6bd423eafa8008cf60e097f076c029b60e4187ef9a593193986e414dd29199ddd427fd9da3bfbc2cf4fab96e2b7859fb33a3c3c3a70134948d4f4619db216124dba85c4936e21e1822102a0a1bb468f96114974cb881574cb882d74eb889f6e1db1a45b4718a05b472cd1ad236ad0ad2390d02d2456dd4202480b95ee2eeaae12e17ea6b15928d21b18ebee2b74b715beeeae42776f41852c524c010a2c5248a161a270450b283c218b8c6791230f7bb52fd24a1b66eaaf794b995f3bc4fb91669146717dec13d36b71f7ebdb7089ebd7c7f606fa2d2d01dcc3b8ccf34e929c3972607a27ee83dcc3ffb8fc340f2dbd4fe6b7391d72ef04ddd29406674b52ba1fcfbf60a548e18b42b82f5212825212da85284ea1a669c4c359519c8eafcde01c02fb4bfa749b7974847e9fc433c8e3d191fb25fc3947f30f07e7e572d56c0dbee3eb8162ff12db1b4e9ce1f43a43f16f9fa738aff59ffe17f49ac593e6b52423e17ff85f648b6a46b934c24fafcd4448d916655b64abf62ec1d922d626354d23b9524bfe4893b038654dd3c8f5ae1dc1a6197e263ae6184f32a4e1db3c5671b6e6f0d516855f6d14295b8b043791603c45a1fb471d0002173271243ed317216d5206c26bc147626b35f4ee904eb226019f7ab47708c659519419006ca2bb030fd08d5f243daca51de2e5e62de72d27ad05b422bac15adeecaf8ca9e8301a01be4fc4f67e0f9832d1d0e7fdb0d239fe457501b03087d0f4750e81f3cafd92ab554674f77737677c4dbacfe81bfa6ae8f618387b792cd3f0ef2fcda47b852c1909494232b351fcd846f1ce2c14ed0dffbde5d933d94b929366b11c6778cec407eb04e72de7bce52cc0131d3e7277de79037d7643b1495168253d21a98a6e07f2c35d407ef852129974441211dd9d73b4269ee7ed4044c4258624aff7739e64cecd484840a2028707242390a474583f4fc74e8494e44d1ffe0ea4191a5f2f074916244f7e6ded76a356d002d4946e140c5a8062c21125babbc78e03f9bd2598a3478f9f1e3e3d7a7af0e8b1a3878e1e3c3d767ae8f4e8f1f3f3e3f3d3f3c3e367c78f8e1f9e9f9d1f9d9f1e3e3f3e3e3e3d3e3c7c76f8e8f0e1f1d9f1d1f1e9d1f3d3e3d3d3d3c3a367478f8e1e9e9e9d1e9d9e1e3c7e78f8f0e8e1c183c70e1e3a78f0f0d8e1a1c3a3c78e9f1d3e3b7a76f0d8b163878e1d3c3b7676e8ece8a1e347878f8e1e1d3c74ecd0a143078f8e1d1d3a3a7af0fcf0f8f0f4f0f0e0d9c1a383878767874787a7c7cecf8ecf4ecf0e8f9d1d3b3a767876767674767ae8fce8f8e8f4e8f0d0d9a1a343874767474747a749075f6f2c6b4e1e6b4d768879b9625c501c8afbe0fe8a79c5f8e0eeeedda81774a35cd08d92a205473e8f1df9f11da17124868b23257c9fc7625edfe7b15c7bd13de6c371cfb5175d1f1020406cf0d83a620114fec28163a91b15450b8e10103be27134a31dd31763b834126484a5dbf38c886044a5654405c77ffcf01d9787c08888d104962abd37ec3627dd56111374783bb06b69b31bf544378a04dda81174a39ce84635d18d1241372a042826ba514b74a33ed08df240a75e6815752f4445a89049f2c3d7c3b3fb2448f38fb74cefc414d33c719df68273741f5fd31c67f01f8ed334c719729cb844faa0e7b893af082d22a43dfcd79fb420f64a9196e62f59ca41097cbddccdf573c839e280324289160e557466f3e87f88876d262915c9717e9f936349b3bd2c927bd8074e0deec373780dfe5f9bb91c889334cff28b3e70489a5da038c11910f7fc624e8effb5d5465f1997f7fb3ef772347fe19034bb1c9613ef14e958cb0bcbd5deda27cef1564b6d24cd3ef1749bfdfb3ebfd4da1b92661767992f65baf1cfe534fa3215cb51e6435c727da45c1f690689740e690981b5869a682fdb6a448809a6def4155b2ccadcfbeef7f9a44c1e7e8e9ce3cc38c99be608d271d65c8871a61337b3b5342f97296cfaf86a3d4ff7300f1d3c78f4d8ea387b6d8ebfefd6891fb4381bd69acd0989ee934fcbd3f6d7662372a4116412ce201baae84ea14065554354426c7862448809ecc8881093a34e3549c9c07382aa2b7eb4d0dd4052747bb64a458addab34764311511112d91227406277db84b99b04f4536452254840ab46ea6e1a00f101c80e4088e0eb01b9917f58691e1d3fa4c032193f9a3c4c5a3aef5009a25041075a3ea0c0d7cb8f6162aa0d69b539af327cbd6a299eb5620888d1f65858e992bfee93251296253dd8e302b3a5f9b89cd6cf067e10f013f4e3a35a3aeb7eb0fb013d5574e38903670d56ad55d2bd8271e9965540b72c11ddb24fba650dd0c343f7ac2748776391cefce1ecbfd6ea7975db5aeda1e96e2e7854e96e9cfba5297d7fe95adcac56b33c9418a2310fb2310f26dd3c82748b870e0f1b3cba776069eda8a263b0c36907d9dde12c5b11b776ecb02388db1ccea0ee08c02a9d37fbb04e1bcb0be2929cd95ce92c646ae9e0c1085678b0687c33c0f20006268f38824d7374203fbcd2f188222a4549a05a8afa21876eedbc5a666fc0b6c807b7365446e9d0d249d2d201a27b0896a3856d3aaee5751f490ee44d7384b5728478de87b3f5fb76bc06c7f7cb30ec2d71ecf9f1cd4689589b1486a251f88f4bd22dc6aff0f17dd2272a047dcb14f738b2f4b0be671c250a042d1c1944886e7812193f13e56eae425e046b928e022a868ba6424b778bddaae188c6d7fb41ab8619bab13829d08f1c8d4a8e27398e109bcd8a8c8890900851321372830c895112d26c1623e7df62f7eff730abb636e5a46e4aba6109fc9b50cb3545a32ca0441425f03152c71317dad107bdd966cfb3e91dd0f87362bd93e8435b1434f4f4265db0d2588c369657c8002d1ab680af776d9ef733cd8f479009067afdb87688284e21710ac5623121b54a62b1586c36ab1f86f436a3e49c911803c56240201569e51149ca6c522cf6795e7006c7d3e72d653fe62d2710bd96e267a2b64cfb6a67599cb7af81af64049b840c8595e600f4037c25403f9a6c502c167e93a5c5623b3c4c40a238854690492ca6c3143a19c3b1acb3d90c00dd9eac75838aee6eda84dd700a6fb8926aac78ad9a245a3506a8d1698ac39466451a49c5189e5a31301143932d6ac5e0dde5a522499618062add4dda2a7d91de70de8281886e2fcc89d46d110c3aba1b674cdef0bccd3c876c68c0c692960d195a3650354ad0aa0101ef470b96af5036711e49738d26ad1a2fde676f383ac9d77f8da4f97b7dffb5d9e7ff3559582dad698e348aa041a43d9186437385cf346f38d34563a6bb5dde9a21446bc6ab4563a5dbcb4ddccd53e6fd2d6db4e698dae80d9717d31a9187139622e8f20f698b06081a970c26b46410d1ede1ef739b3f5ca991cfe9e755ebcf54fff30fc9b8757b3e0baba5857426a3fb568ca7ee568c293192e8c6319ababb637cdddd8a11a4a7675b63d868aff33e4ed2b2d2f9734344deb241e324dcd716936e0fc7abdba2d525a1d535757f339b3d146dee64b46060a1056302dda4bde1fd5bbe658db4378491d37a618bd60b447c17fbfd5cfb71b473ccf36d936cbd60c28b09b45e0099c9c20c0d5a334ab4f7394c1c4126e41cfdfb62df0cfa1c664488096ecd1c69cda45a3241e816c2e2d75cda9c4abda3b1c48fa425c3d49299a1499bb1b76254d08a31d282e9a2bbbd2f37c10f673311ef78cdcaec25fd7ec6b3761f674597793770922d98215a30b60523a3c5ba81f7cd9ae6e8cd3c87bed887fb6a2d929c98294845b2e93dcccdd17a3f96b939e6ea247a5cce59ae0f74c3f3c622e251ecb3c57235abf35a2f5696ac1b1162f242052e5b2fa4e775ebe5a7db2bbdca5a2e5c74b727ceb2d2960b159727badb730f6750cba588f65a2e479f8f5a2e3ebc996718cea0902816039f29160b339e91387c5cce6c958644b4d5e2e4b55a7eba3d3c5b2b2bad5594ee6b5746dd52b5e0042d556da9845aaa1fad54155aa9285a29215a295b771b79ecf3e6587aecfb1c16f37e69e66ae917ce2752349b315972d634c7263fa82a3c23424c5a2824da6ba1722d14916ea16c7477abb178ada6a269ab9368f50d479dd1adbf25b55ac7039ae1be76214b39817eb44662b1249cad5d104017607061055c58e2420f1768d8c210b6b0812d14d9828fe77df9f1cc717e69e658ecf39a75f9ce88f3e1ecd0befc4846dfb4452e27fabe1ccd9fe6fd4869f3f678de4890d6498660164b5ba5373c8988e214ea824a77914417647769eb42a75ba6052ced69e1093c714d5a08a20556e3bee6d6e62c54690fe3fcb5a3cb737566c1a99be61947f5e159f8dabbd679b260c3561916a8f05162a1086fe6898520dddd5c60692f3771397fb92de2a202dddd8e694e34020a898080ac505a6188156aa8c21555e841158aa882d01657b658628b6f8b1ddd8d615e7d11d69475d0a11a89e2f41a1cc965f47ddf8b626ae4deb7f33df5e9f8bebe9ae43e156eb26091858a2c4b645940169e2ca82934d1ddfef23c8455ebaf29c0d04d8185250b2c1dc0526241c222430a5348816c519c428e4bf1c8615f6d9127e4619d3a780dae83cbc8cb62f9e264a2a5933c497a5f1427f8a2ad52ec134614059c2b5a90c2951d5c51c0951d575c5a3c418b14681184163ca0d08413402104506802851c4fa8c21336f0841c9ea093c553164264f143163956b0b0f2012b479aece0af5838dd6341430e83c1609ea3069abf4645c799fa7c8d9f690cf67967c7634639440ef370906c5674197d2ecff76b96067f715a12f4fc43ba654bf357be8f2b7d613cc9d22facda240ef33e1ca4cf6651a4619d2e7f659a6dc534f6657bc3398ecb611ee8985e4be4de776d06e710fce15224fd95bf23ef9b7d3b0e9b353a1de847fd1bee5a207ffdc0e264fabfb5d1de9acd4e70eaf63a2704f170aea54cf3f6344c4727c068c294eef630b6622eed2b97b4263475dbdc84236bafac094c9002c7e54cc04c703297b3382b1de2e18c2f753c71484cc0624ab78783ff6b58101184c551db985c86858d2baa748bf30a267039dd15df153addf476458ce7d6667bc3cd705f456b69b158d2ffadcd705f81927ed48c8a58215a018315309620457b6389f1748779e02d2d9e4d429640c35395a70f3c1d29610b4a5842094028c148093624210a49b040126c4042164860a26570f732be14e3b88fafe37c79b3cb9f898af34bdb7cd1f3c4792cce9aeb85e7cd45717ea2386775be682d0cc9f3c0fcfec26f9bf7992c8dfc4b9636f70a7f5eda0be7fb927e2ec74cf77fa9ce3c6f79f6226dba7769ae8f848c0422ed2519192111f21ea4f97d5c7a15b12a60388215421c61c711504658811142232031c25011b82802108ae043117a8a1053a5065d95045439eaf6c6a021b7d52daed48d1ce6fefaf0f4dcc4e1a56b71fe7d612dc5997139544332c37d9d551b8b5523c7363bccddfb667582b3cf61ee31245ee94d35274e98f7485e9295de272dcdf482b9a48da5edce218779d77edf0bc7fd3c225c410425ba5b487744981141c61074300426dafb1c539cefc1eaf2d7e3acf834c7d7faffadbd971349c7f93eafd2ff3be49b431032841a4360092105ddedc9208ef9e6791e2b6d6e003d7a787f5bf26ceb37f9be1d7e9c48182f81b60888e958bf077b6bb3ff5af87f6b54083edd3d3b65d3874038164bfad16483f06cb241a23841f09504010620d400084e8030801f50f984bc46e4fffac227ba8179067d7fcbb34e7f25b997f1588297822e8a73c9e8f31f90dd9d43773f18800fb6e8f6727fcb2f1f34f1c1101f783ec041c50a54a6f0705c78ce62b124afe15be2300f2768c8bf1a39ccc3451ce6e1ecb88c1ce6cdb2b548a8740f72d083263a93e5cd38aac5e1ef97a85893783de87800041ea080071f0f583b58c10e9c76a0a3d34117edcd66feb48f56e259f813c7b393e3289c9ff1f7f9e31207c3ea144912574b739d380fbdb4b95c93bde4e7192c6d2efc6babbd4d1aacc4a5cd798dc8ebf4c2ffeb8db96ac3f231e9e1eba0880e5a399022073507357000051c740007374f0847c865f43d9e41b1d82473348ae92dc9e51e7827a635a2997ff4e9f2eff358aef33ddbfa39cccbe4834d9fabd3488d8293268af6be686fb8d1e6e9617d241cd8e8f646ea1847a4e2a8d4cf4a17aa20069d42432232020000431100303824188cc74352d1883c2b15f10114800373c466944a9c09a3288929658c31c40000000000320030100d03083041da68374a093e03ff96a46b81d7bd73fe99cd6ffb092af5c3851221a5a3aea38ddc2ffb7b62e9adfa0b677dfe192b72fe10bf7cdf646a31cb1d540d1397be6574ca8685d297bbc3f09f33c3d3fd07c51d79dbd51be6125ef466c2706315a42344c758a11e6f8f6da49b8e0114106d764b53544211e2549e7e7932751dcdb15d9c593ef4c44e02109652e941cb09937c8c45dbc6bafd1710eaf26db9626d01930060034f9e4e7bbf87660f38f482a3afb9ea247ad456ef40282f805f30339b7543f68cbac9966349e09962c6f8795bda15e62291fb62ec8b42436ba725c592be1cb9472c654fa80e9e727611e693e9a317fa60999ee0fbe2870884dbf36eb6e4925dbc12adb99d50c2d6505f71acbde361b2e053eabc18c0de63a39dc70d7ab9067f4edb3ee2d2c5c89b5738ff441ee1668528ab59d31c75ce0430ef849e9f9ed4758efb573c7eda2ecb79b76a19f340c2b8a1270887aaf66f0845f10209cc625059525efc0d2bd3b9971eb2b21bb2e35fd6bc89490189cf5cf9accf929b89c1e2131336d3bba93a297684bc20b002154f093fcbbc5b02961c3f5669a79a86b31c6fb0abbf60e1425ec9b0b19b1a375adcca405672c61685dc629bc14b39f1716520164b3e95dbc7ab76d645f8cee2e04802824dc67f93fe56831614d86fe8910c762facc19d65e8940362d4832561941d6bb9c95f822fa58be2fbd3a4c53a6b3f21358bff8a60d6301613ff2718e2aec415be75efd49f235884a077e0feeb487097483c8cbcbe9a99849b2327a48526ca225b5e2fd6a90fe91d6f74f74ab7522ba55c5c191f119704ba8e3f8cc8286003f5039582819df56b321afcc32d3840e2d320adeba20b31fbd6f02ccb36d8fbdec91b5bc1b26f07d686844a4d8366a121426acb60886cab5cb0b72c7891a85a7473272694571b2d7f5609ef2d6523fd6b561b5ca21705a14b49a2a052d81824b69268fdd20c7b7344a4fe2e4a42e80a2dfc2a0a03cf4b50d0d07844b55859b53e0e6d4cf056ba9607554d101f9d04f5508ea6bc119c91fe41939e828de3ac0db9a167bf361e412f4dce219b1c0058143b7f4ab077d449f90cab332bb7b4eb1555ad42d4da13700f0a96e647ea6455f0aa32de61a29a51b91319323293a80778f026670baa2f95cee53c3e5bb55c01a62c927af7e50d882fd49b3ceaf4b790b3a459809326ff500af0c4283530fdeca370b10bcb9cf38316f7ec777649e39c38642825d1c889c4489204905d6d76ee82fb6f1b2db1904658a1bdff84c80e016065776aaaed91f1c67b726872e87fa0274a8301d0d5eae5953d77b0afe4b3470eac0f2146b3041102ba1bccf4a92d6f19a955475a8b4821eb0dd3488a24a94d476abc36ef62b78584a71f21baa1e40d521736249e29986e3e8a6902641168a8beaaeada4900bc9095160e41500ad8c61bf61632d33a111e676f4afe12de33547ad3624c6306cb96da0a031158baf378afe10107fe4ec4b755d409dfac744a7fd964823ee1e32422c5401d30b3a7630868c23e7c49197b024d55e8ff9f1417a62ab43485c308438e6c8f5a24dee612bb17f9fd29f66c5da2f9776fa4b42a2b261597877c6985997adc7e3120f94e24e7df1497ce25ce53e39b99d8411b3b61519fb76533edc82dbd209b122dcf539683027118d20882ffa4aced917ab1c4bff8529edd841381a13cbc80bfeea734b26a880217d81cf8b17974060944930b46a5cde31f98b502c58923b95d98e3cf33b027fd767d9cb9de920ca17d205b29e3dde36d7217175a79befa79a6e0760672da142556af74b53496ae0265f6f6d8f585503625f40c75ffaf0766cc84eeda17c8e49d545d886e8815dca61e12e85c67fb24c21e50525c29634fa055f0f3eea0d711e9d77fd69f5ae4054146d97eabbb3f8cb30a7d8047a7d89b78cf46e21c2174dfbecbacdb3b719df24da44207d0a19d0637e2ca3816c72371720cc6112bbc0d88bf26d06fa65354707a6efe1af916a92605c3bef4fc81a024506aecbbbf3f0298c4d0d2ff97ff924846d467ea8d0a7c730574a2b3cb8fa8000350acac4f823d00f1940110313ffd499d311c3ac186b0673ef238b210d8fd60e4398b97914ec1fb5edd968ee8c0bec72681c131bc5ae79724dcbc94cb17c9645f474e03ded3de10df64e167a2180658092058079336b921809ec705963584ab62ac8179798f8f65439193986e63cf6abda02beb32bab93ce2dd14be662ee606074d257b6ca27d368e51e60f6ec89a921305514259c6e72ffc08695d37d83bd87451fdcfe07824e5e7371bbedf2183ca6c4a5970d988c6b586e9b0278131cebff8f1c90517e621de45b58b060df4f33fd05c94f8ba964b541105e91e3a93bdd756542d669335c03c128bbc3dbed8ab88d81a3c6a21d3391ab0cb5cf8b0eaae20f24365b3d233408129dc8230efce8979847f32c18ba746eb61cfc40d63c0e6ee26975ed3b6219ff30388ec5007cc68c32b26c4f13e0161b07aa3bd1c0ef1890b0de2a95096085043f670d7593cd809c9a5d8c0ad9efb614ddf2bcdb3a22465245ef46d9a0278f4c7ad796377cc31a3f417750f31e072a04ffc13e1e7d75a768c6f9e6bbd3297fac847fbfbd318ebf387d79ea58dab3dcfbb98b1f51d73a83100dd00cd2df46375bd836841908252e3b9c0ab655cc7820b1c91ff3f5e6395316bca7d13c702af6b3e5d5431b6849fdd231fcf23eddead79140e0d68abbbaf8a9050c20d2c57a0705eb3db1baa43f36c97e71813f64f334b779462ec34c87c149cf736b8e0716257b0f6d61069b9fc69a42dace34f416398efe081002e9f490cfe7bfe1f6b5675467459ece9378122c90d452fc4b9c7ed45905e5209079697c962a539b0df89eefea640b4274af9fb03001b7cf596954e2cfbcff08d3334eb2bcaf0272508b9baa7f2a4ba40ea8bcf388e20f8e98e0fb2d634df5f6b5a040002dee244c97b70e4c3684cde3b9d9df6c80ad2169198f61ba7ea0dab66bce1fc34505fae8fd014605f08249b8fc04d44891f7636623a076027397be25d7ab621d92afe69813e2b3f0fe41881509dbcbcd5b213f6eadcaab7574e59b94ad073c9239cffbb74178eb9674a556371c4cce1a839842bc3f79c1e3f1ce3f49f3700d5e07f31d278385edcdb22c08b425c0096f9a93fcacd6394d109bc2eb65f441ef9efe08d569feb453ef186bdb85b9c42acbbb45c262d126b8595e3b761f0791b99dca8d4d75cc6c82f3da213b174cef009f0fc7df7d6342a574b403671db5c30fee75d8d495d42ec7dc1a19b4a3c8d70af33aaf51af9250c62fb44a9365317c1a0f337a2fe68c2893b968de7b74932476f73b01e77918806eb1f72c4c26d063507d7d2020e0bee03905ec4b43f8bd8dc92d6a6d6f3e82cd41cecc367b95d479614eeed81e744bce44c9e3a2c63c1189249843e0a3a77f976c2609a8422801794a4dc5261c896b58748c80107466c7c41f4f3334677dc5ad943f48efb1cb94dfa1cd9f8e2fcc862246521cbb0ed273378501e4d6e1e802029e715fc0b0abd0f8a6817e26d4e743049051e962bb822deaff617d715f029e26b065ccc2516f203444c8decfa06c43bd5cd7579885cbd09aec25ac8d1485b649380afac80ca4394d7bbc8a145f735bb001aa2cb543d85cf86ae4979d3868c6ad327c61e3bae595ab39e7f46eaceefaa573c28247b558009fa429c900fe952620feb2ccdcc5d974ef71b2e95aa172f5878653a2f95290bcd3712ae5b7fb3390ea2d87675514e30803bd021df3068f8e3340191945bbbe12308b055cb222a674b9091cca4aa167653325f96542f777e47963d99612703d98e8a8517709d123dd500b8ab3484d953536004f31ad0641e1e996bef815fd9f92d2cbe8952fb0b061c247755b08fb5603cf9f2ad9e705e06fbb648f59a48fe3d8bea00320b8859c59a0c5287d5574825059163d48dfc60523b33d67cb59c6a3371f744cb32497c21340dd7c0f7f88524b7c5b87f3ca1d9ff50283c0791baccd4d2ba118cff84e0c12a9e9f7839eaba44fdf7b3952fee47be735f7f07461ce08b9b02a90a830211db9518c2801ca814aebc81bb1b09cdf37b44f3e94ef684f20887c8bd48dc5dd94c003434b8725501a4583c6636028757b587632a8eddbb9588201db38963b42c2cc78ffc04eca524ca4605c27f83c9197e267070a5a8b905aae4b1274608aa5f1c2b75ba5724c44ed87136ee6313f5eafa74b5301c202117c001d9608736de73a3da2f6dc7f4a265265fd4c3e622a31b2e7564e4211f2eb454bde3bd31c7d9e305c385a2fb9ab5e22f01bc5e0ba58685038a2ec57e45b7b53cefbea6b2f25d2d69f759721c36da1c9ea61795556b3e28b087fa911212a4ef8f54f3d7710e0089290e4bfec355d157aabaa7ec0e422726c0e94513fcb508f320e2379ea43fb34af7d143df96fcc12bdc322f12ecac32e657f40e3fb074c7a67fc20a04cd50bfe7a9b917b4b430590fcc81dae47f39910ebb3bf87c1e1baf4a4b565de3505d3a48c4344ca7c9ffa36d639a178c660a1c008ae1847d974e1091655bce49e43cd92572ac9f4a049b083682161e7895c83c56ff5c77cfa0eeec4d89228701dc09db5789ca865f5817891bf97ab2951f71911bda71e26009ad8b6edda1de12ba03b34ec15a1e64864f2ffabd63837edb71223a21ba61e5a7aa102b058ce893df931357af916fa996fd0e7c0fd2fc5400e9c5c84ceac1531a3d6e7cfb470c0ebe49afe3247114dd38c9b0464c2df172cbbbb41ea0ab0ae13ebb6a704e562459d792d8d4b8cc73ffe33dcda87c48d7c10f3631b8e3b3b8de1c7cce25b9671b8e9c7e24b331ed78c5472a2ca1967660a49a9b9eeef8718a0a61352e8aaa4c072396ce6c65df16d62b598e1fc623d6e6f467b26522ebbc9d791a18146c06a110ff2b3a69d16860b960ee1a80a87a548be0486d162c4bab9ccc8d3f5e794d63c9c0542624c263c8ddfd21468251a933b0c67e937f1553b5c97c7c90348f22a4dd68b8f01e9cc763dc87755c78308108f1ea9c38fbd541e007e1e8fa15be9dde64c7b78e84f2c7fd7db79a692a36e971e97793439ad3002e2f2e20eb7f241e41cc89419c7aed5c767d39886b192379fffbe1366159bc8ef1294dc19e8dd220863ad0f4be5554e3da65d5976e4cad5227388eb7c02b23778fcfe8a57beff1065def9521e6204daf1f18ff6fe7f5fb4e61f5da35d9968140a0d8b6ce291c41fe57722960658fb042d087ba8ab0dd6f591df433c5f0fb664aed2993dcb6c5a917184cb167900f406825406da9913417b050bb24d25d577f67ad377a1f11b0495c14391a13b0fc386414de0832556e63e3b7f483ee4fa2ef1153c24636b9247fdb7b28da963463d0faf29c89f54b72ffccd2156d5a1f9acb27991dfabba298e779e7ac7ed7192e1f58b497cf8f7c38471aee857142a9c633e5b2fc4939a58f62f7dd3701c4d0298906318c9d7ad704ca7fd286f3f85c70a8e065756a822af506a50e4eb73248d1e0586c971b6f5bfde74ce61eb2ab7076fd26b444946b91624df73f0e63c588bc44c03753038a6c971a69203b2365649fc4e8083f31ecb1ff5583e8f7c3cd1067620f4df8f1ec95d3311a6679791769f25c633785cc5a41549cfb53c3150899ff436cc6cad837fd0b194fe9089c684528d332bc92e89f26ed60ddce529cd9b28560a2b2ccbf1f17f9347f8dcb3391605150575b469b89542e82ce428f44a807317959e2365fcea50db38b0fc161d9c477280e97f09f430f12dffe43bbe8c0fcd02c463c12ced91db119910cb7b5e79ea71e77f25ed1fbd02e7463be0080136c72b79d726e746d8e277b4ceefa1f60dbeaffcd3da8f179978548e2c09c79870cc1d8914be4cc0c1cb432ee7a78117ddb345b59ac9923be0e55036499a852d4922f9491b5f1454174d665a2f52bbe1006e156412f1b327961e3b1ea19f786b8dc31db6affc4c68fd0e570b6a6bdf4925ec0be4243568cb050f3f74e2ee67a2ad9ea942497699681506e79b4488d529ccc5135f9509958aec8113248707acd1dee54b3a70badb609bf41749386df16dfc2b0065be4dd9207e99256bb719611a26aded45c4e5a5df0866cada7cba31a7d08b214ea5ed804012239c0f801fdc5b66be981cdbe2b308e55995dbc808d9d621c6cbeae9a563341eb28027596e5783af5d7dd59a103999871411c32f84a25da1c88c75dd7fd3ade3b4428ae42fe6688af02c8e5d79dcfdcb7a50537c8f7d259dfdbeb78e2b789cf815743870736f92a026baa655754429361c6438c3d2362cd9d4773d8e85f8c5d4bece5be680b2c3a9e0892e9952b5c838f3c6bbf60e975997c8afce5c3587b8bff618215b7a08da46e1c1fe1bed45b54b44a3f869aee61610f4f77d9f353b484244e5f4ef133d0dd8aafc49bf4274c3cb97cdd169bcc4055f414989ee93796c36a4efd9d03690ab075d2f31668c9a1c9d53fec51693d6e578dccb23b2289c61aec9f31da51acd3b7213bcb03c954f51b778d2dbb4376eb00fa56d59e2c96a88fe88d53048106f69a3400bafcac5c5521ce78b2d884a0367047692a37feb31d10178ef9262754b0ea570fa094187bc6c294a1a10bdc6bf1db6384b261853b9b6bd1169a1d2666073b20c8e40594651523a76c371cb39d3707fd28661aa81464b47093d1ba86751ff7b296b58bc4e09bfc67662250c1af30109f0de1a9357b7e1cfeabdd8078f7e4eea13ac1b28f8e1d9c7844655f1d1d84cc08b6c89a0bbe165b2f08fd4b27475ce135d4cfbbd0e700f8fe5fe401f18650087030e11c3484d931220bf78dc386aab05dc1a123b60e8f7ce6a9c00549be68b08afc5a440a824863c43cccf1f0ec83eb664cf6b1409f7d480328968ae1bd9a8bcf4e706229efeb6185c072e0e6860aa8a13a4d6481e5dc8723bd5d7e1f0884248039850651953cc28aae4b649dc8459529c3e363f4ed4b88a3ef0740e81802348699b10f58ed774460ed6bff8306553d1187a409fef26b9c650be5cea6f754e44bf384fb941a73ad1db168a13bd0dc8be76d2ea37aa85f3e68b3c4e634be6efc400284be3b2c018279865bf7ff9e61989966f75773c251a24d5d331e92cdd00b10b491cdba57e3220f95d5ebabdf8f5146ec6a53d874aa965648889bb958b95d6564b57c92ff2ab50a0b256aab975581440ddfe80708bee8f785da569d7fced44d83e117056273bbc9e6f0134b6a11249d670c59142843c64e50115da477e29381854b39c392f525ee4a348e551b9b4fa53c73bb96cace336afbb610de27af89d952c0f1819c3cab0f56caac8f3af65210b3ab2125ee0f26aecdcd7a289658d7e110cbc0a359e57e113ca734a29db201581ce3b80c1c9a171b72c7b3cd9b247e77348e4bddf6faf59ec0b960f46f607d398759478e2cb8fe2aa60bb21a09f76ac6ed4ddd9f1a07ca159591fd7cbe33c1dcd3e5ca84c728bcf68c801a70af1b55ecdec3e69dc9428fec99231d1ae5e5cefbca173621c046eacb49047b58dc09768ae2bbed592708fc0e8051c4ff9f66dd07bcbacebaec3144d69904389c02cecc54dbaafd08022996359d09023a7fa4d1c38ef59171dfd45259ca3692e5330a739b92f444ff95621ee1c0df80a4ae5252425c7216f5cbc28beac9df21adae09311c4e8d6f63684fc40815a47d7445480d896eac1082e5640ca0ef11f489a60910925a637a5a2bbf1b9943922ad95304b4af322c854c4f95c11884cb61a4b86f74ccd203899ad14aae83b388fa7d8fdeb391c754f90a1b9eadff186ef235dd4b74ec9c4677543f2560e39de21ab2cecf8062c7942b815dc08f6e3f3c51f94c4eb3839552e1bf0ce4d1f21870d120387681d96d83f86ddf3d2cce6d7646a59ffc962a243e87e52ae6d664982db1ab300e138a8e3a217720e87f963e318895b362359944c6c31e8348d318c67e18bdd2f7b56b8771a33d32fe08fbfc5635fc0eee5c27f091667ab5fc44873799ff681e8b63e97247c23cdc2a5938125534582bd9ea727186229ef2d7118637859969553b617fb08d7af9143b963e10d6b24b054cb8584585671df2669ee9f1ce9384036121589ce0f1791103aad4b5c1c4eb4cbd40ae9abc667720790a5d963dc02d215a788f2ec4d1e4a4cec789d18f19fc6b6397036c5e7e7ff26df79e2872a61b949157dc9fa0efb4f638d05d1211470fc4474f26e278954d789135cebbdb18d4fe5d324b6f19deee4b2b8cb9d5afc94095570de11069d9c1c11add0d8529e53ebd5b98a5103079c9d006e4fd83be1309ba2b81b98c492acfa6366798187d9c852f5a91b62b551b35014c439eed8e2af9efcea0d94a28d43556960829b803959f3eb24f0bb2ae84d5d519f174667de45953b036fd78f398786b8d27ced588a3817939d5ce89f698999937c1d2d1fec8fb286106696cb30efecf0364b37e4db865bb7f6fdd6d4695a6f6d4a7d17b5594b1729a92cb314f5fd2d18a51fc3cf75801bc6a3121a0105373c4bc521b1dfc8741ae98a912aaa29d10da2c00d798a62fcb70e750046d336d25c4d8fefe3258c28236a720490d7653f57e915f7b57824e91d68e704164bbf145d094c1d50e5f3d87740614d7c2dfce1945f2309a07362b322c786296a8e771b480e8f63b4db4c28a26ed80a2c5e6fd65583e0dce024dca01b1f0f2f69f10ed79344d1b38c157f14f4f0b46a58a28f641a0f9c90d85f6e2cf31ebbcf6a69c46b440c0123a6bc6e986036dfcdfb80917f114ff4117a0ea4566a8fc6536706d00b58ee7f1bfd67c7cab0e38707e31075b215b444ea5ef06a030ccd94ca7749957252d6333d0e57f8208504c6699d4dca7020515251306958613422b0a79b92bb21ba0464948ed61258078f47fecd8d53ee752c0dc32c5f2fdd82583b808566dc868021533926476b9eb586b8c92463ab89c0bb6d29abb7e62f17b4449f81e7d4e0d0d986e34097eda9c061d9a2085c401c99098974cf3186908949faa86eed875c50a21154909574f070005ab189afa63a133e3acf76ff6df33024c955e2bd0cf57bf6917522055acd63ff9341f496b3a08f2439fbb630e48d4551ff3c6997acb1fa03f97a591841dfdf9175c9afbe7bb6d45d056847e7ad2152dd9d33681e63a30cb2a5c11b4547d2716bfe0686774c98e16c68300f5efa0ea9c21f87ad5c962eab9af33051fa34f5637d3ec0b0fda6980a6f588714caba9b9d823424b616310e8980876a893b080dd51094b949f77834e7b1bff857bc1eefa810da6010dee320771567d10ed4a0dc2524ff86ff29abd0502eb9c5009355e9cc7fb8aceffd61af6f375a5ed23228d1c89b45539b03600f6300f6e6be7e8d3f9826816865e7defaee34117eae2bf83efba4ceeb30c8c97e5e110e3cf59470301b9605930125c29bd7ec4748e47dfd2a8eeffd9072a89e8fd179b7f2b529090745d0cb8f63c08d07000e226693a4f9c0e007046e3120d2ce907fbaa17b12a5fb8dff918e08733873cff228023903b2586ab918091ea14f0a0314b7110f40193dfb76523a83c0465680f2958e83f82b074f12988420855db32b33f453234a1e84181976040db9d0f5891c91e0093e6b89b0de63716e33dd44dd3e5d7ec50af3d4921d03b18cc8a57615580ada50e247d6d3af8c8c448d755f965053c668e9260e9fc05353a6170cd379f20744c830641df996a44ffedeb291320fba18cdbed303c839f0ee972bc286afe6f027cc5483804f0e280277c7774cc808365df81e35d13159dca9c8e8c6ce9eb2563cb28c6db1c52cd57cbc6393f00d83fdbaafcb2ae81ceae03979d944d19b6950ef3dabc15122160011881786d4d5696b84aab87de03d3a077a700c0ab3d6bfe88e70f11517311c3335b36c98f42213c0f6f405359da5deda851c5f9887ede45bb8067a0e2add937bce11bb71e90e7ff7eba7c6f2db318fe9dc357c5f957d41e8983842067a868c608dcb392e609d9a92e7015a5f78e6e10cdd5c5bac10c59631ec3bfcb9e48d71a816bac6b4f807ed2c09c9bf905e60e7c8d88d9a31b028b59c380b43c7856a049cf67c8f57661abc14e2ee0ac9e45d79154bcd71f6c6c00577cf47cd0e3ef92cd38a7ada3c5a9e7d6b431a648756df6d4301a2a3e32a11b84af59ca6e1039b1ece6e132c16264c62164003b39d087948e22ae9f06caf66a6985bfe2268a54777fcacf3bf5e2aadf2fa26ed481cba424904d50ca2201ac593dfb46310cde0913bffedd08f84edf72c07d8ad7c938a8805e5c28d377f77355b816a0d9cfa6c6c696adc79222a222a126ac78a3f540ed7bd9a89438ec11232b63493166ef7537a8fbf5f5d46ad005482ec095e6fa624c7c592d83ed2e71207a0698c33ebb720dbfa11e99d6f666f980c315b4acdbe1c3087e643c9c7b032597ec742e03bcae87d18646baaa32337666f52728da52e9931e2699cbacd0e2a92beb7d2687e4789c58f1d891223ef9bb60e64c72a33fcc8322e8417255c19ec342760513953c3e9c72eddcda53fd8afca5448e9f231b8a64fe7be3c953bb9c3c4e1b8049bd9bafdb028bed9cff031b7f2c897448dbdf83d0b9a041ece3b26ee19413921e8ca1863f1f421bb4c30c68232f3513f367315b28a79be69d41316c004728efaaae16820795cfb7005061dfd41ccca2eea97cd96712d2627e0a8432c307b8fb5c0ceb7f64292fb819a7fd040b2d91b578508d91d49bf37f5fd4975f8b2764afeaa28c90d27ccc941176e728dfb7f9cf7fbad51e9aed73fd776a47287c5358939f817be036220ad66704dc60a45bb7ee160757bb1520ca593df36c489a6095bc1f6064f78530d1003696967dc6638e38a294188a28705dab032c179399f228ce1b61614b0a61ce9dd2ad29b9492e38517ff1c473e997e4efdf2288d8f565046a6451b3e55deb7fe7ef67233ac7ce094c74719beba8adfe25a53506b1252678e67a1fde5f87740a48f8c0c6098f8c73057e40b8b49751adc5ae81fb196d8aa6dccb97af4d612b9c7dfba3d68ecae610241d661ad592b35fbacdd31ee3fbdc0ea4f48899074d9af98444f5af67e9e5b897da57303d9e4ab94578ab3e7acf7cc42000c036b66c0b153f08bb279c7c42316e1f35d5cddcbd6f4eaddab800f9e734784997f357aff817522d821a65c7b71a443f50fbbc4e0057d66c10bed2acec1fb81b7350f4121d71a4ccfec8ad3e829ac27c07632b1f36ca0b21a4b76637cc708cbc67c279fd33c4688a199bf4cfa1f23a983771bf250e35c8d62aa97d5157af20d1f0497d746cbaa160302497a39e0641d29330d573df7dcd48c25621dc06fd9586d56080dba442b9a26811a7438a36ad904b6efe010b3540b1ca52ec20cc1cb06cf665759e159e9001a0f48062941023ab81267eb79fd6944ebd34f9a585b106ed70973d908cd37dcd748233dbe258d86ed3719adf0682a68609307b1595b8c53f1c6697c4f8371627c1e5c16dfcb84ddb4bbc97ea77c9c62a7b88600534688bc12183a6315b38709bff3fc03fda32a422b51e496fe866dae58a24e6956d2a0a25d53b4bba4d122854fc55ad8c390bcda3ece1cac4069ebf1c70f27789eae3af062d0c118c87937230067acf8008d1225871c1dd676682aaed64cdf9584aa74e067ca513a90283e926087d7c088cf9c2819d2212c9dd65d1f1cfa7004782d0d4859313a26c540b1251e5a00cbc4140e820c3a0433dd0250f25c54ba2f4bb3c9c91fd229d27ad74e0c04815a6d2533cffb7795e4d652c8455dc243d7e5515a8b036bf560be518fd7f44780ae0b1f87e2704ff04a0e963ec6f3ebfb216cfa5d4172c70f3918799583b13c1d5fe301109cfe8e5f9ea2a5d851d3eb655fff8573e719e0f851c9b22d89e7c4088704b0ff429ccd8e4ac1dc7fd5e903d5cf0a6807b9e56de79d18ca38c3898ffbbae5c45b6683e78928f574bd6136451678b498913637587de1af73c58124b147a92786ea5835d3c55f7f70ee2ea38c34ecb6bedce0553338af01705c2a1484e0d790149c65e0070cfd1464ff1e871ac398479e6cb48fb7ccf129ddbe1fe0d899cedf1c93686403785737d6baaf0bf401205c2634f6d02428331977eed5eda4f87fdc84c9b94a97f12dce7ee0c28137eab9e134f2fe22e5935e20147e041e035290ac59eef6b6c364f9635f7b64d197c2a427c0084375373c509990c9baba33876616fec01b93fcd10621f05b517ddda7ea8b9919d7e2110934e38b5122c90d57aaa2ac74cf2f9c63a47d09f672d4c7f939feb8680554d67dab8b678a41af3ee021bb154fa97eaff135ea11b2aba05f351d56f0b695c6a5d124b72e085f304d11c203394a9bbfb5c6c0ca8ef23412b1a22b658d7c855cd07cc6ce8882a2d8e09df806f5b9a22af38260ad9f787b9151353b4dc611260fb018f29268b53932e709b85032c37a4532f18c30174a32c0bd9a658b8d29ec6752052cb453e610df084ba7ce54c4a0b891ee93537a09d9d32233b7f156647d929be942a105b2635133c424cdcc910eedbdcf5fbf28504bc645e0c23be4ebbd4a8358a95578778e2beb4a4176bff452d002d3a079035e4808b7943071b7e24e6f734ccca7571d6c9b932d48ea795a917f423332de95bf37f308150865edf16c88b558033117dad43ff696405937e187ca2ed60d4f3491b4b63ce0e930a9c46152f838d9f5c35fc58900d656ac7c5e044ab1ebba2552203bcdfde3e89f1a364b4593883f736108cee74854446c721e11e8777c2ea5efa2b326abba0405b060e23cff3763b3c5e178fb02dbeb23fce9d6e1b4c5fe4971aead524780905ec1ac06e2a771a7b4c8494178ad9bd88b8a7a32c78142b5165e7701d5c855566404f5fe4c9ede238d735319aa5ee83610c47e459ce0773f8bdeeb34b733419ec182b9f8164315af4f5e67ba6c34737ff714d6fdbc2b142f908c475d218ed546bc8ca0265de0e7c752bebea247f69a2e7a6a5563ce92c27db05d0e86ec0642a3531d733b3f80ef2582e8249eccf44aa768d0aad618ec993333245422c61445283da01c81413991d0e58ce707ff4b46678703a3a624380d1df040111c4b2d9e05cf617976dd2ba8fd9ea32587689680d282310ee0a866cc90dcc8ecdb95a1bd4125b3509c026c268617b4f3ce67eb53eb90e8c1435330c9eee78eb98ad5734fa3afc5574fd7498270b33a0b0a05358f714000181617a8e37673f3e91cd5f1172b8c2535085286470f02fa7a1630e6203c92626bc6893d93130e75d1df643029d65cd7202fedb86f1c9f9db0d7b75c6c4cf7d8ad7d94a3b5999e1c7c72b5db60f39708c48db56e32b526dfdebef9a177ace24a33b826aab389cb82dff4c951b4cf60f092cf1e9fac6b28577ef258c0e96f3de85272977eb758a06cb32433c1c964ee0771bf1eaeb303a86369819a2c040df9ae29c5502d336601f5ec07d8d4f1c9324dd1479c75e7220997d60c0ef19fdc65c2c239caffe17ebab13033490d94a231c2a2248b6134417e78a1d4ee3e05fa461ecc6f488263f5e4d72b34e3b063e3e7c3d5de31c2f6b372db84b3a62ee11eccf096d4fa8ddd111fe31e861360ca4436614731131dbaada358ba27c298411439334044db2f19c6e6fddfa3716ba79967aae473003e6856463bbdba275d1dea5eb8d825e5bf91341e33c709edaca770812fac4db4667ac045d39d0cf6933cc61ab4414dde51ab84f8dc97a6bdf78c3be0b8d7d5c21d357990bc10bcca9ed53258fc14fef3bf1c1f423bc53697cd5397f9a2dd6e8de661716b0f42590ddbee78e6bd532e4ba80c09b2a3fdaf2948c16fa71e07af5b90410e0162b92f0f24fc33b695b9aca49a4fc5a076849f33989167ccc8d397c76a72460a3bc0fa4b289d586160dd9f59866ca2cae58f04408bb1124484aec25692eba2681f4cac9c743b54e62e8203f0464526c682f7580b0214e7e3ab9a281d52a2fe14f77f1a2262ff0d12e3ac354fae4eabea6f44617efca6c7e6dcf8fd9421feca2379fc5b7479b46e8f447f1f91895930b6bde8a065ddc4f65d05f15cc821cb33cd7d1e9af1864fc197f3be5fc80e4d1d15fc44aba7a8b8300b9ba0b79c9aa208318d590b2710d4af6d71a292f8b6175e50f95c7351de015214fb1dbfcdc8237bf5a9e0618319b83c11e63556ca9132142c51549f4830f622f0c199d9483d2b9ff8641a877c931ff327a3d957fc4f85c4362c53c8a8fe42834534daac256952a3c6e431339075e37a0169599208ddafd65abe587b43a914f236d5c12c1bed82651a2a56dc35f06e8a97722810aeba26ad05fe32f3e42e9cfd0bfc28e28c6078a7a6dab0b5d6fbc6e1b924e231e6ca7407fa1969ea19b2520e6d65d0ae915ca01c131dbc252b3bb9f9ff89a3f7518786d7104650203208b1f04eacaf3777b843a8dd5cce3740b68f462f5f06478ae11f7662d4120e592404f601898490d7c15ac8a0bc27e1784ef6e24b8f9d01a58d3e4a0d470d53b37284868ab0790f4948e34c98f3ee0a466fa52e6b79fec00f0e42a3937541d086370f18c31fa21d7a9da3101026c5c57cf211f8665217c5649f2e2578434643c7230195a725d1a69f819cd76f11e6b871603efe15dcebea524b229a4c50eabea8478fa31c939f6b75b2bac0e408298427db3b0949350276018d27f32ee8d73f411386fdbb0f9da87ba7d0944bbdde6203161e789599d7b5ff63d7e582bc3415e8463c2435913d73896e6119696761212168c090e9f84dee69c9487ce3e47c3322be04169626ea481716d682f3c185ceec7049910c9c68923015e02c3055206a20c579de308eb6ced489869d32f60690d968c56c4f46da2cefa38ccc409385b55ade8424f506a3ea17841d40ae023c68f37dd028c83be7fb63625a1ff987b4c33889fa189bd6dc71a886f79fa03a8e6015d78f7988b0713f297dc4e8cde4e5eca0875aefd35427f84d129906ac43a072974e2633219109c49aa94bc1d9b1a7f4d07f4273558b473ba75fbcff9f2f283b36a22e979628896f4c8bfa1dac2d0ab03efa9d73a3629f224166d28e680483401673e3834523d205441d84bcb6302c5e14d3c87c631455a4f465fe7f70b0d8fdb4f20de9cb16005b252176e6be1ba953ba189d69bd8524473827ec685b266873336da91983140440331555b1f22fda638d4aef0186a337ff99111c68bb2fa940856fe2204ced75184b465f76b756479cb657ba1230ff908dc21a03297d6911fdf47e0bae07a834cc7f349f507227d2b7064e8403764c7552274d876161151ea7dc99d37e50da29608c64625b3a386ae41a99a13a582da8d57be8f307ca2e0b754fe42dce0795800d1c7fdadff3196710584a310702dc9631e07777461b34f0b8d713a2b9d0c0586e9784fee16e087866a3f6a0a00d78f600e81825c2f562ae5d8cf70cadae5df08fe95ee73e08a9369f47806bb7d1224b516a57f90230588a648812635604b7bdfb49733a9bee79439982380031ea493e24656be70f53cb1a88535f598316ae3eec7f155710d04db6cf34433eeb9c8f86334f525082d4216a8d22c20b78bdb7259c9225fdc07dc93b5587d6c7954e603b2b0eb48037bde1208dd582d75db12e618404a50967265dc3f400629cfce1d89d2f4c6a8658e6fbf21aa2fc0bb520c0d963de05581c9a1425f29017c8ccd70654e91fd8f2c4a6f66ce0d0632c09b2edfe9f185c2cd93a36743b95538991ae66bb5336d065515c24490604363fb22800f408563ffead4c721c21117810709976aee1dab02e7a38734193afe632c4054a4474446714f5ec8021063ed8f6cd019dd1f60155ac4c8638bc9d9ea86982222f83b45e5db49a748fbaef97a3284b647b9018eef20606e21668df5c3cdc5cd5ffde0c77761f79296b85d3db4d4d609d79020bf82884abdcb53391a065189aee3caefe17516ccc679315bc632de47426c9bd51c6649bd82b230cf9bc1dc595081171a3526ffde5c0c702a9c870a85b414a841e93d855ce9f0e29acb063b51c3bfc19e4115afc6b59d34aa0f5061c22c4511b5668363f058419a80115a03f7a6eb248b3c0062d58426a0c2aa6410177fa114252e1d01b6e18662399f9f99fd408761ef4ced9e77b39fd99b6b211af2a10665f23d437dc067039f8cb94d3e5e6c39bdd8ed43e3ca7ed6f9f49525e962a3f920cfb5be764a566f3092c3db5ec6f0c36cb5f387666602bdeaa3e39e645e1e2ae11766cc1abd310ae7586276b0bfe54e96fdfca0b9f30dd202f53f85d5f845249584d5b61e68241ea03869c125308f6efef5d38a59a41bb2ff3d2ed00ee9e3e3cb76ab186e91b90bb3e1d3033a64ceb0be1e66aec19fab46e7e83f203a787615fdb4234574530477127b042054e28b41b3581d00ed36c0e3a6eacba511ad09c1ec04fd4048b117db90667bdce40634322cb2a23cad03a880d89f0348293b3ac5a68ea83603c29731c381eb091a7abb157b1e4e99affb373464640db7639f26d2cc1fa3c1017b75c199858e62445c3d61ced192a254587d0d56e0cd962042a754d8106f60f3a0178a9a1f7e5c0440c3d56e01b561f9a0df8085bd4ecf9e40fd24ee2c3b0373d5f884d3ff343ea493fe0090f191986f68523f2f5c6d67cf2f07af7ee3e15557bd9bfa5d42d4dd77e2b2718a42441fd9dc29b3372199574f5ce3cc3b4e1dcc0ff72700560cf6c2b04f9c8ec36573aa391900bdde4d6fc9e556ea56b528181d003d1fc1f9e97fe4798431c1457360ac1299bbfd7e620867e878732683a8611e640fbd0e46da357ac5f48a26dfb0d6e75bcc1a06859dd8f07fbf0cfa0568256be80a0f77a7f2cf17d3b86137c5b6e7d69182eb4685e2e29949a4c8fa7536571df2872afa6c76162e8e1a006340dd01ce068473efcef402ed68d04a0f300ad1ff1f95e65e08714452628e43b3ee81c15e49cf60a018e46aa488fdd12c3034caf19a2d56f62046dfe53afe130508631bb88a063050cec1aa1d072edf9b2a5ffadc4a1846a85b8551c1460dd977e93557265cf06ce34ff8ab6e787af38760139b7f0bb0e1f617a1e0752e32dbd9e67dc0afca151c1cc9977f66aa4999dbdea936bb567b59aaf7dfb101b913a8a1fbbb119f5f6ba218b61ab1b39f79c56b896fc2e58495208dbdee6029b21efab3b328c828cba7fed6fca4b23b18fda8e7b23d39255a926efcb38b15ef41f32928e5c901690bcf5aa5d582a6f981100891001782659ee23f60914bfb6b0e6c13e9478afbdd526ecad1ccd4fd15806e630d98869af16cc4eaf8b3303ed76782b2b147828822a820740f3bbeaa9dcb401492ca53c262636396f66fd48e868bd3012a22716ebb4abd39fb395d2c7e4861f14bcad170a59094ec4efffdc211514003543f7a53294162c5fdaed5edaf7725a1422e704f21f9929907155fd4640f2547398a3980a3d3e58f7e3a528c227217ea78e84244b39bd8b8166097ea28540a9e18ca94b15e5ebe8ae677cb4258b9ed40ee2940ec48bfca6399f17981fb44c5207be2f88dd42c8cf0ffd0391114a0c285b14b57cca2f4c1c270bf52eca32650fcda89dc7f9a0be787b8ce37a34fb04ec9e54e4ba700bc28e389dd12d8a4755aa3663e3de7577f80a29984fbac19bcef9f2cf9f27a732481ca5a2ef9c8c2b0075039bd8f49df55636122803dad5a6fe2d1db4d59cabb1e858865acabfd6cc7023f312bd68844213bd16eeeb017e8d6f9f6e5a9277e0e74406afffee33f7d6455aa992c43430eaba8ffdd94032679b7d78b987c44ac4a9c1265c06b0f7d7afd2d58693dba62a340ff348afed4cabd456ea98879723c0044a80de991f4e15a1454d90244f375eb177a62a6cc39f83d9ff3f75d58796a6cb1f8ac1cd1044cbf2d2e05f87058a3e1fde48930edaf0b917c414dadfc328717768bae5f93fc7d8fcbde292e8778423dc77f736f847600e6e218369a5b2257c6aae20ce1ca78837a39d4260a87bc5e6fa2aa40b0227ceb134ae55a198b4a850032f08ab56684162b92f959022444b4dc672498c5dcae34d13fa8985e0c4609009452cf79071871ae5287b3e9bf35f5021879f24b3b91a48190507ab90b816f6412dc66b06409901cb9d4dc3229b92e03b8a4e0cd670eecac765f2220788673f1367614eb8cc741d163e3c9539a5af14c39ba7e141a44c1062eec8fd35f1bf9a316b9e9efd1b8a97855d5cb997e81a8461dcc6c53dd1608a1355642f49805ef8b2c3492ada6914c508632262f2b15d5e3ecb2c1fdb6ae6a35398d3c694e656c64fe4412ba251b58bafa6388946eb12344d3841e1beb2588001f9e498e140f1e91c7619e46735369f0b370cc039332191345caa3c649df8801aa406aa270a93f322c3376317c8af9fdb19c4f7c6169675b6bc4714542a1e1d9510a1a0a57441bb2b489c7f588f3c11632ad99975abc22dfee04af09b3dac8b35a6a3737fa742bbd2a50265d1fefad91ba835655e5202db32f07c472b6436e100fa61da35999c4d05da64af569d6af054731102e1688582cd8f4363ce8afd159cf6c65a31d64d2e9b6ee709672ddb851d36bd2a6dd4b4a987cf522833f474c20697ca2941ffa1910f87d2cd3c22ce238530ed6282d8f35de4a7965957ae75028e7a5b48d4ec4b02f28fe891173e92fe38c308153fa3e095529dcb200c8c501b82e81686e6589584cc6f77efadb70b698022dbacce60097173f611fe21bdd45198cdcf0a015ddc60dacff7dc3eb0d445711f37d624950672179f9f69c18e212b2a38824d15028608411fdc8f234d5f236988be92649a227d05b73f59269b492428908c4ef763ec598ff6f4194a40df260d4bc4440ea931beeba771e38cd9899587213c085006069b2448710f3b2be7c4afb1fbedf4830f7032b6a2334da825a713b4fd396f2088ed4ca3fe5f964bef65f57164557ccda7fc291f72f68f86047726c33b2e3c8deb8a698e2fd4d9713127644b8da762ede9ac084e34f69a604c4aaf614609fcdbd1074f5fcb38a859650f5b878e6a91898dd057a955f1a362ed6e105fe5d0b6b24efd3b503a47296b9944cd990f89388f4737774bccb80dbf6fa61579ddc64014bfcc5efec6d5e27035bdf40fd0ccc16d53a96e45bd16996d5585d1604a073c1c660a616f92be25cfb18c476fed3a4cf4e8bb259a976e8f53bcdd6656d27686566dc06688bed5104f7941cea53249dcb6d4bf8fb136b381e7ddcc49a152cc8aab3c6680055017b4e0fc0b38a3ff9e4ed64ad1d71cd4013bdc293fb3013c1c32d5e9123ba54fe9640bcd2a5cdc8dc1270b873eadc9b04acf9d5fd5fa88f729e37cb3c8f73b5b0df05fdadd7d82fe86142b4c8ab2ce06580b3b33fd2075cb8ab28c8e1d7e505088084101dc9c8a0053f837c2ca1255f8297e6f3d51a9d1cd8714cd5e06605ae165443c29733f0b0bf9df271845b82285edc5e1f526931971ef56e687e2565274cda45ef77337d838744fb2bb4c7be3cd8ea68054ac9f278c71a072be44c537c7892ab38d9c05147087c3282288e4749adefa36a5d422609e4845a9994ca5fbb8d52281bcfbd415ba5c29b703937ce2fb7aff3b2dc5e90827e47275d5d534b9703d43ecfffad92512f6ffa4046241958619ff950544cc9f6ac8ccbad834afbb54131dd91dc8bb07a2d1d2153a98744c4aa76490b03e8ae2d5db1cb7cb0f81f9b5474dd2daa0d273ca9a36882867b10626a6ed7405dd64cd3cd21242cf41673a8e9907d0c680601109d3cb82332c905f9255b977fa388efdf1380232b81c0722a1f1f061d31ab5e0178565dfd04adf89d032eddc129f1e94d26fb8b35b86e45c9291d04a8310593aca9008f7e6e90534a582017757045f1fc7ee2253983c492e0424169cc4bdc8499ee7a4cf91b64fc2d9e3dd0cdb906637023ec3489800c18e9c81e6329062ce704f140606c24b8a0b0cfdb834dfad539ba37a674fda333f96fdf505629071584290e69099c7b977fc285ee336f45202573f06e0d4e657db77a297b50b3daba56b6ac2bdaf2cd19d591c567825a3c6425233c24be48f58b25d363aacfa58c041b89bfbf666ccade64d7902c8f4aa714966de4db62ca49bd08178c86647e13c1647b045e1514308aba8fbd5cb26ee154e9fa6438ae93133a13bde89bfdece19ede0fa11692b015583fae52ee3cbba45120542afb7cb5807c44afd8a88585a1b09471b5000af9ff7fa35099119343853b8f76962d189fdfa22374e5be571f2b37e7e5831fdb7dfc3e93b928da20e38f91faf206b2f855fa09a8b9ade454c7d6d2b4dc617ac6dabdf6fc8683bd25c63e64b1bad7807cc3211cb2750705f8b0df6dbd499a5bdebed6f94ef22641de66324ead409769a7db924526449b4bca01fc1037bbd3b45108ec00ce8d93eb88f0033caed0fe02d80ebb21235737596c5aa589d048e8dd338456f2aad027f48bf9938a85c51338415724356b4eae2116f940b9dcc6413d053e8398df6dbcc73712fc99e2806cc82d6a1eaf42236d0f8ff5c7e1c7c7a02b12e8f1b4193b49b4c4698198a9530e90df2f705dae902a606ff37f4ec119d01570cea543765105e3d511acd1715ce4484ce0ffd61c872da639205be36683de5c36389bb3ae277058859824b03ff124f630b12ddfa1c25aa44c3f3b7c4bf060357546b2aac30d7b38c007eb8e85c7b0da545e0003fe6f0e3c0be8790dcfe1812215f4e5d599f3f0493f7df4808d210e0b13fbbf74b1e3eed8aad36d9c3913fb3f371675c8e0bccf69035b889cd954dba527f81828b37f8073357fe9aaab04e4cda72ae06e68b51e855d305b4259f996022624707524053f5b553339058b7c4600c123d3788278a3654d32128c8d4ce7011d5ce66352f742b3209b639cbb7967fff48737fa8744bc0bcb506078a0f9e744b8fe78a9a6889e9f6527689b6b91fc0c30999fa3b5e02610eba40d67165163677a74398a3f4f9b639e0c7789d32524572e06d806bfd38c8189f3805986209c9e9366aa29a73056e8cdc4f88d38196f518a56fa8dd2a755ed655748422f7cb9e1cda6bfe858ee5414140a342ce3eff57d17142936c74383cb370ec7fcdeed74d6db785855ff466f2b10faa0f0bea2a6dbcd9da1730d6ff970cb839651edc489d1df1d2ffb1531e66b5364d60cd07288c4ae9889cf4d5adaa0110af74b41b2f9bb15cc1c52e5e6407edae12594d33b8ade11713230beff17738d84d7e4d29416a4ec60d7990c93de6f718946a187203040173f64610c965bd3fd990eae30efc6c9867d3d40072b82ddd2a9ef0134bdd20beeb801036b8d61d96495ab1069ff848270052b495cc422d235c8bbebb842102105ff861ebf459c98dc9df917219edcdd9fd1cc1caf33a31def957fedc3cad5d366ac2b3079857afeedcf6be00b3daea26af5617f5411dac34fbed15674b9eba46e28f62f18508d325e62343c569acf753062291e2b43ef0b98826f652c444ccab850eb1ed4d7be0a61303fb90c9df0b4ff2148fac3fd071d81049e0042c7850f43048286ebb4e9b89c150a63b9f15f1d4c477e12bdc5e58f747d4840209d29df5a6a3250369a2dbbd97d6913f85f391f35c870b0385bf95bed0b28266c9bc0bbe75a39bf8fcbefe3419df490ec3b4db5103b59e30ec243d404785e7285bb429a478c91eed0f008fddf50e4df89ce6bc821b9aed5db0d306a32beaedbf7dacf13dc85d7a317c83c4b886183c04b5c71b19e05706df40839a39a4359fdddaa32001bb27b5a154e91644c70ec49be4df903220e4fe7e75d79fb67a3197be3e13bbd7f267e1fa70df4856b6fc03d30e96f597fa55c0f85e39a415809a158f8126df273a4c63b3a87fc66c169a9a74724a945937687d0137bb13b7f9d99996f6242aea96c9ccb66b90103c04dc9feede53c40774e715eb58a7df3d226194941770738b88e709d167fa46530ee877cf774943e290f98603e94b30a31449eb36a21131bf1c9c1316a5aef4f453cc86e77a7d912120042afb9fbe5489bb6903a72b860e86d9eb78769180e0f0a2404d3bf49f791f8e00fcb298db2679cbf84cf518784ef164bd3fb38d5ca223f8755365c46abbf29044e386b5da499a7a8d7ad76c1d2758774b25a90a2e1d1e82cccabc68017c41ecfb8b5f70a1a3949af53999855290bc84eff3400784a5721fe672e685d9ed143c46e6ccd065c4e66d0612977c0c5fdda41a7321311740a0e52485c935e41408d9ed9be029ed5dd19c5b945a81af1d8721b90c37756de26151b34c1bbe5d93dcf3c447e9a3330859094f3ca8d6967788a40d3e800d90e626126230904cce606a2b5458e94300b68a42335f14d1b52445a1484a5b6501d3ab910982405acdf79a96fd8f4d68146392e01897fda5e04ca40f7e9474e702024a7aae31c87a94651cf75a1e33198beec06653715fd84cac4ece83287681f96baacdd2aa20d2ebf7bd0685c5af1756673f974434dcac10bde6d18a8498771ffcd4fae2cfa00b6c8a1e19a67a49301dbac6e37d5c7aef8cb8bf0b74c0ad7f21233ab05c4e8a7b036b28f2f27d24476fe01c69bffb5de358f6dcf6bfa777665292b059aa06eb3607840a6ca3f8b7621de6fa1e75c028e638bd20efcb76b15081a12979f4b8481edcd548dda2e4c7dcf6b5dd38f689d73f35ab19be9100a594f4f3cb0f399730bbbc4ec1fc33e2b0a1265790b139f670d3fb25568a416efbc9babd5bd36a0e58ab6bdfdf398a1627f8bbbbf183bbabfd42f49063279df666300426cc55e30f487b26fe6cf515c0b564c8f158ffdc1732a9755078dbd15340cad3e5cb13431922172c371b27e96b6e1089b1596f9a84b6a52005591d6155fe5ee90efb9008c7ac14e57ec8ef8f6eb16e3b55dd19c27f0f26f28731c4c117a8a4826fc2abc1007291d648758293cffc4de42b1f491d52cbecfc0f2000cb8675064c6cb8e2c7d1d3d7c35711a37fde7e17f7215fe9f0f007fe30aec46002bf681276b9e10a62d38552183d7e735a8a97806d1da06152d364d0094a7b3e96a4f552487ed5038bf86ac1dd036d6c4e11dd4a1f8006fab855a768aba1b8bd8817a8aa9223414e8be40e2d8d8a57687699278649489e918df75c6d5cc1ad201ac91b3153adb48ad3b610edad20309296a67fa799f03904d332ef897c989e3a2475f1f350554967e29479d03d5fe3aa66bce28245f880e67f18036b7febe239e313025066066b64df19bbbcd4949a166d323bef37eff8b83d68c0bab9829a129a8f8b7437468a435560715de37f3bf01c61486332170aee3b528de8ee521e57827b0e1ff90412fdf9c9c9d05c863ffed8f8b92d1b0b323bb03616860ec203d6e24ea1fa8758820b1422f9122c2f0769c6cf031ec8e1de7149b0ebba5d3a141432f2a6c6a09902096af08a1deb82bb295ed295bd76857a34d0f45a8312639b04d93b9fee7cb5c915f7be24688488652d273531878fd33c3e5dc0b134c8d3c09944f6b937a0deb2477cca175a444345545ad04067a82269ea4d12fcd1fb6d938eeefbf43945308e2a43cf5ff264244a58349d7f749a35ea8db1773c7b6f608b08d80406d11f382b5054dd152a24b0356a9e04cc20665d40038c60c0d501aa2ce5c6b032bdd42dcd5a32225e180e99840a0c5ef01b15d8b3102b98ada6bc7b410587b85dff96f033a07a16cab175e8f4089118805a3892c21980353af93379db6d3aacc4c4b67f7438ba0ca4ed29d1ac08b9cbca7e496db77954bc577e5e1c9033bca9ee7767cbc03f7b39c404df340b3d08e495ede62bcb08d7b6d2047ef23364d517a0402c7611fb9d91292991f0c453bf1534bf9053d389e0dfeb41e4f33e9d7dfa881a1f157212cedf794a9cc75d00a53bc4e412caab6baa55ce2a017d400cf560971202a0744c2c90cf10a1d840844d7945022589df58380691fa784ef412c237673b411a37068ccedc6e73c43e2c38268d23587d57b3b606dbb84237e5905e0448c142b63224058b913456ba89dd9195b87adac4acd9c7c8e0735082fe9a7af53fc210ba846b29b0c043aa60c9a8311a4db1036e1c7e7666981cb1c621c37a3535037e5cd96cb7dfbe6921534d765973f83fdf742f53a2997979ed0e0967b47ea3ac3550d06b60a6238386287c3369371cb7772565d7cbe58180da901d9f10c31e3b4717c9138c7ed063470ac0d4cb922f0bf649e8f3e2e1f6dc430ea72d2181d2a030f64c07c8f9bb2874383f409c8303d83d85250e45f94421673afcc02f8888b9b24164225eb589702271c7f1ec521b9b08f16fe4967d0545dfd8c0661cdfa57ef43bffebe23a153993321eb1f931681493bc882bb5640435bcb5ba528691878d6b28842acbd75c3d365e0821b28b844d3461b85a75b402acd819c5680b200c9b388f7993e204077c165e6cb25f598b89ceb8b5ea47f7670d5cd05b1fb00a9fa123b593dc343f594d84a933376e02fc18f5578f3a3852cc16bade36250408985d7c74215e40f63b0c5c24c28edfed1b91ee48a93eb4112f1f56ad6b85f76e3b69c9ba335928807bbe5e1661f003abc3517eba6022c0413b5c56de6d2dd9bfca239cbf460ec01016849798c53b9ed47262b166a9ff3114349ee556ccd130ed563eeb8951ac5a3e4a1e8367802b04de7f50b5b472722c04d0f7e69d0ddb612ed66afc3bba5202f5121ebbce1f0ce3f99f73b52575c58f10d16ff74fb4ae82e114182b0fc5900e7597f3817a9efe12fa3b92fe18d0de36f61ab97b108fada2e675ae2f0650a62409227115316ed0044e7c6180b0962cacd219c88df34220aafe0b436e5d8b8016665740e9362dcefb842e8d77dc491024d8403fccc8d074bbf5ddbb9bff66e12158a7debea555134e62c8aa0a6bab7eb3f69cc773ac376c3c31eeab11a14b56be1050030696aa1d2bf04fccd6ec2d4fa4d84c596492335748b2c850a35020885079456210debd1676c2e78266b336897817c7b920ae5c03432735414c4b92a3137ac4be696ffe7e620bae320b15c174da55e9a6667e966124dab9b584011deac4944575cb53e856d0a812751d85b7c81cc46d683499ad039a1906108e8bba78b5b6e2ae4eb1604f0db42ef68d434ed09fb709c9214698ccfa3cb91001b5c2ec5e37f988f879cca203933c96d459a420faada3bd4224f06b486543bccc81e3ee222075781c6a1a1a638f0c05116c2ee95ac9e5042d42ab22d022744328e09760c5064784c0e5200419420aa6a2dab448bd2f0404ac1a83333b40e7e43571281b0648be52cc9479f3d43595c5e0ec91013de4b41d3fb595f56e8ab3bc54988c30fa6d13aebd8126779a159b983aee958278f9970ab2b23b7fe2f6170a4febc299b5b52e5b740ba2007bb8065cea320a3e8a62688edad78a5760fd7268246734e0f073da0c36eec71fa2952dae4ea2763533ca88be1ad8317594a0f5500dfe13c1b55b910028702366f60f4a1cb78141eac343a047a21676e284f2054a492d284a87e9010f399fffe58ef3a97612f8973fa0eccc0d3799fecce47dd427b2e8d37d01ca0617bb66fa5325dbc33eb15699066ea87fe583c2f984f8dd1f93ae7aba56e01eaa58674d9fb40030d4c5b82e0694e3d0bdde6f54180f6eb09f2d9ed9b48fee06a9f723ac0db3127dc8e5e67ce9567a5d757e93a38acb753875fff3fe0e6f22cffa12a3eba43f61fc8fd273164fea5f2453b9a7de5055aaed81ad91e131f3ab5d9698391a7861bda33416f683e3c31113352856a2d68b1e2aba71b57ebe45e02819fe73af54585beeb9a71ae39ff8a0fe43cd2f4861aaf23e5c29e00ec8a93ae703bf353ca0eb069796536368aebd9d9e9b57cd2dca69a6ce0d1c6dce87c0254543b3782a276d92a688cf700b405575d39c0858acd84f59dd1fddfee518410bdb16f2e60e526b66fd139748cf9a7b5cdea72092988538d50a3c0cc7292df80b88024b9b5843ed825800dc0947bc46553e5be93902ea1d4cacdb30b1446d18f03c66e404cc888cd0148731f7bec7825595281e12c4a25f066e1d862ce327cd0ccdb63d68daf9cf3b00accc6ed1b6eeadba5582b90f8938798cfd539fa1d6e16841f5189f78536009048521faacbe1b426a80f036645a87d23e97541ee5644fb07d89b32dc3030a485f627f39fb39b37c63bc1bbf1966321a22062e7a439d1f6065c40ac26ba43f428a77f21fdcc49c0d6e83e24afe8f7e017c81ff8fe6fac83ba8550e7335270ebbf0398c3969f20184820efd797cbd01a701de34126d93d414975db08d429a4b176edf88d0261ff646d21267ce2603dcca1460490e41f6d6299ad25b8ce7d8c3251bef301427ce82a9e282fcf5e68d3a783c07ac1da9b32c8152723468b39127bfac2fe91ac632798aa4c87ad7c0de68f168a9172fa0b04d68722ec6a20c94b70d8e57a9bda43da61a4e62b0d7bc54746e9e86f9ff68c21874afc9459fab21d5d37c62c9c744b1f4027cfe8c6c3d6d1dddbe65c2f91ed3322ea196f41d9612acfbfe12bdadbcdf16f5d17f2f71613f40142c3318a0106480f31d2dcb25a0777271bfac7d78a0fef196d30c091897f407f207103a8df7e7b8fd3150e7baf5637b816054c348d53d27cc758333cfd58c0c8558c49e69feff989d16ad33fe2f4232d0a82e30bb39940b0e2c02671c603d1f2b1ec5911bea9bf96115bf99ae9594f9eb9a54796bed4a6920e34c6aafb393d0f22d33fbe577e659311e7ff8db73af4cf63bf07e1173b96ef1122e328ab7963dea8272e077bd876d67841ed0114d5b130a9728b2354d90c90e014e747d244c0efd6d56b353029418c9acc40d9246528647daabf1ba98f348488dee79ae0f1edae8d765e0722f0214447a2abbff4c07303ece5100a1e5efb8311eead9f5ab42d4fcde36d5de0eb9e2774ebe407f1f6ece8c532c646c3fb48620eb8eca309227027bb82d184462b80bafad9836202ab609cb8fb9033c47b272eca2dc5a6e6632f52c3b60523115bc84f0ee89105b3b3b0c0ba95a629b06a4212a97338a8c970468ed4a111617c1dd34150b39e77520cd6d8befe80e639ee164ede169ab6b0846e367431ac581eee40e98a964d62cb6d9545b8d703a2678785ab5da208f1a28a7f6dee486ad837db15b19939e93e9f6edb41e709cf4880c5382910c329ee194512763389e29a9fe8ab806785ab304d05e5e5548ab1d0acae7e7be3301028b0702dd30f70e01c3544de1ce4ec064d399c7f86bd110a6f9ab6506b5f3267564a80a2504eea736ea3d35be60ad114b493f200117c966f0f74031485668bded2ac68baab94f0d06967e1bcea613b5060041b098c8f953d1680e5adc1861a101ed2346a03d7011cb7a6ec26572e2196da2c580920655a8fd1a46eacb437335e833567f484e8c300e102e381da58daeb298dff70c9b26c266366ac61f7a69a5b9798e66bd44814603972be91e7c04794d4bad8847fa5af2cef6b4d803a05d9dd34452abe96a60884bd9a3ed7d31a7f7e9a4086d6e790fafbbe05ff7ec8e1a4abc60daf82ac6a92e2ae2c8e2f9272ab7111c0583d0362dedbec012ed713c5cc4d63451f6aee9aae8187967873783a93fba9a1519e55a0d1ff4f6f9fa0bacc85a3cd2472871a14fdc28ae60a6c966fa9d4d091a14acdf1428f65bbff7663bb5d6ce5c6822881228e2321fd3b2a60c5814d6600a71d7b401ceab89fa74430bb647bf8b41092e1c666fd11974e2135c08f83dd8aa6e23cbab79fc306deeeb2da852d453f5b39791ba21ac1102772d95bed83c6ba5cdcbcae713efc145b516fd317e8167dcb9999f5f35535e7a094152bc35cca8ab945b1b6e5aad69c2cd59faa622ccb3e91b1559ee19d3aff4844970dc944bb9d53e77222309b1917fa569724a577b1060b98c99dd205013cb75841331128ec6042246a94e6c36509fe8c56ce77a98d2413e1ee3881c3a0609d51eba6e681fea882210c022b0ca352744d8a288dfee220aacb685c2a6d95dff6eafc53a48da16471e17effcc42c96090ae8d5b913dcedcb7d10f1d9cffb494e9c19005bb8aefc3134a3edc74a7bb158bfb2e36c4e92a76534f23159ee0fd34b90222bc3074c65a83c36b70a354ef9aee867d20e7908e9e52f9c6dcb0482a1edca998e80ececde9f8526fab23dd53133ad34679b4389994e1679549d9c3b8f496c9dd5b05a21d536c2622634aa027d05f50e25a5b93ff641531d051b0e723e0fd12b1a9f34eff2a47d863c18bcc90a81cce44bb2906a309702a43559ec4f45f17febb7a364fff816379711e93daf0d3e8b8bab084fad6b9bb8bc15d870cffd28082cf4e61d6bf0746c2a1502dd694ed1ada6bc511be3cc13d950a349411ca4d9d587620658ee8e5619422e1abea698972cb359a7868ea6f147fa175e951311ac06b27b005a3651fd813f5fe3d85a525c4a597c79893b115c592236c41f42130c6f2a23120193741fcc810376960ae6b627cc0c02209feb1eabd52c38c83f330e5a49820d33ace60c68d7afccf8d3cd59402034afc22806a2081ddf0274dd05d18cae59f8091f84e4940a4cd90072836d17c4e0cf6800b6cd628ac0bef65826b32774f657d60aa393f3a96ec339458ceb331bef25e5189c9a105303f5150f72561eab0e8164036b94d0c297c011f37501901693025554f0638130f09126e9beb3b7b33dd12643310e96cce234845f67b861f06c6db6c494f0b9bb9137adede32c70d5988c192be4c48c3ab1fdbee40aae817d413435f9207f725861a269a915fdefd125b7656c4efd37904ea200764ca32c6e8975fbc0993121cb7ea7771791c1f7410faa06ade0747513f6823bc275bf25fa74546da32cd3162001c3ded2f3aafebcb54c380ccd68d6c90c48ddc6e438469af454d1f6c527ecdc144fdb0f8a98a8402a9909bcfa493690a4979d6ed4aaa1c9fa490e9f20051eb6dc68605d250cbf9cfc99ac6c1039b9f6782691ebe9a912b7b6b45ca10ad9c2cf16a87a1120c59a774ea287130a9de767b4439fd5c931c4cc1915a2e16178550a51509e4f069be9738a9bf4778589347b5ef971a023770265a3b1cfadc16ac8b2dcc0fa5b83ac695c56268672d86560786b9f05a5bebd32bc90d5a9dcf2ff09808501e68afb425aa0908d97ad321f5d0d87b265152dc7c80b09e5637c6328ee3870b9bf6b02796b93032164e40a329c65c0f9573be4b3bd6bc03fae2e5e0bcf15a14f8f42681b15f12188e3dd32b8c8a5eb0020af69daa45e92eedc847305d3dfa363be55c030c2f8b72311a7ca0f33c02a304e30abba0d98831c005d0cd22b512bbe218132ebc8f77871e5fd3e9d66283d68abcd36d8e968f3aedf97ff17e736e7de4daee0daa462e2c9e404cdc6d3879fc1d79d94f857aec693605f56f1801ae56e2b3d3589cde1c9c4904e7844e8bd7b794d885ac082d35642c30af095ac4f77b144f34d60773a380ff8e6cb81d71b2abac3d405cd2ce4cc755c2c500a49de7b9aba7ab186956f164e58dcdba3a403dca57339424f9c1f8684890e7780997fb9e1b4110ae0accb0055e045154bbbd6542d59b1b931352564780b2e8f324f8d3493378780d90576d8542307da92285a3b19c0e6898076999f3105f9f41444bcc5600807a3465b83fb1c648dc2e4db12ec6cecf8b8af72a76f181e676fde1d1e1aa13dd297f0c333285865190609510c65104b000d2d627a2f77cfd9d0fa59ef6f03d6833f7b9e63ab2a6105c0332944c13e834f8e503b232bcbd82b63c830397ac7934ce382478a83a60641ee11d8092349e42600ac96ad2891b66adc349a77a469b8c4720120c0b06566101a899077ab9a4b43afc9672dcaa786f5b540ed05dbfc140b281c714f08ec591e5e7158f6f9fe13ffe332cf26cc71088e160583e98aaf57ec0c33db11302f162d1aba68064936d35697a2be709ebfaaef2188d2f76e29fa35cb0e1885a04f3dac354e80687a7fdd1fc1b7501d9c378f92b97f2eea16eb54192c20adde855219123dcba160dbf2cb4d039005ed8c3c9ab3d69189c6fe29c8687d59193114dae66e0ae74498b7f47b64808d6dc5ab5e6ee2d6124dc7770150a0df3e7bb5b4ad2279f8b955d32785d7f8aa619724705c488306eabcd6b619bfd8905d32ee7e1a0da700f007acf9244a614fcd186d3cc3de2eefa82767dab977fb9ea4e8791fb25987af1f9b5f5a5e65175cd32c44066b0721f36108b425d0717530d3393fad8e99770de828498c27e0c4f292dffc835779cbaea02177a63002d92bc640d30828621fb6f9163ca8cf81cdbc26a8749eb3741861685c4d1aeeeac76be0de5239b5caafaded98bd34dcbbbbde3924bf64b306e650401482a64d01f0bac9fd038e34cd42bc0c245eb702398be6106733afc4c35cb08b9e4cb52fa7020019259378b0642b17e6695ac37c2e36881211906ad7e78f3fcaf8034230412bd4205b2e0d3e645e084beac5d29d4acf13323dae965822830f29c81740aa6d1e48c30323450d23d3528b39fe9f4edbdf6589b7d171dd9c7ab7b562b2ca3bd4f77330af9dceb117949d9c64be7c531f00e8261aac1f89fa5f72daed10a55f6b6a547039a81e38dfa63d07da0b1d598433c04eaacd9a096a5bab1d814ea9d52a2f852576ee0c02a9a5c6c056f6c7b3fb4574885560996b2c61aaccea4a24b534468779ea7abbbcdc716449f83a188954d98a1c93ed8e40ae117aba3a8ead6af9387b2858b6a6b1b5c1211ac0fe5e24c7297d744ee9a59381b97d22c571cbfba8c08c79355a69520810f9e8632a3af5a51e67f88aee96204226ea0b49398b35c21fe7c1e10b1f160a48e4064a024d2bc55e904f61b50a44df81ebf26c399385d1c075713e0cb90a7d29578dfc7b315eee5964949e49aebb51e4101041b3ddda0fc1073566d21532f64e155d1329d3b6abcce7e51ec60cca5147604f8af1eae7981703717d5a15e8b47a03d3751c3ca60c15c89929f44bf08965d50706bd63698a40925481d03adefcc145383c99638a0ca4872a986f545e0865e7923bcbde59df878def6d8043419bcf3594e06bd918006f1380ad2a93000e24690ea72925f9c273ffc370390aa53d5af3c9ba2d8c4ef2cc81e181680c345860353e3ff8ae22c8556e06dc9b12ae3124e6117556231959369185fc0775a6038fbfc2a51a99487d8d0ce004710d10de0fafe6946cb39197ae5892c97782123b7f7ff014f0a35c286e08387eeb6ecc5ba4629d64604f03b1e286c1d92eb5866496046950927125348c066612d8cdddee64a3266d736d791ec326730981a4ba7922dcf6159dee3f677c116ade8b823070c8c97f799b6f2ed049267d8c52830450a0cbdbdb13080e8d6ad738d6726e8f2b3f82e1008a345628baaedc343d27d6e7cdc530032cab6798d359bd5002f39c730945c5a5df935f0ea4091fb89790179b16fbc6eba333a18634bd6cab482ea535d68752122d592fe9ebbd118c026ed1381b904b60017043342731633cd96a79ab450f87ce93d94aed12a8317f4f8fce087220ae901a63a7d705b77bc4abfb1df9f0cedc418b8a5d7d6658fbe0c731170eb6f6d5f81e02b859422b8dc40ab23fb6f431fe8791436dcb1e9af274f377f57f453fd7780b42cb93a29d1bfc42da6f6f8c5908ec110504e8e2d66134925642d1584a9cd257de35805e6f96b4aa71391e08b8d5eb7c1415584aea98cc264a3d612c64b84ce1945de5f2f7e37cbab18185165740f178a4404a39f58053b579955424ca378fa30535dd904558161ebd34d64af042c5ac09a93fbffce5651958ea88f212dec20c10dc94434d93b6b89c8de85d9920c8094c46c6bb91222b2e7ca33ad61bc015d45508f2b228c5946e379f44a5cea85664344ba0e7cb15f005b5f62eb0aaf0a799dda7cfa168db841e021045076bf9fd103578437005d24521d8eacc2539048f6ad9a732daa095bfd27c8efc1b92911304ba31a0f9eca2d08e26e7fc04b2c53fb2996f635b4bd26966491771783fcb7d797ad4c0b54ab824d4550f1fedfea0278bde724129fa549edb6182542c930ddf40c9030248d30a00ff1a258c0a2968b64e9a0aa221fde601b181cc4ce19f540208145eb614159ae59ea008ff36707087520ea5c9c3a5d3a5b1bebb180ef76fe238431f6c1203a8af0d865a2618d10f4d893cae54ea554db123447e120ae94d3a91c042b449c1747dcaa5d2eb748efef21b84b8e52aacb0548a56446be9a36892f70b74a3fdcbe08aeea375c55d6c9561982b13997d5995f4dc44c7eb6128daf27ccc4c2f0b77f03e8f91fa34de7e5353612504b4401bb7305444b72fa550d46c36d44deb6f8e321fb6be060330fdacbdc442c271d66ffa0a32d2e05353c0d3cecf0b298ff5949b6864ef47b720bdcde7c12ad67bb74da3f6607aa3056c4e33ce1e03e28489b31a9e8382d1a57aabbbc14d5a24caa9dddb3446048a428a4d09e455d8e71b9076ed08eeb4a0df3414ace7ed98947383c388f8c3e0d9f8acd0738dc844b583d350ba8364513d5e4e937825d26a65ffc2c547c32b200bbb609c3848ededb6e16b0619761d4326a219af28a1464a58b057e4a451aa156f6f887635f7d2c27531f87e1eafb46cb9feb2e7d82dd2b2ec62b9187f942a052828d5715baa592b208c875863c4e252b767da9c9b54b27c075d2b0edfa21ccfdb06b47bf69f8ad8b2012ac82bf828ea2eae4b581e196873f1e20220a009110f6094388c0875211f56c3955e0344f1c35bfb24858d14577edbcfcfe935abbd0a0a1e61180da155038ad5b3f26cd46f974547dff45df1f46cd7cd4c40e9447da0affc07344a90d90dc23ab337553bbb74437a5bf3b7b5bb001e25402eb6c00dd7c9466a08368202f885a4372c2449c3398c664a6242030e26b3689466d99cbcb48c476c3555750bfdbd2416c037806e8ea2074044ab251bfa5dc12a46612c93ab108da89810527685c7f3f28a3888285a706880a7c7b5b3b158013839e5b1c884f627da983e7c29734b8c83a6fbf58ab343f240413cfc4f063345c486d12889fa1c991e5e5a0158b16592785218aadb149baae838f95937d50bc7320005350d8b64916bf4d04a6caeeae1da9d288e6dc144858e9c538025db5ad30e8c73efa926e7822393aeb91d29f1869b9f381514a0388d03c22b2f53e4a043ea6e8fda8cc9e5a651a543774e617c0b0bedac2a01e2fc574da5d805668ae9860f7576fb01a5c4bbac932df473b8e9bef7d9fc63030d41dbd837c6fa13a4edf44cc068309e2e20dad192991b12384f403c4d214278c20d3e08e79a55aa1351ecd2c13f85b83a3ea0bd11e8907b7c34aa9a9f91211071d3149d8753e938b58dfc2f3d2d68312bce5583896a040dc7417186a1adfe32f97dc740c1f38c22e72db455d708c1127228b47ad073de5fa5ee7195c3072f9f421b84969509c11e41ece90ce049d907a3a82414175066d11b1907d71b98985b6f2ede0630244c74780b2df03e63e9fd39ffd3fe0b78341ad4a2359bd1aa2eab4e07fddb446084b775c7cec263d80cb62ff25e6b32bb0846b89ff5b61ee2854e2fc3e83ec615ae34b215b93634bb196863efd200e3b6f1a01c04cd0516f51f344548983c98a996c5a48bbb0efe28597acf12bdf556e0914e1d14733f87323fe8e2cce74641b6cddddf3d241e2cb266f78c017626d81c4c44ac8f3a7e8bac6cfe05ba484ec672cd31ecdad2f8665c64896d686da65e15f3dab948bd45f214326d856cb0af5cd53e093aae79f84d61b8dbad1ae72bb75c03aed8544dd850bd1793d39c37e000b4363626630ee5e1f03e1cd5795afa1912251f9109fd11670e4fa66d1da456562df4f195aee29c0f9ad3cc8057e3a415ad212cc73761af24743177e3ba9301085435e0e215c16ad14dee9081ffb1ab8a85e548f4505f93bf716869453432d9ab5e49f8c7290caa27a69da5d461964c5f7d8ccc6fcf8e021c33e47f0b904b07c718200471cb204d5a6e037c371f8b2578e22e50cb4538be50812bc6065f8cc82430fd9a8e350cbad1d699cc8cdf99f6829ccc6ffebe8b75f4f1c6d1b5110bfabb6f6f8ac90c345b67945d5d4a63abbad30adbf3efd731b61a105d0ee136009c732f05aaafb4a6df734a7db3f1d5341c935c96a5cf4e7e586f967d030da37b146336152daa10be88d520c7d8336d0202539b480de40c3d03725026d82a6430be80cf4ac14835ea027e8387480ce40c74a30e8045a828e430fe80cf418fad25b95f157d5251f2c857511d304e26959fc676bdab8b53507d6b07144b05b0c6269edc6e4604d9b50fafbc06f26f3530d097d3bed0e017a82a5b523a8ea1295914c55252db29183f0258d3f0dbff7cb5f64f8403fc217c798a3c49726ed55bed9987bc58aaafd2c72471dcf18d9a584487b233c070e87dcc4241ca9fb1c9075ca309935c43b49d4c340fd5386c9d6a5eec8e1eddd1000f54b5ff037c4d6e40ce17d4a6d57211eefea3eb8dea61fab9901fe76f1ce76b54a39d26de5c5065c020b7e137166b922e86f3b3a6b4c82921a25309b4627e84523098ec92e35c5f99afa766bd6c23b907c73262d93c844c11c6deb0f6380d03a7add98bd9c5b8cb2b79093491783a8fcb1b2401f9c3c0bcf5478caffaee1d35692f09438065c71c1b40b43814fea31c3cf5cf4a49976f554d10fdda675fe35bbcbbfcbcce63d5e75d81f5d152d33c1b9bd6cb5cb2fb2e35f44d9157e5404e407279cd66cb2329ae8bdc3c7219c217bd374ad3cd5ebb7942e3032692fcd2924a103be1c05890f4d10608b366d288aa2288aa22806b1ffbdffebeb1f90a7101c4ac14171501cc25e4206bb06ec460ad64372e5c5eb2bd8d146e0ac31a5e74bd7bdb9b27b5b868a12084cb80f84a99bc0c76f961012dd13300ef00d537a848f21013ac208041441c410421c20888f010a0084cc0f3ef4c0c30e3ae470e17011e0061baa180afc51c554e08348278c23d5115c65c5135455957363049954458548157502a14c505515cc558222b45147113ad5f5c745023f4223f0038921e4318436aa245584f0834f8c109a203206446680c891aa9a8939e409f8ddc04f22e1d054d5b54785eae33aa3d9dc2aae2faaea124108f6f8d4a834ca20c0a41115a40f6428249292aabaf4b8f228e1e4aabaf0c0a3aaba3cf024130d7652555707525709fed2283f66e38ec7814ada11fb8daab99c7aaa830e6b22354122e1d0585230848e0a7f04462553aa96eafd2b2619d4a364688e781bd263215333e95157a04e2076450e0d54440c817a2cb41043aa8a4dd1535c19c040d51cfe3b324df1509c96a450f59fa49444295551cd9f4c506027a33328a9de514974bf86841a55f927a43aba238cb3009653525255d71a71544f949c9c52a5292412ce1292ad29130d26999abc044652b0542850d489aabae030dde0984ea52936a34a9a79d4ff929489869a4c3537f554539a32430504ae379ac36ebc7881ab0dd672fe89eb8b285575b15155d71a39ff048909268d443339a41294aabad4489dea4d555d69e0d1098714a5aa2e34aaea3ac30c2935557595718d718951fde99b7415ad0a57c5ab025611abf02a641555758551554992f4950b8caababef0a2460a0d1427353334531610aa420914d6870635a890e82b3828988b8baa4231a1c4fd29fa4a9224ec0a1344289124c9e96f70502814268da84061d2888a519512ce92124ec60e882d17e0e4ef2875aa5172b0a989d4a9de602739d8d4846c8d237172deca8b3823ec84c6cac98445ea4b36a6d2631b53a9391c2698684e89e6a6a45025d38c8c111247091968718026aaca0261cc50651143481f9e2c84d4545529077591ac50c1aa8215042b90150c72f34302c088c1118ac0381113037c81e19101062d804155bde0092fc0525515cd06e6d08006ca00030c31baa82a2fbc3831919a615441d1c4e94ba5914c124d260899d29398cc1240c8949e04635a90bab28525bac047089a88230d34a254532480055070fd93207b5c092509dda004a9220803046942844c12236492e43f0d51838569062571ee4f811add28418d6e6ac954a544bab119adc04915881f3515132602f9a1624289d44bf9d1290508066200f19840056c54d54d0845e5283d195fa0fe64e5c4a0008eaafa14ca0a2af532b8e60914c0fc0d14138df5396f45e664caa851ea64449122458a1829d526644056647252a7918c1213a43147090c89f9038eab66a92850f940823eaaaaa650d7151fa8c6168298c00844a1183fa650871f56aa4f1f2da8b0f491aa2a131f33e823884aa63492c1824ba81308068b2fb54ca940c90a238c588289256488c0824743a4f23f4922c5094a2aff131919199992151390c18247a1af823fa40518bca085045c2ca10402644a4f0a41c16498f0ec608f3cf64855312038415585aa089b098b9ab752494d902a4e0448f5a5fc294a3d7d3d5108218410bef7de7befbde79c73ce39e75c6badb5d65a6bddddddddddacb1c61a6bacb1c61a6bacb136e79c73ce39a794524a29a594eeeeeeeeee31c618638c31420821841042f8de7befbdf79e73ce39e79c73adb5d65a6bad7577777733c618638c31d673ce39e79c734a29a594524ae9eeeeeeee1e638c31c61823841042082184efbdf7de7bef39e79c73ce39d75a6badb5d65a77777777b39ed2237cae3514364eaaaa320202554c1da4d323714748dc136a8ae9f454729a30d1fcc8094cc23151818589f44dccbc044ca725557545717a512a652a95706da2aa2e074861a241595155d5d580aabaa8944ca3992952e4d4270ca8aaab8aaabaa898a2aa2a0a5f4a676c644e33a893890695bac179294a4a4e38f79a4a4a4657464ed41f615b51385606854b384b528f42e12f61516f5029d4e84f9f534932a42a8702aaeaaaa9aa4b4a8c1c3844f99289a6aaae28a254d5db98a47c4aa6844304eadfd692933fe1a47032fe54c5279c949511a54e232b53654a28507d5b4920fc49a046174d555d5054d5f5e40907502a4ea4849ca04e4099a1a12129a04821050dd127539c800245a80a25502449a2a4f4564c354fc2c126282413369f7252c544c24ebe34aa52a2337130a04a69943a99ac1219d0cb9ce0d8c2d52a0f1031845555153e5979c0e1419d4039368442d59b54a9964636a3d3458db08c0d4ee9655036a88a858ca949555d03104055a1aaea0ac0058098aaaa9cc04faaa9ba048f4c53e0ff9329759373ba0e78303e37722a0adf47a54c2454ca4492f222ce0daa2a747353932409dda06643d84ea80bb8c8d65360e468c388aa4a922474836a238eaabaa962d828037502a54656b60ea14e7f437a916c8dc3460f159499aaba8c14219d4ef49a4824250638ad61450d16546a742a292328aaea82b95cba48a38caaaaaa9c864cbd412227859242c6a6caa3644429254992541e1eae97cba5aa2a205ae06829038d2767dcc08c2caaaa0c1754321d9950194dca68525558d81764cc20551a996e423164e041c61b230663e8515551da9524499810a16a1325aaa0722ae971090b1326994c3774129dfe26648353c2a6e670f0a8aacae184f143555552ac89d444aa963e556fc934839d24490246012ad40934baa9a119cb8e982f2810c41702f0a20c5e10a1aa649650424626c91557c8a450f5e60aae5e7c192a8b0c63a86c6e156370d145185d20e122072825f86d3ee5c4e6534ea82835a2620b2f54315be4515520fc4ab6a8620b982a92a94ab430a4aa2a102a468b35aa4a063787a3c5142daa0a74329d4e4f223d16a82a63c4e79048385906f54d6471a34d5152d253bc145948a1aab0789a982cae10a28ab140162c70c757a982839231025545341698155841a5e4a24650fc2f71911430a4aaaacf3257a04a38a12b56ae287d4d95de66743a22e7ad549537e881d811554ca43054950586aab2be50c550200f2f50a180120ed41ac48e2861613a5911aa8a62288003058e54a65c7222811169490ee9e646c9a3aa284a0dcafa4302a46a94c415a19329748508352a8db24c13a81308951ad968a1aa2a2b0b554aa3534a4a9224cde13081425552e8f43758aa8d1258aacda3aa65a2391c25b0541b2c65409d4022541589505584e54955a54e26114ac6644a2579d4e9affc098bf57f5a527a2ba6141439350aea1960a2f1982b77a04e205c251173e5559f427d2974fad42864f3372824ee5f89b98203a9e2fc5081402021524f4291fe4a12d25f79522849555952b0a0f084aa42e5d428ff3984caa937285425dd14ad5030a8624e50d0346957922499e20911aa36618209254835553231114a92e447a754e80615fa2a289b9aaa98a6391cd30748249c25261a27ac40a1a2399c4a0a914c261b423d113246d89451e55412e91092953eaa1063e5357926885022630476a2c4fd2988680e47c688e67086b811b00945c006432088aa49555577f820662463442aa8aaea95a04650a44c265c5f0a52c524292f81919492931b9b53932af4c6e6d4a4aaac43ac1ef0a0aa42212954e8400086704802ec800213689007109468c0005cb280298191981214a2860c2012b84a5a30010f5e28010541d4e0c5933880486386760139fef8e3882ce0e0060e3938440f272cb0839a319628824b5e424c86b17260e1a0aaac1bd820067f21060f52c5e0996a0c5e30954c3407b84f40a947d1cade6191e45443aaaa62a9aa0a08948c4583aab266200342aa9aaa4ed4547522e68a19c45cf1e40a2455f5a8d37f951a25261445555983c4a0b26050aa3222d597c00895c231e5d427d515b25c51bdd8bc549e25aceaa56a89b15eaa1aac961b2c1a2c98e6f1aad386c787970b06a6c5d3b1ac8a0017a8ba2a2b0a4f02acea258996eaaa2ccbea5c4d2cebc5ba2cabe32281cbbaac97eb06292ccbc57aa92e6b0650e7727119c2888ce5b92e4f1a96c7b22e2316172eab48d56279aece5b16042ecbba60a65c3b5cd6e5e2b92c295c96e57259515804b0acce05038396ce0b0dd60d966559d7bc0600d3b1e8b05c2ecbba3a21ebf21829f22e2416133056cba7b384f5725d9eee18b92e8b881aa235014f1f89e3aa3cd5d501cbd319c2d372599daae5025612aceaaa6cb0c186caaa2c8f755955b060ae222ceb6ab9ae8e65390b090bc642725dd7e5326309715d9ecb621dd0911c600e60cd00001dae37ac962b07cb6375acea8a72c918b13cd53572a964aeb0cce85440c0c0aa1440c8d5b15c2ccf8b3583d581e3ba6092742cd9b1aecb237321293284d562592fccd33f30eb32e20273599665bd585612ebba84d071b18a5c9ece15ab00178e65758eb08a1cb92c9817eb52c0e5c3e5c3d543a7ea54560d96cb755933786ce878ae1caeebb25c2c4fb68a7cac232d97d562d1e0966559d60ed7025c8e14b92c0b83e4e5b2a2b0602cab73591eab89d5c3352f1eae23d7cbd56275accbbaac24560fd791ebc563755a3a96e556c71ac22a6221b12c2b09cb87cb48e7c582f158976525b12c971b2e01589ecb6af158f33a62752e1fac4ee7ba3c97c79ad765e97019b18a58309ecbb2ac24560f9791978ee581f15896e532160e45c028d141408bd5b18a581e1cac2245921c69c00e3e5806f058d7e572bdbc65c300d8912696755997655947542fd54d454522d615a82855325320e109864c5147124430a522814941c2112a2980084215451d3af8286a2155943a0291230a102628509000812b3c01c2072d3041020f6cd6810312b3d2000247c20c1f07c28815916091215e91c81c51a60c15e80a31f870c415795c461cc103262364581108a0c3082bfc70850c921f640800808a8e0038a0baa2458d4ac6c34565bda0aaa4a0e289980640e1d28591206c90a5c80b0c8c8b11232e2d473a3d1479e9b4740680a4460b9a02c00ce16204467a90d4607990bc300049aa3343c786961f7081812c2e345c2f453c46ccd083144116235320c11e2368d0e27a3bb44cf1582e4abc20cb124f9c88e1e2f218f13c21c20b598ed085d59224e6070568717974e81c714816042021cb0f51ba18400d4d78d161a20518597228420512016020cb9201dcc0a08c74218b12a9224cae58c38697229d195aac78c428430b184f4ce708a78513ec2852840fba80f9c21b345c475a1410f3323d4f7c03fad822002d43185962e4002e56788a78995ba4a00e265be8000d24ba98e13e192306598ee0e40c703143abc13a41961ca216465ea68b11181a3aee8449a707234b5eb47032831498263bd025468a344122052b91822c04f018118db82409c00c2e468ed0023cc003598cc034f1c19291a5a563438be512858b9196245c8a509280233845848069e262e42587199c28f2f1d0142180007838800e37140133048d1407d0c2080ce8c5cde0dc499417249e171d5a92746211241e216414f052e4c588078996273c520156cb0e1d205a6e6045606e67d224708031724311d76286e6c88319c2f3f17c5c3e90a5081a3c4eb420a0c587221f0f0f3574a7872db28090b03ab97384a7d33281023c800d53890f1118d2823ef8f8c01d636451012c282bf9ef150fb0824a15534c9112e5c9029a24916e8803046100190f2183246285293821014c0451001d7278a1030737c0c30351d00424e96100488eb8c420101584200f3ceee0401d74c8316508219000650003898c610b968a15aac08290690d34469989248cbce4a1461a5e04083fd0238f2433124000478cc0bcf0b0c3094c60c56328340b70b284ce7186186000e00870057c88e00359503185471c04e0d181215a98828925629117173fbe50c108ec70830d3226b08139e640030a0d13490881c412c31586eb0b9e2bc854e17a82c70917125a8e6005e142e4f241914390f4e0d2c155c81548878fcb8a0702d607a687161e66c8e122c035004b0031016801c01563d9e0a1e13ad262e42a020373bdbcb45c1eab63592ed50c357476e80892c5634616cf13972264ac172e68618307b2b4b42079394010b4f0d4d11e0220b903042e6364f13c297283111e70e0224b110678a8747c3892724102b30446ba18e924818391161b64814141160158a14511efc891052446c8d292489616243af8200b92540104c95204071aae97245a906869238c011cc9e18d2d3c6564a901881a80e81c1183040c0e31896cd1820018f9a244a7868e12307764e940d148b81871d9234be7888b0e1e238e74c7f220f1186164490b025e18e0a2838b111708201100120114c1a1c80d2f0ce890610b171d3a7d6cd132832c4140c06323130aa2074f122435b8c478acce119d194f94196e70b95ea878d9e185a6650034582e473a2d1e249d4ee7eabc74603a458cf0e0e9bc4c7901400d518cc4bcb8bc589d17cff320e1b16072e8eca045911f5a409085863db48871f1ec00e3c4161e236c5180904c9548199c00841fe8c0101acc00a78a1435d2a04d2460093795ac50052484b0a10698970650814293480e7ab0831fd06070bca1000c1801914264c08213f0810712a003b88193420375e20216ae3084437a304809b2b0c003aca05205141a264b7ef0810037040248167c88c0021508f5c083a9f4030d462842046cb22452062f74c18a0610e08618446440880b58700213f881c61962841ec0002aa0d03829240784e0600570341142100ac9810c066181201eb8830c2fb8c0c21510398405820432822eb23c76426366b802139660041a0c02880afed0430d331e871e604503a8704293484244cc0c85e480067264408d2e1e3f60014e96d02492d03083a762c2120ac9410d080144057ff8a1c71a6774e180053859228924fe9a0800c478aa4498b08422d48006840c02880afcd0630d35ce30a38b24841c60450290008d410c4f9ea8810622f090461964544105b3c30c3272b084a048229d325c646811c315061810783e70e971e161b5ab3bcc021d39a283808ecc0d3f5c3c583bbce8d0c9c1c2c14300eb8622010000003a36786a9881061b66d001490e4778301253e405c6e5e572716969e95855a543cc943d2a92ada9d2e87483c463d31d9570b298529a9263a628e00a9921644a23999f1a26ff8408559bcc7c20749d0d5860a0f6bb31af8c4938edfbd85fa0cfcece8f277e1cdbc316798340ccbd401db28ff66795afc60babc8dbe65681c5d40408841f8bc9b2ee026dae35f37ce163ee98ecf6b8401daecfe593defcd93aadc81b6e81b6f73567d7dc94cefeadc83b340a39a7052af1f4db98633edd7abc5e8795055a2fcb35e757bd5d950f8bbc9b062c2cd0970fdb0b5b860c33d7b5db15a8ad51c6875b8ceda1b5ee56a0d63efb6c5e18f364b9e139885505ea20ce96bd8dafdf94ffa8405d3ec96465fda04399eb1428ab2f27bbb11b420cb1b70b2c29d0e6574e79bdca5c1b64320a74e23ce74b6ce77dd59d590b0ad4e26ef9b6b5b33218ad8d4fa0dd1c644ff6bbbbcc62084f60398146f75ca7cff7f6c1969bc87bb6e381d504faae3ec70ff37c2c3b144eaaa65012071613687f8ef1795bf8b26458aa4da875bb1a584ba0d63eb373ba87ebad13db4fcd930f08e42d104b09b455efe7da7506717c805849a052fee71a61ad2e3af62e6c28b090405b6d0fe2c85c66b8d9d834ad45601d81caca1ee7f8cff6f56bdf08f4336e2f1dc7069fb12841a0760504621dea76a5a1261e56112894f07d3bf83ae7d9e41381bafba27dd8dd7a4796dd102874d931ec26932ebe978540a1757c23fb8eb55dfc5a1068edfbfe49981dcbf97f36c10202756d4267533679fb5dfb033a61ab6eabd79f36573c45deed32091622f46774fb12777e1fd0fb6cbdf8bfc597ad6c671d42f3cdb3a17c7d5b73385570ec3b61835372299b6c85d5036a6d8cd53d77edab8c4528f26e7e88c5031a236c3bdd7b6ecdd50745de4eb276f0aebd796366b33e27f2fe60c7f9fc09076522dd8f759c4f48b6d3974ab3fbb074402d7e0e66e70fc7792f7c22ef902935732c43e86cce65cbaeb266f2d92f84c207f185f235db6cbb9739a0d82b7399b197f3c4525691c441bdb362c9aeb3af336636a6530ee5bc95526c561cd60da8950cd7db38c7e9acac4ee4ed50960de8f5763bfb6ffe773bc776b26ae0ac5df7aa64d7ce57ed137947d89a80402050fb16160d5abe63f0e599fd9fb426d3893574ac4531ac195016eb95173acfadbe7c121e854a267f127612e30c2c1950f9a6c7d8d9620971bc4e08f5165f9ef539f93096cf7d103af1c4f96f94ec75cd97c580766533be6a1b673c3d6318d08791b9fc9c63533299db0b287b154797ccbe73d94a473517d09f2dbb16636c57e374794e61b580da6ba7b38cbdf9b2a5e399018b057446f6f03376ee6164d1ce10062c41e883cf5fbb89197bf5a550383894734ac9f685b502eaf7ad740f4a67d3390745de2f62b102a10ee689a56dee0dbd6226f29e645880d0ebd519bceeb23eac9089bca500bd6e62582aa0ef7ddbcdd759199d752df24e017d9755c6dbac9c1537f622efd367696dc142018d2e31ce915597a7acddb6b04e406db776f5ba8bcdba7b28f29e5716cb04f4efcbcf1eb608237bae89bc4976e4a9fb37a8921310287709ec9d2ddb73fdee5de6a4c849a40a024d784addb83f6873eed833be10b7ebda89bc592301f5b7d335f6fadac3be50e43d02cae63767bb32175b76f28abc9f1fb43d8bd1ff5ed65c7fcb22ef9c4a725da534b232a1d5c77b8c4dc824be36cbc8a2c8db8ac92422e1516b31b0f8a0d21bb3584a97def0e127f286775822a012defcedf56d5f258c21a0f061ff87184a26ed7d2ef27633a2d4888acfcce733f34961f954c934f399f97c663e369f42e53cd6700ffa96493c63735966c7d3aac00201f5fbeeee9b1377bcaf7d7e29663e33b4891f9d6a1a96c0fa00b5ee60db2bddb91aafb5226f532ad4acedb0f4a08dd57773e627d9bb124661e541bd5ee7ecb6266b7ed3fdc9743ad179010b0fead24adbe43738dfbf5ca50c75f400657f99937d9fb129a1bfc83b64c22e02560768adffaecb5a9f4777a18bbc4326dcedf0350d9590c9ba83b6e66674dff96f672c5be48d7a562c0e5027fdbd8f0feb7dcfb216f9941294d6ae6d4633baa6a11282806507addebc39c41347183b3a917795d228f6a7860908f4a961f2c9b933201008d46643325875d08b596eaebefd3c9f671779a7706c428f04161df467b490cdd8af5f95b38abc2d0ea12a6b9412e7c3da00c5d1e2e6ef72c6ac7d7d226f39c7c7872d4b38dd657f5fb3d2b0e4a0d75ae60f33ccdefbec57e46df3ae015a2164cf5ad7aeadee5e29f20c50d8d035577194d97ac37dc5c20075f57dba64d3b507df75228f4366f8b1c987fb4af61cac91655870d0c93293f8faadb9f6cb5fc57d6a988850b5890855454d3e331f299f9a271f0a821db0dea0d15566a347fcd3b3bc56e428100804ea2b2090cdc5f26015961bd4b2e6acc592b12a2776e6feb02e402786d89b7ccd2b83b2649250402094159349a487d5069dd3637c91c5f8d57ece22efdb2654c934030281429faa120704ba7f0504facc7c963cf199f934e104142090c521d63660b141a36c19df1a25b4ce239b320f6b0d0a3b7775d3461873869f45de210802b91a14db98dd7c5f59c311e609e9b0d2a0cf4136e76cf2b267f17d22ef50a83592ada5291cb0d06871be19e374d94fca8eee2e37c698c566a7cbde5a8bbce367e6f3a979f2018140ad430defc875609d41e785115ffc503a686f4f9177080402f51c9619747edfd617e3f739a18522ef3fddb49ef2b1e302ac32a89d2e32e6a09453c2fb960cfadaed38abb517c36fd3c7a0b1599ff5c29711be3c2386381f1aeb703e351f0b719c5bc012834e97ac737bade1e996b930a857f66273153e081d7606067deed9063f370bdd5af7bea0b53de3cabaca2aa7b3368a149f263e331f259f284f3e2fa2483736238863794159d7e760eed8648d4ce6bfc949cd4f0d93cfa786c9073bf9d43cf980402753bec9a9018142a41b9b51641dead768a884ac0f585dd0e68d6f7539ffbccd5a2cf20ea5be8a9b72c9c93301814020272010c8b1a6a112b2dab0b8a00f4f26fdc67ceb6db6cd2de86d6b23841637c9dc6dae0575cf2cc37266266dcff9ac2cd4426fc7b9e1eb6e75b23f354c3e201008540584345442a12c6874d0cd171bcccc5dcf28f28e09b0006de7ecbb18fabd5f619e15a08eddb7d7b59eaf7a5726f2761d9950805ac8a4f7eb89a5752de309d077aed93c276b2ee29b2540e36cb359dca2c3f939f77268b45e5bc5ee8eebbdeeb0d0af5f5b629b3dbbfb6f2a85b0a09731082163afd9fc7ef3151aeb6b9c23acd34e6f9b712893b5627f67f0d6ae32a728c4f319ac5fbb61d6624651d913ba679f73d5df6df944dd627ff7e13798319c1f015a1b96f37d43eb0ec68c6fa8bdccb1576c1b42f62e36515ced7d075bbfebd2fd9668eb37ed8d56ce78ef84d786fe7d1c71768eb96d785a126d1b735bf6d3e2aeb8ad159abf3597e7b4d96ddb5b214031c4f81bbbf7e7557a1dd18e36bf3c618536e2ecaa88661cddb5ae73cfebce6a15dad66618fb6d8dce6f9e9966d8fe5e289dd996f5e7d3fa6ab53e7f3a6e167f62da7af64f0b5fbefedacf4badbb6d616bf6e463b7d3d2d62ebf6899bbd0c93c67a516378925acb03af738ce2ba86ceebad86c6cee666719a28f41e6e6b319feb5f7ca0750f69e6def9fadd65aad7400ad0fda985fceb7d9322bada032ffb3bf10be37bba56c007d15d76c219ed8f1652da9d0765dac163fd77f5fbf3380e2299be16ed6fd83f57a15145e18bdcdaf315b16a753417d5e88dfba64d1c2077d0afadac9f9beb9bded91f9143af1840d4fdbe6b3cc6eaca1b0c176b1e66f96a19b510a85b14d083d37d920b3194a415d7e79a3f5ce51503763ec98ff4567f0de2854ded62264d8b1674c3a28144237ffcd089d6d8b69a8bd36d6fb7f2786d21b42411bdec82cbb13b6eaee7d425bcd354f3ce33306ad7c825a972ecec7d3ff366c6f01d4da5c6db3b5c5d61acece09cdf2ca6ef0c6f7dee0b54da893edf6da796b7bb739136a199eb5b6ec77f03ae696d07bb17c3ead7d8ec1f78dd2e7a05759bd21fb3bb313b4e2ea6694373be95ac2199a6fcc30c7c693356ed64dd0dc984d3927930d7fcc4a6885ad36f61aebcc6eab0aa0ec7375b6a16d5f31f304d0d9587b0cfb47d9a06b26f22e3d2974ff4a68360c8564d350092d6182ce18dbfd7a2db691c1cb723685e69325e864d2abbf9d1133091f5482bedbccee9dcfbd8bdf2df20eb98eb1ef5f719204cd39b21c3d432ca78dcc89bc43ad63ca26bb98c4c6640a5539854230937a6bb7ba26677e93b13745de2197924e5763beefa2739135d644deeeb43de758c40dcac9e6e32bf2c6c274aad22dd20767b77dfe8fdf6dbd22ef530a0569e7f7647691b98631ab56e49db2c973caa3eecd19ffb16df1f66729f20ee1520d9970376780a3ac5a581b4bf61a4fe7aac85b84c2b9099d4c3914957c663e359f9a279ffb536051a598ed4f1a9d2f3739af64b936bf8d89bc4f5574430c044ad96410e84fa64b450ac726c4200d9510154ddb3b9bedc79a31762cb1c825ce6789149f4fcd934fa834f2764add2cc168850ebde7bcec5dd6c722efd449cabe2612490148dcb7d56b76f76f998c55e4fdb7649a7f4b504a4ba244dd985c0dc8a78c0e6173fea0bfd98ec906d95c21914094e51c65aeedc95b636d55e44daa573e9442954cd7bb3462fd27d37d345442538ea0ef5ede8ba16dd0ce7728f246e5bc95f9a99aea6e0d69a8849a3082de86d5def7a6cdf8d99722efd3971040dd4e2959756efb55385de48dc2ffa850eaabc0fed43041d50f6b381f29528040211b132ed513a87e6a9e7c426fd250095961141142e19c42211d88e8177b18028b098b940f4244d8640ed0ba8a64827021f611c20043146008208c9011e287227c603d10c183103b3403e8100a22876663baa13f85426d25c276731fe538848620402864801bb0549b1f06d021132954a534aa52c544ca410032012800006c7c8839995295071b4211b6507b2b95648ba8a10034c89cc2e961860ebd28c40312218ea07230d24ca6930e458a80c1f54f3abcf8e092fa2a39b4348a07cfc8c6c63444a715e03ad527dd1dac0e61791e2a1edac8410d1d586f534b9e1cd60003c9914a890212c0c4124a249124493c5f50fca07338e5ac6f61cdcce305cded62895fccb6beced58240cd21e0e9a28126cac345f36cd1ad454f4f968aabb777372623084422bdbf445a97a141ac43068aa5b50f437cdb6c8fd5b844090e14a52520100884ba31b9189d3150b70f1966b93ec6f85d140365f1b6796dcbec4cce9a9f934e18a86c304efbd84a086166100c144e1be584f56173d732f705fafec9e86a3ff764b6b875bc401fcc195b5663c5b8cdf8ba409bb5ce323cfbe59c193b2e5026996b1743eb5c4ffc760bb42dbb72bebe30cf2c594b2dd0581d6cb81f6e3cab7c2e0bf4e176534e26a1cdfdbee11b1d2cd0e6248c335acff3be07db1c9d2b3c881dda6cf1b4b942f7ac403fb38c3dcec9ee8cd6c52a54db9fdfccafb267df83a04305eafeda67abb3b8ba973164dd99028d17f7952dde7f9949eced4ab3995074a4403ffb7b6edbbeac8edb3b059d28d0cca46c7da36516051d28d0066b85dedf6caecfa32c41e709344e5b999d973d9f19df7602bd8dedcb7eccca5b3b5f2b3a4da04d5aebfff73993d73dc87a8f0e13287ed8cde90d7664b1d5d75942831ed051026dd0f957f9fde0cbd9a3c81b8b2f55a9a50a4534a493048ab37b17b7da60e7da70eba08304ea66fb76f2bd79edcb18c6ce11a87d5bef4fdc5ae7d6f067d73e354c4a50a640a979f2510202411b748c407d42092bbed1598e18bb129d22d0799dfdeb1a9e9708f4e63c9bdbbed1615fd61902b5d0e7b7c7cfba3ec62f042a67752f7facb8c19ce30781fe75d5bae3e82d5f5c2f10286cb1df19abb24a9ff2fe80361cbdbee9ea93b5d97811a1d6c157e7637663db7ed60734b79536bf63f3bbfbd94368cc7f2584aec1866d67ed01adcd36773fa3cbafbaac3ca08c5977eee493afbdc37207d4df73d5baf96e6cd65cea80dabf2fd70c1b9ef1de280da1b23dfbfaee337c2e5b16f2b07db5ee3526734073c337e2eaf89f9439e3804ec757e666bf4ae81af41bd007dd63d8337be6b2cc36a06ddf5d7495b98c7f3fd680f6fbb76db2eafab97f1ad08731ac53c6be2fbeab7006d4a1cdb97ebdfe5a9d2e03cada43bfb84d9b9b6491101ab39badc6286d8bcdfa0d42237c18fb5559257c19037a6bc73ba3c417bbf7240c689bf2b2665b647edfc3f6029ae3cbb1badc5e8cd705d45fccd042c7aec3aeae0534de19ffd6cab285973516d058319bedbdbbdd0d760b426d8cb5b5fcd0ddc76a632ba08d490ba56bfeb07ce97d6a9880a6f8cc7c9e90728383df89d00d0e7e9c4727109af38b2f637bcde2886d144107105a5b632fb29c197c77b10dd1d6f0e8a88046182fcc574afcb149d8697452406dc77b674f88e36b9b330ae8abf661e86fda27f1ac1004028126bb40e704f45928e1acf1fe63365a07028140a1ce498d60b36e6d02ead8c3d83eefe9dc32c99a20a453025aefabccbd96adc6fc194a0c74fea06f1f74ffaee5c4f37e8da34302da58cbff6a597e18368847d03a7eb44e1fadc307f56aabb4d9662c59cc2edd8d8e08e87de8fdf3babecce733364340ef7cae1fd76b6b84bd07fd7777fdd11f6cffa4131d10d0eace1e7fb3afd9f82a8c8d8ace07e895b159289be36775c25cc279533a7ad01865635f99cbdd32942f0ffa72c38f2f6cee5f669689bc73f228652a9d5a93d2c183be2c5f371b6f6317d6e6e0141d0f50d9de93d72bf3cfb06b751a2aa1ef7480d6c6306cf816768dcf842594ce1df4b5e892c5aed7ba85d0a1191d0e509f6ee2791be6b7d045294376505b5f9dd133f61be1c479b2de40a70eda70c2ec24cc2d1f76d6d241b3ecd9be66db98b3662a753799f930faa41b9c9a4f94271f343a1ba0f3e39c4ffabdb7be8bf11cd4e58e77f6e376abb41d45def353c3c4c6745a020281402050470e7aa3740ecbeab5da96738bbcdb191d0d50e993c9265b67765f628b7393011a1fbbcfd86d79def66216799f4ca1d45779cda48301ca6e9b76c2db704787bbb54e1c54be6e5e596511dbee0aab9446928d0e1c74e65959c6ef1be21923f06d89149f26e68dcdedbc41ad639fe19c76dae9ec9d22ef36f37971e623713e519e7c5abca2e346e702d1b374eec9c6d5f32b458092ea28756393a5d346bf53878d06853a6bd0f74d4aeb5fdbabd1ed8bbce6c9478aab1d35e8ad59e60adfbfc711c69806c5cf3dceceddcc13de3845de5d32a1e16093ce5d63b3cdd7ed9e832d73bd8ec1962cbee94ce40d4b26d20c08f42513e946f7a273067dbfcdcde92e83d0766432898e19b471b3ee2184d8bee65e157937aa5306adf0caffd9ee6f36c6950c1a6dcbacd68ab1932f5f8e412d66ce9ecb2d4691f7a786c9e7c67472020402a1947cca89295572028aa98e18d4be1a276e8eb1bdcd33ee8441a78d2f67bcdd707ab3564f1404aaa7ef8041bdc20b9de777f90b6a71b4935d6fd7b61d7c2f6837b72ccf795dc56eda2e68e7671367dc8f45f9ef72416795ae61c9dc94783257b7a013b23aad659f1d7cfe5ad077fcefdabd70ba58ab77b25036718ccd9e9db6ff7e2214b20a27acb76118676bb00c74e2376bb550b6e7cebd4b068a5f6b90bdf4beb1f5b563a08d3976b2995f2cfd45e7a4182894d7a7df581f42d90c8681ba965994b6f95767d71f0cb462096386ac7a9556d6fb05fa3e46ebddaa8b0e5ff602ad2fe59b373767cee26abb40dbe6ce6d3b3609e56bc905dadec57e3f7f93ac31f62d50d8e26bacc56c3b335cb5405faeeed964b0b3932f6316e8fbbf86f932bf0de2c7027df9b958dbfb28bb65c8aec0707c8c1b14b99c725c5688de7562e9b57a96b3795701b78bed84d03ac6166791b78c595c5468d0141ad497141ae43657141a048506a3add345d81f73ec9beb09ed04f64857131ad4a88b09635c4b68d01a9712e83fecf6621673c52cce97c69504cae45b0c639e1823817673315ff79c6386efbc2d8f40bd216b38656cccfd3b69042a6bc6d146e8306bee569681ab08145ff88dc59ca76b0eef13814aebf7e539abec37ddc543a0b759fc66c5b5b587d0af10a8cb9659e66267f6eec353eae60a02cddedcd7d7ffb263de1e6b382e20d09be7cd2e5bc7d1bae8cf81eb07f43577d9edb6d5ecef1f11fa9895ff5876cc4dc61c08c4e43ba56ea4b87c4065646ebd4d9673cb7836d6a17ecde8b80ea12fcaf76e7dac357c52f6804e189bb9c7d8ae9bb55653d50910a875c809b978409fbdad595aaf3e1f86bf03dce4ece70edf6b75409dcd75b67f6d7b5e6beb83020402815aa3a112baceb80ca190d58a219c2ec3fa19e642a8736be38556deea4de680ca9b9dcb7ff83a429f1607b4e2d9f5e67e3799bcb6af1bc48e35fe37f7627bd90694d5dbbe76865e676b666b409ffc3671b3d5c677582b0d68c4f3d999db3d99e5432cf29e01f52ce5bb87dff328ad5b19d099db6cf7e0b5dd1c669310fa1cd7576d7bb235cc2e1cc4551b61751846d9a2631e038ae3736ea5b5f3366cf3c180fe6bec3e870cc68ef5ba175039ef4b689de5d9f67efbe372018d30cac720aecc35fbdc4a4dbd115c2d6830c3285bbef1d6fbacb280da39af74d31d6eecc9e8c725c8c3feee7a65bb39768b2b98764eecdf2cf7b4977920b7d995cf7cba7c5dc40e48fef9a4bdf7659b8e61ab027abfa77bcfbd627c5ffb14f864b7dffdcc6e43769b940b05f42f94ffd1315c1ad5136e8da542f199f994a07c663eb8347a22e7f438517c663e8f43aaad73fef422546df299f97c6a9e7c584340ae13bc7bebcdcdf6c5d3a309e03bdc2a9393d5ef6753e49df35642b2c52ec1c5cfe67c9eb16d3fafc8bb994cf199f9b4273e339f7ee253f3e47353a148390181e64db5617d32a5eab40ab9fea00ee34737e3b3f91e6e2ff29632041709464027f36ce19b71c666b7569177fdcc7c6a9e7c4020e9faf2835eeb1736e96e7e9fb1e33e68cead59bb8f5964cd622cf2d4a350d55171f1c12e1150281db6796b6b2b7f66c8da035708e23ff8dee267d7d75de4ed3075ed2121734e7ab318fbb1183b4a1050977376dc6c6eb0b66657e46d633ae54f0d934fbb62633a2dc939d58040d70768cf06e5ff67c7e273353f088f4b0fca58bdb0ef8d72b2171dce8356e758b7bf51caf78e170f5a6dab7fe57b77dc8d4d0fd09f92758bb9b6ffd7d6017a2fecfa0de2d60e5b26efa0ef39ebb27b36dad916371088492f2e0ed058efb5195a565dcdaebd1d14677baf74d64ec9be555c07ed87b9d9f9f08ccf61bd74d0ebb0661b6f9c1ba0913de6ee3d4a076b767350e60e1f3b6b18bb71b372d01c1f633fedebfb7fbb6a8062db8fcd37fdd6d8f1ce0cd07f6da7dbc7b865dbac6380ba56218cfe30b4d0abb73828ab15c728f3c311c2161b0eeaf2c42fbaf3c67932b7ee5b5c6f50d81136072bf6f66d4ae6066d73c67c677baf350c2ffed43cf9804033d4b0af349b8bc58ceb02b4a165b0d50c6fb50f563881ab0d6a5fc43263e69ae3ff18e7c5069d1e337b50da7735720dfaa283f659e7f06d0927c4c234030261613a9d5aaa41dd6bc3afb54b7cff459c2b0dca2a7bcedcfe7c1256dbfa53c32465329d6cea9f5252d0a0f5cde82eb62fbfcafaf80c9a1f46d898b13c1d3bd844de24520d79fbd430f98444a99bc7345442582e33a8bcf562d6d865d04d875da4a112c2571974def7cfeaf3ffafcd6132a8bc0f470b59bf17fdda31a8fcf8b5ba68df4a5cdf1583e65765abb83f36ebecab6150e6cc7e851066dbd73508066d09f39496bd96dfdfbf2fe8336b9d47899d7d565327132af4554e6fc31a89cb0bfa20f4cc2ace193af73952b9baa0ff10da7ed65a19656bf5e282e628ab63f79c93f3b6eb06a35c5b50662b9ed161d68db9d8fcd282fa3b7bdb189c1035bab2d02cdd3f77ec76cb7036e812a153d69f2f3fd75abf752ef27eb20c947db5ac4edc5ace3933dc64a0ccdd37fed7ea3fe9ba8140d001d618a8eb1c1b73f8be61ecf213f927ca93cf93628921c3ca1a6ef6d6e8acb419ffad375272fe897e1d225861a8d23537e38df3fdcb53e42fba75e647a71a52bda62720d04c7034c8e58dd6e6756e5f6d66f3edd8ed878b1b7d8136de1a2e6c50882784f959ebee5dc972172e6bd0fbe4cc5f9f74f8d86237b770518376ec26b16bccb28d95e5990695f2458cb18decbac7189e68d0c9aa95f82f7689637b3c83da792f84ef323ef78899cce2620675fd50dee89acbb86677b37029835a67a7bbd5350bb1832f4a0ab89041aff4e6667c9effb1e9f21854467fef32b61ee1eb29cf7011837e7e9fd15597f3b6c71c069dcedab9bf8ead6338633068ecd622c4ac36f758c3f90575f76e6d194b79b17447868b17944536db9df34d2bf2d7af452e5dd00adf7459be29db65f0b53c5cb8a0b9bdc6dade6b72de596b025cb6a0b76b9c7e7374cfd8662da874ebbed5b6194ae857ba64a157b2f62a66ddda57cfac25117afd6b8cf739872e43f9b08da0a50c54e666fbd9f7af7d9b8419682103c5b0cd6fef3df6acf46676b48c81da8cafbbb786dd4206b11868ae2d376b52ced8f0b70982963050076fb38c35cfecbacf9f528e1630d08ef0df6c10e79cdfb6ff02b5113319e7abf2a33bc45ea037e7fa97658b33837d6517a86c6d65848ed53a9fab920b34bbdb9ec48f1b76d356df02bd2e3a891bb30e7aab1db5405d6d0fe173526681c2db73428fd95f7cfe2016e85be86c8e503a77eeff0ab47533db2dc36615576905ea9d99bf695bbb3eb1ab0275ec3abf9da33f7f9935445aa840a595d05bbccc277cf3db0d5aa64059378bdd6331c6e8aaad91028deeb2e96e9d84f556e651a01136bc787a63f8c16c1b0a147a8e1fd9c4cdb9d7fa04cab07d36d6f7a6958dc569811627d06ef2be78a7b4d66b65b809f4e6173b6278a194f3e365029defd6e7ea6ced397fb54ba0cddadbed9ef9dae8d52a81c27e891bbf096d1268fedc0ee62aeb3be8b62281caeaf939e9aeab8dd6cd23d0f72f197b3df3acf1b96904ca9a5d3b9f652beb8bd58b40b18312469665cb8f2f8b44a0d3b5abcd6d7e9eb16c38043a25731bfddacf0d4ec72d42a0ef7db68b8fd5ebf2dd20d07c59fbea17be1c679e0e08d4d9f61ebadc5c95d6c2f6032afba5adaed5966de78608859deb7ccd9afd3671331fd006f39c2ffaabf5102c5a7ad0a06cdeb1e59c8cf98b8db5f080ca7ff3d91619ae2ef10ea895107f65ffde9bd9c6ac03ead9e3b4efd63a66237e86d09fb5c1596fc37ea193b5107a33eb68af9595593babcc01adf85fec87ae2bec8a714027c31eeb947f6f6eb15926c567e6c3a2f84479f221ddd88c424fbac1498562cb0de85768b1abd361c3b71fb4019dd6cdfb72cb7c99d7cc6a40fbd6fa3e6b677b6d838e06d4e1c818c49fdd7dd6626369990175d2ad6cd1626ff8644719d02a9d83cfd57a6b6d2ba1c89b10caf275d839573184595a06a1af326fd8da0c9f57ec3506d4796cb341776585ecb208032aaff3f9deb16b2e1bba17d01bafcbebfcb67616c316798b52232cde353df19eae5d40a374b5f68cde8cd5eb2c052d2da0f14dfb9c7dd26216d01a599bb0d6970fcb275b33418b20b43e1865fe7f0f65c69f5b56402bc391c50c6f74d7fae24fcd131028d4718f9640a8bffa565a089d63f5ef8f4e35354cae1420d03dcdcc7cee4ff1246b473420508a84e3de6801e4ddbb94ac4596f34f78d1a2022a21bc19b7c8b26b0fe29c02eab2c40ebfec0cdf96db45016db6e38c166756e7fb8c27a052b6c9a6cfda2fdb33fbd1a9e6a55a4c40677bf2552bdfafcd7e6d0968759873b3169d9c13d6a6a1122ab5fc41bdfa3b7c0e4b46028ae3fc8b9f319bab8f80b6336b3fdb36db7f73f75bfca0b9d6e67e66f8dc73b1c13e28aeef1bc336ba57a1b4ce07c536c77effa66b1cad7c91778ee994423df62602ea57de96d866d6586c0eb18c720868fe66efb5eb79de3671de83b2e795d96ed2616c1bb1c81bceb48080da07a58b99b9279bc73c3f4019cc8f41f82a6befbd88f5a0addf3bcc3fade769f1c32453c83b4a4b1e74d6991bebebcd9c745c271e543a732c32e81c8cd7b629f23e9952f76f50a551084a8b07dc63f8f5bcefafbf7cef809df5caec585fe7f01db4e585d83d8b9f9bf04d510b0764bd535e2833b3104b6cc7cf0a6175f5cd36e36b9177df963aa8ecdc10d6cc9ccb791dd3411b67763fcfc9d8f5fb9ec85b3aa0650374e266fe9131d72a86d7ce415d7319bb7d57bf510e8aefac5e9f37c659ca971aa0d95b73861fbecd36fc0c5067e36dfe2ec69edf638701dacf6199f3c59dfb59d8ad1f939638a88552767f37d82e5b8783f6bdee18731c9d6451be412bbeaf3e8f6fd6dbad1b6b342d6ed00b9d943167e7724b8759e40d9db45c803a2be5eb18b35f092b6b83be76b1d99ef2c9f6f06736a863085d7ed2e118ef84710d9aefacccedfc76336b5bd5a02c339871ab164a3ba19569d086b6c1ec2283f2edfc875bd0a0ad35699df5f6f2c914fad288541abd262d6750585d6c9261ebdcc2fa6e633ae5d66e498b1914e7d9d2bbc9361f93ce9f9441fbb5ceefc2381b4ac75f936821a3650c2a638b98bd88678b12ce0a02814082b48841ff5adcadbe742ccb3bbbd56809835ee736e3cb62953f996b6c0a500b18d4e5ebe67d16df93b146fc057d8e3db731da2759735dbda075be95b8b686b20bca6485353a76cf7fe164ac4a0b17f45908b3b3cc2e7c17ca683312a15257d8a3d2b245ecead3fd3df60fedf3162ddadffc5ba785b64556734b967ff341363f32779fabdfdadac293c8640f4277e8704e29dd9c537afd7619d76e8da185313e913dcb4061f6971b94f8b56a196e28528032e021030d9e31d0fafad9dbf6b27df9ed8b8146dbda64f7ba177386778681e2caa0b3d1f69db765fbc040db7c36ff5b8eb16518e7176847986b96f1566c2d76e7051ae19b11fb85d17b56d8ba402bf49a1f3256e5cbd8e4191e2ee456ad9d35ceeb308ef96ee161cf9f3762c75ce3a0426e6a81c60a9b84d7d61931fcbeb93e6956c09305ea4c5a77573fd6f7df321628738ce765adb27c050a6f8dd84e37a13bf7b756a0ad3f631b21fc98df4158053a1f9636becc1ebbb7e1d00cc34305da22eb76b5d536b37c971f179e2950d970c573c6c9a0b437b72c1e29d0763046866bce6e3bbf8b02b5f062d78ed91767f3f9a040ff3993ed6c6e5856eba4c85d3f36d13ce979027591b516676631d71bbdbf848529644ac166fdd8547a4e4325a4c4e384cb6c7eef64b517bb2745dea54abac1a6992634883181bebcfd72cbbe6e9bbbd5b304daa06ccf62e337dd7dd7b0dd541bf77f4a59d8ad049aaddb5ce56d8b638db09340ffdeda8c5d79ad336c1d09d4da6fdd629633b7f6e42b8dde944fcd938f29557212c573047af1c3f6af56f95cce2e1b81cafc99759eac59ab1fca39a5ba51f2f4a9d1734f111c119c6708ce230417045a2b9eb9fe74c6327eac81d0fa07cd8348633ea0efd3a37bd1c25cdb7cee3984beeb67734fefe7b0d68ffdd844030259cc5c77c0d303d73c68a01d388f0e1ad4d66308f51b1b93b2da371993ce5308f557b1633dfb5d736dfe149e1c50e66fc25a65b51233cc2e0e28f48c63cb58736c26ff06f4bed6e0d73b21966d56b701c5b16bad8ed967af3f096b4067bd19bab671da66cdfb9738898d06b4d5077dce6fdddc7b907966402fb336e35a3b46fce2638f0c6875ecaeecbff8e5ac528abc5d211e42687cb71f9cf8ca6a6b9d3f08bdd2c2dbac7b6f62586f8b8143eb62b79eb865f7fb228e0706d4737e9b6363d3b6eabe89bc597f6a989c6a663e339fff25a69af802fa6fcaf9d239cfd11f211e17d0f7fc1a769f4eded7f0f5b4804ac76476f5ca5aaddfea22efc802fa564ad6d97165b7c66805a1f0bdafaec9d8f2e2363dc2157802a138ced9de0db3adb2be2cf2ee06ea1b7800a10c33fb9cb519366793c1383c2aa0b2737c3da1b316df08992705543ac3edba9433cbf72da3c07302ca6e93b15ef7d8bd76f89a80d619d937f7fac29b7b4e4f0968b6b09fdf761b7eb558b6e1f983b6ecfae6e7f13af3bf924e0181dcf39080c2185dc4b83d3726b3bd226fd7271c5489b696518a670414db06bf62d92fe296f84679f271edf18356dcdeedf76beb708d2ce79442fd2d292999462910c8d30795b35b67696bb3efe655e4fda480b030e594de89534de9453539a577020402814a261b1bd30d390f1fd4e179ddc9f6c79d5dcaedf088a041d713029a5febdb0defbbaccefca750eaf4576640ada5670fdadae1f95cb76cf6b29c22ef99d3879a0704ac7395b6d95827660ec567860a5cc23135e15c6c09783ed013bfc6b1edbbd69e09f7043c7ae0c75cbf19716e35da6743260c9bb52c3c79d0089bc326d9bbfed3f3e341e395b3276b794eebd7af07688515de5b1f3f86b164b303b4b9d9b13d6bb8a76350de41e7ab2da39b99e5dcbe7280fecbb7318c7375d91d3e3ba8633536d998b36e98b3ab833a9f6eb60bdfbec33e596c0f1d0d4ad6dcbb3973b1dd640f7a3640ed641e31839e3d73d067598bf1abfb3c5badaf3bd46d051e39686e6ddb6ffeecdeb919e7f068807e73b5c539675bd9e474343c19a0cfec7b0d321c9f4396270628c4b5e1db6be3abb2e58d83c2facf5f8b6ddab7304a3868937f21eefcdebf41f3930fdeecf8c1becea31bb4c6b76ee22c6b8515fed4c27301faceb1b377be6693f93f10e8a6dab0323c6dd0865d6dd03dd8113b976cc6c306b5ed5a97ed1d86f36229d7a06f4ad9f5db56fc98b3ec4fef89470deaf01b630d3b56edac2c8bbc43adbb61514f6ed250092dc093068d1f61cbade696d0d9746378d0a08ee5e79aec2cf1edc7f90c3af1cbebfc2f668fe3fb2b1e33e86cf279df161ddeafde6ab0a852804058d4130844432564e32983e68cdbbb5d7deb647553e4dd6eea890a1a2a2193870c0a6795edfa61ecb259773d06b5ecbbebd76678c6dba2185436682d7b8cdd27afbcce3c61d0f7662e7a76cee616a5570f1814b68f6ec2d95cdaf8b0309150f7a4a4f52de5a05e94bfa8e42f4a658128475110832008009088cf0808000063130020381c18908683c188601ab75d0014000442625ca03c2a2493c8638140200e06511004611002300c03010c435124a531c85c07b11924c55b3a4b80262fedde329a8ff84d57fa59a1489ab133c5b78f1c747a96b29e439264cf8233a731f818dbe7487ce556729495121c0fb570b50ad0993ffec9cf0d190b58df27ba98a81805a7871465a544108a88a439f526d866588b207ac11622c7ef078270009298815348241aff16efe0639429a41561e29b76b7ec9ee0c832ced39082554560beeca44b9319a9e46b61f42d13438e30998af40a3cab04a1adcfc515348bd2dba0994d6bc9597753973fdfff536a7108d9f90007248e229af060be07c7d83c4a68e75785f2b947626010ea80259c22616fbe7694c94e4c1e6d8772d468a32148f9e1385e6bfc35372e9dd1a5b94e2025617c0fababec836845f34fe7b1451089fae6c7fc7b4010b67a889d6affd121864cad8f2a0b8a05dd94a4e03fd03f8a341b75a467c64d155a95328e7be0e165f61b696b74558031906223ec2fecbc9f11aeaea5c5e353acaf13e286be01206291b177c6c68af1bb19718991be182bcd4625b2614c8b6e1dd5eb4662cc2337f3582e3b7aa377d4206f6a5335d38caad5d163f010058f0e38271254b30c6a44b89847ed535337c56e5e6fa6cf42fd42af729e844ed95fdf3b241bbeda2f25a69a0a442adc132038f14a86bf42ff620de7625acd089367b3f5db46b8c37a323c48500dab952e214a2ab7442072eac3e277c15c240e4bf6b3b4ff67a9cf123f4bf259ea928f31775e676a96a52d3fa1652a600b984b2906022aa56efb6d82fb528f8f32fe68edfb485ee5ed461899f32537af0ebe29dd9c4e5d5aa265cfa3295f79d5437c86a8600215b5da4cc692bcf18da70362388cd68f3c5c0104d5abd69a7d98375810de7da0ea9de0992b892ec697468ce308807ca834b6cfeca13c83767c49be83451100242c7138e211088e8c63378a62236f6dede1dd7ff1be9a9183311ef18b071b0604f3143607c686a81d9418d8df63b48289c42b46a0795b6894389377a965a83c924802edd5a8b582b154ea81cbf6cc390ab344f1b21d19c6aeb2897bfb9ee4d6665119110dbb275562f5249c35ff11acfad50840ea0eb08b1df24b88fbe7e5a5d613c1dda635e280f69f959d38e7590885072c9925864cc8468acaa91fcb9cdba27d1977239562b97d059a7cb360bd971ad38687e4440f8103e5157bb4377221283665f433144af1ea3fa36a9f6f00613d616f1a1482ed6c76ea850b9484ed499dc336f400b9668c0432e462ca2f16ce07767828ea5eb554d401157a9646c64538a530843cf9848e32bfa592bca1ea6f82f28232ca3fcc9098f6ba81e60c370398540af6a14ffaf1732f2c98daa6bda0f32bada93fafc063b3669ea69329857a49c835c8bf8c2f6f1b119f3f53b3377771914492b2994942131b7f5c7840210fc626e1d088ba1a01ad5890cafd3255466cdda605d420320e5f283edac95b55ce8644150ea79d023d23ad66555527792f771c9ee89ff9c04ecc8a3157d2ce4ca6bed77d5f66f357765279b5d5a1909dd5d8429455d0c91d6393fcd80cce309ef4769b52eacf52fbbcabb611ec0d560c409e32b7595c4fd386b9006dfdf93f8d8c5ee9c2b2701500f5a2307e65a1891f4b3f4c52681525978cb218644ad8c1d5162cbb591235d48714d9a514ff385656c59fa38c81d1c485b1801e44082a0b27e70226f90ab7e31a04ddbb7a2cbe9d7a62e535186cf6b593c6bcdba1033e61ba2d8a398dc0543914f6797f784deb8132d119eee42f81d6d855b974cb175a1e361062a0ba03e93dd983392462f8c11a61a68fa3f2701966bc0deacab4e69ab580977d216c437d04b2bfbee3755193f68e10bfd3e8c1a1401a2cbcc26e12eb47f8e6af944649eab3caa172999c43aae1e520fd39a036bd7ad664bd8770a61f935d713ce406e221b39f01ef6e26dd6f641c50eef166d5cb448c1709e50f8602251851185173cdc274f24c9256c01381e2e6c97cfb0b5d66954d219312604bae24165554a04c9650d60dc09f85017b919c2ea7c03dc1a4125550961f7d977e81ad4f770c3a2190ccc94446751ad4016388cc1932384c0a7546993e4b047c7918cd40030cc50667d2f6647dcb5f6f6bbd0f56babbde18a852b4c549ccfa16dd06a1d43516d385002d0236f23536d4cf194aec0b71a97b5a501d0db4743be6f66fdd473e43b6a2319dace40087708dc21b22a42bc00f100d7e2d56a959de339c21776241e7860d05f0391d281a491312ba265fb5986bb8b779a33572f8a71ab06ab7d88919ce4ea74a0d0a3f1522131e04bb6e0b612f71a9c900e688224a04c0f818189d66e12f17c394b82a1579738b0b4077c7422741ac4230eb6d93d972e6df382db16a9ddd310c5450809df543432a7605745b6f0166376723ab5ef347808a7d3d8198191207752e115fd6b9c5e57ebf6a49631b58496a2789f8a91728c93a9ef70a710d327e83475610635fc7872c6f040bbbde843fef7d9505403efa18095eb2d6cfdbedd929f08e9f6e38d7723f796fd251122dabfcb27b5ebda8ced6eaceab86f430e47ed44ade9889b1a2c2d739336eea44205d4df56558752e2dcc496334b79152f657b7dfcfd99647c0e6d3813837c8b14915b5013d749b73951103c183eb84e877aa174cb7b9570dbc93c12f91d61e0369b6095e2800ed197e94e352a8c7c3a1750e9ea3b8a5db8a2acad9264d31fb6359cd008188f983b22c1f2a281176d93543e93ce244679aa0d6916fe7e12cee65e59fca20ed138e60ad6c8b2821cab852eb9db459724b9a225aba01e5deed722a1dc6b1850d8e9e6508098386b2cff4bf46ce003baac44e0625022e4bca8d6605449e5060500c73bd631187cef50b552780af4a524d840466760c0d1b7d4f741c86ada1e0f170ea6cb20f8b56b5e9a05b90fbeaf2fc0df6cb543a1b343ff89532c08a9d533529ec9d18e6010405609308c719d61a14aa7260db69053f3a531f2c188134a4cd806c49b65ad0f33e7c540858f2c5d9af7939a52c120c2dfe9b1c517e17ec48f3775aad8d94f4c9ad8d2e8722e0257d2f408b49ef4e0ed1a9c622d327b6364b3e6677d1891f1f0e52e968f011851554c6a5c88b95867b7cc08f556c14a205a1c695215609f9e070e11ec9706b1a3636693381efbf02b645d87c30219de2689d480507734e6afa80aacb81c30de7b521f4dae7d4f52c21770fe918efa0e62056e16d97dabecb165dd4c8e610a12a236c7945bfa5e900aea802f880a49cf3e4f1d181c310ea42ed700369d6f26aab02f4a44a35c175a03d83bf10b0c9444cc072e4c912285ebfdc70b8a21dec955afd1f9448ad79b4970a78768dae7ca9880301a6dc0ca203e84906d0be09ce3278fd62b7e9ff89bdb3efd2f2c595e80702b98251b5a13344a4b325d22cc8e50164781f5440dac08f7d442373e38be5ee623c1d9437e0e097e3f4ad454747e4e090281f13422956e53330bd4a4ea5cf80064cf72f45fd0b39baa7c4a44054c8f05fe7301eaf4a61a91510e83a01bd1394f60a58cd00fd0838e6041abd45a8ae8a0aae6211412abea24be3c96bf4a67504befe510d8ff4ba4079215879dc8c9757ff96a78c1bbccd6a07ae3a251776fee52265071d9db29aba4fb4180173f52b73dea8b2f6ec9e619bdfa48ba85573027bc5ed6ddf46522e8493a58302f14cdbab2630e5d8093d2d6612b3cadc187db93f515e7d8ac14c89ba31ae9454573174ea4d1206daa3cb3b11b50e97cb367d2a3e4b6a364a35aaf622069d3be2444804716df3c59d24bb7ea170fe66f04d0695861842308face29a9df266dac30801293a01f3ba81e7dd81804e8ca23a8c9840face46f8728149169bedf93c75208ad649dc8d92d377c498312bc469a3298d53b97fe2a913e169eaeed771fbe1c452b68035c49ebeb9ccdcfcac79aa66f61fa704449a695c40faf748bdceeaddadea53aee7cd2bf44f7ef84891e29e82a6e6521d1ee70e8661661b8b23a7e9bc831f705e1b5c286ab3612c88c952f19db5cdc99648ac131546682d1c3e7d20c498ea9f4d509810c9170b8cec64a4d1e56778540ce20221c168cc5b702fcf522cecaddcdc40a29f1892863b20ff574bf9c75100d3fe45b8d0b01260e3cb7eb704932eb9bdb6aa2038ccfca40e68f12b106807da2b8b07fc0e6c8ac80d599f94329c053f0de04114bfaf01f7b27c469886f2725df964f51b8056a6481bdb9cecfecfa2492bfa9ee5c42b2943d371c330fd1ad814e5d98831efea37a32c800e9bf2804ec8c36f87907a4ae675ee458561fd497aabee44eddf7270e22509a833e18bac166b082077145176839adb2f55c9b6986eb3cffc3b759350e7a768266bab7c458f0a62f979660db367e09df5758f432e0afd8b028669e75363deaa6bd5a6018aad4cba62714bf7af07a687fdb8a8c3b3b46950106ac52341af4f7a85a7c2d43c813cc065dd48fc901d92413b092586845392706545002e6111d225f86145297b5a3e57aa2ccab7a93d86ecc0715afb1a838be4e9a4f501db47cdaa114a68a66faa92d122c75e953601cf8137386ef8b5e550588d80f4bd698d6ceee36ca7608d2294f19af8941fbc3d33a830f0368166d0005bd6187cf94fb0ed82118578398650c6a18d14e973f120078bd2dce6ce517ab5693c8bfaaa0905c581540f91d749023f2e8ec462f14743f8c1be024731f0f3f447d0dcf626431d3e80e00cc5ca80b2806dc2ba40067193807e339976cb5416fac524e686311b554ba12511a5d4520a298594aa94424a21a59052955228a510ae4ac5bc16fa349618ec309635d8612c31d8616cadb1c46085b11d6359835518fde019c53056e314b0e1453ab7bf7738b3ab811b4341704a441fa7801c887f4e25fc61039947faeb66c97d1719b04279ea646dc0e59a231b7c3982e58a83cdebff746f540e642525a6c8136fca8b8bb93651e85a1ab881a3ae6eb6cfb0a96b01017870af0a5f2468791f0f6f1ae4cb01aad52237a6a143786d41d1fd7b865585c0f97bc2dbfabfc58391e2b2dc105eca4570e3709b6f14edd7e1e2f8b331c7d400f951dc517035993182d5676d22b9e9d570682899903b0fa003774be3d28a9a501a22d984b07cf94364495163742d4fb708ca5d66781b4003b77ad146321a158d22046e1618a22cb302d071852e5291848f7da4a5aefc8e3c064507471722649d1058317d5164a9d8bca18beb9c7583b6775b220c622628755bd4d4b74e09e56545b591b3a03f7329aef524f75a3964866c9c26e66b77e8f2f5dcb751fb15e3cd315015ed723b8d8039a09e9d11f0e605c69f730b89c13b3c388572148b4643a6328a9394aa81a354e46c9e2376ad8c2ba3564829d9e71ea166dbba00f8e5e47969e19d5b2944e90eb136ccb15831fcd8246d25a616a404f93b50162138c922b621fcf4604fdc0bca30ee8a95d207c687f3899fd3a5eaec65dd38c49bb6e9cd8a82c98e4d9a3a52cf2eb1cb103accbb4406fe7e613c723e5dfc855ae76de93e74eca8cca48814839d984b990441bbcd5e8c26b69a14e201c2bac093de18029bf20fa65cf097fc7f71c522f575d66253410b045537e303a0b4e4b831ebf3123db74e5f82e51457d28b514bb90b2347d492c1afa8d65b9bb608caa02fcb087f11036c56f0606de031117c903662cd6ab5e1af9a2376ffbf359471b636ac84909110a24e2ee2d8ed69a00adfa3f7810c23863532c5c4f0617631e666900f3719c13b948e5c5e83a2a77a088c86411a8380d4d8b64fd1891f1658d401e2b9332692cfa4bd2ba5c3d88229a3f7cc0783b0076ce878e4dd7272c00c6f444ab17bf1128ce694926d7ab014caddbc2e0f6befe08ca54bc95955d33238e0942890dddf821a0b80040fdb0f5a70a3118450d039b41006065069bfbc08df4f0b4e2d5a0181b9c444c210a427e00144c881f647139537f7cc783c1937ad9b49ecb2834c18c87927a16c96a8dffd2e8c4cbc37118a2cf4255e82f04dbd1d29f50c33b36c5d339a04fdf16cf5d1b37d3984595109192ac7d6b98b69b7d1422c46a00d6c8b2ea7f54669167116c98a15864686c884c30abf8dfa49e1f9f9dc1541ee69a72a0b87b39017577e2bb1e7b0921f302edf1281c09e86188b0dea94841039861e23905272e3c3c2333535b35d74c5604d31b6aad62ed26280ccc5cc629d3b1256734c2dcc129962fecf823c87045e881a5e4290ba83b0a043e94aab614eade856c0401099b53ce11131c3672cbbbc6b5e6edf4c693367023ef97a13be2f1f992979f2fc3a73a8e652a993d1f236e2c6083fb483935db4f34a245fe5180afa257cc8ce156766a55805a9bac4fec4b44e566c0c2b7fc9a0acd13cfe2d624c12e37be95c18755c9a7b31a44034511ad3c15e707143e79d4f4e208bf754d7cd441858b23721caac9fad2941ddace08438c5ca204b07e5c5354c528b86b1a46cda81ae091d85485d713d5944dfda21d1cb3bc86a0e1fd45b073fe2ed388a657dbe57af6ae604bd1fa7327f6171ebe0f3d1a4bb82df93a03b2dd55ff655e8bb6f3725c4ecf4acffc13fe3354df4701c80aca9e82195177bb686fdf1d79458b70f09a38a434e0977d4e00567ab96ade935108d6a911ca27b167c2275c93c3ef96300bc83da8eba85e3364685a5e3d0f6f0609aa6b43bc6a07e457a94a30008fa15e9f71f90d27eb84688e5f65bd5172205220ec39c1312d42f320ca7e4793fedcf055832d00310d4b50f65a6037c5d7ad1c39b2aea05b86ebc1657f924103e4ce89219ed628530cd053573134a9c76a2f9be8de64693d1ac8d08a437593243ee8833cad58d76d738c317f9bfe64ea5f745df1aeda5db032639922ab3c1783878269e7ba81a46c91954ef83e289248da7110dca0ccea4c2809e8e89d04e39010ec9c3e3c1c0141dfae93d552046bac11843bad0c71d444924a9d6441d72f95f44aef4173dde8c3cdd71ab64ff511958cabcc5698b6fc030961fa8b46e0d728d32c2480cfb706c9098a0ad000c2bfb45662890eac0f603031fa3822ef246621def6195746f9470478f34c27a60834b9654ea74ac4c6511427756a542e3149e601bd59e1748a64440ab035dc0762c3d1d2f04b81e26a1e449f0a60bb197e18e30523d490f72b9b822f912b288b8f83aea397f0a4edc1d30683fe294aa00d22d83c45d0541b90bc9463cce6d7223a35a053b8a2d62fc90bdf866cc9a61f85cb469d525fbd15b19ae989b6d245356b28831f0ee6a20d9ac4aba294ce45a6fd01a1b18a520a25949c3c424797ef255c8ebbee22896b35878cfd2486df68f7f2951537e825043284895328f63e054128d72c58b5df7132c7434e410fab924f413a8306e0768b9a3702f859bcafc508672740f292583cd2ac2ecb88edc5699e9e20d146a114e62e32cce802871132e2ee742c65584af582ee25c457888cc454c285e03ca8883f79e19d23085c365d5188902c229ff37b6a3f39f0dbea1fa049dec445ba7c2305e50e63f64d63e9b3533b6e7ace71b6b79af3fe47ca09b6b7f4d61f7a0e3258f4ee817779f19f0ea331d831689370c8be0f2556e66bc21f30d3fcff24788aa8cf44fa7b1e26d6e6418fcf786939c08aed2bb5428f0168d23f42d662c4468ef84661aab832a915e66d6794c580f41f1fae5bb368c1cfc4511a1d46bfc208cd4a2c7c482f4821cf9532073e48308c4cdbca45161035ae4bb75896c091ddc2cb5e68b4331f0b3e05d88d2293344a3b931cdaddaad2001bc2cb2832a893175abc5894964e7c89e4ff585eca56261f4209795cd25ad84f2dba3a43a5b6377f0b187aec0f6a62fa9b3aab8e0f57d67159570691a1b6536181065402fe1612b4315948f8d59e8fb8c5ffadbe3f7a51a9ce78aa8ffc991e1477288c77502e6f3d0e475ecd547e64a0f34a555e214df381f0d2f11e287bc17e5b1fd2ff1bdfbfb1cbd32598e35fdc9f036c07c43d97f1d2178c71a2c6c223befe02f5d02de978b2f6136cb00b4e5dd521757dbcd2b698052957b7ec450aed2bcc843e6e94f55cecdd8db1a37c4ed7dc27b37465d3b5b93abf80a3496ff759c8d504e50dca1363b724da70e4ef4b5d1d67ce214ac92a1bf08ad918df7c8fa56ca210a4f5ca6c4cfdb5e0dfddf7255f737d6a137d74b35ae4b6a41e856ec69de1921293fa6225524f4c3fa84cc1a3908139668eb8a719db58baf0486292995a09866ce4cbab5297f1f838bcd11ce241d14e53a609a8d96aad112491e4fd54483c2822df5980d3802d04bb50adc1a179773a03430e47bebce09d58c14e1a523e4b8ce22140fbf364b8353fe478224b11ca4299f6a9186d4af1fbeffe866cdeeeb5d9ad6d65b1ad7f29d4e4f52bde140ec6ace4dd009c24f5a95485e1d4772a7ed5615c58f4b52148917a9d04fcf7f25062345a36effb1bf6c29ca4d39b9075473161cfabfbd29694199aaa9e7ac24f579cbec301bf8c7389416be52785610583bf057d7acece172e60601d51447e5b2ffa6001810171d27f8250191e707182dac3839a0c668d67821dd8d1437bc674b38fe85a4eed3c837fc8c61e0d35d62b3b17a8bcdc179fd754ee2b29abc236d6acfc971be2a61d773a859e20091366e52fb60b1403f07ada7ade8513418de56901bcad3bdd12d8891cc1a729b5d918dd391ce9e61293260b87d7a774ae8fc0e97c9e7a2f92c5a8dd30ed0862a2481e959f737064e44849aa6d0ae6460512668a63145204d12b2f3f3861a33265e741050650a4e8d323d69c54dfeeb64c36dd704bd499b6e7c6640f1d2d6369ee2c1aaa39cead01b9d65c3305018f1d4c4543c37ba19bf14035f65dff76f60711a393911ed94ead81835ffd8995e8c86bfbf50a21b011ad0ba982f93380d8ecbbe4875e0e3c82be418274eb6c0f830916d91d3b8e1e93fa13bc722cd3daf3418d435967f583708a44e40a1fa8ec0d502b8fc8b3b17c6f391d947cf2eba556a2800a494bfa8215aee7e940722de576d6ff5e97fc5c14474be21ca5f2004625a3ae30a14645e6a05bd345add01b648f5083b35025f9e635ce6a5b74c029fadb65158ee1484ec9840551b7bbe217a7b6874bf71f6d94fa0f04b58b7171234da3d5ef8c0eee2240c66aaf2d02cf689c8598257dd7ece8fa8b59ae05aa8e4bda09c8539506558f95f512411031be75f9b01dc35e16f9780984540d3ffb6f13e4f9934a4abf8e4c9c84051f42f4aa564a711a69e6474b29b094431bef2ff6d8c301746974334c73060b312052cae215a0af4430ce4d0b0fafbd473bb2c332da7c079be44a60f0a74b0fbec0a12e8a9ae1372bc0843683711d8cd7abf7aa031fe1c49cc4b959aa4de8cb3773ac2c9d397decbfc8c6d3566a6e7c10656880bf78795d63860d518e757faf7ac1b4feccf2fde5b6d3ca162a9646b60dc60f42bd5eca13820c577b5b6d3f391a96c32f14bc83776fcde9fc888e6223f1e57fb6c6ff12cd7336220a97d75abbc3926f22c83425461e2cc94e7d4ff872bb4c6cb864c44277e0053382e234307e56004ff2deb70038b8f4ed554835dd2ce0a42b367d1141008445f09171e6e8d9fded83019ad6959b857b32208d75eec9981a72d690f5526c1db35152284366ff94fa7a432dcded3f501c232f1c61e78ff75e920a8c8bf952229878e1a9ea1b30835b11cb45019c44bd3f5d9349130186593e9298e5be2e47eeeae9b63630eebf2ac6aecfe24357ffc28f43fe6fa8d5880c299c5af675612c218e1d6d4543955d709600af62630a8f3e658a56b4e14e97141875f598c31d0e3a5fab40ddfe1e83741872ce4090f295dfc184d6e7d599ef74bcbf8f285b7f21623d7798509a4ca29131c10fbc9b15873ef7226515fde7be61c2350cdb73cc8eb049a4b52870dd7d769a41a7f245bfaf598953b1c680eeb871c719e8a33f1891005adb55dcfd0c9403d8a3513f029c0401c28bff27821429fa738c87d030fdc4bb89148474d3d8022a3a2c416a9955b0e0324b65315eeeccea0a79c0cab0de02af8bf464edfa32fcec0fee1ed806e6a58c840e517e7ae082d2a74c6efd714a1df7f849ebaba06e8d1ad98a960cf2420810accda0ef829bee0808ba5a392c0a86bfbd4a52955bf03574a9e449b56ac080714847ecf2e3bbe4d6203338ff0f698b61aefb265d92925f1e28764c67245f0db612dba7fad7cc141aeeae96f5aa38865942c5e954be09beaf461180da3bdc5b63f674e4f66e483c6e2ba13714224f5ba2ae76c400b7a3820813b1ae845d3d264ac8b39cb1c10ed9a8e7006c79baea6818855818e1c7a133bc78f32cf7314052e92f198451048d70d1e8547b0b394861244bf00f6b3f4fcb80eb4087784302b14e93cdd5a0af9af7a72d5da03e9e794f69e636b95877bbf83f616fa4b7f7f24f45ff407d05a58b965b2e7d3013523e16a6adde2ac1b868935e9a60d8bc4601e4660056797634614c17223233f43d40d8e1be173b05b12480969011d20d9608c0f7efadee14feaf5fee6de8138648edd94735be4c8df60c986886bdb96897c98fc80ff1db55785222bd02dcf6d98dc36499e02073d53fe2e125a5442e7c98dd7a74b4b5750e7924de2f644ed882c613f9694d16d11cb0f17a1bbb4fae96bc930f0351b41051bd9dfaa89fffb750a7eaa21ff022160222d80130d0d921701aa9b32261b275b39db301b858d9cad8d0d818dc686c0d6c686c0466343606b634360a3b121b0b5b121b0d1d810d8dad810d8686c086c6d6c086c343604b6363604361a1b025b1b1b0a7c5b5df30326c444d8b2b621c26a1b7b085bd21611d8dac61096a30922a8b5ed8720254d1041bd362911a4c4268d0b4a6b50e80d4febb68a2e3d8f30c1d927e828df28f68063ca3e8cfdf8968e26cb722531cab3cc0051321e5b79d91c4f98ecbd07cda43c631687d300ec440e7eed82531b1a7fba40d29b34362dad2ef27229a307354c11dc9bc4825a372bd9c808eb429e77f991542be3187c9103bc296f7ef7ecfb6a003933ccf9a17a637031337b6ef49b083ecdb0dc15059ff0b231a4409cde58f06a234be4cff46cd49d716e0a7922ce4aa81cd0e4fb439325501f8d467e63967dcef008bd7f3f5ec57598a571cc6ffa5394e168b9d7eaeb353165f6a82f90bbe3b61427aaf015f1c5af49d8ed4daf28c0f04fafa1a82ebaf8ae4474a60437f03b482e1dc7c180ebd30aa703d1366f194bd593693f0947939e65df8a2099f19666ac7009a86e25b184a771dcb27b0991c6dc96750da11c54b7c473f9cfa444cee3d7d9af8b0925398685495cadf9550d641b9b6f6addfd2b61b9eccd23332b3de994d4c0f37e5eb5e089cbeddc0c095da43a8b1a4723f7aedc00595c218e6cd4b4f07005f89175074e2b27f2ded393fef3fe24298862b14472ae28d3c618cbfeb3500a293528e81a20cede03b10155ee354bcd103a107e828708bc12f800f8da70a65a4a28f1ff5c7cc501d3e5508f39797461aa666f532426a6ea816a4125b5a462a0685bf49a91e9a856051a957df41161f3c52748cc777654d8d144645fc343be1041cef86530b886bb26c20dfac099d3da681793779d9cc6f2041d498b1334126dc85148b423a320d94e8a8eb405190a89566414e4dac9d090b5264527df0223db0b6643f2cd0d677ba89f7bdf60ff2a1d5b0c2207ed0591714178ad9f8113dec8c6a6f70b953db894e0cf4167b41c711bab4e1a0ade59310a65cdce539d64b784b858a3bad734c59a644a438b299cfa9a274eb0de0ccf5b65101f94a58979c4ec36f3bec9b4376aaef271f3e92ed4b11bff6afdfc443cbef07bef6a5dea3a3a8a9913ea8a8daae039bc0122052250b57ac5d332f112a58de1a7ff6644293a34e1f1dfc4c5fb4389df62eae0d7fab2b9f5902a1e6ff1c2a1a91e4073cef7984de806b97014e8a7c2ce5f398cdc6f979c93f24ca329e26c41eb7ba44dc19ac4ee35233c1a4b9dc563fb988409b1b738f573d3941941140158617672d4105e6157cbae794cfaaba12c297327ae02e5cd5f05816368c658aefd802a1086eb718c86d39ca62d43b8bc378c12799d56e54535e00c99eb3d64f80a2e1a8f943b46939d8e9f49562e69b7f083073710c342a80e96f16dc97b12b5fae4da2d205bd534851139ba4f27363be41221df64324ac4d7357609b93206dbd0a1fd67e8679afbba2ef2d856388ca520cd88129eb8da838e433707370fb2f0342a1e7c2e07295c2a869dda0957a6bd9018f15068bc2a16be400588c7e7b1b040af16afbde4492ca645d488dff38881ccfa9bc737564c8580638f5159793c647217c547706fe7b01d1a4cbd0b589937979839104bc27aebfcc716750fb174ee13f68a5e61db1bbf73115bacc35441c6a6a9d227e35bced26ae9bbfca2887976ba3d8f63dca51248b999a21a6351b6e58a84dadce75ded94ad5a9e63aacd79a59afc9441ccce58111bdd33fa7697571918c3c936b38c45eff8d1213a294bc7ced6a94e45bde3df36f03d091cff2d18d357f569e1fa9075efb52457be40149aa9d99c205140651d309244bc267783c83189c253397f81a73b961fb501c436e71ea030b92bc7c3f4b9e6e484b6711ad3579382fc2af2d9000b69772082502c12a41df71b1ddb334910b0963878b78d52e825ecd898d7daec2b2fc43d7d51eca8add8ac982a26c757f15096a9ea30cfc23f0477467dd37467db79b9879b11a17aee200afff0694847ab5d4a6d54eb04cda0c9ab890e9a7101fe7f20836ba3a90a6ac7646e55c6310eb33c7e5a73cb84498369c6befbae1cbb9dce0f342354f8e950de2c9b753bf313f343784b4e980d790d6af7bc70c8a65a984e60217d84eaccde2092605101adbc105463f5337c42e152d34346cedd4ce0782803f18c2582a57b5bee8bbdf90f1e2a8f752ebe752739772630b482f9e1d2c9c163aabcc7ee1ab789c28c9e38ff79a1fa85afda8956344bbb0bb2883f3507271db8cfd68f9ef35b8786d7125189177fe0d6e88bf078357b06142577ab4a142c3d3a80b79254ff0601874b7cc892602602940b502da0c7011ba69d174898b96305e3a8068d7e8714ac0a6ba2df3fb5f9ce3e47da2cf980ab4272e7f622ebe0f50484827d074c52d46736c535a56b865645bd1e0eebf53c12aa009cfc50a88373d269fc3f36b69021f3a964c4522ebc59bb88784dc7a6d411739d13b2850e43958c90170282ce89a7d637fff0a736c754b0fc3962e04c31d14737d834734b8d1b88e6d12bdd4ca8c2777063866cd43bfbea6e3c14ec6f51faefc84be7f90661fb87ce1ffc6acbdf7ea2c1cc8ce65300b0df4729261dc59fda289d0aedfa1b441f3fe99787edf6fcb1dc1f21009921f5c53898861963e759c4f062e24e45e3ce5fc13545608dba2370ff592e70cd10dc7d8a6225b1da064ea31899572e25899ee6d251ea97ee55dbb8f96cf7fd24a37c40d93bebf883c5a1c705f58f1f9a89bf32fc845fc459f4fc78481bc7d7b38cd73dfc2978db9f4acc09a12e50b0409fa5548ec75aceadc6263f50f6e748465fe2538da34787ca8f7d132aa779409ec2d9135c0a1a28771add07a3df03b6e0f6a8c7c87fb4e7ba1f9bdb7f8c4efce8ff9121b0c4e6588bd3825f752df4ff87d7fc99cc0c25dd3fd88ce706f240c6f27cca64efb8d1f7389c196fc3f1fc3928927607e54873c45d972d02b698c84792289fbdb62acff3a567370c81a293c19279a0130adc9c53f3a2cbd94c7a6162699bf48731a7d559aa2c04bb69e0a074850ea5fbf8e7e8e3e7d26e789d4e21ba6b56baf985fcd66088b0bd36a275f3f6b0c1254e08fc346d43c0acf9eb62e53f0f87e593a3fa886dedd3093f6e90ed1b3cdeaca690ecca9a8cc7a6e65a17a7f65935991366a05520747e7b672de39679a6590eb439bb000ef428255a0e995924f0cc156b8e201ed448318388c44a7496b6b681007b135f9868304c1513a8a9dd85b3de4fa8ffbb9189754057115b25f1ff12b923c83b5313049489d3742ed1715cbab0574142f4dc5a0840bef439e149f4361f1081ff7ce573c8bdaaf3af8984d5b81667dbcd43a2c5211be583a54a53a5c946b5acde4482a43881dec741c68931a4f8404ab8a1d13500b692225124011be7bd611d31e4a1ecd2cbdbb813b368c2a30cddfe2302376849cf0035b81cb2f5082b7813808ce2570adb431b03d05c7feabb97050f0d8aeb1c21f6cfa2e1f572fd62801c633c4641b10d9705ab6ed7d8be669c9b3f613b2a58fc84886cf56cd45d9498791991f6f356e172d1741fdd391114a1189d838e6edbd0d709b7a2339cfdfcdea0e7846acdf21b3a5a73b2b3c2b985616100fab920741f817f50517eb0c5dc9663b1d988769823950fdebf0bd847d210197fa5ced0ae4c85cf3e76f279344477ad42cdec4fa3a1db7035c40d2ee8788a82efefab7f59125b0147e449f774b50f274cd8af2339a8e5f5f3ddaef5e63a99e634a29921701fd471aae352ec7bcb3c05595ec5b031f3d3dd5594ff886477d44a64cfd1895b6c55f3bddf52810e851df8ae504022b82175dac2c72067f0947cd69168b6ffaadeef3a3e0573a16687a0e4ca1c5fe729a4aba4cc0912c2c11a10e11520b4f8b30cb3c043dd54e58df877f1a5dadfbbc8fa6fb3b6ad76aedaee4b41de9456bf0a4fde5eeff7d790940abb20e57099208f5334d9151b85cc0def73097321167a0c3b7b36fea35ca827a970dcad659012c040909c97ada39f55aa59ca466e8743bea672f63006d943fa3489bd8137a7b528bce01dff83db894ac1397a4af2e834a227185570627d4e5a9bbacea17444c641d8cba1a12d20e246894aa419d2187064afb4d56cf03220b72a45d9b625b9898d8a68832140d561e0e87d2834ea2e363ca30b0384d642c1639560b2b18a9114341d0628ae031e18d16e71208bdf11cae829554d2160b691e088152c1840291a00ac1e84426bcd62c377b03040da2814bc2e0826bb161849d1866180ea31e0815b6868ec4e703e431d0085ae85c106eb60c403b55129381d102c560d309aa60dc70cd567c700d5745c7169a2e564dc90dae65ddb06d902c376ee1a01ac45ac763d3576fb581d187b3f7163f6c0c2c1d0138b035b6f162eac9e99b8d97b607160e98dc181ad170347764f6c9c0cbd303830f562e0c6ee85858bb9273677865e0c5cd87a307063f5c0c8cdd41b93034b0f064eac1ed8b8d932f945922bf23324a7c76f47ee8d1f18b9163f18546db383a035c082c688e80bd3b9c5083ad7388ec28241d31d6932a385e7d7b46143f8f45097bcaa47913d53725eb2b156816376cf9825beaf6bf447d9c2ddffadc59e2ce118a407d659f263e7085f98cf4f69e648a102161e9d7979664c2e290bfbca1c90776bb8cca72f338a1f25da5376b6381384c0cb0081430163d216bf5a82c2984523c2dba6282fbd55960db3ab4639bb0a2bb79246d1c2c0a2320fe2f6149c5b42174db53b6cc36e3ba6f811eb537fa8c213c370ffc0a366da0c01ff49e63b2ce724b4de005921e3307f2faa09482683da1004165b100b33ecd66a3329869a849f58e79c46fea303de95b6096d6c18aee27866ad0f1da6ab8c52b564d881b39a3a46c8b72dd482c2fca0830557112b67104ecc6210340328975a52f2d904d12f634873b4f38212f001f0f743cf0367dbd2e7409db98f1e501de0a3042b569d904badb2107f4a9fa693c8303d7fe27a872589b87f5d9b42a5eb8f8fecb959f9501956035c17853287d05cf0c69fa8d5894bf188f9a250d0c4bcbd2b28685eef3b1c1e1429292ef26bb2747565fab36d1a0e23cb249798aa51258e067b5f43a6a3f550fd24b5907461208953df0320fe91e1738eb0800e49f6978ae4491f9ee7ffb3b11d79a0c86d708b16e672b0b71692d61be557f21729d7ee19b0f8fd4d78b269f5738f175ae82dac8bd85733807e2c4ce6fe0a2c009a30187432cb2d713df61dcc90111eaa693c6205c57d09d95f071bcb26c008b6584aa89bda399f6df656aa3231cf676d076ac12432d04c84c6fec89654189886ad87c51d5f35cc51aecd146787a1d86ea4714c93e20fb0ff1bbf981471123a6b79301a24d2a5517e9b1d45021af9693b64ed81ca276e9807fa185fe0748a2758b00f145ddd8c3c3fc338f648c84a58c821140bca2c1453c1b4ede3254aee5dc92fcccd7c309ed644ea4791b91e9693a6ea500e956176e0fa2cb24e6dd644c02d8a64ca26e850e3880998f818dacfe47e4dfdea3eee6651efca49b0adbbb1ab68ca280e5fae9df3522094840d61a53438de066f8745a90d456ba40ad75e8bb2f58f2662e7a98d55c6787ddc29e4fcf1c2bb22ad0ed81950eeb74938d6638c33bc068f44e6d8001f545c8be2ee30243cbea7fbdb80fd4ba791a2a466dba48edb2271014b64f1c4eb8fab1e0a7f29c18f3efcb56bda1ea89ed088fe56913114ab651c4b08835341ee9aa375f5f4e03fb789a1b1be8bd22c393b677f237e48d51f4a833b2e35cfc147d84f9bfbd4fdf0e7032bb5b7964563051b5393810cc8c0fc0f22810f7b299271a59b4fa3a160db24cb7dec9d6adc65ed736bafa6ebcdcf7c571335260653be36a9db1dc80e96b4c1bd16c5af30aa257e054dd90bf2962dacb149db45953038829bcd8ba566a5afabf1e03323bed2a77a9418ad5afa64f355e495d8985b15a0bd9e5c6c3577e36c91a09431438a939720618e6bb30f15c91b47b1e03929805d00b687f2c5fb1853e96b3da41190ba5509060e1b9f0777077d543326493512cd36dedd96ec883c39f904a010613bbd07538ab081a934211916f503ddf4dafc8efcc2a5841683204915728ddc694210fad434980821f9292cb4a0d52e68e016226e615cd1bc9b101e60f18929952e109d5240a069e1064cabd4d3cc355755c8efc21b260ab8321368458f3b23917c8c238b36d234be2bb9b8e35a2cd48ade396686693971d1978bb90e151cf115a5bf8f17caf194540339807d7d0e04b39c2a4773098e2955d792dcb181e37433a3e1a8d92d6384dc2a7f7fef82acf765f4a19289cd9878a4b5647805661e14faad13065d32f7b8b59d271cc4ff8fefa3a4d3ffaae3eb62b8e0ceb34d29780abb30f10953883bd087e652dcf7f1f43f731ea93e0ee06bafbd4e626d2409b753fb677870b2e2018d341d997f1139ced7edb07cbd047c3dc5913eee55ecfcd7f26e7e5ee5e1439934c38d5af8b53f2e2bb1e37caa52da748fb7c8dbb4e8e79367c7eda6e0e6d20257409f7e189ff31fdeac05d66e858ac9410c48fa5b5582b423b40207bcc65d55a04ac79ec4254b7d39476696ade2321d86e9e94bcb7f203e5f925b084b4eb6fda732cbe3e5cc30f2c0d47a4adba0aebc137299d78d0e8d0c84434c9e1929a190b69a90330e48b5eadc890efbb2024fa53c6cdf8b40e4999b5cb451d3ed0a56809a0dafb055b63a39b4fae0ae37721c2b7f9eb826b88972ccbaf06deac65865b0245837846d47346ba728143dfd1be261f632948561db76bae12752a7019fbf1fb5694f8e888c92d1a7c300b02e697ad73f71df0b0fe67ffbf911abf3154d199473319d8e337eee7ff830601a096dfdb81402f9b4fbbda8707408187650f749459608c5768ce0ca809ef9b33cd6e0d87dc91aa5eda6c14b93a249bd2ce92a063afefbf7a31ffdfa5cf4e00a18de1f2976b99dabcba87476e41681ef40fb555b146e9c3eedf7fc189ea3175446494db2b7b80e1cf058cbfd2119b773f62a8514c81f41b3172747c58c4971d81ab3d9ba78c0e58bc596dd9444522167bb7d5e745e1e8cb8d2ae50e67ffce3656c1129a3bd28a74beffc55339843c57c65662033afcd55db0b273e3cb6cc2d876f2ac4a94da3888fa59ad6b98b0356c48bfa93f68d736380d917df906437100e4c860c60db46ba7d6841f5a2d3d11b89ab11a9ae38befd51906f0e20c51c1751ea791ff970f12980a702f8b2671ed7c8691ea86aa0b8238f28ea3f999b27ab9ea6f11e9cbdba225efcbc3e0a715430e03b08544f1fcf1bd05d5d392f0ebc91b83da0fa59d0a10df8f38a446ce317ef14501dc7e8ea512698e70208890a3792add1a0615fe16e56c0ea5e84fafe1b6115ef4d9109374af53526a8453e1258479c3a2dd29b539b45f03c19431f568721c74dcf75fd89f6c893e2740499114173e1833b3617932d2a525345df46d7731a1a78ef1730e8d3300118a838fd3f9471056905b0bce8e49896228d02aaaac45912758748871bfcb1e11f6cea098224567d6cfe09dd5dd1474bc1b32b877ab796316dbbb02ad42065294d87eb37023db472d4130ba34e47c561a5eab106f6910c3f2f415e7b9b54be9a5534b38e564008711856ea2010a6b67a3fc4fe3dbd239b58891152713911becdcb70eb413e907e5088c046dbdaf9822d49913e50e4128489ae344cc83a6c9603240196e66b15a2adcea2d58ee95f9dbf7b713fda803a7823a3e89e9b248d0c782b28976dbba89defb31d0ac150992a4b6bed0a14cfcb5caecd6cf145d04449442438846fbfd21329051ebb20cb468c14de644b6863ac60f76d6690fc582249d7a3aabdc35203d5f097f1bcb06b6f9ab5ce18a91b08f133510cc0fffa22c91e7fc8e2698ffba2a3f954fc8f39e99043e99aa276f209cb38f19774d7a40a812e8a57891d7b1bcc4e9ca294e8a3e87e4d9ee56fa8ca319f50d45cd805b5aec51c8c5cb752214f7578ef74c44df76c0d16670f797e307199092835c675f9613248a899be97cef5948dc31d41d1b9b3328453c1fe258740feaf86b79fd29d6902618adc8e72fdb92211ff7821996198c832d4dbc258f3887525869665004ef5c011482fa1c0a93b3efd4a85a236a42939f32ae9db31fc075ccb8cf441d566678a270c889dd2e9d61767e37d8866628eb9d660a8bfb4fcbaa16b9247b74e1b84687ee66cd66d43b973c5a2cca51847c083389aa3587f0d9e388dd29fb61647bc3f7d94e1014efc37cb6fa68bceedbafd9f44f6179b63445b9b44410b4c81d6754c714a3de6a23f1b2bc6d2a8120b52cf0d86c8bfb294a7c3aa11ee0c6c29b94d52a64f880f3f1f1502a22dbd86b5c57536cbc3230dea77498f8e226fd830e1656656a21cbe303544e6ef2b658157a4a5462f18b5c91d14ef06b1958dc7b0ef7f4425f044d8e3e6ddf55d6678b322805e9ba28927e43462cf3e0d913060448b1155508c656564b0c6dd4033c53fd0e4259006576ab13b6a81a85381dfe59e8f7a250c224a5b183bdb404b2c6c2b8dab5aa6e0ccec5e5572df0a01cb0ec74ab72c95954ce31eb3eb12e709f524bff5ee5f2576fda59a34c06e5f7a2193dfc168c98f92a281a1d0604baac079a068a2caedfe9e2467fdbd2a34df48364e730dde2960ad9fc3ee415acc7d418d5adde7844e2e98a38d59eda2b217ea0f4f78fe3738f84d5c9d5aa71966c3336bea9d922423f66703abc5c5af06448c02ce7d44780b3750f26439c33f3f3f3f3f3f3f3fcb3908acb6022541a62495b0b4cb48c5402ea524534a29123dab000400000000000000b043db9b90305cc90b7d0b730b755d998c4ba5c2420d2798d226d9f6850e35796982f1b2894c1455cbbcd3aa508309c6d93b5d1b292f88dc8ba0c6128c1174085b228b514309359260c87141e32a964e6a291835906050fabe6523f4790ea2a50c6a1cc1a474b01cbbd0bbe1152c1c95871a46a8510483500b3535bb17221ebc3dd42082312d9a4d343f7bd37f95a1c6100c2975bc24db101243bf420d219893d83efbb04f8d2098f3fbb49b083fa347c1066edc08430d2018adf3f579aaa8733dc9a1558a0c32709011c6196afcc06421579a1b721d63e03004d4f08129564e4d763b79da1f08357a60ea1773f550174b46d6850d63c30b0ad8b871c3093578608a26a3923c613e22c31a3b305686d0dba172cabfe9006be4c0a0acb4f56dc90e512763885156030726c95d61264ed211fab3408d1b986c55d5523c21f2d67331be48adc3c5f8c201376eb40e1574d5b081d9c3aa2521dc4a95bcd4a881298e6fe98e6176a76512d4a081397cc955d21e5b3f4434e0c5561268ccc2e0aa2ee2f5238d8eee0236bca0808d1d638ca10127d09085797489b2ea6ce943d258a0110b737a10a253987ab6f1bab0c1011b5dd888c08e06c301376e88f13b763418e9c60d58105582a5a54d3cbb8c1d5f8831c61766628cf105b147d07805173f22c8a70e0e345cf18993bd6a5247860a89038d569426e5bcfd396bcc7cac386fdb4711d10fb2ef32d05885d7e9f77942030d55209f43aa5c9ed25b2f1847a5e238cfbac9336fd98f81062a144fc2a3c8d36ba36425f8828c2b1c85081aa7d054b88ca43fb9b6840c344c91858d09312663a30b1b5e58814629ce90dc17b6eee46413292c9b532adedde8fc4741f8d0d6298bf29fe88b82d3ef11e779fafc502c41dc45d88bd77150104f47c8294d14b934fa44bad4a5a84f5e1311792221a48aea396d21954e27ec3ff7d4d14644f90f27ae204185f89c4d1ca3b54ac79bd3a51e4de09f2faa9fbbf4c93b13779296b3245541de9830c74598e8f02536b1253b6db68466da562ca40c6531ae0497258bb4b36849ad94f04da953652a9378e249fe0e4b024d1f3d399abe515a46c24f417ac855cf27a290c042c88a58692c8f682389894fb0e8133c479ccb54bca8a62a45be11a451fa7236a1c3c41881981be9a92ecb85d8220efa3149ba7fa656a5884af9b60715a56bfa445ce2e5eebd3acae9082230f5ef2fe2ba9222e410cc6856c6a40af62536044a7e07116eb464bda46c028d4268162b450bb1ca65b6dddb62fdc7f479ed1422041a843066a9244a843b4997828330c504b522fca3e7180edc414310a66d358d6cfa746c850261f00b2e298baca0133c8030974e59d52a56789efe60f6dfdafb10413cae7e30a71cf4524e8bedb3953e98c7ad4fe4a4224708423e98aeb5ff9418bda0c4851546181138048d3d18d458d00d252ea7eea407937ce5881f6c23b7f6793025eb2fe1d1e74fd47830f5db864aa1a2e594457730bc491d8f24db46e3b683e9cb45b46988e9e4711dcc154dd35cbe66b4890ea6af10c74d2ce9dcfecec19c744747fc2c9153a4c8c15c9f4c75e414d25a827130d678fc89eb9856619243ab04627c5146038a05801234e0604ad3a5c47d481674d66f30d857e7a7896e4aa77154612582861b4c65b6dad9d3a90de6be139df488af54d3b3c1f4793b7fa7245f7fa13598b488cfbebe10d63d27004305078c1643c70500a00a1a6a30a9243a43b4a7fb5e3e0de6906821cf8eb890361a4c661fd93d577e95d4cf60acd20e79151617ea2643870ad0ebf812b849fd14d8a1820adcb8a1e34fa0a3c320650180020d3398848d7adcc80a632d7a60c73f8046190c2a6479e990ec42db050d3218ef3acae7111f8249ca8ec1143b8869d9cf75a35262307852f2de4a29a52a6fde6380512a40230ca60e77495e4eaadb72b1a20106d368dafac6dcbf279d2f98745dfa5152f29fd6688c1d387290a10214a0076878c1204ee5aecb1f84d0be971734ba60324f2594d6926779ae2e74ec10c39c00f58e0de8684019010d2e98cee45e85bd09d1798203ad0c8d2d182b265748e179665ecea1aa0593d01ff235316b1a59301a583068999ff8613b67e9fd0234ae5037685821695421695021694c216948c16844e16840016f10e4008d271c0d27248d2698f3a54e419476f11b35134c69574e95892046b48903052ac0718231c600432d0336bae015d05882392cadb6ef895e105a25185784ce295e6c2fd88446120c56a77384a02ac4070c301aa1180eb0a28104e38632cb9d4452edd43002348e60be2ee5232c59ce134d4630cfa7e89d9368ecde5f047399cb886aef944c732298e62e44b62853494f43304bcc1e97605b15264808a6384205b536755aed20184fc7ce923b2979903110cce923a80f93a03b56fa03936411a6d27f5a9093e203738987cea1b4e2afdf03935e3821412c448f8cd0e0812965be6ec85e5f98a41d98c7a4be6953ddca80860eccafa7f131fb2999cac98139a89cd38a7c9fb4f3d2c081797bcd7d5d2f4f12271a3730fe9905f16ea65aeab181419ec4f30b3f57b165a45103b3484f73b91ed1a081d13a29558f70417a2467618e215f5f23c63f08932c8c6b21e7521613aa5d140bb37c4a6d42ccd5447b6051376cc62b4c6e7721ff6775d773d01575234930a315c634afcb96217efad33c98c10af3dbe534e1b6de83c08c55984cc4099246e5f2e4cf053354615051ec44c46b875ec8a5c2dca22bbb96368f21275498d208ab581df7bf61cf3885d9cee4a964932a27bd29cce57d1edd3fe924aa748a5b14134b2a8814750304334661aed2956387dca7342c426688c22cca925092fcc2ac94c2402db82dcc0885295dcbc7c822adde4ea030e552e9835a975d53499f30c9ce47d2d6d852d57bc29c2e2f9f2ecd2df974274cefb7a7730e1e848e9b13a6b07f314f6b84897b3761ee3d25bed4447588ab264c93f3e90f9b75fe69cd84414e34520c118b242a260ce6b7172c897417db7209e389aae0d759b184f1b36453fa53a7d44f254c9b63aa520c55592ba4843982a71139adbe09c91551cc9884f14dde26e71411143324613cd5d5326ae9b3d69443ef13332261cefdd92bf54c3499ddb861a30b1b637451011b5d786206248cf1a57436cfcf4197be3198f108d39d3469fa3a5746be1c6148211f21c8b0be9873234c1e235ef8cedab1bc5a610623cc3526f462e687464a29c28c45983fd7db769eff3839a80893ca6afdf03974495d13618a93238d4690d5b624220c6b39ae87147287205f7f4a5e4262a918c214c467c995c4a410ed9fce5ab9fd2a4d0845fb25691ee297dc6f1097a810622129c74b27083ccfaf2a79669781304fd029a4f89721cbb7198020a9d2397d6f92cd7fe02b5bb6beec5693f383d1946a79f46471133484197dd0f45990f525fa42c2076384b2e421585e8ee21e189139d266d383a77f7325d7891159f3600ae92e9fd0daeb155429ccc0035ffa3c3c4d168fef704a3369b275ecc5eacb48a1a0c3b83266d8c160292ca43fe931ffb9327e0236bab0518b820ee39630a30e26cd0bdd0f112c9c5467d061c61c4cdae969e9a427f97d961666c8c1946d763f69970c5d7a1ccca7c7dcaab4c58b239c0107738d4cd77789b67f9312cc788339959216c1a42487d6158a60861bb00de6b3a07eddac3f75850db886535ec3bccbcbb26bab573a66a8c15c3ae5b6e7906a2f726c05950643303f2de77adaee271acc39e5149d79f5a452a30012669cc190d3abc93ced39557a6d7841815f818e2f1cd585196630091d3f462cfd7a1ea33298e4e5d7b41416b79f371dcc2083e9741ebda39392a2d248c88c31a04a7698859c7e7e825fe8f06286188c16627634f948a29fe09f0c1c627c8e1d38ac84c1b46e3e3a5af58cca1d16bc1856c5ca0c30186e929ad11a26ff2d0e1d63e06041eb281298f105938e27ffd5f7b2cbafca2a0d98e10553123ac40f41dcff4287174880195d3088b411a6e34ea91ced1d5f82b5e1c503fe0b1d5e70c194bb5a25eaf7ee639fb1059312375bea496625ad8cb1438c085cb1400870a4195a304911ad7bab3172d76ec18b81835817361e05657821466b20f553206f77ccc882b9422d440ad992fd8533b060f0746fa5f3e85cc1a46efa3cc9fa10baaa154cd12f05dd5d1bb2cc9243ab0c1d3bd68b9b51852badc509ea2bb42b4f9841059c3105bc2105bc7161cc8802ce8042e198f1849be184e3c08c267cbf82cf217c48c164962ad6fe635be99a438b8c3150702a858f2898b3e45762ae78ec0c5555e1030a26599161f223e50c11fb7882d126874bdeba3e6b75f0e104635f04612a23e24c742fccf0d10493faaa55afb470b2823ff86082e1b554d609ab16913e3ef85882394d8cedba10a9df7e25986d443ca5e5ba54084149304dca4955fe9330126c2418458e0e5237dcbf5e4dc2c711cc9ba293ccfc5f85d16b0b1f4630775cca23aa63672c9b41f8288229594c1f75dfb71d3a114c9ff74f4f1a7178dd153e8660ee3c539d6afab2fd058e320e0ed331c68e0de04001190cd8d10273e3c68e163c133e8460c8656f33cacd4b792408061fd54ea723285df2c7c1e40308c6492a99ec36cdef1c2954c2c70f4cdd1f82eb484b6182ed03e3080b274487f58871ad6c071f3d30976d47b14b3a7ca9200fcc49b4c5cb51b67a52b203530eddfa1b3a9ef8bd3a306704f73e69a34be42e078609233a46a867d987dcb8b103350ac2d0c1070eccae17d783d09318a95346bcf07103f3c8c9a8e8e93ccea54b071800067a47011908860f1b182b8a5750e22676f2332c7cd4c01054e4e468e157ec549cf04103c304a54a579d4eb3f19985218e450e21e6435997050f59986c338492259f58983d2be8149d3f2778c0c21cc45d4a5927ef8abcb8e0f10a731455d1f76b39c7f97368690e3c5c61b4db3521264c4e22d94c82472bcc93c33a927aadb56cc9a1b5da85072b8c6d51bf4cee5ef09479acc27c597c23950cd350b11ccaaa30adcaec69eafbca8aa930cbdac7ec3baf30f7a0c2209f2161725e75994f61ea9cd31f75d77b2b690a53e7f0f1cad9b1e5b152984ec911edf15b97fe2285a983f6a43aad554a1a8541a4ef1c7243f7db1a468b8136bc7880280ca262a14f8487f4b90f85413ebdc37b8f9eac0d8ad4725acf097a63b505030cb544787cc218214faa3295729acd3d61d0bb2fb516af6a5c04061865e8d8919d304b98b9f1bbe06b41597870c2702afa25b56c5a113c36519ed4dfa3bf3a449a305b842c29953a736891ca8441e7972ca146840ed9c761c30b0ad8f0c084e1b4d9a7b02e42c50ab98439fcb68898291756324ab5c0dcb8e16109c35878e6989fcc3a951c5a6424066e7471e346175dd8f0327474a002762ad0e20a1e9530a41c115a77fcb2fd420943ca6a42c52758bf79e70b30c0e824c617a4001e93400f49982c6e8d92ffa583a930163c22610e13e926629f04b123248cd73b1f9f4599675be8f108534ed926a5e0ad113ee8e108f56844f160847a2c425be0a1088f446421e294f64b3bc7d2830146bbf78d1b5fb40e2fb22e00abf038445a54fd8e903827cea1376e84513a76a060141e86c81b5508f520c43f9f4475fa0791b02d9d1d796f4f108ad4ed0b77a2dd2281c8e54b8c0c395d41f9020f4098777dcebd3eac4c337e24c605fe6048393ad354268a501d3f183c5690adc831299eaa0f26a54c629ade98d011e2c107bf3fdd945896186966c0630f8c7e0e3a1777ef2a7a30fea8cfb2a32abf4879f36052dae2485371d9f354f0609ea47c3c04f927f3447ee0710793699e782a5dc93e497630e9f3b8a02c2f5bce5d07935e8b977348bfa172e860d4cd7c1d355e31ece581c71c8c576ddb6ddb312ce92107d3cf49b418298a83d9739c3c2f5984fa16ab5ce001074358b318a1ecb28a6c17f0788369ddc27492694b925f0e2d1c63ecc081e6e10643885b275456342f4ec410a305ef618ca1c301ead10653e5575a7cc5da09150f369884da7c5ca9770b1e6b30861297be2b6b9a8dae06d3e9a4d457279da6b2c300153cd260fc946743bf538edd88ada0071e6830cca59ce4560a92948c1e67307fee9cf64c95c70cd1c30ca670ef9284c8dff70873282a7b8f3298b4b5d29d0ee15d2f4c4629ad117890c128233e7e89ef301a72adb540087028c0630ca620eef723e80822854a0ead1246ebd0b1800580014687b1811b37ce430c46ddd1cf7ccfefbeb10a50c064908102328c4718ea86043cc020028f2f98bb5312a526fd564c645e40428647174c1f5e59d4a8b10a3b71e11887c716d2430ba74a48a2a1f131a35a95147864c19c4f5aa6e68bab8a96940716cc61654988f0c9efded383c715ccd62d7282e7965910ad6048bae2a9b44a9469ebeee051056396ac4d1351fbbf7c0bdec55880158e22838cd7e1de561e54304e8e3de341a4589fd814cc29bcc547436d09fdab3ca460f6f3fe947e59d4e937cd230aa62e1129173f8487e00105934e6772abaeda6b929e605223bb748a641d9fbf130ce947c45aecbe0986e039889c3c3f4a4b9c0946bb50196dba72ce464b30a72dbf3f0d39425a90128c213bd3b6262809a6bab754fd2952b5a99160bc4d0fb22e2312c47c04738ca87b49977812e235823945cdd7a9f9eb78b708e67e19b548d5e7e95c2218466269e4145642daca10cc9de39cb091d966e21482b9d773c54574df423208a60b510f3df359391f08063d15f3b9eb1f98373547cec5922732f48141d407ad13a7b2d3df0383b6a033c6a35afc5becc103c307191a4107152e5ee5ba038f1d9854d7430813ce5d769d81870e4ce221eddd6c4e7ceb7268d5013c72601e25cddf52d8b99d706050725287d95d2af9d20dcc6341461cf5882daa640353746fcb7f3a5f0373d095e58296ee3ab57bd0c07c41aeee877f0bca45b330874fd1375b21598c2c0bc384689f6d42b81297c6c2ac7773792f291d151658984c3b425a3d3141e7ee15e64ff14d3c25b9f12757982cfa9f4e69c425cead30d94c50ea5a192bcc97254ee8a07222de641586eb38d14665892acce9114d5e478ecab2a7c29862caf42ef68a5b1615e65222e9150fa5272a770ad30749aa6355a8078f780d5398eae365c8a8b95ca3540aa355e59b92959f657b5298eaca929acefb288c91e2eb7e999feafb88c2a415edc3a5dc1e77e95018f74fcc54f5add5433d354071353e61f6339d453e9a0e1523353c61d0aba4c258881a62419d306788ef9e84942e5b9c30e558b2b409a174a8bc09936be71cb3a1ba19499a30793ccbe1eec2250d4f260c39665cec889ae7c8983085b90e72439ea82eed25ccb332772a784553794b18a48adbab24d3a52bac84e14f58f077cffd5f1f254c3a854a0f5325dde5da811e0c3526619e7ca584a4530e2d31bee81dafa3d4908421756e8f9f3a464dbcaa46248c77b94c4b2a1d489882790a8b63a9d32acc21a8f108e36be80ada9f15bfe38e30bb581221f77c700b320fd46884298ff8a5323de1c67a4698d296acbb944256faa04518d7f4c587491e82f228c2a4e625bd5af4489013611042e9db383db2e2d5351061d0d18d5ce2b4ba2b5ce310e64f3a5d9efa6ef708d7308439f4534ab9ec92441d3f90386a14c27c93dc92b2c8a972d9350861f090d24558b98c177710e6887a6a94526acb4b158459f65ac289100f25c14098b5e496c5beab1ab90061f020df29c8fb0793344fefa5ea7cfd42fc60c8716e9dce534508d21c8a43c70e1490fa52a30f89a464b1439ab152f1a1f1d44fe35b9d837ef70835f66035f4506e301935f2506ae0c194dbd67d7d2997bb647b8752c30e56a30eb9a3061d9618e2295eaacd0c49cda1e45032cb41e95ae7f34b8d38c0e10d35dc60c8c1a329b517133e477268951a6d308a0a9153f66c67a3424af9a1061b0877fdb983aa4e9feec2011ab061c5861a6b2835d448839d19775d22770e5a34941a673087a092a88537957e3e6630a832a1df6a3c0417498d32989258a5725d512177b66a90c1209fb79329296b5be9320e33a0c6184c962a17b27eb5421583215964fb90440e234a0f832923fec8fcc8c9e3976030995413f2329fd792be6036256221c4ae64fa725e3095e7535af4c456899104d4e882792376dfa7ed082f3f17cc294aa94dddb128a22d186d3ee354c5498bd5b56092f3eb19123b8ee89d0553c5cfef66b609a5e21a5830c9ca57cef94d4feed5b882f9ecb5472f2e744b94420d2b987462478be7137eafad82e95489fc5137c6bed627d4a082399b521fff0c5579255330e508faaa4b9bdc708914cc5beaed34e5ad27fb6c881a5130c972ef34e2d3dca4ae40c11cba84160f2164fc8d97851a4f30a5940de65a3031d953158cdfa2bdfda48c127a2a186ef29b4e16e47dca4fc1fcbda2a9aa1242eea56010b23ea468b3eadfa360f4e06e93663334475030253593ad2b9e8f799e60b4caaaea61dde26e2798a3d9ee95769b60aad53821ad3e07b532c154f2ba3627f98ba94b3088a98a4a2b2a65a8a80443aef0f0083964480b26c1185759fb67b2445910090695211749298f6012251efa3bfe3d786804d3a735f195ebb4c72298a49c4d925ca63f494430873ca76ee45be2e8433004699b163e470886536f73411c0483dbbcb85d4a5a3d0c04d3ae4e922221bce97f6092f922df7d6fc2ef03a399acecf5ea55677b60b89092497c0f6ebae581e14c5dd01e4af489650746111397a39ed6e6d4814179102342acb96e990353ad5cf61121d94f38309b8e7c89c8bf5fc21b984ca7fd855fa4aed106863b0b225f24affbdc006a6050916b155b594d6403a08141a794b5099ef2df9a85f94a9acead59177b72b2308886a44f99a42f25170b835fcee1fbddd67e82852928f5de7ee9720ea75798df52a8c9ea6e51f2ae30495321fd2f4798ebad30779b30255becca73569847c99d17cf3e428b56e189b3b895f6518541865013d74da93079a6a864ba3a94b85161dcb0dd10d14376b9ed14265d36de67e725c536539883b69b09b695b4c7560a93b4243d6ce5d65b6ca4306986e8cdc893e2a6360a83dc0eda6a219f1aa589c254f154ba09f5dee15928ccdf21c7fd7039478b19284cee41242d7921cba7ec13c64a491e9e52cfda324f9862592869bab24e185dc42eca950a9e943861f8b3937b7a96ad4d9b3079bc9ccc52f8772f69c29c42ccc8ee398def9f09f38bbbfc89f8dacf63c2107744a79689faaad725cce2c154dc557c0fa3b284f12559a8a462a8495055a264316ad2cb8712a694f6a1174a9b9f6712a64f2d498e792461ba20d38478ad98e444c2b417ed5b2f05130b43c214ad4432f72ce14c7e8461258b1c9d1d6152ef3793a32b5d781b610ebd596a322a4d5e4698e5e64c84761761f2d60959bbe3a4945584c9824a2e369377d79208a39b277ddbbf66722c441846b99ae713eb10a610512a33312c43184ead7c58e844d3b12a8439ce8776c812b13f5684305ddd96490f7ee62135085308917216248c6ba4046198f0ed9d4e84ad452a1046350fd1f361a9650284495fddffe4ff0f26a53e474e9dbcb1fbc1fcfed172f0fc569e3e9884befa8f544a08a9f3c1a0be751f3ffa45dc8329a48810b2280b2a82f4603c194b425f48bb521e0cf235cbe782182174f060f60f7a64dbfb7ad0dec1687a2b4f05bb1896dac11cb1847ab31b97531dccab9926d7d1b62b4907c3a5ae389d35f77e0ec64f22ec541c192d3939183c87784936be2a1e07c3cc8e0a9ddf720e1c4c522cff5d10f9c4fc0683274f35498abc5fdd60ccf7d6f50e5e7e5a1b0c6f31da62a7fd8fc50693a98b5d5297aff50ab4035a0dd0620da6b8369f6a3e77889f2fc4f8a2ea91181728d58231ce3e6a1d0806188f703c12630c0b68a106d3da2429492b3db5d49206434ebee3274a87701119636020c78e2f3c906830ecbdc4bb94a4447afa0c66dbd05ea15bce3e8b376e98c124b36452d48bb9193187d60bb4288341a95a917f11055fb000c950ba71b12e095a8cc124420c51e7f145deb939b4d6085a88c1e8d98476bb896bcb4b0ead42042dc260505e975427eca4112139b4c0608c14dd36d2bce97a3487d6174ca1438aa269ee1242f27788d136042dbc603871baddf5bf6288db05432eb7a03f1b4954680d085a70c19c3e34cd6cae554ef4646cc190937ab0fdd9329d4488f9400b2d9852bedcacf55829b4877ba045168ca22d1b93a45eeca494430b0ba611f74f5b912a5410b982314c8b8cd02d21925273280cb4b082d93d66de5de6a96cb90a260f2f3a55fc6c22a8e0f2400b2a98de3c46929299ff51cca1350573a9a4d2d362cc8ba839b474a085144c423e7838f9133943290a26d12d2967534a563415e2400b2898b2e4634b46b08b1f22e30906d392bfa408cb6f4232be00e3777c91830538767c099c60788dc9f36a22480e598b26184c249576499e98608c3f1d4f5d9dcea7db128c727672d13cbcae6436d04209e6ee341639abc4f57c39b4080db4488239e88cfc6126c8c96d3312cc92b53a5cf676b39c600db43882419ba70e23e1432c39d70221c011032d8c60f488339373c5cbba96a145110cf2567476b7a70eab12c1144158e44d490dc170625623a96669deca022d84602a135a41684f104ca2d29b34952c6ceba605100c4af256b6182afdc5dc8b1f18728a55d59ecb195b0b1f983dae9b1059630634800c2d7a60d6bbe42972cbe520610b84008701b4e08151440951714cbda51196b1030561fc0e4cbac43556a4e724641d9836f77d3bdcaa3de93930c4ae4aeda633ab9e8303a3ecba5c36adda8e90b2a2c50d4cbd13ad7b2b6803e3dd7b7e9178e5d0c2d13bc0784fa2450d8c9e23e97ef5d0125e177c41068ef731c4a8fa2f74ec602d68605ecbb5fbe5f919083e6661da4ff149a42bd1294cb230d6b7c71ef56f2ccca73fafa948e5a7820a2ccc2971523635fbc123f60a2b5718f968457eb0c22fb52d4aa7be5433aa2005df00f41d28e35598544e27b61da65246ebd0d1a90ab3254b62da5482f5376edcb871e346710c3e52b11fa8d08f53ec8729f6a314a54881a3283798031fa2c8a2f885b2ffec5d0ead120a497c80420054f8f844294f24f9e8c47e70c2343bf223885c0f99e5c7260ce925c73591224d1825ea977925ed3e32618a3ef271ba5458484a78840f4c98e349b952d91f74e464a9aaaae2d59278841401f8e0e31266af57d93f5dc994ecb7101f963058673711cd8a641556c214565295f6d35df3154a98c6e3f677927cf25927614ecae2a78efcb15629b6860f4998a35aec8fd029c26cad868f48989312e167d7494e9243c2e02b4aeb484a23d3c2fc0853484a922ef1af5ff372e1c31126d7dfb514793ea4a53780034755f9ab7e34c2a435aebb3e6ef12239b340087084e0831106392bfab7a1c74c9b6edcb871e30336bab051011b5d6cc0461736bcd841860a4ce00bf877803fb1527c2cc2e423b15f4bddcda88daa08c3ea07110b7141899c1435c44722cc1d4a9aa98f93453dc515f8408441a85790d4ef761eb239b474021f8730689d1c7ac7d73f4d7a8630c912e33d4207319dbd1c5a37f82884e973a7c8597452ad5557e68310e60aa22dcacecbcc773e06611272e6478e49b69d7c7e08c22cc1c428cb57e7d0aa127c91c418031de22310a6119f5c949ecbcaf00108d344cb14e5c1f25ecaf03118902e50c68e2f748c6182ae001911b871430e1f7f30e7f83b753b3bd5c9f483e9c56c73e4927a7f3f868f3e9844defcbfd8eda7a3c5757c307fd984747bea3d94f1a187fbc8c3071e4ef071870f3b98bab3c79bddbf114a99434bc3401f4883c0471d4cc9537e76d0952475300a1f74307c476fcd0a5e9d4e3d0773acf45b49de45c8ae7cc8c19c239ec59b10f4d6f97130987ef91a2bafd61a4de1030ec6d49e305ff1fcc0c71b4c4245c51391eb59547d810f379853bea47ff445aba74e8bf0d106b36c7fc7fc10e1830de6d8ae3f16c6b3044fe7d0da127cacc194a38e5d8587726891812df85083dd488321a4ebb7911ed53c943ed060522ac4137b11c9c27f39b4cc56f07106a34aae8bd748eead5d0e2d523ecc60b8bca117b2a5e8d3ca709611cf419bc841962a0f1f64308b929ceea2f4942c39879681f131067392102e27219496dcfe210663968892f3b1164ba6a44cf01106b3e8ecd82147aff996c060bcd7ce31ef39cbe2ff05d4c7ead91ea1f78221daf797b8ff127d7b170c397448f418f5a34605401a3eb860481353d2e965b914a12d9854dad53a9531f3f368c1381662363553f4083b0be62c216a6ddac7a4ab74e18fc35fc7183bc8b00090e1030be6f32cffd9cc662ee86707d1d1858f2b98ae2628f5cad6bd11cda155868e1d4c820f2b1865ef43754e57beaa0a5e0529c031868be0a30aa6bd345bf193914ddb1c5a0db871e3c68dd2c207158c7d3a2d9276af1cc99942a9d5249b79578a9d31b12a45b6e5ccb61ce514237030299f91ae633904e5f21b4c9384de272f49e7f6bac13c7a5fd4d36e83e9520ee993ecbb1ecbb2c19c449caffe71c927b26b3097b2c8eee9938945560de6f70ef2428d8ae1a13498d3d2e51115644754140dcfe5f568217c67309f0e1e6b45c65e546a0673ba203e44db74e5b70c86afb4eea04b326c4a07710c0655f91f23b622622606c3588630b3097e15296130ca08d9ab5727180c263f5608f3f98241afef930e72b2aaa770e105839bd2a75e4dec824944db63c5885fa121174c22c92677bca878096ec160979fb44794344a490b065de17ff4f49ce83d0b8905635c9e1142dea8eee80a86b3b4353a479d1ce559c124776fd2636d881aaf0ae658d6767d65b2e7a682f1d5439a5842fecbb42920175230e9eeff9deb2d0a26a53de759c996ad7228986e5cbc2798b32d4c8ed1a25fbb13ea46185c34c1543a45ed22775b9c09a6531dafd929649120c9a1a5e3cb68307014187d19e06209c62b9de0a5ba7343ff71e042095c24c1589dbb3b7c091dff215ae00209a69fdfeff41caf3b133218471d14b83882e1949945499d9629820b23982f9bef4f1e0f95d46705c145110ce6d6dbfad17350e5173e70410473d292373629cbe5b447072e86601e9db7153c7e808d2e6c38c046170db0d1c506810b21184582e4121145a77bd8858d2eb60c2e82605c1fcbcaba2176470b04532789a15ea935f1bd1f18cca4c55e79644df190810b1f9853c8557522268b9fca450f4c7baf272d87ff5316626470c103d36a24115447773db379c0c50e0c627cb32e76c0850e0c29eeacf2e9cd450e3a797376ab6effa92465e0020786b495761ac954acb46f60964f2a89c91739276e0393c872498930b935b5d6c01474c70895a95e12547ac0050dba9b24232ba2e634ac599c83adcad6b59da4ac11b690c50db688850eb68085f9ba2b4893943cba9eafb8938a676f8798cdbb852b4cc23d6bbbd3d7832d5a81c9cb8c76b95b0af261a9e35c9da57c593f45cab0052bcc22797564464a255cb40a7307afdc4e39d9c863a42d54614e79e76fd515f2368e4009de02376e90b1452a4c15413b7df874d926541864ddff68593bd3ff29cc663927eae84d61d2389d43089582e5be14e688e35eef41fea89e14a698a6d25c5cee18a351984bff57ae3849440589c29ca38733b7cd4841140a935db66c4a10280c2228d94adae779743e6136b3ceb5355599174f984c4a501dc253c65b3a61c849d4d4793271c2a0e13b3657164b846913e6d8f94474c89bce9834612cc9ff5f17a64c9857ac6274a8113985244c9843aef787e78e9222e912861166691b7611f4b784c934f43e88e4f61faf84c93e7e57c442dccd2961d02ced10569f84b174ac0f3a6478278f248c1f3b884d4891827922619e5461acc44bfe5343c2fc31717e3c8f30bcd66737f1f94dd88e30a57ad68c8f5c177623cca1941435edb27b624618d394bc8f7c2a4adc45984ec4d6e9ca5339a88a30b6094f59d9761a6a220c26c2f7e5583e22cc7521c4ef201f2a967f0843ce53a2847d6f0893b687f578f57ee2429883cc1a1dd74b432511c2ac3a62f205916f310863bb76ecbfb80e0ff91682309f8a65e792238418fb1681308893a839e2195a5adf0210e636df5691276446eb5bfcc1b0af16c95b5fc2567c0b3f9882c7db9517b116527c8b3e98459f7a9f74214e8abe051f4cd75945948abc1443df620fa6b3cfb2a65c2ff4e75bd8174b3ccf8361467799b430d197381e0ce67ae931b4a4d1d31dcc96e24ef72b685149763008d1af5b6d1fddff3a183dda588eed7430e414f5ed4d55bd85e660baa046fea5bbe55b0ea6d9f794a026feb738182f2bd43d75e0605271f1f0a47e8339a5bceb0bad52253798e34e1e21c279909c369853e48f0f55bd50321bccd59da327e556e1e2351867d3845259fcc4bb6a3077aaf594928cdd3ad360f64ae92dbe7d5096448329d48a6e24213a8361e457df64ad24214466306d978bdcafca6012b2562fe907dd1732183b47de4efcfa121234069332cd0b6b9fcb845e0c06f5da2517642ede1e0653f0997cf36e1f75301844b2f760eae677a22f18438ca5527f15e6e40583a5c9eb419f5d3082bcd456551f2e983bea576ed12f13e9b3059352bdec22e6aefd1e2d98b259d85f6fb3609caf5575f7327d27164c17e249d3bf5faab62b18ac6edecc3c248dea58c12c5792424afab72d75aa6092399563d57b4f52870aa6f1bc11715f4d89c99982e9b3e3e4775e6df7a560d0fccf213b488adc47c124b4f34eea4eb524878249826a27fb4b1e6ff4049399f03991171155e404a3e93c53bf222b554e134ce9a5bb32b622489709469b7cd9a936b4057709c6f77c49217cbc8d5409a60f23e242cc49307f270f22e5c86fa748306557588caac81a9623182c9df008293d093d8d6090bb586f962c82d9bbef674545634b229862a7bc3b62db637843307de978f1f6c8233221186fa425153d160453c5f2b812daaa7601c154229efeacd23f307956c890798f2b91f68121a924e31d44ba07a6506aebe926e25de281c9f6d243aaf2f7fd7760502522a775905417d781f9375efb2ee4b4a6e7c0701276e2acb5fce8383077ad6cc5741dd9a31b1864c57955dc0606f51cb7b2a57a54a706e6499d6f64c549a1eb2d68606cfd30cfc2f0933fc8139327f2c2b230f996a88f34636110a34a7da59b6c238485d152ab67750bf9828e5f613cbd26cac6544892b12bccb25d137eb74e8818b7c2545d4105694a75569f158620742a7527fa53f65598739eb8cdc8b5664815c6127fd1c4051791745261ec48b2737b0e2acc73136e7e445bdd730a43c85ed95f3e58f0b429cc1a415512c12e8529b946ecd433e2634c0a7384f38bbd1cdffe1d8521fe9bcab92a2461ae280c22cb3faaa7d97d341486ff944c6c43a9840b288ca222c8351d2384b37cc21c62ee9707717154653d61f0d3f9729fb690796e27cca7e299e9b5fd4a6e39611c9d7049fc269ad8761306f5924e789296f6add5842129f53c15399795da4c1843fcacff4f887f92c58449d5e5d74a7e09b3fb4cea0ca54ea7c712c6d3a9535d48b926e454c2bc365ac6342d2da829611293b9394a5a87a727610a959d51315ef5b6240c96dec1f298db2871240cb953d4bb2843c2943ef39e4f7e16d3238cab13fe43ce4ebb144798ad533821674ddba511a67422443679a594c90853c861524ad339a91c2ec2e8494ce57adf5baf0863e55688fa9d26c210ee7285fb0d1126a16562debda713891ec2fc1ad725c43facc91086ff112682382fbda5421843fe7d9c539d5813c2e8b1a1bd2372f0941f84d12dbc5a92ec283217844136526565c9ae190a845952bc78adbb97e40d089388fc96d3cb7f305ea7f3368b1fccc183eeb59c132fd807f3f79cc80a13592be68371478a4a16477fc5f760d2e55e6efa7b375a3d985fbe2c893c0fe658263cdc8b07e397976c89bcddb97207f3890b95dca61dccaf61490569d6c114621aca7ad4eb7f7430e7f710b573fe8c797330e7a8cadbede460109174bac3cdd8290e268dd1d93b9c9ed11a1cccf9913a255522baf306830875d56b153798f3e4450a6252da608ccb3935415de58e143618548e27d16623474f6b309fe8492a484f73755283d1e2a53209a3e2b29406f3c78b8c460a7ad6a3c1584abf2fdf728aba9fc1a4d732526d6e06b3584e91c3b9fe8c5019cc55a56d821a9d9307716dea7941c9680ce6f5145641fb9f9d480c06612e9ed49de5dd270c06e9c982c7f224180c2373977cbb53909cfc824174b490e9a283053bbd604ae726b2b729d321ce2e983c9698f0cf2541cac905a3eda5b7683ee21ae7168c6ae13e24fda616ccbe26b73d55e9f497cc8239c6c9778cf928ae25168c712ba34223fe25555ec114c92cdd64a88ca8d20a463f3b8ceda8946fe622611c0a0743815018080805d54d1b631408002028200cc562c170a86cf500140004372c263c3630202e1c1218161a161a08c2c150201c10854181202810060542c1602022d0c2ea0030763aacef3f044b870e0b54e00cf581fd7a02aef87f1719afee099cf49f71848b6ac740392efc3f37f0c8453a7d7403de00ab28bfbcafb2307eee171de7bce471a0feba18d1f3ba7a1a789cf4f97f405e9f502b87b0b7882c59839e402a50385fa3fe2a2a708c7ac3ea2e18c305ee11aec77cd036b820b910d271d132f9fe2ba882a3f2a19d16d06b8ecbf131c900fe481686fb17c02a5315f2380c06501775fbd181979fad95463f34a7a0167197f7bbea2a0a229d676be10028897eade2bf30198c925d2889d5da6bc02abfc3ed32372d800ff696c628ac6e34a86ac27b75fdb9075e486cc9e72e1544e57b6dc6d4581d09132af8475e7a95c973abd9ec8a0365f490a31e4cc404f4c383db9a08e2d929097c636198ad54bd40a05ec6efced63a225ee3fd2c3758ab017562d8bb973670e0b77b6e4c9fe05d59a932fbd736dd152a767c29a980362a424459892da5b8e1f4ff5e39e37206789f3d107dbb09271310840e6265abb1f788f1b2677d0a5c7224d80d2fac2de1c7c572d248add8d9b94ae14a34b5ee90237396f0549fb38f8fba7c67651731f5fb537c65948a215cae5b7b415799ad757e700daae3d039aa9a7f23db55ac4158149e50f0a41576c33a7c85fe377e561f30ed2c5719fa95e200e26835f57258d588cd8eed62f5ccefa1311699256048f1efb3e5b611373044861944e84259cd4c171b3cec6ebe9139c0ff977a998ab4b1106f0d57c5423c53b49be309b169f64e1a3e9c78557c0c1a9ee8872008a5552c941265d8f9410701c2670e0811bebb02fcd323a56069a882c139af3e6c29b00aeaf40a5fe01dcba9532b938ae6e741f44ac161ae155a1b6e48bc9e4b7ec7323bca98e01e3af01fe0281888a30e525bb9cc515244fcfdf09d024d3dcca2bd649b23a1749d89fde3a29e5e4969ec8f2f2081755ec434c15de4b566954061a2eee8a49de4b59dd8b60f2f50510af08b9dd595f1b0515ede0b28cd138eaab5fc41b09394f0a9b1ae8fe61d2ef6814e4e73795387edb269f4f528625f90d64fc2e1ddadf3781dc22296d7ca882d4111c2feb8d327e9643bf3f153daacfd072f631c9af939d90336644360a643980b1c38e8b202863ad9a9afe3ba8be03e1ec1ca21f7be0c17068254305034a1e2723b7070ad4edcea3056623ccae37f9da36f8b048a241fe4095f433b62ece0413009d458022fd3fc33c40eb6a92c6c2d44edb0c568014b3be9d0d7ab39f8f8a117d9d19ddbf2d120151181227184377f2477f6ca1fd1c13ae47c1fb5dd24e16774d02e48edc3fbeb5481afd4c9bb4658c4ab68a78a3a8eca22e6cd3d3d12a722fae69d6cc2554007ead81dd35d1d2d386cec1b1e7399f084b4946acd72ebbd5d039b54661214311cbd7df4f681a4745867affc111da47658171c2c9ce355a82b6f98e0d4f681b9e03774822efc99ac89dea93571898ae829d82f7a9bc6fad8ab765617e7d8afeacea9d1638a0e8d304e99c186d0549630894a0563aa78014325284ea13782cdd2ae14675ad9eb202ee80ecc290bdbd722ab993d12d41a67a32731dbb8cc10538a656e8832c008fff62ae66a9912929a6978d6613590962dec913818da0788bd85e26c827968272f2acbc16c03ba11fd3a8ad06324dc057e59f7e9c21f430f5b2c014bea4ff08d335cee3544bdef272cd79a1ba9b858e24f9904442084f8c9f3e0c2a75a25513223123a5ee6afe8a4aedc1d5da98371806aaddb24648abca28b66606223f4586655e2211733396290bda3ad4ed1dbda2e3dad798ef6e663dc11b42394ca737774a58ec44119585e1ede5d533fc234202250134778e7afe4c81ef930d588f5eaae0aaa6fb1bd611347821444000a456fd4460cc49af0ae204ebd4a134c15d2a13abc63ba2ba3a439ca128399ccda5305efc3e8cfdd309fd5bdbbab0c2b94150e9de5dbc5fcfb708311c3e5e73b5bcbb56b47723a5d92c08530f1d311452728b111d68aca7bccaf90f848d90aa5e54eab4b6e86957c2efc806c508637a66465eccc8b72e3c5ac3a4633c52d5ac5fae5bf5e8210f3030aaae834fd54a08ef9e91dab0198d38e7c2044b03d3f98e472ab284f03602ea7a67d150a72692135c8152717bf8d0bb6bc89869bd4b115fe338f9fbb72f092a70bf0639c39a07a9ca5ad81088047a6f0c39a7ff592c98a2fab5254cce82515a1ca7108144619d0a520fb4fec3ad7ae654836429f2a22d2bcc10f362a33e8cc08430c89344ce28253d02227e6a00b91629f08b6347b46f822f5586d20ff97e25bead968ccf32d4760ce8bad9525644e00c687644875d6262c71982094d50d228b74eaad1d2ff376f72acd2e9855624203d91ace3aa4b4b898036fe62f60dffd41a83c52748de5d27c7e904759783431ffc1112b325ed6d99178d8bd2ead221adf361c467232cb4fadc1626a10017cd4b4d1210ede70fd7f836b03f1c7829ce7201d9c2f1aa100fb2424fd42a86ea8332c8d9458ace43dd900fe9c4bfaff4b46a1288c54b6639e50d07ef7dc998651c43a782733a53bae5b2a41b63ade885a505a9198ceaa72cf5f8c3fa47f38ff9161d4926f34dd47da0c8e64972658d977e12629c24b0d5681c0134801604e5c43424ec097c856b7aec6c865ebdc9e33ac111ab44d19b3276150b875d94b39cfc4356bbc7cb57a1026974c2996896ef38dfaa2f8712132b5ee65526f7b908031d7b9162f75e4bd100cb15f3be58c2daf08c2ea1e285f1d7d3285eb416d317af8d1574adc9d95bd29e6a2749c6a7aded8b4efe6629dd82a75e0a62aaf875b379ef080bf14a5aa8ad1a7ee6dd3f8483272be51e114ce0fa53cc25a3ac78dd737b8dcbd44b51f6f06b742ee0915f45ad9e2d5cf9a55fce006eafeab40508bc3206235cd22c695ee17ef41f1ebc0522a67ddec7377424e808bae436cc6c6fb9f267c62b3256d66c595cddbf58f0ee59aa15a14532004b7cd79e226f71af871873c8878f3bbdb7dd368372f2beee6842357e82a217862075132498144615122a23ee13a664b9118b13639db470db94eb654bdd85937c34c0ab8ca279b2fc36b1d6a053b9ec409bfd4e161f36913a1b9ca41ec51f8a8ebaf9f2e0730de8548add5fb0c1267ea8d187656f76660a3182c5b322c841ac690d46c5824ac82bf6cc076bac2257199a1880ece13b64bf372f6dff55cd3fa3995daca55b6bece351ed7ed6cf6e54d8be5f45f010e7f1bbfcc9031b6043c0fb92e280f979dad768028ee931a1e1fc4e434a3e21b4e2bcac621e80c83729f90a20a91a1100becc93712353c605aa476117c105a6926111f8dab645d45fa782d8880e977c34bedeaafea9eb88558295a8d5a572789c1a44b29ba2321e9c354b1b2389b9523501a27ae392f0fb6604d04fbcd4919e64460b1a535aa0850a48e19c4ccd1015cdab2a80e4c7d0ddcad650a53342f70e29eccca81a65a705fbff9464033ec5eb4bbd8c5069c8b0531878b1e640fe10b85968a42efc3f28d17f2b772dbd4efd3c53ed47b942e0ce450f1814214af9035d5495f5d347767265f64ee57dc7017a4d7c0925d0b84d5ad4749a899e3894ba0cfb3c6707ba8c1c674784d95ca95b07906fdc4bf2da1cc51af9ab194518c2efaa8b7dba659d720424bd4d9bd13864f03e6dbcac62c223ab04a13cecf8a2530a548b9442397c8df8bf225abc49fc808afc48130c6d7b0c687f87fec1133f4be8ae901540d0d5283417a2b5908c06c9fbda990c1e9d3b026ad671398aea3edeccf4222fef8fa3f137ebd3a36bab1de42d1d90b3a19019a9f2849d3f54b9c03c47cc143696c202bc7e6bae0605e1d9749d840686e2230208108f2328ccec5d8cf1431b3d071b357152927b24f8570146dc175661927142ec972bc9a36b0d1a681a2a2fe70b1a80726d14a0ddca771d80ed6aed24a4896a8419f491e921c9ee364112f880ba4fd5ef183dd523273de6e583bf2abaca78bc44a08ae18bdc08dbe7688fe0900b350b4808f9c33a0a46882df5dbbc52a296edd72edb510e1ec8cefa489a36852e7d76a04dfd8254a0e6ce438da4e08c42facea6c0b42096a5653848dbce0360eb04d65d8d3974feab8fce68c43ebb21e51436f88e0bdc999b53648d0eedd5140ef19f4a5e35e724bb05c53a3c1282fd5e5b15b05567a25095baa23e744c731e00ada758dd522cceff0bfd10e791a03e8dd383855f9fb68fb7f48b79149cd414380ac957470296a1e30af17b11a2158d9f5276b15eb43b2f3800abc1dff4d500e55a7e7e6339b084a67ec40a819b81221b15ec9f27ad4908e43d7205ad2dd36aadd9bcdba1e5f618f7cc5656102ddf5cda4513c177a91bedcd7685381a645461a1e399b75880b928a94e733d0dad7b8add1b6e3f23d6a6107114d95d81417ef4440c8b96311e7d03209c09ed92da55a5dee6cbca5352dc6a3d1fffcfde11219211450aa8de77cf2e309d6d00fc6629c94c6388b117fbb93f9c5dbca38e823b8deb464808b79c814f01cc2fbe37c7e7f67e3f9e0e726b53ba3d2efe4851673ab50e5d5c5321de1d8b18a3e5f5b61dccf52ae78559aed0b1b9e8dbae60475c427766591d0bb34800eb449eb23f5f2b1e66d97c2ce531f9b5e1f58a0e6f109c6b0f3eebe9f9ae8dc3464350e30c691058e53710b383345858d83e965c5e8c603e6e3dbf910b7fab8c9bdd0a3563a75c451921802eced19d74ae5d5f7de5c2a808784f410793becfc3bc64519f345bc13084afe74756848ededa3220c79684d395e2411e7d3454c09ba2fecbe2e718dcf4d270cbb3262d32fb41953f338820ac53a0ce4e670104a980dc9912194deb788de50a75f96e100b93d0314294cd2c49fed8725b036b54c14100b294c3eb21ae94ec8dab09ec3598a53ef9e2035f7e091393a4924682c16c90f731aa253ce6fe9b7beff59a4ded8abd73250534eab431d15930be916ea24c8567833401ba44de39eb48dc17a9d67502be8f40d483509f4dfd1588b6e484030e30261713bd0cc0d7b3964087e52c1a55d7604fe635c17f78d79b3112b121640c7c6359456e6baa4eef5243130a9bcd820120cafe3d89173e823a91e818b7c24036470169a356df6551d0aef678676469a906eb524dab89d5c243582f11052040267d6b64052b793a2550f00d40fefd27cb70c0550f35b852078433955b55456b5c0d9877594508725fc09099640a399e817ea630f91fb212203f3210db3c2339688f5260ac7770be8360a9b20adfa0454a5960c2d4515aa2a3f33ab6c04e0133b5ecc642773b2e92c3f203f1b5c8a2648cc2c33df83afba5fa42cc6f084ed8fc4aeae5c54475e52562b6d3e51c37b5f4aded48c0d8ac6afa4bf4afc4dbc36da5365c4d3e5d968ce259b1520adb4ba1d8a30018b71c149dbb654c4ebe8d9e2137bd7acbf6cb175c4f116c33b1fac7a555d54a7386422d454a0aa8d81d22cbff57d29378d68fbba766c6b5f2f2ff55241c81a53176917616f6aa03d22a4eeb3da7ea11b95652166999062adb1a815a2b2608cd9241a83d211fe71b8b6aeb886e8f01b44a5911c9def7e089618223d508c9e8130a8c82ece2df4298927464381a38d3132263c5b989e1f1a085830a373e4a3f929e9506a5358c625dfdca11ff9765ad297af83684e098847b2ac9b64c0e837ae5f565f6849a2b1c7735d510ee8d390c21e3214f1892c6702666e1c068025465d7bf4d587a717a345acb97e567661e092376f40013ca9e02991942b8dfc0919be586d797eea14d9bdfcfbbbf36c134af050fb19ae7454989080c2b148c2698cdea3e6ee9c53aec29f83a26ec0249c9a74aa886e349731799a37735d8497f15906e95a9b720164c86e131c2e1b58d70be1a9f508ad41588b7c7a0cfa4f8096edc800fa3be5440c4792dd41ad4ac195fe84bd55bea045a0588cc9e67271873af72ac4d8c7d1f6aa71918697600e2fc402d42a6bdcea53da0e838d995370f8c56061891319f0982eca2675000a1974ef972b7810d15e36cd34646b9baf51aed67e04ffdba35f5a8eca7b1df53bf563143aa1e02cccc5fdfc20471462370a264e5db3d4091dca8936d8e0e026775a4c30c41137d08fc14ed47ff7ddf1175c6320067d95bde75a60b752e9e1d7d015576c937253b837410990fa37012cb192319e10b0a89485fd2a2c0521a783a40dc3ee640b7e7724124669779af1ff53088056ace862ad4db08d0d90521924fd22720c84f8b9e74e055c9d31bc3ac16693433ffa8349239c1b772bedc8546be175adbf63c01dde47bfd0c9f6ba38084d6a7864ea99b5a444a9952e014487cea91a145a259dd9ce6d2a2fa02ed4952a05002fe9854eec363bf51856ad11951954dafe87238878526a429e9e5f950a697fca7cac2564b1e864356e01ee789cf1dd09f1392f291e576b87302868ad17bc7d15a923587e01aa0d390361f224c3eff31cb5bd7796abdecd2550780967eda1b7c3732bdae8fdb001371b81d8f26c4964180101fab05de0825e997bdddc25319a7549d444bf96f92afbcefbc7b31a800e9e8d879d4ded0bc6e4db11311f74474891bcd2dc45d03dcf630703e8dcb2f87b0982ed272d214f675434f4b8e3b3a9c692e2b7999ec582f02bde5e415e9a0c97da6f98cb73f6716ae1ee22373a61db682292b0b9d14694371444cc15f0a87725106f4061472ed49e4c0bb6efe7b78dbeb71b730d1ee42d4c500da89dbdde112354e62db40d083cef8c0fbb2416c6c36e78906bf0d2bb907d7e4aab636ae79b0011db40e94a21b756ed0c01470148dfbeff5b897cc33eff01c01a007e01e4b2019765b0a515e1fdd86ba61e1f826cba8524c8de0909fc665fec3f39b3dd0f86e33e5041d49680ca6358599da8ae2aad6067dbe3b88ae5208472ec80de41a2283b391d74299fadc8fd0ff8dfba8462e407bc33cac8d10bc4aeba5aec0c67e7b9f1e18e62e2a2848e5b271ff8a0e5cd4357f4d23682870e86fcfaf57a2bc73e5a6d16a11784367cd4fba407d84eaf1990397599048592359d3ecbab17c9a7357cd7e3e652272ab51625ff31035a426d615c22102d3075841bf10560f8b1fa9a2087c7ea4b419010accbbd0051bc27bdcc95ee1f65a95cf7be006ed7f5c9425aa40b01a200520ec40c25fb82e75da903b6850e7edb2fe3a00cc61bfa2204e5d6da05e75abdc908ab41975b862e42518314f3621b0f32ac5390f7a9c01a8f1aeced9dbfd31ce1d5744f10eabe410fa26ba7b17eb5aa3dc18ac3cc79e2c3a09ff0172bddba5477d463bda9b06b3da72530d65de733923c4e426ca1186b10362ee073703e1cbb7a31b4c77575b445b7b10808a9db3503ceea27a417a3a2d10971c3848470def99528ea05369753622c2048a423e011a608f90f8148cabec7cfde1d2001369444e881e101af9626addb20fc31d5bdb36d620f8f90810a1b710ff7fbac2f874e7c145324a94d58fa0cd44f7ae951033c1c1b915a429dd01c135291adc09ad23d71015652d2818b5622e3425f556c7869bb25ef48185d84028e45f8a7ac5975a57cb9720337e220194b5c90029d5c04bd086474d11e6dc38b93258636f290ac1f68d073d14b0a4fa67cf69c09774d5614f4670f409c01d842c5c2b5d18df5de966e495912ae4ee7b8c48ca7efeb4b69b3d9c6eaf89a761f55881d465026d1bd5fdfaa9a42d01dccb34f17b608083f654322a44cd6ef0ec6917570597408b6d190efc4290a6441e7884b1da8211a3d11288571e450dbd0cfe8210aed0ae7aa5145a3eaa19b50dbd1afe834b42b14721450147b433d1b9031109ccaf894ef2aa3c8ac1bd423db01de1a5f0379452665dfcf7e12c07f2f7eeab4f2cc7c414a6f53097401d85b278e27a0c910a9317f945a3ac5f97bea646e7076d06ce1c5007c5e0f023e81b7cb354b110c64e91ea84b121aaa04cf03a5d20129db314316895a21b8799acb66b2f52a00c6e63507861bde2e361f8e67666bd77cbe69a54ea9513b4cbfe8fb423b4b813b552c34f9c9d5023983e660a624c5709117c31d4827e90e9666ca076ccb182190ff26582851cb5b9490fc65c05e2765c085814c3faa6402240069c08402d47cbe37d0f90db9bf6d12c27e408316dc94654fc72ecba4aabe799e261c50d9989d0d626d5e7923b73895b4115736b37fd4830c7a53d84004b7855deac6f1ee57bed07a7c739e4883662d61f874768d44790267fa268274db7b270de69d1114f72e826ed41a06e70d12b208819d094362772c53dd0741fb4ff563dc92d861d5a9692e078548afb36d08f7b3cfcbe76564336a1909e2124482887e742866c8802bdb407f924d64f024eb77c9ba600b60c22e3f5c838d585599d7aee999ff0f3402745561bb851debca70e5d29b01a5565376fd278265352b054237080d8cc0b068377619146bfd47306e56b1b9babf990747d3c5a5b889b6da576a7d0b8e6dee2d5a6af527ff84d9c89cbcd04ddc617dcb78147e933a9fd32e142a604e6d6cf8fa9dd50df519dd353eed10c1f4b94ad874f22f91411dd806958c7d25dfad7173724bdc25e3344db195bf7327be5fb25d4c2f39bffa30723fd6dcf8f935254c4825356a6913917719a659b29eca44244763a0f512527202777b69ca9407be72c46e86dffa86642b03f0661a139a46a2126b9d2f871ec0f838458b52f16bcdda25a291b8632e685908bce41902d6e6a83556113e9d9ed859fb0a6119e626731f43aec6a7b4c1787694a4a2afeaed44c4d3ed5ddaa2000b7a22e33f45a7c43b25b17ea642112d8c29ea7825f1aee64e9bae843d195f1e0727562c4f001a84252844ba247fdaaf0b20681899cf246a7956608655cdff836879de7c0c6ad2908460d959f998e088067bbfb223f660194cbb4bab235d1c4a6e8b1bc5e8b35ec99d71442b1b87c87a2c2e0697f334c320416ae4543d08ca953e5d64c4e3b3152d7a681b1597e26ca3f8631ec364a62f388646c87595218d181b3c8a173eca0c5b0256a8987fa614d81116123a39df6283a387926d024643f4b1db46d904745e1c8bfa2bb0547392a307f8c812cfba98ec389039c18b86192f2da4dbef509ecc2338fa9f37c04daf6516fe7e58287053539e21137186cb966608077c3d803bb0cfd3e4b5108037514aaa8e14cf1709361fb4191af580de71ebdc4056822dd78a79565492e68aeabedf9e284584ab83f0e1aa9a960ec66aac24515daa42da6c3aa81299f497523650a7c547d49d1a02cd53cfa4ffb5f3bf593b709012d34bc38273571a6b4afcf5d0c31a2e422970120b5000389595aca2112da475a1a262433d7fb5572874df82f62646a203920b885c1327e8c1e76aba0f8667613e9cf5022618f5e1c00d51e7f384611fd284dba2d6866b321da1c5cd351d121602454da75a93aae55e4959f9f0e811099b70e6e220788718d2ec2f2323734e0316eceaa179392afb9fbfabb61411fc5923d639baa830e147c35742652329f5a01991a60950a2515e595dda05a63bab37ffa04dd2d99e9a17b162de1ff475a5d341085a509bf55722110502a2a4315ddcb4e78ff77463ef53131139abaacc1d97e442e1cd500001e010e619d4b9176c07c0d85c77f25225b800d4f6b0ca26a4e056d3c233ddd9512ca1b0b2fd139c98034e1cf9ef0433be0d1a104c2d738d360d550810a0a1bbe7553113a01160cf20700d7437362b9bf98c1456786cf0da3d7fd99894226f36c89a3a7999b7e7c965f7ccda23bcacbeb969c2ad8167cec14e3902fcd61cc1e29284c9016abbbf8bbc31b7cd7ca90243ec5aef851cb6231ee5c86ad5f388c597b218c2450099e56417c153c7f857f2dbecdc9a2efe621b2024cd672331680e48186173e7499676adb033e35f68776f1ea69ba8d04394bbdae03c5d2c1b4a5a1cffa07c0f4d781772e8366022da45a899e778ce748139f65a9f6ad2d6e738b0507284f66bfe8a8048496c26924e53a1503c507058fffbbc6234ccffb3cc8f7f62d5fb1fdd5474ca2f207ba009f2bb22ea1d13af23028af21efcc36adc46cd997c46c33ee7f2ce8e9d2c6d176298c073d982f28da2092ab655983881653375b39f4d8ba8658e545297b456e644970ae2eb418497795aa2a1c76864409a81f0a0a2a04e8e693cae07d34383f8bcc403e44dbd521eab9feb8c412c1ac3a71b06bdcd89e9718531eca9c53c66693b03d96ec0fb4b8c7d32ba4c94a65cd6259e6c32e9510d6658c4ff1fd5771da7140d84e5a54ebe1e8fd26031409d62ec6d6ae3402ec80b959f8246c601e6452d4e8155440bf55e1adec40d70983a24bceb4b0e86a04d1aeceff9b5b27e6906be1119200674a07381fb336ffdc15bf1465795bf91093790f26153479eccdbce9977f7b95c580e55b25715119184cc3e62eaf0f2e716a3634040edd563c8baa290de0ab72d09d973217a76684f86e885d0e901212dec2df40c00d0e799131bad923dd1e34f7b03456f9eeecd533df8440fa0e8c5133df7143dfe74e6b636dc247892243ce3034001d41a5e29b1f155ceb5194ab26c2729b716acaea5c392b594c885ebfcf44b70fa703c6178427d5191046bfd81f286b5a0f74bcd8a375f0b38a056de8d327e58ee3b8254bd72e42cd4706fa2d95d44186be09a446267171ba50f0d33f5f910752f48270cb0470b23e8bac5478e6d45457133b8075327165fae2b760984a794a065090a6b0a92cabe37ec268f8529ce22d08839d7e76572b0781e49ff472a135d4a614cc55b51e9be7df7f456be7ebb16bd4cce350c7455e53d8efa44f767a8092b202448c7142ce9a8f0df78d469193f9fc17b47b49c8897076f5c6c8f56c8392816d6949da046cb06156c0beb545a3396b9d204ec5e0a26a1bb495f1a1091f65a99d9287c31512245523460cbb2bd4327985ed062ea01c0940494e8c216be97b64e27326e3098abc5f1ad792e679cb164c031acb98c59ada111c7d4e60541cc05d6d5a07407d9bc36f039e4219ae83ca2b2ac85865eb06c10e4c72cf2e186913b294fd6129b490a501c54dc253131d691018e8cc35b6d6066d001884c29d520f40a03e3329405ad5d2feb3cbf84937e2294b390a0c39cc3ec6d7af127ec23f737f8aaf790dcf7dfb9e50c995031577bd717bcf6ca8660d9bc58c5522051bf5a74523944a8e2ddc9d9029d4e2551680be6f3c5e00bdaab980bb1dc5c98b9a65319c17fb702aedc8cd6a5690e48455621cddc6d5760ab641003838dfb7e01c1aa0306b803f1948e6bb2a17fde5fee3e64aa3347184458b25b08573dd1d6bf1d0f251187002432ca05d39a00407977e8f470c8c29585a900b9ce2fa836bc45dd77f043ca59bc41831886d52dab99159e7dbc0f1b8701add0c2ef1f987302fb284d37586dbfb92a1a77eac9bec7783f30483d80410440a77d6deb0a098412acf9ab5ce4750127934b1141ea0040e2753d49217a74eb25bdbc2fd0a2b97788643d44ad1d3e2704fca02dfb61ff7569881832c7f51e22903f2efd43036503a1c85101fb96603a368fcf3284535538b3fefdb62d9077c6fa68ff2836355b49363e9aa1123e3348dd63eb2e52d70addb9d3bdac6eee74f9d225765d145bdd6cb3424552985db3f0ba18dd7a5e9dc9d707e196933ef829c3a802c0926bbc0605aa2d666cee190901cadc300a54d26e8ee03bea9901477d9c358ccb19860ce7020e4d4e73f94d5ada165131871ec122106746d9adf3152e6c2d8c1ef40b74dde52568fe0675ea9641f69598ef0f7bc0c89e3a68496cf130924b09d78b94452ab3114e0bd498cd18a241eb0f11ed745012f66c812abe945f64c3d1a0f4742ce71a939e7b0614cbd580f9582c8760df2013033ee9422cba249681a0d130fae5f0407070d139070d6c99c4d0bdea1d302af72529f03804422c07321fcee94388360229e10ae47b504851e4001d5909c517756536bcb6cf738d6df11c36e45d148c32ee563228df7b6112e65ea50a9180c1ad8b24cbaa12ba8dac426a9adecb5eafeeb8e90bccf5b552b84d7f8f3c87a0ff9deccc9bbf65aa7abe29a6ff36019b3b647263f92def687006c45ac6ae78320a0e76ffe4e48a968caff33718a055cefd105abbd753d1f1e72f0099495cbfb8f5bcc306098d4aa8da30c1ed26c57b9592cb29e25acce445b0cafc99b849a6275590fc2928accb3d554784008d2dd0cd687408012c8a23106d6b4bd1b099cc243cab862a2e0ffca5c8f62bb0a203eb5bca69fa95c22a2ec9ec92900ca8be8802ccacc0acc4ad6cb329f3f4f204b4f1e9bcb3285aacecfef1eb85f78628bb8e40a7e018b036c01cd7a889760dabdade0525009c3a463efcda0b76fe2c329007134ea5a735eeea0b58cd175107d1f4ede346a27f2d46504af9e5673bea39d1b0316ac53d76a0f689badf67471862fe859ad6cc38a40dde94c418db6c40c84ff5bb2f9c370cf0657eefb1da50e4b7fca368723400bc85fa7dcd66fe09d8411a0e8b250c01d369627a1e9926e02a92d365f87283ac2734dcb6acfbf63ee6b41259617ec346a202748e6adb9a2ee8955f94f551fae6f5b39c1676dde3e1b098ec8bdc93e18812d43401162db7fa702eb6c2cb8c4b881744f566b06f948bbc7287504128e1c909116b51292b82ed6d9addc2ed711739fbc95517e721aaf4a38220e07f3ec7579d66777046ea07cfd0ca1781afe676abfb0ab40deb359d32a19fa18f8847a2f4eec1f020598e357bc1dbe0831c275fb0290812f51cc22e7268e3818a821bd52f1ed4c295e8e3fa236c9556988cf66e8d1b3c462509292b3003fc6b4be1147b0b00e98aac0f03de96c55d0e3540b0a6d0013c0c3c0c3c0c3c0cbcc6f05bbb6f76e6d6fe96524ac1003a08a594524a2925cffd8fff5fdee2ad256a7d44ff8c03e102e10e3a0e420e099d337c1c1921030d93d0de2f4a925789c82f213ab87f06eab0e18ba2094ac97b61a3d604d9f5a2bca52566ab9d0b0dc88fdf71467ca034fd110408f2a26462fe3d7efe0919a75d14548d67d1bf65a5f7d545c944b31ecd1fdd4de96de4e2647d3ad6370671519c51275aa2fea798681033925b14e3f97dc9bdb0ffbcfe2003fd19673f5290206fc60f1f1cf0b6618b736dde12f7191a2341cc48ba166a9ca4cb33978bc64802f2e3cf481b810d5ae8232a4be4cfb264631645774fc2695fed2a2553b228480f63f2a7dfdbd7d00e360d72d0f811240564a061d206cc3a8819c9046cc4a2f8e2e94a0e3b93fcae1d6c0b8bb29aa930a1e4ec5dbb011baf286e079327ffe42c69458ede043a7400f991c8b0e18a629f770e5d9bf97aa43dd0400b52061a40d28f5694640d72f39baa04ad27064800831117d860c5a33aeee6242635b0b18a92ea2c5b2332892a0af36d5a33db993ae11a01d2a928cc760665de254f4545419e787a4c9dec77c977b00531233945d97ed47f583f77b0e9036c98a2a0b6e4c867b5dfacbb14e5eaa0591e477e12d4ad6798c1034951de5f93fb640cfa674ca3286be638dfae2509ed221ba22849ba313dbb6c1a99c7c3a3c79b804351709137f1f3fd9f1c53a028e946d7f418aad4ca7fd2193b4868fb89c25ce7cf27496b3d510c71aa7abb393b9e4702188cbcc04627ca291be57490b7cd79730f0ce8d091468fe74441a9d2253295f48b3588190932c0c62650870d4d144f99f8666270cd1a353b401fd0a143870e2067f83026010c46908d4c143d497a62274f4ac932c14449e826f724ff6d9a8eb944e124cffd20aa94a037b7447994ebe7ea4c6bcd3909d8a8c4a57663e7aaae72db6e275be724293132a5011d3a50e271868fc301148c714589e2697ccc1fa24ad0ad272e3626511236177a9fd5c33a248972cea7ff4c17fee5a56ac046248addd9449bd6f318aa03898292f604dd7773b5187ba432464e1f512e936943e7f5b5cebb23ca3187d9342a324615ed48193c3e4987471940dc7e040182361a51329d7de7ed544614e6d6d2e48d2b934a2260631125419c2494b8d993a0d44e467c0419411b8a28c9937abd93242af305d8484469aed3987ac7f2f1161125d91717971932779c0e510e76a5b2933c524c6c28fdf81d86504d096a4a0c423edc5060a3107b09e57f7fab2622e4831075b853428d6e90ee2f423e06d185cb26a9941e357a5d0a6c088215e5dff3f7deadc04620ca3944f6876af099ff75e0a38c327e0710b6b5018854cf642d35decc74f0d7f6bf6ff57c98e1e3c719762ab0f18752b7a9e71d4f4aae9eac6cf8a19cbcf624a95de26c92d9c176520e467c04c1b3d18762b4517b9d5a3767d3238747900f02e44c49008311b3c187c29e29e9648da7d81af38224201cb0b187623a41cec679d72489cd0dde0c3fe3cd80800d3d14b6b2dfa4cfa8b48e6bdf196fc6076ce4a17c15736d8214b355770790f7800e1d7828e86692eedafb1936ee5012f7649ad6bffd51118fa1820e8cb103c87b80db0ea5b2fd594d36deed888f2026384303818d3a14dbc24d0821d7e5830d3a14338b4cd56ad65fbecea16c3a98f451a34c4caf8df44846cc00f23a1819f11104310336e4803a2a0ea5571f1d74eead7a9ce0509cb30c4a75a7476cbc0165c2e9df870c93a3203dfe3c0bfad2f811a447d233de0cdc810d3794d96883ebb0c18632ec61630d653ad2861a2a715d77b39a4f305310206370000563f4d948431b1ab86c9ca1cc8619ca21c48338dfda4619d06c90a13c1b5fe665cb73a6720c255df727aa713f7c92188ab9a4500b6d2d1f9a85a1a0593f8e4e6975820c0243d1e470a28d9a1eed1c6f828d2f94c472bf3c8e121dcce385f27f0c76c24a3e84de74a124669d1f6ad5c4ee3c174a5e7ab2c899b1ed99ab6c6ca13832de6ebbc466c9b6160a5ff3317e8dd69c35ad1ca08d2c144f5853ea0419830cad66c106164a4acc478ce89d6ceae40ae535bb319127ebc6bcb14229478ef6a69e2779548582d20b933bd99f32dc3a74a49971768064b04185e209ff9283cea2fd791f6c4ca1ec492c4da7fec2c186148aed1ecc2449923e95a424b11185929bdcd96e4e7810ef6760030a369ed0cf26ed93a3dbc1a683ff918e9ac186138a3d9e3b6c6cbf836d9160a309853d69fe7c344779770f369850924f92df93fa8c4f9f440f369650d249e6f4bd7fa7c47e9550cc24bb9f9876a36ae11d6c24a1248fdf9a9ce395bd8d4828fdd9298da542b87d890c6c1ca160ef9a4685c9e924a9bac186114a1b65ff55ef948edab0c14611cadbe9bd9f643d19f7da2042b9f4fefbff653bd86c0ca1244bc70cf7f33c33103b820d21944ec9ef69399993a03a48d4084669ffe2d3d79c9c6b4c3bd8ee74e850440d6074fda2f8594f97861abe2886bcd93ba1e4a0a368c46af4a224c93b15a6f455d8782c508317c551926c624cba539aba3576516adb24c95136e7ed6e0d5d94e4605a655663c7ae4e5ba2462e0a3f2a63e5e4ef94c926450d5c946ec376d69363d0235b4dbcf6448d5b94edd3c4367bbd778e75a2862d4a82ead4a1f4c7b66d0c1574c009356a51f2a0da27f975345513ae440d5a94649f3ce11b32f8aa8134be8c94356651ee54dad525d7e50959b1004f16c5d8195c733c6144290d0d5899dfa1462c4a325d5d98cc6d51a68da1820ee8705d440d58144c92737bdc0ddddd5f51ceabf1eaa4d1faf14a3bd8caf81e3e780479b4203dd2f9914cc06568ae285f7e67657687f1d4b4e2f4b97ed3c9f16ed6604539fe8f9ac7385f72ea6baca2a4b64eccf2fd614f5ee1504315a52a516e637e858a29a5a2a42cf7b54ad850b27dc3420d5414c34c3cf1293a9814522e438d5394fc33798a924b53a7ee0a354c51dcd1a25447d73839ecb452f87557ae1eef559d567992a275588d516cf9480d5114e48a126e2a3e49a50495156a84a21cde538cbc9c8ed7c3070f20ee821aa028c94e22e3fa69a5e869c48c0f353ef1c6c847930455d5f0443156dfbfd536e8d768558d4e147fe49c08ff35f164722ed4e044b13fcc468a7f8a36d3260a4ae8244eac4466747e61a8a1895209722e6485ce24099e4c1433438432a91957b3061365f7d96dd18ce631da3bf80f352e51d05227cbcd697749fd09352c514c424992e7270fcda9d383c7d6a8445975ce4c2a97cd303f053a7420a10625ca9f25d666983a5da53489d29de7a4428fc8e0269244c944cd53ede132ffc744a23cef256da5ccfb7a0612658d7f92bcd2b6a784fd8892a61231e1614794127644d94f94b2d45c4ad68e36a2341a43adcd768a57ca88c28e4e929259d7b3aa5c444126e1a624edd6fc1615511879553a8bbaebfa30116579cb92d4e81051d2ea72277ea7e6e4ed10259d4737ec95668892691244dd749b586521caa1fef4f976d0b964558310e5cb52aa3fb2337949328882fa9c38bfd1bd934e2288d29b8ce61c7479186d12886266db1863d8f03eef0144e1e47c2641d59d3cf7fca118f4b78fe85496b2bf1f0a1e4acad4217f1fca5174c9e81e3b43f7e643417712de49da9c5888f7501026876ec6f4256e87f55012d65a42c920e7a198040f13523b9c6767f150ae8c77c2eac3494266ef50f8e49bd1b53c6728513b14e637c99ad6f563ee5a87b2a65e291132c7304de950f60f175264fe3c87730e055de5a7dc3ff4ed470e2569252839e9fc1c4b380e251d1eebffbd436612e1a0c6bf3d25e8f10d2539f6add2edc3724337944433281dcf39e5956d2865f693c49f786c2869104aee5ca26b28e6ea52a742a6869249d2f8c626e9262a4b43493eb9355f83cc79d255030da5fb6cda3272ba2ad32329c8db19f8aa733315b17dd1b81022a6dda60a410d33f8487a7ca0870f1e1a70408d3234a0061946789c91801a63e0710606d2e9e1e30035c480801a6150400d30f03803033fd20d7ef86841091450e30b6490f12a70400d2f74210135b850801a5b1831400d2d8c84d4c8821835b02052e30a02a861851b35aa30c2e30c0cfc0f343020460d2a94de42760e27d667fff0b800f54829b81a53287e14bd398e6d70f9f08aa08614cac94d692b5f07a907d6884229db24edbd12753ab635a0f0952ad10d2632696f90121033be2ea3c613b68613caa3274cd7270d26d88614d56882d76042d75882d75082d74802d640c2d53882d73042693dd4c8243ebb989c221493de568fd93e87bc8c08e553aaef62f3211483be911daf4188aa554308c5a8bee5aeaa6132570b2318aa9db21b185897f809362efa454989671dfd4ffeec31f6457935e99feb986218bd28c8334ffdf02274457353088317e5cd9f634ea393ab787e17251377b27ec74edaa4954218ba288c92459af4a04caf24e5a2d4d9e47a8ff2fc191917e57393eb4439e1d7a2738bf2db8587f6d8649ec43fde041e862d8afa1ffd53f9c69431accac185518bb2c93973dc4e327abada4218b428ad69fb6af1d31837cda260baeb3f83ff8932b65961210c5914b4a6ebecf2751db6d7a1236dc4ea5211462c8aabc1848ecd122c0a2756c9f0a89b34bea40c61bca278a24a103f7ee2c827390118c27045d1db574f0ced68608c2ac1181a18a348308606c6a8118ca181314a046368608cfa4318ad2886127334f4e92c3bf38e3058512ac94f7568901b63ab28e6b859dc9e9021e76a5184a18ad2c5c5c6886bea9224d9c1228c54144ce356cc667bcf9dd9c168a0a2f0f9e4f4261a4b563dac08e314c5dca09b3fab86ca5aa808c314c5bcffb9ee3e29111a64a708a314e510a2438a0af5b42d91a2781ede9e242f615dc7eb4218a3285d6e4e3a74850e19e3c6853044512a317dc7a7c6e8a9e21d43051d581f6184a25c5ab25fde64a6893040512cd10e267e56af8a910ac2f844b1cb5428f1b2cb242679a238629269c5f966fe341a098b208c4e94fd44b76694cb659d1b06270a1ef2e3e9a09a6312e107c2d8444987faac3759d6473b19600e4313c53a39a67cfb9c4e1e6e44189928ea7c7f8edf3f329e3051d0cc314691493ce87c899277d0a5dae27122b444f904d5b4555d52892d4a70189328963c39937c30d9a4509244513f653ae9a453248a76e97a3626c96a7a48146f4b3c49992e29ba448f2886ead6ee90a94c4e21471445c98e08ad50234aa2d6757ffa49ee9911a58d5922f79f44eabb889224d49456aa8892abc972362af49464228af2376a69cac6373c88288687fa09113287289dd2314a7e0c512a496e4c1aabc2335f88925c327f9c5199f49584284999467d0607c126080e23102591e9e435d137aa6a0f88d29a7892b9e9fd0fa55af9126e1ed6e5771f01a713fb2c542ddcf842f9bc2f46699dd30937bc509021cc744caac4fb946f74a1684a26e9e4ee3f39f6e44251cf74ba3c25933c3ab785f2cc763cf1635c589a68a1243ffe299ddfef3ccb42294ccf8f85d2f8b7888ca2be8272d7b99a25fb1e9b9dbec17d6492338fbacfad500ce126e9f8eb39882b19b121dca842317d6e90324a59d90651a16862f3a9569867e9e014caa76a4c8868f9f93a49a1e4b143990acd8d2814348858b5b679030addb7d9a677e7cc7ab8f5de675cc6676f3ca1b0256fc7e89e111e67fc483a636484043018d171c309c593ec6ef35e45a38c444170a309c538ed58b2ffed2e9f1d6c64f828033d708309454f77724ca73bf9cfa90cf33d12193e444002188c88e0c61232afdcadec2cf530d53abf52da419d85dcfa890c327c88e00c1f24d0a1830c1f6528de504231af09ea5ba269b7ec8e70230925258ae92fa57962fc38136e20a1e025e977b6a81290df61021eb1346e1ca154d2efc78cf428d232d03003c75041074880c60874e8d0a103080ff3239940878e26010c467edc3042e1a4f4a0dfadef60db16dc2842e163c9122bbfcdf54c4428e7b4af99bad2d3c35a861b4328a6a8c6ccdb0cb13dba2184723691e1d364ffa5e7835196d9b95c35d164d2c9c0286c7813a2e755915f9453c8b8d02d490cdb7b5341c4172561622661920e32d3677688f4a2e0a34910baa4cee1768382082f8a9af46d52a10413bd4a76f8eda2e4fbffbb5675527a76b6a70bbc42bd42ef63e743d4533da3be6aaad7c3070f915c944266be46eb955d99457051502b49f6b3cc276d92dea22c7fa2c8353741a379b628e9b81e9d73fa5a144eea26f14fc66951123c93ecfc8ed67eaa59946366993139644b923d591473fa9eacfef0f0bdc5a2924db5b3aaf70ef9258969f7eeed6151ccdbe15f7252f4694de4157e9bd77985ab9dcc6d99a0aef1c143d6a94f0d445c516edb8f93d48ba67cdc8a920a559304935956944d29c9e49c319707b70f101e66e42a0a27ef5a9a189eb34949aba220b7a3f3c78979d6182c88a462cd9f19d37bea37c1c813445051cc3d5d9ba9aff42795c8298af996f65defb9bdc414257162434b7dcde69da5287dc6d7ffe7f0d9df91a2b3dbdbb5fc725991b96cdb647be273cbc78d454651eef45dbd4195e0404414a5be52faf7eb94f2edd62a20128ae2485793c4581adb62048a928c25fcf22b63fafb3f515042e6d277db26d5683d5192234556a7ea9c741276a224953a41bb32b3d469443851d20c55e2e9bf6e92f526f44a79abf634130f95eb2ab946e99ae899c4a489d2779f122b9468264ae27e6d6777de092298288c9a583a479ce5c7510e442e5118f599f386eeab0c93250af39a4e6f7e9c1cfb57a21cda64ad5e8722942898bc75273ce8182243914914ece3bd4f6549d23a950c005110914439470df5daed1444225152267558df7c7e0e6132e37fbc09d21969a8001225a92ff37e2a91b1a482883ca23ca2e55293d838a21844e3ff9fae140f1dc720d288463f67b8be12538208238a2745a86879ea9c53b883ed0c0bf2c3870974e8105944b14d6ae8909f93c682d6808822cedaf94cf89344942e53751c0f99e1d32e828872a6c9d174f3203dde047b8862b5efe751b17b37c2b41ce8d09196034c133144b9d377b3a4eaf6f55ea410e5ce572568dd8b901324428872699df966dc9cd74ba88cc483033a74005932880ca2741edf74d69f6a12571d3a74e84823880e1d690439348808a2983a497ba6e24e9c7c90472375754702188cbc48204aaad3e8cd88978fa12402889289c8f966d08afca1e4a74fce25cdd87810f143419c8dd65a19e920d2876207e1217c537b5396f850d62b53a27eeab9dc5d7a10d94361830c72e7da3fea887e10d14331739a9997669a1695481e8a3a2a3dcc2d84c915c243293b5e559c0e3ac624e60ea5bb18eddf6c6287d2e86477fd763742f63a943e57a99079573a14eb32e7d2601e747658640ec5f07b9175219443f16d4f4e15d98ac4a1f0ff39be3a7b22702866ab86a767a76c132241e40dc53711379127acdae9dd50fc2477c63631ec3dc436146327a1340966ddea193664a76b6b2f9fed1a63e2b1aea1c7c40ded396b28270d99793b069983b85f105143e19324870ce2d2640a3f0d2521dac7d3e4121fb3e565104143319f3849f6203798a0e45d1039433964665cbb69c917930b226628a886fbf9155d166b2a43795ff64c85168990a1186a429ab8b13d9b3045c6506a1d3b414f86ed6d911044c450d8f0324196a03496890943e946a4ed8eab891f4ac0504e9224c6532eab419ffa8562abeec95632f342f1f3467f0b3b75a178279baeed7866912d17b6111959f53cf92aefd898ab6410bd55e299ec164a269a2c5e5283bf6aa6af20a285927cd22e466a902786259285628961843eeb1ba1d923828592d45682d86d958f252e7285624cb19e7418d9dcb78b58a1301e27232ddda4bef602912a14d39abea898d823f5a5424143ec7f9374894c81b5bc70d576d9ef589dc9573b9bf48948a19cf477d039097392f25c240ac570ad41c611d9277c4e040a05193ef67fd2b3c813449c5032d5fdecd49dcd3b25d2848266b7b2ee9874899f08130a9ad56c45789ad151892ca1541deac194dc3177c6224a484e1f37da88449250b6df50a3e5fb4464520409cedd9ec77ecbe7c7d86a224728461feb34f21b474348c40805259d8cd5a83629b22b43a408c5f64c8bcb8d458850cc1d654ff668da94c57a079121945309193dcacde6f841224228e898b435dc886d6e644580810c9440041d58168404a31863beed2c510b0146a94abcd131d97af81ccf2441c82f0aba2b3fdb4b902f0a5a7a1aee4abd282921c2f53a6dd071235e14a4c9d57d920e3289ded945c94a8e31689d58d9dee8a2a4d2cff429b9b19c3f1765f378e275c74fda0417854f25de666f12224e7e8b52bf26cf51624a4f63dba21c447e0ca14666b6538ba2f7de77ae6adf20c3b4287d27939dd3b6c97b328b828a3d41dfa5d9c75316851322325efe67539dc6a2f8259a7b4acf38b14f58944c6729d1d6d739fff78a72987cc2bc8893d1f4ae28a95332d4849f20bfb35694f624e9a44fa5d4968715254177c9bf59a399e72b6415e50d4a9bdaef4f9d170821aa2808538da24fa9378d53878e11fb44482a0adef6a1c473511a63dec13682fe1015c5ca1a996234e2575784905394d48d74dfd5185fe2c7142559343b69c556a528462db9e4f1ca5cb1931d6c21a42887c949e4533398dcd6284abae48637315b7c4e1f5114c4baf767123d1fa60d45e93abf9dea46590821a028c59f98042165478327433e5118e1576a2784c9d48478a2f8bf2942e43685fe5048274ae79dc4e81d4fe38eb8836d04219c28aefac94933a4f9ab1fb289722ed9f9a36f6e079b0e1d411219233a742c77214413a5d22a2a5ed3c4aa0c8764a2fc417df89eab90d6d9104c944bbb3795fb6697682197289c949b34b89dce861d628982599fe825c59b54ff56a220feebdf269f0cd71c568450a23452ae4bb83a539e931ef0ac43c824ca264e30c1df5dcdd408248d14826e4288244a2323c306b99f4d258d44a9357ac76f1543205192f57e7487d649557dc8238a31c67c2cc14c52f53bc411a53aeb24c4d5889ff01b51d0ee574a9e29a93bcd783808614449ac2f318b891ae42ac61f842ca220cb64ced9b75df77c4514d33688f2d26a629e9688b22751b3da9ca85e928c8862993ad941a726c93c098f1b380e21e410c551a3ebee33bded961c0f420c51eeac66b2ef6d8014a2bca3669d2b4cc7d22144d9841c7751fb18bad9200a1f4c8d4e5a63ca7d91a51122886236b13adde56d8ad3620f420251dc13ca7e5ebf04a184858028dffa9db898ece8d8f908f943314e3c99a9e304dbce0fe52073a3bb9f96f0c9d50312d2077baf54e688f7f850da36bd26b53b69db6584eca1b46692e64a13ca4c26dd8c103d144e6367fb33954d79939187e2d6291d4a3e40d6062178289ae82da73e84ea16888f1d7c83903b145e5483fca06bb2ca166287b2668a91399b4e72b229a40ee56fcf9b5b4f340bedd0e1eb993fb73c8d264884903930277a77bbb3e6daad7342c78f294d8b968e102287a26556bb92dbf4496996101287d2cc9e7c72f20ccf4e7a191cb69242a72f5b2f39db1d84bc017d720c4ac56d8b380c216e28e6e5292d2f254afe15d2064cdf5454b3b5cb0411a33d9af4fc216c28fe9a24e97c9a394486d7508a17b1617bc567aea386529f69aa4d92a8493a7d1a8a6725f4badd6828c898744c4c5e4d4d3b43d945d5bfe62027c9a6cc50f6a067bb369d8ea326652895cecdfb4c13f3e69c103220ba66b5699e5bd5e96a42dbeabb27b9c428f6184a6ead66265f22f4b885103194de4cac12e3a439d9752c8484a1a8d1bc94ae8b685493103014e3b9668b5f590d230af942d1830c93ff949b53931d6c18e205bf36efd3ba5675d3c2b4ab5a63e8fbb051463bd85c10d28592d0a3a33ce59e0e232e147e3659a6681c75ab42b65034352ab49cbd2619422d943d499dab4e2bb241f782902c1477f3de888fc94eb20f0b66a79cebe659de6e7d6bbcc74c82da43ae5092492fef4a0e5aa1f4e1d1447c9d6c723acd20a40a5e9e5462501993e6f9544844f98a4e4acdb60a9942492eed2489abfc532b511022857249a24ab46ecff0650a8942d94f752a61b2e71884dafa2150e0c6b54e5fbfe55c3ec30c1ef8819027943d27f9724a3576924f1ef000b2021d3a7cfc483ce8e1a3870e1d66a0d1c3439c500cedf1eeb4e4793c37439a50bc8fffb1f53235fbfc23ed383f3ea5e047901498f538837f0401821ec284926670d9f0b6cf6eb21d6c40789831d22395c13692c6193ecea590251453dcc851ee9a472db383ed2e10a284b208993942896a269b1908494231669af8a8b9fef81d87043018e14008120a271f4aa98dee1e53b3834780f038f390239446984c3a4207119d9b4523ff830cb5330e314239080d22b5d7e4cee320408a50d096cbf4a6c4bcf1734a8462926d1b43637793b83984d2a7893da6a413431226c57f7b5c065d308a9bd5f11fcf323d6014932489330529935388e2e9062b13939e849e10e54d269af28f9ff4f24194acad573336cc9408a2b8559b736ef32c9a0e44694f49b1fd9fa53703a2a4730eda9b422899ed1f0a2b7a932693a3b7f543713ba97f2a518c3e94eb3d9f5651627ba1187c28a5af67e5eceb4912630f252f7513d15f92ac8aa187f24923b3c709e72526461ecaa9e579479528e7e6321e8a9a3ff77cc5e68606fb0ee53afb8d7dea9ff2ead9a158aa523f6636da655c87d25965149df4b6838d0ec5d2ab12e227ad6f9881cca1a43586e7e78f5b6f470ea54f62d2499b60b9ea4971287b67f4331b935d94180e0525f3bf8813d97f62de502a39b747ffe437f3d90da5dabece76f7557aa681186d28d8596cccd3e9f7ffb56381186c28f89ca85cfd69a97c62aca1a49f76b399fcf88cf61d410c359433358beb955292ca98186928bb08f18c17d281186828a99929e936a6b7aecf50cea66e9214fff7f12533144c50bd5146b35e5c4381186528a6302592a19c36f5ac5f68d1b4e90e361f4339786f8678d34c208618ca5b9e71b5dd77547976b0b918612828c143d4893987134264f4e04106193eca0043c1c47c234b740e27786704627ca1e8fd66aa24b7d2bc508e31746743d4f76b294617ccf0e12300627001f5e0a1831e688488b105bce32aafabdde2e244348fbdccc6e40ec680185a285c6aeccc1c937d442da30c1e21d0a1438c2c1c72f6c2a35a28dd76b0f9898105ceedcdddeb74bbdd2e3424c6150a4a507e7af6bee133658592dc33324d4bd2d1499233ccf8401a190002e44da0021d3a7480418c2a949358de9fa563ba2b691e4932824619cf820f7080033a74f4894185c2e74f72a2aba7dcccd829943fa7d0eb26ef89a7d38f245d0a2541e67c1f54bcc4e347908c42294443cbcb9928144acab43b7a8f8aae9e502caff9b4799d3c7dbc83cd9d50927247988650724407b1a9408c2614f4e4784a8dc6d1d0498030a1fc49ed9b248a5d8ab684f2784c1db1e935a8d1a96b81184a285bc90e1f32b3e6b8382046128ad6632ef755dea9330d0231909090d71191557911e30825e134b429595b7437c7080521566d4c34e9d2feee15885184e2e67c92ad07914d399e95400c2294cb3aa88cbaa642474f3b20c6104a9d74739e136e83c8931d233d7e9c0f1e2367005112c060c4036208a154825e5849728e41077d30ca49fe53567e1d4b381d304a926a8fec604ad2ca14c72fca7a4a925f64494aeee616c0e18b9298d3497e6850efa283a31725f17b4ab892b66ec4c97861bd6b6c7adea969acd6e66ac6baf03a7969b500c72e8abe1ef35b09795ebdd145613b98dc5f32e82445998b822a6d7662b30f6471e0a2542b7ac4e64dd28d06075030068e5b9446485fffd1265b1456c493fb9eb528e597aaec2eb54d958ee0a045e9fa74099e5a6390f1e1e183052366068e5994e430ad9ed93aa7aa481645f3a4831d8bb2c87cf2eea5a87c3111020e5894936e30d124ad780e32fc8a82eaa4f24c7d6cc47c0439238d1f678b80c31525d1744789789356946f3b27b598132bca49c96b5cfecf7ad45761a9a65988a7912a4a3726d39faa1152549f8a4369c91f4687868a7266f993c486ba0d7d9da224a35e52fea89c126f1ca62809b63542e6529373d5a143878ef48347ec81a0933408384a519e8d757ac3a789ce92a25c2374fe2ccaa46d6c14e52cf2feabd699a194a228498274cda949f36a9ba128f7e529bb2e3150a4f11e1ee655d6f99eb2b1537388cf0f97b9f944c93d7a92737e39888f3252a04347101f65006923e0f0444909f9d929638ccbba13654ffa24ad3e39719a8d596fa29c9ba3aaaf3732ecab89d2079344ef739ffc9e9389ac4a64e6da2a4fcee4d53cc920eeb99b429d60a25c6b6a4cb43b47746dc61c071c9728984ad9f39125a7d23196288e90679ff3a74dd557a2e0c99414d57afa944e8972d6b0aa4cba9d44b9ece7f2f22acf549404e755e7d95521d765e19d5bfd73f2106b672490f9d349a226c18644e92bb3c88eb239b3c34794f399b0fbafb5ba8f7144a966375ac79c3be4868d28c6b4142d6f4acea74a8c684ff5ecec2e463dd63cd478d88fe7a0f9a47411c7c87cdd752e01c0167028a2dc57a71b4f7c31c11cf040b801ef33cf4494ffd42ab7736d8e55820311a5f3bc97e359e37f648728a9f849611fcfcf939c066880c310653ffdfdf3d13a522b44b9bb4a9f7f929d8480f0680352068f206810a224b4d6c70b3b4f9a9e4194ec777334bdf1e67bc4218882d6123e75a893203c7af000f2bb8264d2f811d405e1d183470f34469249e3cd38332399812310e5d099e3e456cf121b015134f904f77ed38680e30fa5fa3add98939a9421f43370f8a17862bc9f893215a3b93e94ade39b64727363e2091f4a65ab29ee33df433963fa37f5fd9cb3c8e40d70e8a1a0b79edda12bda00471e0a3a890b19bd3bd7cda90c1f3e4c1938f050ae93328ef8121fffe11f3e46d87ea426018e3b1493c949cacdfce1b043a9048d9bbbd51e4cec70d4a1f4a9a3c4e492b48174461a2ac8010e3a946793243eeee818b63973287b97789dac441f8fbd1c8af9a41e93b36538e2c08dec6b67998a895ea6a6d97e98f46b6579101e659c91821f41805001071c4a4296dded88d61374f38682f57a1284124c3638dc50b44e3a98f89ab4e91b471b4c725de610a7a734be053e74a082c4c18692d299479ffbc692adaea1f8195aae4a434e9e8c430d2559357d771855429685230de5d22173b2666fefa538d05050db329ee93736fcb3836da4870f1fc92106c6d0809d9f94034438ce50523352533dab69966e479037810e1d3b82e03043c13a4fc56d76fcea111a65a41f6770e3284341cbbc97eba7b95c3b82bc097247903f23d3087289830c2571f3aa474f275b8e4682fce0f12348ff080204c75052bae7516334316a85430ca537b9e7b21e538e27f90047188ad9b4d448f9ac0938c050d0595af3a6908e9cf166b007707ca19841493525639e14a733d2088296c68f6e1c5e288932b53be671ac3ddd8562fe9384c90f621c5c287d502d269d0eea5d3c1c5b28faba9c99feba3c79e3d042f1542655a2c94b06cd6601bdbad00b55addc2bb76c13936c26afa53e62a1d8e7de1f4cba502da14ae0b842f9a4f33f952d1b4de7562888dc53728969faae4d1c552829492ab19e23ea4f3ee1a04231a91691563ae5a4e5532826eb0d91496e38a450fc98417497a05fa36438a250b492cac7fa9340a1ec7a258bc8320d8f1bc7134a92e678ff6c130e2794849c949f2b211c4d28e668172506a999af64389850f23d1de11b75a46818c71254fd0ed1fb4a17d3a925389450504afecc953ff28801c191844e334b2bbfdbd63e34477e891b638e9f3e470ffc483af02182830309853df9849d921666a1e408e598b5e924f32a7d131fc90bd283870f13acd9080e23945534d566af9f4e9250077014a160a2243ffd269badd63f56063888500c32e913ed46cb966cf269c78ff82063045f806308454d3dc9939844c8ea3a8d9c61c68f1d7a1a031c4228f79eb893d22475e6d96094f24f844815e5116e00a3f42789f217ede5495e7f5192b5dd17f2355f947cd49feaf4c194aed58b720ce24e9da4497689657a176ef0a2682a7e37984e259f65752fdcd845c1467ad239dfc6f33cd145614bd67ace8d16d57a2e4ad63dd75bfa1e3c768c241ef000e21f40b828c6fd3b99942cb144f75b94e47472aa3229333ad3b62889f564a2ba68ff4f6d2d0aef379f413edd4795b4286899fc112f274c88d22c0a1ef467b351fa5bcd238b3cde632cddba33343e4649dff1bf2f514f2a16ac49dd24f31958143c7f35457be315e5a4c694e8246e5c518e1f99947613a1edb25694326ab45bddacb33fd6e1062bca2b9ef24ca6df926262c38d5514b3c798a95f3c7695ec862a0e324ab840ca6ea4a21c4b30f51ae6e4ec094245c9e74c3a61ff44b535394549c9796d3e68111deb6f98a2f0d9a52ba34972f8336f94a2d81b4d4cf2a3a97690dd2085a3eae2295bf2d5d5b164d3d33198e9e3c628cad9c498c442891335635194eaeceec36bee46288aa3aff1449a7823a40714e513badf6f4d522649dd27ca1b4ebcb0f5dc1b5179a260829be8f8cba436fb4e14c35a97204a4647afe484aeb2a2e2bada29b39e253547091b57b289929d70a31e7769620fb7ecb23ccd0dbdabcd3f16677bfa4f938982aea7c91fca45894fddc044b135eae712ec3fa7c98d4b144bcfc8c986c61225a14a4b8ccfd91b9528bbeb67cfa4a4b2ac9a12e53cb99397344dde244a929fba9b6f5066f3a171468f0ff800f2030d0d004941d2c8804be238b9789d99abce1d915e721c575372372251127e377583ba0c7b3a66902857b6dcab854ca5eef38892a853cd1d648e25f73b02f1d7f1d53d4563b8d188f2c93e3b2383ec06230a1ea4cbdda6b8a5706311e5b712e3b86e921b8a287acadf499993fce644943264cbbf6687871e1181f8a06d9e76a5431444d7738cd0136a3b370c5136713ec98e332944faf94be877d96f104271fb5635b3537d993dd19d632649333746dd370651507957efccec3c4a4e10c5289ee48cbe9f39c98ae046208aa1bbd625f487841b8028993096df732afeae27dcf84331543cfd9ffe761dd50f05cf1837e79294dce843e9fdab763fa7dfd4263e14d466e6bea3c74713da43f173529f623def3a787a288cb4f78e31d5e8a04af250bab212c4afbc69d90b0f5ca8eaa75ae8a6c7ac8bb89bf938aa27457728ccc967793a9bf835c125dcb04331ade74925d7d6a11cb4c809f124448782acf3eb513ae7d8fd7328cd65c939fc4ad97ee450d034f983facd9e602771288612a54e7e456398131ccae963740ddb3a673af4867290a269840cfb3ffddd50cc71b3a142e34e3e711b52da9b37e88c5136144ba7cc9254846b287f7c875aa949baafa486d275ce6a223bde5a6b1acaab413ede667afb9c464339c92478d40eadaaadcee058a78ee77b6975ec5d768679d37156bf2666288769cd284a3e65289fb81d22546a34951b194a82c926e7314cb5bac918b4f53479db5d7d5119934f255d08d51274520c05d9313a42c6138662a9dc13fe4ccaf7fbc15092f649c90304c042494af7de3e21cf3249ba42793797d05d222ee35990962080158abd61267c38d126775285d27dd051ec6c35938ba850d8ea505e2708d55d9929142ced3a9b8e1b01a45056aff4249de9b94faa1d6c4046121963a8a003be2040144a5a3a543ecf4433393de30c34a050b8b20c63724b6c06a5911f49073eca18413d7824776368c00d047842492ad3eb19ff3a49989c5018d94ec29887cca7bf0945dfb01b57bf6453f232a1b4f3e1f536e3fb0493004b28c893b9a9fda4d3257c2514cd3dae94ccada5b6dbc196831bf4768200492829a1bec3e82641c911096535f56c1ee7e00623692c08c13d82004728f89887c9ea7fa3356984a2d70965f92bef5f220325f541802214373e9958a565c2db4b8492e60b6defa3744647ec6e4080211434afc7cc5e360184501a1da3284f6d272783ec2083c78f4d7204a318ee7d7ac37a94e61d18a593b74d639cc92f6fef602be35310206a64f4e0e1bf28e853eaef6432a51f37be28a57b9ada133e2de3de8ba2c6cda493109bbddbe545f94db6cea5e44d9f42bb28dda63e99339e397461e87899ce6ed77a6c9939725118194b104289f69a9ec9818bb29b4c56d299b090e316c534f9c4fab8917766ee602be3d1c0417a347050ca168a6dfe92153fa2c06b512e6dfe96493629e38e2a072d4ac25aa68d7aebe231e591631625b94b52bd71a27673892c4aeea9a309eb23f220472c8a9ee23536c8e6789dfb410e58944fcf27b93ecfefe14402188cc420c72b0afbe6166e6319cf3444c8e18a529c8ef1478b347b90a315c50dc246671a993c28252bca259d6676b10fa173090572aca224a97ad22644eb7b7a5451b6cd615d4b2a39af3c15253195dc6964fe13a3041505cfbba7abd1838c1993e314e5cd20c37d5491d1c36c8a62f9871711b596a21cf2bc3e5e8b98f824521483baee8a512d39ba1b4549b49f0e1ab6dac1e66fc8218a527bdf6f967832675387a2bc1e270825ac3940519246f4847c8d61e9a71c9f288f6bd89ca2fdae647278a292a3ac9da313c5d3f95428f5529f522f327270c274ad31379d95cb2d95519673325b468e4d14647cf4a48baeb5abf303393451da9461b286fa26114a3251b410e7f13a55cc450813e593ca24335dd263aa3ec7258a9f33d4fd8fec8a5c7358a2a87772e1d1b70461e21c9528497ea1deb9c4eca26b0e4a144dc7ded9999e1c4d26f5e061d62651ee123f25fba6123e9c76b0ad9300062341c82189e22639f752b27f876d5340460f1e3f820041234724f02dc955ff20402081970a533b26bdee91e311dfe74d420699f94ccec8e188b2e9f36426b6c68c1c8d68d736b6c4cddd44f486924328a5564236c8c188d26b95e8209388cbe71751b4134758e6532ba2bc4147cd63a3ca43291185f7536a951a7d410e4494a45326da8ef2b68f2787286b36316e58fb0d51902749b2efc912febae72844c184ae095f9acb4108636fd7db75eeb6cee454e811c27350d2ab6e20c831084cd8baac2d114449fd961c4574e8cc934094444fb2c224f1d23640143c95a692937e54ff50da9e31651d5a9485fc503c2587bc99e80a531f4ad2c9125b2dd3c7ddf0a1fc275ab59992ece3bf87b288495ab3723d14e3a753627e3a0f859364dbfc4d1f25db782868d29dc454a149467c8772cdb789f3ad1d4a8295c93453aacad63a14dd5347b79f74289699ee09277328f7ba678ea153d4470e85d74e4aee637c6c310ee5d4bc6fd9dedb263814459f6462436ff044bd2fc9e18692248d5ebb8f6bca97e46843a9c4e7d38aeee81c4b72b0c17ca2d1ef7f5b43e135673991a9b304a9a1145b625c89bab8320d05996963632568288c7dc99fe4e40c657b33bd22d6a264133314933aede9e7294349abe6b4c16312ff3c19ca712776b831d53afe180a9fe39b365444a62e86b25aa94ed2ee3094cb33c612257cfad96028c8ccb4d174bf9ce47ea114d726948c1df36beb85b2bc69eec8c8ce1eed423176d4b0b26d62d797b850923309f1d2133a9e96b650124ad34d6fa4cf5d490ba5bd4fe941c68b532b65a124442b83124eb050d412d64413536593d0154a25091d9a7412338790150ae244cd67edbbd0f92a60f12bee39f95428db6d6613d553b4be5328d79a94e3366a2eaf14ca99f2275d4d5027280ae5282636c959846e8d50289b68cd7c85e809e5d6934f6c53236b45e484f2e998e329eb533a89a809059d564a98bb66b30d31a1a0a374fef70a2da124e69c74fcace9379d28a198b489ef9f95c994a02414edfbefbed34cf9070925499aaace3174506b1fa1185fa2e74e7752be11ca49d63c84ce5762e3229483107a72c7386bfa12a1a062de31e634c7104eb2c9d026c8f3e41042d97654f86c66493a9e60943c453d7e148151ce0df39dbb4d88e67e51bc0f9d27a94fbbad1d5f9442be843d13f474b84e2f8a77257c7a9f67f1102f4aee629e641242dc767651b0ee24899e374617e59c4c0c0f0d2583f04d2e8aefa6f36c6e838bd2959c4e3e314a880f9b5b14ff7eabe4112163ce1a5b1465bd93fc7bcf8dada945e9e624b951359366d0d0a220b29fe4bd360d15fa59946c3bd7be48fb0d9d9745613f99604a5022347f3e16251dfae34a9860a79e874549c5497258088d179e7f4541e71d6126cf295162de15e58d41b4a4320dad9a6f454127fd5ee2969f9cf3cf8a5258dfe7dee7d4cdff2a4a99d3eedd664da5f457452944cd2a479c8ae2697d6c5feff8e1a2a29ca254797dd09a3b7a8ab22933794d66be935153146496aa3fc94693a896a270e24436cc498a926eaa9a98d4cdf48da2247b68889d8d161b1345597449fb7163091f0a45490cea64ddb31e14c5b8bfa3e1f3897232bbcfef279ed04e08a183064f270a57d53144c8d6091a4e947264529a83cac9d1df44c9da739017a72dd66ba29cc4b7fa139f3db967a27ce2758ac9d3ffa863a2545f999faf2f26af97289afa89094d6f63ab25ca39bbb35ff78f47b1122593e2b38dcbea97478952e7d81a4c2651bc3fdf9c3e37d85d2e89e28be779cc2351d298ca3aaba4215152a2e44da2f388d29d14ae7db1e1724714ed578497aeee084d238ac1f488ff125ce4e4195112e3793be3ed84cb17511cf5581fcc83b6bf1551d052c2293d93f3e64494ba24e9ffaf6bd6444461942827ee47c3747988b27ddc18d4c83949fc0c519253fb4b1c3daba74294b2c543c9ebd7ae12a298df329d9ce8d5678328ccd89f902234778e200afe7aa24f327945571d88d2ac8e68d00c33220244492c194fac4fb7ffe70f454f4a8ccf96127368fc5078d376a7fa3bfaa70f05fffba001f0a16052a3097fa393da9807b087525cf96fb04ef225cb03d0839baf730ed3511e401e4a27d49a9226886852790078289d76caa43b79fe3479007728a87555c93908a119f200ec503031d32f4fde39f9f100ea501e11f2c73be949eef100e8500ed58fa72b469c24c60398434997faaa8d769be3e201c8a16cb5b2e3bbfa694f3b803894437e0ee219934e6bda01c0a1e0757ed2c4742ad6b4037843416309fe3d32bf66d10ec00d852d0fee41c9e6a13a3b80369474106fe2d24d299dd901b0c1d82927eac7cc1a8a1bf2fec7a42741e9d5503a793d881c21d7cc4f43d95c3c93dc391a8a31a75ac294fc41c36728e6b28f5e4233978e9aa15c654a92fcce321493a4cd35750913fe244379ac849259176a7fdc319477b3c36639f19ddf8aa1f81e5f3b89c3502e1dc2d56450d24c03433193d2bcf2ab1c5ded174aa2c7585d3b42959578a1d8eba3356fcae59aba509071d66e67c4858218a533cb77b6500e99f7c3069779df68a1d41e74ceebfb24eb260be5f07971214e6492f358286b9e3949544f3278ae50fe11a2edd9af94b8154a9fc7cf63384149ea56a17ca7ec4437a526774b8592a8f36da5b497f53a85d2091ac7cd3c955caa144a4a893fb9c43bc7a48c42d1f53d986c909e4950a150ae4cd9a24ca54f28b66990a93542673d714271d5355597a909054b916da2db9e848909a512328c0ea54a67f52ca15ca69ad13a6bec7694503c254c3f084f276a9250ec1242962c62d4cb060965554d229b84995c9a23942f33c79cb4c931d66f84c286fa5977fd1ef18b50d07f35a2456b5487088513c784b5184b0ffb008650eed039edda3a75d8072084625687f7de1d8cf249275e9ace098ca285becd0e19e3c9d9fc4541d98f6971aff1cca62f4abf321f1ae4dbbccd5e14935c62ec960993514d5e9445cb8449597b4a9eb90bbe5486cf6266eaa26ca3d397d251cc4549d29e647f92d56453828b724cb5fa75ea4c32935b149409fb9d32ca0413648be2865d11e92143694e2d4a27cd7edc9132aa3bb42827295cce5463d9c7cca29864271953cec8cdbf2c0aee51b39f8a63514ea125fa886e7a7a61519224911dfc93c7a6fb8ac288c855ad49771e5714475354e75342caafad28a790a9438eca8ac2c82437b828add5e12a4aaf51ef7c34544539f46e9a0c25a928885177d209ff616e848ad2d6c7a43f45413f9e787295249898a264594ac7d52437d5538ad25e2699e4d0fa4165485112b369aec3e6a49e1f4539c663682f513d26a22898aef5f624762839146539b1840ef71f5f6350944d0956b2592a6adc4f14f36e66e8ac93d7564f947c2d3d98a815996127ca5fab617ece46f7769cb84c74c79f2cd94482d2a357939834519ad12fa9e9397710ca445146a8174b935146081325fd3a25a658c949165da2642657c9edb61a21b2443985b727a5714e664e258a2566116d15bfef1f4a946c44694d1b9a4451cb44c9209498de3492289f94f257c22479fa8f44b9c32a3d34c9f6d121519e3b37111e4b091a3fa22093ca87a73b1d3de988b2f69a6795fce11e36a224084dcd26f87b8f18511ced9e33959871ef4514f36438c947ef2d355344e12a3326259324a228d757254544415a5b499bcc3b06934314eb63d83fdd36ad27431475ade48d25ea018df9a8e46dc522e25820120904c260201406226f5701b313080018401e8a046391684058363f1480035a322040342a221e1e1418160e4402613018060342a1201808088582a13020200ebaa72a8d0f59dc8e3311435b91c7d702b9c2ca9974472508f2da1e16aea488cf13b778423dfd7476651f072e88e61494b3ae8cdb71768c7515af4d9153cdb1186a8bf08beccc4a6790eeb735854f11bf72c15b5e9bc32cfe37d08d205a20117a20696508827ebf479927da46619557b1b9936513442c10513c22d7ee875634999995c4e885ae6a2ab557b83e0add27c14d1bdd9dbd98697d94eb92f5d243352a5502993d565cfafaa073c87bec36844ea9c733cf5b0995d84f150d841ed430d3d53363a6f2f53abbae2f415cadf935341e07df6364cc5f05518e072cd48d89afeb7bf3764e92ed494ea8052688c39a7a873a59dd2a3f96cf2aa3883b76286f653a718240eaf348585cbc1734ad99d82441a45deb55923599120bf66401bdb9006e00c388e7040693f70a34a8dcd5dfeaa3fb626757aaf2626fa6d8d264454d27138dcc08ad8519ddd260b622e87ba8d6a47adfa830060af408a808a4e064524061b23ea8f824244456f8940c0b19c4349ba0ac24d8c33fe813bb29d8adc4e026cbd4939af30eb3a0ec34f2db077eca35d96a8b687e1f208f8ba313870bef48a3eb27bc245a32605a4804c20cf8559a9309188060d175d4081ac91a76f7dc75d35100e72e500b941403db279496190c7d89e0392233a59391877cb701132aa422e83c76091e3126c361bcec7d0558597f59330016308ddea9221a30e8456de1f140f34ecc922e966184db04e902a34ab612da36e8323e89ac7ff189b4bdf7f6bd37058f6d7467944e779108910c66328f45292150cfafc5a2d54c68cf5f24a30aefaa70e22b8736fcd33cbdebb250f787f52c47ee96f08e2a42f8a771227a2c28da5bb8635140179cd9d7f881ab01e93b5cc9b9ca56be581966908f96d8a415d44e9d8d3b44289c9d6f7c5b47afee9cd0b7122a550819215eb4cb4a60142a63717f74773ac607fbfb5b82db9b44a043565ec234d6826d5fe3e21c79c6da34e0ded2a6f680c3568cda6066fae9b800f955e469fa5b7c31190daf3c40a727bde2cd133d1b0b3be7bbb80d89644186e55e29027b16aabc81334c53d9cd75468141fd2431fe5e8b1fdf8f6de06c8b88b6db4cbe462540da8a59cf9a7d441907b240e8ec2769894e5ad284949ac281b6cf9afd9f985b7e3134c9956c5e0242999866614d0617f05166205e4362dd6a22ac3847674ebf6013c8516b01e5caf3122e8d74346f771d770c96f01e4afc386ef00607d0120a443b1f49275611e07324a11746ee3df8d41fe462b42d4fe4c65413264ef7722c9f25ec87f1c7de6a99e4dba1f453fc88ddf19061490b15b49dbdc3e98b94fa05f2ccd16c53f09f9ade73f74184ccbb77e495dd0dbba7c2f36d622f54d4418858000642ced0994c6458980c43f61a6136958ae436801fab48411fbc1bcfbfdfc73d5718257d23efe7ddce13642b28a3e47cf48efd4377084648588445880b7d108be8d0701b1e8c03cacc3cba6811b59f07c7c01024046c1f782025ad500a7d51fad40e35cb026e4789398c0fd2213642c9fbe0d594e4e55323436ce9e361b1658790aa564e9ea9ac765a7695c2aab343e8450c7fb4ce8168463d0690291236aa44a7c44b3cc24bacc44a08044eba8806b11013a14de0b4982ecff8013bf087eddc8719d30e369eefdbcb7e0e153936aec51d96e2d4f92fa24b54f6a8085dca96cc03f677f05d0517e1081c800370181c84437032c0229f37266c1b4b1d2915eeab45988ad6f3d44ffd422a3ed9d93308c5e7b94be16638084600012480e36014208454c00010506171300e8561222a7b57388d381998e337f7e4ff9b317c4fdd64394b8334a4833bb8813bb0433a02067c301d0805db7bcff7a1d761fb5c83c7da69bc57917d34d169c31fb56541a34066da1122dc74608c0ac521c229b82d457773ef2a572609377f4a6fc99dd956dc9bf35cc877e8001fa0a11d8a1496c0c854ecf02096e95f96c9037edd8e7e6397ec0fdd71381d8c82842008a508e134a1f1dce8c789398a8fa4d03bbdd0128d51fa1497af49edb0350bba5d32eec48db811178b9b71a830b34458cf73d3393bf6862e11cf22bda19185ec4af994de28476abb229123796139d1deaee6aef4e52a98f68d7fe88e8071400e89c369700c0ec1009452a733cc543efa3b39b15d3ab28fd8013b6087d901da96cc2a10e0eda4be67f7ec965d60f7cd684366c4415228b78b3c160de249a0fe7e2af5dd04b7e016dc018b21371c0c07c1303015825e26bc109575fef81d8e41f6dda73099e25bec8e9bf84e381b8312aa242d24964306d6df589577d4f8081e46d5634e08c8a474dac50c0752e4dd1d0e3cf21dc0ba93d700846052ffa042b03b5951f1f0cd5d68b68a8a4340b781ea2c818f587d46c66646094d04ffbba0f9ca94d1194c85f346f20190295e724564a457c0d5587cb548ad1d40f1a56c68144774523a99f095cbfda01950b66e3539aef7b2c10ba889f76fa5a0f56a3120c3bb961ad315d65987f961a322d68f0bc5983b23b5309079e7a42de47fa84e9a7fea8d3fedb34d0173ae6f0d2ca03a1ab45d927fb0b9a76129753abb358e24200136d5636dc131e7191275e8908c73d943d63b9aa5f6e9c4cb7272088d871cc0dd5ea897635b853d5573e25588d5467e931da2eebdb449e248186e16b721719e90e1c1baab1d9e689441639c953806e070861c4c9f912d32349650cdcf0b94381451d10eb40be2ead712090bd0e9df82fbd11667458b477103a99ec8a65cf6b31cd3526ccd65f0482d2001e459bf1a00211ec58c8f54caf40a04120b4bd07f04ba3c37e87ff698f3e77832b12771168ed96ea50ea29a1b837efac3e43ff62cc5f2f693fef863ca64226973c5a5fb389fc59fc064adf17882789320bd3d42e5bcce429de41d30f7d1928efb4a01914804e508dc1fd1854e77dd9df1644011e5dca6b4ed8a7b814d819053db46fd22cb83416903d8ec55fb40ad25c751bdb46aa7ca6902690fc911c755b3c20347891b50f86cba6b490e151fa126dbcda74f130d28408a3d95b10334950c84a8f38d29e3ecf24601b67c28b841d4e99cbed5fcbe2504c30b40b7175779f70cf3dacc86d1fda454a3ce0f3347eb5380f070ecb75e0f1e7e0f8d9699028c412e745021bf1a3bffa1f108c200916b5dde2bdad1b24381a47ef6b5a704eeb047e7592725e89e121c796a61b9e11e052f9ef119350722dae5c476cd8ea02a91856f6d1c63f5ce7ccce7865fdd180a528c2ced962cfafb68c2f606afe4aff52b39da4217c3777027d5dd5a05c5a1cc85e9463a2e3dda04042f8915f070b4bc1a33853af102e72a9a6983c0f1c60ab16e306d4e0fe5717c173a12a5cb1165680412a7d91c730a375dc984cdacabf976cdbaa774b81f26f5c0b0181400422b80af8a0d88b150be82f43b04622db86040937eea8f8aa6fc1486db2825a1a1b08446d7c4c0df4fa828195a21a2e450f1777206a4b4e11c9a10357b46f5c0a11567ce918a092d9b36d6ca3042708241a6f861843ac68c5125419f1b870794925e65668a70cdd699d5b51b9860b37cabe3d44541671db64ef7f28d7a76a8d6754d94965dabe6c64c26e55dddaa8154742039ea4ec5dfb86b8736731bc91271a7571c1f137faf25a4da79e51040bc20554053a2dccad2bfcf69309b8a3b4175cdd5de50e5c0a24f57167db75a400eed70b393209fe3d708d584e5725eeaf5b60ea029616d43856dc19221b0e999d4a070686d2d0ee0d7e0befeef3a07a5342698474a638e016da6c3df839912312a0276ed38006a1d2f0fe040af5dd59520b5c2a1be1cbbba35e95da4869c0daa89b8bfa9333c56e559048c748f790a77b0a7e2bc4898e6ba697e63cb8232d65527abf6f285e464f4d6bc870c58ef81d5760ae56bce0881b3190c67f78037fa85585daa6d5c87a7cc0957abc7f1ee328a4eb7ad61f9f9c0b3362780ab0d447054c4cd347ca0af3b5355e3691eefece7c84fac0819d0f5c1163a595629e0140aea6365fbaeba40a24993808a13d6c3586c5932c29181835fbe05a7d049620fc8f162a1612777f6b19ce1d920f7db7a2b02f1f8973010946ed6e37a5010c829a4fb19170bb7dfa3c7a018f8fe0ff4e4ca4dc4cb6243199fc5664f51baa025c59f034c9c512f8c8d3a93112381b0d09b42cae83da6129b9fb9858574d5ca7fd76de42d8346a782967ad0759d0efecfc694e7d0d8c271a97895018a1c2dfeda6a400043f7c6bc4d9e229e0dc5339aef7e04df0169a603c23a424042c539b76b4e6b36c32515c18f24a2df7e546318056471b7b8e47b2e2f3ef4ecc036df94d99de20025d75ad96e12170c24f6331795250fe63a5cfbe721e4db632389e6f7eb85e89b59e81c6c8585d8fba3b2905a9e9864a73d0aa109cb224fbe6486adec7199926484539496b9d7e0faa20ebde1919f64cf2cbb8e9e78db42c5b93174ea9e81c1c2031943cefa2872952fd7d347ad0847cf293d19811cf248c0d44b078c0f6e3017b4157bd30606ccdd7790a246c2b5badab983a70d8340ab243b9ec359b02de050e4a4f8845fb61ca09d4c7b3abbdb3aadf0ec3bdc3647d09d85914f5056dd6515f8c178f58a4cc45b2925ac200eadd76413b3cc592395b7ff107db6b90e9bf9588dad736dda18a3dd13025175f75b13978a0ad1927298320cd74388e01aa1daa32995155b0c06ff2e9a9c38d01b1d103fb045499bcccc29b1d5a660634c06eec96fa1f48221f8c157ba56ead2915cb659b0ef2a81e851bde9d6a6397e0dd4b483858d4538030ca5e0c3beb8e720614fa5e267fa127c4b4f70210e000c1dd4614d6306d3bc3bbde7a45b60dc1ce3d5ea6239db58b480cc495cd9321825298f8e7405663e2a330787a64177da8982436be871d0b59c90c66178547d8a1e81951d194d690f12fc13142d13a59f2a10f2e84c8a5f48f58d447a5d3d703c9c5138309162c379497e5ce666371b6ee8d520d57976b28a3760cee2abe93ea2ba26912aab1cb0362db25278f503358e9427a7746c0652579f8224f72c0b4e108792a38fe0669a932637ef641473c275c1cef947bdd31b7d0de338c573181cdd69f2a8faf0075141a5121f5938cb8bafafce65e2a389c188b9bec6d7dd729da0d522c25f0c9237929910d4a0198d6185cd15b56b18c287744409c14ddc4e729a78e14f76ba6079ebd1962007e6b5a697fbf361ada7f0b0fb06287c356a3f58ff6cf73c5febb3d68c7b20f58e4eda7f84047e15a8a81d87d6fa9bac6e50c4ddf7931de7461c7b04dee8866c203c4d449e65f14e8faa38864d69113a5db6c307dc00ee9de20e1ec252382d571e7fb46c1c1232d13d41b0ef29a371bf4e3b9d33205f26a27c836659553e1c5c7c0501edf08636f24296f0fbb6c2c8b4d42c21c4e86805581b5c8255beead40cafdad4bd947425802fbee7890e896d5ab6f16b524156f3ba56b73228ad7b0fec948763d51a35cfe32f13250b3ea3d82c6b648dc843702096bd0ebbb5275db72ed8562ec980e406d0036a467042b295eb0f7d79c142a1bbeb33eef49253979912834343d4396cbb7c0bf271514f20018ec69e998b51f75dfee9778f2c5db7fcb968fb217b0bcf3f8a24666c295bd592520f4d02ba5fc1d774eefb60305391ed733cde317bb9db60283cbfef60ebaa6c6d45b8aad16df47c83b17ca39725f9db1d31327414661507f8c0b9c5a1174c5a2d35c94a3d42cdaf86cc5f0aae1682e4a8bcb82a27886d48d11d462d570d99f03046ee00d4483168a11682986a0bcdf2f5987f69f44488643970f0d957be2b367a141c33e885dee061f609ef820b6eaa6fd6904e04dda71927a0da26a999a307bd9ff531690a20ab434d45cd0d5045bd5988f3681111edbec4cd0a7f637d71ebbe502fd6fd4cd2af25072f0e8706b3cc39efda02888768913682514aa53f946a1b52841b80129ba6335bf7a501c744fd24a50d59b4aaa5f8a1f110a8b2685b5168b7c823c9dc97281c4de9680d4059a443687bd2e85d0387048202558f1c238b433b9c704ee4cf8773846eb060ff542976b3bb140255cfea5e6658e21b077957765a70b88cde5a42d904b5a57a7ab5637fb800eec1a111ce38ddecfd7d3a3294e9af34bd82a7d6c265722c48a34d644f6ef756e26785850a9d6b9bd5ef47e252d5cb91a230e7c46838344383333371f53ed40695ef6569eb04601369221d59c7cb318ec3bb1603fae1acfccd20cb01742311d696baeb2c62643e9389c71779ce242d495e89a0b7beebb0aaf67a16a94362f035bfedd91e000fd81451c457979a2733d74238a30e3476a43012540c7a917fe938ed45aa9bf69a28015c809e2d742b54bfded9d2a6571a788099ac561e1c68ab303dc068be84dc73cd25bb3759dda503f019a6b49cffaa42b42bee6a3345329c5f35312122c024aabaa5eb469723dc52d3c9749cf214a17e0ae20f34de242d1c9affbdd7c4a9ad3d8c9801d835823206be629ab504b9fafd7199253c9e1d5f6a9601b36d322e084e464d1a69e2e10f80963df0b15396275f22ff11889712a883cd18cd0a392d14f57ad5f9ba77754ea930396dea9fbee17e0faf6085c9514c94199ce1913d70f9fc1f0fd5a691a75bbc2030ee9eabdb949b31a42b0e285b38e8eb01cb661fcb20c13f0ca51c0c2c074d8adbe9d0455f635ad0f876b6aeb711def59e4348fc2369d4a1b888c4ae7b4f9cee507ac1e90a27c9538fb30ebdc6b05d6be345b31465e9c28c122d3157d6b70dd3689f417e6dd1332b1458401731322291ef593138d90fe0c9c6f21830c39e3fb453c32cb529dc9d40bf65bac7a8559c02aca2aa23da361692dcca9d0632edc42746d5c9cc8d6078f4c5fa37938c6461e1daee97a2060f313f2ee0a163eb7168d97e8eae19014d6613d15bd14107b29280dc0db51448438aeb11ea45c25441983fc1f54d763e30eccacab0489150231850e0aa053f8589630ab783df51be730cd20c27ea2c517820a4a30344c25542c12b177a9ec6fee3da7cacbe403b5d870924b37b80d52a24e2f14c43102513ee6a4c346c4613ec54032db6a128ed45190131b46ad0b3719d7405afdb7c1235f7a96402824aff71241c53048e54ddce2bb2a6423959e9901033368cf7bd9327ebf2d579f2e49bfd27f8ff9dbdd3087b62250b22c2686ba08bfea1231cc287db4a5f3bb829a20155be3c892b03097615228805c1f72cf00f11af44f0a97ad8a072c6dab0b160dde3a1350a58567167a8fc8102f571a390952f3db38f3a3cffae35de6f5e8dfc71caa4692ef09f717ff43adc91d1a43585bb071fdf25ee869960f4c4140f9cf519004832afdd99524ebe597fd469fb7708a50f14351e9d44fe5f8fa3b3526fbd112d39046ead80da3516505efb8064a3e50f40452e82b3f7713d472f90fc93ee64374f6db4d5bdd7c5f854bab6bcb45a9fd56412cc602aa2266219c2912e9b67f7b77632be30ea56ca8c56d0583412198a3e0d971cb4229b32db6a4769f75af4507560a1a78a27f3ca584d21a565a076c7130712a38293aa624eb32a6002598d85743f4d40f9d4d4f544c9e650c00d232b29a4d3b49ee5da866af249db575045c42f0c54d7e9a084c3c317ebf609985cbd18ef588e9def7be38b9c3ceef8bb9919578e8f6b01a7c9bafdbb9e75979627887be05e062f7f286986a7fdb08f1e61cd72afb1d5923709a43b5bb036dbb0130cde1dd745c4a09a843cf71acf14e402241c9ad98df318cadd58e5882772f91d7ee7a62b232f3d86e0c83d301a500e203c73b99c55b61f211e74321a87d498356ea2a638d3d282e13332ed1eb62423e8e9ca773f5aa0e9ef0270a33c5defd0a4e66c3ecc0104a28fb499b1bd5b84ac6fa34658567dce5adbb69b9428533ebb65d193eb22a89a6618b43cf6e6af0b4585c99a66a26db1425c565be6411ecb415bb1ec00b4d621052d6118d59775683d15b2b0c840e6c0a1e5cc1f23dc88ea06701fac86f5fb065bc51bb85de2967aefbb026e0e0a9caef13340d45e4e7a43b3f2e890be94c067ac147cd56655c696a9de0c07ad39746468ce40dc84fe26fc6d8acfad8121e7439278241bd2244401d6d02affb766483545f760b4a74ef25b700386bbe88f6eed1052df2f4a1a85d6768ecd44d463d195f4778612c37497e861efd01af15638927a5f037151ca96e3a3ebad6a22f25e8636ac586deb1ab0a083604e9e428479f3c86dec76508fb23bfaf07f198a03e7650cc85d4724b89d421b0a394db29f4532478ff1e5e96f8438791fafca142ac3830124928c937ee2df92023c5bb653b5e000392933e783e9ec605cc6740c0fc3056806d6029d7f53f4b04ec0400cb0b13b8c16dd9d879a38ae9c3c40d3fc478addf9e81c8b594d6eb2bcdcd7fea086f8adbba094b6d108386b31859fe89de7d56ed42f8a702c5ae38b17a03427aca0d47e47a048fda55f8d27a97d080c97000dcf3fe33b6680eeb3b10866135e679f3fc60d6214a3ce90904a01a2ba062d25df67c238d1e8801e525d2df2b41c343e1cdaff9d730c42545777b6596e96d2ad2c617780e3c684834183aa5d9846f02f4c8d97301c1d0c06483a03a3bce517f6a45799286afb40c5a0f56b6830e5f4b3b6d74fb78c9a434cbcd4421ae8bdc7a5c7e92885dde269799355ce0a32cc76ed0acd9b0ac9168870eaa9c9dccba7c77c6fb487f1029f691df45113c00c0e0285a69f1f48a0952dce1e02dc8398ccd7a7406924464229d4e38f875473ae44d1bef728e9ce661439c2550630466a9bdb7a70d82356b10e1e899b402af69218b21718e1f5c5ba0f6216afdd57a7fb9c5f829c83839cf07bfee380f585a968e73b06a6f394363e37cbbb9ecced735dac36b2273bbfea5cbe082e746c84c83f6da60a87aad13aa9e1f415b710770aa4b7e70e2f06c179b8c45e7e4202e8eb69ef1b2a04d6617946e1df3ea283980583bb3f251687f3a171935d0133626ddb8e17601c559df4e25431474bc1aca22a3ef75451cc99ef408f807bfee72f0bd5ab8a49666e3a20aa281e398f3b4c922748c0d1b51c7aea28c4bf76584754fa8fe11fc4eef6546ee1cfc4268a6a20ab9f31e6f95c92c124319e94fe09333bcc112fb9692419a1124174a3426abb00fa0e48335b060286673fb47550905a2ca702331fea2e1c0ba8c01937895f30419e9e1adc9b9d0978e9a5242b2f846ad3f3885a2cdd09fbc79fbd4fa8514622731ed566c77380713c62d691916a04aafebc880ce9275b1906107830d6771744fbee3e0a97a8380e20c4172f0146a4c97d359145022afba660f3aeec8cf2e51340074d6db64da3d7ddcce0b88e42993fa0b508290a247ffc8b906fd4fde2d7ce1db9aff3e66a344a6ed3e334152415793ed69731665cb56943129cd45b90af789821422c5390f91a0ca9954ef13588aad92f4310f0d569da08b781e545e6199156715800b8c43f529e72aa870c51d8ed69efafb14cb1f78c48dd8520bde3196514ed7f83c34ba79165078864d4a19de3a607dfdfee53549cfbfa42b77a851a8f1a466fa4bbb84ab4303aba751a527b7531b93c4d358e39c6ded1f4862f9b79d46937416bb169201ee9841b507e300f3c0428b931557a4d38620ac9d4fd4937975b5640580d2dc01faa99a596d135d35788e21544a44c111db859753db690af45db09161ad8d30db8353a8ae4cd368597b7d063babc8aaa5a16fa333ceace8051f79dd1dec60f7c77ba194217f5d0ad72ddd30e4200993f6f7aad3e027884a049f21217f308abadac611e4880ecfa02f1881fae34e025988fc690eab09f1552891f0bf9a54f930b6f225ba6de1739f5e1cf2c87f08246540b758ef5cf2aa918a2d59d8f8f3f81a03a9b407857c2b4bf5ca6d8b6964c85e2c140803c018e80d159badf640ae9b54e0adbc50a5c28c6970b93b060e91b2751b51c4b8555b230d61adfac7dbad1e948842851efa59715759268f8fd4d455e6d611e97e45c0db01e9bbee6268346a4caa1b1e3841c4a19f205bd83b4a9cd3dad410e51ee67138c3424a0ec7724291da14ff6f185e3c89fc483adbd2579493ee0da934e8f029c1f9d786c868171bb060bf78cdd549e8ab506b233a9f4e0b984cbf0cbf7c70ff576586293cb0888cfab259dff072bcdbb15dbd31eff406ee5ccef95e0d3ce92b81f7aeb4761be56884347ffa21021cd70ca653b2e37171d4c44ac13b43b664ec57a094d44727e755c28e5499804c410c46412ef050b35f892fa5196264e60eaf2407c9f7848d8638e70d740a0445d46e6456cf176aa207dcbeefc7cdfb32e4890f499b79d8a68a0505a8e71a7d0ad7ada8e27ec6f20b9ad51398c39b057c0de85c08f2d151a468fc2449c1682d7f333a2462b8793b596be81f255b9e9d0d3a5f3879576d7414e54c762bee02d25e7c83d3d0fedf460a87df8958877e60c30cb4fcc7d6f31195b384a8cd1db62c8d73a67c38b72edc718d9b7d5d3a678ab368336630c8aa1d2c1b556921dc3f4600eee230cdacef8ef723c888ae84cfcf4ab95316135bb05a40d4806587775001d5c617903deac92128d5a56dfc1236d417fff8a823f30eac8c5ea832471e361d7a9a4a7d753c16247ca1b3c76bd26e088667c34bcacf2a97b8c10f378f1206f38af56b86fc79e89c7d4e8b26d5cfbf5d4c24626bc4b1424ee8bbb0d4a6dcb1584c63b00060168500877731d5a376c00838ae7c7aac4436920bcab62e0adbba18e7230437e74940b3719b134960a7077cec20cc3096b7da80a0fd43b68c4f0c1012015e9eddd7dce36ae53950f2e187b506c08be30ce0d1af792be7edb15f6d12353ffb58783902e587405668e35bdb0ef200c46855fae39527ca08f44bad98b4e7aebf8c93eb81139b549c1aaca348d9a64f3047d62a2fda4da787348ed77350b095075023f1f74a2421e69108d939750351b9c3866c94d40acb0f30fe273b38198978924ff77580d82758366220e9dea3002ce6075af12107e55cf8dfcb02d8d971e2469073486271f23c340db5282e3b8778d42b1cf1cb4920aba248e5911de81f81f476e82449d13041687061586627f122eb63b84f093e8a6da3194d9039dd291129b83bc23e3f5e68a672681ef3c4815c3cd0c27590285d863cadeb61b09130f006aa2d3efea875cb4b42ab25048aff74be91985ceb430201320368645d42f8e51a2046d386048a203be24ac07155f7e434291b4cacbfd75d9e832bb10b7fea5425966f0370f47c64f90ef0ee7040b4ee79fb19c3a6e50aff566345f49e57f2027b109ab7896d320df7019e35290ad54a7ac47d3feb4915da70b503370532654e67194f99b08d5c613330de3a6137aaf009077374e2d4b468cee5a2d4779d937264ef089b5221d7cbbaa33e697fb075c44f26dcf56e3720483c6b865fd36a42ec4109e1ca200e864643575b56849648453fca36ce9dc004413c27ca225e757ee0c1bcae03a2ab44b3017ebdc873217b7c1cc283c07a30433f8b07f719aa707a0a2849349ed7a85abf61b81be5373e6e869d4846a573298b41639f3482a224921da50d13d3b7386d460e3a6977b5b9dcc6e0deea941be1b92aeb18e8f891e9d42b21d45bf2ab4f0998ad48352aec29fea88f36cefb3f0f64b695798e613596bc95f5dd0eb98556647f5d04c3839300328e2b8ae2d3f39e646fa58c192f53e272fadc0453386a336298bc0a93b094605f311ab11d0caf0d7db614302eb204f3d1033c925ca9e4afe51be81c064f4b1ddd23ca70cccdd5d3df7ef9db9a34926e097a16d02e940c6f1d9c99aa0e99078e75bf6d27e0c555c4a8cd99fa996f90f150740c069d025bc4e89b2995236197428016470d0cbc0d91ce593145f1f9b1810c4a020443a98247108d7b4998305be464686ed0121493c583f21a8e2ff8fefcb7ad0cd17cca8b6957b8336c2c87841d4a287a82e14ac96f241fb5c931cd7d9cb3149b66145d425c9c733d7aed0f6c9c93b0ec8879bc1c98e78b4b01894a8bd49d23c03139cee3a0f21ffc9e984692127bc2ff7b80f5eec06e185c20a096ae6166a75ecccc3af9a18bc1ebbed66205c960015cce289e8c7e9a60060398f7bff5ea3551ead1bfb5a3d1244205185b9d2a29bc328ea22134f1d8f63b69e9b1945eab27748bcc27f2e49ceb865343da10639f2a88fa8ab983df79212201319c4c3e30b6913fee2fe03babb1e97bf958bdcccd0e3831b7c510bc8622a580241edcb0270c26cdd3cf6ab42cb08dfc2a55e64a1fd01b2c249de4eb5ef84ff089ee532f24c23cc3c3532d1b00d0db42de76f24cb0a0a0f9440b4fa649e48ea18b3223f4935c49c2079c5003ec61658690a820ad6b463ace3f7a9c134caa7cd5fc8ec57840d660070ad74a7d8eeaf653fec284a0fc971a3ee8eabb256b8c78dfcc563cd4c2b8f9d9d3e5f93b36cd02e2f28af59ad08651b522f9ae7b41ac63293c4b4d16408028addfdb8d865f5a698ecf88d499a4416a08b233b57c804199a153486f7e4d9deba0c92eb08f0e0fc15dbde453d28ac22223b7ff8407785f9f954b1da68478b63546431a9d7157a0224ac9ee84b79e8bb4a68ca55bcb7766cdc20bafa401447a1f30ca61217e416aafb632f4942ef3d01f10f1aa50d621024ee96cccd585fe392380a35c550b7b0cad17a30720a78a42b5b20889ade8f3e0b8bc7a1172173e5a8f10603b973d647ba9c99a2aa06e4724a66d22ff576bbe1eefdd320e17d59c27762d0747bb6517fc7ea73b540ecb0e4ea68895680ea08b487321049f4537213c0a9c560d5e4ccf3714060dd7a0b95042eb108d2c8badb84894019fac50248f844dc8f39387265b481d7017aaf93b0c862b0f839884ce7dc4a7ce331a7e51608a7401278d540fadf40ad3e14c659fbde9f7bd864238258e0a0e6ead05b998b4f9e8b0689152228c8cdcb911c63183ec439b7bbe2633154b6c26c9bf251d3e9ffc563b6565ab5f09e95b8862ce268ab6e86e60a23b0dc1d079463c151710039a9399a8e4f87a2c3e66ed7ef4d2871ebcccab75355a62a693f43801f079b8ce77bc95d3a957ea26be993a67e48b8814c5582909210025e196ff38eaf2dc830fa94aea4c969790af8daf083d5609fe08c384a553873447d7226c9636505842551f2019660b3106f92ff57d956936452eecab5be717f83c94527c8c1b7df788964e501235f5b6141ca4397ef8f524a037e596b9f3c0870f2a0a109b9c3a0c41bf3130727840b145925eefaff24744b635cd4f04970794f4815ab81d3a6823e71b1c6e1aeeab46227a19a9c87b2eb44b8a7a0133c33e1607c400c113640a8b0fa777993e8fa8992b1fe09c04fc33728f98e964c149d38d2af470bd3c3556126c4a05288a14f2b8ab8de2a36e721a3889f60c54d1f05278675cec6b6da464f02056612ae3882f8ccc87761a332095d4feb873cd29360f92ab6f84c1af529c1f566bd1ce1da39ac3e9617b620014a590c6c72a42eaeeb34e4bb4d25c13de9d687d3d3da5e72bfd4e2b6239b20345d64a4bfaa5281eebb7a90c0e84de247fb9402c55ed618660ec9026393e6cfbdf68b608664615b472b5dc17705f4951d69ec344adedf5300e39e34d151d51746dbeb561b8fb740bf847011e99778a168237ec6b98e71632c49c4c4d91f5d8c0fcb2c2154a21b4842845097f494d9081a4243046de60d92d12075a0a704db53ddb18f94c7fae65bbd876a7ec0799598911d7c11f5dd6917bd72c32a1602de4458eb846dc5db7172692773110d596a4583b64513e4ce299700e70c06639186a17538e5c8e35e5b1d5229b35eb9c0fe089586a5c8b0d0d7a9ba7c81efbf76c0ce5c5745d02761993554bfea895e55e8985ba20a50185c01e90043574a2ff71167a979bbda94e7590f119cea2cc900c7cee9daee93d7c3292a270504bd5530615840519b384919f0599c43ebda9c4c5b740f12a431de7b2a4d5216a48d0de8613e6df0838722f64e50dc8cf4cf8a16b76088e086b0fd5b4197295c004ea6e7bace9712f3b9435b2563177d3ed4906098642c448b87aa45e8752aaeb1cf8378ae8ba9288e78d12445ec0db62ffa253a755e300e574eb02bae1c689f62dc16085c0ce8b5239148308cd91e9b386991bbb628134c0851c336a5800f8646db2f1ac3d4e298a429006e7727fd00fbdc0eb272f85dfdd1cdd86e3f06851094378799b7b9a207e208b8dc7bcc5991c014e3217ce4ea0501f2463e4b4ab94f9cbf5cb73d7cb0a541af076f0118061366d9d59d5be613ae30bf1357969239c3d4d0c18abb921733fa1512a521e43814d9f32fa2bdee574c4a27c2c9ceb3d152b085cb7432ec2c0a12d966bb64364839c1736fe23bf58afb4289358944ee9eef3a56bc3f0fbd1cb5b800ed105ec155b18c49e57d68b68b4e6adfb62fa7c8bc4c6cd31d0a90a84f1d07b101d37f2f58d8ef31ff6b66d1118f4fac61a604ff3752ac973ad483ffcbaf9bbf54f0f8ffc4c7247134218021d585cb9d31722da0e020a89e1b15504b635bf10b00e7dffc534293713aadd7c8920c740d054a01ba31ce5a3450b024e9f3ffffffffffffffff63affbb7acb2df0615abb69489c4bbf44be1c937a594524a29316c4108c88d9f90558138ce7e78900579058305dd6aeeeed018645c71031d400104d424f1a184628ed6a7713b42576d3e925036a9ea614d0e17759f0f24943c8e6837257b337ca3033764c8d0a1e3081f4728b78c984d0bdd30336c9803c287118a3945b59a78f16af3c64711ca969dd4a60d19b3a6fa4184625c5a7cc9256ffc4c3a8c8d1a7c0ca1989ee4982135b89ad4e3c0f3218492e81ac42997d13bfd230866cb788da7e308e311e52881103e80501ca1c39c52933d85c9d260bb41ba4f2cf0f845416563a3c83775f8a2681fddbfa3e899f03e6978f4a2d4f94bec55159de9325e14436a8d87b34d6b78eca29c1d3aee4d9898c34317e5cf1e6e2b64509b9da1b6c32317a5d22b0f75559250fa448caf61230569966c9c53e386072e4ae1de9f94767578dca22474cfe5492bd9a27cd5a9934a9344dd18d5a2184f8a3fe16a428bc2aa260db9b2cda27882ccb51d46c7d450cb827371abb536b51aeda924b966a3fd279958947cce732e51322939f91eb028c80dd2f35f634bf0784539e95fd19be175aa645c51fecad85b51d03d267d671a8f66b9072bca27f77b6e51f1233ee3b18a82c9d93a49ee932a4aca8310eb12635edd3a150525e34dd0b1a2b6b74445b9426b6ae99b90e29f53144f8aebdd71b113db3445514eeaf1f33e391a844ad18a6badc7d77daa075d9ecf4d4851506f72232789493670788ca2182795a02493dda61a8aa214ba9312a5ecf4fe9c5af00845490825427e040f5014538dfaaabf92cff77fa2dc39c6d751f6698387274a92a7d0e1f5bfdb04cba31325c19498a10499339ce8e9f0e04439bec6fd9da025af949b28094a70595132c79323d24469747938e15369d8dd64a2d8bfeba536094dfb1b268a291f848adcf7b6c9b94439c89af02fa95ae258afb03ccf4cd9f2983d45c7ec9cdfaf4449c62b41e7e0a619756224373e806cd4a0b1012f4a944eb95e7fd40f26c49b4466a679f9f19ab19b6a96e2e93bb4c9a484fd9228a7cd4990266b14b93d4742ad77db4f99ddf93561e3281db246f6c60312e534dfa56b46e64f3767e0f18872093263f2134bb8ee93238a269feab09f4d439f23edb8911a51be123eabc6b4b4eace88d2a7cda96f7212f25844e10413749aa7080fca5244b964091b53fd597b6f12513c953954a7077d216c449483a7d2fba77d163a868dc7218a1d223a6b7bac2d39a919a214d2478cf7c9c953270b5112de4178f0938f8107210a623e6693f73d873e08acbc464fd5333db75d6bdb836cd07808a2ec273d5da6e6cdde63203ab5ab7f95af0051ae8d9de47b907afca12ce23e9c9cbacb21461e0f3f94e34bd89920d73e94425d3b53ad557632f0e04349091fc374123bcac5e9028f3d94cb4eec328609a593891e8ad9a79b41c5f6c8435194587152f4c724c6ca030fe593ba633c69b7c71dca3f32e7e912ca245175193264c89021a388e0618782967442972083a7cdd7a1a0757272f339128d1c98edc1830e27a1f9f6ae39281ece6f36bec9350db6a4430c1bcfd6040f399446be64f31c1487f29b8e55a7e45b93071c4aafaf9397739393b7f34609d5071e6f28c587136de2fbd6fce38682acd5d79aef3a49966d28091aa64d0a9de363ce86d286b410a2fef93f774f81c71a4a72da8ee8bc1ff45af35043b936957834c14db2bc3cd2907c88ed9998ea98678588b6fc4dad77bb29e38186728e99b3b6d5dd405ebfc719ca1f6e7ce437969534d360dbc10d93438c1986682ff0304339aba9b76bcfe9a4b91940dba183841bf0284339365cd58934c9044d7a90a154828e899a6c2fe03186626856f7b8a54497907a88a1a46557e362af95391f86d28d123b73dcec018672d4543a851226997a3dbe707dd5e9ae6bb995e5bbdcbc55f97c060f2f946dcf7492c293a4b4765d28493ae7bd30bbb8504a2d4d9250b2fc73b45b2879da350d4f623025945a28deae8e36e936f3adf2c842d94bacd251b25327138485e207252b1f34c753627c85c2c77cd22466c812cccc11aebb496a4337520a7e00414269ddfd7b3d79da6a9d099023ec76a2963227f2163aa2ad375a4e0ca554066284d29ea792b9994c9694428a501425fda4d2722242f146091e3ff2a45bc921432809a2e307297b0aa1f031e7689d217b5278902094be3fa6df98c35d677e102014e7e4eec92408f3ec491fbf28c67ce20942dc9ef8b67df8a2206f94a44788f0a317e52d732f5945989cf9e045e12f4e5d096a74ee27a1c1763976e0c08f5ddc872ecaf321de739f4c2e4afaf46ac925e8338c060a508e12243692064cf1818be2ff67c9271b774efc3e6e51ee9cfbc574902364334ff8b045319de06132a6745f7753f8a84569e6c3abf77d1a7cd0a258bb9bfaf67a624bf9318b725af98b1191d260934549ca7fc6c634ba5d37170bfe8045f164f6f63b41563bb781238c1a3a5e51ea70b2b5627228cd9e1aae786e55a4672ae5e8f2d18ae27a1a61ee694aa87c3b6e88912361634541998a4b4ddfd8f00c7caca298ba3b6a9e24078e03c1872a4a1af6e4ec699ba5a2a0a9f2e563a4b843478e1ac98c6403b3a336f0818af2e5aa98a8b752aa3c681ff8384541a611239314cdd3b6860d1c3ad474b8073e4cc177493abcbf6f68b0e5f82845a9ef7d76476ef8db67a428758cf15bfeda6afa1845b1ab9975a7e69e175b26883cd9717ecae41fa2286916d379b9ebf234fa0845496c6998187426edac41511e11276589327d7ca2e44952ea5d44fbf0443966ccc8c851d28962f84fa6a9ba1d2626e144414b091762936ca2541bd765e6cb429d68a2986da5793a6de6479928756c52b5397f67444c944d693759922e5da2e86b92eaa04ba8ba2f59a22cdb61b1a6a74a94dcfaf3b56a26a17c4489827e7f9bdcd6493041348982876d68b75b519d214994ba53cfac966c5ae21f8972dd28d36f3799ae3f240a2aea32277d25f6cdff887295647a1d3d5c57f98e2828a94d7364bc37c8be11c50c4a6ab813bda5eac388c2ff8c9244789c7df42ca2e87f1fcecdf4e993378a2889cbce194ff7892806d18fdd3c9631668388b2e8a04e563149b4a8e610a50a1525fab9c718940c51b8d0a6aaf9d66da74294f5c4850e4d69a34b8428e6f9cd7525cd4c1c0da218b322269b6cdad4ef82287afa471344be8923e38128e70fa7c164ac89517540f09d7f23f64e7f28a9cf9ba4cd781fadf74331660f6ae12f7f25d387d3fa499de46f9b0f2555af27356cca6bd77b289abdc71cb3d34329dcaa4f90d5dd1beb3c14e7444d71562789ae351eca5be2865ceae6b05adfa1344a525927f607d1931d4af2a38fdbc9a8e37d1d4a25c8ddc6d149e6ea4c8772d0e03d7ad43c8752c814fae7f7bf39cc72285989a6b5533f9d8bce369384170e05d5317512fd2596bbfb8682b576a63629265eae1bca9d4648bdcbb60d657db9f174fa938e6ad95036eb9272e22737f144d75092623cdb24f17aeba46a28864ee9693a78f4d7350d051ddf47971a71eb494543b9fc644de27e7a86a2d606f1ae314d3b9e662889197eeb7492fbc7ce3214c3a48893b43ddb29930c250d563efb2e7b1ecc3194473bb46df0520c052bdd34b2d12419250c43e9e4f0493e4925d79e100c655142b593125a9412835f285f678bae756813445e288736b3afb8cf5d9aeb427963a488754d6e1d1e17caf74966d7cc399f6cdd164a63da294bb04f99acd342c184faefda3d793b59164a259a30bbe7293ae80c0b25ed3fc95e435728e812c7acac36c6f3562827f164b62d393dc860158a17169ffec7740ea242e94cf80b8d5e7d4ca17c23d64bf22b8d49896d60520b3ea450ec11dd4a19ed486ad0d0e13a708831a33ea25074f55b0f26d69307258dfb8042395deb24ad55da4b861f4fd06dab36536bbece622e4f0c0df24fce39dfeac309e5aadf74331bc7a490d3b8616c9820213148d0f8d184829a6998d217e220a140860c1ca41c4c288512229e6489cd7c3f9650328739bd234c286eee36b126843037a9c8128a399b0c6a3ee66bb361105102aa29464813333bc868b0f18e48122c6f1041020e224748ad6b36eeecc511314239ac9df831c9e1fa83a8080539fac3674f9c74728408c54c4aa812b3079942e79121143fa89055caac24f9931121947d4d644e77759246876d8804a1a449f4d3a6dd21461d0142e124fbfb24e65b4fdbf945496fe3ec9bc891e955882fcada724257e69cb10e482f0a6626858e71ddf1420dbbf3ceda53d3d349e97117c520fa5fede4125d4d52a58bf2e8f22c959924d975e6a21c1f166a731204c145497a120d325b591620b728a7783f93d1575be453b62896924f1c757296592d4a5af5348ae97f517274060e082dd2f53a6d7d19f9ccd1711685b78dd79fce974549a82b63512ea553f8e96efeee1c162599cb5ebe4d777cb55f51b8fdd3a72393891eba00e28a7265d0646ae3e67c42a615a52a9336752631b4785851fe1825d6c7b63531dbab280932be67ce1cdba34421aa48af2c63aebe2a6b76aee6c5d3baf7e8bad1435251d0f53949df3c69082a4a1bcca489b6bb9053143bf3526555fbd264b820a628659aa8d3b641a528998923273c9c2832931052147d637594cdfd3726c25e026414c5d3e16bca4fa74c621f01228ae2b59ac8c7283ab529ab099050a881a2944992c3348a10e22efe849627ca9a54b642456c88bf209d28c76c2e25568d6be8ca06104e94a4e71c27492709f23c4f830d25d4a7c35600d944a96eee94c9d589ce9ca141345132a9b3e90f426a1e256c032413455dfb3f3977ee9c3633a33051328f265b697b8989191a7fa33400b944b14bdcd52625a6523289ad254af29aeba3ca6b9528e960926accd0e52801841298083da72fd34e46da9049980c49600b2091b8a469f1d23a80020840a21c4d7e74653a49ce32790432fa9c988413af50b723cc283e6f258979e24694fc2cfbf4468df93ccc88b2897e9332a409b288f2699c12b38bc731195644694bca654c8f5342a589f04ec4bde3743ccc7564bb3ae44e081bf91911e5d2304287a81565196c25400e5192ac6dc50493d67646431464cdf7471d8d7f93a42085284871b351d227b19418d9305fe3861837cc9f8500428892b89dfdc4750f03904194faf34ddafe247f57021144f1633cd1673569150840144d3649064d4abb99faee02903f9808207e288d3ab9d3798aefae3506a40f85d377d2494a481393523eecc1560f697968081eb4ba35716f2bbfe43b541b4fee0c62879212479507e9259aea155287c2a90932ef6353103a641fc81c8aa2e412d3f82611de9f4b103994a3cd6f7b38796b7aa301240e70e842efe46eedeef24b56c81b0a1b6e2b4bf61cdfc6e486f2c62b951f13a34e79da50d2aed9acf11b3c6f05614349f6fd1244cb354b944c8002138800b286b2bc3b55c7439403881aca4166932f55ae54299334944ff89117fd58ae39090d05d5f964350deba1a4e80cc5990d13fbeebe3f44662848f36dbb369d329462347d92ccdd3e282143490c3a8a7637bdb7228fa1a89e43cb99882c497cc550d82043060f2f234f0986a19ce274d57c6eb84c0d0c0569279fb0ea77db25f585b26c50df91fe555ef242497a9afa133b5ae9d877a1dca2574bd470a1d42563dae86c463dd12d94aec64c93ee9204102d1493507b529f4c5274d02059485fadc235e6b0b96a2c54667669b9a3b117569e19e3888a8931c8154ab6f9499d52ef5b724c02c40a65537b26ff7e6cfb6aab502eb95d76a289fd964d8592876597bc9fcc32bbb682009942f135cf7e281fb70c9717112052285b774952b5e7865032240ac5a0de77b5c931661c42400522804007500001b31c3b706801028592de3325f364e3c7f509658d6aa542f39658f2292714ed5a4bcaa097b9798434a1a0ee4c76af96c7181a8409c5fca9f294186b4c06d9120a33ae5994f0262514f4cb77126e7e3fbd360448128ae7f227d70112709b80d704eeea1e108107948c5c19e680dfa1638c1c0508c00ece045e8c1c381400801d3ac640010102906860c6a0c10d63030102d09123fd18488c1c3812300200040000000040004c1846c7183698000716d0011d3570180504a00800d0a1e3c8208000cc0e836414200066874162e4907100000ca00109c8916cf066878e19331600800030e00058630712238c29ec0087147084f15128f5888e1cf713148a1bfc33c698f584e269ed31efa4a53b4a34d878c170425935f66fd39e349d3c34d87680e3c348616c18290c05a3095863470e1a3a6ccc9891003098803576d8a0a1c3cc9891003096b023e908238561003094803576e0a0061a63c68c04809184c267f130257dc967f4d0e03e1be32c8c9463060e6aa019c86dc78d1aa8e3468d1d394e000612120ec408238c14c601c03802ce988100308c6067688b5e5a886014a19cdd3ca4c6d9134b18c12042c97bc5ad3c963a49be8650d84fc2576e0c18422827951e7ce4fb6dba3208452bb74dae319dd8270706100a325dec94981c54c658e4178ab7bdb5adc9e7115f944e4b6a98a8aa1edb89f4a278626dc9595b5e94bca39a77c9f4bea387811cd94559737510d592ee3b670c1d3350c2404417e8b9129bdc474c6e69b09de5a2707a57f4d6ccb5c85e8d03115c944d0962336a4ee2796a1688dca2a4ab6374b6bcc48b4b838daf02115b9433fdbae7843c2d1fcf183ad274ec6e20528bf376586a10619d4668318b9345c1f6427a926a359bd58ac4620d165baf3019aeb056945d5c344b7528b74e6b8e1d3822ac38297b55cb2c59310db66403a3828baca2a4b3a5f56e3c4988a8e2b24aad2e17b134adbc5351f6d46c3a94247c29e98fa0a2e4c1f2cee5739c894de41425b5ed1fb77354d7b91153944f301ddf171ba2b3454a915999c99a66eed685faba8dce75213ba4115294c4fc7092a0f37dfac551942459f3e64c2e7b1022a260b3bfec0769285ceda0153f32890d149f283314f14451afbacda396704aa813452df94ed3b7af91132591117f92aa364990fe264a3ae47d1e314296a8494d144764fc943947af30934c94ef44133469ac39410669443051f2abf953bf9a84cbea12c5cb0ccf5955abfde79925f8cc1cddb111bb9837b91205e9d64199d8d7699f8d50a2f027b7f49b124f17429328fe6a86d02945f8fc18918431b2e4d2714d9f502412695a76b8ab9e6eec9e6c97d929e963ccba61041227c31e718e28c88b6b2e29ee4afa341a228d6004dfe99ab5f39a3a27a3d95be7414972d839755a046be279e179f7ae592aa2249fd59489f12f2f5b224ad7bbf1548f0e22cad9a45bc84d9f35298f1ca22073b84faf7bd77b6fc410ac959da7659b5597ec1b2944b974d2f8e9f7ff4ff41142a00d026594204a9dd963da33dd924549204c0602a220d6631e7ee733735a07e986d220471a015e8eb4a3c60b227f3019e6b982881f8a59a2d6647e45a5eb7d3019c587b33d9c8cd283c9082392079371a3f110b943294ccc26a6a2539c1cb44349691343dc83bb2387183ab20e05a976526f36a9dbdda383c9b039988c1844e4501a5735b945475d5b53240e253fbfd6d03a6e3a9d227028bdd9aa9d9ff81bca1d4e8baec86b65c91137943667ed109e22da6dd486f36cc6bde5643fc6dae3a85dd7cb86c47f666927d1c81a8aa3aa3498c5ae86f2493fbfd72046d2505a93754cb6a8ec378286a255ed98ec30c9c41c46ce5092495895d472c40cc553a2c9b7a679925d688b48198abba1d3e7b417faf626434196a017b2e4ad4f668eb4a3c6192132869226bd926eff3fed298988a120bf59434d5499ad31128672cee41b6cfcf27d35113094c4602567a3f4fb663df28592349a4912f5f688170aa32fddec36633ab7225d288bde13facdd4e99374225c287e7db6f8cf7d7f2cb205fdce7b6d4faf8572ddc97c3e31ddb7f648160a26fe78be4db18e4147832d8285827653e6fb73e2b4760a44ae801065c27e35c71951aaed41c40a6b9bdd757ba76dc689df269dd34e7910a9c245a860326a0a25f9e9fbdcead2c4a58e8848c146240ac53299e97b6a66444ea0e032f6234f2866d9b19027662afd4fc40945138da349dc249dc628d28482d8200a864da86387592c874110056110c43008e465496b131348201038200c4683f1903c1366f9011300818b42f1702c128b43a16040128418048320044210848110048118c4209649751e851650261e6a64589db613d16ded23f87631d261b4449164da43dbff931721b03b854feb34321963c25ec1cb76cb3911fec7ff0db63da8cea92cd5a03abd17c3633452d996eb0e84f7ed8ac9ac8f63af2be38cf71bd167cb818208c02393187bd142f4e98ac476a465c55562b368971fd8254ccdcc9f4094a3507e3216fd660061a86c3ed80256f5d8e928ffa3d130b92a3203841126fd4ab1fd241dc9bcdad475c93a8343ec57610bdf03e7ec43163bdc23fe59a7192dc147458646d2aa53354cb5add908a526b72c295cdc25b25b1dab674ed135e6cc274a40c236e1ddee1ee7521f2c02217792dd7ae8a73ee6f79544bef4d42f94dc0cf5e5edf0d818d3eea4fe4fb67078f9a3e17299bfacf3be25626aa4f97e6e111a647d7285c5e24626455836688e096d26b35cca65a86d53e41ed6f34c8ad6379f6b4b4654874e97936e59deb053d332c1aae48b0f89231172211086f26db68f88431623f0fb0a59393bb25b9cd0866dd0600f1dd3b859a53a92346b7fcf546505fcbac1986db07f166046e0f16d6e93b6ed36db9a5000c35cd327f1a9a55e000a11067bb21e7b670be83664a2f375bd7de24d78ccfc7f7f152a89eab3d0b8c9ee6245990704e183a59b242d64b5886433b0b05904e76465567f712c7fab39c500c6bf21e3948fd584753f999715f6c4959e8327510d3fe6a57e0ceba8159dad4c226af0fb7bfecd9011b8d6af7ca920024b1a628b1a8a98fe02028d1d08a4f656ec313a430c44d044fe42901c6951e91c103cd61a3e240eb563f44e4684178716324076f001472c40b943a0c7f5aa6f4cc81c7804a0ace9e618fc8ceb141d6948baae47b57c23400a2ec33a3aa8434fcb87c72d4e6acdd11bb6e5ad8dbf0071b3a64d432a1f5383c8110810564f1e63e02742a547cbf11ce5318771cb5fdb14039ec8b5e73914cba4d0585c9b3bbd7fec9c36fd2464ed15dc219461cf0e81138ec64c3f5b099998dbf9fb66c9c01c2b996562879dd025e9c426f771c881bd53c7e8191ecdca6016640e2bc9611a83dff68c395837a6050ad15315c073c261661a9ee0cd0cefdcb30863e389fc7e2ba42dfc52c77a7c8a1e0ab5d00d13ca1d73a81b3e8c84b27a1df46dcb04f754c35c7f435959ed7dd2f5b3893023950b6e44b2b8d0dd0c5d1a64e266d1374d5adfd359ebd68917863a13a7d6a92e0027db71914195c29168072660be4231a58427e728477548d6ea86f835b37a90a902a1246609cc9dd768123aec619db633881b3dc9cbe64ac62d040551a6bcc9b031b8f5062066b09a32566cbb221c18bb38d17b5a292236102071e6dabb1210f6a2655928d95022a118f7688ba1ad3f2447ed8fd689597ff668647c6d52b1d6c248ea3e296ccd58e7c45ed194cbde1ac1d5e1cec2eb7d39da0902b2c771932e0688a7eeef6b9c34c2f3e32367c69cb7a7c54545c2b28d39d6e36c440df9f093baecb2e1b14ba5b04f9ce2410a88f40d17e424b297c3d1ba63fad0defc27438fb133740b53d9e271e2dd802a6e619b495a42517c7066e3e1d14d314b2b1b3dcd0958f62129e3dfbf145bc665f2d4a98accab28e60361397b6cf36b68f910d79ecec4fc78e5fc929b5fdcc583fbddfa746ebde0e6c81f9c8a2570f962f7ade0df0a19ae4f6826290743dcdf53588fc6775096f4f7e2cefd5be1a3500d4acb3a11ffee0f2d1f1360f02d1143db106b3bb4833775bc8148febb1d77533875153e45ef1d9cdbdc3f4c4059a640bfb75df955285795267b1d87c595c94bee7519cd46bbf287cfece0aa6c327ee05747473c5dd83019c3b83b4b24d436301d34efe8d83c080f35fba07bd1a34e43676515b1e44fc4edbcfbfdf807e8f443e25f641d080046833a2a2744a0b567fda5458dd5f7d5b98249a5af747a699f96fc5c00a23cf44a278f4dae861d10190be154bc4896e9a4b197c2cbd5933b63029a23dadfc3452919875c87b90d966b7f08df4596c611187dd90ad11dbbee6cfabeda8ae06eec32fd8529d3842429f39033637ef146262eec541e7b45cdd78b0d9c982422a6107ce581c1c17603819e3d568ca4a059ed64316e0eb6e725022ec6c0d343e9508ae9314af05e24ee375787f6a7c78adb3d87327d19290e75291786a7ebc40e8e8302231a3d1f0139cea710037edaa9a1676390e1c4fb1ad7f5e112bd88b4e5adbc676def4c1d9f80fc21d5c176df8cb3f2660344718da237f28f9191dd0929615eb5c1f8100c8a38e7aed9091207f808fbfa774ecb6e7af971629feb881a82c754edc6ed2fb0e4de9b322a2c5317f9f465349a1b16d9d1a4041155b0a06c27e616ade83db42bac26ee757ba304b63a20eca0a703036f987e41c13729cf30ffa3381272485e73c5843c3468270847959f99dd10523d81ccbd72bacbc8bd566ed708da2fc310f158accdf18a231b0a8c4488f1536bcc6e597323c30cd8623b784e09fd52921a67242c434258b89b4301db8444387bbe514c41456cda8ff305f5d8d6cba0ec10e284d13bb877161b6037f37513a0e3e1538c70a489e1acba1484f153af6fddf890e17dbe73a1601df7b7024168829ec55a12c8b5c7a5ac6354bf165ba44b3540bf7230d8970b5a5d49973d7ff59282e2a6fbb9e5daa20b404062f145d0285a27c72702ba5d5a4621968d4342bd948bf7653a1bf2e87224582b4586a5b2f13a30859605295e08e7b897b165a62a3276088607574cd76d374bfd056d0c5484a0cd103145bd1bbc1a399124406152bf29d245efb04c0df1e3ca032172527b825c53038508d77cc4f848058eabee4c508f4fdf60860912a4289e8d63da40024c16bb478f30ac5aadceb773441b65e1358f397770b7e45be065b6c20cb039632755743597058241fe3b81210caa51142879ce61dc6eb09a45c59dfb29e9ddac956c1872b3d64557c0ac4dc428ec2ceaa2361ef15ab06b26e5cefe622cf9f31a2c647452ce77bd17522df5087b763d3f657f55077806b2eb89f9f13f19feddcf4169ccbfaf448b08096df3ee40c65662b007b2c99c970cd0e5cfd008be333425eb950054ea26f74e7be3a315d8748e6684898ac039ba078f43af6cfa57bd336a441b69f11c76ba59ffe0b0d2a2aa64cdbb262d3b5b02333aa82550d4ab882582aaa129bd44c30360833707aac3299bba1efa7bc34fc948e116e1347d4fd1a96eda68188b8d1d3e6858d930b89ff1802c23d8b0be1b21519995a7f48a9e600522b870ef7431f50b8c60c29c0e5e778cda4d503c067dce0d06eebd7865258585d7a31ff484faacfe44c983007f4ab5f28bd56a6c51d7191a23ca74ddfd2321330b9239c1d93b2155a364d9673c2789e86826a9d7ec2635912276071222a8ad4a3d999d6334c316872315037286a9d42268d1933e71b6098928cfb648c9fdc85ac1d10a309c060d26483af7537ae7824ce79dcb1dcfdafc7ce056f3f5ef499438efd396cdf42ba7b263cea1b4c59efff5661d1891da92041b4aef5825a8a32942ba90aeb1f2d7e48c9a79ca58984485791b6e28c8b6be1833f084b861849445d4fa71f572348513d47b1014fae97672869ca8941572f45d0e5b48a3de9fba40dad830ba50c7471a8a1db29da709417e6e5451361863504ec237546105889cc030fc505953a8610c34c364f82c03cc5b264e4af46fbcb47cc332f7fbcec181d78e9fff5a217cc0a22da02a587cc8ae4e3031a71ec00e933f1636a3a22ea6366d9c9e864593427195e7f05335ecbf5114c8d2895ea85a33cb4f7f0005e5640e422d9f97602a854cad6158e2dfd0059b7140106fb9955c56bb6b70c9b3aa971bde59713d39765771afd5a6df6ce727ee2b1eabaac12aa5f500673539ef92449e84749bd3ca61f34ac20b3a86f94c9a8535fb2571131131443d8a3eb0310fcd1197486934688698d8865bd935daa1ca95145cb0523872d53a30ecc9b17db1b6061df4b6acf543f2e9364d2c951b4fc596c9346506f7515270a1eabda19d6d1e259ee2c96e03b0f99dfb22853e8fb49c31fcc6c8a18c16f4868483bd6754c49931bd184650c04fc5fcb95445a0b0c8b49621d7f4d861f17532d6102e82bd207d171d4efa70508abfbd75e058f3a18c0857ac5adcb67e2e9b97794c08a7ce27cb04296570d9f370ad5e2b44f4d419c1f6a5232b13e6094ff934075cc98a4654f47bf51bb9aec695f4ac3dd28bca364f72511c16755e58c5ad20cfe69c20c052853c8483262c91cc76accf40202d5057e452e1700c0936f25cf437c0564877e0c2309ecbcf6cd01687e51603842ea1faa78a19a882dc4f09da947516c0198f2b34d3839f57eb8717c182f9b52eed77e86085d9afb579c5a12710421f50c98110cd4ba8cee1b33e16012bfad42949c547572d8c335425063a9f389333bd4da8c9990e2666924de76c4af691b9a302b1935cd64f1dc3679fbbd2584928dd4a58a0d46499a05fa92e008b7c2fffff3b6872103dcfc557f1568d689295560b17dc6e4858200fa9392889bf0c18762628f2b7a43c08291e32d5d49ac7f34c60c832d126d5f499086c32e357c79e7b891c7d2480a4a304516949f301984c113072a3ce370ee442ef101a72a103893efc83368bdc1e79ce917640a5d25b2581ef19601564a56cd919b181ed03682ea8b1c1510642344669c3761b25c152f70794b29593b2c00273039edb6068c57b2ffe256cd5fbc41e8d096038bdabe01dcb83d4fc043b044e9c976e977a293f80047b7fc65215cc9bd0bce0097bc11c75f4ccc0d7025a8780c759023943d79aca90b6b33d90ebb0469badbeaf741821c448126041d6641db5fa6cbf25b383a35fe2822db8fba515fb5602cffe91359670f73860291a2ae7273a1c408bb1d9008cb3423fed53b557e839616bfd8e209d9e3563cc06aced594ba99536c24416124b9fa4262987e01753adfcca879026c993d4ab58adeb922b7c2a1020b60ee6443dee2c6b461ae71e8b6749c51d4ddfa142fced6ad9b4e1e9f642fe968e80bc1c35b25e655f24b21c75c04d6751c84bda981d7f2b798743833508dfd9b6760e2c2aac7e7920dd581db2c32b67349f30141518239a93c3bfcdf9b1ffc34ec572679902229f64586beb5c1f1cdc77eb1829c0d1cd6508d987eb462fee0c2b0d42c3ddc4f24453ca01d30c503af4e733090536228c634944c3e825f037c19e7889d625a28f97d0451d85a6f2f19cd2b812a4486c5b520e470a5f2010f33b781d197de325702e347d16fb195819f954a1b20f31590bdc329d2a51004f16b010911c6d15b0f8bce060778e43c36e39a921c8222983dc7dbdac73a3d41c32c5bfb9ba1a2c5553c235ea1e63aeee850563fc81614cc778b66268c6b8e73de344aa08c9cadf34949787e1339d43185cdc4db624ce9f5c06e7a7f1802216584370707c432759106b81f94cb445e2a555000b6ec56e566f92e52348cc68b18c40922e0be04b4274a315c09165f51578267438344c13e7052edd2a1d5552b3f0a32ee6941e15b81a6c6c7735602730d52693d44d022ae32824a0c7b184bf55e46c1252f34b6e612e2326eeb55919ea871a47acc32ec19ac6ff65f9bf6d774f99fd60d5f036da575e0a49350c432a625823e7db97ba3d356072681fd81efdf1ca5e9181c4effe0b12c963617d9261767795aa80422c466679d675686e077d7cf4e0d4b18db624c7999343ef7b911b35eeab1ac7a36b2ce9efdb9dd52318815eb3a5546c089440b45ebfc13b964548283845c2faac217d0cc48b3d02d2c7bc463199f93f37cc91de69dd402e126fd47017e07a490fc205148f1ea63bdd6b3216b6b3e6af6b4c0687f6d2d89154bc09aaaf36c1361ba5d4cd9733e5afae129fc4d37e7a267534b550c67256642aa52f7599b1f8de62fa6a105618d54e08c0018720104117307b322738941ad98b603f80b11ef04c88e70757767b7beadf21a12ddee344bd73fbe5810df148da82c30c3e88e470050c2397f401248196a6b795d640cfed0903f475d97803c5e00d74198d75356692597c12678deff6c967fd51a44ca748f6d1a0ee8e8cc9fbf99e5d6d01c88c0eb74653878d1ad67c1eaec2e31406b2cf584911f6dc0158b32ef8b9ec83d7d29992f2a5f05b9735dd1779ff23ce1967e6e827ddd5c7d3d747278950cd360cb1360fe9ef7f273ea66b3d88707ed34ae8db1f58e68a8d2118bd63a6b2326c1e384f49553a97700a50fed7a0601459b76f43cf20f63521d4ca1b09c294ab4f4e05a735d4e8cd3086e03b53f3570823043fb3b2f3644e5bef0b8eb9536614000c732e703cc5945402d1de7346ba39242c5d48ebc91889efd7b45e1a6cc2cf0379852612328397aeef039ec266d29baa7a1c8d1473769b57df0d4b6d4472459c97bda1750365b503d22ac907192d813225e7a0e8f36bd0ff6dfd36a7d35c83a249d8d3d4029d55d89676b92176c136323c4497491a861a40f46fa636953176234c938047cca3a741446df86ccaf23614613a7f709541c07fb58327486ba17b91b1a383811afcaca3378a8a989ce3c8d75f228bca40a8af8de3ab4e58c77526cc616202db1f6688c4d206033a0488ebc679cd820d047241a0f9221c371a09", + "0x3a65787472696e7369635f696e646578": "0x00000000", + "0x3c311d57d4daf52904616cf69648081e4e7b9012096b41c4eb3aaf947f6ea429": "0x0000", + "0x3c311d57d4daf52904616cf69648081e5e0621c4869aa60c02be9adcc98a0d1d": "0x105a595f76d16ed474bf669465f7760d8ac3a6ac23bf8e47ab0bf91ee815cba83f284a26b85f39ee4edfd315d9d679638655fa1b271f033dfa0be167dc93335844d40a5a134e831c2311b939b811bb7aee0ca571f92d52784d35c43c9fb2fde36c6233ef754398ae4ee816f8209de3791fe26eaff064c6c002bc52936bd117c425", + "0x3f1467a096bcd71a5b6a0c8155e208104e7b9012096b41c4eb3aaf947f6ea429": "0x0000", + "0x45323df7cc47150b3930e2666b0aa3134e7b9012096b41c4eb3aaf947f6ea429": "0x0200", + "0x57f8dc2f5ab09467896f47300f0424384e7b9012096b41c4eb3aaf947f6ea429": "0x0000", + "0x57f8dc2f5ab09467896f47300f0424385e0621c4869aa60c02be9adcc98a0d1d": "0x105a595f76d16ed474bf669465f7760d8ac3a6ac23bf8e47ab0bf91ee815cba83f284a26b85f39ee4edfd315d9d679638655fa1b271f033dfa0be167dc93335844d40a5a134e831c2311b939b811bb7aee0ca571f92d52784d35c43c9fb2fde36c6233ef754398ae4ee816f8209de3791fe26eaff064c6c002bc52936bd117c425", + "0x7474449cca95dc5d0c00e71735a6d17d4e7b9012096b41c4eb3aaf947f6ea429": "0x0100", + "0x79e2fe5d327165001f8232643023ed8b4e7b9012096b41c4eb3aaf947f6ea429": "0x0000", + "0x7b3237373ffdfeb1cab4222e3b520d6b4e7b9012096b41c4eb3aaf947f6ea429": "0x0200", + "0xc2261276cc9d1f8598ea4b6a74b15c2f4e7b9012096b41c4eb3aaf947f6ea429": "0x0100", + "0xc2261276cc9d1f8598ea4b6a74b15c2f57c875e4cff74148e4628f264b974c80": "0x00000000000000000000000000000000", + "0xcd5c1f6df63bc97f4a8ce37f14a50ca74e7b9012096b41c4eb3aaf947f6ea429": "0x0100", + "0xcec5070d609dd3497f72bde07fc96ba04c014e6bf8b8c2c011e7290b85696bb3048fbf15fd7501d7fa66e865f8710e3373bd7042e4ee89e363dcea7ca2f46f118d5b5962967f3b09": "0xd40a5a134e831c2311b939b811bb7aee0ca571f92d52784d35c43c9fb2fde36c", + "0xcec5070d609dd3497f72bde07fc96ba04c014e6bf8b8c2c011e7290b85696bb399b5c77abc8db9a172a5376b58ed027e2aeb7093e96e6a3c67a5562ba8dc883562cb88ceefcc3c16": "0x6233ef754398ae4ee816f8209de3791fe26eaff064c6c002bc52936bd117c425", + "0xcec5070d609dd3497f72bde07fc96ba04c014e6bf8b8c2c011e7290b85696bb3d0eaa62d5a6fc84324f063334d367a9a9de80249cc2d39127236124cd65601840387a5048afefa27": "0x5a595f76d16ed474bf669465f7760d8ac3a6ac23bf8e47ab0bf91ee815cba83f", + "0xcec5070d609dd3497f72bde07fc96ba04c014e6bf8b8c2c011e7290b85696bb3edade635cfad607bde0f015d686f4ef823353d5217a87686d3b0fb5e8a46d6652c3f217d85f2ff1a": "0x284a26b85f39ee4edfd315d9d679638655fa1b271f033dfa0be167dc93335844", + "0xcec5070d609dd3497f72bde07fc96ba04e7b9012096b41c4eb3aaf947f6ea429": "0x0000", + "0xcec5070d609dd3497f72bde07fc96ba0726380404683fc89e8233450c8aa19504779d1fc6560c09761757261805a595f76d16ed474bf669465f7760d8ac3a6ac23bf8e47ab0bf91ee815cba83f": "0x24f063334d367a9a9de80249cc2d39127236124cd65601840387a5048afefa27", + "0xcec5070d609dd3497f72bde07fc96ba0726380404683fc89e8233450c8aa19507e9356e04043d4ba6175726180284a26b85f39ee4edfd315d9d679638655fa1b271f033dfa0be167dc93335844": "0xde0f015d686f4ef823353d5217a87686d3b0fb5e8a46d6652c3f217d85f2ff1a", + "0xcec5070d609dd3497f72bde07fc96ba0726380404683fc89e8233450c8aa195096bf19dff4e0e85661757261806233ef754398ae4ee816f8209de3791fe26eaff064c6c002bc52936bd117c425": "0x72a5376b58ed027e2aeb7093e96e6a3c67a5562ba8dc883562cb88ceefcc3c16", + "0xcec5070d609dd3497f72bde07fc96ba0726380404683fc89e8233450c8aa1950a22b158098f4f2576175726180d40a5a134e831c2311b939b811bb7aee0ca571f92d52784d35c43c9fb2fde36c": "0xfa66e865f8710e3373bd7042e4ee89e363dcea7ca2f46f118d5b5962967f3b09", + "0xcec5070d609dd3497f72bde07fc96ba088dcde934c658227ee1dfafcd6e16903": "0x1024f063334d367a9a9de80249cc2d39127236124cd65601840387a5048afefa27de0f015d686f4ef823353d5217a87686d3b0fb5e8a46d6652c3f217d85f2ff1afa66e865f8710e3373bd7042e4ee89e363dcea7ca2f46f118d5b5962967f3b0972a5376b58ed027e2aeb7093e96e6a3c67a5562ba8dc883562cb88ceefcc3c16", + "0xcec5070d609dd3497f72bde07fc96ba0e0cdd062e6eaf24295ad4ccfc41d4609": "0x1024f063334d367a9a9de80249cc2d39127236124cd65601840387a5048afefa275a595f76d16ed474bf669465f7760d8ac3a6ac23bf8e47ab0bf91ee815cba83fde0f015d686f4ef823353d5217a87686d3b0fb5e8a46d6652c3f217d85f2ff1a284a26b85f39ee4edfd315d9d679638655fa1b271f033dfa0be167dc93335844fa66e865f8710e3373bd7042e4ee89e363dcea7ca2f46f118d5b5962967f3b09d40a5a134e831c2311b939b811bb7aee0ca571f92d52784d35c43c9fb2fde36c72a5376b58ed027e2aeb7093e96e6a3c67a5562ba8dc883562cb88ceefcc3c166233ef754398ae4ee816f8209de3791fe26eaff064c6c002bc52936bd117c425", + "0xd57bce545fb382c34570e5dfbf338f5e4e7b9012096b41c4eb3aaf947f6ea429": "0x0000", + "0xd5e1a2fa16732ce6906189438c0a82c64e7b9012096b41c4eb3aaf947f6ea429": "0x0000", + "0xe38f185207498abb5c213d0fb059b3d84e7b9012096b41c4eb3aaf947f6ea429": "0x0000", + "0xe38f185207498abb5c213d0fb059b3d86323ae84c43568be0d1394d5d0d522c4": "0x02000000", + "0xf0c365c3cf59d671eb72da0e7a4113c44e7b9012096b41c4eb3aaf947f6ea429": "0x0000" + }, + "childrenDefault": {} + } + } +} diff --git a/cumulus/parachains/chain-specs/bridge-hub-polkadot.json b/cumulus/parachains/chain-specs/bridge-hub-polkadot.json new file mode 100644 index 000000000000..fd56b61115d5 --- /dev/null +++ b/cumulus/parachains/chain-specs/bridge-hub-polkadot.json @@ -0,0 +1,90 @@ +{ + "name": "Polkadot BridgeHub", + "id": "bridge-hub-polkadot", + "chainType": "Live", + "bootNodes": [ + "/dns/polkadot-bridge-hub-connect-a-0.polkadot.io/tcp/30334/p2p/12D3KooWAVQMhkXmc5ueSYasdsRWQbKus2YGZ6HDZUB4ViJMCxXy", + "/dns/polkadot-bridge-hub-connect-a-1.polkadot.io/tcp/30334/p2p/12D3KooWG4ypDHLKGCv4BZ6PuaGUwQHKAH6p2D6arR2uQ1eiR1T3", + "/dns/polkadot-bridge-hub-connect-b-0.polkadot.io/tcp/30334/p2p/12D3KooWCwGKxjpJXnx1mwXKvaxGQm769EM3b6Pg5vbU33wbhsNw", + "/dns/polkadot-bridge-hub-connect-b-1.polkadot.io/tcp/30334/p2p/12D3KooWLiSEdhriJUPdZKFtAjZrQncxN2ssEoDKVrt5mGM4Qu4J", + "/dns/polkadot-bridge-hub-connect-a-0.polkadot.io/tcp/443/wss/p2p/12D3KooWAVQMhkXmc5ueSYasdsRWQbKus2YGZ6HDZUB4ViJMCxXy", + "/dns/polkadot-bridge-hub-connect-a-1.polkadot.io/tcp/443/wss/p2p/12D3KooWG4ypDHLKGCv4BZ6PuaGUwQHKAH6p2D6arR2uQ1eiR1T3", + "/dns/polkadot-bridge-hub-connect-b-0.polkadot.io/tcp/443/wss/p2p/12D3KooWCwGKxjpJXnx1mwXKvaxGQm769EM3b6Pg5vbU33wbhsNw", + "/dns/polkadot-bridge-hub-connect-b-1.polkadot.io/tcp/443/wss/p2p/12D3KooWLiSEdhriJUPdZKFtAjZrQncxN2ssEoDKVrt5mGM4Qu4J", + "/dns/polkadot-bridge-hub-boot-ng.dwellir.com/tcp/30339/p2p/12D3KooWPZ38PL3PhRVcUVYDNn7nRcZF8MykmWWLBKeDV2yna1vV", + "/dns/polkadot-bridge-hub-boot-ng.dwellir.com/tcp/443/wss/p2p/12D3KooWPZ38PL3PhRVcUVYDNn7nRcZF8MykmWWLBKeDV2yna1vV", + "/dns/boot-cr.gatotech.network/tcp/33130/p2p/12D3KooWCnFzfEdd7MwUNrrDv66FuS2DM5MGuiaB4y48XS7qNjF6", + "/dns/boot-cr.gatotech.network/tcp/35130/wss/p2p/12D3KooWCnFzfEdd7MwUNrrDv66FuS2DM5MGuiaB4y48XS7qNjF6", + "/dns/bridge-hub-polkadot-bootnode.turboflakes.io/tcp/30610/p2p/12D3KooWNEgaQRQHJHvGDh8Rg4RyLmDCCz3yAf2gAdHZZJAUUD8Q", + "/dns/bridge-hub-polkadot-bootnode.turboflakes.io/tcp/30710/wss/p2p/12D3KooWNEgaQRQHJHvGDh8Rg4RyLmDCCz3yAf2gAdHZZJAUUD8Q", + "/dns/boot.metaspan.io/tcp/16032/p2p/12D3KooWQTfRnrK3FfbrotpSP5RVJbjBHVBSu8VSzhj9qcvjaqnZ", + "/dns/boot.metaspan.io/tcp/16036/wss/p2p/12D3KooWQTfRnrK3FfbrotpSP5RVJbjBHVBSu8VSzhj9qcvjaqnZ", + "/dns/boot-node.helikon.io/tcp/8220/p2p/12D3KooWC38TZJA8ZBXZgAYVrceoJ56jNNLJPdpk3ojeFkTAwZVp", + "/dns/boot-node.helikon.io/tcp/8222/wss/p2p/12D3KooWC38TZJA8ZBXZgAYVrceoJ56jNNLJPdpk3ojeFkTAwZVp" + ], + "telemetryEndpoints": null, + "protocolId": null, + "properties": { + "ss58Format": 0, + "tokenDecimals": 10, + "tokenSymbol": "DOT" + }, + "relay_chain": "polkadot", + "para_id": 1002, + "codeSubstitutes": {}, + "genesis": { + "raw": { + "top": { + "0x0d715f2646c8f85767b5d2764bb2782604a74d81251e398fd8a0a4d55023bb3f": "0xea030000", + "0x0d715f2646c8f85767b5d2764bb278264e7b9012096b41c4eb3aaf947f6ea429": "0x0000", + "0x15464cac3378d46f113cd5b7a4d71c84476f594316a7dfe49c1f352d95abdaf1": "0x00000000", + "0x15464cac3378d46f113cd5b7a4d71c844e7b9012096b41c4eb3aaf947f6ea429": "0x0000", + "0x15464cac3378d46f113cd5b7a4d71c845579297f4dfb9609e7e4c2ebab9ce40a": "0x105ae18c05a78be70e49f4495fdfca8389f99173d7f1b4019e077e24e15abd6e2eccc1177642b30456ecd401c75684a9c1cc1c529879d65cc65c32766fcd6b8a3d28d22cb1ad64189d654e3a0270dfcfac27fdbacb78fd65a11584bcce1f01e656d2a621a4e8851a00566daeb02c845da19f19f208f52ec456d4e77600fc41c314", + "0x15464cac3378d46f113cd5b7a4d71c84579f5a43435b04a98d64da0cefe18505": "0x00a0acb9030000000000000000000000", + "0x26aa394eea5630e07c48ae0c9558cef734abf5cb34d6244378cddbf18e849d96": "0x000000008253c5660a700600", + "0x26aa394eea5630e07c48ae0c9558cef74e7b9012096b41c4eb3aaf947f6ea429": "0x0000", + "0x26aa394eea5630e07c48ae0c9558cef75684a022a34dd8bfa2baaf44f172b710": "0x01", + "0x26aa394eea5630e07c48ae0c9558cef78a42f33323cb5ced3b44dd825fda9fcc": "0x4545454545454545454545454545454545454545454545454545454545454545", + "0x26aa394eea5630e07c48ae0c9558cef7a44704b568d21667356a5a050c118746b4def25cfda6ef3a00000000": "0x4545454545454545454545454545454545454545454545454545454545454545", + "0x26aa394eea5630e07c48ae0c9558cef7a7fd6c28836b9a28522dc924110cf439": "0x01", + "0x26aa394eea5630e07c48ae0c9558cef7b99d880ec681799c0cf30e8886371da95d8c4e0034bc36208a740f371f8bb3b1d2a621a4e8851a00566daeb02c845da19f19f208f52ec456d4e77600fc41c314": "0x0000000000000000010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "0x26aa394eea5630e07c48ae0c9558cef7b99d880ec681799c0cf30e8886371da96bec8fda58278126c5774c03718a23c75ae18c05a78be70e49f4495fdfca8389f99173d7f1b4019e077e24e15abd6e2e": "0x0000000000000000010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "0x26aa394eea5630e07c48ae0c9558cef7b99d880ec681799c0cf30e8886371da9a445791c00e77ce0bb8202f63e548da4ccc1177642b30456ecd401c75684a9c1cc1c529879d65cc65c32766fcd6b8a3d": "0x0000000000000000010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "0x26aa394eea5630e07c48ae0c9558cef7b99d880ec681799c0cf30e8886371da9ed0583dc7b08b990b14d4f0d7acf521928d22cb1ad64189d654e3a0270dfcfac27fdbacb78fd65a11584bcce1f01e656": "0x0000000000000000010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "0x26aa394eea5630e07c48ae0c9558cef7f9cce9c888469bb1a0dceaa129672ef8": "0x99924c6272696467652d6875622d706f6c6b61646f74", + "0x3a63": "0x", + "0x3a636f6465": "0x52bc537646db8e0528b52ffd00585cf7044e24461913521058e928e9f067e98eb48fc7d6e6b3e882522660f48debd62239d1e5d9526d1f6bf05cebc3fb7976636c99b8f5f4e957d7f6d9bcb9d2f74e65c61ce9c74947b8a92c36484efcdf486b84104236d97b6fb9655b14de113b138756e0156b1d995608cbbeca0ce4c222f90417cf5b111c0dc6c67afbf36c65f703b9d8f8d9d146c1db66d8f806d3a9f958d90ce472038d1363e5af8d8560ec85476672d859e79546c193c2c036c35e48350eb6165c9800ce4886c7f460e763775140d688d85dced21f948db17290be4f365abfdcce09e640ec11c505d6056914fc69bee7af9ea76d119115072d09416e10aa71a89b329c3003148f91c203b3cac26350c063784c0d380d22b252692ad80c9be131d819589cc1631e982b55f8c4a16c3e7673bef927df7b4f7642c039b9b811b1e8a7fcbc45abf5ccd2acf396245e9ea733d9c546cd5b8f1b110b5adb9158b5d8a8597996891b91bee46c4e60f4639487fd77f8d8c9ca6fd8efee1fe9bf1a1b052bafe07b3688ef8a85b45194725ca3b6df20daef0cd96f4e6723fdb569cdc6dff0cee9c442acc7c90373200e369e725db8f84badc69d78e04e0f30673b69f59eec3d65277bb230e7d2ab5e6ac35878ca476dadfad304f77e394c8c31f214a8c6e1602af2d28288838def4af6221bb0a784f30b52c63234331c0033b9786172995cb44c2d785859e7117d631ecda3c9e56501b36572d1cce0b8b2812bb7c0c5f3c0ee7eb023db8f5d5f9385bf0f3bb23172e162dcb1830c0ecb819dbf261d2b2b06c60cf77e31301818ec8897308612d8118e2b966158c5074f9071290debf3199796c0b10e5430859d978f52b39c8df764638ce7e91fcdbecb19bbab59f9e4ec8480efc5c7deb9341ba30cb8c8756a5e79faab8ba71b12ebf356bc7cb683d218698c3eb2728d7a51e0de2fe56c4e1a9f81c5195844cdfa7029789133d6e04684528ba99c1dd79d600e7cc699a5f166e4bd2fbb962da57cfdf7295fbfca7323d235561b1a86db88f433f98028fbbdd8d18b8c6de062eff4397ec6c3bfcb6eca78f8d9ed28838b672b9f41ed6d49e06517ad8c975b0e6c63951b92d7482050dbbe1030be2746fe9c8dfcebe44976f7f63d36aae9e56457ae13821f779a97f2b477aecb7a39d99db2e0e42f676d643d5d9d103734348484ca489efac85b7f8fdd0e3238795ae3b31d3bcae0e4d9c65b1b91283f3707acac7cf6b4d83dcb9beced88ac5aa3e0addadb8402f73e3b66943ccbca4156febdb723d1ca0a7923c2d944a068e57b43a28037de78c34af9beac44441badd05bcd9650645c0347edc4cc3ceb576e91545cbf320aec5796c0c6cb252e8b58c87cacf74772e942ca639c95bfeac9ca930f2b6fd5ebc35e4e16d92b8f8258f8de8a587656ec0b0381d7aee0deaf3cba180fb27e928b8d7f1b92878330704025171b3133966158d107b950e21fb151d0483fd68bb2f13c4efcdebb3676ce67b3bb717697daf80c3e668eb0bbfb6363e73be346c9f346443e935d26f9358c246620fd6b23c48b5dd74e0838ebd3186afccebdc330079e9fcd2ee3adeb5dd9beb57eb91d8639f4f7b2f1cc42e4e31fef7030073ed69bc5eeba828b4662a5dc3ce49c4bed3cad9732a79851b764e7ad7a4b166e45a49515c540e0e70db8f78b9a5d95672fcac2f3868436ea7d764a3e1e9ec64ecd7a9f7dcfde4644f69603db597f6c6c7c6f486a88a20c27c82e5ade62c539d2b14eb1b1b151dca8c747b20b4457ce50e95f6a213c8487107eb1104218f907d40008aa78a7fa7d54a76eb4ddff01022b3b50d531b4bd3c6c9ffb54744a471c1f7d600acb4748b4612fcaf66bb07c84c491e58d08c7d31ca7758adff2969fc98e2dec9ecdb806eed90935d9cdbf8d089ce7cd012b3bb3b71d919ff5cacb67bd1de1ac3c6fb151f159d460f76c06b5d9c9bf8d1b756dec7b96f136eb5dd979d85d2a0f6177a39de7e90c769701163ee3cdaad7086b1d76978f2cbcec2e37ca082a519ef460e12f37ea2ab1f057e660e179a0ecd85a9d10f08d37de3863e5617771b0f1d9d360172f3bb6bc25b12c9c9d109695f53e0bab10ef8d37de78c3de95858f1d37ead5d8a8771dcb30ace68b20c8b8260858c639a52e1c1f21c1c5d24ef111125b2c5feb9da7e29f3ac54743672c9f87e5f30fe6c9f806ee9dcf579671a7f8d9777e56e24e71ec549f9fbd2c6adc29b6975a6693113155348a2d8c87efc38d48577e262362b26814db77d871ac6f23421b05cf5b0ebc11e9f3f4f341c6b6fbafbbf2ea3d0764efaf2b1971474363ec8db64fdf2965b8c39d7339fb7e391bdf03023ed80f9ea71f8410c277085ff7a9ed8a83a41fdfefc87bd7db87d5e70f4cc63fee6d3f631bb88c6be0f8f0bc11e1bfad88114343434858aedca84b6d3f6b8d3bf5de296e549fa761171bd5a781bb9ced7e76ea14db7ef634ae537d9b4ec1f74f9d7ab6cf1b11789ee6e9d811e1c30eb1a2f69dda577190bcc7bfc70af42cacbc1179f53efbfea3abcf2dc3b082ef012163cb3f2e67fb19edd4ddb1830ceefd6ab67fe133d8c9c0bd2779f78195368acf8dbad1f2793a7b1db4738c254223654f7b5db41a0ba9f2cc58212c4b048d7def6f2ca4ca1bb24228c012a1d9f73e89855479435608055822a67def9758489537648550807deff376240e0dd9779ece5a6316f27ee1b9517cdaa9fb2c3c3f831d6d14df001c3c9f3723b1517c5869a3f83c9db5f6bab61a0ba9f28e2c11d3bef7371652e50d59211460dffb6f4bc20dd977ad536cfbbc1d7943f69da7799aa7799a3b6e149f7f74f5e12cc3b0ead74cc8b8b377eed4e5bfca8de2f357efe1c8f868288b652be314f7cee76b8715cf0924b081ed4862870d76bc6007d18e26762cb143043bacdc607123e6b4849396d3166ebc9caa3871e106891b2e272f9cdc38bd71323ac5e0e6033730b889e204c5a909a7304e699c8a70dae29483931827259c907033c68d18a72f9cc49c6070cae2668b1b199c64706374bae294849315272d4e29384d71c272da72c2e2f4821397d30a4e46b849c18d143747b8b1c1cd0a4e2d385171bac1e98c9b2b6eacb849e346093748b8c1c10d18a72e6e6e700a7393831b2ca73127346eb2b839baa9e2268c1319375fe8b0818e2e74b040070a7448a1230a1d58745cd121021d56724c21c70f72f820870e723c91438a1c53e430418e15e44022c7951c2cc8a125870872309163891c45394e90a304394290830439887280204712393e90c38a1a266aaea8d992a30539a0c831829a17e4a0a2a607353ca841a3264ccd979a1dd418a1a6083567d444a1464c4d126a745043468d979a316ac4a809a3e6a826073538a8b9410d18355fd4d8a0c68b9a2e3550a82953f3841a27d4a85143a6a609354ca85942cd989a346a945063460d116a865023841a30355ad418d5c4a0864b0d0c6ab0a8c952b3821a2a6a5850a3a566a806099a27d05881860ccd156882400386e68826063423a06982a6c8e405531a2625989260129343095319a621988460fa81a908261f988c603a328561fac204860907262f4c39303161b2625ac274c534025313a6221314a6274c48706e988668b8e0dee0b67033e096e0ace0aee0ca70643822705a3833b82db8257043e0bae068c07dc1d580ebc2bd807301a704970417031a2f252d94b0509a42898dd20f4a65947c50ea418907a5304a312861517a42298b12124a3028e1a05483120d4a5c945e5012532a53b2a25445c905253325284a2d285151ca526241490525294a29284551c2527a22c71a39a49023082432a42890a020c1b86981bc414b2185208330b77091995c90605e0a4820d0947858c834ac28e218ef05d40bec8c6d08db147678710263133365900dddec407b43e3828e14e87081098c8908a623481ee48001e90425296c5694a2b0514152e30941cbc2037331a16dd15e8065416b436641c382a56563827585a665930286054d0bb20d8905ad0b1207528cad0b1b173418685994b850da028d0c342fe8a0622333b398d4d88a484d905728898084055217485c2831417aa3648252094a574a564a232891a0d404c90b252448674a4a90ac281191b2504aa2b404e90ba51090dc206d215d41d242aa82b485d210490ba50f948ab62f6c6f6c5ec0cec82e110b9a313824e830c125462301d7028e0a2e0bc7026e059c0ab8293829b8147051705838147050704f704e7027e04cc09580bbc291801b01d7046765fb624282fc9265617b02cd1539aea8996283426cc2d6846d09252d6ab2b84470b540da407e41aac23341a4822483e2e01282cc813ca24f5836b0bc985f985eb08e60696115c1e26219c19a811503cbc8ca81c585d5e55db9c06c417825b096b0426061a9816273c216856d8d130aa41b3456686e44367264217d604be202c26b43d640d240db81e9035710b42f190ae812b4c804021a02698576665251000294b86c65302d4432da15b42dc4274c16c432a51cc8323228a4971c2ea0e1010d0ba40f220ce211221a918c588337021a324848481d9c8440f3c635841a159c88207bb08560e3c13c7319c134c68d9653960b09a6135c689c68d044f207a72e27179c707085b988707a6203739a028d12d7112e334e5ee40e6eb6dcf4401b02978593179712e4183749387d7115e13ae34ae30ac1e9cc9584e7c48d0ba6164c37c8518546849b2f37594e4edc8cd994a0e9818e2c330b345fa891e22aba51415b795b785a78675e17bae871a197786ebc2f70629e173a0a09048c079819580fa20d4c6ec42f3427b414684fbc275e14528bc4426e79287858de092817a635280d62112212a2111e1498179818980da80d30286052c0ca6c576c469b969a12d47ce02de18dc9d6c8a4f086906dc95e9069c9b0c8aec88cb22c1e99a7c66bc273c263c22bf39ef08840c30553156a96a0d9028d174c44d20b19c6a606c5723aa2516c44263126166417346ed074c1e404cd0c1e094a6be8009921865217f207d9b3fc3229ae863d4340b980132a507aa23871923d08c4941e274eb09213a4e9841f9c04818129477e7e825800d00f3d3f3f412ca000538d28401998d2f343867b7a30e02408202740513220a5a7889cd9041ee2470a14a01e209cf4f460600093091c0406a64871c2812a3d1b10c289142a16684a8f06380045c9e712b8e78729414c7102c589142ab6e7872941400068ca0682f8e107db638e0122881f7a80f031d3e02138d0e3e364882138d083644a10528618a267876e2a818b9042c556e9f1a912440492743309dc03040508293f508870d2b3819e0d2c6102444f063200854901a6181ec2e7879e283f208187009ad253a527ca14299f479822050338130dfe41ca1053a4540132a2c709077ea85081e2a44a0f103f5236a0f2f921881f158f198635e0040a101420a000f53cc0348dd001293f50a40049992205c72c02fbfc10c4cf059cf4006de0871e237a68e6195c25880568d30c1ea2470a90942a414401da00949a49049e12841420285536008413a0207e867022858a855265031607bf9e9f0b40019ab2010c3801faa1a78a1420a64871e2e4e6249d6099d98198352caf323e1a1ab26f056fa6048204c2a3f2ac88923812070747a2de91ee86dd1d734ce6397bf69c314743eed9b3bb27430821cfc90c19ce397b3237cf08992169428e1d61dcde9bf23dfade63d28c0d69e4394b724e4a699c909b21ec1821a531b69cb05b36b4625b1884d3a20d79ee808f61f784b1fba2b129166928256dd122417891ba9b27730e3c4f7342ca11ce3927ed86d1489c3c35d80c59ca09639cb39b526eee860c3b36e59e936384b048c3192343d81d3936ec8eddccb479ce48294f9e10ca375f7c12c639218c33468a350c1677f7cd6c86cc1d69dc48346234d4b22c0869f784118b3c39ca388940d8dd9372c38e7332604e1f944208217d4f2e40657df8e091a539a79c73000a480094a528e99c1b9c1300b22d1863c4228c11f2cc30e6f81ed3664a4971bb8131d28e50765318692643d8734ec88d31c72e6103d010d00db9fbcd3609a071389d5a46192964861036ecee9963486dd6b85b6be68ea6863ce764c834326390a1359b2d0819c2ab27cfc973b62c45481b8370cec9b1e54629c5688c0c29e58ecc32766bdd0280010880061ff39c9342eed72c0446ee788020da0ebc98999bad668e23737ccd29c81a37b786a3e164d81036842fc61f74ce3921a5944ee6f998bb5fbfe6d8b1bb6733b3d6ddcddcec7ac78e7edd3b1af67b94369c0df975c3d8527664c92c21378d11c39829a594421ae3b6c56d8bb131ac1b424a69a411420a61a4146b18e86c0899b70dc36ee6ec6e8d764b08219f206dcab01b2b71cbeeee0c72cf39fbcdf9bab5eefe0ddd0d4bb31bf28c5b376f36c026f160e6e6594384104a4a298d108b588c3132c7d90d9b69f76c8d069e0c1b3673bfd7ddaf23ece66686b09967f79cccccb079ca66d8b02184f0c1ee9611d22863ebd0a143070d0dec66669e936173ed1c0d9b1b360e1c9ac675942384102bcda0c3cd1d238410461863bf6e085f776cd8b0bbdbea2827ecc9eff50e2b76688134dc1ca81284067a34306500a2a74a0f1055827092ba81861e2955800830801b00ecf0f901ca057e7e8220800176f400408f9b1a0be80728434c815205c80990140d682008944dc5314de9a14205cae319340000eee9a982012755820082f243103f3f507af00c1a9002346503552a8701a00df4e889e204688a942a549cfc3084140df0b021d5c388208a000240ea061a6a82d03083131a7a7ca0fc5cc04906a6488932049428ef21a2e7c789115034e00307cf9081207e9c64608a940c6420889f1bd339237a809822c5c9142950a2fc80010c04516bf8f991e2a303648801c4c03400051104aa003c03949e2a363d3e4e808ce89912830d504f0606709e6108a021a418d1430002300d4648c1404f152a3aa62a507a7e7e70d29301285582001ac209103f52a2fce004e867035030d003448e0554050ad01003a001861c9ea107084a959e293d19a832440032a601889e2186e8a942450341fce0a44a0f1141fcd053c509942180f8a1c7c90c3ea91b68a0f243cf103b57941f80a05cc0499421a44c9182011411537a200f9ec1c99420a40c51a58708271cc080942a3d443839c00c37dc4003103d4e8200a2c2812a3f380132a2070622a6f440026c62f4ea09f14a4848086e4f566ff54a4f566fb512128a500ad1d51412e228b45acd95d06a459fac1e26242424b45a594f56b09f08bd9590905014824f564f484868159fac9ed04a28e395503f5909bdd57b22f48456504868d5d71316c256123e117a4242fd64f584de8a3e6121a17ec242efc9eaaddeca7ac24242ab557c22c4abf964f578259f303f59bdd52a3ee1d56a059ff06ad54f566ff59ef0ea3d69403cc263e6a78121a0708d05111398c802460dae64f9284b18b109eeb27c94a54b190eb37c9425065e705844127096e5a32c2e804c803e60620b32381e968f9818021926d8e823703a92c882c331451177dac20a67c30378020e87e523112401be400456a0e24bb47c94a58dc844185844512d1f3521848e82cec9e2fa072a864edd9f1f9636eab51738cef291095860efe1131c8de5231334615b0bdc66f9c80443f6a833ffb1c3f2d1125c284191bdd7812678325a6c79769dd4ac14430759acb4328c24d4b0f23c7a878f86868642a092ff81823bac8a955e58706ca9eabdc71acb475874b19be5232c60c0f512322e6dc171184970b126cb61108d41edc95ecdf28d218865f6f22c43940d3c9d8ae75b61b877eefdc4a353f787bd56fdf9614f8d7a368dba42828882a3c90213c022b98512cd9d6c4e58ba44aec17bd65fa558b240863bef53dbb9276b1da1600c6b3d5a5159b7390b616bd5fbf3a35e6ab918706c2fa742411998c356727027aa1e4f0986600e5b6a6d2c3cbad2848527cb75346a709de5a326ac5869f9e84a91fdf1acbe9cd0ec45e90c0d0d81600817a8e1022f90f8428b211d1d1964424460238c218821638422605154c0c5901a4c3063884c14f69e8444fb3e3434f40115147a600519bcc0a88c2b584145ed3b077756336802044e30610844c86204aaf75bdede4b41c6bdf386868686865457c7b2ea06e12f42da06810232446950a1093ed0a2e2739db22c1fc5d33b51c5e72519c31dd8e7736fc8b308e8c212c0248068688baabbf8852a6bad3b1c267d785883104074a4eacac19cf7952ae3ee7eef41c817e9ae2ccb6004318654ddb14aa8dffb0074c2b22c24f1f446e2695d59483b093f571602b59595862743afe47b6874bf779e6e8d3ee3adc8b3b4e2e4c096de085b5a7784c1517b9f154b0fbfb256f7acf58e9790a7ad95951d10b4b1cf0357f2bd30598c314b8c53c48825462762bc12637d567a3ec6a6b45efaebea900ef9d8491d770e56b58ef99a66b17ae32fdd4106476b76598f96f269736f48e8c4e8bbfa58168d334609392b4a79b2325add8d9a8d562c122fa768d62756fa5672deba489d0ecc81b326d1813b605801c3eaa46559e99475cbb2ac58e75714e39f15596fb41c63dc215d07ee90eaa3accf60c0c1df07d523d0ced859898f973c50c6ac4946989f5dbae8d285349dca739ca9ded7459757c664e2a28b2ea62eba70d1459757a60bd2bc3a96ded745d661bf3ab69cd5c1d59465c42fd04b1f51302c17b4be2eaf8bbddbadd3dba7f5be2e347ff566379d8fd1d0775a6f104bdf69ead5b1b474ca5ddce97558af1affde4d3f9a35c57a75ac75d2b1bb3dec3d5a53f5c9aa299b5afd6dacdef8ba78434c26ab54efaafabc575f174f86d9c5522a356c3e4aa99435764230f60c6a345dcd67477a967d76d969ba9a5bdd65d19ca7b38c7e7674d23927bd655996c55a8aaea2394fc3cd083de970237255da31ed9cf9acbb9cd5cdaea63b46ea68aeec57171b957136a336c39e65e73852edd4a8f7c31d1e9df36c1a454fbb74d1a58b52d370991ddbf74aefcdf728e9a49a8454efca924ebb49e7a49fa593ba52bd2bfb2813a18fce47a65393cef71e139dda4c9fef19363b29cfc436a0995ee3d959cb58c976d647a651f23b7690c1917e1f9909d49654a7e4be6134bfd94be7e00ec7edd47cdbea8db6ebd5ec56ef8fc67d3b4dc79cb355c870a7a6c26e07191c567f348b69955fea7690c16515085aec7ab45ec2aacf55b133e9fc12e9a57a9f1569b7ea433a76ebbd21c1aceda46dcef9b4f346243b4fd3cfcb6ecadb8bb292d2396dec94dde4adc8fc75da4db1b13ef3d733a861dd75cbfae14ecd690e9f6595eb68be75d6b7f346440b779e8e9b0e3537d146cdd774349dd639f33c70eb2c9a8e8339d7a7a9e3cea139ef3c9dd10e3bf6d95d1bab59ec6f2b721da3dd3d118eb32e621dbd3a8d47a3dee18e4de7bc93b14ce870637027b186bde523a22c36e3ac35de6a6ade4d4d4dcd79fa6d446a4cd7794370dc74ee94e9382e4fc31b82a326c151efcae2b8a9a3f42613a5a6d3c38d08bd398eeea6de95ad3199fe3622a68c3b5553efb3a63395a7e1d0894ed14b53476bbafb6ccd697832581a33a517876b83a5f5ca781d394e3544e4e10e8f8e1c27d9cd7bb103b07c148229ccd81bcb472130c36650935b6215304b4ff1acac58ecd47943d8ca0a9d68d4d4f17779a3cd71f98b5dcaadc8eb711ebf146747bda6d79c3b85e397fb761eb8d3a33e8139f03c2a4edd5119e6f4ef894f7ce6ebcc3b7f227faaef7a4f5cb3ab5e1cacac941e47c78dba382e7f4a43af41aa9de636f59eae4e3b7d4db7830cce5481a4ada1a9d786addb4106c755a0b635bf3aa8111ffa686baa8fa9d6fcbae9578e0ad417ab9bb45af531bde6350f877653f5a197166e49a4a59586278326697832486965a5f34684749e7e7f9b11ebef5af72c5f5836b76b46b6cf9d273526edafb360767fd8f927702776cebc466dece4c15d64fbd44aa42e6e9dd6a877ade33a1bb873ea9cf7acde130adebe203b2fbb6ad1f06490979fdd5dcd46c53aa4a36ba030b513646cc6e39dbacecd1d1cbdfd755b0629a514763e16462984936218774d49b07adb5a37d5db163e323a0defb356d786b7def447a748e7ebdddd661aced9fdcad83b1ff7fbc840321d23fc9cb0faf485d1ce38fbf47513eac01dce8e3dc0eaee02c197badf4dcf03291932f6226d464cefead3a7df4c5ad7d068a667b186a66fc23622971336831ddb6ed8d1c2ae9bcaaeb9eeba4d8783edd6cdada5cd63e5e08e4dfdf6d7a548bad1d24aadead3df4eb3fe1161d7fba375bdd1065a5a7dfaf3d76cba6373bad5d7a7dd0582b65fbca07dbf40d06ecfe626372d1e0710b4f45924d3dddddd361d734ef311d7356148ef59b13c3ab55debdc73ce29df9d4f6b734a39b5ea13d962fbe435673d50db08e7a4cf9e3679c68b9eac0de5d9597f9d75263dcb62a51ddffd17df0f0bed7cb40bd9c859778cf48f5686b1bb8f7ed26ba53763e45eaab7ad76aede7e56ec24d54b2d8c1abdf68844abefe1683a70e7a563313ec6f957f486c4cf18adcccbeb56b76d46488fd527beaf912eeca558ca26e9d89cb5546f8c275d60d88cca69b58e2d8d51eb9eeded48663b76fc64b02ebb9875d7796016b5c7c41bc2637efeaaf759c9f66d117270c754b773a762e546698f31f389a7b77e356bbdedf1d16e15c7fa75f9c31d1dad9e5e6acfae53ad62b774348d3eab8f1efb755dcf8a9db1634b3b39add5b18d31466bcdfa987832c8486aee0a0f422f1974e20d5d9bcbe3feb08fc6a0d329eb5abfae0fbb7e765dd7f59e753e257a5d5986f377517a789e7e37307b0962b4742c834e3cc9eeb3a52bdfab4ff6d2e5eff52c6ad1864ee1e0ec2ae8c1b3ce83597c2e08a1ce1b026f412c0ffec6a2bfa5bf572f74c2ce377d15eea015a86df67e4b15a82d3c9571d90b0ef69df9da30df05bbd7ddae4f4ed7741ccb717aeed48e7758efb3d9657771ea554bb73e4fbae93510c2cb779d775d17e7f3173a61fbfaf63a1a9e0c960dcd197212bef780bf3895c7b5cd08bccfc379b625d12cfc93a755ac5eaef6a8d7061e10a7d26059c7362216f462b3ac54ead8665956ba74ecfbdc8cc0f7bbf91dddf69bce3a0f84af19ee1ce6c49feaa5a6eba897ab798e7ab8c353fa85c3a6de534dbd279a6abae52a295e34c39e5d192d3dc32a7dd61a0d6fc87d36744ade061cace4bc582ec3ca7a81e4cbae2cfbdb8e942a0d4f86ebf25977813adaabe2d05b9fe7813b4f604efce9c4711c4fc31b727d4a694b27fdda60adefc84ad97d4ad8e59644b3d99f944e69e9972b5d27d56b839dbf27bb75170d6f48761dab3458d009fbaeebba687843966158ed783a66e0c56a96e66084c08abdc1f2911266d88c4b5e707ca444151665f9280937ec91125cd8ccbe6b566c161b9f5d6ec7089b4e712f9dff9ce8d476fec3d229eccc3cae6efb76ab9bf046c09d1e8239f034cfa029cbaeeeeeabf3a19c755f97d55912edef3cad31f186f4ad2b49d7ea6d4b4faab7eda559b19694b25a96f6af9455caae3ed7e9e5ef8fc619d4783302ed9515fb9bab20a167dd23ac7d57c362ef3cd6f9f485acec2eb4d0c2672b6bfd75127bc72a374a6a57ec056ade8858550868efb330c96ddbd9c4baedbb65d5ab59b1f3d47aec14e9d6ad6b59d67b57b4df579422fd3e2b769e3724f28d75f7593be08e1130073e805abf2eaf77bdd15a10be87e00e2cb2394d0f59f8807759ef917779f9b7257997d6b5a23744deaacd036d773bc8e080daca0bd457b362b16fdd7d763bb719a1b9ac3ef2fd124d779f7d1884f035b78112870dc9a2f96641cbc201b15887b76c6a2a94a7d1c0b0d9d5b195f2ba3a79259156f693e16a45d6fadc8cbc6f9f9d3c0f2475a56b1df7acc3fee6b7eeda3ae6464dd8c51b017760d1e333a74e4dd12969a46d291e16c11d8805e6c4bf7aa97d37758f76d7b76d74fbd56cd69ac6c41b729f7d43165ece673b76ec8003b2ecf50b64617f3b76ec80fbd1ec55b15fcfde7b8075ac5bdb3aa7bfd5bbfd6d47dee5b7ee46fb2a0e3df679fb8a8d8758e28558ac4f20cbbe5f20cb6e27fdbe228bdd1fcd6ed77ea3c54e3723ef3e5b766b4ba2d977c65e6ab75fb8c5c6731d376a7ba98b8ddaea05b2ac7552bdbc3d7ed3aac6c41bf2ea1d6265ad67c78e7d6e4430cd8abd3a96d3d2cb012b9ff1eb265d0f586975f2bc1d9156172d3d9259ab6a4c3c196695318b651856344f0751c6bfddddbd80f7deb3d7e1f0d9e2147996df6ffb2cc7efaf08ac9c5dc15704dc813bf3aad931e714412d6495ec9e8ab724f409f50af66322c26725c88cbaf0ddf780858fcffac0ca15d52d4008f9fc572f3f42c897870c218410c646f1dbb8cd4a383e18087f65d9f206801e3c7076dc9c74e4c061534363e24aa44dcbb08b5a5346d88f81f07913e2bd61b5c0f334a57c4f3bb032e7bcf3edeb84deaabbc964cca91861a37848fff2cbb8a35901d796ffce1b92677db8d227037ff59e91c7d164e4086b348a6de418638c31cef8e980d58d36561fae4cf757362bf11f0be98e19c8ed2381ef276b91eed8aee22382ebe55ebdf35766f25dbe65a58d6a0b09ae7f350baf75ea55e694fc7da7342be0a27d48a0f581afa38d028af69d9f125ae0c36d818dd84528e59c734e58b12f9a1547180ff88b07ff5e8c11d688650a5d06e3d20133f28a8dcfe4135c0fcb0ce4462ef24adcc2c6472ef20a0d22177b65160058592f30399059e216f6ca2c5776f004105cb118171d88e9d284372ceb9485cccb5f2c845a322052424745b90679a2eb4a5c8561560a61dde41a644ba1b6b44a0622a7954fcaab63be414acdca33a2c6cd865848fd6832a08c9a9a9db463ce99d408faa3695c9b699ef2d7343f2039521e403a611226d5b819502c3413a2fcbb64473fbbfbc44ecbcaa4263729ad5fd7964dab571e7bc6591b92785aef9138b1f27d1e885df4a23ee845adf7ad4a84b4b3fac85aa115ba3949a9654929a1203baa71c55cc39292ce6bce296fb194d845ffe4d24e1fd39a550766510418502bb913977e5156927e75ac9440d38b9aa34af5a27448f5ead8cb05d9ea0dc25dab979a389a6357bdb74ae04e4da5399d4cf5725cbd94d2eb97b3f4ccd7efc9523eb2f23abd2aedeeed6530161e6896e6b4b10ac5d5d6328d2baa10058ca512d7a954bcf17143023f0fb723f1b3de7e7c26a5f48915d6b88336681ca2daab57a8c8be4b1470f761b9ef8c8d46da320389e76d49ab18e65c2e6363ed9f77c6c6f73dc547813bd6637d59de992f8c1459f97bb265eceda22c4ba0caaa6d460cf77ebb88cdd8db4554e3de9978458ca277260e0d65f20c07696b509e610115a2788c31c6498d1025fc02185f322bd2bfb7119987276b71d6a2d63ab3552f90b4f3b1ce2ddc9c9c718cf135ab7cc20333a9c9edc8edacb151f2cdd6e3b46a04923ee69cefcf4a84b4b151b23e7b3dd88694724a292512a40ca6946f763fb0a372b634c2a41ab78594524e29e5648294116ee18863143b1f67f773b2932d7a7a414f942483aa12ed4571a427029c81c519a72803ebf0590bc59083f20c77b4cb53b8935dd6fba36375b451587096759ed6ba738e7cd631e75c94953f9da48e95546cfc7b3ccb279fd29a96557f7490e0c0e20c2caca496373945c74628d42bda300a52ca6959cf2ccbb2a49c52ca9e3840bd6e31aeb082e498ca471632a195d288931b92b673ce958df3bd118933d61b64633c3c95560e6c65058248a635a18d95eb2a7036f1fdf778d8878a36b663926825915927c742a47598036dae38dcd18139f0f0f3daec4e8dd269143c0438ed57c7c2b39535329068a307acb711b1a255d972dbacdf934f6641a719aad50bb9d8be0c4dbd703ed9b56326285c9d0d8d82dc34d67b7f7e6c76eb3e5aaf75ec3cfd63c35b11edf45857b55bddb5d17a2362f1b4c5966a5eac20c632162c7b41e3cc75ca7db1f4d6d4783b922de976380f1d93675697430e8d823c5797c30cb88b0145baf4a6439fc97bd3e17d87f7a603ab88963cc9b397617f36e09ebd1808766e54569574414a9ee43a74413a7c49fc01383e82628b65cb585aa39dd28e69f5ae2c8fd71b8968951b45fa5675743a08a625021d5bac665db2d6b0ee59212e3b86a54b1f35ead7e51ad97d1c8a2f36bb0f2f5e10636f2c7bf182190b4591cdbee0f8e8893319d568873d1b7a1add925c563bd6d16b9d10ef0d225992af544b3a1c264b2e814ba0062df94a9575e96181f800772670095ce7e145ae31034e9a91651a45abe02af02bcb5ce7f1ec3e7c1cbe025dc625760a47fbca6a3f5bed1d778c02b75129b89b71b15ce08e0f879765e04ed053f95071b4b3ca876b3e74180b68c9f2185830810540b7830ccec7b5ff19b61179f5f19acd012bebe3bc3da07b769e7ef72cdd9064f751719064f7711fd5a7ab19d191584fb03c4e493a1c2649eec37da84149be5201c094e1f8d0322e16da340ac7472dd2d647f66c0cdc2182579c08c3474e8479f6264c56668d1d0e7334343484840a3ef3f205ee3c15bc0f2deb8ca021864ba7ae2c63b9e894c9c2b72c0377322cb2ccd643934be0bc35e1e113f8db9a34e012f8db9a20f9046a9605e6c04ba0cbb63cf8de6349ba3ed80c0bf6f70577c49237f91149cec36fd6e5facdb0589815e1fc6d45da66456964457688a7b18e7e49c7aa24384d76d8e1ac6ad2e13461c2e4acca2ede32220cab59972adc8f46c1675d7eb3210bcf03b34bcb86e033224ceb2d7ba6694bb227e95895bdd64ed4a9acc2674319185b8783fd59ec11e870b02acba8e41a9d037f7d81cb8e6ad6a55116131c8f7a5deb2203c12a372ad334abd3b4243df4831e702635888727f90edd92f3d6e43d08025f5283967c88023f62c95f926e88023f8287f7e5b6845514b895bd6d499f87efd0bd33e9be4488219ec55ef2516fb43c7834ca87897dd4ab591ea78de271de7c9c3be5a3f2388f8a9dc1ea12a99265a270c5f638ceb32e7027c912a94a5295c01cc896a405d75d5848662f52ddaa4ea36092ac06e1e92457cd616e49303b37260f384e93d6e17d56cd8d09048ed3e43dc993d42394fc9d553c7049c72a1e3a56f5e870ba4b01d05dce52a00b7a2a075ca75136340a5e49c72a1d3a56bd2d8746c15be73aabde6739a05fc74c8f5b127aeb724b42cfddeaa874a139bc45f39b75e97220c3431549c828a96207314db425623a75a7e8d435234c936c0c0f58962409d3a9ab4587319dba5a941c4ba7ae1626a77503b365e9d4d5b2c3adba85e942e4f019180c387c76b400d5e1b3eef0d90f9ff9387c0680c367653a7507f02287cfd6e8d415c08d98e9d43dc0b7326d74ea06f9b64676c61e3e7383674801440928c2ac5c57a813d6964eddd477b2e8d4b5e13770a9810b1aba20000c1c0eaf1d0d39bce645c8e1b52fdbe1b532b4c36b603433ca74eaea7c86c36b6b74ea1ae0321c5e3303e4f05a1b311c5e3bd3a95b7378cd8d4e5d9bc36f439dba380ebf1175eae638fc56d4a9bbe33d0ebf59e9d4bd398fc36f573a754fc739fce644a7ae8e6fe9d425c00b70f82d8b4e5dd4730ebf71e9d4fdf1001c7ee3a253b71e86a0a8eae1f046ba22ddd685a6639bf14653efcad2dc47d73939edb00a3ceb360a1ca7ebd1156149e0efcec31f84071f44786040bd9487edf532e03e7808729c5a04c7c30070360b643c1c004edea41219d1bbfd00025840bd3e544d007001704d0e7022231ff50ac06240bdaa1f80872094870108e03e78f0e1a3deee00e0c107004e64a4aa570b0f3f4093203c7c004d0e10e4444602a8d7c717d0d50b80ab7e0b34d968139c0c7bd784feb508ad49772d4d8e6381adc9330b0c40002732c2eaed4e84d6fb33e0577725a1e1e27ca71641936c2732b24978eabd4e9360b44712fb2d090d3cdb311fae7ab1d324b72a702dd9f90d4b7abc861a149000cbbae135d422b8252732a2f5eedcaa4558d452c06ba845505b6f0d344902764e93505a6f762b09b54e64a4807ab524790296d490e434d422b81a68a05780f504fcf221bba1de9df32ce94197dcb02dc1eacd7e2dc1ae1319edd4ab65c96ff0a1c792e3f8b073c3898c6c56ef759e6b9da6a41219dd223786cf508ba04a7a9cc8080138d4ab6dd90c4a62a8d7c87b288901871edf26a0d5bb3d53f248014d874a6474117065a0330ca937bb2624c619ea9de1406438915156af10abc881d422a8917a81502543843c5392655149164f6454a45e2d4a3e4407204a1e830e4062389191907ab30f8917726d0208380e3acc4075c04187ad5e9c6b3a6cda898c1050af161d8ec30466d0e1324c6006194e64d4a3deed08a8573b0ee711811d60a845505aa4003c7076e8819343016a11dc0e478af4a84558b6de1ec7d9e1a4ae08cb6a91000f2695c8e81ab9390f402d821620003c72904805c8a9b7000f402d82639283532f0e2b87e7d801861fa945d01d72e038ce0e3838a41d70482732caa15e2d3b3c004c60d8e139980400861319e1a817e73848cf711eb508cb6a89808d116ab53029006552a4e6364c7ad46b731eb508cdd624888c7af0389191917ab53079910814a05e2d455731794e2d82b34910191520e7444635f5f6788d4dbd3c6e731e4884010b50591e05240001380c117280eec78374f53b5dea86ce86a7eae135743f4e43573f43a72343678056f57020dd8fc7d0d517a023404e870a82aa1e2a91d100ea36a651f04a5c652480ba9169147c00ba1f554b040e43572350b7323007beeb76fcddcd7d74a703a0d3f11edd8ef3e86e8ed39d4eea747ceb765ceb6e9e75a7c74ec7b16e47dd8efaa66e5efa54b72f3aea5646a3e09b744bce4397e44cba25dfa14b721dba2575030373e0957449ea1606b339ba8906123d68c3e2e82c1f141d4106d6a6835120f1850d5bd34d118461460dcbdb113eb23475ebd228787953c7d32878ae639b43a913221e8b5867a46df66a75f72f36859a65d15fcbd25f1ed6b2ce03a9104658cbde1515c2b2592784dc885ce70da8ed911e1a1a1ab292beb175e9d476b479d9be74ea3afc5646a7b0c36f603a951d7e33a353dae1b7309dda0ebf89e914e9f0db18b8c32ab895b14396edcdba7499178c82a75d7603cec260143cd66564300a3eeb321e300a5eebb21f300a7eeb3221300a9ed46567300a7621b1d5d8621ddb8baf35b8db2c70c15e7926862bcb58f8b911b12aca09eea232335dd605e6c03fa0cb8e600ebc03baec0bcc8147d26561600e7c03b231161e4b82bb5917ec035cecb0107024cb6364018cbdd9170bb32e16ee18631906a11c2b23cd802d19ffa0b08341fc0d19c31de61e0f9391239cace03898f38e43a77090549cf808bb5e947d279a028eb3d23fde13b853a3faaf728dea532b383ee58ec29c7e8603bfb2b05eb691af2870b77d440331f69ea680bb94c21d7eff0807f218866118c4ce9d10f0afe3672f8b4c1fa5671e52453b10b5daf91a8a85f490f8bf21b12aa92ce4551d18887c8e26b82b813ba4cbf7007756aaa8928ff2d3a9edf254808c6021cfca1fe114d5b1a153d7e583e0d0292c955d9e019d8297cf81855897bf4c658c92cf66f72ca96332aaed7143832ec14a86827d4b3847fe7d6e449edc886cb637250c44fe720237c6be478ef145d25db119f6b1ddba48ea58d59b116a99814cd801354a3e76511a259f75541a258f753f8d92bf3a201a254fbb278d520273d80d2b39c028792318086906b35e06631fa98b377435e592f17bef0c0ec2282584f00cee6a963e195a4e6d0b955ed983f04208a5e434cda651dcdd7bdbcc82835ca799c1c1c88581c09a5d508344608d316e469ecda294b3bb3118698b62206c517a75971ae98c25694e4b8b2be04e9d82efb662527d08ffccb0fccbc3be30969f43a3b80c0829508c94fbc20cc63ec15d1ca846a9764506c29645350821ec086127ab2604b4b9b46b6ec1c17a350ccb324ddbb48df42c4aaf1f98f6ace0eec932675a0c969fe9d87e907457963210b6ae79c908af7e18ce910c1e5a582f076c5766207c9d13998c7f5cfade29c73a3a36cbaba42db8cb47f785b9dda5cbc01dd2e3db0cdce16ef32400cccb928572271e16b2d9f8ee0277a8c09c784ad94c77e92e6ce685813b6f0bcc89e7e8e985b12f0bcc890d0577bb4b986682bb7c6479870ef1b090f7131a9c1078d03d4b87e0cec7d8fbc2d8782a70e7a5c139f14fa054e0cc7408b0d847592f679f65ad3d2bb8ec0d8167ccf2a9bc21b076972a2c84d6b60103898fcfde1022a8a5bf97653e6521f47cb815b9d4e0e066845a250ce49dd4b58a56690607b3a8bd34f83dc1c647051b9f166c7c6fd8d821a04330279eb61998135fea333bdd05e6c497aed58bcaeabde957bd5c171a8e339d4edc5faa17652f9b59d22a52ed3230279ec48583ef5f063394a58b8d7f5928e5b87bbaa715154f87283764b77a98f36816cb3008cdd5d5a52eb2a73dfb9ee11c998f9f8fa7973130c3f2510cbcd802583e8a01164b352db6685164b3a859ddb319dca4b66307195c671604d86612026c277d337d6421539bdadb8cccc7d9b1bb93a74ffeb03847daf689c8c05dd9b692ccb7361f6777240056763fec08b2189cb126cb4731206333cea2c69b919642e86ffce4f82c1f9e815cfcd8698de21f5676fcd9618f5d00ac855d1da4cf6227636520ef712bd24f221f273f76f3567725921f76fe383d3f17703e8fb341c63fee1cb2f09992274318f37cf09a8b0ec223e4087a0146c2e825ca24c8d98420413af56c5a4038fdd660f93358fe63c7bd215d4d2c03ac2ca4460c591942a64636cb0ce407dce53119d52865d9cd4314dc413d818710c2595b9575e12e8f3923dde8d465305662b12d0faf04eeccc3f70077187292a9356584fd86ba4d5cb8d1022f2d1833c60bc6581e96c7d8e206e462675b1c25da4ac5e7d13f501c3ce1c43f7bd0767a1d58759adfbe525d07e6dcced373d7815514e6cc733588d6cb957e75a48a55a4cfd7e1c42b8139b38a0eaccaa106f1c09c796da57a06c6ceade230d14eafd5a1edda69359aa2c2e98a3301faec4c2eae06197565429fd5a0a7a2978f88c88a23ff2cce9178f9a864ab384aace330d16e5dbbf5a7824b58a53d8b5df6981f2499d0e0fa6868c8b61a60b418b25af7b0c09cf98aaae02e9f89e7e952f704e6cc93ba792a7007fbbc117047fbfc05580811dc9337a4ab16eef33ff00e911228d5f6a2938afb7c4309283a49c1ce33e3501444b5fd3215ec7c86754fa575ef0a7c458d9ad7e94df61dab122222eda413652f9deb70e2b9af545bb76d8fdfb81a54aaefe841a4fac5ce6b5fa9b2acd33a2e38f1db57aa2e38b1e22cd19e3dc6ca24fb56b3bc2b30673e688b9dd71e163bb557047326f62ac740e24d0c24c29c78abcaff98d50772b10c8310b67a7d29915511e2bd61f940f496c074fdd71141ad10d61b5f18b2fd04a704eec8a358c80e8bed5c9f748c951065e52f7fb1f2bd61bb463138ed38b0e24038ebe532f0a41af404e634776db3acc3e193c0e0f0495fa9c258c9d99960cfcecf6a90115726d949354807e6c8077d91190ae6c877236cab9c1848dfc4408e3d3bdcb4ac639803735ed6e130d19ebd3ed6e130c928cc79c7381d9eaa9bdde5238e73f8277a0e65995ac9a7dcb55575600ecbea53a2ab6e6994f18f2baf582ae3f919c31d232670673bdf5b3e0aee64d8af8ee5be62e97d5d1e372409f1deb0d6d631cc391f597aad6398937538f32b15d6e1ccaa84a8cbc01cfa151c9a4d6451b1cae89dbea68863d566c6a80836f8e2cad0900afb610ebd1193fec5e43a5683b8aeb7cb30a43bc4e058a563d435a87f55a3abe57a93c7060d7a30a43a42e8fa55856213b088427584501d8262a4e0c490aadf1587c9f5fef53ed602eeeafa0ccca1ef24b8db652ca5d5475e896864d6b3dbade2f31bd24327cb47593e77fdf291e5ebc01d7a3e3f08dcc1cecf68f7545877d14659c76ac0b1c55142d47f37d96771e483b463a7a73528fbf5950a6e4494101161d7ea9125ba9e551e9863fdeab04e07473efb4a150447569c25d8af33c17e5dfeaa4146b232b99ed57330c77a9075ac32cc59a956aaec6958c7aaab63156f4494509863b1eaad80e31888bc89814898233f7f584272f51a3e818b7556f133ab0be234b4201a52050919f5ad43fb0ea38de531b6e0040bebd5b12f8646e934eabd51ef3550a3dea9342a051c978131e8c09d383434349445f51ea4539c7dc78185b09d31c6eed832d75feec439ef10b33c860f4e60bbad8eb590023586546d6fa3bc212db98c8cd2a967f9880a3016b3ef0fcbaba277b42c409de2a31380619feabea2232a8e60efbb22b350f1057bdf144f75f98c177b1f11112362ca6c3ab4ea30e79da7b12ddc9f1502bef186cdb060e64895719b6c1a85d3671d14ad61214ed7226de559074b88b1d1beffe8141f2d41c6e6b0ef4a7ce89d8bcbd0d010122a3eb2b2867d65ecfbc501aaeeed3d51bc72f90b513c32e2a3268cec65334e6f481b1143a633824698ce081a621ac5364aa72ea5d2a99bc3884eddd34fa74af63dc71b02df867df6b21bf61d76171bdced3d0ecb47231063bb3234193982157b6fdb1a1153a6516c799a0638b0ef5aa7aec7257b0183b12d7fe9e520eb704ebf65bdd4f6ab97b37d754eb691f8b08f38487cd8f75bb66cefab38476ee16fe1af8eedc7ee8deaf70b7fd8a1e07fbc0ed529586fb428e6d46cc21243b8c24e54b56530100966c2164fd4a08d1fc0e0095e6c626c6164a5055becc9f2d112597061644322d550ccd31d3f63ec67ef4d6b77a4fadc6814c67520e06e8a91e36913c755eeb193f5d279ee9dc3305895340a036a141627376a56ec46340a7bd2280c8846615d5b6914d6fd178685f4b13f319dba6a5b79f1f4534e39e594f049f8d7b58b1808768b0adcf53eadb451f17123d259a9ab1265772976d855796e58ec567781b6ee95d15d1e63b1bf35b0c7fac0340a7b56df1720705f2cf62e82d8e4fb279d8a167b50a7b0637f449dc29ec5d8627f5c3a458ff56909a2b0d87d54588cdbb018968519ec716131302cf68e2ce6650d8b31198b9d79a78b96b0d82f29b8ab63b1d83db65dd445454590d2572fc7550cc3ce3fb0ead3471c186bac310533f4323dde61a63d0616372c7c3ce9b092a8c0cd67afcf8ebbb022cf629f5de98cd5595f195463302aa39b3a10984e03af127b7f188ce94c63fa9c26d361675553c7d70343365aa69b2c49e5a4949e018da25614564a0005fbb624d663a5cfa15194d2f3f4d482d36e4981a3194fc3ee8979b19b341fb722d0cebf2d2c248b4e61f589c91e1b9cf69f4e9675db4a1ec2dc5b9168677d611808bd45050efb3cfd5569a3b0ecb2abf2b8b7a5cab3a5eebe322c3d093edbba3745a3e8b5eeea58fab70677bbc8d2c3fab2348a3eab0f4ba3e867191cfd0b0369b4743a152dbd033af54ecfa4537dfa1e58c8b3f441f3d79720ebe5a070b90a941a1dd14764a915fbae388183a536581a06e650fa4b0a8e622f0ca4b469c7be7275690919ffb89dc5c247e6172377fdb8ebd7c99650c2f31661fd508ee5035c0ec3f2dfd01b53e6004b98018d1ccb4357bc78585e18cc037e02b9b18c795470ce982d2c7c57f8020bffaa559973eef3c2c23734edab2f0b0381f782eb0a835848642f29b8ce32b564cc396cc48c974fc27a0d33dc95bdcc37f00d3728febd67bc21e16cd74bc5f639092a9f44ac72d29a047312cc39978abdfcbe557b3b62b29579067e6f469e4a227941f24b9c5449c4cfba04552521c461b678210933c89cf105235512b21af56365eeca4272d52d99500606616c012c1f61e183ee6ecc62a759699465a966a5e3814258165ec8eaa2d464e527833cec8a1e91a7c50e32f1648097cf6ec4081cc208db6884ad07bfc86eb236a3c9583e1cd36684314346392d1a2985fd284f8b5ef4c2322d6a1aeca73196691b299248b01f8935deb824753412890bcb2f71a9c2f2394ee3eef616cb37751534918606f6a3e92c8de29f69a3897aa88d336d98f9e2c50c305ebe78397a55bc2ccf8977a5dbb07c68069291649ed8d0ecc5f2211f591b82e8348affba218c51ce3827ec375f4318a394d38a9605fb5951ce6959945e58c430d80fb3e875615896695bdc36d86fd35ea63ded6d8f54e222c7c17edcf64a25ed71cf64d21e4d4daca981fd6aba1b2de3c89143631da7783ac17ea7d7dd58b319799dcd66e4e1d88ce0c8b1197936ea883a74c07e3a2809e7c8f5ea0db25d715012ce116adf87b00da651fc67802964dc990d3e5a84745446f0560702eb948a9d3e4440aba503d6d9caa0956a655b8955adcf2ed64e76f788212be379d3815516bcd58160357494e54a11d10790185225b15231cca93f6c7d47c1657e90c5473e81e5ca9181f433de207725323816630a57220b9126ed5926838b096c7f1963fb199bb1cf320b19e22ec7b190aecab3559ebd1c95fe00771f18db7f603a75a919da98315e2052a60251681acbcd7fd23b1cc7fd54200a44cae8b090d65808c3c3fad7bfceeb57c4059505b928761905e6f44eef8cb1fd1b833502561497b9aeebbae845e9c3b2e515bda12229ab116f8a2c41cd822cebb477e559b98e7036451c67c446a4081470ac05dbd7fbef4a112c847934ea74fac128fa1ce0ce2b82397d48ff7ab0f20f09b4d65f11dcea3d7159bdf487a53e58c98ca2e7edc8ad25eb2baac2fd7845870217ed614bbc291f172e534af939e79473059c11f4fd288f76af8bfde914ad8f0bbb619b8b46b50a28ed226fb3074e8bd2296e28a250028a84a3f80437f9bd37274b79ee846007f4ce09871d14e461400e9d9a7f59b2ec0481397dca71a72041187575ec4f731b51b250e97e1a2515c0698d6a3acb3c2efdacef2a3ec1ddc785c8d3c209ee72192eb60fd4a9fbb488f2d329f93e95a7050b61dbe71a55867bbf5c907e5850a8ff740a62db04cf7a161819ed143377e228efc4c3ca95ac0f8cddddddddfdee6e276cb15929f2ca0b19b4800b1a67ae70852c5438f66181843dc13798a1a1a12754ef271e19111060ef0f2682bd315c1b7028d9cb5e387bb90c18c4e0b097c9f01a16ce70d90d7878becf8930f055e1022b163ec2531730c1c27327174cc1c2bf8a230b8faac20b165ec70a30163e08cf15592c7c0e5a58782539b0f03d3c6182858f7285162c3c952f2cbc116b58f83754a4c5cc952d5eb04861e15f964ef1d10baeb0c5366f445edc02772edea079dc0c7410860a1ce4a00a5880c28e2a4ea753a3deb9a77a3f5d29c3888c33b4f0c28425acd4e0e64c1653ef4415b57dca0ccdc8f8c7b3828befbd283007a76f7da5b26a50f6f920ec6499764aae0ea78f7dc1e97926d73c06afd35b0127ab49c52a5a29cc812756ddd35908c740e0f95c947e828bf53e2cf61d1e361c63ce09e19373f28f78d91142f8be519ef405f7ce0f6599cb46c03d08215b249c2396857f16d6db030541469fd5dc8c3246da29eea0bd1042389b76aad27b9a57a0d4b23e507614e6f039d8944b9c31669a45e914ac29681bc9a2740ad61448258bd22958532871b344e24c92b499341a2df6a6459a1a1b1c16a523b03ae69c2b3fb50d097c7cb62129e2b2f1db76845a1f1c5ab6119145645b564ccb6263b2312d8b8dc9c6b42c36261b734e4b3e46c9b3072cfc8bd3b29ae01c79eed42bc2c23f296f90f5b3be94e4c05f9ef410a90e0ac51324f2ec387a2da7b906f77e4f734e4b5ab153cca8773e43cb0f6adca9d6e4e7cfcc8e0acce9289b158e73a811d77684da2cc3aecab57b055bbaf11e674f756c8a290e368a2bb8f00528a690031cdce0940530a478d24624dad82906c30222d8fe468b5462568046161518ad21850e2c98a0042184708755f15a67af66fb08b64f592003dbe730b69f6d449ab3104208218410428875ff12c203420e7b7958a8821958188685a72a68c3c2158861e1e9396e8585145f8099811096a08412e438b34566218410d232b8d94416d57baf0747695c1952bd2b81ef3d74eabda121d5454dc1866d326cdfda8834354307280b3f2d154c81022b8385976386868694e8eeee264df0421562a08535d22843d5386c378dedeeee8e1b9136c35ecda608f6f2f062ef0f31b0d8c008169e96c0c27351a861e14f29f8c2c2bf04161e497186859614dcfbfd7b1b16eac0420674aa0f6110b873c8504cf14498343e60460a2a0bafd329781b20847f95aa1ee420d800d81ec351c1c5ce6f4f70cf0bde29f5b0f0f30f0bdc217dfe65813bdbe7df96c705ee649f7f5d58083df6fb84207f1f0f76e2ef0bc3cea3e04ea9464a2f5729976d9d3ca9c39e59ddab3a8d52691dabb05356b14eab56c7e3c5ce93baf9ad43597a7a288b753a25ce99a79d0e0632ff3a94959dd6113d95125445a4c455444a702a12cf30afbd1ae669df30ff8ae0ce09d5a8b9a1c1c9c7cf47813bafd6cbd9323df8d0af88856476becf2ee39cf9adabe19c79adc3e19cf9d7c160ad8e001676559e05a2b60a10673106324f9f0cf35947a4c455cc33dc01d87918f806eb3174cefc9b31346a5ad6bbd5fde8340ad5a8280c649ea7e70ab887e5fe4c2ed8ad2700fbb46e7d3e0a0b613b2d98032feb38572dd2f6a27f459d8a573a75e3a577180843938f9e306327cacedf57859de767852f6aa13a351f43a76a1e00690f38f84b392eb1b1a3ece8cdd75c77b2c982bb25dbe7670c6177e260ff089e337211d6538985f40c32f9d83d1870a7394f9b8efdeab0eb3aca5ecfaecb84bd642a5dddb5b125ec3c7d75a59b30cc4b4976a58eeb6cacc09d1a25339b4b5e88e335e4afeea846c95b4c70a4637fd229edf240644eb461afd33c7b9ac9542f10b4a567a5ee32e24ae74695aa664de7699aee466baab786e63cfdb624d3061c5b8cb3366fedd9bcb723d6af6a734b0a22d93117bc53d8f51892a0bd2ace75f1b49601d1ae8e526b323d768a85b035d5fb63634de74cdde90ace24e54dd7230bd97ebd3722d775d34b9dcf75d3b3ab8ba5674f337534a58a83a474ec464a951b65536f4dfdb1b134f55e27e2d9d2b963a6aed471a57a6a94cca8f6b6ecd9c5ef41d25699815cbfcf5e35ebeeca2a61d2a827c1611fe0987b94084470c3c260790c2258e96744c4d0912429703e3f9aacd707fefd551feba45f2a81acf5f7f9ec91eaa53f5a91eb59562fab7b4f067e32546106722f2bcf0ce4d299b1755da70277b9ccd5d146cdcb2ebbb6974838a55aa46dc9f673f8d1a91bdbe7813bacea2b61d2f7a1775e91997e0c606c5f07877e49231d896fc8bbfc7c43e6e5e9f64bada6594d7bec14764d3b37eaca82d34eb593b4709f1dcef679b6afc3d96a91f7c8f30d8b1d21cd59df2852dd7aab6f14532ab8f8362424eedbb10e87f4674918a9722a9bcee95f5fe050f58d6aab09ee3d8bdb03de85806fbc61d3a8bed69d183e48e23035b80ceb2e0622ffbaf864909fdd7c324879ad08bdecaec32c6a57c7f651818334be6e9e37396d94f13d58c499d9dac8f8c7955c3ad596e18e16eb5adbf40e55f17974124b279d68147c555ee182bb32cb150b2fb354d13bf430764e3f7638efd2bef3b37e3530b1775ac55b914ce21ca1369eda5885786fd8eb63a3d63b962ceac242a211ec8d5bd8775a85bd9a2dd22376ce7be4c2427a442e0ce45d72890dadc862fb1c5ff72c93c1860b2c93c1860aeca51647feb2d35ecd32dbc7bfd73559beb1fced25c13b1ce7c460fb8f8885bcebb787112ca487ed1c58ef63bd2815d83ef37d4dd8be0d8dea0d1c6147576047416cc7f8f72ebdc0bd9f6943a31a07db3a3938a0513d34ca87465131b8dbcb671e8de531b430050bbb27f43c1dc401ee0d55231ad56fe24c94ee47eef87d8fd2a87ef63a2a3ee0e4ab9246f57dde7f1ad53934aa4fa553542e9546f5a358ee47813b4fd5a732df10230ca41fbbb7594fdc958d87376207419deabfa14e5d36c3f62592f864788f753e19ded1135d2c0d968f9e20b23d34aa9f74ead5278d7a43d8c67ae533abbb64c059bf1cc6880f8dea5bdd05b2f75dc257e49dcaae871fcd5af549a3fa581177390c92772596c9bc3f38645093f3489ecffb7d46de1bf25c718ec0d31b81a73f385859ef3b116f65795afe3da2ee5969547f76ef4aa3fab27b4e34aaeb1b6a545f4c9ffe80bb3ab6fb4658085b1db84375c0f53956f8b2685c603373ce869452319c2605774f43c53c2a6652fa863c2a46ca77022fd79818f888cb097e602f7fb9720233f6b2193a38502ddce532dbecd80cb501d71707ceac8de50761801216f2388c65de8263ae34153b55000b4da0858540e0f8dd2b88b45190399ee37d38522a1fe9af758a045a3a23968cffe29f8544c7186384dd1fa8e2307677331739a6fa10aee46b2d1977ea72b4cc29f8c746bdee73a39eedacdf3342c34bf9956dabbb672df9193724483c60e5bbbb325a1f79f8eedab6ed7a441ede67a391b6abf91e1332d212608411c618638c379eaf4e8cf1952865c8273eacb7f0cf071ec27377e9b3f02fe37e0c495a7098b4aadfaaae4147a818e6700bbd8e3fd04117319d621d74e962e127999e663ac53aa8411616ce36ac2b4bac5fc789a7c7b0d36338b136b17eddfa757eb68ac7deb31a14b432e24b0f51340e934389cb7c29c361a2e9d8636512543a63b10e275e1d4eac384bae636ff29ed523b2bfd7f723ee3cc32ad38368d8838c986c37d5a013cc814cb46f3508a50539d1128aa22cbc4eef1c9b60cfea11464c4acf7e84e9d89b64dfbed5234acfceaa1b6402da379c68ea706265ee58473acd57aa7e5d6a8a6c6ad0db82a5cb96a28785862375ff3e2c38b6e4f8e92b958eb38a045f5344f37706e6c03fc8884976d3838cb07fb19049e93435e83131bd54839ea932cc7935a806bd2f2f0cf6050b93bd77c6c293baabc391afc35962bd8f236b13eb7dfa779c26f4eff4639090451b59c83234a4229de6464cb85fbfae93cee43ae9da62214d0dea2298037fd5de82e5faeda2abb16c814565cec0a2327de6d4e9e8668e0e0756a6cf646755f60b8b6cde0f320a326252f3eb41f0450a50d19c54838c98906e53836c4e62c29d54836c6a736182baa62af15434fdc57456997ebb8ba9e2c8af54f34ce9ac2a551c59951031cc89f5523bc7c01cf8956a9ae93016e23479aaeb4f75dd74ee464c482fbd54838c7096946e3a93d24d35c828966265523a5783201698035faab00b9c636099ae0cabb05f8805ab4718b1eac22d47641587c9b76315a789f6ed5a0d32c251825d075661b5c93c03851454a0822f43432a1854d42aed42d937ecc22e167e87178e55300cfc622104430434000210c80c0da958a5d52384b23a74fdfa85612c3ccd0e3804101d59f681bdb08c85c7bac94505dc8503c6c27396c1d81b8b2c8c45f04c47f3856315a67af6c23316dea259c5b6b942c63fee8e31162ad1e1ccc38046c1633f96763e3f3636fb8f8dcdae9d27a517a814ea152a84891e05195368686604614002f3144030381c140b47e41151d4851f14800f97b2565c210bb428c85118428818638c21040040000660301b34003f680d704bfa50027063e8cff5db507277009cc9c05f7560ae491eda01d5b800002e2dbf7ba603d6cd23521ea4624119cf0ea8a57b2789e61d9500c181efb96acabab0d501e79ea0a303d6149dc8ee8eaaa953ae447ee14e0c41f6697726d546cda7cb5c21739cbee00cf93eab013bcb5b29467ff1a3dd5f41c8da3dff35f6071990d2b49af561bc2c21610e2b70d2675800682c56e0706f886b5ac0a384847156ab35c6a89e6c40d53826831fa2b5b99d00d63cf186546f4e773da70a595a19a2431c032f04d8ddab0d0888214a573b574ea2dd6358b5c343c850a6cbe896fb42e82058d241b6d75b9c311ea06a7d23d75f45c840f97b666cb4ed7f8564301e903133c679d52053ad4eca121f51e1454b15f5fd6914d967af6035cd83d9ec000287b165cc35e4ef804f5e0ca19bff552a6e792420d8bf4a3d728101c72247882bee00a6382f084b811972cc71bcd3cc900ebe13b9be4eeca2e8683e9c0f573e917cd0a2511ef5c9aa99ea9c910a59786709d685270e34fcbe56e297af7f7e3dc2f534b4decacc3ff4e982038c7b8681693349f314be39939a3180330409ffaeae5be80941eef2dbdcca6ff4dcb8690363f5e5b62f52f249fa5fa1209df95f86729051f4816b014c0f8bb479c52b0a05f8ad8fa93e28322206b94cb647df0cc9231652b6106bd7b181324dd0d4051f0733b04197f02179ab2499dd0c148194fc7b878da7544c1bebbfb530034545e5fdee8a98e46ce2b7b03147c419862fb52473edea95024e1ebd10722f4a20a85da4a41992e40b9df2f20271182751bc97f413e4b5067a6c869181fc2888f5a89490a9e9fa6363f8994e8c254b459169a344ed8385f52bf4e7ffe7c8b14e44fcaa20f32c348463033267208264627c016e9ccd24711db5d62fa0d9f2d50658d29c535bc57893eae92e60b08bfb08e9ef440f10e6f934817d83076fb3411cc4dda6f4cf2ec17ab89b3ce5a113a7e1a5ea7a3a5ab09f6580be055cb5ebc7d0b0648fc69d13696054e89cd95b5eb48337492b6015eb4782acb5fd789e334e80ca48d362b9d03128074241bb79a25588384e927deb53938881a655cfb75c27e60dfd855ca6c259fc8afa394252f555fd02d6074a4ab48b2596a2712805dfc8770ae80b5d7f1ec5d5de568f8f4d3e52efa02a92ec44bc6582bef36ba8c805abe75d10614d0745780250f5d45cacee554fe9c60453099a4d8602d3822e05931eb0aa715f37921c380a26c3215bd1e39fefa99e15a3efa78b48e9c56a6f6ec716c4250ef4dc26727360e0ea5f7e5624af42ef50ee38bed6730258bcae7f4777946b751df2768ff2ddbdd502c36868c7639af668f6bd0dd2d91a68cdbd921b90662f42ea16181b22ce4060648e9ec2a16949ffb528622a1b694fbc2064ac9db72abf847559dd44b521db857e82d141c40bca0751b16adb7eb952f282a8a477504cbf0fc4d10018f843ce21c2889ba009ea79cae30bba2fe4dce1adb5ccc00d10edeedf20a7b5235358f6a1c1aa967bd4588311a4bc643fa5cc204799ec9c88a0a844529711717e85bd6eaa1a5c646d8aeb3f042c55f5a8838db162c1f7ea18741744a7e5f82eb6187e105442f2d89454e08408834d9231581fc987d542468904e8656c7e227a6fca31588d717ddcc622cdcac18a98f0571a1ac7feffefa42be9afe3137845c1826827bc8cf5426a55ab67999af134e156786759880d88279dcd05bd1cf546a339eb653650a973daad21b283ef1698249dd9f275da39f1ea0bf264c7b112bff1524c2dae999d389ab998d5d30323add8e794b794526e56965319ba422ea131cf3c2926be78ccc56ac4dc110a5d5efe85dccfe75903c45b032c506201737a40f6980c9f9388ee0fb264626e6db85b97af784f335ce74484e4b5a026e463cb6a6b48b8105e4c79ecb8791d959156836cf00f1b12c0816d37092be98a874a68222dbb4e2ab544b4e9ab42950bbc71585a4e56427061fdce9ba4011986d9cd8db53acd420317289994aeff06d5f4a9f63d89b46197ca8d9b094d286e5832297f118d428171d2efc7bda1dcf866d635018d78072c13c31d23c2bd5c8d5a1f6e20049fe9d39274a59204d0436e3e7304408993fa7bd73e29d2128daf570c61d67c487f89ce62ec39950f292f95add8d2852dab2071839301d2f81227843da7f17f0b171b9304e09f1bd68c8ee14b9c73434bed9a6bfd254870bd467cb65e88ba845d90e57e77fd4eff19330d3247fd9241ebef21c0bb4e557084eeeef3149e35672fc4a34b32f12dddce15febee50c988ded143d3a8c5968eb429e2ce8ec128d211c09c578ff9c6175f98b801f6864cb1978934b92948b29ecd0ae71753722cdcee437f8a01439c46a6e27a10150fa8b6807c7da623eac3beef70f1d2639b764c3b3203894f4b67760171fe4c23158f27bec5c55f26d4b09891bcb402204a7b9bbd94225440900289034196d935e481c6d38c3d54a7c4508db9d2e4d1d90b52db3e686c65010ab9f731cc608811112aa782fc34cb88926bd733a0e512d7c8d0dc3115e134732ad09368367723e675c0d83b5c85790e5ee2996a6453e2d8bdd8d6baa8fe76a4eb3c0e9d4335597485f1ac1d78188fb6ba4c3cfc9f672b0d10d2186039920281b767387ddd257b3127791d128c590be20e89dfbef2a5012c58b0aebd61f495cc0d826e40b7b7840d99ad7703412d45e04e9e524ee0e9d9f248d0e46ccb6b49aa6ff53b92f087f5ca10c805c8116290777891fb8a35ee7d7be988d854de8158beb67dae16adbb94c47b5d3826936b5e467cab23cb08365b322b2d48674d2f34e1c89bb4fed568f4cfd6bd76246d7d692eb1fb98a0be5a032d12c08ef2d9bd31fe46b4479e7583592483a744d86fa4d7c5e30d55639834992778e8abc8e29d0ae26cd0e748025bad7e5958a633e58b65516ccb94095c6a8f49e476e0e30350dd29ad46e1ff4d36b07c25f90494a2f5f58c24c51095f3a2adf3bba7266af0c563d21c00345b9d4de8965dd5c073664bbf2b15ea65720454cf1f3f9b98cb3352b7b09ec0a37ee0ad13234dd4c4e92c48c0524b12e44564466d421f7b810ad29592d243262be8af59b169811ba1853830c2d134668c44517867014cafe3e0327b2e4619ec1ff6e65753c498453b693183661a97dc205c6f957a834abbde7219d1ae758ca9f483a2281902b7590e495a18dee8824a4f6b0336fac90fcc254bffa11e33a1d90d85472e350dc82cb0f07b6b51c1f92f3a6a0917e51761a6997c8003d822e07237e7a286cbe309e9097453daf4850f81cb03234878c1bfaf33f4a191ae12020f1e87577531d59879080dfb4279969eff7445b17138c32050b1d6f7b8c6b97d9738ff8bad7b3269d463cf054b1848d60e908443354d40072a37b13bcbaec6dba94dc1d333b6ac5c4522a85454e0b11b0011089f2053917eeb68a84b1817bf63e91b41de1b6110c13e68105a2983117064606307ecc4dceba134088eea89a603c01a20050786e523d55b23413d2572931c1d77804996c8d538b552bddb3d66c5229f2196343f807d6bafa34f93254140cc90c65c8cf81d7ec701f4c15998cc47ecdeb898789f05d40495b7a4d85f6332e65aece98e8f9d3640c5dcced3d3a9b0d3faa2ac5b5e163b5bfcd23459f1be932d79b4faf26f013801ed4d045d9857b25f8963be1c6f3c526c80a5362264238a0abd8b0d1a3f8d1286afa430faf0e6c6b55d1e10435595f3e30e7344a4da76d04e678e6e89166ea940bc0035d3ef0590168e5ebf426f455e10adc7cf03412a9a1ee96a7308e4fcdc8017d1aafcc9060573b37ec1122b73f9ca3437d163f492abd432a88696c0a3b0a2304b40031717c231d6c6f308387744958ecdd05816ca2e68643375f7222622559cc45fb865fafda11d70d8b159de15d6e9b19f9430da32e43a5b1b5ad263342035d4567de77d81f2cb5da845e1f7ab52ed03c4313cb5bd7e555807eb93c304833eeb45f8c043fa0282460184fa15d398dea08eb745f1ae8b56b4d9403094676bb34c34a6a306ccf2dd93a5978719618eb9ac0e59cc28b99161145d6c7f111cd2446cccf99f12bbbddb913313573fc9c73a131643254442dff171cf3b397de566f08667d7193b029d45b4d70acf1345dfd8a82d095c6b9f2b3e19d682686aebf6032a30a54bb58571c86b1851071c52663e5ded1325e8df5b47838a05beaedea35116b26f4a642f59fe551888311a373439ac14ee16cdf2adae83af485bc14c1d7d0b5a7aa17d37cd5d25b000d4ed9d9002a386d58298d930c0fb2fab7eedc0cee8b6748fcbd18bbce6668556defec9784131dd4e7943bb500a55a793440f0f5569d47056fca3bb6c5a13d19ed7c6fb2256ff9ce16bfe78e6c4413e4488545717b330b3d9b9b6891c581a7a347cf6e21b5551af78b1d5a9324effc32e5507a3edc9ee95b3df13de191568ca8f6e8a89f92619c3dc6f81dcd9278317fe19e906635d1e4b1ec12de7c25450d5834445b86b677ac6bd76410beac2e32a72ba3e27111afc047f4ed5c60d6e639be65385deb2caf7ba8e91c0872375e394dcad45d0daca19d5a7d8ca1e9bf346b066bd0a912a90cd54ce4e8e1207c39a460b28655c957480e889be4676b3072444252ee9c377ffa5109eae9ba00b566e82cbc0fad090350b59aa61c346f0f7ce6102051975af835b8696ed3e719a19bbedf2e105f2334593f2d106ed455c9000da6c58062a63485a0ccadb1588142743730407737e9be6e9be76391f3cb309e68687071908c27f0e6810346f57753dba90301adafd81a4f78d75ef7d51ad9fdd1e99038e6c900097c3174e6355477e5549757a237746954fa6aa970970e0e3910d1a030f4cc78f584f656ec58f629542fc380be5ce335dd65e9b259c1574201b9afc95318d734b0aa4641c80ca17c62e5f673146f47bbc80223cd5c733d4a35654beaae3127ddbfe9634ab9e61ebbee50b1c26d74e720d0e34a6a8d6a16adf3fbd0251827377a3b9e4f46d3884c2bb4a7e91cb59b48bc8032b9430abdb9c01e158b27b2c009d7b9cdfdb3f5b3a5c289b1d52121bd84d0dd81ba1ccbb288249455125b58ab5e98ec8aa162526d35eeb1e6fbebb4244a46a41d294af321eced0e482179f474dd1f9d48ed767f8bd4dfe51f3ff737bd7e927248f059fc39fe489a18e4bf221e05477f11d005abd9a2be8ce4af410fb1316127807e2f8ca8e5f228aec1b176684265f5ca39784725455d79178c3f414fbffc0be9b50bfe1ac6c9d2467c52548e03a2da23df020267a3bb1915797c4fa3b3bb6f05c69df5b1a2aba3924c29a1ee3e3498a95272a2adaea659fcf22b9718834b4b45306b45144b5b83395d5e5584004db4a03ce774057b467e23ab15f2371d7cd3118fb5b309884f8f0b5b6f97878b9cd6e57e598246ddf158a1be7a33582f5046534ac3b7c25cb0c6339c48e1d3c9b8bdb6b0dd45447844a727c13a0347d2853aaef95774c8b76b48022401734f82901321b105e5c17d25eacbbb8318a1947a8a198f268d88977a7a9e981197bf562d6f9904f7256a1e84ecbb4c922386603aac07633c40c4ca471a42234b87b254e24354f21b0266261a62c9035bc0aaeb850af58a6c1dcc75004f9bb688538a6dc1990773f6cc3970b01e103ac191aaefd058c900b791caa6692df7cd09e51293c62424506c9d7414f0e9fcfc1f6c9ba82c054c7932f4169a1a051b55020fed3e443b4a8a846f9caef5f30c6540d2e274a042f631d071bd7526b4686b45505913e5e628a5025f94dcd0c173ba3513f50387fdb7c6887803ed1db61890efa92080af4b9a06461fb0f089afc01a85219e37f22a29a705bb6bf9ecbff049b73a5971d392f98610e3c6cd04ae679d8f3ed865dc343572eba637b06f90ee1ce7be0969fba1284de86354481e68d34205392ec0de2f3f9455338c41f4a2e1edd5d8dd5366df2eaf2901849ce8807a262b261d7890830f75667f569111fc252eb519ffd907636d3266d98e1b6ce34b18302064a166e25361a667b4badfc9e5b6cdc5ed883e3d7753f24788b0d932b0b862ac51b0cdd254b8241ca4f1d1b07007fe4ffdfdb4dc00c7d797c0ff5532e832879639f177a2041cc306caeb6b288dc539c5bf65e90a5ab1e5f95a47fe5d16875ab06e03fb0bd9dfd7a4e790c3bbb0b435660ad380c4320c729449bcc77acf260024d059cd904fb71bfe549e55d0d26afe5b6c9da203a55f3ad3bdd18c9b270c6050ae1a2f3798ce16158a15c58de9b22681a0795b4f32fc158008c45ad20a3f28e36a09c4cdeed415fb112b146dd9a59fc1aa9d5038042abfdb4a2bc542862f4cb88f6b24039bf1c05021c2ef560a07ca97cc846d4812d7d75e1370f01e992748e2990f3dd75e1b9ba5f5f47404c475c740649d35a3dd9037721399dc360ce042d9f0e944c0b3b308bd7d9a975aa14575a82b019e424219047fd0986ce75bd9fd2896e66eeb08718d9802e01930cae93b9198800f8ac5909ace65be6d8818081d26eeacfd531f8159b3c7a193f39985cf0d18a8b37374dca10e64ea61219e60df10d9e9b6a3c4b1bfa580487279cbb2df8103e7b33a699ac4e7340f41c2830ce410aa33a39364335d430f148d1a2dcd285688434b040803ca86ee10e4f47894cef36e59f934d5454cf1d6596211b8ef5c76a9a357d7b1e1e6f6b4f22b875443bdcf511f7d73d1d73e307f3ef1f1baf94b4e09742e91796797d448844f545d1916a5199599521ec6ed251a2a275559476ac52e512bcac66ef30a08964b60b74f338028a0438420ac6f5dabdcb726505f0bb0d8956f43e415c660b3a5b98feecdc00ba26958756dd4a548cd71f90a2b733547606bd613557204f94d5d14e9a984eeaf076e87ae8d2275d0dc45cdfa22d78e544bbecc94beb7d1f86fd54767b8cfc395ef186e75cd1c0d8d70ef718d3c5c6ffd2b43cdcf77e0b6883dbc62b3acdcae79238f35def9a4d96f5a7e4fc5b34814d1ab26071e8b13ea086266347a669ba7580dc5aae067c7a91a2ff3c61bd3e5f3b9c74ed3e35d0b9883086bb7174cc70db67d4cc5ec45f89675d65d778c8008f99fa48b47ef828a1535c19f4423827c617b09fa5d4d80e5a14129edd286a70bd0d802903ef333875941e3665986eeacf49dd5e78862b166afbe5ffd94fe75b9f06cbe0e4bad01d2d53d801d423d8cdf7993cb420674820ab1233385016d08656eb75c0dac95e200b900879f8adff6fb4005c4ad46b36051f06e9d9842a95bed6f0916a95095a5ebada1812018b421dfa680c19f123584bddf25fa5fcbed5a6bfd4e6c54f3c0566fd408d3f27c2d6788039c2156f5b1f4ee74b658cf2d2a558034173cebdfe5aba599670cc74449cab6485d06ebcd63a8b610fe19da3a8cd9d6f1c883068688094e6bb28f71b76e91797a31fde3ebfa44bc21b5ca873c1a293722b3cfc908422a980092ca0a0feb5d8d833d99bf4c33637f1298a4404227dac306a2c4c805a81a087bad4971c01e5bd6bb0ef91a65066a68036fc1b0490a347265889c989c9e8b4b104701a1f2ac54768c1e36398c2bc39ca7fa1d9959cbab5aa57b86e1bc38e8d4a8929c342d6cf230fba4c096dff2c5b268a9f301d9dab93010e79c54c2e00eabf8a6125bcb1d8715ccf2a0b720185bd42161c6d4292813ed30e590fd7819206016285059df073adc5712cbfdd0722ec5716959695846590ffdce589e6fe8998e3a2c8eb85cabb5a91d96fe219167476fccc107caf6461148da957456717a43c1dc7d118563ed27420aa6bb1f0f6996c34d2297f64d05efdb7e70bbbfeb368460301f705dac3297d559ddc255deee3921916fdae8aa756d5b4b3d9b84ae5b2d3213834e283db4a949c18c3dee091ad998c7ee578b53546fbb2e8ce362480dc092e4c00c8f314669bc10e4bfbd222ab58be84f5ec6004fd24219e093ae33c6b77114c53e0373d121a15e83ae600551afa9db56436b2edb455336e3ac1f5e69363580afb4baab66a75087f3e8cc592718491f6884f811c53130da0e2685d36fa59b1f6dee3402a22630d47a131cd5ce999f30f4e9f0cbc03e2ebd460554d496841164b393b1165b32895c6ce3d7bb2c3abe6902080eef9eb4ff02d73aa49524b4b14493389ad0539721ba0cd56f1ad45bd1952e2725c5617b0662b9a4e8b368cce7453dd55e81f98bde6a6c5dba7b8b5ec4fe2ebdcb34e0a65d59e974315f55d40faf27f45ed12d61ff54f93c8d6a88521d229908bf0260e1e992fb899ed42360d52abfc7b0875fd9aacd548f2bfb72425253e3b65029f822c2a6c0d1d38ed779a6c91b00e923c99ec4cdf64906dc500433294ab7fb61cdcbff0d0d828f1d99abf2322fe020bf8e5aa5a501617dfab1bb347442cd624915bfc3927b7eadd33a31ac64cb9b768433c9f32a08d92d5415b400c064e7009111892f722984580e1174bb7569eb43005fac72ee169b8951f8d47f5fafbb85345b893882a0a0c2996ea7d401c6b8b71a73fc87026ade3ab25bd9e285b4354b60aaabdd542c1c5be2ed456bf8f7ea9e2dbadb5578b78b165ebedba518784a13de4694fce952dec7f51e9f8bf42e2f36bb0fe9fdd0bcb317a9d3598acea6c91ea73ce7f67e4c81a0542133403ba182da9bce15c1578eda7b9b9877d1600c776b5097c74f0d8bac10f9def9fe1ec4bd0f9bdfca73c70318fa835995ea895e6f3051621a8a0a2d2575a9c9b302221821d6b7143fe55ccacb4f4409710346e2414ab1b88ba80374d92f788f756100d9e1128213015dba963f3e61e78c8c051b77edc29c801409231251494ec2909ec29e803c3851a66a88d5a5c433239d9b2985004d48a479c3924fdaf1f22033ad5d57153f2873284ba17dd921ec25ca7c9b65319a80051f7910284aa902c3d3ba1caf0654c3efef148d80d17fe9f1cccd2a9e18e4de97d14251c012a162e52d52b69e05500e28697222944730a862feea3133d98459b8223fa138d4e34610e08f451403fa06bae9c34e9cbe0e27f379244a3812b56198a4908172d46d36cad2a8d09655bda74b47f4bf5b32a130f0bb4ab2dcdaa913495eba56f5492e1b80046929603ee6b010013a6b34a1a6d48aacba0bcd3e44a9d79a40335ab97e5a8af463e2b6a3c185079749a20d0d499c4b8174c8a2a4ba348e2203cc84e2c997d1b01dd25c1a4a3ecb0efd406af8c19794d0513e036445b8cef784f022fbb9dbf41220b696a07d69afbe0db052978ae96520b0df6d502f22d70576d74ae0ec60b3f3f75434621417ddb87a21def0231e8c51b0cc9cd4139b5756c237d2a6e5f1a0966c2ec82fd13ae1ca0c08d325d0d4e2b1e99ebf74d0241165b808b3d2588c9dc419107381a6fd307868ca7897226680d5c8620836e32dfde8f2fa8fd26d1c8f16d6201b12c68e3996e45f2dca248e20696ef6bfd87a8c4d7e564e338c8a9e5e3ab2adbc6703e19f64cea79954cdfd05f4c78ed908ce22371a3fab3ef2f8c20a6aa766d33dd806cc6c1da6bc80fd0dc107a166173435f1722aa18c04f617f819c99b56aa40cb7948852f7f61ed3721b2b0f6ae86bcd06683501896d0f3b9359d726baf070a6018fb6a64e629e721acba93c284fcd9cd08fed2147234053e2f31bc7c76ecf61f43447945f1f1db6903135cb41cd16f3ea92c1cf424d3df62afdc0f99623dcf4d8ac1d337dce887fd205928008daf2da2dc4c6c2db0fe9dfa0f55dde60c5ae60e7a35414004d369185cb8012b0d0be020b61747b3725f5a20e9791bc6fbcd87bd0d2a664ca631cb97f771e76ddfce8e0896e589a20e9199f07ea92b5068f1f4dbb98d09c6e969b04a81434aa6ce6f68128ca96c26daafee3bf5d8c9a17b6aac9239595d447944ff71ba5273f533f36fa6749f66c5867156aa3204d84f94919de34e3ce97011d70bab075b858a089f6e343a483f4e90e7ea8283e0302f6d72d6e461b541707fe7a9fef53fcda5d876d1da82360de247912ede4e811f82d1808a46b9690a4f3c840b7d96c60b6ab730b53ba32b325dcaba60e0d157c9f1be6b565daf40dcb8c1e1488c345d804d041b5912ba38a28efde178c26816c11e63b5a8bc4ab9660576e8284b821cde8319e2ae1d80c26e272bebd95fd324084b211cfc621bd4726cb176cc176db5155376068da07e682aa3213c0ec44087ce5ee86f756d66f40f5cac1dee049b4a2e3b46f1b1e6b31f24cc5ba110555882e01c89803961876a55b28f1ecaab3aa2ac6c8d8467788e7aa6e34e9c3c07c7e0743466d08d94e929958b184360d24d146dd1c95e4b82633a7b4c2c85ea4b7a09b873620331872067dbe5ab7f1208fc043bb4a1ee32f44fec45321a1c7641fbba40cf56c153b46da715cfe113ad7111a66c8f9ed326f74ef505ebf0af49647f5ff484ce9cdd92c41171210f2cf3cec215d59741300b20749ebf61c5c94e7b7c7dbad2e61100cd35123bb82f59448a2822abbd938fa148b9c07bcf332c2bb05f4061bd86e9df49c904529ca2d5c41ee4b114064a2be71a0fc0db9ccc9c8090db768d03ca1ad8022e106de4545a5d6983d3c20b684284824024e9287e42c6452b6068a4d4f0a47259a08d4d018684b55ebe4a24c89e648dbc81d63a60634ae0deb73fe17c083d442c176987989eaa288818b8a601bce54591d3a362e368a33ca6e6d94c1ebf55238dcb2a60cd494c34c0bae32d37a9714e29d1bea3d50ccce80159d637425d0a5ba95c64d37c596676aa08219ad871844d8ad69a7491393deb666293520d9d3f7c37d12b4fb680ec8c6fa395dff09d11cde30415b8415c2f0e6caf8de40009ed404d15f16d73f628c47c47323d93a268c539c8d9b6ddba7f78b15acf56d20071067e0e648e2af0b48c62eca2d7e683fae47585bee822b9ceafc3ddec2ebd771ccdde4a9d6b660ce42ab636eaeaf645e61ece7e762a43135f18b26ad0c00c4012ba24c7324e4585cf98382a8d3333970cc999cae9d3670f4380a604baf99b9c5d70ca06f1075e0dd6fb901164a9bf44cf92e7a0d6e121d00686c0dca027faa6bf99420e2a622e748af06cfc07a70d05c6e2df217a98483b061b6747e37a468074a9bc92c95f89d019c332a86a687d04a1e181ec91653762d6cca1825e3fdab6d0e8400fc6264ab8236eb2ca09a71942925b44a5196f54e5ceb9f0b075a39e23926b4cb109cb4a46ca682ab7c7692ec100fd6c11444b9a2795faf2c838ed80e3d93c5f5c9e6eefda77881bf84ae55105ef2fe00e28cdf6f3b1744e8c7752cc8bf15b430d9d3a04cbb9c2c4cf928efeaa2055ec5e3c37fbd0ac2c3fba290de0d0872fbdb0107e216a2f5e8e6205681228ae8557550de02a6b76c28cdc2198c4e2ceb4a2ed8b050b995227e13afe76c5acbeff0e40cf247f7047388d3b1e91cbbd87663e456685c33916c8c24bf3814467f4adbd98daa50633c3daf83b83efcbf877dbcb99fe2593854bc68c253f2d15c9f787d0797d8b736695dc2fc95526bec0d05720b8d3ef1d5bb709740deb4e1a0a01289350228087cc0e76cb3c4303e5f8535a1afe60b309a83c3c110337b3843ebacb462d620f3202f4b6a57342e9e906cd13b800d380f5dc8f98cd72cb07b26ef368ad09700aa31ac17e1ba290c25dd3d0a07064fb2e54a98197a1144f29427a6693eabafb6ef3c7afe9ec80016f5ff313951c7030935efb25ce306f83e9ca2de1788f4b2458e954b675819a49055400601cc6cf81756bb62962af0d0c9229b48ccc58665acd36625451da580e3bdc83210d97df402a7a1dd6d3c0a5c1e56edbdb4c904de41220555a9c22eb9a91815bd3b6ac432916e666022be718695a9f7019a2476eb92da7e3feeedbf40ffe7782c2de9c13c4695e095e5d5e19dbb8d1a51676ad84722558c94467dc15a73ea51621e21b071f7400ae4c422e868268f49362660692cbebb7d1a253830d8fba7660be6cfac9cf81923611da0dbf69717b88245c98db8ce4ea8cde5591372b22506ba839e7504e184f707aa292ffe1e25bede5646d95d0ec3771302b981b5867908f276ec2cdfa408df6a96c73a4368579ebe353ebb45cd09392e510cc7e8cd0d62288368302c1160a2c8b81c0bb33b80c3c26e97087ebad8f2834ecf0204fa503cd97220364e8b4055136aca315e5b50093538e3081e6085b7f6af582d86631a1e4214ce2c98c45fd0f4b6f63efdc148dbffec40d36df27bd2507254bce1378a196e4845915e0ca1d95423835758c21a05cf5e606c359c82e19aa89a44912c79d05be1cc30659a7c0f6c15e1f14a6bc47282ba2c1f0cf24fd81276df2337ae2c7076d2500411ad9257a4e5368bd51564af3ec47b3f9a17b8bc79abd88f07a26cf38e734037213d216bfbbd2278e4c7e23bed671502594656687e4f28406dd2161a8a59ca39dc9c82356bfaa76baf2227867b14941d852ec0f68f49a8976df0fcbd7c4a1194e4ed3b0ef5538bf11f4881246376aebaf255ebe29041f03ce95ece2b4e878f0df75e3923e06d826bdf80e6fb2b5893c64e797208b8123df3dbe3c818b2cfff1a143ea688920e08ce1884dbb3cdbac55eee5b70f6f23e916538c48c2f3a6ee60d0c16df12011f6821169a5d2642ec2fc361cc072b0b8cd82a04d7cb011297bb6ce54357a10dcc3b27ed9ecd73f84cd574572df77c2abbd2b3fb29645a802cd431f90d7f2cd7e691317cdb9e20e45f9343848f4f3416bcd2fb5f0e0bb0bb0f5cf0aec58d36c7c8e7177fd1be09cd868983132c272b8b9691c1ae86e5f07b3f1de5b40ea5dd521e42b46705cc4b57091a3781bbfbdfe1b5d60b2ca354d9fbefbddc2e3505150102850c652960408960022d5151a0eac1793b16dc73e3c7b2f3accd820f5dcbb4a699fc0c2472a783fe064891ece8bd2157a5ca08381cc658f31e558a96c05e712862baff81e19b7cd8098ee18250ebc258e565b5701df9ea115448205f98a8d9d3a8495aa6e619f34ef1e428613b254c4b75f05558ed7a6b51ef2b93149eb89e78c70982caa86123ac7292872988c36031923c14efd0855cd0e4fb94ca0123b1d888fc64b889f17a5bc60d45c481b30d2742a3ec6504a7d25c8e448c5af45eabf159ca1a48bdfe3b85b4060fccaddede25c1801be62eb04096e586a95e8a7e3ac8aade53c59a347dd5c10e459f06605ea3768a90e228ef6c1cae42884da1b0e529f510c49c0751bef13da523b74818c65735115d12427553af7c6e9152c59571325d4b5c1d49ac76132bc4ad0c6ff8c063b5aecba07bc11d1a0c7c632f350718c887095c1bc8a72372c989254e28ea01b5c00eb163a7afe78096147749cc809486a20c57f04905e08f7217e416f05fc7e91ac1011afaa0d337fcd4e176a6f271c8fac82c0643c815baab91c0a40a9f35620243cfc99e98c61661913b824e3403c61de5c33990011cfe04a8499d5c7cdad8033a0939a944042b8f462b6ae0e55149d35d5ee0212f407c9a8e6ab868768b595f38458841845f077f1a261689ca66c013f7341935697effd2b3af7abf1fce57b8b54cc15789242bf35e9a9f888883bad7464896dbfeef23abec196bdb4cb9946d9111fa172b46178527a8e0f2d8a6a6c45420737447938da7ea42a8129c322d68aaa6ed25f28ee11b8c055a09791309292f641a4434d0ef2efaefa2cf41c6be7b29a7186c9a0f35588be867b6395f55783e92a0bbc0b86d4a465770b7eb99d93b4fc37378cee5e507a280e994ce6d7499b3afbd5012127f6aa701e8502725e4e5fda11fb030d287a3b3b24cab154b8dcf1c09d416b8bd9e0973a291c2023b20f2c9efb6f8d13d63f2afb5ee59a042ab03172ba10c5d181144c4b0bfeabc6bcaea20dd3d87a1670244f79957486e3ebaefc3af4e15eab83e468419a789cbe2189c18a493637f029becac0b6c10f53b7e68a32c158c0f5e4df4c1e3805083374cb55e51edfcc7e625c058fda6ab4bb5cec0e49f70f648c67fbbfcb4a5a2060c720bc852fa90cb46443483974b92641f99f10f461da7e63871c3c1106d7e0cf18e68bc0323d38c20e5adc98da28a8ee26f321ff01ba7003cf9e842596b7457b7cc9500aee96fa84b180035826515c0c718cb0fb40961b4612bd461c2ca83d49453763798569edddd4d12ea8bd93be05c5f104f3930d41ffc8226861922f4b9a8759db680e023ec6f26f18ef970dd7dbc953b8ca992791d4fea6ec5187437f960c270b3aa239c3adefe08e85cf5a6318d4b195e6177c50ac8df605608b09d3b8646fd56509e8fbce2c88a016eb077cf03c55b0ef10d3b04ec769dfaa5f69d41f5ab6acca7f6982df66cc0cf4f7b57b61009aa714815986123021427ccbc0e6b9925b9c568c23727f8aa337b4363b74768fc7e7756f92aa2bd79e7e20dafc90607a11618cdd908752c2ae29d052a60c3ff95e68ab0caeb5ec4f64709001d746750571573466035eb39dec3ce445d73cf87ed2f3cf8d9c97b49ae75090da37f99838e13477c8adf3879f72565944cf4606ca26ac95898f4d62f657a43f3017b3b7e4511ed470df8a7a4c0ffe35aa2a3d73a7e86d1f4cf681d1cd296c1d6d495d7fdfb5957bce96723d4f856f4e92cacfb5bc570700804f93f0eee46d53370f1c3ec5ff6fb5455bc0061c5322e6216596d375c827fbd1dbfd5b55b585d5830956eb22bbb5a3057907f6500417525ad34a0427407397da22ebda95578f0cb120ad73871e7ac0d8dd187ebff978b3345303f8fdae08d2253d7c0308c50423a8b216e9dce391590dd705c1ebd4cd8904a8532f462dd0907c3b5214a5f7b5ed3b8660f14944c8ef35c98e37e6feb54c526fe42d00464393b74b39dc4a313d52e061e3851cd41d84070bea280a47b710c95ba274f3969fe71a0a2c8c3591ee57cffcbb4e9560955d400a810159a838d15e0d36c4007b1a2ba58708e6dedc18dc6be25e796e8954be5805c47e4cc4af9003323cd595a471b4ec23beaf9a4413e85de62b96508f2ef3e1c4209c9e552d93dc55fa93f0a29c7bc27a66a64ca244ae58ce51ded150b3f524ef8f84d3f51c277b6575d14d8052caa2f45ae549aed92683133ec6c86ea4761244f40cb0e4aea4d5701fb82ac5ab3214634e9e6c235fbbd071d0b71fbcfc76abe9a7f3bb778f716cd3d69ed048722fa43a76e207ca71b10010c89afcce6d23f6efbc90993bf248a2c2dff5833a84ceab7ccffbd40798f44c0b1342b0fe32575d948b7100bdb719e0540f1096cba158c1d2cf64538d6385a490fce98ec3cc23ce1fdbc0773bec6af1c60a158c260473648491a35ecc32b0eb06ec875d18725f4d7935eba66054c8105bbd4cf1de17ad74fba35c004dc809cd6ba4a2cd279102d967b2512f8a70f354d59e4130f50b2bc7c39825931522adefe8b0bc2a655dddc80956e231c408ab6d09fe6229a00a7421a2adf5b4c37ecf74cb660a8e477ebaf6f48795122a4caf9fec701e3b47c684b0641ea51892d902f600b93555cd2c9ab99bb443a7e585fa633038fc4f1f1b1b9187f5948dc5d9936d8957334aa1aca065a325338be996f8333ef85ddd5c84f71a23f34489fd7cf75412263b06b7f2d9f58fb9705f0d2f590821f5e9b060625845c89a44952220e008b54e3ef7222995c4b602d5d1b5df24fdcfb6f24585a109c574bbf896eb45dbe3984ad1bcd2267e6b9dd237350e9b46db904c672776a4dab94dea8f18425139d30742b278990c740323e47554fd378443aa5fd38b4afde4223b74d06251f11f4e4ba09c24c9c110ec10cf4d570ac2d23e8d1aa623a3140bf6b29990319a59d3e903db53495907a798c4be01c77bc952478461f35a36653a8d5fd9faa338e7b32100ba62f3e39439da90d8227ecf35fd2f19b331cc76503b9218d60e94ce11bfc961ac86c3e9580b57d0d5314c0bc33b246401f6f85e0bc67814082ee34e49dd8e5869fc3917c66db67e791fbb231ac968c3353d32f7cfa163f7472bce1b3c1b0a8f0b5cf03f04046d2ab31b05742c7121e7862f76899468866a8b01726d04379726acc8a04cee04299f27032bdf3e233c5618043513e9a0ee04c817c6c0a239444480482b8587666f96b2514876b247742e9ee4c551f7d4d90c70dfd7f3af7c7cde5a4d014f74ba158730b310b3758bd77a8c0dcd55ef62e39d36e2f9acff746842042932ba39f50afcee96c7a5239ea32ef6b6bd6091e4c8e815fdd33a7b1af0dd6e80700c4cfd662f5167145baed292e3813941dc8e3f32196ccd86c6ece9d9a511e552540360c5269bff484895ac8dd753dc32558859119392d0c16879e114ad335e29aa20fe417bdb358d93b9df6e177d1e29c5aa266ecc810f91f0b69beb694f230cb960f833b1d4ff236654a04de8343b8a2f3e1d7be0538676ae729eb0387c5ea36a313b910c5e0c5536b482ccd808f42c44da298235348b3e4e5c3841e52bbf76f62e950e14f42ed327d579fc5c38992edc67cbda74993290b1a20b15d1d83e97e116ce4859e2b90ce0b7dcf631e40856944d330b9912e00875eb9124d289de611cdf9fba42e95ce671c0ecd0fd9264030b0797ad475aae86d13a2d8566dce1c6ad098d9b60099bb4b955d4e0075a074cce51cc4700da251e7fda195b77d24abac44ded2ab7a4b54642012a233de1b222954d979653c8c07129e58bf4e2c343628236d3482f532cbe643fa7cff548ce3ae19651d74a2090e4455c8c1792e7400e4d307e192ccb8dd12d2a6717c3224635dccec97411509d12cccb313b9ddce210f36ac44ebcc61477601679be24313ae77f4ea8d66a342ca3fbc09f2ac87407fa6b663d246f9b86e383573114d0ed7d86bbf917946d2f70d43e9642e5eaca8ba007de2b47d7c09e26ed6076cc0f2a71ac916fd000ba784b76346e08435dfacb723d8af8870489e4653b7c587e545728c4af49532c8fd6d2e8c6c8fcb324855a8f0d243f52becf435327fc1a6a9f465783f0d71dc59f669c590aac721ec030711036ce188f11224b28b36c48d4d2e8a7b0d8bc1c462409e61a9fc2c768e3f5589690abeeaf98ee6fc6db460a2e2e2e99ff2d02dac45d5b91b6b7591b0e16634b8ec9a47673d227b0678011310e7eb5c14ed0202e477c5633777ee950c1142b82dff5d417a5988126ed98e98666dd41c50bed6f903764cb5da0ae0d3bbdc234ef93c4715ec277afe0752be56bdd305c7aa7112c50b17d1f0d2fe5b4aa98070553dd3dc36a07b75005a0ce769f5ae91c554556b985ba3f605a10487567e7e8e3138b92cfba9481c5012b4034bcef2d10b4261b73f3eb2cf5990cf1a5eed96a3636d3f9f7c3fa3637cce1af68a8f99c1b28d5af6a1dbf58e5fa963580ea49beb6313328ee473dd0583d36954c98ec5d580e0a758248bebae0eba3e437e29054cc64b514f04346416bd7b8fc388dfd5c6c489e6277acf423c16a802e849629d030c93fb3ab2e81ea689f225407e610e7f490163bfc2a27f0b467b3a9e93b8f8880ae3273f058a3509a430e4eec03c8b281ece974b2c3a784c52a2707508f3f0b3fcaab2ead7ee63a497891f05fd36d0d9a0196e338ff2e56616f8c1f1a5aa43ce5c876effe1177955a855303cb0edeec603f9aa6d372dea6248c432271c79bc67e22e408ac9df500d5162893d3321fec8263d2a77185a511bdb3da5036dea6754b15a7091eeb8367f0390d0bf3d6d9b672892e39cd192eb34d8af3a54074630b3f6a930e69e13ab2282db9def9c67a8438e11d4c82319de7311af3ce18e5e0551423a0504fe0aaf64dc890214ff89bc9dfef897cb630c0c8735785ec2bad8d0fcc8a3cc0efcbfe9f5ac7e5368c98359f6e518ca1c9f182a359d43ce7aaa3b52d56a5d05fda721ed986f5174273c112584d594eab757190bc233d7f556607fceb2ad32ef0f099fb599c50da497fad41e6a06cad488100655d01367925f7499d9a5ffab270ce2fef2f997e8705f24522e0709940a750b7bc05b7cb1d19d307dc617eb8eca63034f994d8c45f48125bf3f05f1fe086e6efeb96ecf194a19d87fb3cb5cbb4d7b8d1123e91f930e7598344a227e6996f21f31bcc6ce57950eb5227cf0bd5bb56ae0b8eb9dc6d9da3b7eea800934cf886919eeae8d9aaa8f00d6a6d117b96c24fc0b5d2171a16eef7fb7344c80ba2b91a4ca7f12ce533a58f9a6cf36b2d2bcd7ca512edfe547f80f703e6689e58976a6eda5761c89b8317ea33c2da9b384b4576a81b8b2e5935a177f94c8b4484b72bc4bfe36018f1228198bdba715efd19e90d96ae134006623ed6c17f6d91e57d956b9340f0e178e610aed04a1cd795975557a18a7fe5260e0c0aa372da325b1dc2944173d621d1e56f18fa0530424764c6bc2a0e701cf99da61a1220e2cbed8980edf7d09a91e36c82c0a5d5fb87e3d2fadce05a8b186409e1e4eae493c58a62daf333a2c8fa4438f23db6e910472a0556a5208d4b3a3ab3f8b62150a512cabfd73bb59014aca6c3abc6818c2c7f4db6885c1958549eed54905ac2896e1c7d7df99164a06af9a291baa966fdfb9530660daae46672b8b285477e638c342f62c1b9074ecdbf2a92a1c4ea8f28118c023131b425055fa19d79615466a5f57b27be25edc79ae3f75cf7f0bc414841d8781c5c2cf4bb91cc301832efd86c605ea64f28542809889d2962338ae208ab8663c9c4a01e1effd8a62fa20048cb13f40a918a1d195cface52b1709acde67372a807700ae21a9d2248a21b09b14fc6df5b0455ce55f047825ac6f4b6c4e9f7e69d5bdeb79570d991806a1cfb98e1df20e44a31d4082f9f8c94184325fb8e6abf22714890578820fb05046b61c55001c2bb352eb94496668ea1e8f3d4ff81128355fb86f829d3921705beaf88b414e72ea46db94151f27f04a16e30f90b51bb63942f056880b811939080c868109d8f3c5a425c5e067ea53c2c0a226e2e43c8038491fc20185688a5660879038893f8035e7fe65c1ce475dd3611c0712671a960ddeca76314931c4f9c2954c973df9e9ebbcbe1d4e1368aaec578548a7f74c8a82783cbcbed9b74f0807d1328636e16d071719c4c319d8973163870a29c411f0e6634f2558eea5cb810c503f712f16b425b433fa3b15cd07c756771207a579483dd836156f46f20d66cc2cd4ed973dcaa42bc87a68dffcaaf10b552194061c676a91c09cb38431328c76e1e7c44b508af6a89df100c2aa6c27907eb7728d8d0f6c6ccebb34705300b8d7260d8e81853a96c412d03623d71cd714f5745bf6f3117ec53609048465da9a5ef6e779c89763485adde10a24d7487405b3b6a52a9d4f1d8c946878d3e2996919dfa6b25adbdbf28c534cbe369944d9ce827ea1199946c8f931ab4b0b29b4bc72b9abf2fb702c6090bca3f94b62403391d6a1e056dfac9298ab854e000a820464bba7015cb5c62d52edb28a03f839f0633c4197f6134c8cdec42885ee4631ba919b6e6a09362c6fbd5167274864a6e15925a6c78f21ed359dca3a6f2fe0efe8317f4c918a1be6b1eec8622d588ec7abbaa9e8a0398867acba51c1ffbbbc396f03f296c864551a0d02427571633186ab6395c6097a3b39e70a05b79ba6521d4b1dc55aaea4d17853a3be2ff8d4b59c75dc7cb3c2554935cdc00a2c2c4cfb1061e5a25314266afe48eacb7da596db45c7e9940b41dc0f4cd9a0196ca16f5dda7e839c588f168364b970942ede6c2114f205fb3007250c82a23bfa421c2c382f7962c1b649766e975d6e18131c004b6e1c128de7539fad5335e3ae4c9bbb417485428199649a2dc38d374f4a3715cc22c8bce5dc40d4e5cb92c49cf607036f969669128dc92f96778ec22e031e5b4962c4424a0367cf16440086669a69b9904c4eb849fcb1c3d28f547881617ec4c46f4c1efe2577b128b86d617ce2f0f34299a386c95edd7ba882d6c0ee8450f86a0a910bd387d8eb99a184e3e6834e541ce3c0d6d3c68b37d2311d308a431b5cb5bab291b311d36a67d869fa0022f201a8f98e60af57baa808b3308e69af5c005613a2120ca4af5349cddb1dea9aff804e775c13ee72b7b7cf3b95562a38496c483fda1c0d35a38135b743943b14f97a51e911d8ce65d78b25416623c2209d37dec793078be11bded716255f89f8dc8a9c297fa4ea7f6ff88d973cbe2c56bf243632f85ae6152460314156d965326052a9442d34ac54b2b68ca351ccb8ff93757bcd69838633a58bc253dc20f681cd5a2181ed5b3f8d9433d72e07f3dd3ee1ce5240d32465adc037fd3dec4d4933d1b8c0f14ee7c3140a95e1ce724146e228385c08ae128ed91deb582a355a53eb14753ad30cc90cb391ad6b496c783baa2b19aac21141e4fee30691499b74b4d41ab1b5192cb247e3ccc634c3945b3001f6cd38f8e63ff08a2a694126c58beaa652f91d8e1be3e83bea2cf905cfeac5f946ad253115839d7190f2a6b4846c43b9a00f79e05354c617d7bc14993e40d1477e61887dd7103dd86e7f4c215ed993b2d2a068528d5e1b835df4fda9664f7d1d26b9739ca9260a020c3203dbd7217daad85afbe95b4c085abc60c5b5080765c4ed41c875cfac02eb9a262762764048f8c7388e2a0bc2c8fa7b010a7cb9d150095920186742410e8fbca129673317c2a4579a1dbd7c52ae5b18e410855bd4af648458d49398eecbd24e72acad88fc0b77d276bf621f68c2f7f3d1108e5057b47bbf9a188fc2b5f4e774009e7761ef8ed0900118e0f00915c7c5cd73709719f216287ec17572e11848e2d8809d2797c3f1a97eeae6ffecfe26323add60fb272a029ed3fe06c8345f732d8d0adc106659a88797d853780a5202694fe3ca47e4aa4c6603ea2de37f12181c2abaebd91cb467c68abb0aedde416194ed22b1ff8346814805edb7c0210d0a5b8e0b7af5f87001de60d7d0fc7f931dd8ed411f7bf0b05a00658bf29d05e3b4d87aeb8074f1b72e546fe30f31732a90bc67dffeecc2d645d8a7ece89276d1067e4a732248487624fffa8ecac5275fa563dbc1d4ea15548724233eef2d96b5081f099fdf1c90e1b5916952aef5a08437e1cc7759ad400575e268a8cc8d3bbb8c676e596113352cadcb472527065cbd93b362737f11a71be494f6e97dc68bbb47622c599e0e5205c5f06f2342c1788a50b961a4bca199d1d4b5c3dfc817c0dfa4a4cdea358b22a646aee41905e1c76279658be21dec2d83afd55fb65b1d604c7ac2bd2354a80243aef52777abe9e2d3d85725e904d39aa87a15c1b66227a94b67f5e320114a30aaccf809ba8563d50fa4f13cb22c3d6c049496159e5e8b3282ba1818891b365f2b42c9a83fd1411cb06984f805551e25cb9d08f927987e42b322bd274144093d20400c92e46976e0968433d4151a367c944ce57e6ecba6f538351cb478728cefc62d802ec7c74ec550ee76a384387aac840a11ab07d987f483c715309641c3a9947fb27671dfa327d6d3b47df5fba1dc408a5e6c0a221fa433b26b8814341915ec6c6a7d56a4fa3b0afadfd531deae6cd30f98684de95e565385a7b75baa152d2bb0306ba25acc31cd87c2fd059d3cdc99ba8d5063a6ee40b3c81ee9f1e7072597e0d7419bc52a0cd96d1a4ff39950f1f48d77117066014b47a4102f6ebe272213d93d6b59ff8c574820cd452f7ebaee3a1ab807613959791f1ed76b8a7d8322e71eef62e6bed865c4300539faa457a36027df27793fa3ef67df0ff9181000a02f5af6514b19ff0bba0359d2f0e3f89cdc986f1b06ea86ee072b456a6b136ca3662f0b78611567c6adef7fcb193443435380e3605315e9ea5d4eba382624be346b61787505ecced7ad4a90a5b696dc74963ecb53b8b1b23f219aacc2c741242a7b127b58073e4d7ec55b4961188e7b3db8df60a94ab3b9a50548ffc62af3d79cff79acc6cea86fea966639638b4028b46706737a161f68ed3ca815bc765ed4836c922078e319a035a6658c1bad897927abf8e43d15bddce039e894ce9291884970ef4b633ceaaa0f749711409cfbc5fc0918228288f22cd680c95e908cfde2425ff522a03692ff988a0de80232366ba87734165a6d9a3f253a50403037c4788545e15e25fa41f48f03db58409f819e9b18a33c9a9520ab01177ebc8205ded668e8ac88d029e9f00625d99c19edab457f37765565335e21f3addde63f57c79991c81ef12891eb8055d02605cbe19363082a95aec6e1c3ab796767d62edea21225d1eeb98958baf56b5b664e97b1bca42274b4436940571bfaaaf65544aac7f2da9d102bf00dc71a4c738f909f31f7b0c28bc572d83287ecc5d373abaf5e92a76706d9d6fc8372071cda75eb5254e8a80410e9c2385cf03a1dcc21b3e890c2537af59717e9a83b0e7ce531e396b36dab599e41242482a1bd886d2dea0dcbb1d4f086c022acd4e4257206e24b7bf689dbd6f1f195c371db4677e652a4323ea37a884e35f3866444e1ccb94db253ea7d8d5f4dd6834dadfb3120a31f89b458560b97a5140eb86664df5a2ceafc3f23a8d1e2654260842c3bdd872665df793ae5eab0cbb08691de22fe225b83d4ed081df30e2dae98c1d4edfdcf283712ba1ba46320be48fddd54ccf5964e99ccee9764d68055d3c8a286e7729b8514aea38929b5236777e2e93f31c707109f0f88d218089789f6cc5cc171921c9dbe458e96b94599964a3140ec266559e784db5b3b2ea0eb13d341b98c4518aa7370b0f93db8b808a824dc97c09ac1eb8d50b3a9141a77abb8081b89cc2470ba3c613e4ddb74c218f12ef423fd3a3897738c5649d608ae4fce6a067304a05ac18c9ab35408450ced8f7f66f33e6b0bb7f9d1cf5793fef96a8d6aaffc7b136449b2826ecf2ebe6251a6d700ccc5b8641ea47871233c425b194e5bd7119789e7d34eb2540d912a9f47b0a732ec3d795022fe454b76c7cce1499d6f7fb55bbf05fb71b591baf090e32f24dce1c878f69f288f7ffe4766e9f2e9804f87c9c47558da6800070d6d9fcc021c0da1c2a5544f0096eaea8d7d110341eadbc4a4dd0e58c6f2530a6c860e2fbc9bb87d4d9a969b531d616b777eac8a23ce7210c8c63b0cdd9f9e7a0f99481c3aeb284baa781ad6e1d67708f9df4abd9831b4ff079e2730fcc88eba803fbf0d051e1d69f426f9be322cb540c55a9a4992cf85c714740f3ed680273be08afc8fa8fbc688f28cc36749eb4b3fddd1c940d2fd1fae735fb1bae9eb7b56bc803224661ff9576538359e796ec11810d357dc5cff320bfe857726890864bd3703f6833361f6c04fb86d5fb70e5a313534713512778523b033505384084c18082d5b64e368810e62ed09c2b3ca93a21d4546bed18adf09cba1c26c5dca571624af58e6bf835409a0339f748cc4dc9800daf11b510ea3207e2155a624183ce7d8478bb35565ca23daa6f16cc6f4ef679606cc553f40787868713c5932d0eb9fb2cace1e8ffa72c0090e6d4fd8100be08a8952deb60d0c89f91fd1271bd7c4b8902ecf6e09c3a52a54ab2fff4cebf4e372a547ea7aea9883b6a4e7c5bebc5bdfe50a85fa0475bf73a7b5cf32e8995fe1a55f00c47f93a78543ed404f35ff50b407abf3fa1012777968d327874b2a7d855cb030677cb8d1da2fea4f47329488725f2c0ea8628c7df95155b614178eafe26aeae77545a3288dcb805d42d28c524b601437e8eface67831fb67106f4b87a459c1917a561f7a49a1a2bdce4254e9a16bee8c34b83d9b92476823a844dcc6d8fbdf4e6d27e220f30cb8a71660e51e19aea9c46cf996e3d78c68754269fd150ba0c06bfa45967d8de314a80f92aae4d9a6dbc17b1cd20de2418a3205af3217ec8d4a9d6a0f27bb6dd32d7a53e3b6df5be28ed2c719121f96023efa6dd2aad89391d0660ff93ad12bdac4773507df5e2c6a00b5207fb0efa7498f0ac31a009b1a4aea76c43b818b1841744ee1ec05d4216a19531fac06eafd65927eb34dc440c360ef49cb791c37a7cc4e39e55f080fce67fbd50cfbc52b3b57a516856b7021f3333def9cfdd331672616bc6c77128a1cb84de7625fa2636ae83bc952c3cc6daa2e97e6de5b04512997d055ee4018f56d45001912496b58830166e4024313c71f972c2cc37320cbeec7d2925675a607c0f14f5c365c967a4174ba03b437d203ea5eb021c69793a6a6c892dea868402ea135aa3469947b7029a00861844c05f545470c4ca4d1c2074685cd98a02d139a9fdf95aeba128a2daa9dd8781e322d23951c109ac5e36aeae5905afad8f1be7b3a123da347159ec4dae71d6923b45f93f2b9faee531403e0b1274078f7e95f93dd9c80547c91920ebfe249f33b5ac20f6e78aafbf378851b317c2c9dfe03cb042f0e11320b0783f82055e01a2322d709132f9e503c80652121f4c5ab3019bdc9b02bdc00d48b3c940cbed9b13acbe6f38727b7d9956fa0817a5c9d74b52610a057de9d0713c89287049a699d4ab46586e5fd85c712d0d11f01d51696c8c49722643df9ba822898112576052b556f032cd30661815cbf66e4c43a7ea51a9a26b9bcf696912fc05c8fd704d0003864e4505800811862f00a224600b71cc14c8a02d86da204318a82410f449d6bba0eb4560bd3980e0f70ffeccbb8d6033b2eb0abc2b75efaaec61302545263dfe54d6e4864b8ce00f97df970631233c4224eb06c50caeafc452a70f1b6d10203bb4cf7fc852e5972f7752f4010aa82b3fffcc5f2e0b83aafe7ce23187d447d426e8b45c3b4645bff3b1fba6501af18248b076531e4e00df3e6251224ef906380b166c156361212cdca1c540e19787a41e32e5d423746dc245617f00421b1bd20d4811be166961eadb6d9aac975ac360de38c0b57b9eeda3ae64239e216d92b5f7509b260ddf756f5ce9b3a1d6563235bc265422533b105e91039816d49d6a30696ea2fa1d97f91dc61214553f010ff80a3e1989c998e1f108c0d7b0292206d8575ea5884a62c5a14a2e9eddde515991d0835aa336bc49bdd357b9b3651a22f67d213d39d9eb2efd0d8200efe9cbfcad4c663b6335a9ba4e1baffbab58f04c9237f9c2c0f73e15d1c47456d31369bed6fdecad58830ef75f7eb66619c29a8df907f52bc74b03d4f29f7bc3ce852e8c5ff5363eff08d3d4d2a6a0fd6529a427cbd7b3cbfa916e7c4b83487a301f54d84c5dbd54284c61ee79e0b458431436f278213fa45f8afb7dfee1dd2f68284c908c923308f4e3da98c7190292fbf26c780cadde4c30bd2f701ad4b2432a2888e7164abacebef54ac323fc6600299ee5d025e5e54ccabbcc51a1219255e0ebd6813d452b51e966cc1162979cd5e9f2ebe8a9eab1be61a4da1de9d4275c9479c36fa542999383323026f030923eb0e8742f4291decf1b72ca8dfa4456356e8df559e2052146c943fca05785d413a757c40be845ed28bfcd8e185302255b580ba67aaeec24708baf80c836be8d1d1251a45e9da8612602e155320cd7e02f46bf2fad28bec156b317b995f06698a5f5a9100a32aa84285715f818b2cedb843c2fe2dc6cae5a50ce667311c103418f04eb4da53efa976bb94d240ec4b0c69fe75e60c185ef77ebab95d9a7d2b8a2d993ca5597810c234dec0688e5d7c901f665553d43e163b13e10e97dc22afbc9212e6b6b19d8d2078498a4e46afbc34afd62449a22ca1fcab85cef09746bc5f5c461f48132e95ee0d165c9c1627e1ae9b6373aa0ed3bda7de2c19fa890d764ac506fe28df12f5fc90f77b9230ac6da5a2c642509ba12794286272c4b7eb78b85e89a8d7ff75eab954843b4e4e8618d4e69d1f9d37bef2e8ccd6711729a14a2430c0ed5d934bda4577279fc5c734c4b082ee68a40cfe213e15e402fde77d6833b0ffaaa94461d3ec37814f6f3ad3ab441370cebbf1c8caed088e2a1b4917d58177f29031dff12a70bbc053446b7956f1ffcb389ed07bb01e92d3efbaf66f9120fa2f027c17d3fcf5ca8b882de01915d971b02042f66d11eb845e9c3bd7cc6c447df57244654f62b075aef9f643fb7eeb7b1520ac696bb9e09204eb5aa7374e20309098ba2f93d99303ed69d0aad204add197dd8c7d5224873c53c20e3e04f9a325f1ec7ea7a5188dcd771aa96730c31848cc1dc04ad40d6e0ac6ffea633aa8f7e8abcf0f6d50814aa5f7ed630eb6ab16c88dbe4b628b038194e88b071ff8e8b347028084386914c58bb373ce8f13621ccdc4d894d9c06661869a04970dd13b94cea56cfc6763ea7a0964030dcb8721dcfc5a3cb9f8abca49c8d8818ffa578ba6f8538031d63ac4c45a8a851626058ab183527d00b921b320630e50498d50a5da6d0b83b40b70eb8f35456f6bd01aa3afc078f8074f988fd6285f6a5ac8867e85b88ca2b54db6e5c929899fe836721e2c7a22a22f1ccbef0046cae01800b4fd803041be7601d8176359b6ced37a27610dc337a6548a4cb9055a6c1ad0a86353f990001edca34c8c7f2e980dd3d4a7880a30aa77f2db3e0345c17a8f9e139ffff46ba802031afee31f1b68b4e043c1938d5384bb68a1ed7057a7209115a122c7247bdc7f5de31a01ab19ecb29f006a3d03aafe5f1470f20e7c6de66c1fb2687bc1ef7a7aca397b71dbea870b4891c7458ae05e3e2b09d377644bf58b0543236e9f8329812c908e23b7e408aac3a34f43f2d7a81c57987947fb025b683732aec33ac4fd254249fde6d9752e9eba578f95929c2d648d8cb626ad75b8706f70e5516fec7ef8519781f2470d0e8beb4e7dfbfecaa9260611d199b3f37ad5f36489dee75e73a626152cb6946095d2e745eb1d5b5a6ff67e2d69083d8a489e56efe741a0fcb2fee1a7eef9396b8194e7b1a6d4da1659945fa0aabcc00afcb82b52012eeae0725a4a78f76936d5da3cbd41f22542da9cfcc324b6ef7faa8557ae1636e6f0970df6edeca6f11f25a04fd24cec0df696c79654369c086286dc2993fac24e7dff965e9a4af10bdd771810040bd5b56025737b3079e18d2c7754b99d360dbeb4924dd1cc7a01c558df1a7464f093de15120b2397ee05a611d1d51a3bae71c08ea6089fe237cbc953cc006085754eb400c1ce50b5702c03e7fb3340750bcd13980db914c41fe4a8fa4cf6207d542c13b31ee087a495474f88e98867c79362a13704035a15af701725e87b341f9ca6bb6dbe38f7fd2f04201c1f122e4803f1cf3244b6569c1a2f207a9442226517c0837d280b384745113c3b59a531a809d21ba715322e97d9ea74d8db3aababe0a8a217dc680c2b9d72d4bf5614cfb9da81f9154209cc9dc4c31a725dcb5ed85b0d573c9b2fefe7db63e715936edf082b75b45e1e04a8b34e7bd0e9b395aa5dea7c163b455c3dfa9f9ae13f80f8496d543f581238ce5ba7969422188b3600d82a1c4da4575e20aadbfe49a2d6a5a13012f112d89a28afeed61e339799a67e12c6f22cef946d1dd9ee220c7987887949da7d98247b90fdd92cfab7645dfc6e5db96e7a17541b172964cacb9e867425df4451e68a3e8072d4b5b3501d650052d42664eeec237f6433c02322fb105a19bcb7d7f84c33bcc09494628fcfff28b8d8adb6949a0b65b4a8ba40f5c170dba6511142668ca8f9271d7db218d97c8b67239c3b36091e642f8b445cb3a40dfd21dca80a432231dccc56a7ae31b7a4fe9241a6c9e6f7295a03dcfe1ac242f2d7ac850b15ca74301f240b877dc930e61124629384db2e9655078ce8ad30aafb40828f81816ab6e7f5c72b3ea27cf1ec1de02abef63fe87d822270a87de1a95de274ef431a9e613938396975ae62d19643e7ebccc93fb78f49b09fbb46c5a283bbd6df14d31185fae10fbd8e42b4e4d353ca1c133fe193390fe9077023cdc215b98e0852947c1005135c793b48bbe2908135ee75c1cbf252d5e4e091cf5a0422f7f0009a5accbd0ec3da4e33506957122f0a23b3a295f4b63883205993c7f6b835fade933a11c4b74dbba6797f95701c808563a6dfd8a038873803bb064dc2027c89b751c52389f3fc89c6ca552ce0c2d54589fcb01642b9904628f1f6413fd627d5a35f81605a1fbfcfeef299898cd1b681b1a097352b0bb58e98b3b131b620719c65a1d698ca512f0469167a3c052de2c8fbe96234dfc03f5c112af7ecb0b8f6ccc3072a20b90a1501065529d3970f4f273972397476ed08e8aebb716c82cbf4ca90b646e0769fa5637a6c23bb942bf0331e9dec4210f06c6605f326e78c838faef8d524ba0612bb642ecfea64b7cac69357d3bc2b889bd1f1da0cb86fd7b70b167e4d49cc889f3b4fef68b9cd3aa1a6b0c3a81916938ec0b995449b8d1d6557475a15fc8602404c530da465e8803ffaa555bc0555dc6c630e84f95b1a4db24a95c72939c6bab721bbea22be88556603d2adc2ad99dfa52d90d30fbaf2c2d557acdb082855fbddbf2cf029980a1fb9be8c76482b3f83c924322774f4b55c6ca280dc44c88d90e9479db9236ae4da2f4b8c67d329309c6fe4b9d9b58aab3e6ad3bc76d32911aa766d13a7c4f59a730cdbc97131c4894a5965e4ff7a97682aab9074c70fa222121ca50d7e5551c94d323bc09db58e7f49ac71ddc37770b8f7a777b8714f26be20665f87c799adbc81cb1034636e8e543475102252cd6d6324f42a67d24a82750204959ac4d58024cc20c71e67ce01e577abe12ec82a3828642ca634af58be3a2e0f657ba274fb5574ca172e47179366e9a9a6929f4ad7cd733038e607f13b5da541290b7537d02c4aa9511605f7a9241598389d32dce3c60154e81787ae8c72ac576c6a290fb4560569d0c00d37e92a49711fa4fdc83eb5f1e44ad74a78bf6230508147f60ea2a0309eae5270691bb26dc9998381413663d67c10a152d330381e437a55f83b79fe4d0b18d26494c2461406f926d72e8e05c5f1fa36575f51d3fd6c13469c8f43a956668be6f746259dc5aa0e7985417ccdeab7353e2b92a8e64fe77648d7ea2050f8bbf93dfd4c0abb1fea6fbf8b4013bf514e63095d5919f13a478a4ff7139237786b8550b370c48898918f8ab45f3dd944a1372582e08eab0c3c649f572c2207aeb05e1749ceb3714bca6054196737f40c6e031e8bf3a821b25e7b0ba53546d60fc852aa9acf86059e62060785ecd325930c3a3b76ef68543c9bb52485f4b304d0872882992ba56182bd205acf2c3054ba46123bf989c7fe0397474c5e3541f42e1c3d7482fa279b692e1e8b91ea397a82c108260f427ce542111d090541946b9a13076392277c92e4ce1d7ffb51860b3cf4efcc0a79a11e30e20bfa463fffbdb37843d62b5945762e1334b8d2929a7cf24db00bd1f9298d7a800cddcd551ad84d8525f70b8cf303797a6fe1574d9f02062c52b063312b2e6b51a3a6abb05cc51abf26d858a4f84f27faf1d84f7b0f3a277410cf3d91236ab91740d21df4637926cf1628eb5c49d12843e1f8b5f2ce0d53a5af01e8008ec6ff02e53dc4fbc12b0f632d8a91f37aa79003d11257f36df5a36d61b0fdf7faed0b53c639fafb211019538d9361b45313fce3eb3e44c7c9697a296f85ddc9f666438c4a21540cea64730287c28563baad30a771cc228a36aff90465f9d1961f16ce90e602edd890aedd7cd8b59e140699763fbec2b167c43e09f8ac9bed2b346989ccd73986c5e5807598428e61f35aaa14b648e67fe5fa96a6688e363141c7b74dac0125d8dac15415938dd210c78ddf3269113a484e3e7e30830964bef11d47d40cca51d9448494c664ccfc3ee058b161bfa52e66f2f68167dc38e82f82cbbe644509d6f9918feeb34934cf7d88d90cf4c77242ae8d533033b63d3d47da3558407c64deff59cff12bf42888925af0fc3412397dfd586b94c331c9ceab7ef1538db3c10e04fea0df4d402caa7228c5c30d049930ef92352cbb8d98365ce3e0b32b7c99db35e7b7406b287eae5be4ced27acd61c45a45106ac0c7a7e225b65f69683f7f19311a70e8028f7ae86e2178faa15b6c3eda420d962b9b2f6267e4208d972efbde5de7b6f29a59432c5070008f60822ec6fd95fbf7ddf7f34dedf927c0dfb9648fe7df2ef7b1b7c9ab28774fddcf0c5b2f5b052ebb2f256d95f9bfb3ef241d2f5e1bb1e2c5b7f4bf1c9b2c3e0e3bb4af0c3b2670c811ccbee75d963f06f1c7ff718fcfbf95ede9e57d2b7bd8413c0e0b3b35788142153ecf601b909940a9122444a4d7531bde079bca2883129e2325fad7f1443b2ec306e384197065b7f47fda28bfca1266dc6cd2386df2a7b76e9b0f5fa45f8bab4213fdb909b27ef708bd9f53b55975d7f4bbb3edc3dae27770f08e3720de3729706750dcd0bf67a892f318b2f317790b7fe569dd678b5f85576f15fd77d14e5ad38f7925af7175cfc298a5a145ff0f0318c1bea502cc350c43455431173eb92f7f5e2781c77f7012d203e9db6b53b393e8af1efee2f3eceeef3123b10f6d2afd877b0bf5b87fa6b68bed32ff1c7171f7f164318f91714c1cf39835bfcfbe2dfcf4f961dd44f8a9f37c6342401ffdd36e4dfcf3f9636e4833f8a9a8be4ce0f3ef8f9c5f173d97df805b31ec7edf3e239ef1efde4ee097ff479e9308cc16a685eb0d74b7c89e3088a3fbec47dc1b1d31aec34388ee5f7adb2fbf056c75d3fab4eecb3abecaff167c51de04da678d264d97a11c5bb5e7cd7933fc9fd12b5cbb5fbeb05e671fc198ea358761f2eba5ebbca5965a2f8f85194b3e2a07857c7c56f3d8ab2e35d3ff7e3c85defdadde7c5c79f2f96fd878f4f82e2e312fc165876bd7d5ee0383e388a8fcbeec3f18b25fe717c70f479813eafeef3aa80077cf8fc4e4f2d38f478e2f3e226502d38f47042535b2f28819fb3fe4bfebdb7cb00eb459dc1f1ee8e318935c653044397ab267cb59ec6a5c1cf5aeb7f85e35f12bf76217e7efd20b979c49defebbf0ffe8ed5a5feb1ecb9f5e25bac41707c4c6d445cda889f1f3f69236e9efc19bfde5d0658fc3e999fd32dfce3d6bba7f5e2ee79bdfe9d9a750b7ce957cd8661695ca1cb05bac02ce6075d601641171f071f97df932416aa2b5a8f1f13d515aec77bfc3c8ee3d330048dc52dfe8e6d8d4bfcf56249be2ec39f21cfab1c77c7465c0bb94a4c5465fa67e8a2b5f587c4f5ee3ed808c424c620c6baeca2f8ba145f6bb2f562d93f70f760fc7ab074fdabe4713df82329be2ec96f95e358564e96fddb3ed8082c737e16e483a5f85a3f59f288e0e3b2538e7fc43ed8682c7b0c0eee8e8578f833dcdff72ea07241950cb0786c8e27429cfebc26504e733c09c230aa8b72f8afb2bfe0afd66dfdb8bbd67af717fcee3ebef83b36e7d7fa5bff55a67f2c5f3de1dd77eb7bb7fe96aeb270f71f1efe7c95938b61d97f2a881f1085df0791f0fb349f597cfc7e67fb0b0ec3f21e9abf8f77474102f8b7e62ff9b1bfbbc3be862eeea6e9d156e88f4d7cfc1a2620fc3ef879660cce9027ffc5a18bf1f1ee2bd0dc041bde821f1e3e7e5d76cdf5f78eeb70dbbcbea7f5e1bf76f82dfd3b1697e1e7b2b74620fff5367cfdbabceffaf15b657fc15b4f4312f4df6df3fafbf8c7d2e6f5e18fdfcadbe6b54598f95ff95f9ff72bfcf0cbfee2f6d67322504e76fcae9d22890effba203fdc3de4bf764fcd8f302e1f378ccbc9d7353fc7a7214fcd9e28360ccbc1c73fee3eabec7e6c5fd8866139cd6370ef549ab2c7e0777cfd5997fa69c863416d02deb297841e7e876139cdee33e0f7c190c5f7b7ac7c862e2cbf248cfbeed6eef86158bd3b0ccb710dffde7bef95fcdf1f719e8f87afcbef471bb2f85edffad6775527c5b73eb74620bfa55dd5453eb9533ce91f5f2cc1d68b9fa26cedae39b6c00fb711bfe77eebc57dbff577dffddaf37bcac3ddf37dfe2fff8e1dcb0ee34e123c1efe4ed53f43fd3b957eae31d1e0f9f58f252efb0b9b177f569d142feed7db94b3e2bc76eff8387e8a72569cf1776cab3481729ac765873d17ee1efdf9f3cf90478b50f33d2e5b4fd2bc6b6c3dfed6e3ff76f835654f6bdf2a7be99f7a8b3f96aea729c9b27257d9613b2cf3e70aeab2e76fc10f6f7d986d5e2ffeebc3d2f5b81cbfa5cbfe82eb7f95e363d79e55a63f7cb1ec19b76e3dd92a27ff3a8c4b963d06cf36e3f7e0d73fee144fda8607bffef1f50ef7acb2717718978bbbc7e0598629fff2fee8df9e814e82fe82cfd956cef0624a7faee005874161bca6ba5ac82ba0dc84f93489cfd045c7e7ee28cf356c5143c0d5863c97f718bcb3b75e3aefbdb8bee575f718f0c97f2aa539bae76ef53a6fb320feb98517e87eeb3812b83367ce98e15b0d5d7067ce9c79a2fb99224512ed13e3f7bdc721cfc6f1e70ee4586c250cdf8e110b43a8dfd5ce2b7bc731cf16dccafa75c3fc62197fd29cf9d3957366bd210bfa210bef6f6438a5f77d9fd7cdf87296ee399f6373eaa4967e39e7cf9bb54ee1bed2ba141e0bfa050cacce8b1d999d5e92eeb3667fc7e21d8b711611d8fe7ee7bee31e7fc7755dc7ed7dabac5e1a101983e118f02bb73deef9c1fcde831904c1bcb90d533239f3d5c1ff8d0ce77e3962ea7b5f529ea99da113dd9f0597dbd72ffcf6be6531e7ee7efbeefdb75324d15e0d79bcafdfd790c547bdbd6ffd7963b544dd30c2ed7f6fc75b756ec5b91f3ad15df3cb82cbefdf7fd5158f628280ff521cb2a0299ef453efb9efdfe7dd7dfe1af27c6fed4f9ef3083fb9a4fcdb7796dd54611f97de5461ffab11798e56ec951f7eafcd35e400f7db8e61d3013adb9eceb62d04ceb817ba331adbd7e82e07ee8cdb3580c6d9f675b653f5165ea0be7d1c86f0c32bb7f5c70c6c7b4e05748bffeed4fae3eaaa0b96124a78f97275d505abc6bfeffbbea3e05416db2787c7744c6fe5eb061aeffaa7f2bcb949da036f45a82b2aa722d41593db113200823f68dac1d4c15b968244d211a83660f159b301892f80cf1a53162ec204c172fb3cb68675040ed4155de601ab93e3844443948f1ca08499d94740a57c8620f89d0a033e210158b31809c09acdc901bc6f9900ac3a4295591174907e3e9358a1c1ebf729c5b168b547e479d32b1d829c0a9afaa6a8d5d4831e666ceae491cbfe3fc8f1b6eded7d3ba70aee62304786f3a5f876f75a03af5f6178990c33e1ed6328426fc758e0f4c826cbdf1ffc1e0b413effce15ddcfefa68ea7136eb0ebf29e16a7d6ca9aa5e2d4a74af563b15ad541ade2f56918b3aa341b8bf5926f6f47c0ef732ccea962ab2b36bcbb7c8de866a5f550695e6775bcf7f87c2ffc2a6dce1a10af53c5d745c7ab34afd2e6d7a0a943952c4efdaee6a82af0ea5125aa54654cfacb5eeeb8bce17cb3add400158bab240ab9caa832aa8c6aad3db3bb6a2dd6f48caeb41a1bcccfca7352ba3bc8619067a594524a69ed513fcf09862c686179473da0df42f33955d08d7c5559576593520a03e5f3d2b7f46b7d4d89303345b245114973ea66c0ce2916299ef42b95bccf2c18581d0d4c1cfb54685784ec97bccfa9ac0c4c15b688a949ab15e754412b8de3dd55d97ca2ed7c71076d9f36a1edcfd7e966f6d6a4e40f0a4e4d8654de20805a009c68ee11300efc6a1fefd65a3b67fdbed0d086f9791d97b9236a11e0535f7beb9212573497858aeeaad8269da38eb4a6e530e48926f9ace5e0c309ddf1596b1a13d57485f7d748344159426f7cd69a9a601b3e6b370cf1cc67cd094a4e931278fe3c6b075adf1b2e769d2e4114a1caf08b175f7cf1c5ae11dff8dcf8dcc060ad97bd367cfd61b9b5f0f83874417efef06fd96ff815af78c52b5e91dc793ffe2bbeabece1ebf35b71a748a2f5dfdf7409f7f1b6191f7f7e5dda8461f83dc6c5f0fb733124772f81ebcfa1f872bdf2ee6985a5cf0d171fdff0574b6cc5c41a1a180ca65ffc2cc2b42866fd224c8b592c818f1dc06ed5d137aeef37fcfe4540032270372902598e2f6a7cf16dc1eeee37ae7de373e373a34bb8792e3ec71d70dc01175f3feb8a98ab8c71dc5f1cc3fe3596e238b65cb017cbd7c34a9e97ab04576bfbdc94e073e373f373f4e354c207609090baf9000c125130a4ee69bef97dde7fb1ff6afe83fdf7fa50782860b0d7eee9ecc768becfab81795ecddbaf81c176ffa129fb51ac660b5974350088bdbe039b1ad793d955e2cf35e70be65274b570bdb4b86dc61d82ebf38b5aebefd328be85f73010b4208acde33dec3d58b67784d78f3f772a69c5b73686431244d893a58dfdefc956cbc6ee1060dfdadd87b74010d4a106ad4d00be458a47e172ddef2dec5d01d83c291ec5a7803d8aaf05977c7b02b7df02b6ad0f27ff87872250eff564d9ef7b3b45126d3fbb78bddd3daf1f770fcddb6f952f0b800dc3f2d877b0afcd8661790de5355f63f3e75c669b6dde3561c8a27b6bc5dc7d9e8b8f7f5f63df5d1cf6e48400483da80f83fdad2b6a1ef65d5d81e2610fd615340f7b3d41783d0cdcb0320cc30f79f8b9e6bc6df2dbf0903f7e0bf2c79ffce3b7c83f8ee56c9129bee66d29a6f89bb70dcf0ae819fe7abbf55491df82ef02792c087b2b73c576afb05b92d303d7dbd205dbfdc55deffa5c53de2a733d4d09967aaa70fdbdf7f3b7b87b4e157b4e153f3c0cbf85b8c3fdc36dd9bb6e9ffc5b76fb35ad9fe1b8536b4ad793a5ebc7d6e6a179fb34aeb7aebb6d785e6fbf05f686bbfeb5b57efb2df4b6fb55652eda853c3bd645b7fb8ff71efff257e616dfebb721ec674892246cf37cafffd3613876dd06c5dfb19ef75dbebb6bf10a40002f0a60c7729f61dfeee9def3baf74280d9846fc3e37af25bb8c83da70afd3fe193df227c920cb5ebfbb0a467f80c5b2df26febdb3c990cb70dcffdf05b106e3d55907be630773fbcdbe08f657e5849fe2dc5fce21e8b71db8cdfa2b5e754d17ad7fff071dbf08c1f7e8bf1c3ffe1b7cc613996aed286faf387367af3847ff76ec1b8f55491ff6e3d5584ffc367386e1b1ef1efb710c1dd6370ef67eeaeb7bbaea43e1eb81600b59c02fe27769f3c43edc3af5871097ea2057d5e2f2e64e1bd32f96326cbedb32eb1684317e393afcbabf5e77b5f2cfb4bec2f7e497193f7c3b2933f9fd2fbfaeffd0c048323bec0f7e28fa50f099a24c9327c31244b91fc9d2a72dcc9e7eedf6f7b7bf3df274b9fd77879f2aeb9af7124499718b2f048d103431eb2f4f4f83704bdfb0f2e2fc62ec29f378451bcb86cbd2ef36bab13d318bb421721dd5cc8e37d98247f8664d903fef7e48f657ff1d92a679569ad1f7f2c56f5eee2cf6f7dac1c7ffe8ef57985a50994836f49b21cc9529c618b71e6992758431ef25b3fc3f075393e2e5dbbfbccb2c5f89aa705b8c5ffc8ca71477ed8423f7ed98873057c2cacbe965c6587c15da47e6bc9177707b938ee0e83dbddc56ffd8efd7e1c9ffc58958d2f96ae707c3d7edf23beb867958d20e82a276f95dd070471adf7adfd6c1fe6d9afb0b77ff3d3bcb5bbbf7e862eec868d9f6f8945f169ece7dd7d4017e2df1fcb0ef271246d5cdf433ef8ae0d3e09da11fcafeca40bdce3e3b1b430c6b7dbc6f5d6c6f5e08b4f7edbc6b54598dc26fc9eef5d1f7eeffa6f770f826587613bf91b2896fd82bb47bf6bf7d090a52dfbdd3e20d720a711696cfefbe2ee35fbbeaefd0c83590b921684d9bfde5b0b92bb5f3bde6a6d77f7acf6abaddf7b1effecfa5b57c0def55d5d01721b97ebc998de1d7c91f7c9fbf6ef8e95e2b7caacefc3cad6f7d827bfb5ed936f4990dfedfde77dd3f3be0fe4e2dfb2c3e0f76e974b0cde9741ae03f3e7751c0b92b8b7de7a2b77bbb9e27ec795d8f2aeac1307bff7f1560a78c8a3f956439ecbb95957561a15a73e0e59dc5d4ba0b1b6b8d289f90dba6e7ae9baae86ad9238582c7df9ac393da94cf407a58ab1e2246584f7cf39f2d128bf659d322c036e9f6edcdeb010e575fe759a531d9d01c1bb6703af9f22040070ba3da6a9a27e68849e2ab0ade2452a8db010a65d8c316d73fc5404dc3eddeea65345e5f829fd689b137cc3107e78c56f4190d250b5c5c1324c3d75d75a4f1521932ebc807dfc9c9265a27eae1b9d32fbe266413c44d3ead96ab7de5d4aadc8ed9bafadf85e5a62a32132ad41d3b76f8734fd9f53c5b4d6dab0890d07ecac3ee530d47d420c2bd484e64c682e8b12baab32437f50ae64a858545c74eb8c12ba1b43c6f60099aaf22704cebd4fb20bf62867788c83a62f00fa1480396bbd566034497efa3e2c3a863268fab56610e478dd1d0594763c586b393e6b4e31d0a7db71b06a8a532d43412ce9329b4f02d1530affe18187a126ca0c3102658359bf4c4a9cc9eacc2b2a2ca9d28484872339d415b7c904e1f214c8784fadaeb0ffda5e667f2b3bde3e328edf5e27bb2f539535e5a0ad92056297ea0a92d36b03bc36401cdec16b047630ca550241295e1fa4599d9f1d3eae5838e2a2a4062eb30a0a91a0c3921ea28e5ca11065d6412328bc834800e07143103060806898753008dec125a626d0093402860c18333d5ff19ab164bce7acac5c252b0baf9f95accebc32c4a5061162a8502531ab79c98923567a20ddb8818959cf4c40f09e9d086043983040927890c18559cf355e73d6e1663d5b2ed972c93997bce7cbf4e5fa5fcdeafc0c4122091352419854113173c2fb27f553f483460e423821840e49ccfa37d584f78f8ad74fc2cb98282b22199c66fdab62c2fb67f5617d6182f88804f119f9867c4dcffbe7445571e8f72f89d7fe01b19ae2e34906930c42c43c31eb1ed612debd1144d1a26a1c7d890232eb1f4d09ef9f1014de3fa36fd6bf23221e15225e15af891785578f8ad75a35c2abf590f0fa1ecdeac0b480a10273038d2276cca478f7ca90f931450909ad880d66dd338ae2dd43fa711233d5448f15a0a48066dd53eade92c7a49367dd6bb23dc8d81e66aec2f0da652975544a554a56bc7ea764753e10c3d00eab281c969499d59fbd5be255c9081c08297383285a66bd63e2b5732aa207276a514d9ed821c8ac77355e79efa478eddd5417854cd7834c97d411754731de3b244bcba2599a90149515afdf392c2e0c158e0815ce0837846baae19d73aae290aa38256ec92a8b13e2f53b67c42b774464a34264abb235d9a2d0f0be51d536a75adfa478fd8d66757e928420e2ca8ea11882c0ccea2674822c4f84a961048796a659dffa86940224459c2829528647d2ac6f4abc6f4b1b13c7fbd6547b90a93dcc5c85e1156729612aa52a2525abf353e4830d8890310450971a6614e01d2f3de1610490da8f18ccfc9875cc3401deb19306a0a410664c0d4f2f9099755ce3154bf1fa1d4f91bce32864700f32380913e1a317ef18a9d2b26898d6b1901495550e3a78bf58bcde304a2e11254678edd769ea0e99ba4d5517a9ea2a552d592bcf87a82b4d48387834cdbac58a00ef36abf66bd4e2fd1ef5b0547a54e1958a2a35e1360aaf4cd6a956dfd2ac0e079ac2d080ca911aae8e6610e0dd26c1a2430a443352003364d6ad1108bc5ba410b0ac8478a981134e9c9875abf400deed926de232c8701966ea55185eab90d59253959a8ac2a5f25eab68a0f6984124f1ea814a548fb8d009b2562860cae8774a842bc008af4f6b56676e01631565c6142c4b9e661ff04ea5a8ac2816af340cafb34e87f0dac42b75e21fd0a50f2c0efd0fcc1574cae857cb3badc22b3da2463a42e480c20b3ea05003221d669dd256f03eb314304350104e8424d18264d6271677002781d561c0d0103b4431d3042dcaac8e5075ba58cc034db6d44007252a2c2fb306f0ea24c8cb1324559cfc8065563f565730c0064b99188a98c490d1325bc0c6eb7f4c74bf4696ca525d254e9f4bd2dd5271fadd6671fa36abae30e383172008c0ed635b65a9f295145c1cff8d0cffc41feb0057597103d8b9624a1192c3411e9a1ad1dd2a71fab88bee9646d3bd5671fa9d0ebad71aa77fa974af4e74af344e9f22d19dfaa03bade2f43f23fae3815ea68b71873b8ecb60e118ff0718cf2abb97a95f269e855bcbd419d17d5271fa1d0ffae3a2c318c2250d56f13b753365c4ed676f4b77676841470b3726d8d11b8b009b43125dfd9ed315504940217037393dc0c2edd7ec19d984ea8a3e3dd0fba229dda191a6965fa36e88a6e9d77b6fbd2ff2d01bef5f55d07d5a71dbbbbbb1d1545131de27c498d55a5b60e2f5733e42c18603f7f1e39fad87226d756ce84f303634a1349b678488b09ad15d43657680a51983ee1de740cf89a64c6e1455cd382fb33a2540a3667538ab999e20d079e9b43a9a2ce72ce3f28459e312e4c62cc638834ae9409ac5c849329334c37fcb1326d42cc6fc6186f70c36f47f38dddd5639c29ac5f0400c93232e124f68b3181ee460c68f8d037119b3b5c3e50993ca0b54b318d6ca6c5607f417a7deecc4fec3afb286aa66b7b45f66b6a49c091fd1d464bb41d3150f87eb83dc814f6badb5b6566b6d190a66def491befd5ced4f3a9b15cfb6b73724c1c5169230ab0c46e6e8ac56ec3138586596dfa9c2c5e75411bbd2fd43e2f52f161a9144a909026c0373b6fd2d85787d2c6475b6af9f69b8013a031acf9c397366c6fd0c3b5067dc3e21c66cdbd3e28c4a6068adb5d2244e5ff693f2265eab0eb98e96cf21b94aa08906cf338fd8c85a4a2d28b3351cae78fd3a43169562234be956e3f497f8fc0185307cfe400348159f3fa040037e8d2608d46aaaa04f2b120984eed76873b23af509233266fa319393d5117f80b2c4a866756a8d2685a7ac8e0d220a1424b4197d4c6575e6148d4675abacce17e689314dacac0ec5a2d166f43befbf1b8ab55f232aae77c755569c3e09accec51a3716a7210577a6bb63254edfa3bbe3258a24c5fb35e2f42fd375aaa28fad8cac4e6b4a852cb419fd8b846575a8d0e6749530d6ad599d398380931b6ab36d772c44bf5f238c6477c7b4bafbcdda6a384aa6db9c546e07fdceaa281f414ebe2089a186d95500bf4b96e0f7f20bb5440cbf36cceebdbbdb78ebb66ddbb6ed089023438e341d317204c99126f846f7dd3dfa3e1bdbd1e760ac8f6224e5c955121e5752d881a3058ee3b8325715679609d39531a363434537b0aa68341a8e89c5e7930b44584f3f8070909624cab84003902d4374e810ba4f2e98090aa27788d010a321484394862c0500491332316c53583b5359b49d2084bcef70f041c36a8a46a3154d2b3ea15c48b20273d4d84a641881a232909724077149708e0b02e26e50b352c1eaaa7015b4d124deeadc998ebab9c0b7ccb79cf16fc6703426161d5d86ae2e0f23311b0f9a0d8ee3381b4b16677615d82104840b423469821add50da82e078d9dffc1be9887a102511dbb66d734aaa38d3a973d231272026b015aabb64061ad45052e4860d53dbe17d357280040b8b101021ab17680ea64e8750ac88ed6e1b91100200414589a91b4ed4588a0187922942205010036048822161f49c1153fa75e3fb2cd1cdc1a9e2cc9ad414d59de550756f0d6ac464e4148099240a125e6234294ac5994955baa42c3a46f5615652c5995940baac213aab29f6378a56f86ec36297a58a33999cf04e97dad380f27184146dea870a4559422fab092afa1c7c0315138d461b9ab52548a8744cbfb4b6e10a0f4846e0d071a60a11e7a0304dbd128d46bb61e71391a329ce82c6c091103a80388281c80b1d22e21581da31cb34ed2045a94b15d2961b3bb66ddb3c281c61f8b6e50863a1728cb18131c6f85f18638c8500a938734893913b1382443686c6e98cddbf5d7ddd7bbbf954032b7e2f8dd77067d4d5f8be1c3e88703e6a463e6a44791e90e76d405aa4a00091b141a204a912244b90ab20616e92292aa09089bcf130caa954b2fe66bb51559fac94b95b8f2c281f522e6e8101da8c9428f23c3041bfc48911175ab04f555438221b903e22000cb1309563956834da0a768acfa72e49537ca776588802609c829258a1b2e50bb52163862763a807d0933913cabad124648408ea0612efab0e1a3a883acd41e940c20999b1411f04a0a01c7529b9221d1b9724281381410993991e3678c84185a288d8d1022786aae2cc2a2bac6d474cd6b67933baaeebbace46c98ca0dad4d15471e64c87912e082101942069092b288799235034688814a03cf1c18212f5c1cae2cc2e8918d8d00e29411b10514ab8909543cb41b3f8ac21a992c57b7c1f13d9c7f7713e9ed03c35c9b2037b099a5d8a3c6fa889ba0d0960a9c8063598aaa10b121cb3adc692238e5a107aa31ee3388e13e2f3494a88739c10dfa91d8e39f14d4181c6f7dd23a10f0428264bb0902300d544871098121a36a41e731b6744a3d16c701cc7711ee7388ee3a4f8ac6d4992e23bb5c34c8296c8d9fe860c132923334c154d39e24616029210aa301c61aee336900b908a33873419d976b820d9b6aeebbaae9362a3a887d1891fbe0c71a1e11a59e1291a8d3603b5e2f3a90c0dab8f869397291c8c0491b14451b844ac58000aaf8cb80d6fdbb66d58483cac265e14cf33810b2914d1524311962d94068d1a8eb82071b832d168341a6cdbb621f1f9240310be6d489c470d4a70a083c9d298210a542408172162c1082b3ca4e0d861092d5ecad019f70527442f2c1531a30895419d1852b29c47960a4c10dd2e451b96a128dc86374c0351c599474940bc190d433c6f83a2a1c95601a5902703781e71c76ddbb6d58c549c89a46ba2a3c4aa7c16d955c5e16a612acee4fd8359e33bd55b01ecbaaeeba6a470c31ee5c8b15816677641ba1b3c20dd1b44e2acdab66ddbe6930dab59c58f380e828ab04aaa00c9c191a52e4e54a1b4a316726818333b583474cc4bd0fcbe2217aa1343b187718ee3380e28a9e24c201d071aa2635c97a1a2022879a2a3589c873dcff3bcf73ccff33c2746156722754a7a29c654719c38559cb94591816f9b0f1764dfa1508d2ace44525ac23b5f9864413aa65f5a731c571403ddb69a141af0ed088fa21870962ce1575125898d20989078a274866f4f925841094cc056849d18aa1f400511c40bde21959be86d83b28109dfb6190650835a8f2540aa6c192a22074a56d061bdf07044de2b9dc3711cc711c9826744ae74184bf4e1008ac81822221b2ad265a2d1683f6a45e2f329074848fc6f90f86acc20d48113921ce0c00c9131403c0165bcd2c2cbfee69fc7061621483f9088326586c64442d19e747cdf07250388578409e873382fefd2af2129dabda1392e1b0fa3106c288204191f9a70497262e88711cfa3128d464b61d6631d35e2b356cb32e239766032a387a61a80be9401a7e018e2a08840dffef0161a9ae041fb21680832445b0a3dbe8f89ece3fb2060658b9921c61471030eb22e0e3eb82f28c000d12c5236723a8c31c6dc638c31c64ba62acea4eaaab4550cebf992ac8a337997718ecb09a55ce11b513ffc887a42872526908cb954474fc4a05b34b9a82f40469fb3b140f30304881e44486a5c258d1163c46d78f37edbb66ddb6634a8f2bc6ddb361b758a4cc9d456140119961cfd900407961c9a58f203d3b8212500412c51d28214500c4b2c11a669c78680a31f47f0b87203ab08269e8864b9524e2bbcec6ffec1ac40a3e306401ae0a2a50b0f514f2021b344d40d476e7c0a8dcb575494ab868ee997d63f33a668d972c316a11f3c8009d2013109d26fa750ae42d56472b442942d51636c808485441422f520f261c204114d946ca8c1ca17a41744241c8a66d8249e500842483b60c98e17a058c8a188235e529004161f62a8f84094d4850c57c404049516acaae83022ca1589c40f5716084a90952337f458c2e9052d5f9478729f68d08a3c6f0540322cb14456161dbc70894214c5c368cccf146afa559b3203d431fdd2ba0643a5209583966367474e7f53653a8c355ef637ff5b78f8e852e3fb54a0c2962546f4c0830a4492e021f4f148c146b76d3cb0f8e6f10d48063c43b214021a76f042840e23926c6095c4880e2a090e74bc289203092d3b66a8d1c4161e32e42e3530b7711cc7711cc7398ee3b82f6faa4c0a070815a5815ef6379eb7ff169912a44c0e2398642da105a9c6568b5205f4ff39970c8e1050542b7469e1398eeb20e77d37bbdb7122a4b057eaf255652ec2e410840c25709081c24191ac4d0a981bafb732b6ddfbdb7f7ff5360021b058b1f1e586171f665c16ce3d4dc9c139cb3915ca70ee86dbeebdfb65d0e4a11944335c2923e40c12503f8831527abec55cb8db9edb6fdbdfee5575ee6ceb806fdbb66da58f95223770c1515464b661e1db6ba02e7c1b9a6ddb86efbdf3e6b290e7cd8b30f7d65aeb9ebf5369d68b2aa359bbce5aebac77bbdbdd6ebd3349c764754537bb2a9b4dd021c8a921a6be2756530f6ea02f375f307528d5c8fbc40aa253160754214786f3a578868ee1349e81431172fb0bed814e9d1713a7be0aa5100a9ad582a943a3541cea83065743340b0572a2e29891d1a92aeb76e0ba7cabd0293a75844e71ddac6248a7341562aaf8ae383a45a7e81053e78515ce7da75b78d52faa8c063d8ae398265dd719f1beaf94bd97ff20a7e7d4cf84499f7a5e6743d7dd20997da8b4ea198b731c54cca191010400008316002028100888c482e1445213ed0314000d69a0585e4815ce629124066114032110c33008c300c400020c014831a60da32000f8766f5fc569e37ce1860b56be27b07018554a9ef36ad1b87b81902dd8f6c31186433e4ab5ad834cfc1d9d6d09cf5d60fa0cfcff8d9c2e1db5e032dd6ac732dd1673fe72b74333b4c49fdd04ab14fcbb065bd7d313e73ac9c0a8b6fb3efcf7c3f7f1a192a79e1ede62dd232cc002ea4c1b34faa935315a2a46dbd70c6776217288024a60d5ce3492e5afd5793c731bcbf368b4a71a71df7a94d0b68f4d8d56cf08d5e6291d05aef62ad45102c1e3448686402aefa37e6701dc002bebf260ef5cca1c71f6010e4e34284a0ba87a009f5ee2ac8a985b38a3f94ae14cc515e760efa898b62b56e92261dfc6f5b75b796c4989c77b88228b662bd5d8670168d1d465d0ebbaff4f04d35f85137b41e08ed67bdd58e373524c665792879578e83e57a7a086603515867b5d7ebb15f054ba8a6db1753e3de0155478c5f2a538a9abb215b4b7708ba50662c3ac20dbaf02abc7cb71fbaba3a6cc999eb33fed1374e8e91910722cd748440c6363860955c0dea69e6f9204b8bc8ca0072e878391138589b7b7de44d5321a8327a3000b17a70ef52e6b081781bed914ddddabc8992cd6c1157dbebfba2585c2b9a7eee29e840e2c5d3f031d845a21bb4930bff784f3d496111c5d19aef8f05f82c25b4fea79a1558f1d50077d1f1d131014d2cd25a4ff5177c65768b59e3b187884f2adac07606c1fc2f69d9d9cd2437e2fda1f44a29f0229b1d233b2fcee8408bbc7cd1b149d12249e601d9a4328ea809d2a917e5314bd5b924227597e2df10df63af4350c82969f6a0b89c2b107d13f0b910e8155097b1e4a9a71de3f3850a8372f3ae180152fab754af28f7b06decfe42aaee060efd5aef59e3e08a19f017ff1be01fa5d66788429544bcff8640d79efc1b10713fef60aab5eabe68402a6129bfe53063a78b228c0a8ba73023ce0930ba9d15de896828e15f4ba1b3dd7260a5791fde63eb54e24ba6e8f366556aef420a331ca300b5dfbad6a1562dd2b9e6ae543b3106deb13eedca9e8e4c4c2ae3d72623099e61a7879acec90b0b1c4602ed3258520783fb1848befb1d0fd8bdc5d9ca159b42709f71d4a1152fa448f78370c7b082c587d1428e70462f08aa029432c5fc0090cc0f7448c3fb9cb28b5c4c8056a12bdfde11746a281664e9b02ec55eb58916e00ef60bb91b79ea8dcc1fc494255949b33e8d0e19d9de975488c156571c65b4e84e570c0703a56cb7a6af1ad0ef3198ac21e15be6c36dd62927b470be64f1d5d8d6a47ee1387b01f4d2da0a4e11a40d62ee4d837aca32533e5df28cefca097df6052ef764c1e571b308cf37a030a75eac18ad651e39b583068a46265d1507889c77ff1cbedac98b1b9464e32186eb1cef04cd57eb86e37cdb4f5c187b0931832624eaa2d322811456a470c51573b77e2cf30cd7064fe03a76ca54dd133ea65c127310aaa0853f43f4a566c2f32517d11e88e63eab3164ae3ee365a3fb2435e70cf826e4d68619659a2804554914064292a230681979643f069916fce8ba6acdb82cbd60c934ed64e8b45390a5371d16f897705ea1bfff44d6839b8f3223404455150cdf3ade55707dae7d088754ce2c274c9594654918c5143f89450d1a3ec3a3d2a0bd46d340eae2cf49f680d71a55101b424a920eee23b07a1063477388d6f4aa46e72095bf93ead51a549675d078b18058876e5e5001765175630531a592c8069ad489a5474266c65967d0091355aea7b26f71d9fa19d3136944aa297665507095243171208f6e7d9ac436a506b90f9912f9f187ca5d041b7d9e8059cb4056d2c45bb5cb895a35835332cf71728e92a5daf50b25e4e7138db344e0ac187628f4d6caed0a2f9bff895af93df4e042d22c39a6d2805c24b194e786f1d2b819923121f828d83b4d7606548661793f4d9d4261b27c6f278814432b1f4c33b0929501040a3314f8d12500e82417c3abbd7d0cb01172eedcc3aa3bba4fe28e7495837cb684e2f7b44bf2bdc4823abd3ca32b0c29d4e5f3ca7045a9699e8c5d52c3ceb0489040f8138da2e1fad67c035de345dbba2335c4fcea9a395b62e095fe28e17e1785bee276d323ec46402849b74b52d58ed3b5a4b9afb8ce55349485102e482b1f0be9e972a9109700519198cffdcc9c434a1019479900b22c7112a22960dad2e6ecc3afb2568f991093987bf03e1e352c41d96bee8870836a5e4b67f0903cd6de8c01e4543d73294af13996fa782aa5b099ce7dec6e65ee4d9e5bb35a0730cf9a838de53371e0711dae30ce5d97882609cf8b43956128a43104cef711b47fdd332852e6e6744ff44177e5e2ac1b49c11804ba39247b3ce7f986cf6546ac87027c033ea128742c50a7b6ea88286fa84494982aea98cb5aa49ab63847f6356422ac22284ea42db37456976b41305efa520921625ed73588cb21aa0b1bbc2cde1326d8479a054e08d744b7d882d66f3f6c71649071197175c18900df60e7edc3fa460a453b629454c9a11c59d8a063a8c35c484d1cf1840c2d20658ee55c06851615183dabec5e09c7f0cf46e4919a873afa623dd59797db490dc6ec478a4940e00ac37c28fa9c46d07d6fba9acb5c6825c6ef7520bac313820d4976add565780e12095bcec0bd8c2bf73f5b4a104060e5d491f4f07caf17728a69332134183de20d818a4f4bb840e8d89a678ee23a49dea57cc35a8a5d2c3244e2e58a98a5e9a023097009e4bab922243199031658f76cdf28a886f55f91387f00fcfe9a9131d65c71b10ede54d6b44cf41fa486551886d36f5e07bb6351925d1319669914cc145e4e3fa84f607acb50ba3ac75525a818e560065e3b6a60727964c7ecbc3972ad25a6a2a83edeebaa4b250aa0028ef43cb03227280e7b00abeedad5630069ba25c4aba27658eb87702b8ede192007302eb2ef7e3edd04e08f97ecdee2e520b713d715162d7f8db93f612673eeb1c9102520e949da82d9721ddaf4653dfdbb531dfc7f2c228d4fe228d4091bfea6a2ca951a6d5362c66f9c1ccdcb860ed11d4f4084a4ac0a000663298cacccb3dfdf29fcdbabf4fa5fdccbac99719f12ca8a39608cbc30173d5cb0d149788d37b41641d3277a090ab0a88b965e26cbb1cbd5fb9e361b9255adf6ede5540199fa528168641684fb1ed381dcade5d3c3730918a8fbadf9f5e45e1dd9786d04d61bd6870d4cfe4d065283ceeea730e1085ea40668149e3943321332ec4a407621da1fa9549e2d59395bc3dd2160eb7345dca0738c41b88eafd99f7d9cac2a1b3830650452226d2572944aa038a8b62eaf4556c80ae9c89a72f246977e09b8efb82808ca368f8e677033e4f5a302e1571532e380eb1fde703674779b397740e7b840defd171191932ec0260ba318ef2bd0ff930007aee761f11676a54d497ca50f7eaa669d5a26e9fa7650a5ddcce88fe892efc5cdd0c0ed0a25289f7cf929f4cce6055cf21bebf2c6f8d50bef163106bf87518d1b061491816bd045489a5a09f8ac457863724b8b6b05452716683f0497db2f921ec487bb464528aa08638245e146cc18541c1507ae0495951235e178015d8186e9041cb278943fdcce4bba8db46413995113ea170089d871f04c3ee575622679e3d1cf4d39abbd902a3103b85a2833200e40f22067ca2c34f6ac990ae8dafe66ea891e06379065121df41df5f29abf94aa24a3d389140abd2a6fb1b0d7936710a0994422710e12169aaaa27b7a646b771eb623b5cd7d481253314ac9df68503bda77700426c1eccd368cc279576b53f9b890b05764cf718dc30ec474c092d062861e8a5c500b0fc3a98e4119a506dd965bf67712aa8e947505bbcf1e142c0f50c494f7f92e294fe76850b2a8e08b040afa141968d002055114175ab4d0af0372990dee1241ed2b43f74e5306f06a1397cea2e296ad34695d8a0c6bf615e99bad850bffe6e4658b856239e3c485c6435ac59e9fa466704cde5329ed11ec7de88072dfcabeda0565b96835054ba6d55d6ef95086cb9ecbb2ab9390b38837050d4af539da454087a4b79eed39e709de23fb92f7e37cf4dcf3a8188ad7ca0bca0355fdc937c57c41e6d89133ef86e735fe9bf40c060814e2b89c6386614e2eb7c7cbb08ee9bfafca2087af37d5167a9c55201102f930bcf888d3e74272bb94f54b3cb61e914c24ea708ef969bc024a90959a1b422ec8f207d6a930d710e5700f6da25409f9cc55e0432723c92c32efd970eb8b7a2440a7a6ebe958addb7f855130d812150e6a6a401815826086dbe0afb1e450995a2f85a78ba636ed7477b852f640d2887039f7aaf8e5534db96279f5c51817e6812d97b892fbc39aec7413f25437a48b99a25d777088216031e4ac63c55066854b8b0fe03ac95cc8817009bb88c869aac2957e6b3e732852b602c2d5bdc9ca12faab840b6a66f669e7ca85b2d6e5c4c5e53aa2b01009642a0b494e02c1a3543147b61bee608e729b8a74d4cc69d63bff4cf9ba606489b1fa9977dca6055e96020c1de2cb086f3a05652cf08b1391461592db95e6ebfd41cd5faee909edb89ecbb6798b09742abd319a93d62e6db7b2f953f1a35586564e6c63acddc341170511435e5795aa8cac8a0e463d06499400e9d38d06cb61e5a01cac6c57a6adc0e04116f780f063628c79c6f9f441bb321965ed8e07aec1f40e4c54a7418ce4ef4ed31a2618520045646b4f3263a8600096bb58c2faceeb8abf09820bd62bcfd514c6062d38a9d513257202558f745dcc8fd77c3f5ef244b8ec3a5b7034c226d5227f7f3881fff61dc1acafdb866b6259b3e956298116fdd72ceeae76154832fc987a10e4e96320deee18242680ce186d0d713b1a1d7e0a4d2208241c4873c516c8722af9ae0d42db350a258b2f150065a14c492b88b662313af20a01435ee398217ec038906de85d228d75d0c819755121edf3a4c86db8f05ad34e0ba58c5064d5c3d7a91a862b59b2a0786fe415fe120a5fa2f9ebef09c0d9dcd62a33c322c730c12a00aa5ff3fcd9f351168a8f6aacac6f2afefb79bc4b8e2aa875dae3ff90b91be94c5aaef5ab7ccd41aa971a35905aa525b7c0af0936ed9e5f379655006dc7f488c4bc4d7bde16d4a3e6999a4e350ceff08e63394442ca264e0e57aafc2d14f2c39a20e69c0c010e2599dfbf42f4c4f4507749301e8c03b2c6e9265cef932d1aed0b8ef0b94766f06e49a74faa12180718452c19edeb8af178481842a4abd709c87e6e4e1ba7506059f27ae998db27d8e114e4e33af1ead7c8a9bb8564af17afe70155539f942f4dfe04e091170b840b9df79c625194889f852b379a5f2be1763681017140845bea9547dce727b0223aa90e1a36d88831839a546ac73c5050ca1ad9c1590887d5d6f12a654164829eaa24a523e4221e835f2d13d4988a8f7432afaacaa3184dddaa7be09f4884acc9825d75482bbd1da79ec357619bbe779b5a4a3b940502b855a6033695942d223d3a7e68f8334c8133b8a3b3d384e1a3b0c3bb0aa9322914337d516e2ce568f7c3aea8750faa763141f094d7291543217a209202cc988ad17eef06407ea68d467aeb996c652a720cf1aa705691d53bdd50fef18b9864c992efa88510374bd05e3e6abd071372b8089b2ead0ca8916a0234db48f2ba174f42008ef744051dba441a7f403cfff5c9c53d7e20b3e10fc86a602796cdb3bf0a8f1e7590923251af79386ac30be5b730904b5900d2faa94c219d354a3d64abb20739ceab54edfb760040f7c4951e3bc430fe8af7c415703173eb46a63e61c69d38519b7957518ffc98248d31005db91090744b7458f99c469850b1a9e322784dd0b6a866fd7c141d8417f2d833759244196101d65d83ae8ec1fc1a905f692690196afc2fdd629e8a77e34e732e861bf4d9fde34e9cbae89d2c1835816568b3721a8afcb9dc1a47d631b8a0d583a208d01fe181e1d488b142d04d8859e9e9245307423bc572705fa539fc449ae631f9e25dbc0dca107e9d5349378b2ccf3acf21f2da63416d99d9f0c68205c542c7cbdbac37d49dbccc81a85e4397349184252d4c1efe636f79f163d15ce75d13c2b98890bb36d0f7a845a9dc6ffe6d36e5cf2befed34e5513964810b38524d7c1821ae33ae8f17244be22d1825a48b7d1669ecc758f998d7bdf96a6cb9496c02480308e6b04fe024289bb48cc629c83e81c4d69108f49f4ac3c9a71b13397dec1e4f44512fd4844b73a11fdfa4fb50be5900b6d49106b77f038164ef84653a19c5c0b74270d61f634a590510b1ba35852c070c3f111f9330d790edb2b06a2e67540f05ddc8aefff3d3b1291bd6e4118263e915045e9566f1ad31cc6bc8d6fab32e8a246c62cf433e4225cf6ccd10e1dad86a09bbd17bb1fe8dc67cbed8eb9085bc9e5690db52435c38c520563db2a8f1556ea63b5aceedc4ef50bc13649d509aaa697be153979657cec5409aa992055ecba8e31744ef0f6c78cb0ce9b721fbe167991434735457c61e437a664d451a868b7446114a988898e59615bb676569ecf389261f418944db42369ae9f2f89d1f002534feb09a527470f03d1b38aaae1af331c08f7a2008932d4c6a952ce51b2fff206585b76574f3a675b4e8808a9ed75ab593979fdc72f809a85dc1689f9e3cc55b065e0c584f7893cf7e0966ab96f833599d3aa6e0077919b7706cbefa95d7a0687234637ca4d4a4dde887b21e78fd417c1af858a7a8c444513f0426cc780c5160d5cb3792453afde6a5619547ca63c93155f8db5e8a38adca2f551c2d499005a5606d6504656d2484c26681c9aab203e4773216b4d53491d691d2cdd3ecc76dd5c085e4a7f261eef816d12ae07d41e24342168618242e824f08ae81addfade4cdef2a5d71c325235101aae34b5075ed826466e2e7bf3b2af8b7cf79be3b1c0999418b61c7086fe11ecb0aa80f3b3224a88745f9a00ef9e7509a5506d9e9d2d859798a78405112fc50d1b841a490edbb9bb9a9a0a6d223d269e55a60adea2bfc27d4eb6da0ed2c9262cae5cfe5f08e224e418b64b4b3ecf4a034729b3aa11abd544f2e36195fdc379d7c561219277b7611a7a2cdc764dd55f4f763dd1cf8efdfa2c84b8c5a730b8332525c05e2e48a1eca8fba0f56e9fa0bad5132d3e17e703b966fd96b4f960cbc72a9720e698c355a884f8ff169d5fe3e22aada50e32630eacb9caf835e7801e165927bc8097e220171ec58302066408dc13167242b75b8632a1bef3dc7dd122e7e320e6c616587eeebf618c82f65f52279aa69c7c7cf23e2a425f865dccf5178b03df3ed47e2682590fbabc161952690c74ed71cdc94dcf53b81e34d111ed4285834592d0e81e0620cb4f698d579279a23f36e9b85df581a142b3e5906d3d1428401e0de0275af7c14417e2cd573f9f9bd26421a04b80aca55dcdee8bfff98d7c8475730c71913e0c2eb8027e48b1917a4b9662b2881d4e35285587f48de268555a8594a016304d308b881cffeb12eae7527938223144c88d9b785f2089c78b6d1d9c0c47b261262903f9ae5b5814268647846e693d8a2398b0921eef46a9ac303f87121f47b5a1dd088f717cdddfb84427e9b147239b83bf7a470c7ae3b9fcbc58edc15d3295ad18ec9ee48d14a4dde89e85b04b3696f7ee1d63934ec58dbcd392a80cd233bd9c85b47bf3dafd2cc86a8bc040f809e5ee2cbdba454eb563d88679d9d7c6d361a9c61af9d3437510e93468cccdf28164f531a976ee6d7582c69e52b0144dad6cd7472ccbdb13ef9eb6b450485ff417af1a86aa28b4a30cc2ade4daba49e4b9360c37c9c72b99bf86562e94ffae9fffbc36413e822255a34c6253cc3838d57d95db9ef5076e8ca94719e4c4b7a05c94d7b15d347046a02452769125ba9e4b6d170a4f4b22dbfa3ed7faa0806f88b65cebb304bb90d07892ded64c8601afff6fd0f48ffb265c59dff46ae16d8a250b4c3b93842e3e3706bb752aa209315b95325b1bdfd5d67d33921c43d0e5bb73c972c5432a095c80597fb4d0b84a7c50460f0fb0f6da38a3c502eea0b8a18838074d477b2996f8f3137437179e76d422cd97f1007a61e37353ae4db253635098e5eae471260f910b9acb4a16c2177ed129fbbfae728f78665b7053b70bd90c8cc9658b65203bad064f3af22c05df1a4853ad2b1c8d1949383e47d340dba3b2fa68e5f83834638d2b14ae286daa4ba3dbcbb41c646c4ecbb563a33fee1a35d1ff388809121bd1172fe3dc908707c3726eb883c388941191bc4b990b4ae5fb186c21dd86a8f03af7a3a9e766cd14ce9443985f70b682f949ccb85c757aceb3a799874ae98709326cc1354af6c7237f6ae51b34a28e21429530b7aa67aac7eae04d490bae8bd5dec07c304fda25d2d57998907df870f2fd9e29580f8eb22a8787bc7208f3218cf62a0d08c3fb1d1647230b5657ccb500f83936ab35dd492fb875d320c8dfc6a5c6d8d910fbfd72251142164841e257dceffce8dda3063e398d405bd1e808b1ab8e342011515bbf63854f9c3078ea3f8e8428c032f7f5c3e196ff0b0a140de18bccd31c9c9a0c76b635ccc5657010119a5cbf50ddd5cab972242587d1e7ea40743cf4b0617e1db4b148f5910469966ac5ba29a98923c0c9e4ccf502e3bae6b985d1eca64a6e3fbb21c71563790006f2c95922d698a006aa0197ed3b2a7d0606aa475838adb521d56c873354639b0116581e5a1691bd4bbf1dadb2befd27940fc0b285e5e642af43dfc265cc27c8032a3675c758a498e9e1e0c005b8ebcac27171da77190e019791134dc84fe513d9012f10d814198d44c6204d06474138772841082f0b45282a678e1ed794832a18ca1b241b9dd2daa00510557e13831b44f5cef359679605f16e84bab66fa16e3cc6b4da31dc385766494c246e10208f7a538249f68776a207b1c7a0aeac52794ef2daa31aac14db56890851af53e935014bf843d0c172f9ede4f2e23947c222c9d3c9d7b0c4652b46eb231eb4c8b34241c3b1a1e80612a5634e7fe6033e0088204ba2c4875290758a34a529b5d9ddf519cd8518648c379300e868304810b6db4d3a6d4644180c3c47e941352e9c0fc9a227abd78e681411af88df499b3e3c954d301aa7f247bba24e6d283019b025e503a306d487b13a9e5f41f550d89a5b616a25f3f127400cd50034933adeb281a91b62fb3220da33ee5466e54c5f94b1457ebb1fffec7de951f46021f9412ec7b184e8de0a1f2ec961b6103fce66d848537fab5fd023c37786573d942d337c6124051d43d8753106369e03bf57add8c5a8272464a0f05253be3c735a444c0719c97fbb30d238ac536b212156e0af069cee49a27603205c5f55fc419aa6e7fb592f309d9d3fd583cbbd0c0686e4e9935e4c1a9fb14dcb1b1604e5ab681bc05c8737c30b5160a0562eead05f32e4ef3cced9d32dc2e665c9969b52a339b445afe037b228e2b20ccea21133e0e44926b52445d83fabea2e2afea86695d23f4a37a095d237be062801ba1d29e1e2832c38654112db75cf2a0bac99d54c75f3ce7a1da3fae907e92f2d76676f53defc0b06a853af642371c43f30700d99522450ec01f163ba088045ede3496884b0280adfe853df0b425c64b40a3dfa74c1bb02bc4238b8be8f531e93d005395fecf0980bd189854faad5df8f709945ad0d96aef0737bcc560b5c807791df508a2fb035c684218a1a87b3a8b05e779e993fc459dd875581339c763556e032ec43df012ae65fe6820c68adc9cb13fd11fce1cd75374667deaf6281f02b088fc3d2310bcbd3e156c262ed6e5dc2348ec83fcda0018ef6c6fb13deabf309e83931b7cd1271a8b706ab3040d5c29df1abc691ce3d62b80a2752f4b57f18a33a7d49646ba9e4744ace2d1ff61cfffc5b3c2cdb9afd3609e21085cb97539aa3a9b20e25c17c644b759a1780bc2da320409abb197e35f1d3473ede842fa19eefd2ee135ae4702b75ec7730b85f209583884df6a82efe1b3f5f5093de809d36ac7a596b49d5335ffa0804efebbb36eba5decb0537191edd801cc329d00e0cb4a2f2403df1a8862229e6b89d612e0a02b3ab922c7909014b5e4e49e3057eef8fe34d8747c89db93b384f53d0b96923a2781fca95f3ccc28fe5914b13b4a352676a418267a43300fb0cd40fb421b89789a9caf20a1a8b51abf691b4463d57cde2e5e354e02c6e85b08e709797f7958423bdef071fcc1b0b9b19b43bb07fb86e278043a45ad0d087da47bd1064fd6242cfe3811e21166481eddb582538cadbbdb30db61ec21c5bd84183674a5eb20945a0f298af232bc7f1be0fc2c7c8296977b2ae383d620fd5bfc13e72655a92d44ce9448ad3035727da8398963e139038d48ae55362c3e94e01f6c6b45b2628f2e1aa3dd8941d748b73ec5e8fd2a40256d0504e5a9c05eb27665ad7b45161c5f065388360c6e22ce82b937e0ac5f17e6c1ce8474689c80574834c53aa9d8910233b4c838531a23ef40334390fac3a19352b8a9265791c46caa3e48ccc03611ec8e75869a4a3e945dd1dcd583efa0348de1463153cf964154a7b3763a44e8dd821fb2aa1e0ee404b650c376460d0531502b728c9412cd4d5a08faa8e80c2ce47683d0bc039d1d364ba74a62a51a46f39fefbb7e501945af109e425a97407254ff2b81d33a7896285a78e93a1ac288bad7990b9e817dff24f3e4278bbe49179ee96acdc1ac9c2e5eb676b7cedd738ef7d3a108880744b973fee3cdde4a891938595e530fb41048b636a34dca556b91082f7e1a4cf9f77ae828e131cb69bb4d626eb40499b6d2eb598f0375e1bd43e3fca521464bda743da5261c15bb1ecc9701d1d0710daeccc1fcf63c1ea32453ab4b7c8cba526045da8122a318a2677a9ee5d355ead826bb6cae3328706e6df711fb81bee9dbbcc858352d14b2b89ded88f9dea0e55a6980021802c5153ca8227c051a745955194071229f802c28d5b02600653f9bd8a3a55f992ae98913a0fcc56fd7e3c4ceb338b4b59c16a5649ed9a9aebe523fe0b949b02c67b8f6161e92853ba3c106d0c48e1d07c2c567129213b1790a2eec792538bab8a59abd96a912673f568c4903736663c6c79de4fe14d620c3d7e8dc9984174e7212b312c90f30e6ce09cb7d16bed888a6683d65b885b96a62eb7d9c4baa2d28dec9f2953d8b9d4183b02085c3a0ee6196e6bab1224c76328828bcdd2ea5789f0de683721f8030ac25ccfb9a7476368731cc58eac3ebc08dc4d601a0334fc69d2f9e11a155454314d389ead58986d4d8ad5ec7f369d14975363ff1b2f58cd144daae9fc0d6e3e686859960a0fac10031340c68cd78349b77f628d23faec5881a97cc61cf9966b56eb17fdf4ba1909e79120f9bf2ad8542edabf7502ddfef63a63595ce0252026301b0082de2f7279de62eeabea8ec8e4171feada6d5cfd570cf6c8b3366ca096bc9dc87db76dbb5a40497c58b8583c70df0ff74ddcc576200f3fd003f6dbc70e3d0a6888ce3ae36455051ef08c068935c056875f657c20b0529084731a76ea97e8f813abaa1a75766f1405b65a058fa68fca3f1175eed13c2ba80cb370cdf98179519b340444c22ef125f2ea1e60bb361c7ad0ecddcb0d7362056a600247bdab4fba653241857e7974f76969d0d1a335a462fd5f7097a03392a9d80cab01069c2a5a01a43ce4a10af372f583c4c4e8e1ccd005953924aaa5d54b5265290ded2c551ef4321b75fca3d20c537364584cd29f1a54d02bd614baf8caa90d3911ee633cb177e8f2e0dc3e82798013c57fed7793a0674294b56d1867b142c5130ca7bf49541cd02202e6b4027be1c4c51d9eba4b8833555b6b71f2a6b69a0f79eab6dc8800d9420eaadf884ba26ecd7aaf210f1fe2fa8d9ab26f63dad2f6e3938838b37e21c88adda57ee288de3bd7cccbcadf3f0912cf7b6a38c2bc6c83d0e1c0c392dd0d2619e0bc1ff91d2d73846023a0ccb8ae6c567b2b7df107205834935bc7a9632c84b331965f54573d6dbc9f51415ca65ac1fe198ea2e1ad91ec5214b4cba92997bfed4b045783a6acd9bb19b94fa8b75d5b5b8979886e775a2076a6176985c2fb87b2c1d94cb955ba1954b47a78b55dc9fed8ed05ec519e972b5daf77c7f9c56f37d2e8957c50dbf87bc31cc26a9d83d3b3d443b66c68cbcad9ef1fbaa365e8f4c472843e6038fa2b244251a78203dba834a71a37188815cc54cb92be5f59a3e21a89dcff42855ae977cfc16a9c7624e0d3fc3c90e83efbac792aec796c217d2395a2a9af94ab31e8cb9d18d4bd2eb4207c9d38c43dbf863c87d5d6d64e40b51aef8b21ae705c8c9b08898aa230b42c252a815b03a46ca8851a063ea6182a1a3cfefd9a814b76588c253a288439c711995326a0e5c8fd5a532e25551b12781ef5076ac342acc33da3f7fa062fd513034982b7be6cb0b047c3551451e76b903a9a207544de271ed929cff3fef25373d41b24500d19a7ad925e0bbced14486e886aa92e6841e040846cf973ccbcb3a5e787b8cf62c6d20f592a21dddd56c12020dad7c9c30fe4778519c4cb52edc38ebbc39df2d801370e67bd617af8bdc91a4fca0deb8a873ebb6ddff7cc299575d3b17c771b101870cbcf691cf5dc08ffc09ddc049752ff83159eeecef0e6bd300b94a1f4beeb2c9cbdfb8a7517aace21146258342a5b03ab1399eae0adea8b5ec417b00540d73ee34af58db9af08779d5f2d6383ffb5ba3c0580af9cb7f9dc8ed5eaa2e4a15dde714be24350c685d255fc37af13a8e0724edd8c800a4ac3877863de63096f7528dd46446cc03c740e4d00b5f0a4dbe0a352095055d63955ebefa6cf242a3c83f55ce4379b5b6eec3c156a39b2aed09954f20ecb18cd778587b87d2750b2d96751091c291c5946935b3e284a5c7539fdf3a6b6e35bdaf61b979ef4e1e2feb5cf6247c196cb763717f3feea70d23ca68233e586ac7ec31d45d80a9370683c27295c14692ccc8344d4941c39e3e28888d66b0ae0bf2e546c9631d67b96c84ab95848097b671c11050ebecdcde27bd7d186f7039c7ecb1f1b53ee7e127d5b81ccc3a399ed973094d76599250e88980172b36863282642541c0a5a8eb060b08edc92a7ad12173033caea6b03e2fd77daf075a3dfd50e6eab32e18e5b54a2669502cf7d6806a450d26bfb45c23b77bd69b64aaa559c12dc5a33de8a08c6461d9a767464afa2b1cf70a12567ec7db98b8390c6d16ca4ed23fc6a18c74c4816da1d0901f9b112fe6bad093056d232636ca94dc6d6ed18c4da385c9813801cfd6342408805640326c99b7acaaee5387533eb79c78c023eda4e59c39a281dc326f86e2a3e9158c625d67a97da3f83606568d40f205735baa519a5c82040b0dde0da147fe0e933f78c93367e5d4f12144fd5a8dbb1703f11d2ba5ca330edc4ae95f650cfd6e83e3160e58c571e8c54bc6dbc7923f36e4c5ab0098cbc6c426c7752dcf2690b356d69b9249e64eeb8dc49b1d630798d82d73c7304390b7443d4ee88ceb41216cc88a28a9b7dbd98752d02c1be8cd9c55503ef240575f7c945cbdd72880a0a3c258b7c09700a580b1658236e63bd510c7988e1d0d77b343e4e6a71125cf234f9a69504817886f0189faded90df981ab2a660cfa0046f52710bec352176eec2e4c32a616ef6d0a03d2bd84c87826a213aef697ce4a787d9e435cc927759fa2a395347161fd7f215744e6ccf11adb392af499291d5a27514e2d26d1414305a9b69c89925b5eca6da3c47a49e9f4dc52227173879ec55af3834cd2944b2e329d8714c0c1d015049f1efac3f03dac6dbdd8f5128520562e278c8be7d97e3473c35f30375ada3c80c225a089a7923de0eca1a32803fef099dabca4bc534df8288b7fd0bcfac6a2f867598b9bc60d4d8a650c56041d810dea828cba9e738d05163313fd6a3d3ad54c868009bfe73ce565283821e20bf5cd7d5174471e9e663f184c7460e253f43e9b02e98a14c8802f21d198c789aaff95735558b580c7c0eca2910c8e7f794e8f6a400bcc5954161756799be18b7556989979c0437e412b42d0a1cd5eccea2689a46ee8cab46e3b6ba220ae9ed1e1a5f4dbe267283160d01df75c7a96798c807a610157e07e3b38a880534939e7f846245089bc916c1e28951f365e028562e397e24ea307de1f5f8e3d337da4280f3d99ba846bf4733e3692d0c826ffdaa4c09eede6be094269c73e5ddb39930b372952d7c4657e61e0a094c7cf86885d8decdd39f18936539d66e326fc6341eb6bd99d0f30c0f06088f87cfd903953b0e0233d4b9ed1dd0d2ccf341fcea5b7fef9a868d43a34b561e1868f7f44b8804e72009bee806890ab170effab69f14ec39df0b4d76c583511edb2718d3e295b517c6eba6ea63516bbb6540a3fe84f32494306e83660f792dc0cf50abef1bedc96cb0cb871dff81e33bad40f8e06938851575fcf7f808013a8fb48614bc6fc9d83cde719db3d99d5e161130c3362c20cc3c4178caa973e4d53c9710a99811163a769362a9b93506d87de91a3c9541921cf38e2bfbb42c71739103d470fcefae45d87aefec37a3504faf926ce2c5ef4ed30de23034b107a5af8cbe6e3dd5893a599d4c79b4d7210c9a1babd92fc0e93834aa6a5f17bcdc032fe9640dda001b884427be17389081fea34fa64a1ba7bf36d291cfe0aad1b55f5cdfcb005c275780fa211b2e982a995d2eb28beb60e2e72697f6aaf77c6e7a26a27e72f1fc7cc5eec8e4def776aafac7213520aeaa1c251b640cd2466573b280365e84cc52e81f6cca33e4b55564ee2d86fc7490ee5f217fbcc4a33883e49194673a8a70daacb2161f71161f1a3e826e58b7c6eeaea0ba58a519e1cea495182f105e8cd905d42482027565edb29065c46682191122cc2057993831bc5fb51e61704d907d3651e39887478545768b42b99f8fa58c5cdb82156ff279a14de5f2a879913ab99988ab7b54cc788cdeb83d6fb4099acb6c8d3b1b0bb4471b281fa21bc7899d0d6165c3a79a26246fd4b9bb7bca094dbb0ac789ca2073ddb57d53e2fedf94186a9217e391a9f334c24d1fdb94e3eb32e1e0295fecbd2bb5dc8b2c21e348b8271672a980eb4ac2f1b2977ee14aa0cc4ec8b260d05ac57e65552e37e79834d6a44e6db473162868029e42e552a4d04026269f262fe4328ebb1708bb7a812f9d2a66577707d43037c1d14e037e969e14934a36340d6c1b84519366793e125e85af4d97ee87ac10b375c3ecaddcd6e520ed764cc57c388322dcd6bbe4e61b697f274037d1e802a6707e3936fa48e01de6b110eeca6791680324c409808ca9d0856c094419facb73bb9029cfe1753f34c1c79557afb5929635a0fd4b2e3f6d216ac302c3d69f11afd530cd54e967dc62190a17ddc59d1f328860720d525331f263be4871cbab01aab96994e97237c81ad2b0211314f606c969a8a5584377c81f6aa9dcf815cb295b25082df9757dc8a6c700e0ea84658b824ca999fca94ec39f2c7096f22368ad625372fb6b5752ef6b9550aa52734b3d54b82ec8b5ed29f06b43d61d7330e2e83a0f3a8781ee68f1a8128f5a754fb86a9ebab9e333cadd01bb4288aa148ffe81aa58eb64cb4e9ad2b113bac3f7728a5af616a5075377b0849c4f8b713b1d1b5fce50a1a091baa71cc8c91cd6eac257c724dc79534e21d884f5f72a67088281b7acdb39c31676904390b20eda36f35543e93c8c6b24240b78e25cace0f91ed9f5b925a69d01a4bf7f0bb75a7107a927f54e2cb7b701698d639217bc40e20d23c8ffa27123ab493ceac89c6e242588e71bb520541efbf6b17d49ee68fd02415ff040348f562eb576c5cf94dd8951d48e772dbb9c86c8bed3301f38f99a4f311414a30b8eee734cfe1898337ae09976cea01ffafd661084f996d7368ec9288e171c1c4e1d2c317532170440eac04a8ce6d766b8f7cbcdf2364345f39b00ddb86410ced4b4821dec75a451ceedc09d96c95505b46e1984e09a210980ad6a2d083998beaf32c4da6f39acd3ecc555fe2ab23a604631a54e068519611b9f3423132b83cef4e890cc920b3313c29961b0eb7727442ae0af7db238f42b082b1d1565738024e8aee02a140f66c97488923920fa2fbcb49f7c69b61a71e1b18e715ee683e50ec3d9749de75ec452423aabf22f287cb1413c7c88328d781b32105238c65d16b021505027f818857046a2a4dd330531c43c3d653216002b6d30fce668ac16c217f05968d6d016a8a58ad2cb985da744b151167af2773413c5890c538cb948a29fbdcc61450428b9c90fbb784686022a76bf30b62ee129ff8b370d49856a24da48c0bc547179d93705292e413a49f41bda2292913c3a7d0a413d88a6f0029b396b66eb20c5ed0f125699a2e0bad4c6312ba51760ded4cc06672079ea47b4b9304245d527aeb5345d74d92a44ac0331348746c29200e011cba5ec2d1f7e07c4ea7dc15e8bd3f4605bcc93f808d91fec790c982f6089877fd467654bac36e0165c227aa8a6046e2f210f56ab83858949f830da32736b62eacdadd3383100c17514edc4b88f5b675d25beae47b1386266b17ee495e8f63433facaff551954093c7701b98f688628b65d28a166856f8c2f80e0b782f0312188747d787c157854dd195e6a77cf659a1b3b87ee258e68ae464c4fd23677167c65b555c0977978d8da283d02ad10d2b1dcb6ce00e3b01c05d8a6020763a427a2f6e144049a84a8093d698d0c6a2fac9af095d2282f0fb15032ebd328958a1948afe896c43b239312b34c41cb0a9a5e42532fe6133d0a6ff71cb8ee4f48432f6cfd7c8499ce30781f1d071f9859b760bfc23509519c00a978e7f00851cf36cc0e8105166769f65f367c85b33f2af6f3897126d612abc3c757946870a557468c65fcde9e3d5f01455f8dea844f4ca275b2f041f54c19d3db3e2a2b7eaaf7aa480e6220f85b58c49f3383b922745420e01ff708f4ff0e3c645fc16234db3f2943ca3048b602749dac035cabedd1609ccc228077d03afdae580f6fc69b793bc124ea95da9453c1a2a903dc86c1103027a3c0cf2d9e41f354980c8b9b38f039cebd11481cc9c883533668791407a57f0170fa717f6034244a9adfbfcf09c2ff2353f0264700aba1e9567238ced94e93a110ca62fa27c95fec0d6d40f6bcf94277ca55c362441848f2585de3ba89403f594fe391ac3a5d07521b8ddb72c33afab68d2b02f4dd284563b517b2c6c08b142ba452f8633e445ac5497305a9b19d8d9e4c3ada07092a883c0cab9366bf9543f1a2329d51da799f30ca454e824e0b4bf9a023262b7b38c8af1c00d5ebb6f470707e825a0eab740848705bb880d8c0e66c4bf7de132213d1b8d0df13f735c119b6897313d6a1b546ac79949c4cc1b17a3fb713954ec6ed7d5358fcd10922cf280edf7045126d76c6aad513aa43a031308514333a7c3ef897c22ae6b6b3f0a46599d3d46149f9f7c10ce5971ab7cf17302517107baa8fa86994ef6fc600ef477b6a57b9ceaaa59c4e2b96d2b81b0de22ee6f75499207dd5d52ca08735e3acb8d23a3fd993bd764c4ade3405131cd65f15a7f565729de2925d59cad152cecd41c2e287dcba3ac57b70e0ec2694d9cf36559412bca1cba2044e5643316ad263883db80d454496358e23c10bd8b7fc89526ead48fa23f45f8f7137f623316e8398ae7c1066e838a00689829eacca95c8eea6f1d1dc441baae8d3a0ec85c7966a76969ae8438dd7c07490a4d1b2cf9b49a840a6039e9e6f14eab94da5a9298d51680eb508520000a3884a4a0c582b6281c24394c3fa003b2733a78ddb1170da9b6cdc9855c84eec23ee0d188424064d8d71afc033b9ba3a3d73d8ce27fb14cb08c59d094a0749cdf48f87cc53ab0c808d0751a238fbe4f6ade19106144d72e6c9a62ef965b82705051b97a631c08fa563cbb31091d0522c89be2178406c671824e035182db0ff3eb9c2ad135e6aa3c3bb2c97b2f85cf17ef0f064909cedc25fb4b20afac34a754ebd42772099b0c7339da47e0c9b4d16154bcd952dd039072377c3ca7ae2167f1357d0f1281696035bafdfaae6625e7ae7941e5bb65ed4db52cdbe7fb8938750ac6d79013e0355ffebe7b7f360f84b4b023db828fedf7f92aa4cc5727569f6d685c6ec0f60c3bff502d129ae20cdd82fd6897461bfcc36cd1ee0e0341973714851da96207f9889a8d211badb9481e9a6dfa3efb904b566d74fc7db4e109cb545a8382c9e9689e4a5b834f4e6369f63f2ab941b4d8aeb764793e76cec416800570b86637f52fbc3484d1690e5ea7df1d8d86b4949b6f03a4466e17ded5c65cd58bc45e87b08ebf74a8f635283ae6f450c99d9bb21fe0b7722d9a43d62514505e51e6f64c86e559d89d7fa55fdb1a57456b9a859c658f381e1760408f10086977fc7878793209234a2bfa2ea5f932c7781dceecaa048dd3f28dfe5418c187116b25efa73b92294160b5ebc973a47c448438fa56639a41b0c8526fd0fe73035703f369f2e4338922566e547922a7965db4fd5ba3c684a1c08716aa61cd82d940de11263ebf33b080bc47ed113476c3301e4b7d18d9bde29136b0c64e9b9b942d06d9d4ab6f71deb9279fffa3ac694fc1091e12d25b512033e285d14a9e29dd045d740cb5a06bb0902bc9241bee56a79646380865e7d4525bb7816b0b31929cd339ac4dfba6e887cc06e2b3c724be8317099aa17e3132d3bf53c39c95370d602fc9596eb0a354491e589517dc8358756d3fa7fb5fe73f60896171c1b4c8155a359d8423e3a19320ab8e50c25cc190510c2752cc27f180508deabb02e79b99216605a933a3281f91a316cddb4688519d0da379dd4fddfcb40908b0fd38a860d60a6ed8066dc7cf46e4034a2d2944d158daf5be9d0bef09b05f0ba0d36ca7779fd5bc402fc7b7f6abf057b8405f93c455324109ea4751b928075fd472381c7a99883b7547e4625c0ca7a8921758000b3075c8417fe4b76e4516566a9d1cc40780dbb28cc9438bde8526c8f3e25e337a3f6a58957e5b99c4fd66ece30937ca9612af30c8873b667d6b570246f0b23f796d96d9076972745296188805a0cda098397b2f1c137efc0a45426963ba1a9b484d0ca44d4f696a65e5df7814480fe9704c0944d224481b305bb0cdc40fb9ce61bcb649e5517c5b30e9a86ed0c604353914ef1aae4577998b53a97aad748e7d49e2ed895cf0607452a671ba40bac941bb82e19e237086262cdc6e96097bd586586e755fa3f2b205d6791e4c180aef12ab7f59a088b520101e61fa81871314b47a511bdec1fd17d048c8084a8974b5fbae1d2e450d66e2f9613cc73c938bfdfb0c939ad9193606c64921697bb06efc5a7dc0d22f8c33db15508eff12556f6f3430c626ce9c3d4db410112171d51e47fdbfbc886cd7e8b7c93d7df5eff61a22b124e9bf3540d976e859d344dacbc12a8cce1e4fed599bc710fffdf97590bb1ee0594be5beab33f35d97f933a5f0c674f847128dbe41f23bf83b14b9bcdd832e2aa3ffa130baf1666e215b2843ff266a34c4e225c4b6f788d5915dbb3d6df7e8515f561f4683bbe27d216a967bdd1182a8b9aae5f9c459f8ea4dbff14c1c0065648a58247503965e69877738e4294130bf4f01df0e61b496348dbf4a50030179646ca46c3386d80cd9a3ec76d64f2186afa27c921733c3187954fd510a821694fbf27de4fc12545002fecf7f24b5e82bc37b75857c82905c80e5e9b1a98f77f6fd5e6fb3362ad28ab93d999e88cb8b2a57ca4403e56db04f4b3624ee15a698ed605d87eaca0408aef075a8731615a6e6260592eee2d8551f6f84cc67c8b1e1e8582cfd1f87a74ea3e9a53492fad84e153d80fb0755054856515b7f6d0ddb3b382688fd8861d86e11dd1b1032844f702ec28f47db1fb6059a2c14e96c682f1e2cb0b5f1b1f857182765e393107e24fd63f0ede65eb662dc46fd4e79f3cef45ffde623d136e3087fefaf52ad29b78a339eaa7bf57919e84ba21c520b83d7c3316b6bfaf44830a261230685c4a0717c816f964b79267231fb34a01d41603da6b3e7a5c4090b24a072d36e1e5a613849c042202b4a591d4cd90add1829704d8ab240bd0fbf6c2083f82235eb0896871b6e6d71e5fcc0bf44f8c5d96e4049bd6bfe01ea305478cbcf4cf636784f7315f8488a811b237d97b93bda59432a594023f0867075c072d1ee2674ea2d5abf500e78a19f26b69b2b8cd91cf91b157105b60aba605b62e1974e1b6949a159f6fc456ab85c2555b60ab0605bf5a60ebea2672544417ee10ce08bd936ff02fa980903d7b336bf4e92f8fac8dbfecf93e80a2933d3e51c6a90328eaf8e98d8459e55f6e238fec8cbf92ea3b54973f7c6df9a416a0f6cb2ffc21a54449e9a5c58ba98cd49da930b37b94d2b3cd5a7a51ea08aa3a8a2a4e474fc74f83b2371d29e7e3b4947146df063f2453cec9734e14e4c048fc26ff76721e895d28155177a51554f75f3925cac249ddea12291d11996afe9253ca89460e94a4c007072e433de44812542965bcc2cf12450dc1eaee598aaa3fccaaa683a94177d525ca3214255bb7f198091e25b4e4b4d737d892c3653c61c493d3de44c112390a683ac3282773cdbd1718008411567260d8a2f850831cfff65ee017e4c0f072831cffb619106a95e34a052c4521e5879160a158c31f5affb4cf7608faa77f6c909ed6b31a12cd4789d0c6a8fe903d757e8c578c524699e3c7e3b797c3a7f6cb1c3d3942c0377ab2bc38c74f839dc35d3af327d101f9cbccdf7a614d1512520209258468201da87a958ad3999c9b4eb78c0e14a3021c483a909c1c71e0404746645a01406474e11a7d7bb5e0480921315cd0c30f56da93924a2924a97c2ae9b350e5a48944f56f2add93eeee947a4deda654484a2aa994920a492aa712934eea990b4458a841a7525e41424784442584c468a2bdd93e379ddedcb3d65c4e22eeceeba8d8eeb5cf67a4da4072faf6c94dc79bd2ef66243aa946db254f2f5e9ed62095c92e19a9419fd2f98bdf7ad1bb885c3c8f905adc0383144627450b4ab632e14626384a6856fc0a76f4be41116ac20680d06073dbac6cc4255db80a6d8022d4d8885a832d29c21f524a95df34d218594750b7873a802a7fec4da73f1d3f3a72602f7a92488c2bf5007589c29052b3d6a20deb08724f4750f4666f1dd5ac8f4a9870fe72ebf5a194525ed785ed5e570843dd90488df4e5e4f92ddfb85e7af12f6f252389bb1f63c47120b4eee3f4a45cd7a377bcd2aa9265bbfd7a2191babc38beded6188ff8d403d41dead9a9dfac13d3cf3e95a9549cce76eb4d67e7ec9e3384a1f6738d48f8c6beafc72eccfd9881d0daf5d7e3ba44284b13acb73563752f3d103c18245d08426d19508466d580d075f4e2524745b74f822d7ca20482e2a7a9621a8d31621f5f669b61fee1d0f177538ad3523abf5f9bcee49a611e1016b613b26d87fca902144050ea8c40f45440aafda5d060f307846b0b5cfd631eff8c76516b368ce81aa959e1f5a7efefa466f5f7d1de64dfdf5ceccdf48070f34f7f79d909cb65d12d144a7afada311f08f778ecc3405e0b5caf29bd25c7c43abfc6c244b70d82295c606fbc0005f85fadb64783de069141640dd7a8b67f31c3a1eba5139f6c9074524a29a54356f8544a591097c06cc1b225cb16a49f6d22af0946916ed5c174db514a690d2f29a5748aa29ed9d61446dd6a7a130faa8197a873ce30043664054b0f6a861d1e9c64644b9688d125d8249fd96b2ae9600ca13186c6287ac0112d4e723043872a5f0451e43f3b3b3b3b14d56d02cb4f518599dd043aa5319446511aad39a791f6c28529247812c50a2e9c68e244494dec791925b8075fe6bfabe148ac3e3b329072461459d0c027053c400821a124794a29a501959ed92a57706880650a233c821d7258222bce50ea1c257a967c802cdd80071e807e9638837f0062244155b04bca2e50ba20d1854a972a5dae4cb0c8ca22d7ca60848c39e744a2d433cb549170e1f131f25106a09e59264eaa0c5058533851448d231d1c79e782c445890b13172ef27b4e27234bdcc867f6ead9818a93cfd7cc28fe830e66060c3302b680054570a891544a295bc0a467d6091424a8e0b4a00aadc90137a9f4dac1862b54c9ce0fd3880b29d26589054d413c1ce1430b66a8d2e4a293664a3db34d4c5713976ec53d6001948427090f37a104171fe40c46a2163f1e021423e0c1bb4285164f0c9083244048240798528080a704cd43ab0618c81048d1ac58da42860d5820ad20678aa0cea8c4a7a786193f3fc42574cad94350cf6c9327393d4871308a3003885a4730cd9e39e7ac01dc160c8850fa41674b08764ad0d4aa011526433d5958d1848a24488660220a5e8202113899734e2f50c06382252e909498c23c60e1f3c3fef8cc5e5be44043723a519fa794d2249fd9cb8a114a293d32e99473ce395b3eb3494c24c1948c78545cd104180eb89282218ec44c0c30543b4c75870b4f8dc187062aa30f4f9aca90a2c90cb8d881071c9a96605133d1e0d233cbe303b4fa2864785006233559ae64c122bb1a5071850a9c28028d20271c3483aada82a9c89c734e1f2cfe460723451538d050e3014456c460869452ca23788ef03902e80826473839020aade9608af880c940c82f274c4eb804c113844f10401fa59472ca939e59295384ba2943ab4fbae8a494529a44a9679649d6245c42c0b3faac093a43d0ec6186288b04c5876ed5c1749d122762031420f859b2430c6ce841874b498f11343a3832e79cf309979e591e1fa09c219880b3c80d5d84500c9a734e1fa6c1c8c61273ced9c44f4f9db30b23974c315161aac27485090b53964b4a294f52269973ce39936891318184004668145ae0f080a619dc400436b482b2700e60d028988ecc3967154858154a58154c58155c302b78306c87244600a58b2052a054844311a9170cd900c45bf46cf1d375d184a45b75305d477d7ee89473ce39736861d89c73fac060ce3989a848a97332c00826a410ed4044182960a0268a90205269c2210bf32065ca2cb2ada61e223d3198a1092a579431c50e3704694e6a7072290d291529b5948c948e70b88c9c9234b1fa22491a34bc6afe28e9de61d066008550f402172cc528557ce892a8142519a38603423e33e433fd97771aa2e326fd970e5dd01714e4362cb4424242f3b752f991ca9f9f0f29634f174918116165890bb468e584febce3dcd3ac1e255a80c1c36ee3c1cef47b4533bd5a9a2b5db8aa4dea0a00062732fbb241173e5c64426f52e58f15aaf6d4cbe88f55d5fee837e312fe58d5f9483dd47f5dddafd0a07c26d27ff350ef71a5b3ab9a16447f058a0dd1d10f37e907fd58f019f9d86fb336980f57353eec34ed0b5f3e290dcaad614ba135be7541a85952dc8673e473907c3937255dc8413640d0d10fbb499527cd63a1a591ef82db7090cfc80fbbed0b57f2b518baf8610fad51a52fbf87aa1435ab7bf9dde25ea65e7e1f75de7c6df3ba6edaf754eddb9eba679f65ee5aa6795b9d6a59e6bf7dcb37e6530c4ba5af7972d3718a5dc137e86f8fd3da17ba50353a297d4dd3b49a6d9e76653c54e563f2b379ade02ce0903c567690908f2de9d6538cca4109294be5ea12d1e0a8aeca8a142995776cb8a2ce87ffae1529439523c031d4fd42dea9feebb510797075c3f8313b4e357e40b8babf30a83535dc2e15c7dde3bce89a01fbbc01e9aa7f541085e153b1c7fc99480b127589b43869d525f2c28a9a82db68f49bd49c9a74e162317ac199c490f3020c2f30c8d91e069812e44499df9f82dbbcb035980196a51c18568a2a538472b62f8a0fda636fba766c21b2621e0eaf468aae86027940972e5d2a7df684d03e7a426c3836afe773b47f1beee38717ea0bf94fcf79bb3bb379fcd7cf4d27c39e85c88a9dfef4d9c9f31dbfb3b353c256fe7ce31142972e5d2af6352a5cdec9882e5ca308502f2afd7034d8af79353ed33f79e8566856bf3f7fc81f4e833d4283fd3d9a85eaa9fd28342be6ba60ba12cce8aeb0c6319c42b3bcf6abd02caf3e600703cd5a221a7487bcc35aa22c9c845f87a22c5116a07e5628028e66b16256959f544c8bd1acebc4195d2a7fe1267d0375e1d76e119ac5dfe4d4585190d39f7a78ca2bb799ffa7ae27271d0f763d8fff107f3abf987dfa44724e5fcc5edf03fb62f6faecebe15f8c04e65f1fb35f8ff9574c0ff9f4e5532239a7cf2e6f73a8b739996b2727dd3601cea1bf31fb42b8c668dfc31ffbedb95e5eccfe9028d90fc1de7f4894edeb11fffa21fed8532f66bf18ed9300f6fe3db0f72f663f27fb7a5c1f7f48fc62f65b3578facfb9fe944417933dfdcd89c9e857007bfa0d89d2c3fffa21f1b1afc0f5f4e937c4fffacd3909411fa74f7f9d3a872243f1f0be93b049144ff4dedddd45f174471c649dbbc7e67831f1e85d46d7de7c637997cbe8f877dfdddd7796a09594a247a9812419331a9b8708a80692a8bbaf0c1ee3e717a681240c5ba217bdc0a060c418e7082eecc4012da798456d04f14f9b4ea43d641a07b46871db11ec8d50fe3c611b8f21de1b8a035a5013db76604b64cdec309109f728a50efeb1bd2313ddd18b2ed4d0983e655317bf305e9d3107864e4324380d7dbbff88daec5a674289d18bce8bae63c7eeeeeeeeeeeeeeeeeeeeeeeef6eed81dbb3d46ef18bb638cb373efeeee6e7a799c53ba77ecd8dddddddd172653bb4fabdaddddeddf2e4d7f5c838893fca9996b91892ec451e3fcd5aa067439258cc63a9675c47a5ded3f757eb2e533ed03bd5c631d5df75b3e7f86ed51e58d3f90adfea1c57b23feda2ccf84f28adacf36b2c5332bab60d6362863504283fd25744be7e9e8ca82fa9c73ce2c75ca55832858ead50c3a18599768063b35ecdeb1d4ac6837e59c920a23536cf01abaac2e111622a8d2617589b078e261745b5d222c8cd8a2937589b050c183395c342d17435477da415d222ccca8b12e111741d4f06b5890ad4c7c9d167a47dcd9c996c61fdb1b0ec4bb70a9f179dbd13b357e41e20bb92ab634aeb323f6872de8bc494f676b7b2d34eded0497cd8eeadf0f88d7f8e9b0ac5167f79422210658640dafaac97815596c2c2361ab07258cba6a30fed41590882d0dfbb534fb0171922655ba252a8327627bb3756f56a6b4064f7589969a6a8f514daa4e2461e2040d4695488ba42a80ba445958a95ef8a3c2380144939aa3ae134048a95b20d18262d42cfec6d22cdec249e7b410fc445a14556f356b89b46052f91d8b1f015546aafc118c2ef4b05b2ddee9290a3b1d21b2eec7ff1ab6944519e9c24e4ae56f28cdda4f88f9dc6a90b134c83244d99fef4627295de8ad9dd9716dd31085162eea2e18722f4d27f10fb1549977bc1a72939e287e5c1054198bcadf646974e882c4267bb35588f9d213a2e76de67363e919e61fb7e19c6e9d8a74a1b75a595d279a6250433faa5bafaea1db711b1f729be8ad6daa61b7b8d4fdd05b95ff8713b095aeb1709ba4e8826685f2a8facba3ab8b38240e1087db5c8fa3733227ba1047cb71446f96da0db4abd37caa4625298b5ac55113911012524248088c4cf6b8cdf5fd7d60a5ebc18e6afccbc648488c52f626003972f4e4c89123478e9f9a23474f8e9f394686547f2c52951fb50bc382196157604698513df5604698911759fbd4f85ff863d581d0acdeb66ddbb69fba6d5b5376b5cdc53eb52f2f66dcc5488c1446b6cdead736d6766f7e7bb1bd7d6aff6cdf3a7a36e764a6e22cdd658cddd18bfd537ba8e2748cb1bdfe69307a777bc72946b632a15caafed9ca832b263b62adf111e6551ed755f61d781dd4a0f3f62297dca68336e74a7de18abff0555f08d20af33912139dea61de979a55c3861ef94c7fb0bd86d42c5afd3bc86de891ac353eb9448f3c458faa7fdcd2a93e1f2faf7a982f7cf9d4ab1e025c776952bb15e505899b5c0a616ae81d1424d6d09742792508fb532f08d7e905912f6382ff8a2ed988821d86dba36f27f0cf8f070827b9f2069bd5dc4e6ac7c845f6f38998aac85937d4ef0f8150e963df55fe420eb58b84aff23bd6de4e9069f0021bfcae168070955ff39a0694d043851f2ef0fc307982c4d01523466a567b7de2d3f7177e75fec627c87c21cc077636e8c2af2e758290b0f57a12b8c6aebb37c2f9cca3790ca9198fd3675fd8753e8fd327d3600b5c43ae930989da4fe9f3531d2c014be31bfd8030d8a07f7b3b4b54fce92da0c121357e354b33d4bd4cb37a790943225be9a3ff71741b0484c88a49e1ee4863ac608a087aa8a8b2c3173f1c21240b28498880062bc2e822c78df82924d0d2430c94d20023872c588aff94a225a1ba446048a97589c0681229138f3342fcd3c7f81a8e1a6b6a046b64a13e3b7928b9791b1bbc4ed83688612fe311a934667e5d6d3991c5e7fac1c4a1eb5f9bedfb35181d21b68fac499a65d993b035fb62b4f7313ffbe66bef4fa4b2176a5548c5fe44a4621eef26b7aee2baa84442429240f80ec6d1a0db2a4e3455ecbf62d8e914e309a9c1ce38ee37522735d87d844617f6522f352bbee49eeb7b77fbb491f015c3fe83ebe367d969b300911c0df317427bcc1362336d59a7dd4c27f6a673fd09c3b00cfb0c85711886611876cdb9c4d4b4b4c5c867fa4acf2c31352d6d51f9cea9b72259231d359636c22235e62827659e4c2f6c66f4e2c79a60cccc7cca3466767ed63614c7cddccccddeeccccddccccddeccceddcccccccccccecccecfccd4c4b454a5a80a965695a22a430c24f9879bb9999bbd59056ee6666ef6e68689d2b9dd639472ca3929bd2eecc2b0d329cbb44cd3b60d85e21aa535c769dd755aa7525aab18a6460d8d3be840631bcecdcddccccddeccfd5cdb99d9f9864fb62164dbd90050a835959939d654fea6e2a73a33c7df277a946a7f4c8cfc2bb0e0373f4ea4e5a8fa1ef154ffd12c678fdc2a342bdc220c348b8b388151709bebfd4d68167d7f1e7bc3efbf6375ccf72f616ffadd3f167c8675cc4f037bc37d2c4db855361c3a206bb3bbc2dec4547f16f62656778ea1faa251fdfb5b6169cae8f8db9d053362e6e72386fed64c4e14be12366905bfbe4fab15f6ff239b2ac9b8ba4fa0208dba0221e3285db8aadd4eed07e1092182b8b24744edd798a7a97f5a083afe30524aa9a44f6964d177a794524aa74b8fee2e83e8755d30bdef36ef335dd30dc5a11da1c1113aad2f29fd17942b2ff02bfdd91bd060bbaf12337982c9939099d4e69e12d8a79f583254fb85b44de77477941a3250ed5eb9bf721b1c0b1061ba8c3f2dc1673a309bda7aea6ab04783fd263ccf6d87fffc42991a7df84bba058f0f7409bbb259f1ebfa4aa131d0603fa703fb882f9949b3224c832a271d35facaccfc39bb33b8524a2939c65d9acba78b5c7777f9afb599cf5f28a5947476f56a96ec5879d3f1f5bf8448779fd1a3f06b59f02eca96b3024953761ad9caccf839766d3c3690ea4e595f34d332a0e5d2a6bce87b129311c4d0a1ea12290179104a3cd1a783a94bf4c5525be9baba445f1c7d61a42589c809700023082a44588ef882a14c00c91225b88105614c611348592405554abeb6f8c000a84bb445861a767f44b75a92ea42892d6773e2cfae85002f66204a7a41ed972b2f23e5eeee3a51cba2863001e8ef9a6c1083dad7151d7f07b344f52a6bd1e2848c2533e841871298c1c389c806486a770004537c5c5085184b39c8e121ca786203a12edba00ae0b1a078697b59c90193f224eb42063a5c453c397531c60dd4080301d0945274ede0238968a241fc18f193049222865660a488a6277e8a3822aac1154a72a424d1ee76a69c537a0e9d5697288b14527435ea1265b9a24ba7aa4b94e58b1fb2e0201ee9527589b2b8a1060552851a572bf97d083be77e41628d9f1059fb190753c61863e470f7978679798bec6ad6ee833146efce666dfae31772f426c23074370d59fff6f6e2d8a17a59d1f12ec3808de8f63b363333b3d74c05707420666666de9531cae89f51173f2d049d7f18310cc3a4d7808a7d74c73077c73e8c3162f11dc3b02fbc40a73538f663942a905dff642961f405d45088740c3b11c130f90ae01b7c03fb5953a78e02a49472625ba977cd19575ae73f646afce40dd717eeeeee15bf06f9ba3ad94de7d7b1894c8e4b744a4e31fe5ef1bb18e3e31801851863f4a07601a57677197f2158f7b7777b7b57a7b3e8d1a34777ffbe69defdafe1b5577fab15ce85e336cb3cbf90fef545a04ba38b5d3a193f1cfed59c76bab006c352a9ea410dafcad8cef02f0da6d47d53173c948412be980271fdd9a989185b86689223421939fd1cb437dd40ef31f4b7ce0eea9f265dc8423fb59f85e2a535c842b18170864e4a745b7b38077b9e220fc8c1becde9e19c18ff622ae059beb8a14b0ef615b8ae2fe6f4bdf00210404a3b39d817e31f0aa7c7984983fd0128140a8542a15050b82ea5929fa53cad41ed555ed7a0a66ddc87c2aaf6a96aa0cffc27f985a7df06298f215d4f9f3d7fa14c90f9f1dd13c2d53f7afe59778de4242723d7f27a1120e0f5fae8101d7dae614dcd0a1ad81bda2f43580cfb9a05e0909f759ed6e0f629af6b708b0d6ea8e79e8ed3ee719d41b87258dd3e6d665f74fa4d7df446fa21733f737fd94a5e47cd66a6d29d4ecdcd1d03b747c7d91baf8ed17861d7633e2eecc22eeaf9b8be3f5e180eebe02a7f848b5e912ecf6fe3540eb0c418638c31c678852028020e994b03619873ce29658c72ce39e79c734e2a93fe9cf3e79c73ce39e79c73d23989b218af06e35ecbfbacf5c2ec4d5f57d7ad56ff20585313e2a8cb9fc6044c8db5a1c0cec4117a267e6c400318c0001a9a010ca0460000a046f9f5589a88c3d3f14715642b13ca569d9fc5b6e189e25fe49f9376979ae68275aef65b5327194997372823433ff4255fda1bd61aa4ef5b809ab597a31163a8f377e3913a45a02254fe9691f906f97ba34647a7c8e347fd85d78c3b4b6ed3ffc5d08f0ff6604c3d337f3a973affa47dbed4e00cc2356ee9aec71e5b9bee99dda4ce0fbd3abfb083e637356fc276624ff5e7b5f125a75ad4ba06e7778fdbf892cfcc5fad967aea0aac7ec54bdb742e9e8f7de84b35cdc27cc9c7d81b329675faf97ec6e46c8450af0f4398cf79747dc1ebc6f5281bf5fa8dabd7bb7779f5830fac74fed763980944aa63dedea6e3723301025f31ff56b6686f3f191946ab4e692578b06a40b3b6c6991a135077082312737d831a87a9caccbbc594d6e07cb9f2199d0546494dec023a194a297dc875663989482aa994df3b5a46ee90bf5ffefb608fca6d69660c8ff651e977c89479693a9c4ffb275f4d747bd3354e39653f8592ad2a95e238d5731cc771dca75435384e95e2388ee3525c2ac5a5b8a9751eccaf525c53a9548afb58398ee3388e5371a9944ac5a954a9544aa54aa554292ec5a538effad4cba738eebbf73f81eb3a95aae35ef559a75275aa174ec5a5388efb6cd37ad3e1a206e3855d3b7f69d42c5fee61bc1a2f3654355230a9ad301d3c6f301da43e4ba9388e53715c8ae3603e5698974f795c6dd4a85123c5a5388e4ba9384e954aed731cc7714f371d8e53a5fa25f52f302a984f2e35e8af4a7d3eb8907bd5b683fbd4679c0701ae196b5cea371d9527539e56b9ef069b7bef7460da0697da71eedc39e3741b46744dbf9ff7c67fbe8c2d708ddfa5d988d2b1518392b75b4ad47e10d92ea0db02f512a9cadf98ead7f97bd3f4f70bb75f1ea897db4b2fecba7d463d858a7d7b415a08574a3f9bbf1f7c6045d543377dc4cbabf3bd4af95c6a5dfe755dd7757d3bff7a205eaf6fb9725eff002bf71937f781f6210a3545973dead7072a43793164dba88fd2c7a874dbb67ddbcc72ee47ef18ba8e2e67844c5d2232802a0f9614d6e802591ab4f1a4f3333a9c66c5b47ff5974faf6faf33ed7afa3d45c7b5719afe698300eaaf8fdbe3b4d644b71f3eebe07a8a8dda4c20525be07afa8ceed528cdebcfbcaf9c777a218c7afad3f381faeb33cc03c255faa8eb7a9427afc7696cfb56c3d202d7d37735c804d4b91331f9547f99b6e11c9f52fd717caaff080d53c31dc2e9979e8ff94238c4fef281bd7cff1781666fe8fb6714a31f3daebe9d405fcaa7d80efaf2e9d5a08eccd6fbe295a89858e587621829b2a2bad5a859dc36d87092cff4f3eae81fbed1ff719678f50febe0bdd17f7de1aaeba5e9fe7186a2b6bbbb0f393bb136b167a620a1ab7c2a4317f2d0105729f2f9c5376a56fc5661d7ec051d8cc437fcb32ff440951fba50a5cf382b3548c910aaf4637c1e727f46621dbb374ecf7de1aabb7ee3a1ea5d4346aacd92ad03f855da6c8efcd919bf613dec25d5b38f93964686ae7f583f2cb75121911a84b124ca3ff9b91a3f366af0b3c8eb8e0a61f08fd5bf70087f138eb115d0658d55ffe2a9aed4176fd597d08feacb7396faf2c29eea53cf591a643eaabcf4e2f1d7eda6a3fa56e095065db6aaff163e29952a054c52fff26330d54bbb649316c2cc9e50467bf1245324a34b2115a9de571e74a9bdb0972ffc0156d5cb2b1178f924964f16d928a2f32184ab333568a388ce87ea85707d791b4478933335e844cc8d04f9f1572fff6282eee5e55b35584617fe12bbc7978ff5e50b875449a5410f7d0902b4f295065fbef0072fd597ef88d497976f75462793424a9168d2dea8541e57eac509a994eaa347cd4abd3f2a4ba9542995ea3381a97b59aa7ba37affecc5bbb6333a985749a666bdec4deafdb394c755a2b1374078e9e56bbcff09a91a5e0d0ffc52de56b9b46d3b5e3ef5598d942742839eaae1cd148c27b3782d704d7d2634a8f2b64aa397174f6e599aa5a521a3231a03a96e7df94cd33c48d5970fb1faf292f3f2bce9bc3ce7855db99746324bb354fd1de7d9f8f8f2382d8d249566c1bcafde5f1661a7f7a59943a77ab9b4375d3d841056abae0b5a7a44919aa57ab7a1f2b6d6f062b5f1bcd5b0f1fd006b57b394169bf5f272e965555f5ec0fab2e4cced2e5131019dcfa8b44c59896a182aa2110000a020001316000028100a064402a1581ec839e20714800e7194486046180ec38120876114c4300cc3308061882106206300524a51941451d97b1af5afc0647bac3f331645aaf548e0f0907503a70d546511123178403d9c6d78c9c21b3416a5024236f73d9ebe24ab74fc98ba3aed114f40c783d20662df65521a48b544cb57b3120bcaafd63a0893069d0b4595cba8024014ffda334d17aa87908d8c6ed5b3e816305ae3d301d48899e0bfbeff6612bff26fd713ea918d4b57b7b385444219e4806f39744209fe993b0def4a1aaba6a5d9e21fca548787b6c98b3d3e1af5fd0a1b6b19f19f4c81a05c86a46e0c3489f4a745818392943e743442a1da186a31bb8c165a4290494b905575a6362698dd08fd5f8bfd1dee909ed7faee7c8fd732a9f1f93b575bbeec4945329d294af7176022e3160d4af49183b5781c80d86c626ce36389a241f665cea6822fd522950f45a9221fa657e50cb29e862b7d5dd8cdd502a3fa83249f6b652b26e9b6cb0433639463b57aab1b6d1f501ce1e9403b8330d0994f74dc959c792cb14e2c64d3a746c1f803846d84cb78321029141ca2eb6ec837e9baa2adfefc6f9941b89489ec13608e431eab07701669a165a52d62b961a3b0646ca741872763ed8cdb0ea32b822612a52f8cd45626b2a824166632f1633f483cd2b812707d433d3f16b67a64a2a2bacff4cd5a0ba36b6a0f162fb1b84cbe552e916a34bb7b639610d3d2176da61ae5c3e2a3ae4b606b0eec7f1f96b1bb893681696e8b2e3ee1eb78f6a96cb9ab4fb008dad84fdbeb1887daf02024d834b05a2cf9c363c3ed6a6d75dc4879a0470f6c6172f4c71127481218961a77b00c2ac025eebd1866ab5fdb99ba899e040d2112f0838cb73dc2f9eddc3d42740e88480ff3f53a274b1ce86c2b22e49d8953e597ebe8c9a20978277c22e6a4451aa8b9ec87d41e71153b4d6bc62956f2c5f5a4c7186aeb08b746869329e261606364ef0a511be286511c2c8f2e139a3bb07b73fc62739f8bc63b4b25aadaad61cc02751a0669dc9ff67807e509ebf2d33206bf617274d87596c7f59ebe1fb90bca2e68508a8722b8756c967fff573000a7d62c4e0a845cb40f3fc0d9085e2f378b0b266ea15c0a57abf01d5e1bf87d8d8cf5c6ac53db04e7a49d89b9e41778c86ef002398a8cc89b19ae41e23043b726790fd76fcce0ded03329953380547982ef383b29c61b70b1ce66e5125fe880a0888a360ec713cf6ddd72a267eeb6d11439478093548187dbe9dafade91bb4d37ecbfae9279639fc98bcefe31270dc551c616ef86cfb792fd50745a771f1e9904db5c87fd81d0df2c6e953fcabe70770e4cb557d93cf8079a275a4eecda82ab2cb1b4aac41a9558262265ca70af17e7ff240dd2fb11a91aba38ea8d13b3f113b02cb4a3f089b7885c4c621278d422dd50685c7462d2b405e55bf8e284cbae4cb44206641fcba8461c7750c0ab1795b9402991db72cca8615f4b777debc816af9dae07df415cbc56ac827c90ff28b8005471ae3e5b11e3836f1c74b9df92e8bcad2e74b128b7e27df0cb367fe6093af31388e104eaaa297649a08610abcd607d79c0e71901249adb01f33108cd6de278d6b5890b3a8bc920548068248985579a6c1387057b143a5f61ab8f61990acd6d17f7c7b95d9ab4726f1bcd4a55219c446e688d831cff66372570647fe0033d4bb061629e1287b4025d045be26647060bf4559ee585dcde6e50abfaeb7e653c3ca0e38ac1e0326450a0a429f20068765a2a515ee2daad8fa402344013a98a3eeb3b1628535e4a2809cf98459691d5eae9a7a8203783eb35b3cb6d7e14d9d5fdbcc9717665677248581cac0927ce74253a28048ddda87dcc0782734a887b34bc0dad1c1fa849c31015a6569d6882e31e5a0ef9be47a71a3e08c75268397e63bfab6e89fe08be08d966215ea5047de2eda7e3885ec11eeb3953f2534c86e626f82142fedb2b3c70ea18b364699b03308db90bfbc0e04ee0d4e22a7258bef9c44d92f12e0a000c8981599cf427127c3ff86528f61eb4d789168eca290b270ac37e59e898311e8d8514bc0cb81e3cc218bb11b5d6108eabe1220f368e0f976cfd4903a600025e9fd30625d79ec152ee435707372a613564a1ebd40f7bcb86f41886ed17088f0bc7faaa8bb4ca65fdd40c9e2e2d5c6d530a247d68395d9952a0397b6cb1d034a20e6e4ff614dac67a20ed637a60ba03f7a5e78acf594e9888f3cb18aaa9803c60cf039d96afa7f6820b6cd63d1e903484a8196ea06dd1a07c4794d8020bb2135ded9f48588bacfd20839a7cf695561e1756fae4613ccb89dab8eef1a992e514d0defdcf29318c1417b84bce24df3f5444ca021c45834079658bfb60c9d6e402d729f2a2b8912e771f9d33c2c9b389a373b7c8cf6e1808b929b47f221ae275a08e9f5a32dd8c6395187cda6e14d8d851112b01fa92ba9d1b1e0b030c7d50ebcb5d5ecb47065105be3d7a6c69f0cafcefdd45da7085741cefe4c612d932f55779f694e3ee37bf4fee68d7b922fd5a87cc7fd757fa1bd421d10f39d2baa0e4694ac7bd9820ada5f2d8947f00847f57eafbd7a24a18fdcb5ebe38323105ef96dcc58dd472d41efcc00dfd3ba723d0fcea052fd0360c9328215705f1e2a2bfbd1883ca3c1fd4e6705892d0bf61938ece6d3986b77d37d71dce75ae8f0f56c02793c110942872d03749c69525ab062f7a287c0435a04a70bea4b5d8b8efa2a2ebab4e4cec61a98676696a6daf72b5fea55b34a17fc38305661c42ca12e2322d1f8f502a16b0337d482564641401baa08e24cd4249175d6def2613acd30a8014b00e05afbaba8ffac109e6dc8000f38903269839d7405f83df28177ed1b2da341330b206c5a66fb5cc622785dd0e747f5135c1d0f0ff5d36727725233ae32dba6da0f0fee58264784f64646002c2fbc7c84982310f45c6f14b7a932067c5a5cc2f4c2c43d206e41794d8bbada83a2c9d5f7fd50554d5928bc12f0e15cd5d3dfd4d2895f979eb32f3e7da624de3e2967631086b4d70f7f1a52acf4849487dcb02ab0b8e950c1ea829df468df5d87cc43d95e139b5c9c0046d222a6da6c40d6cf81ee37695bddca6da8651aa1de3b76fb200b70b06983f3085c743f439ad1e95ae57556607f8fdf39a161b6c5a6a2ffddd5e2114a3d03af9ca2d68f4a99fe6f6324e7792cdce6f80fd03c343ca44a5072d286544618d3654ffeaca5598c08c2990d65f5dd18b700e421eade3d0be941d000050ded48189ef8066002274fbd7b32381e5f5c0a7c6d544ddbdc31875f8dabc82c83512978a424b52c3636b2efc141309c93cc1c7a78e74e4c50889278fe2eba843c1eccdf12922c8936fbe6ad0e60094631044621e8fb509eb8306ba4401397f047e5b47429c593603c869fd64efb77cdb3334d5220e237c17a2c8d3bccdee0002aa6961e4d4732efdb90e0e6dce57b3bcbb4147e78d53e58c676da33db6ed805d7676f3b224100cce296003992e69ed99203cd784757af1d7b48b2859ab375a1655b6486299c02e0eca6affb38251d4b3c41d8ab64a227bb8e10a648c634c62e2a014b2692da7e1098a0a816e268735583361427dff5be0cfb7983dc189f019692c29d7ffec66dbff076cd017437e9976fa6d380140b47acc4acf812b706ec8bbd7636777e8f893fea8ad2a4181d1a54027677bbe5e20d2aa31012245bc4ee8e59028a4ae6c751be654eb28c1c32860c5b206eeee2bbe30eab4e1b75a56fb7a496c2acc869d3b2b965bcadd4027a27eddf2bf887573c4f5c4406ba40f5dac46a1a0e256fb5bcf4618e87ba0c9b513bd827d8322e912b6fab18594e121ac5717813d171535d903a577d8987c4abb5a9ba1e448da5018fa5ce033af7d3931b9cde068d5d1dfabbe860483e86d0331330c60ac811ff9d0fcaec2b637c038fe619249bc94f268f72ac9030964a81c9b2c615944fdb5ffcb21246fd6830ea91e59148ef56ad6ac6216ed113b2d41b73ffde328846a09a8661686be44cd686d376dace324ad5638e01ddfcca746216802abc23c546f05a32cc0ac4de65a95e0df9bb9f398dc3672286dba17f6bd97491d9cd1ee50d85e01858ab84b288bec9a02b043c96d36b121841472115d67af07f312cd16735f761674cf748cf8e06a88fbbcc49627a700063056ec624b6a75a8fec12e6e83e064e65635380d559b83a27bffe9ee0fa2209ed6db3c68e6f857001e5bde4fab916baa13bec66398f7ced013915e6646db64186d1e1d65a1a2c91e5b92bf821ef68a8970d7e7047d605802a644f53523d0ac07d750146688613f6a456b30216fb30cb54a81e5886dda06d9ffb1742310508d20cbda0e4a6f96e9c66b80fb084504aecb828cfd9bf9c4072c2b2390d72af544466baebb4df7a589e1a11846e38746c3949545f229a3131c8728dd7c3521b345b77dbf1cc19c9de563c5d9d0a5fcfe8f78715af4f3c3d8a9ba9b15c83bb865234061a7595fe0d7c04457bcac58ba5343c4738d498e80300878e28ef3e28f7aec8e046c64c7a29fd292501f007a5c959f431ea11316309a3d7ef2cc52066bf42c3bbcf8d44773c6e462dbf3791e40fe22254d91bf93c840e5661ffb36398fe7c103c26bb44057a4ab35a4359b47703a6c6a6e0fa08c8d6f890ff20568e627c55a6a9b5152d75546a51126d179ccb9b005fda0f88b207b56341907e82f162e92d696f13ae40b5dab60ee790750ac6416e7b21d956518cfb7b1e8b512f06be25287383a82b8e28de3cb00ae0cd66f85d0aa3afc74d7312e4412a4f2ac735e24110bd50e01f3d1a06e427a2a7e118348d10a49a837898da665c4967ae7d56884019618a103dfa196606b0e1b92431f888d2db699e1b08526a84536a787de1416134d51f5e713383bfc6c2f5a58919ff18a3855a8d84daf7fd7d40320b96e53d6a9e4cd6e74fa1199374c19fac833347a1ecd73decd26ecf4a6d54d0a18772e88b28c51164952a538ae38b559d056c0b303730782140d14ea79a50c74d73b79355787b2e3163b38b0cf6fab288ac53b8b427d2e14b8c94f0faa681a4561476cdc9b2ffb7f6ecb529c5eaa1aeaa2efdf8af003b7ff5755d60e93fc5dee667f953cc8940c2087b3ba63973c1173995f08156ff755178a29d8a689cb84824d0afac54c472e557ba8c0ea3971f8010df720c69a5f7a16a0e1c03d0696f021298afb7a580e3fe0ef0a14672fc841c0a40800989d697419c8bac4eb398c1ea6ba86039f410f21cd33d2b1a074e8ec6880d1f594af07046fe0d222c29b5e83fa8880a8ee142fe136f26cc31b86e303707365d2b82f3946040ffc7d7878f061e90bd557b69bc6f3294018a92088427d89d161a0f3bd2a382f9cd9461a15868e231d6ca74b91cd57e786e6793bbcb28284828233ccb539340fed8e12fd25f2719bc2c7ea8b46bf5a3751f99ffabb76f72eda5863ce0df6af5ec5428b26287bf840eccd05f87a60e9953431e7a20ac221f2debf0754027bd08861dcafbfdbb030b5b9b69edf74094388d2d80bdf8e0d1ddc7f05176be7eba94be2b50ee0e986460e970e599b04c71fae8378249bb4ec5f4ab98cad54144b420b20c56b87e916360e0c9c2c1149def9a6a607aaa54eed25efa66a07909730aa9a6eb6293912d7c545a453d6b69be6101b6c040a57c6ed3fa42ea2a9a3ec4df553dcaeb46eeda5d798b82c8e89da1b99d8e6887051f1bfd86390d57e0b58d36488eb7bf779cf1d69f7e6fdd11138a725f434975fc4b2424a254ed02797250408b7ae6f1f0092679d81ac0a20160e2f70d452927db62f7a5d17e8571a3386530abe332271becba5e9b4fc4aacebeb12996219c6af5b31f54bdf16b1be092c186da36cdf1f02c8d24044e9b79df1aa264bbb53f37b1c281d01198ffa01a1a830197fa505f74adf2a80a5fe3916fd324910007f0158914316e6216f6c22c2223c82871761be88382447f6cdcdfbe49590d0151145121011cee42228fb14fee0cc09c3ccce5c9dcbe5b05ff9fcdcaf8340c9e8d2c687d7aceb7b1998e675e799bcb9d0a7134904e69c8a286f977cc56a7b3b6a1724ca517eb2b48d2be989abe13229404025f68dc58957c69d1634a0efd11c991c268ab6eccb5b85f8fdc3062694deebdd20f026eb48ed8d99d6015a457f8190955460b783585b76b08fcbeaaf56729d77a3557f577344d7a0ef2a364e03226464ed775808801fe9647e57eee1332bca2385093d5f4fbc0966aaaced8a77f6c4ca15df3dddb5deb0bfb941a8b7ec1af2a0a547133be48abe8291efb62fa8bdd3a6a1811e9c69f1047ece70860c3df65029bca476cba234b800ddeb30acd1973593b195287aa01718aa7e37b5e24a7bafd03bd765d395cb0d58b7fc81c3b5230fdacb9d7cbbe0d35772102f57a70d740dc8752cb639e45ab0fb293cddf43d942633d5bbc2f6e0454d18a80b030df7a2df788e0775a403e2fd39f86bbbc70eafc99091585b7de501f51af086430872e3efcab807b0e319f603de307eb6aed6b7de53baf30606fbcb5dc10947ce520d082170923c42cd86ae0d88b5326e31f121046811231c1017122a929dd81754d7deca54f283eee8a2a030bc3ffc62f0f55a45cd0b0edc107650d3a1bdaf6679de50098f91a40a3000139186a08373e3fb39a560354edd4c75a948e756f14a078593ec047fb81ffdd13a14f9a860744e5f14dd5c859887be419129c5924536424d78e6978d2e16b960b9fc36b841102562ad938c8136231b4560ceb6fdac4fad27b7dddaef1b2b17619ace7e5434c014fac14d038d7ebb94f059033ffc8bd8c1a2b0c14e6a10227c6297f1c1c5f5915c5d70d9323377aa4f27c360d5ef8c08e76c3b3df402ad11e8ec756ad3d760f251ec8c4734cd66f12fd2daa00f8c695ffc6992ea3b0f37696bbe5036cac7b8c1280b5fe0ad9640ae1e2533aa427073c79870cbd081534f7578ee1170044be38fa65bcd734771cc71e42245a3c2ba35854e1691b46a963db9fc15ae35acc70d65534f283894c859f39026f0bf691e3b3925342ed63833920657aae5a44abe43c9b8ef9dd571c063a77b467ba069fdf0d30f8b017fe6548fdd4bac60a58a3faa9016090e900bd4160412df345f100019848ef7a10ee6b475235e1c69ec29431a42e5180220f4f028d49d51e7136ab397eda5d33e74de76045e6f71a8f15d59bd1b0ad9dc876de5bd14414eef65aa10219fc5efd1e87d75f5a99316acd334cd01bdef80975b49ec2acafff0b28bc9bb3500cfb144be3cccca8e0b06e5f7972527e8cb8e1b088f5fed7bda96448185f1d3f80d096d499bdb22a8cc363cee8ba02101f71cfd03213b493619769d0cb6cd1d6e222262482e6b2522c21f94e1e6fc6cebf59f6840b7b4b380d080eb9450df4e311aab74f98a669d8647525ab691f268a62507d254748b2e331c15123a18180205949900bd0158fc796c2f976058f69725d78c6618a37605eadbff36c18125abd574978b76fa4a239a277bf55e29036befc71e7275546cace99fb5182203f56d8bed13699d6f5399a90aceff5951544ddcf9a6c728f96436a84717ef79056cd0aa0c462f6438395e9e278dd45eae8bb74959b9cd469c698104220c036cf8dd66631a9e396634c9c7d0b429511c66376a83c145bf95d15a03e6cc50df26053b0a410024c4676a9b4d90f2aae5ade50a1fa963c4bcb552ef261aec3017de336dcdbc54cc5814b25f85bc3d4e0cd77f8acce1d92c93dac978d8679598b04f61b960bc466330f05ac361129cef6cd8a090bed7e084c64f1e4f327decbd991ddd39553a38de3b15d02c193564c0a9186026cef38542e5a864b77a5f4a5273db94a21e8e0eaabebfe48bc2a7b13b54f0eefba5dd307ccdb93b9dfab6b0d58b3b9f9466007b54f677eadb38392f9686fbc76e0c64f54c1910f298f36851bfa9667391938c1782ef5d8c2829bfe95779d646611f3763cbabfbea2ef058430e49b0f8ff9a3f4e8d7f86d5b65e9820252b9fd4b0f72580ad8ba87f0d02123ea5328d9820388f4a53749113478981f7d7f137694454a23cfbc21ec483ac428e57873eae73a9a88fc160a5794609d590ab3ccf8c4505e9d6f0fd07870d8e1d5d330e18abbf3127cf183df5a703f77675043b3a743d535262dedb40345d2c5ecf78443b5fd9f88e35d75bc3b3e343cc6696871ebed2867d4369f8ec010e84606123c1f439c427f729132ca98c0bc97322d2599bc0eca7530ca929e1196d3062df8141b80b3c8dd9821ad08be5ab3f9590be965f4d886d4cd7bd5fd9bd1d3a0e013b8ac891c9daee42c8777d28e6c17fff844eaefc4784e15bfb433bbcdf69bd925316e7a8d146db536be32fcac544d8de424631cb73d8a5b56ea1cfec221a306331d398c804ca80798c7e5d31613a3dc3b8b610ae4798fb2c3abba4b1f5cf5df0bc59a1c8edd3fa334b713257716bb1ad5680d5ac5c8841c3334fd2b8aaa37a09cc33798f04f51da93c4d2427500932da7d3cadbac0a89366a79fa2554f985951d75055a2572380c205a49d37724ce712159151d3920ebfaec8af60a1f438b76cd704845d6a4062ae8f9147643249e718461b2e500f58062213bfee43ee40ca4b21e4e6818595adfcf65de8cb7df845de70ae9476b539022ed5908a1c4a5c922d6ee5a29bb6ad121f715261e57bc6dcf8105c1ce4c61e36f642db5b1c845fd11b94323c14fc7fcaa80550a5770b5cda8d8a4ca684807f079c2a69c10df0ccf63e73a83c87ce0c0686229425b800739ffc4b70529cd96144bde05a216b158d5aa57104dfe6ef5f2755591df3dd21158c9af213d140aa6899df54ec171b5ffe125593461b0216e7dfdd82dc6bb2a1dca4398a9ee0dfe169096a8cda48640984e2a8bbfcba2f779bf775734e76e58cdb8cd67da2192420247d06435af675eaa16cd0ba666e675daafe561ec7edee3fe70da0f26252f816cac32602c143df7ac29e26d401ef039a7c88a986a1c302d4c98dddf0a6b8771920b1a9b43d8112afbdaad77e70c5fcc78b05d0265c2e1e898a0571667e331c03738d69b7da70f2ee3ac82b93f3a0b329b3e0e3c8238569b8a06199dd46ff48c84d5248906276f8ffeba645d2579d3a80cc5de6d9a32cbeb16ab1ff09d233ae2ef55388d9f5a1e02f50dda5f053ec3884fc46a32e676cbf68ef2255e4d3cb6deb72369f7b438190ea369431cce602dc9f80c02fcda3a58f3325467bbe009d01617971471b42e6e5a95c5c66fc70c51c99f03ad92f76e2f9d361fc1c90513164463a48e544562faff2e0d65ae07d5f02ffe029319be7724503030ba4c9bfa1673654fdd20742e8a6a02f0023be6f1222a4c07f68bd1048d9ef38be47e0e3e535933e678023d3491e733004206224b40030753bffe5ffcb4ab4aea2d4885e9ef2912be9a7c54088d3fa011a95a67cad9bf50649f5f00b2dc4b2fccd9986b3824804042de0a5ae802d20380efc4b078a5066b1f81a42ef16d68a9f73621d91a7c913349a5d3ca9839c5345f3c20d15b63a3283d6f7bfa321aa0d52676b3d0632126a64747ba334a20136e1e56db84215813c6b849b106c66ac2ecffae16111e1520784831188a27d88e604c7fdf294733d90ca125a8bc6c2d8561a2f32fe8cd04f29e31ce42185d341694e14c0f8a4b556ba75319bfaf8236f2de90f317668e5979889979a12542f87f78cba4321a117d95dce817130d6a0e3bd3f1b21d6e49e703aef04cee6f0a7a983144087a4dd91010772af3260c33986e3bd67973a70466e0338cdefa11ba18fd423bf9da1309bfe370e7ac217dd637373d8a837332e1eadf62efabe363e2a8d0ce105110aa934880ad7341093ff9567387fd70641125ed18738ccefa533af0ae470348718c486235a5fb98a828ab5e743b6f3693040351c48778f2b76d0d912b1e5715b079ae12c4d953c7a3bad5f110d40628a17905b278a45704e9b06297da1cdde40c3ac1856fa6f21e6094de3f02d286aa7056242adbf81860128772d063241c68d72cbece7315a44427eec1e17cac1171d83c7dcc78512914d13ea299e01e1c33885b89fe27ea576200f12fd75fcf354c0989e0100ba971d4f4765c3d5ecc13a737751c7c77a9ca44897423192fdc7b18311ed8a388e8928b3c4bc857b9156883b5f4fea93add594cdac567a7bf6fccc1226cc5c4a8434ea98483745303cafc492cab9ab599dba21961c5d2e540e1e584e60863115d615af5b174678e15789c072dbba1fe8158ba96186bec508c26deef2d7a4150ea928b87aecf27e62337339e7cec44ed1858f8bd34d437cc97042edad052a348f6b109440767ed206aaa92261910636ad58f8950737b558b8ae0f249d7e4a2a033b0051266b27461675dc8cb455d9a08207694d868eb3ac71d2665a8d300c70e9574b08e12cfddcf5c2b898df2a1c49256090f5cf6f9d4d9990aeb50d06fdd14e563910a6ae91179feb1dbaa0df48843c2ea533a840ed8e3fecd1c20b58d3804605cd0e384de809c6226526973fef26cc54263a7a2f6b19c63fc320fe9cb682983361520903058ae02fb9502765db79e9de11ad923cf44eca28143ebf39036ed9ef8b03f45611b8a62e71c103f76c5e522c1226dcc6cc016ef80e3d73671e922706d140610a9fffc1701cf06a4d2dd1a7c5aad1b3e4fde6d40d7decb6b3091b1359f38c0b359d848fbe337a314c518ec952796f873450f721fb0e37b38421ddbef7ce07fda743968d9f6343f532ffc5053c1040c8e01066b765e74d027fd1f61aa9e323eba3627980de3547dd97d486fdf7e71e8960a3e5ceaa8f7cb1b78d493e0bfd687605c6c01231ff34ed88257a0aa35ddb91595963545e46f36b8cdd78c4c481b623a073c04c0bca5531116dfe643cbb8e63d5306a88156555a66ed20627d0fd6dbe0359a1aab794468880cea4f325448fbd7d062d6e40d166b13398d8fd1929b67485d467e16d955548a45c5db409a1ec76d7941a85d648a78c629d5c0762f7859bd25835e08aa28455861521a05f30201dbecc24897ecf1f9d796b254ff497aee1e1b2980be4d80535b96c99df810f0bad718a66c832b839470a954447637357e56bf5e2b34e429e5befa443f0ffeca409d7ab1fd90e2bf721eb35975d9591eeeb2c2f3b0ae6f19f2e3bf266b391f7105d38184c8c18c9f37f6e2c3cf16a7358ceaa05c13782f1c8203cf09ed903e095ada7e50cabce09d9ba8f1d215a32af8b1cb100c374e53a022599afb107ef7dc99e0f53acfb236856ce516a69a4565ffe017efdfa46efbb045134b67e69092513633f0c530be02c53c9dfd956d4f94e7d5fa19e5cc99ed239270f6061aa08ebf5d0eb715af3e6cb08c72efe7ffd113b4f9ab06272235f6999fa9dff1765ea7c94a3c9afd6867765be02e02d65dc036081a8b47ee0d01d0618f8b0cc573c4a0279672763fcc768bee2078935651c7af515a0e9ffadc91a27313ac56360b45a9fdf50927f15072d471e0b9a9ae469bf5cc2a51973c71e8284064ecde949f9191795e6fa619eb1ca0e83aaddb1c3ddf8bc2caf76fe6ce07b13757fd84173f70902b503d5f34b8507b586ac0756f1d1d63310b8ddf1c10bc39ad7c244603b9e6eebeca1c7a83e882c23c49a65a5952988f5ff85863a0d1f82cebd120029aa8b3b7c38028b2eddfce825409ae10728eb6662c96b42d285d10eb3c71387cc260e9a13fcab15059104d314ef9a19840bcb413e6d24175f122e922fac597a3c9b88e6924112ffea080a50a732c6675ee0175c768af871bea4c36c68d043e46c68f9b52749b1870a522c03414a7572f9ece45cf37c18123ebecd186d56e5f0207f4609a76660c691d44c01d11d8c38afb3300042ebbf3f0aac8bd61f7bb94e5e8e16a4ea4239a5dbf6545cfdec6b8f299ddf8742ab408f36f87c88c3dcc216a75de946ac74d4dc3d62898e2d0fb58bed736e084c2c2016d9a45a59d016ac1c7952e596dfab665f5482f1739444873830ca784b617f0a10e678260394d38177f01c95859f99d0da38434986c0b9d9779d73d8a6acb2a8863d8a0e3ebba149cbb0070f12a84aa258d9128a44b958cbd46ade069e756bfeb0dcb4a9b20a1cd24c376e7461009d9cebfb230021ef7aeb91755114cda143ad4e8ec621a8048a962e96ad7a319e6227dbdffbd17b65cd912b4a3e2240433a0c46ed092eba96996a06ae288d7efbf30200842607bac2c2dacaaf543058c4320a9f4837f9d3d09b41ab6ac6d00045217dfae708f982c425b70e63f15b0a9ea81f3efc647f31d1e7df0f0d3e294a9929e8efdc2ff59a48ea3a89c893a16c66242f2dd79bb692913159adeea5a8edf8aea6952d31cbf1e3c32e61102e6255eb61285c2804426048ad61153326c87573348cfd05d6e98e5111eddae794fa85eb5378e0afdf00fd096e9211c98668f3309c35907c4ab69173e00f29f6e410bc1131760eb314e104f3833a072b30543aaf4ce7a08f9bb3dbe4efefe5f89c8cc7502be0e9a29cc353488e648e1c81f247661dbb117fb01bf2cac73988e3341644ccc0b265c539642eab291931bb8745acfd5ff5a8ebd3785487062bbd8ada8a3653d7aacbaf7f9b20e70a4d5d568033c2049cfb9ca23dda37ef3acc71918ab9d0ddcfe3d81053e1161c9b7512c1b774f31414d7af44578f440744340e79e80e7d090918a729db34b11e4fcbb9c0e79c8f9fdaca844c5d746dd3451a26b9d2f9855a0c991afa5fbf29944f864540291426d8a48512e5bf01250ff7b09fc75dde5c0c185547a440e48b38623f46393744661ad55d992f570fc0264c802ad46f7ae8ccb0431df68b5c680f0a240943f70d88499447d3389fe75f3b20aa1a61ef173a846a02f2bd762aa30ae007e1a189fde9598176cfc41c7f3a4967dcece58d86f3dabaa1b61670e31a7210830f916ad95e0693d361ee79b773b5cd6751800823fa4a0a1f05220881619190410b1992e419f971537580fd31771a0c1316cd4a9c699af89d7a497ee54cff40841b383c1fb292bb89357794ad716eefb480fe128f87ae9e06526a3750b0d219b262d37da245856e2077e021594e705384caec0c54e3b1289fe4a57ba7cc7fe49176dbc4b75ba600889d41a2227751d71608ae9d4498f8e87d903ad4bceab4c389d598f37604ebcc8c2a345185374508f4245f48354241db2cac2375470ec19073db80985d0cbca811b37ee78b14fda4fdbd6e469614ed8f1561dcdf68dbc0c100eee08926c234cfb921bb7522cce99efa0b2e82f263b4e6066cacfaf107ba87d5a8666849d1deb54684e72254b6c51b0a16d067a6e00c1ececd8f0c3f10c3450809ef9b6f8017fb578fd5d93072f48c0e34fc872f5c0f8e23256a58b31a43d6901726ce1c7ca9444906f618b714b41bd48d738f83d5e25ad368ccae479250628f78f6ff6779a96e5a2285b6f6b85619e71141cff4df568004a8e5e35b11ced185781804376b791a826203f90f9709d0442ab5ca4fa052b21d7b8b4bc467d98f1f26c0e866948e5bcf61b6428fc1925fa4bda7c9ec55d5d0f0c940e43b5d804cb5e2a46d611df4d908a26f9a200c36417730013cbc7f8977dbbe229e3f4c79b6fdc77a350089ae89ff337c8733dae21528614462c552cbe88cfbf7642eca95cd7cd7887a550db7bfe982e281d237c3e63f69fa0a12b654977f15d09754f22b881b8c6d36de6382a8c71692da916c1b32899414cfba61d71ace810044541463850efc8d4d297ddbbf508977f358747e05adacdf25659962a297e08c2360df915d381dbca22f0ab93c4d50fb4b9fc8f8f8a113c2e8bc92becf74c90dbb798ca7f8a4d0f86aee569e8ab16bcd31df5a0efa2f5810a7732aaa6009a339d96a5c027ac48d5d2d29982802686521d22c30c9a6f79302d5788a065df62227800c6e917856eae1c12b81782f8d1add432529387be00bf71d229c3c491fbe72bed65172c40fa00301142d445b12ad93de4be9f68259e186fc20670653f488e297f79f9d6d9b029173f1f90bb0e6a1d48eaf3247765048c7414dea6efdeeca6ed628750af399b5273c2cbf3e376d3b78fa3d618f584d3e32f40e90a8caddfede3651c1ef5f7d19f8671ff0de60f8324c10ba607dc99611a2b2465821e3662f7497810c23ef59bf7238fc2e6dcc03c20034834109e9e43ac7ba16fe68c234973da1dbb2d62708f636f703af16244b34ffd7bf4b985325418ce627c3e779af384a09c527030257ea138e956efe6d66eedd9eb41dab2d3e303f32dfc052f3b5d6960678aa10331fc0a1685a72a06fc90a9d8aadff5e0a4efc82e1c5a613e614fbe14973e36bc8c86640c032cb90648da02a2324a912a8e222dba4858436868d02e6f3b8ef588e3c075fbe0bb0970f43e5e1ed4dcd6755bb42c24efe9d7e8ec82954590d9f109d99dbcd60045f41a369f1900c778af522c162759f043b8b8d641b27f770dbd32e272b8712d6687666e8e524d9104227170f54526830f309fd6337947e1ee4b7092a61a43d0639c8ce620176a82c7eea803ec9444afe9a668d0f1f20eba263617c9851bd03da35808477e714fcd12ca51ec723f3aa5c4d7a3c1a9f40426088155800e8d7fccbf2c1380ba5f2d1cb831407d53cb998db9583e56fdebaa03894ba7e3f1762ffa86069d51db4f9c4b2c61331dd3124344d24a1526371c68f3c60f38a19c6934ce9735d70663e711e07fdb7cd5b7b523a98112906265d11c04a74df6916cbf74751a21c04b0f7d5d018b85fa204a16aadd05a5c119b21124fe771c504221a14c6ed3c5ae06e970e9684d95d576929d48c8f2c6850991c88f074299eb23ee5f4d7b0f169305feaa99c50e00893f9cb048b20aede8e34257ac0b62ea20964083d8211b6992deedb9f2dde3c0ea0a74c49e750ee694c73c2d1b4296d11da8e074893885c2e36d19f1fa63ed223d4754e4a2547a5e3e05886b7401727ff2ad22127dc03e60defc4c1779385b63eef0170d7cbacef684704a3d74ee1f3646fae33dcd538cac07b4a9d56c3ba7056a3cbb1ab8e55151598c3dfaed3afb4b8e8911c0642bb8343d61e7446defc93b5e67190d722caa795c8cbe46d7fb4d571d9909e828548acd76c9d251e1e64d0032db59cf1ac8a748b79e38aebd42d1488baa31bd26725e45098c142310480a979e40281eb7372af8c4f47c3507da115e88b7c0df525d210108b3d4dd4ec7a063359b33cb66107cd9aa3a0d4adceb937f63266fbd8b6c61ad2c3f5da143ebc4f0399e31147a5f99776807c2dcf644fceec9616d50b6ad2a77bea89f25420cca4bb1b9114cf362577fa630ede49f9fb1736dc61c1cc3d471b902fd044a12e1dbb3d041740aacc15f3adf9dc7d2937367375609239ebf1338121e409ce82c071ba39941b5a2530973800c4eabedc36f4e90f20aa0db779d495ab88e85b65f2cb223b01b4c89cb74ca73dbda6196ae429611024747c8f77aae641c51437c6161a38b58ec40a6536defb6962b9918cc5d5932f187d15c02341d684f833e06dfe7e03ca40e1928030c5c00521bc49bddb692c7182262c8adce5c33d7f2440b25ffcfc15def498ae83c27e3d980f2f55f9104b9faa515966f25421a51891f5f845bdc9dfdcf73b219890954f738a09677fa409356d9f2a2cac86d5eab4d99f349db2d582ddfface17a3258940683844f1821b9278343fa1d9f842bcaa048f8604650e69673c0e0e94bd854d3a157bba60fcabd27021d34a3c6594038f75fcbb54ce24a2d3e4945ae2df09d2d3cc7b652a6d8b449c15e2db6bc8790b90be4f7cbacc086077d9f176ea909a149e03564cebe31fb128770a7c3bb170321608c9beab2f665c81f7c419d8f6b9eddd0b9c1b2fc0b1c967fc512cffdc93d1dff433c4079ec7db5368dfc071401b2f479035d01313f90b74ff70d7ff1689abafda132a1fd13b7f1ee1e80751d65b220ab6b72c461340becc1122127d32c9c62822ebc3b679e2542b6851158f677d9e2815865895e001789c2feb394a365091f81b264038603c6863899a591b1f59c40bf47215ce9bf13c5442cea94ae9e4c61532905bfb0e85cfef6b6258baa6f51eb4b51c482529ac343cc807f6584a579f822c10ae5b45abbceb39ae80ca4081c31e726fe52659d7a1d4c63c43bd6a4727cb2024f8ad7a1ba8d3ce2af96f166f30831c773c8f54541776a93c7940a59aa2375ea8b968db7addb74d1450cd2c713adf2ef398223842fa28a1c34fcadc2e9886e1049bf90425c2d45ed92ab071f2ba2fa5c45512d38447433e98b272dae383d0cfb857748b13b33450f934fc7de054df729d093cd29e36b46238b0dc9f23afc4613e6eea0d591fca0d5fc448209a5ea5187c498eed0d83ae49b3420dde5889799d6e8042c246cd387384a94204050eb765352ee20ebc435e997b0d615bcd2eaddcd8d7f14a56a38933718f5fccb4a01b91e94f0d11c53fd5d0bab1283cb3896bd50bb31823c6ec268edc2d8fedfdc5837e1e76ace6c8a03e5380d75a64e76bfd701d9e1aa9208134e4c5a0f8a36a88f845dc854493a6349c05e3270104f408f6240077b8a4c8cdedcda45d64544e7294f8d13bd4b9372b4b220a3260f03ab7e75b2e68352baefb9025e54b340097a8229358ec1830a76a8d4e6a7d7843fe96ce369eedf40a6345c087efbf80a7a35d3f6717d02f215a8674513e652db159d5eec4862f35813722940ad7e13a485a74eaede6d942727278c52b5e6bd75731804ccb962ad09992faaa9a41f684a444c3fda48a45640393e95d93cac98c457796d51e8b7d1b544f279b99ed997f1686c95b8604d1107111fbb322e5497541d4401f852c4b5e8efde62dd665dbe1664cb240729e626ead6effb8402fe75ecb52e6162b09f3a1c99e0e82d7908751da4216a6e68e00ecb1925174e0fd3895b0c69a9c64ff777f2dbcc3db3c312ded549149990ca12f9044b3203d72db67d1317202468746093bc2469b691cd61ec7ce7645e54c512fda066627fbf7b5fbaddcf0aaf0a57e11837668aea376bfd86fae6cd83a1aa10f1b84d7e88f40e96568b6f6dc49d767f9029e3d09c439a1bbdcc2f9e22a489e78a8a5cc0c39d87364bd9fb71ff27fff151d1df7cfd8c442e703911b95cffb133701c484f182d0411075d4183ecfa1cb7d1c0040f853c83eba28a4af7035d26467e94181480a5c5b4f8a380b6f7e5da5d7bedd2ff832f6208aab49e277631600dcf1dcffd9b04128ab4eb487641c7785868f034db7e4ec269abec4546301a11649f96187930d0d4fdcc615bec6b166d8c8d8fad4e3e21274d3abf3921ea81db9f90c2fe7751e1cf2fe28fdea484d9a3760521f4cdb6a49b95736c3f4ca4fb6467d7bbb0be89c7c651dbe6b4bb2994bbfeef4b4721a54655fd1be7fcf6e77a7f7661a3f4a31f068757e90c2584cbf6410d8137986e3b77a4952af1dfe9a166944ef8f71c76f81054f1726fb31b92e9c60869df7b685bcc12b9d2083125f215d459dcd155337b92339e2873316e0e82dc1aaeac284a42f64a5f274ad0d20b14b3db55fb157cfe5e7fe59b792fdd5bff95dfd62659f895d3577350e0521da1ca73b96b3c1140454fbc16be4927ba354ad48470a2472e1302ac1c0ad255a27567eec8eb58a3531ec250be8e9c3cff6f7ef069db388e6c4b4abeab1abdc7afdf3d188f073edb5e5b6a2bf76150838d08f0730c1e2fa71249fb7816193b3617c91b4068af744dbe809acc386741c2697dc73f2a29bf8128f5fdf44e584c7a5760f689c0820dbd0b7000e40527bea681e48fe120a91288c4001fd117ce55c33da362c0b0564e23dcee56e4d1f7e02afa1bf508c725f5d28659b009f5beee8a5bb097d29a2314cf000760d74c664384b9d7de3fd5c0da2e499af67bcc20aa393868b10c40df3682bf7e1435c7762f365ed1bf6a5adbc6c42f7e0e01b885bf723d5406c01be80b6b3acc9021f72717bfe315506b8aba1250463a964d3ce0531b12c51fc5190e1218870b73a05c9c6eafba04e02a87cf17c86cc74970caa6ea6de3dfe9a8b1daf931a79d95e9abc01d702218f21ba3400edf922696c6be170a0d4e60c8dbd06ac8cbd639b1895111f7125acddc738c5f3a2a96a6d5a51049d8bd64e73c5ef719525611e21ecedbe4db420b3c64284572f53be731e12cad1b3c9352717f46b10fd1b5f19eca3701931ec46bc01782db6b9ae12547665702a7ff20206e175941a0e51c01e45886795a2a87ca3a8844d22693e2205ac11c56bfec52fc905bdd7f35ee58cedbf93ec0dcc963b4a6106142aea35873bce2ab6ce10f53086c3322ba8cc30d6337dbafbaf2a96447de48a22340f03177c2cc1cb6749850c4643f265b47a40b2a3b80a24fcb1dcbc52368900527a1dcc2198aea825252db40a4053d6d50d9431a1a566c300c836dc71bbe615434c7fdd56b44e813b255f98ddc98c5140a3affee03ff6f0d797b4c610bcbb74d05afc7f36882f1bed3396b9b8f1ab5e9a82bdf1aa14b4bbce4c851a48fd1a7e540a55c58f741b6c4fdbb5dfbac51934cfbf63c106e516c8f12677888e97b6f615563db46daf0c67fc79a1010383ecb3f960614aeab0293e5631ab76790a316f85d2b9765258e2639a6ddfd2e1dceb23360f6356474b722a572e9406e18578c41f1eecf10cf4ea402e6e290e1dc9dcedde3c208f4ab97e6c38a50d074c9a223d83adfd966ee5226ed194a85b9b5611c692674973b820ba75026d7c1e4544f054c2db0788d02dcdf12877b109968e7b0071df69ec1be55bc0b8d51d44f56bf55c55a490defbf0f2b357c7544300c257192209b0cf604154ede4bccbe952c493eeade234ded76dfb0cd47cb95e6e9ad5569817177b95cd7915c957826189b772882d391b56a831038419b942742e38200e42569e6b3f84fd348802fb0e221d2903af00fa1dbb8b9c316b55a745b039876b7eb302d5984be001bcc75fd4997fcbe3e605e7f10df6959253cbf4c1b7aec9542373c466dd37f4b0eb4caeb852dc32f1b5d683eba4a8c3ef2f4847b2b51b5ac13b50258b94cacdc87565d6464bff3b9b15ef6824e8a94a270d11c6171693e0f256c287e3de293d6cc1c9ed528e9691513637f2b558c1e4cc7ca4406a7f3b53b49b486af0bc85b8a51638ad1904b382b07b054596e493aa03e48710df272a3970de191e35f653e1907e47dcc609081ed4abeffbd3fce9857df195a000ac9b8daa0efcb6f60e508e44ec2016922b70b584fbff284581f29d8db356f605f29d2bb1a2f7ea3a3692a4f4d02f2279807838bbe07db34552f445ef1fdef3fc642f0e00b7413979bae753b73be3bdbaae486ea773e48cd9c1c4d8219616853be0c18dd062b2becdf4aa26eea8f3dc2923c3ee6a4a089c233b96ceaa48956dcf2e0761f96fdc3d994aba92058a6fa44dcd9b2082391fd214320346a611cd25d3e1fd17ac3896ccaaf3eb255fc0a886cec48090a5bbd8dcc06e1578524d6fbb709d0fd9173c11d9a1912f458cdc6c0f98061f8635b9a44a0a5d539d5a61f09b9d2f571e9e4cb9f2df25c2f2578f105323d6cf0640103cbd1b60b1366d14aae4638618e7e6719c7e88f715f61a27ebef60545fffff7e3d60f8bd16d89f11e775f7962da246ab2b0c06a19384b140b67ad2d497e755b39385b578725b846979ca5ee79c20158e9b3bd602e9f8a6a1ecddaf7fedb5e51243e68f0c67709009b597fdfb5e829c7c485c8f7c936b0838546e0a45214768a65e519eae603bd6922a4a3c07557fac549d69b4fb516caacd44d622c46b5e69ba3a153a7e0eabd751912aedcdc56d5e9a48999be69590600e4dcb29be49cfbd3dcbc662d9179f3cc18d17fda027ffdf11a3bac2e1aea1ea94bf6621d08c476b3797a1f8a58420bb72c4d2d32d692a7e14a6639d81036974f4c69cda9cf69fc084d401dd3d0d558f511d45aae05e7ffc8e59cc17a631476efcb251ac6311b80685d0eb6698f9591887f0514b2ca3e832df08ea0f8529dd4b3965ddbec7db9e4272a842f47d2a19abbc8c591b9c29f9471df0888f00681d4104f676d1ae8e674c90d3f079de6213fea7c4047602ee776d3ef1b9fd56a28ce28e31ffc10facb9cb7e639d5f565bc6a7529bbb91d940836e05f12af18a3524f8763bc19117228985c3a07c8e320614a845a5ae7035a4322d4c8572cf23e66653d06d68b817e9a21b5a700424e6fa31114a78f6eb10d412109b27dfbb6d1f7967d38ea49501602092d76cf4e491e124937f947d833be284cb70a531212bc5d8963e0eb362b4de191be093ba154c6e3213f6d533e6b6834af89e12e6ca810cd9e50f122e8dc7aa9c66fb4e0f595fff30047602d5435f75523411cedc59e60960006097b3c754392e6378f12e8b80708a062fcc042a5efca4bc574d6cece1bad199f1fc6fb041b415b37dc1da13e8a98e5034f43bc7c9ecddb9d800f2be7b17376ae63cd26a79cddafef3c7ffcbbdf6e387b230d64e45cb64e445e98732e2f4749b3ad6571d766ae065649adf961389620588468471642717c0001a7de8d3eb363e4710527d8028573c3a961dd8c0880bc699917a5607707a28e97e22fc49d4d79345dcc5891bfbe4f60ec34a1c5252a60df183daf4167a58254cfc5ec8d253ff293f07f0e0a0c1f7d07e11e5b23e42fe80df87954618612c88585874ee402666dbb388de3450b6866e9b69d545147b382fbc862f953afc8f50361c3a7e969e97d6e310fd7377245e607afef0ad806cfda7848269efd690976a83b51fdd8b621ee4422cbf8d68fcd3f0700fab41ad7b76c8b004620e38bf8a56c616c5d00c091177353a760dd00fdf2ec3ad6fc203d332eb7276304601cf69a531ca05338a7814dfad478d69f53f992b2d94d012665e74df7eea86b9c69c669c2cf45ddcdfd2d4684adaa284df1121c12a7a2a47d37a4c0b2b51d3d1076356865b109a06bb442545b9d518cd819a7d08facaac907380a149b1080a61af08a29df851d3145adfcb10d885efe4547c43db87b2db5e92e971d5986fa70e0d0cd5d4a207bcac9923ec9e1a33cf64182da1ce7fee2810ac5f1084996c81972bfb889661d338817b43bee00ea58c645d1a53d0818a844210f63fa385b1033f3f63bf5481d6d8fed1e18fa133878eff0def7b1cbc9558e83739c7805460a11a67b96340659a0852154b060ec7d4534de451e7f668cdb8f1ebacf63a750e1704ade5d7dece2c63c254382c7a0ff02c0f03be39a3b451de3769593624ca4d8ea50da52aefe752bc5fee2ed5e0d486c54b01edc9fa05fe7eef5b55caac8c39e72bd7b943e9d67c3bdf6e210558f0bf494123f0efbaf0efae06c1a9a5dab786c6122eadbf8932c8e7a3eaf57ec27f8f3c87d902b052c4b5b147d0398fd64b8d639c9ecf714561a3bc4a252593b88c8d16b1f5a37b809d50bb8c20defb96f5ecc3eea0ea079981674567a4172f38f3f07439cacf1ee4e250ca64484d2db0d8905ec0dfd63a9dda28ff039e0e3d274a4d7366374649046a40628504452708f20adb8e2056e70e37e5da035f8acec2d25011f227b08d5b0945420702914a715bf58e0636b1e5ac7099d57608a639b6aa5a80689baf8167c87e631f580ab77d5aaaef9179982c0d9d75ce392f609b8121195441c6c9f5e38655e4891589acbb5cf4dfdaa07ae3bd7e3a54862174b0093caacd19bf7ffea6e3057026771dfb3862e2899633f42135e7c34799965b313603b6d11a6c5005d736739045cb23fa5b4e96da02eeb869413db98eaafd9648c5963da5aa2cc72b0c886a1f1068830123a0e9c6b0c280e726e49db6e0ae86c137bb98c994933a7a1838fe42e490d4c96e742acf8f1aa84ef0aa081a5ed10d5b91dc32bfa75f79276dd5e3e6016e77e6289cc9e2c8e938eb1bdde277252ee149720ca0b0dd08d5596eb63bdeb4ee4c9471a42b478799e59723da085df629a76e9715e270b8b8dec7229510dc661869f2d85f3b9f5c961a206a6d595fc5838fbf441da984d1736b9aebc5082fc041095050ddd6e6a8ec5c4f6dd887d068141e6082bc8a8e2360897a291acf7e9c8e72bc279b63cb2443e1e2a7a0b3f9477343504d51d5571afcfd62e502fe14c7dd6f4b2af27b5f5f3ab24e44f7908a091afad4b1b46fe60e274918872ca06d08ecb81cac6a05ad723a06cf13631ff2b8db274932c1eb09a901de411dc357054345cea55caf36ff46b9032484e320c416342a0f61f05098ea601f532e9f0d4c1c59869ba0d0d9eeaf0c427a0932bcb8e30c431f60da70ff5241f4d20bf78a15603de72f7c3b6b8679188e29b10a72e1e0010dc91d05dca1d2b4b6cc4e1718454b6586378747d9fda14340f193fbfe547fc925b779f644691f161f17a8baa4bb1b796abdc6c5ddd05e06ff9f8317f7c544e6ec6993bb5b17f459cde43c3f39a5f9f66493edd9ddbb54e6563b416d8a0a23fe1d0c26db60929c85187a0c97c083db0f10117309afe57021ffdcc0d5c948a00451f16c984c7dd221d25e68eb88ab13eb96f80c66309089e1d2ed7750b9aa33d55e18e374a1cb4e5a4ed93efc60b88cad0f21b6ee366abc3db181d85f0efd3f8686eeeddc03312692b5128579a58b0b78ec53656c2750b138d76152fee2bc40beb8e7614dae26be0ee81c3dda23b578289fb2374f2d15902a80d8fffca3c457df006aa998f1e3753d4b4174cc278d1c42b30a98f7d791d5ddfe0037e5a374c5d64b419a08a291d5143d8422de42efc827d0371c39aae8f339148454307ddedb1bb3480e4e15ab5fc150086fa613a67d04a15b948dd883ec3fca40891055e99c6a81313db62f2586a441cd0b3b0e5a8c0e81ceae206f84f1316f5a228e196f1b74890092b9a4193497eabcffb0fa6ac3224b185fe9c78b728a2d2cde4023e6b0293fa8a9a8447e13d9fe527603fd278420778b3ad2d15bc5bf3a5cf23c23ddf3b79822050efc783e5cf0444bb68d3d38c6e4242f341ffda11ed4535ddbbfce9db0df41af688ce0ebe58dddaf95612b2657a5b2e98278b3417c1d996b9589fbbf5daf74e250c043c650d8472670d69ead0c36e024776f553044f7d721942d91e84578948ef438cf84e3b0777fb192a3942ddf4c7d7e96fb815aed2dfb0fcdcc92cba831d386522fc8e99ee450803215f39ba8389a211e3101d4cf8c70b8daf71ef32a53032865a01616d2f94d1e9ac2041fd5bd843adce272769f597b3eef717efd51380e911926983e7510922ae2ac53554f9f8f6ce370947d6d29b0727c311e1cba0c510e9b4e96746fa92d7f0c2d9e373f3baa885cb6c31012a2e9b4ea6d5cfcc3330c23fd54409095afd1b26b5f7f103dc5ac9e25e05c8bb8c5f497a70fb60005a938b73c969855caac6cad61a9294216b271af0dd156eca03258544869a1d06a2e0219e31f07c4fd6949d590021b40ebdd85fc95a8da53c228fbd70c3a5c13d3a5dba399cf783c6376af26dc9b1840b2c82a390b94011d460e1dbffd56fc13660c240d45dd5412cda084111465edb526e1f87332e2cf062dc2f9dd0db7e48f7f5ca51ec7155e398a5cfd8493020db325a00b56a5a2a93e61ace1f47a7a0e93dfe64a707b2dcd40fe0745243675606c136fa5d82818fe6f6d6053c20466a250c84f54d8c7fd7b4f6cf98c24d588ab30c63019f7b0dfc1bf33170ab7cd8c5738da395210100f6fe156582f2d129993c6ff55b049ff17870ce5cda07f8d5d8868259921184b937d9932d304d1e8ab6cdfed1cd030a9596dbdd7db00cd6e75c6ecb46227f94afbc3dec066abd6b604d48af000e34c015c6dcbbd2bc2151de509a47abd6e6d9b34b6f71a0b6e8871b9a7c0d973f7a44c07fc4d998371a884fe81286d451a73bae28dd5fc7c6ae16458b23089363c428ccaa50b3879d84203b39b66ae55fd916d72dfec992e7f3123f16b6d34075c7defa2b05bed8d5cc1540fa9143b07655322254dd7d5e3c9563a2bea7d3a01f45609a170474b57578d4ed8987de064afbc0d38513e7502f45350d8aedc0c234c7b0a379d8d55c859aa9a152ebc2b38803e59536503b4b96c0892fe29854dc4f79c9d334d7b418f5c06443e66356f40f8315972b9b43c245831f2d1925de2c038585cef29017baedd319e2f9dae0fb452f27656e35db7677cbd8dfc415353cae4a3a1674db7e43b78e1379ee8a63cdcd22d6e2f0a5d8a37454f86258bc377fe1d78958ebe1a2eec95bed18f1e10f78c97bc74c5ab6e4c2078b62e872c0b5baf5f43f3dc5eccd373fba276fb973b544c8454d3f143f68771467ec1ccd7a7bcad64b1c4ba956d6d0f39ed73fda327b9e4085a45fe5c0ec7117bd7e5e944340608d6fea2c720739a2e6d18ec005a8c4d24f1c8d5c752c283a24f8b0e1b5716d68171202dcd58af981c64211a0d0bb692a638f223145a18928e10282cd70098098ab77b50aa279bace1ca291f004a7eb6e6a63099b580768b73ce3cf857ad44606e370ba7668dbf23d6124f133b18f4f59c78d66980b7fc0a031d59694ee39c6a07d7880f63ebe0d2696afa6976ac404260191c7f1edc9b93ce13c4035a00999b98ca66000f2ee2af84691ed8535ba58bbf92160a8dca1f5eaac667cbb6e1f4d80b3d9bc6411e4fc4d57331e208e46a0d4a0c9bf902e81d6a09c3faebe0fa8e97415700bfc2e0d58efe2611af042b2220e0a14f9a1bda28369e08b01645f8f77c0b47c8f598f02896e7c34f38817162553dbc4ee03fa59abac56205812a9030ab9cd095b2bbf119f20602ecf0ef4ef2434b4f501641b1a3a37a243c0cca984bf982878d0da5c65bc6df3ef7f06d0f3e4c7417bfbc52e6a65c140329ea02dc12bf04fc413ec8590bd7713b9b794294919930af20afd0a241269c78e911ad5254592cb51dc4f52174df2fcfa845cf9c9f2a49fdf75dde827cfaf3d528725c51d5fa5953a2caaecb16012f6c04fa4ba9c4875b72c5b2cd8347314f7a49f1d4c3247712f42c11d4d2cd69315c82879766ae4393b1864ee47d412f947d42acfb1871ae08f3d7ef2fc5a6ae409f3125f648e7275219be409837922cfa789491d30d3c8f2fc91064a9ea69f3c5f06039b3b234c2c4f989e3c615879c2b4f2645922cfef6252a7cbf35954526725cf1f5956799accc8dc4bd12493286ebe4908529ca9998890b99a9a07f24c1754f945e6a2496682756aa666ea42a666e6d84293cc45926ba6d62912ac67e690295217f2c4e5da43efac842f4dd4d43a359f7b1394e77e079ef971144772b93803e42858a766ce90a42e48ae5c4df022c22fb299d9eaced4a40e29734fa37a1a99d4f132f734506a5c52c725738f9a499dfbdc6892cdd45040d9b40226ac3e713fa2ced8f123ea2773636565d34c8dd54b9856509fab3fd2a832575fe5d630e6becc1387faa3c79d0dee878f881e89cd5fa895395a1e852fb33e712f50240ef71f3e82e4e61733240ef72f65c817b8779067862fb29717264c32ae63756ab402991ac1a08b238f5f2b73ef79f87b107b3ff2e77ee4ee53a4ba1d18aaddecc2597b4231a9e33df7dd1332f5b5ba1ea9f33df752a63e2ae489fbb12ee9195d89ed913aa1efc9dc7b21dcfdd7ea5455223f2ae492dccfb592dc3fced446d217dd290b99fb7154cb5c0f3232f7e34c2d731fc23d6412e7c8cca389f485492671b86f2f3cd5240ef762ea3a72e88fcc1799d499cf79217d499cfe0ebb4ae2f4874299e36cc8a32671b8174d7147932c733fbec832379a643104655963444dd2f58c4f171b05e5ede5cc0766cf3f0e8bb2ec14f73d872f75da934aca8946d99b20157ed889af0d2eb6fff63fb8487f7b204027d706a9b3236f9fc30e2efa38899470c71f79fb51c3c6717f3be53e32f7392efa73ffc3c520a9c323735d2c6f5ce6b6df5486ace14568439fb651ca46416d9cb2e492b8f39d071f28809ee684ea2bd3ea6aad482629d1836f4f2b32050079eaffc2da3af512797e3f0098e4f9ed1aad741488ab17d695c4b1f4b7d04f50080d617f8bebd3fafa89c4f30dd3075ffc6052f71dd95ed329bcf9de9c53ca39e79c9544676ea154fe58c3167706774c9243ff5c9ddea250686170b9b06758a564dafd9c117f45e913fdd1a71aec13eef8233771c71ff4c71a06e913fd1f3d77687efade8449fa2f39b8f5c71f5674df853fe88f121ad7860d0eb9594a9c233457557d72fb6be8a966624408d9664896fd2f37da9e2d22c27305c14c463293bd9668e635c592e3aeea22a1f2a25dabffaa2e123d72fbe601d474bbd967aa0ae469d2ab4493382f64bcc0e47bd792a16826717c884ae2c89f81cdec40a646aed115f2e43fce78917900491dee65545e2f30fa23573f31baa209fdc29f5079591ea31a6497d9814a062671fc05f6cace853c80248e7f098efbcace85b1ec3d5d2b7b8beacc35b412c7e98b177df297d80bac4fd605b09958080bdea827cb9fb12c6d96b0ecfd944e2422903172328d32f9656a9d7524e373d63ae79c331ce9b71bf1978ca94f32b2eba431f0bcf94311797e464e794e79afcbf99d67383620db29d0b9a9ae92bba9362577536d71c7cf7eb58e5bb5b8d589bb4bfa7d4478280823a52ac50e2e3c2ae3a8af51f3fb94bd53b21480ecd37f66af1527cbdf9eb8e3977d7c2ddad4487221cbaf4feef865db29549675cacda9ab8734cf10f7568b0ea9151cb26d3d3d1b3884cbfede68bbe28ef4f5a2d1b2f41eefe958c78282aeb8f3e50d361331eba81b6767163216c91e6e7078d234caf0cab6d272be296ee83de97236157593d44e924de9a45ed3393b28694c28354877b36c3f8dbc7ddd41e993ddb6b95551cc0d5ba6df998663037227eb93f58be54e63b9c3d910ebd26f1c335fe5b7bf38668656bcb7edc0a60d9b688eb272e762b9e355d6adf7eddbb45c5479fb362e17ebdbb779b9b83dcdf66d96903a1f135227f4159b7e7a06fb3b68d9fe6632cda2b8a3cd6a34cdb21d6960a4a076e28e362b1a18e8c3f62a2f411feadfd066e5286bd3e3e48ea420abc5ed999f0af2cc7c66dc71c635e39a79499defedcfd440ea84defe0cccc52ed6c9b29d715d599ed9d8b79934e6286bb302a1b8a093cb729106e628fb9eeddbf4d0c0469b5738dab8b2a536515cef6b933bbeb4e6cc0b66aa18fd08fbc80d791a49193d01bad1e1114de2d810a4491cebe48e1dad47e2d8f78e10831ad97e0c3f2fb85428e691fbfa8f333ffe232908ac4d2e11b38edc7d55919e2053a6190948ea746f5fca948908f28d6c7fe6678a6c9fc4923af449413b9e90edef00923aa3c722d3ac77602242e745b66f3ff404bb03510743ed20db1f677ef269896c7f24059d5612a7473fd2c07864fa16962dccc16cdf8649a7444f69604f03ebd4c4dc09aee7d1665503c0235b2b6ebfcd6a026925a34d4fb63fc1111037bad0b2606d72e78f2fad21332d8963df8d6c7fe47146b6cf632675466fb7c8a3d7e005d9be4c4beaf8834366320d81b27def7321db0f0160ec68d97e17b3f6de2ef6f198491dfaf6675a96d6208f2fad6cdf41213c320d51308963bf04c7a5810de1914721cd5fd93ec5638eed937d1095ed7ba10f74725d60b9d88f823cd2c0b2fd2333dbaca44e673b7fa4f941f712fc422284ccdc852789635f888fec8556dc777b436bc3a4cbe2daf4f4c97e17daacfa74caf6ad0b6eff68b3caf66578d9e63187274d238b2ad3ca64cea67db556266aad3b4aa7365a69e158dfc894d61f2679fcc1448a550ca986144b8efa913a5ea6358d4ce9b829c9348e4ceb1332ad6ec8a468bd3c5631321d2d0dee587fe853bf354a13b0095aa7b6b0d27efa447faa4ae254da8f4e8d96fe4b139652982eee587f32ed28b4b64fbfbed129eee9d7a04ed9a731f6659ed2a94dc5a4535b8864669e9e4e859efed6647bd2a9980e6f087f981ed942cba2dab656f6f76c002208b44993d9301b8d2725df7a589da27f5aa9723b19fec31a9407f36910306a1b3f7875f3667794b42935bbd168342080a0d16840d068341b4ca136ece0a8c9591fd8d01adb924e758aa66e9f7eb0610d59e7843b4a5acd459aec445b8b65069ef56c0aaeff487b8e53ba4b96f7c211c050cd1e9f39e6c8a7930f579e9ff303065a54a1c9d02909061656619cbae583e9cdb030cba38c9267a53e6ff2fcf93713c8ccf33fd304e24fca32a71f799ef20442f6a63071e78ea858b8db16fa09fd0401e901c26242c38a090dab5ab78dabb5d64a43cf941b0f2a133d652f019934936ddb6809ec79816c2a7ffb3a1c8d94a078dbe6df1bd9dfdd81a0797bffb1c16bc81e9321a7f3f62799529f84ccbcbde73c5bdec26de33e26dfc7c45379d2d485b697af8267c9c9a55de8d62a2ce108ac24688156ba240d20cb71148b980eac08c309b5c331440620a50ed94e284cb2d34e2eed938f770b85508721c167a788ee8de829c22863270bff243b5e087758823cdcd7df42388648e8bd1822a10e77618c1716f1497692ec04f18d8e3c773a23a53c9fc3444c909334d94eee464323a58a6da6d8660f87609f241125e764194b028b3cafa0ea3e0aaad4ef401dbc0c765d90ee441fc429fd98b8e10bc799bfd1fe7d8a3b2c527951e82df8743261411cba0c8693097008f8dc7b221107f2884425f9e3055f24ca4184670671f7417cfc7233b17456bae44e26139cbfade1c5f4cbfb7d5ddcfe29d2e08a19f33dfcdc867e823e742fa92cffd0a81eedf859f4de86a38fefb97034e551a6f1351c65284b02d1c050e6a3ac71aebcd0479e79477c38955a3ed01f47f5c362a8cb51fda290b21cd5edf9207d071188ada3c0ffc050c610193d9864e77bf0c1b008f047a105898cfe0b8bf87e14523c5258eea7aedcfe236565ef25c8c3dc11852747491cc451f241fa791bab556355e6610a84658e62b9e8d6de5b2afd8fa73c5296abdf81727f2771c719a31e7343fdf9358c21e51014ee6b410779bc79a4b22cf32395e5eedfb8245c8357f0a469bc76f44b6ecfc0bd12bf237b06fb8db2bf7d7dd3f7131489c00f4b6cb1535a29ad7486c26f846da3b89f967b6b6d18137a991de409853f407a833bbf659f4e7d9a96e3b8101e891822776f432fb950380ec161fb121462c350d29076ca86b64f1cf591734ca606db4241c7a7ef2f5b5c77bc99d4a9af34bbd429527bd8031f59fa348145be6bdc64e9c34494ec9941a90b59fa3471c4ea8b69843acb38f938238f3f4e906779943327a4c8a3fcc9eeee8409b23fa9e49fe3e21113bca4c0ca011a6cdc60c7df0617239082237ed43843a684133b7ecad287491b7947963e4ccac839745e2fc2f52c7d563ea0e376963e2b2fa6d085d32d4b9f150e7a8c1af470050f1f0f324041162ba8c1b105255e662c4096410713b420852bb0a8c8c110ca5840cd18583c5132c612516400850a3e435801122a2b684258000c527a8049c28b2862e08410542046108a38c10f8250042220e18c1a4c325e70630c2678d14411980003190fdbca150324e0a019a16702410211790219ad21a81184296c3006106cd040055020414610a21023890eac30e30750a86009256810c6023220041390718413ab2642f079c1620d348410052762c0b133c1f864eee1b37467cebfacad278b071b3eab9e52c8c98df15c45d9ffcd2185ee0558a64ffe35fb9b68d9264b7182d1aafde4b106f7eaead4288385cb746a3ee9c49de0f37cdf7ed02d3d59bc49d47b566ea5758707c59d4fab94acb16bb9ab6c97b36f7421023d12ccea8b8afaa2b44facfc7da1ce6179ebf0f8c3942557fa6ca7a8d7853c28ec8872775339b5c4b9e36759a5d4912d7126fd66eed6514efaac94b8f6386ae5b5c80f483ecb463b561e2b2bcbd9f289dc90527a0b0b696587ca1d8940171758a1cf0ddbdce63571e7bb7cd9274a43ead4bae1eeb465caa93fe1ceffa6a5d937ee7c2a4396db6ad7dd169ebbd75addbdd6cad55a7d78a21bea3e914b6749239595972aabaffaaab472d1e20d43e545eef7a9a24dd5e6a3865a5caccbd7cd714b2f94042f30b556558ee7f47f215a1bf1c1e4c4c061e1c8a1aa0ee4716f0dcfa50433e3305fd5e2f2a8b45f9dd2c29d1e8f49a76ad24c958b958b575ebd5edd1cf2b56305ddccdd29a5ee4e2975774a69ccdd29a59d07ba7460cbc7327aa9c194db64727a6ab1de1f393236e469dbb61da55927e852b29c833cfe52b9e913e6b39df22ae998446546f562266846a8266332b27483803c5e2d6dc3965e661c6626e6ab5a5ca777dbb690cae8b833c6f278d0d059e7cc273756a52c172b14595759141c62943502795c1693b16818aad928c87cf6627872ceeeee396bb743d9b3d6ee6debeeee70acefb56728b7d94a78cd79558b3b6a014517a6cbc106d97d1995e40eb9d2a34c83488732ad3fb4586b341e7aa7d6da38409021586260622c37e594f9787cb65394d6f0a34f49f098f96ca76af5683ea9e2bfb97753ee9cf9ea1697460a9c1486a03c5494841819eca47b79e099af6a71696e4ffc81496add16eea4afffea2a37e8b35a28e08f861ffd1f3f71ca1cd55ff3c909ce2973b14e196bad86842338fd0bf2d055aeb59a6c267bd8b9248e8542ad734f15f3036f4e6f230b734ef972b27127b779fbecadaadcb0726502191a2688d1276e294b1f13b87c8bdb92a58f09a020021db12b0a721b20812a51020c7fe292b2f451420b874209295aca65c9d24789237c0a17b4024de2824040499c01fba296c41667dc952c7d927832e5de2c7d9260a2856bb3f44962c9152e98a5cf122c0ce1eec8d2670913d258e246d36e284b9f253f4b6648d0aa0b48739372c3db5390a752f74a9dca2afddff4e1f9e1da12f2c297465d39aab990b23cac3d4a108d46e4ee6fa573829ca7fb1cb1461119f547714c91fbbf375a546939c8fa803a4555644d624c60e092d794dc2aae4f0e9599d7ae92bd0173a9cc1a521e59a5e562a7d151545a8a4abfa1d272a8f414151af6acdf674b202179729a3de47e3ab9f529388447f6f7a64ce2d40771f023486c6e89b37d689b1267db8c08cd6e910da5c4d9421edab184d0e490575571e45a9fbea48e7f5599e55abfd36871e42aa94347b2293139606fbca48c3a4aae1d6b0771e45e62665712a77fc33239602e0f43308e471eb55ce4a234aa5f8aeb8d971cb0dcdc9458ee25b2dc75d5b158f216723f69509793ea38ed3993905a2425ecb55c6d0179fa8b24568ec03206931db417090d26548c505b899282cb46d00e3aa630a201a9d031071322d94d8209481b3df1c417c40d110c4ee00551020b7c35d125a19504d777bb6022a406cd13c3097b84568786135c9457a88d136c6bc0ac1492a848e0c0a8830a2c0ab4310185075923a83e597590365ab48a3ad558a20693bb45135ab0d1c3c66833123fb666e973441b3c9650ea53a54d5c17597b7169b2f43962066dc6fd2c7d8e58820677260a3db82f683815aeca17de73391e5028ae0b151dc71d65e9a3a4499e8fc6a559fa28e9318092958fca077547a659faa87890c7fb60ccfe48a5b6b4d66de3381baa58f0bc68aeaecef33e4b3f101459fac97c258ee89b78fc7846e0109aede8daab32e70c3d951d20cf0eb0bb5b042eb191536e13e9595a5a660b69f2b8b0b8b8b8905676b8b8a85c171797918b087471f9bc2e6439971ede14de0b10eee749d348a3caf4b797ad2fcb31ee38fa19fd746a46a1b9e83dfd11d0e88d51d0480ed0c9ed989027fa54764e644a69ff480d298e5812f5237558321db96005521cc9a8c83f51faf4e48e23d9cf08ca68d6a951ac4ff4797878d47214fd0e8fb0c0a3d7888b116ce4459fe88f5c7da2cf1a3de9131dc94650fa447f341bc94031ee38928d642359a6aa6d7eccb6d51ffd8ca27091e98f689d0233fdbbba4d5a9c5b04d11f49a1a38a4c47ac4c7f1cc951cb746621893c5e55a69749a623a04c7fab73c4ead4386a9269ab53e348261b35e9d45855a3279d9a5fc4f238aa22013e764f64fa4d271dfd64fa1e10ae912ed6c572cb1c661cb5519b5c0946167a32e5d154956954a11974ad391b1ce279dd170a755f37b3cc22d5ed747adb2ccf91ee45aaeb59da0ed31027655d856012677e098e3b43fa9238dcd755e6beaebad686829e73ce399ff4a96bab4f5d597dea1f65afbf0eeb8f0bae37290acdc5ea4585c958b24e4d2831797219052c2a4f81274de30b2d778c562cfa545f7dea9fc95ff6e8e718cc5eed3a65a5951355579ffa47d9a39fb5e29ee048e7b1834d20b36a91fb29c51d6ce22e063ab91d4ceaace4fece8b4ed1af501ad52feb535756eecaead49316af7498201da46d1eab2bf757978b313b6cbf8545cc9d1ac67c921d77c1fd3c765f963e539ac8341c3b596e2e775ef4a9832db92fb4281e0862350bd74817930df0a4698c212873de7472fbfbe5e0101ed9fe7b1ea67d92b256f99efc5854d90555f6ea37738847a4ba76e5d5d4fa5433a54fdc8b54979a642632a4f82233d54e7164ee09997b931b2ad97446e6fec50c7b84db46c9093f85cc852f58c8dc836b5c95dff12abfe3612c89e2de7af545e626562ee5f105e6a269658265ee54933af647b5af8c2bfb344dab13f73b54f05cad3ac5a4b91e5aaeb5d67461bc4aa53a6267ec646337cb55a5d684409e4a220516dbb8244e7b0e8d8ac6956f0f88577a42524ce2f477b40ea80bea6ab89bd2a7fee956a3a051908b236bef1dcd728f82dee090b8dd8fa35927e6fe163cd2c8723f0b26e1d15746171f993bf0e84a5444787425796461b1b0aa123cdace322e192cc038ae0c177d02011e42c65107145a411a7472c7d015aa6511c6d5a88671e5fe108b4e792662080f08d1012345460e04b1010d64000317b0400580a0c004241001083cc0013f34c007061059400f3ceca083021290030e08b8c1862142780e60809d9a1ca4000418400d407468f821a66690210601c090f3420070c2c73e00e002abe57ac17ac45c3cf2fd3d649d1a7d7fe8923a3e0acafd52021905c917faed7b37d8f43698e64ff8e67b609b77019f1e857bbc0fecc20300a31e6300fc631fef58948fe025ef3d9ed9f1e6f7f8dbf1fa7b0cee5c9608df2658b4737b1e8f769c060b9a5748e3a2710d81977ce0911842a552a97640f0446024ef014cc477007be085c0437c11dc81378285780ee0223f6223bf01cc810f028f9f01bc81d7000ee22f8033f018c01af80ae00bbc0530069e02b8020f04b6c04b0053e0278081780860097c04f004de011802ff001c816f0076c0ff801ff00cc00d781ff00fbf00cc8027827d781ef0027e069bbe074ce475c03cfc0eb8874f00d6e1158077781c70023e07ac80bf01e3f008c039fc107cc3db8011f03c78c80bc136bc0130cf1fc1347f002ce46bb0017e071fe083e09acf78e70980837c0170fe1a30017e00b800af836b78207800ff03eb3c0d18c8a7f08f17310d2f034efd0c587c0160193e063cc3e760013c0c38860f00cef917300c1fe2003c0e7ee1310eff31ce3bfe32cc943ef51886ae4e8d34aedc312a981a14770c5d234ccdc599efa779b988bf9f0646134382efcb51fd1fc017d633dc178d8bc6458345e8729188ef0f5f2e0ef1fd21cc450f7c7f18735188ef0f652e76e0fbc3998b46be3ffc71b1c8f7873417c7ef0f815ce4c0f787412e06f1fd61cdc50d7c7f8dca450d7c7fcdcac50c7c7f4d8f8b18f8fe1a968b17f8fe9a968b16f8fe1a978b15f8fe9a978b407c7f0dcc450a7c7f4dccc5097c7f8dcc45097c7fcdccc5087c7fcd8f8b10f8fe1a5a0d504d504dcda432ad4c3d2696a96572995e26982966929966a61f13cd04640a32d56c542e0ab1e9b161d9b46ac22548cc3a76b2005f09bb53f3fd362f1b984dcc466633b3b1a1d900d904d9d46e5437ab9b9e9b9bd68debe67503bb89ddc86e66373f2e86e1922ce82b6177c2efbfa1b9e8e3fb6f805c04c0f7df04b9e8c2f7dfd45c447d7f0f958ba7efefb172b1c7f7f7e871f1e6fb7bb05cb4f9fe1e2d174ddfdfc3e522cdb7cfbcbbe3f77f1f8263fc673ec90e0bcb3111989f098b903e6eac206807c6b3bf07622b8e3c11387485af1016c64259380b7f425a08140685b51a55cdaaa6a78655d3aa71d5bc6a6035b11a59cd0c0235b41aa09aa09a9a6ad5c36ab95eb0986cf643030aaad9a86c56363d362c9b96a36c5e36309b988dcc6666f36343b301b209b2a9dda86e56373d37ac9bd68debe67503bb89ddc86e6637b41ba09ba09b5a0f558f558f9e1eac1ead30f452c6d0fd8d1a72867e1abc04028f8411aa1d9aafc12bbb7324b47195e0b863fd1902e7fb2b908b01f8fe1ae4e20bdf39df307cffb6725100dfbff5b818c3f76f2c1765f8feade5e20cdfbfb95c4c7dfff67251fcfef1fd5bcc451abe7f93b9a8f3fddbcc4520dfbffdb858c3f76f341707f0fd1b908b04f8fe2dc8c5027cff567331c8f7732a17f3f7732b1777be9feb71d100dfcfb15c3cc0f7732d1779be9f73b928e4fbb9978b43be9f83b968c3f77331176ff87e4ee62202be9f9bb988c3f7733f2ee6f0fd1ccdc5047c3f07e4a202be75f87eaee6e20edf6f552ef2f0fd76e5620fdf6f7b5c5cc0f75b968b44bedfb65c64c0f75b978b3e7cbf7db9d880efb730177ff87e1b73d101df6f652e3ee0fbedcc451b1b964d8fcdca4665aa99824c40269ae9c73433c94c3113ccf432b94c2d13cbd4635a995435b59aa01aa01a5acd8fa36a6635b29a584dcdabc655d3aa61d5f4d4ac6a546118140285b4f0279c85b2301686afb0040502b8c4923010815986c02c1ec02c4260960e60162398a5086619310b07304b10986503984503982503980503b8e502b8c502b8a502b80508dc4201dc3201dc2201dc1201dc0201dcf200dce200dcf2036e69006ef101b73000b710c12e0bc02e3d60171eb0cb0ed84507ece2520076792500bbc072c02e311cb08b0c01d865760376f9b101bbd08660172021d8258807bbd40e804b2a03e0d26a07977a405c62499cfe8c4bad20b8e42a002ebd08804bb001e052ac065c9201c1251d5ca201977ee092884b295c9a01bfc8805f62c02f02c02f30e0971cfcf2027e7939aa3f00f80507bff8c02f3347f50300bfb8805f688eea47e197137e0972547f0ffc527354ff0d86b1c130260cd3e3a87e1a0c53e3bd94317c5f9a42ced01f621dc818468a83fc42869ca15f6670c5b8c61cd5ffb8ca706561955830965c90290ef218baa80e6ce81a7b40197b782cb8a38c4b860b19988b3cbedfe3a24f0de390b89e471997dc99a0e339bd108b0be6fb4ba6c7d80b7d216eb5ad42524c018a5acf9d99c13d5e8eaa747525ed2a5c7d72fca3f519fcf7ce5c459f3c6461f589e5c9063e20e661c21822303ff3336111330a25ca70edc07c921d8f6b723dd34ab3eb79ac63e8eaf18221d2edc8dcfc481cefc96561b9f84ff3a39d6161b1b072ffed71f1c390c6da993074f5e47e4e892bf318ba441d0f0c83e58e0c8ec1aa6e278439aa4357eeec3058eebc60b9d32d711b06092471e90600c193a6d13ad00442c30a9b2ff8fb3b14a4ce0c2b0f248e5b559e2a598eb57705448fc52b17278d2669b452e95ebfc21d6790ab835cb4ef403dfe63d72a2cfb5b2e88cab8a02dc8454ee528ffdf2a4c968fd03c7241aeec52dc0a9b40b838e40b3c903a5c15248e07896c7047aec66db56dabd570fc531eb75af61f372a489d3c87143f890aaa824c6141a6e8079190c82ec57d177d67fb200d461e4d2edc3b961682cd5a1d2915c2fce63871cc0d54a5aa374c952acff71ba615ae0e6ebf4889db3f9af2fcd01296640fa2b6d3b5ec4f663bb78538078774a8d622b44fd2da234276e3bceb426df856f107c4f5e6b1dc5e6d102e762f5bfe102e5e59cb52faec9951cc26f3857eee2b388487dee9dee3aa1477fb181c68911b16c94d933aa1ef3f32a78c35594d9b406618f385fe0e23f737c1bde3755f102efa4eac2573cd5efd336169e49ef5094a9f6412a77f8631814c32e40bfd2d0489d33fce3172bf479bb6c80a6fc70b8b3062a70bfbe52836ee4440920c82524652ca95085947aea194381ee3562317c28afa44781d53b21129255be123451559fa38b1fd5f4ff087f98056edc850455ffa30ebd8a9a18a86f4e70e2d811152ca0efdf9345449293bd38729a5e47985285e4fc0f24b963e4fccb24f14ad2c7d9c54917d9a84916de894f491a227d3cfa1532a99be37aa6f85cadf082b6276908e9299c8edd0be8dd9a1bf07b9d3a174940f1e961cb5bd0d6376d83ea607b9b385456441647b6b3fc687b9637feed8b0882c7a903b4b4a900511fbfd25f02f810d4fbf3d185cf803668c2b77fc3b8607fff93eecb0c43d4a149aa8bafd0639395f589bc3bd14c2948bf87ffd464c9ec5168ccbbdcc5db30e219879864298f21616a15f432134ec26bc6f8bcb7dcb2ec76d61911a16e97032f1fc816c59fe6902f954a59d49411f2ce8036ad62f65a71f73c3f6fd1dc694fcc7d2ad7476cc61e075ee9edcc903f7db4bb087d0db1258174bc07d08c710b11f7afba190c33144b60ffdf6a110b62187b7d09a6a58e4ce9e4d50e18d2aa4313af2a9f2f63d7b1e4ce38e54760536726cca7e2a73f1adf552e93ff383c15c0eb17414c6accce517d2b760960c0323c625fdca97deab204f89f41ba944927d0ad2f6c73072e84bd8631e469ffa49d8652d78eba1e2ae7cf72d9894372aaef72d78256f54dcef5bf08e580b56c91b1557f42df8ca6fc1a3bc5171ef6f54dc162cca1b1577be0d91de6652387e2093be0583998514ca9e6d20cf0e7f39851c49eb898d33a85b3dcba3c73e3bba119fbd051729707f8fd1b4ca0b5e23084d71ebf49fd8c8d69acd80badd5e74503cd690290ca8951f71264d9a2738bf7c49f9574295b0863cf3dfbff76f38d2b73297649f3cdcd59f747c315283ca2a0c2aa87b6cd4940ceb9ea467912a7e32f2497496643c5a45342485525cee4c3bd5e0947b8486bc2c3b9fd3279538f3edcd1f8944edb574fb6c4926876448dc9cb37a208fe7f0d1a74d43a2981b32b551d854d95f4e29715ace5aa7a80cf2f044a5b8a337e91e89d35d7354eb4073ab6a79a42b1e7ca78634c8513509776cd52af7b7aa534b5a7c952ae88da020cc1e1f205e0a2a243508af1a94570dca4b8c076dfef6db7be1f785de77dd187766effba58767a63bbaae7b89e5ed8b1df39ba11fb72f64f20cbf2089a3bae34a2b28afb4a4ce9ca12f28f7afb478d0bc598dd04173c9fb3d65cfc9fe63cbf50777e65aa92867ccf9bc90e556a226dc71ce96c83097746a1b6d5dd775dd297739b9fb91bbaeeb9f4b4854ff173f724efd8239c57ce2a7a80977e6a294722667a5d968141402c21657669bb76f8b2b4417cb45ead370ec62b93e0723c6ed62f98c1bb23935b41fc43f14b3a1dd420987aa543af990e131f0d643deb9d3df72825092995d98d3a920a4942333cb80814e712519b95d59a59d1c90a8fea9240b311947eef769738260c21d67cfec716bef2d957a3e2bbc93f442d993bb42eb6538cd5944dededb32edb621eebd0e674f9fbc54b2e1cc15e764c7e36c72809c9c7e538b970bc7d2f7a4ad6c836c32b1416091bb8adc4079d5a73a6eb76d1be37cf4ec42cf0b47235d2c84bbae2727670ed2928642a15145c9a7c515627be522968e3b7633a923937b7b0d8121cfee074a6acdc9338c89491c32ee781313cb37aadcdd6b666362b99f0b3f1faf5a05fff12327e774b2d45a504a1cba85a31123b9823adc398bd0f7a73e4c40c9a365228c92ccb8fda02107861195479c27c771dce44690b71641dee868251d9e348d93e55b4497b1c4824b58b60b6ec1b2c72479a43f4d32e57db732bb150f9b78b858ae41b2d9aa9d72dd3623f21c93d8cd6edcd685a3117296ab94c92f688021d71f51a75ff9d183efadbce4faa34aae3f8672fd29c5d2d797a470a4c9dcaf84230d4bcbef08c7eb520a5d422951371c85a36d09a5448942306409a5447d21478411d91231b3b59c8f3672ca9486c8b8f32995b31ddd99604e2654c6689db4d639e7cbc8b0d427eb61e9332571c71f3f3c9cdf24cdc6a53ec99733bac69432ab485a4ade7c0b47239f7f9d4c6c938929a549e6f0cb584751d3a7c41d652cc86c7b9a9489146fa3e45329d9f15706fde9d9cf9940426f7ff426348f484a506a08471904308184dc4301705f737c0ac09b74ca2dfe2183833c5d439f96dc1ddcda7ba5481b2543a66fe994610a60029999520faa419325190059fa4051cb4dcb95fb8aa49964f9f4e548c78f0bc7b9813874996ecfd18f898f49a7e873f3c96cf5a97f5681c41da70c36651336e74f97ff24f549365db52877b2df3e959af62486d328937d3465f746eeeb83d824c2329e7f3844bf6e8242b64a5fa034818bdcdfb653601b31937ced4da0947e60874cc54ecae7dea5fcedfdadb5361ceb7321adf5b770bcd9f60ddae7dcb66ddbe69cb252296715e6e62de734f22d51cb9bcf3a67fdf9d2b271b7b7b3ce6964d696503ae794b2d6496f9e35e5954eeab3c3f0af55764b299174ee69a594544a2929a5524a39463592e94b3c92aebf2465ea5bad5b2565ea50f0a8ac63adbed577778e1af9720d8550b9dfbe7e11eaeed56bad95cabaf16c4868a6a157c1737a49feb2535f3ee1206379fec0c7057278234a29fdec4f5dbcb0d395a4256952489a9c73ce39cdf0a47cd9547abb682cd22a6fcea64eea4629a5b429a5948e9cdc8f524ae9f755e95ec1c293ed4929479e41c1c245577489145acc0b7fe2ac9a1c69cc5e5834935e01490923365bf3c9945a963f32e4cc9f210d23cb589fe4cf39922147e288a670c79c1b6c4453b8f22b386486943a756f6ed29ba37986a3119906f54905c8f3688b3e9952fb49838b97f738933780646154d1ad564d89f203e36236c9b327c8888462439de3ca3e99bc392e9d72ba68fe0cb9198cbc9194413bad9b7b16dcdd662114eadcfb4077771f8944a3da94d27577f7d1ca9c73ce397bce5e2191585826cb0a69c4d2c2d2d2d2425ad9d1d2a2725b5a5a462d22b0a5a5e52b8277e76c90a7766738d22659bebbcb6f3aeee82c27b56e74b3f46b5daed271adb59f75959c95e5573aee68ab1477fe07f248893383f205b76d7be5ede7f6d5c91dc98c7e8ec02132f95e15956dfbca71dbd36d65c78aca5d595959597919b7579661bf91ed6557ae901efd4a190975728d7c13e4a9d9c3af2ae1ee7d856c8686c463177b8386861c51cac69d53d22d92e0495452c71f468c5b59669d61cbf768cf4f963e5030c93064e98302206498db9238fe20edb6926e36b71f3b25a399c4f11fab92914ae2742529d73e6916c4ed6d655a83d119b3acb3fda8ea1ad229672cb445e74f39e794b37af56aadd5370f19b1caf2eb9c73ceb03ef7d2525ae9104844d029fbf28b98aa16bb97b7c3481ad5412eed104622823e3504ee2d62081120e953bf6809db350aa2f418acf0a3850ca0308213171ab535bc287924b1914719931358d83772ff3d23b7cf09b2c83e2868229f3c059e94128693d2a5941ef6a94f934a2929363971e587a2b8f2bf77c9bde4a494748ee1d94eadcc1dade2978eaa6803b9cf7aa1ae0b79f6e3c04d5447f4ba4aef98332489c624b9f20064e2ca2929a5a31d2d9074ca2aca1d4a8933a740bf99db255cff4ae96d77f749a54b770f05def6b3f6e43a64e60d4ba5d7202a2975ce0c4b29ed597fd65984b9d95a6bad9f1541d360ab75be9c6fe753fbdc9c2f79b839b939bb7e91ba71a1f4e60475a040ae034f8eda08859ee32aadf2762af4b3561087ed436f47b76f411e4b2d07853b71f0e7be8237d46dab75ab35fcfa04053fc329f597eebffd7cce39aeba83377848792aadb2abe049d308c32cb727414adfddbb14dcd0b7a853200e524adec222dfcbeccd482ca88009337fe138f327e4f4823b86ae1eae2be4a97f44e3b2b7e7e647ea802c2c9b1c0f73efd87b1a572bc957b4abb277f5c306c10fd2aaece02b7b38d20f7d10f76cc3b12aa95de822415036527b8af8cf6cc5cbcf0029c306b129050fad58fdcecb87de7bc1d5d69f2e8aeb33c74f1e43184d862e71e6dbbf4ac9fd398df2f1e3bbc79ea75c55509f5a0ef7db438a396e2fb258420f4de9af478397d0b8bc47434353c2342f174c83050d8d8b068f767266725abe5b7eb4b996591ea626e39279d1c86464649e867edb9c2722b860f68d72084791050a5434ae9c1f49dc91859593673e0cc3e894f7fdf461585207fca6429e605a30ae1799d4f1177d892575eccbb83cd28f30b5fa23c30243054c6bb4f2238c55d9f1234c2df707a233a8c4ccd4a6454c2aa5660000000008000315000028140e8ac56291589667d2de0714800b7ea44c6e4e1acab22487711cc418648c31861060882104194043531a81007177226b3e4c1122c786bbbb0bfffe329b9b5725f86d4a61e0b675e1b6006e4ea3e39d20d2618913217dc84be756c5ef1020ee77820830c309efa205f52ec9b85aeeec3b19e78ac72540cefe04a5cff25976e6422b2b8adca413d966ef098b9b3f02c05bb2ffb95a4f0778eadcf4818001cbdcd22bf7721b24f3ccb3d98bd10c4d4ac0fe0baaeb0de19bd48c3e13ab2e5da9a9215a34232a5407cfce883b6f42a3811c1ee26f2e7582e425b99c66127696ccc10c082e5b94ec797c0ba10e4d4b2871c1a36bca492d1db9a0e5a816732a88d606728a76bb170d641629138083350be6f0782a762dbb95e331e37fb72090472f2a3ce0adb8eb456d78187f82bf5eb6ebfe2729786af2801b7fb22cd8893111ac736cc909904224eb3624366eb0263b291f47fc74b9cbc4fe98b76e2fdf1c4efeba471ecbb7d313d8509a654134f57d53e5f11d3c86aaeb61a87e93b95430d313af5035b6712b959fabbb32c75a0b584bb1402ea5a412508b7d5a25fd754046be2a3d065a980438416af6c0001c47106b49b04b4c759b886ca4645cba9283027c3150a936d1613aabd8de04db4680b9747da939689c6b96278b8cc3a04f7bd3cde554df1c1a8090a756129cbd895378c6be2b1617b760e9f65d8ad9ad222f1be4d505facc97fbea44e31d41c5ed9e1d7675ef4703e347021dc1f0fdc1a8728de00f7f87aa2d9408349eac5c54e5a42facb7b0820577998d353c05af30b5851526bb8e38fb9aca040c5ffae7d02dc0aa30d47843f1f1bc7a84f882cf29d30771caaf8ac6af3f19d2b419e4b118eb796f377f90180580748fa61320fb37a2c3d01bf4ec41201c8cbcfdabaaaf673abaa8547d7046238459b51747a97180869ffc72524a6102c1808baf30a1cb0abf8419f99cc161615bc9f5391e11019347022707385a21eccd386753980b8d4744931a5259955177705c4743da4afe65c9ce671a6043cc8d494d6142887f2e9da272253df0c1400a147633370be1da1136106798879e39325f337729d32fba3cc2a5fecd0414f61618cd2cc89a45dc7ef6c07d5ff4ba4406e1197e59f440a0b203755a51a3cc4aad4a2b4d49da3fee403d34e17b666730b62f4d9ab8f88bd1a0a5ea0dce9200bbae4488a56cb7b5318503bc9761fc6c9e76174185f98a13b2ee7e7669d441f64920c4d1a1227560e2ad57759c9a7b0e4f7a453be7f94c0c13b36434fa52e311186cbdb19af307a20f96e4bdb11c1b301d86fac7844475403ef98b347513c08acfc38ab4d2317c0f57a24b3eca814978f5e8c8eeffa76e04991b941571b8693a4f5c92580c42de44f82c661c3e2ac5de8143e158a667a18f6508c1bca489fd1e47184b53dc7b01d35b0dc3c70a94cc3c518767b6cddf9b406e00c5b14e1c962482c92b888ade94e3c2bc759c997b7231d61b781259b0d4e50cdc84ce02a2c21cb200b97ed0a41800c14a57f44a3dc568dfa7439204dba40e1a12e305bef40dfaa2fa43241deda4762d85cfe3c9b1d94b1784cf8e1c8ccce333091e50db866a9c7d3d7d02d5e1e9e59cdc4e6ff67fdc5f367017083c01cfada28b9d3779b65937e7a016a7df1b447ca2ee609a0474d104e32fc090335b8cb70894a69a9b1bf266fecd73129b6b97bc625ec46e6ca7fa116681a07d50e86e6ad0c3045b6cd3126232e6b0e46be726595c5fb585cfff2340285dda1394e87d63403a1df3090693217750cb671a5b5a20b50e7e05c6492f4d0fe193bc826c5d3272405f734090fb900366d34ea3c24ce54b03c9d1859b20c6aa500aceb891bb90051255457f86fae054688712c2ff2b852c026d53392417a213e67b2fa3e691bc455d48715b47f9f0f67e0e007506f6dd1ee810d2b7163f9970160e0527468d3a9e0f53312e6745f85f105b400f2347df2329c52a4c2f9a4011c93abd250027c61c227cc955888a19fc08c60ad81028e997eb1b9823f6df63462e5b93c50a23d30b3e09cd3fbdcab1c34002d230801b319a291dbe230554143e813f789d633a62217fa16664f8b4bbb147506ad78dc8496771573f421f3a931008b05f32790c1c520121aec842e07f4d747a6f9e361f8ddf91ee836a1713b1dcb706c68aee0323d90eae9041afb69436836b0342fdf60f3954b0cedf5ed75c1351e9f6d84aaf9071338fefb30676284ca9d9f5b158ef06b2dac7865bbceac5421887a4d2af3dfcdcca00fcef314de63264a0f8d65928f12dd15086e31647b079c4ab1f9fd4b0c3e17069d2ec3da754390342f1a4c97d32b14e41c8f48829fc81e613b05119e120b835ee15bca61c5b7b35242faf1d0787a176ac96cd506c4803cc37944bf33d520800d1a577866cb74d0deaac64d18978d49b92e803f1dd3514f39f8de72baf7fc2aebc0d1aa03ea7a189549bf8b565f13c522f712d16e5d875d83973310cca3967a03a8413d36c36acf96e368759242326ef6feb841a9070358e889f30b2968d368d9ff5c829eef08f2d20b1374a1dad8ed89e7386f6c67623b5244b48db7f4ecdd4fd9f0c3de894a036b277c20bab3d41c76d43a9cca172c91e98dfb9c5be2b475b5e2ecce6c3d7b90f0cdbe3defa7566ba91506c498a7a31cc353c8320d60fbb98b1c9c78cbd16335829f8006fb75d9b9e7d6d867d5f57563987c5a04dec0d1af162ae4bc568a6f04ddeb9f30515fbceaebc372c331ea2c48a3c47b054c21a28d26f6c926451702330039413114767ce1210cc57908ffc408fb31de3f943350aef70f4dd825065f56f112107e354a51977072f3b5f3349621b5aa3360563404f1ab8f76c390526d43a9db028d10186f0f181c1ff51c68e4f71c9cd5e5c5d40bbc70019f1abb5142eb97a557fdb4813ef8c09dfca26b280f5273058ec0fcbe36bbdead870109eb1a2d4e01cb9f1b597b1fbd8113f68520571c82be31e3c5e67f516420e09b6141e2aab3e92f640ea0d95529f5c6eddb5aeca494dbcf5295c651665c292111eca3c120f2c9d0a5c41fccbda32a4e9838947bbc851dadf45dd087c8e7621c6c61576c6428d77adb659db124002ea0a3f6998cda9355f236bd28a19884431461c9fd37e7346241ebabfdd2433ba262856937a6e54e1056394f945f7777ceeaac0186da46ee12763fa1f373d758710ef3698e3022cf592f406a1379cb19248e908215f98c8b87179d99c95bd5aa3add6bf568aaf02fd8130c5afba894164b22d1352263edcd38770116d5cf9fdf1dd83169974633b63baa9dc150494e5ca7a87038889271e75ebe16491aec01269753202f7750b0b5ad4810c042b976940aa615283af121d8f6e8514e0ef2a9e39a00d612c2169bb75caccfe956b69fa0b08fb99b9b680f537e5fbc6fc14831f4832815c884f8f58c54c18c6a50cbd7ea92c0d8b7a8a25dfc161c621aaf285860befd2681b71f6697c2216a9638c8a4998e41cbc9578c600de0b4c499069268af71389c039d225092b638ee64ffd7c753b3d331e51e7c3dbbff041fc7299dd40cdb50afac11e1937aed79209ca673f8e2a4a3795b6a2dd5a9a0d71502d4f5d6404c78e2ec5f2aa184f6544545ab92d28f4eef7f1c00b87a7584669d8af085dfdf06b336ece40bdfaa0501f6285d8b2778dd264fe488b33ff6119956bea30a9ceddd517b8ddb679a2930ca266d6c27875c7cf6926fa5b9f5e1cf87690b9420a8e1a94cb4016d426f455c3e0dbbd035af83c495222b2b2c415bbb5ec3ce51ca7acddf401fda3b98364ae3c4504b62a59360c57d767c44be34cd92839b33afb1fac6e3c09609c4cf1cf02da11628d36572b56ca76f89a944c685ce591e608420ec8d2672a2fb9596c76519d62ce767d15055b422cf78b3bf7f32bce23be5eb5435de961b1f32c0e0f3482da02a581f877b79f0566014c37493b9d1afd1c7b50050953a8b5e6d1980b7d743e94093b94de1ce2ca3de7818d71da00190c39ed82e34ea6b7d7d5576be8e5faa0f3fa83080b36a024cce7c37783ccc17b4bebc55f284624fdf551b835d193a1a86ce1312b6c017c367aeb8c6e80ac3b7fa80852f60d627f2ca78a75490ed4f8bafd6904f9b9d7ee400dc9f72ab9fb8de6476d57fe1a74004b208dce00470f90cd062ffa1af0dab4ca4493e2e8ed49dc440144ca2a6ad6891a0e599e837c78834baa4de132bfc95d22d038ff100e67929597ef6ffece75f393514e70611da8681406b36386e526e70c325947d673bc2958d9de40fc04422369113a2329d894a47810010e181a627a1a1c127715d794af1e43630b7bb8dbd55aab242dc6a9c1580d179a9cae42a622e52ccb6bb2b7376cadccf4810c6043866727ae90454e475ba340ce36a64b34db5694cf204950028dfe88efafc441a83faad514117035f19897b1a1991625d0e565f3f6cae016984d96cea3d40fc6fbd2c830bf16a064bda3361f57b8168a1e67ebc07ef53ab9bb3ff91080e845106189f0889667ee1a9b24aace8ff176d311ec41d73d1e5af0a9408e528c29cef4862fdb3df57d3c752c0b33278fdcae134b68a090860135ac616fdf3a5ac95aded0b10443da524153c30a168350e6ef4da09ce34a861146ce638ad9437dc28edc7a081aef022a4e0e4e34466f77124e76de17a3cddd5870b2be814929065c921c103927772667a8b0642b960f1499f3ca14479a4cf808e76067ebc24f0255218523f8e28439a228e8f124d64e0ba3ae71990fdd431c534b60e3ecbc01bd8a03793000afd7588201c84401ce2e73ba3b4acac023bd24da6f33c4831b7e25ef3a915f00a1cac9501591a6800281ec80c8a080464f65a29cd334dc9521da8821e6e4875be720ce35e6a068b7976fc61baf836008b5100a103c910ffd205a3871164dadcee095eb67b8513242cd446e0631f9b6273203cf741681de0220a6bce17ef601085bb0148557883c6acb0e349cf3671c6a94054a9dd35729e28ddc2c724280369af95681b3807b1abdd67152db23bc147e5ee925c59d304f3d9edf9232a19d8423df8ce08332705e00f40dd59d05b1a4c1d107d8815148cd55d892948a195d74f0a0e2dd6c6ed0cf81c09ea8bd1e6e1155dd20a6d5c212c57e7f21ab937bd302c74158960271aa101ac072d6f7d7585675d7c94b6b7296c776e3defedf4811db44adaaddd276292bcc1b1ef24d85fab660c2d7a996af93d7b457773f8473442a14d67c5288e8fe7d36c6cb669747796620452e991e9f71b2ba7a56f8dcd1003997cd6527d83bb62533ac56d4a2a4f41925105123a1c7e0c76fdc3c04150c4144115e7343c6d3fb517f53c7342ad21c989c12592376ac9e93bb34791f590ec46da672cf2bf39884fe648c8a1d2c259b1affa21b70cb25a21bafd3cf64109d12ba5718c565551907f10c90b13130b94d0ad6b57495cc5737b11ea2b62084e38f50f1f4dc42a064fa5291cf54bbfd2496fcedb8f89dcf30055d24fb368868ceaa9829027a22f1555759a7883cece0b7dd470a8aadea0222ca2c1bfc4d6407270aa84e4c18ae49d4e2904d3b4cdecd54845771948bb7acadc6c84bf064fe9a922da0fb37e0d3694e0e43f5988a5188c35be0101f4c7d1ff7b8b8982b5d815ae0ce2eacd1968966ea453e367477ddd7514d817266f126ef8060308ebec3fa843d59031bc900791b8ba40b2861e2bf281f27288f0529d8406cbe315cd7865cbc861b82d4218b8388acd182614a9c009cf80410ba407ff900b7a7ed2c7223addc200c518d1ba1b5c26c1fcf6a13ebee3ec40d4d32b3564150ae8ae8348f1f1a9d84a155468b26bec5a9ff8b455fd3806822be97ca7144e3f134249236f71b07c572f6256b4666d262a88205f5823249a4eb9cc3483f20b571d51f9ba828274d4d0f8ba4fcd6ce89e1782f0b988dea8362182cdfcb82358da82d003b8952029cc004319c68d21e409d0fef34c3837ec42b1f92c526aeedfa87571f704716096783fa02dfe335cbd24380298b0ac7adcd768c61e53513e5d90589d10b8b9fc40ad454e1582253e0209afaea2217dac357f0e7685538e680f5960b96c8d1a0370df3df98c260682df508bf76ce4ae88a538ececf6d9dcd91ea3386faad768853899c4f514f637132a572aea7c60f3000ef011f385514cbdc5d2be5697a37f1f4b646eb955507c5c742362ad1b747993163779c3c160ab278ce9f9d2cd73f1337c1701cd29d6e686296fa696c15475189138935c00d80f5b059066e7959946856334270a3541f7228a0309b0396bf5d5b191189f0efd1f40997519466a19c7486225a657486e57b1f0d512111a989f22b3bb8db6a9e410a9fd242282b6e9e423c6f58715e08c1ebc12996fd22c0a5f23836f2596d8d6f24196d3f3ecd802166069d449de27cb8f36ee214182c3e26ddfdafff7a4b1d12d177ea50abe42f065bce1287e2f31aaac15501c03358a238774b3183953c2196b97f50c9bda2167f4a383c41726cf68620a7efbdb139b95574a1ec85fc199df4b1251d93c2fb828d0bb6db09f28e164fc3f9c913b6f07746890b7fc4f28e61adec7f46c1455c52d99c219230e58542763b801259a5249b2c87b29a9258a7f49b2487b39ef258a57cd6a3f426d9e158a76456a2c426d9e1c4ba60caaf718ecd78b4b91817b5475a062d05968a3c804a1438a4d4ee8230182d1df79fabd580575de01e72f9f79f8056c32c43394a966a229cf8568d9a37261c4d3cd80b56bc1dcc73bec2e9d18ddcb53d941614514752fe520de18a277801eb92558589d9ad20841c4c8076e9622aab0f567716dee937dffb3bdff79b69e4acbdf377beeb37dfe5ec63359fbedfefbef77f8d17692c0777efd5d9f758e18673a9e9bc52039af269572c92c7605b5e8b73e83a68f7522b8581925df8add71204e5472079463e0f444b81c3bbf4e23d43577c367638d41974e33dfd72d6c402e1efaceb0bbbb701b84b5d45b9174b6ffd6155f94c786837a5965e10e1bae85cfe4bd959f924ca2c5ff74196f0a38e8da1791ef343858c0ee6580330e4ad70ab12e6bcc6d15862eb6d3aa518dda9c47487869b672ac8b853dd17d20feb0a973e09b8b997ffb018b2e45b09518e2135a96794ec09fe729adec29d4ae02d8c42192ae49eb97bd33bcbc01d6fd7883adaac07ee13b614fe3b5acaad3e705a6579e3f0703ce36d42a5f20b4ee36d7b367960bd251a0f06934a5f1263cb49b77a4db198807829bc0de2312cec9c5a66cbf8fc69798abb938940916ac28e8889973c0c2de320699876afb8c7439894adfd498c2ca5a6998126a33cea1987945d44b176a538d1e77e9fca7e55c86545d5bdef7ea700c1b84bc4cdd28fd936057738bf747a41137dd3440a35634967ef7f8653d5a715efdc546d32b2894d920c4b108b8d56e7bb9d744c27b3ac94794dd83c6848efcccb3b286c7c5dec5ea75d4aea563995bb863d9ba4f42172d3b1fafe20719c8dbc2383f8552ca163ddb4d4bcc631711060f8a00ec73007b56e2221ab9fa51ce2882fdb4d54206c8cf52070e12f8903547bd06dcde4ce83ce3ecf7ae0a0a1de3dcbcb85db19df32a434f1d591e20f7ac510d1825645d8f6ad4c465d381dd763f580232c8d1832718c494841b3da75c5ca8a73f7e84065dc74cf8dbda6c7140fb6f0f170fa88f6182e3ac5c329268f39610bff48ef7028b5ac87e2ce74188405f0d070cf69d43570a7995e67c3dc9dd42ddd9c207ad0393bcb8650f5e48135669aa37d2d42af7aa2f1281f747f2f4738cd4c2b46c453881b2ba9a27a393e878f8a03657cd9edd30b67a48a2e271eadc34ac3bf7a53547fd3791c7a49fd0c468c1cfa9a56acb95050ba22b4a90cb949680a7420744733f0342b34ec23051d8e1375e80a45c528b83b53f5eeda04907e05873db983048fe48e9db34e9a2b01a84b54ca85efe676b098425a7378dfda0ca5328d52b57f1e1701c7b098c9b55b3a3394e324091b9b3af326207bc2af786fbbf6479d0c9d25e4c82d487f3d5af8a4b3178abd48bda11817885a2f9ae1edf1c940dce33fb8ce3dc352d5d25505be410a1d10e884fdbf0773322713a0fecde381f7671bd41849d2241742ebce7d5eb4c4750fa9b1f7c45ce80f884d29b582b1cd1591f544c771b7a4431bb275f96360bbda64ab5f7930928c4f6c1ee965f897e0b70639ba7bd07f007e5378f3238c21eaa872aa580c41c8015e034cc398e00276d930179aadcf25952e0b5e95083f8ba04969c1adb4bef5e43b695c8fd9557e2c960f847e918246ed48860fc88367d0aa7489d9368b66e14cfece8eb7e3b60a11b699297f7dd05df4f7a575e621942120085cc52006d835383f3f6e2a87216deb493cda4e5965266db0943ce541fa67605f113ba00daafc583b5e1869b70ec1e84104a1f5c43afcb26893e18ad3d1f6a2926d0cb173687fa3b1960da4ae39b842bad60aefeadbcd7d96e48e3e2a1e55126e8382e38fd9887141abc9ef848dbcc343d92dfda6a01cd5ddf02cee476b7a3283ac4f6d432180c42d849b0ce50149ebdeca40e76c0e98e59ba9fdfadccb83b8e6ac50b432340cf1f60592cbba03baa32ec59f625f00c29e0ba98763cae95440e55e0c761fc48afb7ec696746cd48d41c5287ba050dcd6bc1fe3f1782a2b18a6a22114c268dd906261541f522198560e49108645431784a9ea5045c158394462182d0d5520ccaa6c48387d81d057cb42462bcc35fe4641fe25e1da782791afbc5f6b56ecf77ff7dcc158ad1a947faa7117e9eac9c9f9a14f04770d73be58dac2089b1022001621d53b197985a56be7f0c9af6f9553bc6a8a2b6360ddf4d573da8e4e82fd4930a7fad75dc953a2b53b9776067f04ca118c089c7d6d8c88d7fc869b0cc846db042308a26a34f1143f82e6f60e2687f8a1bfff4c5a88ff89731856ae8b3d3bcf86e46f576e566449992b0ae64eef9769a8be4a83dfb4950c0123599539b87eafaa07733f8a2f62aa9a41dc24390fffbe5848619292acda74f35fd119885a3815f32efea97c0cba94f604591c142eeee8e0f911029d193e03999025c488b3ee0934542ec5bb0e1d5188348db0113ac60ae6f879f0aee2e21bd7ceacb0233a9954c5adeb25bc893e027dfa92297bcb15d04f9b2cea4164b4f5b68971e6dadfb1a325184bfd253cc0bf863389814424856aca2c0333d503222c2069fbd71188c21c61c2f74bb809ccfa902b3ac57005ec4d4b6056377332d7d457e634241e6de74c6557e1b35db4b9a5d80633106221d9dda40d8b29643eba2d28c9ce6b56c7c03d2fe6000664f1853ff3b0eac2ac3da1011161dec030d05ed3ae1ad2dbdb4344b1bc4aeb0dd03105e7a71cad52038f6198c91a26b31b9b5766839bb4baac480f3dc45393eb120a04c30c241d18116e5cab031764bf1f80c012266632e8b2fc69b18c778d6fdf39d654f54b7749f4c789a09fd1f24ed165a4aa3bff9582bb15ee45a2656a054d2a235e069fac79797435c8dc6a0855c3b4f3fc3c9caa1b2cfe658ccc17ff70b84809a457aa3ace6579450f2813b8c4ddfd49396c64ca8a46b3754dd303547c5728f82c0956b27dc58087f48bfc5d0f41acab90c89c2c2e66a3cdbc16f8fecb2a7226e544ec71c947b68cd0a585d647a8229a1db655296017fb154dda96439fd9339b29518eb14715837b69f24d88dda03d2984b7a2a622e6847cf65cb6a549632db97de4cbcb3679a1ee6e9020b149f1f941668d1e2dc256236ecdb207e4560c03d56264d32f381dc86e6fd761580072c1f5faf56f0665698823abf45864163c41bccd00b250cc19db42e5548e7082b1688a3f7153cf7cd078ec724c1a734bd74e87c1b33ce1bd17e9005991af6048ce5081eebe2baada25a677840d34625c07bf49d15bcfe3d2bba1c047e2bff8d44a14e254ff07a33670d8555feb24294484ff6cd01b088a9d024754e30b9531e160cfffafe1cfb8d1c35c950f361466938ee0a18b97356f37ae8e1f1ba040aa6123c7adad3e89cdd409e0088bfcd489f684d9828cde4f82999568d8c1068b7a9c9b347b83b0b0d085bccc4b0915eb43159c30ed20ab087af25adf1183cc9da4c4ebd3624a6b5354e5481633962af93c1cf4814fc9ceda15460dae6054d8317d81a41d7ee745a7114ba4fbeb1cf96a750947989f26e98701badd1b8e0076b54bc73f9e698ca76e83b34202d9849184e40886d91d9700e1873cc7b2f1ac94394e989d1142d3b0150da659b11cf902281c6bf2703fed602bece5969c8abbe02ce6de953f6bb929efda095eaa8a5285d18bc5982b6e9c40353f311140e1c3af0ac6042c44330764ce4203602cbf2cf3ffc951d012e60e01a8408851f914d18c34bd8388806bfd4abba80322902d9fc86a347550ee9588085c55c23d0f6621ba9126a31a8a14beab90b685a2c3e28aece6b5b0c4d8648e61f46f67e5a06af2e1a932f59f9eb65ef3e8e28049f3e6561dfe5fc757d2ca37f6cae479aa49b322e7df2560b8b88606602d73aa4077b7a4dea1a0219b6e584a87abb00fcd10050c50c6ecccd0126c80febffa0a55554aadbd63489c8f1218042136a19045af938c8a29273e8507b801fb423f7ab9d3fb4c2d6a0f63408fc600708dea59dbb3501c6542603bd005035d54e9083995d3884fb3eefe65d5afb652f99a0a02cb4e978ec4fdc1a5e5471c9d75cdb70dc37427cdbc667f67632021723341396b7ec8ec413402607cfc2963946fd30497b251d2aadd748f3ad08b52616eb5b039f82c844d0ec2afa7c3f8f0dd94b3b4825e959afa74765ef4d64fe079a46e5eee72f4929002cd071750e87c09a9a573952c983e10d5d270cb886cad4bd6c478822876cd4d92b4683b3226d6cbe06b2b0efda35c7ed75e676dee1754796b9fb3843b3ade3ae767fc2718549c648de0b0dcda15e35c19e4a5e818c74f8342fae536cc54f2356a5b99c6953902da8aab00994c046cf37c022a0ce42ea5a1436cdb4e0763ab8d11d8d558aa2126434895f0287085b0b16c719fa863fc103c2abc2409745494ad48ae164e16d94d2f786312d84b91e08239788c805b1775934095d40aa4522351e9e0423bb94ee095194d95c317d9bb35025262d42b1cbbc05ed707a8f22250dde8e2babb36a04a8b426553bbb0a609057865cdbcaa6e15055a53b0b886c1aa10a5082025e0a11b9c0ba0893e60260c4b67a0000992680332311c9d030300145103c47430740604c021885c00c681cf3d78449b20747d38a96ca9168923503d0d2a2c5e7a0771a4897e5d1129984d5d5e198fe02941f0fa402203e74fc04afd42781b976df4693bfee86c51415aba28210ee9eb500faab86f231caa0e5691ce29e1be75cddeb86f28e59bc9280dc6c67427144e958ffad04da2bea993980f9a4cc4876602f34991c17cd06410df05ef2026e7990a473ff373673631dbe186992aaeed158ed4671861d3f8a25ef46732a198f2439f3a7f0a88c6545acb1c39a6ca2eab55c586db26e7ca9f52f7d82c5435e17cd0a551cd2eeed96fa7cad826e32517151b02b98a68ed4f8d22ff1bf710515cbcc138238c8640b2156e11936d31079b1a1a0c1abbea0255c21247c8f00420b3d62571b6ec00098518cf5e3054b7ccc9d3246704457222118c4cf9ab1f403508232c4749e11621c9062bd834cc0e417343cc51ddeae71defade76e3cbdc391aaf93c60d37a41abb15046876e20139c5e2a27179125363844e52eeabeb788afb03bacb6dd1e1ae469366c821f6a4fc20cb423e762b100c057abd0d1432999fdef8b8922d98f51661c3ae06f8ffe36409190960fa4054f251976939eb5ab0bb009821513f7128f8a68a397fa8aa0196a2433e596f236c9a23ac07c7412a62a1e84e8de27937a9bc6ce0eb149840072a6ef1d5403dd5107474183a5395af9a98472e131a14c27334992824c0466055d3be25a3abc95dff5cd81358558e3ffc9f6f0104abb55f3e8c32162fb173f2ca5eddb9593b0106bcae9a5c34a1712ec0528234ef74640aa425b884dc778f22834406ef13443a86bc1a2730f3d7249945893552f7d55bea36848599f9381c32f2be72280e63bbc6b5fecddcbf5d9dbf40868e100b6c4a2748f3a647e132aa607e92653ba6777c896f06a76727b7e4c96c0563320bee75ca466c554287a7f592a1d6d84dd2e9333cb2165936552e341d6064d8736031b4c94f3b695a7fbca2fe017425658bf7e4ea11bc316bbcba9af24c2b9dc9ce20e370bb174da54277c795b0efae75ead387113bd3d413ed916989787e9ecd958959da38ea24aa2169b5748156c1e52804018bc09e0fd8ee2ec62cbb68ab9de6f4100049577d116e675ef4921d9c71ad378c9d0953925bdca133b6003d299f3e3a131ae2697ad5b734e2acb24966a34da17b9dd9460a800b8a3b1ad6caff5fea8980f3655ec72446f97ed73e457e56bbb7409dacd74e7e12f089f1095e0036525100e794e7c887d3d613778039430514f72941e6dc24b03a81d1e199f3878fd137145bdf36fe8333322448626a2bbe1ad5aa0aaf5af0ca3147430a702ff67f24142f1f99977ee3dc79950191151855e279371f6df86928e8fecd2390df329d8c1a21abcb8a67b1733b4a8a6c02b608c87c7ec25ef07ef764348e4bc0b817e0f01224c02f2f6aa3728238d8b0c1d634efd5c52328490475d331baf578b35da1b24d3c2b84672f2e25976dd8fae850a218f8bf698627c5cec20d15a3c25e945ee08c413163929539dc45454d0984b42776830560638dcfac48106b8c483a1b96bb2871271b5414c798f9f4147b08659883a6212a3a06e88fed157fd955279e989034f00063bffb50df3bf299e78f283b9d4f234163cc833b006b1185e1e5d060d209ae221240a3f162814469f4610de188a450d332114c5ef35ef5ae3408d767f2546e8dbd87e0ee5df60337e8e0d5e9a97f6f3f0c1eb9dfdf043791f6e59423cdd9cb398862e2349ad28db423ecd61a6f963d8dd77d625b589ac8fb3af1b667fda4de7bd149dc519a42e1e1fa14b32e08dbcb86faadfdcead9fd8b44db9b1da22ee8386270b0d923c625ee1b62db5872e578100424b7beef2b00d3a29dd10bb158b34a1d3157f4bf7823cd18d30a202bfae0108cf16087f52f34f735083f5924e2218e17813c72e86ae3c33c5c2035f21d8d0608d8a859a4901e8a5244db926db8e147138f50c174094fcfc0490f68d32183050bd8273ee1d045be8daed1855a86051dc59128a1bd96f11be57074b13adb55f101ffa37b1f3e40c0ff225fddddb7adf1ec3f08e3c716ebececcb067ea1eca924e947ef13f6048491e1c61ffef673bc038311edc065df221dea5592716440d9e493335e8c7df14a75412f30fbab654ebf21fc773c206e7299d81b3443f52facd23df15830d333cc60b92ec895bf0fbb0b3aa21edeef5e4672d6fcf97c769eb847badb39c64f118e294a13b7e7b2a48abfbf794ae21be25260cd61489641ac736ca6375f41eba50b29cf320845eb36680ba03895a377f8930fe4282c52702655dfcca53e78f77561ed7e909123d9fb45230508713df1fd39541796b225882c23679fad5720a70b5a89a78681b15e28071dfb2e7e2abf06205e597eeffeebf7e17b6ef1ddcdce2afcd82045418e84e62d6426e85ffe0db32ac2273dbdd57365f5e6f709c9c2d3590b599377b1c155c9b0fc7f08628ee53d19bc25878418cf1de0e3a08b2c64f240ca68b729fdc5b3b7262ac82e6c10a87b174bb45b243a14954d944aea675c24c78955917c37a39cc3f23cf33ec484ca93e1c539d2dab7408b4082aa1c22f29512d34f58a275f9107e72173fb6e25129c5f09fe9a9178a77633b91b21a394cbf1d9853eb507368b0edcbee0d6a99875bd51fa5aa4e615d3d320da9f89882f50487f2dfc8d3e922a66512faa8611e60dce728822330962d85f98462d57453eed3a54b438e173812be1c36a149df630f570dda7983ba82a02fc1d55f43a0ef4eeaa21db688c5fc6ad137478a377471d1b08a3c19badb096c317d6b3de5db90adabac88ceafb490b46fc30a7b37902631aa8a68c1ff90379cd94d1501bf9c1fc706a9e12a3613c7ebea13d19cec1f9b32983429ddd8a0fd4000fdf31fc57730e2c3dd1360c237bd752e1f330b9d79f617e9559df21190fa919e71233c146238a624d717225811fc3392a60442027f34d8de3924abed2a50e47838db258e869d8fcca4ef576dcbe63dc9341ce88cfabcbd854f48aa33556b34e8ae54998430edc99fc4505e629e446eeec0c81027f91619d9b3d515cc7e9aa38c264c2521a632d9f63e4eaa90feea8d6a4759f3619b835d30de958fa6000ad33f5e34c88d497d428ea1a7b1976de96a12eadec3fec791db5ab18c513b2845261faef80cec37f04da39e317d38bd6a9712ba902ed7441d2fa1018918c5d1dd89f30c4a4912704986e53f43b74bb5cb16b663c91cbfa6c05e2b8843c0c454a1a23413764ed985b28e6dd82e87d821f698096c5b800795c22a9253bb7a462a701666d1a4a8a5cf2e7b3ac41c8a35aefa82163dec1394c699f88ee6a68f5652141a5558ea6d1a67f01a741f69e6be1eeef62ceba015b5eb818cba0be228b9a9db7ae3eaffafccb185e15f8121be3a71c1c0182fcc700552a998d6e6ed05a085dc0fc2322bc83aae657369a16041ddc894a612b24cd1c050b2c2e9efba5054d92eed02a260efb76d88ad72f29f0e8b441a555ed4ba65718bf00b725581a3a24c98dad144a1455a1f52fe92101724e787b9b9d809662621e1abb839731a18aea2beb02cc58939d681eda3bdd036aba89e703551e84044bda185f4f44d87e40727f7de34d01d60f1001e879eae6f737ce2fbcd51ac1cf97672508a50b83c4c3f5523cc315d504c7f93898b295f0042e998bd85f2b71014afc4e80b9c70522f7f049f4694a86c6b331f2867c157f3761676e585cf957d46a7a91c8f99a0539cb5ad87c423d34319ec5ed168aae96ec40f41c3ea1c8fccf6e3a96e9c0d574b1e657d9f1b36bc6ca47e86d614cb5c3a010a24e1452677c46ddcafbed505cc77724ce81463144d346d033c7588b379ee300573362528a7637191136f1b027dbf4d3910c62d04ecde2e7d8417a54e765434cb9907a966a57dd10f432155cde645f24e8a010f6c30eb8de9bce98641bda493ac0b73e526cde24a9d470ea7a95245ae9abdeafa4b6a8926a68b3469e8c3d3e246f6aac0498f0fd2b424561ba36675bf01f354e24f630edcac0083c170b26f0544136371e72b60e688212763ffe271e3cf6b7bf941a4c7f0d80ed93413b9fd26bea8d3100e6915604dbe531b40faa11427abad46a4c2cfead4bd6f5d0d0bfbe714dc97b1c0e079204b643e1296b69291b4aa2c54a71e4ba4451ef65d9204be4d3aeff81e89cd462d71fcfe150916e7c63a8c8bb0b505a19cac8c32a2e96f73bcb8876606e4f783e49aea3f6aa87a15406940bcf36dbb231ca89abc78151bebbed7e0d9330294c8b58bfd70d4c717ecff6289a3ee4668ed972a76c18dac63b553a94f13518d076e4e20e85bbdf88da1234a5cdb34f5b6f6da3074442dd7dc823d33111d8997662bb437bc9c91161124ee8427c1a6552898b7a61e2493fd476639ca229861b224a52de76637fb90b97efb6155e304fd6862283daf4179a5a750ecb1d69e5becc6517636fc95d3e5a30f2f161ed04fd7c73d1afe933c3989cc364d1c7ffda39d036b487002759e43b44ac1b0e7d12f6401883d5d5f05479f3407b2b75076a8852c003704598bdc53238346de03dea3e1b7168f317fd2f20128d909e62b81778aec42b64d822dd013b11f4ea91cbe27cf6db5e6efd1af9fb4e58c1d805254e413b1043619a50273558364aadea4035ed78cdb384e784b359e351d76812272c403933ac82af808238981c69887dc37b6c8db01b7a4ae9119b1ababd004f682bd949ac49eca87c53227de518eeba256dbeb5b49dd2a7e4699345fda66ae3134a1a57a715e796d775eebb084b1b45e9ba78b88111b31fd5095864e659a0cf55d4329d76b37e3a593d348c3431ea5907a69a43099122d03dbc64b90b353ef156c4dda24e88db6a410700c9ad7d649312b31f33e8a65076ee0856b855a76db56399640a15e68a57bb4a5130c9145a6bc892343bf9366c91bb27c86ba4311a33f863a45a3d4d75ee764cc62092b4d862cb6b0d226c3f6faa1048c911f1f24725517316b0779f395db9557a1caeb2b0937cb3834a58cd10e05a222da9cba35a9a86e30aeb5dc65442d0b1a6b30318c210ad2a994a7d86056207db5a87271c83f9306b2c6faf657ab0c7293a2ad1182a396e8eb1afaea2f988d655eb6f042df9759932b2a3038ee18be1088032adbe693bac97946d60c668464860300c63bc6f9d3f1c4a0e84260b9235e5f74868fc5416d48be18ce12fda2db96ed7bad9e3f2c3e7ff1d54712da19214dc6a313d6babfac6109c131f59b0773aff925e02b33eccb21f7d2209a9b981c5b7757064782f20e77ccf32f61df37f774b11a63dd1f3101479e2216d2306ad358f766de988547c2fb1b8bffbcff35b916148f79335d01b69cb3dd45fa3ed54697cf3eced0e4ee931b3b33c35d941ba883d228bf75ca0c77b7e2a331c9181c7e32a867c15df29617a517258ae38ec0a96588e36b55cd69c2558cb4c3591b0ce3ca12eee001d75e3704a17f44f1b859fc0efe84e8639787c5d29f5138e3a623e93ea01527a579ccc1870fda9864fa4fb86715d186a86e58ca2145dcc588da1a687e3860e0c8f0572db4f5da72431386e0d7b1e8da8cfaab08316c4ba0123eb0a35f02c41a065f181327d0dc6450e0da25d40a0ab266316d78a1151716e8b3859257e7d231affb4c80021992ca5d4f1d943fe091fb77122d95669a4bb17304f2ec98ed8ef31caabe9a641c9b09f8c1ad72918bae3e51b0005514b8d97eff7e4809e3c465f098498eb47457779847b1c87145665cd9a567519063a4e98fcebc9649af32497151c736f297f8277877cb7b24744e983b7f104c75ff61628ec528662166905d9a24bb1d3d603f90fa41f1c280d460cad3012688946ea818cc765c0da12aeb6474b0a4f68277ba918343a1cfc9b5a8b83491ac78a98673aab54c333e1461835e8940834f7905572cbd9b654366b8f215b90853b278bae856012763d44805f8500ce69993ef869361b204b5059b51717e4c7a8ddf49a41727183bc4a6f710617f4ceea5d8e9d611b4eb0ff5e4821396589c831878c2b8d578182d35f7aa218b59d390fdca0215d9c626f96a5d9eabb7ddeab558b77412a911500639c3937611bf59c113ba8c97c4173951142dd23b2d2a0a5816fbd5e7729be630878a43f4ad905efedd21aef7e28cb515c29dd0b1dd0e8a733ea2265c5b0df78f510314a7959d81d96813783a3264c93eccb496cc7ade72e5c7ecb4e4e0c24c835903ee77eecc65f7fc7f65d4699e40f82654bc65291c44309aa8d95d8adee182871c7abc8953a6e35afa5bae08b8f9cc005cdf8906df3f29dadf92a2234ec91615a081ac19952fe2d142f01a0b44347511908649e42c3cd5483aae91659442474c7177db61c69299b10f1e6447da032e7b3520046df19b1274fbf36b1c55df0712a844f036779755123210ebd1997c9d95f5a11fc379aa080a0ec172a60aa90808f20bc3d0bfef405e00faa5216a49827e784a3088f397df18051e0ce30785c337a261f7327e48648f4f389af37599040de882355d5763d48d8d9d036d7ad7fecfa288065ce0ba0a4b92ab925f825e3c8eb86322642ffb60b81bb0403063f025a0e379f9623378099a50fdfcd248c7947a55d0bfb99d0e9ed04abca78e0ca104b3e6235984ed501fa3a9c3e94fe8c0f3df61db4fac7f4cf06b89f68fbc4f044540dc40c40a77cbee48bc0468c8d0dc23cbd2cc89338d30d73b0b4f90e8aec816b603da4ba9347aeacd60ed79ec853514580c9103b6b2a4c3466524b612a0589aedaa945a5241faa5e0cc36b3c60188b44d08a183aef4686833d4c5aa40ba71b40ea821517ef5d3c08400ebfd7cdc7b6ba9c396e0ce3b3d92f16cce27132474733a5bdfae9c48f39c14d0446f2880f5a79d6e7b80862b7c9f95c553b7955b508cce5bbbca305437aa41413423a8df45088e2311440985771bcf0098f0432c53f48098a53f8732ce177c240c4966be46681cf7a582c942d37ec4056c6c76e668bf1ac8fb2561601f7316b3a176bc083f9f3f1d9ca89ad87de02af0c9cfad2c44cc1c46de31e17abdb549360098bac264d77a2d8793e0b476bcb504dadc43331b9f405eddeea110cadf542f26ec3ded2bb2b99026077a8fd8745b1ac965bb5bec333e4a9215bbac72267303bbdb1b978e50b60d31d04105764225f880aaee4f3c0df4eabf99bf3b106a610fedb5af4c9b0cf86d4c056be6bedd199a610f10bb40708c5fd1ff2c2ce05da8a72192b7b6beb79a2b6aff3ede6b3c59a3df474dea0f1dc7cf08610a921176c3b0e27aa0251b50fd33a958467a3f1d61f91b242e2bd1a27c1c3956920063a5a7a57b126268460080042e69c1da60d36a1aace23d9e4c89e4b563899e7c4c211010670b2ab35c51a526149c8120d0ad687aa922c5887df298f2b48c6493414cd57cd66b9803f825c662f04e5d94e47d33fcfabb48b593a1b83760d833272b1c1435e98da70175837893d710ec0280e5111c0f60152e95e8f92530acd8df0a4fed15703f754b77a62c97c0e9be7400bda3e99220418a28ef3718010306633b315531b41941c3edfc01a0083164226267aff7d334db57dea3f34e3624c9be272c9371320f253f0d2c763aa98a8e8360d09e6874330643152cb79fdfadcba709c078e0b0184bd884bfff9ceb1dca0430b793b521e2f1f97287aaf8bc3b2ddec0ced00f2e7398b5652bbc27932e3faa186cbd7a7d82410c8a1ea55661f02c4ac29aeb68bc3c48eda1298cbc027a7e1948bc5900b75c35045f83d554dc207729c0a98ac355ffdbea66fa1298844b31e475b3563f18d17bbd45fee9f04e934dddeffb8136c3f006928f7026d82a799d8070e0b3c93114e7a52238228efcb3cd394b1968908e039d5f5d6f64699065d1841abea96ad7b768c15fbce7b101970f403139f0b71e29909f4ec03a33e7b77113cf55d003ed33147b5bb40a07cd2698ec07327215facd5758544d1623f56029ed41b3cfa85eaf18d1bdca9b867de49ff3229d58a9a3032cd47e2a811e9fb1b9c098576e8e7930e6324236ff348cd53cc9583082f37715b472f722c66681194ce38ff9a546477d779a329e60ccf801a4cb29443a808446d1e2155e84593ff0cb34f0fc54bafe66dae627015e60a887bf1346ae4c9b674724ff12631a220bafbbff0e84595ebb1b36487658ca2c811d87935f38a555daf1f55b9b35a99bd86b2fdc5b1a55a2d55f2acd49212cd62f7f69a25c89153cf6a96895d33625c56b273bc836b67dd8b42182493acb3b12a21546d3199eea5a302b31f3cd740fd752e4af7e51c28c312d751f81e48f7ef540c3874ec63c6ba2fad44f5b80900a593ef1c293cefe25480254b38913e7585596ef050df56309e6def004bc0f01786d9bdd2c636bba046acc0e0e18782497bdb427c5e9fab5031d52d4995842faf89e1c7e118d9d443019b70efd0ac35f7e41ddc18cd9c5af4f8f5246e5d5094570c3d3c1946828ce8b9d97c4dc6d9da683d0c9ea056579aee0e9b095de5bd155266af83a9aea62da601482e744f010f604f4facc2851459b57e43d20bf5d6725bf96a0124903cbc6ce877b4cca0f2a90b502dd676f20f5f6eedf6c4ae72d95456ab09965bb9f04cab52f34088fe7adebca3365810d39186f5fa6e1660453ec439affc24b58fe9587c919c5426a5d281311335dbba4b17746ca9155731f17a42ace5a2db1ef69adb53d4a11749dad2f935bbb20d99e08f654891c2f699126983dfddee4deffa21b8384807000745893a1be45b4b39ca35f1168c497208dbf2d50d1e9caaabf4b7f24548070a86044dfc94656be9102ead399d3c908e6b810bc90e797d00f652d5ea4b989440910eb0de7729917ad3f95190dfd1ce6238817c5c27dba103a4ee2ff8cad596500a167fdf4b1b1f3829e28ca97b60cb3905edab72d65f8ca4530c81fbb73064c97f0dd0704e2623c733209046c43bb8f6ef2ba1c98b6f8b1ac9b41e35473a17cdd6b35739d8d0f2dce2b479d5932f8cf75919cfa9d21e5428ffd5cef77878c23c5617d6cf41efd9a09febb96b8d9342681770fd6fda68cf32beb50dacc434f4844e3372b9a9e3c89a0db35547951eab4a886b125fa97ffc302c90a00b634dff9d5e36805baf090b8d0817a32291207c4aa01b25f3bdbc1e119f60ef8740b3db7035de16ee5b4b53e946015747e47b98243977279ae53804e84185419488287a9e275e648883bc9485d6b08ab9ebe6cc4543325a845b432f8f89c743dbec3d62298179ce2d69bdbd494229307032ca9293ea5fff73be9029c5e0a0c27344482c82b33b8bf24701727aa8dea2c1b7af5a9bf56702f96ac35ed58750e9e6698ac75a19e9d459ec28e395dc269893b654b545b42107ce3b822dc0eff91f9ca13ac948e14ec3212f5c104b3e1c1ffdf5595f047da1471d9f4934d169e6f2c6b87b4dadfdc465151cc7bb8458eb5e86f9e9366fc0a7857287dfb99d15a1d4b9a06cbe013256797e9cd96b62fdfee0f837d6487b258de09d102da1bd2f29153304b276633ee2dff1f6808b422946c3c90ae24dad5b352e04a88e42b6f516b7a0eb0cf24cce84385b68319f7a7a45568c83f1126514fa12641cee0a6f811c6889699680da1ca11c11a11b7e658bbc5e6d48cfb0c807398abc27634fb3dd81b09f709c798cc1c34b0b712ee7437e49368761aae2c8c20704ccd8206d9e96b0ec813acc05f40b01fa275eb210e6a4154605dfb209251cea397c98180224a0deff93e7efc8877998c71c4f0af22d443ed710689551cce249824164825c3da1e7050266be23e6239586643af9684ca2ae6b67ad417899287878442d2dbb7cd57731030e4d67d7e2289dbbfd4353f91a07d4587c39ec18221487dec76244556c1deb516413cff0d0b8cc387e8faa63fed4d7966e69f86b1a93c434e60efe3e93d54e04b4eb14d1c56f15a8ef3e382b2ed1d1ba6658172f8e5ce620759802c15ab96257850300bae07291ef344604bb04c859ff29d3c582c546e86da8c0d4b8b5c1951caede42d13dc64bfc8b7642352eaee307f2c8427b22488b1356c39f21a656622288481f84a09e9ecbbc83bf27d5896ce001e3b0348f16148cb238b27bc0e86953455020648287a21a694a818a45fd5f709dd41146ccd55980ec90e731241e35c4b854214d4b27901ba752a83ec199d592cc9ec9383a4311ec0f4e8b1c9274de2ee3a3609f446be7c24c6d3570c0594ae3b19c20a96b5e04200e7895fc18ef9714e44cef9e44cc52bc6cf6f1a05a0d67d98ea1dc057aac1097b44fe26557dd708a7b348aae448be7feea6c387759483524017ba0958acf3034878fd49f9c00836e9ac8ae14af60a0ee67e56c192e4579440edf121948c5aa8bb01d4ac0e4643749fd22418f4c7f743e344e6d83c4fd7ff5ab9f2a88e7541c4816ddae967466926fecd3dbc2d7a8721db0db7fb5986f676dd22b6be91ac5db432e20c761e369b5bb93f4c64f84c7001690206ad4c6f136dda3b199c98364f348f3bbd1008f3601228e6b6a413d45158d73e42978d3b1b6a740d96318a160a88f11d16c063f338a08ceb1b0855a08e20900e3eac2628d32ce4e27ffca56d4c8210be16a36c4b654d598620bafd62be2896720ea2da996393581425eac7f25d09f124bc31b0db36ba1189846d1b377ec5792e189f2efafec688ed6fa0eafbea203261748f624d807e08bd043b7f9e855518aa69eabe404c36dd724a0de142960410a89b68c0b0c297fc5b56381f45dfcf0b4a98284558d30a8a23195159cd0eb591476e1ac972cae787537e038f048a86050bd0c817d14c8e37af6adfb39f93eaf320564d55708619b555052333f273c5db4f1e3fe0d7ba5c54235f103a53bbb62961a9e26b7b94b032ef11c6937d11b07592de0d5b5453888428619b0d1d79671a7e00d277df51d72052d477a28f03e1c0b3ddd9bbe595362c0aaa5da2e6114dfc61db06622bc990ccd75a945ac6fcaa28ddc5159103cec84ca21b6d5cd755885ad3ab25160a90c28e183ac251c2f1851b933613028e15cb8305c0575e9fc7ee9bdb60573b1bf12bf5b71297f1ab889336dc359d78bc2b29508b9ac98b729438a33c63f85584957fa01b2aa25679909610f0d79a65223135ac0ff3830b32447f3d99a54aa83e2cf88ec49046b002d3f77e6d6d0392f822aeaa2517ff1004a3f4eb252e399650906852c2fb6da16bb2dec31f69de47011c8e8cbf98a8d7935cfa7aa1b598ae6c5a770053cc78019bb1283e483858035e5e7c3aeef233ab4c80bc7186785e5ee67515d883693ba3c5315e6805d75e6da150748f1c1b0e8adb6512832e358f131494b28136db1155aa9b9ada90291465829c9e87e0e19e5bd064bba3cc4ef8c8f23c2be8fedb235f3e3390f08379853a19fe0f701364afc89e3153dda4926f78d40645a38ee4a4ff21131133358f8d3400fab3ed1452819a3dc8590e30e5917fab2d150114d5060856968d11555bdb7aa255174df81647c40492724359f67e5747527efec5df039d812338cdea26d2dd9dc781343a884713acc4469401c560934c3a32fd35b3a83a76d1cea9a2a5c73f857b13521e8eea572e6253fc4618309e90b59a623b1ccf2a678b6017917acdca1dbf519d3244b346575d3b7a8d0fd49f8560b872163f4929eb6be61e6e2250b874db26a79dee211979747da99b93c78ea526890aaa1137c815705b5954e5ad7c70735dcd46b8eae3b1881a0d136093ec8aba2caf7640b0daf5a11dc2172da50bbad64e5a049ca0b44a62b783d32a6104e5f4e8107003a815c58fe076f99a2c84a113d67a1e64a45ef16db4b516135ebc5707dcd0846b999e247d889f25b12cb60235eace9f4ef7fd50e2ad4821f1b6943539a48750f77bad9b771727303bb0b7f19145f9c4ce66f62a2a367bece286cf5cfbe60b5b9ca45dcb2c345e0eaab768de9f4b842c0e9b7db47fc2fad3c68db9d2309fbf62796cafee775f391198a0a0b3b9d1be50bccca775e05b3059b420762c01e9dc558a8a3e2c2c3075a5da1333b374d07915d91d75d72277301e3564fd0eed2773c30adb845011137759ca5d3f28d34953b0526e582143a31825ade33e7b3ba9f7a8990c7c562f3019999fa3c36209caf0f0ac5b3b20235bf787ad9eebc1351b585b41f0a7b715076bc3af219bcf41b800d6cc3737b344f4bb157de637d88e4855a3ac0126d8bb55b369a561a68af9cf6ffc22937bff5750db97a371c68fb3eddab0348c75735a636922215bab597d2772dae0da4ea65db6d3e7defd7104f9b716dc09f6fb5486d1c71eaf1345290e18dc8bd547ab9d0a39840eed599ba2d2933864364eba85d5b5f3a12a92ae33ff556ff581e63124903120a91d5813dd779f2cf11e06355a8a8bfcb47fbf9d3d3c11f50f5731ac4fcb3f2f9f92762a9510ee01484bea2319b0eb83b0562544961a76f5b6a5947652d4dbaa5583c3792a4ee803c976e9d2c1757424ffd40460c4c86124adccd43783d25051cb3d1bea0e2591c3db4c72123f5638a70939a52d6920f044da9b747189d5874c00923e637b32743e65db6b86bd0efefa67d191cb41062e9871378cf71b4b18c30a1a6ad10ce822b00452d80986bbea83e755977e45bb5e1548328454c29ece273bef88a3739cd9bd3d85d07b1e217c2e32daf1836f474bf6218d424e49d447a13c1217e2255337e8157a598baeee0329b823ea9d29bde78873cbf0be0253686d80ca4a5978354cbe32b1ef915f817a624d4d374a38babe84af0ef552b2e406b50bae97012b0de089b9134c23ca400b0e0c5cf6c70e83ca08c5602c056219dc4cfdec15f5e40ee2403debda22ff1dec255ece8b6945e32da148e1aa68dbe06e7651a0fcc4299d31418e274a57f0531345b9151c278982d30a8e5678c7a7ae82bcf82badaf6041ccf8e2df2bcddeb77fa114d5bcd041f944b06ca82c91bb3d91e808859aa127f4aa6a6c92481a74414e04fb881600a5fe22dcd222d4120d9a4bab264514f060761052ef8f2b723ccb82d102e73b344fdc8f37314a075477eac49c3d381cf6015b0d02eb37f16a290566c68f8b2930ce773868e1606e8a190469e6d1ee2ac095b960050be207d72e8a2a26dfcfb7b5df77011f7fc1d257f304755c60b62628aa619460f134e081b3d20e6a24e06b3be4ce7fcef31164b4dd78df04607e1f82d9819a1f40b6e0378f0e0539fb41115d00e3f3628b8d471737e0c6a1eb398643950df100fd186a80f50d00d694c068882e7e4570fed53972ab75b7fc25b2254af494e30088711d212ab1d123e995963911ef1464a5d10da4d1784824e353f0da86d99362aff8517ef4455634b8bd21f29cc9f7acd06054609e667c31df6a91747fa84718fcc528aa6e7ce427be15b906f8ff586de0e9c14170f36f974c27bb82382f366bb1f67e6eeeae473987f416779d5d11ad18c00ba0d6792863230adab59aa31464c9ad0148ae083a8079bd4511945cb1cbb8a7290ab5cf2b729911e4c77cead6f98f82ede9f876fc0c64b7922072a3fa67fc44cd4e82f0c03a99c36644bfc167d6cf1a776363e555b173d46310b257281db683d73d31815f5fc70dc0eb76338909004c7ac51abce1aec1fbc229b4b010ff35102b9afc307105ea56ace8ef6f25ecfa7c05c4e9b49729d123d0539f35aa8bfd2cb55c7ff936a6132327a092623a19355e296667d1f731e583860fee4471b873fe7984a6e4a7303b515482df1fbfc0bbd64c7fb4dc8e31358e5e69fc79074c2212073b21834a8342436d3604f4b1e99c0c9aa4e62dc3c203105e94b4b5deef06057047e3d0fc6788a23b7b034ac14fb8a89b36c2cf5f64e07772df3717a748c836378ff856e430314ec49f8d4411bd0c21445518873dca6b971968f21713260b7257e9b22434e2466bb51026daee753656c5e15330ff02154d240122c16cde00eceb6f81fc40c426385ab6cc522ab0f49cc6f4d10a59d01f49c55db168c0bca7f9311b7bdf881ad0552a6e3f333e69ace51aef89364f23a2850982c1bddd2c44d711a897767a675d985cd1f1aba7557062f70d1c8afa69131ccacd843d406b3a21809c886ceaf18a9d338c4af905af8f673613a2a62c0615a565bf49152b98c647c649453c73ac85ca32e489132c29801ab3ecc4280e2c924c10e36378e0e13ea372a954c86507d21e423e7652a528d71a6a0abc833c3f02e98ae950044705c765147cbef562bba2d9c66a9abff0337bd4e4231340e6298d407b17da1cf92753dad4bd8b9e8d68671ced529934480be1c252467bc720fb9de12f1e16e093104b1e5f080b6d178dd0e6c57c657175a7afad5e49a20d44c59d28505e77942f67e74e0b73af4bfcae508ad0ead7ac0d499d897a8c1080fe40a7970cde4230fa89730883dc5d16420b1fe2d6e6f42348e6e5d568d3ff74ec2e3cd98020fba10a2676ef399fbce121ce71d4b3225f7209bbc9adbbbccb3ddf6ffb31c729074817d0d65bf3294d6cb69dde2324bc9b971369a2a9e88dbf61b38a57391240d35ba2030e27ad6c5b65f0281380a70bffd50a78493312d517b868a2db2ce5c60b00e740a624d0d87381ba25c67654e1f92e008b169377c2b5f0a00ca5705cbe6907e74a9a46b3843ec3acdf1c9224e7b6cc4fbefe1ffffd2919fc6a00c8383649fa0ee8c43ea0a4320957d3e2e8010edd9949326477ebda1f7ccd9dddeaaec6236d7667300bdea321f5a2ff51d33e414deb3e0d2b11f5ab27891ad2bb442b56bfc98f6c3404e5b6987e88acdc413757074ef4eac0cbeb619efa7da730ad9edddc8f07fed3bb2438e33046240020669f2efee05ffe94f2b78714ae880307d8512a4866d8f60530d565944c0de5fb91c7d384bdddb41eb2f2663ab666e6826a66410c73c1d4ea559f134204e0b5d320b8ebea9d817ed22cc6f8dd044d376039824467c2cb684983ef6b3673ddb2e8d16487c0d488bf7241fb36fa8b1159d575fd6de68eb608a60b1aa795d5cd4f2a339494b649f5ac35f503ccdfceeceb88bb7ca0f790a2f66d91052ef01150398700747d3fa04b8e4e5dd55d60a2a1a2fe099c3a99642afaad6317d5bb41a14bc59d459a8480d865395a5c10bed4d87563405c70b87987e3b557243cdf3903c306ec3974a39119298687b2e21ea1818fd84af4405c5f2be6388dadbb4fa9e4cd30aebbbe81dbdba6d83720b8e6c9ff9a92ae255b18c90e4dd77cd18753dc3633ca862439325e7b6f32c12d0bff3e3940ef972beaaacdbadca5d12550bb812036e3e5f6e3994def36a7873d7a2d4ec1dd9d8a38c68cb376c19b77d0f26946357b33c3c2e92d753253205d396d39b2ff5454e4c9e0f51164d1fa32e39cf6385c9a54de9378757f3216d397fbbd508c5f9d11135ac628050dabb155c10f30f575656cb0d8cb3322b89e18fc271e40002d34d1a6c2da61e887fe5f1b8833180fa152d5cce920102ebfedb59314b760da771db161d262d66b870383798af90f22de34d137285e8f83dd00c4c45b149c9007fa05529cb124a371edf60407005e7dea98ca1795505031bf0176311f6dbb6cc2c8219c398ea171d4c1c4245a64a989f829ef2449fb5b8089e6d1e727e66c23ddfb6ce217541c505ad92e8c49f2cd81a79c8ae550cfbd1edf2a06ffcc8e5a1522b758e79f20be1cdd589cbeb381c760f7b60c1d7f3688d73cc02ecfd21e49690366db0785897adfb3bbe574f45e77594883876a7ad37f0d34ebbf092b58237805af3048683b6b101d785d4741f9006dbc448b146c438f765a472baa5633061247b1758e0b663f1945b79c83f0ed39b5273f4097eed042ae93eeb6dfb0f37c6ca92cc4b59289f0fe58fcc28966d66b22ea082572a3a492980218d0d71595ff4d7519eb76e1d6428a565ea06e5ff4049485fd1ad5e9ade58045db954fbf7884145111c7d7adc42ff479dbf9b8765417692191d55a034d08a1e6a6c196daf7ede2ddbfe91a49d6d453c902331308706c53a7bbf458902770aaedf85d5bb14f2845324c305d85805aa18c8259dc1176110207ffdff016762b601661c632b79e18c56855b18f80566c230344ef09ebe4246acbb4a00bc4a6f12ee49725b862fd675420e023c93f2c0a68f370b5327c51031db926187d072f40a204b8736554b7c0fea6315458ca92dcb2d07d40b114b37f28e3c78a682fea332fa7131136f3a53e3b2e2701127e1695a0ac0a62ba4b6decf425de0cec097dacd19df35161334fbb97077aea56d9b586530f650d5d09dee7874fe6305cc32e36663402cba6f7815c015a01787a2d5c63a99e8cc380669ec7b651921b6064bbe37d040051e1118928aa1875b1b0dbc9c79d817363053a7873fbdc9db54128c29ee4745d11e402ec0761715b87ca2ce3eff076f783b2103375d62ddd2b1cf2b927acd3ad88cedc7ca258d5619761079706843a13f5a102ef76f33a744f850a7e69e285f96ed93adf3a61240a57b9d8104893fa28a175366ffe4e8dcd8877de2c28e050f4c3c37efb114f26c0434754a06791e66ad6ab833d8fdbd03d74b3d88741582eae510f1c8204a8c8357f3514ba661d4f1f56898a4b956a6480ae6a5128a22c04136a396d2afbffd8a6d8eb8d2b37ee2ddf7a4e912dc592ed7a2ba33b0a7dbd51679664626f44a4c520e7cfa2298b8a70ae3ab39d0250c1c30cc0d2f9484805b6293822ce95e897225c72751c75fd4304956781e5ca0a203d5dd3a87ae52edc7c1009f346365cce6de71dda78f5817c6a304dd8dd9f5b4ffca910fa5c7cf312f4817497822b0aedd914e0faea0faffbdc9255747ef03c6b7bdb7b63f1734ba7c1fa423fdae91f6096a69b6dc226eb99b6c6cd16254b028581388d0c1515d585dc4bb764f1d523e496b0c188d42de90b1ae04eec49f7f23670a21257b734ebc5a32fe3442edf1868541288bff763a561e45ca4c5a3bd21cd630e579fe3d08c90ed04e10d6349652ee8178232a524c149110f0f5641ab40623e3f374883f10e95f733565077eadf7c83e576c4d13337048d51a5c9c84a2a8de0ac1b1c41ead4c7ff99f12ae7b5798e5941b9fe16d3a3f1c5e34203bd1caf832e3a249de6f3bbb1c9611ceb38a892a397fd6c46753ef935d0382d264d943e4ac2538a13b3ec494733f98171533315a2936774aa229c5bac82209d3034ae5eb938b1d3f50c8325668d6df67f17403b029001b350435b65d175d338627f690f29d3459f97a1c563b309e9d9f2430bf2a077a8f67e762ca60a067cc9227b878da7c622476d0c692c5cf2baed0bc378ea405dad01a770c4fdca6bc555a9017b9bd4eb69cb7c3297e5b9519c9c4149ff3590b78097ca66f6f3a67c3d6d111f4c43b5e7fcf960a13f6cfcdfb19f01f17be7d7340df96e690daeffc91c3ec03d414b87240f2ab3f5d37e401587d449dc2b71adc094948f8dc671f662daa6af501870ddf609436653a8e6e85226d075cbd997012f060777c7c114f42a2a4d4d8469022185e3e41ab2dca0bf4f8e04d2a08c4b15ac1d84b954fb2a7bc86d68562065e1bba75f2ab8e83a2ee41a60d6be5b4cd958e2f9bf63897996b9b43a98523d9b70dcc69aeede0e9619efba9ac6905a9d54f87b65cfbcb8436869f61146260de5a6cbaa4125782de8848f41eb8ffa2eb0d218cff7c7608cdc9fc7bbaed1e252263f461c7b72a579c15113bc437bc49e604f5f610e25515d8fe81329f6bcceb315468d3ca8c66db471748f40542f05f2012d08846d5cb63a28bdd6cf4ddfe1093c4b8986623aced7348cdb3986b9f29ce60776b6d79f8de76a031ff3280a6b7ad1cdcd8d4322dd0199651e68b1b06fc371a46954a6205560569c0b5fe806fe243771198c6b0e5be0cd85fd0a4af29348ab23c16ca5673e570b5fd65cff91446db12974d70580bb180053a42d961e6d848082233e4f95eabe100a5e172b95c3bf1f9c54d3ef3a98b14c688df82377b927554ce6fca04895981b06a9054770e323fcb38f9978b3ac7a20a974b871c883f5aec536dd5d80047e54ab69bc162cc3b86656924c9f59307c411e59cf555beec575a012fba0d94dc669ec1252a9d60b01d15977e9bb3675c26cbca2fd5a60243a9d6a16648a5b6ef1b49ee35ee110b1e4463b496439caa356e5ceb44ce878c8366d6df97d8f179115317050c3a3021e4397292feb2b496e21343e1d3913b70fbb6d797bd727085879828a8d4530b2f0e04a061eb342a1d63cb1d94335b7fe1348229416988e82826db19f22e5a4d644446dd4cb34b522bf8293f4548d0955f7161500ffae461c181bc8784785dd367c7e890783a286ecb454489616049496fbc89d6a3e4a51235bd631a35eedb83fa5a8ed651d4801237596a349fc15517340f44e45630274c38477224e6fed242a8646a2fb5fe79f7392a5614585e7f864355bbc059472914e8ac2d1e06db10b22f36e425274a0938f4d69439c377e4696a4ad77a38778d83bac53b9d14a0d484d9546183a8a52340a0857282c61a4f403332e0f2a044b3a24cfa2be9be232664857f9646063ddec3bba4bfa73b638e7901ade35b27e563daaff24e028fed2ebd547dce914ddc6a75641445e37f20a83428b9705e98055041952aa13875f9f9d0a9b01fab3cdfc7267469591ea0369fb4c739121ae5b405c9476f27575869d0b127fdc2dd9f65b307f7df1174816f411049a025b9557301e19a7039d69d932a2a927ab26b7437ec29ecf603b25741b39d0c4a743b085a11701bd4ed4dcf4cb32fc71dc7daf91304b4e3d1eb9457400a70eb9cf1ad0ba32ddd9eabde4b98c1860ff437edb7bef2df79632a59402470940094d096077f7be942df7eb21db93fc916166103b1e0db2142850e5e7aeb02d4cb8b52a7f3f0ede51710fbcca2fbc40ed15a10758b5bfd06b34a12117693048498806596acc9f710fa6b3f38ecc846850870e1d0df2c7705b69ab9a79e15209b7256caccabfa2460f3b8ed2e131fc3628624fbcd3208ecc7114b77d2875aeef96b1bf1fe257ba51fb2bf50ba9ed956c7ca190ba5fe3b76f3fabca3f84f6f7e5d3b3adbca0cacf36d8802a3fbf0e476d2cdee9d3c69b50e5f76ffb41421b06a6b29b80be54adc503ca5b4b2b41f4c199610c0974874c0cc7b46cc254cd0b49757d7c3e2a3fa1e7214d3d4f448131f53cc1051c1e495092fb704ec8393c4854391f7db01f5ed5d89f14501c3aac5383c957b221ff921fdf7c417a601deea8a4a74fddf7f3923e611c03f5690ad1e0f7771ef778dc24caec9b1fdf34d84a1a5ce2d3e0a86e5ec8446af306cd492989f40f82a18cd7e801479fb86a9ac7685cb2e11f6b8ff8c590e12f05aa2fd070839aeca8000f7fec5fc8ecf06f7da8000f1d39d820100c670de76a063162d735eab8f1c2300b4c2fc3b64222cd34f842600e44b9320dad3140b0b1f7678fbf1d1a9c69b0ff86cee946f6b751c7f8d7eca3591b681928bf8733c6c79e3b6c4e2189292851af77ccfb2f7e2a6c1b83ca2128cfc9c363fc657c6829be90ba83460c1e42a4ba3e345126c68cfce40b600a4950a1f237a90a600a494c2196f885800df610349c9546880ea921a794d054cf9e75e70cf3b13e75f617a92386615f383daa04cad5356cc6488b51bba17dfc8e1aa9665e0fff18721d613f3fcecd83e9988edd15526e41ee6e5c373e10c68a710dc62d4c8fcb9a404bf385d4a973b33537bd928df9dd775fd8fd0422be7c0cc48f9db7b133f3fcee37ef6cdcbfeb3eede7f4686ced3e7633ba76dff4cb0b696cedf143fc30105f7a67e33cff7acef3f123ca17aa5cb90993a0ba752b7f251b51763692eb93afaf8b689af3b0dffad45d370f856c9ad795eb5318021174aac4bf35fbcddb5ee3ad33bcfa5c18fc99972d0cfee9611ec7d810dbc2842b545dc74904adc067876a1070876a903e85a010a0ece1bfe6476ffe0a0e0a74a5b53262a471e9f9e0e8cd2f74f9b5aac16e2422918adb53fc261ad04a7b722d4afb4ef3286965857636234a0aa54aaac29596aba4124a47d248e59735d8d3cb9d95113f42a1f2c7d5caf0f71adc982410a46a63fafb650f16b52c5ce609a971912e9d8d54d2604b95ecd94a3f46fcd468dfca504de609a911a180ae44f1a4ff4a6b65ca509fb6da4f77fa84a451d90a953ead131208d51ed24e48b0861a529dda5c8e939b14d4901aa94d53b53f3a92dacf52a8ed48faa4a4f9dbc546f911139599b5269547ac1534d45e696d8c11954739957788891656e5e629c3a2a8875b5de96cb89b31ea3866766ed3bcd639c118706a36149ce6b514c630c4aa66bb81d3bc02942108ac9a2d05a77df6d927c407746ab46f5e7f655ebc7e6545f1b1ce865ff384d46cdb28fef3f7bb68903fdca138aa41cb132dad853163c709ea29a9625e6939ce8a8a04e4a985c15125ea6c227b74b6b867a5b53224a3478fd33c21355c777dcdc3537b04cd835a69adb4fa84031aff4282c6972badaeb329a18a1061b54215e3a649eb437ec04713527ac65d324e299bc832223cca8b7451c6dc46c8bdb3c1d702584e8e9b654becd58956e8ae29ae889a47b4e3b8853bc545c1b44be003eec2d13e5db2bbe17fbd96c9ce46fca2942b63471b39bb9cc0d43047208421c08422964f9f5ab149af80829eb0a054cf846afb97fd386a4e4a492f4873fa4bff66745df95f892851020ba45c9c0d1c6a0c6ad0d540c36c28fb9922a061f643ca86a0f854ce868af868517090acb6293a4b38d60d0fd0ca688988ac8c966a982f9af4862489f8489cfaf3f3f353453d2eea11f5887a443d50e2942825c628343e0651972529bf195d7d6a48ca38035a1953b21f8c0d341bea5328ea8922d4a730fba97d0a39284091f543da61c70d0f10b788f4349494911f97921395ac8c965919fefb31629d935212e93f5bad6161f44ca3b4540156872c0d4b809ed1570f1683221479d3a7ad2b9cd0d8aa610c923831c851d9f39076a84e4ecd8682b2a1a06c28281b0aca86826aff6622c518ed157e8a25547edce65e8a24b4042456ec8358a9d8d72d203ef601e1eaa51bdcc377fee01ab3212a9a913e6d6c7914b16e50757d5167b0f25c4d96a3b66692be82456a2432c4874ae58f531ae53db1d5279752a47a8fa3ba261dd31fa9d470ae7a6efc67480de7ca575512a9e15c799094ea23d670ae587156ff3a9fb90a02656779944631cb59dca8b21c359ff45c31eb499fb0da506afb37570d3e41e7aa3693983f4575afd8c6f8fb82cbeead70c21cbf6b4d2e4496cc9259a81584047c583024e009cced2e33112f4267b3cb417095aa627f47ce8488911a7223152b83b432c01ac4a3f26f06f8dbe36f55832b4a98bbdb638c1736316e4e307b815d204c83dbadc90b4def85dfd9701c735adcb62d6e9bf7c6dbde406773f746512844e5b0ca5f78811abf1f9d0161e39bbabf31d72fdc060eb57d2606496e518c85b1c58ec60eee1f948b5be4330b839f6914cd9061acec1c4bb039337f38f28ffb071bf3effe00fad8987763dcdde524b6fe6d6506f78c118d180ae13e7046949189cc9b64063d861ff4988e01ee4fd3eff1f3eb6968d51930e331fc331eb3bfc90b1bcd741d7fc338ee184083b9ee18d0beeeee2eb51adf460334b42a3f1a5a8ddf9c81e3a60425981eb33478614c0eeb6670ad593703ece516c5187f5b09b306acc74406acd3e8b6ebbaaee39ea2f87361f02f6f9a48fe8ceb93251b5a0d82abc42fdc40f54f88e4cc89cb87667d666664649814ce68f33faece064da552ceae03cd67033e5d6a996042846b3e1d87a3ea59a77dc8da873e9fbfb0f3dabd4894893aeeccc70aa7fda675dd0ab74d8fabd6893c1fdc0711825415fd8a154e68f7db67afcdd7b6ae0721b57bced3b8d6e96dcb5f9d9d0de698d7ef23e9d20df002a0510b11f1b503d368a5fd3ff40f1da7fa90cf73f9d08b00424f5099e543bff961c1367dd8545e3eec29a50f5b0a8b0f3b4a0bfe45f1ee434a114e57798cff17ced9e20b2765f185b4f4d597cff4a9f05e5ec57fde4d121f4170956afa128b7795a3dcc7635ac5c233fd0aefaa2a5638a1a677f997dfb2cee6c5f4d3f462faa48a97213b959fa7aef06265e1e994bc9abc5d182a5ebe6db0e46dedfae20df1f183d6131020f42254785b57785c597c252f8810a4aae93bf27d1b868954943c15bfc2dbba051d6bf6db6f9987fd57eeb1eee6bee96ddd98619d8df91528e1c051351c501e0d5e7fbd0b687fb8ac6dbd60f3b1ff0386bdd28d7decbb7add784545582ed2a819b2912a43d6217f4e4a49a47f1094c1584983521a6992a376788c7cc948269d24fa24f037082491aa94b5823255fae8d07040b967ba80ca5f1829a9e0851248c121e1509709126ca85a5d263620e2252091fcc811310075991cb1810d706a48bfcad6a001291870adcc1141d504be3062a886a423846a3849e0f55b7374aa267bea28ec310f67d65c3fbd9b21666aaec7993559f6cdbf3c0c08037ca1ee77a4145f88f5a9e9c0f51dc0e2297affc7ff70601fbf066c0df6c5963fd81626fc1ab03215d06572c40f931ad4237c6a20543b47a76ab05fc69935981fc1beeb69fc0a52e3f6f8d1357e40bceebbd4ed6e04a0ee77a403f114bdbd4a95ddad52a5e67a9a3e72fd760f4840cdb511caf6cddcdb3ebafea8524587f8a1ffb8b155aad46dff1f5db7ae1319824cecb82ee3b8661d1e0607ce4b02a415e055aa54fe5e642f1e06872ee6d0795b135738ce8bdd776d36a802e68a02268d5e8901a2ef5e87a8e3e84df7eb315b8da8a35bc3c2c271919d99bb9b998cd6d80ab6854932b9d6e636e6362fc96e5c5659324025e76dcdf47244de1c648901dd73afa3fb74ecaf70020d628756a80aa91152d35152ef86fbf5186d850f0d6287ead6ec16e0e2bcadd9bcad691986a0fac7abbb61808a61524a7fd9c59f7eb94b778fdd9cd825a3fbbb4fceb63049e26f8e98c30776fb3e3e077ac8975b85d439378ddb368ebb1b5ea54a9f22f6d9a67d105ca5625fc8f337ef662b4028e727378efbad6a5977c3a562493266d6a428fb8074a472b5ada3926039620e317a0e4ea552d9c71b1363ffacbe655e921823c718314f074e9220666a0fb00aa9c9fcbff026fb21920431537f788dbf5b802fec6808a91dc310c41b2ef55a80574f02a431779f52343f202d230b64dc22cbbacf36fce317f6fbf7f08f76bd32b62e8c6ec1b630523221a46eb2530057a9fcc5e658870de3a6e4ae30d0c8b5e5ca987f3d76bdc4ae777ee9915d24afeb9d460f8cb06d9fe2c61cf733f6b563f1fa1fb31240f64b2e02e90bc3be20bc5efe35d92280f8fbf92b7f3eb0ff316bf3b745ae5329308c42440982589550c492ea2fa47a4743488d3f3b057475205db1df26e79d8de8cd2e9aefdf2980f9041bf63b34d82fc0064dcf3ce3a44b0222481868483532d0190ce17c2003de05630c0a7b6807cdaaf6f300d42929bdc925414b39be1d1e53c351a51cd7cbbfbedda1c118ee6a26c7cc0e2927563f3b64a004478e28ac9fce210a946f401968f5e3aa19d018b4c4c2e8b8fae91947adab9a0594bfd05971573fd5a741d5fefcd4fe1a3d44564e54559ecea13f3ea18c042ac323b3d360bf0c0f8d0c6462346980d7788ec71c4143107c1155cd861d413a647053fb7d989c29cafaf0b37b356630e7fc687c6537e27a7183fdf574f431c6e7f8eb05b132d41be26b4829a07e4369e7d0effff990f547ac320d3648d31be828eafe853fe24791d09d93043258444aed7f11a3f691eb2fb9bc719bc0cc1459812f764822c3af3b27a5fcf20377bf170d36f88e82a9e98f30754edaa0fc10acce34ae4064c5fa8eaad0588622aa3a135b358accecb04026183af2dcc699ca19ab0eea1cfab7ce045c040d027bd55368185bddaa90c6565cc2c6f443a1f6c7b844eddf56452648bdfa5918ded39d818632317292e01d57a9a8d4fe11efb01125a6e6e9f9699e3e31cfc73bbda455cd1306caad42c2491606fbd72a9e061bc9c2e86f1e57b50d68e82a57398a739876112339b491f88086b34e4e3ab1dd248997fbca777e50a673e8bf86d07e7793131358676210057cb14305c1177ddad10b30c28086d4444767489182fcd47e216ebe66fec284ec9fb3bbb35ff2c22eecc2aecb2ff7ae8f9341444c68383732d07072ced076235b435e4c750efdb2091a766a1b03a591e5a8f8acd3a9c689387d0a3b9552d5febef121a71287e8dce0a42227e4a8c89ffb502a7eb19f8e38d98a49583a82e1489d43bf7bf40634dc9f1a2c49d090b60efd151336ae599820eb1efe10777777bf1f423841c36dd5184408c9a2340638b57f04c40fbe59e9eed29ff9e28b2f66969f104078417e887068c82c5694463d97c4c6359b18e8649d595b0767c8e44c4ca448833fa0fd9daa21eb94f8f7a34033330383a0dabfc3360161986b7086a673e8efa440fbc319251db34b66130a447af2503a66697a10a563b6dbb97004e8063ce10c0c48a61723f90b73243e4d7fe7d01fa7408fe07c4dfc4afe5bc3b536040d49201b41fbfd081820a91d92a0acbc6049ed8fa3da4f6a0873c3297f2cb06a5c88c90c88d41f5d351033161a509634b8751095ba95c61250fab44970c2a201254a9f4a34a044a9456676a801e424e7679de450699c3ead132252fe57e78028a0e18c4c9fae6b07a823045fecd0b02c7af41d8e0ae2317d751cc6f9a6614122494a3833333353e7d7a139c49dcde5d7a3800e35d8171268c8383755fec53a7d92bc33e4a81daca18e8791d8b82af6f18ec74458a748ab419c93911dd0feee1c8d0433ee9c736211c3e60da16543e4b68fd11de334ce99c3b089c5d7aeecaf9f73f2e4aedf6eceb804ce592efbb9b9fb17663f9110dd31c758734c032bb7d13427ddbeeb0b7da8375ad860a5868c48501c72fa552348833f3df0ff40f268aaec8d28fdff27fd6793dba6b99a3b19ff07d25f9d0dc7184dffff8f11b131e86f3fbd90abf349197fe1a4f13b8fc3de3f935c6693691976455a37edfb47d13b1b6d3ef69af6658cd9641767ccd8f54d798258a37f0411e2b34f02152975a9d44d821a5a75d7a329f10b89e102d1200648b547f641bcccfb41838706b1893588693f7060d8fc1fe6363d4c4e89c5c561aa9a17ee144a57744557744579a831b3df2cc6f923d60454a952854b361803a4da23ce08a9dcd9c4f8313c9fdc691b8c311aecd0ff07528d1fdd9311091ad223dbf3cf492929a5edf6557b0f671792ae9f4ce011ce2afa4252bd68bdb88b6e5fb115f2c1f5f9b9663eb88624ceb2797df7f5956e94ae1752af2fe4caa359e447552cea878ef1f7e7c13705a052fdc398eaa157fddd3d2ecbd234e8cf123f2e4706ab49c31f350a817993c9e4bec12ed0af733ef6937bd63c927f17e8d554e40a47911d233a8c735d3c846f96a5a34f1c394a1c4c182805b4a3412ef1cd10ce6990bfc43acc467234c83faadbd97cb82c15108e1c3a96a276c496cd2aa0daff0db2aa96604a334062ed21dd0334d6c7fd7b6cdb18d8b665b7c0c65cef326f3eb3bbbbbbbbcbbcbbeb4ad8dcfd223dc76e6208180f68ffd6ed1de3fa0e361ed015d990be0b83bf11ec604a5d24d465b20355dd301ed0d055335289546e6e867c3ba02107f5c9e74e1068385da5ed38ea7ace7980beb99a4f1aa5a93ca6fb143595a35c89a67225be247eaed27ce20b364a5a2c7edc2d02db9999dc61f9e01078746af6510946f4d40ce3927facf21a025de18472507423aa20258d9239aa3e65532577a411b963441ae9987e24d92777bce743b9e34a1aec6d9036c8bb2b775cfef5a1ab78705017907d943bd208cfcad81bd9c7f762b80d4e6f1bc496d8b01cd00cca12dabbf6ae5d81f2fb6398164443b036866198b66dbe3977cf971f3ffb17da63bf6905a8d86fda566cd3364d03c255fb5ef4e029780083c9255708dabeb7efeda1d06df002afeee645a9a8297440e5ef123404ebf5a0a3e6b7691eb7d63c59601accb47f21b3320a50af0765a7004f5e1fb77167a37ffb4d5698ba7d0b84ebf6bdf07af062a7e0c15e520b4aec54edbf6ad9f69a767536daae54641fb2641f66331e93f18c77bfbeaefd3633b332ba66ef038f03649f6559966559966559f6dbd96c1fd860263f046bf633d9775ff673fb2ddb9e3f1a5fb5edf9f76d58d3b4dfb4ecebb12d276c2417905e80614e74a6822506029ba6651c98da765d97a44075f96bd8b2dddde6ae3260bbbbbbbbbbebbb3b272a3ee831fcb9fbba636df076f728a5740c7b678ecdee2ee375c5c6769743aa7dc0b94c0acd2a4b91522856590abd2a4ba1b2b2141a2b4ba13e3d40fddba5d01f2ea5d0ae3c02ca2fa5504e4aa15b39f6c4bceb86eeeed714ca72f73d8ee8c865264ac99befeeeeeec699188d541a1a7fa075d8dd700395d402196c661a868941db386f0d73153bf429e939904dca728302de6b9205422a132e23664dcb8e18a18897c7ea28c080020c5efd0630dc0086cbebea29c090020c17090c2aae0b2c8cfe511704571e0ba33f08cd508021bba16bd9a1b172fc5c5a4637a4c0fef236128ace06f6f10b3fecfde98f3a1bd8fbbb6024152d5e192e2d2b4adcf49189f999c94ca3ee468fd1c8a5a5648a994b314cec721a59b4da753384f40c130b6e5706f6fbb3550079e52a57c94496f26977830235be543989b1232eadae8858bcbca0e8381544a82427b3a8ecbbef546ab214b813af1a6ccd0be24780708245458c27800754ef8d91ef9d8dd780cc7a651b239fa580b16c8cfc96ff4d40c6d831c6187935ecfa21664df61be3d5846cc26bf47aa8f193034713abe8ed3033c3034d133e1e43a60919ff9ae8cdc103f5fa38c618b70cc51533ed3312e909126f2838913b7f21ebe0080d3056c1e887d1c4ae28671c95fdca544e712ac5442c8a577ca47e4e605794be7a56b9a378c53f0da6dc79d53f29e93fb59ab1d54e0dc1dc4daca050a1f841a66973aec466672c356d53c192b1b6f106dc8e22c80e0dedd00eedd0a8ee0b5914b3f8486da601c90554057532112c6661346049979b24f2879835da15ebe5556007eb071e425e2f2f070e1f7404f5e5f140e3f55063879919cd1b825493e407109b03d6bcad89e4b735b1b359d1c2cd2223b2f3fb96659a077a47de63c640f9c3e795b1cfcb897e64623c15a31f46d9c42ec975feda7b32acd22676c9d889a28c5757c5cc76d418558ee299b158c562152b00356415cb511dd8987e110815d11ae21ded0b4283216ed12e0cadb2101bd10ae72b0345dddfb42dd3443937dc40880e80d005160f157cf044074c2819d500c7cad836714109430c5943116660030b87253c416128620624f0026b8147896c758825a8ddcd82ae387868d4e6b0820f9a1084223fb042ab2666a1c6fff8609fb81a5fa64ff163f4c9255e27a0ae8336825a77567a724a39b729a7ecce66621826fd270fce91a1232dee6c624783ebae1298d82055934da1fdda0a68f6db4520fbac0aed6c68ded65c39a0e19cf2e3baa33167c8c77ee588a6a8cc81cf4cf6fd52c751daf7cb9d6f3fb0412984e6518f91fdbd687076472e2768085609ca29d48384262e238250e5fb9046613e3d2ba38594b01c49901b5979111f27d29a79020947b88cf0e9849004fdf8b45aa14cf59189e1e3a88e4857e4a733b2ea900429612d11f2697539a14cf5918921e325f7191a1e3f78d82168a5ec8f7c8ff25ff878cf27589ba33f1ceeef9f4307efae56479ff6ebdddd6fc33c1d387234d8bbc2a1233a8e1c3a643c870ef7665d4d6c0b43fb293737e7ccbfbc50fbebfa4874a4fd7e987dfff585999cb10be3cab4baf16edbd351a3b60fa663fc3b80a1e08abe82f803e330dc9561870ec686d070593bfc0937a66918b65d97b65dd7966ddb36b52d9bdba66513bbdc3d8e8139eef7c78ca021a93679c2dfdcd8a3939fe3dddde79d73e5ce52669641f247fa34b80a4972d5270f25d0933e79288124509f56eec81d9264f56cbc7dd36378c8e1187f38d8f7f7e8e79bcf2fe6cf27fb7b86e371aac19b063df36ca6fac4b51bfb74d4a0c1d160576075d33c76b44cf5c4373c84c5fa1d6fea53ffd504fa93844dc20cd661a4e482898fc518e36b1fc3185d732d6e8c32c618637f33e0cbd0eef6d1e1438c1c37536286e17aa2294167838e0df1a73e27a52760c1c4d819f0651a5ce168d2a4094bcf5797f9c921e3439fc29f1a2e7599f0e8d49056f781a3e6c472b02460414a4e95bf1941c3595f244e9ffabf7b248e64a208288dc27270b01ebf51613cd80ea6b3898eb0822a3b2398e87216867cf67aa8f0e85c9fc86761c8efb080b1a8588ea3b8281d235f8ace942a25952a6577a3aab21bd2536588f954f9712cd1132a3fd472581606b7547e8981da2f2fba30f833506995bf49aef2298ab64645aa34e2a40d46586d00420d77a89254a513364ca9214c951fb957728eb06282c2dfdd3f550b31babbfb35fee6eea69436edeeee9e91c9d1f3a397a0f2e9c0d1604b0968c8b1f4502058417ee01805512a85fc050fa730f3f6bafa3fe4cf6283ae69dae7af7de16aedf1f5d568d0bf418f6609b4dfbd4feeeffe3178a4d490aec4b0e22bd47dd3cad81a9d1dfbc6b0ac09588d39b1b931fdd826bd1a343c7cddcec68eca57d3f0d0a708f68033610c1ec24824064f500d4991b5b9bb6f8c33bef27335f6a2f6f2e82b9cbc4fcad3c9b67d8a75ebeeeef62682493d88fbc302342459c317c83005680d6c05355461c3e185900842a287b431132464504bb55b092b311e19411215f598ed7eba856dfb04e4aa3df61700dba27e39acdbb20e57aaee839f6d7bd23eccb2acb3de3e9b736ed97396fd66af79a190293b9b8c26aa2a3fdc7254b4fcc2ae0826346f5807ed8709209f44c284eabcf1ba22d4db94f4683facc3b68325c0b6aaf2371cd5d603f9a46e46d7950f6342a3a3ba1ca1da350bea93940ea54f1e451de0e57745ba9dce489f40ce7140f09f44a2d47970706674dd36d5a664ebc171d40654e586b335a91267eb8a31a19c26a409695234eee11eedbb9c4680cf18ce79721cb5519a33e7cbdf563c5fb05fe4610b7613a07f53396adb987eb911c1a5f6a6a2f1b5cb5942e7f7e7f4a93bc0cb4fa18486470ef0d967cf9f8fd811e9d3763a550e8093579713dbbb9c01446f1e8014715fc946acdcc7ca7d9bd732bca6d231da47f9001e2fe918f998c74ddae31f066a50765d8ea3b8c763e44f12fbe729e46f4a1ae53c1ea3e2ba510d375595ef3cdd0df7f854797d5d4e95cf895a319a71a4b06d67f3f25bd69a2d1ed2b766a96572e18580ba70e12531fd7efbad08a777366c7a9a668f6bb6ed967171dbb891c8568b884ef3ccd93c8da479e6cfe66924f2894501e1260f0847b54a3e26659445a0db60bc49fd35278a37c6b4a60f2515d387a3367d780d91d7f7f2897fd93b7dea9f320d5404e155443572e954d3875791abb3f9de04b2173ff36870690667fc5ec8d5343f98064d4fd31bb68c999e337943b225a7f850ed2fc9327d2b7bd945df7f8d836a229168665acbc4e2e571b00ed7cb6f8003f684b918c18ce668f4d835615c98b4392925b59ac7a7f409abadf9262f34c51b2ee2c4544c5d3857cea523a95c432e2257eabaa9d1a7f0fa1a5d0bec8a29eceb1a5c592b94c573e1d1d69cb1d5ea717d5f83226950beaacae6e1c178688b57f12b422eeaecf469c5cb8f3c71489fba2255462355e654498425b698f3695a73ceaf060fd727a34896118cc7512e5e7e6bcad0fff5309e6f2b2dd6a7060f8da4791cd53a1ca70c55f92dbe8ff5fb421054ec3dcf851a94d231293edcd6929ee9b592d67154f37ceb609f4f699e29b54b73f996979964f1a5d2fc648bc587b2155bbc6c11d1e9138b222412e977491f3d5383f223bde0f018f993d2160b15bf220ddd942191a8d5a76eca90887b93c9dbaa82e4f9e0e6e150c8960f2cf37c44975695dfa2e1902b34d15b6ff626c1d54b8354aedf22cbaf7cf4bf7ef36dfba687728fd3cefd9be14f9f7e117bc7963013d7939ae027380df5fac5e2af78ebc5066564b00df3628340b83c37fa4d7b14fe237f176f318f976c0b0b0fe95b3696183aeeb383692c329aa6844cc5de9dc7b66d9ce34f7fc3304dc6283f40f149841265e5a7898f48c49472cef5d7f3a0cf7ff9dc36aec5e3250d5e2fe328f6f198eb9f44a2574f1168d8388da44f427ebdcb5fdf44ba489f8cf409fb15ed99d527fa2d7fe5d4eb3d6c9d7a5d5f6cf07a170f636d5f38bb4f67e563f94252dd16c4588edac5fec22e0c7bea4e9f7e0b46b11516f71d2d5fc84fbf170d62df833f1e0d7e1568f0fa0e7b1117a54ff3af4b847dc82c66ad8c9b3e61ddef76effef9d0e0f534bdd2ddbc44dcc3e21e284b5ae1ae9ae4fcf4296422ccbafeb43262d6d6eb81f0bfdc775c11c7b56a55d72fdb6fbb3147e93657fb707f6aac8caedbff10a44ffedbdbd87efb5d28804bd46ddba8d46d6edbb287c4a7ae94ba4c94785237eee6948afde64da28fcc159bafbde6c73abf300415fb626b7b9ae626cb8889123e359ca9db87fb33d3a790eed0a7a7f91aff2447c58de1e7e636bfd0b435f753b76faed1e0f694f473afef6b60bffdf60bb35d4bb6ed6c5870cb85b1a39ef4f15ac1da53cb875dfaf0aa2baadb52f78615bcf9f290a300f04ffa75140e3ffa75970780c71bc3c21c5ea92a6567336a29bdbcf45e0e5da9eb66e3df520c81863c84613cc4541a9491a3c743ccdf0c0e5948e5d1f31053e913e939b2d0065bc07423180fe63792d7f2db965e76d53eb3c3fa6c93fd59a05d790c994c09168adf0b50d358084ac5bee5378e93f22746c126505cc52731284289ac1865fe34f1e9ba88612dd8b77c40b8c607b10f8685841a942fb12f0740b5e54b7f618e955ebc7789309248f48ee0f0301eced7e010ae0fd33063b10b7b2afdcb87b209ef432986ff503e7172f9509aa1ca11e93422bdfc96d28be7bde7e2ed82387844b08f8e7ef4246fa8f23725b644fd034c2d05c1f5e581c4daf241acd496962f7d40b8be7c617cec7bd120d8f2c13428392e4512947f087499e460495d26395052b78ee3183fba57ac91dff342ae5ec496d6ffddffe8d1c962fa6592032917e52167b1108e3ecd91fbaa699ca63d6fabc91b35d8e2dff3c155a84f5b77aa7cd217ced1175297ef63aab25a3c5e10fb921717e47ff1e682fc9ec72dc8ff1e5d90dfc51b2dc80fe3913686792fec69da06fb5a7c4b16da20912aff08cca764c714a524d27f08b6608ea58f4f1b25592f1f9f7bee6c58fcb30e2f2fff5b19fcf25decc97b392b0a2a03c5efa278ef05f370f060bcf8e2ad7052f2e20de8b65cd89037e9135663c90b4bfff2ecfdabeaf75f379164f1100f499664ad564371157370e2879d8aef1e49b0a08c44c454a441e74417344e5441a7e208faca914c2c2aa670641331473e1175641a2e22f21af2614c61a43e852f4f6a50f6f8c135be7c2990a0a9178f2babc565b57a7959bdbcbcbcbcacbc55145e3cef5ffe5d9a6f9071ca8be74b1a94ef79eed3608cffe2f5f0de07d7164c90ac5c160718009c62ca5100f89c4522e1f0a5603e960e0e8509203fecea0bba7867390adb18172e5e0ea5a82e5c54170ea57efd9cd7b0a0fc2a0b8575e02126807ce9822115b4aa14aa520d0b437ee859a8321ae9d346116caa081c23aacc794175f17d18917cefe2431e7a799a7e19a188a9988a3792eb8a718cdd03fb460d7adf36e87d8bef07577ff2a5408212e9d3bf84f914d8475f795f38e5c378bea463e4bbf0fca741f99fe7402db19b717d0ad983d4a0fc1f5c471ec5598e62a1cde56514e9d1fb58bd2f04417d79ef6950f254d287db431ac7eb9b06250fb5f86660f5e5f3260dca98ea13f6cef218f92d2fa37779675d2f5f38a5e9577821d715d827590dca7fd36f1f4a9664ad0c697a39e987b4aa50f1bb2a689a85176fbc88d3a0bc3a96a3de63e44f1a3fd317530dca177d18534df0b3faa4f13bb3641429b43218c8fcd256159e0f267921497e0a2fe46ef0583eb0eaf98823c9aaf25dbc70d41253a48de167f9e81752a622afe33c3a6a30ce1ae5d703f369d1347e600303032e0c5e1834baaed8ac38028d0d6ebe1c856d577a92a8b16d8c3146f9b10a71661f04a61ea8642dd655412d15cd0000002000a314000028100a070463d1603c9e0bb3f80114000d839e4a745a9b89c32cc7510a19648c3160c8000080008060044840007c2f9d51056e5634599f5b72acb5dc99baee6ec9bc6490ab4c9dd8e61060a620f196311adba79d2fcd24fc25212a55f10ea33403f91a090d1028b284cb2aba747e31c17f532e685972836cfe52f497218b2728aee28d6791af87f0f714ec7647dbc93d0e4f0ad20e785f4cd94406d4f5d3b3f1d7b48cf131f370e0735cc0a28837b13b8c121e287aba46a8bab1efaa208572ec62350f64eb3d8dfed23dcd851248af28ce0f4f7d47a240b648dbd6b132bc808cd5b9da67d5dc3d3846227803d4c2dfd06c890194dc9940e273158984678646eb9262f737f046211802d24ca9996163f030df7dd17710ee56d1498e9868f273cf005beae7f32201f90af8dfd867a5a503c8cdd84ff2eb68f958fe42e7a676c10ce940b6caf9bfd05a0cd72d76fde78cb31f8baed7c792e5a50976539526975a07c2b1d61cf09333b514df400205f0faa7f5f0800014aef6081a904dbb88a194c3e63087a16373dc66c408db3a5405dc445e6dd72e9b34ff98f39c3ac46cdb714922eb73f2bb59aca25261764aee5fb9256187a257c0ae1afc723a6cbcc240b243a24919d933c8c5dc716e62f82a272e68395d77ace4838b636680908f048a17602f730217aec1db7b7f7dedc26ca2ec4e76e370566dff1ca25df0f17e1eac9462efdd685c234311a32f4259acdd435996b604c67e83395d58b3235d9fe8becc4a3f6f5a47b95898ebbc3cbc31874a32ab2943851f7237e50f4a7f5835877c75518413e5b24f0590e5528111afa36875d8fa2314bfd84be064a55106e150185c327b7e7f0b94bcc26906c83632265a3b14654eb58094777bce4b8dde90d39250557de773df0ecf363c3fcc11ed543d907aac151d501e55f78962f63c2cf819e250ad28c31041613ab120df04b3448ddb8b6c13e3a7d3c5a8e54b30dfdabd0e8f0c44c0a051c7ef040db1c1d534e45ad9194d9be058afe1cc048eb0691979d8131471cfeb7bf8500e3a46d4e3d8b543ff952a96d4a053113f8596672627eb989d08670c11a633942c0f33bcbc8a0b6a390e412c1561ec8e194f4a17cd6831734dc60aa5fba6c869490a06b78d77c26bc071054aaab96881661045cdcb0744bd753819a2455445ba0133adaa64a0a529ab953fc7118550198ab4297971997b04767a0334a005891a846ba3c7f1a3b8d955d61a164e98312e6967dea3cb07aefdd47b953435b12b03669f7580667d361d7f9c6c2d4c44bec4af738e9d32d9181f0e084559673e402e25326b0b0f4ade32354a71e4d8272f24e7570b1193fc696105749ba70c4d240008c27d140a9f5a38a2993eade4287b6370eb46ccab79df54ec0e6d0ab0e8c36a5c599f06df6d32e7e5b9bc83797aef933bc8cc8b648fb74ff1d9117732534b632223a9c50baade78f285c1b9b8d7df97e90c7a10b21a1442f0062d04c9ecee65c2c7c1a5ad01b26b52fa560099a8199e64cb8f7d99d911e78c601f6432487f1c7be6e94158b29eee076d1de41c409e82d5195f429de739f1e27a73065e624cd4d7852b4b42ea85f5c4ed49ef6fb162ca3fe909d57c7362185ab44b7d2785ac29a3ad276a1581a04645f6ba47ad60bd2044e46f16138072688fb8c0a6b5530a19b713ccb8af327d61e4bc52fe0520238e06f300316f3aa4911a4e9e61c3a600660b6577677754430cf7301f0b97b3c9a6f4efa48bdb053dc609c8aacb6dfcf5be19032734486111490de101ff8611a6b75ca7e8ddb44a488899e3a53b85430e15bb605fe42d5b2ad0056ff6efd7ac0533df5c49b13df62add9fd1f09e7c6e78c0e2c8d03a8d081e85f6f5073b8c99020fd0d0b17df06253817eefcd9698b80d052caf0c56489d8d729b169586e906ffe8170c11925c21299ce3abba9f38d33c6844adf3d8ad45ba76bcaf2754f82ef8f5dda5edc584049a39cf1d5a1bcdabc1ea02c9e4d93db292c2da9382f36f096bf8dee98482c1d8c0953393cbed5be83487abcf1e5f13bc402840e98c7b7a8b41d2dad2afcbe6d88cafd725183a04cb6949266b7f314d02119c89db07f3db5b2c381b62b24d7b07aed6024332f1f26b52752e02c5e6262bc087d728062f142df0c13cc1096aa6dcbf2101da06ee58f4b7c5f63f9c9df2e3bc4cea9fd1459a46f5f285c4bc34bd54b8c434d7af3981d0d1eb0e769da4a1362179684f44d9c70f59ad06deb1d7e5db94b0f56ed5dd3277f681da1ce330bb9df88067c0f2885b07e54a596a791943475c1b634e659ab32612a8b204c6b16c8cb33011057c9491ab02ce4083fb43952d747efcfa36bac85f5b0c99b41e40b71667cf7bfef6041ec459e92a649ae742a6bcea678803c14753848a412b8e05c5358ffef9f99f70ded12f242751f1f1d8846644ba8a814486165cd221a84f8870b436a45b2abb80aa8ce3649d1ad3d8d5bdb5bef1704c17aa6bf5aac2beb449d06ba7b355970c01e7cc80037f856cff0a80b3cbc0071a5cfb57f295e7c7240a5a0aadcca002067dceff1656fc2f6ebceb1e1626c33c7f44b2cf43bdeec726775d53e4f17ef9b5b0a8d2aefd949099b9d0c056b451f3b8c3d468463e074a0241e52ff9104f2c90582e8a6880d7f18493fe6822fd9232d2fa4c4dee0c1d4013eefeaef0e33e20ef7bcbb62735dfc193d8f83dcf85cb665f0fb818019b11fa887d3972d3f8bb457fa561fe96f72b5ac0068b3914220c4eb927eec2da7e3e16c8c0a77f9e8c96615137a043346944a6b7e9d6217bd15aeb8b11c849acef96db1739783c1827d74d6efd8d0d36c508393dfa4154aac7c547f5da22d9b7e91ec2415da3a8088f80f815f0766950847c2f07e8d520aa7d695e2f17610fd84120b9c36a50941422f27cd882cc82351f68ab80d2e8f0710e30daeee4de7ebc43772541e67d308e5c13ea0f488089abd4280aaf2c9ec41316893ce91c872c48627048aa4868f3413a1baa6d4dc3804874f88e3566ddf49a7dfff137db2e0ae67d61d954d9e62adc1d58d3b3b869560ea62624c8aa389afcc0a3f41527106152b18c3e59c4bb0ed90fe9b8359028c89a802caaedf2ed371c3da853ac60750cb51d59190879058c95273307c4e05c103b48017780c57ef1c1cacb6f105d6325c16755d127f356ea0b20230335dd158c3ad19ab42ecc5712487ca180687c2f0c341c1184b9e621c1d3f6d2055e8159b922e2472e0d9265e6f5fe943c69614ace3cc670d70d48113bac07be4c0438594f048a38d0bb49b0cbe7ed0d7f503c53ca8c17c441343c2f410ab1ad5655bd380612e129a924e4b567f449572121ce74264492500222f28e7579de7fdb16cebcd908b52d8a69395012244a550386d65beaccc202a60c208e020cc42db0eb5b32a4a04c2b6a39c1af08bef110f6606791392dcb28a6e322cca85eba07f19eda617cbc44eaec8bdd8d9b5d4fc682605ce124c2d1a6f8a4db7fe7fb6564a870db054b98252556f73d41768a9445e2df8e0040a881e263763a1a80235ec7e9bb086b592034fd7186a9c009aa48e90547e4bb004b31a624e6cec708f44f9057da108ee90934c5972652fdd58d68192d3adf06a8909cacdf493e6c1c21dd149810b94331e16a87afbd798519c37d61974db59fa76c5c1d5d12821d91351af5ae6c0949cc3545b8aca38ef366aead5925dfb34e40833fcb623d9be545a03a0f18c081d6ce0294ef9c1d2c874b4af994330388c60f1e4158e900bc00c3ffb77b2d80c013091379e868dd9bfa32715c6bfee402256ee0503244e512e17f97d276caa77789e091a24d6af96dee771f5a35b0aea3ecb67135fadf42dbae7a99fe844089dc334bbdc1a178a92f0343af693c99ae8af2ca74c2ab162fac42c4aaacce146a6c905e17b855d0e33c02e591aff2773fd98b51719e793b8d3a53e04f5e446455f8af745e56df7359cbd5d945fc55812cbb2a988c54484f7741318b86d2cff07758432781253e5cb31d51b188b3bc8b376c44a3a459be18dafcd116b3976f68eeb24a403f4892847b8a4ee7c1ab7877e54120fa6f105957c1b43650eb33470a20ed87f5544081378a6295f32f7a6d4813e90758c6b454818b445efed278d5c9c6b8faf024c936ab8af30f896611f921a5b1cfc4d0938bf55410a9652d67c1538e675932c4bc4d4a6b472830de15a35e6ba72adcb6e5e27d2a6e95b90cf1b6b3134607914608ef32fd75d36c062c05b142f378136c0ac5c49ecfa47b10ce68e5979ad4fcea1fb168b7678662ecc28b735618de1fd8dd8aade87b15e34c2c4781ef8d7f3746e9b231bdb056eea34e06c4b958c27fc39b6551c0dc6c1a60151663eb6171b6c530dbcb9140f81c9d618e03ea6f4c032fa2b2f1fddef22b907f6ce2e1631d054e982fc1da5e1e0e6520fd7c882362d41c77631f0a430abfded8dec8ad479b1b6f8d9198374a02ec0fabb991f64d446125c1951d0b13f38ee762c79e547ce08c450fce0da21c4bdd9c53e3ea12171e0d2610520bf07e6d9b33683771a8fbb5361aa541f052fb1efa15b2ad05ea64fe29d716b3693859ee57bb55c4eba5c1e2f63eaafe840c70503376c7e7b49202ea0eb69dd1fd7ebb36e3d0f6da1d10069c7d9fa6c68a219069b5d4fbd9d6cf5e0f5baa7d4a886193dcf5d8cdde24f2262bd96ab0009f2f4df3e824a56f6e53b757eb4d4105f4000f20d3ccac8327d7483657df9051394fcef35b71e741c69dcd130c52fa5d2df6bf76fdbeaec6021b08a607d2b9896cac44ea35e930ac7292d02837bc49345c659e23e45a5e1e4a98a176e890cf42a2f7bad19fa4a5a6aa08a11f2eb43fe16dc6429e64f0fb2f742503937f0d654cda72f87ae72df7ba7b00be8ca907c71b68326497c5fceee1fadd64cfed1f240925b69ce5902a3812684d32202146a36fe65559fcf8cce07a3061d033bb0a54b71b1a7b05cabc2638db2c43eaf56921f47c33f9f064fc5d763a37ccc141a4e43e6440f9b69a9028f7f2713d344ea847d7b7de6786fc0c47afec14cafa4339d6542d3464f10230f513aae2401a7c45901ecf129bc050cd0f41137cb379af16a34135f191a88bcf3d8b7893af030e067f75c66a13194468f7379e5bc3f729a4a13a7ca7928d095a41a8221590a9cb196d67be18b88ab20505b96a0562c1292a404f0a6625cc0ee52f6e61fa838f46ce737a3eb3c575bf4cf594c714addf4108b4567b5e19f6b2ac8333909d40733400417a0c8efc88fc421d9d26dcd2ae806a9188734ea21efefc45558aee8e023d1b7b2e764712660e6852d8f60a8346a987ba322222e725050a30b8838494d9e8ad486216a686c12843038380e8c840f879289c9dac98c6bcf1c7cea3574c78d7f2a2029a33eab3fa70fdb2ba12fc2951f5c0e70637686c09bafb535ad580df4ee65f290a2c7b71e7833e6f90525c18b9296da0aee1e163b52f36db5eeeb01b1c748514629ca24479df7b95f609235682eec354470578518589add9bdee551520b828faaacb3ff52add9ac26faa7292f178b0ca3fdb7f36d2f490e15ee064a20df076f8e1008f80aaf4aa78e567fa6376ff56804a884d279fa98efe943b555f9a366eaafeaf50460fe81183b9a77fcb5ec3cff97ea7f472c63d28d8dd17d7ee5514a1714598b78352a80a50693577f822d1336268639e50be1b57f65fa15f98913ec1b105c4a54fa48311f7d7a2cba90b16c3347ae0f9dc3759480ac0961c3f9b060fdc4cd5e9db199e36ba3438bbad88f7483d8ce513551f867b448bd7d151ec614131293e3206c22eeaf84e0817f2e79e33a71351f03885bc82853535676c1da24d5f7006763c589eb156a3c9f777aa85ab0bf1529aebd65a48cb66e715453181fcfe8d094ef09233001fad51e6ce822cff691757f24b0bf125f92219a72e65862225c70875471e7438982454915ff866f3825f51f779a83641204390093435069c39bdff2239f4f0a9a1ce60752cdba94ef5085f96c5ed34dae364c72b086286ea6d0c8885b2a944236e2dd6d97a2834da5ad28f148ec22516f25d512560d5adbc305a128e9eedafde8060a6b93ed156cfe8e6f9d5ea8366c8c5fa2e8f07426b97b523dea0e85fce8998303308c1712600dfc8c1cb8680e2e9be2c648981f7426f112c7603cb65b70e313cf4b081dec33b8b3712077802d519827c695136cb9a781f6d75438832ad0721280ecf4c513ee92b0841c75388b90751a8d5099a0d7695399ea1a01a11a463ff0288f3bb9adf38c9c4d900a688dd7b9dbca041f215a0c1ae9623b450eed584bec723e7f9408385618221f8c260d57226f360a71eaf2c4dfd3630e5379872e55a0211280ccc1b820c1c82a184f915ee041177a74bf7af8ff862c77d46b37b2738cd7dd039a0e722ec065d0a9662dce7e92bc48b343a2621298c3dec904a03a1eaa59d43456ec55b1066d992e5c7e3e9c2396cdf76cbe6a68769d897f8a19b6a613278de8dd055eb97acdb0b58759dae5c700caec2f2b597b4919e17efe6f6b02e93ea3afdcbe884141977437ccf639de8a1b3e272af04b39b382e24dd67e17461013557474385db9cd6d324b51e00e19d110a08279449d1211dfc2b6d2323c91c97d831c4b1948a3324ffbc0d391c551e3499ca0c1218687ce84eae6e54b6f52a07803184dc40e84933ff7f0e4934898e69356432e46cf2d810664357a69581573e9997a1484e032b8c151230c355ca66c4668a096cd0dcbbabe54e0eb702df03452d603ecc1c8b223d16e84a8f15f274732652e640c9232341816c24f13657a2da87585a29ebb6382b762c3bd4222175e004fa841c093d386c8eb8d4a780109aac07ae36bfd155f93e801e8e74ec9fa78572c7712ca0040cf963816fdc87c1c442c0941ffb3a7f897d040132d4b91beee33dc977222fbd556571ecf50ca926a4d56efe769d397cd233700f1fa9f818fa5a3a59def569a9883d9435b11491fe5e56aaf23c087a23cf8e9c96d1c81840c46084b932d0010d0616a12b7e104ea63916ea22c6f7360e7fe2cca687cfc74d130ed161b3691c44d1fd80b7bd8e2e286419df544edf0a9c377bc187405ccaf4ede5ab045c602a2317934810ab02260d7343a37d2909a5e70d1e93b74ce0cf048fcb88ee6bc4033fe44eba50c9e2869034b2c01715293f6121a2ef984b3a9e197ddb81864bb7f5b340ebf28ada9da2d9d5760eb08d41496d370576a976199f6cd179e8630c9e342e0a446225f7703871ccd41a094ebe5da0ac50e0f14a06524ea04c2874b1110ab46fa985f4c618720d960251c7473a3bc60d283cac30f18921dadbef7594718695caa3eac23472b5dd7850704a9db8bfabbeaefc8c00cad1d225c5659074d00f1d33430ec0d1ab23f4f9f3ef2e4ff3bd0625bd736d054fb0a07098f16212ec43f9755d1f042df7e6526d5f004e163be9e5cdbcaf762ab83ec61861d34dcc6fa2ec82df9dcb7dce27d463d33c559f5182de994ec36e733fe007e8d468c44944ecd1a61607913724a11a460c832e2575bb0ab9dfc2151ada1654711d1ea4e23751f6d94708206020297e9dfc9117b2ce43c8c7e952fc5cd50cd3ccdfb259098fc5ef1e5c64d75ed03717ec1b59135afc5ac2d66fade5080f67ee77630e4972154fbdb02c462011741bbecb04122bb49da47aa01da49270fd37ddae2c1607d4ee7d5e63a2083f27a2da86078ca9e01d3b67239636f8b6e22ccec82343fd4809f0388f8747d1f7dfa143ccc8c38688b405eff02c7da4c6e375e26b3852131c1faf7f32c21a74d85c9a68d86bfe50a96e48c55e41073bc500ce16ed28f507fde744f42fd8ba5dfe44ed45975c79b9620a72f7f71de4c6ed6e08689d5f171b1c02787c9d190e5bb19ae41f9382ee46b9eb413f01b25f15e1ae3fcb8aae195f964887e220fc4a43d756e80599edead1ef8e30e267bc9ddfa8e46c53ab8878f0049d7c04cf543d05a60032dbe7fc3613f0b5d908399390d559ffe56c578e2e88ee6c16aa6303dc78b36dfdaa2ea1c92b6f7afbb1fbd154565490e644c29716cd14245c40bba1ec7a3927b77347b747f07dbdb799d9dbf903e895996b2a4baeb05addd18079188f70fefc3101015178e8928030ba173680e933152df037a06e16f10632b73f59e7fdf4aafaa4038e4c39ed074a84a9713a1b69af43ff649597e717e0bfbcc3fbad4e5c10f09f84af91fcbbcd35e0ff4479231114ffdb552e94879f59a04dc47639ada15cb9fd4cfda8af57a522a5970f01da6d3b1895be8d4616641d3735ce65112728f1f9955e6a9e24ef70093fc72f3283b66ffac09be15dc97520c9680f0018839866a26c5f83ca1a7a2f0697da190705d1813c2277efd0d621a7195bc42d9d1d54c035f12de752adcfb24824996bec71014369f77111c8c5171aecf288f843d9479969cc96b85cfb3a0f69e04daba750dadac888f89390d2b2277015aec8a842e1cb44ccfa9ac83c982854e7efa3901a80b91641dfee736812080a15db123d35fba4b0d2ee66e97d10f5e062af96dd455f79c63841fcf72aa85ad3a46a4bb96ebe60a8f2d54fe74da16af2e2e9ad6838478feacaa708a308794248ab66f2f1b7bdce98de130650be8f6dae3bc022b6210b0555a86259ed596e49e1d9f31c2230c2c0ceaaa9542a7aec0b1a1b5ce3736d38b30e2027b54f702a19848ef84814132efd7b973f6bc4381cf7085cd209c95e4f0d7713a4a5acd6fac0d574f7b9c7113e8fb3b01c237cbb007e61f12181496e792ccb9c4994db47200dcfd0fc3e1a05500d9c472601ea645072d6e7e1360b10be6f1565e5a398c9f12dc120652b929d0c562dadaabbd5d3c96f80977c86482f32b5b42361bf34941b30ca07e7658ca77d56f79435b430d390c67460d2b64239d2595172f45ccbece6f5091b3783b3f332047ff5111f1beba14d282d0c7cfc548723f75711c49e79dd1b01599d03819cdf3d20888f0c2c662fe2dba6e0214b29b0af4a3702c4dbbcd5c88a530b8c06aa6cc73aa06a0d7470d653c43d0bf3ef95862f9fcc0fbd1283c4f94aed61e9d8707c160bb0421b4802b1a1f993d62b7f88d0e98af64af17c1c0b50159f5e79ac7f6dac85561e9c5b71af8a1516c7a5ead6d37046fab9093f8d0152d6b02c7faa514d8559f505654e37e1edc550e43d82ecb3701f2753a531c6dc7ece2bf783891cee6a8d76879ad31736c2cfaf9a51c2029ce2075c37cf769441150ce1282da40c3a0b2688f09414a73f4f2de1dc74dd09681faf222f329f4c8b871f4d02556e11a20eb3eb1eebc96326b35fafa60b27b4cf0e75252432d19f5143b96f5ab980938c24398f0b2fdd3c7231ba73fe71d0340b399ea847089ed98b3b09838a820aa2e6c23aa9c28b1fb2cfa7c150010390a30214360ef32939b7a13d641e0719800d39bb6ff72ced2533b3fee322aa6c1dfa441a018646fe323e06a71ca2884909ee64a21f34a76002daa5dcb31e30e45338d055bb6cf367b65951a12a69f04ecc5095cc13b0f60c0ee1437001f175ef2fd5eb563a44150257b80ff2af10dbc915bde41fe04f7eaded96d6e3786211628f551288da64a0a5419f887e77028c6bd8a0c75fbe5367cefb2dfbb9ff0924ab2b2959947bad721147c94f6b52c2f552825cfecccd41e91142b913bba3dbfc31684a8811f76480651cf4684a5282f9a0c1b902c8f179f323e46617eec5fcb6381b751366d1a33d4c84bca12efc01e955f9c80c973f95ba4b85a9af3c11859dfad4e6a50e30f61ee1c794ca8a9aab6ecac8c663aa738de41c6ba744768fdf582ea8d6efbae43a7f898c5f90be3c98e4ebf28e24251fbfccb6cf273d85d274ee06f0c46027b48f239a58bd9e70e1b9270bda5a623683809a5df64e94f16710d0b8354deea5c3f81028763bffeda130d7a5a298e90838e53903d93f129a742eb3be99794b243abe6a84891a6f3e0fe4664c16fd051a15e5d5cf9a5e3e4b62d8af367f4e15d448bfe3894762f568d246f73ebc4745b11e5326e974bf51f35ad06efab1d09be7f608df6e7af2d65c7c392e1a53ebbeb89158c129ec814615241b88a1d399f8e4a3e826fbe77156318c86bfa94bdb4f553e911e20eee9a4e470ff14704ce341789e7f1d149300906c6a05edf425be19a61607267e4c1fe985f000db8774995b1f34f097d2b692b6b7e22f87a21982fc88fa9db4d1130e7940580fbf1475c18f5ad5aab2da4fd3031210a10658373b11c5e2ec6f16cf516a68c60a2a84e400e3c932f95151030999becccf81e1727f59a7925aa39428afb22e3daa68b82618c9ffde8a72dec83165a229abbb1af92bba80ee5de384f69d0ab493b5e3c35b79748314ac057a01a0f839f8214fb83f3950dffd092849f44b36319209c2ca61af4518df802a4d2a813e0a3e83f61479b6c7b0e67d5773d569a902a88323dcafe576aef4ca976b524d5151556279da178a73a625dc3812c9d7b8efff099858d625bd6110273516575be35ef72adbab12f0baaad8e93e2e199e66ea740864cc76b7d7f2a6f03fde53cadd888aa47222c9f431294096fd04775a35eab4f9b032b477d8f38139c009e8141a93fd2d157fa7720b8c941113c63b0e51688920e72ac46934221f88489fa32d287a9c986e4e967763547429a5b3e2137910c430aed04cd903f53a1842343ff5cc8a0e13e92abccccc605fafbbd9a4ade582613e9a2b1cc10052b19a54b8246829dbaa45ae0ab1cb1b706369a30724a682035628bcea06037e8aaf509d7c378dea29e7a2d43bfc913cb1be32590dbbeac296867a36a78bbec95e74880321a841f3f56635fdcd0ef7ffc360e82471a283985202f448a374a0aa31785b2922112df7b4c627fed9cea6bb990a05db7d7d8d6f8223f1cfa4d1a7080b7de3beb89d982b7f244c3122f9958c2b740a3aa3beba7772d79a79d8bc03b5e8c513692b831f6d61a6e9057732c27d34c5f98fd968cb823674d987795e7ed42aacb4ca5ba11afb7e930a26d932912f9cceea7ed1334e8562132d933540f73ecf0e6a3c3ef4c9cae303d218e82d21c14acd3842b0959a5508001a2cf8bd475f2d2e6c3de9f852addb9653513dce7fb895adc8cab072e2f587792918c884e01b70a47d4b9e6a8ff638b4c6909ad2a0b519e695eb434989925e120bc4e6988f351748aba592d2c11fe85b260d72856db35f2a42ca689d1d12c5474aec4d593667f2d2351046a3e20c840575da57a8e7d99f97520e0fda995128c32729e928a2706783b6ea746f4b355b798deacdd3353bc1884cf4f0184cec80359fd600aae2b73ab89b27abba1505b6d51c1b721e8d9b4f81bf5c42a377b0e341840fda8be131c016206a2618378cab5c420ff9ed9c109905143aa578a4c69404087c7cda98de09ea810be3e4e9a1ff1dd70f0c32438e0c17e4faef8295835de4067729841f0621138246226b6b4b38ad2707042fa09d003c16f2dcc9b77bea5f2a10e1b129ae7695720b58554a333193c70b4a100b90cde3902993f4856547cf655e7632c5b840a2e3ae12f4ea0a56f32421310ecbe1e0f1ed7c703cdde8042c0246995754d25ca8a116464108c98b10d8487c1873a24db4e6506c45afb88c5af09da3b82a7404e52580f7d83c075c0372aeb8250942206f9ab158f38c3f531d1cf9face70038da36d4da6db5a3799aef3dda088b488e8d159ca260284b800e520e2a0b209ecad1411be14fb43d86f61106e820db809f84f7599d22212289180a83c48e3a67f7b5ccc7de6aba5b6daa140ac5e50815a3d837652aaf7f2115b84e1faac44c806b82ec755a70e5381f58a4321b2c7b7b1a58f6c22cec718c4984ccd34d3144eaa92e85ca238ae3b7c95907508021433e416a20c8a3fb58df760476b02ee4dd1c01407b23d51b9dc9e379068f9f0881038c822d3ae31fc3361499069c396f92a336571aa66159c57f0f2e50356b6522bb612182bedb295c9eef1fbcd7db987a39da8a80dee4ee964f69b709b5d78f74ee19bf0d5ba7b61a61cffe0462b5a8dd5b1123082af915bf6111b0ea8215ddd962f3575ee7c001d6392d753941a93de749f8c63782100bbb35162b81b48053d174bbe96b36fcd832db8deebd5e600b0791f52cbc32ee3b723bda22dd0d104adb68759ab6e1d187dd9c1673556f30d342d87600b103634bec1e861b78c8a276d37bbacf97decaa7cec63961f4fdd7a6e60907e6e9f7e53989bbf419846a5a2382277bf2c08f99cbc796f899904bbebadd5797bcb1a263e033e6beabdad4c92c030ea39e44ed9a10485538137de0a0a5b5ba6fda444d6d4beae0acd58e1496f97d9ed812ac6f6dc89f128e5ab4198844b327a1684fe88d182dc2a10250edbea64382c71642258af5f2a70c250aac0a181696a1d6dc6974f8fbb7c45c188f43a5d23268cc356568a2b90479f611a8e5e043f5be9777bb84e66ce7ad00e9bb888e25382d950721ac982a065e97fd3a115ab1018824fcd9702c504a6b22f5124eb633baadcc58f7167927dcae96ade0e8fe3586c37425a04f4be9fde26bd9e2132093df2275e7834dafe21df54c624f2a1828cf44308e02cdb3145f6a38ab4e05bd4bbee8d7890a173ba481f0bed5ecb820990e25889e12efabc750cfd32f24913a63c6fa5899226928a53377ca2b7ed438e691f0db3cf342a3675102720d8678399c1cf9a05cfc92b2eef51a6ea7397470d971bb3e5ed7eb7a02d78d49ce27c43b5e93ec612b30fd569d952a2cb7537711e3a332a15833e96fa4212fb1dd9965f4574483cb7f28d030ae9919138976dc855672c19ece9efa2d309f5417aab6c922e8ba3451600f0d96f2afc8159c0f32ff0d6931ee86c5f5751269bc7287bc76c1a650c3b48c200d71903e74bb9defa3e53bf81e7eb7cbc9aaf836397c955e3850a186e7f0b6ab0be07fd0dcbf94a6f00bf13f16f61aa34ab6c87ba3ec6a0c3fa25a3b6eeefc3e19a99623f1b81bfcd087744ab7e3c26638c485789d487ad2cd898e679bbe0aeaf6013a9d4aff7d7bb6fd49f9bc2529b407d6478facd9d7e0fec0d8cf9c0a60f8be6a2013e3256f3f357c3620c6e35c1e69b9d87283158a8194a471118ee3259e20b63381ec45fe22d37a234554043633e0b6d222af2ab9a35a48a1b29dcf4edfe0e155b8c0250da7ba77624d0881bcc30dee663e1bee307ffe7ae9fc1b128204fca8d250cfd5a44c6e18e69d61984ae7b8d35cdf5893189cb00008b10692769bc9875832d68024210725d278f9406105d06e449dbcfa667a393268a94aa2cea1cdc544c0e894059a1a86b6af08a7254700c032cd71f85673d22728cd38d502aa0ffedeba2ce2f4ff4b803664fe413d41d51e743c62df7737603c5656d6848e88f49f9cc801658e5c62102368a63aa2a108e8c3fb98db355a5eedee94c75838cf0360cf9262674a06c4c814b5ead62bbe5131282f90fff6f62f4b90d320730254a0a360db745f19a4bba79f4be4e8213a33a563211169541cc12679646a23c5b2a7b26798098685e45f86cc18526117bb625e8aa3bec00b56240f821a562bc17d3abd9d9e7f4028862086a074ee332a1376180cf0b3be836d8eab3f7c0d48b63c9ab86b807533181888d03a14ec891f7ca014e0d0fe40d67b59801f2d7afc38c9ca454aa41abc1abeee40310087dfd2bda92104597bccb8e9e4212063dc64a81d7fbdc4c8c0af8133cc4abb4d27a41165d5ffcbfd5d615ce2c609b817c92bc242b8cc4f64234ad482444af04cfb8ab15ef420685f06657357107114e0439fac5f6495ff086f104241bc58ef8788e9afb752a4b82d8a627977108c75dea2cdb47275cda4e77c7022a00740e1b93e46e102554d37f16f9a1c421735830c05ed201c8ff1c4421b6188da9cd84c8c910b6309f24a2fa50448ea7fa4d6a9b3c9fc8a39db6dd24a50bb8fa9651decd4a7069a68d79c241fbdfb73516f4b7b642128183384511b16e2ee179494d60e95a2c29381b35c89109a8e363610ca03e93400e3f85caeae9efee3afcf4391934670a670a690bd13743299cc07446aa6e9f74620af819a15b108659db376f7b8349013db5dc8592aedef5d2b85ed6ab66c2959dfee10390aea6a49e36395380690b3aaaad958bfce3a321ae972f0a731204367bd8e69b8f8e815b93c85b1a1ea32c4b2d1891c199b6fc814e028e7fffa8faad2114507876a09bbf641cfd3b66af7e88e416bc3ee6cbb18151200ac425156b72f84671f1d50123d1fbc66b3f8a2e70200ed2894844b546047409926822ca79f1af4a9292fba164a8b19c34c2a3da7a43807f008eaefddd3254b7db2d48b33f4f9e9e47f6fd4dcd03b55d8a46093d474b13bfe43d92c7589bdf1a990e7e8b4b243133bef5e1b6022996a9a85f20a4ea24fccab6e522a9f7406139de5b67003e9f5bfc8a89d512f2dbdb3fa2160661599d3000b6bfce0a69fcd1224aefefe6313e2281b5081da9b21f3506869d1e5c2430cc3c69b98c5aa7f4694089efb030d57610dea7f4000328435c22733730c4599c9663f7671e453cf9d1f6ac1b5c2202cd57013f429df79aab7adfc2a8e82ce6b8587dbfc414e0056e73ebb7133d8eee195a5dc92d27c7a3e9a0bb9ad03d4ee8ac78758d4d4b4adbaaa5942ee2304333ab6d651b4e0e228be1583f3173a92f609a3c769f99d27b5d676196711dddf82bb4542d8f1a8c9e5c9a15445e15fdaee20341304a3d6bded31a1fbcbe74d261747ba5f831dd00f8707bac399e81c6da3fb0101f5741fa08a4c0e8721f0ba4d2177b8092d38f3c8cef56ea232b4c7ce8dd1908d6e063461e01a1f6cf0f88466a65f465e8285aaafbc304c7437e1d7f8b177aa10f7b2ccbc19a7b6d34021112fcd2e1c5a9e1020c1316e637921205583698b0388d11054117eb39ebd087b214410c6cd530aa4fbdceef1353ddff24018d7867c2d85121a6f3166a32e56d340225ae1685c7262a0cec70b790af447f8243cf80b0e064684ac092fc2c47aec0aba2c8b6d5a9c24c1db8ccf15d89aed47a7002a6a332439c47b6c17a5d829ff0a4e4d21e04563b2e07e8c7fc3b4b4dc7cbcace99e33e76972310136cf7a2f4b8cd42134e6aa45904b4388ea4313be9957c0134e1a4942fa482264659b948b5101ac371b061beebf531917cb892dcaf64c0cef28fd90218fba40a9eb68dbc39b8ccb9256f985706f40d4855249af220c8fddd80e404433feecd8fad33b8ef96def0a0eeb4546c6a55def1b65eda6e78cb0ad09a56dee02db9c5eef26873d854f6923fd81445a39e352ec74a17495b32ea4b1ba7edca3fbd8737fd6642fa34f2a977c13f97523766b852cdefd3e57be24b311796dfe7dae2bf61d86e34297c9efb0fd22e96da253c054682582f53da29cde6bd663a9b8a4564b5418bb344b5f38436c40d8a2570d4c571e472c57304e202e90c8e28bcc0c1dabcda7732426dc3ea34d3ab10f658180930fe066fa9edd46a096829803c56515a3ea2bb27e96a4975d89357b66ce4298b7e2d60f9317449fbff78416860f22965935101b14dffc41bffa31b39c5193a4060b432377461ea9250ed77018039790ccd1466b7015e34154f77485446de7a6ebdf414d57db28c1be1bedaa3c04523779da3d4f5ce7c7552face3998974590fbd581a6c7ae74705148520147c969c3181680166e59b18d07fb2098ad3a3ce89690548534bd747c7f741680e109257e27343a15be5e169b0a5f5c640515cd6c9563942835992a84a19c0360a2428d26bb23bed6792059cf8b9d3db9b010654e17666ca4573626f2fd11f4ef162ed51c72d4300029fac47d6dfce8c0c91a81f52865e8fcbb1232792303708203d68e63cb99a4873391a284301e4720da12ce9fbda4131f403ba5509ab6ad0e0302a7aa34de5fdb8538237000a00345524af5e248d5c844e6fb1834a4b7f4065f2ab48f79989c217b7f99c34c61a1d1cb2ec0308e74d7b11417ae180eed07f3c25dc52393867a97ec800fb63f6ef13eb8447ace3e656dd2a58ccafa7b97b145616cf1369776cd4cbed00efdc88f311919b8a1d00824f1a2d23671980d161ca969d1bf35d23417097a56a7a12c3b6277dfe804d27439dccaaa80a63b2b3a709009dd6402aa9723b000092a61fc4f070782e6e087c13e8c3e5a0a1677b9b8dc0b1e9acc59ab46552b7653c52f838ef05790c38ac3f7a36c5d8d994efb1047827fd62e45e0ee57868fe551546dd0504f236d72dc293c0370828bb2864f594a658155181ea85de9787f0ea1c5acd38d9d0e76b6b5c3c7c124479647aa6b0d37228b771d43313b32083f3e13308bb96f01791744170b6ee6b81dba85e05abf4bcb054c53cc6431671d73195a5b47464cde405dcc728a4d5454deffab733d6cc2a576113cfa6936b7665e49ed6ec34b00f531d89ac2a32ba8743c71980feecf9e25df3b08d6cd0a0628f03e655d9c288b9b03c09058033d3fddcdef39b473bc6b49a9d0839ccaad41270364c425563c3153c8fc2926714b9ccb4bdb0a7efc6e5cc031356f7998f660f196e9f85a45dc0b2071cbe30d0c5496f07c68835b2ad18e1b50f922c12139dbb72ebcee18bc1a5a435b02d861e7350036a93056ae266d172a7432435c82852e74b9bcdda916003aa03dda731051c240f81a9bc709b0dee28cbd27752a0d5b2add29747c1b82d0bc7aaa9cc14d41fd6a5b9466677df6c7bcb69c110c2c220e39919f63c974d4a006e7237cc5c0c3005864a6f57996a843253801ac5ac8d71701c2a335e8323c1b75b219f4d05f4ae26d69dd442adfee03e25547a53c95251bc6c289cddd88f1f2a474c84d1ec059b4c4f439fd0f5978efedb79b736975bb6a52096018f4e9b078a1dedc50c080504bac1a899cf741f381f520f8ae06e00b0420c59998e31dc8191a694c32a577b12bef529ab6deaa0174b58349f852b67d69ad947549aaa41fdd542b18e29fbd125ad1f0183873115264ebdd26ecee15a38d27b3b856ffdb0b124658e674e7d1b18ea53e756e82923057612a410613fea5dfd0f722fc099fede9290914c40cfff2de3efa30f3e1900f55062ce411abb572ddee6fcd346dfb4b061f8984f9903d2c2d40477f1bbefbc218f451035a0f041f1123aa4dbd38a7c84dccfb1423e4d5da182d3539cf3c9e94f43553c0da786762d5c0dd1135d9dcc9a525f06157be4fa3011a4d7ba303213eb352489301fc9b34fd5f12c3314b63b4e76bbb8a3f88d2b8a670081a9db137688d6bc6c662009bbee3cace7568ca4e6f0af4c6a7c69a899fa4f3fe8a6cce270468432831d6836a348ff767577c611c083cbf2f466bd7c18a2b3666afefed49a450087f903b5e0ada2c98abd2755e9e7c9e0b91c34c4f252c4e8a8514d58d0ed63391cabff9cc99c9c15ff1f754b56a394cb6f3e4ef84096a27a0c019663f48dac9b0e863650f2e1efcd6b4452860f9c821e1a3d79897fa9d6c6618be4c95517c42198bf77fbbd7817188161ec98fca697494f995301878752f1c17f357aa20902d66994c9b298ea703a39d556712fe1869ccbeb3cde66d1ce00f8a0abdf8140da477262a9fa546a9f92198f3e1a1f2e92418e5e621a7ef609f552334b76631506baa4c540dbede5a6a6cdfa4c14088d1fb86a2571d896ffcdcf4e80384b0eb5f4f0b2321edeb553cefca4dde2eb389977adb25f8c7ac1d8cd2abae1e466fa9b43de66d702e7d3bff0c6c30e0896cbd1ae9a9b3a2aed536ef4ec0bdfa690cfdfec0fa66a2217e56d0d2352c218a4a2b4f96a8107ee8cb18870a332fbf6cb31f2308dd7f0431058c34680394bdd1f3486b55754963c3066b024c08992a25688b2dec96545d36db8234574924e88f1c196af776a9dec302b8573865608b0daca80e25c44029fde815f543ef0d1f9bff0636a30cf72d62f4829e5dc6690c7c4d0a566360328bd853a14d6cfb1f8fe2f5d2a3c18c622bcf1bf9ef8966692886078e2dd025c766639f5750f661517ba7f373a227c12bf0c920bc4dee67595f055eb7d8355b9b7a6b8ff4fc7014336a5e10e1790a1d1db9f86694836d8440c94fe0439841b01daedbb9bb33eb7dbb51cfb315a15d8517fb6f4877148b3c5a92e543b6d28fbc831638c53ee644d480710f55fd033a3ac32fa97f87e40a1e97b7f299a173856e51cc990ff49b95ac80da5b623cffea28807c862837920e0ef79377e6860bf6f4392738e91b1603b1750b060c8772939565c6bdcfe9077ca153511ab28bba7f29ebbbc19c9f393f48270dc81ba68d5e2b23e4dee505d4d30e96dfe1f1ed02384765ce4e27168f3d58463e7974c807aef7aa897eea9871edcbf451a06fc771c5e28b25592fd2798c2197a1ef599c37d29e6572c5017f333aaff33a7178bda2b093c9c13556b362ad8e9dab37df53e3492925e6e3caa81b7fd07a62274bd3d70e192baf3b273402f76d732e1596de387abd82b0aae69e81e2e1cd46033cf138faa5ef6c632b7f26a213c86a652ae0b4a4e67a73f798a6cdff900cf18828db225481c8031c97fd5cd467ec2b2dead12f3cc66a4314f175bcd75a5debd1728da766ed36939ccce3276d5c615c3a22cda53a17310d7a3606a5b48db3d6e26090d76a138c1e67a27cead6ba6c905afa2fbe929b125ca3c416565c2e6ceac6b60724d02350176fc97718d1101673d01a6336d6e38c9f8b52714cc2524213d74c94b2ff7eed3851af1be683f11ecea6e05fe9c36789f4915c659bacb8120c4c32daa726639506c5b0cd23c8921669d0fae9010716e7d862e42df848e79f25018bbc2c7e73b5063ba7059f8d74a87bf57eb3b8a9e7ea31d195a54bddb6ba1b8e979f54ba29988fe93eec1607da50f198f4c328245c60d6c34140117c1861247a040e39c4eb9d582bb060a2884f4e66750a79d516382e9c644d6c26ebebc06fb62c817f73b0cb0e0ddd62776592bd4ade03c46855848cb19ccac8a747b6c14c701256e591e51f1935289def9756212dc0fa3ca265ed7997b45be745475004bf1b9fe68a674259580f8c86e64fa8fa0d01fa1e4bb239c492632727a5061ee65d8f21d2663909d3c6d21b8140bf121642c12839e6e12f8763afefd1badf81e14094f6861049d43c85847e9dfa4509600a61808bb76832cd4e70142c42b1781d3a0e39d9ed7662aa850d904811cb82fe9d68cc2cd02c1d42041990c958176d39ea82204fd06e6bc61ec2340f823f0e778c55ad40c2520985e1953509de311e6fa26e6eba209247f86ee5c57a1029a52e293d85e9d3b6f83d47eeff6778f21aaaaceff014f13a54befde39a6b7c9adadda285a8ebc9863e8a80086e59285536f0ab3834f88523a4adb697a5e0982c0f7e68af6e223c2a8343c0ad277c64c5c644561b46c59e126f3cb8a9d413257814def7d94abcc7e1d28423cf62407b58f174775fe98e8d4da8908c2420ab92fbe039c4fdf99623b313357faffbc36ac92d198e8ae29ed22ed29d326874d2ba448c162673b5897b645e62478d17d0574d0952599518abab3e46f8af2ce112f3240207fee34a7e5cb75e4da310bafb015adc297f57009f1ecd3915a98b9b5eb726a2030d8c99a592eb272b4100e792302f9339c39ed7c7d62718c96b959b7b14b35ea2d45edf1ea041a8124c5cc0735e53efdd2b2e8b4e9afceff953bc37139d87c645d8672c9d0a2e176df916d14b492a0b07d1f726409e69bcec0f8355ad6d79be2ec8e9559f9afcf48d688360d67e062f2e0922065437e4540042643568f448ecb38342d85cea515e6ce65ce00ce347c0a47267ebe8eeccdd4972a4707f3c5500114db3efc20d40322fe9c617159f31e497b0e9e6850a590dbaa8431b4e838fe9a70ee93c583e6c0763a6bdd9d330beb5c3c8f2b940b83462a8178233f0be533c20120edfca154417df3c3d1b3238e88fe8a0d71438f06631b85a894bc2c1215cc63d146682145dd07d9842e57286571efbb7e69126b6e00f96430baae0bf72ff9fb7ede072f32826744f4064884a43d9259fb0c9b8e05377c680327fac47a0048434374e5a365b12d26c988a45e3806be909382d234515506990b7145fbba2b4b9094715c7c455297d7d6b1c22f57b1d4d645e5f6324b12d5c05fbd6920182e97acc63e6cc001451d8753495f998a01d4d06f0043b78ed62f35ae13b52e17ccdc8e601fd3333867a4addc1eb4dbbec70793892fa7081291ebb55006bee9a2005849453b37e8c0dc77555281645a9d084b3d861c99278ec93b2a8eaed4d52ae31dff6cb7d81de834a3e3016b157759cbcf679df0d59d8b49c679bb2478ab6cb2460c283287f8bf44afbf8adfe53f86f1a76a5a713af8dc6cddf73fdd4fe0a038b0fd2792ad7f1120597647b5f456a4d2fd9ef71d79b0954cc3ee5a5d558b7a80ef937b57791b2e086e0f9358ea1012ad2e2410c2e8a8c19c3cfda8761dcf11f5329ac570d2ba7a0a34e60ed91f912699d551bea72a9110d5fbc8afcc54649a9896e18df2ae8cb55b532293ff06bb993c682295bf79e4505a7723f7846880d4cf51ad04f265ec6c1990746bb28deb667e5cd434488dc15a1b22748e8724e13c58e72be6288885db914c9c3fac41214975936bc75b1b080e1e40d8b489053e2422ba48af9ce415f9c28a2a8206429874c1b6cb4255be051b9f013b4e928a4d7ebd428d221605f92bb88d64a2f417dd85b1c154255dda2e074e6869138523b8331f261c128980ebc3cf6199236ee3b3b4c4c9b8168ba2de84c57ae39bff670fc2c09a6f28ddabcf02763f0990501ae20a5678ceba577bad7453a7b6e77d2018b29b4533520faaaaba128fd3c467b5562f6363aadfbdfd21deaac5c36d36cb1442816dd62cc9930cd2edd21a8e479b79d949a57de00413d6d834c7560f2621984f0ca548dc203817262aa60686a741ef362cbba4013d2aaaee0844b844f0c481becd807c6a3a0033b3e8652a903626b72ff83079b0e443d9bcb7db677d4707e9ee033a5a2a4e09f9a7aedb3b32498895262017be921e39156b08629a49d378c1ad16b10d891ca1cb31910d9e1e093c7ea4c8a456344770a4825b1367d782dc8bd9a17a20fc6d84530814a6378881d6e63983771ffe86246f8570df2a0808191c65f051b3e77f9ad92858e90c80edd4f838e603e1877aec24cf4a1d309b39878f3b6a3c58b066cccb78685baaf1e3781bcec2521f9cd5860fb5dae810c9c3d8417905fff80de3e572cc6920cd2cb8dc0e0877b81b6b8af6b4c3142fa9afb404516de310cc9777d85c52898cdcd319010cc506b3c3746fa7a43c2f59f4545f15c253464342cf2a85fd28ff1774688e72361337715f83777d53e887ce89d58a5be3e7f09c4779281f2c0246a65951d8eb96a11ee198834e575efa8ffbfc7e123920a725aaac51cbd238c94446edf751211508017284dfb8720dc5077a73961418132d4dc0572c5fc91f081cae5e5e2848aefa18b0ab97003eb1552bb6d9bc55dc8f3ff05a19bc13931465d50db0baa6a2058e8eb9718cce408348f865421d94d4e42a80d100606aac3a15c731e9589895f8e9d9707bfa321a347f1f8198ef27a4e8dafb679bd6305ad7045f67dc6989feb37453c2e1a2e69e8a41ccf6bd6aca780700e6c020903949d03d373b9dc84a9ecc6015d502a0838e36ae616f253aad0fde65864bc391ef736a6b522beaa6bb72de5618237d6ecfb2ffd1499b71ffc04d3ddda9f1578bbdbcea1309d2cdf39f1c5e9beaea8a21a2dbd315f589a321b6381da9384658294c4852711cc3d79dfdba6df5e1e5a39b997e0fb82b836296a572e92fac9de0f3c0f84766370c10cdb4c1bc010aa884b1e86479d30e9a94a19c24cf736b776895c551efa9b145f712ca47fe7071e72efa0f8ebbadd299b50c72c8c8568e1a96db689c11969e65e210e8461171a7911f338708fd49671788005032132b45b65d95ab47ac3367e19fa227e680384e77b9bab625ab627c0159a89842c561ad6ff910bfa464c6f4ff1b4d7c06dbc405b7e60a628dc43474830a6fd785ad95692eb4fad9938ce2006026f18bfb6c0178d8ed74c68f9709cc10e2c02109bb754f64971f5aee55381f72fe315044b95caee39b76fcbcc6a47849063d1f0ff5856d4420890e5e68cbe2fcbe15f4e6b31a88b842c5d8b9ca9a77cb873046da66f090978643b35a54d31ef35896e5355f840f99956a14325e8fdf1c91b6e1fe3b4f4e737638ea09a9135dbe2a0e786c161616b774e331220f48e4620aabf686834ee6868e3925052c33ef04eb8e47f2aa4ac4f5b4ffc96edf1769517df6909bccaee73f3484bd02290d593e38c11e2b4a9663437de85d850b48957f3cbea5cc4326aea0b78289201f4f8dd92a31afb65b2f67e3bc70d6cf9fde6870320d10662b9b07e36ad85bd93b468ecdcab55c476de504444b244b64111c781ad0825ab5757af6a62e6072e560f022130247966a31ef5a9a0915a5300f365e29f2eab824776e67a6a690a10e23982e5019ff5be7575cfd1a8a14dcecbfcbeb5eea75ade4c59e01b5205627df06e886b80dbd3d3b94967b3ee165149c7e1636f4f51154fd195203b279078110b89e5a39550cf5148ac79a42378546329a8bd6dd84761794592571bc64cb7bdc7eccd0aaea5f1794526434fadc0ff96bad622c92f6e2d951fb2b4fd8058fce2497271989f5bcc9a98bae417e4598a98a2f958614b3cb9b5e7a7c59c3505791e6ce5ef948fd195ab85c31fee812519965450d5b0b471fcd81911378e2711cd42f16ab9e38dca7cac51b2db5421c8833d5a891d4bd2103fce5096a95e8372bc8adcbca7b3ff82e6d665e88c14dd3b29da9aa7292b6addc7234754ba1f72b5d49e5cc5edd854a3d9a57b5505d4d596826b65ea62a42fb4b0b50bd932105f5a71d1a19105237eaee23645ff0e121bab6635c5c045a159adfd0f883004b09e152cc8feca5837c02baacb3bac4878adadb3ddad0853a50224c3076daa9fb96f8b3b48ad4648f2a21006c5532732932e10c5d58fccebfa80e6226a6749ddb8a17de0bbf28675156e2b57161ae4ac594ef58d43f7f221edb64fb3b9723d63b320b26af9875c1321a228fffe0b1db31bed3ac7501028bf5f7c0163a67363e8421b74559a4c32c85521235ca5e2ff2b2015bcf9d0210e3f02564a22362e8561eed487f5d482574146d0412ca635f5a684096f49184f9181b8131cab661b2dfeacac3c7df85a9c7dafd2a50901d3053f80e1cf17a113de67c2b1abd79b924adeff4831558ce167fb16fc81615bfa1764fd40944f75c9f730671e1cf7d05385fa0d0526dcecebb6fd7c5f695a7d1cbf522d594be07a6b53f13b8e5c7cd5b5b30daa0be8217685381f3d4872c036a74087c480c139089cd0b78d73cbdca8819771603c9ff49765de53a0b6d114e0fe626e4ae1bb43021e3075a876c1ebb1d5402d27e93090cc076a194fbb4ecafa69d5396a96e469784f73487ad758bd0591494ff7771179d7efdbd2e74b51a229eb45d929d5778707af1184eceacb3ad0bba905fe9fa9f53ce1273e4dc85644945c31833df1e571b93960c23c9c53d1d9caa80262e340adaf76bae26187e6f3559d2915849a81b9af8a3539d099e90b13b26317d942d3f4876a407e32aa244e00383800485cfb1ff224f039dddfdb668d9dee3b5c96162f63ad6efd30f0e44f03e8652a31b3d8296b927fe466959ec3c2e2b34635d05b50eb2fd9330729b87153962ec2dc3d833400fadcc708570a804e2a4da717604e6a6f53424b7b2fc6b081252ea91ec9b2a277a4124f208b71fd12026ce01c4e908cac440b7454fb532904388fba637d4ca45f9cf8669bb5d8e11c8cfe19a623601688b7f6fe6d92150fec951b80ffa2b6fb7b02a4bd995ea5e1376c21e94eac66082e50a42fb236a843967b0a79da5b6ce9b85b6b77bf73bef2eb2bf3734728cd2b010548668dccd48c9ee5b6ee16532c5c4526b8a26286b9509794d77cb9dfa4af98493f8a78535dd8a7cfa99e1cf1cda62c19ce026bd3f61813b796b95cced538c543b025a16e617526c118669fc5e2e34c139989a192fd130c653c74ada9641ac2fc24ffac25bd04516d5133c385bdb18427864ac284f7ea0e352ae1947733a6a9c0086c1b005527601d052dc0cfdd840a62c142b6d3f08447c3932e286b6724040523522630dec4bf960873efb513931cf1d883db529a9d802295dccc62385b92a7b3907793a52d502f83b1aeaa0414724811d50edff726a4d30a5fbb8351299952b4b3326ccc0094924d112a1181386c36955067e46e12e88412756c32ffe2a58a788cf8da162ca28e3114e8dcd0693ba16e3a43dbde04bbbfc3d105c78861bd96e7d5fc985f48c212babd94a946658ebb857e664cffc48ec77d3a3648ec28c780f551c6f9202741248bafbee1f1c883d88446218c670e7f7bea6cc9aa0b2c3207d5366766f2e4d404898558f71389541f06a6b8b0a000296b1c4ef6f26c0903ac2d14155c67fcd2a4fd90c943bf74d7fc11e1e1db9b0d769fd9ebc4e32f93bdc1e6759694f464e6683a3cd8ed16c13b56c81fe54042b0ffb722632be1da8b5ebb31a8ee042ea75f36900facc3e143c241d8c50023ebea7e0dfad52cbbd8dc5d061ff1af2c3ac0efce6294298319c92274833ee5d9dd72edd8194dd97b7abd4febefb93cb2bcbefb86a83376b79321fd05a7fa2001b9b0565e3bc0491d29074c59adda35365e31bb1cb1e2e0eb70a1c46f86e7d583742ae1d60df4b6451fb18170528e586b635c5aaa6991e2d07d9d3a80128f3d38335c081cb19cc609a81a13cddbbb44fd135063072fa35026189f80bacc32cd6efb71c039a8ab77c484db5dcfc7ebb139511c5e6c5644424be529341536acd300ab5510cddd1d36471aef6279eca02a01c0c4c41b46a8180f2c4d140a8c7adff686bbe8288352a1ffcd6c2b4c875e00a95b3732fd259efde7ce9fe131eedbb11f366576f1f68ac0ec7ca7f20c3b96bea4af8e199ec8c0b6825092536012791b446d63c7910a959cc14ca95b7e1f81c09af48ebb3e40fd52e4c088664cb51386dcbe90d3a280a716f1b3cf5585c3c82a14a8273b4c22c27536093d30fcbd0728eeeb7d9be80a21f0f2686804aec87661e99dc6fe01590aef5e810a6604f027c471fa8a46c02b451fa65945a60778fb1dd24d3bdc05c915456f4fb8c2bfeef5a4b9356ba231f0020214632265ed9a4ca6e68bfcae39be9ce60199f10c6b55361a9a2708840c3c4855c7f25abd6e6187f1f5e9bc246fa877bcb56452e6db867376cc5667cad6eeb84ded5b7ba8288150376349c46a06f8baaee57ab0e1bd6f6eaa1df9abe263b30cb3c7e1b744fdb8646bbef3bc31dd4560ee8e1a9a10fac44e1b15482b0fc273f22af07d6bbea8670fe5b3f593fab1b56870b4a5d8901ff0b6e7305599805103b919b1cade4c56e6dffe7da21b6ff4869f97d34b898f8c60b3ff9da28257b227c869a60a10a556e512342175b4f58fa4a8101fd2835f07d7e80e6f921bfd61397da7f1b5f0fc5f2cc976c1025e711fc92d707c2a91d5f9aa12a38f046e472e5c5b448b3ebe477003656999ebe7555f4068feceaa64cd55f22c275ba66ec38e52002b66f5a0d0c4ee8b94cdaa9a6c746f2076cac50604be7c230cb5d867d3757cab111deb05ed1c9144bbe2f1990263331820e2964ab0827e8b9aaa2797e74b1fc6a00835510ccd01c3b07d8d24df72fa90054258f20b764c3c24712796abf09ede4c66dd53392981a1e9516cf98253c9f9fc578e1806b1076386731ef151529988961dc0266b86ac16773ecea6bff64eb33c93d4aebb2d28c10cc7a83af43b0c9704c62a63641b1be5def597f4f15bf6478fe59e352eefa4dcdff2970371b1ee8246e3546eb77f4764f2f5a7a09e3d2403ac5d696ed30eed4827e1ee1e14db2f8bb972fc993709f0f63879b0bf45dc158e29c74dbfda0f0946b4287558677ef5a2a3dea05bb7e687980698a6e5629c31f0381957c529f2bc91d761358b3b1672e9474d2fc7e89c76dfacb2bf8f36e9f149602ad2d433e332eba93d630a5ea128188db80ebcc55c006e86d71eff8aa8c1e38150971465cad99c5123940a7a5c9be5531765e5d4368b02ef4ee9f173dd15f94e653edd0b208a033c6dec37298a9121efdaacfe4e896b6362f12e88ce77d482c442814439fde1caea88c0d39eb3c2573e018a8eba3779adf9c8641e63c1009c7f57652a706ae7aba373d8feea4bd4c2a4e3593a40ea159535c0b229754a338e69f163a8b187defdc84240f1a0e9c2ad63c54333b483c0c040c70c0c0eedf5e77a1e70240ba14902d79a855057d18b378f986fa90a810c1256988b53a04cf5b9a74e0ab5bf097ca295806e2162666590b842ad810fd374345b7a9cdfb6d92b5a49949574e549c83dd43219c05130ed98e356d428a0308a565cc7185a3dac1ea3df615da7eff637f1f62f6e72dae294fa9d0c499719431182d78e5f9784c3ca6196457d5eb3def0fdaa932759517a976f0f0e0ac04241c03aec895a22c6ddc1e37bebd1537fd45a1caee68e5dd59c551e4b6ad453ca17b92040637f79c3e74ccbca8c14d6c2a9c989157b95e0ac9c617f9dc9cf2589525b3de0f21ce12e9976a0ac6568d59eb5fc7d824d9b2855328aeb3f4468880019e3ba1c9c352ad47506118da5ce64b5e91f4d5f81baacbdfac3eb44f85657893cafc8c9669b93817d73aca887fae0cd14e2b87372a6e8b5464faae891c5212d102e58293177c4359aa2f6f92d2fa6e16254f36aab29609546cdf019731be11e554ba3de3390a545ed556fda788f92d93976895e170a30ad743a04b0ee04aa9d3ce543406f69de31bcdb4b42e4eaa1578a44a085e818dfda5940ef88d3d086a79d859baf5d18998f088a44510f095656f82192124f8030a13b520da9186363156f70cde1b65267f2068afdc22d2ba9e4f2116858c55b58b1ab47cd424b520869fd95e8ed87cc0c80abb57efa6ff078eb3bf33043adaa91c85efe3c3dfc3176d8535492005499491cd5f1baa9000d31afc7509c87c5cb5114721f4de152b64d43f68c3e5c83bee1b9328333a23bb3a766a65193f93d6dd40f23fbb3adaf2b08e1cb009b0881d1990d2c09ab6c5f87630daaf59c4ddde9d5c1d07f4f2905eeff24e9cc7ae37cf7c093ca3b56107e0f1bbbe8d3fd82bd4f452881d95b211b8654f3ea235380ebdec954dbc90e4436823a19cf134d8a649a2bd1a27144a2421f4ea1a0af3dea00cda7bc58aeef45ffceb1b2e6d81e2113a136771d90860a0cf870990b2e2337982ffb3d92b9fd379305e423a4836313c23e76ee21e3aa866a68f3697dc45115419746bda835f942175408fc3e09fb3ccb0dd2ca0196995290522814d02df4f578bc800774cc6b80610a3a7c53a7d85378a41eb246e8bca98990ff7f60c32d64c9c372dc224538a224e25e1ea7c85cb16c438500615f6ae3e5002c9cf343ada3d99a1327b38ce723e643c0fbdb534edb614480c3b9f9a75782f3976ae5db2ec2ce995a12cdd7e184d647912a15bbe7931088062bfb40131a2b30ce1deb0bd374822f83ae2ca4a3aa6f01563c8e96a180d4b2cddf65130418091f882a00004f277d1c11f34f6bc0ba6b6f734c0dcec8c3c22e740818b2efa26da1758785597312f7e6cf9f08891774aaa59a6af24aaaba816a23145edb362e56b73726b8267031210d100774dfafa27f8300540cef40fad748eb0fbc67dbf7fa84767eb57763e3db1c76cfee37ebd217d777b60e41b8f9fbd47565ae53fa20b65cd143c1ed8b05dc8b3379095c7c73a60e0d6dd3206c67f1e6dabfba3e446317328f0471376d686f954206ebc24a2ac7988351fac9e1b9e8cdf69d050605f7b41ea6ae13e47a89364e7a0dfbe4a03ff35c9e075759ae75685237b7eec213e45b934c60a98c84d3979c353723947133802933b82e98413e719e7930673c1b419cb3291583056c972980e8d538e31b42da9b4d2e4832a7761e5a4ed6fb47b94a506ce11e57c079d09668f15d06be6d0067d89a7921e03e0b9c5c5f8c107babcc24649170032356c8e9fed99db46287c2a945a2fab1e2872765a27be6280ee038418a3294d5d5274710d2bf2d3cd744fc7558e073d0ef9eb351f15ba494ce7f88f8433a019b7d4bdb131e309eaef129eb7e9cfedd19965c36ef3b303add486d2bceeacc0f3f8c0a409a02c2d8c380dd209257b87d9c37a767c75057efd4a58fd2c352e4f3d61c616a9268899e7ba5c66b78eae161dd52022d11f3cede7701be6d360a6871106a5cab04869f7c7ead40b711d40fd27247d47d2e3b544452f2bc57d0a2874ac672d37cec4d8f75a4ede71ea4e9b64ddacdb0f9a1e404e554cfc44bc92894d48cc0dda78024a06cc72330ae0260ae83a970fccd5ecdf0e118812222ffb7ebf10e3247fe6653a0d7dd063b6ef2619d06e2ed20245490bdd2591b25a487c89899d32cad3b732aa26885079a9df30965ca0b945b36acf5b964f45f8bd822354884d0304ce28499a70dc20fab89c442a2b131cf6fe33266d4a31c0b8d30faf9376665f632f8f71ec4e25e5637e006b9aaab385fe1aecd903b4dae19dec6ea0d93b467d25e7b25d56e4566edda8ff4bf572d27d67686d07282bdad6e4f8540978dc07aeb98f9479dd47bcbb3890631a0f33057212c16365a5a81ea8bae8f7a89db7a6c302ee81a3a8da20747d1526d288efdffd9eb10c2acf5f6b9b9f8fb36862c83f6f16d1b28cbac4f7ae5272705633fd03f33498514e6760ff32dcef1a85f9c37a582243751f30591c103006518ae25c7a6d0112f4a0d69f546172a5ee65583f14c1c74d787359d9c7419f53604d9fa3929989e6105789f1f255752820005ba586623296f3aa9c3a1e0d18cfec40b23a52a9d11f2021f327ce6da0087dc9819bd19e67cfd0fea8d8fbe5442d50eed5ce97cd3ebd56ed3813a2bac3668d05fda746ec2c8dad991471dec0b7d30a4344eb539bc700de052d2cfc0fcd47ca992d5b3f28688f45f2df15e9b293efdfe008b6336d342234a177f2c3dfb5c8b4781090f99490996532d658f64e0239b0010a2163e7cce3016932b30d8dbb0d8135b19b261c6a9359a58e8166a9f09616db506bc86d0184965e3640f533a4af4eb26bf6afbca890006844d63eb8e528c50412b92d87c4b8dbe49c94f7534f402c742ce548997c05a709b3a48312a636a0dd0e2c9a09849441506caa798c63e41a331866dbcaca449807d39c450debbc852d928fb7b2931255e53df4496bbc52d064618ecb642bd55e54d8f9b8e817559476febe42ee9ff65c6e9d98d778b01972a94e7534f6c5fca8913e3cfe3af718364353252d4148d9838ae6f69e5c59cbe5e05614bc6960b30142baefe9e76490199decc46eca160ad85b9d96ddf20b2ca546018e00d9a80c5d86045da7bc7f6349e6c388f738040f907fc0c4697294acdb7f7c01411bfc02f72dd236d99225cbf2a4344a6fa2d11d46a2866a54add624335c0a060c8d57c167a0fa373493c2d5a95fb2ba3d4ba5e6dff79050e502bba74c0c75543d146d9f80be2ffe9de44f4a2a2969951fd806aea6aaeb9ef0278de9cfb6c22be36b18ac5da8691ae05213bb062eaa43b0100adff51dfc0e712bfa07fc59f6e30f50756ee209413cef7604e1d815911c5ab5383ecceab74a7911a0d1df35b4d386411101f8a9e7b13853144f45cc23758aa943bb1d3db453d9fcd34bb609a1f028e1b00e50eea562ab613ebb6dc9cfb22bafc859d60ad6c836dc93ed17347ade25dcbdd394b1c0a46f1e9615f2d6ae234b53eb9304d626a298faf80f5e79f72af4b873526ebdc672be9a55dd7b4b7275febdc40edb307c1c719c73722d95d5d01941f8581d3e4de14c31232c2cdcfc152f6dc6152a5f27dd6944bef446d59dd462323796803af2a4331ecfb43a30b468a80f5059f31267c1687cbe50315059c6c106f4b0bbf01916ea0978cbe1501e7068e438526a7bfd0dc444565a0b00971547f83d9c8ffdbe773c2f21f7c68c877efcba7ed7c5e9af8af86e63bb95e547be5a2ae3b88c88c4154725ff9e3b51f91a2d77b756bcb9fb10979cee83d2866e18afce6e67e689e6eef9ae92a82d748f16a7012a3eb99ff7cf457997c07babea4b06f520a5d3e9e0d37f5fe96a25b3103e3cd6fd5623b86f09e4fb58976b61284b1d823d54e3449af933fc86fc52d71f7b293c5b416a1826ab595044adb356e11e9e77f2ff4bbc5f957e580c1670f4cf59c388e778d06c7c74079d609f2ba8f0ae6ef4474057cd3f0c7b568b4621cc411e2257d151fbdc19ad887ba65bacb586a4327edcf3c3a2181767192886f59f45b50857c027c9a709b663041231a650d48a9783ff339656951573833990e9c64b03c67733c2173dc7fc98b39cd1a2b4ccd49351f54d424c79a11cd146fd870e115b8949d9d486ac043be6306aeeda1ff3a87c66c8e133a5c7073b5333fc07b8f50974cae166c04004967b7f93d73d4bf9928342aba412142dcfefd1385731df822b6939a8ca894c313860a6c66d8c3ff85d7eecc88b7c84d1e15e3276865312d4ff3f86161ca4745a66485701a1c4d26c7aaa788de313f27c1c3118bddb14d8c3e8a873c284247339b7821f9b707fedc6cd76e1061b38f5b11c9c047a46dad36c8a5d3a877d0a161ec7048e09944f680b992af4aa220310ac2e5a7a0c78f7936e11448d01677f5973b508318466609177d6f2a22ba3354e6184b1404317a94419c53597316386dab74214eadabf9cced945a763d45333e5cb702d057bb6d9e07846d6a9c6755c6fc5713533ed4013829c4da717fad942af0c5039294113e9d9202545a10232e7f4efa3aff8bda4d67eb7bbe2fa1c1121eba58454e8bb99c4e7808d805363fb0a3bf2f69d4eab86eaea93de9588155512075ddb21aad4530512334cee73ffb5ef1f3d7bea2203f83f8eaa958064861d2fa0cce2f95a8cebfab6dc187e30f6331bd585b75729fc3d9a6182f46270915b7a55350177aa8e4a6386742235f028b2cf467ceb5b81efad3ae35e146ee72ade5c4b1d9fa3c9345c7df0dfb88272a4cb944b74951d16d95c2a088ec789f41f8f0f9bd9d744be0aa1855fc8b9e13f822ff1470c64d7a544df9eca5bb89126376c96a3197e23438eb8ed0d5e0e0d7e2d3ea15ca07ef61de8ca80a2900162b6a99790a5d0dd8d8a0d2efde3c6e30cf3a86923de2199d2ee34c5f7592d4975bf95abf6603fdd84c591ef716c03738e0ef4ff6f89ad2913ae440fa6c5a161fef60c6b23494f70ff006ca6ea78708767b3bca64700c2171347d50075fd89565116114231c523ca46eefa74771ca433a53085b4d7007c330062ee39d1f468f9d35afb391eeebaec2e768c81111561bcb82640117a92d00fb2262336b80b963c7bf2a0277eabcc58f8d7e1d6b33929329736233699ab8dcddbe9af8b16f048619962d7845259344ebedea84a097694f6c3057520aa6fb860b5624ecf687e9cb33bf9d96212ca054641d4cdaeffb3c6f74c8f67874475ccaf35ebe44a7fd664a55e207f22232b69409d6e3789e0aef5b5fc5459feb08a03875ca6f55d75a5255a62256512082bb2ee07488430975eaa8a86cb5d0e1d54088f97cb57a02767037c8ce217f0b9ddacded90528d1292dae5287270b9e1ddb8753006c350193d2ebb8fe1c2f7b9a103fecba7a8164c0220537a4345b88a6e6909c7c50ef8d7e1694d1ff484474e6c3a0e6a58d5c60de81dc8bf780bbc5f033602c1673db46de0a299955009937b5ce686db9273fd4bbd77c3c95406a0d2b90b45e2ba7b17f3d32742a301684d6c7b94689041dc96199dd7789d98c001a5a968dd15381b5b9676981195931c812d5a7a150313e78047d81e9989a0e95512d00c21e26e1d4c0064c9fd14d33bbaa8615d23049543f9dca4cb43d067cad208ac485ec121e305938077f0d9602f09b4cd9e39c824fe014233d91a5faa7fa3440b8a446ddfa5714c0157a979ad2fba1056c41b4da7a81634648c3cfb158ca10490a25e260b96d3f9c8c857e7220e781f2cb4201b76ef0c172691e25b70df7c79b811c2125d6e4aaa0189d980f34d8b8de673aa3e838d513da3f934ff85bb14b7e49f9ed4fa06a2f39a3cb959cba50a9a16ce8361c1339b4b501f063f218d30b0f27cca2ac2b66ae53dd7b972c6d7142d2be0923aa0e527cdb3de253657ea56ed44a0a20663d632e6d6c7633ac2ed80015bb4ffd931c9390da9a87c3a60f334f9cf7b6534b6a9f80b30da450e156857b6f45f2edd7832c29e60e60cb7040c6f863145da5912deb606ca1c76216a89fcc485233b7c4dbd6f8315524c6f7d2ac7d6a0bb395457f12a791f571a9b4b15e3afddbb661e21b5cf65fb0bf37e91fb768c8bcf98cb72aa1b0bd21fd8cbd0df7934a9886052a99e8d9eb9f68c31300edfed291905facd2e6b4c5d8a2297a6f654480034c3bde90815556d4b38af883ad7799d0adcbce05ee0164aa09e1635c3870aaec5f612858f33d913515b0dab5ae95d58410ae03c04cadd73d736b12ef65b21b828cefb41b59d9ef2f838ddc951885dff8453fe24894b8135d154ca63ceb3a1e9a2bedfcbc50f9fc220dbc76024ed5bda18cf088e2d2092faee12be84aad64207e7539d78eba2a89a1feffd794642b05b72c81f3a494524b3dd018b3a8ae1514a9792da5b13b8cb3167dfd946dca2262b313354776dfa2d2fd64829cf8df4c020c79f0885cd2c5cd4f20fe91f2aed6b44d09b9a6f6b7470961cfd11653fee84a65d86188a97a757a90f33892aeba46d02d9f0bd5d4658ecd8a1e2d3a8aa1a073af2cfd8887bfb2932dabd1d51d07f94f62da9d2fd0d2f1a207adacd8b4cd3279f0337b2f0ebfb3cb0bcba0c688ad7a8df98810c16b59377dfe8e4ff2b1004723a433baeba1686b2d750748ce8c9b3c94ffb07144524c698d3c90f09200776326b403fcabdddbc353870c4e5e83e8551d62ec632e1965e425970367b0de8bfe17f06d418f68717431b757397fa3a83fa5452866a1c0d8dae2095661bced14e135b0524b4a3b5516cee1b9e6da608f00ce9d37eff2806cae77c9a86b31a6663338842b2f038210417a18621fba875409a57eb1cf19266af46e69c69240c0a47a7cbbdddba49509a2cb2e6cda628825997e221c8e10249082dfb30e8742b893b0701a33ef5a2d45169e2d3c3e1c29206cbbd105e37d2877728d582257bcefdbab2e9bf39d811f3e9e4298a5810c59084c240a6083a924ca76805a39e5b2c7944bf7c812d5b9ef7a4d16bf71deb1fdccc5583ba07e5d8d81d6021b8930d82f666e93de8cb82b2b1ed1c9807acd408a5e868a80c32eea6882d7bbb2f07360f487d51d88cb334b576d7a826c667bf10092d3297c6f0254042686fbc61813e9524a55d67a850a9721573c0ea24022ee75d344fd2ff7212c9e98222c4e87c1f21e8f3fc0552da8cf5631e40ead704017f10984a3533ff019be0929c6e7fde15ae9a1c427b3b54e983cac16f6192370c5952492ceb081f20127d6869a58107c31d6fe55982064b6eb37a57043ef03c976ab2fa8e43c5887494b61585eb9d461690cfc9db84716d764575b254bc3559b7f53f24d695893e14f3223b96d9245f1ff27f95568b028406e490702314c5029a579a745c505a51493af908642f1c38aa151b37806ad1d1caa8ed16e05d21c1ef8a30369112f4d72028548e4e62af311445f4d39ddd29c2d783d89e3cbe8b04151b219d6a5bd494a1e19cfe214696ebff6385f26d2b898d1042c8267bef2df70e720729070907df01ba6c0dd0650e77f239745945da9b0274d912a0cbdc0066ec0d968fd165152b48a6cb36a6cb1c0e5d2605617918948f34593ea62edb5297b91b7c7cb0fc4b903459281bba6c05d065ae860e72e9202c2f6fa4c99a81d1651b802e732d37d60c967ff149534d491620690240972d0d5de658ba4c4a6179efb33374d97232749973b1d265155c4f9265479a688b2eab90ba2e93b8dbc9bfcb56b2e83297327750baac82a7ceb592265a2359e44fbaac425ad16512a7a2cb1c695a932e5b2e4597b9922e5fa3194ee2e68eb963e4da9142cae7fa8282466ee31177d95c4b5c3917eaba091204b644a08b04d7e99a09cac911ddc6dc670555ca47e69039604bb43741d0c941ad56b025866ee34c0bb228b035f664677878608b8f1656aa54dff40d6c89da6d9c61281f3b3a395040015ba23563b5c0b2b16aac532a751b63a92f00ad543c78c0961c247c3b3ab106b6dcc6b59eea0cea4db5a9354fdc802d51154510d04a06ae3a4df0f97656604bbc56b0455e01b2c863a71b601b408101cb2d6079cb088de76dd3b5922cf23986853b583e9b30bc46f242e6da8930e40b8cc9b3bbedb56a1ab3ebe68ac0f557f15e2b181c2f7fede41a707cc666b0ec28e10e1096360cc1c564098e6a2f30a60780216c0243d8936f808981e1b33659828bcf145b400cc2091f44f8f1e3c78f1f3f7efcf8f1e3870f1f3e7cf8f8beeffbbeeffbbeeff3e1c3870f1f353798c11ceedf628283edb948d28d1ff359436882b0ada6e10969c0f7228cd957428f428f7ed2493d3c9508c2d276673bdb032eca1738464b09ee64078a61be4123765d631c1ac0d1e2fc02cfd749bb786a6f081168024db935bd0e5d7bdbe158b6b4ad03ce17982e89c81cde4697b8d77c96e348a47b265913a34ba1cb969356cb5e58a66d21114e34777036425292c284a462c5094a0a0b955ffbe3ac85b6ed98e1026f3adaa32b714593286b39ae7280cb5127f6e84c064de6c69464a1e76e54c51e71472787035cce4ea72ee568938c4e9693e5d45aab0caf9586caf25a6badde6b85a97fadb55695d76aaadd6badb5ded75aaa28afb5d67af25a6fa82c5e6bad35e5b5be54d26badb59abc561bea8ad75a6b55f15a0550495e6bad75e4b5d65053bcd65a6bc96b75a9a3d75a6bc55e2b8cfac8a3561d01a8b5d65a5b6a9dafa257eeb5d65a5fd45a6bf5a14bd9ebeb3d00d45aeb4aada1d7babdd67a924d87dac2c50c30a6d20d2f3608a0061718016879010019566458a1a184c59b4106172b2d46aef25177575fa9ac4428dac9f7f3a17c271fc7228507e5448464f2d00a1524936eb591d891efa7fbbe4f4b6195a078483a5436aad809a79e4e586c82a3ab5bd8dcd999dfcf57bff9619de8e2386ed6cc364eedb8db38b356c89abdd5c6a1104f88be6e3b361d9b8dcc9527c94273608c9c386d92722621278f1e785bf9f679049499342ccfb30578fbdc0163bc6f9f336d9aa7d33c9d66cd69da40d1a519c00065264ee959862108c6a80869d344a17e504fa086a4bac482095066f2dcf02c9b1004c65c9d36cdefdbf9be4ffae0ed924797feed12075066febc3c4b1de0ed3207c69c7cbbd4d1a6b9da81b35dd67469c5b7cb1140194a63c3b32401de2e73c09814a036d1d329e824674ef2f4449750ae0065288e009e1b0b2b186302a44d14850a821282faf9ba94a2092843796a786e1f3c304605aa4df4fb723e9d8df4eded0228437f5c9e1b06787bdfc098916fd4e6c0dbaa75ecc09b2506285369603cc728a0803125aa36d5d36975023a0509e9128913a04cc509c0737c02deeab7c71e6daa2854e441014105c19bfcf6a80494a93c11066d798e4be0ed91078c197d7bb46953fdbe78f3a136d15f3c4713e0edb10450a6fe14d1a66aa1a0c10078865ac0db2900652c9a0863bb05ba847dfb0d186357aaed40b4c93a49164ac3333402de3e03ca583811063de4e162bce0ed2fda64a17ce8d2f5ed3260ccfc76af4ba1cbf03c03dede3d4bbcdd0594b17856604c7fbb6d93f54916faedb34bdcb7472863fd7cbb0c9b0edb0e9ea7162717279c28932551c2414953769a28148a27ca64a81b783e69c256ab6ff5ad3e4c3f7fa24c46f3f28329f67d73f5cdd53757345106fbb181e6244d180a75429d50279c2883f108000753ec8442a178a20c8653030fa6d76af5adbed51765301a17fa83e9e98aae3ebaa28932d70f0c9a93345d28d40975429d70a2ccc513001c4c2f7b42a178a2cc85d3c283a95dadbed5b7fa307dfd8932174dbc5ed41f4cedf7d5d557575f5dd14419fb03001a4c2d0a75429d50279c28637968c0c1f67442a12c9e286371a20c3c985aabd5677dd697f1f889329626c2985d971b67eb075fae2e5767e972d34b4f6486a893840c9d8b6ea56bd175591298de854a88c50945bf72b7af321a95158bd52aa3c1f42d4eb415dfcfc9b7e2fb7e307d9792a160289e130cb5024361281e4c7f4db014d809c331c14e29b0d3869d301c4c7f15176985d198ac52ac56180da65719b1d6f733f26d9ff5fd607a162516c985e219b950db85b23a140fa64fa9555e17ce75ba4ed70907d3a38ca8c8ae2e9acc6795b3b2ab8b06d39ff070136799b2df8ff57ddf0f97d59cd88d07a63cda43f1585c87e2c1f4d9b562d20dd51ec5f684f3933dd993d5e1609a850231da6443b258873c4041d88a33d83afdc098e06c934a20b0c5babcf28b025773abda09688ab77e152a4422f996eef28d15acdb661a59a7e53eb7cdc0de583744d6451bdb451d1d6b624dd4116d32dbd6c62036a409a659fa3bd64795822ad56575a0036f33b6776744dcc13ef4defaf6866e11116fdd04b61bedbec0967e76b19b6fc01d63bbd96e8e48e064989b9883a2b3b2633db3b49ee992f53ec9b0f560dfafd9ba5457abb2975d7985b89876ad1e9c04223feb76e36108ee76e3a1bb21b24e88f6ac171131d64dc044069c8d0908d1a5e8935f703fc3aecdd109d88a41e28d34bd344b3f86e5e180902c2137d87af4919a6d14d2ca5fe0bef5aca46197777e746d30dfd708eb224dfdd32cd62d6bc84e4381add360cbb2fad68998fd6359d83643765c7bd6bbd36ec4b64b3327eb22749430a3f0f141c26725cf1a3c63ecc7c7f70e4e585a4a70d99c87db0e14dbcb1ed2c6690fb396c0f5658f36c52021a4201c10a9239780312c904a4099de11614ccba3832c063010b1e70edab61fb6502773ba3423be56195fb427bb196fc50e4293cc812cf33ad70e9ef2c33d44bf6fba46c1ee8e72800bd291375dc26953a84b79eee0fa7a88e77ba7757a7409fbcc9a80311a0e91adcbddf6437c8ec7b619f12d25503fd1411d64491550ecd852a51203973b08ab6e0a5d86aefc691699832346816710ca91a650079ba525c74992fc3d38c7c00dd1aaf6a690f672a7264d9772a7f09c271803779ef8864081e74d505cee54af525d6a215d82aa860d5bc75a8e6b1d1210c9237bc81eedb9c092477b51feb437f3a4c1f33d69da9b52055be6bfc00d215f4407b58e9c72a64b43740735145da28131d6e7a507600cf6ec58867556bf57db8cee271ae8085cee1c3ce76ff07caf807ac89d2c798067779287fca9ff0a8ad4308f9e52c8574828dcb45ae3ccf78d0e6dddce770e8f2ecdcfd71b79a28e58735da92373240fd832658fee1d51462a0161cc4f29e4414840381e3ce712b0653e370bf07c6682032e4b15ee529657c11827604c0f21571787087edd7ee8c7f8eed651b57cc59a9e5148975ec81c393fbd93b879a9923fddb16716eaee6e1cb7383379a0d8b6370dd034b85d7ee89770d4e7d05e8443386b081cb2abddffac7914a45bae9bed8180a3a79c9527c198c6f53160ed645c1f6474e984763beca0017aa794d1257815d05e16584343b8c10ece39e19c73ce3967ad4ce480a6be5e46a5af27496b390ede138b33e9c1cdf88cc1073cf042b7e544977d092184f15167c88e95b8c967d0cacb43634b83198673ca19addd80c1b20230788878d865ecda332983e419a6e0afd78031f5a378513c172ff2106489df4e62a1a65d5eeca32bbaf9783b77332974b3c51b4c691d090506c3ee2e1ef40217430063620d8d3c30cd2e323694127e621879d00944d32507b447bd9f448a2fe0327c7c7c84d90fe4222597e0e81261e0a80361d0e7961a1b8ed7604cc3e078d2fd0d50ae81a8d35e0f1875268c3a325acb71d366ef12416de7b5474fd25472ea537dac77692870bdac1008ae9f9b0e55db76685cebb3185beb2a65ec3206b0ac157613a8bd7acf72a43961cb3400fd4998c0c109670f43af460aa6e03de9431867da83926b11901a20c1cd39e79c93d269436bad95564a29a5147e949e524a29ad95aa000743267276c0883bbf4b9f36270843267280706f11420cc7118e2b5c622ec8323fe77c77f0b3b065dea241bfacc0ccbb38007694214abb296d80f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f400c9ac9431429608c4850cce47ccc75a61c8c40d54386b8d240448863cd71064acb65ad5e080e15f60604c18a2801eed006429c1520438cacd87214140ed01c124245d9e283c6970d068d465a9c29f1554299f1e98e3ba2c6df090cd470b2b552a1442f9d8d1c949026b5a97fb84535f005aa97e3086c51dd852451104b4b256a7093edf4e854130b571c12e52c366b8150ccbe70cc3934c191b61c838ef34024402f4e25c829553d5052c9f5027cffc70bcc4709b3b4740134c039e670c18f03c6db080e7a90410a3f72518a0c9068de7b901053ccf10fcf03c4be0c34798004df1d4c3b38442029e6515663ccb2cc8680e07d014737878963cd8e1590a418767f9030117bd2f47004d317580677902033ccb23f0b38c410e1dba0234f54c019e7b0b04786e300ce0596e20c6459a80a646c93c774fcc73330187e78602cc73fff0c018edfd760134b58fe9b991283d370e6e786e1ebcf4260668ea201b9edb030278ee11d4f0dc2770c1de8f4e8026792359e4613c472702f01cafd0f2a233ef390661798e3d343cc72600f01c7f80fb510968929f64912bcf31272281a30b66e8c712409304b2efab45f4c07d8662805dc07d0a4089f20c5729d0092afd19d034776e9c3c439e01a878be01770beefc9267157d17d034579245ce4d87b60de8b26540b7800e08187cedd0e8b2554097b91fa0ca872eab5c363d74d926a0cbdc8cd36583e5657459c502f1d065bb4397391d7280b03c02baac226d3b9f0fed6ad8692308893961b3ecdaacb52a7b596bb32d1b69c7b0918665f24aefb2f63a66eb653dcff33cefba6ce3393327acb51666d676766636b5dd387301ecd608c206041e90799c344dc0e7dbf1bc1497e24e574d8e9e91f2937293df83808131f5f238c4a01bbde473f6ba659d11d1a45df2d895d85b7139d96da3d1244509c948a494dae852dcf12060600cf6f81823912496c414d124921e633cc9244509c948a457a494d2107df6ac3ddba016ca4ee98e68a3fac00d6083e972ca3a4bbb89edb0b63362e2ec38447076b9d50bab188661180c8661188661db85d50dc3b04b4a29a594524a29a594526627ac8b39b49a1aa9542a95aa1976c22a8ce6799ee7795a289465a16c544324954aa572d484b20ec0960d4018a71bc9826acff2ced9ec9476f124a23d7ba6a56accc0180c5bef0dc01888d3275823b59ab12727300ccbb0437b5dddc4326ba7d6c59a9803cb518361588d542a95b298a66118766d685d10da765fac86590dbb2c76e7afbaf5704cedc4ae2e882e5523081b36c36c86d979e5373fd2337d83757b8b88b887637a3d1f6f0726da931917d343ad2f2024832b39de44d263afb41767ede03cf4893ba28cbc36c200620291603817201c0063a0e4481d6187b20630a55dbc199259cf6c972ccaa1caad55b1c7ac8a29024908749a49793cf98aab28916ef2148f7f974a1e49461effa24ba3c7f8972e718f87d91e8f00195dca1eef03100eb88cbdd1b0d6c6682f0249538b182d204d2dba58d3d9db41c962b1f8098b9f28b1c2240c9950c20767534bb92a97d7fef77ede19fcbaf5d9bdaeddecdbd51ebadb456ee81cf7d11591dc91975c92a7b82537b9294eba265771495f7155bcef8a9fdc3eca8558e539744e8af57be39066b1541e73e46fc9a7749964a158275db696ca235e711dc1d9a758cf320618c57a0765293762162747f9dc68b0f8c9258b9f3c6b2da507163f790e9d7223224e790be9d59093e7d02a19d5fac6212744cc7921502e8b9b726d7b29976294ab83fdc98d43acafb0aee2f64c7bd649d64d6e9f6ee768cf7ac9eddb23b76d7ac76deeb6c86d5427d139cda375ba477bd6ebed9de669effb6d20dd4122d075a933ad3671cffebc4e9fcd0b2d767543cccb524a435ae0668431cd914cc17acc5ae504b6de42a8dc68d077a75a48ab22909496dc51d1253599f54c063491248bf50904d1a6d1a1655905c0317280088025ea2259ac0f00ca742731c345f60cd6c6c1d837ec1af690146c74b68b707d19b787ea7ccff7b447e1ebdbf5eb211b6c2f2fafbdfa006543821596c19badcaadcaad9a9112c8443d95e557234f2f565aa552759d5d71d1aacc86b63203cb9c59e8f9dad6d2479a52dc9241327329ba92ee094bd2c166d93aad6b96ac9bb1cf16cbb6ed1d3ac6611816c22e8285a00a23611876180cc3300cc330ccc54603d3300c13c1ae699bd675d857361ad8d665fb0b371a7dabc93b9f5d8add88e5f5d83fd8b5e235553d730ac1fdd643cb0bad5ec9d3d6658e4ebdf20808c33abd1247deb4b743daf44faf5a80ad2774e418a292d207c6487cc94b7e125fbf1ea18cfc220cebd7153a0e914cbbb61818661cf0b67ddb3691eddc26925d1198f281dff6185dcabec9e0ed38c0ed303046bbe7728ff46ddbb64de4dd4663eb607b22dbb6b974c91279e62e227255b6191c16d130ee6a91aebbbbbbbbbbbb5342d7467b960e68300d1832918314ce5ab4783b93b4a9f53c716f34647753a8ea99fe71d15cb4a883a4b79d0d956d46ec8c88987642c05553c1894c23653568b3f4d39ed52a284c9ace6e9176f4d4317360eb520cd0ba8402c66837459f28bad4565bb7a4902c83586bc283cba15beb3108d7656b83457fdb61081b889831481c82adf7e190f62c083b1bb00ba38f4ff4b9aeec17766529bf3e8cbd9f95b478e5f7cfbb8a8a25cf62a331df3265eb61765325a38f4fcf705cf4893e5d06a3a5485428abf822085bcf2f189aa28f9c575fd7652df60bb3f75cb2174d08b6feb2cd70816390f62c6b092e7bd1ea8da31b67eea44414c16109c016eb118030ac693d955bd52a14d263176b4cb619b28b36514737848932d0a5bd58b128134497e64fea95ca62b6555907fb67955d66d41ce8609386d58f2e3480bc124fab69170cce3848297de4d7dc0b0c8c81a579fad1b3cb084989c9e57180323258dee4caaf59aca7b8b0594a2e6c920b7be4c21e5dd82cdca562a371c5909fc875f91c7a969f756dbb4cb1cd087546442cd2e5d0b55f276d34ae6f9d1111b7aa3d2bb7cac72406b6bbae4bed57b7dd8889ed718860fbaa49ec570f38c9c3cf859082c4b02e3d977b24abad1da9bd64a3213b4de2589171a386472a4271c3d3ab1c3941768c361dea49361ab6db6c6ee24dbc91cff57286a6a63deba26d460dc168527a3f89c4719f25052e7b1651da7344028f361af67dd325edd6234e44894272e338ef461dedd968f2fb3e7bedb9af75b166eb42db8cecf65976a3cd8d3a7aa667604c69de3a690122917638e6b929e7a49384a38f1236742805d59d404a02f74308384013cc0c8973066aa6d63e307d76b1d65b891c0c03432678a8accdd1deb3c3c7183924395c717872b87288725862f1bee99b1982ae6f64b56cbda299a35a3bba744d9c899a497409eb24dae322ce24da25911c834421983ec71fbcf21c57f189c6e924308d36f7b4bb557145ef6e6e244456b5f1275661cea8523e7424c479f42ada703673c6763626279d745b985c9cbe7934bd1ee2f91a4897308847bfd1502439283a7167d47d4e9479d24499f07e965a7c9ea44bdde7495d52f17994afccbfe812f77997897dce92f679047469e4f332ba44f2791fbab4e2f34038a04b2b9fafd1a594cf07d126179f9f4097fe493add688ce69c47b98bdb379265e5a2fce4ae7cc53d39c95df1919b5dec8a70dcaf1bba752f15b7bebb2adee27617dd16f65e17b7719a4508c9423fa238854597544e9f437777062eaee2ce40089bd52b83acb7b82a1ebad776b963d8b32b62efe823575b71497eaffdc95df1957b7217570249160a9349dc2fba2acee2aa3ce5b2f8bda2a3dc94af5c94b7b8d2c595439a858e60a4498866996fd1cd775de6e66f9749f3a37b27d0debccab5d141b4379f726bb4378f721dd0defcc905e2fad0de3cc99531721190c38dd1debcc885797179e1adbc51a68aab01491337451f4f1d8dea086e8d433249115372faa882d88215c0924d5c22de803e8ae668ce91ada3519d236b91eec9e8f5a39bdc93d1e7ad94404672c75ef2c098d1e96513d0d43b5db21d841f1d28e4482634aa07d3873e0a7d34bae501e2eb99cd9c9934d30313671e314f30029b955c1c16c0f674fb81085ab719a387224ee8a3c78d86b5a16b1482315ccc28b31787080efdba9cfd68746b3f7a0ecd5d888d88f8ea1ae8e606c3a8eb212636e08c98184704c297090eb83c6720aef31479ba04371ad1761f7dee2871237a157dea60085ec190091e3438b35a8a518f2028a163034c1f03227088e0eb382c8031ee196747b73a8c469d06032e8eb67376bbe5b66e05c71770a3d7a7b8111731f175c933fa1c8d4613c83ebb720361fad9c99921d636472f57dedc80db04044cdf40f4063800d8c44834ad393367a28dece4a88b36cfd146b37e3888730301d11e688a3002893b1ad327308d558850c0f4f3393201539ba63551d432bb7ce37326e21c6d60ccc583c437b26ffae6ba6ee8badb75b5eb66d7c5ae7b5dd75ed7ba6ebd2ebdae1bd72874082113303ceca9d5ba015eb4ed908d6823231954a1accc344e7b4fed98e4ce8bd5381228fae8341bdd24301de54662768d73a3c365995b0b5a8031dce9255097229e3ada444a82ce991c35330450e625c2a01739dd4eb592081a08e8068823917e201e3ed8c390091e289cc18630ced011dc04327ba469ceccdc703ea99d3933fafc8430064a5384a259e8696c0e4e87dc893b3ca0af4839dae468836393e078907a600ac48369a748712021daa3a28b6edc717782341085c21bf227483f9c909dcff37e126d208a455db4a90227da5a747bc814b8dc374098be6fba84d32818133a7d230163383041004df2a603b0341365640f9d16e4a000d3a3482072b1f9a15e54459648645d23963522b2aeeb44746bf42c13dd21989e083a0a8928004d339c5e881b304674fa95145c82335c6d38c355dc015be84777862e1e0159e86528a971b1e11c6d4e3225d4e56983e90a965d9e2dc0cfa3879ec52b70248f30e0222582bb240fdd88136d88a038471b922edab44757f0c8c5f1024e74eb3006e21691a88889b9df105df4f96beb41f429127dce9987107911119ff4b082b76fc7acec314f6f208ce981e92b77fb92d061eaade53812a9c2e03c03ce3eafe8f6078bba1b2b98c3dc15c171ee802df62298bba1a010e6ee1664c3dcd57234ccdd4ce6c83077b1d5bd782ecc5ddb371673d782c2c2dcada98ab94b7950ccdd196b26e6aebc214362ae5b812df633e22c721762d8cd86812dfd0d77cf8c03ee935e36dca7248fb322b85f309d2b5634c1c13a7dde1110c21080cceebfd088fd44f7909ea4f91f1d04c190091acc701832810410b6e8ed4a083961d6227bc5180288a7064e28bd6181198bc065172cb21e4370823149c412e01953806774c194f2320a314528edd1f9789a9576b08a48edd1e03873a5542a2a701cb78df87c3b9e6731ef9299d466965dcbbe3d24a576911136356a33fa8dd26bd8e586655996456e6256669ee7799ea7b2d65a6bb5edca306dbb32ecc2b0aec636312b33cff3bccdd33c9589c546484a52602636458946b28d60bf346dcbb22ccbb22ccbb2cc66d961961d26cbb22ccbb22cdbb22dcbb26dd3b46f5d8d2ceb82d06c6033ce283f1feb99e7799ee75d33ceb85149e72595df7a9897b74364b782b021e9dcaeecd92581b075f9433eb18d7011b332f37c3ccff354d65a6baddd6e31acc5c030e380354d44fb4813496987ad3d87d61ea34bd73519ac1d07a86dd7344dd3344dd3b491a669da88d34635469c66336b6d66a386bc9d613e1e36e9a4129bd84c494cea20b167d793a69a74a8b4eb584a93a0543403000000025316000030100c864442a1440ac354740f1400116f8e4a6858349647d324c84218468c618410000000000000000466ac060050c945002ef2b4dbd0cd57278556bd877d212ab2ced019d3f0c979469a2c9e100492e1a2b8bab158122f36d3231d534d0d9ecabf491ffafab4c3be4dab3f20e7f8e9652f19ee87067ae7664a8acf7780141890481526769befd8187e677d4cee8e4a847fb8d99ee226010566c061283b1acdaaf26c6cff183aadd804d8c2fb6de6884901cb5314500f3060555055675abeb630836a8804f574f994a3021b652b078a0f0381c39e26260fb5a527f9b85daabd603ddba00b8f391120cd542b0dab4b8e062fb98342581b460a5f4d2a7fc64478eb02b23098b3dd4f1ac4e0a1325823e2b151838f78a8d4504a3c626b305d15b70b3c647193e649ff2598e3acadd3e63a237c5bd509f7c1cbe729b853511d19d9c12c3c1b3bfccf26d9fdbceb3cfd2f282dea29c879d55210a0967fd97286e40026d8d97f7402aafee1285da2e2df079b6bfdfa1162e52b603465bc8241bd5276ad48e0b366309547302bff3d1dd30b7526fe3b0cf961a96409101507ec251169c0f50ce70771c90d19374e32a5d311ff34769d39af53147e8023fb02703603d075c245ef3cd532038785458ddf27a16f9eaac7f3f53493ce382b33f40ef2c859e792139435425807d4d04506246076f9c8305d6b9d906c0440f1ea3e9c44905b44871227dbc6460d9a9d7238957e1581c25dd69b48267ea733aad9caf397111e7bd9214c7a72209efaa3fc96a34cadb4b56733a601aed33a493b1bc8d1d348f4af7af9029c146b9c1221e66e2822748a997d95baebb7d61633ca918612c82710f737de3e641a6559b1f07965cce1ba00f4d9348d04d2fcc7ddf051ce83fee2555f3fdcdacfede2d64e3859b36e69a2a19d528089219954ed5f51f7ebeca54aee690d9a23484054a5490a807d07c73645cbd82a9c6126ffe80a614f7d76905f8f32360e7bea4e31c2c2a1a689f6b7341a0001e1f423b2358552ad464618b7b7b04eb8c8604489413c4b7b593fc3204aee60f88b88d9c0e5ca9c7d882210fbdfc688919f88840cf4b0e9a0ccb269b2ab373aea790a522deaf601bb99c0e5346e72d382708daeb6ea9f67c0776b0951e9d9b031c91a07a47162dde11fc1526656a46e31e380911be86269a61b0adf654c44a0c3f1810ae7fb1b93fe829bd56dcbd3bf46d91d3ce7853505309a8bf040111429bcb89c9718f851172687bf72a8c8efd77ee65966d47d8a93930533154c6072484100ea6a080b68a0bc4c50bb0828e83d5fd0515ff4c10eb6713f2089f8af6c67ee2e98f3ea6e39f6a1603eff3c55fe923b9859cdc89f3515be379566d58b778f151c9b02c4ac87598956ef20244d55712b9611ac5003545519ec99b0b4ce211f742d3b531fb97476cdc272ce1a592f4017f07d90ea4834df0d28d8ca4ff38fa688d9c053a112e31df5a45bf721d19da7305cbfd518ebadbd5d746e43166486e9f02a03d46db966e73219e0c198be1e0d13082529ebfd9e5c444a2bc7681d8a24cc1a38d82999c3cdd1c80a548ae77c5dc16847f804692be1816cf4ba9272e1eddd560934e6c903686201d88cf1bbedc55965c1b58879786bd6cdedf1c51534cc5b36e363434154ad4e16a0a8cef2adf4b0bb93c2f9de7a36e079111eb6b2eda4a160f5c56969218328fa2c86e0b377b392a03b02a07351bb12db022d0b640134282201ee4481d133a66137c4e0e0c2b1a53f203e506c7080f99f78154fc5e00540f5987c6cd282253f9790698c08109dbc64820feef17b3080355da3e380ac79c00ec09b53a645303af0e6aa4d38e9cdc4e78cfc1d0c15a0639067ba240c73cc7b0e61d1d920f6956a9eefb6715f6231ea5edb9b712a11215ce725c2a727963c375ac7dc381fe297b8185712530c5b3b86053d2f7fee26ac89662ac7955068b55cee479be234e6269c726dd402011615a99d78cae783ea17391264e054ef743f7def448a1a341b8aa3879b719f5b90bc91154b00333b7a8a6ef7ce8702203ffbcd35e63de10bdd30fec07f00374a92d8b220c4d99b2c62778eafa817db25e429dcc717ca4fcfdff4ad35f2554e918f03e6888228bf6c2173c9e10057113a985e8748959baa9a2387fec120582e7731a2e14bdc5cc561fcf0ca21275a7b00b21092c7971d328a2f5151c033a49b06c6a66e235c48817e44568c4b20191ac8c6969b277826c791a1073c239873d05f10b0446dc8bd82cd18d5b93c14b55180774f5cab78aff520c2c8e2020bb52247756ba9ffbea9a245edf35e0d8fa513ed22909191aae3f659ca236595e96b4bbe3c7faa3987fdfa22ddba713c45a3b6b4329e5bfc5a8f30b7db392b60c697588cb7c88a280c39c68699154babb7a71bf33f291502d26ab8cc1dd45ad3a4c7034c25b68c6c63f2639ca7bf020a7c756876d393cb84b16ba31b56f66884be36c151fe5988de1589843bec0f76ac7967b691004eb74cb78a0033797b72050a620a433c7b005f82059680f29806dc82ef2d11627ce2092dd5f88a3271e93f62ddf75174db036f788ff2bfbfc7bb7ed07bd1944492a9a3293e4138523f1df9d978a9a9c1f10f142fa37b57ef30962c4b7309fa96a6737ad88d1866919ba671746fd858d1c9e03f5f694ac3ec1f645ab06d4150cb7d64f4368a2e700a6228451550952a9e75097a6db5c0ad1ae2bd961674423c6ac71e072660f9461d44160c023dfa112a99e06f1380209c9541386d3742c8748142a4e83b8630ed1087b0e9204434d1398930da618a30e9648b68d16118e16671ded608e20638825810d52ed50b12f38ac4c0365055ef3ddaf4656accd6336a1325a16fdec0c54f1011789c94dd8693eb59c5a511b77dcff33d22783642fdab1078e93cdcb34424019780feeef7d77e2d2f7335855644cdba82a612e8af58a5c932b140a6aa7b9616f028018d576e65b8055a42fb0efc01500cc2d2c653d9c6fa1ef6e1f1014a891e1863d6fed3e2489a4aa7ad6dc7b2a9a74b74ae03aa97d1568f7335370cb8dc714bd697e3a32ee360cb5fcda054bfa682c110f89c0a6776aa616fe33e882b9267cd27370d446b443a5d3d102d4c185d4e557a03fd50891bc9477411bccf4ba2deb76a9d46deeeae780d47d476db25a7e1cc85a9442404c284ea03b6255254358fc785c9cbb01ef6b99795e28130cb06a877cfd4d3fd3647eee0bfbfbb1e7c637a6059e870aeaf030d0dca998c6566ecfb113dd113ebbe3dd2ff0c0caaa1f3d9b8c7dc9311cf93d9767150661c6f4d859dbf10dd7e5c207e2f00b1b458337f55ff64305dad5c4fa3bb5b45e6a28cd026dc7e0401290339c6467496f3abf45d53e0a384b1ab04f18c4ba65d6ed62e738878383404e4f53af709449220ee59b676cbcad81344178c5ad1cd88a46536f6f344bf52a8ebf1d5cd337ae85beed1edabcb1523c9f8d666dbe3186cf19dd5d4bfd9577c418bab34d21ead94c8abe5d41817fb15c369ef932c0481538ab882885e0c220123833fc1a7d9f48b69d5ad26f05608ae902e902bbbb1e6a28829419d63e46df176198b8b2bc29bcbd9db838f8fc2907a5be2cfc67b6ae32d5331dbe255956523a5d652df993444f383696d92c62b91ed686d817d24fd7cff605bb12d818fb3357add6d3fe42f59be4884dca07199ee0382736daed2cd994bc65fb8bad410f4f1278cdfc791010c5d6b0cebfea01ff687712be401465ed1dba1160236cc9cee6455546335b080a49a59ea5a52ad064bc07577a875d521e2d4238e0b331f0509ab6be71b1e3c3983a41bb12cd8216049a3b915f0d48a5caa5ba6d96206e6be56be722cd5a1cc1bf4d042ba58b93929c0e439d1406713d2e8ec24529ef0273c12b81012743c9c47d363c391f0edd8e2cd01a1b71c98c5abb2ea25878ceccb9f8e3cbe05688839da081a3be9511cb627420fc89133d08beb38ff9aeb684480e1e98c141439e2c1afaf814f9a4e5ef1fc35567c08b89e4ff38173fe962b4c43b8b04c99c7661fe4c5488b98a842475e260cdceca8a1aa9b4666b5db8fec58342f694b653c0e143d9a20bc487665654ee946d3596a435e7aede421a16ea210a29d68b6323af0713b76b22edf6e0dbd4e7961777a18837862465a0e827afee1b49a3d91d742e62570f4db741aeac9c20140d1eb68fe67848d4b6ed7a89bafb5936c49719430dc38d9188d04f9c8beb2eaff8a69f9ccc88bd3a8aee7d45be05533e9e98469dc371c97dae7d841dcf81b0d36074574536d64ec80d914ba825a3180f8170f4fe240fe5a25b52145d36f8d56abf64af0a2e7c265fbdde051bc69043a78d5c428433a656d564892ec56297b92fdf6419ed775f2ca7d7a1db71f4c982edc7e7bd183de58dd789fce106d88424155855dd284b21bca1375a743b77a9915a74688fa0c4753cda8a14f837a0ee8e8f95aad8c4eca7f27d57e8a58cbb6e7472db764ba3e29b4bf7001360cae51bc1af5f297d3dccf42e993b21e76d0a0a515ce7e56831d23dc944c25b0f96612db61c2854919529e25cac7c65c5ba8d9099ebe613ae912e92cdac266d22798bf09d89e3ede74b17c9f3ca76f7292d8020dbefc53149641ec4148f2502733e3e164fb50b4ac2c0ccdf09910cf2b69f8f252196001ba33ccc8a4091388c88da41f4a7da30a4a64e46feb65c963681e83010ca541bb4164b11f8e376bf82c31aceb48aff84995a2a2ba97af667398e616aa58c254ae997265fee00c41ca69828e57a8a7722db7d6e9c527205d4a9e4a380ee5fde078be9d2cf83302e6a5c7f81401470f88ec343c878bc560c1349e4826fedb95ffd5f39b7b94b9e2cbe7107c73de795086348bb20b357c61f4bca1f783ee4717b7893aa68d7f5f8c6a39de900b98989644f813af1f521271ac52d4f28fbc771862b8844b4f8232be28cbba3bd656a0142d482e2f9b60061e2ccd9704b8e44554c8f681484a5410041b2e99e9f8f62ecb824b1c09002938c5be07eb630b2fe2854be29315bc243369943e552d4c60349bc59b15512969482bcd6967ddbfdaad06a926e6becc9b1226343f0ff4803fd64be71317c36412b94856490f4c1a1cffb3509a821172cd04025570e7141015d02290e498b992236b8b0aea8f4a0c49fc50c4814b500b0180fb032b5247eec7663e2046b3782772dd311aa59d22e9efa75371c847cd255f91311a5a4f1a94df6e4edaa62ef8bcfac8178b6079c751a98419c67dda38efe94e44a6460f578110ced8c0aa28da1cdc2bcba3caa51c513ce7128ecd8f0db0bed1b71efb6e4c9509e88bd712e394a6a2234b9e3a2d09ffd282ee4b80c5085cc1543c1ec35f83f6c4fb82db4ae2d419b82d177920ac3a4d2cf9a9789206630f589351b06d31bd034666cf4081c42cf937454fa3510cbf15e603d5dec78c5dfa351391d5f5e565b42b34c131553007c489961c0f514240b08855e2540cd3aaa84475733ae56d2a81dd45719c9661dd41d4ac5e8e250e23a2423e62d208b8ef0fa990876076bd1ac986401c604e0236636788804a60cce845612022f677382b8bb9ee9ad397e1633e15e7f2aa6984dfafa0a11b232c38e986a3e844e1d28af19216b6250ea2a7e8bf7216bbd30ae0de0ecb4fb76d761d85b35b92a4616ba1cb3a46b54c741408dad82d54c812f33e7205153242168b4278cf9780e155027d7267afb80a293db15186cecbedec06b7e8bb3b46314c11380fa55548b1571aa8c802462d270c55a17d45bdfdf70ede4a986b0e3b286393a02b906085805ccd3699dff8fe3e19e39d0799202529bfcd6aaa1599415c7d41b12036790d8f4db41759a0dced6916b04238220665277773428217e737ac90bf30a3de9e2fb9e145d721c6be484f22d69299195a0fef0c2436f924ffd5022d54d67f694e3b8d690e251040b8dea35e7c8bfb0752e218dc39c037687373187dfa037e3a3723ff64836afc6a64ac1e9447a50cf4be5fa77899494fd29d76d5d0ff4991687c14055be7de433beff35af77b4f6b345deaffb1ec3e2b71ea30c747e4c8a76cf79e48ee27ca40993a7e7a9c7b4618cb4f933e4502d52305cb741cb4983b55ea56d72a33b11a498bca3ada7e49a91281245c339407cff76eb6b31c80149fa4a0d6515b150f17dc7cc395aa2c53c598b9639459886456d522c8dd2104ddded6a79692aa1045397ee1b5c8c13b7e94cc26c92630cac79b4515eba514b18fb0ceab23ca25dc080b4d65be810086633207c4e1936507b8b120a2bdb2e05e7dae6acc4554d9a23343df972494576611af114c08c2e28a62bf70fad5b5ebb85e76409d9cc3b6ab940f8103fa524e342e0be2f863c0ede86055b8c3ce7244731fa7b3f259543f0b48362baf705c9ad20c74498da55ffbc7268ee8a2c552074bad62737cf244e6242d3fe6f5a5394dc932c430861d81c78ddc17f89cd8301cb343b670b132834f327d6a1843278ebd518a95b4dbc26b63140a8e44a528b52f2a5bc181d0143b3ba74dcdf88b702f1c4c6ea2f1cd2ae772e1ac649053b964d6b1ae75d6c4be05f35a25b137b81b0a36f52f8d344c0389be313b12439069ddbc659216dbd540447df5b47c16991c00e37432ca241975cd6474e7016facf182b8906b4c5575a5fac5654d4dcfccb1cfad6261496ececf85004e2ccb442876ed3851b2918d480ec1212df4da0c69b0d6be0e0e36f02dd3d59a3ea92b6c9399231a4e59f4003c94f58d0f834dc5911e000e196a6d070a9a8b6a0fa483c6237888b33abfeed7194ed6c72adbee45b0168d25ad34c41659e79586c94a919a356e8bf8e89aafb06d1f2a3976e7755fe985a0f3fada55cec614d3f89bbc0b56cc89bb4d234faf3b4bce22aaf2939118db0cda9f1fb569bc5a7e22cabb6fb86e4eae2322372eae1d612e7ed4a051261d20ac93458db259518bba5b7e3385c216472e96fc8d31b7e34d84c0062be3eb69d49ea8fd11443e1a4ef0b78064e2a3ed71d2384e9c7f2660935ae8b70eafd69275d81c2da7c676e75a4c3f3550200b860cc1b0ecf65be808d0aaa2833706443e78dc38d3ef39f9b6d569c318db5cedc7626058ab5f1e1a513c41857568020504c5c42b49e10e08c4807df04db86e8be7e79da6df68de55cbf68153ddd68d9e8790382b319e8eeee4499d98383fa049629ab44200fbb5732388b92994a7716bc68f44c0074c28884618039ba292c32231e713de0969ccc33b173408f8eec9f058484cfe067cc54bd7809c567870b2425b40ad01c14e4060d8107566d1be3eb4c581387e6257061a4038a3c5c8af54c39293cb02d212617089a71b5d90b212c61cf7e73227e1f7c4532e2c82aec214070eb7c6069e08275cf479104c582b6c956e32ca327a29a87af780e8a6176a3700a0a68479bc948b5bc0843a81ea54a28bf6e351cf5399dc928a78a02d2117390491bcdb3cc9fbdfd81268bd7fbd56f2e6d5ecc85184c3381798b304afa04f8d69f38a638391e0c236f59aa8e88f292b9fcde2413cbaebce32ca70091c61252c2cd7ce4eb56bab295dc609a2740532ba24fa166d907ade1eb6006cdd5368f004b519fe5607f0a8e7fbafab70cd7a3e8021580f8b96b4ee6dd9c70f2f54b57efcb3a2d86ee58934810fdd460abc8f34979ad6515bea9ab2243c534d5c8a9ddbfe36b421b28a0e520bcb1211ded602478d1ad02eef3d2c2ad97d8f5050b34f60a12a79136e40b4e6612cc19538d0cac91e1917197d9cb4c2baca2474fa28100c15b234e80692f84f2d6ee590d8421f871cf82126da4d9192c0c5285c2da85fed32732a7c010199c180eeaa0bcd8aefeab325558fc5a343cf4980922bbc68b157b870a595e3e9faffef2d486189e94491d7b32c2e6d363f190084aa84cb0bc861fa80ce3a284a20659e446357c744a6e268d074eee28b0a7f06e009baab61e85e5407bfb8a143d10e48b6ad21768b583a6f08838095c66c09d8c8cd812a2edaa549e8fbe833cf1c5bca6cb2887df5aced6959eb69d8e4a7449e2c427625cc5e7c888184a92e7cdd215bbe1002739205fe137c5218396f45c8451f189babdbf771f35ac8cd2f62b38f8b61183a7814b417f40bc6ab89026ccbb4131d93cc7140497e7dee4d0f5628fb71cccf3e8e0b80988719b8ef617032a66af195173c7fdcf98aaf1927860bee8d3039794b5b5431984e65df1ac67bd6b08cac73a1ecd04b704243941f0be8f346354197c0851f909348a084d7d7e1aea909b67ddb4f7161b4436e92ed94b94c5a3e25a996536451b219dbcc44938fdd7b7ab4ea44fbc96b7c2aa5182d5371f3d3f72ff4311741fd78690962f908e145d877c75b615765c0477bc7f77dbbc9aad83dd0890a2e235d1c8c046927ded1d0e963dbb845159076a4462b043dd84a62a1fc0086d99987a51b6c47553f375cb9a51f12f24504b4f8788d35c3db92a51aeedd8238130698c33e0eea000fd1f2b4f0306e7276ec97a4559ecb565591caa258b49db4415a88425673f8b082fea3e255dee8e6f59c57e318d9d565cbd5a65a6879d68214e4cc56b8f967ec4672d1449cb37582afa5efef77a18989c0f66e212127e5a2b568d36b417560bda09df5d970825dd8596bd19f69c55997371d75e2bf547bff0b0f619a81fe6e84054767bcb5bf06e86093f67260e7c4877767e80b558bd7244490a7e18e2ace38c76aacc9c78c8e5012faa68eafe7fabb2325633936997607fd2532ad7639326237fbdf9174c2a7ba91e0f500cd14381e8c3577bcda97c01daeda43c0b4ff336cf831c7465d110e1cd9ed9384240eb0e0c98c8c286e932878931259ee7e92b2ea47a4c2710f27d611bb0302ba181f13f0370d584bb8f1596299c73328927ee2c86f507e5832c40219dd0fc4ce26263202d56726c3dfc85345129a6287e4e503f968d46d3d10e92498c83dd6eda20752943b1869f20b0443b0ed316221b27812f37c5ae0d242e1fbd53705f2447dc0df559fba87401798e76852684f40f71ee4900e57d81ed6096ed44106d20bc428ff7ec509be0fca633d5ccd3104daa5571076ca12700a75ba00e1a0db0a05e80939b191a015d06db848aadd65b9cd7d5fc19374c490b24154e3805689efb36aa706ff398036ec9766f2874a8b37d27dcf494192d531bc6bde8bb59d52d942944dea9c3a0881d832fa9b0724ab36278da5c6ce54cc7aa6676f53353afe59c9113a9315af139a7d81a5d8132302e3794ef922b09feba73702c3c21e0417c56adbc53ab0cc5b07fdbeca1a83f3547e44434bc3fe9832c76334d0cbb042ba98a3dce1d4c528178643c4d9cf80f030d2872231d3f3a046c35fa1bfb0b4703c5c3680550abd7e93e49f0dd7bad0128375c110d9a746e3048e4166845963531b236adebb950abf05cc9d5c289c2697890a4d1ee81d00ce73617a627b53e85e6d56566315a9c3ba7e661f6c19a73352aa0a5eca9852062447089a5fe23d2e13e888e7fa4b60d9b5563965a51a9cc7edf45b743cd29ecba4e3e4734999b4ef89f34e8d21cd6fe4a26f682b533a055cba38714096c308a18fbb4c4f8a81dcd8a2e35f433c009091039001da6abce7701e99d81a2a635c1a290e612188fa03331dc52b2dfdc40b3754f2cc0782abcdb9893623851e24886e99bdc150a5e0656046c35e05ad3197f9e567c8bc2441824bf5fd5ccb012291a03632aa0f18e4b76e339d60ba6f46aee480c4c97ae0b509f286d18a67268c02d956720364c52171315b081ad20120a394e7134a83abd557c4a8f31c81f1581fef31b62617b4cce47535ace3f784e2edadd4951f55f207688e29c4414199875760de003f27da4cf03d2d0ca85b2fd22050e8e086c8061ac51005b18bdb4634cf7aedb0222a08fd42152ee9d722e2c62ff466dbc06d233170c962bb275c0418fdb23fa79bb0c0a51dff7f50f95a38c380ca4d181ea58eb20711331e079d4c76c5e72c521c3e7283fbf86db6ecc6dfdaf9d37cb15b2d43e8469334b46f9f9f6dd58456e0c3d19921779e830133d8072d53a63c0f90a90bd369322ca7d15a43871a585be1e3d6448d2346d2cd6d3f371ad16cc04ea71521773c9aa7ab03b270b7bd65f612882fb33ed0da6cd696b2416e52e0de6ee04dcfd2fd124a5b9c4197799fbc2b44e91c1e96b3cb783156316fad335db38e0f0cd0d93712297666d6fb4e6f37318d3da610f60bd84059002ee49372d95a13cf1415e1b5a503ce7efca82a6e481e54be36c53f621a614b4c9d01cfd506ec189daaea575cafc88481c3f531c65ffd539d98e66d29669034ab660cabdca0c6f679e843da0da8339a91d84683f181f371fc48dc2670327d0f9d2e89dec7f2e44635c7385539596a49c5cbb27195ace48d0ae82a719b75a5c7edf7706c4cc602f519e9d1a158666caab9b5d4f37092a8134b270127618a452034587ca3ba7281df4c36068c527673106b4195681e59c01e2b03981574b03c8655398a06736291926d2add1ae1a2ce675c7a782cd6cd578a9827a016a4fc30d6c03c0a60ef17a4573676242c11e957f5aaf16242b5f88bc28639bc6d2d3aca1b0cb507d82dbad86ca049b27b218617c4d40569be2063194caeae07de424acf236cfb2bec32a5d0f45386b61d0ad19801241662bb9f9f964681ec420ef9607a2060fe0cd46a2d30e56d5cb6f87e107dae01b7112490a2bfc0c71591b3cffb6425adb1a783ea319f6e497f4727440b42b9776b8a3672f45dba1556eac63bf120ce60df5e29d448591e4f8c243e83e5efa7b87b0a320706d62ae08cea3f0d481f9e24ad8228e1523b4a1a1e6e02c50a17879df3c76b0ffdebead0efa521029dad262fedee0c28d384119bc1e136804fc24bbc5afdbcd3633c6732ca0baf68c515c6de24c6c5b5b75169ceb2611c3d29234e8a9767d1e7dec2c27f214470372ce390998d276f847348da60f07a31d5df5459437d6a79cfa5035ff780cd41fd1a6f26de444c001b64fee29e9d70486b058774f27b19ee820c7e153255d3375893de3c234572201c080d9511a553a77981bf61e6317e8fa487834a00fb7b56aa2f1b989a49f3f1ce6b9f9bcdd0265be2fcdd918317662d2a5f123f22217e602e5c9cf2f699fcffc82159f519f7d5e21e50ce405c7f2d13c508741f52d90859a3ad1f3855814bcac826ee0781ba64372ec0accc995d6000d5acf38109f08054b244de8296ddc76831256767e19054321ce9fae319edeccce1e7e282ec2616bbf162ea7317b3fc91dbc4631f86cfdda50b46e7657f5bb72ae946eea868b30c7be9f662fc405cf24796c958cb9f91ca2515875937b4b8c07b749b879adc06ae7824e16416f422ba8982a2a053ecb343967698d521a1abcf02a002a22e45ea01b4c9bfc1c9e0a84568d8017615def0a084c048e82601920c254914a836817226b8b72ba4dd577bbf80ef56e7bd257d42c3851a407bbcc4e1d0beee03d0a80806caa7ff9c211a568ea6daa9adfe8ea19761c384d24078b1206b08044b35f0baeef2160ca56530264f780dcc9f93e68df056628a34dcd02f4f62e2667f09b696081cc36605391838896cac176536cdd640533f28c526eed4390a50f504360bd9611fc58dc01dc13c8080f3bf914fb12dc140fa1cf692c1e90c628af5dfc6312e016c23902a06d22658f5116b1d40f3ee1dda6a4edb1c56546143ca3a55b3c436a6b9e24be80629e04d730ec3294e39cac01043e6d8a8f8a15a72125cccbb8f3521e5b129b0d06ed81ec4f2745d88fe77d1b39c6527288325bf3406c460c8e36d034a4ef104e92fc420fc25c9c071ffaea6fd6b6ff22eaffdee5bbd1d5239e2312d460d4c25b4a1ce12b032136417e951ee6da885bcdad3a3cc843019fd6c6ff8bf5d73afc5959e6dac68769718c2a97b7d0b6ed8fae37f4464ce2a4d562ff4a1de910b7687da968af45e658a2be267a0e7aabd314e5ae74a4c64a1c36c7564814744646f68f4ec6758a161bfbcf072041c36e81a2898a5cf6a6c0ae3214a20a88f6be38b9edcb39cb7ae2ed53cac1c176028044f8240d47ead17d0cf132a9f85410293c71f4e8e75e99c948f506293f54ccb78509c66856846e685e31098ef24bf7b0a627938f394635e32727e1cb49960866991351f1b1f07733291be289e790973e11eb244b1cb80e3df41024feeb63abb0cd89b7532afca1c0512de4f6d91d4dc23c8c9ebf118f343fc45afcc462f8049f370a225af8a13fafc5a4ddca9fdca2bf751a71245cb24994ef83c533956f4486657b210eba2533c90043b2653a4d99afe8b34808bc325a42571679a56a38d9f605d10cfe72351cbf2d7c76302884194e662c59a63ec002a6e7560799c29455d69b5030fd9d172a26a90f22841d8ab716ce21d8a84db4354d137e59caa969ec068af2d3037d8e677bc65a5c51c610e8a3f1543298686cf669786f733809a341b94ea4f2d33e70680573111800248b4eac4f939d19c49a1e4e65c8e256d23fb222287c1a4c5f99dca865d2f650752704f2810332009d35970647d59ae020debd1665ae028df540abf9ae85d903e5ccbf202d9643b09a206bd56359c5e14eb35e565fe258e86279a0809de5427b4c1309bcc5ee0391e087a08d12b448f3789cf4d46080b6e2a6727f4e404ef0e11a3b124a483b2afaa5fee84a09c36b99bed8b495e31ca4cacb91ca6bf231fbf95134fc2222782f2e94ae344dd862bf18e7a380de823db7790fbe7d814d8208d1043af735c412733a12d1a5f373cd6feb1ad30662a8f76628c389a50ab80611cf868b23c33e35a4ee4f5f2567cae712dd3492a831b38cc651db2f2282238f3baaa71085ee3e5f1bc9e8707f44b226cd3cbe0ed9aa31c2047a68159bf7b0db3109c66dfe1bea86ff1345e8d68059f55664b7d65a71198721006470b10c3d1f284793414776467bf4ef8602f51e7048b2b91c5d96f6333f8625cc33cabba63d202a50c9097d0adc4d352bedfe6ae01b4c42394923fedc1af71d9e715b4bc9e6a220c1b0548eff0ac5209da2c81498a86e8cc658693701e8827bb1b351ad7c4d7949c0b2965bf85e270cc2e985ac5c11ffb413536a136c22427838e1982975c0642e7428751645675a64514a9726cb6f4236a78c14c7dacb49f30d999a1adae4898a19908497e0546f0b61815975198287482ee58e68fae240260dd82709e0c3d56e6704e56984f55d50f93b47eede8af250dcdc06efe12fb2abc56cbf6fa5facb8861c90998c6c3574b8fc656cdb1d4d9aa6d11fc092acea762bf37068fb5f5258f890131f111a28b42b74abff690474a8c30d8dc7afd5869d17b9f08dd0dbba487a99ddf5a1a60275719b835c6032917eaffdf3e10ce1dd2213abc490d560f73ee1c2fe61e7ce0d561b1c5f60005a72c484c8edc807213d4815befc6cc3efa1d4418bf6d0e90f3027a1113a1d499c0ae8c2cfa7f424eb4ca1125e48c2213ec151a490873ec9fb13fe16caa633243633ce8fd3ee62c4d11ba48fc4724d79651b09650ac3fd48e2bbfbdadf4dd0381fd375fb406c96f6986c06b65e1a62f9f66e67ca903dba265e90898448c8a4d3f77b63cf1b73a14744502e11812cdf7628820e66f79f1cf4fcac6df9ba7fc6fac68748c8c12aa3160e3585675837d86208e88d47fabdc21df80f0031696b0fbfa76de1061633b7d94e6a825c4681bbed0bd22cce2f404b2f53037dec6900059f4374d2f3be690c91aed9fe5681987f277c4de22f3ac46d9145df13c0faee65e79cb9503597c4bb9d346c7ff5b2286a6ed9b23eb12e7cd948a4a4c619ae86739d540a13c4bee0d608fc61dab0793f1b59e9e2ef2b5aae37bc092ca755bca6e7e8fe78599dce4f8ef011d7ea733c9fb0be8ac714b1acecd436544eeaf783431c74212c04275ce450251d71a793bbc852401e84b94029ab7cfb874cde3e9d6ccd5efee20eb5b2cd99bc39471c7b1a18a84e98f058a70722b7af6ca6708af116ce5e267658e5d09a396e6ca71a018a601b4682e603d8c93b425641f577fce9266c9faf1b33c30bbbfcbe7846ca2abc4401636235123b0a9cb380dc81a8a05b0f9fef238b297f1c74411b5a21aa2ace48c1781138a5de5435ebb611aee293a85ae9693296aac42ff962defdb4237c855cd5518d54c9624c0a38ab44cf310828a82f6ff5f27eafc493b64c15c8c733f210ea87f066f571442a7ffe1ab9937e1a0ea558fe91e3db047dfa10e2727f6cb79d54f6eb1c27f5e0197cf80b48d2457034dc025466b8829a86f31afd1b08518f9ed0bcc50a4b2a4577577b1e5850aa042151739d3843047f9fa459bd0b48f258452de69f5a14db4ed0f80234ef803fd35a669d445d1695c898ad2a9e11303e2398f5829ce966ddd9a0b45ce1f132f38f1299eb4bb9c3deb7a60ed07ee29ecc8c22d795ac389f0d9bb477e807b4b2c58d5b9f44c55da828d317c2f7bf75b898c584ff4617e98a40a20ea44862c4e6738c8ed8098d858d07f1d8b7726980002dcc7781bc7074573afd598d51204a673b91289f24748ee3de369aa099d43d3b004c62254ab60e3f779d80e876220d9b4a3aa4810c2f0e3b6ac4c48b882dcf02a94ee814b430f47477bbe2414f9add5e0116db4bcfdea397d9b8c994df1953e4bff15308469eefeb5df61e0efa9206da41d35bfe5dc02f83af08872ef4adf6c4d60f49ed556c5377a629dcd04390df554d1d7ee6f85e93705fd1684c0dd8251af5e33e9f9e76945452214071dd52eb63cf266aed9ede57b2fc8fc106fd7bd37063cd5e109558f179f380c7b1f84f86ceca8b2fdeff17fc155e4a2242f2aff6113a76e364d92cac7f395b5bef28e06aec3f50c4afc29e5717a44c3c11e177dd94a0bef8f8481595354f151900ab8a7225f5c495802695e20a68eee06d877129f2a3fcb6947a59d194f4cf49a74ea39ba9f3f871a270e67a67aa39ea084016c4276cecfd3fd1ff463fd107dabbe0f88f606ba6142b48b5d831c392accc2950862d984508523c8491d06c05f0312b1ba8dca6c123c8d4426de4a6dbe329d295ad5a68fad4ea436d34427cd36ad2660d90be70d887bc0ab2d06fd6324cb8f4a64e6052f324150b0524471a31b624089691991e36b256137c4114fe861e5cc02328c4e2ea23870e5b853c01edef21e1688119a0661d8b000cd842c20e777d5c46416312f3b2fd57bc61a79d03f5218179703ce69e2c422676301b94d7662e73b5b72e95e27fc0c1555e3f959011c8e840c82d143bba66aafb462b6fe91a3721a78de2daefa68a5736d9cab73b34a11174d14470a57193b48b654da7d0a720801421dda01d9dc82f063f1f7363565705d88732408a16adb4dce493d9f95da3343cfd9ca8b466d0fcd60e37138622f590fb7142bdc7b713fd377dea045d83e62b73860378cc9c7132902268928e7db82093ff8ee9713a626a8b3d244f88df2436f45d6903acf783cda90ff700e03a8fdc663249e28047106dc540a9410a4b9f525f52caa9ef20c075428848bf2b1ce5fd3e6de92eada9db861a35f259c595d455b51a890bd11841ec5fa558156d2e09867909b667ff69ecbc9c1834c919e267dc88920340bdd1194fbeff55767d34cee04f639976e3ffc96271a645ee4c1fc690021c75c3f47e59d28a8dcf78ad3fe188a128a10a9ee07a1431b31c32141c40f61d4890c46843762fc4ccf9aa5320b0f00a7c65237fb19dbc515078aea0e47358483e0f616b2f8716f4b91353dd04ef0a45f9d163f3cfc883c21353c5be2c599d6bc3bd01c90e04b47386482ca6844559ee5ff7d1368426da28889640325b2ef62a3e02db28966f4541bca264a4127c04a1368e80d05ca9d90ad61f7155dcd54cae416ca88fba68031c0d42f880288034645612af2e65a851d80bb07a9ba13804675e3123a7826421ddda4b908994ddd69968b0d810015ef73038e30f612beafa4b05224a08fc68bb5ee1b46884197ec463c3f75b713f50afb9fe1e5b05481ffb04bc61c403d0639f806f7031407aec07c01b2e06901efe016bbfbdaefc25f7e757ec2efd3faf627fe9fdf115bf4bff0fab985fa2fef0ee7b216a3fd2b778292b02ee9e12daa154f0ba513b49213fe7a86d0585be20b59080eece3f5aab1f0b52cdee4a2305c10d3f2f8114050dc6ef77fec1dbc8d73e4beab74734fa82fe3b90cc7c403e741ead1d88864427e03f67a7f78ab2769fc2744554df95b6aae03d159d316e6915516ba9d44d83f62bc87b8e54c9834b6d1f2b9db496f6c3ab6e702d1dc0552acf093da15bb5e52959cb9de3790294dd0c738a2d2c8f6867ba80e5d43d36196c9c0f83b176c33ec388ec4ba2d36ea62b70be61a475ca19bb156e3cd04e90f852c8fbfcefffbad46cf0e940d1464b2162e97f8d93a55a5fbaa1067658294f4bc1ea88d13bfff07f556a4afc38e03423a562b17f77922f70159233d803fe08ac423c29c579382a88dafbfffe674daa84f86c60a9252542b49be01d43ce0fff2f494d8937e0fcce2718c748b11fc4af091df845bb248f83980edca5c88ef9a83108fb84bd24fe66e66af1b32552fae428d32d928bd97f4c460d0e516cba582c2d8aa540adbf0a3157f984990c9826b3046a570b8cf1495827cb01780f28b58b1254482f238dfeebbdb9cb47ec42e25de6d43fe91e8dadd216295e688fa897a52241096d60baa56b439dad702aa1adbfb8da1999b0159f6e248e1dadf3825a9fd0a4c488248c5fe31ca5cde945c2f20a99565aa501f928ab75b1722c3c6e56c4f0a0ee031c5968142dee5a0886ed0bd8cfe9b7a06195dbe2d9690c9dd9e764dd427ab9687b1022e66f606f5869882b032f0aeff4273b1180bd077a687ecffc6906bf00493016ce91b7b306e243bc79fa49b41d8614ff84393d34a9f0032451420cf6648c2be2a17d891a78595d7eea974ab08421390addc272a43e914f8e299cb54896c4a091d100b0a1566748db8972a5c874385a52a2cf2c0703e628c59f6d91130b441b4edbe03df9c0797d218316232594b27475f80631ed421b706386ea4b5aeacbd4ad1e0a6c982d8bd7518e33cc3a72e77e5056533ce8a50371c697c1c6014a353a7777768f03d832128017b539d346d9b6da7babf483ad69e87a5e78ae6da95ac75c7b2b701473e8d554c7feda17b8fe12a2bc1d482bcb873ceeea10a378b668b2c90d800c2684fb7265ce8c3558093f14cd9fb3bbdbe1ba24ce02a08010c05e9da2d7bb05eb17b667a1e71b12f9fa4c41fb1702c01f8f12985d88ca2282969bdc7743c48d8f861feab2f0672d00977c57fd3b6dbde1c0917540d3c3dbdfbd5d50e1bbf72e269e49377661e453fca1ff2ea54458ef69ddb7b7d912e9157e02bbab0b67e0208b486621f20dab9250c3892067937fea8ffdb01763cbb2666e39da0683b052159b0dec5b38c23aa74ef523fd6fcedad56e95eff0a3f07c0e14e60ccfa19941003423cbb5516059fca68cd0cab7f69e281b4baeb2504afeb2b6bbf1d6cf0c2a17245a06365847efdf9cbc3f14c675060db1a9aa79ade99b1d5aa0b360bc351b9220aee030059493dcdd897521290450e735a74332bbc2f2ed71cffa01f29c6e1027f04afd873c6f901557c7db48250da50538d7ca42edba7ab64292d6a4b00d5fc32a8a6e01d5099d32fb7eab1c3e535ced91780c8d401a9273da3ec746eb785bc9265f093ed8ce53aa53003542afc666836d732d9d76ab406ac81e03fdbe06c9a2c44ca99b0d4a938d0ac3b7e62799dafed8885f85dc4350f0db0c27b9b478c09885b2814ff8563962911fd21acdb48837efac463691b84fbd52969fcbdf67eac13eb1378905cebf0a9e648df5a2dbfa28580424bda078aaa5a8c9ce7260015aa0f6b65095c642982397b2546fbdf9b0d8109915da64a02cf534f9fa6dfc04fae5e98b182fbfd8062b7ae9717850b3e9fe637a0268fa44471a3d47b7b4a0972d3b83b4d305080ed6dfb923964b6c5691b4560e7aedba7cdcd01570502eab53357d7f8f8b60fa4d50853fc419f3e9a666d195154d3801b743945773d4fc6dba093188591730b6b86a071891e883669b93de2c6d5a0854ab31e5d5f935cd0a4824d624cf401c2d5f347da58e6bafb414094b8fcc5b65c8361388505ddcf39fec695487da29ee52323513cc4211804348e6ceda8de2042d2bcd6be68559bf324b342ce9881f855df33fa0ce49d194dcc94a91124399949c0bab0e553a616d90365b2349ab91a0285be54abad37ef24100511302844a2c150b9a1f879867129d22dbe2761a5651e0c611bd70153f80757331b62036324681988818053191630a6344c64e8c35500fbd7a17d513580fc67a1fdfb7ce58ffea457affc7e5fd2bf692eeffb878ff8b5fd2c97563712fbcbd58daeb878c8f9542056010fe715a9dc1e28c8187e851df68af1a5973953f05661d77912dc61370d817294837d6dcb85b5aa5f6b9635e83aad1fc87bea5c01cb4329003f6bbeea0737865a21a032a737f181eec784cc7a702d8d43050a15fda4cad6da50961c3e44506ae216f52f2839019bcea4074dc585c337ca8c1db2f3ceccccecc8f1fa1aef4c9d87f7023ba829799a0467cb5c9ec219a9e4d34a0a5733290a43337d07fb47a5fe9df3270a0d0c31169fd840429293ee725353b51bac92c1a138e98cb0c5569036f21e0f8fdaaa196df6c8994983a07820ad1e021d615bea13d03f7692db4fbf18bd5b2406a0f02d57caf722d40defc4eef8cd83549d54c9e18a82907120b8ed96899cd73319aea921a0f67f829d659df21aa266bab8a88008bd4221812bbe347960903e1c3836a6106a41b6f692031cdf026d951489d62c58bfcf4c8161af066ca393785a11fb3786604357a6b118c16c00cb553c2ebb0ea3a42834306cee5be3d2a89501ddd99b2d8fb0803c08012d8efa791d32e4754d5f10b35d0308a9c724f6251a609acb1d2732c402f08008ae5712d43e0552fa262886357c1a1cb1e74a1a2baee29eb8c63497a1ed775aadbd88f42794f194bba4893758cfae2414790e2aeff8a360d18432ba8d8b88856ecd35b000e62cfed1db1a950178bcefa0b1c1afbb01549a0f5317b66fe4a88743722b719ed852bf4d85bf4bc109f720e10fc4803dec737a0fdfd05dadb5fa0fd7d4880dadacf5e2791170ef20d685f9f80f7f00b607fbf01e11e631f99089c9dbcf7029a507e66e328e9e1d61263bdcf1ec8ca5ebd479f8861fd70983a70b59bbee56df93b436c329cdca998ae80015c78fbbfb3c77222d1f8f47a5d0e7b8df841a9fdd9271d6e872a5cc5eacc4673ab12b6a2a1a343c48a678304ddc72623e585b0de3141e7cd74c0ac390bf552d3d1143bdcdb5ef4b62db42fae34c3c3f1bbfedbba3d40bb7dc735c707281fb8f2bfa6c97c03f2357ac9af6870de026d254df22b34dc37415b4297fc154d8f1bd02ed0257f4d93f906e46bf4925fd1e0bc05da4a9ae45768b86f82b6842ef92b9a1e37a05da04bfe9a26f30d085fa84cfafba84be62b2a0f3319210af7ee7eec70d8846d08a318cd47a25fd5e8dcb59af5070b08a2a6e37e36a15eb93485ca6fca82cf3d3aa373ac8d536129c7e8c3df062d15fcd74edeb73293de5b57d8a5f6c72ade2eb13f56717689fd6915b34bec4fab989df90344e5e545976b8218336d781fca5e87905c13cad1b4c8c2f89919f2a72c6b189ddca241027dcad4f4870e02b1f8863892d0c13fec42841d369b204ee01b17ca9aac68e3b669e6fb525ee4c76c79bc8ff5898cf495b0b9e8b4a1ac4c09feb17338e5584c94049c6b95aea7ec4c87ac1694f0516537245a3632ee316d88a6ea16523ba44f4087723731c3d2e329f726612e2e27d1448d303a8486542b191ccec7137b03f892c7cfd5b145a023b0a3a9cf18c87e7bca263cc5a7ad8a80c84d03cd671767ac1803c7980eafcf4cd8585ee24906cd6e84d64fa5615e8aa87893e980b2330d12fc9a4c01755f96934d1108b9c182e23d2907e25b430e31b7341aa13b3a34369209f25e347191d7443328c15e00667f74e6c6ce18f0cf2df3684236da85a447789b2d579a08d1113f42be06a2bfba1cb73660d681213d160635b16653bac25d878eb0d700b0888e337f455a94e82cd375cb268684f057d3df01f3803017ddcc75d00dac19b7d43f942887f3235e0b21f455c62e63b1e7a55c60b43774df4957f25d015374549e2548081d4fd9b50603672b08b4eb224bce720e2493aeab7a21fef6c2222f78b5f7efde672cb7158ed7c96a3615595dec7279f167e5395e36d9e6f73f56dc3305df28165ddcc5367d4a08fda71f9db077be4256b56107deb3cef674b4ce6693c9c9fceab7c98f1f3b2fbce978239bbd75d287fc3cbded797c1101ce6ea71f19c865d7802876a7bdaa88d8f652119dd5baa9a2002e30f6a8981fb90158b8b2f4fb02b5f48fbb1f20ff84a3b95e9061f4c706078b62ff7c612a788f2685baf0717c799e7827d25063479862c72d069fe0509ed8833f8832ee79f8856cd16c850e9671a65c62c4cd31ac63a4f8aef77c2e75bddeb97adbd6863f33ee49f45ab4c63ba6d284aa9dde4546ce90a026dfe331243a382def27812b632c33c9cf1c1bcdebdf13a713004ced5d75a66ce25510f1cee0009f1ef5433b6a5bdf6a2258f897276db1b739192185ffeecde4a3742e0fa0ea8099690996ac31ed15b3ef6f11f1bc2cebc5908e08b05ed9472cb47e25555a91ecca046abf30a705ec5d7f091adc956c612820a338b826da1e001c9145df079aaa6f6dfddd21770b52d1b26f8da72f170e10269c3d66d9fddd054fb57174b37cdde234594acc1c8592f09f4492e43928632337265083bdf79799690d5d9fe7c2a74fd9d3f318c818aeb5a9e4994346d24394a3253381458e8079ebf347356501130c5a28915e4d1d7ef543279c9be0be9e48df59475d26b09dce01ab656bec5e7f408181616f5407e366bf3abed893b1548ed080c7d8fff10657f144674a855961a772c2a57d49e9afb582d3e8e53ef5f221549f2b35a074acda3c6d48690a2600611f15102c2577ba0210d7510f9984129bb94a4ee13677bd9ee54f308139b371118c4859e0b3be7a7c398e55e96c96fbbe2af42117f68c99e3ba94715e07f7c0a9cd278a61f8352a4e644c8ce0ebdac615553912331de6d36af941e6323c88479a09db56c9ed27d9a365fc71118b11502ad3a2c5a825acd4d791af8371c930635633434bf8a4ddf2abec0d8610a36cc0ebbd990d4f31a537aa5af05fd7f138822559acd942c842f7db6938efc87e201f033668dd13018e6886c9e92b2413af2d82dfb335c8ae4993c57cf0465d4746134d04d5d94e7ab694c12de03dc37f81cb0c4a030881ca1af17a962247e1d62aed1c63a56cb6aa7daf353d822411742d2964dd7fb4847a35312e60e4611240e9e38b0ae7679a8341531683df767537c8ef6ef68c32a79111fa83589daebb30df42e19c0a53114b3471db27016aab76326681475cec6016ea96e522ce3f149326b74b0f0104e502ca08ee665b40d6554d079930d6741a0c486f6c9f63f75cd30faed5dfa40bb69c023e260baee07a6b9880e8e0de1f226cf9c642e3c35081774749772ee0d7c71dd016844ba3e21939fc9dc5f113d55e07b7b666d3c8a41bd97b6fb9b79429a51438067806590637aea8fc8c15a1f2878b45c5321e98fcf8f479f543107e508289124af86ffedb672e93039abde997a4a3868dea39f424c25c7ed973a41a3ccb3cf3f72cdc2199238c7df0aa9bac7cb84fa8ee3c7686ebe693ee0d5570d134d1e5a2edf7b5db77030ab55f48e92efff6ddd0e0f6f26bd7d7400d7a8e0fe4f8c092cfbd19b8cdfc48dad01e69ea5436147db8243bd329d91952e949a4e7bcb0f4851c75baad51674d911577bcaf26ff62637893db77b41d51d4837ed447ae8a3d3d1915b4a7532d57ad7cdc724add59879dd81375a2ce919322a326aafc2c3a34eac49dc83ab2b2a4552bdfbfb890077193250d02895ce468635807cca4c3f6dea98d443bc33d7fec6267ba25d1b085db7bcfe6f1c05f333779999306d9bd02e91afad1174e0556c597c3f010101104957f391a51d9a68985e17fe21545188b2a33e148b167877acfabf2f34b219d0abda772142a226f78db7a3a8504f326ee6a909d49655fe2a4fda853d9ff0bca859ec2ae2e69b9d1bfa05cd89b34904bfe6c08fb80af77bdd8c81a658f6d9b6318f6d2b7edb96e9f0efedbb771111b75914e6dcd5c7ae6ec370d32db3418fd6d6a18abefb6beedb699c43e1e1bb3df12c3acfd3fb2ca83d7ff9719e1931adde3506634d8bd3f17756a7b7e36e223be51e3b9cd647a1cbd79d9779e0d3334b8e1006a96657cf3b35b31c778d67ef906cae90b9f05f5dbf6295f0c2f000bb33dcadb9e6501757b189e92bad108778aba3da9571dd36f70930f63b3018627bff4bd6ccc16c4caf7e003cdca4b6f6ecf5b6fdb17fac05af9651b56be95df3cec5bf1dc1f876f10589a950f9906207fe6019175c59b7585d0aafed1fb9538d28753cf38c1165c6cb105175b6cb105174b58021296a8ca8ddca56d1f1b23b948dc2eede3e8fd3c2e7729e4405dd5a6527e1f8755a95851e5873562765d01248e64fafd6e67509c39efa6c715c56b92e735c6e8eea677d3bbc9e4421e9465414366a0f8281f3293ba916a307d6c750ae581766665307dd4818bdf4ae824ec0dea425aa5d243495edbcc8d25520d5c4a8a0a4aeb686736e274aaf4ed6d25f1306be9771063163bc3037523ec0da73b53a2a6e71e8543c970404b1d173235ecd7174f287516f0a196fe9b1536ab592bfe7297ff3a8af398091793289e682209879a1ed76635cbab974a26520da577194aa592d7ce631f262f878879a9c59162609f82a564de6a390a4a8b7e212ba1caefd287adc9bf66f5e04c6f3918d17dbde52d8f383dcf42e9705e0df7fe91a5d8982896860d4c6f7a2e762a1e0ff1549437c5ca5244b13496b410ca054995eff25c76031af26647dc91e988368b25091a7aebc52e57abd5da18f932bacee39ae2b98f7bf4220d23dfc80e8f9b6069c82f799eb331de424328a85c58314495fec3175d22e59095f4f56bb9155ba59df1ead2158548a2ceb21892a60f9b8b6afa52483598de5f516865307df14dd3e5f22fe41c16114a08e771ed7268707a5c51a68c7cc6e121a47cc93925cf2b97f5ec52d881ca7d2db4312f25b47cbf6251b41abaeb6b8c1aba2bccde3f5e18d3a77ca6277d47dc7714361255964c261e6235fd0ea66afa7e9fe4c51a4935a07cd124a5e97393bbc9d43cadd5d4a12c54cfb74c2cd6f624afabc96b16cfc6c856dba0d56a75500b610a94922a7f073974f097077deeea140704e5ddc47513a6af79b8c52d6e71ab59dcd74054c6556e848561d124cc2ea81755ba15a2102b5c1eb431f2252907e9596040a50ed247e2ca4ef8c8f4b9abc17518eedd036222915c8b2a513e0f6a50724f105a4ddfac22553e8b75040aaa7c3741952e57e5d030f2bb69e472b2af23b9d2cebb224b3d1a94df75e5243bb37d39b42f08cbf8459f52c7c0e2f625fe56f71cdff1b02f661d71aa6c81057769911103c50263e5a49282424d2552c76dda7c6e6eac05cf859f5e6bde91ffcdd39ef33617afe5dd7379163ceff8c66f6eda1bc755fff23b87d4c5e9b3f3e7dca3bb772c782ee848f6a2728b59f076a80047aa81858fbfb1f01163e123f6bce342c7233a3565781bbbc4eda5ec31c982c73b2e1ef3708fc748d88705c68ac7400dca3f79dcc463578341424344dc796cc447eca46dbc16d230f2a7b3ce10f59f8dd3476d94437f83dd9dd7ed99cd99615a966933c37808ebb0241355a7533a9d5ade61d6ceac0cf38bb371e4fcee9f3db339334ccb326d6698dbb4340c255b20610b246c117baf9b4368285f3a501d0d84c88c65856df343f9e84764fabe6efb3a9d7923a4869247eac81d998412214b0bd6616404a0734f2586b704049646c6d4825850b3692d27278765357966cf44327d603a18757e9395e3aa9944cb899f9683ddc823cc460e79f2a50d69af1b5749a22e729556e4309a4da7b42bb42036a5052d288de62ca21e5792004a3004e80840aa918fedd0192f74d3eb564676bc8ed560f3d8a0ea170d692e205709add40c3502a9b9503d901b564d1e6f0c3769ee85cebd96cad1e8dc935137ef88ca4bef880c19df046a06d018557a47543e7eb3009d7b2c95cb32ac26a548839d01a010b302c51e87ffc058292bcd9582a34e695b57a373ef545f42a62e86142b24928e59b54f8b31050d5372725c858272346de80d2a0547be34970ba9a1e6120263090d53723056c5be70ca1e15a95249598191806e124143390445c23e96957ccdb5335d0c232396154b8c2296957c49a156a960da2a48478845d463e4d312d2802611cb4a126939aeea763a1e6dd521d172ba241aab5ba2e5744d349f2e486b75421a5026a3d399590ba926fb345736a7ec368d3b4057da3a89a02e24ec4bc9e96a90692e2da8552a3add4eab5856cdb2e2a148505d926e49abf6735fd835a9cd02d405b1b83a214d68e5aa1351c3f49f8c744e4ea8909e21b5595647b0b4568a00d51523b53f6471d54e3192d20229074bc5bed3508c213001d358aa8a9752a461fa5d20d5685f4a4e0fa8f6d8632f2bf751a9655b023af74a557a475a3eb6bc6cd22a18dfdfe2b1ace6cb9b2b1f231b32f2255f289eda3bb57f55c38fe1c922154f1e799dcbeb5e0e235ff235d4016d4cfff4ba9cae48b7f23a2355d8d46e774cd66ddce889503628d7d1563ced75f2b421520e54edbe4e47e53b1aa4e4744375eb8c3a269ca0f6f7775cec0d2d8769f4b3186995caf7b3ac543c0d00a41af969aeee0af3fb3ba2aea853b2537167785ad5ed344c7f50909010119191937e174839566a5c7d5be6abcacfc9a75eb7e5b44ae5cfe94052cd7c90a42356ed0540d2b152b9afd31901953943b59f03493174a6c9dff86584a89cdaaf496f7a19cbaab9ca2c373af7340574ee4d6e019d7b59adddee8c0b35955264bc4003066f46912980010e5003012eabba00e880e6034a5b40098efbf0a56e78d2342c6af2b34e88a7e9fee3b86ec68c7a24d12053b5dfedbb4e7a2cbb26c92053e367dacba891dfc6b20588cf7930b600f131efc434226bbf7d5d83fbd1e8b3621106cc1d5b3c3d4eb22ccbb22ccbb22ccbb22ccbb22ccbb22ccbb22ccbb22ccb32ec67d6cf39a118866118d771dc478f7bcc0b5f2a462b36491f768dbb375e9846062a86a13c9755816e832942305269737b29e539e55b0ce4c87e3ef8c2371c00a2a8e92b7d5dc317520e07dd5194fac62e851da83b788ddf8e1cd0f8e1b61adc0e8703e18afd78699181d6ec69cdbefd62838e1581a98464df12d8af12eabc3e6a28ff07aa4aace321e0682a04c7719b227f914c0ed5f5e6102ab118638c7348763abde6eca68e8bcbd01cc2ed10dadd1b61a211f573080db11dca5fe8a2c385a270f3bbc0104208539802d68486eb9273528a42fdcff678b334fac39800842c547ef5c4b02cfbedf8366c78c4de194547d00eb640e4641bcbcbcb524a29a594d279654bacd41203e6b1a8fc1d60d4205c8fdc4c1aedc369c3f638ba46a77880ff2814c5c1e36f39efe683e02734dab711113be591bca0d355429600c2fbfdedc664bfdecc6cfc9381567f2fec804d0de2853f5eaa7bd863fb88c716c3324a33897dd6e0c68dcf34fb73a598a2faf02c7971fbb21f7f69f877b8aa65bf9607c8c73e02fef1e3407c7fece3c01237c477ec39e02fbf965d9a28d0f02b93eafe48e1277aee717713c1a11a942e279b17ac7685b0ce0494865581bb8346953f43837207015665e300557e47040db7b5c355281411344455f9d8d71243f74defbc49aae91a945cf78e19862aa9cac740a784b48a85d50d9dda1f23aeba4243429865c48b1a6ed1ea6735855cc6421b5562445655d6ae3a828648346044985483f6d873ddcf39b0df1e8763ff35d31efbe6927468df919ba7e1be16ec976646c3c86fc19e2bf6810dca9543560aba3f37c8a9d807c16a3f33ce148212ba659687a4edc36122f3c70b139fa170425005126bdc2635bebca1c19823e6b031b107173494a9c00f1de253606fb8300dff6476c67b5da2b750e34b1c8c88162f40e2a946c59ee9c660157cba580e1b83f5c08286b462df3a605f015761ff83027b0307a681cdc7501846310cc39e9b1ee378e1c0010b6a178831c4686393557fb934fc675733393fc8ac7263fcb150033566cf4357ed8b1bb30127e5883546d94e38be60983f86f5b27364676f991d33b8bb7b16831ad217308e94cc8dd3a0fbca48b764ff35be6bf916f94bc3f5ca55ddf6b5c4cf590da2eafe183d31bd8dfec5154ee8ec668cba3f5f0051a3f378ce6ad07ffb81b2a620a446ed0af4695063bc01659cc67112999939c618a30ee3304e17abfb7025e0dc334c468f913a814dd153f7678950ed77a1eecf922475bbbb518beaba066b4c2f88f95a8cf3b7f6e003cd9cdffce8f9174e0ed8d4fee9612f5f24b69772355831de61561320ac544cb33f37e061244574761ac43e09f69890ac688a16ab533054ecb9e52aa6c19e5d9d5a9590e9b3c4a8aa60d8304fa7f607084215a3c1de3b7a4fa7425f39924ef113aaaf5ce53798e3c419602f21a34ef563f1b196f87593daae6faf811ac4686caed8cf14ad0a43f58e1dd44150ec33ece325d40a1af6cb7558a71fa712a02e144d60edb46a694e95073ab19342a8fc1a0dc69ab830f15d6a9c4103ca2829d74f9817bbb8717b59c7617abbb918dda5afaf73ffd21d28b1315237c9158ad4702527c9158670e2c889a155f518c1d875ca874e0474c3d93518a46b40b119b7533ec45fd2d66ab01fc9c6cdb5c5df6952c4438e1b6b10c95babf6c72fd3d1866843b42143e690690433b38eadfedcb14586afc6af5f7624d504e9ed9a9777b99f4f757ba8f15bfad0ebbb8b3297b1e0410e0f6e769a40518b70a67d7107abf4a21c405d120d5b95df6e4c24751d0c9322d73048d774356cf54152f7a70a271555f7a70aa1caa418b2274fc28e9f3bb987f9101d55337d880d720dd993274f9e48964ef6c4798c526258d631efee3233efeeb2a671dbe6eeee5d477277f752a9c499ba6904dd654adddd1d05254545e574621ec0ce224837a03e9b4f830cbe9c60aae3d0f54150921afeab53c2413040311b3301e08d0de4211fb6918009862dbf06bdc120a04e42d5399446750738d842096ca36e8b638cdfb28c6871a32a563aa8a288e3806e757faa3062abb801014b9541c3807256c8a1a626acfc986841e4d4580821082651b40c9834e10465a9fbc3a405486042821e2640b810b4abfb0324851350aeee0f1013420084458c4041a8511569368a62940f01f4442b0124834e0288045d033aebfe0011e9163d7de143a02422f701256511040a238a3602153cbd032a8ec4f054978a20b2ba3f5490808a225a0d320cc33e1a838ec04a50a495e00b207c2e812243d5fd5912832548286989400bff0abab9099beee6eef61370fbd212811e78092c1aece50bc1344b48207bf94cb35fcb0b45343dbc5044b3ad80bed7fdf1e2c7695d13133dae9e56dd9f9e9e98ba3f3d20a8146565c89808ba3f3d40d4f8eb30dc32fd025536c331fe0468fce623d112c3be25a494d2a3cbe718a38cedddcd930323ccdc1d021aa3a4f244390c9b736a9a46aa89cf6ddbc671cc35dd735dc7dff177a6e748a41ad273a512f65b439f3375d144bb8d349f43e92611ba1e374562d9d4b694dddde5985432519418258d2bc7751e574e6ee56467f2b8d26e12a1fc1c0a69078e07af2735c83ed725c9e083195999237e080a13429d482319bf2f873ac5ad7648c7553dd4e3aa18bfef3eae52f97dcf7115ea97e5bb0a0bf617b1a93e1ae2429cd8ec3751abdcc6f7dbd541fd6aa11e729d8defaa953f3d90c3b4e977fbf516c60aa9eb52ba53373bf752aaf48eb490a814da91af940f278a4c6bb371184dd3865c5c8cdd3af736468769eeb1e631d675ee754a91941c4d4697795cddf3ad498a0b35060b865c451d861f5574d40d9d3c1929b1ced4b9176b96916a66a6699aabdb3d59515e07e4721819dfc269f0889cae48178591f695e7ecdcd09597c308354ccb5736b96d9abef67671df644dbaaafc534ba19d7b5c2d7927a25391d191139c99e29392e3303dac9591949da982d24deff43a099d884e4527a386e93fc2735258293a2939614a4e57f734a482dab83a5795ce3dd264b50c08fea350527ee1e491c16cb01bf9924345a8d7c6745dd775425a2cd8df48826a83328e8a5e42444374a0eacca66469416d8ddb8282fc0bdbc82855dabe44aae9bec4cd215cc3cdc73c2e05635901636def7244e5b97659e1ba3be3e29ea9ba564674e4153c8f72ae85165ae828ad5ecd86611206741ffb3af7502ad739b1e15d07d6507369da1cd25c9a6bbea64e833b2c9e1ef99a5a4c24f2258f64917cb5265f2c46fa6bb47f928e203f8ee65048c0a24059829c8c18dd22c3a507a0121367d5fd16777769911103c50263e5e452fa8e08e175c67c409b3ffb8176f7d749e6cf2ceecf6fe3675f0ce2753fc61823dd985d26fc3829399df6c6c6f88e318d1bfda1ec2ae51799c67e7cd73666b7e38cfc4dc9ad458cb13fc8fca1f1f7475799638cb1ab43e0ba9bc147f5ecee6e1b0d6ec7eeaed1df5e70bba9de95372422a47797aaa0fccbfbdddd6d450bccdc464d5499f9bb894d037d9db75d0fb5ebe40d15b5c77fb8c97a9c642ca34c87285b096539dddd5a90707a9ce8e4947ca2777777777777c7e6ee80346541609b29b87dd9ce5b9f27ed09d44683fd32cf63675cfc7967e47344980a4b546e870d33c48086322d1836a61f2b426536186a3800869dd1b135fb7eceebc10307ad0ab4e3e1aa24346caf6b100712d01db2d7d11b0efdaafdb7b50ddbb88e808a5a433e2f1b9f9b568ecbe75be0e603e3f0674ffbcddbc1852012abd887a220a021dd3e4079e030b4403f3eaf568f4ed197cf5105c2c10b6ac832861d7b41436c59c2babe9056a07463b335e9063f97450852770a5d5a46a8fed1a360fde003d57f80457da188a69b084faa851623ea08092dc6183da6c5aafd1d63f4e2c7638c31468f9d7a690d8944a8d7fd690227072f58829452ca8e316ed749e02496852ea97046c5917d3d1ca67f9e424aeb17ce9a1edd6b638c182986af3a48198b9430186576b22502174c56455afc3044118d1b55ff5fa12494a0a8fdabe40ab5bf9bd41fd5a9f722a4e862ca957500b57f955851fbb549bb1590c48d0b6a1084050f129a8ec29107babb87a0dd898a1abe24b1a9fe717a9255f5244ea8aec409b0c609238a28c1149290850a180a545822b351c3ee0b2a7e50475e9024c300010a202880a8ddeeee6e3483ea5d757777f7169e10aadd4eaa1b5d517dabeeeefe037555a4e1aac485daa627420c515f602302215cd0430222ac1620518ddcfc3cd1447581cb6128cac7073935a4af1d1189c0c1086480831434c007383f3d48d2440f6aacfbd3039f1afe1594a06cc38e067b8fc0feda0fee4cfc7e9855ed6857026a6751fbbb520a68fc91818de9dfe12a0d304c7f179105086a3f03c1c9f855c0478393091aceca8b82e24e34d0ce90ba2ba580cabaef3894ba38f2562fa9fe19b36c4c5576dbd424ddea250f581aecebc18355daefbfb04afbd849c3788abf21fecbaaf9792905d4eb51e5b131febb43c83929b56123b264cb39bbd9c6c6a6f2fc07842b8f8d61cdc962230d3a6b63fc995818ff28504fd026fc3522ca3abc6a70b268c82c1b95d5ad11b5ff6482fadb585f5f20315069c38cce475e2769d0417fffe8ceefde409c92d945b61365b22ccac85a50fef07fa4f0b1c18e4c1032bbcc1c82b983b3003b0df7a4505e0d462201f5b1332cb5bf023be3b5bb3bdc27d49640b6e53112ee69d5f5e130fdcd1d5a8a738498019477447bca81eb79fbbdecf73e8aee17ce0ffcfefd08e61dd1fed42aed5b7bf94d16d0e58f25e0f6654b5dd0fefd9091547e46d263a7327ff4a6b7df23077e1f9d32557ec6e11cd68f1c185566de1a6f2749dd1aa296664b82f6472712ece343e0b865d6fe7607f3a70b9a5bb045cb3fe7949e8f0667f021bf1ed2f321df47b78f0673e891838fde1e3e6cd8d160dfa03101ce49515bd403ee39a45dca971f60e597da1fc19a190c36d8ccccccfcd2a04b6587e9de8cc821bae97cdb0ae8760eab0a3205336806cd293119df012da339e14d7ceaa3f8f3af4f8df3b2645f42a486d493e05afcf7b4a86fba80cef93e3078e9acb3dd7f99193d63468907dd6446679d4d1910b461430a2fc2c9235ffe72ce89cd29e363534e89c9084efefe25424cdf82395a652ca10bd437b1f9631bccc3300cc3f886bb6d84dc604ed3cf37ed836d3ad5feaace2ddf20f18d9d61d999583d8aea7e45757ea2eb82c6e71e540e9dca9c48b8949b5403447ef61c8661518822222caee49e9e4e21e9d4fee4c0497553f5e721366a158300879320d9a94e440df955dd470748d490895ad57fbd396fee1296a4ce2ffc9a838f1f0dbaf628d73c94c3f86f49d0f8d18904a52f2b3426801cb0e365078e1d3e3b58b2dc1d381ce083c3013b70ec001fc70c3244384286f9893f3bf3fa6783dc97527ecc92254b7e1eccfb36744afab7ab988617eca136748a39b4e13c5fb1883935920566a79a144394fedad2e882548969dac603a669df9cdf8239668d75871e6a5c71fbc201a1f1c349833f7922039ad8a8d42d1646410a118d000000009314000028100a078462d168240d1459f40314800d809c4472549b4bc324c9519032c818030c000000000000204034180e008e7550c1213828a81ce8d819bbddb2257e300bde7bfac3c0964cf2ca1a8f42b0bdbd68e5835e62df8ca06b8701ee45c21d1cfe7f1abbc9c1145a18563e79210411346bc7414f3f40592eca68bf5af840f21435c7ed337ce952b4bb2667084a29359287a4f3fbe567d631e234af15dc2b79a240f9b64c9d225e0c3cc532f23edf8600c308ab788ecaae496471831f67b92bc5dcdfaed32120800f93f2076a9671f59b6bd96ac1207635bfaecb0e623f08cf3959a2f22548b82f3362df8fd7df631490ab2da57dbde1f621b5ec7a468ca648e36a635848333b06278f6341b24c80a672cd649ad63da5c934d1707ada02c41e221223447af3fb4ee15efde710e9f779f0cb222f7d9e4c858b615eb6776596aa0bc4773eaa655fd3dfc0af72cf3e9487b1014926c2e12278a96230a03f05229a6129006d37e3685524fdbbc5af702a58b5341cdf6a262523985a80f2785ea9597b816ecce51b08173eb13ff3c0183ecf5d3cd5c681d1d55130633bcac44464b4ba7238d2e2c754efb6534cf3db5915573c07623285854f8a05ed893e8c73e20347332a4a6f6de09f276685715a9aecf0edc642edfc1bd90e841790fd49f478733284d04d05790285011ef1e88c04cf68888fdd07795d403f3c2153069ac84ba39792968ad721429af5bfec9610caebd4009d6255f09bc909387ce04f95a254197acfe183a8c2c2071464bb65a34b9c197b846145c698e1e301c9885c69844f1ebaec647c21eee2ce6610f7d21278e7cd0258018e1ef62550e7cc020a1a333ab4bf9c196314208b361635cac7670ad1ebde6d9172e98c7c73ce54b09a5bf414278b6665e5d53c8739c71a1750d1129b1853e7c49d652d4117d06624ffb60d1e10e98824fb4ae13314771a3d3ad6f5486c978ff39ce9829fe12aa8a5171a25c9af3c95bfadde035b932923c2f01257a27abe1c17c417c664b373a65d4c0c07a233c72e93f64d9c391f0ca4ef9186700805c4eacc764a96b43358a9c9635aab614cfe57d6309a9e3a33b0bfd00ed1cd0e228f7bbb828665cea1e807164e3c872d7f0569c1ee870386f77dd31eb97529c1b97294bb0ea4620e17fc7776276b58914ad65a44a31fb9e105eaefee0db2aa243096de309b6fc63267df7f3d3907a562bec040a7853d0731384564c89e88b1943a77d121568dce8a6e2ed46887840d0997f01b5b8056664084dfac2ffe0a97585e92931a1cde7c2e26e931bc147c17748fb06e059e4c0fa29153aac39b8afc36da2171b04ec71f70d999effcebf2a8717661b5a3fd1cf54ae1f2043ca4ff22d39c2ed85ed604759c946d880896b092276ab84b7d0c787e701c7940535a810bb562c13c553c7511b5be76214ded605aea0b8a472279569f419b7ce4b127320eea4e0b214248d1bdc823c5a69f2259fbd0609d8a31f374e1d1a622b633fdfe924f5fe76840b47ac0323f298e5caecc864aa0e188bee449588652699a560895eb5435f0473307b73be57044c3d3dbe49b06229c0b330bfe958ddc670e4ade679ba444e34a0521e953c3e5148644ce26dea1345d2f6656659ce340da165e9d70eb25f7e1d88088f32703ea25489cf5467b8c37668827109514d178cbe58d4b84b79c88672ecb3dd861cf8318691cd570349d643b29c3aa7cacd610b257c85ff8cf5de0fa5a031d85107aa9aa768c61cc0f19ccb2a9667da856e65f20d07275411d3496a5bb0700a29fdb53023014c5b1b7a826b0b748d6640cc6eb2df8c14e27e01e979d85d210bc235040ba3bde75ed081f0689c01df587e346827d66f0d80c9184a85d90203671e4a0ef2047a523285820be748301442f0dbd73d7378040a09b350322c24bcbb8d84d1724d5fad0dcf8f61a4592bd0235a422128a914aa54e512b7a2c641535e4459c0dcc166f2df0809a3d0f5bc3d60b5d2f3a782b713a2e569f2cc2ad673ec34cc61ad0d95c2dfabf23ef46785ab9a9986af267c90abc21b75b6543731ce6bcbaa74aae850a6bfa2f03256acd507215d7e58178c6718a1009300c5f008a3af1dd7faa0362edef2bb77e2c09c8ece14bcfbd7ca2a96286f65d54a1eaac33fa675054a994844746dfc497d2e71ce34b92c531828170c0c4f2999069991de8f36c0920ff516c7d538769e0f67cbacb62863d340f27ab228270c526753c97303a774e3c95b7ed8ff2d765679fc1fde9122377325a273001cb32725eaa32ddb138bc455aa1040dcc260bc3ce26f73868bc6fd90f24eb77c06b761d1451288a978c43fbd42cb6fa33f64cb54e2fcef43f11c39d6bebcf02905f03d0075666331ef4dd196eea38dc6a4fbf14ac8d5f3d4dae7eb14e6f170c4aa5a574733bea90ba300846fb8f77652a0f78282080d1da544284b27b0fd7cbaddfd00f9ba8fe12877213a02dd70051b068a1f1e554082b8cfdb3c45533aa3c191a2bad7b54c1ae2c0a77af7cb1a359bdb25792684d18d68fa21e141993859ef3d851dec88a7c88f477abe3fbcc8e0857c01734dd27e83b0c5a0f325c0112e18061f2ac53cd2ae14b50e433e8cc6df0c01aa6ae37326866cc2aaade568b2efc62709807786464af494e531a61293702fc78ecf495bdd0a3bb6802b77009f8b850134040a3ace5b4541b5458011b84d6c8e5a029d98848c3ddd058bb8c256bdc46fc8c8c1eaaa68c5c2bd333ea28d2c4633067d33e41fc0f2272d230fd3a27acf3da5dc8bd1e824eb2b296407b94c63ce1253eb82e45271db8e8419c61068f1fd4cac657330cfa294988e5a5781d44f635aa165f89b114a1bde67fb8c1842428086164a29d980219880deabed9ac57f3265180886ac3b5a6b44fafc6c75ecc9313b2b1d506196232aa78d59b683d141012f1fa9113b3380a2d2c1d56bc75722a2e2599dfab1511d5dcf429fbc8b49dbd6f9306cc1581a509866946afec263b8c22e0e087422726e84d3708e3c86ebfd8aac802d7179bd6caa7d86086e6abc4649a882a3e78a3d94964a6cc8562830911136ad1d5c89bf75784932d824976f83c222cd8a9d2e82259dc3fc9c6a22447be0505bc96cd41b735c27899e55a93697109b3eadb23a7a5e8ab5ce1419aa101a7bf884197a918fdb74b069fd7631d55abfcba2df4d64c8f8dd8369d76c49743ac06c9496dd1f47b962e95a4b6366c82623d96eb81053cb24afdd06f0bfc091b33b8d6436d44630162602e60578eb7b9c00e48c1c6180f5cbd6c870dad1efe85a8192551ba653c2d39885e3eba06a46d4d3085d34a9aa7809e685c7a7203381689ae895c93ebacffe1af3ce3586e391861b7ff6a5955c2d65fd37c15ae3cec9fd3ca19be764562e3c5e40a676bf1909ac567e71812be714fc2533943145e7d84b411d4e6af598e490a92312aed362e32253690b34167386103c304bf45a3a3e80e26d02d9c776c3e231dc35db685d79cdf0315d4843ae9a18fe88a4669b61c882c484b28b65f23a45d73af79c9518476e3886ddf492e7943b7ded0e7c134a5296e630134b1e0492f3bf837eac02298bde0f400378185e33cfc9a2887ba63dd6018d92c7eab7c5ffac4f4a08778a3dfa5613c12ed7954fec3aaa8d29ea49ac835c8b1dad456711dcf96ff2a4823db9449eaf5d47a2a44a030a2845bf4332b14bb78824bb4551e1b8ffbea249f503954235ffca5b209f3898ff226099ce585187704680d986e9841f23fcfbc5d788314ac5628ee714154a3536647fcd3120c87e3df4d709bb8755aa33bac549de404d582f4844be36a15bb34f532a861c91c24efd220a654b4821600f314fc3834bbe1d94f873f78297daeb4818653a38df5c334df2e49ed8ffa8ea180dc4e5b39c1ad49e5d3e4bfaef386a703b581a7c0265bf28b3c0536f6517ebe5483c8aceade15c0407c2e626f519c9ce160a4d7e7bea9f8b73d347dc2a1d4ee7290044c261ff73381255a9c8ab86c76bfa1a5335697e09046a024600c0c5be72d08fd324b1df323f34a0b3213286093c6c3af4ff1e16b3e65e033e8ef780c3510cb1df98c3f184dc0e9189eddb6ba19a4f52db58e827afe788de6e8a4ced51c427698fe33e43ca08d00ab90d9549ab5c0a4a1dcd9b2faf214c2cbb30b0170f1de8d535d4f14401eff118a47fb083117f7089ccd7c1ae555259e2725dbad1aef30722c4c12ff61e56f956a4ba970fcfcada26e19ef0f01d66458b41bd757589dd0674e4537a14b603c42dc635330a09a9497a5181272145142b5075f7842137c2abad0c20b674d9e75ad8c9fee3264ea131ab893e8110faa1053eaa53a0ea381444490a682bb19808f0c92d7b7e5dd1ba2d1b83a466482a0062f8d82a177b0d9c1d9e8c54b15c14284c54200586aef61b07a42521872fe42d366df264125323464579610c9fef5af34d22c45e3132fa2f9a7b000a2e61ef884d47d94f035e3c458be62c70b17042dc762b24a72bd0382abb1a5a615df1a1510087185ecc07c8e24714029df9358870b73fca1379f1fe4e171c47bde3a7302bcabe5afbb0480f36dc53483b24d70b76d262d79a49fc5d6bb100ac16f7ef77453334ce0a84f319382e80f9c4b0b321e539ec12e92e2792de6ae3fc4471e8ba0c07914dda789f34f011ed4e8d6fd4dea5e6f05070f798101a7237d09f0d4002698f507a942714491c20227883a943e08e1c0a5bf897c478ba38f5ee9b38cc8f2d20102e2bb49b10e1e481afc3fe94e1c1883a27af45c6cadae6338fd74633c89bef49c768f281b07585b762b49462c45c4342c163939b3665542255b26bde78faac7825d5ac0db5015126966b9dc0b67a2d74eed66191e647a201ae69d83f16ba4b503527a5a901614528a4db50260829aba72d40e3c41d36c49078494b0171603670580d881e3d6d2ca1059df8f8020ba9ef80b6764ec6a1f74f0126b21ece5b537a4472bf5d022b8a758e9d59c244666b1f049f1e24b906b15234997c1a36690548aa432528f2b50200295047c8f223afc4697228e73dff7bd2842c41788ce498b3cf3e2e6726ccb6cb4d96a4d8436deccf02757071c5a162dbb707b26e7a10e02b0628a37cb776e40439e233238b640a5e43d3483285b1376398fc990e7f83994b3d7d663c8661b22534e0b40f3bf8906d1f473c792bb1009ebf17bfe59a08007de648b650e2690b4abce39ad0b6ff86e637a30428a68e91d8447eec0f53f6411b251f2763b05040f87f9c30cd630e83976cfdceb9d90af9de680881e26403c142f0efd941f9bced930eedae7688c8399de6be8a8384f36f63473e6354b61ca38ffa8747d6ca2a9525f4a4341afeff79d6e1188ac8b79f91d075aed7c5b4ec8e21d042353672c5e120b309ade504fbb83029b3e58877a924346ef312d22dc661f62d157e25561ade5357e0e3f334d50ba0817a14711447f83d11f1810f87ca0e0c5b6233f98c8b3e4e3cbc47128a65c54bb1bde1432b4ce76c95f9b2444c637a521291735a135061f86ca48e7c466a17bdd0f7ff63b6bb7fd74aa0b2ecc5950dc0db0cbb0d34612d251b052e68708e466ba31736de461d1da9b8364bc69a0caba6d6491cbfc835d898ff6fe6ba558810a7d134b47b13f1d36072772eddf3e94e230b502707a9e65ab70cff17a553247a5010d8ce0f33b9208f167e9adbe42d1fdc7e09835098e837c6655343e3b3f2c99294cf8048bf587c52d14d4861f9641d88cec39c10b21a42a6de8af12826d5f71a8df0e3ca12b658cbc0fb579b1052461b153f14148a339759fa403ebd2428120ba7280cc8bd960c3ac7767bb8987182c619d688c51a8d995e2343cd26fd10a30fd282bc98cf788a296fa98e702669c9d130f239bb46111681ad5481853a8243f289d15e6582ccca09eadf96ac62cf4e13d55310a008fdb2d1674f3584e73219488bbd89bf1722e3c3342ae374c2461c3d2037ba56fe80ec68ca78362448ec625dc1123fcea9982450435b3a1103f77eb858c86965ed76ad69f8a5c5f1d6bdb0263fb3f4a5f9174aa3272aad2f8d82958c0351102d12045d0601b2b8c68df1cff5ad3ea5295200554b65b82c4454f4ba706d16a102502a91e45786f236d2f04b5280b828eb5ea454dee3350c7629932fcd609e2d3eb13441b4e9708d9ccfc5e4f4021e5bba6f9951f6d66a20de992e7eb8230124bcddec3acd3b53cd8ddbb67d3262aa09a488fc154f511baa126bfdb01dcadc1f80c665208b2949b145daf8857c64ac075f08c8c12db71ed7646d0ccff92564ad7363df5e8c9f1f8ea9b444d1ae77ce38a9811d4f182c57b2885f40e05cccac93a01824bb01e303d80c631a4b37509d9f03fe1b9c24205d4b8a777750475b23b45187ef10b050e6405f175933d0c0aa9e2c8d1acb2a48c65cc901f900507e06e2249804b593b415b3f419901d79dfef3c6d2422f30b7634b0e36602719203a76ddfed0ec728156ba349cb2dd5d3621736a27e0efb599550c188e72395601cd899391c6be909e3700da902b942d8381627e560ba8abdd466d8c0f9e3ab5d6ee29db10fef38ce091d999958e203be91b441ebd4d0688b358743e18b78251700ae39ba034c26fabd13764c08a4bdb2ff449e483f1ebdd38c9bd0fd7bb21736831e218f65e28818c4f126b1f1451f133cf22a2efb121f38416eaa6d8f50071064d142bc300042031aa2818d979a68c092d62f32c42892383068ce685de5f43730a9cbe33513684b6a2cdc52ed702769f4eb4402509f98e2ef847a896e38a167d29f2b6b85c189c101d87121da5fe5a325ca9873bd0ad6801cbec09db8d8ecc6d1a8f1761de52df6eefd98d8af58a2715fb4ecf8d45d0cef5199c937d3d154acad1ac100ff41f459f3a8615566f840288597a9f2e96004e79d776c7a2485141d92bbce0471c2ce8fc77be40b46f594d3eb446d5ee2ae23cebf7655a603b129374e00d2cb87aaf756df33c02d3817867010d9bc92191f25a8deb612737a195951c115a596b2cc2b8052f5cb3b7706e9eb0c6ebc5f8636c513d88107409ac388f3a24628f5e396b4691e18140766012145c98a22221d53d238d7da30da84699a544e98db704517c66eea54eebac5943563f20756390ece448a20dcd61c420e9ae42116e1463c856f86610ee547ce99c72a227aa9168f3268cded6653efc86618fb4135dd0299d7afb8a890e00644655860f3724134269150f55d3a967f332196254414f856bb5c06635a25bcce443d920aeca1d1775ca68e57ed63ca48a09602d6941b1a4f4b7dc5a89fd4f46889d33bcd8353dc8e9464078268d47750acb3a826f092919d70ed97c8968038486c9e2c734264c0da9ffe1b83015ae67fcdefe38f9150a21d577cb23c4c3d40bf692b3ed65009350965b6aa8dad51fff51bfba4533f7569837b737614b263501a02897a4968cbb441da9e6bd3df7563671dc238ce493e089b48417cfc2a16e4314ad2d8a237ede199dfd5698900f7b64103cd0e8d3400a34fd3c4fd9c48ad053316f131a2fbba339ae39f3174c51c0c098a5851579b698513ca6db497f86966b4eab53870122ec8cec2c9d351121aa3fcb3c5147d589c4c94e5cc7f3a381c346120acbf9dcaa2992d03938bd0d9d2694bf781ca122564c6b1e00cff8e6b510144d6f470912a7724f7f2d421b2d31720c0554641413c2465d1ac034425c93ab52e72d8850feef83c5d428310e72507390e3f6382e2d481389e232f90de72c219cf778c117d2c97996e1bc966b83247321449e13821023fcd44015a5f8716652a9612115d8592ba010a7ff62e6ca091dbcf1210e652f7907399d4bb1a9ee5d46361e2ce4dc6bc8a0d7cea6390d14c0ba6c32adeeb228109d3011fc605296f0a93c6b04c6ec7c6b8066c5016ad70e26e599d0c6745c295fc6c2cfe2869c29ea9c6a035474140b400061ef2bf88d98dca4733178f72e426001ba4bf761894f6b997d1979dabddfa89fe359c9c7d9a95293c747586868fdd6e3984860b0beec5ee4aa85b9be002f3a46dd1a7ce69ed25fecc09b735943a835fa22972eaa801b139131bab0fe6824296378ebcd6fbd99fa36adebc4d513b704fd263a08a3f00e2a4aa75355ceec6387b07f431e915e4eab4522e04d68537b94154053e03560e1cecea4305a6ced2c8782db9eacc98c7f07ef4a702906fb8457429c2b071ad8d598963c369cf655225ba2e7a17b87afd01c10e6e67cb6150d3a67764d1dd8fdf207b0f6dc8666bb610a376fc17a7884767480d63f28699d2406c01866d0604489fa6b2f188c783fcf98a6c9382b158dd2c6877daa9690bf85d00e71d50d65f31216c9d4c6640cf9250f96f6dc43647e90ab33eb4bad8005c7965822572724d5b6f94d680177f9e597ea9df3d0e893c645fa6f907b027c80c2574967fe29545c193da01c8a0a3bff8ab13d3ebd0cda9e9e5d58f8d29dada931fad47ef1fc47839824634afc1644a345f03c51010732df28109e5852e7f8282152f2709c6f7de5b5cb465490acb91c08fd1596259c743c56719e73511773ec1a63e0023aab8d60d7db98ed2d15940d9f98b171ce576e9ba9c52bdcf98ac405bb6cd1f8d108f3ebc53674818970c50a8df35d2d312fcc6bbca0ecb8cd4b3d8e485f78043c7add26dd25097270e7ea0d55c81fdbd2798621080d6068d851afea264c81c259504b04a66b7ec0ddb4801523cda96865acf5c51b97343f37f826afe5f5cc9130d30fca0eb867c040f7a0e48af804c449881720089fa00614f655a2978d04327d9a5e97880522c7a9fe1f44ec0ad50b1f3d600e54498c9d2b6573dfe403be1e2c230782a1fd7ecbf008aa57c6b3c36c1f8ed37448ffad11260fd102c12c014723ae6fa2881220cc4183d3ebcb8e2d6fa11d515b2832dd248c4c79de156c21ba18793a34bc795e19beaf506383455e9f6a43ba92dface4a73441eb0434e38a756ddfc60ec572f8d6e57165f68377193dd7c40e1457d751c0a43fc12431f4b001a1575395c76a095f4880f54149aa5d2bf33589245831ef1efc61a9afa04ec072a65150e7dc1675935ffc7e3d19cd0a88b92fd198e2c3f4f7166e63ba490275db3e0fc446f237b7d23e010ec8801eb003839158a2657543471ff9bd20252a31572c50a4370e6e5ec63d44898d6253e1fa10ff92f380889b01e7f73eaacfca9f44238f36b98cac286f8cc837241b87a69bfd477c804cc9424b349e432150ce3d5d0815e7cd0e82768672d3e2b52820bf6cc79bd96736f97195e0152bd2dbae8110ce9decf52566d87baa06dd23f639dbe7988383fdfde71c782df0d8699c044302b8274683d30d11a2e4462ea138fc49f326b4a0f1f340110ade96a347370fc4fb0ecd420cd0811dba5a1f29ffe89842c1c4f602668ca7164ac2e83a7eba80ced458f6bf2c571c9148df042c2ba9ef46f9840d7e48f34a5413f24b9f3aa3f02bc3f2d4ba39b0edf19bc50893755e7facd7fb1aa2c882c9afc89cf333a711030fb73682ba9ad4f2a08cb700c1f6315045d68b8d023fa200c0efd62f9d33fb0fc738f06b0c1d80960479e3e00f0a556a4183fc57cd4636f61f08b67d335dc5cd64fbfa28b2c985131b8c8d548378ea0bf6c0b47d0fb8fe9a69ebe4f4f0eb970d923f497209c68a6c639268a496d60a5c3a172466be82a46374b90ee2929abf8e779adbd73446ccfa5fd3f9c6f18fb1fb9f05295dcaf706779e1622712c273e35d0b1cdb7082eb63a3ab88211afd51e1286a463ab1125b33330f5407d64464bb9580acdce7e8ca58b59cf2917afc35a8be8829934a9188e6dc3cb4561f2e769a132409d7f921340268a24c19a5338a7554504153b022e71ddc946af4dfff63e4b0d72636488e6f91198d6f7f3ee00bd5525d2817eee231442489e89f2936972a69dbac6d89ba1d8ade84d44b167b130059178d59d53cde754c73a0c1d2785910c90ad1c4ffcb618ea33e4b778cb6ec3d7cba68babd1b45326323623e267f2c5a405f23b09cd09d156b79f6181a7ef3014b69cf1705f2fb12a5c9c6cd92a8010b84effdd52789deee373cba101960a507f0d36c9b8d0e7216d940d64438d919315fa3312fa2d5b963241207876986dccda3cefdc8c191eb07b8fed24f3bd7d7b0f5b7a7d373ae394bd20400611211aea3c4752265ec31a0603546ca65ae32cd5fdb600c0ecd5c056cd919563f0547439123797ca797816cfeed5a019f9297dbc08284cb41aa35ec3a299c0ca5c2156ba427067b7d9f147bbd14aeca49a90c078add2e69acd3ac46076e0e1d0165073c4f92a74f6f27755a15f53af33e72fea9815112031df1bcef4aa978c4b6edc5bc1536d5ceba58feb74147942b7138d96aca4f0525516f85afe6f155c39b824f0e00ae4055e409b430f2bcc6fc455dccf776182f2803ecca64390377629f76dd7ce2acfa815ba458afbfebb8822c84dd783ff7bd31aa50cce27e4c1d32817f73658e500455645c136bb054cb23c4d9f94a002808b6612d2f35afcf4e6091101f06b1b8ce6f6dc06089bf0abb97349697baec6b784598cf9a4a40dff3ae7dabab8ffc853c1a7b0d6da9efbceeb0c1fd85be611fe4dc315269c3d338f39710f67cf994a18d3e429386c7b8a3e1d911a2536ed049f9369342b2f798a4b255f811452ad3b558491e5f40d2cb6e9c4b026f8a946da49bd0bd5c06874c508034616a4007c31e1aef56398292887d716aaa1af550acd321653559fd86836288598af17486f560da16dc821f4d995ade621f566b0e0ebed8094d53608533b6068787d8b62c9777eddd6c976fe24a53ea48987220951558c7da4e5f9c8c9d0794c217cd5e8c991ecd5c72eea4b29a2773ad0a8ebf047a903ee35c20c4c1ae309ea65c91c4bb6fc8818a220332cc57bc6a6908bfa29b5c22f7e1599fe7894c09c5142efdde1010fceca628620338eb29b388ce44f8eefc6eccf04f6561aea6bf56033c5e39dc2e31bb129d31e4e69fa7e8ab45473a15b86efb71b806cee62d0cdd42a1279f027285312f9ef453dda1c06e8866939a89dc56566ebdc5fe3084723554e89afea903e4d6b79c016514d780d9b0f0b8d1d51edd406802f51176b3fbca1c2f0e9dd0dcc84e75a52f562913d0a8b63939a7a756b146a449bf17b78963bd0ee3fa3aed62470abd8fb211bfd4369d487b9059eb9aebbf20c61564142ab091395da951ac3784b57aa52ecc1197cf25f2e1c1b2e49ded0a46236b631b3e1edeeb09d70b94e46993a2cf79d0753105c45c5df1900278705c1a063f3fe6c0a016d9e7c5bcd09ba684711166e764c9a43c136ecc90f9af10d241afbf3f7408b0eb6f8e3b5b51c647a3171bb24108fdfb6238dea13bac759c8df2233f4c8a8222ef2afc5e49444dee67eaa0efd7eae862904475ea4558588ed0486752d98402992b128c0fdcdb535cfbece150f7bc570123e9f84f20380d69ad2b34de0d55d0a2c059700d2c0173112c9a03a7c91bcb0031a6841ef0231e88dc04bc6ffeafa7a0e8b9871613230cc420583aa37094b987ac4cf3eeb0490287e1f8f708165aa7e8c8d4cbf9c195980181bb50c42e39b21937131285fb6545ee161014b38a9f224d9053fae3de53d75a44fbb418d8d65ea08567b7acccaa63c179ce71f561b36febb4f3499b3106e97fa79c444ef3e92d064c31b63b479a963b228be266c066faaa65ea512228f53e0735568ccaea0773e565439dd8fcb49841d543ec7f90192e7d34ac24e4708b6ba56f0f5ab2c11abd88db8b176e6fbb2742dd8bad191fd8383753b0298abb53252877b6d2d2ead57ad352777de67a24a3b3edd23b908a567e3d43c2c56cccdaae32f558f884a01d5e7886af99fe64fc834c844cbd8ce74ef716997cc531235e08e8c3471953e90073e8954616feae6c92d44946e3000131fe74b0bec96b6c6d08678285f882074a6281abd7195dcdc16bcdfb96637908e8ee4b4d7e1c171bf83e9833820b7d1ba8b917a89dbe313115d04a6f0e9d0f1fff85804fad979d836856cfe731f5e085ddc4b5b57b93b15cbeac8a5380e2ae9df6470b1a98c11b1159d63c6dc7aa61598f6afb1a9cfd9086578ec1adeb2d1f2d43dc3862ba511bc7a5459cb2392b1fca9d471e983bd28e2cec9e1b8240f63491ff609c57f7c25c0cca3e5d9d065352759c03bde531e9e8530364a14078f526e724b98caa67fd32f89cad7f6644291076e148da0d59067fdf0d59f1a0a08d94704a61502fdaf16a9cad2627f02ea3bd5cd3cdd9a3ce8e94151f36319e96500a2325c88d5300241d908909623bd2346984a97cc905c2cfde79a6cbe4a3873193885e7ae618d82f31b50fa72135c8f1f61407fc3fea34c082589052ebe54908c63da09b4d1e2e674f038e3b2c53a563d5501a9090d71b5d323f1e61289ad4e0e30aff5b423e6909ef9e687fc110886c1e118389a1f0432f1bc8db82c7183f3e49c5873d1aa721bf9e1ddd61c306b8de40594c325089864f128b5f029db1055986b4bd9de4a7f4834a5d3630a497901817dbfac889b69e934b8d08ad39843c07cadb68a577890e53c605b90fdeef549501b0d16bc5e6d3c0b3d1edcdb4c78ae4a746e7e84a1ad1f892b7996767b4375ba17d8c29a680f846d626e5f322a70fa02c3fecd79f72233ca4f7184e5f890f54a49d056656b2fa9f20c1a706e01cc7c507667e379fdcc23edccd735dd41d7f88e51ffa51d3dd6983dcfef1e76847b67ac620d6eb727b03af048fa53e0146d4c93831c4ba83390907b07384d46ad53568356b565380484b98b925198e220cfd662a3c3a4ae826c3ed9bc66cb50a543cf96eae21d609d34dbaed10b71e6ac10ed43511840ba07cea6ae951cc11252fd038138134bc8172093f9c0da8966c30ae810d1b14c92222bdefc357e76084896b563639248d1f6fd2493f7131c5adce13f1e56040b37579df6da5e1a3243d9224b47c3a08126b94e4c79f015885b288f1fd81e41a519d7f2dd97c526d44614a3962ca0869a501c830a7c8e043e00ad50fa1d820721b3793b5f9d33818de2be08a6f8c9ed0ca3da3c4d6eaabdc873501cc49639e77545ba6eee7ee337315ee840ad9109fa883032988a822291a5f3cc48249b563898e11a89cc6c388571b50a337f19cf6ad2faa02eab6a5482f0ce772bbf1ffc2a57456c045cf5206b11ef416d08aefd7c3b70b1aee21c52e9c1218327cf18009f255acdd0eb077910e2bced328b9425174cdc9a81f169733f7ad8d4460302a28637ebaf2ca663c0ba734c7c428859609c784e9355b17959f30245c72e124c9d71062d67d118fec5f7fedda7dd2547ba83c0ba0bb88d80a6494432cb5021f7d07019984e4141dcb7ed7ce400cfede431cb9931419d93a1f0d606efde99d929db314728685642e761477ae863eacb915e894f2a3f6d7607644b17200975817af4b23fd1b20d9923df7430371c9979f87a82feac8794eb131222c166f4737998a867166ec765d0fe77eb4703ed1b6202722590f02dfd4412e7ca3301be029d42054385bc7a7eb84ac049f4e125165ba537f0b5f9c4064958bba579b0a75068251bc52625dca42fa6044bf32ebcf68344b22b1e6a8af933ddcc593cdcb4b94b774d3fdac6521dc565af2b94ede2744cab848bb3f02278f9c77ff0a609ea98e970302d42a482441e12c7cbe33ba1f2c2a4e2a4e016d80a2c3e1940f109e0b6dd1bfed61927d655a1aff83ee4285563db7c104f7c8191c4721d5cc8490c6fb77b6eb26775dba189ff8730a60909500447278a35efeb97f6185a4da739baf166e134de5a6140d478b034c38016520311edac89d10fdd13f77e6f7f3b72e513d21dbdbea242dd015e3b08fdfece6ede32346a00b5ae3811237073c838d8b21a080c502b65233cb547e8c99f58376e05bf1f42c997d9fd904725f0dac325a69fae5ca4ac70b215ed64d4bc706dc29b0ae8e498280e4a2b4d09c7cc88afeae8685244864c6523f4d98e94ae241ebe81e427071e519a0513de945790231162a8f0bfd2acbb0bb9a83669a493676439e82cea6af08e1d153db8ad6c94a2ff639cb71d85ceaa12b1a079ce6040d5e21778bc5925f6e36d391319da0b33396185832a29a2c6dcd94b08c32bd141c801007f33310c296c969c4ec8c46b153e74a06c93ea1dd201652188e7407b5a8040c7b371808e3210ac10f05f86bca2f4dd8b065099e4291c950437a0d8dde5920e4765a6144e4dde602a95d82a8dd017dd54994312845ed5e689e9f6bd190a1f76dc7cc468254ff64976c0ba6d01f4b9f113f57fb5cd48c713d6be7c5f945b00ccd6adae184066e040926f2cb0e504bf0985702b4177629d2e45493e040939470dcaec27b2cf15203bc79f3902ed405675d5c6a7524900c10293f9fba92f24dbaa8e99e83c2ef23ccaeefb2bbdb5f231a5cfa8f640597da255322ca53ae57fd00fe85b188e5a508e00916f50ec7afe930b6c5eae6e18fa2cfb98db3e02ea0f5432e051bb4eab3a91ce3f87fc98aca4ae023822ecbad8bccc9b2eec2701490dfad96f1b6fb1d361ff1a7ed6022e6830123605affcaac8cee828379bfee511e36cee0cdb003ac553c4d10b3bbe23bc2f95fd89f3f85bf9d80572ed53569da93f6e76d81bf2ae4952b21bf1b65ae88aa621383734f30e23365e577446a5d20055832949230f8b3302a088888e94a92bc2e1bac4de2b1938fbc4fe78c6f5f0228c08e367532a698f2e6237393b096058275bbaa5605940a2346ed824fada9a68daed565dbbc59d1509869bdbe2bf6a3e1b4b8529892aeb042cb99c7b3f4589cad0aa36fac5617ad43943cd68b55b8d77421c92ad06588c0d4492d64569d019d85eb8b7cf6f74a38bb93f882dceb5fe63871df50cb1cad480a8c8860d87c0bb2ca32e689b118151f544df225be5353aa1de14d24c96536194076924e7218934183900a80627fbe9d9fe7f499718bfc4bbcc2bba843431f2c0de6c2eb13bff6e8e0cb7f6bdec7c38fcf4ca0667691c29435928d3e0b6b5c1332d79680abbdf832698a67a1b23fd74a1216842db6bc44429c928ec71ee2dc7929ea4246622574c43ae8b4ee0168a819b3e62ac7e15f974c97a7ad09be45d7465f43289e032e0304b64076dc3e4414b472da59768af9a83dee48635d19f00ccd44766b7a3f1807b7782bf9f3b60d43ae61c55ad7e82d01e93c7b96b32587ceb71141fa7c0752fcc424b391b8e7f678771be300691026bebc513c47b26ff9218d994780f401d21dc038d1efafdff810a4e627c2e976bd403baa342706083340d13046edccfcb85b41dcaab01c706e95e7c835abb75305dd387451c1ce258a3a1be1b59ad287b5c9e444f1f365a85260e98693fec4bfaa95d230f0b6130a01f9929bd5cdbfa0326ba426cdd0e10c96ddf88dee8eede5d1cc5243ab0aa98b15eefa4d28b45ea51ccf28d12fdc30c536e9225458cfa2cb8a4d8fa937029b1c587e4aec5ca27c52dc4949f9abb42ec67e54cbcd6fec467fd263ad677c26f7d133feb3381b5f61396d51ecedc3ed4d19c14eef6277b8b7d4bc99fe1addc17b0ca13dfd6f39e1d6db58fd761af7e315f1b62c97a20d9a003de94c84e4dbe86cdf784f841e6c46304142444104085723ec08f0d6be06c0ba03f0fd22d06549c817b6cdf8eed05bd0610840aee09e464526e2f858ecbf7138706558cf0698432d9235e2d51013eb31f9ad51171111de0eb557ff09d8968690b2331fa5b98f883790ff70d2d1fcd410617e9693754629d5662b99bec04bcc472bea59950ac8da1efa16f07d845572145615fb21f5a2a5483020db3df268aaae8368e2ec9f6b4aa3cb8ad7144c0c67d31ac7debd521864164097237faea396533e2244ade3acedb39ce19c2a0f682c42e687aac79d9ff4e30071835390065c3518b4293970045880441530377f352faa36d25077b4650530a4b1bd453d8001d93b3927af095c30448899782f6ab87c3ed572cdc22d6097f00c9b134db28acdc61927a79fcd2137f3f25f4b403216768e27d24dbe77e1036a9d744b81bd06172c76ab8492de38c1568901d7852857c410c479e0332d15cf4bc366f1c7e1b66e337b0d91bd854193951002e19b2bbdb97178adf807f30521be07da1b1ac415979978c4d10b9711f6faf8ec85a2c055ada88a198e161829ca6d4edd362edbe8c50225a53c24bbb88aa677dccd400acc8b4d0b7e9a44c118bda93b0a81de468d03478ec0f2149f6a859317bd4fe770ed7a86765b4c688acc82988f3d767de3701e976975766c044015354efcd5342188b6488691d6dd1681631ec761c3ce9374861666518908b106acc3ff1300952d0b416522bf275d6fcdb12cc8b486bcd7ff4f1fee0f368a22cb013f91ad70eebb5a89cf82fee015c2c1b7facc1e86bf8eee2d516529ae67a7e4f0b2452a092b441d9a9ceff83dd168a649fc1a5459c59bc168009405d06f18538ffdc2918b0ef406cd8e1e1a63060c72e406acc44044e5580d409d944f5808dfb69806c87a7a90fd800c3145bfd0cc5fc144e4aca07ec8a83d675d05f1df84f409d09acbe4e6a1b20a88fec91d1070a3ebe1bb3700fd41dda0476476c1c24e0d147aec3428b467c89127e1f35119b185680179b93152b2703228bc135345519fcba11a7abe099325348a8173e1c91ffc20c19eef901692dd166adb9013b6d8128d8a6a341927c49065b6d86c876054770a2f55467e91df664421576a81702e1b9a6ffae545110acbb8808b73c262e3b03d2c41c3b1014611e032ccad58d3562747468ffdd054bdca0833e180df214e283086806d1a2715850061a7e320a6109b8a4f853935930be8a4eefeacc2a4c7ff0fa5cdf9752884e7fc3164aa6719920c66e5034db3ed678a57a91d355538a838d00194fac617818e051ddaa179867e528cdda73285e616235f7f727814c06b37ade05391a9f1ae3c5cebb6c21c8550e2eb9582e43706c4d49c482a82bbb22244525609e2ffb4bd00f0423c01bd709f9233e70114c3f922db37a5957db64d6763d2d281280ddf0c5882c54849f361129bc8f429e64b318b4407c3c810dbec7426ede59a2b2b63dd4b7e945860bdccb85fc0980aa214e9ceb69a62cbf143483dea9c81afc2b33e4a6a9c53b6232440406b055c8d1ba2be47a1acf3f7c15720faa78782b51cb4baa90378c16bb784e08f4a8a4b07155adf3badf411baca9cdbfa7fac1fff7b74a9e623f89824d39189c3306c3703b73e3a7ff3ab7b44649013fef3ed2bb229ca010e93c34ab8ba722c178301ae01a2560c5d573f573927a2e33bb57d7031722fdc2335d4ee7a032dadd9cc206b6e6ed293c699b2261fd85d961f60c60c74a7c6cb31644c6432a80c9fa92c7870da145708d165792e77d9f50793992f8ce8dc635ad62a37ef91fef8e655a376d5c3047ba89eea57d9773ccd446b2a3c3544a65998cadb9b8c2e207ea8a78d047d65e6efb17a89d1aea5deba05261b1159149e273968fd12862ef7b25efb43509d43a1801984cd10284e50a43da82a660b8d2804b1bfab92515924677771d03d70bbf1439f643dbde489f5bc11431d9751e46bf0abdd54870c63e965b2aafbcb2ce9a14ccf2cd703c7d8d9a9aeb64c22289a0c4b1ca4db8276c5918d4fa83c9de5014a6b9b812605e9d05a2aa9c19286e37a041412af2e244c58368e411cea200b8f8f1086590e5e56e5634dc207c6e9d4baa0ac6a2af362c72c7f0bb2d8bcb5e37a8e3176fd46594e67494e93c7aed4844be381316edff3d2e57cd884385a165bc771597f95e79ad5ccd1bf28c310181ea9b9a7339ea541ca42a3fd191fc2f10dd2d4feb1c40bbc7d64ee5a6770edee30268e8acb6c91b137bc631769ebf38c89b81fc5dd29c4200f209603f0bd53e317101e51fce820d671363a55d8c112d82c68f590c83c8e2bb717425390fcec42e26580d9028ec4561008cc34cd4b130fce25e6fa923d7533cf3548407cb2489d514f610c8076f40a429fadfde5ad95f3cd3832df15302d47328a71fc40f0832f459b53d6da8ea94b8407b6039984f45ebf6c015ac4be68c454d93c801b3585a00b241a5fd68ce9c7db9c7d2dd395e97e24d169d9d2a4af86734298a06d62bce107737512070c7f0776c5266225ac852474f684a8819755d940cf8cb62da4644c4f43da286f7c4a2d401ce332c9016d07dd4c1f56ef58456594b016ef817385570368398a44edcfb3101ee6b5c27bf5ecb5904de5fd80ef0e46b3da4aabf5959882b74f0387627abb72232e94db24545725a6cbc50dd948b82da26ba628598d55c822863ffe50ea7882aa9e1b21231415c0e5fe261cbeba62aa918081659a022eaacb63614c7fd754577c75320e092614af74d892c5f44480541e712415490bdb99730ef54a2168921446e35085ecfa037a083806e1d2674e02b02f8f2e88daedee537f0abf051e3c3c007a596b81981e6c11d94169d8527c1ebc2ddec9f58c037725ad93542d8d473cb92d635adc42927ed6d5dfa9cd1a04dc758e93cb091318a21eca19b635e7b9017336c614a09ee815f9a741e90d713b090446ab54da34b0e0a3599d2604644a396c4adac5f5f860dbb6c958953966d30ccdd4f009bba3a10b308f5a68c85d7ca1efb94416f7c83629761ebb6df3d943ff4c1ade00df0186665bd7ac9fe2c53d7f08c38b154ec562ca892b521622aaa9384a9d175fb320ffb6945665f66635e3c84db562ee0a2f458bb1fb651ca8b924c5902f16ce29c67cd6a85e5e98e96960bcbfdda2367bb96d3afb5b1da08f22e9b7cf2e47f46776f902e6150b394afaad82d93a31ed6518938942f1587776f3a01dd99eb8f3832afecbba4c4d2f357cc7aa80e351f95632f9ac559d3a441e8bbcc51955cff475a3892bf55f0af9524672e6dec163e48b429425d988d3765ac0f524deb6ccf06a18fe7ac44225c49e2850e3856a7c79d7975998ec807d229f831c773009d959200a8d0b59d77ce90e241dd4b7420deb01287f1a5c2a68f84dfbcdb888fedae194b3a6efb9fe3240dc6581ab27c3caf2b6880704202eafad6735d1e499229f901a1af1ac30109edaa625dc05f237c6a85bec67551d1e550241603fea4e3f9dec855a4489525dec3a3753841b77fbf9f24e7dddaec1ddf8670639ce0e7f4c8c655cc7a736ee0c2323fa6406a0b86423a76ed365875f2b5fbbb681b43d193b8d0fb704959a46669f6b80550e393f76bbd7fddc937c5fd5a61ad2dc6cecf5aeae6a039312c5ce7ea87da34a77401a9026cd139691956ab7682cac8c1212bd37a9b070433a46ef3b62e6af9769a0e0ff3edbc216459ff9ef5ba677f2986b171cddf1d3a22185952383c68d0bbc7591025591d8531780527b585c7d1f541145cef6e2ea009999a3f58653bc2b598baf14338a2e9dda00a03af7512cad177b358433b1b758df6e41f3550df490d9be1fe791411114bc8fab979907ee31c70b3e6897abee9287ed393f3627c87005a4c8dd4c09e4be359a4722f736f18f92276e94155e87b4890460b31d75570e0a10b1b712fa5118715ced2773c6fab63718f89244360e3c9d0bdacd0e89155ab95a8604f56ea48a67f2feec26c2dade7e6f8f68b8b5b6d9b9f538042634b9c068bab9e9824047e61f0a7c65ff894fc88f4e00382bd6a8a1d0163e336604b9e73939a4a2f793aabd51f5f678f3508fc05a6c9110bcb495926b350dd31e1fd2ad740cb8ddc5160f05c548d45656abc0d5ed8a0a8443c1b22073df34046d935f9e040d11abe4a0d4c803b04d19a1d7916e7178fc8f0f27dd8a3c4dc37da8128dbdd9294f27dd9e147ae62f83527fc58cbd65572734a97716fd8932640032c7fd5c1abf2dd493aeca87346d162ecc2a121b486f5124f74eea1175f2f11e6e3d9051d72d76761826467df20a302be8cea2adc87244127569e87fe509b6d86625ea0f42579e30ebc613366c23fc5b86582855cef1f29fad2226fece119f025c2a709420bd3802b8428b95dca6a79b7670672dc31fd1b2ee007e96514d7cfd0f74d74ef85f4aaa1e00b6694958a22e717f153e9420178a50f8c635a8a2fd00718dbbd14b86de38833ea7f6857a840f75ed89e8c3fc179cec76935ca97af64573898c09f109fa38174388b8bafb66a02117bbe8d327afb217c9dcd7217ddc4237f822485474d00dfbb5debb7614a050bfb63cb123e1e9fa4e0344b85ec28766316516cbdf82fc1d483c4f07b6c9c7e20c4f7eff77400caeb25d06646e3de0f157646cbf0268f0e22a2fda1bd5763f1315e99d8345201fcecf50d45676b7aa4b459c58a71671aae2c1ede3b8eb395c3b1c09fc8b335cf8f7591d7d9e7d2de75fb783681cfed77b04cf793311911e08c9a21554dda07a60a482797eabce4ad38456d1e11557a6961dbdbfff3e8a841e143e502dcd6bfd24a4d7fe97192d9993a3df5fdfc6e35c460379523e9bf2b98fc5047b93cda22671461a19e3ffd0d5b5678b34d4b59149ce2a59b440b1d89b7c111675ddf68e702f31f6e731457d81f079921e4cffc9bb660b565a92de5dcb79973143f1583ec7a50187203c2a06f02f93d915d362df25c0b475162c451dfaf29b8967fb12005ae7dabc411a05b937d442e5b1ec1b6509e404783120a086222a71260a4d8eff8d20b25f0a901bed2f45a59f8e0ea3db0c0df10f87d3cf738eac916f562f23fd25a98e76384926796fed339af542ddc27a8013da47f88dea6277251d52a803065794746c41f15d213e59828d3abff3265f745e6451e4c03bafe3a023834a1a12c46776f3504d2056f0abbba64a6568512bd95e57e1cadfe67b4dfcd6c91bbbb7a2f508bd0ca98b39809361e3ba918551e2b2aa6f18d41c57867c4dd98653c1c48f83e1e6bce26882b9684d2ddc00e19abedb90a7347a8c9e9d5f76cdb454e49aa9ca06b7837a02f53c7d10cfa311aa356d1882a25df5415e4b860bae1029de75a56ccc9e4d0fd17b503387620624f15d229b9f4c6c7df828e53c799831297a099fbc3a779bcb16c7aec6ef79fc019a0dc167bca67909be1e031c4106f2824ead828237740e860aacd0dda66bac833550c009236c69b2d82663376ed366460c75287d12396ccb59b58ecac4ea172f0c0d43c47b7ae1d08f31a9ba8979fa8fb7f17fa6074909f0cb75650ca1fe9ef7d308132711fd7da0dd06e31599ad46f2782fec9426908154e47b8e66567978bb92b96c38339ce8547584b4237e46f69da2e091a42277319863e4379b7ebf931e9a9b31942a0e2d19050f8b80953135c1f1ce15170360a6345caa806d5fd22e49f88211c5ff4d9afaf8330035a0865657c8d8b2e42626bacf87bd7ed8b9a351dbeb391930407c25b00ec79cd8d1c8eed10cd55e0874708aa874f8bad03788abd25e0a4628703d88bd56896d4a0eff3f3f8672ab305975c121e94ac25fc3ec7a82573ea826734134d80df9895a9fb89087b29c40be02e8958b6e88e2a4691989b8ce92087044969e7a34667a1a8db1f58dd2aa69ab6a2be720e9163a179c61dde0e940fc47745372e6c6c255f4149d5f4dddb8008de70779da9e0a1d5789dd97ddb825e8107d5c8bcaa29e62a1bacda0a147637401fdf21fd769fbda8411afcb46f7124162376c0dac575e3e2211a860ee3e977f778f26b3e89450ec85d6b07b21f2925bd594e9eebe86838b19de987faf25ce601bf1dede291a5ec882c5f6b063c4bebc32216c13ff341e9ec1ee425e3561916178e3100d597a46b98aced87481141800c368c24c6bd16098bc50652dae3c0a31285a9037858ffc0ff634bf2e914c8b4c532568189050f868481b4acc01b54bf4ba62a82c6d5bc6a8c1c0f79575334b1e25ba7edcd4e50a24db520b85caaa59958595b5b8598553c3ff6bcdc416d2489141e26a120e37adf91babd5921b5210c83a102d888676b7b3a6df2f1aee4903212dc13cfce8c0c7aca2805ced29ae968432d5a26c0076930e04bae3279146729699f2c908b31824ecc07199020e02d8ea4f325f1e8523614e88b8a6ab4c6e6ff79c7f40a8078b19e543af1db1dadc9fea51ea3a7ff62447f2bbd6b9b374395862d8e19f719861a99d09df3ab1e157ffead90bf6584f36a7ce6d4450ff72b5a9a4ebb851fa07be437c4c7f0be23582981979efe085b7186bc46feb42fba1984d0dd1df198d213afec93a8537c86beb89e8686427135beb289aef8711d086009a89b2c066814909c0858aac9797a9a1ecf6000241b984392491209585f8fa3a929c948dd12b92672b19bd496ee6783ddc034f09cf3c98f6ff3e0dccd8955eee51d6bd623151e2066f983d7448a895f105c6e1fbc74f586d178ff27d466a1df33f92c1d37b22a869182110a7852025978739bcd18c23ee36cedde897ab34be020cece7985b7ecb088873684241f66499bf213729aea9c4d02187cf35f6252eda976d90daf7841576c1ff94bca93c5395f25edf73a04a30e8788a6bb2cc819dbd88b8dd6b6f2cf62d2b692c338e75c817113f49b849c3502c87d7198dff100826d5adc0cf57407780dcec17841d6e91d8fba455d438cedc20f4e92be9fa88cba175d2c3b58b20bd7c4cb2e4e98cfc164c974cd7e6b68164ae4c400882d484544ff419321343822e4aa68bb11d647de8fb44ec5f4cdcd75e06acc5475a409da2271c69aa06cdc8b4b340b4809494fb5881f39641a45a590ef4e939a048d8f002b7300b17ea914427e9a2c02e78cec2d043ff5dcc5c26256e71dfd4123d918f9ffb451bb67afb6b46367827c51eb53e25d994cd3a59c6929e167e4f93f2685b48ca55679c375c505e9df0d563673c818c8935650213ec2273a62792e1c4146d862618e1a42c08d10119082feff8ace3101475b3e32b23717ebfa51afc38cc0737264eee55f4f1417ba76a2672ae1525065e47e3732f5f4cdea775c9fea615c6cc2c847a18458d4df84c0ce6502fda61f11a72f9332c0e6c428cf43b92260fee29d20c0522027a81f6ac82799642587e0bf834ef510e157a8294d73bf861f332001f295fc1ba4407fa0836250f36179079c1e34dbbb67072cd80ba5129722fcf86411dd87dd71d63e18969c4a372bbb1925f8abe9288ff593e069607291166958192a91a44f918dcc6fe7f61b567cf888873b8dcb0e79d3ed354f1a6b0ae94bf9547f7039877b2cc11f73fb84cde5a4da43e75f98850a2c7021965ea3db29902d6b91b459ba251f8f0c3b990761d22396b9014cf231cf60688623de622e253a5119387bf688b49fd10e7e8f26afeb062e526e65162d66c7b7ac62670c7732fb0504ca3cd95017d2dd1c2429b53adbb7e321aa426e25ab706efab1aa9a3da705c804d15b1dd1ece9176a0e99fff7631b87dc860ae56426a1bd23c1661f8bf220233147deb50b3e144014608c58549c5b66e076edda5e1d52d92f3edcc1ffff39d630f570f3d82ad2f361871d95fefa3af278a529321568479ed21989533c372b908cf50da2564eec91a99d1148e90318c4acaaabacfd500b00ef1beaf57eda26665bf9115acacb247264576a03dd60c481ce93a943bf1f07806803db0bd42cd3d3cf597eab12272e6b1e84e5f3e810455a4b03a451879ee765e0bd3e350c5727518503a7c0b92b7579d568112f7ff106cd8409802b1c1c28da751a602569a8748f388d054d38b8d9370528efb88121199199d9df4fb6c6dbb9b7d70734a852bd4f639c236980dcdae34fd6c25d9519ea133b45b664e2f9f341757fd2033bb7dee0c186230d9d17195b857fe3754afbd3f9dcaa0738b105731f4f1f2dac82d28d013ae0d9720a89c1ebad44345f40d6140527e3885b5986913a73f424e668fba7929fa7924da2e91a266d266cae4f432d167e9f701d40f2c00f6c821f82057e448e46a5d50dc555db631afcd135a860488e97bd50fcc7d7b256183f14c2fd179427ede00e878138887fbbf8391b34e8671fa77cddb76de0f3d97300ba21bc5aa441152fe4b76370e0d5ed682f64a31ffd7916b669ca392e1fc023fd4512f16930aaf2c04d779ef5fcc3840a146d8668d032cc91e07d5862fed95cb6d6e1e856159cc35054a376a620e392107a116f6caf2853d26d23909bab2a6e72a3bee9836793d736b17f0e53f34400e1357e48418e3f268f301101d98067ed3a79b67389b5897408c7ed397909b7600b66b2dd0a0cc33ce172cf7f0f946bc455bcfdd5e772f51eda76ff6572afc2bbdf1a7c8d210154d302fae935625820d8594d07d5c7c64798dc6c085988df646cc030e94022de03595b2935ebfafa18b7777e1e8da7890042407a06b2bec70dd7879ec020c228af3abc836d1842f8986b01716d22dacd131e2d13db5aacb5dd6dcb2da54c29a56d06f105fb052ec593649cd080214a5945464a8ca902c34a8a150b3a8d244823c96924052006f7a418a0b392202bc959493839d13909534420ca2863151ec2c1ba27e6414012c7e8037477cf21c9915ea4a29430aac42a306862ac42435363938a31134386cce4828c191fa58c58668e5230bc286515273352a24c159a9a17dcbb9022e3c426c68d7b1752649cbc70e36e45c6c98c57c1e05d48f12419272a0f0697e249324e68c010a5ac222325c654816125c58a059d4612a491e434920210837b520cd059499095e4ac249c1c8f4f44185552be059c9c1aad2ea4581180006ab45c8a5ba9d18a12baac029d868b08a34a4b062b32cc6065061aacd0e0edb98083bf3d1c77116241b71bb53ddb438f52916c996c83c964332f526d04a3897a49c7b0e8180c9a1e6a180d4d8d4daa8d0809d5bc8831d344fa154386cc3216bea2c45764ccd8607fb4c1ae584ada82f277b21658136429190c4f366bd204d6c95233485ec44734352fb8c4b89962d6b2248b47474746543c71f482ec6683c106db5ab0ae9e6d42c866dc475a3c713463f62a188e7cb6c1a6345942a6249369813d21537930b88c8a254a4ba6d113473464307432a221192a8e6231a72236c2c20886d5d106bb028a6cc5da98c8eb654488c689610188210810a52b31446629f1a094f48375f2a1b48493e347474f74f8ec02bcba97c2d96039355a4753cc36d89428d6d5b2964991c964530b2db096f5122d565a96ba253a590e9d4c00271c45b265a946ab09199375b52c754e1c4d232a28bba4d7507ab6c136d876c46de051aa216b4597ad1e8b97b92b1e4519d213e80e8c5351abd592a16d52291966e0981968d8edc806eb64b26e8976c529473be2110daf17b0bc9a48bf8e38c22606005c68d08d48e2100c0683c160b383a5dc2509b05ce38b46b54d431c63c0aeeec5a6dab533e2040c602d5857bf5a88ca1d91664f1ef17201b72eb439bbdbb35e7560aa6ab6a77ba41528774f4ff30d3dbc2407ac41ce1e581da89080eb6c184a5c0d6a50a869ea0f1599136e6f7a65c4e19c45a9cd59878ab191a9a1a1344935388a18e9cad2524d77c4339ed9d8c490918a316366460737229140f8d582ca20c0c4a4c7326765c1b2d8cc1434372f6c742a6222268275afd493d49217a7228ec56c6200c045c68c8e87a200a09b28a034e61473b6ac9e51acab5f526a77af7ef202eb48fde250bb114c68f60bc9d0d09317ba9bee04ab0b610c83a5aa96847a328dd00e888f5d7ae145fc6205a0f3a17e71887bcde0b5510420864d071d473bec40eab13af180d3e57470fef4ca676bd8d9b1814796430c271ce42ebdd438c44a68ad682616281ba1353a2336757d98db43d615855090ead75c42cdbad7ec84634249426598a1f3a17b2dabbb21eb9a331454a1a428733694850cddbc02fdbad70c73b5ddcb352bc469734ac08c1a89b0a0fc5f1c7a2f4aa566a0a169b0c13606d0cda0f6d0b2faa310ebea5edbbd6a50fb9505e5ffba57ede7066013c306e53e43464b4c85457733c1b9bb57c0bdf60af797bbbbbbb31494db9978c17ed8509ad5dddded4501637b438694f1a5831ac498b3bbfb0792dcdd734882dd04ae06a51d4abd04e61474eb861615faedb2d1faf16e76d4175402262d85564adeaca480fd80765d2650a8a0ae5eaa6ea0783d61a5a378e8eeeeeedd0968fb0d34bdde31eeeeee3539aa7bdf05eaecd552e80319757f53ce9a2b77d948004d75aff5036f0e4d9d6153d7d5c18042bf14bb707ab56346f46698c4134eacf374d7c18f0834a0070240ee1648724740121cd232012a3a5091b177c04c2bed8ec900edaf87da058edbe1a43555f7ebd7929daae52c67f99c526082fda71450c7c24f45a9b9ab6e571048f58f1edb7bd0d1238e8d2fa5d7ffab1154c8a3390bb03927b2e0022184eedd4738259c229d49a060437a84202443865832040c882526b818426c23ba493cd87a278d1e9cbca4b5b305260802c968498a2dc4aedc98a240bfd4471953087f606104265b3c010b4330610b1acc9db488391858010418b000ca910d8ed0027c1b1042788214f356f80f7f0561c798a040db79fa87b0bbbbbbbbbb7b647979797979779777779777779789134eb8fbbcc1134eb4bedeb43fbb774241f47ee61bcdfcad2b400821430821840c216466f8b0a350b34bb34b61384cc117bb52c6194d4a778fd96597f91208b375528b28b5174d4aa3c9995c3aae839168e6a70e35a3a8137577874628a3baa84e0e65819ab9c316e9cef1eecb06e35968db3a1fe4cd912f56cea498b039eeee2f9c42e8ee1d4011721028fe07786c4f9fc7668aa6f8f34ddb4398ed4d9b07c475dda7ba9749bda8e89bbe53d1dfcaaf4a3df826d3b7a83e9fcea4a47bd39f4e3822ac31aa8f13105f3e3727a570ca3ffdb7fa405085bf3d10f71f900abd10c0a8bc410f88fb6f6edccfdf1eaa268f43f68a7ea0799a8781a1f1661e0606fc175f24f54564e46f457deab9df9ea7e59f64ea85aac88c0c4af5f9d493d7274e35b91855ca59addaf8260e76a71cd35d41886c17b2f4c0fc1021ad67bd6fbe69fbef138ecdcb211f9e1a207368156a1ddcbc182268cd02666d4d2d4ae8fd0c72696a04a5bc5af9d4c5a9fe40f13f20ec85004685aed2344dd3340f487ef4a013517706e2eaad0714ffe3f930beeafb76277b40d22b9a1fbd77d776d7acfd5e8f46387e1e403ce66ffd82ea57d4831225dbcf96257499109a55a9fd313ecc6eb61ad09d55c6523ff6138ef81f70f9409a7b218051b9fff8a5d4fef3d34bedfda5fbc93d20ce2bfae1f4a7d75e326065e03ffd9e7c5a52ceea166f57866f9ff014d4a7fa5377a14edee95127faa86f39a13c9ebebd160f75c261eb2ece17df832a6c1d095dddd398942ac6b3e91511b46601f2f9e5ac3b83dbb30a6efb8d66fe1714ab5f8f9d559cbada036dff01a90cb4596a91ccaf5a8707fc150a8542a1501ecd2603ba40d073969603cec71e841f3fac309e0764faed35c701555fd7fde93be66316705369c37c90a01e18f8dce6c47779d4cbbb3c8752a1fe45858a15a55aa9705c54d46b51c947edce2a0fa0edbfd3c3fcd6e903e3c17c91a01e18afc8ccc77840dbc377a8327d976553cdc87842307a60bc1f601e265635ef03806a0867e951021fa6a3f7a4f2c378ebac5542e5e72968bf7b1f0303f331cb5f0466534562be084c8ce7a55cba43e2d65d6c738343635a7665a84b6b4caa2e8ccfa77640a6ffe687c06b11fcaddb10ff20413dfe502502ffb89fef271c3e26e01eed351f12a4872c495c71852db6c0852c3dfe45827adc2b225ff33c20d39b543745f1a5aa07ee19b2597a8460f444ef077fe8feb0887b414c3320e20741b8200927887ae017f12fe2a5620fb1e310f007f845228cefacb9a2f007ed8b48cd934afaa1f7ddd4651776e91af60a22f52f16486aff36df3005a9575b619037ac82fb21f2b55df95be5774bf9ab829edc95d261c7ac05ee624c693a05e38c115206fa1277f91267b1c37cc889d6e8a881a852ca6c3772d651eb3810bb92b23a7e6457b208faf991ca0f8b4104410411f5063780410451fb397720a0030144651f7297d450f2371391f4b82bb208ead2251b492367f14f2218e54c36912d8919c92322a3d812996c2267f2487a942ea58cf2793aba8c2e647281940ec1902811ac68088634a9514c794bfe38359513450d463804b5083dd46604eb8cf606fb33bf8c42bbe4911cda1b4842fdbab28425a9f64b2479e42e0e0b1189d419914947e4121279a508ed9544c861b2082affdb8cb82bbdea6d28cad49da92f6abf2ca2f2459d43ee3275423ee42c36cd17985ec1ee7a45a5e953271cf15f70646952a554331d6dd76614a511f4a34ff4a273186c887ed461ccf4cbbf1939ab7d93aa22ee4daa213e5eafcdc85d0e33525198f7cd108d8c2a55b4887e3646357ed7e87d17a8d073554ddd541346d3306c97c386aa2ca20eeb6201a802378b817971a12d2d54dddf60407bd63aa70d42817c057f28ffd40f9bbb87e41b40ce6671e7dc9a1c827e29df1bacea1a4293cc08932c76b78c45294410bb1ab87b90d97aec9d7dc0ad3e45a516bfd32b9df8ee6ec39b2a151608fd216fce50ca067ebfb637ae80041249922041b22d45f898403112677c0dcc9011c3a6860646eac58c4c0ccc8b0b6d419d3aceb44ded055c732edb98d0272db26e13494ca99bc34204d086ac4008380802109260c216881c890110b32b8a72807402ee420926a01862b2c0dbdd1d42f686bbbb703ac3dd8df0c5b9922bb9922bb9922b29790c52815420154805528154626419b7e9040edae056ab861dbff17f9c55924d8cfe039eadb98431c25de9bb59f4ec20dcddeacab8b989632a5c8732d2b58ec974ea8cf4f4f0a094f4c387d2924c3a3aa2825d9d4c76f4c4c98d11bae8e225c593649ca83c180241827a52ce822d674108df5538380bca2a3cbd807e7ba46347eb7c313ac4f8df406fc269bffdf31fc0af7942b6e79f9e10253f4236f5cef2efd4ef7057cdfee4a1d90ba264bd1ffee905d99ee707e16faf66837ae6a605855efc9ff995a7e10be99f2f4489f47eb4e71732bf7f53d5ac57133d07f4cfffe99fde0fbff64234afe55b16b4bf051b5ac1adbba02bc1316be4d7e67014da1cfed813c43d787309b8bdf9342217cfc7313e72f1128f75f7734d68ab22ac573cc4441c0326ea23d08f634d5a8747c6440ee0898206ceb339dc13e8c731d9a49bc562b126d08f63da9176b1114d888f20a92e24b1b4eb47b31c0b916e1673648394e4384bd5c6950f56a8117547e05cd64819bbbbbbbbbb5bc69deeba3c71f4f4017742d09a8e95bf8623662abb5c605362df42d95962326556bf458a444ca250a9df56d1b921ca141d1b959f752a3fbf8d8d1b9c9d6d5299b64e0bbf8490524619977291a6498189289254187599880256b996ada657ad5c737373ffa4ccbfa7c95b15bad3ea150ec87422a1ee15d5fcb464c992254b4f540929417cf941b4975ecd03e4cf9f9e10cda3aea4a6874f3e719db54596faa5bc091c87b355abd134f93c36ccaabf8f20ed725915ee38b40eadfef05505929f88ac78554dda689df6a1ba09ea5743ed56edae387a37bdf22f9aff6eb34447043993f9482e824cca5a099944472c5db492c4dee0cd611eb81462ae55b338491112493cf281324241bf9d1981dd08b92bbea649d56a6733199d40bf9d7d521693baa51b2199bbe2fbca2394314a70bbb45030c018c0a2f667605dd089fab98060599bd35444a12e1375995081a4fa68423f6ed2849fb40ef3151fbd6a2a8e54c845c834b9a3025bc3df35cf070aa6ea1efb6c4e13f463a179848c67ced4b73896e288d9152ddc348b7142c00480dacb6dbaf0b8abb523e351795c835faa3a0a31b94412b58e2ca28f48a2bdbf0e77c9f707e22e7ae555adb2999352a97d8b52f7943b9704fab110914cd23af05d1a710ba50c95034eab1f4435a1b33a0e73ee8d75ad364d9563737058b94b01ccf277277c07a0a2fafb32e16b5d41a27e7497aa9fe05bfabbf6ef54556e3e6d53a070ad142905c1031e18e1421276d0458e50c4ca90c9acba4ca66c1105090b553195c6c04076777718bf7aeb2ea51110f290a990476cf76d4a804a94a66d631429e5461ed563bb7b40294a1991f03b7b30b6bb4bb75a376294bc3760125a1209898ed1cd07ad459458fdde0a1aeb3289928329a2dc8088fa7d94213a26518eb83cc252bb252548e11f1cca5ac1074f02660448c435238eaa7c973a4aaa317ecc3fbbd211158e9c50bf6f25c1cd284c2944915a025b6922184dba478a0d71a4c4155982682241ac520c80a04270a823747f356e617597184256d9fbe1753787570677776fe725b8bb3bbf3b4729b0ad707777776e247777776778857323addcdddd9d1b29e6a6e5eeeeceedeeeccdeeeeceefcedd2e05f614778682af40981257ac20a221618111b1425219a50658c3944532498183262c522c66458471135420126156ac561d7f74159d145d157bc42d6108437b64854916a1f4d87929c2490b7aec4cb9b999f2c3bd8a98d6f9015706abe0254803207ee0252b5ad36b0e191c4891833a25157ba4a6fc881c7fc4283236a3155b113d62aa7fd78e313c85ebd30edcbb6bdd3e9f3c772d4895f45adea492cb2dc79da6fa3e9887f029945fcbbf3ce71d8dcbc7007d406acbcbd75a5e9337705ea557adab26f32be3c5f8f0635e7e54a11ee2f02c2f0f04e57ced5f3e46f5c1783dfc5fe07f8007275fa40704ffd36666e06bfff2f2b5f87226fe4bf480a65734f37046b5372efd2defa2fa7af87f20a8b67ca6d73c7942a97278fd82aaff49f54120155090ea6f52f1f00faa5b13549b99f1d659dac7e9e5802f1b005f7b97daf3f44b6b51b88f3ed2254f41fd3f9fda114618bb7f9d7a2967adc7ceed52b8a58107bf5c9a27743e67a99ff65b0e0d88877f0ef99af705d54f7a45a622a1ef31793d2881afa46b725458638c310419f8822a07b4fac381d889e0e0c3d93a3cfcb5a7a8a72f2f2f2f2f2f2613cd525d9e630a5d9e83757395d7d927efe3364ed5c36753f9d43e2580b3d48d337d9f43ebf84b87d0a507217487be64e505dfd3cf75c7b3037358e849af4883373b6e034d5d265a48692b3ca3b806ff67aafbbb3da08e6202d02095dbdf87930bada5fac318213325aab223b2a880a7949cc9a857497ac5a69851aff8a5d44c466e8ab5ce6a71685b87ebdc7e40bf0920205157759bf8811295f3ce34b41f54d7fbf88b42714846dd9a10f989010b858f7291eb534a097cc29182826ab0cde1d71e72b1db7e6f8851370fca3687ff5b55647a9349654a42a7c9e83319558e4695e3504bac083f41827e8204b11397524619dda7e64408f2ff89ee0fbd20f083f8079d604e4a53a9ffd56aeeea47d2eb4524868411242f2122a323664d845eafd7eb63abd729091448901e3ce8384adaa1f5d39a7571aa418fd69994a6be551b090af187dedce86d0f37f79b86a0cdfdc4a7125405832afc7e541efb3dba0a7fb9c627abf6cb353e18ff7b7426219a026e6f705aa766015ce35fb99842ed5abc84db9b9ddcaa8fcecde199334654f6d33add8cfba7753ce0f1349deedaeee91ded3273b73b84a621facd6e85b3daa9847e36db667a13c731d7cd3699a0c9e46d62d3cea0f81fe9062a901c81ee5a2142fd5a66755b64753d1a24d016598de20fe3642d6a1ca3f6f139c272ac142a7b33fa983e93f0a37f66b0a1225a3c2cd9a18a0134ed7b2d499783e802babf312882a51a7fa78c461894a9cb640b47fc30c96aee335380fbca526a9aa64108fda18c30080b5b53903ba49452d334a9ade70158a3f7231661c5fddddcdcdc7fd35bc8ea47f917ba803233ffc321fab5765a367ab7d70a16b6c03b7577377a1fbff45e6440f9e70721845e842c30e122c47fe58e317aff37beaf5af5ea791aa7b2c73dcb4d98025a12a93dac31c68efda359dc4dd8a8aa4387e79c83281dd1d33416026ee01967bf2646c8cccccccccc112ef316498fdaf48af7278c0732054468de4fb3fa7bb0604e4a53a9ffd58af7f5eaf956350544f4f75beba331915e09091959b2c49122846046312416691ec18ee94cd14f09b1100bcd28f4e319cff8194aebb417a4573c5cf921dbf13ca8dfce568624a5c4769fb5acf63edd302b1090eabfde38b4600234825d3b92b829e7d4a626b7d61deef2e1010a23f48a36dfbc9d97ba4cb2f0aa500b06b82875777777777777777777f70edddd3b9a87d3cd5f89b8803e5a3822bf7f7b624d8c707777777777f723f4dddfdd5dd6acedd9d0ab95727fb7865eedee7631c5e49814dcc6d7f2f97919d1415645873be5211bdc7be5ef01faedf88e57a47d7b385eea86c61071c1bd8326af9e6dcf47fbede1ebd5b343af985f4c2486041b596224424446fc32421f409afc98ccfc6d120f3d5aa73d1d7ae5aee9fdbc0d4aa833680458802e82a8df7305b42447707bd339c026adf22aa5dc0186a4c76cb1f020dba775be950ea39f6ede953f07315c477591f63cee72e6baa71a264e1728e0580b5c444cb0d3335f68f6cc0208ad7ae67fa71a84767ae67f2d740d00dd3bea2ce8156dcff9c95fcaf6ee9e7336aa486b69ab56f1a86e7018a2373791082d954ac99f968d9d1652abb5b384845464f27197c99b379c6aea61acab029b4aed8d13fd91bf0325543f945055e9f0416a355c24d82ba4cd93de97aa744e4a53a97ff9f5c0018da7056854a8517a3b36870b0a63e5a6ea6b49d5e753a54af3668f568d1e9d75ce84f473ef2a214a7efa394f883fc7390b71a821ca4539234c457715b7e7e938638c73ced89c0741891099af3d11d36fbf271f0eead8e12cf89b6aaa92e09b6e40df4bf50afe8401f56fef08856b9ee0ff70d1c78f24411808f350654dc61dbc640786aaad53a916097dcff47e348b1d40bb5ef1f3b7475ed16c6f7a3b367cf42bd32738ad5bae80c6a07e8bb433cd2b724d2f35577be354fb71e20f20bdea8f9e8f9d6d5bd0f9db330d4d1374559dcdaa1fd50495f55bf9540d87ffe7537bb42a4ca5229456e158c9b172fcca2b5ba9b667aa967ba6ca359b2eb647017d7b38ee504354bef6205857ccb2f87700ad4e7cf8db431b2e54f8316c97ae03b6673e777201adc0ee781d7b034685ace56253bdb360a38ab6e7e9cd0b9c08a8148d5a6952c9680602001401f315000018100a874342a15818a6999eec011400106f88406c54389606034190e4280aa2288a10638c010600430c41868a864a00cf0f5a0a3349fbbcdb4d5a6e806b8ed81a4ef68b40c89b55bf3749ec8288431a22d3ef808ecdbd238f992f973f1972bfdf31d531d1655bae4d8e8d574dfbeb4540f69a3f76bb130570dae5b097f0fd4392517fef156f176e0d6388886ae47b375b0208175479754de717d81783f8a6e0be701737ab92642e1c183319e6f0199649a6e5b30ad025e2974ad03500e122ccd5a67c8a298c31df1ff41ef6ee14d9abd2a9a99822fa8b84886330e961e26b51e740b1e292a24b4af35995912bb81e58a70acb32b5e1d378f683fd0ea27c1cfdad7834c041605e269a5b84b6d3ae9cf2b6bd0e18dcf13b0913c315913ec7b309b70dffda05034db9ab9ab5d9fa7b822841de2e7699b94e3b3ca76ae6a352405b427e9fcc33b7fe5dcd3c69e6f7974d3407c66b3994cfa89a2dffe73595d3b544333eba540ce9276384eb50165148162f0f569ea6ab249ee0cd5f3da01c8aa7039833d1f25f65672e11a69908b0f52c86553c706595247f68066dfbccc4070d217c558c485a4e973b55db003e3cf8737e7142cf81007d3402b1183b54b2a38c948f0ca07541c161bf411f50f7a865184966c8108f32eb5a227fcd333e1d68f76fcf1824290e91fb8c1efa50d21f5ce15d10e55f081299d7115632ca04753d8a724964c5ae73934ecb92008e1d9794c6318577ade4334040d21101e0046a41c0610140a7cc6e5dcb5769650ac36512f5ba87163c1e7f49b7fbbace045f668bfb2616db24566d37d92b166505b0f9572c1e0a919e6b54e104cb049b879e9f6d84e0daaa178d0aa05eba4a590ecbc7e7e7a81c0e929401788066fb797869fdd20fe77070adcc8d3118c8ad7645249cf874c54f9eead36b69d7a301cbf0a2b43db634a1df54aec4b44e0831e0e7d57aca92c49b2490e9982298a4c9389b38bb47e5bbc90541306c82165f5a9880d46fd839ea3aedaeba8ae879064320de18d5ac2f451514ef003e29919cd010888fbd1297defac5b312c600919dcfd540d928e597ede4e8e18544776deb34586f274f64d476b2c95527df18c882e76ab550a7c1374feeba824030eaf5fc4bfb5dc4ca6680532b76c0162073c297c74bef58c3f2264f262d3b900f29f0005eecc114b7035267fb2c3c4fcb509bfab4fd1b0ac3650bc0d776f7e0dcc9bb6bf79370042f9b3c5777d1023f78b817edef469904cf81959f9073c7bbb02c04225ea6a1e37522e12a0d2a21269e3538da01629dc3ba7de5e62fd358b1720504cc5469f81c9f9879143c05ac6df49c9175483b3527be22458079d79049d8232dce29b973e382540e903eba5a462ad9e5a21749c691fde857780225a3bbfaf2ca406d685c64f64dd706daecafa0a98dba44d416a3182eca3d4ca546ce90587e93e8aaf01e4353cf49ebe9297647dc8063f36506b6895ccf664d178010999c1382346967e7a8f2d61b15fc8ec4e39e5d83a596c54ac9e947628099e79818ee4abd45032c7c5caf31cec046f278c94ad8189af8b2b3659403f13716950ff3516f5e91783070b088b808fdb9a6e6fa4ed992d080b77aac478827a172202ce53e2e5313d5dd21f2a78edf7f9c904099338c6fefdd1ceea242e8241b27d1bb5f33a04a684650203da28550a6537307ed596f2449f1de326754bf74ae4ee386809a3e5954720ddadcbf652850bd3af307d41a162dc18c67fc0762bb4c89fff53729145810f119c3b2ad520836a14eaeec6e2a1f44f72483bb0b48f5e4f478029cdb6e7a069894ecb4a30e79d3c0b3bc9f83b1f80673a17762b935e4b60cb9b421e3f1f6e8ce1adb5c49debe47e306e211412a0a57371854ecfd9ef440d5c570ae016aa037dc2bfc0c81c459df5855265e044c812c02f444f4ec0676c3d4806cc763d668eccc87447b487bc3615ee64d3e0571c1b367d07ce4431fca71e21eea00d496d4ba3a3fb0d3048665a8272b40d7c3ca6006d192470efe20c7d8a07328f79d650052cbe9510a347b0aac1ff3e7b22e1ef82ee37e996a31bf78e502913dffd05a10ee03c6d49d88271e8df601b9fcdc25e85be025772b1eafdbc5367010c011f2214c425145f976a2fbbf2d0aadcddd0609fc77eecb9ed130e6eecc6391be29686b359892c36d6196f33ae7f3c7c64db05d25a9ec4e419712ddfe606da2fbe135af8946840cbaf71cdfe9b2facef8bf667aaef924da95f9bb975212094559a8844b37c1782bb431501aba15f013298b58193434ab62f9ca0e26aa43429d1285d57fb027b25dd06c573526d886251038bdcd1d14cb872e75228028d767915a897ffe127a330e95f6e4506ff590ac894b56392464035c31d8f1cb74c51b6076ab4f0346f3759fa1d0fd9426209a1887ff6b25f415517364db1284fcf42482d06d30334a0662c490b84e22223e5efe6941d457226892559094e40fcbe6458e27074460761e2684d63016fc8ee6efbc3a3c70feef45fe16ff9a1cd16b1e656be0e2b90cd58e605e50cd61368bf44af7e6aab62e84e16d583d2493cecebff470e05a91e8acb35fc867ca9ea8addf2c77ee3bcf3812a1e0c3a3863c0e2991a6abf7f9ffeffa63bdb79658f4a77c315e908777bd1612248124d708899e989106fb0464b9480a318a8144dee1697f8b9c2ff24320298e1687b22da357079b02628ba030ef0c7564e37682b93f8be32499d9f6d05a117764bbcc8d45077ff07cffe37449b060ff2ffb632e80230e60e7ea075acb7fcc4808d9e0ecd5de0d622a10e7e063cbb572c21a4aae71eacef55b56dbaeda7fc18567200997c720c30c005ffe62d04ae9ab37134e9d54fe9e8a632499172c9bd5131486770932d38f5b1004e9ee1ef52a456b446b23d82e709fa6db51a2f116c88b8eac61f7ae09884459a50982ee05c27d6dac0d5a5d3a4a566e2122cfc41acb876c3226ed2a151a8d46101f79f958506975ad393f4854be9bd7a900c647de668fcb6e848f76dc9304ab19f0ab4b685f76feee97e4f55612b276fe2a9ace8da7b3447aaaf5b0f223392814b13720a1ad8bf51e3466a0628d62c7e915ccf57bf650866eb56c59da4758a3c56c451cda6d2c4285e17b16934a5988808730de4462c6700f51696f1ecf34756944e18107382457092f8e35f0d6ca0e54c554be5d9bba35b879b413e96639b818e506fda61cb260aa357504f421a156732c1872cf683c430cbd5c4ebf7815bf1b51d5becf274e09d83d9f0f70f27eb44a1bd3d82597ebe18b45ae861bf54e64d54c2c1e4c06f756640a1b0087987661af99a31e54fabf19fe4d1a2946e018c7f73d0f3f3e1e8a9d47234842d84b916cbd2126364d23b5d0ab9909e1530c252dcf8d6f2acb2b317777d0efbe70b5bd642e7e1a6d8ffc65164bc6202f4113ea56c8b55b785f4fce64755ae94a48c87b5747e4c704085d92a6e36643ea6de8efd2ae5dde9431a047724ebca938ecb803306467204754072e945b8b020131ade5fcca80a3aaef8929d0bdde0010d02c267f155d6c282424e790d66f85fbbc72194c7b862def1acc433b84831a619b1846de879c1d2105c4d17202a8d6dc371e908095fe4266289c8328b64b0c78f2cebb231d4fae3b635e78a365d596604d928bd8be465c464d86f8210fd0fed88bdff010943002e25c150184c39572c7e4e7bbfdaeba068b81a2ddedd5e111ce1482ac4dc17b49d6eba5c3bba736c1d88a104ffc840abf75a0d195740b44166687c6e35a8d5688be3b6170b8a0102fed2b34ec2110dcff710812a4fd5e7333a28130e46ad56ba596de6f4bb149720a373e93c04af9c758b991a10180dd7818f5aa91f81504fa67328ab07e67c8f9e5aeaabc2f8fb982f5e862ed46a87a7b0dc4fb1bde476c5dab3da1a15f95b0eafcede8c49ba62b1735051647f4d0d794ce4c8c45b2272f778ab2461bb472465da4e0413f0fda432ffe9f09e5e88fc4bca070332cdc14e2104dadf2b3d948d28f08a21930bf90c4d4d8d2501b674b352b2f114ebc9b733319d4b9fc348ff6c8335340ad11d75e5024c8d141fe59d0f0c0040fcb4aa9e2ba2eb456691cbcd6d3e2cd3b3f9080e8b3d9774f4da708fdddb94d7b48707d43e5321c2f631d4d1eb7ceb5472c98215405addc30c06de03c6af91279825b11176b2d269a2ed0b8676fe5d2950349b85444343d52d23f8adc62b0aa301fb815b62786082842c92584f8ce1d8a140ffb63a24b523368a1a5ed05dd648ac351300bd928290cb641d2c5c7f886f04090bec8ade68aab4886407de4116f03657ef5b4ce53a54b90209aa739abf41dc1af062b130a263e300e88fc1924e67ceb15709e1dd0773927a3842967c5df8e2db77094182742c4b06ab945693c8172e1b555711080f5fd54de7d2ec45d35379daecbfa2cc8e060ac11b740ec437a0ca317a271835acb645958f25b076db4d2d05772e0702b0b26cac5836453dada2630cedf507b8d0b6ef03af30b20b6cb626b505b55fda9d1b07001984b0a923645ac94724b714fc4562c0fbe559cb41d429d10196d3ca5a58822d8fae543113f0a99a6ba2a608172a9e9f6df1bf061aa5b29c50ac52629e75be433a670c4dbce751df2567700767f414f2e08172eb8731192e8ec070095495ca1503b72a0ad42c9cb91c38e44bd48c8730a1dae4d869d40da02008d39524eecad427069624e09d5cf06e551a9510feeade400cd21006acc0d900594031c759d09855fb9e43664f64ac4c0ae6e89d088e962c15fb59b950c4f2711023afd1e0fd206b0ab2672c223c33dd554e28c474411c62f4a6b557b918c3be3abbd8f9b9e2dd4834709224f0c97f00b092721bd4e87ed2034bac741a89a22aeda76592cd670beefb52b0cb8bd1631f058055d900a34ff11c6d4b805ee8e1f50197473c7cab13ecf72e897413170759de17b834fa752a4c9a248f001ad7728138fa1f77b4129d6550c961221341ca1ebd2ba59959b8dde342436a69a454bf56be1c92f5bb10784093ff490ee293ea7a9673a88f87408dffbd72d70ca97bc17f4db839a05a783d8a916fc49b7ff8512b14f33d47b5bace085ccc51bd44d4d2dca0bebf1cec0c7e8205e53de74350c4c00d5068388aae9820c4c25cb2ec093699a6cf3dfc7a75d18a31c3324edc285b10050d3b643ba8958f2533204255b10a3ceaa5fc2c22e28783f787bc6306113866737000340903a144d0c10264edc861330444a32fb11238b18c29227ae6a0930824e56c0646aa028771e3ea3e51e075c31865c927935d335fdbe9509d3693db805713285cbb158dca6e417e8f47bdd82b590456aee4af56ae12fca1df6bcb9e94d34a26733cee62227e3f1970305777aca9d8407d4b6938e4c49c97c4d3f773e9237542164a84221adb7fdfd2882fa40ea3baf755e54ecff56beee29f2f7e97914059e7123b1a31fbb8ea191918c9fbf9a960e662b8b318ae7ac7a4281d4861d8580d6fbb2b9eef538b9e63d407682f5546c7221434313db71d9b6f60f07f2e199aa8f0765381958efe22a031fef2c04c81990740a028a24d600e8af37e89281fa5490b3fe3763378702cce9ed66ccd6d38ff1d5011086d18ecabd24a0af80d063a86c8dbb7cd27f6124c2640d016944831100d6815c24300e44ff7909417408d260cd434a14e9a6ff604b74a00279f9a94b04682ab701814701fb3484b008d0fb967788e2975a5334038c87e5d8dd56cc71d48e40e9082b289f01b234df53f48540b8304c44cd51ee6ee2b08c3f7740cee833ac98892d629821ba959c07fde5323082a9aee250973cbba19b0f08148ac0a66cc6de3c320d7cf4665331797c5bc9c00f0a256d7d1e2cb5681aad34c278349f72b3eb70d462759566edf444029cfc403f07fd302b6dfacf871fe9acb68148e926dc02a4da435628f84a369c0990dcf622dee34446965b7d89c9911321dd74fa57eff101d81015913d1d4c4f8eda1068ad305b6e100ed5e64ba734c5921c03a5f809b50a9b8647e7e264733f1f0b1aaec4f6e93f7bbc731c990a168edb31f1ada8d030583246f929ba1569067e8adc6b00cc7edc90a3accbd8731f16d920af8e373132c786c4a9e180bf36504a938ee4c06b973625678d260a3dcf2dc3c60f5bd9add4ffa16256858c118b3de9d8e2a2c348226c71dd03c0427ad794e3e564d6ffceae91a069c7dc825041ee292f50f7eabb0de2c33d5ce06969528bc0622037b729f8c60959474cd932d83d74b09c1b8d132efabbf319f4606ad4810f3bd43e80e7cb919eaf6566518bcc805a2ee2c2d0a0474b402a25e1922f3bd6fa910dc6ca2776e809a278676aad846cf4c90e08ca6da96ab1dd11927382216ceb8a50612e0a58cc28aba17aca514b71e63080047bdf5c05b1f4c08d90a9ab6d58f6cb6298b90d3b85f67163957376d9cba13d9d0e7b5ea16b1a2981dcf54c6596316e128aaf10fe0041d0ca023e98a22013b3b8dda1febffb902fe46e65f8ac52eacb0b051a20d7cb1657308f49ec6b2128f914332e257e8ede2e4f36c4e42f974480fe0434dad9da99403a25da99d1bf679d26c29f6a05a5f963b6e4c2a21672d8b240c47c787642e296dbefe8458a06552047c3da15331cb9ba1c6ad32871b0791254b6cfef44e4272598ce41ea5254197ba926f6d91508cd84612347596a7422a0ff2b61a54fbcc6e0bc22ca561d8a66e1267a48195cc065f8a14fa76c11c96e64c58a3587bce015d70d6ec2911a7c12a2173bcced0d629a065d77055a5fb24e67ce04b671741fa61e95f1f26797f63bb156da0fa3e1169a7d04b2df9c184bda28f52683d4da2323b0a1f3e9e05ca2ab4dcf29323f3567ff7ed5ceb0ab0e250c59b24202b38e808235ac095786dbfefbb62e97a5203e62cb55a404065e0e2a02164aaebd73d7b2e95ba1ab42c97e433031e600c71daefba372bd0d88879d89e82f83b27d2387645539114cf95e681d4e737a6ccb511f0735365e5cdc97bff394cbc978e915526f4730939b049637881018e91d20a1d96e9bb11f778a0a2b7762a7f4d9552f5af1a9508a10a777ad089407f0a6a8d730a1aca5fd9f5c9039875b4b8e7fc2b9ca403b88489db8d56bc0a4484285a7d013feeceae253a0d6998c3499ba4040263b0051ef0b977c3130cfbc243770423e95032b09591c08f290d325d51f3959b813a79b8dbf6cbe8056a54551fee1aa00d46b7e5502699f60872f612207f9bde167b7724516e56e78d927d60f4416cf0d10238a64fa9130343c97dba8483bc956a726e23487b261ca60a3475d17be3f59b01b31ca5912acf670f7acf45a59531db81fff114b32685899322eddd9827d5b4128f96d858e39dc8af1751e6daf473cf8a0d687e5a18f4f886eb3d7788e2ce4e0879e3341e7eccd0a3d5d83537309bf75b71a7a43d7ecece3a344d86db7620870f4cc563162f2061533b536c6952931dbf2de7a3ecee66a501ed50c2af8069c692d3bbf8599a3bbcc9d06c0e3e3c598796cc464445c476c96287c571ef649ae6c83fb02d0fcc93eeddd4fa7adb5ba169ce6380762be2f2b8d9376921d56c563ed701c4191613e15afc4c2e96cba17f572bc8037bf061dc05b9ad27b1330d77c5815c8f081cf97d60d4ad969b279430ffe62a3abb979cb214a55a3724329fb57dea95de5a3ae334cbb57220106de715e596af8667c6daa2da280c5bb35b32d35b676273833215e142c77751b14aa124e063cede84a32ae012563a3ee9743008bb2a4a9fc1750e19b22d83b37809edb437b32b9dd8ef8f30834df3cbb702b8d198bee3b482b60f7fa23b8c497832c66dccb67263831c8ad21b91da3cdeb9660b560a29c35c62c6d37abe8b12877ec48b8c77f266c140d66c535bd5c1ed6a5b7798c26b427d445090462b207ad0a52e0ebc17b5ce2f84ca58334d1743c226a401b33257553122c58c7f37779a7736a412bbf5d6857d0faa2bd95f13f459f979bd6560f6e4f8338d278212cd1e92e5f2ce179471463665a69b82197286299553ee8ed459a2a2172ff0741c1e46c01ffe2be13d17b12670c43f5c7cd6bd15c8e89d36efe8d6983aa65604afb8738d6e45d12000faf187b3cde0ad78af0e81deeda0703d4b2848895bc4dd26797c09b14bcc6f1c800b66a1a55fbd4ac49005bc914f9612667b43e6efb8714cbc47ef9144196c1d50624ec7b1d583573e8dc3a3f840429b8564a4e4e9fff6a612d8fd4ce3b8b91b117707b53f389d48b0d45830e833b58d2357925b0b00b4d42473ce131949abec5af0d2f3a11b51f6dd41025c3e517eaaf7047c12ecd74c7319e3c2e0c67d5a122e607050f2359aa43911ebeb146ad92f00f0999eac56b1362853cdd5920b4c707d7f08ebd2aaa287f7749c3acd24aed11692ebd2bf4702630d41a88f12f0293e43dd2ccee952aed194e054835f3fb1dc7e38af261f105ffbb65a9cfedcbc04f1c9edb79933a297b625e0589fd689ba01dba39c731245b89f9b01d3f433def367bd692ca3aebf6a5732c7485891a7de1f88975286f9383ff130c85f72ac5052e001a20b05de7cb6dbcaab2ee8433b0235dcf5e18609580cde21f63969785542507b6a720eb7d56116bd2a84440bba4f9520b4dab63053a67188332487a9fb0030c902ec507798cb483c380eb9b9e919290b2d14ae90cff513aa90271591957f992f3c4c618d3402c5ba78689706034422ce257e1b8bd31903f3569064786965f8a413512bd1f76feb79589846aca191a09e2df7c34835dd9ef4f1e81c02b747ba5d8c09f914b1d0a3645407007155a13b0838482ea88c23dd1ea49c239105400a3ca0c84a77840a8d792ee14f0f73345f9877c00728a800c79373630d15a17d117035d49209f1177a8848d9bb2166bde31a75639ee81872312dedde395b1dbf5ea88f7850842c0931bc0d668363f7dba8c2f40ad3b19eab23bf6cfe9ff115edada72aea1481ef5ed61e45907237bf8e92949372a04c4e660bbd086eba98ac3613274d378f9568e6673442ea28ee43e3c3c2d029ccd6ff04896ddb1ac1bf0b6913a1a77ba28d4a7a2b864fbc00e5eb2a04313f2abda442b3f2b61c94d4a197a975b9618f3eb4db65e14db42663d7cc892f0c20085449c152a15b7440f4ae3c0504112dfb0fb46f8fb99953d83180762e4af95a7e53a46b839d48369892daef7d442b072adba070ef18b9a2b65f558778c7e5923dd030cee0df36add1688517f8185ed0badbc6b2b7ea09db340a698494ba1519775bc61739e3376af65a57251e833ddfc583c2fae6d28d7a2c9947afa28f4dc5bece456c8ea0c32603846aa7a900f87475c3d4af588a2c3f4597db71495b55d623fe6c9c3cbcac4e10500dde3f9fd50d9bea63ac8ca50f95f0a65efbb494e17c3154c3add2a86fe3e73755dc32cb41de767ddca298598bebc2698dfe3c0844f1164a8b78c5483f7c35e971357ee45bc2894ab337914e28eec454b0f7ebe6c2d5ba9954278aed4a499bd283f0fc3a90a993c15cb64d01ad3b0ff55142e31c06f0ba122f185c6bb469f7c9b7d205d7154a56372a5b0c81e2a16feb611cf473fcacb9427a87672ea34a1a8f351c3298147e45d8027e961d5f248385c4da7bcea504b7b146b53fffeb30e5a4ca264c618b11b2d7395df641845c458a3e8f9411718e46c267e2bcc48904389f3a5ead8401a2ff2574c5d4418c218273348c6c342a9e7ff00390b8cf20d39c51c9c267f422accea9b68df70506f885d41c8480fbf3fce016e3d52a1fac5e1bf3f9313411fcda8461f6b08096eda12a55f6daf45fa518011691004463666a73c9404f53f261d49cc8ae3464f8e592020f602d338ae14d74fd9520f444e50fa25e00941386645c7a65fe8cc5dbaccde24ffce416115b792f6ede38018f62661de1f540c596e9c73b9117b7bb30e77dbad97cb7d0a9fd87f85da3a5815fea321dd24e7877274dee1f1bd70a163156af9987b088e066316151c3eb8360062030a7c54b4eb5419e368b922946e149698da2dc3f4f4d8cb31170cb9b849932a36cf728b5c2333d0e065755d80509de6c196863d861fffc405593931eb9876d043ab931af176c9b21a31cc9855c09d88694f001e91dd8f72df74f4da4e1d730be5606f67d042c0e50c3e42dcab438c0eccd65647da9fb9f8e6330cf7341bb8cee46fef0fe0dc74bc57eabd15bd67e2e18644603da7475500f3270237b1cd8c7adbaf0070bfff0f00e443efe6abc11fe89bc1700d2a89391af57de418a4b00fb42db743816f75fbbf3059ff92bc7db76cf6aad1640100fd4ea75830b830a33725f9bd7497a24ae0c90391b3bef76c4d44cd63febf61a23ab142c62a06601e5faef1fff5cd9fe0052bb0d6a0e5d7b4023322f937d5881b3e57401e1203c698322cc4a33cc15facd3fc3f54db360cfa8b81477d9d2b58788f562819df8e0511c937e2b2c0772bdffc627d47249677e6e9b5d3fec3adb826be353ea0e1f1dcaf9bdde3121641dbebee1906f59e03f621442454be46bb41d98d9bfa68563a6b5b472c806360c97170e5998e2bd5298efe600918fbb34e3304f88819abd233e5113361202c6b0991167ff54e7582d3368d0f4c522cb9606dbfaba86efd9a0493af6c11d6260aa7ae4b639e55f001bae3961b153665131f17ab142be927104b0f8708045841fe167305c47d24fdf89540624cb5748d09be51e96a932d78f9810d075fbcd474ec4e95800f640dab3a21c2102a6e9f5e82d8da2bad983971ae4a49f1f5e8e678156dd804cafd34decdd50a432086f534ed88fb109a9680bf5b8a56184f00a11729b3aa56ba8910aa018346a11bb199fad4372f741aac45c3f6d90c4554953cd174b74fd76beddba222a4a070fc122d745350c22d760c6b81fa4a56941507b16543db68f866a6031333bdb96b1f6d6019228ac9212981df4c298ab717b126b5324df038593291345ccaa7033190c1caabe02b0e34f70af91bae219135fd74a5c295591783d246ac366b85613f5cf7f362167c7341832627ed0c354e7ee0bd4065e48c5a3a9c50598feabd22952860e4348162168d0e97c3f5fa0e4da0d19d13f95be195d32562eb4fef6bcb6ff374ea745f7e3b81a3f1743cb6abb8fcc795bcb47ac04d308c136c677ffb80fc356968f6b764ea910b3962511753be3983f5c15302930d888add42b00bcd35c80eec6f1b8955ba51f53acf9ce0e711800a02405c579ce34bd6a9849c26cfb66c3eb768d0f6a54e0531c39f4b77e9dc1341cad988204e4b5ac981f67d25e73e55eef6ffc83d69a05f65d2c7c226ad370ad9acecab629dda60b01bdaf085465da07d68e1e8635cba5ea9d871824b3cedb40dd50969f69bb86ad6c762aa340ffb9662eb6a10775a55e1c30020d029a6d60f8684c7befb439f8c4a6590d9e20d25132de64ab8c819995ab01442d18cbdcc3284dc8684401816b1158251997e6b021f45386edbdb7ca3454ee339a339322517112b3fb0357d083c16f7d33d86e571524c8e72c9cccb8a586ec9f5471b5ae43121accec89e9b7dca9fc433ae853b16f0b7b39f485eb0b5c465bf960699a30821c16f35ad86352460dd52048388609a795a9c9d3d1fd9c946c874ec48866c93a38d5fc91e8fe0ada95f71cc49bcc235c49cc279b4967e333d3ea9b7d8bebff3b887ed4f856137bdc4f4dd81ff25bc669426e44899c85d170fc7448b8970d74863f10d89286f724cf5dc28d33bd6ea049e133ab06c567759583cd7846542697eb404bd5e9de71d1b0eb5186986a2cd44c34ab1d85c9752327aacea7a62d3b37568dd1b960a5aa895a709f11f3fcf60833339e66920d6cc0188bf0f62db6789e7e2d097ce29e7c094208e13aaf459cbecb9e364010b137c8f71154f560600459154db8f71358ef384ef18b1805132886300109b812028ea007487b841d470b29a9d8c4184ada0f9b474d5aa1f91a03ed0b63d9357555629a9d962e4bdc1ff70358acf3826ad913038f348a7d9286b4edb2565eccf48eee2575fca5c0fcd9832adde3d14a0ef928df6c0f2e5694f706ec8d9eff4ecfd78ed90edddf95b6d9b8add16c95540c37012b9261929e3ce4bd2b4f7ad69e08e60909657781de90dd004230f026d19dd3e646245604086e92380e7f7255f253c79639087f4cc1c2e33a8327c690f83d4e30f0c5f038ef9c73bfc4366a6a90f1e0b52653983c52f6582c74a066ddb6f8f23fee42d541f5b151ba11b6ae3b5cabf144bd99635609d290d77682f71712bc7d810851a7a1c3a1a70c13cff7c9c0b8e75475455316e9d3975e81af45d31f402ae1dca41e5ef7c58ba5429483cc11403e998221186a271572d721eb7640543351354aaa44c790e7739a8ed47fd57e34f0192afe0f7ce688a4b3c4e69ca8d88b6ad66b5d64a603a7f8ff3342d0a4345d249e882f83ebd518cfad362784dd7b0ea4240c0a55654b461cb61ef1a89cfbce01bf5c98860aa66432294ea8421f10920c03606f3df059c7a2b95c1793ccce386c620e0d8c72828933d5602cdd352a8e309c00252e76ee00e8453358a74f488b94ac57675198a8e15788b18d71b68553e09b5d3206e7a7c66debe5b4ee4a4b786833ccfa78c9d5f2d869ca3c1c85a127c24273f7080f2b7f70b116071deb1ca93ccee456e627314b50ae73d37b408841a2f7ecb89989eafb0a70255f86f20ade281e984ef75757f94c3a15232f7d93eee2588192be6e6f04efaad2743c902015dae76390edc91a4338ba8f5a23815ef3a16aae8e01d9055848aa3a95a68945b86cdaee8b5629c346e37c7eb60b0241422fc080deb99d7a2a8ceb8ec9f637d843f6193b8459939e0be853825e68e60147103eedfa50fb2e4c65c8c260aef282c90cf83954727b9a74144079c00d93e07b0e495b78eb686ffefee68eb8c45eb1b9030c464482c0df93d4d7e30ac474fba9c31b1f14302777af59a3163c57377602b33f94ba326b5bcb9f38f42f1eaf582f9c45058ff1b31bbf18965e9061ee504352d289ecd63398d861a4f484acad5291617718f2954e6ed9af85884e997315a094be03fa7861410c70b2364faac81b8fc72f42f016e6ff4ce8d11cd7cfdb9ad5e1d42b47f2aee5d979b70159f69daec4385452f92c3245e4db9947beed4c655744ea796dd60405f7cf1df9e6e17d901e5ae289ef74bb54ab054aeec54e45c9d7418c76a40911e1851fa025289c4f099a3d9ef71a72356d081fd94d8bf21f6f8b40cd3696af790d1ed537f02da9a8401a792a168cd7f508f4c2e1a50d55290dd97deb7e32be895bfbdba998a90e5baec8b9892f80dc84a7db6a84e3ee8658315a783c9a2e97837a30b290950ebb7b289f3c53a6234f7516d0ad7e244e6608e7097871653c21a085378888d479fd39002463061574352dcc8d550b42adbb1546d813405ef9df1a2877ca6ada4d613afbedb72e6d755eb5b870bbe67c0eb92bcddc05b735ff061a3e3f3d239ddb5d17878b7c9a9ea8a618172042eabbb08034f4c1d6b94326c198f401232d05f4f5e8c5326534c829b56c02cde3c3aa5f4aed10c1c519195b3a6a98a236d18b01b690baa8849c48f9b8c4fae9c2178415e39a1b5e3f83f25434f90c791f57a1bb4a6477fe28014e8e010457b192816d2a26196c4a72b161615e99cc22acf7cd8829a7bec1121975f06c569c6a1200cab156c3fab6e991aeedf4f962fd5fe2e51c75850b655693179c8c6c7d8393eded6876e397bcf9dfd020b7ba423acaa906e7eaeaa07571644b131faf3b3d9fe6fbf20993af02ae786e720305f2f84e6f819be91ab38ea5ddf1d5e14f689d2bb81848a862d955b1c17c2f4b4658d9899f079ec12191d67fb3fb63f4c5880e99f9969ad8fff3853802d4b432f4a48acd36fe43949ef78510c4c09f1b5ca8dfd35ff0561d0f41fba433f41d4d6948fd718d724424e9553336215f604c10d113a443bde645a9292ad10bb4f251f2ce9d791f87a324cba1686835299fb5b0593527d2b40725b98f8ff418fcb084d24de94db4f2d53f062e348733f492ee9e40447a0036e24fa6c38fca7b5124e5a5052259e92409527e71e4e0ffb895ee8a6b95ccf328b0c885f2ddf0f97ebbe9da528f41bc75fe904622b76c2ca90121c18cf5bd18cc66a97d0e7a9f29f2c2b572afea0c1409153e38d27aaf7766c2c2daa4de4a735e49351c6eac21c913ba3baf5053b1dc8ad2679d7d58ce6ffc5cbded787d10e4507a8cd38e7a95f9c16bae26c68edaecc1870b83b77f4c98bae4336f1513ab4733dd28c053fed640dd8d8fce3a4e58552456f3129357dc8fcd5714f2e280b301a4030f1e5860f4ee2cc9778267f25d8ff8bf4d00e3c6710548e8fc2408c537a6826f5a59a1071b73b7a686c441afa858dc54c0b851e5a3efeb8d046d73c63a67564f53d3f8c9d140c79173046fe6b924907642706164ce20cef5c3e78b002852fd33b681b8cded5054031651916d6f884d669854f8f2d279b1219c237c8d4926e85b1324bdde962e6725753da57b96307f433028d9d297edba3c8c1a79ca343b1ccb8e99902746ba78b437374c6a2765ec5519ea24ba373923b59c09b4bd574ef8a4b1ffa3e3d985725ae79b5ce7da099b54a09cd7e6c90e7a106e66e1a42750cb84cc68f41754b6460db6ee3703165bb6c0c839b54b64eaf8c19db5b21d9c1268c8ab28e09e9614b3b0af73613e29bb4849ad221ca3a244cc76c3452dfeb3efc812f49c8ea17a516481528ac5ab2cf0294cbea407159be401c1f7acc0241fb443707d716333dde56f1e62c434b3916b62c88c6f7b31dcedc5c925f26331eb4d1e7373179faaaba4cf9d8a3da5dc9078a82bc18e34970aa887ee3e4cc01882f69867942e5c67b8025b4f1b65d5fc1c82cdc552c0c4da173242252742c8e4185f15b8beee2d4c484724fcd70c8a261dc84704962d66d5e3c2d28c2c284c156eb865dce48c209bd6b863fcc43359fe4a465d55498250a3175ffae567e690bc5a8107514e2c5d780f8f962f3acd3968c0256fd2603d3fc44b28fedd8e5ccafc8cb02e35915828dd3801d63860530b7d2ec4baec44a38f7235c77f3a061f26e356b0378c066ea1a313f052bb09a36b11183fba1a2d1a97b278c0317b01cbb170f5c0f76c041709731fb94d239d2e0132909aa11e10b71a029df398ab85231ab9226421f4970e906ae5cbcd186ea2693e2f03713a4a3d1a6f8dbe4f23ebbbab8af03cfdb60b3444a31f7e201360dc351cd8bdc7cbaa7e226c0888ee6ae716f2a4ef7147507e101adbc6cabe28754ac702b11c9bc64cb80d00295af731686da20eb222c06c32f7b85db74985bc0fb441a9fd73b9d5e513ea70764e05995a72c49992b0038abedfc3dd08b4c8151b8b8318e1e0c28004685aa0d50557c03bd15769fd14983cc016ac9c27ea2523c6c388be5e99152b06d7e59df9bfdee8b92b83fc14ded25a6b8e7d83254773849831c3b7fe283f35966ccf6f9ce55e19ef89b960106a7e6c75c28952626b1fcb87a4fb01a5cd6d139967089bcb7a297c7b9ee2952588b9f734b28b4a185244913c59dfa82c7e7ee7f30f955fda8e661819a25686ce829fc2885db5730eef27a127a1085d534a1dce4e415940c42840ede0bebca366c8ebff4303b20c094daee45fc247e3db565d6f7120e87c5e25ec0fbe3c97dfad2097f1457ecea6331c9aa2ea883b476d4bd809332948ed9bc22b35a9aadd73e5a1661d090a22b8525a951e813ab4604e6f4cf2ecc534bd500cffe27d064c565309b05e02e7cefc5cc0ced7ed968c43f47c0095c9a1bedb7ac0352ff3878c993f8343fa011533ad2deafd5e33b1a3070b05f05ba7ec4d4e5fe1d0ff6aca173708da0c4e254cec1d38b7622946aa8ad2bfb732042d6b11e285a9ef044b56616a10f1597aef3123edbf60405e29eb7c9ebc227c8406b9fb084c70fc881613c7c261646d40ed847ad52433c7e632fb67c1cab67aa48620355168301bcf6dd7c5858e0440bbd5427513360cbc62f10161b4468c7ec7a10ab4d44c396e784019ff305a025cab167701d447fd71c7a94e908073dbfae86a39ee35df73dbe6ee7581cde64e939a2a3fb3f6064f41ab6ed6ccb77a23abee4f1727cccaaf885d27dc6c3c2a0e7cfda4b915986b4366aa97bfa879fe1311944c85d3047afeaf5662b390dea8e6149167dac81a0f106def27ed4682e9b6150895b4451103bc0b06aa32fee61a76715bd9818a61835dd910033d62915e3e7ad424da79c9d3215416ccc116227f975727578f2e28aeb55a60621d80d981611f2527a8cb0d9c0010380ae348b1f77e6d3b11e3e5cf9311be4edef7ea787caefae4e6d2a63938aa16a5e2deae608646e0c85e832af45e1940deb9070fcec6b95fa8e1f0b1d76e4519b927e178f7164ff91ac2c98e0904dcad3be303626f6a2f08bd58d32e624b0448aa921280d8ec2db0bbe05799c48545b2ccf34f5c2d8257be3e28d446363bfb1155d6c7f52b896e1a74c32545ba1edbc055659c8d7d772bd0dd66ec6613d34c0b38a44f954ff6a929d58d2bcdfbc878ea72355d824e0b0f1923b1ed2a2054095022b572e3972942357ee73e79823a7dc73e79c630e6ee69deec8915b6ee40cf9b07e4c70e7deda13b1828b12faa97698c471bf2e12c1bce388bdf6377086337ae46cd09c48ff42851723f852a0c857d518b56a67d2e212a5e7d0a658af934b6a4ad077974eee3469fd35223b2703743ab993e4813f019d410ebc93b8b11a524af0957d3654f311c0b83c40c7d5a487a5281364919936fc2090a6ef19249048f1323efe223dc02ac074ef5f1183cef6c712f4d129492877a5ab4751c1d2a88075c40bec85cfec691dffde9eaf820d8c2f5e7ea5a5b5384447e348f005b485fdc49b0d890607b7ebf4326c0e0f6bf3ebea610558e3fc314eb62d247b5bbd81d24b51c1958e2bc63168643298149e78f005d92a17a8e517e09af22e1946ecc500913a4b5b1f896ee8c91221dd8edff76ed9c36bf06e007e8ea32b7f9880b6a0cbb8010568e662465058bda374f7a3b4132081df35d2d0ab236c5c42a18e8bc41369529d380ce6d4ca8afd7c5dcdcb57bed59564b53064b5a953dd77a441558df2a3f2557a0fff538d5168ecc90d359901b1e9c416013e2ce2a6c0dff71bd16b1903030e29b5253b30c80508da290185f7f4a1e46002ce30da4aaf1fca9d66e9bb0752df0d6316b6057c19f90c232b282b34a6f88dfb2fc1c6b83066e95696d593b42c29764588706bfa9de36c5e34f8a38c3d5d365a37f5a72b0ea3ad3a99fcf24683e259e2c3aefcbd59b0dc5f5d28131198da5239b1c605d8b10b64b57492630690ab0fbf82c552c258a6b0411e57cfae3fd5653455d1abee15b126894b3a801792ed570fbf23bbb19142b9c7de367b885723e6120d985a0e09580f9d761bae61f9fa3a0c706b2ee19e4534c3ded16162ac793baff020c7412a9517fcd4adc95b2863e530d9c4b6f081a22df46b49844cee6bf1c14c7d8c6093962d45046b6e759aadb19ba2c26620ca31c03378149f13a16dd7039506ee20116854793885887b2a3de8695de6f6eb3fd09e05ce2b6cef27f519700fdf249a8f061edf035c52947f33e40c637581e343cf9c09773b6b50f78575411773d6192b9fafbba342fae2bd75e6365803a8ff5b1d2e1807adf56b0a8f75b5fba2ae8e7c5fc44da2be4eeba2da6bdf2bd0621ac94f1dfe0b88618c08d2a341c3fe37910b22273731346a6c441bf7e530c26c2ce671e761c22d61d7e9dd0bb08e99039a6b825997d716747d13a5322158841d7ba92628f1997f6f0e814560bf450142c37982eb41070ed3f5d85f5c49617e992558b2907ee84b6ce44c336dc92a37d4694051f9899e152bbc774aa401b7d19e1986f2bb4f11040e72acbf6b380e0ef9d6b6d2a6d13103cb699eac51f5f1d5e3f809b4fa2f76513bcf3bc67fcf63dd076ff36667353a22b8375dcee5e18444339ef372d3a3289003105256eb2f32de9700a14510ef8da904e510310acad8490e24dd07fb139768db7d0191726b1f98ff8997f396d3d6df34f821e4bf0c18525b529a8f4414fed31740f81ae086e3800d5f1ea0e73f1b0b11839f6c5fda54e5e1803d106b2a28c638e503e338f937a9915b92a3ff8e6457a21fc1ba3d401eebbbd05b7e673b644fae69d1d38b96fe9f16e47048402cca33b1608ca8f875a88362d847b066def004b848c0a94b7956a00e83bad40ef9af355009083a714d8dcf435d4c5358a65bdcd880302b4ea8022f892c607b8b586de79c2ee589a02770193963c475a431c06e18ceb1639467c9c948ce1e699307b72c7a5a4106877652b3f85fdf9e3b4c0ef96b7329e54137a3f27a2949c12db9a79c64060bdfc1995bd2f7eb735e7b0638fd501e4e340527773f4728819b545bdaa01cbcdeff94684e3d6f3d0057cae33aa83fa9c291fc2ef6f2777b78f80a6f75230a2e9ca82ff981f288c4f48718def9b3d0a4f5cca0100b97c8845861929e6d79ee0242bafdbd343198a93044f6920708b92a953fcc6cf86461378637dcf7865aac198f2d71127b791b7094750ce0d0653cf336685635a50a4e6df3afb06c01f9b409fba1220ffaf675164f3c65c158a05e8e178f6a4f038e9a9bccf4698874c95a435118733b0d95fdb6c376a4527734208e199c15aee8dda2629750a0d1b806520b32a698c99e5f9f0b55ddc26ecf97aedc2c8461d8a2911ebf82dc44223a147c0075739398e6c2f69cd57c2e2c8512e7fc4f1e1987894483388e630a947bb8aeeaaa3a9ba687cd4349ac86238c97b58a05212481d1be5931cc5b55b1aa54efb7429e8483a3b18152ba60c937971c607f180be110d5ed7bb4786fd83648083e3d69708ddd52bee389e27e80686347e3e445ccf884d87d1ee5b0fee4afd2614320061cb748aea9f7bce0eaee2e55581dd1843f44ef260e3f1afe2b5f59e826b7cbcea976559218ad1feec3ae260059c68a988078cb917d9a040971e1d22573265b52bbcb69a2076bba2ff793316645e817f29d9729a9ddac72e59a59ca006b2e633a09908b157b0ef906962d56a8d01bc7108d09ae13c8ae64da03a42c19418ac187104fe3e0f135bf14b3f2ad91f2f7a5f53a377a6b63798922716c270ac428b33cdc95a7b1f19f53a536a45c9d65986058aa55f8fbf717e7c0d7d8b19e3b2dc317455621ce7d7774f256a671a3d27ee8da5d20e307e764695c8817c6728fee0f1948d6fa0b2c4e9f916e8a544fa1fe9f47bfbd8b05f742fa2d3a30fdd682a318950c51770c32a5c727d8a7079cbe0421781f109c1171b698787f0c054a7e60990d554f468841e277b1cc6d7910846105976d88b1d75f0506a733a2a86f5f8111f38cf21a04d19a41e28e7bb2640e61cdde210c41ce2fb698cb16116747c31d0fc5a359f77bc526dc0a51a0cddaa3ffacd38d506e955484e844ecc3ffe0f43c2e1613ef2d0cdf6e7d3b48754561ee855ae3818435575702d3509735d950cb2889063dfed12b35c025c1e4360f93d019a3e78fcc2e58614611fd8de2f138cb446a3cf7e8bc3d7663493f01a3677cef8e75c8596d330fa0ad38babc0d8564c21cf9c0edf1844eb3f181070bd7d3a3e7e7fb09a50359f0e245e493f57bf2bbc925cb3caf7fddd76acc5e52594194f31edb4bc2e7e07ba050308fe9282d5a114a5f1b9d6191e652883da23fefe8600924f98f389328c548d893f45c8dabc2659c473bbc128ca3a97cdb0271556c0c1ade8f92bd0c4411ac76e2296b5842112e46112df9b9737d1bc8427829f1d89958f32f1efd5f478708091638c26f99a5526b338e6750d08a1997688ca82f17202f4875f9a78ea729cf81a7d2dc9697e9c4448a503dd7783c68121e17a453bf8c802fd29d49af0d3f6d175af892a253b9477363378f18acc498f3e3b19c348e9944de61f1ff8a2f9df4c0881c636963f01ea66e9e8324acde33c9e6bba8daae4b7d8f65cc3c84703bba1e40c00d2005ced5653f11c1c4403b8d77ce2d1185010a88bd461ce3be815fa0458891b79773d915ce250c90ab254f0b84aada52ee70bcbe9828ed202bb499a1c06968e8a2ce5659b1a375f87f2d038431b09a8168aa28900125a0811e115317101723f796e801a5080f4460e54fa53faf1734ac78592f1d3d20b72c52d4e0372b0587396ec9e920d59d7a666a40144b189f4f018d7605aebf6232856aeb88e8ac593b0ca2cab38f325c0391cd14e0f4762050642779eaa0100bb2a88a72e6f6f9e89f805095b06f5951297670b1af0a52dd6abdf0aa70664d883f3fef35bda1a3977b353eaf10583fc767f041c952e42b1475d7e852f91e5ffdeda1467dfe848d598a7bd377c147cf517e3f4dfb4703847c4028d89068db95ba620c024a55362c8dcd2d38672e9bbd8d27b78c9b9cfed8baaba35255f0227c732960c0802be6356e8003fcc5c552ffc71009e71be2a441100f75cb5b14f6933b5c759f631423ce871a9997697c29f25786f00351b525e7518a29e1968d006287bce3c87f86e4f53b313db48201c701bb585120277ec6308b1853c601e07cad4941bc438c35bc284a6f8a3981949cf0bcfe2667fe52bbd3144eff6d2f42336c872cc92eef36bc91ac18891105eb3a12ed2ea735d8907998669a72999a957308e04ae7c6d7a36386398687a623096606826105064106aba628d6725c19c0d87a09c2b0d85ffee61832ac5b3e8723baf46a412c818b2b7c338bd1380a684c89ee66010af47d1141ba51c11f0300d1374652bde91f06898ad8b0535f586cf29061bcebea49d50588b51cb0b1c88de8e78338410b7827c4200365341dea7890d4e9a13474b178551fe2c48b1413832c0f6850a94f4ba260e5e06075f7a3a815c51df7fb9e526c054d1b96e184cce92d4bb68e588b6ec8fb6d9703b66b2efd36a9e1bc66abecf13af6941c37c0f578dd2d42785bee86b0295661cbd25456765ae48f78a44d5f5145092da7f084f093596f389711882cf6f57d2e492c8c88228b69c3e1ccf016a69ced5b9efa61024af97a1adef68553d2b0113d1849ab04f421708792d1f162f14dd4970518f79405df1a4e51d7b2c7873c3800dc65fb752c2211203b3465755f4629a6a3c4866bbaefd673936ff49069000b4054d8f524a9fe17cefc17f4a779762885da7a3e30a7dec2f2ce4cfd5593f3dda9f2e92191a1874d08d99e1d4d8b70e68360d7f823d494eac4c6f0d245990960d1e302e182a53ab9c6f7be5bd41cce58113a55ff02588f7a51a4f1c6eb9bd9ad7e8a5256a4f15ff0162af4d0a5961b3e1a93478327cd11eb0f15d548de1d6b084da4342fced9c60af77c51ea85af07f55401385559149e99555ede2f321c74ace7d02205fd449d20230a13e93f8e57e1c22243a4285f12ccf964070000b862b42027138b0d6fcec83258d8fe7fd42043b44fee7ba04a7910b5b27fd686c52966474024e42d725f250490620a49bc49e4103e19d558fbcdcc630700bc57edb0472a69ed21f225e4420ce73dd29309b61efd515056354ae6539f0f5e9062c5a7cead44f5c7ae556820eb972048b3463b381973c9609918e39af2e5796ca7ed9e7cd6846c6d558e05eb02093ae48e3d01015238f63088655d6e82e93b49af27eb1c6979c3b81470b32caa3066c628e9476f508c77f2c81a5df0fa8699a6cd3205b0d4b376f02083c10ca02c07632dbdaf72ef1e6ce7b3cf421321b4319332fdecca32899993d5ad4f853471d32565cee8e4a0e192a6c6e8fd0f064a0539d0a3d382b20594799c2ff8120067964ccefab9d96f2fb16716e3d017c8fe9915a3440987b73a6bd07a916f0437c92afa5b7e8eeec35cff3075842bd094b129dc32605da838e89b27bde3829794ebbb188292a1915a1f13bdf629f64181444c10720b87dedcd328c3dd2793ec188a0692bb4d116e791f9e75c1a104a6e0a432b37a5a6b562fd378281c86bc8b30aa13c446a262e22d6fe1ef4392f69d4741a48448b5e92ca9653be408c341698b46a63811912ee8ccbfb22c7fa8a6ae452e565f133d02844809de47b8a696ac8d338954639c3ed3f2ccf99116b96048e66c9c9406b2648209676ac0c64a3d083da645b7c240cf39d2c4bb40af39f91d7a72b6da58b98ebe14faaae842d2ea9a9cd23f154a41221b0e6ede667f1976f5ec4adff870352cf8eb056f87dcd0a0b7e2b10942c3644a934b5da8699d342052627868f273dd634c4e002fd268e9a7cc432c446280135310d1a0822c709bde391254e75ce6c380951beee6273f448692c20b5222389a3867e8e4bd9ba44a654054133099ec036d08959babe91fa74aea85569caf9a454053a664ce25bc37b1339c041e00034f905211744e4cd56e3e5fa8ff44fe96b891081c5b67d2d4aaed4a165d4f58bf867f2094b69bf7dbd508a49041aae9f77e0dd556d80b99c78e4a8e14d673733b1385dba6dad4a4ee2a311cbef06f4961530661f78f31f129fb1cb5c0a72f33cbcb1b4c97dc1dbfb6b459a59ca30c43f0b3a4d5bd5f78c228a4f813ca23e6184c99465c47fe4e9c373d997125d21e0317013090105d69795b07b64c8dff6265f3010daccff529e6fc3805049882296ce66d73cdcdac6b584f22622bc752cc50317927d2d98d2a66c62bd2975d2fc402a2632e63c705090c917758d52cd2bae47f402c6df85d42b4b004181f2f067f228dc92b573454ea1ab519366bf93ffaee56b9a6b3d6028d4ef5d7209ca709f232c09d666509ee3368617bfdfbf5eb6a92c58e9fe4705d8992b2acc4b572b9cc147eb8bb422521c90173874c6d7f86ee530b039dc375decb8a19a3e3233d985cc10ac5431cc60c88fd535176899409d7e11f01ec1832e212f0f9f6dfd8166112d4d07e43c32e6aab14d82987bf089eef3c0f435c5a7d62084d8d89d8365218f129546c04592af4d206ca76d0a1c6122894eab8a048e9a89baab0affa8c7d15905494b55872a6dcec42652a680fa85985f53c8f8d58ae3fdcb56f05d0cbc6651236c7f00bad0b66382b57965574ba327902cf6c15ccecad2c7c9064b570cf26b77fb66e0e80e7d42a30b6b00c83f7216804866c6536883ac4dbf43cc2a1376f1cd62f0b0ecec3e96da3c4cf4500086445b6b29e4edcae1c2d5eee8f39f46c6502963dcf617477406a651c2ef7efade3677ee5178cbc95fdc8120b0841ab228a077249fb9a0f0c59c45bf365b242c8fdba564351e25ffb52c0804b004aece92ecd7fd4bdfab3645d8666df5deac7724b905ee3b9ae6ad17e77e378f9db54737eb70430e4de1db247668930377f0c61228e8b6ebbf2c876b99948fb25a394e4c24e1786c63fca54062bb717a03a31add7c0dc84e102894614078462316a4f946ac241cd755b13841772137e2345b3213e4fc9e717f238509c8ab319fb54034328a21d6536b444d2302ee072848b95401699bbe64f614b862a1c9212b5cd3c07876032476336c2ce0bc71cc22baa0a142c59fd0c190a9aaa7c230b3c10c5a9e79233849ebadba80075e07181294f037188f42239e2a1454bca0e3a29bb89138a03b49505ed2bc9df88c87787c12f6031498911cf0891ce884b430de953d7bd8b96702f7311f37067338e4714a32c2632904b58ff65378836d2e3517b2003a27957cd571f1d9ab3a4870f9954bf8690380b12ee0039a2f926c793f3269b7664c97f5a0e6f3e33480203af0ca92580e7ad987b60a767e419c2cfc1646048407744ff64499763a36be4889f025740b103eadeee56bb5a49902805172f44ae143414d25d0915ce55f41e1cc9fcc7dbd81a116d7ff4344e7902440a04fa0173995b3054b24a070d97901918a7b0b5ff4a36add26cf4dc50c3f676d34439ca428c6f92796e6e31446352d3c17c7448c5a85de725563008c230e81c470f46ea18d58347e8a388e6d15ce37b65ac0cf1e83cfa9290bdf7de724b296592297c09ae096e0948bc6412c30b2d36d8135f30418170b16cc9a19381083502127046a79f1eb61ea30e091db41e0e06386435206d453d96861ead8b293dae1a7abaa0d2c3ab8b2c7c70d910d4c5161e5c312c79a1c30e32347971821d5c4884bc1022816b06212f64e0e392c147c5852a2606aa4e02152b20a2e2092ca8c001153c48a9906c60c4469d7ffa7d2ea2a2868fde91076d0c6d0c6d0ced47fbd1a098b3f3417d7a7b43e84eed6fc583bf7d87bf3f23f4eb1752f7801ff99cfef6d4eb2df57c30103e53f10e7fc7b3d36966d229c237acdbc0083066308431314a01dffca04ed805fcc4d3c0a7b7e13cc2db09c65bef4225045f1f38079e5bdafa6cea56fcaa24c1e01dacc46a792bc65bd78cee456976c69bf96464dc25e3ad80549771998f87a32cb9eab7923ee31209f35640647856f29340bbaa633ef3c923c9b22ef3f1441a6638e208170f0c97069c1752b89c647ec4b54d2eba7898063734b102170f0ca723979393c350c33882cb4976e3099790bcf931f4447232491fd4928b738f87ae62236b1deba17ffa45930dc5c536ee437f86e286add47de81ebb66a7f36305e3d5b14f1a4996f5ce874b87e88fb4d4888802bda54154e8adcf1904bec1fc7bebd34ab7ae5b17b73eaf300e75950f95f4f596e667176fb16f22c57ca1457dea0b511fca264f2af10d7905b3ac5ba62cde6a01f34922c9b2ddf70f379c48561245e11b1b49c438515545f785578ab751bc75a54c8cfb03e58789f9e44e85ea336ca589c474613c6c21d994427df30b559806c58d5d04501ebeb80d6f0536689dbf07ea63416a35b83df4d65b086ca106ad773f79eb272617e5f2eddcaf83bcedb7c939e3b4b3dbb9f4b60a66659dc43e1e274030af5e3f1eec892f9878598f2e25e8e562d70c3209497039b1284ffbd8c5a39fb74b0d5a9faf06ada33ed9d4a0b58e25b1f92159d6512f5e289b8afc90d6adcb175a946516f56ce96d33bde59c7134af7924cdb21eda905b9a65c7601cd6087cc37a088013934b3ff4f9a19f98dcf8ad7913896fc826c9b2ae525d6bede973a141eb451a8c6058b72ea44e9372dbb9ad739fdcd2a095dd4e675d2bbaa16c7aeb13495a7bef447aebad6423c0573eb30db6fd86a45ea7a601832dc618fd86630ad5e7a4990d26931b9dede7af79e669be4908c4afcf9d038ebc538d8dd09f4d36e7bb644e07fb41ef084e8e987b8320e6353d7d7afbfd090466f137004b12b3f8b1ea326d23a3d84ca1d2648a04e2623438ba2f2d003aa20b26485880a0810450b0d8e0032c2f2e9ab8e881b275cbee8eb65b76b77cbe5127a573b6eceeaa83e876774b29e527a59452deefeee62159dc3da7f76c654b296decbea9d4e32725fbcffbdddddddd9beac9c5be8b92524e8f7c83a5942d41d97c34278da00e2d19106a4d819d76da89d569b14a95ecb493469fd32ad9692756e917d362952a558ad95929f605ad95624ad356aa64a79d5f7c31ad929d7662957e312d56a9d2849901b3dd72d6cc358fb3229ff5b89f4d7985a4556236ce6931a7b26212b39b56e92c82553ae5151cadd56612b39b4667ddb42c93d259afb0189df20a4c6276d33aaee3b24ec77a26b36c5a168bc92bac8e752b334d6276d32a9d9b96c562954e7985ed172dccf2c86318666ba599dba8a20caf2d7b808f0d84b7c7fd21f53594d1185b34c608f4c7cf31cc2dad2f4dd3366e02bd8a2c09d1aa6bdd4ebff58deb4ef207528703b061c3e21d7109c838d65f3f2b34f95131a02515a83ddad7cf17462adf1d5f3f5c73be79a7d3a9897b8e0e1dde31959adb30f6ec97f28ef88a38ae65226a104a83b1a8591d774418308e76fb4d71826ff4c7a10c8b1b375a3b2a619d5232efb436ec1cdd46bfd14647950f99c828c8921629d8628c3dcf5b96b0784c8ae59e2ae0e9120ab210026d1900012f9db350826ffa627156b99128fe45d9a32c7a583fa7b8d1bd2646f12127841d08f0530832f879e5ebf57afdccee3e52830d6c6852c30b867082c8d5d3c2bebbbbb924d74619533f6b6cc41a3ecc71c2cfa2293498d343bec258ba0f598b8d0f790b8d19c6243fe7929f45247d1893f8199f1c4d2a3ffda7dbab72f08a2a7eba8e1c1e3fb010c24f5f21c80f3f5d4811a09feec2154e5e4040a2c70a1f2cb0f8e1c11110108c8296fcf428d42d9672458c9f4188f244634471e79c5789876fef396710c290d245b737005660f916b2451a86613fd88204580f98b21f8c81434502b25620c130cca7edc19064517973ad3001d2911545f050c58f154cf44085911551f8500592153fd0818a2615175bf47432d0a1075034961e50f1a1c3a0075828d103303ef42a9066983520e9f06003b6d0e2890d9b2aa6d04208cb76ea3ce438f40c73cda3b66dd8e6393d396e7693f39c3e751e4beee339e2f2094ad69cb3d21e6e90152a30b523b1e596ca6d98cd6a1016b835bdd65a6b9d1608c279ad2b6855dbaa56533a240fc9aa1d1037aed0adea15e64548905a6b759817c6991e7b26b1714de8e2f3d5b7db2dea533639f9d63b54ef2179237dce23be3693af5d82af4456b22ae79dbb6455efbc56ae3bfd5c945fef7ca08163e016f57a7dd60a74fa91236f8a84aaebb5faad8ef2aa771492aceac5a1223fe44d5ca2c264b52fb4d967bf2569edbd3f4e9ed35be7c3cdc2383f55c6a5ea724a16eae339e28a2fc9aa3f92559d7a3c0d56efbc082459b50be28671e9abb7472cddaa610d2ddd0a794b5ce2e1e9d2a757b7351887ba8b4fa6835cc0e6ccbdb59cd35b96f9fc6631599574cf1b36ae3901ddee5612a82e5d05eaabe8ad24207d93bead5468dfbc3d6e95427c16562c7c3fffca25bd958bf356ae4d5a2c277a3f2c66310c6326166cddb79200e6989fbe179c00e9be950bf31756f15bfd38f904d875f2ce4fdf0b3c4e54e8be17303ff9e95b45cffc88eb052027ef3c7af7f138891f90ceb38f67f3ce79383ff91117bbd8659d5d5bec745a60c147fce9136057e62de854ff91454739bbacb78a8e39bb2890153057e1e4d8f78213209877fec22abae6d64fae42e7a8ef05ec5b494073ebabf8a9a0b95da99039e69963de39955be6d948164b9695ecea3c766598952c2924b4b3a7135b04a58cddf1ca738705d1932db2440bc410e470da31767781c94708a1d0dddddddddddddd16eb36e211bf135c0798036cb9902c82a6a419191db115cda85b47dd0a35246d8a4605886f213e837c831e71438d4823d28aa4a6a46427e5aa37e76767e053a3026dac80811c4d4536b2d2f9eae18948723a296ec84c458cd0a8ac55a952d3e706534ee92ce53c41f64c010171bd81748b63b0bd9d59f22687593da9e5c9608745389e8f730bf0c12837b4a04dc8481e7a9359d4338f8653ccc5ae87ea432329e4b0518409e49962c82903396851850e33f8f6ab72d0a6d311f9c70c316270832a682084510d29d09205e5c36d61fefcb9212b492993a618c0873670b0a200497c927091430c6c985eaf970d1a1360b400063f2cb15403972c420c2295c648ab0f53df3435df36541fe6e821f2c10884281a011837f8dc80a5080728be7574778f2124a3bbbb2d4331c64bc7ba5bf5ddddddadc3862856f28fae2243119c646185122b3881ab51f0ddad447f3788e57ab8212b09b941bad51e5df1722f532ec8f1d26d910d4f5ec55c184b48493d7a90549c5fc84bb2842a6a90b4db167c77110d527c17d5a082977ea518482f635e4a292513171fd2d444b9e26d910c44df4533087dbb172131c177dba8c3e86a2f2a49b0279032a51dea5585f753aa219b250975c9a0072b7a1d4188e953830842baa210d12735740c885c31306a167f686f134a88988a62c8410f335071d1096da9a265de9094040749423491e48207b7505939bad263e5db6792f933977cfb11acd03c4bd9620424bc9ea56081799672042c5fd43454d424544465cb1445efcf453b60e233a508f491c6c82939e5945386a93934e79c5f123f9f0435d83f3434568056aba319339464c81852a988666698646484626296522924189824a39797211717a57b9b50a8a3d309a8eb84386e69db82348d28cb8cac65c2f23b55907ea70a9567fee18616899188888a8ca6141124370ea554c90f2ba2c18ed895aa446da84a15a9a752a9538e72a8460d56a25ab46db1bee416231c118e6ef9c68cba15b1a16e51a66fc7863028dda274099b821d3d96a5061bc3f2ed25380dafe1cd50c33dc61a5ec36bad51c3a327bf1ab1060daf4183c6952fe1c3901a6c1d1a1f6645c90d2d145528bd253a2a0a3bc8e8a85ba145a2a2e5db2d52b7421a64a55bdd0ab1a1bf1277f0b76356baf5c3382c34c44f851887b125d8d0946fc7a06045f4cd7461455812b548cb37c55287bea17cfb8e1525dd6a229e9fc6dbb1a2c4ca8f951f2b4bbad54c9e7fe5ed58596205c80ad0946e35d0f3cff07692a61c1d59e9569fe0f965783b495694949e74ab87787e95b793f46468084ab75a88e79ff17692a010112561e9562f797e196f27094b125312535212dd6a133c7f8cb793944492509250d2956e7510cf9ff27692ae242d252d2551e95697e0f961bc9d242a494849484945ddea9fe77ff176928a928c928c9e74ab81787e176fa7ca93a1212bddea1f9eff7a3b55ac282969e956fbf0fc286fa78a96a6a629dd6a25cf7ff276aa4c393a5ad2adeee1f93b6fa7ca1220a024bad53c3c3fe7ed54494248e84ab77a87af726569a9886eb5cff36bde4e95228282a074ab49f0fc99b753050a115151b75a87e7b7de4e952223232cddea1c9e1ff376aa606162daa942a55b9de4ab5069907fa70a12e3743b5590f8067f4e1721c1f4215db24cb3e93b88524a29ad186318f530afdd4bfaa7a720ddf985d1e8e7e270c3d9337b64101292781ad42d96828422e8d0abe86f3c17bd943ca54d5d0a91e7a38d13e001f4f287b60d378c3fdd43bf0ef21e7953c3dbf9bbf1af16d1b349ded4f8ea8f643512245fcfa5413fa7115c6c08e3e9c20d6243742a49d2e3d48b1bce9ed9236f6eb37ebac53d9ed168062021514ccc3e817863f947dcd135a8b6f8761e8ca3fab0f8768e5ce5914817cc561c2e383b1d2ae58e19c303d808c574c4349a9347b7ba0692be612b40a87c4b26275bac4c4c0ec1dc5af67ec06c10f330629f571f7293d63a7fab9de8d37ea1740fc4233f9d53350d5e3b5b1097b8ec714ea6926e61f61107f3fa16298d9c9c4c29a54e25ddb266323b1c78c6198d603955bc327afc6e836dfdde066ff3bc74cb5dcbdd4fd2f0329bd6441cd19be6e36456bddf6ee5c7ad97ef266237bde5e46a1867737621455c9037dc45856c64820dcdaf87f23852e0e41ce7d1c59d38afc1ba2217c0d51d90e93a7d35cc807271de2ec62af7311720ab35ca6b3e831844893d9888870e1d363620e85e6520ad6fb323cbd3566b041dc322c6284472132824f6cca086e31772d177748e5f0bf1e5c720ccda1a7779138986e21787ac0872a2e10450c7511830ecc0c112442e27d2a97757c594938b2c555eae96134a103f2f177729f4cfcf86db7256e98e355bf45142346549123f11ab54e9227131157da2c72931c69f2b6e187ba66d92799622060faf448b603baf915bb66ddaa6653176de4db18a6918949e79ce1c4f06a5d39048f7c702cfcf2627cf9137a7cfc686688c227ca8b242f486f68d712eca4f528c60f4283f1961e8c36b04218fdb699ee6e9f485457e1a5dfff07e27efee695928c2b47e6191477d61911fd25eb98fbb14dac3225fc3fba72fec0ee767643ee72afac5a1bbead17235bd67294400e34fb1cec9825c8186eb6fe5f455e00689930d555d3ca77dab35e45c88707ff2ce67f53a77f190584a518e6128df22d773c8c9519ed32ede0c2ebe613d79f0f767b7ed6be272aa365c7f203f36d9f9405d37c2797b9b9f7c4ce7be21dc60e7a37dfb647c94578f08f728a7def4563e866c4e9dbfbd558fe9dfca471dc279751d94cbb76a67179066c5d58f186298d0d468566e752f265d30b26830a6f8fe98f80da308524a29b169a9ad169357d6847cc44208420e3aecc00a1a38410587307eb049b7965a8bd9b6a08d0e1fec2f6de101082fb23802881bc078bdb49460cb603a0a52d25001a5c9161d4cb1431397ec11bc94524a29852ecd54758bdf8b0083085124114a1c81084c9040841f3629e5ec3e819bc66bf0cc21a59c577677730d4a29634a4a668ee299c5d9f3ecef2f6ce15d98e69c73e69832c66843a9dca49492ea9073e698363d3b4a29419a06995b35c6a89a924e19a594f7e308c68d744e2bd9450925a5943230a7a0d24ae79c53c32a9d99d56854aa99759cad744ba269de69ce59edd3dc6a1f379859ebd8f466e658866db7729ad69daec4b2a9a14e95a24e49b44f93e2466dba90691e332dfb429ec77c62d68b3d1fadd52b9d33beecac5485a5e9a72a88684cbb1ca7666264a68d3ed9a7c59e7f7539903d299a54a752bdb8c0c850c998416356cb836b401baf30b28bfb42bb619fd552302fa997eede53879a81612b9a1266d52c76eae4a9d341d3c18dbed588e495032c439d3a9dfa5dd965a0dbe205d9a37f08cd741a1a536644c80c60b3f6403dd9d823c720ec212b451a2a967191b5ac4e0633dfb6d97281331e8e46a5da380ef5c51dd231dfb41b94b3f390372767192e35a00dd4c95fa12afb620cf29c474ecb3ee330aec35258776fe534286eedf8c471874c71cea813873afd882f0d0737faa6510633e7ec035f9dc18c33117cf568b58ff94696d958396bdf512de934f44e272a7d7c35939e395fa83ec2755703d5b5c902c4c64aafd7ab0657749b200c81a82342cf690838d8c15738f594074fdd52bf59c4c84204f34d9412f4ea964754f3d2c6173678e9577ec1c54ba6327d44855aa14964da4fb742baf4ad842e11e21b34dd0a291038d9ba4d8e13b8ab51c9dd701f05a2d34e6ec7b64c7b5377e5233cf2dab7da78d3aa7b0de6980dd7e2cd90b0da96b9b66d5a87016404942dd340afb1516444cf6fae6158a743bdad8bcafa10cd370f35e77cfb3888eb74953900492b1931858b8c98f232dffe230806fa060977940226df4ea46f588b50932499469bcab7cfc9c98e866f443f61dbbe269c6b5a6b396ce40df7d18e8ce56856db1951aee6d4b9351d39a634c8cfa98f1edabc2c10d105469a525111413f9842454520a11577c4778115cb24e7c79139468ecc95525a63addc54e9ca9bf87ac55783ed42ee6b42c1b88a6ac36b3021825092850b1d6481454fe104144ee4807e446cbed65a6b6d0209eca24eed77db0918e8e0290ec20d6a7cb045134db53a41433b61c30e423720c2c50bacd892841c4e1045efa048a80917d473911012bf3d170901318e7c1fa117d36f1967c30688e5398554515c8e02ba2a7ea8af007c3395505f18fff34e68302acd9869c2149237ed03bafb08a1bc7af5f6e9167b2ad4b493522aa594df74cf693e75b7bbb7bba7fa82f2e8f55b2f8c3e4e3f7ba07ea6fac317fa573de453971f7f93534e22361a179af0b67daced9bf66956bb75eb73da185ceb34f57293f2e993e96da6654c803e0af15c7402a5df64b7337f36189be73cad7ac8103ccaadcf2b5ab4b838aa73949647f9756289f56945e796ca5b475d611d55340495bf7f7d837149c5b8a04ea71a1b28cffe8c93cb8ff9d69da6b380ea1ce59dbcf828eb931fe54d6714ea73eb75d6b9ae07caca9e514249b7c2eb2fdede3fdd1a72ddc5dbdba777601c14ca5ffc7a305efcae7b00ca5d5c1c857217fffbe285d74feee20db98ef2adf3d139cab5aec7fd50dfa6e2c6f8cd515e2ff15a49b3da5fbcf629c28d1f4e2520a179a55b4b8c63bda716286f7f80ca519e8c4fa95ba81ed355346e43949fbc7d06756b08caad77d6f988500871e5bbce6dd703e5765aa1eeadc758eb26b8ece5669cdceb98db26c2fdf5d048a33cfbb4f381faeb9b8b57ff0447cf5c3c170d71e5b71537c3821bc6a7e166567031a76124fe10ac047ac2fe14bef02edff52a46532574e412e6693668bdfea90b697cd83ee17da40f53e18f0f89c47c7c69afde8d275c9287a388c1096870c180f54471fd8d275cf5cba94535882104170c18163e7051af1f0f1b61290a820b062c490817fdb81110dad89aab9863475c2e592a50c79cd6950ad631b75f75186a18477051c7beca5d6bafa451f18df6ea5d20d44a1e9e810eae98c205037db9a81f7135d808681f6eec294487c32bda3be78c36d84e4e708372c62a36db2deeee96cd8fc51665b3654eb24de6c9b38bae74767377335b619c50c686a231aa60a3b2093f1ac236270ca4bcc186c3ad01cc1bb905669e952c6e174c06c6f26ab5d54ecccb98557d002ea0ad32eac4e817f946c3a085dbcb26ad469431046d01d2f283c5e775a4c4b78d418a97870561f9e9117ab57c81c65be9b9e28305d3f2bde5d542f4c38e6ad4d0aa0d9b6c25b7dd62a500fe69e8466f90c592d2b7bc78d2d90d0589887843a76f73763a4d6a9a25dd752e17ba8c33dadc29a59473e9b28777092168cdaf4fc6feb21f5cf690bee69cda4b878d5f1fbd3fb64f2196e263636dbbb5defa255991718ebe97a15ff2067b4956741bdaabc25e1f1dfb42f0c37e452564f8188314ddcbe382b0fcf4c453e7832ab197bce1a8342bba959e2b3e1f63048a31ca8f3ba2f2fae893e544bd7a36be1ca79a65b3b8ec3c6ccfb3c936a8822dfa16652c0a6209cb7c9682b4f421419ddd669c4b8ff34dca107cc96599cb53e69ccea9095ca17cba8cd389821bb20e665c306a327ad67351104b7e93e1118c893e13b96341f5d10569edbd5bcc8c2a6646f5d2b1bab84419e38556f544282472c2b7c79537c3b330b82be9f2fbe18264518f2fc9a2f70b89a4fe445d5bc1cc07aabcc1eb2acf3c95bbf070431074717171661777d9e1662ee3ad665cc6631ce5ad661ce5f137ce935eede18660538e4fc1387fa111fa391aa46ee35be4409a823981496ee6d263083eed317281070957a592f0c85b2fc6a537447aad6e6de79d6fbed36d7ee4392f9ccfb9f4c2201f1be46438773b443e942e8fbcf488c8f80c107154e7a211557961ea339ff15ad041b90f198ff97264ca83f1fec50b794a0bf34a4751d5142179033ee91b76511d09c535dfbe0db4b6288824cf549e8b4a30f45b731dd86d94524a29a59452efb66ec529944e14dc301a45242222510e1b118971520d52aa7d4d6638fde2930685e4cd8c2f0249a158d414978437cb0d23d253af513cf520dd923e836e086e94e37ce3baaddbbe958fcd35dfd93ace6bdfbc762967d0056dd89c90c3a35bf65b619f524ccb6c0154a94f8fd23967a45c270bec73b9a80441fc2b4ca7b188bcb997e98b5c04d25c3a085c9031bc744addd9525a99d8b343dc15f5cdf9e8f572ade8f78373cd79b02246ba655dba0bddf2a65d41886449e9da0aead7f9705d609cc938aad6f4ed4ae77ba5944e575966a594524a29a5949e596c856ec9fb530159443aa041e99a265d4a14748437f40bc471e65b0d786ff5f9d5b51c3736926593a36f4e526ef42d9bb2a6bdc1b6f996d916f9d9cc1f3e195de9f4830889d2a7f7f385ebdd3a414266aa2ebdfe6e5badc52c56c1db9d4ee41b92ea74e639f226fb6c6ccf3f65a1a4645fb1c64aa7d7a8744a1b504a29a59c734e29a59452365766c64eda133ce79cccd8ac93ce9e93e39c45dce81fb83c65fedce85c0f37fa9c178816b4606e410b2322369dc8cd52ea2cd56089383966ac324d8c8a6fa29173d2873148d12842616431a024d8896118162520810ac2b0e1aa9e8b7e7e50e5bae0e0670913b48335d8074ae991ade5ca782efa2941fd89e1c7fdc8c1a61a9b9a83cac61bef74b7d11175ccf86407a8167777774751714cbdfc21cb4b209c78e9352aeeee2628dfdddd0d80a21fa4bc94fed9205a7ee8eef67ce8820a6ffed19cc5371192be677c7777b3d251d7e8749a001f724a967c90c14b2fe112010c8fc6094a92e8618a974e731b0c2631453dd8b0b21d8510034977e76065003354178a1b9ae841075a88e1248bab8f284209babb3d707f3e16c3b78c4ea75bc05255d1cd803ce0f0d2653a1da99221a6d3992903bcdc6187215e7aaad391aa18e4c8085a60c50c5f2c8183121d828a00c545c195825d3e537600d3e9b4df306a38a9e8bcf6536195be5c7913b9140d098650c0b7db4b82a46f57f93cf976179750f8a8e00634e0808719909a8c51041725cee7ea40c506a82149fcd870c316465c616484183cc8d0a826162aa9e2be533435367204cddd8a1e696430d8ce47da97c3c4e55f6a0eb090b8839660086f80db7e212dc208dfbe35c732ca53f59c7ecee1e186bc64bdb125219977467da812fac3379600416930beac1038279c13cec9e6c42634c3dd6adb84a46fb21715cbb464b758a46a8d64d01318cb0b88f1d05ef9948736c8da7b552a19f7d4e703c67ced03f3d27113bad17364d5002bfd90e849da4da05d312e939249c9c8f88c8c8ccf78ca5b015179ca55a919991f669441d6deab52b983a0cd698823405f1d882a9d71ba2d877d21fb60c438deb7db29dd92dc0a084cca61fc88ebc55b0179f1188ff97862b694179bbc7e4956ca65bed8b4b29e72198ff15640663cc667be8ef956d665be060a92ac5ed94f02ed8af198af7dbe06e286d6c872192ae67a7bd6e9b83877cbe54379fc31de745d8f8b4939caf380fd6cf35006598f6b3026282828a80523d733c611dd066dbed9a0cd066dd16362529d806fef3cfe8409885ec84a16c663d78bc7ae93d7d59fe851181912a1a71d2e9669de16d3320cd3b40c3bf9dcd01a3d52b7aa5ba46fb747dd6ac188b546d252c1a84f83d3653d0bf3e298e701fb5606d90661bc76c9a020a38c8b6e8d64832ab79f85f1f84d603e1e185c2f9f9135aa35cedcaec164e39a90127d4776131e48df6435cddd3c05fcae1ca3330eab3d8e9bacb5d6ea1e7764cf2d8359a096e58654683e198a9f8a6f0871ebd7c4faf45075dae186aaef7e1a449388aa6e35467de8cf120a242991115b9e9d61a8c4ba9b11e552b73bd4ef379b25fdf64dbcd13c7a93cc69f6cd66d5764aa373bd0eda7ab64f39a56bba3ebd4844a5d323910c4f78fe620cdab8a613e34eeadab8c63dd249b471cdc6be35d7314ef41955c90ded4fcd33ab79b7c1a9ddf036386dfce95745e335e046975c50874a7b1aef96e693bbe537ecca68bc92cd8872ede6a14af3bc50738ab9f59ce6cfbc236f3d2337441c94ba4acef68e6f4426ca62c3386c3366a73144a7317cd481121b31d1019e5d4701425577f2f0e4ec8c691ae639dd792817cc394b80639e02187489f2eded39e28eecc38938daaf14a82f8a3e816fb487ad6f8f26b815d858e33e166212548c5377e88838dcea88a1cc361d475fbdb8e4c5eb883b5060220ae360149890c237f8439c6f9f5ae6f633fbcde9759dd5df50315a6de6e387439d39abf1b2037c23cb6498e086366c6cec3254376b1b6fd8b5833f0c4009ae506687f4f04381092206f9e3870213458c833f94ab1e7642d930e79ab0c6d157dfb8ab029936a5b1091598cad4e4c9246a92c5c92708071afb4a6a490b0b0b50fa4e35d1a6349a20b484c68e149881a40222593834a50677240ce6f6b19d48534d345400458922befd88680692d1dbe8b23e264689e48de676f3ed9b81640444fb661c495675eb748b1c0560bd5000af5983a806918c79f10dcc635e8f45d64ea1075e23e21b9846f49853fb7ad9f046acd594b42b0d5a6a2d66958e60b2184d35cd486db19e6ab29a9276a55b3d03694bea4a6aa95bf1f314966ef537847aa396525abac59f031aac393aa267d3a33d8b611c0591c56a65c00bab184619fb563e680ea24ae714c08b4e296b104dd91df39258b7a3d2e29af098d3cd470c35a28f9f4d7f391aac9b86c43843a2b77ba92d7e542ddd708636e3e8555c5c546c39a9d71eca876f54cf91d1e34729314eeaaba396ae10e36c5ffd3e49f930ce8cb6c445f9308e0c1f694a5f7dc33819427ca33afde2861469674bc184c73eb6c79e8d06ab47cfa6bd1c0d7233c7181f2590706c1b363a788a0d9b1c3a723a1ac45da540e3f9ad5283338e1aac33a834f8012171d418f7bdb0c2d7a9b0b9f6bda0f9f6e5344ac98b797d8d79c52009faea313d31d563a0f40d658a49d22d2e22a227e605f4b58f5cf0614cd05721226cf061cc93afae30c6e7ab6716d39494ba15ce5862ea568852faea3546e9c187f40a151f522c5f79f021cd8714e9abe649d794661ccda0d22d9452835e6b1c112009afce926f6aa41e06a065d3a0d7ba0083d265702b88ea02dc5a31285dd5e04fc491e3a534e1a547a348a56fb257113d47615cd22daec1cbe7e550c75483970b3e8c5382c2f8e4a55bac763dfa2be6c22b6ef960503a8f7679f3e3747a69e5630c7c43faf4e28b6f48dfa2dc62a4d4fef4b28f4d381adcae1e4351e5890f1b791365882c10302864012fa537c982c89b7649dfbc7609d1fc48e7c375eb921e8384b2bbb9267fc41fc902e2be08e45a5c1235155c1d3629b8db8b715c30c10de3cf07758b31979d2a5a1ae48f11094f3f97262ecc330d92f0f3394d7d1a6ca2da5d120dc1cb34f600397517e44de637d6e9d015a261fcc93c7ad6378eccf2d4a43da75dd16357e6d9e8902c5af3360dd2fec02ee9b60b5149cc272fd96816051ba4366cc006e910463022bd00cca90b29426dd8481665e622f2460a611ce7ad5229a7575d7a4434a21c0d521b361ab469ba11b4d1374438210d522b6ec8484ebd027d737d322a36aeb92ebed9ad5d3c7655eda5b399cdac96699bdbcd374a3b9d262fbe9d32d73223f37f7e73fb829edf7450e091a3e34fe8d610ebdbe648ae352207e59a53476173946fce7d61111e97ebf15cbf924563c64037f3950a7dbddd611ce67bc1c52333cec91da539ca5bf9d03ef3ec1b72fab4e7b721f71999bfad329f9fa1f0e2adb28f5d9305d77e390d1a712bbbaec72eee22807d1cddba6e71857ed270b691c618ad8d98b5297a82324f98935aebb1c058ecb9d1c71a7161fc07cc66a5f5422314bb8f6598d30c87cd3604f3ea1bbf78dbbc710f2df5f98546e6ab3c1e39495c150a3c1a6ce2ce1ded7cf078a2ab06560328e8743a9d3c36a901e3eed5353f9f1e81e40d007c7a0c92379ecf1a9f2a55781f8542c9c8f098989899989998984e4746860c196fbe8c167a604bafc30dce95d7b80a34eef90a48096e829bf0f16c603011b94af023ae6c8b2ef6c497644df73c17246bf6308effcc5cf376310e3323e35386ab9c7a2aaaa294ca90e1aa192a95ab64784e5316588673a723e3e3a1fa723a9d998cca7826e3dc3de065c69b2fe3ad7c64435e3cf3123c9e127c051e1a1e44b27e705e0874631cc601f0ad5490345c3abbbe6fa542bbe7def74209de9e719ee3c2c34d31bbec7063fcb3cda20ee31784f9e687798e7cb19f440b330efd14badeed52a838f8c6f41a9bc75b0e0a3cbac52eb3bcad390d4eb734bceb81f9f61b827dbf9de086387e7a68f393c653ad3c3fc2d590dcd0e6a7e3601c7ea1edc84cc730a93e96c88ad0521191911293962d538e86ba15d61ea12750823eb4437ca386c886b317d471020a291551518ab344445388b8cb596bab8f0e1b1353a090fa50a318a51aa8e42c3835410b159a190c0000011315002028100a06c522913828a049b2a61f14000b819c447c52194bc328877118a40c328610420821840011111a1ada0800eabf0b587452a3d57fcd761f90d5581ca5c09b2f05b9feff04410a527db580f3519dbf20b4811e14a5f946b6b2815998787627714b4045ce4595e497d1711099dc36750c2d83f99558238e25f303848df0cda5200864258c30c845c3182377545621175d1a1031cacef25331cd9c525b0eec4692a29f64db29f6fd5e1264c10b108b752a19a2743e19b2bb79c2040ae6fb9f037139bec034dcb1cab191f7abbbcb310cbcabe055eac84de9c7d9aeb8cce12703adeacbd216852dfe0b5a928f653cd69f95c93e193d7d6ae8800f143aaa3ffe16e2c67a5302a517d1d77950f2b7d8ab43811ac8e40d608d0cebc5a9dc07e8f3f10986bcc6bdc2a563fd58c20195533a12efeb4f383727ea1069528566f4daef93727ea2313f2919f47482fcfd3c2c9460ca1999e7d3d779409e2c667bce53d91fd374f0b10daa798dbd583f2bba41c8dde42ba077212b5d978e4e8fb6b53c0cbd0dbd6aa2a98295988dd57bae458a36bd18467b366d62de3d832b497d9b4b123b80bece93d2d071731e6c54b2c22c86990c0203e4c77509fa752f9c9aaeb9ddf3df88a5661822edc100c46a97993e6c9c812bbdaeb7d5b3fe59d0b66bc9fbece54992c50fbd14f3f38453a2aa2b51ae6d452920b032039b193487e97716201616f300a1018755c872d3f434fc95042284eb806970be26943372b5140cfd37223dfa342c50847ceccd0bdbde336f5906bf91ca5c14343cf3fb0213ad26853e607a6483fdcc2195135912904566f371dbdb11049e07441cb4195005f5477aadf5e878ab020d86a1d3f9f77e365e5386a25354f9ee13f7dca94c2b87a60b3bb800cc0597a42607f0cebfce000d9cbc05bec6975e8e29a3f9fb2aad7b687f9e223389960ba20ef1b57bfe41a77ce512866590541d207484bf7f36f443e5113b984c069f32b4eb23409d705290507b5e05e9633000ea75e5735116403d081cdfcba25cfe152a35a0f80f1fb00e700083d02c7dce3349c9200cf831ed4773da647ee7d9b3ec36a068f4092007256b20e2db469a7b26feca3582474a429c6930064baa506505d797f337ef04610e8b5df62d04e770b79385ae227b10bd8e82fdc7176e10437142592090ca2aaa70311148e9a34715b2c4c830355687a0215402fc366a955970451e43f5b2d19c8e6e908d1c316caa522c5a7cb441abc6b271aa37ea84cc6777200484d721d2b3d536eab3d894a36819ac8c950125169c4103ec08d5d8d65d8c04dba0ad38a7b8c88ed7850da9a48153233f9d9aa57228d895e9e7a4b8b82e270487a30d92f3ab5f3c1f50bb00b45e45b637c3c64e08c9015e7d62d3b34271f438c42bc31d56973f7ae209e10fa5e138f31836022bd3ce756d40c683713801390eee37ac2a70ed391d4d56764202fcfec1e3f78656fc795b92a04117b405b5fcafb27c1d14b704cc1eadde4385d741a5d4d308f66f880bae207321f61aaafbb310fbf234a9b3569be529386e5a5d19e40d332aaa783c8c6b5436d2af424a1cd55500fff77a549ad190c79511402a1535961070115462496547225ee0946ae0bf0b9cbd22a43d76628d60e6f16338d668a3a708e7fc2be874147a160960aafb6c87792b3ba0da0058c3bc272475777995c11006b2fa82c6369e34b8f77a17ad2a6f774f0a1b58014154cfc2acfdbb1acb17f0ff451a7b8a112f91228175fd94b1698ca0e9b08ec2212e4e62278b5548f57be3dfe296e306e8beb7c9081d7e61ad3559f88261c7000f4a10c36238636bc830d28c425583d0eb8c6cb17968313a373fc8cf3435ba2a912c62518b74c7020dd505734d0d86060a8201a0aec8be566dcb5276faa8d7181ce14f05352ce07f823a21c49392c6015c7d720a4ccde1601ee3010308195566b6eb5fef84668b9985e9f2859625434f5f20a2092f8653351a8ebe5e8964e633e723e5f2da71a583e3a1db4167bdd00489710948517c647a13a54b926944831386d016219038001707385b5561a9d576b378fb3bc2a0884fcd7409a80af7dc78c7eddd95071ff5e5869be0ba91821a6fe5f7d7547187c368a71d230f5bf202541e271724d68372e6d3a635e2a4ef79bbcc869fbd1a30934cc86736437d356a9fe33e17420342eea30a5b60303c029c524529ff88fb65a2893e3523ade0a137f7e85460010fc6510e9cc118a5d86e86729a7bd6d44ca1fcf732015b95167c0fe30bf4ebaf086aae32e58043a6b5b6a4558fcbe2ccc3c44690c52be7b0852a5827c8f7660961d4bee0d83dd1d85e2c1afcb044136f09d0652d42fb2efa1ebbbfa743fc1132ecbeaabd9fa877551ce25e6450c04debe32d4eb46b397ba105ca6f2dbca0fd76cb2848160196e53b6aa8ff408440aa2b7249959e14bf4e2531c779d61acbd286feb5a2008539953fc9248a7b5b02881f18340b7612c01440cca668ed525cd7ba241c83fa3b58f64305690e1fe88561ab9ff5186a2f9812d9fb38c53bda9a357a4a0112670d48ae6bf5fc35e082e9ea6582dbe8451626db16d55c9b1d00ecf912c885238a5212e4fc5e3b5389c536f015c92090d43f0166ac1e28742a69487f6a53ffc2f0b1f94abf235254878b65b80ccba00c1d9c87bea0a6ca6a62f464ec618f52096b0e165abae874a5c0c2fc18b9c62dd498ca42101462c6c9ed5fa945a2721489182c9b0555f7ca6d521dcad16372d8e67e91efb443696d311d6dd4dc430f139f10294d483325a96952dc0c17311cd6819274543e46198d0afa2cb8896080a15651329889175f8a23dc4c14c4b67a2dd76565461e8dc5f1c4c659acddc4ca538ed5227f16ba045864206a1b7ec158e5357567e3263a5bd616a6950e3a3d6d8905c4460ce80ca1d18e017b39630f27c0ccb36799c476c854ed3c226f56ca6c0f9d27f8251080fd6ee801d6dd1492c767aafdc9579b0999dc3cbf2e493c0c3693561f0a1e2d60778a05e8021df17f3cd6c51c89b7edf70fbf8eda409b942bf96449ecec91d4d4e2d2da0fa3039653dec035a11b3b80208ddf4143942157f0cc93dd1b7e6b4bd938eee5e7fa959fe5a7cc32356ff2e32fc4c658c0f90f7a1233873bfd346518dc520f03614a32c69059429acc1805f758e4b4818aad5cb88ff02e53e90de17522b1481861b36f2943d22e5789480676b63fcf8d1d20fdb9fe3c98e405e82001cced257103c62acb20e5e68e2b51052d1b8e8a64a8e81a78007521e16d198d24b109e392c47e384ba415549aa3f9a6cb69146cf304e79052f4c7edd778b6808e2bd4c95baa358a775ace79c341d34c30449b3896943da7b1a7b46f52df8684def96f97422267d20119a38198f21c3eefd689980f73a5fc1f6d7c211c343bc3c6ec1dea7343c9d7ea6d25c60c4518287e4e02b5323dc8e9ef930c80d47fb8b8ec880e22fef4ac9fddbe38a7789d392fb94e95cc111e19995e6872432c731a28398fe54ba8f40d570e40710f45fd9771acf92f4491129da92a0f1dd24c4f486da3e4df2f5cf912c74712264772889aff811576c3765501ca52b98378bf562267e9d5ba907b2f67f78fe2c09d687d95e7226a3f845656191ab47c744f1329b3d9cc88ba4a96e408c8974f1ba1c0f91490be674af280f0f1b3ce622527cd5475285ef25a1c0544fa57a4bc96a792eb97e91c4843dd5b825283772efc0915c102103113d05562e051e3cc96cc4eccee050315f0291b5a72739a684f44cf85eeb246709c36882fc5385c7caa3ab57164deb832e7b98c864b6618d11d7795a926f1eb4ddd670bd4d7bab5d1bf887cf490e03b691346409f44fe1174ab16570330a1491ae793937b57887f2face18d43e9bdda605d208c6e0beec3bfb62f4cd3cc510636364d0ba58e11e8671fd4bc4010050d8442aaaa4f577851445df73a0289d5a7618f4a830fbb9b1ab9d94df48c96469a9e65126bea514e04aba6b6ea89e556184c849921ce4dbd1a2708e15390126d064befc757dd01b3d0c3976ad903cb9bc8b00f31c3d9606fe6b73a8dd92a679add1559809b1a5c9c99ff3e1de25a844afc8f2dc4ad730a5ba098b019b19c248af532da2ec7cc3c6a5bea65d500ab81cfce22a06a4bc14e4f47e4a2725053617e5995c37e37b7f4f3d367a3bbc73e5bc62952a5022cbc48c369d8dcbe4285e28877c1f9f746f3f159fbda00a9982b3fa86761cc20d95bde85a032853fb1bc933fa15014ab0e7e4d6f4bccf8f764ebbaf971a723f8508d56aabce587df0fc51d29646193b7b1d5b49dd8366014d34a00db349b8f5fdafb8f185e28e55542afc165e07bc70206a407f878e0e8ec158cf26700cefdf52af1947ad2b1aa4da55a627ef8a9b1427f6c138082488cca8b8f19fefd6edc1d420b3a0c1e16967a359e990be07e742c5be599be63ab653a644545405357bdb4989b1196f1c2dedf242edae4e57d535ecdea26d681955a344f47cc2cf68942e8adfba522184a4b8efcf3099b4f47934d9b45b85c9b82123782b2ad0a34eee3341854b507c38e279370d8449550282f961d36d1def9c49e3b7060d9eeb54e44372dbcd10df3afa9c2b25b8f661e92ab6dbd3025ea9b2cec4b50dc0488ab703857988814e0d80297d168e3ad3c055380061378d55ea5991dc00d4aab8f244555f9e4c1d2e54c4e5c14760f13b5c84b41aa77cc78903381a690fbbb70bfbede1538206824e3440bd0bf5bdcb245823d67314ab226915f70efc91c74433509a49c343f35bc96bae4ef3ac83d8fa97346401b51219ea0013bf5ac9d713fa240d86cb85e89f4babe84a3150c500e085ed8f4d90173cb4f95480dc06f8bd14cd3809318fa6b9e8b0462079e0f68d0ecda62170cd500b1fa68271abf4db9524916434cb917f63571d2ab234fde50b111f6de6bdb7a169dd4689220903a2a7912189aa8b43c36fbf2e2f01a94c1ec8a735b464c684da87e68ecc87141965179da8d9d50bdb56f9a8a90cb6ede44e23899d7cb205f6b2e55dc6b280399b8fab952419c54d0135bbde287ac5ba2cdfd3402bda3c59a2a44625a6af2c4354f1d1eeb6ff5a04796bf12167cc2eccf90b648197e3c94c9003d8e228078cd422b9bee09890a3a73da6ad494943890080ed27954f24f82d18128e5e05d1317378e71a27e79cf42a6f8cd1b2188fa379b5065185bc6d4657ff4d665046fd77280d327742be1b52c5e8a19e53c0124e5ac1926e2910f19cde993a56c6505d62c1826c0443ef1e3f409f0d417ca8364ea32df80b3e086fec9f8f42d4884635b70cb294b6147cc6a3fa58f66ea00972da86ea5738c0df3c317bf673b51b52fd0935a5fa916af67bc2e2b931a929323649f8c21ef4abe9fcb664ca5605aa362cc60155d8ca9d050ce7599d07c3f944608812be581e04385bc30be5926320a1daa6bca7f2c47021378774f2f8e35e69d16d222336a5a442bffb896b1385c39fc9d300f6f3caeda473e7551a3fe78b47f6149f88b0b4fb816566cfae6212e148b12c63479d14fa4433b851ddd9994df2388c359c694f2ade3e84fffd7e1a64db030ab46ebd0b109dc32d3e19b823ebe22433933ff28475e4045939f13b88a90825228e11d45cbd8038e6f3ae285d7bab8146d7dcabb8a47c16b0ef53514aa2b434ec1a9715e3eeb2aa259bdbfe4ecdf9efc5b2e84987dc34db9f13eee16edfecb3bbbc92b5fe0656be8dd81e3ba24aad097eef5ba64b81be026c0749ad35ea94b9879179dc5a30b484f93573eec541d5e22d79571c4d217b5873673781e1d53cbb5c4028d761b6eda7bf362595e3512ecf1d7f705c42b1c4dafbefd5d27cf63e95eb4f9efbf46134a1535cf2501493152ec2d9a9062e1460243a0cfe9b7dddcde5993f7f4da74ecdf553a650d381ae4ec123b9ec788caf6512636efc8fa2de368e89ead916e947c9eda3836d7c9a10a673e9eeeac488e22861374f09fd479ab7cd789fcfbc3334f24ccb6c0d18f664f70e142ad6f4796b77bf8c8999c11969c5e9122c73c72b15efff2277d2bef2cd61dd448b0536c7cb555205411ffdabbe395c75097dc448ceb84963c6a8706f4709ae7a8173d62df09ad5fef1a30d413f560f416f88a658c8226b6f0ada16b040d82d8054ecf2126f85071e122c3f21a41aeef670f4479b03c0aff28aa280d61c2b84e8cf363e8f7f2c224c801257277452a3dd807c0ebcfc21fa74953aa3baaa9150a8f7124efb1867e6cd3226327eeb5a09a9733401cf556cc065140b40a2add563398f3208cae539e43bf1f590c0d2bb90d02164762451a60a66d4fe506263c47f4bcb0542b1cedb7e43c37fe87afb744b599103669373ae6bd7e9174e8347ac2d833567efa4660236afc4a9f6f3bf555173cc340fc6e98afcfe3ad2ce573a7db6abb8794227b1e368e7cf7c57068b80ebc3c3454c01215337c5ecc1cdef42ee3e15e96d4d3ad151b03f85d3435f01e2c32bce3a336e0530dc1c42b5e56545719e4e54a8e175bb54a01650a91d6822c45c3175f81b5c233e3635abd8ced4766ff1f77eea1efcb250c8da07928e3a094181b9b18654fc28dd7432d52e161ecb6e256b8f39e42d21dbc1fc3235c99251916323fff01623e480fe1063d364242f5925250145424cb85fe8bc9e1c0d445b1faca854eff9ca0401190898d1bb11737d873ef4346fc2d9009719075ebbb23e564238962ce091ef4ddbeb12f325c8f47be10804caf2e89f292bd7b88a5b3b3bbcb91aaeebd4e712bc9be5ca40c8905aee23ba58fa9971db33b7b456d6d97903751789c67f7f13cb0e5499a6bf20b3b56ac12cc76e5f7f904f324e78fef53f86d8dde88328199cd367073eec7f4a134cab178dfe0a7073aa5186e18b747557095678a20b265efc18aedaecf92192feaa680ec2ddef445276f1ab739ad2f969076cb8991e2130aa95dd54a086551834fe0ae028471871e8a80b7098809f4d2ace59b9127a3229ac1ec47367ab86f6077b73825621407afa38654088ec96e094e5c4d23f75230acf286801d16b714e22e236d74a5eab811018ed5fa4946e3b2eac30599ba49b9054f02782311379d59924930a0b1847a3bb7f5d400e699260287382048db9e2fe8d86dc1edae15b6702202dd7abdee883c0b8a5ebbf4b0c8236a6f47992f3f4a69ebc6091c09df7f2c92208ddac22a4747a5f827c182d23db07a09612393d70009fb119a7058c60787521f6582b7a4bd3460cc7d9f81e066450c03dda60f9ec7c60c8744b4e9611e9d250f01b2d200627c99404615f8e4426d756d55571f8f4bda3b849b1d3cb96bddb8f9de753cf00071f5039a0b60d4161d3f3fe63cd4319c63895a91ae372cc0f88a03e1a16f3ecf56804e92aef51bf611a48ffff1a437a55fb4ca510e5ab28121992c45ef09a92352b49559728f4219e334e8093d98a0a55b9d05c565cc276e54260ea9256c925529693d02706911e040f318c63bca08d93b7a795433bc913ad424838cf7b08c5080e3df0dbcba1fe3be538b3cbb3216a80e2f44a12f45ccb8981d6f1043b5b67f977a984e22388c23ecbac6e8d5d90e214422802158d6d97e320e24cb5ca6c3f848f1a0548a9e4a41dbb8d6717f734215728a2f49b896b8d25c8fab468dfe3f0bd9031f1b9a2312c8735f02750fdb0d72f390e0a8adc36a7ff07113b09a67878395f0033e45a56da2c843ccc9229523748421ba4d1abfd541b82daa5f732137c2b56eb45d835ce813b43ea5710c9c2b65ae0effbc8ca2f9cc63575f1e7eec0d53b87e4e7004758c86c023faec99e833185f7abe5fb6c5e2b8f5fd200800c31bcfed8d3dfdea68bf0975c5dc71d0f816eea1429cbf1e43130636a76c02e3d0768defb0a6a6c39952015e897cfd016f70b02bad2fa0fdad4177ae74866ac4b5497fdba4d28b1a25818ab3c536ad419a279e6d942babf89a548e7a81b2b135e3f1cb9a7da4d977828dbdca5db846e028080bc657ef434d674d69dee6f513994f5f8a3ed3bb885e8d06e9f8821e2f8833ed900471600e25d461f0cdf510adb5695114878284a3269b004e2500520ef5a878d6dfccd0416cebc7448ce56275b04fbfbbba8df264f4ec3e8cf40a4aba367c566f4ca6ace2adc35790a9aa6cd938d6b6509f5ea16a3ce7624393327d314e304a444a70e6314a13f2c9b528187735956e40f0051ab3731efd97567a351216312bd70f50e4a37fcad875dae9d79dd426cc86ae9dce92c4fe9039622673d61c91b81a048e4544c5e60e140986a523cc52e912697ed930c1e6e17140f45da2c22fca5115f814bc2a773b81aa13697797c3e5983b63af7426d2b04b4fdcfff6bd4037caf5b911f13eec5dcc6601d5d9aeeb7a3ce8dd9570a40f1a5ffde184808e0851109894c02b74229e0593d2bfcf287c095455e17b96e90d1d028f062b8008a7816b76c8cf9e67a65d888059b289e2540d7be3d413c9c9958c919e0204e16bdd162363f417b69729124f9e68bdbdc6d7ff7114a53aeaa6fb2af43e1429f760df0418158ec072d21c25af4f3460a58a04c668d065fd31a4b813885573444057c49d14f6f6c3979d99cd9a442d49b49b264ab9b2acbb1f80afde5bf6de2743f6638c43a36b62e5cc25e2e37f7cc40885f1a85b2f7d9208ee121575ca20ed5326666fa877e7eaa793bda6a25beac4c07695d2462422761da23148bcf3749d3dcadcf1c5fe583c790550bc10169979e722f0563d61aedc1f36ae845a2f7547c44859676709f3ca9223c0399e8fc6a9fb6dbf3d4166ca9f7165e1ea9f11e3b99d48828f8f07336de822eb85b7de65e384b1b9c6742565cbc851afc8812b7143efa2be5b6aa0e52140e7486958e0339496176d6561bf65535744fa85ed5375de3178299ced7e2caa7d56435aa9941ae661ae58a3645d7a50f4ba5497d2ce7a43e636a473a17ad88e275ccc52bd1eab4355b52449c37040a82a3b9ea63ae76f0748607352ea112ed9ab923d8278ccf691f5662b3b62d2c4423ba8e7afa5cf6010623064b79864d93e84406d4c0665162d3646e1dfb3a83f51304819d1896498a0712bbbc05375c9e7f62c159c4fe42c5c7b4fb781103a0430807a82022c2b3657cd78b93bec851df9787c1e117e27cb735cf490ea4bdfcd943344b5a9a8bc03bdecd3cda1666d8156bb3cce8557b21df9992bdb28f951affcb2baa7b38371207fc802c0ed5d2bc628ed1df37a3d8ee75444ff7f5b042dfa26cbcca5997c89389e380ec7ae06cdc61d1e168d0084056b2e595293ac269a31f2da7450e0fb4ffa02bf64e0357b740d0e30aeb24da51d1368d3f2e37e2cdde6b53666694716c3ae6d0d9ffc5fd9f7086c86d02cb4353c83192bed43162ecdbe02515733e87fb3186cdc2840ff231eedf680bdcd9eaf48f12b1471f8d3a9cf61c9d59fa223f1253d69f9272bf37d4c74e52ac781e27e598855b721cf0a821763bfc59f7f3758295ede640a750523192472ce6a7bcbe564bd9a9be8e021c45cb7744d709ec1173d2394e180dc5bd72ea61ded6196da612781c460715c45eaa63a690430aea5521410c65ae9219944019f95a42119b4e419d3bc6306c6d82ffd91d1471a472e8e0a59bd8c55d1cb71c210ffd3bee7374ae5390567ff784eca88646655fee648b2a29854b457958c6278076ca61729dec3cdeb70f7adfa8d8cb24a6c469cbc611778a89dd6fcb24be3723bf4850b5a50178824fb3e1ecfea3a6d4b2f28bec0142074aa3ebfc39a87d3a6f2a384b56371fafc15ae071e353f652dd3a35e6fa0518ae132399eb1d00f702423e58f6ad957e8eb57318dfcbf8b6806d44efcacb73c4ebf49f313420251db831d20cbcb8b943f7ef56f40ce13a183ba9ac4db0ac2adcafbc09d653cf58c1a607a65cf8a741abdfc241c0e515bde89ec5823321cbc58d889ea83567cd841d1ca8e802d3a48a0aa3dd5c7febd284db99338bb28aae62bad9c299fca9aa2a3b606d0b3b8d1259e43121632461b6d49159fa3c36442f0ef109e3d1a2062b0c2e87d9248409334af6c008736c075594827760e4011779fb4bb6f7500263bf3ab632947a334a96600765e04a706e7e42c50c211c71427f599764df815acadee008045baafb546f26758a73261ac088a0658a977042bd74658bf5170223e9836b1d6bcf92fdad9f68ac7a7b06ca9350c1a06bcc30ea4c0de023ef073f03e8ba75739ed3363eb62dd1b12beac06969b5e3c8ce60a1622362b6002f4cb228b6848d4287f2b89a5e22826b2ce21d7ffac047be89ef1f4ae2ba988fb71a991f04562542f0c4ae5adf53b27cbda99ef81b56cb1b83a86376638b461fda113db65374e0e018dcad699a6afc1e1f4327ed17b4f0fd98dede331d4090f21defe0fdc8f25615a63a8d8c0de204ae871e37c575ab3d49ffe0cda64f5df1b589ffc3dc2231deca60bd5f8db666ebb637b0d1a02524c23fe6e7071524569fd04e04fc0bbe42a24fe4f78d1b89d8321df91fcd6e3d42a42b2648ab1a48d9e0f5d6e1baae9a0b85c75f744b1a92f521b630b3422fa7136ac4d113ace750b4d25ae1bb7b973651ccffa7756a4db08fe6d3411aee4a6d74442d9048e4d65f3bf033b171a846b466caa986a139e246f425a797c98218971f04c2ca0feaf16b5f3174934b39c98d3aa10ba155701ffa7082619756ef69065261828b6058b2130ba874e5574c1d44977b3be283364e3cb50bc66f58851868e100365ad39295e7dffe7a6d1b35eb688158ed1d42e71ba3c95ab93ead02486d50d3371d9ce91eb423668f739ab05a94f0a3dd75b55e51758c9c6b620c3800a641b73f9badd32985ce39716d8c7c0cb0607da069fc115848e503a2f02ab537f04b28c169bc302c3fa6db524d27270fdfa68263ac610d464a6543c9dec3f52f059d6bfb043bd00193455a0d1e555f6bf4b3149d02e6689cad68061d9ff39456f121dcf2bfb41d8bd6dff4c028f7847646b4bc2b0bdfea39b3f543a9b879f46e9609085b8668ed73d128be70e6708adf051fdbb6fa8e78a31441d12760055ff64b76f471542e05831d240fc378eb76c251669cfba85b3d52ec43df85f44daeb76cd360e539e184af50e55fcf245a888a252fe5ddb14643d49b04b09c022e23c5e9fbcbbc5c090e0bfe7d347bb806d1624d4ddf6a437d29b6a00214e7e4b862ad3a53b53738bbeee12e9779950e9b46054493f435711eb48e1ee6cba6d6bfcce0f526418a1e28c567e63e49f48e534fff132556528677d8c2139205c0e29d458a27181ebe8ffdb56691e06af54e3af93904263d4e799517d503ef06c32d62175c827aa5be33fc2b80b2486e439ec6659378ae16a55001a868fb5bdcb4b3331b9f1e015dbd4c184f9a0943a957de45ddbff1b2d63f55497f2383904be571d05bcdc7c446ad609d652885babee3785165259a25a0db1a1bd002946c4dc5f44017011ffa514eea41265441674d0895ed0cd5047b46f10f20c3a6008d1f1539d94174f57a3c9fac627c662dec54b2014f9bfa8f5e4a724812cecc60052b79638323bd19c1ecc03e931e3404bc2ff9bf0ff109c1b0199817faef621e9a95f32c6d4ac069d15a693c3065f2e1d08bfa7e9b2f1138b82ea07bc3e83e6b3964191396070218d53202e22ec11edcd3170f6e0ad75a4e7a126c5e419975d49d3d1270de8630a0a7b22dabbff7b44d6388658e589c91d877e8793f5c322dc3086ce66ac7cba958eef065bad090e032eee47b1e06c2b7f421e4772ae3c1386506a0cb032ebc5a8a84c6b63d2a5b5a4fd491641e7217d785d4c7d1f9de55576025443ba96b25054e7d94c38f1c82bb09005b3b6861a31014133ebeebcbf6e7cd5daed9260e8c07e4587af02df58186c40596a8d36377b159df7c1efd89a14b07f836ae485088b170301575a7869848d734ff9cc5b448a6baf7188f0344ab44a38f396f88bec47efec20d30441f1e20fd5ef66b703ba8127f5bfe15397be80b399c908bb1b53eb347546d351f69d0ef4b61da9019bd4d7c79983d8215bbba6e2b0a4f483636b98be600c525e63b3f2c739ee4010f8a0d9fc27b39dcfffb5c8f20ac453fe8bac101487ddd13544bd2b970a7ae34a9115a8d1cb2aa6dfbee5bbc85ea37decfb583c3ddb1d8a02169ce5af2de814e182431e502c0d9978dcd6a39da7748927a46ca2b85cb383929f2438fe4d440a211ecf35bb86823c42d46e8617e4a3d6c9c1111811c48e17925deb6e4f595a89c809d881f9b632e225a9654dd8bbc8fc64e03a96f96e3961b856351f724240a7c9f269ea04f4c1ee7531d32f5ffb5c16fb8bb55972d37e3debd3f6c09d2fdfb670391cd1a46e8884648e04842e27624ad09798200bc17c266d7457230cc865a4685e60f752225dd32ce14408fb422cf1770b3632ba118ba9a8383352134f45dab40baf5cd1191368064a74fba05e432ad262a96832825a6c7d8bd0c395e41e45df1e5237d25d8d1992ec18f105953f7670dcc33aa207a3bd08f6f42f82164d78d259791a694d2effa2b80e83d45f9e140f720a05b882606f6045306e7692879b35a92529b79a5dde8c75f078e746432ffd679eec0f3af8761e7e4396ed809832a8ba90ab5aedcae22337135bbb09ee26d073a28c644b1a0854ff9f73164f2df7b2709eac14220f19d3a9aa525a81686e712e219baa3481d3154e70a0dfa2c7c6a455a3eebc6702bdcdfa6b32317409fe5c8ffb44effbbd325b21ebf67f2ee148dd8ce1b74e431a5da696e73cf69def288cfb62417a5bbdd25b9e269fab1eca7737344a4e06a46bcb6a164646025148b3eef6478b34dc887c41baf81d024d5d0fab6e61bae0ca7cacc729a028c1961819d1fe3775dbd1ddb94f0778bb00e82e46c5c4f8c29229f44ed8c5f8e88b48022cb6b2edd127dc4e6e7c82ec233abd7065fdc882338ea78302d1b98b5b4dd138f668af65a1038ca486819a488adfbdb67ce0677b3a3d173626daab9b9191bbda2b03f60397a2bec0826c0a4a44369676abd3ace106e02b0d9f3b1a2047faa13d5b2fe0963c58218da8ad039051bfce685b9bed8ec49940744975ac36fade312283da2747957e160e9777df430db7781cf85b65a707d1c4a195397cc5a1c1de00e17d51baaa471e6700203b8ee6749b810f8d41761f87ea385fd885ad8c5f48db5d76cbdb26ab5912639b11fadf686063c66479bc1188d324079c8f79d8db79bc07a51afbb5148779330961ac72a86a1601f4c8815d85eed50e8863059969b3c0746af3f03709c2de2d8d729857205cb3f6a7c54df5f6f781355ff45661452ba36c8a04675101e2d466afd880a86ddde2d53cab53cb51dc354fe54eced39eec7ec03fcdf3320fc7e11fbf4d283476c50fb1f79f8495ce8b803bb10ace06d454b61d0e140da6b34eaf55f6550d6bc096a8555793ba1420759021c4e65c3d80768e80bbdfd492ef15181229176fc4c961be62f200a58faac3c596b04163a74bc278b7fbcc409d921228ca40c05309cad2e613a8020f66616e9db076637bf6c5c5929289b9fe2699ab86f0b740efced391d52b0a7d6e40318b1d423b6c2cca08e6bce5f574982d8ec0a6fac045f884c4ff5e2ecd083f1e1955c4994eddf19b1167749f70b15911a69835fb039872f047aa0c9afd52984f541f015fd51680f51265202b47a10f7c895ad600c00b17c5b6a067ab55e07476e7c6b55c8a146f3b80fe216b410bcf68c70acf27e03b0c23bcd5e523b1e962397667e4325dcadf0cd18c3b7e339fe55e8a6d8157b8796134774679fa539aa3da053009b211cddddca966611ed418ca98db20e9ac51936985ed8f23dc5551e3139a03fe87ede910370be43d79642ad34cdbc7cfd93aaccc73a710cd1dcafeaa3f3b3688311049699f0ff901f5f04d22474accbb90421107b38d36765d4e86a849cdc97982ad5449ee60d57718befdc8f1904682568d1c05551a1c9a79d8067ec42cf55a6214c70834c500daea62109a247005d65bcfa86cb91b65d33b4432fe182367ec331fb6d10755eea7b548164bc6d6b2b4260afdd56b75856963f4f7a1d593a5e2ef9580b5c4cf00d82cffd80c311fa1342f9ea1779a466994dbd0f4efad96d2ce204d0838ddbce533b94041c3992c4676969c2d2c06716ae93880c2b7258742e33792a67e7d75494f9f69b399cdf5ab1fc485b57d05c07438315d1501d393ba5fa0bf071f533e480698aa54b7a209a672b4b1806dfdfd30188f431849a2ee84bdd1ad892b761b30719b25098e5379e4316bfdbd127a6da0e471fed7f1c002be44722c5b9489b7512838c1d5af0597b3ed33f4d614a7588de6364b0d634b262e40ab1f4504ca927ef9708041e62f5119690b5512749b0982c16c46ffa2a9903854f3b8aa561e6e86aafa52b95989dd95e6ed5390860439c16177be46ab5a9b8ce948b137e25bd8c92201add408dae29b19bed69eee967bbbe26b8df6d814cfbfab38d072bf510f05b7a707819c900e523f4f8eacd45edecada9b3dc9d423bf59fbaafb90a1874effce389677c2c5e6880ae579eb82aff8040cfb68609755dc7668a82ac114c9d646e673027b8755f7dd87a4aa507c40a7d4ad81da522360c77de0dcc5c252a98c7aacc654f1452fc75b9363909fea03c8bdfe542ff6f89aa4714d67c5565115e08e91f9b0a6f9c03ddbba50a79a8b0d0ca1b75b737e25a88fb78b29f2dc8f73c6000f8b71daa5a6aabf8907b37b85cbe2d1533424de57ea49b1fc475d06215907280da0605713200f79031293b05739d88aa401c3c8db13796814449f05f00b20d93a7df3e6e8b725627d7c6d342a617f08c899a2ab538ff5a0f88126da426041fe9d569c2fccf6cd272e87d2543a43932e868a8dfffae7415383d303ecd4475f0295413de1d9a0ccd7ec590a9d52dbfdcc6a3fa50e0cae8dddb6fcd05139aeafc88f4f1751301d0359fa2ec2b7ae0a6ad99ca6562e338b1d247a46c2e206a637f852a37ced4dc8681485ab30068895023181fe482804bd53080e9cc1df158409adbbeb0143c58dd413c5be40b873f76e0d3769c4bf920d008e77c3b37d1df31f7161228387336923cc83cc9f0c3f7cf6fe9f8c9f0d376980b2521c4789153bf97e39e3beb9a54923e022a196fdddfce6f0d6960d14411df82c2215004dafbd349623f11c4530a373dc5a3403629e96b6ed7bb6aca9a011ab51706b5d458f3333929eb36b52b819e3f6be565ed648a3bb0dbab8000a860a0459f8631512f2d1c21fe36ed4c356aa2ba7aa3726d95964ab3a2fc645143488bf8781c9e6a65ccf006450127ae8bedcff4bb1556fa0d73ed05d8fdb6fcabf8e6dc75f53615e6134fd6cbb197a0c158285e2c5a6bc626c798baa4440bff858f0b33879f996f62cd809197031748e817bdae0efc9ff65f48709f6856312c32086d8c5d51b6d3a5c15302f2cc7db83ff22d836563f5219a38676e8ad831c1f0a463f8655fb30db1129edaabba831fe30da2ec6864dcced13c8a2ebbb282ce23e536a35eb49431a7d7a4ce1d374f6ac6afe3a9a2ef5aa75e404c3f2b85afc3933e27520d9e29d727335fc00fa69a66c6e16190f96d58c29383e9f7326cbdb50064680018f17324a1bd3ce5204212ffc06aab9ca7258a5458c929f3ec3299f22bd262722827560c83f79931044729b612d4b30f150ad884a15fcad5db4a6791de12543757fb94b6395d34e76ce469a4a420428f9dad67a0ba34a396d99c50dac50a12a0d1cc63a20db3217e6166aa214ae6dd6190dcc9ac390523b2b9c444031784c8a3a05c5658fbfbd3b8c4fcf12be4e2d4a515bcce508ba340009e09bde6c041fb5b62d5bca54fb7baa8a22b78b10dc4134a0968a0dc012ac14ecb8c3cd121a43d95bb0d8c5e545785ceb212a92bf374760c6e4ed82e4f6e3a61cb0a802e4f963fd14bc56587c317ba0058a608b088654417cfe8ddafca2f683f75d9d441aa46cae0688be57a4db40dbfd3bfaa4b5c99b3b92cc0c79230a1820674e500fc6bee11af3505c27ea5e76a0e8e37dfed1db7f0b53e75ba4962550fdb6a6ccf5ca6f7ed68edde40c0453e3a9ef04d3fe71c8679d709ebf55b0013b53f5b3214dcbb3432133338e928ed5a0fc89cd3a2440f491b108365bf5c91cec753c413ed10663b60fc8a76a85d14467f1f9e7b321d62ddf80e1aa58411bdabaaaf63f28e2749f6a8d7f68698ba10586fb4ef4600f575457d7f4d310be52e9f52330d262a7bb697ace18f376876bd4271bce1f661c62ea4cd465318ed7679c30182698575fc844e63f827218288eb474018cdf3f790300762bef4b32c84fc315acd8fd7d107c60eedb5c0383c6d81a9a40f15d2aebf06dc7e64cb79f63d4197d88b797f156733ff785f71bb9f34b70abf35ec3c5aef3ff463b422cd37a670ecb5f52dd9a980123d11f9e53668522a4c0b725455fde377f10112db02e2842728372a214b10986bd684e05c222bbffb4b67857e0dc20c9ee84eb65d3edc3cdbb2e30419017b338c4c970ebd27e7001d52b2106151d864d8e864106b155fc0491aebd5a6e3da4209f2b68b21e9adc3487ff637e44ec0fd8e0088c1d144d144beadfc5564f149bf882d5d7394ac777979f7bbb367f1bfc8d4d59b19278eccd378b06be2b8dda941585bcba1477f10fb91517b129d7669811f75bc6b37811c8450113369b29288a9a338f3c2f1aa85d3c149d8fb4e123f95e339c4fa6988779da05ecda08543679c4ca55705066fbcd4bfb96f5f80440f89b6c707edd16f6d200a6a3b66e3228b26ac67fc7704b0583aa4ed80662b6e283345f37c59cc26a01d6218e7be1794327d2ccd59a0ce8c22ca3e54471f0f525598829680ad9bd73862ccdd53a1a1213eba6c92bc79e438eaf30b40a1d6841e42f2e36f57693b2016109f58ca3532af3ec0079cc5c9326b935dba6a31d18d93d804cd2048bad922beae0d1caf0ed13124ba6cf1de6c68b3b4fbdc070bbbb10f798f6c35873184848cc441cd1611187153c512dc6c6b1bccd46358c7716a0bcfbf614a162e8f30ae037fc593e627914a24cf0a94eec067f2028901fd7434ee0ee24113cec32c46ef462653079059329446fcfc9188446889bd5e47f201ffe136cdad7309322868a9aa7227ae5e737a8b7b6c54e03aa96d5a7655e154b7d8dcfc5d8b5804e00be474ffe933412f84bcd1a5abbf0a24cfc79a3b4a39692b3e3851d88409fd1427a12f6bd1b590dade66de57685fa4f9f391b60ac92cfedbeaec15f7ba8f15bc8afbe031b8bc40328157a77f2c122ee41583cc0492bb698e3018e9df7c6272e5da0064db4fe8692495eb30448357d6d32f9e86b9a31657b481a124ef3d31d92b38b353daf193f2b13ddb537cba8867f7eedf9c37bc1980ef80e9bc21c4d1e6460c4969660f1276a95e1fbaf6e3e3596b288b8460bac474ee9e4c120887599166e509d5d7ab3618df62b1da2c0c2020e2a540c68aae11d65e2b6b58319427655ac40cf3dfcaba0dfced0e697e4dc3f63282c98eea629823fd731a218f21d8975423109ef7965c80275567746bd6b6a4900620efd54796041c8ebedf797f155459e9c4cdd0e5fee53bc25641fe15b4afacbbfadd53f189ce2f2abe1a6249f505cd0fe61e312b7ff881c78f429e52240e10fcc35493ebab9e8e687cf492cbf29bae1f20bd34d0bbe4c1de3e293d6258ffe855d93e603b44b4d7ebdddb5f80fbb23f49a27cc609c2a0fe84826c406f8d5f55f96ded9fe80df6c4fa21bad6af5faddefb98263f3e15c270db5c9298252c93074d2c92507e10028a25fc6c43034061509f06aa3ac308891c82557f5c4f70a458c3fb1c62e720dadb7abf5562b2855137ce7115d66717399da992f29c4909370b5701a407b461a452b436d6aa3ef3891b25dd83f11e8c3030bdc4c50021ddaaaa4410b90d305afc1b2a514333d0ba9eaf7edc9e3f04a118599015c3620129b2f7a918a66d073afa7b5d81bc2c3b2c2d0493f5ce6432ab9fc9c0f2fcc4fa9522e2b2f8353de4198d73212f9c8e5a40a0f3cd5de071cff7736b69b564f499ee5d7a25523790a75f9424fd0f586f49eee472523f901ebe1eb8c662bb084ba5b46f2e967889fcc2c22d500988a80e12c826cb5cf295448de4ec1a6f8c5e9804a5d30c8093513e36891dbace0d4a788faa451d1bab870cb77c2073ee9d058316ffccb1e93ae75c66167acb8adacf0c9e824f9f1dff3a25e7d3a4580aee5237bc111d495985bbd12338a0cea12a8c2bf179ca9b1a5bfb9d4a935e57ec29a351a696f6da791ae98e6ed9c34f0eda635f1fdc035f672768dba787ccdf97fb1b641795aebd369266ca6fdbd95c62b953414a43f35c22d0c79f1b190e18045807112211a41c473753842151fb571d78db93065f742857e4c1354b02871e390fdc680db7a73d054e9bba17d4565a7d270eba8222c2de371a0d929e8cdadd5dff11a2f696300edfa37ec3f957c85d31d7d2baa68a9cf0f886b20407797c49b496ed409d9cb8b41e8e34238418f6f6e171c97c733795bf0516a095491c8d604806711f081e7b5a4adf285cb373cdc56319d659863108fe6d0d6625905c061fcf47889b9164b45797ea2c4ddc8348a99ac896dbce3f8d8742bb459cb150c4b8f9e6fa309f931103800ad713da4f36685377c5e8ba2dd24d09f1bcb459b350e1c2b391b9b0e04df2544429b4752120a09f35b22286882a9e095ecd791ba5ecedf7ee0e435e20f0230b4eddc0217f6a7aa915df805821559ce60347d90ba253cdf803046d3703d3b7a2ce2f94773fcac0129514f31b7d7e6666a264fdf543884128dc372c2778bbe3336c0a7e3615d9a79c16833858ef2d71ad85b412b123d5180eecfcbc5da2804600e58d065e0d2daa886258cedb6b84a02c3222ace1356ee779144fed50062f0bfc55a307b42d61442c2c61f79c94ceffc32ad5c3e680d1b99a29809cae08b17d06523aab6dc5b939aaf6eda28f68723eb5e947b416b35e7d574fc91cba08c2e173bf89c16874203c1877a0d7f2456c86687c8fe3bb9592902e9f583e351fc2e27932d126d9355c94b445110a35576b53aedfafc0378588a3996e11b071edbb59fb55bdc7ca5ca80e60d339024168b4971145f69d4cac6b7308c39d8c71c23c95332fdaec9bdafe3a2aa9aa832c86e6b0ac6588ee067ff5d8da62d983ff319fd0f05efeb5932135e35406807ca74c4e4db400596955824c430704f711099a0819270955a262274408dd039bf630c94c04ca2bcddf507343292fbbaa769f4a4592d3e66fcb8c83f5c7224be7f251b272ac7b045eb5b067a05f146e57581567f3e863c3676b00b0a84d5ed8c83374dd7d3c22467c8fee560307588cf0a19dfc02df208385b49cfe24d66063230adf0721d28978d61badd300e3f6ab2e7a44bb273b658fb8bc7abe7a2e04fa780de8512e6e4ab9457c3bc3339323a4d76415fc81ebb28f366ad3c759a70ba1f05ec8df644a61916dc099506e815470b6dc8c42e3c7f05fb4c167e2b40ca965e8768a90769cd66c4fe8553b1a6f58dc5e1b666236fc538a7dd282b63b18e352a8c395282c4b6b8f9f12624945b35ba825a97de9e12578219e5a22b646b5db6c9c18ed849ac431d584b91721eac271698648327e118ef0124595b5b1f5ed91003d34c1c8401a9b6ad73aac58d87e741059a334a916eec54e15ea05fbfab3879ffc529ac33a3abda9cc6bba77f4d03def872a14771549aab4b7ef346bc3302cdeb9dd07c1b8e9f1820c0bde866d8358e2fd44b34e30cf04858e45b40d0d58c498e22aa3155e358533a67fc3407eb3e2c0b9d4cf0c2482f0964d6d5a4b666d09f91e8b1ced82e597611c9cac0a74865c9101e770fcc3d317870b514066940fbb87b89c3658074208aa19538e117e8a0f8c4c2cf341ce832cca0bda49f338cb7b7aaa456d86243f9125b7b23e5970a80cd76f0c69d8e64789a36daef18d9929f94fd73e0a02912308359a2f71f3924135064bc3ed4a90e3f0b1437bd2602069c387933590726a62348fe7d2cd077c7eba0e89db33188aefecedfb14897dadd31f394e0c291f80ec16a3933f9578448a345f50696b3e1c4d5078e25130cff6e06eede00c4cc6035b3a0f8b8452f600421c19c4e1a597e825a12994780710b272298aff2674aa787c9a3e7702a1241cc2f4df0a3742f76f123d019630e131efaf6a7304c5ac987569e40fecdf2cc1719b997ac8d757212f6180ab1444be8aef45f73f8105fe71f663e056038056cdb6d1084dc05fcebfaa468cb598a72f0b46af82c8d11213133353c7bb2c5c6c49622559706c75d7dd291754c1ef10a6abe18d00c693bf47306bf2cc29b3bf253d0c2bb57e5476ec16072333f136e1ea2a4dce6e3d1d53ba45dfe5f8f4a33c0062e71449677a75435e0adb8aef2d60b8f5ea54798a596f6853dfb9910764c39825d4b10df599b7dbd19166f3627c5fe6f0504ac94f4ff1c94fbbd536ee3879506c9b327c34d8d60d10c4754651c0bb410f9ebd20710f2d53161f88e95e468c6e75e08fd2e1f0e78ba1d92e103225d25bc6e565871e0b63878cce283770b5b1be3a7949b4ef42d64ea126907786abecd25c644a6b93629d6e52fbeb2fed01c9de7a298ab3de73128e322326a0ecaf53c0c3b6f26786b547022e70516059c503288ce5f48c52404dc78a5b1c9e828ba328e54310438111e77e4855e7e0ce61034c8294d95ad43f5d4909c39176e00e896c5eab5e65bf71e212715c8380b0113202e47313972c7d0155c9b7166ad5ce02591c3c8f426fd25e1d1fcb8ac9dd690f935ce528d14b069b26f0ceedafa1f19b50aa350719f08f4037b07745212cfebe5e23fd874041acb60ac0b6b8496e217ce501fa9346c2ee917f59196a8cff9479866fd58964a771ad0d8303654dd306c588e42201aadd70cb5f8114b32b3d9626044284aaddf442021bd20fa9aa64437b663408a21a27bc22f581eab803c492ea0911748dc90afcbaca42a1466b556c5e6ad19d631829d6b7dfb1064c750c613891fc30fe68d20cd17f811716978ae7c1f8dae4568804be26bcfd499fb887256731db232148b569c80557fbe1806028c8993cae0980cb340345b971aae40b8972c104378a17bd86738ad2145f7579cdeeb148fd2b76ade974a81fed0340253ee0af9c7ae94b305bc105b182a8a45ddb35a860a29266ae14b3c876935c339f6f51b6cd112497381f1874e96c26aff5e00314b8925815a13d3a3a536d0f615d7919abce0b5b188a48fda38cc9169c4d8dd527346d4982987c04426ab6ca83ab931ad724cc43e63e6e0eb8582c313c63118d1e661b532fbede58e5fe54977f5a4a5ba5ab7b0c81a8c3561da45bb6d8e5bf983744ee548f5d4b8a3b0bdf1cda68e5bff2de79da05491bf6551a3ccba1aab65c024f4328e6fdd8e0219be3c364ba4bf33d34b38afd8ce5738770f69d85d332912ff23bb4a6407489dd25d61bb0af56a13f856f4bbbf62df3166f3b997f402d959d7e082d6af83a250521f42a3c00db6c3596cb71eec09ff15677ede9783c132b2f1b2672d8e3c199ff768bd4a8466e1c262801aa1b71e0bafba80469e13c05e46b0dba2d1ca5f6f9bb5e46321763a73f787b95c5e16e9e26ed66a1237079c215d0b38bf5b7ce68a8b45b40d926d4dcbe7891c2e0e4f1eb778ebfba570083f5ffe4a5858239c150d674aeaea992b4163a6c093aab11c4eadca9681c036b2511c160b5543675ef34e99606c8b3562b023656a30e195a5cf343ff9b54a19526b28516ab305eed9992cadf5c3e776e603904f4c3206d38eb2ee82f8f4c1c0535d5e9c5ec56b55299dfbfecf5952aab932cd98b5d38ec2f1ccc3d37aeef2a25590035d9394c1b0f1082b7c0f2bae8ce57386e2976648142d1355cabf4f66deeebcf8bed225c1b8f071b8b715c71bd1472f87c6e0cbc0686b6604bb6efe7ebd4b75494c919eee9ab7946e374da6472a5f08a8734078c77526ac1c9dee6813612709b307149d1813e521cbafde2600d0bb07dc6d489eeeb491c56e5568d2cd9f3fb73dc6e13a2d7e73922efe340e84335dce0879e0c9ea6460e19912793affccde4bb388de55e801f9185900a3b725af4b446ddc9128c0578bc83c6ad08d1a1a3b2446ff4b4d6d5fecd171d106967a472b23c24f3ffd63f191731697a55bd9b820a159c292c379214de372c2198c99e9764acbd2bfbcafb150c1716aa8c5764e464dce703c574b96090a44b7063130a34862f21527fc26d093352890222a8ecde9fed88aa680cffec791712a6a3b69e1618387e029d2e8c185808cd76276e91c7c064c6c92e252b505e6680d39498fdae5527ae2e53b25297719352280de387a834f84d2bd233d79bd678da94f60c113d6c41083a782f24983086deb5a3f8ecb12705e2ca03e053d61ebe8e5df7b428253e27ce40ee4df9b922ece307b5039b496ebb79dba99528d8ce366b538f212cd7653b785a8db2983829c3087b90a5bfb30ec4ee572eab7a10b4b8d9a2a77f371847b28f24a7729c3f19442649bb1f10943b698d329b95136149f417c2d8b493c7b1b6554f0c4c288acaa8b6be29bf17ed7e6ceca01593c6af8c6bf1dc343f1496b386aac519ac1515ca1a1e49fa59d4b02ed46eb333c75a35e6e50b73d7d0803c6e35d8360ff24d46fb36b46b15dd20b7621c6c075a7e604f6fd2296af8d743b1ac15028c75451c8fb781d3467864064d98480d4703693bacbaab2cae8a0419170c32125b8f92a048f8f5d7c4236d69e0555f4869524131f20be7f9f7026aebe24f4a559246c4b8bdc0199ed5b7c58149f2ae8724efbb8323981740bd9cf13f0d68aeb914e4379022d1c118ef9060e4dbc0f4400649be069d219065e7ff542ec0080eb3e94e60efb98e74afdf2fbf962caced8cbe505e4abc6338c93629bb55691727ba1b27065b91e04a3a46fa5ca040ea266b729db5a5bb4483c76755e7e3080b1234ba3021f7fdc34284604be0769abbf975b79df9e16f340827f407a12fad8c0d0ceaa4b2b04d0cdc8b2a47bb6ea76f2144679516f34017f43529bb4c6cea6f7c3136923b9c8a2d7096da7249ad27372f2195e528daf1e6e606fb635a35f3811af4a60795957d2ee5562af03abe4f983492eaa9e0ebdc1acd69517bd10d002eec4e75319856a59f38be4181f53564dcceb9904b6218c5aa5d39ee1f77eff24a1795eb2dee47656355612456813b05ccaa67d54e4231792498c15a5a943997ee3a4831658aef995d3f032dac5011439562cc0b3d227f4007616b65043f09064bdd58ffe84982b6d9792048eab7be72223ff5c250c50ee8e7a1a611178716a41b1646b0a707bc4d8e53352ea4d9b0f74808c64a0672ab4ceca241efe325058fc027a3e4e789f109d7cb24612338ff5cbe81d8e9ce2b55387b616c98c3a01feff00946318468601fd0fca49c0b0cb6b409d8b23acb29c05d4238e29160718d738de7ca062f5241b61b83e3cfac58a01e2c895516c3b75defaa4834502e735645d8e7583d0c0619c8f554f38dd29b094ce14040cbb7dfa372ba6f00670be7d4a130e9c716e6c44965d7c1b0f59dd7bec47ab97e13b22acd9f1f8dd3b3e3e80163333dac1b1b66f9c859f996af76d2beeb3d36147739c169691afe2efab9f26f1373793b1b60f83d59f2aa956a460599ad7225afd18c9a6424390eb36c48a7afbaee433ad21323365828ce38e1ecfea6af40081ead7a113cfdca5bf6e8025a3a282288111ad6c4b511bc41ef6d5efcbb330c819a0e4130238aa5bd531899ab9ba3a3d5e05a144b74fabeb1183be2f64977e4977b11b1faf8ada4a52383e2170a8478751306768005abee38678225859fe2b6dfb79751821e0a5f0f8337ed8cfe43020563a9ba1ccc004f950657422cb319f65f185258f6a44fe68f2a5d0ec9e82776e5527f5f9f7e29f73136e088843e3c1d4dda39f6060ac1ce619731c763e504d63d3bb2bd0bc6432df1267efd12d3d4836c3fd63dbce77a8f14c1df4efea36550539cf5d1888b0d97aa1bc3f5a3e8430250ddf909c8daf293023e8c3c777c31845dcd97629fc8818b33947c7d24b39ac152293ed631a8db999573e97b7740ae8b0d1afa2ae489bcc13f68af1bfb3ca14c149512c3d0e5bef51f55b70137ab3d89b4ed424865ec999c8fd52084ef0e8fe67ebeab87e4e1c12c08dc35c95014586aa5e8bf2733fca21b59ba2616b94e6a849eeff7f433ae01542811c4165a73eb9a9417b2d74ce466ee357fb7491fc9f29d846a78d1b207e1753e9a098b9cdc88594631710d05c9bbe4948c147120fb6b69e0395218c72fd0d8eef5f77977678b6262fa667e2e5b8c6d954e748a25c9aa0407d14c3c2595da7d292a427390af61ef80a64f8a7b8fb3567ffcc72780daf30e7abb71392ae796711daf8a5f6362d01acfa66583091041132e883c0d08389a1709c93cd3bebe0b8b5fc007bb13303c0611f7b0c16d928cbaf4ec4f944af148a1e670c96ee4ebe9d6e4ef80aca6c1605d34fef1730918dc03652c5d1cfef6f6dbd77dd25f9e2c9aa21e2c03594960a439885c175c4c5b52795e4648b9d5464eb79a7b74502da9ee72078c5cf957ff4a93483378b4c184e655ec7d1758c88616286c8066d7501b602caf3e9d8183aebffc4fa8bdded092a0b73c194c551ec857dd54068073813e591d58860f721b186b3240c035804f351a26913c2f52c841dca06c1214085e088df7f3981e7ce5ecd85bd56d6ab0ae0aa60b83a4c8672cca8c172309702331a713661dd8fdcb470fa6247eedce22927b88248f4fe4f2f07eefa16b80b89075ff7528bd0c03d984c94aa08a0a495cfbc487266407f7be0cef224a05ac45f3be95fbf9337e03f1571096c56166995ff9c057f4fdc32dcadcff388aea4a5b0a97675ec65e97295a84a25575389a78c5ffa0ca858d380aac25dd2dc6c32de63e38a6e78fc5fe8d1b997d3e4ee67ba93124d6d91d33c5955793fa89df4b539e7160c57631e294ad8730e250773ce47c9bc4205e5ba548db1c29a42737c32c1a678b065e7d5c272df9533573ea5b9d6cc5ac9596eb53d150d887add26b8ce8841a4966fc90a0cb3b9efd05e7e71f119297e401b825eb81f24b1a7c454e88f0d13fd60be7f10c04a4dab0077ed6dc1ed0512f8ba46731589aba5ed87b7689cda1b64f22a95c593c4fd5f29bffecfe4a3c18d4c5f96692b0b7c52c1b82ff448cbe786d8277da359b5c4e3d5b0731f19bb493f737547f9db486640efd324193bbed1d0d32b139c10cac857ed70c6f97d8ef940eab31d26e9f9bc04ae29eb7cdc3998fc2020df2568c3aba7f74bd78be00a6839cd34d766c9344c34b65794d3580bd52169239c6f84c62c817a25c13bc278f033a524f09f0c8f87b452d9f9e6e88c1c8f9e22fa7fdc035fefc1be5c5b0989583cadd38ef1f93dec1506c834d9f4e77db070b142ed1b01404d40ccc7a404bd9d8e4f10f2226ed65f764987994d89d9b31943a44f22f0b6e37340f21e0869b03ae6c51ae1c5a7ee8d4815ac64392fd7aad6fc2e269ffb7d9c50c7bb04433f2434d71f886fcaa737632b64d09b288e09d5c38a570c1e88adcd161b558628f35269365f11719a402d8888f7dfaad7cc5c07a6708cacf8d8fada086710a4d53df9cff01e345ca2d375ec6670d4e445858b6b3bfe2d7ebca772ebf89431a2430a771648f50bd12dec350e96e60e4dbadbc92ef6406f10c1fff51197e3206c7fd0433e099330cf4b5b5abbd4e1e5329fa535ba857b6475266d3802ee6962ac984db894eb4f60b343f2412562fe13040ca9efab20097e1d2fc447bc282b0a859c1900d76dacdd88cd1564456b74b89cdf49f4f01156619711d35c6f4047a983f97098b1ef3231897fcc7d28fc9e585f7891f8ccb335ff1bb8d5b79bcb65cf256e54308d42b725d9564b74ac3e61a2f54dfb34abe37037ab37f9e55e8d46ac00b528c45109de3f4de2c8808276dafac3b95afb1af5ad5499f1068d918eb3bf0f4f145d273c7cce4cddfe8f8f14433d41fde85a3ff4cc8e043da96051640d9fa39eebda24f7b831024166c7c51eab9c341b94bb6bc29247045d07b8a25fa997032bd75b5d0cac8727521f87d74d1df622544c5c130bee2d455cf6b072d10b3a0d74f0510b3a42b7ad7fffd85f1df22b9a9f4af15703f3d79e89a4a188de1d8381e74ed4da1d03a6b94674d55debccfbe6dd10a0cfa85b59b9e8eb5038133d4360d66836a12f5dc98412d13ff5d9b85ef918a94aca2ba6882b3b652b831a88e839ca69e4ff5312aa7a4af0296d3f879e83aa6a9bb8674290393eca2be1868e5321663843d539c5a1422d9ace02863849eae87d15972ad25c4ee81709db3b6aff97aaefa25023244236b3e44f8b5943923a6e914ffbcb37a500f762efa4c430bd844331ff56b3290f7405885024149c9c7e26a74687ef679e983975ee21386b2878c7387f88825b6005d1a1c5cf11d593be54dbd98e12da1d82a5f03ffdceeaafbd9da3d51475662571d00eee63d25f60c9b5965271787b833847bb939f13ec4d68ac985fdab81d991f53223fc4c5b7ebf824070505b7b8826874cfa767402729454b0ab8f8b2ab01ef6d910480d50172228ccbd13420ae4758f85db6f70d767635d56e97f1d2df52a836b4c4340bc34eddc43ee0e8090d89e67e720fa54ca15e869b0502aeb8e38862dff39ef021f237a6433daf15cdbfec4f3a4319a8926569df569e6b23b37e504602f6d5a6ad0c4afa66f73adfa24d5d6e6358b617d6e94b6d8d11f184e564627a7523369106a629c0fbe4b3d8074dba3276267d5124468cb75d5a3b29016a9924c0166ae2a97b89dbb154a542f7ab1c97a00f9641d37555ef4acf90de41f8fcf2edc0a97394d4e9cc2034610f664d3736dfce8365f6ff42ec1b1f0cd0bcd7451464dc862f98a5029f9fce2c0658a42832e7d9090e565fffb6f1ae0f7773d4392d7eabc24a5610917d2dd625f05e49f6391fb98245c066f20e0ad1091742ba8d577f0541623e847ce8d91ed1079a18986278aafa3683b33956c2cf2f338a29cb57489a691bf31ff5da5d73f3163ec280f5711d065e47dbe146fc356a7b8d544eff691c7cd9a4e2992d4627b89565161a873bc38df493ff5c656063533787b7f7acb67b0e2b0d7f6fdbf05aa5563d33220ee65a2de7f495c642d0af6c2f49dffbb863946b558269503673031339629da8aa4fd8015a20a7e8486203fdf7e3c4101309eef29cafdbcb3609cf3454ba4db3ea5032d05e92d9ce86349275cc7aa8365cde0f818e85fefb722b78fde51fdb1788e853a45297f79cb467a279178ad7b2684b4b675b296481accb5a7d45afa076c3735d3149843aa20fed727386779319687ef5c0e7ac03266de24362474b749fca7b58dcf5a67e0ee547128d827f37d8a2b0da6aa3745a8e08b94ad0ba0fe97ce4b6283816c19f7052b8cf8c61274bd0d16f2c8d9b98026f1f72ed301ec4b0b0880fd2b49881f4d0589b7208354a45a7ea855b3776efde566a9b6e4ce3ff4ff93263d69d0efe82320a3aaff68d0e87fed8169f4b2cfa07d6537af033ffff14f3ca96e364a536c92eb282ba8838a4ecbf41fae63def518964087ed08748cd33ef1269d37b0050bab7501ec79ebe8843045ee25780a729874b22be0811691d592e3006e55844a0cd3d9e8ab09666cc0214516d946c23e9c1c1eee11bbe1fbcf194406e20ad1e902fb9097be5f22eaf85820243c12912c6fb13f051b03e19edc769d3d1eb109195a00194ac8dbc78a459fcc92b98e471463f44dc27c154f062b1203a516beae406498a62e86686ac6cb0e09472c40b47aebe130835652633ace407a78e40f9ddeda0acec90a566d9292e470e321557ddbe141222e352e7c8c237880aab56f401899f002234d395c64a3656d244b2efd491caddffa4cb610c739981c98a3092b3e93402d79d40fcc3023c53abfaf85d9fdf4091f59073e94b50b6023b19acc9617f0949bccd4f2d5fbfe510ce684a37fde6b648716fcfda42c0338c9ffb57cdcf0c7d681d286a22e6a295b981a6ece788d1406c4f511294e4c8ac9a48c9d9bc1fd10c260df89fb94eb0ed9f97ade17ac013beb8073d992eba0d51b50e4c13cc4dfa935969a781c29435c22741133276aa99786c23067b1a442bf9f6e7bd11ad954ea869687912e8341743cf7447dbbaa656a069c06df660950f5e3ae84dd1925fd2b5bdace3be5d729a79d10a281bbb07ad3cbdacb2ae5ea6c217383a96ba208b2881eff177f6d7de5b232a9be07cbdefc2edc53451a8ec36bb33f8ccb342af674f8aac31952c4778447b0ff20d904540813d246d9aae2feb86fb6fefb963f17fd086c5ef0703dffcfbff49ca9c00f441bbf13a329e0d8857faeb093ef1711b4947443b3d7a1604fb4fbae77b233afc7bf1404b0ebbfdb9705369ab42658c40b8dab198859d8cb5583f228d4e1debf2a6ec3de8a5f8b13ffb211edfa2cfdeb7f9a0c00d3955ffd199164f102081c4cbe39943f165361d9bee70156381cd9032ecbcbc375e9ba5094a7d3ad265fa6038b4aca17b35fa0ffdcee4ee84be2096c9b1e76b6fa15f9b3155866086ca05ebdad0178ce567a508be61a57d8e9096d818c0d7df238c3edffec17f3726451cdee5a78b53cb700e3100484003dcc2b03e045103b652c4cfef56170b3f92951d161bb8b9a09dd048cede9a00fd163966eea01053c7a75177353aa7a56415e854ecaaae130fed91e192642180c4898fd1c4b02559e242496c02a7cd0f152e1e2e4de3adb47238a1d190d4aa4a4400d5f2852a228ee2bdaaa0ba2a9751a2bc464d18bbfab9f333088d3e40e3fb481442cdaf2f6204723d440d84d9713ecc46a4b8d9d8f26c0c22e4cf0f880c7f427f881b86adf9f927c973b2d0aa492892f4c3e73de21b3010c14b0f16ea3e934e8071e16f1fc6fef27dff3fcc4f996db26833c4d6c6889eed3416a194b266cd2e464c00aa7e8196805eb4850380e3a81c14f592c0bf41596ecf779edc489351537e2a353ded297495708d069443e80adfe459acaa10691bc506072efd750944f9b25c95f1020c67218f3134a638419e645bdd81aa352030e53c81ab7555410ff4b1871ee7ee0aa98c1e505e25340b911a69b0c9fa76a0e83b94b6276ff09ed69449f16c45381d202e08a33a6dcd8d2f697656fe482b41a330c45056540826b5a4b7bfbe50f8dde105df9dc11c4b06ecd90ce1581051d4d203a9b0589e5680f490ba418443f1c4cd51c8316479777d324c913296bba29834cede72ab58fcbbb7631a6c5f714524ee587e8a4de7067517a03ead865987351397fd109b412c91cdf782af92cd08087476f4cb365fae619ed04319c5ae5bc2f7ed7d6332f324a58d2e9c83d784067fc44f2981cedd1a807099a9571ff965768dc75a586ebc0184a68c9bab8f685a446d8fa92b29df3c23e60cbd98fcec92c7e94a81ae72257a3facc639725d88c55f401d33445712cd82b247660d6c6fb2550cbc64906711405a69cf81a753b45e5ed9095380428ee722428c4bb084a88d82b43fba75c3449e299a731fc13e1fdd17e3b222843bc108c6b8c0432fa09563915aee2ef32de87116ebdbc4abef52c52c458f5db464eab0ca40c3c523eafeebce9236fd821e62037ee2b76e3e246b52541a54ad738f1cf994db57b26acba503c8234b04ce31e040877313c01e002d73fc198f5ffa4c7947442da53bb9419cf0d93e73333c3ca9144f52fd1a1d49067e2682a820a81240af713354ce5def651a0239c2b6da9a1a4a6bd70678d121f9ecfeeb0a52237f8e122a14a6234c5782802d83b45fdd7991e965c5adecee8ed94dfe4922a9e8dce094d832546ac791ffce8288b501d631447fe30dd795f18e372ffb4c3b94bfbe3604529f81c7e0b68814793338b386d1834e1f561a2b2ddcc0f4124a9fb95b96d7e7592d6a0fa402a4fa6b3e5acd20ccba203d274a29ffeb4a1a9f5a02e3437a7e991fe20bca1a40021ddd78fd716e5f54a923a16858dfcce93805a9dd801fd03f81c5552d2ff6a78ba3bc81f4cb2bb431e85434c5891e556aac7d3858058000de49d59b957dc44a03b06b4797b2b0e8e9c1ccfccc6304250c55c258b2f29b1c79a5e5863f8e1047818e9dd052f55cc232bb32649351cc4b3a940b39d7d5c16094a313aabc9050673771f2508b9c2a0718b9155671d0d5c48587d0e6c3c31f02de52e34a18736d540697a2184d85d92814e7d4af2187235176129702daa945e5eab8059631e1da280264d0e8dcc47bf0d2452ed255ee0a1da4844b3f7649bd737541fc419179474acf083328406a96b00e99131617b69b3ff0f88ac497c35d81c42ab362eabd90f20417c6a5d00db18a71f09676dbb85cdd6da93aeb7fe7b31212d1db0bacdc46576245d67194bbdfc4bb195440978bc7da33421d8a95c558ad41f0b81f6e284d7fc0ee14a8dadc56a546f98493954d16a86abfa0348e8d3ba0c157f357dda99108769825e510007202fcb0b9df282af8f3be08886158ee7db6f5f7be1c5d7c32eda9f61bcdc8063a95b4d13893b8a1430d659137438116cd5ec7e57270b066e87f462052186b7e00651523f0ca99783807401c92ddefa0ad640cacd08cd4e01e1a86fbe4a0c1ea2beb75ccb774cab18fa462691401323e3cc610ac3399b8ecfe5f297f13ae391752ce272170d6b14c03d630bbb88823789d896f09892e2f103b358d0850712139e237d829f6d151948abb14261d4dc2c959f533b0dc4abc84756873825e27daca7036743210bd2c8c748cfaa555ab5651ab26687b4cea0df1d37821cced95d9e46f06537241a555a42689b50672f70439b191eaa0418b1fd0402944bee190605c2859a13d401550f14aaf56c7b19b46098f5dbd17bff7ac43b41512fc99892f0aa025d124672a611013d8accfb941dbd08d44c9048ee0c7a1942b2220249ae7b2d9f0632e0e3083744f116f94157d1e9b789b9941327d351298b77ea9b59fad9adc19d88e889017864a67031a75073843f9e4ecf9e75a4e08ba4bb1293e708f2bce6b42edc5ef8407df8391723468bc68bbaf81ab45396bea12f906e732ba075d6417f24056c7ceaeb968deb60f9e116e5ad1c9b314af6464ef5c72c1ca2a5d16ed4cb9d7e638f0098b77b16fc7763bcf6f798407c3ef77ac7f9a14c1cf18e5e6d8aaf6313b94e876ec0aeb28853c94441f727a09c2da4a035b42e3ac4b881a278d3d30b831969b320d72bb3111cf3c9171b166a437c85409671c34f960f7283a70c73a8b49d4f14359613618cdd514219bf296a578ccbdebc7425ef8a52566057bd2b58dcd877c6dfe533d31a2ab6317e023386d8d400d02153c08605632c138255e1ef6c3b3ed7fb11e1612040c9acd3ba3542100830a37436f49d962c3b59c384d0d32acceb5f0948637accfe218d4636e2de5932f1c50ade5647f218cb53167b7afa6843615043684e5c4a8554e2ca0990111afdf81e21a0d285961ae150f2c04a3ca7abad9ac89d57715e853a90c1df2c10187c142682448e0d8eee80eecc42c165fdc7be344138ee2c45b99da42c3f9049cd05c2eeab2c114ad9c2530f27415f9b2e2f89cef24ac0028aa6cd0231c65a1bc3960d2306cc47d6ef43744c16ad3ebd0006738f43361977c8a135dcf7c629f3ff4de5f41f5db0089bd7e6ca978439764841c117530369026cdec8cfd82190caf0b9a5443cfc7c0f12badae400a232fcd45465c3724643b41855e2f14dbe0de6e2dfca80f9a50416358e5b2e609fcb1ec0572b44c36e2b64f330dd5b03a46bc858cc427c83c39ad8011a1c5d790302ed600438648c6406e190989ad02b9cd01df9ab90ceefe46e9884a3a336d25236b926188dfb3397417d38c66ff7df39b6fde1119a8dc14b885658b45f7cc209ed51d3189484c70984caf48aae0f87b783f7f326ee8efe5a0302415914b2b0aab619f30a59b8f60902b023101724f0e2e128abb24930fff2aa0048060fa71d899119eb138d2bd0b21c103258eb81cb2a2f852b60fd76eaec1bbd59b104c6ffcd196278726c6381395122f31d8225ed07825fa9d82b2fcb245b5b138709d9263031d5af6439ebfcb4da09fa3c73b432df1f023699536cdd26253cf91566ff68ac084ffe79023c44005073a6c0df35da09b094b269ae26ced50c5b6cdc22d07166fb1a7938389605abec7d7d131ed15420a85a1f2adcf90bbe72605a86beb102f423db1df38877b3fd0ba93f4474dec7ec905640bf32d6112a384fbd663c80231cbd89ae227f0de4814473b8cf7770adc2d089b109696454720d39136cc254c821b98b5d6784278c576619cc87fd4cf6fe13b5b46623ebdb8952e417deceed0daa75d39c36ef9fc17d926b61ed052eeb50850501ac524255d8950456e427adece1d9445c65230ac24aceef2a5284ac4c95a66adf79451a881ff6b7789630c2e6f5e6862d8a942d73c115b8342159942c751df95b14cb75b8ffbb86038467c0051396d83ec2c2110bde9175c66331248ea0e9f1ef61cd92c3ab11171c5de1d8813881b3ae6e54dae37c1b507938c3e4c33b002dfe9c37abdecda665d7c774411982b6c6d2210750953e7c410dc54ae527730d3c93ba2c160f90a488e94b8e6930a1e03a64108bf0b889619aa55cd612b7b7f5860d615231e69341f39f054c85e15e256b90c7a90b3311f2bc349b08fb177c7a4e43dbea0c7c9ff3edde4590a6261fe84327aa0e580879b81a294405a8e0b1d3657f4ee680e710f1e5858bbd54b85705ba1afb6454fe469d6e63780f51dac2b1c663e69bc5b1d34fd4210c1688d07cd0997fae63fdfd62d021d065df371894983f0d96e79b4781f0e1531ee7c4bb14c26ed1050f91baec395b05d0a546e1fd5bb6dec37801663d5cde64234f561405e27e5a7618925f48803da6b527a5a301a12a703d9c9f89d8902d64dbdf259336dd6ff05b9ccc9cb1f6545a4e2d405a5fc3c770dbcab7f2b3dd682e3892f03b030da02eeb8d15f20456380d2498c27ca1cb2ebbe2686bda89f05fabf9a46216d6fb9b7dc524a99520aa00794078b074a8250225280d2c5312df4dd9d508286eec6b66eef93fc0534128f6372e097276a50403b21bb1f2dcff1d1d7a6eb61f789bc6f4112ed5afabb73375da1e3fa8e6e8abdea1c7ef1c6825dfc45221494cee9951b991d0efd12726e72cf69aab09f9b18d0029f6ffc183c33ccb89f9f669030366061b297078d02d8c53fa777ee8bbf9bae938f6a7c04dde426298fa0e0d47862c73c72ba96c8b2968fbca2aa1575a6da5cffec49adb5320f0f0f0f0f8fe46942a9b522d1bfce164bae7cd970eec06692074a1e2912595b5bae7f959931e223f90dad0b889b8d71f2bba77b9ec30b466ccd7a2c206b8d616915f6933cd8fbb5695fe55baed9c505f63e209ae35edd06fa7e92e78bb10316015cc3ec3a406de0180e7e959f0d871cf734e79c57d6e39ee4812e27b05fd662552b3ee17e2e57871f40180a1cc6173fa08b67adec0c263167ad5ac4f54ac4f52ac4f57707c852f75bdb0d2152023d0fcfb216bdb80f2ca2798d2ad0ccd69c40f8c82f0c6d45cf0c39dd9826109456d7dca70044d02542f95404493a7cf13c02a01d901ecc2f935b2000a20577881014e111942dd94528b31958e697d9bd0eece21f0614608018f11b30938f26b780f0d1bde41177e1171b24f40a08a184946e485814d17577b9ce5dfffe6c776f4d41409838b2a564c92da594b293e058c8b9db30b75d4f62879bc0fa431971268e8886c5eac14e489c6034636026aca685cdb0583b3b3b3b3b3bbee33b2b2abf42c493e83cc179606056fe7396af288b3546f7cf399f07ec9e5fbfa7eff88eef787cef99e7e2d8af7f6a80792eb5901484e8878ca04889e5559ee5fd61a03f5d798e495e05efb84e33ad371ff559f445dc9020564a9428897e721f658da172e36f7443585ec5015ebaf13c7c05c7e3e886e0f8952f52aa2c9ccb705c4b909667f996ce655ab267f996c7c1b50471e171bc0b9d9b70742dd9b7748ec2c93a1dbc74e36fb0749e44467b6e4cdfb9f151855250549aa6d2549aaac68d1b2c362bb01f65b14e2c2f81bd787c94bdaf6afc0ff47a131f856cd8e07b838ba5508d1b2c9fc27580de1adad7e028a7b97783f3126541d24541a114948ba569174bbb58dac5aa71e3060b666333baf5c8be22362b1c9754382ea1705ffd400cd05842c9da7cb88dfbfc7aed3d4c85e3d20ac725eebbba4f11d6495c61b1583d2b2b2aacadd5ea6141d28a935e595159e1bce43b9044593b2c16aba75756549ac512d122216f49713353a6fddf3152ca4c5f52c952ced92d386cd73aa52e9fb02f739aa3d7ff63987b3648ae31709899ee60e2cd4045222c58d10d110098c42d2f6cdb9d03b84eb98ef412d92cc1e9c10ec330c3ec10c2830d33ecb018292630304fc6c041164f70b0c4c9ad529372eb9f811533b84172ba1f0c121ac96d7773800c2381a744bba3fbd3ef4e8b34c81002f494ae873260723f982ac4d0b9b9b9ce2e822e6e9bb0af63feb792b89e11f6f3606e4a07060646ee605ba8215fcaf7804820061d5ec0c886ff10c2caec637312f60c4a4112d651483bcad5aac4c277bf32b60587ebf66377a3dd8152ee3961bf974ef048e6784b25fe5a5cffb8c331f1670aae3fb4e198f9cf31325be29e121e655a708603a9453522059fb64516d7bff6674b322d321c5423ae7a3f1a840c07d7613502daf0cba76d71f9a58b3b204fe3cedf405f508a63e4c3bf32fecf79e454235549401f459fce3927b333f30e9844a3eeb9dcc1c3b7cf17295d3be68e1d1f17ae13e03ae8fd3b0792b68f5b0fba84f5b78973ce39e5fd78e5dd3e29b114ba6ce0c29efed74ceac103ecf9675f390ff0c8bf074892ece2af030befc7abeb735e3fdd6bd90dc4eb5dd3a76e934c1bf1ef1b9038c6f512fca204cb70e297ecc6522496a14bfc1d7600f129afabe6436339b6bbbbbbbbbb7f6c668622482924516aad48f45f79ec208463a04621c94b308e4619a54f3484cd484249154a4430259628cdfbd1543bc124205a38268ab0b0555c8fa2c669f0af52cacf0eacf3d8e1514bf08bffc74cb8ae048781c376bb6bcc0cfb71eb54d336404012e6d408fbf50905fbe4521eb1a97a44da4829a9dd91809067834872b5c23dce94b8ac13c592cb0c616f4de5473ae7c9463a2114ea8a943e980303035310a7f35b67cfeb9a1dc59298de1cbab2ae5b8fec6bbca08728a779cfdb7a6436b89620367ee5576c7c9152886b0912fa955fe986ac7c6845e545d7abbce857b896202cbff22c2b5dcbf5a26be557545670d558414959a961e7e7f3f9cc1595aff141993538be2b5c2ca1ccb9b2a23279401b1c9742d5e6f2c03c9f0df9d069d015545d9707a830c4a52c4e1b73da08cd396dcc39e79c73dab0119a6da3258d8d396d84e69c36e69c73ce396dd808cdee59c3bf0c6e6186e12e00470846e765dbed36871d61ff7eb2478ed1e3fd2915b02e9b7139958232fc083b8644b9fdf73c18187b5da2ae6c0496faed22ec676fb4d61e39d140e1c1ec30430cdc64476c7618237347991bfa879f637ef896ee70f0db4f822e49e1c36f77fc41c27ede75e8799ed3a0015b2094343e7218f89230991a7944e2481d690365134892342ca5a49134d9fd248e94524a87524a0ef6902ddb492e1e2e6920894b9fc4999142766685bb7886e35e8fcc0a29cf882fb31cf7fc71dc732af8c5339c2fa322cacfa8a01a0f2c74e1c62869248da49934474e59aa22a114033df8088646f2030f6d72ca3d29a51e0dd38a39336de669de4c539c1ee3148249f49dbb9263a677b2055dfc5b929a5a25d8aea3c0c2d69d2dd992adebb261c3a4f2ac73d65a6badb5d65a67ad7563e11bb2ff52668309a694fdf7c29d5f4feee25f6d6a927ae767725386eb521a520bd75f9ec134f8d72578c4dc0493e61462d224b9dea5e6927c3ee34cb4f4f9cc4b1ad712a4bef65afd22a55a39a992aa96fefada7fb84f2777a08bffd6b5f46b5deb76f65927796a2759d3de50ece15fd775595a91549b7a9a2725982451cdf3344ff364bf7a3a31b9fe7549d750e3a4ed3fadde542b5a86b875320c4df298248f29933c26c9534f1635ab8d8f36d0ef43a7514f9084c447d76358c6c512e57cf0a559f65e9a2748aa749e4eb09eeaa99e6857bf6f92f78188cca558f7d97aaa27b638d46d164db0b29e6b55d98a655c4b426566ee71884256a391e5892184f2b31f9d733e9c964372761042a8b9477fce39218450328c46bc40031dd4b233202f403d2016e8096805120376b7483ea79818e0b24eea74bd0035a1b96e2fe4da89899a4a70881b62e3459fc20d51f915cdc63d24ee6da8ede64ae18648f95028e5634c49f9e66497c241787dca757529130d9775b4d8b9f3d6c40dc99dddd644f5d9f978719d5738eac46a37ee692c96e43e3bee89ac15acb6f2950aae4026100f9af4b1812efef5fd415d704cf651102dc182015d8470fd9becb807f262c77e8e9e1c3dd71f540304b2a00d4bf92f74bf8f6abec0a2bcf65141978f34c1eedb71b31418c15e3efa349b8fca8254ffdea7fb3c900ae682543beef75181ecca7e5acb069240d8c7e67a0a880907f201bffca05dfc1d44052788920032818ad0906b957b48ecf7515dff8feac3c46f307d2905d41d880948e55e12c4b89f0652810511c12f5aa4bacb3a5ad4e00046162dad9585ea6a2d2d8c689124e5415ef8a83fe5e3cbcb3a4ad8dc9ac2818cb84b4aec40a62df4881d6807b4d2b901eab24e16ac172eebdcc074412a4802994caae80d3ff13d762022f845bb2013bff817f60648051a03646a992009d4a94c57278b1c9d2c66404c9cc42523d4dc0fa462e2a42e710e8a30036a729da337c47509727e9ba91699b0a015880552cd23d308cdf539334d53a6a6dc73a9731b4208391093d68e809a80b493110925fc28638c90e6ba0909fbd527d75fe59e5726d7e58c853fffb5162469ad562b9381d55ad75f6bf98f37ee6947bc465b41926682daaa3e99b936905455d0c57f87ae2c8f88755db3a93daaeb2d90ea03a9402a1afb815420d5f507a9402a087b6ebf4083e2010002d618c6187777addf578581f1bc7fd1d57da25496839d3b71f8c4cdc373fde78e8fa617b3654862fa52fd8943b7898303ea688b5d5a3d509effa317f4d92ca5206b3f22d1f6af799e6337d4ce32acd6d8a06e7026e61a0aa0df40df9f9963eceeb842e1535e895a841d0f7ea132b0dd276b58f723c4803c2204952777e9cfc1b122670965c10d19c952b66c6606c2751799f2dc73c92eae8363cfdfbf2cbbfe2d9918d1479186371aeb5f2133b3e45c321d254f68be9ae92c99c9644a67c90bee57b32f93bd29c07b63c0c5baec1e94524a2965a4d8a494d249299dd8d7eece32ecc2e691d30d990f13a1943cd9a8bc40929239928944f9f39c73cee99b4d953547aecb23ed29b0b725cab31b1fc9d3e9c8a926943201b6c2b01d7cd47d0109703363b5497d1d4ed2fec361a1baaa9d04dcabec39fd50507843c2024c129d34f7cea0b9363fa04b10dae74113c3300c03fd4703fd470369bf3d04b4df3a087c1ed4fdc8980802f41bca5bf973f3e11912219014841441eca37c10db8382b08ff22dfd4140bf7d1094b7df5b4b773a807e7b08803a862e1040b1dd8e4f6b871cfbb1ea8a56da97764012a76d2d4086481144fbcf0f017541866c1d63536218a519670d3f178bae78071f6518bd6a6cdc5b92ca7c7301f38a397eb6ca784c473231649a642d23192b7372fd39ae563a622a5beddc2f63b5628c31c69dd42ae5ad82e0c17017bcc501bc55f6c5f52e5f5486854216c6f54abf368675438894e8f3f06c95ad2eeec36e539989747053da2dbbfb60fa3b8a217aefbd9e955f184c62b84c93961b617177b7e8e0a58d57ab5ef5aa573816ca2a3b4abf2b260df1273de32e1f38230459b8b5cf70232b48da5e7bafefdf3ddde218ece77f6e120272c6b1b6711842f8c5ffe27e586d9c979ac77b4a1a7789808a234a44a44c498af9454a5bc743e37e00812eee2bb84c7ac88363fa3a7f01c35dac9a348f19167eaf787cc47d6786fcaa3599092c44112220562d968fe8183eba56abd5ecf930a1b9a0d96386cf1e61201703bfb80d201a68bb146007ec3c6f14dfc39c60a1e74939635059c767993b27c572a2b3a457ce743a61a31376fe89637c62c03d1e3866cba1dd0339a6bbfeadc3312890947d4bc46a9e9b7325612390ebe384a58dc4491250826bd081655882631ec02ffece8313d6b213ecf2e603d60b8463aefe1c7e692f5c871c1b6c98618618782787777ae7049052110e2cb70cde653a76becc819970e5fba600bfdc32746745df394cfc86ec9de6744ee76018cd6a6c90a06e783e2d50651f60749d8d4c030527c6e8261f390caee347dc88a37c899f1cc9f58f2a56b18a55aa1f3f20a929b55624faaf32cd041a2e789670a1049d5b65db5c3f20c94b3030ded50d6918d4787153228209218912ed86c032c52301d7d6e3fa3e1b6ed370fbe5360cb75db86d83493c421ce3dd3c20a9916097f9f3e327d0c03c2fbc8201eb6877f5117e99df32dacc7c1c4ee2d27c3b5f04495cd2516f6e73f3e3e40d762a33d23e42a3db5d877b3ef2ccbd935b048a94b2efe4ec74a4a698b9f27b903eeaf94fe5e8e54b393b20fc22cfb03b2d93855879702fe2b40a079232c02ef1634e8cf10b306c7c6e1c1a4aad1589fe3d9c2b845dfa59b4638b46489ce1466c091ba56c9eab89ca3abe0a2f8c91631aa760e17b9cc147ac73c5e9c60712756e5c318f7351d1d0e971ae150ddbdddd10429713c6aeeb6e06f7206cd9f83c169092a287dd8b0b9d7bf7e0ca08acfff7910727f909bacc30890774914f8dd823352f1259bbf32a1184301402e15308997be61817dc57ec78c5972df179eec07e9dd3393eaa4b52b5b5d5f6f25554b67e6f9a9396a675bdc45de7cacfb20e53d981fdb42529f7a47bf275a0051ed68116565d92ef28347afce6ca18bb3e7263f41a277149e3013fe6497dcc934a09812ef229b55624faf73c1e3fedc033fc44a9b522d1bf17bbcfb3e2c9ade1b2ce0c742ecb3d89b1c0faf716bd9cd5eacb819142384608bfe8c082d5d1f341526577bf108ee9db1dbc5ee386d07eebd69e37edaf4bd3beb9a9d53ab5ca61afd18bc1a796a5a29a15d5978fe3dff3116b0c1ff574ab9fc8d03fd5f4d78b875fa7915128a9c9e47bafe3a79229aa94524a2550d0580221dcefef55840541177ee7620c23720d32d535c8ae795a865e02bfc48f567ead2103858536fc1265f7318f8dd87b53ef3e6aadece29b6e9449b0fe95c6bd23eec5ebbae6452f7ad1ebbae4d5411af7e24f78da6a2c8cb1141fc616be5fdf1863a492068623945272c7d07eb6041365bf08c35f7b6c0bbbf7ce9b77d40596089a2be2542887ca3a362358fe4a863f19d0392e826d81000c42b640c07f870876a908035d82c0210f8b948a94bc0392b5c0b6fb10127642b80d552d830938a6bbe601bff85b99560c8a5f6414ece29f53825bc5f5efbbd9d8cf5b2d488a3db1a7157bfc4d903469ba062e38a6bf87c02ea9ae0176bdd332f87b96c1c00c60000000404bcbfda42925a555487a70ee274222f65c6fe950c65b9715ac7fc31d2291e7b5ca552ac8e32d95dda1a93c83b582185578028aeed021742ccbbe665996c5d8c1f8007d4716b1fb9d95d9d8cf59246d7bed8b94405fa454bb96cfd72f52b25fa4d4ef2ccbfdb01b475776abb11f8cc689b621ec27ba0d4dee359cf9686165babddbdc05142919409172fbfd7df0bdb1854db92df0533280e2f2e623e57601c5f531bcc79d38cbbd1ec27ecebafd1b1396871d3b3a00b90639cade6df7f110da81869da1a3ef0311999bfdbc36f083bd72ebe1575f2839b803735259476ba121eeb5bbbbbb7b841452482184437c804666a6504d91eaef084f1cc54793191de440e7caae057365a6685161c5fdb87573fb87742dc302d163b3c02ffd7e06cbd0580a2ceb4861e47ede72726f904023540a26f7f316eb48a173fbfd0934d566f66e6b7d307b7ee3dfd8c2c6f711e18df179b80fee58050616769f7fee43dca3efc447aef5f8886e48ecc72dc6507c1c61a6c75ebfb9c0c65a297c72a10ccf85dd27dfa906ba753f22a6ff88982ec4e173bd926131960eb084753dddea81fbe10848dc631c99eb2daa4345ebf60f7152979ab68898b8ab81e87bfb5edce48a5cf975cd859ddb27ee35247da0bb1b087ee9e7e150a6f3967b4d6bec57e47a439a1417c0ad0737aca2bf6562a33607c892b4c9b1a13905b02e9c0bf78b3934078b2c270bc2f5ac8bebd916d79fafafdd4de9f56117b4136b7c05f6631609acbfcc8fedc61a63a49094015663600696538e0129278eb703216441b1e0b0ac58c460b18265e7fab3dcb0a8589ab0e4b0e85c7f1855502a2815940a4a05d5590a8a8630c2aaa42ab1f1a10a8a637c8650a19b09050ac73d19dbd2dfb7058779bb53b9b935eea782524101600b00a400a0d39571fdbb1e6e8bebcfa5726c415339965c77010ad7df0516c7f4b36071fd597258a26092a4614125719de508b9840a4a22b15fa835a3b05f0895230a1e816a3c070ad4448e9b0b7ac28515c7600faa028e2838267b1427ae3fc74826ae7f8a63fab3295c0fa142371c238f84a4e09144823da721d4d5491a49c382fae815b20135c1a3d0132114e889500b5405151427e8876c7c2485602fbe7fe8891954fc2fd4fa5422763f1514fd2f501747142d1c287e711615140b0aeb5cb85ed234165f7234c61a4c7c1cc614321a7ef1235911ecf9635b5cffaf061557d2f08b63a91afbb1a072e4e458e223c9826241b1a0bc9d942d2aebf840b2a5642066f8c94afea093f3db5efa018463a40bd12c28aa198e5ef8a267958c2ad58f23a7277a6aad5cf9ab7badb556c6be08e3fa4bd6766b27579fd30de0b310008fe2ab1ec2c8b1afb4010e18d38247574db95cdfda35d3b49a61354bf825a5c3e35e0fd693ba4cd765a2c9d13962a451bda44f175fd7755d317a9b03bc847114ba986c703c099d3613898fe427c98440d2e7a9b500bbf86f50a05a19293e6313c23c271f5d357e03663299289548dca5ffaab199a9cbb324def3606070e69cd309f69336d406096a4e99d34d30b314e9a0343b62a37bb0b71e734a16334b9631e8a845a60ff0c679713ec0189f40e83d0b6a2bba8f60081aec7162ada8bef5882df28f6e3da27b7193f3a2358b356adb16adad01218c8cb2a56c31c618a37b9e0e1c90b3b1f5f85ea557567a05be5f98a2a28556341b9bc88648240aa5d4108950ac482402893e9b4824124096ca52b7b31e540bbbdd67378410c62827ac812768d3afc44a39e3a4518b3d42212be2b194526da270e0103d4b74ab92fe5a9558fad57debd1b63fab5a55623f7ab56e0821ecaaa4bb21841042081b7655d2dd10420821840dbb1b42082184b06177378410420861c3ee86104208216cd8dd10420821840dbbb93b7e1ed0b9c8d52f5ca1c6e76e88145f92f810682ad0800732a5f8b123323f0822f2e35f1ddfe0c2726976527432b163e822c1b05c82e1a4845ea2fae0eb43a7717770039b7a790737387285cad2044bcdf59d7dd7eeac3208846114c0a8b30bfca6ce9e7ca75956c6d535fb9557cdae325cb853249215b8304e243088e640d26052081e19803d7ff8f300d294ea418eca3d9f2a601777c972543e9a26f77ac0a37902f672727220297b026764ec40f81fa863ce7620eca6c9f6705b01d644fbe9ed69f211c7db1d6f4f153089ce24ae3fbdc8a08e51b8b17bcdfe69201c609a5cb8d3344dd354811b1f0a91ed4cd096f93577b029a48963bacb549c0dc1c8e597369094a524113cca76dcf38c0c76f1a71916b21574d9f151c6726f083ccaa490ad522b4892406069049973bd6aa72d46593e9239ee6d356c6cbc7d333298747d8685eb7fd51e2d7632c2b9f50032436de4e6bd3676afd93f7136e7b0f8456bc2f65799d9244a66e62889b8ccffc5182111ecf147e8d349cf0f6c27b093267e611f313337c4010303568199638c0d6334b1fc1861c7182f2122c708bb2ca7bb1b3e844a884c8852b2a47442b21a65b37202153b086186e2008a05851659784df8835484cdf57f876c142c8ee743bff8c3cd8706220787d5448e8c3178384dca96e4f8c88902285544e51c2d6344b5bbdb37da00bfb0637823c7fd682db0de0ce347762e61c4214281a849d98dbb78668345b50f2846bb9620342be21f016e13c1b66381054d9029dd7043d7d057cc41a78c3aa926f7eaa68cd00798461a37c7ed152984215322c0edd4e573ce276ce8b28e1218e8e014875042821b1b60a189b597756cf0841d1b10c1afb0db651d1ba86c90c2626709b3a38410bae88a0f4531c6f81042c810724b90ab74bddf245737240893a5a4c810429b054312f69cc44e8146e8dd256f4193b6a2c96501828e1e5cf831033338a30a268a6002ce1360584108d82765fb955cffd8d41a19c30917480cd14413967cd1f2c146412dabc16043854aa6d4efd50075fd7acb32e21588386275451a2598e208191761a193b32367a4b0352eeb3c2145ff7b09c851e9d4e08cbff1b24e0dccf028c829a5ec5a360cc9ee6ed8ddddedd121102e2cc22d077867d67d22d9bd108c6379f560c129e667d95f61c0581f7b2f061c71cb21040c61867d9d0dc85ebedc72a8c0bd3ec344586f0db8e65f9ccfce3a9c004cb4a98f43148a4b80e98196f2826788398b30024b113d2cdb8899142e8c484208492a22c40cb400238d2790c0440c5f95c145114f4c1d0c68bdc20c862c27221824dc95cb3a57e8208b5a8dd8fe2f74ad467954c4db792aeb6887516a53d3584788f28b09a4166d0f1c9597c39a4a7dd40db3e33d26c98f9141d0653767f749662e1289b8bb18a3fee6a2471689ac6d66666e2fa3720c4b8be04a8c8a7c7ac14e8666ca5583a2603603d58fb66ddaa782328ba1d01a57ca0c491b51057a5f166611ddf87843af627c7103c6a8458ee58aeecaa59c686e49accab5712947b7242c63fb3dc618638c3146ca7129c61855b41863f4b02d078983dc72d87208c18d9f53a98f6ef00d967b57e6a6005aaf8b93ecb271806e0aa0900ba5dc8a6990ab716b666fd5eae773eba78234c869b7a26890cb6e4dd12eecd6140d72f4d690664383dcbc75a5ae68220d72f056968aa3e5c607ca1b4370fd3b46e80e935023157887c9027c0413bf3661bf173efa02c7708f0fa24768717828c6181f09995b411e22597e1be218be0c755c771daec3232565d87baef513d77aaeae4687db3cb99fbd99639ddf706e938a294f452b2e99b8235950e3c3af1ca394524687e1b68c7b40b8071be607f760ad5ce4fa57951ea95205fb35cf630cafebe1d6e39a576d1df760a7dc834fc6d553f28d1c48e9fe9a0a15ec7f9dbaa27bbdc43d98c3c3254739f7321cf78eb01ff78c804930f0f3a0ad623f384908ec198ef187f27bf0511c01bbc0ffe141ddd7376c84adfbfa0517ee745fb7e04215d67d8dc4854f3b46013fb974a687f8c4c6cf82edb9feac7373d3e21dbdda87bcdb550bcccccccc5f4fcf694358d6b9e2e6815c3a7c74fdf53baebffe7a181fc5eb8be15edf0cf712c29fe85e7f5defcf2fd7d7336c3f43261ca1c9734c8f7eee15843c99f6cabb1585104208e19d2d486a93a9656ab5e437165dd0340ebf20210956aeba45a9b5d0141be5a37e39ebe5438b5fe4efd0e44a6c8939414358eef6fd28a68218dc9307b8f2257771a50b8f100cf070819671722590203b1ef520c90250a05e27a49ec13a64ddda09b627dcb81929e093e04bec347c6d643e0f872608218470c3a16f3c42067672080b9fc70fc8fd8073fe70ee070ff7e6633db001a184a8b42dd73535858a46020050000315000020100a86032291603c2689b2a03b14000e788846764e9d0be45192c3288a420801638c2186102003040332a351100086c98a52ad7590d61740d101ab93e124865426838aa47e156ac470a030dc7af9e68c612ba9c5e9ed7ba8101d24be14235d3199ad4d825fb395ecca0aae9c9f214f8f020a8ad0ae8519aa3b2b165527c987de57a815fda3dd844cbf56267811d499197889ce63a002cb2655e53e5037030d59d22933e70e049c804c27b5fe295c39134054e6aee86a9e9b6d06d0703a87088f96b2f1c4bdc7eddb3dbac0184708683fb329060b110f0859bd6ca42032f56df06d41d5e6592430f4bbc940150145e24d4c18ef9803aa487026fc49d9364cf0b4e377127b5536fa49d83dbff450df23df07b7aa3087557bfd522e7bc07fbc0218f15dcf441bfbff464daf2bd8eea76d23c97fdfb90180573970848217ce32f3cda0486d9903f2d4331eb7742c768ad9318bc978ef11645794fbc8a6df23db8c894b56dc9967b9480895b44a2c8a66cccac67f748487a5b4d3221339ff33906c33e817f8a48190e0fa7f1a265fd7287a9ecd05a8511106aea2ad847687f73c8de62673a4f37a4a54be923b786d32eef49091b9754b2e83d515c6ed612575b3f49bc64cf2d44a9e6338e14386b6a139ec4f80dc444518fe08c8a2ef8f4eafc187133675036bc31bafe5785e184b77079b384cefd46c46d21a2a0895e3703c4a6e3b3712dcbfd2c7edc1a4488ab7bbb8a7d35b42d888c58d73e1c78431694a61e8ec9121346273e35c31d7301212ebf4122218c1ce61c86eea21c01124a2d35b42d4a8c98d71c550c30848a8db4b446c84d5c173dda4618849d4c153406444e386778d0383b0eecb29c6506ba172a4bd63058513ba26375230e4f6034fb5eb9f33ba201fcb401f571365b6cd176956b16287be2fd1f8411d9bb129d07d2908d07c9edc0187087ec3ce9b3a1e38c128cf5ceccd3e1839e2f9c622d0748b192e372504c99d518217324a8954cc10271dd395b0fef6917d88a844d419d3a359f554d52e5f605522f43c444562b21f462c8aed6b64a2a790c588c6658839d54068e3d66f33dc61fd5a7c7e08eb702dc31d6ee4436d18a2d64a8c91403d0b72f3c8ec22415925212f7c3b74aa099f13798542a4c093382a284485df541d6867aa2a2bed0bccc72b6ab40225cc071ef36bb21d79e9badfe2161a8a3da9bc48aad2771c14f736612cccef5673447cc5ba074583f788c426ba80964f7f103304c2aea872310cc6fa2ab4b8611ede124f9cee19f4dc5cf1e84d78e51f92388bd15c7958b32a5a894b12faada39ebbbee08a2ca8a0490d1457875aae395fe031bf6bb1123046fd7e2ee6066e7d8c230678df0794c9135b85666596614dd5292e73d8ccfa02a4db633f47580f9bcf122669b29d6d9eff8ea6d7d7b284a8647755d8296fc91cf5360726c38479fda01bc9856cb8d1dcc4e9ef24024341ff33046a219e97c971a3fcf614824c7f7548c3d36ade2e43a8db811b903d2095e9fd826b6496bf848b0e29c2b10548d3ce0221a6f6100c40a14c20f6ec9bde602a35247d9d00f2f9c7587754714e9c82f01049866350d1fde6d28353eb843340255a8dc9cc1d7ae933bb66a743e0b1978df9ac3ed71115e18de894e09448e0fe91b49931511f8f894ebc19a61a750744019a1206a8cc27928706c7e56662d6ba3e1ef65f163e5ba0fda7c4e6c2811dceaeb653de1b612db97ce8452dca1d38f2555b2c14162e5bee8d283d93658da3479b42eb7a59ce4c6759c94de8ea508ddc0f1775efff53135a94e7d36e4f883c09050fd4fb58839450d9e74a8259e20a157f6d7f88d1afa956fd7a0611563bbfb040f541ca65e5bf7b8520df72dc3e5ce6cda85a30a01934d68008549cd6d8c9590fe425ab4747c0285380b23ec8b75552d2ecfc7c531501259c86304812ac778b7de70d1a25d2eeeb07c6dadf35f87f8fe46b7714959c30a85b34f9aaf55ca672c296133ed7e83443d243b76a6d65203b7dae3350380735425cbc7767dbc30cdd65edf6fa4ceda1d2d3e8304a65ac09ef73353d0b4dd87b591bc9fad9ed0ea25ab71f200dd6283395d4a955832a340730687edabc9f6baac6721fdde17f22e5cd40396eaa6d0f80221d8c49871fd379243c6a11e6bcaa833f369c6f282d42dcd71101e0a08befc11218385c4a60396c3a643499b4bfc3d7d8b56e87544b73a1d9925c17862f852176563a027aefaa13017b906a936a4793f25a8c2e135d6f918ce003048e63642e2ad7fb325d634582c27ff12cdbd10d7f2e81af15c3ad65c4e92ae701048c832ec2f54e94e36aeaf3add007f188381ff9a3abb29882b1a6b0d9372fa566892dd6a85d0d27a17e7cc0b0cb1546125812a82b31d1c60368d58a66080c57affa674d9fc7920923868e1dae6940f9bfefd2776ba64a7cbbeb22a5582feada52dd7f79af28f1c9d85a6b235a9d7b1b62eea25df7d70bd63d3266563b90a5032093570bc87fffb3f10fe12f43a6d8bbef4e8c39b64ad854128445b1439a29ee8b088be8929624e8865c309edb706de0460b5de32a2621c632bda4b9fba2c1b2872bd4db8b330602ebe539f7e0294fd30a6a7f02b1dd6eec77f6dfba35d1f2db869f0bb8204441dff59a2ab68f6e9fe9791bef1af128f09c48c04d505a93c95881e455ec577acdc92a044ffc777a6112c726a83226b3e7ff94775d6a8cab983ba6105c4ab8f8ccf7b7efd566de330b2f4aaa12116f6b727920baa9c22a29fe0c10c2794b7a0e004692fc1269eb6206fd8f720069b4fb97e1db8a58664fff13f5a212410b72479fc72ec0927c69627deb5f943b34bef718d8877ad3381abb491b638fba1cb5eeb38d2a69d06f3d1fc1ffd2823f1dfde39d898c20699f5bccf07a41a807b159368d7e9431bf6cda516db7069a7e9d41662760dd226d695c0b695200bca0ad931215e43382bbfe2c896278a014481bfd7ce410cbae8d51220c33dbfcd187a948761f2a3c96a91cead0b17ad5576d8d15dfe3b4be82d61838ece372d127309cf742896cfa84d684bb020f15de50abb3e55621bc2002d0d593d88b1cd2a5e416e9ff0ce34faca564e300732c16b9d4774d35226c7ce40fa45e0b5cd419613a4f97f972e994bc7717d15eef4acd9979267c274a430ee0a02e98b18e6becc2536cf617a442b74d877664e4f06d838edcf5ce9039e45c15043fb7105cba6494dcc889a9601b11977b20b40dd20acbe2a4d820f4ebb7093742d24a5b612230029f4be81d35d7619bc584590b2e44b85cf253b529436cd8d6746d5a612035dcc5c3c3bd43a5086690490b8b569969fd6e3a209f78dfdf6a3f2bb3862606a5e651263bc97c0f143450ce91bee8b09a083c2f92921963d776356eeecc22930a926bbfbdaef581b70a7e7d9ac2dcd12d88df4b7ff48afdc7a0488f280bd94ed965bc797f612a30eb19149d9a11f00590c1496b6a70339ee29b04c9431412431914c2abb0c962f7589930099431ca2b024e6e0c15bf0c916178f107dd2643e4af5695ec94fc027e5f930512e61a4a7341e7aca4a64945508bbe7da3f47ab43147821d1c7bd9eef3f795e57a06147e3b8eb494d06af6b96bade9b57dce80b6fb32e5c89a534b6891e2f7a2fb1db70502df1f8578c576aacdde53f654bb1e9ce6f5145b69e1ef1848da4015cd18ba821eb435825c003d4310982374b43f09aa373862aea26ac035aef2312d4b4f4247460481c68ffe6f41be02b619ba376111f410b4aab47bc2c59379925c2407f5db658acfcb6364e7d2e896125ab9a8e55e11fbd1df91ccff5f0339c4971a54559212a0ca04ff7762f48be97191bca465220f511b127ff65bc7999395a5641523c8272e4826a069bf0ba90b30175a79ccbb2b298f395b7e72a4941cc0293824fb5881b8b3266efdfa8fcd2516f8818c4e00950036eb877a7f4b945649de30758f0a965e227abe25c1b8507d8f0419f9e41318ac1b17dc0bd40966546fdd3622908db3cd04d4ff14ae7cc28493ee26121456b859a1e2666afeaddeedb9bee03c21ff45e6fbf5f51cadf3d40a30a85071e9a340550f40e68bf5e11fbfdba9e95025a873b385000a5832d8070822035b864436e8664862a19a9cb134d404191135d4de595471c4debf11f4e09849a426d1b35426210930b45e99a411bec73fbad19420092b3d474d355c321ebb272a2e085e396c30afa78a1d512aab65ea3e08c4ae15ef0009f4212c0cce4efe977da0056ac3be0c7430b099d8a708f2015500a65c9e47c2d070986b1f422b3009e551bb8fa315dd0b4a797541e12e017b9a5066a4c419734bcdfcdb3e464ef97500535ea2ea69eb8bcc3ce7048dc1f8304bab049271d9e4216ced0d64204860ecdc1ccc79761c78cc3a2eef55091e016ea035c97fc251da9c294b82ce3c8a9e52bb38279a187eebeb5c1ddb8b3404cd1757c570abdb6548d1332881af652b0777d85ad6f11c0387509cad6ea03f24d657c7eeb844c2966adfc1408c8af952f408418edfb8789c96b4568412dafd62cfcd81df661195170f59918ce12323fe2fed0824e6a833a869c367a307341b3823c8ce230306aeddf8ef9bb3eb5673798b707af8c8e06e195c0fd40c638e2b580e7487b680418a06e423a699d61c1b158d7e786c86d03ee3d275ca9558878a98cd6e21eee309dc154a603d097928a79f7ac980a5ddc9b1da676dd6e3f1bd17e5a286434592f9f864a75ab261bfeb84611608192c9badfcc43616429dbcd45281b5f1cc889da7004589ed7bc6398e1cc43b3456f0ecc26a79529abfac02052dba3b2b791bec356840131378008622aaae594bc253156a975853ead7901236321ab6371187f5ac1c6f57746d53c2ee483c499486a1d2a5628f563307aad8b4c0e28681c0f81106f6737cdbe259394e8301886147e998eb7ff0e733ae3310f3628ed81712c6436e9e48bad735af8bf4c9e2d2cd30ee49bd64f5812f501b7f33a2a547b23989501bfdf78e677d5c1ea0d79b3a175536baef9957aa352e930e0bb220aa7eb482ec70b6b668000f34fd733600a6c8eb46153c8b915ceddc6d22866de7e3edc15b5c87386ef820ece1d6ed6a808fb6e047c04cc86d2b850c445be16cb9dd8fef7d34d0fe506db688b058dc22f681406bcd5babe0e1cdbdc48ee40059e78c33b6f54e18c91df1dec5e674018647233d5d779cfe8e3155fbb07720520d82d0143e22575412d872504812118761a233bb5fbb777c9e016342bd81a76a04b08c00220442c7baafadf68dd02346989eb87d591118e312290b6ab364014e3d38d61ae087ed7a95cc3237c5c87ae755f6cf1a4b978095a61b16dc928d5ad7c1ef9532811106a6977a3c1a8e5013b99386fd0a6e2324c65e5480ccf2467016edf2314df6ce545356ff662c8582555ff1b16a1404ef1204ffb99428e52c3f49d55ea6e13584094c3b7bdf604fb279cba0cff41df044ae0b0ec217bb72d7c65385eae96c2c9a4781d86cfdb197595770ede227aee4be50839ea8ae9b2bc61870f866135c0cc0d98a8d823f154ea2492fead74c32b91192562959f4ad47d2e5f17dba75ef41c2d7891b3c7adf7dcc1b20174ed74c129b6d0587c591a436db0a0a9b2349ecb61114867392ed6c133c2ca724dbda2e48180e49b6b14df00c219f5bf87da5ca504096f2fdd41aa01bcf10da3e19a1fdf17abc0ae186ff4504c3b52eb5f17c7abc599e25aeb9170500185bad96d926c234620e84634bba03eb318c41ebeda0e5ec77217b8fcfd55ec92fca8eef74d6f743c2390b7c6a793ea48f3d39e91638606d8f32538ff25919be4d0cb2eb07d3285a61b1fe992f085929dc914893a0aaa640abd0add90f76d098a1164cf63960dff8ff5c2cb045cce1d089700a44431c245d96b62e2ec9d8b69e3070fcd6e8ad70787591d5eac121254ec1ae959385bd8e4988a7fcc2980f74a29c1b0b05eff793885b36c9647e3464c9b2b26c9a2e9c8386d772a2035beabb01f333fd4160481f9d6b4528b70c23c0f9c65a5e1e9cc0666540b1d7ed33a1d19b95f9f6ea3ee0f4df4549d9f94c32b6741cb5eccb8ae2408ec57560adcf1131d192da3d0fc12a0ef5fb3f018c7e81f4a9606e47bd38b0da5bcf99df4b4460603231739d0c1c38513a18efa341f75845e38b4750f2b1a05e9c8fc7e2e597f2068ee116b3df57b16916ed1129add1e583d2b78dac4f017a6e69f9855d5cf33bbf6e29ee7584d6a839f9fc900dd0e16692350745c158a5381018b2ef02cb6f029714a4878581bc19de8b93b63064dd38989e9187408b2e58664b950329109428c5a2ee1aa972ed4892f05b590f5605d4a6947752748fbf67f08b0ae8a6afc23cb4ce1f44e8ef012a7fec36bbca5ec02f847d16efb43680875d4154764a5851df27d75d6a24a19efe5f21c4f9af255b826bbacb2b706c4c732b4d5aa55b6da1fb4ad0ccd9b7078b0524b427a43d1d10e881fdfbf8163f428501055305255aebd32873a7849bb8e52a68e4f0226e3dcd3c2b616720c2717d86d873090d44624a0168fda4c014ae83df811195bb1939d99ab3ab5541416f60eff5f84142f38312b23d6849eda542abd48565e90aaf8bfbb2723459d41c3c13635b15d006b85834bfc88d81c30286f038ac8ea734b82ad5c1a2d528d88b307999de771be5030107bfc6eaa3df4f65dea1d9d1d30ae11a903d983f49919f6e2c895bd0d11bd909345dd801c8a04f61a06dec0c4f9ca61b5eed455c2092d985ffeb02a5bcd03c896931ea4491335b37d661d7fb43dadc0b48de9a53aceeb83a4414041a1affdba914d46c7dd2b096f9d1a9be76b67d0424422627c2cec28c0e53c29a8791d0461a32d4be2b8a2d3750b501e1c03e3b30649a9e7330f8399d2182e84371b9ba87548c8688904f5cc0d35e40f5c4e8e19610e0230184db2af45b4bd7c9b4ace4cc6e046e65b15556397086e4a954dd40a29e168218ff896f81bd93fe732d1646e67a5d9b81c2992075cd534578eebbcc3918dfb172e77e9b2b1c33fb1dd99458fd912ec4390cef662b2feed8e0753c62f9e29ee5d8347d967bac50957b994eb49383e9034fd8d4f6b0da4a8e6e53fc42a83e91443640936e58eca35d29fdd9f6a4e78cf10380a765a2403d8d841d3d55002a7b55a45b930360c933149227096b3ac7c42f52dd11cacb286642745433b75668c7e7cc28230922ca27c939e4881bf39d8feab1347d8a06377911a9fd74a99adaed3f116ab56b5bb99255769336f9bd9428b6b650d97a04e63b831d92fb299223933f2d07e0c23e1c7c4522c34489f4f2f603bb6eaa7665c4de1f2221c03a86e30663275ae60f20bc3c06d9b1c369b13585e0940d53694f903730f3d3679bd821735a0471faeadf6fc7803561a9f3dbc012ab494c2f8c56cea0faff16b6fb5722698480da8d2006cbd630324172d05c333e1872bd6d77012d6e568db6fa7a977a7abdf4f253204c7da9a9e43cb0d2c14b37d2aee79a85c1e10305757a804b6f6e4a60b7c909030acf7b522b9dc09d1f08d739e141eb68c88d5d3f85d16176dd06b6e011d50ddd1a0e88766352c3526ade19592f249b5195d16a018da5b11ae71eb49664d6aeba92b201ee603bb8310be2aa7a5946c1803c540c64b8d24637ea851d9a32b0f786c0c89ac504eeab1d5b18f61b30f1abf5ebf98d13b32be939bc7b2b53e26b4ded8e4b764c375537b376b0ebefd9801cebe10e272126c0707a92453e65ec7b3d7bc1954fcb19e81e47b3635ca54d7291873d93c0364c840cd5900589efa1aa76cbb50bf73581f7cc8e8985d426d264af5a8cc98b1905ffd93588c51ca60f3d90992f3439aafad074ef575f512426790ff65ee053704744ec1510b58514e686c5fda458853cdadd3a9a7046b250607e5b11291e789b1415a0d9064cebd2182fbb17e12edad582b7ee157573baea0a608e7112aa2bbbad7f80938541e8a202570bdb6ad130d571ae0dc6aa5dbc2dea1a963cf133ef6eda617febba9f89ac19dedc16deb0bb96f511fca7a451e17bf7c4c3cd1c27c8469527881c8dcf0570889dda247375bd35cb29da4df8193205cdf0d33c8264a2284f4a534670f5196a25fe19ed304e4bea3763c9d26e60477001e739b5558455ed7172984f62f7714ef06861929f64fd257b2bb1e8f83199311d4dba936256e4b0054786b9e57af92f06a3778514b0fadc6ba2ceda26c80a5e67a0c7e0da2bdf5a8fd1a7b5eda312eb777697ebc33a381fa69862c1342386078b4e35e8a7ffcdce6aea3f58ef08008029a60a0e4a1ce7ae9fab255eaacba3dfc8afa2345649f4861a2aa4f22934bc9f37e3295e650bf5aff9057345d3e53fa3122825f67332648ef4388195813912f68e02fcf7e0d3c15376c817a8b742539fbc7dc518145a4c71b842b38c6f924c364b3b9add2a885b905a9bbad3133b1136607c37013cb742abf1c95d697b39c2d05be243976df232a810f7afa4661c369dc699e2a3cf8e3e7be4346a90f5fec93fdcd747b5878b14b2067d5af989e033c6d694a626fe9b7c93900fac67837744ade206e7eeb99b3c402d3792b669ee1763d0cd438d34341463fd04813a32bec9309d0d0de1361f67aa8006de2b9dc0610ef8bad1ad18e457418d3d821ee2e4f1729a49dc2605a85461a79bc681d5941200541a86e51d98ce95275ab6861fe932a85a9057a7371d2137456efbe1503e1122e722f7c34255ab9c667e49314ec3801d281301c82fa225417c4edbb9b8988b8dde0d6ece7545764d18e16ea898fdbea77775f63701524856842f8a28b19b0daea5df5993ffe6e750248af1e6027ced7c2e64ae2355effe62c9c84535baa90780c13d91a4562f03f3daadb1b781f0e30d8da5e0c44950c321bb9ab70becde82e3d1cfe64d1969bc02966bae80afc30300f1d9afee04f850015fe3015088640866411ba6714493b3f637dd6636d6856043f2a365ef654ff002848dda37e45d2a895005f4d23deb509d4ccf868e1ebde73435c89c060e48dc3d1c1eeaac5db455ec38d1d4cd2128745d2bae68adcee8ab221eebcc8fe4e858eca4d6521dbf9bf1dbee7cd0783443fb1af8e027f115790d38a23c7f3425f79beb1a4eb7e75090caa879d37001e4cc5348b08d4abb21fd30eea30bcea6d12aee54d6b835f5088d76ca64f97e2c1861fe159f3f0eeec0b7c0a5eb18774e23ae1ca3a354f74939fc3b10203f2bf9945a460c96e3442021fe03a9613d72698755df7ba8e86b8437de899e5391f098fbf06321d6b9ba7cf605976938f8e0d955de6abc137e837cc713c324e384b843b7c247bebafccd0059042a3d8766a0b5f0840cda63b2dece7eb260ab246589789916ab259546b04250ee54050bbb6a014bb5a5c3b9278b6c693fd8dafe064f43f4eb89fb8adf36bb4ec6ccf689dee315f423e8b528a30ced6b3bb35827941010013a4a750d60726e2721eda70492dd3f694a1c43b4aafc434328cb1abcba0d7ae3945727e96c976adbb0204b8c565b800b3dc8e7fd91738ce88b38830b7fb728426976e335426f07894593245ac8b72619e5e9d9329225217f32147d307012266916eaa61907bd219cd16d366bb690d625bd67a12c2a574715b2c716786fd2528d7b6ff009c410b713048300c48e31e93aae908e16e938aeabeaadefb38ce216450f844bcc4f3f70da3d077c6e3f831814de3014494983038800639dd6c060b45664f343ac673160d043b2f1bb23d605b0f051340507e71e4cef4e218c4fdf1aff3a4b51aa64e6ff30c612bfff2cf02a8faa82b58812ff48469787a3fa3bf1744289f325954190e33a16fbdcf3c69c4681a5b1ac2fe32c064923c561bb80c1687c82528992ba94e200c4e8dd99a32d4f2ac3660fd619c506731eace307b8e3d14bdec14a2dc869dfb7cf02b6452316b3ecd26e2cb06f961d378c5ca12f9dd13677a0d1b46b24f508f02b67f9082b948a848f2da0d6804c6e8a28a31742229d774bba89c3c092eec95f121f5c4cd7749587d37ade9658ff94cc5270ca0455fd5758e924a8e0f5779c10a86ff6ad955812569e319a323c9b532d00a0d853cec4f59d7ad436555e82838aa7b2d5d89fc5842980417d08fcb533aa708865072c9f0e4395927ac1b51c5039dd051b7c4057f4c2e2a14491e4ccb4b2d920d3f7545ce8913f26546bdcbcecb827d1b0a36d7993f3f86f1b7ee628e008e95017deacd64c51519bdd1184a01431a008381b4beb900833e269dce59bc754206db69136c4b4dec9a94deb568b57a803b91cd017860d3e5b23188674f5453f16a15058b9a325092c9b4ec73f284973d451a785d1c545920f0d01d8d162c8af0a7522b1708763471f435fe442cfd0c39bbb27245e23c6310604bd0631fa29e95c0e39a5f439d9941678811385cc3aa8640926172aad3aa2aab81c12fbc2a8d7f1dd0b55144e10652cb583dfde1a55a31d20c8696b6127eca11d3d3de39f8648dd648fba62b4199a97f7fe2012d75201e0fbe1f38aba4e0f4c0575c9f8a4c4c24d7bed166d0f5a7a4764321510717912677fa66a2d0defc5855415dd4226078d55cd7b5033ef5218aea57ece2db65ffe27e3669e3bddb637d4cfee3cbd2914cb76ad0c5899c9ee1c9914cae6a60db707984f42dcd502a60f1c38d0bab076618cd08a5790085835f78d4e0982bc609977bef4f0c48d392fc2c975486197d96f540301d4cde45c170d691dfed5156b40b2c976e577afa1dffb00dd2ca1f5351a9e46bca558c6eaa0f3011ab325f820bcbfb78ec8f0858f6e0320fa2341d27269f3b3ba062fd8311d36bc792e3912f813d53897e22ea5b5a02ac37075f678007e7af2294167153614b116484550b826ccf663214f3c0e2190016c80bae11991a432cb393f7f6ece7f10b657c31a8a8c6db600785dd467554f0ce7f35ed33839a0018f5670ff400fa8ddbcdce55f91c8bc8f9217e8840faf9065f6529dc214c0637d4a5295f9ca6c2f62b5968e2c37d52c8b5d3aceb8ae3c85c7507b0a5ed7bde7967cc629ad437a884e6a3d8a4208d211a1ca48f8ace5fc3cee39342a25fead3174403c548aba9a45ce2392e12d27ce930e0bc8a83568eab69edf043ac7e26c489d834da3400b63079c56a13f71e08449842102f3d48cd8d926ef33c96e33c29d71ec2e483e2bc6ce74487360a2a2bbfcb9bef0234bdc5d4247900e9b54f6c66d2b5313bcf555136c3fe9c151b541d2f3c56963fe5bfbe413554e32491fba5658923de875677e1a69540cda2119e8ca5481cb073a551e73fa60923e1cff071cfabcd16ed8c6b7ae83b889a3b079a38ff4542f90a1888c7613c5bfccbee71c6552ffae8c338f1341ec204fa70050765a1fb7ac92a51ea5a42c7ae0097bea5047a94bd471ea6384515ceabcee6502d06e399af7d963adf942679a798e5e20149e417d3833a72a6de6d782e109f5218676cdf13ee9ed9ab46c2e83fa13e861a946e9b3545372b4705b3673d71352e9b301e98b0f7efd9daa0b4e7b2ca324824f6c2eb4c610b796b957ce06422a0cafd357f1e033c402d7dcee5b226348cae0ee765848087c1efaaaa6c542de8cc4796c05b49c65d0b731c16cbf4e456c0f674712f1b48f7318d52847247267fb3cfc8c5219a6736d1ffa4a1d9c0356dc059f2526be31ab2895428c51a58437142930738810bf9e8ab81c71f9d018da3310d652e53c4bcad9498d5bd4f705699039e4f288c154c823b20a0fd29c6a92150e604127e616103f197896f79d7856e96209bda79740b7fb6c47715c857135a443fc6ce195d76c3f7953d88076b1077d1c267b989df22b69c6868096e7392e4c392211092f0539811462570143633e51d3415a3ecf2a94f6ff746b8d9cfa06ad3326350861ccabc009471a8bd13019a3e3c216dada0cef4a22e1f7cb919ab0c7ccd1e7d5558e0256eca5459825f532962459bd75789e10c8edcf0b2f8b0b67c82b4c302c6370c3a1161691660209c5349b11c5df13c56aac22a6477a7fef42066a79ed56e55097b9adf1f055458f57c32c1b1f3a355a3f52f6426c9a6eb4706065d573270542954e5d335ef946e411c8b6e6ed3a641986c9ea37826be159beee181c843adc0583460acfb76c630e813d5290a1ed35bccb14e578fc6d078b54e22386669b280532d02a87a000453ccf50ebd2dac608632487a72825e41326143e94f0dcb37863426d258f137f05b17f9a0f7a0ae96b6b420b7ae20444d4c54a2b424d9932386702aaded5de2bba5969d50f6724f35c6359f214067ac4fe339a0f4cb8ab974b086a84b0bb45a050b9f95ea834d055abd576bec6d3d9b02846c129b84c9f9a1191c6a5d0364a64b3845d67fdd485f1dc1f7c10931689d667fdb245d3689d02bd01c537fdb300d926b1504b6d0ee126917c0f16cd7bea5d9d2c3809ec470b091c1fa669644222d1901a87a7cb327b80def462cfdc2894dfb6658a88e952cb81cac8d62ef26bb881af118c8626cd08b2125e3c758ee5c87e308b1321b1288cdaae075b0529c1b7e721780de9af2992e144e2ddb604afe8618a643d1e436295c2c2e0873e81fc282999b56220c978096b1b33d96043b9fd7a134c131de9e7aff8c88fc91099fb89cfdc52448c7ae9d0ff97375c068911c9962d368e9c145e73d10ed49bdb2f0ac3a3dfe57b9d0602fa551ad43b15b47a53e2f4d1546d5e70ea6a8f9be0498df6a86f1548f68b396a50accc553fd75a526e672c6203b10c73b747f0f7ace03ab0bc4610604024a20b1cf702e2f00e5526f55dcb374716fedad70f171eb280768ab2fab0b9dc39861da170084651f29cbf0e3df3c0aa50279947b34c1b00e9123496b1ac7b12fd9f773b717f8025aa65b6238ce07331611cb5f13fa44875699b8f7838f736651db0ce950197e813ea8233b3f14f185c47257f0593e1abc0a353f18776f3a1019c5592749eb6b5bfb58b46da6d280ce140c7cdeff81e4bb532939e85a629d22e74d6509ac4873d242673cda20272ddab3b11750027a9c268e5213149d84508c70afe5c2ff4e523dd916228327feaf6c01709382a3e74d016a51f1a7f7e849022242df29bb6321bcbaf1199c659d55a71c32f9092f960277b34a571ae2aee67645ea566f6251c24c6d7b7582f84c48650157cb04774311a009bef87dfac611944313182e86a9b45e6c0cb3cf7d82298eddab1a369f415da7dc42d9561bc448755dc43edc29f0b005bb05bf6b646c01576e7708750f6465a9a30136448fc75545dd562cd2f3c881c276d8ba43746834d45651e6e859ea9baa42d6b43f07a0d308431e11ed8a0561a39ab11b78d6f5f2ca6a7fde2ca3eb26db0b3935a03677e1ba2a82fa519cca34660f7b0ced7f381d09ba218e6ad6de3474c981b3b2255e9f1a5a68dd630d0655325b55309d7b9a36939108d8330c58f8e386fe9b520337aae30d9e37be3273d9df3c2072dbad73f179a990d5ab586699c802d74dcb4aaec270d1d5eedd276289448c8f719ccb3901a9239f10d83430a33057fac6e2c5f1d138ff5a54b9a9a6b7f3c64253234b242c4674753e47610b23e551e83a48493fd61a4a0df8c5eb1c21e595494b0f2c01bd839701ba631174bff374f8e107ed0490ffc8b27a674a65a77ac66bb828469d376e582a7836e79fbb9dc7aa1b2465b3c40d7cb82730f39266fceba6de48148139a43ac5888845171fa5a557426e43584c3c7b9a2b5c6baf06e7223cbea0042f633871462315d052e7ca7c52782c492fc7075ea6cf0fa9d0d2f58b8fbffb554be871e2c0663ed873df6cb105ca78e0a0f2e28fccbe7abb7214cd8b3f2990bbfff7e534014d11bb1c84192038b872b94c310eb95a2893a175b599aec252fbbcb8ebdb7324b19f06139f00c39cd8dd5a19bd92912e2224c72ec981a549886240b38b3b32015c3b40bb3e8f3bc6b30297b11dd8bc0c010bcc85771bbf22d8f69cdadf9be79d014261ed59148fb78a0ff05e64f7b0981ea9e93cd154af2105cc1f7efad6ffd9a80842ef464d3b7489b994629edc34e3b92f2d46cf14968dc7371261c75e2fd29fee804f430ae85a14f51621d949ddc2052e8ac32c6c4b606527aa2ca7906d14892752da6f8a94db2d305b396393c722ddf178f58ac851d2bbd272f464c4e2b6765e0af282f3947a20691239b314f5a750de59a52439d8b83d314c52b42bbd84760212f9e38488764a1f4385182242abde44f6ab5f041c0a6f59f62c2cd5efa37816332f4ec4d707e63d9a0c184bf358b61d3b17312b299602463ebca45de9ca2a1e5c91d84b595e1142c627b530fb0bd67570665402c41cd36ef9d3a4ec01b9fedc23db678c33c4dc24a22082756510c2f40a59495c42716c2dd15c1ce35f8579fe0785d70a1e4c0392470c73a5ca8b50a58554b0ca131ae0e39362cfe0c047ad06167cfa5aae6de065d7ca2829e4cae39035a2498068c256fe5a55f2bcd40c6a217e8fa8095ce7195d585385af557e0c75572f43ccd81cf6cf1574f1570b990a808bc533fa78a179f21628ebf68f6ac0d7ed911e39d037a26397cf9b9fa360cc10c3eca748bdfbc0839575bed0a746233f1578b38b99e365f2ee3028a14778b27e96f196835995749163fa37937913a4f004bb3f7ea06fdcd599c89e1f3d6e71a9816312a99e6e2e815a61008344f1600af942fc7c06605be2bf3d29530371ae46b2c7545a01bdb4723c6a037212148059a14226256145a80b62e4eaa01d6e9617353e170629a15ed44d33de3fcc2820ee289052887707544729287d780503b56899458b05c6fcae5304e757a20d78d150c9a041b16bcf05729117c70cbd2644a75af2b7874ba8b73bfa2534805f33a2af1300abd634d46a0e2c85402bff089f4cbf3ab14b5c092297217968ee6514e3f1edca20462db4ce22dcc98c76d4164312920e8d6c4b97a6176bb8c874cd88156ee098bef5a63346ed384c7e5d96b1d28b6a7dde8bbc4e10799c20cc55aa510654e4c0147920fc86430f4ac4e16c7292b77366380ea67b1e56e58f2dccbc54d9147904a4fb173a22142b6429089426a6b1e0ee3b182e15821fd3ee7e6b6d89d57fa7c75cdec8fced6e2950c1a48ff737a6231ec685792c882415164e12506336678c4351e05929483483f13a5c0180baaa460f4e6f60e044f9f46861a1a7615b04cc5bf0cb3507342b61364ae538766f42e47e6a8e9ead65a5966a808cb6b5cf5ec1853aacc4240018ed7a3cf6b6ea056874f1f6a0d655d52c703e6fa27be61f3b38383567cea03533d857d695c8e986af2d8f392946a978c8165d6d6914e78bd64f9698ca9935bef30c1dfca938ace49c5f53360ad2dceba1a7b13f1b1cd2ef63a7a52712f3baa3efc3bd21db6b0622d667d2c7067d3cb824569032436dfc90031a094f621807d4f6881280d28122c62746c0b4e81b5a796af88d177295ca83edaf0fc4e19b939b83febe694f31840b97a508161bd36c6f74d64f9fd55bdee4270fc5bdc16de3816e2cccd5a148e2e065ad72a096242ab8b9809924e0fc1489a53a13bd35c833369e1da8cc408f3ecd65b4b7903726f5215326d32650d688788f33b5e5c9a2c1a89e2fd11d751b2e3d5a0300eac5bc696e0d31864d88bc045197731792357188c6b130ccb02f1f934221c116b68e0c39106eecc89d9312c91b051adaa6278311abf9a0f23899cf3639d088c6d2beff4d414b3042f630b03baff9d227a80692a83b1338760965470f51d8dd558df76d856535791d711a82a7ebb260312fc096cb7b15d557b34806b269f7cf86486f261039898a777362f0a3fa66a0d1bfec254254e508a0e18fc2200511b92aae5629dfd4cb4cce5828ab0140f739d02de4208ed07aada48164c7d2039ac7e1e2a161e39a1d0038a151efd79f99160b6c2f963d2c2d0c7dc095af6dad3e2482491a944d7f70c37ac14eff19d2ca41c348d8e92f668af536a4cf7bacead5b76175d92f4b507c88fde40d2bde3735a24ab0c04aea020f224c404be780834945ca577e1575d1baa86865306581df4e5d090bce7f6a62e1516a6ae8cd44c2ccb1dbc168011b2a7fc923dbe98fd1aedfd4f67e3b5e1e8f16215b087ae91a67023546a488fa0da401a5b681cdc0f9334f43a2317162cafa9ae20272a261ed6a8dbc3066c812bcd7b825a4359cb1672cb5820153a99eb1647faf2429b850c210141feaeb84695b9515495fa32cfb09c805cd0640eeb4144ea3f802208cb4f56041accdb4cee41cbdf7eb77533332d52d3a454e4f7cdd0b954c8f53ad66d34d9d9686573c17f3f21d8cba79b68ad530351f130c5ff3490de7d96495db9383747810e74feb3f513e04d421be1327f32830b7244c7f143e8bec0285b652fd2c15c0e594f5ec3f50855170663879ea7be890647d79439734dd4358e0c811e5f7c8527bffc6212b3e6f694493d973592c005752484e1fccc0a115645e7eb17e9978fbc948878589c6c8284254d219405b80d7ab12d28782e0ffa6885146504ec3a36c1f2d08b5c2702705d85adc9708a8e59397c62d118c9bca08b920047505c47d6af5cf3c88d7ee09e098401196d4268da785cd8d4bd1e216dd2cc9f142cf42c3ee5cb42552f75d71c3e7ab30fa73dd6299630447e9f047e9b8a0cbb157f82ff28f76524543070eb2f53720642f4e0efc41e319fd813e3887d2366c48475f54d300ae63c2d1baa8c6f82d4e47ae2c192b9837a4cff191fb7e83fa3116621275b0732a390ecadcb2e8295faf343f326aef6e974d6654386ab4c613d55e5b8fdef2c3240fecb216d03c0297ae5ef4202c81eacd458b576124d44f18ef57fcb05f5af3b8973b832bbf7e0b45fa4fbbe311895c9acaf61225c615719f6445c59aff35bff4684e1ac69884c15a987c3809871c2da04b2b9e380aa357687208c5902c1f7c8a5baf6ed69fb5b044c82afbca3a7db8a1189ac501cc64cfc08f9f4936aae81af4e70d9f0105373d57ad1581308dab505b29bceea8a1168636dc606a690e3cb54e8770819ed489ece9e8419c088723e054397f08b96dbbacee468844bf436dfc3dd734130abb39611fcb136ed2b8368409f66aaa4b4d3f5f0ce1cbe5b19fbc6c9f2231ceaade6c76bb7f64347892225597e9c2fcd1484e54115e775fe43b3f4fb635aff1964f9398967e97c4240f0653c84385856ef852a2fb9d40a106731a908c5ffa6b1ad4e113852c9fe09f1827a4b4b62dc5a222b91b05a2653c8c2539f07df3180e61f8ffa515d473778058afafd39c3406566b81bc2e648fa9a28014b7a09cb7107b5acae83eff2874e0118e1c2b00768268146ce7ebb7b79ac2032eb70a2469a5f68207a5d06a7af8ee5e5d0380eea4b81e7b29a8dc0a9b13800d9c53d0e911ee8f5ab038bc87f74c696a08058382829149844735677002c945d0f7c5994d091969f40c1979f217a315eb46153c2423acb8418fac0c10123b8e2a771402525451b1daac2984ad83c0d20e859c9cf22bc8d009321fb3ac2912fb95939f9d7e2db376b3f567cebe0fd1581e4f61e3f4414d14fc08c53604ed44ebecad10d8fc773e5f9be86dda09df7a709d80eda5ed90ce5dd08fc90ec218077c39188fede931cfe628f1ad4ae2ec8688a18c5641f8a924cc824cc73fd7b994d28117e056d94830298b24d350a1f8608355df163331a4b339745922d358412d321be1774920594515e2f44614826d7a01d4ef5976d0d3f141a66c533fe185c3b662828a2eb5707314c444f809928a4f4767c1a2140afe5dacbe6190d86e7ede005723cddb0535f165a880c15cc4b3c5c9083e6274044356a59a7959a879acbff86b03747fa4566a4f0f6d319cbe60f355b51e683b4676592cca0fb1dfff3b1530991af334f028d11880cfcca445d29f3154e43a4e287222758cb3bce55160f56fcdd8e9291c3d9a8c3a13824e7807431dba8af74fcf4d26dcd507fb63abfdae8476564fdd2f8c4021de22c63460c736a0b4fed2a5d4e8563b28bbdb1670edaa5a3d05258c8f4ce2ce5a17d9ee58631c28c891bc4a973738e107b9a0120cd94c41aeb30535f168791cec0488cc3a120db779ac1eee293a10581bc45146196bd6693bd0526b1c91a2e58da0607e320b5885d4793710f39e1fae8e5dba61b7b26148fef355f2021492eae56e494f526c10b2d87eff59fdac5e13f4e1b500ce94170903ab2e1124721cf20d1cc508835f552d4f3eb13a623282cd35f427ccd9d5640413b8238913fcb85f285b37f624683e9474dad01e75b7a5d5db2f04c41c8eddb96c11a2ea377593304160458e65da77ab80a3cc24dbe6a036ec36ef4ce291dc28872c0d61ebf59bb0ebb10fb7670d7b22a4b4de60dadd2821adb233c3b0ce1bc414d5c4e028b6f950f32ed0640dc269c6a2cc16c4c7e6a1d65cbaf963301c91849b0d647064c1c51eaa8c07191e897ac693f37e86776b8bcf2989cb5758c7d73c39e9704425fde2fe9eab4c7c6c64c89c26b935d1b443587c60203e57e00f59bf18164e195e326b1fd262a765f8601f40e573d05d7efeb208346ab649f6c7838b5315788ffb6a5ff85026c96bc54296d1215c7d63122f8da9b17e1b0da92f4a30cd60c1b71cce694ca2d755f1e0769b7fa93b635c1756122ce293bc588c42c10987b3e4ffce6a56c5cf33f024eb51394b952a2f63dde516677e6fead4efecdf732b2f2618744b9d17f9f11daa7653c344aa515315f3090901a5337ad5fd84c8d10525f486b18cd22bf17ee57591ef03f5047bd663a0d1f8eda33068d548593ac027e8ae0ac931ea9a2e84814bd689ee75f5b6bd0c648313026391278909abea1403bce29b09ed58ce54b06b68a91d44c7304120722a6ca3c98ece2751f86b8575517dfbe8ae72b1a738bac2dde677184663bb1ceef07ac5aa5aec2c427968ea87a84dab1c3dd31358453a905ca4a145c9c07bdc35d205a0270bd2f18bf5cbbc71dda89a4a58a5324cd21f92cc659a69131a26bb19c29115107b804324d410c947b72f29ef2d212b8d596d39b6ce639e527dede45648bd51a66adaf2ac93dcd5aabe53ed8985513695c32bd5136a22925ad777aa86a96a2c16e44b9504e64eba186e8198aac8ab20c06c7734e2238c11cc7dbd795f901b261a7be8352cd72dbe2a1f77c995fa19113b66bee2d2e098d2a5812cc7ba3d027e91a8a821c5a1c24dae8784cfa9636fe5497d9d460c20e6607702f98f6c4d70a19cc33c8fd5abcfd9732c9994031ee30f16d354fb8964c7d8de58d15369b7c263518ff58321f168b05b679ff053916c757ef39c1df8d4df841694e4eb948afdf2d764756d77f139baeeaa8280b8ce858ee83659cdc1ed4a3dfe5b89c44237bc0e585ec5155cda0959621c84f01b8c1da63b861aab0f25bb465e483d8ee200196451269d45fe494c3f16f2a20d04e8dd52c7545522e1f4d9a20b03c79a9ec798036bb722f4747a387327ae4696fc5298d589fe5047a9ff8a666484ca84614df52934d396635a27202cda90e48f73d4aa8c61d212ad92b845a5487eadbd11d13fea57dcb06a5882b5b6a54f6db5e3170ea438f12d492bcf33c2d2d37069e0ffe83a41f4ad25f6380a33ab039183e22a04c3e43bc98b9e4243b1f22f1a52a5d65d5e7b83fcbeefa8c5d9b66743ee9010220995cdeea9331e7153c155f176b9fbaf54b9bf13678827a8fc605f2a9ad28ed0b592d7c81f14e5a23eb0c87b709d8c8a2780795a2e4a6a6a4c8e706db4b6b60834edd5a4e43423964e8c15ad63c62c984aa1501dea14a2acfdd6b1c08db703325866ec87e999796435e79c3f4f4b78def12c38dc3e2a22e44971feca5a5113ea1156f787d4309032f097210f42055383590910c50a864c2969c3f29b5bd52a28b47263797334455a06c632445a852fb1d80c62f90d3486ca053f9686f15f42942e567f8cf44c695f0da64d9336a3bde59ce0b4ddca8af1a6026cb2dbb032905141282e3720744fc38c4dc8857ad2de8c591a7a9dc855576f49971ce450888b2a6b8a77113ab13358c1c7b3e2443f4e60a6d4160dadb59314973932b11f8e111bab5726a2e0788677a291b1d82e59bb8e63ff8312fa163c55390d156c9b37f8cbbfd7376ae6ce56a703d358f9d42581041b7bf545e5f63cc56d824d3e25e8a2185a303597a7fe2b309447e8f9583d46669d713abdfb304957336dca8174536c08c224e445d9d963e35b069e0b044e430526a9e1527ea0e5437556a7ece458e6178710c79380de0687abf99a0e6f96833a6459e64720838856b39fa6f230445161fd363a9d8e6304c1f68bba87ef132f7ed29274393ca280edc6de0f1345955f036cc41fed0a04fa24161206e743dcb752cd52087a045e713f6235eda7995d9a7bab0a1a0414c642e6772acd7845153243a59b0895425215b45c9cf1a844f2a23f964947583488011559f81e540a5d454d2db0bdb8c48582f57386f009e39833834c24c4048e53289660c066377dbe5cc1391ef1c5e05a41d6651af4968323d3a10b8afb1f8e53885649d7d32196bfe8782647f52d14d837bdad09fc3f51934a84a0564aa4ec2abd52b5d07d286e02212507457b60e51a2c0244ac2bdb42541fe050cdda4cfdca203a6a6bb8c766620a9c1ba9bd7e88e7329e6b9ff8fe6104d1d2f97f2b8148edd6d0797dadf1ace8bbd3ec81151838cee54ab14e9c0a453afc78374b8daf300d7a2b96bf63fc41e00feee6e099d183229fb5646c13273ef30d9dfad2f43450247d66d94e32ec532b176edd265685d27bfd407cfd7cc7a1689bff8fe8f4a75de8609551d27f3882d2138912e476ba091e2d05af8abb55c8f5c2c03dbdeb4da82fd62ed647f0d917a142e5282db624ea5d1477259db2f82b2d48b6cba253592ee3a66229f68e9ce2803655baf83a78bc9d59f005d68e5aea92d5a3401901b723b80c155b8fbdee55861bfb9e9ee15b31290a3faa56bb0e1597c57c633b479fd3bcb415f35cee68de0750ba803f6d7d51acaf18044b55b12dcbd8528f26f381933551106ec2373d6f6d295304a740db7cb345f474b59a1737f0783f84020dd95deae1e724c6acbd34bef7474f8e014ca1deb43e3dd146099b694ffd78524ec8a34c9317e1a6e7970617fbf9b5496cf5e78ccc6e675f3df26d6c91555053bf06a1ad05d8bd6ad02ff61700f4b92939dfe0c34f637e2d1602adcd103a10c2cb6d25c09579342c197ada43053a0f2d8c4316ca0515f6055ce632a88f325c4761d8150788c3bf4757333188740c298f0aeb0cdd995bf70c32d288b8e7402a7226ae6e213bac10d7f42916026676901845a64800f73b31ced7e189d0b3ac66abc21e36e3c99e19eb66b06ba7e320a99ed45fad25b95341fce741093f7c3100700781d90f64bf21de64760678dc957a5d0a86b89e28304746cece8f405ba81b61b98278005a0c9badf50c26c4a9bd1d19913c60da7a4fd4088cc4c74804e42ae20a42cf9bf9afebed3422f5406a69a483af51576405353ffea1247754e614d0a29a243cd2db41f80974dc436e813a1d9bdcf055aea6210041206a802097023bcdbbae0c6d06634f3998bb6d9b6fe08cc106479b2fb8d4a58e30cd9802fe17c54f947379a5e170a1529ddda64aaa3c234948bada990f11ace3fcf8f515205648a462c884af163c677a8b226da3a6d7ee354e5c3228f7710da44a80d162f759c8a4271f943977f37970da23544a0055e05d2e44b486daa7fa59b07203cd8f1e17dcfa96b10bb7043204f6d0b68b8d59a02989dda625c471c26733d7e311b31635243dd2cd8a38b656fd2548d8deb78f5d5b348bfc27eca81158cb44b65a7d43eebaaacb21d8c32060d22a49fb5c75d495a30f282c88f59087f47ac1ebeda1f0a1e522be0341206398ed5cf64bb848a48d72c4a63d5a4d80454732983004845c980cd724335d8b2d526c19f830199954c4d0c677d53494ed021039e8ba0198a5960553581c1b63ccc447ab74aadfd5c24a10dbd8b7e1688e820de8a558a6c95edeb374d62556c6fa5efb884ee39e5ba40098a9626420184940d91078bb2f916e8271f72c894d5a23a31cefb74e0d6464ca83282ac1c76275af9b56fe349999274ab8597052760c1560df2903e6ba018683de2d65cd960713037def9ef01021d19fcd573f57808a38949f464590ebf95bf319cacedcbce47fb12424bc57ca7ddd33d7a465c9c193c0d5b8f9d595401b00a17e8026eb845c8c7bab5bde26863e13037beaf60ac94bc2c53697fbbd7fa8ac82dc07d65f15070f16faa0563e51b31c144fece966d7474d5eec561c8b565d0dd4e496d0469ca94953a5ebc2695491f42c72ccdca6612872771a2d79390c00366e62e8689f49cf85628dc5e7cb004a905b846b38ba1d3f40c4a9130c1fbaf80c8d7295a161103d82c74293ed8d46178615b8e3ed4f006c1b0caed7b55234bcac82948123e6c5b0a76cef2b4e6f89bfda3651208e3f4ac9faa62921fe9b0ac5c15993f1c8c1e24b5eabbfeac2cc1651b1f98ffa1aaa26564d61f4be4aeedea81e9f5385f3d2cee30e639367b3a827948b9704e807d008aac422d925f4b7619747bd0c793492505f243267c008de7194931c74f0e163796129747820730e9c63bbb19195f40e2573d695979968c4cb2541a4e9237f93d2de6aab22653126339c5346324848e0c83273803011fd8c0f1ff302a30eb385939fd0659cde704b5155312eba59b08e059bf0a65437a75cd153bf25664e1fa67f88ac61be1821859baddea5d31aafd8a8046342fe38f75efe157b91fcd194632a754b16764a273ea2a930f3983c453d5dc3990be807f6acb0884b84514bb8cd2cb279bdf0023dd13ba641d7d753d7ddecc04602e99574b427426a97fb9434ad1bf1ea213ff9c9a3fefe199f13add95c8d5dbb51bd5617b7fa9c07439c9003d2cf20dd5ee15397288499b87a468dc6eb7a2658b0a5d1e2644b4b825ab08e496416449a7fc9d8f8b42442839b0aa956e71529700301aff5958acd077b087c7a58594eac27a27df849ee7ba8130daced8311b2ca821b056199dd01279715508bcb96e243213874cf72e3e3a9f595af5e2360c728ee9e0df376d2648c4616f2582174acc91d951c31ffcea253636b18449c2c35c3cce56c5cba8f034384407ee1272b5814802c65670037b11552302d712f12d94da8637d914048c081b9ef4123a4395da07719b1c79e00d9417dadf50d863741c7315dc8d8a31c9d217646d009ef2b7048169932111c65dadeec61f0fc690c26e70d1d208a140f4300abbf2febc19d35af05360a771e9844d60dbf391dbc5949008105ee2fe443a0884b833474da65180cfeeff7ad50363c37916f384809bf8385c84618e0e331d6eb2a61adedd969a73ad0356a7961c6b9574bc88a5734db22213eb6db2a7f1b2b1f64e7e7ccceec503fc2fe405db87a6ec4cb2ecb2975b2bd3b4c5a9ce50081145ed2e2b0a880e29960c750f514a9ae68e7dd8685d7c524e02ef2f4d16c81bfe6a395ba03e286b7e15366db1bbd619db322b0a8e671d6985b512c00fc65def7ed2429f140accdf08cba3c0c837e8a5c354e7e99b2ce532c9d3ac723b470290468274e7f09e66e93bfa1ef17d0604086fe39f3c9bedb99c371fe72e8dee91c37e5246757b2acbcd71edd8fe792e1c43f8a4a7d3838423cc809725602913108a738afe61e13cfe27bea8c5472404cac6c8fa6b95a5c42025733c898993498e324a1c74ac498cd74293c39a1c4b5608e43611de1e9796152703372bacc5a88dc084e96f9fcd1bb87e1e8b10fb1e52169987ad431f111c405b8d61d57a2a4779d986eade81812dea400ec4b4c9a7b6965be8259a8b11679089549f4a3d4c694cda89020846c3a6a24792623eab060a8ab7efc880ac2552ee124d9efc252dac64564e11946920e5c63317d1060ee1b50f7173f4e6b5653cd097542a6a5361960c67add63d5a6f34652eeb1dab642b4c6e71ddd6511263989b97194a1e229c7d9210219bf77389d637559cc4dd071a427d091a9b2cc350413b9988db78d103f0ce553ac89afb10cfc5bb26136106e6db53ec04ab8302493f93605036fe148b7609b4af88d58d1ee2fbcd982af4183a500aebbc814b184987df89e406b614e7bc32a8ebbf4e39340fb9b20ce8a75828d6502747342b99b58022086348a251212a9348c07a79aa4bbb3c454c2e4f5dc51fa73517dfc5f538895c9db8186ff1c24f4f98e947d843283925ee5c7167ea87cf5dc0fb58bacb2914748f4cd385f1279ff224b106a00ab673737d1e69ca7f125f5711e600e98caf7c9f1057df44d55fad9d90fc81d287e779d9b834397ef8dd2882a37e720b864c3042e3e62de911365409b57f3d85b9219474ac736e8315dc55fc74ec83c555e235c01d918b8de8197cb79a9d7a7156ce7b535772fb432e8116ae893155e8a73e628a8d196d42f599fc62d7571f2f23bca3cb7cc170305d42f5b0ac432d8ee63cdc8730e1a0da6e82f0bd74173716a23828069ffee23ba99b3a2a8eea24cb38db1a2b382c9032bda0e28e1441ade704106ec7258b66f9428830eae6c5be71702c2d3593bd8fa590e0e159e6b1bee40f40b9a9d7c18ea598848db22c1b534863d2145b9658e37c6bcb6274a80d407632850dc539a93eef18a5c1517f110330d5155036b1f9f3d89baca20d11fd8e6b26aa1fcde13e1041da0bda871040559f00c2693d4c634c3188a3173ae6c94b748dfb6a0c6fea2ca483b4a0aea6252dcc74865c58c4125f1a27624ae8c90a760002b5c3ef3db75d94079f4d227ee5399e10d8acc531092187aac8d52121d28e655f96d4b4355c933180a8987e7c8cb948bca6934d71ebbe0dae765bccae0758736621c52ca092b918e45451651d22557e770cccb324303fb81d0421a9d78a4ea07c8b5f1a2c0271c0fd54d221cbbd3dc1b0efac601d913cea0281e1f2d13867645ec6322eca2a9e081b3d0dc6850765b9d7c715c64d551c65594d8ee0792ff9e08f9a9c090cebfca2706e743ecf3b88e26cbc283d9f6c77dbdf4822bda1f25eade989aafd721db91bb84de96fe748379ed45437dca8bb03ae3f60b62c3166a9cb7b25ca62b740b5fa44183e5a24fb7891422db1c62a9cac403a65fed67602e511deb0b06eda7113708344e7df8435db0a6722b6722501131e51a144ef3d4b29e79be0e3799111984eef20be5da8c3a08671e7cbb16dd543211398da1a3f7c877eec80b71c3330aa4da1bbeb30b4a9fd8f058262e506c25df2e5eb65712648af65af04d0777424147bf5e2d83dbe785db1f978581d9a50a02a99ee1ac8af4810a224a56d159618ccc18bcff17382e90ce264dae68c7a341938f5393da2a74a634f52b533c3a6e87e9336ebcf9b9b0c154c6b8e04f0fc318eb000d54effb8d70dd59f9ec97f76f0fc6dfaff11950c6945783f7dd1948376f245e7666fca320476471ca6dc8645caccaa07a14491eb4199036ad25e0e2faf5ec5fa1f0915ca2bf3f22ee331792561ccd19f2aaf3b9bf415537ebdc8ed72d7acf9b05c3705346ac34257649d3b239d569be8fe083a2154e5726c33b162b855528846ee19e01e0118461d60ce446595ea9f2982b1c793cd53b9430b2d4a02883713e35006b9f3088135cdda02a216e06e986503d8303dd64ad9cf77e063427fec1e2b721162eb2cd00e6ab031a7b07c1e9169912a26cc2efdc72272a09890e8e09b68e6d3d85941ce8edf257780bf1d91c7d453de03bc58dacfef0c2f228729614c7779f1e90367aaec27cd61b14867233f06f65ecd2e9f5bc10c4a3ffe83d6911d5d9ec65a7e2204e8dbdc5362ecb4b84c8b2cbd66d1193a2f27b4601d386518bc7a97fd0e0b7940c337b192207089fe5b82cd35154b408e8c966d26bf18e245c7f53c2c5db7330b1f70e41bdeba616d09c73ad5246dd0ada2d4494144743762789e729d04b7ab3160cfe410a0ab383ae2367abc2306e58229d4288f884ed8b8556941725eaff33b5aeacb1611c0f67741321db0f1086da2cb18f5081076ac1861c924210b618ac91a897e53e285ac4f4c88a5d52085a62d425647388c516ffe3d18e9a9d6ea0df849afc931e95924de035bb80256c711ebede43786b1c64b98ae18f85d57b0a2cc03b2e6c213029394921489fe292fcea5e7a8c24015456e723cd358ca4535604ab0f7986519a14504c9ee2b647cfe8b816dbc2f6119a02fcb8be92d699756c226cb965ace4e15a49a5fc5401925c1bddab523afe82609242f0ead49cf157b9748afb68ec769d40a2a6f193b737e21a2fc875b18eb809ebd136f076f415d2a8d1ecb24f026409ddecdcd6fbd51f96ff66cf16e42c87b4aa40eb26f672f3af9b485ba501ccbc64c2ee009ea2d787b5c4483af0df950b2645e57e3482287867c0af37cf06ca69b5c4da0c71aef10fd6d82771c4edb388ae5b3514b6f69a708832cadde038b0e26104622da9fad57b36c16055223db8d92132eda392c6363556bbc998b5c7541a54daa49cee764821ca502a2c18bc9b1bd1c73437bc57bf67a9a64b21808c80c69e193d02ee9c209f86820025da19f3ac47421a78fb0b6faa21c3e42dc6cdd8dc0d8188de934269ccca70735c4d0cb447e6d8848f324ee20ee243764261c51bf946f352275f2309f1c0635672d442382deac9732c92a88ad506cda54ca468a7203c048f74ee42aab20c7de69ea1eb7e75d449f5cf9512798d17d3022810966946a6591d8684feef57542616bedc8347249c06fd71fb50a12e57c453d6e7956b0d236acbc8a38c6fb9b328a8e9f29b24b64ed0ac5e5896308f5b8b961e1e0ecae400bf0a7643600f91d99a19e360257dd1430bb5d6de366ad4a72ccf8cfb8052a3e10ad829d215445b4c4629bc32968de7ba7f625cf142f2ad057155827158e73f35994548e95d4acce234fdcbd7206918a619286ebf0623d3ae41d6ba523d52b8ce4f8591613425434ea9815df916b6f185dc73b30df034a06bda8b8665baac3936f8b7100aa87d98d0393c71f292448895528a4389908f6e8b7a2d4209132f9d4540feb5c7d74917b4307f7198a6539fefd91ab7ee182b3395f30a828ca0f856d454664269ae037f1712acf0e760ef43e70db98139a218577d2956e7de18d09a691784b9c42c40276c8e0d208fec096116c6662d86f07db1f7adeb11a182cdd90427e34df6301a9379ae3543e31586a26f72f64219f716993f88f25829abd98d38c67f65a8fa219e975075445d56df264510a1ab286ffcf883e0acfb29640196af2bd68eb424884583cc2a595430de5ca15f63faeb083991ab41f4a88cd7259261f1058c718f16958493c190d5d713693dc01cfba7d48b8a695ff75e9423f2301256bc9a665325bd40a1a706b705f72462d1a11bc6e9625fd01123a87438eb53fb983f2fab4bcd06dc5588ac9fb1525bbfe4c119415335ac8458d1c7a204edebd94a9b7bc191dc43733fa99fb2b80d06e58e45a2ae99a6fb60227994554213304a6d2a32f433a02f555dcb59d3b904426a7a6f8cfc86b86323bf5563deb409c2ca3db1d9d28e84848eb5a960bbc5a9ab473b8655f7350481b9b949c181587ea3c4733ef52462714043af9352919d93de8a29294f267cf55858bca6b2b3d46c94a8682167a0aa4ad7d7683708fa5676714cb9b6a0087524b2b20e94f110251580ebe28ef8f5e249d7c8007bff93702d2f14446ba32373f65c5fa405d9af85e6f836ac2f8aa98ddbc240f84f6c1846d6e37757a32466293e7318467d00a7fdf63d0b1f624d28edc67403511d23d1e5b10cd0f87af5fe8813be8437f8feefaa3970c6f0e136d215cb4b39862b716421b1c344a744c73d962ad35ff52314c490435717e0aeb2e01684f7f763d3e1336675fe880e0d986a989f24256561b55c5ad8e1ffe4ecb444bcaba5dd7821d3fe316a567d2d10519a1c554e17adf59766f5897aca5b3f5f9ef988ec88684d9c8aa769cf412c2c89b62ffaa87cda7fcfc59cce80a38bb55aee0aed728e28bae0df21ef26b7420d60e2a64b2f21b04fb31c79ffe61cdc5d7f83f56fec31d4baa159f40958e3dc165fdd1387705edca99766982cffe97112baa751ba28536f889252f7343c2deb2e51a9af053970f02e2deeb34ce9dc9442d241fa681598eb4969b4fb2aa81d67090c660354d1605447668954f814c7f34ac106a73ba5161046f8414948636913c95db28e5493dd6f811b93227b5857699651af14ed41feaee114e9d6e5c4309e392d95cef0ee40c7b134addc5ef2ced4d4b4a748a9ef68dad0ac5f5c0eb10950b7eeb3488e117f7730b6c4b1591a6f7c24b6026e76f6ed193b93402caf847b56f9485dfa2f6fb01ff0f9ae58313100822b9dc289feda11c79f5b086c11076945dc7d53e926277a09901c01bb0ca01e313d3f82ddcd69dbb91c996d7486c6ea784333f2f06e8c6d945c8172f6d97c8567316493a6c691783a8210d38623d3b7863c5f9e888749a7a88d782c6c057239425a6c7afc0c6448896ba1534f26bd0dd77745e1a1fb7f2b85870e187e10437d14e9fdb2fb25dbecf624bc25bdf12f99d0d063ad0568f0147bf8284c1673e793a171316bd985c8496a08b21b598fb436f4e771a11bf5871ef2ad3e824d989a7de1ab47e992ad63a3e9d1cf41115f61a1391281c345c8d1abb1b96b1c39c9127ac9bc18d3e3e6cde3d26aa87e82835856b4b21a6e160dc9144797f6c965a1de122cc30bb5c1cae9a167198325fa1266c2b3a0d4b6262c0a0d3aac40f4ad94072a1e39fdd6ab35b38c2d9cdce21cf5b7cf1d330f7d58e362c997703ca870555c7f66b7f97af68357e05e186e1c358c1f487163a3b53802e42beb208cfb5089a62588af56b786dcddcf4fc3f01180890e71a5faff141e5a89e38a6f347302b75141ee6e1115c0b967d546022d82240905416c1288df2cf325666c0ee86413749713906e088e910aa2d69c6414c98c88f3bdbd191ba2edc8f0336556ea6f30dc4caa24882ece37ba5f16e55b80a23f816f1b0854bb74616e5e96e4cf9477698000941c09117a7d140011dff9cfd1e59f5990a12c6c1854a0489f5e04cb5ae71a81255821b52698fe49ef533b86389042dec887cd5d0bd84fc63d0cb04ab3cf471db0f183f6f70f5b099b9d32818dd37a6f12820c8214c99a8515b7d203632e9c8ea1642c21a8c706186fb59c3a23c56447e7135c0dbe7f411d394591e7fac78eace8fd7e96888286f3a47fdb5fea3d167cfcc5cf2157c7be1f657a3a646c03dcb38124baeab7be102217da9ed1f46e82bbbea0c9cf4a2df1cfbd16ad54f3324266f3246bf1cdef4b72d1d6d21c7495523972e936bf92ed38267228a228e91702da96813d8840f8c0b4dfbce8082849547791cea0b901039ebe986ab674cc31312204d3cc1144e2e5e3cc6ec4068e8479c7d2b596a4ba5a287be65a818e8c2e7c542af851830fc1b42d3fa0a62c5304e682390c806c09f5c0e15d171b00808455272835111459e6122058a19ae5267860bb8274ec9cfe423831f1d21644af1d8001f2bbedd331ee9d63bb6817d6f55f518994ffb2b4ee846425a48251b4c908ac9fe1932af3dd84cfed4e70dc38397c44c43a599ca18859aeab5b618629d2c8f00ce4964d3c1cad500f474db044a8c8301c3afa20481e0f3dcd193105ea93a6e64435e01560635cd9b7c4d42cb6cc0515b6f7660f19fda8b34726b69e9e9667c580afb9bea93affcf37e123cc7e08e14901b4b26fdbc40445915ede5ee061d0f946ddc545af3d18c9fdc28170534ad36c22fee9d03614d1aa6d8bf5cdb6f1a2e696a1808e5e6a27b6b8056f8508f3a6543789155031d28218e9335d8b15a9699591ac85a503fb824853db4320b295729270b12f721d8cd0d441e2431bc6d02aac0a15e6040925d51075460911d9fdd909ff9bad9b9a16318621ed8146c29c06fdb8be59a17a8c704ec455070f17566343adc7e47245c4e90be617f638e5d3346a866f18a8d31e134461ac643f4b987b1867bb9bf8edfb87e100efd2d9bec26524a29a50c6f05e005d3057f6b259148d5dc61d6fbfabe7154a95a600bc6fb55249148fad6eb225d7cf1c5d8eeb0e9bbc6b0c685f775ad38836f2bce487afc913ed72799df5f6ceeb0a90f8217fc3eebc83b6c3ae9f37777ee47c0472765f333334adf37f38e8f7ecf08f8e8f7496200f6fbb83d6cd7a123eb95f3c1ff401da4b367db2fd761fcfcb49dc32aae562e182fcf673a6d169647b13c8a7c948b944ef26a63dc590abfc6afb566f1d4a352a97f21c94f81e05b1d12bd42e955a7e3e9218a176dac7c8f16afad19f234cd967f41a19e2517ca88392c0b0b4bbc817a967a5bfa4915dc561c9b7a55eac995ea532bd37619927cd4872c78ad3ad7fc67c5c4ac46adbfa4b5d6e68b4ab4b1f2e38729f855a9c671ef57eddf7bd7f7cb76aeef4fbd2cd380a8383c6c51e7a9c401e0d7bb1d745fbc544bcbcbb7fcd6dd978c65a3b9fb1273d8eea2bfd78f326b77116fb090a894e5d530accef8c6fd2c26d1c6eda40c46f5a4ea65fa57af437faae294bf3fb7507150bf3f44a17ef51af5a569bb490c00ea53a947a1509f7a9d5bea53f53c58baaaa35e65bead38d6a64e30b2f4d2a76e18659996fa196579d6511fdad030d3e982e8f8557fc51bf8556f451be3577147874ee9d5297b499d3a5e3ef5fb5952bf22de78499d28d45ff106eac95f99b5a71e654ac0f6d4ca297bf9958e7a2deee8487d0fdbc97fd93b759eb21490fb224f1da9277fff0af9a27823458ac06dc5b1a163e57bd88e8f6cd82452368c327b947bf290fbd2611ffcfda298e37bf0b978c39ee1c5b6867aa5de1679a2ce527feddf59abcb19d33f54ff441c9697f1aec59d0fe6754bed27d364ca3ed194f11e56ebdc7d6491d8353dca54fbb4f5ac8f2a4dfe5dc3305da5baf2b7d0b30a3def1f999f345b1e725d393c73914cbbad7c2d6fffe5c997a7e7efb678f5fc66d40ad3ed583a09d06dba06b708823b6cfaae3b55ddd308131580fafe32c77e8cbf073f0c2fb7d69459994d62c726d1c193d407b0ff33593ae9c43b2cd607c9da15acb85b8b3b6e4bff0928dcdce011622caf73f7197e78cd72c5c3f83563961fa1bef0ebd3cb3e58cd59795b7b7d6d8dd7f20f4659ed75147adc177ebde33ce1b6748fdbd23c6cadb3fd251d2cfb6e6e52b0660fdd12ab8c32bbb3da1231e6a0cd7f9081e6a2066dee4b97c2955debb66cc6bdb3c2eef0ca3dedcda6ef7749b7d5ed0ebbec0e3c31bead2eb33bddaded168bad7818531d7f156fa4b4cf6dd56423ae118df965b68631c618e354afba25b99e3f7c19093dc3e899a667133dc7f46c6b2ee1e6aa11c616ae0a5653352bac562b661d043181a16576b7dbed2b5469f463d3ee808c3a37ba253674fd07d0a9cd7dd50c6b79fddfcd39bd6cc6f43217acff06c35abed3ab4caaf1a66bfd46a3fe4b4381e0cbf6adad2bfab5f5b620ac33faacf7de7bfff5dd16ce3152e8f1a49ea6043efb3d6c0af6cb7a5bf7eacf9f1b65dfdbdfbfa2e27c3c2ef0332d57c529fd7e9a8a03fefe9bfb3a79d8ee63b6c392227dffd8830d7dff8ccdc6a16f1e8efafebcf7cab8d2efaff4fb323dc43c344bf06bd7f195e09923a7df4f4127a7dfcfe9f77d744ccaeda004de5bdfd65a6b3d4b7fbfcfde6b499fb3cd36db9c3329ff259150b8af12f8d59d75b63b1b745bbcdbdac180131c90f6eecb16c970276081fb12bff2afe1d7529112edbec2da51b8af7befabf6d25fb3f61ef7257ee927705ffcc55289546badd5dab18ba6edc16d6113bce0efb047e0b5f75e7b2f6873510846592db2c045e14ec0a642b6775bb8c76de19ed10127dc594908d7da7e5a6b8deb59e6d7d91a85b9667cd68b2b10d6195958bbbbfb52dd046921f13d90d283ae4eeb203ea1518aaa07486c2041fa0d4242aadb53ef5e68b05fa8382dd418b6d6d8213bd549260632db4586dc57de67589bc1cb0ae31dcd950b467deb55c4b77eed022c3ec336f2668252b61fd34f269375ab3435ec724977e878ca56401de4e7d03e7158b22729da46dcd723c365c458697fb9c313dc252cbec0a39023b001a2e50d4459b7da0265963de20cf8e445a753b6d2891c30913d20aff95c182e8cb2530d75bbaffcaaafc447dbffc3f06e9a62ccbe29eee49eb16932cd5795a6da89e7b6ee690553910908752703cee34522119126d6c4196aebbe6833cff2765ba00ba5c7a626fdfe69051e9cc3913d640d0823398293f327a3cca983e68fcc976440b414ea5d69324b9e4ad353062955289974d9ca5c9dcc15aed2dcd7a1a4df550eb5753ff7261963923716094375cdf49693ec69a1bc95f66965465289324b9426388b3b1943530c4fd15682872136cb1e5e4eaebef307758ea0f9833abfbd752e9540319f6ca71adf3ddb66920b6eedc983d4c30f6bf8b774d0fc818179940904f5e79bffbf39ef6621d417b7416de95979c3ae0be340a8ae6b2aba2dfda4be4c3cd0b359aa47f79ca678a4b6b86f9ae209aa8bfb6f8a26a830ee97a628638a2da6988f1079a8aefba419a853b4d516f75f80904a4824a40d7d2463a838f749186a8c138fada938e1f794331b14e9f755c2505be50f1a4ba9425ade306c3544750181d7a154d77dad9ad496890740fdfeea28d565e58d4a791b2a6f3bb287acdd968fed86cba1d8c5eafa5ca12f1a1865a2ed1b43102dd22d98dad0edb79c3e2f74fba65376ea40bfcf32310ebbecc798e18b1727115cbc7801438ce1b7b6e2d8ecc4f4f15ca13fe4ab8c40614c8ed616a622ec32d5442215761222d230ecc4c3799c972a32994ca6242f60bc5e98cbc0d7bfc4d80ff9af6c139ea79a941e0c136922b9bb2f53ef7219d497a988da2ac2305e845db593900ae351c4da7d9d7aae38437d9d62a8adfb2da622967e2aea5706a64653cd5443996569963516737564a6d0633415510e31f5eeab6ca1b6781186adaa5457c9c393287ff4fbbc68c55ba1ab5ca5b90fa218b602a2baa2ecfafd5593ea8a61a5eba79efb5af1b002a30cddd510f8a8cb48948c8184a1d6dcff4cb28849d65626797b31491c99c3aefb2fb28736b280dc67cd820cc14082208181f400896e65e54d2848bf305d56defafdf2765f484a1c4c8c7d6779bb296fc45889e4b6ca23e5ad3c924939fffdf248c549f5efd422ed8a3dd8045d98f9057ff1d96c86ad34f6495395510f9a3fff329af49923496f179538c367c4986843093156de445b792b6f3cbdd642a142450a16fcc4428c9d7c6eeb3e8d18135f5230cac89e5abf4fdaee4b26dafaed2942d6489ffb92edc0b7fba24d9b664c5802df3c4b90e062e5567cb4dc1e20f0e168874dca39c7e0090b6e13143cb17580868827353cf4e403444f7880c6955e754e829002274774d98f509c10d1022740e0189c387192e485199d9319b0cd0991203809721b5d8eee9429489a0c31a381cf08be40ebe0427951d0a4065d931f2c82b1d4abae8908c6ad6bf24207524068c233845639f5894a61c1e5ee30f214ab601465d0c3382e3982da807d50197e40830c31f25e75e8ec3a19c35e754c7c5085494fc7e40639e79cb10a4c9ee898e0744c64c0328c5faf3a26448e6092011b8ce20f8c0c5d2346b2579d0f32c0271851bdea7c6841097cb8a1b7b2ce0712fc8cce87187ca081a5a7daa3ec82a05e753ef0b840a8dbe0173301f47fa5c11f9660fc64a3fe2e90eb57c90570fdfe0578fa8e9b16209f17c6c6b0b97b44cdeaa07f2a766d60b47f8dee8ca38e4f5087b1f66aa11805d1656350ff6e1704240ced10d5996a13019b9e08c28bdfc70e389ba5fe1474aa18d3b5ebc098f5ac7e9f25235799fedd97d65a63d326f1e3cefa8ddd8a57340f9b442d71896baed79a44bff7deaa57be10e82ff7e7fdfd28f16a63582ef2158cf63fb174471999fe9d3c64fa8a8db1f3b045fde361d3fe3dbe2b5bb304407fe9b1097ec9044b56ccff9932baec76bc23a37f270f19fdb3f9e2bc1281db25b0fb77e638bf710b1156bbefc53967ad3f10ac522a95c270efbdb79857becdc2328e4748a84c7befbd4f18638c31c658b770eda2512892b4a48b0beaded7c1f9fe034ab9aee39ef6f4b1ade84358ad8ea113c21b76fc2acd8cfb558ce1fe27085d18ad90d1d63cc6b5b2c098d3f45af18a2ec31863ac02e314db45aab562dc0c2ddcf7d55a316e0614388c7309e499e433dad727c6194c8433b5f212bbc29066b03ebb6d636b33d6e6ed9b36da377d97618c7148c3acafe58431c62e18e358fd0ae352d68ae2010f56e3e6c14b4a67958a7ff7556badab17b284c10a635cbad40ac34521b9316686168d31deda26c332bdcc383ecb69628c734d9f5c5ca13e2781eee9b504aff55c3e139ae0b59e005170fc6d2323238e31aee76cdc1963153c8518ab5f33d62ab8ce39e7153c74e186ef360ff0aeb99005cdad618131c63618e31a6b53c38266858a14ae168a1326664a9ce6cbb06260ca954d0c1a680e838b31eea1a8e653e371cee37c0553b25e62c214c849a45017ea70a1f9f3f2a2b53e426f8bbf1ce1d01c2e575b280975a12ed4c98835718693ed5403892377302531ddc020420e9af64433e54e474eb630084577393497dba5380c876979596aecb5f20794c32e1c76dd7a90dc00c3aa97aeaa08f5216aeb64227b298a1ea5282ec61c7130e6498742a18e72682e26347f606e3037e46040f42887e65ed290bb84e58f7256e5a8a8b7e3a5401ce1d01497569a1d76b91c1581440f79a919e6251487a2b894f394737e82bbb4a242ee40420179686ab2d2da021567221134047741170689a2397497e36968fec8c8d86ac8913852877c2292e680f7c499f823d66e38f0de4cc4996ea5d075dd322d619eab4167bbaf92872a4564512f457727222809258d09cd9f9818908775cf58e670a8921d95a29e9421b2a89762170f6d826e9017d33bc2a1b89734c74f1117863825298ae3a528d02e28cde5783814681784d35541733823a38c44733c1c0ab40bc2715668feac56ff32cf2271a40eb9f444e444e33d5e442edda1b6604175719f658a395418f75f4c3127a23b7126e2a0e060204f8a501040bb274d6a0cd30dad381c257500ea24eebeca26b555de90cbe5902b69e52cc5b0b285ea22725fab2abc08244a5b5a8e202dd3d4eca868b5bbad201e769129891ee1501ce715f1782614f4fb30e58b139aa2486e699aa669aa244d857a42692a14054d795150a05d5014cee3fca84c51ceab2d4e34ec32e5b0eba7c24e47aa0bc34e36969449cc996e27194c3fe472240e4d5124b7344dd3345592a6423da134158a82a6bc2828d02e280ae7f1f3944373288689b55a7a5f279e1cd4d76985130dc3c49929876120ef74a4c24c494e360c33dd6ef775c2e1505f271dc413ade5443be54c395eaee77018c67b240e2d77b9d2765aa1e4419c615869029c28e4067156f21c15f130ac54c194a49c996e18b6aaa2430f70f7b5a252d68e2861e0952df08e724f2a4d935a53d4c32ea01d76913c32edf7d11445724bd3344d5325692ad4134a53a12868ca8b8202ed82a2d46c3ce43cfceeac67b376d2ac334a409e8e302c65c3ae9bbab5cc8a48b4df0773ba14cdf15214681794e2704a5214c74b51a05d509acbe970688e8743817641b89c0e87e6783814681784cbe970688e87438176413816f7d1722910853b61d16eeb0eb9ad2bd2fa7d7b41b4c46fad5f2a4b457afd120cf5a5baad1a86c17cfd524fc5317d3541283a40a05e1f6c525f2780bb8a337e7d10ad38a7afb5a8bec6e9dc7f9569135458ce42c847b77585e859152a15a667a8af2ff3f5b5ade2b47c7dcd938b8ef4c62180805261ba07a677407bfdcc4385699c7e9295f4fa3987fad2e86ded72aee2885f3fe3c0d2e65f3f935fff312cf5f55b3618f6a2529148248a3b192dfe294b21140df5dc56188662eca7144f3554adb6b0e1bab0796d5d31459af802e7f128624d9ca157441108c43f0c3937ada9c8543b0939f1e0d376e120c9cd98aec21f69023981fd0dfc0cd2e7c2b8b755d3ed49d66e0b87530dc370bfbd98ad94c8c222c67e582bbe12633f2c6cea16d3cb526389bb30ee7fadfc6d1eec9aad7a407eac86aaab86bb35c9e5505d48fa0db595f6fb2620a0e0faeda9d96e2be54db4c99823cb3c85a385095128d417c3553f2c9610dd738475aacd4a1bb238778253b02e2928278c8fe6c81eb2460644108165e8e0ad3315bd332e22436748a7dfa0cfd0386748e70ce19c211a35866a68dc87741fc27d286603372141044242b9cfc8d80867237d06d10c1a42d0a881b30e11d621ca3a44311bd612d9c0990611a641946910ed94909fd87cf4d65b6fbdb5ce804ea96c1e5a7b5e2053a1810a0d5468a04283b544dca004b5a1adb3ce434319078dc31ed27a0fe98dc30c3890019d8e05238cd07a53d15b87031ca4341419da9a082a7a17d99a082a7a17c979ebacd3bbc8d64450d1bb488e18d39f8365e8e0ad3315bd332e22436748a7dfa0cfd0386748e70ce19c211a35866a68dc87741fc27d28660303b100aaa0371154f4d669bda9e8addb29014706300b9845108d113770e870e4d0e5304167c20c32c619679c711e4da71617149952bdac625819ffc0d9250a4be68dde3c416cb3378bb3670915b5c48cd18bcf8c09a3171f13278c5e7c4ea0307af141d1b256e8450815095aae11b852a820529131e9fb8888be1460524ec18a68c50a3186693226c22b31965340c30208163518a8b1f961d362490b119688e0e285077eca0b185360c01063f895b11136c5585ef282ddece066841d8c8013238a099f1824183141f402468e0c9c858c7036f282c9d0c159c8086723373762ec1b41a77fa48d83969d5afb63b4ffdd700d3bcd467062f419380b19e16c4447478ce1d7c97d46c646381be9338866d01082460d9c7588b00e51d6218ad9b096c806ce3488300da24c8368a784fc021b0fd4642a367670e4c858c80873da6d2db971438c611c191be1bce4060e137e640f641b5ecd941c262c3121004b02208025027021421039c841686d2a6b83418c2ab6c70446fbb7db23c23a2333f129a38cd3ecc53967adf5de3b3f49dcf9c052c8c51596d1746ab1e12a4ee3442a6ca7fc87cb70b209c112c2828765b342fcca45939bcf79ad382aac35cf146709578999d68c8924286e3c2913274e0ce1b4b4eef455adb7e9f5a663db2cf57de3a852fd6fd146a95b920c2750d41f769c5669484650ccb45c3f256a45b84a1ae76f93c01db775428fdb42c1765b49be170b4ce028450a15664db593a8b04946f0396d458585d582f64885711a4da6cbacadd27648c27b6e2b5481868510160f0f2be4615113d3438d0d4c0f362d44e0a1c53f07f8302c2440092e5cbc5061182f52072f184a07b09b1192b4dc504ec32e216ea46eea29c108383fa71aa7715aad564204172400c0f402060072c6d74b8c911e96632383c5be36f89c765b4cf7fbef46da38b819815b15825498edb14376aa79ea9b6a0cbb015b73adcd666d7603b59c1c31963fe765d8e88c405c62ecd4d6dc0fbbb64868371b521bc39aa0d6d45069360ebab5f19a0c9d1f5eabf122743ab7b6d99159a5f519e00b9b1c9c43a3460d975e9f89d9e02a0ce35fff398dbb6061d666e33424a6bd61170b31084d8dd80d1e04e6f6d0384d079c962b1ac27b6e8bb623c6f2e7cc2bb2e166eb61a7045e2b8e0d8e507cdea3e2b57e5bd666793cf666e3b46f1c59dc68407303c7c591c3e630e148bfb6eabab6860ae3b44ac3a15f5a0f26709b1636d594032f093c489122258acf267d197f770ae94ed977cac54264d3d61b835bcc7e4b6a61ad11e3d8fa215ad4d20ddf2b43af575f158400a2010c35a0a700a21ebd3e94b536221bf12cd824d2943d05e3b746e8bdcdaf4a19ebf7d0ebf562bd58af4744449400a204106d52ce3ff3950496b215632e22f8c1bcb899196a610d84f5e67c6b480051028848fb3201c25a0810e5152590944919d7eae067adb53b442570b310ebc57a37861f30c6d1cb2bb45e01c61847a057b54f682fb7f8f211a730e68aeb05410d0b1ddc7566305a7b314d35c0e832e2bc22eb609709b7841cc696aed9295ed8a8603574764daa33d0f219420c5860e10668507ac20a74f8c1c9141e6ab0c28d820e01029d0f3d35ffe3a852b1e0a1b1d6aea83855a7d82e520b05ae832766363637372513bb195ea206d3dfc25caecb7ea759ab3f8e322c9e53d8c25d509c7c49a978542f378612d07dc976e44abafbfaf02a3f3f327ebf375ed9ef4bc1dafc247d9e25b6f576d2361bcb24338ecf42aba1493b7b682578ad9e40d122ed227a28c3079a610afd2b78b5a9391bf30331cd6561513397a28b71c5b6628c6b0d5abdbecd1587b4d1fed5d9c5d62f043d64f960fbe3d8f5610e569a989aa8b40b9d0a62e86824004001f3160000200c08064462a13048133deff914000e637e4a646044998743419283200a821806620c328618428c41062134374500f8f80f105bc0485cff8d348eb05f17bb668cdb489e06625bdc81fd40c9f068738ff4bb2f63acd1c8c344db7313df7f5862207fe8886738f67d92fe688c7fe0d88b0bc0eddcb0e96b933ee5940fedc5ad0709f74ca855535b0911fe167053dd71a622805348d9f8e15108cc9e36717b7c29a176374669bd6a02467037e99f3ac7ddb4cb48064f050c05cd176ce33f26d3101fb50b6d20d55e4ebffed44dcbc1405bcc6a0bf27046c5ba15a8d11a0b3ad1462f0d7da680bbc741faa4812b36236e4fbd607edc520f585157e63af47fac1f21ad7abb6a59ba6c24ad93a9bc39a0289995c9b7a0bbc17d745b94f4b607b54e4cf56680a23656c7950e6f1b07e99286f11f1da54ecb8cb5440c3af280dea633a35502b312bfc2f012d6fad237cfb10711a38e3cd06d4ade78a71c6b33422b1c10532782b9a0ae74971bb5491e78c86ddd81e505a5e191f69ee4e37f66ac81290f8b1bf726bef3b3641840f67b16d43d3d5e66e3a95e8010e11ccdd4a89d1e3608baaa5a1add277ef090529984dc40cebe0cf817087d628221ba199abefc9f07fac0522abcddd83d63e9e323b30ab9446acd3c2339b158df921a7afb2177d9e31a43b829dac4c4344c1c1db18f2e4130e9581e64880eac01108fc432faf629654a16895ef73eb3d1eec58f02492ae967ebe2693bfb1ddb51c49563c2962766aaab5f22a765652e07043bf3692a29ef09875952b6279e4641f9127bea85794e86623bc965cbcc97dd9648bd363d093b9a0a68388b26ef2f32dbf8ca130b034361cf5966fbeb57cbd9655b801e880814769abe03b18c33e07f48c825e2a2c38e9876c14b582558dc28e5a72366976d017570e14489d14f99ba83a06bbf5ca4e56336c10a7441a507052a89e99cf42113146c56dc4c0928d9640e7829f9596b7e0ab7f15bcd8dc3bfd3aa66a6811a797562ab6c9188fc9cdca1b6f039d2be8c1cb6af7aa4d48401cd8a1b5300a599c8097f2a97920cba61cc252b72ba0f3371eb0d08572695ab28868453a604cc53e539c8110028a41f4c38e808624a287d36b8c10491ff4a4b9371689fcc0ac58aef1dd45d076d1cd85bbca37a09e34f9f474a6283b1ab022ea287b083d96b6e93e0a35256ec88d9ef9c2831fa2957f48c2d16417de3bd084c66b908b04e3d2ed929ff7e238ff11d2336e7bc7b3198bf0822b543143afe5dc76772cb8bd2fc1dfac20a19a59bdf8f1c45c4e4f40ea323ff59c6b7d87f33a40b6fb10d082ef974392c4c15bd4069c7d39f3fa2ac85f60ff51e076ed30c9cf12f19de1232c1909785f9ba5f213a9f29e8b7d2d57f952f6f75b7bfcbcf0fcf531f47845e10969516b80dd7c5fcb0ccb152bb0a05369ef276781207cc99722079eb28d97d0e070a49ecb8021bd0a313ab23427e6259d5cbd3a6cf8180de3869c9f1a69d2c2ab1c4b8354ca21af1f03b5c17614d8229f53a29662c9a289426a0b55b90a20fab8d98d499f27eb24598b321bc3c4740b698d42b0a29b589502aa75fa060a20a1c6bb1bb74aaed7d7198cd8aa551faf1ee2115294ca80b8a09f1826c2608c28dda9ce492d1a499d13056419a542f33c2acdee9de717b2e0b496e56b0bbb579dfae7c1abdf113385cd52f8d83c686082a32dc415d70caee0d981675e9fe66ccf470f076226c0f3116521eee0b64fb6099646a468928752f88002af9550aba321ef4515499c581e83c066f80200377c8d6d4a49c42477b7172e15cd760dfcbaa0c6a6d97541bdfb6f2de0cbdc2e9d135295d209c614bde80a31a3657a096173d8f98d221b2f87c4ab16c845cc72edcb59f58814bcb47c740fe4de940eebcd61d7e2ae097dc2efb9a2efa92ee87c4d184fa96bcc4976402551a93508af0c0d36f39f4090623cdc62736bc665066c91654bc8014921043e0fc68a03b2eca5cdf2bc18ddc403b4d7c2894a34d56d60a2c8556d250437878c0041226dbf03eac267d209698f648110a4b3f2fcacfd7ee5a9902a41ae78467bcab64069088fac64320e21f421a2dd6003129561c350821668a8673ea284bfbd6523b3e60bd18b56d9607eff44f03a1016ce2e5fa1093288c203c2f4e43865edebc3506866ad300327dd58a63b75d4911d7300b2c88232c1be447a9c791a600abcd6272b43cf779e4b1096c685aa083d8db37b0949f79c49bebaf689ba99963d8dadb3f64a7b888cbbf3b3f0a8da4795f8488f1d353656a08fd13fbcc0e303f7f34f448e4238c99a542b399d41816e4676168b5664696031cecf83fc1b9486c198763f57f544331f86fe7447525c5b8553659794624f1c345f3937d0c179d9b6a8cb25f503488f2378ec2b68e3fd019a1a43be1149e47d7fe2b8d7cda1e735bf970c872c66317f1aee113d2207d6e45977af745804637bd85634d05e33130064a27196973b32e84f5301adbd49a709cb3bedf0da2ed3899baa2f10a2e41b33a817ab9448337615b494aac25b3da5f101b0c86ff82618c8120d9e3df273cb298e75696fc493a363d313220d583102226a6afb6c70e04b86f75e544c20ef855641f0b4cc5a348e9d9fb9f6296ca20425160ffda06623ab603efd60241693631ef8541c4dacfaf0cf79523339d0c251a509cd024a9d3ec115c3b54f2e0e3b13858ecb0502ce95077588a03e01ea9954172f4e74c8f0cc7a6d8a595ebd9f0fa917679797ca4c18c29a8fd93e4214c2e99ad74bb3fd5b87207c60d5f475c7e520328ea417255ab3c47290eef8e0468b4cda975135ee9d03a0f10902faed3084de46e1f4f9a97c41bb11a5e628a1dec2fcd54d78cabd2241df47ea95f4e328a2206209c0560b35b523f521b23b0e971e076d00492adbab4911bf306a98838e8043a6d072f0a7a3d796291b01f44b2be62885796215d344875cfdeede03983030fbc80bbb7c0ec3f21460d914c424fc6e011e53ddbd2c8b15081c63f35f357aa48dc34e9e04fc9d0487b413e56d40f029a4e41fa982786dc691331741716196964b00d52e10ac4bf301cf36a6f494b15b4ad6911bdc6cefb94bc8bfdf1b43bbbd5938b58accf845ba0d492984eab87c2eff5ee74c304957c2ed4c98f5feb6c4ecd79b04d9418c8da223adf82809bf98c6c04109cebaf0686a3c3e481deef5d0387a0c6bd0c78a98448baee74e2c7ae23800a22ce528619b292d8a538f04998c32cab18686062b093b271c0d9aa243c32dddfe7e24a571f4652631dc466ec560f23ead2f8f77536a28a72d62af70700e4e06458f3efaa83fad4555b351c385e2405c96ee29bbb89118a245db1b1991a81e984e3e381a2bce6367a9be690fdf03ef49513503e329ce112308711eadf283480fb7406a90ce9840fa74c57de846bd89760fecb9e1dbe583b4ee4e06e9101c11cc61fa16efc943604bf763b7348ac076c42405e39a437a4be6635a45c2959c17d48b90279e9ce866480dd3f7648a39416d6a445f037d204a59de12c642fee59c1b02f1c564bc5c3e497169cb722585b46218765d6900c6f2d1a9f156f8177feaee5ca15d8d2e2b8690ea99d6d3d243e3ae083140445ce2f7ac7edc4acb75e2a7a5c15e529a30c46203017f67556bfc286e4f448ffedb831252b7228a465c61f95e6069455c8f1909619376573c56e39e2319df6107c7163dc0611775324249f72c6f905ee0199130dd7e7e073c841eba7036539d2416f75bbf6afdaf612eb90b3400ce32411b8aac3644bbe38a199f76e8986d9759df682713382e4ed570d7b031f332daaac77232c3d9acff6bbc46561507b1d7fcfb541ded68ca9159c01661ab06ab97747695bdc366f6a86d62c3b5e589320fbb1d46bbc438e0ee687b76d05030ea04c895718ec43d174e27f81e38b29f8b259809c43455ed6552cf408b8e7417ae89cb000844ea2646ed203104d72678d1168838d6723da5419ed7b49b9e66231eb9a64951e68bd96e734467bf6738886c4436231959220811eecf6c44437624b0f19dd8875fdd4cf4cd329de74f75d638fe446379935765660a67d4234b2aa703b1518978804e5e5359e679082dc6391a4d766f0c039d6551b4a6c6866d2124538e3bc86d6249b75e468c5ab995433677e332ca7d966a3bfe53fd49e51364950005a1eb1587187ea9b3020cf241f8acdfa877df80469b0d6a937ab6e2cd24065d1c59a109f1cb200b03d84cf208c40c10c175410385fde0e6b367df854f26a876d0bd7a89a845e6f2858667c084e21fe3bff1708fba3eb9695fb87eac858e18d9a3871695258371cf931dbdeafc93fbe2d9ce01894a11a1481cb1b83da29629eccaff2f59132bed56c2bddb2897a44fd8fa665050e81a89e45f73f0e0dd526e62b2790ddb275e7ba89c106df928c6973c5ee559c2d3d2134489c5e73a7c92ac0b3978e7da1d1d976be40b9089f7fffa87960339d8a9774fcf600bcb0555166c13d05f7b634b7c4374fb8aaa9f1c804622ed228facc4e4bf574929c28d2b47efa513921fc2c318d27c633e972b0738b77c91d9ea5ea0dd38e81b83c90e3f2b1e93c9406f161a93857c13ccf89b9313c9a1acb2677234d4960f4cd2d267e7d728e9caaf4a949f45b29bb6628cc97f6a48e0e16d1844a80a83ca254430f3939aa3a50e6d8700d078847b036f6f772c4d9adccd53884dcf5c6cc388ec0022f32589a0ef85806887e15d4c06c5e8d1effdb71489fb89911ce5fa0b271a9902d277cd578abde1e90740c96088689837608c9ca23cad4d6674af16e3d28590ec814ccc75d43d1b561088c5814546e98f5dbc210900d8b4afee40f019766034de42c6eb158615a0850f03edfb3a531d3de41a1dded6f967ee42962353f26012ca4f45ae0c38f5b24c650047655b76bb3e4973a5f569b6849205d0c06fac13ebbc89f4bdc3403b6755461e7fed21bd81085693e04c265956175c8902afbdafda6e0d22767f2dedc88cd5623d2d550bf4921449c9f64356192dba4bdb8b4efd21fb694ab2f2128999fac6f956aedccb547a5ee0ca57375a6a226a8f12c904aa05626c6628788fe7cf30154204f2bc14961a916c86fb711e838967a62745154cdb4f18f2a84687b2595a75c0d20e9162a566fe11dce9b5788a97cbc8515f699e2f25b97c87f437146127b5084185ed772c8cb0f332994fd44dedcfb0d7886e33c868e3f4f5051cca506621e3087cda579cf395ca2685ea2cf6fa240048956f435596851600b37053535cb15f51b3a6cf304e668e86f1c7f4519d1c571e78824d39535b2627c9f11784a14b176f1daa8316d4d3dca0777b758e3fbf12d3973009f9eed90ce4c24ac560a8548193ab79249455a857b18985f55086c8fd90b6829bb06c36176602236ddbbc694b1f31484c0147d741121a7b355043a95d5101fcefa24843e3a547a826eb63298b8b7bfed9fbf8afea3cdf5f88d0c1ba62da3b113d86dd1a27592c7f92bbc864e9f6d8a2b4a265f69148efd985cd6ba25620a3fa33b5f1bb23fb5afbe97b01456ebc013d9765afd7ed9a79691cfa3500d8a0c09f8d5aacebad6f824d1d9c70228a7d02c2c1f4c3034dead81cbbf33bc0c54421ce7f139c49dc1ca07d72b6e6f510a03469d9e57c4f3ae49b871483eb73198ac9dd5cf677876c3ff3507394b75f72ee628c98314885f9ee5477645e2946d3e071f460f85285e4150bc2ae532d1d9c786cb8a2532243115a1835caa2e0c6f92dc02c613d6f74c2fa06360507af9165c722a2f83fc16a9213bacc483381a976b1d7bdd9c8ed8a13245d874e9a603bf157357261f37bef996fd749e87802c6131ed8e8a93a5b0e2139314b7e6d17aa26609707ae7f2afe5368fd061cb7804696e02c97c4225d5481f1ac6f4011a9918b9d075158b1d7bc82c83fc377001e75317b3e161a34d4fe5d7d4406dcd692c413ce6a1014ead6d96d665d67f3c143ed028e37192724a015298d6c2c89ed86eb3f6224cdeb3b6762e3050fc63e032095215352e3666c54b31958933af68773e13e1b70da5b773185604bcbe2db1e89aa4533c0a0e8cbfd3bebbda6b33428ecc6fd863d1d519fa9b442e4119c111b3b4a01e2c14ca4298266013bfbfd6c556c26c8b90cbf5c0e18702513662ebf47a7d7348e3c5589a996ff5a881057beab29dbe4ea619ee2cbf812d2f5035ee908ece448f0afb2a3804596d6a47160d86a4e9fa66d1a3e4553ce6e24ebbec8df43525f5e6be129574890cc5febb2b859db21e25930c0ecd469965964059c01889f26aeb9285cf02509652935ad6880fbfe1f29fa9f82fed0a39515e5916f5710d474ad73e80acdd03301c01d4dbb1471ce61db577013ca438850b92194c86bb20b14e51999f531c5f6b6c8ff4e9bb436c9e46e898dd709a6d37347fceda92410ede8a85df41df90c3b524188f84ed97edbb32a4da1710f1a2c8bb41c86623cb8ad8f3b69328302e0d09f1669e5032bf9e9037d211b887f37389c21ba47807a30069ccab0d8ae51d1c075fc789eaaea87b5a4a239a30355ce6dde3069bbe244d7adb2561878258ee32c66d57526f8dd5a881e9a2b21b8c947f748d47dbad8bd4bb90adce9fe13ce7d114682496481e4560e11f249f806751420ac8579f5f4c0544dd4ffa6dd0e7d94cbc0786721c7a7bd96e1b04de0a2489e984023737ee42fad189580a71d0633926771caeed215cf9d778f2a2cca39c84da17b9e917a40747316a68060627e11c941830f4ae8aa214e0ba38b9ce1fd0bbdcabfbd7b7a18855526590cdfc35a20db4ae1cb43e4f9d5be718d0156f4fde0dba1218e8a7d0b31b17cae3d320694d0dfed81e71777ac4f3797b445235710b90a535e45d30fe46a7ccdbc72581414e7a0875cdf817cd3477a9566dbc4bbb36b9af83c95868af3b3bb2ba198baeceade7181711c847d9b1e146b9b384188e559c8e3311675fc67183c9f8c025432f6ca2a5810f5dc6e9da87d77a493c5af48ae1459240ef74d89f7eee66a7b68713241c320d6b1da0323aad6d966f8c7ca85a2246a82b02aa47eea71da14491f827d7c034400433529f7abb13875b30d44f1a992697ee270e4eaf84757fde610cd01bbff93811f10d732b4942991a8d54aa9c6ec1a715acf6e17062483f6a7c0d18325f131c092da5ea48a2dad734625555d93b8534e502635550f59097ab5aac2aa16bb7aa1b4994ea0f51c51938e304ff7b729e2c11ab6679834d3be2efb76572f6300e5361f63f0878c354ae492eb6c56f40c1f8b855af548224ef1d5820e5134918298670ff31990703a6b2dde943150ecb8a0ca89e52288d88a3357f542d7d3e5523227fc402384efa097c543683d9f50df2c4befb68b9da0e66f91871740006d11647334356465fce3892d2ec538ff11008e6343cd42fca02a0866b247687f33efc9b8e090c1166cba0ae6021267a4520a050770e40c5e04d4d5f534412b953482129834f78a57d10fc18abea59a922da12cd311e8118082953428564a391c9608b8d10166658b39b109ab5495f810e2c7284425b4bcaa56ce11d1b129931c66848732bb5829c1311acfb8db72f103e28b841aa97b6d77b791a59f6ad69a68129d361482673fc82ba0f80dba7970e5a7000d408fd4814305053edfb49adcb72657f60dcc411d7eb0535dfe9861c590eadb868693fbd93faa9f6f0e6545975076200345f5299d2dcd3bed38af468874bca1d28e497106ff130a85095cfe21f3fe8b8d8da787b9e2e50430b6bcbe17b53e6c77cfe1c9321e517bfa8a02c3723bad14bbbe5ba4aa6bb3be6f96d17e5ce069f51dcae3ffc811a9a75943031e2e1b436bef1e7dc34aa4d8ecb345a15bc0845f2afc341603d1faf1ad5f2b585cd21515651d4bd5770346a85bd6e0eb51f3f303744083e95a2a86f31be20489cea921a64a247ca14238a822cccef74e0542f8a5a29dc1cb0da8049d7a1d6f7a5d84f9b564714f55fc7b56171cdfd6d40e04ae1b80df83d3480b4bf82ff5f64267c483f10350aea7cf4c09a75552932d5ca525389dc22f327d69422bb1362327400a2208d0b1cbbedd81e3110059df51cae6b2ca15e1b62f7103bbbd384c2bb956ddf4e2b1a8802af484699bb70ebec72206add27fecdef247f8c6dad40b202513f30e05317cb4ed7ae8763a1631b6c0228e76213a890707b3cba6ee2047e624a7e58a855db8d28ff195a013881355d04ca6aa57428675b822b175640915876dd9c992cf26f19231a58d68872195fc14aa6bb8a2238be23458a0d0ba832c2a73c23c23f36f48170a3848d1d61f6a582df450232463ea1cc009dc5d6aa31526674867cca3f03c1e8ad952d3499e1691e40219fac7836aae0925f80590953e48033e23c4ad1c8ed4c3ee9461b7006f4e905fb364438680672ffb1fa0eb7b097db0f3e1538de47b7e181173feb35afd8cb229f5c79971044444a20883dfd23a1386dfc80c07bfb980985dcc713ee4bab8204e3e739be951b0458f798c71377e33a4c48fe01b3116e5caa5e626203c21bf10d3c09ad74027199496f0a0bf777b830e5a0004ba097242d6cc2aa8daa9e107177c20c0e92e99d1415afd3e669f601b67d199a0237ef8168633fea7a0d75d13bdf8589c9ea85e2600844df0d5efc9d0006d29d25e2f1c879b7a814fac2bb71663d3f8c22ed6433a2bf9b2e342090eaad6e87a32950839b4f3c8135669e7c8a0f88a79dec26e2de9aa080b9429871a5d3fc36d4cf6d044e02cbbd719a4dc974c7ca3693f2efc20bcfb270158d1336a6fc84e4ae80a0a64d62f1e6716a02a9344e9c3ba4f5cddc550aba2ad36ae0ba333720ccadb671cab77834fb80928c7fdd9200f5fe242302e4b235f11fd76e2f79b26a15ecebbfac1f1f98d0b45062e0caa8f19510f3f2a33f6faa4245a452711dd4c71332a833ac0618ff2063862cdd839913d27da50ecc3e416f2b9fd39e09b0063cb226124d6b95222e6d6f6eba7467325766c78c070a960c90c32b82f381fc35b943ee1e3dc6ee7e212d5849a02d597b3cf3ac78ce4c8045a3bdf4f3256ec11c969b5733f9b47e1aa1154108fedbf3077b549c21ac6eb98e512f4ab7d4b18954c5ba1f0032757c5573c97a5ccc358723abcc8f05e814d6071b33d018c3966fe0c011ed562b8e684c91bf2d4e35c78458d766990f62c187c9c1f8a9af551ace74c9195e1e8425019d86affa3576a40e8c16e537f182d85af57a987e836d84fa3b3073dd1e05253b0dc481c970e2766ca1d2253b416dfface19ce0aacdad97bb6e7f6d4dd8cab07f002938e5d91a9152063fb082a87449ecf7da933a93708c977095674bac55e426d3469f74e4977fd599bb42ba45e41b1b33d018838d4e233b404196ae5256438bb13d28ea70f28713ae17ad4de0af614bd9cd4cd46d1fb44b058127445ad19b7efdcb1ae5dacd991fe8e9d0e75bf489f8228b0a272d616ea272c1d6b0003e42ba0a79339828e13cf83540c1b053fac5c6042bbb61cf20b133f85f2002f07b59517881c6af3012b80e592fe2c5304af9f340de75c1dadca066e115f926710d7b853b9c2fb45795e2328fbbe98f7040e64006dcbd05c6214d42bab6f8d187f717a98210ce151712a72ca7a18e8d484a2e69952a28c71bfdff6491432e8c35ecd8bd6d539d7a91db74f32508057db4ce05a375f47f21324b18df2af38713b02597ef8717bdfa71b1b11f62a4b7ccefeccf867d9b0543ae7d6f2d08b5912f1d3b33f9229a0e9b528eac81054748e9e5e50e5c433db07228e86c0f94e62ac0ab6c8664c0fe7f5dd538cc84f6fe59dba9ef08c20ec2e752141c6cc3d847437dd8c76c7f25c6f0b155f8c12e7d1c085a75c41cab1e99f03f811e363d7238c7b0bad0b77ee4ffc2d3c6ae0401956785b81772285be4240dd2f63026a31b1e83f47d1d578a4dd81dbcd08f7540a98bbd2b2d8aa752db2c98d12b1f6f4e57ddb045e56d598a694a875a51bbac3dd8d25150eab04af30eafa646cce150a3fd0bc0762f48f3ea05d54273b4769780a34d6335e2091642dede3b369fac362dc17b5f4d099beebec8f0a2ee302050166f55864038d7277036350c04740bc787e7b558dc0224fe2ba0330e4701287a43cf13ba6f2b006bf19d12eee42f1bbcd19be708a7bc5608327a80c3bc7ca02b0e6ad24462f51fef23a3f4d6fef819d47e7412befaee97f97a1e26ce4fa7971b718e60eb4d61ee34b03b14234dc13607b92a8b39f2aeb1c15a3567810156d87b049496ac203c4a5f53b0e761a60518d6251c947cb0679a32a4eae6c8b2fab420264fa2c5841d447e5e222cf58362bfcb8017c0f41008b1c885605ebeb93f0ab468198b48d00d59448e1e76e5a7dea8a36406a034ea7bb76e2ce4158089b2640cc1c5cec843b27c72f82aa5ddbe24f30a73ae3029780fa9848eec56b48ff27011ebe658a0d84d7f6e8e9ec0f639d90d880fa0e59c609a7d97448b1b97ef37aa7c64e9ee5a4a861a9912d51b04541161fc6ffcf953a14b8d05e6dc97bd055912f81cffde617460b99245c5c80f86373bc58bf0c15f0b409ec917e2d897964c3e4afaa68c49174c698d229f1ffd8f719af7d3de28eb7e39f86258b5b95f95327232998f07142ae8e5b7dcd42621df2386e26b271bf196892799cd45da19a06175bfa1442800592895442aa31c4949614b26c6c0224b17ae0bdb9e5ceb4851aa39cae1542a4f64895bd4d28157a5cddf8b63f931d7c9b766cc56032db563c4655a2c664fb0fe59c021dbd02b299ac952115619d30ab3e10f39d97fdc2ee0f156b06e83ebc496a7f2470afaf0ac6058794aa879739040cc18ce16e9f84a2cc5fb5f3fb0aff563e6ed098cfab0256baa923d753ced25cfd696ab555836842bc614a7e70078a8864b7ca92bb75c4c7e15a9ba4f3c6300f6c4e52bb3f6839b1ce286669b0eac4dd37311d1ccfc1b1ebe111fcde4ebc3ef26113adb5acd2ca554ea751b71923c778bdfee5d57c652d08049c4ec0aed51622050e5e1fa79c9fe3f5cf6c2d3dc1cc6cdeee2866f508247b766b817c7d6963e03bf11f9298622ab7a4349b120fbd5d1203f584b3082f0a5c7100835fcd45f8fa4b1f8df2c434c35162bb89f7792c25fb14f00f0c3087cdcf32e8e2d7559f79974c288c6f1ccccf78c6c6194cd24825aa752ea6d730c5710f4b210d86d6b8e17986b668da8395ea9ff6f6da9eeb9bfae3db95c8e171a8fac981d7b757687656333575fb5d94532695d3145836085f8b3dea7d5ec2066b70e81fdb49be32f15c43e24ef125d2d924d1ac0ddf6f55d9513baec9f7de1edf62d88f8f066cfae48231c964879be613d4dce31f5fa64e1f04f8fae902659d281669927cae167e27cb9e0c29ed4f5670af4a4cc143c0a1825cfe992c56f44b57dc1a942af4efa61a0e7a5a8ebc54e659fb3e8c890d4a0481c8a965b37c4bc751492680fc3ec48141e33707cffc2fbabb080a779f384ae8ea21e270b3cdd61885a4dd26c13ca3d203adb41c2c567fc8f4704463214a66c48a7075af227a2e17b3a49e29726c484e19853d5ffa735daf2094263b089144c3716bacd295c8f1e023b36093df315e3745acc4ca47055e28390a5e79e6598509af584f96c8c1db97ef1c02ea48e889345c9a49d4419093bfc3207cb60471c600471b43a32394e2509f403a81b5a95afb7eb9970e68a07b648bcb237226dd015240eb80cdb288a11e9ff3eb92a350adb887d01970e2d7b1413be3f811a5a4c2911484d926994574edc324e0aa4d6579fcec6b18afc3531903f8b42238d295fe267e75545c02a43ae84ca0e1241f80e7fd71fd3cb33f3528778cd6d9caf4a7638b029c0d07efc6cf93b7fb03e402b8968c61f935be9987e76ac05fc4e88afcc658262a94335253b161ebccbd2ae3bd0f7c17977e7d257be6c80e03422735c113bc82d38f503a7a3ea1e59f23238d362b5d9dafbb12bbdb0bd514d0a87050333d097d608dcbe830f39d97f132a4d36653da1865984d99e36184c994d57f3f4ad0d2944a89d0c01230a4da8e55ffdba8df1b46e58e50db514f85473535ad275e1ebc0026db55bec7ba03a6488226d9f0b55022030b05a1373da74d78c967474a16b1bd05b88ff013e876619274d1ee80cf3b98c2e07f1c610690143826f5f20a7fb9f8f75ebe64b4012324f405c8a08222464a9002b34ef2eb9672739aaf77a78a53b58bc9250b80f3d716b53552e9a48023373a64eb224534a8673a6513a5bab49b2b7aec2186dfd8e9013428a4b7496e2c9e862896f6dc3a8b3287333951fb8675eed43fac568961af0779c962c4089eb6ce4d2e5dbb73355ddb105c4f9539550b0ff8f085d19bbfb9c3a43abdc8dfb361e6bfe318cc4633f292d7df276bf2506f7ae12367f8907e0c5af7029bad9537b6a00a6c1d4601815cd91ae77b4eb24cab40f499183016dd65a761f316bf49b5570e2071077f562e42d6f896a4b9b3c8ee4e247235b5aa6a858e64619496d52e67c56d94144c513ed37e1ff41de0889642d4a85c13a4c503705013ca96df60c15cfcb6b8a2a04a8e18b1f4564de0863127cab57f149a8eca235c9ff883e53bd2af47a5576561602994958de810dc67389ec9fec5af9bbd714955dca6e32a52dcdd85e2fd477cd14498b3dd171fb12890b455eba70b3c9ac6706cfc5ae630d37d56b14eb7024fdad0242c66a12420b0d66463a55b262f3a09b488d16899999652bb3250dd9710330bd5ff4106ba2d7e1ff9e50ba0bbd3b94ef64ccec5256ecca1bb435be8aeb81640730a6b69b3cc3a0bd66a9f849e7020521675cadac13256da3f84ef7f8bab7d30866110d99da021542c3ca0edfa789365f2cfaca3d074efc3cad57b9200a24fdf816713efd9c23e0a5a8130f51d355b49e8a14c54f698ea809240b2e0577dd90a7892edd56920c29b38223d25acb2841b01aa090e485aeb17a590d71812c234508e3f7c960b4a556624e0e3e0a7c574d63ecbd0fcd58026559a84065900270be75e519ec767b9586a1412100ed826447a4715d1301606337394dea67c1fbcf774eb7c89a24406b52f0e1419e3f4b11c24d6757d36bcd7d948b806e00019b60bf645a1b8b28cc4d4c80a69bbdd1a0edd2a9c7e7340d925f2c6b916675bbea6930201d6db3d28bbe5e0984ef89f1bffed575ea90f765e9e3e83f30c1a7658f0e7cb08335ae23ed44743064faf9c044fd33566eacbc8de42d9929d7fdc2832725cdd1690e296454674b49c2ffcebf8f12ce11114b2f4917394c2d39634fa423a744549d8878c030810451f3f0ed0023d39f67d5e3043145780e2e6439c6a3775c82864069432319e799e8c050b6541d6ce820bc620b8b15dc48fe13cd963a18d0c9ca687d3a981788d9460520714a13ef4374cddfbf55587a2139354f3183dd1369e0966322a46e0e4ea828a9624b545e91ad282dcd85223ddb5307c04178b92dd825e0ec0737bacb267e5b7855e5c994d7f03224d2b53aa0153c559aa17926491fecebb041a6a9317212eda8ce1709454c1268a7a1edf4d2c877d5c0195e49bfea05af44c302a8fecabd3e8d7828fd3147f057d741086c83537413cd0141a6c3ea109763bc30efc714cee5e03e5a4b83cf22c51ece55a969ea8586261dc8096a86c5da2f2a4d0e519c8f9efbff07b4d1282898cb14d27248b0bc62ab611ea5afd6b55fff6f6355017fe77afb1e45442e5153a50e5718ca1051b4bab8501108991d2a954c9a8fa571435c1993fc2f75ac2f44a92e63040405808c31867fde8a660771d055bade036fa79016210caf559292388c0b18908f55d98d7c098063c0c4ce598e28eb62056b23933d6e4109b93e8a72fbee152bef5549376d16742c6d31a5f9519237c169375ea4183723d65350ada54f2335d859e2c7237638be007b9aacb91478a77749f70bf1b83ea763070126226eec23482c63aeed72337dbee1b86f77785881a4d51c8f3ed8f117b9980eeba6d93c28c10e2fa68b476824094e2c8b0ecec083e1d5b96d29e6726f79ca3b45e72695b9be8a2dd95cd737cb6fead48ff0a1881008020327e1b6265f84cd5acd2f06e3961594d33fc2972860a4fe771758685dccbc9417b6821707b590c377cf71da2c651ba944b59fa85696fd42731785ee9043ad6261d3f2abb1ce80d258fd7439b08f5c6ad0f3bab012c54020de83d2cd2cada1b7f4fa63359095dd2a8f5951282cd7ee2a9831aca0532cfe3e8a80da08f8e6bed50b6f437707f06193ebe86f0df6859ad6f4e6b193dfe6aa3286748066a619e09065580761c9f3a4f432844644ae02bba36c501440413e07fafca340acbab4657f7922e65480cd112d011f1e946fd44427a618b381f2688019849a20e913837b57a55931e1ab8ad4a0d0435c0da39fe4008afa08621c3799d64692d86853ecccd2d1f02eae4b1bb1b875b75fef7e92308415351fc06d221130bcb21a637bc79c320b49fbd67f324377224b761fc9a46441a974b4da0098a962c734ec1b53c09350850c43749f57307f1fc96b6ed9b8591b7b073cb0dc87c0e28c38ebf61033cd7546225bda65247284ceda8cb8e2527f68eee4bb52fb8e7689c6cdfcd8c0970d2e466d1d459e1a040a714441cb5a99280ab69b85bf04a95960eb46c3957533df7c66006c24dc6b35ae3130b7787b18dd8ba9ad456c88d64fc8573aafc114bdac06027303be48bc82aadac491f3b2fde8510b06d31914717ef6aca3ef0325bcac344b22134595d8124c7a98ab3bca4568042cd7386030846341f36021ff9fbccac4ddd4155f88284fa22f85ac836a32700c84afb672e2120b2a87ac097528565cd97439de6e44cd42b072bf7505c2cd68b3d6c20745e765c550ee2e462928437cf757638b9d2c9246acc824c59a5ab7f541aac0333146f1508bac6abe12bbbc25b6fd6fb5b78dfdb401656ac47289b940346131410174bc508b648ee05948db8481eb145dd1251e8a98d40cc838e41b1a0613674753e4ef934be6adecdd88b1d1cc5c0e3af2026b8d4bb764de0aab8763410a8d32727e71ff4a6ebe0c0bdc3b199892e8d3744f76b04823d8bfea6db7630f56174218db6516b27f9828a9a2f6e6c89139b6407bad21687f800ad7aa1cfc1d1b6b553bb57698101e092a10d37adac9a0a862c3312e4de675f99f97585608bff01c7a1e921204af9a7cfc301ded3dbd63e7954246ee2d2b229e1e27a52f718eb3abaf381934a698ca16b2d34293279a14e5acda666f5979456e21fb61bc33a32a794f16865ba656c75856f87605165753a5b5960b81e46ccc7912a77dcf828f4854bb2c1beaa16a307a4117340d417b3da993a2f27e19345c2b0d36abac8a60dfdbd5ce5e53fd91b5ca442e459f6abfe15202268e8dbf8791d631b027853d10cd159092f66d08ba137a5135357420c880a988c439b4c354a4d91c3e7fae52c046bfcfc5e27234963ba148868bb6172ebf5b6216025b89a275ea9645481d6fd29dfde29f0851be2e79a703ed7ffd7ef6aaa55710542d9663bb6fba52e1153f15f3525ab3f931bb29df48dba3152b2e699d358e476bb6beeb75f86ebf038cfe04b0a00a6e3e24aea26636ec3d14c53357cdac991adeea8a0a3e57a5a68d3032ce47355c8e03446b92426af4531635402d46870558b37d1a107b6c7a7dd61e6e0269b58c269ecefc01cfc54e832e7033b28292e0125dc49722377afffba28cca065cc64b8708e7c259f2c63c4ea9277cd2f116b53a1aeafbb886c332ec6b801f948d61d0cb41d28a9f4f9bbc8d34264ad769f5ffc371585df338cff57b504b909965aeb175b10697ce097a43c819a081d55d63b4b1ba17f13b9a92f178a01a7bd5cc9f5d91d726a44ed463b095f5964511b3d97ed35be15a3b5c161de687c046c6ad72b965c2d12d15408740845423e566b96dc1b88116164fde6988bb0f2f546c09b799298938c97ad98f6c738534f499c0e9b25c6aac1491a59504414a8e3329e8cf81fdfec02b22d10b53265a7e03e9ff95edc2371d59635e873a499ffa2a6ed7b477e548bd4a639233bc9959aa66447a6821fd5c4167d27e0e36f3592ede66b9a2e5cafa613cfa74220b45baf1fd89d7ce337ce2e2d823728d2dd4234a5bbe1bdb77babd9c6c89d4a6fbfa9336418e42aa1fb584d3c598818ce72a32682fba29b0061bbc04df50d840299e3da0b56c51f561a8eb12db00a369a4900b63ba6395068ccb45ffd2981a5f0fb0472612ac18b8f800493586f49664ca7d8a7ceca1d34e6f8850b14ba8fd3dbbd98c70ba382d592c7fcba3a094319f7279f9541948bf1c2c0c3c9dbab0a119c8d500a51f38155e485a2ee192af871c568d784de826269417918938256c73d41c2b99564a28786c209fa37f9320bacc6a8a26a2469ec44684c8a67fe4886ba81a34dea990549ec79b9a93a67a8198615c7f3f008be1d92ecea419a3d70f8e080aa09b9a75de7a76e248c1dd8d365d0ec09d904d6f5f7aab67e8aac6c9739712156a92e78ad0962c932eb92431f61e850edca88b59f7b824b5f68f905a81dca02a444473c071d36cb79e1f4830ec9a12489315c77113ca55a204f5eee1a3d00398b68c5fc026214526ea7fc2b9b9604dba4497d56eacb9a0215875ad966910365ebdf4182c4130c663e87cd4be62309c9d8c47f7958f8696970bfd3ee9fa942d397980850d75994e41c4a56f783fa4b3062f9e54e64bf1504afe8e99cc7684244833dbb4c427b7521eb36ddce0a7fabeab1ad9285894a9a774945893f1f561bb971efa73a98ff472f683d3f8d453101a48d9c2abc72f9d24c10211875997a5db45f72a4248a66be83e5bc5cd9d0e42eade453eabb9591fb269ed9463839a834ae4ed3298448e6a4f1966bf4276fcde7cdfffb2ff3def79294f9ca086740a5078c839e354fcce7b20725db3e56ab8b0fa880c82171ef80d2b1c2bbc90ead375e1894bb1f21d6a9f1fe71c5ae44a3b686ed4e2c72b8414941a0dca5de69c80d134d368284a67214ac923446ffa858b547fec85328712ee147e7dbda19e6d25ebbc2bf07951a6a017c5e948b174a315d0486defb42c7cc99e26216c1ac4859830f695c102f7b96ceea3866ac72335b7b16644bcaa0c86861ed949f3850764a2391eb83c9958cb330e5a424dc000a990a26340e46176bbb61db6022657dfdc369e14c398a4ac511c656421be5eee429912caacfe4926956bf9e8913e4f8eb74393a487f1091a32b17009650963bc79150c954ed16bb2e0b86e06c418f068143bf7abcb4393461f4c05787453b018db1b7584d53033f24f675f6f8e0282dbf52701d1f4b8042160f487b817a35916603ef943212bacb7d30ee3361f1bf44691e85b79eba51f2198df7a154d2e9e985fb8c1ded1e41ee61b2804dd92e04ac6bce5020c71d187be1b2a298074e3dcc97fbbc89e6a0b41d617af12fd28309a597fa6386bffac8de210d60fa6943fa5b6cb122285061db773f50958c38d858a04e56794e644441ea933f7d2a1fc6ab1f0dc582283be698e47ca1ddf692fc93d72a96a23823fd41690fd2d716aeef604e30e5ff19923a61c8473d9b4e480617919d14eaec9febb05870ac29974901fe2ef0255307787070ce7732a048f66ca4a354e2c296f85aa7b4d8d2359f7d5f04e0a05772bb24c3a3793af39770f792222c4bd22a7c7ddfcca5764849763897ac6541d1aa703fb574c41737fa6725181da64569240a875bd406af9eee52125c63165773a6bf17f4fc32d7e8ac68b2acd87bf184b9cd44145afa5b7eaf5631c456614901fa6a542ae11608bd6302bd9abc5c57f99b4ad43bafa8fa1c8da3d362be12d0e853d213e7ff4d326b8642acb9a1e6fa8c7035b6291425455b51497d3b4a4385104d22ddc86da1b0af5808476682ca13754db2dc4ddc9b397df504c8f13a6a094ac66168ba8e435c97f8bd9a49b45994455da17020c42c5730e2347394b479af01ab034b41f456966c3197a3060e6a26ee5adc94ff9502deee63a0aca5c510453c999be177ec1d71bf4c62cbff6d7e032dc5522b40ca6f15dc365b0bc1984f988bea6df41f2a45f38ea4df526702469c383562ff72a93979e0876a81222ed4599d9f6661c4d5932249b52b56983e60ba96e67a515b48dd26ba6bf8afc46f2326eda3478fe3aa7c9d6d2c0eaf5c6889dfdfa10091e732c642025a1121bd2e19c5cf4828a6735556d610f0af42fab9324bfbf242128ccccd0d02771f31c1d3b978d62471e48f2ce23a3faeff5321782d4d55070d51d6b5564228f16a32c2116a73862f0c83484f6a17f2408fd739ddddfebb42f54f707531742d5c1ae6429215d95f98445e474265c0a04ca869db67b73b020815ca01f76c51070a1182cda36953cc80b16c7df2d7527697366d0a5405f383c31a22b194a3cc86a9e5422a7c94447ceadc59c39265b1b23a00b4e94be39bbac2120632ba61cc8341cbf1f60a9982f2d9a911f98c2737bf55c4a1765daa74bd42db5b4bb4e76060896b909aacc3632df1e984d6bb8feace550ebe05a88ba17c3a116fd56b9171b8afc108e226f7f79169fc3d98e3491d0a731834ed5eaeb3605da6af25868b1f1ba753de85e8089fce4d2117a1ac0d5ff08148a69734c7fcd14e8d0334b7fcd4549ec14a515cdb2a89ee22283d5163b90e382a445191e37da3797db2de419a8f2795f1f369546f49816495abc32f7fc84ce6892749f6432678df0dbbfe5c214836aa47a33a57ea31b8f918c8f1ce7a70a8298cb86e24987a1d017d98cd1df7fee3365f60d18ec8513fbbd89622ea53ce5cf4fc5fce53ff633da247e4782d74fcc45d0b368960f20ec3dbd5f453239ad13a4367e9a7ee26c990ff4f058d59b58b5844eefe92846eed984f481790e7e3e5b1e9ffc5cfeb2dce64c0a161f8ba94ceb48ebaa22ee2da5c788471fe1109d18087c3b035213c9f81f5fb8cfcc0220504142c034888b3a63180b8c3e7328f84642b97303760c2e2eeaef850351034edfd6ee10399fe4630d10091ee6ac5185af498f867a168d244b5d7047d1d2abd74ed0ec2437093d8c5afaadaf9c7c48352ce221b988e5050c322c30920fc4f1b18ba85d53eeb6daef09235794ca786816118d081f74f3fc25d651aa4e4ef1dbcf1b4420b26030c741617cc768d9b913af34b28c38bd558ca2b9233278d38b4905127806d482ef153d350d823d81aab9e2b2141e342185e6a2f009e712136bcbcb8cd02b56ce93fea5e29bf4b0a5c6cd1212c393fed6ca3f7ec173cabb4ccda7a4da9d73187b0412ac85f861101761699297cd2f61e7d280043602404a1b84888301fad120a978bb3b230d91c2e10fb12f019708b3802b159e07f904d8464e2064a367ae2a401210b130fa4357d6414da4b078401c6f0737b321d7a40f99eec0b466f7ee2ea469cdfcfde68824e03813b5f6f9fba57b7bba7245dc2a53588e492c203dfda1c5ec3dfca9c4c3ac048d6f5f11a61ae92d8daff4a38d5d871ec505bd5becfcc9e98d656836515692dc56e6bef7e471d55883722b11d414b71d83146b66d607dfb29bb4a8ed3c02a1fac3af0bd4ef033af6aa9a5c30922a6e0e728fcce49ed49718e2bb8182024a1433b08b0d072736def2682e08ee336c8dc9754276dd25ed14bbab7a41488400105044c48a840a645a1213d8de05fefa1e91fbde89e011668c5f047d63fbb7b4d1d2d226524a99a40cfb097c097a094fe61ce14a1cd3b7943960395ed3e7a04a96df48ce7b9687c17b96ee859c4a6a535e692a85ace092964a1d1dedfd0fff48647dd994265931706ed24a43b28f64b09548f57e7d19459716946924b97ff1c06721bf3791a34791e1d3f087a36e052bc7d5db6d8fc3fdf6f4b7edbb328794737a8eab1b57bda75cf7306cef95424a7f04a724443fc7d58daba86b80166e09c4a2f469652b915e0375a34a9d4eeb72f4526b4fbf2e73ba1f8e8398fee348d46f24cb9f485de2b8f105ee518fc33d4a3ff75ee26ccf52e6947ea3ac8fabac700ca24ba58e4ef7db0a254b1249595bf7859c078eae8fba80a1405321f449a2c5b6cfae9fc3c7554e62e266fd1005fa146b110f362d4931578d2b58dfb5b22a49b6eb6c937e366d439fdcaea4a15d49b41cb01488db470f4fd9ff4630bded1aeeaea1254e7eaecc19e5e8df3617ca24a73f1a9aae26e7edbb52c8ca6f2bbf6d9fb30b65b10c52fa1fee2d50212a64009b6bb8a721512155d9f649558004b12b97b73d3436456b432c7f9a285bb3bf1732bf0b497a91ecbe85e41ee5fd890cdf448277e57fb889c6aeeaab870648492a2211b5507a2f913a3adde7d7e19ef4e32d836cbf528ebefd11ff9ceef37b8943e29e1402a14b2465bd4083509b6ddbff805d8dde522940a88dcbb6bf91606c5b5b3d2a0aeedaf685edf3e36c9f7589939f54e68cca1a06d1091ffcbe7b4e67fbfcd7069940066a6bebc2eaca4068748b6588f51008d1ae8ee09a7758316f5f2f2a74eaf14f2a04f3279db9bc7c0bcd167190dcc790ddc390a81f49967701ff25fc96d18ba4a7e1ff701c2465c5b04692b24492b25a5e76f5019bb22f9bcb5afed7d7eb7bcab25f7bec6aa4e5f802f7dec3d0fd570af9be7baf147204e7fbae1ca910ef39ca75a4e6381a9a202d6f53029db12b2f9b7a2b2b01d4142d81ced85cd27046e8fa1514edeac80228abe53d5349ff69e5e9d7b086d1ffa361f4a73bff5d0065b5943a3adca35ea77b16ee88ae5fbf8e5e06f1e8cee5578e5e8e2f70ef3d0ef75e997364fb1c1487d3b19477088b3c1244ff897b53f72be4789fb2bc0550962e757448af13becef7ddeb8c5e077c1def79dc246b80c4200349b29445537bdcb47f39215e2d43b07f473e1a90e476a069057a7ceed5dd471dfecf5f3a14e8b3126d4b54a9f88af4f66b155785ef51bbb2dbc7be0b926c7863c3fb20e9c3efbe7e4f7d45fa36b0bd330309a0db2bebabf3d1678d9db565bfce561219be9b95c461f439435823af9667903d7a2a8e465f496ee4fea3117771f9323c8ad0b6f45667c347654eac837a85bbcf0062afb1810f376d757206b186c93d69ec3ec12e78a2a666036db5950a9940ec3f15a2b5096d2b1d9d4336753901778219669c7106655d569e5281efe2bc711dd7c1883c665fb50b7471deb88d831179ccbe6a17e72d6f30228fd9d7c519671891c72ebe184674ed85f97684aeefee9472955362bdba05bdc3e0a533f437bc8119ef8f03b70ee43cb0fb400f04bf7005fa8ddc9d764dcea6ded65a6bbd32e7b66d9b05396b3577b23eee77c0f79166fad6a7a58fca7076f575bf3d063d9c1ceef31016d5b4197821c5091eb49480a1c66c270aa787d027078b1169c3ce623af070f13c68d2b4343efa34d7f8c1445510d121dab9b02a882801c5062bb2c17c80a470c1554dccc4ae30b275404e1451aadd99123068f6a5240c29604b89183738d183174506080acc49f88a95208d20acd090b8b4684688c0e8e2abd160b606e744b528a064a0287cb0831088d4aa228a1fdbaa428a151055f1049231ba5dcdd031b8eaeefa10a0b2eb4fc055a84d5762ad02aea2b22ea66c2aae438d3d39c13eeb0eb54e02e2aa5a61d7c7229c5df9d32ac5ce0febaba0934358961cc2fa7c8918d4589f7d811134d6779928f2c3faf00d2ed6978b2031c472219e10b13e8e480f11abfae00735d6e78196ac501429627d1f68c92a851242ac0fac5310d1c21300c12c5942510f5cac8a8330dca0b13e8d46108b2ac9420744ac6fa5893266accf14e4c30feb3b351154637d2c53e0f0c3fa50b017ab3ec1021f17eb13e90d5ea0436ff0021d6fb176725083568df5d522caa0c16897b1c5fa60bc529812b47c3802637d2f48a6d862e8e504d3627d315e694c55228327dea8b1beb116b5f1430fccae77c4b1ff1d195ba051762dc7164bd586911ac0585fa557280184a1d3b56465c20d1704b16a0fa4bc581f0ed09215c90888585f0ed092988a0f11eb7b87620b1c5c9614411dc10a88a8b1a80fe0042d595ac11b33d61702684911788b8c1e19d09222a03220604163d11072e08809c1ebb82d871042083a9ca4ac4e0a6b2bcc79cae132305f26c1c9ccc9cf36d7792280a9d01c611c943126819e496b68ecb5951e6cbb2d4f532604508b987cb142675378839f14ba306467989b49756fe4e5603032e7156dede5b88ac211c5a64151c488302e2f238c1883039583e53e8931c63f2fef617b3ff06c6af1cfeb87fa0ee4e512c43f9805d80806c246300b8230d0f55e1e0f36724bfc037e5c082519ada3de6d0300d8a34ba7fb5be9f4e2a9f42277e24abded083beb3bdb6e57dfde23b18fde2e7962137cbd525f4b8400f098192100e10d16217461c8ae58d4bef2bc97f8583bbeee2ac17bf580729847cdc62ff0f66073449ba4f95eda1c61e3975d712faf355c98999d7be0b145d8d8479f30b801fb96a9dd919c00dc848a7df479772561f30184c1048d0ce446063262caac62ecc31699507702e42426725b7c601b9dad5940a1da452944289e2439d174c9912a4b8e106dbae4486d9fdc9223b44d971c11dae7dd7e648a5dda74c99112049f88a4babd386f5ce77d6038a2a595d20a8f8b13dd5c096bad2b26d9c7844974f314de7b4f2c59c058502c2826b20f08540baa2517b5882de21ba3364417d125e3c07d68b8bcb8bc3421c2a4c6bd8c2f2392263f4d7a9af4208220088e304d685c3541412291483138381c3970e4204921d37ac17f454ef7c5b5f0a6b22645393ec76bc1a345912b9a4c26d393b47b2a62616161214b2d863e335a5a5a5aca1038700c171717971064bc18c77194d1d135a958c000003b00b0630b18e7e2b4123bc01c3972e4d8617237093365a666708d4881d5dba29b21841042082204000b970e1d3a74048087d025b151c3293323cc8c904551165382980ccd38b0360209239030a405165cd805093424d0dc2859a6aba02981a6846d08a64b10400902986db1461a68682101982000136e149836a18709263cc932d14d12482081841e3d9a0c71259450420903184013245f0d5635ab55d7031259c9a2e6849a9a56b7a96cd67382cd0927804b80b2590ab8d6cc071b146c421a6a102a499f86989297cecca8ccce98d16642b3293627040a3e5040a189d03e412a6b22bb51de470a3e7c14d92748655bbc9165578d2d561d2a49ad00da618b29a410dee04b6798f0ec6d53991324368d6d81c4f3a171b2e344e7855485a6b22d5e7b53d916aeed0f5a295b240088020a28a0400002a0ba482185145228400158625080f0a6000528c08f1fe10df9a245d11515f0c40344e85386479f662843c5cd21579df77de87bd287bce6352f7222372b8a47fcd104124fd58692549a5da9905d89e2ec8cdd29d91d49f7bbeabc2f3eccbbeafef703a218ebfc2dda2d6587bd6d7fbfb5738ec5bcd8229468faf41a9108e32bb3d56add106bb558f52fc9d99513556e28886dffbaaa47d8829a4d63a6a14f27aaed7a8a4ee439c0b63535e174a5b39aabe90d92a871c30d6108a960056eb4b1c3bd2f2595edefc2896bfc8855c441193bdcb8bef78a6c14c152515de8e08b9a0332687073557077d72db8c00b35d0d0810837d6607915ff1eeeee9b0dbea2e3c238d9a7cc09fbe4d1c3471797321963897dffdee7dad8f7b5880314ecfb8f8334f67d930cd9be4f436564b8b16f14590e8ed8f74be1cdec16f1c0bbf7de7b6347180387ed4ff28212b55a2d12b0ea9fa7adeab14f18992c0ab0cf1efbdac00b73dfe7b40dded8f7452bf6fdbf3760435693edfba3f0e6d6dc7bef901508218312c82007378ed07120a8c173efbda89d7b6d40848fed0f8251833760f6fd2fbcb9dc1a41c8b706496860c6be5beccb7101650900f6fdad0d2874a6b335b63ff668570c1a94fb5eeea342c6888e204612dbfd7e8dad008f1b4110f9a20c2790b06e1bfbde6ddf7bef55a2cf0fc38ced7f5d65535f9468cd81a1b37982c078f15004060a7ed83eb8c03062db4ee20f2f4fd11eee0798a7e83eb5b80511453b88960c0c293c00d1b381806931263303f6460f644e66588c51860637953999728393222ab8c0c10b2e88b04ab850011074de54c60590193d53b478a2c39419ecf369d4a04b76aa6ccbf2e7e12a17417fcdc60d342a9bca6851eaf3d854460bfa669bfba1db8ba6fe18e568bab6f21f9baa2b8e1684ae708c665740dcac513607c5cdcad54a8ee6a60482b0b71bf6f6fe9466575febbf168d0531a8e4931bf25ae4b83dfdb12b0e0c9aaa3fc696b2eb7bcc7fec8ab28076f51847fb536f1cd35ef2c8f298f3d772954efdcff501b92a89afeacfebdbf9622604b2ceff7e76edc13a75dddc4810a018904c200a19a4a830a86bdc27bb7ec53cecfaf5dca6ecfaf5e4924882daf8bb1a148ad0144aa5c73ea990ce0e4fd15e639fb58837e3689c10f7b3eb6f535c45b411edfa98873c846318769fb88a76d7a036580c3d52373d075d9318a1cf1a8301b571dfc61c65675214a5a036f8eb7f98c400256363c00ed1c463e3f6746fe4cb7c14d42663e05a8ee62a5a8510af5d9f83526b88804d01dedab6c400067239d69d4b1a65e7df3e9718a051f6f6dbdb72b43f3ccac6248db22fc9c374d31c697af858e3a366d7f1870a6e568ee6e5a939daaef69b9daa7c54e62c6ddde2a332a329b4fd3dfa532163dbf2ab62d426a3296470552d47ce4d1f7a6d831091dac3f62f360d65c104fa5f6cdf623b0abb0ab2026efa5b3c836cfb67a0ca66322f90549db3c6bce862fb50ebef515c8ded3fd8a78f4d87b6d33244005d51ae00dbe9924c6d58a0bb0691cedc2fd9d566ebc6d9943dfdacb54add8e349da967750d8d5dc98ddc06ecb63f5a6a53dc756e8acf56777b31293c439f1cc8f170b3737777f7ea6eada524afd65a6b996fa01ca7eb905d771661549a772dfd8a5110dad65a29b509c31beff32808ed07a05820b1411a8ef5f39b36feeefdf7f67d76f4376ce1eef04d1e397bf4768f4a1e8e00df0b185204900d690471c5111adc8045698af423529724f2bce70676f838bc09bf1b9167ce1ebdff4afb5ed9630690862606dae4017adff3e8de7a08b0fb7b1e39bb7bfba6e93c7ab8b9953435983452b4ad29696ad027d374d3c288507646352761c328a2e9a992fa5e8ebbf7de3c82fb578fa6c0443e2ae37d2830840132fec08a5aaaabbe566048ef4712fc17d2f42ee4e95b449695d2ff701892b258603f35343531545aa5854fbff07bcfa3811e8d466371008df60007c4c0f21e2afc42965247c7f4def7e1b0fc1ec7fbef7424c88a4a8bd582e118e4fbc20f83360cc3d0c4f2e18765cee9597e08cb23bf0749961ad27080baf3d7308887c9188afcb8696b68e80c0be1a6f1cf7b1858401762700501d2bd4e1e838cfee0e8e0e3780f8a5e6a9bda3efc212c4cdecd6ddf71e07b8f03be877ad0fbb0cc09df2bc3075f08ca83017c965248089e564a1d9dd27fdfc30347fa0b492592776915687352103e2a736aa29a9aa4ca36576776d5f2f67456216fd5a23c545621cea5d4baf41e459e449bb24255a8c67da0aba788f5aa423556838208d081a3277d0ee81854859ff42633469f50059f8ef461f01e2c8508398203be578e54c847ab67bd562caa5015aa33a8585421a151f7b9e02b910688c7c07d7e1ad27059c8f075bc3f7d0df7f3b3909455635732780d2d1ab932c8578e172cc7fb3d4e773f272cbd9c53194309c4a66c0db25f89ac2c4c6a6afa9b484a4f9415a4fb1feea4cea84d915d816fab942d649df3fe5561b6cadcfc098bd06715aa4c5ce5aab3cab6905799ab9c05e47b6b1fa4449505c4ae286b46ab15b97ed28f3e04fff3be7b17eaacd62ac90e1555a12040aa9026ca7eeae2dbbe7eddb9307fefbd579b2e3531e4f73024f8238912c911bb90232e91236e2147ecf7efbdf7deedde7bef353d65ddaf3ddfaf3c0ce09bc05fa1424cff95237d90d4f75e7c6f69bbf7debb79499b9b857234d58431eabfd7393d884da6adfbdef438df9b50ffbd973860cee9c17cc4ff03c9911c73f939dfeff1daf6fd09cce02b548cca8a70010931f361e25e990f8fab48fb05d37f8f63facf2b7358de548e389738dd8365ceca774e06293d8a147244084b39fa9b1e7cf04fa49095727cc1f4e08f5ee298ca11affcf723ceca7fef23e6216b80904819c0dabd17863d7472459b3a927be0afffd527f60388f8125db496138d51225a44fab3b6b61749ef5bc8ee5124f72792c54472926857d5f57af17159636245c15da2f8db77cfad68da6d37160b627abc6331d6c6e58fd8d5ef7a45877b0f9738dbebcde376893c1284f49f05453a83ff14c717b6d70f83f7a5c7a4ef1a0659f11f255d4313d331fdca7b38bea0bf7b1cfd5d9973247f8ee9f5e712a7f45c99b3f225fd1c59f24813c779d9ee92264930406290e103b31a51eb877dd390eb60edc5a4235570ada377b67dbd5359e2dbd7a53fc5a7f15c48961749d3b790a82f91e0af9cbc8fd44fc3119756be1f7655613f8462d02edda2e956c5306d770dd707fafeb7f9409f2fda947507d0680fa0b1a103e84c0c96e3b41645d3a4a1a9a9b9610d23f6babf5f431afc6b701a1640593a3aa867791df04defe588cb20ded36dbb72f423414a6f9f86e5bfc761f9efb9d3d4a6b73521109a02f627406db86dad6729a56d15a88dbffd1bba72003dc3bd42b8bd8cc14372fa95dfbefb1cef515d99d33df87d2d012c2c27f285661fb3a912e828153bc6f7c3d74b2e57d9fbb4bb712c9bee5477f7fc4f70bea8223137856433540f7495693465ff6ebbed2c065d5d9a7232bc9b97b939a2b613fafcd80ba1c0f14567ece3169da9ae011662b697ae172afefce92cc0860b303dc516578c317698d1e90153998bdcac2b981a60c1dc218a87d6928ffc51db6bf5d0431686ec244c7f4b7007f5b22b5369513da391178b81ae431f33954ae1cd37c54d53d3341a4345a46d5f1755f1bf44d4e6bee832b10cc9f42026431436f172d5ccb60ff2f80ac583f2f1f193e94fa68c83fe8a8aec2ad36c91e94f7f2aeb503904a5566cc2dcc7f2108e5ddcf7dddc3cb021bbba4e227da2e8720a6fc0ee002b5f62413fe96bf842851e7dc7c2e8fbedaf93b492b042523a73a2760d5b4e71fb0ab43cfdef0ce276d4cbcd50a63bf2f43223181e2ad19010de4241a90efdb8465825d9f63fb7e0eb654ba00fb5a974c6bf5ba214c5ae54ecca82fa637e4b58c54bac4574115d5c5eacb516861b7be80c92fb43352528930d9e3ab0d83a665b070d5462c87a39e43d233892a44d9fa3f8ab8783977dcc55e3e72a03fc59c2bf0e8527eaf542e48be47115f7f66588a84d8bc784ee197281e505cab75582890195688f711cd8085ddfdd9d1c2f0e7c025ddf749f52a16f7d166d53e26c579c03cc1fde64286eea1a42783302ff05c9d8436d30a5dd534ae9bdbf9d393e22fb44bdc8f3a3d9f0c6cb5ccb3437a1b85984aeaff3bbca3ff6b19779ca3ef5d2098d7ad9154b89e2f194fdd3a9747f99af584a54cfea9998ca9f277ba4027d66dae973cdae506f5b5a50e50b7dccf484a699062ea1391349926519de50374b1a9db1af6f0002813fba8c967dea28f40fb5f1b68589b0419775d0755657c905ba844a17a360187cfb2824aeda8292a8362126a827ae1aefa502aa60045472a672cb5c72957a4a3f2557095f7c296bca0bac0c633a84f006fca133d66563fad301ea086f341437ede700089f7ea9f07ff8278208e14df8df4c787359f4bf1146086f2e091bc67704fd3ffc2381049ad2d38437fac32392e38cf186378c3dfb5be779dee6791daac74d5411377f502f3765a043f08660290449e4f9d1ce194aa5255f54d97489174fb6099b2ef9e28aeda17e4ca009268437e1833564c17b2fcf17247aa480af368548e3b798d4813f9844c2a6d91a43a40e833fae3a350dc85520125779199dab3a1d42d406bfcd016e75c80b57d8362eb16bc8baffe7cff983fe1b79e6a843a70e2cca5324d29e69a511346247b05cc137a846eb514076e52cab63676fc87ca51302d1a08812d10f8840b7ff4c5ce565945c993692e9b3e4ba1b77c3715b783f9397a46e8631d07900f8075dfff42c7ffe0a31fb6ed3c7ecc7c64b93697645a389fbf44fb329fbb317b2a91148c39c1fef381076fcb39aabb68f811f7315dd2f137af234907c999b4c5ee89fb849fb58f83fbc92df67720630bcb91f86fe21393a79c15545a3ae71d6945c74660a0dfee02f34cafbfefc1c25c4b6def6af74857a51d40ff4862e3c681ab539a16ad4e68bf212b35f08667b7bbce340eed9f30d0c289328989b16f50a512f144f0faa88abc2b78ffa0949140fcac74d8bea411541fd84a857929f0103699aae8d57d37c058630d05f8f5d8d30a0848c8e7aca32955f4f1d61300919bd4c427cd3b34ee5109697e707dbd524512da448a25e3e00f005f6ecfaf83f6653f76b6bdfb2856ac3f6f28576dd231d7d7eec635fe238ad45f1af69965ca813184aa19daa505f02772ac803ee8864e9e503b0df42529b6229c1b62db9a4e8b188abf04ad32cca69ae8b6cfbf6f4a6127543184c8f2a512f20f4595d44fb2cf990236c2ce2a67d4db3ab92cb53f6692597a6955c2f60164b897a1dd1f8cf8fd178a02fb5f11fbbfa271ff394fd9d1aa943ab32a3223425cab61f7b987d56d70bf96c8bf2214255a81ea8b94355281ed4ab6ea14ff027d3fc47177f2ac9b96a5c21669b9b7e25c75beeef0490d215cb53f00574c552964e1a8a6dcb924b06db3e2abc2985510c651ab5f1605e914dd56f71ae5dedcb0604eb144fd992cbdcb7ac4361903e336dec19617675fad981ee5af1c7f6891c7bbe1442284ee46822eb0e3fd5f5b3edbee5d86344e73f512f236e965caeb23ae8b3e42ab9dcb42f97097d965cdbfefd13f53a4b46c621ce1168db2fb95c75775eaeea71d5f529c14a3faeb25f32e2aa0d0889ab92b86a2bc54a325731f9d9fe27cf847cd90b7d2c6461db3a84e88cfd972774dd27ea157b651440d3470a043053220480c7cc0824d0942000137a0c807c558e55cd0936386250f09102012ece5ce77d254d837aa15eaec2db3e8ac7c8b68fea7195b8eda3622826beb299a17c5c45653d28b22dca0890927da23e191a5aec132543c1b6fd8c6f4ce62a7bc3b6570791f67a248b8fcaec38c6ee60e54cba39abcbfaf2d2843eb90dd4fd9db8e4dc9cb2aba3b1611706a236a7dcca3a5d8ddab4ec2136a53db8d28bd1194bc5cf8e1458db83e3201ce47285f613ec544422c2ffc55c582065db53d1e7f24367ec934e44a4221dd3b2138cdab400bdb45cf0519973078e0dc4decb73c9e16d29c5ae2e0aef8ea688629f249e6ded2f319aa28588ce1831c5784c2e576887d95fd9a233f65dacd022163b7079de25442cb6b53b5c74c6e640fb9f31b36dff2c69db7ecc2c86860386a348d9a2362d1e13da14dbf62b19b377d4dc65077d725b733cec831ac65481722f2a188163c71c26c1fcf72505dab710faac7667dbb798c762fb83811e23c13b8e49eeb4edb7ef253d2674ecbe61b7bb6db537638c31a56fa9c532601d88d4de6bb1bdce6d6b3187b105efa5df0f374397de7b33b4c2d002866e866e8668bd19da74f8bc861a776aef575baa606bf08b2b2005670648c95b0d5236ae06299c5dd5db793548f1b85b731aa4988f1aa72aeef36f406e4640feedbd8df4ab42d9e36968eccd3f340fd3bc186340cb3cce57dc81b8d908b80a0c0f600fe0818e13faf183ebc08e03c316382236e79cc419515471861128dadb5476860ac43384d839e79c83802da1499bcace70c1c08ca2fd26918c9019253a439f4b4229a5a55b6bad5b6bafbbbba5ee94523ad2d1f56d3d4523943a116d531a545bb51e740fba9e711d665bf4a310d5a229b17d7a6bfb3e5d67fbfbce769eedde23d6764512b32b0a258d14c4808b22663041c3867d562130b67b6dbbd316314eb0851a32f009028de5ad7dd69e1d00ed5ac4633625630ad9e003126478d1840d5610f65923a5b57fc794e00910489ccc76682c7f63fbeb196c772d6060f629b3839a083cd08107b42945b82dda95cb7610b4bfef7378f3f9b8d5a6ba40678020d13543df9ff7bd46734bafb959392fe24a1f8a122c4089e226dd9de778e5e0e1bad46c73a959979a71a9d9cce4363c84a1298bb2f0df3f3d187d0fc8729cd6d48365d8ce97a49c4d656ee7c75578767e9ccb182e52656720243b67bdb3cd4445f2d7925569223fb755a0fc1e1257599d9ddfb338ecd34be2c976b6af1ba336a89dff85626f86c34765cedaa24baa38a2c5faba32677b5c6b60832116fe212cf0878c38d7e3fe9623cecd7f7f080b24e918babed39ab811f1dc14bade2c7e783588d56e88bbe561499525547665555abd1e348dabe8aa7e0d2d9f86c69ce8c17e7d13b66949a3532ad0a7deb4d2d22381ae5e1874e6179f77c4f11e7cf05eb034ae4065409832c2603fb014e2bd3f659d1bf09df3e31a72650b2b630ba58dbfb4f10fbf40f798fb4c96630bf8b9c7cf951d701910a6947626a90c083f1b931928e9ec5ec54765561c101060487c97ded8ae4fe3c3571b8c8da05d716d965b6cbcb1cf1ebb3eb54e6d6a05da0e992fea4a85a894d21e74c6d2d03f65f6c3dc7bb913dc20c7e54cbfeef0d6778a7d10451fb4c796a12b6d5322cc9783afece1a97b2fad01b23b51864d53cb4586d1e449098cc3d5a23e69aa6b59073bb480ab42850555d05a6541ad48573b7244ce39e7daac23826b606c351d6ecd04417c10279519b14f4aa350645476d8d6be4843aab2392a1c11cedd1b1ea0d2a05aaf7eab01e82e2f404307ec4ec2eb481cbacf191282ee3fe7dedf820fda8eec3e8721acaecce17bd04b1aeafbef207b2bbb9248f75e5776efd51c72e8bccf81e640cb1cba52ac7fb3751fd873d057dddddd9d5ab7d6ba3b9d711ae0bb3db523eb760fc9d581f8a8cc496bd6e24cc399ff353434406cca7fc41084ce6ab588ab195f8c61b6c0186329d2c062d7d7565cdd45492349b7a92c8d265ab0a4b361f6d910cb54f45c6143b5360d9fad3795a5b1c3aa4f4b21f42bfd5a8eb75e13ff773dd0f54f707253436798e8df67cde82f835d8d9723a9d76c775bb3ebd34fc14791c0f83ea6b4a4ab8ecb5b477ae94f80f77e3ddb92787f5e2df53b72c1d48a338c6c4b76bb8637a20e349ddd2c3e5a560ec4bc181294fad30d7bd53fcecdd29a2014dabf7e767f647edf1dc97120e6c590f062b8c74d0b82d999ddd0375bec835f6e5a0cc345f04f137de2d72de2668f5de11f0c7313893e31106cf5fde37deb0715d927773d55ff929b1251144929277810448436a304ed9048281c95faa3e7c2c3810facfa618e251f0d003ab156ab3e8823069d0c3e118a0d8a9ffa5e4b13d7881d58f53b94910d0a1e3896224a6aecfa7a0856fdede4e5a00756fdfc0561258bfad85b834b52ffda1d844fb8a0bef531ba274e50df2b17a420b45a2860d5af1ef3bcab1369ecfabad6d515a1a042d7a7d5d23dc4569c5049a82454122a0995844a4225a1925049a82454426b0dd1d0d68668684c6b42d8100db7d6525ae25cd9c0f8c18dfbe158876768eaa62dc3d80782ed342d2738e2a75dab69d7b13a39d6ea64cbaee2aeeed5c9955d2b39de7bdad8496fd78aff23bd30a133ccae32605344a86a026e5a17b579d915f736ff6c9b77b6cd3ddbd6964dc97081bbb564702217b01cb7790d915d8d75ac5b29641b5d48e7ee5557e5aa0e9dc981ced87732dcf5921b0a5db79f3466c3a6ab7ac310341f9c541db0f0e1a6b9d1fcd7b4745c40497cf5f2daa912f381fd20b95e7da8c0a4c64706fab0c0bf596badb5d6879bd8bad4d019cc819fdf7b1937f1e314fe8e3479e49c7326471bdb9c4bd14dfc18cbdcc4d65a1c7313e3188ed9c7b806cf6e150fd6a09d9c3bdc615c815c45ffde0ae4aa0a44bfbf5f836e45e2fab4ed572440e03e2b103eed4c02b979fdebeffb953c6d17ecaf824ab6698b2c7a36bd620638d8951c7149c2566d1df483961c360d568cc2677f18ac41bb5ad1a2ed5a6ec0370ddbd6c06d8283fd6d6025c1ed24bda20995fd716025575afbeb4027b5f061dbafe468ffb4b7ff3cb092de46627f1fe8a4fd4a6eff69f05f98d033bbaa2f9b8a2288dae0bf9f637615de23a879ffcc49f6cd42fb56a0fae3e611545595a0e6e57e94a81fb4415c4b15ccfbf4e4b1ef8f3c1cd140b26445e2e6fded0a2d8076ad64b8bd2774cd000d4444442e2cf1025d55266aea3e9088cbb32a29d5f2ac52ecfb67b7ef5981f4c901ddaf482ecbbe5f6b758aaf605e354992ca64b62f6ddfbb652cfb406b03b7cabe1793f55500e20249caf785314d4d4af3514a29fd21b56ae0a3326709b04deb77efbdf7de7bedb5f65a6bb99577bfd2ebd10e76dcbdf7f280edfc27c8c3c7cd4cda5fedba128f21682ae4d1135ea1cf98564c2b46e7635c76e57dfe98570c8fafbecf1fe3e3aa181f32c623635c36957f2363606e16719323716c70877bb4a9ab625c6e669297312f37f3b762beb28ce26639e4662e6b6e5aa1cb5a1965c7ebdefb3576f5e312853bdfab2d4862974dbd2e8db233153be3d7ce38f6b6c24647c54868e71ebb32cdb469b6f39f5cfe6f3b57d8d8f9c527a619f7678b1b3bff4692407426c7b49ec4b85ca16f00627426bf8b153aa6b5e3d53d8d10b5f1efcaf32e4164e7b3aced4c234467f2fd73078f9e9d7fc76b47cf8eda8e28018871e4172410b5e13eb72e50cca632b9bc4009b010061f95e1ba4d7f490e1e68ab417635d6727c01e3cf5f6b99cbb16e9f4359b87278880e713eb0400b7475d694fd5a1bdb521f6c6b8fd03464adfe32cc9081da23026d408d27dbeaf859af57990b54556398e8fbf08e3e6536c53a68fad4cdd447654e1d44dbdaf08603c3f073f7ead262689a0ad9822007860f565c5d5a0c4ddb7ec4be0d0cb3abe4e2c11018b3e946e341c935b4e52a99966999865fe3cfb65532945ccb43794a26ca4555b6d6a6b3edb80adc5e1bcfe6b3652e04c2a12b832fd0748376062ff6559790beef272e67f0a8cb0e1ffb308841af0b7187434c4b2eef45051ff33c8fc749da955cfeb58ff24353bab00bc32fed947636d277c965571f2bb9ccdd8ec33be8f031115d92c14dfb6ddbc602dbaa8e9b1474b2e4f27411e83ab812b9cb5fdee33e5ec457a85aa5a2c6cfb65f8bc0eb5f912eaa3b1e22e0a25eba08d330985dd86522a92d2b1082a36d695cc77dcfbd7d0d45d34097a38ad8f66dc884067f7eb67002e106663083411b4ce266fe0959d8f6c52e3af3a259d80e2e7b87d0a097b5b502ddf2903cc17d823f25239808ccf1f58bcb24586e12a78c3d3b762f93302171133412e3bacf44a24747e8d39bfef47e4ce508034a080b0b905d8d38a65339c27012c232d53006d39f9e8630b0941faafc7a4e240c08e7a0987f451f958fca57252896331b1500db37b32bd3a35ef6d3015b60ebc5f57c2c01a36ba8d46c9666410c95a21100000000e314002028140c084462e1783409b360593b14800b7e9e487656194ad3208761180619640c208618450c1001909299d92000a07107faafbb51a20718060a452660dbe5806892b4a1496bdb1862281a782837682f0561f25741146fef711ce104eba12b33ddfbf8fbbddf8f84a24e64920ec0f0d4e46c357b4b8816180372bea0c14f745fc50758933538c432cddc8287b5c209f581723f822984a92ee7a1ec8cf6213f7808e3d9e855ac5cfee75e17c78830b2530614093085c52ad47f083379be4e40392149c4f187cb8d763bbd98c3dfc70e98f943724ca44607c7b0a5c3dcf434fe7ba850bc1c9d879f9e4291e4b2edb3a2bcd5ad3ea613422b11e0ed8a5bd425dcdcc3e68a1fbe94ce169296142d6d3cdc0e8263758baa5bb7c558f4be819f25ea365164f156286f8a89da1ed3fc24c5d8f78e1707db8d6ed38477d705807daa315910d315007c83c9a08e2ece2f7d5956a87d21989c239c3e287bfff65446488fd1aa690b516aadda0ac8ef1a42cc70e6d9d435af783e8e95f7d2bbef7fc2776e75d03e9b12b0d7370fa81232222240a9eef4a97a35de7ae6079683a48579ca00a004ae8d6f25162044c8d51da4af3db33a843a113de9ac44ae72a0c6569691a92211a0888204731871f5052280727d271b503c62e4a7bfee90e6483c27ca6a05b7466dce935e6d63b5a0c186ab4601b0a0c99769cc73389090b9379484d346b7e85104b1f4333d2318551c2665948375c828a61cfc9caf1c14e76cc5c3c96bb5a2f994e63f93629d2a3e111af812247288d45189169a0886747d8988bbc9af65abe634381b5d9111499ea98e2e991c01b749e93d44ce87a2439ffd1ac6942063898e3d054570fdc3fa37d918cd17aa1e1848c682650395481bd01ac74650c55f5e0f3b098b2e0435309b1395a2696207536a4c50d22e3ecc1deb3cb7e7dce3bbd123a7ac6e9b043c5b84b7e971cb9f6bd97d681f96bb554ac3529e71dbfe690daa4f2267bfdd5f31b7730e31bbd66ac4377f1e53a75000bd77691347a7aef9cc000cc5b6ebfa260b7aeca25a333b087e0d0f576434ca7cb53980bd935237b050ae106bb7b80b837eea883dd7557455d05b67113b20e241d8bf67b54157a671b338f06774de732ffcc462a6c2ddb6fe3ab7f4f6dd86a611ae433b0b38a50329c567838e949e440a20b92de70f298d8b745643806d76bb6610ad85de34e0180cb09caf17cbdaa34d5b2d0a8a960cf4c1ed9aafeedaeaccabbb9cb6ae91e2e7af12ba109c81b7478bcdf54a558f6b44fe0791ac454b1e6e0c3ad2d059b9634d659deda9f46f9efa6ffebf4f3a8108d96d24e32e7d7dd5b7332808a639f544a4e0dcb89c541391b1547359da5ad2d40f5697952c62c8f81c1b7d50728212ec2659cffcd471c738a16afa1fca14e408f1eaa1e82a88754aca7251162ceeafe291401d62f57c03b7cfb3ece705dc7e82bc42718447f761551d627ff3943f46680cbbf2efd0a139df8387e236ccb3c87319d88e67cb49cf1205c5fd3dfdca192a73a450177baae1de004155567c7ec4f3b1ce94b8eab15dcdb76ccc4d63a74ea4f6cfb96a4db55847e1f29310b13b5f629943fff6042c9e12cce6c9543a398a699d47362c130198ce4439c5079d8450fcea6d1c1d005f9338ce0227532e54592582e9cac45048d4aa75c8b010dd97fa8f28a063627d591e7f3b94f6fbebc40ae8931422c134b9a9679199fccbd092de966b86b5daf0ad191852126106bc070ee22edfa2a39feddf3600bee5d2273a2527d8123f9995bb4e17650a9129bf76cf55dc8991dc621da8f9a60b3c4f0d2dfbf2b782a45977e06af0159f39ae1f9d185827a1a9836db10437bddd17418cd518fe9a3c109593172b0615d666412afc28a462183e783d96932b4fd42d2a8c45fe7541a538feea3c48ac7fd7f3f0ac135f64c7db9a3aa17a5141f9eb78ccf7fec4a261cbf6c9b1568ae33b6f084de43db81cad77ab0c5683fa6e49e022e5e28c8b7fc4d5c813c1930e05ae77684666b7da6b2c981fa54ed53d67acff8333eca10b9eab7f5f83d38fb0cacdecf193b225a134f95e013a837dbb2762d92a5c550ec4fc814e59e542f2923a2b129c5298f75901543e2bcb31cfd84d000bbb06ea1cb92244768305525a62d89d6224fd3c4bd2e2c9334ab819bf5f4f7170ebb416420140d512503dbae5f297678378b9237eea1212acfdd9ab43c0ff99a3eb47d71609598d15fa79f44a1dea842ee8d259430c880d68799b0e0d24ecbdc40a7bfc00b32be7db66f9056e1d22439ef0b7b8a65bc520a28bb481d2135efbdc1266ad330e3780a461d84b5ba5eb7f2499063ab24aca95747db81efe1c9bc9d5976f03c0a9b94b13e108c47236271fc36a4fac734236dd7a78dbee9a5d0ea0876ee33de1827765427461e609d3fdb8294878edfe8878acd7320ab8a3bfe2caca13beee1aa4d0477b20ef84d20a3c0a1decfdc0911e408e4b5db47da7a2db2d357ced5bb5bd1fb23ba3571e7ef4fccd920ee04595af5c4abfe63ab77807746c6a1353bf0d340611da4b1ff3e0ffcfc0a6d55e6c1f860f5137888d295f09517526c75c67309e9f92efb12b4c2c8aadc57ece98201010ecb6c54e1befbd90d2294d5e343b17177a326e604b85fe639bd3ce3b71f00ec935bc2039fc04db68f7e5ad6caf96c62790fd67769549c9ddb88a794e8ec81a29f48b5b0d81a41cbf9cd510ea2b88a823f934a27c6f648ba21beac28b191440a8f9ccd79e79f5efc9a36460a71f6544951d02a3e6aed5ab2d939477e91f5fb79409abcf77108b134aa84571107656faa724372647925ae206113d73adb5394835ed12ec9062a986f99ad93abfaa971c996d610e42d4064bec2bc3ca4db33e0199271a13e7a1deae2c7c481394ed3fc2809ed9ae2a3f8cefdb820b07b84221b0332d59a254bb21bf270efac3cf75e0b6d86f56491c1489692819dcd25b8f9645a3e7414417ce74b4f7e3c3388d1018ab19a03f16971721c523c36ae4cb1fd00a94643f88429022c77692d2cbdab98cbe4bce0b16232fcf85f93148971a8a82a98458cbeecfd8942af4e06640eaeb51bb48ed7d91d4d63f2281fc167ba436cda7b071183a1b24eff85fa1e39192d5153496bdae0b508ff551a97256c6fe1f840767195f70d8ab0c6848a9db527224fc89fe5db603ee7f96ac0603a804ab59fec8d888158470eb04cfe2b627a8f309a82f00bc3a91c011c9b0e24beb6ad77be9868ae77b0226a2bd813b793901766dbba9e264b5468b6d7f06daf547e804b1b62cf1a1105c9ba25def2cbe8b1d21af75ed04e37cf8914d8e3450382c06773c55fc3975e5183515298371556da3249f3756421bd576345e9038d931ec6e12a659965cebacceb5fa5abd2b9ad0154c8a5296d41d287a9f50343383076bdd47379e51cdccb1ffbd6f7afc828ec663f3edf6fa3230a3836bdf6e8745a882ae7e76b79adc334982c87d231341da206dae899c42b28a6fb829b012ae6dc1638e7e07dce96854e97b61a2a9db84138fc087e88ed851da1acec28104f76d66a253ba007fefe541bf83263abe64a1f5017dabae5a5ab1842eb56f7a6ffd763e38d02aba6f5fb0bd3803aa816578dfda558942b2fc706da34edd9e244792ae9d809d74faaddafbfac2bed81675348d7e771c6664715f592bd2ebee8924c3aed2563debf21765b49775db609e138cc5aa173ce39700bc3ab07f7e27e72ec489cb48905b1de74a3182fe871a51b537063f923e041f99daef4466d2b6b9a12f58bcda8f2594d8a55aaf5d283a2b164d221c1622aba3f48906091705f063c2f286bf90fa075f642481d86f4c0020905337486a3ca0fd53a00d6e05eff417838f42da31d7bd2ce123b9c1d5408a34468d487c293aa3a535805e57dc30f0768bfb168e1973ded568bb9ca1c3cc95b6ae873ade98828f1c60e11e24e159bf6e689c72612d600d420691ebc7165a462e5e8857ebfdb02501ba1139c816052cf04e6a1c49004ecca521c8dc220b4875572089b4ef68a9ae21c6fb42099b3f2cfd59ad0507094a78e3554511ed633d25c789763278c53bf1eb8b28e40eb7d36f876055bce1b6dc29ad0f473d5ad6ccb46c87eb2e3c800e247b55f4db0ae6fed880dc747ea7321c73e869bdc78949aff0cb4a4a36d1e2944455943e7ae346007893d3b336e244bbb364e0d8bc728f38215b6d73508b418a13f285d551df4a869e68f5f83ac60959ad63d88aa8937a14aa14fc74966b674b7f94cbda1ea3f3e3084f3475425accd8185327881f56cb90f321b4b64913a2d313806bba20735df21c5337e249676207fc82209ae680062cdee290cdcc638978135f87f4000215b4900cc8e41fb9506f68c40335689d3a696a25a33fb95ce40f8fdf642a97a44d397b30fa93239982de94b2eb7d9d05717d30b8bdac886832b5c24563282baf5c25381934204024756556f0f93f53db9006f0813d11203814929edf61b3e28900818896156fec0082c52bcbe3e9b435b90a86dd2a9d4f6b52701da4a30c9a08283fa9d74980f77965e2d415caa868944754d74b7d24ae3091d106bcc13b3ed1e79f0b62d1723f61d92abe89ceab6659476651ec2dbc0dca6105465c57fe9c4a7ea891459b0dfc4b3fbbf11532598728c6a16e7ad5892331f1501a89bb3a39f724ce0a1f3bc54cbb02a72abd82e95ff799b7da6cbe84e7585d0ac9f02a3c74bea7d4bdb1c317d954b5d184d193401c60646397a4a0d3e2abe9b07463874b0a48c7abe7388f7a98bcb7cc290c74fc0888066c7220c7f6a2f671f5dbf474319c82e2a766adebf8ef3a3d31ea923e1e108ea289bd63dbc5dbe9fac426beb29e0b19fb4b65aad29c13817b7d3937d7b9eac8720d9334f76e2934b3ac5782bf7aa0d1b3f9cd57d7933ff9c4da1c25a4d93e26281981af6f3e681a55b9368068d4dcf007859f9869f4f28f218290a5b930a4d02e77589730bb81ddd53a83391180717ad8b5d298b16aec9fb65e695c22833b734f752510f9a85be046d6936b0117e9159c3254b0f9905764d63d81e637618fe3cb069341b79174d373b3e4be643276174d2a99f0fda0cf0371a96393410f054b3c1d82e85c5c4e848886cd9703b932909912399e1fe7cc3a0b741be24654f76de304fc26e4356d70386870b9d106a387a3bbead9f5a48d8ffd449d8f74c65b01ede93c1ed437f311000e2f0236319a67d22e4797ee212bb8565b1807e42780c758dae3e6bd8a162eab703d77b35cba1f4f74394985ac603c03111662a4c78c925ae64622d06b8821a08039f8ce30d030d9aa6700b34fef5ff67a055563646b7d083180788c1bee39fde5d7cf878d4f49e613a20df30f356d93879db1aab94192fd94fbb3919813e1ff85499b0776c1d3c671b05627ecc40eb07134e70fb1c6546825acf8089d0ee104bcafa6e3b2eb5c86641f04910d1bb07b44311b74a4dfe48855f6394bddd0057d941a9c2ec51503bfecc13f57adfecf719dd865cfde6190d041f5e4020627a894e83dafd63025a2f00b0c3f189863fb45081ed151153bd293682e7a88023acf84c21d5b0d6e0127201327d01e03a82b374e35939c7b304202a8e65190a0ee85e17636045b01c4aa0a809d980f52fa525ca010942cfb007ed65ad48117889146b4bd80e3209e7272d02437adb255fdb97db4d36199fad5e681b36acfd6291051803a41b82ee2209ba2e62f988134f95d6861e687bb16e869c8513dc29d3a1f7fd7815eb0a03ec03e7c6d1ca08b15149d3b7ad2fea0ee3dbb09b83ba01c16c404c2700382aa842358e53b6db07b7eae3c55c2b02489106256b3c7e6fea11425066528d566c19ad078d826fc20a5c6aedb66bb435483b96bec24e6f8b6d4494aa2dbdf10c4150040c09484d9cb58e02ec4a61709e1351371348f319f89bc9b94683026e88ba5ab8d52351332ccff93137ade416f8b3ca1fd21c7922fd485616513d494c8470282babab25e628fe0e2a7a6318f6a970e7c80cdd20d490dca967022291e580e366a7f521c3275b15f5b257dc8a3534492d572a43f33ef3c8b9cbf95f9091a288c60676beb157e77d5c5a34879dcee4aba3d19fc6231dbf9e0156f5f978271d1d740ac69158f91310c572090b5016a32779318257392e5093a8ef599819b6e77812bb1d9bbccba2162934239d9d22efbfa97adc89f47890aa7edd3d116a6831a87a6885881fec843c25ad6c896dc59f63fd26cf3919cc3b75f2135a30ba8dccc2e537a1434acc745601db0e4325baa7a0ba1d8fa785ce750152402114b1c440f3d744ec85a033d6d8e6fb3d0c56789a0f95eaf6789e02e4c70b9958375963e9f654851f748c182c94fb8fb720ce70b65d1a19d3381366d1a3d3674bff1aa4af6cff51fb6dfb81e90adce3104580e1e3e361d3322d9c2f3923716c6250602648b1fa9746a7ced6cebf7d57a558f1aeae7d610cbae023fdbae59b5a4cfed18406b79552e697df49247ccbf0bf460d5fa6497b6333fa1516e7054ff7c3bd58984302ee8b436163da4849f003de3d7668ef82dcf654564a88451ba9c22489474dc7798f228c9b376c45d9b4e61eb327477a92e07900475abbea7f07dd0d2f4d403da0209bfb3c0024e11f9d5dedddaac637940578c53f3463033045f8883cb7c1e4dcf91d75e41ec200118c438bfa61bd3777e475e1ef73b9cbf18c481a0175f327917776e9bc1c7d7bc43b77aef5fdb3e38cc14e4e858bae5471aa2665edb38d2d07f42c88b270c294f78ea97a7f6815ce0f9809b33092371e130e3906bab30f12a1d3c4bc7c49b42e8a93426721fac41afd13977e738f133821dd471f672204dfb58bbc1aaa1f9c9e27c2ce724702a02ec22be74766714762c35980fc00268f89aa9026a2c716308b184da4a493e05e8332fb28623a934197aa99a22c12f912e42f42a854846322ad2f1c8343dec1922b57e64fa983f3d683dee112f37ba20e57d28a0dff720fcd5aaa594cee974807ffead1a7cf29790de8704bdc32513de0403638fcbbdeba92ff8e6e1cef6f3e158325fefc7727c8c003db3f4e49a4031b08b446bdb9846780525d61cc0a5ea4985be789f035c7110bc02c4e1033243b9a3c4d8b6e4cf012619b6edb7f3309072768fdf1d5cb313633fd8c6316635c99ccde712dbf2a2ae4cdf145fe000761f213b27c6fc991b74fd88ec205327e80bb04b066fef20de58b87ba013a5b33fcadb437ebd4ccfa6693ca1adee51d4a2f8300219bb5f4fd753563aa55060bc976a6443f9c8b8b704e8f18deef4385199ba5cc6763fe9fb6630f77aefeefd317bbfcfb5a7361eeede111ac48d11793b0dccfab1f63802078b6d0e4feda5d932259bd849ef78b6c35d9c1a6475e896bfd236d83cfa483657b83e8c26a6a20eff03c7240d7956d16857e0b90da737c2ddf858eed4b398c4ad962987ba53b89af590c45d6dbb0244a362a1d59f378b29e1af28ffdef7e53b9fc5f11d8baa4547d79d9b632b242877b7d6c63716dc07308903228f6c7f90efc427ef872b5cd17293f2613e21750b1cb78b888832ece340454291a0a7631901fa5c3a128f80e65d0bc2dcedb969212a9d63d9eac03b0f47664b006c97ee651d440c5acee33d8be1a969c99606182a0ae377476088b95119a726ba54cb850ac9c0b8c42d62a40f1e77ca102042c6dfd8969ba93d9a76b21b1c1763f43ad3d98e9ce012e9cd20ada8154351443f82cbe6e7d418507ceaf8678da49939fd2d3863bffc9186fc1b262dd0aa746203b22d427e693d87398950c40c673192e21c525e2280672ffd1d08f28534edb30c400205864692a5a6ce411f37a82c118182b605aa2ed336ea7974bbc91da464d7bc7a3bda171843019db2279bbcca6f7d2f97536ad0765ecdb66be8029e8df03bca7e626a02a3bf0f22eda40398e710ecae4eb3566cd1e055c30bf2091401ab8f635244c3fd20ba2263c745db44854a44b1467f0b16be1301f1ba977647c763f96debb206799dcc2da8b214a9f7b32b5466edae933ed4ea1b2668ce4c9488f884a75821ed67aa9aee44c2a34358038d20ba6d814991b237c32f6c9e1988e76b13cb3884b259aa4c31c77a1d69ff8664444362c80fbd51b26b579f397ed997fdebc08ba9b38585b46b3fc49a4ad935ddf2f8f48f8eeafa4aa293fda64ed0ef073b8f1a7729988fb8c2c858b34faee2b76d79deb1ddd6fe048195ea6804cdec3a5ec0913bb4e0101fa712c4e0f0503b9859c3a30f14de1f66b0407b7ece9bd403d3009685326487782e7457f1c36522021353f899bdc3f315f5b6b0ce6d51fbe955f83e427ee78f746c12ea948cb1ad891fa845dda42d3d8195d30a89819bc78ad352b77ff390d1b75206cd9451988fabd5d5fae338b944bb9b8182fef8800e973951af53d9992fad364e73953d837cf8c08f0c2e8215dd1b0ec13e8b01692025b0fde16d6c92f28b6da9e4e7d1af6d514383c1020bae95de9dde4d7a11e77b83ab71eb773eeb63492981b1c672542933b8c905ce9d32dea120ea6d6bd92839ead942bccf64af43533970019c98c98c2ae4642aef0d6a7ca160ad0d59894d10623742464fbe8cb0fb2d47ca88338af21589323fce9ac0fa2c7623c6f8138532da333ea17808117fd6d4c0b9e6c7e9e50dcce2706675bdbdaf8ffeac6253567df6aa86c82db2cb1396e58a93cb599c8d660e83ea23d70b9146d8c4c3441c0de896e561491c7c10363fbe66e5d6bb2e2738aacb30e8a35b4ea888c181a0fc4343c973f047b4aafed4aa1d12a27422069462b552955edd16eb9dbd5f627b02fe21008f05357a157f8590ec233b9e54bb16b9b4ddbd98e54b01a9793a98f1e21578f599bdb87e7adea68e4848e6fe078db0c2a5aac961be21e7e39339608c08b5fd7ce04848240e9a12f28f327c8468d960776e414c7ac1f83db1ac20263efea20e3197221088e4e95c8126bb44c474951387cdda6a4a5316a1efd7ae835a2d285663f37aef86f0af1892c471d690009a6da1d5241e70cf711e943a5afc5e5e707f880b407ca25665a06156c4fc1beeed3ee507aa063ce7416d068a24d110cf95bdade6a289ce58681b1919822d1706164244632055c252320aa1b3908d28a9c3c6c00f453aad86337b16197d8daf08a533f771e491d7127ef67d2807125e7a8e49030d88342ee69a1b02cca8d0b8c9dd5463be803eaa8e4b7f668c633cc61f48fa510981120fa80a7499a8dc4999b9f3f29c9e3b1a653e19a4e25f04d69d63e10be19f4136f77e39bc1262c30d853e59b4f0559eb1edbc1eb36a5099bc1984590b1dbbd8ed822de8fe2c494d686e25dcd36e31adaffebe03405c96676428e6c2f5e544be0219a3836f80ea7c41a697a0fe6150a788521b7a4debcdf1955f063442e1a8a26feaf3d5d1c304d791dca7d3b603662e60cacb75de951f494c8050d6f63735e122b4fce75a0710bfc055540a6929d8dc0136a431fa5ffbf0c8206b9221465703abcabe9739cf8d5f2f162201d461ac34762199c3d927d51c72133bb3ce729557c50a65d960b568c3c02626a8198a847b67432b2df49b11e9266e0ae9fc13d7a680e951bd6b2ee57eafde2717544f44ce00e1707064bde10a3860de184ce424982a555fa468a8088b21f246108959554cb36a04caa75c5c465355c10359d9c6232dea836be834b0c79a5e7d120da449dcc8f77d0f8e93ea08de8099523f19f94f26bdf5c9d44b0c30ca5e81036267e060989af780d56c2988076b73081a8cbceb3c9969396ba243b359b6ced763a1d71f0648600b9e0de1871068a375dfcdd72b97327e4dcfbac6ddcf1b5967ebfb64e1ca23c983b4d93fa9b3b59922825737203b5c5bfbb733ae16dfda02c9c103ebc1c5ee6ca0cbd9706d6269157746a69a0d28a7c00ea51b00734d0248b98fda3b0c3a381b1941b0a8c34ca050acf63d5f63947e529d5b45b9fdff60ae99b8b4bd484f8fb545ea9af9e39fa1c2afe3837b276aadd3297f482a9065d0f8ef0f3088d26eb5855442f1a6470c793a7e45207f5278216e8c2dde5e521f84798468a1853905f16b0065dd0d1b6e5ee6774bc1c13b581903bc2b18a8ce1654ece81ae0436b8a41f3330914a76bf232b6b4a13c4249fa6aa1cb8a2c54145031244ebdacc73de1839e9267747988599a3d9b71bf2faa25f6498756725a798cd3864e140ae262e9cfe78802558a572cceb4d3f09fc30dde859cd98e169b3e868c55dca3b0e3602ff867bbc0471f8139ce74796ed41a4fe3b975166efa8b3476c223de9f343028f953cd9b4dceb584a2fb1f44427e5cb1353c2e575df5e565ddddc4d8c34d28743b1ceb967d0093df5a834e0ce820e86bcad97c6fd02c177295b5664cb3628107d3681ed4baf7998d24b123d5b70a82d90951214c3fe2d92cf1f7a0c2b6ba67789931bacb13bf3c1ba10104f40ce1aeee11858a85f01fbbeaf4fa9125aa38fa6184cb9d72a1c5f02b7d0a73c3824b3a89eab4f9372a6bffb709c444028d4284598e531741c9a50f45ac2929826f11595fa6b6ad80651880679a0ec7ef710cc9109ef19dfbc3bd5e1fc15c9caa8fc8f5b17f21674c10286d704f5a9770b323aef1743e106a803a13efefd9cbe2f4296ebf8b5011cc681d0eedf748f4da1af2bb24c27e01f892f591c309f91cf6e86b243fb485b4658d3892669efda1d4e20e148aefca635db68e066d5ffb34d3dc76b2fc4eff75c988cb2599d3e8d1ced5b498a1d746832d93cf3b8c66114930d28bd1c2afe4a47cf26fb545e681d5c71dacbc07bd71946cc229f0101268dc0d59f7351ad2e491852523056cb3a43e8a5933fd6d311b5c15cb387fabf42cf3c9a3dcbba76b0a3fee02754a338980267621ed23e7eb79730d3b4087a97eefffabded58e9f40f6fcff5dba9c75a8c74456295d00e2e69f615e8a0bf77929e23fb45fe43643710763fa6f54c3bc9a1edb9f482e9f547b59c3117fc66456047c1d17f403f7ba9ae3646a40e7ba48200070451c99262162992310f112f08ba7b05a01565edde2ba90a2dd28fc00aca262132353e561cb303a40afb51c6dab9e849ad8e08324b0e3bf58395a2268aea116e7d5cff8e4d9d058b72852f4bf9fedc8aead7093460cf396053aba1fceba7f6b90f1df6ae34c84f9a4e29558431c19fb513fa80c20d35b56cd3f4ae19f5f2996bc1332ae1ba21a5d960dc8c8c9f008e1506c48d526841afbb045883b0800bc1fdc44c87efcc973936a7d937c6878dd9cd566fb2a0ff0ddad447db89eb3a7fa4d3a25632a2da5c5b99c21bd0c33adb12e56dbd0e7e38bf31a307b9ff859b944811b245fadcee0b37634bca98dd50f56aa79916476d26cab8b2d6541b87c15cd3007d959b8d1839baeeed649cabc9b298e55ef9cdf3ba6e282355f4f3d4bf4cc75ae5492769e4b4d3bda89a397a902cd1a0d184bd17d7719af38c32134c12962f33731569ff4b4eda13ad40ab5dd28db7d3e40d8a7aa71715a3db8d8c35df8f3290090307f4ea3ab6f060f8aac9be86a6d771d197f0a61e187380f659110dbb664b3c09bd70381a9f14a4755a1aff025e5c1cdae88ca8ae3b7435d763faf79670c42c874f2685f304472e994b4b4f6b3aea3dab925314dad08e95cf82295c6755512af26868e34dc6a8804aa6a583223426b386c529e7cc72fb7f07580a61c2f1c55bb8c6e94a755b5e628136bd86380c60c18342231425b62b063a1dbd777c6c997e817f6818a501b75e9c6f1e3786aebd4172509b277e36b6cb79e47bf26640441d35bb35004467cbe896b52d3e50696fda5c708a586fee70946547560d75b2c7a88b4c770ecf6c8abcd5868ced6e7c423091155fb631a8bec082f288b7755119170eed89c424d04ce1e368f151405c4e16f7cc6f20c8f79648aac8372b23dce5fd311fc8e9c24f75174963a830927c14eefdb117a32499a4b8dda161f13e0e98ceec846786943692434e4cfb36865158b83bcb3d541c8740ff1387ab3e6d8419c47098445b1f8ca2d1cae88e9cd6304b3b5743c4df25eb182a010ab41502b840446320d0302843dbfd98ed12cab359370b8051cffb9b63e8f402992ced8f8ba8eb0f552f20461e723baab79f6dbc52b529fb2c1a75e3f6c026a92b74b7e206714e430d026f53ceb3bd8528e573a5739caa487c298c84343bc5add90b1778c9f9a98691e8e6825d1e026bb155947eeddac9b034a05d795e04d26476c879004bbd9aa5439f91c3a01cfc908115dd8254e5db45301b487fab877d74255b5ccb448c5d574352daef05a292cba1468eb832255d3cba8ca8cf77bdebbcbfe7b7cc44686d848173c554d3ff4b55bbb4c36c04fe69506c50eedcbce1f11d216410c5545e90eb2df47c7c12b98eef1ff0f3bb4d1cb323e319d4bee20a4039b63a4bed8fccb10790ad41cdab05146b67d5f1faaf41e349d824a43fdf47e9c5eb5e7d2240b37da4b5a625c8393705762485ed8c2380959be879c032c78c7c7a34b0185023baf160b14b30478a2878b7a777347d01e0688228197f94d2ba5b9d2efd30976402f69142c26d7c11ad60afdf5529344f4e5a8dd436ae4b298f3edd7942370e37f6af389522cf4189d5854b8326155e9a5c64566c6b6312b2db17708c79aaadbf7eed53370231dd9430e55bc0c604b7b572c4b364a513182c0dda2689472bb32cea6bd0a7353eb625a5b6ae7681c8a52595d43c282a6c54c84cfb01f0a0247c71304bd1b2872794d677a19c924f44cd5a6ee432fcb00bb16e64a8dcd90c3accef224dcbbed9d6b09ea2f3ea74b0f8d7e4ae3aeb9a8b319b2ff8170b8c2756225fe9e7fbb179fbe77a8593a6ecba5c5a05464e418c8b7c83cee375a35bb58f18d8bd5ea40c612ce02a0945c26d268ddf756be594f2ac5b0d00c9fd8774926a7ed9c363eb0feb29750c85090ffec54299193833624f5e9dd2ebd1d818e78319e97ca9ce30480c950efac67a350b9bc18114c00184a2c34579f4fea3550bcff1e74074a2d6f94eec18579e92692518ecb824b74e76259527038c2d072b0d9e80553378d9de310ea396a4d112d12c734b302735956a358b0d26d986e7f56aec75327f575efe82c65ec87cdb8cca468fa6215ba33a58e71d99380dac0bed4f7cb19e103991993cae761b1357c633e4d0310d0486c4e883c36ddd3d12ea5d6c8a06da2a2d834cf56826945d5d80290d4513eacaa0eb9adb02fbea0f4f3b54afc918d437cf9726de0d89dc0568e1c4fee08415493f88ba6ee0327e492ee5ee932aa1a89d02b4120272a7671ad730af934c48bcfbda251a64ce17af0d17a180f89fc387af53bbbd27155812f34db7d9325d2f4b0b40e3492fdebb83d8e67dc6fc351131f3d749fd122ccd34c6344a68462be2b664fc7af53743c0f12ad208b4850bf67fdc0ef8bbd0f6578b37f7155789943b54f1302e8f147546b75b156094d24b3b4256e3962d9f8b951950a2a158db81a6b6e8f54b16174d8835967cd9e3e537a0f1381c0777ade8a54a4c58e79e2d000964b357148ab2e5847cd8f05cc02ac1384d658afb7708e94831fabc023a0a5750b28b76a249770d18ed02284c425143cef057cc5eb6d0ced2fe3161896aaae3679760c5896158a29dc1e32922be179cdfe834d7e01394f23eaf86dcb59ddeaf8ab644f59534c0ef07a62bf2f6d9549f6f73739cf0e4a8ef89f900e2e891e1a8915e172ec53eb5ed7e270a87b63251bec43ba50b6b5c5ab78e3431b21b1ca9a6b75fd84acf9fcbf44e07516d0e08d62b9afdac3ab7271d462d3ba113263c0e44ac7699d1acc68e831024d214c80842f2f9a2c8edb785d9e34886b5584b2530dd6556ed89900b4bc25c758ff08824c96fa2645f57f5953cd87415b16cc931399bb90f5ed37f29524f9a51b8ac3c8b209d4509bacb0f290e93396e9fe0021596a4e6681b55ff956be0178be56e57f67b61babfb65074a02ce6e9e19934cc878fe59ceb8c034264d844fbeb1fd7ac8091bbd2cd524cb312b2c0a5011fafcfb09e77ffbb1abab2e4e40de689f3bdb0fba03d063867cc7f758fd9a1297d48a94a726ecd3f8eaa219aef4636116eae34252cf09dfc2d2726be6d95f85ef0c200a542d8eae0b92bb03ae058627fc8a530a714df7cf1e8109f38a712826e2c2a23fcea8aaa4ad45a2285b8a8334860f577e86c1e5f7cd47c20c37e681a042abaa160e7233063a3b0225ba33e4c7b884fe62f6c61f6b11ad9da6c9bb9cb34bc069da93f6674fd95f4ca8b11d96b27ef2440cfe8d180924ec99efccf1d0ae2f1bbfbb9a1cfead6ab99b1e9c1a934895f2d7263402fa4755553e0537b0860b916497665cdc2f19301b4b4f5bd3640a96304ae47039b3701fabaa7c8a11f89795fda4b8463984686de735be69382d0d6995d3596e13fd9936812c43acc802cd5384f20038b292b994a641534071efe5d3376b0ce37d68a3d1bd37eb6d248bb544acf80339efb55fc4b4d021012e2fac471c0a33f45eb3a2a2f9e93f9e666c8902e9a463bf5c407cbce538fbf6f48f55409fbee611cce3b5261172b556eb859e02fa51f21b0a3fbc58b9c8210531c0e5c081cb459f72c59be74062303b8b967b4bfbf069f9a881fb4eeb8ffc57feb5777b2d346da2f7afe11874110bf66cac5f236d6badf7365b9578627d4c94072d2795800d371fddacac02b32ad8aac2e5a83f1c47e0a9a686070ec295244df6e3718e8aa46436295340340aa60c9f302a653e00b31e9f530669c0a78f64fb126db87f8d564d1b9007cce3856d3bf377287f070c6d6dafc352b5510f45fe8407375198e79b127b0bbbb89affb9dfb103d3827552d57179b727dc967b5a899ed3f5ae2779a0e0a59b695ad86de008b60728d84ebc38b5453aa7a03cdef3f29072673c4d546c561a9d0a28a1423a30c90801cfd55dac431bdcd2c4cfc0e0526d2b30c889d530fb6b584cedee94f282210cb3db887e01758de8a1a8b0019514518cac62ea53e40349295c26e791ce6870194f5cd7fcf04646a10086cdff3c393631c7492ddb5830a21772db5729976d61d5312b2ae80f2c4298d00ac23d5613941bcbc1aac2c91a5611a358a31a15f55fde6a92eabb6a4de1c181c77ff0ab3946299d9f2a79dc091865c04c22c2dc3a361547ca451a969528d55630f765f1a73215f913ca0c42e8da55b1a210fc130daac48386a341e0190c95106eee6df82e5c969308ffce0381d3323234e01618cae8782b0799115b6e748e91ced1e78e0528a6425cbdcecca4720691a2767d9985b821c2f36f82fa2d787a3fa446a000e2a65d0eb0cc4c4575f57d278f1b16e6ca673ef80ed08a41a3e882cad1070aa17fa02adeb677225be5bfb02a2e6eaab8623988bd8a1bbe6e0afdc3dba07f97249867aeed3c8ec31a04ed6e730d15744b20c52274416ae9477b328c0328403e21f7666fba9087339bcd84bc7fc565f20400f688b7d22153606744b462add602ee6f345ac8ed69f58dfb1920d112f922fc26979a1d4e7d3adf10ca0c783efc6b078304f1254fdf521a39f00d73dd63768b07b269bf5fcc1c9820969314ed571e40f40c929a0f3bac2127514c73865d1c03669b7b5ea0f45e060d152e5b40034155b470f46b520a7a8cd753504ce6f89ac59eb02bca134765004dbcb588df712a5b55d0f4bfdc0cded76c5c376ccf0384a14c57c7401967b47d716764fa01dcf77bc421eb854668f1e4fda797b67b80aff3a8f0407d7c7f2ee9ab806a0151e8566b12402cc8772077b5e4d3e00574a81698350eb10a206bd52fcf2925f3b1b9dcc3394150410c009c0bc2c8830312e5e5bf50d0d7f9ae61d13ab690b336ac4e56bdce29ceb9ef7fe2f217c0d66f992d7fe6ba98dfccf3e0078069656dce97129210b4e3c0eb99223041f1a4ac55fe502aba921119d79aa897a39a6d90d95a10da404569197284d665e96831870491b1352a447f6883e33152d4050b59c1d53558ff4951a5fdd34b21f0e1434a961767f2f2c527548a8ed0abb59848eccc43a02bb4988ac111d67426adf025b829e5eae96d6d80894d3c8468dcc5fa155c59623be629bda8dfb17412c271fb85e5f4168401aeab31c4ba039d8954102f743adfb47575a720b25f067c1a441b6ee217718a1e89c420ce543e5f6ae8fdc92d5669e93c8e4c0d67d863c3c3ce2f5341a00e8ef15ad3bf83a3d449c99bf214035e269c6b5f023f7218f3eb8e98160b669c43c613d50f65eab0fb4b55a43d2867c179a63e1edc6040d79de88067444192d30c89786ec4c19914b1e944785c8ac846604dca3263fbbb82b10ef63496e482ecc85e672240338afe2261aa1d72bf8b909c813e77634e25ae6a14f773b48389498fd038bc230f5c24589fd597692654dcd15c8dfeec3ed7c30d2915bd62f5a93a5e77dbc509554d9818dbf43a2f70979065ba0d995b9e2384a495011cdf6c9bb2f7a4add9f7b45b6f5a7c41f30e59822238f0b02a47587675915ea045eed95f7b62e8f5a485d5d61a91c86e88ad9109f20a9032c39a8eb25b6f08bbecea8fd8706d492a8836324237808048d86d69273f1f3d765d6fcb64b7eb829c754ce212f6ab2866433ea4eb7247293ad4770c0028f48ea1354378558bf94432ed5155b3a454ce7df15ac303f9828e92dad9eff0591644fc578c20b686ed1ed5aaa71484c5ec147726094c978df07d2ae5cca247404902893645352cbc326cf061a29be57aef37457ba3a3d521be2c5bc94d2866f57c5555c5563f1004315f6de1d6ac0a3b0f26834bb2028b2b428887ff24525f5e43b744399d667fab988686b5fedf3506739dafc407159a6ee8f5f17aee2dc4661a10e8abcdb416d9025d4de7f00ba926bab7e35e34985810604e57a4b1bee43d0f697f46dbaaca0b745901878e7bf64d602610d225d176023f965403cb58554237df4292168741c3e6051acf1f05836467af3c0d70365bfdfbf0e84fe240c1d0863a26253c17f48859f9158a0f86f00456ead65bba1f7425d4b3c18310f407f56c515fecd945969c2fa619834f4dcef4248210ee81b818ba580cd64e95aa030588e8dca6314a6d246cac25bae188ab418624d8ab013daca87b3d590c380eec6f079aa83c91f01d71e3e0a10fe89ed41a3e33ba75e2c64653835a5dca6082cc7353dedbfbb2953883c742189a856b2bb32c4b05c3c54427e89e1cd4fc7f60b07e688bd3ce2245223b9f602d70a21334ca7ac9260cc487aa50447f6b9425ac7f39fe9b74420e097262946363264e332264771f90d4c5b0cf6ec35f5e85f17d5bd3494d0aed2f356bfe54fa8a68000d20682fffc8076d6a213fb108ef7c665b82fb04f84f4a479096c632704c53caf131db33a2ec8326a17f0137c542b2f902602a6308526c0f80bdeaf554f07f3002d1524be038341d92c02d866f9357323164acd510e3c1e667962803bba06dd768691a5870434c4827e7d4c498e647136fe5f757dde27a9b53f02adf2e6f83c0c6f09ec4eb716a8b2a74eb1b532c156ccb4b0ed77ff9386ac8cf4bbc6eb68fefcd8bc9fdcd3d1e17fb67f2ec8b43fa08b7a813c6e7a6414552a230fe40c2152728869416732d108fc39bd22dd42dab61b640455ce8c5a88fa935346dd6dcdc9cc212727b682e0d768605f1b43480370221197cdffc2dc8d482fd849b50228025232d0ab1eab1c17bc23580b7ecaa13c0d9ec741d5713ba86ba3f2182027536cfcf62d772bcc9e40a800fcf1193be0dbba24a96bc0bdcc69b98ca40758fe38670624d155c423dc3b36164e8631ac3cc5368db0bd7f7187730de12c2e649e3b3a32f7f3de0bdc184a02e39fd9125d954586b11ae6bb7587f839910bc978ecdf8c6b62265a0c02fe0689aed47bde2ed92a97d2688f48f3fd0870c2d75ede5093f6998991d8bdcc524521a90bfb1f8fc07a16a38786d3e81afa1beb70d71c9ccdb555ecca0804832b80ddeb3eada4a2d90ea7fe722de55b6868bc4f82bcebc0ea7fcb27515d0e7bc3bcf6b0f56ae6f3b9a844276bd2ad7a0a15f2bbe45fd82d576ab2ecf7850983a29ea91a65709f7b63e57070a8ebd9832b7459f13a58b67bc4ca32f1060a50de40a79aa85aba3ae69a1e4faeaea5d077051199c2c0059b01ba71593284565ccd6bad0685f18be9ca6a0d223144c5145ed822520930bc290ac0a2242ba3644c895afe4391ca00f9cae517a8cfb3417767c4cd8d52ed30aa4fbbf7e22098e7c67593f635a8f8c2c00bcfcf8d72ad64816907d2c2061f390a504f997752606ad0eff936476099bac06d36c5da8da462fa4221f4679a778c95024a5743061219a47361bbfe9896c960b7ad5de34ff52214475f4700e0f9f22f4a4ca7df4cc4ef66b80fbe11fae6e6925bc43930b2a0a9d37d3f7dcfac069d801372d01273360af47841370eae9d913b79020fb614764e59328d8b37eb8e62bc47d97ae459d06df9e5f7225be79ab53ed2e5034b3aad6e53480b6fbe201a00b85a5bbe6b3b0e6d3cf411694b95b8d635ef20ada1c0d30c96d3db0c27f042e0db46ada79404acd8a9489bbf82872195b624376ccd971cba3ebf99b6eb34739800334698a1662dc19d163fa8c9070a75f59c9ad9c8ae11a8d186bc35904cce628d949de0b9ed92db55aca0d19aaf2eafe118bcd698d9a01d583550d1b925db547567ed8f1f8f39e2b1e1c762d7071f60b23e28976663c16716c87ad463816d4f551d8298ae944c2c60ed4b4c939378bfc8bd37f16dfa0856f468cd455aab260b976af4548b607ae4debe229ce623673fd56b9a62ee8eb70d9d6c85f054bdf55d8b650c4ec836ffdd36addfa0ab1f3f81161050509277757c00acd1afa39e689c56a522a451e980bba1db5fd2067de420f02dbd1d945a1753d8c4b7006fc746afea81da08dcc66703c3498d3e2cfbfab948fb463b6f4704db240bf7f7e91fb3f5434ee7fb591b6c9fb237c336c2ca77795e39f44e812530c5032cf53d4477c8516e95b7a94e6f40b9e9cc8e2c50a808be8b6986cd390d688e73844ebc7f58803e39b53f4cd2a44602efe74ee900da7dac4ca26980de4aae14603ceff658b19a3f7c45e2f35b6dd649777a2f187114312cbfb7f1507f661c4a0df439466c67220aabac7cd6d942745c1799236cc6ad48ba47cf8dd22414df871f8262187ffc27d373ce1101fed335c1be23b4149fc9365e2e9b2da820eca29f6e9e3f34199e965074e397f423eea95f84351ae4bbecacffcb9ea1af3beff1ee4ff192d1606410646679b8c53e4dbd3fca24f185e6ff971407fb9063c8e0a56fd768049d220e403883d33dcb038a55fe39084e16205c15983536c7ca0334b12240869e0fd040d02b0c3f8803d0b886f843383438f8f612c07e2eb3b1ed39e9f623e6611839086d1d4823e665799ec7c613cf11cdceb237b4fbd12bd7b1ac6feafa65f58d20734287ce8f594a235d1b3ea0ec3221f05d0440238aedc2b2a04feeb6579a4b7319d156a2520c53fad231ac089a9aced7dc89075254e17767299c00fe57525ec1afd049b2091509d4c7664dc8f74f15e9259ed25bd932ed9faafe983c41cebdbadb771903d2d1ed25c4499a6ea1f04a6952256f82f45f64508672d46c3030f5006f3f4f42cc3f56691562a4fc3b05d9d38ad71d8a499516711bc8761f421cdc9ad7118814ec0f1c59f7cd52359200f5387d669870cbd80284f2bc6ebade16f132636af5b43ddb1434d02567e55181cf6cc82fe6cc081b862ff62b6ff13bf6b4d3e785ec79a69da0ec09cb4b10f0108d1dc528b4f599735e31a8642d44c3279443147e80bc61514b44c1f537a9530a553f4e86c5211bd69879e41a89df950d78ec65ad8786c8085ba3603995b279bc417bec3347b03420e7c89b6bd2c10b515c86d883f52a1efe5b8cf49fd299c001dc888832d556b0a01f59971241e0a7dcbe79120f3bad11a23c9aba30b7a7603ee524ee48ba8b5d5450798f03e999489662cfd659a9293a1d7e230181f6a9b150459fc6453e5a1e9667aa1467091a15be5548ddc56d0454e300fb8cd55e746a788c349fb35e5198f78840229d9b6a1e4e6d180969596221f4516f2da8d6f7af14700aa3662e2cc042a572af333936dcfb10c9ca08b98dc31ff3bc6361fe23ee271d291cb3a423622d32a3168cac89664ef90093b09fdb3aa494b245d16123532e8d5291ccb7b38f1dd7483eaa45abd99b0a324fbc0da4c59922f4a9b1381e674671e9433a8d3e136c4c357b9c441b01bfd0fdeb02f234f3783e873b84144413dace4446d9f628959266db737e3d2a11096fe4a497f9f9876f97e209053d0ab90e1b12a7ec2b3e4617ab6ce7ea6662a668745ad596e149cb52f07ff69858aa7835665987f04f1ab65ba4cd96c80d629486ea2cef9cf2f73b0c60dbc77aca5eec515f71677a3c1539e9817d6538a50ac45ddf97152ad41c62bef2d9c5037a59a3bd5bd6ac9a05853ce9a38125f27705a91fa6dc081d7fa33dd283db67ede4b8dcd88b22e282a8c880d6747a564e48c7e89a9b1d77ce06522d3053a903053cd581d5c6ae294c71ab82dcdf65154f4020b787597a170988433a1ce6822e15edaf3d761c28c3523d37f72bd7e07ae4ae02b22c4cc1384bdd15aef94b74b86801fe6d7a564eb9fca26226ace92b64cc08ce2cd1f7ee6f6066a6637de99a04187651a1fe49dcb8456bc6ca47c518b32d963382e10f33c86ca01536fb66b0bf22d1589e7d62eba44052dbfda485e8de7147dc3e3dfe04e18cc19b92382fac70385f6f519ba936f496073f12b266f2290d75c4281fb6eab3403bb62f39b5cc1ea279657ea055800de05e06ae610a5209ed6611bf31420877012980c8f3c40397dcdf8543936ff4a02ce82582d208865684135ae36a5d9d44b07e8d69d0c0c36e77f00ff950e76cdb8ebf18cac2431578538ac692eac392e8099a770d26a92f36e77b9f3bd5ab6cfeddac925e8b44e7d9eab522d535451e5cba67e409910e1918e2c45a1e115d7574b0e51d44829487359a8a032eb9690009e8741236e1e5615aa49d96f1263c4cdb5a0efcd32435aaceeaa12d36049623e961927e1ff1a4397caa7c41c0f0dd773881bfc8b4f8234c6c8bd68bdcde30e6560f9af8f8a129d8689eac6d3b8084c06489742a25e334a692e6b122060290ba9bdb86ebde5d58e011ee16b1d0d54563e307a2caf1823d8f7dd108dd644f759b18ff3f40b33406cf0c94360a061f0e5b6f9655a148c917d13504814f566f580107ab554f6410e8479d3bcd58b614224199c44f75ee832e8e3edd6a9a38a37faa74ebfd3f82ad3f1f98ed91a15bc2ae1e589c70f85bace122f47d9bde1f1fa60cddef678ba1250a0f23a410bce85612bfd3b31a0fea26827c2b529e5507168a6ec8bf61c1814c3134d46121386a5ebb5557b62eca1b59e33dfe253a1bd90eefc068f2a38c4ac2d6e2f51eeebef3219cdf7934b179f74ef677da8ae6eae984654307ea81672d03dddf5a8d4d9e023cf1cf3fcf199a51dc2abcefebbb6bf65f329d60ee9ca149f37573c80ce90dc8b4d7bf2290063343408c2e5b36e5e7911ccde412ba700fbcfd3def04ed98bb560c3f95843532a81b1260aa3609d303e71c4f3c8948d1ad9ea719fa881ecf9b61cbfd89a0e346fc45d1c7126a47c78d8045ee6b9d3bfc9da844bcaec311c4d4f04342327815ec410879adf886779c0fc3b7e5cb928ddb0d8cff1e8f8c3427840e187f081e21132338945a2ec16de1209c31c6ada63d1c605704ce9bc0c6b915b3d1f225e86427ed7ca385372112602343a080589125c56665a4576f3ff1873f832885c45a2434f8368e35606d1a9604f0a7c8bfb769675d81c9490c103f27c0696ad3fde38db000af696d6b8a485232e799fa19d87b38e528348a49874fe1389234078e63c34b553685ba339a6546124c96f32d674ef45ac1d6f0634e8c2c6ee7cab171bb499b54df5707df4ebd1ffa2436fa16e15efe01f49903f22ad54925c88472b156a5dccc903adb49730c16f6ca133edca7935715d0ac3dda1465fe17f57571f5c757170d2695058bff68a937d1cd9ccd0d2d7e4c6a1fbedf815ef6605d2d4ee12b72a589296495f1f21d8a433a73b3642686b31b5755b0fa22fb9b8e61d779547eef72204490a5d09590849c5559098a0950820d08584275b6fab8f43cf25484f82e0c8062e4f2bc54f86e9d39bc3335b98b7f54a056fb6186d092c3bcfbb60eb07c19e5d3fa980f2462d4118ca2a1d882987f5435566c9ebeeed31f56f39563379937efe131c7bdc502339bd30ef338efc8b260fd092e2892a8809c8e3bd075277e7cb6ad1e579a507ede79358feb1464452b492554a030a0c48d705975a444b56bf43071f03e277d25a373d34cec731fe07242e65af7ea8e691246f37b8030e1e2779e592ca7baee088e35eae5dce7e841034aabd4db49cc3936b249acee2f4aa75ae19102e20591071e6cc37fbf6bd86f049ad4a40e9170c92b1a70641e1f34773c2a3e7f325400570ea9130b210c16a15c0c1dbb7b6901805cb3e3f7bec3c0571593b2cbab45a44ae9c6cb78a1a4274b4dafc7a26b36b73d9970167fc40ead80e32e1511ca1a0e7a13e2f5fbab741cc56f4318504721b17f8cca709fcdc84b4b2181953187dd7e02dc75a2fac83d0f5bb5800bbf3f742d06250c883a6a6353c71d5aef5aeee66e410d27d127ca5ba4b36ece8ab8631506fe0583f22141902b729a9d98395206249409bbf3557dc4ae17052860bbf0e0dd303b6d2bc751d2170185ec161b65319d53c936ac2be9a84dcfa24284d1069ea499b32ec56cf9b2193f4a51122c2ada09acd52a7966748d830b3524cd592a9565d5b290912f4648bb446a2ce7b69e845a351935081e2b8a55502139ef5b0505e9deaa05f598e1deff3499558961609376d9bc017e705da1e44a8bee28abde20847005a060394374d206c2de9a410bfc42063159b752e116542e3668ab2ea6b0d038de825bc0658ebefaf36cf15a4d8cba5e7938b1e1daa4334dea7f2f6e45860ae309082f034d5c5d5aceab3ff3133692dca2273206f53774d9aeb1eaf96ccd943e5964f509fbe20cc7b0332066567bb1e07d9f74bd667482fbe6c25a05a39fac8557091078a2a361272b181f00ae86c6301c6a17eecdeae5ce34a17e7d2e26ffb08bc7e104744338d3454aa655d28a28a2b6d88fb72c32b48911c9329d47f906b70a19027ce263490604d44286a35fe78fee642e20e5723f90a5074511ba1295af7beade863680507989859b30bdbac1cf638095806bc72ec73559ac306d0f4f1f11a4be2970d3e145f9a9fec35d3d4c417c358e8f73d0ca4c7282168c6ad9b3012782b7679f48254d37ca0b23916be3edbe4bd4e82a10e66c8d590766644e4ebbf37666440b47cfdb74faeba3a7d8e519b1c63dc395d7f33c88a3f714f173ca63b2d01368e8432ad73e5685c8ae7f9b6257603a993770ec316643c5e78208951fd06a3ea603b906a2fbaecd95c93c955db72ea35b58924de2ea793e1d184e424400575a751942e6e479391105e3ee7d16b00c2297a73bfbc7a775c338b02d90cf80c25088702e3cdf746710cd54d6f45c2cd825111d9ef8f8585ef79d6b997ac66339a913859bebdd15248c178aba41abbd9110fa3ef399520d4141ad5947d06a7fdc89610db252dfd25d2971770b65a84f09886906eba84885bbdaa378aabca8d1b12f19c91838082e328ec18f79271a264211a568f73e687c15a9f0ebe32d70761d6e6f3f60c7ce859c160590cec8ce473d4b86014b0b2d04605feab9534074319f75af33847f7295afb773b7919dc55a749c3c6766c43fd00ca31053a724455323b136c8f782eb35c88ed1e056a806f8b1f8862907191b6f9d81a52487f536e64a02fce373631d2c65087794e35432cd2788e1605918a9acdee4a0ea40a66a77c8c8173275c5b430c5c87b04f9b11a821dad381b4bc6f618ffce193d4b4a0bd8ca81697891bb704e291b339bcc85582c577289b3a5454bf5403700a67a4f823e6b720df93c3d54e48762d940a6cde771d96fed82a094e9de7f1d3c2ad59dbc0007172e5957ccc9b07abf7f1aee439778f58111fb42b0564628587baca00d17d9c3ae1bab4f2ff553ae6af6dfd267e1be5d6e95684d2ead41d1eec1666f449c1800ba16f8fba8f5ed6c8ab9672c0d85b66ff47aff42778e67c5022c7a01cd0b2584e0a204755ee05b9bd39fdeee8bfa94303ce636bb075a6e362c806080b4b1ba643f81cb25d42031b3435a19c00ab0f71aa6b56c513961a4c3595b2eb8f78a806b2114c528c4a2c83a113b23ab1437c58b6031d1a4a87a26ba24dd910894e1fec1bcf07de38dd5adcac8ea4c627ec3e78aad94b2532f397bef4e57431342c500efc16bff458b7c83d0f40e5fe054b4138e235f27f34a6f2bc3da0501d35b8ca41ff27e9c110f373bf636af7bcc135a3014bb9c39ec05af20d3a4e1d514daf651e72f335e5302301178ca5b7f34fdf13084dd36fb460d4112d4c416ce797757cfa44e530d3bff7a4db06c985004cb60394ed896e6f8fae67eedf148d5975a57e7a9df4f5382c5a6b6b1a65052c599a5cc67246b83b22507e22f69c33ab325d81d3496454768324a19208d0308fb3008549a6f4cdaf1698de61898d3facd71c7a059cedf890975c881e2354641d5cd4450789be5e73105f91dbde73a72ef58820126f03318ff674ffeb2a71b907e100c2109a252801a5e726f94f3f98cbce3d99d6e4eebbb66722cbfe1e29daf220ba53f843bb12f4f0890484400ac770ceb85c7cc230f3399bc527503cc4530032c4c31b12ff53a5db816c834eff1e27ef412c03da306e48c6713be6299396c650443db6ed82536000de83b91da121762ba3366543881a08ebad79b6fcd2af9ea2be352c41a910e1c25285737c28ea568125a835580d6401ba9141eab90be92b90fed1f367f11cce0011729e4315985d7fac7e3a0596e4967b8f0400296b975ec8b8641f1c5c72ac770c81c40fd44d06af78c78241eb577fa0ae3ff493a418a508ed9f8d8ee63887877c9712eca057b8d59d3e233274effeed25fd05843e0b0a033f92a82932cba304332253ddfa059e28734d4cd18ad78678db7b4a4c0686a65eead17b9e9d751800332674d3c29e2d410bd55ed7446aa6abf6dc8d49604b8645d220ec67b23f0e5a27d36dda196c564fcfbe8ed9327ad277b046f539cbe665c34e27c4a6ea563e660555a91011774c6ba70a002116b95e5233d28f9ceb015ee2fa9cc28a2313f8d5e4c9872c7eee0e725ef8c4f6bee3de62a7a17cfaacc93203664ff45779976bbfc72a6488e12ae9a582baa72cc26ae7bcec6acfc7c7b7f2f0c775ee1f72ca89cd178e8c559ec0631b9fd75f18867f87b15aeacffc5697fc955be58b4a226eb93ffee1781f12d9b61cdbc22df78873b57836afa636cb21dae713f8b63cf8c0d328e7e12bff9bb1d35f3164106b62533ed89ebce4e93a2b5a18e4337258565ab9a48968ac3e6e0808628f723bd207012ca475e11702f5f3647244694fa5b7e63818fdd6ef295f65a848cf8207990eb3bfa5c2162d86c93e3746f7f323ae2128aa48721f5dfed4d6c80f02a7f56af2f03fdbcdd90ca3ef41db3b92d598177e9a48736113173e672b44a3161ede5082a8f4152aa514437c78a50687a38aa5235e68d126ecdf35574a93eedc5339bf487538bdf94a94228ec27ff513559ab06b34860d6118caed6851c5ed1df3826fb852235e375d10da023a14e9dfd038cb0aca4e8a63d3e1be9f138aad633ac2ac48bc3d41d6e6d097d5849523bfca7f15bec107a2980631e44dafa3e91404d13a26319dfe2a309be762d14d6320c3dea11209a324b6a20e4547049134bfe104aa5753709d5270994c7d251242cae0844ec76841a76d49e39963cf913cf3be4b1c72938c1de2998aca201dd51629c6a5f2d5b8cdcc63a26e2338abc92b9223230dabe8ab5e3ecf5f434b58051971f4839b4060269b5b6a07d70bbbef7acfa5ccd574e6e36a40cfd72c45b11b446a4cfc4cc454a5ad7f4e7254486251a809afc156446e5c41e16adcfc0dcf8830ba0b2b6f59b46c17b2bffe68449864be410916d56a530ee23e4150b5248810e0b46587f76ad13221f5e152fbcf0978746c287090016a8a2028d7131223402607cde01c383c344acfadcd0c26c2ae963213116d9b5e62d292ee982e041c44866ea979d6f233471c6ca951602524738c2f9ddaa00984124addfd66c05e9a6532276be740d4b14c475ae3c8be5de7c92333bba47a027902201fb366fd59d093e9431faad585baf52403a3d54054050db441a8463007517882ac7c636df1d839f5bd3ae7623edff9e887fe5ce23e4cd6b443d4abe3eee68d188e4979bf7616953debd002317143fe98c7883926518ab5ddc30c28486477257cbac6f8d6862cdc11bccdced1f39f2e26ae1a0efa29b139bc3ecbf6f2b139ae424567c23c5d07050d17185c2372486165f6ba74c6d9bc95caf6d6a3c1442b28bde51338c7c5bc7247bea741018dfd9df1506b63973d1b5dedfa0503c7b8bc81638a484cb0454cf593bf039fd52e62884d4c4051f869b9fee61263853b8550c057825727f67e761d8f1421ba9bbdcd236da5952266370eb4c0b69e0292efa2e2b4f020c48b189c30e91f60a2b8859a449d1e520b1891c99d44d395a5c89c0ebe3741388427099ea4ce13bb4d7139341cc58db11b3666b21a17086f56c1e3ed1418f247babb299a5eadefd70804999b9a85de46c2bac1e49a902f2a5b4237c80c5aefacb5f5a91313d8f0ff82ddd8eaf71ddc50771fba161e2d07c94e77551cabb026cdf05c40d1f383269717c70b7bc3126ca206108e36c898eb29335f13e64acc6a0a2d25a53b1cdea0ce706a11afa1d7b689ddfc3e31e4da11b3baa09ca897ec92c04588eab7560baf14b88331166b1d7a539a7921c19a8a6575236912aa05ee236b49db058f0e66681a5c111441966f46688a42ca5459baa4ab484b703c4512824fcc2bea0125bf9adbc8065fd776bd00cd8071d7877e6d377a5ef0025168a02c1e1341d285a9df04dcd4f551a38b85b23de7424b7495c5e14cb4176716ae8d513b23c572fec96b5c0453be90bea3860c9434f58e9d16ae34d47d2f8a64788d5976cf7c6c4ac421b975a68906817ff409c5a12513427c8869e71449848ddf24978e9820acabb718faaa2f6f57eabdce964f8ebdafa9060393abc04cf40eba50dec06abd028132dc30f7d605f75c5a5fe2dd71fc7db1aa78f5ab3bbea14c7ac3932ee2f57fc4e8dddde5ee9083f5b36cff1ea0f791fc54517d9fd98ec920c1a2d71a8f851c0dfda81b7e6959d6ef9571d755531185926cb98a10cdd590ab81dd1e9ec07371f7689ce1913c4c4c02ba210eae2400b88b05f03e0ad4433fb81236204440d8788691b6b08c2585108498387c6ddfdf54c5b609d41bf641a555961481ecf8deac2b1e85d4c431acd77fa14a19543f8d0b8e8f306ce9372335b77fc70ae8274f8005e2d2aaafdb9fa8162bfd4110912c0121dafca7e2f3fd548ad3a0c2f7a51d3f71ff8fef159fe02553c0ca97fa53ff26818d047ce24cf730ba51984c432ded086999fe353e82427e1a55f72d6a04c2b77f040d14fda5a975a9d4a79f8aed8806a20e85f3ac90539c80f2e96e888001fe4c2bb1ff82405c4b6c8915d5e662b49594e63e14c523b1153646d2323b2162cac32533f72508ad53fe067a3d98aa2e211dfa7eab5260bfc25dcc7ce5b8519439c8649ec83752f21cc0b1f56390849592ad01855ce298024c4c00387a26a8ef7eed7d61de446f3404c16ea0df8eaa7177ead9f3ab6e23fcfd6f85159915febf7d60ea37b30dd236d028dc7ab6c8b0a05ef15ba497db74085c0f02ba9711d29e51cb718ae341fe5179ac36fdba73e7fb6cfa6a3f06b0b874266dc1703992c8ee110699a4ddc47f19bfd4227e21c9a68913406b7f00222336c0fc5f8f14d6417c0cfdf755489f8ac17e0e0c5e27481e5a0ac495c5d961ade2f1c9dbb9b3c5a0abe6572a86a0fe6a925b3bdcd7d15f992e01b4514b6f68e9114629a1720016e005fe95af03b8ef669ebab23edaa97fdcbeb6ff940f23b42fed287ee307cf3e546a32fc2da048722058719cdd637eaac6267b7e25c16218424050cc340e04ce9a5eb342b03ef8cd4e4c78c4cfce08a5b217615f5cf0af69814bd303fc9d5803b0948084e8516148809644007ac47ceaad522948028e4e01a937b4d55a42f39b04404670050991d28c10cf206d85c7b44c8f65e180683b3919a80b05cc81b300c43324d65cad04dda956c243eab0ae5453d93a47da6bf32b765cfa54f726fb94517b4dc17e55f32c38b2cac09fb74616cec0953fdb1bf439c6b743665410f77c20a6222036cd604849865398f6b60017a23ff19c964677d7746b4c5bd3325e370b3da48487e09cabfad6c34ba3174cf534f9d625828b56e7d4ab38b8baa7a7a90dfdc7db150842b2810932329ce2deba204d5626a7a67895049e374d44825492451fdd37e0b74eba809f318b326a6d0683b8b8a243caa1287caffc17ec426d0ef8d6bd915b3c4330597207895357b0dba86bba8819fa393471c8cb3ddddff8a3e6726d820fb2e51e4b12d14fbdc039e4383b8d029c36fa064d7da704a571b5f0e6dab81deaff3d9fea0f279b831e015549ac4a1f460d18abfab04696e4b605cc18850c515cd08b96c5a2df5001b848c1d6fd0a4cad1d2834a3a585768460571d7fe0b135aad4a312f611eae87bfb5670950d7becb151676c99bf619783ca8eecc16eea9e9e3cacf87e60987684088a33c09239d9655a16b46cc836b24291ccfd43e5a1cf6d932dc12a5887992cf2f62959559c5c8876b3652cc27d4ab8b198fe54ff93b21ca871b3fd333eb2d443d7fda1ea021db462fbd9f7a480b9acb80a2754fdb77c16ed2124cfbf56ac4a5974d808cec9f2111b599c19c29ee8ffb45dec24c4dab16153ae008996a529b0c7c8613e8a8936f10fe1a1c3c8c8ff3a908c595d91fd036458415d92891c38d9a256b23a2c12f3ac4c43ad90943d7defe10b3ddaaff2bdf013b34757581a1db778a31e4400f8e1d50f6be5f5f008273375069cbc9b41febdb76485684b2d2a712432225414c6466c7c227b94e8223bb2f23de51b76b1daf7acc07561f130be14d630366f6a78ddd555a8e8716ca2a0aa45a9737b356e61e6b4212aa1fd8947a0946949a1bd3fd10130f0c9935d9d027d0c0bf21d273c0cbbf6929faae06b6f6569833a3df4f6bf81489751c5b9f9b7f1db67cb30cbf905b615e01ea4955066de4196e99442aba99bfff76c8b52058d41f87a2a26d705ac49244e30d6278bd99259c47bbb986d45163ea734aabb373952394f714f45e049dabb6ea2345331f753eb5aa69c4247439b27c4c44ff7abb19960e4f3697e864d45fef467809d189cdcf4f7a8b99b877c887202b015e6465085b28fa82503b43de1cb2ee50c1b16eaba8241f8968a2891abfdb3ced80885cc8bd3341c032ae8c190f4e427b744744333ee18193a58b1f2b4cdbda9cf092bb19b0a42527b68733834ac183136587298cd430ca833924d6304a2659222e0a5f6660e027d62491a851cc41a3d7b535cdb17e3b3b70200c0b8f75e7934a1cb86619fafea705d2a3e0734b55cb8911f16385fd077a125d8e043aab70c268c5dd4d65d0d2980820b928f8ea489c35eef4de23ee31a430c573b69fbad09b856405dc3d2dae448068e187538e350199773ea2d41676fa4514cbda59f587bb17eef0347ed177a8ac5f0163511140448d27352cb04c483bd552405ba7ffc7128fdfea3d76d17ba8ad824ac9843f65d711534b8720cebf400a3d5471de4b48f136098527b65351c7c749a697732d57136570ba3437017f26fe2984d947c9cb3d5aee0aa2888863ecb60732671d87e8c1b416f3ccaf7fb0e6c9bfd07bff0cd7989d94d2f89fc1af297dcfe9c8cdbf18b70b6943b890924b965a638f50f90b2e2496d9216f13d630d3b3ef729803d80b651be4f0547ddb220889e99507bf513d40f4825c2a91ff27e4cd6b8817ee47fec079fb9c68ccac6ef6521fd8c8ad0da303ca5898274df8e330eb8e31237ee71c30967dce080abc0253e02017297a2a7244eda01ecc5b19b6f01ceb9ded9beb21c81754765b5016df71b8dec9d6f4ee776ea6bdc88464cdc903d74dce023a8cf377bbf6deb2c2da7db05778098a0d9eedb9495bcef20b6982142c01b2e0bd13545b205d6950edece490dcf10f151e7dc45457225341b506195fdfa0cebddfaa26a54894706da25c9f071b617f6630127911e582deecf2427faab7a9a2ec0854a0b7f00f563fb8b187b8f32c39fb18d11e789305002e4b543b4ea8c8517b11a01229013cb077ed299aaf78e18dfa3e4a4809b783a755abb549a8218eff418beb5aacc8e8835197bf8d5e8fc9dd66c9602387da42d039efc6d6707bcaa5fe3f56bcabc56df5e4714b89b99e54bd92f09ce9a28a72929be8c173821627e4ac699bf84be595f1e356ac6ebdfe2f2ccbc471490d453adb6c45d91346d72823aed28e2a95ed2bfdbec83b5fe8aa75082946aaa537e6db683a7cc2eea64f9d82876a6c6f2ad653f2401978dd9ddc939cbc30f0a0c9fafa58f40141610ac1b89e66d6317ac544e4bad910750e63a275654b53144d95843f95a4b2e8a34479720062f33adfc64a414e56aa3a54567f07b6f7a7c7e5abcf90d10ec39974ef8283827fb65380150f71781cbe677d879d1c0010469d035e22797ab34a8cecee31a2090fcdd6e3fe0f2158c29a60b9d94623d6092ffb5e5e2db9201e82f85806520dea93ee46601397e60e43f7c5d2e85d000b8ebccf490670718535da82bf839420fca705856e0eb86b6fe7e31a36e364b469b34a85e8cf26643b5ea502c01d6bdcd8b313eb942b8323ff97fae24f5de86170341b1e73a2c509eefc63ef4536e0e4ddd8b0f8d161abae5128bae5be15947015ac29ea4c2c3a3490da1b060d52edbd76c7a2c7be0adede3f9998f723cdfbc43a96cf3732e2013d9397aea678180f619a90211767fe3841f86dbc4e9cccbc72e6da9a0f24d8de73f8dd29b3387cab1f51020f3b89b32ceefa10523a4a6071dfb4728c48d92edd5ddd3e90e0e8da93e8880dc58dc44e1bfa57e2c0ab000ed46b60fc4dcfcf3716ac4f7c34f4afd5814c0704141f6eeb7aab8f4337be7a22ef7c86ab6dc40926962991073414143d79f1123fcc4f772768a32c3f7e1d27a71a0a860c72244b60bc4018f8b4eb83e8be4376af141201f50415f61a67a6f85407301e711a92a99e21c13010cf1e950b8a006b82fc3eb56328d7657ec0c508df2060c449cb013eb90561d1089a22e4252869a53067a5bab71e376d663cf6234a618f91cc1f872694c3a97cc97ec9b2702646af618bc0524e1f66216c00d0169d53597a21aee1d91eaa9da4a4d6c27f5bc063ea9b0fca6a1f1acc22c2ede8b2ad6cf343b4faeae116088583434f9c244aab6812ce180eca0f7c3848cb972e13606be1016cc2df79530eaf78a5a6a9cf197f0034497577ae6c3be4596ed176a07fc2950b9b004f4fb1ebd04ce4664f85f640754fd029a37e6705d40d6554d079930b6aa64da01ef2fd1fb10e80389af4e50f9a3cb95dc197031eb9fcd6ed245d2901fe16d41582b2e430ebcb83bec15771665e5434fddca47d09895132429119ed1306ed15e9e6f8d65a48db45023bbdb965b4a99a44c0123070307e60645a688e245cf45a620f2aa0d3cf3c0e0070976e9330f0c5c1f55cc323273b2a7aa33cde69a5763599af5cdf32183a5d154fd6c68ce7fe3b26cadf41362995ff38acc1b74cb30f7074e6f4f03cccd2f5c802a428e54c58dce256e0ba248102e78140c1999c81e5b0fb2cbf0a3a801918767e738d945afc6b2aa53ef866cb17678301543c479faf507ee70e3b22a483d1543e8e97701d2cf4f4875aee2611ee4f1dc8aadef552381431981e7f5fad87a9751ca2938761979f493679e71e2d16df00c138f268f1e673ca3e4d165f476f18cebd13bc633481e69bd79e95a5cc24bb7b28997be01f1d2436d458a0a5e7e41b4084351898837f508da10d9440f407026dec94d9e89735cc93339c77557f24c2ef24aced16ee44d924769914a443d8236c4f660a5d87246de8c50b4c79b6f974d7c7b03f1ed6dc5b74f157c9f380d59db3d185fe4db53d6c14ac4b78bbc928fbc94cdc17a846f1f792f406dc8b76fddc843710eda1ebeddc445e7a095e2db471e8ac8c12de7db397bf24c3c1bfc12dde4451c7e895ef2e28c5fa25f4f86fc129de4b58b5fa28fbc8ef14b0423c851e47c4c024a276a3cd966269103c2cdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcd76e2c30a4b8e4a0e8c9c544e4ace8b1c548e8b1c16f77250392e7250724e724e392639de97639263ca29e5dc1c52ced79243ca19e58872ba9c16979c2e87cb09e5b8ac9013cad97256602167cb61a1859c16541d274f8684a2ec49ab66b710d78946a45b32999c4e505ca05ea4a460c4705aa99417281754658505060e85c5504e4e26a6128ba770da55baa491c8bd94e8aa33198a3aaece5e7ac8fb5eb8b47016d2c2976ebf16d4b3a77cae972eadabc5c5c5c77e7bc56a9cfcf6d270b617caa7f05cae71f2bcc249c86adb48c6131a8e04bbf299c81480f8e83ca2d39b522aa9a49246a7913aa595524a29a594524a69a5d44394d293a7d4435a70ec02c680bd758e73903d925f3922553e3f3e31d8ca135265e4ed0f225265bd890fdfae60abd9db951da962fe959195cfca6b75e4ad5d19c2cdd1a4938406a6239f303b5232719f0a8caaf8bcf599cd39eaa56e503bbdd48d7969082e68f2719db7eea2a614bbd6f999c8ecf5f441161768f2c159c1648cf4e1adaf746a5e66b2585c350fae7e4e0fae602bafcf41030c1d5466bdb20ec39935bd140d2995a05e594f39b34445aee629e9d4352f255df31e3c58d3595c2d9392bec262d33229f9a51c305dc5a5abac7c3ba8d72f25a5f4509e7b7605b35acf5ba72a61ca900bae565e6f9dc5056b808ef82b3d3b6f5788bc75b1e117eb2324aecaebadafb4e697a2a1b2b4959a1d2aaef2e9c012d1a07d2bad5e59af9fca8ce2cc94149edbe1b0420a4c0b1d93cf044db2183d36381fa0a1a2d66c8e830eeb5c49873a0f96bda1695f09a757967aa59e5ed9e9954253cb2b2d912a6ba2e1a467aa31fd70499589c7b9f4da44535a626a99685a3246fae944f221e9489d2b3d130c27c429e9987a7a657d7e259d1aa12d0546a86416daa48fb738b8e04ad05b134cc6706edda4734522e762c74999c44ac673e5c3d1cee7878a6656466ad5346bb72d14da821bc0921902b4b80104759d48341a918c9044332b1f233fab232b19c7f8c5fecc5cd10bf3573efc220a6fc94ba299950c003d0030994433ab2352653310d224ee7643285cc5a4ca7e2b9954b1c9a9338542be6ddbb681f757486e50fde6ab990be74e1d8a6866a5c4437114d1cc0a8954d9cde56f1f08815fc9a4ca9ea0a0b8e8564644332b18bf58ef6999f9997a4ce13485bdb2ce8345bf1dd4b54f46afacb3e886e6f3db315dfb443c5c700543a5bc709312544a0a2a8c00c0d94979818a11ea1091312553cc2413cdd8308d82b8a615f556b15e59e73ac6e6d208e4c08758d363560c1d19c3e3ad0c31745a2686ab57d66d2886ce1643a786ea63b84470c118aeb7ae62a3822363c0183a6fddae603174640c18238c614d3a5265bdf3158ca56673965628fced93cd4213b4b244c684dc3a8b4947c6a84a5c3429913127ae09385d9049ebc70ab126b4deba49d63293653d76107e5ca11d7eb1be322263ba878f8c39f989c998d191954cc69cdcfa0a898c91542c0007a9b2d65d78e00ac95b47f1c0d5ecad9f786009e7ad9f3cb014be75130f2cc1de7ae7e58822cfa493637e690523796089662bc14c356d0a1296964819cbb2cebd7806bff5928fabe7ad8966f481a5d75b9cb72e622d43a31424634c406eac65986565771674675766f29147666f41ce6744829b72182ebd7330b63a0f871c8864a193026b934fad71cd6c640cc8b1fac356206feb119da883917291010719d3b9751d3246e4d6739031d2add7d032d5ad751ad6de1bd2403de52ca2613a8c8f668990f4563e5265b76d8b906f4252cec2f30ae655570562f3d65bc1bc9511a9b29ef2563ed200b6a657b6d6bc75938f6d49950d997cde7a2af4d5901f32f95837fd5837c5ac9bd458370162dd74c4b2b894bc3505bd3569bd35f9f1d6247beb212f178cad576dd5a7df123742ed2129db062965cada483dd2508f3534467982b0794a2975abd519a8db60908d50e9b4beac8f1f3e3f2900b20af20410b2203f822811e249c2c863c0fe05481f5de787cbae905fa47b247e696faa840ce5dba98f368b611e1f7ca80d25427b623c3e50e1410a0b797e38e241fa33a3bc7fc4cd8334c837a991f021486cd9bdaace762ed6eab536951f0e59a7b7d3cf07777a7bc421bd1f47bfc7e85bd40c391284d2e25c3e70d14a95acf73bd1342d478d98d65d5bf5b3213657b956a83aa76975ab5554b99aee6d0b7d34a8378f2f6413b2dd7b05d359cb6c32240f724c8bd11ada835eda6f32f19c2bb4048e9d5db83979fe7041baf34c70e419d35f51f0c025635a7ae48da34794c7fc81a58fcccc5432afd8bd170e8d8d66a3d968369a8d66a3d968369a8d66a3d96876a294524a9188f103e9101f43916015c561efe4a77777778e1a33dddd9b4f9c892ed2e282a3d8c8881b5fc091cf4b8f1e685f10b2b9102b9abe05e1a54fe728b5a23947b1cde7bb40ac42dcbe0dd6379a15f2f84242df8e1d58f287abf9e6d2a74771241d826346b29112a42771e2a56fb06df6d23758cb98587b37d80693492548263e3a384af2729ba13ca594520a820749a149125e4997a04912364912b6491293242d2685dfc2832649f8e4e2538d6499c0acbdd704c6a20bcc0809f98d6685766a0c10e7073be15c22224061362200c3160686092ee41c0a2e75aede55bf321220652c0e8f8f2055100fc27cfdc00a1e3cc0579e0fb49edb429cc7fc9281f043d143a9183e140a9b27d319239522ceed73b00fb914bd103f24bb11d8018fbec957abced0c7ebce218fc4133fc11c5aadd6eb407d64ad3d8aa66b9a735a7f38dae5f36bd4bd7ef4c3d1deb2a7fb68560f1a6b090ccc8f2e5b61abd50252d3030bb4b65bc0dcdd33c65a6957d1021342fc182244c18f2ada0431a835f0517df880fa80f130052776c0b29bc851d8a20822a270c1112784b0fa882876504b206b7c24317dac00885a6bad3e6ab89a1e50a8a14e7d8860f3d1aaf17104f591d343d6d480e364f0ed2754f7ccd36305cf3df3f438c10fc72e31b2dd6e6976770c75006555cb2faed20fb81c2f708e17e48b62740065c5396d9531555a8fbae2c7bd434bd904ad9a5bafaae84651bdeabe3266523ef2f3c3d133ced994db663ddc383bde38451f8163d68d50e863cd439fed558b78b8d6439e768373fbed50f5aa6f845cfb76b8143d8059282150d3ca40bd7e38e6c791c54d3ba3849130ae439e0db9fd76a04212e07cfb7670425ce991c5a2054caf1f0e3aa78c492880c58c8c36a513469086f2e221812c86103f0a49508507f9899774b6e4e961072fa577ffc28fccab1f0c899a2896401d65dd360860b1005a816f9f9eb5ddd1b5ae9b0dd85ada6ec9b567ca49234a068bc1c880611d38b870a70d148a613030303035c8e6a44e58bee1a9b75b29af0a6edf70fae81393d99096ad7529e5b417a66b13ae7556ddeeba053bf11cceee8e91c3b736caf842043053afcde30639f8e944d46a0c1c465e55910c2d030f1c3c75e2278d33886319037617396619629e1b9552ca2965adcc1ab59359c42af6d92e597aa07d66d168eb81a7c70d019e7968b278d3334f0f43be0ab1f51ca993311a00619e71e855f4a01a64367c248d5ec5703ac0023d6c50822480a0c8107860cd0fa65745c094e04194110faa8a785006091e641f221e64d9c7117c0b529ca008cd12542ca105ab817cf4e97185152d08c10f588480c55268d10326f4c84006533c410052fcd4207644881556b0a2d368191e47001591c288278c98410e8b034718294209456040050a58d16b68191215aa18e24606419af8002b4201044a8e5042084978410f58b1f534e40e9147cbe984208ce821c8338f0786bc0f9e797890bdbba85c1f1d053112bfc8ee59c460fc0ffc7044efe7a7dedf9d1e2ae2883e1f47f453bcf143491516172451c17125f697b889b6b8d1394ef4832b5d7ae414c04fbde2b8003b18b7dec18303d641ed032d37adb5de8307cb7e3d42ce7decd19b5588f590fd7cb0be59eb5b0f6bbdc7f6dd5eb1f7e00f656f73cf2c3876e1783bc1c5a16558ee9031f1ad565de5ed551c18109feb67633be2821c4ea7d13db559677518a962f61a5b4a9844ec130760bea2208721a6c6506f196b3feda3dc8cf65aadb34ea7a19d73ce6ddad0329b4f8f413c630b96913892071fe4103f6538fb4d8633c4e946d91a9e7ad844a4aa7bbec306f8cf6fbe186708179caf8f73bee6901d1913ed4b8a1caab0f301782652851f9e2381ad437e9dde1f8eeab67e38a64ba7df277a41477c194535e61783dc761df2dba37ce9f1a5fca20442fb4f4a69b7b5dd5ed75a6bb3802ebd59a71fc8ae7dddf5b3cccc2c550ef69c48ba89922aee584d434a41cad813e09807d80fc83cad20e6e121c8cb4f87fc0ca05e072a6a55a042eba3f3883107278dfc286284e6b9c8144a1eb42fa7903d1799c2e7c119bc6a9bc3097d6e85163aeb316ba5528dfa9b33b4bbc22afd4df6a4a85b6d10b66a760b719d6844ba2593c989f28a8a30707282e202f5222505436585c5bdafc56505165a58b5d032b24a359adfe417ea1d98f1fa822b6568acb3a3246de1398d85e7ec0acf6dddf45cde432dcf71df739df79cc89f1bb13c475a79eeaa3c5782f19c29f59c49ca73a717cf9da0b878ce05aa071c6e6cddd3732926cfa54ccfc1283da7729f5b61193de7a2e7bceeb98f7bae25f49ccbf6dc0af63916b4e75aa8cfa9e873abf91c00fab900c8e704d06d1eb3e68b8a4e184d89c6c38dfecc2e4c1973e8982fa495a221b2a84716fd6a3a16f5547bfc540ca46f277d7f208f17c201fad95e7177b71338760167943b9206dd135d905fcf22017ac033e2d74de097ea1c4d7ebd73eb3c6df805c7ab5b7b2f0ab523dbd1bac7e4337da34f242a7df7eb9eee99754ff77cf5d6281597fa9435b2a6439ed1f9c9abb7131c338b6055f5ea72a7654e5fcfdc413b9ad9b8b016e5de1314eadbf9da7dd3668994b54cb417e53545c3c9c94f9c59954f3c1d3c70e228be0305c5513e1d50769c388a14d938e1c14ba46ccf7ac637ea449da81375a24ed4893a39040505050505c1c071cb548d7b50f6a250aeaa8e12c405dba66741b3356ba66bdab870e219fcf2f98252f6d5656d8353bd75aaf7ab7aef74871367244d92503d47aab5d66aadb52350c2125103452541cc410208b50902cfb431ca90a8e93e7a1be1c4e8a34b69ad943c36fa45d558f1d6da1b54f5639e1b9f7ef3036f7ff203dd646d1cf58083e13062c789fad97de4a6d7df9de92458eae8481da92375a4cecba73de4d33b081c337d60554dcb84be8ef54ab39b0004f060bf44d676f7722854d7fc1c72b5da35d105edebfe8167d4af8dc02fdfaca154dc9e6eedbd2894bbf4f919147b624fb48936d126da441b1bec762d4a934da732ec762d4aab322c7851f5533d4a1031d92c68b6664dbf78b0a677d8d3321c4e6f58cbf8f08cf85d921855d185fe62f86400c04b1e24c1e2037c8ceee4d27d31f0dc3eab841b5d8552cdd62155aa28608250841c3e1ca48a1fe4d90c0197c3a97330b48c64d15a3f0a84fb34a4e635846ce09c06bb857ce32aad1e7b7673c2a59e669d86ac31bf78821e20dcf8214f46afd87e9d05c72e9c0becf3d9615a464a5474417e30440254af9ec233e2a7007ea90ed37121192d43722679226bbb7b39142ae4ae523d88fafae5d02b134c6a44f455295cead3550e60907dbed62b55f5f28e4b43c2105d42ac842a339e81025bc27446267440ee99092085b8d4e3339da167e21201915983d9b7732b3db214e31101cdd3075b6232065ce9d99131a09dbd30f2608b92174dc810448becdb5b565660df1ee5494709128e3c41c866d402d707aec0462cb8d2551cdbbe43363b241ccd6bf1e9954a129519bf8475a5a7a5c52f0daef4acf4f4aa5b622d45e09618cf882d5bb424f96eb9e27bfb5a2c0a555b622e9d6f074938dfaa2142362db1938ecac52f412ed812fb7e11f6782f5efcd274a5e77ba567e58915d84a100b8d94a1382b464410d4125b39b2225b99ad2c59f1f9763a634b2c94c918f0c5abe5480b92ef172fab9ab5e490fcf0819d6062477605cbd022bc92f18c085479a8620b0a4592ef2933109d73d48fbafccb119fdaf04bbb8dcd11383d2f5a4186d0910dd9099fd091cd9028710111e2b6f3334ae8524204088c90d8e3276393907ce49f8f3123368830ec0032040023e3a30b7b5e64a992208f973eb9f6bca3fc8e00022524d08607b73a32b128c7f56d2359128a112ec9bd067550877cd247721d4ffa484e499674658cf5ee034b4efadc7e336251fd7652c6e4f65a92df80faeb96c745f3bce49927089f8f22d2c7d18e44bfe45d6b9d8a1a50df3a67f2684ceec359a66f09eb29d747ce894433a36e34baa3eb37a08c087ae62902f630cf3c459ce0b9adbbf76b510c95e4d61b7929eb3165bf8e65bb1e97a5cabb8ee4c5bff77a9bdd26920bda07477e43f7d66dbd4e1a4d3e3ddbaf932aae21b85cf5ee7ac8d60a9e38af0e43c6909cbbcedd2f0503fff517f8ef972a398e2fc5899b8ae1baf56bbde421e7f19b8f4825ef8a9c452392c7e347de0ddd8b381ab24371293cdb36adfd6a273b275a4ecb35681a47394e7a9d885251b7715a48dbac26655c82631794265cbf3da5cf4ee4f520f251d789462291c8bbce455d27124d9a9edd53360f8e5166b36be019fc94d26dce6d9b5e68ce90e65d48004f9d86a42e4f3fd2cf8f8bd0c49e453190beaf18a5e082f7b921b0cdf8ec955da6aad7761aacf7a7c31237a4b7eb60290dad83f54d7ef6ea20bfd48d76d91f5bfb5956d4e8f494a6d539e784e19a41c07ece39e7d42a3d4d24686aa666fb0de9dd2e3f10f57187f4d0773986ee673b6f06b9e23a96abd333fd3167052390a79b8cb11affb7686a5aad19a48abaa516bc3f51293308ccdc3c4fd7e471f43c75cfea041fd23637a398d9479c733681d9b6eff84d8828a5d69486524a29a594bba2fb4134698d31e6b8a26a9bfbe419d143ddb6bba71b4e27d2a68568ed64d442335ad7dd36dad04aa2fac1f003cfe6ba18afe8443d5c9d23d26c1aca90d1838c1aa19f5beb963a5327a3279411b98803cf76e888c0049070df042210c307060b189309d775dccc8467f0e9c4e564bb8b62229201c7e9642a9d8872cc4cb7281cedc9d103783466da44d48d5044396642aeb98831461bda1650ddeb974fa777b74fc60f4a7f2472818a8caa756405079e9eaf5451e9317e1ca314f59c9d566560a00fc3e6018ed3bced5ffbfadcec34cd9bdf09a011d2ea8814d25c6b11c79d330cbdfa96364a5e3ec8b21c6ae28f4863834c46b2e492edbb41aea40d3332990cbb75a12d0b8fce2117dbddd30d278edb66a36e8e99766a6f536babd7cf45fe3a830da9921f0c40c8c8738eaa572b6344d1356a0161364d47d93cba75d2b2155d40435b689b81b5d6daea3dbd356babf7f4d66ab756abf7f4d6b62d0bfac5a6da87b62c7a508b8052ad66b518f44e7b4fc35e76bd96dade912a9109c77b47d3667446abcdea0f6030f2c1ed96d9ba6bd76e9c96a9ed03c7d45aa1f0d26b28bdcaa4aa4ec13155093e61168c83afb296e91dee1ab08ca6d9e8e0a54b73bdf469998682bb0a4da6c9b4ded17aa7ca344d56655556b380424d62e7a7eda0fd6665f74ead816247c3f9e9eeeeeeeeee596da81bb178cf9fd93fb37f66ffccfe99fd33fb67f6cf0bae1b5dd3c9bd9fd93fb37f66ffccfe99fd33fba7643aa1a0dcebf933fb67f6cfec9fd93fb37f505cbc48b9f733fb67f6cfec9fd93f292915f77afeccfe99fd33fb4765c57f66ffccb63f2cdef367b6fd71efc76b1e4b7a561bea462cde136836d06ca0d940b3816603cd069a0df482eb46d774720f6836d06ca0d940b3816603cd062a994e2828f77a02cd069a0d341b6836d06c2014172f52ee01cd069a0d341b6836504a4ac5bd9e40b3816603cd06525971a0d940b32d108bf7049a6d81dc03f216008518c32662e4a54f1825a24d4d6b19b5b09bce202fbd4e1c6d4e20dbdcb696719bae5a63f6c84cf6d2b923ddecba96b18b8542af6e0891972e0a47a42177dedb32de1749345392405e88d2a4393e9927272de3097fdd7a75cc150ee18273f682563bba5e4be2489dd78eec99853d309f58bf5a12d66ab55a2de91393cdb4d7ebf57abd5aad56abd512ddce744239cd82644bd6b8c21e984f2c0cc3300c5d2e97cbe5ead84be2bc5eafd74be725772a9dcd66b359188661e872b95caed7ebf57abd4c5050292661ec89b0e81373856118862e97cbe572756c16245bb246ba6418866118ba5c2e97cbd5b18e75ac6331548b29baac0d4ed479d51086611886aed0e572b95cb127c2a24f6c7618866118ba5c2e97cb05e36b29d5c0b2d882097be552a9dc51a87ba34dc4893af115650cc3300c592e8c958133ab41a57247a1eeb5d6caee8cfaacd239eb399b73361ac2958ed330d22527e325873d30e9dc32b4fb404b3f1c0a83a93e24aa217a0a2302859db48c5af42322b488b6ad65ac5c6480106e141bc560408e455738933830ab81301c8bae50e2d0aa552dbac2d9a495d6982b86934e1a5d3d5d4a29619e256914bbd1594a297906911bc873ffa82dbb7b76a4b15ded34648fa468249cd735b4475234d3dfd1a3289a5f70f1f493b019290a725c415b31c618233572518a40758c31c618e36c28eecf586b8cb1866e0105b08831c61863a4536815a5522d5eb0888a1e551126ca881ea3a8868b6f25417a8e502d711c58c529f1cbcde1461af483cb518e50783cad41351b6fd8c0691c191344ca549d1b55677bd19cd8512a868f1f88818f0e932af627702877c6a2a0746c1de97befbdf1933120a0cc3967bb58b0c1ba8667189132f6b623f956c925dfde2e9e7eb20291517fc0a896f8c807176c5777b541792bebc18df52bb8039581c9181709902b1aed7ae9aa47549b19aacdb31c31bf6c384484491c11421389a049822609254e52a064043d29782205b1951100212283273c139141159e9d6b6cafbd27e524828b2e418f46dcee8fb26c09c4c8cb94979204a343803441890421e56c96e084f18c9397dec9d34b182fe90c0693992d333333333333333333cb1a729c16524a39839c9d001a324a10d80fdcdcb78d6d4754a4d1d4d341493bd288cb1edd36333793947826e94855fc00c7524a296527a72c3299b6536fc741bb7b5a66772d6efb0c30485502d8a3e0f9b3dfca54abcd39e79c936b5a882c3033b34b0bfdaaa7b965d956422a1c8c2e254a19bd60ee98992f33a35819dadd26a793c98909a5e4e2a2482f4629a25407835309ad6c2cd635af7eb465baf40a9285d842c7cc2db0a01a9d1041b31ddfaef02ebf69f687fd389d78a8c46c190b8292a19901000040005316002028140c88440271204722494ae30314000a6e8e426c4c4a16c7025914a5380cc218c3084080180008010a1499a92902014a448f118c931dc7cf7e8c1c85b66d77dbbbf324c8131646ca8dc51166d409c43bf800de9b5219030961805ec0716904860c23648428f99105bce3eead663f43433b3b167214ff08595fff49d00867aaac74b4da0728ca2253f7c0e035aecf6142ad3143b35c7b20b0be6ff98ea0487e891a01502746998f6cd52ecb8ac891b6d9d91f3bdd7cc8397af52232a090b44b69f6cb526fa7c4a76e77fa0b6e618d4d074a6ea27c3599c3fd85350de27ec4d2d5ea86c430e85feedc7685bfb5b8b6cded93a5c2bb264ed4da70d3217d7f4212652139bf9f022f576f1ed7c205b93d48fc3accf411d92cef04fe34c6f7f7809badb6e3fd80ff4807011678fd7e56b9221c3d4df03e6fba772ef80930f108b6eacae6d0cfc965ac4d80d715d8688500e3f89f9231120c3e59361970bd8416a53775017798d08977362c3c8d390da7973b5f11a8e645b8eadf7dc71f86d9028259fe1f9c413237b60f11940c90957205eab98ef4450984cc1e9498494990c0bd99639348da18a18b9e959ed9ec852b067c7b4445979abf6da0b14e62205bf69b82435051a315de042995fc4ec09f872077555096e76d3ade58362cb3b626fadaea823600ddda6d7eeb968124e33308be51b51cb72a9d30e037372503b9f7e849b06e57a4fe8773f255035c42bf79670cf931b077140438e100bc3bc05efce681ff116bd79933c087c233a1b29e006ae881880a23263da69902e970a74743d92abf2cdb260c1d8b7a7ecdd8de911ce8d7a02c5ff4f5818049d6c36d73c13f5eb8017cb62c9e1e3433b964741907ed86f30d362b3ac0cb0df1b71ab1461b7340fb3fc7a341a9a44f087aa92d4505cfc8fa82935e574f7a800c2b426b8c63058a910fa2d4a8e4b2fecf488531fdb49eb334df85edbc8fbce2a5db36c40eb76dc9c36e023f6e7ee038a84002afce0c2b3726a99e2be882125e6bfdb214d4f366258218e2487b4758939fe1b6e2664ff2a455e3d8acfef1c62f7a7c03d3ff021a7428de133331c082b91a8a70847b2bc7b6482516c36830055b32df65f6b8df65b4b10f3202148e26746fdb8d3714138859f1592754772fe910a5948b74c2cf880f7561e52e427f46bb5714b1869aa2c9c704c49094468fd847b6bb08b94b0a4b22b4178e1adec61634a1a4e2ca48396ae66cfb38165fc30be52cc201d6ffeb094142534372bf44ec36326fa508218513d226420347ebe95bd77b264745e8b1ccc952df331a07264f883d5a61e9f54056b11177e2cde32a57ad6c4000630cdb8491e0c3c22bd944b73572388a859059805a057eb68392dde65174fed4c028b1d3d4ad72028dfaf2894697f4dbde797dc1be6efff575e6f5754bea75b1a3f75492b81b4fbbd097a8351d4fdbababd754dff07748cdb8b84dbde1fe68db44a50c452101bd3fe87ff1f71d39a30613b31ac898aa1ab4a3178e39d5a248342f79b363bd0097c585af434e90cc5fbd5c8f06c80b595e46118c757ed8188cc7a72799fe394e22bcb339311aa570739a62a2f48218e9047168884cc3dbc4853bdce320a27b785c29499d9dcb0ab4ca805d8c1f0b0d8d99f3a4d6e02225ab44817ca683a120ec58197bfd208797831830d406cd5569c15c0e0e6d824a863ecb91d054c2e3864ab6a16e2976124f068b6ef3ed0ed10fee4ad2225b55e3c6cae4729ec3a44628f6310a815c42d6c45832a11e2f2f6ce6e5a83d26e5dd0bf9fa7bfa23ead775408c6e1dc96d6f48a0f95e4ced6978686b84bc5b7fc0eb139a3dae2a349cf191202d6d22924233d6b0a5e73f9363241ee2762d01c63d91246c98334a9100b6d8f9a8e382dc92603b1253e1dc22134916c81715c41519ac5fd381de4cc0f7f087c37643d5da1eeecbbaf3f456dd0780e6751f50c876797efdfcb537e38d3d02160ae5dd870ae1052358ddc97e7fe836564a34a1985b564dad9a735eb8341eaa1bb710496ad8d10aea42b38aba1eca4dc0a951edd75f4c851371f5242939ee8702a186b980277831c218a36090fe52376de6ece30e194e280ee94d4db95c9cc9af254af37be2f67d0d7857b5db7709452a467432e1ac9b320298c4589af05cdb0a421e4caa45913228fa2e2b8fa3932d3888fba0e6e1fb0ebb6bac339a312ff5e33296e232f255975a1aaa45934fb37352c8abc051daf82c45ce9c2318d0a634b77c4f38691e11f051bbf20d3f01c254901c4b724bb316e3f2ec41e8483c6b5971380508e4552fa84591e06400cba7910c5be600a50a1183a363531051c02378fadf76cb7d78eec12808d3a1634fff4b687a31c8a7ff35c0240d140c128138bfc4e613031dc7b550af807748fa9fbcf693e12a6f319d65c7d9ca196abc3006e16f51ffd33bfe6500a5f8cd45264be924d311820a406d3bf667e38e68ddad952af704065f294a04dca84a196e68252d6e8c52d0378828858033503db5a2c4418371c7b9e11be80d84f7200485e2598b63323c6305a54dad8fdfb30c3a0e36b53e7ecf32e838c01aa2f267717f4e586d44e1adcc90cc18743bc4647dfb3363d0ed1093f5edcf8c41b7231d8d27072c597ce1a5ca00cf00620d85999dcb049c79154a4cf61f3f33667a1c706b32dc1061232de35b1910cf32e838d8d4faf83dcba0e3803502c60f20e8461f8c3c0388351466762e1370e65528589b7936823bdfca80e86b468cc52686e3470aa0624d0ea1795f9ab6a386902b0ba70892efe7f208272daad19ae0fbcccb217343fd30017e63ee4387413df1a20f7f5872f73f4fcc5206c6eb20a24ed999cd39299cb992524df6d7af33265d0735d95fbfce98741d882a59e9bbbabe37542da2f176a610674cba3a68b2bffa9d31e9eaa0c9feea77c6a4ab83af46c70b2aaebea2a5648877204295e2cc957312ae7125a526d7afdf9946ba0ebc6a1cafa0b8512de2ed4c88ce98741dd4647ffd3a63d275205581a31714f4440f66de8108558a3357ce49b8c69514ae9abe1b85336f6742d42b33e6a246d3d10707d0b14a86d8be9e6dab434bc18971ee92991934d9f6deead312f245911bf9ae64399d1b8b430bf13fe421f2d7dd17c28d311834fdedada92c75c2c7f1d205c4e81a2099f8dbe025edbbe70488ef14d91338f0bd33491456e8c4108af407046e96eca0c55f4886c00414b7c506819dd633d33c2dc8ca81089a2d868884442a5bb0e0365735ee0c63bfb75acd8b6b50fd61f68857a69a0423acdd13c09cd68f98e59612dce25aae91f45c556e7fd034e5764d9954ace6b56a8d437c93aa1f06ccff14ed09d0c3b2672f136c4843f3cbe278ded656697ada86892bbf0edf79bbb609187049e3dfecc2bfbcb43f60ffeafd06e9a81242b4b6c3fa375d9749319e679e1c743c30d86fec70f63a351cfbb5ee03c496e7e8a0423be8441f5d36c9fd93ba2a633110b27b88bdca48b0461b349517b8e37c6522406b2d0b0482e4cec24a093d510e412280f82b95e5f94b0b1c230b8c29108ce3b486a952a9373e7faa5b0da79eebec85859d01a083607b79fdbf104a779a777d7d2f7518ed29187bc37e6358ae86b028fb0ad31f7e2fbc78050b9401566fa4a5fdcf6122b37f1bf6497daca650c51ed9011a5bfa437a15c0e8366a93a5522a63b3a15c8e94cad86cf3d865e4f2b01c5a731316e9151ade287d95776c28e64008134d803ac4cc9c98e8b2d6bbb56a0334564e0979ef558ab44c71cdb28fa59d26da2377aaca6fff4128bc69def5eeb7c471745c1aaa3de9effbc88706d836821db5df2192c9aa1f63b8befe4b3b894614ecec3094d6b5caa2d66c852bd1ff7243003089148b2aa885bededbca96f60d1b01d7b8ce68cf7b4eaed836812aafa6a29c068340e24a64e36a2c4bf5ec055319bd03585e311989ce7cf8d9fc7794b9ea543cc7ac247f63cf6e5a99d33750fdbf09115623525d57df4b1c4741a96bff8152bcd39465db448a4c6138cbd783ff8eb38cd6b93388b5ec68495ec209479d7a09e7ac519767ead99962661b382f46606e0a581681d5875ad0ddbe252f5eb59ff25eee317f6909202f41630757d57af634fab602d4e695d8012611d753861e1df2c882841920b6bfe6e02e54bff28dfa19ae8b4d08ebdf49e67b756d3f908aee9a7f7dfa2c713c2a5372db6198db820c473758cb9df134f25e0c25f41b48ea71771657c86dff9609ce7111490ba5b827d73112a2a9202544ef35ef6b1e9d177188d5a93954337ffdcca79ffbdba0e847d0c3264eebabe668ad6f6e33b54e08403750748bf72c5463163e105bff4efd64cf325207b951c7e76925591a2b4762d2798cf4f4ebd9fa2de904a2910db6535da4de0a68786f03e387ea5c22b25d8b11bfd5ae00df5fc54626b11341730212a34599ec15c949a9f3de18a037d4feaa3ef1aeb143b235586780c09ed312e95070d380f4419c15ba289b7e9e293488c6bb01870ab1ccba38ce0e87aa2b78ffb2f92d23783ea9ded109d8e973e3018b4cadfddfac0f4e9a96ef3809b5dc5ad51182726c71dbfdf46a1b0a766684edc63704f21bae6e312d62e4aa648acbd73363a093e6dcd5ff0d02ddcc313b49a866c72f6a27075ffb514badea06120f63edf6b10a4fa30feefd4acaa313d7b4af86108dd6df36a5fac1e20a82837d05a2c9c0be640bb22ff959118c9e64ecdd73786d041e60c9f821363dded59d7dbdfae7456e97a11fc5f92473cce19d6e903fbce13652752f30cb4fb6daecade13e006dee9c825afdda628e6901c126abb0702c24079980b4fba1cc50e876d67bdef7d0c192277cbb234adc321cf70153c5ac0589aef661c5e9ffecc2ee4aa9c5b65e43cdfbc7bcca81b9edcc50c033534416531f76f631f1a786d86b7f41eb7f00abdb6fbdb4bc4d31532a892acc80b3cdc161300b3750c58c277028f3f71ca6f368b00bacea4568e3a702336bb671b8d6495044909e5ac53c44e488ad0c072631a6e23ec34bac9c7f4fb506d91ba2b4b7a09b7cc00be7e7d1abd8ae6d11d31c2b939e6fc521354f3a90a3021742c54f65bc7d66aae3daefaa704186d3a602cb0cffa8fb30a1c0b5d50347d391580b7ac9c2d04bb635d2153804768c99142ff68a9a20909345656cd9a1cb74039d754593796dfcb08c5941c77923f3bb43ac1960c78a75d8574eb734d901d2eb9898f78fd193a1db89c0a17a2fa0c9ec98ea0d280b7b1c6818b48de4fac851aa04c91867e309fd6143ff378c390c48ee3f6db1d029335282d98027ca21b224e5c5204618dc466058df6e03aac97644a54104fd8671a3ce4a4a6f383339b2a32fd5b689350cf81ec1c2184d8ad0822cb3c83402d33061816a49a689b047deee2d236dbf15364438507abee0e5082a9f15f9d026206f605cdb548dc54dd5121c0677bbbfab4f661b75123e526facc77654f5415b5ab46a709f8bf21105788afc0d86e907014c90fc0ecea730d560af8e59e905497468a2db4d1b68bbcaceba8bd5ce298f3071afd20cf1001ee10e1024b40110a6b7301d5821e8d1f18198896fd81c0dcea804b3cd6fd034e3792c198c46ccaac79915f9545a615747baafc2c6860aac73963f5cdc9b888705a20bec737b802e366005e5fed1ac8318ed535377e1607bdbd79ad8358d03d82925489adeaac336153d1168d97e17118ee2825897089cc8897ed7965591f7a3772561280acb75aa71a39d24fd5233a81725f14b41815eb686e0d8887823bfc85f99aea4088fa579daffe943e8b7ba1cc4d3e0f3f578b0d4748029879d8b394b04c88ddb27bc2aa462387242d516e40c3a8d726b749dd26a08a0937edff11020fe0a66e16536fe06119d186aa41eb5adfd25f54c18fa3b31b1adc4b744e0d251d6efceab144e55d779d0f25ae94fc412220a66c102c52bc065be9db60dd5bb2d8a2c32679003734293a7a7a7d141748a7bfaad96ee3921807ac0bca67b956461c723de6dac9d12282752b9dec2c0bc1618600f600359ffd82236f4bf2477249ba376c124ea29a20f2c0128469f0691e6a104d807f2c009fded0311d3d05544edc93088b92875ed9030b029020cd4f272d958f2043719bf2b9ec3e6b01a677c4b9596956ed4fdb5cb3262b301b0f4f0b864f84962b2f504ffaa8985d04eeb96a2fbd6fc5b8cad7e812d31c7a94984bc37906db42487c4a494af9c411c51ca6824b1965c099ba6418c4be46947f0f69604042efa42b530f7fedadb7f35a2f7b856759cb054f4c02f2a9df0d4c439c1b22db18479ea7b8b80966dce11ef010c03ddcd0bd6704904b3f4a508323b3081577819b9468a5828fa413e2ed8d09536804049115580dd888944084613e9bb12a51d29d24678c7fd050157242174b48cb8bac3ce437347c85c895ea53d050a8f8d5df60a996582959b2284feb37e48afeb83c285a0816f2bb31bdcaa2fe25f33c804bd1edc6cb1571344b8469051d07758e8d3a5de8e0bd1a983d5c1d4e671a15ca12da010735157ff5f59879f04ed2c2c1ec191f593eeb435d824c26d52d679580606972ab5ade0b156a78e2d1770f032b69063ccf0b2c2510667dedf5f45393999590e7ebdc3e955f80d38e736d3c13fc720f9f7274fbe0a02a360a603da14df73ebf1a5c3c973eb5cc805f3f454ee21c5fd417695ce933b8ef10b0aee14df28c0f085b468cd7bae3044d19f589ea51746e475bf50a82e03d07e0e3f8e9d3802c763c410fb147dabe8649dbfd7dd24c46182b50f130c6e640d6c46a77c925488ed27a37c66322062120820c0255e5b3054a2526212590ff5bf63daa2d3f65141190cd025edc051ac3553cdfa5029a5b6efb6f5f8a619d249b84e6a7704b833b238a13fd302539d8a6f8bd8371f6365392d49a65c5539db8353be24f02ecf13d0a211d1aeb381eb372670543451147221c3e00e60ed1806d47868483231cf98048a9a6add3d45c8c2e409e64ed4e6d7e0358dc3e9134c36032977a24fe3c7a6b0d022d38291489876d233a872b574ba921d40d7c73c3c446fc4fc4a6336b63a8be85e9db0dd53f4a7956225f5b493e95c8c5e22a9c9886c25fca8e0f822e86ae8da334ac60efda312c068588765fc74806111c6d84c9e3ebe3c300b2d78feb9864617695f761c53b997d1f67e71ead4d15029ec0d25eaa2a12576afea879ec7ca40311efd24924eb27b2d31bfa4cb608f8201ddaa430a1b51aac578ceb64d8240a44ead66b78a9779dfd0cfe0afe1d7c0cafa35ea1b5b29b542c41c1d4f3085328a565c970679fd8d2c58dcc3df414b7388ef4c4fd2aa82c5199ff65feb9604032d20a4515fd3ec7ca6935f3533a3ed1082d5da5ffbfc3a78dac78916241660067d125963bbe050ae8cae3c6d83a78cb68405a58b54d4c1f92112b44f4e8498d221ed57b204c99ad0effc47efce413a82cb9068dc5308c01bb48202c44a13103258ad98b384aa2aa19f6c11ea40a2e10c72a016fd518748347cca12f86b0945d3b3ac41bf955034fdcb1af04b89a1200817199dee950d7ae0366bad8050cc80e3e4c23dea10133dc47534e59b993560298739e183c2f625df4010046e8af325ea7a0e5c36e82b888bc6a75c83be83a8483cca36e83b888bc4a36c03be82b0483cca36e02b088bc4a36c03be82b0483caa6c09820763c70ba41b3fc2825231bbb101962aabc28f940fd65d3f9742c02fb7e825381c445553c5edddda4a3bd312ef20342c540c3909751c9c96f80c38c405acd991a7f9171ea68553d5c8b084a0aa5477c27122a2f27a001afd7474f3bbbe3aae5a313a294413bc19bd46272757a53266aece009d6a030405ad1adede116ca32637fddb5be1023986ef98521f8a1e85c2b4742f00ea86450c52e9f3e006e9df9501f0eedc26d6fe9d7dd7c0dbabb1db26862d16cb44097460e1fa953765ef06f6ba5be22c76247bff33aa338d2e1ad5b9a0b229735029499c4755de837cdcea7f8f13d430163f8c2a79b3f3c0f5b8ca8675f67945fb15cdfecc231c6cb12abd0c3da0aabbb6bcadaa2c5d5128ab0e75c7d9986e39406b073cbd6a8c80820fe123684c5a7aa7389daebf50e35b01a72bcbc0d76b52a141422c000ae1f0c2f1a7bee38564ea483086e2d37baffb484d814b5dc9e86a31beb704967e32dc5e66321ad82fb9b9712f12a2fd62ce5b06628e91101806d78035a7d393df7e924b0f7b82a45a8d6f3c007e93c115627b2b89a78dd94b692666fe62f776ef0f7a88eb204423c9a6e3503909d819a8bfaffb0baac1712d2b427ec9c88abe32342bd0458790cac4e02cc1da3ff022ab2b37e959817dc31ffe62b3caba40b49108816f6fb29075602f37af2a164ff2b0f0dba109738305843fdc3e1f60f3e5a5a913e6a4240f839ba883264b318005b3948ad900d9ccecfca4160f9c322e7033456f63dc9a2fec3af6cf8d4f0b47d884d661ae517376ced9746fae7be832477fe72ad10136983bd04d455f800163d2d39085340d0bbebf9bc0c7e61a6b7aa0119c24fcb5f59c3406577a70f01e9fdf9fe3becf69db73d1790e53e7eca930614a8cb9c3ca8f173acca084e3a243f265fc380aa485781af9f46f1fdae74d9f295487050468943a64e4454bf0364ed24bfc71e252f33cdfaa4843c58722c39120c1cdb6152ec9753f08d97c31de248a867345d53599b862d6423c22d0325068062197bbff3b29297ab95f5046ec923fcdbe10307d4440a467ad09adfa83a480a06bedea1855be448f672e6d70938345eb2f598e5a42e4c7ef694396badfb337e695c7affcdf59afef75ae0f8756a237f3ae4da0d6a8d06e27f0eabd1f28a8afa3f01e28aedf765e32db1086e827487d773c99d0ee5bbaa2c858dc10b8dab2558d22d2ed160d5bc9d621026aada2c3ec04ce7224644c653c49f433788b04ab651f3b8b58823357de67d3f3d614f691b19cc4d1220fed2196e686ab664ba3222400a934c87be74c62559225812b7a2876f15620e4ca149000bd2c66729609130e51b7c285ab65318feaa2fc530f1aa80032fc7078cc695beebbd8576213088c4e118b84cfc30748ca750ce82c0620c51457356b7c5d17a2a949658d6a87889598345dffabc4533bac8d8e2b6711a55678649b4253175ca44cbc1a9286177373a6f0e6cd78363df3c2fea28932c1c7e7250e7c75f24b12e48113468d11e1143168069593ae6fab39fc03472c7a9e8782467925fd2e939c70ea600d47e2850802409751ee26ed9504a79770c1e7f7868117bcb044ca3f3c3b8584d90d6434de5eabe4fee90dda210e30cf2660704d4d781517e1876db350ba78f34bf8686810c07eea5bd148e9f414f979208107b2f1bdc438aaa4a2f25aa5792605c3d24263ac7b412e0c7ab9233b602c10562c341387cfaba96adc6a60210ed4673b30d1ef80f32f46d7bbfe0541eded86919f17f8b032947f5329dfe017c100e0fcb6fcb2632a8295f9d60629524194e619d1df24a0e8e2a0052a38c7090861b901a48e4f3ddb89d368fb03f1f494f773cf4e671f8123042bd6fd836e210d3b7d4687c853ae5ba812656adda2a0c713d2a4e29054b6c3079e5661e63d4d2d2f232d8f69fe665f33e1541da8c47148b090119f0a416803c648e93d7246ea2acc89910c77f3d5a391dbcb612ecbf82993ac2484f6a667d323764553b0d509e73e3cb9a1a122822f23668582fada1ae5f78de31eb2b4ae53560d948886bbb601581ed54c332c520de4b0936a96dd461acb02d7fe245bb038e72231b59c9df74967748787fb72aab6a09fc3ded95492e7af891ea922acea134a5e9b3931713ea7ffa1c12a4118d3e2602f44cc5837679492bd4aab2e5d0db5c6a0d28c85801e0ccfd09eed839d8855b8ceca5ba0b5e450b31263e8e667927750f3ef8a24a5d9eaf0a4e2b07c01f42e84c8a40f2c2d33011c9683464570a0c89fe6f49ded43fb2c7224e75c91666ae24d78f1e1fff92451f57588e9dc68c6f370b255aa72fc51c0b6a6bf4013a4287648a12a818df144e7ecbff957a8ca04b2074042fe85fb4f374aa14c263078746334b001980e412e4f695598c2122d800f391ac0455d1b208eb7909430e0a06b2906144ae38c9e8f00d6707ff8d98a11b12800c001acc2ed8d5cf2ee552c3ab3f166de6687f448fbac4946e20650225e26a34f461537255c022462b99abc7773f2d27b683e3495b1ced299c0176493f3f5d8f5e81304451407dc60ddb5c4504176c4b415534d6905e1ea4c771a521276b780bd2daf1791d7803afb5b822697d1c212a093349b0f780416a956085285b7f3b4a422b204cdd29dd9ccee0cd09da036830b10e5be1f5f674143afc4738fa3078b90963c31d541276d06a6840297a58958c263ce4633bff1406aff4f0bea3507f34d1fe9af8f53172a90a0f8a2b14dc1817019026ceb4baf32129fdf97517cf5a712d0857d222cef930dbaf774df78f1daf8b2505d2bc3e0385eb8a62cd665f0c19e41a04673dc9b3bc70f29bbdd9867764455f258da4cdf0fe82a616c910435da234a0c410339b278387a9781ad60d40eebb029acfeb97a26e5bef9f3acde8feb001dcb6788f046cbd4364c9138b52a9791fdd55afee151a37474d5e05532614aa52e950db39434731de48f9e853eded2cbc30963ed58e83dcb47c39c61a20ecd643cb3297e2633432ce6431f4599c1d0d1be1e3779f3c13f78535ea07514892eb0eb9f34196f90a164387ca4891209ebcce202381a903db261032603ef3040ed40a811128042bda7a62d9f812f971a852a3870737f062daf717c5c457bf003b20321a6a67187d9ea58489c07b85d01d6d4689c189b1d3d3130bdc2e159e6ed1e02410794dbe6e119f9a8107d6b0a2d3c6e6cf1af85b3427661bd00a1b99cbd680dbeefb09a1f8a1b45e824883c5de2e08a5bd143454accd975453a51678b0705ec838f8cbd87aa098ccf7872b887074330877ed59a67a683e5e44919e8ce7ab73dd94d6337f29f5680c2c0865a95318372488f8f9e5a1e2d2efb572153b28c928d7fc1791a40f780341f6dbaae3da667e16ffe6451bc5d0a5c0bad3097671b893aa8b00d1aac7dd2ec7c82c8efee1630b7c9b721871896b1fa302e9e1666c95a56b30c3568016efa5f766810c9461cc0448596f4774607658e702cade6437271cf236dee0afdaea952d5ee39d22ba6109b359f4366701f25801fc834b52394b20916c37465401e8b3b126204d8b3706aa995019230684f00c2e28eaf06c4968b584c57da11a050923bbf6fee016e22a813a9fe3368172c28ed9cbc990b394a3753b52206557a7004aaa613d5a7600f85505a40456275a119915518e6816fe30f59ba6b358455bd84db3ef86417157360ac62454b3c96cf8c333e4d0a7a7cdcf434d058a97885be16ab178e318dda22a7b388b4b8941016c768d5a2a233389de362918d59666068320f32bbc10a5105e00b504cb1daebb680e87a2e9d418c6d4ac514a86147736289a9c77c775526e02f27173958695d65f731e6b683955847261dc54d4a47d0c408f825da72cc4fb92eaf2fc6c3bc5d1ba31ecffec89d78da8c41b63a1a76d9ac298c707c85bba7980b933761e3a391ae9114592faa99bd84a2a25c529a3856c71e23f4164126b9e1872e3ea81da8993e72ca5d1a586e0637f61cb23f5dc74323c656f7129d107ba87964b5dd8280f510adc8812eccf6cfd7364c392f7e77597b0d21fda29f423f11787d6bd3625159498fa0cd0fd0f881ecc052fa8357853857902e8453b6d5a363a37441c54623ccc5e169a27a76d4518b8d8e949549c74176235ad840a134ccdcdb71170c67c7d3f9e156d050935f23fddbc7b9cbb89b91f81cc4f73e2e58e866fc615d3281b41de513b6f2136fbf427d0ab76f9c5dac93d8ea1d2f0c57582d65826dc578b64b5dd3aef83047a51b57c7ef2cc9b167e23b2eac7854f37b9d4313693e559f43d409968bdd6b5b633bd54cacad5b34fbaaf1a739747ecdbc860c454082694d5ebac4bd4b0aa0cf0f8af90e2dd4fc09201247b92a56f9ebc4d67254cf92aa4756e3fdb89c305b75cea2c65d19302d597001e029e14a10cedc26d44f8eabdb9b02d97058b77b5f55acd1a468981851ab72608e3d76334745196a9715b92aeb44d19fb87c8749e7ddf824a0db72ae09ffeb601f9c0e3d24122bd3ade8cd1333d09b4f714773bd51dbbd11f2e83d2d7f8a9e0b9769628b0ae27fe5f8043e361b1321b816028fb743dbd1d8122e55df9edd2582a01c4ab3476ae952d2ae332ffb30295dc01930520111c717c9af4864e409aa08ee873b16ed3e815e8d90dbffc85d0b96352e2baeda7c217bd89829a5a45e7d73f83e2368656bbfd13b80ceeddbddc4c08611bb28f34e07540b92c4f9821d36523f146152c1985eb2e69497aeef03ff2e38e553abdb2be1ce7db1f611b58d93ac55671cf715854e6eda85469d93e19a78d4710caeeb7529f25c57627000f9e8b266164ff44343f6c51bf081d75e3047efd6f267ffa68dba400c7e7a590ae8bfd2ff147957149f86ee3b0edabdd6ab236b80ede9b0f15a6e0fb1ca3534ae41b0a26d6d861c6b065ce40d52fd87b01099ea707866053fedcfc12ab8d765be84c10cfe80bf4370131a2454ffe6d2df2861cb1eb6829c4d70beb3527736df7509cf89a04afea7d08f9788d7495a240cabfd57712db9e4e529c68a505149602b91291e31c8c08435f0fa10cdd1442db9067960f285edfc9f026bbf3f071988cb31b510194b741eae841c43c97f6895c4ce1b670953b6361d16158d5be531e354165aceb46c9c7bb635f23bf36e58228efaa909937c38dd1affa6cff51d8beffe4de49654120c5a54e7e300b4eef46966252ad1e0b0700033b01d05988523885df9ca68682b7c911ae70cdc6a0db0ecac9768245218f654e24aae480635fe31fe25a056cb2d91fa147fe07e82ae305a6c172ac2fd7e472f92d51bd41082501b2eb43e37d4adc18fc46c20fd298876b7c47d7551ffe9b4b1e8aa733e58f77bbb144bae2026ccfe7f453630fa1103f6600da090aebe453307192fe70a4f4634b11b5d17563c8fb906f2cc325d18934a2769f18b922205f056d0bd10b06483cf6f708b32f635b7c17197e7cd6f4fd19fae5e4ef2a3dd724fbdff66091c89bb9171cfa00b75274aec2918a04b6786cde71069e179a9591acecd0b7fd5bfdccbd4029028e2f85fa4ce8a2c70345f2705925701fc022ca1471a511b4504752ec1876083f3c4d411255914cc92b88f21cbc692715fa3f477c1a9f83a8950a4237d96a87b2b8c779604ee3ebd48d97bc82539a011ff127736ab01de4b85c948bc5b44c50dc84f7eb6ab3d4079efa56a572577f06247d084935dc294df5c5514f662e4a8e1b8e06e8e6f4a90dde3cb2ab7a6a8414d080715c796fbed7f41f631b081894f5b765a2e297480f09e79b17f9fd5b76ae530a3bca72a8b7163e79aef41476b0cbe36cce6c80bb29dd8482f86f255c79320ba1fda1e1bcceee26e3dbce66d807b50374e2adb58305ee8a183848035831fb21aaa400be5303808041e0707a60d520ae859821cb03dbd4749db095e20250dd7476b25b0c1e5b616a3769a7caf6cb83c0b53aac5a28a9b4ca530fd110e078ab45f3bae1608661d7a0b3398781d4f5a6e4ae30e1da694ab36748bd960a2fdeee5a148e0af12c7d6574bdd8a01492b9353b130dde3ebe608504b04246c8e4d2a0a9867c40aa7dce92ee9436fb76a1151d734640d34f877fb183e96dac0651aa518193293edd707bcf92b5cdea2cec32c6c94a312cdfaadf36773e8a6ae4280d50748557456ff17f31e4fac4299b8fa3550138af425c780b616e6dab3c5917f76fbe5819ea74bac3c77c9590ea4623848ace973b04f4d4a5e01b3cfc890166df3fb35745cd0031425283da6c53be8db7ad972dd8e20015f988ca7d03b90fa16fb67b684257c7f815436b64e57853c6f9d7e90caaf7c3f93fb657c17996ab5b72491fb63845684a67864349542cb0f4b89095645ccd5399553f050cfd19b910e0759ad4bc520ee2e90087891e2befe8815b0350ec931bb1c9c7b4fd4fd01a3dd61869f9ccb95a861e1421bb5767960f24345861ec8509b5becfe63e3c829e0ab2b7fb55847337e168b23d0faae27239c55b8b7491d3ccef322f1e6e9e064a707ac7e84bbd391f633ae8cff2c5d152078d673e330448f6e01bd54c6d8e1aa8f16adc8cfc7f584962e60375bf6eb919e62d21d6d56bd23b48e36509d76a58a1d0d7d54464de2e8493f043a9b9549a9b55c56a29165da519b8c71ef78ed531aa1a2e90be9a05512c499b880afd5c7ec4b695d8c7cf147cb86a683528d5b2e293061a4235bc1220ad2ec987ad72ebd214b751b48a62d7107648133b8c2f575f63f8d96e8522f8ab459bd2b62403dbf25d0c3b3311dfc55952274901d0759b862dc1f0090f1eafb6ef07db6aaa2c34abded1c00a0f39e609e86ef0500cad57a77681ec0063d999ce11206f9e500ecbf2241eb8335cf4a440368865df3ea6c92316e67e1cb3fa6121904301a49549d09017859b950f4f298acaa8fa781be556bd285c089a5cd01964118910291d0a38df8012885600d70ba414b0a898c42c0b4eefeacba7cc44f84a12dd60e109267c32ed040c6782a40ed02e345376823d7851e0076031a8ffa0088d92b41002632b4b91b2f699db78fc6565773b6b569db11e1161873cea38bd9a9ea416248ff9c7571c45dbd8b9cb4b55a69864934051ac100b55b791f9270256da3a593e4ba21745f7e43882dbce6144ef5f7cad15c254b5849c1348d8e16cd02c07ff38f60df18f86910fc1126a5ea0ed12d6e3f4311a6c5fa3ca2fee3df50f27f625ae254f2bd3f5490dc73615853c9be8bb092f0d0f888962d59a7e2e939980eb4b2ef4459042c4fbed1d43401e2baa7f95f2a5f5a08ede72f70da5d305c7455e984eca872e74ba0120d7e670be92db15d6a62841abcf842993e3e0630617d7c4e0fc016e81952eed3203083809ee962df03ca64b75e41da5a332e907e39b5262b177bf64faac97e008cce740fb29c9d12444cb349c1fac97f6a1443175109f0d03534542ef35ca693dcf739d103e6093c87277cf94cf017fb6822ff021c7a6910149653c2647b7e9b68ba75642ef415169683196890370e32529c31a5f6d7536118e516a12edea07f1a8f6bdca9bb25cf40220d64cdca211d812faa907115800994c5b04dd72449d3bb526a1b860524aefb439b8088a1530681be6dece61e32179bb393b14dabdedeae6ae15e3475241b7dae1a9479d94f87aabd7fcbf1dc3d9ea0469f7c704e67ca5a5f6659663e3778355f7185e2cc50f859925f93734a9c9f5f701e72cc6210a2bab5119ac52bab387c5b6d67862d07000c9b2cf3346cdbef8d2503f281cd1e061dc46164878222a8a705d46ba91426f90b2ff467aa1a748b949b4613d0b7c6c79063dca1f7aaef99139492e974018cc2b4deab0db3e0d5e469dc6bf2689759df79a46d28d727a5c54a9c95207f6c88d29896e0ecef80ca1a091f9054dea1b352f05b6286b22a49a8c84cb19247476cbda53e6d25c598d39ebd29279cdb3dbd5a5528c5fba44825c47057a5e085138c7953997e61a3a4b8fdbb177b116badd75da520a717b2049069f913983f3e4c32cd4e9dd059ab1c97b410e184364ed665ef3d842a20cd3dbd7dbd3edfbae6d5902a31c574ac355f402312182d45c877fa1fe995d640e5e888b9a4e3cd467818c628f9cca81e0dc8d7fed0ec4e860ddfc190121b21d9c3ea1ed7bf1d1adb79ec2652e2daa19f954470ed21cde7aa815078e548aba6c9f68c2fc31f5d7cfcf152c053bb1d3769d2970ddaa6ca46e4467e4d0c7112bbcea0f45e299c61d90172827273cb8df348f0f442e0702251c7d4fab65e1dc5b6d1badb30a47f05b6046a2b1b09495dd579754caaca3e1d33616d55c306993a84ee20e868a3dc3cadf3bbc93488ce9e8b7201a7d11c8beb19dd97d507f8b4e4c6c7fb88d9388db9df92b2ffcfdc99457e0dec5224c792261e40cbb04238e906c009426ab11767fd46229ca0b5e7971f4b92e63707ee0a64507af23e856b93a6400b39e41fde3b909cd864b899801092131191c11130497aa2169335d570ecdeacc1c169794cd11862048b6a8c0563d4014010a623da50037a61501a123f5804d296ff087b98554b5b7f697a6e5491d19e2b690bd1ce05519861a499e2296df5687a466d39b140baa43a02111c000625defce31b858a4b8caa57a0e1cc103e74e0568d92636ef31a8f05a2b0af54a1650520bc56a3b006a6e2e788f79d61d98e05b3b98fa406a8eec35a7d981c853ea68bd1b84c2fa55c38c510dcfa8ad4d7945244d008acf829bb99f03709ca6a1ded6080841464cdce15ebbf563b458ab028b4f473eb4e7c424ac97540bfb456634414fd5e73706ce22db2c10ace789c032d036ebb88b79cf62ba55be71050d6878a6a3b354ab270dd6c724ab3f0565ada4443f51d204d89b18816733b057ae07182681229785b88ca6bfead6e8133b144c6e8af36c467eb7f090a29b6d9d36d6314ef43d540e0dfebbc18a46df248ad57a9d752a6ef84ab34e32aa7732d93849c5eb73a0f9e52cc56c7338b0255f10ed8dd2953edb1ade6e2731091313b47bfa87728c8dcd50508773234e072d09df6b69dfcdd58eb964486cee74da14e5cb59c07c1c9cdc146d78278bdce16d6268f17e7c376a7122e5c321fea1b3779501d1d14cdf96fc9135bdb5611d761da5c324285a21a74092287629391baa46a616b1eb81a831412a1062bc28d28ea22e428b7d168cf2f3fbaff089c205e92d840c5d16faa5cbb590860d389d08b8614207bd5e742456740b81819a27ef706c9a31438dfe1a618618dbc68120e4fa9c168ec0917093a780e9bb4a423c209c80d5a35045c8a5f155a01dbc8b8d695218114f9387ad5075ee6bbd69e45fc09047846442064f5c11d6b474a5c2fd5a3a8f96d73df19a5f7bedefe8ee2150395565bec52a897b8aaf43a9cd397dd8d442d1ed0f66d7a09d8d95b322e24271a43882a748c7c8b86ea1f926809554c8b3c961d92bf2c918132720baf2ebaccb244ba753938f46af3730cacca7a64f229c0ea189d2defb52f054e6a6a1f6a8d281db4c7dd037692968d5120d694f2c39ca36235841395a458f57b83ea88bf27e248c730c731f0a859b31610ff3255152946ba56e0907cad883d0142b9078481e289fe6a524d5abe63507402203e7b33e48fdeb3473919a5cc810958c4141a560412e017ee91988271412b530c3471daa5547db54b60e7e22140fc45fc27c75c9b61ee4fce6ff6a1d7c28d55ba833dc2e5c0f456cdc82d87ec8ba2df09dcb13f9b08dcdc850e1fe45515b3d7125b94d61952625ce34beeb335362550075e978d5b3eca89c9c28f0d7a6b0c2b804ab0816d8b3946532b80371611c40a5b4fcb554de9656dadfb2c316958c20f1d6956957461795f7a6b232727cf14b73fe5871cad521261fefdac5ce5fb68f0ce0631fda0c225f2849013e9097e1600ee0b2c1bb2fb0c6562c2c0d9144100d50a03adff1e77bbb62904c8dc072d1a5e30357eeba21a5572b736929589a790f954dd02a314450333429a199696e23b2d4ef4ef15c3614fa6e53ef2c94f7b9555c50f33483b483c503b02898c37ebbb96687921d24172d6482c97d85a287464a84c39788f14af642c456e27325cf1186007674f8328c1170987e73749763e3a91775ebd46e15caac9c9979edc6db0dd8e1f0a08c7295f3394e7ee822641cc12edccfbe6e451a8ffa3c90fe118df231b0c4b4dfdf30902432a2b52582610c29b47c9ebb396c0518f02ae9fd7c8a9f9e9f51423d07b893d4e0e5df8d42d2aa93477b918ac00ac36339fe0d3e932aaa925eda4b772971291f04ac20cc908569c12aea4a6e7e14ce597044f4c56aa0ae857a9ba68b7db87d9f1acf100bf3fe4c94d4991d3b1bf2f7876d4d36ee09c94fa2fdffadc99ca4bc3ac08d28b5c93ec7fc23aa35323498b57f43d039053b9e41d3004044f7898ae0caf78a3ce45ce337d00d220b8479089fd950d22666f6c0a94b168f8085d4614e892a429e79df9d1174942be367d4a9c3a0342c880a510ba8ceaa4e054e6bec3e92d8021cd0a5a5e7b3c1056861358442e645f1416fb46dfc7e416942802445f90fa3e060a1d89c67875764a15f383bfa400ea8893d0d6f8f81fea7492181390e27f296329c9ce513c3089530cf5aa0a93dc205431717bcc477b77556732a74f089b49f878c4408bb0b32e8f9308963be02b0178540c89cb9e4f5e22de3ea7aa9071a27ebaf2fdb539ac3c5d952c10ac9bb36cf1dca2b66b91a38132228d59af4fc371e3533185f179b27920db439ef1a9a7f681c55febf818cdbf864ece05daaeea3874188c576fd225b6c651fff25c2745ab92b0019967b12ed7a190eb1a4e19c355120dbf1f666f7baac2cf504c5f88327cdfe628f27d5f7103a3c327ebb09fa3039ad2beef8773259a0837088421c59625059474dce5d56f2839a7cd5a2e37d8008e089519165d3a94df3efeb215100ec46533eda1c79827e3ce2363b6b3d5424bb264ff84a3de20c465a82dcc69f97a3c3e52927f1d47d583c2481e814dfc0405e8b35d9838a3279e7c79403ba5fd001cee91a6147a28fbd7ab0cf92bfbb23702cd7e66cd8f0605612d32e941ce84f5e3d3fcca56bfd225d1d35cd86e125d2bb7ca8c072615563abf8afceb42465ef381518d6230b0c614134157f69534d62e335d1127c492b12af7a095cd3d4a540bf3e69ef3ed7309c4435e7ddc87314c7d6098128799de872a2d43280e02f40bcb393855dec06a3d685a0805b78967dc21c3ec81d63149a9deb9b1a1ba49d1d03a2faa7eec9f067be68065486330ae750098f23e4a5e89b592d7031d25bb6207133d284b6e6247decb618519390a304412113678a2317c6bf1b31f1b764246ba8a2c0fe76a1c890c2944ad34ebc43512b03e6d59b65e997c80fcceee6160a678dc7e916eaa915806fb732432e556c5044c9f8b24c8521756409348429925858e3f1572bf491945aeb45b0e44b81203933da948b54c9f1f4425b5097c20b5b454a3e3361b88444ec2c59b2912e3809b3c92fb652ac599a6b60124f2db42208d0606c64e4a9df37499d58fde3c463c4415c52a4bd5024cc994e34394e41f2243802bce5463c407a5e3798f940c7ae58d1893543a20bca6fdd78c082bf61877ea383d651b6a87af4e447c54b6787ad132488534a6bf1e1feb9299eacad7259dbdf0c499de451fdf198c4ea840a3811bed596f41a1a8b38d6b2879124eea26c0ad9f858f1e64e4fb2aad1882f8154e1e20cc382bf0592c6147b82c750914b496ea950f16ef394ed4ddc62d37c86187d281bea40b2258b1b83f725f19750fb1024ca9d1133816c92910251329ad85bdbb67fe01798688bdf0f1f9799cfdd60131944efb80e368965dfb9b348d9ea0da1551c62d5f2caa518729bb5f46b8efda829478e548e2f7049428d5e064508809605ec0c056fd411789278b59324e08104411598602aef2f1a4e44107fc01f01f67bc26d915e1b8f0da6fb217140c8f1690073a6458eef99dbabcee89147585d422c69912803a78c21c3a8f2f1ed0b13ff2295ffaf15f33f08b1623f8f12567b30387dc6b301ca7504cc407b2e89cef38691a9df160118e966bf4f31256643b5e2c3044d0b49ada4e3a5cbde61f8bfcc34a9c806cf11d1094264da88a4da6693baf6e019a813468f83b92aed56c00a846d84d3ebdc36d23e82de5985177479f946a0f55860e6a973c91fb2d0fb1500fdd3d31eda45970c508995dbe568c6a13c938b2d3613346a78f1ec8bf8d14b4b59342ded99472b57a588ec13af0d0913316cbd0ec391e3620ff6d1bbcf46b9da657b01c02817e6c3e3e9600562a852e4b4951d86371e4efdfeea5c171b9af2d395cbe4a7a3540a6739f08173e19ea64642850733356c250d087125a7fdb7270f8e40d15889ca1445c8ea72be173c9aa3cf8163a594c95b17368de4aa4e2181ec5feba79e20f6d85aaa42c14ae4058decbbb3056926815498f5f53ef1a72448afb7c0bde0c40b7084d8aefa22b146394d6c058fdda718dcb8355c54a5ba043ca70076c2b0ab4db15854b3715c4a3044af8654b316d46d8183fc75a50d4f250d0e76aaf99764a939faf56326840c62c180d4e9c24e9eb24188a978a1ea951ceebe49829a97a9c80f9e93d2f2dde0fbf659c97304548456e2b90bbbc259833e6034ff47a164ab502157cc118438f6a29443611244c5811c5f78c140e784d41f90abe6e9d84644967a32bc0409b4f4e02a98930ef65037945741838cf46b2c014a5fc7d423ea7d2268aa62ae2e756428c581877600a3db45fb9bb80a19823c1a000daa456435d90ee56dec1f681db209441593cc50f63bfa45e96f53a81807c4f319151989449708f35f00cb50add2d582c07df8b83fe08950e4ebcd28bfd7b64339dea6887c888f8fce9016d95201da405448e30e25b4c9c74e360510227be4b0b819d614b2da249432cb22e143c83222c4bbc08dc3669820afa60e8a6f7707b254e1f7e931913a2e2054dd2b761272d8c9ae52d3a1d1e500633e2ec8cd1135bd03ca77e65395c04b470d73edbb8ec49cc25bcb873123017919b25480327b9824811b32a37917aa09411937a60b9951bf60af2883b54a8eb623e0af8da87ff5029a0dd67c142c5c01f86faeaddc88b72c0af774e947358c53c1675df40d8aea9ef7563835590edcfc602c090cdfbe2b10004642bfea3da6e0d67716a78be49b0fda4e03d6a73b6166cf2dba45136283fc2e794c221029f745abf5724cdcc1c072add6460a9f8a8044caf1422244e918b0ea75bdf6771194030eef3ba5feaed7ec1dfbafd9fc2b69a2cef8c9fa732a73e11638b3a4b35aac044fd9cdb10d609ab29d9213401c432790e9b15fa3ed801c32426d7ead00558f0dd906db151951c34f3bbb157efb11501d214da9712cf7e2826ffe01f0375538b16f07f693a3f3719609a97bb6bdafb600b1ba518b00cf8751abb518fde78906f47245e09e0ae52318f5a83e724eb1073867209fb456bf67e436a948efbd4e01c58cc43cf86ca148671bd3da5d54933d44b6fa9478c3174d210b8a69d26d9b970eb1bda6787aab038c7622c71382e4243c42245b6718b84c09cfbc8bca6da5dfcb909dacb14080870e611b3d51c4ec9513351bf71b03b907efdb35867b78f21bcbd671f830acbd1cf95470c2822b05b78dce4dc530ab692973738e384e3b8e184f3b87a6eabf3baeaabf7baea3f7a7fafbdf67cbf3d067d974d265997c956937999648cd59749464077dc21d011d551ff3fec96186d5b0dd133f326579c5ffc01b34a15bd34e86cd1a5a75b83ce161d5a3a354892e38db327809b4037006f02b8097403f0f43849ec09e026d00dc09b006e021dde93961b5aa834a06a41a105015163ac1a74b6e8d09208be60490037810eef896385160444776ad455a784f062e84b9f2dc1ed4db4aebfe3a840ebbe3452008c0dc1fd3ea18667b8c158c9b59d68a8659b4e3c54be9c599f033bd2ef06e5378e44155683dbdefc9cf2fad9d10d62af6afb83ea5dd7d71f772b06eec61cce7cd1527b61d173c078d013d28f27c0dfcb8821ba4d8079edbffef66119d17bd957efe7bc6f9992a1506942c142eaa0a7e5e973b305720f5bf8e07c5f27a90bb6ce0de8035db10042f4c671cd7c4dd7e6dbfd91790747bd24d6917c5b5d52d03eda3506622b8a574e0ebae63d3b790c12f68d02b79ff487635f383ad68e6305dda8639ee1ca58be4ad07f3bbafed16401794b20924d5cc6097ba7496519fdba50d584df6211b6dd62eebfa88e931fa869b629e7d04f1c9ab6b2af284585094bf6eb7eee65d5dbcbf965bb0c622a50c6b693166a613422b08351a79844019cd372facc47237c451da004bb766f86019551800dbcf986eec20b1858ba44ba7828ff3156025cb77a5f3aca42707e5dd1085f8dad9c5cf8526e0897cf57e2c085d7d074e9d8110b9717def99def106fd0e87befb62b6c8bb1ad75e310098592db0e67c91791c6da0b60448c1d5946f88564d072bad507b458907b3b1e79ca092720cc79178447d0c45ee985fc2442a72d40de649731a5541e14304cb3ae11656e10c95bfaef77df7505d35d6324b7c7b030e737f8d593882da94cb9f8615c5d3b23e81be5c9da5d91d461a0b3017db158779f3a7035596fb2182024b6e95a8bd0793f2e887459e324e4a5eb424c7ff8d1025990d9a47e9f1f744fd9be1ef69fe4339a0c672ce58490958a24f65d81e6b6f8b642de18af57aa0a4aebb067ac36e19800e35f29515162aa08b4590fcf7a6715f314d2d082577671c72b10d74684934dfa9738c948f90a2fe834c82b2bfe564f90d56449849730aea810af3ce9ac88ff8f7281d7f440d754441cab1e4dfd400b0fa28c2985fedbf87e305e07dd7b2382cec708817450529f63cb817ab5eb1dc8cfacb31583ca9fcedf5a79abc5e21f749b578c57445e889122ce06bd6ca45c56dfd21135c54faa587b976c27091b3586fc00a28d6676c36b63cc55782556749c8a053831aa532272d0d33707f146468c72ea51302a17dd6ac2e9d1dc73063a95e47a1b83069917dd0e71d7375573a601512b0c0623d3bd491caf91308a31b548118cee262770c523c140132e96b9a51d81ac138680b5a1b7931053b7451dbc1fd14f1f949bb28d9f5948fd4dda13568d850321daf4a7f6370b068ed13d0b4a62a2b4a2c2a6d7725b83bf3d73934d954145af84054b9edc3a1620191e993ede8e1a7d82d56671690d19b5852b22dab4dc0bdc437ca614914d38803c2b24ff453605c1f0d73c13bdb70b8fe1c6d96cef5dbbef897cf3a8fc7ad253c3fcd68942ae26a9992ea43dc039c74c8ce9620b0eb68caf78163a793af94dfb36a87028aa098147106082091d791f2ecaefdcac2a1807ffb66d9357722332497551f5896dca3339f6b6e452c4cb37167f84145ccad9b8bc0e18a06b1669fff82d36c45178c3c0f93509c71e80a6695d616529c2ced73aa0366549ae91ac08ef77ffeb8a2cd9499da771b241ad6e222e199fd75d46381d6d027c9542747202e1c704b4a9e2d06e7efe06599e8acba04515fe48209fb7188e4a143e79a2642794dc654a4055b9559028285b1b390493fdbea089d08730cfeceb233a571650d4e1df5b7fbc8f2d60133f5d82f7d6f9657d9397976c1acc56327e8b9d0a05ca637522cf0c7429aa3e9a054d942c24661ec4e39ce4f44c76c40e4c1f742df42d40e4b6c1ea7c8493a1c90d3a2181265e6216c8fad38808b6dc686b696e5661a38b20522fc3db10436e84873a978280ee02a455881978a5dc14e713453c0c24e0c379050336f0a71c8333a091a3379038c83331b008c2d7986313838e558681fab7ce596b85250038484de4860128b1fd1e99f88e9f98df3add125dfe7341069dda263624d9812fa752aa3c042760edf1db4e0fcdc24a0ee402cb2935d05cec8f67db8b4e070efd637dd71a4d9f47823d7e1b74e3df6dbe1905e84b2ef99c2ba748fcf9157bc65d56776b1878c7dfd0c6ccbbe98a6ecc37a2bcaa74b33c27a1e52c1673ec7872294193782be5cc7f69f56ee3b4074cb1d1ac8a2f741c3ef0c27e2b3ef3d08b9a836392056a63bd9c76c5bd2034576a61727696271c126a998696ce9808ff023fe75726008842d9317660e4214138fee532048f2681507ae13e9fd758f99e78783efd8b8800d7a9d0679f794dea7acbcc4432492d63d6317108a0cf7984995d8e132f7a30bc36a1242a19bc48613ba1992cb2b9260ebab2129e7f0d51cf066445625a636a9a8c528a428335f7f9b572ecad3c656918c59367d8fd383b859c77210ec944b92fb9b79bb8e7139320ae67f2f997fa70813830bc3b42d0b5fce703546e002ca5eccc75e9032bea7bc87b1cf12ee1ac04b90a2c0642a2420ec8a4b78cd253c10050c4649165361b8f7310b7114a000ad2cdf702038fccc5edaf111c468c9d75760871bc9fb982e0a088d93239152f1626d4be89fa5e712856dadb7b9d1cecc499fced291a6f1e6d361b58a3803ecc720463e0182dc22eb54dd8c872cd9a21d1dc97d8f8dc0b6e1844ac23957d7279b784e274035448bca713feea6dc66a934d4a9a64d608e3493309e422d1028a2edeefe8e202233c9edea8b27a1d0efada19c946b3ab1b8cd6849d3111f0e1d7511db19acd1cfee31ce20019e372f69e8c0316b5c73030bbcea98ca0a4c9c4d49bc6301010d3834fe069c3358bf519c63000d877ef7c42a00f8ce7031af78e975a3050c24a077a9a28730b5fd0d3ef9e8c9374edec4ef2f437117a8f7852c2d9dfdf1ba47cc56fa6e8400f204d56837ad87ce4a7234a1de41af580eddf17f5b2b0130b420b7c92cdc9cb0b3d86d6362209d95bee2df79652269902e708250928095e358ebb1ebcf42aaf296fe59c92fd18051fbb8d7f436e3e0581b09afb51ccb90e08f495d7ee878dafee97721be72ec826f386b01f2fddfcd494077f048cb5f853cf9f7eca7e4a954a39ed8252d4e67ed4aeee67b10ccb289675254cd7b8db8373fb369e795fe62a958d63abfb0df9954de75957424dc79ff2be94b3af3ca1d4b540a0673fd17a436e74b2cb83f38e310cc3bcafbdfa8d27d4de79ec8070de79edb81c261673a1761bffda6b3c3aa71cf31ab75979fe2a0c5379ec825429cf9fe3aa070d8c56254c4f71b7521ced9e94b34795d894a72eedbcf61b20ed9da73caaf3a3f39577bef2baf26aee57f43529ef0bb2f195f7d95c1ecc3954ce9c23e52bff8929af7a8d677d05b995ce0f95739e722e7533ee7adb0d744c0539168479824313252c63407d019eb19cc9f23840e90e84ec3a59e248d3af80f4bc848bca7f50e9a1eb78c692668c875d108e18cb2f7970b2b01447098b790d157e62dd86b27ac3a29063caf250ea9bb6b9b65df8a45b5070b2b0fcf331bbc392f48283ebf97543197e3dbf6e40fa1b9cdca0e4f965c399ef189e5f3588f9ca5d104e18b63d09e78c6d2aa5b49aa659b7b15e6335d949bbf26963646ba357736dbce8d5d8d87835de47dfaefca76bd5624de4ecfdd829bfe60dd9796ceb3cbae645af9a16234bd3be21b5c6b973f6a0e3f0783a4f88a7812120f08854300277ea190b5f4b17d5f4960494524a5944c509a321841ba59af3e6cda9694e3dec6a5e9661d1b538a184b16127551c3170c0b0bcb5511b497b73d1b451b7d871c058ee3bbba1c32b95651392092b6b3ffdecb81940b04e2befbcb6d24bcde4b512c4ce44da56f8db49aabb298ff763556e95d17865729541df360f3ebdadc439a67b1769ec7cf0775787bad0e69a4b875d50e749e7bc158dad28d672fbb452168dcec0aa26a7c12ced44b3ada445b11672a7a857aa919941304ab77e1aaa7bf8a1ba353bff892b8f53791fd402ff6b25a8aad5116acb5a086997dd31ecd74a23746bca9a1a67e72e88465af3d35817a439a669f7488903d55cee1bd4b973237c3f68f4b335b36435ba65a40ae91ece2eabba900a39ceaecf0042a8d4add992fc135bd5fb18ea339f3e8210233eb0497f21fc7cd824fab452132b73b6527cd23d7d61137e1c24ac93cbfc9d0767d83cee619332306fa5e973cee05006be317dbb1f9d3dba09f6747345c519a3a6062529d3d8e852465792a9fc863fba93d9ccb32ecb325597659e659e659e652acfb22ccbb2cc3bcfc3f9c2b6ab344a69f58d53a9acf35be7387badabbcee7ef4556ebd54ca7fa2caebece6b6db385ae9a6d16c87aaf1677de5ececec296fa75b9aaf3cef96e634fad4dc56bca1b9c6ad603f1d994b771dddf3b142d07abed608ddf3dd90d03d9ffbe89e956bdedaf19bee69d79ca5b94ae29859d578486adc66b5aab1a9a9a9f1d5ca6b56ab9a9a26a4c9c5886552ce6c520e9b3eee4fb73c150a6c7b7675f0742b6231a201148610655eab5b31ebb193d96e61de90ea3167b138ffac14918fc52c8b23f808a2516dbb3a5aabd5ad961012c8775a359bd9f4c13f6f9c24489f9dff4479647bb22c1ba17ba6673dd3339decca6e452a95ac4b9b010e49524a99c4ca18638c2d77640ea474cc43529d63aece5f7dce5a9d3d783fca0d2114549a4d73c299713865ac13274e9c4c27599c387102b32c5951e2e11dfd1dbc7089a5a59a74a844b32e08629ccb46ff6096cd61162ddd339da017319b27bd8e6b8ac5ac29bd1f950db3b0aa95d262f749b7a46a054bbbd51a76e5c74e3fef0795fc3784a1a437c12cdd928e838475e8a45bcd9d10ce9193c4b6975171a90169ce285b4a393bce39e79c53cee973ce39e74c63a54f395bfc2461a82c97b0b25b9086d03e1c8d97d51c7aa669da3de29c6c5b17d4b40bd232582bec82361f12b439dde2165df334e0a1d02d29a40ceeb6e85a1714bd6a518ba9ce07ff7675a20b41cfa89fa07916e882a8ec96d411a47b388846fd27526aad0e24f6b3990f61bd16bb20cd6b9665da3d52e240dce516840e420d4aa4063b78e10cec6769d5004e12f6d301fd7f6e08dd929e79527a1936fafdf86e50542df6b3cf55a7dd93eac14a1c2fece6d12375cded4dc35a99a7c468ad1ba5d5d3ee47378d73cc398cca4c62534a21c4783d2ce7885e7360db610f7e6954a127219cde102c92104e51b97da475524dae6f4c678f1d25c34a97b20b2bd3a824842ca514434a29a58ff18273c81b63531655c71823b5b66b25021520a5f44f470e6c74c938ba25a57361a34b17a8ca3aab58e52b67cd6b7938a2cfeaf25caa699aa669d6e35bcd3f762128744f3be638d03c53ff76fee3a7a7ad254fc93c65334fa9ff684e35aad133af51e7c1d1aad13d3bdd3371b4b09cb7751c2facbd4cebb66d9d73295f7948565e1374bf213c352b4fa5562bd73cd55d79d6aa56d6e37cc571ddf56e6ddcfd767ebb4de38a8dedd1e915824db215549658acce1612c46c1132668b095a4c6c4e0c07585e80d23205992f110716382962813cd9fdd4f36b05aeaff6b8b2797094093bf1705c075532a854eb2c61081763f783bdaf107b7f986b9387e210ee2ae7d0657739e934682c618770ce1f778708b1f343cea173f0b72aaf10bb94fed31cc7dd6fc8d7be69f71bc2fde6d43feb7ef4436a3de6eec771ded7ce95c0ce7975ebd23dc694ad2e39c7daa1d78e79df10a2e721dc37ed1bf40ab197d0ce57a83f9a7278394f7a9cf4ceab1ee69cf7710e2f51bf746d7a959e5075feca5d8fea9b4befb31cf71cf752e5dc3d5d773fef3ceaf27fe2e609bde67df40e21faf6a2a1f8f20e89ddd5d791f7473b3b77410ca532556e28dee16be56c62f4d1612b61341fe1193265ce403d6d717ad292c5ca52968f541a263d79e63b65cf77c3754bde89614d5cff714d1e2ef96e824991b9cccebc7250f298cffb8222e6f9b953352819ec1101379eb70a639ccc9c795fec46d7e6755efaec0f345a628e1c79b69cf2a2a1096bc9571c7b96733cfd57e3a582a6ff583558bc03c26fc1c5020cca478c1909fb6877c83583990042d774f80ed5b8db01f6620c17e642018bfd74f8d031671933dd8a337adddc022774ab5e12da157db6ab23de8851d3e1fae8639689503026a91830b34cc5c0428f5f4829274b4ad95db424da112a6fb218638c319ae11a5e7b852a2a6c3b642e6ed01e9bbd60592bd53c0f07f03183518acaaa302a1bd806e2f965a5866f1c9e5f44a0f9d6f38b88283f88909479fe42200396af2a950d6c4ce2f9b56483874ccf2f2474781ccfaf239a805d8fed89a71f12f2ec3db63237fc500952ff115df18585c37f444838d42bfe2332c115f3bf14a8a85242018a68fa2f05a5a667ea723d739a677ef64e411d82df4c4defbdf7ded7e6a6135b7e7679e87572f77bbdd03cfc8a7480cc2e42f12b32030e719a34694af08014bd5764069a87ed5d1e7a44ed403ca1f6d2fcd5f9013d7a0fe8f112d5673af344fd45e0472ff23e7ade37517df6a209a30bf0c2afb09d3d2221614603cb2f219c3ced81f9e6dff4cc39af294f27e5fc99f775df21d517e1549e4ecae15baf926baffdd5e5c7af3f98c9e5b29e79296f2f722a4f3218aff222e7e0550d7966124b719e794cc6ab78c296a9cee3775e9ef3daada79a2c9439f548421112d4d9a1ff68e6011d7af62373aaf3233ee7f1b9fb155971b9daab5e5554d8ea29affa91af5e23175fe50dd8cca7907d917e0e10815f5d76412a275bbdca8e077b991142d9105200a4aa33b956f894c7f375f3ba764e644884da39d75f7ccd39cd89b0e79a08d7b5739a0fc134dc91c038347686d86a5edb2d79efc7cbea560a6662ba8ee3baaeebba8e773a326addb65a37d7bcd65ac3d0344a354dd334cd29efd09c77b42b646117dcdd9d753796650e3d159365b2d235de1144798798ca2a2b56d58377b018b11839462c73cce33847e651a584e5d714343f5d7e34c33c6b17d41efc43304d6536c1438f73a838cea1f2f6544ad89477ce7975951276739512167395ca55def10e7e95b70a4c55fdc822cf5537f5e8588c14d38ac0ff6011f894c6e8f1fad32b441f40a1471a63a4fe13878c386dad69d376a8f274a2439de8ede32773e875a5448838100879ea947b64de475d285e22435cc6e57aa29adf3c4622ee3707c16b448644f8e61cd189b06f22d48930201878cd3f1812e121e7188269becb8c2376c7633aa51ef40cca9b69a9d3ebf476a09a7985cccccede90918743f1a1b30fd53892e68bd0fed863ee826611fb43a4ebc87f43199a23199a2369be08fd34be9fe5beee3b44a44876839aa87f736cbb4310cdcbabf3a3bb20ff8959f48a3436fd7e43461e6646babb878cb0c3148a9ebd339ef2a3c73b644483189a6e69a08caaba623bc5af294a3403f60af74b5f04eb529e7caecc0f655fa4a6e352453015ef20025d3f24c2436f97753d84ae17a342af2a7e9ed78436e71c3ccf8efda04e9dfa4f6f75e3a139845f83a0e6c9ad08849aacb1618c297887e2ebf0880f1d5ee71cecf0a9a75d21ead56537441ff37ae7ca61a78ac246bfda850fb7d8907140ff1c5084c433e380aef94f1c32f2b15d2b21fe50fc08858dde588ec7bc6feac03bc4e4727d011efb014e1fc07f338a950a976c807710e1f923f622b6814367bed83562210710e64a6c80a0cb9b974e838616fb0d799e30418c30c7623fb824cc4b37c26ee30d309e0c81c310494f2e1710e610087a2ef9430c2d58410723808c58c801045d890d10bb110b0d94b992060041c73c250d003222c504e8468218916242261d73788d70182d30711445031fc04c01c4405c94022d46dc70c315a7295f003110fbc76382bb5c40102ee99e0134913954e61d1f8f6f3fe5fd00435d2c5ede8965d2b3fb01ec7e980f894194f9793fc050c41b3d090593c7ee11ad25f80ffa377d48d193c73ec000a3a5fba9f0f1030cc5085e62f7030cf5f336211d71802e49c83b05e96b3cbfa6bc706484bd04aa3469d23c01d25c385f824032c6e50282472e1b30f030031422018002441617110818ea8f5c07e89284ab08038c96547031144d80d8bf11fc74667e2525f144f08f56602820edba180a88af11f6127ce0861ca83882c665e47201b17f467ede8f5d7ad1bb93c001ba5c49238115982f2e2803499a3440ec3f1dfb881ae57408333aa79d13eb24fd4a92e1591efcaea2b2c7c8e2f156c43cba8639c5a247568c3e1b86c65c473afc7e1dc924c324e7882d79c704a15b3309c9f3c48faaae508f3e9b4f6f459fe93a7887730eead3ab67fb06f5cda37d83e6d0e8c3ea1b0cf51f083f3da776fc4a723db6e23c3a104d5fa35b5427f3f8fd3ad9e557520bcfafa424af49cec14b51881aa5b7104ed4e5900a462b1c71fdd027821c9091e6314fa1e8b19bc274efe90da1462b1cf92198e653e123107a3f15ee07e1639ece8fe8d2a3cb2f7e2b5133ef9c79078fa2ff38a72e449d9f5f40a0f9e9b577f06bd534df3c86fec1e7fb6995e3e07be5fca7b97ad4e392b09c57dfb82ba46940da35ef9ca717230d95554a56f2e8e099cedaf20d3443f869e73c52992133dc40656cc5754b768b6f7c8910fff196979e6119cd74647e42f7f00b88a4cfdc02193b6531d0c135baa7bd8c093ac17ae2b3ac67278b4154561961f93585cc7ff47b313d7dc721b2b5439fbe81a4079a6311fe23b28d3650582eca43113885435bc6af46976226027d2ce2db59bdc37544bc191d84700aa30a0a64d802883d585d9514db7ac1936fc71102a704efeb054b1e46576555119c002aaba6d8762e85c34bca0c4539f0a0823160725842071a0045d92548c656b25b44f13767d54cd3b42cfa4d855d8f38c46f9e11c5d7fcabc7bf79d673c181b86f7cf26b3cbc1fe610621e3fd1e43ac6561dcf15d72df71f82f1d9a1657d74456ff18eb8f31387e8aa2816aaa44c294ba24c55140bbd53a8dcb53257146970854e8509490b0c24179dbebd863f7dfbceb7d758e5db8a17e2e5d9683689f2046329276c00a4d877f095d19fa5e40381faf5039567d8e5871dfe6b7af9e03ad221e61142797f408f0d9378f9f0e4e7f3ab07a6e71a24282f0d4155dd60bba723e4ce01452f659012c7113280e424b60bf11d2ac1b37fedd0881e909e5f3d28f9023cbf90bc7c94185667b79cf68c3ad8e541bbe53b9286aabac146f945a7b104e41e910439b17629c4d84fab5c60650f4acfceaf7a32548297ae81ca1da38c32461939f6ea0b89ca7f962784ee892e40dae1a3df4417fc078250bb942b6e1f0682ce41f93adaa1fb091d8c9e5f2a282380e7570e4ebeaa301f52e686e594484a6a873084b0bb7bc6c842ba0599c5f82001ba947402a0d704613fc8d4b365613fe8a20121d337944f96e9a547043e3bbf909a3e7afc3adae1b983de84cd50312ba0af1c8ad2af3ce5d4bb23129439e7b5a69c6574fa1aefaa70284e9ef30e4a96b7f10e94528cdeac7e4e2ef35853622f987265816ed1cc310c9b1ac5b0396915d9831f9352c6d5099bac73ba84104e6821c424cd3cca59cad66647e29c73d25526a5b794734a492d853286899177a6b3cc6e3ad822314fc2392794b03d1aa5c31861c490e42a478c92fe796a15a3c7c85212f54b4e72bce162943246c9bca23ce0476e1ab0582c966461538c97335ec45481268a7d7e7d79f255909158cc32cf6846e991c51e80f1cba29f2e8b38d86197a8e5c32f4b9e5f5fb6b09e5f5fac3cec7ebcbd31826174627da5cc6cd0a921912452f4e924a9147d4e487292484e12c94922d1e8241beeeed5fa60bf4e724f8a8d4eb261c3868d4eeab1213bc9494a29351b3eaddbf0b2fc6451698be03346ba355d05c73cba74e203f9860d2b363ac94612c67de01d04fb30dff0c067f71311573cf0af9968a876b2e15f7bf9c0860d1b1ed8b061c33ba95b54acd8cd31b73157b65b4b7e7ee03fdd1e559893c572efde520e530e31aee106756af80914e01dd2a757807b3677ffa8e79ffd1aff585fe3cc3e19df805ee39b17b9051df3a8e7e54097fd10daf068bc284786e5a7ae613cbc520e763da8432dca968484d449ddd44e6da5b5f496c9f43348158a82214924a42064ba94ea03ff20d5b0ad2c31759207b45b9b639ed0074e04be0d0f4202155e9eaa9e74cb4e7642c5ee746b76e0d1917c3c9f2e97b2744f073e5d3651e99e8ec93fa92535adfcc454124922c9283209476e39fe75127529e50dd2ad4942b7e607369628818a62a28fbb8dcbeea13e5d2a893e0d65bbd33d4fbaba1d9c2024c827d249f4692850a493545369a51d9ccde56ff723c163b18c7bd14cc6d44b49f1c6f4e042a1e17df0693876239a1f2c741de7ba35c3bf4eeaa4ded24edda3e3d3dbcbcd8dab6ebc866764625d27456aa35392ce55a15bd359de817f7c8608984a79273595564a714fc3e3efc0637939de913b8e37c3f388401befe332afc623929db0baf6b293fb883e7eb3586badb5563e0de00a9a570dc8d822ba8e2d11f645051a235e546879393dbd9cb4581fa0951a78f91a6c7996e2b98bd3337b8fa9bc03674c927129296298ed827fb0143a41272779b9c22708063a39498e4f3c540b03abbd9cacc40d6e2d6d3ef10a130566b147d8891834b5a08ba4294530018a4d1f010b443b064d309b402d46d826223de2e0f942f0d93c02f1af4eeb03b6fbd5881d8bd559b644cad12395ca65b6f4f47ef0e9f4187bf86f2ee57675369f97db2ea5de796cf222269a712d71b24392952c5b9ec8c833fd465238293b2098cbfbddaf290f7e7331f39c6b1d90c8d4ad9b1bb378fc5a67a5b4ec8288f4e0dfbc47bfd6057597f9005f05d24048f0d56396eee1803410ec46a64a3dc805eadb61f700d5c398254ac139e21d8231cb64c870ce94948e79714bb7e23725d92f367df4b8149962130a04161bac74812e2c474e207c4146b7cab93bb7e6ce6701ac860be13c560d0d7cbc61160a1f2ddf68cccc15c62a51cb7faca75560f8e2a2428321a08e6a6825a474777bc57eaa976e65e41d3c1996653609fbf96799a53b2d6c6238e0b1a4a5e7642cd6deb0a4276515feb29f7dc992734e2460b7b0202b85fd588fd5f09dee91903308338835d18cca0cf34c28cbb2ed4e4a29a54e29a5946a9ac603839eb3c6b44bd8cf1dd27861180f165e9e00cfaf2d494e6c81220333cf4f30613f90dc8404b4f4052acb26fbd99fb0a32441b78dc27eaa6f2800507bf04378b358e88c801a8f9840e5ce3259f9d3254c41e5779e5f5268c1dab31f725ea199dd7965b7b09fb648d825a878b23f546c8b1d3ef952064fb4b0fc9a424c9ce2c98eb1fc9201d4ff4b065ea4d0f2d26b740ff7803e9da384505e615e5072fe80649b45b04aac126b03a397ce03c44beec1bf90f90a1b97be65df90f60ae84d44c53608e196dab61464f9e69a0f869cf705f9aa524995b45e21c7712abb79f12984db267d1b1244f3823c6b1bb76d9c4315c771dcb65aad562b95f377f67eaa2b9de3dcfb823cc7f987d1c738cadd92db8d672445286edbfd8a5e4a74cda3a1c56e0ed3fca779a5d463f763bb47361ebb23250e64734bc00324457a7777df786b585029a5d652e95cf77c5028738a51acd218638c180d6b64a3331dcae8cd2ebd4313524a29bc47d0e72d9a50ae207912b5aa0c6e6110c3aece8ff65ba45f5ed9577210820c81462faa1c4ca2ae82060d2d1ddb930e3b19c2af9430e9f0d07f1a22f1b0ac9d3d383ce7095b051379b398bda8f49849399ddaa49f4f146182213c1eafef743afce73c9386ca3b18f3134b7ef5fcd202e5b93323a58c52ba7df2f2e5eb091f5e4a29ef1755377835bdf0dbf3abc9d5f48aa209143ba8c2b0fc8aa2cc2b0a28af28c4bca088e244fd47987327011180b0cbd2cb4b4b93567da1f222429e2f2a2f688c6168318210420821e438473b61e6e50417af52c2b6cbe797135afc47790763cf2f27a09e35465545692f83027b23f1473c8f0ae6f38ba98c6a8c9403f80f7afb2c9a25789eec519f9e91973e63106580e87531144d7e22e42805188a26400378de890e6d8882838827cff9f4f65280dfda1582ae3511c839a613d11fe2343c38dfb6af3704accb9fc75648e78858f29c6b5eebd49873b473f74373ce7fba47565df3388f1d10ea10f6859c03bae69532069b0b4884955e80978eb9d296c73c0b72c210ae08c4a383b9efb484a0a0d46402196165e2683133538f943b4148f77cac1ff8af21acfc7410787ede940082cfbcd989b09dee9944da89302018e8ce014538f8763cb48e842224b00dfb60d163421ff623bb1f091e7e7b7bec6e6f77e89dc1c0e9316fde1cf98f3abfa258b1dd738339f58f04697ef491a75eb95df47e45471e96a166aaaadb2a752efacdeb9c7a455f6bad3ad435efaa9c79e91d18ac4aafb508729ae60d19198a5f5d555d480748e6d3b35406244b65dae6fcda767950d75ccba2f45268bac639f5e06bdbb65da1e99f748d2b417297bb98ca8bcd023302209091ca59604600e610e827625e74d5909197d11b8a40b42bd4b9f4aef38855c7eed779bd3ad5339f40a47757a75e20d431a78e6d9e09519a01a119d5ee8779e55c47c33c1dedf29830407a29b479bd1ffc0f738e730c3ee79347fd512f730eed0ec134f57e9b635ee163f0e1c39fddd3fe8110c2b3f302fac8b3a778746ccda5a0ca522c738595a748e5c917559365666666662e52f3ccccdc41d4f6aa0af274e6848c793ad3e1678eada40fe0a367de58638d65ec8dd1ebe519f39f3803fed3d123d22fbbe113757f7713f5b7081c5bd8228516e02049115450896208208e7a75e1e5c545172b1350c0c8c9131d62f8d2022c64562c6cc1c511ffb53e72614407b8e0028a1ca2fce0c4f4e2a24a94550b9c2606298ccac8e1484c0c5a8040cb1351395cb14213a8311058255925e12923aa051a2ccc1bcc20c382e4e9c59261418b4522a594b21e918a4125e3c38a4c0c90a89e5f5cb8a0b55006940dc99c733b41b501c99593cc918e4c0c467c05cc1520ac70d2c59530c49881610b2dea8b2bcaf02e98ac10020b0a565044165b0461b7b8e2c39c734e2569c22862081ea278c10b1b6c01656ec1c312bac50cd8162c60c18e31e3f915f5c5864e0a38790b232d5640868c526671014a97364a295f51585e4a69cf74f0fc8a92f2dcf32b2a87ffacbfc2ec48c11463609161cbd10b3c3c39a0946767070752ee145121f34392a72ea6f00225068f1862f088b103c7681103c68c8c52460b86b5cf2f2d5a98f2a5c50a2fe54b2b7d87c6f36b8c98c79e5f63aef8cf79ce580c724d31ec7e1ebd81c51c5e2a31ec35c60b0bd60b283b3b5f48b963cbececd832354d9a9c9ec494796a8a3eee4ddee44ddeb4e3218080c3ddda2ce48f00bc7cead666b4d178b5265b85fdb426df5c659aa05236a478484949554959f9f6d4936e8cd491940b2919521d97ae8a2e4c17d599f9f66e4b1744474477a563a26bfaf62ea983a14b416743c74317e5dbbb25dc18ce0b6e8cee48a7847b714f705cb82a38262e07ae072e0822b82532d8676564c42531e26030e252c03d414305fbac8e8ec01c8d39f2e28c5315f65935d184114dbc9a78a26ea932541a6a0eb587da648bdac0d8c8a849ea12324c6c526c546c60c464e1815d8a5731c237a66fdf76d88e6c2eded150583458197e73c192b19f3f5189c61acd1996b4a6a6a7a6a7a6a7a6a7a6a7a5e8239f9e969e969e969e96a09ed09821f3f4c4627953d316344df6c97e5ad3e6722d91e99ecfcb343d4189e91eee1e36827d526452645e29324fa4c8704991f16245d2c03e2a264c640e4c7a601204132760b08f6aca1432a6c82453240c53e40c66a4601f15172e547001c3650c97324d52d847754675a68aea8c11aa332fd5192d51a20bec636ba821ca5043a4a18698430d4ac2b08f3de288a823c038828c23a0aeb08f0563c13061c14861c15061c13c2db50decb33232e2c1488a5115a36fef27aba3a33e72d42e1cb50c4767b8b0cfaa8926aa68224c13514d98d91204fbaca2565144aca2aeaca2985845f10e18d827b5945a8229482d411b524b3ca496a274807db426adc98b31e0110d8520f6d9e813964b152378ec239ff846f77ff289a5008b80ef1b4f4f4f4f4f4f9bd1e6da5c9b6b43a2643bb2b92c179bebe9096a49479fcd935848168a536a2d8be5beb99eda1b877f6c512b76deb8b936d7661425a66a9a1800693ef919e6920c4ad2fbc52528da14256da24dd187c61bac489b689384dd126deac27ef0a9e99b6e81ed2f3320a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a26c948d2243268c97305ac2587952ab94d4834bba2587b2c63aabd3e3657800cca5379540296f065bc9cbeb0a32cf2f305e5e609ab0d06be6b0a33ad8854d5109695fb0ad6e592465b2d40c9c37b4de4ec43b54deec93e31df520d107e736dfa08eddcf3ecd79eaf27e395258694afa3a6717c471f1461074d81dc2f34243d2bf8893e321c971234540398ee38d20c757355ee33939399ea40828e726b1f19a2b3dae3c7ee9b97794e3aa9cee46efe8c66d6eae0b389ea4a60607c76b38094e8d27c1f11b4f6293e3496e6c1c04d127e7da505a632d8b3ffac7f335e352469d771e8d2b96f3e99c778b398f2e392e0bab451f08a402b6e4270e652f69b7dabf9d4f0791d9337a4717723c094e0e4e8de7b80b379ec4e6c6c6c6735c98e1496e66dcdc780ecb93cc60e5f80c1ccfb92eb08092e078ce8c1716674078c6c24c8e87e3cdf06e3c59e34dcce19572ce39e574f9024366ce2597eba58c506caf9c54eeaad31e1949e6468a8032a7de08b26fdede7cf39fceb22cbb4934dfd87b462dbb2e644eb3cc69463d49129a710c55fa8013360d1a2ffbf0f6b55858e95a9c40592bac0ff68bfd627db03e582bec9717165b2c17d05b6274e352b60747a8da62392bd058d1c543b71c851076c47922a59413cb9942b92ccb32aae13051b96ddbb6ca6d56a4b8aeebba940a1bb3e2acb5765553f3fc7aeae286b3b1b1b1b999913a8283838393c3924c68701d74d0410734745628b0c1d5e882600daf51a3eb016d7443304d64ef69c97fdc4d0796f502b3c3b32227a56e1a97b2c9810dc4844163a74ca1d261ce09676d628a13a42b49c250a1420c149ba483941e9db220a303312a7821cd1493c51397051919d224e0f96545118ff3fcb262078c69623df8b17b5380294f5c3b548912e306ac8516576c68c10a9498a10646f2a70e8ffe383d1efd71c28f9e0e84b74db0d9a53df86fe0b59f0e107e7c9c0042f7448f5c9ce8220397142c9ef0299aa1e94b9613c0408822a6006a77f629aae18631cad8c2c20a3ddc00d4de629f08bc104594255f6a50040e80daa39744f7cf0829bb82359c77d00564ce0e00de814daf617324e0790021fcc41b2d03c03e36a6aca6b98dfbf0b1aaf1e363041fabae71b95bed919ff3a14263f955cead5cebb694cb2ec836b7e326f50cab4dc763753ff92baff10efcd3f191e51f023ede789c20313ac305d4f00ffbd843c33fee3df0cfbee41d371eef3724848fced32d1d2e7b7550b151c31b013c40bb0e0d0fbaa051df6096dec1fd3e60dd8fd53917e7ceb870899dc18d47875b6ebc1a24ac0843e8d004040e82b8020306b8be904114292c50ea02b472ce7fe2db78307c7b8d47d42f8356d2a1261d4eed990ae76813a89456a5694a98594245185b3475f1c29f4c10c3122d30bc50a52f4ce2920414a45b3cb0098f15176c40854b18170bb46034415899c2f5430c4d4aec850aa2c080091214173670962852b8d0fc10852b8909dd6acdabc72c59bb4434ff215ff3e072bc512153b77aa95b2704814b678c2c59824f9df4c3c20dc4a0a14c0d68ae80518482133871240b5713942413988041e6061dac68010e1ac0a4cb174834d4e08b2b959b7396e0d207f90ccc029bba7c432adde21dd97b10a9c79c830f101df322e7588ade35bacc30c183e6ae6b8eb01f37c1a56f874fdf3d917d8a9a70c1e4053d3009c1051640ed300bfb70513110a30b1ac6d8e10ba076d8c43e45365ca1c59525474694f104503b74629f0ddcd0022e4b34f9410a2480ba46d7f8a2620e67779cf366cd1d04386389e3a5774b3601f142f80c7c884587b11f3f09895e44bd990178b6f13c837ba8b6395c80a4dc92ae791cb7a47ce9900f30e3fbc0cac892caef839f5e19f356f409c2b524a5f79bf171de1bce61359ab56e5e5e13301e2a43d937a41175c9d18f30044ccf3c162890cdcfd54fef3801d3ed0a56766b666ca334a005d80d46e5ae448041e259605edc81ca8d695e390e7edd34cad9176a9a248d38b0e69473e6683863dc22c6cca3531a36c326c6942d6522ca444f6b14bab579536f48b3ba4d2935ac0a08214c017e8466ba3b42304c96b22ced29c7400823ec55840dbbc418e3740ce36e4d9e2d1f4a26e2c92dab90114a06a2d0a8148d9675392d19a2110100000000e314002020140c070402a150389ae7badc7d14800b979a42664a1649b3288771140619630c52800002c6800c88080d4914315ef03187de03a03f2f0d9748d6e01cd21bc8d4afe3a64f285197da1c8dd41cdefdba9f2a90dcfed402ae82298f85ee4b3648d1c27664b8f15e9a58f2ff066edc9e4a774424a4e09ea0192b37367654f081f0d4146c66b7bae67c4463dde96b90f4620b9ec4b0410bde2b3fbd6344eeab2010ab2db942730517712fe346573fc56e87f2612b9eaaca194303c278a59935c1b8df14d310e95cbae022f5b6976e8dfa9e31f28d0c56d53013b3be29636f408c18f2cadc74f39065f1ff7254f418d70bd71e2bc91e848c0a77fc5e6092bdbdf3316f57c83bf094d7bdec33854497e1f30d92d9e1a48b111e992a6902097018a598bcda5468e5e4497124618cfdbe3278c26e4ddd4e190d015ff0837a5cacbb93c0d0f9d17ae7b40a379a094417e05fd1d33ca9d6cf7b2b8aa83f23d12c76f3cc2beb0e7aabfa2035f1c848e5a9ad9d88fc572dd29974c8c3ce980f90a73b97a8886a54313a396e950894d12f751ad31247417adf14494f15ef26bac0a27cced7e68460bbaf8404b791712872a4e5d945e58d77971c92b64de0be7b15395f5454460c6a8d875386188329b360482eb71a5dcb5744e17c32d84bc8df8c3251fc5d7d3066a4fdcd7500d024fdfc02ef3cc568acff810fa568829f71106a7c7960bf9bd8705a1a3ae0634e130b9110f98240be85ffbaf784d30478c732a0e0e0c78ddba4d5dbcd6007a6ccefb0de5688e0114f51fd0383fbcebc96a6788ab9a9936b86f3724b67cf2bfd14b6edc61c06cbfa41b018af34b7de414e3fd9538e729be080de4b50b4174330bc5915e811c327e4f06faa6ca635749c658d94ed58f1715f2b5ae693935688697b25549bebe16f3f0faae633502e9d69bbff000ca0a0ba0592381a9a60677876c1a0d2a51dbff118532cbff7a898cb237c84dd0571960c7989e44151b16c05e02501baf00bbf25f001b4b176a825cedfb2a329108b444160372d6e62683dc1e4badd76007bf6db6e13741b161182e9077498e040fca7f8241a89eacd283060add615457cda93ac7b3f586e75e8207875dede6357c2473f3efc4a10671f1c93f2e7cdc6e849644dfc36f9a38a9ceacd9efc7f5b5d2a2f7b39844db9bfb05bdc548c37120a9a028cd82f647609de3a51be5eb9b58295bf9ed298e174d32154e8efd4dc3ab2b32a375338bab2c939bdfb1519f8e176f68c63e37c3548b516d4443758921531abe1ddfac7d6d0aa498fe0bff939c69ce2b950c7437012da82b70e059e6387b6cb132f301103ff8eb939fbd311ddb7cebdf3b7792bba7072b3343c1bed0bb8b767c9b6c391ef018fa9e1cf2ca72ccaef3177e7dfe681a37aa751be458e9929cdbeb243403813227c78bafbd7af88861cc80f3b52dd7de13f3ac79ecd093a6330f2f466a96a2223b551c1e65f99f06a88c8570c4553397295d481cf1c85179e6989bf315734b1b927a55c88b5daf770e1419fa3ffd5b03361f8760e1ec619c137916dceab6bae348705962838044f8d996b8d349e5827c283923e2444fe59791fd54c938f0c4d8b324192e5a7131fd8701135743787ea1c4400d8813cdf677000d0666107598a7ccec1fd909750b40b882ffb261cfabd344dfe8d62742f72685a342efc835594a30f3d342ee5a7d3174a4b7ea2135f1cd8f2ea795186407143b57d09d2a8e5a763e962a4e7caa8a348a1e38128982c52c7d5330aad4915d6ff40bda3016c4bd9847f76c6340b1cf0da26b13a27b3658a25ecfeb43ce9ea0d99410090ef36387a3384607908cbe184876893f2ae9672abfcf01c1aa05d4870d4833c9cc4f8fef869ca34a90045c6eb2ea886e3cafeae3bf2cad680dbd02678ea322624cfef0fc31b7af0568dcbc4a68dfb25e2fb3d6758e1c94130e0f38c0262c0f27e009fdd9ebde5bd579156ab2cf7e054ec5b13ea8ecbafbfeef8e05a4d6537f48255a5683bb7e6c1b49f0ac5dbf7a16ac4992f9128ec449ed7c494057e2c7d5576112c1c049cfb1e3d0f1a55d512f390f0626f2f739cb93578d83f0d7b93eb68271b165c946737e18b1c74d67ae87432b56963e658c74076a59f43f768f74dd2bda12045e5d415d455984ea84186ccfdf7b7d9aad2b7c952e13633a3650f242e8cc23200a2b0a0fd461b419cb92f26c637c94f812d1f1943c1813de5d50c873b0e21fa4a45acd616160bdd8e73cdb19e7a8d8f128ec58ff6ab491ad043c7696f521b8fe4a5e40443aa293454e94789ed5473a7b3fb3ce530dde4f00b623a74b6ce8da6448053034b20678dc0c18351c74458d2eff47731c1b8ba5774743de3472a7c45e71c38a95a8880fe6baa578a24a485ee12692513ff9189f7b937e817dca49ba456d60753b54692370b95f6b61b8e328d46f15e18f34b6f1014de2a286816d8baebc776084124f20c11ae70384e4a97451a0e32f8cf21ecd5693071bd61dc3b91845959c46b21dc77a982a6e8905e73fe2e934fcbba40c6b994735fafe99432387b2bb8f93845a749434f4415a5cb8ffa91fea03e920ffa63f1517cac1ff547f2a37ea03faa0fe44331fd93f9587fee9ff9b57eee3ff3b37edc3ff3637db87b666fbd725f8df79960ecc6637380090aec9d01bc3b907704fefe00df19f0bb02bd7b00ef09f0dd01bedf027adf0be83d0fb7f3feb60e1fb7862a88bdaf0344b75694fb500d5aa7d49cbde240c1a69ef71ea9268645b0b1ecb6c662f2c3d83ac39512b6bcad69403dc8119f1eac1b0e79b6ac2be2b54d9b82001e8545d86dc4f765ece76afb76328f68f52aad8969cc0725cff105d27c9f2001617ddc1559ce0ddf8be86dff074ca9cf630cb10fd15eaf5ce7b9ea989a560a642f586cd743c1a713e9312e0c2bd6f6cf43c4052a86f841e2ab2e12a2e53554d758498d39c112b2295b12ad22dc9d467ff34399306c7e67f054c5a6fda5f3125d9786b6c5a42cbbad46bacb2d9c9f275daca663d7d8793d5cebf10ee12b5366a3aac1d2646e29956d210fdd1ee481fd94b6dc36c818c447b5ec9735254ea22cc80778d4af6f3d98bc8049134852a5c85322eff41db985e58583e90a8f44eff84ef29ba471a30d9862630b25f4a3f2b841152eca1d3c6fe108d7ed15dbeedeae198517c946bdcaaa2cce402c2774f497f50237c1fcc4fa4be40e860e47094148bfe3794c4064ba6106b803e970fe17c140c944956d29575933cffce5ac7b554f757bc115c25cfa1b5556bac847bbb988953ec66ec25e71d94f5000feacc496348f825402a5a9a51a1fd94e2645aba5456faea7bb1973b0c7f70da6f7e9cd77184428869b03333059f8a67704cec26f9f93ffb2a3686bc45828936d79b177ab204a650053c7c2faca6609011c4b0455285df2ea7ffde6bcd3e06b388d09923b846f07cd1d18375de12b4288658179513607fdd24c579a4540ddc54d28be2c6d691bbf953bc60ef879dd9db11535a438c0ddf9be4e3835fd563429ecc8c430de54557d7b13b437d1d164dea5301bd8e3ba25be9e4c5ce0d2a8f3c576ec79eeaa44d451e00716ae7a2320450afcd80d90aa1481d7a4b1e932354948347bc2df2bddaa942d83580822a4a72aa91fc99383ae9685a1f13c6e088023a7f6b7e63f7bf7469a1744ef1d5df09052b1f62e013bc81957b347528054d9d24bf6d612cbe5c09923f5cc09bafa8154398e3b82999d1fddb3354220b640aa74c909ceb6d28ad7292c0e6299af3b68805449d6c08e45e8333e06a75000221491c7a7b01badd3f6bdebbba2c8fb3e864d846f6579bdf5e5a4fe9fd9335b9b8973ff838d7641de178b44b6d52f72b5d357accd54f07b814664b98f01ba13d0e8172f3208b0b67c064c973385d1669aa49c69b29f8ff7b10eedbac7332d63cf6a053ea7c97f81aeb23f9235d7ef3a07f79a479b6710d367c35c0d8a7ed4b1959cc117019d60c4ec454f37d05c64479d2c1c8a7d928c00c2f0e2c3850ddc29cbe69c4c6e43531b001c7a53e0ff0d0e66abbd1c73a776aa7fa48bfbeeb87bc710b02ff2d1fd40673e2b7d22698ca69683e6f83a6fd61b81917abdb4cc724fb1f54af10d9b4c082ad1d507198f83e3f9d0f11e7cbc0e8df321c6e3f0b83e749c078fab03e37c9871383cce7930384e1574c4d333fb3b20623e5988067e77a0de0bfc5d02793fe0f70cfcfe80bd17f03b02f26ec0ef7b019ef7037e17c2e9bf57b146c1ac584c51667a4da92405d6c41e9a38067dfbf156a0c70b1a2b87f6da556335f246d5e81bd1466ef41b9d379a63f21cb01e087b8f770dfd153d5a3ad8056de7503db3f479f60e167ff5955ce21c6429de10c51281345a44107b578af4d54919bc4c766c9b0619faf2fee25349e92543fe4e7967fd74a6ecd63c5f53c65f79ba50be6c98df2eef2d9ede94d831e7ef9637bf028f3284bc1789085f9dec09e0d5b1b818c8ed95fb6b9e16caafcde6fbcbbdb57cca42286927dfc30120eadd255a8b13f836cdcf992ce5a98a2882c7aa279177363a9aa685ceec2fd8f9b22219e02e6d7e674546eb82ed76b8b395b9fbb0ecc51c7727ff8f78f1477aca26fe7eb6397573ca0a7efa7684c048a121dcd6cec412b4618286ea80aaf2c7dc7b08457b218f67bc0ebdd3d0db96498822f77d51d514463bb37865bf87cb015937a6918bde51f2efa30bef9e52630a2de695a81c0f627f81c202abf9576227fe52289f0b621251028729375fc22a44cfb313dd93bb83693cd5f6bd927389014cdb0f58f462d61bba8e65c622a7bb63a0538d05a0776fa6ebbe12697f0d4f2ca1b14bc06ae44870a828f75ee017434290b89486ed1320da55299265ed44ab90effd212bf0f384cbc886fd0861d6f37a668833171e705c43fd9a583b35ef54540d368d4ba42b8a8c1f6f0de64fa98eb0e3790cc873b9de3b1650641799b5900a8f4420d1bb4197f1c054ca07311214a551b4f1dd9fa1c057fe0621070d280cc6f56dbff7d68751a335b730c4d4c7b78cafb911ffccef4949f10a1098899159767254c1842a857f2d7f4a84b27a8f2024577b7c9fba41cde0a049cc74a5f98e6fd322377a70859503dd3a937c07aa146791a335b8e9139c7b918bc9528de503542a27d6a010ee47d9153756de8df6fba80276d41c25c042268073bec40baa6fd1d735c8589a4aaf54fddadc60d5c7dd495283dcf86340922cbdfdb5f6e3c3e98ebca6075c2fc08dc47d5c9d612a68bf04daa20276608adbc8cbe02ce3c332f4fd9fd8a161d2656e05ca9198b45304a29d8ecb972653411b602322bc1c91cfdc0d6b3ac72b5ee50be33e627c3c0cbe3cd80b3d385e9bc07a666c8e0055b84ff8c03dd081db370c08031ac1729287e5ea609c699c583279e1db07835a2f9e6a0d512ec290a3b3f7636331d2368e001ce512c8a3570d4ea6a959cccd8a54f3b054590a35190e649a5096673ddc6ee0bce0382fa8eb5255829f38136dc4398840c2371653630e6257d206ca475e9c2f53178e5d6240df5d07a806a7b2e724a7bc9a0e538436d4f91affe8a764a06db313b068e9a0b88a823534f6b5e7a6e2ae660300bf7b4e0717c11bdc46e0b04747b867fafd985baa86181b1a32796c364d2e550539568d4c9a7fc3968ce78efc2cf293842f52be96a9a05b7f2a4fc9b02776591a1fa67f0fa3ccab8ef8b1f17efa64944543a5c48f560ecdb2c74ae613112db5f916ca0039d8e056a8dcc4bce1804b7607534e8b42100a0c5121c3fbb933977561799d1f9a547df29908c812bf08935016c4349e0b279e7148a850458dee61142e4dfcb24725f815e711a7007305e7fb8a6f3f7d15e9c31cb88049d496af9485854670c2457d0db2673d1ebb6943baa6186b6136cd59b4e9aa0d9aaa9ed18f77627095a3f0456ba6c9ae4cde38f20977e692db69ab5839f8b4140533074fc51ed8fc9aac5e238adef59fcc88d16216512dcd77f5aaacd501218e4a8196b8b70851a20b2ba9237c5db2ec7e4c8370ec2fef494f9dbc40a8cfc7a7ae4f97c743c29d0e0868c843022f0453a628d280828097d4fc6afba0f9f1b1607d38ffcc8920e05dd61c8b1033f1154f3bc43347ad66e90811f28730a7b51d1c57b748e3a3b013160dad7c6d7d0a2cfdfa6b1e07aa410264025dffa50889ff8bde342f614a746648a4512408f7eb0d14320f1c8087a8ba1c91da7e931936ce2c382c93bb5f23594f156440eedfe35e32a9664be83674952e00159dd568e522eaa538b1fff116ba69eed753c003f6bbf5a3a551f1a07ffb6609c05b6998a019afa5b1404d204e84ff830f4c4037c1183abfcf8c5b169c4af3fbcba4811472722817cff4fd38e5c99de54d523d92ca71f19f2c3afdf70b49c75107fcbad1a1944f86c30cc59e562d9a2ac385ff8e1eec37e1e3f87a15cf11a914e28b87603b9294e56f07f23833eb0d3339f84d836e488852ce84dbc0c539a03a505f3d5ad42ca5280da682adb67566b546d77569640e8e339b598035edd52d3c7f800f51e0b8e4473c2ecda320ada0a17e044420ccf7211b7af396ceb29fa17bc7a06726791a201c175a4a81f578875a52db03892258133688901531c144f99a25949a2f8bf08115816c874f303855a729544e22e39c940c5590110d0ba3a3ad6a9bb9c21e8c8599b71108ebd53e7b027bda9ca359350f206480a144eb0998e2392cc3d10f5c2663f02e1383b4133b37d075ce8b3d79c355116815cb311a8cac8dbc9e8ca836e9492c67109dd6884a7b67dee440e68af65cfef06ab57617593da1c539082e5f26c37cb5cfaf2536a17c688c9c3dbc07e66c378e1ffcb1af68c835cc537db193a52010e5f56099f41fbae0e02a592ae077ea7c922a3b075f9efaead6cb065ec17c5f793f4ce7f613ac4d5bceef8d03be06155341f286659092374cda6cf41a1f8eb90f224dfcca6057ed0fb667a71fd6d88347f0fa0582ab90cf8f32ec427b2fdf4170b11c2de8bf7ef7f604ffc02c1aec7069116480afb5b09016f45298232852cd88602ff2859ddaee98fbdbcf900d4bb9ae4439457e4252cbc6f4ffdab3c8c6d68ff58e772082fc44ff63dec85a1841ed9d567abc30b26d6842085bd253deb26a8d43b33ac25b4b3d4a3c3d9b2c5c75a256b87347748437b14982c3e83a5ba00a4ccb681c427fbba5911043bab22724466bdbef6ce3b306d0c0fa228d16057b04d5725f51941d2a253193ec3d8a6866cf348751f6f7ec60f0991c09c37bae8805408b2d4175efd41adae991e8fc30c230c47ebd2c4587f1160368d95ea8236e6484fe1e54b51f8618e74a1c1c58e4d075aa3e42763bf7452cb9ee194ec069697ecff6af3e4ef9e46e9b97a0c86a40b9091ea8461d74ecf9a83ab2af13cdbbb80184d87fcc3168cfc1deb264be55ec042bb17856d233a048aefffc094a4b2555b41c0428fe6caf9379b66b32c0bd65180599818ab148db5e0da1b4b4fb74ef9086fc2930805ade4de348d0058a9c8c12404460976e4cc998a778cdb8682dbf2cdcbbba9595ee25aa709841dd5c38693374cda9bf2db2c69d7bda2beea10b96eb62140d36c56d36e4de5aa8f0d4d5f445425b5475342192c7d94f54c94aa9300f70279da85077062a64ed0bc1b289e689f42e1e057d7c9e2b10069e5537d9973e14ae14599600b9c6cc5d34ad06069cbd38a263852c69a21949e8095f10a5b9d12aad776e8a383c0315705d860424e227e1bb111ebad3e21c6673135264a63fe9911be20241fcae88ce6b180720de05bf23a6598478ec4ec14b531521059df0fc80d4e2c04a8f76d480352b939bdb8a2950e50fe3571a21c25e33bf4f52aa24382df68d85b6d83eb1b45134673b0cd39a191b9a436d152c75c05926171377999b25de16ae4318d3d41d830f27e2e697eff908fe3d8b7d54e85e33d9471254d3ed4ab78b61a679501eb69008d474fa97a75f4873163ddedc73d54f2e27177287603a964f5340b281f15a5629973cca437a9a4590d5be4de84945277afeb87f7a06bc8362b6e33bbbc25c88f9c001e928d489cc5e5c4f8d4ae7ee099099701eb24b165e1095c70b0504ba81325d4e9513c2d618129e912670a232bff153655cc89eaa6c8b94dcf624f934b4c14912346bed8a34cd644a0528b9d07866146b8d5e953df197775ecff88486ee8cac7ee44d35f6797c7ddd73ab937e5fff1bde55caba7886a3df134455b034dc09725cc744b6badcc0fad6a932b818c01bd727665e2bfa233dadfad57a63117c00e72465b15a356e554547708234242ef234ced36c45e5dc5cc484ad26168673e294ed5529d3040cd07cf827efefe2f60c74cb5e7d6292e633f28d16787bb7ae3ae108db60f9888b92a24096bede894dda1e71ad689e6c0541e07d1ae98a777a4e2030e4fff6be7fafe49eb8d1f7f65198449e0334866af679e381c407d8f973a788c4fa4038a613189f8bc798d2507d2108225966db0dfe126890dc1e129cdf340042948da38cd66b083fc96d8bf6313da5ebde8ccce83c1ca6fa09017cabb6445ee9c38466e2097514590e83c312b23624e29b95a648b0d3f5a09baa56223cc6d5f7d02350404286819994a858248fe767917c48e050ad1397983a198e742cbd74eeaf98f83dec20548b008c085f8b8004fce189dc1d904585b2977489f41efa5b1968676c463950967413b908aa0f2d92958d968b400f2dba1c97a3a8cf9b2802040b1d421485926f8ec02d5707e2abee4d1a8fad3756aaa218e7e0edf5bd4187993387dc548b3f5f409005a9e89c5dd82a304e8916c9d03a332695384a4d734f2e0b36961859a1e9c9d9ef3a30ff53efb80c811eddfe0cb52158193ad93e337eda20d29b57fca98e399adce51a24001bc91221319f8ab5d80bb523a00ccaa1ae00a60dea0c19ad5a32cba5c7b21f9aa75c947ac39143c5e481daaefc80fb652638944a4786da14887da38af56435b7488b96c07f4b7d9fed3dc2ca5d94feb4f8b2111f80c0f4064d854595422339a608db78436b680de27f32169dca44ca2329885a9cd206cf7920b18598bebc7ca8ec65574f3c7de932eda1dd89fecc4ba88efc731febebd311f78ead2ad51c4a4f37fb8abb351d60e93b96e8f9864581ca5db64a6f2ddeeca41240531c6d204ad6c9297dc31f16de826231e5d6f835da03153885f15cc26821498a89435bfa50e3e43f9f8a3fa7553f4def3931c8ff9968412e2cf1afec8e681d81e0c59a9d73122e40ba350256fc0d082943aa42003f1d4052843a2870a241200b5cc4d4e896b9586395926034006a8284e0d34890cd751c11cc58451740f544eb61e5ad54738cf17b46b2b22cab8b08db32debde28cc211408f9dcda8a19a016fc55805eac2568f0d42218ee12ce6f2388428c89ee562b2c78a24cf6e003bc6185734a30ecf8034786444d0f36604a9b4bf2ed02ff3de2b06df28f5ce53735044be7615e95d63ecf0ba9d8f06ebeeec7310993621d1538c9c6aa2df161f96c8d2668eed2d332d6d9d34b7b0ba7a82d37301b5c55f66d231b427c51eeaeefe131c391af39f1d8c42885c439a077fb1e447d9e185ec2d8967b7e8db9786afe3ecfc1ea94c3025ab8204b628a0c685856e641af3db0434beaecd4ffc4cb2d667c78dcec7dd16e91147ee656ca5230cb0813f70a39b6ebd521be11163adc648173d80705bd8a2588a8392e4707bb257f5355163b6a1f829ca8a43fcdb04fae2b5278073bdfeb745d46a075533621afb9644654dfc3e49a1082664c82d957f9bd025d5f4b3be30029dacd52444c90a0a339c5b348982422713fef0a74304d960394769a9c600698113dff8ab4b107859c08a9de9ba4492f56f131e57071526b65feadfd55620699016b328f19dc68b913b0fa86cdd6df0df26e27153cfebcbaebd4d8b43939ea66684873ca138c78735b9fd0931c0335bc75d8ee213c5b1315cc11037b653a23b0bbe505ddecd13812fc36a0599cf24a3e232c3fa16ea3f8b6e727d90913f61be6bef4164ec9dc316f602847ebd049645d70cdfde9dd564dc5793630ec9b866aef7ed8d279549a7f9285dbe2984381538d9a3bbbd90758bd99a7f9bd0f653c7a9e4a7f6a554f2e07e942837bfa2083df6168b4b1e1871f63433fb844fe4ef25c6a86a2a5b080bf3be7e313de39287d8328b530a85790a7cf53631a480e00067bcd325d06e68989ca4092808929db872f5b9bd017210cd60e3673e48dfc910ca7704a01d739ad10cb80691c19eb0951bdb7e9e546159dc547fc23479ba25abdab0f0c724db54c390342522ac456e4253934460a57cde8e9f2350e89efbc52684d990bd45de281d70bbd1f4a15eb237934fa16d155a8e521187e448827c9a58af212f6bf2c234b9d0081972851c3381ee7fdaf3d12feed6e82d0815bc7142b1ebf9d6770668d03a43a22130823a67b09a4b1bf00238f469e5d8c4fdd31e31b9d221fce4492bf105d39e8b0e1e58f0de036de3a892fff0d81f0884898399f9b75501899edc4e7a0b3f3f9b55f580a06d31e099dea27b22d0bf55e17bd5ea82f895310e76e2f4f8ca42d432db81d3b62233e772cdd0e06a923153a3b748fdcdb53e3827c291201f1a42e2c8d390fe095aed57ebfd7d747a370492322a17143fa191de877113dd233fead29a1d431a814b12e8da25a2dcc4dd9d6d4b8d38f6f518d30dd251051105f73ebb980f571ca837493b6496001051e3e37a411cb1bf1631399357a49a3f40aa146fe2b05ecfc7734bb83bb79cfd23220140a74ec8b47f424070a094b0620219e1ecd1583d8331a18acc3523262ef8fe3cd52246eba2b650f99a1a77d73f738d1592977667dfd84ff911fe313678fa9524cb5e93d69ffe8c0e3b23cd74dfc29f629f6ed6480d75d88535ec112a74d53ea1a607f3121e9dd1bef5ed3745ecea01e33d4b66779eee423f027ba438a774d6dca9d87c87f5aacfd8fbedfebe16df02c857e0f96a8b2ce7d7d44813d1fb25d55b410732a9a5a0838c963dadfe5ee586b46e6f426bc4b1a0c356300f4c54a77ef46cd38bf7ac234c43dc9c56e857c137715adabad5af331eb156a022e7c80fd3026ea32c0880c2924698030f0cf43999df4e0760b13d6af1a4ce46b3ee79336f3f97fef0f0cde22d6dc2871f5aea2c71487edcd50e160d9a5bb3c8a8bcbb7da77c9dfbd0efaaf0978e8465b15a135408a9b713f32f8b4b1bebbc598381c007630f477d4e492db7fed87b0156b3d02f91e173b1f7b0d52cdc76aa16e8c8809bf98ad3cec59ac5e1ed0bb0808c358b8897ac26afe5d5b75c1a31347aac5938e056bba1ceac59189cf204735cc1e1a2257ca9bb8103351d5d91fdadddb178592ff171914a92e422f34136648a7b430daa8465f9fc396e7de3f70873769b3f6338730dda2a5825656e5093f4f379ac20fbe5cf4e17baf139061a3b33851687fed2e93222d3900c4e7b3eac3438e8c12389abeacbbd5e7b6f8c017631ede583854496a01cd990005c19374c12244e52abf1ffb532cca88106700004d9d25a02e6ce931e0c10d90478063398bdaa895160d9573810136b24c6c46910c6621d75edc0c39452b91cfda227677359fedd083cb98b0627137620e302c9e942efd24e2881f5bf7cd58b3738200781631298175ed6e904d47b06651ea77c4cba8b623ee61cc7e00dff38f64dde731ba2aee064dec1e74f132ea1979bab1417a4fc0f4a8a88fc064e22d5d1c3952c80a45ddb4744c73a0746e6481b661f68d16e8dd469baa34e1ce0e6801d95ab23249081f88e57d64eec1c208e8340e27171dc7477fec8cb8596cdc560632860725d0ca13f35c2482ee00cf87d33a126fd938f852d6404b5a5a4864d1033463c00884af044a1078497b64fec0521efb08fe67d58c659f374a495973c74386747e59243857c79df5e8126502c034f5eecf0ab6344fd9eb3341f895f293e558c905a39f6a3cee988ccff326a9f7297c813a1d2900548a26267493a5dade8a916a350eb217f8194c41a7a6b186fb0c59310b0469d59890ef3ee6952bcaaaab755a74433d87cfdf327b5772d8e85738b5b02fd5a43db28159c98f66b35892bfae33cb0532735c5ea749ea638ad1a32f61f32b6925a0507361e6d80fed02c870346a695c8ea2e687e8f421139f043a0025d34063e8c538ef980c0778c50ca72be47d5e103903ec79735a9a2ce7a710b1ca08afad52bea618310251688a1c4c210f56b83ea6018be699db604d74f810dcf5b36fb92336757ada61519990d2fadc31daf8cfe062476bff31cbb628946f0868035c1449ea73b4583b064f1ff6ad5cf4052d1fb0e7a4a79621a844645b40ee6a0867656016f7f80042fbd399b2673980c54d92bb404e823e349fa5dcead8676d9d32e162c0790ae29f5f5978f4845b54efadd4a687a8c91adf504e6909e857069f4069f7fecb1b779acca44e8ca0e3c0a62b73e7724e0e7cbffd9daff2288c694f5220cf66c12b5e5ce32707d8abc56876e7edddbfa070fb869485d458217e8036c844c33f58d5c3c8b687ec1f67151ac0c5144fa2e788f3ce4c1a879a2857587930864f50afd90087ff30cb654d5c3118605e837a4754f736b61b1b3d4327412d830e764b97f5f248a25acd9c14380c512ee160e6189c482ff21ef206a55772657f8aa89602d6cbcae6ac4ec66478b02d739a7359b608a5280311cfe0bd50a7270714bab5ee2563fd6bb4974688713b9dfb19b5add3c3c94d303a6946548ad86ab4f50c3e3734a42316096da87793ad44855371a405aaa526756b111446ebe58a953b810cb9ae411b9e26b2d96488f46a3812fd0d7c2cc54f4d253cb90a7cf57ac7a3b114809613e0e41444f3d86cece1fe3e4ac4626251d8508a1ca32df9e7a2f45c04960433479844ac4c673a062e50189025a24275ba16ee423001c0da587c75b41049eac5a4657f1b5da474081932839f05f830b4c4252c198d31c76a8de13e1ea92c9607fd068d357e98faba2b8eb6dd6c851cccfea49e3e82e2404d01ab62ed2910dc0dd42f7469df3ef950f46e816c41ca2b257590cfa68689f0e02a64cf89baf5b65c10714287d00030018a7b079cda7e549f773be083de93126e2159b8b1db9d3c22c8dfbc92dfaed99ca9018ce9a97d93c02f2ecf3fb757569b5d1214c3bd408ef38385df5e9c070f2e80c7822e22d22844ff03da7d6acfc70e2c7ac9842761b4e9035734e556c68943a7ce9ae23a9284cbf3f6d817aa1b2dca4cf077ab404a600acdb1160eac12d1d3de94b70652e105e5bac0a1f1beb31a6b2dd04203ea08730d6386062d76adc4b9995b6a450e088d45a4e59baa9d2145583d71bb362d43c89914f89dd49a9ffc73de8b256c0259263a1c27c8b0f2a633c0eba74ebcb953bbf013f143055e477c9be83cbdcdd70f815f11b499ebe55ccfd491dd7d9a1276772ef4b23a5e383d951915bbd2f7af89b4111c05e3dd87c6d1e3c497aca5a2007ada7727ef6fe9e606e92768462712430c663c50f05cdada42a3c0237ef3a180ab8d3cdb9729c7cb1d4481b4c70d8a794c8a8393a8f753011215c65d3cf23f34ed2f2f7de42eaa415b8d1064e20e7a6f1790fce533d10346fc359140dd80aa949d3c7249d8631edc66aa2743845108a14d4ffeb0c3d1b613375f988e7c5cf5caf0fca6666d9421ef45aa83d373d27d4c50b943ce6f2d8e0d4f64b65e1c6f4d4949825235dea5df7220e724c815c015f91d2bb76f1095e1b4fd0879f195fd1bbf80cb7d4bb5278ce10da36d404f1038592dde6ab815fc3b53b576572955e8e8cac234bbd1bc5b0208d439e30c2aa7b840ee6709c90b00f49bd1b2b29074d60bf34877b5f7b03fefe1be83e717c03977a57a41d03bc7ac0a318f4b1dcb40581677246461e7a2b3b09dd102c489c4c4aea8315fc80c7bc80936c18145f1a79d3d0ad863e91582f44be413874de717d04039276c7db09ae17501b74bc6a88872f3da77af507fc7ecf718b600e8d7985efcbb71bc8e5efe6daef6f9ebf93f7b90b5a851f668b681501e7136f19f7fc1d4dfbbd2ac60ff7b4e95646368cfc2a98214b874bd3e29285a6a353a1e3f4775d0d3d786583a18d5726eb8c4f880458b1f477821cfc425fd9df2d771070c6c49d32db286cc25ac29b028062e476d327ef6462bba0e8310ac46e58a8dd85fd59898562a6cd77c00a3b15f38050c44df31ed6b379df85b63bb53ac04b823c35fdbb5c084324c2f8d30b22c1f8a09b1bc390e4a253472c58e076bd84933d75a34a04dfebb4a75b2aa0128969f8e7d17014181872bb3213292fe14bdde58245f0866e21736e4c857cba9c8b12ee4758bd1ebaac1094a31989795fa9fed309552edd9e5dfa27ee65f533a4c4be5480ebc0fe50f09fee442febc1e7c3286317c15a9f2b68ec3a64939c665664d7deaa0c3535eeb6e4e8c7fe47e1284245f06d34b7600dcde5f043c533d4525eb62d5987d5b9ef7ceb664cf3bb6ad98a3d158c33b2ec335f3fdac9c827b027dc78e9badea484cdaddbc485ff44fe2db8c8930950528d5f4092976275afe4db2d4dedc8dbc33a410bfaf9e509268e4552b92b412a5987b65d314af04b162a0058fc4707290c522a968c194cec858e551b8d930fc2dae932e576ed84c576006f99e8c3ab1a2bf9019eef78c175c4afedc17b34d9086f2debdd9989ec2bc1e20cbc6ee9eb745de611f779a93d83bf620c87a55045944309f78dd9d7dc9a627eb3df7817b14ca05de036eaccc79a7dd91eb4a40efa15d0bfc48156be6790f48d6a591b11d8aaa05b3455f7460bcb03efeceb7f8fa2bebf329f2bb9b01bdde5e1142bbda514209c562cf2f9cbcdaee96de54c4c6da9070ad7f4b770b5c2f25d73357a1fb17fe6708bbe978823cbcad0cd53e800f8d622eaf0c4fd669b0d53f3e861dacffb0c0adabf57db64d76c56a8fb167d36336220955b5776d55119b33489492b12700952d179a5f2c964548aee133826e15267cb5f2d828075b6c068403c048773046fa790499ff49a3bc6ea255267a4f602619cb8056763560dec9418b87267034f2029e40638887cf3e9933bdf6b6c51fc000cf80e1ea9248a2f8ae10800e1c4f18615bd30afb7e4eea14d9fcdee6f4704f98db08238beb6002c120246d86446c1037f97b80d78d694fcb77dfc90c54d664f5653b939859ea1d7a8b20ed7638172ece1fb75e32d365b417f03c503be98d864e4c91681129b6a3c0d211cfac47a5d200c78ac386c4b1c8c78c90681536257ffbc6c25fc9bd2a63723e070e697555757268743ad4d375e6224ff10bca46201a8f6cbcc7a84714fe78ad10babccc163851a94fe8d3713419d68934595c322c11afe2787d8cdd4f35847c0f3a1768f489b94a9487102f74c8506262ec3d445929d90742af5598acbdcf11e0595f6a91d8c5e77659d472708725822e5f51762e784be27606211075b10d164a278891df41813c79f5bfcd38ae93d74fa28870b71245a0a02931a5072e9a751b252e714d8f43e5c7cfc234bda6fc430320312fb644f83e32089ecf550430e0e88d0e0e7c361e35fec0248516fc30ffc64377e93b501bdf878942e2f58c76af7bde27630189f69b4c8d97c1b5431592cc5d9ab4af4b6d79ff115e3ebf43f54319321db98209d180c3833c0558a389ff244794f58f3b76a73386c1e708378bf0cf1a43c909647e556994264a50e2ff0fee7606229a70ab61bd5bb981e4563de7b95cc14c1ef3cc4d22fcb4bad2e506e73713f6bc5e4a44d84e68e843911c0adcd5d84e4ba50b2ba30981e4e530a2f73b2d9ca06362ea046cf7413fd43cfba291474fd943da72b4787336c16ada2a52b77ac0afa25eb11fe6bd5563cb91288608ac341b76f33bfb3bc31d27ab1bdbfb7a1661638b9a4775e3156f34c19653d3b51fd23c31ab8d2eabe252f1d8be6f8d819b4b5176571038549e5bf9db20c35a1f188aa7291ef5843c2125b2dd5510cb2a48a987b4c9ec50d0dccdffe9e89dbdeb4b3a20bf26820d24cdda5d1d2aa2e94ca1ee17ad6d1ec690d533a154c401abf79dca74c9a4ac4030a6ea0cced1ba560bf8567e8b3308c45350c2b3e2d377c14e2508933fd0ffebf03a5c6f768ca9315903a0ab45236951fcde83f367ad91adf88d8844a0c72aa76870b9802115e3e4278158610e4e53263044f4eb7dd93c2639c632907cf6f40e2cd25b2fad47d6373cd6d5ef2df94016fb9a2f3571ea869d81fcb8cb9ac17fc5f36d4919f133ed41ad4311475f2ef5c16d2614e516d9d6903e7e5f2dbfe60f7e59b3e8a3d12ec3e26b271cf02f411cfef6a4b5d3fe5450e82242eb7285fd343fe1429da42830033c41b860875549276e381fdf77c5b9e73a780983994101a3039024d01791d2002bd4d107fadb6838004198ffd61f4abad359d5633b8415c1517c199b43b3831b6152c0bfbbf4b1716523dfaa14cf8f5043f219cdfa5ce0c148c7680b8e345fbccc46865fc281fe53dbf72dbda2d14bc015d4d4c5bd3cf084f597f0e3663c3ad528d3dbb39cd940e7cde15f521ed431906b002d28cda1fc2d863df1b9372410b5b455b2ace9f825f071e45247769de663b7914efa27de7fb3334920bca24fdfe286bbf3a4005ee90f8c70960107e719421415fb95c8d6a6f19e53676b2e7f81b2e90c98cc2aa937bd0d81a35790bd9a5e8652fa945e529a083208c546cdbf5bc8847bd51a7c3aa9bf38bf7a9429db61d080bcfdcbbebba1d48fd5657ccf0a748a7c6f69611caf2aad63d10b09cbda7ccb1f6f7bd5e9048ad611635532edf6e0b3b4bb3c714057874ba0880317e0739ed480308fcd3a877f8f821de631e13535d5675f8388f1febc0f5a86469770a155989899338c70687f30de572f685d3b403b3d8ceedb8d93f96e131f4398aa95720df68e32d81aae428a03145fa47c43aa09103ee6daaf18934d2a8bfd8d92de8c729269406e4f252700b59c7181f81333acac025ee1f55be0c0e1a4d0c8c100828230e427ac3bc7301c7e38ba9ea79232fecbe1a34fc6dd2070c71fbe9bdbc43683fec001bf6812d51bccc2aaf9a1737ff5d658b90383881c4e2e6a37cb70a2266d1d8f2aa051bee25136d7a193075ff2192c5280f32d58457e983a6475e1a5ca1cf7da414ae5aa44005000e6f6969497556e12b0b56729d7362b96cb0711218da66b3d1f39b6113d1b1497c8ce4b6b69f5be59a4ddbc7392af3034f19dbbaa6ded1c09e8322f88a4640ab84ac8545f987af5352db44476a4bc04d3706936b40aeb72b668b96d50bed8fdb22c0bc1168191ef40817f192bbc46ff859ed6475e60cf1d3f65ec3248215cf90fdbcb2216225fda91d4a5f76ba7cdf72e05bc6f4f885da194c7db121c01e166052f6978099ef837ea4a012bccf94f9ac81ffc0cc723e9735347ee061fbb38900268019513e4078a24ca66f8f37dcefe30071b1c608ec704f8d58b5d18387866a62316296eab87cb29a06d849009f2d47ffcde45fb2d491e78024e1d634b2071a606f82fd77feb9cf5ecdee37f1b9c50c5d66d615e412bc4f43a3ebcf95bf7eb95cdb8e5bd24a4e2d438560e0966f4742185bc7557524e8b98c49315f5e1c11f4ca5f7720f3a346e7635405b871d9a24a483a8a130c560be62bf2aa1c041429082a79a7350abcd92beaa875f9debedddb6defbd04e8b638b4fcd4169e2036b0f0b89300534a4dc236c80e1895c9b14bcda46cc2c8a031cc5aaccbfe5c3a2deff7d9183ea906f12a930b74c6ccd95022b36ee7cd09645209476f2898462a0441220e3a53300c93c7219aee931ebb68f821149ad0734cb6ceeda88569f0d75061c5dadca662d991d9c783845e7419f4d5a14e82b97b548fc3907bcdad78b229c293450bd2cabb3ffc537c21b59430b073b71cc05993f8f6525e3ea8a670443932c2d662b9b8f497a5478464288fbd5cb8958134e659988028e3d6b630857cf3de93a46dfb3296b20b22ecd9a6a790a1add08d38e8f16d8cb5cb3c1fa69a979c75f730eaeeac315adcbd2c361ad41228640d7973649812eaa9fa4540a53343ca4d153e23b56917df58ee4fb832e4c80f309ddd5d973bf4228093a7d24840100221a203b49c4695ea11d4cea187c2e49eed1834a21252f2d447e9c6d47906082951b1c1d2f54abdda558211d3852f26a08f153f4c1ad2066f3ad7094e978cb183a8447616232ae9e73c9bfe96bfd51e4b269352acedb224469d98b205004deb7617717ec14c8a02d35370c2a89676759b8b6b03356795fc99486ed87e7d40dfcba901b546f980a8dfdc020839356284b086f9400b66d174701e5df10982a92a1cb73e561bdb9572e1c7b88555bf0d9161f149b31c01e09c5774e54c1d6aa49a0b8c9bb89e5e18a71c9b22a21c94f6e9ca1a1a594f74323459c252ca0858cae22ff9b33a7e5285e013de49e0a5814be0af54229ce32ae11ca93b6450d1345cce86b0da0564b9425d308fc83911c859a6e6240f3a61246738dfe38e550d0893961b91d2205877c606726337ff1af072dabc2389e3a916edc1c82a17203c12856b6815f99530545a1f944dffbb31ee6c7a0130984cff3b5ba27fa9a945de34ac627ff5f2ab833e82c2ef7f2e4ca75e2f4654a32ab194de8b75d4e94e44e8b8d4119ef76356f96a643d509799238c3ff08418d68a0913dae525358436b17eb3f1f277af9a81301d681ba2de134180af6dbc270155f4923c9c786ab08514817869f15c6c8d86aaa42becf53855e86b581d3d2e3ea94fa9e168e04bb71752af5c468720b6b6d7a623d896023951f423224586916a88d17f65c7d6ec1d3351f49961c3579f8453143481c4748a7b8238d621723039b89aee8eb4bd90bcdd6302aac59662711811037e4c161c14c804df328a7bdeeebfb0710d2062491ef1fa6a24a790e16b56791112147b217150e855b9cfdee7fe93e9bb2531ec3c726b58963e21fa2be2f514ad9f416f8b89b7d5b808bdc9a6e639c874b42fb499109f8ed4ef4aaf17008f3f01377f2247aac386da1f85a7b641989c62145b725a9a28732b5bb085a529922fbf5f98957d10911020edb9c247ef8ec1e8f4bb60a223054c658f2e05bce077ddb22a99ffc02af330dbdd7cbf942f2afedae80e17533059d59821527f5e0aa515b3cdb60c2244306cbefdff37495649360f9ac2204970bd56526f394476379fba68881016bfa5056a043c78dd849aad292764518397479571ee773b108cca1e5002bce05fa4d8229db1b72e2c1270be26ba2da001d121905e597381c089736928bf5d1931bfdaa949ba5c006ca5b897e72a45746a96438ad632e955a951bc661be1b54d71223809d2cdcd22bc766b143dc364046e3c20a3e30c4195e053b5056a61e2812b397ebe4a36197b5cfa824bc88f016d8cfaaf1122df4d3eb9de36c63ca147cbba0cdae56917110f82735efd3209a27dbda2710c1a0a35b84aaf2021ab5c85506c6773e045552715cb4efdcd1601eff097df21aba258127514310e47647d073d84113a583e65f3ac0c0571b3b06d6cde898e8981003c2cfb3789fd9aa82c1777e5d6de517b82c9a2653c4dc518ff8c85ebb4d590aa61889a0b037664fc7f64219dfd46f78ccfc60cf382bace7e5e04c58dc8f29fe84e8a3f9af43b8858bf24ab47a8c4b4c2660368064c3561d3abb1e604abd5885a048c1ce8b7fbe47bab87c3c192a19252ba65f72e584337471e41e87c3a4048a64fc5b3250919c879797a752584ddca1f2b8c410cb94f8672ffdca56f14e6f2aec649f6d96c9d3226cfcf342e5729f796c80043ed08229ea01895b9587135cc2aee1aa2e7f52283ec683a4abcdc4765b9ae8e29e42ce0de3c32cbb1bc512a342c075cac52d318ae17066bbb6d48a6b4fb259a54c910bf63252d7e2e80dacfba0ed6bf652719eaf6c4e24ab85ff69e549ad9bbba69c20799dfb9147adf9452c5c84f2a517bed8ab7cfc1170f07a124c264bdb90986ec81dc0245c0b2de2d18c3ee0d2d81a5f76eba659348e2ec1b47071edc103a5569bcfa5fbe7dce6403b56b113f074618c691b8866e77b4515b4b0d8eb1a1b110957e6f3baf4ae33d255dad6a5911998f8aa0da00bb522e7f1b70807758876d88d5e7ce584f0a23a900357c31d069dd625bd800b1ef2bfe83d681bf8d9d4e284fa58faec4ef9db3ed5434eea20d920d0b4e9439f5c112f06d0b36bc9fdb768eee45090d79443980ce172a522a4c817d77d4d0f37a867ea754de4b352950839a7a03ef82c22681c1f92b891c43cc3d95723dd181594fd27789587810b79fac780e82661ef9f0167f63e9bffad8e3b5748e76e90b0904d64be24076f29c0923af534f98bd4dea18f7048d3299e404d8b530d9be2747e9f7d5c8b5fa4ad41b7386df8c657642649b8d938b50b47e6f45a5097e3be3fa1b6a79807fa085c7141409bd5ca24da8d853eb35779010f0f06917fe7bd334e08b405f398771812382e6faabf13c690a7f17b1d090e121d1a853a005f1210acca8021ea28965b48bcb1d2a002352f7136c679295516403ff9c49616b101c0f93b28093339f3d0bd2768b3c8b1587d6af4493ff00bf2fb09dd32965690e38057365b3afa758037fab58ddbe37507d8d22e4f00e0740b1e9d1e1d3459398982bb9bf427bcc2d94f700ed30de927c38cccffe6963180339a693b641ea56ca71a0b1b4f5ee599fcd665f4cd6f8b3f4e7243e547031dbfdd7264b352ce1bef3bd0f939a55c611eeb8ce5c292f464e2a01da83b6744b0ab5982e7e5c04e4964747a3df8d5b7b9386aa8a96e7e47bc26605ddd274d3b2bea0e154950499068329d508632bea806d53d9d74cb0a7db2b6e85e80eb68a42c9a14aca8f10c94801c7feaa7073ceff753d61c9332c07aa14dd1268477484e4192857681a1fd23a4929fd68685104861acceecde826124842814bfe4d7ade5095c110043df02341008638b76177ca41d37da66fa33bff23f7bdc5d4af8d2ec110542c7681a4f8b97071d1b960bd4ae9ede4af2e6c6ac6abaa58428129882af7c2d0e0fdd05ec54a983c4555371e9016be4a03fcd3b101aef2e6d72c4b730c46256e8e3a6148bc1a366536f5e67860f622a895b1d0a1b7b88542945d9fe1d3dc7a8bd3c5e2291ac4c1750736abe283d472b1849d5980c2aacc4289a8302b240535ea75d78a6c4659a8645424f9398530c8f55cca49aebec08b401be6cac4b92cf2090e3c20da7bf8c1ce4d608dd96e442a0d93d749f1c8fd469f1cc1ca439236ca8939d13f0221130f48ae605e42bb4a6ada107293600e7ef87d20cef2553778a4304f3050e73d48ab7df927832938af76a9130fe4522ed5fca7f00ddb6dbda678716cf44b2105e6ac99e463c295e96f1d84bd599e30bcad94a4058017009eb0fad67717b34d8f7c793bdb7bd601d00ce91223ba8f628422b8befa8bef93a330440e7d4a5fd328121aa72dabd3a51cf688b502c82e7975668e8f1a8cd3fcb92597097709e153dbc5cf47c26e4874470a70b3d8c823ca00c5437774cc28da19760dbafda2ee83477bb9faf22c0f3eb969d2ec0eb4e34d375d5384f3e5a3f4289c82e984f18f942c3ed56f7b743071f6dd8e898dfa9192ac2c6f1068e422814672e656d71d189ca8d481b7df591e1fc82229fd8cdc78f208af4e038a42f64d829f5ffe853939fbdc15b4a641708df3e5a2af6ccdaacd3a16103d15b88dd407943c7446b1cc7357ddebd6c686b70752e6b4d651fab50983ccd796c3bcc07a2b36bb4deeab022479a81a16955ed61945f6e708edb5de3d9ef471e4df594288181f7fe38f0fe3afcb05c2c9584b241df60e520066b422df223eb1560aef315d7777b1cf164f7cc34a4084c8ed6a45902f10a032d7307851ab3c56ed819b97507bd9b5b1b117c31ed428dcbc0a1be779826db062863d727629803d6f1c7e08c8762f600f067818694696c09d87fdf12cc664cb48be2146690a1d801cf797f42dc5b709562854b1328f8d581f86a4a5b95d73163b8da0716a90257a48030d4267b6a89631960443a3f5502523a5c4eaa693d5a5c714b44ea734851a16dcccc981cfffada716f9f82fe025425d3089075b551eadacf0ef7c19a581cd85c3321d248db5f14ae9ca63b3b35f4c689992033d460392b85709281fd4fd92982c5e9dea7b20e4622782f8824146f637389256be2c340424ede8769c42a810c9be8e115d06cd4cb2485124038227f61da659ca30892b2bd8dd555af1318ada4702957d0aa679c84b5c4504edd050f423bc81de047c0f168cd7e1338c2abd6fda10ab3922d56638734d7c933b6a500e52ea5ed333802e8374a33bb8caab844a78d9b805647c14e3f4da98339fe18baaf23ae02d57390dd93e8dd7ceb2cb899bee516f627cd5258b296ab98145aaad9b09336d804252e0b7802150e8c168f299abe79ca8f7aa019728b7c6e57baf9c89412586c8036a3480819e2cbe9654d22dc93ac971f11fd29e8e4ab1526e59c7b31008d75dc78a49e9d3aea1dbec2a1a9f4df43c58b8f029b33511417d4fd13769411dd0da9d043bb4745ccc86c1ca0dbbb33dcc2ad8fa4d1047fc6e50178890d50c066393bd83bc78d9155dbf7a466280f0e6821aaab6abbd17841405cbd05bde1bf57e1c623b9cc3ce99792e321332a634c1ba0dd6da091e69917a6ecdfac90c9648342781e2bae99da535e6dc3db2574fe03ebff83f990d03e75c6bb1f60e85b404ae9547aa946ef07d2cbe99948058065969df03e235ec6f2afcadafa3ec9a421a4ad11b69b70d6452556ee81f11bd4708b9a4732c1ccbace6c7d31af613c6f2673411201edc1b5ecf50cae083c5f38b1ce9f97b3ff742dd6a3828d5e49836c8c0cab3272ce29a98c43612d0944400ba85d80d09a83b1ece8c4234e4d69613be9a42597b7d1530b1e057210dc55a5121463bf51d312c2b79571264814576f458bb567be00d223f9b47592928fd2d41647fee9a7606160d746353c71629967cce235b44a06b442e6588f92b920ff5129f739ae5f3259aec35c41abdbf9836031717e9ea10aee08f3af0a78aaf08e7843cad1d229ac9c15bae0e6004af8e215ec0ad929706c3412036a99c544bbb8f82c0cf823ede1aa5310da1b0c44d983311f58e879a02047fb78cf5f4cf5cb92d0c8283733321d65c9eca657fb2b113ec6900d7fb87328a7a3e24114250103f6b829372871727a7e1c3d54beebce544a80c3d87ed872ee2f0d99e1d1f04c4321e0dd77421c29658f14c64525b54de3dce2c848e4b2010ea06fa8919336d7b8dbc75466ed42f7cdad42fa2596ec59f55b57ba27359df56cfde9748d4ed2697972c15693c9589334f930ad1323505964c18a9963102f35842dabc2a64db9cda072a770cd565e446e2f1bdc2f4e4427d0d8c28884c66a04829c5293dd546f223c4c5436246a434a8d528b89bfd8dcad0eeffc4f56ae000e3100164ff9c4979b1f78a6b26f0ab7f6f895d261e0c80e44e3eb94600dfcbc7b19befd067da6ad5d384da106bbe24855e77dd44b9dd83fca49d7bba228bf5d7b7cd37dc799799df8b19686911934aafe4409980012f202fa47e0c0c68f747b44b25e7de7d023449ed1acf59d7821e9342249cf82ffc56b0250a1d2d3ee8989d0a5261cf4a9e368caf9ec79410ce17c96e48b11b10c078477458c7d78963b764b2fbf844fb05ae50c52cea60aa97b16939df28aba27f6b03a8761e5754ff12453d9f6d114eead388896e133ae20369df962a56d3c0955451b303a00b764a5c10e1c8fbd549c487a445bdd14f8794305289854dda7ec95613af0a0bd3a8a147319c40589afa89ff8fcc1f6651ecfe9a47093e476955e48d095b23e2ebcbc9f0c9e0662136209f87ee5e5dce9d97e88e4ba1bc2bacfba7e34c4a31fc13cd0d4d3e503f5bb25449e6b55050e6467357711cbefafc68beb21c0f50ed6f71cbc89c658f607ea6534413caf68eba549ff32338a5034072f4805a8c0992dd3a2938372a1e29bda41c623f843648b524a96cf6ba1b7733db7038dd865830d59e349842415a737c5ae7aa7a6fac46049e14a7af0077d7b28c51cb772250e4e4e2ca3201874dddcfb035e4863c854becfd793be737ab405c2115231a402a6547f572f2e0ae0a1d479b26b31f2a58d92b398c08b39443a591cc13182abc63a2c97b94f51d5a15106a192eda2ed4eeccfae4f58b09de6d30f5eb21ec95ae5edce5db01ca4d19a4b5a3a7031ca01300f23599273dc8865d248ebb00354190327b99a7ad2d8ecd69f2b5b12f99ff7a48bb947d88a388524f2b6f1a0c7e33234b9be45c2190f1fa6766ff8d25d20470ad9a51fa38306e874135ab133c6e5d4dde613a468cb666cfba71904c15e7b15eef85721953284e6327c536cecf42e5d328843500b3c8b60ecc807f46d8605c549fd303bd82be9e8a6b3d0a0416b8471a1e0ec46b7784c5aa69e7bb36e1ee438a574e0e08b85021d98282505039dd6af843a0d8244c9adbf86306869f90de022ff3cc11dfdb8a6497e4571663952e27dc082abad66e94b012399fd78e4d574f0dad7caff54405c23e4b17ec9ec8d303dca812c009e1ee9b7a035dbcce517f6af7e726fa32a06404c0cf03975373dbfa83a9980a2d11a04afda62fa6b5e961b23ae1ffa9c9c680fea1320050c60418c63cedb7dc74f78af680762080a4c8c7e102a93f4e94cf89d493850060324cd65e63effe2020df1be11e0474db9e98af98c9a63117a09aed8227eb7b6f5e6795a69eb8aac0024e4bbc86649169a8885db418a69d28741011327f46332472dfca66c0862fa428139db539b18e970957b40786ea415aaabe99e3b4b675b45630bb013bd6be3f78e089117b45ae965cb1b58b405f3e0377e4aafb82b5fc81bb43e5a5e9ea5664dc29ee1303a688e733fd3a79a541dcfcebb29031a455962f047f983658ea195c52317e156201f89d4dd6f5f5ae721a298647ec6634d7be5d6c30f772cea8dd435efd606af39ce8c4807c89e89d080209b38252d089eb6f8051b9e0dff2f794ee9cb7c1961107a6def2d77a0ff186bd859d8e041e08b10c32aa6e3942da1044391c3482d2810fbf5bf35ad9b6cbd83aecdab570399b6f37f6de629bb6ee70cb2e6011779602d312225f400a6344be0b3c5c1969ab369154580ab493e2b7ce4db896fba6d972a015133e8e3061e1a1190d79d2e13c858d2515098bc9db4f431d0f8c03d888c1a67c4525f79ce9bbf127c5dbfc1a49163c4778e758417f56fad4245dc1fee27b8a1acbc4f79316d6518c405cb8ab3f21590cd9af6044dfcdd66382d8794b1914114e77ef01d31db701a49ab6e9df627e5f9c509f713b5493d542e20abb19b8ec9a014bec8e7ef71aa5700db404be165de1571f187771b983bfacf5b9d2539049eb8f6862bc914a2bd78ca3a00c3ab88d91c4de99225aaa48e8d8d58cd19d0b17159b55281355021b5c631d9e91ca0e86dd76cdcdf4ac66469a0b6a4417a2d9f4458632ee5fd33bea858323f2544ae2f6783ed980115e270b6c2ba26f709428ff864d4d44b553ae83506281b8959698746fb496d0484fa5773fd89a54cd4c98a862c078ca76f27daa0c7e5b7f6ebd68a42b778642b42111e8669cef9e8631bdd4e59acaa464f9ef29c772098ded8ca88d95c6a3bd36e3f3c538f201aad72daeb5eddfc16f3cbba204a78861b3f1c31a0d6d9d0b6c53acbec84166ed41601cfc8e80684fe1e7b50079e8f090f973238c66c23fbef087899cbe2b0512b1a65c16606f77ce0be2df227434900e5fba81673aa42ec2cf0a2bd24c89fa97bfacb6a6a445f05d1cc4503a3aed72637f732aaa1aa687bad0dcfd92dae3f0f816a4ef9cd6f453be9dda3ba1d6a33d0c2f6716314a2050fe058f5c1f27a9a7e303e8eb5e06aae5297916f47af2e51021b2abe4d1f33b1543d5e0a7a32973162ec8ef6d31d5e4367342fbd8b74a3dda0e599756157951d2bec7c122c3b99c20967f80970a935f3c0b3d8cbad9bdf152b946254f46a59d3bc24bac6064efdf385c646f466d6876c326bb09fecb3e94000bd6b8b803d5a54690e65070f04de124871076fe12c71962bf707a984018b07e87e99bf9804ccb8bbc14ce58e476135c39e641ce5e66a3c819877c97a24eba1b2c61e4ff0afb97a08d98cdd9969959c72c260363ee4c571f63c477a2d564b3d0317e2e8b718925ae0eb3126a0097184fd1e2cf3b4b2b7fa22265f3329a671fe6cbf792d045a366ca70594d2d49685c63223d7125b117f5388e0572e26e05bd796dd45189d43470d8341ae7761336ecbf035a588885d450158b74d66d7797fb0702f0f740a03913cf83112d2dad1520375b5a8a35e30375434e56c6398a200d9757d88546831e2c6851e57769c8a74c0f41afcc2c9e3f208b34086aa0ea4760d365e036e8f294df0bc448deee5ec5bfcf144104bae6f2213584d47ad382438519c9497891aedddab64d68ae010ca78651173a1c69c3a2463b319682a07142c9785c79ae928fc7e3b5aa08ea94a6ba011cf043d323e8794331ab220ef411110424543cc610c10dd26dfef937c9a7639a2645bca4a83813bb208a8eb6159a4fa73129e58cf8e6f6bae91322f4018e1645631c6b8b67d24bcf1d4020d38cf55cff7831ba142f35abcfc7faaa569b71a8d98a6bab086846e662333d2266c048bcf2658e9b3803821760a219d0f989971614070dcd80d07d5af3468188799447ace1b927f196d24c60e1970da5cf18a18bc2ec3a986b46882f0cb40ef4e0c98b4dfaed411b7be2b287b1b19d74d6e5c66001c0de253d40d976a08eb75b83aac695dba02136c4408e9e7ada2f6a9c131b859b91191a072a11e5d36b619db6d667d3b05d1633240d8869d1f276341c38b622e3df5748ae263d187918a90a91bf2f2a33a15985285042c700ada824760cf4c8340d26254f683ad2795a74b685e22951043b9a7c2547ac0ea0c75dd8a5ae1704a63fa82f2403f1a4188640e0506a45fb8b87229cf147a245580b771b5089e663a58e942cd70e016c875fa2047fbc13a9afccd46bb192434b1870814a13ab966e7a1b0b152a4230e13dee9f30d01ddff47f9f9a074405e8b20987c695b4c6a66518cd02180e061163de852b1819f58f354d9f5afbda7b4551895ec093653f876a7ffa3a47aaec9cc36815320092bcabf678bb061c7608094f750a2c3c0dab50c617b42e1e7e43b29a86b3610d6b72c1aa0b5d918c6548c0022852b1db8b541c516e9539887f4d661ac808064026426e08473bf1e5a79640c07bcdac4ffdb8438a67480930d028d776ad98d965433fd93e94ef1061036f62d6a1ab0155620812ba66b6031568f5023f467b7e486f1236c33ca04c9eedd51111ae7e389c2d1bf38783d23347087f80718e9daf046418ef4e177fe00d232712de35efe9ddc20e28c821eacf8b30d678022f463536e042d503acb1724ccb7e0e3a75ab11244ba3277df610ff008a5448cccb835a4688623ab05d3aee5f0c4e7fd594ecaa3a00dd363b6bd42edc605891901ee8788ed438d308183a300d05e4e0531b08ab610d361ace6d45cb0549bfa4aa15e3020f656e29cdba604b03f669c62fa1580a0fdddfd26cf3a1bbc051895e45461725b653191e5ab6c0b4cdf92db3c0b13e8e56a1068c80d36969e9d6e4162a2f3fc45475c654803b808f6a1420f20506d74bc07ade80cb929575de44339181a31fa703812f8bdbae8da6a1190f388e47018880e00b79c4304209b2f04e71f633cbd9977431d7cca55a2757bd6eea04dcf314a79eea4ec7b82faec2931ec63a039b4e0fcabc5442c357cd79d26749da3e8b192363190a1181763f87ae2c0fd17d57cc5dc138fb9e6b6bf253e41514a8aa29ef2b7b7723d53224a6eab1d27c66087c617071b39485bd0dce86141f531353e44b99f69a466c19f52646cecd9faa30a6f0b7f772aaf763d09c58bbdf9c8f2eb76b1e40cc6c5f298b4176b3da9542edb89573517e83283312a682173415649aa99eef3e1eebd60a00ae08e84206744a256833a009944c04aef95da56203e73961d9d36bdd44157a3563d578541a4578c9d42b8f2fad36e7618abf010c283be459280278d826a176a63408978cb300d2003947fabc095ea582a1dd28939122d999d0fdc9a87effea2bb811ccd600edf29fb87ba0c3bea4cfacb9eae1001b6128a7e5996261e6e34b1860b5f4a5d471de08bfc66ef5691ce41b360b673569d81c52bc70b8a27e90f140954cbef785d709b7dab37ea540799639749563b9a5f68fdb18862add0269ac12594d1e83fb3b5370f64d4d2aa65469357da3e1244297c1aa9127fdf18cb5cd9caef1afc0d1f18685a0c630c00f71679968b6600c9ac5a3c5d15d38566b915224a3198aae319ccb328bc34bbc6141808e21603a7c0c14737b129b1f90356ef45a47a1f1e6c4dc1be891d65d9211997ea8300161d17bbc4839e87080bfcdb0ede996d642b6f9b43503a50690527142419060d9e32dfed10e5d19c54ba82e1d9411f3207613b42945dfa877dff9f0e7153602714278cc4f04769d73a7dd41eb5b686d4cb26b8010836755eaaa5de361e7d841f01884090798bdc1d071e6fb6535f69b94672ef447bedef566c41034c11e3bc703c3251f41e22dc5ff457cd762117b6b5b3047ae8543e8e71bdea4d515008956d099612bd321f2528dec9a380f097d27ff767240c04829af45b718e6813fe3ecc2f2f5b9d5df7e239b6768dc00c2c91484dd5364864d3a5a6c91fdc2b0db938c6f9f1c37949cfcef4f89a80b03417bd7b917c3f37dd0e5c4f80061581860e01e6853bc2801e033f68ba0a4f8c45d2a8186869f9e4e25c84fdd852e6a8892aabcfb3fc8444fb731f2c2827e6644386364999a489908a5aa2ef7b2e780f756f2c391b06c8dd1597612f38c86da9f1c8b48cae3dce436d3c909a4a5e03d45437e3b06a703432d5c404a50591fc6de86131bd2d4e5ef72907c16321975d5eb507513fe3d9a830a12ed50c1e3be6abc7cbc62d837485a9413284cbd01baf31fde0a58e265f0783b00b5c230dfddc131d4e1d3a9a68628ff5e1358fb326f8080023f5ed455d30ca724fa50132f8de26fd97acedd606f5d8cef75dbd14eba6e89541573342b131bc52118e2edfce86057f5bc0b1362c508b6bc31139bc7817d891b93debd36e5543fe312b4cd55f07c5906379c39265e017570771d75758a69c50673ba8eb29af674d11fed3a0ad965a2521882f427928070faed159d350e18377e34cdb1804a4d4afc5cd5a6003155c98fe22a145b6b56efeb7098d217d9e3c199ded251aa871c57bbfdc3c6a5dcfc108c53aa2eca6870a820a069ec8a15f1ee5e11f6e6a08908fd8e447d727de91eecb05442aa036a420b19f6733c2e07a6c5d982e7fba8d735188c5612037d143b258ffcde265b5a07dce98ea2f2b9cc189c65cecb42f88e3d9b927a0aa0376ba7e788703ca101c7983ed987a833f563ab625da07dc155967a2534831ba7fe1357eca588e663e38893e10b5641203a3d43e191898815fad32f24b66a1f089acd5a9263f7f6d7ddd7028067fed99e4ab40730c40afd80e1b76c700103047e477a41200b30102d9ad286fd7ed12e88a6370fb061251dad661782e353b2df4f01842a1d1713c84b777d653ec3a99e0da59dc3fe66705b0e42ee870fdc67fa1467191dce9e161766a5d13ce15ebdb2b893917cd6773889e10e1d054d87e427d742060e8c9befdde8927323849fe651ab4a1f372abfa2687f80c97e0ef8943693dd34145f0216a8692078d5f3913fb8f43fb691c7626fd8f47a832501d0ef4bb0de500a7a0b46e11bb237ec09c4c6bccd2f84c0566fee19c6c63f1248f953e9d1fed6d4f075652d2fb147067bae636179e953bba075390c817fa803f99dc513d916f780a218684ee5cd1b7c5e1c4367a5592f3ee2dd1ec11b10cd2b10a07b9a10352c98b6d42d256c76c65d6ed11c9cc6b7becff1671dd923935f59016d6731444a5072c94a8818b8d4b9c80a630cf44e8c8819e0c61f9ec42d94d4cefd0eb3b33b3f443fea84c832c1d1108238c8aa4028ced2674e57afb094fdc4ae40849af56acd688fd41818f988418e9e52e781bc5990bcdf84edcbf1581fa1848dd98c24323e0e351052977efb85c4e1f222da17173d06da60325f095234241f8f599784b74d3a782d417812666d1a0e3dad05897080380940c56e6b9bb0a28f15c1bafe1a51d4874f94dbb1f9e710cd3df67d8faf8688e1aade3980432b03894a484c68b6509ea5251e22079a6f1175eda4267194ae59cadc9799a48667558661228825fca8667a799a5fb794ae9904ce28697a1e9e7f84761ae03de591e9a601d08b9d92d144d61308a5fe2501d71b514a0e633ca5cac0317a21bdc8447abf7cf3117f81e921b5189b86d227d310647a15904ae601c8737c44dcd8f68cff63a93936f7ff3fe9de098d479dedcaf202abdb5268cf6cfc619ba64a69950291565a209a9b141984c270472fee4ec4d352a3da13176e33dba7df7c11931fbc756e3f11d8b59ef4433d70a56d238a7f8301dd2d95f1f7b9164f63c8e1837fff508bd31ebada211036fd0180b9789e9d4c44546af24f15e9f9a4423a6c01033cd108f413b28c67a4551220226e864a2c8127249aa573227648f0f3c63d11e42188622fd5295d91a04fb801915a65a5a4d0fa6292674b519c9e1605dc4bf1238d4c610c9844ea0d2853184b412f78409416dbbce02c7d7367042377bec31cca4376fe2e245136f9d004080d1e06886a85ef6965d2fa41f6e094028a2e2a74d50de4247a5dc825460ba767ac35efdae13ddace13718be8deae1d7ab9531ce229db67b5c3a000d4b97604856e36d7e6fe1ffee72dc1f6289de36f8e4ef9453f937e6f1ec38fab9098261e74d11898af14d917af563b567e9787ead8aaa0404a69029f51c5dc85862cb34ecb96ff07c93f633c053ddf949d04c2ecd29cc521a1205a6111b2bc096d0c9289e01f307a551a68495a81b6b5f7926e71cf05240bdd2cd83cae762b7fa0257738aaa9a7e856f96841c871a9e92a1529482238742218e4a35175a8514b0f126d426ba5109db2b4af27ccfa6152a6e6cb80a6b05e819d63646001bbc41a3238c739da046908c7498449b1964b5ff1e0156072c73295908246013685b559745184f3607a9378817100755134787ac3166b9b8032505402496d89312278ad888be802287451359738e504bbd9302ab4a263d98963584bd6358101151a21890945f3f8fcb4655cc2c5749fc1c627ac8218981ab7053353688298e3efd58c023c5a198180505d9f4d940b8a22f23f5712753c44f11683c626002e83920876f85f14588e2f1ea1c70fe9c92e8e2f658212f8e4717e48c74e1637490c169c06d67ea358bd4aa22881dec2bb7de24312eb548979e59ffdfd3adcab481fcce63b4435f0b87cf29238412043a843eb583b4b9fd0e14810a4bf517c6a702c1a39ddc403bfed489896e224106550095c0e032a0ea6695b30ce424a070a8297257e65b50af8a407ecadd36105c916d561852fb6ac1e1c85acd187dab45a91ac3d50a0047558db2b00054018c63a00b21691b1293715a2dafee424915dd0459c5c6d7d4c6c24641349c8de9b1029a59449ca149f06c4061f0650a4aef8fe150411223043313049528317322aa882498f0c23cbbf4664f9ada005c9d7cafd11c12167b93f223348135c2f26e538c6735032b089422f8e8302151286a61953048da012102415c53c47fd1cb04776ef38f465772382b42f7b2c007bea4ff915a7405f4e2125fbf28552a05fdfd6f9f15d1ab89034495e9492e127dd88e0e54604f9f443803d9d9c4331d61b32555286aefad407f141fde923d79b8f90fd1bc2f6d9671805ceb39ed53bde2139bb822fc764f8b5c967bcb479b9aadc6ff6b3edb32dc337f14f5e1c073e7713e1a7706c128de0cf20f3b7cc3ef71c4661f5f6bb67e3ea73df3dd947bc23b69eb5fad6f7e653df081629b9a13fd4d3fa6c7641e2fba8fef4fe417c509f7a7f134410ca5e7bd58b20b4fddd7c563ef5b90781c83ea7bd7d0edfc8b7490281e3c05f75ed3833309556b74486cfea6e2896a50c7f5e97e304390166134c081242086f42109f1b1150af7a1546217b54fc203e3722a850d8b88f78c77cf9abaf9fadbe379f8d8badba9bf8433df633a91221f3d95ef5d2c7e7e2c637fe29dc8ed3bdcd50dd8d63103a6a70c2616cd71e87e0a7708766b450641d330b7c2b187d2a3c597d5995e023cac106a6167c44357c44485be837c48b0e2b264a579f0c5cb8708971798df182a231b4201a406ea63148308695dfbadbe163281923c98baca33b54006cc0144c6170891900e6b8170174752500489498881183441163c4608c17ec18474473ce39d17481030ac8605a92c406ff624d9ab9660c2340c8356528d39a33445640fcbfd4b0a0082a5d4a17e342bcaed695fe4491268850355aa8b8acbec9708d18355dacaca8c16105354d86ac82500325cbdc4c6a76b002c62406115318659098c4a8e2673c1ac1345ec2a8020619309aa694524a29a594144bf970e21ff97ec25096f651b4b68e4a5b079dad63b68ed838e8f7a8d4849a51f361afaa5cd4f70f54447da456fad6c33ec49e853fb447be96584c086b63afd71052be5e37f1e1fb13545e54babb276e4927f662797bedb1b73d7ca0582621967fb447bdf434ecc5b2f6ae6771901371b2ec05e3f6d773701fdfc579da57eff3b6614feb3c10f24f7d7ba3b421ebd72a078a573c5cfb5e8f892d06f6e5bbd4e6e2c51c3911677eb5f65e97eb1fc790726ce188b3e44a747eadb5d65a2b5025a1c3e4da61605127a5b3693ab27fd97cabbebf67b4bedff58ec2df4199f1acd6b5f918ffbae273accea6fb088bb07fcf3163f5f17b43d988537fd5dd584e84d54f751388b0fa5be741f701088d6327e2d48728dc1156232bce1eb2fade79f0a636ee8afb36d5c1b4fab07e561fdb08abd8bbb0c69ab4d1070863749772cece7bed58dd701baf70b88d3d4b573ddcfe996abb45cd33899aa7f6efee6e1cbbbd3d1064e9a82f62b02515d2286b4ca1bc5a22757cb524dea823bc6ca0d0fadf883057e3e82fe12605c996666bad926648524a4f8b2f78b06a72e1775bb865b5c4cb40870b7f28cbaab964b9f2e1c25f2d01da4922fb53e4691d5bea3d58ce20e6d0ea8cf6ed08ae7751efae98c7978f10808902c62803c53e88b0d4751cb89d60de76767854a7da8aad9594ebc15059672225fb44be47f5ce7323c3de679403edf8102ac1d1132a19a8c3e413ea8455cd05ee4418fcf642afd8a53c3d58f6c071e68ee370605cf95c0c2ec7c5f5a012a824cedaa462287e13f1f5a6db11d6c45d71e77be0b3fae16a60031d105242f4e263afbff8b683e22059450325dc153746575e295daf9b4a088a3a9e4d22527a12753ca01d1e88819a4b863ca080cc980cd463a806b6676660e1523dc2d33838d819e1e504e895e7cc81bd96bc9437b21514e83d6917d28bfe16d2e841327a9173ceee7e971f757dcfddbd760c36e75c2dc964756fc19933bfc81a7e002184b0fc01502c43f885a7c364b8d361e24e8fe931123a113b39feb4f63be75b4193e28e1fa5843d5351ee5838a5c862cd25c71132fc160af257ce8e1d189d2f63c7d85cb01b713cdfa394d29ffddebe5ab29a72e15b91c9397b7effb417e479be941a5831b9f0e5ccd3218470554392975186bb7becd88d3bc2908a98bc6882094d1a26341f13185c9862806595443a31862906494c5f34317db1c4f48512a62fbcdcc80aa385bbe088cd10de4516b984f4a552917911a57a71e48590ecdd975ca43c23c585db3ac345f6ee7fab2254b8904352131fbcac69eaa2897566880f938a2776104306055300c1c4b9e002c686c8431738acba9882449a694aa3eaa285244c67983833c497638ced124e68bf6db41fed4b7b5d52c7bee7ef31c279436679447ce949f9235747ae94508b253c30715186852423883035c960668b2898cc6c81b0bb1b0617ffccd7fe64066ec0612f96e75d8ab13140394039310d56a04e0dfefc53e779f6ebd32f41d2904df7ba3c3d05cac9da7b4039f9beeabd58aedafded3d99ebaf3ad7d681f63f177bb06e3fb4ac3d5cf21c35a084df65a09c7c7a15f66299fe26cdc00db4d367589a69caa8ae27cdd3f6c872c5d20c5400852ef85222acc9059c68a28958d21250c4980086a430455da0146599fb831226620f4a2c45727ccd3fa6f97a40e3ea5890524af93dbf7ba253c0e565155d9752ce3f61c2333d6491bdcb4399ecdf8a685ef31b4b396128f7d04981a11cfd67d7ed3817c7ff04f8f15945b77bbac7bbd9bb47e947fe09127f4000193e7c8f2d64b05128fb8f3ae11fd49f3094dbbec7e9ee1f5da22aa5734ae91e516f1f66d457cf4af9bdfdc8d991e0ed84cd1de1d2dd796022bb5fe1727f3c60c9de7d120439819a29565012c5902b7ae60b575817c0309f48817a6282d3132df70995d493271a2bf7c7030f2716b82c4f6070159973cea9c5cd13158a70c13b3479ede0020d3433a40a6ce4cb2edc101db66c9f0e59e694ce6171fae40b1e60d0c85c21c361e998c5ee873fc4eecabcfb917fe5cfadc784f827bee31efe43792843bfe9111f7af7c37ffc7fe47b7c19dfbb15c9d0418a932ddc115c124e8c707285bb42c689152754382dd7fbec9eeb5f1f731d7bb57b23cc65d7248b9326d9eb1cbee4f81300414c8e5fb8ef7a3d467660033c2fb9222ea51889ebfdc776f88ab0c82171e3c7288378bd8890f26584152b56ac5881dc14215a6092e4c381480997246ff0426e1912bb60fa7248fa702882a3225df872c0d202e74300727f3740714313b01d42d83129b7b50c5bce0ae7434ee976b76333b118f783b5b1d78b8b22e56b882db82162bc32c6418971505ef3ca778314ce09e7c4d61ef4bd03215a67663ab23b6e10bba3edee28866c1c9186ac5556dca8433de9c39f7e8feb7137a8743a468f113edc20160ea3437777e9442474242489048f7477777777775397dd4d47907147dc1177c41d7147dc1177c41dc949ab3d592f72d26aeb52536c2227ad141a2d35c949e7929c121a49f77a4cfc18e35a80fdd17af96a20f3c2edcf86a2ecb9d24c2bdf92344b60e05cb8fdd510e6aba1e8abc1cbb704e9643924b59b4ee9dd6dadad30c769773ff549466f5d7921d13d6548742d47742b4774294774274774658644d73344e2886ecc9c0cb99f23ba9023ba9da18cced13069d53824dc0c969b417aee1cd207f28d22811d3821f453b284915519dc928eed9c92db0f6310990adc921bbfb364c9f22591c2d9c0d5c025e168e090704c38261c124480122c49bae4de864897d2b923d73ae18caee3f02f2ef7978448a6b9bf244ab2f7b11844c615b9fd1d61108a1923a60c193163c4c018dda59c517329e7a4b45a69ad4768a53629add5da53b5f67442a132ab9d50a82cd3b46dee78a669db964aa976342d95ca72a5e418d7ac8930c4a23551c89a345eba8809d3c54b9725a09424c8042a899ea64c990e781c44d930467729278cee52ce49e5a4b4566b4fd59e4e285496699bdc368f7043659ab66da9946a4ba954f7ae561c4bb2581e218b63b55a3366d8d8d0704997cb237479c6b1bc1b2e9751660f1361f125160e863b2347230590f1006e0532c820e345462c167385713df79764489a1b737f4954807d4984d050468cd210c60b3224191d51a59a185c2df747c3162b3068c0e24661c48b1ca7ffaf1625f161ff826191f2e7a4814a9ef35b3388716fee8f8626301a94b857244b9020512fbea8b57a377eadb5d6a326f32869ce537763abd65a8d64548e86c8b5e29672fe112fb840e305748224c31c6199474718a974d29929a52b2f2ea53c90d29c4e9405244228122231a089e2cc99339f9190efc8d1aac988153ea3205c5899f98c94649bfb3332e2628b2d60e852648c4bc7ff0530b8a8dcdf91a2cce388bb4dee2f86158c8c91bd8f51b994b6e052fa25e274e661c44816997e46ba806145260b1768f1d222a605fd8a50f95ee072451543b09882088baf481443b0f88a28916beeafc812122b58c1eb958594af17aae4069355fd8ab63f17c4c01cf667db1bf9469c7eef95e7742d71234ec48938d1bd78846672cbac236d30f3c6ed5a1e585af383184bce2435492167d42cf1ebbaad7bbd8c21da102b66b8d726f7d7c208b277dfc3985f5cbacb26315c973752767777775f317153b9bf1688889167ee8fc8172dc83c28120b4941a95fe90708a83f6212327c1e998d3a314208218410769089875aacc00401853659a1070e9411c50a4c404cb9820227e32382e62352c547c489584c096b63afd71252bec084e04c1127c860c11447486a7a380d99e264c80da72b880c9901f5114182099821456c0cdf1cb2c2494a39a4c2932754b0040c3151a270315ab0a189e10b9bea4a95942ad99d6094d1c62115741508c124155b53be9459d24f7536986eeab5574af5bda554291ce4794edc38e06b56e669bffa03bd684725067af9b881a50b2c3c05bd05d65a6b6db5d6fec96df6a7afdda9d657a5f3344fa713a55e6c761973565447c26b7624bcf24f7ddaa355713bc226be2fb85c5358ebbadf94a45c737f4010f1019104c45234024249f65cd948f60f88a2ec53ce8f9133733d17911244faa884c9fd4d29931990fb9b5244b62f1b2137e6c2af76622fc827982bbfe95e1080f8c00d609e58b27c2a32aade666ffff4f6df03403e65b09c412c27bbb277f3ac3625552a77f7aed27c9a79ab9175f46dd853f6bd59fa277bbaa175debdd6c57ceab40ebe40bb5dcb0583ebddc8fefe5c992b1f45bf5a7b0af25c2355a2d6d367bd59b97da4df4e6d84d15684a1f08db079b21d902bd32869bf3c8b918925ce8aebf5121e788eebd58349d7e096ca54dfbf5aad56abd5bd57bbf75e6c236cf5da6ad5a55ed57940afbcfa5476efea5330954aad520fe14fcd6608c3dd67177b37ba56bf86bdfbdaea765e4ebe9f454deb3ac2b6ce1bcadbfbb6635b69aae789dd59d505c59cd29ec733cd058d727c14f66299ebe2f6630f30acd8bbd7f5d9832bb85128c21b7fd538343477292b92cdffa620e5fa59477c02cc6e82fc0a3bc0417aa0829800adc8f33d667f6f6ec9368672c8f379b41579625b3df8d65ffb8c4637dfa6f38eb544ae7fe3c3bf7e8daf3b5c3fbbfed67cffd30f4b26d74f294ccede77b8debb193fbb54378ed3c7ed87cd7eeba03eeb6dc7fa55f793fdea55cf7537aeef6cf3f2beec6e5c4fe33ba39e27d6785477e323fb1a9f7d0d7ce3c23c8632f7373e68fc7d1a7fff7e6f200c813d45dd0bf0e6d3b7f1d63e8d8e7b9b8efb199db7bdfd56f7b3face70fb5159d8cbde72ddebc7fec5aaceb3dffd6c58c371e351df6239fdd494ed07d17cfa20a71f704c768cf23f75d5e04681a12d19d8af5b05e4d76e3301661e12cbf7548e2a8b294f32fcfe9c750643f9bd839e63e909651efd9927c66e58fff401fd514acc2f03dddd5db624f660f56fd95936d9ee831b619e33681c1184fbc4ed805b1bc990e988d3efc5a453118549fedc5fd21818722cf7e70315790a91529a0c977cacf55a8c0f54f6feb975507ffa74f6366adbbddeca1b1116612d145cf831ebb59811b284deb55a4dd6afe865ae5afdfd3b9fd33047c5f57a27cfa0995b6ff3f37d8070347e6acfe9708fea5c9c1457fbce3fb49f6183ed8da833036b11c67db99d35ac3d8daea306ab4efbdb69afd23ef559b39dd5b0977d76b136b92859b837578882f00a8428d4671095bd77267486511d09b1ec81907f50281484afc51c37c70ab6ea6ee7eab82b6efc93f75a6731a2b20c6f518ec0dddd1dba15ae03808912852b7250c8a069bd0a0e0a87fe428408099a0228a38c32285cca523772bbd6d50c624f52e903dfa23e850c3bcf33fdecadf571c7d766f82773f9f4277bd4f6d0379e08bb8be55b9b5189fa299fc2f7a14cb2373f2866e8b252ea13752644f2fc23e5f6c38bd00866ef9d9e52ec41239ae1a0982b0e8ade0953eaf9b0123ef51b1f580437904fb1b7faf9a9ad03ead4ca15be964a6debc08399f559ca59d67596524ac71216655a7f72bfcd5775d40706450b2d0aff54dcca2fc00dc478411166f8473e7df870c64cded4df7e3e7c016e607fa2366c83e9067986ef0579ce7efee9b98e6616fa48232973a5380538948ab7083459cbf067931fb2640d727f3f10e52fca972f8a942f4a1639cb5a137cb58e55ac5c8b83771c994275f1e3fbdcd8705dcf32ed743a9d7e506d4f274daba13d0aba97599c612f66ed79a243afc764eeee1bf680724e1e500e508ebfe79ae7d893990e09a530a187c2946bb2473f28fed87c0ad93bcfb3e7d36c89267b1ecc27fce3ffe3f4adfaf4332f28be4db669ca144a31e64ef1c48c12627607629a6dea7b403915fed2db3c4f84152e798ebf99eadb736c8faa814f18b573833d1a36b077371ad806f798efb20cdcc01fe293db60f26c34e5fa36afda7e6879feac35b00a6fb8c6d370612387efc2aaf9a9ad03f83f27bcfd06e7fc0cd7c0d3df4503ab20f6366ddb519be44c9b547377b7794f9699befa56577fa61ea2fe761e8da63b46f03d1a59ca57ebc87ec7739400778ca0914be8c5b2c8a7f9f014ad63470638436b711493c18a188e9c032d535690440f4110b12099f848004613231d8a66acb999a1e6c83d3ef411790c65c923c6f8fe73f39101dca3cb3ff2e39c3dde6560956195915d8cdddd79da74970b76ad8b95820b83cc00b7655680eb8a10464c800b1d90bd6e4b2a298b8a3b803b3fc0b2addc2e4dc603e6bf02b82d030080ecc625528299ca4b1255728c33cb1b11a60d71bd9be9a414c23259bf721075d4c0e18473ce39ad7cf8ac2de8a413021591ddd8b8fd4dddddddff068c75e5c6bf60352e5493b9680861f39a115dae16908c7573727f5bd4e40640d66d571d88a91261bd054d8699e504abcbf55e8b451df81c441da9434e8645a27bcc713deb56461dc73765726719871c8e0021acf5371f2290b0635c92c147e24bee6fe94bcec9fd2ddd907beb4131779b275bdd6f4b97dcdf1964577553774e9ff7fd1d4389d92d4e5d22a5faa7b7a7fab075e4572225182bc5371e91c8b64ba424e7e3ac2304a44a62ed7a0a104a20eb97b41166352a6e76eb13294dfa9e45f56bde8830d6951b1f4ed8058152bacb78bab1c842c603667bd36911561f621bc4f56c9e1ebb2030cf9f58ca3cbd5e22a5d3b797d6a17fbaa88e48c967fe78828c5e22a548a4d44fe45dd9bc2da5b57e89945c51036f55b93109870a48e249ee2f09a404645884f9b3ccdcd91143f992c09263d71f12594089b7878c07ccf076cd78c0dcd77f86b3848041ea3249ca1e88c9f14750eacf86a51c3f272a6914bbec2bc9f5097f7ee2dbd09d4e133c845bdcf6e08b20c32c9bcef97537713dfb232b9dd2e3b7254b96475a584068d14205c5dd529453b93f2d6932fc8b638c2ebf2d4abe2d49bd45d6316b5712160cd165c81114302748a2a585d409f2a90a25b47c56b450e9268e60e08485121ce9e1090d478a6eee4f4b122d50583a34118bd5606decf55a22e54b22e111030e77f0da9425181009243740118394263c44c182448b90164e2d50e2083259d4b09e201d9186a5244b982c4e2489257925c9f2c4882b2c24324b9521ac19b21891e50a13d2d151dfd022c410c1855106546022c69721964441869ca188324762f88c3032e28531b1d8116b63468cc45eaf16a47cc5622c2231160c4454898188248a8860c20516d196fb2362055995fb23028a21d00c51c42ad22cb04244c46201cb523ee5feb094a93283dfa8ac551f3b2125205a96c5cffe8481a4deb110fcb791c4a5f73a4e7df928ec9f451a6f33e369fc8c175202d282f0e503812f3110970b8380859480d83cc44231c7a96ff334b04d7d88637d54976d9d8685944e2fa43dea4f1888ea535848f5f021d6b050098ef3424a110b41218e533fc346f121168a580862210d384e7ded85fec6562c4e08ebbba772df3db03e8fabbaeeb11dab135202923d8785604ff6aa5f75b7434109888651d0de46121852719c5adfc677310a424a2174cf7cfadd83c228ccef1e0f52c95a7c68254dae91fbbb62946f40a01f42f7d01701f6744fbf2afe81aa218f35ca8b3524c61af292afaf0a99ecc9afca98dc5f9530d915615f9534d248d6315371617bba474a4359ca0207d9dc208375d27bd596eba3853f3be951f2c428a5f4f8509a10811861d73534954d7936e9a7cda5b9b249862ccb7a831d3b9f0883f2c37cece677076fe243a30c97324fccda876e3b409027359a734a23298da6d194b20c29647ee8e20579403965729466be2a4b7c4264914db2e95bad0883306b272e8a7b7a4fcb3638155c0981a2ef8910880f8d3298b5ed4388bfe1a1ce83a79ff5ed5046751d263b6d7de4a23bc2e84395fbdddb3f3e14b5ea40f99dc4ef82348a91157b5ab61038fdcfd3a9b38ec3b9e07a9f1f4258bd72545c1efb1378797aff0ca24b8a0bbfe73bb60eb1065eaa102f4d0e85b23f97820b73075aa65d2bc22614f2b984a098e346e9dd0d17b7c5f53e4cd4e1711ccd2d0ac2f71e429e30b784088baffd4ed676c0f6e272b9bcf0407b4fd873b9fe274e1303c10ef7a404473b318784488d233e87c56d7d61adcb45a5a84fe9b40f696fb452987f24b65a0b4248c9f255b17e8fd60133fc0a27c0d33a60eb805efda93a9207fe7cfa19abb31b7723ead02679fe8d0ffbf45b3fb9a79d67dfa39faab69333deb34f8358caf36b105472f6967bdbddbf1175288638acc5de90f65ad98d7b966dfd8ccea3ef2d7cc3fd8d0fd6f69b7d7f9b6775abe73a1e4379856ff7a3c29d4f58c394bed63a4e8079be46bf5afb755a5b6d09d956ab816c6d954f3f3b6d1ef0bcd638e68e1e8d037e0a70a815ed9053a675f0ab943248f6928c40062353fc785f55b70ce5eed8ab3f5ff5aefafb1d9ccca864ee3575b1648a6804002080025315000018100a07040281582496e7f2607b14000b8192446e4c984b23518ec328888118864188010411638c310620a214446523001eb7b4fdf10f17f478cccd66d1d77385536c88af37c2501c714f2b79a5707a39275acdd837d656f15c4d258dfb8ed2215ecfe7e237cecc421f8a4cba2d897a9b2db36d29530c9c3e96f4c6c6759ff9676f7ee5ca9c77aefc8f85f29087dd4be576d52b062bc9d6c608f4b65341d88f80db18fc277daa0d6f5bfd148b6c04a222265b2a08a32563365034909a7f03ace71063e5170229b0c4337f100a20b0192a35b4bdde92bf251c3d4dd345dd854d290f5e80a7554ccd8cc96cf6e025989cb86aedf5844037b8df3ee5b15343f8157a5698afd32b158d1e149fcb8c4e510fc4036d82e8799ba0b23957b62caeb1e7a47575c208b76a84644f54c292a479a736b618d173d599a96e08956b9e065dc24e3c610600bf69dc01b6cb53fd1a008ee649fcf292833da048795af2e441a852e0cc37e11b79135535bf4446fa5ec54a8ecaaa237944af28c25e2d1b0ff3345674b4c60df55a3b9f23aa021a3a643b5f6fa971b10f001e3b975b50b5cf69e470af54a13f9655075fc510a5918a3f9a3defdd49783e01d0ea37cac8aef28e8fd9ea79a1d96362737e5b861186fe0f93f4b1e89f756755d900a4f4e38502c1b26d47b34efb26bbb7011eded0c41a0bc802a81f0880ea65c2a5c02b5a96b1c4259ee760f3a26f9a8b0372cc70c9ad77ff445971b588bd6588cbc01af06d08a0f60b7368a7a9190e36c19353cde6b33263ca11f81ae380e91b3f1122556a7a463207a494e8512fd0572dcd8ee0fb695c2f8e26302ab27055a36fa3a84846e3c9e2d6bad9565693a6552753400c628d2a05fa18fa86c7f38e2ab26b7ea8f883a8515136c28593931a440be56730e2a32f5f4d16944fa7617d6a32b5e139c617d013c6d11f22cb50fd202e818093bc621d95f7e3c57e7d34751f592ed44c1d2213399120eed5e872c165be09b223e63737d83fe9b97c7d54467d6979b0d34105ec040ac5118bc9bf97fd8fee5d25b2f433b4a1877ad34f3e502094e27db5e16a003534d1edbe0be84bfe660c2b65640eb468c73a5e48069d602e867e13593045258401a5aa9d63e563a9b6aac38bf6282539961362d222a78390ff60325a3712232f82f3018a883a01fa6a9553eedfbd3f4a166589724bc7b4486ecda478258543a45500efc6d2c73b21fa6c7cac925da1b2f83754d6604454d62eabf73bc4a1d752c4e2d30b02ff6fb57da51e9c3b8e839e98b0fa5630e0525e5b793def8d8ba3469dd32c9e364a805a3ad29ccd426bfbff3e3c6ef711472fb1e342d9431a0df7fee6617ae041f86f1b1322267fad2631d3e983757022c3e042710ba99a6b12b6e939a9e85580e171eac5002f185faf71b7d40a77582d2e7c6de181e330659349b96fe0e5d01c47641ac50177a5bb9e1c8ab767853291e22d9916bf535da50be44ac862b5a8e8a99323ea770fd431d6a05ef0d69ffda15c8be9a5021a1186f535dd2e3408dcce4750734919682b9aaaedb52cb1b0649885d1b6691c883b1c7dfb7da59ff731721f06bee9a21e90bd2f6e0c021f87fcb97d623232652e83e74ed87f4d7e6d99ef1d2da2f51331064b4438a3d4246a01d34f28d4fe4a50e2c932d3a92c9574327fd0e2f6566f3c3a42000d179d8e9c3ac091c9362440de12d4d1f12579c091e9d993efcbe205f4d7f434fc33b5a88966d330ed5c999e80bc6c4983caa08e83aaee7b768345712aabb39b04d211b74345790a2b1d369c59cf12e5117834502630e4e9c1cf5dbd5b8bebe1bd7027777cd1011d3e4e07b2cfddaee4e71406de19ab6e3c9894702c4dcacf020b361d85c125215df490e11584f25aa570d374cdbfc7596322e4c0adb73798ce352bf7b0eb4c47a9a80618dee70bbeeaf87d16c5687c1e80eee4f0c24f8be334f36ea8c0477da89f75fac14bdfe640cf7fb4ff3411e1a76aac885fa72060c485e2a37280a336bccbb02e37d9717a5aba8dc4d6d757fe299ccc4ffced1fae26426d4b97e554cd33222c113606f54ed47f059ae6ea2c5ff536940edce31a462f33bf00423acbfae1d0439d2da97ccaecfb7623ad914a5fc2e48af7fa913a79a9881b1c9f2869d0bbc1b52161a7da7ace6928f6f0baa9a7b882703e863776b71b4af33328593450b668b730cdda1c52772baf000fa2e433002ab0f1252ac730122352e30cbd62a04628c91506b13ca2725141eddd1825ebd31af5d78438bfb75b8554335613d661ecb548fff197b3dc3f47f608575356ec524c0172f3e1e7390aac0509de8b0ce35292b5ae67c396a2ffa47051198723f3d48c89e7212604e93419f43de798183b003b2a7c3647d3b392c0ec108f6028ffb3e56cb4d881ccf4ccaedf264e2a84636f819f9a18ae1c7e54ff3474c7092a9375369fa0b5e9ffde8fb04cd77269adb5cb21cbe80c670c5a268075165c6c3140fde65dc9b80de1776d959f44eb89618387f9689d5b1a4cdab631e7cf46b665abdf0a6c300a9ef535d6ee6ede5569370e27d9f289ad376d4f665479e598594e4720c130c9530ba6b48467258d626027006322d207340c07931d51d4bc0b6bb18e55ac1858990b30e4ebab75ffce2e9680fa4bf1a92de2e1801449c3b9e6fc1b7f44f5bcaa7b73bd45a688cafce864a2063a5f34ca5e092a343694f1f7cbdda6fcee90f630de251091b9f361716ee51e7f03d5153322927115088a27f5647a0f5a39cde58983b2ed889eb82f57ab96fe496a353c2f32113466dd16704d6852826eb9141eb7c57a8ab7c854493e92dbf504c3a612ca7a8cbb5dec3297bec7c4b62a7c82454a1610b40442c4a95cc5996361bdad4326d25dc5c01dc2b49dbaa13938823330f3ac189986dbabf42734b7ad713afe720533f506ed51672c59d425737ba1b5c8843ac2085848057373f7a8525eb0dbc06051ef468fc82468cf8793fc724991a17716094b0dee47eb6fb08711441f7454101a1522652e6d0393233eff8ff7ddc8af43fc336e5c6e8e92636a00088c15d8d07afa8d6b15c39c439afa7f7c5dcb660ffea279d1da1fe0fc214988d9fd3b1677d00f4469af312bc075f9ad261dda59df60ce6fce10c3381982a26bb9ec8968697b084dbd580b0323bf063e30f41977f6c6c938015c481375a641b91ae4eab1e54b6006433c0b661ea2cc4edfd00ed856da5fe3b45efb18014c29082397c3cb833ada80fb5efedb55102b38ca449f0bcc7ccc85500c69673893241a4ca20a8c760fee6017acc22e776c2fc288c8c812ac154fdc23b8b4d5192649ae18d1ff228ae047a965e2ccf6e96ac152fabd67562c3ccbcc2a98433fe7a620e02ec5265a97174fe72890576e6ad12be4b7f85763f909c3c678882082e0ccdde6424cf865084a4b9205710fae0e79290d11122b9f2451bbab2b63fd645176ea887ba3f830ee1ed93d1f9b23f423846919851809d50f05b1c35fc20ecee2219721f350394d9c47f28e916b29c8bfc8e04d57235da84aeef03f11fc363c241d942d87276f3628c6122b2a601922e24b93f47249b3721b5eed5142d1a8df3cd8081c74997012e90b9fed577089dc6058b2899b542d824bbda0034f04dabfa1c48d0094a6ac7775e8c03bb6fbbace6f09c3b59e6e98f64c4a787839ce0cff82f6f8d2b397396f19bbb5ea857a25fe6371d10f8bd6ff011282fe82b26171dd1d80a6df81b6b01cd7130dc6a96b28829ec0c4c80db60bed90f312efb946d9eeacee0d3569cc25718b0026dcc55ae581a929aeddde62a7a5d90737a0ab69dd5ebeeb1137e3ca808b000e4e5fca055ec9500372d38208c16f559053fe4bab4959f1dbfb7da905114c2cecc59aca8d51852b1f51975972d1c48f2673308617300adfc29105440f471744958e5007f45f5f0c38ff062a6c7815269bd887c883d921762959feec521827c04b53715069b104b49375f8fb927cf49139dc977a82547f4036d8a6938df3ef0084cb9c92bc1b0d95c0e6332f998b59966cdad2a5605069ea6588ea521da2aeb0ec194a6453b9de710ce6514f6f1fee8453b5b5d2c4c852881beee816afcf23c07edbf2691dc5127145cb8ce0ee8e3a31f697a1315d0e8b0c1dbbcb54d556d1426cfb09a46befc4bb26aa76baef0346e009797bc8f3354fdeb2769523f795f8c604ce6f4c447a7bd964ae83561e0c70bd3d9619a3e2f82cd6055c784325b1b1046faf68248d7f9b1be5dd4d78a519c1b8378960966e118c42a932799b2737b5c9294f30132319891602353aee839a85096b3902ab9ea908d0a01a571295053ff4321e2be415dc8b8bcfc476a9153560adbe1de8fc7fd0212d7a19a77534ac415e588f949186b7b19eda915cfd33af144972069560005ee318983119246b9be893a0bfff711a9b22c1c458ee0a99ed9fa594de56bcc1592e422a7ad39f111d302b1b1b3c7e4fca715f17ffe00fda73b9e42ef0c7d31c2e648a9f28c1928b7a926a6bd47087057e09aaa1a398083058efe2c929f822a1f53c2818f658c4399f2400b9dc348e143992309acfc484fd9bd733a828a3227392cc176d81b9adeddb82a13fe4973fb4a5037c9c2a1e0008042bb69a3ca6fea1544ee92e41e6e5bc305e3526a438b77c8345e61bac5ad9064c2fbf23cc71dc7c7c121906296cfb7c101c67ecbc010fd824f4c2182f3c8a2dc3155531a886d7018f926e5bd2d1faf30cb6e06d6fcb589e4ad379f7229ea996ed6fb08e7aa31bf6e6ce35559ca0a1cb11c73917d6e4d8f195633c1c9b3cf68fc55432f58273941fcd23ae34f6236c23896402b464b4cc6c79d61157404b487a83e2947c5eb70b031b20db0cd1be5d9c3ec074e4cec262901bb5b7ba84482c3c16776efaca3d0bc4d53e6cd28be0eb66215a2bf6e47d020fefea1b1c42ba59e505704f3d2c9e77258c86ca30d66d14c1ceddf5d77a3f562fb94db0cb8e216345f7e7811d12232ef2a44bb3603fbacb3251c7d6546d1820382922ddca2e9cc030a6eff13041f88d4fe81a814fd50b637f01000ac97deeb5f2164ea9480d29f2b082c37ef8c206543c8dbe66af1133285d0b937902d8027a041703aad19b025518271cb6bbf3161fe5aa7693be142c21adc3c3bf47e731b2116f34b9d7752e2e883bddb7db0ce6418bcd771cb4a092b304ac2b356791f9d2343d9b36c7013ac3d9151b041effac6833ec9c28a3bc7a70905310399c2d5ac4304657ffcd8048ba88e45d1be20d42936632d9e56de3d7c6d9c9e2bffd0dc4454d1c89633f3035399b3432822811de43eeb062fce263f6203f949d7c223edbab60b330e17e590288470abbb888ddef908e14c2c6e80cd40b71869ac5e0d1ad79c96eba4d98f69e62c856cb3a110270f61100ea8d2353c027acae44c10917b5427b622ec7e59f85c42947a22345339e93981122db7cac0b71048e124cca3dd4132dcae4230b735b9723d9fd87838d5c60814e83387882bcad496e4d1cdf28a364e5cdf607e256868c8fc9444d78b30d0f70062a749b0b3823605560d3adfa3d36c5af29693be2f8a2baf8c64648fbe7ac6b105dcf71599cfa10d22883b7b3859e19011016990d294e69247561d506c12a800bb5c929c223922cd423ae27db4832114e49dda0c3865b701c2329bef343d348aa1cc601389b50014af20838de9afe2895dc43c3c3ca21df4488d1a65c90d4048f6358f3eff6840df7dabc8f19e47f77e68f24fe11be4828b59906514efddf3badbaf57fa1f915c145fadef1f57a0b2ee72e31bc0956210418b15bb80b020de82cf504470f21171a264ca5708b39f4468c699efbff25f8aa4ba2a186112b701bc35bd989b6327c93c7b34c69a3810a59e29b5748682b4998a7d9f24be4e6205221a1cffd4a92c2be4e85423f186ec7626850a42d7961ac5c6b5425360ab765a0fff7dce98f19f5e29871e8137e245db07402f73591482dd2b568ae3c1812cac635631bb34d6c7e2d11219567277f815e0733d944749b08d58dc768d1f69a21b2cc16aff35a5f5ae011511d1c806afa805a6dc80356d48292626d119e7ad19e37089b7fbd87b16ce51023c66a9116a8a2252903b6686e00856a4a0f1da9acca5a2eefe4526e0770ff37d2d6eb120ad46179644aa9be339bd57e1c2748d56374d95f7abb3b3d9b5eb13fca4e53b33462990b7abacda716ff1a153c80bc67798a12ce244345b26908e93c15327eb414c955fc35bf6d2285bfd3dce578b4c08cf3190b7778a6b4a75562bd9b6529452c320b62f2590d5b08d46d515540aa5c4eca01eb1f96cba4f1274391c96c3ee958b4fba579e8ef1eddeb367b14bbe7997d8e763f6612887a8c0572a88e4327d2c42a2c04ec1c52466093455b22593a5f5ee23ec1a0bcde7510189e298110598dffcbb811a53e7528cbae093b9730df0536099e2d09f3ec4ba130c995fd7bec8c451db2d0ee4eb0f7bbd0ecc4bebca48de138bf38eee38d705a867a0468f5704b2a3afe5a46bbcec832147c8e7b298abacb757635d1478aa8cace81d55f08a312a2620b3d5303ef942193535380bb86a2cd2e007cd9c4ae024aa32c0b4ccd6e36c089535289c7650bf1e5ac6dcb079f0edd9e618e4e56c388631a80819e5d6fae619ca0c0ca430d99f4d49e02fa6ed071c121edfaf21167addc9c92ae6305260a1defbe839920b6071d1e819db7d376d620296aa1be6b58c980bec1587455c26f4f61e0ae60e52ac187bda3c511066366a351bc0f7ca3561e00198f5b5c820977b574552a527798142cf35ce9eb3e9cfc20f197a64a77d0ed7d2d5ca74998cb683d16d5ac0dbaef5363016fc9eda3aeb78aa9e99aa1a168a9b51a8cc3790276ffb091b428ea746faffdec6c04512125d5594f3964477108cbcba2291630180b5cffc8ad7192b42e1ef07fc4c5220e733110b8de5553c2a6dd41a18cc9de133218d1f935f3da8e4a4a310b9d9aa4e031680c189a14aab5b49efcc9635df73908e96cf622f49fcc8c5599546b8b5bb60a63396cd812b90aeb7691a80c1481f8c803cf4504f66491d2668d71a8f53e48a4ba66006931adb4e15c4e487c28acbaffdc428a7904b0b08e32aa2ba7e884a13391070506800ff22df0805bd357d1033db4cbff052f0bfc0481c3a1023ca810ad12618213432894a78479af027441be164db6680fb30637ca16e34cd98f71490e1935ed77605ce58f925027b9fa80d384ef190960b4940e3a4a423fd1b4892e9ce1284f208c855283567f7458929d505e0688ac9b87c408fed0b14e516d1fab0a00b686fa55d14b6f863489b2de3ef9daf90dd1d192a1e04e9cced34a7a4488c934873e608f097dffe8880070520748a217fca337699709f4d21deabd304bd20165adaed44da961709f8d44604369d86211a51dcd29a01ced7ef697c50e89464e342db8ceae111881b467cd4c9781e563df10c1dc432001f137f7a2fd3797adc1d0b655e20ce52cf122d394df623cc24b0c896247edf4af3cac6d7c9aa301c5a0c5422d94e23416d92587c57c67bf654364f4e06a89f518a4d14c8c37ec712be2e47dcf258c2e6600e2d0392c8671cfacec1f3be1e2b2c190c7a7248fc2a65a99b565a44095fa01a820c16237cac4a0b2341f1db3b8258149616a93846a5ca8adc442c99db58fe714734f8dc94df8c9ae89191847142507ddcacb0959fb16dc9c20f9859970d868d0dac5df48df230361f27726b515a07bac04f32c73994261040aa2e617cb55eb1e0a3257cbfad8004022b4656d056f6882d0ab98a030b115c4453ebbaa841d591db6a34fc267c75d2bacd1beec28a1028e49e6108b5aa8a376b42951eeb584cd8b4195bb6d88b23b6fca19745aca1c3a4725cbf9462adc93f30720b939845ab822a4dfe117a44c879c523eb7cc6ba2938c76cb52d8c6f29a7b2ed2ff61aaee040e088f96fad9614409cbb5e115f19356bb89a8785e3716b6e858dff00c15e4d250bbed912151363028f3a207c7d8beb2a30ee5a949546b1770bc4321ef81466791c753fa439d841e52c5ab0aaa2ff7f7b89a363b472a7f092c81b590d75e42e744a9242d474540eaa259082177829cae2b7622476a9cbb08222d730340a01527beaf4c32d84fb02f040500ffc07dd0360a442187d28cd4bb81b9707bc94ad9e934851d6fa143dbc6d07ce3f68851b807074992637d5aff3db1690372b8daab42e1b69202e4323551a4b94ca7af828eceb93cb457694fdd1a5d71ce5ebba1434c094d54eae815b54c7cff8c06701690f8cf35ff9440607a11f1a5edf23511b39b77a168356310e54278c8cf0b87b4a4bce59ea3355682518ee90c7428a3b2d240b588885980dc050e0c9e8017de26e76c5d4a696ce7d08c6edceb1c91f270316494a0e70dd4495049c8e89a1470c44c92115e8b566aafe00535c4ed1640469d55e9c110665e0583880ecb99644829b474059dd5bf243a0083be9b065394d831269bc2deb701af865c4b34ec69b540717223183bc78653cd479afc612ee9464f2aeb84bcfece4914e553ae556358c05de6cc0837f4740ec1d5ba6133dabb9973366a68a1d80daa19f6b9b382b24892aa326a8fa4176a00d37489a6b9019670eb200ce735d60ad902f225b6bc05ff8d5045e142c165c63b793f02023647028a59d263e7e8c9058911e400e51684912d02fd8e20f7d356086e5a0fa641b8b1d72b738ef7b24c48aebd9be865fb050ae37b6f6ed68b47a1905d7c87f4f62fefaf2c1daf9d2ac3215e6bc762b33cc1801a9428a3a0741ea45a368d3e5782c641723e1be7f2d5da02e966080b4d52c2abc42db5a50d75746a9b7e55839d859404be0c0bc4234fa3daa69834c6308c8368ebe7d992f82834aef36ea0262f56c11f010c103844e55f79f7ed8cdd49ba411a8b801c1bfc46c4c1d3d541c62c946468367b7c35d625a04df8e75bd263905c29310db08f2d443d6e7ca6113ab381367880871c603e02001a36db03c9eec3b8884626e3aa8f0ca455800dcf0b16ec0ff850bb3d88f735c89d3c5fe7dce2bac7aebb9c451cc7bc2babf15c0ad5a50d33a982f5e84b7392e6e920d883e6c6b401bf468982f5765f168f8196bbb8256bd5b44948011128ca91a5495025f031131b46c59c91c5ed12b098efbc5300d57de7e3e89b36ed07e478cc744ab30bfa2367bab7a1e2a24d6a360598f0fc4e25d4d5c8c9590c8d0885f113257f08cb3c66b434d383c8090a059ea4e59dbcfffa3036ffa8beedf7ea6cbaa4c9b65504a4de2d1fea10cfc206d1a843fe258949ff2210bb89e789a648f4cfe6f7206433047448cc135f9fe567ab54f459c8475a7c4ae2872a28ae8f0e34e1424cf3890bad75000565f91ee3387a4369c472253dba4a7fb3b69533ffcd89c2fdd938bbc0f18dfc5b2749fafd1d1e76cf2d91128dbaa9acbef69e01096fc8f8193cd9e095b1082c00ae66b9453a3b60d159b7ddb00f380fea9190eeddb4abd62cb565537147720dd7ea613069f787f02945de554c05825066f16968631858b0520e1b4e4698081e200200bd63992611f01aaf43ab115b1a377c089ec6a2f980f01ef838ae104845f16c180f9fc5037b9e31efa06e04ee822780d5b150798c4d0c6d15bd5141fb33ed00030d63195d2bc84f53f9c010a3c5fdcb2820c04b1077f09538089ede109727b2c731b9470559ef473f951b6caca0a9d1f1113c981985cf26c03df03bdc8c8aee835d658c4e056e7ccd64f0d39e94c7124f6c0f6b3822396c4c32ecf1a0d39733ffeb0b9a266d4cae33337825b30e8a7ceb317ff197baaafb68a51d5a13f50538a180a33979d55d47ce54509a1c510bf29d85e55206149b98298f449dcaf6a7365b61bcf57bf7a2bf7696ce75af165f3195ef1e6544b15ee27c0144f5fb8824febcd3b6abd3adbdc04587973c2e49e102a88d4ca4217fe1ced35d79c2a4a9d3ed207057f8328fa819c67e9f71804795062e18a217c472e8aec54fd9ca90adebd141a976c09e2a6327b906325b6c52dccafd47116cac022521888c3c2ac4121c2ebe53bceb7b15aae00823e782cd0d25b22298afba887bbff9c1de1482690b3b48af2b81dfe246a634253cd3bab738a6e8e0773e31ca1ee62db750191deff453bb4edece9f03a0b410a4df4329a4f06ffff6a4f973146be103fd41b09cb9ef2a0a60be72975e11181b2e8a1b4948975d4e65c1f443589aea17d43f2df92761e17d09b46db8c0d9ef6a00a0a464f64abfa2c526f6f0b90f920bf000e215ccf3a408e84264aef6944ace26a2798c9251a4997d5429df41bf51cf7b4c540c02992ac73ce1e3ebe8253e1fc491caf6176241c6dbba75bbcf0e884dc1ea35e2446912e2325a7a1fd28a88bfa5784bceabced2d0933a48196280adff07710d03a0bd66d2fb6bfbe6c3042365fd088937874f9bb52ff3fb47f7d86c5541a728d92337442464dbc51a87fe312a85ea8b7bf9c75fd52b87084e7f344e5f0e40bdd4b4d19d1f6dfa89add84f3601243c2797ea3ba60caa86da05bcfacf9e4e3e841b7bdf8992eae7666b88af89fc9fea357ed94d2d5cb75714430b79cbbb26b25b45f33ceeb712110456faa3f1bf65d0c98a37821c9c59f9936f3d85cfa8df2d57726efe929941033f9c9c9abadb693c3bd8f28c8eced178d750543fb8e47979cf5fb2a7b45a701b48ee7ab7d701488ab0e57ffd9018badc42e41632dffeba598c3aac501166390c1bd6f44f0e72e309625b01eec2601944ecddb6336cabfc8b6d6bbe49221088340535811ac9e4d97edec5f1035f05ebd989ca34efa7776be714c109d500a6211499e345b897142a5f32990b1d2d6f0cb6f751011123e3d1c310f20582d19c3054f325073f3374649c05a3125670e01646c996124192e1ab7bcb55d2522e182aa4046d90fe7d5e771dd9111e554982a2466a8013aa4e17529690a84618d67ba5e140ac2dea0a8112122c1da728a9686394a9c4d0909acbaae4bb6c64f9e729901c93a8beb27923b19483e38ce5cad7a5e90f530024e89b54a83459d80d019968b3d6f08cbf1480cd9a0148622daa1bb82b2e4e8717a424d33fa9f86eaec98d09df4f3b21c184261e59a71ae0022b1907e438f1261248cfd90ec18e5950f0855dc6236b5c2d948e0cb56cfbd0a7b3462a262d6650104c1af3402b95a9c657096e5c9a89fb32ca555ff079f8ac2f39c1f8ef12451af36defbaa43ed25d5a02cd9ad16b4b80a1d66b3623a4483eda09e06e71ef38be76f98f1b1c944b0457d120474136d0f89be972a9f290b915849cf20433b5ee89a65cd38c386753c570f17f8578dcad4629d20bda3c65392e98b34db8320bed93451ade9fca016088fedec33406dcdcb1ed1843266f3382ef322092c16a5f4077ee20afc07a57921661db866fcc73ddc3089f74f57284cde257998ffffab8e6e2decd8114bc8cf7c2fe5cb2af2dbb766fa55e09e90bfc9c2a5de75c3b83e99543c6fa5f14f4f97235feab494196005b1a7215279470206af03992793e5030031609e4351baf936820cfd6d952d0c023ceb3a1b857ee19b5256f34267058d26e13f03d0a8876dfcf5d5122eef2e8aa12a52923dadb0f6244c100d8222c503cc02bd007f0c4529ac681aeb128bcd38aeab2b0c4065e2372fde7661aab56ef4bbb7cf57a42ab5aedaff855e3b00385b1e8dfd740039491918aa4977c3e0cbe7fae532db6371b0f95544aac09cb8709f40bbfe9fd357ede0c3d26bfae4d4439acfb38ab5183803deb3874720f33677f97168bbc80b69b6891e12fb6014e9daf7cb3a65b916acf00272d205deef1433cd8d20f1ff25ab0e0d67d1666b269c433cf0e363103e8e7af2e57a23507d06990d8e1d668c50be6c11f892487a7143cd0bc20d400e386961063c17db6dca202f68ec54930cac181920f33c4883353817d4c4bfce2d006b941002cdcb56a1c0e3f5697813ea6b40db1686336ddb9daee3b1708af78c3196708b9a3d5c0ce270f0f6fd45c538907a9016660b79eeb02713092909fe8f29df977ea1f6e4014201616489eae8d3eac174317740b05228b3f5c854ac3cc17f046568b890b285423d17e70391cccc1c24da85562cf8b31122918edb3e34281e764facdf607c539f58411d42fc0fb2c4a8f2b953f0987d0ef0be9a7b06d672782a16122ed810c8512b2817a603e7c708333827426b341cdb11571fac88c80a08e17579449040f1dffcba483c2189096260fd27e42608f74505773ca99dff4b9a08701ae02f64587e3bed68360ca6e504fe71f4bc352728437e97b25b719ff066745bd792b814f0ad87586f1c0fac7a81dabb27455770717cee978dbd8ed8dd4b520bc0d30844ece819c7aed23c0d56ae1aa3f27729811c8415369aee4386a86e657c5858baf69d286a8a704386208588ff20d054e5a3568350f76cc844bcc6482ec218231b6e0fd232a0e6a970943fb0719ab62bccdfa8dbe25e335c8b94d429a1b697cedd8c2a623c79eaaacafa61d0fd3eec1b53838715dc0483831be8e8760d8404c447b25ad6c04a57104920eb3b5081547c7e6d593bccc241756595914a3384653cb5c87664b8892e842a5d7f9c0de4e7fd521075069c36d9bdd55a2f8fd1c62eb8c23ee10a3045a9387a780d7e3374dfd123f1bddf1c5016dba472664d644db754d18be4e2f006c27dc86a243cd03f8572e27e2c6e99dc7a1b3630d728b89df6da9a6401fcf6271543f9e5f501b3a295553b1d939927be0d0ac4fcece064fd38526bed74c3d70a92dadac006a6e4c3e73f8c872cc868a3f719f9601360a8d09a24c0788565b82eadc9fd5213ebe6c92bfe9a680002112e0a3439bb252ab99ed2f9e57e8f7ab6df05d899e06e3c651e9348e7873c29e951e14c56b98627e906e9103dc3a8d90dffdcdcd4964279e1a65514fbf4f13ae264bd4afdf2b6b7ca298e2c3ee567d53f7c1dc4f3d5624f321a94bdd277547bf81322a30b3a1ec861949985fe13d8441d5496796da0c675d12670c1bce26489bc8cdb96c0c1cd9c28abfcf4cd8aa311a3daa9e084aca46000c29fde05943de9edddd20441db9e3e814fa97ebd1bdf9d73cb1e85dab5e50b3e81786cae9e9fa557b0b6e140a914e76859b2c230dd2b81169db8e1990c917be95c644be82852e567b57ffcc6d2966a3227f4d09e2e877c6b3b9c0a29612b34de89f2757946f9240e185859b37929e0a1508f582c70f848c56063cba09e371b9630cd4390617c30c38c76519e19255a8f668d97ba1b7ea1398c59dcdcb4cb720ea4d9cd53706fe70f17a21840e7fffa4f2cc3d6410d20ef5688c6113c666a56f1823ddb3a0bedfc4182384a399c4b627cae96763b80b53c41583e515736b3209abe76fd5981752a05111df6ce500645a045b04f54f1e305d3f10d8df063c7934564aebed847d203671b736ad4a90fcabe18ee14707e70890366bb9ecf04801b1399fe21449a66209f0a9ada7603d5cec07804532399a86075639d3adc9d7d08897b9fb5e963b99b1b0e00620ddccb4057fc498197037823e5cdfb6182d562a0125803df038e43e53b8b0141ce600a2ea796a7bc6511f77befbb91e779e0bff3a01b6507a4a0bda23788eb16cdde7e72e5770d9501fdb5363c5d31300976460aa23cb90aa968a642b6284506adab426459cb86d04df4ad28b20c344a451cbe79c4b0bbc8a44122dc139d41e81b284d23f35c5da1c1d02c1632d0520f849d39969bbb2bfe85601033e2f261f59a75a0e3e59b5bb83abba915c0b398f529f48d1b3bd81ac1a17f99b8846fa8321a19d0c06645c72d230b9849d148851b6ce38f2a46b23a8af93bf14e8b34d7c1e5051596be381849a6dcea0b34a3d118f1005e4880f14f43c2daa53e872dc483a8f36f633cc6461c054bc434ac65ff232f5c86138898d477ec2d825ee37aa83d4a89273c1b5a015840f2ba25ae5f94409a2ab023537a8a924d54ed34f29a8562a3f679f71eb71c162bd0d3aed4a85b2189222875caa9397b32c2144ed4ffbbaa09b5011490eab38509ea833e661eb89eb6c7852fb6c191874d2a9719166f417c074fda13a569f02d9381ca10df18f003fb8c84c29b6b8be792af9cb912679e3e7fb19ab5d556fa4395126616ebedb367fa4f7b96ebbc0cf777747754836dc35cd4a5d8815f4547a9c7b3854d839f444d988c16a30c590d8786a3b1396f639c0fb52885e88c84448742502429454de3697632f427c08988262007ce6e4aa770797c57f87e606bddd4c99f88e689a58eb8759bc49d32cbc77478f2f7480070bbf56660ce25a07f9de3bccc8eb98d0dbe25adb73fed9f468e316aa10e253ded70911ada6862db57831c4eddaa01b1ed41ccf2d5155c5999a156423955ccd6b618e3af828f9495f6c537d4b2a97ac978ddb8d8f8efc2e7bf4dcb08b069b9eb3cc60eaad94a3776684d5a8c646bdbfc0102fb3d9aa1df0535e65015e18a395b296d9f7bc87d34a9c1164e9786ba2bd66baad2482baec7da2074439ff660f510603bb3b51ff72d8b8880e6f1c1afc385f7693b8b86b6dec407f187a0d27133df27d3406a8142fae7dc79f66dc7b1dec89d86e81d4d38b8b76f877dfbcb9794195890974c68daf52ca96b1038b813d442546131183972cc2f6f0a8ee5e090c2e350edf60618db89e9810e67c1be712e0170510e365e7ee7e05140e6d51d233be91b539f3d8b95b63a0d5778a943b34f75ef9289f97a003e22c37fd00a714be58746ee0f433b19a9ad19eaaf0cfd261fa72b1f49989dd83b4812e08ce4d602912ce75b976f7d0b6033b4da796697b9a83cf709baaf8e4c853ecdc3acda523167ff09c19e7174b8c7c51612c7a02e1b9760a4c35c79c2d822cf90e748070a8d2e0ce714a1f291b7400c9b53ae02e9585c51a4d641a9b149a57529dbd6cf5690148e12538a6c0adef1c2fcadb0502ddcf8e0d7713119b0db5be82c292cbeb591313c50490af70cc163d4c31451fbf732fa5c517ec5c1f360449d24acaaa463b4269c4542e57b396d1d37f1b4044324959cf068994e937b41b126633b46d1ab4820350496f3a09ef82e70a55957149069899c2d39cbe18e12b3bc6871394b4a6b1a6b805d1f301143501d268c7dbcf29dc44184775aa602227305f0e27ccf48a76d7e1f660b071d8c9cd5cc91ac48a6e62acf530400c92302a0b53d3c819fb6f618cde9f9ea65556d3c016076780a415018e9e964489408dd29a6686933dadab06dc2da429a39667d3b193103804c9677cd8d4db71c8ab040a45a9592b224f5c7db1f95f05b62ba92c04e0d06fd44bdc82b20d0c3b660a8da4af4e13decc11620ce435091d236ada6dbada8ca9fd46a014543228b5186a16a7c508f30a69aa8aa74e680fe4e5d5961a75e93c0bf22611e46e77bcdd7b0a9ea7785ceac37b1ea644f89204b6992400e6778a60110bb53ff4e447881c703b1b778dda5a284ad595ab967a8e3f3a0c215d4aecbf4c04a4479e97838d3e00a493fe3406863a45cd2ae52ff0d7e4584392ad1cc34c7179490b52b5ff3a97a81f6096005573ecc737208b24d0967d4e53008d9839e33949f09fe156f9af95f4f10b482d314a1f5960174807a130143d8feaaafad1694b1078cdfa5e2ed19e0afe01b35e275788909d0ac86cda8c630222b0e7c1ab720bd7cfd2ccd404ce8e629a5e632603ea5c18f7af14d6021fa5912e66966b361f1451ac5b169d49cba3719642b0586f6dab5a4281b92d264bd14aed2af9272631ce4d4c7657f91d2a16034bb349029c084596d40e670638152f3fd8ac1caea3c83d03bcb76a9468a9300db01ab4055364ca8d944afc3aca3d5d6fde863b2a723f367a113f96d9066ab8569103631e684c7763c9d86c45664e7e0632a341b22b151fed9f9b9b7f721b9ed03a32c5352f8b7c748e00dee1548bcc7cfb03df3510bea546a98e683639f972c08b2f87da90555a0fd55ad53cc5a6da2e0d36ae94317bce291b6003681b9f2d64ef0507c3413517df68078a1c03f23594c0df86fda4888a66de3b5aa89e49cb667aebbde1c603ca3f5631e00e73b21ca448f74d9d969abe25f8dae06cfe829266f9da7dbe508e71eae556462465af2692cd245cd9fba5b3ab43ad11536acf070a53f72cedbf1f61ef77704a8ea39c2506f498187ae7dbdf24031a7917ce24b4242e1bf573459d4db43cecd679017bf5aa8aba71ef343a3961ca2f490d6cd2018cca5527880d2d9b1ca6106b4edc597cb0b4908fb9b37ccae99b8fbed114c9f7c72ea7809a668861ca94c10ff56d7065ac10818e9fdbede3f903db77fc151c4cb22be0de970abfa4e30854be2145cf37f1e0b3fe8acd6f34d166cf5d54561f690f011efe942526f597632e9ac117ee64671169b30a3539fe01419556cdd27eb7a7785b579d34cbff4b1d235fbcf590ddc76956505f78719af004929c8512c72a416f95a417811b76658b45f67600cc981200cae7df7adc3e92fd65ee20491ac3a338cfed5a5c51ad7ff130309f0951f576edc403acf1196788fb0ad3040e65536ac13ec5b0055f4361833601b4738de5b8eeb067e663e33bbfb1754d88df4a49184a8367fd04ab9624cfbb45fd6341436248129362a340e4788b83c5e4daa17543e048fb1c45a0aeacb78232fa60f87aa18f9c43b1610f90f269ae0c64eeb9989281c89947ef536cce1ee7c97ff86cdbebea0628de870718d6f6f00c6fed9608012a554e3068e1d3db9e39800f8044534df53f88d56a9cb5f81a93dbf81a19e832f32a8c0f656cf095780321241fe794c3869ba9bec81e8b048d4b8833e3044697e65e8d1a6779358f1d184b2837d4ffc8fedbc0337080d8a2ffb2860cea7c8c23a99536b75a2f7b99fed6a40b9b755dda54bcf30b6abded0fe3e3701823772d00eb2e368e53157273f3e5fe4612f5f47c300bcc3c4a3fd8fa76a5b038d5a2a6fd7b5e47f476bbf3ccdbdbdcfdb82bd84339152c78704e77ad78ffa0b7f6ea09eee96f2e1af42f989e47c5612831e47b9382dee5586685bd2057d86983df97a665f9b0a48192991e88b81d80f8af9e83cd771e96a891faf321ec2f7d499055623aec2816c3eeea0c5f2d57fa126aa6fa68f0f20355d74e03eab17fcd62fb33e8d64ace0b607f3001983d1f7780894b7b875a33cfb5542856f902d353f4d29000afbe4c03102316aff62306d82d30671a74827b93fd16275f411f32275c0b1a8759994b736caf7245ecef0e0401180852cef09165cff6b5acf5df69c1b071a731ac2fe2e0950ec3f004725c7ce81efb5cfaa464acb1dd7a7e73230ee0b6326d66dd701358d6b7fda2249738679669ef1cbc6cd67f099960c59c25c7855edd7512096a0486b6bed41e4819fb3f28cd2c9872e293ab7db91609a9c5994e8fd09e8118ff3728cdae4c32c22e1a7d1420bfb71fe730791e8810fa924e73348ae3e5d42b168c3878c87b38fd5d066d9322cebe5fd86aec0220c7f4cdbe5f220e56cc688eba8acffbb1add6a2a20191b87fbd605555e5d7ebf60081788d8be5ae4fdf84f1bdd790ed3e123b94703c4690e37df4b730c1bbb87fb810f3438f7b6e3d82f8d7359e78efa73772cc892b386e0742c715065af308a3fff8c47ca699fc75d91b9d7dfa66fa87801e9df4851d889dbd8e25e822597a47da00ed9de1a86fda2d26fe1f0257c49b74cce5fbd9bc8e8e792964617c5447adfb3ec1b78bd3879af008ac104b786724b97c86c965e617107dc00f13c9950c204ff67882da0cf3403c0a496662b18cacfa0d57d2fa9b3b869fc215b6da336cc1b5c3973986afa808ab2dad036050f9f6ef2cd92e322456191d87d486ee149abb2d9a8cc3286a23d6328708b0e266fdec3ccae277f9a2cc9f565192710809780c707755d5df1335638d9c75fcb201532a45c88381c27a3bc657fb20dc220d68b702b641a7412d447ee983b89841586865b60c9bcf4a745f353dd11dd319d634cc0e7261f1b09c1dafae14909ce3614b7f6f8dd0e330b6ee836b990dab0978c501932b0b3c64e4d8579a839b460990511e392abce9a59d8a75acb7aac9a09b08c4b44c0cd2898e4ddd86a72aea8fc75377b99c9a184863a5cf51867939e12d586deb120f9a7b31fbd317ed8d71f91b8889f8afa84c733693f394e2e522b50d0c46aa8738197e0499642e923b3c3e3117dc278cf9da63a0c0c6d6a3de78c98d4a9d4321cc20efbc9e775775ace77611fdda94210d46cc89715e46e3d66151c32b878105f28c52789717b40476d8d64691b506e5a7bd9f13daeab24236ced6f99428581db3fbbbc121d8d1a378e4814e64d94fdb99461e74862785f4ed01897a85b8260e2065fde76773fe975c7745dd4e1eccaf19cd28e672bb291e563deb3656fbc18e7f0c84b6b4be6224052ee8de132ca4bc30414cd799e8ce41e4f77f765bdb5af1104493fb8538e5cd2cd4ba241ec80fbd059908649392c771460c3ef708743a7a7949e8afaae83cb45b7beb22ca665168588e3ae931e002a84477ae24d0dfd4bf520b7a07473dc3669f4dcb6229631cc610ad2cf1913b1a218034cde4fb888f085099efdf1e620a5db64a0c73e0621957b773100046c2a7a6f5e2e8ad8a9ed171ac251180b496027a9f995596993d196320270e317e1afd5e2bda80a75803d9f7c0e88e238343c8ace8cff5084d7fc338b5f5c0ea53dcc7da4861e7ea75322f0fc8afbbd7cc3114246a9c4bc82b25998a1e340da440c9813d707c7d1d39f6a29b05b9cc29e0256cd6b53633662daeb25b5cf5f0f8f3a4f107bb21b58e0ef6922c601d5e1267c65d1841cabd5108c0c1fa150523c802f1972ad4a3a97a9c130450cc39039b8bea591828aecb9d5db1a9bb39042f62a181d72e29a977d5ab29cfc485986f0bbbf74d24ffa3f50850492483ea5b82552200685b76cc0c37fa1e7e9bba90dcb1994140ce851c6c93d0b64eb9894c82819d773bd21889761aeb001fe0dc11349c89d2e88a722fcfdee45db3226b48da62cc691b69cb30d2a70284247d614592179de4d8d2a28bbab4162c211a2ecd1224519d61ae21186a7804ae002c405fcd7d94cc27db36e100d167a9994394dd691bfa06a33db733e75a4a060aa5d8823bbd355e394bb41877459106ca76ed32e2da2b70fc050b167cab6fd7e86b298fc0e39e3f243321da576496566d3032fda6e3aff998bf26e6179d8b48753dd175475db02bffccfea3a72d48db18236a119476d0825a1c875d67161a933e97b42b983fe68f60a6bd9813b34ca21c2824722e13607f8d048889ff5c43d99c64453c580dcfdc7aa96ab32f9e8a5ddc4687e3dd673c0a55cc5a76504f86e9e45dc0070e4daa5d790f0836e8b64969dfb2bd402a59758cfeca5900529ac764778b72412fdc663b8a56a59385ec136667e5a3e29aae6091884e2db3f99c2cb93c15a9328b824705b1f7376116013300fcfb05387bb201c1291011c6d86f41853d556e7bffacaa2b1ad4fc3550d4257f87901a1435fc82a53ab784a5e6f7db125be4c796d8f8b584f8baffdb5ca5f305046ea64908b176e216c054e1f64808248de0f68d1a7e5f5e9341a7f7c42dcba8a058c8a37c09b58eed50350a018a0b04f9b6139278d6d52f48e60491cb5f07e7d8a1d587f71b42fc8bdf680c1e84ed605f77a111747d372554a7cf6e5e0f113b7b10d22117130b8ad3455f242038749155d0f462dbbd67fcbf229040c7689c094169f53e935e7f4808dab0a24bd206b168f2ccdc945b0c40549e75ddcb75e163788953cb166a1beee73e1e5f4aabace38ae7faafc92f193709045b637cacb1e466e76440053ed5bed4a890ac0784ffa4e0fd3494bec8af112684e489f8ee587ab83352b9952077bb897a35d238556dfb77f0019ff40f3bfe8ce95b72f0098e35d1f5457766aaa4cccf969d3e9442e1c45e79f02e15b3a0c0015b9c3da62803da322eda45856f19b7f2fba20690b1fd5a8ee025b45624087ced6614feb80fcbfbf7e64bedbad0227ada704a4e2ab67b59fad642d3a9f6cc6b830d2ea1f05de1b3e1870294f4de79b01ef1e729d7a130e4174a6d2f01878e936445bafe3a89e53be4d7b36a89a9fea471ff66801b5eb993e2dae2fcd7fba27dd42b055cd358b94ee4df5126e330b74897023fa977c4c309270748eabe0e96ab9271619cb20f2ad3eabe048bfd116245db8d5836dbc8714dabbf793bf1aede20cf2f60218dd39d122e734b682c0773104bee02569bd09819e0d694e6bd073bf46a2a06a875ae8f6262c9b5c1684284675cc0ae534c77c36269b1b0069637c0db4208961489640b2f8908eed155212f46edb0646e1a80ab85249af0170502024199f1cd81307d1f6d7577afd4fc06736eb7f840ef919b593d9561e43710ba56dc74eaf97a7294136c4b5578b036f27e870c41d80e662fb5dc32bae25b142aa2a43575c5442cdb5226f2cb82aa960b4be06520c52bad382e0af7cb1f9eea9ba2c2abb582a6f8e8fc936d728ee9118421d73485084689949d9f27960d079b1218012037ffe6d3e968b853853fd33c1c7d0c7c99ecdda6dc8f871b8d38a223e2fd382edd7b729f9b6fcaf7f362e9fcb1c3e7996e9d3c291739efd6ed71ad8b3c5de4a2e0e7f4db373c2582b08b0ad061836e35f21430a484a7fbe3eaa1a9f5519a4ce22291e0ddfb4d7b1562696ecca5366f9a60c6f8cb73e018ca6fa6d7219d9c8cfa2b62c349b7a0e98a56d436974cb395b31da73bf878ab1d55c8dc1f4cc43f53fd33c99deffd1c6e7c3444eb87fb6999d657aaa7bce67175ec5ff7a34efa7e1fe1b12c9c4601a679717b7a7c6cc5cec583915d1d465224a4014d5a42fd7803f3c2eaf318c788187dbf67403e358d22f48f0095c35adc244502274421dfb0b5c14f8f64769aa40eb8404f88173ba6d11d090af3e2af878cf1be9a556b669b0da037bf06f692666f11f450d42db6bf5fee726b4606bddafd44a5a80ee5b88a3790303d834024577500482f97af1e482b1c18058d20e3873c27ca05c72426f85e49533f9b78b69df2671d69c97797fa953dd10974e8bb85601ed8b57eb72cfdfa28f8186cbd84ded913e7af02df87ec0ee400d1e7cdec2194b5d31b5a07233907b38e8b957d884e38b3dcd2a8e06e2bfbde7a8dac98a868d673e804946be66b27b1e0974c098f113d3eb139455e5c63ea7372f17f71d7873b512cdc9297f7ffbaee403c30e4ca3d2ce2b253f598eb98d72a3a33d4b245b007d5c8551bcf7b13e38ed8e3c193a4f7e9b7ceac0227a9799d160e05dbbda87b9f2c95cb102060ea7b2c51b065e490c01cd15f370a108c40927968d63c1fb9cd4c2924a86e9cc7e7eec05d3aea9b2897dcd7f7ddeedab904131b20a3435c9782a648fe1bc8bdac8a54cba06a880e98aa087040e9099460e9c2c9584b8f9ba95779b61f124889a274e5e1982b481fcd2c17549519d2ee384c573cf5354618a695495e21459f677dd3331b89869c677c40d05efe06f63dd745880b7791d586fdc6249b1c162dd07905c538f6ba8c2900b06aec036221e360e3c6e555326551613a84702521171db49086c6f7d0fa196a8062af6488d03d0727b3f58232a50ff1dda4c412dc8238dac687cfcb795238774d05f74095ee79eab4effea914c8285bdda9feb77309a43ebd51d654bc80fc8dbf11069910a0a68b7196c631cbb5eca6fa667c39070134640e624484345970f956fdbd1a3a97d7f79db667905055ed2448ecec4af507132eb52d8b44e0e96cd987a20ae18488b882147274e03701420d00e2ac90bd7a5161660daa4230a7143eaef71038b32a78c249e72e2fd0ebd1dd6200f4833bfeeb252a67a220daafe6d9df2a97a7b56c0ec1ba33f9db62cce57406d3c879d1efd5030edba00598980cc0cae3f1dbecbbc03ea2caf6061ad4f5a030c2331340d090371beaed5c03ce7cf9091a04770951c1115503f16c7bfca3499262be1b94dd7e834af03845640993627434bc5d7c2d8360c2777e751df7308ea01b123117a8b5d4df378b50fdf80e701000fd8a44ef4044cd16d0309db7669dbbc62c1225fe1ae646932db76d0a0031d6595018ca1c0d8261731e1ab511ae7d5971ed812c1e37aea4eb9751a46df5a5038f73aa3a0adb3806e2ff39c883dcaa3e51dbb695bd4812b0e478fc5e10ceb5a2ab10db2d3e19305be0489175922d268f74bb38c0e4446e14fd73581b5f2d21c3c2c35f453c0a9916f376567f92c8ce9d525cde2faa672330c9da6d8145bf2023fe5e9445206659880509b804f9409a9098ba0aa3d335183daf408bee638b91688f3873238d7e75330f52a964f1b8629caf4ce718be0b16c3b6f81bb02977ec6a2304d6ba725d472be80c8d0be614325f09e13431028463f4d289e1a71b1ae5660b96d9e7cae01448074d7690cc9b3c129759639ad71e02b042da0c71feb30e29ca57a5346b7f80e26b5eb528f5a594748095d74a0c697d0910bd9da2563caba40ed10daaaa97a945ad1e487468db796e312ca9a903e18f3e4e370b84a2421ed9dd6929ce0e19696d1416074bec84a2baf668d0782026c514c088816b9714995250a0950cea181121bd1b34488ea0df886b5166d68b02d21ac256c83cfb9e27f10b56ac36d0ac1921de7730a562f23880cc73533c02e22a433c3ccf75c9ab0c606c8543f878b3dd0e8f43109dbdc522758ea891552facc632578ae7e792860a1d18da6cc7c8ec920e8147561d7870a0f831db345a66c80f13e10cc96c636445a44bda7b8f6c1a983d8302bda659df951591cd8f92283bf084cac8dc8b666774d18c7827544c2e69564427df23318cc22325199328468e1468fb8d0de1a3e0b010b2fd53c0053fa40cb7032300922766ce3efabeeed2fbc354d14ebe27cf8a2a71c42b0d3eedbd50e28f6aef360d015b52e66640703f1080c0062e0de48991822a74679832441860d916ff356c132a159a2727dbeed1d967cbb2c311fb5e0b4c7b289c7ade54554385507778515181938b83672d41b316d3b9b668b3be8e85e383f95f1f1f0bf6e772ce4bca8be15fc464b5f13c5806fa8da348d4f63cab6eb1734e3b44115275e6194bcb65e1a79235c83a98b8a7ce1e9c627185103ad28319c6aec66726e70170f179a92f0a33db99991bfa44b53212f84d09197d4e5c7276bd77a72eb1959706855741746e0253a48db1e4f932aab575dc5b862bbad7d80fb27190edbf8b2d03145482c02412cb4f5b76191e309f834401408f9aa6366e0d24fa49f3d1bfbc92e31d80848f483e437c017301f711a4eb14f737ce1219442388e5998d52f3131c1bf72a08c7f7f455ffc29982f07eb00cb9170e39b49f3ed68947b62ee572381938b2695708a4541b9faeb95ffb1129c4cc73fb8a6589c304accbdf2d7ee4d65a5c8e8863fc90bc13556ab797ef02454c221e4d84e1dc1466e591b9a0e09d615f0a802f96d0fb1938b5d0a1cfc08bf615c6d68473d1c0dc3977480a3424659bfd24e244be6885e3d97a342b396cfbc326959f0be2afa464c40f23ad976afbb4820b882661e01552976c12154fa7d40cb97b07163a1d2338ab383fd9f6d468394b35ad963af90469075cab96810b20e4d46d47fbfa6b846b1f0a199b1e09b3f676a8a0a1d8c2ed7baf0b670c1e30e893632944aa692a0b0a8c5d1ac18e4b1b2b5e8c81767a28fb29ae10fcc1e6219ec57c33a7ddc140b399b86860b494d0fb09644b21645765f656993ea8e361a1a8ff3c76fc6c5bfbb12a87563188052bf741f4b181b47f05709621d6c01474a3511c416c8548215bd5421203313ea52807a8ea63256bbc968b00bf03d923040868562c48e07588718493c4959364ca93412f2c8790b3f072a353bebd1021a66a92b9c9f243387fa51f6b4bb55036dd2af7ad948b1a8cae2add5be3a3c5391f656e3de99014b6e4b25ff811ec968ae458bf03224c9d719fea59b7b34d2d5ea08ce44ccb806148f201b94cb1b2d415b2e40666b7a98d4cb1458f105e5a992b79ee2eff5d6025c72ba8a37948db1e5f30225349f9cd8cfa07c81cf4a78d126f22b03c43778570b99d99217fb9fe0923e697c32a74443d19fd776624d08165b4daa85a297ad8c7d372addb2b285ff3da3862ee3d1bef4642fb126fa6d47ec44a2d64d47694650304c5f852605ad1f4a0cac8049383e6d71a45dabf60fbae8c3cec04b84890809863c622b2b742afe41bce005debaed3bd303ef7f056528beeb975fc1a6dfb92ae71507e8ef57f8bf3c108e0264ac89278e07f66c365ca3359d469cb272bc0f2bef7ad833af334a2af87830a60086cbf3bfe17fb7d06ea8daa89c68fda9e2f109d09c05d19387e886c9201561fec1b003667a0009e932b478ccefeaeb8fdecfc29ba6fb6e65e2de7a18df8a3e5360b2c552cd2fec8d768c6462b35dc63260e9850bc171d6c4a10e85c4441310dc7072cb671b39966248b6ee0f8db3ab37fff702297164d41b5d3c82ab24cb42cd966ebed2581e070abfed136b27993a4c05d291b6d97a26eb5246878a305725a6f67ce4960135a130098fec7ee53172b164cfdb016829d2507c14f5a22d59df26ce7c0ceafd4d5a1a93cf5c9951ae0eef487a6409f7fd7948177a4cce249468eff2ddb7318ab94438f5fb1178b26027f3aa7c6016174cd139e49cf592318e56ecd97d651d78f64d4a65ef8ffbb9339024c434fb5087a9aa44a1d34bf995cfd9d1c66c84193bde076719f2b355e969f2844a803e09f152ee98a8e5ad752559cc2dd9a12bbc48b5a1bcfd3ab546e7fb2d90485e9dc720379f2870a5bb23ff0dcc5712836c4742f48301f986082642f74171bfffcfe54184c923559cb01e9bf5b679c152406a2c8ad7fcf6ebf3074aaa8c49095022219dcaab4925c8c89441b82bdd7b1b8c6cdca0ec24200cae2429d750623acdd9469fc900465737125fb9464e58199b4f1f580f7508697b725adbdc4c7db1ecca0754a4197b9d8020db95f9dffa187842c60c8db31957436589dc88cd61ef06b3aade51aea0c8a8f0785da179a09316c7aa3c7d94133f73b6512433bd038ecca8cb5c2f3325090b7077ddb5d52253826441b164f979412a6b7136d226d2c71dbdacf5569384048eac0f69c50d0c33a2e640cb8e5a24676b9978a0ed35e36f59ee2b420ed4c733fd1d8af0093c004ed1d08802e02158f6c3fa9b5a85ebc133a38e11e50adb1ac0c94bfbb27b51ce0cbff2502167845e6e14a4e7ba12c7461de40d075e852c6f598944c874fd2f0d40578809949f12ef8fa1fc0967a478229a852a511349c0b776d2f520cf84808cb234cf026b9506175ceb009b83a7308b9192381b602e66d707be8282f31c9f130cf0bba79e4f4cd270038158674826026d3a1cb5008bed2570e70cab4b67f42e94c3cbab586574c04b01544ad0992d3fc644cdd702bb39f8a246c439ed47c0928a2cdb66d6a67b5a5d666d49237cf306fa50236b33e7824888a8a55a6fdbe243d18c2c5c209418a652f1271fd8d59270a486c011aa51eaa1ca7c34c3bd687521309bd165c73079635d816ba605f992a8f9890e0271aea9363882118a1544b4fe43e9a7230ba9414867ef0eb48b949c02160b39ce9a26068d68643d11e06102a4d560ba46a582a6cbb7aa345a6131c6331c667d98952145cb1c39d7ca06cfc68c764dc053a61840a430663316c01b3acbb7d8c237d4f184e6a2ed6d4e1a08e1591b14e0a4637e97a3054259dc703891d833475694afab24a02af94c80b2b00ddb05459bb6145370286795b0e0689dc45495fab8d8e01659a2b30b745308687b35ad3161785190730078f9db67b1e479d28daa05c410cb87f82d74c743dd56b4e145ccf01fa3985425f508c69491b5242a366f2695d45820f8e86f39d5fbe3649d8caf9b7fc76cb6fb7fcdfe6df23483db6c75aef28e6140003e895f860010000c021140000ff5660883180204d78b280cf25e42840973489f8c680086947d92d2591c84d24b27b07a1042e04a5031f118cef86273d1e0f4f587858cc2899fac440cdb0d284294b92f742528468fcf1c5d0f1ad80438a8da3199e1218272cf57c5f9658784966bc9ea92228292b4e983e189286204143b4e247121d61707841363ea619636078a3939e4f8a13162c98699199d2014a8895ef05d317425218249e0944b21f2d313a3c291c21d8509ae121c1f87e28f55051626183191aa670407d4d565a60829114433203d1961f1e0e3a3ec0f17d6003cc0c0f0a0c0f84263d203461f12131f3d530d5420365c5ca6783e927a909490c4422fc204147101c326cccf0aec018ea5181e32e674c58ec382383988f872e2cb0783e38fd3cf98e242de9620e0d249e535251177372729270e8f56dad3934c7006890926c484e42d090a2c02c92165815035be2c16b898b165c97b325310c6433e2d2a38dc8f0742b5c70de0e7cf77c44f8078537c5b6f028aa473b1a23b31c6c81e15243027281e4020c89070867ecee72a60448f7b21be68cb8747aba8cc81cada8b556abfdec9e6ddb2edec105713ae79cb9ee28c951113f6aea20c599aea3a8a331abd56ac5796c7b791968ba5ce820c5f136069ee77d160907241e5d939191164646b033d688c946461222adc8c886c6358d084a23925af199c139a0c68986d89460abb5d5f3e15a973325529f4ccb4782922a4a96baaacb9992232e74927646468c8cba249b93285a6648629678b0c44595cea6c6cca8471702ea22fee97266f49a19a9502226773cb35101821f1af04bd3c4e8c709345ea02075819cd20116d1ccc70e1f43663e8ecc88ecb0b65299c0def780ee7ebfeaf7ab5e8292e27013b2e3c80450956bdf5c1037377f41d8cf2ed9412a42dcd1e28efe7eb0a1ce166a985624ca29c0b9e9149c1139336f40283d483769276f26090bc2087b012b0b9ff371c5b999bd86720333221fc82ece0a80157c7ead3c3a497f460488c68c88500b3975de48f9ca80375f196fc738015914e9c402b289c687233339253497c8305358c6a551322133ca26917c5232f2180d2023618c1a2520db6124808c02b28b05b624e49514430c4a4b56f0a430c19c2132264086e607d9c33c4146dd3053904b1f8c288c13d411322fa35c624200a28c2869aa81e5c61024d80ba0224d23d128a2935d19279459e4623c808c49529931328da0ac8a0c36e2c846983c60d99cc9a2f9457221334ea8a451cb180199d13866fc64dc9610c6ad871599546231f28c56a6430628bca074e5842d5fbc1ccdb011c37824cb204d212e78d488725ac10806a0d9e501b299464e1965c030649c35708c0ea040b6c9a49039831329227288149026b33348c898669c1e344026bdc826931032d96536c92f36c628a34b5664e432ca2750462d1b1a6d642f7a186541948c625a5b40c8260b2f60f1a1c98f518771c640804cee70644c9243f0a30890315582f0802929023302c9211b5434397232f3342231d27365dc2b590d3e9e860c635c182d905541fa41693c3386b23063969125bb318a29804c4ad132566000321a70f8a13202311a6799ad0592f1efbdf7ed0e482df2f3ed26e997684836c4cab8c2c80095ccd3c16553d6c278436201325909f40330a49a809490030b47488a82c4806a642b8c8c20e420939e8c0aa84000322733320b983107d408009908495a4c290196f535a148fb7d5628521ae3e1e5febe6833b8219d18a82372aa05b5cb272c854d12767beddadbc4ea6da8571bb7af7118b074b5d1a1de711cc7e110afa74b7b956bfb1295ceefaca63e938486334171e2a943fe8539d582fafb651de185da823af6b9bf21e642ea8373ea88acc51d50b4dcebe830738f016d3bf59924b850cc186c34d627f5992158515e77bee80bebabb5e699afdc4dcce9ae7dc6fa869a87fbad06d19fcb69cddda03b5f9b47f3701ca7613ddf7bafe649c19a00f8e0a7ebce7aaac5494b501632598eb4bc766c08888ad82fefff8de4b4fd9b824a5fb5a6e372ce9c4b07cb2e678e9b593fe5a86ac7fad4348dc39a166a9a96431deef16b5a285a4a358d6ae2a641f377d0355a35fa77c7c8db07ef589fe29c99c6e873c6fa36e7a418533234d4b8cf61acfeb44256584fd0d7366c92d07e8a3bb663e2ecfbf936c17a4d9c9dde5aebd7ef7b2f1471d5e88b36de8b96bece0cc5b9a94d15aa220ec51dd056ba7deebd7ba8771cc77139dc3e1bd627bd938bfddc04d9af3ff687863f79e2a7e1dc7be7df3eda762f9d3b60e726b7b51339dc3e33c41429501512bab7ef57bd4861fd827deed77893e9fb572e4b717628a2b83dbf2a1429acef1771df3e93c4dc3e3bb67d6c6b4e500402274c31149992a327058b8568a95ba2a6175796a49d73ce39e79c737a1a9c9483dbeb4f7d2bbe34e350e2c8abababf62e67578a7ac7e9bc4dd45ebfe3e4a4d5aa6ab84dd904713bf114f55ceab0c454abf6e74b718645aee090516bad28708d05af06b72a7865aec840e1ca8b5e4197b3a7304f5b4cb0c9818003c49ae380d9d3925ebb9c3d19759f19df01e49bda41038e990a9e920ca0a7d8f7c2530b1f3f5011e34589f284ac4041f99e20e530e29d09f219a921068397e5c63765c637325971e1b960458527c3986f4b974fe88a27a48948d257e3480d423c1b3dbc2232b4c2b0d02a53c3838ae175a9d2f3d95065450e65bc16529f162c9f0a293a9a783a24f1be107d41377c5c66e011e41941c14b8184cf0a1511be28543e689931e3158131d2f295e0e41139d1a2240622de0f3800d1f15d79e17391c2989f27a717539c427081468530de0a504caa1c3d0172f49d50c443928397038faf4a8e8f8c0daf04133c16a6c83e0fa6bcbaa4f16ee8e11b810bcf532b0dd3d762c9920e3d86c8d8102386272bcca0e1c100c38b92c2d39292e2811119cf8c97243c7c4ba2bc98783f90f418f2cd7c7c3d42de8d16bc17277c4e237c334481794ba2b0688df1e1837d1921cb97295e15a5d6d40ead33453a7e784368f864b8f0e100d4f25242cb87261fa026103c9e33df0e539f095b6054c42c79478cbc1e664c807c4d762ce1f056a80046060ca61816a616df8d1f92c47839a2be282b9f17282a90b8184913c49baac1f302c387e306d28cd60fe3970214175f0b5054781e8cf19c7469f570e50bc273d313cf491e0d241f0f221f3f58e8100187f7828d1e66045d284e8e0b4514b78a7c06d51135c4b71ee912805a9b46abb56368ad16acb569b45a1bd66ab5768cc2be45610fd6f05064b54074feacc7ac1a0b6e9fedb37d2caec1a5a84f5997b328a1ae022a7f872cbe9ff3fdfc47a783bee7365dfbeefcfb3e0ada31df32b7697affe62c1667b1f87e978e8ad7b058cff98aff6ab3585f82d6a89eb356abbdbd38572bd687e2aca9596dbbfdf397b42614f96585e20852d4d4f0b77cffca727f5fb5434b715c3a83ae73a1b87dae803e0ef5a69101e27cfb70ce7fc338e71bc639df310ae30fae549b83c0abed81db67fb6c9fed739f7451d10dd0e58c0b935c6badf5ed77d0e70e356df57ab5b168fbd43c5cddabd55ead4ad4cdbd4ba7dbaad5eaf7d6fb35b70a39a87df525a8ca2576d07534e87e7f094a010545f87ecdad42ad0a75785fa55a8522ef75c40cb10e75fdcea57966081c8a3704c330767700e9977ee91ffdd2310dd39afe069aafbd75eb376bebd6d674be340fc86b2896aa5dad99d6a7b43ea52f7b095aeb055274fc9d9d9fe7e73c3feb682ffbe472b6f56b9f367fde5edc504b9d015dcea06e4401e5a81854969c517c7e71075c65fa9affaae6ed36a1434371725a15d668d5d65a6b4a29ada9a9a135afaa59a9e8d65d88e2768e823c0301d230fdd2300d031271068ae1f95201c562986b97e62a55d67abeb4d63c9a47f3681e204e371f3a792356212b5df5b769a9c6f8374c878312681dbf146d4741c5597fcb8dde802e675aa4a0626c89ea5ddd784b532f4097b32d3bb4cb5be1fd2a1575c4fcf91c6a4af9d3cbfadbfafc9ed7b3f7f83f5df39e4bd2d0829a7007ec3cb4228adb3117a2b8fd769f4391c2542eb0dfce849842a70bed735c9d38d4997f7f0b33e8ba568538bd457234961b6c6a72afbc544940456cee7f296f00f29a73ced5a583a5ceb9d69b75a85355596992c87ff17baf0a454ab5ab699a168a3b57bb5acdf969d239b9cf4c2689f95c6eba943ef79bf67703da679a97fa76efcbcb71e2bddcfd0de68e3eeaba17f106d5027a7f86e2a5f40b8558a108f639676672f3d2c6b1382a5447d0234947d09a9676dfe6d2fbd4c9e60b8fc41d3db312c771dcab77b5d69a9566082d33e97797a82aee3b7924eabea5d406603da24214bc42dc35f14775aaa465edb3121502416ba994a62336a04e23ae7c924f5a73d7ebdbfecac529cefe0d4271473e3951a76e3f2b65a5bc94956a055756947b1aeba27ef93878ce3975f077d0adbc967b4aa7cb6adb6b34d6ad7d3c279edc4d9754bf7c2cb55cd990c3f6317e6a1fd3abc29852acba3533d325da4dd32f2dc571596a01559220a7311a738ac164c2483061db516692976cd02f8d6a580ddd94524a29a59422acadb4a3a07d92a0f3699f22985dae249d134d3746680c50bf3f1b13ebf7b9312aeee34ed336069cd3c7fa722ff16313770b75f009ee6fc89f0211c4bf691d9c408ac87fabbe2edb410adedc412901fc7a6e0dcc2d1475b819991e1d3ff76482bacabd88e736819fd33aced2764c458880f68ea504a40cb7bfdb73ac13a60ee5ac9c9344a6bdee0ca4b64d708fc30a4ecc4c7b7702d3dee10bccce7da741c7e1b94f4c152a3a1eeadc09fc38b436b888bb0e39209da473baac942116d1d91ce158e6e460f0364a38fd50cad0025b6bad683a49c3f4e8723655d4bb9c4de5e84f292d51e96673c4e94b16200882a01429556a35b489c245dca776518a317fbaa33ba59362e9249d8131d2e50c4c8f19989ed9148d1998335a6bad35a9f52a18e0aac11215e7ec9276639073785fe7d75ce7423945ac7b76dd281c0702200513d56bba9c8159ea94fae054b5a422f2dcf6056c98b6a9fbf6f8020c6a703f7f775ddb634e7e766ddbf69ce26ca14784cf503f7e9a7db93193c2f2ea79292f65265989a8e35ee5c28965cf39e3218e4768fa9c75d19f7be2c75d88b5edda08e1f5efc6699b215e2d19290d64606b4076edf16f5352955629555d2f39665e6e502084e3df4c688fbfbb745255bd5457e96afd9a628a28fa964bd412f48a9a8e16eee86e2b974ed2fbd6447e1ded338a7c678abeb92cd6dd86aeda242f65259c3fe737217bcef9ed6b2e5177ad5f2e45bfae1ddd379a629bb34c273ba9e9dcbaabbe53b94cc8ae7afd7273c0da5785b653a9de84ecaa50f59beab757859fa297a073bbb8143dbb76c08e29a53645376999a11f1a403fdaddb16b6d1deaf92fb6da8ffd1f155db761db6747687303a72fb7cf0d439b0fa13e2db5e1bc1a46716e15aa6f6dd5ae0bdb50c4dd0c612bcf0c6183e80d8a537ffed8f8e0b4a7a82508a5c6d3810f4e7f80b0ade1f44323d47886a12223498e982cd9d4c0ebd0101fe2435cc7fdb97575a92ed5a61e9c7b2088bfc1b199216b3bd683730f04f137383af8ecdc0341fc0dcef6d93186f811f77ea8880f6d1f3ef4d3453a344487ba6e08e440be7d9c7e1cf519a3cf307fd7513df70c3dce69d0df4d3d436dc30383dd6607d7c9af75b3070e73888a28a222b624f3888ae8eed7af46aa919ae476f36dcff34bd46de6089a423348888ac0538886ac6dcf414d93c6c6068e5f7611dcc16717c10ee2b52ece2e6a1e1debdb6781cda04a458833a8cfb27cd0eb83a0384ebdfecc51e50c4b967901cf0c21ea97a68106f680897a06d51ebd6e45029261a8848c19345257b3010a0203170000280c0a0604633910a5209a6eea0114000a6fa43a644020a1cbe2300aa22006621006811806011806011000401806210444ef050076f6bcde1ab1a698bdd6f28294d8a1cd98d860ac9fa2cc794631b4df3e536b1a811f7b93ec8a81df3cbacd87cb18140b77f2fdfcbbd04fe416226186df23d0afea4bea4a196c2fd03a06809a055ef677b7d259c262a714f810229dc0dde4a891391c1d3d6171dd69e1a28118fbd73ea7611095465c751dc06645a66dc5e2835dc6726b14ad7e6bab613ba7ea5d29989e88ad296222ca381fe9ad86fd62d26e0c921e14701e75e76b234b53110ba03d86afbd6680e776cdf7a6b40ce3fbab43ed043bde65324b953fb27506593b82e6110cfca8170410ce2b9373529055fa388e7bcc00f7a86530567de6ab0b6ff30aed9dc2b3356d64bb0c6114917d22122339b8b0ccb4aa25626505f972b015afcd2bf12bd441ec16e6c58d1ca443ba720dd711c711b286644e2b1e05610cf65b082862cd9ebcbceb323c13c03d2e382a1425e4afc32a649916e7eb449851d2a1c3d7e4755021b6bb1e54c51717fb6b7065a5b3b5215d7a7d698e688e835b8009221311fccc01132f966f7f551c8ddb35a8d0cb8bacf7a4b73b5af3750a3aa6bbd4044d596a1eaadb8acf359be3f28c2d81d94aa69301cc95152c053c4c91fba5ded712f0af1bbe6b47797f319ae87d877b020e259022bb7f75cafdcfb71c3957c8a3dbb5e0fd7ad059d55d4801339d02e22993054c972605c50afbdda70053ffa5e909e77809e27e2a66cf601aaa75c70843b6e045e8585de3ee2c5c790574c54e0db22a48310ccd94b49cc4b8f9ab75270302c0cc4aed9f754a41828f88e676fd4c65345d3c6a38cb1b1655174d178214e00faf2a20ac6116c544ca60e018d5574554cce0d6cefe82e418c21b9dbfd4bd54d972dcd6e9e884e0851df1e55d9c0936f20d5b8b13097fa72d2b20a028ec851bfc07d028f1b7ba4d93dbd71a1e8bbd385c6ebb0a925b44051799f8e64aa42dff32b89c641b5ad418aff2c76e54452e4030784128e575ab5d5eb5ab4db4e84db04bf101c3fbaa4926eba16d81d3cb11e92d03cf77fd56b17dfd5143bf32ae2f4397999535f6816dde48dc56e0f6a6ec3014be1fc579c3b2dba7985da80a4380fcecbf6a10cece87cd4f848dfce797482640056ccb208834aa9a4849c281d7fd67f7103e923f30d9b19f2025c281477b12390a7f800eae9f7b0c634723bcd5261cf54383119f7dba5ea61746b94125dba2838850e3b0d37fa727241ad290fb8f4f9e32fe5f027490103f8ca24a3290d9aef53dbf128b4b80ecbaf291e0217b5e0f7410b9107d59624a60590d7b972266b72cfd2b1ae2014978261c32b78e784410049313fb9e4e332dac79f62689fb8b7ebb1ec8a8755f3377a9d91b7ee7a64e04d56a9796230b1162bfc6f28cccd8080e697ea81b4d3c17feca30c9bcdfc74f9f65d71f9639a88b29a5a0e21cd749e395c0ffb351197da6b5d76984fbf214ba4c48627ed8d80c0e81a5a42c5c5451575d8b4d1e876ed3880542ceb869afb71c949e385dc55000fe2e648258709ca41c67fb067f66e5ef136113ae8bae2a12d7aa95471bddfe3229758b939b62cb0ba4a4aa84a70a24d2150e1e3f17a4de89d9b479c85f270ea38c6338d81cbb3d33bbd687cad2afdb5a4b34a9fd61ba53c970af0cc977ffbc8ffe0b8c2dde8eb52d18fbb30aac6e21aaa6f6decb984399059a4b96ce305c382fe14e77c810f5f47226049b874edc7ac4d794e9c65e709af7c7cdf5d4e996acef9ff1497792f98cbf0f9d17aaf172c866c8cd00be14bef492a91ccf09a32868e14421b1ee695149c4db294e69c4521ac14db3d72ed943e1745799768e29752d33ae046a10e872a00ff4712f49552f4d3c10035d1721a1d4b6c066480cffe31a9467ea0f68328f1d77dbefc986815326c15aa2e1bf584e00e7915c0a235d5cf5988f33c77064141e4efc6ffd110d18e2592d8bf562eed1db15a42d02994a369548d19b60d506aefbed16059082f7aa0233f30aa02f5afcea0d0a870e10ccc64f7621fc105b487321dedf8e3a30f97add612ddcfa4b6d32c2af658b929f04059dc283cfd7c40aa0668d340b1fe8b455974a9de48c2090356d78374615605ce5909c2ea472cf5c336013cb58a102cc4463a05085960281daefd633a100a55fbfff4ed76016dc5fab64be227c4642eb4a61280d9e5053ac0b97151141cef7692fc6c4665b19f585e35a1e6383e7f3653df3cf14c0257d0312c849052330682dd3ab2259bb8fd27544ff0142c5b3e1d52600b5205e0710711be267d83b35945bc0e127b0d4d767cba0e94ee7376ef4626d178567e941caee3145c9ecf07558b5d43af2865310ebfad746aa96bf502dbb2467747442eb7bef6828a58f52cc74104ce869ea9abd8c2f3f2eb1820580a2f7f89a3c66ebb4d96e3dac6393f7fdef15e9de3794e10c355630081f2213aa7c14af63c21d7b2954329b546ace0cd438ffdfbc685b4a14682e227af8566aa352a001ed1e7a82f2c20fac9f8cdcce15f7d0008fd1ccafc3ad65dae5e0b0318213a0909a30ccc50b3c9d8935422143c054630f81f16f0dd163ff53a9ae8522ddb679b4349b8cc9d561cc3abcdd3d730cb34a3341cfb99ce100170eb170e02e5ec724f80d445b67e9bfe438527b987cc6f3dd72084e19e4156517f4c400546ba32cd5e59a1ee7dd31f7c3f6ded704cbb2cbb56d0334bc0fabe33223e6fb70f68c4d0b254be2fea51174f891f6d79d850f4450da97182b62a09a376243b830264ab8b1bc06770e3fb5a9641bb4f7c352f3d8c0a9d8fa575f7a7a0f70afb5901cf197eff191b64e1e02c1f5707e8c1d58d78d12afe51a7dff10d052067a11f4fa6e3cb8f402c479f6bdcdcc47b453bcbf1d9d221361b33d89493aad049248562dd97796ce8a40f406c9874f18f96f9ca604ab61f20f77611af9956f0e95a564202732c52f12c6b443e44472b3b5be58f892e7b0249478ddbac84165bf021bbdc1d16623515d0096173091104ae511b3c31f93e4e654fb5750176901a62ae1bc854b88a1d99b47debf4f3c0f8ae2eb8365b08603499cab214731631232d97f35616cb5922e97b5839f0b983cc9c4c1d8afe1c53c728c34186dc1fced42d94d08476443a979b0f71fa20c1ccfa3fb0c265b6919c36f9e83128ba8ba070856c2307a156d56015dff63811adcdb9b538442c99fae15988ff33a252a82ea3d11a9339972b2351208be7b614c3eb216ba36b7fba82c52c12b589cdabbf88eca975364394dca808e4ecfa484ad1897bd600b20d9241554bec72daa81106cdd1db053e3b3f38803c06823fd9dd0789b20b9f1cee8dd69a9af4e13ea218767f10a1d976353b5161f8c17933cd7cc1a2224589b98b510c8599c90c2ce3938184bee62ef48faf8e53a472e589c676f25cbe0f7882b454df2be88c119d07cb8935c69803cf84b3dad80046160c468e67999a07267c1dab9b7616802ae3146150a5ecf5e802980fa472a8319bb591b448e068d530c463ec08723bdbd7846e0d76974e76df6f6116205643d1432061c3901d6c9b879319c7741353ac3d0a3433ecc28eb1ce60108c4f518d6f49a859cf1e68d89133884a3dbec2f1b86bedfd01f34b1092788baa0cb46253457220544f7e0607c4fadcdc31c016632a495d288c86900c229bbf3d4049475d852eed77bef89ea80e4e263573108a03a900bf826c8e94fd102e48a9cb66b427cd8f49ff6aa2742cd708ea0677ba05e00243cd821151c61cc4c987ca406439d7fcd9d8e39dc1a9295eb7863f33d24bc130e4433e53244087367caafa4b6104bb6f98ec24e3c40763a8f1234aafa2a7e5584eb4246fd289e3ebe9e65c832c64c1422ebddf7b0992a548d289067916bdb36242f8cf0f19ea2a46260f5ec6200f7eb097d8de953adda22754e8aed724372d48f86d5e960e89489f07126161892889c3fa990ac0d94778c48d14aedb898b387d792412dc2b68e853832661a43e7264c56e9f7477bc1e7e9b93050ec1c423527885023b0e422dcd8d9f2b276008dfbb980d0999a43041642c04cf6f779bb57d7d7158ca10f417b1119994ee8d133512623a1304015c9a141475b83f273f0b150e8bb0ad6c35d1fecdc160ae0b71bfeb295c36926f6c0e599320fe4c2fab06d79f710e3be118876b88dc15b21f279ed33c71e11b89613cf0387b78da1a25a057fed8526ab09ebc465ecf28ab18c789a6746c004d3ec3c0a3e36cf436f162c92a55c2f98c42ce67ff4ee36c15a63ed16bc91880428f0f3d9860ec064ab80c8836db345a83174c0c44711cce0e34a788de84b7b0d71fbc1dfb7ce13f8d4f0340de9a2ccb4448a359bb9a16f7c08daf5158ff558dfc504da5d47bac81c932f04db8b79393fb5cc371c74591531244c4833af71e64f286d9f2766f0790624e5274a3dd1ef4e780b411905da1a2101d3e915879f75dd227399636996b25205a123ec20b2189552502f236b2f0b5e105ea3ecadc8d66200cfc5b65671cda49800df883f01ae246ed6abfe9927b30bfaf9cd284bdf4b3fc1d2430c4a0e597d198805a198d7b327c1dd73ac994aa2d0c0ae1c2dc548aac29ca0ce6e1b7040527c921b72ff6d9263441e29180e7eac8b592df498ba78c3ccce6c5163f2bbad0b16d400e49c3fda8a5c7415cb7be2a1e9330cf4f462a7dc7ff40f81ddd8b25a200ca39b666d1c3b922b95d67b082a025cb8d2fc646cd3cba86ca41814814fafa5a6538b8edb1089f3e36e5bc20ac0c74b0fb0a4f95b4900948c8ce1a21105fdf8bdbe9cfe7fce13f522a215f685144827d81bdff9e3059bbfd45b58d9155c60e83c1d26ff684f0f5ed4c016256ec682e9e30e4bfcf98de6a9462b6e75cea60b06f4c78914596f11af00a850244804b9d19bbc57ea49781ac6b06bb90d7ddd6b5e862f18df1da43de390d41fb79978095be1e376aacaec808470b678065f17b64d84c59165d82674b57004197e27b89bd85c48b43b400f81bc0e7b8f303aba7fb8d391af8b6f3522638d6025fc12856052c8fe3ac7642203683cd96a2fe1fd108bd7c52f413f972f8d98a579b2912e79e686eab222a40dfa75d920dab3dd593e8b245029080d057d7d8d52443c307b1aa26855d2d7237b8344bec6667b074d51c6567207b2f88589354be540cae607f897b653213cbfcbe8a4f7176a2373b492cd20dc4d717da111a437ecb9db6bff57c543db334456f6171faac7d09a8d4577330003ba6c3c6cf2ae587e386c238af3f2ff05abb23cde317858a68123f7e662089780b8248042ff558ef9fb6e8b7cf42d5835c68fd13da52b73392a6d967ecf0d5e34ef165e21e4e5bddcd4e7d6db35f2a82555b3438a43a6be6283f3c8411afec2e3851c94bbd30e441944e9c2fb4eb30175ff2976f21214bb5680cc1db9d76befa8ae1879df0a30df2123d8b5a2851dd1ddaa53b5d80a92b91ce01ede192b3e8bf0f0178459059f286156143138e19ed1049490ddf20cc70b78eb3b4b776118a85455f31d9be7f9698abd469e7416ab8a790638bbf0e7733a5dba6cf571b6519ba62cb59eee56486b181af093fbf4b63562c0616345fee7068139410802f35bda24f6085e03d828a33c173acd644e51457744d2527f22f462614b3d9e1f71e31ab94a44880445b6de925a2ae4eaf04da5cf23ebe85264854248e3af040a453f00dfcd56cc2f25a3fff4f8f064d2ba4c3c0a861c2345d16454138b4d0c9a246d52e91b6dd21dad2418a228f693b61054a497308e986ad4a8bd2142422a4647c4252e7a6289d2c3ca789f5bc7d020998d09d265fe13b758cf493765b3f5dcee6a0673152edd6c85a894500a23b87b406763b51226a31870525b20f4f93ef03eb7b011d8db27c0517f94f2c1f5bed695f8cc58e4ec0c8bd9c2c5063bdaf6ccb32eaea8cd961d5b917f0313fd85557cc0d81a56aebd14c9081e2bbdde13ee80949f420ee34b24b81ac5bbe519982e88d2e9b99babae503d0901e1cf3e7a8ab890b0bc8965fdde6e6e9e61f243f06db23703e8976220d4736df92300ad4b6b32c16a26fb3090d4e5efc3d2cb2b06466312ea3018c8337a6ee4a3df7d0c753521fa7f475694df7a0d833795a45b94b942945b339168bc8859a2af27f482ee2480bd046f9e9d4a98620224dc50b14b081596ea23d5fcecae74f29bf70df259e848046d3cfcde99634870053d4542a7b7c245b4a80727a2b29d8025b074eb59842e4ba82db3ae72723590b306407a1b84249686d1b9e51236daa413429718c4a6457b5044fccb0e8a037e7a079c1adc8cf1f3ecdf310c9f7729936b2e9324c745159ff56d547f08a77dcd80c77f7b110b6fe99b3394b9373ae622a692f919beef581163292842528ee03fe6e4d8b137fc264792f7903a9624cb2fc8ac45f4d52a28a07322581451229149acd1c580ee592f6cca5945dc889c98609e3c23b0ae1101a73ee2a5b003995ae607b0442876fc4b43914934c61540778032006923e4696c616cf87f8b3bc15186b2c5f37137305d91e396d4dcb602d0cff05f86b0402a02c1bd92029c1d884e13069d42e44bde512535dc46bd218f76431b21e3e3c20f6db90a1206f9d2686c3a1cb0e1e024f68224d2f92164c33975440d66c7c721b7b89fb9d587a203d83b15a43ffe125e6575419369a635c68a6ca17635262473ed002939a63c07e2dd0c944afa082d0982f97c756e4dfb9c43841b2fea04a5699d38eeb7d463863a401d8c25e44ffeef74853de8a6ce8da5f03fb85832ca8f412637ce8894069eed36d21aa699501507735bda3538f55d81b447b1b4f20eef00b40c892b9cca7dfb01ff3789fbdaed916bde36e73d558b9d2b1b042900b6b57e07395d97008c0961c243aff0c305d81ee91dba4a738c87cb44443a2908029be1e1d4850c90b89f74b2d905c866f672df498084884af07d16e18b10f7c5fa8f7d4daec1a1acdb550708b790e7188456eb5bc063ca721f2cb38fcf24e6e723c802a9c494f24c2b9a1d120b827773dc3b1954f7ebfa1c77fda26135ed997d6b0e301c3fe40b4244207ae792079a5c85e4276e12453538f056a4e46f1f676d3841239c5b742c0b3b053fbe7d9ff238739c86d735aa69a412f318146d0c686d3ffb0971dbbe0da44238c40a39d70ad2dd20a47c2a8efe43be2eb87f4c296d138579841ced4bd9294e0bfe47bf0bc86b3a690442698b8ee1f8d0a1e72941d17ade2a193e710a1af7583f8a772d12c8440efffcc3065a4681003e8adddca26d4186e91fb429edb968dc231224eaf355501e6eaa783d7dd4d01429c5b295a249acbc8543f1bf5d27731d0713d9a9029471036acd92d971fedbae7fa8b9c995b207578f7f665062a576c17d3111e4e9ec759c6aa1a9be52b217e1b3e92c6cc8ef6b2ef4b6e235e58544a3c92a55ab2a3a9f244ef926c7394453cfd9077399f885c7f5f9b132d147786e032a878598bddbf3ceacadb0455d016089063da30dbf8fc00b76c12bf943013279954cd705691067dab2bad94c20544cf7ac3b10947330e8101d9fdb3f98df6afde8104d60e2d9db0e331524c4fa40849fb87a43c9b9059c4d7d4fe03e0f51a6401843b4b8a99b3b1859e56826eef759085074836024d3fece4fe3e4302dd9b84889f42bf182f4ba77d9b8e808d13c33a5ecc8ab6904520bb6733ae848bd2284af1f157ed5a351a7218d7d9ef71c76411ae551861489bd06ed60e8ac9469dda50a686253fd4054910b191097fd80c27858b01ead1bced12dcd816cee1cfd975b19f6625902a52c9968621178dff1f44f64bf33df8832ab2088d3d910684eeb180e6ebe822d79d097b563a5003554ddfdfd868075171956b325d802de2ac3a2412a6ba82b266f71044f5c40ad6f0a818903fce81b1a0e507cd75af19e09f904884a8677a80f358ee7bd33bda29baa12ba8b2610516ef633c44636a4a0ca0bf867d5be90c062fc841a7c32900af838c23c0e3d8e331d5a5150449d3541ee862a874fbf5ab6b786bcfa4307e2ec29ad7f366081ab70b3b09389e32748c23c9a312742b871d7b0b1bab8fa1b3a012b45f94b4b924322095879c82ff937bdaf2941c37357074ced6aea44799fdf7863fe2f5dfdc9c2f28a9f2c05de6e1b7c7b063074aa82a0e2dbff4b29d9c37b6b595e7157c44069173c30481f36e4f552e2b8a492afb7bd58712bf4efdbe73021a33f5901ab18a4500d2c806bb2a040efae58449aa71c497f24aeff88627ea86978026aa198a7b191a06992c8b05fec19e256bf59000ad5ab8cc3516a4716495941a24fe7ddf11365b2eed62a5922178e63b3ac250d7c5b975251cf702e6e4c075846b4eb85fb972254b3c45771236512ab4ffd7171beee13e97091d8c27659c97e178ca3e3b92c37e10dff37de782b067b0ebea21ff84b7e6eb7dcd2f2744fc8d700e1d09b0c79d82de6ce5aad6c3c0a6970004af40c90600119a38d1355e9a04d21081c916ca572d0726ae8e2d87e56608835969d8405642a5f258622c9a90a3b70a7f1a1f39f670d1a0bde7aa90216a30c7903d2a0f25d03edec1651628dfc9ee07bc1ba116b0e251af8296cb42cc4c6b25a640bb89183527c6ca973ce8a6f4a71f7fdab4fade4a9a402c1f5aab869a32b10a706d394c2170fc8e62262faf50742247667b0f334a5cf6daaa914d95fc50648e12bddc81244bc1eef85be6b4eb2dc372fd27d057d6990a99e8065660af151bd1a5b450bd66f60001a586eda04962b4a004c98183a2cc79b870d8c65f81ab3493b49f4e6a2e2242f50d820b4f5d0ef842483c0b92533917257b5e66efaeec05e28ec4174b3522c97db9e8933fcda211e1ccbefef5daeda86f1517c5137c7012c0673f54f6425f6ebf40a7f7f57f0c19b2df3b678d40abde6348eb4377521592f19b61a6ae4bf731611180608eb3f13c4d17dc689a538dd373b0a3f3c93c7343a8a35f170e73e350e33ba9d4d1e4b9cc38a0174cc2ecb07c5ee397b1e7724d994b1f72af460f1e7e90893ffa7feaf63b3aa2c263917144fe03ac6601dcf7158a1ba9066ad08acdc5f02588e865fc95e79a84326a05029cd40cf22f6987daa8bcb3bbd32ce0ed65cc6cca8c3fd4ab509ad8f1839860e462e297b850324917bc14b25a9c6c6ae1a4bf1a4cd2c6e662bc419f29accde6d0b4ef61a74238aa4f0777fe51eede0a8001c60eb7cdca21cd2e07ceeb0e69d8f4c78db5f28cf2540f49116be40bbcc7acf4d27e33c8a40e1eefd6252c10efb84f85bb0c3e843470c3f2672d6dc921b24883c6ab4a7d155d4f85ae849833e1da9addf2669b5a663d09b5611e7ea508809f08e69197b2e200a820e31a5ec9fb7dacd37001780f046e10e583992d00e2479c5239a0cec7ff04d8e6814183d3e44e82c44059899d33b0b0a79877d8b1c3b4d65a0236d9443a6a54a2e178c33c40f5ba42af020250dff35b0fbde46f370d6dc12d5b3d4238c156cc7a47f7870157888d587281fb8ae7463da61df22cc4941ad05f6f0020f33294934e03a5e0a08c5e1384bff0ed9456c01573d5b37ad089b591dd2717c82857555c588b5c290756a415ab59635bc31e75125bca54cbbffef48c82753a56cd02e5eceb8b82b18f9d17304f790c2f19bad57aa61d28823aa2f4bb79471a8341b813d68ed7f2f66ee4da283bf1cbe2195a74404b15db83f1a34b7fdf31527c214a682a03ce2d22388d9c7cf5cf8c38babd81b3403f398a7a5789ef2983baa0f257464f47f4b55b35d44f5813c6cbe83422ebfec8139c033e57eda4186b28e59450b7429118cfae03422df8b408099c200f5cbd857caa2dcc8f122253f8d345119cf3164ad30a518ea77b30d628519f74dc2b1bd9b65411583b065b5a5cfa3d590493cecc85aca413d5352fb587b741802c0da73caf0f088b5816155ad0b644267f6e222c124b7dc3fc48fa7434885661f14bab507d8fb2eea4ffd7ff600bba62dbb20d8d13a2b3fbd883a6d57538205d87b9254a23089cf091ca822ea9d9d1cbccd7b8c017a0958b07eb7fbf771f472e1084fea01ff5cf4c6a541aa99fe82e5eeed94a78ecfc3ada368bd134ab2c55ba845cb02d15c666c65c075633d95b3cd44b01f05bf39818e150a9afc294e606b82d0b91844ce8b752d3c85287669e50e4430a79f5aefc9f2333ca0d036e334cb7765c03091a50042f5c6bb8df479cd52201048895233837d6e9a3ba8df650d199ea64eb8372889e938db2109225144f64388e7ad03db63cffe91204e5a077f314178d25420503407412422415d19e9268a4298570db6c2180f5b20ceec312e021f7ab0f920cf1b70b7e732b4be730018845088c7d333da45b2243119e56b2dcad369bff713a1ee9e2e24dcf1bf9bd061b75c47be430136a323421cf0fb757de81b5b2033aa1ddcc655502c0f3e8a63aa15ef50ccb9c66d80901e582bd22262a29715b76a195c6c31606c9f412f2d2db93bb759d63cb09c01b9e8c5f1c385dccbe558365bd648f13424f86508a2676d78155964bea1ab7a4799a46c66aabc2517579c4c86382fcaced225a15d0eb34611cc79a7db55b8c71cdbbe8d33833c886091ee3d77ba3fdff05c65a0ac3670e8ad556c2fdcf97dccf5866198c52f8dea88daeb4157ed6677e16c87628c4351301360d90f4b688b96da891c18b0bb8b0db0fb3ad819cf3ab6ff57078c0d6600267525831bc633fe345aa8b3b9413a25c927e0300aa4e64a64f66298898f627f364ab4efcc6853936e44fb12d401e2427a73e3681c04da51b97337687230680f63c7294c78a09b9144bde246cfcce1c5bbb80acf097de3567049f0c72470e9ee2c3463c864d30fd6b69128b6e4b4dd1fae3021e11dadcae35f4142138b748975444f1d565bec4c1a9e5a16ee40f92321875988801ffaf4fee7eb8da605a711076f4e53ed9cab6fd01c69dcbd95ed0071c0fb0a37e79c01c934ab76f61c127264cca3f9dd64f1415274b1516e7ece2f42c09a861011638f6ccc8ab253202c03123aaa7dfaf6a68dca6ad35ae9beac41a3666a55d1227137921f739b1ff451c4b271e44bce637ac39251e66628df8e1ab8607bbc6efdc561f7dd4214186bc30d7f8764d716d6dd669e4fe816f30f401f9d742a315e28192f660febf689460ddfd05cf17052112dc5c412b4a7a4a7461773d29af74adc8810bb395b5f1b73c62ed49f0cd0495687cd6abc618955a5906935fd85fe18576574766dcc930833ba86a7d3fb897903392d9d1589fc2adcd3d8d6ecace5b8fe39d84b44c3729bfd4fb1838fec26665dfe6dc202d53781cc2bf4bf515a59a981843ff9caa19e935c357b1ec36fa31892343f4d24d69baf5eda8fd4958d687b602e774b896c9a747c9d581068f0f7991976f4351a2901ce579c5703e06afa4245abb446535d1abe62969c1dbabf5931cc682d9cf5eaff84563238db6496d1b36b315eaaf17dd91a18f3163aac87b589fbec689142b6ba7586df0736048cbcd99931de177e020c02a75b86b385a72450b6cd5f6e7f05beb97a90ab27898b107fb296df4a3fb4b7f06be88ae9b999b9abb37c690061b598ac7b741318070e79afef81d3152a6aecd664fc342195a520779caa39e87a94db72db2a9c38d475810bb18932791010bf8ee4a0bd75ea3a516fd5f5e7fabdeb9e49db5ddc4f2118b6f20a52a3a87180f5295c517128756b78393521f49b555476b4b7e38fbf5d71e83a2e9618d55114f6662a6ca8106655b43e0cf692326c485490662db1a3927c25eab0e6a77d768d41d088a7d6661fb618978261c78e83667018d711bee1625c8a86adef0ab9088890495387ea220c30d6bec32c5c0e28377f4637629d07343ab00338071a99265e57c30690033fbead8c541970306fe5c8b1f198af0da656dc17e806ba03031207b2ae3e76310a834cac6ed1c82e87b8cdc232ee716b865cbf7f2a1e2345ab8efd2712411a62200dea92275d391a473f9d453856d861035d90460735a5705922f641dc3075c9fc79da412e8d9686396a4f0bc8cb032328ea82e473827a19b87bc075ba940c9fb265c783b48d69095a0a8bb2be8aec8e06d19e62f8c2d94e0a54a0214f3a4118f4f46db3919d3c47de22dd4665667a5772308d2db3ddae232e0d72c6a3bced4838f26623feeaaca57b35f25591f2afade68fa3ba01fcb69ec52a615da93b8cb83d0b0e3f1810d7257d394a65378a37e2610815b2e69c5da93efa5dfbaee796efb310b32c1aad4666fb0a984e8a5671abb45d39bd970464b25343fe8a8bb44f0d92df151d94f8f315e7b7a3c4492da36bd6fe9e23b0c4525a8ceeaf5aaa02c4a610c5dd3edc331588a56af9098e7e40217ae51d2ea46144fca6df98184df6db0da418348284ce282e8628a689124b9d867c025c9a08549153982cda3a4a30d15725351d4c3c1da0e0ee1a27e105662d3005942fe79fcc7e356829137ec9457ea41d92b76347f70d73631600e37003570f75bb4b08375c482e85ad31755884586afca571e9cb6fb1c1165b65744184af20c1e3a20fb7d78dfd60f5c0efc96015d931aa90cdc3fd9b7d6836277db8b2b9f38d0e14e4cca4b2991f43591213f665a99dd0982843be73f8a8451a051194c3209991be0d85d71c507b9b2867d47df4d42bc69ba618404f41f5ea5572fa82455d0d28acf5784216acbe510e9f9deaf5eeadb5b2a73afa02497d9c6d026d85ad0152a98db1b47882086303d5237d75814d9f606e782bc79c5045cf121f1cb2c7fde513c633babe3b764c22bd1a13186034fb2d5bce2304b7100394eb02f40fa74325df9185acd66dac0ba441a21629037870b00547b5e6e63938e3e519c771293d2dd07688f545ffa008568c03538f628b4440bf1c773c64ee936c69fa68188cd44a16660046e9be5f87da45252f1beb694797984be54f049ecea6acd0e27d752a72b4b407beed62776ad06e09da22d8151138c02a628a74e1f6969ac36a13c0ca61ad1abfdc87b60e88842ff9f8690987dc07833e87fc7d45eb7ec303b5d0441f173e4e8cfbfc553f0fc8a30faea80ac08b911537f963250d3964244f2285f3901a5f5fde34774593998a69219ed4a84e8ae20e96d4fd1b83ec78d8679e96342407afcaa682cb7fbb19bdc74b15ba5b583a4ecb0abcea9f19ea7da650d4f39d7802e828278acc756380b31880d6a461e050911f9240ce830881210339bc56db7fffc34b7c8d047ab5725361236c4495bd564cce051aaf9364e7950e12517ed93c9f9d41f1feb6482980c72b7b0aae984d9934999847cfe3540d31de804dccfc9b29ed5bdd1f23e3c5ed11390ae8a4a43c78afea9e1ced2bb4f6cf3f6aa2b4e3baa09eea59ae685c0053d6b5b647f8e21364700fed39b59dff7a072bdf1706d7c06175bb2b6be9e16cb340f7dc9cc3875ac3e8838a631e27ad0bd102a18040fd900001e5c3db876e08d8415c487944e5a4107b826cf987f0e9efa16ae7ce9d077343ff4070212e2c9ec09c8ac13ce268165d4faabb8bbd87b24e058a47edcd221dc783623c3ce4c0907ac8bb59b878b6df9a3678b62de24fb7f0a9f519dc8a35bd6153cb843817420a5d4f3b350b8267d04142fc7dd0ea61c1031aa2f803b40fe80e7191eb41d24161ed496eb587ab7bb080f20cdf5d6bb3675bc343881e62f8d07d29787c0f13d9bc85aa5b03888b040f3eaee72b4fafc9c68305972748a7a78ba754a3ff20b41052407988d72c983c1b27f783ee202e523c4971518c3c0ad62cfe3c0e27b920ece02c0fb3ce278a87da9a85c153e5443fbcd883597f8f8ab6f7c1f207d40f57047101e5e9db220302141c1e219d8a178f90358bba2705ee22a2873a1d99b81ea9b414f71e6c4b81381c84ca170f5cc36028e1f473dd9fb553f710969a05cf992605880ba30d15d2026fdc180c0f69360b801f76cf2ea876397c78604514721e05c07dda37a2ae84e06a3785d14375621e8885f03db4c2a5a854441554d312a04418d49b0d0f3e153cdedaab0f2f105c081d844a85b82078be377f85b8f3dda369f887d4f95874b3431c55a2e7049acf48cfd3d6fd611b6211020571c267850f9b0bc45f1f0b6f3be41edcef3d674d16a0dec7b41ba7102ba07aa8e77c323c5adbe23fa8d879ceb6287c1a9f026ee95b233d8e5b701ea460f7606be81ee07c100bc4c5ac270f4e858e0755cd62d793587791f2d0bd93e2e0a1d2d6180214e23df268165ccfa8389f3b4f649b059ae7eee20871a1c0238f63dcc593c76513a27b5c4fb2bb3eb84060d6830a9f879aa687588640411420101ac48a9767b4ce67be2759f3f54145ab2746030621be011a3ba0c2ade12147b17cee534f871a8de9a3523b8628404041b841e842e8208e0a3185a2e7eb5c40b821221782367a1e73fbc28345adc7ebbc40bc3c7020f41029104884302bda533dcd42c3a37539103b084b435c1078f6e354bc7a86a759303cbb7517713c48381557cf96348b340f864e0a089e0e97ee830a160f0ccd68883cf19e642d6b0f1635cfa77b8570412407c44f9de7ec1440943eb66469b1a9bdf9c36313609bd7f8100ccf21a98bfb45778d4c13306e9b577a582f5a2a99a40e481ba90597f49159128f368fbf2e7c50d56f4845952a913075c4d65fc6ec26f1acb2fac44956333ab1883121955b6a09878657bf9b47de9baa8aac0b644a9e3c8702ebb6957cde170af6ddfb6eb7a08e4b823d727077ea78560d7b0f292e3da6560871fa830ad11e1eed992020ccf14434cb87b03e58e8dcff92882fa67be1d63f8fb3eb3eb04e73dd67f1391dff14bcd92c323d5af71c889f7b0fb32b82a8f710501017fff66c34fc83e81f2cd03c55670421d603fe21566c7930eed3204281f774a959d07a864e0484cf47ed743fc4a2c1273d92c80194d202cad8a1615f400ec29a0ebadce5abc1c2162cf391c8ceef966dc54cfe9a87a6e7f894fc7700cabf9a7fa97f2651d245a1ed5fe7af98f0b1f9f192828b7fc2e284dd8b194637a37bc050809657214078939ad84bdc18741466bfad6db9f796524a29a594019505c5053f06385bec378e7db6e6bafca20b4ea316986f5625d2ce2a93ca6cd2fba3b19c4396755c3ddfbfb6be46f0c538b8c1e94006962f7d7ade407ad079c55456c7a2ccf2f7af12176ca5a03a755debbdf7deda719bd69bde4974b535c4474663cca236ceb9e71ec518fbaad6eae5bc71a95ddd365de9c4195b1c167412d642c1771d3bce5733d822f3cd8ff5bafb63d988fed6c6eeed9ee76570db7256b9f4b64db53defbbbb0dd66d9e70bd4fd4d61177049452caf33226696c3ec6f2b1bdd6d26aadad96521abeefe5e8c3f4d565ec8904123f532d147cde3ae293b55ee7e0258e0cdd2f0d72efbd97d24d2935e1f3fd6d974f37dd74fbdc74ef4df7bd346ce7fc7a520655a954aaec2a95675fb9def9ed1cb75279db03797e771c28c61ecfa24cb1486991bad2022d2faf4c75793b85e5250c5fa94dc82eab8b393f1a9bd3032d6f58535d8e706fd59286affafc48d049fa0d51a60b76fab14010680cc704469873ceecdde69536e06e5a6f3ad42d1dbe4b63c3b785a2ff65bd5a3a707023a306855143af4f9fc264c2acacebd092fababc790d10280c8c3d6f34e473de6d39875b7b076e9e33083c8ff3b6ddbbddbb75f8c44fc370ecb01a2cadacbb2e6126a801c2a6f596630347d0d2250b965d85e6d4d4252d1915e5a0d94fcf4e093946c03181127ca2c472aff6768eeb77a3415febb5d6ce79e7b45145b3e929161c5ba22808391bb73537a7d699e1081b54f2bc82d57368afd6593b1cd505d55ad7aa6bf8511773e7e0e6d460adb376f9268eba410d9a333d476b9dbd82e24efe1c34467d041c3446a5d7985715d250fc48b02009f6716c899a29d3dd32587e6e79798589da77b4e5438e17083568cc897a65fa8c8ee66ce687c6a8cc8412748e0b4c00078dd1eadc03c4ea98d21caf5f000f9f8863039f7019d4d66a55aaeb5665c2abb655a97cefbd555446cdd0250ed480c6a8eaaa6a10d586e2086f954e7805ed0eaa9eb5ab5a6fbdf57a8e979773eb475dd4fd52a94251bf0ab4dbbb71256d71f9aacba8210939d573ae771564bd684c6fd7cbe96a68c89f61cdca75acfbcaf3ceecf9bdf25c7ad7dbc4dd814a27dc82d5cbd97034a01b9c0817405d502d83049fa86bada9a195de8d0674167c8122d4131ed8562d203e29a794d2efdcb6b96996d6534abd4d97d8cb9933b457662d379f33eba9a79c726acff17a49a9d6a1a654674da9de24d8eaf289faa5beb9939f94ad315f07342683c6ae069b5e31b6b9e8393548b0df9ae1db240e0eeb69b2678e031c0d7c6edf7969497dd6bdd32006e6b7b87cd7c59d17b3cb8957aef32a67a7d73db0b5c477bd9356cbfdf75e7f713cdd6ab5721af25761cde73a2bcfbe0ab37fbe39cfefa8fc03579e0ae4796fdbe738ec5aebbba7458209a395c62d203e2cc51dcff17a4c252861ecab3f4031783f7b21e0c7184f3cf174ec132433bd1962eff20eb1df592b8a52ea432beab575794e86a7d4f88993e8abb7bc7c380c59c02f3aa3b37c4250d04f6fea9c75ce39671c35259539735a29a594d9aff4acf30efa5de5a567e9d5cb718983c66ad40e34c089d9bc686cc67cea955ebd7939257c9e39e72977de4119cbea760be28b17a62b2888ba02c6e8ca973063a05a3d601e8e649e077e32ed79e10ed22ba34e26c327aeea6b95f7b66d9ee7390df99ee7d7f3ebde7595e39def54deee78be03a90e8f2c11da832faf086144e5d44a9d6350e61e74f4290f177ab39c0be48beaee044e26eaa2fa96446346b3a8ca275eb0e9057a862fa4d5209a56139fa89f54a794f582c56ec4edb9e91e28bee6af7c821f4843fee7d4ab51ab7f61f54f855d85dd797e0576be55afef369fa08cca6d61c61f0ba7f2f0d1b498f8c49818fbcbb29d5b4ac3ce419577d7afca5720d65aefbd7758e3b9cef6ecdef6ec3b9434b6aff33c05c5fd74c7033b2ec7a6a08caab2d405758e56249a56998f7eacd7cc51da3ec1f9d6721ce734baebdd75aeeebce672e5790de6d89f032f5fdea024ece8c8d577e8c8bfaf77e37a9d557b2158a7ddb52e5f4caf56b2e3d574eb7af255d7b9ee92f24d196373db6190f30dd4b17aecd373a8ed1473e4e5abd72c557e3a76a697cf23f52c5e8e469e7e677ef5e9da3b3df1e4bc9c396706b76b2975dedcbae73bf637c69d97833196f285e719e430ecb3d69e6b6fc6f4ca6dd6c33ba77611dfc08eb1581d679d29ceebd9981857e7c9996e67dcdcb89e7c3a563fe50bd72b90f9ce459edfc2bcfc2e8520222f595e3e5195e77c4bc1e8bb1b0a435479f76d960aec3870bbd7795bc25e056e5eceb68978f53bec6fdfb17f5fdbe675ef6a87e2e69e6f2af740adbd1b9c7721377fa56790a0e3028f3b57cd895d85e70daf73afa39dabba8e7652bed8de71607615a85de579a1e4dc7a3736efbce340dd8572c3d786373426b92022615e3ecfcb1798babc73d5ddf0fc0ce9bca15287facc5647c400cfbbce74ea34bc21a29331bc7cf8722442e577d8d7b17aebd6b77927d6be4dc7a0f64d8712f6371406e6e9ec9cb3f620b2f4315e8e43c2bc112723477f73138384e9327bc652c6d8b13f5d746de09b2fab63bba59437f285a43a0811e2af4b1ad9ed046799c7a038c519b30cb5217d3a0d19d6ecb09ccfb0f2bcf542b8d86bb8a3ce1a1ddac83a58a75214300ed2e5adcb8d52ebd5a8384e45abf701f61d7ab322d155afe08c9df9d95d4b3eea798897cfce09c1f2d6edf60137ed8c1acf7758edae63f532d4316f70e18e49bd10accb70470d674cade907b07d43633b1346c1747225c3129d5f650cf992ca18778af52a44f6d6ab8e9631aed7d5d31bd56da516dc71e78cd255211e7b96a1cb5f9f58bebaf581ca53df8aba95761a1be7353ae64bdf617fba8e15f642c09eab0cc55a57e275126c7c8f01ea9be7cda97c215fd0cfd777e6e635d4b13a9b065e82e2e67273eadd068a539caf3d1dabc780942fc4ea8550436b77cc1df36b72a88343ab437d67fed5315f73d33ae9ace72062aceb71267bedd8ee5aabc4c1f91ee75bfc0c35a071d1f0e1dc74a9f7da201ee0abdb9baff3abbd32049a6ba96783863be60c75b06397d7b391430cee98154f8c4327290c1dd3e5f489d6f51864c7fc1aea086cd1c10ef1f0ab97e39014122d8c434ca3100d2e2423e773bfcb82a12a7a1c7af2711d49f172145ae1f1cb5188688ccbc8a8c80a882880021123584196440bc0ac20a887fa720cea3202a132fec8e22a22c5a30105eb0ef31bd4020a1f155e0092c3931f3d7e10c2837b04111b6404280868890d66468c0984b06c23101d845c44eeb031088757bd1c83682f3a4e8783ee664d0508e410a4e664fc410535a8200522f6a9db6a02222e21174b6078e243440bb63831820a37ca3c20640452f2fbe508a4c2285b1a816478b9846c112ea0ea7a042afad708346b0263ac4377bd3e847cd2ad4bd7d0675dfa66e94dc6d06edd9331b2678c5d015f935dbe0e768acbbcf45870f91879681979d446a09eb147cdf583560784c1e9f13ae4e0ea212ba56e3da449e826a40bf9e2ea69fca840ba908f5d3f9feba5057ebab4daf5d389cbc775c2277e7407dcfaf26587c5e8a5db977376adf5361f9691b49a58b1f98342f140290dc2160beb4587e8100da24374964198c3e69cb018944f94b4e9326cf89a3ee9a4202cea1aa19b962a330eaff701f753faa665da8dcbd685c2985e41134aa0314aed52387ba27ce25ca24b53266d97afe0ab09dd62e213bd0490e6064aa5a4f2023b32c6f41b114058ebe91327d4f4523bf992e1a6b128235a4fc61fa817c0cbd1c7cad3d8cd7e654f907d8c85b02f6fc8ad37e4cde49c472fea26a64f9c5193ca9c3eb1482c93caace234263565d1a0990d8d49ef817a57cfcbd1a7cacb2fdf75f9a26f206bd7593028ad2263f269f8d42063a0914fd0cb1105326fc3cb11052a746a56994d62648c29e6e5675f36dc22c8185304f9a2ee5a6db5b5561912c91893e8659d75d49738909f8c6aab7c51d2883881d6ad689d5e4b88a497de3ac137bd935131b34663738ac6669e455ec64f7bcbcb37dbe11382f64889540c0d436b13cc3767512c2d978b42d12e348ace17757aea2a9a68ec7a34e6df249b6b6353e9b4d1aa1a1b2f573fe79c3ae3bbe98ced105b7354ab7d5fabe1ae569baad56ab5dac57aaf58b12b38f35a6bad354d7f95c39baed5a66ab55aad46a33dd168341a4d6fddbea082277edbb66ddbbc68a9a7b3eced5a9baad56a5cadb6d1684f341a8d76b7b79a4101a2f81a8de3388ee370e84f7c6dbd6b6daab66bb556abd19e689b5669341ad84545494545454545cd9cd8ad170d06f708078af5619e6eba56abd56ab4271a8d46c3333b9bcdec2c2a4a2a2a2a2a2aaaa9c9a9a9a9a9a9c9b55f43be178d0d0b0f5b6c1c1c1c1c9c188ea85ad46c369bcd68331a8d46a3d528a5b336c39ad6dff77a6d7a646331f7d78bd29557db749366eed1778f56f748758f3c2e6a9baad56ab5bbd519cd3ead2c4d65699ea5554bbbb9d194666796c8ce6c602edee4598ba230b0941755a3b8a82d4a53bc9be651e7c4b9b8b7a6a626176fbaf04291606b4ffda1a1b837cb06d673f3e285f266787fc30b4563d4c74fc43d5098c5c599c5a6f21e8a0241488848c2a90ef391439804f198c35c080f20c7b14a38fd58dfeb637d9f9529eba124044d80080144982c97081166c2e8084942a9a0061584d060e4089621419ac08024881844f081a23142806a92234349a03819c6392779fa9c7d3eaf5a8aa030937c88f989e242a40927772684e43aa2870b78081912907944856cb3880f2b0208808ae8000a98442972837891612022408801420a0e3e2d0c0dfd20b1f0011f40f840035107522094a404410c21a5862b4066089225c13d92943065c9d21312fc60e508c89ccdd0848712b324c6250ff08f21ba4711631329212e438c5c1f1eb057643c286c39fa213b81c90e526414a94a8f8b6573cc9c65e9f9e125c90f30290021b132040490a41f84cc232af331a58ee60a53407ae041c49324c6dc1e48822a122641603530d154a0d24344131e4a50243c80b0bd3f4994b0474bc872121660a422286cc918fbc7c3636739f141aa39470cf5341103f5a5caf50152876442b6540984921382b8502d4f0b2fa8208821424680822e178526425480249939671eb987181f0a8404eb71248948821252f493744fc0014802445b587074a586a916dc9e9c0408215ca62d8354f4336bb6b4e0042d6431e2c70eb60924314247b5077a9338308484840a9029c184200426f82202a220424c20191dd9243f62929c50bff8d025a1168e404529e269884c121f44485428091eb24f66658694188250c24a96142c91b4822047488ee8a173ce328f39ccb920ec12524047588644c720f9f87caf8ff57d3e3f1831348352830f30789095f8ecdf109f8f6a3ebeeff3ba03121142492616f3180999c7475f7c5260998f0b5843b979661de65ba0dcf0c4e485224045d824ae12158911690b90e7f0669c73ce39e79c5f477c396fd761ee32eb300f1de33cf479443284ec55b3f66e3774b6b34e2e10fdbcf4ec82969f2e5dc85beed091df46be905bc8727560be5318d46154b401f39d8e2b2866c7fb467639e504eb8ef5fbd66f87bd1ba195129cdff50962d8dff7bc10aab3280ce995e2278ef38de37c9b9aa265995a5e3acda6f3dd3ea836b6d0d66cbe67d07fea7d604367fd83f64cc3397f0e696ef864f6796d769d431bd6e49c4cfffe705d9fe0bad672448bd409aae79fcfaeb3ebeaf73a468137bcb1506c284ed86f66a130ea4b6f793326edb3b6dae98919ada3fdfacce7d9d0ba86e3c219f4b377f465d42c7efb05c3e9a08608387294f033335a9a4eaeebed23527bd3af2da9eb68cf2eb230de338bf7c11c5b20e2f4a7b30d1c5a3b65bd2adaaa288c919797a3510f0b5afe823a4cc865ca94997a4a372069d25317797e3a0b4f4f7db2e0f4d43be9d10fa44fd7919ffa8e8efc92c6acdf985eafffbc819dd2cbc343a9f439c724bdfc159c3a8d3747e50bed17dc3406fb0a727ec14d06756bb75ce7cb17d5afcf0b8adbcbab6b68ab584570740305a33614a7b3e056bb39b157306b9f200eecb1eee025a684ba010e5ce50beaa26b4af50e9e8a381787c668ec463e8e098c40fd023246751943feb5d7ce68e824c5775a3d1a99bd1c8b2c8d2990794d611411bdbf1c8d4c7d6777f5eebe5d6680fc0b8276f1c6c0fb4eea565f877d8d0dfad4775440e479193404ec3414b70e76eb2d602f61d50e75d6b1b41bec2f282d9873285e71cf10ed0c6a1d7bb61a7b96b0182c952215646ffdaab01453352c4f5aa09e9e68b368261d4da24934675288a9af6e6b564a0a733003d7ebd198d8e7e3506a70e3b88edb9beb3c956aa5da1fb79a397102c589cde250a468b55cadfd52c1a95051e954e15241435343b36d56702b56543a57d4ac60c1e20216db410e042b9da086b568914106db820088d958acd2190bb77b332c88c187c1b620acc360b7f068cccfa0cb20834a6706daba09d65b68558d8dc7a18881c74ea1de86e274e933476d22c0934ed2a0110a19f972844286ae20a3183d8942abb55a1bc5cb8e12c68b524668b58d7c5b92198ee904860185aa0aab03c1d8b405c5cbb1c9d544e625535184c562b152a490c254b3abd8a8b0acd81394c2658252be5c2065cab91e167bc58a152b58b0d87e84ad240c52c400dbf3851c5abcf0438b0d83c1601e0db0450b2fa7d2bc40f4420d001e8fd86a888b0d2900295e8e539a08604f704a0d2a5e8e5342f07a394e919a4266003346ba172d8a91100044794224832834a016268812250c110ca294190a857e8046823c898f0b987eb080a1c78a2a4336200052b38588a66908222a9ac804bda4c8865c456cebadb5d63e7df6e528654995201616145c6627a47c199a913215f4f5fc58fdf0a14a2ae2c590c2ce6148f7c20f41b8176a296c5378084d1912c45a6b6d0da720f9c0539aa470a7d41064a78440853a45aa884e2123349d7cc8be8fe554e4efcbd149c88b9f03601ca1848122f57284a2050a969723142a23142950949676b27c5088f8e85e8e508c9e90811234a110594a12438f7befbd639238d149a6dc1b846ada614f988e6cf982f8ba271f1fd4d7f33d39fa49c2a2999c9892f69c93522628a6276bedbd4e987254ce596b26314c60388eebbaf1c9f8e4c9d1f645ee70140565054d50606cf0c0dea3b7492c04f95820f8c27c4e6a4047d824828aba000ce027856173bedee1eb1d9694d296aa4e70c77e7a34687edb69e7a6305cbca4c0d7b0d2aad4492a65cf17a11b9cf830e7a4d4491527445827357ba4a321ebc8443432f140820417b058615343a3e2e56aa5c847a48fe0c34dc84cd71dbcfc2926b380b0a9d758808c0ea4b3aabc68630373c2f4a20694078a1333df4ae5ed8edbf4f81434e488223e57884f52904fd2099d75bb44122680eef5a9e9d10997e75e8e4eb2bce838db50b5d5d5c427e66342e423a7e0e38e28f1f4eaf181f978f8ca7c51df6d92836de2d2e193fab87ca2dff02d6d80873b4cbf1c976278d171aa93add62e5942b6f90c692140b948868f805c273e6c75b2d65a6b5d427cae1e3ea5304758a51a10522b8102b259253d00d1ae213e590f3c7489802ceb63a147f5af8e4b9064f425fb92f8eccccb71490afe871edd2649d8d16f9dbee84440d7d92d658c6a4125efe581074a6900ed1ddede4c07e2cc0150578172ba1013f014c67441bd003336634a1c9e3a0d0d4d964f47bbbb8883c1d7210766dfecf6c01e2f0f9e546f86fd5b55d733e041a7953cdf4015b7efea3568e50b95ea75cef58e4a39a9555dee37c8a22e6c7ef372bc7ba56755a18afb0a7abf415d5d6ca07c95acb5a3d5aab04fdf15ecde823bf4dfd0ae74f6f9f9c44b18e5a86eea249d7309251f214a454a474e949c72ce5a2bcdc0711cd76d252f4a5abc3dc151298c50f73a322a2131676654d62a81bc4c23d56aa56989c9bfc6a50de42fdd8b850e4a490f4628f972b10c0ffd6bcf4cc4c2b80489abd24b2197c8f04ba28c4b98680a63dbb68deb9674c920e85e2a4ca7d62e6959f24066f2d3f34bb517f592d46642f4af9109ed5756b0d2c8e488b4d6de0bf59473ce5ad791491393a8dda4a8128d4c8cf0948879713781616cb2b4f54f1d52be602dc1f2e2fe71a988b1c90f9331ffb1523491e15f34363dcff354aa51e9696c7285ce58e95e46544479fd4c7161d980150ebc803ae0b24106d797195efc3c480d2ffa0b858fbe1c95d860e5c76e2f4725e3cf11940b522aa0c8314e1cd8725444541198f90349178d24cac7bd16890e7fefaba6e4c87b2f4725330ca5856e20a5c24c9179e9148ac248d24cd4a9ca134e96974e8fa6e80638c8d01f1a4489a8518dc2d89ee8067336cb32d332f332939a499fb44933a2cd24da64a239d1aabcd461be29324138280cec5e5ccb2b4b072f6f1c6643e911ce0614aaba98b4ceeca5e2f444a3e294b3de681c15271a935e4eb7f7dedbab53b5d5376367662a9d33444947a22d22fabe9913288a2cd1265a2c4faf212850b09eac16a896eb4e4db5bdf6de4ae7ed52ec145d4bbc3f4fddd5f3da54b4629eba0a3b456369682a9d34ad9c13a854ae1745ad64342400001316000020100a090442c15016874128ac0714000b6f86466848301b8623812488711004611c85180308400618038831ca40a4361e528cfd6aa99fd217454345f7a61077befa60686f34bc82dc35d6fae1d9ec30b1f14b31487f5631acc598eca70b5cbc10c780823572d193626c28c7c3e0fcf342e09daee2e725d75ad7cdae55c244e82c445de77d63d380f3e7c2a26f28970441db7a13cd120431250422705bf05a0715649903100aef42718e24eda45d9fe8c7457e49bf59068ad9238968a65dae2d0d09fc8be83691fe800ba8cd5b039f27dffe0ba24abeba8392675c33a1c65b16a667b33d0d69fd501dec0bb5466fa89cdf7fc850f607de5686c035008fde30211cb9727fc151407cf3ab4db14f47f127bd503834f6308e56c58a6cca83752d7e094a4ae4bc49e263bc58f01283149b77b0f351e4ee3d2106fbadf55ce75cda0226e711bc654b1ebad70d5342d27276350c2ad03d7ddc82913dcd6843c55f88263e5e3667517fedb651f58e407179e9bc3b875e01e9cb610c9ea2b1666223d4890424408da0a30af10f2a2f1308a50bcc0039b1280424b9b171d027d9144f245832cc8f5986f72d9e6ea09967ffb0c54bec737dbf6abc60adde06f11cdfaca3e714293c7a0e9363a21f8aab379a1ca9d4a7beef726529be6cfc25b35560416c783dcf993f8b07514a258989f9d5a6769baba160acd7bb8cd178f7f6d7aac69d54413b09d4eea92460d6319b4a3c0ecb81ccb507a22521739c7ed5ea7293c9300e73b69eaa7918df6ee7989e0ece346483013ade2e630a32ed15e29cefd88522019044301a1793a71ed8e6462258d22ab668fe75a3a909e8acd9c441b5f0c4cf8b1e784fc3384186b3aeb21f0d0ad2b368aac702008d51c41088b20a3bc65f6c8876a76ff20e5c6024e2fb83715f2d3c48a7c8346d2a83266b6df812ae9ec3e6bcc36289d63e95b6c1e60091085655368efb9848909af06c4abf8f11f1eddd98b0ed4a666dca762a0fec362b056153b33ee3e9f46e4871f724b336dd66680ed06d8f6879a2d60e0788a9afa83679eac94c226d4f9406fad59f714295d5400f3a8782d19cc839c4df1edb48a30490558e6d8c9403bc2907b02bd9dd18f1cb9381c9db97c05ab41b533ee886530fc2a8347431ca3e3db3e102061ee3e593c1952e175151fea04e15edefc85863e1713149ec1e758b2217f8469b320853c9de258680b17ca4844a0ee9cc66cac924f92a5b8ce6f1169aefb953bbd59c3759c6e60227477acbe4647134346f4c78142a3e15da2efa91b20aa8c0e913baa47d38d0fa0c98a864969e66996eb9841bb3595621b0ac8c4a472af43c14dec4db320810bdaf947cfe5cc4fd491b9c45b89b8192c1d887299e919c89b4f2509861d806b9f804a5543436af5567eda826b1b11035012018a8827b6fb8c15ef3250d31711dacb5805b054e63a3e68e603b5bc5f7cb97783f31c6768e2371953a165790f1ff25f80c7c6f589544b6f23f1d2887ef73dc5a8656caf88a6200ddaee42d6ac640e4147a5dd9eccc8ecf2105c23f948477c04d4677c97d6ac40237ac6da1e3defc2b9a64c1d19a988bb5d88ac2bdb07c82a4313912d0b4f6c83b407d619566b4812cd34f814f837fb3229c2afc66140f1da48251a6eb51c55bac53f6d94b45cd7e4d6492da6708ddb084591e2fc670d8c7839e8d487d98bf4f39fcb45804d44f15f5a125891f8e02a2e021443c49c56e988a2c54f151d4a9bfae5ab105905a54a86cc182a008a3b18b4b19e80e52b46cc7606ead51862b2abe9e54afffa90d4101b4e4f859004f1cdd810844d58b9c7429e6ff35850251b0b0708f93cd3d7d83ff8b02765cd8c001f1aad94f13707d67c145f8026143ba82f82f533af7054d78a273e970e4fb2772b547b1e94a77978f26cc11b4b594549d611fa5c27791af59f39c9a12d934c5d903df800cfda854568058fdc62765c90b3d500a7039d8672342acd5d86affb1861243f118fda941a84a960fe82fb32e29badb0f64cbbb5e76b85d2f17e2424a0787cb28fc3ae9bdf7dbecb697c935fb96f1636dad9039a1de4ae8e3a7653b7b6adb8cfbd708f777f6e756a8af879d7ae293a88f531d0126c22279cb8ba23de1349eaa79958ecab16d929aa9700cf78be22785e8a2613a6da0e862b10ff20979996033a63e38a0284637b34528db29f6be407159446b1a3b3a084ad09e185452e3157dbc66cc13ad96c8289384aa0f578cf58c4ad9c139c11c351b4d12606c3fdc17363c3dc655433188f8e58cc4edce22d567de5ecd22e8d1e0a4e7264444d4406b5484a82424f5d138db9463dd01b5195d5c441709a791a2476b159f5de40b35d2103434217df48e794a4109862060c0679921de266e3f9af8d1a5b5929bedf0cc971db7ef117390564b349259c2159219672a61cd6dd816e3af5ff44a2468dd4e18d7d3351dc1731e2050a75d1c7493a89625d1c3fe1af7d3f9147bdd144c5739c6ec5b861c9199ff7ae82ae53a932945fa5364c40ebd4489378fddbc104729a3df581ca1700b2fd913d2bbd64088172c29399101777302434cfe4c314b5ae00461a4488da8c2027e3b4d71161f10b07c36d5e1c8f7a0f4a27acf1b6ebd29bf7682883eb6092a117193111554cbacde73b0d81d19ab433f5dd17ce5332f7b2316444b4bf8b3bfa75476588d8fda373c0bbf5e68bf047b3d43040ff7f5842c3ce4a7d281c4cd7f45845d00b2976d6ca5fcf3b9d9f541f64a4365310c6f8a2f580c3977b31e7d8659872227644f488ca212331bf9b1d5686fc83e4221d7b8c7a7591086a72cef04e74cd515580dc87532bc9fcc0266244a90ae73a3528fdb674e15843598fa0c322d25a9d3361960895b3a93a5d177c684cae51e956f3293e5281aba63b9da126d86d45163c6b4f365d14f6e876a22cc1c24291ea628e7e32d8d0c4a1c147426fac0b58642666821031c5964f93836ce75f3f8b56d0095186d60361a24aecf301bdd8589d1c2e739e81451bbc3524d2b6e0fc4e7dff0085a4b0b6ef533e6876d8dc62e310670ae02b598d7b703cb27851dc9802109fe3838c1b84f709374e76851957b458c12c318abfc1e53451a21c225eb875d9468b8745f919358260b55e9c3e161a4da3a54359f97afedbc07a1304f8bf16c1e0168bafa08d377c66489cff478b6d790115931ef806efb0522273b10f69a02941a30098c519385a83501005c0448a35b44f4607d9256780c53e7b5adf1e0fd5b54fea9560f560ad7d57da45581ceeac7fbb65238436a343e32fcb4a186fee51d47536e5d1380873f73f24db7b08689fa3207902b6e0b916375850b5a1b080832d5502361232ec4f8b33571ae38055e037a570896f7c3a5d6abfc81d3bb0ec83501074500c36b16893f5773c0d82834c1a8adc20848717c8ba6848cdf197ed3636a93998c9c143ead009ed26601e025607731ddfb5d085fd242d899838bfa933321606441a9007e169d3bf58fa8bef533329b5679ca7fb6bfbd9faf87dd1ea471a2d062b60256dc027b099c45d0289cc1d64fa3850cd7355e1570c45ff873ff4f3dad21131918b61671325db0fef012a41e6162acf9281e624424f176dc93376e0c81d64e788aaa3e0c86739d8c187109f43a1b285e54cf091359c28d00fb8d5e9a81134037a34fbaa153a4d51164f3746e57be5607f25ed535537912ded33dca38409e8f91364148bf604b7b503faf108ec2056f3918e8d877ffe35897cf23a0c556669ab8a78b1ab2852bfa9f458ba9a0fc9cff4b0dc952cf394b22391e4b9f4c857c9bafe93c50c17fb78d1f188e5df0609cdf4e20d361a8462a766e25879fe61e100ef38a21bcdbf63dc83a5225abc20256f61b6eb7d2cbad34349447548387d8d563676e579b02049394f586f4f108ef3b7eba042b849e894c8a0405d6e017f74963aaf05239986a9f307a30c1b0946c5a12b60014bbd1fcf28e6919454095cb09fcf17adadc0c649af2dbcac6eff8b4a6df734ee4687d63fc7e2f0cf0b99d3537dbe31d72b7071c00c42fad710dd84a7d8c69855e33f27b4803c547db3f66db22eef6e284e999bbd4c932769de9fa964f007ca023cebd02883be5a1540b64df4eb07ae38b548916a966065aac5b0f7637fbc6dba2f623a2ba8a7629c170d7f2fc1196b64f4a35136b368aef403433970ab8a08000f0dbeb097cf94a1ca389a8b4615bd80489932adadf4210322c92278b517980acf471192089713a75b3591d16bc921dde14a7cc9d554b3ae727ae8b913d9f63ab349198ef7fb071be83686ad5523b5ca710c97579713a8fd5b0362b451bb74610b99df05140b89cded80bd3d4799acd535b55f6f35084d9130bc7b9ba4917a64941f448bacc635b4e837b7de109349cff37bd8dfa6691e91f45f7552a5dba81795f7e53b0311295e80cbc7419a5f3a175b2fd3a3191625e5755ef566f9600c97b3e54eb0823bd995849c83c2213a4dcae57152fb516177bd4c9a5caa5e06575a99847b567b5c6a2604c1f0ba4e8a5c9ad844929830a2a24995664761690487c0d9956fc1c694496b776a616520cad36f001644a58ec93a00ba849aed2cc5ac56377811f5e09a06ea3c8518030c3bf9abfb023158dc7f895ddfe8cbbb5ce258eea886bcfcc0689276435f72780b346e2ff441e3b7f3743cf1e4acd224c40942d95629430c6a952ca67753830c7ab7c5a15884e8527abb815e17680919fb4295ec8579cce9df8dc9e41b8be371e4edd4256d258df6d80f2f14b003f434aee60053e4f06dbc3eaaec9089e4726f1005bff4a87e0e4efd4a322379d052bce25ddcaf90750015fe143acd8cf94f721f4c685d3c20b50e5a0ccea373e236204c841a4af0536a9c3b10368a28125dc518d5226602b8f05ce437ff4680e823c5fe03c7c3daf77addda9a4dedc701c58fc2eca1ec77e186fdef9de97d50f6cb349c68f9f87665eae01485309902a1967f2089acaa89283dfecf26f9432a9e8f1e3bbb022221834d57f5714fb956eb03a47f58cfd31f3c4820e7cde63e692ae8f419f059742f74165fbdf800afa395a75379257353ff41bb630d70d6a3576053351948bef81f64235f38e1b7edc96d7ba91c938775720de14664a1754460f3bcc8fb0e5e140e950c1ba078f7f8e72be966c57d0b070c605cf9218dc90c79e39ed8dc16f3a7a7c69c9a2c3163bd3ef2f7d048e35276038fb0afce75073c453caa5fc3794833efbe7de924f2116eb8c207bb7752003e947238fda57367444916879a6edef33afc13262550a43fb9a51a6f1707f43ff60228144433e1d4bfdf5d8444b8c4aa307828a2ff033d55897b3e47ffaef0f65c2157742c56075e29c6e15c5859fb2d1b5cebc2bd060884d42a6e4da102829bea98ed27e56d2614b3b9dce02ccd2c8893fe47681e7f92f09f028b49807b26c158cb610a339dff3798333b93b2b7bb53ff90d61db4b4bf03f50bb1df8d660b0aa90d46d9a043224c072accc1375c174506dcacf5fc03857923372c951f83bbf1509d792fad96d2d184525021826ca0acadafc5879fcf7679c995cda1d3a3154453812a0861d5b2c070be138990940f4993bc8fab968bf136a3031a5b1f5a35dd553f90dd5d9f9a4f2c507a7abeba3ab42441f7946147779522b6e3bf47c2c94f1245078deefb207a6264486f9bc6906b21dc476bce7c5bbf37e91babdc380f9a093a5bbb2848de50fd820a391f5a6152ca9b8c7c919fc624c6b5f2c23460086a323630c1f72893f65f008a844b01129a2e45e7bbd99c4d62b6786a62fa0d1585a626129902e41b3ef8557de8e07b2d4dbbc640a5f0efb94af51e658fdbfd645694ed8d03a830b5a7c88138edcb41957bc5ee10380139742403733b8c6f8be5965abcdf806bdb53a9927bf6659857b7016587e4f3412505cdbc5aaf2b60348c4f0a545d2c02678ce58b0a20bf34e74df0a2afaa5c57616289f88bdbb75c1eaebdb5267ee4eaec414ea06170b1c21762c6b83cc7fce1ce580afe437ed525db2a1593ed404c5b981a526942ca0b4ee4557c4f9a66c2bbf7a9c30fa31123012731468c03f3f1cda5e23d0712951221dbbbc01fd20a3c5653480211c224d062951917088db08b5a453beb331ff08f583777fae24f1fc6ce58c1c840bcbd4e66a56bcd9672780a331be404d8abb6d83b4e745efde92677ea803b7fa8ddbf6c68dfede19b63896d47dd6184ba1f56cb0d44f4813f5877b862d870039a06019d80baa1ee00f0eb2e942e501be47f42a9914f0c169787aa4c0d44d55597f73fe0d7ae14bb121620909c72345213094169ae38fa11e940db1b3ba8c2ce3cb851536586161a6c96111a362e9a2154dd5a1714bc3ee3fcdd782fd879f60276f0906bf5b4e4744141191d3ac5d3ebe1b8484e5b00df14e8f0f995fa48bf027be83d4c35e3e78ee6d555763b71fe4ae88f8864b131acd1e3883e9807232e4a26a55c72e7f5ed20cc815dab9e63031c3438379d3d28a9684f0736d5aa2c8726e63ded177a1eb0cfbb9837db76d50c81b77f1fa9293955074d77e17ec5ca2b7df2b6c995fa0ea5e2b4f5bd34a43fb1739cc8c11cfbb33b002a4fdf3a25d1bdaafd000000790194ae75e466203a672e841482569d78d2df3eb72e24aa2404c01f12e2c8279de0b38c01cc1dd2d1d69d972e7d27cdd77a7326586b67e46903a0159ead99f16274f76a03ed10641149068e121c17e1d474f3d97de88bbaf236eb7f14026fdf7b4e0d76db10e7f9b83c1d201308c3c902aae0c456c672870eba6cbafc9be69aecb3d6e9b85d13ff12c3cdb1cd6544abf6da4d149b394c6a0a19194a5e7a4a8e7f24b4a163d1c7d876eef754dc00b728d104ebebdcfdd76e8e62927213b21298e920caf3d9f3e4da8802bddfe8873e005d35bb2929ee5c931e8ad1ab7073878687704d8a3f08bfb0dd5df3e38f5c34f2a47d7350d3b3f6610add3806749f0ec042304849dded8c306a0ab3b4fe2e7b3f8d3b94e7d730c5dd03ef658b311d20346e0f5372bdbdcf50366fcc0477a1135d586013a3d2842eb511ef5347747b53eb62231076508135b67544a9feaf719d2b9e2e0b249b378068bf61f74b6c884a108e61d8e07ad147a87f853d65201a2c63850748061b1ef62421d222c4e0293b66479032710de3ad1fb3a2e11a49540e1a6aa4ea299471dc13e614999c173c472c22ae0c94893b7cdd1678cd0a29696c707b2d7d3ae73c40cee4edf1921b08702b7106003e0c64ce8cbd960f09f5128b5ce62e3b534f8d8a9453942df0565aa5abccb91d5a96c829215a2b826575d27c47b78ab693e5694f0a1a270d03151a05ad018b9ddd7dc9da55515a35b43781bf91da97335d10b6138dae0a82414ea8f743daac762e86860194d2c5c3786847edc4d43af33f13add627f590d1353d1a2c1ec101c1eafaed9c7af5552d25a65009f28d08fca2ba103837bc320a95f69f4a1a06998467d334630165e0c2643ebefa6c4df12d333f48542816a9ac15fdf3eb6379808ce444a5a7bc69755a533341080e05ca91d98fdd31eca5c0e36b76630aa08045f51d77e160dae66372780d3750760e51aae3323f58bfedd190158deb458fa01c6b72e6456940c6a54acaf93f37b3871565dff2d1f1f62e5fccec1b04e8267da34a49c93acb13cbc63ac69f72e29a7f477cf2a24130c842c9febb3b65d5cf6bb36094a11a558bb927414e08108095bfc38a621c484d78d16d76b1106cc3ba865c1d10b3fdb35df729a4603bfd6c40aaf8c59f902f7ec4d8c07b21aab67513349bf671d318352b05d1cd449a09c78c72e35cd47338f1ad4e6f56e4418c523f09a171bcee26b6c85167e5d46f5e643b970308872ac3639df9de69e7810e57c733420731007b0527f27e514f7a3106e89e51bfdd8b725a59a4e359de40822f91f61f67eee372d75ab6d07949135dc29c5e3f7b9f242a3d1a97d29b7e4f009bc6b9529bc7037b6ac03a521a9ae4ed46a8b52f68f6dfe194f3ba92ba7b66faea43c762c2742c766ce44b9fc31c945c730dc03ceb02dd68fb1eb0d88db2e7d5ef6fe5941b5127713113d2a040feb5a2b32a8e0c6bce93bb9a1ea1faad901ddd2a2ac6d3f66ec930ef182ab712ad608e29b15b34c95e91b13e1e8ed19f5406b7a8fd87e7c3e6b6f48d8626951d9d8cc665cb806e2e39358191325d81bed88bcd84dd92e7fe26ad56861c7dcfa30db67c4985cf191bcbc016293252eb89407411d95c7dc7def42fb49a73198dc604c455dec21c0ef526030514bed1803e6e80afa091cfeb64e8be990d82f4524251a70a66ddf28ad1fef55b7e68ce01d3efcbca6e98798cc8ec49a6f0de06f11fd5c25d0a5ffd34af3d1f50df7ead54b97fde83a7c0e34627eb0877237214083eec694d49a3b625c00f498067d333630faef93ac2eb0a44d2e34070bda35a541890f1b2c8ee25fb856fca6997bdc8982539ab96f8b199581f3ba7352b9963930a1f1f6c37ad9582bf583fb6d2925b6a70ee5b7fa041ab6db75541fb8d863f0e06287804cb0120088de8d53af1d098ee84a96b291324af0b7733214c1a11839876bc625c703080a7de3bec592c297f1b3c988a2a63ed05ab2d2efc74508114e1143423f6ec146864e8f9d0e5afba68725e37c5b106ba7f7dd6245ff540ece8f5a8775af9373a1ce11411d956330f5fa5a4724169e1b66426bcea851e1d23018f4cbb0c908fa331d4b73d557749301f76f0d11076b17f71971c9449dbb5b6044046e5a749cb61d15350cae0b626e29c3e9ffc5d083045a87022daee95bfe538390f51d67c3c4a7150a0563605e58fdc798240fa7c280d6c400e6df0e93208bf79266c031deb71d87816691d76f1996d4b56dc5207cbddb361411abde05f125db8c2b56bc71038e286226b5e68c1a2b5c1a06a37e999b4cafbfc5003639d13cf72bebb876ce71ec92fccd36207610647a080e807ab730bc2036ea5204019341dfcf066995f0f4d0127bd11a19da4b0c810babc81784404ba9338fce1e9c9e5fca4d5bf5eb6e938b8bae8c938124a6b4246d29285eee02dbd5fee7b4fc1399a300c638a2174795d9f7ea8d987287b17020c68d599d13749b5321d0e618012d0dc6b1e1d56a03c345ccb48c384941b62288233e541fc70360b5c5bff33d3244eb747493b5a00867c098292ae5c1a86e0a55b4da41418ee43c41eca67cc1831af82dc858748c49148706b6de0899dc78dc6cfb4b88e3f588b356bb94a851508b0cabaaf8ed11e09c7cc193a15d46add879b945272e964cb17287c81d8068080c627dc16c91935790ce9391d5d78e16ea10adacfa4b8214fd23c2f4a0e91b8b5535b2ac83fa3ed6422e1a286d5b8cae20ae6745b27a7e5c9e3a46204dc863cd0a533d62ce2d6bd278308e844aebdc1a6215f90937ece0390827c886c68e0396a73d13ffab755337b393b9f60cee868bef37f650b796a6ab3167c42698ad0e5fc83e078e98fcf44081a64a425df752fec698c16f48da9f088828c2bfd6da7ce73301cff10b8b1d49ac79a9fca4fef59359af8327bf49fb188a199519ab842abebcf4699063eb428ba74771682735da1cbceaed76c6969fc8e8c7502d72fa8332fd903205b56c160b6a65a1dd1d120663d21512a627940a5bc75b492c65b1ac9c07900255fcd295f1321eeb40b3d8d2c337d79652bf8a9ac6eaaac7d1ca5c0c15d0900f87b8d317b854f94f228b6fdc1d1534cd1f5939bad4773dde95b1a41278687924224a6195d334909ef39e5e86a7d875740457074885e77b94e547e18ffefc9c71a3b1d9c08a1b8e74590c095b1ad9ca3a46b412079be044141085b86ec8030d8e7e317263d892d78e9d36e0f5a34c44bf30ad2895e426ba01c0b189ef0f933bdc2335f44e687cd47c3cfa3bec36e30dc44234796003a7619621ebcc6c07c318b75b5054558f80d123ac2c2a249b9daed5488db6337079e0fba030eff6ede67bd7db8174f57b6bd798ef38845f8e05601573e72499200515c251099477851bf33685afbac87d4718fb59f7e1d9fc88f8e8016b6afe846ee1bf39054fd27838a3a926e168b3879c6843012f4f678f97f14ac96b5a582ee9670f041975e39b96584a43710a4f3f44585e8a894fee9dcb116ed7af9690315742d7c85ac30454dbba90459646546b0935f5553eba66bc6ebbb49e1c924c524d1d378888aefec7024fc6ab170908e756099b861067ec3ade20fd2f8e7ecbc688028979b51f20312d51984d07b5014643d4db532c4ca850938466c144ac60e44ec6591a7f5d51220a29cba9e8966ac4fc7e23949516a78681b546a3adb91ce5e227539304c4016c992ca867d22dc22181c6a65df9019fd25f6b08751a0899c0de3f82d1a2172f71731476f716ae1dbd1b9b4c3cba18ce8698488fc2e8d640416b401ba6dd5c26dd75fba2dc767674d97848e24fe02464ab9b507caa37924741d369c00cbd4a1457e71c95da7a5b4f559871552242fbc8f895e84d5be0cc0aa2933e9e56b4047d2b4edb3f762ec10a0194632c6c1280fdc29cb1331cb663cabf871f647a055d4df32010f18a000b8aecab570592c2225a283ddd19ad1efd151b0ba8574bd711e2eaf436e04999f71068234ed344e3179a38e1b1af0c7633bab09169cd061691340304ee9e2880fb46f30e490c9896bec8a3ddee1938bcdd43eceb16d3bfeb87d86948deaba0fedd15de2f8c8ecebb2447214000e1e0040714b4b9b198642e6163cdb763dea2e31d02b74825b6c2770d1c433efa528a06d787c7f780f0510943a890de60f6124e82db8997c0f1349e3cb521db580cd13454dfb792eda4572bdea0829bedab107494198f410cb283393d50264f5947a5aecd79dbcc0f677994e71392815fc9071ace95b85473b14894583eddc0e492e19b47736793352652d6d8cc27fe49dba966d4a1baeeb93d11ab6e1f1e512b180768ec4259230bd857eff1da0dd983a495011fc4052a45a882a5f1029533def3354e144fb29a57a7159238d250ccf6e3d96c81641007013195a835f221724660ef80c80769eb6a73549a78032b67e5771f497c694c64b7ebe45ea19a155f54fdf1b3a6866982b3f2fd2c31e18428c2a6baef708d1bdc3107edad3b48195ba50f7697f351a71c15cd0eb3f0c5668a1fa2d464a4f9ff4e35f19cb69cd20f795945403085868dcc23651d1d600d08d1a403554059c9e179d3420e3b2c8a5351619d88de0ddeb345e833f4897d5ce352bf2c0d46a7bb203396448fe48e8830f976290605846a0fc43f60ef2857d7b325e9cd4357d97a11f6fe23a692b9e581bf1a1df6919bb556cb45101dbc0af03043a11a4fc4a545dd47702369a0e390b49b5a75865b9cbf342b24243bf61d26c211b30334edcb5fb9d0dac4a530bcf21a178f75e9ac8e6c45aa4ff78a095c1548211d9d0265ee1322000230c6918913884588edc05025c823b26cc5c0456a1ba89ab9cd7d0975b916949ec1f326e4d7b8a2aef59ccff6030a33b7f5fcb5653498ed18d30439fd07d9f7bf577c9f867ddf83865e709f42dd2d2814b4c41983a6ff3fabee0c375fe55bbb9b556fb62abb30e589a99756332e8075846afc00ba72a8ffe1e8321eed5589d7b8019e4facfeded3c24568a054b869ec6be0596e9639ac69c029584a39291f301e2a50e4840d0dcb2c5721bc0bfece89c318ca28c0129845c2261f7387f141364fb9520414012fd8822f5f865fc80db6bc623c6012abe49ecdb0bdba6f83bd463c54d03264035c9fb1474fd52688444947d536c3f5a697f3058116c33096fe5755ea6d6b2da7d9bcaf8ae59e954a989bcbfd433a846726df6aa1d2cfafc03d644dc37b6f6cd330ba532923c4e1d421c45bc7a6e2fa6a3e38ce87a8aaade1767c1869ecce9d669eae309598acaa146ec6c2b838fb994c2070797c6633d228589a7f5ae9a79eca5e96ffc46fb3a48f9e8ff875c85c81e23420f64328ae5f81e526b9ebc70b5c6bf2b843085616bfe52574cef2a92766d04fa87a1733d8f457130a654cb7d0a815c0a31af4d7f50fcbaa393d41aa48891f7deb4cfca9c0934fe487c13dab9ad65309dec604ef4c2a1511223903566826a7c4bb3019fbbbe712024fe68114c5c4dd1fa4683690ba9875554249c2232c615050fde4333e87a46bee1f585640f09e1a98f93c1fa081d13c7e472e302a4cd6284858f2267bece7c6241fd02cb762c3bd1916138901a8e1ab9f9f43aeeba70a98abcf3d970e02d545a72d75ba222f9523591d98d8876fcb07478849ec0f224b87bc400ec94a93e8c69e5d2a2ee1480addb19472d9ed064b91c0bc0935faccd47586ffc047a4a4328e1663f05755934c2f38795cc25618e43ca8bb8696b48d74e3d13732eb1d8f0e8d9c49014375cba1c2da94aaf0d8d9a7e073e567a524703d87a0f44f7145081879d4501e6c53820beb732f9a2e989f7033c4b67b0d141f7be4d5865cc8354fa4eb4c6faa0b52b0b77c062849be28ddc45113e74ba655bc50d95fdd53afb8e9288759a2ce77632f53f1cdaa0693d84e605b79b442cf482666b7d02aaa8620e5b19651f4a201e8cdb41c0274e9d4ab1991e7c704e8e406022114a80073444f9a1b5c60b51960b17a89f999db57b91652055c47eac7c3879ad8c08624b48ab52d6447f6036eb0bad12bcc641112b2183b74dea3aee4d151bd33ae578fa1c6a3b8216a76d4da1c46312362a29b884fe28f7c36ed9fefe8d396e4d0a6f9b6773191a278b67c8603244dbc4f4fb083a6940b56a9e341b4f830eb9554511f6f6cc9d9c8f8da1c9fcff85db0ea16a329ad329d2958b03808b0b76e92f367db0dd9590dd08e2420c4505264946a2e1ab0dd4031c1e8bc18c343085532927381a78ccec04a144e2ed74dafa8365a7d6d9dcc2a23fc23a42ae4b47372ded1521580784dfccbd61ac29b1ef59733fc4791f2c79d165308d58a9e7c639b1b462990f40184f6ce620e71235294d5f050ae248f43ba58beab5415845415d365f2a09fa78119d9c8a6a669c472d187a905962d6e7863121f3d17a63b9316e71708cdb2f847e2b49ace25bdf8fd7910cacfc6ab43fe85af63aa47d6949e10dd4b9cd04a62797a79b84d3fc86705f6c74765f0fb4772223e433adbdc3df68fdd5cc1683aa5049ce9362d8469787627db5cd43259609bed0bfaa386614578cf80e841c42d3a87484847c50bc1e3c08681fa2a9a37bd6b78e5b8c779550e48b77997ceb379911bc26494781e213d6a04ec451c7e5c5606f2c38ee595f61c447f5b713a5b4afe0c915ed71f394cade69e202e987568f86f54c293569749c95dc07f80be55c09689c1dbdbb61f59597b83dc46d43f72e42b1bda86a5041966b67329f64648bc9567947cf26e6004a13ad7025b76990ccc769162a6e1a4e007a145921c0bb5b91e9bb9063cefa60eee689f567d5f38d56cd29e0d82cfbf2eeecdee866c1eb53277c12204617cf985234ba5240f1450bb5b6c2819436166bbc1c2b870b95011babe15d1ff3796a38ff52f6f084f1352b3758194462379ef2ed0ca39546e5f1aabefe2a558300ec7cda776adc588b26915376a2234dabc37dd3b2da4852ccfc968cd173531094b19c0c2ad44d17fe3d5c99cb9fe7ca9115190a7a552a46e86f5d8a7c4f855cc2e59baa506276e733ae998932040993131a8b8420f7475d636c8885ca8fac1dccf72180cd44851ed63b4d73512210abbdf36086faab160a7f63bfcb29910f52d28a4e702679ae4ec44d786975f42f21ba5516402a23e890ee3a6e9a156b8590acf4ee7d2d43a4fc6ae2a1ee5e8ba41807af6e396cc9386a7464e37cd40598285a9abad57bf2a0093354ef95de095e125b5ffbc9904574867dbf2aa6b537352bdde4784b23f93515acd4c6b9a20e809e098df95f799d94a706a1d7744e2d9871402d6b72ceecf04393a8df578a1d64fac2d9488ff0ca281e4d2bdcf82fa14fd5cd371e84d8810185101e2acbf1949f2f2b68b0747786675e59d4fccbd2c1d8c5b234c71ded3d346370c73bce3892884b2b71e305be386f0a1e124ffe8d99f8cd5a2b0678c230a4f0f3e316e167fa20c2cc23bbc6f0542a889d5b6d9547e55e712cc6f188af4f81c140955608aca8203f9842ffac84b55813f183bbacfe1f71f14053b9ad0b9ea3c9df349af64e2b6599baf05962e0091938da776a831f16a9640d71ed17ef26806cf1254581650b9126b636c949a1744e13a24ca26ff303e59b235b1c235df1a4a4e69c1705839d32e30b4217e9892754b5f1ac90cefb86239fe4a84db63aec8710819234920eaeab89835166602f28f937a4aa7c17804d081478381cd81d188f4517b4981914e8d184267405f254e70a68f3ff79295121f8db614a9e77dfd28b16c172176f19242a465f021d39fda0d95e941b45f9227f33f142808271e5e1709a5923416d12c906f20ca4e3ad660e91a965ccaa9febc3cdf2cb0ed4d4aa898e176c9de1f9f45304c62d04be7729aef71bc4f12a986a8db3e271b8256628757124e0fce717e19b3a057802eea680436e1343ad05294215fcd249424cec0a923ceed9b815ef4fade225c6bbd06ea815876512da4a902ba283977ed7db771dca03a550b5a84ea5d4da8d4f5721f8da5f091995dc1a920ef3a396d1e7dc054d11d5a1a1281c38f9c88ee9c83f08a43aab37e0e20fb374e7c66cbea3bf4fe1384643adaa17678105526548e740db78a508f04a20abf215195ff94f42f52d3fafee855a5a4dafa8d7aa5a8a4b3a1d7a7aae7f822b600b13681387f3695cd5fbbae117ee91b65fc8fc23368eb909b4008fc104abec76b6a9b30497346b5d46b9fec5defb40fac10c61cfa0c1408f97aa03f0c627f49b040d2165d72465c3e93696b376f5d6c6e7f6d2ec6f886e156bb202a9c65915ae90739dfc9403d5887fdcb4c3d0a551ed8396322077598842f96b7710b3e233cd6e3377e59b8a9a703a899c69852277e4a644b18373acde63c8febe3ad1a942bc64dacf2680f428a15a868851dd50930d5ca51be6badea2a19273756a4350f122fc79d2eaec5e86ae55c71ba85d628cfcf1598709ce033c8f263b0f06b31e6d8adfa2ec05fe8087021f0a20bf5e489a1636d633484711722a4c5f5e8826c80392cac2d7e9f816e83d5cdd9dc3aa608993e26700f2ed2e59089a217fe185857b9e7788e3595faaa0d23f5a3519afe3810cab25449397c75ea3b675eccd49205266e65c604250e68bee353db9a61ee446248c20b9a4877df8429555fade7922e9e4ab9b6ca3bf14c44f865e614d27ae5d5c8f2c14cc0ea09e18348316eb15efeeb2802d865fad19005cd1bbfe92667a76a47bbeccdee9c4e2281f3e0eec2ee890c6a7769f5be5adf953af78de19cfdfdd96c4c6ce2fc3c1b83189385c10dc18204728e418f578f76995235d0449a0df543e637741949efe754bfca8c4f60260a0beed9b4241ff2c241ef2439997c058afb4efbea0c0b9c71ec399d12a167beb443be29e963c3f0b29a92bb20a01b8018ab62070d3daefc32d27e2b0cee9c1a6447fa60c849a4ae9932ec3e8ee183bd9e7c7db452e294428e318aee9b62be154eeeb1ef592d379c28c5d11ac47f9d4a3a06623ee3d154330eae94d8db51bfd6c4c5a747e4da6eb58d651b25302c0c25c0cc622cc37f2d95613a26c162c6911e24895a865a80c1ae69e41d9922d5a5d3c6b4eba04cc467c994fb248b1e01b126b306d1b1e12fe1b1a434d63416c7bced28aafcb8d08b9ee49875dc380381746798c13e9988f8c6be8177954ab71c5eb981794d129af369d08a5a956e2837e594a990510e8afaf1a582ea6771aacca963a4b764cdd0455afd60d347805ed41bf33a80f84996b1462a830267975f060bf51bca236884b27b48b86151d2ab5981db2b1648d4c399aee66d9f7a13a587928521daf6cb897c4a030494fc0d5343e287fcc22d8ebd0a414693f4edd48f86d22e255e890fa4c27e72426895362b4873c1cb83319f294248676bc91c6227c7d8b5d09f5ffd10255d773854da815d3f9e0a86f22bb7467609536d02739217f1be00dbb517d37a34929e9496f43ce72ac9d47500d5f3efa00e18f3270286832de79b1e2ef45ffd20ddd590f139e336626e4b284832652790527848c953a448131de4ce4f821e2ed861a3710bed093632dae491b09ad9a009b6b17d0ec3e5cf6bb7c1598fb806f50e2be494eea513c39984e026c8fe077085c347c73eb24efd151a3828b9f4d627f7f005200efe2d10409733a03a3590e9e07841d15e9c68f55489ba6d7d843e49c4f6b6bc937f1a6ab31b2bfa789349d46ef63dd047289ae63a388df8097b1bfe9cc93b3234190c4a4e5e8167ae9019fb602fcc440444c31c11c1d97cbb69ee224a694d6bacde90b2766a84ee88919b6b210c33ab8169c47a3e2ade7890a82b6716468d007fc274645e13bbad028ef16fa31d287435a995460b82734005e9cbed62896f5f9831db7d7fc40ab4ae373190ab60d301daa5670041cae64f73a30e66e3685bf57b44308fe2dd60518f88b5949ae5bd380ec364db9c6386b6be9a65d7008b793a5f0ac7cbb128f130a7383a617f2896f8041b13ee2ac8d71034f94231e5dfa820311a00efe33ed7a3e8456c6c5b29763b0d2d949aa1a4187e811628fbd36f64a50b087d1693f2e4d0f31c6b85a27868847aed522fc15d4b3d6ff1f82029d2aac78066d67025a6ab225da0fdc547a77810e0ae6f0eb3e67c71685242612cdbd4cbcaee91144a4201f1d1786487c89511b9f1950235ba392f0c81ab13e6bf51c9851466a4dc7bcd25884d5fd8850329b84e856634e4042bd6296754ac99259959ad0907fee597778b44eb3ffea596df3865dbb68dd8349ca59452588161c2a73f806b1317e8acc3d141b1db5c9c54aa634b3838eae0be69a184ad0e1f9f996e35bf6128e1e2f8eabdc6dece2fc584e0d8a53c527f608650fcb285d775621280439c5081bdbe5c0922012e86e139f99040a2b85466ddfb3f3c107425c82350f007c80f6e814f3d57993828065a4308ac153ea98a2d024de2f7cb895446fef3a3ea0983fbfbd037e907d53ea975a150a219bd39d271cd040c9b391de9b375921b37dd249a8dfbe85fe0ed25c19cd2ac4956ffc3f00a525628d605f9f17e42d4800623896752c207147ba505f9b68e151363ab4571b8d41a316ddffc8d58fc7dafe4c5c04444adec440ca1be3d773e84c584d28fd5a43f7f889aab35d26e609bc1faacb37006ab6d9c573a36bfa1a4a3b39ad05c0f6615ca069751b0f2121330a5611ba71d04241c56151abacc89089bdd6cfbd11d440405dffbede4efc835847e26239b7f768c01772774bc8806693a81d8ac84e397146f6b837c551b9029cc77516e4b817922f6887eccf349416019df3e56498e4189d8c637e6dfa9bf78b63e1cc21aef3d3af94d62a679046ed5a60df7f53f2bd576a874fa255316997060e92315d51c108d651a06cf6fd1e188624d6fad6b46d6c89e9270c2158054ef4a75e646999d2c9b4fbf845074f381daf5d3978927b2db9f08a409d88b92320133cd9a15bb711a03ea4678bdb9397871034892d9867cfdb59ca5ec54156c0b5f0454658a7f00ecf75b19b41432606cfc2576877be59906c1a2f58b86ddca9b40c52b7031620ee07325890774bc11aa3353c46b25c33ac7cf6923e4718c6b03abb1fda59279b64ff67d1479cd788c60dd9dad32f4ca29ed8a21623f4988f96262e911a05a89383cbacf39c135d30192eca1b7a61ecb39015cfbc93403fed87d87ff90e4d5a5660fe73d0429ad2a36c75a948f7b23c5f7d3300bc686d8cf01d4136f8efc47693fd7b3f01673689353ccea8118d8df55386a4b3f46f51e8e25df6553a97c37f3aa1c3209cf8615df7916fc713b5da6a16f9a1ab7997385c34406c80a8145b9e68cfef20e1c1b85ab9bba5bdc3c8b60efaeb363a542520ac35a769884f26bc1e37341eeb4bd10e05f610e69985824684ba2b4f1383eaba9f9d06f425ed56127dc6f9a377dd1b1a4996a72c4a6793faddc84102a2e9efb47ab35e21037c3d7f123b10001f65f35d01e93086be6cd006928a363dfeca6f8984ff2da448f1ed971b38ebeaf65582195c28584381ce0a0cdb089b42d7ef1a66f6c86bb93d2451487b543512f9872aa14d28823fcfec04d83218909baeaebdbe68c7fc0031ef5510c6af13ac26c9cd1a611a9964e0ca700e483fd34b1ff5d3ef724cf4cf2da1da90939314e12a074777ca5d5dea7d7f2ca95705bb46eb295268433c0e7b2cf1d67a9bbc41471502925e01ff9d6882db9af31b4f513b0caa56c9e384a97aef25491b110c2ef2893c73c698634a9c4eb7a6f629110201ff70c75a642a70eb5d6bb734ee2367fb5971a5c453680df312ca8c4c600fc6c87aa26a3b4a6c694b0205d4fa5490ab1416dd0dfed45b98f3864fe9d1ea8c109bfb64ac476dd6cf15dd6fab1207b2349c94cf876849fb8f1e10924dd629bcd594d7568ed86e00fcc57cfe203cd86c2c8acb7a2ea2cc538c80157866aa64d08fd60dcf435d04d3a5d5b421d7115721a517bd9b7ee8641ddbc16bb9f83d0853cf0ade687f3193b961eccf950903dc41561df7160bd2eff2b7fd5f62fef07d736a0a8258c671d10f3c1d22226babdc74df79161d13c37cd03f5489eed0d18ffd55aa6e90c363743d2475330e1571662d88baeb6c412640bb662942f864a0f3c9ce1bd004f2ca6ce309a92fe330fba591bf54ae189d7551a17a6c888c2a9d548c8fbba86de3e0bb35ff451c5e0d8b1a06f546e8817939dd16beae7acbf03cbf2c93680a911f731fffe7ba1be431278a2159b9d8357208d8c9d00849768dfdc337503ba297d925715c9c90646e9e2c2c357fbf41c418edf35e75e320c376d6ece636854dad5c13c6918eca1e09c72d6aea20dbd0a5703c0ea0c1bcf9f525e5ff42f74aa9c02b2b707741db6a15682da894e03e72c72bc11ae525b914fcce2a03718197ef758461fa89f54fa677a5561bcaf7c1613f47e22f4d9445fe3d4e02b09fe429fa61da68d10d4dfc0524991597620cb62fc01d7abf78c187b3b0ab0f65f7d54735e31907588b9702de88615e82885e4725ff5222a093456b77110e58655100b7a9dcd8cc35d0f719cefb34392d9e874683974c3825fe414d731c85c5b64633dbd43c0c2d1055dff43431ed75e1efa873f0bfc1472175c45edb36725d6901d93253e7cae05bf80b73e638d8acd4f296d3f6de458377522d7e774d2e8705f9e9caf5a861865012edee8d945cbacfadd24a08267f669d62b7bb5ea816a0482d9725c184f4811ed412afa002b853e3cab0b37c968df28cee391d6ae1b6355653fac0b37845a3bd089c0483ed9cf284b16aa3b51cb012cd21a10e701479030037de790d5e05f942a7992a76add67653478a9914c02b4421d8ac68492a819b930cc25120779639825bc707061fc7fa83ce726879f71cc80e4b7d394d87adc3b594accc298ccb3894c9cc6aa9a42bd9bc38a7b549b936f126f0923b37970c5c6965b10706f74459de19eea035a52e5d0d6c41db6fdedefe78dc3994aa390b2a790fa26513e4686257e2650be75a54b03c61b25a17c1fef834f8f25d94e76cf8a15cfe99791dba86b02730730a6ce58467ecd0810fab78841a3944a35cc1defb2a59cf0368d96c2c4a0ddc64cf74dc0804b6f11257fe4cbc47c3527a01dc82d6216af9222a1a903543692ef554b22be5709cc74dff32dd117c720d03bbc1f8109728959e4d9708c3423abdd0cf010a0805c11ddcd27d6ff3051161a6306da0c5ed660d0688a51a716e90f4a365f6a6945670165e2d998459ac1e0a628bdbd45d1867330246a2c423d42998d1c88dc64abf1732ffbfd807f3a7b48a105669ff8913b6356177f70dd761eac826a9365c4eb969eb5dc4c8ac6cb0d9b02911c02ba049399d45ef55c36da0e4c1f0e75456296ad27aa1eca053f033c0386a8d197d830656fe15267db3b6f5a56cb17d247b1b7f097794903bb601393ec047cb4db05cb12e37ca58bc18f010139d4d422dbe17c7ffe647f053f461982882099e61bb474d01dd4140830a53019e31393414892901b33382d8fe9cf5ebb0894d4b0d54fe14b5275e1ab6f62295e0aa81330351aa4f00d331c9084165b4f24d8e2240607333d10734381227f2419200d723b569218abc96d0edb5dc176f1c83f5c510b671c7823eda68291525741fbf5d216231273a29dbacb63a13ac78aa9c151019fd2bbc94066a1e19298e46a95d50a82ef365277c55b2f0757e10eb5fe7f39f1b88ecaab94dee666aaabfa954fcf11e6db1b02ba4fd900f81eafaf8388b4b54ffe54318c2794454e1d4cbcb97230fbdfde05a34c6cbe6c8658240eb272f523dbf92094141c0b6a12647dc2b203424cab59e47608304a6119a16777b6f8789045b032c4c61e5df4cf81b0cc22593c47f5facf27143491223cee5db0f18a09660e199d824ae1f524df54b5fcb777aec926606d68b4c6a7c20ba004337a201a2cf7c7e24c43d8b7c0c8961c348dab913f782a16854872066388cf45df4b700b0e6c8f620cc980761b349b66def0f332f39b4d128c2712f48b4dc246f7df4bf19b462f2c24bf91ce78ed1e22766899d2231c180e958702e680f40bf1242d0e6f38cf058c6f260cacdf0574219a2496f37b93ad165eb0d348bd9b27e0a11746292acdd2cd94351eb403fd819308ed0fbdc2c2c3589d0a2b824c31b138cf94591234d34a7dd285ffe62567cd437b59403506990e1a51119ca37ce63fdb6b490eca6b3acc47843887e09f496ad069a605b3849c19b1c2c51604c1cdbe14349030b476606d0d84561a09b0b6c57d43243c0f81a0b50bb6a3c3854defe0365e53ecea2ff44d16e29053facccfda0b9db61b255ca304b279ff325e8b1407c443eabb8dbc40b61ba168a80f4466cf5e2312039c6e1d68670289cb027db37f25a9128f2dbd890087235867bcfd65f5c0b45f09279217ce4100d04ecd5c944034340a11c27b42f7c316b775009dc445629b086447565ac89f546a7df403cdbd3e9c3acff1954f867ca39dc01a115a99f7c9a37066de5a9649a9bec9a20bfa081977facb8e70f45a06336bbbdddf7dce18ce0863b7d726e8304ec6c223739a2f875bcad98463d94dce7f6d8217f095eabc4e56a1326c69a72538f8fb84b127302725b87643485a2811727c8315ad4ce5cbf8aa9961697a11f4e6b8cbf1c7bb8d02d289d9e00d1072ee0a9d86147fe91f29ac65881e213bd763a73a12c52e0123a1b4524482148c3415857df4d68dd0c44486d0b676f5f057282339e2dd2fb5db998cda810b9953722304bc55a23dbb0ce5186a1f761ccdac95ec1bf1bc7979f350a2bf6d8b0569e947b55439eb9c08e683a125df633dcf7a13e4fc60fc1d7265928531214d33995f3f534ba3cdae407dc4fc62fc0c47d5bfcc00a7ac014c85277bacb55eae30a3b59640c29b5e62fc5c7d223b38106415f015cef2a05fdfe294563b1412a3df7261bc1a915538113da584da571e1bf0d25500d9e541fa27c6c01d81374eb78b476a4d61ed850db12ed4ed0f7b052fac911f12cc9b3ef5767c2790f589d3e69a1cc49fb4710283d2f8b3e3b5f5781a8db0b5e77e8848bf5bbf0bff77d96473158a41023726ac12ac29a288608039dd8d4f2a3904dbbbc83eb0be779d988dd3a26a8cba4d26d3dd26445d379d7058b8e01612e8d45dab0abf6b2b606032f3ceabb049ca0044742509ba8a5eee2160e79fbe3848dc562302d4e855741ed715b1c478bbf7e1a7c4218909585db324856ac1d9b46d8a3b7bd0364d3c92cd0b47501e37d61362f9817961520e491dbf14f10cb7175b0d4106c5b5d4a76fb5def20b4edf63cbbb83718b02077a140eede0ece7af8d25e836aa22a3ffabc5d93126882d251e599d82dc944b6a74a6548ae71c9146d8d35e96c2a0f712a4fec878ed25ba75b9d686e40478ffc8f4d849e90201c88748bd0a2af040d3f989033f9628fe51db025b76f9c705cc12630557e92383df030ba6df27a3fb8dfb02bdeecb0f7fde9cd9db9e8bd4533c88653d96af97046f04700f2826c8280437bc628f8ba38febb117340ecc0e849940a98fa17ff433fbf8d9eac681ea7bf0bb5d93f562edf4af2a32f8bb9b4f71ccbe4a98c3aa6b6b9408d2eb8132b9403fb8e257c75921ea7209e1c0c3050ada755459a4a37a5febfa8905bf2ff909819e604d5a4d4fdc07dc78aaccc6de8f183f55710b113196a40a69a3a50860b81d32271cc2bd593556531e57981737277617b0a13a2546eb5cfe2ff81bb82210084d74f2cf9a6b278d525eff999128283b168ca2ac4d48bf207e1f51e59bf74e71c3a85a5abbbb9ddc2606771c57e1b8da1096ba38b59d455ea6face08f70bfedb9bc8f6bfabdd0548fb2325cb5245c228773372505708ffab3102742168ab39839a33717a6a45b8abedbbc8212956e8e265104df45f1ac6f1f9936b6e6b9e76677e9dddce692ec841bb6cbd30b380e5f81bb267a99d501ea6c984b0d589dc4cb8acebf9ba6fe13462292b66825dedf0bc3e87da7a182780986bfdacd330bd9b20f6ca27355e0f4fd1d92bb024f58102dc966a2678c434d694ea087d35d9048ee7c6f08a0277a503e70153a4173b6612b9f3a453412569ba6ead284c0b41195c2cb83a082b836ce4cc85ada1d870c703da09e743aba41716860eee64c997218095a8d2b830723828d1ffed69dff08a09f8a90a1a5fe009ff79d9b8848d20c13dd56d8bfd44df2b6913c3f2d1ccc84c5f135d3501fefc5f1e6f62cd18253e5efdca8243b12864df5945b77a4ff27d41d8dc3d6e84aef205a93aa14d23784c285ad2d262f98629c8545754693cd9a9769e79c28dc5ebef13ad0fdfbc33783acfa76430abf40ec3aabb1d453f2fbafa90f56efb050b53bf7a2286fbac4ba526e5969a121d2f572f721f07824131a18b8fb0a2868ed6367f5b140783706f35453e014225d8e0d28f511ee1ae8a907f3d4c7145b2cf26f97e38af39ce71be9879db67b374849a1e7812aa8a52d2f0963dc44808741e759849d9a68b5a25f0fb2b466f74451f15359de8b61ea623b2577ccf91196cfd2d1d9252e1ab79a95ded3ba13ab3db60f57b4439dea410bacf5ba35972335b7385fcdd6ec557a2d567ee07b7b2db31a2f4d660a132d6294c9a057deb65c1cf1028cc0f6bf5908f90159f54c6d7b914140b48ca895893319fa14bd174b01ea2d41092407d46edaa5e2e45ae342f0c0ae8eab592ad89871244afabe53ae2752b1dfdfac57ed3d16c2cfbb9691332e4c9c2435686a06d6c80b875c4559037e1c69cce6867c10c767e827648306e9b5d6eaf56c576594319ac3944fd18cfb29ae9887b2763b648f99f6a662731eb36ea43221e6a603620baf58c2a273b30afd084d85ff1b043fd65a69ab24d7ef3483b9e458ab3c25374c95a15465ab01ac7da12d6b8126b574629827708f01208c8bfa2e24520462240c22302f31d30d49d4e7f3884686068baa5167633904696e421d56724052fdfe70eb3a70319f2134b30909647605bc92718480e932e27f3ead0e07f6d8f3b0635073559ce69085d240d8936559b547403a12cc4b1e3ff1f2cebf5dc5806b08334e2f36f0858308110f210307d208dc8d4d95b6d9f24c26435c1f86a4c91c51283714db627f28c24d58f31a9172014652c23f567b89c3e149cf2e33d7f886329a595e386d84f5f2327e1f052ae213f92764d280cce4b525a7ca6c789ab04cd878d0e2d1138ce6bab76c0696d89b3519695da23c868e8c5c6126bca8afc215f39dd9708891d9d520e0854451173057cae02faccad5b5d5098d9a40d0da5d0b14827b57edeed9eda9a20a83b1be1a1a0664680c01b22ba61f8641b9972e5b652f1d7cad11f4cab288f131122fc2d9f00b9f1fa35f43b40ccb1a13f57f41dbe35e8269ad5fe6e6bbbcdfe2684882412d9bdb97207ec057205a00599c3d729467cc2277cc2a7683bbf37db6eda4e7eb64b390cd9e19c88783b29cf61c4d494928dc99337d1dba9a6af896a425513141585833aa188a0a0484d299d4a31ae977742a5587271a932d0c64a2028551c64253578e1391d6183d00f214ce42739896ce4888e91248c7849c06420c15de193e0a63a9484ec0e4934c624f0eb624a7a26ce513135407b9eb879925166dc0754a8747ac6d1d0025bd59d1907825fc95a86d18c0bc156334e04da665c0e0068ec22be8e18e70e14f9b3beed38e6d3a72125e4faa124e4f938c258cd70eb5b1163248c8b6688fb94b657114ccc0a162a640b5f58a655f787edafc2e62815b6f92cb64f9e62c566b1cd5fb181567262f68a6d7ecce6c2d203cc667962fbcf7f61794294fd25da420fd332c4deda8b70f742bf7bb3981a9fcb0ebdb8803e14b4f21cdd617d70c6599e8b5609ce84a0c81cee5a2cee5a585636ce5a62fbe74dcba2e0e412e7a1e226a41feeb40fcab8b8c3dd6745c439a025f8f3e4a80e959a9bcb760a2bd435a0e944d8f1e5b662ffae97dc60b6dc443bb45f360c7d2cb52c552d52252823a6c6a6d847fd986481b970f9477fc73ec1192f7d24d0d64aa12364eef3f9a00cecfd31b65118ca029382e9e08c83ba1d257330a06e7b8b2eb5fd3f2528833e685f1bdc58b36052302de040dcdce7dbfe96b34adc1c02444b2d52a6151e63502e61dc453e4329a7ae5d36d4f004da709e3e0c25868f21841002f122c60c161c0001273c50e6e993af3b638c52d660be883183050738e1417d7237270626a516b8c00ef462bcb85a4e864c6c4065736f010c50e002a7fb22c60c165c10c0009f6344056efae4eb563e087d6c20bd15a18fd5839090d48a10e6595144ec56683cc850c7880a886c8c65f0e5026e23232ad82e64a08c1f41193a468a50001a39523d4cb1f480434f886ad0a16ef821546c6eb4637486f0e81441059431c6b86520d283109223031c1f421f126407a86780e5e3d01a6e1d31aef032858776b84888971e9d213bf888624e9ac3901c7486f0f0863c81480e38cc3943a11a88f040e4053d1029824811224d88f0108942c40944a660848d113c181103238e18f1c4882018e10423aa14d1a1880f292832040f458e28028422521829192181111b5113548818009d279850418504456062841c7c9e90302c74510e53cab816f1203bac353a84b54208bf0d219c3f44fac204228c6c2e0781088f128164bb6ca853048badb6cb1ae0c89ff31d904696e4c83f9ea8e0f4b8b47119fff4dc586cda033551144a5ea05d9ff64051144551d4463aa4a1268a9235401aebc3dac891bf35b98cffbd39dbb8c4369286ee80d407a4f11d70647269dd9a386be2acdd68b604bb4161a60be50303b26d240dc6031cf5bc9450946c5993e53af398905756344dd334cd344f97a21cc64a1429e30fe546c95242fe54469ba3a8ed9af5b6bf5c09f59039cdb47d8821320fcab0ef8fb339b7d99cc5c31545622628c3e7731890ed54be2724454ace921f2dd58d87f31da19d1cbfaa2063f48cc59473083d093d093d093d093d093d093d093d093d093d093d994ad03099a8e785940829914a795e48897b578043498492c85afcc9134935578ea45401968fe55683b50cb324cffafe827f3e2b56e4fcd913ce296383362b46ba4238c8dc079b11ab89329bf056197dacc6759412e2b94ae071c3af10c4fd20aae7c0089b9bb531bac590a3b4af8d6d3ca01744f538da20e6d5f9a3009bbbc255551b7b84ee19bc3a06979e5226fe0ce93aa6c6efea7f575026be75593898aadad876ab2d0697867e7745ad0a61d41e438eaacd37ae70056f957139f6ad1bdb62b84cf48d31bc64c6e5d815d67f11c3e1cdf0feca04a5a21b78b42221990bd92dff881442926c213a211f423e213f1072042908e9d121a2b404227420020544cc8008179c80ea201341080ca8c842d80d75840c0102fb69c797b5cea96d30948ee2d9fe93674f892383c8ce5a6badb5d65ac793d66aed35b75bebc548556559d7b46e48d7c4fc336d6a9acba85d99a65dd33fe79dedbfa2e1bc829158664bcb353f2c38db1f7f827c846c7fd0694f1964fbe397d035b11a19442445a2e95134a5a747f2e8b90290060070243f3f84343ffab6f4cfc6816eb6fc968d6bb1ebb36c5c68d75fd9403d7c6b9ad39ce034cefab414a8dbf2ad8da3e1db30d0d3b6dec1b72f1f0050daaff4889aa08c7d177ab3edbba6365306d9dffd210cf4b43dc99224a0d34762249eda4019f331cb57b6a4381b3eed20fd01692cda032220bee6c00c99fad8f03593c3c83445b98cd44cf4319ed785b7c3f8e10ad5fdeb821b6ab731f9cd8e05e0bc07e56105156374bbb1d814cac8bfd732cdff3d79d832f334d34a140943f2aca0a8441965d44c26209aaee4d560f4e0cc7c11931cab6c07caf09f5912f326663b70667ec8085972d68dd60d21be7821dde768246f54d79d24aded5635abca6ff89450de6cbe94f7c219f89f2d3241e6aeb8756c88d19035a8d6f2a59e70a62586c4c90d49f4e7cb1a744e8cb452fda558cc0bd5dfbf712d7d2946ca3aea08672a46d26e2531162c8cc91bb66636aa1b958ee1312a6c424c7ec41a00f7acf08b1712b351fd9540a5a15b38e79c1323cd7761ca40b2f67c9215ab48b95d388369a41a514f5d59b65a175a197df954db0e54d91fa68fe906e7cd50d31e3d30cd381d8fd59836e00a3c6cc0fe7a1bb09817b0bffe06a66f60d3864faa7b3e49d6bab1186215527c18a5dcd7ddf79d73dea794d27dbfd65aabc54875d3cd5a6badb5fbfe3ccd130a954a69110e15d6c2fd19b2566dff6aacc57d6b549a96b40c352cb6fd1a169b6a16556efeb4a6ee1862953da90d9cd9980a953a6e29298bed0087414bb4f4392dbdfb73d4f58dd5c92a512f593be0bbe18434d74240e4400cb10a8cf329b6b9aade6e31e428d96a3daeb5da2c060b0b102be7815980db9f04b76b9825ae47a38891626edcb76f43c79618c9ee499a8fd558560cfdfa31fe9a646d92b565ac62d61ba3cf28403042c5480f901f47803812c4b22c8c8f1c39c25335018b4a486c8e547124e76643140645311a895224c628251227488e902e040c934827fbda5027c969c7cf31465194f2134ac293240a8410421821fcc4239bbbb89b8409548a4973c02129e824e1b1b9a993a48424b52592258460950a10a1891f80d081411150ac40856cea3bf8f01cca9f9c29a51487d46dd950e748129014c15da0424d7017c2944170116a828b920d0f20a6920d0f5a8a4484d01cead113254285d093c4d87403244867ba0162dac9a95e4d514a2bad1b74c804b47ed86e82322e7ce9c99c180594511f7a0f2dd8f063e74f2cb1e13b00cac02fab4951d5d2d4a550d02872446b4c37406a90da5553bda940aa094e5c531d4e1021a70e2748775dd7755dd7757d57f56e4ee5d9f2abfad59d9a2347b27ad6f2b0a59aaa536a4f4d5d2caf0e278890538713a4bb30c61863ca59fc71637a3b2b88902d1f9f3a9c2072545dd7755dd7755d18da2f6270ce8927d6d7b2ec77d9285b3e6651996dc2f2c891eda4907bea70827417e65182535f7c53188f2d3f2b6977caedb9291268578fa1ac78aacaab76aa1c3992159c4f447bb9e06a3f406e10ab9323cb0439ebc602627d2c53b45016ca4259280b65a12c94c932d1cacbd93259a6699962756fcea1d0bfe59b48e6846a2a958ab4f22acf61dcee565ee5551e8ea69b5497c2499d524452dff77d5fdc62cbe51bcc26b2b7ab3775530ec3de9c43a1ff4aaf4bb1e536faed6e17635211b4affdacb5a6bddded1cc6f57df96a2e87e6ede2edac6abbcec65b694db94c76cde590d55c2856de8d31fab4dff77d5fcaaed8d06e718310b42debfbac3dd9cf7ef3fbbe2fa6dcfab4aacf7a55dede965ad767bd29ea954e7cadbfed6c674261d0854f9009d40f5b5aa629b6f4523d6c79bb27b6fc86f0982be20de22d6e7d3112687b8679acd6f55ddff565d7875ddf757d9a93ddf56df9f4de7b31bfaeb634cb34adbc1976596d55b5deabfeadda6237b525add7d51cecb6fc88bdea8b2bd6f4b2df9695be58109414ab60583f66fd02aed7de2d8d3db6790b2b3f3f6f1c0d1f03b0771da3bdbff5738bd11eff8cd1748df5f8f15b9f1f5b333c6f1cfeca425cd196c671bda671b83c0c74e3a6d6d3a585f82e1a82f40cbe59fea3678b9ec177e642dcb81cdbf14fe99605b6f615ab3119c0618f9f9bc177a63911ec1abeb1c6f4fc19dc92db67f0edee84ecee79db05abfae93038e79afc11abc1f4e74dd35ed3dacff0bcf2da361fdbae1972253f86619f315d31206eac71546fd5a8b415ab8d3dbe75c4695befd79c5cdeb09f3f3d907dc51a87b710dfb29e866faffc8ade346ce29f1bf679d3b44d6e6ce3326d2dce7a1974ecf978e3227edf381a3ed10dd99fa3a7ed58c5c1404fd8c6e5a8c19acbb1ad877fbdf53364a5818deb40e75356318229ece81e883b5631822a7604edf8de8600d0018a9a0fa258a2c4922596fc60890b4224c89a0c78902b91243c8ef08ae04db1e486253a2c31c192147825f052e0e178427843bc233c1c783c9e135e10944871832b81828ddc81b7c3bba106afc7e6f2f7408957832b41422a71628a4aa0dc10c5542245c9134bb07b15124a9c28816243cc7bce871042b8c130f22dd3b860b4d6332ec7a603d82dee14a45065cf303fee2c6540b57a9d19fd8ad50c60abb0eb06eb5fac6600bb05cc1eede9779b52467af55afdc66c1fa2909b90f3863a4a4e4a6c94f088314aa9a4537203e10c10aa29439173c849a4a8a126a1a29b744eda52830e983041921e382c810817a4a072f99b4481ea909b1c61a154e103c98d4d14337fb40d7590d06073f99d096d2243c9144977e3845c45f672fdf13284ec449e4778e6bf8b2341d0e2d4e4bd733e494e7f69c2f3b106e7c45a8c52926a447df5ddf26510292729a6c69c9e034faccd49636e540ae311d54eea964b1e5aadc3f837ba9d9756d5c213639711d3aa5a16dfcbe27b55989555989565ac5d195bc958ae95f82c41608cb2674acf949e54ce4e0ecf97b393e34520f1264a8751282047069071d2e8fa058cd2a54f4a27adf55ef656d8c2d785d5c49d65179669352b2b2e18a9e52584914097c885e55ac16ae0d68291e2ce2d584ddca089a10bc8c5c56574a1217f6e5e4aa3671c8eed5a7edb84d0f19c4eddb19a976d311ad7aaacb5d6b2765a6badadae9d5756cac1e02e4c37d1f8c02505b78423e999dadf412b28d01d1ff48dc5b6761c4636c565e46b365bfe0e97a5b2544b0ba0b0e5dd59ca65644b97daf25d72a48b2745ba44912e50a40bcf963c3b3ee7e2844a4ad2d01e4933a7481aafd4ce5d6d96132923ad9d1d39b29cd02f4bed6cf95a49d2a47aa664543e2803ee975d5d52483074c1b96c398bd81cfc81a396c8b8b1d896c961645ee699b2ec3e9779b53e9779358a2d3ff358522d5e06c4c52469bcc56bf15abc16afc56bf1b6fc96969c961d49537d23b96cd72e5e0f3cdf69880fa37bb5efd5216a27ba294b6253ad933b4c12be51fd7d1b118b1143665acc0bf6eb5badafcb64299fe43a468a91564427a84032375b7ac89f8b69510dd975156505af9539497660ee00634d6a8e9e36ada99bc8e6a84d957d43ae2fe1aec13e6252629bbb6373ce893da6d7b5514a29c56aadb5564ca443b6de5626d4f5dc94b25dea8b1d57eda5453ae4fa12635f3d09bbfeee0b7fa5636aec4ac7ae717df5a4eb04e18c8e7de998ebb18fa95ec7c6b40c97ae61b1b18670a6d2352c66ace6e869c22baf581d21f221c777910f221fdcbbae9a4c221f443e887c902e754d4d0d8b2db5150243171cc8c60803464d4d0ee3e523ed0169fec78e4fbb1863c4347cdbfa93cb484f8e2445a2da19d11384a35a773818e8694b91e7bfb86c385ed49334ff14891e70245fb301ea0165e46b4e4099fada6b180d07f0b0c1e56d00991ed3287d4210e8e1cb16e31f7a1d2bb86c31ae635e70f997bfe1f22fefffa2431084eb1b2f1fd22110fdcb8720f42eaf6305d10632b98cfcd016311aa21f993e48c710ab806c5ae2b3acc40d9b2f5f43398c9797d0af87013409954a131d76931234414193aec90f4d806832c4bf8b2645a0c41863b48132a65b512c29568f4505f3c03f806c292d94936bdaf21d6ff13af499c14e08ec3e6d585a5f97919f4fced43dd2c71a69eaa9835a5fbd453f6a9825fe533b7d2722a9562755ea4e5f3e89be7c1db5ce27b9ae70c0b4feb516636badb59aabf5afe8cbdcdd2e4f728cf638b2c7af69982539d318ca51f638dbb4e8526aeeaefd9c736a4f29a554abb5d65ab5c7f6ca36510ff2f5d5273bdaa552de34a1ecdb4c8b7a90ef5becb1855f7bfc242dfbbb33cdc9b0b1c75a866dbd8e5d237bfca44c4338c3d5137e88653a267bed63f0ebd89a9621d335a08dd5d2b68f750d68cbef347f86572e04df86c14df8041ae6f0e2846192dd66cf09abff78ce6f248c6a7299d9c9d194302a21a0cc347592a6e2d417409a4a03389af331ed60d000ceaf38f3135071e6e3481ab711a2e2ec49df07d49cdbe8f9be03bccf69527e148a94990f054a942852a4f4f4ec39e7744d9b1039c95cc5b1d9128b9870538cffb9080799bb187da73129a59e474da65a6bf53c6badb5976f34eebdf7fa265a027257b404e4ee4ea53c2f9aa2898328eec55e22c31a773ac94b36980c3520d984a499ff4189dcbdf7deebb2a7969f45054b1b587e3eb1eefa317e3e3eabc3193873777d1b625ec06ffd0d6c55fa56a2267e40c23e49d7ae8fb59c433fb8335e68ada63b7077777777778f718f0fa3bbbbb5d65a1cf5e55b29dde79c94525a6badd55a6badfd3ed9c92e95f23c1d5c5e030291ac757bf1806b88262447f25d80325226060b2dc0510cca824b16a40b108600a08c843b356a9b7b5b2b4435493901b6fcfb73036d181826786234aac6e19aa331df692a0a2748d13305154f9802852848814a1553a0554a3b4650030f1b6ec0c1a6470e3e7e9000ce481a51571de08c7c1ab1ee0067e4539a82344573a48c7c27972714458a24404af6c8d1144dbd1e722aa6804027a57302478098c2880d4a180204cdf9e13bf8a033da90ba4d7474769882a10bee96b67c0c034f3a6042761677c21ce85b96239b1e73ce39994cd94bc030c9b4148222e3eb253c4d0cd38ad918b98cbc2c6623cb2846c23ec326f6246b67315c663eaed6de4a6196e40f762366436a8fbd86fd0c59357de10cbdecb55785cdb75f61a47b5916267de408fe8591a2b4e62547f3317d61a4f9148ee0438c845918694e38832b0c9b36e65b2fe40b5ed7755d51de0cfb0b67e663168c9695699f358433f3351d37a6b90eec4c637f3776e95012320e2c5fc0a731c42a9a96accf0222b55d87c9910d757254a09303c4eeb6f5694b58eb087907a893ffc958da4dfbe08c530aea224c951da5865bbb73d3ac2899cbd6e7833266aef2b594c78e537374c786b2b4b9fa312d581cf76d0b777376db875b8352750a184ae80e9940c104b535242413279838d9215adaf8e5856a041b3f3f374720c618638c31c618638c31c618638c31c618638c31c618638cef51661c8e2db50e190b60840e12504443444344434443444344434443444344435c702fa52d6908899c013f6d1cf1ab1199a31ec8dbf5af49d2b86cf99956e5caaa705555d96353e4b8339c354b573a6ee7280ec491a33c5c0ce4ed197286bc97ae6eb6bc296fb1e3732db2ee86be6ec111f5c85ccbd76df92ddf35c991f4d36e91c14ba99242f3aae99cb5cf9e90e3d6b42d6ec973af2a7e9579ceec24467ad911cabe2fbb1d453bc89cd569385046a48fd1bfe8638b7e15758b90a5394d06558e166d9039e9b613a98c741075909002830b17212ae67411ea61014e1224f044c1c41072a04a1e90001a2801a409131d9e20024e21270c72f003063840184191b863dbb01e63a7301c0ddf76cd4d8cc3d2e67cd77a831bdbdedae23bc5f00019ea2051dafe2c29dc42dcbf813d836f1cd9831e3280e55ddeafffbc6bae45dfc761618fad8d0e21bef5a86dbdcb11dff667a991df3507837f9a9fa8f42ed426b57468660000822001a31500002818100a8442912007234551cb07148009738840625a389709845992e4308c7206194308308400180230325252040263446b7bc2ed81ef52aab368456ac8a3a46a91b9f3b8a1385244ea4fa2601c7a3c8624a4e0e627a250404c392500f6e6c015463cb3afc64ff2f36d6488e3d984e692793c348e8e89bf60c78babfe9b95d62dae8104f93ca418e11a8a2af859f6f0581417ef5bd863b20c2d70c3bdf61389965f0dd6fb93f4f6e43756e5db4e130bbd7ad36ba8ddabb4597ed0d5bc28289fbed7ada8c78ce78f6e119f9b77a35398dd8e120f219d6bf62350855914a43674d8d6432f40864b3c4555b27eeda820661ee531a413727d7abca02a86788b09d42794b188540c56a860fcbf1fd7185b61c05e489642edd686b300c43e1e54980b80a8a381260b5897fef0d419ca5ef8e03d0c73af6f62acf6fe6344107c143ceaab163c9c5ee92bf9a7686b13847f963802f93afadf72118152fd246016e00d48202911e74d94869bdd873db2a860fd45333d1741d5110d1ea8b21fce54b708a23202c1bccbcf22ba14ef5f33f3994393dc8a1b7e4a6a5feb3197ebc0ca4286f2d9ca8773cc22dd7fa2f48b539983f62ac550fb0e6c29d92b52cd61a8eeb9eba3f1f23a18e1673a88f91e81412a605fa2bac6b8ad0443c50d244d002499a66faebc051cbb2581cb44a361a5de1e65a50bce17114f44b9022d435a07fb1d1d6bcbb418864277b936379948b43ba01b5460c09a9db53346db0d20e7362e07349b1a9020c92d44a0784d22323afeb12ae3d65a3c71b1e592d136a0aa00b67b59846f43c4a38c8ed4a6ca74bf9d5b40f4ec9fdb65b425c5ec88878bc8e2823afcbc2b229119fd7667b293c88a88d4ad5b2773a3f3e8b1ba3f3d0dd1c8ddcf0848091537edb97b2341726181d86f03b385c9fe894448a669e1225e335cb8a9216e7788fd132ba99ca781efd0daa103aec97bbb3b552a00dd8cac8f0330a205c108e36a348d45c9bd1483c2d80f2f951b8df3a3fd1b384c760a41982b8c9df92647ba6b1fc5c0a3070c924605f8ec607fa8d9a216170136250ad9c8695b2ab394c3db70d755108b9636d0a4dda76eb00f5736998db816d7b603b453be23d48a157a0d8549af2364c14c8a59427d5ee952c04d97fcf7f131d28fdef04e0531c28e9dd50b09d5653078f42299fa2095d37c18d4ad43395821db515a240a3dcbd8c162eb019fde0caedd659ed2e71b84738dd6faaeb9521b60dd9b1c0ac4123e26a25ce848a9b4f8ba8b55f52d203835d2f072a75c905a7f11173572bbd25ecd37f96f82b798eefa886685c895b7d0820d86df6c69652dd2d5e0774fef4b2e7296332fd724df2ee9265a7aee10ec657645329e3d8eb6a95efe6e2af749763dfb20d48c45d6a73b64db73b2fcf782458608ef0c87700113c0aae2f6bb4688e373aad4f3a319ec18b5bd457dbc17d48aca48cd77161a37b7fe6567d7f28eb32573bbd91e7461447ec144bb5e23ce3c79811aa768c6f8d059950226c9ba001c1299551ac57ce158122ebb15f68b3a374466c808e9a8dbb36783cab710d9ab8698a6479925733248ba42c3e00cfbcc655c04c834010e3142ab49c60e1595c9ecbf33fff23098d92355c6c223ec990d09069956b6291e8e45f4178033846d5c2f96913525d205d26fa02e4ec012100f977c12d9cac163a3cb040d92a41c286f2a53cc63e93320cfb52b1cfd3aecb57c7dbe77a0ea85f05e9f583fe4103d7c0b93124a9ff1e4bd1f9d6760ae43404ab5f96bd600550a29968beb60e94d85198d6b683bae01ee710ddb9b4e523885a47d9da24b5a9c2f26e92e3e4032350abd81c63e9bca6dafa5c3a85928a3fc9e9010efb982d5b48d974aa76b2069be5c73370c21efbb3274d5a9301025fe3fbbdb2d71fa78e5b64c88ae2b1666b68fda1fb7ee135e77d854a86d2df35b7713d9788ed1d26e39419f192cc4bf3cff244265cdd5d838775153f420a6b0cb535f6fcce2190adc6dba360750d6c4b8d95c98b4fba3a9b2caef3f0d96601f5b69617f983365b767ed31bd3447ee0186f0aa3845fa0092af58db654d3a6899f58ada6b406fcd39353a18e02a37311be01a6a2bc2911ea457c17e4575e75b93fb096f47663040293734473c1c6ce1008577c20510ee6267c77735b6cb1440e1aa2a2fa520c70c5c0f3e0eccb40a5ea3c41978ee82a4deedbfb329f8d34627e794726430585c5bed91b552d4412edec053a4bbafa793f751fc1b09158ef9817fc708a5ace43b130446bc601e00ed163c5d78102a5ce0cf2f8164f0ae092f87a8388134bb16dbe01a4f9540ce87ab0296ef22f41294786650efc4154c50004e3ddf1bbc6646f2de1c9c8a7be4ade083131ffb724251572757f29b1528bf6313e120393d84a7d3858309c68bf2d8b3f096614bb41ffbc0b3376d59840bc35f6ca2f1772cced1418b7bf1d73c3d0fca885a2dec26a7e6eeab0ddf13f4545a801c62317549b3399a4407cdf086eb7e0d826b7d5c0292bbb1d4db464ea36f1781e2c3bedda778cef8306031d47f35feb60cfad20d3e09c65d62058819cde0dfd7853caa70caefe94bbaf8a759888c246844b73b1ea5cd60e90f4913e5c35da6a513cdedc2fe4ccbbb5ae9105e92919e681b4d5bed3ade015dac5617877691a51ed74148a9dfc30fc64b6f15ec8370bbe8870fa53c091ba3e2a4dab6493e95a83b5bc7a02352287456e2e5436a7a892e5b494a801486490460bb9b66807bda244cb5c2a72a3e518e1b3278e8b0c3830e1d387cd0e121071677f0c0a1c30e0e3a74e8f00107879ca1a99df3b7e8c48f00eacfb25a5bd57c4919d284234869726a5ee810b86610e6ed0bd5b95d2a28c763c12394ecb27a69975dd313e870bb642da8dfe20b0f4dbb2cad4927e425f3e5d847873daceaeb610092c91dd9d0a28a16e988b3ce9b2a070070559a5d88ecbf08a28bd22369c076e3d8fbbc681cc3dd57347a726acd9000284422479439a6f9b2a886f0eb50c9e54e56079220fbe367f3b854a813691bef89bc5070cfa7fd7dd1dc50f96dd93ca852cab28e3f7012fd23d00585ad474385d16d0d69e64f78e8625ccf51ede420223b6fa1e305b898af458c19c8a404af27a2dcfa6ef35aa4652b1117386f4730a071a1faec4acd3dd36e4a3f038bf2b4f1b956637311043eaa172f8d19501b5073a5cc416dc4dfe7e6a89b7dfe28871173eaab28ea46a66dcd047562dcf8926b83fe09f8c453eefcebea889bc9a4f073d1d263ea903a66049ba6ab904aca391a055ce97ac1a018734d3b1c80c632eafac0f19717e0c25d39baee2946a241ff63b917a2157acd50dd12731240b4d020f37180d86f14fc3b9cef71dea78a564eea08d57ceb4d0a035bed1afc0da3c51e7f1ecc0534a40f9f4ba2eee1696ff9672c182678168713d19a44fc60aca829ea03c61174ab95e0aa3b8b9a84e9dfdc9c24650a82c1efae6594fdc82c3dd83d263636da6616c6cd4b4d078078b0443d652ec4c250c75a952da92182ff809cbd9fb2b0ea16e6d3cfc5423be84de0f635f1b85e9ab8b5954bfba18ff9f8f8908cfa8aa0420b612ac52d771fedc47ac0dfc69ddf55a41f8fdfb0ccbe69b90ac9e9ebd5562fe4e285fe63d6b6be0a5cf37787f99fd8dafbab48e505b0e8398893c9c3526424326369caaba5f667991212ccb48ffbd6b63ebd4580cc9dc14258446024ccd58355fc3137c0c6992da37ff553d26300163eedf74b3206c8902c77ee0f8d23f458873046f1152622d731e2c347cdb89c6fed535ce76118308817081eeca0b447ffbe80232974be44c34dd57e14bee1120be30a1f01bea68a623660daed143c768e8f1f01eab95ce138f0b6129f1111a6435448a70626f7203266c68dee4d32afcc70de2ee8d44ca461cc88f6f69c4a306f1048165ce9b62e80a31f35591439761e2c452e1a17bab2748d7b8ea1194aa90f1ab06597abf609b48665e26e870a10f7c201f1756fb19775ccab78977aee11baec5a63891278a81e44415e86249a05e0407c93c480e2e26ad22f6071a5e8222beac58fc442a833f7abe68f3190204594e38762d0c82d10e825793d08a08dc43f5cd5b2e3351b08e0011b26c58fdda5a65833a08cee7530a84cfdfec22c3310747421acc5fa04577d4d50d37381a78a56965fbae93529a178349dfe671e8e03acc413b706fd46d06e420ce6d6d0cd63b4d08bcc84c14775563bdc8ac9075db735ce11a61122ba4d09a1baa261ddd61848e75a1a75b686595a5768588735c79471350dba5ad34459576958c79a970da31519cf2adfbae2923790a218f27f759bd8b0cf3a79dcac475b6f3e03784c585446fc803ca1353f3508bdc2179c6c09af17ac5fcc4941172740a4a940cdcae7f8ba0f954e5752a0d5e9abe2379fcfa11358a2b85a8f96d3ce1ae931db379778e2f684662ee621377bd2356b2063cd1fd87905feb95f13c6600f2ff367ef641d048b058ad840e4f92331017a06449f5de52c86be953d2ef209cb28df0530634141ae797170763ff00f0af2a262bae85b873db5e31d01cff3efb3aa3c6892b3f68b9d89b00140b8531c13c1d93d4d34066298ceaf4c02db564070efeb1b4d6994e3600e80468ee127cf0fcd692005125a118df4a0ebbe04ac3be42cc6c792139c7791035149300280dbb87f9fb1e2bfdf731b981e112088baf735c448b705a5f68e04a83260e1bf1981e50cc7245b16105050cec00306fb8341cb69eebd703b489fcb4ecc7030eedfd9d654f8aaf6261c6e8069c604566e0099f909f3268096752f57aed998ffaed8d4bc7e3610578add0c1508d33ed748c1bb4a54760a6815e19e08b9ed7f825f2e8cde3aa6c9a900974d802e0f2fba9455f1993135d0032192d50ba8f133821ea58d0d7f41a0425db47c14d88bd1b3f90268fc91678e74cf24c348323d647f0f0d7e7c4580289e626ab096a04079b26f10e10feca702708a0da080818a1b8013ed0a3845313b113d1830ce8070b4953d365df9b220d01b5a6089814de60a1c88ba2c4a8f4a26cd87e67c45163046575114ff55beb61552a0ed644b5a08872c4f4521e37fb3cbaffe3f0987ad66d0510ce257f70fe78c42fd5cede884c459c0d67e81465744606f78d50ba994b815c2def4df2e69f5358c57f74efd0fd6494e9e1b4c2a74adef810202ce03a48a54d12912bfd2e4de4bb92c0d7751e12ffa1ce39e683ba3a6b7680b2cb2ba1962bb2951ff48762612dba764c6aab983164fb6e84225c0f8e310f758e7697005c542cae9dc02a49a11e9aed6b4746edd4445e6725306aaf7ff9d016ab532b413f4afb5f56b78145521ae975473a22e72d3f284c0d38b4e7e3fdee6776626ba5cad596e2a0e7dee4db58a8c36e8a8c2a11c5f7a39302e0a133ca1a4500ec4c30470b29c6719dd0895ab8b4e521ed0c24f5412b9acda048772924b291272f41f2f1913fbba096b69a0008dd23970c8214f7175d3fd3ecdd540ca587e4c576cbafc734e589ca17f8201d8feeb272cb048c7ff7b76cd70807b6930e81a14e38f94b0fa175e7a9aaca8c893fdc29327aadfb7888d77682cc413208d41b183e1dc911af8c99a96b95204a611c2e8912cf807c7773f821db4dce62fcf3e2947acdd09592bcea0b0ad2827c25fe8e56d987698365f0132bb5e6dbae4626eb3a215edfb8f2c1348511ee7c13486412e78ba52207fe64291eb0e58f2c53da9fa60aecc6ecb20b91c745310d548dba49d303b9fd758ba822716a4c050931bf89783da0a999c2c17bfbe40e67a81b0ce5b367b9114044be911832b3ac044e7aadff01e308995ad04acf45d1f5fe7d8295e4ee5a283b2988591dd1372e117357c317f52fe4501133ae95cad7e7d4e901d7c06f29e5a0b1d3bf1d27ab0e34e712fc58c7aa1f37acf432893a02da898c3328b2f5c5ca1e3694c76ad78014c4dcc7b5222b5db9175e63fa06bf3801ee0402f53ccd91012955b1491e66f0480cbd91c3d013815610cb048cab1e4c9eabc245382bbef6f5b02bb18dee076fae3ec78d5893a0783e5beaa7581a0a49434bd2d50fa606ef5bf19c5740c45104fe4d75941f63228c823632a9ad7700be4b0ca3909d080aa31292bf749870b3bda8711a13f412f92217e1f69568688da55f31d2af9dfa435fc5832e599549fa546b66afdfd175934861541ef320e8961d4df44ecfc3a12b477bb692e8864b290ca2433720662f51f7951b64588cccd8d5ed4b69ab2dd4a9aad0efd5d069356aba96001c56759810964e4bad956d51c1d512abfdee2370aea6676a737569ac7318d34d8226f8395c73ec74ba4bcb53a45c37ebe841b6a27b891d82899255c4808608e15ac466f450a34bbad3b270720b9190d6e2e566c2f08911e2395f812ee1c3b1e73dd78e75eedc6c78db59b1ff76a37989f7838fd9484b5ecb6d849358b56e2eebdf8b7bdcef1ae999995fe49919e7b2621796a95241c22f65c07523e6cacf657bd9df15319697d64a4e3eeba191814db3acc841e4a0dea9b2cf5e451d0858d5c4323fcc5324eb184f3ac108a9267536720516c6e82506c38a0b472acd6dabfc3d05975ad176281a84a663cda7e80d040f3a88717abec8f62616c06fb0d2f26dd3c693f37e288c2e576ac67722636ba96c7ac92a09b50f32e40bffa5a106e0d1602158af439cf4cd9e2d439556c7bdc6b239240d5eeb8e44a7e0c087bc245ec2deb95172e95a206ea0bff799b5d5515d2213372125d45b14ad2ce9c3e4634ef0aa7b4962cd6e787316f399faebf4e49b2f9f7e07a858d00f79cb4360df68db35617117903a147431dff8391cbcc3c8421d15451f7f3c688d9614d564acbeab9c24782138e16ac7e81fd415b6b957d839393efd409f98c4107c86e50382f70d91e0b4e6bab5cd15bd83f326c870697e2e4f402c489b0c4b8b214124c3da8eccd7f8d0b987f33563d15ca5ef17cf5e28ec899c2ead9ee92f72356a564438bfbc134671f6fa071937394d8be1103b6b610762ff535ff8edee6cb390a7cfbbb0579624583da60e8761f176b942d839f8fb8271dcb861641ce4725b8632a190d39cc212951bdadb700b2c8723a7c6e91eb48f8c1ab481b14cbda0efd628ff035ba7c33f5fde8516be70e14059b91d769cf9a0e71d92f64aa943ad52517d92d54525d08e2501271e0a6e8ade644756341a455e5f85915a3bea5a9acd1a627005662c2ab4e96166bab06b2516f03af9cee8ecc95b2b68bdfef98196756a2da801fdee63b0a5426a89584396b32bfd5130c5f7a6b93b8cf590a144fee3d7ec362cb0ddfff7c75c1e20a7da047118aeb5a6069e76dcbb18a6de3540ee0285af793db04b33e86a06403d9872bdca753fd6b7ce8d10311f9dd00c2a41f51af7c1aaf548ca8912aadc1ee5a3d45b8eaaf35fcb70c1ec61e91ac5556e4119ef6a1966043826691f610ff55f0575eee89844a038aff97643e98405d6d428560e151e3ffa40cf7db881b4bb8f50c4541adda2095766892144065c3c35812674a8c440735170ecab6b1a6c41466d6c9a8c4605bcc25b784a673db4d45425106aa27fd3e8f43c8424593c3b4e61edc5a77a12ba29e477dd240b286ed8d0012063d087bfc498cd7870052df9aa4ca9be4cbd28fdd0f11cda884a46ff5bbd8246ebb481e079e10612a80e399ce3d339133606b861b844516027dc02a5a528c5035b68ba8d01bff8ab2bd6812683d93e4b9d4012725ba613b26137455667eb4a905e09a3485cb0c07e41289d1bc0eae4653a78e18ce61ad142a04ec8d7128a6cf3bf990b4ff0105e8e6e74faa1e1386b0f0974d9f39f1b724a94a606206dd793547975560dc8c355926ed7215b4f1a0550635df83390164b2f8fd270f89502d1cbfe888fb6453b8175d026790e5787c802c096c8c90c59e2365bf9488cdee29bb1380ccaa3a652076a383b5d5be06eb27d6805a00ac2df625d88ec0e4905a551d050b5b599b28424024d6d9d4f150e8a0bff443c80454c7d6c13fb0bff493e8c2a6fc449205d90cad5cc0ae139819b2bd8680b01bc46a48f4bf66bfa7ab5e120ea90534272ad8176b06d235c031dd856e5230d04cd0485b5aab827426bf905182c5014ef9915222af6b47c84ca99a75abd1c85531dd081d3b0fa2a816652c5782d8b2b49cd23d8bee83f403117cb4081be13de6138f4a6e9bcfdaf83b72ad182f23a2ad2a38ccc55425b9160b861ac61fb564f220b4448a7ae84544993ca73d68265218fcbb68157b49dc2b08e88e014e248f674590674580623304da80e25a920f3539ae8528fef78262dbd92c3048bdb7138d572e459435824dfecde24bc21a0747158229153f2bae1511c292126f63799d77c3ac20d8d781526d3a9f0693dcd3a0eb191e883a1a3d4800cce5196842011e467c26c214380acf1be9bbe8c984ebc920891c7ee12e9298dede650576ac37739680859e7a9a16b5b5990c8c3b007b905f8ca0dee3ac7982748804fcfcef16741e7e83f24f53c4b3804eb59e0c8ffbacac9799ae7163a837e8f68bcc8c550b562d474c52eedd8d4c97b18f02ea853afeab50fd6efd111b30b882385cc3d55c96ea6c997516086aa7f7ec86f73734541742777114b13aa7d3c87caab2780d176819c9a6e76308b4ef908875e5269b6da53a20b6a0a0629aa573f5d2f7b619057fb50aec2a1624db27005dbcd8e52b777b9229b4d12aa4ca22287131d0eb481376b3570894f108dcaa86f7b649ce29328d401c7a8843fca0acc699d7e8174d8163b0777d627e2d72e7e165772877fe3f9fa44f66900a5125b88f6f4e89abf9269afd4cdf34ea050b6960ce0d233a3799d51b56a1176418263b058fba7dba51233684c94bd7aedcc35d879fe3fa60116388453cd4f91f99bf56d94e8332acb1d6d2e04d1cc60a858b5f72eb72e9d1c91f61ae9221a75551ad87f72a7936f0b59070924d54ae8eeb476411d3b593fd69a88cb8de027d98b984544b9279d2ce9f3004fccacc0f851abb0edae707d4782507aea48df075999ed5d744af0053557f3a9ed37abf0dc15e0be3ae0401da30ff6fa962dcf45bacf19ba65d6fd6b0e62a3f9f3a3f68b614f2a017e0b136b579345c45c7e16d84ffac6df5e17aacc90ad26effe26148c75a597d6bb875a98cbbabbcb469996b00584591ff394c6a34acae3eb83484cd72f107034de13d71685ace5d90651e6e8a8aca13da5f1e9cbf24240d4f108cb249b3f915609a160f8bdb53c610d1ab9e94c64eb6e14896f6a52be6a3d6c461e88cbd70723c8f59fa95df88528d1adc77d2babe720830dfbbe293862c54b8d8d588b956461fe23936ca16f3b0773b03f3448006c4defcf47bf8047dbbfa23a29e2bf5500b7847bb693103fc5b6e2c53d7ab686c0e0ab1c4b03f717d19f27b3c5c3c2830df2d723c16d1dfc7b020facf03a54e587a5c86df58a59d7c9e820471921850d436d8444311c7f5afa974c9f3c22bc4a397ca81ba906349c1d82f0a6ce15ad9932e81970191dc218cf71bd4bea174a24478a38e098fe77982aa8c87fd9f41bd5f09fc49867f5cc0fdfb4a13f2bb29c0977b4c46173b7a1c27d25cbfd15cef58cd7050237d6a606770c45203a69316a8c1421b04815502ef07e8e242f2ce667402e7894332352f44826c2c81f36c3fa68c9d0b116491987395c07fd7284e10c75b41e72670f6cac79041bc2cc2050aa6f39a5502d774c263c5e2a2aeee0c742f8331aac445ca7a4ee9ea587bb8aeca89e0ca8298959d27a01b63eab62c7d1c7c4281a3b0e2319d2c54f3833687e75ef2a277d9b2431682b7665ac180fca2e90380a1c203886b447d9c8a9d6c14e1766518748ad5e9bb265e0a2a2823b42ec210fd91204b0ef4d04c9cc77ee3447c4756860440f293c2c01f390238404f0a4d650f2e9ff014ae51be91ccc5f0a4f0301044dd66edf49047e52785937b3c2998a5284e0a9db1bbd2ba72cee91cb9f56797d4fec002e5bbb00b7398149ef9e896543a09119abf2789cf117471f9f7f116b04a1c6021e828ddac4a916a44a14250c6958f6da081f12876eec779d9f9e64e7d307485d019714fabace9daabc22e8feb2f64543e29e17c6ce20ef8ec84c8fbbd1486f99c3226fe670790d383d5654c8890d866a9c1be8066db211977b0cad47edd9767734ebf596268b7c46c57cc598aa9379e13a9064b64470e6cc67cf338bdb9a1059964fd4b78918de971ab82f7edf524e7b265dcab0a140f978f8688f88de488c91e76e6ba5876b3fcb5fc692ca4072fbc1eeb6ed22193831509e67114a262a3f55073c955801f2b01e35d895cf6384887000257dc6e329ee4b0c5fcb4055e1a3edadbe7f59b9846b89ec071b57263c1edb6641ab07d9aac17f588b8bc3de670a7f082b222afc5c27bec266a557ae3091be7794e0803444ecd4542f3ed98afc98ce4f0ed998320f9e8fdd16e0ffde9e8bdc0b92859deea633eab8a204782a4717312cda55c92b8d5b4c4dc6f7979e6889fe0f2f25ece6b6f0c265bfde02e6dc2629dff78f66242658b646e3156a293727bda6721aa430ba4beb3f8e3956b89f9e27c38e7d18d53507b0ceddac0e3b6b404bb75dd9f85976c478cc8dcb956c7cc6b0bc06911ed5564f2de702aed0e6c3ec9469c0b6d5c7b252f974b2e29fea3a696aed8cb62d2dd529c4d4457bdc3706cbf03d43749019eccdeb9992b063fafc4dc2ed17384d5ac549e438659d1a353a0d7346d585389ea635bb70e75a4ae605c25809ec561434a49c22ffa7829ba5539800b7280af4de8d176eb2044e9bbf964163e30a151421523e6db057d33c0a62123dc0bbb61748219cc0e2d8fa8e3189e8858ded0bcd2d1e2c026cee941a2e15a78be5b832b51e3839197298698ee8013d42f5f9618e4c82eaf14ec97f5a0a9817e267d6d693ad678415044a3ada1ea59e4eeaad1cade5dc11ca617578aa05c4a70b5af5e225f4835f0c9d438b58fdd1b4f140e6cd252bb1ec34dad9a521057433c3f17c8a6f4b3abdf049f9eafc3f127ec264801365dc0ed2b4021ca45adc7071646e0c9052c5589647e31a26d01e4958a2c5a4266bdc1b4dfee7f5a751e0928205ad079d675616c8c5b7c84184321240bf944388d41b2b82b8e0965add04032b8c7b0273246fd47e6428be979221799174ec92ca0a7b710f3342c785b82920eb283257fada9613b3b40f3d3296ce62c1e7290756bad2c78dc1318f50d6abcfa291db93e70b7a29ace7c4e2888f5711fd6764b7c1f9f1e433c104b47c1dd64911014eaf3b73f793c09d504919b68a45d06b6e67c45b743cdc92cd3e57ff0f1a097b6b632011bd0649b685d5d34ffe48a397561cea569d1cf86778bd012e7a680078c6baf1ebc526fc71dd9824fb08eef264c803a2368061a03b3cc0d1708273450cec8bb9b2b0ecef0d3d53d4ef343df42c2f64084ac6a0d840e6c1b335aae6a3f887585d17de3972afcf1b4457139d75a550a9006700a9bc9327d22296fec50843d5f1fadeaf9a9adaeeadb79da5b8a55e99487661bef050f58e92eacf66791b3bd068d1f6d2476daf7e3f584d988a66356f6d69ac5443dfb65fad60a3717bc800b825d8924764fa2a6ce7540e45b5b980859b687e86ab666e24fcc1d591c67e2c616f2f8af15b2ecbab795dccda53a0290ccbc46b5c14a93012d0ac0371536829013e52711d282ae2e7d5f0628278abaee4f1924a1454f1688202665d254ba2a89f31490ead41e8a3aa8c8b599f47f05e20960a9c5c75af0552b27414fcbd272a1069063770db4c55888f9c3b4732f6d996ec89f786165472d60338586d1c7b6d9582ebcbb22a9f8b8418826644e08e5999bac7ba9153e052748baeb03e008d2a239fb70410409bba55c22588544e6ecb8469c54eb81748031f323efbcee3ca2e6c141e645a407d75bf126373a22ca42b3958e50698e10d80361ae3cee047a106d710945291d40a4fdab5e7e1417a05043ecc0c04d1cf6bab68f673fee9804496750f03e3abe44d4e03510d1063876e08c9faa16b5b5214a2083aef8a7739e5ef0eb355bc6828034ca78162daa822452f6fc7bf132096a331844cabc816d5f30a6f16c2659e8266190c5a44d48f6f903eb702ab610db02c77a079ddfdf1ed75ce815849ca3b341c2306d17bef28a2be28db83d5edc8dea3eef064c7111d742ae6cd2a7b1fdf21085b84588af485c7cb5347ba53cb6ae6c540796128283a24ffe95de8e4b112c2ad0f9db01894a5ff2e24151d81957e8e0225b474eafcdc8bd37a1bb7da6facedea0fa2366779b7ed601668d3734c6e31996168fcc8a23b590087866c9c4768b2c4c928ca30373a3ae8cce7d373da2d3923c2ca4b087c6cbc5ee6edf2b4f700207ad3dc7c51e15d86aa6cb16c39d90282602ad8408bc8f75e6872da535e0d05f25579fb2747ca34c9f945d2aa745ab534a378d5732e1c85c9d20e839fd98e5843d468cbaf9c8c8b37a696f2e397a6724429f9c8f6a758100759c06a77d4044bb9541e360253341bd8de1f78deaf5e1583cc74fabdb5089df915fd838990470902571d9b489da403612c227a457b8430986781144fd0beebfcd1e38fe6b505d1ec092fecb4ecdc82e630daa9c81ed9e568b55dbc5dd60ecaefaa38b49dec98b3ad57cac2b19f08cba7f9a128ed766f568ace0f16d5cf3ea3b5dd757e50e9bbc69409228d7558202ecde771d437cc2130be7d5993164436646e5e1303ca1b892e09b66ed4ce1441b51031e16c5b9f72235985463450372451d3e1ee8bf287bb56c92211f3946bb95483141d53e4b863b2ebdb85acc84018b836cc8166bb17ed5d45948771c854f0e8cb4454165707d2cf7c684e2c0cbd04029eaad903fd88f428dd39d4d1e3cebdb4a03d333682e63d388104a01c7d1e00f112030d1a3541f2d5d201a08e9f7e184da87e1c6bc69c03c162ea5ee7bf2f7b6a80b09204af5ab73fb5bf67387295f4ec5a1ba4cab7caf23f2491a33a2c9f14100cf9b86e6b524f8ca3de1750141426fc6c5d8fcfe13b62ee2666925eb6a22aede60eca86ad36ad281c841b3908db388e67a9b2578956089b82f6e30b44b5bba2e9a6357754fdd835b2d1b579105ce378c91f035776f4e1c8edd780ec4b67299724d41a073849dd4f8177c0809e508d5920e98e708370aea43af73b658bdf14f9c5add751de97543d3ce039df9e8d743cc6c96d76540ec6e600c1db2028c307c89b30c3a0f46b01f08180c2902d381adacf91ebbf7f78836a4169d8dc5df937626fbd7947cd3fa5f198a743fbc547109d482a8e4035a3d0309ce2b953dd25d8b92eafdd2e07a9127b5a326f4222f68d253d14c063afffd0739137992c724ebc83e9a4eaaf65245708524dc52e9c06250be4e213a828285c63aa9e016dec964e7a744a81f4f9c74b068bf4561569ea05d039bb3001fe14b3465f97fb32d7bf93f8a326c7a57c8e40006a130f90b21887d079380e5c27fb82eb834d5804d2e1c7d235b142a50eb07a649f50ded1b61dfc341bee97fab36aa50f4e51f6ad00f9d3f3a5d4c90dc3fbe543e32145f26a391a9d38c2f2bf1d5e09cce4d8f67d2227e09aebc1e3044191ff4fd339dc44a94f1e262ada20640e872044ee687172b0b4f444af6b59b65bad264caa85b2c830c485202e6abe788abc52d21a5ee8f7ab3c66def4e93da77b88f2216a7a662add96c7e4d8ac97d284f13a4b8604d9340cca14595b6b3b23875978eb429cc02c400ba682cf0063e58ca1fc88a8c8ce85dc86c2c865c2a8dfe083a17c3c5d1c10513af85cfb6ef52f8b807bc0c3bea35f0fedf05f1e3d184ed1f5e5a780db8861fc5d2b4c9876ccf3574c831c6d282467a43cc8c627010956c93bf0a9206cee6716d22d1e378d63ce9fac4f439f460720916c061852010a45bf083c8f5f9ce201148b070173f4518c7b57d03dc074301315c4786f207bc555fbb6e0db05b3c4bdbe700b087d4d527c570600c821e2d2cc88005f2eaef422ed0fce0a2651864ef5c5df10de9348739aca682dd9c1448ebe53dbdf91d549884d0a743c61b6000412384c1d1485d6d77e21d47f56dede6aba705c355674c33ebc7b09752a997df2d3197488cca0ba5a389898014a29717b629ee33652835a490895f8de5baabb90b54d4fa628cfb081daadbf3a5ad18b83d8d9a94776ee94eb3658e2f3fc653f638bc8a8e7ebd074aa37df72fe8ba982e9646171e5dcbafefdebbc0b93d503153fdbf5195cf1f3cda4b6b0509b4a12d511cf5a2c6f050b641e0b35673cab7c11b1fb208159893415045b5db3ec7595ca7d305c5545e1d91db8ff538b799d1b32d5e0ec27fbb892aadbe51282c02d3e70ae6a8aabf0a0dd814619a69177c6a6248f5ef743b7b329eee6117b4e951b7d301a822cc527891a79f120c48a0d6816afcf168c056b5c4c45871f333047412154b981fc4110d6185b86cff3add9c4b62ba02fa97a8d17e34641b5f1dda9b3b713ab15b9aea8810da9822b2be5a0d9d71146edc1957b26fa134fcc419ac3bf3506cdc9d12883efe69e5df93932347f0963efd8a641c8a080469784645ffc9c15fc6264f6612690579bdffb878c918d17c8ee69b0495d8fa2b0067b7dabf7a05fedcf4b5d89849ec950202dbb06cc65ec19689aab70d593c037edd4bbadc070b4c3a23797f79f6af1cced8a0d5e3b977741c609fe70c687401a1cbcffbd4bd2bf11663ab4301f806d737497174a3effc1120e3844328ceaf5f624618e87a51baa841c656d70dc59d04004e3aeb0035ec073c8581295c48afeb018ed086c85f47ab1fd2a6b904374ba79628c7d454a765b920c88e42f3a873a4760de05c53746e214bf822468ceb3a3929f5495ba66bc6b7a8afaaa933763d552376895803fe0749ff4e5cc3af41fc515af13794835773ae7fddef49a7ad332cf0527cfa47bf84d81b168e08b7ebcb3ba4fe49f310c316225a97ad6bbdbffa8155f74b0c3c9fbe99fd0562a558a9bbd55794e69f8e78a20a0dc9298814ef2ada454058a23e4818d7623ba529d0251fbddee248eb37175d7b44ead23e6ca20fd68ada775e8006a781c9470e407a22c18716b3cb98d04afb7c80ba34e14e33034d7dc1520fad9c73d28ba084bc4f48a9d07c07e8d4f85f8bd4b451bdf337466431e37512e1d706d6a07ad4d1510d33183073353643987d49baba573a8fc72de0d3356fc67b53f78f3d896f47192be049e14816ca04bef447bdda3caedfdf703ea446e1c77b5a5b2acf725dc5faf30925da1179474bc4a4fd58c49496162674e599556531ca53e69622a0c5cd9ef3f178fb30f8086952bdabbb4733aa5e9e45d5fb4d930874de894a951d332939f2a5f662befad984a076e7843da1c61d7c1769fb5224ee2862375c4bfce7bb5532bd622449bd39bd2074f9541ad318a6439b718bce5d8f4528f44f7ee88690332a9c33e5aacf615c551d287c7eb7da258b986fbdc330f21223e23562fc926d396234bad9cac9f6486a96dd09ba8124d7d14dbf8c326dd1b2b477490ed5eab4263d8db4cc7b7f45d438ce332c49838bb833449b264923a1c08ff66889301b8cd9b3114ff6f3222102bd976a1b9af08db4bf40f628639cf87ef9ca25116aa6189cbf456690be8784c6992994e9befb6b244842eef3f52c7f1d5734efdd48231159ebd4ebd34bd761700fc04b2807f05c5696cfc637cd97e9dff78efaa7305eef41aa56ba996c3d79cd7c312c48fbc2d99a17404e28fa091d5fb10ac582ed23cb9047fbd9062be9ee3560b9620da9792b5bc757e363a06baac81aeb28b9bc3da1f3da99d876e857f3860d112c1374458b537b10cfe00c8c278e3ccb8738a2414351d8d46d16eeb5bc24929c4099ab8d95c233353a96e28b9ec3bbb4b1910d312b44ba5919db71a9acfcd1b8f3b47b3951f9366b149fde3d729f682e2598186451830030e30a011f3a1551e371a0f5f22e37dd725a62867a8e67f0befaad0aee00b419507b1c667ceb3494a35776e3463dfa7eaecc1c1382efd355da3651c454ad1802d22ca56b9c440de5a24c070ef0f7c3150a23b7387c20470448a2574240a43175b6c6aeb149f77f4f0488263bbb983424eef5b7c4ccd1917bc7da9e2846db92cf6d4f5ccfdff2facc7c073d1666c6df9553bbdc5936dd8e17ce014947a5e3a21a2b32fd3d422b4cf96336cf3fc3df4112ad785ec0f49d684c5a3dd21346e69db040a0d82ab336fbb350c1a6a99fe18afa62dd638af60cf8b3f422c49e18395e325653bae4417d538a468b2d1efec0d9f5caf11707218c004b4442925749c7e736b9291c37c270eb9a4af2920162bfdaa9b239eb002545484b27467d187f218b8d120c883f84445143d8b731cfc1214c53c598c6cf9cdbbb3a02f1d65b8291d725d06c98cc84910923d9a4018a57265c522c86a40d09d8231d017c58e748b3307cfe0566c4cb01b0c00c929ff7984c90feab4be4fdee68131a2e602fb43a6d401344099f9a4d26994fd8895c5285ac054011722ea11d53870ccbc066b153b90b8c4173ed502cd1f84dbaae348314c7406e39bb2d20f1414bc9091b605c07599212f42af0c974120d019c536ba1f5d75726b72b28d4903d2496d29483b486aa9b2de6a4b9d4ae085a83a2f9ce82755d9208464a9c22b8ade6bd3cebf3a0cb633b70af268d792d357503f267febf40ede1f7ca8484b0a2f023705dd42672dd39ce1b82a27174c02e585fedd1499c93774481ebb513dc57c4345cfba44722ef7bd3ed21237b61324609372256a26060a2cefb8c37dad6fd227b6f889f816bee07326dd13282c8c83208b6b89b3a83d54427589bcf9984cb86244116d21f3426bbda99c911d54c4e2eef6049238dfec3e19f44ce3393c94945a491940815a9d25ed64a7b3b991a81987080d2acecfa8fc815161c6f0366a624093c93449e241c0648d9d48f34bd64c3f863b47b29624fe73114f9103aec8d226a3b45b56e366f2fb751e318d5378205606743c36dc21bbaa08334c1566ad8ba64708e8155f73c7a1b7498c8ed36245eed33f20dda1e1ce24cfa885a4379dd42922f301a42b23f6a8f12a0c647b445a35d1fd60bbcc093a2ddc2aeed73024ef9184711d1e83343541a8d148467cb3e69aa92a701000f743388b71e6fc06d22ce5388e03710ff3354a64d95d41b978e3ed061d51631572677f6a195f2d789d69113bae1655b161a82b598d3581caa9ee9d2e29945e760219ea4a10419b05360fb5f732bcc21d1e2c6d890501efd9889e6e78f12aedd3efd1663a7080ae6158afa21490cb12be1b10f0306233b0d4217f5152e0df0487b9b039c3c25eac230132c55c8af726f550d9dc6c176f30ada2f2d4c7ea422ca753e047e4471f5b349f080d414997bc1fc5fb6beba177b6fedf02d1498b0df161e23ee24434fcb81b3b7c545e7d8bcca3fcdd2b3c8d0ce7e83c1812218321182ae0e429d0094cee1a5417626e5fce3c26d71d56412301e5b34137ad39b74c0f1bd810484084c337296902981d8bc4fdd87b0474023ea4a58d693b8197d4e54fe994967bebe91c6425206f721b049dcf3ea9390aacdd403809b6a4f4f2153c34c03fa8d9ad0be2f873d5d93755b5f0b60281a7828225fe5e427d75ae364c3b7944bbfb904be16568853fb93d6f866f142e1ebf20982c81ffbfc90648e1fb1d9449395e13bf34fb4101accad474ba5388bc73a209129c9b67bcd19a66e66f89be6b981df6b9f34afbff70f0ffd7539e0be4a7884f72110d63e0b45914a4eb1dd6af453b07f7c49234c8104a49d27f5d29fd2a74f33cf13b6e757c865337e34ee3a8aaf3bfabb50572062c1885cda891039b4a024c5f6dc671cd29c07ac057d12d03569846670008b11489c68e3d278850d38f75eaf690c17402a141aa0ac35dac10f0e515968e730f3eac93d04ef8f845749d6dd08ca07e21c0e130a1d1977effd608f3e4778d297cf8d017ad64ef752098bfa3206821a25717a38de00229e41648c1659e18f464ab8382e029c634957918d075238dc126a31053748db028d8da6c46bf4a67a4926afce06dfe856d441ec8ed7b83ed6163f7b4c3136055bc65f9bfb395ab94b133dc94f6115419a20443b0e02573cca12f769a7e6602db0a98bfda8566493f0730262ffd9c3e29f5964f3282a0ff396c95edf43b4ee9470dfe0b529e91dcbbf933bbc580a99028d104e0d7d5664dbf06f57a1729cdd3ad51278906d74ae98868f8aa7d442c6220c189bd13993f889c139698edac8799e61db68bac89eba8ee00579dea4f90472bf2c47dba3a2701a54ff1ea979af7d851c1b35f0017ae0c9fc03a227a0553c5113919a3414b39426bb06d7b71d896e0300a51d69a497e0f693e3389cc37b070dd86cb9093a995a412e59e5828f3cd464f526a963bdaa9977431184eac711b44753dbccef70d752ccaf9c3fb41947a94c35cd5411df03b94289869411eae446c32663d56ec5600f59c6e7861791bb51b8c552c5ab6494352aa43003d182c0e9a52ff0f31e7a3c8208fbcde1b93810d30f0b597c14ea352835a3619991864bfcf93903a7f18bc89bad3f9f4b546adc1d0a020a507393d477f277574440d94651d515ed5e3b1671a050bb9a230a4fedbb0fc9429158c8780b90686696e9d91e9b49ce2b1ca16a67f2f8888c1ad740d0499d26a2af3e077e21348b7ea8eb4f03fb33dd06a248f93ea36a1747bccdfc45b7660262647f449fcad621f79acf35e5a289e2a1afe21213e3958768b988496c9b461ca56a064e8a37e391e4e87412a9e6b2c0bd8ea880d03e6592473b199bbe97c7cb371e646fbfffbb62a6452a0258f9180fe0ae57152d947a29a97c2724fcd243a899949a81285bda242bc8b7e8b9a9f878db0681d5ef04e6cc344662d523fa04ddb3ff1a76f4571e5ef2612607049fa4fc1ab6915669e6049582d3028cccf7aa053a3e8d75828fa7cbf7a032b9d04790dd19271c619c9f5655a033fda16bf076758da265e86a5acf0fa1cbd60800c746c636ef6d3f31f4144347f6487ec40e2bd8c2a6b3d938bf6ab350b3bfea27a296ec3bea14052d18fbf9177d06ec61a9bf247ab57daf7ab0dec2900c09614da22144580f2aa33afe530b705919eb5af3db6777e2de428422bdab0b96adcdec2d9579dd21f0868b9eb438edc69c2a6f4ad13c68e8bc2b46200fed3c0db27079f1917ad12c27d89f4fdbca64bce0d155476a1ac84e2a9c68a7be39c0c186268e49589c19a49403dedd7af6efc58f4dfd4d49bd98983cddde8d1d7a61ed46efbc29382280496a8900045de7372ac5f0dc226d3e5c1797c9a22b99fead30c9c9c1ca86e8ffa4c257fa88fd9f9b46cfa4260c501d05b0500243ae76a7e6424cc08ab57ad08946910103847d100d762e10aae14d1ff4264479e081395bc2bcb8b7787ad73120f5629a28f8281e63cce522bc7e2e6099f3b98a1c842e22c7a1e66933b689ac9c50cfcbf2d8f2093d1ba9cfc3340a29e715a27e1e9c294e1eeadf1f463969e926df4d50ab8e3cc59a06c4ede4b2a9028fbbe221203b595ac742ae2b7d91359c49ab39988d3dfddd0428267a884f2891644a252786eb703962d0600b041c233f6ae6ade28f5bde10d31c66d7e13bf4379d15b00f7252b26b216f44ba1262dea41b37b04b46ff4a04053b2f16d23636c45f494ee17ffd01258d556fd2eaf900c1d7be6f390ce3ffa86a883258f0413f6319d382cf794be8d847f80a9d166a5cd71d954326dc9edbbd105d9f5b0603c811f5ba35d937d7c9899eb238f474defcf08224d803a1af43ec6dcf002611703113710a68e58ce26631a7445207c7e87dc150af025b4fe53e5d46ad98d585e036e82a27fc7c0abd067d6e962893e2a4bf565431375abc3df7fd62fa35ad28044076a2bca7efeff93abd401acbf1e4663b27cbf10167f8205369a2941afd1fbd6b747d74d5e8ffe855a3efa3a346c78fce1a7d1f1d35fa7df4d6e83299797b4cadf8ad525b71c00db630332a5c3c843fbf9ca42959391026153b799296fef4eb9db1bbbecbb1d9142894964418fed539ee089f27a9841b2d22c43ce14794ac074a4781a1c41d504a54af5f367575fe4f89b7382efce635032e8147680fdaef168b1f4513087b4d48400f5ec95e3f48603906a96efb608e374dbef69db5cbf1dae0ad00fb801d02132c537952c7f068479134d8f2804fe64cea9d57ab6e708da759eb3aa28702cd8df69604208d8c34cf97e4a19a11ebce7ae401937eb151d19ea2c320c37e3626430ec4b788203a87a61512578880bee8296dc934569bebe72ef6773e491b91d84497d8ac0e02dcf801465f2dc7803b133271ce2c1020272fb1cb1e9fc75286a41bb56d939c5e5814f7701e4017f9038a4d1d25de66ea445ea5f8d540a1d4357b08ea7a2d8597c07d4728d2051bd144de4549ee408a8fa9c5c4879570468757d3aaad604062514371483a48c4f3ab0ec649d1c8bed386461e48cfad96a531aedd46701985964a37cf2346589adfeadb6126056fbc3bf951436e800d399af7270d45886aff3e70080d05361b4574158f51e90fcbff04a922e31ee2994d716064d51c859078f250bac2b70cb79a936fc011ad7bd359ca5e2829e93085dbe32173a984ee4dc4231d3af71e46d3ef234727e49de22d98fe0f912d5af0c8b0f6c31eb29c993c50464a4b9dd287945852aeabf73e1aee7da4275dedd0d2965eec542d6b6d5933f53a2454a66f57f7ad38a55df2162eb0177056bd2de8d7e8c466de0acfcd40172c2cc6ebb756a110e6d489f4d6a829f56455c7204a2fcc943e457908b7658ef1ec38b8834befef10d93e9ede47c78cc4c722c803581562a17ccb7e4b1b133a8a16001c771a3da77961840d4c0ba70c009dd5529b42791c0c5d583acb0bc3855618d583d8424021cc39ab4a4b78b0c17c11e3febc6375569886ce9aad8cf7c6233acc871be9e29fcdeca79e41ce2f09824fef13ddaaf659cc36fc7ee190985156b85cda4fc7273d321db0f3df8095aa4b7fd0c46323d92d54ae69ac71ac30295f80144f2287a67051b842194426ad82b80790a34cb2ebd253411bb16e514457f1f9d81540911beec49760811240d855929204ba6e82bfff12813cf918dcbc40cca0596b39290622a61c06efc288ce1c5e873b73c82cc1493deb10e716f3b5ae981cb4041c33e61358cd4dbcdd5041948ddd1a30c1bf7bf09c25c3c3cf779445e47574298dfb8bebe18a3abc3a38917c6fcd6da25775bc2a7034119ba5702fae8e4b690bd9a832e3575ae19ca0ac08a02d6dff6ce77562d4c00b3ae5dbfdbe22d817aac4d9a413619fc7afbd5f50520088adc851084135faecb99ba468d81c0b122557efafd08edd1074b78d6433dc4c381558c35bbfcde82efa4b91108c4562041396b856a1e3a8c313977b2d95c5d014c7ed9d3746bc39ceb838c53279ff0202e7fe315a9b20602e701054eb1e2a57889ed87698e7ca86e9bd65d2ae1a042248b6bbcc868cfcb671424108d7645b6114b842cb29aa94c284ef9e75d9ffcadd038fa93f554b973939f3b66ad7fe8fb680083d20c899e13168ff17c10b2219a3656bca2965cac5c79b42a4d054defab0dc3db91f85458c7ec53e7c14ce38a2d6ff0e88f024f4dd9fb817944aef58871dadf76d1b47db06eb7f6f8d473bad310b57a67d9996fb30b060ccaaed0a054ba70a808c2e9e7274e6506b47cf24d50553d4e4e5c1e4243a4d7fd860bdf524c062f3a36409efb13411ac47468fdb5d4930dd25b94ffd3e79b221d3a366457f8462583caed0cf47dbf0877d66bc64c88bff067939b856e2bd7971831733b623a45c163611428d2c18a1d57c6dac886fe0ea9ccbe4508af51f4cbf8999de6bbf10b16eeb258f3861309988dcbd38738ce68caac16c490129d3d1e13842c44ab69004f6fcf804a970074a5690805a954722cfcf2ff17d4919cddd20cac7cd6b6d067512cb69a558209615fe48de363e79ce1962c3535150e7f3e2a9b91dcc2d0fad2aed96d62e2d6bde73ce65d63758d8ff0bee939b67a6b872565648cccd421e0ce1a0c9c1e18211fbcd39eb85050d4a9c8d27ea8bd6ac217cd4f36962e365c83acb8671c0cb060264d208de43a9f898d655930ec90c400ac77cb1092f42ed989df704894db0a385041f0c4fe7761b0534a990db9138fcbf6b63f036433fdefa67bb12fde19238716ee464f342fb9101d22b3223123fa59fc241012b7062629b9c1024858b8b4b677489c8e523c9c354386d64b785879465f208dd7b410857e304076469b4647040d7547bfd2b922065a4010a6baece49063612e00b28bd78893220edba50f5b0a9167b7d818d597680f12bc0aa2808106ea294c9fecff83c6390ff2195752cb532704bc363f11c4cdeb234c85a3f6ab9a3e56e180152376800582f2a0178131b03d0cb534cda57f6cafafe1741a7f4d44004a63fbbe3ea2e540172abee6e43f2ed34d4858dd6a58eec0f241889f501d66d7ee06eb3ca1b3301d4992a71e4f0810a21006fc88e4debf6f403e7d79209486891de8221a0bad1b2b0d2d1148a6e730a96945727841a4bc36242213ae042b1cd4b44e33032b15d0b6ccd1ceed74a2aad8acbb4022fc67565ca918ac4b3ad9f5fd483116687df0bf4346c12e72c6311beb5510687e386551d7b6f32c0741f1a60d2c12e1abdda8f65380f38310fba8105815858c069a9e3c00baf2bbab79ca31318698a0a072a504c4fe3c19614a61746c3638a9532b81e79770bde4ebcdc048e3b043d0e5920d619710ec593efe925097c0d2ffab81f5ed8147d5c4b312eb66c9dbe1dbc258e3cd48dcbde070ca88968af49463436beecaedcfb6890e86a1e1299350cd3a2bd54de70fba04cfa8a3cd2c40b5be5291bdffdf6d3d2929d02c90e5c0e5f0d611592244ddf8fa6ef0bab9876a50fd40249b2a03c81db3858643a82290b93134c431ff8c9e0fcdebd05ac2a9c08f118472b9316262ade6a3cb5306d717e54a850da44211315d0c67402f7293370f022831654396d254bacc2891006bc93f7a3d704d80ed6244c8267724219b2666cf8bcef6fe4e0a1441243976e4789b4f290e424f01302e931cca0e85c9d1e6506559ca4772a5dbad1748d4f60a450da5227083ae81ac168519e6ca2ce441275a3f95541c6134229fe9a31540594202bb62855204a01972045dd67a65c3ad7ee744171e95cbb9f02b966e1a8f0c1f0039fc08260411fb882eda0e44047f4d96ca69cb61d9e2e252edd0e86b078c24927d2b52381aa89d17b200ca311f805c15022729a0f06120c0a1a5911d4a4b4894e46a08cd009540e503940e500d5d7c4f84d38e104145070e0f446cf7b7177437a27d2bdf0631941d46732c350243f91d403044f121ccbd168249144f1244ba39c9177e32855034ad390d3801b2805e1f41e02a54d1c3abd2f3de9fc6ebc1f7d2212c81728e4f8409224714ae2f4e20e94219f873b8b45a27e7097294f22ca3c99313cc677100441f14f26cb9f4ea7d3897c6739bdb81a45a1f3749ec8d1389248f3b4225f14021d3439481a8942a08db804f926f24be493c81fa1c813193e698a431fcb7bd22ce2893a7f8d5633c6ef45b18a510ba4f64e15139e8a890f049d3809c3501445711cc7715431315231a162820a1515133b480e108b3e191f0b0aa54d86adf4d7e8fc5e94f2d5782f62717eef4138c51d62b80ab35082efa9aa28bf178b9e40c23cb1dbc2952b57ae5cb972e5ca952b57ae5cb972e5ca952b57ae5cb972e5ca952b57ae5cb972e5ca952b57aec4f0a7130f516533228b33346da2a37a942ff690a5288a1f9aa68d3cadfc6409224de1bf083f5593faf04d5b8c27f978f11f7ee852922f3eb91a49f25d08ff45cb8725d9c3bbc212b2908ffaf241d264f93174f1e2b7ac6c4664e183e54333a6fcf0c9175731e59f5e8c294d1ee49ffef4e4b7fc6965332207d8b2b29d7e44a2de85a9837ad2ec417d69f6b8f0e6bb90e382e931cc0d9e2f5e7cd2b4b9d860981b3c532ffe0b736543e20c4f273224cb90e54f4fa6c2177decdfe0b943308ca20cdf460ac937995e343da9b28941674bcb9193e5c36f29cb2fcdf245e874f1e54a7c9615aae5595ed583e55b4c9b1874b2984e668fe949936923c390243f1457b61771c5f2e207f97867cb8f4e24694416a78b776186e58a453cbdb862f9965559aebe9365654b7da7d38a245f1f31220b182d9461c862b2ad629016ca131974a2502b136ee8956244162508328184249c5e10c8041290200af900d4c1087410850e98e820498ad41e69c25449c1545145a1450eb448a5c21065a250abd487e50e982a6518a6727004982a3baac05441a23a800a892a012a04883be49b3e092ffc3e92e795a1e7851efef83d4253d499a2cef33e2ba015d04a6825b4125a11ad8856442ba295d1ca6865b4325a19ad8cac8cac8cac8cac8cac8cac90ac90ac90ac90ac90ac90ac90ac882b182be5f7a01553f83d48e691f34389664c0ee9c5ef413245d18c217de963c43f72964c4d32799845bc2b1e0a0bdf19825800cf300cb1109ea1288a5810cf701cc771248d46a3d1080b3d4667088385f27bb0a8880a152c943139a4537c9269eb39c70fcd1e2f9ce30b67680b856ca510ac80832a670da74791020b82ed4c408629982b8061288aa2388ee3381a8d4623982b141551a1e239f19cc05ca1f4dec1f07bf1c39c0f7cd11cc53004c36f44e5fbbcf3f3d2ca260a91a755cbb37c1265cc0f2dcff23b2da667f99dd2f4a927bd30fc441238963dfc3cfd08c5839f2796f1737ce29f7250a616a5c9b495fe7bd0f439c0d514754e03824b9ce023111e317d6011a80879e117c28284848484604c603b5893236451f4b1442a4254caef45d109511443972bfc52188e46a169db6168da742e252e9dcb14c593d3e4c4b433059d224c14445d1474a24ec95723928444299042422318123202a984d22612913a1d11a92322420259c3e4ab199f209d7c3524f9847c424a01dbc19ac0765b54219154d98244c204a22a445748c1624a108a48245f8dcd8331424984053181a80ad11552b0981284222410115d21058b2941288235813d41eaaa1091415588ae98b205a9239510913a581322212121225813528884427a0ca2f8c4c86379d4bf94e5114c26938904934539447262129dc024a1ec29bd48fe90a90a131493155fcd68bae2ab19c929538240d2b9969826293ed6938f25647a62928234097d3523cf24f4d5981e7c9823785f72b96096508ede4f9be8e449124a8ff4354f4429be9af06b865c4b5c4ca2cc408ad3e4c444f4d5d84c4f4427519ce08b51806f32459981ee04df243a310db9c4772d31df7b969583323b5499366df39cb896988a4e0b181fc60865cfe8c5731cfd389ab0a0138c510cc7119ce37b5ee98808db8dfe4153476c1224ae4ade6834f2480fdbc1983481058d56be22498fca29da4c54ced10b45936422721a5d39bea9824109be1133fcf0c522e0293a21696134428de368348e469ee789cfc2a2e3adc6f1b4428d3ccf1bb94be75222be6b277a63381a892971742da162248abf4a4139bd4da4e2b48d3ad209fe5723e3c8298a4e3e1669e5fd875229a0b491866c21151e69c85f309c2c59f88bf4e09f562a1894ae84d3fbd2ca24b41a6d6210688a4f3ed60c9228c5c71a721af0534424d3d0098a4f4023a628bef8e3388ea3189ebe9308cad1b56b6971e95c4b5cbbf247abd2b41d712d71e95c4a5c3bd712d0e6858b31f5245315a50c8542d71292032e5d0c548ea082a292a222524d71ed5456a8ae5061a182e25a0245797a1514e17baaa4a245e7d9480e9c317648622862f1dee672821874bb33fc17ab1944a04c8822df5652010315a70955507467f8aa5d19836d86141b99e40c9f8432634a0c4b2451c2e48928aa8002c5b5732d0972f2446828062aa72bfed5c8e08af34f8f4284e4fc3eef88b7e3238d9e942a5b5c8c745cb494a9d07b1889d424e8ab21bd970304513b587eb46221ed20396c0763e2e7f8b020d2cac56f0592a313e91bb1c450f1cc182aa00d5904ca844f2ac9a2182ab619a71de3f89e0c52cebfe284393d8a14a193f44e3046287b482f9e3290841f53e5ab2199b62332745fcd687e66f8315a7c35e31632921c89a1a2ba40797ad5054a1b197486ef2d3b8ff48d5a865c3c5904dac480f24216d94e3a17a60c4f9c26fcd28cd2b4bd942c31a0d8626471868f5a7d15a709bf650786333ed3f6e22dbbf7ccdd19c6b40c9de1ab969464158f85337c530c9533fcd2ca260307cef0c92a3e9215e415671806e10cb128026dbe9bf049d2889903f411ac8959043cc52130f4c2d00b5f0629e50fca108542a1c211850a4b8f4a892d61880a6151b4b848a550df92fa9622a08bb025d5821ad946214bea5342b026b026b026b026425ab8c1114eaf89d3a3d8404a99427d2a954aa13e95427daa4ca546a58b494a3ca11ee5e2532b5b79c488972acbd4e70053a85ff5b0bc9f5eaa259542bd8bd4bb28cb54e9c2856973ed6c5cb43c09b481f12de6a84cc170f12f5cb4a04661c992fa54cae572b9c2d4375ac2eefc40100453224a7c946b490a8572e950ef5282723d913ab19c4e27265e11900595fa94694bb1b43c4bea53a66d873653743a9d4aa7732d712d712d712dd98d3210458a932837d062044110641147a228fe778205c182604d3c1aa6379d4e26ef64f24e26ef64f2728027d3b39c4e27d3b39c9ec5f491e49f3e9693c9627a950a0623f03b3d6a75fa1ed604d604d604d644141a4f701a4197cea5c4a564340ac3914e67235974fb4492247932575187429dc894c9dce1c8b5e4a524ed4070044720088e8e1819c1763026235814a5d108c604f6c468341a6b50e5bce1f42835b0c20650463610b2810e7582b12295489369da8e8c46b0262f659195dd49ba762490e4da995cbb2f4ba4493e482299369ba216f324ea4e16963255dae1393a9548731575e7c8147ea904be6b896b896b896987fa4626a6a2f0830579e589f499e0277e1f2ca8040b3ac1b7e2c4e1f42857ec6a30821a28394910f5fd16e70ca747b9028bef3dd409c6c712856ca328ab286432a960508ecc152c81b026b026a0a9052827f824eac3f0c51188e18b5584fee308232261412769228da328e31b4718938f7cef7b91f49d327e149fbc40718ee3bb8fe32843868ff0657c8ecf5b913b463fae44a118305c941f8a8728f49936128b67da5ece50143a62e483ed604c425814678fc9657c1f8cf49e843df1c990016ba20a6364c498b6ef246141e758862e4218618cf0c525623e344193d783693463c813cbbf3c0c6c0763e2c1c21fc31016040b2265bc6924b9e0f202e65b48e3d763fc9e4fe7748e5fee60dec1977790e5148e604432727ce1f862cc0af5aa15f9de8f56a48759bdac563bd8ee6389a622520cd34672316198b6f285d962ce38c193a813a1c09a88a3e89936ef4cfd87ea319a8a409bd2f6320324752952e8ec09cd50c74b9931a3275fdc81362c50067c12092c4da6ed8575ce008774a30a0625f93da3cee9249f0582ee51c072e8041fd6c483915f7ad8eeab81059da4711c4758138f86e8a2f25ca0c2d0793a5d3c942b909c02383d0a0d88ce2834088a32032a5168f0c4b53b6138111283be1ad38f2f3e213a11a3109fc0f851dc8da655e94def8dc42540d4112348b8742e920bb5ea3991522b6f7c14e9515fcab5c4837d3ff6a0fee49d50efda9de37b9e39fef7bdcd1b3def337b507f1ac7d11123a411c9f5c4691b7d8fc439ae50e1397ad3bb94b8989c23926bc90845229936d7ee1cfdfe48a4279146e19340128964bead072d7f325da8f756b61fcd9893b8c438ea783f9a9ef42e251e6c3c3fd7ceb53b4d5f2a8d66cff89f6924bd0b13e9c5ca411724d3e6a1486f4b3941228de39b4e504e12b5f2d3881a51abf11c3f979293f423aa8737fee94de10ac6bb4b676ae214c5275f4df930a49c303521bee795de666393c5f979a812ea6d2ef0cbd1a6e81ccd916d87a6f73cd37bdff824af0729274e517cd70ec313f5a9b7d94c394fa60a06e5fa30766833e51c9d422a4e140b4a674b5139c5772df16027d345be4bf7d5b86b779ac6d2388ee3f8ee5ae2d11899309cb07c2e5b50892203178a10a50651763036218a08ce284351525025065288c11651a208a209145801054a6085139ec0208a132f49c4400a5b4449e2841fbc341183229c012e4669b839dfda1a2eb66334b8fce6b7480c37dadc1d062f471fdcfdf47224dd7de4e518ba4cf66cab6a37fb7ce6c16ebbf56f36bbee8bbef67999ec5915d7501a56e75b32f969d8351ef546c3d750b5f6c37abd62d6cd9b555f6717af684eff1b301405271228829b7dda5846551f37bf6806cab11b0a94b219a75f8d6bddf4f6eaeca66b5bd3d9aded1c46731adba8ea6e9dddd84f6cc56faafaa829abc680f02d86bba140b1bc718a7bb5db9aa9eb0d05a2a169a4abface68bc5e371428b6f3ba625c4cbfeb7b7bd1edb638dcab69f20dbbb4d72bdfd4cdbe6e6885bbbfdbd25c1ef5f62dfb493c5184cde65b0e03c19ac5ee4ee671710de7337d3eb87bcccbb006df9847f5c1f95db1cfcb32dbfe903d7eb67d990c0b87dd1ff67dbdd856dd381dd9a7795d31eacd6cf824bed9b7455f071ccfe635b669798da56b0b4ad1c4c320462cb64e5f071d5e86c5e6b585ba7a010aa8f134b435ebd74187df351e35d75a9927cd46b83b115e7e395cbbad9cb62c8d9cdd3da3a1d956dd685ed716a55133cbb499eb869c830d3538a439e01b6cb801b501e334b5b1a10646b10dd70d3619871c6c6c70d140b77e5d1a04d8c9c139819c387fe38152f55f695e554cd39864c3c54bafc8b7bae2f4cb3696c5f0d29b7177175e7a23705fb14f7bcbaebba3dcc50c7838eeee79e9ddb8bb0b5e7adadd6178e9c5dc7500ca29abba59b3aa765b697ba381661f99d72aebd9bcfe8dcfb34fd7b7ade99771f792fb97bafb8b975ea8ddd6bed13e775bd7cdcfe24f33ebbe3bbbcfb6eac69bcdb7bce26eea6f15bbfb7958756f7c735bdae36f7477195e3a90bbb778e94cdcfda75d696ef6693fb75514e330aadd169a7d623fd8a581ba9a06daae2ba69173b13b53577717c1d0ddbf1d92ec800424e85172018a143226908111204258c10eed06392ce1b4ee60ad926043ca8b1f52cb4a90137eac4b4451b261ca58a0869417304cb4409cd611c30e365d121820e960e48329a4434182e474702404dda7d325d185a612aa19f4881f9a3d901e7edff75f0886611886a1e7793dde87ef9945482336ef077064fcd088cff7e2065ffcf1738022281a19c091933432c3558f6816317296cc9e51fcd0046ddf7ba3550f290c41100cc1300c43107c0fd5430af4de450e90fe3df8ad8a80a2e780ee0e7dbe1f5f0c57455ece9ecfdce039be9f9e59c4080fde497acf2c62e41c993de338ae7afc9de47d2a20553220b98a48f5821b24d0867cd4eac6bb411d81c4f72413c9f7deca6f4ea72f8d4ce19bbe709524fcd37bab234aef7d25d4e7f86e4eab23a595123bdc806f5a25d17937e02bb1c34d183eea77c0d3932bbf215728d49bc8d77937a624a724a747bdb73ac2f49ee9bd3f82fcefc6b42a63783894b367646e20f7fd686e2007fe0e24d4ca6f747f637ad22a09ea95f81bd37b281309f8de7b6692239000df64220193e8fe06f5206a08f051ab2390009f349180fffdb003fef799563aefc6f4a595cebb293db94aa2c40e37a6d77937e493a707513b627e081ff543807f7ad22a494988233728f3883fc2f44790374a4c5164071594b2885f3947b36703b9ef37900b3ffcef77c0f75e4401f99eb40212bea380800f7ee30948126863c40812df838f84f7e11b99c24812dddf88afc4df4cb1537af19120bde9dd34a2c4df88a61124c63799babf01bf64224132757f83c4e8bd6882ef8fc4e8b1a48a06e5e729e12991443745911dce1ef0fdf45e89d09ca2c80e27f89e2704b923613b18130f1db6833581058956ac442820d1c7aaa208a54d2c3a3def4529a08d28e40d4d71f05b89558c80dc8155f001d1942a4ef15dbad2bb4aa5cf358ea68be4ae25ae5dc9fb46a3197eac50842142f9bde7e2106823ea3e197f7f27d94c016dbcf7cf4df13d91c9a7e405308a5c8aa03047230d94de098e454d4626424e240a7945218ca21324858aa0307d66aae849692b8988c620a2f34b11c144d484071727a46cd838738ce24824892511481453365419b07103a81c7995d1abf828c528340a11b1983677028954962f4e64e38638924621cf89370a8542a3d1c370143abfa20b7c65161b286d2dbba2f3fb184123c9f4eea40d0f3c9c4c93e94424d3144ddb8c7337c56bd99145668c20a721edce6f864422914827265419505d809402ca784f8e50401b7f4fc87b4f04a4f740cf8928e5fb183e9637f4bd6d8412830a0a55938fa4620a9a22c5940950618a9294b77b520986f7a2e5bf07e2e26d2ea52c49b6f205c9858b8be822ba88a6cbea7481d256ee4aa1d557eebe9a6f7531d38f05bead8ce2049f9c2058ee764ebe1aa1afc6dd3b59a0fcfef4b17860c5b8c3c53ced482ec62a942d6f2351016dbc1b710bd1c51457b0a08f2516199da4161f0b24ab7c2cd0411692ca69e7f223959332fc582d302f24e999503b484f7a65e9c244edf06ca417abf2e5492a3b5c9e44edf844f1133ff17b406923a98c289dd1dbd62760560eca88397c2cf0012595afe67bf04f48442daa9c929c74a75d38fa703147d23df15f1e2686f702f32fbf03f32f2f0f03f330a61198727706f9eb036d604ea7f7142af5a817987f7189c225c8e50917275f8d0b0f8e50c080e2afefc72ae5eeab6979f04b265f8dcb835f06954f3801c5099254aa9ca0f830a219f3c3cbc3fccecbc39846a610df08ccbfeca8fee55f4c232faf125d3e284e03926f23a994bb55c9a40c7ae263811ecc2ae6fb9755cc0f9fb903f3aadf89f9978ff9971fc1ac5e563018b5b4c45889efa8161717179795edfbd1bb188f9c9f8b21a049e463816215a7011f663522712a6550b9fb58e0c350a1fc769f597e2cef5fde4682795b79960ec6ac542d2defc2e55dfc8bd508b5e3c593a0a983d1a214bf65347a171797158c7781e1e2472e3e07f8c2454b8b49b289ba14cb124ec8d50e460b56710828038eccd0bf2f64113fc7378ab61391cfe59ba1f3afc6bff792387dea93403dcb115390fe88d3a77e443dcb8fa9df397dcadc413d8be9a0cc48faf083a1a240693b914c1b8c16a5e9bf27917e0cbfb43a729246e18f21ea145e81f4186c314517d82bee638531a0c490124328f4cf466513f3fe65cceaf4c9a860f8e7322546cbd0c8e6555a865a865a865a865a86c829315ca6b84c7109824b914b162e4e70a1e2520574a2185b0c141e41a587dae1f67072caca46f29ce6f39ce61b5735a1ef93c5b02206d119a6e38e92346da4ea635e3c55ccab7e27e655aa8f9111f332c40f060c17de069e2eef31de259cf130c458f1d5d8bc28662826068a8b5715b50cc5108a3182184331aa7099428433ac327ecc1fb9f94633e607d5c7fc8eea638ccc7895b9a3fa988f318dc0f02af3c8cd68da6ca6802edee632e5c5dbbc4a0ca1182358c518fa58e19b5631aaf85821e8014932e3617852558121aa7fe187c4bc8c23a6d881e165fc1133cc98f15f78d5bff047c060c680e60f2fbcea634673e7055315b3f3312fc32c7da9745a8defa8130882ff7d0965f2d3842ac9c0d4236356244881b2e549217f0d8136311f8e761ec3057024c9101ca176a074305a94e3dbc627a7115558fef4e0eac8f9b1944ee494927f2c3623ce4fb54abd0b2b1b78c6306de212239795500c215be962655311e10cbf654d8dba8fb51a93ac46241f928f1526d19dc065c26fa209279c80e2fb4c2741f8de8804b409c393ee54458c211433e4aff1c12fb90d39059409ff1b9f9053584c1b899c827a316d33a69c603463862050dabc0a901124baaf060cc7074fe00a0614362f523d51aa3ee66db58f15fe8e59c50c8132e1ab560ecac44039435591d334296de494337c5b0ca1337c72ca57f305a1e8abc9c2095f0d15b20a487adb679aa4f7cf43d22a74f7bc90651ccdd3993a4825a628c6f742d805397150f5812e56e28ef40fb50385ea61fa317437912f7ea7c57450e685c9f23b2e4c7107cab084236a07ca2ce25d81d1a2fc5e7c6f6533a2cae9b178a70f57474e2f757a9695cd86e83c917fea118a42e290284485f2fb91549260bc58792551772a8b4a554aa11594e49f4add57a3a4dc954c524248be1a12797af2774e4f927f1a9d1e651eb91981abd17b93694b519112729a9269237724123209a923957c2c128914720a68e3de67821f89447a1be9d9bc0757a277e4043f07482239bf2f854a9f7805e931d89ccaf93991cd894a9b13799e4a022a274a6f159ebe111565481a99313f944a0eca94764a6f7a9369a4641eb911df513b5442303ed6a762f222834969fb21351e7ce0018807c1c1308667e5707ea215be1316dc5f48409b274a62dc348d4ce16f84f425d3a6f4260f7c710525e94b2c55401bbff93e9584c589894a498b52952db0e0391999361628ceef6d21169c38cd579eb6129512959216a52a1f6955a6c20b90e27bde970241300cc3501445511cc7711cc7a222d514aa297a80017e8f517cf07b88a038c281ca032a0fa83ca0f280ca032a0fa83ca0f280ca032a0fa83cf0810f48d101107cc03f18aa27ca51351a8b9c064c71e0ccc25fe183485e2ce104c1d4d088c47c9185d380424327e8815e28c569c0771d082509a4c760533939bd2755aa099cceef4d432928a621d39069c834447a982aa08da80365bcdfed82825442244c0cca1e2f9c2c59c0a05c024c0925b584d3834105cae9c138711acf0483cae9d94c4361a948e5243441100c4240852015064451850121c076b01d2c88247d7c10fcc071e5d27d2c974e14ff1bb94471248aa24b145dae9d8f28102a91c8d02c4924d1d349a556df8736535c4b50b6d2b39c4e27a934a552a66d872a52494a99a994e8240af18993169b29e1f726d28f503b5c4b3c1adf9756e589441aad3cf3e4a474ed3cd43803d247b44515a70da7479181121e8c60148e503ae4e9792b0fa5138aa2777a1f493a392a875cfdc9c4f2dedb5691c5b47923aa07d38942edf04428a2151f4b24f2ff3efcbe3442ed083d4f6581121624456c020b8a9ca2070c2692741ad0945a893b506674823f7aeff34893df40019348f57013163485d236a36886bf1c5c8d270c15c41109ee372ad50aca10c957634a62d27d354a4a4ffcf5fd690b118998e4e67bf0fb4c26d3b4ed901c57a537adc8ff50a6adc481d213a7119d9c27d326ea482b3149690cb2a7c171e301d0ca698b66213bb2c6352059e31a0ec7ce0d3407a15115d76ebcb10ebc719a51b665b59b6faf665b546f36aba84aa3bd9a96836817bb3b5eaf1d1c36de1b680e0228a7ec0d381461c30d0fb3f112e1de82f266c75dbbad1a2d1c5a37d0b43456a5c92b4635fe8d81e8bc5e3502b881871b3a24c7c68be34472e6e04510e161d51cc63d11445a32b21b3a2465b310d9cbe64d6b592c76f3cfeb9c79e460420e262d8d6b3dbccc41c30e58b8bbdeea2dd7b6caaa676bab9f66b765dbda8f7e35aef1f07287ecf27287191c41c091c48b20f233337b7db59aae6f8b4307070d1da6b46c2cf7e02d7b1e56edc13bc53a94e0062f75488283e82043a76cbee1831b49bcb5ae18ad6d15dfb8e1de826d016603181254ddf8d6ee17b369aeedc07080b1bc865ee90c504e6752f58920d292c904f999348725cbeebb7d70edd997f6c264eb8a71648fd9d7a7bdb1d89505d7065c408a2082e2ff99d225c38613dc8b203253d3b8f64410c16177b3f8a6e21515626304368868fd6a5cbbf36e6f7bebfc16c96e16a2b45163e3e44510f97c6bd1fde21f5abba3b4b981cd90bb1741646646e39fd346dbc05043e4adfdb69fbaedcfacb8377dac6ef567581e56c5f80705d4d4bc0822335fd6b888f152005710c00504e0837b114466d816f77e9a379a67edfeacd916f73358e736158068c3cb1c6a9043922288ccb83f239359b79db17eab7a873d81f0128723b8bb9b5537bf457048000e46709041073724e0061b6a04a108229faa3f43049156cbf3b9758667ad8b7badb2d9c7cd9bc5ac9b7d5a9ef7f1ad34e7d699aa75abdfd6cd3c2c4e65f6dbe69bbadbfd29ce2eab956637df729a5bf5dbaa3ed9c53d8a57dce7cfb59d661f35a3d9cd7a47590303357c6abc1741e475e47ccecd6f919f218248cb07ce10f76dbfdd6dfb69d6f8077f8a6b676943161965b39b69364069d980d32fcea538bb2bfead9636d868e91eb45df76b5cd3c14b1a54d8b7a5e18dd36f713abb6e8b7e3eddfd8697349eb8d9875565b219bca401e42d37ef55a5f9e0258d775b9a4a53379b53f5d9d14b1aa39690bbd3dacfe19f6fd9199c5df67d8d7f3ed7765aba968d968c0f9c21a9ce2e0e486df1b432ab86973455dc4c735b1a9bf3ecb30faee5587cfbb6dda191d2da6cd640bca4016ab16daad59fcfc9ac2b663dfbd3fe6e5937b33f343958f5e6e69dd3cf333d83bbfbf072260b77d73594c534e50c13cf2e4eb6333364c6dddd4ca3bd3314e3f4d3daef41f1fa58e370cdcd4058f565785875bfaddba6dfee566ea9accfafd66a9bdd5cdba9e189bb9bf5fbebaa6efdd9c579f669de2dcb62b4076d57f6fd5cdba90189a76cd6ea6bf56ba8c1dd5b3be7dbef9675db8dd5ada62ac6a5eece0da016078ed70b87ce09798d7fe7068e1b3870c8b06edcd0213774881037e0f06e9d531c3ee038d37c03a8bdd1322f5849d8b97b2baf33ac7958757d312da7b31cbec99ea625c3feb46c0ffbe2328ae2cd6634bbbf757b7b1f38435834ac85b0543fbc9ce18a9656330fcbe24f59dcee1e7dce20c40cab7206173240f196feadf3c6b11b0a247b9a564e9f8755f3ecb54a6bdd947d6fb7765ddb0db4a39481e6ee3a5ecae04200b65006000aee1ec4cb003cd1caaeaa73aa7de00cc933d545f5ecd59f5bf34fbbbf6d83f0b0b886b22ee6c9eeebf7733435f3b0edfa2d8b3e76d5b7480ee2ee3878190096184410430562e001004f00801100b0cbc14b001071f796fab4f669c8b756d300635b75e735b7a61affe468d82d4b8356d797a6fffcd78e1d9d1fad9ce21bdbb66c0fde37fcb7f7a602e15bae6dadf3fa5a65dbfc7aab331910bec9da1faddcba6275bb18e7b69f5bf3ce6b8abe8c47df643fcfc3aa5bd52d2ea7afd57ff66cfd4c9a67568cbf346fb87b8f972b1c94ab28563ee8f072456ae5b08fcfa1b9b6f1b3b907ef75c5336966dfb7b63f4d559fd6c569f575ceb4d6765b5c5ef38ebbffe0e5cbf033665ce1ee2c5ece58c18c22ca193adc7de6250c45804189bba35ec220f3c210ca177a50be7080f2051977dff152c60e4a193b286508b9bb102f6514e1adac710d755f9c0f9c213339163f4dfd99a7c9bbbd6597a6a573a6fd2d6fb5ddac4ad3ca9996d3169b5f34ad1b7048734ed9b3f8ddcc661e5afbe7bf643917aba84acb6c9ec99ea6c5aa3144f66efb33321999568bf5339bcd2e06c2ba6188ecf30c5571b9fdebaa0af12dbd81b28e7fc9b6cea9ec695a3e7086a42cfec16e4a6b7118f5f12f592b7b9a568f56dddf38cf3e876febaafe7cfbb9b6d3ac55b7bdd1da976df5a6aeb11caef1bc2d9bbfdd8f7b7f4676cb5b8dc572a6c99ed6bedb6e34fbbc4ccb728a5355ffe7cca3e50367c8a32a4ddda98b7fdc96c6aa5be7f4f1d3da47f1b33c6a76b34fab578cb6abdef9d6ea77336d5d314eaab641b8795d314e101e55bf403986dd176357eb188a672d8d5563381de351756eababba81d0714387e0dcd02140807660f73db1fb9e5988db6ebcae2d0e4ead69b7adedf7d41965f18a6f5a1a9b83bbe1adf34ddd0172cb5be784b83b7697b917c0dd8b088288bb133184bb136088bb7b262f616e780c1a7077ef85973032cc541d5a2918e1014c7077f0c9053800e4450a886cdcdddbc10144e8ec96a04015eeee2da00933645cf18607dcfdf361c70e4858c00c0bb882bb832e0d9002850804559103771f2500812a1e16af2de47077ef085568c2c8161130828dbb8713908d9ca8d1c0360477f7b098dd0003220c282204778fcdde5a4ce7720f6cab6a9d857c58b8fb0e2f5f9eb8ef36c53d6b8ba399bd359acc93aaee8c86a6a1b1ebee4204e14e6b5b77b7abfe1c5eb38bb3fbbb6571429cf026bce1a18d9046b872f70178e9c210aaae1a4c82e371188dfd64d613807b3cdc5d082f5daab8bb0daebb43f6ec5e5f9d83d070f7168dbbcf3871f71adc9d0667b90c5ec690c2dd0310c389c7400280bb9befee33bc8c41a48c01c4fd85930d2d1b6ab46ad0a0d9675df14dd3c0e1061b6876cd5297eb861a14cd35686e2dda9abdb5adf2e4dcad559eec7acecadd7970f1f11c7bbd6e28509ad3166577e848550c24671e2dad71ea4631eea6e668ea8abbe1fcf3fb9dfd8c4cd67e9a359e3deef6ce1effce3cb94d675a21df7a194eddedfe56aff87556571c0ebf9bd55cd3efe79fcf28abeaddfe78994cf630991a1ee666d547ce3c9e86afe173a6c5d856d5acd7e171ea8eedbcc26470ea66a12b46633afcefbcba2d8fa741e3b3dbb23ceaccd6af2b93c9bef5b9b67958357d5794553f37fb19199cbabf65bfb6d51fd61ba16a9adceae255bdb1af4bb3d9d6a5bd6cc537f745578ce2f5e5c92e9bd916a7eec7eb6bf537aee13d6bbfdd2fcb99165b31abd2649f6b7bc5a97b7d6fafd597c9de5575dbcebedd6fe2d4fd2b7eb7abfa989ff78bbbb5e8b7fbb56cc519a7235357dc56d7f7f639d3fefc299e9b7dfe76ffc6ddf2de7806f7af07eeae7a3952c1dddd73bc2c81dc5ba8aa59d5dd40b9d9e7d9b318dd2c565deca359156fb6c559578c930a61776c360bf181bba143f00dbe5955cc43eb8ca2af9096f6813384559f87556fad4bfb34bf56ffdd5cdbb926c4b77276699fd7195e55ec837f036516bfceebec6dd36ff57a7e4b264bdd16cdeebbd927bf9edd5e56267bacfa7c9a597ccbe5dafe55ddecfb387cd36a0e6ffd3af3a4efecff81f0edd39ce68c026554bd613697eab57537dba22faad9f35b6cf651791e3fab6e36ebcfb36f55fc835fab9f5df5f3ebeed7eaaf6d3b637954fdb9adbaadeae2686a3c6aedf1a76cd699cd1aa3cfaa9f661f37ebecbe56bf75b3110fcb6cfb1b3fabf2e4d9eb15dfdc967db7a5b5f42d6ff5058083000450f32caeed77f3c6d9e5f996fd9fd6e5799d6fafd6f8b310df92e9c85ed6a323c3fabd7d76731b77d37963547d36d7f6cfacf82d923fbbf87546d59455bffdd939dfda6ffb5be3756b57a5a52cfe9916cdb3a7b5efe6d46d9f559f866dd9cfb59d6ff5a0ed3aa391e66017037937e33eb3ede7d9e756b67d16a3bff3c63cd9e5e1c139dfd26b66595c431f880f9c213356d5efc65bc8a76c16d2eeb02a8feaeadcd02129be01ca299ba393e29badde541fdceca32384bbb7bc2487b87f6ef669d62f467f06f7ed7e1eee2ee3fe81a074077d727010a7720779c0b8833b4c53dcfd5f3e7086d000f18133e4795855eb8cb62e10770f80fb374499e6220f4b734dbfb8dffab5bdc63f9fff27b38f1f96dbb85bfe3cfb3d038b51777fc11d3c428d9726186ff1b02a0ed7bae9e7d6cde655d5df7a56fdcc83b5ceb7cf46a8fad5e347ce8f20a710da6da5af57eaeed8cbd2107e83cfb7fb738a5d1edccbc3aaee9b7ec6e5f6f3a834b6c5c96f7e7ff8bc6af6e6b63437e39ecdb59f4ff346330e28b32f0edfd29ce68dd7ecba79b36f8b93baf887fd6975a4794710696681e091aa2bf66173dcbde6258901b959a95432a5796ff5969f88cfb59d52a964da6cf6d9e1ee372f492ca552c9d4d26a6d3fad2d954a26191a9a466f36fb641a1a6d531a56c5371aadda6a69b44d69d07869dcde355611ba866e8cd36a4ac4dfdaad5f9c52a964da715bd7dd01e429778fc7dd63f0729cc2bd258b6df475b7665b54f6edfe34a729fe3d03abf1cfc6b5fd9ac5f9f6b975c5af7e5fabb59d5fb1ea7faeed947d5bdae71b66bffdf18ac57ee8e40809b22388d88e1e67109d1d21b1d88b86060d1bd46636b35183468d1bb00d3638a039a438e090830d1bb20d4dded8dd7af66a1a7abf6d0f9a6b288dadf2d0687902ecfafab039679a73b63fd2bcdb1fad772878a62a4e05d1dd572fa988029b7b503c63d51a8a6f3479e3ad69e8eca36ef5a6ba387717bda4420654387107c06ffcff93591e56c52f980115a20b75a0a5b77a5371722cf6d1b63b78f6ea1c6e4ddb9b87e00330dcbd09081c0002a07fe9ac6ef59970252e0110c4e0be81320d765f0c8292fb6ab5e2ac1f0779cf5769b19d75cab6b3580edd59e3d866f366d558103de0b08f9cdd9d1b9a298af02f36ff4b8a17c4345e571cd33816ab6df5e7860ec1f13337dc96c7ba629c15e3bc5ea6546d8378bd5eaf588ccd69aad6622a0ec770faf5a2ad59e378bd70a0ea3a7b81e07067bbf37ac5f01a3f76dff306765f8c43e6676ec0e165b9ad0de7b4c5c9b31cf6b159fcb3559b9bd39c1f3d6efbb3339b6f981dc0ce3c2edef986d9585edfb4bda5acda13735b56bdc5f2c62e1a63d55b4b63736ee81037f7e0c0b1ae1867e71e54dd5bb7b7d8c6b11810bee99c691a08df54b5878ccbed988fca93aab16c84aa6340f876438170b0ad9a7303cd41e0e073e3860e79bd6ef061555cc3b9bd6c2c162b724b2fb06b5d60887beb7df6bc800d505069a150ecf0a750b8ed0cd340f1e284c8dd719f57b5f6f3a71320272faeb73a536bad8bb30014f7d7d56dcd02bbf6870580b8b7d2dcaab63f2c50a30245cebeeeb75bfdd1eaf3b878fd59bbce70afae0006dc0875c7c53f3820d216c51beba8408a025128f0000a14a1c08a029e9e49cf8d53f7133578e2a7256b6b3fb2cfcd6672a6cdc84e207c4bd976f6440e32ac57571e2f27208209ec4ca0746fe5f04fcbba9927cdbff1d9caeecbc3a3d6340fabb2eceb6a55ef96657d4e550964e1de9abd04641278c109226fc9340eabfa90a99fb2ed671f9cd7acc389d60956d014f79696c9bedd6c7b934371f2ec6566acec836b3298d5d2b158cab6b3548d05e1dcdd838004d9e0aed520f79d733a723e0259b83b101120f29d080865f5e666201140e25e8b80ccf3c6a99ab2187dfcbb652360e3ceaeaf0f9bf32cd640fc64b6c90d9a3071f7d4cb2636c8b69a6fb716cdeee7f06d63f44db30b011a40800a77cf5e42c00777999b6bdb7d69b8d64d370d33c9019328dc7dbf2d8d561026350fa8c1038cb87b4bb6f6e0dbd7785afbe7b7d896a77571efe6ad31cdcd3fedfa67ab86629c7ec0cb033e77a779e98027dc65edfe746d774a6b1d4043d9840d9a48e2de92e5d6ada2ea8a03ca9fe6f0ade599611fad7c7b35bee558bcc3c2147642bbd88eb4f31ab082062cd1000234c086cebf642d7c933dcde7d61b3aa485c3b77fc9644ff3d2addc83b7ec69f412202c59c192b58537d621cbaefa9359d9d304c1b55b7ffea7b54b6a60800f5a321cd96b8d717a86191f3843b49034ebd76d5d37e7f09a836c1cdb6cd6386a1af350d3b8c68021ad99aa3f080fcf9e0cb0c1806700beb92d4dc9939612243dedfbc019a22487bb2b61b92b29bd856f1640c5dd5b29be5900912fc000ee9e379034e7f542b3cfeb956e1dc3e9589af51be361d5342755634c486162d76222877b2b65f11255f4123adf5942085fe2c57fe08d75a438f390e25ce361b7ad1b8b6d36bb1817cb46a83ae6d3e26240f8a663d2f2813344574497c35b9d7bebdd6cbeb53e5eaf9d9f9655c00e0aa0a1440f945880124128c123092b24d18224d6248468b5643beb989bd794c5b5cf31b6957deec1fbf502225575c89ed6b2be06dbaa3232991a33d9ce42581d19eb659bcd6eaeb139b2b455dd0ce4f6de5456f521cbcd7e56cb1ad77046a88faa2cc6e5bc9b7169ee697d5835dfd4cdc3aa3cac5ad3988775c53849d836df5a9d442809123f9300717f7992905af64c8090bbfba6a9e99f0990c1de3601a5b772f827f7331affb43f1020c55b08d8fdb4ebcf0e026cb8ab5a0701246f6999ecb637d6e7588ce3e5018666bf6760b7fa309dd5032039000f3f99768097d6c61b23a1e22db7fd1b769094606b75ddc181e3f5dac191e620a104244e80c46a2407463060a40823260344c1005418c088017230c01bb104239818812357254745ce488e059403201800f900d5f073e5a7053fabbb7e1abe865777a6a9ebebade2cf6fde78bfb7af212384a75d593a32d66f37d7501767fd3917b32a9b571aa03dc410329975c55fc30b61e9c864b219b755653d3a59ab3f6eae6d9d6fc96ac8b2faf8f58c2c966559bfdfeeb7cdb140e45b2b44ab39bfae1965ddf635cab639df92b9ed46310faddf15f733aa2c6b7c23fb57cbadf1344f6b314dfdad558c7d86f091e153be507873f052f166e0f57903b0798081724b60f3ec1c3d05dd03ad007d83f65c29dc3d655f5a0ef233453c113ff34af1bf843c4dabc6bf7468e43c4d2bb33ab45686cf2b6e71ad8b9b910901c23e64381c465b2f1352dbedec6766b4c63897866d81789a564de35a4de35a6cc5acdfb2a761312a7b9a16dbe6d893866d7f868755d78cb218c755b9a5224c281245119f223b4560e060802bb2ae18e7f5bb02799accb63ffe75a3e369703e65f1105fc30fc1d269edf55db18ffa16c9afd56f6d8c535d8c6b6b3f2fe3665656dd36e6e6dafebcf2b0aa7e4c83d37cbbe5b82d8e1308fbf8991b680ee246afd807470fdaae373736abb6b87c5377d85cfbc9d9a5dd5a97a663ed6e8364dafdb63ced8bbbb7b46e5777bfac8e1dbfdfd98f6e6b3fec94964cda6ed607b1449c7d718382cbedbc6256e5d1625b34bfc63f426e402d19b7557d702dcfb47abb0169dbaccf9b7b4b46e39fb56875e22bce6df5e5e53ac457d60f8d9e2a4e935ddc8dbbd7e0650f140d847de834df30fba30789e7f54d730dd53e7ff60071576b41f4c8d0c67e329bb34b8bfd64b6adfdac6d3b7bbd7670ecdca0e9e0de9eb6f5419d81ca01d555636a56d49aa8f5e0d182a7083c58f0e878501e9216039a046841d05c72917beb76a3e35b36e7b6b77c7b56d5799a7f16fff4b8edcfc76429fbae78eb57879b797854770789fd6436c6b6afd74ffec1eafcafab4acbb357d3df4ff3dfca6d15e8f13bcbe19f15c7588cc6644ff3ff0ad27a1f88cdad69c6394fd3ca427ebf38567533ae9d5931aa6ed5457fb7acde6cbebd3c2ed6f1342db795c966667065a9fa1651d72c4546e2ad1d1d9d2038ad8cce1e03913f9d426a8474d74adbdace3700acb75d6bb5feb559fc936fea0e80cbd5cab59e2264447cae95a815540ad4083486190e66069809990160f602bb00f7e0173215c88c00e0bfb5b5abea19dcacdf1467f7b77e07f0df92c9afbb598fcbb9e7f366b18bdf198df3fa1bef9c4cd62ba6b134aee9947d69bfaeb275c5319cd7b6a569d1549c8ab65ae8ce3fa367b49b732ccecd302ebbb8b7cdcda83d8fb73b2323cbafbb65d9475d710c97738f8cf53af7c4f23ac3b1c7e86665a99894d802623b14a04a01b0f0966cb7ad2b7badcac832cab63f583fb36275b3796b1528ffb4abfb93d3525d5cebe270f86564392bdeed8e2caf78b7ebaab6d29c5d1e325c80240a7043015845eca095c3ab9b7d5a354d3116f2342dd47d5bbd713332d96b8c817604d16cab71767bd0d60754ab37361bd1bab458ceb49c5d9a9b7382a46a1142b8e3d0405eaf9d1b40ed4d4ce39a1a2f9a83006a6fd615a3447c202200222f108941c411bc25c3d238f67ab53436e7f5daf91a64d947ddd84775732ac4d3b4646e747c66759ea6a5539cdda769c9d460e93c4d4b67227820821cc20943040d9183005120001402f4d87849801cbc1593cd5e1d4b339eb9a1060d406435621acb681a36b7e2709a6dd5df2cfef9f4df3697036a5d9cec37fab6399a1cfb6a36bf6dee6939df6add726c9bbe59e33ecd39181285bbf7e0e510020c61792bb6db3648ecf34cabb95cdb5bb32a7e215a217258554c43f16c5ddbb5adfddcda8d832822002f83b8b167605b2dcb3deaca0201441340e058c20e057678c8e1e50e49480d840009a121880e826c20884e86f3eb9ae25bbbe29f91e5d4d08d6f64b9b671af8b59fc33edceb7b6bebda8aba2ac8a2383c3d2e1a1f1cdebf57ac9302e377badd5da0eeb7958956dddd72a2da72583374ef1ceb76755562ccdb27f6d167ffeddb2b2a76901e51ceba3456b678f83d8706fddd4d7336cf55bfd33d9475db3fe5cee214899cb3d417e28d291f3ed8f1fa0b41ea7d6f40f3aadaa68ebe26f7f0059029016005102880c880c9d2c74a0d0a9b9cf3cadd5fba75dd7b325d3b9dcf32306e58f0afc407fbc7c14c1870a7ca83e5cf8a0021f18e003112e7333fba393cb3dc8fe95aa9fcb3d2f9db7ea0a31d3f134b21999cee51e3650fe21fb19194d27cd09e2f5da91fd4ba7380799e9789a569a81541a4ba76a2c977b5e2f9dcb3dbc5e3bb89c9edfd2199763d597c9d4c0799a564de3ad3fb76e34bbaa8c9bd7b575f166bd9ba6f8f50cac8a6b3a72b0daa27996856c34d36879cfe06a562ef7bc0eb2e29cdb6e9cb2f8b6e3b6ae9b5b1a9ba3c3cd299b75fa7aedd434e6e1f5daa9695c23f21e9c78c6e170ed599d1e90e0f0cfd9c31077f435fe397b60b9bb9f3d905eb2013cc91a6717cde94fbbae034832801cf967e7199a71fa860790f384c77d716ca6615bf6c6cb9c1e605ee694eede0ac26ddd1647f63cacbaae185577b4368add0d9477f09207226fdd5a94866dd95445d557480e352f8efcae38885cee21a72d8a23977bc8e59e920720ee5bbde51e56e80145d903891e3670daf4f7dbf638390f09f0f08107c9dd5bd87d51d4cd29fbbecee59ed9abdfddb641dccf423c0d34d040430b48a56517a7b78bb7cee59ec7ebaaf65084c3cb1d4cdc7138d75ecfb0d97c635b57f561f3e7d6d92d6b7dceb2109907e376cc76f0e02e93a9d1ea71f12dbbb907fb7077d24b1d3fd021850e02e8d0d1b143a903061d2d385070368e0de70777a771e301b0ae2fedb19add2dc4b7726ef649d9dcca3c6a2a934173daa2accf5b757f6a3c4d4b26fba89a7dadfeeb856af5f67ab56a0ca765afd715a3ac97c90861e9c8fe55e369623beb188b51d9d380644264b29cb6686df3b0797d198eece7653242be86c761e904a76da8144faea74d4f3aa568460001000063130020301c128b064432a15490c3d0e30314000783b25a78509b08e32c08620a19a308210300220000001049c20400d9e9a42895a86d337f5a41d6a43b8c64caec4987fdc0d452c45570227eaadb371722c2bedeb4135736c4feab66d5f34525551218d6eed6478efce9c98fc7ab8fffa6324fdb57bd7367c3de1126f75178eae9a36a980bb60e63f2d6802a9f2823c65487b8664b4f8ee7a0dc88a14af2ffb880209bbfffa13e42ddf2d609975aa1ec75f19aecb17e3edce83287d6de7b1490111419f15d56fbfa8405cbd4e3e082c440587c2450361328278d6c7b5b4c1dcaedaf641c07b06d28c9a12a88cf066fe0818d46be6eccc4b36146028b145e79b9041b96226955c798b20e3814c5303192fc5903a9186f155f2f59ad9d4910f367a2b767fdeb26e32276bc99a0c114722be212b4e748ddfe28e38f22a98773988a36df09dcff69fb23800a9a85f22f484a8392898d2b8bfe6e70401bf08785a1a6fa50bcfc28110f43c022c3909dab627ebd18cc5dc4490f40a675f1daa73e304c91b31ed1c38f13b0dcbe639715e5bd27e127a1bb34869a35a26bd54f00ad7203b0c230adf1affdd07a8c98e64a8dfe68616a9e52b4d305dbd76b082e705d663b968ea53bbdc041b0501ca2d1afd82516c976c5f146e9a5866135a68f5c0d0478ec5694271754a01fc5c623d30159d1ac49d803ad375991d22783660b9de62a1ab8247cacb8b519224a272cc73b8c099092a388aaf87731b4ba6af3107eef298cdecbfc8110017d33df388c58f1cd20e0e963d31f89e93fc4516481d0f34795477041cfff534e96a6cc77ff74ad8b1401d2e2951073008e61b4f03f422b5e3076aca0cec7e94add0bc4c3b3ee2e698c721b6dcf621936a438756c00236c2069cbc3b8bb8330a6eb64cbe056cbfe87f29ab4ef45915f38ca8b630d1fa1bef84a47f141bb7686cee0666fffe49df7e01fbe1b26d25449dda9e6623299a406d77e0872087b029c03ac3fc882d0f8a7f4c741876242e22c7b9fb6fd493e0305fd0a4ae7f43a46de745f32037c3a2e88c2df36268b7015771b1df2bd2467602bbd8bb1b371557aa95270dc5aa14a98a5ff22623af3ed6c412ee93d7dd136f3f43e0383502c2505a9ac13d6167668e302ee6306d3f800d6f24e4f1ed93ea44f3a6dc135d3285d68fae3ea893bbd31f3a6e9b5878e1dbb09e0568adf08d2d2c2ae395b512256b40e56e5d0aefc3a324d35106abe38cbe55b81ec667d88de5542e0e7fb55fc3da48ef072d645ecb58819bdeb2ea7c6d1a6d17afcdf61cf46ceb2f99406df5db8acfa592749a6225cfb49cad436bdd06335bf78a5538c1014d0b827b74822349fba0438ddcb0d8a34b14e9664d6da6b103b1deb35ef1c54906f03c623fba2c6c974f54039804692ff8457a57bbd46bcc8f5995fb0ca260f75fc19846b2eaace17fd727ab99e89406c63dd2e293861e2a1c01a4264bc266a66b48e40c7806e675a52fb666e57de634e721f046661eba6d2668fe99f3df01dfaaeb3d5d1aef506d3a3b1b0b7bba698331f618c7996c20606bd7cf13a677642a42fa72803c90c3204c83ad20ec608a88040bdc48377a3732d7ef7c454eae6a6d2c76f3e25a0d4edd44f3971f4c9e0a3ab581d74a6d58a2cbef14d2380fed09c0c92d38727f0a35af2ede738820b98cd743b44aa39b86a1584d637ba8048a74e6fd5843ba5a46d867171a6ef437f5d6f7a4fb84d08888f9181f5d97455ff84e89e69e23d7b0f425156dc91479f29fea51d3accb3dcccd6c8ea592db23f2860eeba6612ce39a55732a7cb27488f20e6a99d62f9151001515da404dbc45b6cd3b46fd85e4ddf24db5cdcf89e1a9746db35fa7f9379c82cf766c1a78fe485454fd7c99cce7b3926e3a7846a279024dcb4dba8933153784980c1a6210e38611553b36ddb6585c8b5bc7e554cf6e7d37ede42305636208cd3a82fe876b828b36368993e59a522176a4a97d104fadc920e4683035cdf6910f25e6e7dd608a628482b3d5339efb947260a1e9e75673030dc8de461bee41729a5987946c4a458351c4a85073ec3e4c2d78295136a18570f89051d3246f025734f6e53927fe44565edf4ff8783583dce0451918b64111e643c6d50ce32992321993248da0b8f6f6e82fa37a9272316627cbbdd6768c318f724cfae772b61ce077b7430fe29749b2b48ad40cc47b613991d4290310f20f1efc0fc1b8a38eb10416d98e3cacc423e8003e5aed8bfc438360326710f5e3ffd294870e9f4680607644046b3b7361edb1e9bbe00d26168e0a423191986c7048e07b1a6d10c390254f6b8e33cf9cfca2746982e5523458e1cb308bfe0d09ff7a2ba0589d6ca8e754e02ec14a15d1f8e2d5eff1c1f1ec3be1d1f9131d41e1b582dc50ff79d721b2b62053100ee621a57c44ce5e4a2825dce908198315c389d815789c66a84fef7c6c24dda39dbb011a36b78be7f9f092aa4311f94941ab85a009961cca9bac01c7c0d13216e356083db14bf04f1cb106720df82ea4b7ef09d84bb11b3ffbd142f388e8f718654d79ed23049610c1d3f17f917bd4f3f2c33bb9e5c567bfb7402f02366d229f9d20ff5855faebf72d7053cef8576958149e1d4105f9bd6d77ab62b8f533afb0aa6e1736a6aada7e470a11710045355126c10d1b6865264602e6f04054c1ea2ec2892038972b88ad2e68b12440349a75923178ecc31d884ec9f20cbc6f140c69431728ca9c42b7d3f13bf7024021951a375f5b57f48c851af62dd0b66462a5b61cf0ebb8c1dc44e0b378eba5a90e5965580665f83b83400e4591e5d0a464bdb672f6188fe8193aabff2ae5beff8ae091c244f9b3320be4f303a902d15ee53cca2915e50e733fcdfe7c74d5f18126649fbff61b274aade3731a0c8cfc5f449a85d1e74f341e16ee2d7a289924f6915acae02392c659c5353249e9b94ab147c35f8d19a9fcbf4ccf4176e47f2ab9fa37459ac81d81f29d0080faf8ccee983eeae1b8abeaeb3cf2ee1859c7d1037619fc4ef95ccbfd963067917eb6563da1c8200a5e012d92a0c2a78e4717bead9cda1c434c06e0e603daf0d30e8784c9cd2b1ce4ac14c72729e00b512e902e910494ac7f54a5ba0f9d2e50c000a5ece98534eee5db161045a8fbee6e0bcd2cb8b381d4a79541d02a7bb6b1af11bcaddc1643fe6879a53ca5f117ea977b5d049818c070ce739fe162e77e175b7296d9fd27ed8b6e170832bfc106888634847f1969d7c0a0e388c7b56f9a22f0f64475517a0dfab12519483efb113c4e8be78b5b8b0d671adc685bedac5b606ba24e879ff0f0d6e45638cbd8f07fb204ddacbf1a896cf0644c5af38517209ed04f6a30f699cff352ea838178dd443f04fdd1e57b0c7768db65fbc8f87174290b88704138c91f325590a0e619bf4063c6b8a662660060b4ed4fbd22afcad301f04626e9fe5f81698bd6e65ffbae1593bbe40e7b0f8e86da0300d01f1d7022c27efef87cf41de675f8ad88bf2320a1656b8beb04137cfc98f2c3e80dc2b02c5f09316ee2a23cb1c44a2428757e8ee979ef19c9eb985bd62c5e633adcf85219fca78db2c41ae945ac4125c818ac5e494c1c78992b129471ce6ec2b7529ce35c749e6c68484900e99ae27f65df823c95905d72bb51cf1509d5fce3bb875ba043d3210afd3a9deb077d12f1d55d79d596cd7553334c0215049d2615d8add592f4a5736918f65b6b4f13b8bdbb39da76c169740e39f49a27bde4340253d9288fa6a7a05fd1abb041961384c761fa3f287b6a591ea95a4eaadcf516dd85bffd4e0cadd69d5e1d1571e62a95f3fdbb79a3d6b9972e15ce8a68d76bbdcefef840d7682d1114e6a70dfc507f8b785974b3bf89fd1fc0cb02f6af4d67d79ac367d388aa66279004c1f222d43efb323ba6e88d237f3f7e63ea347eac5f99c24c46ac690131848de30f6b6a6e44d02dab81a1f9a8ad006944b51fc485f32f4bf93f62a197b745959810239580032011ebf7ad58b68a49be9dfcbcf01b83257575293d31ee5abab115bdb2c970a9ff32d0c95a1a5d359eb25c5aed617f0122896c18695ab2ce03af7972b56a7aa10d004636656e9e41c3a03fb839fffe2101f88f7294b775d9f7880958ec81d94a55bd019b1e1037729d369d5e54c021275c170b0fe97015c6a09c4127a218f90f7181bafd77e2de48f9145cf9a92ebb3e22dfa7e979d69b15a7d758a46bc0f40fd0b989b32f20303af19e64da5ddf4300316bd982e4280247ac383ec1b055e64f67d80b393ec73cc4dbd392f45165c599c8c3be6c77c908a5f59bd2d5e5b12a7ee021d90a0cf4aec0aa63633c27763666aa61ce4e0725374e699174cf688e836c8277d17db69d9b25b9386b408361bdb53eccb242545b987031e4d165b21f131c048ff047ae427f05c028d7df102886b05195a646c9e21237847c8d1377f8a8608627946146b474fa2b7d91db0c72c830d370b03eccdadaa7e3ce4b384649cf256d117dc4418a65fb91ce8e3e5a434c12278537d114f6094b95656abdca0967793fbaa24e3d0c175bbc097c32ad31c8b9166e0ae9d95876921364d4de0cb1034daa69add013e650d1f93407bbaade5637dac52278850b5a09a256dba037135432a260456d97b7ce361aea857e6b3e983ff2a2e6fc62160d9ad83c71ab8a8b94c298cfae9e6c90024d86c985e6f3c2fb7eb5282978e92f0a3829c1a39f74b17daab311b756302f8267d44bed325441c826451baa920d08c24d8844afcd2506222e56c9820edc6beb6b6965bc816363ea78c45d1ac21aa272360fefabf53a06944bde8e7065b690bafa01c718f9dad8cb06a6a31290a5d1f1d4a8637577c15fa61f0ed1bedbf98ff41fb3a8a7f2bc63b023c15c14eeebc77b16899e50c851f66f34150edbef36a775f08da3f0cba5e50587ad923840fa879136beb8ef00e3e05812424eda7c18cf93310400ec1d9f25d65aa0244a901aca2917c567674ad69796a4fdd5ca7495a7fc225cb823d1420a456bb3ec8705014319a3a5a6fd36cd93c6f2e9bbb128c2e0bd99dc731a37a2ee2e57a80dc1867fa4ae46ece2f9759e1da3fba19499176b5e849a5aab67fe82b0a679777189e6841d09aaa6b4db530bc7219b053ac88a567f0059ea9e37985ec0972f039ca35014fd70a73e5b179072368560f8f553d6ccc8c52cb55061324cd591817b338283f131e4d2f5873931878b40a9d917c4b7f5c9ad7361632e27e726f37e397497b4d9b6203240bb8acefc890e9bed00374b5ee49ac0f3d55fcf3bfd0f5277f40e17bfc9be5a13900b92f30e80745095bb5c0273a1c7b705a6386fc7aef7bb69ef72df6e1c22d8280bd4791be6d98eb219a638e2b8d8b784354f6153ace317e873e113f595a24db1970837e42e851ed25ab1a2aaf2aec1505d8a755f3c8c18fe931b54ae03d0b32e159264d09fb831eb58b1ec13054565e278009cab7bac51bf3d85cd653b21e7bf462d1fbecea211e513a39bb4ce19fabdf6f51a863051bff0aaa60990583b23f4c452817b1849049554b62281b96fe4515d2b6a078c4a2737148f212f0e810a1755b17e34a21159935e8689ecfcd37ef79a7c86218cba05e9ff814bdde0fcedf798139d908ed5322e37c5336eef197b014577c589674e4e295746b96b988bd24da9c16f20221f916e1d83482fc0e1521f236d02b791f3d0f7f8a192930e65171292f028128e91f947ae828d6d7a70c2f07fb2dbfe7eee6363415f96d9a6e1f713f5ca72711fa061ba5df221cfd6706761d0cd1308c2f15ed0b80454fa2fc90d940e322c7c710dbb1fd0b0b2a94a0d3cee637e0b86032660256aca9298462af3ad0f28292b63401ec19bf7e0b8180ab330ed4716486c8a70d4c05cf9ee5a5e9d6a31d7cf4f74a96ec83de1ce1031c76d6a2d19d53cb324b6031996985f3111e0c5db92bd061d09c9c9e3a707f4d55ca8b766683f27068ae8d0786f366bcd55ff7c8d901cae11b70e0f8721d66a580df6be739d951f5bda05e4ff17859de2e74c0a48fdcaf12f69fc3c23d38e8cd636b76e49fb7e2ba41bd236c4f9017931917027e68c5ef88e973db3b4a711e4e5983de3946b2e1f1f9d150b773e0ba682dd8bc1ca8dc8101c7558dbc1b7f5f8ea7bfbd72711fcdc8d7bbdc16856fac334c41e3b6bdde7be625555ce5d45072edadbc4dd151f177680bf355917c92ca035a80ab1b17d1e02a00132c30c29703478d60160add36c8d4890ed40fcb256a915e530e0c11dd372a06396ce98b591537b0dc884c2a5bd2a4bfe3f91fd609eaf51612144283f38e5ad8a61ecd81932d298ffe153a9b0ba786b7ac506a34bf69616a32633ac0605c574f70292ef227031a2f1c2caf95762cb9a327b17326f3267dd0f521f5a4882922150f4484e4810a60dd970719d46c66e30a27c73a6f9a0cc17844c8213b2d2cefc094b5ef753645bdd24130fee850b8084019d249053804b0a36f9087f6f34a93d670595dccecb6db9d45f2852cdbdeafca88eadbb7cc5e8d9ecb646ad6f3e4f326be977c868a3c516b6efb21ebe0d612e5fb92e4eab27108c610ae55968b4fba63a22f3dfcb71925011dea76eb101e00ab4dd4bf743e35046d72e5bec49790cf2ffede7ae1f3c5346e8e2bd3827ca172c0cb9084d10efe081fcffcf00e301e8cffa7bf7d4d172a92cf41ea7e9f475abd9e85293e95b45ff7992b6b76409892742d26aaeea08700c821f2e1f98097a05543b1371e9061993cb75364a638e7a7410c7b0269f340e48cd2853925bc2bd13ca0a2556c52d1136a8e6658b8c3cc2e3acbcaa91cbe60d7cd218573a82ae072666f0b5e94b485e073dbd5a9804dabb1485d38a2e7af1e1cd6fd832e096de2009ba4de697ac35d6f4ab6b387f0bf56b54fc91a26944d5c5c80511249daac2388085c46811295e7049a1ce4867e39570c7eef9c53386621771bab8665dd51a512863873fa4d904063e7adc8c6c6b8d286c5b549c066eccb5dfc7cafbd3cbe02f2ae433f574e8468c22954ac635f97d2db417f4731ecaddbcc62f84e8b424f19c806641028c84473c2e5c38455bdcb46fff4c26db1c1bbe1064e776e4818b99ffcefa3b4b78cf7c7028d12e21e2589c03a2a34cfdb4ab2a28c8b05b4827e0064f2978b97f2fa76e84b226fa2795626f444e73b6a24c18d7378fe3cdef915160e7d650734b41f70edc132eb0de844832d6ab2e2a3c041dc364f90dea829b360b55486e66d8a7dc02bf743a2f1d82f0e8512a24168d00945f011097cbc62c30224e2f755123848a43f9aeccf0c5bc108b4adca3588007aa430fcafe4734e41a6048b9355ec154e47b00825de303422e727be3dd43a21b0be7b82743c1864eeb65c0cefc53631e25d0cf3286ad8cae05ec0d0afe588e700920bff7456ae22c3598065b99535fd0273bc2dd11e87c87ea33f88f9de077ffb6dc4925dddfa5c406543914ff67cc7e7a7da7dec4f3dbcfc91344b1246f7b5a43c80b8bf79e652c9f7552bff8fc12aa56df8d8a533bbf80717803ecbcb1ea988f27a4eb4f146ac200b04a38e86dff8d7648327aa1aef02d36ba58d7a9738a275ed0cc1b3e6b295d202e664ef29f39820b438475ce68586c6624e88f2884d4b2c3e77c348a9d10c6c189393ce6774334b510518e51f4270b2cadc2aed2d76fe7dbab0770f54adacb1d65ae6a3afb0ec4768ca0a2e9f446f3185f549b5f70970a8fe5a1de2cb008f5d372db39cf108bf7aada4abba6b66d26ced2081416a155cc08524c70fc4cf2b8906e3d8fdc6b1869bb92284f7b98814fc9dc5463edb2c2d2a77abb3f1e2af39e9835cf97def6fd871b53dd770ef75f348d2124c4957d4b23cb4b35865301015bf681cf99919fe3f0ea6941e5fa158f9da2a6faefcce9f563ee227e8b31ef5edc9fc1e8da564930d6b02495c17c3e7b8826cfe71cb7302ae83fe23d6b66f9d708d531d77b1595754702dd4f86af06f55786dbbabcf83f74ec9bb5f56e9e40d291a6f0d33318426234fd7817946d8dcc884f48a39502a0edefdd35c41b81c385b6c0be4fd7505197fa18e14b21c9cfaff74c82afc84900fbe21d65dfc04bed6fc42a3dc0ec67921952cecca01aca3f9e32b6f0448dfd5059452a5c7011d8e8c65b9247e537c305fe83e8c95de1006a9dec5e3c70548e0cd1ffa5921321ae4a108a9c594cbdcb90df4e2852baa83b00b5015c5f6a10e30f92accf511d896a12d76649d0f9545624a204dce1de4183b18879477e43309c69f29deb3bfe42dc6c09780890472faf83e595d58566443b679602ba8d061839d5dc086967bf28b93e1351d0f681ad2eb6dfc879327e945162d35d5ec33829509e163bd26a4cc529d849d137a3e692207e02ca42631a00d84ad7b981687252ddebba9eaca148df397b91e37ffec930b0e6c43e6a407ceefb40bafca3d80c2f595c927c23621d5a762702d519e88158e81f2538a89a7110e2b1b489deb2b6d82d0f558245a7619e80de47303f06f2e235414f62e260aaf7033390be4e8c5e8352c8c8716d75974660d7338c26e450edbf3f1d07794027687b5e131798564966d996bd9c7da95a01cf91c9887451708ce22126df72785eea47643689dad02c2aa5caa83455e67de6031558e311a1ffe4f330c820b91f921b12bcde8cfac0e4330f2c01b459cb7b530437896a0303266b45c49f1fdbabea0858b0c228a05754244a5bbc9c9e296789b72c8127461bb89c43b3d7bf06b07e09703686e1eea53deef9f94f9431f13dee73cc3c1084d41a7301afbed1294beb7a80695e72e4c01fd43ee4cd430f3a0c3c31c42ebbe1d8e7b74489e8f16c7b9bf48afe0b0579aabd149defde684193623c5c0232347081c48b9baa3f2f1e5c490a712bb0a7371bc1ebc9b89108cfa863aa3a4e9905e7447a413238c3bcdd0717d4dbb577ca5bc446a1163f9a3b5b5cfdb6ebb8a6b7269af03cc8ee6ca8f5c24c37e9d0e543d843f79df8e13422a6272f16e9a05f778d672a9ba66784f6ebe74264d4d97a0a0dc091e3bcddf96a28699af17d9251552b0565aed5e0bed10171404584fe37478f82b4b6c7eb53346af83fb3a6802ec10a153f63a89c39c37567b40bda5807677c76d411a1629031dc76e1fc0a3f060e5ed8adf70486766a246a7e3db4f252978d56e70bac5210639d223925acd7e1d52e5ae996e0e746b478047a3782efcf439838fc6c84d847d3106c4a7801f544f51d1aaaac9158b4bc54d09707d90a57caaa6d6e0f2b70000bc179e1ec550dffa34ee5bb83b3238ee680ae339907b059a18d73a7883e4ca9d44fbba6f725bd154ab8beda6a20d08a70d8470df97c1d195720b7437a7a1c62b7691bf31d5c0a85d2832a26758192011b26336f95b26025d4fd2e4e3f38c48fbd2c0029bbe4fa6598ae5dd295e7c84c08614395b1a10213bc608810fa2db5de7d0704e38eef1a413bf366b94563e83ef63247412bbe8962f3a69bf8c6181bc38fbc3e7173ec5c64e3b3f5d0980703f931a573150bc883103739e70802b70d1873f508a82427aecbe0140303eff9b20f8e2b9b08e16b6925014210d8840f4b988107be3069230aebcd6f5c0ba96f7df77f7b50e469a15836d2d7dbea5aeeb36f24a119eaddf79040654e488722ff2badc7d5e4dd5e15623fd3a57555d806713e801095d17386c7b099cf82dfa297b5c0b8c551bf7c53e0eedee6a4fd8068a5dd6993ec320dc270d48c7aeeb916cedb3d5e4c7199f609a1ae87276e910542084eecdde5eab33a1fb456c1e60370cca505969efdf0356ab969549483cdd4213fa1add40f96ea381d14c109858f2badfde1abe53f51ec76102d689bbd4ff17e1ee6d0b582e0c48bfee508c6707e79edf7dfbaa50f4f82e8a0d92c97df26cbd3b5e0801ce439cff41fdffc79260d87669445ea62543ab2a33af525ed520dc993af52d7ca1f49e166d82f5d4e08181e084ecb2359ab0f801777ce2860d557c4b86abc1dbdca010c9e95bfc854688077a1dbbe5bc077099cf5ee1b3c49d36c8714eaeca37cdbaf25906824163d69918060bc79e6881302e41c5d50156da453ea213f564e8e3a329949db33a319311d7f87813baeb0bbb0114d92e87bf61fe7ec6583df290b746104f6f76fc98b6b94a7c15fa02cff111efba69dc73783aa8b85ad3e753a1ad133bef583981c5a3ab7b23e325329ce81066840751389c053f99acd4116169edd8021a04ffe86140ff583f7bdd6dfeebda7dfaff17a2b39b6c9b87505585b59d408278b42f44f557bed71c0bf45bb6b304547b26001bf19c19c6af58535ae15d82ca566b5eb029f62207b147283bfade0f8dd1536840dde6b8007d3e707d1ee57f34ab4ad3cbf867a399a1327927ea04c27ecdf774a57680c5aabf1010083eb354a30fd0b5e3829eaf6e1a005f16d5fcaca13481631d52d87901cafb043c4062718a306797c883e5c99e597ca0599f083502e021700334d7d55a1a71d9724d1f92dd41a88940419b1697785b44a17341c2956563d6caa167096799026fc01e5059d1e4f5a3e4ffeaf3189882bb08a5300993fd0e5b0ebc54ee22b6a98591d73de1eb0a32a22d23ac851628991f9eef009105e1cf747896ae6cd48117604ef49d26cab7d5bd63044fab2de728d9b78407b0259bbd9268d63ee1907f009cffa07ff9e30f32cf56d25fc0a3410096daf9c2f8990e8386740cacaf272dfbdc185be2726484cd3eff6ebd7fcee7f8eb15ed1a952d34bf88144f02f07bd127218539b74afde3f73a051a5d240085a91c9c6806cd5cf3090a16fb4a02418e77881b952dbd0fd0a0c3c8e81306e38e0ec654d97e2ddb17f4c5165d343e40033784f0668252592e4d1cd95fdc4af16f1ce16b06ad0749e8a315492b11692467e4901a837a443f05c36b106bebbb1d35a83558b76c4c16ded2cb4e80be746c40300d5a5d2500140409833f74557963a37e0888d854105d32d324063d2431edb2d2a6f62a538749dd8b32d83057d551d53df79fbdc4c92fe34883a806ab6910b7c0b4b8495f5fe77fbba14d071c28136c0d45eb02c80de180c846b61ae7ff583d4ffa4c58c0ac0815e9922d68426d5264f7d8061c59ec70d963e6c1f08861fb71ca3e7c6edea3c74b179ef6a04c909502234a0c2493958f464e2af923d39156d61472fc0ac764a3ed9a7d64b0a1a4ef283d2411c22c40d2e7de982fdcddec2023d7e413b27c11c9c9bea9648bec30445e66c71d9b4617241b6a6d82be42380a3abdd35329adf41a1cd72e68ef857c1a9b205859e3c149bf1ef6b8f39ca5c33bfbd8c8e3ad49f617050068765a8f9597f0154b989aa6534c5a0bdd8f060103c8fdd717586b655e92485c3f445c79b3be59ab21d0f641096a566e99385700f8c3d44b3320f9056932420a680b0d8b2614b907709951c8ca6b67cd134a3c3a35f65102c1762260d694d522e0b4973d395a17fa90827470c2f61ce36bce0dc9d2d618da66a7fa5fed6725f9b9f5bef7eabac06f3ba89e9337bfac6660c5e953bd6f41a9a1fbca5ac67579b88e2d5628a68a77a2df4fb508d593db7bf05500da15aba17e98d749a9492a00870642a3881e1d966658f1ffbd78e0ce1edf48adc719336da0794462c1802d1bb0d4f76b24c7e7568534b5e1cb159ae6bec0017ad710a192130daa1d8b3394bfbeccabc04d8a739cd624a50d652fb06d911061ea498c936e4e8801412242acf790e4bf3b43ec1721fa82fa35de30afa5f06b8e3ff34c11922a4c6b2ced320e80e7625793f3717a5c741a2239b1a3eefa045e7dd9c50d87992f9d1c3ce7a0bd5968bc9c77c9be1194f7e2ce169e54876ebffcd7f8ff131456cf00daa3a8a2e4fb0df48c619e1a07106a10c91634e7e1e9ad7bea7efbdaff80b9a1a774e23230493cefe2ca6885eb499c18f87b723760e40607feabfb38707279b095dd009095e1fa505391596db0896732fdd9d3edf8a881d95ab6723025fe3b0d3806002ecab633d0bf87c665551adb9135f8f2389638891d88a065b7f387fc55a5c9f3cc8bbbdd56bade2bfce143356b96d55fc646bfaa83a447f57985981db1368e99c1813e039773593f9c2559a9203f3d0e5ab4d5ac99326a62e7e66c364e6f0582bcae817912ec7e3efa5f3789bd08e8a089a9cf13f0fed1674d59c16dcb72d5c92c7bab0794a1fb5aefd8cb8b03d87e1ab4735fa1219acb01ac5ec9c1839ee735ea769fea4def6dc24898ec612417a8c0276b6d933c080d11604da0dad26365f2d182f6c13ff0655a00a45bf9e080f8af2b9d9e7d0b613f432048d7d806573de19bad791bc27cb1156d4d04b29483ee8dbcad033c0e98d115afc39d87b7b09e20ad75f8df3db5ab3f7cb0e0bcfca6e0e034d2a771cf918583ac631340a52e5e05401aa5b01857843eaaed797ff1e47489eda2732f60a7c06695769b6ae7e48237f51c4b0bdfd9a878ce57ae215610102275db86515e9a9ce76fbe5db30c839e4c2c6d12d5d79e8e078992b3961e333d6ddc75015c2d53c80b3886f052c6708e34dbe7af3eda1de08e0bbaa0420a9acdc0b59694ffab4e032f642dc7db064a1b8ea613b1bb9d59201bb065dfd9609b19901cd6a504a0dd813caecbc167e500e9dfd7623c5e6ca2c0bb878b27f2cd6bb8faf47b96a486b7a909d606c487641614a14a018b2e526a204ce45a563118b121c96a8a52e035fd8dc0f427195664885eb8734dddf531c84726ffcbfb5787844361e98a2ca9043e076652030709cf2c7e2dff38bae3ff9b0f0300a732cf4aff8df65ae8e6033ca8fd74843ae6c211bda28652218210911d41d25b34a431009bd85a46b04b46455c63a1e9de2fdb40ed439116c846ebb3cedcda99fcc6359ba7295b436ef1eea80b7d8442e076c2364f354b88253e9ee7e758415dccb351340016bfef0c479fd11db8df76658916bb895c1750b85f71ce8c600ae89ae791166ab72d161441a6d70f012c56208d16eb57d201cd3fb162c07fae1f331eb27bb81f463efc2f07f72f0a913429a3a0fd21df6fdddec4720b85c33ffef9701050aecfae2b6196c40d91358cc0a41da18cfb23e19c0506cc067dec9a9f281e4e9c21cbdbabc70fbd13baf6465e38e44cfc31a667bc3531c2ba1d238f1fde43dfa7cd8bb8ac643ce15e99d9cb6c8c06f9c5e6722979b9b2612baad733f2276b7d3bda7f0b03a65671e6fd17f56eebf78fc0fec27d493f6b1690d99bba1b9b8420bc9771bd4fcdce3fd19d124e616793b48506d21f53550d1c5cc58a1570ed68fc30bc6837d33f7f4c7e489c780e077333a2429a27ffc5cfba8cc409442242cbaf36d15bc53dc6463ddd85e8268afe20cb0c7f9f7babe1668e60fc9fa95badac268e74d05268a7d7a1a8bc59593d8affd9d82fdc2ce536d49ba4533414b20ecc952261377e2dba83d10ff817706d2e677ad96a5cd36ff800262a58e9595daa8ce293b643088a885c82f50dfb8682a14b6d4a54d540f5ae7e8730ff942f815aa88179fe3b20fa79a615021efe5992b2c6c5d4126b4afb541238112b37854aaee188a293d046bb8cda4a03f02b190e98f79e912afd42ec0ae986f9731e1b46c7b3eaf666131a8e3fff610abbee483f47761ba20a9112f001032124e81cb58fabbd49ff1d7ab99750ec7773f907970b1cdc84e8d2dfaad4744c24e39c223562df169bfb769b91a8821bd631a247a26565541343e173a1c7ec826539994b5ce0d78244af211d67fd51b34c9d4c87358fb2b100cea907e758a85264e9401f13367bded0111524afa8d809326098eafe1ef36774b6e18cf84252d14f906c7e990d3a4cf19c9e3530f543ebb02ee59c75d8a86782cdcd4b02c2658cd9f4c0c2507e7a0c6b26cd3177702e72c11ea1f281baad46e9ee94bdee62232dffb157bbf4a6f0f35274c54e6f587e4c2a3fa91266a0d9a93568bb4bdb0908d2852d99cd5f4cf572d89bffc819dc1fd4b2c1e7af7e78ad5ec46c97a259948dbeb1f6a37f6d598942465f89717f5aa9c86e6b31898a85466f914af9642bc6b8fbb87b73fa245d46f5012001128841afbefa1875cd03a2d80f1728c28eff7137a0677de865c2ee25ce450efe308bfbafb0a73f0b29ad8d0da1e8f864d42a368ec0639adaaad4096ccfe94a64a960be2906372246d74fda3fe7e4cfcad024b20e67fd27be5e591df451708a02476784aa6ce0b5c18acbc602a3ce235c51ced28a7d3782387207511f092785430162ecd37ff7736466f6f77e1a12dc727eaaa975602c4f3fe39eb8d3933e67858cce032323ae705a871d597b2905834fefdc2befbb6982a8bf693702dce9b0af3e024270da9238e74c7890b8a6ac698fa3870d5615bf01a3bf889cc25178d3bf2efb58f975f46f8dfc73f793c53415c3a0da650abffbaf53b1fe8868eb51f5c5cced1bcb7bbbdfe6d17f55f83d887fce542aa46345dfce0377363b4c98a891c90ce6cc9aa2e4794f757999275fd38f4837dd82090c76425774d4d2dbc218c9d968fe62044b1fdf61df76db0205489c5d60e9dcede83eaa61669157de35711cf8fd01f90cd2f145a4df4dc9909325e902aaad9a4e3261411920bb7afaf262f33238270eb68a909f03d495c0fb5b424465a0360684b5a2611a1502f2611837f048dc5227333139929eea58fde39686f0ead48435bf7fd804c935b2f2749daa0d73a329c06b277766267d8c57e7b05c79d9a38ccd4e20231dad12b19368457f06547c751874b10fac5071322a99690512c7ae4774fad306972be80cbac3dcbd3ac59ecc012ea791669d83d291a84976d2ce806942bbc79c356b57e19d137f09c6bba3f2df4a22ed2ddc8686a5ce4664641b977b28999d88107dff203c9571e591014809357e77e86d39d312262d17cc7696793fd0c0d48a308f58c646339a4b64493f26675c3eb5e7e509aa0e7c75ad0797917eebdf12413885f11a368e10b6f7799ed6f4d29c8b79d57e42c0d0feabab48f3a38e7856ead2e99dd94d46194a778f1d42526bcb9d2d5b038dc2153d23ab3c7631df13e2ade1864a12f17cbf66a86c2b6d579284808ffb6832456d558d2ef628a1ef4d5052df5352648f7a7720627c14cf729a390f78f86b9dcd15a7d729ba984edab5134ece13fd022415a9e4e5078514222e517c5bbd675786cecd427ce872bb9bf92999e8d2867857650fe2ce5d5cb78743bea07a3eaedca848bf78812a32c25b4f30c0ec4742c9cdd20647251e5bef123a76ee4139ba3f0f01285e18f5280c1b7b7e8c3a457ce0d5c547f1a7d5cb6df94f9853f9f1a82df23a28498525ecf21efbc714ba817700b3135082c08f9e8ea50e0b7bb422026ae969dce97ea135fafd46c1a55202068df4efe9adbdbdd8411309a20e1bc147dad80db0d469d1fba2a704aa916226fe62cc6ea1075f6218cc2d6eae3b01edd5cfb445053e9c3d7cb30467c337f0fd13f4fc58889d71d44ba385f9b0a5f60ee63969c50303215da59e060947e91324d1233a3363043ba2d3cfefe220c6041b872fdfe0007490563033396085b788f44d5871e6657fd635ace405835f248c33f82f042bdad0cd092497d09bab066e8d3c89af73098d6e3ca6a7cca820895131bad96d20af776d42a6f2f2f6df66e7792795fc130dff9d86eb8b8059cb1c49df41c4cb030df723c92d2706db94415137a495eca46f937ba6da9446eb3d73dcfa59338747665b3ce6a23f7ebfd181b59d9bf7fb6d2c2655d8a11410ed662535b5b5561359cf4f74fa0196d1fbcc4abad771637905f341d17311d6a15cc836341cf79d6f5c2cdbabb33b03d9e8b4facebd59aed1c8a8a342385e65da02a79b48a07700c77e1221b2fe23aac9b794b21eb82ca6b5814466a7acc7add1646716b60cd76ac52898ec0b5d4aa952c6a08203944f0b59d8d1c9632c3e5cff0172ecff2f95768216922cdff8bb2a699442fa04d6e4d2d7ec1825cefa9a63b470ca26ee08c32f4aa48da5d7762fc7087920c060d62f90f6f1e96e5e3e0b6f8e4edbea8780751cdeeac844ea7c7c038972363455d6b68677ab590c08d0f8bcbe5a9a2148da4d0c4a1604ab13bb91cffbcc67bfd0dc9ea641d7cd8025367d306f62556441624b0f308af1f50f63a37c71db7454c6bcd4f41e0baee5f1ab156c7e0534daf0fb61ba9c0313a2e7e2426ac049082a47384159f4b5caa36584c3e8a26c16258e3e22eab4a3dc1a127348bae37e0a254b33206be3c9e548bdfc5422e7eb1ee83524211107b1e1509b9ffc6988d291411cbf40e1335c93695fbc020ee868ee15c88dd3e4dde2cae9c409dc0de562bae4170325c8a58bd3a938c2c1e31507797040081200f3103d35ca91ddbdcdaba8fdfe5a57eca3151fd8260d983eb3669ab2a681276abf7579ce46ebf10d953634f1e96ef05172b677300dcef2068962a2844788e26f6f456ef04e9807f100a5b8b1492258dc24b3a96d1fc07de8f8a52b90daa685baf1492ec905dd4574da5591992b9d4ab4054b97fe5e69a9d1734fa4fdbabb9f05d04cf7161a631ed8a7f706c3484ff6a79e2b0c5308c5f8645f20b374f8f862c3c2ffbb9defcfb186ad91812ab9a6919a3354abcb67171d896827f650d9588b094c5513bf44494976934acc284d68ea96ecc519d2afa6cb5a4dd5a00ba100646cac79f269690ecf70bfe697f31cb56167feb65acdedc16f29f67d84c57350b202eb6054d3e54ee5187bcacbb7cc3f3b6b3ca254197802916cec088933600efca7cb3ad01d75f99ad074b933fad36515fdf2fe1ea2cb333b30d8745951cf81711f80d779d4d1300ae191d8ea5fd6e69f57baacdf9a50fb107edc384264ac6b495590916bb6c12444f21892e79ecefe9d0c8537227403d059faef237d067c1b6b3bc56a15211604a88b6eee8c402f2a5bb26e70382ea3ce4f8cbe7e8ac5bbe9b808ca62d8b3953b4caf6a4785ee2ff5dc9b5e88fdb984fd43b16fcfe1306923e560ffdbe26cec8064580f9875579977d990b7600c109d67c0bc0110235ebcd1370db082900499500812b1f826c64c6a53a30ee3b2bd19f997324dd1adcea36c4d9e4c181f98a761f79b96eb150b49166922620146b94d328b3f6087bb7793194335f0c05e106b0e29ed1fa98a7b0484cd3d912fb19a7b9885777d67baa248c7c0e3ddc45618dac273d5075fb42d0069de73335bff4f1e59c8b79266d93826dbe891039071c3adbdc914211b4189975391b9e04d73c2ea887e87d5c808724ff27b3d2349b2ecbda231e6de70f42e89f569a283b3b2c30f1486778a17aded0cc3fc181a30048e33f3cecc71295d08abe32972de20a568f1666f867d5524769de2b43b349d4fcd1fca061e49117436be8c3c604d7738905083413f773303e38600eab54ee279c013498d5040828575bcc329dc68b751f0ff79d9f62109ac27967ef1d44716026ddf84608ed90b3d7037592fa254274ec3f48480281060ce2d36f290640824bf740372aa92ee7e138cfc932b5ce6799a83bb56e4399c916451e2e1f70ca05232e23d2b1f7b45d949532a841af5cb320f7e47368e05279e94dc0da7a3f97ac7195a3793d1cf9e66bf8b27f39293e74af5f582e47c4f4345abc9342f117444cc7a53df0ac7f5e498a7e91fa302234888e8a6578c200830c13635c3b6f54ac3ca6ade66c4d756a2331535d358f8efa831acbd107fd7acc5eb13b3b8a8c514f312939cc9dee0b61a507c11e89bf815b50f35031e2fb6f9a48425aa594d82180913c3d6c21095f5dc34777f6e37e122522f8573af20afa6e8d7ac349f6555ae987ae192b747d416aa986594f64b207f3f9e6bbc87cb9b828d39ddaa5cf6b9ed0f7510914059c4c4cb26265e844e8a6708bd78f92c878a279a080dadf30ef11968a1460089a4e1e9444fafc25d161f16de29ba7bb711ba059ae9bad9e426a222b56ab20c27f6709a71d4d68f2917d37930f0b98f5cc52df1282325cf7d3aac6e6824ce8a49536010c9ef907d418c5c5f033f3b8c1aa06a1ab06023f4885b36ab8a092082e10c5ed33d3523c30f7cf7797245f76e6d17bce95b216a305fcb90ae9c82f39aa355760be218ec2ecb930279afe8bf772dce359c5e978a1505d1e8e0eae6af119c2223a002650654fdf971ec7d0b8c39231b909d5745e1358c6581006025240951b1b12b11f849b02bdc5fdd0bf159daf3a3c1f9d64a63522bc7e54e15414c6810111fcbf1169e21b009b07d4260ae31b54bcacac0c42046018840b7ef476a63e862130c48b4c7e27d71863a8f2a93150ecc02c998f272cbe6727976be1dd5277a15643a2a440eb3c02846f93696fbb492d7c77f2fa2f70f0e69313a6e8b3c1bc6aa4a282195bb4b6ae0a06c701ba284bed8343617eeb917073e13d1c46171745d4de700e5801a213a657db024122ba74e3bfe9c6c5b7a87e44b2296bceb6857451ffae40626521040168e325018710ceb849c485251d7022e7e44d354031311ec08c65cb2b0f3767ca3d663f8d4db88cbf65850359b6a77df8025c31d1a1a48e480ca0cbfb656a3b00623f3593004eebc69ca859e6d839948be8b834e188093a946aa4b2cf70a824157393b009e08e3f0062a813d31074cdadb209547c1881f5896d88c0ce5dca6b7435f563b9c8094d4c2e85def757e136aa103bab4c8788706a9a6e5c366a000bc13d975050d6c90168150673fabe259076d842fc509a581cfb9e517cfe6b9fe5b84d79812143c7d4ec4fda796b50bfe55eb477c0264e4251a4b7839198b6310797234b66d4b3d20d057ad5d44faaa0e746b861d2637679908b4faa5c7a5f3a175715cbcaabca25db9aa0d9d55dbf73454b4ba19f24231cac317c530286da5f310b0c61388e0c27c8453cd6742d1262828e43542a96ff5788219d081c49536e0bf53c498c0f3580b7ce2553bca4d7fea613e369120e1387364021a1ecce8af1c7dca41ad87ba763b8771c6fbf6b622496a2b857f960bf340570af7c1c8355dff115a2666b82d99d1bd400d0707f5e3a3fc4df6f79b40fc2a2b79c38a4b448ba7d45ab8e6ed9735623d922e71e3ec899be3689a619ad308905ec9a8d317bddc97b9a41fe99f7e74720f3a830d3afd9dfe73b31298dbc1ebaa6eb75b5de00384d199842a6ca9d863bc73f723f4c5873d3377d8964c93f5172facd0c944d54055e755c66ad332df801922a57058ff370b4cacf75fe519f1b5324c9ad26674a59681ad8e93abdafb14d4420184be58e93c0b08aa23f2e08d1446a331a22320e873a6dd672d13c4d611dee84ee02939721b81f25869d3ea9eae9f23d1b7a9d23ebb0ea4d248e4b9c86b9b2a51067cc67b047650977a310f9f589694b6daeaf6a7591dd783145022812813b88988ca33c4972a9a46187b39c021c1a94dba19642cc524429e4c0287f4bfd81a2b21d5e8b4ab8def524bec3643d5aa49c633ed47292214e3ca53b077d7a9002256c14361e4464253db6f037f3f6dc14da8fd3a8e2a21adc1642a272726b9c3c91d6ee374559d303f844b1b131b9a9c18fbf01b549466523168ef339d8ba176270aad4ce4cd4d17c0446f89ef4fcf714c22c1220bcaa1072749ae2c1a2e8a66ed5763e8308046f42ed5e138d26645a4ffd4af3aba5a6899516ca1c9b76064b2a0337c69a594b68481eca72deab56a8c4386c6ff3e84163122349731614d1ad81f042173176e3028e6d8999c308e9af29c0e7279e5053ab74023f28029ec112afc0db8dc7ccc2a8a09eeeee6c27bf7af4286bc44bc931ece25604e7067e71d6ed0b1441305b113e2f690361045d3871eaa07e771e8768a609e9432f22191e13f9a10db0207a99bcd72a7a91a6655e239faf9037021a4271b34650ab6f5ee64fb0417e67e7639a474f67ebdef12b2b87a4d1c432989c7cac25d6ec412ca083cb9ebc937f4335dfb3545962735b6e283261d7785fcef7dfbd02608148cc5a48b691feaaf6fcafd1c472ea294725cae41634ab45af0d12ce6603e1664c0d5a78422383f540c888ce041cb0bb07b667d3ccc5f6b2f305c1e707e091c3f25a36942247e748d7e6789f41df141aa4d0958c15d5fde6e7b79dd7c996531895110efd1f0bd7f06eda44536b961cc0d22d35b31f69a00b696837337d61f1e06305b60de6c51325656f1c207375d12810be8ec485bca9d25a6b9be38f478c47e593685609b4955f9e04e190caf5b9027f63dd1864d8543c7e7053fa7011f1b09400fae271145b489cc91113af4455a2d7e1ea43ceea8c8654c1ff28c505f1a98171edc5420510c6cc9c4f3963ff3fb02dc0473d0ca38af9a4648c5c6766ba01f6e975dae0e8967ecce2a838c40c71c04771e6a5e484afffaddd0504ad2b05978852aab4fb56d93463eb0f0b73047f3b7be75df5f6247f165c580dbc92f0b225438fbd85b7041ec4df50d1f6acda14461461a05c903666c29bfbada809a437f7280d8e7e49a5fc82826dc97646934dc6073b534c0ad71a864f5ed03d3ef300ba4d1aea9d79c686f5b5c30d16027dbe26b2bb1a39d4770b2c5116423f38c4e3c707eb159c729c91bf78e5e15bd65a3b66a7f652e765cd7acb0d0cfe1a026d63e738c680294799cee3eb2d04c57c08d841a39e967a33ad6a07442eee8f2933191216e48d1f7ea48967b7d7907bec1d8ee35b587a7f20ae0486fafec3ed67a0d2f02a7138fb31c9ee2a882a6b9ab3b5cd82a0813298059c349ec25cbe42deb42288588d0a4eca9a8407c988e3692d33f06c8f68a71f0dc9d1f4d38768c6d0d18dde9e938edb28301d5ad56c02672417d004e8a98c74b1960f37ed501ec1bfa8a0babe72c192e7baeef00f3a33673c2ee582ad318a34adbf48d4e2899980635052efda0cbc56b67fb0885611f47713bd520bafe179d8c453d61ace1706465ff052d0132890b462aec70f53f1737b9c2bb5f27f61581f4bf55cdc3d9be7d6a63c928de938a55b12abdae04459f30588f435d1148e7e5026e9d251e97ac425bc1cdd48e7e2a6f789477264c802f10733e5820a8d3381df2371d553363fe6a2a88a89ed8076a580605e0ad9f1726b43b4bbd3c2b03ab9108d26f6b2a66867202f4982658109d10bdae8864b87b8423fd8ab85c0ba69f498baca5b05a027eb86c902cee194be8c13c60c5134e8546e624bbc48ae47cc5cc5fd7e954f15ddf0a9129148bd4e3439d857f721616386e8a5351ecae585439f85452f1c2e8bce4844fbd4d25ce84f2e81230b94ad022b0455a8d0555f0540c914a001ac1814744108217765d53e46972092869fd4bfb2aeeeaee5551b0f2795ce56ad6eb6620d41c5caaa1ad98f500e01fd7c5879388784aba07adc3c2824c2d284416580c51c564417a1ec620aca86058ce42e62bffa27767d202527cf08e614efc38c84e7283f80c5fa0950e74886fe4fc106c18b5df830294425fa8289e6819a0bba8a5012912bbc70e226a31915b6a3b93a1cc8850ebd0c19418b3c55177210146373e15ae84f80b015f481ec04a2af3568637223fcdcc5a2eaae08e7c134652e63f74befffed0e7c93382fe26d8bd34bd4f0da3c0511b61a9ce8a188129a7018116e07f881532642e6646d12e51a070a93e67411b2e92c286e4087485d23067522d7ae981a00e1e88a919c702e4396a5cb6a9f9184d0e30d9d541753509fcd6422fbd02c358d3d7a6871a5b23bde2a3f85f15fb0361d6bd3c704f417f3b9601caa757ef5e37b8792251ee362095c1d2a2f62b61b8dc9e50d5fbfbe1617882921b08ece2a6281fa05fc286585f245a009d8dc209cd8350600d0685e1641117125b8d7f1ef114bfd1c397ad18c0d62e60a40048d1a61a49abd13cf56521239e7bd02bcfeed2ee8360c6c68b0e8eb67e3308ec44713139955efd2888c414d5ffd9477d807ea3e063a7fad80cf7f7824b8fbcb84cc7ba5317913f175a262eecc8a6472290613c2679e6a6952c08644d66660ecdbcb3f9285850ce845d8bd1be311c38d4dfa3a844bdef17c0046fdea98ddd8eab02a63d305a78c0e925b8f1e58c7909fbadcd85941acbd076885dc7b6ea6e78fd09cb0cf690e9b0a8e51f38dd9bfa5001cad537300e82e6e563a3a3b7f089863f5d8c0b0127114e4f4de8d1540ad39b187bddcd0bf45269f4284413fe6b6c1fa89fc844acdb24de947ca4c5766129dda61ef071b6ee4b79bb392c7baef59daca5571fb2f033039a7b5639c42213632c2fcd49095fe307b914a303236dfff08289419bba894c6cc572c8ebb4fde4da3ff74c78c59083410a19022f2b78198afd57d4e9b8c2522cc985a973387e14778c8aa9c53790a9f138cc40afbccbae036e53f319efeb26605d259bbdca6e3524c484a7995975d294224f8bedbb3874ab6e144188b5fe921d0eada71e3b1cf35385e254cac6ad5718af7f3ad7718fe744cf5504c80b99c65f41f551db229074e6163ec7c44f485062802eb18b175838b658e8c57cc96779c710a5e02598513774653b6e20eb40a17e0d2198959e77d9661d192c068c0e40464850de4280b4c83a6cc11765e857c45a519669158b44debbb0223791d6f8507efbc945360f5640a2d89659b026bc396d7f46f5847215ade6b6974ec2050c38e07f4248500b3e5a960a212cf37a4e1ab0653e501c0de8c80bb38ee2593701d781318d1f75dd71d3f40ef2e49dfd15360a109b261fccc75bb11285812104c557026e0832d5ff4983d8f868aa017f3369be4902496912cc033814575c686d03bfb0f448b253bc0a5e0f8862158946338e77911c3dd87ca6ce4c53813f119c4e5a061c43880e883ba4ed4d8cf856c89e4400bab45073f1cc46f3ce9d0455f38fd7785338262e194a2f7b255221d985721d4fc95ad3af74f242476033e50ad0972a69c2d49a5a07c4c7a491fd150cbb139e907e950fbdc8d570322c2390f4eeee6d97b41a19b5d1bd7fef5025c3f9467335f2f2409b566ebba7bdec2a06206d495ce73faad1757f4f1c5b2c3d4800dc198dbfa3bf073b51dfe042489d571c9518f87eb971f72189d96938f49335b29a90b9e9e31f3a61c0c08b9c19600cbb262a946b3e2f740f3d6fe8142e0e57c790cbdd6200196d4938dee289316e0d81ed4a80e79ca3fe6168fb5b3367103b54255317e0691006ce338bf642222276da74aa7303f030e4d997e687f2bc9e5885d92c9fd2c8846413b1f8081912f2a7cd8a2705ce11011aca8680713d6cbad1ed46d9a000223e734dfaf54b8555c4f025dc9e84d2370ede7c7468c1cb857b582e8872ee8a602821e3f5f5d809dcd68044d9085c11e8fb9879c7e3d7f8043b4d0a73606b7cf7fe30829c4c87822cbe2b1b74bc082140f7d1147106268bf6534b3261b2f8fe100be66d22f1ac5ed58c0c922aa8c6a9356442a5f74402d3ee4a2806c7cb64e217bb208ab1f789e7a4096aaf59b6adb29e78a3e9619655588f4c60520337b8f9e0eda793bb96ed7ba796b9e876f9d289669acc326384063f07c5e9f4bd7a8a63ac5234188b9ac87b8deafdd111b3919a5897b7b794b6f5e8712ac6f5d206164b07421e8ad8e6d6e40899124bee6f8e24220bb3d625214ad5e1c7dd8c243caa58fe81abd072bfa2674b41d2bb042fd497c898bb5795797f953bedd8c0ed9b0818b84ade120a2f0dbccdc4ad35f4242e8412d862b4cee6535e14270fc93dc5970f02d04c5b8a46af871c20c7d918ecf5642a98846f4768fb35f0434d3701a1573ab24e8bd0efa976780dc2b23e5989bd5ad00f7ec314225f81178fc48bbb34c85b0fc48842c4faf62c8df32e180c01a2ef0355305ecb0bbda34d4b4887f1813f54ccb60b9ffaf5a01408e4d237029b71dddb4cef3d0a31a3f604371ac4ae7d36a5f4ebc05bf210577897442ac3f15280a7a495862b4340ec20c4ea7663a233346ab03b2320bd2c5c580935e82091001f7580c8a3064c095bca15f110efcf5179b2a12e7cc74b21d04b3905bc87fe2d0ed8774df4fa5f12d7646ec774629cbee9e5d42e05008a57c1edb820075de2bf1da795aadc0afea8cc177f698da6aefce217ca697cf0f2043170c5db0cc13777a2e84a37709414345aa64c723dfb3948712c875c01023329f356251a65a883ff3dc21f7ab5033239632de19523911c47614333ccc9ebfaff2c89a54a10393a4fbfacd91707bdcb4810707564f364875e51670c15ed551fbfc0151d9fc3985cbe8165f38c453cd8cf8602b46c9e72ff4e2463064d7dfd99a805e41a25c7d63bb31116456bc478ed745466bc04550557ada44708bf1728aa82f11f97a52b2df2055972332c8848c25c83cfdf3c650378953709c8355541e457febafde846557b9290cfaa669ff74dad3a0523efd8702b3f4ede5e85ddd6de9e2d2cbf5bdbca4000b04cdf42a9432454ac49012ddcd1bfb8cc667fbd471348889361edc8fa20fa1ab5a73f31dfa3b1a862295aa9b3fcc87d1a1ca4c1622ddb3c41e36e7e9447422c7d3f32323abf6aa350b9ce407904e1b9b0cb23a7776004e8fcee371fe76007fa1715a589ffef4f44ca35904edadd07f455f0a0436f6c29eb83b07b32f8e56f9845f3cf687bbf67cfd6dda1f664a040cf9890bead0eeb65817d7b5fef11100f1ed9d9d227f97987011a04c2576ec8214912888668efb84273b36e0e196a2b34857d8e40d585afbf52630b91a8211bf675ab6021418aac668e044309ec53c86ff044088e9bfac155e70c376023e7d7ad5fb88cbc00bc9d1a4e525c74d1af3871f28f61d3dd0b17aac772bbebf035bfd3b8fac5c6ae2ee2554844a10c5e5b25c9e25698863cf33d0349e833952cd008dd5376e08b7d28f0d8935b7cfced08bf0c3b7dcefca629d855aa0f0561c06fab1998c302136e464cc4d98645f7c229d641c165370773591a848d2832e2a8e0769f83b9353b806d3a3631481a61b2995377335205ad13a111068bb32e221166373e2a5c85c0aec2815bac681c53b14d1c62726f31a8b579afc55cc26bcb2504d66d0a78b60de9a668cbdb252b333adb0d1800769d78a9386e2bb3e6972222c3b3380179a35227c22c9377365977de8fcf32ec984cb2812ea501af44be316f5185f1415b3fae2c2acaf18d821d9f297fbc037a1fb46d78d5da975042f0e8909acb8efd6f9f525271f97a467e4dc36d1e3d47e40f4b6254f15f7ff41e6e023331f0c5cbab6d8c695e3b284a04f4ce2ccdc8ea1957fd56e190449252eb0c6227d1d387e4ef89e757e5486de5f615d11bbf5d847aff212006421efaca47f19de00199b9cbf95eb89abc619375ed8c41265f95c91929959427475521886838c5870c9c9d3ad0bbe4e1fc2bacd349b0511b83c73ab56941ef70050c6325aa2c413fe7a797abb3c9a578d92f10c0754ed7d1e90172649ebecd1a2d9cbdfd4e962c7c20d6031a2db4503fd5355b89235ba762fdac5ac52fdc84f5a65eb9ec46cfa276105cb7e66a7770e50426e276d1f687a734308ce6ac45247af37c8b87c3b0a90ca047a927aa45bbe8dba0bb0524b9016b0cef337dae39d9574516ba89c060b006d4844349f9b2513abbaa78a0b2ee55ee76057c860076660c647597a7ee3d2bc4242c87f93192efce45eaa387cabc8840fd176158fb89b7184e3db5c1374a610422588ac82e8bbe8c1ea74848889c49532ca9b0f21eb134cca8d17079d1756a404e4bff65a381dadc95851275cadb33ad213f6abd8366f80e40fb30e57f966204a951fb4fa8c70633e63fcba2b6440d3b66f84f778388db3f8d2262052374893be79fe2b0f46127ff2484202ef58b4de69bd7d9fe1cb744d9b6d89f84842945a9d865be9923a3c3fc596cb54bd94efe14240b7b99e8519ab2611a19429e7a238abd9f62198ceb7e96cfcf6b3e46b8fd44bfebcae6995b65c877254b7129b396dd6239f11ff426fc3154fa799bf5e3a7b276b38e06d24fba423d0ab4a4f45c2af2fce497b67b667cf3f396fb5871ae42801fc38721efcb6532551e513e804734c5dfa2fafca3d29653aab6473a9d5cc9cf18623451d9f949039265693204773c36de4b0756dc7d71ce48554964978bf114ec191c887a426a2ec1ad887112a4ef2ce0d904454e5614fc7811147b31746a21559723b0cc7fc5a0d7b8ef2f0804b7bde403e3de5ec2c66bd210f0ebd683e9ac91c59b663083540da2e4ec6cdfd08d9f4fb77685fc98bfd63d921f877708ff1efc00c7f0db031ce20047e583031ce2500f70005f1cea410e7180c33d0c7f0e70b88738c4e11cac03674d18050bfe8b479e523046db048a8eeda1081c2bbdcc35ebafdbdf620708cc544bbaacd1509637f2c1f8c67b3f506b50b180f4e032d13e124ea62d90c6c4cb440bca91edb2274c7eba337b89d5bbe502e463c5cb70c6da860b6d2e1f2f736dc8b01161d6262103f21f208dab86de38afcf44a81acf1c4000bbc5c5e19478191ef964d20db15e457efec4cbc436853fee1f580e714374e85632bfc9f91055bddca699055ab8ec9b3a5e4624716731f985372ce4e490daf1327166701c781977b8b7bc0f2f8fc0634114ea73751979b71f0af9003185b2bba13b0521d28c60af921c7081092ef91f2f5326a7c0419766d13a2f9ef595ceb955739eb62ff61b986830c71b46b23cfcba4054ec872785c1512cd27e5bbc4c883bf5c569ab2d32347506f1198a501c355291bef070ee8be0a3f132112cdd209968292f77044fc4a3dd212c5544105e654a6a85b6cd451143c06f24b0ae0a14437e5df66d00387de7c1b9cb6812c29ff84a792c1692c8065d1f498c8aa05c4a199f164aa119744db04dc9e52e5322442e050ffe6abd4f7f91954761904622593343340d88e67feebe74971180d0940e15c6c2da3aa33878e6ee32d11b3094cfaa1a84e4c479d85d864fa5b1185337ba660455c432e34231f1ff56cc1d7122182c5f2447692cde5d268a6e333e771941cec7b3e85ec5d192d8f87352e2205f2aae40a391fbab21ad372e169133e3fe9b0fcb072c7c1e5ec1a87ec37d9eb8ece5ce25da15c4785ec475ad78b731dd8e01a990f48d0b3ea6caa773bdacbb35a87a638bb7311cc6eabbcb28c42694f46c7d73a779b9ddc25f5bc9f6da579f10c9d59bc3dd411500a01f2a84e852c6462b6030a16de9c28be12c5614c343a1d563c58127e64b56dc128a8f35fa721bc400a6f11a0d35ccc35759564ad3b21297ea6f9371db9b15eb9b15ba0e21ddbb6cf255fb9f1555b5f837c53d5a29feba1220c0cb52fd76fd8d9b5fa79522085320d4b0f8aab1ad3afcd63b06645fbd552babc7d3b5729da05192ad203711d956eec53f0634a4e63da45fd11e857bfc575a6c0f4ebad8ab3b68f124ed1db242adc3055de43098cd62ed4bb85423b918465f8de68edcc5407d90162739192883ed96ca237d7bc3f9d23739068e8a854b3d8ae4335a9d6d4da6b84ba9fd2e453ce01ee2abf0d638ad86c1b1204a05b2173ce62e18657887275070ae8e41180a4d0441c75f187508e52682a0c75b8c2a8472530260149a2201835d11020c868a1064312830c06834fdbcb1182f4498c9a018a57bc5df0bb1795f0e3050070c0c8ca68408435bc23bd35c35c1c343576b52027b5c378ce0eb33259515302ccd2f6a1092f87c1c459142609c2de43ab5158bc2778015ea1f2215fdc5408ed1a58920f9181ec68540381f0c60c1355d5069a0df0cc5ea9259b91fef94cf608466a8189b3c901f6ad066413c2cca0c75ef93f3f7830ef03d06fbb7ba06df2461a433343f20c6ef3534373629824e6e62e1755f35a86ba7d7a0218c196efa8cec8e7ca90f8abe09276cf6c29c6434fc9263a3bd7363f9f04490a234067415bfddbe2d380459ec75a3e61059bfe9be03f1b7adf4771b5658d36f913083a3018865e0b062ea372c4d1df1d4df452570cae92524dd80f353f2b5b7f28f3cc1a1806d1264ebde106d47007ea5852d7d3f8477200f11dda120ba7099bc1e5cf2b8dd2cdc657fb08b2139ab7b4c549b70e2ada9472ee78c0baa774b8551c5d6a8de72d07039a814827a216296327f0ee39951d013de455be53007fa4859f5be0d4ea7960dda80063582af7a6275debd5d902ab62998404f405564b6a743c0ff73b867fe5243ad9ea1508552f7f07028a10b139e6bfb282112ad3d0386ae2ef61523626c7ee2d48bf557b14a77afa30e7732e9846cc23539f34241bda2464315b141fbc5de5b809eab4786cab71900f684f5f6dcd8dddf0e4cece5a45725065485bbb82c4ef9f05536c2b6980cc916e6b96ded06bc4dd7d4f478bf12af960678e96d18a1f1510668b3e72b492b128bee6cd88c6f05374ad7217c4d98750b3226dd6d1691027da32314264247f4a7f5ab4ebad5eb09cb0f4528e12b91a1156e623db7383059f4b63ef1de85b82eda5cf09731b3b62124689b24ed900830a4ba5bdb3be8baab0bd86a54f5ff07baf532cee5b54264c913e1843ea810c60d59069921035d1edd78a5ffc31986f493585e6f8b0f61177cd36926605e3835369c4c3d88a039f4ad78c5ec66f79c93d0d08035ff1ce790f035070e41af5b7b98378174950b8f623d6352269647859143d770e40732f92e8975bb4aa3e77fc9c36611807234c175c21cbadcc2f1c4feffc4dc704b621116f3469cd1866fcee88e47c62476d4c5b9792f262dca0be4e01a25c19f5d7dfbf016bef99a509925108fdb549ac4efec632df0c47e3ffa086cb2acba5f49a3e2831df1d4cd24a3bfe5cc5b66588e7c168de6ffbb1c042c4b605ded0b6cf069780f786d9b5d050d78c24bf800144c85658955c9ebff22d2839cef567ddc1012158b33c6ed67942aa2050c85656908067255f828381635431c933fe9a9eaaadb128d6a53fe4617bf90c12e3aee7c7995d8b996a11d899b511a456f67d100a3ca8ec4861e1e1e45146fd691dfeb9bfd2909fb88a784a282aa2541456c300740d84d0a032b02d8b92f4fc901f3cf8bd3b51d7274bc7e07406cd5f8ccd81d94316cf569d19415e8844d54bc614a22a7617a00507d08bc39ec62300b577748be7c5d69d2b8a9db484ad0a13ad6dec6e2242029521dd741c762987457c82130fdf51b5d674f8d9e19885b917908fbdae45c2a257b740b4d7f2de1732a996101078524776983777151a08c59c1a86bc92946cb74d33f83d0afe6402ff97714ffc006c7e42021238536cf49b1b5a46562ad254b7017e0559fbee1508c8c00e5b0f6bf687a9acb06b8e8cda725d2aa4365204ed4352563fe848fa154be2c19d692d2b27191bc7fb584360034fe24ebdb57d622a7e6cad09effcfd016d61292aee859da0c12cba1ae996948f42509606b4d2f48fc9965ba538225049142a84a0c3320028183278518a4a10a6970a0d94711a009faf504f0ded19208415b894badc1ffdf27d0372a82061b1246eb83a118f6f1a8ae6849c2484b2541420b5b72fc373cd1db379d3704d11279c195a39c8a8fa445b0e7664be4ef2b473c0546bb0664be0e7c7cdf49265c2a0d17003a6c3503a911b8839201a9819437b31656abf30fbe2dd1bf3ed04f9f14b00ac4f40e47a9c57c9aaf1fdda895aa66889cae169a1be70a95f1afab1a2da6cd3f0b741151afb98a1dda6ce817185133cefe84b55020cca2ad1536cfe341aa3d0c9b62ff0f97c5af27c5d510cbe86b02df80c923cbd15cf2764b9d15d2b74c8b15674a84a3100b737db4be52c3c30462c2f0176119225c535037211f8026ea06ad0a042854591d355db7fbf539f3c5c2430ea15d360b27f725dc18603e8ccf9251ae69384c0378d3f63d907206dae394e4fa0ee161440ecf247960fb21c15ed3cd3f4b1fc3c006d3386ee3b9cd49d73d0109881bbaaae1db3f408a70f08bed945e3c80e6b2b7fa1b077ae8d5632813cd9abab09fa9512c53a2a95c03341f103d5c5b2e06d4f346e54c6fff319b946685799f3502042d21c16bda0404663041cd11f7ba563c7ba3c602d20b1f7efbbfa273491661b85348028da2e1a56c96e5a4964b009e907b7788691c07757858471b0cc9dc6bd0025e022f0621160b8e804dd46f6977053fb7846ba7b568d20341806c1145771201001c852fe3ad203cf6406d3babab0f8ca47c86c9ba1f39cd6f42c8ab48616a0b52189dc3c571bca576525e8b96b1a07d23427d7b9029e0a8f85d61e7516cd7bee8d5d9b5cc6c1eda847cfadb2707c64a4900778e53a394baaedcb301e654d3ae328d3d113544173b918eaf6e44486868683162557dcb2c4a07de9e0b367fa05f159f906bc2391c4aad631aab3b67b6f7eb68368065076c02f77d1c0a3a721cd4dcf9b975fd57a1878719ad15edebeed330c6ed4d87dcc84fe87efb9e2a8384be93ec41fc4a89b7d61dc1294d3c4b51c0ba1611cb3931a92c463013199a151d53fb9574d1b6b08afaee982179b51542882e7dbc0b2bf2f113cff08b5214a5d151037ef74b2ac4776258ac4a4922d9ee6d8b8e26c4745743c3605a911fabccb9e82d5ee28259f321b9b5664d1d17a171522b6e4c134b28054845d2ad7b8b5b637a16653b0914d18d306bf39994ea54313451e95c3efe6f1e42bd256e6cc84c2c39dedda57645c4780b44792f55eb20eaa338e11b3f78c72cf6f0025a06978fef1097d3e761d97a94ff091c5f389e476afd46054d94bd71819bc2d12fc1f7ba06ce2274e9985d1f84511d15738558dc7ada7df6efdfb7f7e242eae94fd17bf963fb7f49d96dd91efb01800319807a460049ac541bdbee67bb28ea9bbe7aec30f00abf5e6be12655180aded2fc793e07b3539ee9ee7eb56c97d25f531d1b60703e0558d5de05ed6349693d664098afa11b984053531f1eacbafafa85e5cf6e3e4397afd442860418a409cb25e085cfc68a82f9332273588a3c168d98d31d101be8758ce230d4a4b65212707347792f26bc17d899c8a6c36f4c195852ed65c6fbc02313977c490ac6635824b5166af2a2d2d29ebeaba06234738c1abe238bc6ea8547f0c23f1e81ccb4284dc66f30b8e25160c917c3e69a4aa409dcff9a59328b9978414ab6bcb8811501f1c901e219661799fd594575457b004a7f3f644e177a9f2277a0ac30c6f744d6eb0dd8f4987d03e4a52ca5fb0087ab43c97a0f48f6bd25912d44ad511fb7186441c6417e8bea89a73f63fc951870d75318d85ff2b283b93e2e5dc2d4355edea26dd8af0e4060fbd07f896d0c0817205542bfc87b8fa67659f7d46e43615aa67d7331c27724ccb33d96534e550f17c380a26dd6429de0e72caac6ed15a8c31d40a8a1f599c5ae894ea7a8bc9852b3df8670476dd4d1098d38fc48ba8bf4036ebc0c0b7d7470d7903f0facb33debebf82521eb606526aa9a2542a1f0db6623443408d7a7c556f46266703629cc8f8e1ee0202c2b0fb74e97aa4784efb1d35e95c21c065c708e29f08d0c98687a33c720d108cc6b9f8d5c93539eb6bd57a15c1c7b5fa0338380400af1db411db73dced5bc706435bcdead0317272df15055ff92d245cc65d3e103b1b530e2c435a4eeb0b3e3c2996b122890344ee7391223e3b8eff0145dcfdd899640c0bccc914742b3fb191ca0933defbc205c8a5f753e8eabad9bc3613417b404e3a9d1503cbfbf3fb3d2ccf5c5000c0d52dc55605691ce62e5ff4e513934c390b2f8dcf1fcf6485ca6997d22a67a970e4db833e44289577850ee37a233110616f7300072aa847eca751ab30b6ebdc0a4e7b5405450d5d247402c96024bd0e517427a79387418aef3b4b593b3c428e3b340d08251105e26ac39c6c1f3d07d994ea34839c0832a33c0dfba564466443ccfa60079b6b0625d9fec8f2d8267d584ec5870f1de7b171dd09d18d6f6913a845ed684418f598d2902828352d01aa875d54271c4c725071a55e6dcbed569c863fcdcad6b34fc96ccb2d52fdf0f6e56a7d25bdb64b2277fc9850a572e59402d05f78d1734e751fc5ac0b5b6ad31a79b0783b50e36c87b233ff8a0f7f1d9a3f416f072f89a4553efbc8fea515edc249d6d289880df0612d07a7ef532de583e24e4c6463b9e7620b140db87aa04f8cef261f39ef60517d32585bb1529145757f5170ac5fb20eb10642c56993453da240fbb0b4f762f412458345b883e034ab2e2b3fe3f1260d92edecfe6e80f4810408abfdaef63dea0b581eb980fe8919252ae829908b7da3ffbe163f6e10cadf444f5795dbd70fc0d1698e2a570f0b213ffa0311e12c883598565602db6119137f4cf26b68aed6354fbebb6a71410f967034d690522ecf47dec0dc8a50b6e5c7d98b4e56594938b158055fda5389e82218b95f90fb95c31dc6891a500069435a118c98325e0e5bd6a72c31e3d1c8aa223492d6adceab315b491368e2f00ae84ee3b0339f4059d6268edf7031600cd89eaa4a623ca61a192ca173faccb21c0f4fb7d7f7eb81fced078aff8e1ef81d7570f0230504d711ebb5b0f1825cc6194c7e0498f98fbfcce8e7e76dce8987cf513c5ef4a8fb2d4e6c2e095219a9e3d5cee89d09f91be43ad44b1c4c90f8315bdb23b952bd52a0d33cbdf461894674752dee25290b94d03dede4bb0ec0f8ccedf5b5ff1d24ad6a35021fcc89a598797faa17116e3a625bd1e7efed86b4191b7f477e228440e1f6beb00d70e31a8160200ea8459416a88000e6448780937a511af9ef26201b5d265026515bc0b6a08a06d70af60521295546290bb5d6b172f2f809ad8071a4c1edea2962fb8766497f825b337453256785c0886c347eea28d430bed12d744b11318098240b2085435aa9bbdf040edb3b00fca3165e0f78896d5b4b2d47aa5d3ed64715b2501a44ce101ac14e03ae10f432d4b300d1fd04a75e5fbdb2216d5da7de0a41e790c1771638e0f034f8453e00f491e793d08d2369dd1d5de803fbccfd92b227458a60a007f949f34b5542db52f0ae330eb30055660c810c5932616f63c9f72f57db108095cd8d7d9864a68fc70bae6b8fef8c3ff6c761110140b28ea54eed5ca2794f845a038215da53ee31e928bc5d9598119c3a45e1c63b2a8cd2b98e7ccc6e1a0cd5a064ce58b997a172025234922edab0deb64b13d63edf546ae30353ac7b4776e191a2bfdab7b307815d8d7702bee1d312aad9b8a10056940497c98891f6ee37f85c686893ab3fbd63e6ca4253cd12cbf9e84904a85cac54507970311d6a0d3eb1116e2b2d3cd00077f1f71ba5ab39559f150ed947cef4c07134e0cb3b5f92c840e189e05243ff331471e8aecb2800cb9e7f7e02a8e5930be8b05647eaf6d21bb6a2e2dee825a1cc28b8d733304751d8230ccb52b2049a29d0ec78fd615bc02b7c0761a5aed6d6b7914d2b3a7ca85b5483ad83e9c8c27f3453cfcf7401535a39a42524d133c445187b4ddb1f443289b03fbc14fdc18f7cecd7720237d15bdcbeab7bd306d30713f1049e3451141f34e9669b73cc3bcb3dad408a0c2476a0096680311aff4f8614a96f2be719c9fba01e147a8c31c30425d236b086445d5df0a9933b8d86d331e7ff5447d0b90d478c3524f0212abe7e258d6ab60cf3f0ba1b7514187d5f2b3723dac2c20cb9a86cf61d1eab86f19a7dae080bccd059b215e41ce482c1db6d9251b7b03583a24b459033094da0be16005e4998464629e30391788a68c200502b1811597a48522778d9c32a0f9b214c44a614f6f20f7a53edb517274fbaa7849d8b107ab8d67f290588e8f3eee40bf86268f3ec4c764307479f34f98886cd871d8f5477037415895dcd110ec126b570ac68536a8e8ca9509be0d5d41ee6c604fcad0da320a52631310162ae0b1addf8a7600840dac64845eaf2179805b9788505f8096336c6a7e153fa3eba92d98c47d6d194982f85c9e6560e6593fb42abe298717021bd5e93d5d237659c2f2ca87ab7c1b3cce60c4104eb2e419240c2c7d85f7e3e5efe43ee00f6bd4564598bd0e21623d9da0636cb0cb851c5357f6c8804b8d2e92b80a4b60374125b002eae0ced5478d975ed86502fcaa6e9304d605ef56a6e0b5863432a86443e9eb37aa62a7968348f9cf5b92af06c7fd04620c41740ca6d5233a6e9f47d2cd9c6d111bc21d702d4e09723307b04514af9d8ba5d506b099bf05de5a92cf706a41ddc2bba7f7a90f60696c3fcff9a03233c908044505f6f9668ad07c13827e1e3be2e767efc2f5bf5a32b2cec0546881cce7055ab0a0fc7a9f0532ed189136b6dd3d0e907c3ab2d8958fe9ccff5abc6e0833d22de8357d1c7f255bd920c31e3c13e53812915a7ef47750761469980c27de04ba042a63dd448eb1d86a1cc3f9802e045e2afe7203dc346d5d636305c72fe59357eded6c511d3194e116a2292babf76a9d5fa5e28e5beb8ecf27286fc49a548de16edaadafb8abddd3fec25e2a1b123c68dbccc8bd3d328b1e24eee190721729ecc79a15c781a80d3b4b860cb06b74b053b7b1b24640e1cc6b7ac48b66a98e1497f7dac429146cbde66c220e995838dfb857e65d721adacbf4ae312184ff1794d75afba0e9985016d7bd5f39b624310cf73d4f94a84ded87c0fc5622e897d4f490eb6576c719511e4e97d73f1bcb8c1c4010e9c2504337a1145b09ae26162fab079525c753a7d584c29d246c138812348e63725403d2d19497b52487f187949d0058d7a874cb24abee1a596f082bab2286fe179bfe6db4903edcfaf451e4ed415f8d64fa6262436177ccaf8aa6e13484bb65917b912d4f8170a48f74ad451fb14cfc4d14fe8f6e1264aa025599359a224be6040680ad7b251fdf48a8188fc8a3058e62d2ad2952d74ecb19e31bc141ab8f09c7237d3232b6d9ce9bc6a97a2ef31a1a1d709225af0e005e5fef75cc3caefd7ebc4b8ac4ca1918700708f9d12b57e0091a01da0a8fb89a22e4fb8143d101ac79e00e4666c0c53e6ba12d9bb413e2fb01c11e023f657fd8f1646569c44e08436949c5b0593e1cd0fb3f3046e3fdc804b2f5becc2b77abf1e1345a24c1712ec126c99f2149da8186ca7c7b14459dba329e67795aab7b615cc4fa5679434a94fea8203c5c48e99af4e2f1dfec1ea832d167a57857886727c5fdb853e7a5e6d60b653e426a1d53e10b23f8eef3228e436ad0e720d2519284a82c94fd8798dda2c5d580dc71e50065783557e7048fbcfad7a4f5ba7a180d574854d8bac4fea3b089b3e4b9160e27b4561e2a9d7f56ec1aa9d9e1025436ca5eb0b58b7337d1e61f08d1683d5ecda1a1176fa51436cf32d94b7284d2c483c40e263d8b46e705a05e3f0ff183ba74e683566f8124fe5baa7e561749294102b98021daf4c66aa6466cb0dc307e836ddb8da84d1f3f3641ccc143392ba7703fb37430520029864e3b225b153d1844ec87c6a52030ebddcc05f5018edb111617102aecf2156f290d744ea028b45f0052b8c4b317453e7f156d02d2c266c8d5ab09382e3ffdd2860bfbac23d40def7303b425e56cc3c55d1c52e4e0f6ead94347228af0d73c03fe848b75065eae7040f7a47c7c8bb295d653acc64c23e97cdf36f043356469744ff411daa5c88744103a19d493df5afc3b13840b8374c2731c37b313d65d594b8cab0482abc01ea42c1eec9c1e4032b6075b7005234f7ad050d01294dcddc96c9e74f20d5d053dcabfcbea36ec405c678d84ce7a7e8c2ba8ef021163b62a7cbfe7fd0363575627ec44386dd821582a0956ea5ba58c3699624194086045ad6712d6a272c7d53fdba586e859a429b33d1bb642ea2b110435d2ebef1b13694b740f5a6c5c294765537bddeb1d9f8c030d7ae0b0f537162caa535f51253b4869b152dd5e6404d14e65036f0c6d044e3145f110501068ab26070077250ff0a79348c2bfc2b61b81c0cd19096e93ec2b496bc30c1dc97e33b237a147d4999999b2e28808ab3c9cc7266a6f8b29af2622222222293a4c5c5d8faba7ba6a4442cdccacdd2d0337127d137a0f35414cf06a8294f16a82b8e0bdd742109ad00b7c10e0d5f0b18057c38716af860f10bc1a3ece78357cbce0d5f021c7abe1e38e57c307115e0d1f5778355270e1d548a187572305f86aa440844c0ccc8b55bdf7de7b2fd400c30c7b0ce0d5ec11f46af6a0e2d5ec818157b3c717af668f14bc9a3de278357bf040a6063d12f06af478c0abd18302af460f0ebc1a3dce78efc58043e8868a17bac1e2856e36f042372778a19b3a5ee8c608efbd1821425c00d2420c0c41725ecd1a4d5ecd1a545ecd1a4bbc9a35b457b30614af660d04bc9a3520f06ad6e0c0ab59a304af668d345ecd1a6dbc9a3566f06ad6e8c1ab594309af660d27bc1a3680bc1a367478356cd8bc1a368c584198b2021e6e1e062a27325c69f2aa0084a4b071a30816e9346d5381a582344ed001313c507d21f29c66e217972e05745d284d335df90144e437cdf9ebea74931f404e278deb7f99b496260250bd285576218623d8008a1edc26eab8782fb4aed3324c49f7285469eb389c13a7b72079ef8df1deeb5ee8883e8e70c011464247e07184099e88f3dbe5511ae7aeac34caa2fd962cda5f79af92e140f5ba38428617236e208df802014664efbd911145424600c0089a1bdff98d679acece1d5074c9ca0e17afe7bdf7c64e0d4fa4f02408dc26326246f7848a27677f82c4e3e1726278228388cb3c4a2be98d8909d248c17bef47971772e2c36da2ceff0092693dcbb4a02bcb6912c66b624513d2bb706e521b0787abf2563085aa0858159956e2464ce86042c67b174ecf4a59b8d4e651a91e2ee76dc184c97bcf0a42e78ef79e91d18973c1c1c9b4d349e3234ea788f71e958b66c90cb0be69dc53d17ee6b3f9cd3f31cab46c13857238ed6f7ef358de7b2f3c265e2887c97bcf878b274a5cce172c78a12ff478a10ef8f0deabe1f5108057430e7901f3425ee4f0425ee817f222032fe4451a2fe485105ee88b202ff485102ff445ce0b7d417aa12fba78213086bc1018392f040617302cf0421d78e3853ab084170283e6ce10c47b0f87f77888083868801022e2e6bd272f21ba494369fede0b29b982db44534b92245c38ef555648e0bdca011178af824075c5032a2bae78afb2e2bdaa01ef3ded859288de7bdc26925a7070502f84e48913a1235378eff9d0afcde7c81defbd27f34247c63802822356dc5c3847fa7bef0894d011fc2e1c8db4e5ba3932c37befea52da48083876749ab4e5ba19659a5f2084c34574e1f8906925bf048774e1e024c1910f0aeb338da7d3342a7d8ba6c271daa4e3a72c0046b19cf850be79170e152954a860970f3ef860c30b6122e021603942f8056ff32323174ef79b116e74330a612eae244992bc57194008026028efbdf7aaecd211ba2db861bcaed4fde8c4b9702e978aeb44e8fed0cd79ef11190db92e9c9b0b877465a5ab7b2a4754f15dd3b173846c077aac9429b8f6f46c9ed35aa76d7d6dd1b22c9cf6542e11f728eed2a6ee8726b872dc0f7ec3b5a72703ba444138b9361391e69cee74ff1a89d34f3a6e2ba536d4d571be9bb421a72b0a144ec4e17001b848a82bd34aa41fbf693feb880cb93c67d24d2ed18f9ca99f9f1f7fd2d98fa8e33493df5aa6715e4265bff443e466c88f2771fe6bfe73a54c93b83fe9adbb4a9bd7e24d25132fd291804a265e42e520f1da6f43ae4b47b97e94f820f93969bf7dad4897d22e0de8eab48c8bb6e41215c94a977ea2c45d56b4293f2b5d5dcf529768f33797e8c925faf9e9b94444b82038943e0db92e11a7a30069ddd5a550264d242b0db92e11931d7fd23cdca37a76341fae7bcfc3351f1d2699c6a36d1e4ba6f1741f434548081e1840e23449e3912334440ac4f040688809848650c0105d42436c19620ff133c4e83d9476110162c88563e42202c475dd0071e1a0b4eb06886bc875e1dc7017134a848680a1216878170e91211a87db449bef50baebd185f38c8488dcf1de7b0f206285d35bb8fe4532cdca08c571a32ea5f9ae796e643295b28cb26cfad4d180db4c26cd2b274cbacbf416afa50484e2bcff5c95f7aaaa972a2d3bbd5799fc4967ef55efbd2acb00d8a84aef55a4f72aa0aefaefbd181e0b7cd5dfabb87eafda5a974c39bc84d27c8fef5a14cefb269deff1a6ad7da7f154c9c23528dda69934b7792da5accaa6bd4967d3b60ddb524b66a544a7ffe57da608fd6045045610046e3ba25dfb94daf8c5a55023adcb4aa3aee53d274e7070baa944e238ef554dbc5731f1dea379d5125a423ed0c76da2900fcf97b68e9fb4df3aee92e3bd0b2774a15ec7692895161505b0c8b452018e78a11ef0cbd19c701a4fc5e5d280aaec5d5122c48315ef8578100093f79e9217da6105594903e98bcbb2e91389677e5f596abb8ef85c4a2e2efac44547f11d97d2242e5848073c423a5409e55085f7de7b43784c00f0423018e03d9e27520b0e4ea544b5840eefbda017c2c18a97798ef3a3912f6d9df542e8863e1ee781bafff9b9b6cc2074c312ef71265d52822468db61431242369011646a231432226403c977a9ae74250bd73acd440a3208d5f082f79ebeae2a8e500d5810a1062496a84107d12e6ddd9569250b4b88863c7c68c8c08f100d37cf6b29856668c21375eecd10826c8b961d119a81149a61894a89196a5059152c881792c18df77a494f31792d1e0a4af341694fc209c9408077e134e1b84d6444db341fc304dec309c5b0dfd5692e3e0bc5904331d8f02e9cabd3446e827c9621ef65042118ba782f04031021186642213742a1351eb7898cf08d2b72e25c363f3a712edcb643355278efb9f042354608d5e0e0bd77c30bd5b071e1f0d1cd85c36d37174ea9fb4dc767d13e55165fa0518223a7d2c5e92da4aed4b5932e6dddd72e94d65d9de6e22b07f82053b6e9cb6bd1f68eef1acf1226beb4f95c3d3be1e0ec536ad3a9a208b93005add39bef4a32581982068f2666fc3842119800812b45bcf75ee80c213ff0017162842a1eb78938573a19e1b8bc500b58704648dc7757a73713ea3ad2fdf7fdd247b0e3bd4a008f05d5944a88055c49925c5b8abf18416448166dc4954444b88b004446d70d37240004b86eb821413ecb28688f46222e2b19e932dfd337cdb912939c269956eada9370707e94f8f9b9bec6af9c4be433ed864957d29ba6fd2d5b3a1f5465e3b688782eaeb46d9a5f5cf75a3477f54c6bcdb4b58bd35bf476913894ceb86b6bae64d21d7773b35d9b2b69d4d5759e2b91ae2e88ac44e2a5cd9f3c09e545a5d375f21d133f3f4a7025ae6f5ab673894c1c4abbb29c4b746da5adeb3c133f5c89dbfc941f257e89c4b5bfbee677919413a5ebc2b934bec5675c4c292630265274b28c4c26bf45092694d872dd98baf6245d4403e2bc961250a669dcc5e55ca26ef2a5af77aa48095ad2fd14a0d2124df3d19d6692d3693cbdd378349e9e55d9c1cf4f25e5bd8aa782f25e75c47b9511ef553bef554fdeab9c54d87b1593f72a9df7aa255511ef5544bc572979af4af25e85e4bdeac87b15ce7b557eafc2ef55f7bdca56f4bd6abe57c9f7aaf85e05dfab8cbc5789deab8abc57ddbc570df1de83a984786feb03c9137d9dde47cd23717ad4b557220b59bc2cd4e003113fa351e781fcd73d419bd7a271aec4440a2cc0c2e9bde743d056da7d87d350320f85339972b8207f04eab43de938edc9a635d97c964d9f36dfe92ba8d3f6c4673b725699d27b4e4ec7c5f37426266f4295361fcda70365a52ed35abcc953e19e4cf15dd3d9e239ee4414274e4c3a4e43d19d66e2bba6d3f99e5e62a2f17053aa749c86e23bddf558e1986c7e0acf525a96e5f85eda3c909ed2bd49678be711c9790165a5de378f12c919e4b37441fbfa2142e466c890af0d71d19f8b2b993c69d3feb5699fd33bf328ad7b1e8d67f37d93f2a5742929d94e4fa7f10065da76658b0645d37cb8e828ef55329510cfd4d33b8df2543adfd3711a948e4b31e97e8bd6332c0a5744a10528a060c764d23a5c749453a9e3fcd5af4ee3c9b4eb6ba79447695ac77389b21bddc371fa120599328dfbf9e1523f9bfeb9b8ff35dff5565a72897e7e525a1205b82e254a74a7995c377dbb6e7a909c4aa41e948e92e4f29bd6f578541014d77569d9cfcf0f7601e0d23a0e75d25c7ca6b5943aae7dd71dd7a5b4eb6b22ae2b65291f2a50b21dafa564ca41797f440f5056d29e09b7898c90384dca5238384b2063095cbc77e1fc5c9dd6744e4b102da146097528010edde93e1a759e1b8d7ae6b991d653dca8fb274a5c67de024938c27b03c84adc496f1a75e78c252e88d3dda6458152ce2d9a4adfe1e27ba64f5a8fcf341e9f24d0c0994c7dbcf75e1172700428d58b55550f0b4190600412f4d1a54e6abc5705752a69930e17544ee77b9ef81e2e65426da99ea0d412a0acd44dda13bfc305a39279ce7926da9b7480b212a79974baef509ef31cd4697b927994149d2d9e0775da9ef8eeaf482d3838d38ab472e25c4e1c0922284104fc7eaecd934184191d1c9c2f86d0719bc8c8c86f1a1f6d4f507af3e1bae734141fdd69262612a79f701e484f117157a6dde82d95736d5a93cbb44b5ce6b94b97b26c1a97e232ef398dc4af2da5257189b84da350fa4a756d435d4208a1b7f8259788431151627289c600021c4f03c21640c0de13fdf41d8f0af209f247fcf82c9afbc9b49f4d7b13bfb8ce036db9348ebb3a94cfc2bd16d3d6416c5ac7795277dd7057aeee535d89e4f70594957ca9e3a5939669dc9b7cb84bc4f9af69db94207f4467c205f923341e9e1a3da0bcf73a6d1bf20050837e353d30e3bdc76d26cdb5f752200023020ee88190474551148b98b4171ae0017d3b78c2d3beef20c9dbb2d2b545337d5e02d2a014c943029e1bc2bb428d0ee87b2f0befbd0a0b0fa274c79d4a9d91ce734c78efeda1042bb3f48b0a449cefbcc9f71d19308228227345049469db96cb9fb49e4bc4ed147769d995e96d890c1625548a73edfadd7329192578788121a6c76000460b283c81c89011571205f92c23a0ace4c34b1f0fa6ca83c16e12de7b48a099811294e9aebdf78ef0de334211de7b44f841086e40df7bbe6b99dee2793660832964259315346cc085688957e5bcf786f0de13c27b0fe60725a86a70849a1aa05e50a635d7bdcf3493e74a974807edcb6fcd9b78d6142f4bd7e9deb5ecf2a91f9fea3edb22c5778de7c76f3a08ef3d20fc400545e0c1e499f0a879ef074bdca1c58973d1a78cdb7c89e3383ea2411eef65a59e2d403ea29f4e337133e822d232a01dbda5f40c8c98c190f780b252a77996dabaeba6cac0083f9d66ead1f9e14a5a4a7df3bda2b123ca7b5c89f39977c280299a90c1e3b4cd3f61eada9b2eadbb7e89c45da983dae181f71e9c4dc8d336456f76c000d5a105b789bad469778d4b9114cd22dc778d1709ea4a9b46bdbc57bd07430714de1bdd408de7fd1f69dd880e2ede7b9ca9a43bdf47de7f3aac784ffb191ddd7b8f0e24e8c0ef3d2ec86719f94ed371bdcd67d9b42da3ff353a6092f0b8d11c763cae660e33e6e0e2cd81c51c5ce6f819cd31e5cd81e4ad214710e490e3bdd7479d66e26ae428438e0c5c5ad7f512003c17de7b971c327023a0acb419f129277c1f71af25a68e1890b1f9ae6464e7bd8742fdcc34010332b84dc48d368fe2a5ce9f70800757e24a9de63aad6d5c9fae233f5cf4c9e6427211e1a24f36469c18622a797e19b99cf851c00be678efddc0067854a99a38bc78dc260adabacc1b41e9531c3ad4e0bd47830792ab974e5511e0203d5257dab4110ea56d1aafb2bc3185c76d2223538b11be713d3c52767c7478aa1831422227ca4864459bb2792d97d67593e6b9d216eef25baecc3f5132755d69db74e92271cdb56cbee79aa2b78e0bd693334ae1e0f0d2e6330f344261dd6755b847715cba0e07878be2052068c386f3dcf602d37bef3dee513d59b8e7e293857b92ceb66159a46028bd6d71011e170e4a6f5b2eadd3e1f414cefb2659152abaeb1180a9a49b44f1e9d1d97c329f45fb786ef33da87b9ea0aeab7499efc961811058d05f960a1af9ae679e6383882a7e4b994aba49cf7c4ff7deb4755665a7d378823ad409f35474b8ae97f4683c3d5b34285c16ae41e9e93a1fc537e9594a6bd2693c59b806c57355b29d13e732ea99e7d6a0618d9a0ba7e37c9f61e43b2d53a34811d9ffbf191ac15e6a4f7ded577e3c212d924602d220a511441ad7ab78788f0a687c81d2a730d6a860aa207888de7b4f38f1de167998c1c5195378a2cc775cfca5f194008e2a4a8565435d57d0beaa2cac9757d9e0bdc7c4ab3943e6719b88fbae653ddc6b19e1e0f84de32314b7843d92bcf776f05e1eefbd245e4d193bd8dd97b68e4a112cb27b115fdabaf728f0d028438915bcf75470450ad8502305dd6fd1b64ddbefbd34d038c38cf7ca48c1d37eb6d37b0ecf16bfc5f3a0e0840226efaada40011926dd95b8d7925d287d1a89b270bd7f7e2e2e6b72893aeeb74de398f8e1a2a3fc28e1b7ef224e43b94437415d294b9d4e1a1f72c36df14d34cda7d378b85910579920d503110a9883c9a3611292038ecaa202c5821c362e88017e9d0b1bd040063260c57b0a50c002a840000236255d0bef95a210a1b3d275445e405c99375df04ae2c39579530dc131052d39554e158242123e4820821f34b0c402584c795688d0e10dce9bf62e655dfb8dda941b75482d239c118a73030a374e6e2c41e4c2b96eaed1f7db109f2d9a0e8753dc5be14aa81cae84d2409909752ab5c144958217e4f19c287941cf538284f35dcb5c20c71b713e9def79ef4579ef15e1821fa1162480054b7817a840d501a0ac5405154ef84d0b1b4caa2fb2a07c9795b8ce5fddc7a3a4683c95176d3ac867b9366dbbf9f1e3c70f20995e12d46da554ce0a42a001152421a40614ba08a9c1bd0704146abcf76c2a04d29061d4850050a0417a4f779c358037ceb843a6f41e1732838cf71e243d1b3368dee352861aef6965d494717a5c7ac66d229a2d3e8ba952806c899b9b244a925c44b8f4d290ee7b2838543629ddf750aeebbab225a0b8b8f4d2c803753f7a820b5a1033c61449900c7165de348a32833198f07cd7b231d4088df19e49fb1ebf4de97af37ac36aadb5d64a29a594524ae99c73ce39e79c524a29a59452c618638c31c60825945042092594504209259439e79c73ce39638c31c618637cefbdf7de7bafb5d65a6badb5b5d65a6badb5524a29a594523ae79c73ce39a794524a29a59431c618638c104208218410c69c73ce39e79c31c618638c31bef7de7befbdd75a6badb5d6da5a6badb5d65a29a594524a299d73ce39e79c534a29a59452ca18638c31c60863c6d7563a6534e96ed3a29c769278ef0de085c4c0416fde8811be711a8f2f31e9a69476658b66f24b74fc13dad6e43debcae6495da76559d74bdeb33e158d87f3ef3dabbf67f14c2b55f1548234946de9f7ac24ac1fcd758e6140a54d87db341eae43a53c15ed4b7d6b2ec5f52cd5a4fb6c8b46711d57f29b0fd2a6cba4b3d49569225b673b7e4b75a9bfa5ba7d5da46e2bed4b934499be4c294e5f5b9b44dd77fa085089e3c015deb39a78cf62e23d6b8917e2c01d4abc67d22927ac2490f099c6f39e75c59fb49ef72c2bef5955deb37c7a98c0b0ecf48c98604ca4e8f060232a52a850c14618942a4ca44419219113050727f359341f53aa6b51f0c9773b409aa9eff8ac0494613a5d542132e4bd57c998b62a0c2e3ab78982f688e3348a084b4997e9ac742a6d9c2bf5eb94cafc89d35b2eed095056ea366de75c227f6d1b4882b5830eef71ef59395838dcf01e93ee4dbad34d34d7b9dfba6782564b3560452f6956b40e15b471aed34c5ca7997aa84dc13142a1340ece08c5e558abdcb82ddecba9a26d1e4bd0922c674b71ae6539252d252658c62a345b602004efe1e08c505c066e9082011a6e1375a58d651c719b47993c09cb98ba8005a4e8bc67c1107acfb46d18d74ca61c0b10216481295ad4f17a4a51a8086941ca228c77f92caea0514682ba1acb056ef31d97a2720179ee22751a75994c393838ef592fb8f01e0036181db200800f315ac45811aa00170a4861025d24a0045be59317eb92402781ee3d2e30011180c2ebb292861a454006ef4d915a7070949038fd04091017a44dbe6fd1ba49d3f868238d4ea90c0b3b1e16501e90c7035af0e44c3de088f77ab6665ad231df699e693a38383a1c083900bf670171851defbd2bceb8428bf7de9504c975e1fcfc5c1da7515ababe3803a6b8a2c68a095851a5013bb068ac991347c287cbe9fee4bb9d93ef76b8ae74850124782106fce430a026b400369e48932e9d135a4015ef3d11b70023ba9ca905b45085194f6432f92d9cbe6e762e5110e79754c123ad6439d18aa7a2002fde0b29c086047c20014b7820a01477dd709ac4d30493298773a528de3741401519fcdea3f2425454f1def35baad3fe5f3f5c961a69c99279dd65fe54da8a04f92c378aa8081601d24c168c65bd10153f5685650a286cd1db14c9288245b22ddab6499c2685a6b0e37aa1295ea0fd6c27c88442e5784e93a6f87038386448415fe93af233dab4d10f892b65a57f2de13611d7954e5878ef555778405969eb7a7070b8ef1a9733a584e3b469b47914177d42c2459f3ca7b712395348b8e89349fb7441c1e3369149e31c00044f241205d17953a7fd06c499bc962b3826afc59b46389c261921719a640028bcd76d1a89bb34adc3f1dce6b5f8adfbad49e6b3685d35052e484ff1fe8fb8208de2386de206b0b49fed44316929417a0ae793d078420438428800450811e08ef7f35e058527bcf75a783e2f44801f6e13f5235030e13d6e1365a3cd77a5d1c9a33823dc6b09417147080a1e8484f746244e3f51a20489497799f64469d3484a463838beb47523143702e24ebad39d47ced4962e2653aa89c603545a42eaa4e84e33619245ca153953da343269da1e71262544ae1b9fed70a921ef759b574224e7bae93b48b8b74244ce1477e23472e2d4392e5c0b40f8810ff4a87ac083d0167282004ebcb7836a07efe570a5289da675eda9046d5d869974d79e4aa7997afc13a56c0775da9ee860a8d3f6e4bd2a8f4a0739786fe47b94d08118f2c083080e18410871848103244acc2073001a140009a1a00e085c693c61654f48810e0800821940bc80002816f0018b162405b620838c224eb0a10236d08187184c0c30031f0624e1818c0d4259159990d0a9a6c2a39a4175c77b150d6610caa24708de7b220beabd2c36bcf77ce0aa3adeabe898233400d37b4baa24da76f9adf150a14446144a5c322874ed6f422426749ec34224dd692621a030424037a19f8451f7dce63d909e929580423fbe57c50006af8a23032a99b47fa2c475292d484321e23d2674f97933a79907f36092546f868baac784aa99f742154343e542452361ee7b99000c0f33160d4d0ccc4b55bd1a2cd1b35e25001822aa377324e6bd2053bdaaaa6262a815c47a5555bd584faa6aa6b2aaea45e609abb2aa198b062a552553cd3cab6a41f462c9c80c017255309605834505535516902a0a56f5e3c55430d68bafaa01585565d154b172b02a4b06c6aa906055958c5509a0aaa1aa5e2c1a17c4bcccb850d150555565656b069a976a8bcaaa64acaab25e46950503e407b584544a68aa189b9724d58c65c1c4172096551179c15650c0c4204d5ea6580fe6591da8605e86c0c458d5cb8ba140f583ea59afa6a6e655af82a9ac6a09158d254455593196f55255b33252d154422ccbb26474aa202c0bc6aae08b28c80d3401a85a8001072b8b2ac6baa182a95eaa674db12e2015ccb34a32effaa9ae78793eb8a07a45b861bd543215cc4cd542f5a28565d1e0bc54f8a5b22c98cb12f26348155355331026f6002b0b880c8d555555355355389565e9e045a6fa61c1bc68a97eb05255f552a4fa11c4aa68662aab088b078b076b8797f7f2aa172a19cbaa5a80a97981b16eb02cab92a9607ef5c3a60a12635531950b37076b6726c80fabda344266ac4a00154d55bd58154cf5a4dac1ca960e56106bc68aa95e2aabb22a9c6a072b88350353bdc4bc54d5ad5eaa21d58f4a485555472a1e2c202f33150d4c6555154e55c9d060c950c158550c4c95ad20d58bc543f5f2625930164c952dabc2c10252fda86860acaaaa70aa1d2c20332f150c0d4c5555f7aa6c108206c9cb1031d54bf5a382b1a1faf10327881239f0500100a6b22c196bc6573533c0204faacaaaacaaaa8abc99877a580e5031218925bc2b892e8a6047123e04210957f40f4650c5077a3c1f1f72f07aba9081efd1753c2a5da8b105151f342902e862004c98a2691150bae0e1094fb40e3077618391ac5d00c1f5410b36d7072095f5418505fbd38706ec958527fab1020f457ec2b06ef40043bbb9a010437071b3470f3f97901eae1a60785cc4c0c4fb8981c0bb60a678151cef5dd943b84d244305102062d065e6c7cc0f181768eccc8f971d84f844c1f303cd101920341846c80b158c109911cc9697165e42303798e2025d645cb0667ec0dcb4b0031e411720568474981b17a2b0680e3155602a19242de892040a93d014160c10182844a4d065085208614714550c4ea88722a2b06070782982aa7c501233041e5d64647a9842c50c2f2c41c08b932814d0e5861f5784c8204486279acc80a2e180f0d10549f7c3c94f046a667ebcb4109305660156444103e382cc0ed50b330a2270e0871035a082660a59b860058929223493618ef04a94408a1862860069022400324bc0083193a538a30b27527ce00134d4402a5ae05018f0822e41521f0353b4205fa8ace8f07264e6061b0590992c0384c68597bbe3e46507204df8e8026466a7851e9a2739604d80fc7822a4a72339a34b0d303716880c4e0c2dc8000982fdd004185d80d03ce16137a04bcc4b4d4c25230019203147648450b22448ea4710344f6480ccdcd002931f36303c3f6a90418700e040831034431c4125005100a111cdcc16e6dd99322304660687189c17fb43084c105711333f6680c018893902061751c5e4f0e2430c0df0070d7fc9d8111b6880d0f0e346a1c31384d20c81b181b191f94017215c80611233440c0f3f6c60747821beec2045179191eae5bf1481798981e2872624b0022d23c108ec60a30424f8c0170c384001b87059bee73f4d2c8105092b557aa64031e2090e9e43020004002e1837dae8638f241081082540fc80c30d335ccc218707c010004604ce0e33080922f30235d01041181ef8c28b2eb8d8a2ca90208c883070019f9e3eae00858d658f25ac31d242117840e92b390264260c0860717fe0e006628481936d0d3204014233a3430e65a46009dfa5f018b1d304d3800316a00018f4a82a20c1083e70802b56aeb541061819d8f1042b4a92d81f33322648001a27e0400524d0002836a0010d3c400a8f92234108a9acf052056b0a304cb8966015018608960f62f4a87260d9c0aac10f3c84dc61c9c0aac352c332c10b09ac2c3003a86caa1e687688d1a1851bac1aac192a194231c4c06085aa1a1817ac203140ac1f3434d6cc4c8c0553bd5495cc6be185971c5e56d005e68a2e30506484b8aa992844510346979818213301c84114305d44981a847c01021906748181f28306203ad83045971f49c06079e12148272384a6090d9601f272c406203131e842634617199688e2c77dd9c209427ad025a68f2e314270a8411721dd0f2be8f2c30617ac99233146622650c50c416ec8420a182bbabce0c30b3ebc140919a1b121d487143143d0e019242f2fbc20a1f9a2cb4b94684406884c08babc0491c101e626487ca96084c0dc00691233c44c123238c800911980101984c8f0c3861f34cc24f182052964707829811431707401620030a76b04c40e3038425e9009c1542f455e7460a608a941c69ab93293c30c4fcc0c2e5432415e626084bcbcbc582f332f342f3f80e800f3325365068617a60009cdc8cc542f333014c6084c4573c34b0e51fce82106045d5c0841142119981c68984801d303297e185daf8f2c1001073790811d71c09102ea810016d81222925c2ddb63094682a879816646092c5278faa0e38e19f4f000a84516455ca00736a8e38d35ca2081078c8802508154f7006e8b42139890071e77b481820318a08925b0202185c749931e78a8810635d2380009466080028c76d041cb7a70a1073c70e2d4a58f2c48818f2594a88186900dde7083056b949102133cc0010b183591c415293c3b75d0e1c61c2ad0e2890e7250c71b6dacb10230be680002a66802136c80c71a2b50e3045474f17d070bb5c0042104a10771b491061a648801812b7c1f35b184125776b0233844422dd441471c5b60000254f8de84113b4db023382eb400f38410843ae880811b69a0418609c4888003a860c2889d2447702e8d446008c1bc3e8410041ec0200e37da48030d138811010838e00a2a7e30626209228c88ae60052847bce0c20e74c0c28a0620710572e08a06047111c18f3e5eb2606121c60a5615684000f3014b0ccb0395b4e20bac44418abc0cf172d1d083a54395c30c0e2f375436c0d450d1f02306186078a9817941880b352de020e486203a0009fd98a19199b1646462625eaa870390257a9795369411df355eca52334be025802c612991c7cf35e4ca4a17570adaf4a649fcd24a7c40093094d0e2bd2b09926b481224971224259878efe7fadad5056d26442291123b4f64707831477e880902cb0d36df751a6564eb42582880a5cb4504cbc602e55d9deef4c585b0dc5c5c7cf749542189225c9bf637521266709b6823f193ff21c50f28def3a9ad7baf4a830d23494c79d51bef556ebc57b5c146258497e3a5e4dab6141722679c6fb6b9669a679639669833c6f8628b2ba67862892386385f7cefb5b75e7ae795375e78b3c5f65a6baba5765a69a38536575c6fb5b5565a679535565833c5f4524b2ba57452492385344f3cefb4b34e3ae794334e38b3c4f24a2baba4724a29a38432471c6fb4b1461a679431461833c4f0420b2ba47042092384900bf448c890ca8c74a7cf8412406e8600195280ab001714d77503e4060814d7755dd77bd50bdeab5cf05ed50236aed871e184e02701579eb842ba22e5e7e7c20172f3f373e174df9bae0bc80f91abfbde34e4274992243e542c60e3ca0d576cb86e8208220b13dec3b132871511bc8b2bf954942555bc2712655680ac2079442e2448ae38e4b202df7b3fd8bc97d9f0de26e4bdceca7b0f2e4173c77b5c967855c8a8c2c67b6f892a64bcf7c3fe40a80a12556eb264a58dc45d5ab7857ce278af22e3bd6a8cf7aa13bc44e1850895094a5091e0bd6a04ef552278af0ac17b1508deab3e9081f75e9517ea21a3a7043e3fb811b789a62816b99220b9deabc478af0ae3bdca034264783e2ff47e5ee839f142af002ff42ef0428f8c177a68bcd0a3838618840079afe6046dbc9a13e8e0d59cc009af668c985733c60daf660c205ecd18f5d58c41c4ab19a3c9ab19c30a0c428260f16a826ce005374269e3e30428d354bef650eac45d55034cd72d7ff4f37aee3d176d8948d43d176d5b8c0736f1ad1a5acae3ec5b8a442291d442eb1db4421af5d7f2ffe9a984dd738dea09f247886ea43ba8683029adb063096d8f5ec34bbad193b8d6f1a5cdc7a4b90645244a8944dc6b09f2479038fd44c7c656a96df1f159b469c912265144a2dd47363e506cb025beb4f98844a25ae7cb06aa1960bbdf8fb3a451d77ba5fc32c0fad5145bfc23cedf665827506a7b264da8d8d881c138eb95545e9eb9c63d4a2980aa0e0ce67eeba7d86ece2dae9e0e6cd27d3997f96b9ee3b57c0e0c428aa3a5f77e0f6dd7726095c30eb5c73efbad2fd631c026e5f45edc63cf387e7a61806139f9b6515eac779431c63830a9bda657dabd31a4397238301a6fbf90d6a8f7ee79ee37301e63955777ecf9e49d639148c651bcd38dca0d4c728e25fed35ffd239d93c634aa363039ad8415df1ca5ce5656aeabf2572fc0badd144e2c37f6995fcd99a85c80612def96f5d35e2de6d2926e8409a85a80d1fc79afb36efde18d5cc6383aa3620136e5ef16fb7d73d7f1fb6a46c50676f1fdb7c22a29be5d53bc0696abacd8ce2871873befbb02ec761eadf637dea8b78c28a85480c5ece3cd5afad877cfb2db5897a8d4c03ebd9d6e1833e658cfbe4937a681c50e6de5d9c77f65f6fe926e8cd122a04203d39e564839c5996f39e926dd08e52612c54947750696259c79d76831ac7c8b4453c2519981d57a319eb8e73e3d509581f5c8e3fdf3e6df6fd49bd75232f97e6d7c9c4c2d15c61460d7ea8f6bfe71637d65d4a41b475a37f2379e32953c58463c150a304fb3e610465afbfe127bd28d344ad0d66598482412894422518c58a8c8c0668df1f3e961e533eafcab31b09bfdd7fd4b5fada47fea29149f00f377da5b21ee764e6ebd370106a9ad3e7e9df1e55ac609a9d8e8d84001d84c8162734da85369e44da85437b225c072a6f64ace6f9f1cda0e3109b0ba63ac36578b2be572ffbc816a0458bc16428c7dc4564b6cb78511049508b01f35edf866be37f4d657d28d9d8e8d4824122161a36313a5c746e7d471a901f41cef9b740f9b5085009b5c6e386dd43252aead25dd88a38d8f131060dfc3b9b1ce725a1867a49706d50730efffc597dfbea7a43677d28dded44ba34cbb3bf0ca518981d9fd39fd90ebd937d43b926e18989efc5ebea9975e66593de9725c74141b1d9b4c8a8d8e4dcf4a47d8e8d8d8e8d804f9236c746c364fe2f4131b1d1b1b1f283618a3f469d47d8cf54e0e541ec062fc34fb1ab3cf594b0b45508121e9dc137f3e63df3062d28d262d1245cba5ea0026fdec937bc8a9a43d7349bab1dae8d8e8d8e8884422112f8944f803d51718cd534e4f73d476cb4e3de9c6a0ad8bf146cc83655444e505a6f78f9bea2da3965ada93ef7644221b1f273639363e506c442293499f7a44a239c1a8388059f96fe499c6dc65be18936e1c8da4346d9d551189a81c41d505463fb6d9ee79fb8cf85749ba116b5171816dbe7bee146e68bd8579926ee434d4d440b501ac678d3e76a879dfd15ed28d5bf436f2fe8fec179506b058afdf3b766ca99d9277d28d7e43496c8b6a0b8ce6cb2fa6dcd27f79bc957463a6612922119745d34822d18d5e5419c0a2b75663cefbde10fa2949374e99a345a2c200c452de6c63d674cf5c798ca31883ea0257560de3f714fa6da7a5169079569d6bccd35a79a7d7225a1aabfcd36eb8b9cc346717545968eabf8f3cd7f87594174718ad7ca3aac0d6146f9a7da41f629c6397792d33e398828a02f5decdbdef95eb3e2fdd22914874e25cf228d278e25c6609aa09402feba6d6ff696bfe516fdab66110c651b455b6514940d25bb59c10724a7bf759c7460747a08a00b5feea3bb385735b0f01bb2b847a42182ffcd04b2c62941ffb3c399f5c73efa750b15962a363936333050a7540f5002cebacb8da8b67c4964e48b3e8a4c5641261ff5f5839cd77cefc6d8d1e15d4f5ba695ffb9948643913ea54aa232b2a07547aa7c553fe5a35e9c651e781aef6b39dce3b118944221f27229128c37881ea0acc6addb1d69ff7cf2fa4db0a4c6eb9ad9eff478ef5e59674a3f75b378ad1a3827c248d78540dc0aaed5c424f31e4daeeeb1980e94eb9e7dc6a6ee3f4372f0093506bbb2b9415cf4e39ae02c395fe7ae1b514c6ceb9cc624aed6ce3e3c4a4b34d0aea54bad1567c540ac06eff596a4c65d79eebdb138079c82fe6bc46bfa5ed1723009bd4765ce5c5bb63893315d8fdd17aaebd87b75a0e2de946a0acc46d29eeb751f4401db3f17162f3b587a26363c546c7e6081b1d9b2e154524da7c964d9fbea7e2bbc6231279bf755b24d24ca627304adfb58cd618ad0c5453607176c9e7e6b4ca5b69df36bda66c786cf64cd9f8d8ec9ab2b19707cb48aba4c0b4ed91cadb69ddd147b84d9ab631962a0a8c7badf79d57d7ecbbc69edaaa0ba6bbd4727f6c33a6d95b395337890360f46e0ba5ef51f6aae3bd06c024cd9f663cb5cf52cb5a0b804dee23b5d37bfee3e65c24128990a89507cb6844008c635daff4736b0ff7e5180a2c4fcdebde3ae6febbff9674a3d62d7902e35aee88edf7b84bcabd24dd38a3751284cd0ce5c775df0e65ceb8926ef45dd0ce5d0a95edd41c2e18a433feea6ded765a48e7166c7e1db5f557cf9be5f65a36d28259db31b617d21daf97f1a7300c79c532cedfad9cdafa0edb5bfff929c6904a1babe7b0ec69d652577fa1ed77fa0dbbf8e3df319491d61fa17702ebd55a2d75bfdc420ea14761f6539bebe472770df3b66e4dfdbd527baa73cfb06bf39ed4de1d7396dff613f6f1d7f7574ca9e59ace6ec226d4bc56db3995134fcbb3607d7348fd9cddee01603df6f9ab8d755acfa5dd258cc24ba58db7d3cf7f949b84616ba58419c28a7bde5b0361b3c7e8eb867163182bd51feb9dc2c9a39c9be6fea5f6d89679cf5ea9b41e7f1a75c7e695b8cf8eb397fa4ea83946bf9cbdc2c97ffd52febcb16c739cb5ffa9fdc490678d55c939acd2ca0c2bf43bff605eceb8b7a7d3fabb23cd23ac76be6fdd98e3cfb3d6b809aceaaba3ed7aceda6dd498094c53cfe7f73e66ece3fc7709acc28cb5ac95c7cf3bde5709ccfb9a77f6d45f0927b7170b4625d5126fff7f9ebf779b04b66584d0461e31125896b5f67c6b9dff7e7a05fbb052c861e5f9f22ea5b5825d3d6bce9757fdb9beb60af6a5bc57ef29a9bcf6471fcceb5efdd635726b7985b507bbb1d67ea5a47e7a7d37a582d9fa67fe5f4b2ba3e55f0098e479c26fe3d514c7dca760ba7229eb85fb6f29f39e52b05939a537f7c8a1f7b27b1eacd77c61dc5ecb9c25de51b06e25b67fe39baf8fdf42c128f55cde09f7f730fa23b049e7bc795a0bf7ad164e23b0df7f9dffe3dd7196f0ef60b3ce0beb855f5a58777f82796931dd934e4ce1bc5a3ac17ac61fef1f67e4d56edf04eb9677ab35ed98e35a31ec463929855676282f132c5a1be58d5ddf9eaddc3a988c394bb86d87b4daa89760b8deddb3cc3defbf35cec13aa67a564a798451c61b8bc02c84345f29739416774e0456e3e7bd76cb238eb16b2598f65cc2bf23eebd7779936031c77ef9de507eefb545827d6bfb8438dfde218f12926eccbc69c4bd96518e7534c29107cba8c9114cdf9db9bc796e9a25dff07f2d43c1c1f6f5324b7b6f94d1fa3a3356a7cef842ba61aed0e64fba7134a3b5917b2d3b18dbd5d2ee2bf7b0e71d7f26dd3892d176a73fed3d69da08681b8d682c7671dcba6fbb6fdd5cdb4cbab1db701115fb15d2dba1e7d9ff093727dd38ba986216c76c2fad7be28f3bfca41b71bc13cbfcd7e8e3fd314a3d6f26ddb845db80a2945894155efc2bad9e573e2de9c6ade322267daf7de3bce78d17fa49bab13bfd5c056294c7ba29e734e77af5fda41b7ba6475a8ff2266104b3b46ee8f9bf3bc32d6925dd48e252a8d1a6fd91cdb1d1b1f1b1f18162c3bd952d9a4a8eb7f26019411161b6f238bfb494cecb73ada41b374de223e8bbd2764524ea4e5f24f29bc6af74a9d308561e2ca32b45b0acf7bed2ffbe23943073d2c5299b26546c6c7ca0d88cb2d2955b879a7ed338e5c1324a7283f1fb33d638723da7bdff926edc7c3604467d8e74f62e65f570634bba91ebde73a3ce03d568e3e384d33650a66c3cdf525a0f15916874d27aa63791b6f1816233a29907cba8aa42881197da46231c888c6c95420cd974174410370400072084b0c101003cfc70830f3a5c437af881871c76d041071e72d8b44ee3f0c30dbf4bd910479e34d2a1066a77a0818bb6a5e361065ba50c58c691f459b4698f80b21289d3a42b062efad4030c71a49946405909084833dd10ba6a7e78614217b8205a909da609e9da6f4382dc00e93c50103f2227048d843323223241c44800c0c411102ff2a4f191df46a398c55689e29ebbd6902a8e8246a351c7c503e0e140470d6758a0f2279dc1d470461d4282bc37f2d023c78d9d274e9a604c7496e4149104c9119c8cafad74ca088d888adc0c21049121410400081b00f8605d560f3cbcf7deb3e185a830bd101579bc5411e4bd81831be4bc2400cd1183f75ed50024f4f71e50d6696e64d2dc26e2e478efd1c4e00837e8e2084e2c185871bc3182e38df736cd0836d8848aa00021d404218ff72e9c50102e1daeef488a6ddc9a6989e582d00f98c8400b2c16b0e1032c5e480f217041598e3c71243cd095b2d25f81a974c564cae959582ae85e8ac994f39ea506f79e954696faef5968f452181dcf79cf3ac39b760988a7fbacf47ddf420b6ac6c365d818a4b70aa4e03d3983f4b6e570ef59639c40a2f4e6d3f39e65020b84f1ac0a94e07151c8c111a49513e732ad643ba6bf7559159329d5c4b475a7f17493f6c43f51ea61f29e35826ed350da96553995b449c76b3e9cf74d341e4ca3004a6f3efea479b86026ed99683c59b80645e3e93eabe24d5b6b3c5d8ce7359e2c5c773d1cf69e25822c42f09e0582f79e55810fe89c38123eabd2fd7b96181605ac304ca614cf7b9607deb3c0b03aa0fd6c87fbe23dcb0bac7b1fed73c0caa28b142a0b1e3f782c11c2e3ca7b72f69d12b5d606827c96f72c0d4019e48fd84277babf676520c81f6172d24d25928e85816ed3a8f7ac0bf4d296324d79cfb280496fcde4c4f3926685dbfc3ef9285b938ed31e4a973325d3241fbf6951fa4e498bcd6729655a94f7ac2c3093e6a58cc4bd8f892b017928265de2a59e32c273992f95b2d2a9e7046d294efbcd6700414bdeb32af0b26c5a93a025faa4b9d4113df31de7af50d1b8c6b52bef591498c07ba714e6378dc4699daca4f1aeb484f39b7f129190484c24281215098bc44502238183c3c9a90507476ae1de8a12ed673b48b8b7b26959e9e44f3ad39dee4a4a2312a7499bdf7d070767f3a81477d232df4f5ac6715c3795ae2841c2bd951250966a92a57edfe13b4cd888bb4d4f09eada926ed3a8be13d4b5254a94c88944ce2a1d97693ad70d4e21c132a6702ac867a136d54b72a6ea88c29267802a5a7807a8c3e6554aa89650e5a052a352011d0480c9c102e8a8792f4cc0fa9e5dd7b86bdf03fb50d66db79758dada695f0216f19fb7c24a6db5d9d2ae04ac6a4fe5beb942afa39f3d0998b57c726ca5d433e2ea3912b0ede3bf1d77ff6ddebcf3236011c25c638e92637b67e746c06eec7adfeb39ee3572cd8b8071c863ee9347ce8980cd9923f4d0634fb9e7970f01d3bf43dbbbd49147092d1702f631fd1fc29e31ae3b531e04ac620d69bfda7b08399f1c0818c5be46fa379439c73df90f30986f879efece65df78721f60b97a1ebff637facfe7e47a6090e6dd69cdb76b1a7fe43dc07ac45c4e5cb1b5136ac87980ed0f618411cef961b790ef00e39067ec29affc4719fdce03db985fec25a5df62e8f9d601c66facd352087df531ee9d038cdf6daba5d3f359ebc61b0718fef67b0fbddcbe4a8af70db0cfa7b6bb524979bdf56e1b605a7eae39879a4748b7dd35c0b6d5b15e593ddd78605c4bcab7e41e4b4937dd77609b53f977845ef70c2bdd34c0a895d9c65af7873beab96780ddabbd955e5b3b39a773cb00c33e46def1e5d4ef3fe7b603ab3366eff997905f29e7ae03a31b469bf3af927218e7a603eb9bd65cebb5375acabd9e0383f4622ce7cc56d799bd9603b31efbf8b79edd6b38bd8e01966bfc1c5accef8df66f0d034ceb3d3dfd38ce8c7fbf3a0eec5b4877bf927a8f65bf1a0e8c773aa1c77ddf5927bdfa0d8cde596dc450e2af7bb4da0d0c7b6d7be6d4f79d75a4ba0dacd2dde5e57ae28cef9dfa0518e4b24f8bfdbc5cf339b50b309dedd41b5f8bf39737ea16601d4f29ad9d395629b9cf2cc0a4be71cb4ef18fb9629fd9c03a8e9f62cae5d613ee9dd7c066ce9e5fa8b5ae95ce9d57805129299656460e7dbc3aab0083f3768af9a59beeff715603bb5ce329a9ecfd5aa9714e038b9556eff7bffcef9c6f46039bb76f2a33b63d426a6f3e03db9ecb8fbbdfb656bf6b36038bb74f4eede7b2efd9672e03cb7c4fcdf5f5b1777a674e01866d8c5be27eb3f697c78c028ce27b3b97df6b4867ff980c2c7f3fe18d7d671af7fe780cccc6fe3dbfb4fa6fe7f4f80458843ace9eabe726c0649511fb8871cef9668e4b80d15fe9ff79c258e5bd1c93008b927aafefadd1e2fe371e01766387706ada37c6166f2c02ac7f5fb1bf1f421c6fbd3804d89df76b0979a471ca5e3108309eab9f3bf6b9bff696e20f60d55bde318c3a770b73c462609a6bbde58e98624e39c46160b7471de9dd7f5f5e21c41ec0b0967f522f27f45aff0e06d667e67c471c21c6dff70e605fdb7ea1e55d5e5e3fff029bd75e1f3dafddf2bdb917d8a69d6edb75cdf2fbca3980c19a6b86f5f37dbbc078e4785f7835b479cf7db9c07ead59cffbbdc5f3c37d3780698c6ba73573d8e1acf96a00c3374ea9e5c574771ef3dd028bbddeec79f41be2bcf1cd000679a7d55bbdb5c773de8b014ccf693fd497565c35b5f70218b67f67cebdee93f24faf0530f9b3bd30fbcee1e49e5e2dbeae384738f3ce02eb126f1aaf87b357396705b06ae5e41f5f7d3be7555200c33dd2b865cf13fe8c278071f8f5aef143fd2f95510298acdcf64a27b5f2620b6f0430df73f5b54f1a67fcf94300cb5d721c2bccdc6bfcb1c074ac376a5bf9d7d5fb076013e719f1a7b6578c6f7700c6bbf539f76ba18498ee2b30cc6d96725fcee3a7d30a6cce9aabc4f3df8eb3d40dc0a69c93663df7adb86e0660d0d26c71a573dba9e55d0016f5c55f632d2f9653d72ab03ee9ac73c3a871a75f01d896154bce7fed5a634d1380f9adadbe5366f8fde408c03ae4bfd7bd6bd7dd6e2a30aa2fad934a3de7cf704e81e51fb1a57df23e6bcf520aec5a2833ce3deefa1205a6f1963e7a69b3fe3ffffad205bb1e5f9e739ef94f187ded03a3d1d60f2ba5f3ff0f7dcd02866da43a4e6d23e575f68a050c5208bd84365f2f6be7f50a98ecd243583f8f5746cdab15308af3dff4ea4921f755d72a60b0df5baba4d4dae9efad54c0b4ae17ea7bb5add5ca5ba780c53bf9bffa775ba5804d0e27fe1ce28c23ecb4f281c50cf5de33c3e8e5beb44601ab57631fb9bd18db7a678502163da7f5778d63ced5cbfa04accb683bc7bad66eb796d509d8a63ffed8e7fc9e56db9b807578379e55f79c75a79c0998de7e73182fff3277c8f7c068ddf04a8a6da5df52bd04ec7e0ea39d14e6b8bdce4ac076f6f3ebaebbd776db4c9380f5993b8579572a6fdf972201f336d7bb63bed4e27a2f3d02d665bcb55b9a75deb2526a04ecf6f9f78f73def86f9db40898adfe76e8ffcc90470c2911b0d861e674d7af79a717d221603ff68d7ba5f673edfd17022637ac7a5779799574fb2060ffcbbd73be9def9d71070296f7deb2630b6da532f31f609a6a9e3b8f7a7e7cf5f601f6e3d73fe798e9cd926e3db06cfde799f32a718d52f700fbfaff3a29c6f466ea330fb069f18d5d7fcfa58f36ef00c3d5ca8efbded3de1d711ed8ad90d638efc553eb78758049da29b57ae2a9618c76e600bbfce60829ecb9cf8bebc4013635f45d430b21b772cf7903ac5f3e23ce70e248a59dd30698ef3ac66da9def7d62f670db0a867ce3dff6c2b9c5d4e3cb099318f7f7338fda53fce3bb01bb3c5bfe6fd250db02dfdf7dce70e339cd0cb19607bc7ede3d7bfc6f96d9732c0fc8519fbd93d87f5d32eedc062c5d1523ca3e6905a2eebc0fcc4395b6c3dc73ce32de9c0f0affa4e8973fe5fda2be7c072a5f8f3bcb91cd8b430fea93da459e36b638049d93dee385fba33ee30c0a0b7f26e7cb5b61fe71a07d6eff5bc72acfbfe394e38b09c3b8ef5ee5f27d65cbe81f9cc63febd663d3bfe6e60d65738e3fe13ee086d1b18f63ee3cea1de926f185f8045ed779c556fbe73f450ba0093766abdfded5cc3af7f0bb0afbff6b6cbdcb7e7beb3008b16ef0c398f16c659391b98cd766e8e69df31ebabd7c028a67fc399fdf57756bc02ecce08398739e74a3d5501d6a3c73b6fb82bb77b5e3530fa6d8456faa9abbd3a0d0ceefb3f9ed472fa371a58ec397fea31b630c27906d6f5a47b57c8adc7175633307b67cff5f3d9b1dc909681e5df3bd474c27fbf9d29c030ec50d6496dd731428902ecd33d7bf4fdf28bb7250393374a89aba7d8cf1b631c03cb114a5bb38eb6675a4f80699da38d78cabced8ede04d89c9cd37effa7945bd84b80dddce5afbaf70e6f979b04d8cc72de3cab8e534fad47804908e5f5b4ef187ff55904d89f18e38da98d7a628f4380412e61cc90724e71b620c0fed673cb69e5ec5bd7fa014cfec927fd9eea4fb1a66260f17eef7d9473ff2e7d1858c676df5e7bfff3723e3d8079ad2bdddbf27d37ec606074d69a79e592e7c9a3ec0096f1fc7452daa9e63c4648ba514b132b3732b1bec066b61e660929af7f777dad952526eebb4884e2b064c3f202cbdcf65f3396d27200a3d1dbcc27f4964a1867ed02cbd9739fa1e57be30dbbe502eb9b53fdefdd7cdbaaf5df000661ff36fb6e7bf739ceab01ac73cbff9cd5dfeb31cf520c6b0b2cd2ecedbff5570ee7863f0358c4d2664ea59d3ac6587dd6808501acee2bb99df5ca48a1a43604d60530ae21debce61f21b6806501ccc62b27dc51d79a31c5947423be98a50526a98e9dcfad31b4585adead2c30df318f93fabeb785d56ed28d38f360191dc0aa00366dd5534398ade634661a23605100b39bdee8e1b5bcc34fb19d0016b5cc96d31cefff506b0960f65afdebd736c72df7a511c0b09ddfe68f27bfb0d63e2180518bf3cd77fb383fae3a6281cd8bfdd71967dd29a5fea4336ae3e364c204580fc036ed35e65aa5cc53fa8d25062c0760ddea5fefd59fcfdffbbd364ac0ba82da68edaf7b667dadafd464ca816505f6e7b59073ee37d739fea0adab15b01a80496f7bbdfd43bcabcebf936e3c69dba7363e4e4edad64424929207cbc892c262c0e497f7af79bed7578f171025dddf5e2ff584be8eb08cc3aa02fbb66bdbffd7fc634db55600d63fa692fe6ff5cc515348ba1146085809c07efd37d3bc398eb84aa97746de090f9611170b01588fdce3afb5f550e32ae9161615989430feae6ff477c29fabe7a24e4724d2b1d1b109daac441189aa64a92722d1e6bbf6242e471a79b08c8294614d81d97b75e5f3e779a1cc9d86614911454f585104595db04871c55debab7fbcdc62ba75a83e2ca617ced96b977266d28d7e4b719a898b4426931ef5aebb92de7c44a21ca775852a0b9763b9a5c6d4735f611789301cb70e5539a1c2c284b94ffca3ce1d661efb1538d4706beca9b5187eb9ad00739cba5f7dfbcddaf22af45935b791767a3dff74926eb4e93765732a913891169b7d53369e671aa49e6752b226960a13efc8f3af32fafd35ee5251b226954a35050ae5c416ce4ca9ad12c29863cc97728cb1ae74cb4ab525dd6832694eb326127328ed884a0a18c533d3faa3e5d577d9291f5885d95b6b75fd7c67fb2b8c51c078b75bdecde3adfed7b9f3285e0905ec7aceebae14c7a8afcdfc09989459cf5ebfefdffb38af13b0bfbda71d579a37a674da26dc9f71ec7753b99980d1fc67df7c53afbb9cb2ee81ed1d6d87d8eb2e65ec7f0958cd3bee9fe5de996e8e9580f5592fe79d774cabb7976adcc8036dfe046335522501fb38fe9de1ff3473dee114894e5ff7882212b0da29c53e634f6d8c7ed723601077defddc1e5f2f35c7bb6432e99f95e04d6504ecc37a7dbe92dfc97385927463973a8d68154555044cd2cef5cd75f711a761e47270012a226030ebfa79e659ffbf698543c074b59a675ffbb5bbe693bf5b2a216014579eeb9c31f32d61a741c072d41bf6a8718d3e623d49574b0504ece6eb3bd5f64ec92fec3415e50758957b638871b5907e3b3fe946ec030ce6ffaddd9ef6be6bc59c7463e781a68f8d8ecd93254c489c7e42e234e9898d8ecd1226560f4c732bebef1ffa486794506f9848a4373f310f961157f500f339f20f65bdf1da8dfbe601d6afef3077ccbddef7df1d60716b5969b554775dfdcc79609d5e3db7f75fff48ab8dd2563ac078fc92e389a5ff76e3ac7380d1dfbfedba4f3e7786d1926ed49dc9f70a2b1c60b4e78aabc59d5e382f9ca41b475a27e3d7b46d8a8c335e1e2c2323aa1b607d726efbd4ffd6fbef8e9a446d7c9cd89038fd8407cba889ca0698a75bd74c2bd7f36faf35299cf6a8d48f4ad6a11ae4300a190000a01ecd000000b312003048241a8c458301a1683cd809148002539076b63e984984c12c46511085200c02400c430020c418420c312ad5d8003bc24126f89a4c0ae59310028a1ca25b2a149264a202024f895b45b18068874a96c40ad9269502023b9459622a149b240bc8e950cc12ac50691259406107f49fe4f5ef91a22d20a443314bb442a5496201d90e952c8115ca263105143b24b3e4542836091650e91099a5ac90d224b380b2434896628568934a01891db2592a15029b9405c47428664956c8d344730c5ba12f46bb12344589f7296949ad906f523220b4439d25cab26afe74ef59a657db0faf6ec944839afc81fe3ead2db10af5264907e43ad4b3045d286bead0f7b29e655a5aece979ab7e934ac687563a35d58e7e75a6cda15eeba549bd5b55a79e39ebd7aa34f1764bd7c832d97b4feab45328a79569866d075d283c8923a0fa90b0258f42f524c481facfd7ef64039260924640ed43604b1c65d5fe84dff348afde0fb85a83105b5118228d4f6e4be1421853d5ec11fb6bbca74ecf78bf467d6873e1f738d2abf713aee641a856040c51e313db52b8901c13a2e73a6250903a26b9030a1fc2b05417223c6963368ce4134c0a8c71bc59a727bc9f476db541e0371bc9d86885d3d3d8cf5d5fd81cc66b759ac4bb35ea50cdab719a8dfdd0b5854d72bc56271446c923cd7a3fe0fa1ae6d8ef85d3d3d8cd5d67d81cc66b759ac4bb35ea946d3a856235cd6c9c572d897d3e8d7beda1ea0ab6f753621494d493f1cebbc27004ac22ee301b5ef45f1d0aa8aa6313f2cce12cb95a6bc708da1d27eb413024b07479692f7161c47433c7bf2016e48a1b04637a3f0ccc1a7971ee6c21345e1c7505ba4c67be0babc22197af62f78d19904b5956e08d764832231f1874f13a03371e6a300057c3fc775d35eac5b6a5e5329005e84c02d9ec2c0959e44ae5bc5316d11ca6061a29089e8392ea0c3a0a532a88cac691a2324f684c6b776964b704616a08dcfeca3a97a417c53487e9e0e3688aa2ed66013db9e291812012da846ee35531c9969ea9dc47252b4b6d98269c44a0ff315927c242d1092d707b2e3d87e6425fdd4322cc2393cad59009fdcbe52104264a6014915f2bf147c5e531613d16f4c58970ef9d0e1ce2a77e47ec7c1654a8d58f0ae633e0da2c604dacc1471c4ba21affdb5996532887d6de7b2066249899d5d72ed5c672e2bcbeaa7d5610a334e195b30e9d3d45c862dbab6167b6533a4169bdf9818e9e7e8a8758b13f9ced590c69ed775b09c0a06db9bfa36b56f4a8299e3879f8c65d83850ee3ccc180043f6b7640c47a5b6289644a64b3d62ea344e251e9c8e7ed432fec9b24776a76925a03a743b1a14719a24e1af1bddf26b33804594abd4578806483ec3385479037b821319230af2f0fcbf94b3598c3692f3efb53b3918d8325de986dbea7c9eb6213c86a14862b3b8ca1963fc1716fd5eb6283fc6588b26308612e1c8c268b5a6c924d3f421b0b375ac35ac59441e661b3ae26824d53d8d3bce6eb7a3f33654d1812d117d6c85a76a37f8ce33a4aa7fd66d74697d91e43b8c955305f937c10dc251b701cb6a0fdc7e28d87163b7db733785a641f52cfe3494db8889016f6aca15e8c9093a310d2b01cf4715ea8e92526d0f834533e6e5c4c50fbbd7fbee02fd02533ebcd3d5aa258ec9afc7332d278948235a41ea8d146423b062b153dd63f1518bfa12d16a6be13f3aaf8d5c1dfdc3033e088147323035f0d3903b6a0bb8650b5746df066184ff01eb87ff8a6dedf857914691caba6351b9d211d7adece1411532be99c6988cf1b73f23654adae67ecf9e8b7e891e9511994901de86fb649fb1a534ca3ebaeae06a7726be8b8188fdeb04ce0f2323d53d5810e849d519fd703dfa8d6712945341118c7463f266c9ec8b0a16e21c2808fbfd9d4a0035408763a88b83453282b3eec46a6447d0d718f4fa3470c174972bfe6c2e87156d88265d92385b46b03e6c7cea98e2509485fa959b428708b2d9f17ff82d78170c5b7d82bb85575109d47ff7b03710d0f6f1691216fd8ab0f574130df2c1be0af5c52ade6ddc2fc0e993334003184549cc1e2458a38e148aa4a752277797a74a965e92ce1d0520c2f196959f56c8a8a01c86a9163d62c0442526f71a20f0cc26fc1af8b15cf3ce45d230791c7581e11a5746fe559f19bfed35b5a77fc593e362749f74650ce112b07d02bfbd9c501f740e9d7caf868feb52f4488d14165790e68b342a06beb0648dce6ab5758a1cf02bd5b60132f012ff9b6e6ea36b8c6b685d90a7f738a37434f6e03dd2a02d927c524c270f4964cd3b85478b52df63942672fdb73c706b568353b65fbc347ec466736691997576cdef35870705182fd3794816fc859177faae033a74081859ce114fa0b7659355b29a532700e4e5e128fcb45756e6ff2d2cc43db9fe4cbb921edbf2844aa0e404d379f7f869fc2f6d6d83981f1dbffc0f3818334a026ddb732a39d72025bf3907b71b87cf132da70621fd839492f9d296267a79c137c92fcb6c529c2ca24adea3ac8614c4592db69ee518e579c3612ef99ea89cdffa6e311e40e9b29d95632e9cc2ca3957fd47e956ae60906604d1f9d087ac408f42a497a4484e82991946904c855b685747002f1223682b2101826836f160ef00a1f0ed4b0f7a835b1db3869250f8647d1fc202d32be11b2d1d8224164337edbcd27a8b43ef63c0015bacfcb2dc275aca7c025b22021e7509cb13ef1c43352c73c562370b4f78bc42f8bc9b866485bf115da959b769e5c85008a13f5fb9d4675ef71821b945e4700196285036e21efccc259fe1684d163a4d03b49bcd0f495dd1db16667c46c18257eb93fde3cf6407093d467f26bbf58b71a7c4cdfa13a1e6d7a739dbfc7e141696433a8f2245017ed48112d8d2b86aca96656b73a3474cfc2e3883fb8c0472f7002c2ca73d1acc905a08cdd0577e83d199d9e8747148a267c4adcbbc4ad273b26702ed500cda1eda32100e7c14b557bac4a242ab81946458e3599575016b6ee69dd0343b45a4ad0439b1380e9572c2de92f40f900e46923df85193b3300065a0e9e410fe632d65b2b728e8bf62dee5b99e208589366e8cd2b6025557c7cc0a61dcff7164b1cdf13eb4197ed2a509086c5795f515e57d4ff1a9434dea5a2f1034c21d7809789a0195e36154aa3d43477d0f4121de0c2f5b2b4f890a75cd559b0b64765f29204a9185e0f081093a16a84b648524e122d3574fece9f3bd50bc424063de6407c1cb2809185d171ae12d948914b4823ad677c101b419a91a96050620819e717504316a2f2106a0844ea8141fe0cbea40487b3523549beb322c11b36215690da033a8c13b25cbe7d5d836b50a34d59ffb200f82640f978972df9da5034834817fa3aa450b34e85f6257ba0e0a79b7750f68bc1a301f83b2c4492e405ec64568ec302a33c1cecfb5169983623686299fde4385245a11809801029eb39a4a490a56db26e88d356ba97f88f525de2676e7b6e1bfb7ba07c4b2fb3645dfda5e24c3af9080df95e98044baaadc89080523f7acb5bebd73579606f6e7db349c0adb41cb0593152282422815be214ec51c801fe57225c6b5b278551ea3f846964bb4bc9d452b20b0fdf4368b89454a2198538a49ba5a23541a6301ed2113536b7242f60ed1844c1433b2db55a53518884197e75e0fb30dc6a87eddf6cbdb67b93a14f3acf84c638512c6b265f6fcb75d000ca654805a7c987c5120e38e367cc05d07fb0d91d9db24f06306556d56ef621d03ccba938ff1f23ab28c15deab90e2efe25272af2886f71f635ebc83e51ad552b0d798994b3a9c8bc7ec4f06b58dc18b9f5afba2ad6b4100ab7f7830e0599b587b1fcc919ea33b85607860803733eabc3e72bab40d9e84f31c80210cebef9931624ebe29a1e669db5c95686a2b0694c072f3d2292b17010079001805f6e6a88f5ef30463f34acbda4df9df9f411c31a882ab3a45bf6e76e7cf2984507b31d2848d8f082acc0d94558da748ce68ac181646f50aa0d728292c70d0861d55ae27ef519e5c477216f85ccd232993cc395b7dbde81577c4c5264c411c499b7070cf63728886dc85466aec5e5f7c625ff9797b09dc975bbd283eef22726cf7c85ecc5d0dde765329b2bb28458c52a92ae3c58c1ad6c0dbd43b24e1459ef1c6eb66a2b1af3cf225344d95072485124a2dd0e8980d4439830e08843c4831a5bc7a5ffc9dbe702e776c90ac059d5cda0d086f309e469780f0311ba556a396343b112b944ca3910def1eb2d9097fefaf6eb671b2bf82f65e965caae7794fb204baf9fbf92d4f8dfa8d74534ad3da524913dae09e8828d2e671888754a9c7616e44f5cc0fcebcc30729ea9fda53e0045775d6ffbb299ecaf3cd4f35d0bbc6e2e0217568872d9f9bd22c8df0840742eede1e912cabdb9c95258a781c64635789a726a4a5e488b7e946a632b3887c230d1382fa15436bb02c0717e944c8e4ff6bf5b70479b444ae819252790afb839fe251b7a3f80ba8dde2f93a85f6fc62f0a6304bed0f9d161f5477724f0abb320e11acb4d68f8a43e78e79d80db1a52b1d8345a60a56392d9d6d872bb4fa34d21eb7d5b5a53ad743bdd476d3218dbb79e356431b6695d6092c7dcac75c520a7d502e31d4b5a532be69b960c0ced58672382edd053c8e7d5bab9ca27de8be96f2ceb7a26a55f747deb59076db27a912f691a3d559a7e1bd3e2a176ecd52935df559a7a7b5a57ac88c3ab336d92f566bcb4b848ba181a050017047ed7d392526cfe3769c40eae04e0b1fd57e0430bf062473818fed82e4470e68b8cd7cf9d359bdbdcb1018b23c672281e9e645d1e1a6cbd4aba5884158ae0386f28fee5b42870b746776c2f10aded28742d8e4a4a402fd4c64af0aa030be4fbeee9957431021065f7f2483f6fbaa65c3a63415c0f0e8e8fd96914907df2acfe4b51eb26daf38e8b9a7b2a98f7efe9832c7aad986b1c9dde15735b2854af78d71430861ac881f49e6b0546d4c8dddc892af43188fb31c470ab59652e609d0ee67d142a5841791f284098bca5ce4f10e9e0d320524710e79a8fd07f4265c7505b9284f3952bf4328c222f1acd1b52ed7c4677069392304229fd1332bd01cebe40cc4b1e31189d98c9e08d757bc321b24d86188d53388e1376be7738fbc7780c93a90eced54e340f1b1ff276280ae06d48969d6b051e1ea5c03800996a4087a428e4ea8afde1cc511674a50a34a4c79553bf40115c57eaccddf04ec164868b5e1fd507899263da0b8620ffab7673da4ad792e1c2cc26b41ac6286ba4f0b9d4ecee64d25c51be7a2f8170f35ae1d9b9d3c085ac07bc6a65b3b4eca698aecb945b00b1c1d5539a6bc89453090a4b55f572cf0ca90533953102dbdc889b36b64ca7cfb745c008e19ab0d17dd4a443fc85ae9d0219c388067a76b5b1ed9bb35d48bf0cb40c8e69099cfb615559c44a7714805d47db24696d205c15cda6048b057832acea44bcaa25eac2c18f3cc56049199bdf531ef994b0f18f48d7579eb21e172d40002b171f6c5e32d6a1147dcba27cad0b80d573410b30eb789cb58c03a98b428980c37d80dfa38165ffdbb73fc7790b76de1acb87637cfc1c043e52bcf1752b2fe5424a3df2135d4136574fdbae04a4f3b60ade4fe864a2061bdf8ee85966e570f6218f456756c2b9f8958a651b40737e64cb2bf545de9eb0ee0b8ae4b44b992c83d9ede8ed75083d017115b5415fd1117a0a2ce1b610641dc3f71e774bd7e8561f5ff4d01a89a0c21d5a1a07f21fe4f04a8b190f67eca5abb047f4d1ef21a9151428a8f4d770f02923a1fff1e3871a801fca7f8e77bc47bbd6c74659cb0f07675e00af1e988c92cfd7294b5e80ae49ec6f78d67b9b613158f6cc0b75a6a16135d034ac9bc8e0cb0ede9bbc7c227f8710e940d762d5b7acc2a85c7aacb72fc90798645e066ca14cc1518f10c5fdc6768a24c931aa10688c16707c72d2e4fdafb2de632ba16dba2c2c87c293ac430e3e90fb692004abb091857e2c981f877d430c77c2430f88b371b703222b7ecd5df4043eee788a7b0e9763ab93f1200eba85459d157d757b4cbb5c207205dc19eda5747523a65ed895ed2aa29ddcdcf278d25412636730b6906c03a335dc9ab3b72d829ab8f4f5cf23fc8438d59e3fd7efd50b9b48666d8391c42f55d8cf1a24d12bd1dd4e7551298e360770510f52e08a4e87a0e19ae852e2e346d5487443e4b78ce0bc352a3088c1b522de776befbe9a791a32dc7f18459da9920bd6f19385de9482d134919f921f2f244f8302b38ad0a1834240bdac220fdbd80a22139b5866a78a6d4abbf3b68b52b09dfc982131d4f6e555d6f4066a431eba37dceb42e83a11e77c20b188ef278ab71647c0cda04d090431b029670b64a3b8266846fb307051d4835942b5b1c5e22000d91e679a3b39a1d7cd2017a346e3bb481788e1df262ae5d1435eee24b77a9a3bb443892deb68f67fa5b4db836b69d3f398f4e3715e8233657138e3e51c489f22628bfc7304d1062aaca27bf37a9affb38bc4dfd23106f7b4305c7663740c9171c539c9b1af60d074a52879a09d087c480e601346570024cc056ea9838572e7855841fd512d13cbd0784d47e630f0688e798affd20c5ba2be52df7c3ab5f629406a147f48520c3547889c390ba077cfb76657ae4a2dd453af77ef470d3ecfa6a20b8cf3c3830d16cd7c051400d138a83c3ced17b146acbe097bb506fb14b6a5eec4b2d9c5fb8bc369f29e8bdc1c13a51c30f38d517b1fae439a974599bc706dccbfdcabdf63433b10a8129b8c942fba380ace6506259433bd577b6cbc3fca2fe649c9629e3b0704ecd89a7b91e8eb298b881995b387a270578626eb48f825e5171c2a12ff483acf737ff80b1725abded5e8b72e507624e00ca7281f1ed3abb2960c46d627b5f3dafe3fb75253817aa5235a989537a119d031075d3b02245566df7b56d001dc6202232a37469a9754bb7fb2c1dc4ade05f346232d7738f02fec538b295017d6c273ab45e9c7124360633bc1f9d8dc88deee2e69c94bc58b0a5a1bde487ac22ca851382dd55551dafd073e4b4ebe5fb55f33087dd4629778a58119551660a28a9f9742e1672e2cf1ba8b3f5cc303fd0bc38d2c99734c500f94664ac7ac43e7b74144ec68c9ca59592779c314721fed02e13125f6404eeea1634f5046476dfa8f02524537c682059461946bfdadd8a334f22c9bfa254ac9ed0d0eb06530fefcc9d43f7ed50f1e487fdf1459c611cf574b58cf946ecc90e5eb53ba3ffa25eb3c39b2842ec37e769817db8eebe828b17340dc346665d96fc71762ab459558b0c85d1d6970dbe43c46fc3431e8f78c7fbd56c49c0ea84b9abf68fcd788d364f725a3ba993e6c79eb87b00a6d7041f57bf85dbdc97f9c3cdb9792cd6839d71e8c4f3017bcd16efa8d9454e62298f29845d0e7e6887c2dc9ce1c0a63d190b79a8fd64a1f973ce9bedf81530729187382a92f378c3ba1781a7125315bf81e901efb6e36a9751d1bdc287cdf4b80b9d7394b3b1e1e51f8153f0f9ab5e756d5c7e087df7bcbd2a5e08195d32e4f265e4c0ffc4e9309cc5e29d3fdb5592bdc92c2932737097e89b53b55c4b4c329f4ff67dd1f1d643bbef1ca4bedb775727ea9e6cc19471f51b9f963422e425c1fd0cf3125885c797e502e62c397d6e027f783718cf51736e234ad3ec8f508504eed2c734d8c0e4113de47327322dcb0356640dfb617dc25ca421d5eaefc26496e1eb6d9499aed079349529755f1adda69832a17af8b1f0ca656cbd08e8900c2b099cf11a64123cc7f310041f52f7e92b5be42a01e016877eaa4e92dd9ad79b0ca1e9eafc9773a94520b9cf6b73025cd928c311476dfde0ff97cf08bf56c69f54cd8b726c1f40963d694650d6a4fd02ce9896bcee3541af2954444ae081bfe4645b3d762a82876c810281603428ab186ba0719cbb4af6f63dadeb3dafe660473d040296441931558a3a0e3fa68eceaacfc9f5a2ad077f19f09ba9e6a81bc3159b99ba225f53863e89f15a5ba350145f3727066b2102eda00fc9a3c8d8f212dc5ef3ff7c8a42399483c8f7fd9772cefc9d9f2f8675361aa7fe3be64359de33f79fca9960a22a56ed66728e833b6bb2136d35a91ad679c0e2b0b06f01e5b193b9ba39889fc019930e50847ef17fc8e872d7eb3b3a11d61a910a02709f6000843c0b0277fbdefec4a741e6acfc9d7dc9b46b07837dbf1938fc5cbad981a79e8fc6d6dda3e85aeda6e64cfbe3d4a43abfb539edfb429a7f9ee9829010a759e44b74b20d10cb31b05f4774387ffa952af513c4681cc28adf0d203fe888782313e341700711fd0996f61a1eaf7baa219c2ccd77eb7ae67c6bcd215a9ab997a532ed64ab82c84cfbed806ca1c685bdf6e509dad7271b2e51980f95c498011226ef4c6eb79cba2567b76f131a713b7ce56c8e40489f33e14613e85ba2b4b224ed0d0afa82b1aa653d479371768ed871c5b30802cae6e2b893f34b1b79dfdf0dbffd4ddcc7ded0c23182f4e12a3bbfbd5c2fcc68da5dbf416a0a9bbffe0b40633b12ab12c533311bb70a1aa99e8c4a2fc703fe7a38dede21d617766cd9d2ee92140395581d13daaec4534a61963e2ca9f74afd14940220bead20fbb45cbf35b6d285943f6d3d137d76358683be3cce76a4a76e98e059e5519fe52783396123616abbfe53a32978d21ae433c7e8c01d0974d5504730f60b503d7ab589470a7b1ee2fef142c3364b102f3a76a4f3b3de6c621286ef2566b7a44bec89a40f85463560d95141a86252833e8a4bb4a2abda109c07bc72fddfdd213563f4bd4a7cf881b2e4a2cb5c36f6041458c35c20cfbb502ec9733a17f003fce2bd461da07ea10f7097d8578837c219dc60e60074947c85f802be01dd335ea827692ba047d037025a6a644b7bdf1a09b100ec8f266e0e6b932daf65a582ddda69c572636839ba163d382d7d06a64fb65b1b2bc993a5b4dd8066d438e270b2fc395d1b6d7c26ae936e5bc32b119dc0c1d9b16bc865623db2f8b95e5cdd4d96ac236681b723c611d6f978c6b09895be36d12694391ad6e6ce95dfbb5c6ac6ab0a8d56d329ba8e42b1334823380109b2a780d4a098afd655155c9a6543294899ac199208d4116ba0ca784c4cebab0aa6c23a5390a84ada06d906225085e855643b265455c59b6956256150266b06668b148052cc32acc2467c9b4884528454f5f67dce6960cb545520617f757f6948ee536fc5c6552d9adca3fa0ff0c662ee9951bf7f226760587f1b9ae9bf4ae307f1143cf75766def210010a9f0d6a33db386d677b0f0a7e0da4342d13da6a8c6c8a503a40537791ff51459ba299819c6625c3dbde7b9c83c2ec1d80fe1da41305f07a5083e59389a43048852f4bc371a6d84c53074a333e4b2ca5184d5c6d58735e645c0195d605700012882e360e52b433e369529a657cf071a85c87095b3c1e0769eff6bb43cb87488d171a800da0db6c72e36093069a149b68f5b4f8627bce56798e785a94e6f06dde554cf489dd7d3a60a1beb783c1f2047a3e30771a821145428c10d317ce9abb96d855a41babba66df1ca598a6f721735145a8664da061eabfb7a548c1b19b6f39b99137d9f247df9674389814c0a68faa506ce5d8864341ea33ea6d80cdd1172144bb9b93e5d0e87cb177b9aa408a63fee4608a5cff3b9788deb4141488ce2547b3e932086f266682b8ce7e9036026ae372dedb1d30787a4a0892aee1eea9abc763157b0637872e8219bd3d525c3d09938e3bbe70d193b3402e2f73e29dd12c47bda7c5f5de5786fd3adfe9a932d6884385133de1e9f6869f50faa22bf107641a2cdc1062966483682ef0fcb40c06eaaf27508d204c2089205ca7592d48b4028e818a2fda219b0d48a36728798ee09629226f6a987ac07e9edc83870ef7e30e6f7913f77cb80bb56438bce624e9fbd545cce9cbaaa0bba46c2a5accb9facf174b84fa26bce0f3e34b9374c144096535348ce02877004832b3e96548919685e3658023e3134c4caeba337dc98e55e84976581328e29fa574778c46d126497b0620d7212d1730886f1b65ed42e5a81e4280629484a24a1a8f3a04ece4e7fa12aa97dc5b14f27dea526600cbacd78f0331d46a2e6a0ec63402328bd10454a6294b85d96a8accf85a596706247348760e17ebc305358171a1510552dd571c6453e8f76f1269cf86d5c95a0bbfc51766a691761f2345890651729ae091a45d85c7b7d47b32fc2c749cdad4be1147727198a3ba75c045990cac2b5e079b995d19c2b187b588c5e3e3138033ddf8ff2ea3ec2e91f1f2c90db5e9db3dc2cab917662ac68dbc52d75761a138688f7d748b43aeca1ecf3055e3ca9d2abc64c7d16831a291ed6a6fe68e0315655c4fc13f243e7dcf07c63bfc00db4b9fde19d12720838d59fb4b94582b716e40771be4ee49957be5ec7e2363d6d618061c0df03ae0b45ffa37e9a891404eab72cdb02b562fa248baf56d998de8ded9b13e01da86826670026dc2a8c6ff47f6af707d60b2a8d3abc3cf797bfde9c3a4f8533e58bbef9069c60d3fb6fab97d20d85fbe78a43791e3c47d02ce35e85cb1c8e71e7492f66f62f954e2e987a7a1d1aa81815c77d3c272690e576dbddfc706f46a0c99403787f73bf85484ffafb0939b413cbc745d34968546620b8a76c083975151224f09ce89380f298340ff9340f404c0493d872cd77e50d6a48aa5bca9dbe245e47e924ef1a404fb6046a60af3924d683a734b6190bd4d23e4d3d13f4feeee65cf584c6a58f2d1f1c01a00da571094e018d93f2cc17121d22cca3a63a6acf01df11dd459c2b1c3dd2951f54e0db8ce33a44a7648f3b9f3e2b23e7bb74e37df4e6ea03962288580d0c4e2ad317f07b5d706a69d7c6e709064933168f0caf519b244d729d433e827529e0a57c279bdfdd098b029df11e6dcdb97427e9b9cdbaac9ab80fa7fd83390783161aa13eb44b6b29411e4879861352f9affc5791707af336bd9a8e25d32eaf269e1e37133003f4cf5a099a6ca55d1adad6b896b5688e3bd38b86df2b0a961739936b0c762e82a73ed211448c0b7e9ed3cfa272a7754d9ba94831869a626b56936313cb9b0f7dd35ca3307a068ef176ac2084cbf09e574f0b6c6ac245d8770dff5feb96046f3afd070a64cd82b6a149f16da47d586619d2e6370a60923f67fcf65a0a64351ed8f435232c25bb00a967a1bcc3d598001507c2861ec623833d3cf7ed5199051933e603a86a026382d09931211d8ee82d9fe99f1e6edb8c4199517581f057161b01e5ca462057d867291a0a62f33b7e46451d970ebcbd15e354cbb7336135fa74c5d1ef91211eb45b9b2a66d844b9b6a76a8a6368a0af5d6985c07c81f7c252af58aae4c4959f5f837413fbd4e4a67a378c3d846c60c3aba302516ad0cb464a9f61ffaf4b5194f44f128f2a8d12a4f12b1d1d155496fcc629aa2a35a311d11983c590b2a47b57a1fff243af85ca8b0b0e967ce5fe7a28456f8f8a4be00b00493abb640d17c808c27fdf3af1a20238afce053595b9da6d733109b9c8076cb488f7f58521d39afe2ee50604a88318ca43dff1d5758eeb14c6ef004a4b675777d669a48b780d4ec9a657167d409d00d36e12edd6afe9810e0fdad518c4adfcbc79246828aef0ce3dc6c8c04a137555ff9ba701e3b69514c30312c14aa4bc5324927fab8041cedc71800fc59092a1655ecd8498713f6378b0638b97c3f9ffdf95d4d9e0c043b6397ce56482b3d6bdf6f048af7a978361ab566bc8ad3323b255ddd7c689bcc0a5005e94dca7406c6f5dbdcd2f7b54760f2286dc05e88a17d878d4318e49c4b253bea679c606b98389204ded649a9bd8b8719b00b9c62ab7a9a9336d34082f8024e4dbc1f0e213d51085e6f8f6a61db258de2d3c81aea5ab1478cc0e7273fc35d0ad81e7b33814531207cdf5c2aed92097008ab18ded4c54a8272502664c527b64d6522d4086009cebd8364a6587faedec011447257d6503dd382ad51bdad7376212a33707ce8e7713c1ee57995cf8909d5ff4e0d423e7f33c86f6c8478386051e8ef13cdf8944b590df81196a00eb1ddc3dcde0e71d0d571af8d679e7febe9619d73ba5270625ca57a552fdac4d86fe606e6d55ca74b0e9147f8b73d6782be036d14dfbd4a14003ac9506e4bdb8b4e10313880a54da908ce64d15c5d06ffbf3efa89a310f18a5ff6efb1d8a34c4b45a553a4b79fc098d5c93ecd7a153beeba93edeced9e566bdb2fa0951ef8763bc3f3c78c3d6dde71722d596def26f0510578006745ec247ae192ea5454c0278bdad6f2f1b170345a8cbc2a601920db6da6e87bf81eed2de96fc7d4b432ee08823425b5d525a2f531f42edb454df4c5702c3b99c13e962818002788c7d78022af70238509ee0d2a7b4f1b05937672200259f21c512d07b94090b2aac8a74d69d68ca73a81ed4ee7a7e5bbbbd44b9afa82d122f2373d38e059b0acb99fc1df2442222eb7b94eb80c18d36b63cc6b0aa33ca3a7bb4cecd2054fe486ddcd290cf15a2c567ea285850ff416348b36ffebeafa63b84a3c08779c341cc470cb8b5b8bf8929300f786b3ee839de2c690d55f1660e30d1ff576182839c6ae66e30c9097d41a471da0398ce0dde7c70f19025c0a158a9c99636b8eaaea71bc5c8e7c8988e73084b93a8e54aa82cedc3863260d54a71b27a6d95a5e9c03dcd4ccae5abb1b2b1c6417adafc7b56630fc0f2a3086efc7288706cbb04748caec40f68a045fe8c154cdb85200f20b3165047859ee333cba61dd7ecfc4189791d774c8c808f1cf7d70be91ff14f903f1f71ceaa510b7ae72afeec561c3159013732e63c09932ac37ab430668d5cb2854f4b02039a98fd08f7d2dd927df435f70e758e690462bd9a593d55e6024d031ea4611fd9894e021b482bb504ec725e71afaab65b275a6f2c65b9d151bc3f62c8c29ed42c4cd6c1abdacfb1819dc45638e721ef887018dad4fe83f274305f38201dde67a16adcbe3daf076bc1853944560eb41e060916dea784fac3a3d253b1fd29bfe43edabe9c967ee368244454b94fd7211e4b4cbb6eaeeca87b1bc9cfa3df9d3620e0525b62eb0659fd6a981a2cecc3a7a590cb1a2656f3307746ef6220763de50ef85ac5e3c444044c2a46ba6670c4260fcaaae5e8dbbfa0409989dc234bb92259c83464492b61e2c927f3ae7c569233043bba1f6e4907e2f14a2cacaffc1e118226f0111beba9e72ee2e07ae9650b67605378b8da4d5819eed7bade09ad0fd60de6f65dc641f7ff31b06fbd2c69bd808c3717eb6c258a7c1198785a9a67d6ece67b5c3a3936b95018fd4290c6e973c2edcf50ea41b0c9c87750e0737c4c62ca0c07fa163f450c3baf038ec7b27f14be00ed57a2f6d0786632be7d7e69802ea79c026ed096d3ea0f146075487fd2259befd0a902c37dc02980a59407a52a07544439cb3b75e3448cd36f78813fd1576f62a1c8a2a88b0abbed47a0bb4147a1ad20fbe7976454a22e2319a7c0becf7d73f41be4281940b95ff585800425d9bb4fd57b333be81674ca5d32317800e6cef6fd5f9c4176c46007877c7aa7b68a562ba045e5c912dc3023690cebf452d94322852738e313d3394df2695f87fbf54dabc5cef4fbe24c04885f32ceb3073042347c9bf3f40322cfe3fdf0d77ac2526cbd9c7f280242ed2d3e4ee91be17d8ebb2f207e7337426fdbc0d3aa3a9ab5a66ed7cc8de15700c2f9d1c0e4a946fc82e8a121bcb5260430e153191437918fd86818be65ae4f695f5f07dd8ea2ebcc5994bcf9fcf79ec35cfbaa3c57edc83e5926b175d6f339113ba482b8af376e94c5eef8aff7fd435f7fc29fb60e34a33ba98763c6557a5bbd98c7971f9d9eebb30134bd3f6c68bc563035329a1c75ea5fd5d8532f3d17971b132726aafa8e1232d4d99ab6162d2776fb802a927fe60268065eeac0bc15ec4a745b3148d65fb3e8170659a3f2b87bea24cdeea4e1a39e7391738501fd7d3b17f7ac878db21ef7c487f7449b4211843d91729e59935f19dbea5da7fb005dd069f8d3d37c91ff29eb91e6c16650de5eef90f9512d04fe4b2fcb5b7769dad8d569eb51a18cca351943ef2c09dac9dc6772176c98bf50603166616cc777c45c414ca63cc708afada8573fb77df95fdb929f9f9e3af75fa1f10c3792210fce1912d88e030e551f7f91f312a7ecbe596d7323d10ef18c63321938692ecadd94e837281eeb3ba328d6b4cda3bec5603cb828922f2c4e92cd1fb6b4063473af0184d97f0513e4b4252e23e69cc332f01bed3f8a888fb1e67e3069dc93b35085ba0af865175db4903d1fb99f712384f6df2ad3dc7a0b87773a30623d48783de0216ed2456730a22c3e32979e15cb91e6b1b5ea79540efefe99abd27c13e0c902e801f714cdcc2aa90c7a958080e8482b1483b0029b05598477d4ee2cc47de77548e6aacec8dd109b91a2fd7c21395b3ba09cce102b24d9bfd6ba344f593d407056787319e909e7e8a9755c36f46a51a9130550739cce318dfce8ec2ec09a786c8a3a9996c5e7c08db919c49cee7b3ceecfd09744135a70ed56a046cfee75d479e83e0898a7a1892746f0d6d12efa672e08bee6ce64d87b8ee6bf8f2c68c66e7319ab7f2b7d72bb6bd4397b8a49005d0f93e1432c00f5cd628f05e9564116b5c85ed5edd7ed4b784c87b5654775f98c63e319229e52abd41cd7f90bec9bebbb7f4268fe1ace55e7b164d5ef5f73122b41e78abd901dafc1d068f96bd073cbb14e766acf235252188708823917f7496d0957e472b58a538c7f40773feb90073c1213702d3cf2be3aa177a8f244b0aa657553c81499a77f2d92df31d0137ef8b6351527eaf0e299427b560a8d4226a9bed18f3de2c88bb6011baadb2ff7d27d1df779866e230875900536385409f2a5f271307071a27fef0a284ba1385bfdf2b8ee235aba570fc66f1b2ddc2f996335ada3557e8d04f8945c062143e40ecaa6595a02d920ad70852a49ccf801dc5db17957c46eddde2abe765a10c6f60fd0ac0d05f05ea5c1a29fd0eed613839b12f15c11e17b2f80d01cedf03e3b7a35638f190df3047c7e377135e3546ffb4dda9e6d6fd727dbdc8876d4edfaf7b6d987b5d820d1ae5cf49496b11e91f8bcc6021ee3761a94bb545e67660eef5c4a04ebc4c2c149749641058705b44cb6931fdabd4a7c29d59627a657d3406757bd586f6dc954b834640c14688d7bd7686e21176b35bd01a0eabdce3c738b67427b6ce71f5e36a5d708a16614c534c77fc9a74cba3fad3e60286bb80fcb7b0cd948f37093bc33cd025eab029ee7d2324b9c0756abb6dbb044cd66f8a9479f8f5f13ff089c2fff0f5eee0a323eabd92fe51ec9be25ec4fa2d90115e777cfd2d850578111cdf55b2f835c725dc854a084b75de0cf5566d5c5b70f60010323b08f777b74143c380adc6b20fcbf7b5a4975de8e7d8182b39ac2eea36c2dce7f41f4330d3702a6cf732806375962fa040a4f25798448f3d8a3c6bc1c3271b9312f61de102f625746a0d5ef9fae4db65c1b6a1fe0131b1c8a5d7080706a12d6f1b1a1a9d05c6e471dccb8bc49e473f7a7d5fd4fa4362a46767d3e22d1f3ff81abb91f7fde7c8cf3c78ae6ecd360b297b487681f5e400856a756f95f716e82739d629dbde29cbf3e030066344b2a5069c2b62d5ec651e0842e9fcabd93be392be30693167a14931135c663975025adce5a8d902eba161b4ea745070ea0f7739de3d262e4c47c9aa9abb66845bb40f84bff0eebe6c56a1f7380695067846f3fee5b6265b1f8a803760fc196fca7c80c097e4b206f5701e92b5a5cf4f088dd595aca0485d759de95193cb2d8e2b0174ab7496f5b5679a59268cca75437bb53f295b9a8576c3b94f43fe28453484c4ab53ef6b7b8817a7752c51b40ad0e6a924bca3640f52516d1be856de98884fb3423fc76b0e09a32a67cb5776e363b8179ff7b18b4cd9b2eeeae0fba8ffc7db3393e3abc9c3a205f400de5aee9e9244072522815fe290147f82f5920fc044cb8ba83ac6a5b70cd97497f77bfe2ad1cb21c0d592cb6e0c31b2b3efae41e9ae0ff54ea2565c6a354d2a6ffd27b440c31b10a064b2b09a4a7376973828d5ff8659cabe9865b820930c192613efa98ea44275238ff9e4d6412bd379bbb22fef3559b149de67e1e368929ba510f3759d708ef8f3e5ba890aed6a61e831b0b64d49560ea0bc56d9c523d5c2c5db6d2b0dcb409c50df0bb814d3c0467731e308834cea6c894bde75086e819e55363bb249116169d80a72014059984d2a4b4f19da8858196cbea2daf3caa112d6abb8baa2902a335609212274d4b907645a255fa51c888e87b414b2ff5d55f0762c73431d987e46dcb225080e7b64d3c0a7e54cd618a12c7e4980aa8394a0f63a7b9a440320a875cc99cfefff0a90a210fc33efc3b16fde5b5c006418e68bdbc78c9d946c18b17a70201065367a26a75352bd817d625d62a6ad7234e65706557e3967e19256f7bd0c3f81a6f3b233566130285c8dcb1a784662be71c29fcefccd520a3f81da2b78e30aebdf42cad6c9347f49db4434950ddec83f41df7255a1b48c85fa22803441f019fcfac86bb72642e3d84215292a6ee39ffcb384b58de1e06b2cac7bc2af89084370df25072d27ccabfc0c100f2a8319d32c07e384060d0b34d1c71606e9fde16a9151ec5aacc71029339448cd8e28f0778f588bfc020130c4a6c103d76b7fb227563f39609d4898a070c76ed567e9b20350441f166eeb76096d0f086b8c0c9bb30ee191edd7b7ff400d404509827fae07d7d3c79578ad6d599c725dbd8584ec8f853dcf4eb4f95f70930bfc73c6b4e746a43051c334785129b7dfe080a4b2b91afc88268498c2cfc76ba5cd32a04ef913a58316e37775de75f36454e3606857df3cf8b74f5a8662de4951fe4e04901c6354a4ff5aa364a02a7aded3f470c6e6a05f158843882a95d2317c81945b1ba1e465e0b9aab88bd210175fc9aa90e9902c5ecc27f4435ed4a24c39d1883506c06aa5d2ed71e54a95b8138067f987311f448ef10794035c59be1b7aa10fe219afc24c79094c04fae743a4a9c73ad1b0a8cbd9446ad49aa22f99431f21d586c6ca4dad5e280883bd1e4366a62b21f37e2a42d3419d53837ca684074c7ab1b83c1a47ba6e886ce3ba5d953f310fa6376e6d08579e70d24f59998fb92708b76ec3bcc3128cbbf7246ac340a06b984ed57f789582b529ac153da2d61b8470f822e58ec238a1d555a95ccfd8e5be5950858cedf188759f78c5f224b4f261b49265a581a033af366e029783cf87746df08f07c15b0cd8dc5e6973fcbcdaf7f647382cbc8a3d82d2cc9f89ff877532f44eb07659e6d6d7353e57fecb49da19699c12c489892aa4c343572cf930864ee1a37da4d7d18bdcdef573d693a5bef82bba52ea6e07f46b88227ea0ce7e5880c3bb2245a5743ebd0541ef457395fa30b53124ca08dfc455fbc0add1e261f2e781a151b20c49871d9ae8f0227e00c61123dc8f2805063c9595eda40e9d6c0ff26ad221f14bf52fc63a620c253c7ee24ef0cc3013f1342313c099fab1ce99265d71da8b8639f810f74070595fac36a1fdf72839b9f15edab30700f06dd5e9dc59cafc97283639d0cf12bb8222998b71e907b31c19ee6af314b400c07a447979f07ebf2baafd0e1d3d6c7547096d869e0fc1858664ade6f08075f60a5b91caf398da5110a38b98d402f727b082618fbc09ef4317ca122aff27f87108d821c534352d29925c7ff41228d3d44fc324be71be7a714c1b1b5432d5e203ab383fb37b5e9433561a95c098e1a44f22daf3c03faf72899a17d89ebf47d8774898ebbb3beb5cd45e33e46673e9c84a9ce95276ee93d6d8c85f147519b0424e67e8ae27a11ccd5cacf01227f98d2a54c8fa7bb71ca3ea2ba7eb0907b559a197c7755008207a17d2088ca62910152302fad599b8fe1ac45bf77e9b84ffd0f03f27fb03ee83fe618e657af7e534043a7d134c44c54d64b546ff4aa9773ad3834397761efb8a5b0cc1f736f4760be44c15343424348bebaec5b70430bcaf49e70392c0a84950c8a27f28cd9b4e17db9dd86301f0507c3c325a8d93d5e7e35b4a0835619b31e2e6fbb680c38a876a00aff4e744951743c6c98c8eab6d5557984e07b56cbb24d82f3e8e01e231483b27e8bb08f1f3054eac19aecea9601bc0606bf6ce08845972baa517713555595957601c27dcf07488908afa480c321b7aac83f814e8cbd82ef05afa8f3996eb1bd5a047d7c4e030bd86be4d8f2a1b244a1c45fb6a5b307ec504fad776f5caca7d380f9c380a1209d4162958697493e6a34cdf2fe46836d87ddca6d46d2d1120da1f9f0f843fd988a32335c6f40a2d9a56caeb542c099f6bffad560205a4b51680932d564d4fc91e8cd1b900fda1d1a67e5c83bcd9e404d1fa8a4c03a724e418a104364e68d6261f0f3a20bd20b2f38f5e6a1ab20fcc403b299b3721b72a40aed7f76ba8e6dea8026ba5278b9a93fc306d4a083c3a0fa432b747a3ad1eff4d86d508d4de215b855d15b570735619680a28a2e543c11ac95aaf58da89cad6eff4f66e516dc483ed309ec747e16a39edd3ffba67e60317516318c233c3f2fc5f8d72d22ef4d9e3d4abfa6cb3b54f9cf65b092cd2f6923f2382e7b736134eb23a0c86668b1caffa3dd32366c21cf08249e8b895639c0f9bfe945645a386e62779b5fefea005ed79c97d169d2c4ae4ee30f4848cb63f530e22f70cc8a90c08c4faf05468c23c5641304ec6eb43c547533b8ac784978912864c14f9976d3fab8b56be2d73fdf8b4ffddaf7313fd20131696791f11ef2f902ae461588eb85ab1a9fcfc7de50e6eb77d8ac2f605c73e263570a9cb2c39bd8aa585d7e6b31acbe817b121b45dbf87404b5746a2b7028f9e0b0a17e31fdd590fd63929b6401e81a82f82efbc487657b90158bacdeb083683f78f2f56e6dc4711aec0721920e59931ae7e0deda7ce8da5dee0e38691ee8d9aa461c8148c7b2aaf5812cdc4622a4d997a5e6e01a84026a7a2264de1bfba5f325effe6067d11fd74d6c023e1bf507544169f655e945cb933ea317aba41952324806d340a48906bdb91d00e83df5df73ac039bbd681e6a1d1d63304da72d9a3574e4075991dc4f5ab796643e7fb0189a553d46a89c00a770926560d3d812fa3722c9b6c2ca973c292c0b76e6560728a167fd4327b3153b4f6a1bb1a3e19055e4f3be603ffe591752436824f77bd29ff0ee863458f3d044e2e50b56e26925c39c02715b7dc2cb7f078617d5a0d457b2f8de9f2a4a36c83645eada028c3aadc382773419580ca46497bdf44c0fa39a47f951220a8d4ae72fead5e6003e3cb79a1b10fe3c20f3fdc940056863a36fb3eaaa786cb990da4bf2bf634730f92dc124309e95f1f1400cf63f562d3f1a47d6648236f47eab105e96124a55ce8cfe6121237c2942ac7f73e37efc321c2ddfe2e3feb466500fea417d00d5b3ed76e7c5589f27fc68150578897cb5bd0cae856b904cd6f5704ea19f2c4dbcacd29630edb554128fffc3051de8629d0a4853d929d25336cfb2f334ef021161cfcb8577f40b74ee71b96ce08ebebe79971a4a5fe36f48a87d70d40962042a002973fbb9153f9f35e46e7702d5cfe49cfa8ba15a816de1f532fa126a42d630125108e94d2c037668657ea6a1b90c6a1c52e76fb23b703c2351216bd2cc92bb888468aaafb4ed48a23a313b906d1c66ee0e4aff22335021fd4e097554b0ceb8bb41eee65e70ba1fd34c1e760f9cf1dcfb4a4d66e2911ed5d10d716877ce23606457a92f99e0f66a8966a055a331e2976f1c89f5574aade59582787432398302f5bd6e2385ef51bf9c796e70fe8d21fb64ec626a7f38fc8b62968d399413e7bbcf32bdfef6b33d46714bfde7079689af4539c0955e63e5e5d2fdcc4366f5ed78a182e11922b570933755d255e7932dd8edd6c2481e0a8317a79cb7ec0754303fa83dfcc4a678c2ce3a035ac8747917754fe601ab036b4104f6f242178de8506b3ab0113505599cd450d5b762be5dfd2585f6121261ee10bbdbd2488cc1909528279ff3f0d18d7250a85428599391d3547562051d094a78f7f8dc562faf304dea81f9663093be37b5d0018d4d952469fc633cec3fce3f75f0687ddddf7223ecc4d9b29b97a9328ef96bb07e319d499736a24e60765767a07fa7ad8d0253c04abd943f4e4c7c99e2247cb32d442edd2f6518dd09508eb18da97db6ad0955e8545e0923c993392963698f9aeb1f812d84791fbec4da22eb3e479c7d2cf4e737b5686573c0e58ba07a4d3b9f87ffacef300089653e9a68e4578a29c8850ff80204413c26100ae7f95f3c2c0584675bc6a9ac70758bc22097f580e3c72de81c80a7cc0ad098e60cd183c74416157edf9d0914d2daa2c64e60857e788ae26e489d6c0799d9e573dd5adae444af6873201fe5bb8646c5a6078e354368deb82c05bb2935f8db26c38506326b821e34aeed817c453e6cef6827dbf89c1d12c2e9a3a8939d8732cdc17695cdb64ea568c4685bad00e6a5163d1fb36f46e00be93af50e96ede19d96c7ef79cc60568e523eaf051733ed7fe859460c77c36fee1785d57ca25e7439da6bd588d87556874512c463b6b2beec437182bb86ed440e2b5ca0d1797150b354b241dbb17b76d95abad4a422b0f332ad6fda31ea8d4974b1bfa650cbafc526e40d5df74f08bebdeda14b74f9d3c36bc474ac13fb9a8c40295343ec4056d7981614f84cb5b713f4b5abc7bddb9b401324bafa6a44d8787ccf64bac1eb1575f0767980145cb41b592b64d043924cba3032740499d6b285a5a8786fb59e93635ba67c8b8f242c8537d0d9cc3369dc2bb834d3c5643a3646686151bde0be0ddaa2814703d985ddd761530ab15ace456a3d909aabb48dd87554307786179d536043c4049a521e06a82b9716eb28a4c943b2665e67a46ebe0ffb81d2df5333f8cd58adcbbe07cb35ee8ca739058cca257ca68bd34c4488d729d4d3ca313d74257f3ada5be9af527df90206e23cefa1ab05c93ab4c144833fed3b82777155208283e10c6f1e6d3c07052a570617745467d8ee91052bd65f8be2629b66f6663923b0b0b1d3111a43c46d18214bb88b2e286aaa3889abb8a039f14559e2bf0a8ed5fe66cd794eaa037c82cddbb8d337d36917c576933d93e8ea0e102baebb4bb6919123b0257e54694a7eab73e377a0f7600344221570d0bb4963d5b2737586e552615377ca62f5238660d1f30b23ae64a588f01bdab52668aa2e0e89777bb6d3ba63d4056858d03f88c5d192e60c78ebf9533a1158475c1f5e971a51610d52c44f6b15bc030b4fccdc320077ecbaec50a0aa471a82ab93f8dfd1634cc68d853f519d54683fe0dbe9ef3b76043a610581c495431de2251166c586064f555382fe170d8514409c99315a4e3875ca43b6ce32e06d69f296bc1942eb5357c587ad274d501264c3650e49dacecfc759367778636e6ade4053b379f436cc9682cb833f0fb75d794838132c032bde85b1f0ae483f6d3d1da28c140ddbabd7c28976a4e4ab9ea0bb6d3af3cc4bc278b5d78a9e1541ba82fe5ab4af18122bc4d4848ba5a1e10926364c4a6d0460bf1e2e1044752e7400e84090474648f4c2a37d7cba2ce213fc8d37b5a83dad30060013892d6300190412017e07317334859c9eeaf50da6cc5cb4d5531b029eee9ecbb64104ed15ab5810221abd57f635bc7a4faab9adf0a1ca1cdb83878de1882035e436bd4dc300bede11cf9c73f32929a070619868175a4281b3901267b03603b0d258fabeca9a7e6ceb770b73099ed2939dfd0a1c3540902c9ac189717e92d7550358a3afe4eec5a18eb83966256d560d798cc6c15202e0bbd062af62a46c8da12f1258a5065824009f706a48395e3f22fffd404a5786aa4e21e35f1972edbd50b73a3f4f4830a2726100ef640f1fb8acaa4e7e2d2399d75597fad1291d569f782651ba960617a978e124938dca0c98081d743aaba47ebbda41112adab58c4bb94c142be34ca879258d3eef840d05e43a5ce714b874025173f2a491b48ad66ef41727b043404dc8500a880582c8ac780aa59aaf090c035553401166c614d2142658aafa8d0cc849060d47d082b3ac1dab2940295d4e951f427b0660a971f0d29164f3e9a69a0f0c59e888ef352be25c389a2594f4f261d9899e9735831d98f90f7c6c14a8af42b3e64c80d085f14809bc4368480f68f1614f1781ce329655c922837669f2d3424fe7d5a1ab5ac88890fe999fa65ec1939e89fc84f490e32fbbf26677d99b275144ccd9b52d1af3f3b7916784fdab320284e93a2f547d90cd017a74d0b1ad70188f6593b236f4a320a6195f54573732cf52cb27570405091cbef9ac601c86cd313432e744a1f380a1e121415542a83282952079cf046ee4200f848468462a9b9047b1e04d7c252f3150de672cd0979fffe387032dbcdf9eccf674df1cf00b68f2b95049035eaa13c82f96d3488791e8738b390a3ea0e841b07d8b350aad9a0267396345b6d01bd8823f9640ee9ef6cc434aa55ccf9cd5dd48d033ee3216d3839a2cfd18c6e5fbff500536146e070ba65cb83cc3d0b5fde8730abdc18d64768a70198254b4868bed17cf727baf11c23ec5971309150fdab0636ba96cb44552a368b85a64933a68c5761857473decc99106331544b26c8488a442bdac1dbbd70af0d29c870a886622be3c0e6557c4bd57a9b2eb34e27a25aadde95be0ecda004b94e99786f9cc418d687b14fc6b5d6b02572aba529a084139e770ff238e396ac99f8ad477a6c798faacedbbc46c5d0110bdb8f9dcfc5f40772f7a3d52a41c14e121b19b638754a15d4d38d7fec13cb43786d8a9a86992f4da5287a808152ed3561135ebe03abddfa03fa1699ebb2323f81466b41e15e11c20c1c08dd0b7229a3484c8f942e0cc059540c315681f861e759b2dea8b66f6494e75e2305544986c50d6436c162450c808b97d1a03219b91f61ff85255b49f57403813b4d074cdc1f0865969800ad265fe3243fae199aec7039dbe61a3547d87e9c4cffabdd83eb210f2ef07a261d27b7a3a5ba9c82d3d0fd4972351f809397b5a4918db895f979d796ea63e197dee40f24f9bbb4ed832b63dd8d4a6bc49376178ea86765bf160d5fc6da5f8562c1b58f01302d4bb3f522512ef77f6a58d94e8bbc2ca69ffc1e83e705f84d540474be44f1d8f309ed3a46fded70094135ae1eab2e7da0d8652df4e704e82cf4ed72eea220d1c7b0f1d4d6aa94b4b7ef7383355c707aba6c091ecdc1930d4dfacdadf70374fdae9f127510ba0e564384e9653908be365ffe39cef6915af290c14fa4587e62d13fcf521e3fb04d3da01064b4e2cac88426df55860f203d55b402453b08426cd5891ecc8bdefee98fed8091f6415989a1540b9f5d34eaa84490d0cc4bc8971bc933ce3ff5cba1406b8c3f7a7a93f83bea3ed6f66d2a2e6ab79a530a7517f7f912788d91224f7a79c03de25f4ff1c89f91d68630632580e2dc6a3c3c0fd49e6c8249eaa371a5c157eeed12dd089fa0027983ce0cccb66d30e4a7d7eae9d68d0d8841c39a27f02a66b598fd97a44339009179b884b2a50178c78e13579234ed3f489ae5b6f3ded8ea967c1ba83c49a283304e7c4ee22320214646ebcd7e95f442cb3817ad3af3957fa7ada2f96dd6ed09f2118b96524d90951c978c273df21dc2f9cce22e33e6b3f3d49bed412474849f48bfc8633252ba1d4a087e00b3bd2c16253c5a146567cd7430be585eaaaeb62807d76c52917faeae82ce5b87cefc22edb2b6b74a0cbdefb0569758cabbe48b996018dbb87226404d36aa79c69a07079a0cc4a969f3abc11d1eec169a15790d476b58ed1d170fb1b0df6c33f70eb68ec1a287fd4b87db466d060b096ffc2b75e7fefac8ffba6d1486c505437805f422ff7968360ca61d1c1b89a9a7cfc077197e35f55fe085affa4649640e20c920ca38c7fb1947fba79c22571e73b0c127109a1b38338ca4bd41dd457b74e32049e9350b926524201b9c535e0fd893ac31ca635b9e37a9f0d921ffc9e7e0106866d909ba8867405606a1c6231f2e1a74150ed6504476467922c67544e1f9ffdff68958db680c246c1bbeefe2e355a82d9490db8886c3a1ea0b149f305d9f632ad3ab40be4d7e8966b314b083f85c4bc9598a6196b304990f33818b2252a2a63929f4e2fe38813efb2ffb99b031639e5e46a96091718ef628a4bddc3b61d3bd1c27af734a42cbfd888e1136e73150a1e3ae4acc2c9e36eafd3f92718ffaadb28f36d982fef4fd856c5935afb782684227d267ae678c79823c4109c72f62a4abe99dd3c79f29ca194f6105e4bc962397abf726567818534c11ad0d0727c9b7b4c840f271364f749cfe29cf5edcc8fe923c2b22241fcec88ce54c26de6735c59260e49e695a85b3a7fc06ff75c15656474836171bdea1862e7d23e8027be2e877d7aa260cb69eaf8d514a4aa41a91125c9c172d11e1f578f54f741950ebf63e564fe01ac807559fb84076e4f6087466b8d6e50ff1aaa42c7a1b9dcd375e4539b922f4ddbcabc136b8cdb57a03b0eb7af6894939655c6b359ee1853e6efb104de95ab89259079a17f33722ed69a7de3ab42c34dcda1cd80438be4b4157b7f76aff8ce0fde8aa5c8e382240b04dd04c508cdba167126ca6c472359a8a10561d49aca99479d43a6972e955aa81a5a222b8e3fe2d8e6a2fe7165dc5e9fe85469ea8c751d851f2d489d71e2c598146190499fc1917bde4f3fd0b1fde754e9b6963e54b14c2fe998bcddf6a4494aa4578236bfcd91e3da804f5723ffc256e9babfab8a8bf6098bd109dbff1c71b38f16e8e3b281426fca1a089cdbe0f035797b0ae50710e50bf4946f0fcb6cf7e0e8d5119263f76fa59301f895cdf272d16f625aa227ba5cd7789e7aaa70997ed642a472f7f35d8b96c77df82efa4570476319f287d639dcae7d4e1f973a13eb7ab9c8d791b459c9ff0467c060c7546e1facb7b7b9e39624ecd7417ff2cc05e87949b48e454c06f7c333dba1b669922f7e0a44bb87be81efec93fda3d0e6ddd51a96798b81343f39535ab696c7903174e22157a8d0327f61e1da52c6d80c67af50341e4761a1b3f104f15f54ff3690e4e037396005a0f53bdb95b3371a065eb733c345ac38965f4c71189af19744a33c8b95a9cb9e877ed3c52f2a08c728178ce244e76e640dc91c1d3fee2a7f23d920753bd1961ddcd5082b8b1fe1a465449bc3c04f5c61ffb64e235da2fc0d39a2a8ba9e098d3568e02260e6675ae053b1886e2b289587b21fbf7f6f32c5e4d085f306a49d91e6a2563644ae1a7573a0ace3277c2c1a4c50acc99aa58ebc56927cfc7f1c5464c5e0f5df3b47a0899f6e3602f74d53a561197347c07bfa35c46d7ecc7cef14bde4423c505ea3d53e3d290ced952552692ae2ba5a5ed85fbeff514341af446c12994bce1350586eaf2f716ea32e7d9b65f6c57164bf0caf8891a1ddc534388fad3c145bb1167a23788eaadaa40de7f5fef3582f59f10c4e917406b9b84252e13bcde617eebe907f769485b17d59733a564249296c0f4f133c2b54e80fe5650f0e244c413578f0e6cca34f076a74cc912c436ef4e0630dc54cef04073d63e0991f2ab5541813ecb80e27169d3aa490b8c1293f3623673928fea85069fe01e85547917a0d8a93e9afc7cd7566c687b7b47a07c37ac1e99e39879ce4240ae4583db772b35ac580dd5f20f19322b63bcdc597e9b2065743942c780108262ba62d2f3ebef4d7ef5f34c5f5529421e74df11c1d16fece6f65da3c7e463ef9495eccabf882237c7f7c3725673ff444b026035bc22171f592ad1e1b3468d4bc9042ec832ae4ebc1633f135b8ef29f321fdf58ad55b4214006e6e423078f8040f2fff5b5900762e9b57343979807c8cab31d46735095f18a046e4df4f515b5a16c86cc8e789b501b57aad68de0c15baec5e4b79d35066c36cb5245fcbdffdbe8510e10bdedb0315a0d46f90535a2c7c736e35c5ed5a8a17cd4325b26088edeafa9ed53382f97257c8683e5e5fc65b8810463c1b96b949da87b508046979fb94e599cc17bd37ed858791a2408f320fcf4ab01d245c7a0a626f34cbbc2cff1a3d7e41581899c6c8b7fbaf8458c3a1d30856e8986b33c84d1a5e8e520d194254221edbd517dff04a60508ad3a69c63d6092e4e2519d905d4f1356b6b8c3201e73705cacdd90e7a1c60f3d4408e3f371ef137352763fea7314989959871ba0ef3cdd6e6de6f5f1c207febfe4186bc5734e1a91f9b74722671c0e6e2ab97ed5c5202b4dfdb790ef5b554e9a2f4d3e33b44102d2868bfa6d9c05ff34a75af59d96b9fe929abd07807de6fbc80106a7ca5a6f50fef7ba2299118dd2cd672ab5ac00bc40abfd8cf727c10efb2b76693248bc45a9bc39b7dd48fb2ca98be27ae9f0a87d7b55df7b651a0a96dde93b31b9b8089119abcc8654fa1bd077bf1fabffa5b32bb7cb1d0569594a673b69fac456a27ac0c3c47048069e3fe56815049d8ec33460b098cd2a5705a44c049b4602c1698efad5e74798d68e415c3267224bf974f84e60e2641590dd25c71b0264d9026ef144dd0c3740b0a6d0013c0c3c0c3c0c3c0cbcc6f0f7e66e6d6649482949a299b0e0cbb097049629a594644a5eefffb3fd57e340cd7e676d6dcde881ff0cf30ca70c663f0dfd0a343c919436978e97ff62d68bb911343a9120e3bde8855b0d3a6947d67247185fa820687022c95dcebab2ac9b388b0282c626926406b75423f33aac9a480e1f5e7eca523b359d8944bbbe4a173ffe69aec444b269461ff1f9f3f0e5901f9e2e9120d63e55ca7639bc7b236bc5c618c30712e221d8320ed0b044527ef71873ff694ce156225143e4cb7992ab795b1a9448ca73ae7e6a3fb4f26564cd0cc8901f3ec2481e84043c78f41a684ca25319faa269c47b40da0e0734249138f25da5b366542b9d051a91d0eb3ecee406d7533b0d1289e16e4bbeedc39a5d5eec28c10e2f767060c81923033c78fcf02143ce18cf834719341e91203e6b3c99621a8e4890f994a7bab47a182b824623122ea83beda672d023e21e7634189120a3626a693e5c1891590f532ba3ec8c1034169114dbf9f2a5ec8511cb0205df40431149a14608a9fa79233b968c614611682422f943736bac2e866e1e110917b469d6d497b6367f88a4b5d3b3b7d1d2524d86485026b498d65688c4ed8d770f623608552244e2a68af9afcb2fba6910c91636e7cdeb1e5c7490209274fd87509bcb2a320722f9e7ef92b9af29d10191183cbc57badacce9db3f24efc9f1a0846b9ecb7e48ce18f47aaa9c731ef521d192a93042a4da858bf22141853cb9d6e173252ff79058eaf26bbe7f4c83500f4915d3438970fd7455c9436214cdb9d45bf8db1e0fc9c1c5d2cd8ffb8bd01d12d36586f2b218762bb343f286eb571279d52161f4a6247efe1fed5274480a968332519dae84eccc21c14f531c1dec5b1ed09043a2c9381b63a756309dd238248b4c3e3ee31b96991b593b0b72849c80070f0e020d38249eda58ecbbae20530a5b81c61b924d264f517683d27d7b1568b821f1e7324b665021c4c6db9078224a5d280d93c1563624e7177d496590bd7c7173028d3524654cea213f98f6f0e2faa0a186c40e334a59929bb917ae1468a421c12dfecd28cbdd9a311a9264a3e8da11179692679640e30c4959f971c77cc3db9366482e25839d900fcb90d8315f92172e8bcc54661268902159f46656c9cea43dfe48a03106affecd6643a7ed9866d01043b256e6badb6d50e1411a61484e67b2335f4e5155b291354e34c09014a2c94e098fa946c8740634be90d41b3fb749bb6e0795193884861712347436255df3ca6c7c64edc75d17126633fb2991f3153a32120acaa0c18564cff6df51e12e074873fea0b185a45051beaf8414a13c3fb29662a0a185c4d252df7342744d66481928e4c240230b09627f373ff7b9f499ab5848f4f8ae418dca5021fb91b5e3c1e3c040e30a09fa9b97fe37a48dec053f7c7019685821e1e2875b764f19660c39434850f4d0a842e259cf980c1d94d8ce70d9000d2ad0984292d8253d4afe8be6cf23ab0986183d4e40430a88788666cbd8e65ea94c2134a290b4fe59252f42c64d062e83648ce363481032121862f44034a090a027d6638b9c1373ffc8da0f204f48f80b1342e83855ab8c32820011624646aa41d1704292d0a363076defb19cb3051a4d4876f553a5ad9b47b948830949b13d67860c7bef234281c612126d65af36e93919c2574262770e6baacfe246e9494812baf74fff5f76ac1212122d9af65122ee72597884e4926139065fd50849f515849ed1b7f049a508896baa7995d7a33de6899034ff155d63ca68a7ba2124e9f2503e16bfabafd4031a424810dd59e46bd79cf02025d008024aa48bdc131f32da913533cae8918ae50f206378c18387ff0032463264a00104477c7e3a95d7cf4ae7434818f6041a3f48aa0ca1a9ab1e4b29df0749b5a22b56d566d7d11e24a7d99f85d549830749392a6c8a97cd4d511c59eb1e860822bb48121654b84f32c31f88e822c9c6c5b363c80f5d25ca45527cfd20474fec3de58cacc5c0bd8c1e3f7c64488fc34582a6889acd1633a60ba281ff38d30b81c82d926da3e6b93219645d1d59eb2104480f1a1c211d10b14562277dc22d77f47ca61a59334bd35a246777e55c1ccf7d0809031d20428ba4bb144b32c5a4dffdf1314c0e44669128671efcda4e8cac4916896e67dd1e47a5fc098dac0119d263a40c3382602c123e6ddc5032bfe56e0de487c122d1f3cfe92426a217ea91b51ec60b21437e244230a0af485277a9fccb2109af6c5d919cacc3f59ae893e28f334610b31d6168a00c0f445a91acfa79e22db57376bec719428694954b81082b92ab62ea8b73e72a92356553b57c325524c59c6affc2fed846cbc8da107f01ef084303ee4348186088d1830c915424f5a92d1d2e7e9e65b71be265941188a022492da58e9d8be990b31822a7b07a4f43c67b0a2173051153249c6ebb99a8a56c0c444a91541784e5b01747f6160622a4f0724c55efbf4df14f20320adc7b45caa7ca67e1913533815a1b4444919464eccd2974fc7f51f1e05104915074252c95de7461df110145824e6fc972da5cb79813f9449252f92674accc2065630a114f24973e69753afe06cbf0e081d6c3ea6c14229d482ca536c65530f30b9641c611724260031f64f818120404683dd00c14229c480edd7eb5a2540e61d15207914d24481bb70d62a4d7c93c1d443491a44b5ccb36c753bad42299488e15d964a3a4a85a1507114c246e8ce5379e83169dac4b24bde5136bf23a6d456c89045d1ff22a63eabaa966bb9548be207dfd6bd48da78a12099fb297e45f0ca7746e12c99b15e37b6cfc3a289941441289e1848c05e5c1e6ba8e44a27c0a4fd3659f9409412229c5a376c8b8a75d7acf0007f4114916638e6b5d7ad54fc711091eb6f3586c4f315976644d2920d288a472ef98dae182cca9674462d48d22449b7f98af44169118c307213bbfcfe80af26247816087173b0a8c1d5eeca80fecf062477db1c38b1d9507114524a9dfa84da5d444247a483dbdbf4b71d335b2a63bc2d080ae8121460f20228848fc9f2bf50c912b8b2d25440e917025f38ab69797577064cd87fc3817868821927743a9b61421456949c89d08440a9160c236985ad2ed255e337ebf102144f2da25bd4963efdcc88caca90744069198baac2efde7735db69b880822512e2f5b1479418a5aaf98916498f1a30c21e357201288e4ce5096cc4eac65108dacd1c07f98bde0fc381f506384082092fe63a8baa6af0ca2aa1142e40f892e1e436be98e7cd1bedc8e3034f00304250041185fecb0c01989078f4b3b84881f92ff7bbec2d9c92ecbaa20d287c49855a2f3e78e1744f89024b692eededc3f32d67b48b8d8d15295696d75480f279287e42d21478ab8a6209ab205113c2477f8df14544f7a588d8982c81d92d53c5cea33b1340d324241c40e4917725ea696527e50cbbe300602913a24598f5ad6a6d78a51a14382e9c91c434bb78d8c043c44e69090952145abce236bc57684f1c50e1e1cb83188c821c993bc4cd5cd1f2a07d5201287c48c31c4799e4def988643821af16aa6bdf486c42444f556ef67a6d3ba217153d76fc99315bad486e4fd6cdbd94f84d420b221f95be76cab838c96be35249ada6fbfcd5d21eb125143b2e76f112a689a14dbbe209286e43d95839f32ed6a258486c43caddaae9d352769e9899c21b9e37de7b31c2b998a8b9821316bc3f3ac88cc0cb2b1824819129496d16b6a1dbfb64286e414dd23c4f55eea519571867b600c091a4b07b558a75abe1643929fcecec12e655c8a5c4710094352386d3b61514d33c52c41040cc941ce78e6af5533a17d21e945878bd1be74ba3579214926d1f42946d4473f5d4838fd614e6eadd39c9a0b09ca3bc4b87a251d947a0bc9b639ecb8e5243b458b16922e6e0ccba42afdcb998504f9d050196f63180d0232e40707b090603a5ff3edfbc3c694107cb1438b895c21d1348e7fcc5d418a4a2141c40a093296f87855a743b4f2211cc01a82481550b554abd4f20aa3e12d2b6ee69c47f79a791506112a24862e9f91d9548c963485c4987274baf499e7d5238584afa4e6b9a3a6888847d6820011d2418008c1000f1e3cca080224c8f940904386481492845afacae6a523b434b2667684a101328008c940183c780cf132eab020028524b11baf430575eb9534b236a406cee38b1d617cb1e30cf7c00530801a7599c813124683cc172c468dfc2fe284a4b03f31231e6e377f9126249da5bc95e692d21f7a112624f6a825ade6e9d59a17594252860e7af45797eefb224a48caa3a3a2a7242eaafb22494812f2b3a794d29d17be081292d3648cb98d19262b2f7284a4d3a473a5ad3d6ff52246484ed194c996107f5abd481112d483c8aca46674ff2e4284844f7284250d625ee32e3284a474f17a2b7ba585dd458490145757c23d99ac64729120245b12a75ba49de80d721120248b8ffef8d147798b5ce407a66ffe7b0b12f141c2f5a65349454d6e3a223d48da94d9d47b8b1ad911e14192a6148b41ae6babecbb480ea6f53a3497461b5d1749b55b7a32093d9a44cf4572c93f935961cb34745c24f66fc6c85397317c7e8b049faba42b95874bcf6d91bc6964decc994fc8ce6b915cf98469c7bdef5a4e8bc4ed7ead386699d79f4582a9958c8d1c192b2e8b8451a1b39bad5ad98e4572503236fe08f9164ab048964db2bb67d36f4dfd8a24d9f0b77165d5fad3ae480c33a5e3bca626cd742b92cbd243668b49cfb43fcedf5faa60215545e2a9ec68aaa91cb22dee43481838c4462a1245b6490bb1a62b9d0e2a1246c814d54f9f8e41c8180c317afcb0718a246df982d0cf31e9bc2992d2935e47933f6bed8eac9522296d4aca375b8acb79ba0d5224ca9c8e1afd93faabcb2892948a18d978a23d992f8aa4d297f3ed7207153b038890216578ef85223975a87928cff31ead063ede8022b96d5375ce21f489444d252fa68dddc85a7ae22af3ce596384963a9118ddb348b320a33adc9c48cedd59bb63390539901e6b6c6ca2deca3799727a1817d8d044c28db060e14bf5648c8dac0529e3870f10d8c844df69377e8467cd31061329ef4eda2e7aa3c6236b9748ce94febd624c2a89e8466c58e2fa98ae44c531157f54893c684daf273b74654b362891203307e1afc1944ef54f224197ba7d3a5bafda5d128923547c839a7ad2a68e44f2ee6b9241a6886f918dac95c12cb00189c4b67cd9afa8192b9a47248878b3cd1ffdf9962392e4c650ef58a2d9616e44b2c9ce519b3994f68911c9317eda672a333f4b5944d297a8463f15b4fbc7ce5011091ac2b5db2ca66f8a2622d952fe9ca6b631aa644424e7a89bdf52fa5c4fac3b44c2ff854a775ee942bc91b53444f2abc595eba7531e2d85488ad7196233ab377f468884cd78413fe73237c34124a5649fe167838c234741248a857d545f4d667f0622b1b293c6a7526a1b8048f8701735717e6a7e21407af80f1f63fcf0811bb0f18704953fc5cd412f3f25cb59f14382c8d4b87f734a94b646d6bcb0d18784f1301564da9cbb6f980c1b7c48d27673f3e1c347c3de4392a9cce9d154a38e86fa001943ed0336f490ac1f3f7c4b4ff6b2e78c0336f290a027a34ea98f711a2a2fb0818704f394b5e42e9bb8cf38639861ccc78f13c444c0c61d92c3aabe6e1875cb1919f2a34cc0861d92f24533a9a229a71c2a6356213ec40766c0461d92525ecfca962b6f203f78f0d0830d3a24a7dd338f1d19c3726864d360630e49413d77bf3d97ac9acae4905ca637ef594f27bd66998a43e27886e93fb3f43a42704810f5a5d944eb865bfc8604f99c2a8c25936fbf0d37246cf21f3da1c36d4c4a23eb3e8484a118071b6d480ad7ec96c4b66ed02c1b927ac42e98e51591d790e4797c4cd5680c63393d7c240531a3470c800019634f043bbc30a633b0a186e4947e63e2efb55942316ca4c16ff7647153b05e9fd1909259793d7f9530bfe80d6c9ce14e42a8a0aa524c6a064696696dd752a2eb3f633300f0818d32247aa5b47c6b1feb37371b6448b44baef143e88d991f4362b64c221b762b6e6e6d88217184744fd661e51d0c43c2c5d992f15da752ae9b60030cc9a35383288d8d41f6e947c2041b5f484e16349c560fc2539d5e4838b9f1edb1b4b878b60b49e1c4fa5daed85f137221e1e5322b5fe5aedeec9460630b091b2b4ec520d4d3970a6b21f15232b74a49cba93d0bc9a16b34574c8879b260214193b44e0d252f566a0786183d02a0041b5748165d9a64a78fd571638eb06185c4f41ecc6414d3549bd440d8a882ea9fefc47929cb6d532171dc63bcadafb975680a899a69aac4a8f2d05f4921496f29cf974e7cd0452151cbb362b0132696e45048d23aea4efde5f34e7e422a9784b8f49adb2ae7041b4d480a8fa6dbd94ab996aa70b0c184a40fbdd934ca5d872b066708bac1c612f4cf5af952ea77aeac12da91bf4c4a26dd3309c6d4f1a2c8243d844791909cee633cdb5bfd4cd236d83802fa6b44f67826a56484b4dca9aca26347cfad088917d66ddbffe737e844d8536c31f1ffeacd8eac1912d81842d29f8ee371d172fe7a3f7c1c217d76676778d91d6c08212d551936fcf8090b0a02cae7e7c4a8ade867780c7af0a925c10610b67011d36c29c86c251555593f99d19f31341a380fecf06287f91828c821a34c089021c72cc2c60f92c285e747fbf5b41c3c4348182018418fe163c40b1e57b0e183e4fc94e1732aa17c34b541d8e84192de27ab52398c78311d2106860d1e2407738d5155e5f449518ffee1e36d64881916e81f3e32c083c71162357691bc7327566f69c4923cb236e4878f911e6e031f659829d4d04552d4dc9a4567ce3b27e591664ea8918b84dbdc5e59bd2f9f84b848d4dbb81f3c8d765dcd0a356e91e4d9359af3325b25750f333bd4b045721e55aae2458b91ae153ed4a845b2865ca7f3b16991bc26ef2b9c124f56a759246d52f374716cace7934592e68bcb95a64908bf4c146ac42239b3988c5d9a84909ac924d48045c2bd7c8a1f33cb65505f91b82932275b398b913222a1862b1253d6674fb2936ed1502b92be928fea7fd9f1fc6145f2a5e47d35ab19eef1d92a92927f2653396232545615492dd67bf22e6ddc13a622514345ec462d9cd60e151509d6c94f9c128d1befe3427047181a3845e25cc68cf6ccde77b6291235638ed1b4b01409b61746db74e86cfd4891704a76ea4c7165f36d5ef0e031249d2064588d5100f1e1c5036a8822143540d1801a9fe8e123c8026a78c2d30f203f7c04b180a71f401250a3130aa8c18932cef01830a0c62668e02388054e000206d4d0c40b5e70c278408d4c60a28c05d4b8c4016a58a207026a5462003528e1c300352641801a9210408d4894e13e0a5003123d7c0431408d47249ea99f4df1bc94991c91746dd6959b41c853bf11c91d6356d0e13a277a674492f0f0d0e77976eac28b48b0944fb78c6ac5265511499fd3e6a02a6e63ca2422c1defe7d6d946bca8848caac19e46e4a1e2269546f6ff29121924e583c912d4dd61f2c44f2be257f0b3fe252120991bc232bafe893315c89834810fb167117d399752888b552ad5ceee50291dce1e4a924d37eb56c80481ebb245ff152ca49e90f09f26a639acf9131ac7e48ca1c37768753e9999509428d3e24afbe099997f7b6e33143a8c187e40fdf20d3ba474d9b1ba1c61e12dfb654104a63b83a5f0fc939274bdafa275d2cce43525b859efed0af381a0f1e39a881876435f9cb9bba648607dd2129dffa9b0c66733947ed9020664c5fa6d6e6fbbd98371030906bd4214945e54d177f45f54cff4103203d800c492bb3400d3a24e81c95d3e6ec27e4fe3924dc58881d7fff1b4fcb21d176c3a7ab364b4da73824dac9af519f794be70c1c12d353dab07b2763dc242f1862f4f851e30dc916e446a5d1a5b2999d6ab821a94627ab74f7667b1b92f4a652796e37e64e3b1b92b2ad2fcd7b7eb1d45943e266ddab54322de98c5143924ee1d927a6e9dad9342477a8143dd6c8fb949435d0905c169ffbaba566d3c42ea8718664f7fdd254eb78a7773324754a95b62b64d2664a6548b4d92c1762f1744e860c494254cacbf1e1923c8d2141a54b3188ccce69db1443d2bcfca68bdaa520bf302489f6cffbdae0f2160343629e884d6eff49cbd2913d35be90343ac6b72b157fc7c291b51e638c71766448106fad410d2f24edd5c514722d3498a70bc936523fbb9e7ff04bb990a0f9738cc1dd3ad564a95b48da523b566e9e21e2d742721022438c0559fe199485a40ea53e650e7d42f48b85c4cc2d1dd90a5ba374850465c2bd9394199b8b1592daf407df68615464578504a157dd3b6c36bd7ba0a1061592c2767fe6d4761af78eacfdf07186b81085408d292486178d41880eda83facc2a50430a09426e7e93579d6452711412b32d5727bd2514b4d33a8dd538e19b213f4e3a26e0336a3c21a992a67879c3251bb58fac09015276778690213f3c831c325a50c309499fab25ea1d5a3b8c359a90a0db72b8a0d498fe52332149d8b505ed4926213b2f215944e78605dd62f59511a38612122df7d6e252daa6f49390ec7b6db131efa3490d12924545d5d8501f21e1d328bf249328fb0a1a21693658cc6c4a152129cdadc52c4a4de5132242e206d11bc53d262df31942c2cff679568eb695540889a2449875b8e4c1728290bca77c84341545c58882ec510308499f2a598ee6a2a2dbc8670809030c317a9ca0c60f92a48987c5ddcb0f1f580220437e702004357c90e09a42c9a41f9392cb21cfa0460f8a0d6af02041534a297f9478edde9895018d5d24bd56daeece86574e1927850c09424317af7ecc7a1baec534bd5ce8c1346dc5d3f549b5233ba48c1d1918c10e3e1ab8485a3729dad2be870dee18346e51521a3d69750c47d6d436c083c78e30bee0c1e307101f43aa982d1c1d4c5816319d52d2701468d422e92f5ea9a8942e46899a062d922be3e66421934aa942236b6a25a81be2e3878f1f66f47074c621e38c0c27c304346691983c8ebc2044d345b1659178fe232c5aaa943d796291b4398797de20f37f33b048d097b3c635a1ba7ccc572407154ac61b55273f225724852c792d9ef5bc62ae15c941e81e3bad4c39268d15c9d12a09bd55dd41837e64cdac58b132832323d5a0ac2239b9584c4fd994b4a039430e067a181b68a82251bc2f26b959177533e5c010a38718345291f4264b9e5cdacc7fce0c3123c8103340808ac4d49a729a53a11d93e71489a682a99adbc8ec569a2261b54307177d2353542840a3144921a45f9ec999679c49919474e98abd316ec91f45e226213cbb76d80e21d4020d5124288f262b8bea1854a74391a4fb74b6503a64280b2892639a5e26a931c8b4f413096395935a0289674ae74e9f3985a7700e1e24497dab0eb2fe54e565170973e321f36a5ccee5eb22e1bf52862dd351acce45d288d1104be64954e7709134f241e9fa54e1377fb748acdcff49fcbdbe682b71d822b182e8bb312563ecb947d68a80a316093aaef36d7d9e1689f615bd2c1d010fbb001c01c72c924e6b76f98d3601872c1274aafe9495aa47476d642d1649e1de92c6b8ddf4393bc2d040ba19639c19240f70c0a2d64b59ef9bab0b03c72b9254d62d63aab679f028c30c872b1244a6f42563377fed6664ad87cf600c20cc65280a70b422b933ac09d9a73f08cb46d65eed033c78bce0878f1e657080078f1e3c78a801072b92ac74a36cf6201cab48102ee2cbf6363d86f80bd070a82261541211c23eac9c0c9732e0484592a896b7d36b962984a8484a3a0615562a44f69b7b384e9178e2daf2f85a4ca9c311c0618a24a53eff66ac8e0c384a913c7aa365f7a4c5119b0b38489154f9b3cda7f4ee622930e0184572df6e59cb07f9ea6c64adc776018728124fa5d64ab2c55385b204aea14834eb8dc994fa3d2c05810314aeaffed897d8944de0f8c477a192f29049fcfcc61309d7efc1721c2d8e4ea8d1dd445b4b369acc8c095d97a61f3c838a58308183138941e6f8bf398b97d1ac81f78fb31e7656071c9b484c522b5fda9c9f7da389c44cd9f228b5ef75e56622b97425f9676f6a2e8489041fd5f92cec69f56c5e2241f6fb5ad675e6a46489c458a1ea34fa27fd901507014725929458d75325549690274a245cae3f25747812c9bef23e763aac55e54822714e5c08bd74bf504d249283d4102db79ced164322d9e405152fa6e4d6461f919c7f2af73e77db748a2392554bcf3b3798ce1e3722b9736adce071d532891189ea9b5e5937966650c1b18824a1576bbc7b53b056d707381491f4296839e5714da95c4301472292ac541ab3b18cf9c48488e4eed1783ace07933f3a44620a9b69b9c28629e53144b259d0d299ad16453385481695291ba6553f8c961049ff797469394f11251d447230797742af2988e40c2adebdafb22911062261f3694fc9b56425b10022d9926b05fd249e79fe213974d4f08b7ada72eefc909cf73da427193ee4a70f09166f9b627a8e955f3e247dd29b426e470ddf590a70ec21e983284b33b2b62ad743626ada67881cf1aa7c1e929330b59753a624a2773c240921c74726cfa7e2a9ef907427433747a8f514b643c2ace6ffac17d52141e97cf397ef438704d5db7ce2e1994372a8b5fa94bbabd63772488c9bad56e4760e9e9b3824c694f752f80f0d3d5238248b363dcd15d44bbafa8604f9d1e5f1849f2635dd90a8b137566b93a50ec23624ff577b7cdae6fe0ad990e8c9a4c6ed4a9a7459d690a44c5ec7eea0d7727e6a48d4f5f01763ee3e7b2f0d8962d94a3ce6332e7b68485c35f94173362c577786e454a2357dcacd90dcf6b12cf5fabf598624dfa02956995a4386644fbf29986daa5b660cc91d843ebb8d4bd94ac3218644b5b2eb360b269b2c3d7cc8b130a0b11acb2cc9bc8bbcc7f6ed6ccc73972aa81ec00186e450aa3cdab8b97c0947d67ae4179263c4e612321eadf284010e2f246bcce9bf7b42adce3fb2d6037ffce0c01d0d8e900fe0e84272283b93f94ee5e8412e24285d7237f57c25c821030c1c5b48da3cdf54cfd551a3e442d0ec6870847c81430b099eb2e56026bbeab3d9011c5948d01fb56a45c568d9a59135be20878c62c010a30707706021b93ba88fc6dbbe20b3241829e36ce00a492745c5f454a95deb61d0e08c80070f1a1c213c78182b2487d8c5baa8c7aed96c159272b9ada7ce59ae67c110a3c70b7050c178241c5348d0e93477a7cba758f2c6218504b92636261590213f38e0051862f4781c5148ea50f31ddf628f5b2a060e28248ff8fc79f4daeddfa9078e2724ed55e5ab960d8713124d3b7b143d7273c8dd84a40a1a7e2553e9a4fb6142623875595a99d483079790a0417d5cd0ae1ff47a894309497925a6a9fa373b880c1c49401c48c0cf2f5bde136d3a236b27c0718424153407993eac88c6130e2324560895e526b45ec9f966507080a308c9314c4b9cda65bc6888902035d529e9bdf67ac2212497a95cf14f59fb524f07388490204fa73ff9526139087380230889c9d38605370fe24c0d8424119195f67468da577f90a02d6c674f517ff45e70f820e964caa41bc344d5a5dc00470f123f9a481326b3d94ca9063878902494d4506b294ba8faec227994bebe788d8c3b75919c47ec3366d505f5331709b22a329c5a0e17c5d7b74b56aafb2d123bae8d75e5d916c97562d945da09cbe1ae4582a8912d42c654d1afa545b2ff874ef56bcd2c9273faec68795a5924658cbc658619f5518d45e2268f2e7341e94ad1844582121ae396f09877536c6453c89020375e91ac71edc445a6600e6eb82241651d110d5131ff6d8c831bad484a19697232588c9da921c20d5624db47d750d7faf9cebf1bab48ce9b1e6b66779492bf0d6ea82241e47b2d9cc789bbdc8d5424e9246e33273956953b40b8818ac41969b952888c6df62992622d2c854d415dafa607374c91749a2e3e446fee9a6c7c70a314097b6976d26b4627719322594b08dfa04e671449493c6acc15e5ba1a333bb8218aa4b829fb4a5cf4e5380a45e2ae8f8e85a8eb741a0f6e80a2dc7aeff48c31e6a470e313894f412799ebb745ee6137837bc20d4f2406cb71f3eceec7547d2712f4ea080d73318a26b9126e70223973fa3e3d3af5797e1349722efaee4b773ef49a483211a1e1a62374d59389e45cdeefee22fd336e3091a4ee438368c7ed797989a4cc568d17d294d0413bc20d4b2465514af996542d3d3f196e5422c12e75f27819a744827cdc796a8e9bd1927b78b831890415311f6274fe52b64b2251acb6c5add5674f1389e495f534172ae5ca17128922723534fc5c8ac17d4452d2bda92e8c08f1204724e91352338ed5a720d34624e6eca8999e8316338f1109aa7359846d85f1942d22c9acaa720e1b8d6a2aa38a1b8a481add7afa92098da1831291a4bf595f4f745df418056e2022692f08ab4bef187f458748cc0a931da5a53f3644924e17fee45aaf05bd0b91d87126c49685d31d674224b5e8d89ad3cd2beceb613788c4d09cd36e88a5d5d80a22595547f7d37cd21c36d7861b81483adfb424dc825e1c151009baa3cc2c8dda5fb2b8e1c61f9276e73c744e29c585cd0f89b132424c3786d5bd6ef421f137b7bdc187c494793695529e2f9a74630fc6430f89d1475f7e4a15b1a35c8bc48d3c24c757c6785183c5d85770030f89bf239fe4a5dd3cdfddc1bc1e3b6cf6b452e1861d12eded5258b48f0d7212e2461d92f57b6d4f9376ca327be1061d92ef54a8cb20cec4767c0b37e69014d62eb5522cf1b811c10d39245efca84b9fac54b8e8461c12674b8ed4a89be54ee6061c923e26f9fad29e4bd90348973724e5d4204f45fb0fe39f91b51e403a81dc70431fec2d2ca51ce3e76c43e267b88c712f42ff5dd890d8691fc2475b884b7d0d8916df212ed9a7243aab8644cd69ca82d6a034246a8fba86e5e9f833a321f94269aed88ba1cca26748cc318e1a2ddee599296648502abc749eebcb90a4792bd56dc66fca111992847b256d9b9292a3b34eb83186c7aef45ad29f6a6689c11c759f825fdcdaac85c1f4c12b66753ee9a3048636a55316ca3305cd17926d6e2b5f4dca077dbd50576c1619d9f69ec42e9c6e84097553195b3b17b4cbdf5bf3224e8bbd85e473d7ae91d94653b325dcd042c2cb065711eb8cacf53843c890d5c28d2ca4a6b2a8dbaa683e168e93fea57fa5738524292e322283d2d0ac9d19073964942adcb08299d7fd94bd88edfdab80b8cea482272917ddbc4185b5f33f5bc898cba3e5c61492b376ed58920dda3597425298132edf19ac4493ce3842849c24e34614923a955dc865f5e8cd504892965bccbd934fe871c309494196e97d1c8ba5ae35214136bb5356fa7eb1d2070d70cd6ce00613124e5acdad7b90f99b5f32120af2fec6126e2861557023093790603c5a70e30889d134af3daf2a2d08bf70c30849e284da8ad5b0b7495e84c4ab39fbb01d4f53b827841b4448eca4facdb5ff1d617cb183070f34c38d21245995978f92a7a56cc20d21249fdc269133426e1643c08307136e042179c5e25d8cb081905c9942e86841950aeb0f12d4e53ce71c261f245c7de568e1b94725a122dce84182bc78bf3f71964246e6c070830749a3d72d9d27b91cd3ddc52946cd2cd645c2c7d550c963c7134d73613c70613c6e917c69db7b6ba22d923f2635e13e1febf2ab453dee714f98e774591bb4480a9ec26ed4abb567701609171f67ecb4e7acf6ca2229f9e78cdbf62044bf36629198c4a89e3f71fa211a03c8db8045512e3663942f0db31a54c4e8d43fca74b42b0b72c82835b0f18ac4d223df2edf67363139f0020783070f327cf0e001041bae486a3519691a3e8d8c8666012f7654e2630431238c1d21f86287eec0462b92e653a5142e648530252b9232a9efdbd2b626f25b4582b8253cd420802524659e3ccbabb6f95317801292c62cdd46ed6a6c0c024842829e1759325d4cb5962400242468b7f61ff1bf594924802324b56c98cfdb1ad5a3a905011821793645e4729bf9e74d11923a877d4c95ad3cbc4a84c44ea65f328f7805010c21694d5ceac88ff4bb5a5700424892a1555e67fbc8da18020842d2a9f1204c87ddb8d3c07f943d160010cca6f32ca9c866b284f88f1f3e8c0d02f841520ab3ca7ae39d739946d67a001962ce10800f925ac393e9a8d98c0af720e976748bf230b5ea5901f020497ef0527f316b748df12ed21584127a7654a8b4c740af0a3a749174492995d36a10f3ed19592bb948acdc983e7e8fb8485cfbf428e26a1b3f213a6ee1031db6407cec0bbd7e326fbe2c4b9deaa84552fa35d1b97583e52c1ad964e73a689114b294e6304d7fa9fb99176a6b2bd0318b848ff14a745d2bc675b248f8b2d8de4906f911532c92af2cb53dc83211eb6091d872a22dc37d236baf48ae1d6919b2346f6ed1bea0c315c97d3a6ed9c88867ab74b4a2b07495a532648c011020233e46fbb803840e5624d7769ecc99ed91b504838e5524883ebdf09dcce7a4aa4810322ec674988e05931723437c9ca08c213ec6183bbcd8b1c38b1d3bbcd8e1c58e04cb7c063e3215c91ae316aaf45312d7da41072a9247884dab9e722f2c4dc72992324bd3a6b80211e243cc00c18e30be106246193f9211ecf062c7171878102448071da6483c3da2f14d9b1219c531c6385e646064888f1324ea284582b07496c236eb358814c96223bc423eeac7d48f2231aecf78290d27d78b2239e7dc34a9bd0961872239c7593169eac2ea0914c9179e933ad12a624fff44725c4faa3f9f4ae6a9f64492888cbf2ee297fa4e248ab090214be8689fe644d2e5465341b8ac9f50da4452a8609e745552561b4d2479061b95fb52a50e3391f0e76f72db435aaa204c24db55cf77782e91dc6b5fb2614b2458c753f293bde778a612896a7927a6a29accded14189e4f87cda6236f3bb958e4924a6797ca8593b219a91446245d5fc9ef924db1489c43e25e6a367864482798777b30fbe9af2239252ccb8fbd5d811c9adbaab394551b12b6e4492fb6e96cfa6addcc488a44badd91c2c558ca645248bbebc224e4611c979ed3106911b6bda4d4462a6c732f5722122e13d8e4ecffe39acb88748f474fa36d3869fc6d61049f35a23caf367ec7c210ebb797e722544c27c30fd39efe5b45b079160de2bb22a664ef7aa2092fd363dc8e86b26460d44629013dd3d2542545440245ff2b079a3c99efef30f49da62ef57d98cc83ffd901c2eda881b55e9ea937d485ad3a4dacb365ccc241f1273b6527aa1939cda710fc927cffe7a4c6d67473d24c798e35c65aef3d1310f49e9a583a72bd19436e241c71d9282671c8bcf1a539eec90285e9963deca7b845887c4b84d311ea262ae60a143829529b3f3360d9fe790f4d59b4665fee6bc72487e0fa192b97971481231177ac48443c25f295d2a8d8cb0cabd21b9d72f26f5a96efc77439269368fc973b849511b74b021398c9acd1c7329a1af21c1764cc9fa6067a3ac91352b26021d6a488afe7f721d45bc5c4b460f7c838e3424d648d32976e73d68660d3ad09018ac726c4b7ac1da534810c48c760c0431a3bdf70cc9494dc6ca5cfec81a9b4187199234c5d8b5d2515352e93224cd85b34c3a6a75273519922aee3d9836d1c9bf44061d6348aca4b47e9985d279471b08e38b1d49161d6248fe2017c56438df93513382981e41ca381d61481e13fda1af3ebdf30c86e494ca63f4d5ea8d6f1a597b1762fc85c4f47fdaa57365640d9dc759de18747821310529ffa74d87702d75742149c56aae7453613f2947d6ce1032c4b44007179266efaeacc7e44955a0630b09e26d3bd73236fdc8c67684a1010c1831e8d0425207adbc319dbbc728ca42825e6a48370da7b4a35848fada4ac945be42c2a80f77b2f6c35936cf0f10980e2b24e618dcff64dffba9bda0a30ac6ac216b4973a6572a8ddf519e973cecd9b8c38b4c3eb6113aa890bcfe312ba9f41ce742314840be80828e29247ec65f9259e3d4a9ca8e30bed851061d5248fab1684a8d9cbc105a22e88842a2e50771b1e9bb329396a0030a49e972953c9ee5e4bb3f21b1fbdc3f3ea3ecbe4e480ea2b4f6649df6be3421418ed01b663fa5941f624252d82fa5d6d4aae3659790d4b31f963d07cf41a84a48d2b725b64d6e36aa9984a4ea50e1f3c5fca68b84e4ac98f5f75ee2d4c319e8384252de4a1d845ce5dbe84648aecc558be17111124ffda5705a5a164a4a84e4f02c4bd1ac2b864d879058c1ebc2f6898ffba410ee94bb3796ac83906042fce8f0e71f44884048cef9a3c3757d5bf4941f246c363bb1abd4be312b3a7c90d4733a327d672d6b75f42071573de8b0e93f08197be8e041a265166521e4768ebde4d845623499cd55a3c80e95d645a2784cf28295862a55ca4572090bb2d253c84a318b8b64edb8aaddac5267d15b24988cae4dfd2036e6cf1699a316e5102322e4a65cba7f0992831649279a849865a664529f45523a3f2b253fa3e787649170d69d763a7755d24f8e58245f25ffb8d13a569505168917ad8312a3745a763bb2d6a39431e47845621293f1f75645865319593b2ce47045a29a1aeb6c1a6e46b676ad480c9afe7444a4261039589154963965bdf4638c0222c72a922a6bec3c32464cbe574562e54e557ee1e6d49e8ae4987b65d48ca69444db871ca848caa1bf9a7ac45d30ed144941acf4a99ca23d5a08e53045528ca54258ffcebad974c8518ac47cd2b4728b4c3234d8630e394891a0744fe8d2973527d78c2c8ee418456252a1d35bddbb938c552187281244dfcbebc7e3bf89c8118a4413baea43848a0a9bcc018aa49c63b4ce152b9dd142811c9f488c4bb7db204aa6b1bc271235352ceb560e5ebf7722f14d268b9e547d90f3e144a288d53c72b3b5a8673791204255fcbc6617b2d41070218726126459ce5a31a3287264c22463bb72aebef8ffc85a8f1e7800f8410e4c7c67163aad1f59eb31a40c20236c39c8718984cb989774f889dd1c8eac197b22872592e47a4e2754c6778e7125922da58b59dfc7ae662991545e296fc54bf35d7012496a2968ef9cb493a78d078fb293c82189e424949dde4f9f236ccd1189441b4b513a691f12c969b16ef45b5d1e91ecfd351e66fce4a9100c391c91dc97732cd9a7217dd34624e724c358db09cb6c3b231294299561274b4779691109bbdbbfa6e9c7c2da8a483c4f66a3b63e8d9a4e8e4424089d35676c88331dbc2ee44044a2b85bfc689f5590e310491b378e28a13e16ef4d218721924354b6eee8ee9aa5b31472142239354e55d968cd1cf32307218c478e41247e3e154b6e6386b2f8c85ab11d6168e042904310c9f1dfa363f8984bf734b2e63b468e40245aa64aef1b351e20122f5850223fc93f8fd1c85afbe8a1f9021f65cc20c71f924fe58ca1a26497cbe787440d9d3376a6d8235cdd32e4e84382654c7bb9a4191b6464c8c187a40ef5b2cf72b283eaf790a4e7d47bb80677ef911e123e5e692e95e1ede3250c39f2907ca5255af5734c554f8f1c7848caebc963ae4b6a2a868d0972dc2169358e99b08a192d34bc420e3b246e6a0c97368a55ea78b1428e3a24bf8679ab3efd9cff34b2864a8724ed96d94376fcdb741a599b438266b5f60d2f574a86450e392465691dd7cadaa33d3cb2667701f0418e3824096d9f3d64f3c9c9f020071c9283f74597cd7829f319591b03ed90e4412c1739de909493ce6e5a961c19946e48ce4a42830cdac43253da90e039dc7768ab5f758e0d891a9a74e915bff8e84b20c71a124d27f1d86cf92c5e5a0d495a7954799ccdb312a5212947dfafa0fe83501da2213993cad449ffda4ba99c21c94ef3821cd118d139332455891dd93d3716968a408e3224a885ec97a5aa12f5c9907029c9181dc352c592194362f897ceeba48a21497f59baac964d9d6463181de40843b2661999c2e51473b9074352dc5162bafad293e97c21e147275921542d335d2f24c71432eba5a07525c35d4812c25f4c93de20aea45c5873ee1819bb4f69f95b48964f4134f4e47567500bc931c7b855e24e4e8eb29094f762ec2e3367b3100b4942fe25f92a7f57dabb42626f87288b967332655648b4124d317a5c1321e22a181592b3b6659222d3b226cbc80d724cc1a073296d25fa2c972785e4dacd0edda62e6f2d67e4884262fcb5128bbb0bddb6970185049d82b6b990c12724c81f69bba24d98f6de094979ef2fc7189ff46eba09494a53e3786dce1f221392e42931aa328597f4e012924e5cef5a89c878ba2821d9f3a554ef996b20471212359aa67788cbc8ee909038b2cfd297bed0e89919418e9054d262c3a891119253f6fd24467aa6b57c1152d263ac1462d66522aced769e9f1ac2ee625659c94c5bce84e0fa5f6afb0f5959100e2ab4ac72aabfbc66c80184a4d5de3291715d3dc63f4850273fe5b82573176a0e1f30e252b693b9336e8e1e048e32a82470251351200e07c38030000c088488b5be01831308001834260d0663e19058e0f6001480054c382c4a3e2e1c281a12160b05e27128180c0402e2501010080283a06020148a4372a8e47dfb5b30c11637330b5815fb1cdc64b018861757ba7ad042a046c3fbac9e7b2c3ece4335bda879f05fb5b36a9b66b787eceb173e5f51ea627556602e20121790b184fad96e401a28dede294435cd3bc0182675f0ccf7a9bc2efd1007f02e47421660e59886a0fcfaf72bb925a450e063a1749823642402bd5a60fc92896305af9546c0c9fb63912116a97d23a95df3c9ee2a5c511d318955bd7014d91b9d85e415e873a89270f29694c43d97f19b31a877baefcb4931da2c1eab3cf54f0d00fec0a490487d1de573439e5e45746c69a3eb7670faa15dd0fd2f272a4a3512cfdf65acf24dfc859022e7bc03f28a7d9c207245f76fc254dfc1648425a4b36adf33e95f1801c386e903ef7c5ca953edc5736e0365c963cc0f240a40272b94a5afc8d93f3173bc6a728eeea35a4e6acc36193ff4369e15d62937646725f0ec135c72ed2b01a04d39bb705d7f5446e18d09d6b027499f97a4d2fa260781c19b848aea39dde297482a1c432adc8014a12dd142afff157dc03fe787d3f743856a0f85a13a8a59680bf0b70c71698490aa379abe7c9daa32b85c1ab67f41c5322b8d18918f934250ea9c222dadfc9c1a67aa05dd709704d8e54fe3c821d23ac734b09b14c910335ac88ba4ced5fa4ae5faef03401282b1afd57333abb84bb2e159a8286ef9c8faf52c6d518029fdee54f07332aa2d5359f63f8b9f20a265ed28044a44c1d62480cf793e5661320052f70bbc91856b66ec9b1aee513bcfe9ff81fa8b171d910f45573832b544249bc16e6b8621ff7d19a5ff124cc3308897c7c51e49f2f58f6413b98d6825fce934633ff675dbe4ec31006ef8f00bbd174c07eeb848790a1e6100257f7f0eca80b4b45f832e14f04de55763108cf1db40eafcaa1473e6522a4f71ace24985b062eac650469ed3f2a9cd0b2f29b13e544f3be1c0195657f6205f09b48af529144e24c2bae2ee81fe89e0af2b2480f79c83ec56dac7e28c93ef7f71895c353fa253ca99f273ddaf37e46f94c40ad9c901357ea51f04036b185c63110840cefdbfa7585c1e101bff0887cb1720c5318021cef12026c339ae461e72bd46ad5afc06078513720c55986fc2bb5d52a34360c34cec2e00509363213720ae8e1c4c6581a9a237e4c53a5625af7080ffc64e915c2d7819f1febf2ba5ca3bfe5ce554381865baff61d828287e2c4bf386339791054c4c23386c6420509f0ca75809bc758e5773c442a0b160bd3d78a206f2036d854bf7891aac98e160a106260b91d6e2b3498028ac5f3973db23ec6bb098d307173e858b3890e1237c949a52b89c2bbc936d7ba082966025d077a9ad499fd95ed0d96f870e868c86a86915695ce58cbc5c232efc67496153317518616bc1bc8776c7d9e2b6452495afad916f0bbb8ca3d7db408eb700ed38474c5b440a3e371d45eedc41b263ca22e0a2c880b7335c1a456767e1d4829223879eaf9f3252e5bc7279ab1b32213f6f4d58b9a28446dec492d6c2959d8515aee8bf6c4a76c110395d51b7d5302c56c622982813380c98f0fef60a9cad42cbf2594ecffd9d3a7e7da44b454561e304a6e7db2fd85f8494a26e88620a30af4e016976127649a529114eb2e29c707173c14ab96506e9fdb06212e55a6dfe70560b88ea180e0c22a2b888bcf99927c88522e42f598f902063c00bad93b02332519a9519cf780582455eec801d250fdc5e3703b162e9c82b5652ff4deba956ebe436b1ded8777411a247aaf769facc2a42aa664982954e5e18be80b1fa72aa3dd7b522359e317a50748027c8562b900e26cf94c5dfd7aab807464772afb489292c6c1444c821445cc4ab4972157eb5d185f3b1350e61fb71e2ad9c421a412021ddc2b66d874a5e93a85fd82f70bdf2d95bef0b16941c10a8c41e099c831a5cfba358e932dbade27ce930a9525d553f2897ae3adbb76e756477960e35f45fd0f4041aea164178c299efe8b42761528eabbb686340d380a6842802fccbcb55ba24514ed839ca3728407955ffcca70cca5ccb7442f846d0cd3e9668e4bd9e62b2a7ee16364f39d739f8309842f8ea6e472f33b42e5522cb1245406c1acb8a8944a93daf4707aebb5a0a7b5b3164b99f0b1faac75193f58e0327234a3de0f007aa5c4ca725483c26a9c5acb82fc2e5cbf95452fb7c791d96cd67fe8a71c4a4cc55155612f0298dbf65c53522cf3f02d99bf34375bccf30063dd300c4ed6b44b3b2e715417e4271aa31a0d374ab6736813a54214b6e4185973bb682a8c6fc8aa7141cd743be40b7deea4b20f1de1301ef21993ddbc579268a0501898740e09e62cdd06e8682d35bfd386d404e995ae8799cc43347513e660b2c0ef4b036e36befaacfcc01e93fee6c70c37d80f049f98b6dda7a06583e31463e00006de35203698ae37c7ae6c98e55b449082152289918a213eb8a0851d29930859ba738758eb030db07f475295fa7a39fbe8cd8e80a267460ce37bd5930ceb897f135461764f432e3ec0108b56e6d6989a78786542dd34c7f78a918647e9c5dfff37d752c3df56c95cfc3fab36ee1f1d13b37813a461541ff64f3a8efa84a919db548a95f1a724b90d0f12b4262a4bbadb405f939a811c16223aea13d480f0e42b8b9ab42411450160f221093bb027a45e484a22da07f524a08864426cf45d36c93ee49f33efe511ea48c7c1a180463d825749ec8139e3d00e6dc1843a75c67267369ae793ae36532af9eda91e1c7217d663aa2f8df6916747b61a7980e1a19b4ae3e8d01f7c9d064e153b981897e1bfa53089088c1ede82c31d30491095b24ab50cb78e44a12b42df2a9b476f00cdce0034614f425f385890d198a37d1e0242d24658815605aacdbd878480e68cc502cac84a961152e519dacf7c276a0c71120fe92d8e3b48362209c8028af85c2a23c3612aa36a63e8b51af40cf830d0db4844beff43035867b8644dcfdc79360246fc571134a5f9116be8069941e5708330589933d4275ce66eea30c6be96df40657dad5b59b8f833d75e7f5e05ff70887efc13694a84086093bec5e48592187529e5acbea9af015a0b4091c8b4c4542cac29c1c30044c1bb61a818375eee204c3805acfd95b3da64f3f2f72d94afb7f7d247b01f20740bb8a0aec2f2417e0bf0030e4166029b5d5d233ecbeca918a72ae0c0905dd6e574751073b45310227c85aad8d112e9bfda9cd3aa3d51c3bfd694f3a97469a490069ce49f8391708505c6f523accbc13a56315f8ec0c09f452c019b11651202087093b4713bc9bd28b4eb1db1048086d221b21d0a0090250e67ed8efc648f7cc5065c0a7b68113c5e4d0845164230a6b62cc17cc106e48ec849dbb13e2601920d198cd10cdd90afca4f2df86008e3f68c6660ba88a15481980b2be829250795db6eac188347800001dabe6608f8b57b801c47e798cc195a245613e858461fce8b0b8ce8f5696e5b268d69f86ff3ec4303cbbe43045c91d7f2fccc4f202988dd62301f60730b9938f2eee52787f2f4f6d6d39c605cae5f1ad60390166d8e6004a37689f4871a8c16182d7ffa35376a0f2a829b0480b2d267ce758c5e69d37ed8e67861b0683f8ea207465d8eda9e35bf40ae3914882a3f1d0e0016811f270d63aa530c5818d958cba4ed7fd06961110f10267a2827129fe27bec55df7580fd2ac412736e3f60d6cfdcb854f82a91084262c090c54185e5c473617325c9af8108b1c43e4fa780ed82ada575f69e30beec371822170c2a205d8d15fe4741e4630c717bd6955de3e5a74434f49a3dad065b1dc219ed6d0de229a4421d7942ac0932e7f10f42f8734cbfde5a056a466413f26a6911f1021dd7c947c40b72c96addd8c95bbd7356dec95a6d0e6651c3683ddcb271fd2231d35efc50ee0555f3f71b949af762021c3dd20b4e52a801e0ec9a112b101e651240275cda888325e8b7dc304ee0326eacd4bc0335beae5386d8daca84521cc7c25c3b21ea5eeced3d40ab86082646ddf2e1008d1be8cb40d0d01a0e929d4e393863095ff920da8465e300b1f67815cf542acdf96c4612b1afb2e645059a8dde01e21c8e20e912f48ce1c1d25605df2b0014f073ccea84df50b60f52cbbdf8fba49c74217bc476f54d0c60aabf8e70e88ef147cfadecb07f376e454bd8b3b686e5485cafda1f117403aa66dcafb4aaae62f2c53ad89aa621fb1c6dbaee91bfb82b396121e41d7ac7a9600efe239504502c6812fb1ec54442d670a83bc1b385f70799a43a8b20e7001811f4334417a5560bb72246f4437502f3f25aa82517a6795f17ecf4c2db3fabc384de7ff65ef1043bdbec3f29cac5fbc2ec2176f2e265e22c68bf280f7c86e4f81bf97ab288188ece0072b80e4db532b4029690787f8e5ccb7d52aff45feea9ffb0d2ed85a40e31ca5d23c9cba4e86bbbf03dcb18cbf435d293be2b0e3cd99d873074ae5c5849820f01b69e8251c6333327809158d6c59399fe45b0c419d0f49bac98cf7e5b10cc0fe572f39c9f3740ef18926235548244a396a8ecc23bf49624aeaa41f032aab67bb753c79c216144d62548b0bc66d9af91c820180f1d98539dffca0059c8a2d0b1f67de1a67822e2f098881973ddfd37afd1e157bc01c02ec296a8a3a714513dbf54b3ff53c235a0377f3678890fc2c26ac8da07d2836753a7a6eccbbaeb297b6926001e76ad0f808489501c62d8116f6ee1d0d79f2647af400df4db2e01b847940fb41078313d8777550a09e243069abfc015597d59b5adbe4fb4cc000f21bff925d392d3c3954270b547d032dda3e318f380178f93ca180df3c79382b09d8e830800256f92249f465d4b216fa91acd4051000814a86a7c90ab379fb11f5d084f933ab7bd5d2d8e742d703ac9b890fb9889e602a55770919f13521c1bbfdfbc7062c6b8af4d5d282a89ba047efc252a42fa3d510bf00b82ba903c035ad9998f069c94c2019fabb0d3ee812e8e89fde5e51f7402feb0729d45e2df49488ee6f7a142c39ef66314d8d7691a4846184100d8f1e4ecf4d670f8f318227335b011918000a656efa31840d9f9f88083d17023482600362911e31d2d9583444b0237ecac3272e27c83ae7ae08bad14916bd68b842c500ccb90ab0f4425dc7182e6d247ec53a1bd0ab9722b4679e74dd10e182f46a7e0620c5ae28d492b4d77066b1db8dc87800188e0600d17c66df80268bffbe41655ffbac42bff2cf5acbb8e4957a1a14e444a13d71ec09c81098b3b28f42e63ef9978e8943ad945ddc30ebb0973b10ad6215309f47501b980f00d8e0c0b27de3751ae37bce6ee115f7601e8a9c07fdaea49f9f27072f908908b38cd03a150160d1dc49dc0153431b1125161591313dd4e025b0155e91f56c775aa125293ff6000bcfe0baa3f42c05837a07196038691208b58381453a3537cdc8e7565b18113890690436962b9709c78585751b1c130c1ca08183202e124dcbf8f40af35af85b415713465f34f62efa3e9a224d262d81018b15813a74c377ee0e0f47cf19b84d16e6c2b0e698f22e9f316169f743212c1a53d8db36b274e272578190d5901fda404f81ad44a2a0d2e40245bfbc5451b2576166562a2a56ddd7da5584f759ef12c30b5add7f75eda65bafe538297f04a16083c89c9e5253945689947c84512324d8cb1f9493f0544806562eb29d12833cf21d4db4494f4a0e1c099cc1309e73f7b2f60ceb9f2311cc2bb147fc694b892a50af635a0e433e21a0a303ad61411cce290b3ac84d795f190e8bf404eaf4607662e4b359aef1c004ee32e5b4318b59eb9486b4d377d2005e33cac584a9c774889257551a4956282ffb0c8850c8c8df087370c53802f99791ccc06546390a69c833909c940a30d1827c94c274206bcd52edc5f035048d4f63e03862e9f7dff7e195ad869e81c3122a835cc5a4a10a784650b274f925e3f92e426d08677be27c89588c7e8d48c0648b30d48c6f58b471910d8844c5d79373ac760d6e71b59e2bc9a115510c764443ed942ce7e381424038d771c197f5642eb3f3c6b7f326c1b490751b1ca44b9b986b085eb5860b24fd364781cc48bcaf02868bfd2bd2cc56a02c818f10c808aa4b3890f00b9515a0480bd09f4046cf87f12daa2006ac80743f5dd6801b57027cefb66b7a675e75f7e00fe06c5dfafef581dacf251c5ccfaeab4bfc906ac95ad5e2ec402387a3b0bbde6137e0b065a896e068323be71b16eb43806c0e0d05512b36259e9082c71416ad704978436bc40a034d663324b667d11858c84b5833f786a7b34fc1d6f72110d514188d1fe7cf916fb47c25b47feedb1939a679fa34ac1778ea42f911631c3b9c103d3a5c2204bcb8eac9e104eff588583548e20fddc1c97d3ce2e4497f695042a20bf94b91561a0ea01d5f478e18c5e2a96d062d89defbb03261548ce104a0dcf77338ffc03e38bd91ff8d514886eac5fb53ffdb1ae1888e8d182e7b2cac33d39c310be6553d8e74879d94d6f6d8d2e15bb2561bc63b48423b3a5cd5913b5fd2aa4838458ee17f9dee4850de11fbbc1f876925ee287c4f22c789afb808d325c491ff49beaa865cc2cd87307b74aa0476416eac8b78cdd444e6841a4656a3ad224d1711a6824286a71896719e46997c7d6ae850b9872d3a62f27686700307b8350c9935168f07c5ffdd1d14cd7f48a64845c5efee90f284d43b5e3028d1974182862fb0513ae29fccb0d2bed0ea8b2b37443d838c0d8d94e8e83002f3231ba937216f6b2bd18b7638ebae5a18e43697ab712c5e422f6eb077059190b0618e2eb2073f1a0d6ca975726161889fe7f902413999e7f5676f370e16e011817f408f31dcc6688625eefa2ef82364515018d60c6aab2f1db03a09063bfb38b0e2dabcc87213260ddcd7718a56550a59696ae582c83a41168360fe6de2e7939e8d25d96810e36802142cb9038782961740db9320e7800c82bdd334ef96f12717631ed60c2b11cc76abc5ff7aefcb38103783c7128784be1daede0dd87d72b0949d59141e204cbb658b2552264e270424763b8e9512b943abe67a1d6efded5c95821a7a9017c7d80a298cecd01882e72e57b5c22b4ee39382905a9bb74cd1fe895be751d4e4d721aaf9341e5adfd61aae0672f52419ab1c0411a65c3761770d8c315d9f54ae4e077581707d32c38b406dc031cb38515e6267f994f8748487f12ed83a2b898c39adefb6e3d9dc92296d5d8fcd4d63cf7445e56f541f831c01f2c322d762d2501d1a21cd21a563cd261418e34f2cc90bab5a47820f7187c02a42b676048c68106840e9d3aaec24ef4f43e4901344f49616e8c72057ee92cc32421b920214ab49b6e7481ca438c2bb0e53e2205c288a4119699ff8a575a7b75984f1a5edf65a6a875022612e79963d866543b61795a4639a5212ddeae23a7236689925481cc65927c5c65ffc6209263257ca0e46f5c44feb6dc605d808af9adbc5f6ad02199b84ee5f9d9ce56feaa00124d3c3672d9004fce365214dc094053b4a2538151877aa0e420251ce60ed0149b0341aad326312cbede0dbd2b621a93079d090ae77c45398ba84dd548d487e1f7014649006c87d2b1064c357c74e52a7e9b41b397d9753c3200ed824a3c51d336c4bd3d51f9200933c7383194344d70599914ac6ebe280305c70b353d1ec2520f44f00cfde183dd3de2983eed47959be66dc191a7eb10dfd2b0d82fc622c3ca19edddb31edfdfc8a18ca87d5f6d2aac303929ea8f847a120320c2bdd2b4e011ba89b7629aa3b1d2ae143c0e2332178d134ab06e080b6076a7e1567e2b3885939724706b2b3cd2d5dc8abab483706c620f9214d5710505dd4d881bb1bd6db70000ffc69a50f4cd8441a8a64e8622314b70ba8e4ba14b5430c597b00264921357990a02eba055e6bd219f0187037e3a6925834492def0b2de6e70f5f6ea06e4eb425938f5ef597dfa6dfce0b4e9926dc045da87adbbd543fae8a52199858e04c7203f76c93e660e7106f2143adcab7f72e0a615ee5e2fcf347bfe2b7f59f1089445c793e984e9a95120b38d61d59f6040c1047fa825c06f730e5ba66b934dcfa77349617dd9286a6d22941bc6352174a8f68a2c4fff189ebfe6c6435134f4dac67d124401f0c6cda7ca35dbe8318068466ae8dddb68027907d1a2f30da11bf91ae68820623a0fffe0e77a4434473a2017094c42f9e33447fbb4cb661aac97ccd9ace7e9c3434dc43d4576518942c4ecc8ca4fe380338b9af041ffccd8926110ce3298bd3383c7b2a0c148b0ea34481fc970219500f220782f4b6a31768f40797405d7089a20397c4aa03815b12fa4516490f637f22ed65b39587bd931466785b4d4d9be47cd7cfe241ca5144cdaa2810bab6d445c0bffa700fcdb0f8ed26a2c57fdbad585c49ed43df753cb13e8e8bb92d43506240ca128c21eaf3b44ae2297f397c49afd4c432fc9ed904bd367ff797f8cd605713d0d1f07c81c259ba9307014053298288baa2b4515bae43a7794a9d41d9a8c3d57dc4ef008a5bc70d28e3e97a7a734459c60aa61bfee77c6ca1c4b99a80c0a737b6d863c755c53840495c70684a25b751922d29ebcd03249f754f8aecbc95f888f4c74600da1dac7e48bae64046b12f331d03177616e83f0b776c57547ea60b5d4c67e958042275e862e87d71ffe1a8d251a323152b15bb2aa75a37d603833fa0ec455e416d016e20e9e2dbcbf4e2852c8be67d8d435824985595d499ca0de668efd13e0305158fe1fad660876b18f6a33c8caefd4180829093089c58d52b0b4b66d4be9f56aaa79a71424092073b7a4edab542ddcfac37e6211b94177cac36b92d8f386ff56afa645f8168590b233bcca52a6884dd7168456d75220bd6ad03b3a6802e337216b1304029048d0a967410c8d458aa0d95e291428ba5a771fb595cdde8c3cafc461e67255cd9297bc5a1c3ebef2499991ce6b47ad1d7abc64d6a03ab0d3990903aa5476d55a3dbec1e60ca7f5de9ab61a3b71354d3a4db8f2e7af25192ae70c9366c5324f94c2a1afe2bc865926321499fe97d01c8248be998fa9e2f198d7074224badf231fcfc8964e0f1f2255d4af37452da4308e4f431e4dfb360fe73f39bc8dc9266f26e4932370ad146d83e6d3ac9a032ae24c37f5f7c346420d6fc673d09952496e40a56b4c6f7de4d0d47b991d6a6a0470ebcb2a588d49dc49a197b83beff3622c2c59f50a9c55b644645a8d6cbd661d2ed1f450b53b5a1f6d0f468e45365af16bb320a4e1f94ef310a2bf19d9c7e553d3a38ea1d4d7ef4c4bb4570c61ead4c1ade6b782a03469f07f52392652fea23a15891f1113abc958fd9db599f9754e3938ae789c91c3ebef58a5cdb1d176d19e359ff887af67def7f47d2104aa6bc0f2a00ff17a065536ba064288a8b33e48c3ea8604ba8a668251cd5519e8873b352db59a022f07b5480a8873b92e8384ed46fc1146f5aea1fa2db3ceb8e1b31b030f0f0c1c47482ad329f745ff63b0bbfdbe4f3bcf6213153e266cd73276969b8fc8a601b542e623e623e62f211b5f347a9494e9ef2362a7dc0ca27f50163e039c059046788cc01390ba0631eb095cdc63ff37730d0a78eaa54c78f0d58baf42371233a13356a932bbedaa80da4e1406f6ca3e5051ef969c764168d13b085590693b35f5af07f5a0ed429917df49a6f0387cdf4df386b4e56712290cd0c022f0313d2c467414d8b76ba6094bcb4d7c7c6779a314d4dc515a1bc8707ba55aef9a60b065d2746af6c91019da166bfbed684b302b894d00adad22537263265a41f1ef00889256702d0bb6928b6c7f439649ab54a2af850017c2392ba045288cca32fcb9dce1823e751a97c563d004c7908fafaa529c08b44aafa2bd44d694e9924b146b0ba59ad5990ab9a1e15768e505747d598ba0fc85ea6c41543ba69c808af6720b9644e3b7f8014e2bcccf02df6b4e4b2a6c2ceedb96000f817d546c09ef568eebdbdd0880e8de867a4d4e8b5cbd203141d58ba61bec705f328a286da93295bdb817e87c76a0f24ee9fdcf1c180f5b37b7a6111ac9e7472e4be6477156b9fefd2334878133d21dee73eb44e0fcf0dac181fc311ec880a279ccf37ec1e608e546868d042f19449cfad2529ad1490284b71b5b00f31049c8aeecf8a1e9d55205495f3c79168d5ed2015e0f75a3dbb2eb43f6a9f8795f5d8ac7796d44082fcea6b65ea6ce06a02fb4a9f369e8782a289f948c738ae35a50aafaeaa078ef50513efadd467b59ea63f4e9b966ba7525b23dc354a2ea3262a1aa82b7f4fa25351581df30a050266433fe499f91e0412c91ca1582988ac5172ac3e648256eacc940627b28b768e7a07ddfc6b17eb7b3a8d0baf55c91211c03e1b0cbdc261513bcf290c551618db453247b9c7090217f2101b41b9ef4a6754b8e525767074be4de3b304f410c1ef85d3d7f70d474a450516c66385e8a9c417cbb8efbe4f5fe96f24260b025cf2747a89b3071f226d5e496593697490ce161ed4ff08d47c2a5e05b7a7ea105734b607703648c982ae42146f58935ec93190302bc222428e3aa937944d711061556c2ccb4b2e1804cbb2a4e6fef022aafe323161204c173b9af5c0215ba272681caf2bcde3eda0cd9a3c8ad6617aac76ec95920d0dcd6970ab59b57011ecb8f3ce1af2235f142e815a3ab0e06c494915dfeadc948b8176fa7f348b7e43f7c3e3acca7e9d123e7a307927f709959f7602bac45db13d83061e3919d33923dfdeb443ea005ef30d38163c7ef10bac65627005259543fb2f7fc3bb7843c9923e410079d2610f113d2d22e1ef1b083038478241c564e3064decb7699e2defa303c2242bcb47e0fbaab3e2c08fa5c152890ef538020003140f5138ac5e1da2c89b71552b3f73bbd50e4b540119492e625a8f84f2791962f482d0f62003e5f844509b81097c75278aa18c84f3c36442206e2d1023b495d90a8ffd56a486146743ee8614e3d65c2431d5ce7b10c899bc0b0662e5499ecd7dfb76c0878886b782e83cfb0646a2c554a34b491265cd9d80f76f1b0da1441647c108a110cadbe071e7370497bc73202848fd4f3ee8c453c41704d88d9f8e411da2452f2caf91a7b44f54a157607ac53b84e5f4c46a7b83f9bc7566fca50db7867a1d222d1500a8f2376e1000b63cea646abdf305d14aaad9e829dcca0a5bc9284e4225953de93660b82344d2867a598d4213d94a003bb556405611784b4735f6023a1a0c1d1b0a7954e8c02f854fbf3d7198acc3a518341298ba6197c66867f2ac6e0c55915091cc870e0346ad7d548d8b1898b77c3f31796702d84f4833296003fe5d1e923d260caac6e1403d5fab06807024428841298475ca24c0ad3e62cc025aaa14f1019652124be00890275084dc056088995ca52139540bfbeb536452ab661429089569e9cc01a58dda2567672870c50f84fe6a1de1da11802edbaba82a973e923d1afd2d51c9662ed701327b3c3014e1440ac83eea644261a451937080b531e2f351a13d3b8b504775cfc9553abeecee931100a8620f4a97f509f88c2955cb33b5362c539023defdb331e8a2a216806536cbacf7c46a99553ec2dad3c52421cf69465e1444c80f5b0fad439c816440d00a7431215b429b7861096f9f4e151d2335f3795cf4d83d875839c0b8a65e616dc5c3cda616e45f0010b2e02a30b0c1f460b6330a75b445a94349a501390338ec2f3750b8bf3b01217ba3a445257cb818141d3d3426d6b39ce37737ec7600c88e5da7a2a74a9442305199be1751d4e6d3a8c3def453f7a94f0218f6e4990983dd7768a5a53ee63fb7bee12ee8a53ae4d4a3939500d2bcdea7bdeed47a5f1830939a157106383c58d26d5e1bd497b8b7514c0f6151054f14b83b39fc3f781ba28c1c599d97ffcbc1b05245aa3b93aaa80b186645513a30f741c370ab9e57523577433a207f73a1868c92b846b61f0dca036d9c861d4804e7d355b79e0879e1cd8f23556bfd07245273b80f9705cdc3a57c91c4d6b4284cd71dbe1d93d3f0d8818580f6ee3b8a21a5242beebab71bcf71b3e5a5f8bda8afe6ad80b3dc23caf8f8f2811e6fb1cebf6bdcb98fce8a79278edb47f9302808bc03764257c4a5cc941685c45519619e1f02b4bf710b877e42070b365cabad21a86d7369511e1302da76f1320e77218cd0f1eac489c8e18287bf92cd384c546986b954d3badbbec17f40dde31073465d525cbc2a19b57d438909199bc826b7d5513203dc64b55ebfd1c5b27c7a2b22dc536484c79487ee804e1645137a65fd896e636fa250d8866d0b5b2c1fc6bb5f323a3c3a0f42a25d5b49437e88af2f157ea2cd72f2b79cfb2d9b23a55e5fb1e8dec0f32fed75910072ac8bed850bd8a23dcf4bb6a11cb84192ddf33cd9d1a16a1f558d58f766668fa751c5d34d2971a01ad41950419d874d3853934fe10379651094e890a318a0ed92f33084ed2daa530e12846930c5dacced6b12e0e34abbd64e6419e23eac6e4c8cc96b8ab8a24bdbc0244d0961b1e8ead168ea512a932fc4697f45e6e9ea8852141ba0075e98dde5bbc0609608f83eee107951b4a099c4744b87c90bd426ee4a195c221afa86822f219b9e9e407f40bfd3bf782b6d652fe30b7271a4bd52f2d6bf6aeae9005c8b9725d8975818e72e1e862ce39da34b1d65b8a4f47ecd1708127fa01a537d369ec41fb8e1d343764b839cbbcec0aaf767733fe278456449e5303d8f98d69f7e9b240057ce7e4e37421d8938e76d051bc98d3a2c60702f6380b22dd069225acee50c1b26d1a8d9a29d8badb49845edcf148ea4f8d3f1320b929c307094826f4737d11f46e6d6d16e5117470ea3b0bb1617440522f391bd43c594e46c75c3b741a132f30536616d9031ba66f95e86cc0fd04e688e4cbc4f9ee00d8982ea60010059ab716020b89cce46e32fd1de6372fbe84cd125beb05b2890a5c151952a74911e226a941371ab7a571fa51e916d9797df48038408d7895bb479b789b2177c8ac3adee7d05318818fdd446a98d4f797ceb001754ae83e056312e9c7e97aa2dd7796bd78ce308695554b3ba77a2fad57b18d7c84b2e04d551c33f12eb8c83e48ce8b47a7c9539cc67c1adca8ff6b599de21debd208fac40e0f3d857fdc822d4ecc07af9efaa2116d0814c0f4cb435ce5ef223d55c49c24d6e56d4cf91b3071f7b72d020d1f7d4e53915d2d2408afaa9b7a0480cace484c58fd52028b7cbaede128a3bd16a5cf8e97f0503d1581fbe8670ea07407fcd6d2b23e6267fd6768adab5ff4eb760c8a400c8751cc88b008d83a3040a5c2d29239d10a75c07e1903cd55ab179028773340b5c38b4b87b5140a4e21e967695e5d3ab713c574009db2c45f9995097ac968cd9ddde82769b31ed3628cb9b4eec4b5d615367822c7162799da78c249c4759cd6480c3e4bd3b468cfb46eed0462890d1245d942b205f65c3546a8500cd9471e194223c6e00926e35634614af0ade33417bbc72e90e5df708f79f4f950263ba64906a803ca2d0c044a6901425b498ada950af1ba23696d821a2375f600a391492903677f9b4b4a1e81f8cf6efc2b3c5c9d417d319c9aa663a5b05d45216055be9401c1d7e643118e9c08a0e2eb6c4baadbc41cfe05f378d6ab0f65bfae75297286bf48a766f2aa432e4e004f6b6722425e6047f56e08d81b604e64aa0e15282c2958d6ab86b3df50858e222a68febae14f9a0396d1fd4be46d468d09b40c7630408ad22c19b1e2f44cf7a80d29ab8018820f69147eef8453efe3dda459065071a6b1c39622e8aba59bac376108c7a76e174c89f60ac906515f19663f08b98f8116c39db9759c44e18b1ddbf74b7d1bf682f1cb9c63f7c0f942b13b106469214d12109b6daa6a325dfd52dd310223cb14ea45c9cc9805a469a1ea70288d8d78c0bb13a9c8eadc9066519361863b7de910d37f02b6d702abe43465385a8f2c0c03ec8069d9efa307c9449543c13218b2533f7cfbcb2a377f97eb1dffeac203d525d6bce105f9770efb3eb12849109592915ed0c0e71c41691c78086c4935fc92dd528a018c8dd8a16d01e05b9dfa0303bdf05c6de85e5edf64c91b6470f8d94e47662bc203c6e8df95391a9b6903125f6f5cf8e3c2f00aad5cfb466fd8417e831e5b61265640193e4c3496653eb9c05e0b9fe805b1ae07f2c6a962f34f43fd59ff6c7f171641c9a8c4d23e3d038368e4dc6a6f1383c8e8fe326a7c9082f4c48d03ae51639461f240689417a400e92a35706b9063f073f07cd01ca38354e8e82b11d955428034e7d85230e3850b2a4d001c33f3f3f3f3f3f3f3f8b50b66d0bb65910da824c3295f77b48c800b5524a29c99492d073a761b7000000c2d65a23840580386e560e430eef0db6676da5cca4006183e945e828e717456c675080acc1ec6e72cbc54a3a85fdfa13206a30a90e6fc1d62411564ad2600ad53d57a7acc3529813206830d9e959afaf33132eec005b02e40c06f5d25126fe3afa491721d840179500318331ff43fea9c58eb8d08b320e185f40ca60124648b5f477aa11e0bd00840c6617bf4bf1a28e748461653d06e358d0bb4f52ea2d2d370740c4608e9aa1c35b581bf1f3580d8084c11ca654909ddaa963e21de7c1700483e1ef6309cf3a26df5338d6b007205f3007ffec54faedb42f8963cdcca0a901f182f9835877af2fd14304e9823154caf515b3aad08e2ebc300408178c1df6bccbfd4c12ac5b03c8168cef7fa6a9fd96cbf3fa06102d984a74d11f3cbeefeea588e42040b26030531f94d84b2fef130b06a12d4e922efaac29b14b03c8158c79e2f7de5a6405f35bcfcd27f5275bb20a3600a182299eb65928f9925f786720009982413b4f2ed5b2ca262b102998926a3159163f96fc4919e828438ca7c08e1088f138425086184f01111111119028184eac36497f5e57bfb49501040ac612f46228eb2b417c65878e917300c813ccc94b9d78d23dba4c32041be8c208204e309818b1a5d7ba1755006982694d5a951c36dbae752c204c300525a53e5dfe124ca9b33f27a8e8d91e3174886107a20453121eb2fd579420d5840712830c1d13b82c8024c113cb2e4c54eb7712efc1438c1c782048e0c52e59d7678bd75a665676738491030c0e74e10509ba08c106ba40349023183bed495207cbe2b13c4630d87f09fad6cb73be2e82b974e9ed92e24451e91a1440886092525f12b9ed2565131b8249f2925da7d504536b44e100220493e01ef377a3d272091204b395aa5a124a5f04102018c77fc45a763019262e04901f98830aa2e71f96458d8a08203e30c559f1e4957b4ee6640709901e98b3c7845a08f160ba40175e7461812ebc305d78d10505bce02380f0c0e49665c2c6d6203b30c949b8493193f1d0370c203a30baa62953f36b2e8c1f3fa59b32f5254738820c7161921542ee8c9a9c993f8e35345246323232068f09cce06f61b20a66c9e52425f63b0844443e6c619ebd3456dabf1a7cd4c218ab3617c7a46961ce9dabe48c3d414c8a7fccc224a8f168caf7fb9085293ea724f62cab84507dc4c27463398589d71337b30f589846a55a07b7db3f2022e23b3e5e818afda39af2ab1a5a81c153c07f04769de3c31506d9dede33f2d30ae3fa27ab9ca197275a58612af33dd1924ad6927315c651ff0baabc947bfe4315fb918a0bc1072af2b47893baf554cc71ac88081860bc6f3985f13dca899ea4c81406cb495c55d8ac56eaa530964af1d35f9d90c268e2d37c08f18cc2a0652e262c498bc21c7746e8caa97f27bda130453337e94c1a51aa2d288c35d6c9c3d3d394ac9f30c9766366abaa27cc734a4b3cd98fa7bcd2095309756f97a3e8af1739611c37e5f22944f667f5b10993d2d1ca611ec1c1838c31ca78b4268c239f2db7a5cd84d9f349b94488131326cf925fa2d97d12b92e6172ef5c1745cbefe2690993526ea7c3b89f94f657c2b02689e8ecfcd8fd286152e92cbe33e499ef098e7db330bc045f10f8988459636546fc4d340a1f92309d852c559a9ed2848f481845c517fdfb4cd51289f00109730c115dcfc5e038f0f108835fd015659da4493e7f38c268e7a604b136a6a7a47c34c29cde4294a043d6afa800f1c10883faa8a07e4e7c0ff3da1f3e166152622b85a51c2fbc8e1f8a3095a79cf5c46c9e8712da88d5e12311e62e0b272bdc8bda0b9330c8f8e20311e66dd36372380f42299df37108b34593e4b0d19e3aeb640d1f8630fedceb09e2728e7b298968f82884490a3f53a27ac4578f67f82084794cfe9fd3b2272fc5ce0b1f8330b87cb433d9baf02108a3fb87a74e75e9849304c78a408c0e9c3506c25c164c8b29f9d6fa791e1f8030a79d894952e76757f33efe50eb6ac5d6f93a921839b28b1058a00b09a899995959f36a164cfce2042302e8c1871f0c6a9472f10fca8f3e98087ff0c1443ef670a6874c0c4b724ae2c944a804e0071f79b80c7ce0c1205a4f8f92e40ed5967b1ec57cdcc1a4d653883c39a950a9c2b1865650f061079394f44513d1958298201c6b6544f8a883498cb9495d26753dfca0833995fcb49f64b93ed90b7cccc11cbf5ea1b22e849e11c71afa2ebce8c27b78293ee4604e6f4fb2aed85fa717c7be7b60035d78d1050f11912ebcf0428c1c0787172222950398c2471c4c72166d216d4e48b345f00107e37e49f14e927369794cc8e051cc031f6f3025e1939d906ac1b13652c68e1ef7c5871b4c2725fbf0a7e338d66030a2a3471b4c9d4f9b6cf9a757a2c2b1f63bca36f0c106e3a57977969e4a27d7153ed660ee73df92cd8356b7560d26ef1827aedaffa1240d06e1e9a293d68a9fcc42850f3498dd3346bb44d6bf25394379e2f88e28a184d70e1f6630be8773bbaaaf242c49198c59d944c7719125bea7860f3298abb265d12dc26275b0041f6330874aa79e1eb24e84d9810f31183cf674274166bb848f3018456f67e7529524259bb0123ec0603041589724f47592f4f505b3a8f59342ebf66edc820f2f9864fb4b6a2688e80ae947178ced49448e7aeaeacbe358e3516e061f5cb88f2d18f4847f0f26b6b3ccf13d74887117830f2d986d2fc74b2657dfe794051f593089ce978a9652b8f160c1a49f4ef21711d65b5270ac9d5dc124eeefc4855750258a70ac95b9e0c30ae6583d3a6b84e8af98aa601879fbfc71a944ef11154c42ad8b2ae1edd32939533029c1922749b68e14ccfad1c4bb5f9ae4f246c1944eaf899793ee4ab20205e3baeeb4dc2b5dc659344bfade39b4be93568c8fc127123e9e60ae64325694bd580ea3138ca22e2bc7c9fa4137f3a20b8401f423e502a0868f2698d49cf04b7e63b19324490f11111e3d728ce18309e6a0e25b844a5a3d5d8d634d078f4444a4021aa82c7c2cc1b81f54b02b29ac8a526fe14309a6d322a6fa5f725f9a48e12309e6dbcdf6e4b1dbd6939060dc2e0fb99021efc63f8249c8adbc114a76ef958888348f277c18c1dce6f9a747fd08134b78347e14c1609f65a1e3d22f3f5c468f1c7cf8208239866a8c92d3d5d56828878848193d72d4d1e163082625bfa492acd4e2422d049338bb63a5aecb04fd06c1a094146ae4c44eda712e0e3e80605029c6754e4dc9f8f88141fc7fac3749f6991cfee2042318f8f081f14f4d524b92a0e922287cf4c0202a29697259b7d2c6f7830f1e98a45f105925a4f5c9691c6b24e8f11600e36307467bf9ce2ab16f42c9f68b138ca40f1d18cf4411972b9fa79a8a692e8c39737264ba68ad24c6857974d5e7afefccec740bd375bc123effe5c6a21d98618b4a634cbb5e64aedb5e359c510ba3dd79e7e8e023a49c7a062d8ca271173ca8986ca2691606ef0aee25a90d5d9220599862c467a598183195c7c2fc5ff1926687dfa5092cccfb9533dcbcef2d3eaf3049dae693a0739cc8b5ae30cc49777ac209de1ecf5698fa63878f1f4ae98d9e1526257f36d524a982d025ab30c996a37d16ed518561743e693daf3849855361362de5a1629bd2af242a4c043330e314863d93bbba60d2f9a97408334c614e3ac9cc6d0d77352985f9cfe6e477ed143df7a430470fbd9d5739633b5c3d98310af3a8c5754b26adb42b0a63c5897dcfab18d143610e25f6cf7c8c91bf3e280c97e25b2971923277f313a60c4fe3ea57ea42c913863365bb7b82d0ba6e270ceb1eeff5973cc917f20c4e18e49a9b14cbb61ded944d98538a23a24e5e76fa90264c1fd3e7b7e3a7f18e67c29c24c1f2cad99914e629983049bbd0179eec2b2fe912864b520e6516b43e6b640983a753429c10fa299b67831995307eeccf9b992dbf4b29614a714fce1d2d754cd59330872e498fd0a173b82f49c2f8e796467888b0fd58240c6a46c8cdf0689fca04120653954e69b5fcb1d777c6234cfe73b16bf5eac56c9ce108a3a524d2535ed98f091b6110d5a1be742c71267b3298c108538cb03d6b1121968478e880198b3076b4f13c278dd6250d6728c274d2729a3b51e3bcb74418c5a42fa1647523469881086396086982c83951a19a71088399fa5fa86cda3e4962885bc18c4298acf259f59810163484636d0621ccf9b5de4fe8d4660cc2b0f6ebd5e76282684f10e624c80993e59360692ac6e06604c270eac4a7a4c4f0d02903610620cc97b48e1253c993247738d67e6d064644a467fcc16c72a268be8af6b8257e30fee7e5248fd0e983490e3a49dab4b429e11f1fcc67a955d7ad3a65b47b30770ebad5cf249df91e8dc10c3d9873ea92e48d0b5b25863d66e4c1dcbddb5d7a5a4a251319e8f0424444063a76ecc083f93e97d0be6ad9faa26e60c61d0c7a62def3e33b577e9d618773f0943e5a3c657ef2827f1e6633ea604a6f95fbdef39b6c39eb1974308ece2899a63560c61c4c7bfa8366a957339131430ec6929f99ad96add49130ceefe801822f4e300283197130973a9d67e2c92bd1477030a75c876d93fd2d999c196f307cf5ee276157dde72e419e60861b0ceba7d549cea5a7bfd206534949855bd28c91aecd608349dd79f09ce470f9adcc5843921233e67ea5cceb5643299bee389ef2899a0ad3b0999f071df72776c5c10c34e88c33cc30c38c3218b764a8eab59a6c41fbaf808e10a4086690c1a4fd490e3d32941acf8fc1d41b16abbd3ca8f9470c26496665fb1cb3d4877646184cb32e669f46ca8fc7c1602a79a226bf49520e6b7fc1944ae4b745adbef7d00933bc603615e3f3f2243116bd8cc28c2e98f54bb6a4269a124ed533b8603e0f4ae824f49b28eade82398730396bbcce4b526ac1a4b7828df4287adfe62c1844ffa8d4b3b8bda261c164655ba3b47b5ded5dc28c2b18e64b4bd025991ceaa478f038650593e65cfcf5ff23985105937bd5d758480f1a3f150cd23f568a9fef5d93c561c6144c4199924b9efa7b1b1d0e33a460f2384a4a9bedf639c56d98110553f818dac2f89c5c6bcd808249ede3f485ab9c67c61ec38c27985c4fa9eafe94448c8a186638c194c5fd627578dbf9681d6634c1e4395f2698dbc3849ccf152f8f7e7298b104b3b855588f1f943c135282b92fe8f98b575f0428f94eaa3ea952c91026513d9ff09c3f673985309f3463fae6eb945c9d10e64acdbd8ba7b17e1a84399d5c32695f7be56d419804cf3edd9fdad7e281308517557e926c77c70b08a3a9cb9da41369b29bf20f86f54e956a2da74e92f8c1a46bba4fc4d8f7d87d3009f27972f3c35cddc207837d4aeacf6584af8c7b309e1079f62e6be2ae07536aa5894be6c1a0c3559267436a676b34f06096f7173d6b29df529cc61dcca16bab4e47b1243f1a76309a97f89ecb4fa30e06bbb0399d4b39f42969d0c1f8717bd4fa7534e660aeb2ef58728f70ac8988f4f81688888888e85681861ccce92f272b1542b68d270ea61c64ab93b64c030ee62da182b48fa53767a4f106b366659392fa13c4e48ed17083d1c47d3ba91926798a6d305a658df0945f1a6c308985f31273b249630d0679a2e3055d72dcf095861a8c71d9c2de499f461ab2b4a9265a9f26737d514d7a516581061a4c37ca6c762d7b0663c5bc24e531d972b2140d3398b637be3bf7da650ea0510693387f322a5fcdb708d1208339e9126b4c84d29593308d319853559d2428416230a7d4dd965b64857653184ce7e124494e69d4ffee6048bcb0344127517fc16c1b7ea6b73afeda74061a5e30975daaf57e49327725834617cce67633aa6fb222632e982ccb497d55f94d88121e0c686cc1282688b338255bb604f10634b460ce41558979fa932c2266c1e8f6f97ab43b2fc78f05c3eb283979ab8a629e2b984d879277a4e5248a9970ac8101468e17345ac12427e5b0d4d11e0d6854c1a44adfa6bf5a14b58c0715cc594527699671e256740a26dbcb3d71ef9ca468a56050cb0d2fd1b24966d256068d2898d3e8d3a9a273583125d68006140c424982724d53a1ae840a6740e309c64aee697f3f5a97d8e9a0e104f387edf6f04bb993f09a60922227eee97430e1da3c1e349860d44ba2e5a80aa692092fc1248feced951f71ac29c1582765d39b0f2526093b0c1a49309ade9244b5094a2a756901124ca572bd62c557c58fab0b681cc1e8e129c5bb3c514bdbafbd8086114c23d5e489f459b99c1e078ddc0e1a45308713e2df427a9c9c3b3ba04104b37e2569decf56d7771a43e0c25e3d2ba805efaab75799bf74332a7dae280f6808c128aa4d88b8a97049586904c1a8a7a4b974de97d3ab348060d253915d928ed2f881c946743c8b9e9a4a6a1f18458512422eade4e237722601cb008d1e30efb5dbe1c215a0c103d399e888eb18bffd221a3b30557d92b55296ea34260d1d98735d7c1175b15c98acae93246239b4fd850b930a17dc474b505b59bf85d93c5df69ed9cca75c882db80ab577d9d27ab9944d3ca9f4229438c282492d4cdee94c4dc5cb8325a710420b73fa7eb693940c85905998d79430bb24b6b2306cd8874813a790589824d90ef97a2f2caeb1dc9aa2de76ef6aadada2bce436915ed1905798c73bbda9aca23384b8c268bde54195ea1b8b72482b4ca92ae604bb3d8415ad9d88a79b6dd67d6dd649d73cbd0642566150769fb6e65249d16755984f6d564cbf754b135241482a924453963aaf8b9eb4a0e21245d4528b8a27768a2fde8d650a53d0d6b4ab307e495e4b616c53a365495889fed34248714cd9369b3de1582bbaa330cd86a58511e7563acc3966f017d8f132d0b181138549ceee8fef8d550b550422223a763c0dc4d02186884818648811120a838957c90aa3a7567609018539959492cee7d9c72aeb4f98e4e2aec579edec62daf120d8d1030466628cb13b7af0404f98bb45995c79c14b2eb13046c47830d6c6d0e1f9219d30968ee7af6ab324eb9d5e8470c2a0bdc42cf9c363fcef473b745c044236611e69aa4bba7d35611243dc89e6ff2588c997098464c26c8267a8ec8bb330cb4863c2e496de2b174c90a67b311e8c914b0a845cc2689dddf2533a25299d821708b1844912259550ea1f55cf3d38bc12c63451cb84faf2f2748e93d476f4e0410993e81a93a4d39556b384634778e438eb49982b68d1e69f4aef74098e4567470bd2cef677e8f00c8448c29c24d90ec2cfd34db71e3c2261521d9f622739897fde2724cc16efcc84871e1d2a9647984fe8ba9dcffff89fd011a624454b19a17209f7d53d186390d1231b61f094edcad762fa95c48311067de5498915d6ee8323237a8b30c54fbb60964f9950da315024441126b152ca677de3f1f5bd904418664c70b1bf4d7555072a963b7af04044989457d6924ffa94f5a14318e676564eda29c410a620942a8bb3a104a552218530f505f5bbfd59d273871006ffb46ad769dfca93483008d3a853627245ef942567470bfe8c7116c60e1d15e81e6124e410417492ca7f59114bf28a638dcfc818e91146620b8404e22dcb39ff4ffb251c6b45c918791e3bce18c5c220430cfc220410a99bf04f164548f7eb0f261933391751961f4cb152d4eb4b25d9963d9c8c1d3d40d0023292a78019f70823a10342fa60309de344cb132b6f9a468af1c124079d152ca77dee85e878404484c78e6f41c81e4c52af7ac74bb1fda544eb0106193c7e871e8c5f9b7b8229a994f8b004be38c1480942f2d0972e615dc7103c9893fc3d6977266d0d08b943b2f7734ea9dbe4d381103b18d49b926fa92a0525e2111e5c07834eca77941c0da183f9d4087d75f275ae9470aca50242e660bc924fd4aeebfde8500e86f8d2692e5bfee479481ccc3d72b3e43fa1a2e83746183930098183b94e4449d9a1357459de60da30f5d9a47c5e52aa1037183d9e9b20544a3ab6589e438ce3011191fde2042329a40de6b82a95d2c830ddb7078f1136184be893eff298fe134bd0740dc6ec6c71cf4d7d5ff05210a206835ca9b9faa81c747fbe38c1880942d260f4f4b39c434d1244fc1543022222658871f08b138c98103498c34af6d8ef96950f73ec9041f608232120e40c18620653ac183129a9d2ad58421810d98142cac05b57b8f43aad8f8d1bed64c1d4c8984e517b0e3078a0cf31c6e718438757e0035dd88e1e637421840ca6202b8995dd94eefe8f012163300725c749764952fa0f680bc8481e658f30128e11220693f6d2f1faff93b42aa6111d3d46100321613096c9d1f5d8bcd66f878ee41c20040ca6581779b14d271393f405c308e5dd664ae99bbd6052e2f3c5aa5a1284fe74c16dd94d4ff5313f87908efe40081736295c90771f25a4630b499da3bafde45cf727423ab4a049b1cb913f52ab522008c9822947cd4ef6a89139fa1d07070fde102c343a3fbb33ab27f6772208b98249b87addec39a5734f64a0030c300e0e1e6b1a6285ae54955b8e9e945847183a768c611782902a18d6932cfd3615fddc5a8550c1245f7e7b4f498dd2278a63cd3f06233a7aa04dc19c97fc53ca1fc3b136e2397a9c1e3cce2c440a66d5ce4105a1ea4e9e404814fcbc157496655c7a90a1a38c0386884808142cd72c8bad70369edd154369195df5255e8ee1d320078f0b7902488813cc5adfda5f4159c93ec78e1e23650b08698231bd8470eb94e49ce5c2b156831026982adbb7744b1274f2c7c821835246c812cce9d744d129dcfffc83636d87e1134294607e0f2aab9628ea53bce058634248124c6b4abab026e6cb892a210409a635f10493730473c9e3c1eb62049394626ee6a9a49d8e2721a4084693927671d19f6d2c49045369ab1c4f25715f56bd3342c8100c5e6265bfa0c51ecf4308e6bb58e6a684675afeeb88101204c3965c6ad35310a662d743080182714b7adcbb966cdb2623608091e3053f3029c194fc7a99a42dfa3e3079ac689b192797cc0ec79a0e3146eefa8b138c74480fcc3ab7e356a288fd9e6c10c20383c7bcbc17c4b7038334cff494764a29b18510a203c3b6db491de369299d0bd3c7a5a814cee3885d38d64070611a5925d89c708ba33b8e5b18ef6ee7fc4c12748a1a8fe203105b18fc93605ab155dd64c6a316c6d1695afe2ef6e43071acf5e091038cef9103870c467a7c0b6861eabd91f1dc59ee4d3f0b7368cf71d293b230aa957c4a43277913672c4c23fea4511e7b3a3c1e80c0c260529be0e94ac8bda8e800e415a633599674474bd2eb892b0c26c45ecf7f90b2dab6c2349784abf1a042c7c4405861acf34e49475395ee470ab28a035185f15269efa98e1e94ac0e3078ec90c0998b51068fc20090549863a77efb9a4f1f55840a63a998d021f424b1ce013985c93b8eb89bf8f8e12710539884103ae98f2799cecc387664478f314ac70e052905082932712bedb97a54df71ac29c8284cda7375c5cf935b4b9228cc265809627c2e2b769540074261fefc4f1a57957a4d0e020a53102fa2f6a43c66baff8449cc74271952f78469f652c34c8ef0103648278c1644ad728c30f1c40a454038610afbeae2c1b4209b28c78fdd0a3a328068c258714675ca55c984313ebca95241c684e93d9eb5472d41eb209730c927f78a2cabee402c610e4ae75c260715b409a33b904a98720eb293aa5421548477209430665dcb693dfda37d1d4ec2203a2e97bc3815aa7449983ec9933ac32f69af4e248c9d7316b2592a5eb294134020614e52ac3f29499dae217c84f14aab44c595a0ef7b4718ec2459cb62b316449e0248230cebdfa13efdcba7357be4ac00c20873f495af915372ecacdd812cc2f0ed39a724499f57e9bd035184a63652dd46be8930e969e7de561322cc49b0a0e43cb73f997808739f1c3a7f756e3e3a8630ccba976e8f9fe7952d3b7a8c0152087385092aaccacad3fa3b104298e49c274fe94cc92729772083309a14c5db4ef83d49f98c8b00118471bd04115ab505c22467cd89f4be193d933f8000c2245ea94982ad09f778fb00f207838ed61243a55c89ca8e1cc703360b103f184cf46407ed265814a53e9845893b1f4cdb9deadd55f7352c207b30092609224f4aa146e818881e4ca9821e25453e7930d7de9f94dde9cb528907e3c75d11b32d1fc3c63b984a12ded1ee73b585cf0e4637ff244bd4bc852d0d01a40ee6fd8e7f92e42164c9613a984ed949c1c4bb73309a6de559ff93d262052207c3f85ba80c65aab3ad2071306753bacac4e88ecf4938d6e06052b71f4e1a25ed84ac099037982479e729974a8e23103798a40c93d3d327f9244a38968c3698c6f7c4025d49298c5e92b4f6a7561ba4305e272988f08ff9f18a8d51e0ba27fede2b51984fa82c3988ca2626e3e8713c202282a3c7b1110a935431cfe74b440618bf638c651ba0309fe7b8784ba974ff07478fe38182a3c719a394d1e38a8d4f982b892e493ecb86278c95a13f89681f9d7a2f828d4e98f37fc59b4aab8e7b8d8c71c2d80bd8e084498cf214f7d944da48cbe88156c60ee64d983b09a677c207e1581be9c1838c1d233c72b0f10023470f321e604313e695b9cbda2556ac14ca84a9ead2bcc2ab5cf3b6810983f2a4b3e92e173bf162e02e61d29fd3f89c9f58c224ebae9a149772d025ab8431745d48b93d75a67f4a986dc7e3a85392749f3b933028757ea61e2e9a90ab244cf2cde73cc92dfd9a251226555236713b5792eb4a9030f666ea8ece71b9f547184ce8899572d8ec27930d47a8e631676e97c2c5b29c3357322ea693798e8d309bcd99182a4f4698c544dbbd9362c72c676311c6f8af517f3b1539491b8a30d6af4956259deace211b89306f29254fdefdca2b44844907f125c9254b87308fbe88f877dd5242c9109cb7b755acdc8867aa9ae512ed64edea92fe42649e26a90925da11e39146084c2ba75bb070975e5e36fd45c830bff5330dc2682a84e893ca54d23d128449ac1dcbdab1e44cd347caf51023870e0fa8d9888d40184ec977da121e7c2eae35041b8030cf0875418f49133abbae828d3f98bdc7cc6328e1bfa4df56b0e10753b4ecd43986862eb574c1461f4c3aa59c88151372cec30793868cbd0f8f6300edc1b0ff1675e73e7b2c7a30c70ba34b6f437930c7ca75825d875151a4783045b97eff5ce927687b07835d4aa72d9dd2b7faec6030b9354dea4aaa83c9547ad3b26923ae6a3a9844fea3dacd3907d39cde975436928329e8af3775f6353ae7e2b0959bdd58f0d2f0f9d0ea13b327354ce060122d8472fb70798369943e7923649a363d93c1861b8c9efd74e53459a4fdc9461bcc5626be2de7e4613596d96083c1cc7bc5ed242965371b6b30e64965629b9cc3869aa8c1b8ee57278cb2f8f3370dc6109553ff4915d4cdb78106538919ea04cbb9bd3a66e30c26cb2c25feb6554dbe6d9861b1fe932d8379ffa4977a8768a9d82083514f8a1ba5647b13deb63106f38968ebebd777494b0c9657ba4a15adce84b85ec758cf9eda088339b6eea2c5561fdfda06183e1345282df94c36be60ee0ea343e5fc1f76e436bc60f26c7b7ab65f4608a98d2e18ae4be9cd9bc8535ab4c10563a566959cf2ac6c09da82f9cce4b5785af9314b74f0d841861736b450c7a59a4d116d2f910f6560230be6f324f4945905b99e62c14ad7ba6e8bf22aee5a512ef6d3a7bdec25465730a7d4f30a7ab9b5d91d8fd8e1c086158ce921174dbef40d6c54c120fc3494ec698f8bcf0615cafb24a92a8f73136c4cc1586f31f73b093fbfd0166c48c15ce9f77bcb4636a260acd3db4bb93d237d041b50304925766c7d12591ae3130cdafee97f174708d1d97082b9e6e3457b36a975afb3d104d3767507cf498ac8047312dac389d9fda1dbb7b104d3e568b2434cdf24715382495beed265f2565e5b36926038d5aee3a7dd46e9910d24985fdcb254f49344d1d8c6118ca21e3bfcec67c8f8368c608eb2bfdf27df16b0510463a7f4add75f2a69fb88600cd52688b25cf2894ad918026b495c6ec4e552d7547e0f4a1b423068ef0fd9ea211b41309914849233bdd2930a8ed8008241e9e87f0f1edfe36cc0c60f0c627e1e54c59096c432011b3e3057be24e8d5d2ff91131b3d3025492ceb24289f07660b19f59453b664e5367660b46025cd770a7e27ee1bb0a10393a0b355d0a6c49cdc7a2eceb832f11af54eebacd93fc174ddc38531e5f357ccbacab3a41ab7306d293f49baec6c72d66c61ca3989189331792aad8561dc646ffe52ce94125a18c4ed7596124a3eb1eb5918c3f24249c9446561beb51cfc46fc9b074b2c4ce24ef7a7609672c3c2dc71727eccbcf519ed15c6efd03929b58a7a2fb9c2fce1dda2637b5ebeba1558a6ac566e37bb9226a5c5cf41e7c9b2c27c927251395a92146aacc2282a6a3b4a75aeec5e15c6d14eaf1dd33ac7cea5c258525b0e2f17a302b970332e97565b43a4496652874a76965398e43a2d53984f30417d5673bf4f580a83752871428b986de9a430688f1e94bcbf52265b46617aed1c4d4f6e51984fcad151d27ed2fd9650a4556d1b6f6b276b17f4b40932f6bcb5ab041446134bd962c9b7b6757650e313469fd1b9d53244bbee0993af97ef8fd04955a83bc1cdab66da5710cf4e31cbd924f9d7928436e1c30993dc9a32e93b6b688b6dc224bf92b85f982531c9911c270639768c3132f2c50946446a68c26c72f62b49b2d31db723038c9419a89109d3a8929275fcebda5c70acb54007185803130691b21d74aeb0d42e71acad8e0d5ce230cb15e4d6e2c5c53b669920fba4b4a0053a3630868e2f44445aa0030cdcd1638c1a9630f9ba99a8562722d4a884e9c39ebbe76d33b97447ac8c1a94c84a3cc1c29c609011068a8888881cfee204233b6a4cc21c2633426f8752aa8448504312a6fb24464c3249bfc43b12063359c2bcb2579076d58084494cbccf19d294c7f88f309565c95b727f76cedd11863fe9753fc5aeaf2835c21454b81613849b9ee5cc841a8c309c27257aca6d1c3516618ee3f329459aec972e351461ec24769f5cbb9c936cc231814e84c9531cd13539282989fb4c0f1159abb99ca564d55dd944a77d7d8f1267cbc4b126c24344e410a6b41571532a6e0883b62b4189093ea693ac1086cfe14b8858e8e4ff13c26872aca8d369ac31089312afd610844994b096d11a5ec2f9350261f6512b2223644c4a926a00c25c63b2bce435499063a9f187d45ac3aedd662cb4beabccaf24a984f1fc60b6203ba75812e45bf69d478e304a1f8cedf92bfdc97af12509831a7c30575c32a51b62aa4f4c0d0235f660f691969dbc8435375f0fe66c2d8b553a79308a554af24355ea49610d3c18ae94dc95db42fc841a7730c8efe9dffe24ecc8100f1e070c2fa050c30ea61377d7501a4aa5243d47a85107f327f943892777ac9c950e591a8b696dd9d5abe53d73e7cb73fadfb16accc1a04ac7537147949cec6bc8c194397bf29efa134f97e2601491fea7739244e6e4e1605c8fda59c4e4de60ac9467fc73ef07cddd60aa586da5f32a25d1736d30760525b96e7ebb497a3618de743e3bafd43fe56bd05d4e342b4eadcd6c6caf24194a3afb507f0d3518ee7292a2b2278f932e35d260dacc9acf6277edd9a3c124e6ad2709759b16eb3318de4d9652aa3783c97476759127d766b635ca60f6e829435f830c26bd9fc49667dc78d08f5146089650630c664d3d53e2abcf6cdf0fe3ec381ef831ca08419d180c424c989f53d2160693a454f8e5360fb750030c2693aac5b3946cc2a41cc7da18d663870e0f94b1830735be60f88b8f3da215bab62c36022f6a78c19c93a685b78aa13d45ab0b860f4a5f0825286b70c1f09a1d3eab6a5ee8160c164ffa87af12c74aa7580c44448ac5008bd5d082e145d62961f4c9e126ad9105d3c92a9d2b26c5a7b863c1bc23adedd34db8d73304a8c6154ca225f541050b4a556811189fa30222223c940b35ac60ac1291a1fa556a4c1611111129a347193d0e0c35aa6036edf94b87fc932aca5430070fbdac7042df4eb0c614cc66e2976052c5fc93f2480d2998dd4c84f7290f172f55230aa65fadd08aa7e33cc470a80105e3883137cbe997e65736d4788239598f5c874b0e359c6052ad255ada5911213b333bd46882713f5a9db0f9d60e31c17cdf9fd3aad4623cc902359660761d755d4afefadbf8c5a1a186128ca334fbfe93defbeed448825945a868d1d35e03090611ef624aed4879d43882712b27a955634bf5eb358c60aad2714fbb67358a7049f59e939c938808e6bcad1ed76e8760ca3d9693206ad61082b143c88776d3cd16cb04358260aea46b72324185ab076b00e1b81433d42a2c8ab8dc0551a29399249552a97d8d1f984d8b56b9ec8993278557a8e103535a9b8eae257b37e52fd4e88159fe54bc3251e228dd77176af0c054655212b45c8ea2c4b90a357660aecb41dbade9562929156ae8c0ec2fb626a77acba83417a63a93d159f726674fc185495b363b55797953c75b18b6f52d4f126267e2b7854992e2e38492dc249de46b61da2c71c2e4f0bf2047b43095e898dd3ae29f4d3e0bb3a7af97deb0cb9eaa2cb62ff9aa97f718d194cb0cff112d37f2d6d758983e4b2e891f2aec85889f400316a62057c57c5dd42f582840e31506cd2c61a927748539e8e832ff68263d7ead307750f31d2e8849c29dd06085b1626a8b49274cd8b88a4a442c058d7313b9e4a9654a7d2e5d5285c9a4dc135d52a575b469a4c29c7b92d6d1d79d63e868a0c244c4a0710ae3e9f0bd6c72aa18217f8186294c96bf334a95a814e65457b12f7a92e70f29cc96dbe6846813c4098d51dcdab1596d95dbb3725766774e7b3964e7474314c61babf4ba8d7b1119258c3030a0d7081aa130daef99eca26b94924409a0010a83ee943e477bd16b717281a443c70e0f9082c62718fd2827e5496ea5fda5e1897225f10a9e69736ec92ba688142d1f3a343a612cab1a2da59495bf7881d2061a9c30ea7e29bdb9563672b209938e517313ed0e2db7266864c23452774f3ee5d1c084d124958408b52694d20b8d4b183bea89a2a584eaa4a338a0610983c94eaff7b1e4c7e98cd8256854c214cd3abf9e5ea724323174e430fc010d4a182b889cd4de1eff91111d2de04998d489bcac354aee73342461504a968a7f13644f2ca9c3412312c6d2d7395b6ceb8a2e818429afa249ad79162dd5f50873e724faa7cfa9021fe82277f4184305341c61dad5ec3b13bc4db449238c6fe349845279d9d1630c1a8c30f98c3e396585e54afa45987784567dffec52ea2bc27472aad026428930ca899d3584d433c10411c613ccce82fe52f92d3a84c90ea58d7d0ce6d131b99ebfa453178331d43e5cc949dcb03b0ce6ce7fda2c96121a623018f6f6ad57b577c4fc05a38667a5ed9e9cedf582d994ac1b66214f50d92e98cbe43ce2e48e2723e582494a9ec47e1243883db760becc933abf3c5a30c7198f9d334e8e9672b260d61e19f723c3941c1e2c98a4e774cb39bc82b1fa0437394f50a63b2b98ee490a4af96f55309c9cbea4b04a3a4aec50c1a8a52459eb3c9e5775a6600e33a6e4cab625ea5230493af89b641e6b3f51309d0e5f927842985c262898d38952edd1975aa6271864fb4f2c37f7a4bd130c9f9e6fff479714e44d309c7fb8b9d7fda99d09c6da927d7e76dfd1b30473ec8bdd211e2598c4934f1246defbed4930b997f02aa722c1302b7729777a049324eb884b7ffb4ba9114c9ee197cd46adc6590493d23947f688a9b19208e67c5f4afcb786604a4a89a14f905626772d844a5a4be6a6b420986d4c7de7ecd549be1a08a6989d7f75744f0e57ffc0f4b6f7497e75137bf28129c9edad2408f5c0e89d742ced3d99ef06e081e13d073542895795730cb003d30735e1a7fd94a43d06d081b1ce4d2a373fffb773612c95c4649c50212d8c0b939457413f2b4c32f71626b12a7755fac753ad2d0c16949949a7933441ad85d1c452525dfe9ba0246961389df3293a09cfc25c2a999c6a45ee7e6459184cadefcf6468bd90d1d0bae51eda6358982aa98e176b665275fc0a73f2934eac10d54969ec0ac3a5a4742859ab152e6e8561cf6249692c668541c9392959b7db7315afc2e0964ed21fc444f6af0a63a5b8a763f57f50a154183b85fe977b4b9d765498f78279c7abb658fc14263b25cf94ae2eb724a630f9f86aedcee849e25218442e5be9e7d51c31294c52fcf2d013fbedea284c77793ea814aca2294561365d9e2be72f58284361126f3a7e157b1b27288c25bf6be8ac7cc2b4b67e2dae15ba454f9883d88ae7c1e3f3a913c676937d494a61ef72c2a0e2e83823dd8471e5c38cbc6e35613c41df7bfcda4c9843ed9724a65abc9c840983924a6c334bba84d1664669b38d1365b784b963f9af8b8ea2049d4a98f7458ce55f7a36694a98f29994444971d47a3c09f38ec936fa490ed6b1244ca2b59a4efa499ac69130c8be3b3929d95bd9a29030e65ca792e3cbcb84fa0873d026b9e5b78cca9b3ac2a44596faea901b61ca69ae47d5ac2dce087349277c92e4d637cf228c1d64fdae8692e27e45986e564dab2849844984665e7c10617eb79adb2b93c5720e61de37d99125de49721bc27852bedd854fa5212e84614bec92ad0417b92c21cc714e0af13987748f0ec274769593d20561ce490e2ae6399dd52510e6dcb145c392546a41409852ed5ec9dfec8fee0fe65b7baf302d294e7e30a59c1d1643d594ccfa60165d1fd2fb3a7c306cc7f10ba7b407933071d2cc9cf460dab279fb364bed7c1e92753bc28329f324fdafa6f47e0773579d68b9ce04b3123b982cbbca24d926d33a18e6522a19cd4b62c274307c2ee93a4997448fe660306d7df3a3dc84891c4c793fe8939f963898f4babfa453163818c4290f791f5765cdf2065385f4b5a073bc1bb3b8c16c6f620853e165d652da60f4f08af739e3be95c206b39b892fcaa41725e8ca1a8c21bf3c49d94cdcbb8a1a8c6772906196948d29a5c1f84905d55919259c8e0653c9f5a994fecbbaf6194c494961e664a7744a6c06b389153b3f85abe42d96c11c4f599b583aa17e22194ca62e6752aaecba0b8ec1a08425ede6ea9fe68262308b30f5ceaafadc1e86c1f4ef614f76070663a67accfa49922831fc82e924714f8e6a3a3a95bc604e13ecabbdd287ce77c19c479b9c097565a273c154b2e89c67cb948d922d18735bf694e79c44eb68c1e4f5bdd57766c12c5a436eed58309a8e2e215bd1a3e70ae6ac0e72ac3f8897db0ae691efb89466ba2bae82d154afe9cba24b4a4205b3e8ea14ad7f3f340553972cfbac2d2ac7560ac6dbda17a976c288340a0693548be93e15ef040a66d1eda1734e2b25c62798f4e4f6be13474b122798e624b992922595a3774d383f7fce6bc2c4048390bb3afbf92598fc82eb7588fc355f09c65ebf32c90495294249307a091f265fe34f8d90f0dc69b5bee908e69096b6334bdc2e31824197923a3c9ef0962e82c9ebe499579d08c62c49fe0e4ac7f29c0fc1a0669f443f4230691142e7f85e97eb098249764b15353f9bb0190826e16d3fc668f14ba23f30ef6ee7d82bfe39547c6056cf77f28979d22ef6c078ea7dbae6f425b9e381a9de5456801d98a4e9133c649790632a800e4ce993f8b0a52e495dca8529c941efb6a7d125f4b830658c3ea1e32b7ff66f611495b49f2897440b215b98d4c5ce9df6d7c2989e7b3e4dc80aa784162649501d4e4a9f59982a5fee34a7a15a1d5998fc52b5582c11e3e1589842ed7d8c530b972f2c8c76a9b4b49e9612e92b4c6bf5a684570f3a565798f5ec4df4ec582cb5c25ce5254bc7ac30285946ad5d0773731506b3551db1ee245bac6ea8c2f8329761fa47fc5c375261924acb838dccd4ce5e06375061183da32c644d580ada1ba73055123743a7cee12fe41ba63009268fb6c8d751e9d78d52988457d349bc9366bc1c3b7a145298e49284c8872c3f39ba6ba330878cf77ca5633c4461ec78a51d2b542835d95018c4e4cabfdd31d7b9ea4061d29f5d2243658652aa4f18d63c8f993e314fddf284f946bbe57677f10d3b61ec5c0f93f3c70963a8a8559f4bc89b302751a2598df6937aad268ca7948b9fbb97c921ce84b13f9f294f3ae81cbc574c9c24955b77e42c9c87fbc625ae5461b6dde5ed533d4e0f6cc06f58c2e09d93a05f33aea2c602c6186160a08c09f0e0713c1002112cdca8843996a77095f1a673d439521a310c54a00222222351b8410983e59c6fc546bde961e8244cdf95d2892d318eb5ff1da9b4244c953c9465257946c294474e7a9812fe4952c1b10609a39c5072e193a4196ac5b1d617b8f108d399799262c8ea33417fc311a6117a54e720eb64cbb1c5c08d4698e4f06149caff29c69c811b8c305b9abfb019a204354238d6346f11a6bc565a516c64f6b25544183a7410e0462290183964200619356e20e250cb3e49cc0f110f307e64878e91314e186679e310dcab9ae5aaf612aff6d2d2a25a4ee3fdb2e771b47b84916e18c2b0ab7552c4f61f00038c1c1a1011d19163648c429842e54af7b80961924f0ccb14ef70acb93108f3bc09a3834739704310c64faa7122dfa13c3dc53a702310a6edd9eb3839f1fd18202cabd0128f3f9834d35e7d4ce40763ebc993e2754384b8f4c164529266d536574a94cc0773acd87e4f2628a94df6609c1197a753a718a91ecc569da4e812f432c7240fa6efa017f27a2c3daeb4c383515b3d7d4aeaa526e838d6380437ee60d01e21a6afd3df73c80e06a5f5db2985ff532a098e35ad8329aa85d077177f564174830e061d3c9596517b920a4a1c6b3d07e3bac54f218409ea2bc6038c31c2c83132a2a723c7c8183cf28b138c78e0861c4c96e49f30f3b938984d1825bf87d072c265389852d74f75923d37de608ab677d12a454b5ee21b6e30e957132ba80a6e928edf688331457c08c71a8f3074ec4846811b6c30fc5ada4f49eb57fe6f0d0665a1717184ce31b4450d2625f9e7a4844e920693a8917aa27c43833662b152c999b55cd7659669c71f79517fde1b6730b97f8a255f7622b86106a305e56e266726a3021fe8e24619cc27cd052b49924f4723ba01094ca0031bb080de2083d92c49bdaf71b3bfd28ed8e181fc330737c6609e190f934fe34e509288c1b05fe7979377bf430737c26092a27ba31fc777dc1711d9115b3018459bcef3f0125bcc1b5f30ebacfd87a5d2297e7bc13096a4b9986775c178d104f10d2e987385e84e616125d8680ba6abb43c694ae37392168ca5a24b123725bdae9c055312840e65594e97ef78030ba614a49724ed72ec8b3c878e118c581837ae60eeace8f1ab244195d0ef0e6e58c1f4a24edc73f8b8979e8e1e6394b1c3f577e8f01edca882c173d7ae6bf65430e55ce9cc92494fc1a0820eb758495e0aaa6cd5db88855c8e8b6692a022439bd2bd200ddc8882d147c46559896e9dcb1e3ac000818808fbe006144cde41490d4f571b3f3dc1a015c4967e497182e1c6c29eef5d9aa058b57b850baba92587e95df5b49cfac30493c9ab5936429897a5780e3012323c20222222222262b667071967240d3796609257e4ce2adee8bcf90d2598f7a44eaa74ca3e13db8d24183f25657e4a2c1546ea379050ac17116fd92e1575f31c2709fa3eaf590ca123183bc4b5fd2f8a18fd19c17ce6bb278e943d55ed46114c2a2f458b78b5d42797c00f6e10c1f83defe142c9616723004ce1c610ccb51d2b489318e4404881e6b32e5fdc1082c993fe0e3929cbdff4378260f67b952f49506dd7496e00c124668e971cdfd2d7fd8d1f984cd0aee4f1e24bbcf3c195ecbe4ebd6c5bd3e2c3fad2647a6c6903377a60523d3d61ddc28e123a5eace0060f8c9fbdb49d28d7e2c9ba11dcd88149525fa3de54bc93a31b3a307d4e69b493d225a7b7f4183672616ecf3e71e93b2e4cb1b52d4feaf4ceb215bd85b14d9c753dadd2f17f5b9884381d4b85d7ed59cb0b6cd4c2b42725f96413e4884f1bbac0062d4cc1f2c7cffd493c95100c1d3a12306cccc2a09360724ea2a76cc8c27c3baaca3c9a24c9c1140b93989c7489564a9592f20e6cc0c2b827e6e6e9b5e492546cbcc2a0adb5a43cdeae5efa0e1d2362ec780caced78fec2862b8c62493e3e75ce92dba41506396ba2844be12cc8c80a930aa1b69ecfa277d8e929f0639411825598ef248fa6fac367d5481566cfe9e3a98f492a0c4aec9cdf17272ebd44c595b4e452bc82596e8fff947ff2a90b9f47f6400e30c600c18e1e3cfa14e6fb539522dde4050b99c2a4939ff292e27b0f8f6ba864efe5d268280e8703a260281008040cefab0023130000000c1c90c5a2d1704026edfa1e148004593626423830222420148e4603a148180e86018160280c0602828150280602395888745e0f07f740bc92de1787fab5e38e3b6c61d8898dbe50487fa9af90673ba5b947c15db706850a1645464c6db1c3f4e85571413f2fae7717138bec9b43f0141685a492fc6754b5d73e0cdcc15fc8097b08af9aba08a4d5859861a83e7eca5245df6688966ba416391ed82930e791217004453d786b8e3ed7ecdd7818d46107fa72c558c44458556ba98d22348c3a513e96e7ed52b98193de2f561ed18eea15ec4d3dec5cb5b7e121f4cab8c16e1fdb6e8b25f77bdca8c4122d95e631ac18b254ee0954ef6f2bc2d7fc75c485ea966cb4db1701fd263f621e6bc7e975f62e1940ea46f3527dccfd0a25a7d412ab963eb4291505ef2382b562072e7696388827a427e37afd40e15a576a9c8c5c79d103e2ba6e7f24ce698abeff4e1a4b49f1efa31cbf08b42ccbb13ebc1bfd4f6d29bf224be39dc6fcaa4633fcb663c041e4a222e73ea42b60cd110f167746a96d324c65135742a4f6d6e947c735dc4d1947aa467788844a7bd137ec41f704e3a51a395f5e6b57e979b04da97b03f5baab8720b87d0f9dcd965e71ac2e68f01be7b263d6668696107a564a11ee5a378bf7611f93e7a04ed743ed15352c00806ca5e04111743272e5fe8bed665da32f3c9c1fe2722cd7c575ee9a9ceb5ec298b2e73114dbdde29b4a5ff4deb1f48873d8c52203ae1d98fa003ba39f9d13ab752a1e496f8c83fd7a61238791d7b0bd62c72d4665a0d458db1ebf2e44724cf0df06fddd309766e85526700292e03952e82bf224e3734ed45905671c1a2fd5e935b95b7422a2bb8b6af3a7e8e09d617a4bf762a4b9218ee842b5ce442828a925179a78d166e5349d293c6c4470305e1302176a1b3a62b15cb9a4d441101d13a55e995c7277384571466ad06c9b9fd048804222c738230351b5810ce3c27549dc46bc02f89ebeda7aa7bef3854200be8293b7ec1258bedd99655a072fa69290820bbec70b88fad5fddd7fc59bd4adaf8dc0c324ed04f9e2ee951e7a5fd8b7119fb84819c5b8d79effb430690dd71055ff28d370d0e1a06259211f50cc3712163a20854214653e40b9489bba3cdacc71a02ff88548f53555ca02887d0422fa3fd730d6fdd7d9f0ed4967c754e5d82c04420e8a6d2f05b90fbf7c7a48642e00b281bee9a72843f2203e4485531d1a79061edd1ce48e0a254cb4be48cecbf05dc10be05bbb41788620d48a3408ba5e9049310adf3a21f850c689a6202b17dde6f409d22fc301c2f63ac7a202dc9b866a8fd037fc4dfdeabcbd25dca99d5416805af2654717b0c55536e097a10713dba43dd02655260f8c04840f07d6b07591158827a02fbf90613087e7bd9e179084833659757e30d874c0ab231052b8fc8e65da72218b5bb6c4fd83b4c94eb5a006a40928b1d36ac3890dfe5d759252de4a7bc0ad5bb248328f3dab484f58a278e85be8416d6e2fd6d1d13413c092ed641b9d32e8f64bb7f004d84c06e27d41d1c55137b1f11026889f0c860b24266ea3b0d70131b941aab2d0888f6d6e2fefbc16f40d54490cb751f2f00964a1778ea5ee8f166fee89608e8261489b536bab6b7ed0dd15bfc6b37b1a2328dee3873620db4a110f7eb81496c05364201d0d5599e17d9c4900a619b5d5be9039d9bd8486dbd9212f61b825e49c7266aa56706b4f9662b2c865b3f0ae6b584e9748e96fc515cf6770722c06729d4ec0cc27e8e0804c295efc03a76d030fc9da39ff360dec3d655aad24bd12ab852afdab46c69c828082234c201cd7ceb44046aee52392a52768c7f64d0d3452d490bce32e1144463acb7fdd40a9bee04129b8185c15de4897281e225ece4a0df243ecc35933ccabd70ca586bb147216efc0b0eb0011cf0ca07009c64f53a94c412e4035490a1052138fdf44e737b4524e0ac48ae150db0e7acce4e4c7aaa59d470eed83bfb76cc99c4d694b7e0e6b1af39ba9bb9f7bf6096d8260843bb92205f956ca63cf697399faa680be838f9019d8565f13299c8a2168f6ba17a6f44dba8f2be0b76445ea8d190d6c34748a865ec9591a95fb98f5dbdc947e35ac12403c83a71aa6a6f558d7efdfdd060022b4269722b67975fc45243ec1b972c22c1ff7c30b7d6136785a56f7ed6e931255f29cde070dc64a11c6a5220166c44c6c31547474e7b241533a9f68f7e2188a8b8d9e9a1c42fd801667343dde54d44abd1c02eab4f97637decfe0d0e6d6cdcef93d42e69f83dc4a99e226e42ceaf66a00d342203af9d8e48d54b844f592abd77f5cfbdfd824552cb270c8f5f6c836d5ba318eb82ad371179fd5d2f66bbb68833edc52d6d0364a5d396325fc0ebd058398441466e275e03a4275d18f3629a35fe6c27930321e2e7aa031ca09ce1999580fa44713e378e9e8caec94ad1917cd5fd0729ce192a0221df15b78952208b698b1db162f23baed325e0d1b85f36e09f0a7598a6fd786c68868c9a9597c6b193a6d27469d73f2c1885a94971a90208d0ab57332dc20a23adae08d071e6f17ffee108bc15003ca8b35fcf9b5302c71d4e9a85237851ed9da88ea0742d4b85abd799c3678d025779b89358d4d4e90cce8694c78f5a42bc2006583fe3a7ccaa07c6e47314319865b7a5b3907768b1fbf6367c38751d6a6ece8b686f8fd0f5fa010a70f015f9b01bdf4be0371c98fdb8f05d66008242fc1b9a62bc7684ce72aea3143735d15c49400bcc614829722377858783d6db6215745ca0069cca9b072ccd1df8c30d43029060c61b1158ac4ca92626051d40ce2f8c44da6a0978c30d09225bcad0b650a0c9dc69eb379ee151b0f0ad87da583db8048e952d67367d629bd2655a7b58cc70720f236d4f7b4bbcad172998b45197862262a99aca439e22c6427a28b48f7213d57958e5a12c1f5c37f8e0f0ed0a20d8769f8b0e14528d3c480f91646a0b70a3714d07d91f89f64c8e56278b290e00040a80d340ea66b88e72f82a40e37aecbb4e88a2ad4bac04ba116c111855e1f5f21e6c808bb5232109a9da5a50a5b81e8a263bb5de7d0c643e53f4e82131624e2055dd665a20a99a83af69ed0fae63db41896fd0d047fbf12cfb94ca2266163e9df02be69e140440bda82a15408a28895677da224e92198dd30e6a98bc988fae40db589c8e594c34ab961ca8cbbb0548c001855aa154a5877e8ad0fda9bec92d5526b19790b0d3336c8d2a0ef21ef2b69f889e66e909121a8ae957ae966a593b000b86776c02543c594a7566e327130cd3fc1e784c464bb9c9e0ba68a1f1747066e69f26a6870684af4731293de40a4633aecd87d4f4132f168e5900d8598682072352493b92111aea8e10f09733bbca0a13b58f01a1b7520b6c5f4d7eb845be6cf69a2723d1a3d75e8b6ccab9aeeb93331a0b3f0da85d37a934b0499eedb60a2c4fcd90cb5253d467058e03402653f53660c64d0e0a48030d2db300995ee86433b573828130e1df662044749e5132e23f40a410c324751c32659891e7fdf23afcb66e0dab28055e550bf7d974096417922adbf12a9e8aae4ebe49890c425f72890392889212328ef77820a13051d4ef72093be55fa025bfb7606b9a6002731613f6fcfb8bc12e5859f20a685a8d3dab2c5d97572fc01eae327f7839098ca355196541210ecaa5865aa460e31219605de7c62a630908fd3e5c330437f0101c179033068fcd0978c61ba4a516c8dc2024af4da5efec2d61e65326c62d85576e2ba4be659d45a702fa0a1ccdd348d34a265b0d5f2c3c2259d5c815602805a1235ae72a54df006ddbf854ff6afeeaec02dbfe2218c978b59bf0974e9a4a5878124079ac0cbca1c2d41f448e1d710e121d7214d40b7138dc55b2c6516672d2f7e13ba9ce8b9278c2a485ed195011b238fbf7a7a07b76b0a13b1c58043d92af696b7a64228e835c350d47b83b00d0d62f209e26ee89c7b91745f7bffa210e91f81a15a124f291e530d0071baf9a679378d4c8f0a036cc76343ad5d3cd59154aba45a42376e6fa60d3eb4c47d15b62a506602d7b64e2db0997283f45bee9de80a3850f5cb9a0fb8505ca9aabc0b48f5e2bfd19debf82904199c8a6cbbceb7362d21296b4335989acb64bc4842ea94d8fc95100b1ce605108cae56e2a8f73e74fcbe0a318a0aaf91fb1c9e2c3822257a280bc4c09d69a389b83870c3155ab1a7faf05768ccb0441c23207a89b153e4656d6c8eb31c62b24ea0db649fa7ce8514107d4a54a17c86971b732c3276a2c0e11b17f6a2a97308abe0fd1aa886b72b1a2780f05c0989f69d8b8b3d71ed94a8365197580b812e870b9a12b8b6273b0b3af22b90ad142ba732d2266d4b1caab256e0b048172cebdd13bd2d4b0cfe7528b2847ecb696686f810d9b82d7928bb2369a2f1a4f92f13ecd22a78f7ef0716d1b32503d32607df515b4d0320df2f07804580ac8544ee0a304305c55824d879b07f17c78890b00139a706575f922ad738ca99406743357b6a02fa716645f966eb6a3c574f95114fe330d2695c587e752300207287f189aabc5941c6403b12d56e8cd0c6f73e0e0d6f295966bcb8595dcb896e16daa8d1d3eee3da7014941b3146802cf2425c278c01b884a98e9b8535a7451df41bc4e79ca69be91c866c2632ca41aec791888257327ae082328c62f28d35bc4364d05e219fc862498b8cbb57ec9e30e0a38d12acf2d18b90d6b2cb3610b26a3f5535b9e497b87c7a4e47ea6279229d647312040799e95fc176e7409255d3b373ec24e67126a43cc4d73887f8fff6481b9f7d4cad96b21d2de773451704294d8f1e8b53f8d38654554a46faf1e975b8bd7808f7c1476cfc3505bb3b1d15ff6f060e959adfdc537201e0cb4b81bc851c87b9b2bf2455cc3218d3a0cc1be3269eef01d27d1440ad0254098210a6093f7e1d1029976410530902648e93ee6370d3a62b2bb09a4c9be383b746e04a849752f306ac8315a5e32e8286bea0e486dfdbc6c584392e29d72f085e6cf9a86139eb312e2b92e12123dc6447fab35af71e8f91e8c8c877fcdbfa02bef4c2016ff38d99c56995680c754823083da63f041c3cdd3a51331c9a97528eca29a96ceaf45510f8319af33f89425278935eaf3acd87611f9a831dd343fe8f43b4fc4c196f037784ca5586a13d6b9ef438ce86bc404ef55f5de3de194ae97aef54175e66995f8631843a1e4c77dc85623011a6b2244d8d83a2f14a451b283ffc11595b114f73c392fd8856502c4abe9ec0268865f0eaf6b8cb06330786ef8ea0c162b7bf67eef6a574e981344105542e7928e719504c12200790671efc0ceb9043f4d605b89cdfaa9971f4fe7a6248c63f89ea41d5b765b8811f48b96652a33b36663d97b2e091ae8e6699a2d46451eca1e5c891134672395e857fa3b65eca21a256ba468f29d2b8e549a4624a25d26f79362016e2cff01bb2f81e12c0bb3f2d9e5d69104acf6b1dde806c40a56850549837e8876423a22a2d0bb8073a87c7dd7bff2e00ad08d52977da42586b0a05f6d9c337312d5cc66905e2e47ba782fae388e7f2935b0ce890ebc4036845839155b196a3e69ad3fb9f06f3a8d1f6a1635da5b25a2169f0f9549ada4430590a3ed9577fb0fef34d2f07c8d19deea8950b0933b25dcd408d81aab8bf01fbb1bec9442705054145840183f59cf7bfb34ec0e15f0d0b4485f78ea9ab6f331c92621cdf0bccc3b552af5fe44df324a46e24537e3e58eba17fffa13a79dc5c50496dca020bc0c4f74b6f23a6fd601038ba7bf10599427bba10e60b4d1ea55f377476da9a1bbd62049c9e67eab2508fa744d8c6de866c3dd245e1f04aae98387587395c7f7bd833ba41c347530689c28771a89103fb8abd6813b9e3c822d1aef70e397ce54a9b7b8788d34d43e82e5172ddae87ad945ba4e596a6deb2ad3769d60354c0bb87c7411a3d7e8890ba5e845078280918224b1950a7929c436908795d9748106d0a4fbad543491971f07a76ff5afd0280a16b3eb89f342ede065a71d72cb5d94020754f065d5d631c372c1b474b3d57bf9b2ea76bceb3e81088534aa09ba1e8c7595f6cc155096dd28c7b0eb44edae38a106bd50560f395719c1003a5066d321c7ab5522e2a9ea220c4116b065f89ddb43f3cc93459c340cb1acdc2c9f9d56521211c39dcb8409908129ef8029f141734dc1a1b1f7928db6e793ab1d7c148003bc23c969479c1acefe14315d6af451b031286d7a87ed7e913817a53c5bbe7a8e27c9b837084616ca5ea9441a415d3f8f90fe747ec6d4508818f5c9e74738e3b399694821f2ebec1b19cec2d6f138154345a0560ac98420ff3b89724e0a924199a18ef9ff9f2dd5f462fc3114f139a020ae7f3450c03273646bd48842546e12ec946cead388915db31b13b306f2a84b3643af45799f49f68b2ae8f2e30d4f7324edf3f5b747c803ceeed0158e029b286e081dd26bdffc398581ba819a1e135fcde141ec482cc0b8084af5f84b2e2e968490caf9007dcd5f0bce1cf5d75785a505c6a78c87140cbbdaea6d5964e0152b9287c84b0a40980ea62485169852e4d623d613775a325960ed78a068f3ac4fe6d4519612113cba13733bd2c112e9a7abaf11641f0ca7cd73505cbede87664adcb8941341aaefcbfcbd92c04bbc48a5590cffbc3c1ad89814b1288e24293073a4ecd9952baf84c242da82ee0a5bd291ab6a02b33252b6a151d1a861e75c768578e8ea04af5942148cf52b1c41058cfc8c36a0f7c352fb6dd7b003aca6de4349df1b7c4e3388ceca7054e75001dda1670c6df98053ca122bd4a2e3e90fb2f3f22e52d2517ff413205c2002f44534d82e8a7a1e836b01ef8528b23ec3db307cb1dcab66013d1624809bcdbd1c961c730ef6a7f9306c9735adc94ffefb6c322960607804ff10beac4c1ecceedcfd18a03af372cc3f6cb34980e935d25137cd07c616603be0f4b2a07ef4eeef1e5eaed3f51ae8d09a84d1deeef6af7e3699ec109279870a2a996e9e5c270b383649669577d634f5731735826a6da888f2771a338da994fa19db03482cf63c7f4d858986c89d73a61f16483ac471bd5943914db782574664ca56a1318368f43aa2f053c153277374b889b50106cea887746cd5e9e02aac46deafe20f4764d7857ad46394a242e5645c8bd5ec773218b2873583d20fc5b4774ba28184cfe694e1fee6e4ee3ae3a9b9af1b61e2777f68a38c1f72f6266d892240891b4183a407fb87b9feceb35d5cb0293349227adaed99a40f15a038ff3778692c02baab4d27266e2c7d5ba014664887a5fe2feb2f116f50122669a6a75ae4b8cd15cc58c7b8145fc2bda1de8322aecfd147918167abc5be6559478c018373c21ccd187521a5f440c26554f05816b3739aedb41485ca35185268c62f87cca39812baf86aae5c21d6985dc8c2473ab5e4db1f96a153ef05f4525804ac8c7ccd8692d10ecd6af44af3ceff9f22a28f684c718134e588ed8139ca63eaa1676103d7594fa5d1ef0534ec9adc38879049cbe26e66d552fbe35b1bc6b26a176bf3b834986d120b823e99f9acad1561b02250f2965633d6b142783f664d1c380c029a94db6efc0b3ea82b8dbd8a4d393072bbeeada6b172560feee9d87a146f9a6058406b30e16ae1d34c3e5203ed9537a11b70a61c63c3699e246e6dfec7f871088e4e896818cda1aedac26163aa7a9269aff9b8606f807544230a1a7cfd465904ac3a727ef7939123596ae683807db4c88713506ddf80c729205209b1be0f0605ad131256eb677d6effe4902c6ccbcffdb6d4a1be14a816b271509e3bb414d7dcb58a744909edcade6d0ee86a8a755ea69da0473325b2f345ebb53a0424899cd7222a660a3b3cdc76da02986e9764d9ee7781b7eb292d374c938e103e623374f45d860f55701b37e769dedc632108cbded1a188fce19f3e7124159c8e8194c311cd6752c6b60bea4327ed18c309085ebdf4610adbcfafa4e26b525cf32d4fe03f1aaa72969550e097b4c8e01db0c1f8cc34b276bec17860dbd883f8e211cd5dd0b7bd9f43b210a03c934a500edd4029215229896fcca6882ff41ef68bba25e8694c0bc06b5deb0a092a0b283b20bbcee99c2fa676532e92325f30d3889a57bd43a008a8d9deb567a0793b7d0e54a8806d1fbc2f470135ac9342496b140ee76cc343c156717c80d9a96e33c0440977054253678907ffc47128f0f0fc4b02c202d55b0543061518eb029239dda72cd5a4c553ff78df827a0569fc41a055e5db4f0e99daf4906ad32664f01ad9cd287e93460e97d20478024b7c2dc04dd5aa1bab89b8fe23b15ed82dc0b13b3b5f69646d0312d803681a2e599639667168e271239b59b7c969f7c000a36d14950b2610b9823e2c4d0618430d2391de33a34a934b8c36ccd273a397a9ba33b2028391ef17155fac62765a106c8ca4466c21fdc08b4830e3ad701cb09043d8c8653876073976c44f90905c17d03158d47f35ae81a337f27e670a17ad8ad148731d346490f05ce8a0c9db1347be4d3d4e0cad632cf3c5efbfbcf2cac3a1649741129c65a6a18be716d2d711057b66b449ea80d36da878bcf492abb6bc8f8a18b29fa90bd234de11baa044c48c2fb2cfd950ef0ebf632d004484c988c2aae95f42edbd6fca9454868ebbf88fb3232b0760e3f74366a94bfad844ce93d01e3688570c0d36073a5b102a4c5b62ee4c0b1c41f5072ff692d16297d03f4a7982e0b99ca08d16e29fd0041afdecd6a110eeb6e1df2815f83107f3b88ba95e0e7d59f704a38f05050e8cbab2c32911161f97698bd3bcdf88c51c5f43222897c611d95a4568ec9a4d041b00e4d97715aa87f64d248e2e7f6b44a228287b4beaf8714398e802f7c6264208e97bffd92843a5440b7a676432bb1248f1fda1cdfbb098abcd1b3bf6d5c02738d829f230889c9fccaa7cbf7a497e5ba6eadb72ebef2bd9cf1860a6121b20beeced5d7f51b43321775c523180c99614270c49dac48e9712360a808aac6d19c3797b506979c473464326e4ac9cf53c5a5a6d80652c61e82924ac9ace02db6b2c990115af357cd739752d83139b4aa01e1d4a041b73f4568273e9025fa12ab87f4be1fb2851e31813c2cb7804509e4f60868c5bab629457a51a3fcecf6b08c21306b13f0cfaa11e04d82c13a5a79772db16d86aafe16568024f3a6316b0a25d94d63d89cf08cfd3b7e6273dc69e1f56a52f762b1b929e9c8c895216dbcbc718de22fe4e2318b6e5d51c8779d9245cedc28bf1e7d3bd299b06cf916d054167a76973a6c8121d58ed5054a27ba87e2f5a85126302596195aee584881d3121e4ce707e3fd6b30d68dbf776f949631d9178ac393910ee48edd5b64b67f8cabfee0d80123782965fc013dbad71200596b36c95b42483f6c74c1387f6c8e0b5d2a8bbfae5f0e2686123c4270c78852cdcf11c2f24c6ba44c0c7ee2fa17525d4b4caace17531b98a1d5051cc77115128d041b9cf5802c22ad88abf0d9c37279431e955c2dd3de8d079164100fd43d30cff0e61cef50c2bbb004dca57dca001c430cf8ecfb6d6bb893c859454d44808f665845d7f96f28edf12915168d807a43913b177928f6f83dea71307a1455be59c059da1462b1aa1a100b9f33c6ed9196895142be130af6cd9bcaa3707612ea7a83f3e90c7f2a61c222d36935dc4588047932a308cb0613bdfdc1b5104dcda3c765b022b083f0ae4835bd1af2fb389027d567a29cdd90f708f6c9a752af695024771addd52013410560e71d59b4abc1c7f687dec5d55b4ea00915a5191cff1f98814175f997b9c81dd80469c847fb3dae8102a464c8a47a3a7bb54ab501e63764736eba0026a436d90bff10e735b119b464d526fd793c0084a10a2564a468dd18eeb7263408ee3c3938ad16585c0149f8f30f1f9e0b34bdb7c5d5c736c5c113b2bc3677b329c918c40730cfc84fa9b4092fb91911c926eb564ffff602d92c1d28741f4eb4b678cd5295e420c12ed8ff24a213397cea93886548531e7af2cb1c82531c411bf6074f9b3a8e46f1852fbf07ec4f16bd96fc1d4bd31867ac61f98f64c186aa0dd6bf0d2fbb9fa206165ab802905f6b46f60a52b8bf9a6d606e1b6ca4afb6d8fdae3d54dd6905deb43075e60ec128214089a6afff90d7d266331bd5128e51bb33497c4482877e96cc893c880521e511a11c38f0b988488c97316b82f9522e387022c0d0186954b86c897a080806c331f825286e760b50dd5234bed3a59be9124cf3245e354e5b330c018872eaa986e1e74dc0fa03ec7169c8b648d4ff134dacc7ded08c219809e2830922c1cb3994f08a9ddd99656561ee7ca6a4f929175d4b2d33e31026cc5cfe760710a1d39ec6c21a7b5ec25789d765acd4acc912688d6292a451aabb32719508e294d38c8999b7023d9bd17cc651395261c49d716c4e7eda87dc294a930d930834a0e148e799e9b9a0832030157b434decbb93c9b654e44c7231a1d31a4f9ea7505fae4dd0140e00ab389980ddad63ac0d0ad5b399aa00de446d38f1a68aadcb0ac780ac1079c249a5f1a110e5ba097653569155b51d5e4074b788e75fbb985f897861e22d51f2c8dac14bca38bae25836bec1e2b74d43d64c2c71968dff3f173c528cbbf43ae691bdb6cec8976369161fdbfb155038b33d018cbbb50ccddd48964cd38dda02ce73ff7faac9d04a565d2623faa3da43da90efe0aa49b273857b82c9c28d98de45a4056768b53cdd7d6206987c1ab2d8242bb132147d004d18a5acbf727bdf74224ca28c5d9c55046fa1ab180e829fe1e39f6e606538ce00a7f3d7fb664d810ab071d35dc679a36aae3c14f5c8aad0cd92403de892e30e884a74d6197eeef58e002f88da2eaf1aec2e305ac31d867fb1a58a29921fb5ed543313243e0d13bb61ea083551a8445b26251375979d4dfa7c27e196d18ab6615f36672a7da7514180f2c75a4f2148541402ae7e904d3325bc5dd3b41ff866cf95a5009759d24defbd9f1a401b4d538aec3fb54840dc5446004f49aafd0379c76cbaffbf7c53c3af474af07231dd515b288d40baad6e2150112e9b6511ab557301e0962b16f3e1e7cddf7dbcc4d15b732c58813b1bc501d7564e6532f57cbcc36c88b8f82caee9684899822d3e406e8c5541544a9610c25e79a7f94b8185f5eb9770ba7ab57f9f1bf270d33b517503f88966f0ad2cfe249458564382009058d3ff73b38daf8e6d3ae5d1a251cde53643a96903b65a83dacda7d82ebcac221da482a8f470bd74b5b4a26723d33182958bef42859ac342b8fab0b697ab8511b5a5c411b5974d64e768e1587adef59a73a937a1d3434d699add8770b2aff1b03d6505a2ad850882706b0e2fadffd1dfbcd5c36116b6461cd00cf0dfaaa97c4c79885dcff960fb0626f528048a5f1bd23fb1bff25f1a1c4cb37f1299ed8a3d850cca57fea84e8de504711f551511eaee45bee3bcc7eb71e0a1c9193693a4617388f50ddac106ec9ca9caed71d200a83b02c11b673c81d1f567d2e41a8c7823177aab3bec86dedd7ebda4a89c6455a25627e6800d2e34930f87dc1a0cc8de9071626c0ee83c3138409c010c08f0a6a0ea87b7fdb348cc60b64ce4cfea57fee07d16f0479f44cf8fc0eb7f5e2889fa99887eac5f975144fdb3be82ac50e8dc52dd3acbd989b3c1a9ef74241b1bb0455aea85655dc6335f8a83c4d2255a5856b7b0bfef37bdfbe3a5675ef5ccf6e1277016ae4def51343468c2967c6c95b9c21af668068f4127b53d7bae34db806809b5c2bd03d0b158da8069cae3cd8cedbe4c00b571732849ef372146e82768bf3c5e7cd1a5d7d7b241c786b4d9ede613a1f4f800b7acf8c4f3d7e7334fe1ef0ef90360390811143891f91de1f6f7d77b8822062e3c2f10097ae8709782e3f0aff3e0171de43732eff6bd158e7d4b1f1e8799df358b84451019b66cc2e8ae271fc26b383c99358ae3f99075a0220d126eaad31e75263e9f4fe10c898544db94de0c7bb1dc1671138e851ef2ce116c4eef93bb217cd922eba6f4ee0b4538ba54699e3ac3d4831ca91a61f7f69945213e96fe5a8dda63f5afe317c32244e8afa474dd056d7d47f2d46f762eff50605abd3fb2966349e897a61087bf5cef9ba33072f542a1848ca49c6f4f0271cec3aa2e1d844c6f50a8665648cae5f710420f63b0e4843ec4fe32c6b887ff83b01a76e5220d4118f884dbbc3a0e1c9b6b20a44b8318bd07d859d2fb21c05a721c485dae4b9727bd465bd8528e2299d05b5f9624683a272cfa1d26e7dcc05dd395cfa92ee96e1627d538ad3028762c740194d5593f48e184366ed1407edfb78907bf42e9b72b4ed67321ab83345edde00dc797dc0a887a40b9d7e6c04e796fb1f9f7725c2c95ab88fc7ed353df82cc26d7668bacb5ffa2c056cac7897f99e9010cc300999d184b4fe8624d5cb0e280bbe1cea31a0b26c67366f578945f8b9de8f615d74f822c598971f5a4da798414c352500045012ddce4e1584e1d94d092af69041c4eb49b8dcfb5d26e4ab340c89ea1026f54c1ca6e23c7415f69db89145c690f764a42b25d5cc714173cee86846c1e9355793446cc9e25c2a61dec6da39242435ac2ecc6e52fc5c31c891d878575e4224d95a285c08234402a7156a4c12503104cc183e660aae38c59e20ce22f9ea2b79709cc32263b34c6e6dfc8c278a5645dcca9782d4441d078118c376ee310b6eba3dc8ce872a17c6d98267aab5ae29c2809a9b484f8c8452ebe55a038ec1a29c31deb96e56b1789f4088d37cd7c84ee30f383ea19e1ca94fef1b3ad7e6f8f42fbf57870436b8f721a259165d06c76281907f51a08c6b968021cc4596226854ae0f162ec61a6bf9658bab34c553ceb544169343c2cda0c9b502e523110898d59232a28f0f90ac81a098199b6a2f7cfae5cf7728d6713a76918bd33d5907f1f3070afa7c7e53d23bd75125487cd71a01760b36b293d139cf8b4915c3ab8b2ad4c43b2a802a53001256fd7476dbd65c6dc629d437619852553ea3f0a884e88bfe9db4028af1299535150b3205288b4723ad1730293e3a4bf5fbf09de32209bb94aea1e19321009810d1d0f64748b4a18ed298e50b92b23728507558483440d2885af9f2f8e809f26596a477c90cb750095f12c0915af1df29aa46cb880041168c3e5b57ba348b8ebba411e14dcf4f5fe163b9921a3cd03ad24c6bbf50d3580a66f811ac89c453d139b5ec933d1605853d2094930d4891579caf79339ad0476ab9490de2b5885ba05bc4738a971d0eb9a9a0b60b17bf2efffa65e728c6cd18184638521f42bab6752f33608bb196800108d87f2634eb308738049f047a1dab01dbbbe6528af7da4d4519c8d038852047159141ee39c9fb336eb80719cd0845c4c8388323e16c2eb3549f5f31debe0dbf1c37b197b1c108094b3092283a3141aa3de914e7e4777fa24446bf08e6120130d33f4c961a612a585a894b3dd649587996ef1be70325ff061b0ad195e9b366b6dce5a90d6ad504060358b269b0292b8c33a4da65af9f468ee01998ea4542fa29441469093db72249cc59314077de6902dddaaf9580e83c6b89c1f231526a20c45682bafc24dc2b4cafabf6c39d9dcc93f042d03ef307398d06924826b24870e043420d9c40c122f7ba7b75af5d5e512473d889664f241a48119e26ec6bac9914bc56bd38fc650726e04c5111da122c3db54be965988e4c100ab11c6c120349db4870352623ec341c448056d4b9acae1568e78350b47fb5d2a9095995f1173b4248200979b7459b02d84f7c46f0a28331dece0c933138d813e51e1c296fb83143d1cbce9e882b495d04cc84aec4dd80e1892ee5beb5e394a24d58cc182b7c618a7201c1ee88e4a74aa89c426be06f8700f650b32099ba444ff0e7111100e166699627e4b89edb8b2b860b397d59c8389a31fef2b4fe4a6f3876039e6ebaa0f7be923f52e1f6b28cd5092fcf681f5e2e3e6f5c247b2a8181907f18aadb62883a137cdc2c92a26813308869a7e058c472b1f37d0a7db811a9d9702f804877a5bcfda6966460f423486683f3290f0f7fc56a113cc11cfcb1f114d09f349131cc7867159ac69217333dd8f682bd6149602b1fea51570ed72c6b6fc22ef7e4bdaf4d2268a21c465186ddbd428e9120f29f5d82be3906948692ccf196558681d648a1412781deea871e776cd61ddf505af5dabcc5d4608c1cd3d38adb723fbc198b8cc197e2f1f16f5efc6e4e0fdae6e4d675d4f8b8a8c80a21038230e324f1934db31512f04cbbe3cfd348b716515d7d8810571666a00f3a7e3ad44de69401b9501f53bb2fd6405071d2242bc8080063163c9c33e2457f7c7ea4194d3a7ba0a86ca101c5e3aca405da48e64e7dfabe7defa89dfc56b71ccba3ee8b145092d7a2821fa2a6cec31c26b4170f14fc1ad6e7bbaf4e024cca988e62c2b8fd4807697b653a2a14d82fb83e51ab44ed50f814d80fb9e92c70fcd6f84fd1463ad1e415b813d27c2b7cea6d92a2070429f1fccb1714e60ce33535e4d2147f01601587c5cbe6723b14caff056b2c2a136d00d6b402431bacf30bd7ddcaa3d7f2dcc53c341296985a1383a1fd54752fbfee4afb1ab511ad00f18b46fabd05e7085152e359fadddf563e577951ae71e7376d471fa4551b4da7a414ab5a97ee548f8a9017718cd2469f6b0ecc190530a778fb700377957dee1fac42a5c85a7f18fdb7142de099a35472a40a047810930540bdb9869daf2c4f3e4b45c591c7ed0f3c3fa1cc156445c57bcf816e09ed864544e9edb014c1848c23c32382b5bb3200899f53cd62027a6c3c33d037a3bb85a42a917251856f16d27a4d0ad0a03bd0ac981799756d0e3887fc9e4d6c39a82913c08a026bc120022e8a314df0e2850c074207335dc211a503e586e3e05615b451d8d9414bb88d223df1a1d7beffabcc7ebcd01141496cb6d0ab2c2816c5b110c3d4f70a30d7890550cecd9da5d349646132fc0559a1a335d4b33ac15018c356de79072973f5d0055e8b2e05e1f2c576a31a8d8cf0efe288ee59b99b6a8f4c7e5603034bc26350582c842174cc211a3adf896b414135c073b1ea019ad10dc087bc0905ae85e10b40549c2cd50bf3487b507fbcd06652bd8d2c3bfc38c18e10c6bb2729652e80c3cb176d1feb466df525585a6cf87e62f67245583b44aaa84ef1c1e9c5923fc05807f6d50fa5b42bc17e081bb5561122fe545d77063ccdfb296948fb437a08f1047465a5b35c509b808ba449c9fc05d36f55add2110d71f9f85e93ab7bd1b64b16a7e87ef567b9a34806c96a055b2caae3ac0f5ef60b3543cb128b8c99639860b86460705ace9ca4fcb7e794dc101147e29f438fb05040e1ee73309a3404ef1c866c3a42286b429db28100682e36e0fba46572b305992a20dfaeec350eafd98da68f6ad0fed891ac9ea904005906ca386c578ac1e14cef7e005981522198ccf808b978607360a8d55b7930bd80b4755a74ed251b59f71182d32aee5a20910fbcd08851afc63e35a88c80785fd739fcc3c239c30609ec827c2cfece8a96d84e45f0ccb43ca9396db76c6469c21c0389c1723ab2979982fd9cf0feac19fbcfe453f3fea7c17f3ae0e060315a4b5fa82ed93779147f8b020a883d286f8dca83e60e0a21b6c48ac665840febf42ea51eb08e41f4e274d2d145c3435159280f762600c6a9677fac47a02283e45630040fc143733b6a64153dd762b54c88b47d6818120d1bff3a0a3dd1f37758f273c6d81f504a4e3cfa7390fe7988cf81b2a9170faa5b8f18710a432408389a5aaa8b44e20e613f2552ca6b4a6683490765e498460e6dc673a90a7386948c8be5f213f5437f15a4d3e5c294279a57add3c48148290def8490a0dd8f97b748f408b49eb2e085f572c03d181d2dcabcdba6772500916d4bf854719bed7c3da1a840008003a241b758f219ff76bc5514e0deca70441fdaa885737b5f3dcb24a2ca95bbc9b578c6297744216746977195e3306fd6235c64a419481aac91fd7d501a873f3095b76d8c5a7017a04a37b3550b024e9f3ffffffffffffffffff47e15b56d96f83cada2f7792241aa37d0b8b0a524a29a59412c31684803cce35d256c8c3bb8e089e078c07890709326336fdaf438972b69a4c5ae49e0e15ee143c26516e93eb8f137a4e8a5b1225d57c2353de4f64be638c2047b2e3034ef08844495b88c7b7dda5ae7523b161a71ef08044419986b633ddb9e4ffccc0e3112517f90fdbd76e6f18c98e1a337470c3e020b93123871888e6885b5cde4d532ffbbac4d693939abf6f3c1a51561125645c67e7850c6d470e12dc800723b4aeb38b4dcd130d22942427a16af2a8da6311c57c9f9d99e4f45044f1c4b7cf6665db4109135130e9b42e444b88289b9f9c326a8e3944595f4b6c3fc619f99b87218a257a2749d5991e8528df6b4c82690ff22044e92f7333ae5d3bff6ec3b0e028e13188e2268f6bf7d97ab5291a6c3a66182f3c04511e997d5d63796d6a1c38c6084449b48afa2464bcd8ba3372243810c3c65d8243072a80c006d8e00188524813cdd9c4a43149e27f286652faf42b33f99fac871fcaa3a967dfc4d0a6f6f3e84331a387ede8d314f5123e94477f8ea1bea26adea006bd9bf0d843c9da53db7aa710d1be1e8aa74d67d92c4276d00d6a302399c4c68c0cc135c2230fe5ecb99452c275748b060fe530e184763001e313bd3b14457b2a9943c90ea5b5d2e0392669aa4b9206db0c306ed4a80102234712865d1dca9a94d9c8991c5f34a543c1a48e25262549dfa0421a6c9b3ce65012af477fc442fc6395434147a3aa6997121b336c9864878e1935b031c65103e3460dbfe4c5b891712885ea98a4e1397028955242beabe720aa9b379447997acd4c5a3714466acc5b99243fc79c471b4a92a0e56f6b8270f3cb830de5fceb3c237b33428f56f05843613b7cb787d9b841c98d6183c48c6183e2a186a2696e49edef79a4a178e2246bcfa6ad316934d816058e869292df234c3c1327a9920e8f33143e368c5dc7353ccc50ea8cafd161ad3b951e77e05186a277fdc7ace8128392d4030f3214c6d574329563f2d25a12bc60060c3cc650f8d495399c4a0ffbd6430c05ad53b3124d06a162943cf00843316a9754923c4160b080c717cae19327af2a9bdf0a794193321ad3b89c32647874a19cceab37bd2d73b7c38592bcaec992ad2d94e4b64fdec42cd66e69a1589a846bf2af0c1d9e2c94e6c2b7543d59ebc73db0508c9a61f49a92951ff7b8424966107d92581d2b14d3d99aeeb7af4e237a54a1d899af32ddf31e54289ece26a612aace0f784ca114a234e4b5979c44939142f1dca4863a119f2dd3289424d9acf17d835028c724be8ad5c8f0d4d7134a4a66934f8ccc5251cdc30945937df32b161e359b24376a9c6d42c12c36f48d07934f763c98508acdf8b5bf138f251477631cf17184095a251e4a288b868e26a63081e1918456c7cdb65c67ddaeaa3de96c828e09dff9ae1c0918608861e33c9090bdad5eccac7dfbdee8f4eaea0da1043d8e501a53b725e892b5e3598e1d3ac6f03042926cd958eb5852b75704b5738f2e75e3a262313c8890f252dbc0630868a7eab686ccb7e8f5364f0b99c4e8790f2194d368683f2f411e4128c65e13e31fd46db29207100a264e640951e2efc9ffa254baa94f29e5f9a224c88f9bfb35fe9ab01ad08b92078f252f4a22324d373fdd805d946545281b616e757a6e802e9acfdc8d8d97b5f77c393f2ddbcefc373f8aa001b9287f9693acea64cd7dc245c1747b3acd27b728e8a0bbd4eac6f8e1c4162525faa235ec93babf16e5ba5056923c19cd8468511253f847116237899f5994c39b30e1419fd2392e8b729e9cc345c61033ea5814df94ecf9456cbed7b02829efded3127e45d1abfffc3727a1c4a82b0aaae34c781953035a51d2a004d127de6efa2f35801586fd9af67a2eada2b026e24ff7d4c8315145491293d6eb6f4c733e152539d7a3ca859566102aca213ac8ce289be4fd14c530f2f65d1d5394ee94fd8b124f4a514eb25e9396b558c6135214f5c4dcc97773d0cc26a32826e1ffe7f33496af8928caa622d3feeb9e92e492509484cbc6780f8a720a8d6625fb53f5ff44498a13c4c491393b833c51ea70254699cdfa7e27ca273f4288ecd21571a27025dddec56993d7d94441c8ea24972e4967d568a2649a5da3b6e9cbc433513c3bcf9bf194f427268a9f49c47fee1c4cd7972896f8e1da33dc4ccc96287d69b4cb3c6eb556a270e922f39f4f89926a9e9855f99328496221dce3d8660d5f1205f59d1fb4fa9b6df79128cac63d25c674ff690f8992583af595a78aaef58f287fdeeaf850fa7fab7744f1ed4c67d950df736a44f9ef63878769df51c2886258134b45958e4983165192a774f439318a285a083141d497b6a6135138b9ce5478f6294988287ce7745a3fe5bb7f88a29b2c729228a5cd3444c15635087da16c645c88f2ecfe69874e9e494b88e29aea34269e50b11944b9faa4e9646903045130ad8eb9ec5426cb0604c21c47768c1d44401445b46a45c96126bd3f14659492ca6d6333637e2867eb51aea6a64f69a80fc5ac9f34df667c289c5cf29d923d678bf650d630294b57c96659480f25e16272d096bd934d79d83aba67f0a4040fe57993bd46fc3b943dc7c75cdd4e6a47762849fe32abc9c43acda943d94c9031a8d734e51d3a14646d5a061572cd63e6506c35139360b2e9f45d0e7d9615d91ff58943c9f3dd97b02af6561f3894fed7e4f8382a23c3e70dc5bdbe9263f21765b2e386c288128349cb9b35b1d386727faacfd9222709da6143d163c5786776d650d820543f09631b6a5243c963a84feae301c5d8274f63ff7b0e3ec3a2f831a6df983d4a5bcbaf286752ed1f4f8adeabec8a92d4d1deea9e67a3645b51ca93414ef23c2b8a2745cb5ae8f25acf2acafea7be2a4df62aa9a2145ad673522a62e55494343c85ca52621e6554145409d2cb774748554f514c62ba18e5dd9572ad298a9d459aa8763b529394a25ca1849414c5f42749654aba47513a490eeac48a1dddb28aa2203d97eafc9a1d4dd45014bce73787eeffab4e4151ca0ea24bc917ef9cff4449a892d9224599afee89624993a3b99e3a5114dd63fee2a7f35a4e944528a1da26c8d6526ea25c194b29fb182337999a40767c9ef09acc44c1c424defdbb6b662d31515093f29b7e7bafe41265f112319f339628b8bf6909bb57a258a5abae846977d12951cea2ab4e6d492f3ac749143c83ac2bbd126a334aa294fa9fd91d4a5776188992fcc936d77f48144ec69c3256c8b0ed3ca2981d5b25ad4893543d471494984ebc26f51a51f6d7f4fdad49ed99c788b28c7a74f7d7f11e6f110531d91c36bf274f27459493c9e1257627a2b439cfafd498ac6f1b224a629fdce4f7df6dd90e51fcf09b57add33f313344393e79966caa41a9668528677f87d5a0448882e9f212547827b90fa2b8a2e413b1db9bbd4410c57893e4a4ea04a97307a2a0e49c04d75052c7c4f50188d2496f63657566f3d6c71fcaa2f2234583b823d5a0a1c375e01063467df8a12489f327b39c383145bd616c9820793148d0f8d187e29af8def25311a7278de34371bbe489e2d71b6f9a8f3d2417aeddb5258710ea1ef4a18772fea4475baa7ba7cadc2041810c19374872e4a1183baeccbd6bcc7c3ff050d8a47fbd3c7b6885bbb801138800021d400104d424f171074c34ee4b2e6cd63c3c3d49a3aceb4bfed2fcb04339f507216b27e44afa7cd4a114eae126a928b9a69be1830e4599d15837df7fe2836e74e0860c193a1294630c31747ccca11c4b36c838a34a12711ccaa1a04564b6c344cfb8350d361c33d26e7cc4a1203c97ad5e7929df60f201879224a7cce79cf119e9d8a1c3d8301a7cbca1207b4bf6a472fd254a38f07cb8a16032474d76d33ed332517203ff684341cbcb47ddbdea103234d8708481f073948085f0c1867287d8f2cee0a24db434d86c901c4a58a0868f3594d7376990262875a8a1285f9e94f60a258d8f349463dc35937e3526798e64478d1965627ca0a118f4096b6e265b9d60698d8f33143cd55b36e9ec59fd84393ecc507e93dd3c4bb4ef2bbc6172cc50dbf151867c634e4afbe5448c1d8e6ad848010964c848b3c4c639356e7c90a19cb4ecc931cce7071f632889e9393e457362285ce71699ac65bdbdfb0843a994fd7807a941be082de1030ca97bcb9abeca9e768e0afd3e42796b38ed1b3ebe503055be6fa5ae17caa31bb3bf34cc33d72ea85b1d9a976b2a339ee1d9bf262217f2b2452e14c4e68a79f2a4e7c47b081f5b28a7b19cddf0f3b6cce0d042d19438f310f2d49e9cfbc8424963d220ea39a5a712f38185e2be26316d5b0951de5ea1204a0e62a6448fa527b742f1e3c6c713834cb70caa42b1f395b9c8395921845458cbdaedb3763ee6dc33641053e2cc53288a785efb3dd13dad4fe1430a65d30c9b04b7758d7df21185a2094dfb7cd254f628d1c207140aa67774cc1c749cf03934d892496c188e8f2794bddd8369fbdc1baffa40008ef0e18462fbac4956b2a5d64a6df868427154ca67bfca3ca74f3e9850f6d09b4415d1417fb4747c2ca158e27dda34bdfaa783945092db4e6aaf4e3a4a4e7d24a198cc6390bf259bafa60f2414eb4388fddc9ba9178f60cdcdd8db7c8a7ecd969c3508e9a231f76184921c377f9ad71844bdfd499d18e9c6077c031f45287f165f553d39a7f5244458ebbcde354edb4d6c56cb9449b2c7ce3f2d750805b9f953dc0f21186ee9f5a56939df619a252831c23d548a093f82503875776992d6ef1c93f2fa03082599c413636dcc2f26bfbf2899d0d3252e3ffd4be88b92cadcb1fc73e9d18b628cc99b4dfa308718c98bb2992e93c6a3ef98977651eebcba4c42ce06fda9cac04317859131b6481d3f1705d5f5394b26a5bd6da6c19623d97123c145497673bbce69e477b66f51fe13e3cfc949d2a934e83d6c51924fe447354943f694b52809b393b9c46422647efa78d0a25862e4b8073d42b384b3287a9a51fbf74930c946e3218b72f80c22329eaeb933e90c8f5894e4ccb726316aef15c2a224cec426496f62e0f18a92b6d21aad4bcbfb9f68b0b9e2548d75adb1b157f7b4301974f6390a1ead286eec5c52751a3555db8315255b2d35b11d7c6309cb902143860c1945048f5514deb7f4b58386cf7c55519236bc97c63ed3a4e74868e0c06c0f1ea9d0c45c767fd26e29a1e21319262a4eb5e991ed14e55a931f7f737868ada628de9a3831785c0bcf4acfa314a99795edc855abb5958bea524a2eb7b649514eca2f4f14f5f7fd7514c513e369121f6563f4125114f7d724d7edb825761e0aabf6ed62ed2dd5c3957bd42ecdf9ebf6004549449f6e35adee95a94f14f4b68fc87bd913a53ec164c7f89b96f67974a298e3499e24a94cdd34f5e0843396a2b3b5d69db57b9ec37c10a6b2e4cde3193c3651147bd1eaac9ef5f1d34441999b38c946092e5f65a2f02a4a9d89a63df58a305150e24d9924caf2b4dd4b1457d6fc474f65818725ca49d2f944375147e80755a2141f06d9b5885d28e8f0b1c4f6b5225c604b950eea6e4447886ca1a0efc4524d89aa4965f809112d943a89126763b532c82046b2501ea545097af47cf0f8d10816f244ae503a31ae535547b906cd0a451b916fd949fe9cddaa4241281373f6a75cecc9a911a1423163d041f8e59b0c8d8dc814ca9dead5836f4c2a661f8e01810d1c46a450924a1c5daa63c86eef2f128592149f7b9f49e72250409da8fcbc1b039127144ec8efb43f53268bef358838a11c54376cadb22dfce4fb74d80a224d28c5f96dd257ad8930a12ca345f98a9ecbfc526219224b2855e56d9992f57137a44309e53b39dfbbebeec6e4632409a539cb8d95ed4a031124142dc6c6c4a4439a645ee408c5e49efc36f909a17519327084113142513f29d9ba4f877142a408e5ce36596e4afc44e6d400e3c6181d8810a174ade549098d7d8e12586408099ac924b1e4a858ad368808a1dca2e4df0ed2ebeb04458250d8cd75626536b398520408a54d6a5a6a1ee38c877e51f23897496f98cd49dcf8e2d24177923fab78da8bd2cb7878503df2a220c642f9d7a89a279177c175b7cdedaec7beca96c8b8f76f62367a66d34549923e66b11f5bcab55c14f38abebf7faa04105c947ed342e994d32d4ad7417d9a3a912d4a6a359af8a9a3a8f65e8b922094e8d12e1d1ef305428b5269d31351a23dc724348b623c1117bfd8e8263db228efe8941ae4db633035482c4abdf9e42c395ac9998345e52aabf57a351b9fc4986d1b5a73405e51d6fb1c5d7d733d2abaa254a6f337ba4168ff415a51b02c19db73c7b2dc130d36dd00082b5651dca0e4c47ac59688f61444152549eac9964174b693af1bd44845d9ad2417934c677a59396a24bb00082acae673823879fd7a3c3e62d80063c62994556bb34cebeecc35fd4d626267f6099ba2209b1bb489af69d3a468b0cda8811900294549c9498c1a17277cd0291a6c3b6ad8c0a103841465fd309a7ba356d505194561bde412b4f4c9a6af041145494cadc9c464110de285a22ce3a153af887f960e08288a1a7af2981c74e9f4f0139c6c6c9549ed7ba2a439dacc44f7d9ce9e4e9443adffe37cc5688f9c288e140d79f2d926cad164c5edc3b7fa9966180d14e428818d4403a600d144394b74ea7e0c8f5a4a32511621437b57734cba339828491f37c6f1de412e513eb99893c496246e9eee2c51769fcfee2d1b25084f258a994796f84dc24600a14439c96b2589141bedf124f6fc693b8ae5c7242092288b0825c42449982a71041289b289932d5b6594608040e211887d401c91d49e84ce9f411ac18852a6d2feaf729b4fa617518c19f724fe3c9cc6cd8128e24012b1b8e5c98ac97ee8cd76d75757e7078288d2499fda35a90bef1025e939ea6f860f5a259d23d9512319c410a89724b65d49d55d218ad5e96daa3f67dca5ea031042e096162f1a27977ad5a1d677377e9a990119048820ca7183525267bd4014ff4f8a88ce897e080288d276c969adae735e6e7f2828f121ae240b291a4f40fc501665aed53188ecf534481f8a6f1fa34e6d26dd8d83f0a17cf23753a60b597dd2c63a40f6507e734d9984d1a0ca4e18440f0593336796fdf49e54d401481e8a71f59946f99ca41a8303040fe55099e584fa78ed5b83dca16c96a14b122794d02446090b700c103bb8a943c9dc24ddbc01481dca551ea3c412cf47931e840ec564e235e2312e536b38009943a219c2934c3ae7d861cba114ba64fef02ffbb7a6381494bcf2a125f5084b131c0a7a54bbe8d1fe1b4a26e575c918e5deca7743593eab898e6e6b19426d309c1a99eff13be687d88086c9d778d588b99dfdc93179afdb33039035944eff7cda64c2ae3ea38692dd9f32699f84d6b9d3500a0f93c43e51afc56634144f9a2cb17f65994f3d43b9beb4c89cd46986f296ee97d954198afb692b3d579a24c21c206428e8e85a13f77792727d0cc54e1354cfb8d7206228ec55a5dee7141aff6f1040c25010f7bf9e6745580719228080a13c425e8c67d0f2a0c49c827c81f3d8a449c69bdcad05205e28f9c9606fe9d17736783000e9c2e1ed177e174af41c71a1143a9b3c3ddaf7848fefc8614ca0831743035ba8d6f44cc6f2d2b34c3e4965d2fe27a57d338816cafb5b9fd735a83200c9424998e8a5c94491b14e582889b12439e9870a7285b209d5cf491e9196ba8158a1a0266cfca609bd929f278054a12c42373ce898646c939d020815ca9f493d5509f3b08c755001640a25f9dce542072285922454097db5894259cfa4a5c858073d2728943e4db2ec689e4f9c3ca1e8a193b8716e449fde09a53f39fbc973d813d6a40925d1a4fd4f993c134a2a830e793f5a4241bd6ff436a8896795509225c9a7337a4935de27a1d4497d8e329edb4c1609a51913368329d16f74e80805cbd818d99e4666c70885d91c74c7247fb7668a5038f7faccfe5a26732294539d5a37193f43289fc818fcca1742f1c43cc9ec21f48e1c84725fe61032e4281da3204028a78f0a9522daa399bf2869b5fcee10f3ced017a54ddbd7224bf374ac17c5b21bdf924c8bd8bc28c8fa9cfcb2ccc72e526b73725d14b3aabc539c9bd0bbe7a2b849b0fbded01062745c94a4099e454c8931e7a96f51ea4ca6aab22ef5d7b645f994c92342a45d8bf2ae8612444c6fe5dab42846cb727953a799c69e45b94c6ef68e673207af65510c9b9448fb208312278e4512289b80d504f0ea1ee0c709269747e001266357863900edd031468e0204400767020a00c00e1d63a080000148c030638071c3d840800074e448d0182f460e1c09180100020000000020002258000874d4c061141080220040878e23830002303bcccb284000cc0ef362e4907100000ce0230139921a20b343c78c190b004000187000acb123070d1d361ab123d1c188929e7bfd54a121b4892ea2247bac367df40c225344d9049333c99df5949f86061b6f48224ab5bba3428fd23fbf69b0e900471849181a8288e4066284114612c601420e813576dca0c61b4207380a813576bc18618c316346024208518c4943995d29a124394783fb6c8cb330921c336e50e3677cb2831a6e3b6ed4401d376aecb051638c3323c70942068133662020441038c240612461182024105863870d1a3acc8c1909080144f104a59b4e6ddcd0edff508c9b3e7f5a277e4d1de287c269933ddac836e144a90f4591e639d477e6b7cff0a1147bb229a5491cb287c2fe750e6d1a4f875186e8a16082f69f66f542f250900d253f89c737df6b84811c8287a26ef668f2e5e8b89f3174ccf804032177408b0657dfb6157769b09d85d8a1246c9e929386b2ceab94032175287987f02493700542e85092499e8ca67459878fed0642e650181374295dfa674a189510220754ea86730f9ba49e43e2c0831038dc1b4c8618216eb8361c1b780da7066cbb4ebe523b34ef34b43adcc43e4b9698d4c0a860068e903414fb041d6d46941c652634943a97b42721e40cc5e4496f0e2aea56653243b9c4fffb2d790d29434976948def797acbaa1032ace9b1f3b1aabba76bed31296935cb69af4310328662be86099f21a457c78488a19cd6e1448c9019c4630f4248189693ff7027f5243d18cecf0ad3123337fb70550ddd151e9a902f1466b7d34c0eb28495db0b052573eab4576a7c947048178a1f729bccbba4d3308570a128a7d53655eb65d0d6168aa1327aae124f3cf6d742317d503b256859c98742b250b6133eff29e1cd7b5367582869b6d19a49facca7432157286cb052267b948458a1781dfba4b813bc66ec9d424815caa757712bfe5d1d46278450a1a4abdd2b1feec3ca1732059402cab8188444a1f8d194282e1e4ba89ea070c7b77edbbdb7e95b6b37087942f1bd3ff786adefa0cb4172433f9023d9f181048c1cc908f072243b6ac020c409c5dc9fecc3e8fc1983be09258f694ef0fd60196ac710269c17a333a7ea1ebb6174a5f679fd9574c81236440905fbcadcacd9bd5f67124a6abdc5367dda933e464308123c2f5b2fcfba6ab12a3165c99c0d8ae308031da1a8eea7be1bcc102394c418dadacee4fc26fb2214837658cbe7f4ef688710c164dc08194279b3daa6f9fb13975d88104c4648104c460d428070bf3819be88f4a22074b6cecc379f3b877851922588dc126ebc4f54bb3019ab0bc55c14d3f7c64c26de37944e041726e316262306115b14e47fee32c8275974915a742aaba26ab1b3dd23676aaef44e125a943e7d121a7544b734159945d962744d3ead0e3b7b4416e5d13de136fa936a9323b12879cedbd29f35115894ea4f4af55892899d0423af28955092f4deda7bfab5882b8a31526489a650da49b345a41505cf132684758615c58e514d461d39921d35ce089155943af97d12ab63d6ac9e2a8ada5572aa33a988a9a465c7fc6ab2115494b39f3c5ef2e3be7d34728a92bafa93e5459d74f59ba2185ea465da128d94a2dc6252fe97af59074d8414c590593637897f25498a8ca2e01befc6347bc8be58140539d7b735d1d34eac48288ab1f9611e9e93ecc6dc81a26cb29fe9e768b24667779f2829d1691b44c9bf7325779e286510d9142143acaaa813e5743b27e54ac8067ddf71a22027fe89aed8ef3651d0ed1f3575c9969b4a779a2809f93f4a6913ec4b27351325792eea6390d726785249f08219278860c264b8207289721a2145f67ccc1f4309cf12c59349375789c2ac78b07fffbc19d651a224d29324c83dbd22d3c59b444950bdaa21a6ba233a9e244cc645a2a444cf3cf1437589fad060d351430f1225192f83d4d89cf435748f28ac8d923fb9bbb4ec7b8e289aa66bfdbb11dea7c36b44412849ccf3efb04f1bc7638497de32f6eea5f9156a36c7e9e41b3d34d87a8cc822ca2f1ebf46bca71d19bb8b28a2a43232b79ffcc810494431b5cf6d9a701d340611238828df98778e31a14314edfecb4be486065b0d1d5d22862848dd7a4d6182bf9d28c981e3401029440b22842889d1f1c38ca9b69f3b887250c2996027c7fcfd494114ed3b735ef778b7a51488f2f9c7137f1def3a880051be7e91175d3a62fb8bfca1642faa2dfbb67ea4891f8a9f4de99252cc9318eb4369e3a5c6660bf1a1b0714a6c7151259ee42141640f2549ddebabf45dc93ea2076c4eccec5364bcca4a2fff838527d1e06642240fe5f560ef193e09ddd7f1803250e40ee5d5641d847aea9e5a237628e78fce2fbe89d4a118db4a088da374d77a113a9c32b7a3d6aadebade5ecea124263b9356747837799243c14cce617b7473d7e8c4a1a0640eedb9b5c13466e15038539f416daaf45afd0de57d137ddd4eda9c94541b226e28ac092583dce497614a6d28a9aa559e1cb5725a6743f146ec9bf8a05b43797c83ac7e9383ba5045d45030cba0a26aefd44da740240de5102bf53166b0cd49923b1d113414445e6b06f1ebe8da9ea1ba3bf59de48c7c113314536578fb9cac27a3d91b913294d47cbd2cdefc4c8f6690a198b995e974692f328692a8e739ef89416e438d88a1704ad60f5e240ce52c73f6159b3a2961eb0818ca56d523d6424730225f28c838fb590d197f9fb3112f14938f018790a8c3a65924485110044110c4300c0dfb241da313482010401e8c4523c1903c52977d1300818ae2e07828108c43c170381c464108c4300883300c032108c3300cc3109e54d901531cd68e49b2bbfccf151fb3dbd65197a84067fd4d31e6d913d993917fecb3bcf68d29bc9a06ec28cb6e727cc7a6731abf4d1b44b0432ca71da2f9362a51810d083a3b85db60241cf1bcf734d744b6deb9e4035a9b47dbaacb0eca583cf0d0ff8932daf14fbeb33e4f21a578facd2eb19c52bdc8b667358e972b4c7cf35d6aa03edac1d50f32579f2942a04ed4b986293f82f987cf8a55324c3d8f44f8ec4a41f477f759c661a6e1dbdf20fc750f902f48e58a8292b308ff13dcd74d0157b785c0f310c86f2bea808ad7ee7b2aa6a1cd697202c0f8949fba32b6452b568b08a06cdb4fe375e85b0df4bd53558e7a1434a8b9ce81559a905e74994592c4e9633db3d36e368fad313e8118be18f453f62285b9aa0aebd465284160c0e5fbef14225473ffba0295b10990ef0ad1228b7d3ca96b04fb74cc8fe3a6c21062d75130a7531399e6e1a5711b65fe17729c2e775fce9f66c4d1a6aa4ed86592aba897e309536530a388f062e26bc4c8fce41f0a7bc342e252f64b770d5b6cd0a5f28405d139c30fd688f378d647f67a707029fbc16167421c3d3f40e751a83d4b8f08a7103c4ff3a67c537dd9e296d85733cdcc3c4dee018ad003711b1d9f2c380a495e661f5cf56133ab59fea9760def8875fd7f62aa8afa68c8c1525bf0827ac187ef114f7a98abcfa667562c670ccb6361ec722a54187dc96aef32fc6ca8e5870d9fddcb8981a504fdf06bf7ee8c9bafcb67d2f1301d984a45cb8defb30403d9080c6f6ade89f8e0b56f3e8669e671ce6d7896d32ed20e59290d1d50e11d4fddda302fd1095324f1ede2acae0bd58ee5312c614c2a5d324ce46fcec023092202b8e3225fa125669d11da495cdd8a6bf051b20d5719300ed0ff2f7b2ff7731f9e8751033a564e6c71bdaf743025d0e1c8768ca601b440473161efd1ac1229e5aa2a782050d9be05d67274a531a6847afcc76e8b00b62d5328c63aea5487d3c3b9d4fa3927e56f88a4e9fe19c1ad1fee52157ee86593a62b2491efaab8656406b9035ddc21dfdd3dd9dc13c7ba257721684b2dc13372062d570d7934f506532b19bee1c9853a740b3aceafcc138c653c13b2a815be209c2781fbc8636c29244351d7c579d4fc90cc7d73ae8fbf9f1a012d72df0424106be49f4b421c5a11b672b86fce220b23e9ae02af2d5d02b8c416972b7fab25e4c3d83b67efc9ac88c0919b712150b922e412acfd2d8b5eaec9ae88b4b71a516a8879c8849010fc6da58e646f2acfe78f1f275cc221184480c8d4cffcd7b8b3b3d4852416a13cc98cf85a90c12a5b9a172cb1f220df1dccdbde35e0bcc41b3c6cd312fd08c9d217e2ab6441c8c4bdfcec03ff968483d32c156c29a6fcf08568e020ed3071c49730bcc4a4b02e22cf295a9e8a42014642345959bd38b4e601db843e4b19e65b851021b57a59e83d8d7224d1aa5317c44424da7d4e7d51b3cedc546629b6af1bf0744bea07b9353f689fa5f5655bac480cfda5a1f8c5780b48f21d50524794892927283c82ef4abef66ee7b010b9398c052b84b19836800cf883526ac091ac27cd84ee81320816098193d10e48098f28fbf21aa1223962ee0c2304f1282ba43efa01f1f09b375becfa1f105fd53a5bcc650ce89dc211845d3efc872afdb3ec0ad7273f83e20397588b8fc89081358b8333e65e3b200f7b84d24077643d91a086ac68291e37a7f1fca779be41f7e30088be9c8ef22018aeb3bd0fafcda89d6082c60c9b967356d1b4e95b330d63e0d084bb22f7fe84d1939fbf03c35416386bef204a3af3f645bd5aba9ce105b211f3319943cd37cf79f358f6151a639f9703c8266eecee8ed636d61074bfd048d86a56253b98565ddb246952de3f400d44b2cc870fdf8e389645266aca2d200f5e57b35ab3f3e26029468adec36da1f4d615366089852f764c43d4e99fe3d172ed6b6883043aea58934502464afb5fcc8b611ed1fc2b771ced8c66916673b98d5c7690bc5ee2f9f477ec14c889c3a14d72ef518971105796763a78a7c6cc5fe41d58a9c442322f9bd4e08a52091bebe1b1b365b02633c4065b406524963749df700585a1bd09bc9cbf74646a5c8e52e57709892f503df039a1b59d84ac4de3a3fdebf37c8d6a7600fcaa256f4772ae5d193937721fca565583d97f9c145e74074778582a23cb73a59b37db0f20b7a74c507eca2cf44d1596f19c28539c612d9a1d1fc11b04865d4dd731a18f1a3201473d3a09018e9a579db94ec868347fcd482fa8952272410dfd967b9c55409792e2784a68dfd43b84a4fae5b4437b37ae404f92536ba7bf3931080f9dc08ce2433aff4864277136763314fd509aa8dea8d871634e3f6607648e98d8a52a42653cd377ca069618e7e72c92b7b44fbd753cdb5d95baed0aa34127bbe193ead62016950f33f93d9c94d4cf69b388f89dbe54d04c82fd371e45239e15a22dcf9b604ca7e0a130a5095d384afa3c227a877a5172969a3484a6bb58b43cb3229ff939532962a0c53e504ddda01ac09f941602a882e6391852b5746e48e512263048092533820ac71cdee994f68816cee7a0a9243b04c7c98fd0ea1293013f977a081a1a0e2ef4d1f980405ee31af6a08e8732bde6558d70ae25dbd7b97e5ab9b1b09e63a2313e972a342580d06933e0c63670ef06ae7c6e33ec6ae2d9ba66405071f92e28c514f9439931f55a01d039ad620566eb16fc0241859c844c31970189200fe90b66fb58079be224d10c40080e02fa68c5ffdedc4e7aa6ad1b3bc3bbefe1b5aa46dc640c24915c8a75a52511453a21793e49cf7970077a9c756106f3c2450cc18ab2d8de43b609e6b411fd4daabd294d4ac9278d99a30a290523674901563b34998c3d55a43f12380d081a1540e51fd26631962ff6428aa4327d88ebf1153b59e4c7a185cb4482e218ddd447aa8508c691b5560a95bdb1937684ca1c41fb43928bceaf854af2e8300fc63a3a7c58bf43d5dfbe8a16773453b7c23066221b1dfeccb83647352cf210eb50b75b1851ad6f297666e00f62200de83e2d12adf5b65d1423fb11b646525d976b6bbe67ec4a7f39a37d7c2be2b9ea244645d264d686096f6cea565718d578fae49cec69938bdbbf5df535f8c54c5597e839ec780ab73fe35a71ab34d0f31162845e16eddc128e127728e3722c9e7e78fa11bd68406a52629f63494aa39e08deff566c73fa0f6424cc839f974be5efd8b420f41f672d3c2c6204c05346b44d9854bf4281e6daf6f9bf70250c0266573298f25a9395a0b09ff1ac63ff5c59d877475ecac6c80a2258e064e7a6359f1760c8d0e3d35233788ea421d10438282e5c32d2e0820aaf6adda2445708c8f390e5e49633298376dc134818f4187aa32ae4c09d55fd3e13e874728a62e268f5f9a2f3d8c35ba6e6c9274640b6021f5977897c11298964c1c6e28fa2c14a344cdfd2cdc354fca5996b8ec46fd292660dd920303cf0780274e129e56c53f9a411cdd27904cc5128965ea07ba4845d144041966d66b49785f5ba5fd34d5e8ae745b01211ea835a2628879d90a510a4be77faa5f2b728b8a24db94b04e6f4d96cfa60baa1da8460c19fb2edcf2022a6a24983e2e3e3fc7b9e4e031699d91780e5a5262fbd362e4b1af4a58f76e2b1bcce111597a6a488d301d252f005d8947baaeabf7c261bc7c11134067ab13908b7d91c0eddf1298c24b96856baadc794bd394de3f40d80ba99c5c9ab1886b6f591775364e34de5b48c92b92adf384339480bdcc47a09ea61b6d5afb0b64613740c2a5b854330212456b149a4203f50a09411025a80c7752b5ed841d422ee42ad5a0dff7c6b5fa91e6a6e8d67e5b5f435efd09dc864cf8097305e15d38acaf96df4b7031a4b1be54746c7b2d7b54de35db6639336851f7a774e6a1020e60f21953a15b07add0dd3834656894c6188c4c7193364d6223c2875934fe605e6370e205094544477389547fa7201e908b7052b79a01833e6a18c1e2b23bcb532ed4fa416fe76886ad88ece9cc09588072891887d13023069f5b856c6dd287773ca34e2c45e165b4d4397c564c936b921e2361f2edd1aeeb2093318ed283ee4d262b8669cfe661edbc1a1f6a5d39bb9308aefdc9135fc0615670c8e8f23b750cc82fe7560e056f2124479f8e6474fb7310d18fc4d29ae61a2cde39dfdc8ef29b6c9bf4c1a866da7ecaf616a2104a3c3b824e3861f773230a521d2bee9af980d3a4630c554bf2bb4309052206be2049cdaf15aed6c8feed9ea56a55550368f9adb4a53ae6c3379a8085b1ed17450dc3127487d5fb9cbcc1200155ad94cb37e5030cd928108921c944520b4450a4b82aafcc677a5a490f8c84099144c1a044ebb9b76fcc159a263ef9c75860532d713314cb57853aebcd25bd2074f8946addabbdb15d1903ff52dcf8e1dd8076e711cd9237f7c3673c2de210cf4672d914ea2e2efc57a5cb199edfc192ad36dda00caa7c426ac8b131d2b7e0a2c2ee8a3095b97591231b55bb974667af3b9225a36d191354541fa98badd787686338539b6a6880dd7992310ffc90c4dd5be5f5bd2c3c1c3ba0db02e22494a446df93780ce45550f6119bf6e6a33d7b833ecb3b8211311748c733024e289145f0dec880b0ebfa1573a1c6526277683d0d86d7928c373f1f97665d916d317511c6ef8db27a99a958293aa5c47600dc003861fbff5a1b97cf76ff922781f3b74fa0fe677e1ef128a2027dc3da69686f7225107d274c7dcdca3dd580c79f773b6839a751247f01feba42dacb05cd07960f713976aee5ca18bdb05085d2a03a9e9cb9e7476e5b9ebb5a93d38c6fe07b26e34af1d81ecce38ccd9f1a4a811b359b14252796275f12321682b20549dc939e3e156293499c41c2c2e3557c42e46eb4a1daacd8f4c1b7ce9d50a56faac86fdaadae12d44a8f138b71efd23bc3e04671e2f68220083b2106308c8b2dab80cb4a6b913a2af0e39bdeabecc7764016f34508114e4abe4a86c9a6f1f46602ff100a26a0097862de080b0420fccea6c2dc1b50a3494cc1abeb3f8fd1d6346c9318ec1c5e168c0ba45b5d67928bde571bafee3b9c1ae72c79513cb39d24425d8be2f6ea43ed1c202237de76bac3a40f28adaa60f9f75e625408f3b3d61a2aae695c5f4c24d276f33b84c1a454d812c350e7244ed058f103559150b1cc226c26136477569a22029139d031734f609fb2ba049bf0da2b838945a92862aff9e98dca628db37907111473c662e0f09f2290a705ae242143408ce3cfab191243cd5c0882fe0671758f4942401b44afdb7b11a1a070264bcca0c8b151a31f82354580ae2a8a1b31b02049c3dba14f72eba401ce4c1163ff0e4a683c8185fee78221cbcefa001c8415a96792b86a9e4e03923b818d353d440c639de2961ea847fe7a3d10ad74e475631f2c60cba805416ec599415a8c7c8dc883792ad06514a2a6b6fd97e6ac7d8512ac2ca6ea1a2ff95fbeedff0377ac8f327da4253e02226d260015fc2c061735435944a53b11dc5e8388733fea4ebcd43aaf55c9c1441c1119aeb1a0963676325d8a01af5835b8397c68333402d8d64e916ac2b1dc8060c4a22e2daebdea594fc95907918bb68108db9cec9d428ed285e95415dbcea30f915622427b2e461ced76768871bbf41a95075c309a15591807f2f365c04a3914c70587986e8863321d7d8d8333f710e329c4f28c3b9aeb8bd511dd2caf47b0f7c123376a7505fb93a41132f792fdf08251e8ea7ad4802af0e84c8f4f80e90670d07647fc600443b1a16ab464761c073ace92630ee7e01c7325b35fa99677d15b883a33cbeb4a7b275589d8d00488e1fa5e86594a27abc608b9079493855c729c5715c83a41b00e08c254afb34740b91fc6b0dcd977f53121806ab8439a8d69159930966a51297f1989904f258fbeda8bca88ccaf3db83fa7f77b3309bc450b3fab8db79eb2df3c7ac3415e8760b34fed16b73406da3858cb4003dab3388222b230ead36a44e5600e88ef374b934f09374acfa451451a573753827e20d9cc33adf20e291ebdb7001228c8b1d72ddd087fb3e9a96084b515acd2c0130801502f5ad3435c9f744c5ecb001623939cd1cc0f0ebd8683c203a1ee2defb15be1cd9caa104d853691d85649804711b41d121d0bc4b2c743dd986225f2810a15e79f6b0834b56fe8578d248c2796ce4a7f968df709401d10e98b637254e1a829109c03091a090443cb0c80f58eaa4636da7aab125368b83e5c33f0fab78433f5b3936bc1b61dac97efbf9f17430bf4bc756fbf69f4565331f3561b96afe5144836791f4022c9972c255780e547c2d93479569ac6b58a2942bc793725ea337b4e3e784040da50280443462fde0d31a8e54b0236413865190d5b855a99f60881285004c46ac2de2d3305337f988a905947073cc58339942b8ec9439667a5defb0b1338eb83e9a920b58bd432d310f4004c6006d0a6f52c654aaa83f99ef5912d30b5557bf1c381d2c8ef4628e1909276fcfe2933a074de21fa97798a50bb6b60a9d0fcab6fde2f632d92b42532e27e1c659fdf1393e5fa3f37f2072bb70c82e1fca566317a124c6aaae3ce6bbeabb175f455fdea6002edcf4eec85b16594f3205d778f1089d92a8c643a5350872cf38822cf1852c4b67e2681d9bf2a273c244482f8e9fe4c4635f98877aa549a8744d805f10441e021cd8cc2cdbfbb6ab040a064ae6a967a0d356cdd8e0f2dcd63180133616cc6026c19f58f22597306c40a6419c151a90176483f8e901d306d4333d04ea242526828da1f990a0e78b69dd475bb86e5818d15db1f11fc4c248dd57a86e2aa47b4a27867a717edb98718efd9afd8058d2c020277adb43d28e83ad8a13187754c4beda84cbed5880044bfee0b057e2e10febb58d45533f60f9c12010db025bb83708d3758efbca7145740ad146b2112f0002b9a05820aee3f57e81f68cff66173cce337f87b1faa4e23ff21a1f2a9a8adb4203e0ccc100c31334e0cd25213513621ba5d9be66ee1d51c77313b54e42059bf17d1a47a202d131b1c84b2e17b897447c448e1b45bc9e823971b4939952b4784a3637e1562859109eab2925e92e9e822fa81444a1cc6cf0f91c61c200b4e8e8a340bbea4fb46c12fb8b42ba142e4bcd7c064f1b3dfde712bb79adeb962239b98dc782a06796054a28bc510187d6159bba04678497a704119b7807fc4ef74fca1e76fa59951adc9b753f997538eec81c15a6acac8d20671c2a4f1bef1440bcba0addfdabb871c1675455e8f4753400be43f3a5567f7dcfd4a3953ff129e3534018f9e0d44e601daf6ef514b9bf1eac47873e3007bf8b9a67558c0c8b5f623429b141990018f5c825113b95072845528663bac065b887507be1368b3c7854ae8050a6a455712a8e4509c8d516feb32535a2f216d184b6cfaec76d88d46aca1bda70be770b9cf5204a3382ff728a63a8baa942b4b04982610dc87ea146e7cdf8c19a51617df128aeaf64a2f304e845903ee1ee54b1c1027e056ef630fddd27bb695106da302b2f3f2b6a46928cff3aeea9c3d0a1c7fdc2d549cea6ce71d3e7da0e4afd8548f8d85d6557e16c3d9a77cda9ca45d0724162de0796a604cd9747d0109200a3581b2f2517ffe0b0e545e5d0505c1c3f33d356bc108774487c6420665e571f8e4c11a1b2b003607bc59299cd05b9fc2646d2bbcf4c1da0e2ab4e6c400212945b0f8d1e6226eed4420dd4b21a3b07c756db8e0ff940ad730cac56ac89d5a495a36fdb31952b00c0719ff05760674c00cc2b79c036bfe9c38555476233c3774b9629ff0ff299ca6bdd614ebe186eff8571f92eb013c55af3cbe929391151870a499b188020ded2b55a2b17b98695211e", + "0x3a65787472696e7369635f696e646578": "0x00000000", + "0x3c311d57d4daf52904616cf69648081e4e7b9012096b41c4eb3aaf947f6ea429": "0x0000", + "0x3c311d57d4daf52904616cf69648081e5e0621c4869aa60c02be9adcc98a0d1d": "0x106c97f53e386c97a7217d23e3412bd98a37ebbd0574c2ae95de296548523235144217f1177620148602f0ce7e4787643f6da946b7c9390422b5b16e8f1745e8799046c7d25f9bc688e9523897ebd59fa7f3b0d44198a0bc6c88a580aa9b3ce67d324ff4d0173ef7f6e75e06b0151998924c1c7b8704f80f7afc3262018a195b4d", + "0x3f1467a096bcd71a5b6a0c8155e208104e7b9012096b41c4eb3aaf947f6ea429": "0x0000", + "0x45323df7cc47150b3930e2666b0aa3134e7b9012096b41c4eb3aaf947f6ea429": "0x0200", + "0x57f8dc2f5ab09467896f47300f0424384e7b9012096b41c4eb3aaf947f6ea429": "0x0000", + "0x57f8dc2f5ab09467896f47300f0424385e0621c4869aa60c02be9adcc98a0d1d": "0x106c97f53e386c97a7217d23e3412bd98a37ebbd0574c2ae95de296548523235144217f1177620148602f0ce7e4787643f6da946b7c9390422b5b16e8f1745e8799046c7d25f9bc688e9523897ebd59fa7f3b0d44198a0bc6c88a580aa9b3ce67d324ff4d0173ef7f6e75e06b0151998924c1c7b8704f80f7afc3262018a195b4d", + "0x7474449cca95dc5d0c00e71735a6d17d4e7b9012096b41c4eb3aaf947f6ea429": "0x0100", + "0x79e2fe5d327165001f8232643023ed8b4e7b9012096b41c4eb3aaf947f6ea429": "0x0000", + "0x7b3237373ffdfeb1cab4222e3b520d6b4e7b9012096b41c4eb3aaf947f6ea429": "0x0200", + "0xc2261276cc9d1f8598ea4b6a74b15c2f4e7b9012096b41c4eb3aaf947f6ea429": "0x0100", + "0xc2261276cc9d1f8598ea4b6a74b15c2f57c875e4cff74148e4628f264b974c80": "0x00000000000000000000000000000000", + "0xcd5c1f6df63bc97f4a8ce37f14a50ca74e7b9012096b41c4eb3aaf947f6ea429": "0x0100", + "0xcec5070d609dd3497f72bde07fc96ba04c014e6bf8b8c2c011e7290b85696bb30035be32a48e566fd2a621a4e8851a00566daeb02c845da19f19f208f52ec456d4e77600fc41c314": "0x324ff4d0173ef7f6e75e06b0151998924c1c7b8704f80f7afc3262018a195b4d", + "0xcec5070d609dd3497f72bde07fc96ba04c014e6bf8b8c2c011e7290b85696bb305dd030831957b6e5ae18c05a78be70e49f4495fdfca8389f99173d7f1b4019e077e24e15abd6e2e": "0x6c97f53e386c97a7217d23e3412bd98a37ebbd0574c2ae95de29654852323514", + "0xcec5070d609dd3497f72bde07fc96ba04c014e6bf8b8c2c011e7290b85696bb35fb54620ff2e833eccc1177642b30456ecd401c75684a9c1cc1c529879d65cc65c32766fcd6b8a3d": "0x4217f1177620148602f0ce7e4787643f6da946b7c9390422b5b16e8f1745e879", + "0xcec5070d609dd3497f72bde07fc96ba04c014e6bf8b8c2c011e7290b85696bb3e08a79b5611284ca28d22cb1ad64189d654e3a0270dfcfac27fdbacb78fd65a11584bcce1f01e656": "0x9046c7d25f9bc688e9523897ebd59fa7f3b0d44198a0bc6c88a580aa9b3ce67d", + "0xcec5070d609dd3497f72bde07fc96ba04e7b9012096b41c4eb3aaf947f6ea429": "0x0000", + "0xcec5070d609dd3497f72bde07fc96ba0726380404683fc89e8233450c8aa195063ec922e7fd49f5961757261806c97f53e386c97a7217d23e3412bd98a37ebbd0574c2ae95de29654852323514": "0x5ae18c05a78be70e49f4495fdfca8389f99173d7f1b4019e077e24e15abd6e2e", + "0xcec5070d609dd3497f72bde07fc96ba0726380404683fc89e8233450c8aa195093fb92453bc0e8a161757261804217f1177620148602f0ce7e4787643f6da946b7c9390422b5b16e8f1745e879": "0xccc1177642b30456ecd401c75684a9c1cc1c529879d65cc65c32766fcd6b8a3d", + "0xcec5070d609dd3497f72bde07fc96ba0726380404683fc89e8233450c8aa195098d10965f202a3d561757261809046c7d25f9bc688e9523897ebd59fa7f3b0d44198a0bc6c88a580aa9b3ce67d": "0x28d22cb1ad64189d654e3a0270dfcfac27fdbacb78fd65a11584bcce1f01e656", + "0xcec5070d609dd3497f72bde07fc96ba0726380404683fc89e8233450c8aa1950f0305c7924a3f8796175726180324ff4d0173ef7f6e75e06b0151998924c1c7b8704f80f7afc3262018a195b4d": "0xd2a621a4e8851a00566daeb02c845da19f19f208f52ec456d4e77600fc41c314", + "0xcec5070d609dd3497f72bde07fc96ba088dcde934c658227ee1dfafcd6e16903": "0x105ae18c05a78be70e49f4495fdfca8389f99173d7f1b4019e077e24e15abd6e2eccc1177642b30456ecd401c75684a9c1cc1c529879d65cc65c32766fcd6b8a3d28d22cb1ad64189d654e3a0270dfcfac27fdbacb78fd65a11584bcce1f01e656d2a621a4e8851a00566daeb02c845da19f19f208f52ec456d4e77600fc41c314", + "0xcec5070d609dd3497f72bde07fc96ba0e0cdd062e6eaf24295ad4ccfc41d4609": "0x105ae18c05a78be70e49f4495fdfca8389f99173d7f1b4019e077e24e15abd6e2e6c97f53e386c97a7217d23e3412bd98a37ebbd0574c2ae95de29654852323514ccc1177642b30456ecd401c75684a9c1cc1c529879d65cc65c32766fcd6b8a3d4217f1177620148602f0ce7e4787643f6da946b7c9390422b5b16e8f1745e87928d22cb1ad64189d654e3a0270dfcfac27fdbacb78fd65a11584bcce1f01e6569046c7d25f9bc688e9523897ebd59fa7f3b0d44198a0bc6c88a580aa9b3ce67dd2a621a4e8851a00566daeb02c845da19f19f208f52ec456d4e77600fc41c314324ff4d0173ef7f6e75e06b0151998924c1c7b8704f80f7afc3262018a195b4d", + "0xd57bce545fb382c34570e5dfbf338f5e4e7b9012096b41c4eb3aaf947f6ea429": "0x0000", + "0xd5e1a2fa16732ce6906189438c0a82c64e7b9012096b41c4eb3aaf947f6ea429": "0x0000", + "0xe38f185207498abb5c213d0fb059b3d84e7b9012096b41c4eb3aaf947f6ea429": "0x0100", + "0xe38f185207498abb5c213d0fb059b3d86323ae84c43568be0d1394d5d0d522c4": "0x03000000", + "0xf0c365c3cf59d671eb72da0e7a4113c44e7b9012096b41c4eb3aaf947f6ea429": "0x0000" + }, + "childrenDefault": {} + } + } +} \ No newline at end of file diff --git a/cumulus/parachains/chain-specs/collectives-polkadot.json b/cumulus/parachains/chain-specs/collectives-polkadot.json new file mode 100644 index 000000000000..e17958f1f683 --- /dev/null +++ b/cumulus/parachains/chain-specs/collectives-polkadot.json @@ -0,0 +1,98 @@ +{ + "name": "Collectives", + "id": "collectives_polkadot", + "chainType": "Live", + "bootNodes": [ + "/dns/polkadot-collectives-connect-ew6-0.polkadot.io/tcp/30334/p2p/12D3KooWLDZT5gAjMtC8fojiCwiz17SC61oeX2C7GWBCqqf9TwVD", + "/dns/polkadot-collectives-connect-ew6-1.polkadot.io/tcp/30334/p2p/12D3KooWC9BwKMDyRUTXsE7teSmoKMgbyxqAp3zi2MTGRJR5nhCL", + "/dns/polkadot-collectives-connect-uw1-0.polkadot.io/tcp/30334/p2p/12D3KooWPrJ9VTn3GEs2e7GQs4zoEFiTFcjXFNbQ2iDxFDQAbstQ", + "/dns/polkadot-collectives-connect-uw1-1.polkadot.io/tcp/30334/p2p/12D3KooWGFYW6hJYn3pkpJawyMk6souXh7sznK8yvPmVQ7ktfHbV", + "/dns/polkadot-collectives-connect-ew6-0.polkadot.io/tcp/443/wss/p2p/12D3KooWLDZT5gAjMtC8fojiCwiz17SC61oeX2C7GWBCqqf9TwVD", + "/dns/polkadot-collectives-connect-ew6-1.polkadot.io/tcp/443/wss/p2p/12D3KooWC9BwKMDyRUTXsE7teSmoKMgbyxqAp3zi2MTGRJR5nhCL", + "/dns/polkadot-collectives-connect-uw1-0.polkadot.io/tcp/443/wss/p2p/12D3KooWPrJ9VTn3GEs2e7GQs4zoEFiTFcjXFNbQ2iDxFDQAbstQ", + "/dns/polkadot-collectives-connect-uw1-1.polkadot.io/tcp/443/wss/p2p/12D3KooWGFYW6hJYn3pkpJawyMk6souXh7sznK8yvPmVQ7ktfHbV", + "/dns/boot.stake.plus/tcp/37333/p2p/12D3KooWRgFfEtwPo3xorKGYALRHRteKNgF37iN9q8xTLPYc34LA", + "/dns/boot.stake.plus/tcp/37334/wss/p2p/12D3KooWRgFfEtwPo3xorKGYALRHRteKNgF37iN9q8xTLPYc34LA", + "/dns/boot.metaspan.io/tcp/16072/p2p/12D3KooWJWTTu2t2yg5bFRH6tjEpfzKwZir5R9JRRjQpgFPXdDfp", + "/dns/boot.metaspan.io/tcp/16076/wss/p2p/12D3KooWJWTTu2t2yg5bFRH6tjEpfzKwZir5R9JRRjQpgFPXdDfp", + "/dns/boot-cr.gatotech.network/tcp/33120/p2p/12D3KooWGZsa9tSeLQ1VeC996e1YsCPuyRYMipHQuXikPjcKcpVQ", + "/dns/boot-cr.gatotech.network/tcp/35120/wss/p2p/12D3KooWGZsa9tSeLQ1VeC996e1YsCPuyRYMipHQuXikPjcKcpVQ", + "/dns/collectives-polkadot-bootnode.turboflakes.io/tcp/30605/p2p/12D3KooWPyzM7eX64J4aG8uRfSARakDVtiEtthEM8FUjrLWAg2sC", + "/dns/collectives-polkadot-bootnode.turboflakes.io/tcp/30705/wss/p2p/12D3KooWPyzM7eX64J4aG8uRfSARakDVtiEtthEM8FUjrLWAg2sC", + "/dns/boot-node.helikon.io/tcp/10230/p2p/12D3KooWS8CBz4P5CBny9aBy2EQUvAExFo9PUVT57X8r3zWMFkXT", + "/dns/boot-node.helikon.io/tcp/10232/wss/p2p/12D3KooWS8CBz4P5CBny9aBy2EQUvAExFo9PUVT57X8r3zWMFkXT", + "/dns/collectives-polkadot.bootnode.amforc.com/tcp/30335/p2p/12D3KooWQeAjDnGkrPe5vtpfnB6ydZfWyMxyrXLkBFmA6o4k9aiU", + "/dns/collectives-polkadot.bootnode.amforc.com/tcp/30333/wss/p2p/12D3KooWQeAjDnGkrPe5vtpfnB6ydZfWyMxyrXLkBFmA6o4k9aiU", + "/dns/polkadot-collectives-boot-ng.dwellir.com/tcp/30341/p2p/12D3KooWDMFYCNRAQcSRNV7xu2xv8319goSEbSHW4TnXRz6EpPKc", + "/dns/polkadot-collectives-boot-ng.dwellir.com/tcp/443/wss/p2p/12D3KooWDMFYCNRAQcSRNV7xu2xv8319goSEbSHW4TnXRz6EpPKc" + ], + "telemetryEndpoints": null, + "protocolId": null, + "properties": { + "ss58Format": 0, + "tokenDecimals": 10, + "tokenSymbol": "DOT" + }, + "relay_chain": "polkadot", + "para_id": 1001, + "codeSubstitutes": {}, + "genesis": { + "raw": { + "top": { + "0x0d715f2646c8f85767b5d2764bb2782604a74d81251e398fd8a0a4d55023bb3f": "0xe9030000", + "0x0d715f2646c8f85767b5d2764bb278264e7b9012096b41c4eb3aaf947f6ea429": "0x0000", + "0x15464cac3378d46f113cd5b7a4d71c84476f594316a7dfe49c1f352d95abdaf1": "0x00000000", + "0x15464cac3378d46f113cd5b7a4d71c844e7b9012096b41c4eb3aaf947f6ea429": "0x0000", + "0x15464cac3378d46f113cd5b7a4d71c845579297f4dfb9609e7e4c2ebab9ce40a": "0x1010b8483205ff2e3dd48d4d4ec691d40d176926a9371c86ba497128450cdb7a404ea63b50c3023d2eedb6796866581f3260d1f6fca2c08399d3889ff6cd904220667c31d014a1f5ed7bc867583d264062d3c7b15dcf14d487b976cb15292d204cc42c67a21ef4329adcf99c421b72d95e4b5a90e24beb0a9b1c922a33a3b45244", + "0x15464cac3378d46f113cd5b7a4d71c84579f5a43435b04a98d64da0cefe18505": "0x00a0acb9030000000000000000000000", + "0x1809d78346727a0ef58c0fa03bafa3234e7b9012096b41c4eb3aaf947f6ea429": "0x0000", + "0x26aa394eea5630e07c48ae0c9558cef734abf5cb34d6244378cddbf18e849d96": "0x000000000000000000000000000000000000000000000000", + "0x26aa394eea5630e07c48ae0c9558cef74e7b9012096b41c4eb3aaf947f6ea429": "0x0000", + "0x26aa394eea5630e07c48ae0c9558cef75684a022a34dd8bfa2baaf44f172b710": "0x01", + "0x26aa394eea5630e07c48ae0c9558cef78a42f33323cb5ced3b44dd825fda9fcc": "0x4545454545454545454545454545454545454545454545454545454545454545", + "0x26aa394eea5630e07c48ae0c9558cef7a44704b568d21667356a5a050c118746b4def25cfda6ef3a00000000": "0x4545454545454545454545454545454545454545454545454545454545454545", + "0x26aa394eea5630e07c48ae0c9558cef7a7fd6c28836b9a28522dc924110cf439": "0x01", + "0x26aa394eea5630e07c48ae0c9558cef7b99d880ec681799c0cf30e8886371da92db362cd71122f9b5aa50a90539ae9294ea63b50c3023d2eedb6796866581f3260d1f6fca2c08399d3889ff6cd904220": "0x0000000000000000010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "0x26aa394eea5630e07c48ae0c9558cef7b99d880ec681799c0cf30e8886371da969add5569b86e6a8960dba59f16ed5f3667c31d014a1f5ed7bc867583d264062d3c7b15dcf14d487b976cb15292d204c": "0x0000000000000000010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "0x26aa394eea5630e07c48ae0c9558cef7b99d880ec681799c0cf30e8886371da9de4784f2786aab645a9a060c6c97877310b8483205ff2e3dd48d4d4ec691d40d176926a9371c86ba497128450cdb7a40": "0x0000000000000000010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "0x26aa394eea5630e07c48ae0c9558cef7b99d880ec681799c0cf30e8886371da9fd8ed2cc49c451026b79bc1ddc510b6ec42c67a21ef4329adcf99c421b72d95e4b5a90e24beb0a9b1c922a33a3b45244": "0x0000000000000000010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "0x26aa394eea5630e07c48ae0c9558cef7f9cce9c888469bb1a0dceaa129672ef8": "0x29912c636f6c6c65637469766573", + "0x3a63": "0x", + "0x3a636f6465": "0x52bc537646db8e0528b52ffd005844d8023a5443ab5620d0ba4a075a9f151f05dd81c3978c0677fad5133d27a7814bf49e9d61daa9fabb0e7c6c761c13f4eed9b4fbbffb2c93b4b961bacff04e6f9db0e7fce82bd44b87e0b37d1765514949232458fb7b6f42e4de32c99452cd0bbb09970a5d74aad0a9a273858e153a5f74b8e880a143039d2d749cd06942e7091d2674b2e85c898511f3a233a593450c8b8e94ce173134b1333951724c104b236704392488bd11bb41ec2ae646ac8d181b3133b135626ac4ac626562646268c4c6c4cec889cad12127871c1c729ce4dc90d32487490e54ce921c253949724490d3430e929c233936e4d490c343ce0e3921c8f921162606264646ac2a36464c8c980d62596235884dc5bac460107b416c4a2c04311c70d0e09cc10983c305ce163853e02481b3040e0c705c8023050e11b0387092e0d48063038e12581b30366066606be890010b032303060646051b03530386066c0b2c0b18169817b02bb02f6034809900f6034c08d80960516050604f6040c04a00d30176032c0758131c305e66bcaa5e6fbccebcc8e0a0f12ae355e585c6cbcaab8ad7d52bcc2b06af285e53bca07849f1bac1cb8957921712171b2e33ae355c6ab8d27055b96ce0c2c295c695c54586ab8b8b8bab8aeb0dd7942b0cd710ae285c317041e192c2f5844b062e290084c0645869260da6151ee312e265c34b87570e374e806440344027e00d2e282c38624aeca860470a48065886978677860d0e2011e010ad273d4ef41c61e325968567c6860bbfc24ae3e68c24e2e60d100a59826d0a1533a5f8526083022f0ccfca13c37b80c1e1a1c12a9827b891ba89c14c62270cd814ec0bac0c8e414d152e12bc6aa8a102bdc0ac280a280d6e9a68219a88cf0ceb0b96172e275c4d7c3f7c3e7c623ea88fc9b7e46bf229f99c7c377c636a588033e635b573a526096fccc7c407859760281809568289e026780a8e17dc0266011fc1427863f0101e158c08d612638265e051b02c312a5e81eb3013a34609cf6116c60303220195f0131f153088591c332170c8dc488133c543c02e6018c82a66542c319c093bc126988d5133a5e608af8c1919ee04070997c00bd39384a7702898168e438d0b6a5ef08a83bbf850e037300a6a5a30bbc22f984dd5185183044f94efe04d6627e009014bcd58c05138053323680fde971692d691960dad12b46a60c50172692581598925a1a3050b0a568d6503ab069a86c6e1dae2e6c9cd911b263750373fdce07063829b206e4a7003e586043740dc8ce0e6861b1d6e94dcf0004a7113821b24373bdcf870e3e4a6879b26e014a01428033006374b6e72b84972137523021b343670d89c6135792df182c14b89d70b5e2e7825f19af242e2d582d7112f235e2c78ade0a58297945711af14bc50f022e235c44b88d7095e516223c08192637096805074045c19ee0c6e0c8706fd8123c3b1417de0acb8366265bcb27066e810db1307c3bf3817700ad804988497c085f020a818d40c3a066b0c1c2158606ed2b890b86a140d7ac6fc610e319f4818482a72896f071c1e3e1eb62536273626641152ca26033a45bda059be223e2c1e1b5f163565d48ca909e32a83ebd223c69706c74a0fb165d9b6e0f4106bc213e355b1117c028e0296060c05385fb014ac2fb120c02e5b148f8c0e16130dd6191d1bcc32f20699837432c9380f128759141717134b4d2dc6055c4279d0d9a2e3050e125e991d11b81a738aa7c60d14730c98e4260a0ec25b631686c3c05fe0556225e0243c32e418b20c9c2a3a586240c076c0618347873e01e8835422f6c43383e585d5a5a7065618302c2415a721c5708d000483f5065bc930180de9a59580506417161a2ec36a301ccc0417315b308fd8aa6021008ff89289c40d952dcc14c35470da904c7804740a4d226605ce1157028b9a67dc3cc140b0148f8b6ce275016d006bd8c8987de1798981b1951123410c0a9360013c14a0420a46094040253a80015e47041064c2082e2fd38d8eeb72f785d512a9880f0e1c0df181f4c2d151c712c812d2d1516b86a9f1233f8e84b4b0c443494908029a7e20292909410000dc862da294e4a30909c81112520b20780d2ba485a5a4a30e3021c540e42869486d5a4282a1033e1ef05e5ba41f4b42968e7c1c250da9483f968438a0692906213f7ed41e990688901f48403a90716c910e2005392a52a403482b2c09492a52044902a1846367481a529990823009b1000ba144b3484d3e802429f990e1082906a41820300120482eb8e06302009067b648901f482ffc78638b342d213121bdb094f4f2064b492df0c8abfd9154642989a9c908d2510794860cf171c4840444292986a2203f842815cda41b0bc3918f261f407c342135e046b6e18124251f494d494b4938928d0df2438812078e909a62f8816404c925cd2c1293100478728d2d8294d494c424e485a6187cbca41abb2424a9c907530c408e9a842815394a1a527d30c5507196919438e0a3692986168e9a7e20312501594a3a3ad2894d275c142b4d9ed47dea56aa56abfc2475b67935af7808738e0029a544400264021020a54400a53953f62d9a73b666d3288d79a240dde76477a734a7ce94a9531aa5514a27754aeb3951604add9d2953673a9d3a6d4ea693a9bb333375ea3ee59ccc3d594e9d67fbec5dbabbbbcca2edb3d54ca9fc80d256cb5b939dd6f8646e4a27339d9252cad475ccb93cddbbf68e9b93762d9fd27d6bb5b8065b2d564dd38e35e7c69a4e67bb579e9432a59469134daf716fb9b740e0d6ec11da9d29059a937bce964eddb935d9b9bbdba7b733738b9d76bbd3397d8630db9967f39ceeeddc92cc9272b76ce6edd9744a2a67cfdea694cea52da6eedc6ab950c7ee0e76ab6b58ade6c056d7757436e7d39936a5216dcd39a9942c4aa9a4947600034cf9416bca16a535d37dce59809d947e925267dab2a7f40fba5948484808047db27bcf5dcf73e79d4e1746009d393d97ce5232b3f4c9debbdc726eb5585d63d3ddf29ed2bd351b9ccc94e63e5b73720ef7d96a7d9e3bbbefb6cbbb2d4f4a5160ca949d4e14a6ef000104f7392953e78fbd1c3c9e730fbb4f9e01b45c870e771deb3ba72f77d4d979bbe93d999777636fa7b435e49aee1fbb33fd5ad6b45a2daed5cd93993de6cec1cc3448b6fb74973d5b3d73f8746ff756cb855ace519fb30329a5d36b9e3e5db6eceee63866f656abd56acd56b7d7d4744d4db773dc9cad5677f79c94ced9ad39bbc535d73d7db67c7e1f6d9a4f8ee338a639d8d963f779c23481190808885d0025903029a5bdec4074fa0c726766a7ee943af36cb5b85b5cabd5ea39674b3ac264e600b83b7b1c737ff001f5e9be5f0f33730ef7c9ec72669e944673ba747d7a7bbb7f9e3bacd50cd422b8b38bd0dd72e6783965a6cc0c007739cd7d99ba7308ad9f6db578d23c97b3e7f439198496b77c4e77a6ceb5fbfa3acf769fdc07d30573a61eb88f334f760ebccfb9e5eec5a84f67f61ccc2e864d29a573ba4fca94dda7b333bbb3cf9deeb3a7773d9bebd9edd3ddbdf329e974caeebeeb3d60f474f91e23484096928e96927cbcf0a3851684880f0489090908939023a1134a404a626a0a6161e0250189a9852326214d3e7e085152f2318321a969290626b1a785a6187a905e386a5a4a621a72f4a348120c3310603adf4e901f3e38a0a42424840e7638e080039dd9ac5b1292d4f4c34791251f4c4d474d4930c020849623f6f0c09690860cf1313341a8c78890199a38103aa184998e1248382a0129880f250e1cb9b094f442111f2f3c920c484a47467cc0d001cf92e08210a5231796925c704188928e009494928204ed140141674b68122284265b127c2031e52005396a3282b424424e13920b20c49684224d45928c208580b32518496a01896948108cc90792d28f2324177c3009692a72044429e9851f474d4a31f8680109c84fd7c4e4a3a90808259080d4e483096909c905a6221eb8b6042048458a20310d8141c88f2326241984fc40623af25104c80fa4231282089d50c2901f484586b6177e34f9e0c0d10b459296925aa0c9b084246f9684a32521494598906438ea400b494c48321c0d8084134e280108d29190a6211d60fa71d4640429870c4b48f2b5dd0126213020c1b0c9b0842443f8a668777ae2a493f758cee969ce27a7eeb1ad1eebb4393d6d4e4e4f4f9cd3d313e74fd4c9699ff8699d9e640f272727d9e349f670e21e4fecc43dd6c9e9c9493a3939790f2776ea1e4eece4e4247bac9353f7787262a727d9639f688f7d62f5d8a727ae87133f710f27767aea1ebbb3c713778f7dda7a3cf1f6d8eef1c44f4f4fb2c73e3d3d3d798f7de21e4ffcc43d8c641bbcbb0c43111f1b2fd4f9ae24db29d24da4352d0b907fa44dda3a95b96c6349465a8db22a7f5cabeaff821ce2de457e52e58f4a6c65c603b95655c7ae3d6171748aaafc1c073832d4c856d5ddeb2e90ff7e10e8a2953fe35655175b89adaa7f87d4453002b28813bb4afec827ea0d0ac83f76adca5fab3a768d7a205b51b69256d22a09955bda66a87f7ff6cbe9fd5bfd657f77ffc7a35f8afe24999f38e8ef3d44bdeafe05e84edd9ff3e9cf4dfff929c03d9fcfef217b15ac3ecaaabbcf7054f22aaf87a3e7fcfb1971f3e7bf1f0f173d0ac264dc9e7bb3fd8b6e7dc6202a6912942b87e450a714c4c50b7f7fe677e1eecf48abf3e79c33a8ce2160f5194483aa8beed44fb465189c150d51d2aafa7315d24a5a59c9325feda3aad5a495b4e2acb66e3d4ab91f6975306028933ff2bb8ef3f65381bf7f863d7bcec96de43c82959bc50d89ece6228c1303e41f4139bd06509fdee4d5bd7d4ab73e1d535056e7bf7ea4b97e0cbaf951c756b9dfbee342ba541fed258eb420973806e9b811471dad07c591765fc312c7af23f8899e4cd6892d71f78752fabbac1f6595ee0feb29abc7d370fca6adce6d6ed5a3eae678da9cfc8993b30b314ca8d407aafc09127fe24fbef80fb46ea24be1c0b81497e24ffc09957a98ec9bbcceefad1bac3d5bdc4222ebd3f36f8ab26e4ad910eb475ae76c7230acd009acd56a35141d31ff6990f95c8f1be07cdaedf4a001e76fdd5e7e46dbf62960b9f2c7638a9ecf91863af7e3e175fa66e4dde4db6fa20c5ea7875ed7473af1d3d613889d7af9fd4800ef47134498c17c3a48fe6c21d1d2e607cdcfeb66d00c9a54d42955e77e9d3dbe4e75ec67cc6ebea4ac1fc1bab57e7708943f4db3cee7c480db6fdfda9eb53ddd7a547fc9c2cfba719b0c334888ed23ec49cfb7e72ddce68f3729cceac664cc6f05ea2db45374eb33f2144e047fdc61f36309353f86f0fdf8ddef0eadfca13f82756e3fca3a5fdc2130dc1ddecfa72bc4da1dad9fcf8b02037884a5a2725c1890e39ea84139f48020393484018c023be111e483a00d5823ca3e719475e208d631a8527113c7aee35ea9dbb742aeacd097367f881ca2fb335f3e3b61147647a0ffb26935d7aacadfddb10b3476a53f761dd94995ff0039c451f2473ea53b257f46d928abe34e55f99d1772e5a8ee653210dc9f91d6ee475a478eaa72a7a83306ef8961278ee206c23a8fe6c7e35bbcb4393f1e5eb7ef38deae592a8ebc11c975ba542c15536a9856c154557e4741708455f9a3570aaa01fa8fb47ae0828151efe9c956c5b15514b4a95334d234ba82bdf23aee15f5c0adda2aa6caa15b2190d6ed6da654f9ddc8d57f77c77c17474f03f47717e94e8f1b20a745dd7ebca9f23be9adfc8cbcc5d1c89491cd80fe44b243256eaaf67bd8b33a458e6a81e413359f01f233711d39aa2aa7cf6d1395b8a9eab4eee7fe2e2e7153d5668a64d2adcf08eedcfda638729defbb636b9275fed230c0f9fe44eddf0a5d37d11768fbed89db7c7371a4c18924f7f2e5d3c9cd2936c9ba719b0c126c32baf51957aa4ab069b06e3e8753369be148ab2c3b1c956095fbd9356d3e8723ac4e0ea708864424f744bd1c58e510287f3af7f663c1f9336a717caa9c387295356df4ea7c7077f8cff9de432f7fe44f715482d5f9e00c9b0d70fe08aa006b9afc29ca5e0e05c91ff9f2b7853871a4b59b1e17caf80b6a9a7c07805ed3e4f38f4155fe7eb469d2c30272e721d76e5bee1a177d81e613f538ebfcc016eed2e6fb67b4fdce4d1c69a8febc557e3cbcf61335d8425b95cf855b378e1395605ef79b22cf0afdf3a7b804ab2ef6af54dd1c4f93e70af89558b592aadafdb2ab9ddd4e8f1b20cf0afcf2e5f3fbcf979fd15c679e41b72e2a70a59254d559572a49545dd7137301e69c73fe7c6a66312477bb02b8df029eaa3f51b3f8c49c000a74db42ec1ecae7b05f8673861ebaf4e4a702577fef50b6d78eba6eb94a29ee7736449cea5e606786cedbb419cadf2f05aefd549b3b97fb19c9276a0f99b6108f8b2970f57791368d7f86417aae44224e957f94df2c6ed3b891ac10e8d5ab9dcd3625cb97ef7353a15f3e516f0bf1a4d02f5f6ecfef2d34ce0f22df7fdb9eb6501b6d5e256a96ea7605b0b3f14f82a42e8bb469fefe9d4d1111a7eaefcf4644b8bac8816e5b3eedf7df16f2fe8c5c3e7f0ad8caf5895903ddb6504b8faaee6f88640a0995fe9156295fca97522281aa524a29e5af8f8401cc912b47a2be85fafb692d347aed7e9f16e2da3670a9fd5e0fc9a2aea308b5eb38abfddb1f34a45b571870a56c00a2ae54ed4a0075a56a98aa1f51fff6fbde42dcd7fd8e0bb76e21d76e8540aedc4b8f3fa38d014fdc77fcf1d89e13c7edb7effae301d6edf7f3a6f9ef67349fa8b7df4f76fb51717caaf4b970a4dc13492e1cbd72bf9f11fd8e0bc70454eebbfd58e268a4b29e0bc795aadc6fe1b84d3332e4851e17a8dc8fdbb4f10195fb715380dcc2adac90884c9326cd55dd9e0b470254ff8e3d2ef46781ab1c0d8970751347ae9c4884d3a44993a68e4f756e4d92f9475865ca324db73941b4ba758901ae540d5275a475a56aa052f7bd1ee2a27d590bad54edaa6e1d67757f7d96a85b113ae4ca21576f21feddea2dd4bfdf71c71e7fd7def20d0f28244ddb2adfbf5f7e462deedef08072d2b4adfc1e6ed33ae4da1fff7e52f4fd8c68d37a6b875cf773c07214ddd6feede71ff7bbeddf97fd41568afbd40c818e9f43570d40a91a551dbdf6537e4a570e6dff8c60e51fc1eacc4064b79452ca5ac85f7e27e74b9f53f4906b8b63bf1c023b9bf519bff66f0bb5107fd8ad10b8ef4debe7cf68c56dda488db669fd447d02c8df2f6b211972055ba81fd6422ec3adfbf913355173c8b302adfcb4b2c8b3827c7ef92c367175f1a53872e527eaf56931c8d7cdf124999fe8b6aecf08d6fe6e5b68e497efbfd3e306c83f7ab5b769fe2580fc2cf00791e236cdc591d67d0eddaacae0b2618fc3ae525586edeba4b7bb837f944f5b68e42a7fbf932109a0fcfdfd54d8a68d5ef7a5489bb64fd49df43894f59361f3a8aa0c5ecdee60e25a257280cadfdf1f0b5eab557efe7880b5caefb5d0d6fefd7870adf213f5863e2d0601ebe67892dc61baed6e7f40fefd65751b00907f7f59dd0281fcfbcbeaf8b785c67d16b769fbfb4fcc38dd4ad5a2d4e5bad501f2ef2fab070c76228e255a3d597ac6e899eaa1d2f3440f133d2d98d9d053ebb18107cceccbec881918b3256649cca6ccc8cc5a3073c14c899d33b325b32333243334664cccc4cc68301b6246c4ccc90c87591bb31c78d0983199dd306b3283e23963a66456038f193c61666978c8e0896316c5836696c5ccca0c8e19169e333c543c69f058cdaaccaa6666cc42c09366569bedc0a3068f183c70f094e1196307cd2cc94e1c3c5f786aaf253b6eec70d9a1daf1b2d365478b9da91d2e7656b043829d1f74c0e88ca123860e954e183a5e74a4d009610755fbbbcd63855bb485aeba5df5d0367f55cd0a4a5e45d59e5477a8ca3f7251aa8b3d6e80524a1d3dca959534aaf273e1ca9fd19f6ca14d0553476944ed9f21b83b66b2e7c69c2fb5895237879364af69d26d95ca3ad6dd89287f2a6c5454fe294a55d6d134666f5b88bebf0fad855acf2f420bc9e737a185baf73c5184a6b542ea35ad5faca102f277d7deb69009efd300505f440dc0127d68dccf90e3880ca9db73bf1f0fb0528e2302562a8e4366c805e17efba8082dc4893c7f3f1536714511a40caafc320439c9553df9f0c5136d584146131e94180a62aa07294796b8720515212b422019830c2ae068e204234f3c2089c1161fa25460821a9890021d8e20c1151938944c11809136ae585245072492c8e282128cd0c240b1840b291c68f00609337481a2c5064feca0461041335029e34b1c265802c5ca04232839628583551146f46044003c29cf051e1015a0628225d41023268e24403833bc66d82c56664055a140c992232200a165872b6cf0218a1b006064ea8a2c4cc8e088114f3409c188074cdcd0851753392cf99161026d10d143933367a4e00b6d860754e17215458c183e34016186a71bd0105104972353cabcf1c1185692cce0055610c102280f6248c820e1860e6f90c1e233c39a71a40b1914c4808c1ab420c7134d6c50c20609d83862073188323e0c31954409c26011babc00f70a3154d49bba5798d145955566a1d11bc1ea5c5db63dd43f8a50f769fc19c98f0901cee79fb5d0e853c7292af9541ac70e3cad2fc89401bdae54133167c0565da92654dba48b26394b9da2a0091664409bba524da0d8c42648e000ab6a32c41a4d7ee8d280605da9264b3c28c01c2b2f09f87de9c264ca09d0ab2bc5848aee056057578a491346303162e510287ff899b968f4ea9c524c4e50e77bdf50341fd6435e34ff7747abfa301a2cca5a00baea4a31d1a11507f8428305a8f3a55302a460cc00845dd10203fc9ca802bf23bc1a18ab2b05f5436b0910a7ae14940d95bf5506f8d5955ac246e507e59017314b2d29a37a759755a2266a198221ac7ff8633a805c5da92561d4aeaed41231d587a7133fb1645d8122451b5d08d1c40830a27823ac229644d1a0066a8819a38319f60c1251643943860b17553830f28113b8c00625980a02aa4bcf0c4cc6c491e4cc1b4bca283333f224ca1448a8a2cec042043c46464852658c2ba60c21032d76664840185a5ca191aa0295864e1216f080450d2eba605181cc4806b264d1061333a4be3822270425620c31c6042b980195d80c4e362023831a7001a3a50b9c7e6ac205424cf1e26a8d358c2882d5116436d2adcfee0eaffba37fad56b3a188283604c83f9a50f7570ed1227e2a87b856abd5a08af8693de445fb4b4139546408328668a2862790a815bd6affd7fd7a7db8999be8564a91549ec8a8baef73e3a8532a9be9c6d1cddb7029abd579ee79b2d9f36579dbeabcafc66b6a6473cdaef7ade76db8355675bfabb1b1f1361c656dc3b1a9eafe8dcb5d2ed9ecda52f7a95469291da56b1d655555650b159ec2511c856b57bb45baacda2ae2b85295bba5749f9b6f9b6cdeb8a5749f73e39ce36433e773db388e5256cb5b2dd9dce2288bd56a759df7f9f7c9e6afd579def7d5d4d8800e82b219fc3caef1d8c6c66310f4f8c6f5f2d74b36bf5cdebebc856d38821b8b799b2373994c36cb6e3c0e5d1e87afaffbdd0b06f3381c83ea3ecea702d76d5a87e37118fb54e06e733c274736e7d01aba40dc365d36e3d01a2032ddfa8c5e54edef2498a6b5acaa2da916a87fbf07d0ed975be490ff166d5125550f715cfaa71f4cd5182b33f28a43537b7f47da43455399bc8eb487da5dc45dd30438fa545e9fa6f18efc955be48f147bdc001daa8e0e55d5cf51c9a12dea91b3aadd95bfb3b14a41d61a2640de2287ba48d66d9a17553787f320dee06b67d36fd401073d339e1d1d594e0c07f672dd8036359fd7b55894dba6cbe605dadf8f08a7a945c8276a5e5efe513624c5dd1ffefd5ad9899fbabb8b94521cf7e7fb8ffb1f0bfb41a694522e9be97685dc65d31685fe71bfeee3600176dd15b80659717984fda76616787b1647ea4fdb9d86ebce713f15bd6efff2168ebcfdd2794526af4db28500fd86071418f9fd748ef3b769eef37d36cddddfbf6bf6ea6210b08ae3e873db8f9472949b348c4efe8a23aceebb5600f6ef50612b114e53a97fc7210e16bd0b3482db8fd42b7dff8e869412f5e6321c95605bfc571cc1bae2c8cffda43f72cff173df9c7703b07ff4aa7caf85785f3e0d5788fbb139c4c102f4ca5f83f01335e7fccb62ba9fb435ba305c9a0775fab782d74dfc059a1fae531aadbae8687899793233f39c1b23516273c2861326bb6ddbe673dbb66dfba9c5b662d050b9051332bcba890ed534f9e014f5c0add2b17bf4993fa3ed25d7e23817b7906e5bd762cd9f3deaf6f3896437bdf9ed9bc873ce27164b333ac92f59e8e7ef3864d19b269be8a228fd7ed441c24f589d7aabc3fd282322c019a007ca88e4d005e48ffc4fe689a36c3b9628b505f42f85ae9ca864c5962a7f734783876f9300046063298c0d4a6d6ce49c73e3388ee366dd449a4d191a6d526143874d6e3e43af1d7bfeb1e02f7f0ba737f50a526ceada4f44b6336351c51866666c86a452b831a448994e4559ad8d4e3ae59c739b2de7dc441d330a1d3eeec34da7656ed6a3acaa582dfdea14bdf685616565c567ca584937984ddd44234d934f6b4b3d7097afd86ddb422559ddb6b96d1ced8a37cb642ea5ab9b2b8739bfa04bdbdeab1b0d3f9b6f4628b74d6ece8ddbbac16cefe1b6f1f6cccc2c829341b05bcf3f238ec5a2bfcddf9ea322f71dc782ff0cb9f7cf8893dc26ee96857f46fd735b17c7ad52fd69228c3eeeaee4b340ed537b721c37c57d9d9bce078d0ea4600775d4d1411dc1caf500ad97af430ef9d81df29ef5bb42fe43e49027726dfb8cbe1ab6ea9043bb3ab6f7a3ca3d7deee3f1b5fb8e6e5b27fa13c96ef3c6adaaf259e1b860aa7c1a8e6ec489f333eae77e9b9c8f4ff5a6b9b8ace66e406b66e41518d20c0d50f2ea4a5e815e9da2438135702887a21e7875559dd674a0544ba98c0abd96267ff4a9fee10a81ffb42e2f2a5f268774c81ff95447955bbfeba84e80ea3b05d236186d994ef102373700f9471d55caca89e37a41a334aaf90347154656799161fafdf90660d55215ba3a4579b540aea82b79b54eabaaaa73544cba6034546aa151b61fbd26e595ac925b56caa1aa64f3655256657594d54d56fd89541d1d6aabbb40a39107acfc19e5161a80a84e4394ea50c0918628dbb4298e343ca9fed2c35156d5f91d8e4a0e55fda7e89ccce24f467f0205553d8a133fb99c49d01ddbcf67ed0e96f705122541457405301f097d255fd46a39b5c26d0530a95357ff8ec512e756a777db26faa4e1ee09737a756e73c963277e9aee3574dbddb3bb7b4eafe3bcede322e8f33781afd56ab55a1115b9cf683a1ab65aab363c90fb2de45ad3b8f7df42dfb6d9ddb37f6e38d23a371cbdcef9d39bb63d8744e4f644adb4893e4546d2b40903ae715ce3b6722bb6aac1ba8b23adfacf64cbcc23acfab685a357ef24efeef6cd1db737c36e2eb7f49a5da0fe11567b6b7179db96fb11acce7a5e181b2bb44b1b6daa4d1dc159a7485b20f9366468eb14e6b0994615312805c15146e5104755c603b744a18202f21b20ff7e11d8a2953f23ad54b5dfbb8b38515a2521ad681da595a49254dc14124b37086c24d8a807aac066dd3759752703ba83f39b5b9fe218dc6ca6e598ba2fad786c55822ea9a04cdf685f716c0548a9d75e9359018ed4c6fbfa08cc46069bd97c2a70056f5c2fd7eb067cbd5eaf974e0dcc88915636c091d66eee9a6d1aaf08aeccc0f0b71b65c336badd70d634269c6be7dcf2371c5d68806b851727445289a8dd97906168c5891329209d9501f2afd7f1b76fb4e595714695d5b8e2b0a1f2aa42854ea12099ee96920a753137665cd6b45695358de3388ed20e8bce6bb55aadaef32648c49c40e14d89721205889c0d8c2b740af57e90f9151d2792cacc15b8c3d595729266cacff0784d36eba2e0a0c49d4c6d607854f4dc5085ca9a168bc56239393818413f23ba133c0b0b0f8a9055570a072c5e68440f8c076e417188c2a10a9d2f39b6df1728072e39089183131cac9a82e1e3048cac2be584caeb4a39b9f2b02b3cb8014d57570a8728603630dc890f3c0e55d8da710bbaae156290a83216771728f4056a4d05e52095039533a8d0ba52374cf1ddb13b56d6b4300c43518cfde081e7e3e3e3e38107340f84cf88eb5a2146892a6b1a081f11af207c4644384d652d503f089f0ab46f9f43ae1b12e134959fb640fd3bae31e04add0086b53be8ee5879e3354dd6b4159b04187816cfe29e454b992e5ddcc1c8e259ac68f12ccc5eb45861f6a2c50a73192b5eb460b1a2058b15cfa2c5b36c995826162ccc58269689058b4f2146e1593c8b7b162d65bc787107238b67b1a2c5b3307bd16285d98b162bcc65ac78d182c58a162c563c8b16cfb265629958b03063995826162c4e8567b9c18b96325acaf8cc32bdf02c65ca94914efcd49ec38630c24801ac3210a7e8767793bace488bae5b2eddfa8cae5a18709c532dd90a70e33aca6a75de576303deb85e309c58ce4ca6e3ed773b3cde4e95fce9ef6645301555ed2bab99d7e3f1169ee2a91e0e64b0cfc88a83fdae838f7d88c354e15681395c87e52af2a7a7c852cc45aaf6777533a505cfccf3c0c5fc15c151e44f3f47a99a54f20a19959caf089ec2537a38f8e0a683f7764e4daa0fbe2b10586eb0acf6596bec50d75867bad6b5497585e8311430874f0863ea38a9bac6b29a54e0543f03f1e4c977e5e381f779d5f2e41e388aa3aa52e87ac58fc75042f024959121563920171cfb8ae05a0800d0a28e93aaab12a64a1700d8ef446069e0025b80f4a052faf95e00f226d0b4a6f5ef54edef02e06d0b496702e8d0910022290634ad5f844f014debdf2ab5bf1bc19343735a2d4faafde5a149c53ffd63d7dd217f7f8ec1f2679c545d6b902cd00c8278be2268342912e134d5d504e4ef46f0180a18e44daa5ed2b5655981a9fd7d6487e6d4d83754593353b1ac6a7f57f2878b39257b4e7d24781c062ce14bf35d7d6776886535d6b08a2695fce18265c5b23292565d091e97010ac0db9106d5f51f9ff65d81e05704953f53df951c9a7413a73882558aa3acee7c29789d545b40fe7152e97c4578530230a14d38814ff084bc9d616a3fefd0a4da9ffef96587be2bf9d3df3ca37e575620fff85dd5fe8e67e6aa49cfb1040c186ac4972f32287cd7777cd7414f8b8e9432e92e3dc7777d9b316e8c0d47ba4b0e463d4f0b3fc1b902721d3dcfa3e4cf3e51cf97a785a32c178b725568d7baf13acfb94daaee04af3e2c9ee7320b9b2add6557f3b9bbfbac52e33519c751a92bb300f9b74f5ab9a785fba62b7d7a950b9d76bb3b5abeeb2ed6cb77dd65bfb78573eac929b9dfa6f102adb86dd25de67c89cdd1a5bbdcaa7ee678e01520bff45d9f724bdd9758a4cbbc294fcbb8dfadeffa16b4a3d33c3bdccddc9d474a7f39f3914137ceeadf7593d5490f043d97ebb56270532f983fa9fb7d0587ab52f73be6755f8e4d0d087a71e3c95c372f8f757060b170cee935d98e275f6e95e128adeabec402641e4955f77bd6e331071dc8f7e4f37695e1e873be8ff2e777329cd5eb7edbcbb0eb36c3916bc781e7614fd781e7e1c82b1ca03bf4c4cf6845cfc36f0599264d0e6fd3a4d9e694524a39e79452ce2dcce1815e80fcd3ddc519763e5e107f01f27b5d7cf0010820d0dc9d26bfa3f1ece8c8726238b097eb06b4a9f966cdc3820880200b0c0cc9df07e59014bf59782ccd35cc6d6e73cab748361fa172687611953ffd1ef26c51177959b6b7483e81dd4e5d38cefeaf762b999777ab1983d47d9cba329cb5c3b13b975740fefe8cf6e5f3c8c383797878ad56abd5fdadce2a79ac54dd91ebd5cb67df36357881e67c76aaf2999919062c738bce9d7fe57e7b0f4d994cfef47733a4c99f7e991c32a17ffafbbf1476aa14839ad6cf5a63b96b76aadcf721af7f7a360538ca6acb2111faa7bf694c689d7bf3e82fbdae946cd9060a4d9081f2d2250837b80c600a299498220656f0e8dce8d51d7554135ac89f0b5daa56abf95034ceeae653b75f39c4230495346590d00283a9221d75dbaa70b245dda6c805dccaebb2aed4122e606fa98243617984d15d55fef250ad55e5370fc92b7e8387baef9775e1f2cfc843cb3f2d19963e325546b73ee36b4a1590b93ab47d2c709508a709bb96ee6da11cd33ffd5eabe6033df093a2ac7275e3eeeefaeefa2efd399fe2785bd8edeee0a9bb63a74af92098e3b17607ad72777055d29773776c3bfcf7ca435e20fe2d9c5559e5fb0ad1974fd75ba1f972687b49af24fd8c5c945b9ad6cfc1014a33acaf6aa1312dd4fa7e69d5422eb6585f39ea2def991ddac02a3b9607b6108f3f5759a57c2a87b69c33c4a815c99f379f919caadbf7790d823657bca4bc9e70ed3a722f205e515e4480b0d76724c734addd5f86239b01e5134919ce7729ad9ad6b2aa69fdaecf486e59a0fede021ce555edefb6b4505745de6087a8bcda1d5bbbbb327653b57fc76e8b6ab33ffd72cbee586923d3503924aff6e78c77c4eb5a2cca7d35527c4d71e227771711ddfa8cdd14db80c5a8fddc16cac475e414beca22b765816a00abfa87bc7ff8b700476e4b6dabca6de16d59d34db1986ebb8dfce7affb86de4292fb8e86740559e75323ae27ad5aec8f523e4be96ef305e4f75d2abdfd561c3f70354a2c207fa8e45075bf3fa3fd76f7ada37c1c2c7865f37acdca2dadda3dca64b316029f433a058e146ca1910e6d5c832d24c5fe513e6d5a8760d39a3d1972f590b5407481f8e553af87c096adda519cfbd11d070b766ed16bda6ebf237fe49edb9e7b0ec26d2c5289e5084b17fd9dd1fcfdfed17b7f58d3fa3d6c1009d8fd596c096a34414192e7f6ddbff3b96fff514956b9a74b9ad67ecac9c095455f92d54d0ce2ef4bb21a44bed7348e7b49c7bdfce6ede78f4db3f615c871a20cb36e62902952b19554e138407efe52b0a98ba6ee839d444c95e6953536deb4fea1dba6b10805e47e8602fa6744e766b3cf2df3331a9079653b3a33733333bfac6a8f7294d2ed6a7681f63f2d6ca2c821d68f5c1529517ef4a8baa3cb9fbd85359515b6ace44f15192239825fc917b19e0b39294f68075559610b4d9fd0baaabcd10df49a6cce2d046be71e5b013214f0a6ee70535c95da4f39a9dacf45f5102745fef4d327fd4cde41852d34fdd3ad2b0e0e70b489aafd63ebaaf6db00d142a352540bf5d042dbf7db3cf18d4ed5515e49a92daba4b7855fe5a0b66ddba270f19a315b8d55eddf6aaa1e5043257fba73d2b4eea26a17d54175fbed3ef37315203f91e4d07f432569556734e4a22d7c55a2f63a28f9d33fa354f6b69690a8646a982b23350b428866466620000009331640302820120cc7237a202af20314800f70944e545026164623a118c86118c4400cc430c6108008300419641c6264360180381b45eca1e095fc8927e9af412af5625bc53816059fcb725559bcc2904e5bfaa2521c68ba2ae94bcfe067ee4c820f64d6d1e31607446acd0360794df23572b5192353a9bdf30af7540f389a1034250cf8a4f37e499709eb22cb633536f009c042ff6c043cb0128201b571d654b8e3b53a6da8a97cbcd4fe16d8fa21277cc899819a8220285a2f6bde2b48cb3bcd3d07c9a2e9b56ec09bb28cec8af1144acc58d42c7511c68e8840e9fa1f8672baeab351cee973fa0daf2ac9f0a22eb95010ea73e7f0f776e9d09174d6a25af5c6aa9bfeaca2b229f84e07952ebbd9fe5fc86774144aed8f9601d3232c267bc27241eb81278fd9a6dec4c4881f0f65b19c17c1b71d67279970f44341f8c44c75356a308b64da7b7107369d8254a5307f038f4644cc8cccc78240bfa1ca9fa2a3995b1eb8db5796567aa1db1b1b177ddce219e9b1db3af69f5d39a6f29dc5f6bb0d8f915a149a1f48099719e5518fea284fd4dd46da67ff14cca4527b9b8de8eb56b95fb549143de744d3a3a9dced50cc0e6a5c12b250a60202e0bb0059a5574f94f2c09eadf4fc84f587209a04798b73acb72bc0d18b4bf72609883b7df704933e17b92659ec2a27744d610c3f32bf7803c2b57e4419d8110e4b54b62c5ae94d2183ae48780e8a7058b19fad4d3f3f1bb25eddb585a216d63c4a8986bd2d45b3b7248a95a9e98f06e3e1bccbe3eb21d32489c1e6369fabeb6b4a5c8a1349cf075224af9c30965a7693c33f60ec98a7c19302715205782fdd39fd10131f907198bb2d5ea04822a77284f0a44d9126531a7f8303cfe53700e7f32fc18bcbc4e9459436a4014b4ca9b28fbf5ea3a15775ffe6036a99e5f01725653daf90fad96838bd5278739b7c501230868f995edc7d02c28a2db5c3846460c8e34f444c9df8ad25d5410152968805347e1bd35681758d86400e499d76e639b3def4bd214207c16ca9cb5f06e933bf0c66d10e261c6ebc4d9ce10dba04f069e39ce03c1f89c5eb159d841b8c896c91cb59d801b65f7e357a40f59aa823c9168732d0f11d22e52ac712873a88d512189c786227d82623a4882ca18aeb26fbc8861fb4a566c9cb05c8801188092e0fe102578817d2135988c39f185e8905d25428739851dea35e3647830d7d4300cb735692a19536c123f317bde7d9a9342b1db66067329961b9baa018b24683f0679faeaeaad7e49a1c4b574dd52b9f331a8a6aa11d0bcfc0c742779fa0e3856680e83d414fb9cf1064174ccb440e1fdb007f0e0ed0c22d8dcc99c5ada785c44db35dc4f728d4728e636f2dd7d1673471a3df16f0bd22cab55b19d86f0b15188a76dbd282a2c45b8f463b441361429d21a0acb44339e5f0270ace1c48a1d266b36303b853a015f4bc4b48f5a911a4b932c26b427220c25834fe5c7418f64b525f7a3cd126373c2bf7612ced6724563a3814851cc8b23a88067b19ec6f0b15088a766df982a6c45a8b861d441361a2ae21a0acb4433972f8270a8e1c4a516967b36203b829f035b4bc4aa0f2a911d2ba32c26b822a2d91a148ab5af4ab43b2f2924b43d4fea27ab2af230f0b516c546af8a82695a5762470ab2327eba4aa23934e28e6753119bdd163c48798009be4ef9c1b02a958fa0568df8a5ded06b3ef43b01c958e9e3b2d9fd1839d71eea3edc967318a70495102e4e2ca0728cc73f968ff71ccb05bb60dc3e9f4306a1bbc746218d0a89d8010b369ad34a01108de190dadfa2b246a74bdac52257579fa3ab6226c24c7f29e1be69926bacd4ef4ac41e9650f5e7db45077d0b1062f4d64e0701407e77316ae8204841c144232327a5283d5f8c530b66bb5c10cbedac3b656090db0cf2a2b9491165347a60f1921cbc7b9a362560a7f7ea989835e202ed4c49c55838d38d41ebeaa7d1fb08188f11783a8af1a2d757028c20b89804c7b5a908d815534ed131ce9a2d2583a9af1b2531ee54360da9ab04b9f0467047986c57d4e00f8920a68ac4483a4b48c09c9b89410004fd9537061f007da58568e4fae0ae9a905a74e1a14ac284bbc71297f165ae1ee4bc170d96381bb4df59922fbe735450b6d867dfed1cfd9c7c63cded7f6f548aab414cbe5ccfc5753b36499f2990b8f1a164dc30f9ac8a315da00bdaf3f368ee762aa520cc7ee549f8d05fbfbdc1fa5ae1ecbe6c1e36e69bd8d1ecbf283e21f55521f6fc3ef11fefa4b2dbbe0c3c805bbc5070272be5672f971c6e08754884aff3f8c7c233080add570b2d0040969f6d2759b3b52802925d5da40750ae04ee6868eb477626fa9e2e8e38ae58eb938d2a6c12a61a4b872f949d299f141710f1a62a2cb1d5ecacb20b0aaf6f91c002b4de1b54b612e9359d1025af0c9810ce56da523fbcedb9eb630a55d99b8140c89731929c6fd753a597dbb16665504d755eca86c10114bd0c9281d2b2d57b9380a54251c311659b3c67d2416313857cf5f44de444518435b3c868206a82c977146984a589541269d1ad9743098fa89fbf9474e65699161bf046b6549d2b3a81c4b5f7351341b11d85a8107767c7ba3c9a06745c5b2d1c127faad728c85b818e3028bc82c8a76eefe5c60788703d1eb89123789ed993242e179cd6637ed35c94f47dfc1532ee25e0e5e5fe8e9bafb7242662fe96a8d8c1a6f1d84d14f2d252261df16e8dec0d9f53b73cb05a29da9e9aa7a647cde4f4fd8de515d1fb902a6a4dff0cc8c749259ee159e18402a60c62a01e8e6a11ab7917b861be113f0c222f1ec1e9317a4af5aa73db23cfb9c13e0d1739bfc310842806e78d5a1a5c1dc05017a33f18633fb359a285d0c5cc8690ebb43740d6bd30398198053a8660515309afe0deeeb366f8b503b2095d171a01ce9e066049b0003d188a11837ed1a60995cd8ba78a63172b28938fd081bb27b002647c2c5e9250802923d06e5c6a832728dd32002a754418cd43f173d13e326748244b9c0e1faeb2634fd44f010bb37d18d24fd5af921e9e463b8aa8e64627fd177430a43cad526942f1854b95af0b8da812b9b3b2eaa91e5363980c0daeb24149fb015f79a6a7c448de466a45ecbaad48a420a745053b124ca5722e70c778e781c1b540e3b3e796fdffd66de3fe8d753e07a1c7feb52d1869e8c1bab1379cdaeae7f180dc2140d8cc78cf0b989534953edc20ed92801aea59a0f07b80a781e27ce79512e525354d539e9d3079a113dc1e05ad35c0807528d1b2a17a65d15d57b2141b257efe4e68256a73e19b01e01453aaaafc8741a183f329cb87302907a9115780ef0644331548b1046a44057d991d6786c7e3a5313c22bc3e47ba06784133f85819bcf6b3630cd54e82ca8105c869b85db87e7a8f71325ce83d465deda927f78491fc6b1ffec50774f0a252817de5ec20b0d224293511ec751ff6347a01b6619bcde9cf7072657e9c0a38f4139adf428ae9e6bad76e0d583307a2f09aa4b5a087baeb2b699240bf1d3c23858a289c833c26ebc9f38d5731bb61fb75f5a14db69b6f99f5aa6749ae2006575743eb8744fbbf0badf62a5f856593427d1069ea4cce7dd1da167f6c89be17b62b935f0e039dc3eb60854d55042857867560968430fbb36f9932ded93f55bd6fd00e1f8573d8af6206469e2ceb4fdc5d47ca3bc7148daf847249aca6281dd7836fd01ab902e92c48c2206fc888e38fea2f8a95086ad6251eb478e5ad058049f94df0651752dd004452055a29cd3ae3cb2f93216b7d08d212f48ce09911397ec07a782e8c8b58ced4c152422b548c1e49c24300b21b0ccf8854e7f703991496f2785af6ac06d0185d198be88cf0cfd9d732da93d0cb6ea7c06a802dd9d889fb80c7466f9c5d8c9a547a149b9d6a2cdd209237c6052be0ca715b8170d8a28137282ac72f2148b7219de1fee3e28ac7d5ad8e0516e3f72a659a313e963d3efe59d409908426b8b0cf40fda5b37f369dadc7b8f4ff59bce7672f6bcb86b85b5174245a8ec60ca2a74ead222f52914906d90d870860c56ef368841c5ae0cab5f273c8767486b83603c251d92a03818ab08c6edfb9e5ccab1c22ccafbe953ae988b6e01d7a884ac92f6ecc426eab2b49f3280848fe9ae1b7b4e251c8379e908ec38ca5c1fdaefa00d1eeea6396c5fc51aa042d9ceb1268b77264cba71dab64eb47b19661128b81396f502acff0107781bbe263cc4015e83a7c395c14d5cbe680f63ea480c2c2e95cce656fa519cbd5711196f8be522385843f173a8d18224bb4b8c2de45775f156ab0a88fb73730034361bed4103fde435dd46c26b4282495fcc7c1a7c06e52a1c25593d79d6980c07ddfb981d8795edde21f958e98d450e2174b4c3801bd924d7852cbb586307076a29ee268645526170709c52c54d0ea7094733c8d1078961afdb8deb8f8bacd10ef7f49de2feb74c7e8dd6073936c75fac95a2c5da108059e8a0c5b20ad4e827149e74b0938231b270ce9899971077c075940c6ae5788400c17d56333aa20b5eeef6f9c0823e40b10056b19e0ff0f45784450ebd25bc1361f6e0fa76d39521cc18e3a4dd60e6d1b24ea59c13b5845b4d52dc0aa9be62f2abffc1d05d150193a98559c6d2904e2377a22b9ce6db42da50682640e2e213050f1a371d0f2dd95d5c5bb4aa610d811a898b6001696d0914b425d32d49e8a4d9ec62feb6d89a05adf3c643bf1b94740253f45dd57909a5db71b5390e75d5ee9f6570dbe21fbcd147977701871f0a080f611784a6db6764f66a2b00332ea173362a70289cfceebfa4be6dbd6def6e4eb919831227997bd8ba44f370acdc5e53f951dfd30ec46f7f830983e6537d7cd6b0ecd77941c30c103a57995859b97d6b310b082ecee9e858038078230b4800b83635ce98205df8ea5286d037f6f896b2c7699e69c81a104f07d31189c4f5b8d6305d1d8d4ba72b9959115709ea7f80a8acbde05cfe052984ebf90ea17c507920b146185ca82c5abab68a4a880092a332a79017b1b5450b453df9cc4550620f91e6872994fd781cd84d2425107b7f6b234fad59419e9c008192a42c73ab145a271a1c86435c1511805eedb9b4f34f12612c2a6ae18b59e7ea26dc076c1e3b504ea8b568ba4ade91cf7aa9c147c458bb06432c507d8e41d3ee25ecff9b07b9554caea4624fb87a8543470d72ac2c079c0235007a6ad0a22725aadbb8406bff6ffdc46246ce62d51455c5455084f10c5a4e442b2687a2ba673b03bdf1c41a823c9d210f4bf09e16bc7582ce6524a18006f4d9c3dc355c9904d7a77c2716c6a7df9d1fe15db3cf84275cda6923b50842332ad8213a6d718a65b877d99744b3df423c1f630092d32fb0be69a21eabcd5e483bb449ad189cf79d04dc8133c14d5d219575ac5aa14e1d5ab773871e16358782aa63d9cf024195c96c096d66f710880670e016e19c049d16f4f29053361dbd5f26ca281e360742f572685ee3cac9f8e14f76c7f2fb16b6b90bbeb1bc6a48c88e675f15bec917bc5092a1b4d01eea0b63328017051c511681152258e737e20424b53dda9b0012e28e2edb7767fa9de29bb74acec2253d22d19eb8cbb1eb536c1512e04ff1f05948baab44adfd0fc7ee72b8f52837500d67da737223a92c63484a4e5e4e1e1812a78f9d5bf055ebfb400d5161f26e60ac81955ac0c6c21d0a4cf6d31088d1b9738099b08459e8bba7212c02e8fdcec6b499320b82474050f463cec74560327e4ef59b7507563af859eb2062c7236b8cf42af8c1bce7f16e709a3e42d6234352dfd9b6f5f58d3a9fb171bdbb8427ce81cc5a1774d3d7a01fdf068f8c5f713d411b08e2adf2185f4032966f600d91969f0f400a4c450fc240966f42ac9bc2b101970b74bd6e868019219e3d6a90c66dc888f2d1e08b9b1188ce385a312ee0916644e1dd1fb39ab78a8960866744a56aa108691b33214dd8e5cec4dda4824d14cfc6dc987d3eac4898e1c251efabb1fa19d812d926be5bec1c786ce65bb875a80e0525753b99733cf25f57134287593c1095e31610dc4cd22459d77c278a457e23083494ae318c1499d3127707d0daeaa890a7d174f0e57e80f20dca951cebbe1f6c0e823b2ac2541e1e232a33e45ecbbae8c82b10a3d761ea2dd1f12e32f8b534922d83172d945b0376ce32f705525c706ce70281fc8f8d72d5b449edf2fea405db0b7417802bf60c8483fa171fdefdf01fbca21d2edf811a7f689e012396f801724eb44e1d8348edc27eee4b514a00a92fd03f69ff1763d00a0d4a8afdcfce92a60916c8dbbaef0d3b6118da2554092cb52b130fe190dc1d539dff7e8817a4b21657571d78be7a785ee2b4e72b077a78a1ec9259625b732783869770e20627d4c0362ff78113a5815eaf6ae0b1aced869183cb18c49af3c1a15b1d3cc5b0c69ced2de7611fe46ecf5476214536820d60c6879f5f67331b4158f82ee72f812c079a22d9c65502927dc23db45f3d4b9da6de2bea9afa1d594b7fffa151aeded3e2106c675c1f029887835d68aa9cc7c0df29dc36d367b4abf810455a5077863a4ec9611ca25034fa41dc30fb8397d69a7700938d84e0f9e1a811492a562da33eef51c57430c7a855dbcb03d39b8dbb1372977bbd81bb6aafaff4b03376def93e011d7f3fd1bb1f5d36e9c872bdae50ba71a9115fb7f252a342d2059b4ab063e265a7f80f1a98b872822775c5d2d165c4b960782fdfac4bf18c7f12066f3f9b0b94854f1fe73295894f8ff60d8e5e2c664be2668f6e5ca9fbdbcef7eb915eccb65bc5a69dc3cb2f0289c3e12de7a555322570e81a5b1f35d79fb9c766443181a97565264025f073d77f26fce32232bd3b5c83f75e67270df5c0d43b2e9a4ad097e09a4ae2668913ee45271edc88655485ae68a2d459f7dcb9646f56b0c4858a4bb16202b6a28ca524c550648a33562000aef2fc91cd434af1712a1ec49876d2682c78e9bbbb77f9976876d2a056588db66dc8cad052c74d2aad45dfedda9aaa93e784978bcdf2eb43f3d15183ca07d6dc26369433a426b1b2f1058f94fd380094ccd05e590e03632e951499ea96fdf31b381eea5f8802a4afb4f2ff288a587e904f3a29f71a736386d0a64b2bec0b8fb19af88027a6ba0ee85bc3eb623a03229ee15bf2b5a05618bed9bbd6152cf17de95a01b0697bcb573d742a2a9f6e9e357618fc610ba2a2074aa27aad105df74a1c29018674107d440a82acc9927307a578a16d7d59d67bed095d4c51f297324cacdf4c2ba5c9b440385bb7fd5bbcd476a119360072d761dfc13d5e604ad0c63ddc805810ca0a20350c21144d804e9f39db5ace41957378ed07bc83d810c56fe88538e88aa19c4c10df334cfffab03b85aa08e2b6ee386af05db79ee353a02262c7feb3f615bd69e51c9a696eda6333d64c556ad6344e0231805e0daebbc1a104ff3227c2c19cb83c2090c221746bc8bf41f19f84b99040ee6a04c893ac1103f59a310423036a5d5e687b02d453c28dca2c82425f9d41e83afdd45e2c52e5ae78968fab23667ea9a164445cea43b64bd100b2fcae7d1c719d45426c209476e313672b2b03f7a1143bee9ea64682ccc1494f0a01f2e55e225e76278467f153252a21c080a45855984a8548b56e3eea584c354d84fafad84b9c4c49209bcbd3273402b1e963d2af5214a656054aead00c3ec28c3472cb2f04f1d065d44d91ee38388809254093df84ca418e839308feeb9acbe6aadcbf80c8335c8af92e7b90ada61088355efa7db2f1cd261a2bed36a4e524a6efe11895e10dc39caf7f3a5c4a0012fc234b44c62976c9daf7f8c209d378c60d8e7b2e0474be19834f8c5f418bb0e72454a0b41d8812fe8899ebf88de834ffa8132123e065623a3f99fbb3b26b7a3efa4d6475dde6574db7ef4e3d3cb2f491f10de0555b8213f09ee324e8189b2f5044614583d49881075d9cb1792a4afd8876d872b13a9f7228cc389ce7e9032b03e1886827261ac406a0de551082e90303c7749b5873a9c0abf77024b5d3487da49e4955fd5b0e782d3cfc61bdf88541f7c092e7f907fafac62fecd2a1aeabe5d78d7cd9796b659b1cf14a6791255b603fc5681170dd29ef18420b281f7c4b6324cf6b6154064d44ddf7b217d94f1acd7f62a1581a9e25a8b8a628738fd78900ffe3b68256f2c6e2ccfb4076f7812f9f3cfc41c30f46d4c876060e2ba14fd9288998f916f7d0c6fd8f91361082baa49c4d2a20a5cb4a2b2f90f228b544292d97687e08143b0aeb3b65112f95f6aa2976eea94747960711be3a703640c257473117607c8122252c810e13ed09f6f123f09aba11f6b4b4366eb4efc04f22ec7db3b17cfa10667ecb18b205f724410fe59fb7e1022a43a6e148e3c8e1c1af5b96e8a4e1229449c636c9bcb944570189951c612b97d7da672c26c4a5d55bf227f589e7e034ec213c7955394ffd7b155e0a0ba79ac0596f87eb77292c5ff4b7b93729140b968381a6b3aa82c39b70d21109f320d9376545a781517cdaf425d0ffacbcd82f2c9257af26425a2efc8903e3789f24cc5728db570b5dbea9aedf2cd19e644bd680347e4647b7513b2ff5d26629800d9d7fd8349f4657c661ff856633734b9021e9aed6ac68429127fd7ec819dd8fb44a1b265795c0b49f24e88a9f5b75aa20fb37f849db1f38c7edce0954a6c07927411ad901078277b15f29c89a916ee3fa5538d684f183909f09b7989a215dd11514c8d5582ab953b9351785465b3b849abb4f6ea3394c86e2bdf3760a9e3a2982114e6981d4b4e73295a4a6e1bf050e1c46819d603bb209bcaf344392d62869cba1e7fac8511e634dc616e0cebd49432e5b45ce2680cefc6de7d4546bf49e9ce8744b60e50fef3c42086a10b5fd97b6e3b4a98b2e1655961947c6ecca1f95977695a274442b198c785659e85b0e13d9c609a105b37f0c55515f2ae221d43803450a10be23b0f533d3195ba8147ad1f03a89a6e2af491acd815319a6d444309870044c8fb3901da061f80959f1c5d006ecb5172f17d31a79512c430a28048d0d9abfd7b13c22dec166c19602859fdacc515bf2783e7cc8252a7b605b17b986a0f7f791d5dd7f2a817148777ab44a698cdcb083297385342319280109e8a8900a026c91bbb80b0bffc3b73ec4b17ece12e50f44fa4e6269f02893ac633db65a004ec2ad0a311cbaf3ec4e7f9fde2a493745a75771e3c849418360f9300851097b6d2edef534e07ae478e7e6b42d0c560c1036b9ac855fe71e8baa1578cf4da4b5b8bddc6b97f685cbd2761366449ac16dbaa4c61cad8ef9c4778f2022858e49d9bd5b465b6f656ec283a364b75195f2afaf3d109b2210758f22835e347d1c633e8e03572f230bd912c4857e8e62623bcd82d038c2d63ab45dd163b3a42f85ddac08604489040801106b1e629a0cf5776e0e7f96230ee16d34b8bf332b2cba988c8099e3a1fa2b5fda77853925543d7a306bbfa262977616ff1ff12172f9ca0cd260d05db3d3fbadeca1b1bef3076df4cb72cd9af42f5de8cd2823501595d58d5d36ebde10afc5115ad7c7cf3db9fe89b10dd3de5439f91f41681cfc0b129cec510edd6f03b3efc3420c10778ea8aa997ca39b2074d806251cd7b83050ddb1881e36b606607e9cfaa64b3d5b373fcd9d8fdc20fbc781a409f4907e035003b0c82707d4338c752a1b91b3f18057453edac8cf199085ad937030c9809d12995e2d530a60d7ec7ea5fe98615c90571e1de8c09b2256b2efeee6abaf60d4a438ea6c42764e6a924214e3a9e79a61ebf68fa8c6cec85f15251e2c1be537f2fd5f5b7ef582d8cfcd475df5eba709fb7f0ca4324e62d2d0008aff0d258c339f5c72939573cac01821330d07b0b9b0be8e429b6afb01e044701f9d53a8c0d43d6ba8e591bda0201429761ca347acff0399e042620e84ddcc8879767890c608218fd1f977c8621e3702edcc474f7bb8c023d197accaa02fd2af80b6d4d6d846db85e2df5eb5ec81826d9d0c33d48596672d4de00eed76e039df1fcdd67b65f699633727615ad719b39e9b769bc45a07f9ead0750c5171dff7d601ee05cfff7542b268ec27e2b4150da6d67743a55099d46b1ae99c163b1129d88bf294632636394139cb34238af412d1c5df0245f6e8bd2e383ff9d487b53ecb210f9bef468732d28ea067d1ba346595fb1d43bf92392321b0baadb2f23c9e365542d15cb12a6bc2347b1566dd2822d607617174048ab7091d62995777ebf4cc3c144ee81555e980d0d9f5e58f03251208f7e62dc88725009425ad51d24fe5ba5b4097267ba8dc921695c1ead522b4048f844c0d873890cf1228f935e958fda65b2954d3c0422f7f88ba70fda89a38900bacc07ebe289a75656beb4be40606152209106775f9985085e1eaf2d73d15f7169666789df40435f243b8f6a0d91f07386787b577b72997cdcc052e9610da51cceb343fe74bc1e3fbf44ea41adaed572d0a84640c1a4b6b42680346fcb70308e54000d5a6c90bdd1f546b792790d33f86f1b0e45e2624f0fade9eb349af0b367e6497388373722bbd523d556aefd7467ca786da5e7d6edc74f0a2fdfd46e981c484edb0b7e47bdd86848d5274fd2405a30f12f150b35f09e28cb7bb334217a56d6fa89d15df9f816a07f58ac8e0f2a207ba26a70fa6b09c70058414e73469ecbc90017597657f1c9dea0ad14022c766dffff4396dbb6576cdd932fe57cd88b69d4ee4797e50c895bc216f446b6e5a629eb021f48358d83f39b8a14e985c6fc313a4f2e801767fb8cbc5bf5b68b84af4eac81cfd988c604e6cf0c5796683716e2028c7cd27a47bf3f758aa5a3de1fa7a603c7387ea0b72f081c8309ed3a8f8c7f4c482644c2d1a99a40376c9e1d1ba1f260b06138d7bbc79c744e237de699f2587bbf4d87fa6ad18954efe5ea9b93fbc48a1ba1940bbea00091bb07059cbb9c61b97295b6a0a57101afa87895cd7a0aab2b3c1677e55142f83eae920538266c2a8f80b13943b20304d52d1c34b44d6e0af1ca6672779b521b469d2f18a564d94cace60818508a348d45e2a076368c89ec0b3d0ba45bf3c424f952244d94881b7f0db7a39c9737b5f9370ccb9e7632ff79dc7d7d6eb021003c281e116341060a4025a0bc590630a7a2859dd6550e0936830142f3676863ac09f34eac5e0285b7d1d9f240abd248cd2398fc1800f06f928bc8729bba81aba3d2f62ccc3468dd207e43a5c8faf5ef382e1b93f9db7b61f5087b66e93fc67a4b7cc6ebb485934020c9e9e667744d80144c78e62e47e9f091da519d5103015319b5f94dbbe95906a306a71c2435f0a230e10a725b5963b805c2decb285efd0b32732458083ecf4ab9f7d528a53810dd14a9ce84bb4958c989bf317c751ccf3857cc23e416970cb2424b2412b80d32a67be09475a8e4619a817736fea25473f709f59e4b32b43b35333a8e241b8beffb95ee8197eb6f414345b0e3520f0254e58a6138f841a22e2156d463188ceacc1afd35a36b7e9866517403e6a23b45db4d41f213e02c4fdee13e0a3abc38d2315e8d1200fcf1f03313164ecd036647819674c31f6624dfc85d11d80b8af4951f9f68d144caac28faf97fa2d2c21f06f93f540cc3579f29e91fcd563bd2e4e5d7c784286de5207b97827fa023942b625b213cc4ea59a175d789faf1a401249c53ba5030df88eb92477e4409b04b113491bb3a5aaae346684f074fab67f20e9778106eaa19fd9849d56616230e5b2ceec70f5620e913d0edab5fc166427ab9ad43041950e0e334c38e29dc95638485030e4055a9e6c8086cbb90a806a7ac19454ab9149c3fd377b23561205ca390ad38f42d21d8a08dc36a5a0dbf657c9ed49bed7a6196d70a01d1808da5212eb746c25e77f8c388a2e3207ac81fd59fe3506c02c7c5d846dcae9c1b637bfa559fc883b0fa095fa60b5cb22837b63c1e4438dabca0fe6aaaee6ce69cd1a505fbae4d737a3ae0e00636924a918d351bcb493cba23629c7a20ca2f53cf1f2447f6968bf9ac662dd749892074f74e8b2121d9020fdd5ecce3212f7b8f38f1b090e00a2aa2548e70f6aca6643dda8fc1bfa13f3b46cfb34f76456a151523aad8107090c5e28c943cad75e80d0eeb27d4e98c0f60d3477a92b83bfd716281e1bb4d2982f2fcb82b5f0001afe734f6723b890d642178a3ad08f3bfbca70ac789fe024f54e872e17827c5014c2bf781a3cf2b8a2810ba159248fc7cf26e999a7835f356c4a93981cd6e15cd9f79f6d014fa6e3a0ae4b4f043f5b44b043b484c169489f2dd2767a77b2e1915ac084296c900e695e98b774322659e692fd43147a5fc8be75a16352ad240fbdb08a680c6cf42ee016ede041f67dba5f2797010e0962db3464cd722a1145e22c05b0168722a92da98337e224bf4f1d64360363d65560a572b4b1e5c9ca42b824651fd8687dd3c881aa184789ab56259dfe03e78d8ba75c64637c652ce375a1864a6edc14dddf5b6a60f2a53d9a648ae7723723aaa47c89aa2330807d082a9b3246684ac3979a92f6aeed893441be27777adae5a2b310ea4f85ecb88e7529b814ef73aa5b5ad8ec668e19846df1af292f86627ff883c9243a1d1c47d4eca472aacbe23a86822230374e0cd21a67ed29d77103c407443f53140cbcfb7cd06ca1ddd54fde1b104b97dbe7fcc1ea89031c31c8f258c3af09b5d93f11a4c4036000e95373b983b2948d8e6e0ca0fd9e9a2acb6e279faf0b182f25883ae5c46b021f651c28c683270bb87e207410ee200f94c1c98a2fc96544ac5088f4f37d0ff0136e7f553a5cb6031b44010a0b0780e4b7637423dc6ae8afd0385a2d3fd4e3826a517375ba9ff6c914a1d06038b4d96205b3fd72d52bf47b4e1ab1f7f5421d6a95b02db676fd19ee5d28855d0a3dda563a6c8284b3ddf17ba0f0f9f0860f1ffff854abe3eaa159773f990dce9e15ef942e7995f907f3549e412a6a1b6eccbae712fa3729e3c7463454d24e880835a5390ca7263984a186d4d30e1ef76c152a88f6589bde4d6f20454fd42652eceff7c43ee6649348a813211083848a621af82d2d3e12fb987a509829774984bbe0519dc74a0725e995a51bbcd009dbfe952b662dfc5f80aac0b5353443986a2f355b307e8d6d4792be1a91afc2609448e09028ca0f7034821bbc99ebd5cbde35f45664c5c9d25decf8f71587e5e6e89e3196fa604221987e5fb2a11d8ed4f5dcfb44f2943fd6132e52f4369b063f45620343b7a1ee743639d60ffb54abc82585b307adcc239ef29886695bbc0a91b927032845ab01766d003e768b204a3b2bd92e92ae49b9f8669810f5ebb3ffecc9d62381c463ec141020d3335686f1c1ddb3c2d24b54bf894b0da99ea01169fecb36365f7fe7d86ccd275e9d282fab4d8d914305a93bc0309adac476f9755de8bf1369b090f1247ab835b7cbde6c031dd2c57c201eda0d228aab80683a0487e46eb0d7c5681a6bdfbb5a18e24a4684b3680e60b80bf59b78e066f69d6f21a4c9f43322c7d01f16d24ca1aef54223f538ed818b04ec5238c2fc7f25d163c92fb094dafda6581943ff9b585dc8f47617238506a52ab8ad036b11b7a1a40657c47279d7cf39ff50a6d892b2d2b20001d42f75173b93de172d8ccf7d248ae435326ca0e67d2b977aec5211706fb1411608dc02d14bdfe961e4cd589a3ae54266c03c7860c1e3915182e7c5f348951d525e8601c62bd8126ac7fcc6d8deacb292281530386a1a1d62ed8622f63412998c578c8cee102f6d56913ede6e135876efea8a329b12dc6bd937386752a136147f846d68b50b23cef8db29f03331079f6c3b48cf86711e1d2fecd65b891128d2d244fb50dba8778428c5e0d429044c1ad884c19157aa09c1ea049c1deec6811dcbea257c776944d17e0edca581b61c82b628cd95451e5a36f011823d58065641a279118482621efe3fdd3e48d155b338b522c56fa3905e74a6483e780749d4422091e2730a5d6dea09c41c871d3bb0ed6d8988a9be898c109e002b8acd43b939f830c90150ccba212f8f1d00a99f00ccca55a65082f1923b2016e5ed396cb5d25d6d1e1b61996577fa2f6dbd0d6e2862db2a7a6de056237b02db4243dbaed7a0af5dc19b75050bc614b2d100ade5fc253848167fc3d4b073d40450f3cdd13140e94f98220a28ff5571454173a8dcc120984a000bebe00d340c17ce7ebe8e8add89511329fc5e7cfea6df37d853fff026cf0f114a0e79097e80a63ebd905fbb646076488345f00d153748045c752e73a5241abd70134d0e7f72321eb7233585abb9bbaf9aec16477575b489352f9bc8924d21ef45ef5cb7f4b825b9ae8baa150cb5ed40d2a64826f69186a357ba38a9174c5a0a9278848482e3269bca0642220296860dbc6adbd1cc3aafd039c706d01bfb0ddc8cbe368cb5c503419723e22908b181e703586cfd233d38b444c69bfc16c5e4c986174dc55692538fb493005144aef7d97492367fcf623a3d23f4fdafe64a2e7e0f16fe4c18471fe28fb91ccd4dd259925429a6c466b1f319119f8523792d0f7e5fc86e86d9f79223670601c81c73cc2168369ade2f71d211551457a528c81dbc9209d765e5448904a45de86ddc2ede5e623292517aa64656526528b7eaa96986c69c041c830870a11bb7b2f7bad5237b91248febee9314edb10b7e3e7f97751d66027d8642fa3e0669a9a636945c614009f84bed362100354063c0300c92a0ad49d35611b4224123ae29dd6d705abbd65c0a412ba12123ff3a4c59340409a8e02d4412300d998226859c30c2c06a0115f041ff8755453d2861583ff7f17e499f438768f74df3c4b20bae24e557e8cf872572301f028f82c7aea98d6e0a98a541c469dfe8061a78922d6fffe1adf093dd583700586e6f6099dc1a01d3b51764348a996111068e69795413e1acb8effe92dd3f9c81b6d0a4ad7dd829e84ba20fe3352b2bd0c9f2e976d1ba0a0a41d4e919ec9a826b5228f5486937254452240a02343471db59d656aaa9092977ab10ee5825e873c11e0e85d5ff2d6cef6c594b650ca05ea861942196acc1e64c1a9a57913f73d73aa260740ab1878af5e949e7d79e18c416a5c25123bee3b7436bd8fce14284fc2f75b29e8be0129e7ee24148f8730ea7ce955b814667d9e4b067c8255e11b3e99e4d050377311b56a6e0cb2505973fcf9c42fa60f64c61215423a4745bda23f06e8e81f9d5b50c4cac38772b7c75097f8f10b2c4e7d02dffa5d6a9dd7d9859e80a72a2055c50cebea48cb131be5d45779a50dedc230b170cf09da3561426fbf5d5efcd83f1abd2e43faf85cbea6ded7b977132d3c5da7f63cac6ad9fbdec24a9a7407b4ed11a0213c244584e67ecca9d0d6cd5bab19eeac95874b493bbec72c640ae53b4c3340832137d8b343823a0c4407eb1bfaae1f4c734a5ed2a96cd2cab110ec3858b1ae34e62b4c680c6df26252bf10c88d34db4dd7ee2cbe818b1116a5db367922cca8393f15c355d8a809c937309980e3e3859e765ffd0f067019823764ac496541302ca424b86a01db24cd44bccd36299c2f980cfacb70f9d889bba537974ded280ee3bcd9b122cd416df1087744254fb77e6bc277725792374bd327dd214ff11724a07bdc1af18d50addb6cf91ddc84ff05f93b68325d2c096a4ae4c6a0682d76d34e9e38dec94971e3397ffa5139dbe117a03650ed6e28a591f5dbf3c56202ed8603d3fec713801f12bdcac0c14726f75c67daea9af598da2263554c8174e454a0ec2ed2e02c11e80c47cfd1c7e96a01bd180cb3cca01de058c9c23c263bd81cdec15b332bcb086a436c963cea3358e930f2f4cb9d2f2798102b5267adc5f52eec9d0b520b07002069be6e369d6c46cf9a08caed4e25f91237bbfebc0519d896b2b85ef363f19bd6f4eb67539248e962841d481111663ff4ea37e9d3e2b068fdd1c04466d60c9c049ab67c5b88e507b4a6140b31c44c2ad300094e60368fe3f15dfad680cbb8a9b8a4341fb4c1ecd380713f70e1687e96ff53ffcddbf31ced7718ab17db7c95e2918b78bdd25c7ab9596d955b70745896607f4f3e657557515250339c7ca6e2606115b725f4a69430d654609397e5b770e2231fb74c652ec0faddd4070ad9108f71d2bc687738bae438ead6f51ee75874b02f157da5f9abf95c21cfdffd9eab1347d002ef316c1f675e5f32ecd5cc6c3cc3b9217b5e3c69ae91e402167d904436b96709aaefe7127552f8a5bb8341c8517b4ab5835beb175db2760ca9243156df5391a640f57a03d5074506c98647a22673872d7d1bf23b53e8b08d1aab173ce2d99e1c1b534331ed46eae780fdab4ad2cf9013ff420e291bc90394883b9e2d847ed7a262ae03dfc14d7b3b24487cd3402a307f91a4afa32e9dc2783c38a97383753c4f5b020203008b4dfade6355f3f7ceeacdeac855948eb776a357858262bcd3749bfebae9abfcc37f5dcdb83d3295fcfe33c0ab88d9848878439eeea4dd09121a5112c77c7f5343c74be94b041db7be6766703b44d64783604911b40870a9ca4e2197daf021df03ecb1e14f0a730c8eaf2974dd7dfde4c02e81f4ce9f3b5246fd6b5e9252fbd1ecb99994d64c1f0245cc65fdd09b6de60f603e70b003490e523ed034d5472e10b2acd6582731080d755e79b3e73c5c1dbeefb5d76a0b35b6d13f0608724ec088e8a4d2cdee36df0cc9db9a67841367d42c9328ab783984705b3d04a81378366c0c962a9c676c7b67bc35370028a4412db7042077c2b3c859dbb55c26d3859e8ad1ea7ff0bc7e093ab258cc2d6e725c3aa3f00cefddc1595f752674ca4573a070e3e833ac362216d85a1302f55bcd499c1b519866e9b33633f957df578660094964a828ed40513f459e52907236a942801305b4bb46ab5d7cd3e879e13108521385883feda5764ea4813b5680633fbcad7829f3bdca6399e634644da70a05d33055014cd7590538d761e38ec5f99730c9019364679afac5dad1e60ebb540e8c09e718919d36d4df647085f2fa0b269400c55b165597594032fb16b2e576bf63619016d6147c55d5989fb3c16d28d4c574c75c918b093f9ce9611500f208fd50a0baeb254ea3c8563ce198986fe6aa606ed62ec2668ad211774114b8894d86c42b212136c437d3db933df357ded62b002fba300d69459f41a17364b3551632259e5b85e481904462de20e5b62291841948f989ad895108d10ac96aa119954416cd0222aae922a6b652f2418e6773bbb030f5e918deb68aeba471fcb8105238623842aa98b4c6a20127fd5366efb62a39daf373d8d527500db6ebd60d808b3c70b2fe6e2fe4bcd80593464e89aa43462753e9b4957a14ef249a1532accf949ef1cd5be12e44c1453f6a7bc21640be6d4e9db27ec0fd46f031a4bdba356209e15a703695cda02fa82305b44d0b332a943de4c57cb6ce5209ac25680dc63e6d2569c26a9969b35002c7e1da0694245780f78129d6b7e8dc0585af7e144eca8444c4af00cf238b3e2a7256defb626f7de32252903f709020a1e0a6013d3a503f072312e365d9c13ba30a62be5a751005e94ebd96fcacfa35c5c6cbab858ca8f4b0f1a48af87694ed034cd0e9175f3ce7a5ee722111b40e9a3738f43debc3f1fa3d855f9221a229188f4fa19021a9a1340ad8996bdb44334df687f3e462f437e6708ba65419f15c0dbc99e5d76b2b883f4eea5ed190e053d7b2723c1e48683d69f4e21873c38649b836f9676a845edf5d7a326756fde79d7d5538d890294bf390b87ec31ac22d92b33b237260c3d7b3dc6b04ade481bf939489bb03b7c2efcced959baaeebc2ef62be93f9ce635ccdb8fc68bad653b992218829f62c9e5d64af0c109e3d646f8c0e9e9dda1bdae0d9397b3d06cf2b902678f66629ed75791361d8c11878250cd62b4aaf843df768eb599d19dac86de5ac0b29a18b2f97a5f5ec1d83b1df7c13d92b5fe45d27f29077a14ab90da07c910fd1945c941fb261b1cf0879c8e347130263ef45f1ec77c66b53009be0603f44f3cdb5d20dc03b7be20eb46edec5cf0707f3117ae9d4af1785a671d282aead09784d3dae37f5f4a03f7b220cdfd9f3ec334d4117c8e166bdc9d212492d8ce9dc53e4d2a528c485ea90766f6ad9bbeb954f7d0241051172918bec90908dcf75d31a9f7a1ccaf85d1392fc054dbb324fa7df98a737bc3e2ff8944ea7344698ed824cbce69b77f2230294bf6d533a27c51652e448d17a36fd36650610038030e5f534e396fe865ebae45c4afe6284d944a0843068e1630c6f067edb2ef5cda68beddb65a266c96bf7e5e390e9edb363e2cdaa55f95f8d30407fe95789fb32db0c5de4016cf6c99399468d20b088f643a4b74fe93188ca2b3f9fab145e99fc9ede9fbf1a39c56eaa91532935720aac9153f2d6fcd55c7a2792214532ba7a6b26dd4c4eb77ba20989ec45f2229f35fec42c060080d40d5d86977ce49d0cbf3ee3a7dfd24fbfa19fd369af4c277b5d9e7319f6ba7ca0afd01457b1269b62634ca1d892b531a6487664a36745950892a792887c3a2b7f341c14bff9ac975fec9afdc89ca0f0e724020510ee2f929a97b24794483fb591e371256b1a8b014ad734ae611127d209f29d879cc695c8bb520d24896aec947f74ed441d0c43d1a9addce62e3f243a57998889ecd3316a9a04a526656bde334a39a7a52060f0a5bdedd363d3f6d93e645a1a466fc6d9dd54ce969c051543e3b63935bf3db539a78cdafcd98618b718639c73c6186344c2dcb8397b72536eb6264173f9c379a6ea23fefc742cc2684ea37ddb34f91cb745ffe0c41d34678db9cadf498fb3b7e635cdb7fe79f6cdf9e6a7ebd4993e67378c7b9ea05fb471dad539bdd33d3eaf9d9d9d9d9d9d1d276266a1cc63272099c691e18062b25950b7fa66676767676767c70919191919a01d19de388777b8c7e7f50373b95c2e97cbb5b3b3b3b3b3b3e3449cc5599cc519e7ecb4269b05718b6f18875d2e97cbe572b9646c6767676767674716c42d7b7c5e3f30201973b95c2e97cb2563322663322663322663b2877e106d8137271c7785397287c53097cbe572b95c41aee75e312b6616ca3c76028a37be18c63086318c610c63587c318cf6aa29089e4eee61d8324c839be75e4556f42e8646fddaf1c423c51718ac5341e08c7af4d9d12a592deb950d8fe7a2cfd9bb09ab9e2022c778926fcede5c883b60007c2d441e46cedeb05e713d9de2b843a8b99e67873d77ecab9e87eaf65b0d3040cf372779b77d3424cff34e7a24cff6175bed261c86aac6f5f87ca8ceff6a7fc121006ecf44fdde46b2dd64e327d56e1261a48fea1345c0e7c24b6f2d441cb6ff3a512582a4f59ed5e92cc78d3617d5cd762cc2480fd5f89df45ac61deb94f4066275b3f6e69c73f2b75837e9d80e37378d33431757e028f6ed9386bd354fc3b99f5ee1e031e7ce56af7a67e2f40ac6a34f57af6ef0e81deb550e8fdeb25e851ebd67bde2e1d13ba8573b3c5e992df6f2363c2c2e1e3da657385cf3e8a75eddf0e8ce2af718e30e28df5cc61d52bef964550ddfec6582bbb2baa36ae3a8319d92da8bdfa8363c361c04cee2b1bec5bc56ef6c54cbe279a88afaeef3509506aaceb0a4d383409ec9047aa82ae3bb9287aa2b281eaaaad4b0222f3895e2a1aae93b9387aa293d3eaf1f1e23222b070aca4e8e1b3cef46c5435594195d270212c5443251a984831c4d01de8e898050b5f4a00c0fe766a767e4330341916809a7da6bd4f6e1d09b412f1055c1ef4ea4cf51452fd18f08d6a91387d3a92d886b71381a996ad4e029c00b76333c541d3d0e55e423c35bab3638dcb47276463d239f6d569ac5be0f87daaf96da3eb3f573a2e1a1eab7e2ed3754ce0553399c518f4fa7da79eca85bd04e37c977be77443ede26bd469d02e5a1aaf72c55a725478ddd5251b57b96aad3e22ed5f52a2d386ad78acd3c8f76353c540da12a4555ee6bb0b878bebd566d78745822485aafc33516dfbc86772c7ee3fb115fa66e54ed73d491ab53ed611de574aafd46b5f18013ad56abc5bae1394c32200ebb2e47dd82588776ad6eb34eb5b314e0dd66ef281c383aebb9549614bfedf3ed38aa28a853ed5e45320edb6f5451ac8a8062bd8a3cca893b6ca2d8b773084077a7d4c5857a6571179a2387163f9a1a953eaaceefaaa7d566bd68955936aa8ee6b6fa36eb95084804d43c624fe3dd4a1b5efc286561b1f1d16cd659ea8bb37c342fa91b9eba612b7dafd56dd4f8b6c68f9fb5acee06cb78638ebc56d76a64b5bc702a7543ead081c373a92c8eaaf1bb2e7e2ef6d6bc8ba350bed5bb81a0df9cd63b6f5ee47c03a25cb64b65715a6b38eaa3a981aa3b5a7c478b45326f583c2cde49af46a51f3f169b0355452fbf1e21971e2bf599a651d967d4dbb9befd546f28a35e5fa937e6efa6526f8ca95ed1ecdb53ea0d51ea1dd5eb60bd94542fd7faf6d156afa8c9b77bf58a9c7c7b579f98a27a4d7f45409c479f517e349c8ee6fce9dc384bb34838188b675656f4f88d621f6d20d16a18c9acd990c89a131259c334c717383f6950a2f1c69ca4d463ea99000961f00cd3e7a1c615656d88b2aa804eb6018c33ba8ee4813ee4afc0434307c0004d51506ef3b4c931c2b0e5d66c9653e2107d86b5982dd2de368e0b79d0d0301412893a1a230f1f1ca214a40991449df7bdbcd0443fa9010cd15289db4adaec12974a25094e4a3566cbf2cc92794a9f779aa46c8d9d432111d72ea6f3bc8feb057db0a7893c11897406f0c62e7e70b80577b4c89c148c302a80b7878fde799e9c11a6f3989979cee9fde43abd0f5c824f9e348d68684a2812858e6ecd8f21c700af177d1443ba351f238cb671f40b7da26ef6c772c4c919ae2e72d7915620a5162c994e0f8a1e0ef6446e383324cc9c7c90cc743a6d36e866a4537a92654b709a36209b2e31a404e5e6c9c290d5a04d9b4a624033d98f0f904fc80b8d4228a199ecc707c8473277cfb985b8a96d1bc7512a0a7d21100ca5844e2119a11baae862189c93ce4423b98b8fce71304abb510bbac9cc2c995932cb2337370864efa0ca4a9abbbbdb4632745d94520cb90690d7d053e34d3adb8052ca34ac01bc9452d12846185a82ae23c999ce5d8802227f888d09022f7dd9f302f0462026cf4824a144049cb8d1c9f3f098c821b5377ef1ec9ddc86689bc468084094528ef94b65422dca8174a259b16ddb36a715dddd564c59ebd9e70f5675d36d52ef3533d31ef290bdb23ac1612814aa457c1480436e16910e05874582b0aa9f524a435da3748a9cbd0bd22bc99a5108121c6e4e38c1210779620681c16011a60a397b017e84a24c13a71f32e547335d56393d073a3dca9e03c8aae638ceb72a39ce27c771939373cec96d9393b14792678fd6ac87e15f50b6344f0b73b6c44665a8d325647e74e0f39383255a8c60c9eff8a8051538dfa3070ed96594538b2167ef7ef44ab23a6e9b104138e41f4bb08afd89f93f9a52106c5025d303ab28a53e2b5764fa9032866a366abe7d34d5e350d32c8501f8c4fc0b7660af24cba3a2a747c54c13e14c21197b04c6b08a411004e32c54852eaec09077b36af24d9c027293648bacf8450b96660052bb61c1a7fc66d3f6583c9bc76f8821d2d99d79098e1837e366a42e485e908048b0d6730b17440a0337e3669c1352186400c1e5c68514e3669c13194070b9910104ce0bae0917e38038a42d971bda3a01c8c97000d11627c311d3b4c88989410378e3ebe6bebce732279691170306c9494ac440e1490e39244a0249a41a72b0f2ce1539601539a95ecec959a29dbe7ccb9b9c1b65f1b5d23a260719cd5eea356739ce2773fcc2e299d3678806f0d2ef9c2984a317736a73c7fbcb39cf3b39371c52c1320911c04b993265da39a2d02cb6386979d212f4cc1ea8a20a49bae2b91d8b676f528fb4ec812ab624323dfc808111c3aa6d234950daab39f528ccfeb60fabe22b0a4bfa270840bdc5e63754c29ba1af715825bf2439ac1a39149f93ac685459c621c79c8338eca0f86c9057e51772c6a10c8a31254bdaa77d56edc3dddbe61b18edc3213313c02b6f3c79c32a2aa48b55343bac42498fafc924cfecedd32b2562ece013f07a7f39f64d2ac7389449ef64d07f01f4976dd895e895bc61199bfc9575f64a9680de308a44d6682db202472905b8e04221ce43d44321ca51808b6deb4e43b756610c496600afcc4808608ce7d7a444a7d8edddc235809f7f4870c8af2850f1f1c9c7d7135adfb127bf1e3ce647a37d4ad8d8e779fc683aaf86fcab7cc35470c822f76aa7cdd377f5cabc0ccb9007abb4f77825339b3967ce2239b17834cdb59aefa4473203c8d3413140998f46b31e131e6bb48fe6c67b6e3ddf682f2d7b7fe3cc895a8453dc1a090164bf9199d9bb2535aa832ebe5c098b404828d9b92247e2709ca422ca969849b412d34a9f297d9ea54fa734242e4a52f157a2648edcb98243f6697afe68e4eb08e08db24b9148420956c9672a5ba2378fdbb4573e2a887ee9fdd25e140fd4cc6360fe908fa6ed0c875ca79c524a4df319a79cd15e275e1b327378761ea3184c27e411c04bb780c94e0812e73b92e7a17a5f3e34996b91df23df1d18a0fce963fa0c7773cd893af6a4a83951f85e9c2c4f4d4fa94fea9155380f7627b217a4fff2d465125c102ecf858ed8a9cd800b2ea650b5482fd2ab53dc05f0b6ccbe652623870423fdb84cf1ec5ccd935e97f47a66e23205cb56b927dcb01361d85d5aa4178989cf1b7054e1b52e8097b4f3a41d0ebba5ede5809cb03c91966f79e92e2f2d8d309f0f16d20d3b355e5a122cc2b06b2800493e1cb25f1d829e9d0423f9a85a4490b47a1cfa8bbcfbd2cf2f38a24eed0d025140424e725288faa5af753ec3db672ff89b67e3f692cdb43f27e38f66669626d8ee511adaec13f243a1a83df5f8f9a04e048831c618e3a94505f19bb54b70d85ef39a0567c415139c6a6f5fa257339d6a97360078f2ed37159d7cfbadef7e3a510aca52e490e90c87edb334adf7498e043013bd1ee531baaeeb4c1e6ca35050aed97a46d1c597abf504e914a701bcd26606de184382c66ddfbcdb6a900f80353fb78a0262af5452f31ca37af4732e9570c8ae840d873c6f9ebf2298a5b55ce08db12042906095dca28cd3a28298d2d6fc0ca380486f6f7b6b3ec6a79507879c06f0f2f87e1ea419a55a4bbaf8e7b59e6e2d055d54894e50fc76e4b7cd769c0740f9dd49af0920a594f6e945268e73caab90732e5f1fa2b6019246ce6e9c6f1cd73d46ccc78060c8bb9e5e24b2b79d7a472bd80150bee41996df9cf2bb7a1faa43dae7956fa23e79c539a531cfd5174eb166bd8d6e967218a37553d175d16fe7b705caf7e8a4af044b7ec6c7570960df69de5751403e1ff9c8de917f5ef3dd68e49c8f4695ff63ea5e6deff8ab3ee28f46f663fe7c7cce869f4ef937fe6cc8137d3dbe1a9ff253f75e7e3d6afc4ee47df5fa883f8489cd3fe7fcb34d7c349b8b3e1ace451f0d751f22efeced9cba7c424618ea45e6c708439dab433ae7bce7e5cbef220a17c0984518391f3ffea8b3a82036e79c73fad1704ef9934e443ef3c7cf0773a8c6f7eaadf910bf57e5181faa1749141f6a7d8826d4f9acf1bb4a44febc485ebaa8829b362906e8b38d12879a4f6e6220800b203e3033c5cc112e8040c205089a68356126034db89971820b0960a0091a78820b308908448c31c618bb79f6ecd9b3af29b20fba18638c31c618e5133a965272dc41d7dd8b438e4994524a29a59cd3b54dd35ee636a7895f9c46dbb4b96ddbb6ad01044fdc130cf0f2882fce932b00a5735f112156ec94b4d463e1509b736a939e3c11382713de34c94e21ca6d5a37bbebba8e65248d6ecdf3a5dcddddb23b8a46f748d75b84454fba18638c315aa0ebba686f6c220618bd8bd5e330f2f8e8cca3238d30d1a54c032131258f72e0c4e81e38e4c4006ff4e2a3cf6893e050f2a8fdebd1df5626c244cfe1c64f8b92f6bec8d869a01387d22d4a49278e64c2f450bd3d7cc8635c4dbf007889e237f5b2be9cf1529246a697ce79ec95c9c64ea1d8d8a9dbc36fde95aa7cef558cd1a3db1bf2eba5135849a34a39dcfcab1e879b7b15e470f3ae9a38dc5c546fcd8b5c6b5aef8cdf9ca5eca1e76c75b2e6434eeb353d05bbcfafe7f90579207924f9ed97d27ed5abd43def64eddcabd7ebce450e829d873ab0b39245f5d2274a23cfbf4e4af9a5d1e7795554e383f589911341d27ad03d567dde3949e49e77a18fa693528e6a8c305ff56a8c385c295fa435cba851df7cbefc7ad0506dae464d33b1787af6b7bdda95f876ea92ae38ae6e556a4048245d33598a814edaf53af1ed52457df390cfda691f4d68d210b51e8753ab2ca32d32235356b1cf1a2a7905244e49bfa6edd9b5e79eace2f901f089b98da4f6d14c4eca8e3bc452e9c4e22fddbdb09cb6a9b107d28ef36ee863e9a5dfd2c7192ffdce780979c4c89892f2451fcdfc64dbc8aa18a227b8a2e65b2e59a2c4f52445b4aef4083865a01cae5081062e2ad0c0b5c516f2e5dc1c0781f2356d8b59a24994458055b429c7711cc7c9980ac4147b14318c6886982536288057e2449c5e510a82a793e3bc382e28e7853383cd665f90cdda66e6c9ca00fb64b0d917727e46813383cd66b399f78528669dac9403f076305919609f0cf67ab92e3db1e5c5c5680c6396e22cb5bc6e1746490a013dc3aae87ddb21ec9ba380018caf157cf1db109bf392e79ceb95ff11117d3a6f16d51e593df0aca8f6f9252d80fe17dc3e66e10127c42c7ad083f822ed90189bdf1ab658a2795784ab1cc781af3953faf1f44af378c3b682551c054f4e70e85d7bf1e3accce1100a0e398e611c07fa0537eb0457a12003c815b150ac38d629cd6957f2ee9e52fc82f6966ce4b0b3310eb5bf1c23d94b9f4bb1177c0ec5ded3cb9d4e69ceb18c55b19f5e316c732cc00bd23002c8691efb905f9e495984d15ceef44afe744a73cd5e5ab29782f682e0cf49f36f07e0f4cbb308f49c4be7193be120567dae79b7da86559e6bde37ac1ab9e68dd38d6afb57dbb7d855da71d68382434df3191e2501457e69ab5792a5b9bc915474de858038ac89dcd75bf39cb4e150bbe916875a0ef7c40cd51b6a4eeb955dbcc6b52805c1d389b3dd7acd9d682858155ff327802f9a1dd224e94de18a152479d2c797eb051f51bac88ab375a2f747d3563a47db9a0ce0164bdad6b4a823246bba644d7b84c788c8e20092d884655bb109eb8820cc320d39c801ec77c084073e1f5f39f8e2a583264f59155f3c50f2a567ef48ed5d9b78f24cc4262f2db76d82086ebdb44db4450521dbc6266f9b884d5e36f959173bd9de35fe74ea3a37ce0a9d7815b293ae244bfa895721971e39e459593834712875369f75726a7a7f349af4fe7a70c719ee4a03229135cc44e8a490361c83e67a303735682f68e7507249e0bcd3c7c88aac927e5f2e8f1e38d52eab0c873e442fb33da1328631217a3abd740fc32e44c166cdca74aa725a8053c6aa1b67ff05ab6e0c7a277a35bd1d0a8f0b3f3f2fe8489d824e41a780468e0ac02ba251030c7007c4d9e9544b9bdda4f36622e23ac4ac4d9a11053d7e5cd7d97da0df669262efb6cdbb28254a6ce4f1f3367e91a86b3dbb2848347b76aae45b11018980508056ba601dd8b99a02301412752211e7f193ddf3128b97de499426285c959674e3d51150a75aa399ec5be124b8026390e340e7c0100d8568884234b46d73d421ba89b650a8c9b37728324ff61c7be4a178e1f1ebda4f779e7db472c5b3772b3ecd44e48508e8056e23b96d1e0d795d0518fa36bb22e547b3d205870c45cf879e842a131c6c0588c315180d18700b56603460404774ba9c060c3caf53008e7c86a318d463f7674488e5d9118c04e05d81a10081b509271ab57338310605456e7baeea90a424b99e475de0dc3cfb3792915a200a10b52318872c4c4440222f443114a05e919c7d04430122d9110c4502f08a4e5b57ee6945c941f92a4af579f6de793d3b0aecd963cf08c66404237d343aa218378f3a37ce12f90cc7b803ed2cca0e4b11c08b32823d8b8050be8f66b32840a3908f3e1a142f38642ee45c65a26728310e190588c31558846101784730a0671fc558755760cfb02e4640ace29c7de405ab2e139cb3afc0e20e91566ede043d7bf77d74f434722492c9e1a0a2d31c6c02d8c559327188921e933084d9b3a3a4edc13f3d268108b16f0f79b02abe70acf8e848448057b427be5000bb91498ccdc441c1ec6f84d94c9ef84a81093ece0a640a9c0a448a9c0a440a25aae8d14156451c1f3d3a0ec9837c913cb04726fc6529fd803754f9a84514aa7869afccc7d0df901fc8145670183f8b1e6ce14371d61ee83a525711639c72d3a28cdac6e27e3a9922c79730746739c518230e4069afd7557415336e48a6d309043d4aa547c1d97a09437796e81df3b6d90876d36c1b7b008c1ebb0af076108bfbcb93696a5a5701ca22e3008cf6769398e649df6441a404b94edbb82adbeb1380d2fb03c2fdcece47bf8d45732e7f7baec5f406c439b93c27fccd2fb7c35b17eb601dd016dc0ff73323730e0267693ea3a19f9c9d9ece85c5ebc0ded5e7398ee3e689eb397f36e3007c6256ed2f173493fd748a9d72b11e6e09a798f379025e520ee77305e75b0eab3625acea1d566dcdfd8055803bddce737739cf5c8c31c618638ced5cec947c9784c32fc8666fc7b81f8dc361d7f39d3b5e68a11cafe5774f386452d08f664938747515e0a57f3b978bf3b41a59a11a595ce57eda742e2c5c1cb22b0875d1ef388fabbd6953fed436c93537ba17f818617a5c70baf8721b274a58dca11461a64fe7c16bf5aa8675c18f37e675fd63f842a4c74e697c65ec279f7efa953030c24c376d0194b0e91268ba8c4def9b29653f65d04f6efde49b9f8cf3935d3f39e727fbfce4d74ffef9c93020d94f0efae9dd6928205bfb6651736a8da355a17bc26bfde6f1e5ced9b777c1de5663174900c2cdc724fcc027f631093e3adf3d7107698608d3de5a84a0c907e02312d0e0e43bcedb2a7f280d726e31e4ed32885bbdf2bcfde58c55ecd2d3e82724baa43ddfb75fdfde3d5487f3f821d1282122fffcb3473c2b631625e44867a5ccca1a560d6b863bed3b621a215921941091d31a96b7f9f6091139b547a88b6cec94947dfb95b3cf08c9e23c7e454856c89e3a357d86c34e4def668feca06f8f5ec342098947fa25a38c71b25ea136a71e59ed72d62bd46683883ce491d53d325425ad1cdf7c7ba90ba07ff7318b0e78e0a735b10b7cfecaa06fbfa19c459876d316c0eee9150a4c054d5aac8eacf67eb54f59af980d4b705aad562b0ad60f90c8091bc0d8a2c5ba1d6b59cf3aa815637fbb67a405149680d362dde9fabe33e7fb095d4081498b75e7ce771376f062ddd9e3f3f3ed77027d3bf705d1c918658f88c8311e054473d62ceaf42ca52d40ffdb3de0c72c3aa082d74a40a470c261fc97760edb5d00ce6a2a03c8af56ebb90bb01cb4e6eca30d245ccde411163a3ebe54f0f3a325e0f8f83a4114be2b82ccf1f1a58218bcf7f165021efc057dcea40c3025c6887ae972099b4fc984138b0a722468e2f1f1a582333cf8f1658219fc057df24ca4448233e4daa6692faca273e2e0205603d0eb220920c8640d38e0f9eb63c041ce5fd07b808311fcf52f80dec7170ea2f80b7ac8ce79fac9c38697adc821758fdeab49edc9042e017c7156cdf9821e7f197d7cf19481270c7f3d86d344d0c55eb147a79207f943089290c3fa01278b19ab638f2b4a081ff1c1e6c5625bc3ea2277c7d0e8d6e0400523b45848584ee074aa4277b3ec9b9beee64905cfdb3617962c5f72374f22984cddcd1d86a75357a1bbbbbbbb793a77b3bc024bdebab58d35d9dddddd2fddfcc2967bc6599c6926939461186551c6c138d86cd6b18e9d4e2f2f55b8b9d17ae841d380888991dabc993772462691c915a413e9e40a2d5b3e11e68cd3355d11280231b7b6fd9c45b61ed289b8cc28b4ec8d8bf4cb1ed289c8313429a920935d210c6362a6262b7d13ff80a483a4cee65d8bf4d374108b479bb6887c7905cf939be4298017d4bc33f10f4864583cd2d9411dee6964583c5bfbfcb6a8205a93b20a52fe8812e8227b5f7bfc2a1120da48c7debd79bbd4ba393f9ae64fb35302fde814fb4f90e9db83b85cae76cf3baffe400199be391428209bcfcd4a1b2b5b4248d7c72e7b2416d287552367974b58c5bd98c81fb9c591903d225bac621f55e9239930cd36b59095d44a1b8905874ba4e9bf7aa515cf118852103c9ddcc3302686fe6095e7ec42046195fc1eafc7ebf1ba598881091e2c0b3178e16f7bf13c6933d04d8c55977718c6aa988518963c3b77c1aab88513feb217cf5cfce526bcc3aaf862c115ac922378f66e4a669ed327f5aed3ca245553c221d350e9db6bdc217ef7ac53ce61d87eddc74b10a26f1b824800b72779fc689ee896aef894f6477379a72f2d797b4f972e915f8675121808eb55645116e8f1e3598461ef9c1e35012f6fc1ce5bd020a6454d8f8fe2d44a170fc02b5dec2875c691d35288763746d36ae7602535cfdab5daf957675b1a8632f115d32eb2211b8067bfbc922e4e314af3c8434cc481bd2df5f62f809beb704e5dfb82103db5ee2fbce26c642dc43cb756c1d216a0ff07b8f8b657ee3cb35ce93a71c87e9a69d3fea09b1e5f2e2ae7a564e24e264ccf795567736a86219f73ae79ccc47f4eaffccfe3f70d69ff2ccbe7afbd73a2c8730fe15c3e13cfe43edfce9b173f203139ea0d8f29c2618c16c0f61b3e8f1cf586c7c8e722a2dfc04133f26e547b07a0fc06238c1744e7239ff5c8741cdec51ec0f892c1cdc7079d468d20b048ffc8de9a1f79c982258f1f8d4e0ef776f12ea28801c6970c5c3f7217efdad3e611c091b7388a778b4ba7496892110cbc29b2ede30edb374aaf74782a65c6a17432026dce00de58903405a8c353507ce42e2e2ec156af8e48960e8b6af1c8d2e13a2ad829e92526a03fe963165244e16dd4000374f1167f79217d3f8658f191cff04b953fbf2046ee6251418cdcc55dec90154b471e676984726971930dab4c1ca25c6c0f7e97919b707a65d3aaf8caf9913fe3a59b6e4c2e53925594c22cbe6400f4d253825c5a461588144a5cacba602b09ab62135ebafc68804c61454b82ad0f89d0532ebf23449eb2d3a753327ef6a084e0f094a7ec91d9d329e938bc86d53c003980c3c3b9d3524b61451d71e38647567f3dfa372e40ea7ab9922de962557c95e08b974e93b02a3e4dc2e18866040190c5e571015eeada3e9a91e3a891d5dfe2339c8455232b9dba585572e99dcb17a58a1ab9fc91e7a8a891a539acd20cc014179b22e350fa04028862238723d98c30231b39747be77b386a648d2287a0bdde7bae0516623fe3a31658987dd073fe790c64dfde8d8a3a22fa117a2487b742ce811c1e8b88ac90779af701e19cfd468dae7d4544cfe137ea05e48f3cc547a451c94b5eb2773ee81d38c31e87a0530e41975fc947357e6455c9820e5aefa60a5006dd893039bd92aceab60a1074fe8a08b1e84ea7a48faa7c9ad3abc8920ed6ea3645465de0055bd773b546557efc7cccf75c11a608a0e77a49da99fd7402c829b294598a13ef73cda5cb8f08ce3f1b390c87606f1bf309a18e3a223a0ec76139303d7a64cd3447568e1a59b65e2aa35eeaf3d24973e7a5d77aa98d7a414e67f38e93a6daceb50767f2192ec25ee8d95b84dfe46d43223e22a49b9cab139cb3abc8545c3a17e1577193153aba08adb8d105151c4a2a7698b64851c1aabb05abd8aed8ec30e930fdb0eaeaa43cbc61d5d5c981c3aaab73c3f90787b75d69a9c0587575a6b35db94991fd70e9295f0071e9293303b8f4142741b8f494a017979ef2c4864b37b5ac4b37d954976e72b1ea06c07db8745312565d00788f1c565d1a5f712961d52d80af24e150ee20e00a237a8ac022888f2f7171e9a6578b4b37314171e92620565d9613c0a59bbc60d59df177e9a618102eddd4e407976e9211e1d24d5f1cc0a59b6643b8749313215cba29a8e4d24d4fc016c966e462d5edc17d48c2aabb83f390330025322e5d65875577c5a5ab5cc1aa2bc3a5abf4b0ea9e5cba0a16acba335cba8a0fab6e0dff5cbaca12565d16f75cbaca8b5517a5c2845597860a10abaeca572e5dc50b56dd1c5c0797ae1263d5c5c1635cba4a13565d18bfc1a5afe0f4eac86409c0a5abc8546afc2e7e2af6d6bc8adbfaf2006fa99e84936a8901def5ab463824dc860374d8f002e870f7a1c3fed0014447c986bd3fdceaf0a1a3002d0ed0e1f5013676b8f7d8414363007baddb08a2d2ecd841e3363cd6de1edc0fa7b146a80f7b69a80e1f3ddceab0f6be78d561abdbf0fcb0574787fbd841a3c30bb083a6006ec3d3c35eeb0678b1b77a106ec301ee2d3b76b4bcecb0b1e3c586dbf0b8bd3a3bbcc5013b1ce0a3c78bffb0e140dca501e10fd7c509608dd0d0860701a11161c943177b11e02de10f46941a103a4a122e296bc37309e06f8dd05b7220806871972028ef405823209802c26d785aec2580a358235c0b4a110e84354211602f10340c42006f095b5aec7547095b50dc86a7087b75420f920222f41fac1110881f5abc08b717c583b84b03de5e02b811a99293ac119a7a92a75c52f603363c6ec343007b7552fe0d28a59cd40002bc3b025cdc08076bdfb0363c57c895711fac117ac387d277007b1b24f97043c6de0478c91a016fc81c005c00e9868f1800e6b0363c9788cb03f561087b490e5a239e10231f78b0d7071f000f6ec343b257084e880fc01aa109b07700f4c6104238e90689646fc94737ec076c784823b7e11162afce0d1fc21a010760afcb5823e00064dc8647087b493e44c9de910be1e00288f003e4f081e638c0e7a51c608e12e8363c44d8ab93c30fb0001f72380f0bf08107b7e1f9ec2d3911f6827e00f778cc1bac114a85acbc9e5f1fb1b246c0a900219f35c2bdbd9ff774ae46b8d741c2c3616d786e02ae0e1e638dd0558c378379a583bd2b8fb146401c3ab4bd27ee089f316f7005582374ce3879cf6e9ecd6ec37384bd3ad36370dc307d068e981bdc86e7646ffb897d867bd608f73a3c642480be0e8e15c52164c565e0b057867bd688f7f603363c9fe7363c09b05707870be1b1b257e7c659385c076b04fc0fd8f0ac74701b9e157b3f5f9161afe7327ca611604411418838c01042046100203f7cd400788f0a00a7a93878012a8c13a0b2bece4896001c888a83ff5061dc87da030f75076609c007507170990ae3abaad2a1e670a45902b0363c01b02b381c4a00d8152b38941e5371b03a3cfc860ac3c3aeb83a257d47c5e13aeaf454c5e1619d9ea3e2b02bad4e49bf51a75db9e994f4975ac36d5416b715e5b5d270af35dca5b2784b45394aa5e1a55ac3c1cae2a48af251a5e15fad615566cc62559ca0ac4a100dabf28443e92a55f433ea56852896e0e44f9563c28d1576f0326aaf208a1f32fc4add4490c5ac0bffea917d7cbd8a4b15ab22638faf37d5f8312995c8c83fcfde9af7bceb95edf90c7fd507ffe8f3b65cafcbc9b4bf9bfbf66e22503c77bd4a847bce7984a34a448ef1edd922fc1ce7449a731519ab545c2a4e5482549efc4aebaed894fcaedc3c8adf152a5eaee0bc741a359e80dcfa980286184af76aca186228fd33c34b1fa5e1a593c278e9600a1b5e7a298a978e52630cafe90329b208237d86516afc528d0fd6f8a41a7f54a317bf04051070f197f6bcbc348786ad7328bda6cc3a255d646ae11c91ac14591797f0ca024e8b15aacda2751b410e2b7e34415264a525807e53642fa308c35f90e6bca44a38259de670289d55da424ee9631621e0792e8101f4bf29b2d1c72ca2f0e2d9de94a097293254ce0b1259b321a1353490748df43e045dd300941eb92eb26420289d5219a9a43d1dad6d737773b76f9123478e1ddbef89fa052f6df790bd9452dbb6c108231d5c02c8595b02bab9a04caf4a31d5b2bef44ec11e2c4141060481ecdbfe957999b8437cf9310b2954f02c787d7ce5e0c9113ebe56f0e4756438ec618643e95eb3643e01ec5b87b465e2ca484f42269e33a8e44bd675510f33a6d00c08460000007315003028140e0ac7a3b1248f036d1f14800e7f9a4c6a4a1ac7635116c3300a840c22c400030020000001323443430502809e240e7b273028cb9cfa7abafa8f94f3785a5f7f5f9ae4c797ba2f0a9ee60a11d611b88f3e380b77fa10ca33e5b894251a2eb17a3c88259c1adae6e7be465a458356b07cf87ec2535617daf6b7610201ff417363c0430d1f8a9dc8314f167feefa4bb8151f98804770a3b5012f4735bbefe1909f351f981a7aca3aa99a0c471daca85813d10a2702048d4dd2bb7d3b67e9daa4b65c3c651237bbdb19746fe966fde74ea7dc13766e9d6deeaa61aac924e3518324cbccabc37b230a35c1e98b912a63f89e2ce401f842ec44f958bb25e1a9c4ea394f81102312a6d7efeba2c288066c269e9dca8c58764a3b5535cc259d404fbbe5422a3a885f0102d360141f9b7030a79d2f1f7950d9ccf08015d6cccc02876ec8f18c26a814480566cfa5d90646e43d2f1f54f8243d2f9aee120034b0cb68c84d126750f84e801c2fb79562c031cd6009429a8f731a27c1b1b9d6f9f8b66d330205a252c488cca63e20e3885d84f7eb5c765e332358a0e4b237e93aee2505fe8a5c6c702c604c1f66ac02eab6f614d1da101d71cb98a25ac075e27410ae7959b0b6ec15bf59793188b1ea47eaa8747f8a9774083a04c6c6d0ed25d75e4039ffb110fab2f1f0ea80398104958d9ff57bbee2a01a830245a47f1bdc877a3f8f6bc9fa799f9c461688ee06ff133f33154976181e4175358147691997bec5c9630aba5954866a19e20f1124bac80f681a7ca7bd6d5e77a4c2ecd97e3eb7e6e3f72b0c9089c42390a4a9eb0c78c9eb23c2b42ecd2901d610c0acc0fa0b3f3c4cc02952760fb27a972d28609820348bd6ad7c797ebeed80237a255894e5af12e8d7529b8b4de731fa2ada1d89f9588aa68e5e22075e4ef7c1d3e113d31ecfcabab4a7f68198780f51b3801665125f5b14badce6336f84dd798ef4c14de5e1598ab35f8b09d03b519c5b7a2ab92baa0912053623ea139a714be31341956ecbf25535e83272ba138d5722e205eb28e9a5ae1c83e1275a31d35038c9b4c3b59cdf5480641a10bf11991f9059064cf7817c7ebd68d541d53e1e1fd60be2731910be8644dc47228a16947e330e7e6e9e0993d0e64436421fcb6d1773f614e8c7dd61693e32e818eea52e81bb1c38aadfc0605b5a2e29db75098bbce0f616ff1f0eff01c6762e894facefd7d58860bfd10bdad0eda62b80fd9260091489403c9f076c65d95c896efec9257afc9cc280a3f09a247c33fb99c46f70e5343c160b5f9ed4c41094bb5f0700351294b20a6331e61c23586bb6c6d810f8fc58255c5cc06e6ec2f260c5f418c3e63c9ea94a838e7316e23a5640ec898cbc2718bbe8b9b29b01afbb8af625763b0a3a8f5b0e783e8383507ec38b8c94d7fff2c50a7bad38d3011de1b5ee0454e164ae1184d257325e57b424082935ae0ef05845329f749c5e97d62c69aaa854c96affa5810d8f3f8cc640400a1bb2a7315e72233f490753dc523495ab60e7a26114fb087c63b45d69acaee1b08ba77c8d73199f037509c966a87c975c5f628c5e6acda9c5e488df01f44428108f738c3063f2910434537d3061d139af069d6770cf98b860626a53ea3a267f35a6aada4ba60b3d4e488b4c569b9ec77c03d8ac1afd38e29b731e780408eeb2e9d7771053e71e5534a06d944f261e291c64a7818b69c35fab0a8fff76a6a43a542adbf1780ab4df2e75cb67fe2b4fa28f2ac19aa259b42f93ccc665f663bf244d356ece7b0afc64921285188fe156459b65cc70c9eb565aa47d674864a6214ca41f0903efda5ce8ff2ac08d7b03c245b98d57d80913552433767388c0b090a0a64853919c06680df1cf0ad8a97956536549bed835791015801f7a6bd42a20eabfd73e721332faa617a5c732ff3b6231f3462351483c1e04e51a783d8ed7399686cba38fb4a91d21f093ae439f75ef99caa58afbc8061791376e2005b8418b6d5eaaca8ecbe2b5f5bd0fb1d1fed9c1a57e63cc2c72a03c67174d43a9860d18438f1a600c30705bf93882097fe66ced31b0d01c6133dfb52d6b4203dfa7c86d11acd54c2b80079ce99ba637de86f528cf691b5487a3e8538be9b1e0d569ffb601928a6609a16e55fe7fa918553e483cdcd6bdcb8756d53ecb35ffcc03620cab5fdfe8dd44446fd387329bb355967edfd058e0147687b755a130c461745be0d32b2a0c7a114a040947a621e18767b9bd5c6981b4a15332ed5a572594201dd962f21df160da67c2005ba51296c003430214e51cc2091a7672d976c9ffcbdfa67302cd2ea098887338c4628eaf4bd35a8633fab1d930dffc3a9957b5432f91213f778f3b8b98c7c7a59cb71e10bad2717ef5a05a18820012c7f35338cbf16e3b86bc89be8df7b93460e0b9e123189607f91214ef670aa6f9cdae21cf44d313dc9eb369fa111d7dd6b1777e7ae8dbcf36400a151b66b415ba5d12972a560e35c93c664a24eecf63bbb5f4fb7d73000c5cd3c344854c2441a8724a7777be5e1cb62d7e1cd495b8f63fff6e4882252827c697c937024d8c20a4c5100f6ea2e0933258e112349621cfae133ecdbdf5cbd406493cacb4d28ac1a6805f949f7694c88608b4e10de64fe69c3c99a323c26a4afac079df3e15066d950dbbc0ab961bb35048dbe1c7474e3b3fdf286c815202f5a34526215cf1cca73d572f5c3a810ed0409796f0d68295b893da01ae464f7757adf22a89d641eb5a18d0cad4ceec072f64b6b07d60d99e4ecfe61edf6b942fda110f7434f5e8a24081f1ad24c4bb43019e75a73ec70fb983c2ee787ae0e847316728d4d0fb1fade96a6778daa3311fea7ec84a4d265841ff1cf393742a578b0c6a8175edfb833a5136da1d32070071eda7302611b6e1e318b5b5ac5a6fa5233fc155e71bbdaefd73007a6e6ae5546c489db6f86488c8b33f7220ef218d68878c0339e4b6c092a904221938a0212c10bf821b559fb5e7bd7867e2d2cd19cef70e44ff3c6c072b16dc20100fab1019c48bacd007e0b81f5757acec2c1882759a5459bdc1f7a2e0a58974229d67ea4cd5b891deb660b43e192647e9ea3b700a5af5f1a218c4fe6c36214c8a947249480219c98dfcb5361200f4dfa8684a09e911195cd7cdf0eb190ca228ff4395e060185d707ef066909be04ad8e09cceed1f5c067338902f187d46eb7f3ec48f2fc81317912f62846e0ed3c6e13a6e696dad8b11a23c84e8057b9c669f3ea607f493a3f2b8f99649bc1ddbbb3faca517fcf293d66061ea88d8430d62ebf4716d6e5c524f7da675abf9f659fc67cbb52125e1fc41a8057e9ae460de41c895c7ab2e5f34e608c89cc2c6ef1fe23eba42a5ef9ff0bf51340d89fcc7e5174d7ac6629e9ba98727b9d090525ad8ea5dbe04c7ea255e21ec7121bcf5f92d678345b40fd1fcbf8992a14a0325ff2d7ead00b660dbd9921204d6c353e108ec8f3d6187cc8e4a07a0a7e784284777f4a34e363d0c77ad694e6064b4368503630d130aa917d56db09408f54cfa8b442898a04490a979a8d9e849bc444a4af289e6f7d3f91b958fca8b22a5f5dadd4f537973a08e101e9925135cd03561cee159f0c40cb0880ef0aea12678e62df434751e4838630d5a4735af0624417edd7ed0e2e4ba81371e77393252e9952c7c06830ee722f9bea2b87603723000dea28d0e02bd4d9d30611621e43971fd274f8ddef6f39916a9adcf277d9a3e725dc6f2280c6a74130c5fc4804616e5d78ea55abf0294fe76570cbadb890d4327dd72624ce3e21559dba363e2b72c6ba414ac3c66dba807152216b41bf4e8a07a19ab57dd6e0b62f5e9b9d9381a33e14ea797c10e04939f219b7341b2937c9732759e00ea220bacebb588fb49c2214d0c9b6e0b52ba300cc05364d131911f48d0ff35613d8384bb57ea8c98db50a4dcb1f43a1a6364725ef284bbc2aab752564c3a3ca9cd47c91ad8de805cfc3dbae548766f94a9adf8e9cb52256c6a2ce0492bbc79ecf229735668843b58ba5d28f1719b65f55f7a48eb48501fe959af661ee79b842a2c62849bc6c5c6dd0eceb0d5c9b7d9bf8e311d1614e489ce7d30745d6e06dcc4d6f64f7e0580b3ecdbf5f7bf0f28a61b5f08441917ff20b0e9c16a14a20b007ff2d7783a0eb8ffe54a1ceaac6c94dbc50d742db975a2c7dc51eef145dc4950b3f7504cbbd0f19f8fdbca4e0d818fcdd21d3e74a60dd643b86bd96a694a73b2d713062941fc4d1496934f0f83ee1ec1ef840e780b300b96e250466ac817ed2d77ab8aa6aa9c7a4f995dd4d44014a25c719db18db3439e052a5d03d70eecd11a47effafa138df44263eef0cbfde85f582dfdd6f70f152bac1286f7f55f8cccf61cf72cb123fa47af751f9a32d2c0db429e68dbe4342f40f46b0ca8c342228e44d213c3753bf7ca1c8031604c7d528456b3b06dd14f54ea31e5c0a26d7814db647ad12a0f3c4cba34e563cffd7fb3d882a7ea906cdf754e745a3a7959600ff5afa9b734f27d83842eca678ad1ec622ccdea8823c3f3176b8efb7115a05e93f0ad50fb7bbdc2e14895624dd18aaa35a7982ba641340a46115a234cfc353c2f3ab336c6dbb235179d2795823391c08c81616f4c1562273cdcc3953e44d68a3ac44324b9713975a9d9666018db023b767327221a197b372351a24effd980b2f79843c50ae1aa0a8973b25d54452f0b5e32d2c4d255be2e0826ed19e6935fd1a5f86b5873543097bf1a29f4d57cc30b8d8fc7dbf267a0ea907015b2de5e74da2d229729db0a126756aa208e4aea62a10c6002f7cb3d7ea953f9be3e910181139440cf6efa64bc77d83ef51da0956b0fa8d6a78ca2d1a881ae2ef19a1ddfa1daa0e0df668541cd1a610e1abaeefb716a6c41a5e91d1ef766b87db8d5c984873f21a4a2e3ffa1e70dc202d20c6e057413f53e0e3b165a6e8feaaa5d5959e90e19533512710b8ad009060237fdfe9ac1d18833c6433fcd360c4defd6216e0488da0d6ab156fd23c411eaba2a67c67daa8e61a82dfefc82eb6666112106d5ffc12ac5947ce14afea363a3dd18587b0fd5ad4f0864d038248e836ff29ec94eb42d1145aba7642f76effff1be747288c3bf95325e68c0d8db37e235012f0594144fed435d481c6e6071c585c515c2b7c52eafc6617b1c311d0e7e712907e0a6123b5add121b6bef703510ffc581af6cf215b6cf17e6312bed4ea02c502d4098e382062fb1e76ab251fea322a831835bca9360252b327a2d74b92ca0ce5b9e361e7b5b94f188a6c8c0db6343b938abe5ebc2393a56cde099717257df680af80bda3a3c137026753674766a877961d68df95dac7ff740e1b0e8c04d974be7a3b6bc26ba89c2e82ef09e16c943e505eaabc79f41787dae76b89e39fe537b18a2544108d30269339c5634cc1552b23bbfb9b305d2e840621c48924aff6cd9596a3f9967b038f4adbb4f56098986f5ee3c29798c1221c3d785ac70188b3469da04a8433aa4c7cde3a917406fd3fae23ada1a48f54656f79b39272e9739aedfb458deded0df9262375d4d4bd2ca67de5d0605cd3ba88ffd93dbf61acd05b80c2630fbb080770cb2f129dd642e9a0dcfe8a38d547b879454120296ca3d12c61ec35581988846555f2b083092cc13a85ced8bda97f6bcb1b7616011da6778619ae78ee017fb0c92b3a701a33043667a8e24d78e152325d1cc50141819436286990b197292fce22a26fa396c0828c486c154ed1cda8e9ae76b525161d05e0c8a00f92bb87d822e38d2b8e638966aa6288bf478cc802e84d1c0279c3284c6e2a33d93a8b5dfe980d1b17dda7bc8182d1afe2524c7736a28fedac880d3e2a8672d5e98818fdfe2dd2bbc8bcf994050363f6f2c146fb6286c408e3c7090c3d513eb82d687b8f244342ea1b1c72eb41562125eb46f73df31d05e88c8229b38743c801665012cca49255865c14aa39a95a4146e48aceac6453064e6dfd03f04cb075dd6822194c68336bea0400c1d7178157d5851ec45b2f17470978d022ff3f7a05e2e476bf494a79928509f286a1cae8876a8e454b92cae3564232877597626300cd44083a4e39b8ee40a3f388c2123f3e0db90f81f4dc16cd1d6463229b0e1cab1e10dea415a74e9d85e4c27edc97c6978eea14e94d413cf18646d82d19f878fa2578e4a83f562315e5295ed549d5cd21b4103a24b291f6d8943bff8752025c53baaf59bef097a794e50d07b8314993f8d3c8a394ff6ff45bcfdaa3855390ec23fa29a4351621a57b2936e411d0bd25ca9a137e1fcc8dbcd782f015bfa12daed274287ac03614ff1d7f2625e21c2a13b2229b2b17ef07a7ac77373999a8c66702ab970e927d7827f23569319de6813b7ce4f281ce6230b78758d8f40b1798c16b81b08b0cab9bc428b9db4e0f7ce05b4448cfda0f86ea49fcbbc64683e617115bd2a77b138e597a3a3c2112da629dea33e01577c731d4565292e9531f27afa3cd5f34ee87bde77a8d395b251f828688ba4bfee7a278ca47a3b1fa1bb0801c4edcea6cfddf3ebdb54f7f86ee04c769c3ee5a1af821220775aa1d710567eb8f5eb9bc859428be2adf4d3b15e33878db4af91a3352f1ab3deb99afcec144bd581a7421accb999e2e07a7db1d58075683b4e9c6a1df076d4a37ab5504be94a0aeb9befbc5c28506cabf43088ddcf6fe345df9b40666ad3f9d371b701e4a067160501ade5fb513119c29d91cea6233cda84a00e64419d8422f00e9ada659d2a3ca0012028a0b1da824eaf56cb4208d769a93fc346136ff6dc3515dc39f1a96be2fb81fc51c139d49f45455b0387e77c4df82c9aa60526bcab18f23209b163015d577364ce19dccc1adda7692c67f62296af3815432995fa87eae8297acba443292cec3b6693e580b5b757e3f9b905d4394183dcee753d5f33ea83128fdac645a9b5550a2412e163d88d04b326ebe7ac61d0e01a94d1bf7b5a1d0cd418cf7554031c8dbc874eca983d83735c5472c99ac4b4ce4350e6d31023666504cc97b908cf8d852ebc339b16dcc5faffdd2d1b021c4733e6a9c80f75d7f2b09990337101d522d2322da98b4686d59887d60b052ca1e01bd76ee881730fa8b012a1c239b74d71ebb8bec23225ebe3fd3adfe6f09b6f7366653003ea06fe0ab671622d4713990efc481912382a0f8c080dfa73b28b82b9b2545b8fce8ac4185c51321ebd0401a9588e6649d0b190e1601480fd6471c4b4c2e17850f72b9e81de177c2fb9058ae4c0d13f59c22c5666b485c703810e07a2b90e05b3224ee286f59bfe59fc8016a1434dda2aae7f11b364083c127c73d71f85b52fdcbf76f59796eadb974a67e81219f101c0cd734009baa7a8bbbeb39897c37648eca284f063890afa16bb556d97afe0b9f5e2b995fd2767a936a27220192684821976434a4bffc4d1cb87fbe57239a0e82579c565824f06e753233a990b2e216258af209262059a978196f54a3bcaf375b13f0455af40e410a096b020f032046cd22be7ca88337d2845e2da2389dcba5f093c8e45b5e5f54c2aa08c4766080416576d6516dc19ed8cbf4694b1905414f4a249e754530d13e96239b1716169118139b4ac9372372b17321442b7f3e007ebe031742c0d71603171e1f19f92368b1490a41addea0e659fac700a8d9d06bc8b384d576cbf1e6439e179e23ba2b45646b42181647bc455f878a66ba255a26cbc09b68680928c1ac6b6ed50e55c3a47a240efc690aa5a18b30cd5b265500a5b405095a75d626cbc742813f2d2bd9efc5f7d44c13bc4168772333d92acac92ba6e6a14c994838d5b4c01840751de368b344037c7c654a9a2b5c603028b5004f9376695ae9df52355432759bf17b7e90c478578ab33745d587dbfa7d960e234235dacc518511be34ec5a087afbde203b8da3a9d5dfcc03e3c8bc18bf36e97d182e0dd53aa1e72ae908f6ccdc3ce8f760e34a98dfb585ebffb211cf7c8ccdb3566f120caac6007e1d753cf3e0e3ae1bf11c5393997e62e9a84598363ed991a89a28c3b0709167c4b3e8395112b174d8e74cb3c7a5b7b5976791ffbb064ae1f4f68a27a30d5144f03af3fa5b41e14b080fe2090448d1c287f4d3d12f00224741df08135cdfa1e54409fb2f6bc7073dede047201bc66ac74368298a350adb1d922dfa76a0a908325a4c48c2942e838a875b55ba589cdf56a712fd2ffcf90e2ad92689dcd82bab0644db5c8e32b2350957732a37debd1431686a0789f5d3c29661c10bfc40a6ec2272787eb389b1818669b678f0cb4afa1ac610ffcb8010cc0f2b64b5f5de43aeaef0205d450e02b4bdd94cc47c6477f981d8556cfe77e12b8987572ff8fa4d698d297300231ae02a34cdd374c8d001d93db26791cedc04780540527f81b439e4491a983c6071692e7a915efa82d3175d7cb904ae4c80b3701a56ef469aaf144c33441d6b00dd61325513bb468e47d3fdf1f79718420f2850c04c0a7a8485d955e6121e57da7b5b8c9b705535309c00ce9fd0aa8a4239183e1f473b765a2b51646124863cc5a393e41b39bd6e261f66ed238c3a8adc5bbcf567fd42abe68396008ca25caf4281e7eb528910bc1292e8718722177566290cb728b5297f219486e00ae25c223d070379b1cbc31735a72a175f1040416a2e5a69537d86d1364b30b42dbe45aa2ada5804c6ff891b9a406d2ef5a622deeaa719f0e2ff1590953a4c9b246372de2d82f007e458d9c4dd1454b7f0a7bbe87bd08414f73fc20a3fa3afe71dada26bf54512093d3fa45c8a660020a8be8ae57236756c20e2bd9638ae22017dc6cc236d423e40758ccd85f87105e6e68f17fc8ee137005ca53eec5e62d1888a5d1e03ecf52c72f6128a1393ea257e816026d9eab7b8822979e6e4d3ca7d603659a90617610a974ed219bb8c071524b7187999d52ba129afb43bcf0afb5d7704001c0888d510981d8a1ac1420ae88159486c549573f956965442cb53f56612cf721f2e2e6969295400287b686832b81be48df362b3d691f0083a0255b4674b7cad2ab2e34d312d6d3322fb66e45f7275630cf85b6230e1475026331aa24118ef0877a4b5c48ca051ca6aa0df3c21f673e513d273a22cf139764db390a67969062d9ffbdea4c898010e1d84a18fbe20375a28fb086b1f90f69377741ecfb50d4cdcd2f292ba596fe5c5c113ba0e46dd4d854efa804c07e42b002e730b8486ebea45da9e4f5f4fc527afcf05cfa928ed21cf121d63076c921bd191776ec7b881037aed4a954b37beab1c32360ad18bbe2e1c11a6b000bb9590b20b6057738cfcd5eb0588204a3f4fc1d831cb550d4064b2ddfb150ee8ce95459fa3361050407008e5b3176ac43380b3754acdd8da8d8c4f474d864647367242ac13ce57724ab33bd822dffdc7607008152fddc28d405cef33ca9986df47421e3269d3a8f44a96c594df2182393c2c21c2a7a13ec388977a0e8195d39070f07afd812079f957865e361c9abb7fcee4680db27ebc2da76f7bf785a5d4b6ee17718db3e8ed6a3001edc00ab36bd96e27f1f34ce3bc21e6fa83cf4f543f2ca9519a918477a47c0cead2e6c6feb0ceeb412ba1bb32328cafe3a49becb488401c5fa6e7edc7873276948737904403f2f602dbaa8c8b847cb29cbf92e8ca105b83de761d4b5cda24cc79b89b050f7d6758cebbdb26d2050abee65872c1c44c34b81c28a7e246db610936670df3deebe3b3eb522c78f940b6eeb16d3f6bc968cc2bb0451634e901c2943ebc3163c67a81002b3d838d310e5ba881ed830afcefccf909f77825736d7a124614a7ddc0353990b88f1583aa58f2cbde201aca960e1ca1c9b8ddde932cc5bc5d051c38e5861b876ea7338343e02650e1b604b8ceee67420db0efb3ebd2daa5d916880160e577ef46df0957c66708e92de6f92bf720dbf9d0f24dee86c784cf52d829827d2fe5788e17335c9634dc5d3296bb810747b10430a6a5841d868d627662902af3cba5b85090bd0308e5708e82de033ce1b06819bda6228526ed24827cc8fb61c5b1026588ce4923ccb739906ab80cafe527c4935afe14a1398c54938c350478ea7bf41e10fb65e7549b5c2d7d58cf616dd3c7794ae103457ad3921b3edae534faf54c5fd9e6d68ddf0f3e4b41b221a8af34d08924fe3833ce88974795a2fd801d369b9db7b7ad53a2f8370ed11ce787acee7c43025faadff46c721d22836fc53a6e1d3b70cd20a30bf2a07f696ca1d798bab37bae6dd94b137d5332bf06a8e186447ba56e03987ab91b7f1750dbd911e099a4a69b42282f6d01cdbee7bd97ace855f37cb7c04eb2328421369ba2bae7936b6b72bcf5014d35ad97705f008e3bde60626f207197bf7573501c2124a451d225c8c6b077b81c5eb82076c2ae7967ad752c3d177d42d388b3d31607d86e82473ad1d78cee801a50873080652cb6bde701d7652b0a19e69809181ee6d05a41522805a843dfd3812318b1e9d5bae0369ecbec7515882f2e42043cd333d3f46aef3e4c85b4ae63ba797c891388c7bb2420b1c0200801c8a451cb06d97a3f5da7bd1fb7642da1e52805757dd168f2f588e36e20abde34e1e9fcb466895405933a73620626528d7c331da979dc7afe18af33eff5843c7afbfd0442ec3d0e5da81384de5df609f4bdf659c7f66e29646d5f148376a17d3925b55fc00f632f3184f966786848c01f38cb6e1c02fb3a9825c6c6fe171cfa031ecf3e656072da1b4680fd626fa937870c8d35138b56e6532e279f20c7abc4807f33d34a26443ccc8d9e37cb8bbd79fd599229dc5b2e450ddd45229fb408e99c2ec7aa598e53733b7bb42d281d40dfab01d20961db416cee17b9d0fa4a97bc8ec17d2e5800bcc7752c8ae8a6ef3539188a007bb6515f24946e1d2f1016489194f534e0355a0cc6f490882fdcb896c2cdaa2b719220c814406527ae1bb4af44bb98745cd0b5982ff28bb36bb5a103f873002990fa2540e922249670dc3f4a89f46dd397c62f20e2509887292095dd9324908ddc50245f3e777994d501c603f47abfda16be925a2fe4c9db91100560722bb5a9b9303befb010b72c0cc6189d7160f8abd578d508011d6c0ae87a3d19d7f13541f3e50037159bf5c8286604edf6f442ea096ec0168eb253eaf5410b39c30a2e04bb8dd4144a10762046821569055fb539f4208d0feef2192659f1734abd03277892ae29455a87cc921a836e15188e1fb8713dd24e12568449929ccb4b8608d09b3c7f6e8b1c73e1d05e59efe19c082c84d760235fd4131084cbe1f04ee4053769a0f972dfe3718e4d8464d97277a4c441b21a6a0cc502980d54cde0c204071417d4b16ebba638fa048662e4e08bd6d9c40bec96f184df22388571c28b51124839b63d9f0c949ff6c3fed24c4edb5555ccbed5af1c8aecc1952b30261df1560988de8b62ef2e217de28ea80a712b597a66b022aa12688c58f6d4769455b10ae6df45e82e9edbd034c4ddff5001df88df4a9d210b30c6ff9fc5f38dd5dd4c9c98281f069829825806344f2ac8b22325eb313405491a3d39009defd89e9c6c974f46d4f9c687fcc0c10470005e972d266604aba4c13b8dacd46bfce08c5662f5b0324e502e700addaa36fb237f4765832211ab8ff3adc3a4b4d00bcb0fad674870c4453c643a88e9969fae768124061ac95c2f81f647a7e50f7b249ff621d240153bf9bd40dceb873c62df9a35d32af42e254414a9b3a332f3408e8c811f620805b8c8265df26f000558ff1c8c52b51f1dd1b7ec194a3fbb8d4a3476802bff922677957446926381e7151da44185e4d374a3d7c910515a07fb573a3a8f9a42efce8a29ed22bf6d735bd5b7452b075edd79ab4524514944999ea9d6a027a3cee93c050e51eaa2a06c20c4adc83da7f11e416478aeeeb1bc4e22ea795b81ce195a982dcf4329a5a0026857ecbcbe3b65b008b2d3a341681b61d145729bd23c22f330f091a46a0b380c72468de105c13d7e6daea26090340c8c78f838ca4d154a2d02dc1471974f36e3d18d98a1333d059ddc60d6d86ac8b300f7c4e16bccab86c6560bf1c04142e1949b80c7243dc60cd68fbadb110548fc81ac943abc4befb33314e6f66f52cce6709b86b68157c66d9f4a28d4ae3e4b08bedf9e3625d3ca683386b71f263d5fe0a26b07d518795518028e84c107cff0156780de7245af19ee30bcca1e34cd34c5d5fde9b9a2c443e59b24bf9b543c3e9390f1b05a47288dd1a8beadab6c53fcc95de41736f3910fdba79080dc76c779de824738b40e88c0a8515f6e3493b544d4526a2451fe47b3f6f8543848185696918f6a372f97d0c4cea59360d41a84ad7c92680793e35bec91ae630d57d7a62128bdc79c82844535cc6ad370f3dba3332d3c5ec388204399faa4fdde3c41efdc4f30f09502206a7d4736959841bd68dc71fd4baf97e6b3b2d0602c0f78c58bb4f69f7273eff8fa59868c174d84f71204f186e4530aad987ebc5327b60bffe9ec1de5565f505d230d6caddc213962100fd2060616a712dac98215bd3aac9c2c449c49af7e44454ad24081b3c5879375aed6da3635ff5ac6def1088b75144732ed7a3037f3176e0f466eedf032e80dfcebe5a8e4f46213f0055b126141f1cd4c1009b9cfd9016a7171d0e74fdbdc8747463bfa4031d5dae58ec79ca46c81199dfe66b40d7a644d6d539d51e00d10d1e2a4b971a354321e09a27dcae6d3b2842448bb1a1711dc0c835b4fd6e613d370e13bc424340d9e24179a08b0cf68a682f9fa3b581bb7a15dc245a3b34291231752182fbdeeaf0ad701b5964612437b483291b8e5031ae8a7139ee1e9fd95ea02b5016b185c5930cc14fb59a6557f3d9656b87841a9c73d2631e41bbd626e98b474d7c05bf6cb2bbb8d947bb3c7d0a52e2433f24d5cf8cb4c1c25c291031630fb7d24cf9f67ea31619d7bb6ece7128151c8ea8dfe20532cde6bc7b94609dc15a6c6b14f438cbccf54048bd6bfd43adc4711066f2b12eefe784e67e74e04f412891660db4e4f360fbe2c49c037f166e74fc8a6b591277c7ecd498fdc3ce5628ba49899c440d74bb215abd00f6c990b05ee4f66895e350329876195cd02abd3072ecca6abc21ff45e4d1d7de028774edc2d51a1058185a88810f5f510f03b67a62268d03b0129d2231896ecd5f7be7f2c141cea791b0669035ff18098d1a824323f2af55336fd88dfae17afaad8fc62cd392b2a35d13f74c0f0c3bd413ede5f563a350c8d2ebac46d9ce49e8639c4fcc70ffc90734b9bc251489959ed79b6be7bb4318700612e34d4d88c7148ca13a1ae03db2f90736be5c922a05c622c27d67f9b6f55c1f91cc56932a36b740a8781ed3466c6179db00e1d5890edba24898d06a3c8d5653b395b924a8dad5b95195938cd2d84e5e27fa6674d44c71414b53931f12797c4090d90bb50b11fc6370d985988e0c476a135f9420c5d912f9137e4eeb3893794e3482684ceb560d3e372caa872231ef913d1291b8f6416a956a2bd10ea9c424c5b89e471183f5f8a9622db77643de0dd76599497e83fa8995841e455775d8e82bade94975f89d91040b206d420a0c9cec19359bb6f8b42b9fc39989278ae3d7e776e0deb6ee6c02919909a4ed89da247308cc15884ccfadb0698b1cde69a521025106363c97bd2523f9f05739982eb0957d5e75e8aca63897a54637666ed9631ec5854cbe97655f2b033c28dc6c76a2cd1ed651ade8118b271ecaf34896a1ef3222c344a06c0425c8d52dd20edb8344be1620ddea44beb80a39e66a6203fbd1d6bca57f503fd98dff73322a2078832fe09163803cd1410b1485f60ea3bae971f7f7001b0614aa7f90f838f619a382abaf7c0822da6857e2efb4ee4459ee2b71998f88821e1739a5e2960c8cfeead96ca798531089181c8061a47179090b23d1bccd40dfa7abda93d09281c9306a297e292ab0795a5ab069d1bd246769c1590c032c768da33028e009fe37895f443445e076b2c4e83472a3eda0a431245ad1115c397aa9e826651531a1066fc64e0fe7e80d2494913a7b7e1af0745ebae39c77e30e217b3481cb4e0f80d88f44b1b64870a1bbb920484b56375fd2d58a42016a5c3f26d6bac4939456c0945224b9663115f8a9bda32d189b5d0004325c85647155e9f8369686300d6fe49388e9d901e94608959232c6607842b82aaba4183ac9b1fad93876d2219c2a293f9658835eb7134e8483cdea2b6f64ac7e047439a10c2919e32ee37a00dd8152c4a9bb38d8a93b3afa6802b1debd8c1db9e8e646c1e6c225e53f99d9b3d904aca0ade3376fd9fb4ed7e8b716356ddb8f0906e3d7832033a41b07a895c2f49e18e5086f8c3caff827281a920850f2d130d967df6b11ca699b83f3b4a794718d1b4812b60f670a36ad084c675a19715205c6d9e4534e08a1bb529946afe6332db92c1c2da84cb46f0b148f27c24ad7355df3004eb080ab245484bd63288b4f45194954b390d21364065818988638b0387e40711775c62052b8158d55cc04e40f783bd901159356dce33c03776baeef32d84d44e0191a6d0de1f27694bb70498694bf83fab9cafafd570342026c09574fda25d4e14a38d3de76ed27f794677c44d89378b2063e56a5f94c49d080e0a880e50a5df8b56753d9740194c8d86bd98c6731300ad0d441d08407aea4d39d541d8a6c2acc2442427a8b481f1eb7d8f62f3022b1cc5b5ca82f385161d32cd192984dcd2ddb460003c0272c1c3a1a3ad2d7a1bf0d279f6198d21a8ce889d0778867b56e0749369abf441344e1d81f59be1a88ff6610a757deed061e524fb6720b90eac453de73abb525c9ecb1cadd4f1dacfcb097e6654a56c1624b48e51b5bbd5221e1080795ab84b6e248d7f1e3013b2793f7138d479bd49e9916d388354d1838dd7e2aba8e6576483d1f6df894bb62db5afe3525a9b6722b01dd1a2963995245046b1df8f4ee0297d051a4ee9361d7a4f139154a92aef26cc0f149e38bc366c64e743e733f3b5028fecdd72299a92e74bfc341f17a2e955365657b4ab4d658441dd55f84fda0ad73f4a913c37e5461014038ebabe42230f5a4b576f6579458db46ba4e90d422a8966aec45b15a86bed4a1286a1eb4f0aa22dd354d097ddf8e477188ddff4537efa28b842872b279b987aa7658f1b007d570ab1359e2503dda199158148c50340764e020385e55448b35ae0f662b4bc86acd10c1fdaf13ee952d5594080c1cd73d3e94b9eb848f6772ae0fb8446431865832727ff775c6dce9014bf79ac8074fcea82768bc5be04473e828a91c31ecaa9b2e81278f7a09247a80117b63e4004689b4d526e7be17f5d244b7923a4f8f3f713a850f7d6d3fb7904d5996c0560713c5ce58a65f76410481e5008a3b4013149864ba2967bae630b88610c5c6f4c891e5089dd7f73b2a58e7316706c5696938eba65871b07f1285248076d5d9c3cb512fb7fe49c785b9cf5118a7077580cfcc671468488c03cb68900f784a746910072022d67617b1dc3b8964851beb6dc2530c80747b7ba4f6a80ad5977abe350b193c8f7177cc0a40b0198b27b8d86a996eeab8edb8040a3b58252ff156bc826800fc6ab0224f1c81440895efed5148944c07c945aca865e7f3a80340883878758830ae7d72b59327defe294278616c4b919b88c5e7eeebd8bd6d0509affd48b83985fbe0265be456557197daca1e1d2a3fe0a033afa1d018c850b522d8067123ae9c5d083b5a0ac469ef687fc249544e24d748ab508daff3f074a30827bb694820af853f0816d76473f730733bf088070782f99d46dd938ca897290ad7e35078277208d2a44fdc686451293bc8d5d606784d954780eb44a0d02a86cf979583db73dc08ac3117587ec40c5d9c6ff51a092137070e826b480a7a1a3363857812496dc94387038a22e90e98f70e0c3878c0b007023cda36e2cf03bb9707aa4ed71b08c66006ebb1e40971903080ff90943ea8bdddc1c7001d5c7dd72fc3dc922c19b94943c80c8344ca00aefca14a6d327b0cb16ab903867bbf3ae67eb952304013c72f12c57d035dc5fd653206b9e40540b5c4b718345310d40c696ca1b023b3cdcdec6149257cee1e116865e0e7aef98492e8a6e82b6b22c28ed0a98541e18512a5a0a8500c454a4d7d760841e66fcc54145180c3aafa08f2e912b809c2b80d2d263d004419f8f1fad5e038bfb05ea1323f2146abc037e8adfe133bb1d06261302ee68599317bc83d30fd0b7612208f5c798ca94f00b0e0136951c1505a34f2aae5be9fb687de715575206c03366ccad3c67cda76fd64c4ef4b554897b10c98906dfb54c05d8d706d4dfd50a6bb11a88787510ead40d2d46eb7aa131425c02719366f0b3e0ea72ea0117892bb38e891aa7cef30902d09bfdbdcb8315dc7cac6f53319dc2c709f86f27846a12860d2f7ef20e9f747209066819ce2616848334556f60a59b98aa0212073ae8cef17087e5a4574548fea56900ac470f6f6584462b7c6288167f55e75378702d7323dc0098a1acebc0289fe3b636bf40a5589749445e2111e9231d850eda0bb3fedad31baefd4a5be0a52caefd4b926edfad88e7756d91c9d17fcdc3febd09df8938aa85c7aa73f297b9a8776ca5c6bec93f991626aee9ebe227db78c8972254b807094bb7b80423843dbaf7edc81301cc14400943da6d148da4148260d4a941b1196632e2b0d738837a9dbe8af36e13f8434464b3b625a926183339eb0fb10b8fc3187d03ec48cb48dc63112984fa9d6a8df2d7bd7c2a4914abb2aa9625f311f8e92a5427d0eb4392875e420bdf4f9f6f355a2b53a8acdec346d67948e906dc9c759bee3a6056806629b1df60d4c1b95be30489b66d2a201fa1696a5c4169c71c63193f26da6278340d928d380d739ae9f37509e3e5c087c411b64f0327fe4be62ce0f9d6323086f31e19513d6374494f8fd136b015ded1a69a59264b8b1845c723fbf0783122b40127ac3e148ecadc06de4aa6d391cced588cb60a3db1b872372f99c6da06d98a94d05676ffaacad59814264b96297f876695b085316da1137fa40bdaf37acd846d7945ec6e667ad67cf5921269fb89d1493aa9ec9f1c66584a908a03b7000bab0028026817119842b7dcd70d8ed32f02106001b7e1880b6c1c1007c51fabbddb270dd3a79fb97657597ae1e6a500bdc5ec4c8ad39589f27d343915bc238ca11c8f69e369c8e9f92d0941cd64a977c6ff38f307deacb4991cf17947c8b55193698c1f1a199dc22e186bb91d2d25c9459a03ea621bd1d31c6950161b023c32cd3bd11f8235e1463f2702fc0e00bcdbdb361c6845dfb8f6e89c991226e41d12aeecd86a60fb971d9fc57b4c5a5415257cfb677e0d47ace3f12458aa44f3d1871c936489658625044dc375d86f98c0f08dbcb7d275f52c75c16a00ef19e4560c339d4e64fb74bf6ff8e92a60cb52c7421eec975368f1a3a3abfd40b00333133e5048b89c403cd780f265f816731ebdec1c959c484fc79bac37cc58f28d07328d351407fae051d765113edaf60d147bd9a8a1a9f43e662a17427a4ffcd3fdc942c8a324472bea4c3cfd3e6b8af7085d14b56902d9e9c0bfc8baf0b0d7877fad178fe2828e85a7ce5c7005aaf4433e8c27cff05675d5ed56c431bdcf64736b35760fdeffd176eeeedf9708ce1932ea88b3eb3df486605f5da3a37d40341a716531a75b98b8c15da97bf729024c8beae373a58bdcb2f0ff66c202ef5a85e8e1d548130c79a00d9e4e1b5b823cf181c6b55fcb94b569be477ff57c69f36f5c45dcdd121104c12c320fb863cbccc178eb2fcf9e7de88a588d819f143fc899b003f07ad06316728649024d6fb2d20982fac8eae314209301898bade65b5f64263241df98f34e40a26c8b4de1ec4a4215a03a92ce49a44708880fa0d7165fe1ca47100ee52ba009d992182c1ede62a3a22881e6620495700015bdf1d3a3f911844a7239a280241b441c52df96b89d9aa850889b4235a97dff5fb1ff38e41146979f4cce975e1d48a71f8bfd004cee8599d39195e4ebcc2df8a3ba1f0a9ed019f6a6e9c7b20bee73e70655f43164f012d13f452f7c6c819a4010d36bfb8711e241c05baeee036405881a54be8bbf019f0f65cbf05845cc6ad07d7f71168247bad56c3d2162dcf88f01ba269d4ff8dbd560966e7a2282df5742544b79d0c9155326f163ca89afec3f6e86b18f55ad48a02e2e8e54fe8c90e8c7806a7f614ee3a4e73fa3a37f7f1d7a3798b5df46cb869e85399c43c7d763dded14e130ea1672e8fc02e0f71408b0533fa7c4ea81cd417bd46124b8e7a91d0478d431bf950db6804313ab1be18395d218f7af332e243fa8ab3315b6f86afa6f101bfa4843d9749eecc1597ea7db800e639d7d90aa6456081ca45eab1509040c1fcaf195d89f33b949d40c3f265bf3ce3cf7d957a4dd208a798f63c5759ff744d766d9c69122682f8c07e45d3c2c728dc1401c2933cad3a69fc0e75e56044102e3e098b4691a995637e4344a10c4cb7a1663161da2861395b4cfcf2e36d4ede5030ec36ba703da8201bd93f067a1180eff2574f6afb306d1755db964807886a34c25e5b48fe0e5fcd744963c0b66bccf479d7e965e4fceb2553e4aa05cd6d26d3017733ad6e766508ad313ed1981e45330fa0b3b70a8f70b31ddb6deb15719f860c6f4c90653eb4eee8f8065b73bdc70e10e14e60fe462c214ac85af9f60e900ad70e10a89a2ca1b9438c5ecbfaeca0898e7e8ce5c581dda9ff9cf6bcc5de8f11b4f9f27249a874adf6cdbf5d687e77a01d0038fc7274322cf90469a91316f0dcaf0b9e19540c060bf6a96ffd6127ba4c7440f2d4e32581070360fb4ea5a3d4cb0066d2ca31b7112f18fd32111a5b0ab600fc171fc0a3bf8e048a9a865d61e67a8ce1167d182472b9ef99424f6b0ad007747a1cae5d94bd8f44758a6ebb3046272621b2f9ae894adf0ed458d09af395c58c9730f428000897fcba520bd50ae2bd6f341cd5e32ebf7a0e21818e419d96bf3de2c1261406c246678b7d43bd6d6a8235cca04ec61c98d68b21c4b6852765d2a6852c17d8963c0d49c32318a518644463bed048a491584cf46a6faa21267ae150122bda7fa070f3587f4158e5714017c1151883b7186278385a5a76c48042ecffdcb2361c454ed163adb55183b52c8ccb4cc23fe05a067d6de73d5e8863038dc72a62be3e46a00f14ffda0881cb2e93685bb80b9744a3894b242551664a5e9cd31153502f3b8439a73134c8de46f1c36c2ed5a6754c0d875f4f15c72d38da812f9a528fbd0a16a94dbe214f147e87edf9b3aa94afb840d011f47fb2444c60e675f91096fc00d7021bffffe3f66985dde6d247e288afdb2c989343a8e4f8e126be960f30dd4606a8f80d50c44a10afc91d8c25bdb06f60af4f991eac698f67aedae0b043c11ade3f02431de9f9c801b8775fde41f28b39634d8bb9572543ee45c9d3fa722f2788fb9cc64e6db5d19904e723afa51e6cd7db2f86bcd303738bd08cbccc55f0926b4365406519c8619aaeff0294b68d52d748482c72fe6c5ecc2d2de8b390536b00477701535b97326a721966ee047b2c119c319936d4f145e2a21b13b6ac84813b9693026caf8bf277f856a8aa0d23d187cd65864a5020089ad8340ae1f152420c1782269798b675ef9bc8863da0208d6cb6e8ad5d08aab56806839ae2d57828b794d2d925a001ac4b11af02e4c45ecc552a8f6e5888083fd87a0f35747f2dbbfdf8690ec2186b3ef3354ee9312908e2ac9a65a6cfaa60f37de3f9c0915c94a0e7e3cb15438454592433f049218937c3cfa1598bf633c01472a373b96ce2977c8e7e9389161b7680549e41003782ddfb856c9962f66fad75797cf340f263fc0d8226eec440f2b2f46a68c964503fa038060887273e2b5964c4c867e59ea1ecec2ad4c912a7578ec6b3cce5eebd3bb15e8b9f991e36d4551c2417c70dd85f48c4c124a60ffe10f6a70887fee289b21073f88821837ad4116262e002c609407092cd79725628897924528e90709961cd01eb81d77773d6d5c06704f88ed2eea5ee6960f667993e7498e42f4c61c51545d663f7eb36e283f5e02ab0fc6871f4cff867a10ac5994fe7814d5035805f3ae4b61f0520a125fcf55c76834a8cc3c106f668cb0b9f6e13ace8871f249e819220588461a60748d6ffde284d015c874843771710446738f370644e16691c5a275581d949b25dde575fa33dffdab7d84f2066991b1f340abf3ccb5cdff848e799b15d2ddd32ff11962e94019dce5d5354b6052ba34fc8e458f9ad8539b6636dab8859ff32988537a46c1f8494fc17224647da507716a6a28d33e2054c9313da42e06208e2ff0aedf37fd103bfe20d6a188f9a42521e094e784be0b97695f9155992029ab7c3f666a2bf66cbc1e7d67a0dfd2538dec3b254378b333a03f384e3bc1eb167e7774cb81a0356c93e664587079eb2df28716e64acb412703e0d8abc6b7fdb535efc3875243f0a5fca2dc8172c728c18956c368c15af5c9a6f549717310706cb5b86111d3125bfe524425d0df92e4649436ce8610553f3ac871c38492df453c8cd9209e3073f50081e288201811f8424a3e5af625124e82587bcdf17a2f0c8a80185e882a572a1a6371a54c822f02e7e8dd4bf31ca132ac067d050ee59f93a139c1e848ab0cfbd4a9f4bc2cd861e52f9dd01bfc5b9114a5fac22f8b320f207b230de0b83f53e07b87ef67e96b0fb129b85a26231e83d85b0d6d341bf798b1a12a1d7bda88f555062f4fa5f9865140518d5c7ce606fd4b1b7fd3c186c03815a7adc436b00df54724750d40246c558863ec5ef91eaa53175343f74e27b212744f1f7091af063c76b367d6dd52349b3155559cceffc506c51ae888a59e7383e4505eadc8c287b8a90b709e26318f23e08f28e4f8f0c1035a48f91e98b724aed6679e6372c54c226f6abfcd6e9971b0ed1f3d309bea5f311545fee3bfe09d59cc395427b02ade9cbc6a213acd6beb2bc94b3cd36dbec33b638390c8a07ba11002585afcf13b55d8de881b3fe86882c5a288f086b062605cfa3c308987c139e567bf26a492c4851ffc93bd7e9044454dc42ee92d853e23633f9de2974f7443ec4f240ac1b90ef8c0b3ce0fe7f6b01b7e5db662ecb8b413dcfd4715b08c2ada7f8db45f885e3306868fe489ff26ebea1b79cf158f8c2c2d2ce36d3d9b398e14ccadb9032083a7f68e3872d465991b57311ddb631fab97ec7a77bf564d1729bda6d347efb460d159b206d2f3c9924de228955179ea36fbf4283c3a7edb8b458bd8532bee74a5c4665b94297840dbae25ceb1e4e1420fb4b263db4cec0e11f213bb2af13a3d53ca31a8a2372d4c668f782d3177beb289cfd2e3b6ee39d5ee6861ca9fc6cd97730449a8a2abe09e9fe8227476f6d2d4cd53dde3c83cca6c264f1846b7208b76cdea7bf6f42cd416a87ef61cff1b43493b199f7c0c04e19026e3cfc889972b2e58252fab0d5ae78f35c4715982cd614ea4cbf80baca4c6f16a86607ec12ee2e509b92339db3ac69d76ccdbb9502284ad5855f0c40c60ea4b1708daa53ab2dce1350a181a234b04081d40b5bfa060dcafdc45a2e550e33cdbff3799fc0ee35c8a89ccda0ea134832a18ab427a34d93cc431f93e7337d255597d7d710e1cba6630231a081a543403e5c73a300776fcca85ddf4a55be2b5a920a9425956cf04828349847a15fa8a12b7f78795e6b921eae9fca00242af27060bdf1456f7d383abaad85e4cb0db80ae206427d6f88e0263cad27b9805a304cbc925b020a0fed33f341df0fcfb3ee59106006f74dc164a9f80df78012dc6f0c34a3a932e5d7ca9833e86652195e202cd65ced84076729588be0dbe43a55cf77eb4054aeeb09701dce436e0e682ba95545460c1903245ec1cfd321efaca98e8cc5f27cd7ca34c9f781a48f6378452a5cb17e3c4f4191ac329a4199c1d67519ea255d7f5aff5141ca3aca8d280c399fd30ff751823c6f44763646c4200c1e083b091da7a67e9c514566eb02c0772ad402c7ad0c7f49c4b697be890bb20a241264ebabd300dfb340d89d7a8a84945b4568b6c2fe5f21d61f5df95a69316436f670fecde4093484db9bd90e5e85cbf9a02d4512a92afffeb7cce1c1ea22a8f256e87c5c06c218d166c0c30d06af34aecece1ab08e43e754b3de2932b1c595b3e3549072bd8f7e4bb249490c4d033f3bf19eb130feda39b44882ab31996a77a6776ddf645b6af2409d5340b8331b060917d622564cf17a0d7444c913f2d434a03987578b62ea9dd38e7ac20d79491a3fa726077b3a70f330a9d76005982db370cb27b818a8f21cc5968f5cfc1b2714b3b2fe71730478475d55c1e7c128d191d060058e5e24ed2873261f8cdc4c03ee88de299c5027c66784470f30f44d50f021f86170dfa7207057f55b57113e1a4bf09056fcfd866b6f67d39cf6e18f3d5ef4ed1cbe890477b91bea9c7775221b130cca2df48c0d394d7762272660df433e656875fe927be677167fbe82bac7220f747c7c24beef07b02f93ea411302e448c176f407e65dc4a40ec334891f9b3cb96b16ae61bb0a64d52b359ed546712081f5f9c9c3c9f06e11405b40da9380ebc900511184c38f280fb10b57035eb7c4bc07598013b805a4d13661c14c5c5a801c06557876a89596d5ff588c57b7ef230d8b58196a27f881d8b28418e7a5a61455f39b75b9896c5066ddef82856155b9fddfe1e5ebb156129fcb4df838cade301d73115e068aeac04bb63254ff2e8367e0ca160654f02a2a6477060ad15f6bc87b1d9823a97d103302317b2e8997f147c633a337c3d4ca2e9509ead0f097709890a2df0ea9e2de2eb5012e989e7fe700bdeaab96320df63542ea39e959e0c8921461adf5be8d8b9899459086b90ca6215574994de68247723022f84d887e51038f2a79635140b35393f5e40b2b20d21efebc5e9c7e2563c595cc599829202e95ab9f3ee469d51f9cf120461ba28dca06227b217248b043c00af3a5f9d8cfdf2c07b546fe1e4cd8589b939b39ce6e40a84ec5d0ae09e4e9ce0262f8bed37e26d33cd39d1c04bcdd8922cf970b62bf0578013b9e69f6e7aa8290dee2702d27a267f932e53076c68eda3e0f2051d88b9b1f755b0bec88cbc6bd0c334fa8a387d54792e5b02b0dc8ec577be888423ea456609fbccd4e35908efa7114f33625404715768906012ee8a79a0f8be89c1c490409663df32cf6e94b11c06831f5140eb7a010990d1951df883800b97224fe01afaaf1d00f4cb090e9788a75061d3bd017488ec70f289c7c087a57e8c0410d154095df2bb4e302e879a04b9872acf3877e01b3ce5368fb9c4390d91662655a5f1193ae066c6a4a3e4adb7f83760da01f821dbca6059a091833eba2eb17454816813eb1344bc41ccbf48fbb8e857d5ca9be2dba03078bb585a1805d04349ba746dd8c7cffdacc658dbf305f60cd18fe75c0d92d650242b0bd08b45f97f9ccbd46f00cad29b5bf7866035080e2bf500b716a2f994e6e4a2e5714e055b12c20011f0e9fbd0bf6470346b3046c1fe605b0eb90254675c9b0b08fcd08b6b0a9aa5a0239aded990c10b924e61b49eadd55ff50e0d4d421175d31dc88a52479d3ab603e5dadbc3ab9b109c73bc4f6b2de2e6ff8de606c2015ab205434ca091b46bd6c0456d573595185091b6bd1ebe44f19eb373d4ae54e127547365c70030a208dbd1c615509a7405ae3364c7abcc90aaeb9e1a6f5e7a1655164d529d6190a17f55b8ee198ec3ac03b9d6aa149fc88a527aad1e1859067eb125eb1087988b0bfe4d7826072be941f28fb7f46836bafdca0b1051026cdc972d0cb6a70e7279f04cf97ac5bfaf19f541341cddaeb73c6dafeb6812032a5ae3d87bbb4613ff18e5f65ed6c0bfcd9429d4208202d8f49e0a6370cfc295071e4b37d2767cc21e89207838c9b9d8497090cbec1507c8468dc14dcacbfb70a1e607c03c952d45735784b64e54eccf8e8662702446f3122d43ad075e81a61d2cd022045f9868efcb87e1341a8cade330311eb6178f65b0cd7595813e102101722b0270b2a29348c7e0bbbb0ef3cbf5caa03ba547d0aece59e12ebf2fa7c7ee56d83daa261382d1a4d2945dfba625e139ac139873c15acc64c3bbf18c47a5c2440238c09f3c7f41c605d84276e8f5b5e12ca7d891c552264a3498cdd7ae6119431ca4cec134427d11983dc2871bee8dcf42b8e6a99aeb9893bc639cd672d50f77b74d17ccbff26d075a9721bd5096430b25bb3242dc350d6fefb8b50e52660d1c78dd37193df208c9bf6861e6355dcb4482cfce8c144dce4dd70d3feeba794ee300537991eb8a9a84377ba7b8cdea6af972c95f2367de775ee77fb5392a109b7497486dba67b5fbdb46d6ac55d34bffaba2de85da04e41db546e66519d62b669dd44a9060aa491ba714583fd1963e35e89770e2a0d8866e0f515788c0511dbb45765a42bf035eee258d1fe66fc216b09af4deb75ae4d57851ef5c4370d61b8888e05426b537b4d606d5a0f84d5a6eb6da4dab4243666cb66d8fde23a885e68e23a52ef38c2ed503dc5d141969cab51fc87c462cac9e14d29a77674267e6bcd1bdaf28c3a3453eba71a822d6e8a48f61d8c5ce1163868e47753a6e5ce293ec40f89beba0df20c3f6d784254ba02d9ba0dba8813d616bd6ffc54a1b6d800386e3609f0d6911140a825ec6f9441bc8c1babcf1a59080cb2b23afa8f1e81fc2673170c0adf6fc2612ba943500c46ee72ca27bc489862f0132bab73c8b68ca80743659860f78fd9f08241c6df41b4ddd93980b4c845816e2a1143c18d2eb6c5e800b41084c3b693fa6770a5686e24883bb095d9f0617ae32be09560da1666f6705f4ea8d8f75c3d577ecf0b6de79464546d4a61f4548260c0fc3551fc748b6cf570016c34032a80c27b5a405616a50305f48768813b4ef3aa5156a5e2337c1358f2cc9112ce77c0a385543b3d16d3859678af08deb7da49b063ba00d341a4201f197aa8d3184e66b900f8f08d6faefabaa2a5fb4e5549d78a5648237b932df796292599028e078f07d507de9dc6921fe4f875d6d11f140ae5839220c6f8752567fcbab62e5ff0c4afbb904af02b860a06673c945fd592172816bffd0328aac5ef3621bb9f7949fc017e5d65d455e6c4e5821f14ec60e502221c99b2a3c40e3e4ce951e207233b0052220546a6e0b89060b021744f8a8d695008e193a140c2bcaa8450423645024005531c61f2854ce15575c4069a12497a551df1d1150a85ea013b12f418e62e18e68e6d1df6ba21e0ac8c22893952676574083b2bd3bdb349d2a05028222928a282a7646594497c2c0d272ba33fa5868214ace063bc2cb8bdaa54101479a07952cabfd72853a8c4bc5c15e3d7b51744a63153433d7496956c23bc52f3449f9d8487de3a7826202c03675f81a88730d56b3c747d683c549f5dc6436fe8edc5f3e6d912cdebd8d43d3f69fa67f390acc7c190ab67da16f22cb43d15c6bdd754ab85b61a3e412ddbde498553f770f7740fef63169aeda04b17483db5cfe699347a6a1e36fde059f53603cb40bfde75595a5031440a2b2da668e3e10b52f2b383329416543821ffb21e50cd96a6eacf4387618041f35ffc54283eba06dda10f1d48efccc0a676e83fd8e42c031dae1ec22f2447cb67f73cf497182fef9e2d5d8145d6a438d881de606c49552df879a840541ebace0e7ae82d05f66a761b0f1ff478599b8f1f9494a04307b225e841b6a43a80005b3490ec1aead5003af490ded0934c632211a2bfb749924b8e9ca3279130ddf1fe5d3ee3d3f8e366cb322443b7599a8b9b3a30f76bc3b8a9fd25c486b79943106d5b6239dc366665b65fae93d6695c553423ddf17cc55c64cb2f9021b7d96ce4bd8d4830a30ddb4422d7168d448e8ddc666311462e8a1247caed18a60839aaf2ec41b644da5c0a191df31e5bca9c1d862d859c3d7b3954be5de4d9d34623d10dcf443d90a21746a3d93fe2a6740888bc25c03490dae2abb5f88a7c406fb95220ba09b9a50249cab45ff6df67bda9e2c87abbe28f462397ba437f34f238dae40b234e6ed7deba43f307b48f5cb4d1d03ef2ac31bfe12af281790b372517c4e545dc6c0fc17b91b38c3691b728c3b415853c0be95b66d1382e6ed8d6f1a59d1d3edc5e9afb4162997dd71eedd9529b60581976d95c0f34a43fcb87fd3ce181ce1be0f589193cd6e5364bb22411a48fe668801edd664541843c74b67a62cfec96f74603bb10237c39660e3914070f799ed85b1e12424ed2878490df2b7ade304ce450e442e622e7cd5168f1494201859193b6b4bf6e03b3ee353d60588f614daf879f18d5af773ab6b48ec2a845453e1e8fc7e3797b7c3c5473ddd248fbd1c87b4b2c3e1a8db6a52247ae236f5972c3dff622fdb93e6f2f9273e1f1d09ffdfad847cb7b1268e13ec0725772a4edd466473dc816dd2cb9e14ff480961b2e9d657b69f1f72d0eb3ddbeb4b428211d0ac90ebd451060ff003fe109cfa26d723b7ecc12b75b1c48c8cd88f5cbd1fe36ebe5688f8ac3726ddb6610eda35bda58bf80712f0f7881aea717e8fd90f7e9f0206449828960229a208299e023a867cfd459565207cf74ad58a6674b16d01a68accaf8ede167fcb7bbcb127bb8053aaf8057558e95cf9ed649545230f9e584ecc3268c6c1789203da6b6c3d9cec876cc440819773828e47afb8c3a114912c8f1e5b3e31c9484fe68e8f8bab2ddcbd981443fe66ce96d171b8aa3b3181275d860b2a5795d893b5b9ab1c8b37344623d1ef3fdf6cbf17c39ebe57841521e71968b38db3d1e91c9cbc11e75b65b6e429c98b27cc6d4b3db6cd461f278e8b3f6789b4282687f79666d4ba25fd1a39135a5b60463929561cf1edcfa638a4d7d628f38110918d2f9c6eb131eb0f819799e596326e48cab5f3d2f9128653b8e603cbf5e96d8935dd98edbd88e21b01e519b7e2cb2a5e517dd40b6c79e2bcf7eb12145618b8f1faaacb6639f4ec8c93e6b43bfcfb32f177bd09033eaf43c7bd4e1a8f32aa5e258adfea1443f368a43434048f539f35dcc962c4b7dbbc7705ad02d9700a4c1f2de2e006ac829dfda60b43cb277ef06400df97cfb87b5395114d91886612c3ce68d45aca3f38561dcbc386eca6fc8b9caa8b7421e55552f004d8daabac793d4dceceef619999b72b9a832ea107e6ffdebb321d7afcbd057182cc1094408a1065758e185f64311af73008085f79a2db5f30fdda11c80df28bffe5ae879f61f355c01223f2c018c25786042c56965fdd4f1ec4ab3259f67464332cceb3fd5af95e351a57421c1608d757392846d2edb9991b29048c523d2180226595d4728c1481f0164f56084357644020a618295241752129d6601cefbee6e7f497058d924434998388279bb7333484c48ca168e5061bea21b4c927262bcb6d8ea4282912e49a47e4a8f5cc4d2e50aa5612f86615a1132f45d122896d17f0bb6c774332f00af2a9c25be5f552cd8e128d9d26cb73ab6db758f9163a4d952a4e19a2da9dbecf327ba81db0d67d966901b1ec3dbfb87e42579603c2534cfc9cb793c4ff5a43c1d25a5c9343a585028cc221667871b7bc61c99393247292564890e3b4003748d85c5339666699666e9569bb554758350130a5c8939d56e4a232e4e758ffc3a7122b390fd23cf58935948f823cf5a9359c8f723cfa026b390d78f3c0b6970d33487fe9a23738c9e458eccd16fb4b478d6b2cdf82dd26416925fbdd95f3a3aeb301328bfce3e5bd2376da87576b2257db20693e59d58afb644c62f1036fd609955e87f5c476494b2a5d92b55840281565b52e8d0a3b2e939fbac589d53af6a92796ca3c15cc796306f51130dcbac631e2586f913dd609179a53b5efbfc45859cedd364a849b68fee78df456820fcf6194724760289f9120bdb666c1f3659dc0be63ebc53939790c760f9f3e8efb4de3f6c7ac13c87cbd517e35e42dc049e5b1ec3cba109c6e5f0dcf21c9a442e868bd31c2cce0a096920f589131f5e426ec68bc8939f209e2427f8e1c4dcece24a871dd21c9d70c1824c62219f0e1a0ed02091c16b61bb90605e6ba6aa425996b1e8a6c5597433f20f64fc286431c618b90e79dcde87b897ccf71fb08f826fef331436ddcec533155160c8113b3b1c81082d9a84d18393aa0c0a1e37170e852db44d211f8adbc4e16f702e5b10ed5f46dec2c929b92deb85fd112773a276996b2644b435dff0d1bbcc57e4a33fe49a61ef490d48149eb5ca3466eeea39a361890e34a7269d8adae14604ba454308f8978c00bafec361c8097a6f73c8afc3ad874c4513e0a0eb96030a12198252e5e0a48af0b003ead4c390d39c79d655099e77d8978719089b9e172ac3eecd9df1eccb643cfbe33820a4de4ae404b9be1d3b36456adc559f91316b5f166cde5f9e4c6366ab6af036bc7f3e637a04c171e2a33b3607ca0219d901e37927d11ddbaa259868628934333333334f060ab28f1f330f1f6122580bdd34de1a59c65a50e13498ca8d2b725f554c54f9e7ca0224e895d32c387d92c1e40006073d40413d4054a8f8a0bd0c9602af32e4736e35d4db55f8141e8597126a86d96575642d8465da22d18dbaa68d0a82a3c884c969a8655956e7b04c3461d8d6485846af2baa3686157f222f6cbedcb22ccb820dbb68264342d8d3a825c928eadacc6d596c59accaaa7ced48891333804ff41b6265a21bd8f186f839880233a055a6b5c0283d056c12290a845c4499224a18ddce517a8730bb5811f47b55f9a077fd688f97c41994ed36ebf16165aa1f190fcb50d96e812e20dd8185ae46d23904f8672209e0991af5b85f149b80b68a0c8ba1c8bd2ccc49c50155067a26bab91cd620f211fff21ba2177c64b4e22dae9f4ce7f2914b62a6b5401150648937ba9b889aae2ec1ef8aaf5c2b3691385206c4a61dc8cd3833a0e6481c869cd74fbc118baccca24c59950c48d7925abc1153882a64401990e9fae1eb278ad5f543ba7e6e441462bc7e3603ca987f32a018593806bd1a60a10b11666eeee6e71a00921700323794ca9c1c35c77835736bfdb4539fcc6fbbb5325e6faacc7aa1a00bec8a16b66d1ae86ecc82ecafa143f6d710725f315e6170707b0916ec7782ad8313ec30de0d7659af4d65d663d464336303a32231bc1cb604e055c66770eec654659eac4136e4784384fb2c36414b2fcdba2ec8b3ab3e6cbafc39ffb0c9f2b7facbe7398865ae1e36adf7d5733df34a4f4b140cf95cf771508fbc7e78d989ec8ba7dd5ac66a37e4b61e436831e1db0baa0f42d6b6d3c7d6e56a41e6e2333367fb226bf7c22064aaddaedcded0c800d23432e47beab39d21841a912cd32d4df5b9f12fd84fc6ee6e3a8406bab02c9fa738a043e96eee063af47b8fa70be83d5cbce29e9e229357abaaef811c4b3170760c9cdf7d108cb7a17f2010e4dec5c3d3237797f5674bec5715178fea2e4e23f1de3b227db00603414e1706e223ef4578bd177fd0578c266291db847c5cdc1ef3dbf7debeb797cbee7befbdf7debef756eebe7defed7bbb2226fc03fe8100885c3f25cd74f9fea1bb3b0b2056df58d40008dfdc8c5c109a276d3725ba9060a44b93315ef4aa6a72839fd2896800084d773c57772e82e8e203f2472fa30d2c4b48816e6db37d5edc3146bf9883f07b832f649bd1a7e598c32d8bd84714ca7ac5386dbb86ef2acaacd55874c3dc42669bedd46f2cd1f1ea3b1b26cebcba0bafdaac3613328d795d5683452b54c326203c5d228ccefc0ddc680cf9208c8e611816319616c8f952d9f68c6c093a0ebc617160c9d15edbb4ed8cbc140fd2450261d30d5780c610811372bed4105b9acac6afaf3e260298ed48a4e83dd8f4485a84fe1e9012711a97cab80c3c8cd0c74bc5b8bf1ded85589003d5dfa6a21bb7144257058324e595854e0714eed8f4723872bb5b13c40a0988922040a4b65cbc1c36bd1d96d12dcd21a331e47c3baf09c5b1dee2444e0512b2a5f99a0012a409171964bbf59a7d48bace9d040424ea017a171ab13518a879ecd4865bb861ce8688dc18eda07732fce6da41851978f6e70f42657fde55a72093f18a2c73915826c68b6562a9d9821036c3557d570dcba86356e4f3e586b0dfec54553b96511f01413e089b5f0c1dc93e8befb21ac2b6342d69f376ac3b9655777725cb687c5513f478a9f7ce218ffda027c3222682a82a8389205ab07b79a4fea0632ad3f2ed01b83d958913fb160126f211b1edc530ec0a0f104d60a0469322b42864cbabaa890f9a0f127b55316942d6830cbdaa981c210cd9af2a264458435eaf2a26404c7e62ba19191ca1bf884f3a4df482e5a78e1da684742503259e1d13dd703c4d610119394834a97284cfe8a78ec9c2efee9eba8c6719f0b03dbbeadcf08f66a08a0191df27bf1eb58d01945f77512d714485df25b909d0488309448410450f4e637c0ba4dd4eaecf6845ceae639365829cd3731a36ede9b90d9b74f574ae78cee279c4448788ee370c855093a5e90efd8529cd6193c5c1149733616af48a03a6d8d4403492229e8578f609719e83443f188865427f5521274c017154818c511c54c8095340c0163cafe0190aa1f590b54c81e49f1d13f0ea32ca437b39ba9fe9c69369d7e962ed8d67aa7932edcf213743d043f23be4163705f053eaeb2c5f6e72af3d1e197839daf76b9e89c5db33f0785cde3e039b583cf3103705a039e4e68d9f2593c81f374308f8e73be5dbf595d62d6e723f4bdf07d01c4f14a3c6c98c23f58a6e966578cbdf363b910b214f716fefa6522ec0879cb505e95c801fe23ef09e604307e9def297e77d396c37b2bd3ceea5da5b72201f4f3bcb95f6a7baf69a82c4851a995aed2f96059d04e3e455d8a981121d5eb39aaa6209aa01153f2dd82a150edef211c410db2f49f989399825917e388d0cdbdee9c1863dc39524466c555045ca48155b6a6713b6a5e524a0946729ba23863b67c2543b54c586362882da52bbc7cb821d2f0bb6051bf60ceff24142232a880351dbce33d481390f913cbbae5280428376280f0bf5574782f17f8f857c62ebd8629b391663cc307f1816a1e80693c08b97635b3fe69967d876b9e6578c526adce521ac4f97b3e8065bd1cd25f211fd71ba81edac971f91652cff963524106e86ed2c67d9425aae31164783065991d9a02e24fef39707a85fbecfbfaf2316e84bb2a6a8e4a13f245b822e039b485192bcf3519feb39c9ae2de7a19295810e993cf42849dea90fcd43f290f490c4263d41d8d1d4a84e32b00c5c433e9eeda05b103acb164fa53113a29eddcad68a36faca96fab1aacad650e929afb9c0c4f012db970ebb6811468b8de83b333a5880e2dcb545040c9f294f7e5e775cce7e7a3cb604fd821bbc4ee0844777406f61fff94ce421bb302162888c8e3e3dc633cd72c5e102b9c3ed0c5de371f9c7303db3570f5bb110cb1c0251377640e30309acd8800a2cae084a82133c08da7f2de39d10be7d86e68a28574871b511a921462441032858787185052f38b519aa2baea8225d0ef0aa5279f1a157d5154dfc948e840cc60531062f382d3c36b07e3045e3014c4e0b151614162da4ba5edaf3d9e8bd78c5501412beaac6488112c628c2af531083089f7d3ba9ddb734f3ed9d184bf8f6199af69a2d01e05b258613bebd852d59df3d1e23060fc458fd741a4b88e8bc0f88eed01d0650a180768587c31249c213d4490706a84edaaeb0cf640d1e5c39e1f0d458ad56271d1090ea58ebed2586c6417148e1491524271d46ab53fb90d3f544ae30e3f786838e299814519d70d0e1f2d999f9e73af411785427dd1526cdbf7e6a91a1043380564a76390b302ea4d851c268cc4249aae1062a724a31e4d4202986d08234958f0a88955fd764c8409595114fcaaa678b1ec5b1de2a1bedd9b99ec8c74d5eb54a7d567b7674d5f3eb3f62e8d50ebdb3a5d6791d26343aa0b493c656202d2324af92d5d91cc53101c9a6f5fe61a03f4dd25bdbead52f1f72f27951ee650296438fc172e8ea90c3a189723140bf38d5e3d0c3f3eb434e434ead7385d4939eba058a637db6ceafeb0e0a6c23d93a4771ac5f4f247348687226cde7a458c6f2819c5d37d341bb16109107caaf6b2498191755fddb58762049bc4ae2fc97d0bd15b1bc5dba702b6bb3fbe0a76e57587f3872baa604d91591be2bacc7d8005f866d31263d430a2498e0a050a89c937654a4fe748bf42aa3021452df2fd06dd35353c3c3e4d759c8148605ad7171498a21c1f0f5054dc783f3eb33d22546c7eb15d65708393b26724ab9a4653839bbd9fd7633daa8164411d4d3413244e1d303069de282f3eb3333ec6f635655cdf2f9d915d6338d09525b829cebb33fd167ca96deaf4809393b28884dcb1365072d0f9b7a0b9559f7e2978c5f576e79ce782fe8e7fab04ad4043955e5f3eb362d409c18e5e5f0ce4e1455fcbacbcb794a9c288bceeaf06c0f932db1ef6c15bfaa97b3b32bacebb63a3b90cf5767db9d65f29aecec8ece76fbb6c7446777b6a45106f2e1f08e64d3265999f555f270648a091172c68f1aab6011b2224dac667eefbdc7a9b7f3ebb6db15d6ad27e4e3620f6698961c39492498ae260a25dd0c0b2c3ab2abf9992da9d34c167ed9a583819c24128c7459bd22a048576e8822f5eb38440de61581efe2c7fcf8f10ce272c52b5ef1baae8bd3f606548f9c519423677c38cd84ac880f7e6ab8e29f5d01685758c79220e70b122591ddc3a6f6d40be29f2bf3050559d9924a612a6ca50d23e45c2bdb5d79418ac36d767dd8d48fe31ffe79417c6aae7bac23e48cf00989c6c7637434fb8f4be7dbb57b778c0a3990d37d9c4d2a84215daa90d3a30be474274fc876373728332bbb2a54a85055593921a223e4d4a087ceae579ea5413f2f25143dbfee52839035ede91581814fdf7bfa9e3a5b6cb1c5cc0eb70fb06adbadc5cd87aae1864ddb10e244cef7f37eb634239535396a3d6af189ec9d344664848c48daf8f990cc45927aa99d5f7f46a206f386f8242115c8f5456d2fcfd537e78ba93e3da040f2eb302818eb3ef8a99d9d46c70c49f6d6e3c7aec0ce4c243ba74f9cc0f9fde1152021e515f0aa45113993f4351f2314a95fd74830332e4d5863963469bb5d611d4691ad6d8b1a455239729d95fc135596a47a22c9afc33869c3b4a7f51953e4a1d8cdf839b1e8f91055bc907d10f45b2d3e822892653e82c0e1ec699bb325ed39a2c8ebfbf841c996b4c708201f41e06ce9c5471038ff16894eb14f5cfdfab40f4cc121d684ad9a4a955f572bbf3b13a27ebda758f98d57309493227e4223bf92034ab2422ace76dc43e46cc74ab6e3cbd5593d6e27d56754d7b6b3f43d0ee22095617f5a547eda3a8da4713a67923a07e7d93b47674bb393bc922d4dc9e4b99374922da933077150eff868cc425c6419c932ec2d50e4f3e5b21fdb313f7ea82d2d17a3e4e89bda1eea15d98e9fefa658861e363f365004c80c4130ff500f15947a45aefc3c23cf33c823380c8eb59614e9032850a0a0b0eaeeeeb576bbbb6177b7d3482abbfb54aa76565577ab7840e4091428b06c90b11732aa378f649625f8f1181a1d5ad339cd763fb4783f550b171e8ff5158d0c3d316ca947a750e9e9a1f353ea8f12d243ed1a0a347c1033434de45a215777639f578ed019e872e8d97b4ffaecd6a2389edf981df87518373ded3c74eebad1839c51e7e9b248c5e18117b9207f9f4b1b18d6248360520f7766cdc3284fe03c24fd447942899f0ac51f4671f2f373e6a1f7db170a9202e68cf7bbbb8bc6a3d1f1de7bb1d79f947257eebe87ed0df65e0d0d8ca1861ff98f0a27c376ec8ffbb15d0a4c481731640d3f376c69aaeaea07b37c2838c6720b712f6f9fbb97afabe5ef3d4649cb9fe534bc18e3736c751d5bdf8beb41b31d7b67e344ae33333333abcc38c277196bb2f97975987e3ddcb2b1b61ecf2d779bede11ba305b71e36dba16678ab7dd9a647e72246f73553470b5b9ada860e1daf2a33aaf8497a22083fe3fbe0a7bb530c3bd59dea54a73ac526766f772fb176eb93a5bc3a6fa125d5d3dbf4bb1b45e38a63bde110082fa046d2a9eed475a575875e5a525d32b45b6f24bf382cb32996d915c8795dc9ae24ebd96e2ec4f7f0df8e6c70e185d77d0353294ba58a3b3ba3ae2227e7fcf3c9394040bf3b7fe58a4af5522f3575d5556428b2bcdfee86452f30f71487aeebabc885e5d2c876e45b02dd66f987c9602fb678ee71e8eb56cf4ffed9e2070064fce41ff9cb5efce41f7f3daacc978a835e78ddefbdee0dc974ba899c97cfd5a33896899c57cf4585cc76da88a4ed2c18f8fa24f5825f48c6f5faa487347eb95963796733fce5a324e424bd6545e51502335f7f4b32ee654fbd3296b7fc48b77838c1470b8a241f3281640fb95b334c2791ae6b0b39694b21b71c664537a12744f402fb071af09ec4a677c22c7fc1b06ec6ca5b2ec306d6a44ab05cc7965435c694b72c9ab7d65a1c9f1f5eab6265d5bce558bc2c2a6fbd65693710502a5613b24ca315cab46ecbb2ac1717308f1e5dbf7b091227af0d6e1987324dcb4211d01f8012e41402ff05f6ebc505f6cb2fd7b7367dd2967a5508ec35babb6384ecf1da5ed8d75fd8f55755571130a4f07470a738983953e1cd65def89ba6d91ffc9ed96ebbe70761777f368aaaaaa30b8a0bf0dfbf6daaf0d6e7ee6e737f27f73b9a010c1776bd17f782ef716a59584368c5683e9acff2e8665e216b96b56f5f0e6e0839ab21b418428550d7b2a06575db4108a1c516b42c784d219f776a6857e4f3b62c6859b06ffc30626646ad2fb1206ceb8ab0ad2bc2e0c7ba42d615d9801db22e36baa1854108ad2b5e3064b171c10b862c51a689b4acbbfb82218b8dc62cc805a69a83c3bcfbba2ed1cdd511f67b8f61731c49d2334dd3d8c8b6df8ba427fd357729a76c849a9bb9864108c39c2fe7887968838f45aed9c0960028c8d49f03cd7e057a1b7af4cb01519f0af4563fbc50d7e8606167021ee99174ccd0c42023f2d99174b0c2b8a2b61ee3ce902f033598afc750e360b8005fc4c9a038d675446eaa955f8b23e9e86e68611042eb8a9615b564cd5c355fc3323b26020ea0853218daa03fecc85dd6057d6e37b32ba3a6c5e822924f7358ae560e0fa3e801ef31bf2ceb75477d3c9ecfb534078c37ac76d02f918ffdb6460001fef6eb290eb83a5c9816e22bd3342ddb8ba45d8c2d1289b0bf38ac64953ae92f0ae0e2417a39d62714b1b0886e206b2b910f3ec6c5083fbe1a2a8f870534c7ba15ad8201c52183968450bcac90461e40122fe842b5842ea0f8291d8b2e9a8484d005123a90a2575517385da462ba198fe102c94fa72922eb2e35b7b01d3bec56b7385e4eb9a94f5e9db7d4bb3cd4774f2f87fa7bc5a1ccbc7057e7b6bbbb2b8178aa3856b986afc507971edfdb9ccf46faa3ae515221c1d0d4d8f4f0cf5bd8d28d7fde03861864783e03901abef8e7426ec02185f352f8e72f87897ffe946c29f4cf9fce962213275bc2fcf9e351f5bc150fc0d81200b634e551794012b0f284173b04e1044ac0e2f4fc5dd992f6e09f2f4a892d05e09f6f6a4b9a3f5f236bdae73bc49644fe7c916c818417796f69851789442e6fb0c48bdc458403d48b1c664b0678916ba21b91f3913554274df34c74a36559b64591cf74f0d916627ce6305b8a9ff5f07ce621d14dc60425a85328e498e826849911fd12dd4416fe8a52c45f6e896e2e2df95b10bab625251eba0bcc22e8a1c3402d7a4a0b8062e5a1aae96df144cea97b4b915d933b7876178672c4f316362842d57451718329d4a427d1cdcb79d10b1169288af891153b6051250135904fbef0020b25dff3450869f4e1ba823d11a2043d4f921871000f489ee800e1801d524f665002d4932a523f4fa0a41c80ca7922e587d31356242ea20b0946ba4841f253ba88093421c6ba0d29a678118423a4704216320ab144b2ac208b25cf497f3928142a8829764ec0036043eaea150b31a8bc36c515d91053dca08b29be908213e365c1986ec60a357050c54fa7b172541f9de1a8f40cd7653d2c15d18800004000f314002028100e098522b1503c4fe5ed0714000f80984e6c5017cab324086218a410328600420c00048000c00ccdcc28082d636b65f9deedbd57949df6abd2e669f4d6fc3305bf2addea4b43cb9def4170a7fd56502dcfd0435c40c3ee223966a3be56faf2c2cf296aebd855eefccb9cfb8581d3bd14e8b5e56d2d1db7b39ca3d93a213709bacb5ecaca3629ede587eeddb6209bbb141a5013c4e59a8db1a6f82a92546ecc00a7fac64b8655cff8ffa5674785ee1fb1f7331aee93e2808d8738968c725d25aafc3ac3cbd6cd8d67ee5e4ff822c620e3d4bdf9e9ee94a4fbe40e4f3ae81e5c52d1cabf0182f746ac89a96c20f91fc05fede07379303921281829b312f12476f7c8f6d0b3759d9367b0a34c9600f3ba83a8d6e3acada0d4d3dfe60ae48fb158a4b19d06a3c94ba9505a1d4ae8af35a4da3d8c682cfeeb53da5433d6998304a18a5f11dc3e16f0c040b3ae21f78e72a022ceea207d9d0606287ab0c0adfd59d437a095a7901666bf01b2f4085a94918e691c7e412bd85af0d2b0c094e22f9958e7715d415b226c3857172006ae2d4629f391676605f5259d37c83714c7286bd324fc38a10b3c7875d78654d86cf292b62cb0888bf1b01ad514b8d5000b53f1ebf564de95c0006bcd9a3004c2f74bce5a2f18df3348083f7e18ae43108844303a7cbec94d30aba69a0859af89620b81adb7ffd14461a3196300dd137941684ff304dce8996130fdb805a1308f79e155dac436d86c79d25698425379a4dbeae8e250a37167ca4e3b7bb9740242907856931ad74c0f888856a9b24916541ab016e4ad04a424b7a5d68cb702fc6fdb391e8f3fb50eaf440585b14da5d3dc582e45e93a02eb0b6c0a378237a3fcee37af7ee021d9c1836df6ef08e60ca81390869b97a558e705de492ebea259d4adfb50b2b321e1d42222ebbc855a856508f88f9b48c98faf925e0c6daf3101c0ae03cf967fd849ab690225e0548dad435cfba280959d28c4c8c9e93363070eb69c804bac7d6da8744c054284daf9b9b7fab428f30290d56a332727b0015eb5a26d020df72e0d0c058e721ba90bd9177cf4f7270e3f946d7e973e2c86a24def7129eda49725ca5215adc2c03d23cdb01c514a2750e08a4c687a592b996016275e83454b2df232b8c1cf1ff6f2341ac5c370dea8277f5364c508292ca1a4c221ac015e90b32af0cd120e712659b75d293da407770a88f5e6e87b03470b3a77f83313dc9f92e20149e851e4d84b60722a01457c14ead2f9bd3fb3f55e7af60fb5556b3497044f5bda72dc946ccf4181b1c0c1bc6e9e8ae70a16d14aa8c4a20033944be4b100c64cad09bd5a768f88d0b19a27d82b575aae340f02ce3528b45541f0bda5f21538ce37dfab9cde897b591c4e4a035dcbe95203070ea79b769d1f132b68b2c473c4b842c58892878d9bec09ade2088b80bd2b143a41a568efc5f6cb6523c1b69b8536fd5954cb2ae566412f854b5b7875b06be16d6cbbb2054823b086db67413b8cb8dd35d0a890cbc245976eda2afeeee4b8993941a546a14d5553b2bb66450dcdbdb1bf14ace27f553cde422bc6fc1e859a4d7ef5678db0eb1e8c7cfbcb77e64343195e01980c391312a66f182d7365e422c19d5cb82f76cf7c9c7433e32c9fbfcf93e9d4be08c1f73c4cb34b0c5420a7ff89cf2ef2e693160d15987571ae068fb281e414c2128b459ab55f34ed0150d149c10dddacf868aec849596a4e709e96176a80b68f2cf0f4aebfbe38d8e963fd28eb94bc008151164decc5db5b3289309237b7646fc5eefc2a152bad2944336b5ff4bee614e93ab4a1a10cf72b4f676a73a63e79012b10e9e72d1e5d238b751ed2d0f9133d9ac3b670aff6a8a788d0784b782874701531e29e8cae834e7121d23fc9368404235c27d6e59f85dde1626994c294dc483922a6392fc8656d3ee550280ea84bcf6e27043b60b9db66629123ef175d9891ab8561da92943008b078f55e8c5dac6290b0ef45a8e48746bf17145e5a79e2ed0de6b12567667fae12c2f94afd2951cc8d3e1a297e197cbc07ee0f5936fe143a584975b9d5c35b4762f748cb4736b54b853188f7c15249d2ca4b26a43f2c695b565121596f080aaa25d596fdba60d59bfa67846e05c3ae643ba20e9a5769d0841679dc5fe821b8e2bb77aa31fda565bcc9b0770fbeee65ad28754df0bd1381738aff807efe9e7b273ef8de9f7c3fe6ad3f4ddf0fd601d7daf7a39edff115ed8db47e5fe1fd1875c9b61f51134876cbd21574fc21fe16f3dceaf7534e4cb9357decaf1ecd6307c0424eb81425a05c13170b40aa25a0bc670f14d90a05ed839877312bef5cadb75992e690941b9ee96be870ac99dedf60d4592a63c2efc4d297caec35f7f926e5e784e10396e3faa7b8fc306727c86a771b87e795768aadd05d0a26b9ca7663deb50069b72d5a6f1ef78a816b76619b82a5b67e98f2d31885ce538c26e14b1981d3d3f9a79be5c9435ea8f4f515202228c6b2c981375a40d85941516e3ee14713fa084b5a95fe56fcd911c4d6c52e845b5af075792598e95dc24cf9565ade18a60d9833f664f02f7a657077cfa3e12f15f53a63dc1026502fcbbb5a84dabe9dadc8188bf824e6bd8d91d25f0a909fe09c7db9c7bd19ee7e8c3175f350212fd08e195f0a6c9541f12c0661eea5551dfb5dcafd4ecad3e5379efff3d5f6caa5e5b27d9548875891bc52a6ca694c366a11caab7e5fb8025e7ee824145c6e35d2cc73096e11880e80f2212b261e2c0759d91a209b654c89fb478e2b93fd0c5b2c1abb093e83d92d39a6828bb243b57db980a4d6e66fa6e1d4a9a34b8e4ba9db89c699dd812570e8a91f48854e91fb670b64d8964ac8c9835867ab82ade6ca10511d888180a93654e77ab9b638791b1f79c676d9eb0c042ec65d568f91b7ab729022f99f5d252b2c98d03cbbdc319998f8f6fa2cbf208f3006a235573b5d944c926affd3e31c17ba797714c9fafad8dc2a9a1e28edde943c0182f385bcb02c27efcf510584ac1f510eae09852c6fc7fc0971cfebabfd50f385fa72cfe52081e320728f682699f88932cfb1b72ea9a2b2652a4284be50d263479e7fca3f9d812556f68bec0336f1968401851197146033e454acdce2dd1d8fa17cb77e75cccd4dde28c69174bc550e21a4e568fd64576bbcc8bfac8c780d7d79af70431155dc8163fc158e98345e38d9d05fcbeb3a2e84576370558b31064ad107fbf2909949d371bf4fc1b277d708fd850e40ef05f690fcd7589919423a101fe965ddaa90cba2b65899d9e7e6ffb3c99ad1bdb6a8182f44c840a0defedf3f98eda1ebd1e945ca95303fe9cadeef14f81be7168d9fa2ce5176de1391b42315091c28605b0003e86c43e4c2223e254db08f581132f9ffca84bc10864bdf667bed6c10c9517f8d441a12d60fb4a5f911dd889dcb5e239ff06d93a06599f2ad8cc00cb7327b63caad73005d0415d44037550a890d20d2808f8e62adc42a76d02b167d36e890ff30c6da8ffa5fc6292d3a1a0b360343825aa35d657b641e5ceeabeb3d7bb964515be0ea8518fa109afcd30836940075bd0fa71bffaad7cfb280be22ed8e8c2314b22ad018436ab1867042ecc835ae71a11d36b9f76d1cdd005f384754a9079a009ccfe3b5fc714bb64b658dc4215ceb05e598583d995add72f7b892215f70b117ccb40c3aa35cd0286e98d0f09e34ca42a52e9ec016d260d4f7cb4161f97b682f8e7eb08ac5446460e8cda2c0b487515cc6511226d676a3524a2b785dd3320840e121c59bae2f29f4b6a2df571701374cf1ab840bbdda64f4da172e1da645f272118f03cdb9314dd0d9860980a3279888e394df6e29072d1ea211759ab6853e046755ad961fa9f381cef5d5827ae84f8810565a36529e60582f42440ddee7e0d17a0a566022faae8e2cc7f01f32a9a3c277613f627a124f2c8311b48cf09274f2ff15894a396eb20c24cd543f9067715ea65b7eb24579a4931e083e8ea8a122070f57c0479ee537838ff2a027ca4b9ea7b651acdc983ab27aac47f9c376103a8755784f835a4ff5798f842ba059ad315342bcadbe3cbed77af7cbcf576aeded3370615a7fe445b7262b536c9365d46bc37b4a988342aed0cbfe9a92bfe990064ca7da006e927e4308a33bd485e8243d4a10b8d47d7a773d35bd750b1ac84ae520cba9168ec43cca5f128584de6101e4a72ad34ca0bc514f481195d965fb8bb82c358be31a19a74eabc882678640e384f7f8ccad5ab6b7c495d75fe4406ceaf4b3e63fc6f552b7873a39500069c4597684b80745bd57ce88402afc27e6c71a6ffc295d62b96aab337d250623e9daec6747a3b874d0a4a6ecf7c6cb82247fa74806be67f72dcc0450744dd301adaf5769e66b637d264d5e3dab310624817c23661f52ace288bf53cba1d71c70cfb68327fb3e5b96bc947d5c1a024e3babe5c70634d83fc1ebc6b062e015835e44243f9aeaca0f18949fa8729929c211aa4dd77ba6fef5e7e19f7234d379b3816e8fd27ef1fc89abfa29e1f2daa9c67ce4f227b0463b3fffd6369c2e743993bfb6e2cc8193ef2b0aaa5d4c6dd54ebeae8f3170e674a3c8ffffad79b11787eb2c723c9f846b82a922cfc88676d37da014413ff12193c5e6b6fd753cb529e7470ebf9cbe67b028ae33d52314c75dbe79c5ae2d2798de5e5f7bd7dbc67392a235e0e4b6ed60e0f634bbf9207b9ac18d3d85bd63e8d5555ebdaeb6cd93ca114e0c4ecfdb248c998919e2504a5f9c2439681e0d9b135e202494b382bd36ced7d969fcd3c225b9345a1ca825a50ef4a9978690de31d8e150364f66c9773faf6a8c0db442d9409a6b16507def6ed777f3d976dfe9be4b2085729c79726003a2bd239866d8173c86137b75d9dae520612ff924695ba31f390ed82fd2e389785a03c4d488d2f65cf97658672f291087d907540c70b2fc979227db772bac7b8d196370440c3951921535183144c4c36eb556eb91c519cdaf8e84ec795713f0b4a3d0e4be5e9ebec79c17f542d8a66234b84451d47fd027b40f13292431ed6c7c2924c0e6e0a2982b20ea7f6af0628635d6826cf7ba749609ba4d0e96235b71fefa4c2c168d6bc7cd03b97e151d6b788672ed239cb02802f2560a84940cc811b4a05b95d1663d38553d598ed70a254869d19c5eca0d52e6534078bcd6d42b00613cc9592ce9c8188322985137ea98a64b3a264bae2e291e2cbaf905a8578875d24c6a8ec22bbcad4add43059b51453517c5daeb3827f72756c915df2274511c818b2c798a7a5eaed70428a8e5e3596681644c7ce5b3b803d28c5bc72c2c049c6b15932d857cc96b86641968b11c92ebc6ed0d1c07becda4fc01bc66a493b9a20b46c3a71f7c6a3abfa214321d78c461aba60858054668f03336373458a865b8f804df505afe53474c340d8adae4c9cc617413a10d0ac46b53472b4e0e81afd1739a611f8a881955f2631c979282332ec93a51d976103d7da742e89e7f882304a5cd3e4176a807eab17a527a28bd6821112b80217d9aa796523c8b6553fdc4f47bf9896ac069415e8251b2c5f45980378ca0374c78537862f74709f6e35650eb7442324a19ea2fe0c0fa477a450b45038eb18cfb0a59884589f58929c738cb008dce9a0b151ebfc05b5d70d13a38541bd4339283108efe1fb3adb91216a394028b203dda64f074dc184c2aa587a22daf4e740b341deb3e1432599ae3200e96c3be40358822cc523e4e00cd5167f7e8e9430c3d01be53254b7a62927640b283c8eac709c219da51cd806ba79266129c0b42ed6736c85f5cdaa03651af2a902ffff684c6f280517a2881e1538d878eb837b8ca44ff14c1e5cf100d4a7720e900585560ff6c97dfe8915545f3cb106576156354ba8a1b2f1efc8495a3c59eacf36914915a3c3f5081fb2e4a80c90a6c76d8300201862b0a41960c5877e2ffb83438aa56e2cf8ccbd69a7a5abc890f0626220c6b4fa397e191f51c709e2f084a602913aae19c4ac7ef9a9f5bcb9166fa1a8f89abd59c8c7a52358b315f54f414d7e6d34575201bd1a4a640f9bed2d2b54d33ee1642ffe777d4d059400fa7f2b50acb5e732afa16948a2aee3231475d67a85d72a052f1a51563e4bb641d562bbdd5a636b3c3c750119c0b11dc5110fccbc43877f9d853b836d206b766d969cd8270d6368cf828b3c87f8004bc7cd674e8b739e8a5462a874e4b0ab0e6797e9b9638219c2423083e5111bd47c173fb266ec8a02ed32a18a26ffda3f317fa6cb505bc689c6d93fb7113827fbf0d20a1e5c46148aa6eacb96171981a42ffdf41daf951bca5a7305ec14d00595d8d5584c5f395b5bfddacfb55925f40a322c5d80412cf79b088305ae52e8e782e862a7d707d6832e41c6e8c984f804e88438641704812ece4be3532aed6cbebfe0b1367bd83be0ab5b1bad84abed07be2f85d6c05c5dafbcc3064052a46ddc964fb86aa298c197a1dc1e16eb63cbc9da1da5c0a3b2bb8f75f59894d2b00619330b649b94e9fa0e08bf437e43f48f14409f1152739e89b154dd70af1d08b2cd777208d0930b3f2bb3d45929455ebe5dd3f8cfbe9b99db3118349b7520173b0e0e51c5abd72b88eca207fcb941daf8b89f8521607730f49733704899c39a683082a8f972ae331a7ead77e6360d32a07c12435830f6d6c582b0826e64241a324413e7cd498b38dbefef8dac596719d445bf2a9996ab10cee8b384f882c156e59247f2f9efbc49330513e1df6b61fb20222da2841c020a8a60ac6649f5807b7890c53b09fdb368d606843598e62b57601bf91fec5c7f347509c44c0b898ab00a3241f249c4c4f54419c526aac30143896814c88f8ab94ee39952f73ca8ae235ac251f8d1760e97d40bc823565e189245e8731c99cf877bc0cdbe4e3f68270a4335f9363c81580bbf930cb7086f5dafc0cdaac8af3d233b99b2d1cd276e689b031ab92566a8587de6c426a7f9cd6513e18374be575c47598741d81452b10652562915256372d18cecfcdd067cd004bddccf1849b846bae9e6f4f55aaf6669626c4ef74cb23e028e767ac2474def7e2b1ffe30d13421fe0e2004e7fab82355c1cd6d73fd10dc7e932d3bef32b70f5bbea64bbb462cda93cae13c254331e9652b61d4b51420dcd1a3491c9634700403828645dc9eff36018ad4fec30193c1ac1fab12e03d85c46657fe11abab4b4b1a4f5201c3d9498052e5ae554d21854ea14161c5367303d03b29adfc37478577841ee51b90ec64703d1ec225e75100bb8cf8a7f2021086dd8912ba1350c9cc744857bfdfc09e7d4d624768d72eab65928c0436910a544e8bf8118d93616b03c80636190bef6998bf1d0abb9f1aa031a6e94a9b8a4126606f41148f31be3837d3efa207176aa6c63ef180fc1ec6e8973532ae7ede5201519e22beed58e055ad0fd207af04e37c0ed40a3ffd4f1b851c3a0823b62669335d8e9e9f162efd86111e994e6357db66c5f888297b354c3ec9a761258ed21bcc4f7d83a0a601f46f5d2314b44c6c261c798e802a9ccb0856655ea96616360a3d89ee057b9fcb0f0e48505e8ef0669e89eb143bd3266c6230cdc1a2fb724a7cc87d2d5edac572436c22ce6816dea436dfff3669e0558a90a0c14546754a72ffa3619f272bda7974c86316601a97080318793b5fae067fa452913b5486212f6b8d2ec53c885eeb505d1459929a9baebeb8185445e67aaf220ab15e8188643acc570e09205d2f1233ccb13b7ef94a55aaa226d5438a6339b2afb9e14d10b64a64e3b7b9630f757e6d854066282b25db01946593f16fe5b743764871c091a433296f706b44ab97a1a0b755ffc00a2af384e6440c2258d33f11885f442560a884647199ec34b0ee47e1ce7e41044488b414605ab685125a4f2da50a70e73b395eb767e6ecaa044486b3cd72be14d27de408990c99c53438ddedc623ba09698e7fabd7f0fab477b0f5d44aa7738c5ba021145cd0d99b9ca891ecf2e3abbde09f7315a2c0b3d51d103e69261285e7d391ace595a4dd130c264b0a608904f389e6c0787ae71332fd7c7fc5943ca2b98f861c467e7bc517871b9a42de1683978c90e602dbdacbb5b5ad02fa2df31c7c7a50f83a9f5566bf26687a1aa49d2fb50d593795935c9540f15cc103756dc1093e79ca5de159d5a226c50686a40a35e19731296a6be8c808bc447d20cc389ba245ace28e0948e60e3024d6ef858ed3d0a1ba18a5373b90583ef7a4738e512c7f64146cdee440810532bce069d63e317bcead1adae1ef912acc720abff667b1c8631e6d798eaa51c3883a78a61b5dae17248f2edde92c22c9eea7ec3bb0c3f8d9d9cced7890d6e8a706950891ddbdd09780f1fe8cefa540af291a646a46360f57906c9cde32311a83269b4106c64aa8b1ce350c2199fa0d353be3ba41e47ad173fa6a98dc765694939616ce56da7e3e3ee182ed3dcb9afed410f30d1426803e8a24d4cb0761b79bef18637982974e303aee6bf4a8f9805f1c9e606e7a723dcafa7d8b7be398f1548d90eb244bf379aa8bdcef802af2ce777d494deb2f1bf0860b6ffeec8e5374fcc7240a22d351a55ff3ea193fbb6dd2af0b91d842d5f4aa0dcd5904ad9e4ab89ae9d70e98896267b51f87779dec0e4dc51d8f893ff1b80dcbead8def971f1b193d55f514d1f5e54b680542648428bd06b47461c12063272b498a4919a8e5c90f8c051bd1055345dc164b97ea33715668f5dbfeff934ef2b4a62c44d6c60b497a614bcd6df20dcca1a23af93512707a81f7a550322ae8b734cc3585fa9185ee81a1e67281bd430c638f20b81624dff320dad5ae20a0b8651972ba263a6cb4f3581aec95c9c8af1159f3bc0c6b70c6bcc9c939b51800d1ab09f1ef524f320560e0f6503e645d855232c7fab30d873aed6e526a58d47797f85d5524134dc4ad2a32027e165c2dc3698e0b3d427e02492f774b569373fe0f2fe200d1727a908968cfa53d22e0f620fff46a14919bb391b594894ec6fe8ec0eae3a695b39661139f2eb1aa22bd8aef38fb16d401eea1149c5da2340e0d2ac67dbaca984230b173120be04adc26938e933b971be79746641bb1dd8481d6a221fd28c1e6b84c2325c7f9e2c5e30a80441614cc1b5a1d35536f283904d28c3ff33d3cfccc0bae738adb53817a0c203a938d03f45e95a9207b9b396d421a22763507c6bb070a8b051acb1072dbe6bebf31f7707ccd99fcb171124c640d3df9a11f3e08b28200521007224d300db92150d953e7e9679b187e41c24728b6c228e0f0faf4c3af0dc330481151bef0fb407edf6b557e1d5437f9df6e090cc8ec73196eaefcea2d25f3392c4d263c41fc4fc7ce0f2dffa706f0938085a11fa646c75854f072eed0c5281efcb94d4b29ff967c50ccbd44d14ba29bc8ae4bdf0609d2e2c364f7df162bdde8e408f279514830610c391528fc11061d6a3c8abd6a288d538a7d8b78495547fa452bfc27a17021d15947abe07079cd64e8716b3d90caf23629af0e23dcf3b0a21be900a3a15178be54d40e00a982e2f5dd7d70ec202f1e77044df64640f5a10a356f714b57b8e8cb2de1df0e82a21a79570dd3ac40942acb1593592ce23ccf1834c622b0c70366522ade85612e5be99efd0f4bbed686760b7fa8bb684e362836490a1eeb3297f94e74f47b07d7314543370129026bae7fa244d3c1c3fd1f185e9396382ce1b8bc1e6902bd7850178cf405d48ed50851a392faf618ae1d4538e4288a18828cd5816b32f23d33b86c5189d362ee726e9d465932ac72f22bb4c30898d3ae6c9d57d4c6ba46e4dc2cea145e129481390a0f50e1450784ed1064c5224a0cc3a6d55877022568dcf8b3f41c2dd76468a240556d68c2938240b801f3b2ce624591edcde940114838325b240032b73a0fdb1c0ef7ec7bb00f13d0c2459152801305eab725eccb3391e778c2d7a1eee9b161ae28443d1c6c7d4c13053bd9782fa3f2c01b91d042617aad81a1c6845f950073c714e2ebf7b645e1a90745a7c9abfa9ee4fcbbbd37b4f9072c8b8135ca27c170677d0cd8dcb096d4e4743cb023bdc2b7b1a3ab8052875043ddb08b25ea8b1a429bd012caf6f99fca7442eb60a9b0bfa4498c70ebf7c1df7bc3f674742d338021ff1c7d9182298d60c1da6bb2283709fc3b5332e89c521b8ed8a83301cccc670458e427c20a1532ebc1314b4001487bc4391c20dc04585c9f8ab90742f845cde27f0799bf0b446316fe2b27d29d85c081b410309675cebc61c6e651b8d11c73e8b4ca97435a51e5cc5f4515b6e331ded9b8b6a5e5fa960b7c02b968a83cee0bf33b0e78f3d39c72c10e20ddcabd758eb08f2a167c1de10f70289e26708fc257a90d6941435385f3e643c5a7890f7f27d0a0cb6738f3b80ddae380b53858b41e71e0451aa135d1a16cf26c2badcfef89c75adaa1c385f4db3acebf00476703e92cc2e15bf02dc18f1d4a97df4cce5c51bdaeb871b0f9b10a7e8842ba32e3cab45e71083ae88f2d2b4585423364ea0c0135d5ff6f120d1debff8966c1919c390e3922ca323f160e676fe9005db4c81bc81c1f094a22e9f04954ea7f44ff38c6b19b64f9199e082e84ae18a3c2e1f7c8ff873516d382b6dfd6a8aa07173bb7685664c308152e26b84a838d74c0b41582f2722dc1532e147feefe724baa04642b384ffef511ad1f9e3bd31987964148b6619647fe10a5cc2c33e469b79a55d5fb8d57cef34d3ba4445d701108d1c9977eaeadcf8f1165e111d1e441f77c38629596aaa97db17952e9af73ef49409bff0d588e97e4a3ecb229d7a3a951c00167226e64f1edd719cb21b3faab93b017f3c3297553ddf833c3b9db9ff32a0ab599a164fa74425b2dfcd3c07650a362df9c252be59bb6b582fd867cb68e53141e8b8c6e5e7955a8fe8039a1306bb5d1e8e82c82ff5717ed8ad65456ee26991310cc3459f44fcaa82d0e1dd4ed15e93f28553a474efe83e0eb5c6d800cbf0d27ad520b48926daa29f5c4a94a8fafe9238fac31bd05c6c3126eb4bd8fc761a712c754f27887f54a8f546edae7b99e85a9ee1f1278ca88fa576aeeac4cba101f3b8be68c43f374fee1957d2fbd946f9203334c1fe845a2dedf40ce077571e92c06a571e38cc9843a0e2d81dfb72e2affd13abc1adbe59da3f9f65b03f866b27c168aa045540c2a6fb00d0bf2e6e67872133d4ea5af7c206fdd3930398eb65b98a26c8878f856c1c4f9a4377767e32e665f99797a617784a8432351f2b053ce6aa1a1eab752dfc56b0fd413acf48efdf19549e80688cb2f55ab222273f7d85b3633d56e072160d5202df7348de13f5a7e485a9d4973e518d8f15fa0b090e214970e46c1669d1ec0fba48c9498e20728756bb4151df1044b7f9063c88113132ac016017c2825984297695db30fe422e0b4ecb784a0cf234dd530b385b3f889d4f03938db0b04641d45f746fddad7894156d03b949808f04a3ed0593584a94d004f1858aa9908c720060473d462841b7daacab876741eba3ae7952bda29b44bf987164e05508fe0f7e4a5c9fb0cbe11ad2c06d30892fb74ef0008341c1415bdfe2dfaa52c190a5217d9a3d0418521d5a02cc0878b7c3bbdd5d1a93bd0cca63ec4e196ec909bccca1a791c8437368dd0f26f8368be5164d9ffc495ccb4d3cbac040bba30486d8c4a415c1e7cd053e9688843f817393c1f2c2029029c7c9508d70f82c64e86b972262908ba30a040c3decef16a797d69a3fe89efbc06320e91bb9f6db3dd7defcb8902e029beeee9f081275ea82e88a2401e529a4cda78ce32965b3f3ba64da14655b6725f3e92dee39e171c9c05eee486a0b971b12dd408ec7efd6033f22d3bffe875c3eefe9f0d5b478fc1cc111a4397c7bd92c284d2ac44abe8d9a1cb0f3bfeab315976995c56d6a39f4fd806e068140884cdfde50501adf9d00dff533b14ba273da2b31fab317ac174def4dc57556cf7921caff733f080327ad36cacd5e1a068c0a8b48002a4b8e4debc8c58f7d24fc804aba91402f747211af62170cf8e5b7d8caa3edceec3e44124b0dfb0d0394331cba99ec344cf2e47ca3391ab5076af2ea320f765a4c04c56d56f00e58479441752e26dae2d37861716220f73026645dab2c68570a039540bd7ac8360a091f99273d9346e0ceee49e731015c6bc381496bd830714dac4d1b4253aa533577d134f49cd231fa522704b5011d06e71713d2fde8f307b4e077a94103ca230806347c640444860630b18f44f034bd65186290e9352b0a157a8e2450fd575ff48104f8a30975e0445b6b68c68eb08dcb8b19300c3a01a79650469f29b8653fbea0c954e3d591d15712ae1a015688710e7120359e094cf18d4bc5299840bf6a58a80717daa19a1944eb4bc923329d92550bc79e5802cb4d1d300ca9abe8ec99868dabfb9ed150d93e2b5345696be4de50052a35b3e2396efefc12c50799e1298c29a7e7d67a9df51179db2f19a926854bf7c42fec93a275dbd80edf4b8acb0cd35603e1fd4b540346a1a81d363aa8df80b2d283e64018efc08f3d3af5dd11355426d014a2ac9f4ea4c54ca8c440adf0578fab9fabf955ca16bd054e7de6bfce1b29e6b21ed290300114bd0c2404966914d696ac5f238389af9e7a22ec20d341518a063dbb2703c786d0d8e46bbdd21a349be27bfde0f31ea77d8e9f97acc4f7e35485e285cafa8a825e1d4befe43959054b4f0b462525bfadb667e675accf11fb3151d753b729ef48b40f256323600bcf53d4f4d0ac28689cbfa8205cf97524f3fb1f4fdfcb1f12e1badc02d796c3645771699551260e5d173fe241f7a572b0035339e13942bee08c0ee07cf1fde6b4066cf471268dc90d1d3236ea709a19382dbecbbd5bb731781b6c6873e99f0735bcb61a911b475a06e325d0845552411a8eb89cb499f49a48baae83bb471fa617977c9f40daf71238bf1abb41ebc015b3fa0f818e6203c1f2aacd9427d3ab207fd56f5038b858429f0ab556c94035c9488284d08a78fb150910729f3711aa360adb29db85eaefe8c596a61020eccc7ff17cadd054e621a87afbad11f87709c77472240e3176ce1579dbd9920883dbde10b70f8d180205dc10dec95414c4fc7340d52d8945eeea3ed08806e5441e2a0ca6546e6cccc104432153d67792498a678ab0d511b325050d691e767a16642d243fe54bdbf6585e14cdb29b571820b8b705ddc7a3e1de5ae16a98c9020fff0386582e70393233e5bdea631a28d47c7190611bb11e0e634c651e1078a4760c624babfe3a6b394b923b8060d9a7e479d47f88d8c754411f2efced384c34bd13dde13493b74926bfa69f22e156406159fb36c6e1bb668202ca62f772f2d077868d44aee23bd4a1a2498af8b38874523367d957bed2e9ceec8c28e14bd43bebeecfc207c0c1d2ca5b4effc7421e890ede6ca22cddf3683cc68e64a1b2dd696357cb5379c2dc56e5bb658a5ed9dcb9f0fdc5896a704e0a3a16a5ddb29e8922ba0ecc217481d312bd686440f69740a342140ef1e3827dc490f5a0075c431619c2c81b21b3e68f13372bbf9eb3c83b1b0f529455a0e8afcebf3665cd2c7bcc882ef7aa02bd26d97fdca88ef089b9a30c5a7ba9179e8af2b4d58f5075df584d10d0c9722b83984cdb5996dd00a231c130f1614b044b9d38ec58ede7d993e507f0deda011a9d49943f81cffba678f403078470089e669631b65ab790202e7d616030d00400e48387a479fe0c270b1bf3e245af889c7a5f464c36efe63beb85c354e329786a095541c3a87407e82bded3ff8f5545d5b15fd8199fc9942b7e3ff704bb60ea3fb5012027ebee2dc645e16017de79dde8d2fdc3451d0c4963a0242043b161b479cdc4e9c9c69b815a220abc9133a74ad47077486e240b26fd4ef5ea014ae8200d33d10a5aea61bbd5df2943640cd8be40e13c0617d309771b8ac56a5fc40d4d2b92ae4dd2bf6f4a0912a761daba652bed351c7f7fb77d9015cfc0d11ff16c6e7d56e994b9d3e9b9a535397520b7b7eab3536b8ede81af676206228703101126ca3856f6d15d37a5cdc8c60778a16ef25489646f0b9cfc01adc5e590edca0bd94b65e8193873f502fc8ace70d48dc73c48dc356bf05801b1ac67ee81775cb9c6d405490dba3dced9b8a3392e0994332648f7f8c76830ccb6089dd890192c23655badc4ba3ee73e1ed4138a03da94fde87c24721fbc46edcf42f087d9f57403818c5016844ac6f3af66455b24cdcd8b7d9fa8d211ab6e78ac914cb249e91087133a0d9d0ea77a3da7d507a1112531e33337c34d2b0da4134feab903e33d7c536b43b1ec6d3750512b7a85832641aeed96d511df3a30dd4652ff20deec72bdf1cf8e8ba7838add156d5303ca1470ace055c263ef6ae300b1385e8fb9cf1c310e33ba941b1f8ff86f1aecce5be806185c73b52316315d3cde00fd9909649848bf3b2b11234bed850b286776e0a608a2b0b198f40320c8b14c7707675bb6bc8fddf39153d024120afdbe88164384576c705d2a1efe50609b7214b2684e8d22129c547daced52ee9d83bb5172698233b91c0215990880a3fbb4ec4a45c205a347c3b5d29ca45ac69ce7805270e3e689adcf9e96ad325f00aa90869e41804fb05873f1cc2aeb0f0df693001ed075465fcf042e2afee73f2bc133be8bd2c63533f1f31018870e66b17dd45beda74b0ad8419caee28399c7c88eedfbfaf01e3dd37a1f513867f75b9b54edf52c36980214206d8f01a87f60524ff51c012c2882c1f5625a9bfaddd4cdd2be07dfd7f55cbc22608205be56b434cfd26330ae385283d5d1f10be545778184c74a77d035211dcb0b42ed8f444c8442fbf332b9e5c1134bd773c105ccff556b52268fdef9afc654933abbaadac760434eee14e4030d909c1d91a330c5136afdf420faa09db4fdd2d77ffe89fbffd5bc87dba1752fb82eb61c17adddac016b2ea3fdf6a99ad25fd81d302b472d200acd436875cc3596603bcaab41a07c1c2b374241b32f37827cdf8bdfbf14cb336935437ab08e718872fb036ea0d913fc32d3d9d6e56661a539d4daa8e1ad4ea7c95c032391f5a4158dc32a59f5d2bf0fd88c58ade5826db1dd8135094468e6f1ac36c08d3ed9ce2c958e6ac81f1fd3e2296eb1d9fc882ea6e1f6ad0b128c11fbe9299730ad198a31e395d43adf92e324d5cf4fd141b16e697c14c43fbf6d22be6349836612e770ee0f70756f9092707c3a5b4274027289ca82951b560946ae6e80b3ecde60b194f5c2ff292b1d0bd986c0ffd96e5350597a2c40be8f24020549ad8705b2c0460a1c533d512c3138a4f846473f93c888708d591d14d94cb94750190ecc3f17aad80a424075ca435888e14d2b60ad8491135eba76b1e7daa6ec87b8f19e597b8b1f78719444723759f2a608cf3ec59b8b7584653e3311fced03fc61805884b3d0606a618383d5145e9a30c085d9d482baffc3476131f933b63a1b88f8f7104667d2b28457c42fdc34ff23e23e36dbf1103deaa1111b72e6832a3461ce17cd020d64809b526ead509f9588addb2b8ffe9eb51bf8b0786f6e0a6da650f6960b129f001a69bd499538ee0ebed6cb585d9eb1d56ad194736f3e21389089bfe72b2b1f31d37541ec2bbded7452fc083413631def304422655986ecac19555c224b1b1b7c0722ad379d7e7e15a8d916676e70ccb41c78c22b6c69065e78be41f532bcf7b204f8e9802a70930cd24576be5c0dc89e5c23d55b141318b71d4eb9ce369c8fffe5ec01826c2904ffc53e8d46a471c800274a29149b6086fa8d8c1a0c397ed685282843fc4a35f491f70a9dffe2c4f8edaaa808d02d984c90c1dadc3aff9ebced30772c285393329ca4cb79a295ba6b1c4834dc2ba628f981f712acfd98d20dbfa1e97c5001995d001d8a840a60fb06f3d402b26309d51b538253fcf5f1ef25949c90890b847992d9aceed4d1522807f5dd539d902af9d13c1d4103cf72d45059d9af2a6a90139860d3e736c52c542303d7cefbc66797066a6a4532a2c812155619df5633875c325efe4a557772f023bb92ea72c4a44b12c1934a8c6e1af196ffc9d7a434f1457494e8a567fa012b7a592a9809af5dd51ea307495be4031196b6afbf47106e5b9b3073e2b4ccbea232a913d08382d63a0362f03c0307e581c927d8594d228c6b0a2748c5260c0cbd535685d3ac304a2cef59b8c0a12a7fd77be35276d30e11a0ffbc1f3d09aecd8d29f4f7a01cd0eacc2fb0c52fc250283f3e877bca7ac813560f84e2789df495dfff0e330cf9dc66431d3a1f9f3cae6091e8810224e08c3bcdc1278ff40f72904165d901bd470ab01347e797fe20b810d3aa208a426d4c0fd1a61c169bea1e10ae4465894bfe5274d4a858a170e572c9637688ab5adb641b96120d2616815f567631ae4971c8bef7ac1378651a227506047e9af2f32c1c48910f8a258e2ebbcd2058a9655bd56fac6381469715a67f8459c501379bb47d888ff8453b5ed1f76d7cc5adc030b1e81876806d4115af28210580ea51069906dbf3e40cec3925e0cf4afc5f76d88eaa3e2503468b46986aee7105029e98a02532fbd086819921c438d2db4bb193a5b054d91256336484a65c048584caee22f833e1421cce20b0e13dcf1f16927625c9fbd1cdf6bd5db47bbaff3b3c9989cec607ec3fa049e5e2c4c84a875e287f87b62843c37555294dfee16c9da0457d36f3b7a48d12d765620bc2462060efd479e5525616c990e54e3da3406dd3e0f7afa872ecc4d4f50ff09f798148ef4f5ce2d9dae0ac96520f091b5d5a3204c0502e14ac617c91c51027be55d2b96a1077739b8ef88b16848aeaef2ddae67058bf45f053f0138da7bc5c0b98a244d740f49c13f927675f5bf3bde3fe7ce502bda68096fe7e96f8b3b3be09bd30f7c9f4ea1f538dc3cd8bf2bc3536ff9d172ec4df0d0f796bf92c62ce3de1d395b397d623a5f2c6e07e9d55d8f73a1a8a021f4f7e7c098b7d7b5b69eb7944ff7248467918702efe0a4efe8a460b60eadd5dbc8a262c8f959a8460dcab2520a450b36818e1cca75890a177a64c1b86f276c137c533515076c411c6a1d11f7f0c049351a45be1857034b35b2b3978a44907485f9a4c1bd1837fc74f0774ce4c085c1162df02451b2483a9b3394d249c5c63b75e7258d02618484ad5673600a1f0a0c60d616e120d325bc599101138b4eec64804d33e1126029114a17a810ce98e0f34c07917c0521496419de8687fe8c886ab734ed040502c960ddb27285380c04607c03ecdc9413c2ba40955e58aae80547cc382b869d23f15ab07b8b29983ff8819616eaeff5ab8168bcef231435a772402240812153bc21769d1854d935a55014914119f74367aba18ee68cda88718f9ec49f74bc08be6ed85badf19948da9e891c1cc4412aa29a2f1b951a1c3ba42e702eaec1c855504b29fe874295afdb38342fae937404f58d3ba38fc3500b628fcefaeb44511390a0ae32e2283ee95a5c7a853ab759fb0f8c5c8ba8a7047c9f08311930f0c1e1c46d049bdf04f737161e1da288bb4def1f03684f963d0d5aafd790f674a72e4a94dd6adac625e67779defd5e828bd4e2cbeae9712d9b78214ad953c10f7b77bb21acbd400498ab6af7adefc7cca990aed5e9129a1c21518df1df3d2c262580d1e575bb37ccf354b8d104923ea88be44fecab0282e13d2858682124594ee5371ffe10ae4fc21c0805ad8329118354769b9710967315daef3c217cf2fb0328301cea49a352eb66c64a6503d3881993b42a9b62c8f5701bbf235e0053310ab64f38b507e41871f6089f4d558a58279e1a89baa6bec99223d982fefdac35d0ea42080d2b4714bd201b837220c4b819557953f4f7683a2db7e035771f05bbdd94fc2162dc3c330394fc75538275d3f9a658cfb99c9a4661e7e5024501616654de947a2d0617549085d1851bec328396f55c126a3b0fe6fd502e555d7e2805a62a51643e0d627eb47c3565142c1bf01424219279a0bcf6e7ecd9ffec13808edd86931c2f09e8f428e7988b0c2d7cd4c7a6d24204f675f723fd37fe723502d8ba0d2c09512c8d1f5f57314e41e7da7c4d9b6c24ed9d8bd0ea95002396fd0bcdf9cea01789f9a6f8d0b78da3b4eff744b2a6e10aa21bf8457a883863fdf1d65d5a1667a7aff59fe0e7a1488890740f797a9213e402b47711f95a82eaf7a5e89c0fbc42fa68c73cb83a285c181ac9ff3e3a086b0a8928dfe9e9f26aea0a4592aa33fbe835cddc47be8f2bd8a490ff650fd45d83d2405fd71c8a24bb56151c2c97837d6e6efb72f54c910d33d59650245566241a3f4b8272ba897949ee67c0af1390d3b47f4c9d5e3e86cdfe138a64cbe830e0bcbc0625e48f204292c6729bc1ffbf2384c37d8c16fbf0b336b30ecc78c23facd5560b2dbb610ff06362078d700ee66cf3013321d385a5254aff75b38f6ec958c43a5e2ff6039b67e1e6649b1e818060dae458b7fea82b1ac0898a289db506b2a4f66fea9be7e6c1af95e164dedde469578b6728ff369265a3e07d60b0d36af569fdbb9b0754796a793814618304d567fdf4dda3ba20162c4774769fcbe92495f029601d33350c9fa8f2d6ae92654d331b456e4a2818b30d62530a30fb5449bc13495612477091fbb9558b2ac1c5488fb4da526853e1a4a9baae968e4bf07809533d0beaefe5008246b4ae649d6e3f72400219605d5199f743a3a9983011ca6a1c4804127fbdd2596c981f3c2b43cdea466f66497f981888a497f827f02be17c0169da9613f23b524aedcb06c5c1921136276f6f6c1186196b567a929eab674adf6795bfc692a5e3b665a2da03df9ccb894f4f0b3bd6ffb639d70274bbad3d2177517ca0b2714a046e7e49ed118c869f152cd2baae5f692dfba7a07e80b8cae6da0c5dd8541d104a56ae90a72207f5145719c88cdd6e6337e4b8edb39cf10b0a01dc858e4de50a5455669447d96765ba47982330d834a1809d3a61ef7f1490c84f8ee55d4af9599d53b2180467e4a289a9acf550e497a47e71ea3141672e1a3ff3401841f4bdc1bbc62e3405a4666affd2c805dee24a1d5e4d5a7fdfa666867f3ceebfe78ce1a926447d15de689dc7c4fd614660dffa5ac982db37428de95af6c4317a7eea3c3d89179759a0814e19fa3e9d8de1cdf41a43e162c80712b5e47a4dec3a2b96aec3a45d17166ea24242249b48ab0904b145a71f39ba14b6b8fc2fdc66b045c407bec3af451ba77b0d520ce43261b95b34f42f413f4658f6f95fad04e71647e5017a4e08dd501849cd69cc961e242a6d496e48bb4561030c9e0e76d20d835626a3de74f5f9f26b9cddec9af5892612625189fbd21b7d9a48a961c26a7e9420c2e5b289c66f2bf2080db0c4282589ff17bc4ea612a2c3a52da8396787d71a0062c6c54186d199f235d98a96a317636cfdd31cdc6d51645a743b7e0509f587d828eceb349591951e049d077cf0ccebb31b0c3bbbb0091c049cf06bb5a881d4c68e1b7481b3aec93b2ba08d2b0c96da13cebc5a6849a83f8ba7b61d820b69f391481c24fa58192b8dc73b9caa715731037d913226f09242ff7a357e75e5696447590a2e191c1b51a08ee15b4e48a18d4138630765a7da5613bd8b7e4aeb38e91f225970ab5a7f004cd588842cd2ae191bd303f5fdef385feccd8ee713b43dc68434448e234eb9c3193e63efdc77af2c07151d26d0fcc102b3c15c40e85c5fc939bad9d617cd1f671793ffd8a0f3bc70cc2083c3775a2dbf6ef3cd92397319aa263101c0a5c582c0402b19710556302945fe2dcb910edb4eee09d387cb3acffa21045c9c6f136f33702adc147422d59049bb094fc3271b5699305af2e8d27ee5dd521e2dada916a607f237a2574bb404c4b29be8c88a157d96533b5e32610d61980f1c2c4839ff82f047544b4f98a5a144cf6d2eb8ce8e1843b112de12dfb6571ae1fe0e42a624ac51491a3dcc68a105f059575242e6166f0c018d91a9c88ea2d7b5522439cfd7a21429107b5d1989a10b72a5e0aafe364eb2d689cab1b690dd724bcec804d187859e977002e18975fb3d13a4be88dc0f818f0c21014af9ab66ccedb29740b6d47233f3419e008c577586f8313a38ad770bb684b9beb6f5f5779198be549d72ed3759d1944bf16993caf70ad22f119df3393b90210174ca727cd8a052791e78c66765b9bff7ce70ed10b19bb45198b62d10dbc0b69730cebc8656ac4cba319d4d9af85ac80ac83456c395ce0a582b70e49a5296b2b2d49177912a21c834ec703c81b17b70610c3848c83dfe3d81193f3b7e35086a4ae0d6f5f3086210a6c4ac70d946c8646f7855ebe1f02f272d2921934addb97ca854db09ecb607c9650dc615a49165e9357984dde4436ff96600c887212d342e55f5232c61aaaf43125a3a9a9cfb52d062340cc9baad7f3664b867acd1e891f203a3520a91ce7f5371eb89728e71c2977e243b4a011e4bdeeef627898adf186728da2b1f9be9938354500c84a7c6232e9e7b4df368a6f3f6779248b03baa8194fe49715a17b5c3ab797eaaf03ead0a92da8381c279bae8acbba02be800e81abb1c586845a1c3cfe0513a688ee8b774e95dc7988b53f97a8360a2394b28c8997faaef979b97a3c9719f57b6dc0917518aa57220aabb8e3a1ed5708f09a4df5341e7e79b703d595d81db8e5abcdd869962cf5e9b2b4e7b077db67e4f1efcf5ce82599d0a40a0b311873c72a2853f6707f1f20be872eedbddcd2e22d8c1e9bf8dcd79254948993dfeae8058849517459c1da16d846623548bf97d5d696af8bdc0b291f487a70434f6d94dbf9a5d0c13127f71ef07577026a1e0119d1605446abffcc53a045b49c837c08349187a6b22f667e7f34e2efacaab56aeb3d57708656497bb49e238539278857620522920674b5315c1ee9fe35b6879547d484a22b2969d22aa5e5cb5765e726052f0f945783381245c4a5cfd05bf39b7587755e548670439d29e1e7d3bc1647c4992f0b8cf5218f247bd8b5f5fad8fe2580b9c27e23629e35235c46541a6421a531ffb12088af0087401ab708b7b3ffc4ee229bc33261808e9da6a600aecc5eb3451192705776407fe9daa5b488c841b0b92dc369e798ee9751dffc1753a1d169b80e4b49d1b6111ace0d20e6bb0dc3fb24a09a99de86db468779e460347adfd04204b30e6f78010c2fdd7d1563b42ea3f315474f807b1b2ee89424c1c7cb8a1cbffabe83d46488175e944218a04d099db51709a7adc7f0b6eab5ead2eef51f6a30ffd0aa1f90712053be93a848d5a60177f2099bb96365086b0eb023cb6f324afd931a1d24d5b843fa0ae177fc286af452d8f916d3b9aa24ae51b0ebc99405d8d6cc9214bd954db30ae65bd86c2fbf407e661fe9507302b4ea5c5ff6d3f3ae801b92e257505558325d06ab3949db258a5a054c9520d22b22b5e0a5da479d5d94499e1e7f32a07912e0f2e1e73cdc0d94782202efa0bdf60721cc17d7dcc6683233d2746d3873ecc3c986f1e6b8301dd6287dfbcc905b04e4e0d29cf5c963014c5fdc8bcc2937af95bb7a7b7f262a284c0d59c0cfc2c88d23661c542482f68e7d723bf8cbf41555bbd2fb269ad7d0d17df58630cb03a6a7e0b0b6fb2ec935ef3f409e3d2e7b4b7042709d12381fd2109c0bf7364c9e9f797cff9353257a73b8f1c9e3f2d6e7e13cfa7a8f36d205c01a5d99c852b1c57565f64fe590bc5a3160d90c8141bc5cca32b3482231c4878a7b9de71ae7857765ff551401f81cb5be6469de481593fa519b301b9a6b2ee0a50ae58748dd4b3bbf09315ccd8df881322ed05988da3f6ec4929687428aabb260537e869466ded336e61a0be87d6c34b071372f5f069517af468e805a47f38f48144a0f2499545ad8f19e36684d9b400826ccb158a6eb4c2be6c4c9eabd0937ce73f99baa2128b034d394e69244d64637e1f5efcf3be515c606acb6fedd79d8b2531d236a1cb9a83b01521233b523f3fb5a56dc66bd40a3cdd3a9b247f28c42b31c164a04232c811a8c95ef38674dba740026a2f3c7d4da4c21240514718aa73bb088f9cb7826a7a4dbe72cbe49ea9846181f112c61de114868c50c70b1a56b68f103d18955c85a32a28f0eb9ed80472647cc4f25de499d61b9a5fb12083504a71d4542806cf2a7fd6735f45094de6b44cebee1231d764a09697aaff0d8b259ecdc9b4575009826269ed69939b0354ae14aca08c535cbd4dfe08b9230044a8d4a6366cac13723ce91a5cf50b8ac3274ee31dd16d5c0930cbf495a094814ce91ac4e2b19b2bc2620d3b0037ba989915d089339fd0fed473c95511610a1a7c976eb883a152c8f667e3603153e9c5357a4a4de1e8818fb1507dc76960baa5370c21719ddcd770707c3a7958f2b1f3e298691bf676c7a0061c4992adf77fe28d53064cd0c3888a858481a87d89ea4edd8c36a640ef87c372a52e9e853c1f59259087e7a3baace3dfd6cd0c1f081f6e8e1adb3bdbfffde6ae2a0d4b8aecbc8ae6fc9fe83a304b655ef8bbaaeb4b1ece6491c44fdfc9733c08d740a01075882d1eaa5aeabc05aa6577aef0116eca34b3e1ced5e662d0b79ffb9deb5d83973255e976ffb2a81befb51a8475b5b0edd5149c51fb2a7ee063e7ed1178947a3f9729675fa0aab071014201239db158fe056bb3e34ccd5af9e9ec81a6920b240a2c63c7ec1b9cf5615282ec6fb5eb6c6b40831f2e4990e897fef3d1d0a07a739ad07464efc6fa3f8ca9a5375c4daea4b1ad758c8d45a882753944d0c893e0caa55fe3a00ff2f763076c08243108b9b6f1f0e41620309525cf43953fbe056263df1fcf11bd06ffc824388ec584bd49414eea8ca4aaa699d18e82ffd5215f4c55b0b9a212eb2c93d71880ed5447c90061851f46d0aeb55a1ec4dc0720b92f91e8fcf731c1c415fbb96919f5d99c906233723d1173efc9a346e0f11975956bf2387933fbf732abe0d3a095e1191bbc939380e3c384a3733f5481faccc8a81e0133f356317a0cf0cd20c15dfd25cc993b96a942a7ce90e338aa51f7c5bd280f2b3c982dc5258b37ca7ee23be4302c2b9b90576f4f495b46a5aaabe688e79ce70dc2468ba64901985589fc3422843bd7c4f0b78b56113a8eed389485d605e3df107aeb77dc42cbab641ea66b460b12c2946e5d5ba9af5e51e130908efc8ebebc776378405c33247c30285e605a66da7854834311be1d0b508f21db9766b0dbc8b92342075e0390d75964c8ee2cf38e19b0f96ebff928c10af5b7c358acb18cd0cf65c2f07aa2e77d56a9b6f71ecfad343463e875651ec9bbefc86c1ee59e6941a2292098c854ba2cc6a0cdebc80e01a462dd412fd977743d556ea4226a7c4416a45809c0fad55ea9fa38f944cb2d52832d0f7243bb2b523ec38891a14cb5a1392044d71e859e50383cd850979c35155c7ce01ced8dec8615fcf20767a8b8346de9dbe978e0cc63051b6be72c89a488025c6442552df2c20db1518be4279548f319bc178f591c800988c493fade7abc8b3953216dd12d58d4b5cc1369400a60651586beeec192ba9c95e5ac2b86b9315a3f4bc588f0aae42fcc5dbb8c20d505471b0e861be1b9fd33fbc5848f6d1d2e8c4f38f96b7e597ef9b601cbffe809631c1cc3f686a83cbe7d15a7af982bded1e9342958e56d8b42021f02895d52ba86317928e01fdcae84110c785604f011e0d3fdabf4dbf7c6220634f7e7a5d4e507d79414326da7567a7e246b28c4997b65a6254b0b2608cc1c5915e99e2a3972031254a8b673e8a12972bc15d6fe3ef4f2ed929f16286f06976ae3d03a20c10d821b398deee66fa16d838dab9e582529668cde72b13a7be3b594cefb47a2632c7505d32776aa78d84ccadb9d5d090314bae44bc1c10f0eca9d2dac77f08712a49dd2383e1ca4c7eafa354846101fb876e6068f00190d39878dddce6959e455830e05fcac1be5599d3c3a5a4dda91dec37beefc6a7462975c0cf302dd5141e2fb5017a54118c152eb822484230880344bac4d1ce6ad5121ee0d9c5f1146f159a0cc433a24ed478b4554f1d9efbb122bfc03059b03b87cb815c89293e1063fb21ab3c83b49c643409094be68e084d4d8a2cc58ed2a0fca6af9421d16b103c892dd43a41d33dd18d68831975f369e766186a2ced63a7dcdbcf47100df1f98ed0140d946b28ed3654cf3b1cdba4f0e07e2932b6b10c9ef2b8fb3c6d01b0f840d2715d90008f9c0f30fab068409312a8578d2062b1e933702bc085ddee30bba042d93e9a95e6f320b365ce451723580874eeb31bfb9def014787e96ac2120c730ec95f13b8f63bb9af2dccdc21938bc1b0e24dacdc7ce30b3ca688665fc1b68f3f3af7377bd5a86611a073010588a4ab9d23afa199b66f7e0a85f333028749775deda278d84246b681bbf9f59af6c93c552e8f666653129c781f34efa0b8515c8b0cb5b05a43a1039217fbc75d3ceda6b19121382256f58fd88f4a67e2fdb2dc10a6dfa1cb976f313f79dc80c66fb672b89137b9bac937bedac45444d8330ba4e9b59569aef83df01cf65d84520262a7bcbb2802a2f634a928c2f7d634fa80069a5768aa0d54b0691941d76a616f26535448ab11a45b49959602ccaed9806170a7af57cf649df5bbe5cf67c905d89084e48e31aa189af0462027079727b8de519b4403363d0299b84e95a9cebf06a23cc3821d8b71222e05cc168564e3c0278f2097fab095d7a2ded0e57ddbc69ca5029229f305c3e74c6c986fb855682464b46264b9d6e29c1f62d6e0b4f1334c8b7c1fa125321eb22bf01a601b664846e41da6a2f0bd7045dc99ab37439113f103464dfed1ccbd0b21c12008664b45d9d3c2741c45544e3709e59714f92b4e64cc723a9c42fec282a30e10333c0517435c94c98e2e991a107d0e10bd49f482618105eb3707615be5168b5e768f26da75af8b8edca3f731b39b7b7d95d705216576caa88a842fbd952c3c050c36ac3cfe1fea4fee1e0c2dad868896e8017e730474689782461ffeea45350aa85a296bed8c754c1f33bcae140e9e401793854a3f3272df4c38468026398ed83ab43253857a5f908aa42fe699da16074643c59ac9abd645f6ce56ffd387ce9425bbdd0904eb964535ef0264baa96a761127d9661fa9656b01dcedca5403684017c3cea522b9d0d7d2c1c5ce6705b3a229ea397ebbb6e739db9a633bba95245b066d97817abb59f1a2d0ae3660624a7546bdfdc595f569eff56a9092f91fb0174d3668c82cd6b7bd000b459b6e85525a13051fe79d9600a65076e8e6e8401a09f84d98a892cea509dbcc49dff007165c56a9a3dec4a836ae8cfe3a79d75cb9ea42c86cdbc65a02395f28d9c40d4af37c7fb230f89c4c7214e0ca64ef3dc8a1d018585af8cd37f1b3d02133d6fe80bcec3dd2e46bae80d079e19905d57755c19ef48fa631cd0ca9dff2ce59c3fbd106371b739ae23c11d2e4b5050df3aa57bc3ab110091e8f197d7ea7f982d7b6de1431ba17c016eb5c90c6488ef4af55d1c8e90b036442567f88cc22f09456b5392c1a01d7906f9c1ba1c60d56b02c32604b171d78d18a66c427a762bf343848bb470418517214a4955021b896f5c2491aa420e10ddd79d73504d43dc7f3d3a7cad4ee8800b79799c5087280eaf581739782871d9bd011e1bb99e680c12fc8ce5ec622805e369b70f9d3fbde89356f20134208bcc53f5685defc85562ccc6ef8e563512e2ef3903f69b351b27917cd40cb4755cc025b63e8ce8a119934ddb1a05f892de3104bc0eea57a79a1d11fd8793d3402519bcd547ac86d5d08844c8e0e06ed90712219973299ec61efbaf47fa228b9c3ac73ef0bdf392e8af9da1670deba8422424c79a1d409a36a7b5631d6ef8ea610f8aba85ef148444033a63aa785b4094aa4d0739ee113297af9f2e38a86863c0cda75e0178488e1f0af10ad4547106f833c1a240e531c6992493711981d1e786d5bb9f038b3ecc0152d0ada8e31e942f0cf0f417d8b27dbbb0bf8645bf6da146f6de5bee2d534a32054e078807ad07718a24a8ac4e35d890ad5c2724f16d609dd60909e8434a2ac2a836451c164631aabb4afadbe7234eb348ae7bd187c34518c544b606abf2a35fc832a8f20bb9882abf9083a85272922a9f3f10f83ccc0ba0e7e76f06ee41bf357e20f0f98e430f0a7d91089e91118741c94c8441f99dc738f2b767148392816022aa7c54957cc3a07c94a6dafc460b74aa7cb95ba37ddc9af91b72010db787046ddaeee9913df263116bda45011424a821e2a0ca88a4ca288320629129a3922a5feb9edb1a8ebb491fd07d7ff4f33131a01f81bc18d087a32a3f21ce3ffe9a27ebf4d644450b448a68f71702912306e5279f3f0fd8bebf180643dc4fcea344a0dc73fbf984b6aded8d4031557eb42f8c55fbeedbd35a7eac1f2fd6ee38d73caff2734413f6f9781269665f3857850a848cb0a68e6643bc21fa5603ce9f8badaab2732754c3f6c5438119ff971656c365c35b0cfa8750347ec8ad17f8b7cf33910b28260cd66d07872b843455fe9c916767fca59cdba679231fcc495af94b7630420d294fab9670fb589123682806b3f9412c0aaaf1bbade91ac3007c386afcc21b996a0a6e65c29943fb3db0f2639135813df3636b961475d8247caa8c32a832161183a8f243435019b8d41f8cf6fbe30330fdec829c1ab20b722ae8e9b603560ff2baf6a674f9fdf24340d0fe8ffb42fa759f03b804b37dac9c17b37924d233287f7a320ccafdd495228723d5bfe652f693cae0fd588382200fc8034a1918940c4a1918949fede0035cc23e199647062eedcc9947904740df7de8b7080d252a74048d01ddfd843c1e1bacc973a4aa4ae984d74da7ca28a5942fa5941fca9b2a41f2773048bebbfc8c8aadd9ce932829a87f2851b2c89a24a84a9632a892ca223a88aacadc89e0541c4911aab81a341c3915479286a7e169c8849a4d6d7742e3735c435f42b71a3acd872a7c0e92cc8a67fa99b009a45101ccf132a4981ac61583bf42634d31f44c89bf68258b2d816a7f64b2355ef9b78f44060d8217b5579f2bdb75615b118cdd22b268408eab8c0a30079762ed975fdc00cf740c0cf6c715c715a80d1ac6d59cab5e31d831b256d90e58f1f402bf7f51090de36aa5f9dc69a96a485b3b2f43f384e30f05424b58c2129670920f033d223f77118b7e6ddac3aff77500f300b4a6ee57f7a37b94deead89f8f4d4d7482b3fbca259a67accd2c622ca574d17159b9b06abbecd47ed9acad5e6c466bacea8b2455d6d025874b61a693e2521872d9e18cb87811a45d9ee096d09943d0d02515b2d953d7900d162c2d2b389d26aecf95e9c453a6d3335750fed025f5a2e3927299c19a3e5b13ab73fc7c2e337091a287bfd0c58957fc42171bb88484d4eed4ea4883862cadda5cceea68cd25a569fe2e2997255c5a2e52d8246d5c923869856c5c9460d97481225ff318b2d1417129e47242414244a2c70fead91a1d6ea74d2e35d81997d40a60d0680156f13da8cde9b8e8a036a753b52f7411c300994bca25555d74a48bc7e5845e6c382170f2f7e448688c359e78f4d4170f0fcb8d1323aa2f9620a20746aaa8ee921edcd425402a3192d455854184a6ae2a0c226a2894a186daff2055fad88786ecc343d334eeb70f79b12e97247dfae204a5bfbfb487fc1008d36f54b9ef2ab77db6d14de46d0d79b1723faa1d9bfc4443bfcf6d89d2d73e3d486063638343a59f8b72a0b16a8f711efd0d7994d2fdf0a0f43f3c44cf7527f2b40f79f497f364e5360ff414f4a19fcf711f1e73034dd03743df323843212f9ca18f1f1e30a1ef0559e9d3177da2a7def460e8c74a7ff340de11960f867eda0707b41379b1863c10cc173d17f234fa212f9c55f3b8e9710d41ac212814480d41ffa3abf42797b20f3df6ee516f2bfd3a06f7073424d598df3a6ec411a92110aea1e7bef3f8c3a37bfac138602bfd16b6d20f46f4337c38ac501817e8cfa73f5ff4dbdf50b5077921900afa9017c61a7a11f538ee42dee7f703fa1d1cf26ea820ef47573f5fb7432c00f79a177ae57e47efe0ce5b06b9c4a5ed4715c364b8cfb7ecb5e7626758c79f1cfa257efc44209eb29d6c277382ff841344a230db7122186c9c8ddb20ff1c08069bbfb05f47e4d73c3d13b6cbb5353c432e97941b2eadc904d71456b6d357786c5040bcb21d2e85345371290c654f644a42998bcf2082f6ef8d1cd6134470739b676bb647acacd5d1b3679abd6c75f4cbdadf5a98325653e1d2aa9abc6a7f2b48ed7eb984a8a1df04f9a8b44852639835948e52c39652b7869f63cf80f9a30bee4c83a086ea150424a89e469cbb433972e478d3cb3e1864ecdb47f7f7c3c020f7ca0ff77dac5781656d05b8b41f6ff615e8676f1f1568ec5b81a6b9bbbb979b9b8bc0cdf7628d3dc48f5e883d7ffc48db87747eb83df6336c7f44fb65d01ffb648f8debf61d41fd88a9e6c9f04c3ffdeccb413bd68de351bc05315cf2f78f1ec9091a7f670776638c31464dd334ede3b66d9ab67da1f6db73da16e316372dc6eeee66c36d62c01c342008e658ef4953d0102435751ecedd7df2cc66cf4cd3cc6e681b224733469565685450d190864605368d4ebd83d97bd00634fef66c17b732fde9a1eb0a67ed0af8d8a131f49cbd72b20158f46a7564c1711b43c590494854aa0b798486239984447121b9905cb04ae53a3af283e5e44c29041af64ddf4821700ee7f0f0e8f4f4c4ba1f1e5208349c73466c092751343e179242689c1f29c4a3518cf9b42071e0e2fb73214927b63e4e984bd88f5623d60e68e8a11f68385a71464509834ea98a41974568485574a5622f7b79590f832f5dab1515c0388423d60e96445eaf9ef1cf5ed844d13073c2a0b7aa3f334143ce49e5580c66ad393d6331a8d5112b7a3047b6cfbe9fe315c81d46ac51cbc553dddbd3688b1117cec3c7e8a667fc376f84d333feed654fd09bea2db7994374ad51fc50a03fcba4a021246874ee15b5a021a77a557f4ed5a6f8fedc6a6bacd81af9fe1cab4d194b455ded3ed0ad612aa4293466b4e219ffb0eba0b0ffece828c603a9e8a8a77a387ad5d18a1f7baa6a13f78d563de3bff117cef9a9ea8e56a31597bafa8f98702973c2a0ff68c5259652bd358252fd69e675adf6f76cca4b1dad98069406a7c147abeca533472b3984eeac0eff5e3955f58cbf0a86071a8e56aaea3285ea3fbfea8ff99c9476c6eaee248a0aa1ecde491550f9dcca8deca0b927c776577bcc0b7f681af63b18c4a2a41418e1688bea591db1aa87590dbb56f59741e8ce5f1d4e228d9888c0a023d668151242e387a3558ccdcb116e6578fba6713aa753ade9a23ca41768b3af54746dcfb4a128d2cde38039383145f30279de456a5116cd0add28d2f7cac3a0f167dfc470858c5b9cc3fbc23887a75392c73dea489ceec198c5a7e8c93032543c454f03f56a75c48f9f29dc9ed4d8ddf83a4fa8bad08b869edaf155f525fc890862d1d0534e7c8b3579103b6383357d56d948650fe2c90a5654a691a2ba13957142ae861e44e5946421c2ac8b98d0fd1cb0233484869efa14834b30c8aed053ae837dee2bef62a4781c53a833e1526a629f7da951ed2f85fdb29c547657e5f86d751e34cc27ed5cf4e2ca911bd41024af13d742ca70e2e6c479c499e2879e1327af48b9784e1cd652a20aeac4655634c941eac4cd0e4915d5090686ee82d545ead4dff60cef6ecb840723784ed159090e043de4f3f7f01efeb1d741e10db5de10e305a4440182390a81c6df6e66fe3c0f7dca60e9c18af7ee6eaf826e1363bc76570cd4b6d862b2e5fcdb98d4613f67ce811052aff8aafdfa54fefab53ae27f5c743f73a5b8fd95e911cfc48f1dafe87e48a30f1b7f77f6ddab48bf581d18f6cc7b52c5c822846efc361603c1d1f097237128dc091a2f3f822371278ec491b81387c2a1702338147e0437428f6710a4a19191891d819e9352feb4c0a31a468f8961fe16ba475c1dee2308d5a10559f9b985afc33e2d6012071ae3078715cacff1d323bca1720b73a706e297677012c37c7db35d2cfbf57ec497bbbf96caf65cd97ef38064803a6b1e10d600ed5cf5030c46d7646cc8038ee0a288114e48c13172460d49468048c2430b0b29372083085a182948b5681acc476ed0284910018a22a87001146490b164082dac9e358e14016709393c9f23a891460f4aacaef062cd18b9b377ef2ac075a8cc472a1307c2122492ec08c1c50f7c3885b47a193524557715aa3f0bfbae0a42aafa18dc035d056c39d4ca37e03adb1c0c82ddbd9fcc19743f16a19d15bab1633066d9fa8f2ec676d13041b1ba2a284e94a0a0251c9228ba1f2877033194b80225896d099d755550600006e82ed3dd8d49c6dabbddd77d334c66187bbb77776b2ef213dabb7dbbbdbfe69f53bab3bb3befee3a80c1edeef66ac60283fbfe3d0036237591492c9398ecc0c8366dfaa6cd4c82de9ad7d33377776d76d632759bbb3decb21dd0d8eedd340c7eddeab2d47da95bb7bdbbbd63c750a563984f20d28acc867ae06062f56a7f0422ab7f63b51febc0ee0b6f89c9b9bb32cedd53ba6f5d7c1efeed855d8e0ecbd4e8d576c340dd07f4e99a6cd1644ad904c3b0d9750c8934b5265846837ed1b61a390d8b71f3884da009f60102b732bd18a8fb80bc4f17b78e93a151818666c76705065798b3f36454da8a152bd77ddd397afb807187f4316c1f17be7e66d731249226b56e99ecf3de88411aa578f708d56943b3cf0b73a34c29fb30c70bf73e3a6edbb6b176766adce99dc6be27f7edead0b6afe58e0e346218b631c88c38dd73400448a264309f004149e5cf3e3cd801537ea0c2065d98a1841064643a90d1fb832a95dfe58d4f0d55a8417238124bee2c3f9052390a1de808edf40f825404d4ee700895269018c2c80e7690a2e5c0437ce22ac9684b683a9666858a6b45f9618e48ab6d5b556eae403d51014ae7090f3eb06085cd939c223a4f90ecc0f344072c60010bd693253db0b06a3d0163080b57f08c48314e439140e30228d8e0a25059a4864f73a8fb5043fa6408d1451445703950aeae2a0a2332608e05a11451fd73d0a89ad054553eb7597f86715056e0d2e142a7a7e0cc05bd779d33758f4d7e5083575371c39c04029fe72fec7efb1d1c72fc5ca47486b0fbcf03400f24d68e7a2d6ca5229187c34a1843a5dfc61ef69b0744d68e7bc871011f512565d4ea9021dd1e866e1d318a921894efa61018431f13e1fe96674206a2caaf4d3030f4873ef4d5d05f0db1c9132b38a71a6cd0ae589d5abe061b04803af5dbe029609d90803ef4379c628b077202e487bcf782760ffaf0fbd3dc43837f18c5608be435fcba3504dbcb8c446a83eba4cf0d086d7c406d80426d84a83b2f284d4045524a2912b14829e5e7b2b308896e741b2296918b74ef916ddc70e9641271b1688312915948263c99cba6c66d8f4d12a9bb6edf19cb284d3d12a160983b2834435db7dd32e7de55c452d7bd06ef952a6361d5f86956f554aac5634bd753e3a7d79b2c657169964e1ea1a1a75aba1bdc6198a7a212687c1a2ead4135ee462793a06b42473f3cbca77a8ac90b3387af41678e6cd114dccac43d2d6bceb852ca133fb149a9b2039c2a4930a9c2826d08f4061bdc16f453846e09fa7175395013ac688252277ea02c47a6a80104d7841a41362be8bcc201817e8e90a2120423a83ce96840b5ba2a2a2c2aabcd414ca3950628f2c4293cdc2d85c1293da572bb18acbfed22b99a0aead1e3d8c23a328362efd664317236bcf56c3dcdfb21d76d7563f3398d0620b3f2eaf0df7af3e2ea701bb4afffb1e79a79d1797548d91f258f64d181462c2e836273cb6f908a7302c90bc9e6e405831ad247e3d5821b2f22dccb7075552f1c6af83458175cdccf0e0d339cfd0ca7258c94990e97648d9f25a152e367ae296c8a3ae8644f1c414a8d384c6acc76b2568d99941a33cc71b81466a91a9758824b292e7d4604971a50e36f9819a9518bc8f5d01f19eb5b2bed990e6a9443e8aaa6a0bec8d9781127b038468e31f627c61837c6b8317631eec6e82d7f268a8631c6b831c68d5df7dbc7996270b65a5df7b3d47e61b644a99bddea3e9014900be4ea960bca05c5b2d32d908b65876587bb61d9e16ee604750be4ead6092c8e070e4710ba1d9dcb692928ce0897e272fa432e277e5c0e779303044c8d91ce9ee1010d297fc82636e156266471f5c7974268f3703882d010843de8c5257feca3c16bf652f7433fd010f46271c260a6245ba91894456896b1b0585a42a8fc908515060da0575440accc2344e58f12f4f2403d2dc8cab2434316160b8bc5093f77d3261818643cc90f06fb3dc9bfe134f903bd4054768a5c4025e901bd7468d8b579482e8c859a9be728af7bbc569bba795a41b884d52b6ec325e998ac2f4aad78a8d9d444a957b8a48016c216a0c7ca96e28298dbb4e9e5dd83752b0bdb25b1efea0c06a1923122b8950907a0aa1345f7b9dedd0f0fee254a0ae9fe70df71d1658c516e1e7be86e1f7737e9adec6295284a6de8f6994acaed777b6a43a7b6815cd486621c113464517d3cdf1466827e3d29d84814e55ea050a1fbd26270beb8a80df5ba363493281a825e5b0a3da480e25256670a3aa419d479449da1c8458b35a130c1a062d4f9b99851e75324a8f6da872eab14502eab36bdb4e277a379337e8eecfc97d60b14e65635baaca2cb2a8a6afcccc966adcd5c5ce2e11247172cd6f4f17c3c5dd4f9dd8747e46eb2cc49d6ca5c2caaef0a0974ea16a9d01f19ab6e2fbdaf87c1ed4bc1667e7f8ed09e998fbd68f8f5d4f9f57c575c557e8b4ecb8ecb6b6b3e55be0b152ec597efd263820d97b84a16848ea8724d2fad9d99bf55f9a19cad69a952baac3220ac2905d44b943a9f6940c38fa7cee73e3ca41c82862caa4c85fd0e8e91e2e3014d90abce9797168baa4e14747a26260a1a825e7208ba7d8882eb01f223151a825e753e8867fbf920295ce27efe4d9dd5850983d365c5e07cce65e5b28a51a5806ad3fc4c55e773a3e0c2ea44c1d533f3b91005579de14bab4e4ffb39b5cf65d533f3773013347459d59902aace5f99f9cd300095093b241a3f9ec1ed007c3882891d7c38627573043a240a4e0067a02abbbbbbd0022268d8a4a6a096b811fc86bb0e48aabbbbeb547e9f441852f93b229091020ff632786a0065082ba801a84330c308d59dc7cd68a2fafb6393827248e2eeb2554694d5a28c15f06027b278a9fe534af5efa49851fd476428a95e45f5ef501297b2536ff0f0493bf72bd57f05167c6c4d1c637e5284a8fccb599994d290133d7447a44057f0c0e17cc668ad601b9160a004064c3a1a6507cd088a1ba308452612af6d0c368a64a79c961645080fd84906aa1925081da4119e2cca0b70fc14831d2c4a133ef4c9884a4651826224561e85c90aa2112d235c340a182ba045a0ab9d90a069b046a418248071a305ac699a1290a05a420150578584233624d0afab42020e5d1114852859a0718510683831058d263628d01842070d225ea08142c32656faca41f51f915c63bc9a6883f322167185739eca79cedd91ce8644c77a9a39a9045303cbae90f2921f30327d051ffaa5d484a0fe3c23436d3051051355b4c4b216ab99c3404115c6903d665bac4809eacfb9f698a77df6690147c5b22deaf68d7da19cd5b1fd0e8e4a6818caa9dbbf6cbb3ab60fc71ad435ec632827fb5235867270546eb706009f167054f9196b6b70a050e3ab474c9538a4fc160555f370d9c708b2ef30a8c36033883f9859454ca8efb80e83432808b60acc5fa602839d6519cd0a0c760ed7f12498159406a755307fbec320d8998eef80edd9ccb22ccbb22ccbbe797e649e49af9b314250703a587bc6f5cabdca7e829cf94f4f1ec13e62ae6a2e0b6e7269270fed9f1cf7ebc9385c01c098c2e6b432b46350ded01f124575319136ae2538c73506c7725159ee8c333824705cc45c08755601650681a0ab8b00850a0485ea2b7524111a663a9de93433c85f7ab1eed6ce9230c8d9ce97e9d87412380e5bc235d86e73941826e796dc0c7a058dfb72bb0a1658a85458f0d0d151a9b0e09193d3d383050f89050f4f4f8f0c5288142299482162d475ae8a97119514e3bbbb7377777777777777e3ee2e1645e4b88b496f1548ac847dd84b190b1043f815931826a5dcd14cb16f7f5daa7f40640cb0f5300cc3b22cc3b2176cc48f51e60e63969344cabef9fd0b4efc52d973e86729a5bc8185c79f9f87fbef588d0e054bc80a88ccb59fa34c2c40c791ef8ca495997ff908cd0e1e7d414be1f7b373fc28831c4e2a6b386ba8fd936292277d712981b62cc1a62029e8483ffde17144caff7c44a2cf8efe78f4f9e3c2925141df0c9fdfca61deaef102326ce2a785971a5a15415922d1872da97056d18bbe503ead21a7fef87833c8076d3e50d94f9f6b0f069e894fe9e7230bca2da9e50803833e188c0f039b5cd53ec2ae87d7cf176231a8ea1094eafea13f0241aca31779b12e60c70e061b068e85a585f3b4efeeb9b259e0a64d9a181514e2662751b4432d18bc0714a725d526ed5b765a9ee012fdf8a2e77ab6a767e2733da15568257a6269e6a439b6a60654f42115795b475eac212fcc6a185ac996548b0d6afc168f85db96d4d6446075445761134217c060e4384f8b2fb8920313506dd23e827842df12bf45676b441fbf250997d803551c415c350cad4451f4d1296848b917799d14b4496dda9e5d155a513a8a1347a4bd48f4346dda5ef4fce1218a128011bdf6379c3e1f0f067f2d0cad4435706abc542767d11701ed145ac91818d0cfcb1ef9312fa09f97aeda3cd789212f6cd9094db889009f7c9c41439a05ec885b03ca959bcfcd19b5f821169736e4a49b78826a26d8f44cc76d5ac76d5a134c580cc6ef3e86536a1db769b1326150c56054c26094407f2c80bd7f3030780d379c385742e587cb0aad56314150aee18656ad659960c360dc534baa67b029d4556de2542aff9e36715fcb36a746694f8def49e8729cc76d907c6770da6c271fa33168d8926a49c56fd189dfb2137fe48a2daa1a5b5835b6b46a6c71d5d8f2aa717453e308a7c6514e8da3948eaac68def3df6249a423ff217d296d48bcb6f887c03673355e4efaeaf4be97dc2cb95d2bb73e066ccb26fc433912373153e67fc1d1c3f18893d0c5a3cc1c8ed51b0c90f06d3b4978f022472d31e0548fc8361d3bea658f6edd819feafb1ffbc0080c5e47f955f38c9c0418b092a86d8220cd629ec6f051a156822e6030d571524feb6699f3f6367429ef004a5377e41f4b75946cfbfc30797b2978f012e69cf39a952864b6f7ce11c7d21583fdff2859fe80b7da0ef03ae942a3fb9bdbfa6691fb5f5b2acab59f6eb81a0bb24b097aa27581df2c32ec116a004ab00c6a1caf7a87911882a3f437d48b03ae4c700fb92a0fefdafd337603d69c0ad4c88e5548f71524a22fd8320cd8721415731b4699b19b0edcbe289616b3609f049faaa4df2a3e9197fb0baec9156d6245bb2676be2937aa043240ed53ff324c027295b6d9a33942dd9fa0af68c6f5f38b3cf77a05c1c41d7d57a7457e88e6601eddfd511ce1906db1443cff8fb8cda871d1157adf9c7d0fd3d131fcb9156b8425ea2b6b814469c1a597c6235e2f354afaeaa474955f524a929d455ad31c58b9b7a80ba4b9c40b1024465716955568870bbe273a1b89f175066b1222a24692217868440e4d7907598071afe18d58ec11394508ea99d89aff3da51b14d188fa05837ade83a22040de3111abc1e91efde479c48049be4c74ebc58234ecc89cc129541bf79ec1114d5a656c59b56b5c9553164d6ab6e0c9bc5ca82702b137239d59fc311847aa68a9fca7b40c34cc53553b589dffbfd331697b8ba2771ec31ec69dad48fed601904cb321583ce35cc5435478b1f357bcd0b47557b6ece656d5773f9e01536bea6c519490f626470dccf13bed8d172a9a8fe1f1efed1dfe54e517d77f7c3e75d9a287949fddec49c118726599665bda33ad6ddfbb5bf8db14977b7dc6119b127f1b868e8d260cb01ea2f1fcba2a1a1915ee7c2d759dd5d62f1fca34ae7189ffb23c52fe8fc90c61fa31abf968bc707377f7345d3b5e8ccb8657bd3eeb946539a9de1a795431a1c5728cc0b0098a1bf86fdc1b850637f6095c1a2f41046116affee60eee2d758c272811a62a8a0ca89a9340065842d7218020f6c10441a2cc3ab891554809103173f9c18093ba0e1a460430919b061847413d83042c3c146aad9b861c3a6864f837519343402f814d64409f02f03e600737cc454703a43892ca0c829220934706050fd0bb5ef074d7577770fd5c066eb41159bc55440c40728dbcfa76ddabe1a8eaa1399d4884d75ed833231c93455a860340ca9428732525beca0015661a3fae7a081a9abaaf2a462755555baa8e1d7986950b65d57b86b5440fc69f7eeb8efe4264955ca5fae7bd3324cb6e4a4dc304d868830e766da625b47ea999e19ed9996717560ed5d1759d367cf34fd74bba63967d6ea1916cfd04b2c4b552ceb342bebbb4eb14681ca17d1bb2fc277777729dddddddddda574777797ceedee218c57299d3ee1296d328f4bbba091fbebe813e734e94ba0f1fd5986d0f8f21329c17560440d0ceabbd9bb6733c3aea0f1b11019beebed3de787ee3eb3afdddbbde59ae6cc24a645675c72df959815347ee7ee180bbb62bb3f56b02d9ecca8a46d5546452b158d8800000000c314002028140e0a8622a140280dd5791f14800c7b94427c521b8aa35190c3300c4206114388010400000c01a1a1a1e10401e983ce4a612bb7abf4b571a5eadbcbe7015879ffe8231666ae0086786053be3f38aab5257370cec2c695011eadb50640a97db3fab45c2045cf27117d8e43aaebf24938006dad624fb9fae99f6da2cf83e8583bc05634c1bc8adffd1fd4778e22de9b3d992d02631d5616977f525a6edab730a66003e5237e1d81414fc48e7e9d0e18728e5c718bc5edaa06bb7e23043d7bae8773e749086211280532662ecba64e1fb9a9319e8016e651f525ef0e62ecff85ad35a7eb5d14cedcdd668db44d44352b463136bce7dd7b641c5bca20481af63947911301f3e79c234e011a746a08ca48b171d2a0bab992366c55ed6151514ccc429fa8d3d99a3aa2dd4d1a0747d6b38790970ed1400adafd438c3e8e7fbbe1a172cb5aa5d3262b86bcc46a8bd548b5c037f1f04808867c92ff89fc5fd9d0ddf096d2ced9c33b6f8f038c5f5592ab69bae8881d1a416198029dc8672db87053c7c3aa30f90337e990caa2482ae7c32956d0f88ecd735a439e8f2b9c2853763b2d864d7b69ae726e2402b0fe968c5648e0378c863c37cda40c4fdb06e31a2e922da6186fbe3c0b05fd7282bf0f32e519c9bb1e4db1c9eb1a4b2cd74c0e8816673def172df64e8828505cab8fb6f9d44bd584221146948c9e64ae6f1e20e933b58825ab0939498fdbc91a7597a068b97fdc9137d6d2a3cfc79b1338f8fadb2d1b714a1309ad6cb366423df74f024df94aa5f2dbc450b1059f734962909002663d22399265f405177194a46f26b1347e7d189b543619d296f1693a600fd703092ad935dc1610e0519230a94dd80b54117bafb884a0420588997905b7a7fb71025c688bf6158ce3bed5899b8847f67f9f3b6591f2e4d66d58c30a7e0f47fc3a8b0b7f9d21ef3710ddd035999d290a6019dbf12d61c2c09446315b51571778d51b72f3336acc41445ff004ce046a23dd83f00c25f0402ba6bbacd4db6311109d94b302d00437f22dbe635a07a25a9f4d72e622cc4e640148ba9c39d0477cdb3f467090a260dd3b8fe4f73995f8181da62b96c74c913a048dda5d6ebdb1a412e2196ba7996b592f24045ae40deb859ed3a108a884e0868fe80881e46c32ecb16e576cb6a2d57f827af8454260f120ba075f2130b713e97c9588be24c0f74820043265611c30e8ce6ef221f67171a861c667d66db6a671571a4d7c8976d8cef2ba3619d248d6148b64116c7573e572ff81323fcbbbe9e969ae8620c0b14ec4cefdddb7ce8cb5fc61681c1a6df5e1a94c0a3bc7da83422ab25e5d4ebeb1e463703971bbefd202455f9d2decd6983216f82311fb0c1662e62c3a08167790500e344e8cdfcdcfb01629719df04811d8de3f1f2f42f5ae089ea5b6c8e93722d424740a23a92f85a34088b310a560ea1aed6ab8627945099d3969c70d2113c2400d1ce03418302a5ff7a094a7973ec890874050d80ca3bfaf0de7e6e5232610143cebfcd4df05c26fc7d2e9be5db5a7486629f9a529161f67427adcbd0d4947e1cbd83bf3414482bd562c2614d2eb7c119b51a94380502ab7987829d7d08afa3f3069745c96c3e60a239d63bb3fd1a011e684e4c99a524749c56aa5ebf023a7a0084b2d24b7c26886d675afe3c36bfd4b515591be86d319b00d254d3312568041da42d69f4e598238f5eabb8e224c90f574e961952e927a42f37d0331e22943bf67634915179befb1bd85e237c937face06f4314109d1e51931fff3cc015af25794d3f368af97addfa3d2c0729f90fae10f62cc22c342999243d1f20c43468bafd77d67850c39155ab685374f54042211e42f255e6c36f1fb3e919420d3c79f49f181ecfa0f9716be10d541736f5e950d8030bf7bf92ecde92e77b184c718450f22329482cefc344d20fff924ae289e0ce046e2478c8f6aa454c86b09e733011fc0d506464d04ab04a7e03a2a9c02406ce431186d3a655539904e30ae73cdee548781ce5aab0c0d87fdefa532610c067ff76d37f2bbe0fd8231e014dfd152580a4e1d1c84698eb3cf613cb5ea78e32c4cf3b101649096efd3439a946e7841cce35451f012d13f5c433c80956fcc4de55653dc3cee9cf84118cb42af4c9e48fcdca52891331ed8a91baf49353457f119380c467c13f27a974195a2ec5a8b190ba26ebe7264ad7a1016c04f66bf1200b3b6ed7e38484ad1f16fd8b72c546c025170668a1f531ba6a05397cc157d4ddad01d7e8cf4068d47617adad5fe3eb552fc22e71398cb824a888ce8c24e691244efd2e8d51f0709af78f9e04e17fb5fac8e78dfc85a1bb9718cd96b50fa76e2dcb65482af0d771d7dbf2a6ee11e100e45c937658339c834cec723b2da0f29e2d807a4e11c3bf5fac0dbdbb6bdb9d47a2376d6c9329c9839443c69529e2a3102193e2191a43413599b842bf1ea8f225cd201ccf1c6f005cfdbee4f91e106560225b6ad437135e1f7cd075c4ab8721ed112fb6b7b1ff1e8d22ba7a5a7b8e65935b0ea13b71f5d17d4618600ecdde294a9ef2432c068ff6d21304ef9fde2dd20e039cd0adfa7649afb03e4c9f6b8fb6d53a1586490d2ed7c4746615ef8eee200e532dda1ecb58ad0544c911fa46aa7c4a191fe72a3b5c9b093c7ca18221e4c39b4adc7f4a6f448af8921f0624ef2f037e98beef6edb94eb1fb66017d54610aa9c32c4bf4e05d1dcaa339f8dcd8ee645b5605a150c2c5bfae162064591ce2d5f57fdc288848b25f8ec3552cbf08b4d98f0e6f120fad2509110f1153070769e6617409fef9868b8b538a953f6b9a029e61b1391af099489a927a1a60eab2b2693c38ba8f708eb8a0e7e6887e0d7a13aaa40824d73fcb3875fa0c0dda95eb9ecbd715c5fe46017e3d2f3b3f3d2c99faf4a27c08662949eb81091eec0520601a8c3f7146781b7e32cb09bd2dec205655d05586a07a3f62806a870a466fc3e9cffaaf4080bdad0a6e9cce0dcfec4b79c0d7aeee25ed6a7464a130f1b4fc890aee223f44487fd354a3334c6aa031af351e30f366cee53610387e7476a264f8a296cc0b439023b23d3c954736444ed528b61c938b966b0d1861bf13557be668db291fa8bed60a537355fa2645a9bb3d05f2fe771adac4d3c25384a961b424fb8086291edac3dc3fb1fcbc2c7f5b91e880715bef623cc7079439f8f24de79009efd72356ecdeb65f24fc6fe8988cb80bd0c2504873231c22e18e590069143ad198c7ae545b3052e8af26740f34523f3a7ef348cb00a8d5f94dd3db892b23bf4c96790a17f8a191e73fcfe845a5a32ea5cf617c6bb6ace4c2f6e0d967bebe8050590a24e8392b75b3b297497463e418a79ba8af6af1898ea83aeb9ae3342105aed0a1d528513182c1138c5346f3f7c5732cb0be92e5d764c04d6059452bb0f5035d546a8a0354c0898397a00894461c3ba3b3a713d1b17cc771638e23a7e15b4ff8b529dce4e6eb8d10e9485a399bbe10de375ddae7f9d7d3b51ebb2a3da2dd8b3d78948ace0aefb7cb6dbae464a96faf2b280d16833d355ad70a426c59f10ebb1ebdac95827fdb50e9c83d1295b0181a3a25aba61a41f407dc1c1d53a89bdb570b854def04ba892110794dd3557dd51ba752f47acae29974429b495c0e7c71caf1b75f36234c5ac932bb32663b433f9e4822f8272f0b126b31f9995bcb10db2614d54a952e0c2a53d8be87a20009643f208c012cbf5f70b5b3c0b416d8179442b7f0c06b49a47bfb4d383a0fada0296f5b9592ca44ddca15fa1fd1982e61277dccb7d6de92aceb39878041988da1dbfe7a5911ac4be44679757d71923d3e92c838bc548018afd6828035022487fafbfe0fb6023c2d4067c77222621e8e8450fa36b546071a28d4def58309ce5ef0caa0f586230f05ee9a76a35348fbf18b1b8092b912765fcfbcd5b735fc9b7130b9f84776cbe5d5ac753b337e2a132f7e7b81aff8514becf81128417a6b2fa618c16c58b58163b25c72a9402da1b2ac4ec97ff4924bb392e33cd130ed6f87c53cc9796493a497df3c1bd7e818333c83212f92b6106ce3fcd563a4f00097d5c0131548348810b3dffd4bc545a3106735c9849ea51d4e89684c85912748d653d463e7331c00c429c1528d3381f397a776cb4185e1bd0da327e429e38ac727572b5ffc99d4d14a4c50cd452982d40102a2e7ec569ddb32b06e2e461ba198cf9160f8569b6d7bf886d6c4534a90c8c359b16fb8a5b0b95313c6b3ec754a6d71c3fded2a2a34c3422504cabcaa09646cd38d88856ecb5a4f6bcf0cbbc8af96cc49b9ecf37fdf733852ea52f2270dd774c093da7f1d5638f17360271e82347cce777595923972350c4fa609a666dcad1ab8ff5bd5a6d53728a7d96ad6dfcf6b62e2ed387a6ae846d33f4f41f746bfde5eeb9ab98ddf9901e4eaa19d5e2c7c3bba841a2b6d1ebda30d9e56aa1ce3440578f9123dcae6de9d38ea8b663f720a22ea795fe61d83b525ff0b4e09d1365807c3b342a400a587322e7a2df44f39eea45ec199b219f7e42c1a07b81c818ffda263c6546db434eb16e46ee479ee718a76c70f1a17fd91c50809ba34afb264e2cd3f3b0b67ea3b2e6f8552507ad558587d3f98320fb0d15603a85cab8e84c507a39f6ea6d52cd48017fbba7c6d3979daa97779c64bb5b14eeb1a43ad55c7814db431714c371b9a02217e3046f707da3b5292285aabb9c1681326424dbde4901a1269bdad18270f48521f8d627161790ed92565e55b02ae603dc4d07e844f6df358ea1d4018712c737cf467bf81ebf2ba1c8a0f891d83f2fe236cd8c6825d6cbad69ad64b8a30e6a64daa5596cb7d6164edebc744889e31de316322b2e5bada3e12eb16702e8e058f9f56c0034fd6646094aadbad86dc0f1c676b22ee7ff5cb182932d649c49e674140925fa59b0fa0fe2512ba3173426b62b0e062e54dc82d4de7b18f59ea364a44eea86bead66ea0d4edb8d36bdd72da5a0cce07aff9a1e1c6baa45848391261f294c9de95b90678c40095a0a197af1a49650c4b84d5ff26216fd90bf045aafbd09e21e149ae844745328e38635a1c825caf8b616fa76279363b09b0d4b6b3656dc76df3906c1b2699de32db3e41f234db3f834ed7869ae4cb675a712187605c9077f3c8ad8e96a98cb3c527d610a3ce964f739c205af6f8d52e50f4c66cebc912716b8e37739270f244c74e68a49eab004c3d27ee36fa3a10c084902bbefc7782fd0a94917ab34ed1131240bff2ddabda8d68217547257e39a4806e4cd82f4e158df5c701a79d847b6e931c4ff9837dc6710b929915bdd0c33d2468414ac5d0e84d653bee59b3ccfd9f7618419ff68763153020666a7aae1b6caf11103bbb56abe1995ca62145591e288e74e6b2575eefa46735473a47ae0963581acb042e176021ea84cbc9ae20aa0e5043da79bdd74260b20e4e3723b3778875b7ce126c7bf9e2c515d6aea2a5d0575db23515af83a76d2acc32674b8a0e554727d292c5348996cbcf33c3f1890c3f3f7e06371de462d29d8da90b6891310d2ed5323da0d235fe3518ef135c750e282492a1681da55dce8ab7e8c6595c5ee7dcdcae66e200b93e1c3f0e39861d0f9ab1a464b5e4a352701fea36e854728547420b281b95a52375450a6715d2a8811e698ce910403277c1b19a24cfbe71aa8ea8fd5d41219541bb88eb82bfbe3cb1f16714c82d7e5a6ed8eb16112055bf0d722bdb595672558b4c3b0f8ca8878f1a8365fb554203a7bf62f2cf2873eb642ddd04d15d7ade6aa728a7f5a4344339896ce6e2fac5d8db613f6c469b0a794bd402aa86ebf0a3c3b1cc6d7456a741d2b5082da36a9bcadcbe1f494df4d23820adb0325b80e7134b35946dfd4516f0fa8ea8a511c4bad8af11c656abcb1b7d8677c56f56000f46565c2a392da82c07f09bd702a4c0a165be362b2320ba9060faf2140e6414539e923b6097a79337861534f426b52429698e3757634c09a89e3c44027a27fe08854b634abe7dda607c8a725f1ce5ce61bbb526a1574f2332c2e91e5686d094f06e0ea255282d48566f548ac841a6ed628eae9f30a7f348b5798ec716e1e63e146bbe04ec69a5a92b70691821e4306dc3197fedfdafbf45d60a7d540b7dc06983562a254f91f3d971e0d461838c4f4663e5c48803f7ba934a7feefc92df8f723d771af2881cc0044b5182b1f094692343589c5c3ce6266b719646ec2033452631fb81ddfa735cadb7b5fb06e4c1ac46b238362c2f74b29161092031c1ea93812d64392b95ec841cda9f70e85d9afde7957c8c67c1b7ac622276d091f163e318de860612ace18ac7250a22dcb1ca3a6747a9d6d577eb625cd0d1864e6ac8bd917a17b9211c7e6b8cbe0b1601adbc75e0d37437e1b9f6fea88374cf954b29d057c45c1f599e78788e96debd386871dcf6e3ac77d3d952499c186ef771925e6c145b117b2947dc579b68852680da0cd5d210cc2dd92a535bd98998dccf716d512f41098ad9dfd6bee39c028ad516d4b864a352130fc2a390bc2ce6e28082e1c5d631f544ec6526b86b10a86831662bfaa3f4b6fa8e6a7d078c0c6c615761ad0610615a0ab913901fccebab4575b6dd5cdaaae089ac29779e3e7ec365cb43292bd57b18d4ff63953331587261a9a43628c81633da2c6c1917400293bc1836fad3d25cd36d1e4a6bb00d74134c924aa50e47a0d95557059560ac886bdf7baa6011dbbf4fc52d830dec9b9fa43b49f593d412e885b8e762b7871f856907ee0f5f13fb96566ffef0d718066111d112a813fcf6495e28f86b1b27fab02ad3402f7e94db45fff46e04785068081d15258251248b59ac3b61a8685a457a28015e3a25f3596b2f4591cee02ce02e55994066a2952dc62b0d262d02673170cd3e668e706fd68ea1bd4f550e6883891cc822be931693c924691d1c1e1d4f7d7f41723c1734502a4adee28618fd37187cc9eeeb3769885db90f15077649de0ad8004ebc9c7759ae0b1631e8b4342c45013b258df5ad9a70004c307e4b416c11db374c206c4cf6b138e97b6c8f1ed696881f03a4d929c8be5910997b27fd6dd0abd1c324c8b711eda062958e807290b1232b35591edea0458ecc2930c808f38f337d8b7873d07de16e1926859cf88397d263b74f85dc8fe116f164fbd55c7c9f0648e1efc661a58a182a41000247942f93a333a81d70b46f1dfd4dfaec0fe6e96df77318443d636818233b9a1aafd8a0918124f3968280b5e8db6d68d5fb76d0b757601591861859a30b41f7b864311dd77d64ec09e52b8a6200d5b96483ff1a08c64e1abdb53aa4c189bec174401364027322b1a594c4171c011fd9acbe685d13fafd1155b5d3731348744189c34c5a868ea5034d5ab76124a44453e7ae94e8b716648abd3313f2245fe75a518790ee6bd860d4110b4620ef99096f29bca515ec7a8a7e218efb24bcfe250e557a1b160daa4e839ae821299fba3c346e181ba6ee54ef50f62218191c2e646110c7fb9552613a754b6ef50829eb2c7acd6d7da258b980d6b79c68202992a525964545cac668f22201ccec1875d17c5400f6954336b07f5f6d9448bb4a56032916054331e39ff222329fe615d63d029c43c95b5b776a848f77b552177345d3a70c51132182a70b93ea3a35b5db59d93a874cf153ca06250b83d4e85ac4fd21f48f1d964c003d899cd06e67d868b910092b56856fc4beb8aa1d048058def25e544fcf0ad42edb2390f8d8b386be9ca38572f439313d554e0a644d818e801293250a5752568cf06bdf9d403a9b2581581e2b2620cef6817e2513d9d236062c4c7e71d47a2cdb96e2ae515b6138f6b7eb878da5f8f77bc3a47d40d74fa1870786a6d2d5aec1881e9ccc1b5b5382c61873206b30aa2de3b1cd2946eb9155a11eb75be095605a36fe24beca3f46dbf8200076565936a9bd07318ef951a56840d2760b5d3f06f5390652797e43d1804382304ca9cfdc1a520d2c6d16470406e7b00f5c1bf2ee865e265b57933c07e7ac49333b57ed6d2e987bf0648c3bebd10568f594a54fef63bbdd46ae06bea6c02e1361b26425dd313653747476642519fbafa0ca5c619ecd0d8d30536544bc764662ff785e47da3df2824bf13d3124000d93ac62b01e378b39e44339b14cb3f6f19e8de21e0db5d25fdc9f6b5425f0de23f7b133b1a0c2796081547af54364e5c780fc9b61b3030a368e0f0742a59ddd5ccd2db189427325b4e6108d824132fd0a0b23fa5eed64c0154de9447d8081e891ca74063a0f1c6cba14c6f1d01b72461be709b4225cec100126bb5b8cfeff18490f953011c59332fe5002a225906bd62bec6cc01ba57bb67c947405928ad1d409516e6cc2111a7f4b245ed93e33157d7aac60c29f5ac566a04a28d8ae912095c09e1d8a717195eed3400fa6b2a33857c25430d8e25cbb485a7734f23decfe4cb0136246d696d7bd5a8f7cb27d9e0e9f88e3d38e217f0932f622aabacbef167c12c5c2f45b577e565371c1aea455600e61d7746785dee841877ed4ab20ce73191eb755c71b1b5e87860bf360fe885172148413ed7c284c178886462c6c9ad96c36f9d58a8ddf4e7db5ad1c414036d614ab6706a055bb10b1024ad7b0ba9c09bc16855ff0b6a066a04116da4bee142b273415f387ad5ab2999af931fed38d15a5015c51e52eeac9adc4b1460e10bb53430db97b4c95801a6ee0064f9f4e04cc9348f17849ca2d9bf7fa0e54eaef7573a32c0759844aa6d28ee7c5ef3820b3c29d312e928793d14a8d767fab1c6cf70124da423957d6998b08d8e70fd1e9acd0448d62c4ec4ece6943059b5c311466988aac91a2a6000e0cf33c32c2ed938b24b688a4f47ec8f9ddde2529d0908db7ea33852b9508ee3df6bf4bafd63ca58c212c3b7c9c5dab7ee926103b0ff86755c750d42554a784b67cfab4149af0e84147862ecb33f3c2d4e6cb6d3f193016d57f9647e9f72632fdf109a9a03e6f33102644f2936bfd32c36132e3c732519f94f183439145d9aeff32c6b33f1f6d9ddf2782c7ff7cfe8315a58d583bd1da523b74bc197e425fd347455781657d21a604ea2d1c6a61498e7795011fb7cb9c9a0582e61dc235de60aca23336dd7c3919c8a60e40b2278759087bb27764f8ba442cb286006859b88895afa669777c957970595b0634849a644d3abb20743687f6224aee60217e063a984ff0041d3cd96427aded2c134c177835c94d979c500c7ebbd45c7e298c3024e87f2fae3cf9b387df1aff2debc4c36266a35abfafda06677ee4aed45ea1d162ea4b07ffe0d896b3251f3fd6f8b4ae8326341c22c80f67e96f8b69a2605b85f9c41aebe7c1726168061f9466f741d8dc2c2b9c7419afe0ad1ede1c63589d7ebf3c7367cf0e989410d99b1cb864bb89e530cda1fcf48140603b4e951025008a02d7f3f9fcbddde94c04116ba185ccaea1b612aa3b4e455c6a4313e25d355f1f19a4ebca2e838295b115369c9c29250f19602f14c6b0244e4c3cb24b2ce00c941a8041e75fda9162cb1ede9c952250f2e490f1d9ee8749f6a125c14528a91335c3586361713873f476bc0e95d9c3e63185597be638b303e0dd98410ac0ae2123d103c86f65a063575d65d966a1bb4f3989255a66f416e4c24fa0fb966400406cbdbe6f5c5e0cfcdc27aa29cac46a271ab15ea0edd8082bc2fe04e96a76b8de668367494d6faacd0f599f49a1b663b9b6d788d65b2a5d50806c2b61f14ad00e7109af9ae52f9e1a72baecc97105978cbccfd285039611c331721a1c5b03ceefc1d462466cc4c82b7118388381beaa33698df33dea7705a72313a0a11b1794cfdd34aa5c5193ae19d430e266f5d44b75e90d8687c5df4330b5d85a7fc2333b1f4de42e81f4010680e685460ef1ce6a69059c23cead98e7389fa73de605378ea7be2081e644893be419ada6587a5c49e5429ef3c71f9b5db7274a10e5d6395b5ce7a840fdc46a1dba8809ac298c9ae2fce712afd061268584647a2898d835c9b46a0a12313a1104733787ad0c5d6802643b91ff62acf2c82d77ed5132ca3285625090c1e8dae7eec8c7de3cd1a9fa2bb18e2fef8e027c81c605442e72202d737afaea1c9238d1c50e7a9521401a9adab010825ba62cfceaedfcb5caeb9f21d40698a7d1962e7ce6d4408558f08810790d35b41d08538af3a405f1c74c11c6fabc5a1b7873471fbaff66082cea7f23a77f0ac8b2750613001fa7b996e2506e68ce1342aff3707f7bc4121f1f4836702d2f9c2f72b0a3c31f12815bf6d85abbf801a1e8f0872c3a15949140dcf51aab5161b952f270a767bb4028b4355eb3c5df3ea566b519fae499b336dbdd0034d27e0412cd9bffa2e104e5ac111fc0af6829abe99e0dc69ace021fbde38884de330553da831f514f9620980d53bcc89e6fcb3f7aa069f7274e4d1fc423c3192d0762f3026d8059c93268166a3ed3226d87e8cae95f521d717d476df19c6c32b517928a497981816204b4da97c49a43d0df781361e537597294c62ec21b80fa33f0cf943d490cde9fd8caa75f047cc2846a06e3b0590bc61317cbf74557bcca8c5c1927917fbfe544ab58132483070fed596a803f145812c8451e061a0fd1cec5be1e0f3ea6a4eea431c73fb42b3f6e92cd8e6026e1c9e1d4f63b5eb577cbd1c4caae1abff084adc201354d66aa480b5b5ac09de92bd7453364b4d02e202bdf9414f209319fb9783bdc67dbac2a279d0841840224fc9f36e85ad20ab3ee48c4f727acca6d90c5e3e08e7f1c0d434ac31992067e52589bd70baf8f2bd1bcfb4cd05872ba2b8115cb4261c5d4f8561e99ea37e54f3b5628e0eab2c010a4be4d4e092eab06202e01b5d9fa330b80bebef90a93601529de5716a3117d6c21553cc7831f5d625c930af459030a6c6a6f19cb629730a10141ebb17f079a22695cb13b7eaeca37db1fc789c74e5dabf39d6f3e241bd10366ff7aa30c0adfc24ace38952d022c989cc49f3eae24ddbb76bbd5258308b788d5b514f1f55408c1a082f3228999069891d4ac10c4443dce6bccd78e2c0f922c021837a8fc394fb3d3dd276ca5761ba6992975a0bafe0921e02059bc8af0af858daea96088a5d8b705513da8abe3e195ce4e735d93918cf241bd939dcc29b0405342e14138ed38395ab5b7f11f47c2058611cd78fa78316230a44a318ca97a3c62ce9f51ad3567f5405537983805ed53a43263f8258a5c9a4bf4193aea2100516212dd099a17c8df11034c1c5799c2c3bf58965c0f698f2eaa5f7112e8aa3406fe720e24d32aa87623608bf199bddb26cd1ff61206386447a7ab103aa8533f7e85d82d8774d45b98490c49533b533e4fb07337c233c8b92713d60a399eb8fe2835fbae799ef466705fb509b1685db18a03bf4aeeffb3b8789f41fa07e582b62f09849afcfb38308591b8d039e06199bb7d379da4e00e2ca53a562d68f968b65f34848dd90323ee0b662ff43d96a80ae1836bb5782faa0ca1a85d764cb0b160fb1e52fcf4c9180e9918d0f592390d22d15c02e13b4f479c5d5cc7bbefc54516a0cd42c5b5c321fcd2e4f2342f6c2f23e372e2870049a4a5c34ed31f9681804b87f4a0d9a58382204a7cea0340052b2e04e79ab655b2c33e439aa1eb21440bda954b6299ac24ea2c2acec0e7a25fd946597a417b6ceeb362445101f3c1aca876831b90ab82f7c54f719020c339d4002dcabce40e53a0885c8ddeebf7a6076b20067d441abd189c73ca658d03b0ac75b8eeee3c0058cff9eecba2bb104f2dc58aa28de0b948f70d766c2bdca580fddab47c956f2ee0e7320c0f7240158e0a47740cac8135253114c320f0bcb5dcb0d255622bb829f1d336807c36d80300817fb4bde85e5b8ca934fc86761569d600868172fdc812dc691d05c8771a4af19205d0b2208a39817cbd4f27fd5e39654672c7c3dad964a4ba81997acdaa0da28b09d24e2edfabb076ea51a57db8f62d5856622aac54779df9e772e1950e7760f4c6a92d6097547851bca91341e00083c9f4bdd38ae9c0e35ee66c3a782c57a33ccba9ee290cb6d419028bbe604c94e5b3376c74c8674315f677cc3fdd9c911135be6c851c69a849b412aa9431b2df2c379161043b07958a2504981216c88c4a19958b24f12505ebac44a867e372b25564c8c6dd2bdf4107aeabb013d905aa9d8402e2f240c71843b3338d51bf0fea21c56384eccc21d851265d5b153c629fb42d61a7c44acf4a775cd51cb542092f1a7d277c0a8ed8faaf6ca757907baf79c4d27bc59dccab6b8aa013bb33e935aac0297b7ab84c3ef8424a0483a0514c666d4353269f1f337080255f4f6988711e7ef29540ae26fa8b6ea3e426b7fd1fcbafe8b0b9f8f32df2688fd4e12dadac434da654e79ffcdc7840f941ba79780e1b26eebe4900f90e568eaa00b4190b08137781db84e2f7e054b622d8947fbb61d9110ab1fa869511c3ac8fdef0ab9849e713c3afa2698579f5fe3fb00cdf675d01097db1e5e253c9ecf4b8865f26020b493a808fcba393e7639c1ba8823dd8a2544535ff8f631fe109b6e93e2ab866abb17d2facec2281ef5a8f44d4eaee616cc86e898821961d5c087ff70cb129e21d1ab9cd0bf2aa5f266a7db9773fc56941e7bbd0e2fdab9294b0017607d546ef1f207ad150db4d55bd2b692a6267b60060080f3a744d370d865a551f622f4cd33f30c41e4fb7ec890af5eb34833e2625bb6e6c6cc3731dc9454b6649992891d02b37d9e232518f9be80964a5b5f507d48f004c2572b691494912209bce16c6edc8a72c09384770937090c304a3de453f1068c5de2a46f5911e2e65b263beab8ca3d21eb5f687a182399c6dabcbbb5c7a606f61cb1ad273c12ba3193f6a3555b627e9267b7c8d54d4564357096134831a58b456c2f18759e5c30dd4f27ae12419711f06fed87f5e6373a97371addef54496d8a0b0c96f6ef3dbfd8fcdd996a38b5c28144ea25ab65d120b50164f271481de311bda1f0adacb7099c20b8f1f867ae79e7d3ef0989b95c00200ee8ace2b262f8e8cb24aeaf79236283d16a6046ee47d60910dc6dbc74986157c9dba197942cf88d1a4d67e834ca082254c518b5ace8e699d6a27830a9e4598b4bb8b847e443c9167cdd3d5e215d1fb87694655d02026bffa14c702070a35513ce47185dd84bcb2ccc312c86b138fc017a04047ca3ffa1cc1e04b0471a7df0cecd238f8b61045b5b7b85b2778e44c0400d26bc63e793a5e56dd818035414a8e1d1e9c20448b0285146a5ebcc8b9ff63fbd1eb9a18902861af74c263b495674d326d4f1b5ae24dc04235d6a5871e282cc6c3ca117b0ac0ab3fa9471a8ada79b98f6a7479546846354009887cf5a2b780c46c9e88fdc6f4d260b4f6bbb07055fc12f563ceb821d24a6001bdda50b8514b830dfeee4c0febdd52e3498ccca428447e7596251fda847449031dc08be8b1f11f31136b1f7c892d119ffc901369d78e4775486dbb1f808fa9a90d74f60f35af8b1ea6e30085cf5464162ff287a3cd9037db1309ab7e450ac951da4e144b979e7afdb6eb3c59c3e42c3c4eb4b7c46810138a84dad981f10fd45b2b0cecff61ca374e214391e3651d174f963a3c22edbbc2b4762be553992d823064aaadfdace5e3383e3342f7c28e790621370ad7e19fa8b6514dfb04afa1770fd3f625f37d92b42a0c2ac069fd52cc9ed1a4cc630ebfb903fa144e45fe2f2f269c9e42994e7880b660b6059b2f952316c952d1320cb2e904a6095fc03426c9e33d750fd49af5865802da8fbe05bb61e10e59e64ba7f22e33234c233067a9c902da28e705e8fce2632b2234d762d8427875ae20655a404e5189fd0c32cd198bd1e67cbe65776ec541f75725fdd595c0a38d819f57f0c865bdfef0a123fc932ae652846fb71329e4301403fed976f052fb366908101d1420cb5ab3a2e8a008e5b2e8ab10f7b54a4f157930783e4ee80b3b4e8b4351b7d96b1ca512a52e2777dde069aaaeabae1415234b755bbdf038b4c9c636f1781e0c9d5702619bffed4b1ee09ab492b2c2ae486141478c759ac8fbb8fdd708d88eaa37b93309361e14f149e8751b6e9cf0d21aaec2a4fd22424b030d1b711373378d3f2b108205bc89a0fc22d94a6caf89130e24a4b664e6482aaeab2071d7eb8447991e4998fb0a544ffc4e2236bd7132fdcdda54d5d287473e4d92b0a0f01ca0207ce22b5959845c1a37cf08a7876ca87a073df705bb6f097abfe25f69a3c0d28aa85f587235563171dba4017b05be22407833d8b888ce31ee2c7c49b70dde9330715f074d7fc99f13d2d4517dbfcadbd92d1a08e9de9c09894dcba5afa9a8496fa59c10369d02e1fa85f9cc92ab9a0bb569bb10644932719f5bdcf58f59b038c5f00844a71b212c983244e8e4d2f89992d7efa1e525514f8ac07add484109b0b505bddfa80ef11366ac550f3cfcae6505d398897e6e9774e34889d7e29062651a18dc9049de8fd8f728638bce4c7f4034f87af9fdc8f5276d7c92b95c5965370be9980fe5013f7deb40c3c99156c0140ffc692660e676f346d2fd250e891edec77a20d6ac865af5e16ef8f2d5c29a60122e24ed8ac078ce6a4774a16453e6c3515919a19e9a082cd38a234950bacdb7bb65940f5e49264adc169e6dbd166b9ebde956c105ef3eeeaf18f3db1e9fe6d01c8ef5d021fc6a5327a995ccd897101f80cbeb40403d29ac26c1238757ce5a1a20d53862eb104bd175d6a784d29452619a3df71509de1e6f1cabf1ac30c824358d0ef11de2bd2e1a4f622388de9359690ba68eb3a64ac585a6462100e33a8547e289aaf8dd0caa1f46a5d531b4bcbef302e3b89990e61bda4ecca0e8b21a04a14200b3bedf0bdd84ba6c8b0b555f6409df77d275a220b8b9ec24d6221ff2a41ab7f2a22e794074b32aaf49fbb64fba0d638d9a898bb53cea21a4aa0e9ff84b16a683a09b813d5806d77e0257e3c25e24403e5b9dfdbd085a0848d39bf06488230c2207e14559d14d5aaed34b2c329e2e976e3a89871c6e99454b47dc74bd644319ee318f16086d529ad4a0c43cacba8588dadb42787e7350346c1a756f850427d29d0ffdec9595d5c7781ce1bfb0b162d2316869d3b543797278f1b12fb4008544dde7b50f4037123fcce415959a57069de6ee7798652b2bd880ffe3ef5420a107ebda829520ae1485f39718f1e4c37a76c0f89d5ddb8c0e0151365c55a882af011f68f1ae2e2c234ab47de764e1a4f0e56d9875fc1285374a7c932a148e19d07f2b166100373d7cca9a35e84b853ab5a466883524aafa1ed5658def66d2c47d900958a0999aaf136d0dc2823c844678758319fe0ff8cf83606ce97803e2a8f2e17b91d8a32d578826b569971ceeb4ec02ee42bb33cc0e28dc11c31b0720bef887e1d5fb6ae55f4eb868cb08bf90af4b177cb2b87372d05c8a8e4e36b41272f5db78f588a00c41a03bc91cc2c36f99a34289fa8cf87d79849b02b65f60e86a86f99564ed68387b13dd1bdd03a46182898608e64a184cb5bd6595cde5a7640fdbd1bed3f31429a13b670c2c5cc560094ab5f33d0985d002c2073b4d6708a762866ac31e59cc85688880200f7b96c3ec3253b3ec0d4cb473cf64d086966c43ea795eeb3969a3206e04aa27c26b78608b792d58b28b6a00708f411f2866305c1366ec64073a9279b897130ae54d0c6613659337c18e24f898e5764ad4d0a5969405af3de882a36cb9db293fa708f06bd7e6ef564437495b323a059acbb6475c61ab6c790405c2b73d44b7e36b3817d50c205e683597a635e046dd05c7ab7f5f78af0bb56e20267a61588215a7c0747783b33c163c6826b63d16153a7c69bd85b0a0a5e774840686ee3e16a40c1c8d988141d38fc59961dd4ddbd070d2b6a821d5c2b5399bd5282a254991490794b29885002944bfdc2a5d20771c16e2159a1218245b9dce9fd7cd68e43a68f6adca3335f95d8f4f039110e35570596fa1bb337e5483c07cea00464c0f6340f2b745176a1cc27b1a1e475554e68745c707a7b1ac7d52d53c3a75cf473e373008d059e66a6af6e14efef834deb1e49c8363aea50c3128860a73108b8653051b7b1e92db628c0911205293157aa66742ee260d84aa97da890659795ff8fa3ea354233100f79661c877002a330269667e22abc6f6f402d03820e72b032dffa4176ca95388544e597ff450acb3768a3a6ff07a2ee61c022b280008dc3341cff227e82a92a48b73d4f1d6f94703bb6f6180ad372da8b700cfd304e00c673b00ea4c97d71207c3f715829bd40c52de64a26575c97194d987472c6bb0c0c3df644584bc3b2b150562c93c3e28e7c2994da751cf6c2e24a9a47299ee0e81064a86458fe45153fdc55ec7d0abd71e6041b94c968fb921e379638866031bcb6494e255086180486a00514cf3cbc211ccb7f9edec5c9b3cb00670064e2620fa6f7325ac078a723352b5c9c0aa3ca05bec01c8c0e0e4cc2bdbc084d97d202022022c6da2f0cfd9847b83e42e8efb1caf1bb12f58aff937c8b7071affae6f9770b294916f334f848594f47f1d80cdc5a8aa8066cae49ab879780c32be8dd184955bec8ad84c6314f0224bf62b8c273b4780acb813cfec13e1c2e54f46aae5b88395d0ea6ba0ab48a28fe254591e152981f6bbb7c499156f972a225890122309b26760760df423f1b2ee9a8c257355f6de3106032dfd3402bf5826624b21fc5f2795b8169d430b733828dbf3c9bc5058243247b3fd2c9ff7e3578b1ba42407a8ec77a0a616280ae656e2cb30a5602b9fc8cd0f31f05e81127a1ffd6122378bad9b7be1e5fb6d3add0a036c05d05cc8a7792ba6e393586225161338b0c5e73b1a8a8ae82676c5d90cc69ea8b41a7f8f622a419d523aeeba319ee25c182e84cb0a876f46e38dc927a6607249472599449c43cad37017edd06c44854f32c6a530a2ba1684afb5bb7f990683c25e0af842773ca1dc544664d9ea1a33a9c34d749e350437e28948d25fe8bce22205e9e64779965a90371e83f18070a0be16ca1c52a9e0942389612e78fe49197066b667bff481b5235a034ac3e20ff38397c234c9639b011580640fe2fa70d9d05b07103d48f5db969bb6ee9210cb22b9288894f5a1858c83d1fda6853dd465cd8746e9ae38b76b3ea6b26a12c807852e801755a3912eed950f8e9e6a8b2942811fa52a5694cfe43ba71842108c628c75d8e76d1565917349dab0f5de87d07ada48e63a86d5873d7041e2544c040addc9e4f24547190a1c37ebaa53f1d40f74e070affde7556a8455ab16f110e175c8c012dbceb8bf6c4fe01e6bb653d105c4a0dbbc0077f194fda64173a13b16a16285c322486a4686740b10f6edcc097de6b01b65a96a79e65806f1851588146f64c1147e91697e9d533f67659563ed5f532ef74255f5a3f0fb5d0fbd90c8df91f400f3ce1c0ad5d88b30507b91deaceabd55e2d7829e5cf48eadbcaa6049d675f187d54708400b6e25143cd806ae541d4ea1d75078e2629f8af197102a8704802f8cda3a3bbe9b42e42e42406afec569b68da2011f0b26f270771d1eacd0e1c51864849c35304f3b3675281381949c71af2defcba6573da0332552d5ab10700b10df5c632b44807397e502cd30e4453aaeac10a82bbcdb6d38bf6664d7923d161c5fd6893c1f27fe55ad050a6a85cd2d02b3afb01bc95d3fe53c8364cbce9f999b953b37e37211bf006a221b9d5cba4ef87cf1e7291801cdccce8151331ced351d958fe36157e3198df6f7006c0680c7c543c7444b59f1466620081cd43ea411948803fd2676471a475f185535f742f8e59ca83014c7e29a0b6457819cf97e58e2ee61818caaa0bfb9f91b9408421b3d52bef5e83b5cc09d14a6a882b59338c54387f814ab5b3a05b0350113f5f896e6b45d9a237bcf787512753835e730551328fb8847a3854c05070d8cbc7bb8d010678944c2cae247fa84a0506c6bb94f2b9ab0587092b8a0659a98d7746884568947620299e044056fa3874491c000a8f5565ef4aad64239eebd058661a007b3da4858b3829d328436f4c2ed70d4d34eb049f43134eb139e3721314321e05c38c7e03885225716bde74a31f1c1098520c43c16ce6e26e64b2bdf0473d2424a8189c56e5c775c79c748a0b262e6dca406946198cec722c2657160bfc70f5cf9f0842de350ca281c4a834a00e7d48243e10891d41236c203d409cde66bdbe819b14fe2ee1472a2081da8e12ac5d3649929042f7af67079de41709f5963eaaaf79e9f1594f165fffb4a57d045888440c94d9755307aa21d54f019e27d0c8216e3ab4bf117534fa427c7f1446312cb9c372755e2b66083c850e9d2001cc60aa974793f752a42b4557e4ec03640c22959418c919d3821fa258fc174ce09ae7250109ba504f1de5f7e79a37a52f914bfa5a7e0cefbd7154f5d0889ba72ac6aa4964d5bc9e58f48d3562d72b5297f64ff6750e123ac4e6acd28860023519840909fb43fada223b66311d388d094404322a6d81752ee818253a9475a2fb0b6b2ae3549f32b2811898298450f86ff0cb3fdc48f53bb8230702f67e12ed94b7ad29b8c917adc1306050403c989e093c80bce848b458a84a13f358877bf01f884de93e85512e2c7153e1ad916bf64c1df46668851f33a4bdcde32062c47cffe8a411aa31293889b08094b2ce29617d72e6e04ffcb778e5810608d2775c6788c49f3ccf212632cc670202d8cd64c836584edddbf866d5a0a1bc51401eff4cc7f351687cc147b15661266053ae7f6c8758d154d1f059bcf321eb6727e4ae69830d0b043e9d8f75ea822d4b700d0ba5e5fdab12608d61963078f0078fd33cb595f1300aa5ea9ce52296a2e039553ba9d8991e8f27c20e8816e6c1fb57e3157e301ba114ef298cb44f7fd4bb61d338feb444b042b57e7eedfb53ee0a3ab66f535a028bb72844cef7f5a0b8c22614c858bea2d218984b811260a63091f0aef29d9eeb7a11815f0c2905cf5eadb94e33714d9886953569ac27a6fb49e10f57571d9bafbb59e0a5d5621967e02475a8c2e75bf1ce78830441babba6eac0b78749ee37e7f0d68a7730c56dc53fe8eaa8ac4f48b90f7420ffc94eed65e7298b2d9fcbe137a03422cf1b724d06af5551c167a9f7a53f8a590381853a2d9a2ea00d2d50c025a428b41463159ef5cfe4c7984ba8db0e18d69d9cf0e72f6dfcf9e917b8febe5142629084316c0af9b2eaced12e01d56e8fd3d44f6e52f55936e5d97d6851ca352de91c81493f91fd0e64d93f3d6c7daf0a656f602c4b8081f0528030b13d18456ee6464e448f8c13cd3b331461eff815ad05d282e07149ad290b601d055f8e0111f93049a2954da61346a0fec500c8eadbcdfe0e0526d191cc2ea3be1fe87891c06b944c7b0b125a07fca4756f2baca4f08e4e56030db3349397af129be3fc727ca4bb8595889c6ec668213e8bc1ed7601ec83d3dccb74c98408e2fa004471da85a0006f66f129137092f1cdac0b76ebb385bcb05dd286d28b860576031f4cfa9e88f1048f3fb9cf46ccc22c59943d6d92ce16c059de43c51cef8609baccee8f78cea9af5a1273d3444b197fb00066485f965a7cf34029c64ee9f45c2060eb133ae04852df3418c4ea30864b06a977140c5a1c044fcfea0b6fe884108ebc68f7bccc8bff275ee807813e4de89913b1dee7782cbcf40ea551612d4b79302bacb1caffe4fffeb96de05a8854900b5ba20a5fb6bf1584be07c3bf0d02e5c812ad2d116ae18c23a1089e5affd38d0ac94707b71ef49fac74b0724f1211c6767ed483039a1410930a174526e59327a7f5e2f3ee385cfdf8e2da109c8d2876de7e698397bdf3850b84a6bd0016e7b09068f770f89b05b6a3dbba8e655024d92742890112a7b79d42e3bb80cd87fdf4175f1b579516260fc2e4192c67711a730a0f56db68958fe5d10bca0f12d0f76c9b1073818ccd3d9aee9487a7c5d856fd330c4fde9b739a8fad795cb67c55e2f12437b75fc936224bfea1f595484495d23c3d38511b4d9aa91314dd4db93640c24631901099ec6187349d5eb5a046337edc560176394477350dd4cfe8ddb7522552ec1e7eb27030b5d0eaf75916c871985d8a599455baea984c8509597bd51b0b394997e3ec15d0b8470f6b9c48323805a40d99ea0712ee671de2931f48d1c4ce2f678656c4272f546e417d4bb1ed47aeb9dd636f57e448effbe41ef4872ac6d4188ac656f06620d33684baf83ae163074f9c0b3bf89668a1938eeba77a9617225fa2a48f7d070530ea2b3870c738ca7d9f8d6bbdf50316c2b9feb501a7363c141db6f6f17085974c80a4bb6f113addfdb706abfee03fc750c0e7d5b839e99032044c39c00c6abff8630149cf357ef7e2e911688e86ad65d72623901887a88be3b5e57f352b2dd49f6017998e92d6f2293f96a9424dddac370d836728eeaa65b3dd9e291028da4c372102a4bcd78449a80e8a8065c9e1082af5c9822f7376f4144d2618735d662042b620d952883594c635fd48598c935a64ffae196a05363467158fab00ff2c46f0ed5bcb6c0d7694cbf3603eeaf4df65f57de22899fb2252a56ffd87334ea66c268fe4dee7691ff316bdb3e8f5d2068d03019e46d575624748de53eae6cf657e062f68b285dff153220dfbe8175298e486c8902c34e86a817486ab2b633665da1405b7e8049858838486c0f2bc9980a26dc256ab2b9b23f674edfa2fce7235d4359ea7658298f414f35cbd01640261e685d312c712108b5222968d3c3987024f1b2a13ed8d435b48a84964f13defb8c2d3e3298cdb00214e9256f6695d5e90eb07291830191623f0af066c90ee6d67e442f72d2b595d051eccd5dd13fea3f49bd8e59c8c14e54e07c69a4daf75c65d6a6d2fae2228c1b54becd429455926636a0ace266e5cf4f8858c594513daf01a9cabc4c0564558d66727d3072cceacf30b07f3e41001731226a910b6f8276d68b44a9d65ff07fe6bf78e6161bc560e7030658f74ca8b837e5e83bf40eef8f01580e61c01bc4ff4fb9331bb1afaa942c46aeca2954f37c91e34b09d336d8981d37b9f6f61b022d73c6b97a7974149990735b37f23909c0f09186d4158a94a58b36baf38f31732d504c915688541ac72b56c2c87b1a5fa209d10953532cada4a532da955deb38c9814f23dd2c1453f80c22f3c9c18b3421054ad533db055a0aae0e7aae0d5e951214edada2a811d1851ba1c8b7cabb5563d6056f5769aabe79506acd399fe2c875212435e645d02787b8e7d7fade0b24b4bde5b9e52b71e227e41d4b07f3430fcf261b8b99be508bea32967486ec4396a98e13b64bad948190c46aac272f97caf07ed42c51ec9776bbfcb3c4a699d73c2b80c885eca8e7463523a0b889de55d7185a86e9885e770afb57511084999f110c09b3c63a7f6cd78f01f42b069ca42bc9fa2d11fe1210ae06b41501874b81d31b006bac794b47a1d201387f46ca7e2e1167a5265b7f3e353366f14531bff649b245ebbeded86883ca460ec39f0860a5aa7281f847e09979cfafcf47f8006ad47d16524db1cbf1d310963ae63b1240d5f325aaa5026c4787616ac1a09f81f42c24d07ea2c05980f7c681cac3ac5e847e0414346aed0d876f7cc9c33c2a63c764e58fc93e4f7ae519d9b1974dced44df90761c450b14122b05f36092138d1aeec66293ac44530db8618f03d71ccbcd36c92d20b5e07c41e6253add0700279ef9b2d7cef8d4c3a923611012b10a89b80419e26544ca2fea672cc2c28e163542330a68908587ac90ac57adcc862c432134ef64b084392fb386aad160b4b703844c19d21804f2b98763f552238065ea0b7fd7186d1fe20f7d79f736ff1a05f9c2e06bb41ee331069e9404784803eb505bc46a8f24aa40338824c1fa000b77c9d44240c71d4d7b68b1ea24d264c7da65561c885d65671c103c7e56d801dec5127a3adb15e303839db0c82ee7ecd17ed56f2d0f20e06057ce49c57769103694b1010a433c147bd771e300378834c29198f197d8d0e9ffac14e907e436d1d8ae8624ef204eff905f469d5729333409bcfedacce25d0903d30ce8b54c7e76279adeebdb84cf8f5d66380a53006eea85a178a9cf05e129cc31f756f8893105df9953a6166a3c33351207e60432db7243c1ec41b3b73d601984a5a7f0ee4696610c95f373d4b8aa9caf945ea1791710abe924e452be6fc9dcbdc0b251f924bb820eb7e98833190365658e4293f1a5f6af0ff2f2e15fe9341e8849a4d6b70f2fc15a4824457cac95e7a2d30d39ba5560deccfcd58bd7a50b5c8855b769b5fe6e2c7b72ccef80220646beb053f334f22cf764e10dec45ccb17cd0c0540b2a97f8ea3741ef1db376b805527201b7645ef7faa321831c0b03d98259d82eb724e0cd2b0a138860b8acb35d5d9b9eb09de88b95fbfd7be3c1466e75bedb81a699c2d5889bb2554854abd8c9d1c189e6243dd99cb9d6c8b73ffabb7989c34b63b7887a3ac6928db3dca0fa63c8c56381a3fe0686887c0e47e645506c321425b54040c153e555231a09b9376a81e79de082b82a254f0a6693db3949fcebd7b1dbfc6fd33d321bf5f0d0353bece660bfa19d4fe1175da9f69e559682a219de1df66a5bab7e28a921014a9f8bfe681b583b0d702c90188ac48c1e9ccd5f3307889c4e2105e92fb2a0e018d613836e00e3571c32d4ff8f274cbc8a04c1c0904f06542e9336e08e1dc27a1519f1493dc9e73620b81ba39c593b322c67022931ac76765c0e6dd4a9940b9f59f24295e81dcb8d12e8a5863b7b54cb915579de039814d4c7adaf18099c5d668c724afcfe10b53132a61cc41ac3bc06aaeb1ee2c2c77c87035c1616fd62db4071a3d152df9a0b0d9177a6240975f44f56ab707943e36c17f189b5af8e73504a39d0dda3981f048c9ac48b4e5fc38a8d4176680e6f89069d7f71c789ac227b2de79c4e2efaaf1d1414787fc87ca298095c170fb3aea2f083818f3274d873b111dc7411d6208ead0d47d1d9be8d2b8076ce138704d7f60214f1d1daafebc96461478ed828977aeeb4204bac214d937098be2c02bcdc97bdbe28d6f46d4c23e9135a4a277cd71083b9159341509b3d4de4f0350229ff097076f753f06b1e66f89ca0e039ea6865b32227eb63b76c49ab9057873ff92c391da1ee4eefd8c029c51af368649cfcd8623e08e9fdb05055a838870b0abe6a4bda39a8aed0e5bb24601876032a741fa37852f0ef039bb4d455304f46c9644476b1d00b41c02381a3b9cc992b6ef9aad63473f53756d0537340e8d5642b1fa9e4196606c700fa70146945eacc5571e38c495859754dbc3232553d8f5c0699cfcfd4a5a35dd3511225cf8450642ba9f3321bde972e9351531e9bd9413844da740b8bf309f19e45a1610b4e176226b1169a670e826dc16d676ad84255e50844b413fc7ba54358fea8bb49d00625e6ca0c0ebeb282bb681705f83e8048130d6b18e91ed12b39dba076bc84b58ba4662e3a2e2532e6630ddf0a7acaf3910e9588875f7dda762d42824c8cb5ef7c91c72fc55b3da33dbae9e889d9b93172692ade1f5ce045f148dab01cc73776b06a7d3c3cd96da8234740bf7db378e6102309e6b8f0d86ddbbc4819bad68017438d0db7aec077aef7a0ddfad8014df250ac238a405e462996acc1a43d725d462c88bd1a175d717c1a6cf89966cdf1180b314116431543e5e4d40970fba20b1e48495278d860d9ffb443511023eddf5e048d6aca4a5272f4a6d592e937641c4b4f459df1330c850d078f8c0ce221a9f19b63c5a43c6b6664a141cf9ed8d00f23c0d37329b564aff1dac36a89f2d163327e7f4836759869728bba09862a666a3e05815ffadd58a714b00f158b87dc75ebe3f97282e2917ba40228bed2c9a203c042d40a950698de91388ea1c8a2b9e0d9033d841c033128e3ed30087cbd016357ee214d3e2f9514d6fe078b979ebda8c7bd24d56a2dcd4d6b6965352d3980705d8aae2c062e36b67a0c808b2ca59212cf4e8336e54804f0920662c18faf3065665067cfc5b082176fc9269c74f6030cf63ad2e2eb780a6bcb131f572dd14f16a6aa58862c7561b7c0d5d3025f54e31984535a99d7850359306ed70fc8e0c2e24d475a2552f3543c6b181f77a72b761d57955617905f75c041b9e9ae9db88b65e302844c1a07e888043ab5e2e9a78a0e1cdf373cc917b6b8945e7c931782a30da6f0111a1c1d90c94bcda1a77df52d099bec8402db00b8abb87b2b07808fbd728f9bbc3aff50260b602c5ab2af1324a9ddb96a52ef2eacc93801b4bd9a2700007c1bd444add0a132a0a0a0ba86fc5a05ca2c757a2a23b97eea31a38f80b07913250cb407f33b1baa77a34d92024cb275ee28e75903a3341fabdb9a12ad56308d0efae3ab4801f82816985621dbc7556f0c65aa6cd1586a9e52c5110242d65343baae0145546b39b702c4a1d569adb74e207bb743933f63e9413c512f94c64487e0b142521fea3c761813c05f4ebbe99ef18ca375a5fd5e04452779900d1c7522b8de91ce200fbd0c59faa87a81e548af11c18d2af48ea9c109212f7c679645a01332578b2d2242db7100a5eb8e0417f29f68fc8d164ff316b71aa416d9950cf7a29563f613e3f16672d967d62c24bc3b4c65b21cdef234a916ead7d8c1e9a294061427ceccca4d076e68e48e56ae01e8647b3c1f5ec022de731009d17f2813eefc80f16694a2e40e45b405b2d1fcd6b57296ddde3e18c6170fc189b8bbf3b048928ef7b2c601df936529917932e1e0c52a53ec169527e3a7aabbf1ad5bd99a37f50c9bbd59826c0981a4860e61f9a3b5368c3015b7b2637e451c1144b46997315ada4641ae75c9f17536f00ee9d1990d12db08d629a81c497f4846b3848eef90b9d7b67dd7c27727260e6a435e639d97fd15a07702654a0d1e831e8c451887b89ed8cf13f9dae7ff5566f404be0121650b965f0fb5c65812550484d95520764075359f4ac27497061432a090e94a0fc0ea218750d0bb567d8dd719a0375e0edfe92feaf5b827ba19fa1537951c905798cac56e09c3de108508439417fe50c3c94a08e63bce4dbe5a4d05b69d7accb6ad45ea35319c8b76c4fbe0179d380187c8ba1f838fed08deb2f8b202003743566e3b65c8d33c6288a8374eb0360091f98a642b48737ae2f6420da0ab5a1b1a3a6f19fd241716c56e951bf5ae5276caadfea6c1217dd341ca5646ce42734f97faad047be255d12ad393ea004e35f765c104e334ebb4f58dc8f2bb3bdaa20f2c0fd8e2274a1102785ee0bece23fd287fb7f08de82d8f227447ffc966aa6c79691a4b1cfff6c815fdb2aac31d6822f8d3f741774463953d2183f823b048f2cacc90b8aa3d096ca412cb493a83232d379b687b90c7614c7768022fc51845be31c018c2e0142122e4db06e546280327cb0f54b267516ae8a8bfd0083bb3011e938aaa404e3ae36eceed60cb012231528cde08c23755ab41cadf38dc00f968ff95bc66dc43e34ae366b560ba055b695e5b7f55fd76b38bc1d03583bd4198879a84f9758ee8c00d7414e807c36de7a2f1b0f326a01d41a01cb872e0ccd630c2b74a1f9da7d57b5d262152048d5352f15f535e9a9da88b6fdfc496440b870899a10d4320ead191deed54ea74da287c68e070d5189a4cbed827ebd794a0dcca362ad821a684b729e48bf08e6bf29523122cf60571ba80c3442d91c398fad4cd7263dcbc1cb2800f30a59a0da744a2cfc18c3c3436b94144e4f40b39ed86c524daa63669758c8a37c4e6ce59e6b6365153878b9c52c5d4308f04f761a5a17d3fa8491202d1fb7f9d3ad59695cc1b9cf7e6457fc8d695a8d56a9b7e7e00b48f9bfe7fb6f33c9f7bc9f1680f597543902a72e80fe45cee91102dbbb63d7985be4805a3ca15194736d14819c4e9a5d221acfe25677a54aa0a62235ed0459c7c8054ee379c0e77f7890dc8f5f73ad6b6238bcf4d1d4b6671a872e5c03e0caa50ac2dc316ef302825325d42e8505d842064cc2032889494ed272f680eb0b23fdee6fc00789772ea23c2548567496592a912667c9735e1c095f1f145bf52509e45ac1d8d48fda7ce244df0b6ae12c9563ef6b49c108573af7a268ba901c116fb399801325a5f2d1714746f1f24787e2bc9bfc9f5c5724f457dd8adf441f3afbe24b774d2056f4943caa088f328449b30c808c2d92511f3aec150614012a8ffecc2144eab0afd0d3add672a69dd8cc132451d8e663080753f9ef83222969b14c13c571d3b81b363fef25bb62d7311e8a9f4cb4f761e9c3edd77e076e725752be56b5f314d3d9347b09a9e96c092cd0f4a1ec3ec097d32ce72bd6fb68078730385c5831d5c3b0f8755b61be951e11546802a798a40372b4aef37f8b28d81dd4e3f168ca4f592c5f591ea7e4eeff1eb9e010af1bdfeb61bb6273d82d9557534c3e8a81a6370af7593625c017d34d00edf161f6d2e552c08773d73d1ab09aeee2f356efebd36937d22efdcc07e03f4e1c76d26075c03d72f9999d6940c6a0888b93c88bc4655dc77e164a37ed7f67a815ab1b9c70d976cfc2e031e26982cbd66748c4eab2d3b2cfdf62765b37cde94d7d2bac2e8c2d59bf9c529750cf3e78e7789f1de221757979fd9af9a1213b2933feb0bd25b5562d111f3c380d24f73c0ff63d60cee1508a963bb04b4e4e656780ef2b5b698b827b115f910cfbacd7816de0bcd22e2e6ef56ec7843d76d1e9a6c0f675f5679c6c0ed91eb91d92220d7b56e60c1598e124c34f0fb21301b9a43a5bd514c633e8600b73b57fe5052fb0028f685ed39632f0ee6f5fef163f051889171a1f7b87239c4c70c13c83f7f71adc86016dd486d40deb844d180cc6532bd5c221cd8382cfff4b2b44c002faf299625b408ec24d07a63688fad22bf043ab5c5c187ceaae8193f607f0691ba76d217fdd27fc45a196f82370fe87723ba0e012ddc817ccd51e8f2887ddaf844c49a1b45c0ba17ca7d2d202e2d465af90cf88a2ec4dfa93ddd6e49652a69452f805d8053906b1c2df7e761fabcedfba8f06a9a522ac1a7f9b9d7cad13227decb86e91be7f92ba1dbdea59b559a7b7a6f45864e8d76f63443d41542b465456b7a3554c6a6263530cf4b92e91952eb5022f9d2134dc3eed2c20911c7a71198c3a4352d06f675c53848eba44af9e3aa3ee101a195c38014d0b473c0c490146077e0d2d7183c2217ab9406f567587d254516bea0ea179d58fbe1fc9ea76eafa0158897025f8aadf842043747eb46a278b47ab9af5db25c6440ac25c2102315e2ee8bd2f9aaad3dda3071d4450c30b8a9e6892a676ac478c2d70c801cc13495c5dc65e41030e5ac400cc92277870359adacff2164f09b2bca0c40b8aa32f4ae0da337503301461051193166e08729181802c8e82c8b081872021d718750063ca583942872860f4e06a33b56555a7e1170d660c002d09164874810489255c9814456f28f5170080c4911f236237281c002c216141340350858fa38c1f6668a17ef46316395cf86051a424899433ae9e69508279e081e6af79aee567a5f6d757d1737941ded56fa305fd1dcac1ce258aa1df1a31185442a0c5c56f02878145a356c57ce8c730d210b26ac2cc42b7c2d8a57d0f9207c0d8955a2f45827fe9a2491a97f624c89f9e0a5484f8972e9cbc5cda4b2fb52f7f5d24683b3b3b3819f372695e6abd20f3b55fd7ba3eca0c73fee96cb8a027d4b0c0c884cd046f31cc796b7424b2ff756b2a04f7d61be20569150b09b24be79445d7b66491e2a86e96161ccda89b458a9e7afa22b26d1a8170d2227b5442ab360c2fef6e74ae8456b551152202bf18d60be8d7c00bfd180b6311837efc7a796bd670a5095f93f33e8a7a7ebd58f59b95f95579540dbed01f22f090a9b5208d9df4abcdf78ec725a59c7472a847996c389b5289a462a99a0b4f2655a9526302815193068d86314628e1151a3538ef52f2fd795cdb7492823f9fc7c5ccf3a7553d817808f19fde8e7b3abeeaf9337f3ac7490bb5f6a55b7406edaa9f6bcc1d76a7d47eba260ad440771387e2a4a9f49b348d407209b937837cd55dc3c68c9248ac7131ce19a18c124a19238c304219531cc9247f23994620b9e6901618e4ab8655a257a57acb8593c3130a7f5d906150c32af01b6ecf2a0eabe098a1f2359c3254be264b2610a20d6f1b366cd880bc36aa74643ac6eeeed831c618db3dc6f81d9d061a67ee8e31c68edddddddd104a8fb1bd638cdddd1d638c1dbbbbbb3b7677c7eeeeee8edddd1d638c1dbbbbbb3b76777777c7eeeea884fa73dede1d638c1d3b76cfd8dd7ea236b1db04828c31cad8de9e5624d9f3d998999bb999390061b53d22ecf138731532fe3c33c40d55cef86083c280a642a8f1a86b61882a9950a3d843f937c952c62e624c83cc0b8a000ca1c8c837389df3801a6fbc552e732398829894818f66b1d87db053da10421c14cac708ebf2b19563ccdcc5470a3e7cf8586ed24e384c5118ff8c78757776e7304eeaec66f3731cbc51e3028f2167e8b32dda2b5612a67ac7c12f8c857dea766286710f29ff639fba1ad4e04aef63c94ab497bf0c83cd4ad8a77320967ac33847e8c75aae57fb9095700ff6a9dda15ab53b34024fc29dd4ed04e3b3b807c949ddff8ca09cf83689cf83aadd6824ef650258c75c16f7584e00f770b249d4d9b5475bb55cab3c4042b76791b3ceeeb7a342b82301dc8341804eaa77340e19d5afabc416382861e4a5b2ea2a612465888c583540dda1318ef0a9dba98766d43ebef61fe753fb6f2a7f46b40a1b56293dad5461bf34f990af2d07e31ebdb59ff3c15219a82baa55dc43837888ab7495282c65e7c3bab5aee594700fae3e754dd0bb6e19dc5d3284504a97efd2a5bbfb426f27b60e9a80c4f8907d709a8a02a791df5ecac7d6f66c98f98cc4fa01aefdddff240c6e676766666666e631ccee0e7d32ce3fea067583e3eceeeeeeeeccccccccccecec1edddddd238450fec89470e8eeeeee349a803b2187e26e7748e10d24030251d4c72414369bcd24f3eb3884cf0e5be0fe106846b13973373373944e0859f27a4df430636294504ec8691ace3fea06758333e7e4267cdd50a91ee771d684628e296772f78f30caecbc516a63e333664076e6f7b6332216c528a2929824090e4551c427222c2a89b0088b4a6a9f02e21109da3c0e6a293bdc83a1b08efe662875cf745afff8aaff4bfdd80796d27194563114eec122581d3b700e2678cb5d5d23349f4d24b06b7a3b2bb834af4d2aa022f0540fa0aa11548ded4261d3d4e8c5159c077afcb231150d17e414ca20c182a231313082869e0a9fbebca8f06f503a5e4705e0d2240a3050b850c5071774a1c2d799555285ffc35b3c301c8922c4183060a14516176ca1c21fc242856f81ce8915c65475895e4abc84a81ffd325befcefebb56ce2f68bfeae351bbe1deec4a3eecb85dc98fddae4ad6cfc84e0810c76b9e108437a017c402ed3c6c3bc9d0afb355bb3d28ebe05f6f32e51ecf3af8b9b7fb8cd4dde19b5ef14e3a244647b9553cdc99d1cf4825b24f324580f424efdb87afe3cb35c21a2117f7bedff6b2fef24980af792a680f5f7a2a5011a2bd0af299f0ff9c52beeca8552c6b15ff9cb32be23197c97cd639cb9b93692d60aa54555d2d6060553b42b5e75408fbf3eb7a9f7b31bd2897c665bee2f79904368b1a5fd3d2398c926dc2c1816a20e0e840b5ff6610d26f91635310d2af0984203e84481eca57fc42d0fbf9cdda09c16fc1f7a359a9cb3e2d56b72a50dbd2f18a6da94ded4b6a7fa428e00f5f08842fbd1d085ffb1df752f1d7e59d77b07fb68f35939986d323229fb74951a8d73c227376df13d17eabe67dcc44e273add1143df6a6ce65eba762e0e0496d94a0fc8d9a1409faf563c1a0d48fbeeac76a1b1a40b75f22254eeaf6fb73772757a7cf8681abad1e2a722bcddf6efa76f17d3f7e45b68f1de94b5d693dceb8f9e611d9df4a5de9b7680221caf5844c2f4dd2132ab58f17553301d966073f76f3b90e48fce911d9f7875ed79f915a84abdbcbeebb01425a2f0564a68010716fa7b745b8ba79a9999a0febf4d68b2467aae67d1fbbc951129c571a46a9cd9df1050da3d496fa4a93b1ab8c5dbb602763086ae771efd8169fff87b7e6f3b8a6f647785cf0f763c7e34a5140fbf942b49fde0e152904a6dc9bd45756c0d058c1a17e5f61036d24271e7840bdd5ff3dabf28ecabf759167ac1276ed5a130841a6af7630417fb9b9c190a0c2cecd51347fea3a841036f4eeee7ee81042d8d0bb658f3c227b644f64c51d2c96dcc16a150ed9237b5ef67477b7ec913dcfff3f5fded264bedadff9aafb7c9a42777b8aa89f16abebd928437ffe6c5026f747e7e6d8ff20ded2f15517028c031750af423a876b1573d7da6d15d23929b0f3176f6e0efed9ec697aa2b012ddbb1d3b76dcf7dd85be4b37a7dd4b16f91be10c58773c917b895d0877631a8f3511aa6fee336a5e60bbb87b03e98d8aa1aa55436c8ef663574405c9e087346ccc5fa5f458d334cdfb1badf2879dca48acfbaa56e160175bb1a2f2afc760fbf855df84aaf2be4eb74e2f111219d48f0e21866fd3cb105ff174459bd92a117c48e758c00776d22d1fd240e7ec125ca2d4a39d557e71c1c2a6a025b608d58f7d2ad39c4f25a4739885ca437c4e4afd835609b5c762181615ff0c8a49b614ff8d661893edce00a3a6c90c6b284ae94d1c143317d4df0703d92caa7bdc09c98fecd18b9164189249641b372e8c2a954aa5da36ee628c1eb9771d274428922f3d944ab584721f6afaa38228e3a070a0bc055dfdaf920155c5b648d65386ed0f5ad59bf79550b71fa552c9d3f9a03312abce0f1f12a173dc7b9d1fff46e2f61cf3b6711b7f5f8d44fec9fa2963c03de9bf7eacd80de91c0d85627e9217a455ad692f04be6624d6186448b4808f524571a8520c343ef4a6f6f1db48acdacf19e37b989a0ae18baf793c959ba82da89e584c2ed94acf1b3397f8b7d297a18fe359b105b78352ed87ddce099be4ea37bf033c95fb8faba637bd29c22f6da9e3189f3b147c525aaa1408ba5520fedb973a22fedb6fde7969ebb852a9e4a54e4f84bff427fed2b3e9495fe36dab4c9cf7f97f806be9e3f3d4f9a56ebe4bad4bb90ce813c1c4085146fd58b568f6c0b3b7641a837e1522798be4cd923763f34ba881d5af06b6754382f8b036548c55ea9affbe964effa9aaac79daaafe42e3476d0b1bdbc2c0e26c07a59f04a82d46f6809257c2e67082aeaf50140a1a557bc9ec7dda7b11168e5ef5541979f98963280a055946d860614a4266aea40788014c510c4354940d1224104208a17b00ce70e952fb6f9a883e99e006910f50ed20d0a3040a2d4c00c5a70726b02708d31162d81f03644481c689155cf9a9f2037ba2ccadfc9c190ac312036001818a5203098c4d490a6c985f14955ad004288c930fc030225232d3d2f3f3e344c991941c927c10c68b879f0fbe9011c16085c9074746f5a70ad1922bb40ad64334413e241289442a23ebd59699cdd98bce60a8d9cfcf807ab52c343ed0e03be13413336364466666d6abad1f0a084a8406cd96cacfb1406dea0ea11153673082479a0e103e73fceef627d2120ae5f76f0e635b4839cbec7e6766a960cb82eeeeee6a4177777706babbbbfb023318daefdccc1dc6bd194ddc9bdc446c8cbbee857b052dc8bd68405b8a390e569830a1849929bab0c28b25362f5049400f689a8009fde033830c37498cd062742bac50e0282181e24b305814698aa012861831c89e22a8501c47b9ba8a10439040cc14a1218270c2675d5081bb3b6fd971021b5ef8c122cd0f6438c3e05848ef9b147a65a84851c3141ece60f941c9d60297fe30b59b0ba4be1fb4bb1ba165062a8a78c2ccd0172e7e6146fd761cd1d005bb59e04932d352032c8a0a6430050cee70a1769c0dbd49863ca986d09ae8a250ed356f8205ab436ad91cf2fd87c6d7de59b03d66bcaa7cad9bf1aadec476b05576bffad5afd2ec97fc8e798bf4f2dd49b74853aa5036336233bcf595d4a4bc513df99f63712dd0061a1f76156f7191afe4cf4929eaff53c9a22a532490fef4274f855398f6f2b916d446ea546881f4f477a89722e1f4f4a9a702fdd3af6b87f4d40b42f2a6af98a948c9411cc44127c8643ab3869a50533eb743bfee3ff2e5a4534b95ef5a8adc8b6cd352d272f3aafb1dab32d6393fde5a977c07f2168f4b3ea9e37179907cbf22a7f7a1b41ff8a23eaaba9dcc18b1557e39c60a808864a07941fec94f7108818689e69fcc4c7698eedb8d84320ab2319e3c71f24344191727a9fc373a6706a7c586f338db42082184ed9c9360db1b9b8c428bd81cf03f77225607fc8d39c042bfeea02ef296e9e17b4fb74c9e0a456dde86fa506f7d053d8752e345a9f08aff7490b7784e4a51a87f19940d0d0d0d0d0d0df10ffff0cf0ffffcf0cfe4e816631b9b1cdd58a5f797b738ef9b30420eb050f87e65484b8c74655ea9f0fd05f3168f0bbeffbc4bd90e98abf43ed4ab461e526f28d852a0af6db9bb53ddfb289c246afc1f42ba6563e806961ae329c6d8b74335afa12666eab74ea86afcde9c88a4c6ad5ce7b444c2232cca5bd24b51805d9b2241aa203d572c71c72d5b0a466685f9540eea6a4922ab5b731f9815052d4d19afeadfeef9120a7f738e4915d640e1a34c1458d7f455fcbec65265ae81f2f7936d7f6788a1fbfc6acd905122fefbf9f796ca9559a8eb7dfcaaf0b7fb4007e4c4f3c14f8550aad043e154f7b74b65d56fd3d4cfb7a3f1a2bd807d36a1f0b47a16a2253d75899e48a9457589643041dd4e7b83c78e9d151410f484914bfb15b68b172780b9a810d97e7eff8eeda06bd7fc67246e359d0e8faff9ed759abb8d33bd4eeb6ca78e796c907b1b6a4365cd7bc73d77a7e7d139a7aff993e7a3e66b5c1ce77d089a98ba797f230494558455a727a479ee00e992afc35f034bcde97f83cc3ba7183e0f138c74eb011f0c51fbb7bf8dd5dea13874864bfd760c7f84391f4ef391fae1a8cd1e0f0974c5892b340f94a424b695396c61ce5dcf7ce57fc2ca9c5ff4c7e74bbb827efc83b7560b132e7f2f0523b4d23ffde723a8ee4754ff1a63a0bf66b4b29df16bb25fa9ee4254f72913e63b54772fdc7fbec59bf81c89adb9d2abae7c42bf38ab4143d9134a09f138908252e1f7968cf9ca65cd10a59de6c2e6f03f751a0babc37fc2bca5f5f4ca6bbc8f831070de77533fed0573cda7460bba757a297095316fadc759f5e72f2a19dbe27625e31ebc3af8fd198ce5322b6b17aad78d9a36f788faf10fed1ae24a4e6c9c97ed0153219c2afc53855e0a0857f85ca1f7f1188155e89522815df2d9253d18e78adef4d5d26e81650cf9e3677e67ae7338044a68ff77a3f273b31e1356e66a9755bf412b492f49d7e2a780c085af294b4e22cd15b894f1a76318d943b77c9156d0ef4656217b2415920affa9cd26784bfe7275b78c1dd6d1bf35a494dea3fced0985011b163a9c000a8704f5a1b12ed1096cc04297d070021810941301ddbad862940466eba15a111704b53182238296aca88086418f7c41b9a02aa220c8548884846290a28c0c21e47a7a8011f990438908221f64d8c8104d29d304d1142e484034a54b1744539a989285680a124453ac104da902030a3ad95286d4c29824aa08832a2141081a85aa4b44822395465d221ebec0b2fd0761f0a7ee0d9ea81bb5bbdda33b3b843c81dcddddb51997567507d1b62331d4655a5d6f69335404323263e483ab42a4d7665a6a532fa8ca4d20ae6e46382f308a13080a94d059965ca894444d01ded0ce4831545bf69a93516d6de63259ed97b136d366da8c0619977d34c8b8cc8f220d32dbc19ec29c62b1d39852c9db707aa09fcbe877723ff299f45c165db6196d46d1a3d176b0db985e75257daa6d4c2f004bfdb6a34dd6aa9d920bfa4d2019a3fcd81581409bd10c286a314e206f919e144bcccccbcccb1ce366f49ae647da439fb96c33da8cbc3581269036816ea886c2919bb63b77e7082417c9db8c7cd58fd383cadddd519de4a49809bd09844306edb88d69553f0e994db619010101e11cd1ef143bc93a2716e664741ad3399f36e3228e344b5bf37293864c362b87387b42e7e6f013bc355b77a0ea4e805af5b339bc67be9a00ac0e5f46fd7a754fc3a2ccccabba4fe623daffccafd3903d9fb54a424167da51e7ec7cc140434ed100d8bbe27f260f602c57fcef0449eb80f85b19365dd2d3c2f4cab558ccf7e4458bb991cb9c8c7bb10a10b30bf06f37325941bfcdc8c88d649ca90afa6d469a0cf62079570f12ead25e7e8c69dd098b4580bfec4e2f5805f8c7ee44c52ec0df4f5e3687ffe6469a4c9bb999ea1f37a3cde16fb2827edae65acc0608eadd5de837b5eede65ad9fc650f73cc2a160b8ebdeb7b3fb3aeeee0e7721162cb8c8b62be8e7339fbdaca031df623640d0cf67b2ba7093ad7c017c41d876c0ff82d16634d705b47e1c7b1f945de414b2471e914fba4ce1821ef9a447f6c827f2883c22b9c8232ea0920bfd6637336f0a422943748b0145afd78b0517d1922ad57f3f7652dd7fc781aa3bb797a582b91041599a80c40a5fe8835e39c3aac356c14f0121114995bed43f4e3e20a0d4573c0479dae511db8c59942cb498619bb78b0a305832012c7cdc47782226030b1b7705d68f58263399c08c8111d8aa26db1cdd7e66a3593e46084f336094c5587608bd9772e1890266285280c2fd0766bf71d60bac6e5f1e2c16120a211cb212638cd17405e5871be37a8c4fb950fe58c423d3e03debce5ef507c1f966102a68bb9bbef8f24c81c6779918db16b252118a1362044c04d58f724a68d7257a9243551d795da227383c5992c4b6db9abf4d4fddd264f7d4dae1171f7ad0bb57689ed87e24083aa32ed10d68aa17052b8b940af7460b54f55617cd20abfed07f2e51fdb9ced9aa3fbd41356941f5c7f928d5dd090caa6fa161081e1ee8f49caaff8f2675870154ff2116e81296a8fe1ae81c0daa13d56045f52f72820ed5df48e720a0fa83a0a8faef740edc4a640397ea5c7ea4545fa0ce5922a034d59fa138d10d5daa3f47e99c9aea52ea32b4f23bcc601e2433783283a22d8c0803c89b788d23990251eda1f88c941830b1040c28a63833834d4f13e8f22dba683b60269b437b4df2f0968d5f9cd47fff3cae1a29e805e9413d07cfe3dac04637e9b4f1fd361c05fb01aadad7459f5fe922239c0ee52bed531bc31ed51c745dd4756c7d055d5478832b745da91fe22bed7f878a900dbec6ef50d9a1228483efd71ee5ed501182fa94b7f3c357daa3be86b74345488d47793b3c6a6ce0ed68d95171e075918a870ba5bd8d31e8ba36f875a1bc14003c135aa5bd4946658a1414f1f37ab94ef095f63656141955ada749fd68b5b243dda0e397afb4ef8e4403fdbaa86a2921fd1b7cff061eff6c0eed6fc050edbb48fbf6a27dc7b48730edd7db4803efeb59d56ebccf5f34bccf6133bccf7f6cbccf81a8f779d0c9fb36a6d5789f5fa99ac9fb7ca86a9cf7b996aa6d9a7b21799f1b550d6af204b92c207cc8ae72ef05e0d3045b07707777e1b6480f7f7a949e48d09b2357c2aecbdfb6737fb891c6196c27f046aebca809631956bee882d684d96ee0b20dd19bba444c864a46505a97884995ca440ad1cf955dc7d1b2a6006b8a280616d636537b06b57fd7668aa0b56010ef879721f3090e5289685f8445224540f33e5699aea874ee353531ea14cd8800000000d314000020140a8844229140241e57b6f10314800b76924676541a4b845110e4388a52c81842082000000300103243334327089d468be4be765352a73dd5ed262642eae596a9725c95dca7054125919e68e3a3cc940bc95f5c8f91f97771b40249f677a9e9704ecf67ed24ff31a3d784e96706897c95934c7360d6b90e99f7f7d9ae0cb02eff6d3be1b40078aa9dbc0ce74ba6effca33574d15c33ab308fb3e186b4120c1287f08388d6d210665b805380457b04bc0b0905a8b4127cabe81854421bcf39245a825a188d4f9e4ec79544fb6a8a239f877bb05dec2c5709a30a92853f79cd9cc30953432b1356a17264ed65cba4015c2f4f8954133b6b96d3072df603e9f2d399495755285072e6e1a409f314c8e2b47a50e56b1397a7203ff554151538c5ab50b29444fd23f53d1e73ee33da0631f7c8164db75aa10e4acb4fd5af6acfdc2a19aa6ee639a6cbf897ac9de862103cf57abb70112e47aeee7cd94fc876f49088b019d71b1a7e4fd1aaa92c88fdf77367de7512329aa8f60d60bc049bf96da3dece087041e8357e2c3e25fe6fbc96378406544fc50a4eeda8d5fe5df1bc815af362af772ec70b1cbf24ee92091edc1641fdb788d99ed7e8d3fd894c2ebae832755322153daff39ffe3de63acab2e4938b146e932cd313151bf4f435d08b0f7a5a1c5a56568cd44b702cc62b5801921c7dec94faa3065019fb4878fff5313e8602e027ca77481fdb354d14409322bcd95c582c87c34a4e6ab8075346a6c56b94c5f1f2a29703ab2a3ac0d397d20328be874ea0fac8c07b0c3b8195fa14c78da6577adb8233ab4a6e4c27dd34bbf63629458b4a5c7c540c44c10511813db558e3e3a156ad12d54cd1e73d552fc0e28c31b6f4e53124ef7e51350682611627ab8ac03e2a88846306e6ef1873bf1956434541a516ecc108f914115adb91abc39f88a8a08f8112c5ceb2fdb483c8c68455a9175d2ad11ab8d7ca5aa0c65d96c8a8342919aaa072d09393a986ba297232e42434329867ef7c962d09cc9f12104343c7a33dab3931dcd8d33e1cd4f5d292635a7a534dcdfd6d6331c01fa821e45f9935f1a428b65a58792614e2fd65add6882ad0bcbb590734e5831c672d8e4960832b438a93b933800e458dd8482cae12ea52f94bb8b8c55f49c010c131d7ae1d09f39d1cffdc45e571976ce4f06f1d67701295f0fa093b047949c7017c7e45a68c2906c6303a65ee58765a658719a529e85d843c735b03c12e310ef3c719390d6e2fd8779f0e5b4a29c0701d1ccad155ed83740b476a8f73c970dea7c3a4f7dab3f76923cab0a34d4afe7ef4bf13f371a44b14d655c117e3877516ad9e1b25c6be3f2e782867974b31b13ee26991353b2f4263f01a9c856ee690f05c0405aea9d7b1b325e5cf875ef49615517dc50e828b0d27b28c68c54a73bee3fb129e022508e0e9ec06f1ecd8981d6607fcccd9e41a98dca96049207b527c467f0c71f42850dec2243511683aaaddc22da60d7d04a54da83e6280e1bcd25ad3fd499c966e0813bd2a0479ece3fb115f503c9900b7a1a329e255471b5ea55c29fed3e880c84a9efeb5c33205131c2d457581d6f9a2b12e523f6552d19b68253833bc4e9dd95240a83ac8c387de693e6bddffe03761595868b4e3b2c3b5b7d62fcc22d69591c8d1a08f9db1e396e61ec8a0b77234ea2aec4a8f43118b18b0ad36f6e68e90731f22e694911fcb9a9f675a36f2dfd9f06e4b629aeba8462f26175f1e252c71714ce67e30cb708d5ee94170ddc782c537d1d8fa01dd5e0495a154e45a8cb2ec513f3312c5932370823c4852220a53e4072bca48bf343be65217b7f6fc15d542f82d52f44ee7e47ad0aed11355bea84c924373565adff25ba0945359bc3fc6082641321dc25c42ded3eafc0ea668828760731d2f32b5e4ea95123752321d39a6972bcfdc92a8eb434e2b23090b90a8afa6953ad4b40ff19c11daa36b77e3667210fbc2be744b64d0e24d926ed184607c9b471e83bd0e45027a9650df2bd452bdc24b1064718257c7fd5ff7e3f0ba56a5bce115f0023c270b98891b72b444e5ba82df42e1820c2c0930392d7ea4a8a84362ce5a39c4896f4dbc30210997fc674fed0c25996c5cdca64683600f4fa9634ebe690709aac3c13a3b3afbd7f50a6e7e06ee61c10710cd0f97de0c55b73aa02b2fcc9bdbfabe47debef3e27a1a584f5b65bfec08814de69633117bc3f11ff4b149b24b3d3082d3c6c5262d2b579d4479209d86c01478b47a8575e99d7c8b2563bec376b729cdb46d164f4abdda37dc6ec1071ec5d523d0cbc68e6246945c46ada35c8a763187c899c189c82fa0f8ad01e203f566c73ed7353051e0df45762ab5c8a188b6f67fdb74e4e6d917e0a44959c804b84e3ec19dba0a6e989193e664735b9d1c061443fef0298dad56a0704d5f54a2aa92ac7ce0b8e9dfab15beef972da607f8f0a600d674f325bbed2a4298c376d075a578ec6d0907e66c0f31074a285caeee7f0986beee279a715290f4963d68b8786691fb216f431d29e950a4161402c15aa902d5bd9f82ca739e5d2d11d8011f8e3460cc1ef0e827b13794f40947af72266211d03e3f8c5c002724600cf0430c4270990b5d2940abec8510abe8eb803d9cf33d21a72c883152b48bdbb6ab6c15251bf22d9b79dd9c40887c38303328eb2491158c2df97d2bed738a37cefc71860f62df3bddfa2b5f154bbe8d5fe506d1075987eef2a520b6cee262c363ef5734515ec61da71af9c043273838c64437aa7a321f9fc516b1a1d23bb0f41ecf07445a153a5c11d612b66351087b9b8969df19ac7fdb18611c6cca5a9bbe5f4db9ec05aeee7add44223e077301f6ce9be123c05060a528f6d7c54a160bd6f4a655deb7d0addd87c436deddeb1f9491d836fa1418e5ca9000456318106ffaba28bcfa945b866d22fdea8b21a2e343a465dac29c3fdfffb2a3657339d2b486cd3c490a29f11e225c8d65e1f9c75fd7c291ba7dc45b911c0cf0b8a4bc0820ea2019d0b40d8d0582038acaae9874085eb80fed52ddd30c5b3fed91a7fa1ed5d54974e691edca8c4e37eedf4c0c0e15c6605dad622fcf712ffcdcc98435e4d6bc0b9cb25be4f0680bfb68fc54cd0e61acd3d497565ae87c8dfd9a4ec204af576c1b9843ea6ce86e607e948d5cf434cd307491117748721811238aaa101666b135fc2ecc5179692eedf5b603be39af3ad305e12b8eb51dec118b3cfa84d1b7f06b4d39d160bb0a960e37031b6246fc0c7b880c45e0a4b9a9311f508008e96176a504328e878fba0d20837c4bf2f1e3156fd8d0680cdab23267ff44e4e4e4f5a472c2e684f4948e6469731d5ef8344feeea350ee42297a492d58eaecfcc8c0b142b885cab8050609133ef99a6e33d09c0a2f988a8181807dda500fd86a0127127b4240e643cc623727c0592608ec9e6341a75b04e6c50da29f92d0da2bf70fb8b157ea924f807f9ffa1c1354769d8680d19366cba8f1d2f8ddd855b1d9a9f039189d086de3cc6cb16669e364434a19cb682c620f3209f610ec31b7fd57a284736806f0809bf1072c3c57285654a793c7300425cd96f960c43dbe4d90e0e335de4e26915d408d1af0df3d9e42b6aa76c8993c59345aa8bfa8b46d875870d20eeb6ed6e30da6c547979a46bc61b7e5136391e38811ec43cb51c715ba512f4f251f145a1dcce0807a1e8ff2c58a7ef9686cad3d52068d6950fe22152c1a1ee86bd682c5f140fcbe1825dd6dfe1b99f90aafcd2cd9c663798806bbd563466ea4fcd466753529d35489d9ada72e593f6750ddb48dfb7a4a61c50fb36afdafb9dfb694252e8834bbc3a10e87d258a6f5ea33344583039078d056dd7f0d8a08cb736a9256678b7d0accae65e4b1357520284a2c9caec892eb9a0d980cc938196fd779a4b034596c566b2b47c62fc383da106ec6a738fd0e7f29fc205a352fce1ebbfe698650f0e4a1558c9237af033d6ac195b45dad555db8f62abeddac6c16ab5adec672833a5cd29e529dc903b6c788cd46edada86c90d0b6ab411492185275b2c2ceb48f6462496d558f02d37a444f7faf4e7de9cef057adedb94a79b44a162c3aa59c9190b6fef4b49ee2e24e78fcabf03b62e5633f955d3a0e1b33b38e84a2294ae844fc0bc1d7ae0f9f083b0c1ee8e1aa606e5640ed2d3824ceb14091e277bb60aaf66bfc8d9be00348715c64aa8eb5776ceb8089ea650d875c5e31e83d4834bcaa8a77016d8ef5e354383c96e464d0209a981933aa2b0cb72679aad1180d493c7c9949f83af251ab334545c3a36825071adeda622ad8b2df044a6d4340c944a0b683a16137b9b3f18ea8be3649c267388b8e831433f095e9da76c0312e9324432b84ac7259b23dd90212caf534a8346810e5eeae484b56d76b508161713dde5f1732bf009e17dde607d6fde1b13eb22fc181dcfe7241150dab927d341c1d694ddbe8ab5d47f83183d2556c659c0df1f635f79581ea9c83263f72cbef8f9ef6e0ee9d36b9c68f8f05b95c071555ca7f8c6f01c14d506ead5c368ebf446216883cc3d42da9d131d10ce2a2d4cb7adbe1e039fd1c3c9034ecef011d695cdb43f4310da96aff8d6843ebe1113e57a6e1274131dc56174263a9579017dcb67b58c0092419ba81b0efef6be03d98da4d2431b5698799246325798b3cdf9e57376b335dc8c3be458c46147f46663800aa4e4a237c5fb322644ffd0cc33d297156a967042550a9bc1ff65c7f6c5c0d7fd81b744be7358c253fc79222ee95d6dc1fa6ed875a4cec9f008945d15e558c1366cdd37f5884e3309f0ff38a0bbc793663edb01f2a47b1c7af644a12c6463344a471eea14fc053bc08e6a10534ef5365a635ea0a04c47a62c37299f2c31bd1865cf5ea07a034bbbb83bd884756e7350af0f5fc87da625c47313149fd942e1d0779246264855554586ff74d2c56d0abcb66efe148bd01c9852997e48a181fd0efccd46802749108710fff4de68e8af2d1fc5722a9b4e23d89dd5570bee57b4778ed5038da229fd839190b9be1ef8bda563a8df516e8de8288f9040587b7b342be5f42f4f8e7643eadb5b080f7565a06abf9551ccb888c19e1b8090a836e178e4ef9662a0630f79b9915793fc66f2fc27ff96f27a955f6a79b5cbcfc1fca2f16b86439664b443a4401e1084f7fff1afaa5ee9da7fe080b66c5f4923de68a7ccde4647bab9691c4dfc7c34a7971531a24f994beeb5a34473a45df9491b74ed750a11866543ae205a039a8f54c4f366cfab291e4252e134969b0ad7c99c678ba23172be2afb7cf4962ee73352b5e1074c193212562befa44f635dcd637063e58651b45b91d13e158cdc54987e4e1717e37aba0ca64f8802d837536d60f87fb12510e8859877c9c53ca04b9e7f1e3152040831fb7a1c4e94881e34499c2cc0b8211d7b8a42f3c894213c1608606f983e7b25a11091bd3b215210ed49923be2e0159deba1806eefd0a8b640d6df80f008a83076fdac8a2feb30eb3e624f04b673de1fb8d500e569423a253be543cd3a3f3fe64934c4dc98f6e43be1f1075ec559e54f97bc0014cdffb2e3e7ee166beef294c7df099b6ff4c8a44c76738535279dbc9ba0e593597cfdb20c8618ceac5d118d4cc1568e9b3760e89c7b3495a1bd1fe1bc5684800f97d9ebc742b2ef6ce320057c4027395fdc1d4356e90ec8f00c998039c19df618a879f377f5175eacda8576f6a299d302ed0b26ab58a89491c0130a945c77e8b70ba28f72775ebf08d5045c99958d2840d1a5152a74943d676e5dfccb54781ba9ab180d84817f6733467aab2e2675d0a5e7d881468f6c3af6a2c963d694d55c5a07ca96fba427686315c0c54d661409ebb5b658a621baaa5c6154d87dc7a3fd17f0a8091f77410dff36ce6872fa830fcff5b506a07eb05c684a739d0a0826089b9a71cbef2c288adc1e231bf8a6452e33b1893d4cfc3ff3cc9bf31ad2deff8c219236fd87ac2c25400e8ceb05c5cf52f30aff99db8e70389dd2dd8ddd2874a0d7adcc779ddf65b06296b6a4dd14ce722e5e7a6c95e0bb6846513232522cf9aa242009ab841ccf203502cc1774ce9d864eedcb689f5fa870081c0f8fb588f5fd0c12d97c7a94dee9cbfcdd0e583e43a5e1a8f53430a6057e6de3c5ae56528428dd1d70399f8c02039a6a52863cdddff01224587e16f37152d9a5204be9c0d8b705f7666d8d96c29fa6340d9d284353ae925b04dd92e455d30a17489c8dfb9d9918ea48a0d26431541277f344d6dcf6abdad4c7faa07acb5d51c329aa412122cad1424cc6a7e558c5f1c423bf06b14cfcb947d5a72e4ec07781d4123c17c002152a98d587db1b68dc3f65bae2094c843470546ec93909cb644875d33fab9c7ce442e2e7a5d630bb41342d470ac3ff76fd561008c6880b2b9d7b2eea6b07fc40cb9995363511d9d4cc557ba1210bef0f820a4d1c60fdaadf7206f7fada7aa8dd0243c853059b859a211d7b056ec68e13167876205dda4c79104423045d39998b639c4dfa167a91111c0a5161fbc1180e57d44eec3444ee6151015ebf8b6bfcaf0f51d05e93901854a49754b512031d008f5f846990d4cee1bfe4d42c47b126c41299e4783c992cbd977b96ce54169af2436ff3dd1b31d44ca9264ca42662b33313e1f34406fa6ca76258d441557268f14f1080fbd1ac2a2cbe31d5d2e83eedd4b08c834fc9a3996fa962117f906a4934f913e71f082583e67ce22b396e3e94d66d5e01ba08768ace1ff428c9912682ae49f3b4aabaad61d16f76dccd8f11bba92684ed34e76406d921766571212de25357189e790754414bbd63cb11bc042600472688a27ac436f68dd5d9235c9c1e8a36d2cd20d05b602d4f6745455eec19cc8e7d04ad88f02583719e17d3e19aaadb5025f4887ce8f2112d2f67fd9950e4932433a0915cc8fbffa87c5f2135230174924b9159ccd3b0e1fe68fe43f8183c4ea1f7c300b2145bdad9db0ee04459ce13ae286d2f0d3c006303854e0a8e2b81d2cd647e1abdc5661fef8f4f09c8db663ad1899585ebaac986e4e8e9b245ee3b30df1fe65c97a8246a01b339953b1754e908b1550105f9c35309525aa81a7c979916dd7e53a1128d44bd0594c827069152d27d3f670abb7c9e1a2c7e3bd2ee25fa82e79022a23fd940e015180d09119ff8d6bc650152b6f8e3633e52ca8c8f714a5906d7db9bffee6f4b6f5d374a8868365bce4ec26e7532c385f5c99b17d113ae12a414178d8e7d2624d67f8cfab050ce8c983cf143b9c9784f414b3b5e3c467587f86db44a5a6227c5d92ec1fe2b1e921c46911dfc8606a5fe0c274963fbe8878aa0cf624e131907fd27ab385944ed75992e1eb0c0266f309f89b1b31f9aef24be994d40ce3d3839b25fe65de12fe5c17b6013c0bf9ba72c8429c90b80cf520af7b67c126cc0d2a163b9e327420a7c3873a1487ec4cec3830988e5306279c06b5a9f79b0b47484bcb3c8a8b81284408b079a1901ef285629b89960aff95ec6c1a8329fa75c7b2369704eebc5affdb0418f7ee3fbe319759cd648437e9f3351a6281d1185df1330ad052492923742a231beaeff8df13cbf08a72a055795fcb09b3950aec024503c258133c05276b620ae1cc1eea1e4c226112238a3c4dc352c9ff5a5586b38bea9c9286ab3f973bccddb4c1a9cda6609b730ba69a3fbddaa1ef086e8260a4133f35d130ed69857cc2a93431e08614659205b41205c2f54359bc0d0b0d1294954890f6ab886d022e0d609089ce27db349be210d453524a56e0a75d296b81c2d25fd544f9264eb82f3207a46e6a426a2c083c0ce8ca50da08e482b7fd84a90a21e9c13d8219f88bcb17a8180fd7fad129601b3cb1be4ec9b77fb7fe2734c7e852ee4892f3b1cb4366faa77ddd59e83d3b309d3a81c3835e4270d5e961c17684a455d19cfead64363a03e50c78f9f252184d9013dfa47c07d1687ab808c2867668e0d882390346dd4e4da19f178744b86a8957ca7ebf60c00b6689ec280146b706c86b60fb991b282c21d2422881c1ae605bfa7f0897b6de9993d860ee009eb06a25f3266b8363a710f4a4b9bc3166482e36b5a54b9efa7c13a7785d3d6d89beee61436bee22c1687b50c2da168b10824f86a9e6e93575b782d9597e9f0624f544779818597dc867422b85d5c7b7bf3a8800b14cff05570cdd1e654339fc404943c16dbe5ee1f1d3f45dfd5c1875a5fa94dd6971c30931c2a77be5ac3591cd6beb8446c7f0a452d4aadac2f486c21e482f356a21ca3f30f1621b41ad34250b21f2cb84febd5840a27d56532bf022fa668d7bfafb08b832a8f3a75dbb543c0458281bc3f197eba1b1f7504ba073ebf6eb34a8f7aeff144bdf595c9642a88b52f492d77e9fe9c3ba54592344813e6c0bd80dec7a1ed7a40090170778d0ab7a73c53f3140eff586914f26bc102a92a2ef495dedf582886103c0846e4516ad0090b307e4d4a84da4a102f137e2f357226ae100249e6b85481c3165ce9c1a0b16d2e39a41fc3aeaaf73f48549c49344103e1e6591fc6382f701d6f95fc01cce112aecdea9a36f191b60a824ebf4c76d2b601836a5a23b9b2361d7d1978138eced9c7d22a85389052296b0b08d8f8bd3ba33c415dda683ce0df805bebc85816c40e785b9384913f32053b4afd8827dd2020a60470a3f7da2f23b056662cb6ca6853fb1f3296525fccf321a2c3412a7114dfc7f3c47927f69314e165968e4dad23c1899a603f3c16faf65b608387aff87a96de8b5461cefb854d57323d85dfa49ea2ed62dbe90bcb2bce6449f890e698ef0e050c011d481d659bb9bb7be54365e47a3163e2abb72bf21e0cca328ccbb68037ffd1f023c072cfcffa68eabd1586814fc0eab93b3ed6e96a5eb3b9aa3f4841724e509002ce09a29c5099ad13eb986c24f334b1fa49dd4c8fa2e17c48025c3e7bc3b4a69ee6ddafb508006733769134d14028cf2fb85bcb384add6cfc707b67620b5d7bc252c2468fecb027c295254d732829a8ea9018aac16303719536a3e0ac95c695b965a7da25d8337d9721d2b3a4ab6aaf9a77475177845e786b789c3afe0c0fa02a994925d345f492ff8056bc4ccb4f588fa16b58f2d497e4c3aa5bc2d2246258bf9f534317f5745b879c85b37aa6cb4d90ff01e7b950e0108163cadebe66011da4e50dfbfe02715103124a067870a5acc8e4c721cb1882d2a00ee81888a93c737670f7c9cbd11ce0dc284dfdf23d8e4fc676398598608507889ee357735770748b1656b65da0bdbd9636570cbf4b639df5f926032fd3f6ac04fe1e46c6153020edf0cc1bd1f5534aa3187e0f33d08c1ea7f01e197c60c781717daddd1fb656f3a5ae291e8aebda3deda97dbaca9a16817e4b0f6329d83b114bfd6b9a59ce364b215bff3a7a3957a6d8348c13396280bd5da7c42a18423b361ef5c0debed5eaaedfbccfcb2ce2912eec9cf115b2dbcca61bffe31e79f402caa492b2f39c2433eadd01cf15a601d634d8a2f3308a6596291a2dd5e428b583677c14c0fa5411c2f6228a34a162e3e525b275a68ccf283d1cfdb1c671dab75dc41afc7967c3da7f6f1357335377c61dcfad4ad56d2ed6479787763a7ef7537165858eb3f8f1e994597d5a0647ac14f24c5f1328974a21a53de7894a15926048d58e2dee9491b6a3c07851c556955537ed5e672043032cfa2456b2acfc5f96925abf273d2ba158d8e0e78fbe8d3cdda6ff3787778e309f98229ac8adb608f244cd8dc721fceaa7f678487b904ad98fc03bae7ed439e439838d4f78361e05f500c7cd189f084a4a4df5349291f4702de37105e4d0f2d03ff091ba8a74da3033dff71478ba6999745a35c13bacfe2c7808089e49b82be24dcc7afb193da0012a3b7a9261f318388296d461164e0b53d2296b6252d18cc4860acf58a8389e9d60e9f5065d0a16d3b04f816a07031b82c39179c8b3740eec5ffc5a103500c14e9367d148e323a619c75c24b7e18e630a8ca09101434b392c04f642f3b4c30f563d1205f184c130afda38e2c0a9a14037a634cf061cc2d164eb62992ce5b40a2ad86b15a142a5ca42fe087a9d5d391646127e432ced972ddd23c16236bc52c7e31862bf10ec710f1945c33cf104ca746a1defe9a44d1dab1c20f0bd27ad86e08867f2d37c51854bf743f85be48337576c5fc0389e05574f89780977e0a02eed4e0f4819abaf43de761efeef438bc038cebfbb9d6b99d63e323c97257b200fc35bb791ad7c035c2386cd3a20360e624e0d8b60a8b5d59d5a6d001397ba48df653ccd072612878993d4fdc72b39649c27d7dd02057145e42c78b137d5f7a932b5e145c7a5304a659d90bed42fbf7173beb6a58324cf4daf9f3e514320e756517d45cca23aff9af3e66e45c35de69b71df5db0f50b85590ec4d81e40ee067e5d75badc30a196c48bb4375c6299347d2f06b7db72300c0c03ef9d93eecef89019cbaf9024110ed22527f77b7bb0ec045e2b61ec435239d3fb77d2023e7f1e3c6d3b1cf679342395047ea2d25e064a75590535eae5ea7b105e55221fa4fe612e0752bbf76b42727429d6b0f5bdad01a4b86259c17c4851a958534228af66092a344fb64ad211e699328de8f65fd2591d19d86b0c88d7c003366100dde18d43cc66ac58ed6e3423c59769a891fd2fc46e806cbe749c3c715a03506336d64450ea32677475a86cafca67efc479d4cef6fe308d9ff80d4d5de4ac0e886abba94da86c074b9723d268434d3bdbe72b8429f65313e66e65470678268a1a5b1fb5a2ea6330fc7fc8aec927bcd2d1b9a1ae814551129dc98f410c7b38009d4fc566135fefbe4ea7cd62eca8363eacdf9e386c9959f0fd49ca0c27492c52f4e05d519841610d780a831efba7966d781931d84be7a47cab132a7d18291399952cf2d45c556004a8d8417d1166803d8e9a240810c42be041101c953de5cc43b406c695729a1210c792620afdb8ec25a526b07efda13f9850bc738f6427ee2fd3bc037d6ec49db799d77229e4b114f2be8bcc325c46fde28df6c6ecc341dcef1ac6279656e45b431162bbb806a88117247bcc78aa9b6d0ff6c6a0d8af3f2b43b61ee62fdd6faea09424fbe9bf0f403d429d94d24fd9ecfaf3cb71cd2ca04544a007519ad06f25c6a5e2fedaf07eaccc92aefebd9c45a69a162aae391893db947a6298ef1488f8eef3087e1e7abcdbcc761ca6a62dabb64504dee2ed57e0c272b9b4c30e7d88f69a5d34eec54dc3ee4e2d1adec1a1c374c441ae6307d3097a740c8d340609726b0d950609b6f762fad9048ae93484a2facbd02168d97914a6aecdf40131d268dc5fd2a5a19dee6ebd5fb76db349316603ea187dc4a2f97f77f1e3318dc8f1b13d09973ebb27833ccac3c134e1931a7a9e86b60c50bd880e9ab9586e56e70f373ef5f762a2e13ab10119086e8fc8d9fb592aff4b8b3e2e9edc575ff9b51f160e13ff207b6d5eff1fb790fb6e0c6255a6c028c51d1564523cca4c76f6e9486d99d7b03e126974f2ddbe8d1591d3e2eda566ca7c1214c8e4dfefd5ec3e15fe4838693db4a19a639a84001f6fa08f702b0d9f2691a8003307885f1e51f70337c23ee440c0d91f0f53e9e6046efe9cf610cea878e05a3ca828e3e17d4d59f7a07bf927f62c40b46cec9defe93c5360ea2e2273d0510d8b79d16a39c9d4c7867172cc3d24c0a2c1a76c3af9093f77dae2533b632d3afc1245044fb7ba6197fe7e205d098b68291f39da6410a7d45c4921d2346af9ed1ea57658f6a4283d245af6b056cd0a6bdc71ac3874d629177dc0e80b6f849dfbf3ce1aec3c798740fa1f6da3cab102aa7d1ab1eb539c2dc0d3691a255548c7ba4b103dd09c199485bfc25a45d903e9a81dee701d9eefb2a5b88a7473c5ae8b6fdd66678a45f42e86dc808ef5e7f300e3be5c0a3ad3e9b071490482481b6ee260da3c1eb0caec37f30a892e2fb95ee7b7c284d2244baa78d9dc1ca58932f416993a2c12a73ed89981754408b3edd21c5736682a45c874ba448334a0e97c0a55ee7bd890d595cae60a13cf36e78c0512598522175d6086d3c98119a19eb96046bebfecbf018fe9c488d90b13d72a8c0b9cef543462fd1f7c45d026174ecb58328d2895c14fa5ce7d3df845d30ae43f608313576857834bbd64a2dc63b6cd2566ff35af0853c50d4f8d9999d0d577b3e25461cf5854a053e6ea518b4ba1666847a649db99c0e277a6eaec35f4c9e0b165757bf487425c0de386987b8ec184adfc1936e561b425e951f30ba98d405cdf1f7a15931a0f483e6eef6739b154b6ff70f73567680c0ca52a5c3105bef34a26f2ea287649b6aaf8f789289344893a071eb1a95b9e2b446d647a9fddb6a948a1aea010aca943f381771f4132b75341426723265bd4c659e71af5f50e47004bbf6b1ac45c5069e75ba9e246d44e138615b33731cc26290bf66e760c8f81b714218b3e2a9bf38798fafe4f731329772b4c1c8d9e03d98968644304bc20ce66fbff20eaaeee63b87615cb0598e6474e3c40d5ebd84443d1f3111d390a1df953c8af788b6591590c908e70dd1df12855cf370b24cf9ff068a89688b0e811611fd5ed25c7eea59771412333368c0c54c31827c2098d71cd5d8ce8c1331fbd62f79ffe3091e8e71cec8f3c2755d093e3e3987b92a33196ad12f686d31ec9f1ccd91b19dfe84d18189171a4d2ce65134d86268f95b2c3f86b10ad9c33e7aebc544bdabd15c3fd8471fdd3a1d05b317c98286e25d5065634f690728b502d9fb460636f226847feba1d4de1b0c516ee0233722aef94332e4c707526e8d5e581b956d957877efccbcdfa90d79ae373ca481bacec873b70776cec22a0c78ab59b4c1b6a91a0a68d6d45d0c1a29d6b61be83cda63289ed933a1caec5fcca387c3167cf56de52375ba0f5686eb0f7a0531c1725b6b1b01d922a041b127a7a47e2e8f59b9751476fa3a2ad7083966dcc42c8e9c97d830b8b94492933519af3e0e24b75695e630f30750235179ecf5ecf215c7e8a9d037a2d03fa7543f556b4855c302e0e16b5c0b6c2f9f0d3d4c145a2e4a40c3454023e2eed7834ac55127d765073105518097e12ae00fba16ee71669c6f1b82b03ad6098be244e9280cf2c9d21eda4dec39bc279b764a07ec6c5f786dc6743feb1396c452f8cfb8aa7caa1630a0f980ac66dba1ced129f0291081e9213ce34c08b187505e85158a20259f38bb05241f9a15f612101fb729f499ea646211357b13d09f7206f8b8ac1bee12a76db95c12e4da6f1af1cc85f4689b93dacb23efbf1d79f9d3594120b5fc2c639706f7b951622d693110080ee39bfcaeeac8d9eedd059bbdc489d923a6b5bf65f5801e392e71ffa5838cf0a14d8b57e7a1a4939c9fdb8f89b9eb3f796eb8464055947162a9bae3ed48f58457b197439aff28523e2fc240a10fea6083da94bdbc7e86786d148763fcf4a84599a38adfc9c2a2dca1ca2304277aefc37baf6577b19f76cb87b2107aca6a947f6fc1b10e1ec02fa4bac77cbf9b83db74a47f7c367de1e6be77b41ce5c78d1ef599ad1119de2e13a1c7575792306aecc1ca7b4cb52eb44137ce1d20f371689aaa2b000687f0be373ebee6586515cd262d1507e7943d7ede3deed0c7c545083c8fbc9963ae07d85b2f40aae9c9e800faba05cb144bfd0209dd01f52f541132ca5e1b3b7d4ee4362c666bad2a0c8dc5a87c6a8b87c71930052ecb0d39dbf8c037211ee5bffd1a3d6d15b6015559b67a4acd1e9ce0fb2741cf0a4627838d752674470fdcf5ffb3e8e966782ebbd259b75df8ca5e46d157e5241a3944ca8d59623935884f445576dbd4f971b740647786727a3a504809b739186eea5ca0c12f6c7dd586f2ef70eda801cee5984bca8e4a399c772252dd9092f6618e8ebf44a132bb2e727e9c07fe56dfd093763d6a0c0218adc54e17795d95abdab986a2bca1d5158ae8ba2b04dabecab4fb68ef017ff321315ec635ab145cd0cd71e5706d78a555c8758c401d6affd30de2ac3b2fd70fdc97f06e83cb4ea7d5e547a0bead0e7f83eebe9620895792c6970fd47d8dc3a4141bebdeefaa3c97c02a4f85a823bd6cb183ba1b9b871cd96681a545c23f44733efd38ab8aacee93e7fcfbf2a5042434134d625caea1a87966937424ffbe3a5fbd25f933c293b5d20d3c0833f737577ac1327f0f776e379c19469c12e8d042e91faba6cf2d67ab89dccf1314706b87e1350d5ba344800b9f8480bbaa34567302a490bafe8cbb6d4855ef312c54ccb92b317a4de15a3c45c9dae8083de461643c8091c3bc9633043cf00bad89e76befaa63d217213b3ee8348dcdb9d16e4f9b953f06fe4f8db292cfd38bb08831194058995cb869a230178b364afcc12c88e0f8cd1be36332a7333ad98f12bbd1bf81a04ee63eadb78eb3707329982f9a4842e102bcfe0f394440487a82d4e57e805642c29ec283dcbe2e7ce7abcf7e44226b1e294af8a4281ec68a1d0608e09827449ccf84f5882a7a0711af2512064fefb5d96c09857cc01253b5eda9065de8afc5f4315d917d2ad0bd3af5d392b425dcf9bef2c7443ee3ded224d7b114634c302f2492fc606cecf97e098b651f7e089c12a487064f183d78f0846bf59f5072286a41b5342c46fff63189730e9a73ee43c282aadaf352563bb127e391b2ba311c836782108dcc3324df0bd60e2a69e0d5aa600bf1e8fefad47664e4bbeab7b955ac495d26653357d795747f9afb50a58850cf87ef7f17d39452a27dcd6fc4a94d497beb9b37d12d3895474400caf9bc66fd4cce470655c645e8bb9b84796ae1bae03e8bdc861dcf4d24ddb6838668f13b8ec3f29b56bb8cb337c6d9dc08dc7a37cd390e234e44ee03d9b31896bc13022b03f10ef0317e81d0dad119693aa16496eed55290b4e7228137389fce33c416aed94ab3cf95908f3a92ee2a07dd321d4a72beb7468ecaf738ea32ef6bf820025d5d79d67bd275d58988c0ccef5a409de74216e99786ff36853f3a4784c173bcf8637ad95720c69e54e7aa58180f88d00cb06dbbc66faf7ad915d22ac4b88347fcf487c7f7663dab296cb56e14bccba4921e32dcb69fc7caeba369bf20c5867389d344ee610176c916ddc865cfa332b28d2cfe911e8c1b16045c40ac2d6edb5d766f3a631cc34e23afe158ca0dadfc548c7bdbbbc224e3d101f29d7382a2a11b1076adfc1a1a6ef6164f5d6ec10068a1ef63c5050fe08f66de31a5d4d980379a7066d3832874de19babfb18b46b8f90d58786a58bdb5ab39a6fd9b82f228a36e7fadb696a4041e97a891a204c3e740f224df35796dc12a997ebe60a14f4017b13bf80f21e1b3b8cbfef513de9dfd18023e749dd9a6254a25516000d42b9634db7d12d37e6d47d89157359f4218431dc574147382401c1af2cd8e1445d65d33a1776e093b613a0c7a3c7249cba9405839e8d018b1ca50b720d13cc6a392865e31635b60de9f4f10ec40eea42a1a0dbcb2abdd70df909d2bfc88eb1c8683c78ee789fa33c74be264c1fc015b0da86122daf394162ed9e6e2e39539e4ba017a631d3709662d95b1a251cd2c333858e735db5158b7f4952ad06459712208c316b91a401637f68b88d1926fe1485588d71fea67bf78194c89e4c9c24a4b798015694fe84dccac33a73a6710cf42517b54d424c8a236f174f9dbec5c7ce9db1bd0166ecce8df03d116ccc6183a8935c646a67a704b98a2f98e67130343168c378c933efd6ee3e9a92ece5e6371ebf9ea5a16fb92e87e32541ae8b8ba31202cbeec7821be798d60f496a1d4307bb3a53c9e14006aff2117c498c341ab5466bfde49c46329089677e9d1b7e8e01da2c4439b66e44a119135d5edced3de7f2f4c231f334b04bc0cf6818683dde76ab6234a30bd20cec33f814ae38fab47a35fcecbf1d0d774497ac089dfdaaece168f2ef98ed4c664a2bd8e410724697a0122f38473b49ed66a6745a1ac654678951827d5203e862a10272188fc4e2308a326ce097c9e6c23db6f8f96bd55bda215f21c9c91472f887db5ec9e0471c60a7c4cf3e3775b760b3cb3a71101b180ea9ab5ce4387e5dff2bc14912fc6ac3b9914469efffd98f69cf1f5a9c4220805673dce33cfeb568ed443c92860e512c2f9ee11c189fb261ae09b07a0f742b571d08b6ede5d9f1b3c43f227df798561aa17db5b2dd0c5f4230e6fb6fb2e0c4015a59cba327dcd7f16523149f0cd6784eba4995ef0d42628d3a60a51a646c4741cae6f2bde451db8a33be0245c1a515eb1959de0d794651ee99580ccccc7fdad0b38de275c447ef509a11ec70b9fb09247b1a1e0f16ab605cfc30bdc95a69aeb0cf9f6c0c692ece0db1b66be74dfd99016b63b82c9d6a2a794a225a666275b0a21d07cd607a6d0c61f2901b83b0e8f74b815605db9b6a0d1b53866854ea78666a85f523bc2e8e061cd9fd632172a3e9524d47191c564ce264b9e1f589f58388430e5af8adcafbe2be09b49ca73275eb9d53ee8c5ea321dad47534f48e3f8279607007a679b9064b3dbeefa5da2fbc3ade63ede1d7c44ee414532a7983711aa43e57ffa855265f88793348ec8d2f515d83a16883695def7a05a2008c20a96028d4ec541b064e5ac430023c8bb49d764475058aaeed07da2f7b42be21b1b9fec700e5b2743caa6f75a45591dd92c858e7520b6d19fdbc09b00125e5715e3e96cf01912b786d0635745f28db22ab5f71bb1e20438497a91a92c158078658f09651e68fdd828be44e6157f579082535d64ba565d3b87514bf54ca10638bd0084b6e918df243ec0e86dcb8ed76894a94ea4edbca73ab8178355f7bec6ad86062a865c488b2d4e347a5665e6f25f1b5d8eb513d436d900a459adbc3fae92fb5aabdfff1f25ba50b0cfa24399a2b8708748428f69b4c02fd84131e7edd8c6f2428c0c1bfb79e9c32942d5a82b692d4928769ad34b802efc78463add301124cfdbb3125eec2c5191bfd8ca9e4f0c8cf2a3a7ed0ccb88b6339a25b48a8ba4b2e93464bcd915a8e1d1c5ced98312476c6d4d9d14f234c3144689b86310f2f52a91a9a180edb4f054f8996c6087eec83943d2991112945ecf31cdc41ada670b6e3a960b60b44105bcc57c11a769ba58515634557248faa9c0f2f91c214c0da67b2ed2ba9db0c9eecaccf145f291550d8fcedfd3b8ce8e5bc2820f913651aff08a243095c132933ec5f9d5cbd41f5141d9b85d8ec01c3899ea8c4b6789984bdbed8d11ed995bcac2cdc2e96278b5ea0bbad0a296a0c0adc84b0daea90e38d90c33d11597ed904e6bcaf35439f82247359d80b8c330a42996c726eaf76955d438f6cab109fab17c3d7b89d8398c174e52fa3f24ca1726778866f8d1ed996dc0654e755b3ff15eb12cb90a9ed26ff0f27fc92e22aef8c9756167c52415d23620d6a5e7da33241e81ce3a4bda7e31f33adb016d4cceee615ca0ffd300e5c82a982a01bb36e022fcba32345acf4eaa76c3168695bd3724a2e6d21fc4a6711a828cbbd9e0264092a64a78c85f8216857f53e8ff5c75c5a389334764627ae9e890793b1ea603c3382ab6e9fed04b5139d6f29285c7a5def72df4aed58591b7b8229b0b58780e5043465b59ef0caed0a814d129eabc66c515d227766ee28bec6dc4bf4be57f5b27021b556d48a5eb95cf29fdde9fdfa64363499908bb6ef07d5f0189a5f2d6bf66f3728a5d88d494fe7988532b82b7014819e2a18dff44d2c89b4d39c2042a8a94dc88ed6ef16737a814854225d216e7d720a211a3bc4cd9cc446b3d2d80a01e24b40e65ba9d31d8cdbd942b31de500b492a65f0856c8448805e47c3556509c3f35c1a8cea1d7afbfe1402ddfee41974b3d6e75a41adb360e67fba9d27bf93928ad88b1848a2b2ea136aace5460b8ea52e49c4acdf2c7591d328bb2a200d67b417114cf980b4453ea57380acfa45c72ea23e1443ee9bbdc418ef9524fa308f1f8222ee5efc0111ca92c8022218647c1505f7c3d6ac6f7dca6575ba498cc0849f59d0a7b5f80863c2ad78bf36d21207e8409f7fc13d06eb93052fc5c1973da5f18faeea53639f572bf2153aa19a49bd856446f6d1c7dbf38e4cb60e09711ab52b6aed8d7bef6764f72a6a7c0ba6437e76eff030d7cc0bc8f7c386d1cc191268527332f85adb36c4ece43183a40933e276ef87ec2e398f59ea3f75a57d1736050822df9e1d9186d4ebc7e9a28ceceb8e4f35c40875d12900e05fbbc10f0b2cc758240b4c160673e4567f04c02c603cce81bf8495b010d0efe11c6d36fda7759dfd981ea02225e96250321b6706d7084aa85e6306f398fa17513b72f48518ec4e1c0110c67040c8970c1974897f27ce53b884196eb79510a18210c29dba34befb05295cfd854a2cb131edf78959a05f25837278f92ee45c515828c3105bd1321a71de532051a42dea44c1f74e27e1753863f27122535947ffe5c99a3a10a2ad2e5b014adcdf768f9882c58de56d459445c27b6bcfaa997a77bae50b00c125ecc2055f38b715732b62ed3f7087f49e118224c676244ea600fda38ba018a1812b066ae40931bad1c2da21695a5b869aa7a3787fa4e6e432dc3b8b3ab04b1116fa7629375bfbfdf241fb087cbc3c8e31826ca3beab1070a8819b60efae6b41a28e6b21b05866664197d41a9c138572dea1ddfeb1932eb9a849511c5dccc2afbefa7b18b2912b50d420c219c91ee472830733ea1aeb6de150479b239f5514e15fc1597b6fdaed06dcf31260a7300bfe8b94e450e76ee7e1a596b7c42bc3919d341f33ddc53a8f6132b9b4369944ed19fb05391d62acdb66954671edc873a33b8aa93ebcc4318615c0659100a51703287fe3993420d8fb165e835898b203e215aa5cb1a0059bf95412c18820f13f33f34b8d443b5d307b0e27c6ac0182e55204021213ff0b3e586b227121ea8346ce3c222d7a4c206c90904d04401c9a7f0a39448209153c960d09f8ea8d5d97dfcc10b021c786faeef6b65f17dfc448de6c410f0fc7c68e1fc8e268e73bdc2456d868a31a91608188e8911e3ab8a1ae75cc2bb2e088259561cd4a35e55c28e40fc236fc44fe6da1da41629e6186ab8c89218f42f5a6d50e301c4349069c53ba9865a599ccf67756059350e759dc6b4b6d7546af168c0dd6f1d50d90bd5d0c81cbab9a065d6fb6443a215f59355a8dca27b65b869ce86bd408635287683d5ac8f83120cf5182a4b12d7c5e06676a19b401f953fda10d1d934985b286acb40dcf45f01cf3843669624e19458006ba54c38a9a7ba479e375c5d1a28f9d865c801203fe5fee8e0ea739e1cbf53bb48018d5fa38af8e04cbc909dcabedc796bc8362e645d7f551c46bbf94c571cd859e2b23d80da3aebc0b02bf5a6826a9d269145f142742e500b808ca8302c156d3324c52357ad4b64779983ec905dda34d8417880f1ce4cc4fd19200371bb856af42cc509df3311627ee9e9cf21a9d49f02c70f0b0b4b62073f4526cc14c33557b95485153d52c902607ec428be07ca7bc7123ecf6b684368c6dcaccb8c4f7e8f13aaf5b7025a73c1b9f7750f2013b61126a0f4d1cce1181c27354da901dbf83ffbaf27fe81d85ec93b97188ed8850a6c8303a14e1bbf1c0ee0d1cb4bf7b6b36bb28e0b5f9289c2c788e3a8bc50d50a6c03d0e4c3b75c8678342cf7b671a09dbf7165f8e1e7b063acbfc5bd35960e30221611d9f80bcf3038c0a787225fd3038f080f48031ce7039b86d31eb7aa4a9b701f9d44a3af9d1cf45c6d71b6d8e42b9633c8d1d546b5a486e7f9ae9e24d46f0ffbc6f6c7083889471c85ddf70a03283760eea35a0307f006720525967a16bd9967a1ef8a1fbcb4593b6c9030116fd583635b44ac308128c22ea6fe0f5acb1465124e001bba8191edd183194289f5c52c33ac4967f92b9967a2d202f76c1f2d5b9f978651b0d8dc755b5302d8670865cf3cb69c9e478b4d5bc670e551e0e4119a3781d5128be2546c9e018f0e6e40d8b7f734c2857d4d2190caabcf10df0164d08e3ec8625f73c69176fed57364bbd0d309251c9ccbe1e766cf30861b19829586ca16f36cdbd78f26aabb837607d1dc621140934713460a162eae3999113ed960096c050c9462bf68ee3da9beed52cabf72408eb85ff08b720281aafe234970a8b76cda24cead1605c8b8c8d3349cb41ec9562b6222d7976452995b9782865b86e96312bc8baf9998842a6d7ae2e6712cd9204e6a0eeed08995992c0f0487b648677e1d53ea3515a8fa90f7fb0216de20e8e6e9f57434bc0c818c92ccc2e13dcdafaf4052d66a5c6e48790e521ffa50b24be82d3685b00bd58231fa50a4984a577349d83ec93079bcc7d32c08bddf0e719fbc79895b22558de3a91a7c59bdfad8c4d24e4a5583d9464b30d388cfab0a3183bdf89985f916535cd151e9bcaac6cf31f27cd51b0132845a316845df20ec1b5df0ca2e1ba53f2c43ac40dd304a568f19953a0c1f867b1448f64838c3511820f5e710aa98a2f69afb504cab7fa786bf0bde2f1af52fcb7743632a23a5b66c4c0ce6f1f3c2ccbd6bf08b11cda48e69c154e9d47c15398d234dff854c87972dfbaf4a97e56a5e490020b81432add31d90e9fde15a359217d8745b133b3bf3e10d07697c4c915114e4709626722535fafd76e6081637cc17525681ef8fe6582d2bad4e2b8052c834c41f8e614219c95a33dd688d4b364aa43bb2a8a0623f777a200d4a98a18429a2a5a356cab4b7c3b2241d8058c830a118d0776d875332e855b8d845c9ca85307b4de1d9402411bf1a0e05aacd8fb9c4a8dead1f30e75d648617424e63c44599763aa7035174605344ef88fb06769f4f485fdf3b8d00e6aebae784d4ac8f72c24a036b3b7104cba00bcad7edfb1e4159cdd3d8b10e1efd23563ca6ef9461196a7d5649959fb545a59e297f60d75d00280364a2408229cf177f93f6b8fbab62a082a0c2cc269a1642f68bf11d02f0b264976bcd5528a1bfa4074265ab68b1c575e96cc3ace7a88797aeaf5261b0ba785f4faf9b2f327aa05afea5e7d576a64c9fabe20a3fce15d8ea80c5a4351d35bd2dd0e2a4a43567f1c097390e075c662d968b87a1c3e29aaa74eb9a6163ec92012d51a96bd008a3e16efeb29dcb11c93217305eb00f6ac59a91960535b822edde1e5e7b12ec164f1a65c6ee87a2593da49c6096ead7b50a4c866a9083904f4e94a0d6886b8a00df3466c7b64eb2902da456241c48a237ddeb9364f35201221ba86ca39c9fe4808f5508f1680040a261d128949eccd6a0380d559a7ae170bdd39025e36873ef5cc9a864aa8334bb50d10803fd7f5c63b3fc31d6317cd4681b61e45c2f89e499d37d424344017d77fd0bc1eac4d394f7ae76cb8be61f72c0c4aa2ddc9605910346c676a440d86b9083434c03768119d5a520b61f8081e5858a526ce37ab7f52c1c59aef26779b36416afb3ac36cd1e1478915a372e034cdba610a1c7610affaf3e300876ddb017c1ec01bb0c049bb0ed432b34f54a8fd523d1fea8848969d5b02e23c4b232a8268c74ebc591db4375f516337d8cba9e526a371f300386467d0a51854f997d66e824d5432263d1fdbd2108a1d6a5658229a86f30afca70d9631b56d5ca1a1b29df8b72601675bd659c07ea1312b6e904942a21d14c8abb96b41317702dbee9692143d762057fc888e9bdbc9cc4b5cb3e79c64ee8a0b810938fef5d0b011cdfbd5fbab1d76cfeae85e04f9b887f5ad46758da810a8c503423feefc651824a2bc1fe3060e8055a6192d1bfc74c6899a5daf93fef91d12f50c5420dfd0d10f568ba816532d33648d1476a6cd2dcfbff53b91e541e4f9bbbc0ef42bc0ae82cc9ebd7dea300ee6de1de7318f2b17fb6fed5055ffc430e4f88b50682080caf3c10007c3559e806bad12d0886b786018195166ce9846884600913b035019e3a29025d27f2f319deefcceac033b3431b8f49fa7ee29b6dfa2eced5100e944e9dd1a3060f2f924e73a6e6f23d4e2861a2955adc07bdd9d9f871502fd4435772f94a970b3066b626f5bda72902ad5f0cc6be7ae0b4b295706392109af0c1fe67fe52e2e053f93b6f53d5e8eeb25fc52e24ff97ba71b3c9fa6ae45baf77ea07acf182c6a46b80a4a0a3e1689773f9121c6f32110f8f1650d28a02860a3b066d5b021bddaedf8a524c7b1a116f7b58717ecd5afbd6eaf1ed960de901fe6bfe7b7802182b4b109e248bc80d09313fd3c43c6404f3cedef94fab99bdfe46ea098e4c4168d009cfb838215951f15c475f5d2e6478157bf4e1510e85c98832feac05a6725e8f7864eb2cdf30e00b318cf45668bee41dc7ab5e214294af11355e729e120de2b4b8ba01afbb2d0684d2b8bda823127c2742f51d3cc998ee55e45b60cebd45dff0e0871b5ad3d6f9f71040376143a35a043621cbedbbe92b04155f20c316f3a4846b069cb90c3a2559eded7dc5f6745a7bb467bcefe5b15dedc58eb7e51294995468babe80068aeca0ff922064dd4e95672afe5978d8c71df85742df558e888e2d744d2ffcd01fcc2a9889d91888e08bb0ded039170c3c3f719930578b4cb0a031e9ef0b5f7b594403467d3f0a8271934964c20f0de67be803c17ecd4ca8e846be89ffbd0481ca27d76b2a4ed1d7af79de0d6fc53ff2b9132e159cd0c8b9145d691ecd6f6c037ab49335260ac1f72b0dc49e543c8baaa4805d7061a3398374e8c7b9a00e191e7b7d2d9d97d6021251f193e2f841b03d5cb8385d06afcd76a8d0df43384c5651c59e640296ddb8ac7bc2a57fbfa028aa0739c13fdae4e07689c35582faab9e3935596f37975ca3febb31e92e14700718c3990c225c4f598e72449c2c37ad5f4116a35f0330960f374b2d85fd6ad045af70bdebed2612f139923bb074aaedeac0f6f95b0416dfb34ecfad729fa15bab08248b030a841a7e59409cd1360791e7a8662800b870566342397e40615c999f390da6b31194a703ec42183a8e4f3717c77de90ebfe85a31bef7bea5ed2fb0ef8019e4b3cc50ae006a9be7d2d95d74e500bfa71ab073aae3e56d77f7cade32c99464b707dc07d107afd2a4d9851010e48a8532225cd36b87fef9c87fb8c85724336797992f717e28af1a0911121f096e306005f2a79d7ca1052b5d80105ecf43d20508a3fb6150bb8c46be43769d9d20f6e7952e3eb0dce9211f78dcd979885dace721eba1d1431eb2b534e79c52ded01fec3fda46d2e0976f80dbf7f4827a674781b8d82e5a318586d111b4421baa718fbd0deeb1e7c7b0d7ba1b3c68bf3d96f91b3cf8e001fbec39ee7380e6ecf4b4566a58a008459ef4f61ab6bd564306bf0d4d06771fc03efb106021d07eeb2848c3f991c1bf7d0e503f25cd8f0cee647c80e4b3b7419275377c706723fbadbbc143e6b9cfecdfe0c1070fdb674f42f239401bbb21d9945c619f5596071f36b8cf3c0fd96fcf03f799eff936b6cfde4646c6ec3eb07df621d8ba10643a393b5c47bf0d8a9668090ad6a3e027d21105e747fb06d14f4a10b6a1a2f9d9be33191eb8e1c306f6dadfd83a393bd786d6ddc83aac939e0516570be9f12da4c8349c08e3d005154e66e86bbd7671b4f6cc589925581437350708385a39b13891216eff8f540baa0827c260cd717549b8f2d17da421fd414797df63688882b4857e74c7e5f79652d66aad46c33d457e14140ee75fa3f191384753bcc13f9c010c2a900f14141f89a34fc8651a0a729bc78dc73c613d4fb9fbc8437e0b05db93039b09d31d9ea2f5d4fcccc9856a8a291dab298ee338562d8acccab5cf5dfbb4921644dba1a289b45003a2811acbe5f7eeeeeebf4a7206b326ced7a1a7383ff3f903196876576976f82b12aca77d97b52f43632ac94fa791a6f80bbf0b7194189322d252ca4986cb9fd937bbd3dd457eacf2244376bbf393c87a1ef2d0fcf8113eaa4c849eb83e0a623d3f8dfcd422498a6d759bd212a5b444456a8406690aa4a9e9364ddda630b7e9e9367db9fd945b32fda6d682427d28bf9ea35a98d947281d1c2567b814e4873e812a394acee8928ba4a5f670b7a915540ab7dfa353dca6abdb74e4c2cad9a94eb0b4761b9220ac474b4fbfda69614b127602b4249920126f8f4af3436bb5d60ac17a34bc7d67474b46686907b73dac47bfdb4f6d40697081909e1c482a84fc98064d611cfa5b0cb7db57455c4749e799e1af26ebd1d295265af2509e38c9c51f34c57bdcfe76213414e4760359dd76256ed3944b4bb4c4366c2b6f6e0bb25b4a29533d7be35daa943ce166feae82f5ae544acef0cb57bafc400852ca6eac2fcf6b8b39e75cf9c85b66cc34324717398b875ce5f24f664e7e76b5ed3dfdec2129ced55c59447023a7a23b152d90c5085b22bab23e6b858e56cae5f7165bba5d9c1f17893b64d745cfef41c80f950245a1449e593ea45584cbd6112e5b515c7eeb06f2e3a72fc80f15511839a33541b03eb07670d99ac1657a864bc570f9bba3a88c184ea8cb6fb5582afda12498feb8383b627b482c96cb6fad583bac141a43c58cc95292383f54a4d1745ea5a4cb1a6b5d2211cca76237edb67e6e58d0ef32fae59d0ed31c8691d11d154ba2607dd5b9d89ccc683d2ad20113ae10d2d303e929427e3c9c1d11d3f0208c8317818a42242e4f39a3af48cee0cb926711d9e1e7a21ea13a2e8bf22413c47ad4452aba4a7336a1911b6416b9fc9e6267cce59f5a5cf620978a547411372ae101774d691fb5b7dc6e96522b912d9737d9b57eb02d35b7ab3c6939c5f7c25c8dcc12ac37479e23fb117e6dca98f33a5d637b52fa53552f2f282686f05f42da23a56062c8e54b5c0d41c7f5ae181291299b378d6577e6a539f216b1fd5a8b56113b45d9dd39a6aa8865c934b096e6c89b415da7f65cdcbd5e2e0b097239c875ba5046b84e9925d8d314278c569281ef3ab5c76346c3ed2e461516c695529088dc0190c15a55982f89740f2f1c0ed8870be3f2a614ae24d1b21b38dc4495d8f72cf800035cf9d26bc0952fbdcd95af611a4cc3eababe19ac4a898387c476927b1dda96bce4d8921e8c2b5f566b3d3024a7dff313393b3136afe47a1a18d22300c9e937919c7e18d7d3f4f5b6929737d3c819f2b634e9d01e9212ee68c8eb15200024575e9e172fdfa33fcc9f2afe29680ff7fd27a0df3f02ebfb3320694889c3f5fd25d8800e72867d4f6a21afb84eb8fd62dbbea493b3c3249bcc4600bd006dc38f558e8779269dcbefcd292ebf8b70f0a56da1eaa83aaa0eeb16b1365cb25e56edd86abce36e8af2a4a76a7642791206cb8f79d5ab252e96057cdf446333fc91a07e0410e0f64ba6313db4bb4180911c79677783b09238c8eb790db6eeec480c067ad1ebadee869d9d860189c716d6e3dcbf3616886e2488bd43c1ec88dc8d009ad3cf59c077fb456082fe3809023f08f50f84b89e14adb45c4f0eb9ddefec40d0a80f1bfed4676732c839084ddee0d90ba469922301f6b5bb913df60c03928dfa5977a33930d8fe666e5992f1647025b6a90fba3612c49be638e06f7528a01d73f1da5535adf655350290f2c4fb8b811b9ea383076c9460012875c69875629d1580bde1dffbd5184c2a2ad0c81c452396961913124b2a2230aab95acd18d36b5e525f867679735535adbe87295f7b6ab8fd3e9a9ffee140fa23bb709597dbefa2a96d326003d188c5e3f9e9f6730f6ebb1431bada57eeca4ae6678f82fada7bb576727ac9fc7e1959f5d02646736464dd0e7db394561541a4082235a040a03f299b0b11a58fe4c26585e56675863ca53dcc83dbef9a6f9313803ce1a79fbdd6f1c0bed69e13eb3ce42157c9defa8d07f65a7d0d6458e7dde9a741388ebaba90018d9910b945ac67229aa49ad32f482f46d6aba16b60afb7deab41a4894e2f7e90b2eb3ab5975159dd0bd215ac679232496554262f48a28caa065146558328a33a852c76bd8cbf97d13180913c7941b2c260bd397e477a417225ac67927a4132314999a436224a72054a6c16666ee76ed9c6f9a9d55acd481a4923c9034eb282ad55249550a3b812c5c6c6e0eece52cad56ad5b29a1f0741bb04286a2a2867b40f213fb487ecf46319154ca5c0a82c18b50546512b4cb1a22e4fd090867609d05732fcd0151ace0f5330a4a53074410633f8ca8725ec753d0741db623d47adc295cf1d1a12494818d64c1236150d290d698a12f9d1b4a587dce67e81f1a2c46a188c17d696683456e3703014e69e355c8f8638343f315e6ab6e4058c189dc3404179c1e194fcdb2eece4eca830d5b5a243bbcac5fec10d5442a01b38e4aa085308817c587f03c746c50e4220ed716c50180204f9a8efd9316cfae3b6a540443960120d7b60a58b1138b81e0d2bbf8339c893dee866d62758cdec70ecec88acc6f477e0e7deb91a4c3f733d6fb227a1dc06c33eeb64f0f365eaa1b7505247c3e6d48e8e3a0a5a1b796d12d6a394d3c06ca9c15940c809c116faf4d20e0228145ca121257561fb7a34d480f461275783051ee610de5173421aae7250390ebeac92268c4a42c21f234b29254b9652327b3747231e0a79881261ad6f1087628c34671c6ba86a21f291fb0835a4e5c4129a5e48406ebf8f46da388ea37134ba8b9aea2fafd1383fb5cba4c18edae3612ab75fce089986bf300e51dc4aa1b8fdd2a3449874892a5c4ca53de3fc788f3d4acd8f1f919dfe5410e368dc01ca93d24ba9f472e9888e2a26d2be0cca7a73d421e7e841ccf1ada9a9cccd19bcdc39ceb9aa9a355a96252d29a5e56f6dacafcdb12c4d0aa98e75c442ec0796828db01006622dd887ed60296518862f1d4e51280a45f47a2ea2948e1c8d8bea913a8a44d8113024dc7ecc0767909f6a9a9d4dcee022f8180541b3037b03133603509e68158673b17555c5e6c460dffc741d41d71184d86204f2ea28dc04e0cfeff25347f3f24d0577708d612c54c7e654538d698f57eb8885da93827d2a4c8385587b651460c0c2f5eaad638f8c4315cd4f75919dfe2942295851aa2679d25fc76aaae36d4dada3c692323d489672cac9cc73f2026ef09fd77aba8279e76f97c3c9dddd30ddcdcda0041dd468acd556dc2b07e747823428281c8e051dd5dde027aa40831408471686201f3c3b2ee4877efe83a5a3e434a2a7d9b1f8a9c73cb81206eb51d1faee4a7ba6383ff5fbe96a7ee87747c5f9a9b493c1dd155d832ddc470e360dac47433983f6d31ef243359a92925082c4011cb9ba1df8ad7701bd9d83205f9982f50ec8d0d08006d73b8f8e2cbf3d1e9591017af9e9e58e43397708d9e93fe2f63be88d726114c14519ae23d68b718d56918b0c171926382778f21716d3caa82424c452580a4b6129cd2e614bae87a5ac9b92339af9454dbd80b05e0d61291bbc0aeb3908824bd817d7c35256c68b410d35c7c3520e56f136966a4e6741acb0d929c352b73f1363bdcc74fb335467a86b79d85a4476fab9b8fd476ebf8e2a56f1f6830e3a98adb01e6a18cdcdca42ca6eae9a236a2acfcec839ce51c60ed79d8f5dee7a73cc6cb8b3d348d407b655a3469a59d8694356bbde1c4180814848be172992ef45aa86118c9c915d5a9f609be004190579f229c88f87ae0afd8a392747e37c7d66a89f586818a42f2be4c0a57b73c8de216ef1864272d8447a1c0a1f72797e5c09b2e356480e09892be172d536377078172513487b1c578a04f2d1afd56ad9553464f5b0977f76036da3db867503484178d9307a3dbf8fda43bf0357c743ebae972067e90ecbb89eefd5f90815a2a16e1a6a0f0f2101e90f8a48a53dd28525c8651fad5ca61f1d4d11cb161c4262c41eafc25c2ef13b4b85694f3f7f370db1eac8e5e71f441aa2a1519d56474644ad14a556eafaae1d16910e592a6bbc542cd13272fb294b2965ec905dbaaa2ba65058b75058a629cde168e84ace68cb922b2b75f9405a67901f2f5957901f4dce983508d687bc8aa0d981bdc135038d182e687dc1ea42b582b5de9960adf7bc246787350b85add7a32bba32b2aa2b0b85a5efd115e831b79fc248f1da60a5accf09eb5925ab346bb5d66282f5ac9497da235da0a0c5edb786584498865396e634a54356a9f9b1a0b56a2323d781f9cd3838a54c3c31b252d44add1da2e6a43427d41c95dbcf56ca4a854499294418cadd9da594222a7a612a9a1f2f79898abc242a75f6d87bd8080bd29ca64032f6eb1b79315af20e3b61be327968e468bc2484b52eaf3c6c74a5c93486db4f4dede13f512194312080e122213d3cb011d370184c09f971945f011ba58830bd546a5fcd0f0d820eb13a62d56345451a96b0392d2179f2390a6665870f3ec250dbcae9d49e4e7911d29d22723ab16c8d3ce9fa045b4373633d6f5cc8c9eafc5412054b3b0f7dd49cccd8df83091bf2d1a97be37eb2629c080d0d518d5445746626919cf432c771b43d52cab9cf51cef8b815768eae43ced082fcb8687652ede1c2234528893b3f623d1791f8c0e72673ab102b418d444a174d30854017f01ed673d165ce7f6eb2d4903f62ff75983a346feac77f74a7bf532ab6a175d1fc3813b2d3ff447599e23a29487fca539eb24dc04220787a6131ad8c4a42c21f20283bbe9a9fab7390e47abe3232e7ca411ae2717b76be92c2f24511e15028c2082424d370218cc31140aa843b95b46706353fce457fff0fb71f058277c75cf53ba9b9b81df435feebba2ecbb2b04ccbacccb2fa7a6cd68d9702b99a62c7cccc3ce7b451d89ed7368560fb22d21effc93f55dc0ab84b8a58ab9ba306e678e97cdecc3979724b645d8821b32887012ddbec12566b294f5809fb62a294d2d108ec1df2e4c5a218a6041636e73125dc0a12d3654913568ac2ed77eeb070f45120787848cff571151d310d8f71151dd151bdace78bd900881c08213f34343b4c83ae70d7a3a14f86ae877d5d528524ef418c4f1aa22b211aa22b25ccc41b164a8c1c70a54b12307703bd7a931812812b5d92601925b1a3bbd2a5c7ea6ee37644ceb0be3f0669e3388edb388ee3389fdbc693b36f767a2b42725af256044cf6cd8f53213bfd5e645281917edcc83cc967a50c48b5fedaf870bd75bf5edacd8d1ca0ebad8d97e35a7f5d9d0fd7f3c63baff210baf37598d75fb5762dd98fdb9f85cd8159a934221bce0a8b01690e368e77a3a9b894c5c4395dcef95c12c02f0910d4aaa5d29cee3c4da8393d95b07fbd2d55c3952e3ee0e07af6a6e6e7fa0d7c0e4a0e5e8ceb69a91e7603b5d4ecf4bf771ecaecbc1c4abaf8a2b875a5b7517366a8607b3c8c745358e7d5d47b1aeebc67e1b4dcfe4d4b5deec7edd7b42758d2fc6c5c4af5b65123619dc7edb8cdad6850b0b40c7605bcad34a72f202567c372a1cbccdd16b3c1c8c26e23006861b5980d1c723770035d422157bab4946e01ae74095b6ef6cdcf16c3a5886e3f0e4e5218f149f183172988285176154ec4d285d772cbc2c02a6c4dd521477c1ce8991fe2543851103f951c88f3e46a493bbd34a7c7f450f548b1c7a5dc7e1edf83aee7a75746a1052cae766db695ee30771bd89ce62e83b27cb9100d9eb81ef7dd760957ee36863b6eff16c37d9c4a3777db116e831105eb655f78c78bdb6008b1de067e2f896ce34a7f248804c6cea7fd95ab31b36f7eb020dde917525fec90b6b2eff6675f7bf8ad0d068403d69708b12657bafc0085cb1890e6f4db5081580f9ba20629171be70763e916717e301153690eb60323cd4f5555d1ae34a4fba9b6f1a6b85ceeb6cdc57adb665a6d1bbbc9c698d41360064fa5be1d4ec4873033b36ce6176666beb82d6b9c9f3aa43b0c43e48652f2c48a94944e92cd043393524e620c89d0e8323733333333f36c905b48325cb59ae77cf3f3a22ba9d55abb6934da7ff699fc335dc182982874f9e90f2129286770c54a2e269a1fbe44971f0b61298d7dbdf18fa4fb329dfb0ff273f66f84f1959b4efcd910736de66889bce21e5dbe350182a71716d3caa82424fc0182231ee09c9a4aa2c37a58c8fa15b80229490889240404455812b61f4896924acacca552a9343f3e1a9546a512e9d61f13b0328a5074e95b234ae9eaed74facccccc17bd38775e9b15b05dc2c2b89e8f463ae4a79e2416fe119a216c10f5f443146aada26641562fdceeb6b8fd3466fec7bf39d76b418ecbc13697d501fa562704cb9e97847432eaa9395dc285c6be3a8ea252ad6cb72634510459a61198b9fa56e6386573775b16a7d828ba042330d26da6ddf2a2c4f20b0062c020c97000e862d40ac35a128d0675053b42f5c85e5e0f46b1d1ecfa226c0706b6673ee360917cbfe84a3adb791a922e7344e5baad7367f60bd436be63e3a2946984b20823798ecc37115b8d63f82325a6bbbb9f626188bd60e1fcf86824676428d4fcd45a2b8642b5f4070b61426e63416e63406e877eec90b2b91d321e5d8f85349ec542b71d0b2f4b7b8c1761adaaaa5be082f442d5a2aa54b58b4bdf473e923398623d3026b0275c382c94275868d171e415a7450deaaa050585c3f9d768acadb5566b359a7f0e0705c54925ba23055e4a612e20ec849140587fcd512f97554cda46868dfada6bdd8df0c667418408ba81830405921d011cb3082650fd1c20fa4d61f29110162ad00d1c191a46201ffd377054c004f2613d8e468338ce18af8295cdf932d0b747b74560d667595f2908dd4155a82804424196cb6fc9a65ff70ba97442c9eee6a4c456b01d2addb14cb07c3d47592d28281c0e4943ca24cb2a20a1851308875b710255fe419e30f65961a53ca1ff5d7efacd5a5dec8df7fd19f63a4c19d6f3b51eab9dd5cd113463baf37df388ece858d110fd60e847bf119d991e76748729223f5ababbfb3d0cfda3d49d524aa97f9e12f2904824121961e75b545409f9d79c6efe986229974a324b29f92b4b13b248817064529c403e98375ec5385aa0260adb89f80f47b5b0b7733b9d9d8b98f6901d7e264a46ec90c913feed0aebcd718ea1aec07c0fc3b0c77ed946966859d9bb08b2b81198eeee7e2b6366abb5382872d75d1c633a14a25996dd9075679c6d366b73939f86901feefbb5f723ee679dd6895ce72192acf348e618ace7a653738a7031e66007d188f59c546a4eb684cdb2ec2dcdb2322d47965d9b5dc2721a6f5e09aea5bd6b9de7a6e6f8497bcf4d41b4ce4fdb660064b0d96bbfbd767135b62d7be634c069b859a93d1a4d6a4eca365eca3eebbce4225fc6ac1216dba4e086eb0e22955ca4a2b88db48e81056e9eec4edcf6509bdf4cd184a1c8091aaa717d7d154d020b5709e9f125a46708e34004f984d054a3b0529e58ef39d5f1832a08d510aa504893a23264644193d76048188a3418151758a448912cb2b87a90c54664923249d9f0d9b0c384880da1db6f32c4446532daa062229a18a119554695516554afd18df5d8c686acd6524ad94d231768af1e58e76a4c3ae96b4cb58c4ace689a510dc074fb5126abdb6f926acfc52629132226a209cced3751ddc6b0f6c1d2d76162d8d38dc990e6042b27b455c4ce5516aca769e135ce0ebf268ea22692a85823e205eab66ba076d25e34965ed1465a4913a285da8fdbef607b1c740dbc50de7956fb1312ac066a20bf40f5e50487ba8c89738a1998b16046388361cebecbd9ca656cbc9ca55c6eee97e983e470888afc6b0ee683f43810241d10b6af958f2e206a91aa05c9e1e7310d974f15c882184610fd1c208d6e648480a66a6976b8a2668759e462fbe79c734e0e73d10585f5b0101602356eadfa5409d6c3444c6c8f740143eaf2672a4c03a63fd9b38719b98cc55c7e2f4b611ce65fe3fc641da64376f86be7613f5cbeb0202c36c4e5c742f2845fbc4cd67311263663224f8bdb820c80ca8636b42922f647db164bb2273bc4966c905aadd568fe399c17bf359c9f3986ff359c63a83ef6589d366c8f75d910b361c52cc986cdb16125b11502d6900856ceceace168c316da30dcb6603d3bbafdf57a5b78fbed88a574db86b6a539f687250db19554c3e690d8c0cad9e11028b2a10d6d68435e0540c59db6d9c4756713d543af5830b6855f54898ab93401735dd0596bf21d01f70006b8ddf58dc75c675e4cbb91cc18579670b409cb3f6b48f6e7af55d46de3a6e0992d2c07e14cd647adcf2a5941ac1d4c62d165067219bc4c65778f66e7a5d60b08abf1a4a3f99955f3cfe1cc150feba29d0c1bd70d186313a38f7e1cad43045d9f03a459dddddda26f234193e3917d06653deb63427ee8c8325d7ec2fa2c1539835eb64874343fd657e9e8a33f803db86c89b2979c075cccf8e926bb17107b45613d2fc2e154690e8bbee65c461059dffc30a83bebb3bef648fad8d7d761caa07f599d0cdad11165b1accf4447d6677dd7b2be5e7126f7121f68f2068f8ec01bec0035841316d4ea392fd29c200f86e841b5d51be60266762d5189b0b9b4d260fdd49ee9298ddbb81958e6ae093b6dd57055689e425206da83c5aec88eb09ee790148bf919e9b11282b8871b984ab2a9d0a3082a50db60940610e481020b14e8c60c296248201c5c0e8e08635c7e49335e8eebf971041148561f16e041c408925f9946bb3471bafc020f06973b17ccebf284df7be8e1921cb1389a67125a3599ae7741bdd87b7d2d4d4ac97540fb6debb4b999779a6a0abb70f0e800ba20af8ead0bc88b95ae37b3b719b67941bdd74fd3fccc54ca3453a62b65df6a52f2e422d569f5c856b3344b72069940a669a626cc3ccd97db2f2f66d6a0501a45524754844038780c4288201ff37380bc56310a4aa7ec73967575da079490f9ee6e142a8fe06accc6b81afeb3fed5611b191a0adf0cca9a7adb1a35274fde6c604fd2dd2079ec35924d875d7fb3d33dba8080a32cf3bcb9196f025cb6b92e6a836b930229de4b0552bc2cdef9940a49dc79758d9a256bbd374bb3344b93fa0b1710ac3b64a4b09e8320088a191486612d6eca90b0af39a4f9e1c00c89cb90b80ce9f667bef9e14ab3d35f355e9252343f6e32611ff635478421224ffa839c6a9b325f0fd6c344d7e3655256dae371a5517bbc6dcca4b42763b2fd1b1aac877d5c89992bddff76930913b1c0af878930956de4400e09d9058e082f704548ce08e9e13f03078e1c388954b19ff341c8585d6e19ea126e9b41a6417a58235fb89ae4490d524f990ffb2a262aa59a3328d728a594d2d7e866aa8a88aca504eb49f17635642d89419f7653d59c6601cb1379d28f0202c954b5e9d6f6b047bafc60fe4d8ee626826be101d60907380f05542f743030705ef4b049a2005010a0d68ddb410d0e04003387c89f3a215757c6d86a15b24d76e5a8e0cc96599164365116b240f0f462b198ac9155b28458a1f58344a2244aa22f94dd8a91a16fe42c6125cd8fd76aad46f3cfe14c14140f641f9a1f064921493dee8fdbbe91973a213fd6c80a9370db22494145f2a49f44a5b0403aa261e8ebba916103fb8a7537b2901024108e4b04f9f0cf3a1f6707740119fd88fc786a764639833541d81f525407d89c5eb146cdf12cd002ad517b249802575898065bf447739a020149e0fc78c9024b6029864a22d7297599a24402491678639a63c4022d90c7d09506a013461328a5b4994eabad49329b7a6885ed4ddf306c161d31e59c3d5b4af98282c2e13cc949a5d2a925c8ba28a575353f56f79fd58a595b351aab7a807eb353e95b4fa728766f5a68a29aaaa96f472512aaaa3a622a55ac46b4203f354c7d8fe9b86daa47c2ca4558e4f612f2533f27444900a588c2ed2f59d94f19725353bc2151534537555315aca99ae22aba8ed8405b79c94ba2110fe240dc9482f1d34bc9457e34cc6cc56593924b3d88212e77a292c84b5eead56505e6ee9e1ba719f8589a23b9ab2a2b8acd74dbd9e90eaad2ddddef52a552a924ea2508f9f123dc35b5dc90c6482d06196c7fcae7b9e9b6a7a58b114126a8dfa33bc0ebc5b81efda653e1a9e670483e8545794427d21c517bb87355f3b0aada55842293f659f3b01ff6243cb0cdc37a3eaa7f49fe022c55df867ed7cadef2b07715b7a9f55d40ddd49eec5bcb324bc3dee34f330ba3f5db6db89eab4435341923a5946f55312cae3677c1865687fee6d876335925845cba7357554b29a564d933f8e589ddeaea4f409e504076fa8544f1f32301d9e977f170b8fd33872b6cf3cc81abc2cecf21075a639abbbbbbbbbb9bbbb9bbbbfba59bfdbf49d2a2408a09647d0ed0ec48dc61b779f6f4d5ec5827d8f6808bb3d35fc204ebef62735630cde99829ac874880b072763a1386d54684266fb0645856cf39e79c73ce39dfea3979cee91da248a8248e5407450bd58800004000002315000028100a874402a168442c4b8afb14800c7788448250a10a644990c2300c52ca10631c3100040060448066340a0280c7932054502e9c53bf2005f3f61a83cf1d9a062621cbc7dbb7ef09e3ec809cc1dec87e692b5094c0481f981b0f1c452ef0380461b1dd1ee04993023067948ee0663181101e7b5d9b09e33b55f7e15be30ddaa81759d2713b1dfdbc0f50dc30932582f06cac59ed6205eafdeb8b31ecb2800a526f42d309cb80d0c90fb3db22242d2df4dba7977c9ffdb1a427554cc580b4ce99f244be8fa45e8ac58e5a91d5a6c0cb5b43d9a4042e9749c8d7bef6a2ba5398044c0a28ea75b154eabb8e528487c3c24491a9d9b754aa1b279125286cbdae3e5ed85fa45ec48d630881d3f9afab62744ea6b7b330557dc53a2a5a520d995a812de4b8ec71f1098b80b110435c9e0e6f64832f0ce81e39b4545dfa2a0f3137e6219741c24933fd8a2e4c997186ca730f9bb5003af5bff8ed23746488156ef214a25c74791750ac3459b5d25a247f412ba46ea244305447ec6ec1fa75ee58915a50bc0208ee884dd709a9db262792cc455aa38e1c382a2bdc4ffbd74667bd07573bb928e2e459bf30d49e0e10464ebc074b1e1aa4bb01fef825884c5a8f171fae7ea9bbf88c26426a0bfaeb832166e18babb2bde5013b0a2782e986b98ce37523e8585f362841dff01085944994b14af8e62a4c5ac13945b63076e32b9f84e43a6a1b5be880c63d889f7f1f2022646a7598ebf08361d1381143a3c5e2319a11335c052798c67fd7e5856e62c9e666ff8714900909df056aa33cabc84a1cd53900eeb50f70e8c93fd0f692acdc7f1d2f4735934e8b027defa87aa68abe9bf59c0e886cdf0fa1552527301ef5102a1ad32813c8d6c3969568a91fb1d5db71d4ce6d6607c86771b13f6bf37f79306013a280dc701d7663971ac81e7306247e3a70a833edae80d5f78e9aefbe29d10b7e982e62b1b4761fe1a7f8e04b897e23e59c1c0ceba41b79d65da923eda41a2ecfb69badbcb5844a88e2b1fac6e372a866b4ba848b59b7bc8f9be1a48608a48c860b75a957a1cb5ec8681742b8d4597a50f869d0d3a3e0465b69689a4086d472b283dad138a63ef7dea04204ddfa1bcc87fc8b3076680a93cc31d10f0410643de8d820d15a2c5a70f9044353d9f9a00583003da8d034e81298922bb267f589279aa3b0d2333cb532ce42710035df28370adeb68e0e04303eaea1951e4825be4fdb3440ca47054dbb578ddfb186c31719459dfc9fda806b0e0e55b5a5774411463c4243f2f1eed73c8a77a9451ed794bdede391ca92552c877994eae22a39c7e36a9923711a259ef7b589f80b77128f6576938bb5897bbe68b62f4c54e3381b6b67ea850a94fdb8396c0473df04d66de2e93a8a4ad9e39202daf69a9afc72f974c484c2c09fc8662888006fe37286c2f541cdf436149b62a0756040db5a3e29c8c67603426c8f19a332b971811102d2bef48575959c3d73613d17535fc79b28f6695a3e31162a9dfc1a98f785c7b8d38edd3ad6b5be44c4184c01e174a183f269872d8d25bb8da0d54cd684668c5e34fcb8ed6226c66d4370e7e7f4da31a996d868470c7b26130b62a2183af2b678b719e9c697f6c8a3526060b52dd59108e976e24a9bd128a0dfd4ca3d7819dffe740abd0533102cc988f139261ad049d790d67f28a34c9cc655bc69bb793ce750c87cbe1685bc3085b0a0f71dbf3aed5e4a333c2c74d8fcb969cb10fe84c2ec3452119c5aa6281443268bb3172086b9b4e4e904985572c7b9bf72fadcedb01982fd682c3c531e97f4e848f8c14c8c7a8341a2b050b895d4ede4ea9d2c0f49a36f4d8c5714b1b08ea6d254ee3fa1630a2464c6ff817c3a2b13aa3615d6055a4633502f2789b063e32d3edb21f1cecee3f9c252873d81c3a44ff606d6c6d405df2ef5a277da2d37ee7f044c6ed967dc58663f64d974aa40d47bfea7cc0d1e6f4d79379a362ec9e868b5bfcb9c02a7ab74256a94ec8548f5a4baea3785f0996ff65b9f99c55077b7d11b7f921a1368cd9d3cc82321f9c2ab721f270d93ef0ca8082f859d9748894f040896295cbc148fade996cb808954eeeaead31677f5d78286bb60d152b1ed6412a0888c7011eceffe55363df5084a5a850126439bda71206ea3a96a355200f9dac53650d1f9a5e3e12e238f3f5470b41d6fa2867b46c9f1b2e362a7b0e0a2ff445e7019dd4a9f9e5d1b18aa33487e987be0302148817c29ac65c47da17d0786dafafff0d0eacbc503880f0d432d02b682c5cdfb1dd5118714108ac92ed49762c3670ae95ea8ae9f3050e28369b97daa2832be28a815a165c36427d3a262167fc7069d3a9189bf5696a64d1f21332f0d9dc8b473ff9a83072937645f47291f8169f23ddf142e73a86982213caca7cfef6ab801f91d90b7515603e691c7a086e805fc0bf4e1eb3b162b7e5bc65a95121ded129a941cced0757611b6058282105a682b11116da504a61fd9fe3394eec22df8172091ff40060c162942fc41790d9bbd8f47879b4e0588e6415ecb02beb0f43f22d449791eb8b1e657cf3573d6566ef50b1a43863b95e3ae2e2dcfc1b278c8f56d29c5764c9d5b9b9f0e0944c990842986259e6b876a9752b60de1c4d13316afeb897c0b74ea048eb942356e0d46ea50f53d8b6d46e2021c122648fa365c50e628f82a2d880a565f4cc63317bc49581a156d250c7a65473aa1c05c433df64be1a604fdb772bccf6d85b477666620c998ace9da13e24aa12aacae234e10d2622573dedff0fd600525c6b295137c52450f6dac5670051bece81dfe0f989240481d86d8bf916ef17b4b23ea2b52401cfc2c78fca489d717d24a1e6c3ea20b16216795c16dddd471dba6f2c1c90503f68fe7deb8ba973ff439f138cb92ad68ce1299a5182b577c57499934de90080a623819861d5c140f6148a5f2e13f546e60f6154cf837bb8aa02616f66f5ce6064f4d4a35a9e854eeadba012405cba2bcca72348e2b8e599a691fc73641f8df29d3f8d3f94de6d213773e335ce46efd1781fc061064bcecf4a435d6045a383ce8b0a01e784c258f483bfbaf506f42906c8630e27ba41c229958b483d50cc531ef0237c87a55a9d769a597418e400fe7c81dfe96748cf90d5cdfefc591b5bed321c82dd8f6c94869442e7260849941b52af5e5ac4666625cc8343c87daa2a732c1b50852b48992bd7283254ef9f7dd5a4f0a18a053cb29b08db9d02e584c2c33b99961a400c65060770c2dfc7bc29c382e0ac90be7239c37c83d8fd1e5daae09b77ac622939c57cadf356a4f45153199415326eb9ee26c6e6f51cdb7c701fc5018c7c45b12e12b6ea5ef5741e2fd10c82e1f2774e5fbfa303db9228fc1d928cea3c8c77801ff24c271e15a762054842cf5dd623d60b12b0ac9fc7874fa5256fba58ca398e991cecbc74ce8dffb123798772bd14ea427f009ec59ac33cef4d999dca50aa4bd54e8750f54ede3998108a782958c53e99a983596c1ba753bf419ef110f23bf79f289ba54747dc86c8e14e9f06d38d1dd72b70810e25ff2ce136b50bf2890d290ac7af7469b088a68e51c513d6462b2590624217886a685f14bd36aa4ba11d4d0e06ea6b678c27f68fc9d2002f4b9dcd7db065586e4530408b31f09d131204891c3fde482221f385aae35e908f9f1ee501ae162c8c8d0dfe358f3a39d3d922ea54782a028522b6821a7dc76df48c009ed8332c3f9bb799e922679129d851070dbed3f654ed4ba2f8b8066343a6cb207767d8e02d4a90afa9735885ff4f6952c49fb3876ae6306ca50b1ded14dd89ef58aac8412441e94beaecad23704aab68103d2c4c8ee296e33374822668b892b976e9ac62c8dcaf51b06c7f4c29279546df784f527c22a3dd461792269d5c8f7a17ed6e4fa9ed2af9ec15c81d7e3025a178874b121f1e97a6432a63b1301c33bdbf5f965c09d0aed4c3d56e19f61cadc9f1ba395a7b9e3fdf4e0e53639064a8cc017943e84e6d0ef19b7d2288d0df6f64fbd048f0ed13e4e1e5a13169c6f34c15c9239ed6527a1ad2f4b0d898bd8e503ecfbe3ae6abd18684b679594b075b1bdc44b9c4d8845489d010cc7ff8d60262dc210be76d5a2ed192e04859e30a41d0acb4dc488d4456b16fd06a7591ee15ee862ed9c577a2d2e9ecad9d5c836b69440a484ea556c644ff5bef8175c4f067d6601ae00dfa7e2d36d22626608e841e2f9731cc7616b6cd143add933d793efa8873766757407ec74714ef507e50e82464d8c3332dd699526ea11283165f35c87828c2a7d7b8d515de78a281231138740c300bb7a289dc8ef1573a66166877efaae5bdd5b4e4bd23adc2d3071ba9a9792db486b15b2a3f29eb3e4284272829d24b742cc448aa6b60109fa087cc470d71a8d1fe760b3d5d0158c1176718f4f35826461b5491c5609521d1a6320f6693a7fa60dc37bd99705f00e16bea46b063d73abae6975de91d3d49f57cd50eb9329779fda176e75ee74bb5f4c8bab2a25a1c630019d453b1a5c556552e34283b98c9ab295356304bbe4cb97c0de7281828944f06653fecdbdabb21d7e82cec5501cc3239c20e31e258846d09286195969a71bfe0605e172de10aa4dac9c27fdaba4b1128b6080b39520d04fc12da43a0c49ba22b2b221cee21f1ba2bb417935b9bf1b9e7cf297d4692a91ed633adc46549d06c93959d621cd2c6f9d17b32d124b16042ad079ce27a10de7fee524bb80bd904ed8d24bc015f952299ae5e61714de645573f20763fe08ecad1ced315300a39a4e0f1efe216964347a20792390a31f0d9029019346b68b40fcaa35bea6a82eaa21f6075bab80890cf8d400e4b7f5042b2526b58083a94131758adde0cc658ac8b091c18378d81a4ffc56ca5a040c2df74763b7f3847b5ee69d89291710fed33a0a28378381691d6e51fe4aed0ec5e293731a15141d8bc8a8bfe069c5e248c849a340a7f348814b3f3d8cef33174c6b89c1d01789b825e672033474ef380b9688172e282f70186c1b704b40efba1a588fa684a812d891e83398690c0aa2a2a533c77db44c4678537d77612a1a56421fb7e69898605c51c1170112e2b541d275db11a1ce3af90775c95f0729ea791e23e3259b4ebb81aa876e90755b956f22a78e2e7fe8e6acc275aac7c9c251c0cd4d8057061c8c88c9a03493f5c28e80e91a57b11b77cffcd2d4b89b145cf8ca15752a5a2648388a92cbe2083823825101220815a6a9ce5cdcf15e9dcfccd18010213b228c46c01a72f2cc62a58447b40a5a65b5465a2bd6af3e2fe5427322296874fd6e7aded1210c28c72a505a23c6b11ca1e63e79910c5a86ec8c4258463d61868e758ece0b8d392903455e52821c2eb33a1b26728c6e1dcc0d0751f3ff1fc1585792b159e4f164c7c3724ffe547f24e920917758ae503a1a2535c3c939df55aa2412435cd56a7993ee0f79b0b85e86e9458f331c5a919c48f5efdb7548e2aea6c09a67334fefebde102bcf2e17ab8b8e063201de840dc91f3bc70c9ad166a29e544499fea3229253f44f09af95771001e68aef4456031c031288b46a6dea0310dea586951af28aece5ba70667070256128b219a4417746d550e52a09d125f1220de0fbf14c6b72c31da6bc48662c2089ca193d50feda734239abfbf028f9541c1e392fb516895ec43701401034184dcadf9c972366cbd9f00298dfcd03255103a96f3d769493551082ce5e4ee190b4f1c4fe0fccda07c54cbf0cf4e2fb57191358ddcf09a39e3599db2401e43074cee9cc312db3060c50b65e12bd1558d2fc0459241139cc951d92b4bcf9119c4dd0676bec2f720ba6c7f4dcc586c425250c2149e82528ab2139a4fcb67f09b7e8406a3dda7bf89e28117f486c9381ba640d133190bef62c236a2b212049dc569ecea9a7c18ff600eee857eb637173984c962678c660028035d119349992bfc2fdcad5e6adff068b85230d87875a69220db701b7c70fc9aee8b0454168747c3aee4722c993f62a44a5f81088262c9d1f5d0b88547a43769a5d92c535743d1f9a893b5e85fa649d23edc7227ffe4cc379615cc57fbc041676f8809fe88fe7a69bd86692da91489e80c866a1cafc99eb6724fac5db86ee9f4a6868b58fa9fb09307c63d6267e4586caeddd6bd9fbea9dbf464c4ca7a50f8c83855fef853430b15af87019510c2925464fabe8cbb823a9e9462e30343c44f02247ed064170b59612ab0f9f5b3401b923158fb79a4e72f4cf0f330187fcdc4f099d5f76ca67aa5748140511f0642c4f0c9a8f3457b65bbc7c7c95758cce948fe25f450c4f7ed8b5ad4b130c44445b805a755951d72ef8987879c33222d033231dbe57b9442a723b055cbe8706eaad13b8ae4ea8f2cac5035d5f8d962e4bee97b6b0d4f1dc704ca6a5429b02f68b889e36e78ad57db0679e17e0f9ecce49d6a75f1eaf3de7fd9e0d9cfe2422d1b54eeedd9a323b02218749df3ef5de03c1620f8ff141540ad18640b7a063e06dea00c4fe7b9677e6b78ee8ac0e39eb4cd04aa4c75b115c1bc899bca4cd76b7d2de5a78492045bd8ae4e7f449c2ef464eef27c5a121c11f216ea539f5ab73b253ea70bd38256c2b285bff62d54b1f22e025242f32422ffb8bac209a6fe2b8de523d6e68db5809168453a88bf5c70a63a52db8f95464a7068ec6919c32a2688f48d9b5b091a9cd41e445905362154f8ac50d9543c906757be7968c973a6da85a184740b0a0d598e5295948d1547c303145aa33cd8e0235083e5165bcccfe4faaf55d2902054fcac2580dc58183d5dc80bbd21f7b1cea5d01cded894c0c35f57539713e221c7d37e34ce468a78f0785c41bbd711cf497824868450e1dfaff98a4af9e70b5ad08e446a58f63e1b4e3f510d0ca5a4c9fcf6b0c1a370e641c2a1c8986ad63ac7cc72c8d8114baeb5f1b94af02ca1b7b2289af8bebfb5756fd48186143f0f3ba73908e38995b26c68255086d3b4cc4ddbeefbc0e51c075ac57fb1a4f2d7bc31580f9e3dccc23b9061871ed07a1f3436b775fc826c291cb6fc22a2cb1be8daa52903dc689183f7a4a4148052970498874bf237449d2260688e2f839a4c2e323077cc75d56c2ac0a340d0f49921acf0ea905695dcb44fbac700badf74529ca295dc0f3f18e7688291b3edbe5645213de3dc17263b542b2e807e0acd6a2dc40b5ee2844304f4e9ac71d814c58481999a58a47575de4976d986eac463e0188901a44d4f1769c5983839084fa53c0651c831e8f2871894536ea45081a459e0d92122522e38bcd70453c48bab79fe7137e95e24b6d0c7ba7edf1e2c80f497ee369839eec850574d0aa87ec1c24088d5f7ee6a939fdd94073e6b4bd6b3292ae3c4580fb47ef433c5c6db538d460515b6de41577f5c0690e2027c1f246ae4357a27b7e3f8f0e7b0db4ea3f7c286e9c14849ff13b9273314f494b71b02f9367ed3d72bbec0cbf6d5ec404a554dd323246272e16426db9ae9095c750f6b7a52faec1bd3230190e13575730919837b62640dc27e520cf31eed00080c8d1f4df44c44a84929f0ff94a28d2ad646c642170e617572c6b638e18e9dea2955861ca29dbdc224b6078f60fb393da320d5af75d3764c667fcf8f23c2cb56ff699e751e532e77c5c9a70ddc9ef49f7de620a9e42476bb1b8b47071a128ca442d2a46c258114305d0dd5c9a05dcdbb025df615613ee130af9f615a7741dc6d48a571f982c35b4b2ff45300c2288c91fee834538fcc6331a7d0d8fe0eb48d1ff8910521f3635ef664e72b00ace4d4ae5e7384eb7b84b6ff2fc5a57a2e3a8d196b28c0236520cc84c621a15f4018c8521c4d56a45b30d0836df17ece905a52143155fd872806328da1944f6440273583c0f43cdb1d83a6666dcc73b4842de0916adae873a76a86e2695d3910ffcb16ab58b2b88a98fc35743e479ffee2275c025888bd05a6ab61defdc2e6f68268417a14a4d885340cd198b0cec13e8e869e53301583b7912f5b5c06fea5f3a4cf9e533140a8485b17140c1174301753133da51a86539fe46a1724edd05ce3948385e9b80ecf6eb8e52245958b069161197d5c2a5c6596e3498e55cecc723a9f306ff1d14bbe0c41e1a399d2545ba01548880bfe18309671502671e66c62f1a33c5ab067f650fc9c405c6346636ed89133e03dad7e96330185557e8bce471a871f5ef088ee84b4786157069e284dcbc7a56f6ed4da959737ca4c6e998f11c1212c8ee8b16f5ddfad1170704994a19e64c73def64ae671d3424956814f0192afb7793bb941d867b4bdf4d3f56291b7c29366dfa72d37cd506b4bfff0a984423860ffc87909591ca7fa710def943d891a824170b9802e1b8b4b20f0e658595f8f5f77880e2000923e9a3813b200e0e0d65f5e02fd3ff56adaa0e6e8ca19c7667f2fa546cc6249da1e44fd8a3eeb00682158135abd98c44427112dffc027c8612800b32d95a2f8fa9fa6f072ac7e23b8d270f6533f5e816c0cf0968e77856c4888af9e09634ca0f64fb1d599b63fc4cd9787c62f6863579d642815094dbf24ad9404cdbc339d7cadf6b36988af343def6e9e4f4a00377bdf8228f44d1f00e573fd7eaefe17c12b051a42826d0f5706283b2a93e087567e44a85937a7950c41b02fdddb9954b5c7dedcc48853183f3c7d6ef8a5586e574e2d6791b0d55f420acd2572e0ea96e7a4f7c17529730458665b793a90f6d3d49d0d5b951813ab9a2c359f3c43d7cc3ec1d3157e15825fc26ad6edac6aa499b881637734eba8ce23dc27eed681da6d0c787f89ddfa72b3220228142388eceeff2b7eac9d586dae3b245518bb4b37a14a9e536942718bf29194900ffb3dce973bbebb018c86429840d84556a73504de138500c18414b9f0b1e90bef422f5d11924f846af1b9e89906b1ec10361d68d8b4d6676bb22558ddebc2c87e453ea08967d0d0b5eab812c0d33376bb28ce6780fd1b55bc437efe9019aa22056cfc6ca70021e7b160c344409b2c990aad06850d839098d9e6c759609d90e051dbd895cb1160ffcdb8261925a45088b7a8d6c22580f974573b0c984ab505c697fd8070fa78b536ea65410b9138db98f701d90f6874458e5f97e476194b0680e49a4724f305f013bc1908ba7d7302ed01c3effe395bcb706d2189dfd6ed00fbd2de0dda679032b63bc786b2bcecf12040cb1027c8ff6311b8c5f33025a80b2d9659e032bf2465546aeac3f2fa93ca38093b1b2113b5e1afbc40f0367311cbaafd93847d24d0a00fb431cb854b0a6a7a66e94a6e25b8bfd9eedbac48e2b2e09ef6a94ca33d42b5392953e5d635e2bd952c3d2bfef7757ba011df15f7380cb31b318223b6449006595e23204cb6dd3b16935d272d564df49b2fc4f8ee54596fd06727565ee1570593aa3f9454329d6962e44627fe549bccd296150131d17b7406bff15480ad41acc0d61e9d27b94844c34567a6841a4c7077b9279cc6547591a9b8a3d39a0d69d5872daf280d59fecf9e940d9c7d12e32ec52051046a66e74436b57726fff955e839850024f77c8d193862ca460b74c7688651b873962d00ad3a50d45ce53cdba5f9cabce181de0bb44f574d4a7a99e6ab0771aea3242981f4368d15c131526c9603969a3bb2a777aebe2b05bcde535860fca20835b30079ead7b09d3bf66674fc730f978a40a5461345af20fdb9efb0439302402f16ff7dff49eb69f18e84ea2061fc6b58877a8165a6922a8f6750eee686c618f41facb9a36ac517c84be2f82b36425f80f1a26ffd77d24c109739b63457cd3de2ce89096e04e7e2304e7a3427c5ec841eabf419fdafd22622ae49c832d83a40f27ae7db0485dd6599f6f5c9fcf934fe0871345926f8b614c0cfc6c5e678a2293fb03cfe7416100c81aa56e3a11c9acd5bee81119a3416736f73210e9498031a8db72405f0026c2a09ba4d9e49c9aa8d973aaacd2f4aa0d0b77088d06090a74cef71634f1554269d3157bfda94ff6cfab437e676a2e17576a04e66bf1590cb02a5f0e7f963d7625df4d2a8a7c5a28f5aac40824764c174c5da3205e68d36be0c0afc2b628184f50ffc142952ee56bed54216b16ade1c69d2664d971dc091b993e5ec56beaf17cf0fdb7efb9eb233f8e1e39f1f2a6798400140296ec3c1b4b53b93fa6848c32e9534b0c2d72f91b900679e969d56f396bbbeb2e11d0e7a7217c9b83a86e26d021930ea49d9df907da84380f51cd61801331a55f94fa725f4f906b033865e63674691dec255f8e6ea42bcdc8332c86ce6d5f4c2c2d96e7f8e8e9d2b2335368eb2905e8d4f023b6811321b45905f2339951ed7c2eecd306822e155bd8db9636a8d90af5d82658b2411dbe762a058a767b9b0d21e3ba62761cdb9847e903c7bfc215129a5acffcd5b190f1bae8c245ffbf7318ed3b32fabee93d84055fd59f5d9b604b04339a5eebbb30f308c3a4f2d6653f60a5479a13b2a2f7484381a7bf2848355714c78a370bcbb4c0fc01b622363a66238227b03d0dc408140bb8b6f44149e7527311ae500207dc7b23097adb6d03cc5ee5c7f708140d504bc51438da64cc673731af23470ae7cfc3dbc41a24ccdfcaa43df668a7a1ed68d82b2c48cf68f354ede69978b15895e42dc68d0270e5c20facde2d3104dacbcc051222ffa6b82ec4f29bc299552f2ce322c99ddc788e081880cf94cdab68f0203a5457d5062b0e9112b0cc25b82549f2ab0ff261678005291ebf608b93e83d251fb9e7631074c97b4557f53ca5b1f8d4298cba41cec8099827a6dd5c8f9f1181d90b8e69bd520b462ae6ebfa73e712d4dac070d8211d0be05d6e84ee3e5ab7ada98537a9afd701151e94153134d5f7e76b45431c63a72bfddc84e0c289c2ad1951c400689195cc3a338a4ce901608c0cd8526a5c2973172d715083e896c52df0f6c7419dd4cfff461d6f2cb8d6df9f7423697377df78f84a1ef35c1a01952bac3c1686b36c6041adb74fef5c9ee474d1748ac4d3821eeb33935e3fe3b98a65b42b96561effe8f6e7a7ed8cdd74bdf02faf30a414ebf3c4501a9bf2e375750735ab797e6ca9ce550fcd53eeec930e7c9ded4620c07aeceefd85fce80881677685bceb688bf49bcc61515e6533c8ac534cc616a8734d3f6b572ac1417c0fa0a62fc311592bb143c41f0673ccc6c64a79cc686974e5102bf425212676e85c35e40bec86802ed186fe77b5eeb37a2ab1b87eff8d0e9d7a9d8195006bac7786ba1ec7773f6a90f456f8108499d1d3c0dcf36946314ddec2efde3c248e484fda99cf4b3fa87e87c4493291da8743df52c924c894523b3475855b8b220ac1d1ff3c27e3cec4226f60aa313ae436527c75fad2a1e7dd6f04a121b7c2c681f7c9f70ed7cf19aa413a4e6f02f1f19d9cf972942db5f9aecd56d13f7a6db6648fb35e4f45c6d3c648dfbda35ad6c09ed4db19db578922cfdd08c4126a2ceaac3898546d8b1871182a657f7a42ee86dfb19957b82893e5d14b0946b9d5692ed314e3d53f53f88aa49c793ecd721f0e364b445b88b63ec69af54388e5e56c39a01790c2b39349e0e2fe95d039429db0b0ef5bbe7b11643b61ef887567f5c9caf6d5a5388470900bfb68495016e0ed65c6a0e98a0968a0d65fb95d9d02494db6858eeb7b531464ee5bb8da05624bdc043d00b0dc9bd95f76a2ee68a58d15958ed8a85df73585d96670afd4b7ee23797887b435c736421ea8d6811bfe78bc64ed032fee46fed7c552fb48639a1e1e8eb5dc32e82530911f33d14fd0994b413423443c2d94d7ff13ea78f6f499c01cd6bdbd860090a2bd11334c5e7ce9f8ab35fa560a81256824ef38766796aae0f95c48df135b6fc3572c11faa029546389d5349752304b0c08790764433c24c4e3823d9008dd6468889fa406f01828e81bb4aa6bceb7fc8505b5f7c7520ffc91b08985618fdd816387c431014c950e4448d0de443cd4831502cf2656173bbbb667bc14a037cfd05a88ebd9f31e678e38dda0cdf3838099cd462a9fd17af6be9277c6872f047d07efef66b2ea879b3c989548e0a63e0f7faf3959a39a8ad910b755d2fabb8627a743310a720bf32e37ea4d1d0c8b8609ea7c0fd8e79ed084de7926ce0de3480374de83686439284fd513b84cec232a81754a8f8ea8c1a2f825147213978e5ff3c5ab9fbb725f499c455240900593634c3e421581d2e386738de9d2fdbee9451400feccea51f04275ec6a59a59d73b9336ce8fc61e1c5465dae2e339637ffb6a91641260427b98cde0792e819de2917d9d158904fb3f1769e1858813b2037f5a0cea192deb455ecad19dd65d3e3e6b4f877f1d91fe807aa07b8cb71662bf9bb24f65c6faadacd802f6464549973983637a14fed8a74715e60d9dc3d4d67c778cabf50f0327a2a4bf9e9ae2e5fec6810fead6e9ef4c967352aaf69c76cfaa182177cb89b42549d4d6400a3ad0a89abc51b43f5165e88ce0a04cc62be224d3a408390f14ee3cd0019969c74f30b298b15e146ee81f08477d67d027d6f92802a564297ae6b6484d5d08797776a0aa816927681b2e392b45780f3a5375dec6c493523199081752a54fc973868b8f953d39c6294ee3791ad1d8508fd8b1e31fbd5c32089b9f9561a5602f51ce108c12e5688b4787ab62f094af760bcff2372ee856011eb0651a89ecda4d45c4be221b9bde38d7b49700027bce48c460cb398101b0f47d7139e868cf4243d377b8b4518e62a04d9b7548f9f0f938ada9793687ad7cb66d896b68c0907e128623525a8bd68e7059a136f8d2ec7122e65de0d1ad11ed93ae8f76fc70a351237ebcd3d4df3e055d4bb4c4b52d3db5c891540bbabf8e695ef4eb0e113f10fe2b276d32a6cddf16c70fbedcc860e66010d10faf5c5309eaa92c1643c9e21cdf8aeb750566c2b106b382535e9b4f7236ca06ca20eb1c0c415da7df7ca7c6e2346308fe0573002cade0e7b49faa157d9c271ac76816434d32ba6686e516d1366d11e88f03fab9a8210fe11275080fadb8f30dd44149b1663af3d2931fed191b00bec84c4e0ed4d2cf082f075bac830115e9e8c17f7f88260766fb37b839729be6a277fc3203ca8672543dea7484dcf06f8287bdaf5d7a1aa87eb8e1ebe140eadd8df2e2911cd10186213d3acc5c1692a352323037d2889c882d814b010162e095cdc069661a20a5a297229f715749c60b82c9ddd94d381a281a2a2a1621cc083e829ff2798d9ebcb23d99fe197e59be675f369582130bd7a878202100ac20e6d0a7076e80102d42cddac635f3924d03da009091f96bb27fd0dd19b675731a690f6b9a275228d145cba9bffc3bac6674635e0d9b016b8b062dec647dbc0a8340785b720ad03a435e6b0e25b8d445ff0c8ff5d815d5c7ff7de261ac8bbda01e0d83a837f02e8bb25bca6b7c6bd061d20c208b448474c4addc1983312fafe5c32d10b6696acf51bad3a0c3acfc78b289f5268e5668f35b8b6fb9459b951d2343b3b67276cfa3e2b1baa5304b51713162044deb617be95bbad2fb54465e1857f227efa74f4bd529635c2f590ebe0deb10528870d1267dfcaca2477adeff0b734fc2a139383cfe3ab7e94ab04e54036d11f1c532e09888d73f29c1c46ab20c319823614024d377544cebc075d737540beecfc30f77ead54a5e7c9c833f651934eb24aa9037661418f9c074e5bb803f105c5577dc5db00b22023a57334bba66535dac6016529018ae030b2bd9a72ab5d37982dc6e79653a4b3b82b20a08155c268f307c4a7b0b9e91cdd26d61d242f0a02ae68a953c71d0ae662f1301eda8b05873782b1b6ba8ede59160d2b38cdc74639187449f4ebfd936ca32b11b693b4cdcb0358f29b891c206a52e94f3f18d749dd7c555f4c084c1bb888aaae6e15d7428395b91bb9825f45310a0408a43807e5a040187f1c92954464c6118aa557148c2086f2c23f822172ec8ab852821ff726cd3316db3bf25326d547666ba151fd09e147b15311bd49111233ecc0966a4165db0c46d841f61f40438af241daa80905f42fa7b044d1188e62bb81250445a41e4d880e1f8b077c3537a054ded8f5b09671c1eb88c9ba61fa6df4fe24e63c80e5cb33cc08e923163f66bc7c45ae200636e19e8aec4e1645bfd5b8a7910f2b5610c35896e65b822f93eb79161868077fc2fd3cafbf1415682243e2f8ea905dec1d53e31a300128a1a467768345049c6b0d474d460a2e1ac1474000a9cb2327b3259266f8bb508d5dfee44feb1b285c0858f8bffb703e35d2d2a75f5ad20cffbc952b93c9e8d77ac4ad742215e5263c83a3df0050cd379743a8db93f1c6335e1dc63241e7e7faf1e3b1f10f3a611d43b9958511e29997265565a2b5ebba6a118e71f059978ab4685fe3ee8bd941e5e2b0f65c6764cc2915eba4fbaefab9bec7172414e29673d7293d41e8f94293a90de0a7bb7f0142c4b34cdf7f69b50ef175f65bb0527b356e46daaf18b4239a70d7bb572b3fe60a815ec888a6593a12550f3a8da6c5a6b9504381b220c40e051bdfda7ccca63fd3dc126141315cbb23e5b3990687812dc76e8a682e4ab8600c453e2b4596f0decd92f97ec24ea0a2473eb2e3d29e6e62c734a278682f54c7188cd4d2a4087ddb8c9f1c88677f0dcf5dfd9f1114ab440dab4dbd02a561f511f94324c64206a55ea83ab6e20b05ce66eaae89aa89c2dba92aa1252b2489f022820a948bca04313cbd3b2066b56e3b74991d02a6667620d04fb0a2e8cc3053fb45278d7b155d6d25272ca1e1c048b896391a556a5beb0872ace2ded7ea110acd2415fb372e58a132149c35b472d1af3585f94db518ee8a4211a3dabc3c9d1ebb628ed89165385414d1592219ee00459c83832439425d5c56c67ef744a9e76b96d02fbca4307ecf6dae1f96324d2ab17f4ad9f72bd4289ec623a70073a612b9f1980aa59508ed08bbef9b07a24a744888e47c2c91b89a35f9bc41515a65869eaa9834e7bd02ae173008586d5cb03a29b8687263810af2da3f22a865b729ce42bd8d4eb4a58c0b0f9a3704cded78010898dc3ebb98ae2e9368a4773449b8c4ecd0683b3eb0c841e695aba70019965b8a46dfeba64f401720c1c28b93d032c882ab46d19536c40719f8c2c9966476a46e7e0e081d4ae8a5fbc0c6b088d35c320a6e2a3d5d0b52aa5935c2e77793b4b4326c73609ffc2de7ac9965efbf7321fcd56cd7da12e3af2a3bfe98d1ce7588caa96cd4265c1c9e5a547f94802a24f6f6277b906a364c529ca11d9b4e2e5916f87e6be721750e638a23bf6b0980528ccfa2cf0b0612a59ec3385f6f464d103d91ac8b516531e8eafb262d8946bd58a79af6f36d7d2c62bea11db905fa2470c5e5b0a30661c73d629761b7d2dabb1515c61d00ede0cdfa1efc3ff0ae1976ee23efdacc0f4bebdfea2e6214840a7d90fbd6fc5eacb474f2eb71180a2b3d9c5c8405c62b57c6778ee7497e74cfc514afe82c6a8037123a6cf9ef885c5f6241aceb646a69f3b8685b418228f2382fb580a67f0685ca1179decb1afdf8839f77b56165b385e40c24033312c914a27b365e8eb5299ee86b29262ba154bb51f61cafb06a77fdf6f67d44b9df3d63ef1c16a90598881ec5780de659768df2575b6cf499394e349a7ab6c89c23f91fca7174042f489969436fc7a6a486dcad7d010b2b6926d66798842dbb12ff74985593d04060f65aaa847b3fde62a893651c52bf532bd42bc4bc8586b1f6f57373db4973ec92ac7593612768784eaede420f1d7a10e038352e950f727fbc34df22b3318b69a36ff77b7dff2bfa4bce0f0f8cb70d9bb226acd103ee1ed40607c5f1c2ac2626736347f3e19f2c6f88dcae325b998189b6a3034fdffdeb92fc94c30a41cfe0913b9b4cd223aed55121661887b6f81f75fa03ef6d662e031e7de5952b9bec1d5b54a612cbcc9d30d9ea01878f1a0a1b88d7bccb3416f400b1e16c4f8dd356813664ae0c14a454c6c41697a4349810ba89e0c4f1c16e20b15b229cc5ffced28256471299d43740471be8007801a518969de0156ef0a4b02349bb5428e4d15c8d75c37fca3b37ec636977a52e1b6a9071c9ec611895b748e203b8d04aee3f02e4c8e25e49af60565968d2fef5206b291b46d096ee8b87a7de26410d6c8ef15ab142712246ed47bd0dd16e88944a23aa480b26b6d84c43b5a58e2628b37a8406c24a4928d2528c843edb7f70f306104f36b512bca1f57d56f7416ffb642f80a7e73db0f19c38a9e52d7c349f5012f024b88dd29e1d739d3fcc5fdb85339dc5bc24cbc9f84646ed6e86b8a2b97e7d84ff085ee6ff60e15b5d85f44930fe43f2f9f3f483089ac7d89f8494072962d5f71851ab019bd678eaa1f3760af050c268e510fd152cf9d8168fb0bf9415f84362932f6aa7066eced27535c6aac149c35f1e6a920c6111e64a3ad854ed9f5401190bd9ef29ab6975139e7aa10cdd9d76c9af9bb5077620ba8d1a1a7470c0996f596ac6164004619445e9869b77b485c32188a918cae47177295a717e80ff0c2229713211352d163c08f23014b2a078b149ec3573c05011745dcbbede69ea7af389ee7c6a44763828ac3fafcc8ee2f3862516c0009d33a093881a2ad4698f4c78d6d2230764161e53091fa57cc78ade606802c2417c4befe9821b03e5ae55da657c13f463f200314346ad8f09b3376a821be1f42d6980f3c77d8127d31580c428257c3692a7a20bf0f7b51efdaf0617bd4e260646f7dcd78e4f3610b4110fb529350ac6b807184414029985a95ffc52a78e6014554da8324d0c9e1bad8678a4473ec734eb0e83cc85ab25470084cb46756b0ec3b20bf0920024f8def5cb81b402c17407678215c8cc65de042599bc4f7a428aba6e848f03f29493a81bd9a0000289418c4f61eed48414f2e590b84e9490e75bb139a3720de104fa50e979b7664be282bf97b98b4b450ae608b9beb1dc4084ccb2a45379fbe2a392bb1b2b8e27d24ad196116006a8990fc261835a96e33b4fc0f568ecf391da586e5843d15de7d2a8c46fa5d775ecd179619e68a119aa8ef899b7d4862a30ecee2833921b47a7dbc4d82ac9f5537ebabe4fd97f827aa4a719b9c1eb081bbda1dd2615670651ddcddf805624e9ad21af152a7fac0cf7ca8770ea9be7edc83b2685581bbf42762b82169dad32c25b22f876ed036461acd23ad19a0e44d604fb3dd4c3f9071a219af9d03e7476ac473f89efbf3c6881ac65bfde430d251dae088ce2794932c7512cdc6072a45c0f88be8d65e4f03fd1068aec290b05effa38e12cc23a56322f55e901192851b1f43dd4b1f25498fa80bc121896908082be096145c495027c8d65ab79b920dfb06a50175a6066c660a25460d18f96b4d4e506ab8f83f5030654c1bc3aabf67f46424923aac1a60d19a86ed4ad432e380d21af2aa120223708910b307e92be48d1d150f15dabe3de78bebbc9c92169ee1f4459e77987e8270e4ad90935650c9e18a01eb5b6dee2416415f26cf5a62c3123c4af2589cc6d9ba23907d0265d771b6408c515452e71894ad906e9fc32f702c437374cba687c0aa4526326226e8b783b4f5fb735880a4802c23bcf0e1bf66f2557f12cf9e6edba500b6cf0833c855e8b669052d382b2ced3ce698b53a6476878d5fb5e868f27cbb6a509464da7023699d72c091f80d32ffa475cc6cc7791293d16f9201c57323ebf671d68ae4943cf79921caea7cade607d1a04cff152df2082de7694fd704e2612544f84a5aae3ba5ea43af36b25b6d60f0c9a671fa6d513e0be1a14b12be0488cd2a57dc2181916286dfe93fd641c752b9c9c4b65d10f39065ec3762af099bf1c5e7a27e05c8215a9c95695a1596636b39321fe68128d1635960d354df1f86bc8749287f0a61ac458af7bbdd3f4d03adeefb226dac4ccb0f400065fd8b74ee88715dd0686b89c686ee10f10a6bcb509e6a0f6c8285c23b6bcb166970cd6e707eb988360dd72607b9d15a45ec2a44dd03e28b0db1f1a207e028aa7fc80376920e3c49ca245a07fb1b33552038ed40090ae622a933c60916dfa51f1c7862630b76a29693944839d324c52ec074506ef8288c11211321a0e4614d39edd5dd7e82a568c5b79d59e85e3ad59832abef4e3e46974636ac7098ec49626041d1ee384f0d29a72a5e96e1b3fd8025a02339669ef0357decedf13400a3cd0af3f937aeab230c73a1f2fa409bc87a8caa6dea20259edea81877c350ef0f20661dff4ffc10c4c1379a6210fecdc7b45f1b456ea63720978a0a6062e44a97e66dd850c5a36815bffb083b8a77cbe572cc466f31ffbe6bbbdde8a6403bbf2d261b7802fc5405fdde21b19a3ea60a4b14383e068169653d2d09aabaacf192f259894cc2a797af6b928d8a3a626edf5578cb7f7cc5f6834816643ede862f2ff296794687768edbbc5870381df081f102e65a37f7480300815f06e8685b6fafc188634a88b0019ef572d351f82a655becfd0100da5c4b49f5df9b7d415c2cafc114255219585c8e462014e18342734396642fb6179ac5b0df4be49f2b5def1b502b354ceadbbc4190416c3161e5092787cc84eed4bd894822e74568d092cc9477d802aa206fdf6775263586ac80d553518100df07b6c57e1b241709da65afdcc7f99e7cc9c5ab4482e0123e2e1088ef9bb3b2973d29a16ba0adb70dc65a7de0dd0d735d3c656efacba83ef3006ed108370c499241ea3cdc00c2b93e63e5000767f7bc803a8c5c68068f02eccf16742e5f56b25025332a639e04d0a2048e18cbe146a7535ce9c9fdb48d8034e857be080737e1014a50309b5b85174736a2750c3ab5fe97e64d8009219c134d587df3d77181d6e0dac4d67c7d70dcb5262f9a0d702c002cdb8e698f91e4638d3424a81c625b6b39a5164d487d9758b2ca5075285942205ddf00b93e250d1cfc951b579eb591b3695c2ad7d74a0e80ece92d3db9e8954a393949b4356fb307d02af0f711622ab37b3a09329ad5fb9111fe84ba7cdae104d401a78134af9d5c0995c8182b0ee6692b1278d398259257eeba0758b487376f56fc3ed3b4b19491ccd45f3ca39e79414a0a69965a38b7e0f98ef5f656c69ce92bc800d7dab7b29971adba085c15f80f4eb801851365d601ab8faf2f2be33a2eb6b02d52a632797eceb01a863f335f217849c80964962e2f12cfd400222287a4ba98eb0e2ec919b19a3f4f668282131cadaa2a82f0bac1751a09fbbfb7e83dd940e932b0368e8421c7e4069a4759df359858d5fd5ce0107d331c06c1c3441cd0264073be21cd1f995dd8cf0c190d69f32746fe1a68398a88541ba1de2bc71ab3a2fad5fd3c28f4b4484068bb45f8c7be2f61d1671b9968b2fe03ef195fd219d891f89e51b1c785c3862d568bf19d5e46df0058326f01fe97fc736b639bb1b6a9053857ddab8d0608e7e20c2064452571846827e4a77d3586de17d89876b1976d5d328242967bd110a0b2342b453d64db85253ccca562a603e2ebab1cb781bbde441e1e3d3b23a19148486f94e9cfa786623d0a30c49baf8932d244287d31e125f69f500ae80439562062081bb16e02cffcc9d3c30f766146c22d9f4f106cf50b1297b3271b2a886b4e31e0da8f76d1baa3ce0bd4f1dcbcdc59a81039885398eb9d76e0e677a0021e7df3cd70adf57ca06cfd78b35fe2ccab1becf37c12b5d44ab2b751cc1d0560e7e0812960406529e340884da26d2f8d84ada410c34281c2186ac8a110b603ac42895edae01c3576910459a95b60d4c7b46113041eb3a3e68849eabf75c72ef384ca766a1610603f773368ad5cb19d2a0080c4297209268a24e77d9ae5022fa178036830b57474305f30a70ad854f7eed013743b2430bad7158640dcf8fe625f976b66bae118242ab70fe56cfdfc0513441a144f5fda125419881955bef5e96bf29e6a8e88883eb7c84bbe9c0d29691514afd93213d14aff18363a05c8e46fce73f47cedf174d276bcdf9e343bac213b4ca3738bc01b36054b1dbeed154c46f8580742e3a463d180fe79ac7c36bfbf9264ea7127bda6b319854c0bc6404decc40d7a8079b2fe4491b69dbe75c7a0048295272f18e8c035cbb5a780539f73f214dc07b8afccbb68e89c9648865aee048420bcd9256700a8c0ffa23afef661281caedf7f4244fad1e60618992801d200b222307c02b17116a41882aabc71959ab4178abb4900443dc0c133dfa43c43cee0664612df23d3a54929a780830e0af2c2efae20a097167ac12561c7a3c7a226bfb7d068bfd88c1109384ef83dbdf9fc4f4824f13a68f101f7fd9102a61702bd4ad99224e0c5c397bb5767e891044d76647769b77512e5e28c6c0770ce3eaef4e6ea9c2916d02caf82ff2a6398c327dbbd519ccc1403f75e721266c4ffa14a93d93b6bb064bf53c1f24bb51328f046f1ca3404229a12fbb0210dcb37b374608ede7ce272aa687e71a47991dce23f60e040e1a8e86bb596d40edebb9e7d3d930dcc37c6f5ecab19d82999a2b580ad072c282ee51e4258ec5aaa8b6911e4d1239bcce4ebdc65e56e70703c85749456ab61b02a276db749d907cb5cbf547b8b9df00d1c2f5fdbbd7d1883c1d79297bec550beffed378729c059d783242b118e1b00dbb2c31ca6d1a4e8286efb59b554829c1772b27b1e6335b42175486af92b97b3322460f8ff75d3979ab8ffdb8829bb5fe4a84c1d9f611c3faf4011ad6ed630750489a3cf17dee3643c422075bd8a304775f4486d88e62883f9f7fc740550a13f6fc4597d6de0d2faf040eade66649acb68bd1c24062a45c78821df8759f924fd428f22db95d0d475b6415953939848191ca3d928855a1d3444d9f0fcd4d3b0fe1265565108b7136c91debbc0b8c34fef8cad3bed899485380fc55991adb31f272be06f4556617a032f3a8eb4828b0e86989012ea3002b36c1562822ded8ced4a91eec6c8d1e80b21241e8f6de141b2c7419987e85d5cdeffe4171462ce827e10c84662283fd5e2872fb33d1d967f169d98ea7eb9a0b63199b692d412471e0f9dc0a30b3305ba6e94c5fc01357250ef2bb9427fcb719f6b4c5ab463996540b596504c8ede3899698b32c06f848ae17c7b82da88ba915527d29594767e08442fc25874f9c21296869498330619ffc1d948fc060513a162c46f4238f60ba343342edc608d92473b52569b6ba75e34038c926a92cc46cdef91db8b8bd9e35aaf9945664a9792dfef9bea69011392ebee119c8dede5f4736b83ddc24e8d0fac291bf9bc57a79812edb44f0ed70775be212de2aa2a966e2163296151a0ab5d2f052661ebe846239b8769cd7ed0727af63efb619debb0c5a86d4010dff2a61b11911768c132f7285686bc8dc961946774fe92c9e082cc04353b961592d891194d32ae29e08e6a1293665e85c0f2f719740f54df025d2ab46c346d5d98db846c9e1f262cecfcea2e5138831c42669d4e77a1eb09547045d2da81d4fe48c73b0a565a03e980c5c3477dd8f9f01120c25b611a5fb47f8e81303fc662d4a18c92c5054f64cade6038f82d5d5b4588428443d1264f3b3a9db1991653c2322e6199f241e5fbf1e9e3290c871d16535be3ad3f32ea5e0e4853a7b8abbb0d7718ebd2947503da0c7f3bb6193886cd4cda0c197070aa10bd2221ac68edbfd843c9182e47cb53a48181a4978037935bb7bd656988012de2f6a447f4f993c1c5dae449983dbb3775aa2eff174b5c3cf64fc4745329ed7a13725223ab85df23b136385b1dfb0c3dfb18a7c3e3c9bc73a2e64dd83c88d388fdbf674cfc315dc4a5517dd42d14230d624c759c20f72614eb403f754831c03bd13462698503de338cafff8fb7a0f6994935ef6f78cb16a3b159798cf6540970c9e14a1c110b5b2c4cd49a8b54a700d73a83f00d56f0a92cdd01ae4e6cacc520286a893c0d98e42c8c094eda002b4d5bae3d71200d4e2c1566857e4b031d52d9ab88a5a1abfc738460ac48b6a84a5ed6b8c6845ac47c04da1c03d7f3297c6603824fcaff6cd38d7ca2260438398800705232f211d0e63fdc8bdc08c04c442d7ca65e93044d7d19c4c495d96730cd263c82ad5810c49f7217cf707021b04450445fac44d73f5dabfa1936eba5963d32444e41b09591718834ea810d40460161939941782a004df83ab58537b8cc30a5d25263c6dd49288489874c3466bd3a63b3dacd8325a8feaf08380ff5b5fb91fc69d4e34c87b873479c32405c9e5add7384020ee33ca5d214db9d5d316b85f7f0de99d6dd59f16a83045c5d31ad7505fbc15784da7a946ec3203a46a90c214754d9478e70294756eb8be9d7f43aadaa00f494a0b7c09853796fbae6980e9904cc6b371ead79e09d22f54585150e2e4de9966ce0402a01869aae90a54f5409bac36b5f04e6aa8962d5680257883a5c3f2cb79d980c4c9f646a09c05f2df8160b2468e2ea2c7b1891c0fa11d612ec339615ddf5b1b0a5ff27f17c98051ee75ab19b5210d1deb02db70573f9c4fb21be813767e1538e22288e21dbe5355b92144b0669c260fca5e867ff31d14aaa2f15d9478068cba8a1fb934e82a0f0392ba702a0494977c681ffe0070ae317f9132f5a4d66818d9a60bbed3209fca10a882dc54a6c623c75e33bb7d2f5994a38e782f612c17482dd669c26cd2f3503a94095407e020e771e125796ec07be4c66927f1d4863d542cc9d7cff5f10c3b0e4e20144611a87e15bcaff67fac69ff6d173bf5a7e3da7fee73a0acc87d90927b61a5066f362ae1bc6f4b8ed1fd56111480d5dbb00a89b57edd6f0bf1f82e7996fa4d037e64494d9a170716fa199110050115d8b8ba4002680f6989aadef9c8e4b908b81f4b8f8d27a4647c208119e42873928e75e0828ef878a63accf42b966871281a4c2eacb01567aa8ba2b39e3130a2925514ee40a6dcf659b4e7dea79d4b3f1c73a3830e690424fcc2cbd1274262b569502a8f1db501361a959b8f687cd2587a3f79c072b7af7d70ff8a33e432143cb48e8b4c8cc4564c1822a4f77750f2cdacb0e16d6e32e4370b1a1638575373db44a98670a885cb9fc2279e40a86d89e505036bc950c8577f26bf831eb0854fab988de76d44c221d49101ed946e412a1ebbb166c0a02288bb9e8233d0b232acbfc3253198ee0a9096c4ddb8ec5217b060c7e4b559762815d4222c435e25e4e0d126080593af1229e3493db5112fb44d0352c4869c2524bfe5d2bb77d82b8c3a31e107027870f428c5ad09f88da16baaa6a46837a80313f9fd334d291710a30f5398340db6cf71b949400089b90ad892fa05dd601e6b6901553d341f37c8232982d3c5f1b0727e8c4a72a6d3b5960bc2e35a7c5576e05eae19345a68df29dcafe0747f36e4d6e7fc7ee73043df21da6bacf908fe72681f86e81b9a0bc7878bfcf3de804aac6b5e8959c87f327a46b513ef633d4a5070ca221151ef118019ce03e10767ee2fc385e75a830153adc0b29f685da8688b5244fd09ed6994ddc64be7cf9b9867b0aaa88b88797b2f064a510fb63e983008ff3913636fdeda18adf9be0c8aeb7182cb749b0ed59ae4bac29779f4350fa7c6065ce35fb950afdf334584c1c409bb8abd708f0ab2ee65e6792f182c43cf22fb0044cbe86dece4cc28348bda35cb96098cd135a9217772c11e04f538fffb253f77520d812e753b4d862f2001679e9bac034215dad532be0dab578ae1c29369fb246705b2765133f7d14d9ae82f5e62e45cbacacc22c00447f98b81a73e0802efb96ec31c10d988290a7651c7a912aaa4464ddf75c7e149622e2f61e11b216ffaeb2534ab674f9685880ea3f0b30acb420f31c9378302fc6e13b0912b5d92d6e1a5d46bf7eba01661c3406ff4fa9d631e73df184453c60a5f5d3f42e7b7bbf05ebdf84bf3fb9bba87d2eca34b0a8ed91524c9a44a7a59fd3da59529c23b405bb6bb91c41354740203c3ae0fbb7091090e913686ecb3e12214d9eaaac0a2e2e2a692dd8d1e9a2890d26534f5bfe4ab190c6a818bd7a514323249657b4a5f675c4bbf29cb437c1f34a4d4d008684bbb9f45830305362d05ecb2b3fa56a6b61a8649ae7df05ffab0ef9908cd53d54f33f8ef141880751af10888bb782550e162f9c892c7826b1709b5c8f82b59cddc6a0df89346345aadba4ebf291f61e20a62d326ff22f76de17b08f3a20c9cbe38f7d0d080efee4fc05074601e278db09c3a42273e44e6c458519f386fca2e24279823a40a183ffc12ab61cc91259f5bd7d9111e69d77282b0293e1aedca9e24f2a9dac227e52c49823f2a6874164ab489ef24b3a762e88f9ccf47a59b09737b71e4031092634b2a083f49feeb85d73f9251b6293988a12bec48cc7b912472f9b00628fd40b2f4e2a35ba4406e3958ec6999dbad17740aa918f03ffc922e2d780e4e22631e656672d8008d0d34d14ab5a7db2ca367844c8035f2b856a07e0ffd67ac0ca32e10afe74c6ee1903f511a581f0f9f94f13eb0a9b778ed47ab97362180bcbdcd882a87d30e164308cae82fcfb953e73e3748d9d4622a229e5d8f627790e021cd9d413760a77bf9372a5190410bfe7aebcf43f2c0aa1583359222e8d470e784290e25b75268deb5ceac9d098d46b399f5cfb1c0fdb421bac2d121ddea38a7988500d3dbdbec6f0805ac85b429f51125664d4333ae1f252cae9164438231016e6128e20beaee1e0b780819da8a410ee456526aa3422a3d8ec3c318adaad50882951ea48c5c9afced15a99a50024b8939a34cbe09a674a159dcc3f00157033e09a0a15f786a32fc63a0d3aed53677c2ed2532251a1778df5717a4b2a4a93e74c27379c798fec7d96e3a0194686def323dcdb695199af71bc8d26dfa00d8e16fd6e35d00fc4dde4f255a09a6f6eebd781756b34982d7a2454b1a81972550ab67a89fb7ba804540da22180ef4c13aa650ddea1ccf979df9277aadbbe8903840401e1bb86815a54837888bb847853450d80efa68373e2eaaccbd206c3c83d18c8489ae0748aa406671f4c8633670cf837332fa0fc7b1cb32bfa0298f2472708c2b1da1c83e419042c694e388435a5b6b4719c38da1d084fb2cf66198668fd28ded77b9162c6cef92788ad13f6e7233ca75b0b4ba41fe32750f7f05cd282b8e65cbbc51d5f196cb98cbe88db2ce75c11fe677e198f2132339ab844d1170634bb8fccc4e832c40e36804a78c4ac58cf05e5fd8fa14c85472e744bdfc6529a6c4c495c1e4762b06e72404ff38d0b960e6e1e211febf24994fca75fd5bd448d6a33fa318f1855345eb90f27f3e605ab166d7befbc63e6ceea157ae2e70afd078b5e903e7dcfb52182631d1b069ea255c8403b05f6ebfc0bd2315b5e2551fcab687e8c2c093214f12ee71e7c21ca040445b5e8e3e9556ba1b5ed5d49fff41aa844ce782cfe3ded80bae4abfc70cf2dcf012e9281d785d81802b7f7ce8a1f4f84e866839e96a1b002384c888029fb79fe463d1a4b3bf414b09f76f3fb4c573cf6d7e97d881bd40d791ce3b653ea807da0cae78947e854b2292db984c42bbd00216ce2270a935a6be8bd63d377e71e3c6eb1bd90f996108606c1bf8e07b5d051e0aecddbcfd2c419a5e6e06c2e8aff994aa8cf35d38f28d309c8ff59c2a375ef43570d10c899024ef55c0094bc4e0e7ecaef2b1f8ddb1d256b59806716ec66e95a5c45e3285a25536a0401f159337e12c75e7e542c90e08f6352b53564537ce80139d8f975dcdb3557acf60304e0978b1c49f61596b23f30609dbafe764928559cf914fe1df68bb1e27789bcbca64f2c19128f0897764929e1824aa5ec1dcd6baaab500f3e61bcc723a20f47b53990e9de7dda2d32654fa10cdee710cfcddb96df08e826cebb4f1b6d210ec05089dbcc033579b819b90e777d6efd57d7789860c459b5a95e7971815852fba5222b19c4dbdb326f17023d076c212b2285b0f6889534776c0c9b22bb01370d9378321c08ac082219b7258b3b59a907bce81d54d8c56c6cf67aa32142a3853ca51f4fb95de59031c5db7998e06e68f4bb08d4603009fa3f67209a80cb8ff17a9109fd1bb3cac7f8a10f5506332af402ccab34deda91d773e8a7c1bc0815eb25ce3a786b611787db51829b5eb8b243b037660cb6267fa72a7e0e2cffcb1ed61e4f37ee3129546651f0da97018322b694ccc7f3c48caac14d608badc58bcd5d50e30537c798d864411c69945770d4ca623a403fc455342ea2fd7913b406ce6151572a442dea91505917b6d8aa1477139ba26836876c189f30e7f7a8542e95f9692b723c8c5008f82fb672840cf6f15660d5eac6b652d511b988b75d22bc072c6b662e4e8def5059241d54f90ef114f63c28a4c34620fe1205ea90aff98921899aba0cfc397aa8ab59903720f33f903082cfde8529d5152428f7b0d158ecb5a88a14fb0f9348dc08fb3d5fb8cb68e77906828f59c114c35f32ea132af602f59b807a98a569b4489648ad9ab8d39432ed2c8dd23d179ed18a4ccd7606dfc49b66815bbb44d004cbb108083e9bfc257fa614b4b9bf174b0d66719e466d7db1fcd518ed24a07817175da13b95d61dba7bfe2ae8bc7eb9c676be04cc4323ee582fbaf959b2d3976d33321a8a0de119942c23f5ca882136564a12004596a453af46ff8db315e10d0c0d31f3c438cd61e792287f9a5d872b8d42c81a74c32512f21458bfb2fcc6431e0ab29ce6b96c8dd03d7a767c70484e063744231642803d0479adccc6cb1a8d247d338db605128a9650c0354f6dbe4294c08d61867d6f6d541b5e93e5cf3440df4232d434c94dfc4924dd05b013b06e932a0a5738e3c81c31835b3c7cefc84574efd7f44ccebbef905e946e69d02319b91f912fada3f46df24cce9eb63bda1761fb2ede049731c0f26f256929e9193dc82f3c409c544c5015374193af523694336c1952383d91416579e143786469aaccd060e0390130f9416d5d5e9fefcf35196936d28f82f189e347de54b596ab05e112000c85c4b28a1f005be0ca21a0fff7fcdb00a5aebf7af9d17fdae0d87dda8fbad2092da619a9fc4c1c13c9d5172e82b86608f8e8c8a0c264bc5b6ebac7372cb2082f7bea2c2d9f577bf96978997c25669ba84e578696c93e2e08ed62d3b14883f4e77dca15680dfa5447577a0aae987e5d95334c37fc432a1c196e0cd3e2ca135966c6cd150e2cbf014f6d5980a36a0163e0dd3d8157b155a5722e61066f211eb66d2b6d8ea3fb82c64f0e164c42ec40d945f517a114a8d8acc75d909154aca6b797ec1f7f9c7e8264a0f2cb194fdad5a1fd84a5bf7901a20b656337899af402d33978706593e09832c987892e09472138d46853c910a4e69f08bf0e11fd81c5a3c3271b099c85160168736e27c2612adaa368f8aff23c4487aa65627733042a7fd1c89afd2fb4967618908d7b3e07419ccacaae1765894917a59830a8b6c21a1a7551e0f2b5e29c0d2698ec3aaf3ceabd069573330e7e35d9992ec5578b2d8d0d7430f88dc25923fb0e4b20dbd0adfac0deb62305850fc32b991d107c4cd132c75459798e7803e0231b35193d3b9435b4307025b800b153473c09ba706b9dbc660f1abc42227b24374cd8ee497bb3cb667e68a35e1e130e636a8bd04f74ffc4899c4019af8738681269a4ef7e70f26b7e6c1c0d1b4a92c5b326575bc30bff580943c5ed8a9b249336344a6075995f8584da2a5e0056110ffa596bf1d48431b510160eef825eece201875b9b3e4bcd0fbd3faeda7fbb19dd06293bc8ead05d432c25a8bc1644beb7e8c1fa185f07f8f172b642bc7f3b35773c6422bc721c406d8aebb30b6cdab86f3fe46994b5b258c09eb2d6f441ad7946ee2fa43b20adce6b807031a97941b1f1b76977ea748dbbc0a6cfca7b3c2cd57a29ee8137a0f797120906d68af395b7dd4df0d6d4689f66ae9296b966d9ea1cee4d62227e600bc73629811619889367da81dddd2118effa81b2061a57b8f1539f3fa5134f9ecaf1653444c67200c332f64a124baa85727094de60831289783d998cb60d8aeeea253d705d1ff7cd7bf9f3d9b37db35887359e4079523eef70ad618220b1fb2be97002600d19a899b5921b488d1720717d9a4c2f1ff5b982296a6bff9cfb1248b846e5a38741afea0d9a1334b94c270b1265e8b3392a7c5cf5387014eb3d9a9439ef818180d3cb5cfa32a063851222879b54dad096144d10976f8f53749704f8fc615ad952049b950be11f06466217a2f3035e612dc4fd0333300bee1db01b2bbfb7fb08de55cc37a3c067413264ed61997784ac3844d67c5daec6d8ccbd98c62e5b29164e4ba751c02d62d2ee2b89095d73293e8843d58d2ff6423c909a00a56b9306ac6c58f5226c0607ecca7e736058f4800fa8fb1bcc58661867ca1ff5d897ff00239525eae547704520f0c112fc1c90deca5fd070d74ec22d6c5ef859082f82581a303cea8d3694486d8322193c3921ec4a57d601f260267fb9067e557adbc77526f4202dc5c2e2aad0f0926ecf7ca47ad36122a3713b3e0cb418a8d7f5c57cd62dc9463537ebf32bf9fb4377078a2c7e9b54f4000f42b67ecabcda6ba1b66579126a8e2387ca3878840edd0260363931ce5bcf63a105e4e7ca98969f4672a76a1cc9325c090142b429f8e9b170a1cf0ac1450c99551ed63b29a48953905a9ded680f8c6265c6034de7049bbdffd26137a50eb4e85fc16c5d1e6e07c0f97be7da6e18d2a6ff5475e66feb53e74dcea1fc575ddb8e49f614212ba425fd73a734fc36a669aa1fad223052f232a9f16e81aeb1d4753b658cd85e2e93cd008870cdee912cab174844a44ab98a9321e767b844ca20a2cfac6662660e267e4b1088262bacce3b37db66aaf7f94a0e12971d8eb3635b9f3c03a89a64ce49c903a03c3a1567dd71cb6be4c9b41c11fd9db93e422e303592027f56f6b2e86cb5b7fdd01d3b33cd36c3fccfc79fce947fb05afd25f867c367a04222b7f708023fcdfa6f01cc9a86c0f04e57ce4e23a7821589ba0fbf9f97ec2384a9e4f7f87a454459d4ad1b29dacff28fd7d29c3ed202fbc6799fb99077943220fee02f65f4ea62fc5612fdf51ffd0af367d6a881b14249f8c52df3a343383ffe74d885a6184e1e9f4d772b53a31d884c7d0e9df2f179ad28f5e766b1f010b201dad16399849db7ee080085a492691f8b34fc314a77aa394046f62aabb26e0dbb1147c641b7ff38f0bff47c47ac5ef2847b314ea1cd28107ab046c14a6a6f8172e1ddd3e4e30dd30506d52a4af0a1cf059eab9606739a17794975a3c97d83cdd77508693c485adb8aef239c1a56b26cb6db8caac6f7f37b2d2e3388c8651f6c6c73e8feb1963ec5f116752c90590276c1d0d4479524075796900fa176a633a2b8dbefa1ce2ddd72f6e78b0183fa0832ef631f48e8b8f5e435900fb7fb8f514739998006429df444ed609c2efc576770217be0c3ee1d5a4ef5fa9260f18b5437a58d772fc1f0e673cc5441c4289f26bd4debee1147b4901946bc9e8717e62f2b2333b3c2a5a7270c3688994ec09579a7013b8b1804a442e9ae7b0ed45516fadee5187f8da19636ea731f9c7478b640df28e5b70ffe1aba3d9da4496671c9a3725a5e4c05cb65f36e0869dcf54186555517ed0b8114d8e7c07d092d0038b0af3a3934b5038a685fb05510402939e955bd76b5ae70b2b3f509f747989f603fd14e0e67174a7eba8f6e36bac9e866e3bff7c7eaa71cad5b061e728b14dbdbfd44e2f60e2e318ae082ce19ba73023d72aa73044432a4d608516b8410b2f79632e20ae30a9a0a4b62a408d1209d628ea385e5532c38c6aa4d272ba6e5b36a33c64242424242eac64ba19026174996a5c45a624d41e3d032281d49d3f0bc7ed7631269a5abfbad989a9309ead8f9ee1f072e0162554af2d5c900c936aa947ac28857a5e45229d12b6420aaeea6c4cc502c9fe2e158187587d7b85c2e97cb1546cd18abc6aa856114ab1646cdd0037b59350f2c85fae118cbe34004c135e425b0aca8cdd80e0e92af4e414f224091105563815195dc76a23752f1c776631229ad4a898564e5bd6621495816263ad3c3245e9717d765b9d14e31c4ab5232e286cd1526b8a28857eca61079091d88cb8788c37268198a5bc0319552d4a15c4cb4fdf51ab866208aa1f4022bed8e6df4a94a6e65ccfb35a18e57f188ed237eb76d18e2cf136abb3b69d94ea5f4c27c373e69bbfdc8e49a6c53a52461ec8589d84818334f3ae5326353b22c266aaa64b7589ab5d21d5139d6d138484e1a22e9aa708cbbec8ab0f2dcc832a8479fda59912f493b122fc8443b4304996e4b31c9e93420ce71c78cf2fc05b23ce7afcfed2c73d0e4d7dcb8046621f37c4ac476d844ecfc5421c92d6d24c98df91888137d2ce57f2d276de176851e5be772bd24d327392e8defab55e8aad93b64a7685bfe7b49185572db1d6cd9fe66c1cb7a87ec1c3241851868c0e18723a42d4b636a6ca0da0b0963d523319fecba05baf25a00922f9f3104b310efbbefa084ad93b98691ddaea42d272db8ea279ebecb70850cd8d55f12f6ad40ff8d57da151d81ee93279888df9e93f6c6d972cad91b8b7b576f06c62122f235c442f379c4fb03bd7a4af506a859d4052d67d42b2412c4de97fd40f07bbd8686ac386652f0892e4137369f9393f7c536d442547538d5ec4f1f6c7bb4f57abd5e9ee50701b2f7653dd0e5fab7253c5537cdb4b8a9574fadb2c820f9ea46026af3e29747bb7fb23deb75e3eadbb8117c200df2aa22f690af97cb054ecb483c58c87b136e74b25a200b3dd55e2f19241f44c67a0a7c35524fc9d718622b6481df8aa562791d8bdb286bb264339116d5b1e6db802886f0b10d35444e63e6c8ceefa04a6e79e011e7132b5881135e8fbec2cb3195c646bbb1097df7cd8dc8d6b39b9b1e29c41e5cd7b5ed7aec9eb088b7a5d43d754f4a3d2cb310bd5777687bbba71c33ca773f2bcfb4c8f69824e908d955911f6f4996cf762c9fbaa14f948986b14293f2e28a9ad29634ee40b919c38424add49172bac28b521b0121470623449ad22b2cdf8b12354a430e54d3982c485375d8382d793992465172ce342565b1a3c3130b415ede642866a16f09104bfb345432026d1bab078b8fa912dd92c61d2837639826d2b45247cae90a2f52491aa52107aa694c6769a4291c988d0a2fa0af9b016de6eeee89ee1d944cab6465657799efff580e5fd86c8f4eda3e71c25cd80e5fe86c8f1703962a99a11295a51b774fd67d62e9e994dc746339e9ac0c39b043245d88a49b33f442256d6792ed4e3acf74d279e61684fd49025a7ab6520948596846b5659a659ee3b61791648303529452ba75146906c53aafa3b419c49d688326c2e14497dce8a494524a299d1c06a43a29fe4629a594cadba07d9f9b9e944e96309e21199339ae0383638eb38145ea9bb3674a0a725ba7f2561fc802bf70ced90a9170a72c0639ee36a8702a109be3388ee34419ce194302ee39e59c66a6f783679fe61cc19427231f28f66c44868642568f0d2ace4967d786cea62914a90deda6ef39e99ce2d1846843e57c5f8b0b830b83bb25ed5e205eea799e07522446810a01e84ec11db1cc6a2527a51ca4839dbdd18dc324a0f5c41450a419e3b25061058e81463348b20a40a319f368a09195520a1854b3f08b11231f28f66c44868642568f0d1ae4f512c549f37a74402810412e0cf1321b76b2d7a3b990a8a048ec44916816a6483ea1682344b2dd0041271b5244cfa3ed20821e920d293e06ba4356b2ddcee38f4ee95009e8b6512a670f94522244ba31d19f7d296976ea36594e96f3b652b5ad040307cdc731e2c2cecf3b4c5888caa53c579046761b9b1027978438df89409cb349bb37b1189f8b2cad346f46cfd51864bd41d8fb845aee3f4b5ac972db1c6f107672dce8a465b7f10b65a336b23368caf9ac197376677d721ba536fc206134090b4fbf5556c541c2b6d3d148d8894345b36d8e3f3078978fc1bb1c8110330f84bc378a9e4a9c45b3f631225f2b900ec91711f9a2f7b18578598a9f6c90b01aa5f44ca89c544e7aafcaaa3242bc2c65c38cc9d31944dffd749d0d3824b51719ab4c3d3c597ac45354d2cd035aec35c152914ecd223a3b321c17664e4eb59281bfd38d0de5efbc422a895e920784ea57e438aee366084315dfc671dc6ac5711c37aec083231020f85300f0e143f04c7fdcaf0996db42249c52c771dd83a636679d773a998684cd918e912f7a0547572042414141c917126592b3e6846a63da98a2ea6c671aaabdb0dd92a93b69c628a5928985da1bc522448f858678555bc648d8a552504cb4bd3df178545b24ecdb104554b942bd402229a97b4a26262ad5df682cd467da681c120b3979e1c5c6b43149a5cf0c2a61f75be228c76daf292b4869be6449f3254b4dc304176ea31e1addb2e91a2bbb9b6a6b3abc22de2d694b9a4a9a76e0b0a2baa56e09ca8b6e4c988ea973eae4744ddd155050505050505050524343af175454b7c4715242cd98e789a2cbf5bfeed09c126ac6c44bcf0c134a332082e83c2e609a89b92d45b0b2f51b64e5d82d55db49a8b9a4c35ed9dd755d87c484b41476d8db4169c6136f3fe630f45ef65d3f56189ef52482dd12cfa452ab5bfa74e8584262eaa492845ae26a12d6b158acb358ac8ef52e44d2b1584bbab3ce12c61ab926f992507cc55218daaf5e1922e9e6b0eb464e42754b50dd52b7c48af2f98007ac2c1dd194c6206de13632eae6c237e2a546974d29fbd4a88d8c7afb82529ae4c54e9ddeb2499692627672720ad3484e9fa474a8945419dc78585cc2a9a5ec846218cf7e1cc731333377283e215eeab4596a027a02ce82a90a9892a12dd8b68d632929f9797143c9ca56cbffb45a524a59474a29e55bdcdd341a8d46a379b4a1a1d70b4a8ed18c716ba446f4b3237e69d068348fe6d13c1a929ef116d91e513c73ebd765c5f1f6b7b35aa7ad564f55bd916cf583922fa94475956afca2e40b8a3869494a9f54eb4cad35d2a68fc6443d975e78e618ebe0f7d50fdb57bda78a9559486b4758c17a45578fbb019484c991b1233193a325cd70db26474754d1260f86d58c1b3d9a944793776e28752d3c524a29b9ddcca98bb4eab01f07c54c12f6b364066d1165e7f8338b2c947c45214d0a45c7801e85a24c509e274e28cab4854aa06e06ac93cef6d8b2c11a3383dddd7d069190be304b1b1586d15a5bc1afbe4a9c502faed3102f558d630b6cff02591006ba2cf8ca300ac5af3e08de9bb179f067a2efe0489daa9c2386bfd4692e8961124a5577907c4520b881971594524af02a9554813f22655589508838e83f0f54854ac2835f5531f25f58291b70a44f3ed050bd0b91a8a47ca24e33e6cd566087f25fa77a6c35d22c14e9055050534af6b7a65634f3ab5b22752c2c0c3e6ddbb66ddbb66ddbc6b227c8ec46aeba70cc3b3fdd8d690363e5bb53a619f3c62da91b936c4db254cbd2972ed4686539645285c8e4711cc771dbb6c99944b7cd7b5a196ddbb6b1e8862ed196684b51d3139758e8486d426d524b53cda98dc8d5bed1f56d6c5de9a634fa3344a4eeb03d6cac6c266c481b4dbe64eb48a45c70903c1d2b6b2e3b431a45ab7d627c5f57258c303a36619ca0abd28adaa4b68ded3458e79b0269e096ef0e7824b963b3b111af2737e68db7d619dbad26f9ea4f6ab69a66ec739235db9fd30c97b968522fd3b9f5721937d4cb786ca8b7a148a0dea612817a1b0b04ea6d2d0fa8b7bb38a0de06d3807a3b8a1aea6d3334d4db6918506f63b1807a5b0b05d4db7112506f7381807a9bce01eaed3266a8b7f1c850af8462807a259502d42bb110a05ea925867a659701d42bc108a05e19050cf54a334cea95695ea85762e142bd528b16ea957158a85772b142bd924e00ea95652ca957e251a1de094549bd934a927a271624f54e2d29d43bbba050ef0433ab774661eb9d668ed43bd3847c02edad1364275cde63a21f2e2f32910f26fc8626fcb67a58664209bf384af8d5b183652510fdfa20fafd51594644c22f10127e3d08621909467e858cfc0a1181654662bf4562bf3112581683fd9e00fb058065194c4d915f5eb3846545da10f9e52c6060199137437e19ce0c2c1b3267845fdea206968df08508bf0cc60d2c13618ca15f26c309cb86cc10f2cb6858806542d408e197f34061590852847e7b0a1596091111e4b7af606159102340f8ed23b4b00c84243ef86d2e5d58f6c11241bffd050ccb82c4bc7e1b8a2858f622e3c16f4f6186651e50d1c16fa349c3b20ed400f9ed3558b00c481ba0dfce420b9601bde1e0b7e1c461190773c6dfde820b968d5fd4df06830ecbea18ff6d32ba0c96dd8c1fbf8d46e361d90f3536f8ed3c5058b681141fbf720a1596f920a2c7afbc8285653d8cf8f995476861d94f123c7e25972e2ce3b1c48e5ff9050ccb768871fd4a28a260998b8c8e5f39851996e9a022c7af4493866539d4e0f8956bb060198e363ebf320b2d58e6f3e6c6af8413876537e6d8f8955b70c1321b5ff4fc4a30e8b0ac670cf1579221cb60996846eb57a221f1b0aca506eb57e681c2329694f0774ea1c2b29008f0775ec1c232d088ef771ea185655f12abdfc9a50bcb564ba87ee717302c5389f17e271451b0cc23d3fdce29ccb0aca382fb9d68d2b08cbb9c6ae61a2c58b6b5a1bf330b2d58462fdfccdf09c7ce382c9b7ff29662bc6205de518cd7d5c39b69bce7e10dc5785f3bbc9f18ef9093b798f11ad1e11d66bc5ca3c0db89f1b2530eef26c6cb4f137883192f43e1f05e1a2f4735797f192f4bdd3713e3e5a91bde4b8c97efd8f0f632de3692c05b89f1362d026f108cb79120f0ee32de4e7ac05b69bcade4803797f1f65203de1f186f33d5f04e62bcdd44c37bcb78bbc6803712e36da705bc3d30de7e52c05bcb781b2a01efa4f1761402de478cb7a50ef0eec0787b6a86b711e3ed3b32bcb38c571a19e05dc47825ad006f0e8c572211e08d65bc32298637d278a5d200de57c62b9704f0dec07825130c6f22c62b9b98bcad8c57d65e785719af7472e13dc478e5530b6f2ae395502cbc69e395512bbca78c574a05e02dc478e5d492b794f1ca3b2abc8fc63b8d94bca38c77d292bc3530de8984e40d65bc332985b7d178a7120a2f1aef5c9a3d88f14e26fb0c8c77361d3910e39d35001c03b25fc00223b3d00f9559c887ca2cf4a4029559a8071e2ab3d00e9559c8890e14c801caf6278043931b6c900092ed4720c9f621f08025db7740039a6cbf869aedd3e064fb0c580094ed2b200152b68f8003f41ddb9fc1c8f665a0d9be01906cbf00048861c9f607208026db87a166fb4c9c6cff05175a88b27d165698b2fd00c83bb6bfc4c8f655a0d9be1224db4f9264fb485258b27d14986c7fd664fbb666fb472ab3100064f5845668820e1c25fcf041e401101284081989158901e004126c1fb6464d1adb2f92451b2c6c9f089c375ad8fe902de6c4b1fd11c0f8820bdb17818c31e8d8fe101a669461fb42380fabc1786c3f84295284ae1041c5f6831c610416db07814b125a6cff832f4b74b1fd2028c480b1fdd71464a2b07d0fd05061c6f63b58a3268ded03c9a20d16b60f04e78d16b6cfc11673e2d8fe08c6175cd87e25630c3ab67f34cc28c3f67f749e56a3f1d8fe0653a440b17d1f5788a062fb3d8e30028bedff7049428bedf3f8b24417dbdf01851830b6ef9a824c14b6af030d15666c3fc71a35696c1f47166db0b07d1f386fb4b0fd1b5bcc8963fb36c0f8820bdbef21630c3ab62fa2614619b6df9279a41a128fedb3a6488162fbe11522a8d83e788411586cffe3928416db5f7d59a28bedaba01003c6f6bd29c84461fb1d1a2accd83eb7464d1adbdfb26843e1bcd1c2f6e71643ee9c53e4ce38b6e70a453f04514251532098f8e43ff964bea5644ec96f4b43be0c956c2d93f0e9c842f2df94538e3f49ec9cb365994f12f13c4b29a594a2b764e72513f529a54be6ec46e32c8a3eae1e5ee7796bd0e819b42986145ddc455589d199d7d6f33cef2d7aa3e779694230c77a9ef5c68b03901802371df86eb035817845d1c7d5c3f3bc8e7a51789e774fc23cb0de453cd653c37ae3edb88dba449f28bcb0577c156e2ca709e36483584e13c592f5e6276b4905b641248cbb096017b1df4306cd4fcfe50346bc2f3b5f4333c6cd6614494c4af615c444f2b6ad0c0fd0464646461b730c9f04a51c83bce46bfe96d75ce9396b92098f773c3a1e1d8f8ec7ef6dc7e3f76599d8afca21fef9f17eea156d6bbc380c0d316939f4ca7129608e712864c21b3787a807ba7a6c36bcf8b61f8c8c8ca058fa02e288f3a0d9820c346aa0c61a7966e0a3f44c4ad18cd6cdc0b1fb28e8495813eeabb7eb2c964bbae48e7f0df278e7ca6377fc538d975ad5b472da4eda4e86a763375e15ab88c97e5d1e1b52f14e3c3a3ed911566621d578e5c5775574e29d8726aabbde4475297aa2f7eea2eaaa8baad109f5fed363031fbfe1a3d5dac047ed512fb3b1adffd4cb6d6ccb75b63acea3ba2e9e43256d649985768cd735ca8b52bc0eb1e88ea8ba28feaa2e5e152e5175e7704967a5ca765edffb38442293f05064e5e99d84bf3f3cd96159bf1cb250244727e16f77f09449f8ee54beb3e0188539e876a313d6f8850a7829cff1f03407b30897db5879107c0e6f066d3d4343dcfeedde8ce500738c545c3329360e8e54bc99141c97227290fc8d4bf1b9949e4b192f0efc64c5fbdce73ddfce1ce4ce7f3f2271f854d70c9abf51a5d818815871e942468b11684ea0340b82a196d490e2c68b376b8899f58ce20c2a62b2df98a4c87a6fd526dcc35b64bfd3ea230d91f5ce636ff8ee1dc33ccf76d849b9b1c670fc02826310fc3413f3d59f25945a5a6fdb2712b8453687cef630ad5422efa4f3e459e25939feacd05dbe1b5b78d27635fee0d0d927d34a2624bb411146dc5ee0b8f1963928f282e0bacda7ced79f35cafc36cf560251748b2afd9c639479ae54ca299b76179e846ddb397ca1c9f67dbd711dd771455bb7755c6d22e5462de5b84dde2ba594f45bf76d3bb735d7719be43aaee36a130ee4ba8d485aca711b156aac3ebdfee657dff7afbdd70e5e0f6dfb9fbc6ab552ad56aa2d88e51e843b1dbdc93acff03c41d5bb1d53a5ea542a4ea51a2fbd5e585df65f7fb55a558e7b87dd65a55bb7f23eeffb5ab6c7a9549e4ae5755e5579aa95ca6ba2eaba52ad54aaafeed5262a956ac5712a95d78ddcd86408091aa45183ee3d65fb2b288cec376e755ed2efc6eefaf5b70377fa597be88fd6798f7aa7d41b0a5fa856fec89c54b65a72bc9e77f63e9b27cbc9b4de832499d61b3d16daeed540ecdef60e71ed7ab689ba6f4f8189e437eff78755a9542ad58724acc7c6b71b91b0ed5f4f05e52bbc8d2aca576863a4f215b2eed5db95ed138f93728a95db61b3ad7a55361cc16fa4f2f5bd3b8847c242ee9dfc42ec73f317e26ad5b28f30d1b42da1705d552c54e45527add0f63b597f56904dbccbb3fd3e0a72d88d5dbb55747a57bdab4d3c097a3d4622dbed294858f7cd93e3a5f649db6efc5932f3e4c93325154529a594524ae9134a2fd7eb89243b1fc4c844c2ce3462d2b0735e9f5a10013448c11370ce30c1a6ccacb758f921cecad339a21802519442bc9b9148b98897be40bc34e96e462d2868189b977e42819da71b6dbb9802bbdd47c26ed86dfb6bbb6b4b43c6d207769ef3de344143249b0d28e29d51e29c42ec5943bc52caf6c52b629845e49a702889961ee8256343f4ae1ef47cc50e49a20a1292a8819df791302076ba2c336c8211b99ac8a1113d15885e0ac4cd880323decd88ce8c66cc0bc188e1921866215e0e43644919d923725b7507715ad0c1a11b08c974a19ab27c7a837aad061faad1f8da32edba9847e3c20be1cdbcdfd606ddaf2a94758f79a685c8ef7d1d4c04da78ebaa1b513acfacbbd7a24d353c240d1791b751e71b1e22dfaa5f8d8582cef43c636537f976601987ed2e90d5c1b1d6f93f9888757e084c049e2f844bf8ceeff9e497f05ffdd27a4f9d7038485eac738d370b3f6bb3ab346fd66a1d45e93c33ef42783315eb127c09dfe5aabb3cb7ea64d5095567ad4ea73ab16021f25d3d12e233e621ab515569e2ac3b871dcd9b75236fb5b96603dbd701a77b166d9c87f431d0ccdb6c77b643db6d429bd02574094dd4444d4293d046da48c73ad6b08675912ed2449a480fe9213d428fd022b4083dd4432da48574081d420bb55007e9200d4283d01ff4071dd441fdea577bd01e7407dd410369200dd440cd4173d0638f5dbbf6fbfda37ff406bd41fb681fdda37bf44fff348fe6d13b7a47bbdad53a5a47e7e81c8da371b44ffbf48dbed136da46f7744f8b2d76ab5bcd6a56871d36d8607ffdf5aa57ad6a557bed75d75d73cdf5d65bd3a63dc7369105dedd77fd7f7de8467ee42a30910e14785f86d3c0441378df86ebf01fde466fda1be99dc4441150622208bc99de4d4cd40026aae1fd767a3fbda1de514ca480f7d4fbcea5d125ed12e932e952e972e992e9b2e9b276e974f9c4442f5c465d4a5d4e5ddef934faa47d227d267d2a7d2e7d3231110aefcf26269abd3f6b4c64df47de00787f423191ecfdeeeeeeee86bd8bbc89bc87bc47788bf01e7a0b7987f0167a077983f0fee01df47ebd3d7877f006f2067a73f01edff5fdf78ff7066f1fef1eef9f378ff78eb7ebade39de38de3edf3bef1b6f1ee798befd69bf50edfe0fb7b77777777997ad4d9de8a58a0b6fde691233f32c32397b0233ff8f0273c3033df4eb2ccccb7a12cdf8eb2ccb7ef5866e62b932c335fc96499af74b2cc574e59bef28e65be9366f94e24cbcc77d62cdfe964f9cea7b0cbfcb64eb83a2cfbb0fcc33210cb1e5816b22cc47211cb31cb27580680e518c798db588671112ec244780bcb43180ccb23f0082c028bc0433cc442580887c021b0100b71100ec2203008fc014361998ce5292c5361f9c56a2c7bc01d70070c848130106f61990306c3f2c82357ae7c3effe01fbc016fc03ed807f7e01efcc33fcc8379f00edec12e76b10ed6c1393807e3601cecc33e7c836fb00db6c13ddcc3228bdce216b398c546580e1964903ffe78c5505856b18a3df6588de58e39cec2f2c69b05ce57b1accb9cdfc3b213cedfc13213ceaf2c2be1fc2096119d2f02cb48389f04961939dfb22c76fe1296c1ce87816545ce9f816544ceaf816543cebf8165239cef8465229c6f01960d9d859c43380b9d839c41387f700e3abfce1e9c3b38bfb560199033d09983f378aee79f7f9c3738fb38f738ff9c799c779c5d671de71c671c679ff38db38d73cf593cb7ceac7378fed4c232f0fc9d5767d5d93b7767eebcbdc77cab479de7d2e85c3d6a35de6bbcab475d83771af7ea51e379d3e0aa7ad468bcef7c558fda8cf719ffea51cfe06de7603dea32de3278588f9a8cf7d459f5a8c778c7e0ad7ad462bceb5cac474de71dc67bea5183f196ba8d7ad45fbc61f01bf5a85ff0f6e23ef5a8b97877711cf5a8b778473d473dea396f175c473dea16bce5dc558f3ace9b05df518f1ace1bea3cea51bf79afe03ff5a855f076f31ef5a8b578a7e03eea5167f17efa06f5a8dbbc51f01ff5a84ff066f3d7a3c6e26d82d77ad46bde4e1feb51ab7997e01cd4a3b6e27dc581ea51a779577120f5a8d1bc6befa01e35156f12dc837ad423789ff9ab1eb599b7081e548f7a8a77d33fa84741ffe020d4230ffe7a907a04e41d5ca81e7170a087508feac70ba9473ffe0fd5231fdfe022d4a39ff7f808f568c7797c483dd271d789d4231ccff122f5e8c67d0eab473db7f1583d6a5dbc917a149e7512ead177f044f548f5d54ba847ddbd9b508f363a6287e01c32f17c20f32752bc0251bc07a6f300c57778e24ec45c8730a78013cfa1894f00cc71587a932fbf4cfc86256e83974b40894700048740973f40e90ee0f2067ce03524711ab69c01487c011eb802b43c014947c0113f40073e83119721cb0d50c40bc0811300cb6340fa00ae5c001b380c449c8995bf50e52e0cf116a89c05da5798f20008f12552aec2d1954479120d1c0994a7d04647a1320b157d56998582c80010974647de798e1c79af61df6a58fb4e63f6aec16cf6a6010a6f3c28a0f0be93c21b8d1452789f81e46d0612246f3b49de334892e42d0325ef329428794fa9f026430515de3158f21e63c992779d00bcc5084000de61acf0a6b3c20a6f2916de60b0c0c21b062dbcbf68a185b7172ebc5fe0820bef2e5e7873f1c20bef2826ef2d983079bb0086f71c186078cb11c0bb050210c09b050378c719c000de5031bce1c410c37b050478bf210001de6e0af05641010af04e8101de5a18c000ef2719de59c820c31b0533bcdbcc30c39bcd01de2738c001de2640c01b0b0420e0ed9480f79a0424e05d0205bcd5284001ef2b16f0b662010b7857c180771a0630e05da3e18d86061ade24a8e14d450d35bccf34e03d820634e02d82ca5cc4016f330e70c0bba9321779c07b8a073ce01f40e0411080c05f11b8071188c03b90c08148400207b2e11cd860c3c71b5e6fb8e1bfff71ef3768721f4d9abc070effc10187f398c0774c600277e5701d39e4f01c14380e0a50e03e3afc860e3adc8693f73871727187b776d8e12c1e1ef2c0c3c11efef5d0c35715b8aa0215b8f7e4dd9327457cf85639eb03b53efc3b52efd4028b2347a1daa7506747525178929ac295542457a126f992aae401a82a7c85bae42cd400bc85bac25da82cfc85dac29954170e437de102a84c3e800ac363a8023801ea005e801ac30d500970196a013e4335c00f50653802ea0ccf40c5c081a8177802ea01ae808a802fa026e00ca80a380d7501afa132e00da834dc01b5863fa036e010a80e7804ea032e810a81db5023f01baa047eab0d6f526f380ef57e02b5c973a8389c027502d7a1e670279502dfa1ea701eaa93f7507778052a0f7f527bb80fb5020fa202f1a29a81b7510de20da516bd3550dbe81da53694f7516d0dbca5d48ef216a2f6d17b4a6d296f5a6d21de546a4f790f519bf6ae529bcadb4aed21de44d4aef2de406d2bef2bb5897823d5dec01b4bed2b6f0ed4467a17511bcb3b4b6d0ebc8da85dc4bb03b5b3bc8fa86dc43ba97607de5a6a1ff1f640eda43712b5b5bcb7d4f6c03b89da48bc3f507bcb9b4bed24de4ab53ff0ee529bcb1b04b595de4ad4eef2f6521b04ef256a2bf166a2b697f797da4bbc976a33f10653fbcbbb89da4b6f276a837987a9ddc45b4c6d27de4fd40ef386a2b6983753ed27de51d486e22d456da63799da51dc02f587da656411f913641132b5437000d429abf384cab31f2a5b0bd4b614ce9b22521691f7a15ed5937a7b7accd87386d82118af672b50ef8e1eeaad3cd41bb443bd22d44b820ef5721a0ad4cb58e4502f6b31817a390e0e35f6baac3ccfcde5cd0ad6ec4c8fcba4948add67cf0629adcd20797a6f498a526eecbaaedb3ee946f976aded1c7b4c5043438ee51a0da6a4b024f0d2d49a07e9b65191167d594009934af2352fbdc8a0297fc0b3fd58ad1f0e48c27eba53db7dd54a3228fc1cc3f1878ed725c508efab6016ab6e0553d048affab089f2468e9141f35c954c634c3aa708613733dc797074a39ee442ec3aa674eb10942b7479f2e459c352d03583e6b72f498996d3cc41b268922ca771419375594e3347c97e1204a9e7f5202db7c922fa4297274f9e3c96ca1afda0f8c033d007d630499cff56bfdef779a01b4b6f240519f3948c8c8ca0cc689a336c2ca54f51f60e6d4a67d498c2c97edceafb2ab310f755bd3f30adbe74e76db50a917ce7daf7de40192ae9efa09c3d19645d0c5866a1ef6c3dafe32af3d336676f7d1922e919aac076ced73cfde5e863b367f33190284a97bc7c31b17cb6419af45ff245b73be1f89ee7799e373ae9ce8d972f0f8b2839a43d6e412e8f4eb8dffec6bdebe5f78f4c9e3d3ae9c62ff3dc38241ab9bfaf8d8920403d7c449708413e4c2ce8646e67ab8a420f44d18c7eab17a04ee6ef6aec84e8d9f78f3e0a1041e499d14b299ad1518af76f54051185f3cc683b66dcbbeae40b3752a1dfe848bfb514ea92b28de20c6ad758d4dddde604f71dac6137dbed8b028294d27b65c4db48361e0b6998e2eaaad65dfdbe6c657d1d38437a1b97adabde23fe6bf560c5eb60c573e802dbd6088415c7218f8c781ac6eba9c62bb6c6ebb2977bb0adb767637ced1945c9c4b6c2b3dd5867d528e081289ab16a94f04014cdc21104c177f5c06d030fd6f9d50ee4c1dc23ca17730f285fed7dd543970c6145c27ebcf73d2e810be4d836f2e89221868858a5d55459b1d1c4e65a0a47e8112dd48ecc22e5919d340d8f899a85e4cc42e575dca6f23a6ee3366e3b521323dea6d59ab24c6d63b630148a9fe8c6adb1fafc3eeb8adbb8cd68dea10121d16a4e43947bba91c6c7407753a9542a9514f1b692912d3a7409d4c87c1a6a0926698b122d4899a6eee9d261aa36caa9c4529930536dd464e7e7b72db2871509e4c566b14d5d421926329a9bd7711bf53a6ea374a31b35236eb449698d7545f471f5a0947a513cd125fa8822162b4e3d96def5571009eb869ef8e26c451350525df27881c414cd82125c7102d55f07fab9296ad4882237e002099e30e3ce9d1a9c2d3a4e098628c36d407f05a9c5b1d495a666a62686bd1fe2c6f8a8881748ca095296454c230f0a51fe05615ed0d4815d3391eadba9f77d2a90c71e32625f4e2421f7237282deb9da6db77faaea4407cb2ce4852dd8102ea1efd1c9e98ced17e86d902fae6377d85600b23dd2d056be4e464937f22563205e3965e5edbeba6cd25d757939c544df89bccb7f5e75d25abdab5f6deb852fa8ee39a971b22acfbbeab6b32429f516f9e2a6dc9ab26e916d24f912af8f9ddceb77b9362903dd81c988462b244e4367caf630f9c7ac4d973883e4dc7aba7355b008830b7b452b3f44640e2da16285e3daca197c0cf435a5cc3368e41f913da5837c4929a59452524a39ca518e8e1b6b4972f5e4eb229501d7adbe6fd5715b70ddeafb561d4746092fc65871d0b67a22b9aee3c0745cc7898053718d245ff20c400175f1cb63bbfa54dca6aa9b9d96ab9283b6772bbb6d392c11adf76f82aa2a2d77014b83c82039be7ab85c736b8134c80da28f1b6f7e612d3aaee3622075a8604804372052a739226b0b9bafcc17a74c1565ca38f1217dab8debbaa61903c7aea90b2ba35a085729bf54973eaaa8de367eb5eafa6069f3aba7b7cd6ef6e7c641754d3368f3d264e55d2b292dedcf8d72e3e6492fea8ba96293c23870ec681dcdc9a339755eb7f16b3b5755b4190b3968bbbcf75d6e38ecf6db217dde8ae3d7eac9fc5a0eb1dcc675ddc6417553e98d1d8d45292bf148b26179ae6833a8a3cd8e36c5710176bee9d82cb4c9e6cae24666a1ed1b1de9ea89a3ab21bed0cc102f065f23e594f21e0bf17f885c9879da59fa985655acd2706006ab27c4d5192b17889f186e4455175f1262f7b45a23f6a079126d287186e821b1720254a24c14b48b2162d308b4cb07542a88aaa65ed44694ead5f916e6c73cb30185d149670e49392a7070557c1ed42a74d32d9618737e5cbe1f57135278d4c86e35db30a8a28509c698f17dc6886d025b3482273450a60a0bd8ac51c1ec6e4a631877a6382171c1040b668d0513519bc3cb3651fdaeceddcfcdab7e64aec66d49be7adc94eae66509f131d967e161d8a665d3c262b1865879169494956729cd580e726a543ad0e58b1d373379d69284b553910792d89440a9060225dacce4596bac3cab36639b07a478c1115348c869c14c9e55022bcf7223612c2bcfd2c2304a87ce162bcf4a62a211ac3ccb8a8c51cacac232b2616dc654f040133058811431599a98c9874e12d66aac7cf8346331bc69c11466d2cc19c365261f4249585f61a54bce0698c2f880185ea898c9875212d65658f9704a3eb42361661846cd983963e5c32626fac0ca8761648cd6c2a419a34a61d48c51248a48a34d1d341c5063260f4a49585761e5c1a9192b12e20e0bbcb0d140131318b334563e349ab1a2326a8e88828402178860aa6b563e44920fb348581c86512c148b1c2b0f423151909507d924b9b1f2600d74b23246c41b33ea8051a74a9e993c4893b04663e541a41913d28239456cd1040dc07862269b04561e549a3186928325cf962a63c01c3193079724aca9601a03365db1f2e0990f0fc3261e3c694cc9987887895e961a7961e53fa5192bb2a2f4654b124bac81e68c99fcb724617d86e7542102323cf0e48406accce4bf2609eb1158f9af3663498cb278c102355858d1c54cfe7392b0168195ff9e68dd4cfed3c2b01927ce16183351b5f2ab3b3336a3a23ea3556dc6363a5b8e58a0e58a193833f9959384b5991288a001ad882eea8400895947cd18c389521bc2898a1564916626bf9292b09ec2caafa6244c7e6547c2cc306ca65985598d593531d1adfc6a8b8c4d2719d42b2f56721a130cd18604429cd1812a3379d51d09eb32567e653463322c45c4b1435303c6163332567e857486955f6591b1d54c5e158761b38b8a8dca8d0a8a897e587955d38ccda525556dc968c6188e16567c61461a12ac19c14cf6182bd988096304493580b26606b30ec18c711d19345144194a6d8cbecc5a0a2baf6212c3c3c3b039a1a451c78e84f11d26dac0ca7b5033366993163583b17559794f69c68a8838e3022b456c91c3549b31cd18d7ba68b3e45403830e9899bcd724615e6dc6f84d15a82ba4aea0428b9599f724619e1b2925e51949d998d7c4443a248ce53b3bf249a963c3b98162a21c569e9392b03b12c648302a9b9ab85a13b7d9b9c34438ac3c673463b6042b1043cd192bc8126626cfd124ac9fb0f21cd28c010983052880228618366c662dc6ca734a3306003370e2905933022a8e66f2dc928475182bcf3149983c3746c2ba19934a4a514565c450a38a295d98a9c11a33d94e5816e30452a4d0b860cc0ba6ccba0913c038538416a53388e862d660acfcf68466d3c230094542f1b19246db8c588d140ea4408a285290e1c44cf69265039441c118a42eb8987367d65fa6c8d891b09595a76618d65ad02626fa6caca1644b29edc8c3654d1934a820a366c6849548f2348b84d98075970935d9c8582f2db9e9a66e9a35f96934634557f07c9962c454139e2a66f2932661bd8495564861c419222883036b2c31939f4912d65eacfc549a3119cd0e9ea9139cc942652695b0f29309092b3fc74818aca934953ad2ce1d269a5636529384b19384f1931ba8103603c7d962e56592b4226334cca07e5416db77fa3012483863e5bb36634fb2e8428d242e508caacc6483004a6a4a4a8791316f26df63ba368fccc03015bffaf2aa3a8b84b5ac7c239dd1c5ca211584200d0aa0349569c14c2a59791d666c88121825bec0019344c54c7261010c2e43c0c00c9d28303329caa82943849167032420a2ca4c7ec0ca1384e00b284d8881a2a993b002089ff0a8a44b17094455889899010100000020000316000028140806c3e170602c8b5451f70114800d888c5e7046170844698cc2300821848801060000004144046068664600361bc90fc54ccc6f73f94ded1658190351bd2d5a70dca9c95f32f0333690455aeb2b00490be5b8980e8da8013d086950b11ec2e471a7f66c39fc3c46dbcca0647e3cbf1b1f34b6f6565bd91b3c7f66ecea2d2c8b2f680b11b2eb4337b4f931e0648a0f49b27d26e41aa33848f698a3cdd8a3f57805d99d11401927edf2c8b1d36e40052338c93c0754aae63196a18730b4acd69f31e8b6c8057186fa41b6fec2bbf854408c3382ac28c0a73a9e806d0093add63d7d4e27b82615c27c5136dbfb6d5d8eb74d21b4ecf7fd2a97c95c6258c528f6981c36d8e2af66f2d0f3d67c735cbd2d7ac11bdcbe67cf8dd61dcc8de4e4dd8947d0070bca6ad858f2af22194f5da6ea15e323b94e3643fb46e867f7c75084c5c3cca17248a923221892c814bc74cd5c0ecede8ba6be981d9354e56968dc9284c882aa93c0645def86e496cb88a1002301f954b71561f5e18ed002df49e27bf41782400b86940ce60b6e32999a4eca91a938f6c187973c86160f77af973e52ab90b7d2738b73d60996f5d852dfe60ea0116c90ef9dd15c5ed42781836203f821f20bcdfae753dda56904dd721ea8dac9d15d985be90ce8c54a2bacc3784364d4e17c16e8fda9ca534163bd870e8669861d9d99a717fa022000d57b4258df0ccd5451977943ca696b19d51fe5653a8fc6be837b0cd09cebd543eafdd1f3e3d6aa18359cc4c5967443fe1913aec4b28b6b81ab6cabdf6e6d36f24b563717ac0647b3f01f3dd7f5080318043f990c643a2ddd4df258ee283ebe378581455e0366b100dfbc05e895ed2cb1212996544e900463e0541281b3d781380a000414267fb388ab5aa9201a6aaddc73e8728ca33ff365f57edbd8e71eaccdd72a26848de3cd0e0591240510088006b37ffb5531119dd15bb68e7b760efb5921a6e8e2b4e78e911c1971136015a13be2e380a4e598ba6f0b49278bb89008ca85b9249e54ea3b568a1ea1023b632a6203b040a94d8216f4339f7664b41ae2587f49b0a0f6b5ab942094a1ec49e05260a56103f474b20323f417ddac61582ee55c5d42df8b373afa591a104ed3730a7d5cb4e6fcf8143f7f5e199755b2c3a3dbf4c60eab2017713416033e3e9fe7eac72edfb6f80182c83b089a261ac3b04cb05d602a29b5cd68997a6ca14afefecefac56b876adb73032f341205eb53f62ccf2ee4d0b411e3df5f31d0d7618ce276b693ba387620992fab45dadf370b9541c642ac6e129c4115b10d40789dc232ef233b732e6b1abea3c8721cd6154fedfd8a04c02388ac3fca5a19e307b70984cf008a9ea221a51bd2d57cf44a8339381dccc1b4c7123a0bdb082497dfd74f75ab1b8ec4005def07ea5caf507c755e35e074c5189c5d1d5db3670be19e3743f2894316cb7acae04c605038f180d11f794f5aa18a27ab8bc3670c9f7b8030340584b952945acc4dd0d01f33b99cdc2a213049a07c5eab21246367b806bff7bc7cd457eef6d3105c148dcbd1252827918d207ec0aff7ec9df93420324cd83fad6c20be12bbf2b01b9bb595788ed6861dcc0c8414f0a4f64c408019cd35009ae0ac913248386603a97e3c570c667e1b347c222be962566d9881fecd576b0006098aad58393a044166e15ce0378712d600ce033228da4ac2661279d67222fa0575d71a247ce21a6361d9a5e3c8f5fefcd332e58aee1571b1a52349d2cd20946bea39ae0ea448aaf6b8a321f60af11e1069dfdd4583a8ca68a9b5f4fb6d3032ddd35b641dc9e3a9a65bc783ee481cc06b030e56cb73c176f0511306e529fed41b913db13e11959f9ba75f54e77a04aec7c63fd91ab67587777d0c6483bdc75dd0fff083bba9f51680dc69c2f87d990f229b62670481558746859b24384a3d9a99d7b7daa59deba0bf6649eb6a8296ce95bfec8d539d3634dbeb0b085552b7ec18d14868d248ca46b8afba2af3812a488c8f142349eccb5305eeffd824231230f202d35fad30d24bc64694494e2026422901f9a718d7ece3c7f6fd08157401ce077b0e2c752cb53d15249cb72e654bb1caf3fe6178c235e4450e68f6b0415b69e03a74af88d253b1dd64023f9a03e6b517ae5e90adf489aa04bb82f571097d1401c7a218f692335860981c135cccec562970358710f268c66fae342cb7baf1e8d1194b27bc7429147a366d3123bb556fc0ebfe0887d384083b000a0e2dfe38759638a8102177109117088a0fbd4c6949c13e83c7dc661bd2275490569695c2ef2179f4b8be02a221b12c69eea14f3989c72a7783a1076de9c383b82db80c565677088adbbae745bbe509e7a45104ec6c987edcb16374f1167c1ae657672c9a90c6f780fa1443b616c1b5e81e8b69ca1cb43178954b55e2176ce541db81c1348b115415d300eb8af82402c65f3ff9485cc81cb723bc4c77f7f8b95fbc51675e0b1ede5ced55ef4f0c01e73134ca230a0fae9a5e324fcff84f6b2df8e07e237ae9a9c87817b2da642a6fb4d321a73439a45342d0897821fcb71526700ada0963f0d2e1694349d70be3fb2493cffab09f14547b13b8a72f30d4972bf422884b2cf921efb9bd8151445a0326e8a6f77549cf8fb67418f83acd65ab9bf4eed3007cd32650bb7bf2430a674a7ee34cd9360d3898ed608ad5ccb55ede1a88849f4f69c55888de418ef52c2ca3a0c2532fd41a494705290368b37a5be52aebedcc312ce5baaca8da39bbb9b3e0118b5d5a8dc90321bfa164c5827497822be7116045014a53d01c03442122a0db8006454d4c730aeab1453e776bde500bcd05855045e9f84701d73c34270934a1b8fe262ba08202e638e3080ecf5f9146b20ee02642bb83176152eec5a203f4dfeccded4fe0c47e893ae811f12980b0c750ab772d3414688d8fe67df95d2591d95446e23e79d3b8a261da3a215dea57d69ca8a7b1b997741d001e97727e8c3f4a74d52501ada13684bd3509adceccda86b21f34144b2a415fd8631ef86a0c4d0d32de425637263c48ec9d06fc3441cf36fa642101777b18199e49fa732bc03996acd81402c86fd5761d5ca01530592e4eac0d5d058840a3ee83d57d3d2c1b5fb2385ee9ce7d3f2ef2fb84b41400059c623f84caa6e43b16f25001cb90534c8275ab1ab9f0fda87db940f4a429ddfe05baa88ca24061f427a2e65f652334f5f27eb9a0c2ab0372ff9764ff787be6706c143ee8e143b7e9a05c89d7abeca4531289bb8fdee99b0f3d0a2fe914e61c353228f48634a6194ee78ac2739da4765353fe4daf891070c048fdf0c989d2eee423fa4716cb1408c0ed23c287f7d79208228ec084210ee3887ea85d6e26f043801c0b4b1c413dfb79936e9f1974a85c417df72904b1cdbc3679f104b6e9917eb672478433f143cbd70f6a9cdac6a63cc7be4c19d4503cade1ded0b25fae22fa422194154fe7db51caa829368f01e51f228568bb692d341aaf0400093fbb46033cdcd5fa64fb01984ef7a0f1196b9f0e9ac356d9e2ecab191a653595625f2a412c717f873c9b7f32f4195b3b9fed5718dad1606f50b53e716df61a16fb8576e4a6b906d828c575b251d88d1110f3961b3fb7e74008556ed50233bcae854f78e96837bb9c2777fbe314718d4759463e0a1d136dccc4e054cbb8c889b1c72846e6abb60b69ab3623c60406258b6469cdde28832b060e3f541dc24171a7c2fb9a4eb2f40ef628b79ad5ca6241f16bac76f4c8c6d752b0a3144fcd1b62a0db0fd4fc99147aa72e81650174f4d2ba19542a2ef2e5713874477722ba0fc5ff81cfccf0885b3a015ec400b12b769e2f469bbf5a78314af64f4c1f0460ab7a30e60f1e82bebefad895ae45a931daeeeaf2d0c519b6816c090d1bf1f373df338fdeca5bc567e5575ac8e1e75273afd52adc609b15b0e552fdf1b01ee6ee32f1996453eda38bb0c0c50300ed6866dba9281815000154fab51f248b10bec2b643dc32fc967c6b48fe21bd11f592b3851de809e10034df75cd0538c0ff178be88fcef82908a3fb83a8ae88e82b9b455e44311d9cfc70d0d9c9da2bc65fe53f054e98b8739860b004dce1ac54a952430d3207bc26c653c055b191a633d4dfba733c4e49418d4a29348acdf4bf79bf84e929bbf03b3812533968a3a96d9aa184172e9f8adac2af0a48a59f6dd7fd00b22e24858f36a0d9ae026d9e40afbc46f701a9aead557924ac6ccb5e1b4f5617d9fc9cdc3113ca6950d9068d6763b8feea4a98d39e009cacb1a129c103f951151d05a96c6267cbd8c1b4040a265f428e070a0e059025fa4ee733436441e4c416071c474cae3a839597ac7601da3512b2693905ef8fbfc49372c10d8935702b0829d46806d75d74dc59ed6ab6118f3b1978e79dbebf3a705e7ebed564f48e77f838379e9bd3c7b6f093b2a91d08e1230c88e10fdcd4bf28284091de464d6c09b5578786c1d07ee3e9104ed48bff99fe9e8f69dacbcfdef5f94c783a748be18620c1bf2c29d1d06909c6701c83f5d0d30a0a560762b83bc3bd362d83580ddc8500a622663d11eff243131ff48545fd73cdfdc100876950259222c9bfce8fc28f70bf04e2ec11964148439a2cd064b53c12bee17dcbccc7445466ba9e7ba2e9106673c9898d2e95dee0d645d73e9418e0d7258edbafa079da67a4ef663fb4d1168a977b01b85d67ffe36e52865d430dc2786c378487ba6e846e9bfc0ac8bb6fae5b25dc8a6e2279a3669b92de64609573118b10c051033eaa187a273c6ccc8488641b3119e9434fe17ef719b6a7c2534ae1847a8ceaaaf0e665e5fb3e1902ef303cc28526ccbb86bbd85ff495d5bc149f956be105457c77c879d66760cdd3140efe14bdb00c429822568c74bee0a5985038da6d2f7462a506a090ce637fcaaa940429ed3a2e7bc67fa04e065893954cf0890eff1b9df22f93dd6d1b389cd9d0bd1c9db58323785a586999e4401de03c53b8f9fbca20381aff7b6d5435575a9d6219a8428623460334fc499fc2db46d0c4897ef9e3fe5d13dd43209e6896752f87e846a3642515818d533b848bece6786a6a342b6074e5c23912f9dd4d38912366bf0baa8b085b1cc8b7100f68550c733d2b9b412c8ff9031f29d884fa33529b18859e36e89709392543fa31e035e4dd98b90d1c128059dfa572cbcf897de0daefc91e3beb0422ea402a8ad8324ad8afd9f96fa023e1091ccf58848c3fa1fd98eb0287d40132ab6af31c444aa56a4dd404154c58045fc3ab2100fe398341ffd4447725a2db79be6b5ae8ba4ba265055aa8582a69abf241c5416faf74f537a16bf1ab45e99ec30d8a8f78a4b4b59e6a4c00ae6dc0a3b2181b3dd707b2262b81230acd56b0a6a3a11f734acc6c044e2ad710b180ca40c493beca3b78ea2b3e88503749fa468d7bb89445baa167178c52f69802bf08ad7c0bbb711cbc67242ca8bc8e5e3b22400097af79d7171446daa115138a8acb9c756c4a4a9a0c4c0afc1ef70e7782326d8ee14c1f873f6d9a0e27ef845660f2354340317999aaba7c72353baccc05821c29829af1cf36e13cab2893e7296413c667b4fdb9e247c2de009762c61ba0727692cb0f76f90cecaea812add80aea8d7506c147798938c657347be5a1c8c40a3c7be480e686bbd35110d4209b07fc40a24f5168fdf85382533f27bda9e0f70363380ad823cec60db5efd9448af601c801f9232434ddf261a3677a73ce61d40c27535aae3e4c14eae0ea93386cd20031e3836bc27bffe9acc556972afdc523afca44562d66c1cccd5fae7a71ed8faa3dd3855c527623a934230bedcd390f5f38f03f15fd18c456e5bc9840c72db92d7c331f830fd180b7d5f22849786b9694c414492a87d27365484acb8a0f511cc54a39292628472dac94ab62b9c28632f16994263129313ee2282f82832b9135deacade795b5cae318751710dea6ea23ee61fc5014bbb384cfcfe531e0e67567b152667c1465218642c9b8f08909e357d029a1d200518d5a430d5baac6a68e796e3dd26037197d57e777e499329170d8e56bb119f3dd7dfeb30e9e22b76fb2bfe30e3a3e01dd8c70b3b90cf29a5ee361ac1d438257ae2b81b2f6638d83502d6e3e49534a80d206284501996253e351257c4a568ec617a74730219a69e2f80980d33b407ddba9be169e9ec67c2ad6a7734dfb7c417cb3fa7f1674c51ae3312352a1f390f1c62199a879c8a7371873d7965360e95b76c53a23520d1aa536aa72c18a0bf85dc414c4d2bfdf44815fed07306a410711cbd735383dcc010dff3a78ebffa88f755a5c82c96aed69efec07ff3702190ef6e619f299908b0e54cf68f02e5719fc3656374427b8413fe3ad39df85f5f75e42bde3385486a60213c025c122dfbe20bc65ea228696919c59f69b6feaa95d58fbd290c8f6398670599f40689a450e157096903413a893d41b7b08594ff67725f55bafa2703c64788a72d827b95339c26cf6ce1bf471be074f013b97b49535a94cee7736317de496e7a2a1c3dbf5b70912fed8fdd14cf412f7e9090d440973c744972a4dd9516bd921a57d3896ccb396762c294e484994bf96309476866244cd15c5ee05c1c53975a556573e2fa236a9e3882b91e75e3e777a26fe1b99ed2125559a14840c61a5bde10807d4daa79adb4ff8d08c8483735e3feed1a9f3946aac120f13d63dac04b0ccabc403c03b70ea1bbb3da0188d9159c2c6a5b78647d5e28f1bd0ec47ebefcee6862ef30537ba7d9b9bfcefcb324829319455a173d6fcefcaa52e619efe379808073e8a822be124c66a946c7a33683c447db4cab8783dd31691656c94d56114601f8b5c4b50ada84971737a0419956b5c251e77e9c5cc414170a00cd2a36e64109baef8aac8d39dc9da209766a40c9f646b661c5d9047788ef7a857b40b4f6437d818b5dd7882707de9bb8ff643bd7dfb3756a998442ba1ab438cac53701903f06b8122e8fed93b5404b70b964085f4bb2a5460108481e82d303ae214ee4d01596caebae0445281d4abeff00a527c275ded3579414503c38f7a82189a0d582b2e9f42afe3b84528c62a25a7e418b63c876ef84f3fdb1186baa986b4ceacc63d8226a68de07daa2e7da59086a021387ff4c0c9bf6a4746caf7a2334490cd475df4aa2324455b698095b270ba1dab491751c29899ea85239296e60e70124e274d5c3f7a1ae4aaa158f3c00bf7f6d13a7ece60316b1fc3ccedd87897f69c71cc3599948b322e653546594a926224114ab72fe51ad827df1d22509112903f25f5aff5d21cd58342f44bd775c006f88df50ffcb90ee5f8952c18db9cd39c168f83f0dbcb5000c08d9e1f60a50cf20d22a153b749e5b174adf9bd17fb8411ce078d8c84c22e2b350bef04872a97b49aac80ab134a809495f4bfccce32ef10a83d9fb74765e41c0d6d4b15fa50f15cd23d9557c2384e0f696ec85fe96faf1cbb58fe9c72ee0219999797b7c2992abd30a793ebb20b49b250e7a54732d72d0cfb411500a35ab32260ca0501ee27a04f8b081b6a04da0d583a0f17c6d4f291658dfba3085e022e519a1b17ee31c997d3874e48cbce1566b32174dc64b587eae45031acbc12f5b5be332ae03c93f987570d10dfb30d08ce1a7f2566aac08fab95d7900ac5cd88d0f703aac7342ac5917243485b2421dcd7538d8150bb0abfbff32dd93166fff91deb4b9fa0d7a8cddfa8e4dc9d82892d4c3db4149d87bb11f48705d0628ba9e409e80a15c991acefc05ed90bd6630cc4bf6358416b9e5a872871c8f8e9a37a9dff043dd0bc055e7033ec715b9ccb16dcd9ec190f4213f58467e50865e85ca358cfbe4bcb2c28cb174b5cff0da6de42a73b6d2353a605444e732f8664a81bd5b3571ca5c891e6be6b743b4f5489675c025aa9785e8da4a2d6ebb495d1562b78d0b802239e683c5188510b3f15e98ae99ab843a7fb8d467c85a036044febeb01a40212e9877e99e56cdbfaa6fee4f5593145cdadc8fd64a17904abf963e5168b3e51999510d4a2ae1652e5ad94989b8f3e1bd31a43376c8c9e4e87462fe35d0b51fcb580d38096b349617eaaf3d2bf3b2a09ab434eafe4f56b46869faf2024a493c5d1e0a34acead44b7142eeb7f924e239cd9adc458c15cdceab6b8e595ec4a418e75ce4a532bf54fff27c42518b2cc55a8f42d262a2cf183951e58d741e79c0853ddc63c39aee43a54151a48d1c1f1c270d8fbc0a288ce01a23f3c1aa84934291dd0c53e1a0e259968bd4c9319c30ee3747dd3653d3d5ad4537c38710f152fac83257ddf5ff51b82c018381d65f7cdd1ee1932fc2280e24f72f784d52ff1e577f69f477d48fc4b17fb6d10184386b616bd4f939c05d572511beba4ff5c7ceeac8a515356d22955564a16c21cf0e2a769d775d07c4250fb883fac6a101a04b6c80799253f598ab55738b51b160a0c4653e503c561d388a9bc0081d8fca412e1d018a6cf1482744b0403749aa93e6d0411a2d971bb870400a5c6490f2615295762689da1c9b25303088e598bc50b000aed5d66e92c00c3b45e8764068986860646bad696644a2160f3b34e0b450090be4b0bc42a518cf45325e2b1314c136904e99e0a068814a77dda49224483e17d0f29084a8d103e4c2a56afc410324793e5b7061010721d8b1f489128d00814f11e4556c7d7b5238df96064220644912d5791486811a35e64e7c648baad74e0bac6d1dfefd14a01a9ee42fa328ab4a68e547126e970f7cc52d9094a9354291922b952ea2f4b3cb925eb7497041540e06662fabb645af966aa4e9abede9ad66e9b2aff4d3f474e2b8f4e856ba7bf8fa795b3a7d2af4f0f21bbedfc40b9845059cd504c88285bae2851d0280e7a94e58d94189e14f758ca6a963025604aaa8ac06db1902d1b97d5900f7bf9699f3f6e31e75defc0153af10a6ce7a104542eb706e18410f40b7832debd9d4e6e9fa7ebe8f079b91cdc5e0f97a3ebf7723a3abd1e4e779381f841f806113bc688408584d729b12f9908be4e381a8a31679bcd446a9a8018a899480797a622324ae15efc3b231f9a0fb1032a10f7fef80dfbf05533f6eda04892199977fbc9d908baaf0ec00addbce3117baf2d621f6186b2654122c199008a48fc2c9b6c8e44a461d34449cadc26c46912e1cd954c50f211471ec994f0bbc1f1cc4a56df4ca065c9f354a214e312a62f31e448741113669518d35626fba65d9e4213010688b9d6e4cd83f43bdcc425339634e2a44adce10aa29359ed4e9cf424e751977d7df2ad259b2e409967502cdd1c14321412cd769f4491a1f300218ce2f628c957393724c52e0e873a550a134cb1c67644379b62417c55b5f314be503197aeed432acc985d3e399585565c9e52151488e9759b56716cb0926b56c84c4bbc205b5922b952c52b7fa55bddf02b2e112c14090baf77ab0f8a653d79ab65c882f6fc78d7ca528a9ae59b3fcb6a6f6a98e5dcca5df0f5500c50be429c9986348e0de17b3b5cb13c3cfe0651d20db1568744853e89cdbc13033a281a59f11161db478ab516491e84a41d49641a589161e847869ed0a8b0614992d18d044b4e828f3c9909186538949415e1a92c04adb23c109649305986a16f590f91cb32a62f8361c04c8516b31e77ccd2786626a29c59089e66186b95346358c20564b9eadf720133ce03a32ffd40eaa4007fa7062b9e32d8f62420e05300d84f19a29a4db504f53a701382ba50148c8652f012858251140932a308908d0280825406245208f24941a052aa8074a901064c15e03585c06eaa05ce53118c4f018043a50029aa0e5ea932584ca5204755003055034cac32f0b4aa03fe2a0928ac2050b36a80a05500db5630d05b69a0e9aac1b2ab04e65e09087d15800bd6044758167c62b500164b00842c0044b27ae09795606556e0a56b4f05b42af3a5bd619cf60497b50b34d71e80b33de32cd60454b71430de2ac1069706345c61d7b33d0ae5aa983ff794715a08a47551b0b02b766ab147e54943185911cd7804234dda87970ee24db202545d444aa944d5049b55f0548b1ee682897b6d85b0a3c898ac54560b3b5325a675a16b01e036fafd0d0620b7bed01d8ceca433bcca514fe9cad738fb85dc01298741984be1e27478764b94fc70b1aafca8708fec1c2803174bd20913e2a6b939725e17a5b97432796a51150eb7c37f37952b6554a1ac08fc13f065bdbb5d9e5e5fa7c3dbe7eb76bc7dfe0eb7b7d7c7e9f6f27ddd2e2f9f8fdbe5e949f82cbfd800b28f2764c9585f4d7a5b85a20dc3e0ba7a0b6c03a690746f18d8e6ff216d6e3cd8ce1c036c962db41d9802a4bd63689b9f0fb4bbf3601b660cb15bb6806de00a91f60683edfe3ed0c6cdc3ed9831806df942b6815140fa3b0cb6f1fb503b370f6c63ce10b66516d80e4e0169de30dcceef03dadc3db48d1906d8975b601bb0a140253190af32949b6f035863429e912cf2f45d6997b785981346b1b0cd7ae02a643ca15edfe7974a4ecfb731a1867af9882d805449fe826839efdf8a1c9cdbc9980ccd723c431a5eb93098d852b718ea104527810797a21072a0d8061fa66c32e309bbfae1bb665acba2ddeac65eac90d275499bc0aeabc87b07b6e4155b1b52164c3ff1b349bc1ddb7fb110e376c8fa202784aa0b418d7c802e3edbda70dedb1bfb66177cfb3563ddb91fef9636dc76f7c5bcbd13cf7e6d9877edc67fb305b77dbdb16eee8ebb4f1bb61defb63f304070ddc7e7d53f87c51d8f4a1c6fe29498c48a1f94d4fd5d1d268009f93121bbc96331df65f5fec4c2e2172719a98c4719f50870d497d2d57bed439dc03bf54759529cf5a652c54ef6a14600b6590089384af8a34ca58a7bec45cde0f7e9891a24b8d59b8ad53aec47f9a077e989e20471d6972295faed45a580f7e88d9ae4f1d5931a55bad98b8ac176e88ff2a471d593e21576da87228176ec9fda28e8f74abd082def439148ebf54e25c668ea454defebec498d24a3e98d8a6438ea4ff9aabbec41f10077ea8b2244f8eb4da58a7bec45cde0f7e9891a24b8d59b8ad53aec47f9a077e989e20438ee4369ebb5f4a58ee2abf44c118628eb43114ff5f6a652c263f4464df2f8ea498d2addec45c5603bf44779d2b8ea49f10a6077157703e8960d09a0d11b4e93c399239a68eee74fd4129cc879b59f790434254ad51a278295d689016b75374f74e97f9d3894e44bc4a7347d4cec4bdd17c4a7443e238e4aedfbc5ae04be222ea5e7436256eabf271e4af21171534adf26f625f705e2292d9f11a352f67df17e25eae1a38e58b13213c8fad98c4f40f3794bd2f062d77c3484f6e15afe7328721032e9cb7df1527a6a7a985ad20de9c3371be0f9387ab05185611dc879da7b2028bd5d9e68e49af4c367556286ee33142e817608988a5a8d10a726295ab31430c7de54f6811a6b22d71d54fee78b4fa5524e0810326d93f5991af62eae8fa9ad05e0d824f15806cb652635da6e60d5174bc6000374f1795f98ea65a912bc77df5e3dea0d1adfffc808ab330d878aea1c1d98a12027d183d84a6f121d849e2432a30b022e82395d38aeb6315bb4258126213af38a855a6e8fa5104c2ab13278422ee8d1a80054f120053846e6fee50da72cbedf3644783a25f4c16ae12059bb83710d8670cf342e4ffd105c3581685852104873a32046c140ca9fb60858720e80a22eea06270805391b0a84741cc618d070ffeb21e0ab66e26051b9a16d0b82f0ce06284efaae5f3d00d0d535498b873d5a10a1d420cd488bf3b10f01a022ea07a7c807b98d0b84f51ec63901a89275758e424153263724b68b4b4d5f92aaf9f2dd0e1471b31744f884fcc6f612aec318e1ddc983b5782ff6a777e8f7e4d613349df7ba758bb013ba27fb2694312fb4c639dcb201564363c86b95bf2417629950bac2ec2f897fae30c745b905268e3ce6f93f449daed8d867f666fbed18d620939acdec110ea645cceab8748d48aa3f5bd1f2fbd4b5524884bd5dc7f19f7c902fbc338042798c1f18b476d04e963502d14392834d48e6bab936a8a21560b9c71951e3b916b7167d5b967a1fb9f815a2cbef95a5edd0f138bc32aa4fd1808cafa0299518f58413d3e2e23f29da2391e0e63021a9c3e088789536fb69b877c30bf2099bf46a5f69f77172477b6eb70bd74da74482fbc91ecc7c254a0ed764c22f8f603c2d9d63ebef619ad59e78ada5d2d14e885c5a38fa0001cc380ef4c863e8cccd490037ef79dae9076aa579bfb3bf566d8b53cbb5e376dd8df4ca920cc8981e02f6b3de07079806a8df9e4a4fe4baa16de681a470bab6fd38c14a8c2e51fd211f0b765e04a1dfdc5d32e4dd6bb768d5382582f75e9238e99082f5a41496e606a20956e3db2a60e8f6f163b592489b1c1a89fe780c669f66556d01ae76960e21358f732be9f42e0c13f54bc93524bf6abd48f5101ae29138a478d84060ab2d6d5bfd2a994688c980ad382faeb983eabaa29e5fb1fac29c6bb941524103ce6d11be19e19a47c43ceafa194a670aab581a4f42ec66e4427742ee48e022055b244c90523ae9e88d82c298b810db5dc93dabad90d7f38c2768c1a2ced262a3869f9c01c6ceb08bcfb908ec7585c218b13ae665d00017c04661be2149eaf78c536c1fb11f0f15163e52b91a84a92c8617dc5f1a51617a67e53fc75b7b1a08c89942acc7a2a4855b64b8315d3438d05f46e2f3286583af2cd46c74e907a6e8bdf19e6b652bbebb25e25b52bbc90d9cc1e5bb51cbac50f51d7d873391d40da8d51ae03ec29c73a5e6ed79453d6902507c70627d9cd21c7257d3774f515af834bc95cb397862f285cd6ae45ca75489e0cd8a9c06d19c806b720a560c9c00fa74e2216cc40fd1233f6c9c525477afb997015b3d3fa20a45efd05e4e1f572470abc87b14ff418f974bd6dfad1491fef1fcf79dd07516850fe893dfa930f89d9c0ba6a61fc88b93417f2a5eb81ab79be5fddef779428f1b80e6f1adba3dfb410137c50d54d23738ac93a760030d7914767c851e7a8197a46062860e56a169ad4bc8d3a7414cbefe653701a15024f7e10153255bb097e84fac1a2291b5c8749ed90497d6f6ba2ef1d5b00809c26626cf37fdde48b6fbd5ddabdc28231fa3aab18546b5bffe5fee68ba0574f9fe703857195ce1365a247049531c01ce88bd8773259f0bf3a8e020a1ae6d7ab995fe632edcb6d87cc3e8054375bfd28a79514bdaf9e77c2c3c65501633b82e60e15c8ca691c676248f31d2e2d0be07960255a45b4800d093b2d23c35050259996252a35ad388c8afd3caea1ef8899c262b3185b9c25d2155797f455156ae70ac3552f8b01f4af3c121a0cc672a41aed59b57d02a1745a24b60316ca9dd6f02e5cc80d98ec45cee12fa86a35cfb9468f9f3bb5c3fa245a9b84f4db6ad84402570ad2c03c31c5bd8aabeca94b200cd7c9ec61f12922e29614045b1954e39001a74b202c2124417f04a04aaed8c7c219458f946890f2214f0e55dd73a30fb26d665cd83b496ab3cab83a9e8b4fcc2488b9ccbb66e070700c377d9668ac44e4df1ed689eabb2211c9c050e139d01d7e5db66e4eeeee01a5769165bf69dce06f31b50ea42658d453f2311e751a769232e7ecd68f90e63d2e60f04d395958287586ee37cd7f7a05b0e9e2d67085064005a2a81fac20a0a92036e95bcc1875f3b00d8e11405d1b921ae804d203118c9df4fe495106981f9e49f437d646a8dda1513ca3ad71b7a727a8869ce0d373e13cafa9b180c0a94df546d14dc8a5e062794b5c8857257f6bc035cce915f45a58c2394951a00a43a397f872f59f10f17ca1eec810d185672e26d6c6f3133f4f5e93f8c7355e53631741fa473b411b1a8c448c4b9b66c8ab95945d34b8a26898dbf6d5ae2be0e09030c27f69e9f97e0425083fed83f3ea34e007232d3799364f214cf30fffc455d02fe86b6ac8c5f437e3290e712cd336d2e2415bc0ae8ff492d1dbe98d043f2af4320b98c4182182805a45a669f370c0183321e8631d2b76a5958f144e379e48a955ff8c0533d4c9d54fb8efc8720d58bcec1a8a57aec326ed03d05b2a5f657735a9dbb1422b0032801b7ca82f649dc2b99bbd809a34b94d801f7b0d6c5eab28ebe5472c3a9ff7ac6ec91b2ee6a8affa968bfd1e9348d6fd319f05264fa848942c7966e45b431d796644e1bd7f1f3b721aede7db50c0fe7897c180e161c567e0d99ce26a171f8772669897c25911cfe0d54405c17a43cec60e8fa5f668149880d2ebbd2825e3a58cc6cdda8c6d10dc84c480971cf7d2415a9a9c3fdcc5ab2455ec50335c4115226aeef01154829f7841076863aaa7345a46ba8f2cfa0bb86cdf8b7fedb5af3141797572b8c74eaba3ff5ba3763ee3ec8f623fe10b172301a77dfab931c3f30d6bf2bfd8dc3cde9acc3b64c3f7df54888e3ceab3976a16d214a716afeaad3798797360e423dadba63bafdd586e5d2fd9d1bb011921935b24a0bf2a1835848995ff527bf8e593e01a3b80b09388bf81509589558ea6cd947c5e91517649f39347db76d47da0eb3da51d56c98fd2fe36be3e97a9fd431258e39023c3443851ddde026cb76caf8a780909cff3c556d7392b04e3f5bbf709a7953406b1658d86c3e759372da61e36af940983583504b7d6c9c5aa91842752aafd8d1a0482b44612c4a94162f5918a959baa92bf015bcd1cd4d66c40da0519cf87985041963a8a56472c6d5d966b8a497934ef279f052d420878c789d5700da812aa779d8406044ff068c8762492111fd62b4bdaa4cce6070c1bf979161cd5854655442111435b9d70565da6bdffbeb4fed996da58a46690f4cb336f49f63009f688a8c2ab318a28fefaedc8ee48ad4ea90ec8a36945e3106f8387941d2a8522b69c783d62964dea30cdd183a2df8d122d1c8caabe834cc4a54ed02c549d51d65806f2b25a57701ffe3af6084b3ff998556476f75ac59103558f2831aa73c6f052cd90ebb31252bcd1b5bac82dd16fb526a315d6cf40ed7d8f5d7dcbf178b764ea8aacd4919df54bab883dad176ded024a8a1dab5a7bd2f217806e80ea412a2bc6e8ddc9cb709786cebfe7133fa7417ff40ac8f57209c8083eee720ad6dadd2fac083eeadbbc0c2dc6ffdbe72748b72fc4294f24e0653bf2432ca020450717ce65f2a5f35d95ade716b2d547daa37a5cc3a7cd96b112e3064922fd043d4886f0ebf7f47eaa9904cbbeff230e2c2049b2123a0ddf57caa3afd31c35dd104cdf78db6454d0d4fef1b3d5fd206cea6215135328ff37740c2141be070fb2c5aba35814970b4839a345cbda187555c76c0753cfbd229f4e0b6e2482e125dad262ac51090202305a562a340dd4e5ab450bd72161fc8d61a899f5758ef50f8b5d9d5666b03b86d0ce8e6a0555ab7c157611085eb44ed23c2fa90df5799b7be69d8ef3d782a37e5c68c1f7fb987fa0d529b3e7afff86f1ea908b9a2b8dcc215bca87f03e06a26b01056ed13d04a2cc31192c65ee0e3054203b7c4be84bf0e88e43d874ff46607023ef425d0c60566dd1bfdb362acc3433aa690b8b08ae092aefc1623794498ca4b9d0cfb71d0080d031760e52d5c1d63ac067eff13224ec391dc16a2aba684da81c5f39a2c8c01fd83631f16106516d62a0cd0c9c2e176dc333ac4a81a293c756db166aa5784ccf42fe8f59d999883572993a07039a5c0282626277179a3a01e01effc84204f2ef5b02b26d2fb1a5a902f9e1cc7402f4cbe758465c2c0666d1ac1f6c1cf53cd47d394656854e59ce25881a90348746a2e5cd5346f35170e6b9adf9a0b714d97af39d89e67d2ca5de1c74ad00558dd5682708181add4dc3e9f4a0c04d156fb50ad69c4e078d3d6752473a9e2723ff30cea21741f58d7d8bce03cda24cf90316254a090f5b5ae71e308c78b063a08c299c2553d548975e100884afa9b8a3c7322b8d1d4ad6ce99a8551fb5e80309542840b4f059eb9d115cb3a9efe03a891260dd5b35edb0f8123336d301010bd362f2a5ccf72fda11d6a53b861c9126b40492573e256899949cc12b1fad906cb73880f6b6a16d6641411a5388d8e84a50bf8540734151fc9f8ac909e87233b6475981489892e32052ec5ca16b4c38668ee9eac990809ba0a252854800422166e03ac324429756cc6d73b1321a5a0e3eef8540d8750b57423e9293954b8daaab775fe71b538d850b9ea6ff426de4d45813a5313c621170a1a662964f2520c764b0531d4ea20ebfdbce53c1c4d1cbb352145d70bd51e95bbd9e93620111d121d6825a43e3174a4f4119af4c2a2819c46906d7486a621fe0946559a9847b65c4e6d0a0fa72ad46dab90172bf00d3c6c440c773e04b1fe97a8856eaa5175e8f488610320fe37b7babae768ad899cb9f3d07112d45e10b48b5e2aa37a74b34ae6fad2f11dfd4bed5fe714485c27c44f3f38a5da983df7f005433d494ba8a8cd095ac796154096dfaf1d9206429e9556b11ce1c66233e1f39d85e2363ff4643b772747bc7e33ce93923f2b075d954e5b8ad0d1cc1bc78884d45e0231dcc4c3011ae2c4a45129cf450940b6cab3f9e250f8a70af0ea69e04e85ff395d8f50cc3a53ec229fd3dd2e0add0caee00aad060a2c81d16266c428068df0bdc0a2f6530a6022fb75e46a676ef435123cb6fa3a4aeff571d8d256df8556a98f935d821a16c880fd34dd620006ad985ee7dd1cf7f547c77729e01a20db8e9643f283a5d00a79542d4c465dbad0b2b266aaacd74fa25d23268da5849436a0aaf6cdf456f3f561a8b2b8edf7e9a1936aa771852d7c47768ae88b0bd1ea96c2f8583bad27ade19a7482d763d371d32d4eb6c1ac951cb324d5e76820472ec26b0b86c2fd558e6eb731a1b199cc4dbdbc8bf4093baa52ffe367988734b306f1e72632354db70ebd7a98c9471507b6344e4cae206e1c68796853e022e6432f6bfb6f916537db46968543d6d0796d9220de2f723e0a7169a7bcccf6c63a96f029ba05f3b67fa567e6a98b9199bb23c80622abd2cc0d9234bc2c49cf67e1f922eabe14a46204dd4e5f378191f6f82e0e86bb51a6b71edfe2c449210031f6e4fbbc9cf99f6a8b0a96bdeab57c65d3365d77179d6f93b9dae1b193338a17e4d0a6f86464499646fcd3035075123f867654e6cfdb43c5db9cf4b640a91c94df7e1d6dc3275eb0125b8753633879f43ff6be28ab445b840b5f647218f7bac84f8d8800a220f045a1b7382f1ce1659d8d26dde52704f10f0f3b4442b74f135e07d025e82a8d0a283dc257d9087adf773567054f932bd1b241f54b22ee3b5220e7a1ff7da833184a5150a8148c4a6578d3db732de024b03e7edf77dd038284073416d201cc58dc9476f7b1ddb771cde246012a252cf909ab331de3ed67a6de273eaf81d6b84209ab0a779b7f4a5047603bd5d4a2da10d971a7cb917ba55f3e2bbf4c65ca4ad5f0efdd724cd4a01d9f5737a512fe155366d42d555e6fe297f61ba981fa6d8799529e7446e30b19ffdfe6a3409e584381b4b4d4042286b001ac114053f307fd03666efed038af32e1697786310c2e0e5cd4136a87423c9cce3056928351636f7aa77b10a3ffce918f4c9292b8ecd68cfb2f215594768e212d4e0f52d50a229ccd01d8fc7728acdbb56a2c27d011188a58a5012d685c064a19f32c2ad762e16a33c0f55c09f2f5ab7d30db742a351c0fbd37723a9a007d1e715420f5b577d45d6e7014bd8bb9b115b14c1659ceb6c29e4419b2b127cd3ba61bf12cda19009841c21db53cfaaac52e4f3e15431c64845b98758341e60cfd80bd8d61a50bb5851639cc86cf505ec63154f42a523f74b568422b11d72fbf14708246a9621aaa5255287e9db6f47c40a710df93459d850948ce90cde2f799f6c4a27df21474cf3111904750daf99dbd320f68b83ad02e8991f46465de9774e6cef2ca557a50eba0a97891da70398e309705a0ac2c31bd53e120e7852481b8c83bd8b61e238f5a4f22ecc14288b165e220e44e0f1c06d3421cb32b6e855eea59908c203ba3063b5332b47c3fdc79575ba122d6834bf3f52f4e131d0a7ae0faa90d5fd251e087f003a503bf47a6cb2306f9ed13abe804f558ecfb5606f44bb9cd81e4ffd0e94a7cca5e82c1dbd94eaaa0997e314ea867570a4416f1ed66888df1cb597612bfd4ad0aa3304bc34cb50fbf419393112803497005224a8d3b5fd07ad515b4d09ff23c384a85a8ec8855d8921ec92282ae263b0b3b12263ad343df9f532e2bd7c1048a7915bd39d9ff88172899fe09a3dc6505645ac482e368c8d781a73c4df29e8e0af6b696e2a918d1ce0a6134043f8f5ef8b151c1d856b68f67fa8733715c6a7b1b44decbc45f5feb0922cf8dda125209faae65f887620c63b7aceda27d1c03f56d8e43cbbe3d0486ec6fde318f8a0ff8a7863a19ffb254190f8cda86724a553ef00990ee2aff00e525346f5a96241ac4c8ca4175b3260f3a01293e207f7d5fcfb76474f0aa8266238fc6f4f88c818357490fba72d20bc9baf003587bef4e97bb470d187127882cfe95005389a6cdd77181649ad869f83256604d2712507c353ed04d3c3130a46c88f00adf21cc5d4c9018d0d9a77d05242c9b9f0b0e67012a3017baa6bdff3691ef4bc367e303d9141169f271fc4098222ecdbe5b231fc60ba4c9c4a5e193c67dd7a87da089f75f121949996fa1f991bed10551706e072abb0bb7d4f02ae70156913924a71b95f6f6a188b6006421ab3781bd001219660ad1576cb6ae70ce5ee5968672bdfb5b04926d125e4655924445837d8d171813894e5bf608543e8f1d3853c40bf4dd3f6dbec614383101fed99f5a01ddfb063586fd7ed0b26f40fe54f8e023ecaab8279ac15ea8ed63046382f279d7dce47dd5b8d8e56d9c99c05f427dc326c0b9e5c14c826489e5b6218af154f833de7bed3758f57dca67d5629b05889899225d2883e4510db2db200d9c4effbdd64b7b2771159e5eb40228bb9e37bd2b6e34ee7610f08c6cead879dd0c61420937b117d3dce2c56159333d595b7c2d78f8c199535c9f2126d402251aa5115cce52b3d30e12610624b6e251e7c0e9cdd02bdf137f96c9e1dde78f94cc4f08e3ad092501006d03aa88c27dbbd235a6ac3e94f730f06f8c9d1ee3bb9e1f37ccef4391b7380ebb379d7033033d35a6661110537a0ffd434bef75f05f80ebf89f5f07515111a667df964cb5cab84a402541d3a36330818b4180831f9ce72cfe19c8ef8dedacfc96cd69344b7d5a8c84aacf9db0f224718b56543b2354b80be9f8d9dff9fcd06af2820923967fa59b4f2d7e2a2381fa80e0f46c63c2f8ed2181f64e9e99fcbd836ccca51afdce3df244da96aff7955b0643d29378982dd8a6b3b4568799f70b790e8b54976cc709fb2d21cbf4562d3723a9879efa245709249129e68a2e9778c0501a47dd10205f2b125dea9e4d54385624b481b25a61675bcb32b7bc9ef3b864ed43fb2e8d77f089de1c1978ce72f2eae37e0e4d49d0ba7790bae58d18680b4028c9d28932f73fc685eac7db735e9ac9238291482b9c089b78bae73cb37a93fb2ddbaa8072c37367259ce6f10b492fa87c6dfad183cac987ad0529df118dbcd8821f0e479612eaba49c8ffdd94666b2eb773e1432d929183667d44ba5f80aaa0dc37e0518db51a80b55ece22af2d77f868fcd0a506c20a67eefbdb36b70974b8548376b8cfa5f3c0f13496c3e7a05dd919b952a8bd3cab308e8f0cb29cc9207c37df990619b167951a62a41926e4057432dbecb766650d5fae9004a9ec88d11544bb0064ff07a5665f3faa59fbefb57e610115618960de323f5d3bbc534ccaa97850881003cdbc3d21bd308cbeb1dd1779a5581f63bbff6cd9b9c6f565027615e285797ee6dbdcaee6e733beeeb59f2c43656e8552a8074303d4165a214fa918fdc16efeeef9d950363db441764122c60343c93a31e11b634dab351e35fad2f2d01930bf1bd037d738022a93fd06f15d81b275f79ccdad1555047bfc6cfcfe862e19d181a95c0279ce83e080defe46ac71a3af4855ea4ddfcfb6344a53f3a2e4bfa29648757a1eb9e5c9c52c1f40c7fb2da5a025cecf2a06c023fccea567fe521d8d9978ffbdce122923d63504442a6535f8c86a4b19f5d8c49c27076a145cd9bb1f2f80958fc005666be5751545624d5398b0fad8d191cc89a05396fe37b142c003dc77a076eb0e9ee2002798720ce66336d138d17ce5d6678177c8ad6f52a357f50bcf22c5c071ebdf0b268c7cedd61bf57a2ec5d607dae30efcc619373909684cee288f236a68b77e23c1680ca5047f47912a4dcdd848886f1dd118ddd2c58295a05c81b2a500ce8dbcfce65a6704bfe6a1f9094ae7c074032017ad306dc550960c924d74cf50887deab5c6ea8eef44d99043b3d53142dc42d8adc722263f1d43d1d0e68a233c25b97f38b61b68b6ee715e4874d03e70226de0b6b49c3ecea5fb6210e64295721453538d187b3bbabf2d974d8f7f38abb129d0703b8ff4ed38fec434f3857ce49db3d359030d633b02f219c0cc751f7499904c74185012006adaac4131de844287bc2e7b46c80a4314c5a9f61b41806a2858ed8e665a50d296358c39f727466a82442f37fdd556ae07b615720c0e9e7f4a55241e4941ca346953fd2853b6e8014c9e9e1b78be4a568be8480118cf1fb559c6f0141a54cef4311b878b7b41733ff64be58fe136ab9821b0953a2abab81e1a51df19773bca4930e2d267b9fc9492d257028fb72536e0d61a9f2dc1f5283c27e668e07da533857c9e2130bcadf6b23dabab588abca7bbb35cfe4ee59b768da6e013a2c11c65d2de29532726082339347db743e70a0d7ab17c28d62715e07bc451106c5d6555aa4e2c359b5e057198712ba0a9ed149321f4bc4debde59414ac18240255641069b6367ab9b15349d4f09bc1f6d0a927c6a4607047d45d454c23a4599424c70d3427dea15b496889dd5599b1085ce83b1e99af2613e38a7bb46e879cd35dbde6643535bf2ea61876fb76d72d6755a82b1615370aed8ee6b99fcd36645a4dda77045556b16683be759685af4be6a62a38d156c296f3b6240ad8e34080b739a5674b6eb3ec97ae127a6dcb41f7392392726126716e9010c2115ee8bbf6d0dda79d7d2d2a4f7fc7f45c6382f476f6a45ccdc04d6a1de030a50c4bbf9b67e43d702c3b5226e421e9f35e374c5d909e158ee34870ae37d87359f4be9ff8895039e8d1a147e233edbe537f1393119584b7c5ea40e03af700df603e8e5f54cc09cbae0d97a150ec56719ea421dd292914b9cefe90fdf331ffa20a9f9a7831d1eb667cd035acd5e360f4c6faffad8da3da9b0554ac0b1a3874a69a6e35135cf284dbe95b03d716a08722a1b2643b2ee895d2e8ddea05b92a7da6020d482064206072d175f9fc2d4098e02baff4f0f29bc99ed2b6615cad1ceb265bf55778d623dcf4078fabd22062da3d1944b81f35f40f7c306264648d1bee689f51e8a4fb8f0ff6ba2d92e5d1d20e0ec91c515a13a1fd591dba6041ef77b07c9c363d4006b01f10b8a025d6bb9c5910e0dc2f111f5298705aff0aca5894310fc5c7b19722b78641a7c16cbf2e2b73e0faad6f6a7b0aac997dda79a008f011dccecdf3dd607bae52aa895c74bce32c98b5b70d0c9b241be7d3cb0a0cdbc88b19001ce5d5e17356781b4f7fa3530184f084f3163a2398ada27bd966b8c6e92e46203a06edc8a8adb28fc3f0d70c54a41e3c14cb53b3df28a4b2556fcdae169b12cdc2609516305d5a6743f19955e29684ed910f600e6562700f5db7b4594390067f075714d94665e9ee0b028152108df0bdccad92cb5b74c1cc77e58a662af6f0e56b673926fdf6defc2cc1b2c8fa0fb8e30c1b167e1cd33a512a70ac1e81334006e6481911341c33a2741e59d7ef69d467b982f3017636ed6973b3e1581218cb9013a447b02f62813496a388ffb5c8d477969c867406c1167df8100c7e393a2799c14194d68d6392673536a4c3bd81a15c757cdbb64a4605a8d8a97cd7cca863f1f508451b1a505464f8afb9b53e793a9977e01b22f5a1ebaf1b4779753e315ee145ffe1382155fe760241a9b57dea5ee50c8832b5a4a91f91624ff23b416e96526aaa5f1ae2134e17f269a8dc9ced28e920c2f0de0e048661a5b1a4606e47344b37450e02d782d4780fd188598f12892f9c166809a75f082a6bbe5dd58aa59198d00d2599d84bfc1bca31186ae50c118569049d278cc6e6369f54bcc7216411a89cc942364097f03264b79a366a5302eac2de0e3fb04bc82123709da482912d8ca3661be1e3b4222270b0c742005504d47a8ef873434e5e484b23e21630ea656aea2960d4dc2ab907cd896a60e698aca24c4fa2b8d48bdde92fd93704b043460046c25debfa12e4a7fb0112f0325799c6b37b86c5febcb72acb71b155aa7c5ab582505c446464e524e2bed3f5b209697a0e2a40a835fa017192127a93bee1a2b367721086c60b0d68a86005e037e6aa0732b204bde4ebc4877c6753f47e4a2fcc1386b1d60e8bb6d2bd29329db813ffddd9a4924d3ece011487747904848470988adde7db9a01f98cc811bd23f4d323e1fd2518020079df253d0dfbf2acf39db5ef08bc32795a80862d7ae0d9b2cc66155c76c492b5abbfbcfc517790d5c2830d88206582a5ff711817d85c7356aada9eca9ebed680afbe535ec50ee0290e7d0b3476bf8e046c187c164f3b2eefb15f38b646f9dd4c1042306a765fd0b1ae307d37d152673a88f042403aa9481d14a8f54576cb769434bb24090c913ffa39e0a6d5e0dda80518c479562ff55c313ce4275835057f05d0d21f9770c3b19c00dac08ef2122531888e9d8438e53e017ace408b070b74baca8869eb4225a97bb3ed958d2a0ae3500fdf4531a23d1997bb0fb7923b7bd139fdb3c5a00509c121e5da12c44d1829c1067a42dc3d7abea09b2142d0936457dc4637f8b5bbe31e27b5a919aebf4cdd77e843cd932e2e4d614268b4a0d37d39955dacfab19c605a2764fc758e08b73078da522578b554e7c17c8c83fc45a415987853ad991e2a139eb789fef1fe61cb7d95a99b72429aad52ba1f3abe267645276009f4b54546f04413d0dfe57c4a544bf18021417a8920c355eab53953eaf7ee65a5db3370f194520abd2fb99584156fdae8055dc892e55fd72adac4be9fd457455b66d8c8f371d9b3a46a86f42c061dc5b0541b858b8e31ecb57e761cd1ba01f9aaef345ba33cece53433bb3c8f835242ba834616d06c3b6d75969756624281eb6059fe3c60683ca211358c8d3c8f6399d720588490fc59e3c9178397c4e2cbb7facdb1666f7c6eae04cbb08edbf8b80b86263dc99fd7e0273269a40bb6c44c8fe59e95024799fba17a3720d378103a7a002d68c99eaabb23330b586f5c2a1331ecd5bf799ed55ef49e770d4070884a2f7f28bb7e4720d4ae2b49f747090d4f04a483b137ffe3b9f8339426f68ea39b03b4f71b27fd0e6184c0ba8a99e2c800cfd6a6ac818922c0f8b65aa175826fc317dad0b1e4f03602e1ea331a52e3d6fa3e69154d223b16ed8e95df075fcb6e7b11dfaa8d261a8b75cac765c81139480087d02c6e66ddf58dbc86d2b6072136d7169804500c0f64cec47e84f315e1ed4e15c44b01a7a97773fd9d916738ed06beb897de8e8658e199bf6c3dc3cd97bf767e79a7291b937f22e97cb95b314791e992c9eb325c32c8ebb0a81f5073cb783548755cadf758773fa6eed12fb869ddb4176dbd74c9a71a46c44a88a11bb7f23f279a6e2919ea6dc03325413ced8fff3aa66ef7ed61f64af0a73e2cc1252a7906a7ec29fc755df1d74e8d1ba63dff436cbf53d0f148683da034d88baf31b682c51b9ad5174c1b9603c7f756942ce763ecf557acae10200ded9059d9f2f337bed276055b28a20ae621797bbd57a992db8961e8ac8df332e434583b3fe3f9848a6093d58279348fbab0d6215485e6755cf11c6cff5fd928f30e67f9b908102f7fcf7cec99bee70233a6b3782d58d3cb4b553e73f62ce14a15c3c1e826ecaa61148d3511ba1084db588c10aa385b7b877ac572e0162226b64b11bc4ed455cb33819dde332ad2ea60d26b349fb964ca38d87ebe7d49ca94f1c1057c85cf35f9c6ef31094534a64e24f561ab9fbf706cc4164960c286bcbcac5d4e98d2d19475bd2c7774ae211a01f93de9fb664b5b301a8ebab9f62158138fdc32f3b2374f14ab136a3ba839f7f095942ff74789b7ae0dfdba0b2db177ed7d651ed3b363bc96108cb108921102e2b31a93b1d6452c253188f923431013a283577fa344dc500b3ff0f1740d1022ad282d5a11e86bed58683807c97486f258cac3f8ba08eda568aa3556335a146499bccf78f34d5721963a08f3d000e380d38247a5171cc67030b73b12fd16642fa01cf1e8097f1821ec9a6e0b88757b1df42808287419b862f25aef848c45daca1d03d0e082bca82a1967176045870f008aa64bd119bef934cc987747f608e2077dbe13b7fd8ad6924fb3a5a22b9f5a770883a4521c7184d2e0e0c25bea6ff8d0f74ffd2d6ce29272ce6339db953b3c96d02a5c1d0de81d881ea3bc703c5f12d0f72606104964397818d50376053d220e1e4009c0d3a996d43a20d85a7002c1ca91915101198bd5735e794221267611d59379d5203ba3da6f9b502deed70cc930669ba33141e8914c000e264696886134b63651c33bc30130f8eb92671229ba7cfca9255faa55164f667a1594999ef477366833429fdbb7f4070b6005ee6fc73f3538c4882694f5bac8e7e3d5a5e74f5711e348479e16fb4c00b4bc9083548fa381d4c220f38bb53d0b540fde9b746a7e5419580757c78e6ed40a83385a442ae3c425205213fcc9b62721b4b2749bec6d56993b23c597dd3db0de52b7a6dfa22a39cdfa8713211ff1b98b6d7cde8aa776ba27348a7dcd6218c28046cace6779f284b5d7f352b83537e484b00bb3bde41af46b105fff152a1400f0ccac7ab5a340428b89d4db15f0790de0a5866933abe5564ec7de4a0244991fdb05a2b8006ac4cea019f36e42e8f160c2c084aa8b71ca41f5de42aacbdf921c5be7be8fc4919c4bb7c56a8f8519e3fb08dda2f123c8b9dcc80949b9c7788b503ffb80ce41df866f8516bf8b2ea2722c1632ce0854c4d7af186e40e8e55962dac76a5977aa920de7327aa8fbdc29b31aa2118622e17d5112f1d0937432a9b9aa639afd5441957f76402df3fd0c47b3dd0163e7021ae659c12ca6b21bc018e7b026d1bb406fa75037741976b19ba2bfdd83262a7083341f1469b5e6390604efd157c9b64006cbee9a9f6d11d8f19e896375a8e75f40d6f3e447806119b95d4886d83228caa97359b04de5ad15793802d29eaf5379ca51aa51f5394f8226a34fcb729a61b7fda493146e6786f916e51e08f503ee0e25f76c0676380f0d3cebf4708fc7644c1928fe1b2aca6bfb0bf405b65de3b28f381e4d81d825dc0c661c01c58ebe274f2b36a3212e2ab4d4f7fb70f5877484fd83a1a563cc749916dcbce5890ef6314aca041c88ba1430d9c79bd7ac4362da9e0baa9499684d6b6f370622bdbb65ce879db96898e56de8afe112c75fda7ce797ef0e83cd113d8b663b00763028ccb2a66995e9e205919e46e9923ef2da929938102dcb538aacc1080ed2eb33e62abf2c4eb5e2a0b1cc67b47458a4ee9d20b5578076af8718f96fbcd42c4453c79a6e6818241fadb1bae032bdb9da1b32bfc3aa856edc5d6e13a8e4dec08d1d98fb03df2f711d269f3286ed394ff8ce902edb91435e0d093f01007e00fcf07bfb1868d5cc41b768f06fca5d56ad3c349d082d34923763de7478401152887482b80662ebfa9f6261d64fb4ee8d46a47cea5e5c5ece50320e8ec97793a53e0419756b500d85958cb9b6c93afbd8813a1eebda4fcbc5121a7e5928d0ddb707b4df22fa98f29ccef861398ab41b8e5082a5fd85f0c634cdc28598f4545df39294b3f3764babc6f0232db5c9f0aaf3646be36da3bc453d71ac40a11b87029b380af08dd38b5e8772d4c8a1611f81f5736a8a68aa9cab234b0f428cd8bdb6a5475582d2be6457dd70769092c3c4d7b1a6faa023ef7f8e4d06b8621c4750656abf5552a87c1bf8a1a4aa501b466254e7326e8c6555aaf39693495ff8f391f63ea14d9bfd36d047d72c027f2c611b10f7e3548ef8cc2603a5f21c5feee0ade5048b17235875bc53a50816754bd0340f0064d7ea128ae197e0ee1f2e826f9ec1109810adfb2cc9b60490b0876a67b4e3815d43fbb9d2dc753df9f228e1a0645e900acb66f45de210172890a936975820d8039f5e93f4bc8c3897b2b66e0e683e49e282f37c0b17b5f406b2a368730e26008f6355e9596c764f64e3596dc9b8a30f135db96e24a8e5919cc85803e380f35951404f987876a309829d00d0a56612e27d908b4a6d233ab7d0e84184ffcc4051a52ce45fe7730e480aa17fdbe146cb7c391b8272f41f7a031f96e6502c1ba42655d08f46d3883c6d2a6768a9927079fb8a2cde2346eae4d257a8a1088fbcf7596c9e4cdbb1ac3266885e0c17d4da268e3b22ea3905888ab84fc1d80b244539f1a8f0d3c68dc5481d611ff4f28cd64b961db2e7688f5b73e17a9ea187d019a9d1cafbc84286f65d0f3ac5c6ced68449e6d4e16fec6451c5e706ed6005ce47eaaf23da6bee3f0e85b9f1feb2c560c9a1cb150df69cb8f3d08c6cfe8d060899f1235b2ee95d31ddf2c1409fa2ec2fa67ee65d2df26580a344c133a2bb111252e825401c86a19722001fc800e41d37780828acc73a1375aac2bfc56d02a1b57c02cc01fef234472f397f81704e3e082abcbfa6c6fb106f9a3ff093dd603f086c2b80e987a6b45ed690e2f8640ac2eed2d0a46106b05c16058999bc0153bd64d84c2592e6ec714895a973f6346029414033a5ec2765c40d855a503f9594dbcb836f0f782ddac1138a3a18c1ec762a9708a0254efe4431b48cdca032c42687673731dd80db7da7b8fb08de5cfd0bedbce85a3e316ac65151741f14ca5d3750b7b3d3b3ec941364424d97bcbbda59432c9246545076d076d07eed4e7ec76da0dbbf1a8bbac3bce786473f49ccdd9ee6963a3208a7eec6677a516e76e77977d5dc6c002430861cced22cf095ff017f193ffcd77779f5f37a54bf78fbabbfbe7d58010e2762f62423084104e3b63467d4a39a54b4f3664b9d309e784744e3827d4c25d3a75af743a719f7376d09db8573a7dbcd2e9844ea7d387ce4aa713af743a711f1f77e25ee9f4f14aa7932c7a832b0869a0d6ddd229c417773790efc72bbdbec71871224e0c41ee586154cd3969751c9a0d14c9001ccaa6676f2f19715eb031e0f0102100fe9b17221ecd0d0d45744ca744707062763b9ac873333bef686e349922ff30d20517a95123f2d88fd25247459c488371b8a3121c196188474017fa69129126ea401afd5107421af26550f512102c4ee53b8a5fea134a7ea90183846c73fc1c32ece8d3fcf8341891e3df5079e0845c97c8f5a926536d027890e484cad3499e109e0e800025ac0442c210678169955160310692040653b022891d04f9011640db155260a1891318d1f30397ec4a2015b900d97b8234911d89a4a1a1a1b9514205d995c8fe36c32513cb6b33b22fd1823c82ec5f23069806e49041872afbefe8136422fbd340810a04657f0cf409cbfe19c8aec411b26bd9957092fd7df46906cd136afa24c3c648f68f4222cf91ec4e24e230f143f68f44f80e1345c8fef1489f2015d93faafa047774b0939d07d93fee4087ec1f95f409ae6ca61005b05304d31113c10bb6ea41043ab0524230000b9c22411820a4a3faa1a504100cb022478a20543b3b47e081015704e51d26371b102f1fe4e9ebba749040a2029c65b88384121b20d113041254602d24b4600112449949aa5f9c60c2091dc46f5142933dc31d2776f2f72fbe046c5c82f2a58635e5902e3920840fd31290300859f6cc4ae594db133866393a13824eb7a6bf9fb9bbbb7be6d7357777f71b0f8766edf96b1977b1cb56df7a7066c30524b613f9d18fbde4b0ee87fcd9129b73ce88531fa6e79c73625b0ff0c72201185353639f3ed474603fb18bdb80add4660e755bcf3a60737c538ed1658c5d8bc43410bfe5bb440bd0e05afca4e4f7f603fc79053cf61ca2ba0fe1e3f8d88a04ea5f3f837dacfbd16fffea7e20d9d16fff87fca22ac678d9ca792cca89aa0802d82613441ffc253bc6bd48177716980cd0205dfc2d97e3be7056baf8cf280305fe609107faf4997c441ad75153737dfd1aeced5f1d97f380dbeab5e731322aaf2c306129c8c1dddd8bb8aeebbaec13bc480e16974cdf1294bf7fb13f5c38e79c2f35e6ece67c88b144f5d349e98c10876e497361cb676346e196f6b08fd87d98a694524a695349ffd2c7e85fb652dbdc1605a52b37f4e953f1c00628c556a2fae9afa8401b6e71da9da07f3da3407b9409b18364da20c8346e1163ec9baf712e6907264aa3ada41de0ebfd8340e567d3690f94f4255703c7445f85297d687b7a249c144e1a7bb04ec7c6c2110a888230d2a845a6d18a18844ce943dfd11eb51cfd4a03dd7c80bf48e9d30f864f9f3ee893e9d33e457ffa1006b4319ffe4513a5e5b9b00523811b5b9100fdfe1964fffd19e467df7fefed951b2b3c3ac3bc121f7b18d3dc4afceb614cc6adc4dcb658953a6cb5b556d833b8d77ef633d0a79f753f90ecb8dd4afcfb6325762b3ab2bf9f753f7c2099e107fdec7f20d9413feb56e2cf0712f3c37ef6f777647f3ffebd3f3b1f188c8131f661cc8d9a4cf7e0e18098fd7bc86caf63255a6e256a72e376b4077f5624903dfd19b2f9f77facc4b74f3ffb19eed7eec7ececd39fa1fefcd7fcde8cab924a18733918036364062ab035815b16484bd7812db245b6c816d9225b648b6c912db245b6c816c5872d97077f5eb63c38727609964f866cab9d254f72e3219fd3f81119e19779b2c52245fe5a240bee4aff4a7d9831acdb767dfdf5304dff93f6d3916bc7a388c308638411422881f4f41ebc61f6ce1173d63972b13bab049652ca187470e3c3dcdd57a7bd588772fc89f507d2e001c7d8c187dd156285f5d825f89345f5672872b27583ebcf1503351cfe4bf027575a784c937680e7d38f346a3aeadf8d8579b42948761064b7feeefe96736769cf9f72d3fd371ffcc1a1fc9fdd409f3e161bfa144f51478d7c6c2d4ec44418ee0c81a6a80918ee0065403af80918ee00d5e4fe4c052b77770e86c01a1d13ce7c209356da7d25aae1c84c32b6c0f4617bd6b637bbac3d20b63d6d663ebda1f3ecffe25722b224a5ab22507b92e5d3de11b80912d4a43e4984489fbec892421a15573d59fe27877c9047b64b93e9dff35e5ebec8e2a173ce3929a6efd4622ba555d92b7e7e32dc21c24ffe4c3f3ad92451912732d9a28585504927083d19ee04611559d147f6b4d792c90a509f3ef983aaa9ad9fa1050449548c41d5d81510689e340a45c5a44f70470835b93fb2e894722581fa14a9c8fd72d52b198984cce953aa4fb2a64f387da272c84d118eab3ef1f409eefc0c2d20c72947b0454a295dca77e9b78656ffe272b81ea3f47a88713e80c45c22904077bde468f7d979cd4ec6559fe44fae79fa34bf27fae4f8d36a4f36517b32fde407fc99be6ec59eb8aa0f8556b266b649067d8a45c83093b8191b9e9e51cf903ec52c32cc989bb11972836f88e85314ca308fb8191b22724839407d8a586498376ec60628082588489fe21519668d9bb12182938293a44fd18a0c73c6cdd824d129e928e9530cca305f6ec646c9cac54aa84fb18a0c33c6cdd8080dbd188234609eb161d2a748840cf3c5cdd8b0320c8d47cc33362c4803e69821133228cadf2c923348ce21e937eeb3ce5a5dd2b4d7fdc4ae74daeb4f02a6dd1775644e0df0d743f2a6077fb148a232a12189ca7e660b35ea4ad22e3f1275c59a2fd6c8d6b401b44a90a0f21a470f17f68936ceb57dc2d6a2dcd66f0959da718840ba65eada3ec5f852e3bd5abb6fbeff857176b3b3300688e3d0dd42dd1d21b616356dfdeeee865842d143c9880b03a4d1859e1d3dba30e505694c1c305b48c37d4eef2774df0db685fdb31c2710ee67e9ee0d616b71d3ca72c02844b853600d0a95265e9670af2dda5dba4b6babbb7497ed03d3bf6081ac954e57c97027892664cd1652ac5aa0ca8114383b4811847429bde7a4b0096dcf8d81f6a494d1bd2d36c1873bdedd33a248414a395dbabfb40767b47c52ba944e6d85912e50ca39a3e5a56bf7abca775a650b8b108e6f290cfee1185d802fa5745a91707777ace4561e1c1fd3efebfe152cb998bf95977ce5cf5ed8a71b66eeb730b6ec763967d4cc7a73f59a19f77573df7440739fcc2d65e7ee43e755e9bca4112655a062747a74f7b087eee3fa347907572d355e7899e18de8acf5c2bc5620d7f7899dc554c2d65daeebaad8e5dd75612423346e420fc3deeb3b867d20d7f70eda3aa90b2d299deed5d238804e298227b4c6455a2d33eb2f2f642c926240e8625d489c478343efbad7ed3e0f4078f96031993ab8c230ce192f2fd478e8e2d190b1cf3407d44cf1d6d9eec2302eda2bdbcc5ef6c22e369a257c1b3ff43cd79bd18bc445e8321a594da6e6ed2fe662be5b06bd656f783402d239e906d9757da4117ad7fc805f344e20ba0bf247679f693253dbe2d792fb61a6c9441bda451b21edc5547628bd35ea910e6dc22f5194e0c67fa9e1b3448b5f0189ca400a92d06471850f8d504c1c821424d87c986418608042d9e79c514021cf2676a218c2b4440e0d144d703b501c21cb67e9d3ff00069049963f8042962c27bc541c2cc1081398700fa4b08326a46864d3430644ce260410d7879406031eb0944da6a3c3f5c3d05dc2fa3084f9c0099b9aeab9a2008207561182e08166c70752f86107d50e3ef4a052810f3fdcc8a007213dac1c603c14b5e98994b52513cb8b1bd36572c410121cd1029d236ad08323928826531234785989a5686a2f9ae28c3109bb24071fae14fe4a570f76c9c5c3c5c375dfe1d6b2b21ddc28dfaa03fe60900ced750fb434f8832c1df273f429feecb21a3bdb9e8c4cda9391157ba280e3b74aa8c2c9c5cc390062713d734d66fb0b3515d8441556d8c4f8c0a10e2949713860d6be6a330a21f2448bf438502a5431483810b3cab7d6d7cc224ee9573604ff1783646b3cb0c701f3b57130df1b3b766e4d4546e53be6db19ed7c888a237bc8f5a1e3401a54601833d424460de561fa5a087158913f62c5d4a118d2fb58911f853842958a8142b0620a3d313820b1bf229f1269c5d02439311fce17cb02e63a8330d5ea39c0dfb449f9faf3a64f285fe7d377f1b3e4822bb968751231393fd23c4aeadb205cbf53b753d8d52929b38fb60afc491a2dcb324de67ea6c9647f214ce318ccadeca08f1fd3ce476472c54e0e7e1cea12866290d807121333b78028c731fd474110a3ce5686f1df24ca75163d01513aa4c8750e21d72c72fd89e4bfc944ae1307b94e1be4fa7307386dfa7473fd2904da6817cc14cc207235d518b5d65a697d98aed3a64a2d20ea25aa749fc94180b7c8f521d45e9890aba4b14fe0d8d3e483ac1de8902ef53bd97d266d06fa920673b011f0d51411f0075bddb16fee4e665128d7c749602c7f9fe1bd1ca77de894cb20d7a79da2e29334ac692369644da3f05b8b65181733fd5490fa5e57906b77d306d2a86f99e0942c6a289fc2f940b223e5694a57739055a8420c92c63ad5a751ae9f4ac763a63b7f1c307bedd5f78fc1cd68affefcc1712806b557fff360744038b02efed4875c11dc434850e0bee9547bae835f7cfd8b5d7f43a3f0d7df409fb2afaf43a25e74d346bad477d14169b18b428ad065fe9522dde43a5bbc19b1e78cb153b97a8e8dc2e180f92a42ea6c3e067717e79af62251d3a69ab0ff6c9e3ac09daadf43fa34fafa4d24c2d05fb5975aa7daab3fe27a487b55eb3e9bb32692eb5b205c7fdac8db7d164359df716afdd6220085b2fd6879642bbfa6cb932b93c0f13f8701fba32e94aca1c6eea3f9ebfbc7bf5ccd50bb2010f3d5458ee6a7587e91d9f665880b5b3ed3c7dc36bac12c2f51f07548d415c30b996a38b05cbb8734e85b26d83b1f4876d8bfde07921dfef67d5c9d8f8a8325184113633b1f56bad0f7b8440e4d0c8c41d281993f165adafbf6e86f51c0fd2c7d6a18247352f609ec3f9fa55d647ca1013b684caca27f9309dfd6419202cb2e4707d3de16050cff83aba6c209218c085b20ac075729b2144659a2e788d50c321d3056a4c80aa6d00321787a90cab907362dde8c276e80b8d7bdfdea68bbdbdb9fcb90060eb95b59eb25b6704bcae8044465a52872472625a0f68ae476f7e720aa71a27ce73eefcbe2d792bd947524aab7fbbe56dbf540d7bc05101589e29322727fb437c05f479ce8b0b7ca0dd9e065f931a8bd51965d048a114ab97d386455142e18b3d1e32771f8af8ffcc1a4bf31289348230eff68347a12f745a23c7a38eae28b92d193b627ed585193498f474fda9ef4b7667595f5e417ffb56059d470cc8f99f497c47d1130e93f5366694ffe0af0e75d425e9a48f2ca24920e7e4f3d00772ea4f31b9526b8861b626e826bc07f43cca4574102fe3cccb512ae75da9348c0dd726edded91bacf86489449ff7d2275df9eca73a80a531d686334e262a647d0d15f6c7447a36dfbd1b65d2ac0a4ff5cc77388720ada8030636f53570ab0e3b427df7594f489f4f27d056d6c2fffee901e937efb7b1f73f4459b21fdd66d2e9ef4518b00e95d5cccbd702fb4275d745e7bf431d7819871b7a33de944da93f123a4e63a9086fc8b08fe5aa51344946126fdc5b218351992cc9c23bdc67d9db57722fddbc3f48b776e7ba8911ea69d880be913cca5ab922ef2efe8e5371018bb0e0b2c984c18a7a08bfceae2257e59eab88bfda3e6a2b3c1cb38df51e67d223d894422919e8328d7812ef2494f8a21fd9531b694731b3de662cee48fb84ed29efc9195d7933c0948facf974879fba4cea6242aa5939d0c01c65d0da4c73f92a4c724eec6087776c4c12cbbcd1c66533d3c57d7e9313b9fb1e36a3590917421d476659f10616c1995706b90409c6574efe4c7517c37411ad663126e86329d634b8b0669e0689b1d47a75d191bca0d768c4410aac2c72f0c05f883ab8769408efbee6fb31af2457ad9fd62dcc6797b539b9172f6669cb767b1eba2dde740727b758576387fa51ce5123778dcb87123422b514876743e907c45fa67884ab0010f68fafb070e1d0e7389218cc4c88ea63b1c64bc809412626b51d4be95d259bc7329256c913ff16fb09a49e9000b2515c3300cc32e2edd8744fda45b2c685969036d408b311c9f6b7dece7df4c9399138031d7df58e4faca15b937cbe2e9c6783527c309866199c52c8661d85f8b59ac5e4ca85dfa47ba5c2cbb1986610fd3d9c55c50a4e6c3b5c3a5835d7209b155ece0c216e0071d629411c935611d2fb91fbee4f89dc527eef51b2d16b831eb19324a01e3d070fcccd81b8e1832bc71218dbddd780143f72dca282e11d825b60abbc42eb1555c422e2157cd25e412c155133b06517385a0b5e8337a6619e30f2a593cc950890c77b2d0c9376a38688edf9c0c2778ae20f798993e8134ba9b3eb123c0df4633379a3ec51b33c78f3fee2fffcb70369a1804d322498b6891cb0e4a26d82ae02fcbfae42581832496dc0bdbc32e8b5db6b978efbdf1c61b6fccb218b3786f37c39322fbce3e07b8fee7c1ee8e306b82e5d7bf90c09ff7f13d89b2d6629be95fdbb623c4482ded5d2fd046f6f46fc623b60c90e9bbf680feecafcff4675dcdeebddcccb5f2881d883976182703675d6509b56ba173090ded41a07cfd25674366cafa61a4e4a08c96e57b88ab04a3f855c8a08626a60019fe17e0e98550c2bcd9e992092c8864ba592c9bd483bf2dc36f850cb717212004b164b803049e3c454d863b44e849c97007082d558e9255fe0c5749d4206baadc4264275dcaebd2a59cfe73d659679da52844c621f3c8cd24929b883c6fdaeb160b2c14adb0428f0c193f2c2caa95151d1595a11831724ca6201830582f5e0459b970a12a957e52525a28283d24d20dc639a351d0b6e1689a4e96adee1d823660c61ee6191b16b401f3f5306f43e0cfeaf8734decca32b12c2a447fda6b0a944ba6773b27a63fee348832c18ab027d810d60423c286b02649e0ef0ec18fb6be1b1424747f80220c58939b036d9874746c4ecb23b9adc5d8f4de4ba44974daeb6f31657f539eb3c392f08898122810b5a0d01a72c29c42d29f643417507705b5e7c43dd77ab1dabb7ceecd6e184d91e5cb01333301cb975f69b2ff6de5a629b24f6e72669309a1df0297430b4f80395b784880169ed2f92db4d0420b2fb9d9827b0b2db86743329bf632211609fcd1564ea6ad3e7d9745d4a78f1ec9fdf2863229fab01e9f211963d2278cd5a7ef0ef9441884f4a907da803f9e5b67c50acaad211974f9604732a6b24fae9e9bef0eedfce4641a19ee4c5194e76cb5f864eebf3bd4f2274abdb7df03f8cf2480ff70005a7f2f9b246097d7d13dddf1d32fc000f86b5bd2e56bb4e7ff5f3519972e068fc3a596440da0fb4c02e85a5d005ab9bf8593e104d3b7dfd29203b66476e586771d03a50b8c0400f7c155c77d574deee7b81e9e9ffb6c13cb240bc96e3313a4499f22518699056e264893d61443f9bb433b5304a1e27d32849bfcd92128695464925b447d8a4ec830afc0cd04212aea229e3ec526649865703341787a648f4f9f221332cc2cdc4c109f1fff39d2a7d8ca30af7033418ea8a62a499fe21232cc2adc4c90243a5447a84f510919e618dc4c10a1a13a44449f621232cc266e260811393607a84fb14986190637130428e80a62d2a788840cf30b6e26081316c60aa2a44ff108196617dc4c1025415637c8ea489fa21619e6123763734495a97cfa148732cc29dc8c8dcf8ff6d3a44fd1081966146ec6a6496b6bf104488a28a288228e1c3972e4c89123478e1c3972a488228a28e2060b9b8cf3cdbabb1e6eaf2218b6a7434aef0efa5cff2b80ec28f786a125bae0ffcd6ed8d227fab33fe6e624f4688b53da929bbb628065ce470ee678448b392fc0d1a62927c3099e4fbf7bf69cb355d3c89d7fa1500d1310f6c161624b98e56bb93a38d265e2d34d4997ce9ec9b4719167f526e993567b6137d3b61126a1acf22db97801c31443658545c60a2c3cd765d97fbe2dd90694e7b7f8b437bfd3645a2da256006e0032cac97c53d6ae6ea502feb2562b236a54fdf9770019e53c93b82f6b65445cd692383795b55aadb8a202feb016d6c2885ad086cc1325aee26adbb62dc66fdbb66ddc6fdbb66d307edbb66d63f96ddbb62dfb6ddbb64de5b76ddbb66ddbb6cdf4dbb66d9bffb66ddbf6e2b76ddbb66ddbb68f495cfcb66ddbb66ddb564af98dfeb66ddbb66d1afe6d236d5fd264b66d658518cf828c182e8c70cfc20a3256626c294660acc480b1a11861598901632319c962c0d8326c4425068c2d1b1981b16577336282b1655733e25b763d33f262cbae5f2331bb1e31232eb2ebf132925d2fa55cd9bd7465873ae5b65ec315a8bd799b34a2d848c3b8a64fda4f9b9c5d94213779aea00d8903a75192c5ca61a95ebc7cf9a451d24ef9b2a84f2bbc7cf9d3287719e472c8a54f9f4a2f5f266994bb54e292c725932c5faafa14e3e5cb54a3dcde609c7c4279f9dd84a8f5a4256b86fa04a3a751339562a57e523c7dba2fbf8968d4b447721225597ee3f4c945a3a6b5c1f2e3933e01356a5aa1dc6ad2224a79f951a751d4ae704fa6964826e24896f425f6261b1c6972a3284bbacc37097d32348ab66ce8530f3cea713dae917a31b1e0d297a16aea5ba44abacc1ed9cb178026235759b6242ac32b9f9228acd54ab552ad549e188ba562a95813c31c73ccbd255198b5de4a49d4d56aa55aa9d675cd6b5e73b224eabae635af395b12755df39ad7b4ad56aa956aa5541265592c154bc552b124caaa542c154bc5cad3a6a4cb7c6b53f36b4aa26a4bbaccb716e3562acf7fc1451e954455968c9fb3aa5855a562f9cf84ed7c395a216bc96059e93e93a9fb30ee02b0955aa617ad52ab458bc132bd60955800c85030d58b12a642c154f3bb0b034bbd286129142c85a5f27c0ebbad124aebb6642bcfffcb05ab84c2ba2c399f051b55a64b65e7af5053ae14cabd52f24acd974169abd59af98b3cac186462759695e7afe460cf9f5c59d5b52a6955d4aaf06885e8499e44eda56e4ada14b5a9cb55e836843bd79644612ddb226d314aedcd0da85de66f4279c274654914d6b2b8b2f206c403079adc1dd69a4158cb84b530d6caf34d5a5cb537ff2a82fd31cca74fd8fcac2521bc1ea6b3ce240e66b9ead3b7b164cfec2c79286762613f7f03ead3fdf96d2e378523e79b4c18e3e469b1e9626ec455e8f56f5c8f986fb0b95db8336585e3733652d90267dff7592a4cc01ff6d75f4fbb1eee4300ba5591e77f2f99ba64fa1c446d2c4a23849700b26b24c0dce86b9c8d903c9f729187a54d37ae567165a170537366ad3ce9160544d99f1b15797ee46994ed6a079b499eacf6e6f7f06c4380e54fac8a61838a524a29a594524a29a536a0f429a594524a29a594524a99e0a6f65c47ee8f52daf092e1c796a13d6b313699decbd146ef0ee506587ecb90d90ff2d488e1e5056fc67f2ca51ceda11881539e04fab789258a4f32ac1192e1a908b6d92b8a62d6df296823663e58130c9169d72366235fcb8c79b5c4c89594eb95ebc76ee5fa16e8c119f0e45fff059eecd7a87d7bb1b5eb997495d8a7daa34f9dda10e0da15917f41148cfde1700cbfa1ff9172e7744ad617da853e8c44754abad03799308c91656ce993fd0a6d263519ebb27b21d5b7fed65311861fa08dfaf41b0878ca9e7e0b0151dad3118caf5315bad8cf38093d6bff72f631ce7eed5c6bb00e497d153aa5e5643891f269ad37feea5cb666b6e4c22b8630ccf6b6b438296bcffe37a04910431b0db35be7b2bb645780cdc7cc68796f17efee9632116ab3237d78be3f76ec514af944500dd10aa0a6699aa6699aa6699ae622e51f638c354dd3344dd3344dd3344dd3344dd3344dd3344dd334adf49af6a55249d3fedeac3519cdb314eeebbcbde310d12cd43e8573d17d316f9f524a29a57cd44a2958d3344dd3344d4b49d1344dd3344dd31e6a9aa6695f35194dd35048afa19034ad6a339af6303d1f73fe236edaf6b41f7150bbe11d6c0f4672306b9ccce436f9020558e8c09714420a299554aa2801f747f9f4bb5bfee4788c24572330dfe77b9e1dc88e8023507b30c2ee39b7165c6849105fc6b7a227b764b863051179488619ea7c963f3599197daa5fbb18f451089e4f236bc66a6d700d37c49c99a876a3338434a64a16f8b3de3c6013cb67d97db86b987f43cc157bfbf2bd17a08dab06ec2b02b21cc54cb508d4a79d515a1fa6aff91d8879f6bc50ce95fece315725388ff5c93106e812219c027f70f53954601ad0279f9a0cb576769c8c8c2db0ff0b95e1c47d46b91afac9f4e5b72af7dfe883d8d334402d5e149d39a8842c99aa82d4291a0106800002d315000030100c064422814096c7a922fa0114800c799a42725c1d49a3590ec528ca1963102186004080000000111a9a51003875e8b5b2974b7b89aad7caa94fe08db58213cb46cfc7ded1e1636de8b9d857f45c6c1d3798da8bd15eae562f8561dc1ac203a5ac6cd52632a0caa91f725cbe89c4ec7744e94b9181b89dcf3121fcacdc56d09830fc4f190fcbaddc8ed2f9e9b4cd009e49ea545ab955ff0fb91889b37c9241d725cac10d0c4be9354438779d041e52002c824a42718eb331150059d20175e5a70f22d18118d36670a4f035ab2056f5b1cf604e6d3aa16875fd2c2840868bf74419770abd730b7e70fcea5f6e217a44a4170d1b751ce76c3006be87d6d47eddf4528c88579a0ed4eed84265b24f89117a0c1a89d3c76360e6678813ae4e7caf3d3916889011f5a60a05df64607d21c83b29c31a5869529c9838e0685b0831df40c630a083d64e788afbde61f0713c18939e07f75c48c661fd3e749700579375511680b3b928c0c0bb7c15935a6b76a603c569739eb8072675ca71037782a6a873808c7a91afd7210ab6f7c25d7557d2d28600fa6fa2007703eee346ec0abffcc68191012032e897ef06898a680c74f545dca4cd1595baddfd2042627f3912e5f5fe4f1067f064b1077acb2da7dd3165e100fb2e3d9ea88faa11a038f4f017dda67eee82f807d3487367a6c00723f8386e2a8bae4544deb21fcce77169068f9771f97712e12d166dc38cc76a97488fa15026d2404f8f620dd2e467ee147c58444e66279648de65e55d2cbec7daf758793feb77b35cefd52cac9598215747a64c58790feb77b2fc3eebde63f51dcec2f4dd6b3856480d4170e1ef39d0c9433c1c0b19ae3122560ce047a19bdf69dcb1f252045c2699f83d8f151a38447173cd2575295b63283a4c63d7ac857a1ca08aae320191584f190f8a962935cadc2ce6638f80c2abf8f9e6d87197b125549d05f288fdb8c285ac325592b3cecf12f81182871ce3d0d0eab2386ae48a5c21b37c2c5ffb1ee6b489802ecd60984d5f4092d91079aa256fccbe57215c43d6f75a142430cf47892036302c84a8b2ec14a48a383b180c62a9986c0b528d1813004e441420f785a7468894991715c7efe9d36b5161dc14821a2164307c882822b5e13c8bc8293ab98c5ba75bb88660f50a8588463e654e9111af822ce1bfd8a28a04709c53a4c092f339a576032462b917b6349668ffb8fdbf872ce18c2ec77db9b9dc6328e17a2be74eb63961507c9933e8d75949ddabf2245c6d98e9bec92168ead225edcd3888f16ab99075f6715fbf937053e492bcb56152fb9653d0a9a34abcaf734ad87ab0d0bfcc3168ebd624e5e141f2abdcd12bbd21a8e554ab788fcc0f05ba6c3df8bcafbee03e893c90db80362520e8310190e0b015de98a2a1f17e6f54becefa4e4ce96e79b24b4bbb4cc4952b773ed36a90a458610d60969752135a86fea6947aff89af25892a273e0def14ee419cb9a9ab236d50d93b42523040b69a41f4460c8e88d80d648207934f9e23e2fe0a7fa6b2f02e42ca19a076adaa0d79261dbc86068bb036797921c58bb89599aa1d4039d930a421f6d9a4bc2021330c61c0fb0c2aed42e4bb680d5dcc0aea3e211d929941b099517f32a07271697d76fb07b72c838acb29810f22cd2ab3045c7d496640d1a3b0586741b75905d5a3b7496f1751ef22404d952e02f72cc14fc1e2d8d16807e78221d56d1f91254820e2a90c1213030529c298b76cace6150820c54081c0d0015a8774374151af1b8446f016627082b249b220dce6319f4c896a93fc0acdea7c438cd1cd47ba4a8486847517948422a8870971f2031402812d2042b019cda08d58f137c44ec21de9d8b48fd6d60409efd82c9a2a043202a369264f567ae2d44d0874798e7ae903408f30c5b3492da78ce00b0eae68b0bcc67da377889dd128c625547f60ecab455a24c30044afbc0ce50094c085038ab63a3d0677b5c52e32e392c635346fa5c712e4afbafb4cc1ade4a0141892d9650bebc2428d2a4773b1d7713797e866ac4a353eaa9c17fd54cf2d7f61d8cc85e3c00116972d7829844138073b7c39873958470be472622a9d9b26427d1ac89ced710ad5a2b495eca08be572b7c7ed2445a6f2fabcde2a92e27fc1f9a6219e8a28537af6ef23407876a5bbb93449e833e8f63e2ca4edb565591c0c1e0a0e8505a4b981648510e8eb9f4e471b58c089a84adf2ebc34108697747de3e696dcf7268d1ef5852164884312193af5fc413ddba42bb7d2a59054ec50122470260e703645a4f366ecef40ab6087ccc12a22863c9310824d715523ae57766572c5f5758475336724b9496127301a4515e01c8390b3c50480a048db635b21d6085dae4baaa93a762a511202681128183fea6b1634e589cf3c32a04f22e6da3d88685422cef206d70cf631df2b1d7a926992eb1d6c0436a38a5eb84f6005733584f9c380bf6476e4dc390ab45275c1847452932742c5ba4a08f58676201f04033ad695737d935a1093b012ab1745f5cba4037def88e52ba82b0ab15901bd9ad40ebd2caf64c09d275e953aaa35164e31cdca18cd29fdac35be5246a843b0b837296a95d2b10e04e51ea4bc6cec1657f05e4064f5d14b014b28a89fa5d478f16aebac00ea736b108d08e6941a5f5d3800dd0ab79e3c3277472170012963ce51115e8c63f4993e6e6dc90c9625735a9b4ff0a5f182a2e36b4c9ca42bbba0b5ea7ae2cf3757f53c8ccdd7b1d473aeed93f73a825c794d3bb1a7848a50ef38e2421bb1e7a9c117580e7ce16b0f1a2c0c680fc088456395faa3acb399f9ac3ac15521602a8373d9d820e903536acf2c31cd1121471d35494fce596cbba005becdace5aeec793f2b0b3c7aac556f89505c2b44986ae78eb41b3b8558c8901a44916fd3a9859d25c67648032abffb15379a3bbc5adab3804e0c90d004c4e54d07b90cdabc8253b95c769254f86054d01160b141316ff0709ece641ff18905c70d7d21640b12bc2032666cc588cab191c8bc37a4df83a2f8d734c2cc2ee51d1df8544a08f72028e1e6f93560c90f69c0a08c7db49266a5f431f6722510da77125141fd9b9a41ff7851173e8c7ec3766d7a8f203fa0bed45ef4e14f39c7c3ad93c71ec5a666376058fafb52a62d3a5738f2b84b0ed525b5137752430f18cd2695299300e1dc90c6cc5b6fb9a556ad6ce1859d1d44bddb6c0b0fbd4b217da8c000db9e6f9b65c7690346f66cc10221e4083758b00cbbcc915710bc0e1a2fe3984717279fd2dbf85900cdc6ac06ac8057fdca00ac44ef86a2bd5bfe2f53a251f7b6ba0bbe27a6c55fabbc306516f595fb754015907f37dbbbd28ade57f71c6be54a26a59b360b66adda8490e3a8af70f06b71a914c1cc6ec43b3d838bb40995f41ec44d42876fc42bed1e13f9df11f786b6f88f7e870b3ae356729ea7aa6c656c9f8e498a82b62d05567db27e5a20b39e740a0e55a019e793cab698be2dcf72e7cc105c0b22d907033df67a46c46981fc0ccba3d6cb7d16ce470b24d96b083c6d12ec72504ea205b22d825fbc082a5e4c14f277501f6ed91467c1b2d4662d91ffdcc82ebb2b994ae061f04c0c5e335381369822ce6070b265cda044ad1aa425a6d8d2559135593cbb2acf1a0d4284688e6293c34135fb0a12539b8d23d111cf0eefc7840eb8f5d47deb8bf7fb00f82958345fd89e203f907420b5924b92a21fd7ea7f4b8971b7bd853bf10e1dda2d06c4ff979617c17431c84a072391221de90b82563ae28557562148a2544370100e0f17635dd980b36f6e7f64c7f9770328488afe0e4f297fd3bd3aaa93a88039913c1e375ed6749d6ef3a5e72f1ebf2f16130e9160ed60265830f2b2cbde5b02b6ce628ca0cb262785205c2f00a242f3b517ef9caba4ac75673d10d6d94baa640c9fc69d6975d4f1c5efdc7b37afbff91bedbe1d6da5c49a1d5713e252a65ff867847b02bf0d80b1b495e783cf7a3ae0e0a1e736e0493602663ae257ed24340f03a5854b1be4a3c2033a9c891a56f1a3e4cf1ad5e3f4e7335f1732cc1ad20307208538bcb8f5e223488f4d20030065ca79bdb2f8db7bd6c0d523c282f34ed61bc14268d3cd74a0487836560a4b70d34f8c03ee9a5d7c656ec76dace14e6bb3a5f10830863cda5cf6bc84df634b0a544a1ab92d86a577ee4f1ee7ac7b2dfe4bcb2f99731e595a420ceeb66e7f1c21709610af928b2c8ed957d9d3e82b8867fb98cd985d5a7c4d0a6b688897c6397aa5f3d2a348836eb12211d77d755f43fb2cca819d5983d03d83fd6d5ad54c3724fc0fb896ad3c48e0d6088457d837a3d10d50b3f243849bc807575da6747e8b8d0e53f7b51904fe79e364efce4336a8e23317bb07d94f4e651419db5e8db2c3e46c6a698cd9af97430756abc43d0d55e734015fd2c8717df232db19821010019cba4a1f2c4d2d7b72c5c05bc5482b0f427cccc902deb475d1605be639ff9c629cae0afdfa8d4cfedbd4d2fd7e076d4549ea2ff67f64d617a8232e36d6a9bfca18ccc8fa0a7b05a0bada8931cebd16361cbcd626131df56c02ff6c23277b2140cc2981da1d7eb87ac0a9693e8de4f414cce08b88d4af5428d649df1ab71543a1cd5c58bc4a0c0e1e15c6ae0eb49676301ca965c872a5f49051e2170a71008aef87a977bce10697e35ba55397b6bedff7c2bbf1756d5e72f82dd79ac96651fc2e20c02ce8bc36fd7da6853141755a88469d9de9f9abc0a66b237722cb1af929d756b1c91d19aa19efd49df1b590415548aaee022257651fbd080c21d59b9943b57979d6c471832da50d708463882495c19ef7160f8272ec8f9f32f9e9a55c08f9ce88d5f00e923b3d945b7d2de91f042620c11a14e16861a50c733111b2be5bd67425a7efe46bdf8751ea16a0bbab0604f73c0206375c00549981c74b46de4d23a87ca16925ae9beccd84c35d60721e5490949d2c1e3c845c8616dbe029290bdabc13be3ec12257f21b7f18ab4d52ed69b402259db5b02bb1ac6fd982c5fc25f7a724a5f16d52f4438d5f004c573a6472146e77ee02ca3b129db922dcd0f458bcb91d9c9d6920ed79bce2dee71ae997381c6d2de70e5c9bf727c402d236c8fa61b4d92350017fb09e11d6e92086ced57cd7aebb6f492845c60b8a32734d65e140643511a754c8c1b15fa1a80f429b5081546cdbed54fdec2c5aafed643b744b0998dd87f8519b2f7b10ae3573100454fbadc8a4fbb7ed95c28340e01e60147a9719a65477878ca1241deee04f77916a83b52370305ce4b3876290268211b57a01a005595deaaeda07e2193c9beda4c280adccd224a407dd0211d253e8001a973fa4f6228d9fc0559d4231dc8af50ef01ed4b273c04b374f0b0fc7923684f740534b9735b06558039db9b83d7b7ce463a2826b3a79c98412fa8e000940f5f95351c01de81ab25a263378ee93271c350b90a0bf5d52db93ba78e0e21c64f5780a052e01485021c115f4abf86702b6cb15a1d0213da3b2bcfb019776ab1b01eb32d3837002c873e28d10e26ccaaac26369899f0a80c21da782fa452c12203c1af3a63d9f3100bad2949fd361c69ea5784c351b63029cd0f5f2369d49710719b9e2ec0206efd580020b63368000c093cd4e1307426d69262d84ca2e5e2a20b4d9009f9a695f3fe76125cda0b2a61d8b7fdd8083a98443f3e63272fa4a4b9a953cfdb7717cdc5713f4f172837b79b8b479087550222a05b255c856c94ef1b1a05ca62578b9cf7f083e8ec8fb9a3696228f2da4f624dbc55449675e7cdb4c43cc6f4ec8515d14a44a58a3ab03b87a04ede05de15abb1cfb9d409a130fb0ca321dd67954a8f89e08eb3efe418552f9bbb50147fdfd76efcff9e10b069298747bc1bfcd74462b69a3007ae92489cb6fc97482e8332a37e0631ea007d2f958b4865a6b66438c834aec9bede07de13cdcb1a14e72f67c6a3e497ff6f08d2b8e493412edd15083e6dbde28cb7bc86acc8ffd6700f948b7cef31bdcab0045bcf6f38d0ab826c0d906ce7acd450a69af131d064afbc6ef56d4e64d99f861ecb946492a57ba93a75688b3c020af5d81a2490976197831221843e416998235e2a723b327db8534bc659ffda1c3c7b786da4e25406891bf905c317f6cb6a47f06564b9beaa1b1b474203f54d7938b96dd67b641484444f13981d1cf003e890e2a4028c2f5b1f34f5307c064de18020baa5fdacc5aac3a4ac36e3d4a468b725c79443d9f94b777574523af3f0f9fc8e3719863cec627044f95a401c858bd9187d4499b79930c0b684e8c8d18a043b43a6be97719de5d4f81f314984e74eb78872d0b4a9cd03de5aa77faadde10111f43873afc026d31ab54aa0e20beb16c28c91bdac953134f94878ed737b00799816da71f05130ce285e9f258cfe58ab05d5c9d91126954244deb3c5d0ae3c8bc61057afd97fca7e4fd08b0c407577215e1d88e3ea5accae7933bf100fd711a9e37879cd8ce180583aab93f26e10af65fcf1d8cdb716682138aca457d78c4be525a891702dfb0113b95476963d9ea1445e859f5e02e0b5b3d3dbba0498176dd401755d40b0156017914239d6af6c7d05e4b2250bfb7fef593b9b8d69179c0ad3f7111ec0dea9bece9f2148862166ce702f9334118f7c4583d34fee60e26c08f1f01aed7dc21d56b74dbe906afcd81bbaf08ee00221a93fe23df212a018d18d78c2582ed376d5099e4b7a80824563ca18b723d520288dd7470c9222a8535530cdc7294e6818344b950086ef8c3a7208ebc53dd88c04d7bd8d9b47c0c6923b95a5775a59f55fcfcd39d9fe3ec2a30a0e3a64e610c935f2aa03a051f6a51b2db6b32cfa74ba2d48c002774ab977c6928fc930388094a96a6b10092149e95b6672ff3d9396331e9d6cf6f91809422f2be931a31eb13172a60dd2409aa4c6cc9786bc8bbf33d38892907ad4d69305b957087629e7e811a589132ed99220a2c912cdab8dc58a61e93e4400bb43e062625734f44007293cefcd87133d2219c944d295b888a646a19d27a1a8fe6b0fe98fa2c28e04060c3c2a460b0d7d0e4cca8b56eefb7841b4dc57c828c52d827c29f710ec0f0b00af78bc5c9db54f0deaf2dafbed2750e5433f36348feb8cadb1730613e1b7c0eca577e39b4869c7fc00e141f3acd97f12ff4e1765ff8966fbc04ac2d33a34d994057b17005ef1d9fc6e51637e623feef253c37a1112bcf105653e766e14660168b70356e2ccca2b10b644ce66771b4ea09eec5f1f96f09a20d08bcb4cd27abd7b442a933a0c2c2177621e6dc1f3c52552d5aa54d8add2b2902618571e023779df1d22ffa81026c9e6c70eb6298ae13703f81339d4e188ae2e71a85e7577aea2ab8be3f8fecbcb74e1425ca8cfce472d9a465bcacbe9ce2604a048a831af1740fa9dc7129cea8704b5a7f10ada12b9d9214ab0459a7e1caad30611644c16ed9a901c81682f1ebb92caa09f56bc75b1233b05cb0628ce97645bbc82587f161724816bb0940c19d83d497a8ff0b77921343e430034f07c2b223b60777a5d86bbe82924d5803afecebdb451e2307499990772f37f099d4e977a2324d0f04eab584c051fd8d07d2f04c9ce55218529a6f6bf04a187c2b8fa984217d6fdb7a56dea41919613ce43d7afd499c78349772fc00174be9ec7bbdcde6dd27d57a218a719dedfc892cc5745742e20de7a8d7397c6cc13c739cd6b11e360956178329527d9c70379b81056eb85180f5e8afc7922c70c929d55b051010732309a808325cf2a3b696ad3eced396cd5dc8a9764be5db58e71c0408c3d492aa31447e0e76eaf1bc2b49b0e1e080a89074d6ab915898c03cd65f6ab2a78c38b30fcae9ad15ed27a070716e5c13404d92a41c6cf956e42c8d20c39e30b221da15259a6081a28b9faa71dbfbf1803bef12c4256fae6a5c3c3f28520b34887da1e1648e8a6fa0cb54273760c09d8a2cc234966f760c1ecf002a95e7f290b5995ed99802f3a6a2a6bf64cf546b876eb191693a0bacea08344435ce13d516b9002386080b239230e385ffe36c7afe470086d92418618205b6681f65e71e61a76c4f83b289ee98656f5fc903d914dd686c16242d49498fd679a803fc88e0cb4ed0a8e54f86a9d9b25c1be26f4d6cf15ea8b253c5d9cf6b0e3b75c437e3943b1cc484ab72d37763cd724aa7ab84a3403d6e80c47d87b9715df80a488b68588c6ae01c0f9ba5578e441c192914eb6c1989a2c14699ce0de770142be3d5b1eb6e9399b1ba35782250162fb7abc3531e850104d9c94fef3253cf35b364813ab248b090b1b62220af5b18e3fc945f89cd482bc1e133b18fc4aed842c0a69489c919320cd70949d2d1b5e1e7f901fe65303e4bc7aa7fce219a8ec318931132a0059b1c6db649a5367bfa3a1a42c21d5064b5e18630de7f56b331783d74fe774252a6ed1daa18339563e114e8235e044b01b778072d3ff1b0773cdf18c122d39ffd515d572e998581935b320a0f059a89c57cac9226311cf949c8daf9825e58b941abdae3e28dfc958ded8d786769e64047971582d73fec64f6d31e294eccddabd3eac505deebac6de650919c67bfeea4f73f4a255722bcb529c795648413ffeac1f676850a70e07b2f4a230f729775ca7b6aeaf7686903f2886ab9f79b21c87d581b2416b1054e43d34c2e46c992a221ac71d3938343f6f65b316bd14bd2258cd14a7abdb01fadb6cf647a1dda352e13274a28f90c9c58c8102514b0bbdf8bd7abe6cd328a1f0f1f4eff2f06d87f79db7e939963e3bad19b6cda314ebb833264f2eed3443429ccd19854ae11849aacd1e94d3f853bea4fdc26a5ce67db4d3a961555071fe67acb462428f2492448d0923b47a6e860b06338cadd10373754e0de18bb016f33dd8bd788b54a1f1b6de8fb82db350680a954234a0d51bb8817ad28ea53d294b444f3e44d6e9d65a1153949225c5918505d3e3c427368631383243ddeb958cd87f679c280ab747c51359951685cc6571dd35dacb09ec46ab5cfd02a0d291df8e92f9d48b8039f769331fb8bab898766374218a458e329ac5181e5aaab9ea478064393e297bc48da25208f1735a4544ad31bb6507f98c7aae00106575be7865747d0f3ce8ed9a95cb27db298f66c7e0721a9566beb48026a90b4a4588e83bb50839c62bf88f5bba0329b7b6fc30b70a0159f4fd585f170e07ba4cbeaee74f2b8bcb531339bed6bcab3e599b955b907fcf2e7e1dabc556e0109f5d34c6fdb39ed956eabe29a1253817764fcbbf33d8324381a33552820a36c4ae909415006978089b999258f6260656db2a468bd631b67a815a457993ce7e158faa018a20d18f42db5512b4304e3c39b7c9dbc3ba816373b459a3062b5d51ae36fb10625041738aed873d4aa6a506162aa0be670e15721552b191f9194c26554316cd9512386addae77899839a1049674605877f38a68d40eec3cb36851aa4e4e6bb8308d316bed512f4d8136f345951e6bb91fbd65f0761b2208b537d01c71c1145773360bd1033a3cd21aa3dad2bec46a4afe9eb15c552bc7f64b0d47fbce7f0f3fa161158b8ba145c9c2737f21eac133ff230c8324da9d3b59ee3ba336b1170fb4e2793aa022484dfa41b75bb4cabd0bb0de6b53ef3f895e9c305df2e64249f7ef04387e34a20c116716ebd3947e029b3bffaae6ce28fbba7f8544284fc7a472508237e8330072c103eb65c0b4ff678eec8b6b849b64ab6c349bf1258057384d25e72fab8111496c46a002bcb06c900ca1db34d8f6cf983f8b20fc0860362c8ee3ab7299ff79b529961a7ecb4c6907dd22b1ecfa4a5f84405c0f1981af07663f7aa8930747b00311c731127bb83a91e00fdf5c96b773df0cbaf1d724b8c7d163e0af701ad35e52a711c718cc318f2ac0c7299a7e98ce368b29306dfc113630de2d0049f0dbeb2c7d98dcc4984150e9f7b67508e868790fcd1416fe634d9f13845d6e0c12be044e8411984e0df836ed6f1ee237882b0fee166ef8c0ca43004011bc455c3b955485019a93904fc77a6ba91e852d079ad28f915758ee6b5b8216603b5fb3945add080041b86cd2848c1ce09131108ab9f7448d21922eff4899cceb00c1b760742a7b2a9f71a41908854908bb05eedf1995735ed7813e4d88929ec6b62e0de29377683a28a72799514c5035418506dafd33d9966515223a8a76aef1bac1128a9934d1949f7f23b57906fb000520539b0b00f1e8588f94f94d4c1f55c9a2d92316731ee2d087c0e833520c7342782b283f0f694f7b6097e75bf8c267600f5cb575ee2c435c007f98256c4f882c4229c2589c686ca58eb0a844c6323758b9fc35479c738d006efae84de0a2345c72ce01092c5268b721d3b1e45299cc41e6887f7374eadb26d610b62eca056f5310a23d7529f6302d1c031bb45830fd2e4a0b1f179d07a67c6a3f38b4281ee089565b4694172bcf9e3611a7b037c00ea4e91e0792b7ab539da0582e8bfe410df66f10f1383d6415a3f71b7fba45363b008529336f01a252777932928d39b60d7d5185c5c190049307fcc81821275865288bde7cd2dfef52dfb4726252d604554fd82a9fc0b4cdf641e8d0001b2164111b4b47ee322f0b51dc68d0aa2f010c5b4452d8bc014bd338e82d8c80ac3cd51d825b7974560786d9ebb2e0c21a74ed498ea64e4d9f8dfda4eefa38510b0d0a8e5355d158cadb292f5ea467fb4192076521645ca24aed9b30a70e7cec7edb954f66ec3de65671712479d398c386ba02b0bfb4e59984e856a6db6a649f62880e8ce3c09252cf8317a39fffd69977d5ed01b526fbfddfa7fc7eb886e35f6252652dab31a909fe8a303585521b1c7cf5ff4ac76597d301131ff67fefe15a63832e513b05010cfa352c734064d9d68b6e0cd26ccdb2e5a0e76143829f1999781bf4a736c3b7466814ae64e00ed7e3b8e121b1da0983ec4893b6fad39a5f0b459cfb379da3f364902969a163f50db1a90dca915020c1904ce9d8f78a34929109fd8cc126fe322bf005c5fe49fdf63dde5bb9378a8906063aeb8f79e9f9aa5d440faf3a63f34339ff4786274b9f5f40d1e223358f5c8531d424447c418020f419e0fffd08e1daf07c66008e6b2c097126ed6510388f43cda197b1192cf60c8873e269f4d0b17fec3ecdb19bd14f322e569341830bdc7d5d311b1741a276b4c6782e96946ac4caf4bc46915c132ed7d4e0b427420519e6b0f6554d9a484ae389465c69592a4b228af2913a594c1a13c876d94aa8690725d6ba75de15d5b052e24a00546afc26ae3872dd9e5ca2c8a412c1deb1ed35ace47559f865dbbe5dd5c0a839d0facdfef56e9aec2a9cefa92d9d52c1ff7ec336337facab46241f6ef8ae1702fb9942ecac0db2c291fe2e5a1eee708bc0821ae408476217841bfa82729adcc3f9a83598c200ec5c4ac9c0206113d3b244796d10a7ca019abed7c02e3a03331e0104d9defd934cb60206738108b642e0dcc8b36cfd656f78d08e25a1968fdf55b5dd6db78e7d345436263e65be2b28223afc79acb0968bab1a85c5ba68ed7a9800fd6bdbb8b3f602f82aa8fd98e6419e4c86290042f7a23c32b2832f0b2dc9f2005f66af0504169d331ec9d195a8206fc7c85e99146d845ec79cb279c5c8c0981e3f8bd76ed6b98ba01c4adce425336a888d4663b6508c09a6861b8012b368123e16b26966b8852a73d6ec26f9964ba10e0795cd50323e0b79ae83ad40958a21f0f552d07791c1157ff315c0c5e04617f3e1d7ed6b0025a1b5ffaa7fb35aa4bcc012179fdb6df006a89142c668e093fc98c95b0021e81fe2075794906769d43fa097e36a484f0c0244569d33dd308732090dd8cae7a158e17829caa29da62f12f1e1126d29720597112fb511e285169beda042542d507e282c46f49889cf89152b0a3c4bfe5147f1b2133c62d6b26c128ec3a5554bd9d0183182a01e715f9374c584e66204e7b965127c03f9ef284b5098b2b2a1ff866d4bf37f260b955cb868dfb653824f72b0a96256c877f50c8c019d37ec7a958443ecd02d239173cb1c9acc45a72f30d628eb5b8202a11776e2d9e8a4e95d6048410e3b8b6287f1e23c131c0229b7871dacb9e982884407e49ad09b1a3c1ef15b7bf2c96c1fe55773a0c2eb54b4e8ffa81cc416bc7fbe6429e329a0a470938e657f7181873397329fe5b4b5d06f0d14c6c3939209b325489c24a37181a53c1109cd1202c449650d2de506f74574a3ba1866628b86a726c12ebf6259d699ec749d0eede4bbf19f67deddd5802dba006aba138ad3c25cca227e871b69dc4eab5483159a32d3fe51485f5e6ff9bb660e62f67528974e01bf3ce3ab9894ad24627848a804c4eb54de8b965509a706394da0c885e188a198028134ef27879a413ceb8dc21591fe3e0664d595ff1bf34a360f407d1c695f44fd74d38799d124835ee8526a0e4765d68d368317efea2ec568b198029ab42a85bbbc5ac2adaa74a0c97d00b4796d534c4227a7cc71924a730a523e981545e401a938da0ffb5232407eddab0bd283caa4ddad0aebf6a917b910473eb9d14d163c69d1bc7c7986c9c945af4eea62a965c640148b4c8d30129c6ab85f39e2a326d84bb295ffb85bba4adf2db17024784cb5e6eb5ef7e3178b1544b2f7fd05bd366705258ab378630f7eda5f0a246c0467d2c4b5d278932fcd824c0703c6ccdd67701ce923217b71ae9bbcfd2447289690fac045a57f4b906a04d279b34783266295e9ecdbc3992dc14e248eb84bc80ba8f6ea19dd0db83188330fe52b1f082ad4e4c001658ae03ee0c09c927da102acb9f5b51230fc48c58f7ab85bb2b170039fc9ba55c3959cdc7af8698c6adad6bfd5d796380200b6cd946c9be325a8d611e2e890c8dd5a2c6f6c6648dbdbe5cd52d62f62bd7aebdbab0ad7ac095993192c5623bc5f751a10138c90dd7b57f0b298e1c70786a390b6c67f210d92c941bef6635acbcfe490287fa717dc259218dfc18856d98a450deb9e63425e8f001875f6c4c47a2c04398e20bbc58da12844e65e9414289cb61c202abe9eded57a89661c69c26b2ecbb5192f3c80849918a71ac9f2fde82c319565d632262f4fabaf88e60dca3bffcad93783bab1b03c84adb814f94c55fb7a4f82d49f2878053c84788465a8c0dd58be9b3fbf6b53f58f695a986eb9e33754adf2bc4920d3bf6fc76527b77e49576a4ae02d186c491f3c1e000e20d257a1c79b255b22e4f9b061e34ad2706d5e3e728161a0b822ae1a2323f30ab6698681f77854a39ebc8797a40b4a4d15e1eba63eb7d49432943b3cf33bd3a9c8f3347b1404ce52480b339ade2270802805f5bca80eb0ab8fc3b1e3bccc3c20038c148c7e0270ae73151d078936ffbf092522f10a98abb89487b79b1291b88722bb10f4bd2cd80d94fe75af0279483fc910e23defb27c636826b9aa191abd14c69e04aae3998b7ff95c728f41e1205212d001ea05611200f030a1de11e60ebefdb83521203f5af31f1418cfe4389d9590522856e52a58099c19fd65360a7a4e01ef631c9ef3b1197d1fd973009f55a41477605bc42f41928a3b8a1e2f885478eba85b6c0b4116a5659d4d47f0a22c0fd21d507ccd76132b1f4e3ec90722876f5edf4050650cf288d31ade7fbef0933e3a530006addc6d82bd76c17763871cb188836e55f90f953ce010e30538f011606f5ab1f0252901eb90d2180d5e7f9553ee551eb4cfe8ef5307071118c87e0aa3894a82d894051e2b5e10dece4a3bb69cceea908cd5b169d35efb67e8fe4d64fc20b216b31da4b8df9df529589868e3dc8d68d698d1a6ff214deb8a9fb35116e34dc1ef249ef47a1ef19475d48a16eff2d73c0966550712a5fbb20b6d23effe869965855d90ffb0bd84f445907377b245b821081491e28a6b9571d407c5f2f45d8583f155d94a6fa6a34342940428a85a739c3e07314fb34c4c660db8028f0c50c3686699adbaa7d251c1a536b44e9f9ae2b9f983ed65cb27cac4757f0095571ddec284e37cfb441d2be2c0f7a489efdeccd271fa10db6b9c1d31adbf65dc2769c3a159950fc67b751fe330877f10b91127bb1755563d352162695d7a1494724fde4e2ba5708f133cdd3b0866986f9e63425cd20048e2a8736a930c6f2ad0de4fd705d7cf97c9a02493a44ced2734b8352ca6846943f6fe5546b7287bcd5a8547916832c228368c476036040279437ac4cef2e56a6e990eb906b25f1ba3898e09644df5bd79363076c571ff98df33240fbc4f5e672511312c14a9d7edb861a5cb2756f235f9075031a6c417b2c092364a49091c331b519252bfbfc0e14cdfa21d7aff5bd69c99182583279f15abffdeb030ffb68ee2553bad4eec1aa6f4eb18e3a978503b438c0bb79d22bbb4101423fb30af8ccb0a14aa1a4c7b33ac3ccba055ec310defb2e20c5280510f66a9caaad541d6da318b477239fd679cbb80ebb4b551f0d02cbb7e414e089779bd47d9887763805105cd3076bd46c4e39a107b075ee98bf8807305510c771f1319bf1c77417c4b430379087fec2f872a21e333fd2278c33798bba846bf1984da88a94bd533f227c4ce1f6b089b51ed370f633240c17818a507b705ed7155badc722c2e35661910cc1bc616ab07e9ff2050ad5ea3b0508537617f83836ac15cba8156de15b0a6b55aa19b964d3be159912263dab3e8f9d4f16473c5c4900f5e8a73a332785a9edef217b3196df8a05b75e6615edfb905d0ce3b7d2c02def5945fb3d0453bad3442d0b0547fd9fada8d7648866124aabbe6e07fe9838d1e97b3b7b268048bc0a3ec24c747ab58dca2c82952aef6d809f512716f2deee46a6cd55d1688b4b5b018c4eb3b63b7fc422deafaaa910a6f405c7a447fc952b3806e7f1d24b4126565660a09be3600d85619b1f61011d1493c06d6d2e012507f62121b2481f4145fe3f88422445a36cbe2e698301508c56e265d0276c4a6a7f7f456bc89b9bd04565a8704e6bbe1069c19c35426c76d505a9bb800a09bbb9491bb255c02e0050ce78f3e855860c1686c1dbe1e66f2de55dcd3c49556c827a245888ac97c531d76c180fb9a6868263e2c013f3e347ad8ff80a8c10b5bf78d01436cb9356a07ad258776de09c67fa57297fcec20d71951e5f331b93d4a56327ac350a80cb599b7fc579eaf17622dbb1589e35e5b2b1851697f59228b256861e9bfb41bb5ad963b0c5e58e150afddc476ec2e81fcef15dc6d47d86f4316a6f1e7123cecf542d3ccd082e4c4e6d2b212450e493975ddb89a29cd96693e5322da19d218c66cd54ba9ab2d28125d21cc644b78c05458231e2354cda7b9b48264a23656725f8cafcb2c3fca34f99d9221d25466fccdab1d14f311d2b4954b9db7fd42f921dd789b44a23b98bc24d950f15fe5105fb2ec2f098e9fb13804047249056cef2776ca7464d94ca4d43f11df3d35164c2282e0d8b2ff1a76cc2bcb5c59f0354ae280c1f7210ad1517efba2ec5719534156c9d0b0224f04833db4710049202bcd2896da80103dc2153c15e719644263e0794d89ff72c2b3b82a4b014fa4026d6e1ba260e37977620c74ffc864c319af1c04682b3d1219e80ae8d6c37b122cc6e6986e2bb75cfa0fd674e97b2dd8ab9600f50eb46e41f131d774b8de03101f7c8ea3ef7e652773df37299701c23804a5419ac188837415c0854ed3f0d5b9f50a710d7f0e55563128dbf9f3291591195a938c77bd0f91c9a311845e3169ea8876936e811b7fa672c510a29a3e04a24be0b09f823513fa48cd091062ee43ba6ab004a3dcc89cdab8fe22efbafc7bbd6b9f929b6992f246bbe9b91970c06495730863ec176a45b0bb0eb3f86fb11cc37b75d109e9f8c9d87be3a156ace227c711961e4d8a9b22bd2894652c6d1d7e4ef53c798b2f062521fcdb1e128f46f5d097ef1037e3890a148fd78de95105b54505729425158e4cc2525ada19f140035abddfb7cfe21731e35b6f8a13ecc215521d33e7b8c08f6c805722c046eee62f4a3f6958ea7c1691185ab6ea1a4600919ac2f08aadbe2796054353124027a8b5d899aa25168c8d7a1a26b3025332f13c04f5a8925b74278b337fdc852b4a8f0c22783d8745c12a3552693098ddaaf20e8b1a18b58159493914a5396828d9b061a59b004c6f01a9c7e5edcf56b7a2be8ce1da1e524a340cf789c2c27c80211b9b446d5c64f6f05054ac8edc0dde5008013bb22500a4258551959a2450442c0a2b71294a02c4d9d44305d566cbe90d34a1cda8ae7475634215d08742927fe7460836c66cba4aba249e581eaaea098dfa6aac0779f9250a27bd2f7270c2e343c7508873259f84c28d046d728286d1c97c25dfe0b9a80f45b69fdc50e4151febe9b459abe536a4198b58a1aad70261af924be7c3895698b4bf86aa1b6c6ad77ac7068c63cfb03736c41330370ede7a1f907ce0f7023ab49ed522cae580309cae92461d6cbd0e415a95009eae266bffb6e09c406e19a21c4e37ed32475245e1df2a9a7e883d5542d6b1271836dcbed50078202618c05f41ac48fc8e3eaf911b9180101d5fcb40a0c8c8b479257ffbff715ad22e68925b41ec301753c87044ed47fca7ffa74bcdbc40bfd989f8d75ed28f7794d0f45db7d34a9ebd54796942433bb40e488b813680f92a5a27136ba0c4c7a6a4821e50593e0e5b6780554ec2a548a0faa6297ca19bd846fbaf63ce9ac576013c22b3493810a7444164c54cbf5cef03d4b1d72f0d9025e8ff4c445bae1531d3efbdf2f3f1065d82d1fc16763c38bab5a8507e5d6007fbaf2fef33aac7fc22744fd012ec318d0adf87379bc74067d07b1e23070d047fdda82d471a26c395b9f63ac1203458377c4d74efc0aa48a158c586411992c67ad81dc7b3b10b0c2390a59ad5f4a45cac782e885049373be84e14c1d4e08ec237ae717793e13304047aec0a1e111e7194ec147edf14c12c12f4b5455696bc44f7122cfac12ac12d77b06ba92b69db9f96930911bd2846b39d427507c789c7692aa38beabfa828b4caa73360a42f6570c813bd609950d8bf73051b451b97eb4f988185adfc28931b3fbc51ed893a4ede7c77f291ac13a22aae28f5cf6050da3bc67a38aac63c3a1e56a933e228fcebcec44ca4ee92c6e777878389d8d42876069244729955dc15741568357f30bc700ac96f76eb4a11d40e5c882e22e6ed157fe5310ebbe53e439c2a4a9283718bb29bcb647e630c54de26358803895c6b1aa89016c14169bc11b2d0315745766ef75709a9fa1196830e445a5023e0652241d409934cf0ce6827639e2359a494cff156d2853817ea1d576bdfaffedac3aed08b5051c9dec746026ddd0b51564c5584fea1e4b820a5721f4ab6eb52119aca67cce3683793a25cbbd30e9670a17071eb81c09e419293dd1ae0581ee1e34b96128f1adac46f391ae35330d3c241f7b5c7374a0da8c85894d144d2767c49f140f04e6cc0fe968b87d28fc49001009b1d157dd41c362c9af2a2dde0d538e3b8089301d0321f87467249e2810b4358cd70681d62e59a47614719754de4eec593f05af4fd83031c5bf5c53b9d293d2bd59503d7b26a0ce4eac2ce2b821f4b022d8b2fdeb9ca361962995f8a6b1bf6993139b41cdfb75a5e38f6a145521feb7849e57dc0b9d3ec5a2310f4e1755540e6d0b1a0202314b6f408cd1ebc9074e0e0c85f978808b1eee0815a9b10f88c8347d070abb6089f7bb1636dfeca6e57acd95b63bd6ebc8f053560250c2a88cc8ae96da1afa9a90f2eccea482cb8c506eae8d92cace4a047f72aeb3c31dbcb0d2b47d454b286c8978305c93f44c968a298a6ff0c61586fe8defa6541eb64739dcb7df5d04769ab86edb4c005cf0eddd5ed6582ad551115b80319c5d41218aa68f57a1dddcaa302919f9ef9336b3873465e25450c1df1e4b91f45ae8b96e6c26028afaeeed0d4a3bb474e53c2b4f02b026bcb48a23ea0591da1dd00f0e0f812d2169be9541b87b6655448c2c0f321e44775d38ab5068b9b51de9f92a91909be8a2622d78f0a28566be2a437b528f253ea61411bfc3b05ce8170f8535ed4e8bfd26d059da2717c30819b9e5374fb630a0143b5850b8904ec6f1275cecd6b1f4fbd89dab8e63515c3fdeb68f494ba8486c9a72d94d07456080a9b6a53acc37bf444dec6afaaf20de0e4a12cb875816c0cb8fa7ea83b4f24d06b5520e8311121cf29cbf9585008a5665deeaa5bdcf5a58eecf7cadaba2a92c62d8fb9757f4221058b41df7c47aae0039e1aec2d7aa54989c250ca62a038e3f5ef60b48806e3a23e7943e92442449137649f87ce99133a809604b8288de67e1bfe7a9d92844318bec8ed31c5b4d999249a2d8db19b414dce408541dbb2a2499e249d2397b97a4e13ccb7e2e02ec66f094f6269ef84a741652c3af0c6baecb94e4cdaa49e510d342ec3436198ea0f7e8c376cf8d3f9cd4ddc498d1e35ae85b8c21db70c5a70f6ba30dd383682fbb4392b4fac7bb8e0c5591356c57648ebc09dfeaa88932f309b199963cfd4bf3944db74048d1819f19ea264c48ab5c4795085f6bf00e019a7bc5daaf61ea6c3a6a00faaa5639173839f4805175f6473a5ba97448bb26c596f5363580d8172d36ac7335a4471d4b0055097aef591f09c48984b81d7fd0fd33279dab6827ddc5d80a7023fab7ad26b8c3dab86f0cc0879b883858f72f664389c7e1b57951bfa63f0d4d1498fdd346530408ad758af8516a8a572e91633a0dcd716b08499b7442e0de97131ac2156a7a3671e185d48ab1f22130e8cb5665bf66655a10b1afd6d5f318394e8d84768bef4f64ffa8932d53486ab571f81868f073b164946267b97d465fd4bc89f10b0914f7191fd057ffb83b2796582c7b2ff4fa883ae1cc13b2d5c6e1c30480a93e6b95cf9574dcc238eba8b65481837cb08bcbcf9a219fbe5b1f65fee63e7a141be0de047d804d4c274882608f421bca37bdea909f1e31892a9deeba4a500f1cc8176d727685898c185c38e13ffb987323d63d47ec9555d873a73b82302e3e12b6b291701e5b4f8ed524da791c9ae9b9a0649a008708d37c4a4e14ac078316c5b357968ffa6cc7657d0ee7bc7bdfc829402013429013ab8495610794c88869d91d35038c1518cd1d50cfe2e5c98e696586920340eb7a9de3b4a12a46e92da5983431584a0ba42e043f70e6cb19586d778b717b432acd1f3f663dd611c1bbcaba199f995b282389cfee63fe80ba276018c4a52b1e88aa9eca544612eda6fb347978d872e420fba1862039b69c3247956cf60b905d259b6b960d07aa96cb9d59ce110ae728da9c1c5b26866e10e22cfe112b4850c1965cc000b42a0b52daa7bc341602d707034c898cddb755f017a994e1a33dc6b4796a8360817c042ea1b0c557d944fecba66a4bd9ca07f682ffc0aca618970399029b65b6324deab1e5bacc90f10ad0bed90514cda481da16ddd95d9f3b982c38c90022fb4b873b13a5956c8768aa56c17afa4bfe91258a0762c21fe6f4c58762496e6aba168c0490a947dee009601b4f627ed48aaee0195fb5f5520d36174c41332d2364bee2c738244b8e5a563c43dfccbd1de620250e9bb8fa1d13da5fd4307a049769a3da8368ebfaf3feef5d94796f288fae9c080f280241cd8932ceb4e6216efa22e896f151bcf0291c8ddde81d0587c959377d54981cd3c8c78d0ee4ba8c4f7a9ebfa98c184829b838e3a3505b1c4dd8238d71a846b225cbea8a2e3e904b251f6d3558ba408b534971e404839597c8d258cf9bcd9e53855a38d18070ec61c3495b3c4c86c4db3eb8c7f46f03b1d0f0d3e05ff24926f4d761390d7919bb799dd8bbf46325ece63e2b0718fdebdb96995294a69e877e777b5e4dc0388f0a806e8f0f4c7e05ec46f4b93d6377f2c2aef7ba517113219099a839e97523f311d0795beb2fd804d6a34747a57367d94dba901e92b96178472503991773735a1dfff33d956e3ab09ef0c66d0fc189d9b2e4db319117f86028bfa2e1c90d789b8d2d72ce16c8f9dad8689ca2fabaaf1a41711e8997fa29cff8984f592066dbd1cc8310164eff1bec7114b3c2f0efc51fd6793627371bb0e7fd282c6ac8bfc18fbdf0f6b42bac8cc4834bc5b1ca47890176ecfe01980d443adc0f57b882701a38ff065ce1b0d7c2151bfd4a9ef0f6a106a049fedf1211f00c0579208fffcd1127dc668fb14880fc02223feec403292676a06e746c9e8ddb53929d77acf585944eac7ab6cd8c7d2a24ce44a7a76d4d99225859e5b9bd3e53542b4f9eb72fb4ab0ac59958f5683b2f930856843cb74f58cbe7abbef32ead78be5d1f004b34a2e227977434c5fb7d48ea7d68818644c644d2454f8e7ca72e394322052c218763a89423c918086e0e1299fda825dc1c0408c65190758e372f8a8e31474157ab438ac6863ba2d17281c007639f39eee998ed49c719be8223ed71f90aa92eb2fc39393c5d1036704053f0978506c08b855880cc862940151f174ab2b60689c7dee7bce5349698026010fbc080b24c34bf3cdd4478c0ac08fac758bc2b106ab9fb26a9c998a69d15af84f61ae87bec1e8b9bb749e788eedc62a15df9e05c32fbf96da6e2fbf6586ca4232b5041445c1e5c4de2d77c6b14a0884e487481247b96bbea488e1805d5554389f8702169f39136020768251b6df481bba944594e6d6ff108764bc6ba2997bce48e301bd20389627309600f55e099395160162cb0b38226215392bc91fd8969350fb2d2c76b1f41821bda2e91d4c33a8c796634a9c96d7857e5f69ab5023db4c15e92979f7ee27a79979beb6299ee6e52eb4c6b8973e2c377c1f6bfe4fcc7de6ee94edd4e1175b691814d1da0d641d97e7560decc04b7f455bbf122b38e698ae0da89cc74d1a278251e57cfff494143b59998152caa795c7f3002879e6b1b4c522b01684a2028cffecc478fb8bf1d4640fa112b50d8729f7749b71fc357c7d85b4266ab51986f394edc65c40bc46b500dc407128d1903f8c5a6005a9321e3dc6f0632d00e435348ddfe1157d2a310e712a1d9fca90623c8e5f6a7a3ac1147c594e418b645ae5d1d3c1e326ce67c5921fabe9b1443faba441302c49bb93389c59b5ce7d328f72a0d8019e95312996ada084caea59347e6e1b625e616c1fcbb5d69125d1e4c679fb87b5bd38ab6b61c76ab89cb243ccc89a2ea8d22effa0e875d74ab2cd79f9b4653f4c58eb7e7854ae5759b8cf47c60e5345a98914cb151c7508e0630662346db2fe8ed083e982dda421e62d5b3d78f1fc718da91ae0bbc60bfaccd92e94ba0fbc9c4d006512add2c14ab4881118d014ddd0ac428d9aa225c5b28b77852f4ef14929102264ad60ff6566641c74390eceab590f993e76ae2fd111ced8be203023e6d4ec6fd7592ba08ee008340405db3a7e159117e28fb7215d2461e0ca47e61ea59ba0e9f54ae5f5d4fb137f8e89eeba8d66d438f27b00321c18f94f932195d2332d2410fce72b4f538c930247d2ce53b0a77db6c7ca284f3cae0f4651e3d6e7670d6c7b2b7c37994a5ec4672e07f1773dd9b49936cc62ed94428b4417319f5ab9407a78188b4720c4357dfd910ff8882175d73cd1d9460236da97b8e2107ce96c28ca6ed250ddee897547096e3c49dad9d84953a40643499af8e99c71ed89604459b5c8ae72dcc6f10899ab486cbc95da258c313b690dea3d3737c48d9548ccccd4a689c56c35a66004c2a6cbe89482a15bd438e351f2ad4ff21f85956f9d89241ebf3f0e06f53a091e9861f17b559d09c610aa0a4e896156f43c60d04ca539b2530c360e47f0392df0ddf971865bd0e1c7bc19316cca9e0e8de14ca239aa1ace175a8778c12595053065aeafbef499e9369bb21f0769986d0eb27bfc9f64023878bb8c33decee8919bc7cbf5a49253c4d9839179a4bb8a2da791c5c37e5979e1261f8ad04f00e4079c2b4ce1f76d2b3a9dafaf613680baa60594eb0c6110c62aa65decde9528c2d6f1e60527cf8cd3cbdc125b8d0f9265d984862b5b2bc565f7326b512828326219a453193fec1bc47500a5e788e4861439bdae1e87cfffeba9684cab09bcfbd921c8851729ce0aa15ce36257f0fa6ee02eec83ee8f3da877019af2198ebf8f085c6b9190f4cd5a076e3841991aa385e3128fb6aa2d6e38001094eee9a87ed1a7169148193ee121fddbb9990c3475ecda5000611061cac99669c8095cace984dd3cd9c7f19cbe913db010354e90ed5620cff1374bd78ce2439a65a77cb60b565ef5d64d87847119c4dd0e0a9a52d90775f48da932e11516306ef866bf1b142200da74d18b2259621e5fcf3acab4603ce61a3bd718816f33b0532270a0e3a0cda258e2764e2501da92e4fbf7cc7f1cc1e3c07319a161e471389c12365a685ba51141191f2b0f07ddda158db3d114b47383b3996eee3c4e246718e9271524038af52ceb05a049d44f4f76ea5a049c45bad1685ee1ba50e17ea566bdb91be0577fde0e9226b008ed099a37b2b4ce0d9ad26a142297f1d582734ffd9e63d96c7460f86a014570be4ba68244a7a92ca0484ee52be550a4f985dc460810d555b5df228ce8b8a8c25321ca9928259ca96dd829f31882f4ac2270a7ae0b7d445bd6e8430200c9ca57d28dfd3087f76c8fff0a5abc399663f7990afa37a5b7295bd4141b4e4bffced78e98751b642c3b7f1b85d1139676039c6c13a4a3795e086bd4b4f3cd79d6384cf421714bd3d97762f9e4a90422f12b4893d45f9f56e2ce78120a3fdd298e76c10ee36c99353a23579044b01f958ffd27e3b640f4289829f7b9680ba3da1aa2be7e156393542a3f3a006cd5cccd49e418f1b25779c1daca3c681910c4bdd55fb696b6980b9f14684ff7b6442ee264a62d5dfab72beda94eb00caff16888141e4c6202de5652c574fabdd698430e1f0a50338d61d341b5b23933c48966e81b7eced292e76c38da7ce4f940bb29190888ef27798c6ffd2e6a51774cc2b429226e0f845c2dba12612bc8140b6226eb8138e136e16b9918f13509bdd7a3c11e96750c391c4d504054552d66dab88581434d92631ea89aa83e7bac07baa6cbe07f9b703c9a91157f40561220903e61357e9a29ce11f7b2f80e270e39216a59cdda6f80a5d3ffa7fe8f191439bb87b4f97784aedc697685f2a41e3a897e47e1587877e25db50e951b7cf700568221227a7d01ff3001312d21b8e80caf70d5e99524c99a3105beac641d95b28c4e47380f2201b06b0c9415258ee94390035e206919600751a999afe1383d5eff9f5630bfe90b09491af8e01a1ac00472165294619a7db903616fc1c0463e21a5409a7edaa15511dc2d0b777fd37a0b40d7505a447c94869d4ba1972950691034aea6c539ed080344abc923a495827570601c44b64dc24e13f934d9838aa30f804435395e4fdb65bc911f4c3a43ca891cd4c33abb0630605866e8313c8ad88129b2ca7ed46ee027edb9508ef084e190466c2de11869cd9701b89a7a47d0a99181b601f8a636bf3bd948c9c24173737e3ddf3e8db25eaf855c93b033026cf8f00817e1439104fd114dae352132d0fba1cc3b9762918e4b42c59c1b615cece5338591450de8b5f77c92e765f1ced225c3205b0bdb9171babe3a606c539034eaa70a9a2221cbb3afa74fd5ba77e798b897d1bc524ecb2b55dca0c94bde51c96d53f630e280adeb7a300ee973c883bc5ddff5e8fc5f0f88aa720a454bb55e5cafaba6285b0a8ae2fb341b8b69906c26f8b1e624a1933d5b901a5365d4fcee7456517932448284bd3506f7ca58e97cda26d97e69d243ae09570f04d34bcea1349cff5ef12da7e728fbe69b3c1a96db2954eef79874893cecca13195af035a091c66efdaa386089983363e748ea6fd3a35b44f41f2eab35b308c87dfb152837f4ec3c0a9bda5134f9cdd6266aa3b3432382d79393efffeec16d96c6d412d40d9ec016a1ee1eb3fdae36c7b2556f4fba2d5fbfbe094db0475eedc4bafb5eed072788ade31689c9819049cfa6ed39edb548e90f183af1c16271aa7b547547578bea11a80149c7c2dd906987aed19fe33ea2d047b9e81c54c6995aac2a5483b46771c9d91505b2089c04b1cd65951b978230cb525ba41e204b267979aaf993754388c429b4278c96330288178531fd78b1b8f75d317e2b812ae4956c877b602344f753e88de0bf19b078b12a2b7d06b4a11d104ffb798b4b5c11263a34aba03e581f650885eec7f24835fac10d3ffdf132b7aade77addaf2228e1a2710bb56778d4f80f1aef1b90ef374553d95eb9d293dc6c021aee319a72bb20ba782819bc43ae1426e5ab79f02bd7a847da10e3656813ea6514cc9b355f25f4858f0e6f1606863761401517b7822a89c747cfebf148c7d9ad6642f2f77db3550bce82f4ede12c3cfea27578bc4bda2e997469a54c4c8bd360fd5f05b135ff286546dfdd977ee8fef6856f439a80190990545e5c72ec6d5456ce7034de229d6c47f682e6a8a50e555f28e8a43c6b6da29ca36aa8651fdbb840c5117f86953b89f9e47551a8d8811d97968ed51cbd9405df88e9049c17607aec5d1476957d23622fb361c4efe3a85f6b053552d6aba5137a65f8bd7fb69e1d3de5f424cf87ec1466dcbd84fb90dfb32e2291fa932f9b7c610005301d34cec92e09e1c0cec95e12cd4ab10da43ff86502f383074e3ef041396be4f77e6aa41ae11ba1f2f99cb7e8ba71ec0f1c0a854fb0c4c24d2a398e5340c399461649423a7ea7d2cb804d86aeb120bc6e2421a669a6dade65cb2c7eff0044999212b64e018c8a2a7f76ebd073428f2b0240425cf363fb7331ef79ce3b98dff307e559388443e252ea4e45b0d3127d04b5f24ec193b3fc181651dae6c693ea9daaa7112d1108fc2ec05fb21345ba9552e56cd0fd186ca96e9a5fc313b494025afef56359405a554d07c8bbbc99b976be40a95760b662685c32a1767ee038b887004852f0556d59798b989dc4fe17c36ec47bfa87aad6711bfdcaafa4b16b6a2df769f94d6f2596b064be974a70df5ef3f1ef55b37bef2df7de52a624657e06fd05f10551878d404d9ad1ca7e68e34f175fbe88df4041b88bea247dd08159c650491e7e8c0e3b1e48a03562925c52105eda9e9baace4297ebb71c70dbee5ab4146ec48db811f872fde65cb4d209dc36b7c80ec2977855ae875876d107be5c2f1ac7785d97ec78f9753d29cb6a1d8d26e94563ed4af8223f5a89a995389bff1dc3699e89102cd4e04c8a134e38a154d9d124f8fe432effa670c40c6510c2c15088d00f2ce136618c106758d881a110a116ee2e42a8e1f8e198c2a27164e1250a5de47bdfd96553549959b47816410891cd2bdd26672767276727672767276727672767276727672767276727672767276727672767276727672767276727672767276727672767276727672767276727672767276707424a6750a1102886301402c58ac80a02b984a69f951f7a89006882d98fb4b185e5111c1f5bedc0524c25b02ecc13c61a038e9f1be339519934025faead81250545c5c9906bad8df84a1c2b4f35b0d420c4d293828262234ef11e282d15272736621541273a4dc3f2893e8e40558b15d94ade307c13493339c4091cdfa320554f481f74e0eca1740caff4913f6089c5073e4b1c0f7c963c1db8e1fb650ea0c987213ecb1dc09987252038f0599e36f059d668e0b344d9ef773240930d213efb14b8df5b70e6c2521119f8ec4218f8ec452ef0d98da83ac686284053a409e2b34b2108ceaca46029d658e0b3f754e0b3ff50e0b30f617953c49940d7f0fd6e034b5147029fbd47043efb0f087c761cacf2fdae04344520203e3b0d9c1995e290199fbbf580cfbee387cf7e8a41d10234c5223e7c6e2eb0e04c0a102cc521199f3bc8019f9b488ccf2d448313d0d4343d7cee277ce08cc90d2c750d8ccfadf3e273a778e8ef1f1d73f2a6c669c0e7f6019c51f1fdcd03965a87019f9b6687cf6d8377744c8919a0a98174f81ccf7004ced4152cf590057c8e2c057c8e430978ef4d5dc4c5e74805159cf982c0520f993e479f99cf1108011f53910968729a08e3329f230f9ce160c96b4a9fa38f98cff1268798ee5b7c8e3330390e0e58f2027c86470c7080cf9106b3e8170134395084a929c2069cc1603e4316013ec3d50b10b0e443dcc5577c864e30799108e3eff219fa08e0b38b017c6e81fb5740a7affdf5a4cf01c001f8fca3daf2384093ac89307006963268923611868597b00f78e076e0fa104d189108e33f04101cb839f30ddc5c35706d4413a6120216c15219b839c3c0bd001ca289262c28889bdb3194056ece2a5043811a9c68c2782680a3e3a5ab25019d08e8404007289a301b20802ed58c210f18f2439168ba8cf8708b60bf321937670eb83168a2e90aea81a6c64b170ac6cdd98b1a1e6a70a2e9e269000ef6d96280ce0e3a5807289a2e1b1d80b04f95bb2c6088028624e01689a6e9a28b60ff1ef2d24cb94b344d2f4dc789a669ba333757045c191a5caa89c9a1a6058e6cb90b50344d9b0833c48b4493341261fc0fa063009d02e8b00082b9794480fb7257dcdc9eaa89261994fdb84d34499e08e303b82e80eb72493737002e0eb7e5daac3022d1e443d80a5b612b1fc288dcf0ff36e21bfedfdf87feffffb3834105876fc1a1e562aa51ad59a6b2d75e1bb1b5d65a6badbd2a2d7f43cb0d37fb916b1bbf6dbc61a9a0540a4b05d9b0b2b26223b66165656565656545c5fedbbfd955180ae3c150180a43613c2c35b0d46023666161616161616161b92aff36bc0d373b4f0db6f14a0bb369b55a988dca6834b211ab8c46a3d168345261f91596959bbd466544a5521941494149b111a3a0a0a0a0a0a0a0a05c9595575951b9b98ba4d8c623db78bb5241a9d495ba8268303131b111d360626262626262a282f22394d1cdfd83238a0775f19ca8385161233e3939393939393939b92aa3a76144c3cdfd43856d6cd2ba6c5aadd66553526bc425b5d65a6b5539799313939b7b87ca884aa532e27dde6723f63ccff33ccff3ae8ac997989434de662a28959aa92011c7452ce2388ee3384ec5fbead59b636aa226cf444dd4e4e948ba88bbaeebbaaeebbaab525f54ef8b8e8db956abd59a361b866118866118865d95eeb98ebb190ea98ca8542a2354a394524a29a5f4aa70bf71f74537c65241a9542ae892f292524a29257d8cde178d493fee124dd8cabdfdb76c66d98f97b276c92284c9deb3ef2c832f59673f2e329f9cfd04b9fb8a1ca0095b4518ffec073bd5a9fdd82afb59390cf28c5d017b0b38d309a04e3ce1e6169848d6f9a003cb57c530d48b847620c61a30c1fac1ed9f6d5dc49f22511ddf80e1cd36e2e9468e37aa86b0841086000408102040800001020408901c9c0b97d9c6d4de8867c02588ddc71b51aeb54f93e00b4af4117b74cf10b0f7209064ffe3be91b8cd764f93b0ae7d4a3e7ffd3c127536a2fc26097e33b2a934d979e43e82b196a2fb52bc69172cf718ba318433d9e73642f26eee225f72730b8d2a26c2bca7373750c9639f899e7eae4f3f4bef8eba18f5e688b8e4e67eed450dede9f700b8ed2191235135002eb34eda6eb49176f3c265d6f1cda5b3836f3ae651ba19f2fbc67174469d0c7b936ddd135551d53d70464a16c6be85b4100c978deabfcc567b732d6a5a7f0eb9bd66557433b4ef6e0e4de52a954a2557703c18fb15384dc2220dc620bc34e00bd63e2bb8ce4a6b03b26ac017ec4300613059b3dff8cd0a9621abce798330e962c83b8410ae1355dd63850b9d077b932ec67573444c6f7669671dcf9f9a168968128639cb57ddd3249f6b1d8dde5518c3d9ad803128b24c3f760f24b99af6f19e7431e8cdd4a49b315f8b249608e72c12bf0310f92452f69b2bd47e18fd35e29d5776282da766bfd15472487c230ef9fb8dc41886611886612a954a9559e01ee04c0d4f77b36874ba05ceb4fb07b1dd9bfb876812e6afc2be76312e0ac391bcd43dee823de97f84f55021354794350247c5df7bbfd91bd187e873e401aedd8ced5b24ea646cdfb9e469d45a47a312b743649f8d54802fd87b364e01c2603f2d89ed9eeee99e9e6dde20eae5ba187d73fc96d921ac1014557354d1802fd847159ce91e7bd8d9de81b18f538847bab8c2988cefd158bf62d17017cc6fda05fbcc65267565d4f22b52ac503354ddb84f935eeba13df5fae841c0b6c7fe51503caf219ce9ae4a0e89b7bf21c2db6b9f6def7533e8953922ee6eeecf6274dfb7467687d8ae100d5541083144cfcf10d54a4814405800180a89c207f60e86f654b3d1078e88456d451a0d129bd9cee61c5c68229be1173066a349d867191a2cd85ad981e5fec1d8b74fc77432be46261feb60f4ad416ff4d124ec7144dcddd823050aecb18fa88ed91efbd8a3637c744cbcd9b69b0dc3a1d102f763994f051a05c51b2f71d9ca6805f61b013869bbe739cb03887c247e87a8ea1cb0d72c8e88653c9edfef38ed820d01c2980fc63ec39e2018fb2c83311e8c7dca176af6d7ae11d271308c7631fcf69536629518164f0c832dd8ad21756a0aa28e298960c208491081085310415e1faff8fd91a5c2fe14899a5760f99bcc3a1e369a3dc4fa479322f48a50513423c903cb9691d87217f959d00116a0a97b4418f95956518002a9f9e59f5d0b583ed7fdc0755d8cf8975f1ee36f7fb9bbfb8a2679f41574914fe567cf5bb053588ed41afd8f21ceede3f60decbe991235fb101fd231415de2563837ac226d04ce6cf1bbfbdc52907cd7bd6633c9edae96e33bca87f770ce3a4ebbc847a5260cc79df22cabd547fe4ff2234652db8a7b1dda575ee26e77affc49beaa89d8699ad466c87e5a653fb9100dcb59233ff909d658d94158deddcd6aa10e026a1f1c644bdcdf1da449b28960d929f8221f06b586bf0f91ef371d83d3313c513a13767bedb279bb397a3723fe85ea62f4c7f71eee83a766f98e92abec5a70a10ed2d7c74ec54ec54ee5166ae934dfd2bee2fa473f6d9de6e918196dac8ff5950bc117195b45b07ce9588030f2a5943c6ab0949f5b7e0bcb2cc017f9b975e0859a7b958233d8cbef23d4e89e88f5c718b11c11fb8d36978d3ee4536c84c4f2860a8c23d6e015be922f49ffa39a92fef1a30c0267a047d9283076714793ba0cbe4879b38d1ffafd5e7fd92f0835ab71a3860bec5ef0a7df6bec0ab6130c3b0caf942b600d9ca2e63a7f7a3d82338d2f17d6876d8bd0f6d0a4eb61375f879ef7c57c7f9f0fa5f7d0311005420b5d6026b196ee4e428757454209a1aa6b015fe284f32291af4343082184f22ff872098982e6afefa16372f561e45926b19a42862adfb121178f1fde9dc119f9fe5ee5dce616594608658bc7203f7ecc0cc60e4663ad070c3ffa95d1860ceeb62390c1f0d6884f7f8b36cbe0d837cbc4da24ef21841042cf8a60bcb94f2bb95e1b3238de9f339e7a0067e2cfbf80101d93a30f9e3fb3c49b94579c1368d224fd8f46b7f6a8f183b0f361845bc6219ee01861e20f8499a72ebeccb89b6dc8e0d1142adc525a35c79f4363f8be0ffb1fb0ffb0ef7bd16f9fa8c4c4e4137dff5dd8a4922b7a1d5a45fef5f23dab22dffbefb74dda29330307fc25009668f8f9322ee08cfcd9c2a2e2f389cca4812ff33f3b4f4da2e14e25a0cb7c1527f33494e7a9a505b8e4f3f7f4374f0555e6a046fcbd0e5d628da85ff29b5b93a7b666dae069f2d29adc796a520b2eb1378ac0dfd71e799ef0fc799a349ff797c521717d179ef7592743bee779ffbd0e7d79b606c9e3885845460beebe7bed256bbea3a6644d583f7b1a3a18fe5996d53aafcf01c01bfc5e5aef3f9be5671fbb1752087b37b76029ad8d968aab15e1287bc097ec45b85a921609aeb60bea70b59c0e87abdd9c66c3d56a2c0d574b7d28ae366b1f19ae163b82e16a2fd585ab9d3c13572b638dc4d5ba0df892bd0edd838b6e0b7cc95e462cba2f544622209a3a08d33fe714614c1bcb26f56f2a5c5f574d7512f4600921e8d4744c2c12051168848c34f1d4a448c33397d915e50542e4c1f2b3ab65c7c479b2d12e72a7ce2b89930cb09438d826d2748c0e9a788a34dacb9025af8799376a929c71c6ef9aec081d3a383ec4b7c6f6a44ffb1bd86713cc7cf706ccd17edff77ddf7d585323867083db16b5ed33d5ee0decb7d7727cfa3a78f4d5bcdf65f2f5494c7eabd5e4b337b0cfde7fdf1d0ff2250f40f865813f0a74ecf0e2ea7880f085850c55f426304a5ef49b892dc938e05872ff06f6f9fb1c8e817002ef80f0eb7e8fe85e7eaffd67e97b19079caba8e3ee096507ff4d6bb9915d20f84dc2ff88b77e87709766413cc30e402e1aeed24e24c35512a31d8ea0e125e9fef2083fe288ea2e5e8497e4ad3a18de80a5a075c42962c1124d34b184b851d7b828e5f51cf79da669de57e9514e8bdfc5e7342d7b4dd3342d6e525e4eb5af7a4d504a29a55dc6695fedbc8ceb5ecbb8d7b48e8b9b949753ad2b69826a99573f8d769b4697a05d4729a5947ed5ebb2fa79dc77da679a5bf9979d9146ea24a7ce451aa9ab384efbfe94b8c5e8947b4da34d50aa518e524a29a5dd129da6691ac7957cf5b392ac7e9ec6699ac6d1cf2817b5295ff328a71238aed3344dd3bce4f344748926344dd338ae2bf9bcef4535fbec7df67995d2cf344ea323ca754ffb689a1228a59c4639fa1cd5a8c74de396d08926adebb2ab1d6bbe846794feb5627124dd3b47b9f7eee68898e466936e467cae9fd208315da252eea2d7755dd7755dd7755dd7755d97a6719cd6c1a0b4aed3b44e139188ba9e2c48057a52d791681a1755947baa048ea39a96691cc7699aa66954a39fd18c769c46359a699c0d9d0cedfb674629a594669ca6659ca6699a46356e5a20528b5e0aa20e293970848c59d682a3971a937dc986b2493e553efcf7121011c6a5cc70025eb76963c7ac03cfb9433ee1737ecf0b6a4648c7810da009cef4631f691c85723f39993fa84ff51bc0991cd551d1441f7bec461158bed6cdd8de9f6eef99cd810358ca321f8c86005930867dc7d69119f69687e83e508eba4e92fecc220f9cd1fe4ccaf939e299699aa4f3ca0b7f6cdb748d13f5e6c7a4dd8cf92d7fc89bac9331a7a3dafd1ada6cb061150205552250e649a40e9232bccde4a84ac0d0d42ff10623b510432336a4bcaeae7b5abf44f42dfaaafd25a5fcd6beebf9f4e76bbfbd5f42aea0c2f43728582a275adbb7cf0fb6c1fa4df69b4ce495d41e47d5e4eec9b04786e47317c15813e90ee2fce692dc7b6f0d1d0f7d43bbdf3ef76f37a2b2cbd2c5e8ef7efbbba292327a12cae84445f7c8745fbfe4bd875efa27f1d25fed66920d17b64b564390ca72b7d744d9df10e1ec7be56679923bbca572b30fe1940b516e96c1d96f4697869bab77efc9bd26b7bbdff5ea779f4bbe23a1df5d961c7dac7433ba17ddbc3d7d15c8653662ad7de08b8bec69a0279c80301809fbc748b547f5ef98c2d8efc87ba35a4d1555c74c22ab944e86dcbedf6fb24cd3ecec5a486c8d3c55ec311eae058b0d61ac881069a57ad2c86f7ca43d6ced6a4d60edb32ef98dbb60af691fa1a97b220cf699f6392416fd0d1116414cd2185bb990dce12d1f7228b25be1ebf6bee4e9e7f6f96e4a17a3e4e688d8f371837df7c48a5bbabbbbbbbbbb471d0f2db234743344df77c3c1710010a5f6e12ed35f351a527f3a188d69e85cd5042bc0526c792b3843f2d34796f363cb4bd715fd77453550f4dbcd5d033c5f23113d89c8bb24f73bdacdf0aef4cf647ad5a4d6e3d812b5ba94286af6d56ae5590ac7d9883feb73a393f21c4098f9d5b6d00e7ae0495a795d688173af5c89378314bd821d7f9c484b3c5bb4ea8f8c8c542fe22a1c5722d1ddba19a27755c7c0950cd195a26c9565243a4574786c2c4444ecc15508a0cbfc58238524864415fc90e10b8e4bec4f1cfa812ff33d3a81091006a8898c6688ba17f3bac837918b44ed23bba93aa3d4ebe88874747474b4d7a13faeb60e0f7c893f4cfcfc34918ec213464e2001cf7f51a3594d9a42b7572dd43ade369b27fec41f1d1d1d9d1e327f43e1361b71f5523716a04b579dda854c8ada66c0f3e711783e8d1470af5a08becc1428eafc1c5bb8c6f5f4b75b43f438223e125ba2dbab12ebd608d17bb7165ac8e698c251b1e85ba7079e3f79463878fe8ff9221ce0f91e6d80e74b4744bbcce73223bd3a8267af268d4a7b842a93648826cde71a471f38a3dd17f4e288f3331b312b650f493f003584a7fb753d142cd56f9a3cc2414897a8928711383258b3651273ccdd5dbabb4fd6759a2cd67cd61658d1d43f2f9eec3a5d3424dd8cebe577d74bec7a497f7201966018e61478badf489b796c27f1cf761c69d97242f5ffc9c2ec6c9aabeb93d7386a66b70176ecbbe6dda6938161d864cdbe9efe45b1c6b00cc3b20bcbb06b88440c4c5862094c58428cb11d93355e3548c0087d154651a84f804ec860170980a52c86e39c020c4f92932d62b20e96248b99b16e300c8642b2a0c21be5289d0f5710ca547f7799924158f00b36e649a652344a4c463c227da2469c65648874ffa8a68f2a48c6f538e1ccd3294b2132d5a4994ab1583e75d654cf10d1e71984b32248542781005132e52829aff2d083f094c192c5557a69694ebd68240bbab05a13aa56190b4f2028f353656458c84097f999f4a954ed9280a6c923c2e48983e7d3a8f4f2eca6b20ae1842d4f652aa72d56866522969347344939925284bd94dfd9efdd6699c23278e64a8242a1ee94ac08339fc747378f6abd19aba5badaf53c47495634394f84999fe249354bd5ad542aa552b55a1be57c62e080fbd434f27b1a5e6a958c97bae5a89ab55027479d5037e219b4dfa4f4bc0feb3aeff37e823449665f7f7e117046f4f3a70b9a078e012c45d60be03c4553f38830f37700a1b5033cc4039224119024dfb30d80241a3d4017f971c7a83594ad462a5593b4fbd91648927f91785ade62d1ead1a87a76f1fc705ddee7615df779988a57ad8af7f2bfdfbcfedaeb138ca68133decf6f25604b61ce39e97bf43def3f918501b1e8b7130d1b228834f10868062952dfc322be9fdd0fded3df3e6bc48ce13dbdb4d6dfbe2abadee469d27cfaa29f4f230470a6067def331caa3662ef6678ff79ff7d6f632a0ab93148ca166a8a172ac4f36d744c068778ba9b11bffb41ec4d25a00b8e147e3024073f34e8f9e8df2802d7cfa2ef7eeb44df3c05e1c7700949e0c11bfca650a530c43a300b15c511fc3d3685ea331519df7bdd6f94eb8e074db3df6f1a27fa29faeeb5df362e7630bef73eac93e1b58844572546e3ef7380400786f8bb39624f64bdffba96ee85f7dd3c6dbc3b4fb547f53eab76e338918dd8c32131fda6f15e7a2fffea64782fbd97de4b7b4384650974e098fa1e47cc3125b30e9c6193e48d3ff246f99fcd3c99c872d13c66d008a84656098939371209a110a110128b796a9789a56290a6e1f17e3707e0c526e2e81315c6d49c4880a5085d681a4f222851f09e90a7139367c7fc31a78d37bd875ef634e2842c1b15fb2c7399a2d49250db51cbe96cd46ad4526a336a316a2f6a27a536a8c9eaa7308242650214f25809ca94742fb613eee404f6c907cf27320af239b990c9e664c19407f14fa6be4c6590264d9962a466f7201d935bd52a38537fbea7b269535be611929f6f832b431870b722ccfc4cb998b3fadd5c47a3ff2cfc60128642b2e0036fb0218c9284fad4789a9f912a8b914ccf4f64c29341e69c382b21d24573f13862a4888af4f35086c5361a753170c0dd6f3d324d9aef02be4cf9d0c620cd7d76d234699e7c525e9ab30849e8898c82f07ca01489f43f1ad5536a6ef4a7c6204d9a1f534eccf9f3656abeec9142f0fc4c025892ac1a904634392ac2cc9f33982fa8842c587541f154cd084000002315000038140c0644a3c178288b535dcd0114800c81884672663a92474192a3200e0308110000000400030000080464860c00f15574c39282b5f117c87c884521baef4cd67316a23120203acc43381a1707cd4ebdff2ec356b11f98f8bb54870108f72e45faa5756116341a717da3c9d55f27fc7a2f2aceaf0df9b692974f426938c16ca663cd5f4ca4c56468759f92fb7abb801c47d1e8b4a43e76da9a72cd70ff5a9359fcbf7066ca3d845788994ef45a9b877cc2946109507e67876f59599423f3056b9490243415d456f44296e75faac4c4ba7dffa1816bd722ce29a58ecf9eae4391eb8d9e350d4e45348a915d86e9d1fd7d825f3ea9059a2508fbfb4ec901015443765a1ab8307b276dda42a338db62b9eb72f43c84b216790af1caacad850e8623b7ca5a146553aec69809828cc9e4770b857573223298304f2b1e600d12ab9a367c9254b1be39ced81a0e04225e6e0fdfe826ff4fc1b0efc84deaa3e6d6816b28b8d3880ab41f47d049b5367d03ab74ea5cf767cf05aecbb3f8cdfd0e4c2c85970729d663c06750bd946ea1d114f0e4ecc169a8c3a12bce618de48336a3624b188b9cb35bbb1ded9dcc7c0bfe23061eae79b3f4a3d294004b686243a9def891f9bb771a42c847f4edaf1d12b59675f156b87fc59bc0f575756c6054c8b837b5759da4ec37e7e2de5db361ba3fbf047bec875e96f20b9ad80e8e7f25f4ee6cec6816a1bf835c2ee5457167c0f7b2285b3428885444639aa1f4893c705058339ffefeb7a79b3e56b027b703459203b52683a83a0f75e9eb78e65c5bfd7d763f8f157618075428364bf79b1289a990db9daba20d3f2a0508272f78a5f2913f7784b3da612f4de8d2da67b8bb763738909e44417c523814736483e6c3c0083a3f469a494b57a0e88625844d5b2537ce115c309c7cf88ded6da10b53d0475686f48ac76194320d9adfdcf3f4a960c06f4db75c7fe1d0d17d81a2a168fdc799fb91ed22617d2b6833c947395aac1ddd6718fafc77673e2e5d5ba48cc57223569eadaec40dac37d075047a2abc4fc8c9d74d40c24102c3677dd5335533460c720517ccd61ae6490fb20de8cbe56bc01e4e84af591e3002f50532de8e34a8e4918d74a19e0f21d03352b60d24cd5fa36ef510a4fef2a629fbe4f4b4085466222212b7ce817bdbee963ed7b8fbb35c26f2afaf3aa02c7acba0517f1a811535e843f79a76d7c682e61d44219142c2420047b7885d429cd2fed3bd144f0e63163a33787e2954a373248afc0885e6c86f3ef8a1e16b7cf276119b81aedc842665ee1944418adb295f67b3a157e5542673d6ad0db6416fd0ea450a635798e37670c75e181ca342984a664e0ae883f14cbdb67951e6a473180acb8d2110316b89963683741b4f0cd10d1eae58ee3a34a55afd3eb85ba8625f2939743f496ad8b69fb4c61c12dbed15c13f1ee17bbc2f258ac69a24e77eeeeb7c1a6145729f8a157851a25bdead6186d0d855ac26852756910439de2241d3ff47c6fabffeefdcd59a2ca19a3041f7cfd6a7550077f487979d6c56987804987ac7067bb7965844b57c97d10266e0d6c98c406a98a538dd54c7b4678fe4ca176f939fcf027d38d86a2f99ee458988e23ba27ce11ba9eaaf02ba0dab4f621feb274cd7b61bf60ea510f4567a078dd9c517be2f2aee163f8c5f0fc2a24a0f3ab7f698a407c10895b36b01a5317cd4a1f44440e8844dac8ae1b92d7484dc387aa3ac0c664c9a6713652cbd799ae84b6307fdd33d854c37ece5a621b66901af377c3855c1fd109141a192bef12571297dd11b7393a5b7ca9c895ef746044c379cb468d92cbdbfc2505ca33b9d87111ee51da3b1fc42e857032d939e6073d973209f0163fee8c5e6b52657e4eeea9eea0539a88e6ee612ba73cc6061043cf72e125db9d123833d95686c229a596f2f80c06c71109e28cfb54de7fbe19dd205f697a9c0cf9133619d3313c38cd442051d05730533a16d174e0008563b4b84a9fdc6dd04422f5b0606b05896a142a63506cdb4eefe1bc55a61c087bea2bf01e4ec06f72bec2db940214c19db2fda092c6c8cf88a78837ca71eb483e2b33ffc5ef3ed2ab0bc0251b943a85ec18af93077a65455c4d05a19f1e916d4dc1d67302a8b1b7b7ca322afe4b4ff16edcac5e0aae3bdf3c36fa5dc93a4ee9fb4b9bf842d8cac7967ac702ccc59c9f27cef29ac1fa63a87c220893f90c4c2408425786b6812a21e32571b1f9298a74535a7b18761e054ef524ff2ede3ce4610ef34ee3cf529bfd97ec88d6514e1010861d643a3d937e15de87d6734b79200fe63716b64200de9a30d4e3bbeb9c8f5bb8a33efa876a4b00033824f5bc1f5f4dc8539160c8ed7850633d8ea346e43724675581fc0b9e66df1fa79b5e4d211672664f9c5ed49d383c15c2f30da6995a75d78f196dac1f2067dd73c84510f15b24301071a2ea9da0fd9b0937ab7e864faceb467b9ac13709d5b25086ff70b9886e46546ba96439161ce6b962ea74115960cafa01baf856c7abc03fde711141cb77a464209d8095313b4a1b52d5d06572b1dd95395d2514ba29f2525252f18b6baebb2ae77367ed75055af6c8e1d1422613e80be3bba82ad95fede01bff96ac4363001b980f5dc2fc097a266f64956638a5620cd0ce64f89eb2a5c768d99cc6c033b984540eef0ecf1f166adb0eae6fe094cdd6a56f25a1941ffedbf40c6967f0d56615f4191904974a1fa19a275855fcd2cadc306b50a82566867232444155d64cf1c9811e91f3118bc153fe50f8da3c73866c5cdde285eaeb674c72b588018e42ece0a2589db63862d71aab912e7786e6d46b1b5b18a1ea98ca40937a6812f050e74a81a0ee48a51c8b7cf1c4051f85373616427a307f23b7b892bd14f28c73778dc2801a8c97c2ab851b6f68253dd3c5b54367f21344e528f247b76846161ab81896570a57be2f9c0bbf7c3bddb0ec68701d78b573622d6df09a8e9e6265142994e285a9f94fe54479096ec302a05022903674e00bc557b6d2957f75edd734f82c020fbd7dbb9cacf967996c2f02ff98c8684aa45504fa3fb95589546c3095cb26c9251f11d82897c3c84b09dde6ad1ff43ef65619d9246d1c4e1aa8f58d3f0ef6c2cba0721fb5fa9a0109b179e988b6fedd1366da724f99f0f45df55f5878cfa4e39c52422be250485c636c12b9c6b8b4d140dbbabeae0583ddba0e7fe939a9c6345135f798bfbc675a97cc4fdd490cacadbb790a54a62db0f866c4b58fc2f950e00aa71c62e1a39d6d3b1d3fda1aef7e7dbf841a2a26c72b227e831c6988829b3bfc2df03be788d5183009510a01da47d123dd1e2762de0a22a3f399e400dc39e6da837d0e0afb94172aba35c7a16cdb9327d29d7f00b220fa6aa33eddf9a7bed9ff319fa9518cad20eeffdfedda82ff4f498877f4134ba4dafcf505e90b69c84bb78f7ee22f599e1382556fac8fd9f5f7ecd1e1ed39fc78228d79734f352f303500b3f29d2b028fe43a709ce96332928aa51ff7ba1dcd3ae1bd722f918a49f2965d94a67738a917dfb9db517b00fc4686ba7ac9b34fcb7182835925c26a03b6948d556568cda2d2badf8241b055015b5befa7bec815879a71d3edb348c26ee9ef659c5c65edef46f597f04962f8a74f31a64bec72fbd15f317f56fac8ea6799c72c744a992cf1e71f5855445516942a0417e136c0623b98e93f7a1ccaeec13a98ea3c873240272c97b12d14103437463d731abf0883fe71751f6368a5ab79f1f8011f33a6c9a4f6ea7fe4a65a0b13c7f450012657e75b0c29d23ca6ea182cf4ea94d2c07cb285c6b5eb667ea8e0cfac72077fd5cb351cf6c71f7c5909325c04a6e1f709c5c0c63451f120e0c45671f3e6f2160961e94ace87c18eec93633003ba2befac7a762d8282bdeb93774a49abd4761f28971fb2cab14bba48acd72b26acbcb5a2ec65db7a37507530f9ad5edf7a4516d8b42a832a0a507ad88b44afc08cddafb5fdd40a85e9ede0d9ac84e45fb33299b54c41aa94e9160e34051bdfd9bbd2670f17f622cbee8a6ee5738b5f165498232d2766da020bb07ee90d6fdbd21fd2a97080ad741bbcb80b64f29f418f60c62a6e7559e6448ab4df93a2ca045eb8c6ba75ce4a8e71755a0eecd4731c088d32ef89cc8e842cc8e615ccc04ed8e51310be083a52231d89637a121918503c3e8554bbd590843139c2e521de80d8c3da09b5eda2bf2cd25bb382b7acc3525823df6e971894dd33201b6a1e32a22d7235b2e529d743db841e98e7bf7edf2c4c429b5adf666c986ac2373e4d0b1f22a383c165aedc8b777327ceb26ac91b81728956ea783a538e040738414691550bbc9d5c250fe02d337ec6f32ee9a5c31866016969a6dad665d109be622704a2cfb362f2036feb59f0fb515e3466ce66d67eb6aaf658173e71cbe05a1f4fc73f90b02faeeebea1ced5d284019b2398ca1bcbfc4c067ea1c53f2f8eb34ba05da9f09c65ec139afacfd76d59083916229c84a276eea7e18e74c4a9e8ce43efb60543c4affcbaaa0d681b442bc809526282f79c956e68b5d5a009f557f6db5fc5593cbd124d0fbeec4dd7a530ebeecae98e7d82f7b744963018d394f366e38f3fa2b84457a74c911fce17f31471a9b3784ee91862a41c5cd09a558a1d186258c06bf7938705687a33024d93159c0b6f4555bb69806aed278eab7f6841292712dbe9edefdce870e66200a8c360b69858c7a4bd9896f401fd506ee45b553546ec89ea376992a44d5073af4c261c05a5111f7db4a847b95f77cbc3bcfa6a62a00b42121e6dc959ce32cd6c1e92e403e4dd1d9ab055dfd520c095189be2b2215bfce3cd6e8f0e576ebfec4e0ccb5035970c7988faff832b42b48faf936e3ad39ac12157b6c7adc6fd5e9b61079c9c91f14319c2b88e1aec790edb2cadec2530d16c31a4b6036a0040826bb06bbb0719f1a95152a5101e8312ba6eddb4e6c56403195b5ee817bf9551ef7cc1bb34e2a284b335ab025715b84076eb97c07ed7de576452ac51f06ed23649ae0f82372cd09f3bb056d71519a763be286bda420b43de0a8c51980ca7882388a846742d7e41d28a8fe8e152505fec7a8a723a8c3a8ea0f2eaa173e0100b58e3a147b608f8392713e60ceca22acce80454257295f9910a51618e3ae40f80d43e4b8c32f61bb3f89d7833e1816205a85c2b430dddd4cd38a46cf09a08b12a8864a18cae7cf8ab643bda57c31a71f6f9795a4cc0e8db3f2cdce80ca3b634039099cfe0daaebd5561c33c74698f36b3d8eb65d5317ad4ac958b354f5456c56f37ac3bb5f5457850a5c5668c6253122273c66f9713178683622e2566e185fdd88712a7a8a31d90b19839a8824edb57c90838c93ea930cd6444819ce346a19a3b58b19c42d573396de5c353983dcaa672c3c8ccc355c130d6ba4e17eb54a22151be417c23980882669be2f624609868903ab09011213eb0b3ac807512a0e32005fdb72e829438cb583ccc37b93402ec4fa0c0037bce6c4047644f4f5927f304a9e63145d4358d0a0848d2fcbfa54029355b885f4ff14068fdbb1b50f1311278836e8695b482fa64852d26e6a7116b3256d138ad986d34ba680b67a6b5ea9247c466a563c86f4bb0b535a323fdba89f3820d92fe06bf70c39d20aa079d074022fef1af042381df2936d2f8ceee67c1f36ee5dc7e2e7467044a273717ac78128dc6b0f45ff761620bb045de5ce14c022a75bb11d2db01ef710eeca04e05eba1562a0ac7f54e8c7c25ba27ea00482d4f1c0cefa0a8a930b6fd9886796717feff002e5635dd81602c9899f82b97cb05e87fb0ee8ceb52e75126a07f4fd4625dadb21cbff17f8c9d19702206c7057a82f47c502aefc85db4bfed1738ad0e79a3d145f031c67c0d19137aa52a690d0972e0c81b9aac918f89f84c246128cc0347d0851435312755b954367bedeb2a47c1122f196a55e4598fb628da19c5caac755e3987a1a9fed6672a90ecccfe8f39ee02b76d5c35334f0e2d7db30365a5feea4b85762eaef96672daa6ad137c4b047938b743d5336798984c4eee56e50e4759ba12e5815bb36df1672e083321fa00bf2f02e4cde9385f186abaa1a2724ca607aefc46b6af853c41f5d504c563999f3ed6015f0a260676ec381d999ef01b21c337ad76cd64681c0b36b6ae88830d1587c80441a899bb71aa9d783e66697927ada2950807b2013090340340c2096d309cbb7ed7f34d9f99a742415ca93e7463472f1fc4eac1e701bb5287f758ea6695d25b46fb44d840f2ab8db7accc145da5ff2eee7ee1730779d47b0de739f5270b8db1073b895a236a83c4b857b94ed39d813788fcb82486ed4d163bbd198cf4c3f1172fbfe2bb0c678729aab0994b53ec749d008d77ea1c9153dc71d7b4c61911ddd624b33bcb2f4897a82c7d6fbf76aa4843e25ae9dd239fcad4c451446eadf066504e7ff136fc77fef01bdc259a937637fe53ab632efcd3bd662e5d008da1e2ceb6015ea1606d004ae49089b3585c47f758a4bc6d5ef6240915dbcd6b288c64931cd3c2192e9e69617164fec8c812d4bdf22212867c04aea13e610edad3d316a58f7be73863ac1c9a7bdb545974443c01e67d492cccf66b1d71073aa78d9539d2059d8ea6b6fd8446693978227fa808940cd1e94eb67027444b02ca6f2e071983fa4e6cbb587ae0b8f9c52a49aa22ac4c1696d91e3684cf26fd32c1903d4a9e7439c8868748bb0ea29aa858995f3194698e6dad3e244bf7522ede5f8f69ea0f10984f2d9130bb22ac8f33228b6cb7256466f7b6b7fa6ec9dd74ef841f8582514cdc4ba51c6be2a788ad48fe4b1cbb033cb851f4b83e3d4382be8aa8d0e0e4be0dd5420d86a30d3a5e7575beaf8da06ee1d2465dc4e39e6a1df59ab078c0a9676ac189c589aec6cc7beee4036350a8ba37162adbe8dc431dc033cfa27b9fc5d4332d65cd59d63fe05d0e3c56d4c01f42a4ac586174f4a83402f3710e6807ce9a551873e9d255636318e5de5ef56cfd78e0192ae5f77e50f887333042112e9bd71f738c29c9507f83e25b3604a91fcbe31701c789e4fc544c0878646e16be31c909b316c152cb4fe5a6521493fa79af62d053965c32d464ec590d74532686a29b3687292623a25df38c4c8350c008223c2cf9a8a52a4b6e5baf3b2c56c9d8075fefd2d9da2262d0a629b02cd943d71a6be97e9579325d37b0b27b48413396da17f9e0a73b3149369be21cbc9f68e25b45a95b053b5ec29f9d94c42be943bd973c0a472a27d6725471e720ca8cba4a603accb9d2fa6dc58f8b52473510d99ee2a297e598d7b2751f27c3a1633004c1dda161493a616d224d3c994d136fbada6b4253bac3dd60e6809d149e332819e69526920190ddd801d032882a28e3f28efb9115a94371e0bb454fe4f6ad50671c84610d0069421aa3790689db7bdd3ec4c0cba8b1f3335e4fe285bccbb428d0eb6372bba73f36704dc25342dc6f07bbe7b314fb0bdd5257c9194ff2178a27790ea5a4f1a484902afce31217677b8940fecec37897d5cc32407f35fa3bb4ea148400338aafdbde323ac4c61d5608f8d88b4f108ae6deada15cc1f4791b4f5531a48926cb02bba4daa64281efd0173a0cfbe595a369ff51c2a4fec65ebf7b951d48279162af4d8889d66b81d0f2328e0c94b804e2c7362360ffc1ea4d95c2c7fd526a6697306f412b702df6ba47f5a210e0a9ee73dddbc49fd1446064516defa0e96fac6d2e5bd955d2cec0a7acb532fcc9f4c948be2d245e8a14853e05422437484137b8eef3dac68291ab9eb35e8973f42439f3b0034c9fae498f187a1e1966f34b3724b036c1b59eeb0f6a6bd806e4510186ecfee30d75bdbfb4abe33cfd4fdcfea1ebaf6f0cc8a90f726981d7e5a4b5df386fced8e422fcfd70af7ce11c88063c900f1be3ed01dfe8521a2a7003c10ee2cc5b221ab6a14404cade73e77bbe5cc81aa95778c4125e90eeb84b62c0fb8f7809cddc42a112cf04c955ab2af6a63d569b341fa5e437f61a993bb78c0c904b5ac2233286e2fd5b342567b87d1558195ac9e3e324eb40401a950bae283f3ac7e4699fde24b16ca38be938c731da8e4687b53d0fa318da4ba202bf44f5ec4f14ca96166f4b18e9160c3234a532fa3444558fcf39766ca170360fb1417626b4213762bc15fe53bbb3d464b77367bb79b977db313309e8a7f25083b767a44e7d45ec595e0e9751c460102b1081eebec6adc19ac8a18138eb066a8b1337aae87080defc44628ca70d6753575b96a3e7234999369f82286902a3c0526b3e725f6fab0ee4e147a10139df3f3dd45799b5cef0a187f7eb312ae9164e1d0c08cf37f0840370e334ae1bbf21627359217885b298a04631282e3a60910abfd0409452ca85aba2c835280548b9a3dfff84a1632f399af96cf914e6d5207ba21bf70187c8fd7395dba36c951577eec6559cbc49500042ebaad12a2b8f1d15da14bde7e29573e20a6e22a32dbb7abd084c8cb59f02a912e37c28f3cb46cf48f40d667810c6bae553a963279b9a917d545e28b55d32aa69bb32c7f2142a4bafd58e6a2e338d6b928d01334f78bd2c02959e31feac74b9da5a44f42605abf24ba647c117335bb3452d62b75e52770cb751d1ad2a19fbaf787d94ed3f94db31d693f04555ed3afbf0bcf85594c44df674040781a5865e04e8bbf9f4de16c27c062b299b130b80ea3a89c2e51914441432f76177702f95458f90f74193ce1ca69d5993938d17f39332e0745a1ad6778a081c754071fcdbc7e76dc7cd37489875ccbdb2964734f2c41ff0e6fed4277afe31c927ca140cd41a484a4e1866c7d7ea0ccfc31bd8df3eb64abd9d2575827b2414076c4f497d0a8829a57fae97b806913dd12105a27803a1b0a8b927d840f83994cee873e971ca699a8799a4619327f96c1f362b9b56c3d8547ba92459069390efdfdab9a647953ff04a096858f5ad19ad772fd0caf23ed6f8b683a3b14bd213752daae8c4b81b3adfe8345bf1d67bf3ac50016ae1cadfe9816f77a7da3f578fe0c2415ef6bf019b302cb97686dabfb9554225dab6f6b7bfd74bce05a84dbd49d962afe306505a07b434e999631d8e2ff8c15d8ca2ba86848095ca9a0885e3c7a169f1ddc10b0f4678369817eb0bfe1bf7f297fa0756690e2a1d9713d8d1db0d25212f85638aa742a2c5c2daed48a42d47a36d804207bd38e4259372a0275491c53816a4a70df953e9ae7f09314889290fb40a9e1930e21b00136551499c6aa53a6000535fb6de3138db560b855bfc5854211976db5e9ca1e6c92c1dd564bc4db09cc597037b4a49fafdc7ee6e6afda63b12b18a3bd63a0739947091021d7fa11d9ee0cf9f2ca9c6c3c069b8dde0611d9943572ff37a7daf2d812d59dfadf9cd25e1c5bb61e3268f54214b445693bddcfcad4610b9fabd6f14894c01e1d1da3fee20d36d1471c058b103d51a93538a93f42f9164c2458f1f4d9da519226ac4acc5d3e8e2211a41add6ee86eb33d0eeac80377c203d7ac1bac48ac56272bcec40fdb60218b74a49c799c6752b40af944840ce53b78d89628a92ace322214ab4187fca0745043d45849d73dc81ac9402e0c1c84a91c628a76096d65a82bdcba05b94a2cfab8cb89627ade6a3c3daf5d130bc1284acaec4fafb84345b41089180775ac9f61b909d30a842ef5e6179977bef020785365db17aebc2eb6f942165b3b374d092f552a3e72771a1257ca4d80e2717d2a491be1ec63fd623fd45a8c827027d1d29173e20812c1ef54ed075c2d42160155a26d565539069d4caca77987de3d369488fcf8e61d0c4c306c666754453e3256aa1aaca40930a2b454f5040931405280deaf11475dd14e6c5c6b7f42f9e72250472e52245415ea4ed78be3997555d0138c68d754a8ae9935cc4281d21b44524388d9cc8a654f1e88106f5fb7c3228b5e9f08bdfbe7ff934ca4b57be7b8e50bf3696cd00ff80a7b1390b9f685ed81ae97d7f2c192d49059026c2d31f55a26ec672a005855edea4cfe7728f271f3603a20cf188d64e772a9a60f489ba8b93f4152798289643e6bd41893c9816d5a4abfa4811cdb536a238a2a563f3145a39e328454a3a6caa85d164b7bfe6096d05740367701e2cc0a087799d8298ee97f7534bba15935cf5cf73adfc97a86c780f77736cf89a9a0cc62da5387457cd860bcebe58846af5a724c591583911e8e310298fb90948abed17c6b9101b576896aba07161187194fcdb7658756704429bbcec8724a108cd2124da64ddb392ffc09ea84b698d3bc597ad1d5f3f0e40a1d150339fd5e58e57717deaa7feaa646099e374ac5b8306be4bd2981c63e8e01661833cf7963f9ed18bd65b279965fac8abcbdf59d05330ae0f80e60621c5357292e47625226445d1d1aa31361acf5caa413b0635b675ac60c6fe2caf56f5432b9909e1b1c6ec67508c47621718f186dd42531b317ed27cd1b51298e3ee7cf4ac5008f6f937a8673e35cf3e73b7fce4c85e81a5491d1be85aa863d159147b0c2b0458f3c7d79e44954fc4ee4703e57744ef685b7349e3d654a25f45631de496dbe1d46860cf45220410a15f0b6ee12d4769740c8d8df9c1927414d2da171f84a0d6157b1d1fa59e4b4699f3651ff5645b521066f43010de5c90477e0394328cef650376a3fd99d69592d19ed60ae5e69b0fd2c1057ac1efe9e5ebc8a5f19ed6f31e1dd751f08ec3617a1f8762625fd41c5e33fba4f805c9109a2f8d72513a44667d9c4472343af20f896f223c5bd2989d27880366f5bf565588972f54197d239f546d7a595ab8890cb728c79fa274260d59a6ee7515a5cc8816eacb208401192990f2fd7f8c93fe6a11a89ecd0c5289298231282e610de805483da9a1cf819301e5a6f32c4a0604cb0bca5caf091d1b75537b7425e6b7468059a7ce3628bd0fd97b7fd628743af6ad13a2cbbc3b0679c2c8964696fd7200415eb59f25caaf4dd2e6baaf102a3486a243082f627ce82f083aa9c841324cd5add0c04c25260dea10b33649d77688ca47b795d219bdca171529d82f503262d210e509723f76686c04a965966d92629582829c240aeea0c05f3c124a362cbdaccef1b5351322ec4b92d59647179c790fc236168be90b36afebb3ce0fe65947a2bdcb4d4c0ce89a4408a67120a97218d20c91c8c969785f2c9674d468db8a68e7eaa0faff20559f74faaf7eb4e0950147ead0f407ea9b57edfe5b58ddc721d6df4c15b719efe2ee2bcd10adf0f07a3d911454354621f4132bd14e68d42c7767494a0e7786094e77555932db49ec0b043647e10fc665ee75a6a8b3f10c88335ce30c7224870000306e01dcb03522913273be1d750f56dcc384506c3034c6f9d461b65fff35778f09f3784769848972b952f605c7f4cf8bb317e12997267f190b77801ba54e8d113ac4b79ea8d714f846f6730c8e28924e50a32b9b8123289046204df779453341c9a05e05813c494b23998a228dc9aa498cb098b912449b3234aa307af70d7f9005afba312a4fa0512a69cabf305b554ec6e48fd497fe9edf872037e9a59b4414e1394741f8054bbbd4641f9642dca08049d14e7247e93f24012b9da9148bf3551f6d0200063c63b7d83ae04763085454e8a237431412d3c3929b028e28b668f1bb281d7376b21f6bd4181c7ca674fc4e59ca5ab200d1287300e88d0a816b47fc08f22d2a262215fae07649c92fe1ed383b92b310ffa1ed77c42b2b68e073a88545d7d245787fa55989f54bb416de462455d10f411a98a6a7cf24f96ff49b6d06eee9a7374964852ac1c9cce4d307affcf6252adf069035b6af568cd448f44d8aa7a5954d8807343f412a61f84359b67231de282fd8f2bc738bde6743fc8800741da92961da0104df4cb576723d4ee1a5ef241e27a349739d595188425f480c2ac9573716c606966fda62b81e6c2168655a3cead19675ce6099952facbbd70dc1757b8bfaf3a894a11fce0b9d9899065720f7c4c79223fececb3cd086cd934427564ba8c269f8d3a31eee14629d4bd70471ad80ab18f1421c50324ee97c9cbd8375ab1f1899e74db4fcda824e090ec6489b0a7540131895b3ca11461b2dbdd7bc0d7d8f039326871ae66fe4074bde6bf41a0e06367e25c604bd2603cb6b8234228188f9a71d488a7a50a74d0eae48a90e15f5ad968f517888265f16a450a64ae684b9229efcbfd3bc6b9d68ea91859fcd6e309223f889c71bdea373da2550dcb9a69215ddee73dcb0b38a2ba878959e603211f140d03431e01e4586877c832647260c22f639d34c75b3d7572d472ec7a2846a0a69aaa1437ee76e88502947b71e0b97109a2bd75c4619c7fc2d557a2882b17e9455f80a160bbf32e0acb3c22d6fe9ee88efbf3836d1c246b5c9731d94a196880f4e4c09c916b5a40a3897895b7c7c4830532b035fa5479ca6193c9213fb8f529795f309f4078d476207f33d201fdbd832f2020063bc631ecc00d2051fb1c729debc398c75578576e0934cb63e67f182d43a1cf19520bc4bbcff0f524f25151a39465acbc87d458a8aaff218b463b925c892852fef597866c2086bdf4a36b7a8fa05d23f38f40a5642b96bb97f8c88388a0d638f9c6133979b937955f22dc7582261d92eb1ef40389ed4f2c6bf818ee5c60118d0a179c17e2dad7bba8e685f7d3549df6e729433efa240156624c34f71016f2b7e5479036b3209e4d4e0f03207f35a1fcb16b8a67410855a1579533d6f35575dcb19444fd1e20a2dfa927424641df175c8a29cf695826202685a3c53b8346e3449f894c9fa6252bcdba92285064012652be64e3219ab991db436ef4c8b72a616da81942a5cc4933b1290dbf112383ca5a3666fe0785a2ed96d2318d27981ad2e01d6d9206016315cf08e04a9afcc5a2c9bfb020472e1a98bca5017410c65579da2019aae52f78cdd0cfe5dc3e66458617c46f9767588657e19804506c28d51045efaa90686146e599e02dae1abbfab0e087147244348631e4230cff24753e24828600a3149947111079831d4d78b18edf47bad25bf44d8bae2534c01dbe7d39845435d69cb7acc480ce3ad017a9d36f784ddf898ee3364d1c56c499313cc1b26fde218291c0ab0a0c581024d8483f585af7b8e853aa3dd488cd5db814452faadcaef1c19273887069b7f19aafbdb2446ff15b0872483deef982c0b69085d598a59d574fc7ebad6f7736095f0fe0c4126639259baf8a122d4f0f170025f0796c00c9a4541c48dbba94b6f3b80b2a4160daffd3cea21edf5455c4f098f76c1b90905a1e6f06c0ba36e22f3dfc70a21804027ea825065df2be8fe0f4eefdcc313dbde9ee467344b17dcc04315ed3c50990a9879b440cb8a7bd000d885e5f499da2440c308b5180f1f6a3049c3cf4c63fdcaa0658cae59cfe4c6fd8b5f28a39988517e0a13245f2563aadaedf9bb213ff563c425f5784744054cfd020a38849f261794abc30c5fa0ca84c21541437135506f8071906138d3d2abc2fbb6c7ecde8a26423d5a4250d1afc01ed81b7515c4c75825a84ed1737346360f3f2daa1adae99bc23d3bd38f1a45e346a6a388f9fd25a14a237f14709d79ec8f0c5894cb268bcf90896b8f2dc520cb2e9437bd00fa6f767cc8cceb50275a9eeb399dc35aa1c78c1eb1e4ef5f72a1b56e358b14465bf583a1befd8d37605e29355008118b7f18d4f3954290dc67416f39557580ef42fb9e35f24d1d469cde6b17061e286c5137099a82f3818a544d92619413e8f9cc15cd741199f3633a82d8977a5b52574f65c90acc8d65763505a0b943289958e2a8a708632ac415c2a9d9deaca7f2983ee1ca23ddb79bcfe74b11f8b3bcaf729c0c19f732920e6b864a76d82865ef5d1506796b518f0e2c15ada58eb606e56b5d133e5d5c31447087d01704b32ce0d66da1215a9747df1c4aabb29c2bb50fa2128b004df8b96dc96958ae85d3dd52743d6036b897da4160d67303ebebf58dfdbd32f0155e18a5d490ed81370bfb5dfaf9fc5c45ac40e1dfbfe6ed60acfab164c760e26328c68738ed7c5812ce9498ded59dbdd64f425cdec827e009fc15c77325001035f05c7b8fe0f9c74a62f005e59808cb3cfcfed242e843a4fb5b83153f016d05b7b9363a58505dfbf0e013ea9da9d2e448d8cf4b4e3fa9f6db018f22979a09671c4091690b62ee3e3da0a36a969ea1ad77f3291186b5347a308229c2ebaa609548b071653bb58ea2f5218480d57edada859dc3c3e6f092003610ed1e9ea2ac49537541fac198424c7dfd95b9c153f329045421c7ba24e86d37c19bd4b1589ad778e2e29b46e0615763aba4f81032e29bffa9674a26af8f172130bba438f526b8470b27b0866d1955a561b95b6012188de32aa42cc956c9d5f50a14e6f7613c376827174e9ce7424ff6f80be46dd7fb85723bd66f20b54b1c54044559454b0154f25fef75993264effa23d6ecf65dbd19f23db0f3997974c4298822c241efef7462d393e40d64b83286e44d65e9242cea185ab7ffd17e2361ee08cf09593f875a14f51159246040df2a6567c60d00b02d661c3d928fd859ea59f1b7ce5fd9a587e139aad58ec6ac220d5c9d8ad7b0a97ff8095d98b8328683393f7948a716dcb9090b847239baacf70659d113d4fd6a482dd97b2aef3eea4e31d71c4fde1f1831370b67061ec94ab8c1dd8ec0478ea090a4e4be01309c149012cc521107058e2a594ab4672ca250987402692f05255483b920204f0fa3c4c7e965b01d20c0382286ce3c6a9de21c14e94a484a18ed6091ccc7d43c58602b2a184a3f189f7470a15614528d20276d8202b45122d1404fbdc9a3c80e696abd84702ec54cb7024e5b32d159c98e26ac8f9c46b41588fe5498042a49734a95ed558d121e53400e0662999b0a1c93627f541eb4a81429d40091e24a9db45df10881e3d3c10c1a424296ff0e3c4e246273e0797dd31fb2164082af8ae4f416b13503c912b738747c1e83c40c4a42114dfb55de2e58884e50069e0eb1440d7de7d625d8f974488d34fc16cef8bc9dd01eed01fc447dfa378148cc4e23202c5774872cf67834c0132398f4d54b4c8fb76d17a46e32fc50fe891938afc26406aca3ef41c5060ad8ab9afa817ce9039e81471bf404bd5853302602192782fe27533b1228c94beea393cd10008217ed18fe6420ca0cb38b0f867a80fde3ca08bf018426f57a7a175feea45b4d6cfeca7296195e3017e9751ad6ac53aa0a0785356aa093c81b65a35aa06fb6e09f9725e0ecdffca03bf2088ac5bd952659db96cd577b8a6c52e0e6c8e06cf2bc07f4d0b620b9adffdb411ec2fb527b84677c22c3b1152328ac7ee4ddb51ac4771a39ec1920f71b2ebbc73a69fbea37e208e6507fc656a52f1f8beb0213189dacaec9ab779cbc411fb70d63f7dbcbdc906502a136e8aa0324e4b48abb3627a6a087e118777c822fa562aacdccd9f98349ce713490bb5cfea577cc10e5ae633a010f7d30437a089e486224be9bd3dc8e0b0a0baa60fcb85d81427a55322a996ebfad86bca9d145ca92a749c8abeb5ce75f20472f6e3cfc995e3248b6682a99c1ec95393e7ecae5baa430e9a6c41207932df9e60a9ef964af9590d13f9c9dcb34f40b7956f8f3685069c6c4c22d1a65087fcde6b6cf3b5216f0a5d707cbd8219a2e77b5075f380e50d03a261bf7ba0fa4ef3ce36a23ea2a2e8e2202f401fd0d4d896c2f95f29dd384f11d61c00c23290909d45324a4e92602e50c06b3b253e33c571bb1d6f101b6cee388c991585813d2b50ac5c45d3b11b1529353091ebf27b18f973673a099e25544b878a822ddcdbcd25b6697fbdaa0d4aa88706c23a38b0ce6493c37063d98585b78ab90dcec9db55b4938cb67608b946356e8c8589e4230766c999e2136811b96fed8b46bd8cc367be81fd0918d41549951a0a2a7941685e0e04a3b485218e77009a63d2160dd102c32209163795c27a297b517dcf5295b251164c1838d4b41b827a6ea558abaad1011ddb51d1a06e061dbc42c401b74768a61978db5b7d0a33ec2aa5e178a9dce0a948d1ce0b5670f9adb23afe554c0b0d1102257f30fa149204b449a8ebad40c88cfed556e6316753df439ec24aa14184ada382eed8875625edf034d0dc0dac76a22167b8ff62713250606cc27021a7fb6e7f84483d1ad0a19c8d48d089ebd8feef0a39ba045fb5ff97262068ae27c13131293d68f8d4ae5a9b64d0ea68833681ce0c8ddeb415d4a985a276d1a4d368c9681bcb029b5984d311da69dca15700342d9a0e9926d06402921972637ed5ba21cb4cc50ee25660191247d25574a27f1234818c534ba543a2c559b5e29eea0b399453a5dd17720dad0dfe3af7e10ce839d86b111721dae0b50f22791f965952a49793a71706221fb331a0a55e611df0d796efc5bce2dda8684419bf441a2c23405efe798a02f5d0c3f1672195225f7d8b012356585c6ac0ad69c64eb9712cbdfecf20a7b5c8756f04c2128066218d8a86a96045084566bd278a06bd0085f88d037dd4df371ea79930bc8f5ebbc5c365756a886e562bddbf8e867dff9f7e1725b06de63567ce786a284205d2b2864d1a922c77b2d7694a6e1ffc7279027c3188448b7509754e1a61dcde6263c74aa05c608e0989a4088b9348ec73282705fae615c4a1d8dde603b6996711dbfa6b3af5fe25d29dada993d9cd437a845f4bc00c6c15b7381a624c76f2a67a0b860dc8496a557c5c86b795e1f38f9474e239029269d6e5e2c8c9d143b51cac8df4b8d54e1fbc0d876bcc1b0503eb29b2b5835ee3a0217b8d1617992934a005ecfb4548a50ac02ebad1401b38809fd50b454c713d6864380cf33dc3822300a18711d538041c91a3f244cca3c076b74970088335d5034192e25c76f50ce81f1f8f685f4e5f1746d0e0b9ad7ccd115ccdbf1a98e1f03227a196b3a8ca5fca32171d5f0d4bb73ce9422da35e035401d9eec1b77a73cd6b8b379b87640cbb1ff4b907f2cebff9f19442f33877e858f11b815a602dd1d345f94501f5c8f22ea08963f1cf0fe6901a97a3cb333fd2022915011abd02e00be9423d80681251cfe9ad600d1fed5da7601ad4d7e7c8d9760b028d883f1f88e0a04222083c7d68d63d6727db25ffd2620d7295e0dd51b934d53d9f8010324c3569cec8f06403d06269eb9cf00c67f55b07b12409bda4476e747265a5f669ea7c7c29bcac658a6775cb8f41b6a065a29cb2d7c9729f1333f03c44b5549d269cbf1042519ee8126bae30597160d9cb260fac29f05e85b09a6cf7e771fedaeb1a31aa88e4abc216df535e6686c07a86a2e0bae76d80725a93b02e6931a7a5c34a912268c477da2818f0ff7966b4e6c8a49c229c2cb9907ce2bbb16c630af0677335a7a9c84eeb59a91e89e3cf2b192512f6b9b3f858516d7fc00a06dc239b009fe3e7a5e4ee7ce8912ef29398efba8ac4df4982337ed38c4f69be20a02ff95db2ebf999586e733c9b577c11998481ac64585243556cbc722d8091282efd1caa19e355d2eed1842ac99d8305b4870e781842731b8f688c87e26805680dac6a3504000e025b350d2401cac23c34824906c6c2e1f94523ec7160717240e46825f98e6aaa4c0ee8e229a4f5d0e0be1bc01c2acb387f4d631ff72b90d9c68783f8ec1abd4d769adc1688315572fd12960f31d60561a9dec5299b750bbd45376730b04a1a31b85d1a1eba9993247a243447fa804a125da0704497d024e8241447fa014d127da0714497d048d027348e740145129d4071442fa148d025748ef4015d2aa87d1a1eba9d93247a263447ba804a127da07244975049d02514477a014d12fd4073449f5048d025748ef4014d12bd4073443fa149d025f48d7401dd31fa187a70775166f4b22e1032fb0a8e5c5619ceca74068200460444b3da334382f14692dae483901dccabe3eae0bd31ddaa9af93596f8b5fb7493a0cd99362728251fb46d235d6c6871808b4910b162fb48ed666de3232c24508f918d6f8cd4de2c3179117fc0c958d60743b04e0c8e64f83887884a23404b2dae7f9177f05e322114363a216622c210e488d399d348988691394a2bc737a3db871a564e89865bfd40593a645023e475ff2edcbfc5ebca98b020a54aa958b9e2ba28e9cd01d73430772ce9c529992967820559f592d8b962bb29261c24eaa5628d247d949b24f581da2309df0c6543d443aa5d43ae6b2dd7876a97c9c0e711f18abf4da0bf1022aa4506431e40eb239a593059e6d993c7c06e371b21b17371c6b3e37da0c4895cbad783f19cac014c86f04b78ef075490e73d47633f084d38b4b381e899a8df1ab9d2f0750d50a81819cbc20a6de9c248ee7ea02650e8f2a9d5ccc9b0928db2f51dfe84a6ba19762ca1a2a17eaf014224ca715c40a564423000e5ac80f4b185c0abfcc0c4b771afb717149dd73057a42ecde5a82df8a9622294e3e923cd1fc7e6a6d7575947b8103492ad547d2c7047dec24f142e6365997330b278fc312cd599f1036e826834d075eaf1a052aa45d28ce381b275aed73f5e1168b06b518213858c38754080c3dfbdf34735c746d5ce0969c71624ba694e1db5507991367724a3e5adbfb5d0ff1c5f5802c7602268f7ab0454684b2f9dea80cabd65f758ae3ea27674cdd6874b4a9c241d5a82db6d16756e8ecb5c58950bbc5c8f9503779e414c78b0d81c6f9188ac79d68a05c78c3a496418a21ebda9d00a91da9b3d5b868c15a0c6fea2b303648d8dc2b5e7284ca01695c07d9d7e71c7158ef8755a945732f87558b545685078a3092c4344adfa66d4d035de30a0b8ad15e8ac869bf18fb18ed668bc49654286538c77b3f035909f6b348d75f4082028ef4c233e64d32b2e623d54d3fb17620704d0e316c16798cde9a4a4d8cee6a6e45ae239046a018497cedc6ba931c228b0272498ac7f10f0c85b5e3a335813f951aa48a7970c60eaf820573813a8e671cfb35445063f08c05ce3560f47ea0094d3354d80296bf2059c09e2719a6db3ce316ee0aafcf98c65c0bbbe32d4956ba23f20df2089784c5f9dc7f400c4cbc0d41648ea23768956adac880fd228a8e6379d2278863ea3ad7c008f2f4f6bbb553c8f153805b36b0d9a202071dddd3ad86d89411bdc5b2b1d0f327ed38bcd84d8f16c83a435113a98a9f61ab32de88036c078a53ac959e44d4786afc3eb9d8646cb05c59ae9a15c5ab4a67037a39f2ea484cbce7c000c3b3308ef51ca0fc8aae72904c8ed312344da1a025a61cc6f9fe3ee7df98473389531c0a7ad4c0227416fd30f9ba47a28d1d85e4b10a017e1389b9ef1c0dd66e0ca8f27ce38e0fbdc29b28ebb5d20ae6823be8d908d977f860dd369d1351a59b5e36932acd4cc5c0ab4f2780be91caa94e2301ee68d994e4a8e56332c3a40d9d4965e9e4b2506c7b492fd4c09d5877548692e56a0e6ae2b75c2b7e29bbc753bd3d146c5db5b6f00d45056ed8f823ef4b3335ea09f8543ec244431ac8f6d08e266b69333a269482285221033a8bec1e37feb9a6d1bcc0a74dd0103324462082d5d49e08c57119472df01bd1a394484057a32f95a7b5e0ab2f3faddbc35ecc31df755420c96e4144d9d2a84db012f309676b36562a870417d5b61c777d8180b2b31492367cab3bc8afcb83a3449a31fd587e5496249a3da2ba7cd939f4e169e78cac5f450a6b02022eebe8337afeb4e1831e1329369724a3dccabc0f3dba526156ea270f1c91e8e719d1246c2244e6ac6999a1c1df95861d9329b27861217ae27d3bc5d396ec8c0924ca5a91391695e22f9897c3900948b58510797610e70801cc4f3d35df952025b9ab5b774ec3efc73b6ec44250e290b728305f170e96bdc79bbf0120515bc750f0dfd70b6e4761d2f09ab9f4a9522a4441237ac7ddb8435cea3023904a9294d39554b57be7ec5ea5b544f11169a1ddfd52983182a5c54df5af8f13b6edcb19f1ee6e3e2bc861ac8075e8b5e2a7d016bea1f85697fd7c8500defaedc42a423f3fb93463f1c5a38539da7943c0ee6fa6b3b4b28f1689412018c83040222e3eec3b87375f5ae028cce2102a2bb2cbb8628655f16bf1c529f531d715cf37509ebf817a7cda8b07f5093af9913c5c153583be62d12b49d796dcae1e2c7339a656270e5f32ebc719ce38cf38f2bef028a7725658867502026eb691d165da29fc17002cb454387baae42d0af6d79220ed6c3e019712e5283edc4c1ff610e06aea4b2573e97dd0561cc9be8b019c416a0e5c1ac95cb8e2a11580ce6e3633d9a3d18f4b7415d31f4bbf5b29596c87cf3a9259327e1bd718eb43d34429d965b260c3871623f5f22b7426adb8c88bf803c5428903f7a5d9033795d6466fb89125a59bcdc16817f1687d540049c329e08093f819ef1a732598c490e960529ed3d327c580451e329230e34ca1e03b133bca0345230b41401f61d60912d6ac062ae71926df895a496eb7ee25c5ac8841685b4870992d50309c246284eb4fe681dcafb5f97a1aee85f672bc2f14f94c0463690c9c77749491a814980d6db5a1c6b039466347cdf249eb002578c4cd9ed26a840f59db547a699218fc3028577cc3bc5631bb2695a82612f4acf72c3e6951f040d8d839eba7bdf94936ab1813b149a5cce6022d5b5cbf09bf149558a04487c8f81008f8f1a4a334de9a3e188ff9aa0f3a38ba37d4d47a9d4b16d30e454b5969a74fbe7ae54c3a3137750d45feb377f31ff832a0ffedd36d45a4ab367751c60bf86e6bd9daf72966427b848113b8df0379987b1f78eca3d416ed70f5ce9eb47bed4e523afd4fa90577afdb095323012fccc031a10539656309c11b5c509d9130914c7b78e9b62e31c5596cdb934b3b85d8a94c5d7b95d3a37789af12d83a8e80f031033dd470009c70841d24d340cbf28e0769466a8914ffc568edc4b7dd034eca3511309b5c8761391c8eede01bc09da0880085d18220a90f201bc940743444182173e1fbc4b708895284c39903c1bd219218b9f9c735373ce20a8385ad9916777612301f7d4931a322587710e98438a39e65f9279b3326fa49cf147a4927d41842df306aa44988305b06545063b2ab10273f85037f551cf464f7ca9be903bf145ee4048c5e1f4aabffa24178f45d279a378e9095d041132042787880e4f8fcf8fb401723304278788ce0e129f9f6803e426480f12b8037520911c1904df84825cc868c80acecefb193d842920a31b5f098d9698629e7a474920f866a96649470749179145928e44961d4aa9a5d28d14648b47251d69477a827444dae2e5905e783ec02d1e0b7c232aed483a0f07dc11890e7da1b9933c32a89c704f338e5e268ac23814fa47234944fe50f8060f8ac23814f2c1793e3870483c4561dc3364f60c993d4366cf102a240689a7288c85f008813c4278280ae350e81f8de88a742381c816e9e6e6e6267443511888a40344d20122e9c0a0ce4c6d297792c88ea7b9934178368c50fe4c3c31e24871889c3dd4670a993991522412da48373bd26cc1007758ca9da45355d7d436d2a4f18439e77b46706771f0fcf9f1c1398d53c4fba097f4688708cb87744bd7bc44dd8d7436d49d19b0c5994b364e6489395e4c2216278e2c0e8d22b8a3904c247bf25463c02973c23f2dc6f0623f2dc6d8c1965904b50f9b65e310a4e14404bbca1e72577789314012879f0d354ddc3da6bd811904cb845da9955993c216517f3a22f0c2a62eb3883ab7a7d7c9ca6cad615397797a7dd42455cfba7a601b3ed3dc1df3d311c118fbf1d042fa1012783b6fa7879587a3c707f05a90802af3136577cf2714750745f09eeeacbd52e9a86189ddd93d794868c0a338a2f9f90c111f0e1e707e6e34f880708a28b9d9d3e238f17e6e98983869c0c1ee60147bca881359ba949cc8d28d884496ae075b45647945acd89301bbb346f64c892cf01807ceeb444551d484b1140ad17f8e462149e39725e08ea22c051370e34614648b09fe3255a2b4829c3ab88336ddf3993611fa002f6fc19787472b1535fdf43ac61879aa2f70076fa04d9cb480bbe7c383266e1fe803fc0fa9064aec83fae07bf0c1f7a02449f230f790f1e7d9d8c00b44204e2c1147b40a0c3f9b4051894ea79fd59c3d4e84e2a801510441438e0f91dde103a1d241f5d153fe2a831030d10226625013821b1bbc20470c57d8e0e06546110616610821348327d4208061051880e1058b83ef7e45c020436502a6fb1501430c9f1c93fd8a9841087bee57e40c61084315fb4664818739d8508b3044b1e17b48c08687a18fe2e14d7040cda46cfde61458ee57240c2a7617da46c071bf22614cb1573e23b4b2b2e3a978fc831dcf85644b07747a7eb490061468810811073b8621c58e3fc4996798dce06e148a61e840da905211548905f8fd4d55fbc1338e322560686dc0f0d93d13f65a7bad33515955f5fb775c2d6bfd5e67a25ef7d55e4b7f6f7f5fe70d9000a92255a8fc4b2aa549527a792aa994306aa1be94ee3ee04d165af0f3f2638a81cfcbbcd43e20174ae022e7e50715061b1105e8756af003212f3f261d9e178985289e40f2f2636201901ea2955a4481294fb588029a8a28305dfaa47df898fa07b6f332ff4382c2e7455ed23e7c50fd63ea7999fac503fc90aa8807e8ecfcd43e9ef6f1b28042163ef2352fa1788029a550e1211658fe3d092504824d09e58c17bdbf0d9f6da69e0d79ad8a9622601ed287cb34fab47fb1bedcf18800dc3e36d5433c22e0c3d0a65f89a377896a30d49722658cf70778f9ee03deb671e41263159c40c4eaec7429371e6502e2685e078d379e8df9996829253411714427d4507b4189a7325fc4cd401c4d1f1f48f1c0cb910295088243f8c91b0f87dcf3a31e228ba454ca04009d520e91141b471294a474490a3d23e2487a1c4977891d25c54bf2d26110192bcc68e0e52002fa205d7a061e0eead2b1241dfeecf844f8ac304178897e0a2901f6648b09ea99b0aa25bd526762a2a6e9b53a13544559d4ab3d1395adafac6ac9faea2b457a7a76a5e2e899953acb38e98c324629e35443233502154638811b86e0063758d6ed2d7bab161187c41ebc16fce29018840d0bb0e1bb78c4b21a2e7968a831c663b96629574508425df885ee833c4d440c859ed61d656922e2c83ad5d106fec4d161ae401255de8657f044cb3ef9f36c34813b99c39343af439dd9839363e4e1c86616db35ed37779ba6e7906c0e79d7c4f9be641b9e0d388758dafaa1288c6548fea31f9d5a11013f49439ec9233371e2084a114790da483987c89c21524c1c4a79201d892d92865ec02371042d4bcb9f6703cad8d3c09933adc8e199604c336ced59ee81edec2f775aa6eddd11ad757963ac24e0b6af57fe9e3212105a3a2d89232889c4117cccd28a6f8a44acb20d6e802d93a79b22984db040c6c1664ff3084f053e5a3d7f66ce121c733a89237320754288754bf7907bca892cd62191c862e111b9244e7f4a680617ed3e12e125844b7ee06565891359a014d10b1d259105ca20038e7a87bda5938032514729340ddcf630486481021ac9c9d18a3882531c1271e2a887c9a6b9f476897108140f87dd367c2cc18e9610d66db46c9ce8f52c11ab9f17d3fafcdb32682cc15db5e7e1185bd2883384663dc451f66b0f0f8fc01d982376017d808f38356c9e9ee521e2e8fd6608c4d1e3614f0fed09ef38244af170dcc34f1ed92221056748771436d15dc8e21c26afa4b0eda99b3c286c7b50b6e7b23dcef6988d6d5f6b6c7ba9235beae1a63b0a675aa5e62bbf0667db577a298f60882dfd6dabe64592a448c4b6bafe6d6b04f53e6a5eea69ee6ab27dcd4cd47725a0a5c76c754759b9fb80cdb6ee2225090712744bf68fde485aa9c8603e528f88227c449647df211027e0cde3cec4c66dd8b99b203b1338c3db3913686722d3b2ec9c094067420371d7b673db14f6dcb773d7fe560cb09f7cf2492fc48fc16777295cde322555e0b57ca9026ff3757b982f6bef755d6b0f6fa5b5effe502dfbc3a43bdc85b60c85a4d4d46f9ccea0c5112db438a2c5112db4000214a090050563d3197b7eb050cc172f391f8c5707827d84110a53bcbd7b3c3bef5eef1e110c4bfa2affaa94550970079fcd72c4c97257c9ce39afcbebf2baac56bd844f90197699a51735c350150e85ec1876895d561007062809d49148e04ef60e72b175aebb03fbd4892cd9cec3f182c03e5fabee64ea69e0c69f975d905b78396e279750f8072e893654c4f2c46a8ebbe224a87dfd0a9468454c8d3d7bc8f745185e0e79fafb705c3650077b7d56b39a7f98c72e19189d93461ce905676b864140c2c516458e304346c4c1c1b9aeeceeb82e83b8ae6b06cc1890bb9ed820118c27228fd4912a546eec1f852e91481c7164d4c15a86a223351d88a4833cf08b4d0f2f29df03db52bf5f77070ecf68848138e22c16d99824f2f0749127f2481da923039f6e45f8f7d931ec7a17da1826c23ae66aab3b23f674ec3a8581ba2cd3978e6919d0ed675236f62977999e49d9a0184d3f144d23b7c9437a9e681ab9b9d3cf2b042784c9f4cae5ee47c572866176ba9e1de3a653ecfe503f4d99d51d9d303a4d739aa6c9be5ec9bb57eee0be8e7367c4c6af2fcee042f85ac67670346fd732762eff4ad9f49426c0451e031d8838cab479f95008e3d89265592633d04ccaae7f57cbd4db0ce76e26e5cacf25debbc4ecef66d63ebb745763c44ef9c6bee98c4d8f8f717f9125b4e510b7e941d82905e9ed5cc65363aa9dfab55d2d93dddaec1604ca31dc3bdcdb6fee8cd8f43acdf75bc638c77d73a7699be5ce7e03359bfe629d113bfbcd3197c64e7307e9f15d6496bb99149cbb1f98b67f33299bfe7535f52e32c327ba9a1c235ecacb1420d0925fb93b625fc7b4acded2d6b15b6fbd47b85cb7f2abecefdfb3b4a6b37395c572cdbef269e8a42e0f92cf5eab94b2ea2ef42704e8326e97da4f2e75677221b2eaf7d52f73bdf79b94070581fdbeca568bac8bac5fbf14f5de115b6469acbb238e9036775295d6e5abee7a7c2721636fa0665bcfdd77b5b5beba7cad8ee5ce828076ecf40201b7f64ad31003bf4ef04600eeea95b255c66eeeee314d430c7cb5575a463ba665b6dfcbdc594d43b7a6e71604fc7dbc319ba6911bf4faabbb13a93b930ad2d2da7bad4b37666ef9eaf657ba31d25696eeea69e4ad32cacf2e60f9ead40e6b5bbf993a96bb233666dfa3b610a635cb55e62bcbf538eb11b582bde6b86fc63dbebea7419bd67417baf7ea8e864a6d6919ea550ca5bb1a1789659b65eeabfb776f55fd5addd57447ecaa830e39e44083c68c1922910c192828a1d0c989890908c471dba669598631865dd7bdd6d66a59d5aed596589d76a5b6cc28dd49bb5efb96dfb3a1e94edaf25796d97b362eddcd5d8fe55dff1e0bf62a6beeaed35bccd232f755755fbd7bec367747ecabb16c59dda5a59bbbaadeaaf7661a6dc0f0eaa8b77791140db5b9fbb12b1abaabee7e745dcdae2014e272847c529332c68834dba7b59be6a12dcf38ea1e45edf99a8df1676c8c1125c6508c49e8603745d150140dcd8c9db133162514638c31d298b0dcd02df790499e71445133d6d2ecfbed4a1a6ac6ce581a6ac652d48c9db146648026461ec8bffbc3be4c61b2ed00eb786cee75cea91dd31dd61d8f3d7587fdba8bb4f6da9f39197c38adfd8bf6d665eeb15b989d5c7efbea6ab61225fb25c0c89eaf60a862cf676f80c74ba2d8f8274fecf94c8c25f67cb5ee0f15d5f1d83472cb649f577722ea0a51a7c9657cea0ef4174732f831d6a7c58e75d703ef24441bffe60e77d4be5a04c4db568bb8cb68b7e7b4bd66e7e7ef5d24cef856eeecdf1f6012013a8ff316c4764c8bb8cf631117b588d340bc2dba2e639dfb659dbba5397d7ced36773c3636ed2520e036e9b06f9a861818d33b4c8eb58cc9352d73723c7387699ab94df43d09021e9fde9813fd449a46eefa7bac3b3d419a46eeecf7335e21aaee60861d8337466e8c81aded987b0ad1d977347267ba030165b3fb43f5b943ee794c4fade9ee9e46ee29f79d73ce49c11b6355d772c7636bafd8b153b125740c02d767c69e652e77297bd35dcdde8e758777a432ee19a7b95f7ffdbb31b2a336f7507eb185bb689bdfe6af9e97ee686eb58c75632aed22b5dcd14c4a880a1fde624392aa692c7798470b4a4be8f7dc51f28b2a9ceea88dfdc5630fe51755b00e74e9268f37266eab65f0ad5b7f3706df02e2a4da72c7639b68bfd77ecfddfe24cb687ac611f77bdd2467c7f296e5b8b7dc81f48473677d03355bbbadef46e06d11f7ebdc6dde7e33768dcbd8efb1df6fdafeca3298c63ae4ae686696bb1fdbbac7f7f857cf38c28eb14b773fb6f55bffaaae2e2195bb21f6fb94bb23f6fbecf1928031a00d4172bb011b80ace1670b60bf224ac2d8f11415638cb9fbb1a7ec66ec443bb8239e660b04fa00638c6d02fa204f0f03afdc00ccdb13e66da92728a7986f9a12ce19d1dbd4eee69e3f2b9061041ca4804314fbbd3308d9efeda82f523cd567f5392d94940a159ad1c986e6e0b5c02451253ec61fec481fdc100c890438fe559208e4a142a8109b4af374934d9238c236324a39271b0d79e228eb200f9038bd9b4cb0ab4f9bc8b2446401f270bc202a2a4f9a8a238a2707d51ac1934f3e09678806e8522ac96803e60190bf48388ee2ef0658c40d50ecaaa25edd7a8cd986d586f207f8fa666657561e8eb8a9138181c8224f7d008fa2a89e0e01b848f7b6d8d4a79438a20eb37e1c512bd45724758ab2288bb2e285f9ae5ee1ab2a285515a5659e0f1582942def49dd419b1b0496c4dc53f778f23dbefd06c0454b8b74e9723acd4b00a15e32106a22c18d97394d9388d243ccbf4d047ea11435691ed04767d6ce20a784f20b778929d18a08638442ad94c4f7946078e9105373ce19319f2d1fa6f3f3e35355f3d527b2c4fae3859436d5278ea44f5db2e56914c12b41b6942bd51830c502dc551fb944f54282bf4c01a788ef70a4f086271b52a10d639431db0db50d61164dd18cd9da10e6f9688067433e1fe0d9908ff96ea8835706f06cc816026c31c222e340792b766505aeac502b2b06386226b66c4412b0537d8edcd841928448ad3f4aea12ca623e71d6799302ec225ba87479295357fc0fc7ceafe505aac84b2cdc98c296ef06b0e5df73c296ef549ecbb3211f10e922437124a7684e177907c8f3f0115b3421af881a866c29a3942ff3b29b91227bd832346f661830fb06fc4e51f31d1ecef72015a74cd46f9fe051f9a894543eaa8592b189075160489ec4f9de7b99daefb5502929276d93466515b6b07ad97bed55310b5719a54d9bc451d03491ef9dc4f7a09412e5bd88129271c9786da11f182a155964506418b21fdc15a3228b0c941dda2792c906a9ccbb01eac6505be2f6b66b95ed5aabb53263bb5ed7ae9795f9ee8a556c65aebb6675b353b5eb56392bf3b42bc8ca2ced7a524faccc73d7909559ee8a6267a088645c7b7e60c7c3d1f4b1638435344a2ed4f7f26695f2bd37df9bd204f3cdf96484efcd48e3881ea955ca7864d3c42d4572ca8ec8a6891b3e1b9ad22ad9183f19c1f0f15d4e31d4f9a81d60783a299d53c6285d4658136442c2eb8953ce291fa501140e0e121387239afe424f05fe1d85250f45e79ca45b3a4e800bf928f5a8f7e8ebe113c628d497f2b9236a99296df07c8cfac5d19334cd738a7b3e781a8804bc28c336dc6ce9f83f292bd2674892f42d496fc722f82b9145fa230bdcd253546c3c1cd525eac796ba1b94ee01f785af6bc7ebb02bcce139e4b0e319b06bec5cb6c8fadb325964e92016b0a9235163b32b2d8a59c002767ccd12b64847dcd345937e7b6eb85d229114c0fd9a208632ec501cbd07611745c2a0024218631131928460646cb9136db694e87b3670090b56d410eb3ce2ad436bd344967bcb5ad7b2a2bd4b9cde7bef5959c9cf9687b0aa3e1d52aa7ad411c61861ece6b4a635ad39e39caf7c7680bb077d78289104f6d0602003d1c632428cf0bdf734bcf548c117df8b2fbe0769841042f828b57ea664f9544aa03e2267e0f160208eaa30e0eef1c024903a815ed772376331dd68f64a2f973b586fefed8ad05ef3cb7ecd5fec4fb6745b965dd755b3b5dc71dc86bf280bc213534a08d0a9c69c09a5713dcd17c330cdb2d7dccdecfa6e0cd5a2ebf4dbafe8baf65abb992dbaf486dd7ebaafd4d29c840e7b0335dbd64aa30d98aacf72674d9e9d567d2f5d39bb726692d5aa654c9e6919ee98c52e13eeef32a25c3d4ff02f3ea5186358c570c5300a630a5b0c9b79c8e4f8d564fbcd9ac968dfb8bb103edc214c03694e77185f8d6118762fdeaebb6d17fef44cc3b6cc5ebfd95ecb59c5b02bdf77dcbe10bb95da5737c371201d5010973bb8398aab34d3dc69be9452a8e1c360c7dcd67e43165475f7bed59b1d06d3d9bd87a91794bb9a0d3acd16a4bb90bdae9fd89095113a4131b1d82fee945edaafdfec6637cbb4c3604dd7ec4c8b62b46787d174a66bf675fa7b9dcb5df677edda2ee9f457aeaf15db57f6ab9dbbb88b1361ee30204ed76cac4531dcf161388db54d7f6557d534c4c0d7a565b68b72f73a9111fafd8562626dc8da7a59ecbab4cbd24cbbb22c5bdfb26685a81859b0eb0e6efcdf7b0f39d061b28334b7b9d76c1779f3769ce1c6d7c9c9c9af8b60328d5fb32f2d8ac17e1de6e4fdbad996bb194eabd5b256ad377733fb1e6bf74e8cb54fcde4d3af2dabf627d643a0cc85ac139b63b40b6f1904ea4cf40c57bf819a2dd22ec2e75eb3352d025d59fbcd57360373c55c1a468bd1f47bdb9ae13611a61de6d274cdc634ccc5d775401133744a9010e83d86d5ed945a78755c1abf5e099d4ddfd1f4bc4cbb1aa699a6b926e76a1cbd462d4ab5d310dd7e727a6ba5d929d63becebf1af4cc758fd4a7f7575bbbdf8ba747a9c31acf3216407d5227c7a2bc217611d437f9fdddb5a3f6d186b99ed7686e6ee6e7a6a4ebf90c9899e20ed573ba5af1abd2e4c31adbf8e35fa6b9dd2ab5e8a29b52ca5942a79f6375bcf32b9fd827e3512ee26af5cbeaff5d9a871f93aa6e92eee20dbc4c26d02ba9bd616d6d6ab95e56e46f25cb55ad6aaf517e7eec299861818e3cefaf4ccd65aafeb196671ceee223b4b53b5dedb9bfdcaf6183fcb31f6bac76e7edbaaffb12f6d75f7a39b913cfbc26d592e112aa104111f42a8e4799942fa703f600d94380db26e734eddc9dcebd667b6ba9a7d35f67a8476ecfae3084f8cb74b77355aeef03cd9b2ed84da3eadee649c6428a14d62b5cebba3defab55a74e9986ae9f779eb5aeeeadf1fc0599875ab7dce5bb7c7eab15bb5a56fb538cdb2b40c77ac6297b31996c938b93d8612da6eb7133d5fb779efb42aa6375b5d6d55dd59ccd6eaf7f2a84eded96d6df6ed35e3348b5dcbddb7bdf62f5aee8fa30d74b96d07e51955b6bfc872a2b90dab5aa6ba55593433cb60b72cac629835b906d2ae9b5cd61e64b156b50c6671bf793b9763b6f76bb57a2d5fb7195f59ad37d763b9e31153affd65b1cbba96f55d559f32d668329342d342efb63d9fbd1c0ffa304d3eb94fd0a7454d6de50bcfd768ed9cdbb6d5b9dd1e66b314c3aa4f8cabf5f3301584ed27beae1cb795e1a6b48c06734c6ce6ecf9306f9267287be53228e36763d6f9ea75dee27e72abe27ef213ce823e2f8a017d1e06a4f1fbbc37c3282dcf3cc36ded2e3294bbb8a3465140f3fe30e7047dcef8bb42a044eea24fddc9b8df7e8ffde6895daff8f5efeed87e61b88d6118d63a6a8e699aa669d6abc358afb26cc651566f4d8d9f8d3ae7df8500773c8f9dce09a2f6e6aafa767877542d9aafb78e7dcba279edd2a2a975d458fb9a737ec264530413bac96bf6bbf76ab7d6eff69012bbfedd395f3f7d4c2d8ab19f87b17a6aafd9170858717789db7cddc17d6a19ee58cb9c7c723b7756cf70bb1e3b8939d133348ddc28af9fba7b7aca805708d0e7df1502457770834018db6937ecf816a43b10ecb9e9aeda4a59baa22e51eab3aa71325e6f234be8f5f8e13879053dfbeb6faea08c61331b7b8dd5565ba909877d33b9897e7114b2f6f530f604c3afd8b3d7ecb841196e5086dbc21cb5e6ecf990c9c82f8e6a7694ec35944fb2ad15c3b0cbda7aee56d7834247f9bb18d7fc36e8dee4387494a3dc874e4e5e0f73f27ab5d7c368d724777353d583a8b6f567e55a5f71ad87b92a4c76edd6e2aa453ab6edf530db5571ad16572abf2458dbdccd70bb5e97ad75c3b84fc73909b8b58a7aa5038e61bfcde0dc511b7fcb1db5b7579b453ab2db3f1b1626d32fc63ae8ef5ed7b61de7cb3ae8a0ed96d5221dd7ed4531d7ed612e8d67b8cddac3607a666fba9be1ec6b76cd7dcdf81ab6e5b871ee383dc3edea52cdc6aff5e58ec259a4e33afeb381f5757c984b635db3e5dfb5d7b7dcc12d0a425fd7815f2f8ac1af87c11a3f1bd7abaed95a1483bd1e06bb6e9de16a2afc9c29627218450bf9cd5bee8cd81b07d2f4f54ab30c7ddcb54ec77297b2b1d768fb4bb5ee6a723686e5ed76073e10717465f4baaeeb9aa66bd34193e6b0119bd23f9ab7dca5ecee7d2665c36759a237a1e730ecda746eba09757fa8d344b953149353d043a7ba3be14eaf67bf4eb74ff8d38e7bfb0ba318c52846b1ab9f7e9fae8c7dcbddf5f707806e1f01ecf4d2f42b8377c7a445383fc01309a669f2624f3388c29e24499224c932811ab210c448167040c5a8a212c513555e0fe58391f013555e126ca28a64b9400a5f245183185b8cb1c4132f533cc29eb05042135555555535954092a42bc2b0a5699aa66942810fc610853158a0862a9e98424e16f8ed4495e700387414963ccf72c2081cc060640d4024133749783f2bd0c7c6c64605f0fdec87850c8efcec945f2300031a3a2a060ae042073837325043183b30021435f8e8297f55c30c8a3003249216b219e0116480061c1c0745c842054cc8c1633c01a88a22e010e630a656f0a2862a0871c20ee0d0f38648042e88015f6ea1bae05d410842728ad0040daa708358851324c801a4020ac902054ed838d03651b6502f73ce39a10a6255821eb614021250010b5458158d5fdc4895b729b5aaa989699aa698c489699a9840862eb0a0820abe427f10a7143c306a9086244a78820a2986c42134d1041c5010f3f3042cc030053604b98942b80289a4021d4350029227aef0c5156010042ca008d2840fa80842922445515f4ab7524dd234a53c8e6c0a02508630d83c818a230cc10a384e00810977092eb050640c2a7cf4944f2e3e7aca2f8de02131c2d304164780f0d1538e3f8120052d9e20831b98810652885498218b13a0e1ff0a9cb024612eb6cc17e9972449a2a6c7b5200d516ca1041a6091c58b04842d499244351561a033a51b1b1b9b18bc4ca7b8c8627d9aa669fa0475f663421750ec4967bbc42a73388e68133b40c282306e50248c28c429c8c0041e9ee3380a7981a577589a58aa4c694e4f4cd3b4c49eb09841177bc2020e3a7b92e89cf34f7faee058926fea420b6b0082900925317c72a818c7e0020e950be8c21a7e5ea4f86c508799d23aa6431fd27f4036b420bbc8d7e13d51cf2b171121f978b2e6c5455279c9a6e00eb93b7a9ad9436e4af7783541bad723e5e318638c31f37ae8a56ee6f5dc1fa8b6b7047573980398ca40ad5317547c7a8a9876262a68931636adb1c3a1a63eb2a5867e5165da41478ada0733eda45415dc29f5bde9daa54f3b9392e987fa5014f5a14a66a63e294f39f5a14a262e5ecbbc99b0b0e9e4854da7316cfa97f2144d95c428e6cd1373881353486449f97bad962a8923ea431de7d2631471f4a3840d946ecaebce64b9d0a7b1aaf4bb6ceb7728bb9b76262529efa69f69c9a64296d8d4c8747fd03edd1fa6a7e414fd0af3acb40ef84f178807754a1ce917293ded4c5dd4005bd7d6544464e9a29068c444a4e9b7a91805c614471c1c1c8baa2c3ded88727811304775fa0a58e0b1e81db61a1bb56dd7155563076d551235ed58afa60ea75e6bacc2469c69a767f2997e262fe004c6a464e29992d82186b8346648b18a2ae2441ce97556184ed9210583734e1d262f269ec832934c547fe69987c094bc6696fac4910dae0f1d05006fa971faa8135976220b8a1591e5864ec4080070c48938b18a98436386d6dd8ca5de03db94ceefa61d1d4e51941ee2d51337d5129125e5f41510d9b2c341d444326f2add51738959311a339e0e1de24aa80f8dd3ceb433753121d994c68cea2959ee90e592a8627224eae468248e6814a2a310ea7333bda33ea2e70c441cd13fd3c0ad8386c0b423fab433ed3c1c4a7ea625459c9c9c9c501acf21c72a228d2c9aa1bfeb8e6c2902091224221d7142efa61d94771167c2c2d44564813b91e54e3bf69685331741d3ce344d99c640606a55230a6f58e1c01ca88a082211d8835dc653299d883739d35de20473e2c88a9823cc1145ad237eea629e391a45a12465232903b2c5e4a05f930cca9434bd2974f24c8b37b02756f12e8600b621349d6849ba74e956866552ed0172443c228ea8b5a83ab3a80214e6162e23d7352190c802248ee8e98fa82a49ca7044e168430b0a0ccf5dfa133d63782df0e68928240e914e21fe067b1e0e2d65d308c5a6516caa67ac62534dc4cd1ab6f4a8d8f482374c6ce957dfc081a2b4744c7731041702356f47e99914238cb18838a2938e4906ea23a236e2ba30db0306263d8b4e4416098b5a04a326228ee893f2c47f45de7044e67461052462846620e44464e19080f197eea8d14a11b28522a20242b650fa4515498a44f6dbe1c7acb13f608d9c34c07815b35e6d4a4759cfe5e188db3a0668228bbcf5fd5a30b41e187b3ebcc5b9b01eef12df60c57e60ec57c40d3bbbc6a7044e7082503e295d9625fd15718315bb5bb10c1059acdf70f9ad6a67168a6559704667a34b6499521c1059a2b67ecbfa4bb1b40cb491c4b05ea925ace0a874198583430e617b127838d4d24e54e11ee1ac2419873afbc91d932e0716fd2e4a22d226c283a670789052533834743a8a087c4f12912dd28e2489549208a56aa89dc8226ae1419f075d4dad8f8cb0916d45aeb18b0d0377759758493b5217334b3bd5ab39458779ee485d44967c08ed0ed3060a37595c21fab4912d5348c8daba235b54aec3437fdc55327c2af0a35c5dbf5676da84de611b7c43b6846e3c2eb608bd22a1d973a3278e6e5822e470c59c73f64c30de0b71ba43c0a673d05da8d23a84b47d48bcb8b6a75bb9eeac55cd0267b1c5f4c2c4029e3d130c23189b9367f2c4113ded60b5666559eb2344880fade026b76dcbfa0db80bf984e2e8068490082cfa34048597c5a6576c7a51a62084a2d3cf882cf9740d1bfe065d41c8041b3e135d44a15002753793b24549cc0ddf03db507fee18a0bad649c0adffae0ead5f1c8974b7a2279238a25d60988c2fb045025c330ba768fefe30f53cf26094933ee9cab9833bcfb7fdbdedb3eaf0aef43c1247147339fc15818315f3c8cecf92c8d2cd6e26d93449749139bf9d43e6e268876fd366d3eba03b4adae1f491c8428447b6483b3b3c7a87cbc727331c474a36e5818787878787670708af89634efdae127d3e25b2e4cff7802355e88cc3fb038d87600e7d7a190f073cbde8b1e4536a83f006bd077ad6551e651ef2cc59942d12fc36d452a5e31b5216de1fa628d7989762a7fc71c0d939bc7abd281c690707675eda99b38767be9390cc6f58c90a82e18de01790078e21f54031241e78060909fc4215a92454105e0be4a15eec9e1eea0854116a8b4d5f419eea565ff6600926d19007f2ec9a694284682d446bad355543080e748d1ad73beca0c139e7d44940ca0a2291651aa1b29402278ef2679eb06a5bdea377283ca8a8e8e923557468a47978d04faaec401fde1bd5989e4a8d1aa7355ea3468d77df2952a2c21b4957787307e69076a43300f96253a90b9b4e614e61d3b8447c027ae1b548359ef22e3ab169102463e041c3a6126c43ca6bbc937600709708808da330094cdc5977337643fd7714ce8e1c5ec1ab035ea6d2322f8e74145a0618709524b2ec70faaa47b6f0f093579f36f99a077a00645923cb9c38a24fc9d28a797548970106dc491ed97349cb484ae2887eda48153a370ae7e1989b9eaa821e4639e1a397fe0e590e09bdbbb197c01fa824c324d306663d29f7197f963a641ab873d032898cdcc12de3d2a5704480e167d4790a87ea8242125966782155e8512894099364285d88235b42149e7a063d8563a923e044960baf20aee3505550390fc70be23afcb42e12e5b765e4b75132127077144e677717a23fa8348cb7b5454d15d58c000000b314000028140a07c482e16840ca2259f60d14800f8ba04a6e4c99c8c22487619432c618630001000000080080d0d0300020920a5694c3a3df35811a3266c07df9a64927ad46db93ba48650db7d00b97d9251a065bc4d39f0b9bc78751861155ee7172885b89267b1aed20da221d12422fcbc1f7ebd2dfa891fe21342c1a06150d62fefc68d6442c0d35346cc626ada7c341854b0b4dec8323bc66e620764598da3092af118ac061ac31970929d1bd82dd0f86096064f6d521332b114b69afed33b330d2bacf489e9cfd4289bf2ead9bc58d29230bb9fef87fc094c7eaba5d585e46e97d14bb594f4e55d4821bbc270e0efbbdadeb9848343024aea0bbb051b290ae3a375a71edbe65f481810f5f8ba3ed019760b3635dced0110b439b0466e99f9bd638dae9b61c8cddd5629303feb992f63c32ee93461353b9a1f14f890f35e713bab36088302a27adc00c62169c82519a9fae4e169ef07f4e4c33ca4bc57b05a33092e60b524662783db3cbb12408589af2e8b5befdeae0a827f07f3fb4d351b1399f845b1965e31abc854ee4b6c1f9160d441cdb18e55563b90423d4b0f61e0e3fa0c55ec646340bea621571fb5e7791e17e6d970c2daeaac587b5f2378020e52ac14c26b800f7fc450682aada486d5bbbf30c4d48ab8c5a64bdbc947606a76a69307b8ee283dc81b49c42e2e60bf19b1125dcbc3c8816825452d1acb6705436d4c39361939690ea07e0054c939f9df0de4adbe7d7fbdc7ee05a2a858aa1a0a18a6100d0c8fbfd892c85cdbee36b7ba85455b181f96a2d1ff548040181268462a4fb560aec65e0c490217d1b35f8180dbac248d3f0d76bf403b8493ea5d5b8cb884c708a48d88a66f94eba0c84a989f69c05c175d5cad1afc1161f3ae06b838d4289b0a3dcdaf3c4294102834de374b035c93e324879c43e26e9455283d3f3933e54dcb0ca53abe43c5f19862b18bd0d1905b3ea8732c7afbb46fa5a42fcd1d58d8e672c11c9bbe99e9e57b397cc20a41935d33feb61346f86170513ea996cbbfe3a20ef1176c5a8555d98335c2b55e10cc797cfd5cedf0631be9dbca84c06b6745a3ba75bd0625851e428e3a25f0165ad43b44d50a3f138d9025d3a65de0b26ac10a49321a73da809d7a0cd91efe27468042d74a3561837e68ba878f5a8f5184e056484268d2404eacf80c181304f874c7ad9b84fc078d10cc951bf70abede43d7d94a5b3cb2bb1ca02d56e7a32aa4cb06ab5d50abe77dd890d5fc3b11b97e477a97eab0208c6f9e10d5c2d004d2e253394b83f4c27dc2f974c12929b8952ce3ee6aa95f68f5024666ae53e1f7189a5692945ec0986d04bca0709f0c734d1b2fedcaaa3c4a728abd956fff45d7e6961efddbe42051c0e9718c8fe0ce34fdb4165cae2954ad10276ce7fff9528d78b2a70838544b39e3bb665212ffb10cd222ee5cd81515eb98ab386fce9109fa41e36db731ce8e7ab14f5b045adb3ca673c214ad0990f154a1cc9c14fb69f9613ba828284dc5c070b185c610522c9e18ff67669518fbfdcac1bc789f3da9643707b8766c9786dd6b57fe161e5dea173293280aef45733101a54f79d1aa34aa97fa81aed9eda5cfbabebfd374a652d07a3407069d28ae3f8ffaaace3b3a8c1f88a03ef66dbb63604a56e0825e64b4a53e10340d149b84bfbdd6a63efec352e08d71c54740249e42c6b23c85fd934a18c500a659f3bc121e8e68400857c905dd7ce0eab0461306fa70ccf6085873296371291883ef97eb01a2cd49057720298b19e6a1dc60c6b8baadb108722d9e0582cda27c5b021ebfe8607b7865cc10b1f63a01990235243a55ff87c00968f92130a29caaf260cd6375f83a9e37f62b4a1e55d6aaf9efa0db30a0d1f1b45e3f6063e7a6a2b68b7016086a12d947c04a344a079242068089caf36a4bbe93b1effe9e9da94b5182e5938478c2b31529967e6f615003b9462cf9328edc8c6f472d2620ae52dc4eeae38902a196f2637d0d8cca94e265575bbf7e106dc9e7f4351ac20ba27d55b9afd0f0b37f1e690a1298cbab094793bb8e01a9b637c294fcc264add20f7832dcd518b0ab64a96dab9df31efa5c2f079530bd04667ae3002995c33fc55a5e2c62164367b7756652edf00789885998719ce3f3f9c8443a486a4dd9668531d9ec1e54d35044819cc66f61cf6759e0b23e41f038c115f864ab3142bf7c00c2ccfac8978b38793436908d9ab881415d0fdeef6bc409197dbde424729fda602015c69600a97f73d38e83aaf4a3772dd06513f129e441a515e0160e127bd6e5a42aefc783d2a4e7aa222fd492f93edcfb62d569957352ac25ca0cef54b8423e2393dfc809e0f4e64075bb19c697afbef065c88e7a31e133ffb533510126d18ccb353f98841e16efb25aa87bd74ff7f0280b7f5898336bdced43a3351bd25710310a4291c40972e6d50f445e419f77e687c0e9f10203b259804a77c0c1aa3a018e48de56311dd2c373100adc6516428f55fd012748b605f5c44cef2c0126845ff4163b9839c3a5b3be58a78d47b6c9270fab941cf8050fa99d5d8b23339f6fabdf576202f96b8671f4ca4368f71942d476e98fbfd04068f43d9ad235ebf97fb2120691e15a426875a8cc0af1424e5bd4232115a24c7078e9eac15559e2f35219a714c2ae44d72a4f5d7622ab41e9bd88c1fb1cd1d3f6e99cafe47abbfed2ab917230ec642828f329509b96bdd37a07e240285c35957143e71fc7bd68b5294f346c5f93306f224163c0ed05ab53a55bafcf7fbc700977762b7a3e3310b433c48afdfca237b741beb1f0c2a30b8e556a373c3e63101cbd1601cdeabf3306f341a0f9a162fa7808daf4c435836ddcbd8edf17e2277c167e315e819c11b7f9dff5ff7f625caa1ec3b98a8f55feb9979522b600b67ccbd1c9f3791d9c7eb49b3421c992473f48e01e1c7efdf813c8a96b04f0de2dbc7629cc66c9f5120df7a8bb0534370c173417dec3e02f2abbe3012dbbc6a3ed3aeccf154acef74fdb276f9e890f9ffa5911fa3c310de3c653f87670e90f6d36cb4ed4085e20b6d66819f7569e3eb621cdf0ad170a22ac946db667f2f48fc46727409150fbbc4c39f169bc5f1bf8c353be22c337f254bcaf8a5bfcc58982de5112f665d392edbc63e74839fad6404990053294d1ab1112c820c3d0d574272bf7a70109f13dd0b346ab80f5fc20dce968c31097104e12d37021156627ef862b959ef0c153643bfc2227cce898f970fb86184cf2d3f10ac99f8feb14db3cf7f0169e7ba65bd6f109f5b6908dcbef609ea01785345c912058a436d5afa6d6a6f3524de829b96a7f655b2ea494e3e5ade2dae4da0ec3ddacc2dcefe6b7e78bc2deec026afb4072651e3227b3058537359f93d4abda60f5901c8dc04d0bfdd42a845eb495c0203b8789eb762ad8c8ff30378d99742c6c70efaebcbe30260b73246dc7e0b4dfbba830023020af617a1524177f79109fc9c3fb342230dce8431eb402650ad9593f31d969c6402bf9e2ace952601a75b6e10b7b25f4d5b99ca6f32e42efda58971f793d6d808f291d01e670c458df55b595cd81774a820449d94ef1984ba427385076b6563d491b100604b4a7bd67ef725147e0753646646b58d588b9389ddc0a55f2a131bf3ec82f5201d3d2b016c3d1381765504d9e0000aab408036a3a50a504ba906f07e33da343f0819405f742f111f2b75f7085784e60011aeedad6762f5b6e8364264d7dc485a48332fda5774bac54155fe47f647b40a91a914d2e83b81cdce7aa404cad8c954dd4897424ee9d4953ab01c53086b67d4d1a836033024b062a01b4f451d89bfeee1fd8ab9bc82d2cac6fc93adfb29cc3a812448625707b1c12981ee272c4c598ee611636075b97509178a686e845d39c65a2bec1ea0a2a34aa3d56ae30e19e82613c2f90a20ff6c4d3b24f61bb153f82c97a4eaa94e2d846e0556aafcd7cbb364393bf82067d8a69f9ca20c4e9892f1d744a5cf882a8101ec6aff062c5d688e43dc38a0b67f56342380ff98441c5855a6f547985cf87b0e5519b96ec9ff36df807a222a852f2a8f0771f3cf55d7042862176cf9da2cfb860b3e461784855fb7cba045ecb35af2cbc764e6edb55a31d7fd56bb0c3d8eae05cbb2de18f1d3ff5716491aabb23ae7f6dc87c0491662003c3a60ec22e24902a2bd93c701a70a89595a9baccee05a0c9020a84a1f8b8a45bb9a8cb05a24bfc0f0c948fa9b01aa6e3f2de4fd2cc122ded37b2cc191dfd5fcfd74031451f27a2e03f4769d021e407880426729bfcc66ae39eb22b03d9d7d73590dc6dd508132957db78412c5c6ba0dc259ddc5f6e7b210927fb3e069240c6af3eed610de34944ba0d400af8842dba19414b755c52a7a57aad8b7e05148421b16f80f792f9cc7c8216aee864c1cc43ce5fa1e6acfddb8f418b579d86af4dc06131e90c74874b786d87ea29bb462beecd95dddf61226f8d66752bd7f73bbfb215b494676351afcccfbbda75dbd8262fdb09d16ccb89201cbe0126f0bb44c6e96287b00848cfac648fd5c21a2f2532a2f65373fd1ab44a62db6120f66e87f75e5c2406c364092536b652509a8140434b1d016fca18317ee34dbeb09798b510876e4a5ee8e87777d6e55735c5c1585a064408a71ace37bcdb5d13a03ca5c9a897818825ecec936bf85adca365c6b0c0577f60efb218dfb3b2eca5b6cab639cf815b63534443a31fb0a4cb21379d1a22d66f3876db500dcff96c9011408405fac559e477199e1bba9ed368ee13f4a421912a1025a91a83d78c78e1e01856f54513ee1fe56332b8741b6572929368a1d7631a9cc63357efb70edea66e3b7a8a362b73495e723e4c7196eb2039455c8d4c9a934dd13fd374d00a3ad298b5d9a3a1ebefeb7cf48b43714c8e430419c082ba32fe947cee5a17a86703496aa4cbe2e855bf17e3a652c7a7df7c09997becedc3d8a423c2bb889cd63e2fe0cd031053f673652d7d69c0343685f744bf4d07bd6dacdd11faa2b9196aa4f2fc4d2a1541bdcae5d81564b79fbc499aa2256517bf6b40062479f1647448872e00b4b6ac2e0592190df582baa70930d1bee0d6fc3c1027e6a0e25d8e695f9b4ef57dd3c3272a6b6483212a6d8fad039b6208b8b2e3eb2d7c5cacd54aab74221def02f481c49a03925ef402404317338052b24a032e998cf3771db1484c32b961d04776c8c6a07b9cd5f868fd15f204f64778fd2e7f4f98376cb2c2dad16e9b8b7a95119de18ee3bda617787da3ed27c0bd0d78e3a829c00c39fc4f2797f3fa24541bf659995bd9c39501e51aa9c3058e6dfdc3df33e5ffdda0c752ad09274a9a52f0cd8a9005fffbf4022e8b53d2846851c8712bee422101546c267bd3cc763a8ea66c8c14ef3bb93a8650b640b7220736ae9061f87c907b4c4498107102f68889c3844f55dce74f2b758ea60b0129a696ec522f6b2a079328507d5f7bbed03c9a0a5aa9f6875f5b7caf7fdadb0a1698e3fd866eb506388bae8ea2af4963bfe42aa0c35bcf0d1d5e958f0b9b5d95076ef2f4e730a622c06adb93027ea67a67d68a50f42b71451a5b285acc3a577505e9f2f98c97e44e4d5840574ae0d7069a68d92d4f9b16733995e30a8fd4580871b9af5ae166d3a53962ad5304c288e151194ae352682ee7293ad1a88cbe3ee5799cdb44e571a53a4bf4a47bce41656e15719258797f36d02efa6e3551936158291e625ffa0813f14f06aa11d5636e4ac150d0e92d22ad978aec4aad20185570e6a006faf20da9d807baf2f8a7dbbe465d4f03d6059f115fd0790c756cf04b421a2da7d9bad04a2e07dbed8800fb754a6a18ef38aeec82f4f4b8bfb61a7ce2b78abc8f8194800af27d72ea4012803fc6d9129e3113b8bc19b85dbb26835f34d0ab80702b60dee16df9dc40fce30e65733f417e1154489a7582a6428eb787ec85e81e82d42e970649991e3464750c675c3f09e37abd8cd743c42fdd0720187cc051523ca294bf993dc54a9af491717901607c6be1480ce904123766aa2d865aca3737d2ef23eb7ed81a8cd21e0decd3a4a071274ba84a1c248cdedc74cc909569cbf6df039008320fe907102ea671b889af2c5c85aa0a1010f9d96cf960c132234b7843065a0600a55185ea0b9e6debca01b996a361ec5e907f7fee2e080de0fcf2d8c94611a6434a2533932c6b9135e29b088ae541faeec55a3af0ddb3ebc7f87e77656b7048d11e15bdb97fcee02c1e6289fb8eaef470320ff3cff4c40611114309aa0d3b60dd6124a490765bef5ee8235cabca83fdab3d7b72e76061e6dd6cea0ebe037fe53e6e89d14c803ce4d131ce4356ff5fcd2cecb8d208f4f0e6b3512e09fa016382ca1da9f2221bf8f759d8f88600124c6209f0862eb3cfe93c0a911152c9bf41efa87246ba209c7a2e416ac41ac6edd493155c7f49da7595aeeefde903c63507824ac2c1a47452b70a24cac17d8fef0116c7b95b5470730301417364103327b8234aac8cd1443c71c03a9d16ef50aecee4998db2ae5181c05b11c71e360a1affaa0ed0f6c8b43c192bf047d7aecb81248bf5ff87508a06f8f5c542feda21a672881595860c68664ad24752b680812243f0b3c5130c8e655d294dc8e3ba8dd426fa61d6297fb506f7f17c30e5796d80b3ad2a9d1630b9e8954402abb23f5cd96ab12767f935301f5144c76d0afa90ff879c13347cf2acaba2a058dcb585ec22e0299dcd0184b1a3cf7e4221562a2494921bc726978f60c435d728c5e5371b23b447976f57b3bbc1aee474981fbe712c3917a82b724afd27a13ff47190a23514a9dd48cf86415093ba0f08551ced409505a11a3dc416a12e2232151eb67e5f01a70e94897f483d4a6a098e007c73830850fa428ccd87943134400340c9e480cab0029a0f981b8c86d75a41df4b95c536ed68596830a96ac9aaf85e785169e868bfdc5167155e5bb5a147c8071bfa17dc99b6ab02b0a1e3684d5b8ca11e14b44cb117b1a713ff8cd2373a1e6d53e64870081b612acc03eb32056ab28b5a26da4ed8985cb3af51c0b6f7951d482adff584b6296947c74838a1065c4696bf0efdad4f31b75fa0c51ed73ceefd5391dd9a9bdca06be520f12ae3015f5d427a43e84a8de6303100b381aa7cb72beea74523eef111d3f33c0c1a88b631c995e540f9ba6a1189ed0693b8359e7b65a42bb52c02023c97caf64ee96afb83992064987737aae553544e84376c5130df32a2803b70a92287dba1a5e4bfbdcf59685367c913aabdb7fee148080d83ff5880079d013c8cec2e3f3a831de10883e160b2261627370789dc8b657aa43f1e10dcc4d4374c0081c8a4225e3e849265ab4c824ff8ab41080e2b8bf2e32940aaf411daf4d5b30343dc048e92e93cc48dc123cdb455220be644a1aa6f541d9829aad75a1d6e6cc41171a2fa209a3be2814069d05cbedde23ba19ef669761b6bc061af86d26f75a3b273dddf7365a908cda5b0ba97bdc2c612d47d8631c54875593ae5cca13b08f80619280fd410c818d09bd9b0bb8b24052c65c1f6429073852bde5d4d7cfc971906f2ef03b4160742a9a40ce71a1387812d44ccb4b58121a9d6541400e85c07c02c03742e3c7738572c1abcd5108a3c9dc7382339ef5ea6962941ca1e708cca6bb1a08162639ac5180ca4878fc4c7af7461bb05ea87ca17a36f06927fab9980672f2a73056566040616fa082ebcf8522e76cb9261c4cf5df89a4fa59bbc3b1082347ffd55c80fea1e1223f8d861251cad9450efc63d3254bd8234769cf7aa650a558f2ef8b6ab726aa5a66cb5d33756c1192048f305be0d19789a8806cc7ae39ca4a15a1036ad3a13412a5923cd73df0963cb89e9cedfc849041a838fc1199738db0e9323224a05de1d45fe4c230d30a0a7ec764e99551cffb24c62609ca8e778e926b518e53a78282fc5104bdde88f84ab28705705eb2600c9185a1fc2d8431cab96859e686c62476297c3f8b09ae58a0dcdb5362b018903ad26200ae76a685c49c2e281a7c085c6cedb2fab92f20b36e69388ee3adcffe32258db6bf1155a60024b7d9fb473937100fe3e1cebcb85ce86580e24cc259703fc9bac7b13e471af70344f8c35ccc02f410dfacf8c0c7e05154a35182998f693b48f2302564d67be83e045e0e3575e2970b3b03ab16e5d80c9900e2d18207f4e5a3b0066222e0c18c8c60e6f05d6d089e11cc800d0fbecf378d096267c348f7c4604e877700dd211614a70c351207be7e75e86b8c9e1ca604d7e1388d8190cdcf1f965b0dd9efea6516aa1c91bae347e8861126ece4cc5fbba1ccb3452fea09917ef829b809dc2536e04b05e74c3ba901ca2f83a420fa2e194a62068a008587d182e0d9649ce0462c3509365f4a6e98e32b4caa7dc13bc6836e2b707b4eb869ff698bec12e35211820f971f80bf42b9878384824df4c5b324fbf4edb48f52f26bc04a41b74c0a3d2c716edd08a821d40613560aa5fc2cdce3ccc4fae560c416ea9d95d080e83f326def8c9d5821a729f06c981320dc1dc6fc4c07a0c90572f3ac2c6cc1fbc2a9487eb91b8414b6fc473a816aa3c30c8753c87a23227521e4cdbe9df98e2366d67d72684712bf928cec970e89f99719e66d52426813df655a9625d935ca644abf974e690958ce834b2d0ff9c209d4545c91fcf31496bfb1bb89d0d3ef5ec81e5a148a9d94d92ca2d83eda6532fb33786b6bc838657884ab7a7d3bbc2b7fef6214707392bd5950ea2000d392bad4d170f7fdf12f0e00feb95a854d1e0bd822f1b08c62eaccaf59c785508b75db03858db4c34c2a39e83db654cd478c3e5cabb0e7c73d4a9a8208a04ac0d0d6dc7e6f871810f1a445f16e02e763d22b7a1d7e4142f7c362ee60e183820efe01fd0a6243a7d310ee819dc1d244b3cb79712e866692503466623e0c9820d1ba31d759be0010d4bc8e732b905af195a8706ece40dabfc5e85f2347596a03cc0d1be1a092373a2e5801e90c93371abdec861e3df4f3ae35c5e56ec3b46aa6882c9360076742129155bb19b584711951efda47b0281d58945e7c6b3f74b9b5483b2e0ec339375996190c6cfdb9d56dcaba0f5409649521278fcec896f154d45bebf5df3d8769c79452f200316a5f8c0b0cfc0046eec4c15f5bb90945e6a0e733ea49c6a7d94224e703a1a73e4f68526b158cafdc3ea21457a70b3c449cad3df8a07b2ff998179522ce6a6e0e83c1622a40c541f60f403e88e4d658f40581797a6116999a37d6c57b5783443b7f4c9f1b4ba1c4d85424e30cc7f4d88b6361efbcb9413f83d6ecee174549f0d1ddf95e7e48dcfe8449dcb9f8c3b07d50230355ff9dfe4c5d66e9a03bb669df19c7ce3cf9b3b87cbd33c655ba67b2e2f2929421a8afc8387d8f1bb4da114e4bb21b94699b6363c800e49a3d084608a84a227c21c891fd21c067420ab908605ead1c7e5514111d31c6802b336ff7353dabd52e0de5163ddd60ec0dd511befb7f494d3894456741e43ba55db5eefde71493dc177a00aec08cad8d20385cb3a1d49c19715614bd6ba1f9abb5d880ad04996bf20226d2c25b944f16642ad756a01d54bef4ce8259e532dedd0fab772911bcd0fa6191344beaa8e2c5a811b87025d96a18c9332d32c290c12fb832b6298ffd0b1b8b9968774dc3539ae9ca66cd36396e558d71a86f56e369a65fc6dc624fc6629a56d5dc1f286345b98cd033a7ea5b326c1b5d1a95c69bb51bdd1c7b4efffcca3ec7bc741ac9f91f65d3ec8fe001904ac0060e1158d08495bec70cdb6c11dd126673404ed2e752a4998034100452c4a662a46f5424305c1e7a5069f8d061fe6b962941dc3ee0901c6ae60233dc2b4434236f9426a5b5e21164effc0484379ae9324afa2eeec38f4201a53fbf50922b16c686de1ab2b2e2f25895b5992e605d8a299803b25b7d1555bfe98223fbe47532a212c3d9b7269e98261eec614114472cfdda39bf23eb67200f03572fce11534e2ca68ba9d2e1da1a59470c03daee802d630988d10e36d280031a3cd69f3ae1ff12b9675da2d3d2b1359dad3c9d9f30355aa870d43b2f3ecaf70c32fb1dd480cc7f2c974b3131d9fb71069ec75a47424e90e92c662b5503c8ca4e109ca7afb77115a81ee683c89249122385186e8345f2bb6825c0f515ca77d5c8ff2489294ce1f5bc8091039303a14c5bc4f067203a180464acf2be2919fb4003f36845d2c855ab605843ac77492ed6cd240cca26828f50b8ae7b9e9c2387498bd01499d12172acf5567271dd639937d408ceb3f6e9fd858a519479f73788e71c8001e0482b32afc397691001db4046bbdf7b3241b3dbfb4a9d3dfdb63079f2993caa9e188f593399e76d3f1b382b5a3b9b79265e2b8606725634e7ca18d89c4baead8c7aa769bd76681b06fa5bd823a6bd6843d8dd3af49e3c7ed537141e5b7006d10e066d26e562095b3116e6a0d36f4b147888ce13cfd66f433ed45a1ff83851462795700fd707adbb9b99b802579ec7d55f02279781411ddd188c91d36a81146f4574da6346dca06a15aa4334358c19096a01a8b6a994948b03289a405787c3e79f230e6abe716e79de25f6e834c3bf427e4d8d1763399364fd80092d8c7ff2d1879461c58ae08086795e24030b01c34d4c8ce2f18b4f28b6bdb8e2ebc30018309105bf2160f4e318f9f40928b7f9d4320f4ec471988eb53bf17ef6b254b523d94fcc12124ed3602b7720e99901d5c9941a86b57a8169b017d50c1fc3be03e5748aa32cb1639f35b8ce6e2442885b67973198172bc3aef85d11531a85ae2ca6deb7975e6d8de1fdc2651ac3a45c3d2a2e4246213dd61abd343f015d05fe8fecc4f7a592e69a041abf698bd98462268a79a008ade3918495cc8fd6cbcca49bd7ea10afc81d9b1e016e4321f4601ee422106e2405c3d6ea6dc18eb944df77707c830250d9c0e871630184763070907ebd624ba0518720764f6f999828b5c0c83b513e31d16a4103258a82c74ee0e15e3d8182bd1e2ecb593d3097d9d52d0c5ce2e6bfaaa061c17455784470922fd9c1df3aa8e37e98e671603064dcfb269a164d5e78bf6be97cb73339145ae6fa17892e5aa96b85c8758dd42a23cd199b11975277b5730a5cfa4f7e9b103f3bac22735578207a88024f60910576fed52f5ec394b5919c917fe7fa245538e926d2d6d4342195c0dc867a08ad0497d91fd4a0017fc30e7b992e282e25620fc861730edae9104610df6eeffb3d120895a1f755d0e350b09f74d79e9c8ae2e78b0cfc3961a9ef25c62b214136a656f3c9b058eecefda873b522399d750071514a5c4da1e4933f91b2ee14e473d0886db2e37328d094329dbf8fd606d3d6938a827cff5cd232e1d6d148048267ba7090e49c37832c631067829d10cb9c9e3087a9e281e82c533fb0c39c9f8865eb427b6301054cb511e688450cdf622b6d9a90d9257f8202235f68556f30ca98e5b71fab4870b68b9069ca3c3a446a9e67b240122cacccca92403931952b691c4592ecd23314a404627e424e52cb7ced7eaa636d3fa7f63aafc7bf65bf062d463fa22427a1011389371123e4abdaf4f09d698eb90e6b262ccd75d2f0ec680d502e7099b6a3f12aaa4389cf75aac3c961a1e7432374b4d84a6fc4085048ee2c55023856c3bd3793e9abd812d7e47595d66620aea3dd0c6e2195b0756e411ed1d1e2e8f456b44b7be31b847ea6f24d50d551238ac722ff574cd08019133c8e7c4aab3904e23004fec37bbfaafba289e23ef67663a0d1de1028739138217910c21f99f804f607cf8a4fedf3f09a01866ce7370b9def3d5ea618762f7084a12406429162590c56e7d1aec90484e518c2bbb53c61e64a472ddae02ed622c99468e80f9e666a310cc6cd9b28386537f317f933b8701c2ebdf7601624b4f6df79c4e06b1414615faca754659cf97223e0327d6191d48f486a5ad2cc24f5c6e0f89cdd1fc00b288be987443c932c745e5c245af448d6a36899d0cd60cf03f3107f7bceed4f160e3b8db1d0b4e15c1940f1058146c4611928e56ac3f01eec005feaa953393ae348918ea3cbe46d8c6a24f291d1c7aa90c5df32a3dbe9c4787458eb0620a411fcd9235524ba7d4f6682fad06e48a540c2e7bdff635976cca3cf90de85f6d877d5eabf94a63657b6a615e2f455835eb78b5766b22baa85e305243b50f654b70bae68a068dfbb2421fc96cc306cf72eaa2362122d3e125db542d977089c21c66ea35be3848e875fc36b10e3164f523854f38fe89dbf8232b291712e66fa44d9e27916db1611f822d1b3d5207a4fe2588ac1b2f187ee1da14f8c2f7ee106e40edb62600f70fe90a6083c1450947162e0a44f6296b9e84c0a03238be42b09e33db996cd02d6de896d16c9959c27c71192f748c90a8ff9f08961ee2b119e9e663c54434d0aeb170972e4edfced661fd3a27096b968b246b694c8c4e847df94043010df28037293012a1890dfea734d14179185899697d07c164f3df509827ec6714e4996c25b1da418294704e4b11353b2e2a328a614157c3642b4939b837ee0b6f64a5cfa1498a542222a3c3c9c4a5d9946c114660fe31959d5a21d1f812baeefa9ef20f015817345eac7d9b82077436424d7952d2b90bc031b2f6be67ad26940616ce68ea70b4bcd48aed597420d76514aae96286a2e0ffe9f0bca8bdf2d99f8a431f8706930c219f5b34c1a326be9609a38a4e736ee41923e1f3202eee17fc472e8729e234140f24f7751fa43ccd92ffca960e15024188d0390e34b5522f124586b3e0ed1b6648292d55d3e63be05cc38650a0de6ee462e16e04f499fce04f63439f1d04d48a9f36856d418325a1fa22bd4fd496394677988c675f4154799c9a2850f2e5288995106b24f649b80ae9b10b40c67e4ec2263ad35374c912a154325717c41a7820796b38299c1e43a02121f48acf3326f99031190b65eeb623b8bdfaadcaac8ec0ad974fc7189ae49a07b25831ab2f8bb3cb43145fc72badbf77fac217d4d55cc12e807d8e6d4af0fee45518489d594ec22bb76d7a321b897cd43a65b223c5f9436abeeda099b90d81555a1c42662b7f2b632b9d5587b7947203932caceab8c7a434e7b29276dfe55cfa17fb2e0f744983880454b85ab5c32bd14683f7a496c4c5bfbaa2d803c533d1a6b695fb367955fed964c01c9af8772b1b56444f7ddac201b348e8a30cac8f0cd06c92b258e52b47dd7e5a251f636c21af25f0f0cce80661b32bfcd020b5b3610438ad9b4f457905bfc13a7880832a07130ebb23e6cde5aeec5cd345da94b18be456ea5a128ea9b38609062dda05ebe2df9d25fdca442bb980a2219528ffc7919ec755813927ba61b9816e266ce4a85bb71e6675acd2899a5d2d3153107faa96fd7f760cc7617db80ce6c625e28ec080af0270139c2e0768c99ea484438f3525c8cf9c3911c64bfc235756b989dd1e4db5fdecf2be2c229f94591f0b7c6bc7408cd6c6e8f8117c9a0180e4325c1e0ba08dbb3a9958e628d3078b46da148a857731b2be7b06014007d79b7b702201aa277aa8d37c8f6aec9252f9f6667da52f8d2d813383f13604963a8b13e10f34def24fb2b7dbb612214f6fc96d12ec8c2654c0932277e20e39b7b7d441d2d421f6911c164cb4821c949fdd328cb9968300ac342d9074953fe61f119c4df7db8092247da7e42510fa258b4ad6be26d2f8e3eaea7fe1e6d195b9f16bf6d2429573fb874e85fa242a6bd0e8e064d35c16ad5739a91a4ccdfc3366619a8df80357d36b45cc6fe7251362cab354ab5b9b3278165dd9938f60648114b7ab0ac142bb01a43b2375f25b77f4993e951acdeefe7a2963faa1509534c3e2793d4865821f52314049c23134e554b2ae4589b3f75c075d3259eb9d3ced8baf811766e40fe5984ac1306da55190a99b3a0adaf2c25895ac5f897b4d859211e4693dedb3d9524981cc0cba6e96d8f179ddf1e9f57721a585eb65080a55969d1a22a3c0d61e0e46843ccf8b20249d341c67b8b596bbd0bfce8fd6eb921ae1f46e0128e905eac4beb8fcd675395bdc4d01522af95f075ac7e2b8e85502d1138c766f4fb5008f8db51b4e451520bd0f3f36fba7b0ef43d4a73d98d6d7c30b9819cbcbc9584bb574beea53eb9eb8b9980c65b8629abab9dd373c1b16299df106ff42d681a8534fa04de806d06f6ce694491b98f1e8bbc15c26b6c7022188e058e1897ed659c7e54392f6d5329031ddfabe912954645dc477932714acf8be2ded944bfe7a03f084214e2982460a6c9dd07eb7925a1c5d40e2b4ddc98acca63f8e0ab14cb1823ec56e51b811fafe9beb94eb8a15f75d4caa2080b8263754e21281ba91ee952c6ac7996828a70208d0c742dda9142e9c7120f61d5e2714e4ed5c862787217a571ad8631c24b29a8010405e82d587d3b0bf127065a8c39bbcd068a14f702b5adc7e2a767417a692841400bacc8bf520c95d3bbd44808c634fcced027a06838d7808088a50a9cd68f1a16b1a1a2bcfd6ce3c1dc4d179e4a3e27f6004d0b649a35325d2a5f4e95d7d2f6f67ad4b4606f8940a8b8e41d33789959e53fc3341ad36115a25ab943edda2beffcf4c13f83055069acc8b7afae750f3289b986f8436f3fa61b1cff73731cecdc8465d7f789f7622e10bc99b08f5a990ba8a4b870283db66c357f061a8dc6315c1c9b211739ed482a9fa15e4407938cca5b17a43f439af359aca317af6837f359a64f45637dbcf3bad9c1ca189c650783aa0693e7345368906407fb57bac86496423e64017e777ff301a26d28e4eca5f0e27831a7d0cf7c015f6e5612f87d7b329961c46aa2c70d1a55e46e05163c416e0db3947fccae8052c9a272f8435a10d3433318f34f4c2e3f061a5a858033f36bb60f622f064c2c12e9dabc6e050cbb1444652560ebbc84d32434200ef7ab8a5706ca6d6aa52ef2c462a90ec6336a5477cca9d64a0d6bc3d954cff06a0586a3b09806798085ce567af0351e58974174028b66c73ae727f5148998d014c7879dc806647faf5d159f45ccb88a54d435ae16834cbf5de97cb17fa72d85b0b34f8fd7b2e1c08ecc6c8b7a7cd176de4e76095ea9842b9240c7411811cbe824b0c5d205227fd69acd8834d053315b706b2cb0debc12457481cb75cb25300b0a1a311f50624eddaad7f2b8733160f97385e12bfc9a900e13965c675005c05698fcfcff0d1a97f485e66a3a7d19f810f11576d130f8b6b5a2094a70830e622fbc43b46ae9fdc672b8e95144ebb374c4263cf5251eccfc3a92c1b4bd21db2267bca6efb68dc212386029e7f7cb8ba110f5b385126010a32d0b22a9e15a3d727829cfe04bfdadb6de92209904017d969d4f96c07b900942134093f69a3147102ee824688baf64032d5f45ace92890cb8e7e40a022db35952647ae17ce88b36b71110613ad180951dd3b79c7c9fb84b561c2f22cd03436380897ff15d7e6d9dd4a9ceea60d6ba5e2e09b6e66b3acf93371ca830929240a8f772c9641c85235a377a51b3d6028d077d559a449e403940ed9795a54d8d38e9dd2422b1130c920229c3e731874335ba0b51d152aa6401d7107d81e39c9c88cefa40df024fe30fc2d89595fdce6ea1af1b3126a33c97168fc220497eb479b829dfdd0f2bb6bc9690be1d14683ce95cbc115b3a2a09d49dc4398eadc5f3caec085cd1958814a4bf4e9ace923ee9ceb21bcfbd1428fa33b44bdc5ef225bb909c9b11c0cffd2fcbddcac0c7a5eabfef6386a8a325c5eabdcb6046a25e5784d735148d91a0ffb18e030acab7aaa806d03e9109856647f9540a9af6a878dacc2f68789a347e3da5b892add4b802c2ddc4fc0ebd7a0e22c1a8e7587dcfa35b99f5d8165b44c26ed984f60d014fea2a5d9521ee29c81f699ff66f4c1e2e939e0728b142abd2a82aea114abd43cbcd57346cb458392d8acb208c010a8d31c74fdd1c1fa3ffe153b43d22c43334f2347f7f3e49c34ac3b5566333fd779463b16f7eca5975726895900b194256afc825ad61f9ea69e8387ec666b1ae3a6735069f3a9ccc110742a38c24962be7ac40b4321620d1890b248084ea264ce60882d49924fb2bfb99f4424cdfb2fcc46298985f5c77928983b1f53f74c5e6f70650b41f7928f41854bd5102ba8639a033f7530636862025e9a4147a16502a814078d40830150e9063196160660a41b741c0d66804935d838341a00916270636933011a947c51774560d62d39483d1ea86eabb744c6ab2132c088206af153f2fe3a4130dc71e95354478e745b0b02a8eaae439b11d16b2f146f3aae4316f208f12b61b139baa8972016e5c91604408c82ac7b726bd19e9675398b86d39c20752151c48cf2f7ae61dba23bf1885a5deab8e2cd40c370a473d59c60e39ae6c4f612cb3f9abb082bd91f3d9446fd59cec76e43e5fb30e7806616227838bf33fafd38986314d469184b6ac06bd46ced486f2ee9a82ea3bb1095ae6f9a46030f9986563ce3da45ea533a2b5106cb5090c85e0d6d84252a6eefe0bc1a15b492dc37ad07145a51df64597769806b84e54131fb1d4560791118201072e6dad4db0b0611cdccef7455122d1c899868e8b032278d995c982f0357c12a94c926d030fb82bfb743836011c1b756af696a9b4f6be5310b025140a09946176a18a4f803d6e25c348973e33813924c9881349dcec523094304ad34abd2f7a2d92180b6dc219c59b1232518b4c6626d651272eeec13f4c54a99589fb92826ff438a596d70140d8061f6223b34cdcaf72ed66f65a5b52247801e6817d029ff64aea0361edbd9589e307c59f1b2e541d661b0e0819421a334b30686001fd32b30ec89dd2d9c6c42b3e22d4bbf8cef0f84055e2738b13bdad6d389155bf316b9f80a4eb06a48661b0a469fd6e292661d4516c9ef6cc988700c0f9054f17cd6f1ac39c09a4b82c9106c329c52feaead4d80000a21a303a62602b5097edfb2f24ea2bf4ddb9cad8f48913ee0078d2eb28a13ea7bc7d1cf940c9d8728bf92fd9b6479779abb1f5a89e875fb2c7ed2af699cf265c8d41822b341780c27e83710192ce1a982e1d23ba47fc84bf3509471bb929ccab794ebd530448310f3933c0a77f0188d019baed0638a9876b324978c34d426b0234f3050febe941c163493863c759387221bc76d94a376404ac9240d0a18babbcf072fc10e76a7ad0082237f0abf5284196e7058061aff7c0f7b632c786bdabe68e6652b1017b62465e9c4f4e18870b63275dd902243929c65b7b7c738cd580b872d002cdc486903e2780ad865daedf76ebf621d45c3738fb643b52a2d995d45665568d7b0a21af2a83049613da86a254c44f15abad62ca174e41847d143ee797641a03ec4f85f1ac79d6d9bbd8cc0bed6866ae30279609ef0bbd2216651177fcbffb6f136e6037ac49c402800960a1a46d89c99b349e7a6582ab39003395a5f09d4023a99dc4426d0373ab825a1df78b19be206358a20ec18176c2816416c82865e6e395654ce88f15f3a1d6798d1e299890ca1bb901e0fb1c7f7118d05b1e5ffb55d380ad1fc87edd00eed728b5704ed0ba23aab1b501bab02ec3a71bf92ee50018f2dac78e8ca7fa003526924d175ab947af6ecca4dc5d2fd2af587e2b6f3afcb85543c6d9ebfd2413b043605d4406cef7bb92534bd3e2496394aad1b69356f36e6f6df83c367d1a88b213257ff8b06a70e3c7104a9b911980b0acbdf6c32d10174d663d77a97c70e70bb9a79d99f5be2c59a502b57944a4da8c4b10396aefd3ffa5b9055ecbf1a94f30a3ddb0ec1bfbe0202f1779d1e0213d2c31d727e43343beaaf0981fd5404449f7bb3ac3ced9250910cf0d5418f4f7e83772e4740d4b61a5965c85546571d01bae97201ca1c1e8b244e0936bfe374369f18abccdae0fc25a061789556963b852f5cad31dfc2072a572dcb8100e4bfb0833f73aa8ce9456282110764899be5a6c18302f0e931bbb4ea274f9adcc5637f7fc259e80d63375f5fee307e6705d7e45288c1b1643648391b4862fe03f165afd6489d013521869c797745ad75aea64e1e9859098c8e7fc46bf83453d21e200732004a5d937865bc183f80c3aa6aa061fe7138f66e3794629a0171c765a63ddae13980afb746e5c9d8d2df47f5cd0734fc045aafe1679d53f7a992024127bcafd1ddccd112c0bea3d7e03ef50ea71f6025a0a4b594dd83e405211cdffa97bd134e407253aa66df9490d76b2e844c04c45d7dc4b7c95d70532f50f432c4b7c6ec0047f708c863f4c538c73c47a46716afac09d5814b3c3726dfce788cfcc62ed09b01a29b8a620f2b338db21c01a207d6ebbd10b03472426ccfd9aa3983b1998078cae17bcd38386cd291206a637bfb9ffeacffde949464c91df15b6ea21ecb7d99e7fe47f0274374efe092dda2870727093d3fd6de405ad1c367f555b125a387ab72d7b7c441d54c595c4ab8c0057664713db2fbfaa8bbd18cd3e686bce993a66bb931b89e9e4edeae687d557f265a76964d1a65576508951bfcbc453b43287308f5db17580336d1c2bffb2bea1f8dd930e11c31b2c472fc3afde0e5a691e338be346ace794b344663cfe58b029bf6e5f929fbea221dd50a8362885d120fafaaa0b3a595ef5d9e454509564ef707a899bae4ad63e23d98c7d702c4385afd890193f67386f6a2c16d293ad0d93bfae6eac401afcc2eeea2144fe67a0aee3ca8e4d6c5d99f02e067a60e291bc64059e5f92ade00ebb86d319215400fd6812010684da1607e4562649306953b8036f210a8006e1019bad049d6c8e32cea469b3ba33bd9b39030c8ca9aff1e9b36763eedfdc3029afcbf2a1690c73b7bf492c3143377997165426aa44da207f1f2eb54ac21e8c37c020a1eaf515b9e6fd2fdee74506089366aae7d32335afada6a29c6c259d2bb73aaed2397fc19acfef998f20a5d361052baf363b7a67b466f43982bc134d1d795753fb6244fcfb43991500d84f68104fe77d99ed11bff8f7762674147e7c078b51a81580d5de685133ca4ae90c6a0e2658cadae2d3d4363e5e384696c2f4853fa0bc0786a6d2f62bdf45972a629025d731184ff32014c4e8df21dc5565999c9c472fb26fd637a12b9ddf05c627c8209117bf861b62ed67ae1ddcb29709d1042f529cae024c8ff1dfa56750449f7e173990fe838b3d3defa80c4fba2a85110e0975047efb1be6869eb459e8be8b49d215ff4d88a5b69eaef87f396ea45d7ee44f89a171d4ff8360bfb481d0e77d149cf9d319c1eb65754c78b0eadede220683a6cf8db1c256806ada5bceffe34f446ff0c8a2ad989765d53a83bd2890eaffbe411b49bd602534d363c4b8ea4052ed80ec448ddeef519900018efa043453f0dbacacb6fdff10bd373ffc0f47e16c7dfd61de1769c87736d386671e294db3fb44c51a1b0205285101454a119215a1f7a4267f496086e590fd23f718dc89b25cdd5634d6cea43615e4212de4f02d2fa01ab29b13ea2d54e00e7d9aae1ebb9bd2098062ace70ede86d3176b8ce78464123d2b6b6d233805e5a8bf6a58f8c84d86dabf3c7ecb782eb0e580c0a8187817580e455428b95926d6d250a92b6d5d7c64b5a46da5f892a7d82de41c15399c7a5392e7059214ae9c26fabc2c55ea6b290301b3224b7b6faa5c27b374bb24878eb8755dfe656bdb4fee324e70ca2544f89cd59116f26501cc2b994ca19c9815efb28cc5b8cac36913ffc62d05ede34e44556ec9697367d5a6662ccabd1a8a9c07af1dfaf272cb26a22f4730c8143c7accaf693cbba07e594d2adaf4f0a0f1dd170a21090d0509e601e2c767988fe5102a14a1fcc897f2ff4a8fb63b96cf6e8e6d7a09fa86f044f2820cfeef57876317b0d67da909bff7e80389f3fce385d2e0f2a2a25397465710278685f1d9c438e70940f9430b4e386be4ecd6f06a24cb49b7450d409c2e287a8ca90c9d8ad8aa23d29e0c8642671e2e2340b57df6028d25118863927d08fdcc1cc0ad07afaaf1a9ccac118ea99832ffae9abadd17676a7f2f0ec91d832dfc21caf2f4f94157cf2d07991d9c9766268c96d26fe249c2bb7df044d7443bed73c3f7a1c1766ab562ac921889980106f7e89ff4b55e2bc4937da4f621f2b0ad4e6033d7b47a280e6ecb1b5c46a2c013df9d7aeef11c07efe437cde5310d3a792d467e87b865ed093069b1ab8506d95e7a1fa0d24b74dd1b17ef8d243168857ad5cc6cb559fa44239e6fa097cd4edc3e20e3dbad52957d8faa89165f2b35504cbeb37f73f215d76c274858f234ef4f130bb8aecaa6121ab807ee270df145e5f008646eb8fd605cb399ba8a453d08a0ccbb4bce83f692a769f081c3e48927bcb76cf598ebca80892cc69c9743150b7925877ce1c6c76d8ae28c642d91772c21da09b4ea6f70c85353096f3e4597295158fc2b691d871690552b3a89068e366cde9e089019527710385943b2b9ee01cfe114741f2814dac82c91726e10a262f18ca28407e6009af207b81a53c05e90393710ba2070cc229805e3084154b40bc8a9279f306dcb5c6d4094fd7fc64083b18070656c0af692778125976667548f38c3caabadbdfd077c31eb512e4a67f8ad765744dde1907f185e8b6bfc7058a26509d243c4128726931291ce14355c436e8010b585c683ebb572414d89819247d1b22896e8904960312f1a05f30c1447eef358cc66f78f04657ad1e8250cb866cc14b933a2499b938fcb325a42137c699780e0ddd9afb86b20e82b79f07b823fafeac01674b03001ba30434ed8e7f18555f0835413b6b63c74374e602aaa102de5895ef832936c508aaafa069cdefd819c983e13532f371d6aa145c87e34ab9eb37e90712b931fe268c3cf129a58eade43f3b323e77def45e885314c937b9fef9d6c72ee3156b0ee833d13f52a434d3f8c03f94562dd9cbf59361b4f318cad3a91bd92be336878e55a906202596371b08c17b8462d2c7e553f5c56e6c556531bf079a20001268ab77ea5aae020cbdfdc2100c3f39faae4d6df8cffd18382dfb24caa59a288b370785fb54107e5405b0d5982bab7ad7e0592900835c23b59e960e2f4b54a6db9a01483cff57d0f47b92eeb6458b7100d00196e20021ce7f45a159777d4cf021280562d2b24356d913c7252a165cefd3a81192c5fb3f57e3e72d39cee7309bdf13e64f4e5622eb3859b850b0838e63da483f481a68f3c85ea3205f5c67fc42f0eef0e1933b7810c9f0e20058a566a5afa2dd7356f7b7b0eb9b8f7a17cbe04cd821749c76b0e8647f55aa370cebfcc64d38803c19f9055d36dfdce46e1cb4958bfc2bce9b81ab9ba045776dbc4101385dbdd99eaa6800cf14b021e42e71dc49d20da3a4c5f49c569efd6cf0d5823e236efcbae768fd0129c8b422e72d30cbbd84855eac84280dcfcf90577ebd6100b25600bd0323b113fabdaf382203f561592ad71d01da2bb08c8681085de230b456709a721a0f0189dc004952932fe86e9dbafeeb55f6ed9b1981f1fd63bff16fde0e689dbe24f241f0e1a20839de1d583daa8c56f26299c6cc1f7e981a02a61e89df640c507685acf14a179abc0fbc7df4453f00cfc62d9b684fa0e1338a320af9e305562c112d6a0b3f3e49e0a04294e8ea1fa1b91cb05b9c9cb323c43c380555854ffa7f6e683037aed8968e41a3640494ddff34cc9f38a1511a3d1a6cbae863c3b1f43789dffd6fe45f5480b71bfa25c9f76cfe02932fcdea38a0d167886583d9ba3c87edbea42c2c25e0e0492d8be527e4c475f5ae6445bc66eb7fc42f03d8ff5b468560050bc62da4abe5eda5227686c07d65ce818d756407b72fb898f2f0f90e73f1bcc04ba494b9b085fb4b24f082ea656b545194e4e8c0162a07e2d5f5edd978e84d579c98f038f1f809f148d101fb808beb361318c6fd89b61861afe44354daab991907bf41199799fff9024ef5c053b9b3140641e13d1b94c731e8e5811c792c52adcf0c8e761abb1c2fffd78267c1e31742eb99c644d3d2c514664029834cc8442632939530b2990632c8ccb2b8f8c334106a8d36d8e560237f506481b05e9aa49197fc7681028fb8f813c5368a94de4ea0fef29c68fc1552d360b169a6fe108b0cebb19275648fe2cf398bf7eac10b5035804235e6ef72e3afef9687308c838b89a2c40e099830ded4b968df01b4a7fc72f774323549147861720e9b1ef40b7f4aaa9c939c94fdd96d4d2a208009193f840b953032f5dd46e93b9f10d6bc48c66253a65152d92c93c14338c5787a2c699e5805fe020e0cfb9a3f8800c723492adb9cf455af7461d489d5d4ec57562595ed1066e4ad90db773ff97485c56bb95eae0ebecc831a2cd7e976f189470aa2c821c3e8f4001dda46bd6a47c4689f2220e71e4f230ff0f8e48b86906bcf4e0737a14dbec02b8b0113921cb20fec2203a535ca522e9997ec80fa50ecb53f41c2b4c03941723ef172f3e7793ea3c7ccd9c2a536f6b9d492eb084280e4967b76ef521126f1042f9ff6e8f8e6f1383904cc0b7c8adddb89bddc5de71f7ba006afaf8c2e3e9f1dc7749115a215aa0c79016f47e76387a8c032245f171b2d8274dc699d28ca4cf3a420d689f5e472cbd1a79eb275630e8d414194cc17bd1e73962a5f6996dc32851b4341923bfd7ba2ae8559715aeeecad94e7967b6a25ff6dcbcdb09be4ecd2114c68614bda6ac96fe5a82d644fbe8acbf50cae16744268482d122028503598fd18c6ea7ccf6eff6006485cd816080bf41efcee097a33672e5caffc874496f37436c91f59ddefa1d1d7e4bfe2852069c5d1b8040ee6c6c0c8056eda7162e0c1b77a001e57a54e1533128fa85199cc6ff6a906fc802400d15efcf872df2676e769547f805e50006bdbeb0d98512a2585abc67b56971229bfd3218e4cff9bee3e0df859083b8c5929b695dc4638371855ffe90b3c18685c772335fa062bcf916fdef6541a8d56b90c20184282be13df15a3ecedb1c62560b8945723bb95e7c1c3baa73a51a64b60364778a9cfd72a84dcb45aec05c68806eae7aac47b2e4029492d29e192d62736124ed451b2e80d867af56a9f74cc4da55927dde5fcda818edcf3d350aaaad603a60ba21f2a875a48a717ec88bd77871f7c41503f9471430d9f899f3fa25082fee6879330562372e082723b673f1be3e3a3225f306b1f8f8482a71389c77946489c0ce6330baa080c6bd6dcce48721ac7d06f19e6047fd78143602f7782458bcca449547f14ae01b7bfc393535950f5047dd049c1ddc5c337094d2ab6be6d9fcc381170ba78ccc19847fdc662db8f35d1e8abeef6a64d90d5c333d9431bf8039304d10a329b3268623a720fe8eaa28a2c8f0ba6e95cf9832dfd884e473bacbcef192b37ad012475728d4bdee82c32298e77687829a60a1235785de445fc2819175e2ff0066b7386b18a830d4faa13d203ed023e873b665b8ea1ace3cb90228aa7bf92591158aa974dd2ce83355333fcfe4da09f6df628340b47f0da85c04c70a6c3d6b2b5bc8893417b2e28c9890ec8473405dbe198eae208485d7e78d91ccf56647c30c32f03a6bee7868ffd20fe8e222221688810049a28d3b8d5e43aa45acbd337f66a8fdb41da3e24bb5544087fd4516abc1742c8fb1ab817222db5f808779b78e739c45277e1bbc0a3e5d7dfcc71fc96b294659b994410c03bf1a4e0a981c96182c8c4d80dbe862c8548944c9f6a770524792007d2c6a88463790b0752cf53420a0ca470b61d8bfc00847a21332ca8cf76fa124ada93933c2d54814d348056a9af2cca2754714357c9d195a31feddee3d9abb344ecc4dad2a65d7aa738d3e3acda45cc187f56d21b1e6c57264ac95c6e605277ecdf5e40cdec56a8140af8299e44bca8fde84063b343489935b21d99dd17b78962a9a45ac3e3fd46cffebe2c162bf1aefead779494cfa3b8fc35e414ecd1d1d4f67ee43431ca84545896de472c5b24e8b7c40155dbf7f6921555f454c923fb2fce14e2712acfcccea6cf6891f24bc0eb281bcbe5bae17211e38fa2935a87cd04463aa177d11b270912eb03efa615712b9bda797cbebcc4e1b4d23e0f158e7b94ddc4a3a572acf320f66360cf8614a2385d55117ba538a5e19be307a98e6206cec407404d441fbc0d330c4e8696b842b8653922152f222ac8cbb9f2864be58542daa02874e8db448f9daece7abc674059ae57a4dffeae30094f458d985cff558c5d0dbb45f2cbf986411872c868f1269c19b7d2ffdbdb843f4b06d387737b4ad6c93d184088c9afd16577d80c301bb582d79c140aad9c965ce8b62eef0b8cad900a43b5cb3f843b422a056361a1abd3acd0d64b7df644c6cfef632e9e0b86089f40773b42794b347d27773196d39e83a2a2904669aaa460465db41c354172491048a39caa70d188223dab6bdb2586043511258ff7c04badfe908517f977eaa835238ab3a1e5737100321aa3cb047a28245436e89b032ffdcffd8a75023c425197ee7cdb4763f11b13de513aa2f4b390271097e994b9fa47aadc96bc77200d2bd06799a0a4d2fe30fd66ca0e7ddcb57042480cab26040f6e849217140d9d7d71104495101746c754307016b0c30ea5a4f1a83447a7aeb87dbdc68b98eed9ad4ace74873a53a2f82f8ba3664045bea119ef457d1bdff5b8bf55d00a0b919311374fdca44bf2abca042b6f753530519bca1e83b65e2ca5d8852e0bd6b3ca73737f579d16910b40982d4b061052b8d59de564546728f1cbc77375d3b362adea7c4f1f83c62c5d9c0d4ddd57255638332e98ee8965b47e90f58cdaf03b9438081e62fbb73ca0a6bd164b4ff35e94d061252360a1b63a3f58cd785826b3d4fcc84023ccf57f62b3cf61e485c3b0a2bc741c09e42cddbf0f2bec85b4765ece041f563035b41adbfecca3c888caf6a5108671a26cb320242af1e9ccba8c21a9f4aadc97b0de7e5d0a8c3153a7c0a654c69db04893580dc00bc8dfae4e2761697c5379511e1d13425888270b466b8db0f44d92d4075c505651079f18af5b7573182d7f5642a88a32130e8531a5c1aae12d6c5a3e142d3ec24cbe4cbe44511403a37ddf937d5765daf4a85db34d598ba2dd3520216b0b19499f644fd2eb557a0b9a038fbd032ff121057d76f2ccfdd9e491169faab107f0b2ae5fd5889fd2bbae0cc5fbdfc5f734b3a7d5b5a6c6329d634a9919fde1815c601bcf2ec6590879550d5eec20a41e88bea3ffb7d46f68942231587aacd90f0e2efe9d0a5414144d681b90da30f27e5f3255167d0a09328d66be590a7d1f69c1ab086a7e451ee7ffba814402ad97002d42a87ea3859d1c58f23bfc66c1efc4fdd3dd98fbb074c32205c9a6dbd630bed5e1f3e50660c39d15df1dea191f5409669618ce4d20954ec5bbc2c0d0a81c12bafa71d10ea881118fdebb10949475ca01b5eb14bf67ff47a21170188b82bb90db29f29e8b9e976789d0a07fc6b2674186bedcee515f76828bd8fcca2326d19037afdadef6f2b0ed49d9849f21ac7d2c6e8d1f824bcb81b2e94d06c5f3f6ef5441f245f75326309382ad3c2f9ee655f0aa1081d02a2c0b3858f83083fe06a2fb376b106cb1590087aa1bcada0367f305282baa43acc36fee341b63b522eed1a27e438852b9bd8acba91084b3064a81b5f06e625d964e2f56047dd9874c2d565002c6933573917d0d2bfc0331acd8b8623228f5c10e857ac93fa927dbd3968169d12cce40745eede48d88b7fd5d5be1ec6ace220690f9514c7ac4c610141d790f6635ca61a83b6c6a900f12b604537d5a94620ea52615824799d3da22751baca2bcaa3fa17ec34ae3f89fec0fab5aa2dfa3ed553ea05bc8ae7672b991d4ada6d9b2c1a96ea5aafaeec39fd5b71617f0fa9b9ba435f03648e626b94d2ff7468353a52ef9115cbed71dbc1d0c3eb9f8a0237caa3de0fd18deae24d997b5818b210222230444ff5fe563d5a4f47df62495961a932585a2e1f01a626a536d935d4af49d9b862ec81a0281abc9c3d6b05548d534be8a6a1fcc933c1283c9e9b9a9e11fab7acc0a9c24db1e06dee52e23ef9db947ac7d0c6c915e01f2796324eadc218162ad124308d96fa96f18facfc959ccf34422e0f4c7ba0c0b4f521376f4a8f3fe5915a0263e3d34d733028d831f7eaba9b652d1b20bfd66325015190da2751f31f82938b48d856821c749595cdfcc064643eb90b41b9d6c067dfa47fa6c96a3ba14fa9591ba2a5db2466e328b745c45214807dde0890a8063264158a8aed8e50344afe501f7404e397c3efeffa3c21ba5877a1a0472b39d3d79e54d50921fcee9c87417b961454edabc0e9cc6573399bbfab05b2614036d6a0343693e622bd613f638a03d7a19c69347956378b8513fc1aa2a7285564602a6a4d2af0d70cf530e451855690b1d33fc18794d33231d6328eae3d9c583992594b438ba2147c7689f56009f4133c25cd41603da9a93e9e55cec95eba50b57c35212536c4002754bd9c6b4310adecd0d77252ce130d6a56c299eafe27a49faf0277721d1304823d9ed904d4c697fb86bdc6361cf38b503577fd50426d525c3a5eccd27dcc0987c362c415d9fd3cd6fac5752f28b203ef7e48b467e637a51b6f88ee193e0f770d207727fba5b4f9322a893b6e2e3dd4a21c55cee233ecbe7f60e0829c5669e95f57dd4d80bc49b594891f222a26b772336402171ae90c3574f7f85bac7709e98c60bdb54a81996ae217ce60d3a86da1583c9e0f72d38c0630cbe73223cd000f716cba5555505c846a1c719b8da09aebbd0751e013bccc1ac47b5330dff49aaa985a91ee480d887c88ed2dab7bb29289638c59761603cedbad646f64ef314f1d56d886a095c360089eb6ff81c4220c019902a2f5669bd1377a18254401ce0aa4edc3d4dc93bfeb743ff7595374c9769de505322a80136d3b390067e2033196bb98d77ae8d4c578d9ef8a2e11447977812c21ac339a85b2070909f3fd76b68c7aec54301093569b8d6069e6351a619a8c15afb4fb94d8f13cd294723aa5d4270b6e1f5413f27111d5408aeff05357ad81476029efc44bc0e644731b9a6f56297ea52cee83d76ed2e56d2b639da124269f7a5dd33f808150ce708ff5b08ae51ac0579d91c7d1cd13fc7400a9325d8324e7a4a5c4eceb115b13aa23607f62f743c24d4f349a3e380c7c12e3cf5f14c22173c4cbf987f210d5bf408492ad386b091836106abdc907946373e1c30105bcdf027aa1207ccc24beb1e4d9fb341be01b8d922bd3d03c6c857072674654f268364ec0fd23e3c78035c2715e7baa1096096451e049eeec904fc4970b41ff3899584cd91a82eb1f035e2cfe03c83e7461fa3c059e45a8d810d3c1706df5a2d4e609a800889f30c01b3cf8e3fa3a36b53eb2e4783b33c18c0ef39675e0379c4b2a58e77cec8dd04f5c9e6ed97b67765f6a2060d44fd4a87c82317335ce4ce6b353c2442d1987da5139f550053613331aca8dca6b0e79b93a7638085b55002624bf7f26046593b3d2a43ccf223a5d062de016137cc52e78d030927519b1f2ffc9831dc4b52cdaf1c3be91b95192317198152094c8413a2bd4687654f0548b43ed71d0667995a802db5d5b02f7204864ea2beb71eaa53c4a168e89adf7ed4e286d2fa5a51682f3520d6f3c0eeffdd05777fb3ba717d84442b2ecdefa9a1e97603648d27c236f6684f800b23444c8f6db8f312c7ed6dfb4934329d430eb79690a34f7beb001b1f226463ff98f4bbf221848286cc69f87d2d4f6eb5a54093b6b5b90f94952d1ee8ebc7d1bc3607b05172c6f8d7f18630a7485236d87357dd1f8eacaab692ee03a2a4bb1cfa9141267b0d72ce82f7a4e1eb98c4908fb93697f1c889ded4a7504ca77324176f6daeff72c6afea9e7d4771db053fa01fef9ff5e41d63df31e7e60cb6cff1bfcc66f16762dfac4ce85c1515692915a85c48e84b2a795b14252099de34ce9b978d1e32905de7cd12339185a54b1a74b2429bc9532b8ee4d2446aae10db333163f35b0886652ca52e94613cf1a280e3b908c79885c9f49d9690ea38de3d04733d0243ccd1b998680eb1666761f82036a5659fb3c7366fe281fade80ef78b9ee0c431ec84c5d48cc46f2d98a41c78e816c313ce4953f257b877f5fa2c3f7cfdf1aa6182567d41387ec5ddcbdc1212aac2502278ca6464d3f415706cd565c9e5886521898504178ca5105c80894732ceff3d0bf2cf351e23d902207208aabec434832b56d75dcb864fa8f1c02171d37205d1f7b254565f3c0aab954795ac24742d9f569d4a0df1e2476ff7473819f2271759cd02b8a139c484bb78f02ea8d0f84fd90695aca143431280142155a859267b5c71c6846d57ee83f9d2a051ed15f62ab1027ee1a46965a8141372b1202597114d1b05b64e8fdbc42a4914d6f61bd4634749ef8d72102759840288728e210f1876cf3b1dc8e1bc28f581befb79351a0d94b1bb5080cbedf3eae33750897d15e458cae073e3cbd5b2870f423601e09b955bdd65345c5d4dc1d80dabdccf77ad0cdbd8a3df074a0178d311cb26b6d47fdb9e574e8e51c59603e00e483a15a9290a730798558db5b0444dd0092788ef86617b279042218990ddaba4d87c7ac5d0a7704cb867ddc93c804e530c93b4e68daabd3d0821cf5b4a45578c9767e627647ee8c2d5ba34fa2bd71f0a7db9d78aba5da0dc474f01dd83cb5d48d3d7e2ae104152bd1843575dbbc2d29eb59ddae1153d00a08bbb6da2b896c4a8640064e14900fc3a4c79d59a2fdb86ad18621b03a11311d04587a1c4a92c3a413b4c8b5ac69656a9f4a8d203d5e828874a70b08a99eeee874d0ac03213040c2be180f1ac5b5cd2b847f1900606e41fc16983b6d77ae8ba2be0cfc278d7a886ddb7ce168b3e024e2dcea09a8122d89f5d0e80cc897b49ebcd5ac053edf7cf233582018384b780acefd7e1e03662dc88c7e8143fd74929921eddd3a7655435ba6555bed9ec754aac4e34a06e7a14375cb78ad55cc61ae00bb68c1d458e466c68a10f710f0956b75616b0605ece83da2f2214dfcbe8ae7ad5ec0c517877ced107f39e2e73bef4b2c7e99f95a447edb954e689ecf66f2b4913879c1caab883814222ea744a36afc0648102260e3859fd040ea2764f15f91231f3af9db4fc533d2b30913ffb072e8e318106880378ae6961134548dc28f3d788007f35ec4f36a519f3fac893f87c9cc4b25d4fe21fe7f833041e2966978c34acc4c7561e74f67d02dfa7365f582c2e22d31341784f255917fee069826fb751fa3ee1f8b6354cc2092613eb6b1e1cc42497d39e11a0d9807524f785a9a53222533a2ee302cf54aee11f966bd9118129beed07010bdcdbaa1ab0a15c51ea70c28ac3ebc957959326dd3c29f951bf96cb32d8d912360f0585900ac2580daddd83b737000a96cd9c0e42f18474423dbbdef3fef52fb3e8ac949b80f674fdb1e11216c76830ed706c1b036a9a6d75752fd0cbbbed274ed6829cd4fb4c11d846201162c03438260821501bc064a0f4b3ccbf63a413b1dacab5ffe1127600dc4aa02424b935074b0f399023e37575984019ff95319e1ea11940a6f2b8b7bab0b949c6262407f61949c16a4ea3d71c75aac42ca3e41cd1bbfa192577a5ad29fe7b1635224b98d730df869c849f34d2ccd2275ed69a4aa5c40f363e45eda892df7fb11b0c95f25ff9c46b3faeb29c275876e645ba0a6e65107e4fef97034605fb3d98c9d1d799060c89f37bda31a010642dc22a3cdf6bdada1ce8bbcede7ca85ac58c11c0d92e6544eefbad59c9e42c947138dc864ba873bb13e09e4ec242c8764c83cdc80a31bc76fb361925cbe987db68220383e3bf8cc439be83c84784ef23170be0ce92363562dc4dd240128251f8cd2c5809f7787d2110181f7694fa71aeed7b3e18a0180cb7d1f03026f3766420a46df839ddca64e5129428c6a315076130bb525502c967a5456a18514687c0b037b2a3321ff6d2320c4d876a4c28ccad81de4d6c86428e89f3dba6500eab9745880a3a2f76ca7aa6daa9cdc11abde75ea33b9cbb4583123f65dad98894b1f17097758d9ca13a195af8428c639c2e376b624f538a170709329172515e85973c01a7852a19531291532ddbd7143f85167e722ba9dcd65bd563db281b92f519e5c2a1185b9f4ecbaf3406eb63d4f4c6b180b4263186cc6382672131f0d4ba6177ff71d6f96b191c2007fe4e8feb59f2a3820b97a6d747e9a24e28fc9634af0ab74f583c0d3c09f6a93f81b4a8e46958eb9a7828c120b7b7682b0c56dc62ab0d29c0d1c98c80450999e87eed87e9c4b86fdb270ce5a0060fee3b952c11d8e5f6b40224bc19e3fd973c3664557209e539c84c797003e7c00f0052c89da95ac0250f79967f3ff1766edbe67a3d10a6188aac53a197118daeb9677dd0e974c054f068efc3a38a202a435011ad9cc2e54800e2d75a69300d6c428a4363a71d38041ec339a0c0cadf8943a1340024d0808d2b0a5005cfd4b8445dbbd354cc7309873149b336e97c568361364859baf5f43cd7ccdd0bd322289284849be0ed93b25b9b7dc3be902c802e1023b83fbffff3a2a5887bed4e40d9d9d8dd7985bcee9611d0ae4c809dede7fee29f43cb038b229e311e2b0e126803c80485e005d3d870f5183e7004a06ee7861e81ea5400a648213c0ea54eb4193c0a0a7ae10345f31cbab3543cc790001bc12177dd336add9103486b1a12f11b16488309c44e2eeeebec45475a8bbbb7b0adc1165fc901094431f294ab27e66b00b22924c2b58cfdebaeeee7e345475289b6194bc62b0c40053567ce012247e5ea4f6b76bfe151058501c99203e56702a616a5627ab9db62e3807f42c18a377aa56b9bb679d611dfaf6806dc78a60dbaace73774fb6a8719dc5c366cf9c72ebcb4aeb629d4c80be9d088b9a74a3e905a0e402102542a6931a21ad169a3c34f5e89bb6691d800fcf8850a22f864112693b694454aba020030c02969529473052480c9626b120d6b3bbbbfb86b7ddd06b3700db0dc176833027000a06c99a34b42c991e15923021605c5083bbc5fd0932f6c20f8bcb43b8e148a4932d9ad71089b1731bb7b7c67177777717d6b3bbbbbb6f3039dbd6dddd1dc56ef3fa63cc3fcafcc3dcf869def6ffbbbbbb6ff0aeffffffa05fc1d48093e6fc8e28732c7730d174ab81098608c0ffff4f08f703f02dfd903f667f550c7bdf97652dbae891aaa4e8665e3a1543270631ffccd25cd44a1e2d4df883aa686a6c35bf97d51054ab4409d9534406bdf8682c92599d1e78498f80473a99b408093833b357ac339bd6376dd35ad51baf22009cb80ad7b78e41fa90fda429cfb6d794b572c2be3bb7717b7f071849ae15967e69451a7c447256a2429b5ce9f953fa62f4e803a6efce4da74d672c6993a324948ade7825a9fd8b71cceaff7f074086d8ce6ddcdebcffa9d423efd4a68129ac0ca108c97418d61c8d4e889ca96e01d37cb560741137be28d9b2d4376dd3dae31f02b0644ab2250643ab288d052f888948609ca1f0aafa30f369f21a2ad64a5c70e0091815876508872fa2112522f6ce77f61b6d1ae76a2c3e901157392c63236758c4115292be699bd68e041c5151f4541dca66a809ac9169d357faa66d5a3b929aec69e6bdcb2c4820a694f9b9333d7cb2a2c82a66afe6042b6085876b66577bff36ffffdf30b10e6d668e1be7edc3d0fcbeff29d6a768e2d18438c39d4cc7f55d7bff36ffff2f39b10eed587ab25adfb44deb90ff4fa3dc77eaadc6c07a7677f77625cc75cfc109cc50ba964368214c6cf8134d124953c2cadd5da706eb500e9d1d56bbbbbb6f750d21b950d13c77ccf77d7de9d3458f4fe2ce6ddcde3fffffff424321a25051c828a4f45c6edbb66ddbbdc319995b4947007d43254c81b5501213e3039ad3773db10e0debe83a7b3bbc7aaabb7b075504b3174c19b01666364dfaa66d5aabab8d564fd876beeffb43c35c14f973bafff9ffdf84e9fe1a82b6583691264f7ae3d564b71a09719b256b6b561f2e1ed533f084392f487cdf9706075d34f996045dd42899e13dfc5350228c8c6b85b2175e1bcf44e24362148044d87e0c2b666a988cf07204637624666cb154d54c566115d0d513bcc1bb5588e2d7459337409c5be59b55447832fe953ff7d39214744628f5708a604c318d9c76b5f7ffff7fa451d5a16ced48432b009e060eeeef1dce39eeee4841ac438543e20652d14308081a69b1adbb3b8a2ea2bbbba325b10e455bb2684efa86e63cfbff577a621ddaa114c66aecb1731bb7b74a9241dcdddd31fb71f312b175e7366eef2f669168f82ae2eaa4c147ce9a4c8dcf05fe9a5159c166852d302caa70f3cecdc8d0927073dbb66ddbb66ddb5665a9e2a422a582a5d2a5328675be63dddd3d86eb3759835eb1654f7c222baeddfd667377f71243588726d9a576ba496dac5c17d63d4789310b8c6e06b8a61143cb3a9beeeeeeaa8b012ee2255b29afc9c173b636a4c7d2ce6ddcde2130385013c809f4040afbf4476f958a2b8d49e9d5de5f63188475e870881d26f56de4254adfb44d6bbdf1fa536bc99ddbb8bd7b1d58d130e9e0bc28655e281211b27799b74b71bbb9731bb7778df7a166d3ffa2144f5587b2ee03b6731bb7f7ffac90b1209887000d9209ca96488c4ce91cc99e205e90d87714c1a2c945774f77aa0b4e490c53dcdeb98ddbbb2541857c48af8b55c4cb8bdb1a40380831a5c365f204b3b5f12b5260a762eaea017559395b64ad3dde891325b8963ac7142a965f3e1d52fe570502563582092ba5056be7366e6fde8801269c230994c0e84189b20f4242ae9c2c0c038ac7f62d25d6a15b4c76aba9b79cb73da2e234719c384f9cb026ebd9ddddbded6074dd45925a8c2dc82b9813c4607262ce663e70e1ab9311365ec35c7fac677777676a3b98b4bbbb4fd58e4fa95d4af5b69e7b26a4a950430c4a39d1650574ffcb7d7777f7ffffff9e047088262fda4c89effb92a4685227e8fe375d8d2af7f54ddbb466657c8c6898bb678008621d2adc0031bca9383fb8aff91e45479b8c9c0fbf60aa01485383afb86b10f930024d7e9408d72767ee84effbb6fcffd7982e9a1461baff4c3739b5d50fb13e2900c521051a3a7a541134c404a4414c7cdf37054d832e8a7479d3a087307f6ce02180ac11a6039009b99e3d58f34a6d569e745e462f2e64e6bad4376dd3ba4a8196a8a227d5cbf3c0cfcc7cdf97277dba2812c6cbf36be7366e6fdf8e14ef97d65c7671a0b2c26d4e1ad2a2000a0d4c51cc4c0b67464d78eaa4b9d6dcc9545cf73585e6e30cc41717d20dd0ce6ddcde05ec34703b24f5c86d26221215898c444a2266fb39e7dce6d6ddddfdffff7fefbe8cb99130674c9b6e573c904b8f981f8b2c291a2b9a2dbd5794086492c029549902dff71571776f952e7a6c61cc7577feffffce6ddcde1e5613cd8c3466df072d5c44cd88ad78e049b14cda99d9b3697dd336addddd7b9eaa0e655777e7da4bf29424831e4047271b8e51b82e258151da02104d98852e7a1c3b13ba2d4fca7fcefcafc2fdbdc3eceb6b912529c0d79425200b151b11a66454889ddbb8bd0be0a5648ca4e0e1aa0398d7d61146a9b9845209aa3a94f59f916a08c3a6ec664608e5f1e5317656fb97136356faa66d5aef4b9f250821fdaa8d940d964d571b5596af8457c32be255f1ca68034b871c8e2ecdaebd7f9b73732737839a43faa60ed7a921ab05d40a6a09b5865ac49c734e1a4a4a262d939c92a492b05cbbde2b54eddbcfbef6b00e05068543cfe5b66ddbb6dd3b9cb75288d9e0a55534f195c2859886321d169f14392385cf8cabbbbb94ebffff4ba5aa43d9ffff8f9a61a9f1a8f0bcf0d4a8380ab29e5da74b674c07ad6d55dcdd89caba766b1411b733e8ecdcc6edfdff3ddbdb8c6ff24dbec937f926e7dcffeb9bb669edffff8fd71e20d75e85bdd09aeb8622d68b75680f186c3bb0843995f702e3eb4902433660c154c613238b61a985082305c2d2a01615dafcff4f74c23a548a8388956b2d4f29dd31ee287798b790ffa34cf306ef70ecb09edddd9db7c43ad4496a8387d5eea6c8ca12840298934543bbdafbffff071573903148a98398b76de5eeeefeffffcf02da72f6c333684830204d444d162e6fd26564d7b267dbce39e70f25d6a1cca6f3b9f111f6bb8c11257dd336ad599430f7414e60a820a821a824d412ca094aea77bbddedea2e5ea4514577577bee9e1e812829748f516ae75b3b5b417a0010b212c51f15cb09221e06db1adac242932c869e1a6bb20125a30b1727558b07fe4249a24af6c53a5b7e840131a30ad99ddbb8bdd51d9f3b033b9f7ae236eb823e50ec8583fc8873e58453458f49af93ed016a90509bee9e41fd79481608139062cfe7b54c85c3fdff5f233ab9fffaa66d5a9ba12f88aa0e55dddd05f0154f9eb8bd731bb77786d8faff9fb6d367e6786a9bd6376dd33ad81eb9882488ab98b2f6f2dfa51adbfc33dbb98ddb5be97eaba2495539ab75a8e0e444a5c3d2b2e889cb28009ea1ba74b68abc99d7737d001f934911db3d0994fb3bb7717b6b0089284e9c59ad003e01f196d9f1e5b547a9cffdb6be4f0e8ad4fb553d7618b3691ca41f0b684840421ead3118eaffffffffffff46a5c26cfaff6befffff1f8ebba8542c5faac8041800431a38040d8481284e049761031480091d4c50485e4c0c141a321c044443610000040380603018100000c180701810060693f3311a1b60225d48bb007f460bbc8c335c6466b4154565b464471169eb99a12bbd2cb476ff31f63d89cd9d90c7319c1a91d85a3a11d00273a1ca6ef73834a51f1efa1da1e2a2a0cb5bf19a0c946208c4df0f9221f7e786b92fc0e805b5d35295e8a11a7e55dbcb13aeb361c9f6af8106f7a1144990ffac9357fc5487352972b5d53590fb34b9c9741fa1ad9e83686747cc768ee45e386a7b2617adf0e2cdb27c5e7886a8bc6e75b20d57395644280e120d470460c33594433983f7648b9575cfb147bd3b5a4256bab73dd4ec2378da9d6a73931ab2143124770163b69888c11543795ba2a7fdce8513927fe36ca73beef4d32d4cbf941fcbc10e4b078a29b5deaf1baac2ed5fd83470ae53ebc8ad968968209f29f6410d2548dddf37346964bda5487db96fcf5bad3410210e23fc1aaf541f339463ffc2e785c1a6e8c4989e5afe0abda5c2590e8d40a043be1ae35b44445b9a8410071dbb5cb7adcbeab9e84659a07ebf69c68a9699916f9c0a6a5b2073dfd8c3ccf3821b03ab57a2356a30e84b1d98063b172034662565f6056790c48027fb7c9cb1095efc1322352da156436fc07d571e11197ce3ee2ac2e8fa40c3503957d4b7b4aa691a8f45184b3ece6e0447661b21b05a7b5d55330b9eddf5bbd87684078ec8fe280d72f6306661e77f1bef30a6a7232f704c8ca62569cfedd45c25faf6ed512a8240df29f28c9d581c20dad6fd3e54f1c5cabf1df810e0dc414fb709e3327ce28edcce4b3a97d0a9048c838e15028c67dc4e6f3b44fabf6844895c98c4f19b683a1968d6855b302461c6606a3c57d3105321fe022e643868cdbeac51d001df690e6473839c6d65adba51676bfd08641cac2ea6a02cdaba485ba0136b9c65f8b260f4834e3c2c9e980fc09305f7f950f0782c5206dceff97c61ec4d8db865e7c938d2f4e7d8dcaa3104ef37c9adb341e474c0072c1a780728b1d0a51e3fc1bcac09019b70f35e2b52c408b561a81060a45cac722e4d31448ed64385180702da6e457ebb6d98b00d09c15ba19e4eafcbe1bfb251b8372b4ba8f1b19858d189bc808260495151f86df2bc49b1c69fc5327e528518ae71c1c00ee0a24ac7ec84e2fe1810627091c1848e7e8edd1fbd7c93b76dda3bd54175f2a3ab3f7eda2d58285a3b4e5c4f0d19d4949bd1ec2230f8081c864b251924a820f1a007ad83748fee0b7ec70a5a0fec408083ee0e2f201f99d405ae16cd192273aee038427891b72d34ed28a892029b541ab456f716d8e4d4df95bd39e056e2e172e19c47a83b71ad8d9468ef882e2cc3e784d912e22c123d3404c7d31e8427f16bb6773c09d511544a9e6e90de15395ecafd027a7c12f9324971a5c8f99deb260004942950c8f441292e6d57124fe9d311b00650a816085b5272ce85497889899fe35bd0269a8f81b5f5a58b4638ac0a0bc3c5e987bc0e8be7ee0298a2c1ce0b7a3af960a8f831cf4192fae7470a53517a636787b4c45d81e5c04e29ca9ac031b2f1a63b7c7a3d22feb114679ef441d46bcbf906efb8fc4b33df68958868fef1c828dd64da2bdceabac5e4c0a7fe3c1897d2b72b074dd1ac2e8802a4d321a474276327c4cc02a0a1c709eb1a2d768b15fa3924ec5511b2b2efd06204c7e74b5e335389ef1146028e7d4799b16ef1c7e0cf1acb0519885dc7fc3d2a9c34235a18d5c22e1cd0f5f124810d7b1a5b7968e19bc14c422d6828eb2280a3d20de2cd6b9a5954a98dd268c7f624b20bb4a0f2d7f4378026c4c5f09d8262ecf184282a89836ddaca1605e9c5c7e9b2a2464de2f01ae6467ed088b5a77630a5bc36aa30b9495aa9a45af13e4d70c242278995ba59728a846eb3517cf8709eb0c5f082e007181ce3023290298b8c31dc75760796d3c3c6352e34ad4d0d4a9bd06add15aeb1cc1d050d3c28fced3808f1746a8ddf57ef64bd2a7cf47dc1034c5af05fc8589e3ea3a53064527de354170623cc8a25e50b2875c7ee08ddec50655393d6046ebb2e9cfa5551cc0421fda8fc11e1378ebeae28e39f53b86bf3439c4c69f1bf6b1bd77590f2fe915c900aceafc4e177c2c51d103ece852aa05f8023c211b242f7f575311291384648a79e2ff80bc630c9b3da6cc0b716f04145bea9406422a8b8058f91fed0e680e308250f4c13d79047675f031a530724c999516e6e887904341353af413a4f7aae7f4c6c8ec8c59ac5ef227368f663dfa4f938bf3fa58d3a59dfd626958f160fc6cf098a80712536e3db70254e63cd46f100c1cb44cf64e81f2935913aa87f4340e234535b1d0cda23ec008e68bf1d5981c96133f3885dbef64a69083f6611a686ed20da7ce9f9a100f1ec925021a8ac569876486113ea0064c60443c24a77d08fcd2097425410ac99f0e5881b6da292b8767e5396dcefa2cb1ad6502ea3af407c76d8521618b0039ca842b2836a0b1ad6033a81d3390757a1da34cdea03f9ae71052a4f301db0af967e289d79099b410af4448096b5aad58af48e736b67c321847760669ecaa4839a28217b2e00875ccedec490207f1b63ed8ed99ae0aaad9e4ac727a4f1d7da471cb6a5b194587ca25803b6358fe2d5520ce961aeecb4855f3becebe04ba121047da6d8e728993fa566fb870bcbcf0c149270c1ad6431bf569d31414a45c6d3baaa4f4da248329b4cb53dd885ed51dfe674a8fa316e3073ebbd22a3b8f4b0003cc3e3d2dd9bce1d17df3c17c812452d9ea412149d7f01db8395c5eb952b0624af1cc145f206b761ffcd312adb4dc3f767202fb0edb414b4f2fa04bcb72136ccdfbcbb91ab7ac39442717049309b3d6d6a2c0c1e9842f22892b1af2884c4848cb46111965c61110ae246e0762c06730b0ef04f9edeb30a9f64e082f76a4b14fbe3fbc87327a2eccc49444fd23964659a314e500ee08a23924d53087bd390424230093652251d7702503c1e6cc61554a168c39c3833d5ff7e9527ae6ef73a07108eaef325c35cb680927783e396cbacac6940192b93a0e3ec2fc4d63cf8163f49346a2d092f64ef9ce4a75a2c06f1c0aa933cfb46da64036acd92029d10e05a19a0f406eae8c4d176b613ffff071df56646223357257b90ac16ff051ea700fc66b5ced6619bd73c1b1fca9f4c700fc04788f3f5b805b3bf8ff6e0dad63c61044523374f0b44f247fa411095892dfe8b6d1af6325e7c4173a8e8ac86ed947783f8fb54df503a6bae6d3a5deb74fb408747aaa52e01b07b739f147c264993b97e44f6c59e1dc466c9a7cdd4a9b560dcb84698e19fc1a3420f078c4b1204e3463e7906edc2a41c5aeed839ccafb4fb98434684482f8374e6a76f9e92adb7b65ec52e02b382edf96dc0c46ec97258c5a3417210a37f9c48dabd2dc1b313f00c65f8c8f6bbaa1dc17f79ef28714e726a1a3c855c8c3d2fa87f3b73ce4b39bcc138bcea9177a98a7c8bf9a753fe4d14e52bb7cd872b6aa6f910e91075632e77485249fce0e56393fc19dd2f6a6541953b3e6a34d1e00c413a99a9e224fee0da6c3a014d36722f15f666395b8267f4192eb20e15d6431a2f245438fa5b548718f4a685c90c2b00bd737ad562c7f2559ed27259559a56be59bba61d5a68a00dc57a0fe93b6d26bba24c796b0dd422e8d528f2287065644e7eecbbbeb40b5ae4049a005943121a7124ae37026a08eafc11881417daae480f538d5bce51aef037c361bfac653c62b6274aa78656261880d6d3c6cc76ab5fc2561d268752b1b162500c7fc1b58ecc824c28ea9943a5aa0f3a324752ea9d11ce8b62a8e3e2b46cb6f7153cbe3356fce1a4860317102d315b0ee69f5798c694ff4a3c08266eb44244fe6b9f956b57bb47364eba976415112254b084ad24f7c15709357c35bb052d3d28ff231b79dee77f41c5cd02fdbbe6f5635b2c92497a57483268ab7c6fd9ff9e46da8a3e2f01569d9d6377ce2437b01a0ad61928432245fb5471407fbe9c72b9ba6744b4a2f205278335f39d3b06897d710d5fc5570fde0c50e3d81ba530648492054eaa9106665576469210b956187655546ef9c96088930c074a619f109fbee26663e39916d04a08c44684f68f23e8d2adeeb810a7a4406c668d5cc02207ba6cf853d792132f025e7e0b962c592b90bad91e2c03ec0a703373f534c6060c7702dc569fb5486f8c93d499aeae5d5b139899319b28b689f4e002ad7a197c70552d6162e09829aec9c23d63e54d1c46162ca542d5acd671c6c43a8d36f27ca6625b65d24774bb598722ee9e9730ebbe446ea9419422c4eae17e4412397f184c922fc1591bcaf0731ac29177b44dd1b8d805dd5061363d35a24693c71af798da75887e23dfbd7e5f66116089b92f2c21665eb26c6a072a3c3923c6fd873692cca612013bbdd9f568d168c441d645e21391f765c4145303b14764801b71b56a993183423b4f2c3ad308521fb9a5e510431e8df5e0990bf25171dc95cf08dcc8ece1c5e268aedf92c76562e847bf994ec6e3952d052d82445d5036cdd2a9c9e8a4ef5c55d79ed759a1aa4d5d8fe6297c8d91d6d85d899c0c8cacdaf19f2ae1ad8b2c40d4cb89903f249e792d25ac54126dedc8b08237eaae067f381442eba1af18b27f125dd8b44682ca8f604cda13d830fffbc203dda5dae0158b8afb94e15cefbef32c1db52a4e07657914995491ac3bff1151ebfc81e162f1f6765f047e31ab866bc060882ed7a07f263e6aba08c86ab09036775e5df9882dbe3b771eb93756b6fc8e0c70a85fee556ea63dfcd7df260834780ae3747f6c358ed097ca2b50f320fa686a46419c296a2e0c68d9d800858e2a822c283b7c55ee7d78ace683666ae6651f5269a27b11c494a040e7db027c7e12179c86355dea436e25ae475c4e3f4d5789e7006ce084668511f1fb74af68e1aab6afb6a8f00d70eccad0ac494b53775bdba1cd2e2a323234f37f82278c21b0893c993ce1248b6ec99979431558155986e0ae828f26f4784a6868d4fd32d1a10ca30f779e2c2d73f9a82de54752696f99b3363788f3bbc9d9e679f293cb03a0369011d1ad101a75a9810f76465225b81ce584712873f81a74faa91415919e4b5299fd51a87c9014e5ec7ecea8dc164522bedccb6d5513e1d518f6ec2017183d8834b22e308b10d29d67fe41f4a0619a759c654d4bf23642fb2de11b33e6d782dac356a49b0c6b057eca70a12884fa851913dbc29b5905c5d27e34c41b42014a3fe9c201240e8e249fb56f80cdd23ceb63b5a1aa69cca15b3a44620731b926a717d1355c84724378832b93c687a9614275a2ed0290de6901317a0164f9d60b934c2b80ad871f315cefd954066b73f0fec33b4ded139788f4a3c7f07cde01aa7a44542c7ded8b12d98bb5714719a186d1431ba07a2ed4da1777f784f193c57e087e12c480739f8f4274b5d6c29a6cf9f5063ea69550b741c3bf71082ca7b7b43a77a82e4b552e3808680835ed8c5e909b4abd9a18d9cdb79bc74c566f49ff6f4d206679ee1d43b8547f5cdc3fa266c4c341bca265857b1929a1ad99b75688926cc8658f5ae6bd0d103605244ba67aff3c8189840281ed3622d14c6bcc418d44942f25ba8b2e744779b28625148e1d1e7ee6c3040277f65194ed41b9a5de05bb0de663a3332863ca96ebc2fa6eaeb776114a2eeee86cc50a242fc0840c87564d92b10a96036fd48497ca0ed2b29b0a19eea2bff6c324c03f5f7dd7405f935c654d5d8c094e5ac757ab9ab850ce2e33ab5cb8ba9bfd59427f3a00ce67e7894ccccaa6621480b763ad29cae2a2423026e548e93077d51767ec716a935b580e5dc1485c5567024346c9fe7942a7b9339925b5b6dec6cd784c41a82cf921cb58c7a8cfa1e33108f20fb5eee47db41e90c14cbdbc0f6f9f01617b8b65f31669a92d047d1a68861096c2c3de95cce055971f7f33c4208c953ff9cc56fce5ac32628f8bc06c660ac3bc129e7e138865c0f17a3165697d8cc0594a3606f65022037fbcd3fef494e63dcdfd4049673d5f056ba02a323439efa343103e70ef7a1e1d6d80ea2544e6b06201efeb631cdaf9616b25be1d868d86293725fd29b9cc8cc7fc1a56d29af3b52ee129a7cd2ec3ccab9fa1c2582a3a4f77ad9c47e782729856fda4ea24ecc51440377222218875201c85acfbca75bd259af9ccebacf3ed51014758d29f8a306a098304ac528a43a90544ff396bfc8f4d3c3b8d52487887631900c269dd86496974f33c84d2cbbe23ee358b906232035933108303ed9ee5b8a48a5b76d0450f4631d6fcda3ee994cb5f757cb809381018954ad118b4bd8d44f647c9d29d453981f7bcb6d6d06d08adc163e82ebe9a75c239d5cb29463bbfa3a3b1491049e03bb0f97c6066e025678af232bdd3f46c7814e6b22be1e62380351d63f395f5dac4b789513c075e0bb6bda20a855505c323807e03b849ec5ab48e9690244d3cf7bf79915eb3dfd65c97fb1d623fb9bfc3e59a14d30c435cce00fcdce8517f6896f3fc66d68aedad7b3c0e81173eb8c5f4505d51c6dda72700dd4962e1c71502396f8384159ac4838d857f77ddd5254ae5c40034272bea5c11cf2261b50c99c5467a71f024d86591d47fe08b0a9a2ebdf413c4610b6bb652c8eff5331c004943dd2212656bb2127ef1306f28b1bfd92ca17f69cb1f39b124632d0cc708556674bd2127af2633f8e377c2e9364d4de0a2e9cbbc21d52c2101b22513bbcda5f04c3cdd17497be586c65c27108b0caa7400b370dfa13b87ca9733491967000914c7b21e2767dd2e57691065e4717ad9bcb80e1dc13e78fd03cc2b82e17fa50f9816b32b1c03afa737633d95348a27671de4686369303d12a44998f168986d4a51935c7342e2f06d4741dce067f4a6942fc6511bc4c927453214344beb4f24e4282fb231b40a45600a32f67ec9478c3223d9b45041f998302838d91f87c8463029a140be38ecd024548b41ccc4eef0914a7349a11943518fc71d85ee4293f8497114aaeda982922eca5a4fc904f40c74f5f68951a06537373774cb907e0618f6fa21ad7aca2b7a5b5ca77fc37da56e68a9b9a5e04ea66739c4361031705c9f79f5048c836b803412c50a5cff696ef324b41dcd9cfa1e1079a09edadbe1f2b5fa3b22d6f74943473c250686c1a6f4ca970b9401614494443b4112fa6a88256d42e53ad1addd3bfb70b808fc062eeaaac22fd3f07d68dafd329e6c9ab876226a10ffa78f1e8a89ad546b84162ea172faff5e0607d4addfd943cb38a00b695761a8c9534916f10430d158555eccccc05fcb02289f32f36040e7dd13699d95520bdb9d356661b3db0c363deab0bac017441f3ab010215bda966b3cd0db158b75df585de6fa6b0d1d62953262b60923d66744ab6dda12210434fde85c4a16df99e5d22064d1b16140874e67474cd22256a17ea4743b7007965b86893d2060213f5dd231f77eaf7f97143bd335baa05b14d04a354f17d334411c823a4a461ab9dd979d6630b8ef4ce32eacb88e585c51dbd2d3e623022b0755103c0a27042ce24a18b64c847664bc15fab1467262d7f82da92a63fd60f52e3e978dd58ce4072a5dd2da636edeb67aa6648728e0e40fb6306783cde4377b37d354ed4cd692315ea159ffe7c9d1ebf803c64469e6d2da100463e094571eda2e33813572f7fe8404891e6c0dace225e4d7fce36549a71237fc1b0361a992be2603006eb721c7b2a74fb32c5138ca83c9a29f6005b8477dd3c5e35139a3afd2384d01b1201c2d0cf6bd07ee4849c84c6c4050f947798758f115ea5ccf62b10274cdb5f01e55e2fd004e79f36aac8f102a612c744529b9171b0b4c330c3b1d07c3198112d178086375961be363d82ae3d41ac9c5b6c3574bab1b7154fe18c39cd0d3a4c31c468eae45f24a13652f8bc66192d9cc078dab9e017acd8e6743344c936a2bf172da47ff99c63ec4779455d6a7f551be6d84d4d7287df3f365ce2d7171e354e1f4facce89b272f693951394003be555eb83a8badfdf7684ee0b7f647bba157a89116b42292c391959460d32c858de06a94de3dfe180d6d7716dc7db3456fa889682333c758cb364c4888dca54e4705ad8128c43254bb7457af7c4117a6b69de626a83b0d735435485f018cbf8ec547ca9792aa86e6f6c9261587a419dccf908a1f3de6a664b338308c580cc1cce58a3fcdb068dc4bcd822a8fb294240f30a3e17b176b3aaa5309094545194a30bdbacabcd7f34e1ebb27fd54a58e8c561c9dd0f54d25823c81516321eb4b2c4dc2a3e72fdab4ed49f6d170a7eb805be699fc40f8dd638ee254bfa358ae105ffb0f5a344a67fedcbe4b3d7e8273547c99f4ca255b0f75bbc6749137e97e250e94938fe812d21541d7923bc99e9931111269b43a61b531a0157beeb6b5a610e7427d4d2010e35a0f0886f12d8897042f68bde487d3f82f006086e569b033ce7c7c0869b07f44cf34da36686e393c16f02ca58ebb814dc5369702584af2e47641fcd20ac2cfa81c1da3c44df0e2462f68d9b3d88cfadad330e75dc2a5e67a3b200d4bf9cb6d40b125368106a9b273c12302c9a2eea39abb8da85603eb9614d933b814882341b21263ce2c14712256a9c88a2136d48d42a886c6f95ad4ce2b769e8e296f0ba9a8dc69e5cf9b158bb04eae415ba4379f53d960886eaf4fbca618c327fd740e02d9078c20f1667f88912aecf5dc26718fa4276802f128b8c0a812bb22368be9463d1702b689fe46fa33582104c32ce792a1d7c7027c72e89adc68f6e79613588c5b21de3ec3890652e76bd1195339d17fd2c7f55931ca6d6f4cf36a6da12732766413f343b825b7eaebbe7e944e166752c5642cd731e5c765622954df9086139440efbc14a1c1a4ca5b6a8074949eaeb9921c14d8a3e66a424fbd8ae7d5641567970097e941bc6fb52c854fd3043ab3f137bce27694d34e3725c8f2f3d28656b62e68aae35f838e4262f48bdaccc5602a9f408742722e8962d1a60c432cccbeaaf9b28d422e93f159331ce47b4d3a48ccce3f50e7003ef9404a999e52c0b8837c0246d01744b85b47eb4bacf532a2eb68f6e333d4146d3e2135519c354e44a115b941eaa57322f5495e626b3494e53bd7bca43de753f4959fa7caa20716536c44eb4c1dbdb76517df03d457f347a5bd0b2d3dd1f1338a254da1477dda7dab4a67689ad181e4fdb51d843ca2a42880d4aa3eeaf48f90ce6d8e8182915f035a26908bb561508aece85f182d1abd584bb13c858af8c1c32fa14dd0d4fee7a5a8703ddfd7a672b95651aa70134d623338fccdbd3f51a5eb6f764991128191c90746524f7eeb56f1d695453026e20e2c60b2c8bf7f0b11bd8b42309d131267ecc7a975f55d9ec430dc721510a38cbb2a00b94a3af705c097f26e7c4304c70dbdbb8b9087b6259427ae47b1fb205c4e3e4932e9bdb9a3dbad2617646a82ba8af39a3a184206d1cd88833eb9ef4ee34a68f2edaf6782511e017638c32187faf93492e7b6e01b3063e70c3e1f50de7c8bba0f6a15ce904431b080968f69e10c5e9315738ae030a7e974303b99787d1863fea97c732373ca51b4b1c36fc5503403a5f5e5542a2342e097fe7fd8fced48b2b8402798ee2b48001ccbda8bcebaad5585669aed4b498e6a6490da28bddaaded2b588294c30e5d27874d6959c1f6813f2abbed091ac1812a9c78e40eb5178692155b5c08a149133c4d03ea48fe74592054ba4a070d9fea5354d55a7d86fa9d6e743ec04eecca6b062288e01bdd6810363e1d75ada643f41258c7eb45bfe3cb01c0404c003010683a4a34b68b4bf5d1ee61258feab8b578df351da9497513b17b6fb2e5de52a624536b0716071b0749add3dddd110acfa46e0fe7184e6932f56cead837da4b688c68bb8202c11584134dcb05e5e582e27a7224b53961547a0e67da43bae585601fee0c08a2093c84d06f14bfae2753bea9d4302625c526bc3f06c5b0c0203f41e2392a81b16d8ef48db121e4e0a85a9575a9e1aa480927994828520a6da9d4353869dfe6c067c33a5c2bf5b831320b1ef6effe662f44be83a12ae73d0c4b4adf6521f15b763f7271ec8e6efa42e437281d5c1c3c74b6670251a7bd974975836f300477ec4e3bcd96caf4eddc764776a279b40959cf7c81e8a3a209d13f6d77a2f4dda5339b3ba767eceb65fe9bed66ce9bb1532f4883363822d435b239c71851bf35c71ae5ddc92437b1df320edb28976d1a47fb3714a76d1b87e2b8ad53a17d511acd36e24081bbb34e5b67ae87285f94371de5024acbbc497ba4dcd6d14137333333373703b1ad6743536d6a646c8c7bce293d7f8dc6f88573ce89c9754cdafcb099dc2d846577638c2da758a5c531250d176ce6fcf53c30e9eab0dbece27840c639b1c9c36a972636a5e61a1960b08c0193c4874e050c13e90273e4a5fc40a2d6d1362d5f5e28d717a7a226077fbe34e580365c505e5ebe500c0b15642193831aa8503a9ad23118c0045ab69812250b235e3674cb0693368694524aed88173b78a9491db8ca0d5fe4804d97920c99745111f3f4d745e50b174694846e20a34910cabc645006004a5a4a29a9bc94524a69e5d3240e3d4cf1e249b3416af306894d8d0a10369a5f972b063f7f5d2e25ad0bab088c295e8cd1c310af222440c96a5555ee39a08d9803dad8c088a9a16abfae265e966affba9a68f1a1c750e7afab49175410ae26574c9903da20a189d24bb751491a9ad480f31cd5d1734a3ef415b6c4084f95254934f460c316621081daa870401e569c9452caf052d6b061c50f4c689aa66935316c112386a120235f14b1650745ba68eac264acc061c98a18603307b461238a2c2a1a5168f995e728f124fcbaa230fad0579226a5bcdc5005cc114ab872184201948c39aa81115b8c94896285100650c69532420082176348312508043022a524619d681882a18099a4605b2f4518020c92e081d11141f0e2a9c8c88ad017a22fa880c1cd8e2b4e961842073165e80084295e34b1610865305164a90b4bfe00a7071b18c5e084183192680289c53e78f6aa62e7294c32d87278c2889452da38e1c18992976ec37f5d4d86f0a85f57133278a09152cf8641579827ee4bad62b8a81b0e5c61a8708549728599011357981d362aae30457eb0e150bb2e3620d411ac4025551abfae2d9eb052bb5fd71646bc742501866b8b27dfbfae2d9c7c589d896d73c2ac6aa9fdaba5ceaaa5c6aaa572d5522507eec71cda258d25e2fb53233bfc8c30a8cef30b7dba1e36ba1fd04bf51f7a423bee82c4a6c141edfe429f6730fb328120026f7cc8cd6bf74c47513aa5a3b676944b6fba07846699461980494fc1943cb2d9d90119470f77a763b3654b1878cc8a8cbaae208e3e540551f42155e1809aefa3bc62d41332e2c3d23ee9439485fa683e73cd1bf2615147794246288bfa900f4bf36dc8bb6ca79e0ca2fa19c4900a07b491bd09528f791624fbf9b95079f0fb39b9994e64955829684f8194ae812e53867d7abcd9cf87f4f9616059f2eb06635b1e6e1ed92c7f85c4e71e5ba6cc6f7c666620ee1181df8f088e9a6ff7605e7be6f1c0bcb5cec1ed39d13eb9e190c77c9dba00c48f7d2ff4afd7bce491cd3262182624be740cc3b0e901f13b91fdf94c525f755d4c9edec5e4e8d9f75fbb02b7582e26452e26442ea3a79bccfb26fb5460f537e4c3ab06a5b31afb1d52b1da31efdfa1aa42f6fbbdd09a017e3f272968cfc1b2cb94e1cdc11a8800abbf6d9d65703b8b2b4ae69b966d5176fb349a124c1d0d0518b7ad20b52fee0973051be0becd37b00e0022d420fb447dc57c102b88c5d23f21cdabd0e6db3a28000ca106d9a707eac77c837eaa10b4a124d6f560c063edb38bf202633dbb5b7633f47b81833a93738a9b385d2e31b7c7a5255298b999dbb7ae80d89a48f4028985f9742391158503994fff6e12f0621149c08b456996aa776b1ffee05c4b983cf8eb02828c0b08307e5d5c20d9f975fd8083af8b23fe2aa9880829784862cb1856fb0fee235724755d3f5cf1d297a328d9b67ba260eefb2bc813a45c21b65aad16fde2ea48898267fa1d454e29bd28b39b52ca0d0c4509e2f32e801fc4a29a07896584a81b8912c4e7815a015e18a403634d6f5f7a21c330bb1e353f2dd0df8e75d78e512fca0b9c75379d33d9f702ffc4b04f622d7fd8a86f95a49f4c397313e2174aa6df2ed85980889c3c5830bd99aa1c7d7bd077a723e8dbfb0bf99b66bed18c7a8645efae02f38b3650d99679640cd265c8b43e4897291377674ef656ebb32f2e3857f002f390add6c74f08e640f48500d59f1ed784c91ebfbd5dca17300ecb3cfb82f407619197baa42b495c92b4480a53830fda0e8c6ca81edbb58485942fa80ccbb439bb286a9da54d029151abd5720125fab592840c11c526866118a6b95a4a1ec360b0648474583246107ef032e6b130ec544488c716104674f9f003158a4d8c5e216a9da523f40f0d4fdec41619142d2886a02082a2687a966559e6c36755556d6ac5b0225602927972949c9ee5d10d9670f9d0b30c9bd273401b4252a86855559b5a2546b76aa3fdba948e7c587d32d1aa3ce84147460d6dba57d7eac6e8c690cd5f74b126482675fa9c52dbb32a757ee13649e92c6677a4cbf6a49192ca2eb32cc3329ad18c6659967db2481acd5c514359248bba47b2e40d27e5d14b8c683ed96088b2fe45faa2e2c451c54c5b54887e3ddca5c89dc3addba876b9653f81e5e71756f0b7f2c78a1dbbd90929d81727a0d0ac8b7339d1456c8ebd2f06236fef6eef723bf3e4c99399f9db8edbbbeb13a6ae2351d7afa87c54d7bb1eea0d8d0ea66e4e0c8113ad8f31726143816dd9294cebd9b50328cf1f10ff09540fa4fae842949416474c61a9ebdbeca2464f5da9de6da0bf1b7679b302911bd6fc6ef8f3c10a6205b1b28f2936f1935214d31a22523a424a526252b50e7f345c28b5640f58f7c365ec0e7bd864ac095cc473f7d2a825a6546575d8b9a908cc0766d43afc335e6a288ddc08fc10337237525569443f7ebd3e266a7b8811f19cc14165f6e8430d31277e550619fb22199b81165f31f29ccc2846318ab9f9a35a9dc1a2fa1711e3671775fb38df3c88d579102bfaaa5bed4ef4f88a4fdc8ad1e8082949e9233b7d64311f5ffc34f4b12895a5ce5c5143fa9b97a2a26edf0df71131a18b95166bf32056108b3df6e6754054160aa926ab150a1f35d4a6793ab647f95639c286df4ec7f637d3d997698a57398391e7874393e555c489ef2ffacc0d2af37480f4e992729579b45903893ae75785500f0243eb51ae494f08507dd9fdccd9edc83c1396c11a4b35945f51ccf560db9c1b3e37506072f4b17932cfc993b9e5469b366ddacdcd5e7f91c90785cc9829495390a2d1bcb29286070d5c7e997890f2f30b57ef62a20926a4f4512da3ae6b09321f765112a22e629e752d91e4a3b792d8470d6506358c46dd03763e542140f59b8718ac09d143b009264d289932254ac1d8c3302ccb7444dad15a77c13082dde9e074b4f41c3cdb658d2eb5bfe9399abd7dcc67f743bf9b1ed3d9d9e7c731e8dde998cef3c3e12fa757333ac068780c91e97aa899cf80a972d63067c7d7f3367d8381e8dbd90be3ab8b76277aa7a486d1a8a8a57934ba40b3b46f570cf6f723be4a18e26d343c8e2861d0d5c4ebc368f4b18b22528cae269844291fbd8b28f6eacca9cf30e89ffeb0671ee605f13228fb03c2e086ab8fad84c155f7c41f5627ba104b7c5c4526a336ea19a71a067dec78a8db4836483057220953a2a8462a2941c50c91126350aee2c4cf9ad8dbbb5b81bfd609877cd77c0c22808f2b10f31d0e41fa1f59d326e697b65a343c507bfced7aa8bebf2f768c9bbd88588adb2a94f04102c060c660ce8f8f22a93265ca1481654394d44d1caa33283787411aa2229ca26fd7433e7dba5833ed0ee6ce60671485cc4e0d683e3f164cd7be1c7c036c1de972be740921f4d2e3d06cadeb28cc4b9f709d7ebf0871530e124988264f33cc73304f9803fa609ef0060acc13810f77e9a5d03fe0439c0f7d5e625efbf4d83d07bc8123dda8064bf4ee67e348ab2cf7761329c9cc719275e456a95c655c62b72ccbb2e99d61986318867d2186c5cc0b390c5b220aca5833229e7cb76f29246a749b248a7c1be0db51dd4f53e6498199190521869620a1450ea434c1457806330d4b9e9999190928df2e291257bedd86072d2e295ed4f876dafd34187568015143123dd021072dc39125d911413cbb9623c6f83c3bb6557434e820ca98c508323a443cbbac5cf70c56bea5777777b7cb08a26767d4d014323830b2238e304d31e254e50609e46094650709103db990b840228116bc6c543892064c5413a38db8a8210c09450d4d6c488cc678150d946c5438ae20c478f9eb4a020ca7a6a1295953cea6458dddfb448479427008838b433abbcef6ece0063c7b7966a32a7f7fa46077d877748f0aa20e3be7e0a586e78e32f01852326477587e405a6090999999a5f8528deafcf93173a5621e356fe721e612b2136b3197a616bc2cec8b5f0b3df400db433f46f229f9f610c767ede102bebd1ad57e21f2431efafe6961775a4c0c26d30ea9c4201383d3677373734f2f1229112d2561b0bd88884125a5b8d4c2163b4ac4adb43b2d250989c154911a4622249ec66ca881176098660ba78cd41d2d84477dcce5e723f3b8c4dd4ee3458d4c0cb6cb2f2a31d81ef250546ad7b6272ea5ffe57700b2b71e984708ca39a76ec45951fa4b87f9a4efbce6bcb82644df3c57f52d3a207e2fd0afdc03287ee63f3a4dd3344d437d1a55c50ee2ee1c6c9b6382b9ed4ebbb626344bf909910e445fdb9dfe613781f702bf34417c1eb2d5d2166c6f9f3dfa650cd22f3fba3b7dc363bef4f93fbf190b5711423af6a56f0e33f8c3607bbbb4c1b6399a5cb994524620361ad4c80282b5ecee55eafe646b4ed6267da338d29756a9a1bf6b58d4964d3de594435aa77d2275ad1ac62f4dbb63440d572947d434a21ac6a6a421dd13370e3d1119a20de15239259a6153d20c9b72ca293328358c4d2fc43d7129065d180113850f2d3247599a06d5abd56ad160448c6eae6a38786e6a3d3b3539dd7c53195a54a1e5390bd79627af7ad6b2e4d987468d235962b65268f1edd85661636487387db230f976496f08e207658cc4f8608cab8d2c938f0f668ebfda37b05cf976aeb3ecf0ddbe452a9aa5c148ea091554ba5cd1210057a4d800cb0ddb2bd5d0c8b104adfd5595332d5176d560c9f36b8a17fc17cfee39ccb3cf5314e19977c6a015a50492ac889206450ed811e58264fec4c0947de941166152104106fd33c3d364dac14818362a19907e6448629dfd9056a61e92fc083119f1829f22435e9c6c543834609aa9e1862447434009338413ae21aef8d07f552486dff670b56a5ef1184a9243ed7ab41766ca20f3159cb10f611e21eed92cbeb0af40f4fc92a2685d521409e0c3659191595720ba00665c01c960e661fcec8b99f496b2c3989c988872d0b1c3a44fcf85b91d8fe8f443e1e7e4326cb2185e7289ed62125b892373a48d94986c0ecb322c6e1832d32486a293fac47c17fb309b4afb892dd5458d55c69591e59c2d838d8dcde2e0b7e13caaa2474f79a90b4edfe9b139599b2e387f027d63b18b907229875df2527b7ab7d7d4baa02eb8db1cb5a0bdbb91599873c608343f7adcdde5311bbba02e09a9dd9aaaadd3d505b55d82deac9648e49c3e59a0fe32cbbe70cea640b3bb2511765725bb720c52398bb86ec3d2f9b679646ddd9639d76d996318e5b62c433986722b4f508a4279e8b35a9f2aaf658e510cc3be0582c61912b193ce3f925be89ecdd781740fe7280f7d2adb705f88f35d7316874639c039ea83e146039185f2c8427d431c8bf321c91242b911ca8aab00ea9b1759dcad2059dc67a4488a85726651cc23eadb5500e5aff29a5b79e231aff29917997dbac7c767b502417795aab7cad3202a8fade4b81d67a59c0db11181210abb9434547d644a575d597e41c60d5a2c9641518bd545557da4dfc473290aa21ffae840b1b5a552f0a464e6f639e7ccbc54179a9939f3ad665f08e43117da65e6409e7b4a6f7a0331183f20f9d837040852bde9c1ee57aaf75b4568ccb7db50c30502c43c4388ac28ad2a953b08ae56ab21622aed1ea0d7ab22098178d917cd13e62fac7163e2a6ed18d536c9c9c53cce40a5437612f96e23b6df95524a29a56c669eec5106e59c524a3228215c495b2af6eb721df161e5a6700d31e5ba9e44179118b1a394c2c767716464ec4ef45893626f652f1b1df8e4e81ddbb462f6b54fb115877ca2513c8a483149a9c949aa16a1d2b8cfc7cee3e298711acfc1130a1a9fb129f9ac4f3bdbd0f090fefa0ca7e1d978ebb3ab5f5f9d755943e3eba57c464dcd07843d8d73a783c669bc983d3118535ef6f20c1083ba23049aef64c859ecebd1516008f0ba1b206e06b8598f344dece1b04e9c410d9969780c85f1ecc53cdd27c730189d260772bada31f96d5bcbe9a9e9c52446e94b4b6988a9c849c999767d3c2f744a6bdd2dae8705e9a74104d0a930bf50f3cdb7efc6515e90761d8d01614f3f27fb65af6c0cebc4f8345464af3fb2c4a7fbcd9ae24421c9476f01887b56cb97149044a1f80589c96f4d607c949dbd9827b4c9c6304fcff0f1667d7c80cc0cfd3a4b43e2b09aa2ede50f5555716ca4af16872dfa6fbbdb1b9d73301106dbc7af7e3273d0ef8f1511065bc7b639987dfafc825ef3ad8428342ba1881ac697538faf9e73cbba9f49998b502a3be5ba1f27db763f32eb32b0accd87a8dddcbe183bf6e8c525069b881aee13a651afc72742b19113917c0b7d5715e8abf985a0fc92be9d7d861009a232a97b139dbe0d83219591dbc1b639dbeefad649a9eb5a22b302f3b80fda9479e63e59e6e00acb321b996fbb9b7959c6be3b99774fb2ce5204121be1f889eed43ad3297f4fddddddfd45290caa544f4fdd138d589de973faf41a1045a4dd99461051a7d3117b189fe2537c7a8a43d1697a08fed1d4be2cf384448a7df16977a66b55d41947d490b21185b24d1b0cce39e7d640677526b83bd3a5b3f00304b135c6c70a4d54e560f77ca00b70b2b03bd3e3ffb26943355280f32637e79c4d89a8ddbe69393da7e654db77b80fe6f1b183418c8bda4e0106311fcc83b90f0631e76ed5a0df1ded8379760705ba1fce786c7cc59cc8ed689d88247671f322120631df4131251f9fd52a0441fa85eed917aa5418e639dcb32ccc55388eb94ff72ccbc663a1ca732d91798e796a6cd284b06d0e73390c4e27282f01cbc0b25011f5c59ce9bd4abf01e6992b28fd7420334c8e1418dcd9dbd3e70453bbf8e9d9e76377a63fa9ec2d198653aa42fac1a044428a48dd2382a49731306d33a04491483212750f0bab135d0c7d3d11818079a44b6741aba27ec15cdbe648a9f3ab23b51d7c62cfb2e4929897ee433aed171a7443b8969c5eba7743d430475b9aad91d33d393ad3e12f3fda1da5bcc160af186cffa14adf2f9f02f36c1460a07c3b0bddb3ace5f2ed2558a9eca14b2868ddf2dd735c21beada842a68b152bba40f104fc4ec08bceb0526ad2497bc71d32cfdc4c0244709a5966962c3166995966962c185df29931a3c6866d80e08dd5aaa6c686461c1ac18810b0905824162cdd58241689058b9c554a508212d01063cea6d9d441c042629158b07463915824162c5129525444c2e21131861149caee34143a183644a31fc684c4269629b1c0229689833a513e3366d4d8b00d10bcb15ad5d4d8d088382a159649022c134b1c01896d73426e6751c76db1a8757e9c44a2a3d6895c1546f3884c8d9e8323d23cda388dc89027a1562b22e9e210d77940ddccb62c73cbd2b5b062287dea54a81f91acac0eea05ade3417bf4d32feecee414971634d9b03db368ce17bc36a40d6947f4b538a6b3d4868aa6124a863eadd0542bcd8c59c43c9a43cc8d48514a44a200d28e19dc760f4645eb797474d469515155f8cc985163c33640f0c66a5553634323e2a85439ee364c44a5a144445a1d7624b6873e4df9795459a85cc4be8964c84a0db5a1210d09f74c28f36804f3a8765bd7714d349ed8babb6777cb962d656f9518bd65efea88d213ee5df10e713b1e59486597d270a0bcb954126473727163772867d9a1bcfba2721dcaeb8692d29f5948f7a339ed50de955119cb32546f43ceeabc2609f7749db775eced9930e8b34d725cc665bbbb7277e52ee79917fee0382f3eaaa6552354a3715e4d8b41a21a21d661a29a560d370ae5e940755f541fd46bca8bbfa166bcc63011b56bd570339add663463cc8c578d109fc09ea21fd6b46a5a3544ad67af51c23c9913d524611eced96b8a6ad634e335e3a579f2eb8c373db3e66d5f3d27a9548d66437fa3c1655f3d94173d8975950446692a2e7ef59c6c9eaa297af699ae26099fc0de753ff2ab212253c3cda8868809f3600ea5763a502fbb326ab819a980f3f2db8cc294d177b619a9105f3ac79bc669f1f726dbc5a66c8d6e1c2bce4ce61ef72500e0a9665a5e48e6389f7dbb3bedd1eb293faa65349898d154a6629a369f1aa58452437c42d7aaa9969612c2b0d41083a9d68c31668c81a130f619632c0ea3eec95c1a15b50ecf9b18b26c358dd28cc3bc88426998f4f5288739d9bc3d9a31e1138ef80476b26d5d336190a56c97de8fac293bca8c184cb5362223e6214ac23c982b49b516c74e89d9a8bad9df9e93cda927b332354cb5b8eec7c996d10d531cd7fda076b50e5bcc0f39443b0cb4976ab553c68475f8cb8c1864c751aa1b11a33477c23ceca3978551b1ae5517f5481ff6abbff07c7d7bfb1b51aab565a9d6971926a2fe885a1bd146d47198a7cd7098477f7a290ef3b29f9e879a584635d4363343002ed84af0cdc9e15c73f6341cd77ed850d636e7405f52fda67afb082e696a4c4d39a1720b24aff3ebd2c197df683890eea9b13aebebaa75badba97c34a5998a92a0a224acd7f0548dd5320dc3b039b12cfb280935bc1b2b06a5d3f0c21f287cf42dc16b23eacd322869eb484ff98cd32c49faa93cf3526050aadca609db2ca99541cc298318095e3dfe08de0d093e82d3f06df332d73c1ace79e12ab9c0cedecca2da2c3d331106a503910be4867a83411630df5cfa063ac03c9c97f972d69d6fdd77a3a3db3ce8352f94210b5a0ddf4ec78f0f39e8d9fbf1280f687e8d6f01395ee591e009f9a9de6304a73163e3d578a12a8b495e3aaddea6d8673c05de56ddb302eb4897f206f72c8be68baaa15e50c37d819f4f51c37dc524ae7d7128741d34fd72f9758121f3dbb66dd7835d73ce738181743f9b77ae79dce61df785ec2fc4e77cdd79d3985dd334cd993d2006e510c99cec7e2a0f15257d0811f6d88b490cb26b5e07c93ec33222e60983f8260342bf9fcca503310fe612937304a611c605060ca63a9d37e9ddddddbe5e9095eb3b1aacbd5d60d6581b60ae7d21a5fc852a30663456ea0df529a5d43cc99ced609ed960f7f0581df62a9ec180ddb32cb963771864f2f2f20b7d9e5bdd548b5086b2c1d6017576a70fb0009a2d4d50dcd0758ef36ef3056d70f754665ad2714b688c48d668183a5854ffbef285ab88491ec418b360669ad16c4ac6264b2925c693b9fb6129254bc9bccb2d999953cccbbc748b8dbd1bfbd9ffecb5528dce547a573567942ca594734ed93342d41871a87be577c6914f57831abd2586459459763d90858afc214a6e777168a836a4be9cc58734c2c8c4c4e013d54822416bad5425552a5ff9aca28f8c947b683333ab987906183c33333373f9f6eece810fdf517cbbab6cd0ec0c5c84581c3868f2ed5200b4c6911a02804502b468fa7600302961063016074eeca2051009f8ce828a6fbfe97eba7a42634ab041162d40e10634f8f61a95060d64bcf876a9ea7e9a32df8067985986309e9999892495470009dd4f6344d840079d6766661fa1fbe14e480b0dd0498c6fb7e97e5a55e48a9a053821e100a718be7d46f7d3aa2d90fca0ca1128925899c286eab4a4a68eba14b185a6fb61ec490d2916313c008b27545d7678769cea0898e28a1fb608f13a92a5069aa1279b9ae20a259e7d2648480a27a7262172e892c391118ae0b05ced6c704510339ebddaa8703c07b4b1bac1e5cab3733e1c704268074c18d1011153865243aedd14b0a58c2cacc86205971f10f0bcc5cab3a3ba1f5e059e3ea8c48d36653d0a11d10000008002c314000020100c08842291402c20cd4171fb0114800b779242765a381287d31c876118c518640c2180184000200688313544c441005698e0c6b33aa5cb3dc42b0d2e9319bf9412f582b028ae05add4b65f46f1dcd741ba7500912cfee1b48f2d60f5e83360c5e7cb9e68c169390e586549073e5f21dc83043ad8bd2ee6a5176725a5153c8d378dba9231fe284fe409715195308128a6cf96924b2be48fa9470c7a87915e34ea3ee4753d3eb0aed907bfa131d6537ad18b78d5a02b59e347c9048f105a9438fb9b528a09ef15642e82d1485620027a574a03063aaa87e6688d6a34e5a2602fc4b30c080f1ab0bf205e218a123203942223b1930a3aa1d8c44802264dce1e9e0d8a3d3b5c4297509f2ec43e1e2cb8732d0e324a898a877db6cd819fa4515a22ed37b3dafffc972937452bae41ae0a9d72c62ad0310ade9a29153dbf8a54faca692c2d8f5902b2d70a8de91ad2b29c5b43a977031b71dfd2b522f6a3343c4bc0d5e26b5825df4bbe68515a6715b4d581f307d1982e0af42718e02c5908d58ad6a10664499a293cf3ee3f56b1b2f4cc52381560c5922e9cfe07a60a54287e3deb07829e6d9d714fe723e9a297631cd787892b334e94e40696c1139597406a50b80b9cd47bc83a958480d073c51c862a2c4a45c97cd9e2706f4fc6d380f73a169b362523724eecc48a38a111f8588c4b4abe605cf6c24fd94eb3c130029fc50011b6734bf853935979254c8e4bfbf4fb345287e9b8a0711fcd7e8d7eb1219d81f00b0c1eaad288f409c56731489d680745329ead0553efb7cc72b52eaf06f65d4473b821c5ca9bf4afa23a839fb2320e35a91e2f354273dc833795954476a8cc24e5cc9c3541df169b6c9429cd93d5d6bf85ebe7f07ee4b3f5721d79c2b1b28a614073e5de1fce7316922f36e89b51dfda17880617a953d36351fc4211eef837fe54c560b33d0b78670e57e143bfe8b13dec949b1b53e9311610289059babf6536294d5d0d4c65af6694074561129612575e8fd8356479051859c963e785c1293e020b16c6f0b6a23455c0b9d08f886b123c230803d5cb1d51d7e926c0954dd47b81ad86ef383b5a2a86a0d326f03031870f10778fc20d0d880c9a5fd17ff4b1309388bc8b8c29f164b07865cf847f613b940d4c227752514648c4052bca7af36d5c9a3735d3aa1d8a664aed3f2da4e959c056855f0315fd5eeca1b5693d5bd02ae1d74237a35d5a0497e28f0eaebfca4eeab72d41fd1378fc9a683c0f243be1de9d7fc17f0e9793e64cd86322288149a552b98d34ed2b2441b9af7a9199cd39042e3b98932d37aaf004f7a3b4c7f57421dcb32ae6596ac84a6f83bce91768ac6ff98ed351a0616d9aed2d2027c1b37eeaee1a186a34ed04802b117bc8beeb6cf5d00306b344174299c3bac90cff12e5b7ea80616ac9412d91050e2a1626c8ca50fd254cf6344f03b072750d7350e5cc46a474739263243d17c7e64a556debbc9875ab8e79f265a4109f21711c2c23561175aa5dbe55204b60c22cc722d720308b9ddcf67162b1bbecda5e64ea354176dbd18a25358f76fde2c3af50957b4122014534d1a23a4b4df20b7e36155eaf337df7d99c5dd0900343a9e5631c668f26b2566fe67c4d630e646b3e3389158c768835c08f733d034c9d7c30d4c04a6d088f1820f2f5930f2853e3f8710f7ab23bb7da8713b60a7936454c8985a766dc4b67ac4c064a0c3307bee7528d31c2ad37117ef470b54ac4e4a4a29239d5b47a2e52132ca2d65755d4917700f6d038b6e9cdacc136ed7283bb15762c21944a2d0e6fd8d62582457d152eed950c51e319032fdbfc708a13d54f340ac87a0504e7575864390ea752cf5d9e0eef0cda79473ae70cc9199e9aa0ff1be854003f0efd3aeeab92baddd6d84b4cb7ebfb63e9a5d5a057456d3ea11900b3d6126420bcc1b1b233c49714584d7fc42a6835a3a17872cac20e0966972722d5bb57e0f5b6f7555cf28f5ba79b718819d9e075b3532b23796da420416e6925a49b9eb11868069439afa97fdb679943e071d8e3662a922b4292738181db779aeb4702276ef77f9387a3cf7843ca3595f472cb14703132c904a85d24c83e8daf41438685881f87c60661c54623e69b54c89f336e00205b93431a15337a2110d09e8d25f485d8040139837d1b975a87b76ecb64f291ebec039ba3d01da00cd3b06fd55fcdbaf8def5c41b7a5f31335b682a25cbb647d92022a6973a73d01fc5fe11a1faaaf6dbfc35c390561823225f4a884fd732782732ab29e45afdad647ab3b9479fca70cf21fe326a2e1222c9232558c2f60991f460a04d9906d369b2199698f09fc701c9d4744b379304192faa60d7c52c68b5e131f73a3ffee16ec7d18d1ec94fccd76ebf72abee30a64b5744a0d55b320f0bbfd4f3667f7fd85636e236f5bf9f4d02521399b41b6a2a54b9c670cca72410147e8fe90a8a9d7e89e7b43c4ded644a6e2e03415a54040d8283be5252a45127b0ef4fb7a95a4d2d38d1b03982711e4b510b97e22c238a68bbfd25d0a85153fad251bb7ba76b4b0c7b3377535066d5ebc612853c618367f3b28c1bfe26f334fd30d96feacd75a8266ca9fc1444269ee9565f10696eb9119c1fa4190cd72c3299f052189c9dff2f7735720c48992a173dff4cc3d77fa9fa2f20732f711b31d37108c3c4ce4434a9dac8c95dd4c26aa5ee905457f64882b300846be113412ee46b85205eddc8ba08976caabf703d3ce8290495c7541474772c2da76014756640c45face25631d16f1311334dac102a9c9561a799be91f80e244bec9bada064efa309a2ff208beb956bf2ec423a433acff14aa74efa22293ce3dad979504d031e5fe2a9ea84be1caeba4467cc67ff8641afa963fd097de19cf64d5480fe462ae9443334e42a4d08f73252833bbfb9da8afa2f2a6b86868e6d3c2dc65e0834b0d5b9a0d52450b6bedf28b0329ef9f1c36d085afdb03a33a3fb424a3630bda050fbaa942e7fc8601a3d1f24f85ebc000120db80887aa6cca2a3f5ddbee2aaec431f48ad26afb29351273f068dec1a80e153b8c80301dc2cd9a1f5ab92491ac6aebc7a459e68b8f91250be6e42df3a978830c0ed90871425f79a879ccea0b501634229cb21a985ae00f656db127d41fa291cac9423ef86d1da25004f4d632eb8c688b7398b492dca06cf0e65692c79636bd41b593dcafd80a52f20aad6ae69dae1c32db6f3c6f215d6d418e3d82c10c6f7176a47004078fbf8382d6691c8188eedaf7560eb2a97223477d02afe33e9da6969fce571ecebaf860256684368f4f236759bd91f755cafa1bfce1e633327a8533b624854cd55af1dcbe953ece624fba5de3168e6f0f10e36e13b380d3c77cca6e589c8a2f51ca0e6ea70148984fb637a4b1b7d66f065d7f139b5736ef53eab444f9dd7699b6b90ddc7aef141d7a5ad61c2663e68ba3f21ccf4c6443d59af9cccb2c69b4d0cf595910d9782d1ef2bd144e1f632ef606b4766eda86f768eb6f6b7e857548d6d9c48ec2851cb2cf09ea28e9bed262addf63c170dbbc0ac57241c31b72b36b2121f4ffb5c1a5d7ad6b2026837c731a77d72951bbd8ae0db776fcd5022b2557ed22b8112b4cc5631df0037f5eebd235b1efe56709d8f369eff715560e4b2a1ee7624b64cc1bbb9b487e523ada1ab2e4ef2c92e627631d32aa4af5dc46ea14227ee92902fc61470290f3bac6e0d4c25f74c523e86ef77cbe8fd0c28b1d64cb3fb4103ec1ca02b3e76e87fcdaf228cdead443823d89e6c9405c23fae75c0a3c7ef4ef10544c1cfd64a11a2f8c348b95c95bc49e929825c6979d33f10bfb627d9e6c1d47fd2197aaa53567c2e28efa9970683902b82bb31788ce830cf0ddefb38941edd5a57c1f04313b1e95e6074883c9292df6dd9b846fa962f4060d03095bddbe3fb1c7b18ef29930bedae2f0f956715fde037f0b9e2628dceec73e77569a8a1fbc6f20d75d6506ede4832e86754a95d6721165927901366cf35205b1b407d0a648a2e16a214183ea4ce2f5ad8bb1c33a8066eef3d2fa0e72e019a9e5f282c269cc1c4327a959c48dcb1512e8dc2d73cee99ad81d9cfc28c6884a76fc80458b5a5bfa8a3f50fcea49479baf5b4465ad6b48fa57b9fd3dab8169e28e4c42b24bbc7857096520e69348a6be8e984afd2d6cf7ab439ace9f77a8886262dc6fa5ba3f5532aa230c21e7ed83a3c91c2f7342eeb14c68782b6040fa6128690c005f5290e5aeed1a1427c423bccc2dcb3a8c8091c12babda9404b7c84904c9d15dd86201deb246a0f3abac6421545d839752c294c3f7cf2e7fb1fdb45bf34cee68bb136bc50c94f2e3c8019e8456d05e54b5722b51f52f75ce5e6994dcb98d4e996494ce5fcf3a98b87ccf696dc204ae1fffd5350818f71aacfc8b13792ea9fc568603ba0a6a7573c59a12a35630d8a1ebec439109d02d4b6863225461e53cda6ae8a3cef435b1018da31f4fc593d1bf30cc626d49b4493ac8f4e8049628001f044fe9ce26e3a8ade88bd5283c5357c00324bec0c3984d18f662ca8cf77380b931c55a0cc5cc975ae19e4dc7621c836ba72b3862f7435b46a301cf53dd22fc1204f773df9690b6418c10dfdbc202c4a73da8adadbe9c00b7cffd40bec32b4ad4e70fdcedcf159a9855603176174f9a788754cf7a90a217bb70e90c79407c32f121d3c380c39d34998bc9f75548ca2e23cad8f7fa64273a0d21c83ff4470d20384ab53e1b4e04c6bb596c95e8e3061863268519c952a67c55d0ffd4a776004dafe6d75b48be477eb11984820696655cda5d5b0a35fd4808230da14bfc67666aaf44de97192570004b243ed5c87943ef050711fd3269b7df390758167f90277c4a6925ed95b63d5e894f1042482c615a4b49b68a4779db233c6b5f4a1786b511cc91b21dfc8d506566a3045bedf7de0790ad31ce49ff8850f8fcd7719b04c890e3c832fad91eeaf16b304dc56a35fbb7da24c192aebdbb6854df704442530168dd836cda519556109c3205124e0a2566cbcc356b29b999f58d2f83d689ca80567fd675495e64142bfe500585ccd006f5f0b37a582736d1951f87fc97926c678504a3c120d82963e80956ac685b4ae3b9c16253700844efcf70492964a797905eddbadfed870a39490df2fb41b6c1aae7bc879726f765398f158b7893577efb9640554d35ef5d4d0d2c6697e18656c4f2972766a64ca39d8ea7f873de91a82bfdaad8f99821ab881aab4326c3aef86f948e9cc9f223c0e18d5a108d65cb311a3a261b5ea06a0ff2a2b2b8658b752ac5d96baa8235e1a07a673a79820eb353073624bb7da6a7227c213fb0c3da51f1d2015abf3ca600a367635ddb904ceed4369b87a65412f5f3c9f6cb6595931e01515d01fd749d6d48e03cb02178d30c6656717d86476b3c747b7ccdca7fb1a0f2cdd961653a1f9516fa54f4174429d9fd9b353466ef1413b5d8614618d392da881065cc120d2d6966af6291f6770ef2a243ec97c73694bfac19a014759c5b6dbbf45dc21bb5d1eec5f3b8746f53f9224412997ffbcbe3082e6fd023d8064a88dbb199464ba5eb33b2f60326772cdf104a5188a0b164a036f5f3fc8ab1e8d14019537cfa3fd5d3d420e1fb8aeabe8a123bb092f9bd1ca8462c2cd9b00b11ec1934093a74c094e4f86fa1795125d2ebd9570fb7196030963d1b91787d61084d8e486150ac8c6e724899464b50be22d664f541dfe983149fb450424e62beb2ef138ed5233d8b5987cde37203155482f5bd16c68c29204b3e33cf8748a97054bc0160be961233655b11b49edc3beb86115c81bb2e9802c1032769a76bc2eb9f736efcf8e212a0f2f8954142cf086e716506a5854d0c8627e312490bc27e9100929a47719091e2e0a279b876923e1e339fc2c3c7af0aa864d312431f643b9b5605ebc6344213c3b13d0bd5c336853503d7704356b5a5890f0381e372c180e86a2d5ac814a5ac19a50c9a23029b8fbd34ec80440c6ab4d8258b3c1c739202dddf8d585b29b187f6b4ce8910fafa5a6cd558b84145ec63d2c80eeb68d046442a2d93d35e844c23d5244d99d264ab2c6d80d7f8302ae16905ac5a93260d9c6b5521d130917adbcaa883c068f6e64dc0af7cbd89d2a762309eaa025c94baef6dc5bb5f2a490dc7e4b2919e412c930b08f613289350c4053e4582ea79d5b7d2e34086d670a982b1f0aaf97be0e126de8965c2c70500af628778cd37de65bc125532177c78886a4d3a533a66376380b2f4eed778b65e6bd009c6377f0972d2b86aea947b754c8ab3be5cdda6524d5df71dc28e2ba230c9b0284750e5806450eb782a58e86aba2da446dbb51807d2f4bdb89a41c2077b3349a0a949ae5fd5ed4464aba7ca855bef53f02810b8137ebbedbfd815873a0a75ff811cac5c46fcbc0e3a2bedb65d583eff5657525d0f636db4b435ec0d7906bac067075c3dd55c1de8b351a0a7b42b4ccc9897eeb56ccb724a5320228f0a1f25c7122a5317e85edf05ca6e6423f6a7c8674e4c78609cb35ad41d2957a22328e6af3332c06c935bc06498835d8218768f9414e1a6f743226dbef8e3d78fa58b930990b50dadf9852936c899853f75a52e75ebdb31224b765b986b8801e97607a13bba229086daa1b5fae264a16ac9f2e9f9bc25343b9b35ae3983c97f89a481821a3051a3170b53e8cf9249a9c1a0bbbd101da5cda591c033604204222395b6f294ab90a884aa274b814dd1c1ae48606c74804dc59ce885522295aaff4512d3084cf02c9f12e423656fb81efcdf52c55416797a705d2f1b1e370e142073303e509764e95f35477d499d56b40dc59fba9d2471812a2e2931d3d39255f83d7c27529938b7c35de342006600514af6bda777c1136e261c1b51101055eca559c9e7a65b3bc52820249c721b00ffd5533b9a25adb83f4e23b808aec7cc2fa01a0b07acd0edc93b253e145edc9789c6834f3c2a79803b1ac45645f1d15ceb3539f60e7543999bc6e2e7950e38e04026731e300ef2b6efa91ea67527c4657c7cc299bae972e80931706782aca42267681acca41a5023de17f52963a9ab45b29bb51c9c58b064b8a80e00434e7291d05459bd0af3f5fee0200c17c9798128c9d97ec58ad3f1390ddbc1a4bc318a7c81406103639e31133e33dc8643256ab571dd858452581ad08d25c79ac5f0a6a54a860be0118829d87b14ad838323ad9760e0db91680adf55ef890cf053a2b2993ba4b4dab1223bc808f758183aa8daebc1202b204b55118e5cdb004f6ab3ec8f306527ef59ea0a1477de5e7d91f111e3339ae8abf212eebd3cd56c64538568f6009744fd2fab377ee50854314ec53659f44adb4bdfc8759e9be4e7593d142d1e2e971abb24baa56da1ec09399655f83a3f022a9a5e28927272fc099141921a819bcb70a0164fe8de2a2639ce3b5b1adcde900fc1316367c463034311663920e20ac275eea534d6e7c0cf9b0d225a1a09b6bd4300b502eedf8211506d5b9167a7976f486f374bc698e2b961ba043a62b7f536aec0d080ba67510077ea7b8f6cd585555b063e7a8526e23fbd36c8afe18bea869ea15a597749d50b5223589923ba6be0e6ec086576c34267b44befa27b4733edb37b8b686cad3efaf284df6b6e0016688f9f0cc6e48160d33db2fdc0e1a0d62a19bd681ffd2f53a7e3c36db306a5e04c9a3541b3e46a6021b975b92f5465bc767176be711cd09be540cad36efede24633cdf194369d457991d0daa57ab7b827d37de796d0dc7e7c33640cf5389a6874ea0a0e4024d70148ebded2e00e763a2007f1a8a50b1f32ac30e7f4edd3e00462ad1dd59d4641a160caec19aced3792839720456678d640b586fe0a54e26fd6446a3d98e6c91fc0dd40677bec04ca65f5e1262374d4919cfd5ec49d2125d06c169fa348fb0272645de60267c57e9750660e1fbda2f2508c94aac41879f27d9ec1126f647344a082fb28ff41672b54a9e1711da109322a0a4d40a37f08094fced5b6cf026f524ba8242a2c55e2c4f7224b7f9ab12a845facbe9f3cb5aceec0ad46c1f20c9cc177d9f108f7a1a7497312a2913a4cfdecd7aa90ac63586c217fbe084bf9184909c138e0d34e44bf782b3a1bd4ea75e05945da8404d0dc2a45b3b644341237f4385e5da940662257784f37344faf26027e02e64661efd94a8990e1fe6f93e2333a59cc69f2ee3a7b2fcb846a0cdac1a1b46e65a97e2be0e215f52b9325eccdc3da940280e700d09dd948a5c24731e2a924abbe95d51c9bf227291dea5d3d7b515b5e45605ddb5f2326d3bf35952f47bf5937ecb04c27940cdf01d4a737ed4b2419a323797265b148630a4c03e5145e37a8f17bb7406d8472d1debd5c99a8aa4278d27c46a885591dff8a89baef31319fb1e6e6cd2deb0b9e8659b0fd0e128c7c2e469e874fcbf8034af3f023dd0b8288604834f2b8b4dfb913b827c636a10970339414df97df99539089d16468144effe83c2deada7ed052b3ddf7ebe91c7080ea93eac2c376ba5f85aa3125cc7a9771890fbeb5976999df5f4e3feaed098e501a1ec0f19d4c0af262f77e60793e7d47990900ce5d22c63339e4febdc240c218c887c3c26fd9ff6c4930b967f4e3b488029f16b28280da5fd5bb81c683973f79fb06c8fc3c5e200acce4e2aab81a8e7ba909eb77bc33e9007758acbc2a6dcbb404d1a3ca05cd82bcadad1196377391b4d90664411cad309bc463af7f68745a2c24f683fbfae9e9d145b2ff1ea7322d84b55955f558ba19c56e3285f94dd81a0eb433f4aa877cfe8da4e6eb4f6e9e77ee45c318100affc37b4c4fb8bd54ca90c7acaa618a756151e22360e54fbef451f38132f22541fe0116f0a7f791e3c41d70a41240ca6ea7f1bd9ff0ebfeb3b976311744b12d1fbca5fbc252922761f48a6bbfbbeb7d8782eeb8fdf71272273e912a5ac098d07dc0f0b3d23eb289771f47adbcabfb9108039324f90b64a0553ed8079168482bfe99f3545e4d05e1dc5f1c22a52253023324b59deac3ff058a3e31115278e00b3b2bfffb0d53ebdf3c4a28870b9fd63b442c8031cd89d90a0d2cf76cb037a1deac99d75efc2f96bc332451256df30be07f4c5cac10b790e250472b4ade3823a4ee0c63034efa5b10ee0508284b7cfc2d2d7fbb1df10d93941552ec7e3429b79bf9aa941293262a11275eb22a95f472124237e266bd3ee11c81c646aa956fa704bfb3385a921706fcb6b139bcf312e0f465020c1d735a7cd6833e661ee83752ca6c81aa10e0e1f8ee842b916db99a7a1eee1b9a2ff53430ffdcfb097df25bf46e792884752ae8f8fbf887b6427ba117173ff62e10c4b4b8c85b8f1f173abc9acb89f22ae1e558d326925e92ff818f3f13cf7d70bfb8701bb3ea05dc63e7d44c1e75a854adbda6e836dde30d8aad80d078757762f55b22914907fde37c02d93f6c85614a5c6ba13608f46c08f0daa5d5db5c9b6562ed88da4377f8e918b12522a8752921bbbce06d974614aa837b603717450f19b1ce72449809f0d8925d14aedddcf3ec6bbe9abc2464f5b63b1b064ca660c984271600de0f499dd449955c087a8fd5fdea13ffeb8c1799fef56d426d17bed8bcdd8734c70a68ec616a4701164d959983f49141cec7a41d6968a6f9cd26f9bfe1875d38347a3c4cc0cd4efb8e119d63c0b1438d38de57b896680df65feb0094068fce554f741e449a871a4f86eed838ca486c32c36761e0b0005149aa8d4383ed8e8b8635a47b2ce4d0604bde3ca29e3e23aac4c4c7757924723c23429aec53d5238f607516ed62d3086a527889c56ea6aecb138fa0b9fa64a5f83825b8eca4a379acb1ade2386194803dc05681ff6aa397fdf9c0c646a666f252cd0bda0b8093c3dbb0d3e1cc8487ebf6ce10faad1c345abf88715437e50ac6e59ae3569ec6e9ad9d6f257cbcb02da5404e751be6e2b1f13ca2ca5c88c888f45d32fcf2522d0f607284151ae745540df86c081adce6305107893d96ae6e85af9c85674857794b47e4bc689358d7ff11590d178175a3b866bbece98649e865a735c191e3fa52b83ebb62a275b9902a093943da53f33bb0a6c39ed7e46d8f2a4abd66b676491119ee676456bd635f76ab184209adb6dc268c1b6708ceb4c8d79bf9574e56720da20da5d43e7238925b10bdd2ff0c2edadf0733355f139a94452f9aa789b3df7d454cfa5d31aa3288fcea1e8dfce527f81182fc77e3f52cb09332303a56ff89f5e832c9db9ab03fe8dda02dbecd5f723069e8aa07627afafe0bfa4e6a1909af3d1621f2193ea213dd88dd66a4b3cf459d12072836ba7fc8d704522ee7ed3cb1601ed54173c6e00e25eca7581b7c7cd7e17afd1b4ad36014cf4c3711fb349ee933e80ca75614201c1b890525ca2fa78e5d493a41a94ebd04a0dcd21318044ce650dbc7568914fa45e840c8cf8c801860f32f7e3430521533a07bf609eabeab99b01a4cb61cfd7b18db09e6c7bf9bb97b1d19686e253144a07de514b45af695cf0f4488f09ac138ce202bf0c1f0a5f5d57db717872992052216f98fd61c5910869ed36127d312e0d89b29772356074e450531440d415dd33dae8b1308ef1a73fe675e2bc1722c4409786f3c72ba63968c2da5b4bc868d0c3b7876ddc9c2b9542670706643125d6c560f7322ca1607b40e22840593bf02ab250f4cac7f769be025314b326b8992fa8550faa9cbc5035062c386f08ee4bab82b7eb13f9f3d9e4b31fa655b51f1d07444a820321f6b290e4cdf06f1728e206782af0c93de51c96198ea75244a77d828f3c0025b2c9f0fcc700c1e704193d8a9002c8567edebdb828780586bd4c29d142348bc33aedc3218bebfbc0524f2a566e87ada9872f0dea7060e0e404d9ccb32c29f4ce50ba44cbe70d1cb0cb763f65679c93b7a9b2292e17542fc028734eea7defd438a41101e413c5cfd7b1bb5b22f27813783976d3e507575b1c77499e0dc5a86e3a158f813f990b58adfa3d497b3de41dd13a1245be8e2952db660f511e513e10e7a62044d109e9fb5cc81a12e24f062c169a41face3110639c955c9374a130b1017c5542d5ebe9ef58a6964bc2c6958fb121fd534df230288ac1cfbf436f0694185475c4724ac04009588360f258e0b6ab67dd4950d15983919d7e33c1bc53dbfa7e59e1de258a5766f930c56f27dfb8bcd325807fc491205e5032de576593f9014c3dbf27d35912a63b27dc3b5fa3a78204df24194f0db9c84ba3fe5c62d9b4e35826a1898de814d5e8342658d8e1c889860f54c7fbb3470e720bbfda7a30f902cda0b52489d4e3f33a0bc7533fccb6e0cdaaffc0d6754858eea665233fea1ef3652c2d4e8d6560b516be7352e311f80803edb22e636f40382281334b90cd90af1da07e2cd4509bf0ac981d917b0373d393de87db9614eb786d00c71c52c8c53d77c3bc1ef8a9bde6fed6bb8a327c21623900c25e08760b05727cb03bcc6f0370e1701c27b5e8e6c96c46252057883605c58e473c1ab366cac6b8641d1949301033a36345c0ccbd29fba6e751c1b40d1819c282f9cabd3d25c9c95a662dd3ad4c73bab19eca7f1553642010f44227c23dc9600e62e76509b0564d9a2f851ac3e18c846986c7f1053089c4c5a2a2bcc29fc22cdda20ea47ecf3ad9d04d4815af97a96124a07ac128e0b25fdb6b6026f2d64321a7a8ce0c42be7c92c8c113a847b7d87b6b590bb9047252c400637d12ad8dfb5b8896acf86bed06957ae9aa53dc8d97a946769cc59f84e33fd417580ee9c4e8f55a8d3af754a985cfd4497af501a3b2874fe6af37a2d9cc880f1f94a80315c6cca3d16d7ef7781c5d8491946761f94c64e2ca4cb8a2fbdbb8880d238c97561348b7adaf839268fb9ebe1a635137ce08767d20e43e63ef63910c20a14bd5198070690f5d9f92ab6d9fc6583f04b313a370e98e7d6dd6d1a6712fff4f175085af614f5ced42e0457d4edc295c279b971d8522a50bf246f45102f0c6f171966bb31ab8503c6c181d6243f47e7f637d79ddb87f15fc9305d1d2b029aa66c58f0ad298b3b9d51382c1e45e3c42b821a92366cf4a46920726d30e035b998364f441ab0f404174f2afb845c8631cc99c32fe470cb260de33464c7293f60d86999de5bb6f4fa6760f14853d25f798759f88e4d0a9c3709565c54b87f05c38e0539fe399a62807d48cb73f7898bf56f21e120e9d2194a955e3b13f281bb1e1c6e5f15e4a8f87232271ae95725d181e078012660061a93394b40d24411e2b8c64c13bdce0e7a8d60487d7ff786bf19ab287da4887fe0426fffb37d3a5c0f29f589e8d25a691c4209597316c3f8e01a4383c6d6f1a196cd457157fece3a81acea6bb98e263c02293dfbaef49a9a5caea0bcafe146a08d7d5463e6d5940bbe20986b2cd83d9df32d9e2837ef2e0aa729f2001249daf924f8784a74dc2db955c81305a80f03506ec2dfea9fe8b928dbbc851980406c7c57482708d757551aa5279ad527f68231757688371af5482f90af33dae7f8a22048eed5dea5013cf3196a4a0a7bf9aeb103b1ac09c0df5f9879c81e8ce0a1c786a12840249864b1bb07e98bf3275a3a5471f708c461cce6e8299f4196f18e81e4bc4c81a9c140e8ff623031deecf037795cc5d86f719020c562875f6b3e53be2b1efc96574230c7ff0632e71b808897b9e4a4452fc4d739f65da69a233f08773483f82cdfd58d4e983d8efc57770eab510848b99fd3375115c8377e6fcf665353ffb0fae2ee1739a65c20a4438608d7a8a8691032daeaef82f628f68b3236f9d4036b61cedd569816b2311ef022683e2f0452393722bf43f026f592523a0cd056bda47dd70f0deb2511ad6e628ac666049ac384e6f7bd832e29a406cd56a67a3d407cf39231a8c45d39f8c56debae37446b720649c696612bc4522f446be4d4f9ed9f74aed7d882c29327ba70ef5e86e82acea22a0f7c3f3dc8c8891ad53be3d4e539316dfb9791d074604cac094c26103968eccb67d1e06ed947299bf55be1195a6cf5952843ea525d3fec49cb8b0fd44dba07ee0af7a8547067a39cd8cfa8c5b5dd11e5c2baa16989d22692f5fe728bf864e49a294b0d1a85eefc3661677d5b225f9eb1b94eb48d9de05198f1adc06e71b113860c30020d662c53b7697b39b15ca25545d4a60e5a9d87378c6f015e3d70a1ffa4e643c8e852dca007dc2c060250a0890cb0aa291f49e97bb74e59a0a3c42e4ce8884495cd6cf7a379012668db531155d3a84e706dbf33e5ed5221cdd1ec12be8c9a51e48451b3690a625eca7c55b77750d331df13ff7074542134bfc581d47a68d58d156e425edeaef011c65908aeb9af58d4fee7f717e29091376fe1a8fd3638cff02a8600d0feec95dc16a6f758df6ebf2454d3c72985a17174b868a218b168b52c36fe7f1f0a992483d886b4c9304de0231df356c6c9fa9a353acb455443b26833ca4f978428b6db0c0790f61abc5941c8dbe2a6394d3774dc6fe1d07388ef4b67fceefce2832cb5975305af0ea0e8dd3ad3836cd2385260d4aeb8211f349b52589bcc108656a6d3e337314c6f1e204ebf12e0adacce0d707387d6beeb4e3855810567a395d30c1791af92b49322f9c1c9d3ce1365b689b3e250f2fa6667d11600847515333abfa1238e956af046a9b85d11f575614451d055ce012714c7ca7a1e575d23d30cdfb4e7d67a60fc8c85552c7d64325dd048e0180fbdf50661e43f0eddc124db337f13b252e49545f1bac18480209614d3b10839766e0df6b60f15831e0049bfc3b1e6a4f87a36c0c224a95e1599c9c1b2ed91ccba5e0505e953c867eb098c57f2613d1fb594a85e08ad41fbdcc9fd39bb7fdbac31336680e914aaad7c79fff90b573c648ef282539fcd275d1d0f1927089062fd11e122da96f6bf6458ccf2f5424af20ee6164cf960a03e775313a29b02277a94571aab5bc01ca1cc62c88394e6c032ae8cf5e8cbe856a3d92088d50f45ce4e1f0c02305f14d2b59ce3387271ac28a03a49da1af1fbb4ce90c30b45ed85da61db1679c83a26df00c9491b683e184411b0d8b1a7ce1d859f1bf4673cd61575d4a75957e873d3a057561b3212a51bbc30aefa5933b9b36572e2ff66e30e007b92e9bb1ae93f4cd7f53c9035d454262a42051e8c031fed6c6a64ab599b5b233a29573efdf44eda844906c97b3e42a1c4dadf669c95b3be739ec938813ed183e902143eb66d39d3eb470acc4bfb12a607b626ce65356cc2a8f5fcaa382bbe1501fecb084bf3411a0b5e5b1768e47352155746bc21c360b356164b29e5e8ab61894fb39d02a63d53edfa05952c110ce3b18a6ba1d21efb41e62ccab407df86919fbddb939ebcacdc9e1ccb6dd520256f8f9075661e3b086c55550a168618c7527524e9375eb90283e40dd33b41512a6a49f4f8128286a558025eafaabb817f8361f73c3cab45d99cec08cbfd4384f08a7a9ed8356fb9a539b4081789935cf1cfe5eb2a84de36a0158c1333ba465fd4e0ec2dd0afe1b9d20c329d4188f072b58c546598730d2fc734003dac1d1426be39dc1b98fa113b87fde7ed24037166a116de0fb050b71b42d764e66ca6b85f94ac8b3e866f1c0a82e5292793d8ad4f5495997f5a12cb3d25ec6fb4e264f6629156117ad6fd81023c175a40c12e22927ef303d9dcb94d9dbeba388b3fa84e7d7a04ccad28b6a250f656cf4484967271544b2bf0c80a0a244c75b216224306f06a7a121ab2436d472483be67b460e466eb680aba05aada28099d431d776bac0ee22ba6f66ca14627ee6ecd22c6f3fc2d227f0374b59617d01d5ee7a72ba0cfa82190b03896319fba673822286145dae33bf6c82820b557ba0ca348362c28670ec28dbad559bee89013a9797816646618c72c142433f992e1ea091474fb34613d09e0bcf55566861f17ba4d16f020c1739b393afe71887c8b728e71124e88c1694cfbb046f339ee0b349327dae9cb8f694144fc0986bde1aadd92679c967f51b0a0403eca694f8c414ffc0afa88a3aab1b2a32a132297f427d3a8411fd0614c1d3a4781b2b583f4beec088205a1a6c8374fb4f637bc8702dbbe4d6a065aa9dcd5bb1b3fbe500519be8dd1fa9876d72ab0ca5f287a8cee695e89364b9a24ea883081ccd0709ff4646e61102b07412a241824fdc681c9998fe74085db512e1d4084a5d029fe025bf994c1d5873e1ebfd3677367c801b6761bc8161e3d3becafe0f435367da1483333bb803f67485b3496e0ac71c44455a51d85f54601715bacf95c9ed71aaf36b5ddd45c95e86dacddb9f41597d3d36f3cf6dc42a2c1001e33d06e9b8e3ac623dfe2ade676cccdc68f0928a36519716f2b694d26c7f14d149cb7453db35480439a2a53bea4a21318532edab20f52b9e13edca8398a620470fb8e3c9c5bd737bc5098926738c3250d89f984f0088ac6c4ce61c657c94594efdae3b6a3c8ac02b60eff847ed8c4ec99fe2a927e65605f05b5496237952a1d81960690789ec7de7ccc07d19f136a34a055245df5ddee97650d898f2ab3c2e9ce8bd38355c9439ecaa66e7ba35d0ce846b171081b74f78c73f3f0dc6f13063a3aca4581189601a127c733865d7089905a183210f771c1aa8fe804038057598e448da810400576dc75c140f40fcc7075442b511e78fc4b6afcf297d7b08e0f9d3f1a3faf3931315817a3742af5a8abf78218a4617ba9f8ad7303ba82051c055e9ea77aede02703c94f8d8fe8bb67586126f0795364ce4b77ad6decf390329c712d2f3117f5f59eda354dfacdaafd7369ca9a5ef054614e7f19589d4dc8a77f153f1d521f77e6cb251eacb7830ec7f374e9bd2736f8568be36591417d82b6ed1de3b6bd3ed8f8e247e191a3b9dd6dd32e30335e908dcc33ea34f193947a4b0da279e6dfcc0b74a1462783e4e602aba55da0f3c1ced86c8f20b1fd952647f12acf0b72806e32d40f8746c9cf9cc582c5ddf48955a803887328708e6096a43f55e44b0081b54dd9ceff58fbb74b334eee9ec601e0dd5871363e9554edcf73f5ea05f03dac65c8c051d2d65a28ba9e3b39453910682f0796fee3c691f63b6ba3587696c8c4936ed7583d9ba878b5fab4806027373e69d35dd1c3d6d986d54968ba10d2f2af6208c8279b9b0b0df1d9868ea9869f327fb598066d9d3da49a9933e45c2354466373f03ca77343ae403bb68676968f9f223ae5d93731b6d0d05441ddb6342facb349d2d077b1c362d45d66354b1c3a6b8fb02a8642a591d7719842e5659960a9e2c24ad468f627cee9054402e537ec49830bed83868e09593ea34160d285a275cbb9dd80e7b56fc936f517dc8f19274767314b390bec440c925fa0ddbe2ea143871a8c8b7b2c971d2e438ece11cd3c9515b23e2a7a8b7f24a42d7d875ae8c7a3ed17047c702284e45436ef181890e440e6b46a952f400715c5699915f5994a37f15e65abc20ad2a0ff46cefc06aa95e2154d8a322cf4f156ab47b6b9e850f7c3a16b38095d705fdb2056bf8e49e0d1dc2f5c7df9b1616120fed21d032c5a945449e9af294ff1426db42d2e7939545cdd1dec56d86129a82f0cd7e08c97e76b87b044abb3e8e9933e69fc39e603de0d1a0f135a693d6df900aa188fc1648823b5efe00c41241a26204c9be3639d2830eac732445043f533887c7971798b9acdfffd5a77cd8994d6efbeb0d31698df85d1226076e1b115839cbc927b2d77d4ff6cf9f5bcc37427dbaf5adba3d89a516ebd0afe09384187171672c2886b571caf8fae8cf18000d75a984835c037cbec110d00ca5f0587394bb24d3780f1a618052ac29ae132e6367031bfa7facf22e1019f78a8d4a80ca043f0ed2a0a62e5444dd6f184ca4adc81d8f5f369bf2c2785465149f0b8614c9099de1d879ae487c677c775546e5b337d5eff3cd8caba598c3a2be9be8e8b7d479f6138de94d5394473038601b601be8dcdeba3f6419dc2ea19fb522319b519404761a12ea8b447ec83e6fce0a17b5d1213314ede26217c59db0650fdb1593ea61cd6c39da15ad9275d977a7e8a26566b08f47255d24a59cd3dd0fec2857cf5d6e510660033177dd40e5f124ef849c137467191ea0e8bc60b308087f634eff261d9c0c198be68f26c5c1073e05bfb926d91e8c54b2b2f88587ff85debbfeb66955e115c9b1972bab2e0c27eebba0de07fcc31c565542274602051b7a63270a3a95579a3e3fcc0e9b3fdc7742ec3ffd6e903b0ae269565e465decf7cc509e862382cd224b596d4fd99138f9d542e41940a9f77a83192b5ae9a98fd8b1ecbf97872a4feac4167fcc2fddb85b835e2de05255d1d4333ccad2802214bf66544847e5e511f8a5c336458656aabee41c555d78b5559076311a16ab4d9408950bc106964909e485b5f56313c55a036f1294d6163fc7a113df7aef7fd5335bc058901c63995844ff3eb1d19173861aff782edb57f710960dfdea85e36739e3ed577340f57ae22f63cfc52e765455eee96bed8db70b5f0086d1f4e98aefe6a34b39c914eedb597ff65244ed01bc5ce137330655262452a9bec8fd7cb2482069e950e0c1d977c23c4ff52bb6edc593399333f47774e3129281829878991ab8d273e3bf74e63d64d18b1e8572975b29e08f30d3aa39ef8b457c10e277110894895934f5210856312f65e0d2b524365934d1f8c93d64ef16f260cc1d6bb9588fb38fe8222db84b12e167bb39d3b8f0680e74bfd64d87afa5136857b19a3db7889445ebd9107b81b1118016f3f6ce905c2646bdd9c2cd656f95c92d5119d0c04e09b4baf568257726e07536363ae198a6d85af0475adeb20190512321cf9a2194754784334ae420ece1ce21b42240f5945dd8311d3d0b15c6ca06e0064eb5d6b9ceecb1ab2d93a8e367b733362e31f7a51eb99ba024d00dd63385038499a5691653e2f3b7e61ced6c8356b3511617cb6a34686051140d139c98dff7aa8ed4b3fc8e5e194d300bb0a0195b7ab61e154b742af6e2f31eff3e383e104e2ecc6f54278bc8b37c1218c65b56c07c620f3ff6c352b52de3c396e4acbdb814f663ccf11417fd94ab7b9b6e8153039dceb56ad850caaf99efcaa1936234a2654f37de936a8ba62df22f10a8ecdb54db27536c4a3f55cbdd35ff282b1d7c385b4db36349fe66bca7cb9108ec7e602260a9c63c87f42213cde4f532466cae048fb6c06d5a8e3d6fc6585d47970a5b937549bbbffee5a77498c029a36e37de83a6c2189a0bc2c23f43187a71da475a854c9461a2beac4f228148b9220209d9b4e4f556d69ece8e69f1d331531414fba3c5bd11a4cc5eef7669a4ff8b5bebd545c55b44f5e1ffc5de951cc5d3cc14ea1acb355f538561dde127a5188c12fa7c65ad109a1130d8925d09f0f81e33ce0e83d184b51fec7dcbefd7767a500fb47c3d0023ebf3b1e36a2b96000446ad4ae48eb33e7bbb9c49886d0739587853d0a91548220ee032eb6185c325a215ab2b84edcffe46f280e199417d9baee47b55d49752f0b4574f4f53a5332b27d9198211fef8b1967901d65de7e468f98d7fc6580fb82024e189b220af85d2066fcba3513fef00b8b067c690147dae67b786f58fc25c400c5d1c0c2520ddda91185d7c33a39febbb984169c5e8c1b836a9846f991e42172614e832532087a8493970261602b19ca521c145933413c0dbc99b6e74b5dca38e46ded63226814ec815c795056ae2572c2d06cc143aafaecc6dea3dac84ba1c793101744b0e5ad59bec14c7f58dc44ad8bc197cb477f2a682e311d9c355b2eea3bcfb0f33ac5b87767908f31d208aa96f76e28ac7bf7576306560fbe1508b5d62eaa2b99dd97145aed65b0b6b8cfa37fbc9dc34a4d020243628f7747ea5b0fa85c936b44918aeac077a8f6b392a88eef88f0fb960ee0a4e0ff9a68182c67f5f2fcc7c45cf054735f1691380fb3f8ff6ce65db1313781a20cc5ca475eaad2401ef343c90888ff0297641dd82dd35aa1b25475d4c48e4263a34ffb9c2595555f4e795e9c2e8c74660af84e6e8f669256b40f9f8721f50875ad014880f325a03964cfd99b6225982bf96eb51160470d04ae65f51c9c036333f1440b06e7d3da0a96a65472e68fae3c94d411d2df3d047accadb6a2b237b15a6f6da859fb8083f32ea2283c95541fb82e139ce43c07febdba8637411969c264b124a67cecc0474f927fe8224c2d5bcc1b28a93ac0d6c251341a3d53572a1dfeeccc4a69c483bac847f27a0d67ebaaeaad3db0a3fa1ce6374713c80120a645ac77d157e7f9dfd16a1c27870094a4574e81c6aaadc196e31c5ec494eb452d45ecc9d34e6f7bfda3414acea42c04026266b269a6f17ae0926f8af06910edf73162d99e9502fd81064d5bd318a5567a2b10389d3eb69ed907eb6edbc71d8106b3ddeb9eb67c147bc0b77d3b24bed39f9f384b7a9b2ca607f23e0fd49a791b11f3c83c7da97c9092704b3255a5f73420e461446dd44917a95d45b54702b1547791f2834eaab4902ed2cca159b78c391c141c657e1ad70a84bca15a31eb4c052d9eab2f5ff0f336d1fd58ba903b0a5eba9ff03e90845319258830f6362ca0e0d68eb2118c9ac8dabd3f8666bea29d8d501a58758406c727189db3cb418f343532ce1604e486d5593e91e7b6b7cecdfea00514a72f3bf23e1578c73c405471735e9da9c697b56a8eea6f239586a19c7090939e4abf0ac9d52126241cf6ab2a3c230886cfac5f0479893a2201c2e427b2290fc11a08190f057078d4bbbde9e246f20148c753facf197250a51cc3b133d369f2587fba9fac4c84b0cc802bbb95e62ddc0554f22ea4e12527a97820d2fced949cf6f7d051004456c562f18cb7e41b550648fc8715fc212c1f51b2764c4b285a12f8a6091c85353bb6ea1422b1c3b307c9a5fbec6c749c07413b37ff96d7a28aa67622f51b0dcd730ed68738b3810d6fb4c157762b1a6d403ba5d7095ef8086d0043920b4b68b836aa8582809d1767e2d6ac6e92db5aae7c32dde51ec476170c424ceacffce30570034dc10185af1d6ed7446bab546ce4be2cc0ca6a570df373383fbf843847403ba9e87c29a0667e74296be61a12802eb12ea5a4f502bf5b3310415a93ec7efc0a277b061454626d6d4174cd5273cdbbc67eb74f53a601f535370f605d601bb8e106813b65a7a2cb3a058e261e485c3fb47c217c7c50f7fd94039cdabd943bb10a08286a2182fb3a08168c694b461b1c58b2537acbc2643d6f4e8026cc5fb073361e3d8062abb9eb9c22541336df217122a5254375742e30230d60892a05130c0c789875b3ea182e054fe415e9769f45a55a06b807fdaa382c73eea2aac55e9e128ea7282a5b06ea867c3d446313910182baa8671d89c9f6364e93f64427f88e6e297ef25ca15306040974086cca602a7942f6105493afe943b32c72ad2a87899e10e23a3f7d60f41f7588f38ab6122ac5dcb154bca32add1e340129fe0fca8a022676b6fbdffc6a20ebb43c7b1938215b14af31c1e5c671754bd2f0700588837d87a1404aa53400f5745f0bf15d03cbc46bd56e20bdd3d16f78252ce53e5e2ba339155ce81170842585665747f587abe8d0a97c72041bc4d93b4ed7304e5f64dcdcd960be4311b95f6c1a44378548f156a6d4770ce2d04f7d56b6edf8b007adae472212e9d2029d88cb617683b953164c1ae31126bcd3d9dd7668579824a30b8a431510f035d4d65151224c83ef63c5b9bf494fd762e401c95c490f4ac3687bd09f6b2b50bdc7938238edaafa729610f46c12c2d0020090780e3a955c00a74f76e9e991e5d5ae4828af7b124ea4c4817639e77251fe5765ae584e674b1ae12f7e83147a69c61c659ac6abe1a520d3bc6509674e147cd7b965bd7eba2a11366c1531301dd019ad87bc51d39ce7154c3f94629c9abc174fbbb6aba6b0098fa1ac8d1139044a87da492cc7f7e381fb0369824568bf3af57f89ae743c4c91abd5916bd25863c47b7f21d0617117cfc115c00eca01ec8b6f6028cabb5f715adfbab26e89042a500b24358c603f1e4a1c4e4e20598c8c3eeffea8bd0f8d62c891ba7740b8bf7e4476764ab973ce66b0c32be241f48f27a95bca3d1527ce142d8878c0bcd6442119f1cc7b3b6057cc9c125defb2b747a39f0c7194ddc5f03890adc82c6e913333a0adf1a9d0d283aec91c746b2af76137bb740661b22e159ec59ffe7b667ae719be7062de8a06223060dd3b554500835a07a16ce4a478e5380c88e28cc0ad2774a085d6c884a6433322004663a221d1d861e4d1c84e546feb62342d660dd0d4c4597b08aa9140850dedd9461e8e49f6c5d6072ed137e26a88de4ceb5e35e034c8c3e30b91b578c4d47e87c690452385a7c1453c21f2d011680d6ef5f37ca91b1791f2e9cd0563a4a6c8531ac784268cd741c326e47b71e47f30b0c0412209442c6fd84dc7165428ee30d5246c17c8ffaf2efe1f9a0df552bb3ae95abcce6cecb784c4e81cac7715c9d4ec3b2e8565b9b20899440f42bb95798d4a70408c8c5bedb918317eb03402b5ba35e5163a28e9985feb71115a1003ef1069394228d14d70618a649ed120b08fdb4fa9649de556c2c2c4941e232806fef7ad0151d0c9fa0c6074927550a21ea10cdb44401ac400211d98ddebe7ff5617c334227183a9c2a5dda03fb4c4fc4b21a05aeb038ffa028cd11d380681968063c223f82fac6399199a7fb072fa41d0db12ee99dc9f1723eb4b61a0867eecb1d4bc3d589536ea2aeb548a242fca8d912e2a8443f06279a806df39f4755109e3513a72e8b0d1c22d8b76d426bec434d0bdc284958f9eeff0c45d1b9136eb28a1b789dbb3aab5550fad0a68c27b98845709283673f1462dbbbae324830b6e4db38d8f916c50b1d697630dc6af4298e26b025ef88c56b2caa806c5c8256609f8ace0e07f18e35a36dabc53a006033628d278deb58946b28a54c1b90e61e12781169c27fc6348ca74b074c814e868e73218b702d6784776ad663c3dbb777ceebff3724f6e95077703e30ffc479c22cf0f297fe3c5bbfe285a99741dceb72f62ed926c541edbf1dcf674ceebb011d6357fe29a034d6e456f92e99c5de59d66aa319234ab2023c404c7f3c5b82617866fd2be8da834051404b9feb5bf95b81c8caaf552673f41c6206170b61eb69cfc8453d6cb7360734486c2621f17257ea4cb72b0552d8067eaa35ace7cf0160d8874191b8c5deae470e5f33fded98e5c017ec817ed36aa7545ef1e5739517303fb9628b87136b9e602df81860716582e1421d27a3fea94285a4bcec9e841a8d9513cf7d181b8fa71c032aebc82e58be3b24da3df573ab31024d4e0cddf8c870514844615218af1a4dab2873189b77c6eefefb4faf83821b2e19763b51ceb03709a4b94c1a715ba7c0655fb8b5f0eeffbc0edf59a39290c64cdb4339add5d0dfee39441acab5d82162cd8c2b44aa2f7f1d61cd056ea1dd12e2a14edceb1cc2cb0a01ba49304abdf02a3f0ef091a2d55119a12c46c30b9940efe6565a360746216793668c042e961d8d18e211ef190a766b6fbbd3e34f28bf5ac457b427d82e2e06a2ca7ef202877b032c528c0b072fccf9d47814003c17f11a6fb605dee1223bb9326a424b46c20e2941ee3e5fb0229f0d2adb1d7cd5fed0d1ef517f13f14aa8fc0a5eada639b41ed11ece506ec7f2cdc1f01bb5043b6d848e1c6d4ab90263666e115017eef34dd2e9a5f2220e6eeaf6e0e036c85fabbfa1cd7f2b0dfd20e2ffad06ff38f5e18905e9a540cf95316aa69e4ead59ce9268f19647b053ea9d8c70d184aff7a2991af53d80f6bd9c7d9ee5a808a2ff07eb06d4a387cd4f376b08c24fb0b78c2e2494e3d095ced0ed552a423eed35e66c10f74cf2659d132cbfe09538b4c4b6085bc56c1318a5500a9efbe89defe6b4618700cbbba96f5884adf51323f104b44adbe39ba9974028d472aa8962a9a47fa410cd7157537c11676105838f61347d1ae518ac7a431f110bd28860026de997fd5c626b56169df06396ea86958ed4fa30c56ee7656c88d98ad541355e1c485aca0334ac833f0f37784ea596aeefa58568518423fc3de9fd6fad2b7e8e1efd1bc89278ab3ccb122013653467dca6dc9ef4a5e43b3e0f4618b5f745aa18e9f162e4e4ef62d14c27fc7f443725f9ae00d15f91c11a3860f7219471fda33c12adc0447ded50662ee53c57a631c2312f9095de63692cae441024a4cef2414376b623e783cd30b5a63308f6dce5c6991303099a52ca5a4d2e0f2c46cea1063b9466d80b408bb873685e0e77961788952492473c227fbcf777fe9173a4e9366c272d256848588ff12aad3fff64ca50e45d5053d4c60227cc5f4d672792d6e8d7379da051484b83937b820f44e704fa4efaf2a023d4e1d679b82633203e1c9679cae0ffaf3509203b6b4e248937c0868caee391828de0b7f7091781eee4785310df7ebe6c2507b3a3731768cdb147a91dcdfeb0d77ed77f349e99a0c619513f2cc13315052d2b90abd9c8127910a0676f6dc736ca437c3b5af3142d8ce3f7f121ba186fbc56c62129ea81992b23f20dee7cf3e60e9630b9f2eb24abe2a6323262a7186528a288e241034121479328e684fa4176a27e7d873676f66ce466938e0737e166a776f230527ecbcbb825dc69f29d124e39b3b1f14b587b4dcb20c6d354f2c60b06901a5daac173192c0ba1cfa3dda8d5480688dd16e1355eb059287628aa8dcfd8fd0ec831905a91eda0643ba535c519e83a1471643c422ac1088f79b40d653c5d4aa22e0c447eeaa104021abe62ecea694560dae4e4d2027ccdd510a79e375a0c444bfcf05ae68c3efd6452921190a7fb9c695b60c6104bc61bdfb08fe9af0039c5af9265695f1697cf5028b3d12f23a65dcebd13dfb3a9b81744490ba163b139ff8794f83decdb357decf40130c8050edf5750c8a4100f3630e9b3a88138c41352ee4cb4d1a15525354fb4ce377443beacc7b0a1d510af29a6a856f30a5253356cccc0e2ee9fd685e37acf04d003f572082ad8e53329caa832bc047c02f8c2cf841b6ae3b95034a41ee468c6b1fea845b25079ea0b72581e70d7b2ca25d8b4e2783696e7faae82428e2b531cf69457f189b390df400cd1dffb7fad403854a1235198c26f2e9673b2c6b9906fbe38642b7d21b6ed8d48c38dfd9df5a6630b5c83e6485691783363bda965d9eed71707407079d34cf4466e6520911d91a0af3f99ce1e9568052985cf16733976662539c65eb4671a2f9850bb9cd6bb81c19542c60c60a38f929dce2e48a364283b876201d91106305502e9e02cc73d2114f7c4ae475f793887a01c3f54f27baf09e5353128b11c4681da57a4c09071104446ce84bbbe4298dea19a8fcb28a17e1ab3954498c80b4959aeb2e9c2e442e4636e4eb141cd50f95dee9a020845d3856a028efd1034f2b8c06e8ebdae92c62abbecba908d1ed0cd0d4b5de5993563e28a77859e8a2e5f99dfd4bc64f7a4c9dd5fab8dbd865bc549ea04a21807b19af9cff45ef11599b5be4fc99ab4a5458bdf62babe710dfa7f8d07acf3b54508b8278cec39fc7d3500bca0f5357a51881014d5dc9ce1d55e2fd2625ef195c9d10c0997a5a9e5003fbd6cc681577c55333b91de98f761bcc4f5fef12a2548008c4d956344b1f59b15e02aa8d6ea55772e916d47a016b804be5c3fa8e9bd37d75cd80316db53468cd1b02c613bd4c85289357667bfb2a77060bddc0087192afc13cbadf4a76e725392b3c809bd9a4922cbfbcd5b494945a2ee68b31659a62a3d48a195111ac4868e7039f075cbe77275a566aee028e73fa007a4f56cccf5dfac577c4a84076e884a56ec18155c3dc8e57395504160e2cbd86d27763709d7084d181bfbe2765c9451d64bc7c10fabb8a1e326c542bcbb1903ccedb39c63d0355fd10ea173e939d2989c2d0c45c23562d6e59ace68a70132ae1d9ae499c328a964c28837565c4551e1480942ee989dc1c11ea57c2cbb528309d74b93e689cf42e3b1ed40cc14f3f38b1cad0972105b32bc0ffff0cd52e3b5bee5c24a0cdd852f81eebf22f0de6d9b80fea8bf9d19528a7d6f9719810cc5bd1d5765aa9e57e87c34621ec33d42976310943ec4b2c4a666233e12d8836373431c8eafbe91a365c4420cfd822e45fcc39ce0b11484807d58780c5822c307c0302a2540daed86602d82f0938d45a6bc4f019aba492861cefa1c247b412d49c9048190309673d1036719ba1211d9ab2aa11c72d9525f9046cae48804c5ee7b8d6a2ed82bb77c657a1af2476b08fd67c9b66c28eb6fafa076a5b29299559d2ba8716b19f661367af23556a11788e90bd448456c84be1f8990f5d1a3ae9615e7c632bfb78342a06f59ebaf622e38f393e6d24429e18dabc156dea0c86ad716cd58cd0d22f2517917b5c419344ed24855668b9fea9e23ae89dc2aa2e6d2d09167b3caf989098bd1fa49b057700ccae3d783f9619eea3534d23cdaef486d14017017d3dda2794af736d869c2f34b9a1e6833209ed0b28ea4aaa802fc3c6d26f6a082b1604abe694b151474cbb15fb5a7a2074e3fad35bdcc8e3d9f0521596d4309f3082a8ce82c858fb6f9c11526a369ccfa266165ce1d026a1d8be0aab1bd452530b9de3fa7ca8e22e58b672c4bca72b04a1c75ce317cadb7b29a083002a73570828c84aefd424b8160bfa5a564de306547a21454d1ff46869208335d1f499aaa400d926b98628e134d6f97c6fee5246a5c3f261f613d33c4d4f05df4aed6275c9cf2bffccb8689d49c173d145ab3274dba315cd0c98a5e36d09afb29fafc54b07fa9a61f2f010d77fcf945da7e737895c15f595b848177316c13ff6ae1c3980b929ada4eb81a6f54808b0a691f4c239d5b510e27245c56470ad39e7596ee402d0d1d8265ddf894c9052521cc17920e6d858836a27fbd3d8a55725a4075b5fa8e64e5f5a1621ecb0b6da8feacbe0125df55d8e3547c366a83c0bf681d8d0f3284d834cc09fedcb2b3231cb644b037fb018c11c2a6558bf67e99b6f74763fe070981c88eb7eb096e7e834a81cfb90570c478482b4e9770d14891a30d494ef260c3f51707c7ed300d7212b78da16ab956fb9e1357fe8bb89435db63f42957ff05e40dcb691cc2e6a079cf50bbcfb89c812b5dd172bd8ae02dbc2bd108da4a1c62681b17a0780b33543b1a013b0e3f2626b08c6035bd5ab442284111a8899fd4f8c58bfb629cdc7d3862a681658703e5f43baeab754416123e79fe5065e0b592c44cefbbbf94c742ad13482e95e594268cc3726b00874f1b0f1a7eb63182c77b5d9658b36b14eae2827c7ed2de5ec21b42dfd9885bc08cd98a667ef6fd5f16a59ec829a23973c8dcca04cad40bdbff90e1a5d3ff2b9d8302b2adf318cefb1e9d5d947a04ff321ac835848a3bc299f042e82515698356e1fd57aa9a51f0caf04d01fe1bee01c61dd369ff3c482233648224bff9524d6d33df8157a0ef9a7bc39cb55b538d6b4120965d209d3eb542a0f6a7d4b4f347735d74c471eb99ae2ebfc347d595ddfba0b98df35ce39f8215e0f3eb0ca3601f929808a90a43c9c255bc0d5fe3c3269cb8cee7ea7c675a697869bc4d4ac048753f7c3eeaed6085c82715905115224678baee9c39de99a0fa62f5ab3adec262ed32bef06b26c30190bd8ac68bab2619e976f4402db2888b63178608d438fcf51e4c9f3f7d2bf211b7c53499fe22e9567b81646c984a682d24a565cfa882071bf4c19e9d907c77db57e5b3f351ba6e602a87d03c8578e75d022243b14d50b3765cf920da0326c542b082c03ada40b172237ac14ea05fcf91e9abdf3bc7a9158234b41d839653ba8d2048cc457f822cebbda45124c7cf9c00e162d117f4d8d6e9190e89fe4f2b9750243bba4af66c24ac6c72f02f12c07348fc99f88e4e409ec94ad42db8112f84a241e77c3f4ba655712fd8c5f7b0cd1d5b7a45b5a2e5a490d1088202298163b4e6963cc2a3ce420c5a2c2dd6329c24ad7074fe2c176aafc1e3ddd48146c3d432d40de45c1c8e9a3ab376f42fbf2e7bc516b7c9a55e54f5f75be5677508bdc3402db1ae00f235227c17ab536cd239c8ed354d0a2dcba4f8f4f9fd7010493a6db5534f5441ec3a9a49cad89e682553ec00be925236d81db80ab060da24aa6d0cb7a22b9c50d3802ed15be8d3f2b6542b87dc752e4964d4998de3dcdc95c00479f03542d3e15b276fa36101282d85fef76096aa9d662de5b1edb568861daf33ff41ada7ae7761b37bd4089140f1acb13b71a1523df4acc2050dc379317d2b96c20ee2e4bd005b6bd615d079d19de0053eeeaac643baccc0accc147f85368c3f45bb8a7023517571c9f666c7c8f7066d63426ee5408b80a95a169505d49d93013220dd18eb56f25ed121f59a50329c64043bf2085759cba1fb65722163468cd90c648cd695e6207915730b5499e4ebb1b37fd779d90fc0ffa05bb0044763199a06601e25dd9b3e9084b733ff78e2910b788fe56d7e4be1c73a859ad0411938f1143e6857f1e249a37061d68cbea2f323af6bcd4b774aad346715aad414376dd22b68227f4b9f25da29038a5ab4b35007f37bd81c15118e3d082b50d53119786afa15a3153255bacd6af860bbf940906e1140ca8234001645c034a50267359309c55a5038d3c5fa222d40987dbf50913abed0841f29446750a566eeaadbfa7ea238f5d3831089170b6418d701004910d868d701b7f4f58c3d425bdb7fef4d347cdbc5b06e4d25b908d408d104224d97b6fb2a59452a69464bc06e106420724894d38992117f921b79603763396d7470cc6947689ff22840edd6a0f210d7cfaf3bb0c52ed55ed9259fa9166b6e369a9d31f494d46eedc2bca0b21fc3ba1635eb790c5ac08a4ef498f550ef5e8570ed53a99633d1a8d6c9aa3d12229c68edf4d22bd0fae81fdec6c48b6ebab4d0deb38314bd3afbdfc0e93764ac99fc998f5dcceb1ef71e5cba27d5dc6733b1bef6cfe6dba01f1b18fe9965c97ed5c97d26236d3e5b434f1b197dfd56418bb0ef131395d4ed8f215d8006dd664f04eabd29edf5bc75f204f66752e94f165a6c33564b623e5ce4e863d299e3e7e57f31d8c59fceea153fec9421f18e5679abc1af76ec72bb97865d4302b9d8b7109e48149b44bf41ec8e32fd0272b712a4b2ab7ee9cf427cfe93fa9d53219adcdbc5afc66cdd2c49f9a6466d6b9dc1c65f7f8f80b85f033f9f3f27736f36abf699f516d56ee419bc93af34732a318638c31f3c136480a4b8ca2849f9bddd3cbd7b905b8ef481641f74816432ec6449a1cd5eb25db5e7257c6452efe88e3df4adaf618e6a3d1c8a69da3a1f24d2fe7bb7c9fa393e9a76cd49f2c6ab6c9f44ee34fbf6dd776e2dcf4905bc7e3f6b3fd1897ddf6364d63fa1eb7b9ceefe831ac93cf45b7b3694da6e33beafa9a9e37cca6ad4d5fd95dd36e69e49bbe6d67e3b6db74906f327d73fe94ed66bb1c246b3cc8f9dcb73b9bee98a86a364edf96a6dff4a453eddf4cbe83973b1bdf341bf269a6ed5893739ad80edeedb17ed476ba3f2ee6dc6bbfcd45f94c9b0edb30fffa8d931fe353ca9fff206f14eb6ab2c953beffb4ddf4c1353af97734b29db4dde8d9b28ddfcdd2581e75cfb6f12b5ffee4ac8afee8dbdf5f209cdf35355907ef68dbb1c14fb3d98e351eb2cbcfb23ddcacb6e2777eb3ed328073e7639647ffa02633bae2a5f2d24e0357fe06ae7c29ffd21cb03bfbeac13812b5842c7c8a96dc2417c67d47b4883e3009efe91f9675b8c6bbf16374bc83bd3fc36bd3ddb4367de773d4e2e70ae0be235af45c4c66acd960089fbf6cfeb27d6fdceb15dad564d9a576646bb20bbfabc9a06b3668e463b6e3182a4b6a4de6836b5c96663e7cf7cb43bc32eeb00fb6813f6be80419e974861eef7c520e4927c61184a387238841e897c34c2ba294b9371a5d1763178d5042d873f93b87b9fee959462f1963942d8830ca8f178d50621af52b492d528b94d32fd3b2679a26b3c4f5f49a17d534190c8e4654464aa3bb53888db4a22a5d687425b7c4f5d329fd4b93a17123e29ad7c5dc75a98cccd14b999b97729323b1989357724bf8478aa4be25fe822df1d6edaf3caf069e337c2147e0a3440742081fdba1cb44a624f51dc122e8a61a04d893d112bdb0e9558c9fe14073e2099ec1fb62a4e38e381befa27eab18ebf449f70c9ecbe8e39f6845c0e9637ac5e4e33f93ef7a858b7c6af794f4103719c7d15e618f01eca30d1b0cf42adef42a6e231d7f7927d68e84e013031182399b08d32b13c7d2d2abf818186287773328aa535aabb34e85dddd3a153ef6de0d2e98e6e229dac3b44b248d4630fe1d4b8b85e95551acdbc8f20fc74560f7df2ef29528d35ce42f71b35866b1778b3ddb8e455b0036ca8868322817b31ca457f19f9603ca75cb8cf1f38d81f42a7e092a74aded255451ee3b8205910b71b8b005cab83005c63fc07d05b8af06ad53b9ef01003290cd0229ca2c177d110b8c9b9aa8ddfbb9b143bf23582871e3eb88ef875911d52f08888f6220fe422b9da96a8b807092a8f58038ec275ec09e8c8e427805e12fd7c36725ef067ef8ac85f7d23dfc850b9b880b3b041736111ba383437a3c15bbc844af1c0e893dbee23cfc8dd0a7933e439c352512b5833ed2a721f4814a00e18153e014a924a8feef1941c1c714952ffda2314629b3f854be94111a8135057c341ad9eefad7fd75c137a5f5c8d9c4fbde6b2d30a614c21863b4d0a9cf688132deca7bfadebb9ebe17f9d13e5f81d51d1261517e37e79cb2abc9a0f580bbc7f7de83f0bd07df839c09de7b0fbef7de7bf0bdf7de7bef3df81e8431079b01c3485a4b6b692dada56da161416b655f684a6c8185d7ab27e1bf7b83c3c220e42294e9215a165a4b53426b694a645f645f6845d9175a165a11db1338c1094ec8ae10238cf1bd54139ad0842d60cc1c238430527ed90f4e428d1913baf7de93344229af18e57cefbdf84388be36cd26e01a42f0b589d8755d578c16c2499de5d684072184451fb7ac0ee1bd1763ac813a32c608a1bfd2bf4a218430c6d8a54ab54d25c64e995b51f9a14993791f21845a768ad155ba78427c42c4a8c4b226c15a6b94252f9512c00d3f4a6b8aff4877cbeecdb29396c5cd1fc6e8ee5dc55030144de6c5f85e15a5ecc4543aa1321413d4094a96d26452190a06237b314608638c30b40c86bf5b3725b901efc8164b5cefde0206b7bb572b3a25a7fa05b71f15b9149b4412b1077f7178192d7d75dbff11852c4e80840a44c861350b6e7fb51db5352c77d52bb642c66a46fbd8e28816c11648a06a95d147b628c1650984fd6b17c7febbebe96393d29fd4d2eb3bffd1e8aff7318e4de73aecdfe8ba14fb1127319bf56ac63bffe28af88b8e454a5ff7758dae6b74494ae5a4f4a76b32944a3929a553363fdf3a5e38e2a944119f5f54fe15f6e47bf21ad9ee1a8db0f7eee8d91df33eec7afa9099601be0536efea4d7755186ceed23864444315d0411918f1a940fa21f47802c2104b8b9e07bd5cda5527af51a658b4145b9fdef3a0a8459af1a087b32beb97e7ebdd9b7f86f45655a8ca8f051f735e73f9ebff8f0aeba14972686445023a3691411c5900d307ec8c96fc9bd20b05b72af05dac4396daf4c50fd9959f13108656cf85da368faae8c5ef5ffa6939ac1d2f26e4a5c5d4ba7a8abd50d6ab21fb8742ba05be342d77f6549119b6b46ab5771075dcd23024291e844923804843be69ddf6347b6e46172eb8086160d2d1a5a2b63a0a1756918b2e2c5ca92953154e112ba84ae2a2ea13bd2b9947055c13b3b3b3e762e17d1f1d1dddd3cb7bb8bc0828970134ce4721133c14d683c1a8fc6a315a1f15ced47dbd18ac022dbc97676b26ce76645329d97f9c06286ce0c9d193a333ec03644f9908b3374ee0c22337266b4667ca00afec37fd0f01fd78db0d0b80263bee0ec71258c7e052bee00ee3b5205255a0ede9caa9f896effb831edf0658cfb601b283716d37dfad3b7019f5a9ceb8e232d0d9cc81cc59b939952fa36dea5967770eee4baf98f732367e3175af6e14018f6b2d309aa9c4ef4742a3d0bd730f9d29b7c7c1a5cc38462258e7e89a3a512a5a5a7316ec2a9a89c4a4f836bbc5b7ad6644aa7120ba5414bf474a2416987c3a5ae0365aa4f839ee8a39ca45c46205009f7e924f8c69e2b59a2f51f2394e78f271fbf1b7d94291f553160d8aef4a7ef6a8ad5a1b2312c0cfb52d7eb48d9ef67311ca809d7997cfcf737d1373dca7629fa27ce26de93c95eafd9f43d7d8742ad76b234257bba5aae3cb136dd8d68d0e01a271d4e6c626dfa62d99768649106db10e324cdbfef1a4ded33ed5f74a0ec8fc996ec50ea66cfdc7c1d7ec9b8f2754829252f407b99fd831ce5b2ca92babea271e2a724625c02b9e04a3ac98df14a2ba56522269a2fa9b4d134fa877d499a4c26abbd69c524ad9b6c973dfc371a914a9c4a1715b3367e47a487b6441fde91a521d9d1fbd2b54373fd6834db763897a5a1d49aa4644ec61823954f29757901d48d9686fee86f887ce0fc9c724ed33391c9fa60661f44edc2d30733d1641d1f443ca70f78a58ff9a3bfaef7c76c87bab4fa8a937ca8bfd9ead7d315965c975d4a69579ffe131111f920f2116b105c7a16a780406ea4255f5ae4caa7d8531bb505f08dccb6ab6feade8fbe6aef1b655a7a7afde9f4f4df753dbf8953e9a2565b935d13b41dcbc87699651b34fcf09a2c4db526feadfe663b16ccdaf4adf2b989fa261d4cf3646dfa966c87532d0d7fbc7ed198a6111bc9c99199d9426ec7fb22a39945448a4a524a66826b989e76367d3a9978908f514e522a257d19e326ae546a8252229009d944d1a5dc8331c2d8726913314a8b4d6ef417f76e6d1759df5f48ef1ce925b73da671a4afdc5535fa92a3924a29997eadff6aa5cfdc8ef7c51231cd9a0dfa1b2471f32b773dc69974ed5993e9aa67931bfdfc2a537bc5931b71d7d3a73672449a903272a3688a02db385031148c31c60919c2676e87cf0b6437daec8fa88ec5ec065e31b2434d866164f115d77818d9f8d8e4628c5326c6b8e43a9c391febc0e71dc8dcb3109b198c96c55fa87d9681d1be1f51bddb6f6e7cc859c93ed806f830c623ce1df5b01bf11f17aaba1418717465df8e79c6fd4bce1403464a3f868de69c7394c5388a3f9ae1794e151a5c237b9e32a8c860bbbe934a4c4a1d99ca4f154b335f85716e9cc5dde776fd364da33259b2700def58e5fd69700dfea6df5d56fbf7a44b972ffd25b536adf2f2bbcbfeb8ed503a948ec395b66b159577cdda74cb658a7da5c136f00c56c5aab447fdf31316f61fdec9f0edacf2244631393d0dae21bf3beeed0cce32e8801463f99ced5a9e7bbd9a81860c9a8c6373cea96269b00dcdd29cc2759d7aa88a517a18b64ba56c8cafc02fa1d82e9532b128fb7ce5644dbe914a3abc6d2571cf57304abd69b4b4c4683b9b18af166d628f5eb6e7302d0db6c13b9b761deedac7581ab1e57636b1e58ea0a643d3346d2eb1691a34a0ffa0114733750489995f4abbb49452be941c3b8b367dd9d2f0670f69c38a4a5d8f3de6ae7f23089fc2a71472cfcdbec7850fa39467c73c4d314b333fab0d61d75dd3f9d97735990e19db0e721dbcf2470de01cf821eb5809a3d4341ba48796067ef6194956d8411ba41ff5c8c20fa6a7ff43357de93721b09ff4f54d9ce94bff43b5aa7ed43f16e94b6fb2aa36fd0ff54fff83e951f6e606063f92b458a63f591e424c5fed8d101cf34df626fefc1bd9ab2ed9e72b95dba29c1487207a7c747894e888811982f9e11e5492807ea2505f07ea2c2215b9fca422ede242bd622ba250bbd47d56f5e0140c821ddc9e41eda25a80dfcb3f85862e1371ae6405da9667519d4b2ecf22d28f0bc94967f8ef6a4a86ef49e19ef7f35cfc1938f9327027afc2913e853bbd8a3341fd738f85ddf0e79ed210eae8b1df822acfe0bda4b8a75d5cf05eb2772770709d8138c807665d8fdd9869cb3d303ea619c02fd27212ed04979355c03ddc93d2fecab05724276c94cf00a76090be9ff624d1b3495139c53d56ca5f585410fe4481f06f4e2c24d91cbee22fed0d132e085ff1477143f88affe9a259c5806058369619923f3d42edf83beed9d9fe0736e33772f8cb7c7fff21fc057b579231eb86bf3c5690d050919216c93e16dcc12748887f18e8fa1026c23d33377a75f585d3d41484417803c23ff90ee6fda870f453b8eb555cfd189ce96170d8a7b8d1a370da9f70d93f0d7502218410b265f941f543faf37fb85e5a1ef2af9ff6ba28fdc782cc3d0a21c3d6664e2eca975540afc087d6b245d1e010c2ada6562c30ef0765f219e01b4f6c4e4e7dfa39a6bfa2899596d2faf432fd85e2dec52e4ed59453b53d3d0e0b33519998a03e46014317be9c0c4152849015774238c4082bdc2c08090f076ef7b870a109aa53edf290182174e1c9de947e7e5b1cf22f7b437ac983f4f42bc743080e527dfa3c4a2452b5cf579ec43d16c6d96361dc636d8f359393a37d0e16e18d4cc3380a872084dd63c369b8c9a0f97d806eccf84b0af7b068cf3a2a5cfc146ebe8adb3e0647fa140c0d05857b2c8da7e786af385b18965203cdf972cee72181261010d00cca9c7607201a3c875783f769ca9476a8de877742b13939dbc7cf216d5254fe13f75852568b23be9c2f5fda1b92891302597ad5d2a3cb521ff38c856bb44ed45433f27d782c6955fd835b7105137c81c90c52f9f471c8a7dbcb6f8bc374437ad3e3b0a2e92b176f6b3b74e05b7a1f1e2b7e6b3331857f7ccaa4f6a0f6ed52dd83fcf83f987e3e2bc1a9dace3c56498bca40d8e7e43bf699c979be5252cda03e7edb696faaafa09e3e0eab72f0527f898f42fd0967c265bdea61cefa37a7477db53862b4b087f8f27f882fe7f338d9e72bd1fe30df6479d06763daaf666774942c192a12ba0134c47b344ef7c0705ad6211a45f5dfe1065480db182328b9fd949f60221cc56d46c2ed26c06d8a0adf816817fa8d53733d26e9b72623c47cfa98742961075a4a98903032112fd2cf45fc011f36c285db2d749bb768e2070b4d345016825ce88cc9dee4c7b86cf740f4aa26a54585b62a913e97fd9b1f8820fc855945e08ef785cb4cc4650ec1e5572423447cf840a9223154bca80fe8ba7dd4a7a5f0dd9cb3a3b4dde468abfe7df7e9e8a87cfed7edaa5755541605b48b3f118bf373243e46d01fc41f6bd9a6a89d44cc0d7f91c157ba9af25d4ae5bb8ff1dd4af51d4b07f3dd4f7c1938f92adcc9a770a88fc1a9a08a53b1529c0ac2e054aca7691fd333708f2503f7582adc63a5708fa5e21e2b06f75830b8c74a718f85a59ce7afb785616161ed9feafd107f52cb83befc495f5ad59b8f557a427d1d315cb803246ef77e6652905fe4bfef3296d13e7681f6d1604ad1597a37662382b603bea6a9faff69289c101f1e2b657372e29f7c8e7cd4639ca1708f856d52544dd576665a55ff7c1cd6bb38a855b555f5107f3e8ef8d3de0831f99b136b6271c81b94c561993821f11fab722a48e25470e372b2cf197d0e7df939d8e75c9f339fa571efc2941bbee25c8b0e05c57ceafda446381c71b807c5699a0d79af993529c8560a887882044fa0207aa0025cf820073a28c1149c80c2054f80e0899d931f4c1081144ea4200a413e50e01770122609600ba86002841042cc8b2b9899afbf2e1d2eaee0819f287e8c20a3c91650c42088b0051e58d193c516a6e02dd86208d97d47b668e262f71dd9a2063eba4cb763dc6e5ee97faf86c7eff5eb870369e6b03bf63fd8b2b9bdbdbddb8790f0fadf6b8e8ba0a85dea3227b9dcd1b0526150221beceeeece291f72251cc054fc323a968cdf7b0f8893fb4cf235c947d90ddb0584dbd9cbdf5927ea15cb707d50b9db0160453579c356bfff75b067b88d52faaed6279148241289f44fe357033f89f321edbafc590946df9129c6e567a91c8b7a07be67379640e3f9717f3f9a87484abb340a2e211c70cb619320db19f2026911444c14a4b3b92ecf8cd60c9d0e40589399203a13813508e26e55baa8424f83806ee42d05b583b7cba8fcc8915f8bbeb2a457ed435c8f34b47a15774c1ce8d007b13513a4c34410e5d6413bec6666d8318b1981c3957b10b79f631ad6a46ef734024624a29c0922523bd609520297c829bf10433120d06b262806b5631dec5d5b87135b2a55604f468411c612aa5f54bb38aa5dbad76edb0a57b40fb0289c18c1c006981352e8415683273020b40fb221a03841834ec929e94b18e3d54da8f006f0be2018485989acd042176c104208b72c84dcee57d11411463806122290b8fd19929691db0f4393e9540a09263a4ae014155f68e1f6a3d4e08b242e7cf82729f6e99acac1065578210b3e8e104317acee7d89dbad30d8ddddddcd25a8ef42134dc6b5b8308a30e800006110baf0533ec88548f0420c06b8f0595a60c4d0c4858f434c08a87847c660c585bf43bb68327004821d9c08008622b7df14a476758911ab0b9f664b7870e1854bc670e1a7b44bcb85fff065acbe90830b7f06fc82186e022efc922603619e167460fc80c21852df85b70b2a70b8fd5548173c48494128a1078ca0c938145ee8c2edd77ee53a80187b4106a914349971c54411ace006bb5ff6c68aa9ed689596056fc4c8442fb46e07e0f64f4da62b075210d48521b73fca256a576314d08522ae852610c2874a11800ba9545751eed08f16471811c4470d5e20830991f818c113ba82a563d9d161e9586e4baff861f876cce2303154bc602ec8e08654bdd85691aa35455b3b9175842173c708e8233b2e903081b38a002472618315741091a09f20a05e7917a6b820c211f04712f50817581851d42bcf084a7ae5dd8ed625a8540a920f083926f4c415bcf8c1086650b3fb8e24e9b9dd6341922871832437c8742abdef48122446ea76df912446187d51e57d479258f1823abaef48922b16f08120d47d47b0f002241fe88015b02703875e5149e90e41fc078912daa54b3111b76f38a5b57a4baf7a09689dad10e4c0b5022d1ab2407e2b7ff694afbc2a1972f43dc81d89b6a0e43e243b4566dc77640b462e4662953fbcfe2aef686a553f75c1d097fa5ed887e5bd786be6bdf0cf8db7fce53db743f48a67b8dcb2e2766f49bb8eb77a6581165cf83998aeb8b0ffdd1c3980c008126affeb098df40a7ffc429dd45bde7a37f013af06ee874a1806437c440b565cfe16d06556f7ab96cb82dede32a203c433450f127c9200848a214a20c2c5e3c265eeb8e316b4e0ddd0cf0e839deb3f526ee72d258278ab889129627095b89d5bd1add5edbcd5798b7d18880f90219c8222f9917d0891d60fb786682d192203ef064fa2aa667e567e5433f1e7d5d0721de7e9f156ebc781822e336ce95c6620975ffef80abfed9ce7328e1cfc3f58f00fd601075454f5a17f5aadab82ff62402e95d2ab540fef0647a2aa5ec6efd02eaad50c6e154b8b02da45058343dbae7aeb3afc711978b0f79c5222ba70dd629a0de6276c55bca220da85ad8aee782f3bbc95fed4900aa4bbbb9fc0c37b49c1acee7b265c87e9afe9f9018f8d15b7ff75c793c4ed7f53c6ee4df1887680c1ed17dc4ec67df639e03de1f6f56e1062017caf5783ab7ef0c73e65803deeeeae9101dfabc121a352290e3519523f46225151fb796cf1c748b285a5571dcbfb793fb51eae6edba5dcb74151bbcafcddfccd1b141b145714341dbcc7457404b93c240ec5cb0f044fbff08f9f1a252effb8fcbcb8fcb11fe4de0d62e4be7e43ed2e85a79a9132b4a445ed7f5647af80e815f7f773eb75da055a869052cb3adc62eee7d6fb08d906d12bd6d12b6e6ee574f3c48e3c95e945e28303fc727c70f93d9eeaf761ee9a4cd42a4fd5747840525cfabc3d7ced33bead71292337026ddda2764f284704a015193b15efa5ae663c29ffcd39bba7b69313f294990d57305d0b7f2311c10a6e97722bd46c3b40a16474c7afa3a52840757df641083726d487cfbeba5551df3d82a0776016202c3e294230846208a108a584de4f0a275fc5c58fc1d187c1cdcb84c39ec507080c0b4c8e991b4240da4d09274a160a43faf893f4716ba1d4a784522d2464d2342270430bf90372089d4c5192b64a7af81aea336032b13939f465b7c0db6de21e8b512429e9cb78e284c0d7b8d347cef4a509f8e7785fd082e6f24f8f43fec9646f48af9ad92ce9b5e8e0e969e9e48061e9150b0ff790922405f408f48a4936a4e79c768121942328f52c52e7e44d9cc9d32aa7aa63dac43d56cd112434946348670892c5808e9298a3a4e3b797dbf3306d5eb91bbef2862aca1621c02f9be59d2b9e161c021d7f9e82f97942a03ef5aced207dca3e6d07caaa5ac8c9eef0e1b172724e3e7e8ec9979e64b71702bfbea358491f477cfa28a577fb60ea16549904af53334039ca2f897530cf6a0faa5f2109bc170ec15bf1f78fc0bba1dfdddf17d759e7d5e04f91d4f8a57faf86d39bbe3eca35d5ccf63e3cd6666f84e030f9ed6fe49ffc666fb63779d50cb53742502c8ed2cfbf39b12af8f4da1b135bfa98469dea6fcfc3447ab97dc9f220d96753787e808610f101d2a3f3d3239ca6252afc700ae32f0c43a79532f96ef596c487c1d14f71f35138f926272813eeb150dc6369eece3c30546e13068583431837000c0c899a3613cae6e4c854ca7bdb4cdbe388bfcded377b234b42269722e3fabf544ad543fced7fa06ffa611ada608a7a785eaf60af5a9bc939bde95b53f5b06da5bf39fdf6258b83f4d2de989e44a29c4952cbc314a364a82848080806e682da901f14294ad3a99670f873917661a9bcbf219837340463e80d696fe8fdc8c0c93f811123b53d9606036488ebc831836dd474aa946230303191c77c2cee57ff86521fd351dec02fd10221a190c227a0e3d5e028529414e6fd00056d2824f9279f13df848442a53c313d8d4f7a92bd31b13c4c382c1ea6277d89e3210487c9aa9ef43c4e369fcfa8146ef66439eb100d0000000000e314000028100c078442d17030cb533d133f14000c88943e785a9a08b328486114838c418420620c21c0004360680a46ab200058a94c6615efff580384dabe2369e1b2f1f9793833fc1ce482b9fd9fbf693cae090b8e2bdcca7b8da570da1cc8910c942d6b96a3c8ebf3f12e1b9756310770a95f49881fbd48f4de0fbea466f076015ff961e44a74f62a3b6ff82abf5d6316edec222f6921385655e72653e354d987a4e85127e7c064a2519e33eaf90a97d795e6099861ac23dc964b4b6e63bb269c1d104f9aed8bc7b104bfe4d92c82638cdfa9515285cb9a266c27e170af4fd73f6e765e10334c2eddf90b2b0c9758f992b80c0f40d5fef28acd44531b79e52cff7ebf3805600c2b307405b21afb09657e31f157b5683589bc2f285ad043192a7c3f6154f2120aa240945cd06c14831a153b5594b56bf01c79a3fad2610a45621f78f3d8c5d71d6312eaae31a9e3c09901011a88b3f0dbef8cc0491d546a95cddeca5b2a42192c49fabcc42c65788a205785411ea7b4a8e6c02556bbc850e093980dc7a4a38515eaed460588be19a819aa3d108f4bc7456cbcb5551a6569505d3979d4849a0dd048fb193f37a33f9d549f8841ac4439f2123ea2a704a642b2ce180b8ace6874db99981e220691210145fc53efa76ea1dbc5ab0b4577bd1686d147ec4f70bd8c11e5223dde268d7e0fb2b77f44fa064794b75347b423ff3c431cb4cd058d3101d4d21cae95f562d8a8cfc4634266a70b91c240b9b838f2f9c8fbc839b2518da640e7ba2d28533685f2d072380b8be37b26e54a6957234d40aa1d156519e798d050b6d883f8c745ba3e8e94e51ef6c42ec1d952900cf2dfd53c684c399231fa60269bc86cd3581da3d568ceccaef62ad608530f98829d35bd7593699ee7cd9639ae74e9619536f2e16dcea9a86e791bb06be03032e82a28e07ead6b58190fc6f3efbc1b5cae9d654bf8c6c3900ca60c32d8df4c2ca889676abe67f81222b3765d42c7aa686f93a80130f2f34eba06fcc850a876cda36322386bc7a4e6d6e22c1f65cdee4addad071a6f9c7a4c7f7c07c37caf795693a53841a842a1be57dc8b82a7f3c45f3ad95e3e02b77cd4f842e87bb0abf1c44b61b240cd563942868183dc3b84983d2f69e6dc5a5602b9ba6ac245efce4c722717f64c6e96de12fa4897258dbd6c14bc1a1f3b52446d0f374b2d7ce79d5bb66f97ce1b1087847a1f1bd01598de42fc3dfd9b0dff75ac7552a252c2865cbe59d443625ffc0de7c0c515c980293cc93c3bdc3d9c11bf3caf71ba131665eb72a40a18bfa9fe1cddb56306843a493fd6d7a86f202b58dc0b31dca21e4f6561e06b3f5152d364ca4ad80248af4336af98594cdf8b026082e888f2574755f922a767926f86271011d129ad52d84833aa453752e8edcbc25a2b4924c75524bec891ffb18a2ff7c0da88e2c60c8bf7415f96d4bb8f73ba09f6b0c7405fc7d5de49223bad30c8739cd8cb4438ac7aba1f421cf6db29edc8c211cb88e33741af8ed9941652637b59414439907dadb17b5e7621c7ab276738f7e4e00d5912e9397056adcbe7f3bfc905ef365a0c5fbd4deb640c25a8875babfc266867c9dc776a3ecb540ee0b3027250ccfc59af037f7a86534c0e1339ebf0d2a3e2466f599397ac30488d1f49b17b3018ba7c1f5dce32222f21997e6703d56a80bce48ca3970c97f15ae3f337dabe0ce630804dfbb6234a1d900725ae99c77349c7cc8a0295c142dbbbfc6877d3ec0a1eba25831fa03a202ab3cfbbd4c13dcbec270d0410b02601b80d9130084ed5c5ebc8882ea0e211e760f05d3a2496e8ad7ccb2f6315280efb00b2d3113288ab5f8b5f3deb7205434fd05d834bcfea3062f41baed06acbbb747aced3fc8aaae3116e75699800a0a4080cf3bb642045d4c48a6ad77eb50c09f93e19249c086a187c4b059d0734f92f13a3bd65f8965cdc902e34ca716e7ed19352b2ad0cd1ff23756ea52be58cf51734aa1d7c005575f0be275497bd04163032244fc2e6697c3f438551455067d01843e1ba5d3cd6aaa5e002aa3ebf57ec65334c89c34cfc2f9e86b96dc0d3c0e0c41f365fce4962e28f436f1b7dd1d70ec1b8e157c79198594631807fc5b142d983d7ea8bda2e927c7e8d74bd402052d7eed0b1fd7824e026c30e49506f5dc217e5ce4a424326cfa7af2694e20c0e694e04102e8b49de14f947e7823a5de895084e589fcf50ba02a7786a69b843104a1a10ec4a2724d2fae2a41042ff493f539b2c0743889d4b5ddf8823ece20379c7c31ccd3a5e4683091c03889560195d9d92c68c704a426675ad9fdbdcc583fdab534c3455c5ada471d3ca8f465315d1b39e653679d6e3089bd62355348161d1a2387485a511d7588db67b7952edcca1e5782be21fbd1d13f5311a5e50de59d1f8e7a430dd2664e87ebafe228b4fc50dc27ea21d7b7b90de3e1c3151794d5dcd2f17ac97bbd03eb2bb4d6d2ea72860cf66875ac9b004d7752fbceb6efd7f3b926cf50024dc9003e971bf9749813fa23fc9261e8c34ce9e79bf8a7162c8fc1a52bb008cfc8bbba8728430bb6db3d43ee9492e5c69ee24c513f90cfb387153830f99127679ea76898f635487c82a84008c4ddcc7001372a5201108d6e36c4491151b133329c28083926930ee9a4b994d44a3529bd99b93bc098a48749b8bf805ebca66b83566b2436e553452b43e14198a609f30e47b0e5b901f25d447b3f7e069878485b385ec8e55f0b523cb3c76f28b36ebde6bcf7ef8c57cf35fe421dab6307aea233e9c020b22a02a5e90176e6e725a78b0d85b72348b6419161684e035068c2bb0c09b2f5d9461ce1ea33dcfc897de3e57b2846b66a7eb6d87dbdaf77090c81b38849d2bea403de2a8e0786d83f791bb01391ee310b7c68ee220f054342b15d92c2e374a0a7184c1f9299763e906c326afe2fa405f27d47be3e2aa813cd69fc0c1bcc641140872a5d4196db40609313ecc1c8085c4b0df65a4a12d64f36f270e96137b1d2bd17562a9ed4ee4f125a444fa38b15976d11668a3f2d0fb6d94b67b3d15009bb5018ee3d3df03dbae7db052f3458dacfaba2e213e5129109709137e042b90913cbd30e6a70bb753c118e00266458efe8e0c10d365cec09e83e7f675756b3b3215a77a4d25d748aed06fc32f8906b35c6da6114e794d0990a50540d7a53521349dd7b3359279c13dae4aa4c75308f451606cbf53c21be7dc6eddcf665bfb2837c5642dff9d7d91268613e30b32a3dbc5e2e6b47ed45eb9c7a0045a93a32a6a4553211493f6085dcf8f9ca702368d32bbda871f8a4b29c52301db0e6d494d1848f27531afc5b5b7843b57f351caa7a6482acfa3b50aa8c72a4106d0f916acfcf4990e93e6782b5469073d4b00a9adfaf1a765760202f2f7a47f060ee63b208a8b67ccf35cb302b344e14e545218cc42fdb89a0814e76f9de20650f13ee67fe3bd7be0a967b808ce0f8b3d962a0ec91ae79b1f887c4e676f3c00a221ce749f9514fe21c5f708f16fd0b0dbcced8214097657862be86678be569ac13e3cc4379fd1194394ac0234c15dd415b5727a5b4c17451f739a6b3c04f95aa324ba33bd0177a3bc6b11a258c59e7024bbc3dc5b28028722676861671e85381154a6885371ebd84ed0c35b62159e86bd89440d64eac39e83282694155c87c4012e0ea89e66e7972272740de11a0811bc8a1a83de7ab4bc6a533d9d833ff1faa6cd55df89141992e480be7dda1ce658f966eaffcf8bbaeb253d2462c13ad0944bd353a61afcca21155eacb85053da036a75d59181a05f21027e228a166f3034a8334f1d35cdaca74fa83d16c40c44b528adfd0ae1ae63f31446ad6e0a832f3aacc2e04250c672dd951131637423b0b2fe645e9d1ad704bb3c31704fe2cce19465e78d294f4ef23caa4c635710342c757273da01b7d3ae92447d7ebc0ea56ec381f71af563cf034e6bc1269ea53769e0a0764f7915ac6c08907c419edce569c5f0e5fcb40757f9d22f4a8aae23317dcd6414b21ff7c29a268c1d76c56b59b8ab7ea50f03ee1009f3eba53d3e11a255ca26c11e06caff4b3188d25e33eb21ab38ddfc11c8ca85fe5791148a483daf0b6b9508265a39e8e179b2084c4de499d7c0732df7646b534361bb9f4746c502335c268ad1c981ea4951bc8f244855fd92625834a9bafc0673d2637eb82e761661bfd83679b0478f115ec8e6d7cd4ba7de483be3e53ed11fc54409a3553dcd4b08cf8193882d51dee7528273a3243ee6d4b1bc3cadccac9284126f811d2f033c8bdcbd3d6b137f2bf4f0e29be28a971ed268f03d35e62a0773de442c3696b1e09e5e3394d87108e8625fba125ee2e51a7a85f25c4820d33769b4dad948c0bfbcb359ee34a6dcaea99c5a6b407c74db29e2fdee281866f8ffd12e725f73df4f61ded2849d15e3a9c05ac435730e83faa7141c75232e8a909042f9bd101a55c613ded7da971826d0ffd41a24e5469cf04e0714e3b998adee3bdd4102d15e4c3eeeb4284d6b4ebc8958b81ee9af9af3da8925d632f772da5f8c7253b5c7bdc692f1d7a9c9e4f67b888421a4712d49e843b3e42ee8082592f8f032e73822c06689d6fff4a843cef62585a1741621d0487d23fd90b144521908f3c0270a7cdeec4024f989dd150d6f3438e88b3f7a5c819af40a2be098999253862023151ebdc872e419f98dace0e76ae4493192f3b4e087202b5d3266f073b4f8bbf41b7d535d5e6020705ddd30f915ce78c8050a64c184226bf93c3ec8d8b0ae026734b2a802d413b53006d24d80ba4e7829f8998417cf606fa161e066008a6862e72cfa74efe55be8674a99409029b8fdced6c8f8aea84c7fd07655e86b3f566bcf771aed5fa18162f098e101ed8d0640d7b72a4b7c6a0de4d7fc7edddf78f62010ab1a19f0890c9c10a94fc11983bc44c143a2dee7e51de43d609383799b8395e22878b1605e9b9dc3f0d5279b9463e9fd6f5f2b73c2bb62c61033c8203436b07266e5b52f61c63529a80be87b9bd151918319a63c38089af684331ceacc08aad79586861a3dd39c894bf499c75300e71f37b8aa3ebd575b398d1d13dfd6e634e9c7eda8aa0c4fba4f21dc201710d61aba387a719a39e63f770ad90d1fcce0018a0d96a5a3177a84a08339e7115d4b1185d1bfcb1eacd82bee100c51c63734fc05ffb9699e073b3dac35f885f93a72d14baab08ea700bc025c5a1cf72ab8f99b99f5fb47103d6b1a82d86ecf89e64ef0044c033261e15b86bbf090ffa0a253df6cca0fe4075dcab6334ce586133af109978a27606c37c5074c44e6f3bec842183b6fdeeb4af970b9db335f631443926b61031be2559a09952552047a12ca8a4d5d48a1f65765677a93261f346921c935cc0542b31faca90e113bf2fb3e3bcb2fce30cb97f553cbd1c9237a4d6480eae8f132de54f8c33b85f456f8e0facf57493b712fdcaef292c8eb5567f0d383ca1a2abeaf56fafd0d088090edd4fb26e7fa0207fb03c05c3fb00ae2df58c54b638647cf21b6ef02217cb83bbbc82362d2e4542500bc1588700563a61f226135232a39844e7b0104739a2535a5a3b783e70b3006acf3bf1a9686ac75f6e2af6de374b2a399adba4cf0ad25e633784634ebea22ad3ccd0ed2b7319a0d44494498f789dc13b0ee07e95d15e91f71308a02b6c947491c9fd2ff1973622bffdcb1ec246fc2c701e9108b2259e359b9c9b1f7bc4954a340cb27c3b9ee079603feca15013b2008809bc96ed71f9243d5c10637b0729320dba6f09c505f6553244b39cceea296481a155567390d8448e8fb398d808b36ac0bc3d78b396724299abb27e92fb153889ef2e0f6db4cd9d672b87af9ae5d7bc7414f493737f1a699c588d6fc2908d8b18604e9a37d15e8bfef3050df21ccfa4a70b6f2656d62f717a391ae3de27c07120a3712ef01026d5612666fb15de203e90c192dfab65c77ce65201f1cc3625de490c7d2253d9ab7a7b5a13cd81f4c013058e1d2ff85d41b08671a81aa59292a66df5cc4f70b78363c656fa1ba8808f4be9570da94992677103c0390568813acfc70c4bb6eb58d3a7c8e46d45cf8d10481bca766aeb60ad3715351b42b566492f77f7ef491225b0f3dc220c56ce341cd82be4e786aec65d4cab81abfa6fd2b4239f115986473dddd14b7a1e6c052a0bf76dc79fb4c92496bbc476244ac91d7e91460c796ea8241f06c762e726fa072fdb07179832d39e37b14aee3d51de1cd0ff99603ff3b1a9a16a516fca19b7de8a883f73b3b91314d9fc4b84de45e0a894c9a382a79b65c9effbe3151870cb5c65dc0d038fd6127f643fd43ec533d8361ae3e0ca0b5f9d1b5149297447b6a812db9de51b94d95c924b46d29c93d5a20127d6e1d2534d899bd19e5816835e01c5cd7f01e0278554535f7215fc54a3fb6c15757b3f178d1fa50b0f08531c65fea8195bf8d0552034cac996ff8ad59c31f6a8873a0fd1f92c166a0550ddc376283fbb78cf01822c9a304d8b519a9730fdf058e3670bcb1a25cdc43513e41826cdb431b084a94713a19e65a3f5c7054192b47a430cca16edaceb5ca3ff69b7e8a0de27bd9802767bef135c6276ab35039136325cc9f601c4cb9d2ffc3618974b863f9dd40fa168597519aee1f8d6f427f03d0e2ec25bfffea39d09252f5751b5f5a0f0e160a4e67767a8ce1495028ef0b755ec914c8b7ab00d904d4d28a81ee1326d7b3cb52d16273e77bb3c1afc28b4248835f81f8be241bb5b3e2c5105f284c0da0b7ac24d2b6fb5963193cf99b8af601d04626d989fe0f3b1887fdb8383114e8e7cda770e16b20c62b33fd626a51fb74d233b17ec21d08a2f010f5bd41f18bce88b754125e6ff139abad2c08c059f2e79406326d62700a9da8d2d7673e42f07880e43bf84319e6ac74cf39f7e48b8593826780cc2a4ed20e389e3df4b0c0d6fd3c9b18ad2b271b4f9e620fcca152cb9bd2137255376cd3efab07b1159aae35ae066e1df466b01cb29dc4824ba865cc9fe0d268c5a7e52d97b65693215b244f3ce6f9ab2b33872f8162afac74ec3acb9fae550de179c7ce3e1e005b1444954262b012ee85981f44f4b26f7f6a74e5d884791c77e4af1894009da4bd7ee15ae13870c465a953b6ad2c4acf144bc9ca9028a5e78a085d4566454a06740a653010b6408fba1b24bec52ea1bfc0976faa2ec3481806d026ee0ee5137a6c624b6cf64fb7345ab90f5c466dcd5c4e630aeaa8e59efcb33d9c8b369cf08983d94799e8dcd44ccb4cab7877157cb0dfd9455cd4d707321efb4d0fcb376c229f6e5994aabae7e4b1a80c3c29a305e62affd4a14c1f109a862953f924b413d9e1256c5f3e8704c483cb92b92a832f33d2949ac9a69067b38fed433cd33345172f708484f2a106fdc22e7971026a59bddf900f33aeed3e0f21ba7d61c4b1412c78c911982264123c1410a51c34401be71ae56141b5fe3053f63cba098743c9f99947df70ed6f597beb54e9929321a93dedb3aa32691ac132bc49cba816c4662a87a56447d552c831faf3b29386078537ad17850d1f78defc6c21cb241cb01baa284a75b40ef7b8de061c72999a3cd3d49a8c6c79a29bf29445d3f196f831df2d844f7b40e0b1f05c0865c2b3dded0fd5010839b4cf99068eda27e16cf2501d1e1080dc106af4404f19164979fd575f9c48893fc01c1b12cc9b176e6ec03680e58ff8a7777cd558544905e17ef57297ef2c9bbe3a634a06ac14483b17530b4c0486fd0151e4985feeff420982fd29957037cc9920081ec1265c0b50dd53b76082cd679a5d2610908d963130ba3a02c26a68035aeafef27a88d072e268618049fd90c45c9cdf111954689b433967d85094a4be261143ae9a44bfa16ba3ce6255f470c5f819b102cc1ae1a4d810652279bbdae97dccb6e6b81a969205940c06eb451d28bb12c0a165f12512af9d7ba211fdfa4e7e806f1b079097fc20792f63eb6f34c9b30979687d2b1a227d46de925fa229c0689f111ebb108302f38e8ec5ee012b33ed7d32feceffc722abb9a0a9ec22a485c1a205e38806c6017d77b926eb7f2971ab9f44b079b676edcc6ce252fcfa51b236cd790baa405413e66e5c72741705bc2674206b9aa004357ce71874ead70d9512bb3072545a138a79430914355da8ec7636119654f9de0e905c0c5e5d67d22c1c8421cf9d695e619f44277a46ba3f2b54d5c53993355fa559c122068eccfdc2f610aef7c800851b7ee9c51eacf7f943131b6a4b974f6a9fbc21a85f386cfdd627badc57881e278813ab100d276312ae24b7d48fb61717339d42fd6bbf87d2580ddc77334b53d8cf65b4c5060e1262e846b46432fdbdc5dc449a4070bd5cf8c4ac1d1b4218f47964df4465230f25c8cf54c80297228d6b0eda2a9a36fb4b1391cb72d3356f4823f22343491ebc35570d0fd4f3830b4d441adb886db418768aff443d185c80d3d9fbadb5cdd03fe1447c3a867de6b341bd6c7c120d0166b1a6f7347f795f52aaf5273e6cd0616007159bc0935a2bbc0c6b6e8be400c581f31436d0c0ac803de55b7a0a1b3f2c68f8950271ebaee887e758fabdebb0d78384dad2c4937440fa810103e331c72c9bbbb42f2cc519b3b83e8ee83812039e340ccf23a53ad06942e30107fdb3f7cfb71da168cdf9484898e005aa92fe8bfe0df243ec92d792151d52ead5fc10c9daa3c6c4c0834b095a2458b3f1635c80fa55cc0c5b532cc0e00db4565ed330b7ef89aba3e634705b62da68252020241e769e99be36391f82466e92673552cf2412749e290904ab9851efa6f814b0bcc39c62535f4a72ce9f993dc882ab51516a44e405bff2ef65636ed8bd5091080a596ee205399e83e637cbc56af07d0ecbed4c0c8a0f2cfae91c90d6a12ab117584fbc4f44e4751d510c0aa0df09da42b0b957cd1a0830f3469c2d8d3c1dd2b5870b3f051d63b33f707359b9f6f0b2c56a4955872f651d4038c7b495189cdfd38221f0b528a39ab2b8c1c2e0a28fc9b46089822a0552bcced5d3e2c343d7c7f1ac8eb9540565144e4f891649144183e8b86a282e318129a0a28652ead76c6ac6344828805648ff5cf4367118f1eccd5d81d2ada8c2e011d02177b5d975a34e3b2a1705e4c9e060076b350c9e9ba7401bad57aeed391fbe9437fa74ff946440918a49866cbb4bd9d8fe148c9c3716a937bf1b446c1a7326491c9deb8f9d4b6dbb61eb5d056e6abf76eda2178cc5bfd85c72e4fe71233e63b62ef5a3e9299a46cb8c0981cd82c8b2f4dfd65e59ccce54b8ccd43457007c601f20d64dccd28b46572495d7a8026d0100794400940e202085d639cec0d61e6f98a1f078dcd5ad77bdbb98b46aef7de92a6c84fca34889d50bedf1ea751db9803252e0c57c097bc4dd6617f4ce7311e5b7ce01033499f25eaf8bc85f1694766db53b4ec9886157634df4806b53afd40dedee22f4ae4bd3a44115c156e79e743cf08c12d12428cf37fba37facc673305beb4322bc0370e740c7a02436246fc9076a4a76f8f4dfb08c0f69077aba97d8a549c0721472ec2f5665ae4e83c88cfcd19789490c8af21ddb5722eb2ce21d957612857cadb6b2dee878da19a371e84440e8d4c5cc36f0c0a33d5c719a205bac5d8defdd693d62c9bc4e8160ca40b95e206408b1f918cc900cbffb8198cacb92e568747890c017206ca4370ada2b197ddf4e843c1438f5f7d4996b4bf4f4df24f3dc2849a0c021719fdd9996ae87fc9560a817d0adae360fdeba1d81231fd4047c907982a30383b30ebcb3bf37f12096fcbf114a616faf4f83435040c1d017af3e8f5e5d8e11ff8787d5365e8f62bfd8301da3491964ebdf4e2badcb466bbf751e7204c60ba918ba533387ad5526e86738c941c427ef4fb5e7cfb401cc90107987cd1dcff077903cea60d642bdcbc0b268263ab58f386dbf5ad1abff328ba5996cac8bd38b6aa81387e3b285031f5826fb2b6b2a98e86fbd581040548af97425eb45fedacb3c08216994044a33c9ecea129838ae57a025ef2049748f284ba9fb039c9a9382735c213915b6edc3c96364cabe5b0fbecc5710dae181f357157fce3e2dbc10a0359bd7e04d0983416c3aa01e85b88b887d8687eb7d4d198ba711896017c0799ee2c83486b32458cf33dc9828351c5264975e9978f12cbb0999c3118da6bf590dc27aabb6ab1ed721948f653204b5b05713095fbd531d241ac7df16a358d1bcab85519e6035d1f846cc005f224d53aa4107a087d596bf291df8753143944737eb8ca258ba4d20910ef20d6bd2197e8bd1d164e1de2d7c50b0b0ce108c9ca64ac98c59d1943685e766923946943397a3ca4314ef70531fdacdb8afe89930e8be54d2481f924ae2709131026143b2143b1c1bee00a2deca44ff42b1db5030ccc4742ca6519cc881e21f699379a0d5f14aa480003dc3c0923da3556036e53a3e93b1664e4cc906cf0c4c43a45adf2cb717a94ed4337df6aed8e270c689cc32cc65aba6c2f228280918fa2f108f6b36af0c986fce05fd3075657fbbd174c9b0ce58bc75224e26990561d44ffabd839e594c9bc8c5a340d0ed96d0ecc61781cc164e3891e6cc2cea1b191b387c6600e7129a2a16e0c3636076ae8179fef1b1c7e46912f66126ed8bea43980f53dd24b98caccb3ea4d79e63e40c57b4b0dbdb20a30394a53fba358e212dc39ccfd2dd96653026e4b99c05c99a7278562746c3e5c90c104673a1778df455a66ed6a9b6da230b98509f901933916055b4b09612e6e01c58e5e5d25fa4ffc8ffd23f7bb54af56d688d2fd07f48551959c11ca7e64fa0cd2231af9a1610660e5a8af0bb68699c01aa534626841a7ffe462ced74cbd5f77fa2786665459c4be725045fb2479440685031d7f45011c5148bed003bc37e891eb1bab3c4d6a980e4324bed881d73c35e2462117bdbcdd0620878a164c5bab0bdb779bfe2e818f3d540d229f70990867da3792cb12940b1062841ad1d0b0bf5958d66a51fa645f54aa0fbe57e1480b9214aa4924724318665d0b379537c5768b2eb076ebc89610b2a8a37609e9fd5933b0076f38a8f602d536e94a96f1f87c09fb2053f989b1dcbe706a920301cab438b7c72907a9a0082d36bcf80d85f68314f54f91331e51d89cfdf5b1aff4edd1019f7164f2460c3ec16f5bfe6487752a613857f53a2aae4b28f89bfd16b568066d5242005c5df99f39b9a0c7effd2e6ac27eec6849cb69ae726402a882e6379cfa761fcb2e12437aa281c6f50ef326919db05cee753479f6e7561366c542262b185b6a0d5b149a751f85aa321a14fea16776321d598df5b40c471def14468c4532542152f0d37ea6c9fda0c4d399697ea740dd94fbad975675fa44403853865df013fd26452699b8fca2174c5d089ebac8281754eaaba475f3d8f3f42ef9789f076e3d29eca7ef30385ec617bbff7d8f4d6ddf05845829986bafb72bef278be1c644cfd0db6fd9b9f3d18ed16aef3855c3bc35c8362e4529d625cab141b7402f0ac141a4d4a81605930b813807183aa51c0981bf92662bd83fd6fb99911f1acdb9485160b00735f8ee7769557b668ea3b53fdb260d6ea68195fcfa2a6b5b7996d5fe856335bf8d8455e6cc00cfa929f445d59b449b5a38d27a5f389133163ff7fcfc70771b79dcc07c002666c63173a2fd1fe233f7b71d1ac80f47896017f1c777f341d9908b8aca2bf61ebd56f4f19688e246c93148c5dd00e20be2530713d3ef74cb34c63ad4bf8ba5824d7602edbb227bf59c73cb36fee3114d736f7410fe39a5cf3e02261178152f12219e4e05705ed14c4a57f5f5010e2501640a0f959c8e1a1a47b857ee91ef7a6bf1f9ec63011ba1882b464c89861aef7925b5fad7dcfce7d20498deadfe2591d4a8f24438bf495720d1973f321d144a3313e1f22ce484188292d4c58200674ab0bfa549003d2834efd22b8cb6a4233846505dfbff877d7df63bc5593119d99371bd8d8a094c5879a93f64acd2c28596e7c9e6cc161e9c9d978afacc5cba940f78eb095d38dddc5498a0a869b9726e08820c2d1c629651ddc9b80e0654d992c4bfc420367eb79b7770bb0157e2d41c76885a85170d6f487069038488b51665de1fcc463663340c6722a55e96e3d5c1b0dc1cb1a993caa1b42df3719c53b828ee54a96766f5c53063864765143577bb428bc1e2e8d44f0ba466e87c2842ced83fbfc5e80c6b052c7e0479f92aa501bb3601b427471d449595f1a073c3a5bac877be313785d2bb787744248fb4427bf07a061583126eb4cb25a15630ad7d00240436339e2f8e6b499ac837b23772dd766724e0dcf9eb46632ef3d681c578a403babebba450cbb2c60c8a4db191dbebb2261ad346dd7b8b331d101f9dd048dd14a30228ec4987d70f68dba8e6b1135179f9369beecea0f47c64fdf09c19409f7131cbdd455d0e3b5503c3fb18f48087a5a3601ef9ea0810fb90e14cae0b50a927fc6b4f20cb47136b063fc1e6e479877a60aece116e4553d19f7c6ddb19c4541aaf7553e52412e8854c295a11da78666f545619d1d77d751fd798d7c97d71fdb940ca8378c8912e7c9a57f0bbab79d8db63cbdfd1a04c26e3fcdc17429cbdaf4d099ec19c871cf1e4b07f46b9fb13a961e391c02e51d62c8b7cb6d7f5f3d0c961cb8968fb2784b719beb8da01ac590c7d5588d62619da50d8bebef22cb23a3ae0f65312abe9c8f5778570d0bbd2318a7e8100654f8686b5e1bcddb005e33637669c330b513fbd834d286393129e49295a8c11210a2c7accd1b8f25f583c38e54ea128542e5a65b00b48295d7a28a55b2016d6273b41cad2592a77801b86d6a85de5b8eb515eccab64444714e71289386999a943b1eda6805b530da328b9893b6ae0ef7a8a71d6828990e86cc59c01081ace9bee530e7d4e8cdd42acfe5aa456f1e1517f7965c1c4c68ef20d724b81e6ead753318b9e922908a11e44ba97fb7aa1ea722d0d28d5e7bf431df3bdf38ca22cf5f6db46f757cad655ea0d39a1bf2a8c4214135a666df1e6d869c298349c8ab1b40eeeb8f7dc2b1b9500fe28992af92e7fd2e4b6a9991072789f1ba75450b1c24be3563a1b7d3fff935cd12a29f7e9f0d05092824d657689b09229a6cb7622812cdd8d6a2ebf8f2eb5734d7e1c80e4a3c0146db36eb87b916e3aa9c7b9e680d4bd048e01fcf366e02b94a600f1318faa267e878ada0d724be87e92bd0035042f656638fe45ecca489cdf32ea6a64d2ff397d39f1c7829b6f20690d8c35c7a6b2b24d0687af63081454f082471ef55f480047a95be36ad8656b0f70a7a94ec5542af470f65d758bf8cbd58e613e9b1cfd6010e7e562732b94f092025aa6702b3b1c0bce806ceb55bc6d155f32946e1ecd9f66dd59414eb420ff066e2f63935ca7c8459e76175065dbe18b07d2eb0afe11169f39cf28adde70c656c2f1c772c094583d464af9983ccfd4168dd67d11d0914ed3e62f541efe90627b5a71a51583baab6ea6cf3d59511e07dda7325641b12bcddacd95347f8eb993e5dfc6e33f5d46cacea898b7e2f3e17e48fcb7ab50c99c9fb893edb00b42ed7b53fac5d719cac4fb1f05b6df67e90614f9801a45ddaf8e6ed6e21d40c7baeda87fbba0c56e7340c5c8774e5cbb027f5937671151d954b0b0fd88c57e40098e27a4a3a71989c903e0867d87344bcc0a4d81870f42762c211889eb1c81021e24d8f83d6b28f726adc694c0691d4508a9f176962293f33cbaa6a06d1f749badc63771223d41580b7d8c1b20cbc05cb97e9e397466ef0977af0d523a7129e4afb2039904f2b1ab50765bad2dc24869c315db3594a8abb041ff341d8ee2671b4e1931fa0d78cfdf01718aaf0c780b98df91b8ded5ba73a13fb23d91b501dc13eabab800883d4b08ac83a4b6b1d1356c450c3274597780aa7395c56797e434c5c9b49c10a15460e7a291c138004b39bf659ab9266fdd910a345fd7f19412292dc3ed3099458f093c857f2297a22878a2a9cc36686a6649cad48ed77c97cf600a947a7980691e284488b3b632ad625ef547e2c3ca0b7cc37352ad24f78efd83dab4deb6bd4836db5e44f545ff77f5dc16591964358f7204896895395c36f349e245a8fbf485b003bcc8d47730924fb4966e726617b867fabc304797518bcd8a7182d2754252b255982e287e60f4c757ba99d020a743fcaace752c9409ced5266bb89c6b60cfaacc9fa75361f677a232bec74a28a3e0aba25b6b8a8edcb8e7e290f94d834cd4e5a9991aad3ffc741b80c23b58d65d7a39012631f692cba3c9675eeaa49e7a0add0c5c08a9b9c37fecf5e95783dd8cfd576abcf586856ac053dd717c514b959bc748421d8d407a46b030eeacbe4dce12d0f49dde04faf2caa7eef6c58c7dc62a7186a60c59ada310bcc09068c5075354f88e9e2141ce74de466201663c43ebcd7bfaed2a22cec67e7eb8be55fcde240896c58c1da614faf3cbca328243cfb1565af9c20c60f766f91e98439c1b5bdccbc40f16b0b2864dd2d6c4a6d121329d7cad65919a12c75a39d7b3417b9dba360fa3e94a3420c3899387bcd5a8bd958b4e6a2012c3f793a07d72b22610fb7b931bb017cc5a3a3a11ba952e29ff0e58afc19853ed15b1ca3e8f07f5cfd43a51ca7a9d2865a8a4a5b732b3f6f9131151892a3a56c7064b23c09f0f0c3131f45958e39a29aa2cb2dd1f5a5764d80e8d28fe76f2800eef5f43b9ad87d29423cc6fce3b4d80040253bffdd87ffe55a0217312147965d1e9982b465c31be81c32796f04ab9857e06140470d8f669f312a0b9fdf71251abdb6c51aa4def3e402ebfb809f1bf246651b3e3bfa555f3318589e6d5e9921fa8c967a1e0f2f662d4f121cd2deee62f511dbfc41049bbfe1cf75950fed989dac5e2d926fcf507da855bbbf38435697f6c167d3446bccbcd663ec18e355e018a9444d4a22f670a15fd7aa08954a146825b0fc9448e803b65475f06081d3e0d5ee35c29b95c3055dcdc5ece25acaca2a59ee52dc9ddfd22aa00dc81d45b92e9cb816a5bba4cb41d13508e9e2c220f2a170a9b8b46d953f48a0071a1f1af06ca991d7a4e656340566d7da1123bd0181ee643485e56356102f7558d81705082276205e2ef102559474acba29c35b4c8f4d55f16305015c3a8a59bdef11c0a9168a659fae6b42794a96701a2b6a845dca0aa142659ca2ce1e86c36b3bf29da6b9bccdd3c3feebed10a01a8b4eef5c0db07720c5d944b3f3f195a98e7a2ea91265e825400b2aca234956c08eb1913d7af2f264f08380cb61c952c62bbc0edefe697b987f1fd57b43996ae83901458bfbbf470155fae318ebf23962b015d6775819d3b519a8328b525e83a9f2c0425794b5040904ae7265323e3c6696ee5a1dbf7a5dcbccad40ec6f9d1fc254eccf0968b4b0a3018a52853a38e3d42308206abbf4111f0c421586e1290e94403c4b5bb2b9b45585a45c2b75c471842f4bd6afa73c0f79dd5811a971444c88f0fd24e5434a1d779e0f3a3b6cb6ff742d53dfd9636d37828ebb5d875944a0d16b31a2f7832a14466bf307f4bd3366073330d7916fc4a103ca9d5ce606a3a2505789cc78e63a7dc10895aa53f47bd0e8263ffaa39a1052945eefe81ef474cb4ffd214d64a4160da5c43b09e6b4cf54d9d89929e9da76dcc35b6bfa00b61b4c815255806e0f0a50365ac91fbe77ca986abd12d2d0f85b4b33eb41110a5d9dd840e0cfda20cab6ee62a82641a5d47795c9f4833e9488b74eaed9f8eaa101bbed67a8672701d0a2e4dbbe67f6410dcaf8a1253ce7d9dcb0a6470318487b4aa7669f1dec280b5f090e13b911ccfd08cb57ea802215b87f7c605a16feae3cd507d95197afd4966088105c44d25553dd5dea00cf4930c3c85e20577b270b717f77f0f06a12b3ea22997d28f3505ed77c03e7eb2945ca77c07ae53fbc73885711bcf5ef92bf26db071ce34917bba36e491d357307d3c5324d7568c734b852af42fd569b763a13e00146a4c3d13920ba981d104a0ee74575eae16f57b6b60e28b2c9079e1b3f4c1b2c2a4c75740e6ae47b11282746d4781508985683054b139ad1ae5c05730cccb40d163b2a593e2b561f1234ac45896c12ff3fb3595847d60da4025fd1ef680882f7514d08627296b4ef943f433ae67d188706a8b71e501650e358f2fb4f975b8b106ba5de4fe1e049d545ed8941910101d07b3e886af0f493d91ca2022818bb6c0baf4c6d7513dee7e66c33a13bd66973aa69e846ac3fe72e3d8df12faf19a804d05b41774d6b4f52cf6866087f81c603507aad24dc147342dcdd818610d410de9351f5f1a8b38b7da63a530286ada80795bdf00e49184363d617679c37668d1c8a12f0e00ba7466e3cfb326907ebedd767459589ab7ddd7f9c8a59796437b8329e40225f70b6df13a3261f768a39f6f9571dd8b4b6df4bb5039b903ac214d20a1abfe69c324f67eed39c3753bc948475e04d7a27a15cf2a48f59bbd521b0d058afda5102914a63c55a8b44e329dda3227da0ffe252640d327e30d25b62773b8616062363d59a26cb3193494858ddbc89471e21eef9caeb5c9ab844223e5a89703165350f3b21505ad79ad09a304afc1fb5329de49c13e865727be49c3de54ccdc905c0a9b1ec19abe634cf4d21590bca40a01751b4c5e508589a0c4290e58d371fd32239a4ac41b1f1dc1b14241a21ca26e13bd1f89a193e2e2b06565ee75f7209d3bda5d26c1df98f81acf849954bc6f55cdae38a30c3283c6583acd24397636b460b0847e7bce99943177788fc3fe1bf53c163194c92716c3bf9f17036183d01208fd106d361ac08d10391f34114fc2b8d80058748496b58c2a6d497354864dcb81ca4631aa65729cf8f6db5043f225c98c5eea672d4ad51cf632d84127ec9bead032a774c2865b9fb3385cc03f113f0dc457050cb02493c1fbea785c8c8f16d418ed75e088be8f7313e68bc1b88c4a35fc39e503797d14803a01ac9d37870e952a90dc4522f63576a015844a99cf74741704e8749d945229cb357dd4e3ef3878a68f46a6bf51ca529d77c19971ea94d7e9d1fab14c031402cabf07aca65ea57b9d59b91acf91d7f18b7685781fc6238a626b731d13237d63666773955a1dd41571f4276ced6142beb74bcc15c57a0615c0b3b3e7ef3b3edc511d9da98836dc086b8e3077e2306ce37c8d3f8b8ce369a4f4505d2500557a1013ff431282ea858725fe1fa6f3eed49d52db8e72bd58bb16221c24957ce2c1b550d52647ed0f758d69dbcfd02c64b559924ef31bb34459dab6a42bebdaad3d1cea54d94725478f955493f53a9709e2a411c4ad2498c073cb14a426d76c3aad6f08459e22a856df1b6205ed613739d44059f9218c36b765c5991819811bea11aaef1ba95d879432f929d7b03762d106f5bbf9c4abab2c18d73ce8ac87fd40d7121b844a4d72ed2bcb2230013bdff42aa1fbba7c887407d2fd44244c178b01cb4c262313e86ff6ff27c53dc071d51ef96ee50360eef0631e31da2e024ad96c80337fd1b2f27ab847942befa32b191491a51d8144c4b86b324ac121275796827685d954382f662f95b39c0da7643b31396a6b9cb7181f232ad9e7283f7b24ca139cd3e35c4da865ba8a74c39a66668f6a56e4c0a4b75fd688e246fba48d9bda0ce41ad79d5d03cc2491b6015628445b6b9b2cd0acdc96bb0bd9de7d72d2e4273089c6029134b6f77fa5213749105456ed713218c144743b1aabc43950e4e03c087dadafd67fcacc0cf6022f639bf0eef14988bccbd125fed4bcea1a62a096a69e462a4a940f5e993e0ff7c82cad95c020aa67ac5dabf5d2761cdd313d2e6f4847ad6edbd383850cb853ecae5db125600c7313726a34fb7fe4fe2d9aa3be282729847a4bfc79dcf1cde6f23c323a64d134c5ad92c252a2f552baf014cca39a8ff6faac19c9b48b798f1c9c73650a3647bbfd596537a1bd9ae8163e10d83ffaa127df605e00e3fdc62b79863fa8e393d4f4b4ac281facb1fa587dd55c54466880cd459801b8addf0f205300ff31a8d9c3df5ca4d55040153dd1a25d1e734b51d9f446731e5bb541825e3a19af5a23a87d6a8c0c3ae55bb411ee5a5ce96b47a6c7eb7197dc184468035a9fbab1d6283012e6255594b45e56bb6227462bb5c7c4090a37702027267200d81ecad1c8ea5f3c47d9982851f86096070398ef503a69070654dbb82693b46372924730d74900f2c7fcf3763e13fcf645055fae30ba3e815bbd5e4897ad6e45c309576a6faacddd2163e9d10d0df06d21606c2df12f61a2e2b3f7bd29018e395d0a692c3b8540d3b142b847a30f96d0f319e820dd1acc98580abe8509a7ed409e467e753bdb69dcbc9e684a09ee2732f10a541212d1efa1d4208c17a42ad623f4eaf6abfe45c901015f97332d2a878a68c60095a6481d6ba3c7123bab0b1822be7ba1685d0c2bc1fdc1cb2be451c5a99d7476c67b6b129a600933e6e8851388fc5b06027b80a9d8949d4855cc5d250f832c9e01f66592a91af40403e79a326eba3c3810799e438a1b66c1fed61248a2444155b69996134059f4deacd0dbac108de722c1d6e1a50d741584077a12834c0eb76f4111f8d3ae85540539485271157d410245e6bda8cf483809106603ecbc633b4ac827b5588932fef68a4270c285e4d9b1c19e73455e5edb3895c2e090db2b1699e79d0320b1eee0be02bce4983a72a593ec7fba45bf1e74138b4ee4e3dbce35d5c131267b14d4ca490e2ff92dcb3f50c0190b18e0d96616ae710d31a073970231913c546c04047b38d08b0d0b393aeffc750b8970582106c749d7c021a7fe096585d2eb4e0ca28f77b12910fdb030963f7b18405ff20be2ec76e75269fcce4e458c93dbec1500e22a8361e9cf10f22f91171f0c7ba7e215b139ae4640cb405e8bcb2cc4fd9f65d80f3b7004b4e1a52490389c5f19681eab8012b81dba2ade793a8904af18d5f9ba6163550ab0d80cb3751dface1561faf717a8c113cc14f465b3c6f08075fe6eb4b41b6c8911a3c93d93dbf8d5df54dcfe6a9cd17550461f3d0a49923390dec98db6381bb31f5bb58607db3c404b809dd7cc349a2efdb0fbb752853a98741a4f33f92f30f20386547c841b9b9381e06eb002a4e5194cb92934d6349c15385adb5549ea298b564828bdc708a9fb0c263927dedc4de47dd0ef8d6752d1e53b2971fd3623afeb66fee73a0d1a666238701d1e746e1f9bd95ca5c7520c8694370073dc483d12955f767d5bc58c23f1151611528eea82c3d50277b205835016e2229c8616ac8d37feee01e4aacce959a21998141429b9027b088545473e1be1a0fe004815882a1a929857eb63937c839166e9a444919242aa1ff9487882c58a4a1c6058c92745d9bf4ddecf8ea1b40897afaa492c2ae7b72d618fa083017ed2523a07cb2a89a229f458a57586a4c0d9ef04cbb16f0a12a93dec5d525a5d52375f683e9305fc04b6e1e384d9c9e48363ba8dcab8ace1a89c69264b8a4905c786498d1f69f12c21c3b73a93b86a9c9f1d21a5d8ab420f7b42788978dddbb6e8407de23172d0b23ca99f2ef25755f82bb70f3501aaf6cf775bb6c34eeec5b88a20d3a28e613aec85f4ab6313d5f2238087f1f1c93d49c4e59bdc82b50262c05a75210c4fa88fa28599baefa3e1f14dfb05f4479c0b0870f5ab9b8a988c0c88f230855f822fd6a3a70a65c225269b37f185517fcd9da1a6993ab9810ab2f4e70ed3f0fa63232102a5e7a36906332715a729c5a9c18788a9c8a3b32e5322ba792ad05d2322b5efbc3e3f96bdcb14d61fadd32f74dbd4812bf5783ce0cd8b0f85e771c0914ef60da064c66122910f435d5ccdabd24a8f74085a3a90e950ef68ef8624ad063fbdaed262c029615a386e0f85554186ed149a13dc90bae864006ddb845f234f082fb36edc80db1d91b665936fc066a375990b0ae338cd9109f7c255decefdc6eb43b34de4149a23574d678fac01c0d57a673148c84403aede4e6d36643100ab90edd499b7eda42cfb8c16703c89d55a6d3a74992cb307a50b941ec9dcfe46d5ac96e8962911173c7e35e0bdd7e20d70d9254386741c246e31959e4917177e0fe26e0ec3a358e4f4fdaeb7a5d80498b7aa52aa16025ea553cc0470e759fd98cb3b439a9d33dd009d0949e88f6d38f80305b7a2a125145bf07fd43233312018aeabc9afe923713c985deb577c8e8201a128b2ceaebaa86497de491d8f9216fa957faa946741226e34062a0e809ba2206077dddb422acb36aa7597f05072cee1d54abaf7bba47a123c6c261a3d4fadab4c51143329c565d4871dc4d1c97c436b2ee80405f434cc1044a377e06e9272f7f3b84c7494b984b1ef3d0dcc38b1e1ea43e1a699e89a88d66be2223b80fb2d9df2e757bd2f329c719aaa4ab0fad47e1cabb8b030928bda52ad56dc478b1c4e281ad1ed306ec1a1537d68de8c720e5793392521cc28a009ba2a1a1294794fa213ffeea27118ba1ce92cea9d382354d89446f168b88948685b58e90902b736795eb9eea5b8b25d12db3604dd1fa69be195cda27b84ed51f0b49e7171885346ae2e184aa195d97130e71c9dfee70ffd6af293a9ad378b2e8ac6d44f38ff886d8dbceb83884e4ac4f4e6414286f90d24c75f810c97a778bcaba8887336370d030debfb443b12eea31ef3e796229c26514044c9efc8ba215f8eaa150bb83561087e0cdec5721b339942ab971d5a6b9538186c4f042b10ddd6e0233d63b4841cae560ec74c0a0dca4de251c567412ae3453d166d2f637cdff9ec2701d9d0f48baa0a6081c61ac0ed60c16cc8261f03ca11b7424eccad0f36d3662ca6e64970c2d63935b1aac8bdafe4743932b45a4aa7428f277335cb4d043475364c6642f091add0716ed37c4addff9644cfe1d919794eeda1acff0c4d0f42af5fe923404dba1f46b5e0dbd1f660ed0f1ba294c5ce4634c2486915efc4c13c3a458a221a38f915550974609418ac9a1f11e0b7a8f607462528a890cf9df3c978f3d95037742976c97bab2a1a6588c8d45c43fc538441248c7dc11e9ba0738427f962048be456c594c112079772d6dec4057cf3f18ac90bd5d2b8f260c3e2080f095d2e2fb01618192ecf86537ecc58e0cee204cf6167a33de1e0f9b220e5022fc618ae4ef57f0ee72a85e031cb67b7d31edf2e26a1ef57f93074e6c09e69673ee13680ef9896dbe496878796357789b6601d030de44dc6b95cd70bcca1962f6f5caf7a871624795d3945ebf7243a7f961936d3636186e265ebc8635279979f28c4a56b2f0707aae1ee7469417557740f55590bd49100e4f87bdadf54d8bb51512f05db42e8dad3e8e5a9ad4e1805b997b65df625a29b77719a06fbb05de559e2c7e8cd4be8dda79b491088eb7f56d6d845dc9f6a90d5c036c5ba2e46d00c1bbba98e57a9d3d45c7534cd3b9e18a00d8201003b66daa1f454d77b062f68da5448c0489cca7465469370a891681d3bbd3ad259c4a8f62a78fd7f00dc9cd4c04c4273997ca352cea3ec7827491c1886111642a94568d1a7f4cbae9be3531ab83e137dce3787967cec7fd6f2980da7adbdb888b1dba7f85fc440b1f4529b497188701887e7d07b6ff641602fdcbb50c9c916cc41c980ff5ab23a5b7214f4d7a1bf82580ad0f9db7adf19823f702143da8e9cada1290ac467d72d4dc86eb860747039c2dca0a6ca2b5b5f32dd43eb9e04e6c59c1b03958690f1773036a9f5728de58e515ca786bc1aa76343ad8cb0ccdeb9aae9f7694779f7051d4e015bee13107e36fc7eec298573402e223220536e3a9929ce584211e1a967d8c6d84b8b72f5d86ff8506b79c4c44cc64378e04718b2b532e8f3a00bacc8ee4e25963dd914fea107f57720c7ca89c90c9f141e3fe9b7554a72f545a892bce72a50c4f3522cd0749e25428003420c6c1db6bd162dea40ad516a7a883a14bd1e4a1c63df147058e1105f902f557807f57d15302c4c681c9ad9c646173324c7ce25caf50a1c1e9e1bac27e5c39198602029a45b3ae0368b6514169789b92fea2e08111256f96b26996aa95b62709df74fdef130441ce0c9fa86d1e683daac925ad62ff126129c4053353173581fd5d87e62769652d689b7478502b080b0e06401cf5c43f588627d1fff42789c3a33235187cd4d743b69551e7591038c17dfc8eb22243dd3a1818c82c1228a548e0b075d3614c41f56c453c5a706068adc44063342c8ac7d167785a24ceeb68621a4f68c1a290ba1a0ded9055e08bcb822aab7e1a6e52a8eb57cb2b698e2f44bd9f1f819c7aa1fa9f7e436231b69c8d0fb9c972482f475a569c08d210d339fc8ab4fe80f265b9dc5932f6ecb40649884f8ac8c50cc0599470a883f30edfdfba9f11cbd98daa113a603fb7d70357b1390e055a9236f907eb026bdc6f4631dfe129aec14c9d69488ac03513c5112ca5d42acfa210dd2c0e5e83b52f09e4efddc01f53695599f7bad5b9a8fb2d193526322ffffe2c70e0fc5c5c3c6d32d9cf40f01d00d30264d5168125ada8efdc0107b6259a65447c1ae53838c04ac5bc0c1bb3b02ef0964460b470de4230da456c81c4731908762b42f50c3693c3e6d65e79566576a48cfa381eec267781052d65c2fd5863cf18fc6d9038691fbe2e721c06543cf4555b00df5dfdc7d790145c1c344a565207bb0d4f57cb0a7ba2681f235b412b595e6328ec29e03bb55055ce753876b94c03a9b706ccf4f6c9a57b4d402b97d1fa606f3b0636007bec6f06f967bdcbf8bb92db69f73129f0c5ce19bc350851f4d62a87f4982d77285f86cd134e0047b05ac6ad9ece32b5aaca6a687cbd9bedba659199c12ceaab28b37f5f3b0b353e2b816e2d6ad0ef0a0832ca5c10871128ede41e486fa168e84797c5040ce9aa0698a9e5c12b35b76c27d722ac20895b3654ba039f91411f9337552bffbe3ee1f2df241c49bf481a3c5c7010862af380342d6bc8d65dfdec77bd90d01ef8067144b21caa7b0bd2ff931a10657a79235136a2a8cffa60b1de1d21efa19ea20ac7e30be43fd1243cc5b156252564179245711a9fb34478368a031396d2850d8868ee483ffc945799b686d51574fcb32c9782d3c15d585623383bdfea9549c958cdca53698f6410677291d525cb6480141ff1de03cad8c502c05db84ccfff1327527f7f77687bb1a503657877e37e5e1ad4f492813c760584bc88ab8e35b83216bdda280b4f3ffd5b416afcaae531ecbf68d54a2f78b0829a87114a54a69129cfab053653c1d42c9f4a23e8f869f6040fd4987ad00037d756de340d73e9fee30a8113953d515120875c6e3444372d0885be939454cf9aa93c49e93f227d74e1b124b6aca84a2e84140ffaacc833616930a4c1593d98d41c5ff3ae8817c9cb442cac52245bc4f021deaa8b5d1077b94baa0edd7baaaae6d15df935c8ca4f9d779fa3506abea693be21ba1422d309ad08a5e2ed4db2d67065bea67ae907240eae4eb9f40c19383b6d6c0c93ada661eb5c34910a50fa273179032fe9f035a4d328a05edfe515e4b730577a4f30bee8578a6d050e3d346add7901f7eeb345a55fd035c785026cd8786799f82a0892e0aa3f6e3a432347998c1e3ae791e5e8a0e5bfd048f5a43f57f81ad31485fd06fc19ed73bac8d9b8847b5969e1bb4c6ad0ace222aa03b5b963361bef3ed2ac4d714665597e6aff8d87573b73407b8908998a410700cdcd594a367cc51d1f449ae9d8bb2d7c39a007d3fcac4f5cd0aac262e17316016c7ad334e4bc17bf9bf540e8ff1364060c8145f88259d9134a8f98113a0d1860bce19d92113a52526c714de46ac09682e8d7766cee86c7162c7cb2bc42e58f3cb484c159f84a721866c9a14807ae69332026b5e0d620072b9ced2e1fde8d74d5bc8625e17b58a8227f3109d632ba07375e0606a08665e770a0dc8cb29cf17b938d71d205d8f17546208e4f65ef771dcc2483df9b46dae4f81295d97181427e3fe83fe0f7c27662776514379b23bd99e949ec0f8b142fd913bfe77cbc2efa9ea5c6be1953fd39d0f54a8bef8920befef2df5f50f2bf2039566e2e35323ecc8ad068e50021210774c1e318937b527b147d9b97e755bda925000753f6ce6e93b28f9fac963cc9e06d602ebe9641ba01336aa80c71f8ace4b0bd40ab6bef7a9f0a9496d0933fb186e9e6fc30401992873c5828cb687d10585ddd06b47551968daadeb55af2746ccd3281410adb0664b4bc4330f3b3609f725b6cdabd610509907c5c9ecae789d322c9e3e29e0d43008642ad2325823ca198ae0e5de17458aa258893e898756dce7dbba463270cc3bbc4bac557cc32e32bb760655e297f716862250855a91cda9194d08a864b4632286b450ea107f3916532986e3c80bc6b23390846884880c03e644f1959d3a21a9c9dc48d4bc8dba4f2ed35f14db3258496870c5cdb198e20ce440c7a7dce589a945601aa2885a513dc8c1e535f795fb55fbc21ee18332989013a30f686c8693e41a97c1640a1b0990caa0050868610094e6d11a86617f63b3674eebabac1301a6e5abc2f972a86f91a9bac1da9774055ed3b81d86b98c51a7a3e4395648b6bfe09e57038cc8057c6ddde8b94aef282bfc4e28f8d306162123d266a00de11e43fa9cc6b830ff592a71520c4b522c517e380bb7ddefa6bbce4028b63ab0f687f2f9be0a9895950932a7dd29032a2ca5932c08a76ef5412173bbc30d1a9298d5700288cbf87cba32c6c682eb7e72c592e3b05063c98c36f00e55b989eb2f68c99de50b869a7700d459ec2c201ee5c4c2b4abc8d3894f9979585d5786cb2491d508d54dd89d8a9263d2075368dc22752266d9883397963f82f35ad74ed316d8dabc19e52a4fe3c2cfec96edc0200ac9977c3f2d2740d9bdd9f26c22bc2ce6f12955e295d9db57e698bbf2c7117b2a5a1f513b5ab0f21cd4dc05e3b7b8233a16d336b2898df1002ec4a660544bf356236781052df20350194c2c36d534b66f9d03792098c030c97e4c341437c26a79fc4ab8101cd2612b8baa5b9200bc571afd60d414628b48fd48b5d6a6106855f4832762df3c390465feaab675891becea58952aa44573a1dfe522362e4da160d6ed8680a226ff443bd57a49c5885813d91463e8f6bda4da1d2444c444c9fa34e6ac9a3067e2023841bee124b9c50a9a44ba96fbbd7d3a817510b96d1dbe75d30dc7b887f43704377cbbc1e37d2a0ec7c988ad222a2ef6f5ea672c354b8c9be09c40c264a218a3633b2e17b809aee1fd158a2671b56b51e0cb4ca0a7684fa8b521850777b1a03087ef332bb9fcf9b7f33957ce24c25dd22b939c34db9519a098fe09e051c39269ba4ba2991b3d6666f4fb2073244b98599a51efe25b8ad896f6807d592b6a9d9b2c7c3b29198e01062a72dd821f24cea2abc039a347ccc0176f7678bd0cb1959e4b8c631a0abadb2a2a4b74290f7918bc50a57e4f65fc9ea3dc0360c256dd77fc96b2105dc20c811c2db941b8ba4843765509eab35b783060604b50a3b9d44193296ab7dec2c3443d0ce68c7dec6a21c768a472766b1c68251bcf058c4bbd1a42da5c9a0615f3a8f1e37eedbde08513f6971bbfc644237ea6bbc1f4f99209fa73f573c53b6d060c8423383ab088a06d1c8826361fdb16ece5cee32351f56ca1335c7e1404d7ddb54309ce291fc7671a90c65ee5bee939c11db1a846f0907547089d7a62b8b636b800f5e1bbc063d02724a8cef5db3ddd3eb10134edc649def795114a78f46944b25625a12048ed57d64f03305d157218fc556f2b844cc5ace5165efcc33ce5e592503d47d69ce6bd749791a7384f9d080155a8191cde34b1d297628373ef93f4de3a1a06c5554babc8a1c32e7f587749c11544099034abfcca898270e8536aaca94610460b28d52cf01272f7ca12201f844a7091ad2b1285acf009cc3930a76c8b82e2e43176bfa394f13a82d70707cd51638b2bf960b01ca598f6d4d012b217ec9247621fa9d75894aa8e856f6ce9c30c9e1f8cc85dd383178853d84678ef5563a5d12d547213507a2c3bea3dccc5d377f5b630834abf1306c380445107f1af497c04fce0bff060f4049f7c585543dff5677c4099c7e71ae715b17828649d13686bc47614aaa1109cd9835f2c8a2c1cf2722e0718b54a427ecf15f07d65640f7c96ec3e43181e484b206212530c3ae1c62f37b36d25461f6d57a19662da52a25d41b31e2248c347eeb98e4cf3168b2bb52cecd132aa7c21e9e454ab12f920c1dd3a2e746ebcb08b5f881afc97b32664a3ca969e02e78aaedaab92c5308331e03bf7822a29db0f4be66b75da2ce863f9c48956818a9a316dea1736994a0a101383d8bfa21f6163150919dcbe41dc30dadd2f9b0ee4c0a32c6c2e53c7d4e0cddc11ed7f365a60a223113330303b44b4bcf9024e2f91949ac4dea18727b1ebe4ce3de1f67d263c5b292b1b8dac8494ec5aac36f0d0681a1b9ae59c7fabcb498b0aa76a082f072fcf12811dc01b8af83676a00df07a1407891b37ad365b3d171d0bbc8dab7a42aad54dedc173d5731a784143ff6ee6cfa449c65e14ac2081e2f0406ac43ee40dec8a596b27bd4de1dcf542f21f4c7de9f7a0874b792c253494f0e0a00e1efb8918a17d4b1e8d8f9af826fbb656a71ec637541cfdd779d9385758922366692355f5d1a7f8979d6eb2a75c0bf00481d7478852f35dc3740190511e76ae7ca208f6a15f5328276eab0aa57d0b4e7f1c4c2cf7a82286e36695797f300dd687fd4e782bce2070bd73fbf9ce9093351f4002ea07b0547a835a55ff11164701d66f349169eba69b0e09f1a7c76af54d591037d83f68e1d893d8e139be80423711fc59a2b1f6b746fff4518ffb5c0c359343c37998215d8f08a334869c25d4d8a15ece72699321071c46e807bf0b944140d509b7ea76a265e5c33d88126a5991a7d78e002876093963ee76faa6616a2273fcf77391364eca86fb586f020d0f3d917b27643ac42bfc5d8e5a0076c6e357f9e0dba994b3fb0cd3c59592c1f17065c32917a67dfd942022554a5756874e811761d77043c0909a204e775563f89efddfabba8a1403aee9f67244053d98f91898b7833746d99a572423d6cb1b1129b4ff87dab854f0628f5d9ef43c269359cf2a18b6ddaf91dd7aa940f9d9b154dec92921b3c6ceb6d09746fb4e8a13bcd1d929af3f892a38993ecae71778d01e49f0b5ed1f9ac3cef7324f88a384b0f2a578585f321b9e5d2eeb84b5d7995b0fbb513ea377334e3155901d209181b41942ed8df7d3fcb144adb5ac8d64f8c824da1e27076d1a2c908620726c77475243d50b6c1ab26d785df9f2677e649e1ecc1ce7a96954ddbd3b8e6c24a8db15bee7f788d31197ea3587daf3906d38e7deb16ebdff4574af0bc36efbcaa270d3b57bb0a424df436c4101846f342b4abe1ad8de337199f20c31d98e79bcb6e2534b7ac8c1759586b31008dabacb7a7fd56ca8b11431c836415ec9d4fe49593e34cd6e06d565d0be96736398728f77051e936839e335208b9c6d7434859e9f8cdda145ac08ede05b5a922ae182a78a47a282247d1dd24a894fc90023a9b9bc5e94d21c7df0d633915f73b14f36815acd92557902b81f90afa98af661fdd085c5372a41907d4cda9e150aa5262ab03cbc195ae64305909dc70865b7a842943cb7468c365d11ba97b10289d207c8815e6d929436449a99853327391aead437905588811d3b7d75fb4c74e4eb0ffce43f96155041e1bc204e899050ad03613a5bffc678a6dbad5139ef51448c7c648bd748aee17a4d7131557b0632f5f8292b471c69e139f5788f8785a2b12836d0d6076d068725557bc5bd174e153437603c96baa4f912a8b904879cfbc87d829cc759711d02fb3ce7d7b09a4a734ceba2cd85da9dc275665a7dd19b4aa94a5c03e38d3afa803ced96bdfa34eeaf691c236f80d16ea409b30d4550d36bd56daaeb28163be792e77dc5e53b151464c8f0d88e85e593c4b4637231b921043f01784dfbc3a0d394d0041582108ec8da12b683690591d368fa976aace2dd36196e24c29d0d0d0538cf5c77ed6ec1ec6e28c5009a73145e6193431f060515615b61429bbead88e009926abb5ce0dc1cb948d61ab06444904338e218b36999c3411d726ac556e65a8254a5d13b7bd11221844be4fc9e7dbb1ad137f9aaabad6d8c622d1b03fd2ce64445633752a2a8c30c23d7c56b7d1d9b1f94f53707d23074ba887f093ca9da867ba9486b6cb9c8eed2b5e69f7d670c006c53dc487b27d152b3aec4b5d1aeb8d1316d388db5c568ac4dbff707ef0521a14b8d55c09ca3189debb1d2b1f8fd7fb2577e2c4d65badef7a65441eeff65c9015eccc3265455728a7cf5ccfc89e9fc75fd5c4de38474551947f19af4e04ee2c2b6c48796983273a1b7994fd68d90e8c32b4296d477399c8fac724f24198d2fee581e7e36032a4859bfa6fb88bbcaa78526ef937460aac5e03fa71ba7e5c301616a9037a5025507ef2ea23665adbfe6908923c526b7e0e6535da22ed7718f614db3eeabfce623b152a8f6f51a79b0af0f81ae6ec38c6d27c3da1a139ebb12f89228c88856b17a9bd04015a5843f94d08d9bbc9967b4b99929401a607d907c4076088086b9b4c2bdc566baddbea0e82d4bf0ffcbabb6d6db7ee21d847708f2528128d461f88473bc02548514a7ca31f30fdaaeac72edeee207cdf488bf932f201d3b723c0a5df3c4a8f72c093d672ac05943ef5a7eeee943aa594babbbfc0bbf3b8c0f47d94a1554dad0c569ca1556ddbced02e3bde8b7f2c397106195a5593a10233d8fe19dc855a05da45a717f485788e6d8b44088e6c914b6cabab7e0d15309fdc116cd236e02ac0dddf52965b07abd3afe1e62e85e4fa958e73f678e7ea3acafdd218a05f2259a995ed8358a5c40a72a9c3e4f506120d483608f92489dd6b395b695a56f83817517289493dc06560fa05b05dd7756fefbd5cf7f7bfeedafadcb5b7b39cadaa92c6c9fdfe4e0bffa28aa9fa6fdda80f24022842e06244442e716dfdcbbd5305c5dd69e1606fe8a0a19476dfa150d7f47e214a2fbd1ffa20de7f546cfa7d437f437fdf47e86f2814facffb2f44bf344dd847434f81c0337428e4ddaee36c15b1e5018d149a8640ab5c033d41203f2c305934ed6aef41af431ee007f1c0af2215638040930e7a1f04f4bcf7017a1e08820bf81e656895ff0fd83ef7fd27ea68d2ff8686e6090d1936c6b59da27bf906e9082e80640620b3a65216d0216e984f9863f878fe2ffd027fe547faa10fb2f2dfdb770f9cd346e7cb02b3675809f2fdcadb0fbd8f95ff3ef433d3b1c7ca88ea8185e83c0c1c71c09fb0ef6dba14fd0672f28cf701779eaff254fcd133def218fde84ba816484f1f7500d2d3e7417a5aa294e2d28cb16cfa9e8a28fa163d49cc009d221adfa60dd026274daed872d2f46ec28f7b84784e576f113c9f7e024260888a48c1ee744649fe74f6b3f66af2698b780b6a4fa3e39b2108babe2f140a7d5fd27cafe38340bbbc226fba77ce2f3f7f2357ea66f66efedf9fbee7af82b4f484c66928ed502804e6649bf69edeefc423ee971a5f510736d1dc4953ab1d94eec8ed8ab4cac9c0f7bba7e188193cfe9ac1638ae189f99a73081fcc9afa0ece1ad7410ee814d995c88e64ce785f017f74c6973e88caaf7c90195f7afb313860be68109e0d5b08055979950f52fa196f1fd5df63e555be47e9673c0c2baff23e56461c243d54481fa5d18511a76b02073488c1544613bd81123d3d7affa0ff7d87441a27609abfef75b4ca0f40ff13fb47e20ffafdd4661ab640f3e83f1ab6909379803ffad1381a512d887ef4281ea21f8d2f73451a8d9ec7cca3f1cb9a7bf4a1cfc958fc9e7e2f1243a73cfea2c149ff7b31a6a15de0386bd899359512f1dcf3ffbe102d4279280fe5a9f90b91aec0776ca9a27056355777d4a10dbaaee338b7550a8d2cdfb889a15d1aa0b4092626cb5fd48926fde94fcfa0186aa0410ae67e6678c44783bfbe918686864728c7e003a631b8e0f4c70a1c04498fd07b1fe4d69d4c803c81749a641a76ffdd1ce02048827c7fbfbfefc3fb100a86fbdffbb8ff8d38487a7cefbd8f50134e282206fb469726e009f3121c61069b30245d48b45102642ac9f46d6878e86895d3a7d1d1af1a5a5a4a359fbac2fc6dda35d2f00473634b252203d3af34db1d16dfc7852a154363f939f46e32cd39c9d0f7d80afdcc27d6605b3ada45c723dc7168e8de346b42d9bd1fcb23badb420c70cdf443ef893f3ce441a7e40cd029dff398f91bdb1b4bfa1ca0d97b2e24dea7ddd8d2a46b81ed88af480998da276aaa1bf567ad94ab1dd785375d73ad56a95aa5e3851e31d07722a5a4a30d8d8d116ead88afa3652a12754b4451606ab34dbac2a44d5d93aa6afea45dfd940655a1221a129fc584af373ea1289c326d02f797150499d61b746a0e99be7fd14518b3c6366b46ef4fc8f47d8c4c7d4aa6ce844c7d0999521723d3dbcca3b7699148246a95e8673845a2d7e637579e783bae432af9d4d1ba147cb55f1376a9756b6bad96eb1cbc5fbd5a02696e863cdf5226a6f9d3da5aad73b7db759ad3dad92a5badad0e1ee1fbe60c65c955afb5863cdfa758968098f27ceecbdafd5c9bb25b6b476ae39d58860700c5b27ed9dffd57bbee6b37de12c40098ed0804ccf3c59203bbecaa5b0ebce14d67ceaf577ab9c5727a9e9d5b2c2f0dda63e215d75ac7daaab68b00bea152598e9b007ef9e73acbe456265ea825c084d2914e55b5dfe9e06b4f07cdf4ee9fe9b0556d5703bea1b21cd701fcf2cf75b6c5d4dd5ac2def5c0b5b9b199d9c73955b4e2d4ebcdb9aa4fbb31ff72806f9e40398811c2010ef304cae1c937060ee50994c31640395cb1c3a89a85aec0a33c81729805619c27500e3e59958311275f5437fe2587582ebf657130e7a7307dfaf4c962f2aead2c26effaf5f69eb3a67d4ef790404b1312309d7e8ba86e9d21dbad9f46e9ef1813727f0f699d767ddfdf44fa7ba75db59f06f9eb27a7091f173c6189308c3cf101d6fe8212e4ee723f35d2230619fa6768d74aeea72188dcfd1ec0b92c1d96d82181143818b20258bb0b723fede9c27573bfa8ca10430b31be18c10b6244602dc8fd364ce47e039832f002db11536460451753606dc40630f79020729d4043a460d283154037f8a025cfb9c2ccdfdff0e6a3b79b183914fa2ebc09f51491690fc9ad13a3b723b8a4b7d38dbe0d4764ef3d1aa55d657d2f0abd512851ca4aa7927ce774a9d472575b21e021dbe04a60e0f26ff4a68ac5622198c56230fa559cfefabf22dbafed9ab9898680cbcff46f47a338495f5547d5979f6f4ed2131d4dd194ce59c779c7952aa6b70a68a53cfee8be9f1b5108680ef4e8fe33b471b1945d9c403bcc728b3494f27c2134a7773efbf5736039b0926c364322491151cb0de80723d8ee1334d0e78925b3d91345f099d12008081bde9a40020a26ae48c2c3fda2882783e28b1d24a0f86249121d2f566357f8849124766bcf0d9c0645134320c3f280ade83b188b28f60684c5ed4682da039405122eba271d0da807273e403d34e1eb012ac108785057b329580006adf37c6430b00149b6439acd6444642e00633399144a84cae049215686acf6947145282b438cf945685034b1d337289c88d5a05862c909f27c7056b3a26fb320d86ab320dc389f991070c8f3473116d03c66c4909b0a7450e2062f1c824d797e0b913c5fa6d9145f0c99c934a60af2fcd2bcdc146fe04dadadb37a0f152328307deb95ae9d9ddd82bb5f3ab5eeb6549a61ab9b46eadd71959bd5ad7badfe396dffcab9dbea2d15757f6955fdea5e3d95128c80307ddade95f30a4eced6aed60af6c096ea4b7593833ba8d5625bbf7b7e59bbcce5cfb35f77f7ba312a7530080cba6010a6f3d6f75abb7b345bf585d76aed8de2de7b6f28079f10e0eddc72dd15e27a4dbcd00c85beae3a570252fa3e0b5e1a08da0fbbea1cc7518eda2b44d874d62a0a45ee391085c224dd3636527c5f2772397ffd39d8899e3f0b7662e77abb5027f25973bb02cc970c55c810f2429cf74eeae06f4d5f2f544d2dff122a012995461ab8f1bfd539376127b1705f7253c1a622edfe0b81dcfd7e865842e21c2bfd4876b40902d39fb58ae85cd9cf9409180a85ba06cb60c2840913264c2865e26f278db6d73ad36ae9e89086a65ace5ffe6fa8545cd752dbe561d5410d47adcfe9a0cfe9d5a7bbbbadd3badb5a337d4e6fd508a800434abb26156028e9176dd7a4e20b2bb2dbd9aca920982b7f777beb77efe3396eecd1ef8d38383934cc5e90e146b3a9d526adc77deffbfba43184e2dee37cf47b6310effb47141704c585df02c31107ff1cdffb0ef793bcf771df1b8384cad603c2079f84228d9e88225d118fa8cf8c5869c4a1b21e1f596c468f9d599ae8c54ada33a2b8cf81adc8ee88e2c61786d078d3e7c06afc84e12fa98fcad39b93fe8f43ffbeca884343a11187d2c61b0e0e9d39edf328bd599ad8224af416251a5130f4d7ef416b5c1c8142464f2c061bbdca23e981bffbaefbd1f7e87e14cb4e1abb1bbb47d6b1aec763b55bac763389766669882be27492bbb5be793f63a5efc7dff9eb1000a6f2a31107498fd197469cd28ff08f469cd2d8b81b71da07070a53e9d957b6cf37a2489f03ebd04f58684491c617864c27457666694dcb8ef24161dd535887a4c7e843281842ff7d8f90e871fc433e3d428f471c97b9fb8cc69e99d76aa5cbee1804490faff49e26c08278234af4e0877f479468f431e22041bd709f011376471f5c14132061882196c462309f39e98fa3d3b0ef85841e1c513e3ad40bde5ff7c9fe2e64e00923dd891d9460c2e4492c069bb06f0c222434c6c21b921dd0a00959f7a5d3b2ff8a12f08e21b33cabc8a5d76aacea38e96e67b944bd101be519d6989dd558f6b733bbc4d2fcb928fed3ad2dbb73b1ec9c4e764e96ddceb27346b2733ed9b99fecdc6c4950e69c5c8182272c04a3b9f45b8ee5090021ddad1154c324c512401039010f38d0927447945827497431250820f0c0032328c1ed6044f757ce91b46a403902143a2c11842b909044b8832c9cc2faa046173d70420721ccca10e23603bbc30e4c5031e4e3de6d0410bc1d42d03742348aab7246cc1bacd005e3075caa54a616ac6ad788934d61018913cc8e48c20f4020051254d619c132f103ca12426881830c7820850cae0e40589942092540a243061547b0c1c76ed13c981a891a0baac1141cec000832f8028b18f8f073854bf7678d773f2109b38a1a5a5f45a23470d5d90c42c187224c21031290412b0306a1eb33d332995a70cbce76a8b13222a28b984ac89125c10230c0c0a107260c41628bbccc7ef79a0828068204b12060f013021ed8915c9a5e757be7360b68a99a99b72a014fd8c5a6b781560374a53a0089004a7f09ce7eaa059dd5e79cd3a953a77449a6ddac083c9fb6d3e944a67fe7f8a3c3d3fb814cc55bbf1aba304b4b2746e2a6b1e4c69ba9297b1eb57b8ea5fd43bbec585e7b6ba6de97f443e3a49452dad9daa2acfa34bcb196526b29b53473dc674aa79db6565b3fcad99cb05f494f6899a179b92b56b1fcb8f73cb14559b6b3ef2de05aeb71dc5bcb79997274baa8abd77441ec2fd91251e7fb8fc952045cd63c7f8b911005985354066d17be22d305da03154bad128fe01efb8b1bdfc96efba26a171d9f76f7a52bbb37e1ee47f75f7aa3eae9abbaf9b3edfcf9d56bcf8d56cd1fa3847ff4f8fb5fea83ee71c0e61f21076cfef06778130affc51ff8492a6ffa9268fa9cc2bb7c795f28903e051105714e92c6bb88739235e6a39e45fc311ff5df6c6141892d2c2c2c335ac672b2fc0925b2fc6419af492c3f976a8ce5bd78652c4db9344922fe92887f8658cec7b8069bf1f8ad6ad34bfdfa2f690bcc8df89a4ca63a8642684e68af0af03b0f7852a05604db340b807630a26798a6351202cfbeb767940b9218b89fd2bfd786d2ea73ce49a977d581534aa93b7577a794fa53a74ee90bb8ee47cff3ba11974c5d770b1078761794de3a0ac225c889a2c0a32bae37da62d4035c964641a2282c773ba765e006622d17de74a696735cd775375a2a105f10dfefbb91e77fb3bbf77a5e28f48537fff2228c7b04c39b6adbbbdbbbadbfedecb5ee95ab2d5cfa40300c455654e6e4502a2e67804ec9a4cf5ca59a8430348c34e2a4ffe866bab5cbb3bfe9461ae9ec52132d814bd36df5e3afeebf99a098a2b4abc6dad543dac57a7f161d1659bb5aefcfb2d32e199e22ed2aa25d3246da15f3fe2c4758926817aac7d4939c8a1153b55450abfc5b62ca49abfc5962aa498ae6f203dc4f533401fc5804ea4ba9fce0f224abc94e3b7e7b8c65fff246ee87f95ebd445b93feb46ce3ffe7770f23928c38b9126b39650f46ff1b4dc1f4734181822459bbb8d5b3b0bce9e6afd548d69af417850cf06030630a084cdfc69727198988b9f25f892423b7c68aa9c43243e54442b5b8a09082ad236f4a63b688483d73e54fbbf1de6cd6543132b571e30d5103540062796d882526450d549558de0088a5d75410cb159eec9f124bd24ff67f11cb959eec0f00b14c6991fd47512c5976b2ff8b650aa2ad4c39c9fe2e628b587a0d25965ecb25592b2f0b4956924464ff1a62e9371aa22dfbafb8d4b27f89ac9145647f95934c0395ac69a0e6d2742b7198a2954e2bbbdbdd29af4ed753763f993e6957d9414eda65dfd6ae59bf24f564b74fea6997cdfea42266d99f442339e9570dd291764da0217ab27b33520fc9c82cfb09a2c8256949f61330c925a9497692adde121a2d28a85d6557cb334f49bb1c08cca537f39a649f5a78b3ecab9b4848e7d8a874c78a6fbe7c1d386b66a61fce1a064c98f5012e6fb6dfb5fd20c635256e95fddb2a9bed7553cbbfa8fcd599fcd58d2d32824d2a9adc7223db1618023b7320f784b3200882604eee7e2ef4365d83678fe3de34c90e193061fe330c6d1d43082541516cd497b9aa7594cd7931aeb5d61e6774bccc52f54612848c0a2354cc269d2c14a901174230e207082aa6f8747aa82fb3659e11a480f822f75393028cfc2c81032448e8e20757f20dd101228bdcb966618258ce9127900964f508ee438004083cc9d9b6448540619c0c30007b680b01f6b4734df09a836ab1b09c165caddbe92e0870497dae678417a285be243dfef3813e788884cf6bb6e571db9343ef76deed44b52568115b44bb8a5cb7a2910ea6d1cc0d1556bd40356bb4273bed9935f6fd65a86190de784eac4093fe54948104ca30575b609e769557555fe56fc56953f8f966bb38c0e51f134f007c3d5f5fcb8f6628f2d774967fb4edb694ce48554c2b07cd8c00b5566f9faf561e337bf4d6eadece556be79cd3154ed5ac3e57eeddf59c7d29cd7789fbe52de5d24443d0f2958b7f4588eec7254a99b04b1081942638dc0a032078235aabb3dc4bd7755dd73d7d3a84e3387b39ae765dd7d9207e3c28ea0a5010537c4732982750103d950302e8072279023921ab224fa01f8a64d25c810337cf1a0e98722d996679020141c9b5f4402c16cb35986a52c825187635775fbbff3ab1ac23f7271729d8c71ffe9d67eebe3e37fef0af7ec7f2be11ddb71746537069ea4fa508f69f43e052f572c39db3e30dce0041f3058686b9cdc9aa936f5d147fdd5719a2ff76230a705973ad95b3b5becd5f0de386f8aa0d8a53971812c6129890d00d33e8c1a1439810050f4cc8d442466b2d7268d2036b1b644c88c1be0ab6d84fcc800735d867c1163bd683430fece3c016e7942c663218bde5a0841becbb3ec4c007f679608b738a2634198cc688111d188e10308b1f62302414a7633b42d0603842ba16cc601e111d536e1187862146184b6042463411d822ad82074a7a60df086c7186f1441536d8874798d4448ed468b01c2aa4db4dd0fdfd1eab55486713d21a62c80f0c09ea0034273b136ab62a8455860f4660b37194e09d619040093db0ea220e92eeb9c711e23121fe41848c31fb762c09a19ff6d3feeeeeeeeeeeee6e1cf4bf3973cc0a223b4a5c266013b0e0c6c4d3324be446cc49ee1a973da806af653774b2e8ae4d99abb5044a88c0dfe275efdc20c04ec01c57c71ec82836c0e505e241f902612346ab11d6d63999989a62aab24ee9280126b5457bce169369daa6258c5d7e3fbcd5bb97f6f1c3d9b37acf39a927f21a86eda775bdf18aa41a0af148e5a78a2844402877dd83ffcd2ebca1ffa2fabe8dc055c812afac658b3ad1fa4972c12492fc805f60faf32529c1dcddeb3d4d4257c8746c23702bb772d724497eb818f090e0a7bc798ec692e6127cd257efc3bf57349634444028df90c70d6f385c6a95bf29f4e10d47b92c0ac59212c916142ba5f4ade805a6449cea70bdefec87e1023e310c6f3c17aec8e5ce8e28d7034c05a64bf2fcd9edddfdc4d5d55adb4d96a6dd5ec7ee2faad7cad95a395b6bf531878fb3f6b9aed556f746f2957372d6ba6ff1dd4984afa35d296d253e0f0aa695560ac637db45bbbb85744e6dfa840e7ca803d83c9fcb73a473552715b9fc8db8fc4d6af39c739c5ccea914e79bb366d61c4ba90b3e1e33cf39e79c13680456985af544707fb24e70d70b7e5796727322edfe8a654ebe2038a27884ff037c7ff0fdc3b79f93a9588235e4d07f6248bf9c1c128180d91ba90ef4d6596fe7c009efb9ef4bcfe33c8fbba1e7aabbbbcf27d37598f3dde7fc2b76f33bfac4ddddbd4eb74c8c9a8cb2681b44518cb4f8685a453fbc99e30f94c82dc2e88726598cb018fd204514457884ef1bfd30d262a4c58836d2e2f230c262449b5448b18218ccd61e513dfaef1348f003ebff969d618e5404fcb9c4f9099c04af00cf6f317402d34a97409282270eb6dcf6e98f6618e5ef24a54da7982d99cd327d03f48bd226fd4d3f6c62d6aa0d9ffd46f5b07f41d2f44183c0a603eda024cf9087ffe046d401722320380a8e02a3627961eeb3f6d08bf952ae6ed9df3ec1250dcafea455cefd87654efa9f3249c6834b52cf9c1e66e07be23625d7d04f73870830e51e493d73d52ee33af1c8c8e0b031c02c012e2c89a9332d96141997cce3a0a11173b45aaf57cdfb7f35e2ccbfc499636a4c8d38f38b469c5945e5593c84819e644bc0a54b2da6c6d499168bd562b172b4ea4c4c4a462419211d79f9d2a546836266646aeb63aa8c58b6c69866b5582d1c2e19968b25c362c9e0687dff420f1a04826266aa0539d1e6af93cca5e6a28991f9ca7ad789e72493f92e5932ef4af180ce578a36499f00f8390190a291ac6f962d0525152525c535a3828e0a4454d811a388524428e24df442b4a164a8408a960a2279c85a090839c3b4cdc4e480d22e1cadd7fbf330e008b85f6439c94e474eb2d3cec9e7f4739a9d949cace81749762ae224fb9f7a4c3793946a0baa273a2a03b717e2ad5d5162de5f9432c6469d76a1627ee61cef3f126957cb76da55a4a75d38de7f2c623cd22e54eb35e2089a11a9cd4523a3c2734e52b5d1142cfa8f5e3a5dd48537a9a054939493148dacb9b4ac288ce9e634d3cda595b02a2b0aaa6d0c69978c0e111b3bed92b1c163a34811ed42d5f1d4733a1539f19c764e2e647992a1a80e254292ab15287487ca604493cdc900d8b0640fe953a326dab2e9e77489b6a9f237919fa2a582fc356143607e557fc71bf117aa8e281858f81def8385df310641d263f53b3e08ccb330fad8f12c3c0b6390d5ef183b23301a8485dff13ce274d2fb0197291a0b23cac78e877998df31763d4ec2882e35279b559bc5ea8fa2c0075056e4c87823428755dba5468570a9f90b660533ae6618c36aec8266ed3a65fa5fb792494642dc174a35a932c0291aa5618a667ff0ea61fe043132acff5a64bd0b172d1df332a2cb93b2b66246971a586b95cb935639abd6ca1a5d6a2eb656b9ed018b38739974016da110cf4e11db6c34faf9a9f96bf5f43d8fc895a568fe226b385dcd49fa302b91fa38590b6fc8da48b2c09c1a719224c9efb1bc55277f23d0658b1dbffaf2ee1861305e8db3bf49b2eff17f86379d13fcf7cb14cd5f2c3ccc97379f4ecf82986ad2a4cf2651789811852fafca8c9c3c5d50601acf12d4ae6eb175f2081495dc884b46e2287c417479e26253fd0c5d6a270a5bf171d205f0a54bad24495f9224591e4d59324f1965830054402cc4c80718557ab2a6123e160297c21646f9246b5514291d0de503e677fc8e31088aa5f62c303f61abb1a3754e6096209b8fd5c38ca6db938cc2e3ef1768b8dfa58e544e2c52f6276b79e545ab2ae9711d5982589cf48bc656b6769da2acbc68172ad62acf55d6ae51f6afe249d62a16607ec7d3a834768c2e35afa24fe15d6aa43a7ea5d797c29b155eaf1ca2ad569aaf6fd3a39e1a299a2c9335951f7f996e4ebae924136d346fd3b6099eb955c63c8be64b201ded6389a666028ef9cea5e9c6123bb7c4b23ecdc7d4114847cb35ef3f67cd74bd5c2b7c3f385d39be43b956d40e98f5df7591b5ab66ff0f05024c236b386056f8295af8e549b61a5334940eb8146dafaf2290aa9373bc4dbb78d12e54eb499e71a9b98b4d34d26a92453a9ee6a6009734333333332927a9a0144db4a5682f1c3968441d22298956f9d788a49f56b9fc6b851c2b2be10d4d8e1747dac89b9334723c8df08626c7b3c4b2e673fc0c6f5e6fd3a3293870fc688ceed6d79a61cdd46e36623322796b95abcebc3f09858cd2ae19f2898c487a31339236991609858c42d66cb84cd16c3c46ccf138c49a9ad7db740e9a170d1a34421e3493624452123f4eac9cec0d78f5304f3f4573b7f136dec697a64c73b24678e39a79168eb7e98fc6cccff0c6d55debf8a35fe63fea3232dfa3e916c3fa94173131a21a14276258d5742300eb6dba8aa61bab767777d7feebc2f25f0567be431c2f239633acb1fc4014d311b068aba4fa658ad68af99417ed2ac95a6d8d2d746ea568a9262bd93f754b45f15721a6c2107f1588f40b4c39a965ff54ad15534999ad5da568cb4fda4580ec4f7ad1ae0985d87f9289362930fd9ec1f1363de3c26162d55a59312ca01d0246b15ca4b4cb5528d6d84267964bcde54911d9dfc586420c051d7f0db13e35c8fe28c8dab5d3af21a32553bac8fe2814e95795b978d1aeb964ca4ef677b9b1aaab5cd9b2bf2fc9ee54645fd9da55a66807d06127a85d1447cb4c8b4c4b4b8b098cf919deb4a8073919f3a22d26e671c4fc4ccccbc4c4c4bcc7bc490a9098f78f69c5d4004fa71d56ad56a7b2582c11035527f7f8a33eeb3f96782a820a6f5a1fc3faeeee66354e0f6b2c717862c41248b543f0572a88c4e3af54edc433c39999af228e77e1028fc6e8fe6244d7b70c4b86f5acb7e9d10da76aa99b8c98aab5ca534d82524f52b676c97c931b993115d41267ae9d63c49959a24b4cd952b428987e49ae7e5a5fbe29b37eba6873d21ff541646d358a367fd56f8de547c9f563c6d274cbf559e3ac38c6539176b1c67266045275aaabf5fe279e76d527154132d2aa23adc23cb8f4b0bf503d560ff330230eccaf46dc63f53023ceeabf95e82d71d25722cc5bf101ab875975340ff81c41978481abb71227ac7b0339b947cf8a56cd49ebafc409bbc10d46f2bc810db73c803c6f3044083994b1b0fc67ba91467af496b07aff1696a096c912d4f2d35f2c414efab7bc684bd1da3580f7ff5cc0d194d11858646981010d83f99548612b25ab2573359babd50ff984b49d7e8664edc7c90188fd302285b104cde8193da367f40c295232e94b975a8f2226b00823368c65a755ce12e4f7626c32a158829a64fc0310c95aab7c35ae7e9c74d2c75fe28f9346fc3561e2ec273b9944abc89f0e9ef0a804ee75453d0a15d108040000003315002020100a86c562916828cd34598b3d14000d7090447658381408b328c7711c848c3186004200200610440819a29a6d10004073909c42480e7050358d50263a604c452821075c940437322dd99952a46a7484522e6e3200d29b0df7a963090655e0e05740e366b5289af79631aaf07468595ac7927e4b575a12971cde8a969a13f1d21a0a153f9e6f7cf10d6ed03662e64c26c2412e4bde605ae0ea2e2cad416fdba6b2ca8ad934a71c7754ca6505392dc5a8830aed8bee6440e08364dcdbb69903b22a042fa578e4521a25465894c88b1e98c5840b85f713f3b9a2f42d2efeb5f9a956b46934f10ec496c742584c8682b408e455de00a20edbde87ca3d622ed839f1b550f250b06a30fc805d5e2e55c3c6619425a9a0bfa3e0cb0464add7110763111e76e6f3a0a7f2b7ef4dfbc959a6d061ea396fda68c4041eaf06bd9912627441458a157fdccd57ec44cc83f3d925bd57df69f2535c3f349240947e5ea4338fbb9f2fa832b9277bdacb5e1e412a4fe9f54370ac8e6a794a8b12fd002dc5782f04b1c82895e57d18b8b9f92853f44fa33e137edfc685ac1dae082e9e9dfa1c84897d9f9614e645742e0f5285acc4323248baab2a2c3c5958f555f0d6835ccaa8f90aa42633d000a7c1fbf0b09a31418a82e37fb6ee8d6428acee2e4b9ed5046288514858cf3b2c26b07a8d06d197ca44c917609d4d5fd6d1f771708bcfceb3747395965a6078290fd94871133cfdb062b512ab28470bec4868610a839cc3b02ea15ed6079b4b8b61bb50ead3d666f765bdac3dc849c2b3fa9537d6b4400fabd86a568d1929a365b9c442fce702ff629d1015e782f6a559658dbd968f054c71fc31e9c46fd8933dc0a298fa1079181b466b3e47c6bbea82ec288fe1b5c076d586fdeac96be81e31e6377410118c3190c20b56835b1ccfc42e6d2183b3087494c1068610883142fab6352a8bb0fa48c9c92e2696e93dcfa8000f837418589994793f0a52cdd9570a3343f9c82a19b110b653e0d0359e00056483f341c98319d6daaeb6612c6326968b9b1407aff42c47f5f000bddbf13a8193cd5b1984a4950eecac403f6658c730639145b1272283b8ca1023c82e5622c34f2782160d8cbc30e96daf07dc79c10bd44681308b2a0b0007356d58ea1d47eeda68d1015b1986348a481a59d0a9dc18c1a1cbc9de4ee6624b32be0495519a15a471c3a42f045deca40ac0a53b629611b0e1f4437e058bca247fb32cc817fcc9a0b1dc6d7af41b22952f04c40bf9e84e476ddf7e9974957e64b0c3d32722a2f6b1f77e0c9b07c61664ccfbe1e7542515179e133cf954dee11c75ce261a3045f3a56736400e8a1cbcd7e64c1375298eab8f5459e85d4145550d97ec5b16c697eb103f44dc35f361003f665d62daef24f93929bbd99d7f9ee682b894effe52f7f1ab90c5e630c2e6fe00c3c7a8b4cc41e3ce49c0db3bbd9b1c59c62c48346ac07bbe9e0f2d228978d4754b5ee11d2218877ebbba08ed3c4719f78769a4b3039b0fcda94fd3678ee544060df31de564d82ffc53180915c0a1632c8230067ba70f874d897bc249749614effabeae8ed9d459af309617e31d49ba26639cc14468cc00c9e0da437b85a9c4d7709fc9a72084697c8fd411a9ffae66d9f5c192f906e329f46cb88d7482526b704185f22b5208771f86b6069129548dda23eab522fbca092d0a6bcac4908656449685f105b0e302e859000624e45b865eaf22cb744216b86b34778b8323a042933dea804b969c4b0aec4ab28235d083236f647b394960bb92698ec8ad05eb079eb29d2064eca3b54ed825af95a8fc55c1cb31324c72794880ea7fef1e64160d9c89b577e19254720655a0df6502896edb0f94eeb1c085bedb45664b438ae86a2aa89123219d8cdc28e1174aba6a16cb513936f73a014b8f2eb534ee3a0b2a2ae825b6a22a1bba40cac6beb5a0678bae520fa37331632957f9378082f19edbb35ac2e9f2adceb54b0a1e6040134c5f4819d4d0d708250b7d460a623492782ee6dc5d60e1be6561075ee963217badaaaec0f6b429de902347e94ffe035cd36b293402dc115d011c444a4bc83dbf129a6aecde7d89acfb6f72e7f8bf5d7a6be461bce49120ccafc7856a470e823b581f805ba8a515bb309892dce55197bfa4a99e44adb4528d98fce830ea4ade08bbe0f4dc295b2f9db8a9d9850a084d4d548cb9c35ae2e7143fac1de9f1cda5b7f561a78ba86f9357d43552d685a119defe8f4a5c8a99749b85a0a7029411e8cad61f117c2f7aca5676c8c64be5eba3c5225f9510b8522476d720eaa48175f05f175137cf327d890c9a33435c97e9f108a9a3e003001f9d4fd19c89a1df2479d2abd1253c18e529f4e0d011758d0ed125ff1b3006201f61f01fd64db4511b50be6674d45270e1987e703926333a83bb7f510ca2f485176b2d1ae4602c3c0ddfcd6d7607af623ed96c2bbe2e4f90dddb8b092114e874194bd919b2fa5e40f9ec9644770b0e000e2bbf5c2d12edb288c8022f56ce168a650e4f4ff9bdf1e32c292186771f8c0d5dad02dd9eb3895ae7075558760e9a9bbd8b4dade4f9ad8a693edb3a19061812ecc4d0355d6686d2c7e0f6610dd3399f13c8395fbe229d0d7246981319c478563cc79d6751e9926ffeea3dc40e4ba88bb9c0cc84d7e2873fe014db2576fa0fe9b2cec44e5da2a31b2d0c7f620f6b0f60840a0b4b20c03f28a767d04b918ccc8fc42370c2532bf20576d09d772fd02670e454934174d1a8bd2052b0edbfdeed38a8499498a41c65a6b5e1fd1ed11eebb1e8b676e10de1afa77428ecaf5bae40bf783f0e4b40cb53ca0a61de0540e68b98298a51319c7f12df8a54665ff6b5e98ec99d4466450c00df699fd340d7440bcb21827a042f488208b7bb2ac0829aac46fc9ca7daf93d21420a20b7884b83dc4222a25cd1db4c0df2c81df681febd2dfccb278331deffa0eb34f61abb1cc50af3e9a98cc76ded2d7190f0cd9606a266b6d72b39875f0f0c90b64d9123f68f7c1761dc3531a7bd1c4242d34bb296d4d72067abdfa6bf55eb48a92643561ac15ec9d9635b3000e2fea34744c1be592044ecabe84776f87fc69ac80317205419a6572618e20f47d9d243009572083e374368c0a8aabc6b356d24476dfe9a72446f4b22d08bd1e3c8415d600dc3f5ce32a0330e75c712d165524725f7df22c7c5ae1939b8fe565966e28e26ec3208f041ca06e7d193cb4fc93806e8830ad3b124b6d43b1e2316e994da3c116fac25aaf3d213dd5156e46cd5d0482d8f9b6fe0b0cd9f733a0614ae3b211a704151bec7b4adadf2b28e353096ec68b810f5ff77f4869e707e44149fba50c44fd14022370a35b7bcff292abfc596d4c0c4d1b0c9995b715b541eec2ae87a2f0208b7b6dcd15cb3df0c2a1d3dc123fd8fa8511cd915310da6467317a98d366ac30c7802c9f9ca4802fa1ff73302d60435211f5ddf2f9b2c4f1f858e95a02a722cdb6060bac65084e13a24846d5d52cda797b8228b4983934e64c4a618fb27d8f765104ec78652936ca9b65a9cd490af37483006907d92c2bebb3746615ad654a47b8361426f9cfb66de600a94f04953cb3f880edfaddc123d97128760170e4430a8bf84a58ff67058263755a44ba97f985446cccf18c644c04e41079672f00333cd4d5b9e99b4e9452d708c9a7f8849bb289129e916d4d784e42b3bb96f632476b96088ba7f78b61e0b9d81dbb7c5a23ba54e14ccfcbf2ca49cd20787b2fd7f43a7e6cc16e37e60eb740b88c4a8a8714979272bb9529b85342132d971a34a50f44c3a081cbce304adef5439d6845bceb99e7a250356cc24850b8ca91195213fd651d94342e24d67466c1533000e160719c43133c9816533a416aca3cc0af53559077beff520b32742e7eb8c2c71311e9fb0d02236dc03c13ea11591282c8fc04654fb6799395ee70bcb7d0292a1a8fb58a7f529cc8bb29e4133169e8fd8562ea622fa94d5bd3e1bfd045a819a010b331c2ad4e80f399fb8c328c988058db70d4e0bb62ea60ce8251fcad69c6acf3fa31a78f052638a66c90a3c09d568306a6b74f1db6861be2dca50b1421e1b79a0f3f118604fdd3b695441c344065bfb1d83352c0e1812f1abf18544bbd829119cda894ada195c12708de21ff26ab61b91895217ae1fd6d03d45acfcb8e26d8e4580921153c15a3d9c1664d59142706941e1a654fed72f7c0e8c7c82109852feb68e291ba19b3a6224ed77cc41e1cac0e011124857ab6e0b8c1703c588d898573d064c93a859ea2cc492a86f227274452031b066be11a58b2c6e9fd2ff7d5563eeee6f9d120b2624824ec3e269d5e7875ddf53244222f7ad07cded2535789b54db7842030d19436df1a141947db93aa6df76e0a19f3248aec946e3fd6fa217d6dce50564c35a1a4cb70c1c94c31a1898009a0a7698f5d099e20b37e957ff578a316d9fe798b20200132725b5eb72cc1678670c5408e5a73069fdfe0ebe72136736cc35ed2b72639780ff5e606789f622fa821390144584627cae9e5881e6fe059ae176785847215f1a8660c68a1058daacfd1c10c8429595039f13284ab64adb27796259fccca76d246ecfccd6ed3d7e91623e0d3941fb5ad34182ce9d415ddea6513fe5ba09fb75419f005e0ede853e360b9c0a1c7ce01aa8d13d633a955ce63386043ad73f11c170c2b188cbb722cbddf75b2031817a73087245441a4e784492d6c3cc70438e66ca38167ce29563796a7313e48fa3ff87168d8eef320a226af199b47c61839f94aa6c610694b33fe165831721cb65c900f342c7b383fd4a34565ee617037ae4483547279642a9177985695b7c992cb1b45e3781ddbb8703055879e5784b6c249e6255a0362b727b51b6cd1ee446c2032bffd70e73c913cd87fc572e7c087440470292f404643d0ef225de91d892dde0a53c3b872f57144835b5d6d26916c142024784afd64d3856d6136f30923eaeccd00b457e999cb2d960e516b51b16d3806eb0cc5842bc591db8fff717414bd64e83e8250bea75c4967b36c2fd92bfb1026b18fea7ae6aae5a9f899953968d682eb5f49618116aff151232e55a3664f61d95a4b7aa1e9eefe754568fba65b785fa9f7a47a28c44b85fa7b54f52b387fffff1a379b2fbdca6f80cb62157fe9eff175fda5d99bf6997d9598b97bb13754b486e8a4f8d498fb6ef571e5d104cdc7965cef444eed8b4ad316a79c17196b3c9fa7271d90a671dd661085994737d1385550b4360b211a30478a77b68897e083a3b139f2504d25ff1f655510614c4e6d465a695de5ece8c4330d77ec89d71d6349a8c2ddd74d00d8ebb4092d79c38cc5f2c0704c51423f608650dbc7c115af9b7ace8e718f81f9283d9e1c00dc13b9452de8fe290e153bd4900c5819d752c7f8da1efa27d7983f95bcdfbf433ccf55d3719df6875e47cb7d90c6d6d9a2490f0c5747818c8c5a62b9cf70543e824b52378f444066712daf8e1278ab272c6efb08fb7d7ff4d8589d7ea52fb2523092afea96d24fb642f234bcdb22bf5a728987b02ad58e781b5c8bb6b560df8dc71caf792bc08ea6ed186a876aeb2fdda5d200f75caebbc2b40133119959fd20fac1555dccbacfdc05ad69b2865916de46e7018cb7e633bb2a032a8a06d1166872d77c86b73954d1f79ad939e29dfa6cfbf8199fecb263b056301fccf7801f75be6e7ec44b001f370a073a46c3b1a579185e068b2a097def1866324f48ada1a415392a3dba08f7b965b52e87a51b00e5515c1ff50c466d3ff5406c937fa6f33d268e7e6c751219ded92485ace895d61d3d0c186ebdf7e1e926a068d8ec70903bd8fc25016db6e67a9d63754a9e797c187c761d0248626da4f946b3076a50d4672bd69f8c582873165dfbafc1eee9b3d508c0a52cfc9eb30634db788785020b80e7ed580c75064f9cedd6010e39e02105fef8531050bc4763a15e75c32c030ada15b8a14b4b9b374a922b2a79b66f7163d5447e6acffa37999df8115a083e54a4b0af09d06181b3c9b02266fd17427a96c724599caff13d4ea34b4e344b0576b23422a1f35bf081b378c0b1a38d20c1a00b5bac1790f4d6f5e4d5417aead3594dc3224dac1610c0ab0f691353bd733a215c685ddaa6a41a686a3210e8a48ab38c2671a7e47d2e1bf2a961426c7921c7a89755755f6aa671ccc9bb38ad2f2544fbd2ef5040443eb40c8bdf4ca371a649205ec8d44970562b2dc34bec1597adf268da01329c7515a5a9bd2d9a5281c52e461c51dd2a0f11bb8c6c974fe843e57f954a90fa10d13cf129002cfeface06c99a04b99144ebdd4bf73b96e5cf8945e5faea2860875185f7e3a824ee6a4bbdfd938d3b8a392fa5bced4c12d1e5a9249df1dcd710fcfcec34c168feba3764b76ef2113f151bd2f313458335c2e09a10b37a952c30319ca50ca2d7ca8002df4e632be9fb2460ff3472993d2da63d0f3ecf36ea92f3b6e834bab4ee1d10af9ddd1e40b90958219054e681470fbb690dde969399472e97b464c226687b58a6ff942f2fa1563ec63b4994e031ab822b6c81bb279be1c064b29d0e3769c957583ce8ba301a839cb1ade68d0723b5d436fde6e2e27a41f62a3612ed0293e99fbc32ca746a4f46e453cf9099b840f4b3dcfb608551f78b5552dc8c7a2fdf9304033eb4cc012cbd53b11e5c1fdc63ca86b3608c80b4990e2379d7ed5df36e3379c2c6815ae91e7a483044183e9b5eff18e4445b46a300238838d0aabef355ec183ff76c7fedb742226f0c0bf4b345f22a417c112e268e1d6fb19b9cbb75a6d13ef580108afe137d674f76b0752fca7bf9efc2031a297b1f788c9b521fc2896733c01d05659a9f34ef4c638c79ee545ce76b24ea03ad644ca1ab9259b38112578029057d3b966f03e5c5fb432795c6025f254de749ce5503e41b03330597423d8fb79fee7d672f6b7556c119cddf6aadf3a736ac60d6edaaa8d6a828d978a3d27630fd9513b34fd697d8d561c1ee39a7046e353ba2b14654c7dc0b942217345344d5487ebf8ef141e2adaea080bcc58868baab41c966e77ad4ca0623ea22e00c119687932dc471dde84af7e43b06400c091d905ac1af8db92f92e44101f028edb0684dc5263ff3d53884b8e92bd235d051e880a7e8fc97412b18341320bdffb759d124b02191b8df0bdc84e932a699164495f8a4d3fb5ced905ad1ca08b5cea9df995d775730c59dc44a92a4704ed1a37524a071c5d139c7f34fe0e9eb84a8b31452ea145ac6ab82c5e40e20dcbbc0749bddd1bebd44972afc434a3b01945ab4aad4f6a6b3df616559eaa5d124cd4ff1b1a8aafeceab7d9f6bcda397ccca7416267fe56220dae93e11561426846069887624ebb201623bf10dc1466f909ef8d13519f2b45d985375a4c096ad1c8a2a705915e00e62561c8707aded80fd94378d7a40e8803cc0d719805a8dff68da3bd4d07aa0a5e23ebd393c36fcc9446fa5d30e1d9ef4f12ba423042a6a9f41135300b2654cc50427556e9d65ddf8b3d65db2e6c8114be263274c3aac7f43b7e8c03bbe47421995be5200fa031f22ae414cf2b4e99d6d7cb08368a030d70a42c16ec37b1c5ddc150c138523cc224fa08ed9c5cd2221d64b2a2c7a68dc836ab2a1cb6f241e70f64a28f23471d5e4addc6e95be603355957c55203c031af0d7d6488d62116986237874813ad1401c52322cb7e46623f8cfda906253e526b1c0b16077bdac8229cd4cae958aed40e9b7beb03810476186d27fbbbacb8e9f73be0c29242f9a73d941528bff127a839e1ed30e48640cc063e924cd7e80457faa7319f8f3a2710d339d5a3df04fe04ad25d9c112b6f2244dd2626fc8c3783712a43d5b44a60af1b273251c8b27113dd85b713c5df0eaafd4cc84dbebea96e4f2308e147173c4a08fbdf5ba51b447d68f7d6d41476a841b22c71ebd61275a3964ad75c4150868b365a08bae31fa48acaf59044649af449f115400df1414947aaf0552e6896f1b673f0e5db2dcfde7a860aa57922296ccfdd0640eabb1c1d146c35e1ef4e21193257376c2e21d2ee5f27614abcfa6fea5671705d26ef224203f78da8a1edac6297e6b3f51231068660c3ab51e16198e02a38cb90529867e9af334a1f59649fbfbe348bb0611c0826df3a197df280742d8f0ee2c38e359c02da806011d61e4a1a508246df9a079d7b7db0dd4c74a3786145763d48368df5e4323d6894ca5fe1e06910c1171eef5ca954fcb4e9bc2fed495029185d1cfda86ec6794633d41df568c7dfc90e1d87c439368d850a7b74d3bb26042bff3909f0198b460df50ea8b96a14ea2ad8bfbc242c0b205e3ba68b0b35b62b4f44c13290e78850f32a17c60949a61566810b5cb322c192352d94d9eb7fcf395b8d9484c7d6e2e2020d11e14b1ff7b54ec559192975a5691fef489adfae4bff62e619b0b55b6fe635cbf5d82131e98f1e052fb14dfabc4a12625728e9443e6a6887ab3b5c06b7ae4e9183271b2e7bac3c68f4f1cb933e99543f4ad74ef85437a5b661a2b7d5c82183393031c1661b63a718d1ef3b216f461ce408f02603ccc77e590492564f138640a133584942f7d2d20a3b7e7f2f94bee67173dd5e3f9b5978d5a4a6c742bcd9dd2a56d57d26af630ba37128d73d7fba39decbffe94a9d998a988a81cbad609595215f6d5fb23b2cab43e6ae3e438633bbb8b39e09e0a05f071c7d579eff5db2a5ec1b7972893d0c87a35c482da94924f201c401131ee6be54b4c693ad835c3e414b563f3fa16080d71f2cb0a56a533be67bce6c81dd56c55e0b628e7f0e1a02c26c4fd293eea94760d041b0fb162c1c0d5befb878ee43dc7a583729c265b0eeec2467ed0f5122093e44e721aba0b4b2b79c3fe8ed2ad0da8f890b85b76b03fd7b5938c568230735b9a80ec06334af580e0221f09d74775ff335fbf881db434bd0ba5a53ab55dcd9d0a6e6f8f0b538e00fedcd3398fcaf05229e67e2d75de8da03fe15a1b08c55ec32fccfb1e05259e96852280eebbd2e74d2d997103a7a104808de6306879321d3c7cea5a5cab82b5a8ea53da65c769b6acbeb9c60aa290aab6481751d14e56e47e5814c0cd4c2dd78b9667090669595eb298b421154b25325a8a4495b9538538fc4c0d0032208f1e08c19c8a0902630ee14cab9c43012f0cc7ee453f69954cc6a3c56250b31756654d7765eca21cca66ce6f17380d2821fcd4f0e15fded2148da36011394d81fd4896f8d9e923a8e4df2bbbda253e0c59d70ea389ed5a8b7909a5e144baef00699daa1b5958f4f8362b11bcf21e8baf4390dd1d3529f86baa030a8a7d7bac3d44d919c4ddda6b89604eeca56018f003c1435e0b24df985e693d78e19c2977df667cc6b1aecf234bdc142c9f9e35306e603b3de2ce2ecb4334901aa6801bcfc1c5591eb107507533ecc51431d65fecd8c218f0b59bbbd9e44ac3506a7fdd1ce7203e6d956189283cb4a4f73f80c7572f148e6c5376b0202b70229e25d988cfa6a681b6c255273efcb33597f842bca0eb5404a7b66a091cce2592d068614627a2f2b521737a7a8c3b8008ceae9b494f9efa17d957fc3297ffcaf42b7e53620969aa6ea02d631cd3c2c423439ad7194bb3a86b604c69e58ed55da8a4e39434fc404fefa2641dd86965128b5e7b29ef383c2012e3c820268e2c4a7ffbdbc03d734039ef18534bbfdba8d80c4f11683cdf2e69f6469f3321c607c2954e44c6779072caaee60a9364535ae40637bc4136b92d2179ddb1c95fbe84c2d1fedd8e201cd51c07574d0ed042219299326f913f34645159488d45a04b36b04682f55d04a386745edcd15213d7f35be7c26ca6fc447ac3aeaa37b8564267208251c00af5f77d7f91a2a72a51bee3e23497efc387fd6298857178026962cc1c0411eba11d8cf692ac789e6d9a62906afad386cb79ed679e5df52f00f9d7530c051510fee5b8030ad871936c64cde71d41586ba9fc3a4bb6ac8692065e0e4944b89f9d540ff311600a536f53e45e08c87815cbd7b876e0cb4da4a183643dc9e492d1212c0a899debd028c783ac5bd4d110f618788e4d423d4955e5240b5d6547143a675fc1f4132445e0aaf0b07fce3e9324199b645abec9945c310c270ad72d5dbafd63eda583155e0f3d445bd56ba2efbd5112fee19d160f2655ba070c5847d3a191d121d0772df27f37c175a1977dacdd85ed9909779748ec33e1450658633c50ed265cf342f93b7d95dafe95a28452b3bb9a1535869e49e4a6280115288caa8b04d4670675f7fe1f92bd94403c08fbd5d7d2ada20c8398813b3223828b15235638abc28bc992e5094580de36786463b02fb7753580bcc9e62360621c384c93704d70c0622426660002e318d8c9c7be4d772b62d4a10f46504f345d1b189e46c9368d715f31cfb8de231c6a1907f6488dd6e75764d761f51409d2872e875e3539f22b1959a7c37d2a81f42702daf0ea9d4cbb19f50421c3f3c1b526d8eec89ce52d3e645f966ee06e8b986522f0531d6dd5b844ae45e3118d9df0ea1f214d4ce3c554fb7308ff72e33866035ec9a8217ee7c7343be5b25c694f3e9ddce704cd811139fbbe370dee8f32bcf6ac04f4ff37b22ab5b0e35b5aea9e6162214b3b619834f208693dfa0d8cd6dd630a3cb35ba4c0b50d551ac332929448665d04827f732830ea1023852901f2774383c3630c40a1c17690b748c0cf4a5cfb7693a20036c8a47826a9edf3744b107e07d420cc56447198d191072acca2405e5fbca7ff2a7454cc8506596da322a8489b4572f5563822c331880e5db4dfdf17eef23b767cebde091b480567ecaa69d09e6ee0c3c73ee706c97578cb6da3f88724e87767eb52f8d0f13cc526ab7a515d8261a724cf621ab7b4ea0dcd90121861c7c4d22c6563b8961ac724c5c7f7a40ff09e62c0697dc5ba805a6f85706a752896645d3bb8c0457cf160a773505743eceffbbcc4c1701bff752fbe933ea82dfbf498184b38f1456cd91e3f42e6116a18d00b414a7b4742b6e33edf48c6398c626202d4594fb2fbeedb0be113a22c128570e1dc732f4131b7e99887be2068559c8efb4a9af38da85a8db1540881a21d0fdd2bea0e26226f8a94defeb92ea61b2289503fd38715a3354be288e2103efd0658681a2bd6f1abcb8c0156c39d25a1ba96ae86944474418d8bffe9b33c1a89adb32ea009ab2e5af3f848680a87bc5fe38195bff8ecab903347505773964651de7d9a51d0035d270c50a8810695fc1a5379d0165bd68dbe0ce579aad864585774b0675172e805ee4535d2071205d609573df91558f6b2e7d07c0a60a2911a43efae6e4bfb5000c3e1316f09b7e300c3089668f0f2f8abd7533cee57ec64eddd807972f87604f3c205a0e031db9de6a124be1bcd3461259b6b8da41247c87ab73a70a7f6927ef2cd738647d3a9f81c983caa4a4fb376234f60a8d098bd25e843141adaadf7450b2a346a60da445b8ea8b782c0de0ec7ee0e774854dba29330d9181a0809b765f946dafd344f0c7f591bd37ffd1d636858821092841f8a57c21a0316b2e0062f30868670f25362686767fcf3985868bc7ed0e5e24a89488c2a495de7b190849cd832fc9241c4222a398e7d00e496f41cfc83893be7ba276eef46ec2fbb86fb7174f0e62909e2f6c48fde9a521f47190be2ec1c91bc09eff088955f4d7ea05e5439932bfa8fb85c46ca9f861ef420717f07a7038c0bd26df691f5ac564471556af3b3912b05487484f086592893358998e0cba259db0a7de0bd048ac1d09b25a88dd6f216e5e7fa5504ede726911a0a8a6def3c4e8b31b3e0666ea5636b8b6c9200e974aaf36610942241f635277b8a50a2ec854cb285d98652971b1439f8fd7ff6c9f1d5ff6ffe17f500c1d44fe5e13c62a45013c7330de333559985baac0525cb96f7e93a464243b42274f4d92298a5b08357def17e445c89cb1802031fa4b8aa66117ed6f505d5498c1fc8b20577c96768ca732b3a976fb86bd7075de85444d8c72d0ced2a04fa2580f8c0290418ff3090c26cf1130b53f083956d12213b472e892aca5ce29617861637c74e192f8c05983729c61f5bf115eb990475fe89c629fb59953d836a1cba2f086489d619a2b67945bd5466bf26ac87cf50d71361633efb2c7eaf2c9070544d7ad64c1d376423f45f5d3eab0df48b0c14d09bb9589ba29a2ca00069bb91fcb93f8d389755cf8d69313e583eb3891eb3fe5df45b60e84876fc86bd6ba62ef03a8e83b0a7a116f4689ad217edb901247d68141d1d6784a92cc76482b43b94b4a06736f5b404d864c0b18cc610b343ddee0733b4c08aec432c947150157155697206e90044de9a024910fb2005753cea7d096c69e41a5ae9e1f608715e263a52fafe8b148018e0708763e7319d86150f326a7dcfdcb94374b180a337864e2eebb400c0daa07f9547b2fd729abb465f9b01f655bb96535041ba142852fa78e5b8d3f95242aadc3f047c02a8f139ae1488bb9267a5cd01c03547309628e6f43650af34138ccf3a79b937618ca71a365bdaff4801148bd1f3a226e76915d0fc55d28abbdbed32bacb3c846a85e0aff43be98b4d77b33d6bd9613616d53ed45cb8b0a095b613c30434fab03ee6356f1a22081c9d7ba00ffe79e4d06d4b12470514d0c086d3bf0344f1a36bb72a4c4f7ce3d567ab6f2801406caa2dfb7f90e04100552d91bb1efcadc7038cfa750aaa4df2af972845ae750472c01eb71a32c82f5308f6cc7a1ab41523a3f50133579f941b761620c14afbf0163df16ef7a0a733660027d66d2c2fa3b079c0d610621f99ddae9d1fe1c91169faf9cd511d42b88e1732627066128e84187845656d5011e4a358f06d48be741016e0facde6f2e80e95d24564b716588f21e58a340c934b27be442479d70d7ad1d082a2f4d00724561028b634dcdfc5f195e2c190aacb61a3900d1bfb53fefbd8b2a11530bd28ae838a42cca09d645e941fdfd64cc9e2c170ed3e12308855bee598ebdc411233363201fde284631c221984572d3bc689894eae4024ac19da97c303e744114ab66e46b8b6766d8d3e22a46d5b12b9a79bb1ad1e144b1d9bf71fed9b448ecbcab7a5722e08032f550eacba884af3339121ff0dfec0f08e74eeff251ba2accff1e2397f09065c9d52cada3a4ffe9a75a6985115a304d47b21307795428cb8bac3cea5e8d45bcb98cbdda4818d17f6d8c90dae554e6ed38f5464287965aaff2b309611ae39b5867d53edcd30d39a762bcffa59e6909e3f42e78f5a1cae3ad010c2af504d2bc59c90ed8cf7b30a6395aeac92572ffd279ae1d92ec8e55dd4a68c461f1d926b20d354369283c8e170d09898286d464fc76191570a0f85ba43a9db64072a9e085691acf8fee165889d33154fed87fc9fb1ec3e5bf37c4714804c704b3264003b865ad1bf58a0656048d7e679b33e7cb4c57704e2f87d96f9526f0418bb24a9519dc522c1af940daeeb9f9575985849077f33556730f18e601b66414ea6c6985179423198f4ed01b5be4a50195f09e20e329b1ab817540a019b371b5f7fb060d17dc0055e687714593825425650c041dc351511e37b0c3a377243a8d121d09db5491c0fa0f1ceacee61e4451bba722396252ff310c66bd54f1a4326e316799b9b8a5bb9d76137096bc10b36bbee8a62144531bd769b7f3b81ad67de498f1e31a7e9a7a2c1d37e948b5572e8c109b1e2f6143482d07bb60cdda2aea3500dbd3aa40d2640bb0f97e094e1c164653b02760b0c6485a56c845c98a81a73d7efba5b5d2c6498ea97b3693527f8a3e33ecdb55324a9034f95e4917e8b4d2bba5c85494edb0bc6fdf34382ecc86a4c5d4aee8d1d390418f0a84a7203b2b018f10cbaf1ab47bed374184819b880f16a84689ee08fee0e081efc8dd44a1b7f7245c2d25bfe9639f91475b5421b39517f72a41557e7914b661692a3304afff1161ca735164eca72c22748eadd2023bda93685e4dd954fe96c968d1a3e48e019e44c8aedbea7133be7b184081dd3299af35f472ecebf4154116ac2d3a241bbbebb04ab4d71d1e0c96bbd4a06817392deb76a2e702cca2f3f222b8015388964b988e63dec3879ad67b01b4cc7b7e7e430c9ac8628eb0d1d609a93be69b967035161068e33723c55df6d974631ddaffb806f374de9d18dfba03ad9a7e479d194f679fa12d5e327e22ca71f02e9e18e382cd5557f9ff363dae8ffde1c09a834803d655234a225e16ebb5b46a3ea5c650c78c2f8bff30e6210c1ce91b6a9a6bf1d779b1d5aa95e709c2bc0c84a783571136b7b465fc9e0bf1ffc88a27e40f35cdeb0bd3320e13c58814174d913763d3f1fc0c9539821e130e8e3190fd614499eab795e03af46aa969bc8c9327049f0f14814c7435c0332421447e8d9126fa63ebbb4636d20423a8c5c2b8c94c2b1ff3f202c8ae68dd18c3e7f58aa42f1dcb2854157bcc4d2b639a950550fecfd75195a343d6aa3351c695df3753628225da46074e5c581239c230d09c1665015cac65c63aec61c86070add6622e82e0fa9c41b74c4824a75608e0b5fd3bd1898763899e8878224800a97c0151a1459a9d11ad8d8405542f4baa151d1d5670aacb20634bdd27a2db4ac96520667e356180a8d138d6826b7145063f45ecc741d828e8c5247e88c588b0df1b24a51ba2f0da5aa2b7d14c6e7cdf6e171fb5c53d82c9564eb135d278976c8d9afad5d92fe01e493f5833cd4b7f85d57cac16ebb31e23988a4ad358a7959ddd5f7a6d84a41ded0a247a0a4360effd77a1e3714bc4c64c94daa6bc4db6f88d608f59bc2d312580e6b390b2b78c71f1c5c7f529afb999b60741091a1282af4b091dc2a2759d6689b8c9263ea5e29bb986bf430bf720c00e4285cfbc57a2695bec4b675c86f7b22a0b87ce9bec3100b907758f44ba0c1162926d19782f393aa95518ae781f17f06617aa4fbaad710124d1f50ee847e978362def2ac339505fd0034a484062899a499d726fe38aeab0f4f98fc10049aaf299ef8aa88d0294ec4fc27df94d43f2aebefed2a20b9b2f246cb57409e97c1828139de4c3c90f92bcff8f6f2d16aa454102b311f889682547b55863c75b12277ae5cbf232c085b5b3543272dd3ae2a9e590256cf92ad4a14253842a265328a9e943804ea3a9851e00b94023d8086956f07b1db35efd187a5359acd940e2a34d2530e4dd39c6b73029c22def05b38508173b7bb3748542e91dc083c87825378e594325142942875091774ece691608c70dd89be55c4b69509e310334d38a8043ae26942b017b5a258c17be01763e90a848ac47c0a9abad890978c7f2a441fa30d51f795c370eb23a6f2be9499c38480eb1fbbc19e4ff59402354e2b77a552ba21dbef0fe56cf486a59cf351d2b47cf1c8717b439861eec22af05aba902df4996400852904c15549bb3d0c8366be6a3cd524d9981e132a9a42278656c3daff375a2ee045af3477af5521315b688611044a1c703bd0871af8c3cc10885e851a046f0151a50c415f553e0288d4121cfb840e4d2de6a1f849352010fdef91eb364e74be78cd8998322f07b54e9c8a0d4ae78304b7f83738dae4a6beb8ff134016bb5f85d802b45122e4cb3b4e657a0b944d16dd908a9af7f76d7894b861e91a25940901d809397b431c26cdaea90f625253f4a13f730e3a2f35c2749474181e66a56fd6227b1ae931bc8d9a4147f9004de831f6e2c75d88b731dc5050c50461b33276ae56ca202e41c00bd29f913b0770a5be90dea1116b0d3e3f7d01f4593d66f114ec51998f3b84892c2655915b5e87b60e61fe1dfc33592fbcfb0f4402ba36be5a32a21eb34c97c53574e9e1a6588d4c28f5f507d574dbddb05be9318b7eb8e8a590646addc2802bb6b91e6df4648f15169cbf98ee57e3a17245c407cf2ffa33c14cf006dc5ec9afe343dea7bbf50c3db047056a9b37eec6cd1b02364707b679591033010b006a547b64750cbd529f63dbdc1288e6869dcc26da66e1c8ce49930f9e9e165095c0d1a088fbe59b74516611c5ba66381de2eb9ae29632c9ff81d5c41ab19838bce6b1da513d6bbeb0f0350cafc154ab86e785ea1f07b22f842fda91379eeb4f5e90763e0c1a0e4be23081256965f2d7d745fe66198db4536bcb2ba8019454453e409a1c40e70174e053d36a3510ce479760fbd4dd046498ae998d6e6587af26535d420bd96882e270d3acfaeff8b9d2f1d430918dcdeb252985bc3f314c554c64463ad992f68de20ab0b48b67770484039a87110fb4b9c6d1926a88212caf281d00edf6c16239e55e675ffaf0db4e536012224387a675195eb1291919f06dd7f620b8b6f3b52881d1375f2df1538c4a7d32d4759895a2f4754c6d10e4c581bfdbd5b7148e34da03f0c1fdc32c379fd1a361314e37925249210a5b27af8940bf1ed39ae84b380d39e432359487a9e43edc9d566e3cf8896f51b037badab19a1ebcd4d29440ac64378601fe7c6879d23436c0dfdf5fc07ba0ebc2a2e237da33dd33217750a2827a25d59ba95e6f558b2455ccfbbfea1671b1db145c9eeffca3c9bf1158deb9f9d8e91bb8cc0cef6ebecbfdf958128250f3d13b7dc4e50cd330b1c95499c6a6b71a6ba716e45c032589ed61ae099c8464a2a50ca695fe984cb0eaf294c8e2b96691e1b0d96d595387d7be1547a0c571da7b1172cf3a75839856b262640ec73974a5d99a5488ede4f1880d641a07acbc5613cb5d783aaffe86716a4cf0fb632e432416f7896470e4f6f87f3633e3b4bbf6bfaa8f44054d966fae13ada011d710912a2224561d7ee4d336ba082bf0e69bea0d305fa15912fd2a4ed7cf27292f17423149af4d000b43bfead2246e4246493c85d6b0032112ac16a652de04dbae02c1a54e3ab58a4b9428e5caf742ef770123f1476ac0e785c345eba3f8d17eacef4c54dd17767be09d34d37898f6ee9809ddc07c4ba24fe51a86b9a7690723403fcb00ac7979a72e1c48112dca911dbe6cdd3e73b640481169d1077557e8d79033af1dc2f70b791f9a115f15a49102bc95ae01048b3be07c189e038d57274f05f44dd79aebeaf1d2324c54dbddb75c7f0f8190d9b6ed5ac56d1dbd38bc38118f9ec4e77d4615d58c12acbcaf50f19e4df0f904669b2df509b4fe2a31a6135dee7909708b9f3aa2d49ef0f61873be29c0f2122ee1476f32ac3ab6e19c4b6976ef3e1fac3d7df84f9c6d3720d0364338c1a778d9c2d2c879a515a5cfaa91470805148a28680d912facd7facf193a704d6cd8e89644f68f121021da47a73e20df14dbbc07059a43cca642338051b429e8b59d23eeb59a22ae346e7306beaac18aa97c8e0ec2933450fc9fd82345b91368a5a75fff06ce5c6cf269402c53c99dcd9bf60dfa57c14435d719c7fd3ab721c80697225e22c47d5ecdf0f6c2bb13d2b03856484a876f240d0ff01ad984670e54b4555b43491894336f4d53615912bfc0559935f5385781b47395a31cf05f36b3e89b615f7b8096acb415ecba89bf3cda2f2f16e66bd53f7b3af73cf435872cb166b4373a6cf0f08cfe31995d5ca5fe5e367905df533834a36191676516e8b5fb43330c1cf0a08ea9006e67d17a6391ab6c084756cc04a9acaa5cbdad9188e68da673279569208394669159cb76b1f34d435dfbab3f18f901cb3806e7cc645005207915f4bdab12189943a6332f26374f8525aaba4b64aef2f3e4cf0d77608c129aa8209ff34a1e2fb68415be3c2b82dfb774134932d796e9093698fe6374fe567e2302f29629598a0897e955726427f52c8605ec80f8a63493792b5ce65814904395ae63d04a8901c5197be45de6158622338b419561ce8f4a135d6ee296198315517de0649ebc3d4044d9f88c9d34fc509a8e15ace0f6ca2089f746f942c89e9624c77f42152e8523db8b482d6fc8d9929ce7f5e4e68ab6ad1ec6d3c4722b9bd296d43baa8fd91691d1c0803e3ebb18e3e4af0c7aab568a652b21b8fd5309a59036140436d5a4c73269d374aed2c2352fb2120fd3413354c706f49e23aa47c755ff36b8974af6aadad20f229c889d2e55b367f1951511aaedd76c585ac7b660bc6f113528078b057fb0723c0328534388c98c70f3676126573f386a19afdc35deb21910c567cd182d4beacf0c8503371a74ba9b4ab33c21b0c6132eea1c4c505312661555e97f630ac1b6103b857d9de70ba38185af39e76c73baffb22018790ce0a440c599bf8b982cd165800a7182d6b27f2e91de7a02b24d2fcb63c43b273ff41a8abb55c67d6816b230f2635e14d952ea84568fc9d5bb47f4951416db3d02b57344fdf1753ee629c413c34a66ffbb2e1bdc7cab0bff167eadd912c4c133f0db9410c4254fc422818a2f828b4d9884f654bf0b241bb4dd439b110e4e8c0e2a075152ec887a3a472a5d4b87797f3ee666b4d77d31ff6bd2aeec7a6e81df581952a56365085fce0288c9b9852bf167f7f668e60fe36d6e0f53a44824b304331d9380958da38f1c25161f0136faa9fe09561443001f6c76be6de9e28504926958cba2418b063457506b516c910794a1530674b718007a9219043cb9d8cd222804cf9ebefe1d0070ff7a05acd435d6078ca510b1b09941dfd1de267b8bfc7d8bab2ccb528eb6d864d3570b3804d2c6501290776512dff1ac5e78f843d6deb472e845b98458caf43a58e4a01bebc8a31822a519f24d5bf48acbc559e041198f1985082205a9ba23b46a3d833a1b82cb26c9c3e0e6ed35dd9daef704f9e21e00b5d5fa9822bd0252c636ce30bd368ada58d33facf8521e2c41c3b621864f55837e037856d9d0553db643863a180a710bb27095f82e92f464d351598948d76e2af268ace5ec194a7f5dda82479dd5cf39a764e372536aac96cd24997b526fe62c26887f456e9ef3672f8060ad4fefa69a250c5ab452520492169001c9b10a4082ff6deb9a8b60a965111e913b4371bac49daec591446b9af1023e0c299d96ee84d8f7c7e865f2e5ed0d7169f2fa49e15f158d13af616214c527e55c6c8b15c3a7a7692ad2fe5f6fe3f546b29389de3da31b5db06a8ac868389aae1d20c63dcd564cf33bb0fb9b9d8e700ea9a94b59e7c0897f3451b14e3c7f870102110fd02acb07947c2ed38109848128acf085b0f98331160f974896113310d4f02503615592f15528f165dff16a8f4b705e6664abc6b9cf6618d0e3ab7d5f00745b717ebe30085c2eeea6f5ee1500e8b3b8bec03cebc5815a1ec3701bae34f805395dd60ffeda0d22c433117b64ffe24d97688f188eeecabdc2ba10fafdc3fca56d69d0e16d95371bdba22a208906b361bdeb333813d6ecbcbc107744cece1cb29ca8fb51ca38bbb267e247b40fbc387d2e64a1ac6b37a0965dc441f26a6415581541e97867a38a581fe7c58bb02b32063dfcac5922439220f95937b60edd46d9dc393faeccaf0ba9cd4a2994a1e41b7e0894bbe0fe657c88916e60e87664a7dea4276302e448b8381bd09a9cc7f8294d8c872e9a7c43c32a438d311c9b8df729db41b6cab1a5b76aa3c6d5bab384df71ee0ce7d38db19496896e50c8b33d288c67125cab9284d11683d5cec0d2297bd2a1bc92d2ec3541093003004daa0f72f38b1a8c47276d2b88e0fda5f5706b1af0c6f93ed8c92b5c8d69979613a6cbba17ef335e0db6e4053e8932d3538a1d245c1af2264672f4c2a5441851ecf4cea07bbbe2d6d955f40aa0e1d164d88562b146eb09a3f3ebebd53718b2d030ae8a07acff115b21b68fce8308ad0c155a8c701951020975a38e8deda630ce13e231982b2aebbf62b8108bf7823f36119fb36757ba358e13302152e3a5360451da0155c9fff84c0345fe004284df2b669001856eac0865c82ce6d27c067808ade1e2606542ccb15f0a17c4faca777f45b3ed4718176f7e1786ec4d3d74629bdfdc3e12b390416ee9b85c24c80ed84b09ec3bcfe15e1b62e735a4c622fd0914919cefd22aa53f404b88b655735cbcbe6444717d43c2199b14222e1736169a227906c19b7e382dfb11d2eaec292b3360c098c63bda8436368f79598c1da17b8cb5a4b8cd9a91d22d8b4cfc87d69f76b33d10532395bb280a352e07381230378565d7161b23870853537a1158dc3e85d6da56dadb0b52d3199e59ab8089bed941b2cd06174406649a6a607b477855b22f70832205f3074b0e7eb70e61ac1e9ee4c6eca2fc3a020dc0ad215ed1eb7ebafaaba61df20e3cc10df39d8edf4f03814af84b07f2102ea0cfd54d8f2d618d5529ebd05ee7f3ecadc47f015feb0d44765af2a8848568e74060f9d51bbc663e4efb089f2d743a773d1e6df84af24534fcba89ae8f10750ea710f43bff882cf11520350438b8f030ec0246951d4c6b7206df5d5203c8506f0919246c92a92b7aee0bdde4c859840f54ae530cf73f7abf042c99b913fd8b084e0d02f34507fe327ef9d124b338259ab3a09429c8b97179656c927d972940be11c2160883905b4127978be1679b8b6eb4ac07168b5f3da129d077c6f930883ca7b9b6e8d7c80113644008691b458c884625d20663e8665a31de85369adb2ebdcd1556cb1e963c8e767445dedad4a5d78d9ecd7430735a6a6495489421a11ed94f713644ee6d4f4ee76585c906932600c28de680521eff20713cdc703a5b28d40d876b8053b8b92cba96fe8371133cca03af66f9e5618d9ea6ec5cd08c5518eeabb12aec65fd40fbb3b1a7b87270db43fe4ff8309a492408cbbbf6923a597d92739b51292feed5cd66fab2a6c44da38e8c707b972ae6b6744faff3e3e976f54d35c3a31f9d7d2cf045844355132711af4b0da892416c82b8314d3b57871413470e8efb6da99094c65e59b20849b253ec845c92110619f9a6cfa1ccd510a3a750fbed6a2c64f3d7ff63d99496b4e0d3105d84d3cfa9464c66d5d045c8b46bc8eb2b816d459d97a18564124f8aabfe5567d83f919a17971fb7c296d0edcd0618822b1902fbcb628bae0e3d5ef6c912c47ad1de134c88b894413f239a09b7b60d46cfe220c45b158d55ae66628d3a28df4c11c006c9898d405fb4bea36b3d0c2c0a3d9b5a2d40a721fcef176b29dc5ac869843959f168ba7d4709f97e3442e85485736368002cb6c7ad18f297e61bd3a492cc22adc59016bdfef687eb39120dd511db1a1cb8ff66df52f71c695b08a8c7f69d2b95d582937d1869aed7fda4bd33249206dafe150e00f594232e7d44f125500efad69a7892f6cf6ff00e6c400353630fb5b04531b92ade1f15f019efdae71f850a92a96becb142458b005d8d18af359bfd35f4524f2c336e28015df4e8cb78b28b5a1080c3d1b629635bc4dd0c7d446d6a551a50ab58ee647e59a8658f9b9bc222dd2707b394b1b69ab7cb586d54c92253a3d73c7551d88441d8e359975c31378418fef7d31ecf4200584944ff2324e7fc68ed800606bfd6778c043125d2e3af6011092da4c91948ee0267807bd9c619111d23f8b5a7b3e67b355b759783ecc29f5536cd0d747b91087763de961a9a151582f7a83dad5de5f244b0f5fd0f5a062efd70b6c22efeac744fd3a90ba15c856cf03c8dcc17007ba15ad4fba7a43651041f141d58e4fa1ed3b84aadfbf18d8f080161f15c9efcdc35b03222a5ae26bc23a889254b209e9752e47cb9a0479bb694e4f1a9214dac04e80ac112d12bbd10d9bc3bab61a5e88775342153e9273b84462b1849a2246adcf231b927a3450d6a3dad8aff40ef59ea467a716e26f3ff80fc53731237666d3439105d37c4a53c57cd84aadc90c3dc5504b683f6fbe8cc3906571b4c2b952a455d564c19af8d265d42bf906b9d46fc1729613160234bbc50465681c92793266b57ea3d131b0d05bd130bb1781782add9990e08f758c19939f4b3cf250e1736e59b2b07dd2af953dbcf2aff26db22313439b8a11653e235e06eb1becf72d3d16a328620d8a339aefb929f2fb4c93bd7d077f6a23daaf8e2f621a42fab2a29073ce05df22e29f5c84afd0c025d3020d27a198a112884071cebdcfc2d8318fadbdad4983745873a557b0321bcb7383901ef6e078d71efad65a1231d1c08129079f2d97029f8050dda7ceb689c663ed2201cafe0b46a9010d630996fcd2ae6b56b407a1c615b2fd2529a40609bc0aa048df2320b44e13f552aa64991c3090d8f8d2b71b5df7c8a8925598903d5af72283cfaa2d3efad6a3e2c5dd1ea289293189a509e3940a60ee8de0e0f43400eef90037539e0ce65cd7e50e386b053fa8db9db67c79939de77f6ce40202c56444ca16f0f4f97dc22403fa7e51c4d76a06735a4da167084125e3aa585451b2b2e20590001606352f8d10be680998f51f28299078473ef399233e5f3bea9f32502891f892977eaab311b3edb016200f774a39246bb45e8e9623678024e7c0e2a569ef1b65ed66f3fb685c33e1d781b5adf60690c890b3f8e48f470e063238cfe4e3ca932b7a83f906ea1ef1cb94ecc75e96d3f906e5adf65e92f0a9110855a0ea8e8c76f6d8082b73b89fc841ff4fb84c4ffdba3033d84a841fb80892ad661ff1c0f2d1fe9ef6043dc9c16a4721128c01fe78c26ab0d672641eaaacb24379ca94cfa0a02b72a2b407b4068822942e7b3c34f3a55b033b1bd118c9f98a39c11516a455f7487466b8663b5f37e3814c3934297f00ff43f620b837b4a98d03dd9e90cf0b35d944ae887d259c81af86fd0313186daa59859d4afe9a8d0ac7b57e3a49325ec7f6d9fad7ca555066b8e41579ac0baeb139255aec8c3b9c79e933dca824729bb83210eaab9420843cee1650320c7542290c2f0931098ae86ca864c002f8cb2bfc60c721fc6356455b6aa9f0b038519088ed4cc158f61133c0e3c9a31636c188806807098e21b4526e68e7e6f7570b9731eac1386829332b2e598e58b2d2445460702d7f21463ac026c3ddef92e0d7c236322eda9ea015a2fb06e16f4d1baa828a68bc9c7e6e873638ffc442084036320cd1c42a4806f94b024ff4eb67dff0acfed085cbdbe3f748b43eae9c4a1d8bc4d9ba7bf85b71c8bd169ed002a3466cff33f430792fc05d84702bf26df77c6a26bc9cb6e58b4de1c1c071c4850d837c173dbda0e2c62682d5062406cbe18ac397243c76da40dce2e036ffbfb83b30302b68b11209872dc75eac7c7d950cc3421bd7abb9e8b19032f0979aa889a703f52cd1c7908171ec50cb51b81dff3a4e8546daadc1c2229e823172de89d80f119f211d33e6499d1319d4207fd164e9abb4da04adb0160848d223a93359722d1f4acd8664965386c3e0a8e1349ebdfd5959ae25164d3bf15caf50bd11a93e090f80b54adfafc2036dd056c883160bff0b8023aca6e8e165c49b0aefd36086e97ef469c286ee45b11b104af5d1db4190392e557b7575073c672b97fc7400881d0940431a10e164e00a8a1d5fe1b41e0e278e9d436e7f5146a047871c0d34c6c3078a6c8f2a69f36857e1873095a4fac6aadb12685fb9fc0ef79cd819722f19895465434f3b401163467db1e0b6dddf4d06cd5e79cf4ca4d9409967b8e64ab12212d29fa5a1f88d623928cc98d28e6062856f643e732a94c1afd9289cd5f6ec5953e9230882f06488412e40479125f396826a13fdb01c38acc580e5e929328414d13222f3af2e3e34c4c51265411573849a865e88eb1af386a343b3fa8d5384ee38b4013beb462822108d87008bbd5d75384456411db3fe410ea92162d3cc11f46d5381c56b788352af83a5160c27b7b106542246e11a26432602714d1fe01f191bb2f54ae1309582f2481791077a246e94165cc733eea24b4e1de4ed412b6a3a625bdaf0fc49daf90b5ca18b90c405da020868e99b64cffd983ee11c0a7cac4853778b69e21a73341e32610b5b56221a0e12c3be4b0c7926aada337321980e86d13fb33a992a1c4bc89e38b24892b3f1b019b358cafca4d2374ff8130cc6cc6a68aac7b3e1b06266e80265c4513cad126564f4c782e3af7d44064d6d75035bd5e361480fcf7a63d0203e9197736fc431c27cc61ebfacc20a251f4f95f33dfe64e889b6bb789bee8e5f30909de52aa2e88bd6028e5b84add62b7e0f82627e556c6a6f8e2b8408d5430e4681d9cfdf79402a0feaaf720c074268b7c384a03b4fabbdb1afd3a1390aae3f37e88214c25a5bbede631581365f6c6b5802591e84449f05cb5b5ab7f0df4494ee4e7fc6b70ce5ae59d09b38c30d07159683515f5817e7fc12d68a4c8186b7e3fb5a6e61d6b2183523d7a1d08f9105d6fbac34dd403f50a5845ed0c3b343469c0ab23c00f80a0f458d51b67333afca2b0efada0eadcf77d3f26889b61d0fe514626a507e741643198854fd6560054082238dd1d17b029cc0b55d50a50cd585b7dac431785503207873db0ba66cdc01dc4ea3dab5acaaf0625ca8d41417e5470eceb397fa3d17a506db22700ec07eb0da3157e01f092c38127cead19a2bf0937f6a6df241c74e01e64e21f360550403a5da87515d46b9e4bec51a0ac8b7335fc9b45c6dbcf90eea6970ccf5f8054a10ab76f9b88f54087e7967cdfd29e0c85f30068549d00b8175c8acd6145731ab7808b571fa80e40eff0ca1d20772289ae4804764b2ed04159a6e46fd34edf28cbb60af8a346a0b3bcc826a2621fc5a60e5e8eb57615b1b204178dfc60197685d997da6a1e80d3fd6d768934bcd7f464669e585938ca68d64dea0e2b6be8ff2699738631aaa802c272e5f652321cd9e287cbd86a96179526876659a1a3ec714692c7d553969d8585cc2671fc5c6a1233f142f50c5bbda6704b51b53bb9c91c61aec6bc6f2609803ea48a169c4d7b711e89b415f3c2cffaed0c55e660732567c238c677406263bacd47722f7792544cdb95b1b977b34f9715e60162d0d87fc3bcf67df51a7c1264d593bc7cd62eff9b4a1856a5a7976b1571397574185f33abefca9ed6ac03537fadb5f2d74d7414e29a0e01ec52058bd7964ebd642ece8e38d71a539097c020ccea2b4464341a12fb250143e0a638028651e0af30f43b4d56668184cae3bcb2fe7c7f4f8b262c067b98418ffbee00ec3a8fb0f58a3a8955e29656c7ef720998db9d2fa09b3de71e944a6f32b3330f83259bc1f3d746147a5bfa19a638e95e81844fb09bcca391fe385936c360b8030a807a1e9697f9245a3ad76dad85c10ff091fd1a950d5f705f9b708f6b7c4086c8ca096c832ec94c03616d6e5f2a029103165f37333507fa9b5ff829efd2b9e62fb826fae7d5d71e967659fca3e7f691d570a2a0052243452fdd0ce097ed2dc83fd553eef79b67aa19b8bccd908787a0ad69f4049028cd208329b169d4b48f4b098879265b3a672297a5b13e6e7cac89b1e5986f1f831b693b7aa033fcc1ce59066890059d2af5ecd11b4317c895c6d9ce752176cf6413a4e2903912ae044418a309971e809e6c09439354da8a29121769f64f9c7384b55ca4c6bc691c3e7093e1cc1623a43e2a46dd172f95fee511db2d2fc84f7e3572826d5187cb7121a42df2f142e8f07d76f7b7a17f2297990f7701542374e00ef67aeea3294d0293adb1ad83a898de1ddc86d2c163c02f571b6d580d052161070764609bca58a65ba76386a9c769a18e4dd0092bfd375149f785b4f196a4b36161eeb85d5aec93a204479b072c93e436e4bba3195f694d4141fd10a2ded3f0b5dc1127e4738b193161da1f02bc4db056cc0268c420d67289a62f68e882c1478706b748e130465247aa0b359fd055e61e5ab5fe8b24d5fc1b457ae803c890e778cc0e8e2eddd2954298480cda781e82d1e54fcb15cf5b6887f36ec4bb39773258c75b0b4da199c2f0dbea3ca99a39458e80f832a8d74b886e4ad25fa5f61f8ada19df7786677593b7ddd6b19c40e44063c19030253abe9ca6535407f569c08557abd1350c5137db3f1c7c38394f49065f317c12a073b6e9bcc5b484d8856bec08a4ddc7b005ce3ae1c4f78b000c68aeeb1d18af7cdefa031bf7faf5050d4691350e8430c9003195b165713fcc8fda707d696eab22cb044036ff0004f9fe18bd2ba0f2a1679d60a49ca5a1b01e37e248654dc4df0b2286e0c424b90457dd256205c296b5243c10686b506c6c456c5df704844ed1bfdbfa45e6da646a04c0624a41180c25d8b5309ebd39b03e48d1af3a7d19318e30a1486f2663ec0af6ce7280c3b26685188285bb52dd243e3a57249d849010e1aa109a1e0f401a03cf679f52d5051e908ac08ff48c6927180ba09d47bb8df74271e1a6c5c4476006afb0b0da1838adf203f696f4e47ceea324e5bcaa35fb4eaad8bf03135064ca38f7debf6ead8768dc442e7d188040fa316b380d4ac204f15bb8217e2b1cb73e9bff5958aed53b3cb7eeec0287a708c08028070c1c87ef6ad544d66fed881da23d04103e35bb21c6f12922b0a0ccf680408e9458681ac2fdf7b8ba7e7c8868236bd6558e01786a46fc153133af0c34b548e25032a8e3a62d34b3777879002b1d0ae05a3e41b24444e788ab82b3700be9c542da8cb31091f75b389025903807b435958ebc102a48bcc741ae972098044b4bb8e24cc889cf9b1e760a2337bbd59181431bd1727f9259cf86b39ec5ea062177211b7bc94ed3a67e53653272525aa8fae66d1c2dd39c4c9ffd2d5e4345d00378276e80c3a5daa4d538467a9df95324a669b9a09899f55ad30cfdf1106c2ed4f1d02c9253c290f2461ecc9e87682b4951529172317313a4784151200ba4626a8d43ea3e3c8f08422b88d0707e70e146ebada575ea958edeb5728786d62a4e6032196910c869be28327654230bb71efe0af79709e50b1d2067d8cad42de94d108da355e2534a63461c8a9c61604421574f35d1ca314c86064ecf46515c8d6865370cd566117abdbc915a527ffc0491c2f6c176a231873a80cac9100fee0180b06030a960535810545f4685c15f0f4bcb3800d55500e490e608fd517e54f1a41f893048460f7d548f483f0427b6fffcb871bd58f083b602b7a7494226cea5a1ab354368c4897bcac7b88f58be38497c82db9b1d93713841e7aa8e73dde1fee7f9c26a7c933ce7a2eb27b28cc8545904029796c87174abbfb141ad6a3bdcace19a1c9deb3d99152bbf40cc7870a19cb9d6bfb46189cdf6bfe3d2e1a58c1f52a81e5e9c81f63f0dd02b935a77640e9df09088db85d54d10780d89a60e2339d44a5bbb09f28bb60225b517462c7a311c9d031ec28b0158ecb7ef26f900b47e2dc6a231845be00af0e6924211a9bb59cb52ba23a8e287de1dbda08b0512cb426c49d2a7d841f47c83df20f24516672cfdd6b92c1d52a5f138850378b354dc0609fed98f2e0457d8619006cef528952431dce4fd5be8a0b7db27c12a3aa302382cc390ab9665a898b9398acff823e09fb4f0eba4d0fae1af51018b15ae90e9e6295a52eedac22b6d9ce0ada48d3ca159f10ab590e2a3f442cbfe54dc3950788d3d0902e230a52611bb2cdbc70d927ebfabad9fc348e8afc3c84384b24404bc042f74690b16b992e71d667153cac471c72ceb1a76be90de09934e083639b584065cfc024af1ad615c40d619a7032ee93f588bc2b951c6019761daa4c6e0369ba7ad6100fde2a2001070906be43076a3b6bee9e30d1ab047d7e6959f273ad2d0bdfafa4534e64ba91bc3b29933d00b1d665bd877dc80dee28bffd2dade7b6f29a59429c9143806f705fe0591e40348882837becf1037c86e5419818120840d4c77b4844d25b9dd1fb79ba641fba474f0dadd1dc38322288106545442c06926bd759f000ab7bbbb8b60b1c2fd2a01ee67a38f275c638502b8fd35882b6ebf66493e4588dc862288276ef715d5d6fa3d13536bfd010a0e309660c1fce084167049582f400041a5d0040a061044707881e4870302891b5c9ae84901082784909c68bd00628a15b42441b90021041d5868d02201d1041d569058794b25f2c33eb16221821a3242925a21828447b46259224e72d894001a1129420eda133a22225aa0322774b615f080ad863419e070c5aac48c801216890e7589210c0738502484ae2a56306990aa506e904be45025a02036013465f08414f8133f53065d04a9b5564e052e80b7d65a2b1343fed55a8390c1ad2db0a94f2ad12454962b225a92fcb99f7d02acec8cacb16f9474523ab51c2c8ccb3e2cc02205f6058e1636dbc1b3ef830d9be52c892be2a30890e934ffb6c8a5da9b4c42a084e0c986b09a133be89083fbfd434a7d74a8e2d22036f3b21cc9e3525343816d21c2155a643fb65ef6d1a10b8c0896da80c46a41b426ac6c410f3d0cb1f1b28f901f341e4b2ffb0809828896cbf0954c840f1f227eec604104cef5f383939e1ca41040c3ffa58c96ee5eff9c0fe3fd0d8dc8606c781f8c7c86f1672645ce92aac6d96ae11159ffecba6f3bc9663f77cdcdccb5b9bb1d3ec3ede7eed3e4fb77b4d3a1ddeac5a64af85b24feec68f0cb77f6faa5cbe87d6c222b423e84b08b37cba447bb7a33dc7926c1fa920b9fd4f057b06ddd3a17993f97be991d34f8fad3e0db0f6bdfef39fad65c4c106b7a1c321af1fda78c9ed1ebf79c87890f6f7c124c746844c6a520d65fb60f710eff22f46707338bc4f7ae08ed607ac2fb597e861ca9b09c67454eb02c7bc5fe71085bdb042f8410da20ac3fdc5ce82b3dcb311cbb222e2cdc02073e495450fa627aaeac355766b54f302e474ce544f2a4b807282a52b8990fab49638e8947b5622a525424d194b449925857be922557be8c26adda24935cd28ad473e51320a4b423218170724a3a2377aaaeece15a7dca48296ea5e44a8e45e269932472e5cfae2fec7ac61895cf10251e67d0900b8e1497c9fd48545c7cb8470aea534b90ffcb6d11bab2eb640f4e25e145af2b83d1d17969bfe8509f3e8b23d427d8824ba21279ae0c48aefcd4950f434d62e373aa6e75e5cf1c6be33ee2bbca69fce5732ba7891e90b7a80004fb71249e2b3fc6047c2205714c8ed3b08d555df9a4568ad4e2b99284041f3706e7ca2f46e7ca18d4952421559f78e5fd5b5a4e5382d18b5e4e683f3e0cf6a35782232558f1d86d0bd0950f4374afb2f7b5fc5cc9a93895d38c3c1818441f3fbec86b69b94cec481cc72191cf0149e1922cb9925bb5ae7cfeb89f2b9f3f0eca84a4966c394d7cf9a49ce8c1c0105ff422af044ecaf148382e23bff2dc2fea64aed53e7197e326f40311396356a894ca75c0d30327481cc6e86540d990d3b08d779990cb64da9039e77cd869288d47fb6c68761a9194913ef135d226b9693c7d620da50dd17858afa95c463ea79a1dc76a138c0568e07abc0cc865e4f3b0919caa4d726ad96b4bfaf49184a6a6adfaf4d2fa813212f261e8cad77ab46c9284faf4712a52167df21c5cb9f371aa2b5f53554df5654b8688b486729a6a233f03f24ce5346c6344e309ca5a9eadbec883f5a173a5b6d595fd666030b98cfc1ca7a99e14b2fd5453f5495ee9f382d495af0169529ae6c2d192f4897d78845c293f6d75a5d6ba52fbb9528372a5d673e5d379fa6a52514844399191c89551e74a8fe9292589c10f74ef20d39c3edfe767b3fbdcfbdacbd133ba0b902174e71e3d04b1502c232f60ffbdea8a85c1353343e13e4e39a7ecc186b6dcf4e9018727953be794d17296e4038322c0e0c9fdecc71b64dc27a9c1cf606ec877fad5b5b9d5cfa41699051b03a00fb71ba519f2bdbb186f946477b767a3679779175f76d12bdd2c6a33e358afa7b2e38fa5cb9b0b03b8d373ec61273ffb20ec3e18b719cdddd42ed3e971e92b9c113d0b039b037ebb13768a9d62a7d829768a9d62a7d829768a9d62a7d82993893d823dc2a88a1d42bdac148b04fb91ec116c9451151bc546b1519cd828360a0c0e10c6ae59b4db98f705cddaca32c8a1c819698531ff1c47b230e2944ca6ff18ced942efd34655ac0baa8caab4b4b4b4c000c20e7dce52ba941e5972dcddd99da5a4ee524ae9d5dd99ddd9dd3577cfa4f0677fd2b57649d9adabdd1633c7c487d78d9663b8bb4b0959524063c4202d020f7ef4e087949107b28994b1073236f9914d66f99169b289b6450d34711b348f99d00f1d020acab9fd798b06b966a7b09431caaaa9899456a6f7056f590568b4e3a6b51658c164ba308a65f372e409a2413428d364ab564ddbe2cf0b2f6c2eb29a96a97090c2a40708d2408809caa587079dcb3fb8dcb34312b76b0093237afe5ad80078f9610f963fc2c4e8cc8491cb8cb598092297817a94b81f073161c5fd388be890adcbecc03dd8af421da1956a09eb090096a0e2e30325977d7cd0c49dd1f45eb7a301ef0e588527e34881f68ac8df72b0f10447e0cb18d9bb49a589956a15e2c0326b3527bbb0fa55ee1982aaa0e6f9719d49eb45ebc73d435005839aa77f26adb30e41150c6a1e39a9a4b3fbb86708aa82e6c7af0e4155942e87fc5950cddd1c7b5850ddddcddd5c45976a099614434b7812a0c48f14523c21f574104bf1518158215c875cdae2548d899fe32a136ccee73b7ab9692d85fd3ac7db5db469cf3bb05fe74020a894d5bc9721363ecc6c1643197c20cd8dcd6ef4d2838dded7421a48e7b449bea86b9d36b18e3072bf0eea13b38e20d2437d625611496e53b9d26b210c5bee2da569d8a6b3b8f2abfc9eca921067c69a462fe2362d9b1db15ef17038f7789c8b161358513a88fbff4c1d74e52711741b70d92789212efd8a83bd3a95e3341068e6a773feb23a47f33edb3d99f7cdc8ff4c6de44a08e4fdd5391d0e8e7143df9d5a283ae7a6dc7f66fe39ce6f4ad77b600b928c4b5feb5cc951200e6601babfd6f5d0febab68e061e369aa669da43da7d25c0b954fb7eadb1ccfb3679292788c746c8f509d287a192ca8bc28743f23ba7befc2089957432207c1df9e31d6bd3c7216977587758774bda545215b6b0ee53645c7a29a2e3534a6b866159c5bc1e9847af8b561a3d5523e491c59723b1848359902f6bd7a35e577dbeb3d65abbcbfbea9cb5ce6f856f93bc997074a3c762028acb9b8dd18df1868c4bb606f6b3d76d5f209b9f75edeeda1ffd58a594f12b918b80cb5138218bda7d3a90f030cb15967d90e85c1f243917be021a6e37b1934cb0f06514ecf5bc61e07a3964371bb555f6b35dbd0b6ef539ea20410863f47ee6e31e0803fbd52be32422631b8e4840694991237344163ad0d1810a9b693a299d198e5db9ec73448f2a6c0a52aab02e3ef0c16a526048ecf64410ac0a3e3461c48e0a8cc88962592efba8b4d842450416d8ebb28fca0a2558ecb28faa6552b1be54c4cffd7e466e91c518678dd1b386588cf2090b4b377a8cee750854cee81ee710dcdddda7cf4be36d4e9692e7cb8f33c638658cd13d466f0cc6e859f4185d13f58b1c32b619904f94ee9ca316f936a7d4643684c56b4e592fba9285853fe59cb2d37e64b669bcb9738c7506f9a59829e59c730679e7943fa79c536e1e277655ecaa34ba8b341a9d46ef39a594524e59e78457a551c239e58552b329008199994b52426f9fdef1bcd2a7e672def851c3649cd97623218dac6da2915d19d9159616927db1c2c2cc2d24ef7a74af85f4e2bab4b05c49d25cb61bf94e7a713d05935685bb7bee234e83e12577f717cd9d2ab1f0e58d0d63575a7e24099a90a009845a40a805845a504ab9a094724129e5a2499338251667cf9cb14762b3024d68133ac50ccb45eb552994d05f3699ef229b10b1f0659315ee898c4b1f9c742503315c58541b02fbc2858d449b569150e537d08383827542cde04adb4234b2975da92b2c9ae93b1840178e0e300d5cb94c3f0ab82add9e0efce118433676129031811a76bba92b2ef17a8c8ba9198e1a0005ddb887a38536f58f9890620cc7b27d9b3a966d6686c5855fb87cf1752bb0b31418b6c849db0d74c1e11cc7fc385c361b9f820bac7f578d59b61bbbb202e43cdcb926d868a1d0cd46fc5c6d149704bb68c101df037d6221f4642ee4627b20ab4f2e171e61c285a30b1ffec027303bf2e3664b6e76648a9bbdd6a7b79714351ae05223395cfa73bba1f32bd3b04decd300ae9cc10fa457b92d7433389560dff2d0e10951aeb0a2c8931358e14d72a20cc10401375f3feb4a4eb37926affe57ef8684fd6aeefb774d9f4a26d204faf47d0d53e9495ccc4b1036b6a9be7f5fff4284bd3cc6300ccbba529bb0dfba1edb8f44a28c061e36db6bdd7775a2df36afc7f65727daba2cdbb6abd33cec65f4b7092bb509f36aabc085f57e6e492232f61e6c6c130c95b1fb74cd1ae05cf67102c82dc0659f2440b7f6a908f6fe5ad4e8261f6ab3ab0f6bbd2952036773440777e35f7773615e39ebedf89dfcab93b77fd239e7c729a5bcb4a30d4e76266bf93c6af0dcdeddbde38bfe9f8c2b9f07c7901e8c8d075c7707c00300001068914814809b653cbfab5cd9c9ed463ec31cfcfd371e70dbab72b3d8dccc7d353169bd24e6360a5fcda2286e0e83005ceaed0840b6cdb07707149af1770704c2a08cb44d40a7a6519a65d0bba001abd46d86df6bbb219ff246019a790f3ff3c79e7a1f8f76e2625d8efa7caf2e87ec0b814bbd1d10b814c6f6280a415f11cc1bf25a42364f6029c03426ae61834fd200573e64d52800d3d424e0cadfa0b035a03771ecc75df9f283782e6b770cc35c83879c2b7f04d047d3c4ec3074e5262554f1b073a95cf9709a6ae4afe01b0566109edb37905e4572fed966859691dff3e195bf62042b93f0c16d1fcb3e4f38b9f3bf19e6ed8773358a317bd8c595df3caef655d68fdb8df9b00b9cfbd560822b9fbf1aaee67db07ef0aff7edc6fcac4a952bc33bc8c56a97837a3037e0e581c1c621631d108e7c60f96538ec20902ce3748c78084ab9dc4f80829cbca0845b2dd4ac305373b94b709b41d2eaa783bbf065c481e54222c169dcfb4050dfa3ac9e83e07e1eb30c7f23b81f7fdbdb1fe50ffff93fe2435e007fa48113c01fbb2f7acc07e0871b0d786de20d789b86f8feb2ba0c3ce232d2085a651ca44879f264c99224498c186181e2e3c4902b9fbf7657f9818c4b0f33d127fa391a59db7d3c7638b79783bf191bb2fff2597e71be3c1d1a3f7bf7d18757c43e5edd77c5177539e4777f5d1e86c58b7e845786d72ec70e1a6e7c1ddacdd1cfa28ec2d8a8da14fdd6b197833f7ebbc0d775d1af6e1ebc74b3d194fef65dddd77fb9c07fc9cfa2f7f5431deee5e067a9b197e38b0f67b8adc36df433cc8de718f34c876cf4ecee33620dcea31b42e1bed1f0867176cefd1bb041168b51153b8575810d1a55c182db42b12eb053d8292c11ec14168a25c2ea9d0197bf035c96b9b0ecbf4be4b1bb4c562b66ad7bef32cc02fc9ed238bdcb3db63d193e72707abcbda18eec782463be2e266aadb57e35d51905e418a00130870dd0ffc55001c8e5faebfbb2f7e9a831d51f587e1a2f439606e401733aba317b3378068f186ab5d699b14e852decf5145e32c85a63b3fa31d4effaf5eb021cc0513093ee2744410671cfe2d618bc7ed7faf5237cf6bea8c421cb9653f4dd4b12ec176f658f39467d39822d92536d5c462ba04f2bb4893f0613ff54feb93ec47ef4e1c7900166818b50ea719b8af8c72ee76dbc7940d75ee0f384108c262a14f11285aeaf0956ae902763e1c142161e602c626767676767676767676767676767676767676767676767676767676767676767676767c787f8f991710942202ab7df873a7ae7b48f180481dc95dc7ed9d373093472c5ebf2865715c1d49c35e79aa11fcb66d0a2a67943ad8a4080615aabb716188806bc34e06da14d5d33d2b61b19e20ad72c2d25d24603dee8125d5cbca14b15710d0ba5209015f66b179f15d34401f8fad3401d2434e438dccf38ca793ce52a5ff1d329a3d7d4d4d4d4d4d430c3c83416124c81c0d6d4d4d45420db415c0bfd900967ca542a954aa5baa6a6a66685a4bde0a6d050e3748e909050a75ad5abee6956b7f8654ca552a9540a042cc4422f52d060c048555dd91e8ef52dd34f0b020d551c9bc3e93c8a6726050453a9144c090d354ee7e8cca062abd56ab55adedd40a9542a954aa55e6054d0a28de3c01c863c178542a15028aed55a8e7b20b8823d90055bf00702c146a15028140a42a0570100da8c89b39555ab7d136aa606b65aad56eb51d7434d94444594a302a0592bec6bdd32dd19e71f06ea56e5388f7a9ef45a9e535feb34d7b196e3fe4da6999919d7f51c8eb183e7d40b14e1907555d8c2565b85b76e905974778fdea2c2c29f974be9312b42ac08319f4b73658819b18f1df61c7327e9cef9991096db24f21982916b1bb68b440f451e738cf995dbbc8fb39ae759378136f99b38ae46fd61e37fcceafa729f34981bf6d2b797de2814877acee81db3f83ab89b18a3f434b8456c1a1ff46d781bea1d91ef9d3ff46a9ba27c1ddc9d2fa79411bbc1ea90654341babba11051f65982e40c0d0d3573b70e6f9618502a82750642104249d2af69c1df03ee84c8f56777772992cef4c91f9aa0a6e6460376ce7e137c97734e034439df67bb9c73b6f4da2b12dfbd18af461cc9f20e720cb657d8affab8f8db6f91cb83610f86becd111960d3e7ae7a5fe97166b867afbf7f0d3877868ae37aa9fb080df7dd7d50a8f3e9f12efbf80cb932ea0b7e4d423ed3ecaccb7855ab61e5352081dca28fc7ad41f5d5a07363ba041b006fcb8134fc22ec325458f8e4c687397d8250e8ba57b3b07cd9728c1e16d6232ce1238921444164f5847a1fdc584a64719985e4e7d65c662961e4b252ab5b80cbac22436e144256d69bd95e88581f767ee571fdb4a9eea0f7aa372f32b07ceb853dc4300f0e69533fcf0b11cb32c49eb88592213cbd82cb3e370012858f164771d9474992abc4081cbd24613bc6f85da94dd775714b8bf3e53c922d5d8f9627b1b0b43c935ade5a966f69f17ab4bc772c5e4bc7dc22bfc5b32b8673fffa5ccaaeebbaaeecb7ebb3cd03be3d773ab81f89362048458985377a6dda5e90b0ad62e92c888631c60845f682048410d239e9f47a4cafdb3b42870d636c27d90b9297232c63ee43b6471d5c9b7cb489ff6565fb3f48e5e248c82463ffc17db031cbb8f435907d96e29a8ca422faadeb24dda3a44d70f58daa161bd244db4d7cd17623a2d77643afad06c31b6327a9df28972b52ae3cf57ac531e47f6f52524a690dbe9b0753bffe25ca44bf19b176b4aaacab6a90d5a8ebbd4675f0422316eb48a3ff2ce416d597d159ede0854152245fc8174ab7692fc3471d4bb7d2c900af49e260af57a311e98e7456149ad824819520ecd72809b449dacebe0d6f63ff45fa4ddc6e6aad32da3e0d34d86bd3be5e6a3b1fb517402b1793b5767926ef4b375828010b57b4fb4cab3e5d2faa2fc39d5932449304fac4ec411da7e94e22a5903e0d8110c28717ec607061b117fde821aa42213ada853a45f48a33390dcc01937fc9af50671bc27603b58b92ec4509cbf2244695f58fd15f0525cd62cf25aad1a71ba514fb09d0af4129a54f3f66ebba1795edc76aad15ebaeaec45b26dab6abcbb06ec3bacdd3baebd234ecca2a56af4a5997f665af6dcfbf75a5365daf75dfa6ebabd3883c93cb5c3ff290b0713481ebbaaeeb495ccca8eb5e8cb0f1356d7b51d743341a899e6f26faadd3bad18b4422d16bdd487b912612699b56babc1cdc5a12059218634cc246588a26809f753db2d7bacfb2ac83de573be30eca8d1f57504a5983efcb11db7c2f140a859228160ad52cc85a25596533ccc2065728d47cd8737d9497077b56ab4a39f873bb81b06705678cb00e594bfaf4d327faf161507c0214b34d835eab4f166539c2b220cb4296758b8a3ab6a2ae8e8140a02b3d272dc86a537c185c58f928d68d90ddb1c11229238c52ca28a594524a295f4a29a594f237958d2f656441c61e83249265c4ea32956be4d2aeed26fb6bbb710ca39c6570bba9b5668f751ce83c30da701461e15fbd69da76d3dd35f8560fa63f078c2103dbcde55980b7ed067a37d8f8429ff88536c50e7b199e75d7d7380dc61d6b568ab4d0343eaad8686fc3db681fbfa64fd856832f06b5ff3c703fec75705886410cf3664c264d0135c32a7683fd2c8e8c031cbbb05fcd8db76fac0f3b1999d7428d5f849d9ef470b023cc171dec679db7c8c4c63611c1f5697efcebad5f735e33e288717651ced95d75d63a699c317a560c71f8107a1cc7f0df8cd0e07e88824cc6b4ec8611421e64dc34d1da0048675acb6c1b1136bec7e89a111bfb47846d2b9d9eec68a188df922753eef85198c00584cd31a243b7a287ca659f24aa99cb3e3580121fba7b1fc7299b399301deaf063a0d0358267e8c31be6f46ac7fafd0a61958d30ab2fa9aed9328e37b89ba4ff417079d37a8146ed705b1746a06000820007315002020100c0804227140208b535d157e14000d78923c74549cca8349920439885188188308010010030c10304363322500f82043d765e8920cba2c639764d855197421f3ae64d6b52cc3d3a58cba90597740fff714deb8ab2a2e935dc8a82b997749665dc9b86b9975a18c5d91a9cb32ea9a0c5d7e32bd2ec87c17024b07f48f85033adc28146b1d6de489383c88c993bb80b27c4d2ce70504171a77cee98380b0e67af1c9f5325e3f1ae49c52d542725fe0eff8ab5ab60e8166cf5c3a40b119a552ded9f65ea2d0f6628325ce62f6405307451ff7c447d5de0caccd649849f1a41c557bd23ed14670cae9064af6e8cec6250fa488e7195144186b6e29dba106a1cd4a5d44e48d68668affb2dd1fb036643e12f430d9ae4544d9189993de02ee82227b9c1b18ce1cea5a6625da8f95d6fcd7a0c13c15b5addb89481bb429ced2cc4d848b0677a7d0fc1235c070415c58d00860baf7db2614e597bf15f1de5958b142c15d8adc8e4aa3146a0956f2c4e9cffdcd8d4ef693e3a4b1d8072337681d1997569404c94574ad9c7e48110463a34e9ac4e590fdf17e85d2304b5586720f3c62257c6f07afc8cc995ec592d052929d6d7b28941a6a7f613fbfbc5f7c57631f9de13c8a23ede9bf13ff578742fa4a1ebe5ebb18531b0e6791e04c4f7d3cdc18e565498e2e06adc75bb372b1d72c7be1564fb4c3fb27e72523fa7f39aa78cac8caecfa5f6db863eadcd68215b22fa7122663fa637b4442c4bceeff10f82375d0ac8d2eb18ec7d127d1a55a523eb5a3c9b3e6d1d1f4166f508953c09298cd65825c56e7e9e6cc3de5ad2de2effd1db9ed7c18ce099826117aa2f39ac7c33ee20c876689c1304e17ea169ea650b9b9fc45d35fae3d82407a7ff03414819c117db6f23febbd7041135761bb74c3d41841a0650aba9a7d226007468876388ae8bee26c55e0683df9025706c4ac0481c747992adab0a5c6cac5cce733d9e82616f3cc7c3d8fabec8ee3e6355b95686de5b369ad759a6e2aeb3dd5c54217e6ff8f8ecc44cc1ae82f1728469bb26365225eb556f4b6d60150e12378856a6895936ca9f88e8360ca442c43c1cb065b569b49b8f9a948e2a0816de22d79811b156d2f7bfa6b5f61a838e331a9c0924c6e50aab6390704d1cdca06b6857a2def07b08d51f4793322c60f2b000165d195655c6504eba71b6e10d6ba01b2e37178a44478b4a448dc8eb5c1e758f87c8b0ef750c8b06e3b9f20fe0bd73b16405a6da4916343d3c729aac7822929cb0cc459eb6923be3f45664f456e19824bbe4bb5d18305b4f7ace884f8660b37d53eb577be91e8d304ae91ba4f906834bf4f4a536a5b780d0657daec3704a692c7fb6f9afa927ec05af25346e5bf450377cb37a391e5c02d4c0ce251b2c87a76e484188b1697e017ec9bb97f6e57d56f157eebef3056512d455687d484391902f1b929234cb453617ca2dfe24a5760a51a01b4e204885cfebace24f7d99a008816f12c05e8631f700c359b2a1e1a087a652ba6378d9fc0866e732d67408c80837dae638214de6c8ec5ff914be5e400d693b84391ad59c8d2ec3283ad0df0009d8d8a2ee51fd79589081a7ef782aa012785e96f2b5a0881aa77b68505774046c92ae5bedd43b1d204949ef21199b6234b16c359546bf72b6d18a40f28ef90878ea449f2bd1d87ba40c3630edad4ae36b1ac69792cba883b513bec4b6bdb9c708061fd1a1c5fec699bc193b62cfb99eeca7d96399a046fc0b9b2064452d59c50898564a7ab03ecc0da9c1f21dd4c6debf604990d51ca90f5f460ced2d98338f3390a777c441187b98f84b10f80b4be5c10c92439d22222b49a03b8e60ba10e0c13fa95b9223180c63e2aa122de0cf82c46b7dfecae4890eabe21fb624083dc5a68430b1facc00eea2eacb0c26fe76a32835791f4cb37cc0a9c9ac332c105766abbed9aaecbffde61d3435081f478f8ac56493eecc460c803a0061f52109730e6ea589c731d27589763be69afa2e384cf4554f8ed9b1dab874006a9d8b48be8091ce6c3ca001ef9bb431d59c4b4b4befaebf8d2c0c6a63126fc02a6f9436f0cc4b1f02c7fa292f1e69f2abe6917fa9565885fc1506e6a9038aeb4d9021136894a9be15a3b0f088a4c6d4a559cbc3de8199894ce4d5d14922751623f5224a58b27712a94c2b8c9a44a748c28198e2e1e6fcbdc649368f48ed6360628e86170583c0ef6d4803492f5de2481095e586c2f23a56660dd911ca0a39ebd461d012ac2c9a4a26516de176da08db514d7c5d1f15101cbe2b5319a8997114547fe72ebad0eee21460d86df5065cb6ad84f4af4cf648ef0d5aaa08dda5a8c6236c598cc26a4f1ef38bb53df685a14d04ffe081f940c03b550784dcf9de5bd2628d9df99832e455a57095d341061f52080a0366d3f40ffdd8114ffeee785c6007f03c162c873c9787da07713851dd1871d326cf7611432a54004e74903b3a6bc73e5574ce4f40942b4e876a5325582eca8cb08540a1429d7ab0947447af4aafb1f4176a4ec1724a4897738d4bd612f2de49abf6eea630b05243e7a4ad355709e20e31a8a77214afa2d4d85f911043e97372d68473ace0a011d7d9ce0f749cf3d2be510033f3b4b34914d26a2fc3f1f17cfaa35a1b854aa659e83dedc6280345a973ff511635b795164f21401edd2db3ad90efb81d91278043d16bad540f759a8b19ac8df0754cecdf0385a33f46ffb250afc7e5cd559ff23a004046218933fd885c8c0fc1bc35a1f934c14379b923475cf22e6755a5ec1031dc0fe286c88f749357d888bc7eff6d10e84f0f35d87ea5830c7db4955e45ac27048689a3d1cfc27cf56055b00e34bf4b39158684c0fc52f7bf27accedb84f24e174c56e052fe5c54c973b1c7435e6f96d4e320b5c02e7d81b30baa77884933476abaf0cfe63edd3d64e49f41a7a86cf803f2e1d0d0c1712c58832aaa176afeecce2d2343494cde36ae52ef9a1e1542b25c55c08732f446a0be9b634af695e2f39567aa558f69ac1466789327c67f4dfabd00a90ba5b81d1fb99ae809d9d93590cba0056c8325d11476af0b596509dace02bbabd50682ee6d15a3ef34f1d9f8ab4a0fb7d25a93a504b3fdb040eac786f7d30cfeb67d44515522f8f6b74ba5e40425a97ac28536677cba367694840a2a44f672b68e2221ae672d59d36338f2aa32a72fd73680bc5d6c50ef9e1a326efbfb8220d525fc76f10646a56314feca396054419bc493d6bc507aac03b8b791720a2b37c1ac48844d244182f85433fcb2ad118c938fd22f0d1f28de221d5768383abc41ca98890b814de6b13a7da84e064d8bff4296e86ceb2f9aa1821f286fd6c4d3f9308c79d5ba6c29ff889412fba53f1decb0bc7049579b813d077da2402e1c5af4f53c39d27a664212c3ef6d2c027929ca1cf6f695d3dbc6edfdbfc071be665852661ad506d135826ba12f20659b30cb4a6c43eb52f404f93d1c32d8265ab1b728c27d8028cc05740997237b254160a6ce4054bae2fad5b4c588de51ab20b358c650efa41a96a3d54ca16a120f6798dc5f8a462830d67c4ca53c9525caa08a2d8a01506a2e2a66a1bdcb0118115bdafa30b6d949957105f5bb2fa05cf06310dd92525e506f8d3b168ad4cd43558c290cb02a50f27dc6e572bb60d7e72a4605bc788f3aa640d76dcd215ddd6c5b002630aab7b219f33e222faaaca6db338424b426a2706cebef345c3c78d36b43c78637d588b7775d54b0414e4a86bcbe2aab0c0d34ea3c6fe821a79c0860c5d3eac3c41c8c5043224486cf7f0d614623a7cfe46c40558a31e90e068e8491cca8032a3511fb0647c7106d5d70f61d23d3a99b6446246ffd4fbfa0c6dd36e0ce56738ec7d100ec856eaf454614429a2e862811d59dcd889cd29be398078e3b37f9e9e82cf1ae39fa9267f28d3cbb809d974215a2fe490282e6ae23910d50ed96d861f49d619a8662950db973a651e1d0f7301bf3869ed4a6748905aade15e87696f8db03517a032fd8dc596f4bbed334b2643297a845b48d0313797a1c91cdea51b6626c5a4f2f1ff4c93bfabf05233b7c0a5f82c29fc26414c87eba695468275b954945c3ee22f3bcaa055bff237e3f47768d6c54bbd8927781811cc8c14ff162229057b239e38cf70443b4a277907601cb840f0e2c4ac97e4028a32003560d9aeccb38b51e951c39c986e34d476d15b2e02471bbf31a425aabf8b73ba823e2ff03fecd23419bdde5721015c0cf3af5eb7e78b5e7939a830789e06bb3ca8f024c43a42c34ac12432830f691891ef728744ba766a2b937b2721a723b4aeae7ec45ba8d367bdb2a347bef5ef60c26cd8712b5d6c1dc9fc486f2e90d6e78ea602aaf67ad45eeb7c539bd2b16e50304ab52eb4851f401eed4c9db52aaa0a4e9a5a9d92155ff0ba47f9cb1c42fb2b531834e1910d473ad8324ab892b4fde66900479e035fbe019ce0f9170e119757cbcf469872d4ce21910ff78dcdc298d0a78489a4653eca822cd2d57560c12f68b17463125fd095bccf511754cad37371a586c2904ea9266f610a747dec6b47fef184cafc63ef5cb252f642facf34fcb739791b84da688f2e3d6dd9d20bb364d923821e18f52aad7f9b01fee798da74333fde46fdbe7eb71380197614b6db0201212280956de32907858c27b4961b2ddd5c74be0dabb5f3b49c94637ad89f65b4f3d32a3a9bdce5583abed2441b478fe0bca1ef19954b79e33282503ea8c6f69f926d1564ec241ec40a8ff93a8e59fac56855dd9c6b65596bd72d6a580228e2400640b026d1d19c41e8c425f61402e4dbe8f87e2064b89f2e9308f6a85da24287ae30a83ffe5e3c4d9238d13259967d45b30ae756e25ac24bec55e12bea306ea21f84852f5cfa1b4a2477d4d2af65c57a665ca01fc283486ad40c1c096b92ce7ebf00da4053313cb8b261c5df8512fd0647b3a09906210e94b62d233b04507c20bd98cf812e162c233da8476a137545d1706d5c73be4f8aa328d16d87678495296eae3343e8ca9c70e43386a5708b8e40c2ccfe45e444c587f6eea4ff9c963216a73a714273a919f839fb3ffad546acdf181eb27cc35ce7267bd0030a8d994e28900262794815c09736277a2ca28e41c18a44fc90d9cf0f0eac84280ce01235ba5ffe269995fad8612c1cc034016df7abc4c3e7566264d259141200782ad4f8e055cfaef1adccabe283ec0267ed02c6e070ab8fc547a6e5f1381c012e4f62a28ed33e248412c231287540739891ef79a65c5b842246efa89d5592e158bd54a2304be2645bd413eefeb3f22b1a6074402ad057983185a328679b8beab3210377c3b64fccc1dba40dbb36648e256b14f64c6d82b63d168d1109ab1c0bf307ddf8ae135e4fbb17a56041794d37fee36c238d9e7b5e534198677828381923cc49089164e74a29495b2c6d73bb9b7f3655d198dcbcb40e810022cfcd889e89c11c9b69f707ab97f5a5ba115dd2e759ea27881118e475b544a1a1b5b32f6d0e4f9327fa699ce631554d2b097e4f0d6bdd472f9bc075ddd7bdef1f4e94adb113b5948cabf53e039310a5ead42aa3e42083c79aa0540fc2acf7812404b1882a8eb4d9fef6276a80e8f67cafa36dec28086d15b7476e439c1d41724d13f48cb9de9e5fb33ac3e87135e7b794ced663c3adee6c9a39e0d3d4f77d6881a6e3ed5ef2062cfa3b60989fdb38b1a627ed7a4785b8c1be90f0cd4ac259f9183a2a90b8c93c459378db286b3d606d76606bec2a40871a26b00190463a4b9d716bccb6b72c727abcedecbba31275f00aee4e09066a148cc3337e562fc8c37bff4da1ed322f9cb72fd63a5c816046fbd3a31f01b8679149070b8a80081d7db37b75e5296c3adbd8f478a4dfd92cfdf476e149dde86d1b41b0c0863b6fa5ad5aaaa8ccd8dc09d983cd2b955ea3107bfe36637f107e78d835784ad42aa92ea8117351754a5d6ee4a010097aa0704723286bf95c0a4a1e64e1978370fb22ef483255b9fba42f5ad3f3b2d70508f862ca5fd7937e0ce55c3b8214e0990dc553f104ffe7af45e53fd5451ab40eb50dc1e2062d38d4ee02c9a6f065edc82c46ac008bca8ad38b0b4a05c7291617eb9c8c0fae9c6cbdb4db186304c6dda541858768bc170bcb62ddbc4debbbdd2e84f1d4b2c09fcb623646d11d4e5ba47b17baafc4ee9bb5cd6916cc994f0961a16cc9feec02f3f21557dde11f1017f969645d941faa17cf22d29018a0cba3993dc83cac81281fe50d930b34c5782057edf2dc793fe0a0f0568f4b65849da4636c5bfe900b39651bd835218b5134e1cd537b928e2063b235cc99a27818c0843af181edd8e0da5a07c969f680ed0156c8063ee7f2788e013181daf43945f045e34cc06e604ce36c7c6bf523a509f564863d01f3ea5c6bea576f0da9012ebf065fe4d098979f84f9036c3fd3f55eb7f9530904b963d5ae07f87de8d81b7ab77b56021597b390994c9523e0b0f48167284184aa154ab47b239f1b7226a778b83d541e71c38babd50f8d1ac48807ebdd15de3d5ed2c6001f73392449909aaffe6aef3eabdc29a3173a8a4d95fb036503dd23bd0ff4fc824596eda9be12849d40864f00f73843514d984ca2fbae00d4d28673a304507c31730ab91f0426e4d2618a1190a8ef6c6657579d9457bca8fabaccaaaf137bc8054b48d1c79756a54b3a45cc66eb4a8b8284ba12413150d0425c6009e513fcb9dc63526781ee479ba96c17fa0902d990446b5a3742c4775f213f00f72089976da2e06a96840da61fab624ede72c67dff8c859869c32956a46c293ac69a9955257ad9775f2f2ac72c721ae80fd2347e7fc413d42afb03599a9bdb05ba35b5b3d52e4892487b1b97fd33cb613a84d8372e2bf63d112af7532be8c46f189ed4495aba8d44032398b31ebba236611f2f7e84df7f1e12df87c24a59a5bac9776ce0c3b38cdf86ab6acccfb0c90585cafaae2697493313f191c00891d16d13a689902e7db52f96dd9ff40f1f266435caac5059671821af96597fc2675061587ef559c6083348575f6eac6fd3c75636f3b2dcdc7593973f20012a66cf01c8f26ff95cecb3549f8956f6fffae1f96fb865bb1584eddade0704dc9afdb34441cee887f88340013b9b8008f6d5013d78e0123bb83b0815e2335bad96129f3f68edbd1c86a1dd932ddecd688c59f16d0ed638008439eb1adef9dae087428090a05715d700e651b8e18368dfcd0cc4ebc37e0e33a48710dd97d0976e8da4573d8c8a061148a267eb3f6134436a851c2a873a32d44c21c33b8be14b26263e53157a4fb420b1d86c16fd1015b704383c41d6643ed09748b7be8baf573fa5d54ee679b7f9f6c3bc3d3ec37b868f3988d683b4132c5ec7cd7de8d8a4a2e25dffc69f02f96cd5d03223ca6c6941138932533960148a7c2270ea313dfdb87251bf9980dc582143219410d7bb4674691ff41f9463d3aabb8ef4a868968d1e95687009609822de09e603aa9d92aebb52aa3e863c23b5e5e4becc4146026ba84e93991316558e5ccc26378f262b64939e2279f8e27f2e3b271b7c542aac5bc0a7da6c7ff230738bfd877b92b547b2c24ac612f15c61e3294406b468e610e3f15ee1e475871ff87619037caf8a00015cf93ab1b7ca0f1ed6a2659a488942516c4c54ed823ccb2cde2332882e14be95d271b389c49abde45b03986704b642a0c0ff562b01bd40aff44bd4f0f31a56588eec765460dad4c9084c86a461eb04b6981571296359160cd6ed507256ea430cd97e74c2e67c67301a7d0b4191c7c4196d2de63ef9e39cdb2625d361781e0813fe9c2df6a3eb5b66bcc6a9fc807e562b3e94c281510afa29b18e7328f1385021d274977567522425a790ea80dcecc8bdddb88e8ea448b7ee22fb2b0a3a698ce017daa99dccd0fe123c96083ca83863cb8cb77628ab2fdeccc75f1a8ea1a650c90dc24ebad70dcea84c3924cc0d2e52017b4bf33ef0fa807c3a970b1830cbb96f74bbe5ad8c3782a8453bd5d8eb19d24e2dbf13e1e9b86f63cfd7d45ec834395734ec44bff8084bab5f622730d5f380daeabdd879876abecd74f9041b2ff19b681aba9c8b08275ad665560011de534f8a811905949e5fb0192f6532a4dcd17b1f1a942d39b5eabf2b126595f72b30b39e79d247e423c7aab9f391e28f4bbd33a5ec8ecb890a049fa9997cd2c4741e61bbefcc6c9809eaec12dedd12b26ac06370f87be0d945314d19c5fae8a0a591aaa73507d6ec44d22ae89b51fc5442dcadd891d1b2538ababe6a82625781688470338ac7cd363bbb45c3db1b0e4cd333317808f51199a88d430e0c93ea162af453c33eddfac419207e8dacd621b623a8d08f850f2a16abe7863cff28d70849cb147d7e374701dfbf945cdfc17e0fddc7bbad49c038caafe496dc0397f387b830a28bdcfedcdc4f831d2a6cd5f77e442f71937fe0baeaa343ccb57cdd131b3662f1f50866f9140543a153afcdfc3a2bc69052db2cc6f8a4b41601bc04e061b721188d1fa3f1d99754c479b0c5d99965d77d4a3411badeeaadb34c8ec2ecb7043b2e429c03e7fcfca58aeb5479c6eb619bc92c6a77e5847eb2966f379d96a8735aed61bac8a5a39ad554e570b91a394c109d403f152484cc32ad0e88c3255fc706a5cf12626b0f29e75b8425fbbdbe42e8bdbab3ce585532eb58026b692c4873526821642d606d2243da95888a08cca434c08e3f67430998600901f606056ea8627d082b40e0a6480a5d983d82aa4e5dc44708491363bd3fb9d60fab54353c9a80f4b8e74a736f8b76d97e9ad58f773f24f78919bda0a023431c351d091770554f6dac3429c578be6187c00d7d515f253dc394d45e48a41a14e6324e856b80a7682d15e13739fc26e57e18e4541d00ac3d0e0bb9ab3f7a3ffccda0d606f90a864f4f214e8ec2bc654785c158b43d43ce4afeeb79b13ebf2c2453b00749809e72fa2787367759dadbdbbdcc7d7cddc86ca87de27692aef5230b726c557fa20534029fb759e8361186cc6ca2c78902f0978af65b08a5ea87b39936ab36db72377ce67f427953ac4c5a8ad4566bda105f1be1774ead0a9e3382ae2279edb4208e20e3dc9be4426cc88a29340e37108f1998c30ccca36310df42b6a9a3fe205e2249c56d3f2b83ca40778239195e19bb60a9faa4ecc52358ddcbdede8878872dd60843b4501bbaf64fc6a1b0c478e505dd8eae7debdf1805caaa3cce117645ed9ef6ecd9900b11fbff6028835be25a39b53c4acc5d035c0b6a30306cdfa07a9efcadcb9600eae138e367bd51661382aa6bdc26ea4c2265530e93ab8697201d545e9d2e7eca7e008875431cab97492918929166e6a5c81692959afa220a6088c4bafc629681f4b95cb952fbbf4436cc7531cbc9bb22e1308132d3d62e65f005314324012e8b0b9d3248420e09d7f44e82a27672f20aa8e5034e2d2fdded1dedb77d7ebdebcc1cf980ceef509882f0783fd8403bb5c849b4b1db788cd93d79c4fbbdc3820699972349f85dd1649869117a6967cb320b4ba334e6c0ecb2f4b81eefd81ed12cbb893f3e575ced747aea999a5a9e70382aebdc4b285127d21842cf83867908fe737277d91968bd3c755176224f38173381cc54e5dea180d1e26432d8c1d704662a4398dc72e6214727bea01540231f4f785534871d2da971fad875aa88210b22c4df42446c0dc992c40f0367c251da215500479f7996318f8ed5464ad5b631bbdc566425ba70f71f7aa72b7a89e62d68d9fa0a2632b107ab8e7202e96a1e417d5ed60eee7b80f1c51baf5b4ba450942232c7fe18beaf5adf1f3661d2eae6c5bbe63df3c37a9a40ea57e7e2cd36d03ac6c97e710a8ec9552dad596d779ed49b4fb4852ae0bee82a354497d26a094364b2515624e483007069010429c20ce32748ef23404f7b2f92a139b8cb20c9503214694cf88239acf1352b98ec52a111e87b5e0cdad105afdcac0195f21aba59c900789086f95383b0ec85aa382bf023bd476f24e573c8d8c82055856d72d0a42129b3c799d3052b03a4bad98b56c1dfc2d872d11f3659799c8da6ac156bc3fd3e0e804f206e9cdc03d4810b97feed2e9070e2d4f038112abc0dcabe0ea0d9d9e89085138791afe44068782cbcf2282d0a33a2ebce6682aed85959626236fd72e310592b2230bbe1a5897b11b21c08eb85833ed598aed9e04dccc5ba8f7a891a8eaf565ae4d07fe503f7c813b4e27b0e9e5bdfc235dd81d80d72628ef50c0446513016835029b1dcf78f98bfbf23f50e438d40eb90161944cef1b3a2f8369329f95047850987a9c245cc3d38b4f4d4481b60902c56afc9770ff580c0783d972d346e59c7f95b9ea3bbf7ade64850b98ae572fce41222999f9430dcfdf4f4f2bc36046ee8bc0ab4fbec288fcaa5018d54d586df759e18e2ecdab9ce6782e33d395f2238872d0efe87216a76400ef59cf20aedb2d690655fbcd94f66dcef75099f0a7e9d330e3d41ebdf9f0d538b1fb50fb736ee35ca261c0d89f430b3f7548a42980c4231bd7bc2ff517f189ab3d07408e0afe1edcce90a74a79a019bbf7d0d99659731bb8a70878ffc55d86d90bb3436aad93b13c17850a42e8da99bbd33928997067bfae214673d54d98ca17ee03b652f37b00ccdef7c706c111f6ca0b5b4ab311b058335f2d90dde68c2e23d24f2036f4aaf54794a267e2c5ae4498ed33a9590f427eb299a48ea2155f2d7c69b91ceacf4a924a911cd29e0007d0c3e0eccfd7c439b1ed909b234817ec34f7d561ae375951b59581a611ff0cf68ec91a604a3ac1325858d9bde4504307214dd3e787ef5b2bc44244c733ca4bf547062de09f1dec868bfad9939f086a9ce405861cc6ef1508d3513a86d9882dab997883543ac7dabd215c20f8668c8b444c1cdde856d1e3795b11603be7196adddeea388b2d5c1e462424eb4697ff3141787c49faa797223f6c143d63dd7a1620b0b6b908966a55e4f06a82e37cd4d78c5d1ef29b43c42f4902c040749b95d602647397db1098b6c8514d3f30e7c45eddd4c99f0f0537629cb4e4b121204c5190d6124ed347ac0e3703d64be57578009607e26eb6a8680685f90acd6dd5806399da46e69dd2273be3e39be21119bac329ed22fc9b34e58ebc95ec9672933ab39beb80df85740f8ae712c81183a318463e5c4eead8ad1db87f10863e98a211843377640cca0d8a19ed72886504c9d58c2b1c5b171583ec198ba31046213c536e2fc4631846208c56e7d0f223d5df46de91ad3a3a087c6dfddb70d23d0ffbeda5dee1d5643263eb517f4e06f9b5e0cfc050cc49a4266e9bc509be2c46674d96578b7965700bdb482c723cf3d286f7e91a065dec6d1cb5285618ba55f07ec201ade32da6aee99e47c734bd5dabba7b354c4e8a2ed1495837bb9046f4c146208a397f67d93438cdeda4859a2b2b968a19a05a922c5fd5a540a2b66bd696f1c29ac2a1028681ff3951fdd4ba1acec145c55bd5f98265cf0c8ff1f8c309999d6f8e916df1213f653b1da8d3a9665b5f1a2219305e500c58c9e1621aef4722fe190d66c43dfb9cf405a67a9f046880c0ab45620249faaa61a3896d262a5285304c812e62ce7cd9357742dd96ca0514c62516012f7f9c592e58c28c4f62b6ce56f3688b8e4ca273cec2a330416f0efd8432d3eb5325abd3cc297ba29e14ba411385a92450b07af86fc88db655fa4e8595611b94fd4e070e79a9046e910d2e9a64710f436fe47ff6b7000a3808031950060a20036bd80343996298846be4eff84dd15c5e25eb200803803acb8dbe9aba603d1be54fd2d17f7d6bd8110383c0121692aac5059ff1fed51393cd3418ac28ae6bb7600ab71ad53a0be8c6e84243af4165a3afcf12d5131e1b2990a098ea0754320b0232104989239abd601a6ffc3bac6dd4824c5cca229e631d1ae6761dd25de5717a4e8ea9444b7ba21505607a25b754e469a10921a091212d9ff6210e9c7d7a7deb231e057bd66d91214f5dda97ad74dc01e9bd47b48d5459277f2026defe05c2d3da15daf1a74f76e25bd1be0f1c0a35be67763ed9282cb5771d1a6193b851478559346487f8362a180688b5d17b24ec3d7b856aecd6a430f7786305169f130d4af04569b3ebbce4938b67488f6e4d24a639129b43c321d05bf1d9c8a98276045f138079709dcc23614171ee03203b746ca73454ae88a545deb6a1457ba1c6d2561d2b8abb72b35e46f5bc5bc6b4d224bcc4480d8c1bcc3d3cdaf65ac7ae7c552719098a697bba3e9bd2668990b754c4f0e6ea3c00752de768a6b8db8e31b72b2acd3c84dc0c9559d99457b885e251c071d27b4e9d00a9d3567878e34041a9b59127789282207e655650123d58e4d899580b029ed6886da5a1d86ae76a3b5bd951e482a34ed043e3259e9ca34572a105da1d49a54d6374076d4cede9b7dcdfdca1090af706453596112be98e73489045689a74b4e5d3822fa34eb9c845f409f7a4c816dc6909d04bc3b0c95258523e1053c15777530a48abf1edc68f157c94290d8c19fa8ba0818fddd917f0045ea94063ddac47302250ccbc4164caf623b760833d7c1f65d45141fd50320542119c4cb0f47c8f3f75092f48adc3d4eacd6f8f5ae794db810b11c060b717c4c2bc485a2aa3ee659912412a48bcf5a55aceaa1d7177ac3d8e4dce2ce418e17c964e72025c42026e48be10e47b8c2c970b92c8b1a89c22634d2504c6c19066f2e7adff0f258d809600c86fe7b66650fc086bf91f9299edf432e8e9651bc4bd57ee7c1d8ed65e5941e3d3a4c56661e0112411963dae7cfcba28a6cbdb4dad488db4d566f62e82a0992293794d954104a821e9b98befca0e420083e9943aae07794e6444f040d8df6146e42f5877408e01bd2c06c44528d29f7803b76f33d5e143826224810c3a59019619d8e4a987f106af99dbe6314c61dd2c62877e3d1e9de4adeaaa4b7f921ef18711789138484e47b2d830290eb02362d78643663028e42fdcf544ef266c9ea645e7c6a39407f4c9b1215d9a30c188fbabfb2b6046b6a13f26861f1b69f221cb8a790a7ee2be6cbdba84cf73d08d1c8b58be39d7957f145ad87db8b20a5100bbe938239366bd3c333baabf55153fe1b26e30e2bd17b0544d65e266c7454b2c2a719656f9f0302af152210692f676343e71fc9695e2b1e9b6ca0bc00abf970c2dffd2923c005a30fbf1339b27383d8080b3942b8ecf4bb57fcaa468306e1ccf28d3442033b7682bd7a3cdc7a9845b27b18b458ea47e86ba5bf1786395dee18b75c832836349815ff249fc956e94766de967ed477046de403d91b92f8912337c98cbe41012deba5fd2c67630dfc8423268a4adc860d5c273d9d2f3ce6ae78080dc4394faa3a3fd49b1b574fcf95dc589063cd460a7e57b8945faf83871d6575c017fc5c876f42b75e85568ae271ff4a1d6ef2ba43fab018c4156b75d50c5351d9bf3897dca7329b84f7aa53d1f2134ddfd70c0694f9a6674ea5279d06e15522ef12b5fa6e48b526097f10c7444c10f054bbe17c6a110a1b466ce49415b6957b34e6c705cedccc4ec5e0904fc46062f67be88d979b6dda08615d16395879f6190436248dbfc5fed736a628fcfdc5b2f166b3638bafdf5019e64051b423da48c0a113717692fb3857950976cc86502d287f650f8bb0fba60df83a5d65130753a7f8e4004ac5afdef2a98136afdbeac96916faec8aa3b0769111f6c83a4ce9e831d821caf1e5980b3f1e34e46015f70012201cc42cd6ce89e8374cd74283ef07adc6ebcdcb458757a838a0a7ac43288e0a6dd23cdc145a3caf7ba4cd3ae833fe6461a2a465efa66d7c081b70f6f48fd1565e1bb7903d07409f7c78dbab59f96a09bbdc53cd6f6df4437c3954219f0dbd409d5e64ff3b128c03c3b68a4b8fa9452d544435bac231b6f51978c161e66c6b4cd9ec901cd4f31c95fd686466babb304f694551dc58d3a17f0e9908ab65deb507d9501d127d9c43e81a1b9cbed079bcd06575e3f720d0eb7d32a1b41591e3673e19e395e29f7de1a2e871d1108a797d2428cb40f137e2622ea16cdd5e283e48cb2e52d174d32f65fbea5fabc1b52f43945dee29310789e59d36ba4194caca65977a72e7d8517e4e2aa71d5119c78d38cce6efe11bd29399aad4bf912c5b0a6ba09fb4d4557e44c029be002898c5ca5255694b5af9f96598e5120a0b73797454bf3134c6da5fbce1506945bb435de8bec0a93db53020e0dc6a057f949e1668e02520289d4b3ed5262e6f25bd2ccc6c3d3355e08f96267ff22d11fb492626831b0dc805571cf826c778297693640ab5530cb1f06788af4e8bf95be705b98ab8fc43ff151549f8dba075fd808ca2c9105afce4e08dca11086451af22134bd748284357f184de2c58e70d50ffaa230d075531c254c76587f59cfd35f780c81452de6dde4954e3879a854b6cfcca296aad712654a61270e3b588d54c4e224c02036570c942e5c083d9cbda0d8326f67d3567259bfa1b3c71440dbe05625bd49bbb036b2d5414937b445f7c29e3a3b6b1f8141b015d6a736428b77ad898ae2cdc873113861b518057cd40560f7022fd76d24f3e610d881ab3be4b160f75fd8326dfedea11702a0cc9677dda844c9b63f5f67bf7814166da1c9db9bd4288bc65e2fe18ab3e8421d82118f0ccf9a3cc82690290c8a3179a94c84d18952a5697270440646d31fbe216c5308037b59b8148a9915bf965684973170429b0310f2f011ece2772a6ea7f98022d52323e59ad1f72e28453fc04521ebd13bd52a50e083ff39d685e59535126d375ef089f436de3619f3c4f7800da49f9588655ac47a4da87058745f4fe80ab14567cda1c22b3996f67980956a0ddb27e155ebc941ea0ac98d822c5e7662677d301d3978ce2b40855728ab23cde8fc5d59fc79aa3911dfd455db236748c1d16b1243a14bf162b303ac619f27819215843ccd8647976c12ff57dfee922c28e828e9975db833ac9084255510cc45c088503222e4df55878923323a5014a1c10ca6bc14a73b4b56137536aebac35ac75aa19ba2e5e37ab1f1fc3b06e0f0de988a3cbd0117e78557e83660aec544bff5201c505061225d8caa459d1b8d6a4b5a4dc9a7c0d23ea669ba5656f1cea31919ae8139fb0e584d296db804b030791813125712e94a17358810164e0d96a4cca6d369db8a5e553c3eeb1087b0c51c22050448ed208e67b591a14456e51c6507636d89a2560eafc5cf138cab807c93c0f3132fb0a12d25c1acd42027c2c3875344a3c0ce38a6d02ab1caeba29118916924b988eaecef87eb210a61ed3f3123622244b00359ae60c6f521a91ea1dfd03708e16b39e555a09cbb471e4651deff60f37e9e96dd2a0ab67df36541d82ae1ab39c8b30c6e9bfa5e89f8596a1c227215fc642c89f409a0acec05e7988361c170e89b1e70529e42470a13d8d78b42a8cb32db83e07ba8439e9062319bb13b6a78ddd427a485c5b3196062104f563f3ca818828fb1499165e1383bbf7c3b367319ee4befc90853f7e806433a3516e3adabe48bc5a6999a41dc1869a3c480d7b4d845a8cd3a9374e2200631b73231f10a3e65a15d5aa33c6d42fbaa2ecafc1c700a32567a8523feb2f4ee02f23620a0969b1e2331e62b43e59e401a91affc199150cc3470c75eec565ae0800f72a3baee4c3f692b14c5796f0422c3522d2c517bf92fc4c0484e4ad22dabf6b946d450210fd3d2c145174fd087e577ed435ce7382c5fbabcdf2eab8e29ac7ac2b435d347f41fb518ecce82ed109cb7ec6453c1fb90fcfe00e541a19dd3d36b1612e5161c4db01157407422a6f03756082bc8c38d87c1c1864076a42d6ef028515ac4212cadc484e14d9abe753e945f18ae9db64b4ebc5950fbf00b6ffe63b3efbf854ed8567be0c00b6c2483c60df8ac138ea9cc98b04c4ccdab66b50a6821227f4410677e58c0fa960cc7fe88c2c8d3ad72396902736504226cc0714ee54621eab632b6bf5716306b3cef924038c9e55f9bde12be63bb37fc0c67d9d884e34638f900199d80263fb8a044620df55f0c83ee7c0b5989900ce45b7931ecfbb8b0b78209120a1aff4c6ae8af0a8a1e5437c955da78e74a97053b4a2b309d8ab9eb367fb03e63250d6b5f5ec3c40f5658803ca0d0dc2392dec1c660941824c8a9b4d869d3891499560a2d6243080fd0190a41535199d0139cd1e5c196a709e4c5d794d45127699ac2dc5951c3af313654152b5edc798d415ac885918a66ef69799e2abfc86c6c446e64685ec8114d1aca5b0d99631fcd78d55977560ca480cfd0076a4ebc20228a1829e292aadb2b010c7a810dcb331fd0424547a9734396a7abf34c9b740f04b44a35f1d65235b3a6cdcb801376bcae724b306dd2ed47b6cc3eced671c5f40a11bb8d19c24e4ad592ab33740713ab69ce3da4938995b81443940db43104f109717aa7c816a93b24146232a512008c2238781587d2480e96f840f5df8d24d2e8e2aba2b34674c932566764a8ef69132d93e0f0e1c9328a984503380cf385e3f9b1d52f0afe8ef4b7acd50a54be9cbec95dca352ba01d072409a5322e1e121f703732e250ec1c928cd2aee94e0fc3d435b6780431e287e18010c9ae463ff2527da24384f8b0cd50a1ef91f5c507f15a3255cd739078067e56425fce6b3bf03ebc15467aefbd52e71e09ff90fe6785cc5d59f240e85a044ab408d1e818f3518ba6e2e0ff2c84a0e16731459eb7d155e7be02590efba8bc2644012a4088fcd03966b57fe57eb968f8e7a208a788d33e776de9b5226f3e2a1a3ce5d0dbc7f324b63209a3fdf7a9cb70c33ecacd1bf036d4b42dc71e84b39ec4bdb7c526e3fecd4e42148bfee8947328d181bb213f4bbae1495d3e465ba4eead97c114ad6b5648baad9cf8be9213bb701045db4b24548e9a27418cddf34cd5711ff873218bd2c1074a04c2b0a4b2fd03a17d0ebdbbf73901fc035d86507b78ece9b72346351b27427d3df29531292627d724cfdbb3208521f35725b07319633f6973f09645bbae8b68e4a6a1e0b4fbe271e75bde76ad058d27d488e4e19936c18e7f8e506246426cf6ef08213736ccb1d201dfa5b2f4bceda7b7e1508a8f90052ebff399ad9b923dee12306da6aca77945e372713470e8c40c4cf873020a54e6f39fa7a9000e0737b4c2a8a873c0423c37b890d2fb5cd8914115f0d703016e409e6f5f544cd6bd0e8c6ff9bcae1fa3fb5ea98e26512547bf574e1e6eb469afb6e791a1ff44e5754df31da557c180363796b6f81f33acb2363c770fa33a35519406b57e2c33024b98947d046b6030f3be12e72c4232078c5c55effea0df508a5a6a04fe58e0093dfff46ca1bfb1cfa8cd8e3ccee3b226c42d5b0e3e27c7fc4a465b354c061854f31e3defad7eee894426ec927b3ce565fa15d90240b937c461c6b8895ca648c493f6d8ed55b7c777fc120981647a2177bcd04dd0ff1ce427e545f497bf20006c08145fc6c96ef5ab6b6bc56d9d11c10cb9aa313212af82d79edc2792c2755461987a2e69c6fd3c1d433162d3adaeee6f3d12e374667505a55780370e558cd625d3405e0beecf100c8a9f57d2941338058f2fcf755d2efe41eeec68b1b3b624ebd9b3cd5fa523857ee46fa5373df87cc6d9d292ae8b295a9d8fe9242ef831b0d022fc350cf05b46ab8dde7d3d8aca5803839f22da26bee0d0925c14f83c44743933aca6d2a73b852ed672bca1e5a894154f8de42ccf771645f545360a5781ff4c7c7288a6ea4b13799639af8afdda0d768eeaa3183bc18bc3041900faa097376ef4205d20c71c4747d40ed3793fc29d290eb06d73dd8683fe21dfb1d902f7a89724649d23b78861bb8bdc427730e2542991cf813078b051a185768b8c879a95090584fad1c9101479618b2e8da024fc36401704b4a1870dc2c323018d225b216b80bfdec73b66c981d8bbe9b7ac77c8440104274a0428decd2a206a71e19efb96854d2688d3de6bd36a3fca41ee4cf69468fe4c6a544361ae0f63e449fec8e0fd567b919daebe85430e9be2dae4be787eda986417ef60f1d66243302df2c6dc0c118d3cf7667abee61852843ab2b85a5bd9007433226f4b856c63764a854882ca74e740ab8ffa364d62be831845bf194c61e149ec203b9ca1e0f796956206a92349fcba2a948246f80142e1dcf32c9913da750e6e3754fa0d54d2b1f9510154ef363276fa050725101f9490b1d6834aa316d165e818bc0a3e35afc807ab53784c59ed61508390a3c2146494c2ba4f981533011fe70d7e39965e141e1a1e994733f199ff5561aa004764e6691d94468fc6596d2da1a15f197e4398a881efe6ea9fa23764abaca0bd008429f2522e530f1a31f625d35a4def44e62bae569235ae9807dd0efced66d2ce72ce0c0e292cee6d7e4941a3aac6d64a59a57ff8f0d9775a93d68eb759341927201053dd445229016c0f1c5449879079b31598b73045f82428a14707aa4c4181b584b07df5e758f06852f9079b056cf5698b40305b90401e2fd658fffd3ce898bce35ea4bd4b9e0673fd7b914d1c76a4058c4a14132631249824f1c0bbb98db257a535e4c831a9ce5915e376b5135cb19f5f141114337223f955572fafed871ca4ebb0cc2430cb7dc0f735b516221fd307d16738637cac806a2c5c30c60932bb63db54b3fdc7a37edb9abf0d9d892c0d36f16e485e12567c83aa0725b8d272098935bf6dff3bbd8eecf6130713ac4300cf351fe2ff0d27c61c6b17ae362b6cc83d509b356b764ceba10049947aa05ccee8a6730b69dbb968e91af44350ead56b63f3d60daaa92c1772212f0adbf7d456a9759ea90af49e313e572ba34f9d24403f801a469510d9f7770bfefc75c100e4cec77c957ee23194bb8c1fb63253dcec90f89b1f01dfcb04bb050ed1bd79391aa02de8dbf5a9e82fefde4fcf827a9648f89cc3eaae7a02c9720d45a6a4144ca0e122adcc4a411e8c213f05b4e614e56cf8b10f0e79cfce4e00df884abf3851842fc62235a45a6388561405900bd91ce523dc244c49298886c1a7d34ba5060080f3b725c344ceb5fc0a4bdf61c5c03b4e4f309fbd6d8a6962b24e8174640c8e288e5d85294bd743c6175e6b966aa7162da743c5c19a0369d0dcbb4d44f9d610fa789d3a0cc80d785d1ac98c5c4d244b78ef04313a3015d8c4f9ac7843951d63fae39cf89801142e7fac128a43ab0500aab071cdc47adc253e92073d3f11112d4a11efd5289d6be8ed487c9dfb859242d7ff4d08555ef817d2f21fd667058eb2574510f794a3f753ce581f420d6e36306f2692148a48d1facf5b320fcac8aa00a42faa8eb3c3fa657faf9a83b0e94be7294c815a3fcad9aa5af33e16ec43cae6f7556aaba5d4776b13217d7eb24aba6d4d7a5816cd594f6ba6dd57891488642dd727f05b21be458436c1b62095f84fa1e7637e189c86bb83a444c521cbc4d91142ffb9d2f2384aa93a051d434ae36fe2a469e670cee8cad1420fac438ce542a3a9e31fb88e8ae2ff497660f205221408068dcf33df52d103160fe9e7093fede8eb686f7ab4f649543a85d43e681de453316deef984047df352b08ab3e5221f2c591c022874883e518f67b39018ee0f4ffe0e308b3eb7c6c85e55a2f6676c43ec995057b8e4feabf3e5c75cf10199394b9c671c1a474a70c63105b501fd0a31b12223e332d7984cd82588039176380bef583abcb5a3c3cb3ff43fc50adabbc552892b44c6226ec3784583cc6a6b2e3e151c8f382cfebfbb81cdfac6d2dada15c4bad4bac3069cc336ddfa51be2436d7935c2eb05526fda8759303aecbeeef0ccbab79f47a20b9fa7d04350855be72e46482f2dd98bda1077dc32464cc58bc7c45e4c1b38d67dfa40d46aa8f8d1de046e16f0016d2e244c23295965572ff88139f660d1b56ef640d47445441991dfbcf79262291e7a42f79b08a2f05461fd03ec048963667a0ff598435330c9e22151e5734413a26e8076c3b124f633fc74b6db0df9f0293a688e32fb2ecd23b09897b0336ee5f9c349a81154d11ce57e3c1fe4f6e2e47559e967a9b36a843af9b3aef54d6a56c0503500f8fabfd6481a874e19ce9ddb6f4bf193b04ba059af210ad023e2f882a4772bbbc740f8135d75664f899f04f17dbe7e1b53300aa1ba2bdcb68dd3957a9c562288c0ed8426c9ee557ea15d2f9224ffdb6acd44ad25b3a269fc528fd0476ba5730d07bf002268b5aa1c8de6cc4de1b1c379274860a9966ea11e6fba105adc31f01eb2d101db0af66bcac1c3e7960bdcfa32905e40a2444caf44d8f0067d861afe5b107dccc54a486c771e45de74804e18857ac47edcad8b0466fadb2344a38d5e709d4a5cc8397da8ddefcb9c364f3a8cdc160067a5381217bb3bc4dc293cd534c3f92dbbf83fc2794363a86692cc133eba6d8d8d27c4199bde4915c743df102cdd7164808e06c723b038b5e59b8c34284cccdb47c52c64d0d0d003cfa71991d09d8c70d75cedaa664bb2ac994d665a948da465e819d9213cfd322fc464e418ff7bd10f3daf072855e79437e11a165cc60937c56b012f9ef6e384d3a50625873d36bdda5fef0905309e07205d281aa6f487dc2529a93f12648ea0997d9d781ab7e18c76b331f3a8d2891627f39383869049c94f62bea207912c4af53575683e6fc363312725b766565f8ef0780d378768364226e1428c7f4d1694e0e89617bd455161fc871669391f792e22e40c369b098087e83d75da2e8d2b3ea43bd18b70b56101d58c31de84bb644d6874e0e6049cd0cd476566c6799fc2d5e7bff4f426945b4df284ecdaa0cc52d4213b0879adc1c9c209871b5ef604bd8c080cf557b210bab92df0fbad40b9a2e233f106e4037a7c72e737b8c2e14a30d87d835a38e56e186ec490066cb1b916d66180eae0398ed4be7a69aa0f518daf36df8ebe01f382f453456c3eba6d3907009a3b07e77dcf149fe71c806a1e646908ff14caffa9010508313444c027c2c507f57ad2ca4e45149e7433960e70957f7a64f72aac39a4cc483740b5ccf911fa5384ca4f6176a90354f9ce46e257311a6faa194505d4c90761f8ed1bd06acb7f497a0219ab6bb86c806bb99347bc4951c53969765504a2739c8df09fc2355e72b3690fb09a796684f61516b78419e93e40f974567e881194a85a7d979014f64cc459ed8126bbf39357786c136505e38b92f167fb4aaa34d0b615e2bfe83cf89a7d66f4a297adb70a39fa57b4f1269b597480f58c7323b4bcd37976df2846918b9df6592554b2e6b814de41d1374e26a40f80665534f2819cc506940ca9a310e43ab97f1f1db0426c58717235cf9238b1118d8213fc2e6a5f2671ee4bc98e76949e191676240bc5b2b63d2d300eb0a92073b9a2d97ac65b6819f17c09fb6b737c30eb0e6e3a469498fddddc1b6588caceed1d3994b9c3786b48bb91dd75c23ba7b59a5919b48599acc9818a980acf2fc1cd55990d6c7d801f1c13e36cf15359a12e92b3377052b1049cbbd8f18cfce5c94c56800ab806033fe769cac9942c20b22d08a93ab69e1345d92a2c80b2b8e111c5fb30e1feec6e70698a1d8ba6ab732d88b93198925d7af63bbc2999899a863a3938d8516817b37232df30dde743d60a45be8a6a12a060f7463ad30f3578d517e5271673fa7816350389fd439693b787ba0688486f127af540f2cec7564ce5aea7bb8ce8aff1df44c85d9a995485f81a04b9ef9980488e20e871312e034aa6d51de3620b1f31bd3c171c8304d06a67531e88a587aa8dfe8181035f6553f82e5189390955e5f63b99276abf69eaf2f29d5cd25465adf748dd573c65dc9fccbe215e3245bc7d987e5149fdb2296f271984f12491f48d7eb9611360afd73ccdf5df8a9e11a4387d99583d1ea2c610cc880ab6970d395467544cdd64fc6c85fd0f7b6ab28b65aa9412c01a7f23a4194ef8cea2952bc2235ad68f43b2fbaeaf31638e8b774da42ba16fe02d4a3337c9c4fdf4e98676cffcc963d092ebe8792469040f1df5904ea51e76e5d1a12dd0dbe0616414aa7c16d1e35e390c4c28100d1f24fb927cc6a627c157f2d1ac2a257afaea7fb8c3c55527348850ca631ad47d3a3fcf70a1412902add107e57b5f961cf871ed89206ec6843b3eedafbf1e50226077c8fe468f991ed6f23a03311cb52b54cd03888289f48746375671d5a649e12940bbced132ae744f858e1527b7b6356a4714f3a298e642891c2cdbee87ad13c2d46d1df5ff4943fce65fe08cc8a75bbbe5df2fd2970cdf80309a97024d04581f2622dd60310966ee31ccf59f37c8cc31ae40ce0e19869c77a3b58226c876332c0fe2109d4ee47308eeb6e36bc37493a4bf5e46144d6457b1285037c3bd1c02f944820bffa364fc6c1a03e86002a7c1ea7abcc7dc0de9003927fa629984705d609079150aefc7e5fd6ed3699f387f75a80411825a6a89c449d73292eb5de215bc21e3178d624db699c9223bb085831ccaac639401c19dfbe114d720fe2126eec7c990a113ade4c5523eb7f21e55cc8943a7716447e39449e395bb101effe5a2db3e47797f59f943d91a0634d20b4b6f1148a5a2409252113113c51021007c8e2c1bae3a8623681a6f964a5e6b8ee5d875dcbf6f5444ed0cc635eacd2a04aebcd369aa06a8fca37e1ca3ac36c220964139002c952d3e53130510d07bbdcaa5287d630340f5086d5c3c6dd876a5013a6b65f2583a076937514067004c055dcc86e2b98021d79efeb0ddcf2a0d1c6c28469c3d5fdb12a86ce5de09c8d6b279c8478c1612762258cac15eb7b13530d83f8cb21f09fd461335cead4eb477ccdd3162389b1181c91cf343df8f1f6c6274c1004ef8317407bfe56fd2958e62b332b1402391a6656cf35b8a62238e864c065f25a8ba55a985ad300def54c6a7205ac627aba697d1ba059048aef38865a6de006aee759aee1ee97afd3ad3fe855a8da4a2341339920e8cdc3568b3d07d88124fced21881b98deeeb0503f38fb87c7dc7613614b60a14641571c798d4b2cee3eac260d0e8848c7999b56679e53a1f32df7fcc814448979ca4da5235f65ab4387cbeeac0ff6e42d2621fe1a3618b418d54da9ee4470bdcbc7f50cf63aaf431430c125d1da0eec25c4a1b341a10054c09f6b4414984b499a5a3032818eddc83a4938e245a86b9f6319c9dccdad22f55a047fb066cdf9d330b71e88995cd94970705208ebf7f02584c818a9e3ab66e5fa61ea07a087b0561a40511598273f8db6a9ea3249ff26972b8c339d511b239ddda549f69ffe6b6405d737ba7e49f95f7c817c235ff1ebcd871b5ef84d602eac2ad652d9053c8bcae4efe046c52d1c9e13de1c68454d8d4f7d2b6bfe5972f56fe4d6cb65eae2212c6d99886071091e42944bff35c10b291ed47bf3799edca33a2ab90268550d078836364f8b80c003e177479644aed61e5d674355f40faa8fea05dd8185a67523676e53eeb9eee27b7f4c32df466db25bea3ef051b7de22215cce1d50bfec28a97c8b8a96dc44f8ebf1f3e01ae09a9f084ad489f9ad8c0d8d3ca364a08ff38141f444f65b6f42890086a49e154381895dc38a2f19ccae944e47dd85dc1cf3befd10eb86569c3e189c88af4935052323dc36b3f1c7f08edcc6e723adbf5bc74d33c612ab747fff81456498d4e817c17b384bbb811326c4d615bfac949f693e341afd87c95db6d4dc65081b35930ae1d7e88060233e547a99735a639b4d13ddd50d3a42b1cb3e723e3c0ca2caec8eeeceecf648b008e721cc72011dd6e312a708efd891e87dec71e4540db24ce5cc8d7815a749d3b15e37f7b43fa7968544b4202c81044009b13213452165f2cd83104d5bffab11a3d58ef1b7853c142a0b793ee7cb788c5a1458256e20372ea497488f56d68391bbb6ac70cb42ce2517b3f32d52027d49a28f09056fec6fa6659d342f1181b3bd94c036ad8af9c046b0fec41511dcd5f4287fc7b863688272596cd47d3524e1ce49353296ce6b4544ddc5b25391d28aca6f1d3f566f71fd226acfbe3990544df1be6ab500028f301843899dfef38d658746eb8006d895a487e4b65f969fcaf4987b3b747740b3487692d53243ecc401b94ef8b060e707cc9b15da17b3a42c2e471f4585a6e605c913e2abedffa1cc3639de0137284e6ebabc9764a1a7bbd8c2e48e9abb71877f195584fbc04d00c3d6de691e5e02262de61290eaee5a290a8ea3c00cd9ebeab478e5da5d82c4861ce1e144e069c055f961088c9a10a31ad775de30f6ef57ff8db6fb011d97faf16593ac42bfec6d67ef03b32c69a2156266a1e20da19fc9d1418797db7b39a509cf04e7d8c56686713aa5057343cb4dfeb32acd688a768433dfe00a8b9e3897cd686ba49dfddb862ca84b73fd6c26eee23e430c73694dda8308912594809560af3a082ffcbaf6b52824f4c595a95cf87d12b3d9a3614fb6071c884e196262cba657bad9eaec0962126cdb43bf277a590d2e2489900b63cf3974edfdbdc1cdb9635897b36228dabd495d27b93e2f9dac3d34d3e10b3ef0f80d305010402da2ceca8ecfd8117f6cd94dcc4756d5246895822c12c4b04e51b3c6762751288d663ccf31e842955e1e05f0da7213d6f308ae029e286412143d309100a5e06a2ea083b0384cc835ac509b04be5b1aa8f7836df236a7814b3944763d27c6a251049c82e5ffd5c93d30576fa9003e141187fb8a352ac8fb69d000f66762faad0bc2dc6db16805b9d359166b40a4a4f4baa4593165806edfe96f3aba7e0e20043e000349d6961f01499dfe6e39d0c06857d82e2e9609c6ed9a407a82a1d1c27c63edb32f78ddf9c4d4cf2c6e809afee12ca30bc3745876220077e4269e59f34a9cca72a13384ad5d08ff90a04743ead75e1d061d16ef1dd824d3f8f7edebeae3c251b2ca39ca03573ca710b2a63528ed40415dda98f5cdfb0af292e177c3ef99534958f0f777f6da2173a8572cdefd6e03340c5c8e4900f64d401ecbd0c01d010753b6c6dd02184a235bb0ba21fffc63537912ceaae5f3c047474132f20bcc8fc3d9c2f19e232ae54bc5f21928408272671b624395fc57456b2b93e47b724f2af24797819272c984e0274d06596221d6acd53d5e9bfd5c4a05b40dda2a5de6fe33b018dcc9e0aad7881aae5c494f524cdaa6d68e4512d628d4960222c0fdd487837a15936266fd679650358330dffe9b7b55cd0c5465a3f13983909d4a578ced5f34f8b90fd6703665c29b7517ee590c2c24f5a05b9447ec6f836100b3f67ea78bcf07336f35430042dbb6c7223997ab9860389e040700c35687af662b0f09373ede7537c26e89a072c967914ed859f7021993987c7aaa52de792a18e2812d75c40943b7a7a6ccad5f8948b465350020c3fec9ce5049fd560200aa500580f0c0e0c2f84d95ad3239a745009751fc7ec9c0cc8f0026c438d058e40ee2c933849289e1f3663d4ea930fb17d7e056ae02315f729bf4de855eb63dc79c84e37c6dd94764456141149c44cb3547c51c960487746a6f30c41b5b31200ef631915bbb68e8b0648dfb9eb0336db419e038fdc6bc25b805dee26f30bff1fa21f726950995742ab50e478a0aaa1ef7e76da3d1cff5be8c8038437221a32d4b587a858d48833a9b40a366083ea43370916f8cffa6247c1cd4115a952942487a2245b7e4c45a05f2cd07f3e9a027c5b00a6b1baf2dc223d139b877f997c016ccf014a21b5385a4018daa40375a44dd18862cada6c5d8d12c5adde8e64ae353f3184da8fdee79455b008ebbf8951aa046cff2efbc4f5669d2873405d83aafa3f432d90f1a76759dadb03775d8116f671351ecc945842e4de644bb2a59429a52465610374036c03586a94708e0738f519515d8e153c754e593d50c5cc1757d765f57bef59d18a6f4610b3207961aa2b94df6565592f5706c4c3821056cc7c71755d9feafa51b7203195dfe2cf6aff79cee42fb899be71c1bdd4e89ccd0dcf7893ae6c2351ef1b494956b67d9f3e39567b25cbf292e52577c3ea13cfac8da6fd934894fab55919e7709030978c82e6c4b65ad8f67c58b5afdad6dbba71606b8d1e5cb71feaa8be3ab957638c2bc4aa2cd6e8c1959f2b67db0fd5faf96c3d4ffa96186254eb2f9d16d4f91c46f556956afd14c3fa29a54aa5f5fa19aa2caceb0a5d807e7f8fb86af593826ab09ead677eebe7ccdec22c10a8c76cb14055f5a2ad662309745b9b6d12fa05723d7d110eebf7a78509b9ac0ffd856daf5a2fa26fd1b77e6e65594f5fc78aaeefe1d52bfbed0272bdf512e4a37aeb23a8c79591b220aafc8db44d2c6ca924e8ab9b97aeb77e93381cf35d090dfcf3e7e82d8c7a520ffe99b9acd6fc9585915c567b4de57802f4fb8db33240e65bbfdf372b13413edee98b5abdf50f4443f5568ff9d6759a2fa3ce9fcfc2e9d495bb31bf0b7a7dbf0c5bf92dac2b837c5cf5fa49b1ca8a29d579515d8e942fea9c51adf005dd5e25552b7841fb374ae45520bd825ba3e5b5360ed41146d5b9303a5bdb0f75b4cfadd01608ab303a1d00eab63632a4956d6db6769b8f81921bac8b1054a67f0b52b96c0f4159876eff3b823943595ab604ad91a7ef7aef32a3086018d9699d66f939bdb02f6ccf8953b7a8449cdd8f01f3f38e4118a3fb3c82cd24fbc2fe94f2cd59720fd235ec6abcdd27f3d449513ba78378f43bcb098ad92c852c506ca95a403cf843a027837aee09a326d6ac26e2a246c405a420170e878b35b186611c7361826e16cf2c59582c62614259e874ee8162166b569398dbf130581b7beec6fb0fa642255a01ed7fcd338561f63f18634ee45f201e91a7fa11ea9057b7592255a225b4be6c96422fd82c9e2a9fccd22cb93021ba71389cd50fa348d5c3648d34aa87c51a3d4608a9267d2c22dac49ad5f6146b9c4fa792e50ef2d7a1101d8d5a66cc2331c624abed2cad166bdc8d7d1727d0cde229d57dab6765b6585397e70b0b8be58495a979b1a76807f63fd191220823d35da12c6b85ad7cf17a6557fc5cfe4923d2487625bbf4a269eff22e2fa45016ea5cf5a873bbbb6e9d732e94856ea49615cc79cd1013cf091d010e218c112e6cb2557a7cf7a4d2b0a424e59474f9f948ca69f01863c718b321314629e376bcf276df7bf145814659e5bf9763615807ac877df0b537e441e80f427fefed2f840cdd4127af766cac3ee85eb10b2050b9918359976f07b31a91fafca1d0d16394517a8e85e177fedcb520fd77883f1159dddd801aa8ef3973a7ed530caaa1abf7b0d51d7bd6eec67accb47edd7e6562ceb5f02ed68811bef7de7befbdf7203fcf5eb84712295ef2119004747f1e79bf5f3de7dcabee76381295cebd75a2de0137231d4ccfca5044d0115477aea4bae3dc549f1f8cfae99e736c39798d83b91d336ae3ace62feb1b86a14850b7e3fdd63c7d6a9ed34e4f8f18aec4137ee4a6c76bb034f1599241ede11b9c272bb3f5ce133df02ed170eff0cce9f9eb01e56c48d74deba1f19775a3e1ae6e786514a67f0e163ba89f7f3f173443ff8ec915c718419f18c3924803fafd1cfbf049508c918a9410f7fc10a30cb3528b5fe3061779cc8c48d71af1bbc6186ac427d004e8904fbc86ceaa084150f277fb3b249432ca08dd31e76064dd57f1123656eb8f1e238cd0dd8e1d9267a49022f5bd101f5eb69893fea7f45d64c5379837ce39aa85a23a24d27c59e71ca45e4aa88366b57521a0af94150901e5a7d917ea1d4639e71cf5123a6ca355c26ce3a15212888c3fe58bb01913d32d44ba8e9efa39c262306df49b5667183910d53ebc1da1506f101e501e3210d0d0fbf04a27bab91e19bf2afc7e915722919cb3aeb75e5b19d20c8dc68f9ec2462312455134b08d48571a3ffae94675f434fe57c084381a3123124565201a44ff791d4bc2bacec06af8f83cf5b901f42a38e683bf0e86c9a1a3e7df9791c978191b4d5d6dc402bab99e222bd3f2fbcec11f25414719bbd54814ad14c5b657c490beb08daac1cf82cd0b744a32c487fff9fd5d6d65dcafb63d74a5322032abba3a16325186317253b79784677450d2f6c89b0582970a6569f9621cccfe6e31fcde7b06e4fd5797d5e8f1957f5f34194804255734a1f2ff4b075a5abe8508222425d111a51aa95b70e291e828c7ca14566eea46df89705c6c1066d4fd5f2eeaae115b448144931985912af281208713135270454e890b19ec602dea468bc4d030b608c20554d484cf1468cb8e0eaa545137fa39556c306a62225141cf082a27558ee4505942dde80f818a954a1b7abf683672a62c9143658bcad5e550d1024a81c07c3b335a987d2a23e0490256b2f0000a9e580245158a26298242a1aeb15002ad9b89923084128851e3c5079c500131b3919bd11574abb0a852574ad340497777c78005168afa7477ffa83f36949445cf88e4e2c4cba2e44180c2031d19a6f4e45c6145ce94253428a8441b16eabed4f981a9ee8f807044dd20d405c218350733f1cc61bdeca2306207b500d5e5a0c0c6c3a0ef9fb5cd684c256de826eb7bc18443d04dd601c4f774ac8381b09f83810e62a0f6bf08fd04ef70f8777fa8a8a385a164ec7ee89937dc9dc1837c30c807915749ab6dcf20ab733776b11a1ea02f0b651dd6f981fbb7fb1c40a594324a29a38c92a2627bcf7c10420879a18c104287d06770f5dd8d35022451ba1a7fbf7b0833e95ce688a0a47f61d8d1c5bd8ee5215d21bbd8a80cb1de205575f7c23cbdccd17d70f5773266cd33f237dbe037bd6218665feaaeac266c8e9b3b3f10ef7e66eee72548b8d9cec82825f77b7763e98211792610bbea8a81c0e80ebd63101428c928a54b8f2ebc189f9d1633509fe4da831b6aa0dbd9dd5877f77537f69903f53dfb5acfddd8ead3f739d856377cc2443a1d2913a0001b68ac9c78b088213d077cd54a826e3475c642826e4ee707cf2860c6e170fb9824714c798b79ee765039edbddf341d0ee6b5db78a8ebeeafea266cd5a4f4f292999999999999a5a49444fad7b4181a1aae017d921b67fdc5dd07c46bc7965bd8b56a864b6c76188293d4b9ad480f59f11536304ce261527ec484bc1542dfc7dde585d11d7ac72168980bd8798043e8c2a323e734af9c745a105ad59709f161bd620288582346876ddddddddddddd08e2d1efdcaef57a39a3eb5c1e0692728a8214f48aaa8848ead383a440179094a46c60a03e1b9a746802e835284a32333333335332b67330b462201ef314327a8c3042a7a1d1018a824a1ee3bd689a0d1c7470e15111a373aaa2c93cdf1e9377d934e320c20eb80ddac65fc64819e3420e4172740dcd698a9598ea621c09ba359366c255db34e7e0407a71d46544f331201e4e9cf433a8065a33ad025f0469c0fa7bfbd885e0524affe1fde046ee10e4d5bc2644de112c2fc963f28a80bee5a89b0bd586454724979db99eaf189eb1b21d18869f6370f087c1690740c0670d50f761702de4886119061c9b0c1f774903c30cf53defc009a8ef4924f736ece0192d6243d7fd9171932a594503a043f7e811ba07f2715548c357f886a0f0bddd7d0e775fa2266ead98e2caa95ed39d7ab0507fd42d883bc18771b66da054d77db7df4f7165a70aa0ba29b6c0a9cfbd6d82be8c3a51f71c83392fd112d112d112271203487f37a9afbe1c233c51e17b676b0413ccb76e2d977d5278cc3c78df63ee292559265b63c3a33d894a49a24fd23e46a369826b767667955825b060c1c179a557723aa226e846e3654476a9a77a7ff8f98d79aa33c0fc8d85501d11aa7b9111741ff4c12400b250f9fe55853df7aa0a65026ccc03b9ca9dfa43a90a958db3780a13f243a9cacc49cc76a2e5dfee39d82a9c6832b33b5c488eb7a8fbce0293bba090a0e305142a0956a7f305924a729ca48a1e1ce176dd8e1d6ce6f66ed7ede4eb6e1e85e8a885db753b275d39a0ef9db999fbc551476877ced1d83e627e6176ce5176ed64841445511425638c31c628a3845142caa9a65846296594d4524f822ce62896138aa264570129a79aa298a296a21e45554f4a45514ae8a28b2e409510dd2daf5cb932850fa45cba6e574de976dd0e56eedabddbbbdddfb5bbbbbb7f77bb77741516eeedde3c655c4abafba73ff250ee036ff7fe34533026fb8c47102999953f3bf7ccbe0f64c9484177772573865cc82b2050506555227a8544554b8b68e4dcf3e1101226a51f12c021871891a8655ffe6d685a4bcbe891a49046ee8edb7d8082082e7ac30d3788c670ccb362ee930cb3762671dc8d7d51084442ccaa79682a0a15056445b1fa87047098a24305ca61e79a144a1d8923a378337d3a499cae02fd43817c70edeca2a29676c611c2b94f51422166513b0be11c45d44283534c4bcb686d68da6824e34591e1ccccac423b67208a73671207491415b6858ae6b7dc5535e79cfd404f8659399338a22188b8eb39522acd203bf0d8f0e324011ca6e890c3ce943812e74351d64b32af199a229c3ed5a04fed83ee9302280db5c4f9c4a0e3093b2916664a9c18501a86592731312251cbbefcdbd0b49696d11bb990fad9b9c491124708da4e8ad5e4902945c6b4113d618059a3477ddd97cea57341b9a05c502e2817940bca05e5826232994c2693c96432994c2693c96432994c2693c96432994c2693c96432994c5040ea8848596f87a2282583b29c0809dd6844482811928f08c94784e42342f21121f988907c2e2a44483e17159f8b0a4c52371f2974aa256620032a4eb0a0b4ba1c2a2830019520aa1468d1a305162d4a4dd0ee6e6f8e81ad3d83f10178dd59ef5cc27432cad7dccdbb458ca4c11426950614f4fdbf8c511988266c029268a814ee598412b2190100002316000018100886c30171402c0a1461973e14800e65863872523695c8237114865118844108c2000cc3308831c6188090428a30ce06000b1e6ad3c152c456cbfb06f53a0f340760027c6795e9f1b79008d4d2a33f86830072a59292ddfb176bb028874a7c0fbf78a44d2a882f1488f356fdd68b06c38ad8dc336aa30b8939218825b27bc4176d91e7e3723826574741b76bed27485dd349cff550fba504b8cd6daa27600bdf6663e892c0cc5dfc5262ca5674d88371bd2ab9d017f2bd28de5bf73f3ac5bd58eee2d0f5c4db718a2b7c06a3d673e64b7d738fa3b1601e85760918cf6815709d1f508b8dec2947ee5b8d3a6897b2d91ebec6d1f0802a093059011b35814aba52465a090c72dc6bb122c544353f5ac056e7115ca2ba142bf727deb807d89202b4d232c75241f32173f52a3710a6782f656661a79458164600a6bd11d4f71910a3ef950956b6f904d888c3480adcc9a6d2b79d368b7c75c5a7614747f08a06dc1fc01276c5235f60ea44d0cae1bb41351839ce5b82d854ea8047f1c4260275e6e61df1653c4dfc4cbd9bed34b47c1612b6a5a7526547ec25531522a4de00cc4fcde5de2132b926e9b41fc7659cc9042e689418ae32ac8323625846a4170e63b18d5baf1845d967c78eb84ddffb993f3e610dd1916c82e35abdf781815efcfe0cf5391fa21d5defa0bd97e09c461d7fd78ca3c748e0df267966486ffa22056d9d135cdc21fdc3e4837e06fce52f8bf2b5d80e168b91a989002838306b58f8c3e156fa10e0784eed31a348dd1d11b251646412805e6a81a52770edd78e20f76ebc7372f0c2ac69c5c39d6053cdb1531ff70481312bc8e68b863c492cc7b7a2c03b26c43a07c9197f63b48db33937335d6c93df8d7d3e4ed5d8ddb486bb5aa34563c2f6205d4398771a79f6a997abca081844b4a307e43c62e8579d0d69e3518a8560e79aba6d83e787690ef012275cfb49ba5e38ec833d91be282d177cbaf872467f643ef223bca4a54f6723a31b2125d4809c79377e4483c7803a77e597b487146bd4b952ba81d92699dad499bade164151ff9a934d9d2d6bff819122233ce6be135679972c843bf8bb5b2acc938b958dc217a30b1449f6f9faa7c870fcc00431eaf301197d74d24dcac8347cbcee24e8d907a85b255a07d5d181779cfed6db59959653005b0beae5edd5aed9d92762865a5cdc992182ab020e5c05048030b1ed2dd4f8a02ad0714506cdbdca8a690fdbe60c851e2b3f8714c9238645cf92317506dabe543cb799edba22795c8fc10202d5a66aab097582ad01e9a3b4c07eaa997d8d2b0672a9f07d7c1ea1af93fc11845354ffa7a031af121407d281745065b9a634729b3d02134b95cf21c1ce91d0e0409d26a273e27e9fd88794fb39adda4c0885c68118c7f6149ab2e577465f93e9b2e23f362ee626d4c581803c53dce55365bbb6a815f9721d4d025282b279793d44f708de9624c4d22000260e54266130f4aac81755e9491ca8dd9ae185b32f256eaaba91a860172b26b579ca8553e6385724640dd057314c6b83e5855a6b32a8a9d983a0079558a26c9c438fc7a4ed26e733533e0c875de9f1505a5600da7d0e76607b50dfc9b7ff42c5251d1d22f78cc40e5a36484ce52bbf41561b85c168cfe85542f8a02d3983587b96602aa69a78285616ae2424639974c1ecab661ed44e9a960717765211fd05491f5cf141258af0af8f8930c050fbf309a8e991e0a34507d611df6ec857f477a20fa228662d19113b72986aa34335baf2b3d53050ee5d6f721926e9d31f44ca480e077b18798fb3dcc5b717d099b2cf5784072684bcc352609da3063f70d96f3dbd01b56767ff05c94ef3fa7c6246b03864d310273b8471e619ad04b4880f8d192cc7dfa21cd9eeb217297207350965bf1cf2408d04f3f7e4635d2fce580356d7dcb00cb8f50f8754ee9fa03b1259af567d84d4e6e2a9617d5181de2d11419412383d692d51636a514fcbddbea4d4e9e9b93012300e1e340d7e7bce0f24777d3c6614c4b62c64c6484bea7093441f955ed171292b37274479757b7b9437ef2467bbc68c8d6151c6af3fc09e8764248ca434a7409e956d76e443a33c57a94c4383dade8e4d33235363a01cc44283275d49bcdd07966b57f8f3f5c6ca6110e73cc3abec14d4332a52a2ec709a29e32ae64173960eb5e31027646eb2f3f082ebc13e79deb222adfae116cf364bf34a57e2ab384d53c3470876b633023c578290d9673b91755e8bb872a4b9cba210d784d218f616c2697b31e7fc5f0783724dcc1f51342e0629f3050a6c1d7d64da4eb5cfb60dc053060e0c3b0a4774018b30e807e95b66bb6d0f1666308fd325eac5cbb4189373fde4a8651a3af1a058897d31da930456d593fc88b5b30e4aa3126de2aefb27d727f6cd22a38cba469c617267cec363319a808d8a7da58abde289e89d6b797b4b89d9b0d88b2e5aed849b00ec5b6470552352f43f781c24bd901d0498223b0bc237e4c8ee589f9d055ea6217776601ec2a6b6d8a93fa762a2e2ab8a9c9d98d64f650e17fb2adb592de646b35668fe6ab09e11a4d9cfd6bd930b753a8aafa562c6ba9c6de9d425a806a578c8f03dc57ec9219d10a045ce2d776efbaf312f73ea18b6a5942daa3e3a49fa3fef7c72ee487e4d1e3ac557b8f2af7811256f9210329772fef1992b6884e916610d5c19ce515d5dd913125fbfcbfbfc0a7971e69b1c9db137dc4cb8e2bf6e00b5ebc2d4366fd0536d24b6903209068b7766ce43f90cc89d1648b0e13a73b58add9f011f95789903866930794d8066ffe9826f334411f9e2b46e90e7b2754c24d4e0375101fd4c2a71c1a1b5cc023b289faa458f8c42e19713fdc5444cf9de4ce1b6ecf821d1219742fb26c9d0f022be16844428460edf9db2d6f818715f3a3e6530dcaba848f909614af1a7a62a4c4cbd255c815414389370cc1fedb077a3f55722bbb2a0b1d287155090ce6facc981d0c155a04d2b3a569dc4ef2a2008a76e060a640741029e7651790b1e116fa5952daa3f38491540df4581a4fd9229707f35eb27725a016df4eed95fff89b963f49dca840297c5d5f6bd51a058fad606990528d015010956259b487684af5597c0304f3ee2ec3f91addb7e70c8ab53a7974b2ae25b350f0c0863756e92a5879e608e8e2425eb413934b049a2f6895badcc12bac39547424dcbacee13121d0794bdcf7f05f912ae90295cd128af0d211e6b14751b726ff62d524f82cff72fb6ba76338b3972ea395becff6bd2aac5e7078e9ebfe90187d29425c81e4b7d0e1db575cc3a5d9dcf5f9011ce725caae7b5fd96d9e2554e07459b0fad7a939608e1868eceef256ac825a7082d382a5125f9ca00b321612698fb088d1485b37a2ac00e2540b5cc9789286948c86f1820e021fc99cb11090e39c7f7e693161cfb6e8622e5c398087ae43c494fae76e296937c5a1a64575a784c45826a6326968c04eb106580a21fe6fca54a985f20dd6c8e719831e59c4dcdcdd40e0b210409ce1aa88bb24190dd75761790b3a288f6cfac3db21cdd48c92e572fc6ae17bf74518984cfbc6dafe8bd4152fe6ea6bf709abf28cc572d62fc02402ee51b5319fad635b5ef7d750f2118ebaa5c36c38498d232827c4041be2b563e42019d22edc7c0da849b88985a5e408934f727c408e13f5c0ac05747bbe0e120c9faec524c38e5cfc1ea6858c18718922c2b1327964227e898231f017bfb9047d87b9c958b1beb1f89e9ffc192100f6222e3bd929484def8b476779955c876bc2b0d2f81613e496bea2ae7c26caa9720387e8a112e09c989b8e96b755cd91da41f2c2f2790c41df12955a1660df8d62088dc1edb08523f3e88e629cbe87372a64b3dfb098d2d458caba31b5319693a1307ef649e5429e82d429e518b90a04b4478e636e8f931a5fab047c0a64b1014e99c069b6013a1d2353e0934ba5382d0222b0e778414740ec296c80423ea8c1e040de109eb5c044e57accd69dca0dc84ba184305de6f31d8fcc31e31fb3cfe8ac0626cf66021fea515e277ac3601bb9207011259c79b2b781094961bf100e20ec29eca451ac6f665736949ec202829e5364fee441d849d60324e8ed8b1ebce54b9b25a418a6045947db36e875b8b908ce383572ffc5bcc663c009e70e11f6146e2501f2798b78075c04b166583bb5fd4cff81eec78e1f9e244c6b760e785e7142730de38d0554d650d570f767fb3ec9bef1dae2c7267bc1e8cbe706ed12a63cf3b71d8fadcd58a3046bda75fbc992b3f287abde5c26d7efdf244b1957542a8f56705a3dfe4de7d7501d7fdb551f231f90869223fde7b97264b6f35d22bd5da977ef05320ca3bee59b31a430721267d595c8c19f9f4f2a4eb718fab9e50ae4f93704a3df9271558b572ff0b885c7f4896f508c8b8096af6f3f3463374d52fe857be6ba09ae32b33db6fd30c03368f2cdf05320d96c00b397c3c9676e98a0afbf40c6ba00a9b60aa2012b1ba5d9b8707322812c32b7879d740cbdba583078d25658e3fb72136649111bf9a8068dc8cc0bafddd6540d58897e1bb904d586de17e32b567411faf050fd201c7fc52462081e0ff8883f8bdcd0d1c7441d230a9bd8f892bccf3e873de10e4d300d456ee9a67878e80d55cc0013b09dc27f0986ca5fe81b4ce323681bb86ac06981431bd4b5138226e90be4e720716bd9cf0bc07c72d12020d7642b4571fedd7cb8d13de65744dcb31291c92e0b53c9a4e31eb7aa70afa61d3770645050fe45f074205346a95c416954753e7781ebd063feffbdbe8d813cfeb13c097763850c6abe634d6e71e6a342cb50e77dc54613c376402608cf036d26bc4e8dea2b0aeca06ede17fe8ac02611af3a09b694d58803228b83ea15b3e328aa5f9e779408555a4f890f0ea17487e069a26f31b55051e3750d869dfd70691005663d189c8053ef63a9e6a2d3d5e88873ab1c18bdb45afa142a9ee2e961752207dba9ab591024c36191f446ae3e61dc31a0e3274a76c71354b9c107a55a7e4836b5ca767d3a87ce69c3e33406f5c0d01cf239621dd668a359957c2636bb9b1238405699b3e759d2cf558e083eb7b1ec3d221f9ab7deee958c66f2693f211e2d58eb3d2c7ea5d5c93cc0fe2d5e3a4038c8507aa5c2a402e4cd6d2640ee200c1f58f1439e88784fd1b54120c974e3f250fe3d90996373afdbce406d79040afa82caf936d8bdecb44ff44bead8e5402c2013675bf2c412284ad2e79d7ee26d268a1727039aca16916a18a1d15a9593009e9aed14141b648a596286c46b7d71eb3979d2b00c99c2ddd0efeb434296b1d13c2bfb33c2763a5e0f266e73a61c2da4139cc2683534c1021642b45e448f1c7ca0d9c1f475102a640d7d447d0145e174c2928d678e9a1d9c0fb7d136b018ed12c4229c2176e3abd795b37c735fcd52324e80249da0c0cf04e21803babdc0aa7856c35c07b477f63de7376a004eac7bd7e6de4897bbcd0af46c7a031dffe3e1ad02b3a13b174bd600b576f91f3b7433dd865f6914364858e8f64a60fe45c81ca5720a4d6da5f5f866be280b17ced5fb2a08805785668b33beffafa3a4db2d0940f4ec69c44707e8bf76648e88857fcdd0893682b311ef0a36fa329138dff017a8cb4c5503eb835088aa653f030f51f9deb5388f0c1ddb3f46ade36c80afaa25dc301282ee37ea2f2633be0dcd38a53828570366ea37a17a3ad93e16e6fc9407f07a40cce7438bb1247fcab158b2347e291070d6f497f0b6dc6fcc4558165a7d01774a6f04e8badaf8397da5a8ec4bcd2ad3edb02d0dda08c4bf2608c5a92383afc58515b69503ba0f8d2e7e8f04cfdf2ea6eccced1855bda71b51117c711e7565dc4bfc024043e21fe9381c26513a66f12b51de281767941b856a4a59eb1c23a01a5b2da21180aee64615ed8562a9190b8e96d4cc2745284c4f446eafbe40e401cda55fb26997bb912ff528c4ff3c363e62c35bcb3a5f718ae6e27f211dd9c7188422470097073294b4c918f8fda5330ff8c5b132576dc11480c5cf818fa06a326a539ea632baa03ffe7f7cd88c8b165bd9e15830785fffbd349fc4eeeaf906ea4c7d8397e577d8c96f5d67524101fe724b419ece99b742ed4e7b07eb777dc55e4472101881f636d67c266229fddabd50c5e60da04eddd7446a7580fe411cb1979e2165efd0ab144c276b2e7492e8c12e9b75e5d2a1d0c6eb015146534a54af00e47eabb56a97e41555b65ba987bb812838bcef2a8e52d9facb5eeaeaf48e05ad333f80f19ed15392e2e03962281bf20f20d00d144873a663d4d14a6b675fa6ec7c3ed16a26d8664111f44c4477db245197748182f6c7b340399eb27f34034e67fff6db5aa1c7d1e2f3895d32d2fdcec58e9d02faa787f4a377ded1c893747478a7fa44425e59102b8cfaeb2eac306edb2d67409f35f07a3ff620e1192d66fabd80a688ea72d4ad8f5f4558667f28cb0551a66203d0ce731991b07466e0e06e346c15c10ca6336cf88ca2c36d27ac24abb7e7f84cde80728f0f3e645619cff635ea3ded2e1466a3a69e809748db27deb87fb180a5c51d4577e61b21715603d6f7fa85f8d73bbd58dafe7b27395c5ab26a8d700ccb707249664fee7d084612262b9d4e29f301096585247539d8d7860eb59fe9df2197d294c8501ad5419b6433610100a891511e73578b7252097998fe08c14f010c34f68c01115a0fd6bc7826fb9ae33b3f440bc09c43dca12f7f7c91c0b5850bba11b78c8408f2b92b928c7bea86171c56e5a6d2b4ef2bb30a07c94da98892a3ca5c86547d973236039711bc279d4a604ef41fec19c3e83ab905e27958e1445ded925b519b96ec42974bcda62414a9db9922b08114ed11039ce370269e6c75b6923a087e9fd8f37e51cc249dbbeb88c49b88541e739dc1b8ee93446a51a51e890f179eef3c06169e6452733e28f4b2724f4dc133f86d498fb3891be566e0016abe8e2530d2bf5e6a7d318ef5277a687895c6ce6890027cc9679ed7830cf02b4699d36cac1ff1f61dfe5b2a4f2618f36424d51d6956cfd350c89800bd2476cb16c4062ecc66c007882c90e90040ba201e99782c78438bae24813bd72b3e4e0440e49c29ba4ad01cd0112507236ab926a48102d05b4d1a4cead505dc84d7c4b01047b7c2dc305ec9db54fbce96da3c3820ec168d9cf65771460ccbf79943640e0bd9133dffedf575bda81a827b0ff3bc0bd4b28534b1e59762952537bedb891ebc7d85c5432ed385b3e6da970e71488d83cd899037c7209efd13da0bcc26d7a5718bbca341cb46628bc71d5e978667687c0fa59fa86d9040810ac7eb8755547dada3399aecce9462b1d73886f19cfb0cc0d23295ad22aba5a89f5d7f362051efc8e3f2b69eb3a595ac765c378e636ef0e8f4a004da1341400fbfc63b893c5d541e35fb287280d8722f46edb0a2912545709713f5b4ac270058ccac71232e127bc76595b09dbeee3bf764602034a8d3cebbf1dd3500116186417cbf2298b1b87b876712d782a076770fc2e7fd936360ef2830ccc25e385d36843349cff0cd73f97871486d8d72cba082d4c77890bb9535e9c60f9e5574f524336bfa51bf1ebd59321914d9750ac33949c4bf44eceb48ea52d215c4c69023ad090e29d532859afb176efbe8d8924d51be65fb9395e0dfe89ac8de5a8d31125906e3312e6ae3ac60feb58bd4e32dbb617c7398d47fceeaa7355b1ce87235597e49bcdce6daf906d777c3648ae357030da96f43fae3eeaa3004633115bb14d61754e213c78f200763c5129563731905be9dd2473df5be1f4907d5b50f3022e938b118f2e734b108f5310b2c8f253216ba9515eb47f5cf7dcc0eddd513897435429c013b9f01f996176b6368022db0e4de38548e77b89ff4bc5ad162cd2cac16c8cf42aa147b91b258d2a5d77e564bf4c95abd0b3f26409b1818974c87b86c444b68e49f1c0aed97cfbbcdd16903d38608072008c5e55f65066bfd6168b37802c086a711a62c4a1c3153b689bbcdaf07e5ba5bceabe41188333d7353fcba4132221eb8fff7ce41aa4b88056bb7dde5db10d26b222b06ba64c2ee1097373af5de8c7720f1af1418c6ca82fb8621beeb8f6f4e2251810850431670d12f62cf1a7dffbefd82db908d9e4d5c0bf59b1f429ad79811d20857b90a1047ad14d979c0407fe94ecfc469b14585b607b4dc1b469ac82ded0af100bb5670da6816f65d0f9f084ab8d717ea678b6e96ddaca608b9b44644e66eb771e0fb0268b31dc23ce9f146a605fc637f94befec9a14e0dfcd153db84d60e75c268b47017a9ecef45a16ccccd0b7c2381db27d08926f11cbf9c4140494c262db3a3627c17800537a21550136214af7ae987a3b9248dc8d45ac161a1bc109b73dcbb662a4333972159b549bbdcd54273e6f7e2717740be78d7cbb91c9487fcf8d654194c4b1358ed57a7373cccb1beaa035169f64a09ce6371c94f2be79ecd8ae1d07f9e6cd8d4ff81c3e3cc3872d06b532b3d648bb1970ec95c18f9236c5fffcfd85106f856d56d4e9d3906ce5d341cfbfcdcb2dd2cd8ee2c51d0af69a68c1058e3b03b2c35499a941994bbebb1110cfb07a4ad499b1f2ba63ff8b9173dbc71373b886430f1ac8a4f330726dc8defbc53c6c5e00d011ee1d8c763debf6e3b8a6b46f994cea1e03686543e4a61665dc17b2a3815cf993041bdd7e83d84502c7981998ee157ae3fe20bf344ae65821382ac1641b3b9004434874817b11f9057b327bad99a04bbaabd3b650b13fbdce48489e9bd9a98cf3ff9bfd32891200037a52ace7e8fcf22dd38a5a2f9557b928958cf04db50e03c0d6d440885235c7452946c6977f40d951501a6a32113521ec3114bcd462f787f082df05eb43ca812db34b76fb83989f164fa3212364b23e7a62ef36356df682d40a11ec2b22e75d1e3d0b4499d0d8c890142ebafc0005459d5940ff4290de4e126a873941d24544c849f47b98bfbde1719b6461bef4126f76d225d6f54fd8d26dd0e84c8fbf58a540d33b7cf5c912d74a7a711f6466b7fd17623b59bd0025ccf927cd48ec263ffe092ea5f0090429d98e3b07f4a9a003dd31180cf38429e268eb26e72808c73ec8883b07dc198738efff35e22083cf47d78be4a8a02c4083d89f1f670682c78ba4cbb87cca8fb05c6f17e1d4287c5817ad1ab21951e2404c67feb88b610335c38bcb3cc628bacbed9e02cc03d813b714278830886727cf6b4124d05e5fa5699931ef90b7662b5e61916db258153e8bfabb3a1a6ea16bc00ce4cdde2f6d21d08215d4817c00d2f90a76b40e3fa5d5b6985ce33bef84f7c1d8868d697bd8693da6988c45e2caeda3908123ee2e32422922dcca87b8807df20c403d7580c88992a595c6b1b6a6cbcda7794fd7e0607b57c007452b2111bcd02de65ace8a66f42a2200aa9ab1cfa80649aec647746d7fc30e41d715f692d4a92e73cc589e7330cec21293fe554f7a23ac1f4333e1936543a29452852f8e94db93131ba6eed8a048615de319a891a69b7730e804195264b6e9960829ca62bf4fa4f70fb989e29aac1d7523c6db2867cda869bd738f19b6289a754fb104008d9130cbc4b5c0cee599e2c3d737ec3433e700a17c60a590e90bf1e1fbf0335818567b985f32a32b2247799464aa2843ecca2898797730287119e45ebf88bbdecfbe444b9f985a62176481b6965be42423272f9b8a810d51c11ea9069f0c49dd67f0d3754586f309cf06cd0473c62106252c3a80a5dbb0ec641a3416dc0a7e1613930f82968fb06ccaa06cb246c4b4d8fbaba278291711423d59a49aacb310163e37467cd88de9ea4f77ccc41d329c31569f0100eeb0bf4b24a269ece6c1e6360d545d9dd968e8dd8fbaeec1b07cf22031e026c07c3fde4637ae79b2f84904e503f1a37b715f2ee72a75262aea108a207cd8fbb245b5af107236e3f349fa6388728cf79a5c2bac1db7ed0e007b1af9ecc3712a9d09f8de2c47352655169ca81c644b531d74a1b10e644d056eb939fc6bf8fef015ce3bbdb9c3dadb493734e7228579e99071d52c08a66778570eb8dfd127879332aca0f13f60e8d9b1cfdbd3446bcf138911bc2c8c9b2d99b046e19173009b15b9789011a581cd40d97e6bad18de104b079424005521c8e7720ab3770cd6ba0782162b9e138160086697653d5ea8e07c9268427a5f64274e8fb7d41b290947d523c741c540303ca625601303235491a06ddbf62dc3036d6bbda64e7400ed0348f5124f28a4044afb8c93e3736cdfa4240611a5c0e8857072ddfed0de95dc98b636df7e4817e8eda72a35e00c7b7f76ac8f13a3db79f4156bbd8eceae50150fb1b97a1bda54f9320590ca29968e83a609c9767c40961f2d46c5ce5fe53b4d27f55f544a7ebff37ab51a457aacbb258c26a70d71d19345d398112ca0a6e74259c0f0120de47538d7f11da0aa77c8c4b80cdb958541198c93cdb6ce37a0e94d912704e0dddc55c086e6c4ecbb625277f6adf9e884322899be688c3d20a257c3d9c6d803a33a99c09c3dcb667275c07adb34b0d2e4228e2fbaba6499acb4b13b1666f124003c20e1c11fd308d475405d068cba213000eb64b58ec89131788ea5e23cb6e4e8fa552f66ad549feb08ba07c03471231a482d751cb758b8052f8d1f27e6231ed0622a01ae0a5f2c86739490210c4141020c746b53abd37d99d22f0410240b8eb50b4635db152000e218b01e5b0e3f33da0c6fa80c2ae02ee20c7a8ad1ba4796f531e0872c761cec756cc098405f27b47810980a86bcaa2d48907ce6ae2dabddc65d1b8a95b55120b5e3eef73026c1f749497317ed55df61b9f1390959681b52817e4837e002d490436bbe59c3e2314390950104005593155d96d390fdba5f79c6cc91297e3d2889a026c961a3340208c691ce76b79170be9467ab0d3e1efa588499c1d767c300ba22a8f769c0f8a7b35ced877558bfeec86e61ea1ad42fe9b2e984fb3662de03747ed83c70c4baa1a01a07950f852699255dc16441098e5554db6f77d8a531304a40a3d56513cf0c7b8ceb96c7187f80e536c6f8e438963b39bfe4c43ba1dfd0d0aff795088d0bc37b62c5c9a205373ab1a16fae31dd1d864eb1a2a079acab1caf32ea240fe0326d279057aabb2a4412b37d86c7ea322eda1cf98563bc8f2859389f774590fd9c6357a9d89203f9810cc117551a942897eb9f516f30bcbc47206c00770e4de999e589b3a3f5985816f5067a6d9834c94a25db5c8e42ab6ebfd2cedc1d993cd1cc8479c8e46c94340ba54095f0823eea4d48c08a29b511117314fbaf5fd603180ed6e17e7ce4c5feeca6b13086202f47dc96be0dcf798e4adc925a856bd726ba130c2abb3e019dad99a60f4c196df8479d200fd694c5590c3efbf3ca330a6127e5aa80d819d412cb79208ece2c62fa11d8ade40b9ae83b8e35a8884e885d5298168dc1cd65b4476c12c2ac7b9f8e92c845c47511a2ca2b3baa9ac2f894bbc777790f8a320c8b697d1f63a8250d30ab600ef319aa710d221b70b57e50047a1da992e94fcace6037fa9c0692fdd45c58bfa4e67e6600ab12813c3e02cb355a64815edf82af84568854470868598b23061230555238e5231385b0dcb4c237445658ed82169ccd96592e42b2317e02cb40a5cf7c6887a3e72fa109aa57e64cebf27fc30f135383103ed05a87745fed569b3938a336b79ded521cce3348fcc3c03ff53b25dd8b4feae4c6f99b1dfbecb9241cda63d2816adc18f4ac691330ddc0e29eb08ccc5c3cdf68b1ff86932596d8d9fa10f083ad9bb4f513993653ea0a77aa831003f88355dd854fbbd2e5091cb04e3a8312f6194286e592e11b87c7202bc8743de03489232cb1e537a70a3e409199035a7a9adf39d45cf79de001d095b624f2b3c384edd495705b043f889b7cb664cf798c1728211110b5883ad56c4b9ffa2dcb3c11fea628b299c7f9362a93f0653fb060354db6b20f37ed068d0eeb1d019c811ceec8488af0e0ec738355e96b6939aea5601d76175e4eeab2574a5975b1a83bcbeadf0ca5ac5c3df406cdc66f059c76aceb2c77b081aea0c2c69e69c612a5f181184c8189a64c9056d4130665a27ff1712f7133c9b096e6e4b6dd70c156c531388f471e357e6adb7fde65b152747857a9689f14ad65dd9fd25dba9a27c821c0a1bd3bdfc30d1ee6e74f5468170ffbfc7c55cec2df822c196f4fecf00225effe6d4af35e887ac72237524a37f7ef163a3e0aca7b3216a77e7df5e6798c38f456debc08c1f00cdd242539ff4441f95aa714f4d68b083c8470a546362cac7611f240a391ddc6305f75e87335033024ea8daa200e031b42d438559622a3b70b73cb1dcec66735170883a567fe413c430ddaca988c05d3cd56661f5b19d057954a0f49eb6cb4b74634869a74d47c22fc0768729df23d80e7e4a801c762e3c41488a6bc10c028bfce5a992c6f4a7eaed6b2695653048b0c8a2e8deee9ebb8c7f1c5e764c500eaa9a9781eb0a64c7b620c91a937468a2f35618df8df6b23af4589e5822f9446372a0f2a944db1babca9fa938eca9848b85f1695ff925af04ff1ea5405af2cc7ec2f06fe821028dc393a0ac5c6dff562c11beec9d603614d0d91dd74766d383ad38cb9799dc173783da5c2439bbec895c328baffcc3d4315c83bb5451aa15f3c04e3d5988f74fbe158f17b8a16ab19d4af490571a74abdd6b94f2f6b124d05e25c52a862c3c545341726d4dfe7d1129f8d3e7026558d1efe688635ffa37b4403da3f073dc29f47212e630134ea38e8bd313e12306c6b957e261ca4d64d897405924ac08e74d11615f840d7fcf817c8f8bd5d5569197e876ce13c7c5ed725211261bea0158cffd7a06023745b0ede10b32e74ef393823b23142ea2a29f690bc03b05f3322f717e9b90fa1b590fb38376e0fddd7f97d1c3ae4b85e8ecfb4b09988fddc7f26d4feaab48de6073e9f4c5769a75a9a08666ee2712f6eb5c7ea8cc2035f55a9941c998046f3f8a270f48b6c3aa06358112eeab6630023577274ec021d35f2fbe0f68d42b723804d573d096ceb49bd03cc694da8d7179420f3405095f2a0c211836f0a849ea1d24bd84ed56a50c2c92e674c3d4352c31966f54601dd931974a59767748706c64e101ec9774a98b97096cb03c25502c2c817e3b0f309decef3215b3abaf44eba89907094cbf6a98498cb62c9ecbce9cf7f64abe07510eafd103020c6af7d6eb716dc7dcf2be5c476783d868c3fe7258e0f26c60fb419dc15adf3783adaa2b33052eb0665327a5736e1434c9ed62cbb9a50afc051f811131a6b272538533c17d14d30698a09a3e4165840a81c9b44d2af62077f5a71885c4f3f9e313255dcf387bd16a34d1a100f1b98b03680d82198d0e967cbf90cffe006a66344219d408eba31f59da1f32a4743070ccc865ec988c76101127bc06210f02c8eeae415f23db25dd1aadf81eb2f684a79adf84d1f10b4d71617fbce58af49533b16e14e890157fa26c9f28c76eb8e30632e7d355dbe81fc6b592f1b7c251a246b4b4fcc3dfc907620e2e8f77d895b06ddf6faf408d09cc509c015ee0865ad8f06cfab24c0fcf28a4eb2688148d01abc84ac1d1142283e25d331659d06731702c9a4fe4b3f57b4be48bb657a9a55d625ac9a21ae5a16b3b233a925c3f31cdac7c3a1f906038c7eee2ed427f200ebffd3658cfb5db042ecf0de4aed58f28de97d76c1d87b2b9530da56742026659c500c094cc2100071596534636b02bfa8814159fb5ef6e480cfaf089a229715142745740755b688edf122542ec6ffa9dce1725e87aaaf6f8b72a1d19c15323bb688c669d0328d67a33b00881d455a182122e167cff1364767efb5d66162d9a3d6f98b8ec0a145ab80e341dcc4cf5af2e89ee78a9d30d08f661f4d40693471e45918e6d18afc8052d03137040253be1fa6657e2c8c20b84ef178e325a2fd619071882e8af4f99f22543c8e3e136f4b4090c179574c25aad7843e698ff6505dc27bfa9856e427acd080becfd2b738003ac4068e32436948ab3104aad6ba6ed4112a1f17685c5e1617dce630cc8bfba4bb021960dd2f3c6c2369bea077a57f056458c07651145437f7cbd7bb5b835ce99dc8a0efc197d38fc797245b4416392b2fb71bc540b380f488814fa1d4012a534089cbe69cb6b77e9e98f6be3584570a620fc6c278c15e5e7ce51768360881530d35af4139641adce6cfa6b16a0c313ec601613fa4dd51d63b2aa63a29d79efeabd0bd8999e40497f823abe006652f79dd69337ef0c11f2e080518f5b8301044e8e4118e88f9506004ea50a4230bca65ce47812e98498d6ebc55ba8e43efec17a30f7515ba62df222710f72c84f3d6010bf1bb7fd5f58e713d86b35e8e68f83686550b75ece386cc47d7bf566bba532c3bf6751530580b7f662f6cc57756dece9be0cdef4d3a8568c2dcea52985e737bbde7e5e4cacbe157459d10bd9ab9d672e5d96072ff544e7cca2fc1aee0efb5ef53fa49d063f3af9784e965f3bf5b9b31709c8140a63990c4df6622b4ca64a79457507969561cd644bfc894ad0bcecaf2cbdf2f6e31d98345a28b6e134e881111c0ae465a92c02e2f75008ef22df4b774f23b0c7e17e86228f405c0b76ed656fd649324667f5e25b383e8535e5ff0574fc192cd267e9fe125a73859de9fb94fb706bacbad2f29dc9fa96b962efbc07b6a43b35a7fd8b0e59f244eec60953c44257d4d1397f947776e40e9f8e9b6cb835859c6d103db080c77c9c430bfc244b29dc033e1e2a6a09d050e09fd7dc0bbd0a467bf273e216d1b04b04e41a4c274f6d76fd1d6e960cd0380131f8c637761943bab896db2bbcac37a1d1e575b7eacc15bc14d8e7b5fa157e587460f4e20c95fd63c3be0bb4ec6d7838e6476b802c58ecabb0cc4f1d1789ac49f3de649c610b0f432efdabacc4ed2aba93a4da3623aaf28c99e2d103f83f2d5c65d1babe5503e9a28380229271626ef9b295c0c868b580451565ff51ba75c9b2939643d22333519a077f4255083c5174d7f1c3f82efb202e09f4b122bbcf71e35d4f170d375cde629d6e72480aac67527b5a8d87b3f1ce5736c00d7e1350813fc8412bad0b2a9a96a9e39282a25abfcc4c76983207f6e88b2184b8cd4683e97bf23fae5237bc384a5e62d1e8dcc7c2cdda42dd72dba44179429f408289de04f67cf566c922e54ffaf2bbb3782c9b40a2bb48483466b0afb97411e0e5ed22079454a86f056d7a009941a95c9d43785981bac1de86c9643a28a71260ab8553498bedb611d22c6f7d5a9c3b2b1af1811c3a83a14e99b616e05002dd748b4b3ab3f43ae90cea2c5b16cd8037d8e7efd19460f40758c6dfde88a756d63bc9017a68da9c0d2ed326bf75b298d76549b159a135e6227f39cb08e9a2ccd705f811a8525fd316f8a147152fe2772a3f3899ed642646c7abfba0f01f993fef6ac3e4020dfbe81a0be7d7be40b12c0c45e5ff3ed3bee4291bb66f8fdfc0548f0d8d1fa8e7fcfc293a86984ff98492c0a392dada056e88880a586bb5b8fa10d259ab4fa8e2127a6e96ed4a69c362544c15212f03cdc6db86187e4ec242f4ebfe95bf88cd0012d0a3f42fdab1de69432c40a529a5272905af3c96afc5914bb9a01490035620218e77a68bac0ee08d94b006d29837396872a0f4f5023eeba8a660df13e8a5d97f04bdb30fb16d9e4e7d1a6e6117819095b9b141b593bd8983d31c78e8d8146083f8337c7330bb481f86e511605090a048cadb7b4a0e90c4119253e640f36598322b606aa06145e034a7bee7e5b3052ba4a075a6849a309ef8d37911ada8af6325948295d4a6a0c6dd9cc242340648bab09552b3a58400fe7dfbd5b4a64d175b863106390ab5cb0f6d801ea4337a8c48d02e9f5f09fbd90fb068d180922237fefbdb794524a99640a7607b307c307d3e5925d0f5709622f2ed70bcd3c751944687bbac277902012be5927ba50c5e99d19845da8fe5c004710091f5927f6c79c23f64413889a9035ba0ce5100948e08275a13f273281a88967ce71bf10c87ea174ea9c0ff9d9fc8424f8f6d8d2b5c895c0e3997384eded3c5afe446f5fddf40e175a9e7a1c7d7292971b9e7af4bbde6137e38c33e218cec14e1b40d4c4b78b7370bb9e391f7da79727349e79c974a1d2058918247d61e5c31b3fe90b2537cf334f74592ac31863c601f9634927d9d4c09c4cd3b40ce3ee2cf6d269e9b7e26f3658afbdf7da4a7b8aa6dbe41d160b35df34c77cd3b66dd3325b691cc3c2019d39be22fb58528776cc7df8d999995d35257f7c3dfb32cc3b8b8f7df79b64201dbdf4cce58c51b5b2f1719879733e9aeba16961864d2a9d7126188d71428de925ed9dfa592c9db3592519a50bef92f42ea7e9a3c8e8669ec839f384d22a9fc40596ef4f88857ead06ac333344174aa62c328bd462cf96914bda12eb48e7a2e8426d49b3c255896ecaa5f959f974079db5a2597929955847bac65479606d5b8c3182dc3ce8a20fa53f1e084bce399b67641d1675e2d2b6e7d523493006d299e6689ecdb556611e7295f6d6927cfbcc9a7c7bed9cb09f7cbb6d24be8d7cb75257e9feae8bc9367da2b553d9dbb3023aebd2db1a6cedc3dc7ad7a717b27802617d873f7ef36683b1e98d3eed2c10bdb593d6cf28f3ca6a45e9f9cc35137dcb8f0522a208e40d4af939d6d37e7f0ac56fea3352689c6e8f34c609adeba76bad44859a71ceab4d58a7ba36ad75ce3a676302686ce1d4423a8d4198974e33a7d42d75bbf24d0b245efab65ab98dcceff5242d45cf543c276911c56b02f0b89ecd8542d818ccd922ef1040a409000e4eca6d709c5b26ede37ea2b51ee783730bd2d0d0d458afaed9388d57e3c5c761ad6b3ab5d61ac781e3c6cd0d4d8dd358eb98ddacb5d6db579bdbe07a363fb93680ad95c8d5aaeb6aadbee2e65183b556a6afbef2701ef9807704452fef5e7aa7230ad2a9970aa677c2f08e1fe9d4535f183fb4e129af5a7a27b4754bef00d95a5d53713f313b21739ae27c7035bef290a4cac3eb4892875bb7ab639eab5e83ebe9afd99ec643d6531aaf711baf3547bc8386579f49f08ecdab6b9b17747a1bafa1e1c5477128ac7c5bf9b6f9ca79340d8f9f3f9ba0f8d685ccdf3ce8f41b8d6f9eb79f3e2105885e74a7c7e6518d962e9c4540585aacd1828b76441f7b7296e1268d67bd391fd6575ee3f14b2e287e8d5b4f48fc9aed0b6df8e695c629e70354e3366af559d43b365f68e349efac3e201bbef2ea134aefd47cdcca37ce878d156b8bbca30768f31a2d6e0d0fbab08dcca31a5e81e29cd23bee1bf793f9758df311bf5583d469e48ccadcae411a1a4e7d0b407823d278ba857bba3da594fa507bf93747794231ac3e7c7519cff2e89a5a8df491de915e2b92cca95eeb173615ae36f9e91549f2541f3867ba0ac25594ae0ef1d36d45faa97d4754a4cc2321ba385bc90cef5fa6df952368371f3becc75ba7b752ba7db4abe88da131ce0fa2a37c0b2d8ff2936bbdb19432d487917efb4e1ecab3251d13e72177df4ff4c139eaf3e9d34fb31e3ab90596ef1e35e4bb2a1f9d3a8fdee9de42ca67ae6d0106db7830a077362b16b56d5eb91e1bea0bef95f372b9f33af5de4ace27e37cbaedf342ea9c967128748f3a7d21903fa97c82e298476928749ff3901bd0f60151713ddc4f74da930151dd6ee520eba70ea0f6ceb61a29bae940de396af30f373e7d9ce78ff2e26fdbb64d6ebb9b6f5ecdabdb5ccefbd3aed99c5c73edd47d9c17c6e722d703f5f530eb6cceacc3f909f3ce93f193c7bfd9fc709e79e6dcb67d34bb407c6a356831460ee32c67adc5ac732a7c3f1a8c2928d13df6951029fd84e20a422d6f852ce639bb428398b31ad48179c8f211e1d30182de60d0e9ad83946ed1512a6462200539aab9b576851fbd63a5ccb77da12afb7444a1e63c1d1e4b07dd6cb144d0d152a89f06f9704a23f609c51f0dde06a9cc922efba142057a07dbb80fc382ec7b21510a0d4615ea0af43ae659cfbc20f3b97f60a077ec2714bf7e3d660a325fbab07b99c8350102882ab014155db1020820aac0d2489fad644ee699671e9bd23aa39606330dfb7a4883998ecf62d34ee25abc72e79d77de46d260e698151de635469f3de433975e28d4034b5603fde2528399c72f2a3598795f894ad4336927364517eaf8cc1b49ef64e1aa9388f9ccbb49ef6416c967be9a7e6fd76559c638d907d448f64851d1152bae6bcc3632f9d91f7433deb879c452b71920baf0fed5a29638e3ec291314c7f4cefca216d762155dacb53a5383d7312c9df5e9e1653a8a58fe7a7c92d520bf08a5c1ebd9178b1abcde55c4a22b3179b129ae96dee1242624feb65f8f5c2218fa85dd6d2495ca8d3b3a4a0ea790fce839d098a7cb81981c4cf1da69f64ed8421d0ab1cf1efcb590fc803e1f27ccef631fa1f8debca213eaef911e245da85fba507f4ff985ed5bec1848292dd37b595ac93c27cff61cb0cffed843573b554b29a9ed06992ff5ee6eeaa4934ee903cd27e6ed01494d66ce9ecf67a33910f5761b1fd4dba9b5be7d3785eb9b43e0bad69f4dcff4761b1fd3db7da6f7e7aca365edb13d288e79671d79654e0b66864091310336d6a3ac51560cab326c46501cc332da29c39ead335774fdc2b3d3af6b3004b9257adf53e77676da9c09444dc8f662d6ae79e6f1620eb479a879731ce79c8d8fecb32fe88472c6e259286f392d6519e9d4b4b959cf9c76ce9f7941581f145f88507fe7329e4df78397f1fab5ce3c6e7a19196fbe6639b69cb6ca9cdc8c97917f92716d729c73ca9cb27c7bf14f5efba0aea639733e3c7a7225f0c8689665aeb9166eac23fd468e1da74c5fd14dd70bcfb9740df3247772291f73eee43232980bd597712d3ee69c1744c685ea9f9cb99f0b7c07e1c082e298680286b973bc28fb750dd6ef7bda591f68f2e4a37abd2ead5f6729f95a21f1ebf5fbf9d313ae94d24a29a5944143de77668cae9d9e6ca4f7b5b65d7a2cef5d01030d20ca719d475f0792577a10a1ed834810aa2f5daed08f81bff763ce213bbaadf123aad132a1b1446dabe9da742d727c51ddf4aaa4a0c521d97c873ec6f64834ad0d87e690b54136b607c98f41f30b85fa33ae077521dd0399ae173e6c0fb2625e18f3422e90d76d61bb10fb4177080c2f7c1021f5a30bb1cf02d173f50ed9ab508bf9e99f8d8f88f4d22352e809e99f9ca3bd56e71c0de0383465b7330b41b206c9972efd0b1aba4268e007dacc96ae6592b844f1e1fc8e317a0666b674d1c3e7bcbc9099ef477a2195dbe47342eac6f4423619de1124ba3e88848f284c1783d1a64b0f89bc2773a94566c9eeace3e37aecd757370db247ae07f3d8832faa6b3024f2306f7a42e2875148cca6943241f26d7ae4638e7dce3aecf1af17744fb88e7dbce266a276875e9bb2c306c8a0a1764cbe7c39334627bda55b4fe76b18a9c72f287e25c013d968af68ed335e3a20eb217c68bf78a4b738b201de1184f546ec44cc854767fee837a4884e8bba91542bfa54fdf49a1b62ba10c8b3b6f83184ce74e9a60fb1773287a8c54d4d58f0030b8e985cae1675cd234a20040c4130d11a5244a715dd48aa35a448b7aa1b59402b3af58c2ca035f443e6c81cea4351787c435152a01ebf219739d3e9c7320789c7904106465fd8c0081d5cb95146c72d221da260c2891327965220468b5bec212b0577b95af148ef8480640aa131ef085932f33aa787b26af1f30b9263c684179b20602de17520444978f9fa5d0fe5170efd94de9ce286bf9f11ad1ebaf061f4b03a10a2267f41a080214820e029907cf570043fef0702d6f2f5fb01e50505c00206930b95bf794ee2e2c31b0db1bb40d4a4658d5c34384822061eb85c2d3672ddb061882445418456602d6fe42a001630700951c010a4165c3c0592167b3882af9ce485152f14df0806d6d2b29f8bb5b4f81b627701044e80a8c10b625c435cae167fa1f4e62450002c9c182301940e7040c419318c19d3e212542f3f5a913439a717eda5d4a55fafa3b4ced8dcd40b15fcaa415a29523369ec523ae6b2faadd5a594b206efa09dc4a41eddc6662a61ebbcac23db8bc63e29ef88223448bd307a960cefcc962e73cda9dff40e751dbcc359e7769d7373569d739dfaaac6532f8c7c0d0d934f2ecaa53f27f100ccdf3478e3751b6b93e4c511cf495e14f1ab06afd7495987751869051acf4cd151e79605d078260a6f678f5c8f479f335e74ecd5bd76aed5bb7a94dc09957af4f6fa85318c99e601596776ebcc27602d0c81e105d707c99c05a20f0a45f00333c63c0bac0425090daf390b44af7d8c7d3ed9d75a29a5734e29657747d6b994eb896f29d7c3665f183feb09b3cce6c7da16de025d0f1afa50fe751eed61e5d1ed2789da9e93bc28fac94e7b302f6589407d1586a75b7484a7d4b7de892f68cc91396e40e3abf2a3c864bab55d3dd471758c605d051e6079eb15689ed9b2bcc455de82d171d33becd92d118cb7ab2facba8c6365121acfe8c0a5ec22cb4bc9f303b2cb16a66f1f1ad7f0a1db8ebebd53ad78477c125a72ec6409282de5eaa2c7e73e003bcb308d163bd4a44b4fc9b7e7681ed9ea10fc2d76627010209a82c50d53c2d0a10b2d35b498bbd275d216a5efeeae776418f1db9e93b6207d3ca2f1cc0ebabe9b00349eb141d71e3d287e87b1e4b339f5f65888d847592788c7f46c9e65af7d2158bdd08abadcbcb03a75ccdb37c75cd328e651274aec673ae69be6d1d324f7733dc6fe304cc8158a44357617479e3ef1f28c26ef4fcd10f31e149f3ab34ec84963aa7cfbf46c7ee81340d1432134a44f277a2134ace0f8a64f7cff3450fb8cd225a59f90f6675479a17e295dfa4bcf5f487b2f1a374f0a4fa0f8d0e70c211f3e14727180e9432124aea00f8576a0f4d1c31098e0250513d3472f4e3e88c78c39e375c400c6c71e334b5da3e039a969e9bbe839498c290f3e2785b1e5b999a54eaee039a90c261f919e93c2dce007f09c144686bf2ed710568ac2827d21fd1c08123f62d1c910daf5fd7de47a044d97abcb7318cf605ea35be57a38cb67798d69adb5ceae55c65aeb0565a2bff458ef4224ea9651c830d19e93ba4002c60b64f8610b2b46a0404a8b398deb21247fb68fd9e0e58b9a0d0ac9d7ac6631cc76aaedcbcfcd33b742f231d762739432b6f32e778e74f0e6f90bab4b26819b2f8a6389dae4fcc2f84171f50ef20ef9383c48a762e64a175e9ad485916fa6939ba1a28b8ed342349e91415237b946e3992a3330e82fc27cb165061a6f44b2861b9cf1427e91d20597f7a2f443052f5364972e927e79723715303064b66697308a4af8a1020656267c09f3d345681edaf2f2216301e3adcc2e93b27eba8fd1f5234bcf2d218bc53c4448badc708222aa28d1458b567b34c23cdb172e20038c1e7cf0440ce621f261075e3871c4888933a4609e0d3811c28a179223a868221635921a363f447aa51c226a596b3febedc9af6d74fb51dec13b2479de12534cba7de84266923cdcd4a54563a3ca5add3a87ba54d2cdd5948e2e806ed76337161ae384bc319539d486c524468373a68b8043e727b8518d521c218ea720751054029ffea03cbf90860fff10e867cbf4a7629de8ddc660f41b41554ff7dd3f690a3f1aa4eca51ed1b8b5283828f1c261895f35e801160f2cd66a87d58a06896e1a79e6c2054530e172658c2996b4d899c6f4e2de6ce288512acca904f3b494cea1545c702b8ee6399d3c174eaea596e8c23e9a51ba8f1aeb6eacfb0804afde478da597e6d13c9a52e61111e6d19b47534a12ccd3f512ed44cb00fba6942eea269589058ce2a9df2a4f7d7ed8d1f5a106a9b7a082e499453227f611e6dad19604efe83eea234a1df3b0979e660101eb9ed2474f7459f5a24f128f8000c22c6a81c370180ec361384c9c31c6183d471fc5e8de3cd5c0a9716b44afe19f27f97a38d14fd1678cd1371c3abe77d290b21d1d016089ca0daebbbb070429d811081784d39c20d0584da42af1624f1aa4452ee834bfe10070e94701e0c171eab37700e0d4e79c373c9c730660ce3955a939e754a5e6bdf1b08f68f89c930693728be43939751bd3e30d008e2a358b6866d12ceaa33e6a293d459502e1646f9cdf5784038757ae8f523d74d1ddc33eb2f1b08ffaa8b1f452efb853ef2c353335a89a1a9f1ea786681f7df4c8bf166e78d84700f090c3f41253faa8a5f494c7e1f103c0eb6e3ca393db78dc601f59cf86176e1ff6d15110fb212f09c5a7f199d02075956793faf8b5195477faa617950b9128a3200daf1baca49c4821bd8e84995c5e47b6bc6a10f3aa614b6a895709965e25509a30bc68008382c6adc52d328b94e262520ac924952493bc9209934c9e1223cb96540f5ddc22e78dd14b7be412b7c42d914bf4325dd58a967ac16495f1aa61e931f753631836b1c6fc48435ac5d884c66d834e355d7a0a8b2e3cfdf4d07fb6c78ebc8365a9b59dcad285fed67639c0b794525a5966441dd0a0a937f9065da75a492965cc62e2a00bbb9f9d6a524a61106b8fd415ab9bd0c1afd5b7dee9ac8dd1c67ac5adb50259b79f8d0feb4d5975efbd7eefbdf7621876bb8949a9a7aae842771cffd8b5f28086293f80e7170d47b610f3399e5f33283dfbd2950ec7e41a48c00a0b50ee9862eac2ee29a51b09b4aed3a20b4fdfddc72c40d07cf83995832e3a1b60bb0d4a2d13d01887b914966e426006a4c7797e19597aed54edb4f1413d3af5f8b5cb9ada810c6480d2c523524ee6a7c47427eb73d2f8c9fd8c4fa7ac4af9fc72e4007b07483a582368d6d03c8c5e8d1a343e3fc74999d13dca83e27f3154f97d41d3c31afee30b9a2ebdde1a5fe347e7abaffb1adffdccd63b33422d3820be1c5ae1e31752a71f10d603054d0fa30b916fb48d800b9a1ed2f8c23b31c7388e732299639fd71a5f10cd67b4f9fc6878fc2acf88f314e7d20b7f7cfd70b4cf888dd6f6cdb039110cc38810d91873229b6b4e24fb3a99c3ce3911edcb7c05c9c37d2c19675c47836ce9164f1eb2bea37b377cd0596735c84eadebb8414667fd14016eddfb09754e3bcaebbc20f44fdf0a355374e19d3daf7c1951922f2356364fcbbc49e9acd64eaf934ea75a7e3a4f4a27bb6089aa4c55994d78474f23349bf6fee136fb8a3eeae82fc5c429929a990d8922c3f9766ad7091e5fc6db6e6456bcb97456d2329e51e75c87f4d2d3fc657c4eee04996fbbd46594a452962d128ceb8892274754ac6061e2d22f7b4814ee723fdf6f3e9b5f46a63ce7db8facd2a0ea3b752ce84289d48ff9e47a04f161eb3eb15f66fb69e79cb91f1258e91dae7fe827ab34185f46a07c7be6dadca2cf965638ed0b8ad20ae5c89152994b82bf5f5094581af4a1a91fba502221f54e95deb1d23b4c91707d6130533a74d4a564b0d6d9e08eadf613eaaf42fa67af00098b8564b5ea8e148b115a518cacf7b09536451263dc0095ce1c731c01ab5bb9e38039b010fb1ca7c1ee066c49075f1ec3300c73c66e0ddc1b04efcdb01a300cc3bcabf298afa678ec0b81b01c741ceef92543101f3a4b0ca78e4c3a679122224aa46cb8f7da5be4defbe4af77477f5f455ef0f70b6d6a86d4912bbd4ef5928186cf9e5f32b83eecdc08160d2c165796d181acdefaada1efb3e4b95648fcf87d20587dfd80e63665903265e47ea59fcdcffccfe6a7975e44a0f8f0c713a08075fa4544097d7e1131410f3a4e3a03899fcf2f22367cfbc693f20e7e1191e1570d8a5971c1e5db6fba0363347db8f5a0cd50d16df439e90c2a32674e0fe143a24a3d9c5fe8c26bf1f53372b64643ec2e1025e1a5453f174f812484d722731408e1db0a2a7268dc3c321e5e2e63ae93e8338ff3eb11bda6699acdf553b8bd0c6b56d7eaf4aa694471c3304cd3e46bfe329a5f209b9f694ff6c79eec750dc3b2afe73ae698162c3f1da38e6d7ebdf858967d40d8c6a1307dfb306cfbc2a1dfbc7ae1945d84d900b13544c68b301ba07a6cf1909b1734f453ba8cc72ded7a3fd807c479a8b99cf50b39d73e1bcdad5377eeb3d1be9febd5af572f730b74affdb9f6fa988e7d6175cd351bccd906fb7aa83f1855b4de8032d7aa6fbe79f5f8b7e67a34d73ccd79c8c8a331b91501c61129050d64083fadac5156761e5dd99bba741bebfc525abfd50b360973ae34a0e8aa4b8fb68677d62a420ed75446dcf0e6d9466be3cab7eac3af837562ad4a7095af000ef3cde76810e7994550c58f7a0e967711c808cf3e5792abc81268a1ab56f45e672fbaa65a55e7fa711009daec0944c78d140b5b6b259dec92554e7446a89ce8a2472e342dbc1c399cf44645e9a4743aeba8a2d05a69ad5475441727956e29a56429a5e4962e4fa0dd59a382d285ac766128b6a80f45991e9d1915fd3e8fc6b90165e4e156c4811155de9f5f451891f23222865714d7eb08307ce3b7e1187520523bc89779bacee1197f4ee96d599abc8ed0f23a02899711625e4660791d71c4bbdb27addd7d738830024e5fbe5fcf7bef8d7c335d30c3bdf7429142e7aa534121a3c91226a922401c9068ea420547f8c03483300a03a5862428265372707224060a6070e2c904c2280aa32c92a07490468c88306241927be2611619b98c6e48b2e405e50a14268a9833aa9ccc39a7e482c5ea5625583204181b8e9e48e2031430349ab2f81acfaf27494ea60f54523f60e202197ce9820552e60f7cdd71c01c20e6e13898a3c4510d465cc03446d1fcaab0184378a1a28a2523a61ba60f31e0a6f2b112913774f9f2848821b43c19e3af6a09add43a55319973de996436b9c20696882a2f22a05025512da1f17aa23d89e167be7cd8f913960e2cd60e93c98fa0090c5f927eb0010c0b54bfe4196906527a0073c58b932a5aec4c2307550eb3e6098cc609b8c3300c0b424910506e1784917baf4c0c6590818a810b20c838c5000b23cba2c510b398a2061f3704a30208268098c1bdf75e1b6c70d9228b286890a4071b7a00e20803c288060577062a1b8a907ea84275a4338267d084e4c40d5e70a484134a8abe283203c3300ca3474ea002c51048621c3143063c146529d2412d821529155da19281c6f34b88256384b0c1bb4eb5bab9f6de21d1de7b5f42c0f0f75e55914e6583cac6f32b081efcf6fc0a228b0f3b6fb2521959ad58aa1958ac1d1e051ad000059227a0808196163bab706019428327905051658c0e2c161122447866eb56ff8ad42a850a8620562b29552e1c9c186bb052c5b05ab122a61ad275cfaf1f9878c7bed70f53884cd50b734ccdf3eb07275f9f5f3f28b12ec42babfe84d888db988fdddd3fbe732d723d30acbbdbbd970f605e3e209982c5911793a5d79229a92f2dc42348346e8dfd5afb854058777a767a964aa7b355b00496d4184d4d4d4d4d4d4d4d4d4d4d4d4d4d4d4d4d4d4d4d4d4d4d4d4d4d4d4d4d4d4d4d4da931524daf265a5261bc9640498191222305460a4c2a0c97a452f44dee52bc5d7c8e8dd65d626e459ff706cc333ba7bd372d6e96067b498c2e8c4c4bdf41e6b773aa874ec615c5ab07a497121568a7d412a925524ba4bca4bc748acb93170f499e5f3b4079eda043aa4a8a4baa072f265b669720b524b5842887266ec0050a5e567c21c4bca185baaeb3b606897f9dcb8779e67a0455cc63a4214ccf9c35a1b33ea79c73decc7bbb6ed632a4941868d087ff5e5ae566b55a3186e2219dfabdb4a9ad3de96ca50ef503c3e2cf19b4d2aa4395d64ad408dd5dad68a573529e2c5740bbbb99b15bb1696bb593ca6fd2d9524ed952baaeb34e512aac6a6aedac656614c6485aa99c93ceba444a796fbdaa132a85063becf6cecc386cbb71521a3ba5225a69cf3c6231ccf6c0543228131aece6bc97bb5c6d3da3844631a0c12e9c7f6fb575525ae984c16446add01d979873ce792f4a030dfa703ba5d5da7ae3663dfa9c35ced9f40b2786d16aeba4b4cea4465520c3b42ccbb0ad41332616294575a041cddbdbe7adb5c6f73ae954723eaa67dfbc5da582b69414a5c2a4d3b5cbf598b5b677d6da681dc3acb591cae8734e9e74f67063b17e91527a86021bec1a9c7332563d9e714e1aa5bc9366c90109cea1c98a09e93463440169b06b90483af550a8b919b7f95d798f9e5f49c2fcf32bc92b49d1f34b0723bf7a7e25617aadb79694ce3985e49413c592fb9b52b49ef5669b4cc71c917841a2458cb1250d923927ad3588b0d65e8c86892ccb326dcbaae0384ee654b3e8baae43cdcc68914aa5522a1a2f1334d1d0d0d0d458cd186a361b366cd8a8b141c97063bbe17adcdcdc703ef1061714c77cf4d899e397095c1f1f7b7ee1a004c716bd170e40d000226987213a28799d9410816118d6052113a58b112b66e8f2820d6800a364c8bdd7060d4444dc108549982e6614399a33f040050f5ee4b09920070f527840ca21093cc0f30bc9099ee6f9854409142da41f6d7afa9f7a3dfd92461b1fcfa5d07de4e8779144e0a1230a114410a177248fb4020a2caa7045d1428a56fb8a79889228e1c00a0e2b50a205575aedce3c444c9cf8e00c2c456028c249ab1d649e08d04003248ee0e0062d28a3a565f28efaecd45e0c673a83d235ef8641e999b76215830c4ac9dcefe337ab57f5d27757caa0310e0f06a0ba549c892d29879bd6cdf5e0b27f017b00ebf4365fab1b23c0008cf3dc391c004e00e6ec21f08e8bea542a2fa1049b99148f6d2b810125a46cac8d4d1b913b33dfe6a184fa4f3c5cc2c965be70e8675c47efe8a8e1218bc643d06b3c9cbce3864ba7bce3c6a5d798001b975f08648497cef234e9e948d2491f11740c619df61b2f12619d761b2f16890568aff16cfc587d2158e3a3f9c255d33a039516d5962512581084120aca48c28915b4dae316e651804b8c2a9088b2640a16ad761e0ce89d948c534fa87f4b99a0e36f54e745979292d20f15bce8a4a7c43aed29283a576c2496528c91ca0c5c48b1620bd7122f584c1254aeb88e2881d214feb203122bb8018a962e3eb01524a8708939820692db9c7a6d846a1e338334c8e63ee66f2e157e44252c514b548a51461ebd438b8441460f5e988871a28928071ca078a10b9752d1510a3734717112440e8428630137602106941e6e208613ada206a3d31a9d8c332ab9240fb78c7c885561fb52caccc3bceb49d6913a92728ef41b1e68bc94aefa710a0d462b1189c6972e9deba8b42d1685350b152a120000001000d314000020140a8744029150281826daaefb14000d9094406a4e974743490cc3300a62083286114000310a1040081933345403445a04f33c0c1ee287358498db2ef5793266d3f48fa5cee9e013a9bac27d0d0b27c3107243f447589745d5020edbcb65b57673fa4323511c0c1e8bbd32ebfa2a2936a9f5f23998f9be5dc9ca9df374cf84d1b15702c5aa42b39955f83fe5fc443eac36533b3937676d52dd1f234118c032182a387c96eb0427ada3f169671f24cf85f3718d7f2f84da7740f5c3f9b196202a8fa47178a41308468360cbf00a613fd89c6e14de10d6959b8a80af0680116b508f00f96047b184f075540a9cf9dc7fe6210577ae874d160a75b7275b01ba365568cbcca1876eacfe7cd1ec4ddd422351521f4af412254d1678a12432448b45d9eed4dcca491932e9979906ca3c3c8b3118e60e0d70fccffa8355f61b13b09f9d12d1d424f4d15ffb0cf6add121df60f23719cafea3e22765f623c9f627f7540179cef6022e913b9cca2280110342cb48ae7728abb97b5d9291c8a7139eac6174570a6e5577151e83f7259d9c74acd3f2662d0b9572b4754906dd0ecf87c22e50708d0de20f932fe63b2bfb84eb8c3aee4390ec9e40696aaee828b075250341bd65f47dee5d51967f4f6b48584a362bcc47ea6b5c9657523f5012984bccf0ad608c910f70cdb7722ec7bae0e10b20a3a609c9a3a1458c37c6941656b383496567517927a35a5c8f02291523fc28f87889c40ff67ce7f7e2a557d5b59877ed608781e761ade641da164b39fb8944874d7b90b911625367504a860e4fa21d526ec88dd745b815644852e620bc50aa94e0532e3f1f2cf9657e1f1807271f96ae701c84d8360e277e489edaedfe1197572f6fd1ca3023b89e953b5ee7de79590d56eebb0e9acae82df5e1a47acdbd0095d49d2be1900266280eb50b81f3071ee4819303fa67557dfbeb2b07d83c296e5c519b54bbb6f0b6bde88998ac284f68f5511fdd0f9dc01eca71844958741f72948967a42f0ed97e2d905dbe4596311427dca822744f6f67ee4430175330d6851c8d3a772c297a0507ee58c6963bb5a4d31b745b032a603253a2d7f6a8943326ed47eb78b7badca915109f8c96612ee8f9ccbfdc364a6e7cc4317dcbeff9f9607e427ab067250d391689fcde257094ed789a0848212113b8134811e242ad4d591eaec96d3371f909cad517d568e2425f0ad1a00794697fa0fb9adcab668feaedc2014406f0f9ea9aff94e750268792ca1ac5ea3332f2e5e7d4b32f48b4a16aa2844359f41b31b788eac63ef8c99e3700cd91215251f415d058f319f1b0e362499f7c9666b584cc1972a61ddc070f2c3bbfc7f56f27bf80b9c2bb8b3ae17a229097f9d2f3b42677415913967eaabf941e6e1e69146ef3f8e6b48d42e1db60c56ce98a8e51738b6aa0214dcda2852b1e1aaf84e6e7fd695df16e1b67f63df89367d6971dcd36e6075eb0f0401a3a267a6da4c24dfe06f99ffe84ef0dba5323b9e64e128e4f64b7953f82c3d40f0e7f09ce32f9e345299ee45920a4b81c396321830bba951d9cef80e6c1dcdac2c47697151827de0a8227608b4141fed5f1c230a165fc2c7663fe0c872e02b1829dbb19fec7018be77a1271abc058b2fb89296da1dca0601fbf63a80c0bf3b6ba526dd72a3134e0d9a7197ea83163275e75ae4bc6ac5f4bedb8671fe15268d6a1df12fb1786246c3fec86ae32e1f9ec46606379872de85fc60f1ffe22b9978b084df804626994d97af79d594184b52ede078b61f77fa81f122e797f8d750721b9915f064955eecc6d588a7abd7442df869281d4581dc1013c2f07f0fdb375001903b99e9fa66cb152f952f17a2f0f4c6758ffb3436610749e17c131a0084a73d9904ceb157a975951c49adaa4c322426d2fdc7d8bf043766b4f21a30a68d8a82181eca87f97bd0c8429e7eae0e8c496388c85ab67ac72a825533f4f38319ad2eec8c7754d1338a209a3d2e0606120068da55e635b96004dd889536ba296ed19ccf73474f7cf8313b6a5dbf8313805fd95ff82d830abede56ea079b44ab7bce7ca5458d8077a65102a999712924de101a41668c95809c1c8c63421d8aed98533e305619f413fdafd71abafcfa840b19c417a67d61db44944c266e220e8e0c8c4301d8349ae0175b6eeca9961e74882bf060f55d79a7a55e904a3381bc4906d1a232315f5e27e1825b77d596f039d8430c21a9713cb0f7c2256f612304182b1e45796580a40feb9a00317f69924dd79ffe852a06bfd77d3ff3368c5a012645c1db990ba0ffb222950e506d50f6c9539116ee5a379cd1420a42ed0fd34886dafcbf0dec0750bb003ef4b568fe4b57a1c40316a8e1366ac36af990f8c55f38555ac741b5c5664f594ca22c2519b7afaf6f21e2eaf28f8e513e656618e8ba4fbc3508ceaa84348e5b993f1b10fc2fa65d53f255cc999b5228c682cc25fa243023d8cdeeaf5d068512f9a9b61882245fd45a42fd7f001dc188c880fbfe40b7417001ef12d9f78f2e7824aee5940f199bbfc5cd6f3d4e6017954ae5f4e1d7b40e71ed484c4652b0d3f289b504879d46ca3808b7fe02998e0b50cc2fd06c33f86261ea440b809ce81012d49e2d0d6ecd86cb142d0c4d49659847d8e0db7c2238f949031bb78a316880471c94679dfb260b3a36400ce0d36dec029be9855118bd1de8c2f221ebf979b201242e20b7ff38f4a5af132849863008bbb78473c367b8608eaa0adb0c96d750331219faacb228b69f46dbe17b410c481fe17622dce82761acd2ef213af428036dce4db4411da64b416002695527107760708918df6e0443b543ed05470f8a97dd5d2c79abf5cb9a41458ae386359f210185e4d1af50b10bf286910b554665d2a66783abd025ce6dd0afeb3f74110416685f5f55b5779434d12e89154d17562b7588f8d42745430b0cb62b0cb3c47428f43e52342bb81aa49de95f49fe495e19093954238233d265d66d126107ecdbe47e00621e4ed42ffd7f783fa411b228aa1ac177d1ecc046f4a73275fc5d76240e8c0f608bcd113ed39afd204ddd72b23790c0caec9417a4907d3b1c141bf0e5ef5a87182115408910324bbac99eae7ea4f974c3d553acd43b4f8188c24d75a1af1546fd6a9b2fccaa39171046ee309a2e2aa8c0125328af4ce47afa4c9271dc0912b30b36c8542464e54b691b3cfdac81b40c6d3f4512223d38d00ce50a11d53718c44463c3252e7fdfc58289151e72f9d1b75feecc751195dc1d7f70c293242f39f283d22dc6ec459d939f76d328b3f689fe10e00278b8cb48ec9d79091be9fc1d48945a669e8c2659acb0a276503402f11cb6eb4b1992b32c2fd0538e68539fcac308cdbabc1a4bfd862158dde0518dbf2e32881d163795ef18b9eeef32aea3f07deded25a707913af8a19d1b7183d9672d8c02aab4b9962a7c34cc1f4af3445ab8a541a1942a0bdd36f8e8cb4ed6a26585085457a373b9c0e0858a48d9d93c324ce7d85ce87caf295bb6de3b47b14534f4e133a99ea3b69449a73d4e1622edccb24bc4c10aed4bca2bcc5e76275456a6f51f7d31b3a705b29595ec027fe0e57d935fec3af748deff1283d0deef895b9467bb0e1fe95ffc63bba4aa7e1399cf2dff80eaf926bfc475ed91ad68361930efa0dbd57b9fc8468efdcddef5ee9d16959b12158b959482fcddeb6c62533c96a776ba527f8901c07b76fd7a076f3c5e9622f1d4773926f5a0655665c9c4b28a5316ad78813af5b6f653341bad923d799d97aafe1cac180e132d9983fdb507191b0be66e6c72ad9e5d038d0278f8336ea1aa2deebea1affe067e235fccc999f1d3ad38e755e641d710a234d5c9c9dd477cb774e2f12b5b046ab78dc6f4bdd3686c39e4ca54f00bb2c133471d349ef7f65a3a7d084eef38fa79b57826803545b577ab1d5cd4313876e859b300deec7a48968c638da5494631c6f3edab80e9811657c874c8c32b6c366d1ac318fc366a3e440bbcb0c329406e9ebdc85f8611f66cca339862366511ecf41b3a8c7edc06414e371643eba311d01266ff4b11df83a3d44180877d9a0296c11f13869f13b07033f18fc647ed4e31c35138d318e9b8be23887cd4719a70326a28cdfb136fba28de110d3e9234e40784b263ed0c3b774b8a50be1484ce503537adfdbd64c705789447d5f3690158475a4f7ee87e2d802750ab8283581551b00ab86cc90abc20d1da340ca9957de6922fd9424efc9c6d5111b05ed59b69d678687b5e4de6d2d05dcd80bbfc1d5c48daa4affab797e5ab40df4804b1ca463ae9dfc63313c241c7dbc8d854a4eca23e01f47d127e7f7b65296a5416fda9885ce48d114f27ad026efb91f2c966c01f28737386b2f46b6cd9b5aea7454df5e5667119751ddea298583388f0dacad8b5acb5617864767bd9a7b2839dabdedf1fcbf571c5d93cca58823df18503499f90abea8a41d1be00cdd5060aaec07e5aff3b29b8753a1d5161b363b0878fb23a96b1f5ab3e12200cd09258de88faafefa07a1dc8da5274bd7de4110f7c30a51d2fb2c3809d791f9e2102ed408fb15689fb4997ff7088ae7ebc84215447c809b06f4ffb6c2f2cfc8c2f5552233e41bff26961d79b5c198b8fcd8497df459caaba1718ba04d8ff91aafa0d2aa989250b5e06946f6a31d7928241e5ecc089371372bdf7b02e7f32a58fa5486f0200000ad839c6ff834e5142b18cc22838d314c43b87b6de9a1e5e40ba1095793251e511e481905420ceae168631e63ec373bcdb77eb32101c0b00a83bafe57b28847ae0fb0db1ecd66b697b00d1ca9352d40dce5be33679f86ba977219b2eda62119463e564acd16cf14624fe3f2bd26974d84a5187d1d4fc8d06f08f8e27f48beae5388b2a7020e7b6556fef95e051b5933b149a0d546b3201c7681323be81316578f740261bd117978f35945f2e6f25aa8281531027ec8055b08f228dc6c5b38011393f3985e8cf0bd07ed155f22861301e8a7cd67e92cced9a8b08027b5edb3a63b456b1ccf116bbb2ab9206a96f62715c99ef28c867972f0e2cd1a01ea87dac4f69b95a4e6a2b57c027b0c9416fc6d7e2a4e584688aacee56781572438cbb441345628dc6e99b860fcb559f76409ca6bbc82968e67684db412b4341950b2a8e6f6b59501be182e72508635d73b2e28272e5a1f152b798383e11e4934de179933304c2f2d3b2659d001db58795039545785560496bbd01935842435ae57d9b971699d765a0484aec18a05c0f27ba9893a0c14c1d7f310cee030a118d0419d6ba9635739532d071febe662c2b50acb63b832c73a6e1506f12175fdbda28a96bd24e048732a9425b2123213382dfb501a9467e90689b6a2f70c82a9b85af1665df16e093c42ff51780c7ff757b017e7be0cf9973a806058bd09906a7ffba130816755a42f0fdd48150de93b36ca4041c04e54d65894183b52a9534aa4848e5e0614632f713c5f883a7ccb79657fd999297b1d42a38d179c123274dfcc9d13bbcc26db9831ededeaeb0c97c1bc09547945cb4146e5f9d60d6b983dfc8a7a9ad9c6debcdaead240f212f1984b53aaba6a7c6c1624b0d61f416ee44c0bc1e5db488ef60b4f53b900bcda9c82ce66d14891b676e43539f3a95ad70442fb1cff014d3c053c1667bb4008893c1043ffea4b03c3a4ebdcb1ae7f75b397b8bf867aac36c7cae813290a1e173f8a3bf7ffe3fc69f32bd1f1e0efc25a7bad9601a2c5ce53a457c2f79d3534c04d46cf4cd16bbc2b95d7368f5a7c11b6fbcf597a7f6e95055fd015d2a2a1c68e25e4a060795d9d2b3b993b28ee56b8be2188d78a2ac9dd8d54f4dc247a206fcddc6910bedbbd8665ea8d069516b0dfaa32e7ccaa0a0c17add8fedb38c31e5574715a2f3e5cd2832d355f7dae50d0a6fe9814f78248880b009502a99616a1c8c475a65d2b0f6ad1a0d3684fe5e0c5fb6441a5dda5c9b6346b44ed25b03de58c507f3956fb02ac241155413b78d0d3c0f54137643909510739be38a962f926084b0b01522aa35781a83e84f70f89677f2a26653a05c00575b437a875cf311d5514b00831e52ca8b7a7e598505f631f34c333338edecfebe6f041b98f69675900d45619e0269b59af076d2a3485ba4d461817d6f5c716868e49cc51e661222913bbcd2713f7763b5bcb35d7713bdc2646db90ab285cb49d58e5aeed345a6d8d59740439f44e12000be562fb0c51ea16103864b0a179417b7f7949ec7463f5640d5f4d5a46f81ae314a49b6bca2c31a354c42a3e1ec1eb8f1cc149064196c97426826f3047122386c8ebaaf8b2abbb9b236778e818dcb6d79cf5b3bd158e1e80ac7369c2acde02121e66d889bb7be48cd678ae8a74ecb95dcde35c1d79b8e9ccb35432b2ad91f07045573467ad7f6bd0936b64fca298f3e91b703e5074a8a992de7836cc6c9235a40107482430ad9c30719c7183867657827090ef041e2290862dabdd63d44248c50906dd67e1bd2bb2d5e25002ba742e268f4a900e0314357c40cb8913b571381fc5b3df696328c142a131ab8fa45a94a2e06a93bfb62a1c31714dee7f2c30031f1c889ad167f9aa77eacfb7303b641c1e57a1b65c02082c4a41ebbb02fb1b240d33cf4ecf9330ccb8609023314d789ac024100b06a85f524e074c7af2f84c1f6644a613ac59192b111fdd3ab27e6d468222ebb88ead33754e9dd5e975acebc83501d4790510c5ef5ecbc5c01dd8b081f87cd3730146bf76f8f94e478e2adc22ef43e823213a6cd307b97ca8f27336ec688c09898f59855d9d53167d7118ea7c356d6029f395455f767ed343c61f94a6751815244a56e945ca08a5d606478d8a00b81aa6d8c01226057b19ecd7e0381b2bb80b57855f16fe79bb445f0a5ec050662b53e1522b30cc8a75253683a8b40251212240641f46b50d8d2a2e7000be64e3df4a5cece9df2c6f5ed1b40f9741e9bf0763af845c6ea142b26f64d8ea85e596c55eab7d66cab97be7dc3cbb9044ecef97191a11df0f2ca08995148745ca9c4385b8e2dbca9bde60119695daccdc1246f7ffd5aaf27a24c2be76b791b52584e1934470149f30010f09fe0e00f453d288ef327b26c0a7e5f1c857efb4d94d776ebad3987702f822e07398285ffb5b781eef65b84f86675a0e42849e41dc86999d9925d2c5cda8d1eda336981159b1b8b8a179da2ece6a9f1290f50b49cb1173c955f33d11e91d0e3e28943b1f0f42cbd0a592abe87773e72133df574f8619a1c89cb34c779061c2b6d396951063a58faeaf4a0ddd84a8ef1e978953dddae162470416cd81456431b6131d1f41d866438bb57143570ce9d9d83f1a1d729fb8e56549f97a99eadfce35ee8c17d2d3419383a9119c8326a8e204dc65d642db2842ffd02244b8b651cf1ef7c042fe1416213ede84a7d3fd58a34257993e65fb05058238c16edd69530a56721f77f3385c749645f91037c1d51ea4cbd0c27da745e815f760621c79649dcdc05437ab246bc12ff154389144bd8707ade87311ed09bbbc98955fcfad7cd0c43e20062024b9416e6f0acb64c7f670616056da7181d022198e4841bd8a07c8f1b13fe5e9b3089902f3873d5e10b410d4efe537cc701fbca11cf5a42d552862bbb01d4cb4ff8a473efc4f37f20348616f062f427ea5e44ca8f813652e178efe9c73014bdebb7a8b22c2a1af23cf21a252d170673f7cb2a2037c509eae537495cec997b8c7edd2d16956a2210fa6c7e9eacfd3ac9f70ffc8c282c0d2c645705bcea406be3072d4e8a7752f1d74e141ee3ab1d41333ef42d2f7c1625d1dd6041dee00d1b7aea1224820e3b32325f33028ccac4b2ee4e91a8dcd78c8763ef2de4d7731917c87272cd6e2868e0bc4c90d8fc3dd01d8143f2caa5438fa8242eff2054a7cb51648065ead0bb497add9b95885c15c4d1ecdd954957c85e861cba57e7dfdd914f1f03c507c39344f0215618a639dc9b663e7e638c5366fceef2bddf74278eeb92ba3c30eecc8afa3d8ee09cb4bc4c4968fafb5654e342be5b0e62f69bab429513efe5413fe7681cb32827767490d6e1bb4946aca02eda3b0efbbc2aa62020b877e322065295ee049574d59b71f01b0e4d8e4ff1c58b8ef4ecaf3a137d5c2aeaac69079bff7181be9d4a3b10aa9e9e5c245092e995296b0770f08b8f08a52f949ed155e8f3b876f5e8457e1de9614c2a066df1fa1ef96f2dd49730394081a97d128ab493469c6c6cd68f95df87944341cd1e17046509f2eb90d3761085314a873d64498b8dc3c3eba1fa51b6ad62b1c6315ce93f0d2f9c1d8f6160bbc6801066ed765a7045f4a33ae9a04ae223c9778396d85d39aa8fc8f3b6c51a84a1173a8c5abeb7a376862b07b54083d38c12097276a0ba738ab799b4076e553b0490cf160b291abe0af05ce83150c00a49c66662956110b6a575e14e51ee5952ecacbca28ef5acf2445e1ae49191e99b17c9639b26abeb59be0b9cc1d79fe50bd657dfa19807bd6ffa6e98e199ff7a6e23feda38ba925388da01aedd6000de4b65ea5db78ad7e3b27fa438baedbd98c7ccc1863aa30369a4c9f14b736d474e9f80a6c45d3e88b85abb0eaa0bceb94760f6fa04a6b064644cf855e6577862529673829b93032b55c5c65e25977f71f11d3f87655398266a44134e89f486061d4e6b408e15a97bab1c77209d0323f04d9c9d711ba1d28008d7804f88ef081cc5c5841292bc88ddf8a6d897de82a55f938b898e4a515b42f7970f13ff260b8e539a54ecfa624ea4a8c2ec1534ec00cfbd09c723c60ab8de78e3f2d0e39317957190f8de478e0b6d2a739bee858f6f55d65300ce598db0f2b541114ff57c6bb4a61d4007d7bac70f678900b2ef119535c1592b810df74551fe4aa2e22b302ca22d3b5c7c64d17fb97a317faa0ab0e3587582cc04aa945e7a3a906a9243ab844fe42ffb889d037c34e5f497a385d6e4461b9afaae8bf03625d946b4e8aa4f1c1736b5cd6de193aa37a06ae7e4f5c934186d6bcd21895c6bd114294a04c6bf2d0b64b52f237c668171c86b859cdc1207f557231b2e8f24c3710b2e2ca28253c1e8643532fe22b5a64ac7671d4384b199835371df124603c321bb9a00ad91e2655a627c5ba5fd48a7f87b7b1eee12865829ee8d0cfcb94932cb5cbc4d820242f05034aa281295ae89aa6174c96c4869bc8391001f4e9028a212ca2fd440d2574283f81a06cda854a3fd6a45863fabb0e70a4e8f63828c38ad9b8391e11c1ad01ea23819041664b882e1f51e8dcf8a4afeaf531dae637ab75356e4ceaa6c705292331f106ebd5b853c966640283025b39ce808ae5734d9d29b03e95195b82d591f7d515650ebb0e1f82b9a37bd681f5caf8bc50627ae17858bea5673caea7b7ff0213cb2203bef568916c4145fca543c8bbb4bff756573a99c92e6eed047862fcca742863e201aefd0b71e9d5ebdd50e590cacc536246d78c0dd10aa343682cd0bf630f3a1f52b861fe5243fde480513a625ff32478c1f34864c019f44134aec444af7aa6dabcf0a3a41b008f34c2ca79c383309258b8603892617381581a39dc012f028f83b0fd003bdec556b302924ee6ce0e0c4912a56da6d3151d270331e81a19de5fd1fd241383afa15c8b6ccfd3a979bc21021ad84d44aaa5e43d345e8bd8c51fd861a8b8cfb955cd8019eff9ecd5cbde8d28f2432054903e8a2dc7d3a20062e60bd31c6ce93da7dac27c1d4e8235d6dd2a650937b43d312b0a064b87d4e5809f4a6a235575890e0b8530908a0fbd9616a3ce558a20c3fa9bdc3ac38784b95a8377b7fcc0b1501d5715f08834af2f4177aef75a8a7a6e9d4e999475f9ed3e18fc345f4b43d0d923da3359dee309687d59eab6faafa54ccf82dc6e575789cd6e035baadb1b42f55fdf60ec426d574a6b9691310f096ce92c87d966323807033c1ccbd677a9d491009243c988281a73ba548c9609d22c65424c45435bff0d989f540841916cda246460d202380a1919436e0da079604bf3a67c82e982ae8668387d94ade5d82c440f864644ee3f06b6946999f1f830a85f4b0d8d456e8e8519483dca40d458daf467afa592b9854ecaa52c0db85ceb342894d29827665033a127c96e1070b6d56b69a6e222f2fcc36bdcfe5f7a2d0d026e21fca342efa2596b412a4818ee16bd0a67c250bbcdc485a9d7d249352b2fdb8c4307c090bda4a12bfd58d10793ae9089907a2db5bafe542c5a238b5e4b8b57284b557d3b46e61e6122c3d8f9d72ce56a50522cfb72eb31298e8be94cdd9f1c6811b102582438f2fda8adc7627a887a2d95b63046462401a9b3472b0b33839eda0a8e20596741a71ebe0e1ac1fac2d5ad60cc709d39ae031341043210860932362768b05bb263280cc7b5b4bc350f5d690f8ac2b2bad43431c9f4985f83ebaf95aea38e042628a9e23bc56b69919b90b36a192dcc5cc4b72cf26f44591a734507afb999696c1611801988be336e15ca8c277bc89ced923ef844e874c34491e1156c62774bcab6c6cf1be9e2098cfe13381776fa438647c44aa70452d48b8289d7d2d29f0c210834eb5ab92fadd2decb575ab9416e6cc825a58b326a24d987d1336e7a63ab561f7d391af95b458348f078d23c6f75994f02afa592bcc21639bbd6d7502caabb62e81181df05e8c76b8c406ea9e56aed7758428b9071d52499569c702970c4b6bfdc1ade2d2d351848f93a06b0171ef263f844249f26df0129d24623589473ec006bfb02122e1d20b7d848d31cfb89bf8d4d7f507fb7b4990f90847d65e9146fc273e0b6cd9781d02d358aa9c0a1a81dce9216f25a7ba582b390079332d1a619c510734b998d3b915fe6625e83b5b6e35ba61d07ad6d496de92b75ffb8d96f10ab7766e596cefd76fbe0b7a52f785dfc39ae097c2cdc36863752e596facc62c38c3b7652bbd9109afbec6294cd17bad27e30df7dd9087d08bd2809766a9781c985431144c3beaae0ecfd899558d04964284eebed33696705aa8713545453ca70875937f29c986dfa2be368165060ddfc17f6462ddda3bcf877f1b72f5a899642f7fbe1cf5ebb61be39852e2d5b0763e68193ee211db7b0923c695736c1bd76c765062d5b7471dfe1cfba40a3244a223a98e721812c5d63c6c4f0b51b3dec2ce286f972517267338c1f008916936fb9a114beafc4a764ce4187f19b741573feabab72defcf8bd89e0546fe8f244be76b9f14bd67ab6e80277edae8e471d49f2b51b5a91703efca7f59c4d1ad71661a98e0f68e9e91640f5b5eb0d4f70fc2763e9c14ff13bed361059f9f0b9555d859066488a53a6bedaf832abbd80844ec85ac546dcab7edb7c56ad7cccba354f43c581be29edab0d5985a1bc578bc0237d821845945c63d39ce3dc69a52e280b13b213bc5651607a7cb12f7a32b53c56a5bd8eb00729893b2355982193e611345e6c8fc79dd804e4501fd62629099ed8416b5d4145aea1a6cae02c4c7bf10dbb1a26c7fe3535b94dd3eaef880e85710d0ad18977298844710ad23a1349dc3a2d3dc8713bc065f2a7e6e8652e8e172d7bc05342f6ec5e7cd90e459325f38878db787b5b60097be028983bae5b668db448b5071198cb42617b1e2118160eaeedea2378bbe6c1664a672b4ffdfedfd992a5bdc39be69242157af1598fbe35ebc74bdef2cf3d749c636240cb641500480af28496052ff4b1172f86897ef25f580c86a3fa9a581fb5219ae640464c30e7e32a65eb0b266c723c2289c3afddca4630119761b941e5f4a7ab28e26b21a95843e010c251556bb7fff0f0258de703b56d12d3356b1ef4993fa709ab86edec48b9bcc5d4d057054c2327e6bc03514929e582116002356069ac3ec2baa620b38d60ab49f6dccfb04a94e8174d481cdaff0d5b900c199462d9dba5468567f23907f7b7d90980e659616c3e7110aa2e13ccb9224080bac0cda9ec6dd1a630cff397451e5cf17748f2ea16d8e93e4cf839bf015b5d504f3b57e3785e0fb1bbf026951511a0c6d373d14dc022c36f3fdb96c8bce069210b12ef3572392e6f305872830f4fce3c06f1d8e2de288f12ac85477616158c4e7d8cc875f7d99674de1ae1c6883e28207431b9577824cad219d27866e8ee06aada1114bd4ad599ec811730a494370c2f18187e4a1fb0a684a59aa2ae7e871333a6ff64f5db8142116dad6e9d7b0be7e761b6054d6938424bd110befee6743909b9d301a14e4982b2d299ac459679a77569f5c64c0f5f23e935398907b966c34589248cc1c4b68db744ca0c683da1b585fc8648507abc7e07e790a70f0f54d986f0c89dbdbd74d4dbeb9260ef7b9e649f26d51fa8343f0af2c2d79a57e2f18327a7ea02438ec04ddf3de23ec7b76393097aeeded9bde3c468cb1a74ba848e97514248481eb2d3a89136847abdb47246787202ce89bb36360167353b42bda449debd3e2a02d10d61a7f55f56898e2641567cf5581efe94fee0bbaff7332ea39a81cdcd4210159fc55d57f8daaae082bb3ca6a7c2bb7c2fc561a0bc08905371c10fc0a430ad3f3f2497a29ef9f4d7f1e835ad9ff31650019241f29b9cb7fe905654833828a12863554c6c2cefe931dd02ab84984572a08e010af963f6c2dd5c4d49603cda4036b3fb1d40d6291183a5991e61285b93ffc18c5cc18e83abeb7c3d12cb103ee50c4b22b23ae0c833ffb2a3d3ce0764163db187164575d4c90a675ad1d31b2e6e2643e87179bedd927a74171c32be03fb437338bd801048e9da72f5af318b52279e94928413f97ddaced1089825cc552de32e34409ae5fba6020d1e88769596febdb1aec2a686e7553ac1aa42d22e6f3c6c7e7618424fd0f4353ab9191d878a274c2763d6d121870ca81bb64cd877ce656fa778b6a0044dce5c9a507a19d217ed706d99e25f51ca25260c659942f01c0d2866adfa9e99b275a70229204292c62dd532b483b644d0dd8c5f1804246cdcbe99980870f97afaa32815b7b0a4fbb0948a048d59f35fdf2a3db0e97cf1ba3c5ad23ea4c8418521bb9da5c3a612c4544e6cd2c47373df9e5b10dcc44987fdc8709c25e789132af86f8ff93935569088e364e582c7e175f18091591c2ef1557984358e9ed6560523b3c424c42c313b2968116bdc9f82c181dd0eeaa4c0199bc74b4bbabfa9dcdf01b8340b9d023926e64dd68569611732a5155561cd73223debbbae11855846c48855fde0d0863224c71c9f4e18694371d485523233a717b3957ac2d52bd11b2823f026b023c7893628cb716b0fc4f20d11adf14c8c1aab80c9c066731ffb8e22a61da26d105e4bc1a73add08d7233e7812d94632946939a321510b1cd19ba45b570df10f41dfc0f0904211fed88f1bb08514a2c4a1b57821f78307e08262753c74bccf67e934c076e593fd001600931aef5127cb60beb42bcbef9e36035ac2553691e54e44c7668427c996a4d68a2296440825dd052ae9214579c6906c774b86bad5d3eda908ac4443080f013ed0efebe7d0f20f54681b6e52153cc7692b28db82fb38d4e8b168b90aa10274668274a3e4c9cf59a91f20f891111ada7c318bbfa86feeb7ffaa5db2b0dbfd328c3d453f92a63715ce6a03dc0a2c6e4fa366e1428298a75b0046b35117d6a73d59b95b1e9a6463eabe9150388ad4f16511ee80846461ae56d58a1dd9ba333cd7e5204c7637bc02eb81d86e5292af50472b13cd10e0bcc3b87ee3cf9f8f2884d9ca98603dde60c278573507462a23a862aa26ac798f6d9e27d84026ad1ac73196fdbe0a66a3a48ea2c23b40b306053da06b438a795b2e22b13d111ea2b0a75e17f9d8994e62d3358f1adf9317da0a9a2830d85aaa52fa737b771b77c95efe3cc827d0c9711e3f3bff9bc584fcffcc5e5a14fe58a8b6a27fbe07911bfe23d8875fceacd768ae3ae8cfcef0c9a6427dc0c1bacc2810dfe2d954b45f4cf070cb38d301e0cfa917edcf96c33e8af1aa9e60261a5f5513fcb51cd73a7290557daeacb93129a83ea1c1c176b49c2dcce70dc28bd6eab1b06ef86b5cdd7d21a9105dbe59aefcbd505fbfb9a64c38ad75cbee79fb302ef4af528168d8a056d1c8e55294bf376af7781f1111f7db507ac3a284e0aaa2639e54e3e2bd9a28f4b680ef4ce101a7bf4d876fd6a3b4ff5f047ce7f2c40b7d7714d75c62de0ecc84f21b1deaf8795cb6963b34738c8007887a4ce1828e920bb6b28b885083261f6cf38901fa3514d4294a8de561fb88b21605a1ae047f046504fa5c9f4956a98e9e4179399dea9170b3b7a6c9ae6faa0eb4f998a7dc4c4386a06213141f5b6252be7f0e401b0563039a79c3d6d42bf6cbd334366771665bcf28e6abc051c873243d283d900eb3da8d243d0d285cc220af3eabc465e415b295542745fdcd42b7113cb4c936e2359061ca2e813815d33a04502792ab953e0962daeb32cc3ee6814498aff7b5af7686ff4f3b1a3bc1386daa1b05408597f22a2c0a59c0da0b20cf1456ba32eb7fd850bb64429b8671c19dfdce0b159b0950474e02685eac871d52d60e33d25a7d2cb369587c1b8d147bec2c2b7d6d0e71b45037be9d392df196ccf839e021b3abcdba538efac37574ac56376da4629b5196d44b840e7557bf764b94546cd523fbc0544af4759a7561d8fa651db72c3bd16c59028ca0a5b51b213c696c97eb692e977438259f5cef678e104a09d48cb0a9512e8fe70d26130aa278ffff1906f240b241d6703ad69506441c964d3d63e490fae1aaf418246b5d6764b17e262c563be67588fa57d9f22903056cc6a865af857d228781238b5732647af0635ed133121f710d8b1e1616f1fea05b5ff0112844c18472c262381e6d3661396797ea3f225451fb43f73f76755044bd0180ec40424795c22551bb25b4728b4fc5b176cc20cf341579e4f3153f4cffee1ea18875d76234fa77ee231b20ca8eb8c36bcca8993c5384c72c9ae54f3f83e9d30e3059d8d0f2da08f454217337caec8fa1c0af17b1b3c47e47bd2986b4880332fd4fae05918cca01e12020cac814a069f98fe2e14da14ddfea6be27a282d2bc60671439a12306fd9945fc5a1c31ae4c66049c883bec70a059a42442349cdb4bb406a32d5ec0fe7cbd1d82d8652a85017cee5b0c844dd572bff36eb9b07b04210660524e1ecd90f3d082c8eed4eea446a43ece7e9d024b602f02b689f5a72874ea86f08be1e4a1c85bd662e606559fd059a67942757672b019e518a9157a564b2e9022c68f165229778159249888aa85492e0c651613ca1f4fd4d4e2ec6f48e61e49d8699a21e3aff671e09259785f1689638abe20360f73eb44b4d18831c3298081dee1fcfd80d7309257125dc9c9871bff5c7959ce2d6375346f772429e61f7a7dd7ed8f6f9bf322a9f5e7ab3f67320fcf775429a75af88eb6fdefc3a0e086964d250f770c6505361cc145828dc8e0fc5fec74b8f0859c4b239aafb87e0cef567b8600d7ae36d3ae2f74821f53dfbae5b077120a0af8f74231ef7ef79818a4264297fe8aa8e4fa1822189f2654cd5909041120c3f0b515f6c59cfb856acbdca8e6421c1446c682258d7dd6c70569d82012d604149ca163afbd0582544f3368f25ce6717d3e98a22ef6a52911b64e4c4e65191393914a2bc77c6c2e88e880cf1cd1ceecf5df5d12cfe872aa65fcd8b45d67f33bcf53aea9ff11ed70a6c47fc892bd1fdf370a25ab1666cad6a18d694cc60dd823cb9b37fcc3aaa01301e8f40617e7ab5905b6d0b346442701d64dc254036a1d675768915d0bdbf9a316e89bc063124ba500148623c7f1dc1e7fa31a024444518f2453ec60d3e3718697336de7eef26bdbcd3d18b1dc0d92bd5c72e5e26a790f2641756b7f3ef7c43c3d3eb50475e436ae586e0f0c17e01c349d2e84bbfbcce17fa253f7a3d9f13f87231e3377760473f72ad62a109a4c05a6965950b1857fc1f1c83ab5682ca5d166baf8cf817fcee050ef138974d803462b2f21406df191d06ef7bc3749947f9d3a01bead17444ec79db2951132f0c5cae574d1bf7562fc0ff91fc9f46552714fa8b8530f9d51d03025e9a9112819c65a12992cbf74f5a116684011bd57ce249e6250f13399fcd415d054f65d2346431a0ae7eaf29f91f70ad98e174f77c370d082635ead62ab7188257e43100a73f3761e3fd42a6db23dde509ea58c1cc45014da470da2d0cfd42642ac4cea32e09582e7476589d3c9b1f05ae45b34226b20247ca36c1b3684e1f960d5598fef29cd1e446bbd29e8693313be27f27c7dc851e607ccfe2a83523e2640fc462e8718c46be61a3a0f8eac4d1cf3cac9f1b7d42b20b9dcd69114c16ea75c59e849afdb5f8ac1454e8984b352077f834538ebdd607bad33243dc43627fd56e4b95fef9b0db5012507c70d4cd05c4b0644a4a2989f36c2786bf2e7138ef1d9f4acfd8cd64a5f7c07e0bbba1e3cd2d432db1a7919948e58ac4d02d7f973cb3a1da68bdf339c2822baa3b5542f29b281ef37297f4db23b96bd7f6ca253a28f15af26e302384bfca4039fa89ca0362ea5ab4ed1a082d239a53bca1aa00f8bbc846e07ad0b2223ea04bd492606daa0e0240ac4a45d694f4cff2b98c29b6d5777d49b35f7d8b4248d7533573d2f856077ed7e2af460d0d3f46655d94a4bc8c6e102ff253909429e607c4946d46bf7b2eb1ef718a245b32941e8e94ebaf2d86412c561549ced05ad1a67b47f8799f211515805580d41a384494165e480f052d128f186b930d5c0697d7ac9be852df6098e1fe40d54a8e06b71681d5dd886ed7821f873e609aa2c8d6dc5fee11deac1da18ddefce5d5984d1860fa799985e07a01b7d5d3632c24009863d405ef8b19de4e9214126714f04073f0dab82a5e32d9c084187d16e93db35a6c577e6f1ca96199fa4f209b2dd548e1e7412d2146920937f044ec4e07567aa7f170d3d22382ff2cb0c841bebdf565491e5c3e4421ab5ffd9640d927d10bb14b2a31f8a827f5e29a6a8dbc11381fe26e2651974cd0df383d80b19cb1e922e75cf65dd973476902e6843d9a6766f74ea1f4d0ff67a0a2348c8e10c9f6037d12a087eece0583e9ba7d97d7ec421c97211133364fad0348a38e85054c3ac017f01f4bc7093db2a8828605096473f38d6736e1cf69f781022950f103021495c8e950a97ca7da8bcc93194914006145135a7fbbe28cb2b1c6a0fd5da15899d43113c7d6c641caac053627418fba7954222cfa59f6e87d5edc9b4919c4136c99b8b2c432ccba2a3bf5d626bbbed4d532921763e69659a7171cf8fae2cb30a86458c3eb4fe7651695404e1044dcd55413712cfe80b9d97ab622d5965abee04fa85f99e1ae92af0746ff7b86e2167fafbf18deaadfbc82c41a4211d36c6d079c998b754858cd0d94cdbae933fcae35b5532c2766a5fc14123c0e23cd344c5a28c5f74d683e429cbfe146fca72473a4388da00f95a8a98f74eb5c090f0b6f3b1a4ba2df4f8b8c2c17539957a12bb6be19f80813814b6508515a10a6a00ba0f23644520630541ceeec537f0c2bb2669c598a0f8008cc6aecbcba4d89306cb2a6885e62c75c4d7361f1957ab56c9e8eb042b608b15de00b86a0bfd73050acf7d2e8d23a3be037aee778f5e2ae2a892df36fcd5a41251ef71667ecd336424b48d06fb8f00fa88966c72610813fd84b9c03fff437893241295f87cda2e2803cbd215b29fd23bcd54e3ff86b6a012a5998524bcf9673fabd7a5aae3df6ed660978fca7543b86e35570a1211b938722d17f31f161e344f7be2b522f6c6620ff61e111323fe61d13dee240329e9f7b7576ed01a560086d416ec6f5cc404ce3768d021a1458370405d6d7ff70c13c3d60ba41f21a17de241905acd18b5d28e63fadd37509c18b8361e0fc971be6ed51ee4de2a6adb2a2afacaa43e32933443c6928a24f76eac7fa547232c6828ad01ca8e80e4dfc675085d223c48a0ba7199ff69bdec89f5ad0e734fa032d2b8a4dc63ae16a07add9acf81beda718f5de5487aa84ccde4e300809a0d1f502179566e114c13fdec26cd4eed858387b87b4ad1901382d15db4d30314effa6c63459c8d016314ba4c9ffcdd26cb806415e5efefd32463e7c4d56d0acbe6170f72789e5acbedb8f6d4561fde20f7bb5120225eb4b2ac98d1ba22e7a90dad3d3d012b4daa3699a55bda8db8fddf45e7d4a584bbc111713090f8e830636c6e6007df4c9828cadd93ca2848c9240ae6709518c48bd65148e0e21c654bf6d6751cf23241306ba2283aae3099e9415991affdabf67b1e4bd88495dec3cbc3eb13fd6f2e242ecc56f4e62048bec880174b23040e8e7b52141424f8cb88d5d1f91890c61dbfc4f8d69d9208fbe662b36b0db2dda30a232f2e805c2fd1feba65183998d5b69910e7db7885b7c9de13b9f91f4e3a33b8be723a2d58e18cdc11a54ee506fd83a6c76e1f497e743972d0d78c466c909ee15decb55e24dd4f9d6ca77830885ef1535f79e58d1cfc4e5440338e1fb18c03cdbc24718aee180b2290b545a5b7cedd025f79b955738833f12a7a4a9b7dbbf0996fcb51a0072002eab143f4ba79d44c797c4284ad984e5da2828c9747a94b8d9fc8ee3e5f07f4fc5293bd3d97d39bdc4d71f1708897a389887d5f4f8cc966c60110f3be08b06774fc82b8369bfc9ed7d9a4c20fa5a76290480608137554c86f431f5d4c710df1ee11786d1548451a1d97af93370f81c654be5a84b7c1e085404c91069f03068cd4df29920becf0654c8be5f06ce91337a2b03bf730032d78d6d11c00f93824d5f44de8e2eac15a5ebe40dce76903bb7913071d7ee514f80787e23aa4813d738a1b724079502a8f57339b86febc1ebb29565783951a3f898268e0e1fc098338b924b1ae91dd58cdb9dd24140a0494132a3e0518037ad2631542809e9141cc151dc7e9989c8320d0bccaa07c71990eee5294a0a58d2deef7fc68b66f3876c969c80c55cc86675f96576ad7377abb704a786dc3cfb409db9198001e8b2dc1395a7188d39ab6e5693af8f656f77ef9334ecee14bbf98be763007444de1aa26218b5af1350f23c70f5ab44bfabeef23518cff471684800eef57b22209a094032a073f8a7892275ff77ee27416b325b34dec52a61df73b8b954eda104e4a09d85b08adbde6a01e51375f952c66edc13cffce7991a35469eb33e15edbb5e273d9fca93e3c7d859f7b5c58c18339e14b66d949d257a98f44b6e97b124f5b035864232c8a5c48731f9d73fc45de54e6be314ce1f0d98212816d7bcfa81a6838960f0e3de3fcf7563149dee9a0f335f005e2cd9fd7a6368b80820ce0c09bfa28d25173fbfd8de8224902001022b1c096c67f1e2d807a5a59ed21918470514436ceea27d25bb17f600122e8d7a8628881becc21a9e341db577886a71d17e25727141d4caf76f7d65726d131b2b70d5a765a2a407da2ffb1224b80209d7be72ea4e86636996e712dcd912251710a08cb2a54acdcbe5c45c3146c89eae0462464bc683bb77bb339d89af791ec91680700248df16ffc054722649abff22667f510b3498b73517a251e358bec101146dbe419891f6aea7c261e17d4830d4056b8f7fc4bcd9e2d1cc91d3f1e664ed4ffd613409bf85f39b2e483755f0b0cc922a8656bdc82e374ba54717479f3be3e88f79419d05332ed69910ee2d94daa2dffd3648bbf5793992884db861b7d9835508bd53018957d72c30666e817276315f45c354a8741f6206020cf723f374e9d4ef430ade860f7a5f5ad8f0fb9ce1f0b37253fa6bbb1ca80429346624c6181e14ef307457c6ee03982aaf180b6fb02628c2a70f0e7f124093b346cf84afd7b7d15ad44754493c7ee1fd60f5968051bbb89225b7b6a173955dc1d15f601ccdc87e55bff853a9961cacf9d9889842000aec8ce84b89e901912b38e217b56064341c0d375e49d00495049389581dfbda17020f4403abec0cceb74f960faa1030bcb86653dbd154838384120e4cb211a315ca1da642678a328c351fe0cc6a3b8df7b70871ae2c090f72da838fc4e29daa5e2adad4eee1fafd3eed26782dec9fbc1c01360ca751f7da202e41204858f4f928c55e34bca9a9ff1b408063fbd7044e34ef1491dc0fad3442c7799f0441951bb9d1e79eedcdfe65c1d93829979fb00a2cbc2b9f227f601764a231b8497b79e62285203a2f06b03cfb113ae089ee2eecc2dca0749f705f259e3c9801c03ad5255ab772994a34db5b464b7feb53540abb52ae2abc7fabfa90af04e924b1eac17a6c6e996d6315ec8ebba72a96abaeffc0bf5f1c892f058e1b412e2ecc20c9dfb7cc439099f98f6514e4f4a0d4f4d3720e8e5c7583af8b92da7d4c28800415297d73a5baae81cef339297c4c482b0471e8a7ee74cc10efec988b1b7783b7cb7167eca1dc6f27173e516cbcfc1d4433e7471f00d2bf236e497d28ecfe87ddee8129ebebff21e94d20d9fc29607f1de89f9df991de8aac71b7c872a45fda9c9407117ee36fe119687d862ba9b1d5cd552073247e367b21658ef3ead6dd60b3de67334edbec630815ed6ced8ff2ad3afd2f646a235e470b828ce7276c7f044f6bc9a6b84582232c701907f9cfc2ad37066c5e3ea64ca61671e20fab290a930c08aa0c5acb4061acdb2944d379b1ff41235185708001a4d050ea34d711362548e0881b2e50c7a423e71c09267cbbfde84c5b38319e17b6237ac14f175557bd5c7ffa71e5a7aceaed77700cce76242bab5c676a6bb759ed6c2c217fccdf01168e92b448aa265d09e82ee39589f93e00388ad65712d1d8fda697429a753b99e244e0e64d97ebc010b0d65dfb9b85d5c0bad261d761143fb6633a66edd4bd4e72e16512dbf4195af84eadb689714ea480baae261218ac8f4791479be0f7bacd9aca58f654af31bda89d5e79a4645638deef0d46eb8d0f0d21445eb45b3d815beaef8be9a1b0f5114a6c7ceab2a735a7eed1f62a02456b5aaebfced217d515a55f980c218ecadf0771890e24618b627a91d9d75eae61f5bf3f487bd9a68d0119864d6fe7eefe449fd07394187340433baf4e262ce571ba5d1852e0491b330f8a907648192e31c09fda2dae4d1b24d63cf666c0774698a4b9aafd84fff2670f83dd1992669d6cc5443f993745981992e837d2c59fe661ef77b94f2025f8c2f449957123c343a567e8275304ebe58d36a0c69e7c9070d14c0edb5db66c2e8a549ff8db1a64d67d32d18c82b8ccbd3b7597deb4ea29589208ecaaad40c30f167aace242bc8356704d0d3b775a66ecd640ff0f94fd772fb7fd0beb742561a158e79f6586b329da65b2e6f8e2102e6b64f2d4d5a6605184b6be2b857ea6e45515d17344780f2ea291b471d4b8c05ae21533cf0699b1b030e3892e7596b370127ed65d1ebf80fe47fc3baaef240a61af0bd5131836d4de92007311dd6b0cb10d92e2b05c6c943fcae9792a3e70d58eab19a89e206086f13f808a963fd3f4ada42b0cc3d50066e66b9a1393f89741df8e30251811d7215044dc45c23f780aa6d0c4271463108150c3c69aad4a97618cbe9917e2e82e29d2f57703b902888240ea38a2ab6abcfceb1984c2c3625d1ea8283a7c194a17a71319a5cd7efb313665cac0baa5fc91aac3dd8906db85b5084c9bba32f91ae8921a929ed9eb0a5f3470e0242f70a5abdd26017ede3c92ce3870252a361206324aeb1603daf016464270e5a0c8b9f63b46725cbd9ce8b20bcf317924ecf098a7fbb47c765ac9d745c64ac719691f13b32c1e50b8493f0b24ea616017063289b4344001c61573ead0ba550a9f3310d8c5a2ab64a7fc41ef9f1d2f269c1ceb2f47302cad0d9939db26a11db7cd4ca17bea6c28ee1bfa0a2cd88e1ed868013268fcd697f818a5f5b361957df573f7a935fa82023ac9e30c2c5d218edc72b9863e89fa0a083c30e2846fce84d59ca5aeed217e7ae524b29c0eb6af3b07a81366c090f614e197e19f5f47237f056f84a596ac13d9e6e307c9b1954be0bfcc1a78c5a78de4da327023463d71707929592a3d35143dc849972fc9dd6017533939a40d740270a5321566e666cc20f3532a86a8200e8cbc4babbeceb300d2434f3c525cc41fa8d49d5064c0815a94e247a2b4cc28dbded8ea078e2ea85a44507228d2fe1a7fd862c173662ae4a3b5b1f9d05276d2abd118c9f3848b9193bf9cbbbc1997eed5ba98bd924990a4a56048246e057505cf84a3684f9bd661338ea81fec30d50be4ccf1b36f4ba3841d3285d691a8178652020dc3006a87a16c1088617c3d62f86a96920e045a78883c16538e7448b35abbdc17d147551c2bd4022f84e92149234976e610d5ae032ef3148384ff9196dd9ec7457b3b5cda904206ac3bc376842a52764c156d850405557d43ea0b1b5b3a1940610b82a9c05e2ee4daab7884d18b60617ed010742fc479c49ac338c729c19c86f0517e1e3c68d4faf08cbec1eec372b136de459b61a525901833899c14ccf27b5705303f6f49e79e94f740dde241973179f479cd351bb701a8cf044bc2f9bf57f468806555b38c9e55eefd437acc8b1cd9b2ecfd9ba2f46f77fa7378e218256ad2e9ad40f509430220ecc6ab6f675cd1c28fef0e8c99d5f63dfc291527724786d1cac26b68ba629e917a7cdb7398a754632fe540b07d1d490c233f4a20896faedcd07d0e69565cc281962f3e6b05486000cec5d4132e809b3e759b547e0a005557aeb09d5e87727d812a797aac86953d71ecacf29730dc3cb24f408c9bb6970f168cdd9e63c0969c80babcb1e808da469069c6a5e1ee015987f04abd7417df1633afc9d0df47f9e563783d0d4e69ff43f36613fee40eaa1f8b5649b756673c59707e316f51fd378694391a746a22c72c401ba6b2445bab824f00f69dc9de8e7b8ba115d80e8f4029d8d8c6a7ecc94daf5924761f0fc00921fd6dd492ec52d21e85205c2dfda72ed09acab46db2422a94711989b394dae81c2e604633e1028de65e01a12fdd6b5e2e4f2c1e58e22c0304c45b9a9490e12b43381a32a25b4f34cc87ceed2621fb45923420193481fbd050ac93eda9982fd0fcce1b332c88041fd41e88859f04520e6bc78b63120629a0e3a5f9ed1702587b00071480242e44a007e911d3056e271bcafd03cb94146bba9c5ded8b29711af054d402e023feff6bb498ca1324c01bc223e859a988b3e21f1d9ad1bd8a7b8b82593240f0464641a6a586b9d2d4c93a2f47752ace9e2ad5b0298e33c4bf96f208045c00e3e8b63b6ea41efe851070f99b65e375e9d0f4975f3bd4d22baf4f2e1f8bda2371964bf0cdb724cd7a8c4a1a5157c2e8254d72d92c7b6adb48d5ce64a6f21b335541930abb681f9529118196047276f3a876e1b9c2a50912d2f3ab3471ccc30762bf0c3f0c9cfb52a57878ddcf2494813ccbfb0fcfc1fef336feced1abf5a1acf791fd69948d8f9c2dfaa41e621726306ce04a8e5b16e43cfd1aace7fd45730f14d324417c7c40fcee22240308ecd8c065f5dab86ab83b645a56f5666d209469086fa570ca3eb2e3ab4c947d69dd44ed13fa55aecd71a692c978642628c3b5424bba500ffcf28cb721fcff08fe8c573dd97164dfcc3048207f66e872e0d6b2fc8e013d789631e3505a5ba684311c1439bdbc2c4ad852b4cc0ce91fe6302d9329321aaebd480e4faf2539b7f11a569396f56aee7c6a8825501af023694dede57f995809fcfac82c9ca21edffe009a8ea344574f778000fa28f429778e8ced69fc830e0b0c73b760dd1909ec36ce2e9856ab43eb38f6d954f15d567fa7b62bf8622c57871d73f23d0a647420e548eed81849c1b1815b40fbdecaf095d57d5956ed28a159c5497790de88b69f78b51bc63034b15515f94128bc9133b3c687123cfad3f80103710d22be745193d1e32acfe6803fbf7d014219cfea985683d69d57b2b90abc55eb7ef64214f3155b37f253138535a6e2a7c2e8a22f6e22f4fa1659e4be99dbf4e97225acc60944b48b37ea7e55953eea273ca895f7b1b6fe2176ea71d73fd8529e6799e0e9b1937d4654e77bf1dd2e18d7f2b3ef644b23517bb34cad048aa2ba3d27faa725d5ba1fa008fdb272f77913b6f43a789210ca5c7980969eeebc18de0cb23369fe57f1ef99ede6ccbd342022652a159e1211bd0fbf10c931997fe18decac6bde0979fbf17a6c94675e586483a0fcdd535dde3bca7a19a0c9dddffb0617927b7ff28a6f619c4388ad19549063376292146df6f4203f8031c9897794b1381e44a822f180722c2781f40aeb4e61759582f42636667af96682ee9ad994f73475cd5a95230fe502488d9ecf5853416b1eb223e5b5d959778c7e3e7c049787f32f3d2955269cc210dc5a7b5ce683118566106985882e5bd62a6efca0e2f27b229e0b0e75508d46c6293ba9b2d79b6894ecc5a7b1954650a5cf53c4c309a3cee3c3df3099ebd80441bf4bcb69a824e0bc60c9bdfff28e6173ab5da911e7c4d15eac1effe81c0e1b570a50b5f7f432f48124a1a6016044ce33d511c292452f9d508c8f72ed044b46c4dde9dc52f4549d944d620c03a3887596c6b4f5fc261082498f595e0de231bc61cd9e989a1948721da1e589345a5698981ed959d0ef7cf811dbb740b07475bc5d1d2beb3bd20c6928e68772dce4ea5dc38f2048f8c149c3195a83020a1570317978afd6c8f3b65d432448b23b0e67c3642f29ed9acb145108eec8f87e831d324cd8e07bb790540c5f3b3001b8b60d38cdfb8da403b1de387584e1d537c8d03c2eda837b0eee7086aad26097f0964ee4f7ed84c48acb6f6b5a1a17f2a4e65a93bc42d4f210843166644366baed011bc4ebce8f39c23e026fe141d792ae41b7e087492883983a4ce6fa9592a92b01c7589e8d5c0d26e8e017f983dabfa9aa54b033f986cb2561b7a9f1bbd28ce7030fe21670335dbb18538fc569a6d8c26612953001d9ff1d7f2796777203f1a701eaea00b3171697a13768a44dc14c0a339df20c124717343169742eb56f25489515f0729c4c99cee8f64f9f48eb95af8e9d1aade340dfa47489958400e2830b0951d5c6d4cda29da882841c04437ad833d97d82f146a9f365a44df1f0a5cff66cf72f3482f76691676a3542be3b0dc791ca4a39df39e96e29e872689bde07f2d001c5bef8247927d9d487ace8156a43054a74abe1e4ee8d19c46e918ab6119ee5bb1727a8cb47ca37dc5d36050f999040a95bc1702594d554fa684c28d6677f366d4e777e3751fbb9662fef840a7eac45bee1962fe085b6cd5705bd7c6f003494950a32a183a8d9ee4bc4a4702a0d5648fc6e9bff9d2ca30301349497d0c2461721db9542a5bfe825015d8e5ba259cb06266581f94896e532ff3fb8e87c76c81b42bbf3d94af92b36b460cd92c0e791c95d996ebeb32a9672f283099484623afac60f73a0ede4e256a1dc6df6e5a8e741a1876324a2e22254a2d6f2b724b86929335c7089f3ca9d17037a6d836d69c9b5a8a4aca0b4edfda9892b962d807cea1c439324c1bb8959fec5732666fd7a5f7b69eb19443d7ba11ab62ede751ee155a2a218f30cf13718faa0eef3f538e2f33f4890616225652b305bf4430eb3b31efb0794c7c0090653df6c3ec8f22e1bcfa128d927277c35f5b330e229826f766ef93a14ce2b3c306a6239339c2151384444d19437067c47ab0b8f09e2dffcc31daed5e0247cede14db87a48f9b82ff8acb14307554e67c3bc0cb0d7c9d1d97b4e657a6d11ab00f3d3867f93daddc659048f90b8bb9365a79ee05001ec5369fb6d00dbfec7db0d0ae1e559e2bf4a29f4f19eea507ce1110948c1e9bbc396c30055a3673899593bf27a69e9b8bd12e4148989af1add1ef9972dbaf3c19b3dc9f616f36dfcd34d0dca143ecc923cc16ee05f5c5861d8ffe89892f450d2927fa62b416273b7987a361ba3739bb1477d528d21abf98cb0a8467476d0756fce2b3e40c8d2ccc285f67b299d7d46f228040c32f304c688d01c67e0cae4b5786f0ca5aa52e6f312d0ee9a15feea3d290dc2ad59c97f3db39220dd1b58291bb99610f2fc34f4ff44f56ac3e3a65184572d1d4cf206e8e9ab6726231b6330328a6883c9618645ca3bf06cd2cebff10391117178203e6b3d6a03ed93cf26e0c8c700e0327eded34f473bfde7d97c31e04c4d5ce3d307f6aaf2acfd7d19c5d34c24c5dc9fe1512bfaa67b326527f7b37dd3bde6d7d58248a1ad6ea465468be95072ee3855f92e40bab3cab122a0c4ea34140c066bfb6cc70ab091061423712789593db376786af79c4481f4b34932a77c1181745c81461e44b57778c887ce28809e1b42147ac1383a48896ab5b6acc16d38c67abbdefd74ce70b18aaa60ff07a78020864d7b56224cf8600f92ccf39220dd1b582916342a61b4eea9c5f7ef593c2e5a9dce490066baef8bd6b0cd2f6237deb94e4e428f2726c67e841cf617a33fb79cdf0e6b140bfe350072b73d727065ebae7011a8da948bac7c73223042d2adf210945fccfb03b2e8acf8555ddd9f9efa174a04afd96a703c9e31deed1920877323ecf36f2a6a835fca033c970dfeaf3b35768394827c5e25801ec37f76f24ebd1f5ae54469279a2896ffb618fc28d10069413e1a9190ae42fd74528ee75d8b7711abd25a305dd1b0260406d07fd8240ecaad612e521f479f55a20f951c9471940c7e61825c99f758ce95ce6457d1455e90c17531baacce11796f23fc405a0733b39953ceec7f0baf088005ce2e6a1a3653cb2468ce033a4a4c31b8771d1925f786ecd3bc98afea23a1fc9b51da33e1de92139375ff8211a6fd12bbcc94203034c555c5508ea728b67413f04fe523574604d28a68a5ad48c514d6ff310553f1db5e7db154da6c6570afe112db4b84868cf4ccbf0860f75ca9ca25f00fd77118ec89e1f9c2a6490242e310e69eb865bf6750c62c77e8ec96bbb15770c8236d84a302feb52beca12be7388a72427d5ee86d6fb16adaa98c3359d707126925a8469dff1805d29c8c1cfc65e27fc7afccea150165c3f3684ff3abe93040e479a4945f8845b015a150b00bdb8caa8bb0693e34a438954ec8e0945252c687d475ffb1f80a6ed94f502854dea6a37db9d65b9be428ded687a6e0cc4f84b669a5e7b4416170dc4e9e686f1b9799e0d8a0325b9f8ce39b4e898e86926c1b4ccb51c23607dd83b7a3e18adfd0e68697202aa1d51721d4e4777dcf13f1d3c971e40026938c2707084db095187810123b669f383bb6032510dcabd49cc0a7e04f5aac7c026bef1c1f9222a6665630212810f49da702c322696a17dde5abde9301396625ea1e44707851e8d8b9d9607d39c87f914ca5f9bd00d0dc419ee0ba46b7c5abb1d83077a445e383b13d625a092e8aa3955d393e030ff45913be6887eb8c4fd0ed815da6a2159e77b7550f9a2b17d52169242b9797f2ae69a986d59323cee2228095ee378c54822e104fad7717cd43883a8d3e9f134b7edc26a27528d8ede873246439c2a93575280457fa453b164717d4c7239d18804768f566917eb14c0154ed020af5e5655d300ed24a07d28e18257f64caf7b0dac85b482be946e3c72341cc14fd5dc6dc63d736870d9fa1902d41a303621bc2afbd08956128846b74ceef88bc84ca45876021bc5464c10130175172b92f1b76231c7e9384ecbdf796524a99a4940178067706ef052f84734a930a02a54aac8a97346b523bc6ac88e00b3da1832753a8286285128e5a7812a507fcaf77fdd72a2b4883af094f428a3021e4c8891529280f5594546192668def18b3b2829522255861058512acb83bc6ac0459a314c687342b20f68810179008a11243971c70a02ca822a44a0a693255baa24a0969d6548162673bc6aa8081c90006fbd47c9f0f5310712b7c285364850f618658e1c312265841bd35311f8af0018b3d4283060d9aeac3931dbdec18eb010a7b53fee0afdf0206e6095dbb7ef3357b66cf7c0cdac824cbec48b738bd27625488d832a96801428a9831307440494d0e6960986249540aa63099c2c3cd5ff672e6b216b28c264d61614a0c4f984ad20ef353232ebe179f6085fcdd4b8504fbde7befbd374c4eed18a342444c6c8a9a5d778c4d39d3c3162aa11a080948f1918278f0883f3507b6fc191b9e3ef383a4d458124d2985c8b62cde98cc355f5913d9bfbc77fd6f643c1b82284f9b466162d30ce36b6b0b241baa94995282982a8068932955c829503bef189bc2d405e60218ec53e2fb923c1d794904894d29e26534344111030f452041840a3a486142ca982ccbb22c3b42068dcb9318285e808cc1b12ceb0163dcad10d3746982099a294680f09283941aa4243da5a4b02045862731af7701910394233151b44059628cbb90811d6e58220463b4a449a23844391325cd939818941df6b6630c8a92a83ddf5b2287531271b0f581fda15b1ff85b9bc3293ad3e73ffe53025130fb0ffbbe492e0212e88748b0ef5fa926c1ea381510ca295bbebf954edfea56042450eb03fb0e731667b29c5172d298dcf1c996f5e77fe0f347fd49e7dfaba7aedfcaa144615567ef896842f0f101fdfa1ff8d7cf513f761fb43ea83fecd7568efbd8470eac8d80ae8ede23bf95237acf1011100940b1d3d1b23a87fcb863886af7ef43020673b966f5907072ff4d15a5016402bac42f44c490d44cd99c4e22311e80c478388ab1200496d21bf6fc2895d43a9d06159071c2b48b622a28b2a7d725cf77d9cf58b2f6716b2fff6a3788caad7632329ad9b8f76547e3a5ae0606040cf6c5be6ffac4e933df6a8c2db6d8628b2db68faf0eb238f419f623c5d32768fec5f75a5b2ba5ee73d2d0bf3ec6189c3f3f7641f3dd9f26b1c548a5044a428248d2972200ec184b7292a4e463cedec7e37d3cde7cd52a46377fd9cb39a359966519959de92bb8e9cb5ed2d1a5d40b2c662fb8884887234e78c195353b3ce9b0a4490a9a40c9b22ccbaa0a2688819035406a302a13842a6932439324576c93169ac070a5e9f5aea42245b1a42027ccdb044d0a4b530c69e284d7a3264094b0d4044b90a5a658132e9bee186b9265c6909e90c844b1c5d9c4040d93225e30c617e32018e326449a185d6902778c2145417272c39473cbcff45b37b694d47bb0620506b3e25971b9aac400dd617126468f31c8165d95fb0b723a7ced9b776431c9da67cfe197f7cc2bef6f3cbb7b8ed3dc9e52b61c3009f2806dc901d86f60e8dadbf621cfdebee973f35bfe2df5db8df72b30fcbdfa18be026f3c1c9cf7e11b477b600346255c98f774cd17c6da4b2d63d4f763f896d9a83995c1165ddbbdf75e7c6374da5107ddc7dbbd110c3dd833ce38e38c334e8f05597b5a238740b7be3152a743b6e8f2a044fbf2f35690a1605ec54a553ab14939a73ba5b5cad82c27ff7632bc26396a8f498e96871cbfa6bac9f946b59ae1e9137aad3a628fe108db5d8b01ec75a595ee3ad145a5434e9f3acf7c3975a7765e4f070bc2235d2f07c7a92fba88df63d32842b4628cb10db1906f51dc123ac1a11e42af3d9be4d2d46174dad303ea9247848a50d29d34c04bcaf263b4b65a5bf1520b1564f9f3f5eea5204beaae3d2959be87030f1878698bae942a620ca305e813b4a1d4e66717124ddf9d6c80d2eb07c6ecd140b9552990c52473efdd077620076ee07687e5703909b2ba93bfd83122073ba20bf9fb05a3c5f4e15e7bef79793ee4306f0ecbb089350f57535665ef915dc6817277208b494ea538fff13caf878d83317db2c79fbd7f039cfc6b6cdf384ef3f0802ec1ec9257daf5c3d7377f6a784f658d20df67b5905937e4398f28f197457a58ad6a90c524d7d81139d8bebea794c30805c205a60ff7b5e61e42218fd7960f983e97d3616cea645c2d44a593e882c52487f2e8084b7944a57e0fa16af5f449327d421e47d3e7c8f4b15f5f22f100468c8a358fb884e9f6264facf5a3d235da28e7e1e0524e2929952da86e6da4d7d20be280936c3168a5b5520f76d494564a2b8c0a783bd4fa723dc9f2eb4b199366d693ec94d2fa6195533c25edf0c9f6f7624828b9b6bfd53a8840b43db0c19e40f62df8dee3453d22c89fcf7a92a3f77898b78b403fa4da031b6cf9f25da9464dd3344dd3341b58cbb0165f04a28d27e8f9acf3a9bbfff49f58bbd7da5a29759f130cebdfcfb2d7344a3f86f54520daf46b266f095ab00489223b8c4a4a39b0ecd9b49a825ee0e75fc9e90a4cb64fe4f07ffafbea893c3f7c49a7c09c80c19ab8f8de1b3bc2867d2f13348aef8816bc04382b9265d9921392d30a32cda986cca904d90985d41735dc97289c1d634700d9e1c3322856517841e30585a8cf29cbb22c6ba5f065872f5bf4172317991c2f2b25160ef8f1cd5167440a4610592d118513d3d6d931e60483ce0802ec70044892154071668a28464c15196a78e107234878d9a20bb667485d73c25e4a2e2c2e17e7c59ff883992247543186e98b1440f379e2cf43a5b042112d2aa0b0022029a5119bfb36411cfe6d0e06d19f5ce73f411d34bfe5da06d126da4e9f9b60cbc67ce9208ef95287410e06d19f74be5fb1ada4c8e17ff8c977c15e3e9eaf4c399ab3e3ace4054e5a9cb030b18ac229e654858925a0603028a8ef83828a1ea3cb21df8bdc227469d5629715d8f75f99122a37d898eeecfeb595f6149139bc4ac281749181095dc070e9a2e568c5a58b148cb10973c7581728be436c6df9ab2f4d514d25188131be26e01f36f6026435c4170d768c7589a14b0b3bccaf82fa62be5c7e8475c9b1857318df0f298db6be5c2991a38ceec447c4f7c19860b0e84d1a2fae2ea0b24a292b15a3fa210169be9c14a493c6a32d30d89659575ba6cf07dd10a246410498bab9f5b7f689f6563b08c8355b6aae5b2de5b9b7cb61f00336564b99c698bb460ef0fff51b20d836e80eb25f27579dd618d3fe7b9e4faa8eee4363f4193b9831fafc187dc613d4a744346dfabe554a3f8073f5a77abace3ace9734407c229713862d99a07698b7071e54415365872ff68cd13eb53671beb8a79ff7542a829ae1377210b53acfd72ae64f564f563cac7458e5b082b282b2c261b5e487f9e4878d02ab64b2602d0b638e1809f1039216274056695b2e4ef64a490ddbacf6e20cc759edc5378699489c66b5d7c6596d8d686452984ae38e5109cd8cab2a92cea774c627c232231363f45a6badb6d6ea313a95814a9f2bbcf2e81e698cee91f2b05959278dd1a37b5ce1e0eed5dd7d8554bd56a71edd635512a34b77269224897131b281d5142e2c7049e15a25f9d1295c5088712982c97fd7ab05be18df1e32de3136841a2a4358f179f9f5ae21a8d8e1c3e6144794c0575286b8b28760f2c2102fbcb042015d2979b121846c89ba012aae6ec8f23dc4f2099625a7b4566b2fa618fb941867d5da7b31ce2ec659a66d38d3b46de3b82e954a651bc7755d2aa5ea5229952a671b7a73e353dedc646ad03861590a0306cb524a95b38d0d963dff66e9c697ecf9389ec4a39ee7537a8e248acc0c23e774a7b466cee6e60607c7f36e381ccf5bad58ac9c8f7e9f4ff979dc8ac5cac9f93e9d9cefd3d1d9d969f1501e1e9f92c77576765a2d9e261e161a500d34f02935884c3b5c8bc7795838a88117d180737003324fff7dcac7e2d4f4643a9949468e641e9940d4a0710a0306cb929244e2541ac9229288f49f617408cd5774d221e774a7b462ccf3a0d6000080cb150001500108c0a71400b6b9c1c1f1bcd58a954373727cca1c0c009cf297d39dd25a2dadd6de8b71a6514df32935ede22cd3b48deb68d7f9945da76d1cd775a9549752a972b6b1b9c1a138383e250e4eb6b9b9c1c1f1bc158bb2583e258bb562e5e47c9f8ece4e8bb65a3e65abb5ad380759b09ccf419d8e86dc3c3b7467c7a7dcd9c9525f74313f9cf25f45c971be5c6677a8092c896d51024366e524c7d816a8d816262d59c0ac5490636c4b524c0b546ccb123236d860c36a8658961c5634c4b2dc90454996255968d8f5c8cdd404595c58c9902585adaf50c1b124794ffccf2f389aff7ad70bca7bfeb34c08a79d655996bd2fb6648524e71d6342601142e9d610449520a6ecf061f8668940d000e2de5b83ac9c92a848a894209604c1e4098780c6100410efa956050b0414104e94000918dc2b0c94042438ba9244092f5c693ae10517ae44b9b2835c89206b3bc6ae2ca17105c95d8de0f5aea5132cc9b0c387113152c5d50a6668fca0a62b52b42482bd62613ef17d93aaf07dee2b14be5591efb362081543f0187c31b6122688153045415629ac4eb0524496ec7d3c2b2094523c24caa65409cda63ac469aeaddec7e35909c28a103466e5062b33ec3007419ac6db73253e22187f9f8b7502a52e9775efe677ad2930c4a9d46b291dd29d7a9c5781e16f1c2ec5b22187af17f55f2d60f5a5fd0d48e74b7b1bd09b2fed33f8d185f62ab00335199ab62f73e5e64bc9ad64a9c34ce767f3b116b3ac026563736deebdf76d3430fcad69391f7e5be3d99af61eebb5f7a6cfeab5d5cedbd87c0cb701573b3a3a3a3a1ff8009005c6f9b2f915c862d2005049ea61fe937fe24feaf0b78f3a7c6557e94d6b9628f32a450ce9e63a90e2346c8554a052406e367b2ba15e4ecff461a15487de9e990ea5751a378d513e738be822c79aac018c730e13a15e4ecf04833a9891400165c4055fa08a9428628771028325db6887cd76d0df6194bdbc675217d5de8b870524cb8f30fc44bf023b1cf494a8919c52ce59ed04adc62e1793f7b96a583f564db3fce9da5107fd44a5f813c444554e2e3b58254869c482180c88c49c9001ab496605a151af18b1a6416cf29d78ba3bc69cf0b2e7734e2c394166cf5964db549352ccd5f9b2421e058c991d634d346d04ec186be2051b840bb81ccb60ed90e37c6d19fae3a74332fdaa310b879c43c7f4911dc83d778c350166d34f9a1ccb84ac7dc8ed1d1609323717307fdba4512aa55b1fccef5e02f3bb27da1ca881e1081b673f3a5d4ffa1097dca21641caf021c16deb7edb01e9eb80f43dd04196917dbf75c3ff3ecf5f192d0743ff1cfa31bac0efaee50ffd3327fb3e6d22c9e6de7fbb9ced64b4dec16fc3913df7ae43a28ec67dd66720eb6fc020ee6f3e839ef72bb0d5fab8756c1e83add6ef7cdcb1a3c13dcf73cfa35b2d3d8368afbe7563e76d7e27763982482022311e00e7b32cfb9dd57f600e1874f33163e990fb6c057ada0562efa97f0306656f9335104650aad335d3f8673743db4490e0f62e14b5b510b417b27b83daae377fcd3ffb58134bfb3efeeb17cfc0fafeec52d1457d0ace17bbd6bfb922e5778939edbbbbcbea306058779fb3fef40f6f217729bfb084b84b272fa644d1a8285a8646ed8a849289b48c3432326222890b7430da5269c775bf8e75cb067efa34282d2304557a8af1b3f771e07c0dcc14c4db67a07cbbbd06e6e7c0f99beabbedb78dea905a7087bfef70b7bfc3ddfe0ef72319187435f7fa99fd8cdab876b5ee6b462fd5eeab2868a3bb90ba535a6ba532fc116e2f3483ba27615730f4bdeda0a13462bb97db4bfff07ead1a6bae85e6764dbfdbea7ff79283c0b5adfbf2b7faf5774c1fab65adaa0fa591aaa361bfeaa0fadda73a1cdca66feb6f54a54349f3ec3a1aa1e43a1c1cd5a14aca904a7b73bb2fa595de6e7b22d200f56b47c33efecdc61ddbcb94ecacb49d0ea2bfbdbd5af512055d43a1fa9b0ea29994990ee5b4b1c9a76fbbaf5fbf769ac5992ce45b6e5f3f7be2c0e83df58336ad3ded70705bdaec774c1fa38dadb5ba6624c86c6edbf78a640927506a369416a824504f7bdb5cd474450ef247a51a9e0b05508e7e074e07b3d7c01a35780dac2f77de82f341f80d588438ccaec16f1b77efbd60906ae3389e9757c5d132b283ce55be71aadf42588fb5d65a9d54a7fa3ee4f122e4f1e2d341f7556f3fa22112fc2999aafda99a9c49cdeca0693f2767ee9ca83d250b9bf6ecfa5127fe8c503f1c70569d13f27811f27891f3f543a159674493e323f80f7ee1bc715927f55196719eeffbfa1304caf3bf010bddd23950ee6fdfbe25233ba05176871bfcfc9046edaa83e4e778e5d13a3aa55b2acde43c55ebbc06e0175dd84f7534fc8354a9efdc5a6c7fb32cb495cfa35b5ac7e5a73ebb3f6ba57d89a3e64c4ac663bcfc4732711fe6e01a38bf4d0cff9149de435fa5439c94b399fc4786f11efa4caee9cd8738ccde87dfcfeac3677df882b90eabe6f16283acd7eabd0f4df41e7c7508db12fb8736202d8371cedf575d873c5e481527bfbe5f390295f7fbfe5faf11704eced5da69191e2f36f7218f175bf59ad0dcdc87748736835f7421b90f52713f82ffe848167a32c8e3c5be2f5a4676c0d13251b48c3480d57402a94429d73f7c69becf8a504a19ce7cdf1918ccfdccc72b5c6024892533208281704192159a2b9e9a36dd31964412f95287922651b45bd02b7bfe7b479f969e947684514a3fc60ae40e081f5fb0d6b0d66cf1468d136d29a5acaa6cbb1b730604ba1b16d0e00ea23febc4e193049b7c273bc6ce1ced173bc66260b47de41c636caa9899a82d34b78fbb4568516badb6d65a6badf5a66cad4db62e1721d1fa5a8973d925d086ff82dc7ce1cf39ca5bbe5f8454ed87588baeeaca39410e3f9e77bd2cf52c9fb0cd901bb7eebd17b39ec8b017303ca037efb055f5b7b95d84e43407869cbda834a16c3617214dff22a4f843fedb6e90a839521a63d49e8b90aa1ef240df54009843439656bc83280d10fef62accec183b43a4003bc6aa589a2de6cb9f35831cbe5e2d601fdf4aad84c6ce2cd9158cb1334ee6d4619b21b7ccf16e33e48ed9bf0849fe9007425ae5ee86cf5a6b9010f1bdd7cc399243bc7110ab8979647ff325a59cae654ad4669898d162e6893ad9e274313cd06b2bf539cd149911e7ec7d3c2d885171851921741e31c5e0c4ce62200391212aa8204505a61b7808c31443d6f294b56c0b8409270471d2449813c6a0e0062e45a8a0324411154ca8a8e1fbf27d302718ac09066bfa3e56d30cf2d46790164c61668a2147102142418a2a94666892822e2ad02d54b460440b62524421c50c64c822c55394145aa4208325cb8d129b22710426040cf605f17db1588c75250a48142eb096581881a989a72a98a89451d21265c4aac2ba32801d63514ea2987c56be0ff6030ca60483297d9f126c0a0c46250a2b4a1156024919a8288a5c9afd8fed07928e4dc73b84a423dbb6f9dbe3681da9773d243ff5d977cf224db6397bcf7dfa58fb6f93f52bd6733f84a4c3fbf94348ad08484a5f3e8ed691f3ae87fc73748ed54b3d045b3d4baff4500cad87a61e7aefb9efe9fb38f51db86d7a08090747ebd03e755fdbf4500fefb93f3fcbf4d4431288369a2ff5d010920ef9530f011942d291bdd44320643fd4bd0a963f02dd7c04ba361f81640402d2c00874030e21e9d8de460f49a0edb9cfe08fecf1abc01f483a322d9178cf7dfc3f2250c7220da7372d9390ecfb2caec8fac71092042210d63fea47a05026edfb19188162501c6d9d1d635024cdd47f20812a905422612392f4e2c0ea818cd198242c1fc824614961f530a6688c0c31e00c110366873bc6c43ce11d63629a6262ccd013b63837fa3ee2cb2a750836b41c9b7e08ef4392507dd8098966d8f4a5129bea185db80cafac224f346df9f1a9035ad07710876ef9d3185fd15b98726ed95e9ba57edddd350e2be599af39e9a44edf411f0c883c3edd65ac26a0fe298cb9fb99cdb2ec661acf177e7b310679b8f06f9b04af94944a1f0cb8af5d189c06992ea8a56ad9eeb05ec835fc07e39cbfefb11c1d914ba68fdc1ec0542304f768fa4c22ac1c72fc501e4d9ce7744d9f0ce47e8b1d966098b7fcf6ed9e5e99b7cf787cfbcacb738bc0a1ec7db782313c03abb5b682747e943678be24b7428e2e554a5d675dfb0707df2de78cfa9e4fe59a6c6ad87cbdaeb49b460eeaa696523c9f87f3e60f8f377d78e6cbad4441e4206ecab3fd43a0fe39ecb1b399b93de79641b96d5460ca661b0786dcb674dbde47dcb4375f5986f1b46004a38ba6e65d618bfe03042884451caa48dfff93564616921cc2b00b69a129f102ec8734c4d66e5672c0b583e44f1732cb088b868c67a5b4fab36ce0a1f9ed0c98a27a084dbc244fda23852cf70d89e876105bd09b3d84e64f9e727eac2539fc670a33637435a49452c2d8f463a0907bd03fa24f8d44171cc5a90ff10e954ac78ef9ca315f527e1fd3c7346b609cefebf0f582ddf9d3feec600021b90d0963631a581ad9f35948aca21c02dde1e7d269d47c39cf95d153df7c4d18dff765423cb1b4ebab3cc87d3e88fe7d1bd7856cc07cc9387d62e4407291832a5949b20bc67cbdf0a082fe5ce44004ff8b31e843aec1a0a67d96dd17b23b0b41c39fdd8f9d03ae0e6b572386ec6644e7a28b17d14598da52868de8427e2542d57159b66defe1485d0bd53ddf070326514ace2b5415df9c7959e420b3cf812cce64ee33954a0b398dd4fb487d74219f033d2559a3bbba9d1df51f0ab4a1c09a216329ebae0f5e30831c80edaa8360b26953d94881d9f3586ffa6023dbbf75237bfffc18ffe67d8c2e7070c030fbec6fc2ecf1134eb6bff744925d39dcc9b09f81dd7bdce397a1f7f3e97b87c3dfd3990e53dcec64bcc4f918336bd94f656ff3f96fc010ff7c1bb075a37efefa59b7ecb76ea45efbd46baf653f5ff5415c9bc0a8742d3845a974886800000000008315000020100a8703e270482898c6ca683e14000c788a3c82549809439120c7501404310cc420080311400c20c618c39c72c878009e3a49d06b239f4e6fc96794c4007ede770ffc09b1fcaadb95003a04b996ae8d0baf0977c373246d66ac1161ec605bc92043f7d8a4035843593d1aa5860ca9588e6beaefda424f6f9b554961eac8568a0b46adc95e8999120512214d29c8b1aac2f8309859aa3a49863cf3b1ce3f6358dbb7d4f40fc95c9cab2779e30eafaaa72c6c4782e48b9be2f833e3ac433339182465060eb76accf559521ed0d0b0226c46eb9bca082550985091107008fad6f59b027e52c1646786578beb5a2e97eb0e08fee0c24640195be0a26b2b898d4a396952d72571825e2d818bba389ec1bc3dfb6a1b0bc7d7c6019cf4486af3a10bfae6537c0f0853db4955f7b8efb6d80bbc79c5052f98a2969faf74c9a8b7a0ab83b773d8388c8014a87effc74a6c4ebda745dd59e635f045ce9a89f4c8a79a2cb43e0b3c74957bf9d39581b1ee12a15d81113e299ab0e905b5a0f994e82b359fedee9680b7f2d9426b7b78852656dcf74c9666b539e3742e564db2433602bb7ea33c60f036a8e23c442665922247eaa738711599a85a2839de3f42dce24b12b8c8c233a7cdf23b273a7227f664ac0d5ade691b789dc989212728d3ad1ea250e450b90f20086aad042cb3599e90e24d95a465ade152b632247139de59ccb8511a875b27b4bb66a314bb4ffbe7b21e4a3947b5a358b7abd78338bfadadf890366abd1b36b2abc7384b0b4bf606195eb949645c9c937fedf650ce1c7ea4eb6dcb3636001c0aca08c1200812cb2f3efaa2282b436e48c30af1b1df1b1d86a59cb18454e29dc0a4602b9b20f6508dca4f02a077f6f7eac732d06a4fac8d97654f2e0bd63eb7bd96d68f30c6142f093c54fec4305ae8470593bf4812142cfeda5ed362c53ab9cbffd0a1fe46fa6039dd805c96233a012b3a606fb9498384b10ccb4d46ccedc28e70f33c185aa7295905047328d50f08965be34b4e911c99f2fea067817ac89352ad1ec55a4a56a90fec443ad19215bc8c83810931b8d82c64dc599bb68e8e952a0ad4631b4e554bded344e9ac82ce677a9945ae28e09a30fe9a7178404112632e6a05ed5f7ff96c25ca8a373745a5b41bd402138d2288e108c014df897c325b664c9d37ac67d6590865f431774242bf91bdfe89afda21a9c2e0b5b1ca27601e0eecc5e594e6a6b236cec0c61a4c1b196f7c2f2f2ab3b948a87382dd6b2f45a10236777cd4ed93d572b1b85fe9a11db6a7d3850c5983065a6a6691cbeb3c76ec37ca9614101026ebfe7434b4ac730264ebb0665191a7b003cc0717fd9a0edf607ffb75a4e81c4be5065dbfdd18475b4fb407508d4bfded94cd11bee42e86d6cbcfd9d4438acea487213526c877d6650ee0525060523cca66236bae5cb3cb618e585ce7985e6cee6ef4381088c90d1be4e8302ec90a688a3bd417f9f26b0e1f74a94752d8e2eb1c5d744186d65007081b2239c4e1244b21d013c35072969058735232b442184bb8b1d0d1117b5976c29b5b5da8d7b35574fc181d6522762c40e2cf14807dad980e5e2419845fbc22b0be2bb5e59b45742f9f1dc36dab6bfd3096a04be62ca14b7619cab65e2dbb1efa6935d333099de01f1164654cbfac39aa1c80cbcc54831df49d3e3f3360f5615c829ec4514297ec6e886dc58d762274f3a63a11c78d34c0e8593f894f509a4c86af02ed161083c4655ef64eb31ae50325d6f4d3b03ea529f4666480d97c3c588b29053184fa9da9c779892f3720971415307b9e1cfbe4f39e5695c4f0a020d4791e1fd30c3cd2ae075151c5a561649fa2d8143315fee20d256be9908c280feb60b764a1c32a7dcc6dab9c129bd1d98fade83a5c363fcd413be3a605082fac8d618afa0dd3619c983cb57d8f4c48882f12ac4c900aaae11ec72afcf48922ac759983881f176ee38f5363b560cbcedec7a38d4646d4087b215f3e85d988dc7fb859187d19c6bc501b0a887c153da50a89dd6ce0f61804a1a5e35cd2cc845ed68b8f238b198610954c60f618edac8587e57e3dc4108c8f92b1bca59a6884d21e5a658ea887e94f576100da9d70121fa5ce7d5236d590d42be5bdf7121b423d5ddfa63f3b42610fdd15bc77ee53b78fc8ecdf7f34dd45d907e210f439162543b19cec88d00562290174558d166d1ab5240d229e0226e38770e68b38742579947e7542b64e1cc836fecabf2b943f584b4e61d6c4213aa40ad5679b54ebf406a921aab35db28b332d9f2a23d4bfcec65e3dbbbb76a506d3a9996e86674cff1a13beff720f054260f34dc476d93ee8319f69c863c24431ac8b6852b7d806574a6992fcb8280df933bb14ca9b0a8e883b124391ed3444d3a9b548f274c807d141503a907340a43d1ce0c0510341e1188879d4f2f224ec3b22a49a893e5e4b59853baa85e361cfd4545a53b3b5c4445aabdc31a7837580298e98e6e434b811f33fa68aaa76c2523d42374af45dcafbcaa65c9608c744206fa8c6d46c025d0013e5232db209b3e00a0ec0ef7ca71380673010ef2fd8877a4f0bf4cce566338b107f45218a74ff281b14a135351697a08d1a72ce98a49db45f5820f4905f2b4755f916a03e446ce6094d4ab029bc03e39965f5ed3ae24164a252609f56c820971ca464928e297d1fcf1b7e11336657d652693b2844930277a759cf54bce1dd17ba2c0f181463294f8c86ee3d79a25569e736d6c57db1cb58ff2a3f060a56252de31f5e188f0a1caf05d9945d085d9151a730e745a2c7b6ca7af4e9310091c49e062b999cc9b01e41a8eb4a90ef324a8aba37a90993a4b8cae5d4b4d832a17e7ed540bddd6f91d9878fbdb169a48b29b55769bf45d4263e72bcdf88dae08069d478eaa2b1fe0906b42385d81d84e983bd28681532645639acd4a046408dc77701b4621f313bd0b47c52217155fa3893b0109a96cd2c5c26e58ced380ebdd98284d1edc6ec49a397b66616a142913440c7f1ec38d1384128e3776b317692386f5b60be00caa95f14356c383f51d207f19856288e8c1e93cd727cd5e8b3d6f000231723107257168fd15a7fe591706d728049b1d18b8f90969a6a51cb6230c15501a822f0e02f5e2ea481cbb96af30a8ef34905cee87bd5fa4f595986ce0e339716408576e1d5ca05ec7f845a8aebe9b24b5177c6b208c663adad9ea96f122c902833496505b1ea15185fdb4d4d7616c541b5248d27e7c23d61e194476dd8c087dfa7c017b8605d0d33c9a14aeb2201709c24d13db449d41bb9f6bd002b407fe39158e3877f413538bd4d8d712a3df1e06e13865d18a0a6e08ee22201c8f46b22a549e1a07522125352e003573658e93d7aa90e7f2af9668e9378ac8c050f8489beb744efa75698e0802009f30173e102a3a4bcb29aefb2c9521229e89d1549c4d3949202b4f9446edf125d82800329408548d1fc2e60da39be98e48cc1046875476c2940b3f82ea5b8bb70d14e5b9b232a0bdebf4a7545ab5579bb00f9fd8e6ba9724747950fe7a330edddccebedd1a06ca51ee039cc0633d68b9e6ac028155be29e1a86c5f6accd2c095413ba36e23a98dc415199e23fa4057e1c180a848c5d7b6a1b8918808337f725723802a0a30873e6cd103214310ccd228ed7ab9f788a36d5b1c89de2c55153e9fd9891408700a3024e41d4432e1472867f881ed98f7cdc0f7d5068c65e51a5506fb0278fa57a9b2a09b1ec3f8512aad6a5aff93444deca039a67c46a40eff7d2ce1c3ef4ce080a12752355c37c9a71b792184cc584235fab2504ab9f4081c046656f3b03fc17c4fc8a22f2ac30e0b142a6aa00b4c3d6879cf185dcfb1d7395bc23fa6848e78e67d1fcb427492a38ab4828c9db329def85dbf98f60c13bda7cbf8233aec078945a8cba49013e96790f8c7010bbea3e42c59ea58ca7c7db9ba49da488bcb08df31dc7773b4aacde56297a82dca57cd26588b6a4cf542c3e005a2560717a8f07e078c44d6a16a4c1334e04dddd9cfbf0e3c3ec64924c03f12db8b7890d48d99b2e3a6f7b3a92214c0dbbcc1e9e1eb13bc6e966fe57cc28b20205973b0e365a31a9dc0c3281984f4701dbfbb4e401279e26b0f0c30391776e07a482861ec3c52f5005f58c27153585fb8460831203afb76812fc88d7d2e25660839e80e7fa26ce0f89db362c8c03da6d054914053519c4c15bb56503221c647936a5179743e1300e08405292f7bfa901776f32b9263c0c5e68e6ae6f2f49a5e6e20add4dfa1ca0c0bb4be4a6023d134420f341a1c98d166e3ba63e60ad7d7268f6d5814180154f4c8114f4a091ea7bd94ec7e86bc503fc41d7fbf474906b13935d897d7137d7700ebf7d509802258adba6f9186bb0309e3fd6480e57cf09087d41eff6822359f4fe1f6ff95c40703fd153e3596f89a591fa9ba07d3a9373f2d3497eab65ddc6b7a68473978d34b4ce234b6f3cb724bd87e42406a4c0dbe52af90bde4cd93aa10bad2d8f4c4556714594bb167058aa73d0d33c85d4a262471899b102d0c03ffb3087eeecbf180c0d3e2e92ac60cd841157cec0a170e850753dd24f70210c5fc21cd8394480d777206617e9b465422861f24cb6d104f69c310c824dcaf9eb659c24ad0940a021e5adc73008230eee4f4cbd604915f7d5da2110e0eb5a00cbf02466406022c2574d3dee0be3cb58c545dbc899138f6445139b463320692a483c5f360ae7acdd7b8c8d57f924dee442c67ea7739318cdbaf7c101f3cfa8cab89917aac6e0cd29771d0b773fd9935cf91fcaf5dc47d7ca90d93ba8a4fe23a3d13f3e7793070ea1072d97462e093d1b37550b15806fe41a4052169c7b0e447e928e72a9af63a05aa3511f71a8a132f18968a189b3427dbcb509eb34777d6cee9b5c43baeae89379ee85f1a470363e613666c427974b9fa5a2aeadf286c998d7ce2b25c3608e86a07c426e0d309423dadeda397cc0d2213d3d07ea638edb75f17a10234852db46dcbf200442b6627a67819fe61f614c19071dc7efb0cc3b2bd7f87544655c8762831f8a29208a45b22eb3abe440e54572d48a23f5786d9d0e9f779d404428992bb9438f1ee14985eaf20c1458ebdd9f9074d08c960a0012f2143925c7a3e6ee9b016f606806cdaa66c25fea44146fce439ce174e52a7d10906795f7cddca5ded10ceb78fd2c0fce16a94f089aa81b0ebe31a48f718e5eee96013262d132d73646ba57064ecb93e8c07aab53a831a578a982dce273391f48f55ab6c0cde71366eb7aaadc0c34b54bd9e1d46234a766c130161b0e7d2cfe411976177a58d552c58a3a66b5a57f0a285540b156a9d44141fb4931b9ff333a4445c5a4083730b902b6d0bd35f76935a03d0a3d4ef6e58ad58089ce8ec1f7847b9628ea5f51abe816895782741b3d41bc2b3d44aa31bc4340736c61a776cd6a063d15b28326f43d6232a12b580df8cfe7f9c4eec0beda98a1872df102fac440057f12d9643c556620bec80274ffced8193648aa5b051f15b67e20621a0f8b32387e1e03b48b83e4a8de77feb410f4d02de5adad155b8077516c614c2079bb7aa730d58ecf3fd9eb2cb952d14cd9bf0b7e97b034c07108e0f6004cf093a27ad64a0586657c64578732ebd896cb530665740daba5281542b66794f000c593546b89f0409b46d5d4d4be4f1f7cdeafdd6145c19c6afe6aaf286a62e47ba019ea3f840673e85c824ae12b69ce1a38b58f1c77843769a4078dcacb7ddcf5c1ca9bab2e893bd4330afa4ce4b2e966b61056ea3278c9de879dc2c3b1ce9c57b9aa57149dc9220d8ad14ddfe81285f9b6ffa9550147bcd7a2d79680e9ff24cbce045e28cfd65ff34fcc7946ac517a243af5142accd4cae01e735abe13deea7c001b96e2a6c57089abaa93a3b671e9a9253c88eac49236aa2e097c5effac0f92b1ff484e82b3ea08ad47292e8efb71d80bbdc98a235cc847ae4d2f6eb52582978dcba61d8333bcbe9fbb576aa00e7c1405159119f1c0af8134a18d8ba80309e63dda8c0fe05d4ea8bcbc19f034a027d7f663dc3422a7973edbc341de4e40d6d812fed46a9022c663fc10cb2275b45f8da4af80b08163c4c72dde40f9d3e89032f1823b97a5b975da9065e0dac265ca8be6d6a990ac47de172e61f529c9a330e24c4d461d8155032fb8389f370fd0cd018cd864c1aed51355f2f777a0367041c7c6ee223f3d9c8a266040c612b37f388139a8752da2084ab1d5cd78ef60f1aece08e894b55e70f411300f86829363060754fc09ee3a39102b879d668aac64e19f9984f6de80883e6cfe8dba28e56605e2378c0ea689c9ad5b1fc1fdf782da0f54233771c2b43425d7416d9578f704045aa6bd7a07c6b6b9b2b2d87ee056788b0ecb43be8afca4569383c2e269f2b6fbbeb21661457264bebecd44ba6fc8f52d8757e43663108429c1639e58a3d8b9ea0fe10e481b1d77d0fb27756cdd104cd2b96c31467be106e5b371a031395f94991e7b360c76a01710e1157f49ded9216b23d003fffb76b87d31e45e753eb6a69656995957f6876abb37032f2d9e4449e2d575e1515aa7bd1ed5164330a411445035f83b43c53149ba2ad61edee20064b7cd208ce5ae0e874e23fc405dd03041b5b7bd86db449fa159f1c21b4afc538a77db44543c27f4b6ffd82c751972664312f7729f8ffe058e03ee4f5b729f8366e13d52a31c7a328d4ef086e60f6cd01c3d420b22d9cbd63e9c0d224827779628825f66451e58db502e611edeb249f2eedbfb3bf232f82596c2b0d66461e5c2cb320f8e3bd6215a33962e8a82bae605284a565528af80b0825781bfa5837076092104425b8f6c22d3929f844285df30b1262eff116ecc7d31a0b18d5c62bd7dc138b5462fed37025e14a8c5cd52f6c77d5c0577053a291070dd604f25316048410df82c74b79aaddaafe539b1201c8216bed90e31f24e851df926df50ca37004c94515c26c7175146a1c8d52a2a2582918f75723ddf27c61dccf6d63c50eb52badd92707d719c8d575bb6ca19db761f2f874d573147eac19ee263b2baaa214b54855a3342ee3c4f040deaba1eff87b248223bfa1b390d534d233f1bfe2cea30bfbee52c6633d4a23b996b1d9da3a440f55876d4d7bfa43d54a0f2450b95004055405e5133eab9a1db3311061fecfe2dbf9d91c4b4e694c08661c91611f156a7a360f3817f6f15a58798d1ab10de163cbb22a5fd9ecbd741248ecf9a37fd7c1516738ffa48e05eb42cb7f08e5757bd005954f431f1bebf49c2425b16142805bc31a6e5c3647c18b38942d7320d30d59ddf9d1ad149b3a7aa9fd14d3d69e1189ce1f03bdf091b62fb9dc9733adafe7bcbd68931d222a213c34bc031ff1d47fcc65b98c7ac72e9c806bbfc921068003b71d71b2086b121ceb5ae40af754885ad5b89ed28170c66746276a00114f31b98b4b08cd1e1210860698629511e3a2543ef3886ed118ee2cce0e9299b545c3f0e2b121420e4fec777d19654fd912a825d199764442d9693445428941e313452c9ad99f0532cec05e45b2d42ae0439ba0c386be20e7b6b6d7e641ecdc1e03594353eee90f57a5ac246fddd45eb55dda63ef112d23a4b9f4eae580078710aba23f607cfab2e1ca64581b507c9c20c80488f14b003ea5b64fbf9af249d7fa43047f6ff127d1b64c15ba20ac42480d016bd32507ae731f895506970a40b3990e8a0fc8bde0ced26725d31972d9817c759068fbad8a5545a9c43f09b4330a8462889d164a10c3eb8ceb36b34147bdfb5708939dc7a65ce969993b96ff25ace26f345f0130ec5012dc5cc2d03b07ac7a8168752f4f05c384d5c29548c521b8d5ef8cc78ef4c8090e86e28bd7ee74417aaa14891f1309b4eb2370d00814a784b452ea2763dc380063662ba282b13ee89bcce724bbccb5b8abbdf65e066ec1de33acfe84e366f81dac6aff808360c81b847a2772d5b5ae13b1937ace60b5f4385ec84b09f839472e6f946596dbde1b08fef3aa44195695db3be31bc72442d22506f3273ad9dcca1d65d9360310781f08e7ed604c6905e38c41d30ceba634383752f7d91086a7aad3d07375be0f3aacb52deec21dec0f2c7d855d9d59620e2d37106bbd7487a742aa1d23cd851751933e80de3af8300a83074a13d1444312f8036d9f2e4256b6579bebba7672d0de46849bded2f48170c77b530312324b0249d2854ccb7df5e1ed697eb8fab4102090bf48b103dce625149bcc154849f751e82d03209c7188c306c7f4328ea51729cb558d1200599b5690079b6d5c8b6bfb69c9e009b1f16d41a8078dc1df14c8f20068fa246f75a7ae2304ace0d447121b83197e328831b953cd39f9344aaa8c50ffc806c70aefdc0c19d385bf78c0d29a9c87a94b3233bc6882249f81275f426e268ddc045a0f4a9ec206b61b6ded41b68ce8eecee4a903ab51d4cc7dfab9e87d5659b3b3d010034124ae467a363a371a43f7762733ea6082401149d6b68ecf5bed99c6e952716e6a6cffdbf7a3ccd53949410662549f0cbd5d89cdcf71534e7afbf6acdbb403c921c35f052e99cac04abf12767f02cc44dde369677fd1ba8ba95d719ab3d2afe300cb884a2f4eb9d5f835e072da4e9269419e03faf2d397e07bd8ed5dc1dfef70e2d7c10deab30114fc13b2c57e2394760edbaed8976e887fac0723054f1a3b7ba29b10eb61588a3cbf2aaefb3363f617b40ee0443b21c4ba5825749c78dab0209ab12f5df184df5ed6f8fc788816079394a55269a19457ac99f86bb8da5d2766b1fca1aee6ddc2b9decb59961e4a0f9925b9f6839fb67bba687128e4a1da3783649e6443bfde3f7d6173f32cabe3d2e335f6cb1ab970eb37b9a27ac7499ae5809aa5340a63aef294da64886b484811c351f5a099e63af2e5112523ef24fc0c3058d2cefae1dc53ee9edf0156d282a58ce7026c0d108c93d1bd2a801b1336e828d5c644054addab07eef509a662dae4c891328f17fc7faed91869aaa6280eeb16a4558bd6d7b85267c23f5f1cb1e14a34beb98dff0a3aa9642e978864808af94a645df95da37de95dab2ff279c3b313074531010907e2c0ed30da51fdb7b6e97c532179d5855c7a16bab1718bb4c09dfadabb30f4e62b949971ba86629f69d1fb9ebc601299698de33fe1b9b32ba3a3657f9a9338d58fe8c6cea67a8c4f3bec7320d306fb5fd022e895cdde67bace28e631416f0e198671d91ef782ff012efc9adf3998ffd554940003bcaebc92da7e6640f0e316a0617dd5a7868821eeff5af720c4012e686818cedd6bed7f23b735c80c4599e42ac419c832490bf1f60f12726f4b5fc626e0debd9d438a9e53a61e129b836b9b542e88138225277a692221ab4eb10d1e4e249b70e3a62691e64614e00a8aa7328c28f022954ca2bab62670ec45a563e6203f24ad0ba1cce71d8ae81d225b2019dc7c5cabfd94ba7bc2751b5b9d5a0b6705ece4c118ed26c9cb5385c8ad5f82b74de51e35cf9aae607ea47853f209352742c8a4656a5af0eb7fb81b088fbfe36e4ca2335c5e3248e23c6aedc34a683079288b3842550c611a0e526da7a050d1a4fd9fff28259b0f12aa1bec6895bc82009d36908aa3002b0a22dee98d66a2a003a8de487612a41d5ab31283d558835e29d8dee91de408c00419317939aea041bdcf06c1a8de43cead5ad0107d382fecfc4ea5ba8466bd2bd2a9b9912efbe9a202b7a8009340a5cadb59b09d1fc0109bb47d760d3393d962187f55ddc25aba1be53aa56fc1b08725ec9e83c156bfc0a1fdbc40d4a653b6f07621d74537c1ee8a6d6426f0c7f8e0f351bed1a67da1b9130d07ac0ff297a7ac2ad3fd3ab22695f75c26ded60a06ede5f09f44da195ebaed6d4ae5f614330703ac5ccfc9e140276cc84c62e9682ac5bb82e8658c180e37929c882e46c4186b4be19792a7bf0860e5e90b5614fc15eaa85c4d8b4ddcc394104627bd7dd5d5b53c3ba9cb9ef8853f47d2a055711d5f5c49668d95516310008b5c4f1f36e4541e87b3a2b9de45b70b4e6a5202e5af4f14a6519fc5ccd1e77652467b362f3938c37df243383cdbf92c3b1b2691e56d93b69be814e859a7dccfb6c3233a8f646e47d3d2a033b64f7f9dc427e43bd5f3b90b4ded87216fe2ff05ebe28c613836cdf30b71274e015b32ae0407ef1327c12586a0b24e4b961eb3c09cd7a364e999815f49d8870f21dbe35312b5df88046528cf6c8ebf4e5a86ee6ca3cbd762b16de2897362e1520016549755c8f4ed35a5b0fe9a5924e99a089a8ac7ae897f0aa438076e0503aa0cbd2cfc064ffbf741d3ad674464eff019e7424e229ab25083fc826b83ad606cd5a65471b7acebcda11032fbda7bea4b81e05b649983fe2030202fc94537cae88be4a6006b8fea2ba96152b2fc048c83ec8ccdbd546aa71a65847e8020621737de63a1616e35cbeb78ea1081ad632c2aadad5262edaf1fc8afeb28a02efe4e8ccc4e2b32caa57a54cded2b99cf48d14efc53d896fe665c79232f92034735bcd09828538efa9f40d8f5e0238c1b5c6c2bcc485f816cacb387a1c18f538c299ea9bc5feffcff3057098c067d6b7cc522208a35d92997a40a9b658e19fa775b90f9b7bb02d05276c185eb20b99833ac0f06855e39e7f6cb9e3bf9d689ac92fb1da4ed527c82e343aebc5493b70ccb0e2d0fa268267646bb22dff0eaaec208bed6606ae2d5a5aacc523d9d15361f3b321c30a93aa7586e549e84a5b62add0dba0dbfec5c48ea8c522ff3871759e6fc7e38e0c2a3d68efbae4f6b78414925f294a3eca1b270ee7888f9c503925718ff15501066d5cf596b90fea0f79627c22c43f211e1a1c83ef5e25a4fe096df4f3174ecc300af0466d4ca75848bb9b309d61310a38701f55d47154c6bf0318ab1f12a2d0f6917e7cbe80a0e60880fafbdcbeaf2a4d2c68ee63c43415304e925a87b48d0257b6eacac3688e6316545dedc7fc04d538ab3a99af405b75fc00dd71a6d21e58a15cb8fd7217362ffc44b9c7b86d2702d8175241f48e7b9e015767ea60e54b193575620d347dbd4fccd995bc36d9002d84c656a48eab359cb09295b3676f2da9b45aab9346af02ec4e2454dd060d850a8799fbdd9fc45df8110b6090d41332a3eb472332336c14257237150633338348ad092ce4bfdef00ce468f0f0891fb5fbfb6d727ea4583e148a79d20e772be98436a7f591eaffdbd293a3616c84ba323f8efc94fffc423c8c194c029e2a9bb6a86a07994f4f2514834fc09ec7932150a8bab55e55f3f78dbe88f40cc2453c97b63b6382ab2a959729815b3008d15d6d31d84af7dba237c0b44689bf62cb66e92aedd882da966a94e9dadd8a4ee699cdabea32bb16b3941085aa1cd77608ad4a244320af799509ae97435d021dfa1c027ca9f6374028951cd54ebf730f67608bbc3ee8a9b03d59121107e0510dd633b88654a1ecba6286b8e11cf6181aba45a3c196d99809b9a2e1668ca2ed0382b4812b5e3d7d2cd4fa890a3c725db5f90d36ab91e6d60df7d033cb344ccb8f06c33ad8adc5c94a67dca7553a569a55086a376e0398482aefc17eb4320caa90263b694efa0380a558155c8ad78468e384e5ba1cbd4010b61a335ca7b3b0eed8358ec2d5f7b96af7f401f3279eab9861ab938b56abe302f44592c19540b80532c0dc0284e151e5208b525c01b55a71e2a9417ea23d6edb8d358c70050e8223a87729d8ee6a05644212f854c9e2570506cb29405975d026af131cda706ec3bc2fad9bd34f8eefeaea63e6444abfff5d5ca587635ba708df63ac989a596767262573a45cbf51cd1e7ab4996b8586019ce9015153daf65b281679aa2c1ee1af6df90a4bba060fb33eea1999bfb584fcc1caeeec362c91907bd50ef361f7a2b75bd95e23f0a4da1509d8eda3bdb9f6ea64cb95ce3e08607ce7602dd0b5900f7d93fb984fad9e481ad46dbc83d284dc12d70ff9b693bbbb6dab1839fa7f7ce025584cde5349e2b3d3476812e6a2031c83de8e3bfe881b821825c59b03cab6ab752f06a9a30a7b65de4ab21336e42582e486c8d48c2da06f1a28ad314d4b177cbf51856e91580e8f4212f8d6d1334d709fde222f8181404b553be5a2660601c71a031bb6151b5e03d44ffe32937e9b8446826c5da200bf76d4b97e657ec5ae824e240532fd6dc723d3ffe25ed82447275cee2b16490ae89fb63e225d1794a77615d0ff743003c1254540de8c828e219ef227a7d556b51f9f3fba54bbf4d0081dac5f9369e940b9f31b2f4866580a50dd5ab9247ec4189ae0e401d85516a2534e002082702aae996527744b7db7a13e67d5d639e0c0d084aa323ec8331c75220fe16205411482da3d1e019827ce8fa109158198857ca736122193e8be6e608869dc76a25efd2715a31eba1c9118bf84d61f06f23ac6971d4e809c713ae185f6c4c3d80907e17098b739e615f0c8dceaffe8d346ec9348280cbfaec969d577aec1845980a3801a01b30032b52888d91a89c803f3d0fdaddcce2508e0452d80a71d28793d856d5d68e192b650a4f7a8006774739d203be4d08401843c0e8d974e6122b9ddf380ebf0c6f8d88d74619053a3a61deb9b9e14b170a88fd0080668e0f4518dd19a45671bfd6ba5bebe79bc486296723110693d09a35b3987c2c24a3c811e48327c1d68b7817dc4fdb9bbbeb1b3761262039a8dce37b52aad64b281dd2a016d6f60fb061173698dfd8d141859a3d896b9bf3736334600f23476c5098feb64513a539e5c3b37d1c7a739a827118b2dc9c3e0784a9a8ebbd4d33542cff285eebb95997db777e237138aebc7ac1cb6c5328101fb96681d2a2210ef63190223d909e2b1bcac4790ef748d5acecde4e0f7cbf243c3772a37b48c64ba6d435a47ebfe4fb9cad537fe49d4ba07b24e51fa1b0f1fa15d304773c41b422a893346246de80ca71bf3e91b5f968f6c9951419ec1849c92a86bf9fa69383019a11dc9e7e5a240d66efb76c31decfbeda93345b0dd395069d54d50a0a24ae401bf5132d85f252b358219613d4cacf7ae0227ec9aa5c32c8f304d8bc38124dae220e6ac7cdc14b17b44b1f1df61526638a1cb9a289a3578cefa650173c594f8eefa99d20f9447748389574108718098969bc2f03fbb94e3ae0ff6e26ad6a774b2e606f16f0f5eaf6235bf1adeab6a898100f1ef08639e018353d015bf9430f222bebf6bdea7625d180fdbc6c159ec2e99ce2b607d827dab9aca8d82d6db302cdd23784d8002d50381a76e772b0eda0952d8d943918ba06a22ddb3028217a07514dee8d4926486994896d31b334497da11aa28aca62499ac8d20fa0181672e057d6ad4ec7d5e92dc4ccc5d5168fb69ed4927422597ede5a4a1bcbdf6235f4768aadee99972e5c740d82784c1268735e830001033345de1ee965080f35e6668047b215da61b228af3955d0d3b2afe68c4a1c2d823e229bd0aa41568f084571eb4e175003b8b502390b628ee22102ca746a05dfbdac3b65e0c9fe3ef901935e3662f4223e432afffda521d27e39fa585e2bcb4de3ee496daefebe35951a642f22fbd06915f7f3d20855e89891656f95397582e1b8aee9aec7dd095133e45cc0b246e4adc52f71926aa0df1fc00e221a420e7b3e3cd19743c55514331e034388cc0ed3b66ca00b8c4cc573c5da5c0a0e29ee675e55006fccf03dcb4603c595f106c3dfe1a7f0c2ae038a936d32baae170d13716b3dc99f14b73f8277eb01b47ce3295bcad7cf25d7a549bc1187cfbb639dfbfd38392f6a0c425e6e0ce38d4650176458fd2cd6bb9a7041c81e53239d723331bc2da7133fe43664970341b52259c5e78e498e91fdf8aaa3094ef26cc0da971fdc4705be042651b252e5cd9faffb0ec4fcad2ae5b27147e723c9f079412aa69eec1863935d95d89203e3aed25924cb82e023e94b9a290ed16ecb0c4b6520563d101447413a2daf17b139a489cd7f34fbab38c811013ed83dae56fb7a085f9ab3379c86799ae0f84115853e7f614d62496d5bc29a62e3fc4665090244357176e5c65770ff50766962e886a72811d7e55cca0c3078c28fca0393ffc62988f58ba5745d72eee1fea3ebb22f1e83f40e712cc7c6305079ea6ca14299cb8e7db69ab6dfcd818497e01082d3bd4095e3b449e44c9f595383e3e1a42b220ee1bfcefee013e9a79a9b064a55c0e5ae851f4d2717dd6a02f0e27a2de44d8d7dbd4a8658a10e6b5fda32dc96a7d804d7744982be6e022cb2afcbc84dcf03f50d0c65d36bd4a7e665ca3ec52711c39599cce7bf1b03bd4178a6308efd531556e0f9d0fd7f74a487205e40090c8aec51dfc793a002195dc2e6188508362aeb34801c9bd3dd972ba1ac8f35c8ef334fbc293767ad0e1db06b69ce67691a16a1a5dcabee11bf218e36420b4935099d3609f7d7672ba95205b9c454911ffb7382db9b6ef7dc89d140390d24244106e3f3cbcfec265125fa15bfab0885025197b3f3c81b0f945810bc09d6f9393b30765cfba890030b4b7a00081bc068fd2b6f7e8bf9f971b50d036d391787e1cf8f3c97ef463e80589ec0155d48ccdf58608ea5ec0358e4a7efff6d7f7bd947cdc184b0fc9c22723e404ef915c035766e379cec645e6333ca0e2060e9eec14fa19655c6072c2130a6c64ca7c2a32c9551e5dc6786f913f03b77111f524af3f02dfda3562b5d46689031250778bddb48453a623096cdc0f67f7b4cd67cb95453b7dc622beb9d12d1f3f25410180b732eb9dcf6cc6c6d5b51878e476be95bc87df06d91728344e23897953a97414796f275000b9eb7f11e089dad1e3230722aba960128e47289563fda6d4ce1878ce3b1d8d8b07e95b76490370b9d45374ba0fc60dba5dea6b58462989af71908d794cc1d186f8808b077b1f4db582849812cdd38fc88adb81e86caa723eada2214179177c231e4aa42f4feca9629aac4d6fd45ccffaf145843731acb4113399c828ceefeeeca441aa6a2d68e8935282c02d903989393ee3067c130da2678a3908636bbda463f9ecbc0aad564bdfc4a460f5c9216c5699904346eea36ecee92f6bb1501a931f1ee19ea1152ea16cc4696e914c169a1bc70af06e169e05b99d056867aa155c41cdd26a37ee6e66ec4b53bf68e4fabed90932d7e240d1df92de2ee8926b22f4693344607207ae65c9e1ca986f7989eba6becff6d8c9e037e047fd95c7f5c77a86842845a1ae7c7855d584d72978bb094d8918b8c8f8e223329cca9e9af5cb4bccf66cd7215042a664041795451e10078d9d2cf735de32c24a4e7d6b1771962138c16c967a578469c9e0e2ae9b65ba095e4e17d9e44da139bf5fc41963be7e3d4419a30e954dfca49feb01727a710c4c82535078cdcd5d0de29370b1b4a5e242c67a6bc2cfb9f67caeb567fbb59999e39b9f0d6f61b90f45733c5ea4858b149e7d9a32c65fcb338461445820ae61c87b9364787ebe329f9b404850e1046cd380b36c7202226b55a9d2229c91808cd1679da2b80aa73137bca3535cd05f239a5c084895c29b23a8943d9d00eccddffd5b4859054c6f982e06bd4e8002795471c75b0363bf64e91a0a1d7770660177e9d90a7edcfde30bf721baeb5091173484a9f95e38e36d83acc9739326575cf70e4fd31610a795d55c992182fca28904b9594a09ffcedb4866bb2a23ac601ba1bea2f6a827bc55b0357956e750f05df09621dbc407c3dd636fe4607e1ee22c5755a3e3f83750f22592be26932cb32fa353670421922e4997e0c17e8bb1a606dd1607e0ba3600b8b0452080d6ddd1a6095bd5677790d8bf9eb103a24c22b1ad41e77b67f4ffec11c917ca10917162b34b4163cb7e4deedb6a674db396b5a5e1e54a1efa8f389da4d94e7eeafb7ed6dc694c04785ed5d4f8d6f51bd2643c22b20600a5a4d06c0efa8b4c3a1356a8987505db433711971d8c100a1f143c382e3b40acbb3f4dcc08061fbcf068dea547840c01c7ca885440c7298deeea68ec73c881049fbb517578da74d8f09825f2f55576da1f3fae2585bd013904e60c20b1f68cfe42d14394b90d214efab774964f57c2235d7a900c4ef0a26c5ceadd243304a9a8f773bd92c2ec5af7248e36c39be141840c49a37c703e98ec6cddab97ef15e85121c5677fe4454b940741cda6595c4ca762126e0ed559ff3789f986db23866e3f3d8f1de2154ca45fd30b31928a48ee18b3918b60b291cc232b903444d57d667ca5ed09433ead018aa31a3caa41e610e66d75a9e388328a59433e9b8db6cb8e0adebb52f91fb3f5848dba5f05f45f8d370c746399a94948d344ba8961fa72ad3a580c45e5d4ff394f293518e3308aea2f2f7ef2ab82a0a9a19e062f95be60454c83619e6e997b00b9d77ade6ceb7ab1f889af7a995bf77d03bf6880309b81def61f05d965b56f89d7cd85b82a7c62d7336e20fc17ed110b8cce3006921b3843e1b189f5ec328e57cfb13099004433d2ca48de41a41bf70ec8a986771a45b70fc16446ad2775cd3564f896845b151177abaf2aabdde14c0f7a12dd69d7d350e52d4c8e3989c6edc6398ee36cd8d2de624eb2a53d68d11ebb47641c347ac13e5794b54a7a3d719c14158d13ba424217fead28a72edb4ec378da6597907cf497ab8a7f78bb09ee5161916eb942c30c7587ef0d9564114fc1a1d51d1fcfba0836f7bbdc9dfed63589c48b2e9ee7efdf07b95486cfb8f4282b119a2f2f2084d4b97cde54c628b75ffe0e5c19b3e74383e1f89b4dcfd194677a3c6fb087d9b2b4de2ce384c39029c9aebdfa60b8635ffbfebf007d7ac7e3e4c86e94a67bbf488830e27bd08377e0f252706df0c557a7d78fb44adeb1bcb8489fde21ebaf43678fd28f7e957347d180efc1e42cf57f9e2099e8d0f09b5653d053ba8bb25582f530505b834c3f961d8f9b8a093d31f78c78ba8129a323531315aeb5b65b433ec95c11ffaf901077bd0ae21409758cb2d5c499ab2a861f7cf1abc8d663b753653cd7f2dd523c9f81af131b3e5ab8fa0b1552d7a7293004d0ea9d00f7e37dc82033a53369cdc6014cf51e7d9bbd769060e44f27669c466f2d241a6462895dccf6883e54277bb32a99c0f6625ea82b2eeeab5636d25a535fdbdbc333f024e1e8dc516f17128c3c69f8483db83bf062fb748689136ec437e589d58026b2f536a352a70b5920ff89e92bb964b110d7f1467588c9f6ddfbcca98eb3fa2f66c2f92ed4184bf698cacb29fb088c7a8e5274d1e4feb437eaf6d3748ae99429fb8d8c0e758599aa017233db8d2c1d3afe60165b57a031417dea11a0d0ee9ba3d70af2797ec130ed1d2c0955f5f12e72fdb830d90c9022d5bc41839182a39c9d980764f56f2ddda917fdef9009d2e0004bb17fb5bafad869f2be5e92d4d893b0b7661ab3bc8764761e4ce77e2d359e317600bf18dae87c0fe5954eafe0bf96621b760ce3940028071e2dd1f927ad766abbe4d3dc50cef5bb8a385a04678e0037fb08e7c360a03f5a326056d623232424f78fce65dfa24f13665dd12ca1177d1b74b63b4fe98d485dfba385a0524beac389dbc33b9efc7fab9d0f67cc07e598c3e42f77dfb0b0376785370ccb7df4a1ed273c0cf72729dd9b9f538099555ae882a3fe1b06e40765c632242163e686178fa517d029fa2051da816d5e11e5cfded2c5b7796802259c1a10b620658eb9461d85e0eef133db967d914f05479dff0d555a7237c9d38ac3d4b35135dcb67e6842ace1cab9f0321c0d5b178663f49ed65817be14a2c07480fa4895623e73fc816a4595a7f440a27030abf6d8b3047e0c36186de872b9246f71672c6fa4544a046e4790a958d8aa7a47d458c2b09a1089f11091a858a513b17f454ffbbd6dd3099072d2efab79885d5d46ca74b50531d218eea0d35ba4c30b400bdf3bbd21e4cd149e171e4ef88b45fc2a987aa801952db9d8007f4372ab805f07e4d0510cc4442e8cdf477e12bd9879a7661d00ee207e1fe95c405644a450bde0e2764ac4f2e4d8426af96a81faa1f78a8a54d164da04b9a5fa68a6b8c91dd04ce835ca403fe4fbc30561b261220e9c36497de1e735a58da203edfa808a1d3d5fd5f6cbfbd234d75ecba7a04ed314e2844479426f050f7793f6fa0571b4fa9dbcb50d251b7dfebe72cd0c3d6f0009f7f3b2e18ac6cdd09e1ed233b62216aaaac170d3d86418ac9f80b78cec8478ba57bd83e7d98be276bac7b48f092b30158ed37893dd7d616b802300a54ee84c6bc391735ffaadc808a210f30aca2e140306c171e85428fb85165d00a896026eebad59f77ae78ca7420a6b0b509505914ce4de2f6e49c574cc1ffb45ea1f198e697976a1f31b417b91e278b04d161d7e2221334e97f473c842e2e3ace5c6394fa49e42d8cc01e3c8208173740347b751c083bc6f51cbef46113464e7559eba343c73c46909f343c2f42b779c43bb5dfda93180cc62a1a37e07b00cc2305747ef3c371ab27015088276c6e71f4c72fa1b99fc3b34af8582aff0787ba861d2cd959269b8dbf9d2eb4fc513f44b96e1eb955b2ea93b84301199321ad575e9aeba6d1d9058dd5d12818da99c43047c6d38ec3cddfab03d190023a256981e2117f5845b4b980183491ec30c3434779e602619a255c2abebebd8d7718f8605b1a59416bee0dd78db8b6e9071e63133df69ff44ad9da466d8a50d4a034eb80869bec8bf65b9d4b97a8e04cce82860bcf19dc09fb3a00c519911c07ebd7fec10a7c0ed32d76033d082b053776b3c1a9d80db379060ebdf27ab659a18925b4e5a76a71baada13c698c669b3635c0ae1a8c1afd4318a60ebeb469bfda54ff16c61b981ca8ce1f621e9e73b40d7bf4bfd71957b7d6fe82e046b081d9158c4892de7aa4451337dc7380db0e54502bd5eef258be43f9fc5bc128fcf288987c003b83d0cb9c2618378f113f3901742a4e3fecbb682ee39834224f30eb7277e5a6514546fe2d454e055bc2e04d8fa0784da5c5957fa79846d1fe7b765aafd554c5766790ebca2a1f167f50f6ef411e2f9c60041254bdffcc8a4fb90b230b082d733aaacc97ff42e28fe33bceb00d7c916bf328cd529560574ea3c8740f51f0e21c365539b861a4da12a5e73927116a96adf7ac95016542dba9e5446b09a376d068db2b1b60da2539ffba1955061700782cfd2afaa72dac2a9fa4a7a4ccda5ead8daecee2b3214b06ca7bf9c8eddfb54a987783097241d2f05a47f327cd7bf6eb9eac9005df6cf0012fce5a1820f6d60587f921af7b0e5a1415d08c334b49e87b966ca3ac7b51719d658ad8b4fa00299e6ebca315c2061dc001249cb8be2a53a3f3cd724c20c451c11559ae41b9b391c831a360a96cdc574d7bf863c907397055f6574aa1ad02cb88162442a8ca6b19dfe244db4c63e3c3d71e246a572d8704009134a3cbd6a5c8a54c89ce300af9636373c910034762efe80d2044bcb16b98bc9ef3075e73e902453d2d951859caa553b905558b7693d50a9046b4b5174bab40b8fe88168f627234bff79e60e37867760b5c46d0cd3cc2ece7271a9b62f3a9775d9c6170d867b33bc1fb61941b24fa1a84e5c9da3fe10f3338f44187d2c3f3faa93aafce2420300cf003e5c0ce81d5b144e4e1131d624086fb212f5195cbe00a28f912f42843d2db70b5e166edb355f2e5643f56be8a17353cc1f917d7614672a219bf0f9c84110cd0ebae1e6f40d5dd84beaf594317962e1a95f627fd2af1873a57fba24d5e976cf77ba3016d305cc9bceaa7ec5f397ae12343c2bcb249631582680b3beb2a4f8967c80616c3643871503307577000ee16561ed64a4057c321e21ff258a797952375f7f052eebc4e67a14d6412c000e25c4f42d3ade106ae7772ae38aa293a78c6838f6c4773211eed8a53de7d30a5575209b8e8b8be55b409c03460733c53907bee0c8af473c79a3df9c134851bc476fb4ff247046c2d3c51506f91ef113d42e90d7d9641e52bb28b9639c44666c526612410c97137b31d4a0ef5b02d92ad195037d27403797045335f685049c4659babcdc0283c065768057c23a70ec5e0af87a4ac6805e1d4814a940f91ca07a3bdf2f05a36abd4703d770517bd4289ed4550f6a8b3bbd3a2ce40ec055c37422be3203a38e0d48ac1c0413ae74bdc5d694be13a9297d192db938789b3a4e6071eb395cd2a27f3761ae38da3e3a21124f6fe7ec67b4f449dab019a138e5c0629676af46484f70ebcc00ab40959815fe7cb3677d122e2239ddcb82081ad34b2841c5453231ef6b3b44aec98990b964848a4b733eca97c525f162d615b563e5f7c5ec63cf274ecb9bb54e3ff873883143fb74e49ac0982f566c7d0b09d3b8ac7d70239edc109da148868a3fc3dd44113c0d6704b3143b1e315cde031a9828ab27da665d35afdf48747ec091d33fb3ab43cad11bb2d8c59c42218369ad1263358c734c46e8934b3c717b526c3f8af06714fb37cfe1bc8f68c5ad4b6d4e8aca03c34d982431990bb007e3dc09e167dfe309b4cbe79d728622cb9fe6e611b251af214f7d0050359651223a8659b019d6e106ebe776e08b6f3b07565f9c160b8b98d7635c7bc9b0c6d5ba78023dc8022716832121e01b7236be5d8d9adeab3e46c2f34141efb2d9c4ce92472f92a53981c005f73fca32baa6b06dad563c20b32112fcd0c08fe08474aa192fe22350b1334e81b1fd3bf48bfae520af1f2589251e9829180646b6be40a8425a17310e6aa3d63bfc22fad3229b994697b31aeb74714028ade89cd9ceae04db4aad355383fa46c9f14b19f687972dabd46827161eeaf7bc699909ec60d5685f91ea8de29f26a64e8dbb497bd10e3c054526a170ca890f53b2127ea6eb289b8a3ad2addd7ba0f689cb6023eb5f0862a8b9a7c36bb1241cb97dee3e5e60eba21a9ce38ce4e59c8e939d91cced00a3e056eb43a3b497e63415c318a2deebc68c24faf8a5c039cff455a68a4e5f9be83cdbef03189dea07be516e353ef99d22e1ecc9f3a28ceaf1d1289e3094db1946d3b34fe426ba6600d75a0c198477ea64a6613ab712f8a6ffa4ff97f3688e12d47cea890a1db4f5045d715968120cb6bb291fe9451908dce6f404768e309f4fc776e25d2a9dd263105d21602178f5c046019de8543fa39492d0aadc672927da7c95200401bb00593e442aca1b3fd4c9637992e99d3139c776b6daa3dc2557e078c7b628dbd526b9240b8901404c916b97bd390590d6075b2cef26643a98eba23293470eb2e542c4f6bb56dc39a9d88d19cde1e410a111c5f6e646a1886c01100e073aababa56e2ffa8a87296d0f6a56845a3676917801b83a2e8a1b3d895e37d3f9d59ca3184949f15c295a85d577b2e9e5625fe9f1a104e6aafbb3616744773f48772548250e9a0eb9f5b3084a5cf26feb746a822bb5fbb7465d133e3435c614d05d86d574e1fb7c84a7209361c5e4c9335e1c53619a6066b3beadec2046e9e9a60aaf2e16f349fa1f693b44ed4479e68d211965ac643f8d2e60fd5dc00d5fce1612289fbe0e7a00e6689df4aecddfe453fb1d3a50d304c8b2f4c17223d9c85e38979a7745f119a9f0e71d6ea9120d2e6fd7530590e50891fc0514fdecad542cd3baaa7a00184172552fac9749a69bf7f6f63ee34f4c05c342521df69bbc34a0f4f7def17ea2f0830a55872515929f4605cf3508cc8c48d7960bc49f168cd801f76133c2080b1cc5be98bf8644b651fad74ab6c1a8c4b2cd15596c720641174f5abc9305e8f51d7d07e3f0ce3431a4b2df71a6047acb28a802ca2cb54560066f60f93025c87dc41a29744838239e116b25b351010c482aab3c05c19d4593604223fe6f845cf6c22d6ce1e2452cbd1c19163889e4b3f1adac55af085c1916cf7286b6681db47f53172eb865ca039819877c86316d655fe17c5544ad3a6902c46f333851252c9e57033b220539459cc370657e5406d34490a1c5a33cabb0fdee41c8d387cf643a60f1d52b176f5f1031359faeb2b29ea9220bf1a69c127751960ec80b6dfc01e61927e2854e6af457b8e4273e8940a2d6944b8e5711c4c7312a8a204174ddd5c545a3b3330087a3b4f11763e7ada0ebdedb90ceacca92ded66d828542d42f916bc79796abadc63276763d15da9744311fd4ec9e88d11b08a7105cb7962ff109eaa695b17c0ba6a9988290b1941a15282d875e2cd84651a77c568283bba4815dad6b8a76ac92279a6c7f95cfac51515b3ad3811a8209817ff523e8f81a3e3626fb66d96da1713eecfe534eb7cc42af1534779c8acccda32fb5b4078825a45f886bd9cbc7bedc6b2944c38d603ff75dec371d6c97c081b579de215e541ea5effa0c1d59a2a371168848ff6d9a6f80249c4016e700d17541a87e20abcd8733f927c44dbc5066ff40c68dcf3044679f333b9b7353234dff479d065335bbe9f089d6653a73cfd7c86744e546f64593858a5a2b5e2f42c4e24f6deb81bbe32938aef92e45245a1cf5aec8a85f1f5b1134be5afa21e3aa345b511416de19e32f8d17ccba3ec432a8894f00e75a14c7ae64698cd6ef91b7163d3888705ffc206336621616d00846fb5b41b3a361b5916f3822b24bc1551242192a2e91c176b2ba502c68386ae8461294da7524603d5434aac857de59ac5b59c8d621a5b2673af10e1c19a62f1213a9bb8b1aaabbe0d651aa3639868bb4ac4b4ae928e516731a829b38eaa097ea733bb1fc7297bc1c72c66027306eac99ee305bd1f52a6a340f578512a38d2d5f45811f1ed4b80769c1b2ee67607c840a631455ac3f21f880e2c22a2c1c49df475b83e2524c869bf155f8adef1564fbaba5940bbab3774a299b8835a5e4479f26a148e5df77314bf02ebcae32b8bcf8f0940ad847feb42f397227e6a3d51b562c83baaf8e5c038e87341557dea23b082b3f5f04f432b275feb46c00527e2426e90a9d21e86ff9f29290f1312bceba49257111271534d0a18e7508f5d1ad8bc3912e39da6ca36a8024a03b0376711301b6f2253f6bbd9f19002717e9b4b7c27f04bc7ac2eb9a55e80ba76b208c7a4807a35063ae9d7451bc24daaa0a752128c29c40880a9297dc414d39dfbe7180f5e18b26b1bc1ab6a8f8ae62086397d775f23d3495d979e04d9e6d4dfd50296a75c632e2b5246de87f6df2b8b0df35a038c72e6eaa1878d337dfd514fc2e2a7af9d10bbfca90f7925b41317eceeac3260093358c378f06af6f4a92a5e833b9c19963fe1587f5bb23e2c054e2fa38e23319aad264ee5af38aa7a8353eaf3787ac40fd1bc616f06dc9a362726a503abc2aba858292da11af494b2ddab8c26ce59e724b67b07e14217ac8bf2d67ed240c1582e18d615c6009e5c72d6a8ef82c86600d36e40dc971f0c7ef2dc88404d38daac2242b64654bcdbf862d9ff4e9e836666aa9a76f470d1455c4a8df81711ffb5de7f5ab475eba13383e06bfb7652d16ec7c37ce95270ba8710b68a402adae54498fc5e6e90f87e1caaae6becd217149af1b0e3d71ee0d60c4a3c0ece0b38cd8048a510f63c31f3ab9eb55fccef56c600d465283899dd63f042950d0a03b9684e98ad0162e07ab5d2afcb94c25b7baba54fae4295b097a85fcd740f2ba1d4fdc05e61b36a0910f313101bfb2ae1d201882274d4065c7b8aab76f0ff1a8219f4a05e37425b5761234842fa06b2f4ee542e93e7d8f20aecc82b792698476243e1856fedaeb8a7f5f152a2b0a2a8169573c3f4a0a0479595bf4111c99a8e2954ebc9b60e1d90e14ec83a2ec5e78ef7523dfc98507762cdc5dd7e78dd6190b818040ba9d2f01401fd304b203cfcaf3680127c65e8eaa51ac9d076c02cad8a8748197774f3e4548c33b7e586d973fae53a4df9502a543082dc8bf01e24b6d11a5663aea5aca6edf7a82d06c1c4e57286482661e25d865463cb6162268426da1ced0790f15f06a030234c3fcef95582014d6211d3bacf5da8a8eda61786189ac5148946db0b0c3902c3f680fece487dc6973a9725dc88f6c50a899d1336a46bfa59556848452dff88c108eb7be8ef802cd26664348cb097cf4ceaa7e9b646a2ce0dcd1223c2396f49ca0e82a0604120cb068bea222cad16ab6243bc533a4fe11c07a5b5120ed110414af8393c04d3e4f5ae5b29c4882f68cc00ca94abb18684ed7eaf766d485aec99e464ff666ab9705ae365e5c76a9a9e58da902cb091f313ba84b9a4a7a1882d2a65ff7de1df7418055f4d899513f214c0cbd7e262858de1b45940f35f39756e381e79173c34de8156fa87b627832ef63afe9109fd91f03d35270f2f4aca1116931372ca85360ead62cc29adf5a067c6eebcf47f8ad2d143fc75249c2c25f4b0d1dfb633e3dafe01649d8b456973979e23dbfae11b834e84605ea1df7a3402835cf901126f60abfcefc52744a1bd7220b2bee83b200c7d0892aa491befa37ef704261a29a81b0fb8957843f0cd1247620460ed7ba9214dd09b982dea13d9d4f27a23890065e074e6216807db2836a92038c6491c1941c3e8873e98690a29da5639670cb2d450debb4e6f5c1e3819f9cf2d067ca6a606be6ce0c7d6a5b57555fed45ecb002c541125958946bc029c3e392a2019dd8cb4cdc3adb61df303981d731cee39587116afa307c8c5b07812f97dcff6d59f168f2d78951e31f07d4d4e6d5c83ee534eb8e9a76a07081c14c05bcae01fa2a094060508c694d073258b0cac25c05c01967486bf61e6ffcae842eddb4f7dbff6e99f09daf1dfe75811d9582d0d1cc45772b51ec6e10580fa30000000044c8301cf5a44217559ab0fdd870a5a2ba08c546d41db6b52ada425a93b29bdc7b6f29659201260456048e039bc65aad564beb8c81a9805bcf965bcf15baa222e4e2c643240be2eaf3c6e3434422d544e68ae8027774a7664c75d1976b71a782a668a2904f44b2750d8e0e5bd02d6c174b7d0769afcfdb4e1011898ef19b559fb71d1f9dd5e76d67a8931c67079c14eca9ea5cc0c0439847109f1d4011869b0f939b0f944f148f50df371ea2bee7057878bcaa2d566e3b4eb79d19bedb4e922370521393c60020aef08928882970b47e801b9686a85e382a62443eb7a4b5d62a99735a1a7b266f0408389e791e3fb09ce32b2c30420499b36ce8e4b119819b62f6d85400fd0cfb2a09ca6f40cc6d30bec16f332b5f6191885ef1cb3b9d5ba361a47e0f0a3843b0a40cd2ec540412fdafc28dc8099c74ef8af1d79a1a8e8a277003685192a8e99afd2e13a845292fa8d5c0bc90c142f93b6c28b99404a0a95d994da21250fb22ddd37c5272b52fc645810a9411bc8c911204a4efe031a6dc3556ed996655d10a3a6ce8f15e6ee5ac024549091755b34b6d6a8418250d251101d482286f78212e33886610d3896dd53e8409e57dcc2ccf03131d7a88617af119b3844259a69c824309abf54c1760e408da11a6050f199052290750ad1fcdbaaeebbaaeeb3a1eff03e8811881809a0fe5eb306b78c00e4a254ecdca9772fe60a654408d06a47440cd05116ae616aa2665046a38ccf038a264e86a73ca4b9967861800cb016a7fe386a9728a812a19500b9a609094260420c99272872425044c54806725e6abcc909194b876653e4da9b20035a372c68f13aae01083069825495e18e93d9aa2f450fe8c0ba4e810228b121a12e527866ee401e5ec4cb928235484ca141746dde8c8938fe19316509b4d93872c357c90a166a41cfa1d1aa54d0d0633a50ae5d4624188da87f1c8bc15259306593997d4cacc1cb490a1928254c9a4acb5b0964329a2e67ac156de1917d8b88490c2cc8626193e656674a3b1c654ce3035d4b6b450fe0f0c2505784eed0b102595d2c9d74e285fb5149ca0754035eb910313a232555ccf14956e444259c2e7544aa0c6a25641ed6ddcd4e60bffc3c4e2746b40ed8fa44cdb192148509ce7f1744fea4b67adb65686e7793b4ba4a23e089518a4138568dbd1104cfa6be500a551ead94a27fd2cb6521f0060467f65599e35f81cc09f7382167682feb08f769c8d1960ec730919a63e0300ce39573419bca8a2b149e648ff0e014d726ccd9021f2f3e64b5065b92e6bf05f3950b9e5381637d2bea27b9a039c7409199e9af3e19f262c8d593b8ea0e3fcce7559878ff408be779cf3f11c05b5cf51d02d16e3fa7d5acf0268ca672531a21b79684373b40bc733a905555b8ee3382e64317e218bf92af0119000377af2d90d6084713d2d2880f9d14ac700e8e7340260057a5a10d358c7c352db686e03b5d65a6bad754408f5c66687489adcdb86dfc444e8370366e0bbb8f5b42100b4e62981fb700b7cd4020a819a9bef7b3d00dcdba541007e1f8d0e4b97cabab7b77793a8ac77fccbf9cb63c7f3ec4ffc489260cc33cff332adafeebd37cfaceb45dc0045264d451634e5f3c6d227429a37a2222d2276d3e9be11f13cf971449df65702be6b4a8b4bf67603861b2cd818938ac70a3b104902c60521dc0d2929a9aaaecfdb8da539ffe7ffd7d071246dfabcdd409af373fda729f4cf18ed355730a56bad1c05a55d174b3f127ff9c8fff951ae5a1859f9ffff7fb56bd27a73d6de6e04756bad75bae113fab8d1627399126de82eddde869c86985425f071702ea8961a6912a772fc4915377de33ce03624a4d73e6f4327f4f0470fcd24c218a13343412a0cb5d853bbca4b98430fa10e39e80065d3e064db600ab9a88014642b49f2d1218e6043cc51c21852f2cc40b50398b02a4b68260a880d3f326c2c4a6847422d436a9020c28eeda4dc446a31c2a89a4f7843102910838316a51d361051f68ba63069c90f0b620d14c41d20418e786e8434d8903165e367039d49610cd50f3b569448d9456ac00186508c4d29053b8709a10d3c421f70e8a021c2a801b459a811c29e21153e750965e041dc818308e4b47b9a84532e84608a8835a51de523449223a452838a906c4b09ed6c13ca84247ce981e54685e969470ce10a49b6cdc81321210b235015ed16b5ed038d99e882468f28a32a1c214c68820f5ba6431194183483f8e2051b565881080a3ff617a34dc290d40c5a0f335c943113a60044105bc45409c7dc008606d1e886a48532296c2825402185588836d28c5d838c17473258843190115970d9e1cabe61ca2e9f846498882520d9b254e484137a846144d85e8444192d28e4416b115a99da495ef6ac872d398834284b9cf860aa4185a320e12da98a0e3336c2c480b193c4e03142157e01b363c892254a880dfb8a0ce1192544fa1e7941df2122cf8f0dc3d1e681481ca211be300b0aabcc76f614aa2061c212b48c50c587941e4f441d4d760ca6adc54868648828f4a3c951988588050d2118414360ec6c2b545dc28837b4ec1eaa389122f63c097968121261125b18c131247cf263473932220242630fc9829ac876c424aa508530a14dcb5eaab289a4883d9ec0d0e40653e8c5c86632a4851fe109479b07d1121a620841413b84a01d17a8c432cc9e41cbfe51450422255c7ab24b68b261308960048521a2093f9c8ea410854c686c324041bb0868274c01151061b696304a952629628c27529a845798ba18d94786842efc08a18e441c443f68fcf022489cbdd8a1412523cc0e427f5a764d7f55441e53c22350c21f64d8429688346c220945a6fc08e9248e0c3f7a98e407a993383838b5d6fa83a3d75a712a025aa0a005e5cf3fa8fcc71122f8fa1ea0e307b6ea7f80c90c2aea45abcf9b4f969eaaa0ce850f07c30ec9aa9d3e3c7c82fcf8147111c46e5db3eaf3e663eba4e64250b438436f1f2da375a3872388f321c38eb1fda46fd30baa7ba2c8f4fe7aaef4d818bfc97dde76649de438d706b5dd77cb7dde788afc3fad566e3c50d65aaebbf154f188e91bd623eb1bc491697cac562b10b4f52cb56ed3c37aa2f43f1868eb5cbf31464a46453ba4b0f406f479db41c4abb5e31ed45af557f9ecc63a33ad7650fbfc3868e7f3999f4f1d8ecffe7335e7bfb52399853860efbdf7fbcd351781b9089d53707c6539a62e9c31c699e316a594ba5c2eeae22c976b246946dd62d18cc1d103afaff26ceb5f91ed55a2946959966999a6f47596525949785a73eab978cdbd2359d36f9953c33f1e023629895b039b94c40bb677d757c6da9bcaf6ceb33ccbb33cab4a9a7a4c3b908aaa8ab67403f4792b4a5244a43ba0cf5b118ba2eec1488b659d7cf2479276fc7d23fef9139f4e071ff42f83fab57f32f2470f2889f9ccf813d1cac9fcb2a8394f1b29c5948ee4ffb038f5f8d36a8e8b7be3c7b5a6e11873176c5212342369bb66b1bcee81377b9f53aceec59563a03ff18d3acf3dde719a3378ee75a30660e76a91a6dd982334ab1fa86e3938ab9af4e6e056d7d6d7e93adda7d7cbcb20e5bceb74ad5ca73be53e5da85e3535d1e21d6df2bab17efd68936d82e2e03ed58ce4e7a2b94ede85fa0be55da8fefc5e1a9afbf4259ed626d66bec78e55eefd17cb0dae4791d0f5179cd586db6da68c6fbb4fab94fd76976562d22b114f526140bdad46b4e2d2afa5b11ac02293dad74cfbb4f5ce6f87daabca8e67c45f6b134e57040da902aa6951a2c9ac632e740c5b4529b2cbf4f7fe2efd385ba4f35ca456d4670516a5b515a54acfb7fce5b755d47499ad547699dabd5d66a57a3f5eaf7f18f4fba5a511925298e8e613a1e07a15b1a4a31a7980aad68461dccbd1aded9101bd48c24a594f6728d765c61ee594edace76e3881506e0cdc0722afb139677238a4a734ee1e276c47983bfbce6f5e2a44d41f306b8538ec16b242da5b3ffa7b60e62d8ec2b4c29a674e55118957d89e71f07b334303a8be9bdf76a35f598b1d53a96efcced080fa7e66070c32b4eaad85f4eb1e23a78bc2b8e41c5b33fb1ba239d7d098eff533aab2bc0ea9a92c4d9bc740bfabce958d2f1d3637dde7244e9283b9869dd3675fb48fce65bf195868508c1bd5549ab3749d7f33cefc27432d7e2b8cbf1fbdecdb3f7ee67f072aff7dd4f6996d18c83d22cfb13340b557083cb29bd9996f44f7937d6ee41ded1aabf766fbf3c1b49ca2bade6d82216a5619b6534d33ed33ae5ab157d8da4aea11ca7cffdf71dafa9dc2ed5d738922ab6ce334a69b675f0decbf18ecb60e559b67ace16dd24d5a4b74bb668a9e87e77e719a59cf4c0eb97d351c5ee39c35e5f2aeb977e9e7d89ab625f4faa9334c92e556d9702bcc23e1ab318539eede77f98b70239981884aedcf29b58c56295e65f0f590f9e0dcc9a31780dcc3e62b5baac4a29ebe361eb3724a86e39de5d0a8f3e65ad78cec0f7cfd258adb15e0db056b0b6480c701cc771dcf3f8e51f5fe141ef3e8fe43837aac0ddd62a20cde1f6cb3fe2729d8ed7cef187d9af36a1f457fc7b0ef2150b966276d6cc1db0ac9104398bc562f18ec53bce1a3f3e5774905f1415afe817a662f76fccb3eae115e0531deed3c7711f77c7112966bfe3e5f672bbe295afe81c8cc41e746f767ce6baa27b3015b8776fe5cba292cb34cfb37154c6ddcff2eb8d644d07c12ccb33229d5bea5f02f1790684ad13017c6b4713502ca3318f528e13514b6cedf8d5e3dc37daf1e74bd84fea1548a7483456f997a2184df9072307f4252c87c5e889237f4a2ea24a1c23b5e1ef075b929b932627283bbde86ab3699bb6692e365b929b932627a82c54a12ad4942ccb33305ad76c9b1b1e137fb8dc05a375cdb6b9e1312efa6bb6cd0d8fe55916b2e9265dc36d49b42dcfb24cdb4a5db9cd56a90d83b6bdda3acfa29680f685fa8ff7f38f355a6fc11c7cf047fce5bf5aa7d845eb5cce75f29796a88915f778ed9c50134dd40438621aafb77af3c0ee35b0fd3e9024d82b7d123561f92b51131fffcbbd123501f2cac52dcf2f7747318cfef8ece416bbe8ef36fc2686833bf99d1c318dc63ade413d73e69603c727919f74cb21d42bb749d22b27ea75de4490ca790bfc12c63f5fa2837ae6cc5e922dd51c6fe9c191fcd56a5cea35a9e6d491fc3a18ae4df888e6c23fb874b93897cbc5f18f0b972e17a6b95c2e2cfb1fedfa1f8d35cdd769b44bd3600c8481301006b2658e9cfacbe8f36664b3e4ec977b718cbdc7de63efb1f71e7fc174c88e7f1c84fe30b2768cbdbffc3fee690c5b759c97f1485aad5f98bff4eba55f2ffdc2fca5398aaa359f1debd748aee8afae356f8d282a7e8d28280de62c16d7af166f751c6f912defc547f26968c696d57cd249f548babc174b73974b734b63f5f3d6e87116d600ecab91ecf8e52328ffbc8ed3ffe9a0b5386e61a056abc5f14f0b97ad16fec1b456ab8565ffd3d23887d5d2b3e6600c8481301006f28e20d1fa01fabc1d59e9600bc37440e8d7cb59ebfc91b6e7d9bd5c5faeb3e6f9729dc98c4307e4f55e9c39be6307b56b1284ae7339c867de00e499a3a01a733c5259c7bcd3917c166bc4ad9c716e699b6e7be6ac91d63c858df61bc95187221996e11f5ce21f4cc3328c8b68ceb8c5bdfce239e7170cd30f9108a8f44b9a935246a301000843170000280c0886c342410e0421164cee0314000c689a365c4026250d23511445510cc3300cc33008820008020008c02010c61802723d000a6a9b8dcc186e4bffe3fb4fdfaf9bca47bf4bcd91320bf9f1d0f5f159fa5ad8101ba38f2655d947b54f5d5e9ed3ae7f46cb0f7a3d2c5ac7158a3e99e2c1489b2f256d0ca989984cb813f5fa1c3d8ba414903c4d52524125f03e21e45c2eb89e75be867eba8d3541ea07d1ce73dd85949fdbb973b91812de62398ae7091aa09990b5426d1120221a3a707e1c8d8fcf47c239bb71105da9cbe53dfedd9f28eafc73b801ad076fd6b188f75756c702279fd3974351200aa8ef3361ea1263f4269c9ff05427289479fd78a3e321899542385a781b8857f42b1091bbdf6936d9d9e42824d1af065bfc393cc0003f66a0abac4d51d9e3e5ca8b0d8beeb09b027c1267a0a17661621a1b39a45f746aa9942c8d284597a3b666cd37d71a97b19699878710460018e6f3f66b9d4a384589404288ef7438ed1bf4fc85ee145c911a6c771876aa64fac9ce98903af46075c31cd862b8b1b733ff4de750b87c227894653dc09248cdd004af27ef299c81fbaa3e98815bfedfd1b48bb6f0420682e8430af8b953dab3406ac809f71525eb24213336854504be296a4e76dfc2799702a856e6a01114aea6e2293a1a5bf1d55f0b7b92c5a0f46fbc2319826ec663661891fae9b195847c95839e6036b081b56669729f08d34f7c822bcba9a91105047b5280955ecebfe43c2e8316002fa1b1646a4ed8e107c79e1cf0321aa517ba67f9d19151b6c46dcb6c8f8689d877b2f9bc69a148799db2e71b2e2d59766feeb6651912049309fe8e903016c9cff78c4ec40c19cd473ab158038e012ad1f94196475b1fc4469fb5d6718c3b9a0b7f02322b176a5f05f2d47f4ea038c9565a7a56c7077d2241eea8b4b8956b15ba593d00d137e744df6b1f11677877979614e9db64095adcc0cd8b9ec6121f9f37bd870b2af094ff4b7922cb67667951cd0b121009a39a61ebb8df0213196a6c9feae3f749f125956b92eb944edb2ae4fea8740273d78b7c1b8f07db27dd667502b4807b548a67fcbbc3c76bca12f6b6e5bf0998393c5cf0b42abb7b9c3f409d87a09703ed125e8b21a6c794aa794adc63657f3096f0301e3d2a307f035b0f099a6d8261e1d1b018513fe2fad02518982a8d4b5a55425ed685a4cffff87592ff7d9e5e53e1acc48705bafbf117d953213dfe9dccd4783a19f86cd39d5837b5ad6d275bf8a6f543ed949d92a0186053588ce380363ab655bf01d4501a8dbe8841327b1b5e7cd6829f89aae5cfb4985693f003db4b096e6408094d8aafca98d3c1030494a8d9fe0b9ac08443a78e764b7068f97ae767aedfd174236c6895c5a3adc79f261cfcbea4908bed05aa1ad9ef5a6e8361ecf67412baa8fd780280789c9daaf834a94a3b8e398745db7cbb6d338c5d589170423ab5d7d7063c1e0ea3c34161d7bea59afac356102d409200cf4a51537098635f47cf340531e732b96b8d26437c504b4c7ea0b7af91000b6bfed34bcd724ddffd1266bb1d8accbd94c952f6431f335d9a4294b9511247e73fc91b4d65446308fa67f1068f2283e5cd4ff2a3cf84671deb422ddfea0a916cdb93651553b33698954892afc1fbeb76d7cdef3b6198aff353173f59bb14caac93f1c2390d62206a1c8276bedf510cabc12c362986f7c90a8457e666a54f65bc26726ccfef864f4e161004781b4aa4aa470c5553a30879eee947bfd4f05f1cd383105d4a4f471f853818c49339d792e5e297c3af0826da51fc440418ddca167314e778cdfbff1ea1b5d4790d754a5b3c31a07bc4160db0b59c849efa43eaef11c3a64d5b9b3b1a4dd18e36927251006c4eecb92c762935552bc6c1de1798000c3a89a99ca518e094c8a589eb428b0b6e9b0568a79119d0502b980f0d71d584f2f693570621e0e0e448743d28fcce3182bc7573a4fd1d4099589b2f475443f5329b3721c41b18e8a53311a0bee939b4b0a3d978ec54cb0df71d33eb4504ad7ab0b983f6d28326b9546d154d0339b2467e890eb5e765932af06c5aedfd3de27c5f3bfbef8f7ca57aa2eaafaf699fbc89817cd9bd9bd47c61fbc623e24689d4f899b649dd31f7283069d4ee65ca4b1d4f48460dec0c2db0f38d3429809ebfa9456f60ef0287f58871575a0938b082cb7057bc1282bd981b9e9902f2b4577b88d017b13ebd5d2c377f014de0356a6022ca19e503f8818b58b895f5588aa20d33d2cd84cdf0e112b1af278bfa0186cdbdfef40c82139b6e4b5b0370f04c2d605f8bc70a541cc3c2e4fb773c24a81a6e29f556c8b1d3423589ba10302d55724a0e130df0a3676edbb73d4585155013fb6d58c8197733b8e6c2d6a39fceec87c70970ad58d404ea36f5f998242b9d6d8046745631dc84f0a77d7496f73ab586cb0e2855ac4fd4014aada02ca73f6f2bee9724345c4384771fccc976cc9e7decf29e9fdda1575b26dd05401a564f4a690bb971ff7d66d5ff1aabe0737e7eb7c9b4fbbdf8cd12dc8f060672e89ea2b46260ddfbff7a42e84f0cf250cd46024b30d1e2f5b1e21752b08e03877e4a88c1681b9b5fb7f5bb8282ac90f694b79345c1cfc15f13b87688a30dbe84ecb856eda06b707b8df589e6b54d4c2d51939b49fe0bce30dc4a899e79ef6bac3ee8722353a99ef01510f0d1dc4b5bd5ced8f6efb50492f95ddb3ad0ca8065ee4d17731fe4a618a83c1151afd8eb2476f99e6a621856477b804873d38f60e58e5ac03147388b7b63aa80017317421a1a8dba202db9fff721436bd18a5501a068c87df9b72819fea6e87aee222b1100b9a3b50ee85543b9d6e38f96b60d04d25b8841dce2e68833ec68c358ba953ff3bce1724fdf561405193df4d1571e32e6dcd71d51e706c69002dd98a7cdbde2243e9c8eddcd12334b9b6286c7083edd27f2648e3ccfcfbd8a48f5ac89f9c70f557a2a9dc72e8f6630b8fc0887e758890998478626bca34f7520bdc26110f8b7f15759476c8a8f6ddef1d83a242f51b6a00935230d5e77860b62fcdafaf027bc8ef430f8418cc9126e5aed0a0a934aa1cec7471a03e71bfe63da8184089bab18e7f14bae240428f3cc57d801d24395d4ee20a7239e59d1369208942929da3a8936e4c490fcad53c17a40b8c87f38706d64a04b922560ae86063268ba4309132f121b6490b32be37d0b8803641d396ce97656a933634f8201076a80ba20b572031758af09b267250e8dc568709882b29224db6907ad046bb45a03488623742b9c48808323dbcf6085d45611d8d3275d144cdac88cf302be21ac4ea61908c871e96022041ac067819cac2160469b3984a464522afc5ee4f80cd0d2b2a573450233a10bec21580f0313be0c02cfb0b6e346acf24613c5dbd2a9b64f64073ca05540601ab118e81e1c4149bcd64ce68e267268c96e3c5b1688c1b73b2cd009ff71bbd66c39777921cba5cf284cae8f62073115e21a924156dc83a385e4499b44bdcc85843a70bcf0a28906288294c79294eaa11eda3dd594e04541e9cb8a44f206a3083c2d9862c131ddf97029a53deb0008d4dcd054ee09500ffb1c08902d77ebe21888cd69a9d74613d499af2f110a1313450113ee21eaa1d805a7ae3feb4bc9424403fdb19f2d7481841fc213a1531fdfd0420a5ff8526e0f11320b1e6be37a1927356146232310fe9139351799c08e9a1475f2d1b5393f809a8f70e1cc85a610c523470024b831297e77e8646fe4d25d7cfe0f1aa83f0294225c7c2747f0e0db7c7f3ea2cf48a45c16fdba2540dd8132626e8931b88fd0641e3c306816c6b78a2d924e24b342e848798b68b0bacf741f42e0b831b95860453d1607778ab4ddf95e5cf42b11778a306620dcbd64b6bcf230f44da233f151efe2fcc258bed0668635e5f7513c45462f587bd4f645d657ac6f30e31514044dabfb788afdf4c4eea0de145abcc19dfc764eda1a715241cf2e0ab045fba8e294bb8a6c92160ee79b567a8c75a1819a9fcfb1f526958fb362ab1279e3921a46d360a56e41569ffe46ec7c8ca638747df6c25cf39e35366be10d81834602b2f516cbc13d6f54e2ae8ab1abe53e81b1ecf5d6cab6114fda37a60bff3693542ccafc88bcd7a02276c3397ecb0c682dad6c270d90008a0b8e3ca759ffb04cc827c135829772637977247a37e9dca834dbb683bb5b353b3fc240bdbb4452750113f960b5cb5057328779c66d416a0656ec6c7ee4720d5efb0c9f0faf50cfcb08987d035cf89c7f67b708616fb8ab45249de58e56fc598ac96f5c4cfb915ff9becce5bdcdcd1a1e40d6f0dec1e4c2ef5e52c21742d5dc3bd3574861c18aafd3d0e428e5ca33cd530f1a7b54c9908295312e5160cf002441e2f0b4f5398dbc4d1ca668362b96bd3277d582159ad7f306920fabeb24013de9c5c18eac2b286172908ff52aa78a7aecef18c2637a396ff98ee0735fc2fb144b052fea8b6b1805bdce0b828b682fc851e576bcfdd0b560472afc80b982682f1a03b920bb3cb2a4f60b0548ff90c1f1a41f7d4039a8cb2c52129dc061a68e91073ca020f1460ec0fb6b7b472bc4275567031680327176fc67961120b5e057c8ac0b859b032e2f22958e644d2fdceb5eb000064c36d00690bec8b08f6ca55be3be353b50baf84473ae7b1a8d32df8e44c1fd754fc33a3910b1aa5231003e09ba8ab826b30beef378e38000b8d6bb21437986684941b6524e7631f45362e31c062d05d8ad075b8cc8780491978a9a5164bdaa9c7394ab010b3d2b7e497dd66b9373fc8fb2ffcf396a3f34b00d2636e867b9600a06b2bdeb888d11e06f72685e3919b1819bbbb8b675a77f1f8cd95131d41cacb37fca570d6fab714757ec419ac71c6ddecb1c75d633473d7798a7e8e93d6b88544742e1b08d3b78b5860d52c053695a36e85c9163a095f5c60d01d31a3419585d394a18e0d6488e6eb776ef128df541bb1976309a760d342ecb2608ce89a8e957dc701ccd58504b7e7a8f5bc4452e6a76b11a171b4b5e1a4736daea1447edcab95ac120cbd803016a2e9a4f3810093be3665029c3d1a5f545d88cf069fc19d3d79cbf2d5070d4c2f0c25b9851625af763ef578f1c2480c96becd733a0d100f2460be854abfd46852e9b2aa6f51aec5310063dc99831e1530035db07a20102a17919e5fffe46b1c06b9720af43b63577a15dedc472c2bb5690a00020185fa39668068cba2828992290e08afb2f2b47b84e0b267b21e1e445e8bec2a7dc1c89005e5aa06e0e8eb030344c28a820401c6848a1001aa839b8ccd6b979efabd679bc85d92cdab851d2430230f9d6cb950c85e6095bb53c2ab620134434040608aa73af85ef8ef2cfd6cbc293fcfa9f14274a89973262a7dd61f5c11f3b0b7a899e136351aa3fbab414359cf59251c37c62362352e6fcd812f4271dc110d0cbf23df41fcbf5d828cffc0bc556e1812dec335eb17f2683a4af90795188bbc646c9a9613db35a545983f311ca0fe768bab1f9e418fa4708d89605afd05702f1ed081ca820f9602e9d42289fb6ef238dd08c2b6f30b52ed54e2f4e0869915e798f01c3149eae1a257ff54ac1d075dc88ca768a2881e0bc38712b3d561d883e5b0b9f1af543640ede3cbeab58a951c846cfe0ffbe7867a4119f7f1b245fd988d3373783862f9066c2529aabab0dc9a02454101d88f79cb4d5f60dc32cd907feab74acf441012288d9a5128650ab576bcba1a3244c9d92a36d659f33a1a8d90e7decb282efd121b7afe86a3110c7d66f5b2c9d95e89db185baf538b8de3d21fc004ad5437cf7b8b97fb6fc06ab91a5fad80d1806402f9b3a90f60ffe8ca0507f9a3265c680f40c075b2802f487b65821078d4f98a07088f980e1151439e0d74e2b6194b2a08361502b4ab49361c914f2029d3b299c21b634a7e7960c907e0b25e34f4448d2800f6d27e2797dfd40b9c766257d3c66031f4bc6df74dcd8da04551b133a0a757828c49cfd98e8325e8787fb7a282defd0f32bb2a1ceda2b2e8b60f1a3890edc7844cf25dc50439087bb2fe790e82a7741173d76ef805ddc1ba31bb4f88a78c0ddaf8be0e127f059c3bfeb110c1fcfb402d7126007b425a1582c40e1e110341721eee38ead5eef1e6f1db0bd02bc363fd0a8f0756610a792bb96da8f11f91b2823e2e3b3f2f63533b66906bbc7a19a06d8f72a7a0a854c60d21245de2fc9a9bcd429c166587d5f346019a418677e04cf4cddf01e3c1d735ea237133297a86bafcc7f29a1f12b9968a885b4d0c141ac6a209cfc54683ededbee3d24d2f770d0bda23947e82417b43f1a874f63de8f0ecc3f397da24b0842724121dd7f309d6682909a312bfb58112eb7a0880c13b954e01f2763ac06870acdfa7c7fbe9cfe91328d85d33cda84611ea3a7b8a4d0267856fd0926b8613893df5850d4bac7c50b4966f0906cb56ad42d1b003a7f2bd38763c2b0bdb65afa50c6596fb2d38c31af8a099726e5d7c79054251cee9f0f949fe32b908ff6029dc1c82624fd2f73f563631077810637cde1240d87197908613e843fd6901cb4deb42598b2be0a0ae0371167478550f8701ea63415c214a9031e383d4a3821d3a3aeecb3a56cd2fa5e3bc68759f6828961f32a684effb617319f289411475f2465deecbabeeb1789ea79ccefc05503c41ffb0dc1fd85e831cb6d793c706a8a437c5a935382d5fa1c09fc1658f46d82122a9f310e154037e0851b68fcc170c08ea2cbe77c77fb2b56a4cba7ea2b6db61770c400ae952c83478c5df3583e69ca65470b36ea9cace60e91d4e990b0555df73b08b94276a390374f6328acb77bfebe018ed981ec00297f792c9f851960266bb30b67481e89c3420ba85ed22025fbcbe4f8c5d7b795633d77efe41db3581efc3e4f063c880ddafa299f7e7da5977959a56d77f050b7e8533e39310cfb54721a6d08f6b24e72f700e8aa6f29412669eeb87bfb94cfde97634930b89d4c307014a56756b6424ab15786394404fd7fa027f96cda173870b784914ba0fa506cb8b8c1fe38c55c74dcbd99094f5ce9828d133ed19045ce2b9139f2f3e81ae9eb3a5fd022a7c7715e1690c7e34582995a554c04c946d266b5ebf5ec21270c235f2079c8c9a70d4b6202ddb71e50db00f96c6c4c6b7398dd4325d1f8769ca18cc71f64dac6e92b0b17b7e33366707b4606228b37e1cb2fe67f1bfaedf8248d8ed6a8fed3a1bc03c4871604f0fdb0338e4309922e80ee6b7c9e7a307051d628d1d297ebaef1a9b837f8ce758d894010b56fb4a9c5dd19c3aef1d94fb8c41e369e2139ca750ae2b7e3f379dbc0f2b84d6fa1c3dfe51aef8c0ecf96c6f8ec7b68fa509f413525dadfa1c1d46fc4971f3e63422ec469c68a4f4b59ca06587201a0c649ee38f129ae30d71120a7b74fe2b09088c00b44824ff7a10821ea3269f8a9794ec3905916d768da784c1ed96bd5a978f05f4e783e7c229aebeb55b0575428d9f44f3a0a832acc97cd3a7da4d2f63daf408b51bec6b03010e6d8f0b9140b34a02b0782af9f52bde144ca08eb86982f7d274e5e85cf45e480462501096838872a7c16044800dbe0c53c43fe5f8aa5f5c2228c3aecd0be94c75b2fa1dd64fc8dceef5179fb20921fc05d0d43e10e62b28f736c8d1c3830f5b2df3be0c7b49feefbd737fd14b940af7f8718490f0be2222810d889d4103545f1b1b9d5533c4178c7c486b3a0fafebbd7a740b0e94c0005f34da5fb807c87f9667b0bec78faa30239d88b1365b98099b0360201a9da6a1ad990df6209471c8d582a468625cef97ece84dbb1a34135ccc2f0fbccd88448f80cbe5e885ee3559282348adcf6f3d549a49b05e054cf963d0af5566902a1c2184645134a479219eecbf8154cb6f6c068c365a4989da7d8d06aee6dee65af5cfce5159b8201fbe90eca055fa2b544f964df80047877195ebc0a33804b4571339014883212309ab378af90e9cd86b77c3cd720e82da6f8935b980185259f9d068a3649e0ea01cc4c7a3e8c756b20690bd39c7ec972f8620809146ee58af297dcc31301d36150026645a433f14ef21d7f465d38c2883b2c4ea29400d10f86130b579a51e5f132564d4990008375b1fa1677ebf762943c144547172148b34a6904b8bdad3c5a02805c4e5991e46ad05c860f984941fd509fa40371b534c91de018e68ec9d8a592f2b32b7973916fac2fb4702eb613cb2a60b0a3f852fa78942e2fd3fa16028237098f769accd613f542ca94387185de2a647cb758310f69c93b6b281f2315a47188d5b9d8f16b3dbe04ecb4cc53fb6078be38992828a64d7aab40e4103d2a656da24bdc0075977ad8622f82011435f050ac8f9e947cb54a6abe89af0eb0b9f654d2e7c2cc660fb7f3bc2e577c3256645b27d43544dc0086c15df556f2b97c97107d9865c3a0c13016df578182f24ba307f2c5079ac087c36a588744c23a322a7ebe4a3e4c7d01f7eccaed7daacedca4e01b47c631d84e9e9730b789c57622501ad648a2b3d48385bcdd3534f456300820a8457f20051d84b5cf978232d2f0c71a9d173d89c71a6cb799a3ebc7282516fae5cc7eda21ead7edac638437c4b3027e9f8387d3a8549363bc6b8ee5b59bba7b5094cd6b2797cc0b47e9f03385478fc9de48ae2b186bccb8ef2231a4192efc559423128cf85363bb8ab5fdbd508358223ebbee8303a78be23ab9b8db77de115b75f21cd3e1349c6fdd8217b208bbdf43a5c7f57c7c4a5081b4524292149a8179bb39a7ba2716b37dcaf58a844d55a70a898648d5e8057988ebf9fa0dc3126911d5eb1b8b1a1cca7a469420981b56d466164caae9beb8c0fdbc90496f33395ab4c3de7a98565282384e192812f66adf1ea04548d8e32a4a0a84b8615d6d6301c701af539357955eafbdb1d82660c47f9792b6a999e3fde7f50d5e4a7120b708bdfe9f035e322ca3bbe2554a9ba62c52d6553e83d9adaf5b311b857bdbee70048222f35ba6f219cc6e7dd5ebbb03eeffef75475131f4aeea500f7271396e728bf0819dacf37500b4c64df73d1b9867d9535e6a290282d6ccd272811dfa7d435026eda4325f956a16b19b4d439408139cd891248602f9b07c8bfa5aab979e911a030899de8ea7f17410b8cf9a34c6683c16fa727ccdf1e8389e0db4a6fa3787ac5c044772b7386c531a394c691cc71a4ca07405953201308723504489e9edeef22cef82d7e9db16b3a8d91ce6b030c2e05d35c7b7050b2cb5376e507f13b39f74d9edd1c2f78093b0b9afb96c5c6ff44fe038f7cbcd6414bc1a721181d59e93ee8b3c4e56da0e5abc8906ab03f01e0ebbcca990c473ea4deefaa3f25c0349bb98df20becf945284062b969d18affd93b1232b0ab5c44a4db4bb89f19ff3fb05864210c0566a2696156006232171408e09c0320e12aeb34f5b75b09e3dc6e637635cd357e015d7ebdcc50e23c03b4b02bab5e42e074ed80ce550982842ddccc10e5a843a4cbc71ff982c210f7d386f60f0ed58e3dae42389cad953aa67fe4e0b4ffe3858b6a6352af75ea65a4dc536501a6d79088f43952a1b52c37d764141affdf03c84f956e881a0fd783c2029dbcb8216437de99a886cb044dd4473d7cea2aeefb07f377b166243bf3e1e2d46d0d4c2920906d3ed194fe33f11a185e230622856118c0edcda8236b37fe10d41c33574d51a9190f935c3f7a5d927f804a68f6d4e5439d38d041bbff16d3c9ca5d0472d42ccd5b099822551c5365e07caa7774ae615f6b09942286b621b1fa8ac1855d66db532e0f567d0d5f49b68ad4b1999b4b47c05088eec0c9d95e5a770ba9abc954117c6674932d6ee67234e50e074e00814614a3d67f1acfb69a22d662d2423526b89c2d243485fb48ad42e0e13bc5416ae0c692007994f4e08676e87dd4b6bd655213ca743fcc6edc9d3d3235e62cccc4260928c33cb591bb390a160976f800d1991b18eeecfad9b411d96306b7a06891f0cb6b7ed760f76421bbcb11995b15f4e0368e3c32e3849137003d2af8fb1a2f927d28f306b113096e71f0c8011c1eba609289319d2953d7df1e37e08a150d9f3a1b6ed64a8b9fc2f248742950bfb1686aee6cd612088602a67708cd6823c6103b6ef3009f6746f830f0b11ee2899a068522660d30a2c2e1756731ae62338a7dd838c7524b38d7e05e5111222ddc61c815ea31ed593de09b225fc6c14ff565de4fbe97b568addd63ae123128aa0c359c2e4eac06565dfa06e44c6f89474508499b578a978903035e2e53627706d78f77d9c45570b040304c029e0e8771da083e5bf88506d4ebd489aba9b21aabfd4588c951251552a9cd1608141bee7d4e62f7741bb9b6edcfb50a70139958bc23d580c03697fda6aef932b363e621c8eb12e078306801a4d0cf172aff583423a86dc213a8f0561a804767b0d9c3173c6305df725ab41683d05df6cfc5072de6cd3d2d651addf5e76a8e8da9f28756f237a77741435753e9e887d461eade37aa6940e169b093d773d111738ab6bdd5c971403002f5f49662e7db4e9f3c6ef946b6690381c62bd42fcfd3e9c94d098063a5f81d438c5cd322e05d0141b818a645b26a94afcbdf91b0ed8d716c1f8b184ba2e527e0b8661da6e0d6f8e1464c5cbe50adb3b370e8f610a65427d741ebbde65c4e01a48c8f4c0ff62dbed149b615ef022b90c963b9f438a33ba416a06e4499d8e53c8589638a9c37cb23e0281c28f42384e36bd1eb07b731cd2e264e12355af1796470b72970487234dc1d8b4875a1173fd35876c05b91331f0d8aeebd57a677059cf9f415b8b1c76b0a45d1f7147f286052351209f2d7c0b5a0b34f6a42b370e48a468b4a73a12a2a95b81bd0a1b1c5236b868c890e2dd6ae89088aaab34a7487757668167b11b8b0e362959b37a8bc1f6242839db23484c8def2a38fc24757754e946bb4d66f1bc528c366dfdfd480c9bbd0af4a78699d8b1aef05a48b1ff2684ed476452a3d195442ba5b260e71f99859191e086b248638b4488c64143ba5883ca4ee2d57457fc2dc616ab16288b050b2e15ee5a744491f06ffb16bf85b882629162b1a4c2bb253564e8e6a13f2779b99d85c858745848f7eda07292548ed01536d824437637ea24986b5d516b71b6d85b70abe85401a9f0f45305dc32374f47480e9af20abe15a22ba857a0592c2d3a16af05b48ab416260b9d85755a74a41bca57bbd13c1d0eb9a4953bda026a7692221b079d14e75855d42d9a2d90ae85a1a11bda721a15889e4a2226e906bd5106254cfa9a3bab627731da57fca64154df4262b6c016542ad215b4a8e0b4b809be491b1eb7d00224647237f624e4ad5ec5bea2c3a21e0ba85124ef358e1d12841bdde2862e298936a805540b297b378e4e92ca41cae27616d2271a478d04ee5a2cea15e62b7416d56da1c68b7499c6412485716d0bfa9293b66cf159d4a8428dca24674d6905df0af112d3e957fc1635aab0414972d0942d9a67d1214662deae6f01b59fa4aac68126dd3859159fb3f0544bb2756515388bdd58a4a79d94745db778f22e29b9452b2e4b5e8db798555c5be0a9a8b56055f863d1a97192321b87ecc1a879e1713d15332aea02b21a2137685e2149c6e0f2e01da17a4a4cd4c75d4220507a9215f1d8916f284a72eb78317667b5605b8b8e6187f94a7e7a1a0788168fed7f3d1131c986326d0db4a21f761c9149b8b4859652f246a782fa0aa8b924636d7605bec5c6a265f1b7105b34c5e2069a24e0bcad40c1428d6712c1360e3652cfd9cee2c63fc9d72e0d34e9769bad287cc5530dc96e9355c0b1d054c1b2f0af1859545ba4aaf065491a27bb462983486ab89d159f85b845c52265e197161d1c2418dd537312796d1c1cd2ad9a0d14c9ec5d1a72d27fb71a9d24754b5b3ccb621bfea475933269b959ed0f82309220a2414593a08deb9093bc699dc5cb2e416dc3cd305f4742724db7e8d893906f835808f69ae4d5f88a9aade0b890beddee2d3a649380e94ea82321ba7a85eca18d027276d7989584a68d83fd5e4b81cf1a9914426c6ed60aadb509b6cf0f772a10f1c1a332a30d15dd0ec3396877cfb0224d9d5f05aa16b54f2191a071b890fa9ded4bd000c289b87d3dc9f066839d945f9b7e851aff24950d5d45bb0adf626ca9e17c5f61c34752d1d02db0aaf02cc41694168f2a750c1cbe2c91ebb75d54960babd6d0fa307015aae2bfe80bcd4dcbef9545ce8d82d2f9780f5cfe02926333a10bcb883ddc716c005d7caeec8480216844abe5c1dff28dd24b1dc4a7ce30c6eae0d02184106e595ce952ff17f34fc491ff22b700e8e77539dd5f4f42a5cfe516ca700c7cf6ee5de4eacd224949947c3a41143494369ddfcb1d84e93fc6f9187baf5053b5fe42c820e91692043e20ace6e0761081bf8a536965ccbc79ec5b56f921e3744bc46824c710fe6b801ce303407ef7f78835c8f0bda98c4541c1ec9d9922df90876d5a03b094d5388002682b5f84988a40de5c8118c44162bee7a13467b4fc81f3e6da5a587887923445c2fea0b5983cb1a141fe2e4717afc59a13ac3c5ffac785653a1a0eea9f3128af83d290836c588693cccc699939e999c2a457fec8f64cdd4618736f906d462a3f607d814b5f81b3f13d66d59c0d2f1a91d402d47b1581cbdef453c6c586462161351a96a56345cd4077f3750d9a45a43959bc64fe9bb1d0a0929358a9871944cc804bebd2410a4e91acc020acd57ea716fccac0e79c284aec52f43dfdc42a01a334746429c49bae726a347f282b8eb46eb6f51f54a298e72a4f213e7b80a10e80075330fbc564f8df3eef71a92fb20415b902cad31bf4553a84c7f160a1ddeb1deec17ffd59a0117c33d2df4602b111c80f95309a284960ac0ab6e6f6aaf4daf2ee426c5c6408c1c87c05b24421a481f897f259fe1a9e72aa87d1682203d6ed190953217041754e9092af5182c74311809c27e1be9a67eb506b5b74165cf173755817819e9023aa5e779fca90c7a8c3197e3703a750d5b61e0514bf0ca3d342649f0ccf69386803d54fed7d90858d77b2a87051b40535cb9ea3b544cab124cda817ecb738bd04c8d8e50d6ef0d1229ee3084b517fd40b89ad2829f18bdc179f82dfdf2692102091c282df3aa0841350eb3c71b0d7b2089ba38928a1d3e2ab076519d90666079dfd41f65469a0eac9e3073d6cb3539dfcbd128bfcf5d218f40bec2545785a498910641dcadfd6442828c9847741d6ac548724a509efdf950fa603362e126cad60c78231eb6bec6c0b8a52916358a5244abd7078940abde6d037730cc6f310f113bca2f0ed9807a5bad2237f6da1c266c45c1f2e4b693d7f49d52afe4c672a8d7ed506ea3d1918a122c8561816374d8abcd98467c95ff22c43a0ccdf87d1e2044f400e531fb7c2e2c32df694c96feadda4c79dbfad6645731b3677775ee846e599ebc14874aaa5f94c1d21aad8566b2a405c2fab6abe603a73c6f7341e48b73052cc376c1fe8e617109daf7378c653df7b6b8be8f433713c139d7e66305a241828029bee1145465de43e5308ef2149cb1909a55618a700871b8a767f07bfe08ea5fde832cb3fec1dac4c1d58ab8bfb416b82a96d147ca0ce8b45de704ed47723b8483166f748b2adfb4596f1b838fa3d8c0c4e03fa215a6a5c4016d6a60d9d35c27473b419ed92b0dd585d575cc045bb3b66a6a966ac657422f1f607453175ce6863968a35c7bc9777f1736cbdfc80543257a998c6c1e70b2088150167b40dcbc088ffb54548c0426b5434b196104224b27b73e50e7e0694068c06b387a6ff6b5d39ede0120ded1217e4025cdfde79e7bd57c313fb994d3cafe7b3eb66d98cf69fcfe769a0fee49493afb97ff257a7f31ecfc907777017447b3a09e8ce96656fc3352ccb762cdd7b6992f82023205965add5567949979aedafebaa15c7482446095c1fef154b75462a670d30100b707dfbdb7befcedb81a2684a23608661da73279e9e538b5dcde7b70cdb4e7610dd79bacd743e45c6d7dcc7fe3ef6323e0b42447f6474309e749e871b3ee982e84f27018d3ddb964d6ddbe0679d0b5fe0cfbcd2bfd4e17ca832778841a25792945242e8c15a83e8e936644627a57452297330d6f0532247d3b711640459e263cfa284c408c402ac816280e13f9e0fa36108e6ff29a31094524aa5ec48d99112bf863bb2133bb2d3e9c80e9d9183e73bad156a6bbf73e7f6747d1b5ee3679226c9c1c979018e86df115ce8794416a84a6107ec435fe1362cbd0e4499eb2b110132ef0ba537233b09a597836d605f82a406488aa0ecd390c9477d1aa9ebcc6a75ec7134c006ac66d96758ad58ad17eb30c730af8efd25cae8a061b3629473aae786ab972ed41fa5e2ea412932fb5005857535488fc2482f3e8db4ddc6de6a31cab7e106e952ebd3408d7d2663ccda6b91ce2bbdecb34c6615467a18f695824080af8cf35791527635a3d169b41be7306b902e1bd7fa344a9610197d128e066458f658d623eb2a50c56ac9e751924272d329722252b236241e44db0f1d7a5400070ad8e00d3f56a6693283b244b33b9d73c648639ca50f8710b0a4b6f9670f8a19f6fe11cb8cdc8f1decba1c12332c62d8e390731c026569db7248c44adab36c843764c5c741cec49fc1a40d86fdb015c0210c1c9a2f6d0858acea2727582119a2a3151a7e3350a233090a02efebb307d7001cd24382443c7d8898e290483a19754087fb2e29e0374060fbd706e0e8c131e007bc43299e678c9dc7a6cc3edd8e272d1f66dd0c9e0e7e0f6809ecb903dadfc8d5237f2b9ccddde98c13e74ece39f3f8f46d47a40ef201d3b7e12fa11c66e86f3af3c55eebe836a3514ae9e3d9ed1f7a8a74e73dd83dddf6709b50cfcd8d5c1fb11c922e565e1b3de07d658a3fd4fb3acd349bd97fdb6143362b64816ffde4071664f271bfde4eea0c440df2017bbe87a66fed3cfd3bafe766cd1f74034c3f43e168d88713a35896659e14fc359eb78fb37dcff541f4bd9e4e0ba2b7ae87a6350cce0dcbb3466b43f488cf25def8d70f89727ddd66eed77b6fbc571663846f7febb2eebad16e3331deec6117df6af76f47358c30d26d067617c2ace3af9cc10e34c23ff4868ff76f950cbe6639140d6dd6304809de346a682a3d4a51e40bc4d765461878c3148a7cb1e12bf4e96f189d27087bfb0d506511c757977b3dbd386e246156d870830622026fa892807471678900e7cb2a2809867f63fe0f89a2e908df6197b197298375b75215d097f5af6b5f7615d65a3fab7546beac9dcd3aa8cd8fc3e0388ee38208228319449a734e381d44c2fbd290906a199d9041f9c560a5e10783d60703283e1920f1c9c046d3344d73bfaecdb9cd6079f7d0b40eba600ccb1a6e9d7675d8a5fdd651ad7136dc068137a7df632086fe68f8c500474b193a82446e33f1b71b20206a56b5209abef75ffac578d8c7b285d005d7c7d29335a39c00cfcb04064834fd0f06456030e46297587aae49cf2776ecffd2d05c83d5dcc79ed28c37c7cd88ce494e079c9c5b9b770df6f73b62c9114a7c5fbdd1d01cd8cbefa8be179cfa4a971ca4be3006662cd6486cda1bf5674c400e516bdf74c031c6d0d7d3941cf192ba6e396e1735d6499dcd8c074ce9eb33ecc62d47d431cf28b0cd8e5991417984066805d8aa6c33d2b7fa1746b12e7c81ef753954b12d90b08746350d339419a804f86509cb0fbdceb3d3f303514a996be4cf0932018610c226b0b4d045601009709e3106159c101a68365a53024a410689349b2f6c401fb021c285920f054ff85280c447448c23454040a4a2117b8d5ec6d22ccb1b890e118b44226e3b24667c81771c423b0f72c5e3103006465118d453f3872254bad3f02b020993f6cf20cda8fc48b366236f0f9788a78b5b176d641cc91952c03bf6a05dc33dbcddb66dcb299dafd99e7e677bfa5bd57ee8acb369590f4d63d9de0ca549935e850caa641804c201de9e9ef3358cc26d1ad8bd7f5d97e76ba847765bd3527b0cf374577a327bb86941b4d6f5d074765f6236fcba241f018889983140829ac09b0bd5c0cda06174cac614f0e6e07358e54a803e106d4c30638c93870309992e60c2880d0ea49448f85c20c6870228ae26f3e1cdb2ee422d035a481cf9b2256f24121803b5dcf3d2e9d947d424193280e25b52848a1ac74186a3e7cb1e7c7abeec014acfa73d58512d7651673be4cb07e2c36a4dbe3ffd8cfef061f5852cf1bd6e3be84fe931de8dc77c99c3214bfcd9c4c69fa025607f286be83b01cf8fb376d85f9d0f0f9677bcf62b8d3356810bedef592cd1f1ab121dbf2e19a25fd0f09bc20bbd7fc4eb77fcfbd98d353e8e51fb5b3f76da5fa8c1abdbd7cfeb3331b43fa7451acfd7f7749db71df6377bdb798ff6d78df88eed205367baeda8105a38fd6b4dfcfa36ef48b71cf16b9dfe90c6da8fdb8d1ad283ff23d6f0e1d1f1e6400c225a0a9b8f8b2c96488144e6a9215d760dedb30d675fb36e7bcfd76e7bcfd6a968addb94d6ac5a0c080dfd83d3dbff981a731b0dee4296ed6fd7f9acc39fcedf4ed4d8b6e37aadc3b61df5f3dd519fe60fbe301893830f0cd4f73c90a92bd5326d47ede87b687dfa9ecfe85f4a61e729842cdb67ddf59eee3eedb6ef742a7acb706e3bead5a477a1a6144b927d363abedc018d5d0dad4686fb837cfd0877d435f2e9571e33d7c41df165ae21bd28a1c085ce1a7e3bf852e80399da87474f38afcfae88451aed15ff66a8a26b4817aae918a33b087680d2311a7e51883185165350a1614c0ef12164a95ff30ea2b7fd2aedd4f16b85428570d6802cf099c88f39e6dba79937a286f0696276887d103d3390c883d659738d4bf943ad13cb344dfb2d4a6cc62d4bd9344dc37ed3321df5319a1a5bdcf811b57dd011f09d7fa3e022cb2696bd16b128e3bc91a23d90b9b38fd8bdf72f1f71479681c49981444dbf6e9e6fc0aff18ad1d68f30ba10e4fb14565abee7687945ed1e180335cc3448b2afac7947cd6342ffe9f9ca20f3faf0a4fde716252dffd2c148fb4f28723cf7fdefdb8d2605c8c43ec2f7e1d130675f371ef46ddecea33ecc40a2def573c8817506e45f6faf9797ddf57fe4141d7ebddc41c76e6e39e67b9e578cfa6e3e3c3a03908587f3907f4d2071bbd9e61af9b986fa887ae68bc579832cceb72b6dbf42f1418133b57b31e6b890f44258d3108f1874cc33804061e010132c85f6cb090d57fc370d311ac4d025be5f68e9c663fefd995d0f72e10b7cd129339028a50b5fc418eecb2e47fdfbbed9bc2590b8e347d4b326c9a074f111415de02dff0289daf39500164238220858d090459321543431f283228e788208fe44160ec2e2cb8192cf092620216c35c8c125e38915dcbfb30726c6c8c20745aa9002264432d791219e40c1133f686330410c2300b1e4cb8115a0205c10164f50f104147a7f485be29e6409668004245418c20623900235c25dc171ab261cd724146ac25dc9022414911773202aa80b54bc1af231f739f18920831a680a1cf5c3f7dc0e32c1839ea1e1c784496754dbba941cdb77b24ea7937aeb6860a675fe99dc3a1aa8cd4ede9c66a3829e7f2bc4b61bdb6b52c7ed06a66ddda681baa647fdeded6ff902f52db6cd6c340eb3bf1f738890e5fe8fa92164b9f6958c74d4df0d7234d459bedb8cfdbbcddc97716a710c7d757b072139a4087652d319f59c7b071d1fb3f302b95a66185b826cb14e21c48350880349c1712dc0411125251d4c492595b17b0a9a02cb5905863f1f04043c5d36fd0bc65c3f7f8331765f4db9a8a9a53536e5661d0bd0d4d25f80960fc7f82620265f13453e269280a8c0842802153a40c2a90a4d44461441f235c104e80331f996c8d19a86df125c44110a45c171d1dda3478135e752baf41897c822091531c627e2d76f41d79748ee0de00ad4dba3e943f88223091270056a28700b1a6e392ca0a3f46d86cad8828e119492d261266d2449c3995134944158f9504212b49e5554b4195be00d3f1c11067e94281e65a7428385c50c26ac804a12bcaa70873db68d113e9d50bac0951890935a457a51b4042ce5298efc45832bed1d476a02cb3edd482279f3c6f5ed6f3652c21312356e94807764e9f83b4299f831caf8a194a45468481b1469b305f11e4b075f12221f8a043370dce348b38150d220a474e934082025384eea0c3404a3462bd8b7888c73043de88203f503f4a0deaebd0a385e4425f12607c6c41c0d7fa5e187e4d3d0090d3f258668efb074f11b604cd4fe72bb01b278763c2975779f3ea7bbbbcfbc64088c89930ae805cc74e9fe6eafd59c9ccf90e3e754a807f512221ef9a016e0a84142602d640efd968da595f4621645e0fb201260491a01de1247e2482ea44b2bc6eb772c7935429757458063fc8f713aa8088e9a158378b51b51514944c51bcfdac7d66694cb769cf4ead7bf3aaaabe6990677dff39728133f3483b5d7aaca5a63487a1587fd98c3f46d46be0713bf460d3ad6f7fe6e41e93a7fd2dd8717bce0052f785dbf5b503acf9f74d757ec770bc420063188410c7e30e6b87fcf832d2d28d87f3e9fcfe7f3f9ddb2427769944e463ee93e9e0eb26c1d4eb672028c24b630e20a98962db49041c3cf8a1b197b70495b5abc97991dc9aefe65f7b55744554a0f302625c7189ae62d79c8141df3a996db8d4bcfcfa609fb89844d777d0629a493529791629d99e708b278f6293d6099c3c4ba3d8b6827ed79b367f62fd74c1bd2d6afb986667d95b0eeeeeeeeeeeeeeeeeeeeeea89bc21fa75ab1704237dee94d5e1ab96ac5c26979303ff2d1bd1873dc3f942a19599fe5382d0d45a452c9643a9d6e6e501aa6345cb134841042082584104208a3a99583d362e1ac58aad5a7faa0c3b02e0e6e7132e7378c76c780349dee0d4671a9ff5aaae9a7f8ad538e8e7e92a393249d6489ca4496bff8a36e0a7f9c2ab258baba2c89ee0893b8284b27eb5235f2975608c763fd8a8bf872f839ef43deedd86ca4ca5019aa9041955d5508f87d67f88d0ff09bd3d400d4d334e42dbf6f017e6396df5c8ddf4f80dfde00ec8af5ac006c006c0c56c5c2f0fbe6dfb8fbcdfdefd7d7d337a4ef45e3f5b53d7d85f415d2d86b0cdb5863107be8218d7f7b3a7b9d71d9ca5fa6df0b7fb819dfed150dbd09f857fe4540de17cf9037e60e900d7065b83a94a7c857e45f5c80bc31c79237f735f27e8f00797b03c83ba475907f57f2bed8cb1b7302c89bfb00e4fd316495bc437ab67c45fe8521ef8b73de98ebf2e63edfdcbc80e32ff4e42bf2af0b795f4c236fcc710fcafb6770798728cb57e4df16f2be9885bc31b742dedca3e4fd9e8cbcbd95bfd4d027ef9087f3f6feb94ede9c56b393fc5e8c39ee7ffbed6db9456f27c9f857ba267ce26e1ee5c94c11a5222aa2222aa2a290969928bf17638efbf7bc1d9a32b3e52fb06567cbce969d2d3b5b76b6b4cbd0d3bdf474e9e9d2d3a5a74b4f5abe94a12cf9a190e7fd731cc6176569995af27bb15ac22af6254fef5af25aba57c7ffd25a7721cbbde2dfb8d2b1aa642880121954d91a49bb15260dbf2a78d003d0f0ab62889e3ec0974bf2398231d7378142257173e46484898892764f11e273a3b9f495ed25b5b478de3fc7e1f936a47f294270fc991202bcb31569a4fdb395ffbd1873dcbfe785fc9de42f33ee4b1ad92bb45f293c60bf7a1b991a894a20f07ce81bcd7cea49afbe27bd5068daed019cafd4e76aa534b26e2e808151b4b52a74a3e1a457ed461321cbd4ee3663030f21c021b8be427566350cdb68aab6d9a5691aa66d1bcd46a3d1cfb4281d4e8a423fd3b48d066f345706d176a3d1f6b30b5e515e1dfb347646560804f68fd275901babe9e5ac17d3228c22c628e59c935221586befcd02c3b02c1bc2b66d9d0e0b63fcf91821c6181fa27c4dbeaf89164d92a0254a1819880a4d4c4d4a4d464d8468f99a155e80209b30ef2ab47f840289fff542fb472d80f8b09a066491d7cc368351a280f76bfdd265a3a878d23d8b5fdfc68d35eff67dbaedb81ffd47a40fbb1df7b563ee8876dbb1ed883fb7990b84221a42adbeed229d3ce2fba34817687fa00289861f93151324f4c4999c3e3aa0b7f3f0809e3f8ba8f53131c448a9aa5841ac06d3112bf615d36e482d371d396ebef7e97dd7108a0b97a4e45fff9b83da94fb37a496fadeaff7ab2a0b2ea6e06f6db4fd6bfffa53faf573f2f9601928db8d98d2f7ea6a3e9b8e782fae34a7607f1fde90da7e26b50db7186a9c4aa8061c37e0d043071e484490481729374dbb2e0b1a7d5973dffee6767db9e9881f1322dadfdac772dcb70f377cdd48b3cb19a1d34eaa9353858eefc50f7406371df0ebcbfbd7efa8f7a5adbe1ed357760ac487d510b2f8fff0616fde7207b63be8083fbe9441151a6ae8032db2acc3de359c61d97f5eb8c67f7ad43e3cd2ab4fb37fe6f9c2b9df49725543a5f2d148499496f42164894fa5921be98244a2a412d7dcb3a9cd5cf8a1f2e6fabaddf7a7bee9f09f28e92991dea5a2e174a821a5a13fb354223d9923064db3bc919efc2b07aa638eccf117c9922c95cf0ac380670481cb5cd7e4bb5fb1c27b4f862a420008d100049817603415365c48e5608283c6e700950d29aa08fc0002a0d5047c80c30c96057a50010ec7c7120cb4d0d2c0143ab0007384f040b482c80729462823213e920c12113b289d948c88c2f4311dd1c1099f9280e2c67393e4095407e5440e525b4a0a273eed63925265aa2b9a5861ab58042622eb8aacb8050e702e4e1790452a69d95604e30631a7c61c214b88a8c887247a3485802c92e42425608c24a2244b368031d208136491358031f20864912f4fa016de92c50a578ca82428144a060a85ba99567bcd155064b868d6cb29a594525a6badb5566badb5d6de7befbdf7baae6b659bb9590dcd4218cd539ec49338e24638111abe0b015f9c04efeab2300ed77a99e389423e42a5be297292936826d54cf22baf1051178ca8568b063b08534478fb37450a5899eabdf68331ebf7e61b3f18b3323aadf776d1fab4700b6b5d2d7b73ee07633630f7de5d61e1d26aa5f06f05ff50fcc3fc73ff26adf6c2dcdddd7dce39e79c94524a29adb5d65aebbdf7de7bef9571f2c10508f907533e7221607421b79045b802bedc6857d2a43a9d4ea7d3e98442a15028144a2412894422d1c5f2bdf7e5baeee9c8e9743aa1e0e0e0e0e0e0e06032e2cdcdcd0d2a090a8542a14e74f049abbd3f4530e6122212894422d1754d5aedb5d65a6bedc90763d1462a954aa5523268f7005225857422491247347c69047cb121ab34e1dc16cee1443ff248215942a53ed5ea743a9d4ea7d36ca15028140a85b2015330e5163e41cbf7884422914824ba17c6ba3eabd56ab53a1d399d4e272c4d2693c9648a1e29c327ad28187393a05028140a75eff549ab5dad6aadb5d67af2c157d661060d762e11c7244b42481fa4103030f8710bf8a283539c9b8bc229ee7b95b772d6e9743a9d4ea7d96ab55a3a5c1b8d68f91b2a5eb5544bbfbb9528128944229108bbe1dff77ddff79d8e9c4ea7d3dde44aca38f1495b30c6befcd9c56ccdd66ccdd66c596bad4f5a4522914824a294524a29ce585edd7c73737373731359f10a0d2313299cd0137e4c02bec49b3965ea15e11147fa9267a2acd3e9743a9d4e3757689a37fee0bf6e2311b47c9796cf1ab1930fbe2118ed445997c62ec61cf76f73cc228cf9a42718538f9c4ea7d3e9547355d55aab4f7777779f73ce3927cefb8a44379b4c2693c9648a38110746a3414b11d5a049533c4123221150080da30f508886af01e832f05e8c39eedf8b386e8b80b7d85c176068f9d7105a7e96002d4584efc598e3fe639e2d8c05638a405994455994455994524aa94f777777bf355ff96693c964329968d062b414119671f21f8cd5128c992fbf12015faeab85bc3f9f1933b26ad7d29c7664473863d973cd1bdbccfa9b63a694524a69adb5d65aadb5d65a7befbdf7deebbaaeebba12a081c6c03156c3c8b0d2cdd0f0822f9e87efc995095c91dfb9eef6c1da8cd5aeaa956b75f3f61eb48cb9aa9280b7ad2a140a8542a1502291482412f917a38950b375a2ac12680c6c47f762ec76a4adae2a7fb97756d5acaa595594524a29a52ccaa22ccaa22c3b5bd7755dd7856118866118dcee0559ae6b2b9d309a7f17d23882e3db140d7239c502755330e726e298320f0cdb03ae4ca6a281182a9dded91b0840865d777636070440338f6b8185155064d4cef6c0ca03e0051768a4806c67ef3080154f0001884105867c3b3b88ce08105fce11a484e19fa6fd55c36af7b3db712ca7f080218dfb46a33df5a4e730d33fab95baf6d9d4bc6a557b6da3a1da671567f0eb4643b5f699d5ae4bd3a457b5cfae866197966598a66d34db775edb681c4689cdce0ed2e9b08d46cb343617c0c0da6f345ade6e5c0f6a1b4d8597f63664dc720a10b8e68dcc8fd8a6a1f7bd3a65978002a5962204d31aaacc5172c025432fcb5762378b687f6aa2d5a6ded044ed1b85a4fdef4613b58d7694142178e394486f8c85ad46d8a37294930ff6a8608ca5b9341e8db6af700acac40ecb4b1d969b3a2c3f75587ed361a13aac548795f2947c85757170cb53caf1945ce429f9a8e4248f4a9e503c2a7923c3a3429d7854afddf3a856235f712ccafb4958c6a38c47ee2bf795fbca7de5ee2bf7955bb76eddba75ebd65530663e4e394e394e394eb9e314b6f2421eb6d238e52bfe598a0deeb05625edd153b272254d2aedd2a31a69773ca21127de4c5f4d195bd24e6dc9736cb7714afbd7141bdb6d6ca5fd2b944149754e9a64584b7b8a10bcad29e5071cdf864c1101de765f6bf297f9fe79db9376933561ad784371561f4a3422954ca7508ed77a1c8e8557572533a1359d6e50290cdc8846a412bd41a5e22ab252a211a9643a95ae54b94aa5ba1d9a8d4c87a9e2d21a6802680ca581c2d097df2d302673794f86972618a37d7c082f073d027cc481315b0cbf5bbce7f005c0ef160f761cbef1468719bf5b2008a6401ad005f802e47eb7e88ff7faf3c1f0f336600cfe78618c8c156a48400c0d302f79b7b82060860318a025d45200961a2d0358f104108016151872f72d2fb8402305d4d2d2020b8e72b24287727272727272e2a493936ebb103abe7f1225fb938e7eada22aaaa22aaaa2fabba5d3fea4ab6fadb5d6dadf2d28ddf6279d7df9f7de1ba28fa8d46e97243154430300140013160000281008860322c1609aa639a22a1f14800d6f8a546a58389288c4491083680c116314000240440000640430180501b8b2935b6114a098675414a452b03a0b9e18d70fb96bb191ec9d658996b6ac4f2cdcff62544b18c96e63ef707a2f08fdd292ec19ac8f873cbc63be8814209b51034ae06241c526b0cdb929bad1e04c3fcd9d14c3b37b991eb48c14231864be600a5e8318863b747faa28fd6ba2c7e7af2ffde5e5727a549c939b7bddcf80af4b4ad1651a2923fde6e5e7de1224ff86fb9b72c63b59dcdb174d061a943ffce41816c6a4b6a9b1de67a4816b577a99a59aaec28750ff8664e90a2d272a119532cb9536eea7f1ee3708ce6cbb974a6c3a19f771dcc3db92048016d6a8b7d2121369baf5be992c75c92ed197f805774ddd359657e6e5be7dac1ad96acf34c28aa8ddd94bc303b5937f68d245d5e4bd4bf1d662a1c4ca3a04b10c0e2156ad21c412339458118626dab7504226e5866dcf88a8e1f34a713eb926820f1b9cf9e9b7047d5c8330c3e9cdb2dca264c4193530e1c74ef4345cb11d6f2d097e29d298f00bbfdccec39d34c4e5f4c801ae2fafd937f08dd11313aeb92b0dfbe3662b96c15cde2713f047a812088b894cae7289cba7489f0af661f348c53fa02adb2fc727c51e714a2fd6804445cc261434ae421641a0ecc2bdd68cccb6474389569747390d0ef146bdafc2acd2ef012a7e1a6eb8d936712fe9927870910590ff096634c566451bf876c2eddf0e97054565235918e76406fc905c1505561b4a4f24acc40935398376901b790c120e834be5133ccee9557670a21483f7f32921c69b2fe18920cb52c6849f29cd0f302caa57f29aa2cd7afbd472de7689000aaf96e533ac99914fd5801a27c4488ea7113da8cd7e4ba5a269a1dad664998e1c621c4cac2030a4517d2c41637d7516e4808d3088c80bba387fa411acec3b9c104ea30c4682d5252272838cdc86e04f72434187462e6aa0a10ba62759e681066bb84bd695034b8077bf6127c98689f3903548ff1eb375cbf6364df2c6668885e1a68999017ceb24abc9041cffb177020e08c98902c923c03485993a13a1efa1ad3cf5c50814f71e32e78cc03bb43d43932549a9d55d0f2b59a080a4c304b35e8dfacfee6cc04e0f570d34afd0fbb03ad0037eb06fd11f9339a999dbddda73ae7272be654a302d0a71cb419dc1544a543206258eb09d04d31a4cc2c9341cd030c58f2ed1e8be1c612897fbda7f1e6fe4fc721d967e06fa5fa38a5c246d17d83dd591f7c22456ddca2faca6d51b824194bcc87d188426d68bc50063b36e95515e2ee7a5dfe4c790bbcfafee7732482ad7eb4902aa68f9c963ab740d504ab092e2a1e46ddebf2f7f3db24c2b9c66bc7157ee1eb090a681c58f1eb5205804d11092be56d55bea4206e4b00790a6db9a7b1c153105229c71e4f2f283f8c491ed6c0f0b0c475f393c7030384ae713577df81156044bd152b3166b2582da72c8dc09a471e6a49330645ee331d591af04759014f2edaf9685f9eb6a3e6d57d0c7371054482adfb1ea77fcf65e0e93d93a00c80926d245369449b29975b2d11b654fab730a5bd973ca2133f3ff0f1a35e50800b0e5e98468a7891908d0dfb211d93bede1c003ac2e7f821effae34bbc3f12e86242a8758f6dfe12c2a625be165ee50ef158b1637cbd82c49fb3c0fd191fabf143405f141042448595c4a82324e694a804b3e3da92f426df221e07a6765ce34d78be2c23fbd1d6fee39907ce4d9070131f6b376e9c5ae0837a84f8b3d0add3f232568b5454a9263c919570156dcf1f276bf25d1283603c67e9a4df2872df3a704910634363de75eebd5cb23e4f9bfb2cccf3fc2464a7f67587b3fc79a278355b49615c609cc726e288fbc6a5f514e5096b9c1f3c88bd592734399a8139c59c2debcdc5891f826ba6361e97b533f160dbfc5362149fd2ddec85a04b82a4bb6c535ab6bbf7839ee0bfcf0394e564b61c46a2db0acd64093d51a68582d266f1af8de16514cd3d98e5c74c60cce3431f620e8ef99959d76beeb3b955632ec7b5991eb0230702673647503bbd22b541df854c61936c6c1f9527adc5bbf5a66f7f9701ea375450f8c7c1a6fa5418d6d3e8d74d2bc97b1599a4cbf1ba475356cd36c7935f556862ec3d2e532ac34ae87bee0eacf82ac7c852e5ae182bb1ef7f364fad7014a389d025935e6f97b82608c01a925d6f8a0c75cf9fbac785f916143e98434f166fd74e68a6137f8ec97139b4ede4d7e3e05d26b7d71673d3af7d553163bcc6dceeb8a72272f2502136332fdc031946690a86c4ada129c922f089722b0125c4a12fed7b559f6cb5e77274411b7e0e1d2cf1fc307c4124239805882dae83ea834757a3a256cd63adece2c12be68c900abc504a4ad2ac8deb20f5e562dd22a43ebe98921ea31561608a5ac52d341e312182f12f0af84788d1a3778d6fc744d9a67c23fa9fe4c518533dd0fb9d26191384f200f78ae6433d31a5a333740a4f7961a79f668897612e8d2c8c3603acf6ccd3041ad7293a687ef00ec0c7b41a12f074ec9913e8e9fdb956b722eecaf532e80500364104ac00c428981eb8dd7970a84ea85c6550700650fc0dc63fe8179dc01cb8f5ceadd4b664d85a7e26082255b0b6f628878017c714d4cc71bcfca28d3989665a63bf31a1cca06a28f96b0be8fbe6e30a61500f99c031c9e58f554725f18bf6cfdc83e62d9ed6fe6f347b25a08170c2573ab8ad77ce950323e4ebff112743cdb9ee9de7c46d69dd2cfc761921607aad3d4345d4018cf4828dd9c10070dcb0a0736c28cae7d545cdc9e7b5c8b9a35357fe7641fd63db71956f5c044886ff92582c82adb6737d2eb23b63ad0274db685ac2a2d59f641d9e06b5992bd50999cd16db1a79fb102cb5997fbe53106d04e7ce57a62c8941b62c96117442aadee7e7b3f7b45135156b41359d55235ba3a795fc1dc86a48cbafc482ce73ff694c59990ce516cf9691529fd754d5630c3f285c74e80519c575d02b0b63515a991ed13d3bb79cde84e864ace72334939368fe1c2cfc068c4383d2871c7c0ec65a7042b504979496bf4ada18f8d0be97aff1c38032bb00abc905694f33deffc4b04a0b6e3f3e963a03c8d467ad4041cf87749068c7d70cd39090f844cdbb2517bdc8d1021c09193458e0cf1d39193a51d39f06a51a4d96d9ddfeb704108696661330649adabf924718cababb11e716c53979b2bf65f3b1e21f54aeeea638faf2fb0f6db6f388775c3f2cc0d8cf6bde546963558e3ee0447376f4333728136ba2023a90e299805e0b8b0a0623542a268dce5c25d8e10b4750a9a6bd5acc434e6b0c699d742b14dda9d4daeda58b2d355313253f9c0c20219777360304f088ddd074460141a8bea90bec774eb548b37abc94a69059d5bad41aa49db72102b5f508c2ea6d2a685f3cd4574e1aca29bc7adbd0c5a9c51422a0318c2510a8e64ff4a6618cbf68ccd74944ee0795a16cd849e3658034fc82408bc832516d788845ec3218f764d15f6f35e637a6ace2692c00a071fb8b78dc50bc63eb489affb0823e4a341d4d8ca97797eeb400124e00bc1c6c80ae6457078742a71b672786251a6a875531aa0d5a3a0f4fe1ea797b7f0134a786f1b42f7c64745804b408dd86148be7d8ad0d6d44390e8cc94247b3ba5627c2eadfc94433e314ba32c7f4ccad0179837015e82542bfa911740f26daff0f92a9368e3d4682a3bd59d90075878f6a24a0629e140139358d0a5e629ac4178bfa6602bb0cd99c5e51f5c390e4e8a7173752ed37f668c980ee44959ed6b286fc8d3a9f56907980b33b47e31630fd25def6324cb01a37008983dcc1f20c71de13cea02847c5db3196b172e51ee01e998dbb615a940d3dda7e04319d6d0602d7115d8d2dc8e910aab471be9292164dcf95b655bf98450fd219ad3501d9300246deef30da25c5d2b51d292a8966bf55405d5927c289572561ca2126062a6b24fb00e955a66401cdb8cbd34fbeece68fdb2c1be7f5371854da80d3532bc004c82558f404091aeca805e7fa3288fa1a9463d3c2f38b863d5111691b66eb077241a5485a49eb184819cd7584dfb8f6371fe19b7841a4816c46a1da20e2c79afc0d5f11981fe20dfc8e3fd9f7b07fe2dbb47056fdfd941c4e8ead7d8dcba9423cc555e182077caaf220dd3f2f49a91a4de35116fcf596e0543e9802229a0f9507581201dca996a755135f9aadad3aa2c5fb13a66e90bd6be00969a2af6e77a36266e861a0f363593765f7f23b0d07f02c3c01cb805caa210c01661eefc7758f60e496b833fb2f6eb597845d42f8e1c4e5e30c90023e51e39c067a34cc388223650cc483752fae0d7f8f133d2a735a6634652ae4673401bd0e2cffbf2bee506ce2658739d40c8ef2e9db156a135e50621bd77d989678fad991b18d57f4b8d2c6bb4c6bb0986686af376f4726d77793612dd6f4c508ed0867a572c01cddde8c80bd1e5270664576484e6e5bff4841a739f70a30e5e7364e187bdd3755a978fffa7049cc994ec0004efc2502f5a44a9cd402f3a8340a0a738ec38c3605e9428f4e9a178050253501e931d610d0a06ec5e14f757485ea9ff9d1abee70d3f2cdb6887639a8ebc54f9b04fa880ce3aa88f5cb6ab1aa86ac462eaef03d2f33efef8ac5acbea9366ea2760de5310638340639cf4037810a20a38db16491b471fe4b79d1eda17697358fc20f4bd921e5d510325d47fdc3c4ecb1305e7b95bfec4eb21899f9f73699f9be0b938a31530735c152d729dbd1e2d0357eb6e924fcf999a21a577afa9abb278695e82a6b930758c8f64c08ab7f5da296031b82b0971c4930b476c8b84230e1a1cf1ca65845760e5084880e5d5957bf3d45457f5ce1a486c9a59d9b6493d30020b682ab96d1308d91a1e686f00e51ded26375fada91dbf0c5dd25d2f95008bb0ac619e4635811551ff251dc80535ba01a449f53fb9702eace8ac609ad0fa8e04d2c4472bbdcfaf4d53a4424daedb56a4bff8739c263e810326a4c4776c499c06457ecf3a515a414b7e48310bcafd156ec4624aaad277009e4d6f9f8384a8dac43346eab7cd81b25046040b94451911fa2213ad354d3a4e27e76b379f0fed979ee48bea59df3e7e6517d35d68ce1f88879a75e6a50669c1fc1c4b7fce5000d0b147eebb7638ac95671b613c385cb2d60e0073c405ca92ee4162fcccb5f4532aba7fad621976704a96930705c9bf77805f2dbeca71b996c3edac5dc724af3e0deb6a6829a6ed6ec97731d345f72fe09518d518fd6b8c3a585c73f0b7ba9aa2a56fd615d19adc6e66ab2d35062345dcc87a7228c1d28aa34d0451948b53a53ab6ea47a0efd84fb81f3fc9090b8850e40e601e41d87f1642f2af1e1fb9d78945fc91bf237cde3ed63129e79bd5b4410ec3be685b86bf994169284bb7e48b44e65c62fb1ba8fe97dde0d1ad45b5cf7ab3fd851852d9ec873c9a991bbb3e519066d0f108edde2da17cc9096e204c1c644675c2814d6d224014045f9e4614b350be902866238313459082eb4c752d0ab8b306e4f62daa81a890c4e07373ef0ce8ae720c5483b872ba0e672d9c270e26a64e7b791ccf3dc86d2ccfd1ecc14ba3cec519c71789d9dfdbc1555aee88355b0b40d3384e88bd7cc6f0318e34bc52f137c7157718bd290fec98f904900736d81b4ff3fb389ed7ef4804df1c5f7762113188986ab74fb802ca2934193d3e2a1048278f6cfe82a148f07200daf0b8774030a0d7808c1eb96ce18db254ae8eb2742057e696c2f4226c0999b56101a14f5fd21da08a4e07f20de41f9652bdad33e1343a1ae47453716701cc88e83fd609724ce2319193bb2ba129928ddab7292110083409189b98a272a5f9173ba0b1b9e60371db2793d9820737bf2c7e56bf4a62fb69196f73bcd9b392e5a4977ae5125fede1a1d00a7a44d24b541b831b728dbccdb6940e843111a2bdcc7d9c18c987f7b89891cd04f670fe303af0752a7bee1c655ac9bca4e0859f8289f57a0d9bd5ad116c5f3561d4b0997e466ac6dfd3d47ab212bef4cc36b403b6d47713d86424874a19ca11b7e1ae1f1d5d10c1ab8df55b8fced81ab944339f7ed889f3345eec2f78579278ee781790db847f723c8f58c0f29b351a0ec0e72a96834494b94e04d18a842f0939a0d6a36ad788008adecd5ee81a19184326be2195946934a4b09fd29c844f2b5ee846bedef700040b00478b6e27549b038828b38cef5aacfd6b9461a429ba3e943e4ea025cf2eea80c5eeb04a053156cf252b7c6a421f801468253a70ca5cb888b6887d2248b35240e11c1f4dbea8c1258bd3210d4ca5beb45d58c1f042a5de9d5473d05f1902ed9383dba997b29cc264f6d8c54ed6610f083fb37b74491f1e6b83f2ad63ae9e5c85232ee8d4d8272ac25daca99b8ed2d366a6ade6c6f3cee072d8772a0a03159471984b5683574167a8e9e466735904f8be3b0a8888faa8f37d9d53c660446cb596bf672881343469c4faec11340f5a5e575708def15f93a4f7fb960c793d38bc960814d71c908cda98f4fb542f21265fff6961b2b77a70b8251144794741e5ce884f2a7c3f26f1417359688827d38558af784e29340676f738d4b753e496f7b213a80f39b910082d756e9f7dedfb64f5e0b6607f3728eed42964d923c7cedb4aaf7e412f76f9c44e22a70d4defc9fca35a1d3d2c241a517914638514d1adced6978707d8aec77a0b56883e9bc2a68a186429b807dc6a5d43b6ca92d674c5c0a4f19b0837fe3e0c9ae2fb9cafab62ff2f6f92efb88c3d2e6abdc3dadb91d30f70603882f5f37f4152f6313c98248c8167de28c9e899ee32ac4c01f60aa806dcc6557bde7c90222c23e698e105ae3edc3d0e798ee35fd650f48646b178dcaf60c76739131e03bf79dca1ecb156e76341a4c58a6998b16ada792e78905cd05b3361e5659533ad547ea7956438129a158a2db4a523c932d4d133e93e43476063f865570dec50fd1730b1719cbbc1aea08e993da6f7e17e6bb9bf7833e815c4534b40d2de069f790275f56e2a5d0c8b9299ca6ef5d9342e304145a138aed156975d86c9c0d185dd401967ca5359f902f44eeb9e57e5e850bbe24eb5e0a7a03b6902a822ccf621d94e7bc44d6e3cde9fcdce1b1891464200c1dbc6c52f72344f5447006e1ae437fe8d27b52d35764e6a1f29d04d82f4d52c6b21e5d2092946d538ebc18c1a41a3f0811148150af970f804c5289dc0ffd32614a16502708a43dfaa06559f0d5ecbf457e9368f54e64c9c54ab47395493190a867be40f4ce3ca68e044dc88fa5135791fdf112ed3f49620ddf39e3304e9d21756807b74e92f4da165cf7a1efa02e0ae87a894fe62908e68244bd901287451efc8d2363672683943dac3895877b7a9ee194c779e53dad76ca42c01721a9d6e8ffd8260eae459ab829ddb94c59d3ca9e67ec1bcac1b29cb008e4647c78f9f533075fc8603fae73ee5e071eb9cbb8424eb278d2a4b06a0b2a394150d75515d951408a6cd44294895768ede0a409754db8692377c0750dfe87c4a0cb53c4d76a13963447f81196860a965527d2da6d61d76e000e75d151f17869e2a199423aec14e87d555c185fe827b2a4dac71750c2b0b400be505f6568a5863ca0f2b6bc416fa05ec538aa8063b85528da316fa2a8ea3836121943ba8fb900307b931a614d6e6cafd4ead4a7427848624e8a9de7350fc354062fc7e780521cbcf93431008fa39f205c2ab9f9b6f408cdd73e703889f46f127c1cba0ff40a5eaee21a04eab4af7221da76354fc12fd4b880ad28f4c4822a562201420d4d293e065dcb8546a3700d2d6edff4f9d8a3cb54ba080b9a22dd7ddc8ea918715c5ac12e06169fc36259ca669cbbb58e717d432ae95ae14ab19c24a8bae0919d764b7090d9ea63148b3ae1eac7eb8e4aba6059c9cd24684ee14341f23b57399ea0c5317728d5f77435d38c071f45ad50d153e4045763bdd303daeca4d554fb0345afd00525256b01dd0c4bd96b9cd760795335e8a081022ecf1d78e2e491629e655dca554b5dfad6eefa3ef1ee45e7aa78d217269e93d8c6cf217a5668d19f489b1f51666c1a488f35f61871522c99f71bfe035f21a9abcf53afa4811f27d99b646fcd0e5fe207d4425eff2352ae42aaeff362a9e9b8121880e6b5bec1b65ea12cb67e5ca4e686c426229d2254aad44fa5d69bdfb3813e95b7fdc69c108453a3b3a15a248cb331f900ae980f2822c6d5d1917d5a55c7670ed97f87af322bf57b29ed05947776016e2d2c3f22fa8be611d521732b9558ca1ed3897075c81f89756cb61aa6a85400151ac7ea92c037c5f5de43022a252e39dc21a250482a190b2d946927a38e06117f95c5306f734c8b0b7efbb403738c6bace37fd089189c61d7cf8324a6a07108c81dc49858d66f6c19b529cb82c650a89f948eac71cc0fe6592f24f752aa25b002c7ae74859cfff9d9160bc292129f627d305cddcebfe397bd14bf482ba9c56278869d3d4345b99833426660cd58b0c4a8952304d1e91861387d1584f1e2c6479b2509179bccec089cc7c66024b500b945f2890df45455b444b06563c17c8dd9012dcfd10ce3e825c1da14ca7080e1f1111c121006a31a43a0410376b65a778a6820192c6cc47e85e7574572514650c5a50c7a1de7446ca289cb87d0edfc277e02683235de381212a1679e79316e231eb2bed0624a2a92c2f0532e4ccb796c9df48863eb1141ea88d6e22d40740d2f535153319826959d4658a22bb901874f0743d1269a8b9c8832a68b81aac9801108fee695c172f5c5ddde72aca9cec8ec18214b5b0df8b866a91156d27ede32c6367fb61dbccbddb9dd27d6a3fb822d38593c2723f6f2ca44ebaae772212d86e7dc84c3155dc90260b24c26d0aa8d5c2229c14b9165025c279616de7d5e8cebabd3275c20bdc2977b937e3dea9fa14742d0d025f1e6f9a790481c4a933cf3dd3db40f3c94a5181d1545c74b3c734b5ef69eda9a9a1b30fb201fa4b9f4e1bf0980be6a4041eaf099c5e31f045ba75f003df6a9520a25cf303f5e6e918e07412da37b719d5d6d9f2c68c5f022d85be6d8547fb9e744540d75bdda81a6453f73312b532b260ed2f3bf198f0e0118afc0686daec710a18225009f5384d4b13085a64771d4c4398e1ed319d21347afb8a7a84d2f8a644692c80df6ab1cc2ffaefcb8374ad14ae513b3da4d994c7002d1c85c790887a0774a078d95632c9266b4c82283d18801b2228d5ac576fe942550ee9fce8c185211000ca06ed0d31cfd6d792ec28a6ccb3b2de0a2caa64911f4ca48d5ea0b4a7c1f9cd31cd990bacfb84767ed278ce5c45fdaba8671bdbb78010bde0c263e9e9e845ec140ed222b6a4f3cf48d2cfa53175d3195d0b0b1fb9002094b7a1d17239270cc55e1771cfc373658b409294d5f195be8e8968de38eccfa74d4fbd3bd270190ec6bba79c9af64d258d5f1bedb59e493ee4a602519c7ac0a91c44686a8c0bcde257278c95183415ec99f51bbe8545b1a1bd51e313ef5b8dd9205cb4e4927c73c7952fca105fcddc7a9bcec432bb744c3a993408ae4e16830207818df2a87e2d6fab70319bb052d221c4072a448116b2e653340ed97371e936000fa9cc0ca5510027037c9b86666f1b4b938ef3e0fdcac5bb95618291be1257871758001b2dc0055c22bbf49dc279a11d0e05f6e8c812f3b4def78492b29c010e03767e67b6aa671a114db11c739448a45f280acb09e9924963e9f3ce31aa465772499443e545afd3c1e4134cb3a5ebb8bd75e9b44b253e19ea626859be5479950df1023de528f44ea9912b0587307f441d4d59377169c0b068350151f780d53be78bc6b73e9c90b3279b6d6fad6abed65dd21f968bddc59bf5d0c93e1ea9933ceab3849cfe307a0bd901a5b459ca14954a8dd8e0a5a2a1c720f6a10e3c1ac8530bce6bd528410ec152b981deec47bc57c38a8d54b889c2250aeee1060131884360ab4ecb7d10394324ccc7753a2c62611d62c30a51bf16aad7203d8682f262647a23a7cd7b7db26291bf8a947d3fe490be72326944593c43928def31d0554c49cc8ce240b48ab136d5dc735c872cb48708af447f5f7394e488edaae3e253b54bbf4192b33414c4a0280645d186a281d1b23a203dd1b507acb8f134eaa32dfa3f02017c36cad74190ec0dc17a5863b457d0dbc8e5c1d5817c015c0d00bc7cc1f596cb767f8d7b53b9d5dfc01adbf6b883b74f1e413c83c90c802be4c7e1357bc5e2eb0bef26e330e2010242b3d51cbe5242a355029984cecbcf32493f48874a43716bb379bcaf5e84168f56397e3a892d89d14db75bd0b8ab8932212576346f55399447ff01042cda16e132c5330709a839331ff8806eef84082c08e152996d9a9de69806d5c38918f93d5aab5dbb922e0b8a2cf826a1fe04afa0f26c52b3afb534671e03e4cabde8d99bd4d242a1a00004b49b50b31a8dc5185290e3f5e1242c1b6de1444697773b27225a5619481b67e291761354754d6da30ed01db5a8d355dbc5b4b698f6f17416c5fc167f4fbf7e6b1b53c5fb55e6e33cc99a4285b37fdd5706e0cc3342073a7943950dba7d00b64c8826e3cd545d0f38fa53da8cc81fbdca0ab04c0fc078b14b897fb910ca0dcbb6fd8e401ec6c14ba507218fc1f02ab3cc9de44bda15c7ad62f340d40e8f372f6ade9723858883acb9afc4eb60a4a0522acb5e7eb29fd20a0e1743a03a9f69733c13e4a5cbdeb5285813215060f250aabe37dd954261bbdfd1d9cd88b174b6c505abafa34d261d22a7f947c4f5459111eb5db62e18f25c9592a5754b49eddedfd7a3910281356fcf0cb9688bb4d331c6ca6303f7fa8108bfb5dafc9d57f0bd679a8ea30dd66865fb384554c284a51f58992d3da2dc6cfa909b623d506e52f287701d89ba8095d4bab38846b604cf487fe607e540ac6cd30c1d17d736f1548c4c608373212b71dc963dc586d06d1a72ae0f5a11010f8f38b0203dc11b5573acda71298ac9b399704a231050fe29fa088645fc300ae8b4b8cf80295a4251fa325fe519f23024c1b2953d7abe8ae4af27ddc5cf7a4e626a3a15235ada78d4c0dc5800b5eb4db3d592ecc9e3005d3aaa34fc0964b847e3dbf32ad872e6d7239a4082f6146a0e205fdfb8e7d2a85bda4c7dec9c10644e5bc349b407b7cf152951054b610822d6cdcc3a3f93a3c3e4f1b7c5a1e94f1e1e41964060c1ba5f3fe9e449bf30cf8cc911bdc5ea9161adff801f64f37cee571dfcc235109dbf2f061a6949a635bd9a5a9609f961e2f2b55217a1a87d00cf4455dc8d7502275f1970e66453cfe45639f99d120cbeed50cfb10c6bf5a0a8dc05ae195abf5187c16ddc889b71636ea7b8e91eea3b72050b4d46d3070a811307b9917ffa0478c0c0d95cbc44dd050a9dcc5c79392800d701c7b8e53b3b1dc2872e331777a38a52b14ead0fffc48b8b659d7fba97f152108d80867a1f2e8a47508ae2fea00bcc84af8fe55081abde8fc3f13019050afcd3adb290fb56b954ec5776e1db782c80c45686d35dc315a92977e10cc57e5c1a0f7890989c4eb75f4d8da35cbc352bbaf07cfc6af093a575a1ee101ce9a0af8f6383af1ea43f44b9c9955c846d97fcdd13401d01cb9191293b77e2a82871226e7ea92aca5b3ea20d64faf5b59d3f0bee2d2c1885c4bc68d36a9a800fe4a8d4402cd3270c4f754cd38d110af840af80a6d182e199e6bb1aadd1c866ceedf7bc2e8166bca2c8578e645098ee7a843623c14a744879e5fff2171fc08644628d02cf331e735e9720d18538e00c831a1b73136dd45b8399bb57f7d535c742c695b66286584f55807ee08f0097cf3c9090b453d5f1c9a21c3609d2e483aaa6b51952f9b9ae3be5430118b09cc1081ac75dccd144a9e50f8837137f07f2d98c0757e09136b7ab2f06853a37a7fce7a6349966f7ae1f39e1c3d1999405939904a5d64538e92f7d62284218dfa766f910e9a128c37ae643fd851c3a005f74396121b18098b2653e01dfd165ed2569c7d1679530ea575a6ecd47a70472b19a0460c47e57f903a3d2670b0ebe7a901d6d43a1a4857679a42f0aff0c51905b72f68ccdc6934de3cf2554b0f5045aa603f015522a158bfdad225d7bc2dc8b52271777855b9457b20bc1cbbb763565dc0a9055e572866ae2b2a01e0b246b882ee92ff459d929b32e430e4324eb2331f0bf927e489de282639d8c5752610baf597d6414610a96f59e465697b4003857313d4a5a3ce151d069ba17f9c44bbb349ee41ca853767adcd6ba3cde0579f76560cbe7303a8912e321ebab312524009b165450cb4b3e7eba4a7ca19d548cb09232446cc68df41548390fae45991231d078de707388249698b5a8e7f54540b7894e8ae173f1ed7d786eb2d81c0849c06af2d2a35d4d691c65499d51ad16735d9d8e66db88366ab15d72b26d948b9ae50ac41f680ff61780064006cce98f60f70c8aba881950dfd6de0d5fa03d855caab097f59738ea4976ad7344382dd37ce82146b7d4a78e611b4a39717e1a064ca9615b231ed32e5b01d80ae0685bf4719ba23249c81477fc559247672ac49b61b34a27067eb0d452b61422f3ae1bf77aa7b42d8de02dab2f1865afbc943c893782822bfa67f9d8f416e8621dbbdaefcfa43138dea3a45d06333cdf44bdf573fbe66359381db6bb5518e7548b5d01b4eda74c1d6b233a2d0047aa715ab40a309c00606d5364bce6b8b23163c953610da36171dced34bb58ca390c58baefa068364e66dcc88df569146378633a5d404608a8ab5d7f591c29c210b9cc554c21877c02d917a8c2bcbfe59b6e69322ce67fb181ce083414dfa56af112678c348261afd39c8272c40e8e124dac519d7f21ca8660d24c32695da0ed4301cd57bccff34cef4545750091b1d08f8b930023e7f449a8020415bb4a526e7a17f4f55e43711d60e30da0e83bfb43995b6a24e9748f4214b13bc7552b47ae0f76a48600dad9289d7c9469867fb3f58b86c46b5c96d4890fa728086604ebe03e851989f012881cefdf2c0665f41efc5d1aa7651be78c077916d1753397d3626961ec85b1c76796f6c9a9ef4056ce294a2e0b6ee07bccf271b1516d86f5b33244b46c587334e57545161ac67c305bf34015c86527c4e21c3fb2d44351cda5684110566bf72166851d028189f276dc64270af9514715b8530b60b36d33048404878d9c56af17b243337c1a17d45e3eb7b83c494cbcdb0d9210efabcc5005b50edb853847ae3251361d89b66c542cf79217e7c0042e08a4147034d4e83480a916d15e686cefdc0691313b49343fa083bbf8129a184639ae037a75e200c632d2776aa3986b64ad077f18d89344f2c4927b01228728284f3caef858f62cf7fe2ca73fa929e8eecce9d8c512404c75d032b8e8e5d5d89cf27f2d67bde1f748ec854483060c60c7f95255a5da00ca0e77d026239c26d10ef055f1b9469baa67ea675cf2af359b97376d4e6530e717e5a7f50ba7a0b414c2be2b0dd9dcffb6e064d6fd09242998d48a3818edfd1579844a8e6f90490ce6ea220a675bfbbcc563f02300197d4b668853c6ac9a35d6f21d546f9d065e1016d6aca19475607deb38d0c2b8b070cdbaac03ea7ac7c856431810ac798320634e327e25cf6ddd3324a0b9d46406f874809469cee2bdb21a712cd3878e751463b51c12a2bf152de95dc5d09dd485a42ac0aac1bb89e29eaf0e1a76df6d8047acfa21656610b5347bdeb76e2c756744bf444d2797f23a6bf4eb188b020eed71ba87c009900ebab1dc364af103b2fd5687be36b0eb1441d8600a55b4bb600f55dc8c5d4908b321c008ed817c84302c7654fe2aeb4c44d8909253dddb457a2622a0fc55d612b6d700cfb197bf8bb2cca1465833eb3e2af6cd4267370db5d2e7fcb4d9e7b48d66a29b61b29df95f86c27b48555d3f607337ae007d9145388fa45b3d6d61f7b0cfb08e066e9a3bae105d0cfa1fac0c34bde32454ec037c9b84c86787dd8a908bf47d4ecc1352c01582e57216c1482b9249c9547fced42f4e6f1b0eb157ae92aca29919a8b344229f76ac5abd16e811dc2f2e676e7d79f5e32ac2020398ca521b5d1389b2b3e1687ca4752ae0a951c389d7f91219c3d30c822a0d19f0f2b2b09736e9d5b242f9091777e6c3648b9ee3e14ded94e673a44d57f83f28654df0259daf57094ca0f1b7900855bae439f16848468e3d0c554c80d4061ebd48dc233d14c9deca9a266a573129a90353a015144300247a1a1961e3593c8758158605559a26a3db8812e8317d4ecee7537601de31528f0d5dffd9a6ad6af139ed6064b6ac3a19214b0283b87890c503e6821564ad08a6a5f638d67a628e42f7faef00534a2d62e5dae1f63328f3b6ae6b5844538a960442df15bab7ea9d731e20452835633d6a94ccdfb0ef2d7d2555f5224fc2b5b28376591ca0d60e6e4a4feb544d11924ae4b8130ce0bbea47e64bd7852b7aa5f4763aa6a72f0c3a2d43a04ded6ca3fc1cde2376896b5ee9e36d328eca74f3fcd9a9ce4bd92668690e879d6a48b28bc0b037c004a5a5749ff5037fe3bb4e7d387f1d3a29b20d1b20cc0998c8c3bc901e5dea8490de551f165d2d888db4b9cac9bc14d853693da52a588ede37751a877854b0814d09884e9a1e821d88fe4a9369fda302d7aeb6286a08734e77d1f3b47fc3fad29dd3b37c7111bd3131c0a7eeff1893ed00852b3f48dc754a386dd863f80eb2894ec21f8597323977d5e4efebfc5a7f8fb6d7f5e85bb8b0734072bc35f151d8dff16f5e60d7fb0f73a70a771d42411ae6f000f4f0a02022336d7501ae24e405a1d94ca14faecd9529c8ac1178e5149403d1578d65f57aeea6aeeb24f09999745ac7c85b8acca6a14372a2ccfe38bf7b2337deb6404dcbc235cc9a462b328ba13dc80bdb6b63ec45a5c83f11f4188264c95a57693cd3b0757425afc24a47996264d681e26940b34acf964662667b436b155b6ee9e6e2101a5601b68bbcca5174267e30331e8f62fff2364de0ebe8ba8330b7de4fc443d6c278d2e99d3f784e8076d28ce65c8c3acd00bd96b0fde1eada652e99cba830007d8cf14a78c8a4f653894513882afba88bd1526e873f73c94c4b0a5d1df615a0d14ff0612fd3d0bac14c4858179830f83596de989ede088055ed45501d5d0c239e27aa1971774ca0c2af8a9f54890c888587eae6aab7cdf44801443be6b5ade03554fa797c50c32f9a5f24801d28acb2dee21e0920725338a542baf9b779ab0c59f6cb91e652dc3fe03e50d43d49cfe0f364760590a1a8f2a4252c57631b3dedab0790135be781dd592723d933670aeea084c806091c2a46e54d1636ca0bff1b27fef158534d5d4bd4fa476e4f3d8503e6a61eb98a72a83313284573fc25d0c9c9ed906dc9e177251a6433d15d53b918b6ccfc67dde221acde358d88725ac384944e4b7c69ce84fec073e37e704418b0c8bc0b544375f23c4a47a9f44f633287a324acfa53b4e3c1e773ac0f0781456099124b1967f446c08c085737fc29de9d0d0bd19308b3c1dc3af26359deea17b91241b5aa6f81bc080ac9daff6b6503ed111e2586d2b89f57e0d0b84f4b3ab5e09172f5a45c24af129c172a97d5ee80b9b116c4eafb82bf2b4295c9e95fa3a35285ee6215751e04c7971d01796ca29625736517494bbebe44cb0630001952bc08d5369481475562ea14e0d10470efe601ccba8b64e00d8cf3da27eed162a8edd4c275e72c1ec24f599038ec39e79eba331d87b6661b8b4e65c2cda2c1316f97ce66068f813c2d41971efe1e9d4d3eab24e1e21cef8c09bcba0e250f71dded47bbdfaabe82321ae6bb5172ec9435abeeba8db46bf4dc93393e112f955142ea85ed7f77b8991c7c67114fdc484dcada16e584fc3bf610dc26cc962fbad8fcfa28ca2804981bdea9ec6235767dbb0e5ef12a268513e214cb793525382536bfe4c24c6dd5ac5c5a2d89db413c87450d0c8442953ed40574b12457e794a60bee336740bfe93b90dc6f0c4e0fbf9488028dd43e24568c9c6f30d925213cba02d9930f08e4f840fb1a87016de3d12cdd57c04ee8db1549625fd1c4c94080512831cbcc062302ce5d34524f298bb8237cca1cbb3dfcbc0ada7e7286985e45310169217813e5ac2ec3a0a086eff738540c34d21bf689538f4406ae31a3d58d1cf23ae0c40561325f8f2246123338403156ea237f3fe58751a044e8074bcc07a88909bfb6d58f7adf3681249e9e083b549e2b576a2f828845e0d24fc248dcb7861c685e8e376782069aa3313efe597ca6b9d831cd2c929bfa483695592bda123fa582caac07c123de39e686e5074e28a2066023a79dc9cfa178b18e512c3b8ab68e76dba277d6abefdaa0d08e2a63a1bcc6c1c571bf39b380eaee26e80f718b4632db449591965bfeea7e2679871176786386fa7c42aa333a8fb413f9e84c4efb625c8e6fe9d35a85ac46af99e337c7798546ac22995141ec1b833e7e4f208ea4dcf03029b2965dd7e2037cd98f239f71e890648fcdd118d75e614c313c0e5e609b2592d50e7f1484aa8e130bee0ea0b7448234dba773b15815a9e82f4231cc4e4cd736796890b1ac628c9d1036699c689938eee694ae16dd132d3a4c2c0168e80ece61d33ffa0d82733ea06478e5085f7c87f5eb47ccba9011b05bc132ece5b9ab8c7bd106ca769fb91f581745f6017cfd7a4bb2921a56751837660e192bd4c7407f6962d69f731c39d88e17beebbffbfaf5f9846ddeca9cc5bac43036a3050fdbddb7d3f76d1f6dd7fe1f5c2940e189b1d35dcc2708baeec122e2b0aadce79abfceadef858ded6fc3883f77133f84122651a00f7b6a9b6fc5e5b127270dbd76dd5ed00a95f906c400a08dc58f15aa71e6b51c77e507f44290714c4db8f6a7eb88e17f87861c9d83b8186698c937f4224c4d29e4246eae1512b3aa2e201c0ceace12769d769d71bb62febf11c2362af58e87defb4f2c0cf5b5cdad1f30be3bb637783717f38aff0d25cbcb1beae0dab718f99f954ef9b9ae4a04fec85c73777a42ed2a90929fcbeaf69399b7eb120a85a47c00b214ba78bf9ab10273530d781c0064c7bd7c8eb70616e8c7affda2fbfd7f7644f66fc5fe7f799585b75a62b08eeafa4f8edcc76f3de33e380853687d467a74d38c6dc7714f15b12ee675dc5affaf872813938955d711f8308e09864942e2fd2f6121941ad227567f804f2362a1e8a17de016cb04445297777bfc2eceef7622408a81f5d6d8b01aef73fa97819240e90d80f01beb4a43d7a5887a1f3a974260bd8f3beadbeb4d09bac7258e9b3beb50a4bb4b972e994a8216bf644d4c7c63e90dd03b6c5fe70d9b9d38e2e5d09f7776f97446087ad95bf999380935de9add302b08c68487bb31dd6445066fcc9e84df98330ffa13e5c83d667d2ce7305a3ac5cac47dd4654811d661551884c6090b8a902b13fc8e044c37ab40bd08923ca0ad1b1235cb122ff84e5b54dd1669716bd2e00d12c535630f3a7276844e96708ce1b846d96ef112aa00d89d31975ba3454e386da3642ca1a732e46195d1da0b8e46badf475155e6ce8af436e6d51463be0a43ce8e7d629e89204af9b03c2907bdf74c78708b916f35dee070fcc9b945c3fe1ad75399cae361e2c03b25e58855856423da2974b9c3c0842d81b61ec057fc2d2462fbd2258610768ecebbe6464c78b9177b928148e496b84b542ead516fe00667c8ceb0226695a9edbb2f13176c1d1605895e5cd7a04de012cf640a247150dcbd464a1afb67730bf3de0b32b827fc1b681fd6f2fc46df2e210eeec892652c46ba4300bc3f63910bf7648efbb5fdcba0f4ca5da0cbfbddfedca95262e4a8c06a32038f35b084c3428a3ca055c18c0058c20b5bdba9448fb76c914b615a96e17c96b63f75e4f574f6ae0784a42e6583fbfa292feb0e8ab91856af2843b01c405c8f189ca71466448fab481a62daf4a1c7041bc2b28418c4d55f6ff2ca31e94205446303cfbf695549389a92d84f11c578a146d6388d2c4dbbc1a662e8b9969938c5f3ed3a63f41683a30e6e487a3fd2a88c23533b14e4ab98a3390f01413ee76a3cb472bace30aa1f760c96e85543ee002e585fd87115f1c7ec357eb7b76b8f03d27f9666b7ae766140c6d4950eed40fc80e531a4f221d49c13fa2c5d4933e2c5326ff40c9d4bfd583f7ecf4de8e94ac158bdad006dd9c2d5826f61b3ff5ec5fd30bf52ffda3dd26c1519df8d9ce528dec1d8a8edcc257d2cb149301aa669094a0f7d981d9eb9dd3f71ff801aa6711df2efbc7d1efc902763e61ae8391dfb3dfd910ef1bed27f517d3cf2a37ed44143455544939ab69979c363a5456b308ea3eea3792cafcb133a38623619114e207aea126e451fed4de103cd1c59b52ad46c3a64a66c94e1c84b5222bc5eb2907142b18079fc730ce9f29866e956d0f7b012fb1a7b6e183ee5406e5efde5b3ea54280bff65cd013224c059d61ef4c0c2559150a1e35f3d980e4f82e6ea65c32ff3b64334ca5fd93d06508c1cc049280f746cd2065b64c03c513b937d1b751feff8bd2b93ee8de12851a1cc086470967f4a1b3da2152c783590e21390fab330b1a0d6e11dc3dca9de5e9bf151167ccefbd57c1925e12077e2ac2f2a7a090b24a4c363dfe7fddbd7978e1483520c19ee09495b5972dbc397aec4f1cf8c05662c87ead5b4934987e4cc6109649c03f4623c8fbc5ef29382bbd0fa0e63ba39393f0132435492fdf7e17ab52116e54721aae96ac930692755ef9bfe05cdcc98a8d753244548dfe5fd88204d2f04148615f94d7132ff9e2ce88b3d5d8db73b7c95dcd956d1dc4d83ea65073194a9ec82fa778729b0e8e0e2401db88fb85a86198f16a53a01ed2a8e4f10d19d51622ce1a71ccfd00a3ebec0d2ead09311b7df06772cad4f271fc3bef5b05c13e2b93074503ed5a955d1c7c4a8f448a4ae8a1258d05dba2c58451a4e1ef3296421e85c7de5e86eb42a2896bca3da7f9eb258b8f648855a9cbd167fe464e632e546733d91a784330f94be1f452aa7c29eb7006268ba6171be7ebbf3fa869aec67604ed3a4757a2eba1a57dc0b3ff26304ca276c52197f18308c773c032fb601903dcd003bef629eee2ec0d1d31719bac42071f57c4c97e82a6f651ab4f829381c2c698c7a10ed629e8b8c9f06f0d09e835a71875ba3fef25c57157cf5d8e98ae5ee69eca3e74e12ed899627e1c1036699a0c686d688f44a2a45de0eeb4a4e25fc557bd99bb3261cf0cbbafbcb93c5793c924ef2fbf297b519e768e4bd1e58dcea9150cedeb625fa93c8fa82114ab97e470dd19cfbb3f68d5da12560107ac1c4b9c70d72a4eb8d11e112a18f9cb141fa8e5108545e73d004b56260cd5264f20c5b71a517eace05a9db7af051e6eedcc6303330e05a45159c3143e952b9279d582fc7c9c334856c5fca0119ceedbe5e38f324c12854b33fff7c09b8b281aa3cd6ee6eda174b7ead099757282d24c0b87f6e434a6ac946ab583741f350a382e681fd7dad35afdc9e829ea50fbff638008cc4dcad550c46e83c36eecce6917f4393ad671cfee03a976596a4f0e7e7b93f1262927e7f8dd8e0c71a961b69a387fc00eb5b1e35ed422a4f974a95be6148463f26c19aec5d959800e89e1f5a27ed7452b9736d7c89c0945e8bb6c378cffe7f1f58836b8c9e9a7c043ae024171f14ef27bd47859373eed0334983a2365199c567080009436eb9dd6ea5f0428a4c4e5db683cf92ac86f0aca11c71c026e09e4c92e348681a714b5d974f00f10636f689b0c141e1f188959109534031631e098a02fac1516a46493264a138483001a1272d165c0ae52a6e44f9ae8112b9ceda027fb93a232ea42c46b580aa8bdf084f7e50ddae41414c5707dcf8463c3dd2396e0c8d783c65ce1d7b87a5599ce4c230564b8b34a7994490af7577e1f48151bc0c862676248d242460ce75c1741d6022832a3d6cb34b5d5dab51bc41581d7f554930006cb4987eaa56ff4288a2361cf909066dc928488b11d47ce29f2ec52df659aae58ba9c93ce910522a5d6a4daf3d6f82049df8e4e322d99f25767cd9686eaf9d2ad7c6261398290c20fc64f171da5e83220668f1715c09368570a12a8b35e01f39e8591cbe815bd9ca3e852579da56bea1af22bd196a433b83d0bb837506f08cc8c8a5f99241de3637043acd355255d93b57d7a0bdbd79dbf56c4d76363dfd42a6cce1b3643c2a1369c6562197fc4f3ea33f246576e1e0929aa38da16d8fab881516a3e6f23448128c84c1e618ddaee01c5711ad8675b30056a5b3146a8695e7e7c565d656e03dffd66b286462c6f2ce7dc13e1e8cd8d7d3ca79f2786210ebf5e2db9d71635a74cd3af8938659146530e4f9cbb7c3aaf8afbc52059ac2039013878541eb9894ca35804c5fa0e87c550a48776b422e207d78923007e959818871b7b2323f99b9205836f3c29e0ec753affcf831272f2a65cce9a04e085b041c5268ed7226080e7fd90b1f7a3e82e7bbae24ea1e4cb163d1015905bfbed36e3674883341dbe22bdbf29d7ef7b95a42ad63b84b71729746477933c95bb52feac84506995a0b88e47e4afcae66ad49b712ce3a9e512469d9e614245ae62434127789f7744861874e20872050fbf949c60d3aea5823d5a53a76bd9459d86a100f305d90456f5e505a7a19346866a1280622409e0429fb3202c9dc65f40c1d5ee11c8acc52c13766b28e2ddc2b0a7fd68cae3363136f2faf9d8b6bc76473082e6f606463d21742a935c1c540b7d02746c4640d2dc15eba963826bb5c6e199713849464299e70db4147ef8605ebc5823059b242821ebc3ef9c10330bd2864b1821b351bb81af060bbbb186dcbb1882e0fc938316754c36b8e11292b5d641bb91b784b7108c83183760f4e74191ca097d8ea062e65071fa7aab4699c727149531e2f42f74b39c2ac0d0ef747d23291613f6bc9e8b5e20e7b2f18eeaab005d843a1eff1782bac48da841670938d045df3a7942c5162fdf4f2b6f80ba6c65dab20ea26170390563fa4bc48dd3c9f0ee14a7dd356128c9a55305a60dce4fcea95d841cf78c126509ae3fbafe9493f5951898762ebcb94cb1a8785c49f22863745741403def0d9dcc86e18117e548dc6baf8e14601f63ce92e5870e529f33652355def93f7bf3696b37936dbca80194fa61866c1e7eaa47057095a4a387cafd1212fa79ebfb15b3262451f6d74badaad823722bc51486ab74714c5b856d9ad6939785b0296b86946b5601a05f45722caa778b65a5701a6f78d5ca2cd26b87391cace01fa3fd17f1f9031d0c17ef706cc66ffefe7f7486a761984fce0a984b75bf6db86f9b8d6b0f36ca8e192e97a853fbd6c48a8e1d5f9d23d03da2100a636bc205957aa80259d1da33465a60be9c09b4bd5aa6bfec513c6e112f7b8970fd83ef0a7cc5729c637f3b0af22a2e118e35ca8fbc274ec70c5fba7e4f71c571d4e11c19a7bbd9375e581b598735fc8fb6934e1f953cb78ac6984529c77c955eaf359820dcba5c3031a88141e338f7f81962828dd58204cb8bcab9b058aa76f234f3488824eaf54435b404244cb6df0c31b28820dc8307bca46e321817b8e5bf0da6f36d08a3ff54f85af98293cc784f2a70893ed945c5fd24ec83d5db7346a05df76b83ccd9d5c9ed57b78ebd01938c923fa63233c58e34153026f09b65d3bdd2c2a6e92b24a6ba9571caebab33925352ccca18bfdc904b11416924f7b8545fccb7be4b570a56e3228c41283238a6da5e1f2453a2706538f64bc723ca12d3d62c8c08ed223bcfc758c00c64c0d302fe76084b6358cadc38dbe4b9d998707b4b56acb70b37574242f602d7f269361e87c40ee8409e579b19ab948397c6d398b62bdcaee159f293f771a0720bd2655d50c67c292e8d0674a127afd07641652b26aa1461ecf927a3152b418a066038dffd2e9bf3d7854420dc1e9a23040fc4fc1d81f2c55c51609fd5cda0c8d4aec9489f640902585816176acd564ddc6b80e5424bff2ac339853d5059ee026f0e0d719d405b2935108389fe46104efcac2490ffaa742d473512fbcca325b3319e1f98eb3eab868a7a8606de71bb59db82351c2eb179bec0d604193ace31dac48253b90e7333bec911a83357f52a5984bf38867ea69de4d2755afa09a6dacfd96a2bc5123bc662af22144ef8477e7e015d32caae045955df4dc8d3f26794c1b88fa649375ebc1f2cab2c1cf5a36105cd254b0792ad8e4874bf974ceb04e2888ac03bf3ee76d37b586169faa939654e293010b94aad986c4ebec8e47845015a41e28879a89b52ca6cecfb8215597464fddc096ee0e2fea60cc4f52020b56378fd898aa8b36478f4781b512565d3f46e8bd0b094c39e355ff21e5524e11cde4c42d1d2bd802d2a0e6caa2cbf1d9a7e2dbc980e88e8259d2de50a7d510f887b62db722771ae051569448da7072397b567613e68b1183c3aa42cb38f60e476352b1b458cbc74764dd7a64da2c56cd44f0e4fed76043daae3a87483751106a05d1cbf010116841f79e5838144f713c0f6191d2de376b6b89f91f4990f9233021fb542ea78c660f0e6026177a969010182a54a96b207b04104fa9892dc488a097adc65ce1da2ba21a4403d0eee579315ffd88658aef34b73724c4e03b23bb22743f2fffc0d827614042d11ea35bcabf3a32c3afe568503ea01a3a2e7552801195d39213e1c642b4b23c70720332dd9eec7eee08aa6cae79a88502818f782f285740824a685c8fa34f08e1368ae4a3e6e2601c293b17f5599b2ce826503b5d737012367245582b045c4936d81549826253e1a9b6aabd58ab226b23e7802124a9a9823e409c9142cde16f48206661a97acd04647ac6db6e10964ca9da7ab6784e16e0801f9b45694a5731057070aada6fd414c3a07f7b400f5b7d724d9208755794804c724c321942adb6b9262ac1ddee91e849600ee3959c660fb6c1e228fdcfc543163e59d3ff671d7c09072ae630f06dd106eb83ca2d4484498ac4167343db829e9db12003d093866a0a350005592d575f6b3717bb818aedcd756a9b73e77abdc3e5bbb3f1f1942517af3447c24a6b90968934833f9442927a157c5fdd09bf3a40992971960c7805e93b656e9d78aa4894ce663c6adeea73af3f79447a51442a5f70680c3b0b7a1b09abb3b0a6121e8e8f7ed8037c1104ca932a73073ecdf6217f038d3a1391ed750e74a1bad8d96a4874b3254741ae0ef3edd35467dae3dec20e26a9a8e02254a6c4b739ea73761a464389bb244681051635ea862990ee6f516c713e539253c951fe394174c30e8a294a49be673d657a4fd4657277931b58e515a994a1a8b991eaeffa6751b5e7f42f89c644fa9067d71f3ad435023002bfed92bc6af2de5f6b1ac3e63ce5c226919540d3d53e487c29ec811327b9ddad96c2f0706b4f65a8028e63713d0d1da3c058bbd100fe01e39fa71f0c22278ca5460486bb705a1e77736268ae1fc68b7747e8d5fd127207594cb294eaae6a8cee9683d0babbe02492f71e8a795485f836b94d57940805291e612ca8d9f88c1f9eb5308cf01876b574577f90526be4565f4e4dcda73b6232deeadc53eaffc05a2b30a4a8103b655da00ceb526a0b4a21f0bd63421eac856f4e1f99f609d45c43a4c78045337b7a52dcb322e08e8810d19f09f969d7260a8e0dd731fe8e7191a118b5b50aed28dcabde0f140b4df449d8fb6847281a4c971b7b1234b90187ee6c165db11c730091e6745c969c66721015cc0616a44798f5211c886ef56dc9ecef9dcd10c3630fb3d00592c1d4634bf76dad52d1247d5ce4d1e8eb6db1df1d5ac492bf6f38a4a8565ebc918e00cc928b1db275e2bced9a173562ea336f304695f767eb27d63167377423133f7dad480be22e81ca91b95425b40d2c5eea57941a7326b0fddca94f5e0c079c600313e3ca9425c10671a798349236135b505e8d8025894026a864980573a93dfac1daf70748b38eb0297f5854d003323d5cbd5b1729401035e7e29098007d18a1cf16dc9676e1835d106ff3638621b072e7ca5e231382e8bcb2d3df044fb8b94face986b770351558d3340d4bd4f47207d05a3492e94b9098373049cd0aa54a94b254127c6ff5af440e30a0432d4b8edd51f0bb7a39c9eb7979fd7c6ada37f629fbdeaa4ebbff44c714837b40d016f90aedb789f8263b6c3076431d262e7f452e566c0a0b68cdc5c7d2b2676c5d920577a524030c9f0c64fcff52b264c9f2e9fcb979ed09cf0451fb543ee3fc185c09a19a6e662e60cf982e41f1ff47ead6c45f661d1c542b33372c03506071269b9c19e7560e93af690ceeea83a4d40ec8647312332f1c8aa7993da4461f28bd589c82deb66eb107ee0e68b87b312a40e3aa5d359131835f104ff5a6bf69de2158c149d337108c4a34d734805b880b8040571554853a91c4f8b39bd3f32841d708529b0e036617d7459d55005d8f2a89b95017e3a4da812748e5cc334382913047daae0bb6e6da1cf06307b49e79b54a551f7206ea5b07a7393a883b2b5454654392437db9abf09a746fc2235e3f1cbad4d582009c581c37635ce1eb5a73344e0672907a21f92131935b337625099a73b4b19b238735b771531c91718be21c918468b65b859700e8093c44c3cb0377708eb0dd9cb123e7e2b069803909f2af5c56019a0c7be49d8c2bdfa2586ccb4a3abe01f8744f5d1337b02e5dd44bf880c580e3dfbc47564ea620d9cd183a3e73b67a6c3fa6280089e87ece5b484f3a7e8bb3713641f9d2d733fd32af0f1a622f3c0568e09a017b25ddd8de2f5ee62875e81d72bed337d5d37c3d28d434a889d068bccba6ef92a675d2bac1ae7a43598c254a79660941d1179344f50ad4b6f578530f32109fc00f44c6d235cdc2cc6bf13d24bb2bd67dbd425d411721805e293b0e286123cc054b81c88689cae25213b24379047b71602c9855d8b0084b2b7d1f062c2dc71369d67091075fc8ad9e4c356e5a3be5ee4e2b0ebd409227fc5797221b3c2788092d53161fa472e8201195c288be2e4e98f96c8560ba9d99dea13b098fdc5c35d98300d9fb0bf82de521f02d3507855d800d23a5e431783e092294e97b72e9fb23c2f460b548c95f225772e08bacd631975fa64f1d32acb36ab2b0f4d0f866f579b61d6ed9090278760b6762ccc0c88898646939e9b520e6daee5bb118b0aa7e5f32f89f9b3e9f5e9a1f406cecc6b0621d11e54f90303cae686c4c1aa28bf690ddffb0f4965ced2c5ba06261a5193dcbe2568f6be719a9aab54a195cd4225f31ae92f9386927d20d4e86c464313412932fd6486aa54626d0b12cea25859560e9aeac4f13b0fa71001c8916593c706628c05c33598a7099c8d50a70a1b2a447f41a7cfb12710c93f18ac0e8f552985b5062850172dfcbfa76dccd8937d26304751343e6c4a533ed14122288870d333f012609d1ac17fb3fd06d4804ca85ac3d51261318fa16840cfb901d77fe93cadee73870f93f73c2c450746122e6a6a91cf138d8f722e8894b1a5ab91452ecf661e26ee29d6b21d86b44f7dd4182f4a832d9a3b41aea4132d8827c792c62104f445c1024493f3a47bd7a15d2d2b637675a1b97193c221fca896b45eb5015155466530ab80de515128837c469a1540894f9fc09f4681f365eb17da9473d3121081d4f88da3399be5eeeb2dc3872cfd29e27b3b5bd5eb299d34898338b9f1910f444fa6dea1799d62f01e97d0e16563818fc3b76536d96f728c72ee9254195ea4c85c00618ca204e937cf789bea8110e07913b047110da07c1e732bb3e5263aa05356c2dc83360e0225b39e95dc84b94c551da5653926ab7c9a6d4bcfb9299a0804f039d4a400e73d6ad494e7f3ec67b78c47681869f7e7e0b18b582b99a521c2c081d0b21ebffc419b86dc2e23d24551cc9f2086ac804ffb5a2a739a895bfc01c8b960490c7f03e5831ee0072c88d592c4ced204ab9df5d4f10e15a0615f31c9948c020eb21d007b717a478634ef7051504ef6b1201750799d7c7c3a9b46be4d633761e2d08ff7536d350196a166558b86a9fc51f830066ce6459670ff41ce6e40413feed238ea91fbcc69303352e92b5e40e61afaab20710f6f39713113fd349a10b2ace7f0d26354595947f3a368bd3094ca1c635e7d041bc4fd69d4e22fb6639e085e4cd3bf4aac0761fe2b7c6e34037ea48e99841780b6593ec7aa560d1e074d2a324534acdb20953edc1a6a8a30d6de9004a772d0d11ff2a6f06bdf2eabf28b692e7e2b1be24805150aedb44707427e64fef2e1dc206cd44bb104c9c4cf28ada283fa1540957f745e65d9572765fc2a310e55ff1583ef0f34474853dd1d163bbd2c0e81b88cfd4088b689695da0c3f30d220b98a75cb317179220c7c7e21ebe6c71ac947455c6aea11404655b6e75611d8d7095b78bbd7aa10271a3993e89c912b998b5041ddad20b2a729177158a1c6f5f4742ca783b165217c4814a474841d5b20acd4d59bb44bcfde204e1c4f6a6f87c124be1b2f82a2d38b1e82ac5b5c6fa992bd2a151f4157fa2fd146dceb84e60dd84327bc72d80195930ef7a2f12dcd6e7be3b450a25797f84022b5ea904d860e44a8a765b37c1928a611766fc7c7e93e6011b57765595edd63811f52da96fe91491df6988ba2e772490f7cd500ceef92cce111aec704ba55b7e2fe7695988b5cc4628246759a30d5263a6c612377cc7402595d7e42431dd5986510e3e124691a9e1c36305c5e6e84f1644ce8e3a5544b37b4e95ee8e80e3980bdc19c89cdb1b9669bb1647a2bff771c3819a1abe1c53bb6989915320b71dcc840749013227d795ff080e398694071152a363198bfa66c91eed344855f25111d1073407cb1ea3f2adec049b21debf9b4cb9c38bf576c411ef6859bcdc31f543ed8cd2ff4ecc56ea2094144d80e1444dfb396dfbc38e64ccd62e5dc10660c06fa21d64af86868e4efcc540895a4a3348cd0720920162615a892d757fe009f7f0501684c2451aedc8458d10bac20da535dd4d70b89c472c5530deaf7739a5763d21e615edbc540d33a2cf7c0ad3118209a2f7182855590a7830acea9fbeb7029b1c30d7302917569e61bef5ef8600722fc5f1db9af88a7ebb02e75f7e1d457d3992c0dbaa2bda188ef82d5752a2dd31805a2203d9d881838acbf5f76fc3326ac447c9509cb026d7188dd4af17aa0808b9745e8dec2dd2b0f46fccc08d25018c19d831144fcff3e81955a29b3c68fcf9e0a94dfab12bf8da41b2a1fd0ba74d14ab59e90509ac03869ef2c8b76e00d76d5ed76013112248142d603e1c0397be2dc150c283eb75acd89cd7f07359c70b7a7b299040aa03ccf04f659d88752ce7e3cfc80fe96d8dd3d92113bc65f974ebcfcdf128f0e431d50e29928bdc04055cbc38f4f8d525702c628ecebf5e12c2dbdb12f5b485b5af969447c12bc0f314a2e4417ec6ed2c3c29d89c7a729f1e4f8f48fdbc9a5e2e04cd2611016061823191beadcaea2b7e6ba475a3b495bb3c48c0a7cbefade57ae82209aa7da9c4279f20745941130f0e6f3385b69a60a54000ef0d98810d7a31e16ab0e98f8c1deea67b78158dbabe8a30f8ec9dc922aaf6f06b846c7e0c55dc7299a09a177f8624f96759c89a5b369b12882ade105f9c43b08d88732a152dcbf850c39abbec719944fb364a98112f25f4e9cd404c2399cfb0fa7f92048651f6fade5b552a73803bd5dfd7d1cf2fc9eeb21135a937951ed0ae166aad5ffbeb4aca57b39fa710685ed2363765297083da179cf385f71f3933d57fe21e276463cb3ca262892aa88988b13aa2619a5120a976dc6e821dd90b35f8b55d10cb628fd6608524e567d2e7523a2c9c60bcd6059b0a462993ff0d60b554002b4b43d2adf7505be7c0139ba834b4848aeefe3174a3d1f28caf30659b23a77acf77439056466c54521bacb200989a5e3ebec72f441c87b3dcc31f84bbbe372c87b825020f9631e7854a43f69db9ab61f9d5d66318db7464b1dec24ca80417c24242d96b2f35e546e719c01606ee134810d7b4718e99a3f292213c8cfbd57cef4f86beed349200fbef70ec645246dbf70a267b82f335e81b6c5e6a02db6bc2e710662b290eeca9387fcc1abac9985f0bb00fb7022f598afd81cf672d04e3a8697276565d5ca1a2f9b1e0d4c5b6e6157400bdc037e45213807de2979a776a48a3716003b7642d57a57dc1d7ceea907325736d4d71d240c4ae00a7062fc377e267d246b36b3e8af6b2d98cce012c1b7175029c9cbf44b778389141abc626d54e1feebe3357ea6c2977a04a2aa04d0bda1cc7785ce51e0a500dc4cfee0b565be31a75f364f0b08a94cbb1360acd931f3ad78334da363c8a4d1441c4d6ff4c01deb102a51bf04a221d828b19efc8361569f3f99414b929f7cdbed412544181e8e7f1d7addba4a652ebd1128dd9c11e9a65c1f994025b967afd1bd1d6af4374b1dd750b57bae1fc6895ed4a034dc9694574f25550fce2147e58450ba92b6a0a9a3ae0822365024719ed09c4f8107f9276b6c0616e8202b5089f65cf9f0c9762a503dcba82f0408d62b0df6b656d480396f12f40dbe41c884ba1d8485011ae6982e55809615758dcd43b0791007985caeff8f7930a247763a96d171fd03771cc0825f391d4cc3567b24dd810610e2332f87a8ff2494ea3f04535dd0142bc25db9017ee85125b1a4a4215fcf6fdc12bb9bc894929452ca1db702940212031ecce7eeeeee16638c31c6ffffffef2eae162fd996d3962cd059ed6dc78f69341a8d466b7d9446a3d16818638c31feffff7fd78731aeeeeeeedefa7038738b16414c8434c3e06816aab990e6d793f016d20c6b2117d6858b4aa70b17f8d4e549ab6dd94e4833ac565d74fbcc1a27007c6ad925491cffffff2f93c964325aabb5f7f6ffd37f7981f960f27769dda5d12eac61d561187697f8ab6b71f9f0b73efceac21f5d1f167fc2bef9315f002f607c0574659744c7a4af0d3b1a3a6bea40d7b27a61b5abaf66decc97f298ca81a4acbce63a2a9ec36f50192b4346a553860c7cb26066117aacd27830d634a0653deb1d2679a384341b7073ab0354bef9b2e9584833027d830b694ea0898c4fc55493024b15ab26cda5a1b195d2d0e0d3253b023a5cc224c8ca3f55beeed280429a597e5858aca090e6969b24a4d96bf9ba97cdadd5ccf0ea5c1a021f6e3b764f92244992a41d478b046dd934d53c7695558a4f5caa5298094992a493aa14e85f69b4b22ccbb26cd80c7fef80ef71b575369bcd66b34109696ea9f6f64f4f81258c11484006c984244992c429d0deee6eb01b638c31c615666117e6d28f3dd7f7b6855048f34bd00b0cccf7af6c8df2f72f1bfb13d2fcb23e300b83553a61307cb2e3379d756559966559d2d98c0611d29c31f6ae7ee5934c48922449f253a56a2f14655996657953edf8bbbbbbdb4551144511e30ab3b01917bf2eb0309c90661732173131b49066002c10003efcb2b1b190e600eccd0bfbe245a5f3c50b7cb2341ff659eb1c0390024b3e33aba986644292244992b384a22ccb52559629b054adca2a45656f3beeeeee6e777777ffffffff1438e303f8fc7581f55e7cfe92216560c0f004f8fc653340921836468c4a678c18f8f4dd4047036bac31ffc8d86ad0388ee3388ea2288aa228fefcfc0830df5360c91b7f77bfdadb3f5360c9c96a6fffe31458c24e7f062e263cc018eff020fae136221db6db102e25ae2588a88551bc2ec6c6bbbbdce7a019ccd9c4b153cc0083f93f34976edd03347f5d1353031d0134e33973777777ff5cb2f0ec9205689ae1359c71777777b7e9048238151553680e7ac3964c4c5c37934cdbbc09cd71eecc5a4700cdb89fd58631c6ffeac26e74fcddeeed76bbdd4a184c0c72b95c2ed7ef9f62c1521d898ce3388ea3bdd65a6badfdffffafd56ab55aade6b9640153a3b55aad56abd96b55d6df3ec618638c71b88ac3e170b813985279ca5a6badb5222896c42a8a62adb5d65ac1d4ccce66b3d96c468348b16dadb5d65a5b8ee3388ee3288aa2288ab5d65a6b4a754bb6d65a6bad305d6d361bc618638c6badb5d6fa62adb5d65aff4e39d30cd3f47ef6eeeeee81a94f456ff44948f38a962a51486ac4c2277aebe69c73b5f209695e1959581488d228103af3ffffac366bdb276ee26aabeab66396159515bef8de7befbdffffffb3d96c369bcd66d471c9f37f556a1cc7711c4711144b6215ad288a258fdeeaed76ab364cd55ebff7de7befedae561445511445eff3db0d964a6badb5d65e511445f1de7befbde3388ee338b6ebbbf7de7b6f5b6badb5f6aa3ed38cb932cdc01863ecadbe9515568b8b8b2556511445511c426ff376bbdd66b557956ac72c2b2aabc76f5db2a8365aa1f8ab52607777779765398ee3388ea378af78c52b5ef18a576caf9e024be3388ee368c7711c478b44777777bbbbbb3b49922449628c31c6b82ccbb2eceeeeeefbffffff18638c31bef7de7bef8a6946374d1dad6fade8b15a5aae162f301606a6d20903d375b4ab9ded463a8ee3388e2fede2c4e28ba228da2134dab3aca8bcaf52548ee7cf558a2ae5eeeeee0e96aabd7d9b567bdb31f66a6fffffff7f777777575b96a5bbbbbb638c31c6f8ffffff03b74891cd1ec9f99c7d52d4c4e218a5b4561c5b1ae1dedb6d34beceffe392d1cd94a3869dede806eb74b47314833dcd6e771454c424348a62f42406f59d4ea7130a75b4000b45c46b1531738c4c8c189918fe3214dd72a501c16c140bdd4196b788c0d2083e3a36231b11f00b3b9b116e083c859ded689604f4c2ce7604247444cad8906ec20f3bdb5194d026cf94ad23b62224477028f2e9a9960ea140f308094daffb0e3f39e408f16e14502c129b0f3faebbbb7b777777b7bbbb7b774f0f0839d69da7bbbbbbdddddd79aaa8366c361f34baef0e3faa8dd568022949121a357cf0820e4341e0286ac1a7fb4ecf38438e90128a74dce8ee3288bd3dc0ae4556d8415a1f78dea0431045717777f7eeee6e779e3c8371a8eedddddddd3c3c47b3e290a1c38d9013215c5062490e484c501b3848538070058d1e383d807a8696b49125eecee8a37df4bd512c31654e50f2739301881bdb13385c115cfc60042ea6038622166e20aa517b547724361f66c811d243e82d72ebb1c3dd57d841be7b4ff7f474f7f4dc668f904475e428da61050e1551a008717f888afcc87f6d0c8a1a55f820c3121a78d8704b2aa2862b8809585c21850ab9216e0db72124119a4867babb3bd8eeee0e448312da0165e2d3d7ddddbdbbbb9bc773e00fc14891cc861e1c724a8e7c3044c28da2dd799a87a79b8747083d3264454ef7f5196a2188ede93c73a7781bd7c8123b7ee4f8edeeee28c21ee2eeeeeedddddd3d3dddddddeeeeee7906fbb0f0a3babbbb777777bb7b4f9eb144f3de2261671085db8e9a0a8d5b0e3e46e86e222082d4e86e433d41de9da77978ba7978f24c89b4d17d890c2199b3529113391ce4f420c3e28e4ba628f58d063937129ce881c409204cb8340cdd28019bca70839274a3bb83288acd347677f7b6b6bdebeeeeb69e6d724cfe9bc19c15e8c0c80e209c5c5104504fce79e65b8875444436b0814511409c48826788051d28dde919dd3d70afc288189c2881040f280ef80ca1df7242177239702969a500b672b8bd40a46334041210d9d201b666201147dcb884326b05e62c936370d8d9885022b4c93348ae256c4b481b114e025d68a90b0778bb93a043170ed0e6df447988b71615a0cd875fcd315c8ed25a5a58c54ae3e162b9fa8961ad2fd22805d4018779b70aa366970da0cd1713431b1bda2f16d6fcc5a80c4a657c61ed4c3535673fd7595108af234d13549cba536bf5c7a7ca9a44c9e1704dc849abb5f776fbed76ffc7fe8f71a9e4e152c9f3becf34bdef33994e2754974fb9130aec3a4a76047499ea00fd0425a1354a7b426fd058ee49e92314f4e3431afdf88cf366e24cd914bb2ed3da65db45d09d68add6dedbf676bbff637f8c4b25cffb4adef7994ca713ca7442a1403095528129952a2565b5525159616161b15a5a5c668cb0cb2ba69a19caacb0b07cb3cbac2ee3f05a117461976bbab0eb26ec611f6a3027035ecd852d27e0ac945627a0cdb769867f5528acd95b4ec0cefbda7fefd451994ae9a44b3c5c3873474e60636373279c99d668adb370ce2ac33589926b42567b6bdabffd658f4d35b8f42a05799fa9e633a12c0a55e944fde9339d6a50e02b8502533f2995a94695b27aa5d028e1cc2b9a5ba9acdc8493a509ad511d0a447f68104da24369b927e1a4b12754a6e349f9e32314e4431af98cf366e24cd9a44d20f3668a13826baa99a1ad63557bbbfd1d974adee7994ea8130a44a55429aa9495a94626c50481ca0acb0a0b8ba5c5a5e56bb95abc986a64582b045eafeed5c25423e33241b0ea5e30a69a19be7c39b4af57a5f3f527983f7599763e3b241d91f444f8ff4352ce060e481021b401f3121227b4c96012492b81ec094222217ba841068536790689073008a4015c014c1aea4026c72089a024d647205c9c07168a161160528e9b241d6ec4841a188947ecff5f067648230d21cb025740a191ab8343ff501667d6f7591ac3ff430de6ac46781d4532216421f1a094d66aef0fa4d15227bc1613aa14666a870e0993746c520e354928e9879934e438afa5c42bb9de51e342d63791a0b0d6de9b2456e1eeff4834a41fa5a41c9787d7c275266ae37a5ffd5751312d54c22e833495aa19a49f875209a9a98341c19839e7cc5d57410e944fa8748f5bbba101048000a3190000002114858138cbb25049d80314800b26524a407632202a3a26924802413a1063281061000601180418830c428c3184652d72b8d54c76d73db0cee0fe7d9f5d3fb5f3e4f5fc1dbefcccc7088a44dc784af9ae9f93e91b5017e84586f0eca1dfcaf36287d334ae5970484ab91740695e20571ebbf66ceb7424ba793392972f06bec0345e01abfe02d3d7bb6b2365085b06a68977d7c64d39cca07305371076baeab87989577fd434dc15cf8fb36315afeda338d2507a11c9d894e12e83d07dfc38a652c59cf22f082444b417ad9cb4f6d54d65586b4cf8c649d82cb6f21236ebb2cf1b62e20e4597ae95de774f68a6dd0735a988d57b251ac2573d16a331e125866302fda0856d7242657c006bc496adf0f6c57188b34b23510bf7c0876730a56a61e296e166e39691afbda3e42d28821a991ccc30c091e48fc0f7244eb259220f8f1a35becb84cc05c9198eb70aac904474457b3635e8d13fab48d9749b43e16443d3651413f2c8d626632d2b03412803be32de01a7049c941af3013c9b023ee0413952759c383a52e83e1ed7dc28395efb77f07b2ff7c533f4fc0cb910cb2aacfb528361180834b4ae8dc30dc35c62b1f167ff3a2fc6379a0fcdee69cc221b41b3ec552db3babf16564c96f762a02fb7ae9bc4c26a2b1feb7a30f342675756789ac6a7819c08d2c44a99572afaecd952448328744eeeabc731ed8dad8a9f45bcf80c31b228f34aa83f198f8975edc23a88c4bebb7163268ef818856251f6badc64ecb87fef148f3bddc414222e5c6e5ed14179634368c777af519096a9a90221ea5ddbacd2712c28360ff2ad8fde90ee55375f45feaf6117cd5e43f391839eab58dc27c80fbd240568adc1b6ab0e760991fd0f4062beffc0cf3009bfb5647772324118a42fabca70bf468c3f211568851f52ccfe039431ee3f70be4cc2ae1ad91d18491026e6cbaa23bcad31c34b480552be8cfec0ad57be6ccd9171bbdd675eebd353387fef188bcb2fb3d4ad8d55976663a1d9324c29b8cf4f788ee770a94efa2af265314a32e294cc912ed546d8cf17571c35fb0173370e72d6d9b2f44861d4594f12baf9de7d14df111c80fbb92b2bf4f617c3bf964a9034de1c98b93d4ba83830a25499c571789d21d77f3cd8d4825a6a735cb6ed7ff3f44d85b42dedbe229e57f7f45bbbf96d25b66543517ada592ce13cb0197fd06ce12e7d15e2c55600c23c1d73660d357c9a9eeaf492205fa8da7fbcd3b71a0aef5c698840123f7cb6876b9ea82adaf33d76cc4632f4d45deaa060687068dc754c0bdfb1eac12c85050cd5a154c0eac67ad9f2f52842d76af6ad4f47c4259b02bea2697b5e5bc1cca882ff7aa29bea8c85c833c0b4e5e3259806f2bcd25a45c1b0572ba5eda7f823b852b5f229a57c261bd2b08aea4a1563e7da12b701fcd822f31a2015e7ef4f11c682740b93dbe8e3770d9b049e96f98a856df9fbed729833afbba53d7e7e966bf9332eac970a4d8c135f859c642b8516720779c7eae0acfdaf76c134f081322c7b859264eb699f48e1d2c93f4dfe34551d5ce2a35b803e50ed729c06309ae2638d143afbdf5ec23ab02e9d9e8372538eb58f0f918cffd69b3f649ba7ef1cc258d7fff7d3615e5a696bcbd56c966b42e085c8a8543dae4d8d7e2c81293db0bebddcda23d8df0f9b62806bf9a9c4dda6120ea71d990769197d746061a653afd40700e37d6aaa0b350a4b016db159ceb7288870d5ffe657a2fcbab1a9add1ecc624f7df44f1cd918a56a40a3f593b976ccbf85d53f131d4993c00d86805275a8133fd21ba1d451923f945f8141ac2e3ff2f37584a2a4850504ef6054758cad51f2bbe75a5a0192291c08cf1e70decc9a94cd3bf40812589585295acde0cc9271a32d5110b6cbb0fd437b2f25d35ce4de3e73ab1b008e6903b3bdafff65ae0446f1d92fa345a10db3564a709989d108d1ef358026eee0364699f0839554b3d07bbcd4147cbb930d0a86d64e57d42763ffd708fd96ee35b670831a4ff54969c538c7d1f8b9c8c09886ba94c9f9be09248997b6aaa3d35308c9e70d9df176f8608c455af51b53e0d2374f17eda6ae66eb19bba16d517ae213c85752cd1535ff6079867b7a2b9788b08a17d71862611478fa3c5d78a102c33e09ec504f3f46280533fdc15c54d0360a43afc384317548a85040fe6a7366fcded381d3c95940fb430ff8604589ef0c70f807f9441eb2ec304c5787ea00039575646f4ef6757564ab7399595fc3bdbd2ab7b2bc370de2a1dbc1bde5b1906a2737fabdb4d28797983ecadd2c409fcc452ff58e5399a1364dc9601388b2ad8f02c733eceb0a628722001854523d9a1c6fd99430d8fd99efc6bd80666f54bc6b79d6116f2cbc64a7c6eb8a11b93bd9cae44a6139d73e0c30f63386f54ae5a0144a0504fea498612942fc051141cc8e2cdcfff992e846252e50c303b99a5aafca1955ec7827ab9e0a7c86791380326673227692d291ada8add0be650b67d1f312793c656716a04b5495a94fa8aa7b8cb806ca4b6a3c7229ed43c1fb0a9161a30831a6d1c000f7db4512d4bdaeb73420968012fb84738d37cfa187a8b4f2e5edae4f01586a1ebfb4cea3a113b772fdda99e319b8b9f61e8892b1a09bc864064fdcfa54595de4fca517b5ce4b8dc1667d79929f23271e7055a53cc1e29e4d7c8ea0935ffbc9cdaa532e601e10982676485ce62ecb013be71653fa13cfc17acb6a05ff2752b98ee1a7879236bb32385bc97965a441355b137b6877db345a946d79b3d9d5112cb225ce4adb5d41fd46831e425313fb8afdd1290ac0f51c9b88ca0fbb709b8b9b13771df0a299cbf6ec7fc767d004d2b410aeef7a8a3aa281de8bbadda7aa8b9e23feb59acc1c07c4427d697796420d49ab71d0df60360dbb26b9efb955d8136ee04120e2baed7d3414fead29bc40d71af1784dde8878cbf58f1e0e1b350b9b618926a65ee2f62d337bc1e9d5eb1ea86495700665cf63e347fde6755e9fc51b799bb92c162ff9985c7734be70182c00f062aa263d9970dd1dab2279554a9ca0f61d675ad65c0d76afa2d8645c0b1bcd98ae42368e2a7cad669995f959be8bf5e1fd28a9d3dc6ae453646e3eb82403746cd446743ddcdeef6d2c96c586c1c193474baffd2059b9c00db15c2d1176a13d6b7726893cd50c6bbe93a6477b4225d6b872a140b086d0bc7c9358a39f621d1a0e8760571122e47586eb51a519adac2a1f3281307a2795d94f77d78a80712305085a12056ddfc081ee38bb83e12a4a0f25472e50f832d0c2feb2e3c37d4e2a7ca95ff7c5eaca6d981945008798022288efe93bd12ccaa01186a0b3d8a6aab59cf854d64f1861d78aceb3be76b959b0ce81a9402074a7ec74aea0908e900b8276c4645bcfcc1f59ad835c77261aed8ab7d2c6fc8352cb59b0902050754eaddf7a602d2390428757380aa3c4bf4397198b64e3fd13c6a4ce19f1d471351869a8af9677fa9b66e2bfce9b75a98a403b929a9a6ef91908fd8bc800d310853db1310baa37339bcdd775c4d92fb8461421eb451051c8893e22045ef97736de3eac8ddcc8c6455ad822dab3d0320051b26c7755ef77d095f064f3e56a3619ce1d47306dc8492e80d02d6c4ad485fe0a3f33ffbaf6416431b3573306ba190108a9f33842293480fb1194c750fbc6c48242ecd3b8e9c06252f0324b142abe57af26cd8183f3cd7ede6ad49b76e03f66863cef5e489963e6d49706b274f048992a05adf117a0c06d5b792a8a6adbafbf4aa96d60885afeb65dbeb18b7c70193ff3521576047eaa8ed57258cac82e879a215363c0b5afebf88a0121466ee2a13f2e6b65344d0424c9d3a52e3480161214f6fcb62d8af22d4153b52f2bef23a34e51c350b98b23168e152e3940c756200740d45c546937377df52d007e7b2bbf13f8d5e995d3313d11113c201b657350cd22c2c2e1edb354a001288e1df45d1862d822677aa0ca0b9320da2612d4710ca229632133de4e777c37f3bf868b8238c73380a80a26a02a91c4f4ccd6b260df9a8baee05da9b60543b6100e94a05fcfb33c65a9c2df7dd0293d61c288dcf7a7004a7a163e1c0f6489616dbe781e048ff1aaf73f676b3d3c67eb9996cac5a8bb20b923590d8d93d1581dcccc20d6ed1b86db26d2a8688199a341a33596c0a6aa8733faebae434ba27addc2a2a03499dc2827a71687d60e77bcb6bc0211c698d5ada47a4a4455365360842df58d26bcd0d71a9f52e500c6a8a2d2a091914e3faaa29f534cd782bbe401946c7f762795d62d466a1cef8b5f509fd8d41b9cb2fd6effeb87be5966adaf34683439aec99046e35d25e22cd5fb6f53fe8c41d0773a17430ab640ade5c8b8c8d4851f2fad6498585cc16a721936c6dfac82789b89060149fd04aaa8babbe5be2d5bf82fabd3865b395b1b9511ba2f7aab0ff23d9b86d6eb9f1a3d42490f57b8835f34b8815820b19704e45586969bfe92b0f0bb7480d2be1327cf261b2d3cc2e0bc341a2edb2aa6275b1cd89b8c43d2011501a1f40471e9f16208be9a52156751abd1c5c7e9cdbbf20d2b23d0a9cb88c64e0ef7a1ace61d111fd2916a428301801d1ec00e7c64d1e5510609daf634ab8599e19674c33d3b0b743146496524999b62455020c3a2db264bec2273cb7be9e511706e19af04dc3da2f21eacfe6788516ccfb0a47ba16341037298f43976528cb6d57429885f03365554cb64de0640550db9ba7fa71c1183c4b57a8f909142083e0f7d038f2c9b9b84cc7ae4e3c6116ffaadd942b79e5bc75417030e62cacdbec41ccee065ed39debae0a41e85192c69075fe78ff286a6d6cc1706a2a9e702a4a9f0f5db6079a3033fb80e24a77f7aa96e3c51bf95ab12c79e7655dc79ac569714f76e93ddc7baff6aedfdfb7eed01312f4313e38116b4dc0eb74b2e8b9c35e714635586b981650c2760d91341ab6d20cd0f78305c726f940b48965e53822eeb29705e018e918a94909471ae8299d3ca92b91c473c8e24aff8249ebc3aad4f9e0f0493b1165bf3f0075ff052d9a676eda94bd239145b32368e1e609133326cd142488eea5fc931cba1dbf3be3912bc29d8b5a28768c1d39ffb89e1728b813f7a245c40a73e30e7251a96c1149094d9946b66b91c50efde0ffff4f150f4f8b962d2b4961147370ea922ded5732756944638a6d49aa00aab6260ea150b2559f312a437b35634a8322627a54b880ead39ed5ecd2af41be46c19f9876be60208c97b21685858c51b92b4136d6a081f50e76bcd81d89e3efac0b009c23dc715083cf68671421112524a8501b67d16862c6b23d5ba68b3e92ae2c2c94e724fe2dddd0d41f494e334aac28292ba28a511eecf88ed2b9a4023cf262f7c23ca29a121bc8c863893bec292c28cbcd0e9a5580e2f58c58244d56ac1253cf36c90da245acab2f1131975d16c01764c3484d4ab8b197504268214b402ff9a1366666b54008f9e8b290172190e1595076140da26af688e19a06a9e51bc24edbffedf9d0164ed3a7de1a8f916091f585676262bf815665284dc3292598190ba6ad5c600c19e7654438112706596a0ab93a373ac855ba41ca08b3131f17df474a964c047cd077267a14923828f667876a6bf9b746cc5b5d6682e4a0315578357a62a3bf020e484f531434c9ed86ef91850ec3b3a58fb854b9ef121691cc6a9881e506feb3d8cbe54a9b07d9d627f7e41d10713776dac6230ae71f42bf6144f7caa0e1226454ee03e61a6627042a5026bb5a1eb8f902765d27dc44e40325610acfed099c243c1fe3e676aaeaf85840e99e3e35f82abc9fd45f658c028a0fea14f6dcc365ea83c5c041e26247f4a0a67e7df12c63e5eb6131cb6d92e31b5a1c41eb03a04ee6f04bdbe6352b3d2aa80ff3bce79c1b8a86dc3abd5d745a7c5f9e831825de1b1542d86f4abc0f827a5c9d6476c18dae75222d28aa0601a3b97092f4ee33db579f5bf838e5745930087208d8f833cbece0521d21c7ad544d9f99e5de4a7fa1dd76942e1897321dbace50fe951eb7874de9e129ea6a6b7026339486930bc4ab28eb9bfbfc9d3cde069494ddcb78a3fc8301cfe3eda03b8b51c01c4702bc0d1686f1b4ae858b0505fb5bb37d8120644fc2892804c76ea462b28fd60c8b9687fcf615a4c5ab4458e454913b0d8994234d519466ee89f9e24490f916bb1ac4d500491463f6b880857cde93151ea22c912b15e206554f1743940a77bc9b3868c491d3b664cba8def02ec12dd05b9803b62be7a2835f625f5d449e6aa987d88621cb63ab35a8d4b8ec9689d95012d18935b1dae908af41c62c90a90d87c2eeda951217a24901ccbf6b075fb5a964b9180d21517c289af6e11cfbc209a33a430243d6edea10da9b0651c3cc9ed10ba8289554fce84fbcbb86a270e410709d71405cbc8ad404e5a706f785a504726665660cb59ce406273522d64a6c123f606db9501c8e12a5ae39e27bc32b04aa46ec7f492969729d5acfc880d8b4597b5c0daf8aac10a53c5a6aaaac746c91a1cedd86ca5bc3aaae20f37bc28ac5f043752f1796141ece9c1a3d811a234fe4413459aa8345974393c74c4344947b697a2ce0b887095c4aa24296227190b000bf8a811a433f92481d3dc0c9c535b4c00751247ca01c7b6a71ca450ea4061742943de46556701174400ea0eeec2157646fa6696bb72fa79bc4bac85e3330638a2da6a32edf62d2c868d015adea3e697066109d7ef8eeebb02d4ba04a3556341e6b2877b8f18086b52e4caa5a7c3b1a1bc0e13d46ee78a87317b48e75b1ba0e49a0995e1257c7a37e31bcae94a0472f949dfe25ba8317785ffe6e52cd195402b8d03f982a3a3ecb14bf5186869ae102bc80c27b2b7227bae75a48103a4282018e4028860a9d0f840f3be54b682a67bbab0c1a6f25cde7954106f253c5a26e65d3cbebb1446e075609e748a1d87281efe5a3db795bec00c0d0225484b52ae46527b010de2d165a935608af9aea1ef5afcc13c5e9d0875291e871557463d361707a3369baa2aa2f4032499f8739879521544f482a7d5bd0d473298f24587d8453b7a60fdf00c092f87818783e073e41fa136687c85a70c3cb235818171d08e1f7c2b5d3f7ce7b46d23587b0cdc6e0c11981c06ea1fc4a20e8eb6fa2a945c0d3245a9a21360fb4e9275d11e3ef1e28da7eca8c419f9453d06fd39bb5f426213fe47909df7a82b1190f0b51dda427bcf39eefee73918721320708c8df87d3958fd08c7bbeba2f8ae4603cfd6935ce1b7c18a9010e234006736823b837fae44a848b29485d79c88a880f1dc168bed12b09844a0ccf7d8b1124b88de288e0bca8c6efd5d02b0c852d0d668f019620535d3a5bfa87e80db55760c206f163168d44485c6a611429a410dab99b62d1752d8540433674562d333aae380d0abe0c29731d7c7e7a0dcb98d4cd27856e28961e01ad94fdf4753f211242b02aa1733a8f8255ca7aa0b5a926c157f3535801c0f8955559858f57265731812a1559d93dc678bdd76459e0a7650a13b9427dbeec95b847e998693a1d414369470ca4e111141439e650fa689868b7c525f57b9a07b0e5b32903d70dad878f996aff6c7c1929c3d78c3ce67489acef24a52227539dd5744f1462424a0611821114c38cefa4c72901a00bddd7d02730e34756a0ed3128a4feaf37e9bbc6703446ade058cbc3618da6ea6f73e5bec7b23840878d4b8fc7cfc620d1bc3e65c0e1e8fbd2b3f078caa165e121f29b02b5972dcae2e873164c9460b20122725c2a9d3bdd9c59d8832b29dbb87f4be823ad31c0bcfee18395b2562ee0a5a39c7a64510acfc8555b6383493d4b9f8ad6a909915698f52a659b80d3c9ec8e82b7f35b8e707697ebc4fb68e6e489f793b7c403d50df148fff9117af9cb365efed098ea7e2e5e3a560e02437196e9b26e58dfb99a2e3771cf8addc25bf6cb42459c67a66e6daaa1c8f495786d166cf23bb77b0eb6fa5063b9baf973e8649cecb2367a3a09cdb324a363857943a74ec9a735232ba23da71025279e23851d2730c7f0a3695a2b87ef0898fd292259f03b2aaa92cab481c352466966e902bd575a83ee263efd4f199c1ea64d1743da3ba1f93bb23dcd4afcbe24f0eac366d3774b33595d4f66ffe6d6beee6b7f839b45db8a55d9eab6ea0703ac2aa61b26702d865cf07b590763c61eb9103cd47f429a3167654fda2bd7d5743fc4d5d4404a1e537993440a3d6209abb76a6cd2c25ca514cf2d620a55e1199a74980018d49957f2fe1147a50054262b74af08e0e65ef1a92b70a26eb5ad2ffa0eda39269c73021e3c0353186ac812e4cbe24ef25cce85bd34e9c5b0efc493fb2994258986feca93d4360c29524de17384ac1822be64281c3ad7ba7fd4a12505c309605c4b5762ecbc6a7d1e7883f7dd9d2bb3fe8b8b5c14a88d2d3aa904648a147463a0cc5e560afe32161524d845428779e5807d4a98389027a2979ac3f1f7c15b081d8a178b0df2a12612c6a646fdbc2e84acfde098e041c9df56c78a74d570dcfad2ec3a4a883f6bbe2af51c81b0aaf4f821d5a258caae6cd64ef0c041a109911cf3465c08565abb8b8d27382e0b42feee4ea7ec7a061184594c89304030866208a34a000792a66459a1ad88e9b7d40250f1fbe30ae56cfb41dcc7f86f35682a4e9d8fca836a9cfee623a1f1d966cc199fe661a5b2c9b18aaea7159ba9f86064d275a84e7fe7feaad4fdafc86be2fd1276545150b87ca956324097f22081164593f5c754715821a8090ee5c5c363bfbfcf6672078477438c3bffd47a03772cf603443cb2208850af4dd06b458d0f9357c405cb4b560a6d33a0a77a905e2bac0a24610621452383f01165106644144c0da854d001234a79e3e6d6a650aa232d13a3222ae782fead859eb24aa22c0db3d1861eac866e52a21b768028601595a6209c578ef3b4801f9aaece43244f58cc539977bd8f71695c20544e62bfcc51a5e56e4c71d7779e114d4cffb257e6f9c5026098c78b23a68a75a8aa12136eaa188f135572029e8aea244de5237600cb85901c477c826cc55c9135a3e735d091cf531add507165c58b17dd9fcc3c1bd3fa6fbc054348ca5ebcfed2f7af3f1e209429da7731e169321888374e23c6327e8995129e98376b8ae9e2ac98d6881643e957846bea6cf7d2ecb972c39bdb3a98c6afe5427e70f7a5fc4861d48d671d961e21445f6ce45b64834d1b510906388671540c998d2dfcc6accc6e4d309b8ad7ff775d00be77709a07e06470a96630b387a9486626b3bef45d8bacb1b3f8e0b2df4487b6df1df828bce6fd17ef82859dacf42bf69c76d6e3bc63f432b21e696b6264b6a8acc4c6f14a0def75cfc2057f21867f3ae18f86920413ff140c62122739be9cfcb3a6c8b3228a4c6210978a4ac99c80d25fb7c843a69f00fbe88185242fda1a175234ad6b24eb2873166224849363516b7911c2098a2afa0810ed24ed27215886b7d83128a98526e756cee491936c43c5c4b38264b9f713cacdc84a32b7d077f7144aa496fcef9b417e29b29fa4041e0a599bfee344baee935c57091fe517782ec1e4b0ac9a92e937dd27f40243b9adf4941e6016c359caa4f9d94b9c1305cd0f1356c6155a53de0f111a0a1e2bc5e1a0eccdc0a66b74a09bf31529c237c3e77fbfa4461381fefd2fb9282a2ac0c018a9b08536e85b8c070b21a2982653919ece341099d2f33b47d18802e3665e6f08d8a17e36199099bb31dfb82886160e8baa77ffdab2d3b9036fd18a4255ba706b3d46a3108314b1f468939560e4720c957c1afc995932bac77b5db7622bd5d0d54991a19df281028d1835e756295a14496761136b18b147b8a4ec9119cb1e8924003eda88b81f13d3f88d224922e16c2cc42f0980c6c4c9133571bb208d6c2d13964ca46e76502a626e3a089b32843d980dd8c372d1f7f19483dadf01742eace9fcd183c21af755f174b7a52c8ccf5a424c2d602183cc9c48baea3d63990328ba9e9a1f50254aefa093334f07fa3928e32ad0c9fb5b9bb83af31861c29b20c1335eea2321210d8260bbf69919f99661e49809f36596f72527e5b5abeb19dc47c8024ba25a50388a0b340977c128d6c3c817409de217f8ffbb1b2b19f8f90dbf5728187599e1138996054af99686b92a9151827ded7c4118317f8ea948cce8bdd186872550cfa5383549a0e5f333be428a28e424c8b73dfbe50a20c2c612f16a10e3b61fcd5b012b66d6ae46fa29000245d357b30352e469c4ab013d7f50ae09b28c5668611544dbe016817520ba497730794b5d2d221580f347b5894175e11b46500489100c61f8a155e196d37b63f0a421f082c5c6cce44b9267c8ed5599bf50082289957a4c37fedd87814c72559521d309f569ce3cb416f785890aee6826d5583baa4290a8a061bca81f9e18be205aa5fbc30ada591106584f940d2c26bab64047b9b6df8ad1ba969804cf6efd38544b1cc8a61c972556ec11560127b2955a92b9b1b2ff740b0eed8f6598ed4d16d99e96d504e43076b52e90155815b3cc9c481bfe8252caf882af526adaa14e06515d60a34aa08bb59a7d185f22caafbda190090801c4088e9042fd2783e34967162afa614579702e06f2329002db756c31a75827224ff0cd05ad858ff6c0f8aeaee39e6b9dae75509e2d156c54ce09b77fd4a8836e6f6745030d277170469ae1f6508388d301554d56345128d36a61c4a6c81e9b0275800de30705c63d07799d6e91f7380c816e83cda2dacb7d7c9ff709a822a234b6c35b9c5b1a04919be37e31f11089c52cb708f2e8ba3526413466358c0ab34ec7efce588ac154b560a89da766f65d23ddf28710a34140943cd2e5ca46b955cce2fced06c3dd480da279d92f25222cf0fe7c68ab85bfe2248221ba4881223e43c0ad0f127e2ad0f1847dc097e16de66f118c0e9eb2b1cf6018ee8ccbafcd45164199685c73dd214fba8179f8414f40bb788c8433290a8e06ca0095670f7e32e4aa39a09b7c46bcaea09624df6309ce6103060d870ffa3ee7e79a69700411234085fdda2b73541748efb84d031f45a0192a469250432299de9db5f74c6aff06602759b6c182b3a483c50966f29981d474ce842efc2642d0187463698e5de5b435e89940151f2ae042bb8d02e8d11da12156d533945f18f859325a083727e2c8942f1416b48389ee4eaec6c93dbc4cee10b0996f42c9e192380ba6ca9f9923730a135ad4f61c3be1e42103bbb6858f91fbf26cb67ec69d9fdea5b3cff49ce3216b66b5c500a376ecf7bda06cfa3d8aca5a39279dd002f23b7105cf7ca13907c893cb4b7a9f514c58b2b11257d06840c9b91d329e43664683e8dd86019a7e6a94812d83fba878a86de648850a4867afd6d30168a0532ea7022996e50eb1f7ffa52ffa9239405f195681f75a0ad798e5d46af1bd82891b498ed736f5024516f64301b218c1ffd9f13e8eae41c2583cf98cd53f8990f138005d133b77a66218699517e359a1e1a6f8cb157b72b8ccd078b357c892c122463f7b404d0fa634aaf7ae5a0174cf9324c73d6d9ee83fc62faee041361136bf22959a4ea14710667acd8d99b17fce732ca2406b1e44c0ca5ed28a947d7dce5ec1f949ce107fab84868b5840828064b99e2bf24d26a4334188f8603f4826540fc28f6e44e01cc4e1352224410da3b70af91d5584d1f5d8b61d45113b0a5b580d3a360f4d2e685e10a13ed7afd800588284b1d406a04e5aa1d461d0ea81566fb89256e2d1ecc7557695b0cab90ceecac6c3e168f87cb25dd15c896e8ea5c5a2e32c5ed7041d6f4c4476b50474574a407791047ca5a3cc6fb6616f9c1b1247693451f98f6081bb4ad7ac16bcd89c97a61cce01d2c5cfac00740f42e6ca4bb624dc099c10ea7ca608ed890af2fe0d2f019d286bd502b4270815d7379860815f8b1378c26c252fcefc506fe71d5f99aab7f3c25e3998b7f34eaf4c793b5f0ee7080ab5ef04489fbd36a915a9422a8ef20e242f5d1ed9be3eef62f06f444557d58223ddd4d4bcc0d6199e66ada3e8daf9e8d8bbb6d3897d302a6d3a69afc8fe4d99397380d2922fbf5651b5e039774ab6fa27aca885faceb1a55754375af706b44e15b9e9fd896af73fe319fc63556a6fcbf3cd10eed733062e43e3f539c06c22ddcd1ab9deb645da4d22576e68a3dcb635a936f2872456d8382f60203e59dde9b48e9a8aefdb6d42e15265febd82393c680785a534431eafc3b2ec5de4acc789f85b395428efc97311552726d9dc0f0f0533675f9924d7691ea6e1b9dcb410fe92a2e8db8983833927173c27d2c1b336e2947fc8147b2b8fa6592d874b7c6975d88eb48389a63d64d9512411f7df45aa8ef8d34e472113394444510a9e931e82a8882abef95b179243ddb8cdad5c6dd2c0923e0dac6c5d9efb394d66042a70504a66d41398f874ce4af8bfd82a8ec49709c99bc1f53216c372ed3ececeab6d6f32b00122966be2e3115b1793c71b9ddad14e038b72af2ba4b6c903c99451030947f4023f403e991736c9033eb385ed94a157372c1a3af2a2cb177f34deda91ae1ab524c0c47d3bb87e22cc1994c29f14ac0e6de0bac104ab3719ccbcf260e11d09d34912e0ae8126374650bb2fa3c4cdcd3fc9e788e0330ad15f62d3eb185e48adff71beb9bc28defd29a0a0ac5c5a4ab43b72828bf4a5fa1805aa2ad79cda7381a91d1794da9f9421f70c66e6380465b2af6146b3089d33544c05ead5de0d514e5d5fb1831ab78f30649a438a6a08fc6c27aea81533f4de46237a8f7b64a859887c2a7bbd1502804f2318072ef88ac525615f91cf06cfdf6b36d0d34a70564a7659451061aa9865950aae695021e1773624490039f312ee8fe91b434fba38cfacdc0e09f36f61cc441beae399435d0aa6e78cc4bdb6480608957597819e029622cd9cdcf4d529711c544817376941df57bdd4db44cae3f0c0b7f80320d720f7d85945910c6030a169aae9f90204cf6a8644983f9644e10f305b3996cbeb1e89840655a8c33ccb491092f009bba4fdff85e0de78c16c3cddac88fd3b179deb4b51bfc14010551dfeb1f1716e9dd18ef790fa8e1c771b14101bf2b39fea98d63151d05d85542897f13437a75ac8cf80f21cb3946986394005f069c9289b748227dc1903d1ea03c70874007ebd0deccf9481c14117881dad4d0580c1064c8378ab22a5658116f7d59720a7e5348845a2eb72786f912c42c67f54814be72b2cd3c51058f567b135b2af70be79d15f543000e5fe735a7fb43030001096fa66cd5d950a43ee3c5aa04f07b14c1939a526e818bc8abf574edc595c716034e1aa27065b9b42fd78fa32c64f15f5d03e1d414efd852c0f0c33052cc9017a0b89365e801211b10ea8bee70d8a94aacf8ae8ee4e1ab252b4aebba4e42ff3799e001077a83de30a04f416639d2c5a413367dca04094a5aa11466f29b7fb1c06c5bb4f5f025706ea503d0943b8aab0f78db124b54835701bc5c02fb7513699a494014903490362037ff9a992b02fa24057129a0cf777dc7eb33077d4b2df32992c53f77661ba31dbe2e82fee877d11988eb13386d8bef16e7f7143b00e28e812bbf7de6bebbd321fd98dd716ef77ff7ddd98f768ed14465b49841849159e1747ec1bbb116f11232ce4f98e5102b59288000ca2ddf19b672c094916ddf724d9bdc655ae0439dadde96c184c37fa1631b218c5b184c58fe377ff4f8ebf7108a87b24f5dbdd7d646754117e0a23c6ef10418608498eb15a15cacb194b58747fe20a228820429cdfba311489445b2412eded62ba11138944e077bfd9809f01372009d28d38d375a3dddf582f4df71d69b7d6546ede54794f9b8a303ff94a02d85af1dc4abb7a60b01b0dc3842ad2a0ed5b1c622b8f96004ecff3bc8df7791ef8f6451abacdd78d9beffbbeeffb3ecff33ccff3369b71fbcff33ccff3bccd88f9cff33ccff3bccdc8fde7799ee779de66ccfce7799ee779de66d4fce7799ee779de66d4ff799ee7799e0792dfe891dda8ed28f88007a04b088890c30e7c40b9a0e4c4070cf8aea80f17d89c5d511f549820a28828228a8822a28828228a8822a28828228a88d203f1443c114ff0756c658c0676658cb1851d3b76c78e2f76c78ead630739895d1f104d4413d14434114d4413d14434114d4413d164b5aa2aa209564deea697fc4c31a9a42b173dc84903409de9006e3e534c2ae8c9344dd334cdf33ccff33c2190d6f4964eb754a6699aa6699ee7799ee7a9324f930a7a42d994699aa6699a366553299b32324dd3344d73059282549f0a51fa743a9daaca3d6198d6e18340445397d8b50078d9fc371ff1fd0b0281808c5c171cc3b4f6125814ebfd10b3602b09ab85121d43f58f7defc8258a40831837e286be7f2dc702b6c98b1bc92a5692ec6b3521bbd8c5d86575a1f81e78f3101da3319c65d8414a38f7b594315105e3d16a8bb92a091b97c70df96b80fc5f57a8dbef88b12a36e1856b47a5c8047df106b17ad0c40f683f85f245dafed6d18e0ee8d235451b74e9a88996989842d7c7f5de6b3da3a5ecbd4ae8810225b6d9a59e00b6ab0e9d1446881d2242707036e0e775fa12c1e7755a93e1309b966157b6300d1e34190eb36919cec0952dfc43490d569f5271006b30141f941521dd98050a43051b7f00404014c6686750bbd4ef3d60ec3588b97b03b6add60a0a2693c9945de414b7322aab6474dfaf79259bb295e7c52385253af38abc22d7905dec9c6bc836e4157925a7e4151f9325e268a2344dd3344df39971c82af99457724a5e91cf7c86962805ccc599a8a10ff42e9b3b285005aad2344dd3344dd3344dd37cba8865029df9747c793ef399cf7ce6339ff9bca8c78647e59607c9b3f210798c3c4a3c693e3f387c583029f3b4785a3c303c36b6a7e58678ef81e1f1c1d3e251e251795a3a284cc2240e91069dcf7ca6699aa6699aad4c2693c904aa36251bd186b44101a6600d50c5a19e94c7b3baee31f228f1a83c2d9e5467a29ed4e7fce0f051f99c3e2b9f94cf8a8fca456ca863a393bea8f3828d6527d561b9a0db41852617b1a10e0ac3b40ec3ffc7e4947d4dd4503ef39966ab2bd561c8c956d98ae4f25b8e39349b30ad39c8320cff03551ccaa196c87a675aa00ad33a0cff412011a8ea4cffe84c8c8a5c768c91a00a7b522e82d1abc390c49e14a8f2a44095382289237144964f1247a1c93fa78b6012a67518fe8340d9189afc6309baf4a452ef49ed16b2efa05cc4519893a5d6982cc3f01f04eaa0c4917fd86c5f3b6f0b7f5cf8d6ac979f8fcadebefca0e5e7b47df959f99c1f93c5d8f6a45c380181bf46b0634305e659c0188b1bb1de6f355b395feb19cb603f123ba80eaab343c708df6141b141980eaa7c8f2cb10eea737ecebac23566fbda795b78f4a1cc971f175b7ff97ef7a7868f0d9600dfdf07096b01f4e73440f959d99f94cfb9afdd9f1537c4fb8b6d70cc2a09cdaaf09ed4c44afa0c5353aa624a612a9d862f02894e2c459b4295176df4a2fb3e265d4cdaf71d75513b6455b0a18203965d778c2d2b632be7ebc2b0ecc2b24cd3b60da36d180cc765321a2ea3d168dd759eee3ceffb4070b3e17070846188102236186ce43c070706f3c0c610185649d0a0b1169ee41f1886611f9a442c53805f644983be756771b4ef93fce386a61169df0f4d7585d12785492eeb9a690c965dd124882c8d5dd124a45ba9f493f7757bbf3957a28550a4211cfde41ff64515bad454254d5557e8debee6525748e1ed6b3f580270bc7dadc60df9defe26729112169d106f7f1bb9088b118f012cc421dd904d8acdbc21e0dbd75217114574bcc6e1db0f47cc3f6cf7dd08aab017998deb85ff56b76cdbfcda6dcb32f7c71ce7a9751075d8154575d07e9160fb0b0299081dc3ee86c90e20742986a18f54d2926cdc8191d9ea18b1ef80faf72b499273e8006204ff7d8d4b00266d107b73f7bf306012bf39049b0d626f1aebd3149360cb8d5cec7223ae71fe4d635924dbe24672c6fa9cc90e17fcef2f00fb92189cac1f0346fae3b748158ec791baad8b1c714367d2ba206bc286ee357143d7dd84872ec61887ae655996151a73ce39e790355ed7755dd715ba6eba994addf39e696a325991155594145de88c338185ee6f9a8a4b5a98458e64926457ceea48407eebed26d99563219375b3988bc71ac2985423b668d1e2c2b4d0db4d6bcb0e2fa8022143c60cd6daeb2a268cb19565a0649caeebc23219a90c95a6691b66c6688688e3b84c66c68c940d874d7c81b5324ebc438d193084b0892d7049e1e2019719760bb65bad55915427acb5f7a2334aae2a552fc226ae40f5427542a9545433d8e1059dc864c83206d4c0e4860e2728d016a18c879dc1b8b4cdac66df6698cdb22ccbb26f5774460eaa16c020460d13c458020862a44388e10415316c902006104788b152890185182fa80c0e6c6e575486e893daf7fd74939b4e4a5d54758c2d2be7cbcaf9ba30ecc2b02cd3b40d9369dab66130dc86c1705ce6acaa8aaa60b83425f2e84ce83d6f29bda454859a50269b624b56b4b2d7b1a5c160d85733dba10b035c3b6f0bfbd677872dc21b2c01fcef87a6d014b2ec50250b4da18b1b7261bf309b96751f462499a821f0054cdde236e646b419711bd20605b80a4d9d0b445267762b1d87822ab006580374015f3658e386780fba803f80353628c014acc1a15ea8c2c178680255a02a5b752bba925bb943bb94ce943b95ce4577822aae857bc96777d29d7426dd8add9ddc10ef3b936e04dd49e7a22b7527397f21064c71677a3ecff3ecccceecccceecccceeccccbb17027b7b81597e2545ccad5e0509da9a5d0567c4e6e855be174c0b16c6ee58678cfe980db01b7c2a15c0deec4ade49c73ce9f13ec4a1ccab570292ee56a70276e8513813151431cea229e148843fdc37128877228877228875e0d8526722bd54e8da499a956d24eb41187661c324b9abd642fd90d0dc5ce5e6e88f7d98d0c0ad98b76a289b29734dd642b2d8546d24ada8926ca5eb255b64ad3344dd354c470a77d4dd4d0e7fc9cd90a94add2344dd3d4d39cb355b6ca56d92a5b65ab6c754d01bb7e7511ebc30f2f15b96efb22b55c1066cca1bbbbb65376e9290c463a6a83d62ec2658ec276769576493c6320365cdf5a6b6db5d6566bfdb15fe213ee0dfdaa2b78dc1cb67a512944a02205fa8b010ab4dec1097e3082e9879406344e208186c9d62b3ae0346e90e16a1a39386169a0252094061168acecf2417a7010901d76f095afdcdd1dbfbbfbe5c1c3c3dd8a40b87884473cc840d7a0f5aea84b8b8b0bcce5052e2fb0cb0a0eb4cb0c2740efe1a242754206ab2a8d5c44bbd47f826518967900c358c0011ef80045097a10c2583686852d282c9a853eed0bf40cfada159df172036d037d997ea083a04df40af48c140dcc6801831cd8ab19b1fe3ad93182df3ec946807f7d3b03a75abf44932e2f5434692ca241713feefbd56c9a91872a3dd4b5628de8755b2debba36a919d94033b222fec24f1724b2a02bd7e97a8131a764adb4ec9c5bc8d855ad940b3624ca40677f65648a9dff4291359bb57bb3e6ee59c318e3ac5996655959cb39e79cb37695dc54a572ca3d57a98ac91a59d169e7bf381107396bbf69ae42233b1290fdf523d985daf9affc24fb00f722f1c87aaf1bbf8047f65ebb89b76aad65fc99cc39e7edeab0a11f8047db01f92bb0c21c068f5c04e47080258df92806413b66fcc0918b5ccd7390a3cd2141b0b473876b6387ffe6495e443654398e158773fe009763fc5a3ed50569501a1eb9c8adfea13f864f93e27c302a08749ff3dbc564cec407a37edcd7ec503fee733487f3fe7bce6f1626e346dcd01cffb5b08c7c1ca486c3f98f436adc840d6d326f398ed5d8e102fecd2f00ff465bc0e637d202db6fb69506e55f6ad4c6ea1fe00cb47fb9ad368fff43b9c8c696e1b62bffb8dd6b4e2e827291edafee204b6c6b2d822c5db5cbed5ae50f419658cecf4196617e0eb9dae4f25395b6dc5615586debbb725b6d4f77b97de9be9fe158ed1b5e2254f50f6d2c5fc0a3ed2edc10261d35e284f6bfc87a4372ad781462e1255c146530dc4b0383cd069aa57cc12d39b27bb35b6cb1e1addaebb88a98ebebd7ec2a4c6f6cacd64f1597b070cc5b6309063ec4627b1638e52b5fa1fb3eea27b7a40d5dd9b2175bc7999202dbc98de47e1961c3e20dda5fbc41a35ce486f055ea9041e3bf4a99bce4551a3b36a0ef3bd6d2abb2951871438b3a9410894ca69494a824d22fc790a91100000050006317000028140c0a44519885388e04827c1400095482426a6a38134d4471398c433186c418220418600c200400cccc0c910902919c1103bf40d0a12b72231362628c88420e07be6394428bdcec76158e1eb20c8b3c85649c37600d5403999316df13106f3719e503945c14072a79aa864c8a5ed70b4ae9e74c125f9a1e03e7a75b2b2c833b987ddd6f534aae089ec40930cafa62f5cbbcb0887a5ea8bd4411e2f8c0653f06592e29d40e315d22498fc186e4852830488e5fc9e9ed08d661f638d1f230a7c63413ac45c82ee43790f7a008ab22990ecef63be756104db94c971b1f8cd2bbd36109d1367250e1d2275cdfc7753394743c4430ab6549aa4111f43d2ce0803fafb27709692ec1d3bda9b3e385e062f765068cbd35bbc58dfac10652110cbb9e2caa6ece72ade85720860ad45422e1212216cba2ef0b286326f604af0717fc3e5cdd6f186b91a26cd339d690533b27af8d8ac4e3022ead05976b6ca0217d7b703d7f883873c95821f4204572d8d856b985039a0412151ff815e7678cdea1a438974b092609b6aa6a722446b10aaaf19e4c6a52d5c587d6240f0de50148888e0cea47f982a704460f4bce7304ec6579c9c1ff136d973233c4533239e889a5b31e04700b2469c0d8af1cda264c2ba4c13ccfdbdb3ae85ca6b71e1e314ed5f3def7d26f59e900f5dfd52a6635977ee3268db84ab26b66296662543333c29e140096615443cc71e20aba947483a7fda419a39f4f76b91d9239ead9a3a16de772e5ca88f89e3ad483e8b500330f94d8d27e5193730d64308d9fb5053e761b466b21207a8ed4d6a16a88fc4ba2fb94ca904695eefedb982ded61e2db8be0353e0014145f70fd7d0e319d3344515fb75e5698f1e1d60d6e6882ebad5227a271f7b4fb0dc79db5f86b74e4f14635536864c9c3a46b73a30e8a574d4e16ce65ebc5f6c741a953ef82cb9dc07fa7d677ca3b12ccee7ac11d70fb0911ddeb05aa462e1debf637913267e2d49b476dc35eda3747e6d9595aef602b843f72449cdc2ae0a56e0cd85efa9a8cac959c5ee75eee0f7da03dbb8459fd1b8569d59b8de01ed6f68834aea2285d10acf0d300c36feb716f7cdaeafcb3dbd07fe6fb116077b702d519f72d9a7dc407bf232e4f5a39096597441800eeafcde8453fea85ec6ea36372408a809eb4d64dd2d8d48434cd79c5e6bc41c153c17320d5d2dc3480e47c83747607b598d17e1ccb5869c3a254520d12b0d60068341b4400fc3703fc49f5ab49581ff248fa492d2f7e297976a908acd85b9f292da67776c32160c78aed53581cfa8e36e6d969d346c08aedcf2f655f4c2e695831be9401001b924c5a436435b45915f556d7ec1f0f9f12ddfc0a937ca037667bbc96f02112279eceb37aa2df71218d8c7e6e4ea34281ef24b2e0b41b060e7a3602918d3ae53461d1b335aa558dd2e26c7f56b126ba867d2300459836aa7e60317e1aa04a2d3e67e596c322305ebd163066b6c59d277eb63a7023d8602de81eccf91577d0c1c8e7fa55561e2b1239daf424adef0743da9c1d0e117658a923da62085c2c052823af76e5b0eb2068f96ddf8264235d3018293068663a40361256c976c7a2cba100ddf2dc60cf4b04f3c8849ff52c24d23d6f5adc79bd26d51de2897ea30453194fd6149c22d1436cc8509c4a22b54d26d818560b1321906a77db7e583b93b8c8e7a35ad10217239b04d37c912f47b5a2002e402619d248214abe1a7556e89b803cb2e44936392dd7c9a84d3ebf84c8264f8614c9a03ee533161569e19778469518eff424bbec91fe04396cd0421b5325caaba019e46e26845281a2fef431b6890026d837d19bb756c082a83d16475ade722a9d92c6ed49a32f6a89b18eb5c6cfe98124eaf17db09d72882f73d5f0908c3a2e7b289faeb38e6a67274c6b8d7f21bac674d428fb75d020f4f1a23c1970ee2253a552de6c3bb1e1887d0b3c7b8f6030cb1abdf3c60e5f4a0154294228318eae9c1e209fe9c84887e871938481f2d91149c16813a8c2d4aaaf9c4b6f22363fb3f0d619b38f6c13e32450a3221413eb4440500eb4e59bd3c462003ebe991d7252146975572aa17b5b1d93fc8e4ea63309808691a901bc8cb2087ee7bccfac9aebbcc653ad15d1b8d82b06b392994b138d8c3f681c053f4b7ed4aceae9bf80408c0f97fcbba7ef31b5e008a88fc3b7b1d7cabceb1449c8923010c63cede7fa8bbb20946629303aaf01cea64b4f363f195330cb5f57cf1e039df23d6731008c9007828e4ed8cc2aeb811c95f01656d9c8a66e23a14787c7a0f440a529afa1369756eb33b5114c36d4208ebc867260def48394efccdb1709034de4c41f1f9c016b6d108e85561712c5aa8348e3dccde12936747da8b47ce3b91a1a86b941cda95db949453382cfc4ec8217703ced06d7d26445d2f9fd6b6d2480a767502256c1c7fe7a410d6be8bfe0737bec7997886608fc0e134b8113a7b63a540d52285d4821d4ffc253ee711a3f2528b97010c93e9010ff4c1a580dc22152b332f28959bfd2392c1c503f972eeae079303a742036bdb8962df60541aa394398432f4ad10932c400f3ffc7a54e89b47740c2a18034d396175bc75a53d045558c279375e6bcbb88a9bf4d95cbeba85f1690112f11dfe7cf25fe71e157b97a40f58b4e26f854f3625728cab52b2225dc25e209b3bc8f82b88ed4a52d8d44b6e6fa40b2d5c55d66c91ffc3132063196c44644f3b74b778e08163d1cf2cecca4a43eacef9176eb478694f8aba419bf924ec3583b5c8d03cf670043ff8d4ef674c0e0ac2d702d6b38acf18e5a81b752cd954e0c907aaa8c9b2f729d9a763c74b9240c460ca401b8fb3cbb388cf6771c5014cd0068fb4fe776822a0b19fd3fbb8fc2b45f39ca8718841ad2190cc4614d050d394d4fd4212583cd8363edc09f6dc6323e69e09064b312e3e434e4e6835f6896e379e91c6f6daa17c5e0eb63f4f6d015e8783080a111a78b2313e5660aad138419df54f6e77709a3622caa987cda8e30ae807ab3ff5489d2660e4f6f02099f55d6e140793f0c1f146215356fdd92c6dc79ed11708a8c76cd6aa468c7d4ea2603af0542ef9f5d762132b86975f11cf6f8254bed96812282105eeaeb6e852e98a0b81b4d1cb1a57672f9933849758b12b4c8422be3c0de9f0efebc47a5cc4d2236e335be99a80422efced1cd66e12c4eba521d9a91b5ed94ffe014f4fa0241b1d5b657e65e95c42e0b9a853a5f54de691fe363d85aa96eeea85ded1543cbc0a392daa0fff4782619ca7a1eec7807b9e1c63378752defd9085825a45ebb9dec3a332527ed3818037dd3e18197d5ad9efe304a47ffb017310ad0ee6f0ca15feab5adc60ba39aa6e08a08d0a6497833219b9bd6dc1c180c9bbb6af630d6b94e343eba719379dab1220ce88964211fa232210bc7e64a928af9f9662a92d918760f60e61ea28bf71025e384a62029942356d56c6c4035b83ba353ba53b007e17a9f5a19f2a30ed55bdab0aea864e0acad6c46621a7712870edd0043c6c7e4b2fddf70e6d81de9d4d548705e2ff1196e453b80fd79cdffc81c3eabe324454efd3974a71e159c520b53840010b06a9276400cc7acbeea516731ce4ec7c8440681a2f5df222932f9c61811596455075f480a090bb413c521936ca242c871edc0a593f34292e753019b1e7c09c6a2685956909484c5575311fa06db4fae0e9ebd4c14f7c0228e13262ff9b90805e651010d819ad7f8311a6e40c7b0942f36bbec0affa3fb9669a2af6ecd49363ead09f1a1b3826020337578c962c80e934aab906bdd74d12aacd89646677a4838605bd51e6f9b52a0752c56b854610be6283a00106940abdd9de3089de7047949469bfb7ab94d5782f659e17eb995706839827450b20a2f055bdf4570e7ac3b32f15555b183b3f2cd96acc054450d62563b6488f74245bcddb36bf31d3495c7896cd4526785079d15468d91487588aed8908db13ad924a73ff216f164615678a5357ebc12bc34be93e7ca88e2b9c77f2937d27c0dbbe39deeacab8196fa95d21db94310346c57505d394da9d607b06d2222edfb04b4cde1ef621313b2dd1b33b0f8d9ef9cd5e50965fa3d712cde2841cb78c4eb811a05b8d57e1dcf42bad02b604c645057f8d63f139b8a64f46c81a554df87d1130af26da85b9b4284d183c321b60ba382ca92b7659f4fbd32eeb7911cf387d213b82950c994bddc9b42d101c346f6c039afb6bc476158d7c1d0703566d2825ecccec71812a15c33fe47a2034e229259382e75d9f69d1c453d5fe6f8f5a154871730c49cc719a770f2f0cef222fbe507a9e9e6ce9ed973d37b0081e403beca82a756953a35a5eaed56d437634c56d4ddefe350f2eaeacefb575435bf2b56096052f7097637926e6058616fe028e70d89c11b2a4eff4062807f7af2801cbc85fc74946395c778a429714820d7f303fa272f3eb41e29ca819a730e1e38778388c27473df01f4b886b25393527aeb1eb772f03360dad3e379c5fb84767b7ec3f7db895b0e72cfdae78d7126bae225185cb037131bf39cefb3ef9d89e1100c980ae6c35f2f151c3fe0472a2bd05924c44a6860bec559dadbefe55fd82ef65538b4906fe46c83be1d1cf8aa062c7dbb65fdb3afc2358f447b055672b991a7f3c2350a1de0fb07103fe31560c9ef569ea6fa040681245a2af0a5b7db65ba2e3dbca79e9d8d5f1b243352012e7def82b01bd59f3737a328fdfcf352a5ad323d70658eae001c134f6b7f536d3961567c7506390b1b20a7938754ae6579c5d522bd672de0d41188ebcfdf7bac1bb59f649d932549a5e2f54662a4576b55fdd7416c8eb5c643481fda9b757256096bffbccccce5b6b208c2f055676a3cb1f2ed3f52eff948233031c108fc448056885bf1b4386e8d8d465b686ba16288b7d580a57d5eae6886969024b27423460c4f9fd2ef94c6f17584bddc628bd689d685679b04f4a6f0a4a4c6a08afa1bea8a3ead8f5834d229103cfd4d32a06c3b9daef7d99517077509ec2d975217438987c4694247e1a9336e5b16cab2a21dd4c1cd289b967e1dab063e4c163dde0d15ae82e58039088e9e0115a2b4c3421e7ab734550dc51eab54acb73cfcb779ea04c289050d9816dd4a07d70cae326c94d1a94ce41fdc471f421df013c2f1cf512a27c6cd82593e0d9703e7680a5ec37db067267030d1dde8b77bf188864203bf6ce3e1018c8f2082bf8b5db5df3f43eb7df38f60cf782697b520389543b6794d189a1945c1e971004d8e2eab3d48cd419d1024703cb902bc442396830c28d69e04dde4c1a6e8ecf925e385e68969d5bc50977473f0e9304bd5d1a031e9d56c2963226742f12a873ef39a3073642c21a990d5f364c3d958b25dfb0c275d3b23573fa8a720a9206038f87c23febc7f5e34cc9053fb4c5a769b2ff8191e94095e8d4e3192771b055e6f3d006dd375f54b37ab01e69d714ad4481b83238779ee6292295c1c78984d5f7fe4fc8e7d8b91d662bf0b170d5a1f43d92790830deee6be57cc76bf8b6dbc838619ab6380059c4fbabf7ad5cfc0566c9cdaeae071f4a53eeaf12953955590d03cb27209efdf42fda66929098a0a1472120d04cd339e65e7cb8f3b22be9377e6e5aa747f9f7c08d8e599fbffcb4e0ba58400612405455c3869e3bfb8ce8d1a2543ba34cd2736c4dba1da59e3f360630eaabcd694b7e6e80a357b7dcff18ca909bd040062bd1b4c692685b56ba552ba330b509deeffc273c75b8a7f1176e428ce9e5e8b7f112054a559b43acdd647688ea6f07c6af99d734f4e7dc9bd99b75348fbf689491d7315b2fd7c50aabf1a9157b2b562499b87b927e4ec85a3d46744415dc5d9537d9790071b2f6ec41e8c021832bc4342e62c9fa4f2d99a08097d0a2b8bac83c7ce7b3fa2d76cdd452284646a932b687e4ced264a8fe34a05da65063d99be1902cb7a0d36792263fbafb0d06c88a00829b5520fa8f35ee5e2ba135122f23b9402cbfb443c82d892224117e61aee5dd07745a19e8436c80cebe6e99f88678f36c1655e8b4e84e862c0956a3817e04205c2594dac5c210409d287f043b7409f709192480e589c08eb2d48da62971545d4e372d501cda3fb60bd2261d61d41388bd3f9abae2a81b5b9d4b29059c5f32699a8a923e924ad0e4cb2cff35004deee0a8db20418396112862e9127603e0d1f5d71b564155911e8d395df40374a49e5b73351a328bb6447fc4a8c20de92a822ec786c43238812981d595948e75000d87173844318ea7b3baa6130a64f1a5629ec07a66b581db0c10266fcb1638dcb3ea5fc10d9841fa7004b861d656d30b2a1ad8b1cfa8781e7765c41dbc99ecfb37ba51405584f700d465a88c8a46b4cff0cdb2ba9bce346c919ed94bbda6871557fac406847efb28bd6ea44548491bf26c27c9e7c8e7dc30b73b1c259fbc564507a22f9c800021fe091314846921394d45b852f4b5437058dc51de6cd1b84475f1dadc289bc66c023d1c51a6c38a8eb6491d2fa90af82fc82de31cb7b7f962f66acd25092c61bf1481689219e19c3e8abe18d58e978ca5e1288f692a1aedaff6005d3fa6816a200df50a7d313cd34a808a717ba15fa2aa7a0dcc63462502f83502b4ca12b3543588e435154884248683e0642ca820f72d4a7be9709adf9b4c5a7e92daeb571329c10d71a8000eed555f6a8d3333e3fd8617321d9b982eccd67f0630a9f1df0f0ae150bebb99a2acfc91cfd63dd0919eac9fe8e6326481aa3e74715d4d1aec08011ed0973a3ecb44fa8e8d1e668ffa22ac000628df61fa582f30f6b683f79e4cf96ca796e53ab7ea4467b6f961a25197c2830926dacd35eca05dbd27412e90721f1018526edbf361ebab1dd481af0cbf073daaf536e92e6e661aa25fa845843320d063de8dcc47d015be36449018b45b7321ef862785eb6923ddd471b2deeeacf4802b4e7935b05fe5388abc437fc6ecd43a7af890daf0cb6c6b2a8232b91430ec6f3aad930015b740a680ccdb6bd2f100352e4af861770fae59ea71cd9c8a75f2d96deec8db657f20320d7676728dbfb2e0e74d946d74460a8f107e0e8fbc26cc522fa22c11eef52b7e788b6df908f041bf8237d45ac9b1d8236b5c29dd51586bf20e1349b90f2da2eb1d2b021741e0d4139dd7d5ef8c7b46a78946c95d0f5221cd984ea082c5cfb65688891d0b0741bfab0eae8911896d267e07dd500bc7f83f0490eb4945c3f84e31b2c7b8707be4ea1d1654801324005cd7cc8876cc933e1942f52963fa9317f248e0fbc19d7488aad0c2a74cfad705f6101fda185f02a175a68a1f1b98631d2f6aa925328412dccf7d75d04da303e5dd0fadd0b382dc2062994d887616a36480a9e7b0f03dbd5282404d281df5018ffe25542afae2d0f032a7747cca7621ae2a198f4a054d49fcff3610e6740c6f725722e99d525b0d5b0f5abd041888a28a2f60d7c1031ddc30847e12c27ce308e848420db33923f4f1fc69f8c35729251ac141fd58711ce39116b34e06150d16cab1a027c98d4106a5817084054bec8344a3fcc8f92ed00be7d122a0974e4f630792e26a42f2302fa8c1425ebbb874170c3a20df8c624f001a3ba3fcc84c926af6cb21a2f237dc18871e9c03bc9d14e74da39beab1258a071cbd0af28ff24656d34b86bdf0c0278989f59d86176a12370fe1ed08ec80c528f9e9a19050267281334f811312f35ab666815917f9869feaf23a6445012522161dd58b33d97f7ab04c353a0099541dcbcf423c6128fc9e69cd7a211c37531e04a359c0b70a182b437d98f6c576930b4d2c6904af0766ce2f26431622cacbfeb6ea0df399da785f44ce42dd0687f86567c520345f79c99e34ff43ed1211085176730cfc94d2807cc31581c181973023705a16c19b72be1c3e646ad1dcfa16710c901318e2e6765175c6497f3210165c7851d2e296601050d97ee5ba562503f03ec852671321ac1a13483c769a813095a0642c89174c539ebf4a5af494179fd26c8f2389e3356a0d2c0ed3784db1f23eebddab8782772e329cab510022a4fe9974415af520af6cf57bfcfd50469da442874ec3497dc31ee15cf50b7fa475024817ac9e4a325dc3679786ae69799f7fb85e893a12cf6b08cce0248c1136fc980bffb8784c09c3c8dc2809174afa95b6acceb76a791ed62c92e6898099ad9c96de68da9a6a9d7c980cb771fd023c91131f8ef170d40cf25c7760e04179f47ef9103e792a15fa29359fd881f5c12416bd0a9d9999a53f6854f4eda9c2e4e3f94003855d736c3ddc72f4bd6f422bf743f45bab3a484c0925932d11b03ddd8dc511af865f8e992ad61ed04cb4d533b66da07185f1419c8423cf8c42de12cab44e263c98a26cb8f9dca837ed62bada1b641ff411b0dee22bf440f4be6f35f76d356e58af0fe3615042d2ade51480a1ac8a7aa816c6a137a8e3f27d2c036022122e888994d2a341922883929a2ea61bad9fb8b9bb32cdc9344770118ba59929a2c7f0e9d04ce2ed564d6e9dd72c63a35d6c8a14fa51975f71e69191a99e6468eec1b89e81c9bc95a18273659ae8518cd0d650695603c6f898abb3059423013f51736616ffa61daae2a8c3f41c6283ba46a531cf70499ed1628955270ec8f09e30d5cec1cf138576cb116b02191ad984e47dbc49e03eeb5c4252f303c7ab5105b2595247cf18e4e0589ea9b2cdd970bbf1f0b644135ce705964b08d4db861b862d683a889a70dfd88a6a60bc65b9798a45d74c277d98c78a15e246919089523b82bb6b55a0fe2632b3266f8105c9cea36c309cdd1b6f4e21a51782f8361cdb3c3ce5710037f482c5ea1580ba9079ffd837c9a0e16ea62fea85b8ea92f813482a4b2b1f1696372332d781c165e7d03649292ed4ffc1df43926b3088a0daadd096285b70badb535f7947afc6bee56c35de0c4f53d39f1f885c00b651e0ebd1e7f126db97df34891df7299e1c9659aed345a128239fa8e245cf85f5f2600ba66ffbfcc79c656698cfd6dd3c309c3520cc4d7593ee61330f99d740b32c52415fd1062db3138b69739c72433d06eb10d60bef27b345ec9540971996ae03428eee1ccd499f3cbcced66460c1be7cb14d356885a6a45142a2cab10e2a799e2bbe0042ed36808986c13a5d03b6a21cb2f53d4c56ce9a38bcc5e27b1bcfaf832d16c18bd615caa84becca8d1977970a2c90b4ea1d2cc430f3095281ac8903c1e0a5fa06bdda0245c66d1309b080355128f9484a1e62c950aeeda7fc10d2ef307168e3ae0a9a0ffd3face18f13c775adb7c662249503d2aa3bc43ce1f22feefa8572e6766739014520ad00b5a8dfa61ec7379044d46434063bc7969cd4c4b3ca6cd29af513393eb63a02f6db8ac024309da9c59bf82f82463411f690b2a613eaf45ba2bd9c84c04dc643535e207b8e3d746976906c489b33f5bd374c8a6facf645e32d10c2867a16a14cb9d3031c50642b555863921c1542b54a5291ce3c29c6d16844aa371f6070957360786acf53ab198e807a866860a062abeff81b4ec67f272cca5e78a57486453c80f82f2ffa52b5133656f01421e6106234faf6ba97f320179ffe1b41caf03b61945361964fbc2493c4109de20a4fc0a5b0d3e5bedff020bdae03572e8006f809e12c58242f3d4d6a8af624ce4aeb80d201b58151050869560bbd08e1ba1c64d3a08b6029028892221eca48800ec898a502b7084fa4912ce9325a86df80c756956949814906d158c99c61aa890e016037089c1cb4be93b19763183ac8319b8010b42e02af4cde3cb70e875c2441dcb37b3e00a911834fa26cfa31a4cfe111af9ac9cfc3065fa9fd4f259a79f092ad08ab7d6fd231b1e8ee8dc0dc221814afc2d2180cb0e10fcd31269ad9dc4124ef69fbd2457d14fdb665606fee21cf5c9508fbbd270682285a7c9a337bf0249a7e15ad0c1f2b22091ec942457700acf2245cf60d3f37325b60c3b58c30a93ef0e0d52013d3a881ce9082a49f215170a5307af3206924303e4e8e2e22b8bb28587cefe4eb911ebfbbddaace48a5ef89705425e548044e98368e7fc1a5fa008a2dc66330739748a9effe2e571ccc091c35ba1fbb44ca322dd150b051edde59a0ee1908d3c6a8b6869598dbb0769e999e00fa385acbb641611a74f23e198b02550453c33d144b34a7588b09e87937c23767635e0889c977a3ecc36e2720c6612683de818a1bc4839135c6ed2edcd21b5b765d5e9e2493db9747d14fd4a3d02025e9f365ef8455f7753c98b21d604e8a1f207056b08b73681aaafb18245d69b893d8ca2656f738a94651b696da5f6fe3b3220b01da67ea07a7a5794dc2605502827d3feed0a48df33091081fc82713fcd08347996970e9c5a3c9ba30d5b70f1aec8a9136caa5413eced88b1151b003290a244d45465e7cd8239fba06e84292af205a86ab5f4fc717d2ef26e71554ade0839204b850f4a0c06e347ca5585a92d838f1e202f9486caa607eb7804c242a440287845e5203d2aa86ea366bbd6c8eef1ccd24d2f0d9c78c0139bdbcec3c0f33146fa45bb003eb06fb930917a9ae8ad36f78d6700b6d283413f7e704a555e117ce1a61a69853dcf3065bdd6555a9792da241566ccaa65c11e06c4ba6209fc1afc01c03bbf946b9c2ff7c1877d7dac46286b90b87f0c665f54c88e39abc40b845429ea2162e30801d6687c7175f16fe759928f818461e1922e6f2625b3836e2ace29c0be533e4902f1ef06405b0df0db6a0d2e9ccd7472673c0d8a2b9cf8f7c7fef8dcaa3fb9f2ab7503f495c8d50c2615106028e74f2ff805a7bb441d3c6af626d9bfa82785eae4c3e99aaf0bdc7eabe1b4969dc4fce6a6ccb43a24ba920d51535e5345242be6b5c37f485f025425056d36c9cce42cd939dcf82528e4f7d513b71685a8f6bddfaa4493df1fda26e13e2af123586272e7db66a4dc1887121937b6e93e1b2ff951ee0da5a0b3dae17eb88a1a4c82ae5297c4330a537d3d7308244f84dae6e5c56087d4bbd2b1696feab1c5d055e42272ac9217690168f453768981fe3e1072165d8c83ba22d9681ad139efc72e4b7142c279941fe21362c062ee55f3efca2c9028b46b884d81d8161541b625204b37109b6bcd09cf9e2cd2fac356f370ed8cbff061a30c49931f7fb4eeed9c98c41a982f278f5f449d1d7644bb59d1ab16fccc64f8e86635c7dae1dd72d8155603da553c891316c1135c7882583b97779dd581765447e684453422f32ecd1dded579ad5818884b08ca9a3a2c1b72b71e1ce64822726d480c44174ef060178f10bd7b96e91887311df182f624e6113bba5ee5336cf8934fe16e3c79b3de7a448482f394054138751d7cb6ee00f1a215b519435690f0a703d1b6826a0116789f8026fab499bf3a8e78adc489deb7e4be78ff2ea48024e2f639013f08a78814ee702189229ee2577b993667ae6611b7cdf96982ad5e261eaf1b253c88ac9d4ce037e931268278dd2891c7bf044dbd78b4ae4c77425c5367a3248971428048dd16dd9d95bfd6daaa4ed8be216a171dfa6bbe044834046eaaf6a86516c5ae044aae00c35031563ff088f72a5b1d0adb39791c89b43b475154af4801ff80a05a017483f0cd28c56fbaab76812db6a9a1645cab29dc01bad2534772d767a415c8182ecca488b85d14c8c2acd802893159b870a1ad84e452dcfa3aab45bbb2501f1cc0a6412d3cb23f6aac2f1820e35896bd19ec8ce48d72ddaf88e74700d5c772b4660e61c42fdf00a38d4229bf9ad109f1f0dd9171c373927a670d8082f99abfbb72ad18ced25af02d12fda57b2f1f57fb37682bcaccfb92dfb48896ae331cd7a8981ed97fcfa29b5434589d400a69c09a18f4ed1537a8d71290f3be1b1fd5472e94610b65b4823cf2c30c808955a2f0ada249af4b2543ea6116ffd30b340e4889c2250a1718a46a5980f88ca9531d18be332083b685447c33aad61bbf67a89c27e5b970f073edf53ff639afc0d250940fff21199a99e1e94f5271f860a5f5f22e610d301bdcc862eab433fcc77603fa5b95e3a9b94c745659c685e609893de5b64a6ba81e98086130e214d93a81839f889fd364ab570458f32d335f4429e2028210f3985ebe23f5fee94597be6ede50426fa319410cb05a193cce49af35cfaf19e601471f80908345e4ce756765b808df961388fe42a4c02dbab5f9f201c9fe83a7112a43d4fbc308e8d7fffba56be02cce3714f7744ca72f38e8638f560d23143b4a7f1927a6103243f2408d1249872c06ebdb5e01d59e15d47089fe582fb16605aa4f4c8a23e63db7c5ea6a2f893a6eb44a566414ea6ea60c228d7666a09bbe68c607056c6ca27e02a522364f9b3afd62cde94e4eab12c9d9f119632e97f0aeefd16f2e636147bfcbec0985f1cb7171028279639d0e9661992023d2720edf5e15a82f93a7321232085d215041a87fe680e0113f178445c4f665be4f2b5c186bed1fbc9a390b4312c43add649359fe3b7cb866b34fb0bec239199905de27435c017606315eb67ba53c6a97d1b86797fa19edde0b7d89846ff5e2000f0c523b71f1e71645c2f6fee8c86b1d91b31b6c42fda69dafcd78f29f400e32b8a44db9a8893902f01687cc78f0c77e9a1932f3ab874be6bcfb922c81ca081668cd30366ac46fff003116b1e81b3a785ebb52f206d0d033cc90c1c395eb0e11f207d0d033c8b0a1c319539f7b04dc18bb91483cdd782b8e3d026f8cdd48148f6eb8957913a837590c5dc346034cae04d2d53f60d0b0d18045a0697c9d838679b0a28f45e1753cdfa1480b8428e863f50d11871cfde3abfc353d9affa89b8a54a452c97769f45ec469bac875df1d7517398d4974b3e48e94927929335a74ff9b3a12ddd86c92f7464b808cde38287892b8a2d777c8241ac41306e169ab06889ce55a04f88fec4468b12098ee466ef967fe432a00bf68779c0f1275f64cb1c246460a132c2561db3c483967a92568e814f0f30151c6eecaac389c479f6802a9645432c4c9560568f423d58894e240760b34dcfc3ec967b4857a00c03bef2642968b0804cafc8dba5786ca0c5a1fb8514dbc03818afb6164d5a1958fd4c7f80096680ccd1c71fcea788b61dfe960c11bce1f95633362afc9a4bcc3185b8a4bcf7c7824c510d8e6c3f78590783befb77eba5418a6d5ca0146f4d4a6360205c4c133ecde2dbcdb96ad1d047353b50ea0185389d05ac130bd1bb9f19ff98f5002fca2dd711f4cd4dab31051615e8b0e68a2609ef09158b442456851ccb16c4203faaba3d6f428a66a37766ce85c4c752ff4eace96599829109ffb900dd44dff1f56ab69f0cd69d51bb0958197df855d29d5ef10020f49d8baf6f029a8b94f35e79654098198d59ad359ae390b107e5645d0e63dab89781485970cca44e2aa73480fcbab9ef2908896a06f92ab06c30db8bad02fc984d5ce87c2d44842fcebc1dc56987122c4b996a8a1c3c00225377cfc2291d9dbabc69ce9c35276fc6ff0bcc80329ac74ea71dcbb7955ec183c249c4f508f15166a49bdb668d912b7964b62ea5caa8ad8327b40cadf1c7d9da25ab7085b46f3dbc7bb6b89f1c36be908e4b5acac2e7d16e7db11cf14dcd1cce2638f0e85ca2e0eeb39e6513db740dfc571d921c1246f58053b261e92d46d8066154fae49971c9c57841468e2e81b387800744b81667c355a98172c47f0f4cd0fd896b5119055b8c7a4a98485f3355c0bc3338b2208f20f08e7a51fa8a73eb04f7aa09ef0a09b37b50c4853194b266fac1872665be191d4a900a45ff351aab7fa281194fb2809f385b79c20eb693340a1408db5c15386cc98668bf7ed0d17bb4025789d3ba5f9329bd28150d30a66034bc9eb0c9ea91dd8c65abf4719eb1d3e64d06060d2468874643a5df63d9d5cc7f142ba3f5c03bff071f8163eb95affa49c277c826ade8bcf2c59315d169e444cd6f4bcf9c4e98134982475e37192d43ba0dda456d3665bcc2ceff63cfd54df60dd9e6e3064f6e4131a409278abce7aeadf3c622ca092f25acddd0f430645b189547306cb505fd062b6a2130393cdae8ca7bd6c8b30ef27bc5671d08e4c9a1281a2708de63f63bc7ff0eddbd235cfefd1a4ce98dd95bb702275c37ee1f66b47c91e1dc1a209e26399bedb2b49b1264ba8092757d792b177b44ab5276d895c41cc65348f76b69208efb1260f090efc23e603c6b1357bedbaf39717a71e7fdbda71da0901d4cb8dca27e45c7290f5484700d3c268f88043dd7aa681208446aaf0011b473859e5e4c8021e5f30328a1cd98ac66e2c24c4223a55b5388283069ccd39a1160bf48b3a9e7adc186ee5c9de33f92fa00b28f1b81852f45a4a8dc752e943e828bdcc14084a6bf832758352324e4c1b1d93386a66b9c0a8bf9f6d8cf15256185f7f37f0c0b5467432af99dc95e84b75c39d75b12e8a2f61e6b0ce623d0017dce3ae1e858bb24c4594df4eac802101bb28b2cd89c764c12c7849d0bc72a010ce7604debb764cb760d217dea3030947e6857ec16e05b0de9b464f502e65ead0a3a3b693759290aaab1f0f604ec3e51bd90e1a0431eb4560894e786e9af30acf406e786301c6c682448d56160908dad75bd673a898c70daeb062baf92386b01d249d9c65b083613cd46b314e0a7a206a1d30182a10515388a992bf84f9de058095dca759cb14e4e31f471b4e299265fb86b39018de0ffd59b1ad71a371c5ba266cd7172e31966f667e0fc415fcde5f721cf594a244bda3d768bb16cad77c01a16d94a1acdd1ff327b13ab69857c30015f8f9b1e4907b5e5b5ef56047c7938e73b43eaf12a4b70d2387f03bae9d2d7b54f8a4bb4ff08185dc500ae35bd334cf06a8ba33449683101c02c8569be59de4d5011882630b9240f8dc0b7e8384d047a48a2afd0d6927e574c570b65add898e2ba8833df977f52e961682f61487cc3f99587f4d3e1dee086378a3df07b2d48f47240ab1841265f328efbea5dc5ba01c07e1ff7fdc4856f7f454dad92b064e390dc41628e4431aca29d7b6957e9fb953b557067276c424909b92be8a4147bdc65525fa0e01f1fb135e5d5a2b6f8fb5c5bd0aa876c7e7e44dea99a8a6dc282154c8ddc6139d59f692932e78f36a532b4f5b719d1ffebceceaf643160d3e00af095aca2c55329a5762eaa965512e9257222b1b71716fef6b37ce9adda889bac9e8740fbcb7ec975a12db7ea1fb6cf0dc8cc27c5a11a484efc90da3941d6e11071ddefd7a3d89f66d01af0d6f2448c4f9d22ac24b38898e0277a8b6ca177f8e8953ea380a4a1c45e13c50cb87b406afd7f04d93a917a6392c65ef701cbabe4c27d151c259b4c43219f751ea2c5a8a1c6c6ce1908db2401404fe391bc7d10f9dce4cf729521edc01deb1e40f054e08e89d8143d72e59029c158ff32892044f0676471161bc993c91d230fc137c43e69aa986249006000249a933919cf8278811cb7c02079960c5728f390019f443b0151307c988a6c1ccd75feeba64e646da8583231372d4f4860a7295318684c2fc2b41fc2cfcb18a92d20f12974d8a4217e4004161fc41575c3efa51b62fefa6cf0598ee9dad1886f63b02fec52af0124c1a62630b0c6d59f037a74957dd1ef5a13041245ec27cd263193c04d00fe80650b1e2f003fc10ad5495734f4c506c09f2a4d9898b54600ffb81265078b1effd0ecd3c9bf2ddeed009e41c0e8e8bce389f63ab747402bab861565b7016514d1b389217d7805ff0c1770b6062ac8b96f00820ccc07ec8626830a19401239c97fd48cb87fbfbeb81f24694d3f12df698d0b898d00cd3972da234f29630049cf23b2858e497a532c6052c7d33b39b88904d2485b6e4ca1da20515054605f649a27cf8171140e8eb65966599d691f2ad0750daf39ebc59c815142dff661dfb9d0d7fb65d2dd36b676fb76d5fcab79b8920609dfd7d12b758b8a0c1e6ed425fff2c1c70f47bba6d0ebcaf38ca15f902d26cc8aafe50840f628cee1ffd4a45dc545555515a844d113bb2109c7a3875301d8a23780a82a66918cbd3114aa79b13121f1e1e4271f4f1f1f1010272b2911efa958c8801c32d4288a6841296144c84e85732c20aa24e0700187a0840a8068fc1501cc12dc7126e0eac2807f85ee79d88fff03b61d2dbc40e99c03a0f015047fc4ab10545fc8002187c3082500cb0670845dca0e0e305451c51c40e1650083e3db4786250824e0e58701076d08ea04376ba51c13d2191028c8713d81798e08a9102ab0824a84a300135420a3a544658a1053347d783ccd1030bfc55f972d4c0258711489063092ba51c35f4d4af94030a2139885470947e9eeb14f0965dc8961d4ad31978dc1b94037ecbeea601bf1d47c56f3fb9691499303280378aaf7ffb0bc96f8761c06f9759c06fa751c00cbf234e3c459477297efbca489431402c11e063cb00de33e97700fd46fa6dfceebb037203b28abc3101de005e3cc5019c14bfeabc2b4966405e4056404e80c95360c049f16bc508c81b87427f80dce22920cc2c459802e4ce5344978ac653441b142846a3ff5008e318b28d4d75f214be426150a0188dfe43218c4fb5621c0afdd75cd7dbce0655c8168fff489638127afcf1250f201f5feaf0660041791ee663f378cf56691cfa4fa886260ed9a0309d134815a8f071edb1e1507e71f4d99e8e3a0452052a40fd01facef6c93040196f387bb6a755c8154fd172dd9f7745f6d57d77c5855adba0c69a7c912f2ff245bec817f96232994c269369b6cc96d9325b66cb6c992da5d2cd2cddccd22cddccd22cb9788a8ac649f13b97cea573e95c3a975a310e85bea2a94e4e8af4549d56aad329743a55ea35d46ba8d750afb126b880df676f5faabb6c69d2114a13bd89302d3ac6d95245983d4b3afa2ccd134da7a3ec24cdae68749c158deb6cdbd549c7eb4d700153986cdb1446c7bf1bd4efdd9c37b49bff650077b972a39f005050b880d60544714a72422a954aa552a9542a954aa552a9542a954aa552a9542a954aa552a9542a95faf0803afb93dea303d4a0a819e1d75ebe9bd51f8f8fdf7933787c947152046900e4e3873c1f3fdfb37d3c68ab34c8c767dff9dbf978fbd1f9c8b34383ca5019a93fb61a7e733d26f76cef9d00e9e4174720b1e3e104670268831a647bfae3c693617cf2cda0ede94b634f31a3957203d05f8f8fef343edef3f1dd090f011bc09a096f06fc8ed3f9e8369bc777b64a7b3c1effc75f8f0f8fbf1e1f1e263adbf47c801ce7a5f620c0fe0b0af97defc49601179d27eafbde09fc9161773adae3734119c6a7a2d9fd9bdf3bd1d9de8579d56ee329e275e975d1d6ef91e3f88d1ab7b15e83c2bbe24c2c7588c5ee0aad93d55ab1ec66ffbabd0c633ebdd35d40149f201d32f00b7613e20c80820296f5984d1c39c05f9004caaf9e80a19e31daabda7cc915ed5badc14a71648f84c04a3afec84738058624f0bd68124f216b9c14670dce8a125bc017709436818fc997359e027b71527c982a4313aad1f1436a705c85cc180aefd1ae353a6ecca4e347eca65a55e8747ce9f34becc0da8db6909a2ad4d75b9baf7f5088b2827a05d3d6bbd12491246eecea60d113d330639d14f0d6503abe86a2262745acd3119312d41d61a1c718e10aacd54c18f1301347e0ed37464c59d58882268ec01bd78ac92e64e208bc2b366285891c6fc20818403d9c4ea7d3f3017c27dc1f0b3a58c815ed1e442e8289214c98620eb4070cfafdfb300103a1030e21e0f801870f100710f10720601ee028601c2d3fc0f142ef47c1851ba51b3537704a374c3f278e0e85a32509fba20e6cb003981b2fd03764a0f7a38853c84208bce2d0e169018916986fa8a8946ea8a07483458a40eaa96dc4e8ab349c93f44ec424dce8f8f684131072292cf0bab895eb026d2214ae573eb1b495374aad9c4a0857282eb024914a824612337401f42b25d19255b512e928a5282d4828524a84c522a14829919489c25bea57fd16e96aad740bb1d56f166ec5af79dbbc47259dd9bfd666dfc96cf616672bb398cdfbca27525b39845d44944b5697da69caad4c9fdc8ac5add0fca813ebba6467696a59d939154ec56b7744121dca842aa15e502d3b6a50196d45910ed67fdbc611ab1e6b8c22dd25d2dd571ad9bc5bfef5b36d64a3abf5781b9dc810118a859b342d6fcbadbfd6e7cb59b849d3ebabf74bbe65b97c87a41c528ecbe827002b2b176890a3e156b4bdb0d749968dda87e987d88b5510a6d00cab3284f4257c492b2b9b482c7bf89c8a35ad8c6656b5ed8b613bf34669c1755c8ac5bdd0d7bbd0536252cfe73a2e05ce203f72957503c6a9c019b2af629c1ab7a22b8bfdccfbc4cae25f310257954b44aee352b8953927b7a2a1f6339bdc1b302d5f836fed7c4a4ba055d99f4fa17cae8b2392a3b92e29a7bc32fa5c0a8963b2258edc6dce594d28a5cc5ce729edefd85394a76e7c4b9bc81ba0d581d2fe9c0a9ca1b2ac6ade1bb094de5687f6c7b6138b53e154a00cf3ade73aebe55d61712b9c0afec18e148d69d057323b84d8f142236103091948e8d05643914e67367ec37560badd0ddecfe0d7fb78f3ef6cf243acb76ea3b5d6469a5555fdf8a454b559f6b5da14f4f4833da8669f8f55fd6493f8d8d3af282de8c3147d28c2a2f7fd93f879179a5a128a941249b9d57e1e5e4b23a5f924ea8a7ef514f8e9c73f89d9a4facfd3df778b74fa8e6c34cdfb7ee8fd3ca4d5fa2d35a570b3c825b0877fad1ae89350f549293803fd2ad2514af749dc229d867f6df896803eaf81a065d1bfa017edc0d73de883ee9bd4bce1adaaf5dac6e256f441f04928196da3c668f5f4739f948232d0af6e49adde23a1ac6d3a2a8e78280c0d3dbf62f561c5ee572b6f520ef57cf51427526e98b349659fd2fa968e4a1ade1a2efc0ae612d66b4fe79372e00cf5e989d4f0f789d4f7b1dfa392d6b2680766719fe24dab8fd17b034643ef2ba5e767a49cfad8db27a1ec57778515e9f435b5655549ca8132d05c339b88621dc4837defbdf7de8c38366e503a4e1342392b5a51ebbd6a59082f8bdd875d4dc39df71146948e930c1a3635326e6ad4c8a081d15dca392b39ab8ad25a2d5a2debbaacc52e8b61f7669976334dc3b8d3f1783c1ec87b3084000107582687165c90630b39bca062adf6de8bfe830c9ad20c87f921e2b8947356159d554569ad16add5b2aecb62d675598b61d762d8bd59a6c51b9ee29db7380b8c4008a16134451a91068828938a2d5d2abe441f629742cda8612acdc0b1519a510359a04c0cd80259e0caa3f1503a9ec906c6e82e258cee524e39ab8ad25a69b5acebb297c5b07bb3ec669a8671c7f301813c3c3e3e40e07f507c401e09f08851d3e27bfe7c6631cb9004fb62d8f2457ef6d6ca1d92f7f5d79a64f8baa4cc9ebe99c76bbd7d09c0af54c40b2dff53448a0e1dfa7a10226c68f9181134b4fccf5b4b31782300b57c1ce567797f7cb5e1f3526aeff1326fd0d78cafcffefadb7989b3bf4aaebf36cbcbfe7bedf1b55d577665dfe9dcb79f7d672b81330dd7dbcedb8bc43bda93444f16edc059662157b4bfb289f6389b806c72db99966f06f9f7d23fb2bff2f6c8329fb8c63efb786dc0fe9337dc2e740df6afb7d766af0bbbb0960faf0dfbbefd7de21acbfb035ad6e0dadebcb33ff12b6b29b365a513b0943366dc1b2e6d330fa1a193374adeb8a4457b1e7b30c6375f355879b3b0c1d2013566510caa0af9f13d6618d2632ef118eb0b6b5f8c1686c14b5f3903f00b5b763696b0d66dc4917f7daf114715f48f12fbac2512bb7c085d4ba2b6f8b51741f6f7e92d3101fcda57006b15c8eadfecf5ad9559c7e0bd017bfb170d98cd6e7a27ae2c6a018ef4eb93f8d3f4c4d2337343687f1712c58a3208b5457690722bb4aa62fec8a5545c4cd1f3655ed1b58ba3a9021c658a5ca92d73051607ca29af975576c012e92a4b56524e6bcefc293aa3b4d11a2ae3343a66932805387e0ab09bbc86df546a23e5b4c918ef60315b02bca50b4c85912e1546bab060130ba6c2d41855a6021147aa2aa3d6c4115b2a0961339772711da7c275d587ea525f5ce288fc9738421f5eb3be8876807fcd2b5f26902e3160645830943ec817f9430c18194e8563a92e71644b974a13477675912ed20798ea4385a931a44b85e154aecca5585ce7c2a96c1c502a942e9c8a8da5615f0c8e33a1bd4218eb90fdbd591591006f3f790a6a72927fad58c403355d6aa235e80db51147aa1bf414472e0a95aa4f4a411950a49c4c85a0a58ddad0521c914f6de2087d684d6a23d2c19a96a805d37fb424e201437d721d8ef2944c5949d15b40e94d4f1a278e6c5af2d349fbbb8eee8817ed4f85a0a638f24a5ba8e1276a22e5905295843a698795422bd7bc71407198f7f6132947d68e3a0683b7a21db009fda92bfad5ccdc0a06aa2a595522155cbd77a27a92d8c55195626b68f9cfa44f589ae49287505a7342e85c47a9bb731d9d93fe9c16a494c29ac2a9702bb4b6685971dd932da2237055b568f87293ef28970bac7d188494ceac7a92484241586155ded3a431d6524cd5c3ad82b0d2b62ca3104239453a38e753ea35da453a6093fa73eafafe189aa875d70c445d4f71e43a5c74f573bee884270bc7d1f5028ea351a938aa77b332165213868972e04d4d222330f5902da157d41447aa0885ad6a3b8eaeefa9ecf5afafd5d268b74cda3f93f8dc2aafaa696b2cc774d0a1dc0ad771295cc7a9702b9d0ed7712a9af65c8af65cc7a9702b7144e33a4e05748210d614e864e2b403e8c4a978742094c70ab702d2014a79a4804e9c0a4b1c4998242401ef2a035f88380ad9c4910c95de09f9a013d691c24f123194968fe9d0f2f1163ac5510a053af140ca8a464807e844a3868d1b3a7e8081e15464d7e2f262e284c958fbb02db81c81041da3bc35b8fe885b5c119f84ba443a10100b3e7c128a9422a1483922dd24716bfbf877577c5c978dd5e3adfa1747aaa7f19350a41c6cdf754bb1e7293c2008e67d222fa795465c41e9c35ca2942a7521a52dc4443a6013f853ebcf4d1cf998e208ccffc18923343e35e2888d3822ff631347ea8b54b0952e222170f62221f0ae2b5ac2076d9df7d83ca21e60a8a5687c40603c85e7e585c17c6c3cb6122d4e92dad6525afe6703a18923f99e0d04660391d112fb8dc17c6ce248be4807b82ae1a2650c2dff6e1b4486968f7d6cb4fc1a2302216386105abe65716991ebbf7b6d149dfd24a3fc122f2ee29d181118be065fd3e06b58d328d6264a0b4c7b128a94c2341116ad83f346911eed3d22299ac793e77bbef3d55380be93f789c45ae73d0f7292a743b146ca21e59072483911458b540b321af6a05f890b3ee00e7c29b9171d296987fe49d4554e94169dce73291de9e974b88e63e9749e247a6447a3f869276f68c9e75438154e855391a9ebee8ecd99cdcf22a7827dcc322e258b5a9663e4bac8b164c0b59861dc8ae537db10fbbb619953e1543895ae1a42176e74a1465bcddd5d9b73def91723e59072505a5c12ea3e29754558b0ccda4828ec3591947bb1ab8974f3b5acf3998675e67bd51b07ec318c9443caa9f4cd0daabb63feb0f2870edf436901fd3de45ebcd716b563c1a1ffc3110581e116f221749c2f185a18514954129544315c6affde461111b0b6d11a27d9cf4adabe7d0d48ed3871047b6be7a5378bd02b401c6c739c3872bfc2937e85aad67aeffdf8d66efb95753d7d59343f15960741f354ed506f67e656240cde89f82f9b7c71c15bc280e58584c143c0d372c50518ca952a1387b02f864d6b3269594f4544c02a424438b07ca7327144060582d2e8f910abfcaeb87faf69bba9058c45d171cba41c6bdb239a3a7f73d38b614a5f827d1f2222025716b9a259fc637c51776dd15b761dd4b40635bd1344687101deb26b91126e2b5986bc441cefe1eba146947d31bceb04583e2efe03fc41f171fc076908a1b5bdea3dcfc1da701c4d44046c59d6c7a774d39fee36427c80440c2456b48559a47b27fc452bc09b6a8b4deb2dc0d87693beae9f15455f6e9a55962df14684027fa1a3f441c78f21343ffe14fd20ca02dea35a310e8d467a8fa0ef20f2210810cc0822071ad10b4439984002103140d9c92e4503b2a6bcebfd45607dbddebf0257ae80b5257419a3acee1357b74462d5969d0f5132315ae75b6bde50fd7cd10eb0ec42628864e08d759296666666666666666666666666666666666666666666666666666666666666666666666666e2f653d5af565a4324832549b4a13520f5f6530d1d55f8298e447d8231663bc0db4f34c42812029e5f553ff909ca171abe48081886bf05a20a87ef4f78efbdf7de7b3041e4f0a27368b1f40b2287141d44a723888e8850101d154a98a044032525250fc2c0947c8c2850402f8114f05b12a534e1255e52f234ac443588100a3131313131313131313131313131313131313131313131313131313131313131313131312f86a93d864d0fc9db7ed679bb61dadb3ca7f674a6557ecd07cdbfd67e68fe9d0f9a8fb55a79e827fe8f9f797b7cbd365cfbdadbcf3c3f3bb6c47e866512b79b7d0ffe8edd2cfeecabf9d6934b747ebe2dd179ecb5f76c253a9906fbd8636fdff3989dd4e24f66e138f86d36c1dfc926a1b7f6e7b6359c65e8df4bbf3584b4b779bf2c3df289ebfbdac76bc37d509e77621b66a7edccecb1b777be660396b34ededab43e5f6403c791dbbf30cd433c79a3e4dd097dbeb369efd9eea7d3f91deae4cdc271323ba7b53f352d7b6dcb5ed37e87f0d3ef78b06c32dfdaf9b6858bfefc276f16efb12dd3be3333f69eadf3dad6d938b3709ca9bdc55c4433c0f3336de264a21960cc3acef5247e529271d14f45741cd9d1506202f4e55780bea438383750c6eaf8e16f1f423fafdcf4627429a59c73caaaaa2af9966271a394525a61c080010386dc44302c18160c0b8605c38261c1b06058578c7705847185fb0a29e58a39e75c51555555ad10d1608588063737a7130d8d8806d8d69a95c4d869428b63967543768b4e7bdef72f0bd3fcfeb34eac2b9fac3936b47f278786f6b7f0b19c191a7b8f1c20b4bfcdf941fb77a27d07fdebbce7eaf1fef19ff7bc3dffe25f9e1dc3015e96ff85bdb66debdf43e0e3b5278912c0fcb12dfbec6f2ea1bd3ff6d7dfad84f6d6df125a16c90063d8e3b7b6dd82c427f6f1f7b32cda81b16cf2f15a36f178ccd2379f58fa234b8f1abcb3b3f4e413d7d706fb9dbca1b6efdb7661b1cdc21cd3fcadc7b2bd7f6599f7752cdac0fef1c50b8df17b08bc346879a364f7493cfb6bb3152219e09bf78985e52b9bd4b7aa75f9bfebf0ad9c146dbddf1632fe25714cc3fed65bbfed161d7ef8f8ba2ceb7140d1f72febdb6ed1896480fdd270eb76219201de2796c6f276b14fac0a4fba0e74bb45956e7d06dc03663b443610bd886c00e332ad50f2c24ae98897189f0663747729a59c73ce595555555554857cab8962109808a8344eb576b1753513000401c315000030140e878322914092c469968d3e14800e838a4a6c4c9749a3d21c48519051921062082006000000c0ccc8cc2611004d78b15e92695fa2c4ab911704f200c20f008b99a4688ce6017528ba74e8ff27f705b50c3db9bb3a1673d9ea59c06d02e65aa872dc27152c911ec067a1e8ef4ad0f5f083a97d2861aceab3e937365e31e4c96ad81701a0d3792b23d6f71c7924c8872464e491c20a1255e491c23fa911e9086625729386f85a5fee4f30b19e999ead3b64fede7816e8467ab3498541db33fbd211e373d0a0eecf3b454d9ba6c3d5a3638820aaa867f040d20a102458c714ee37889964bf21c35c56c9239b99e682c5eca24ad59cd3c41bb5e22f70a33f07ba8a8432c2201e5e25941f930b23bab0f388c4b8a53ca5f673d386779f10793269e0dd7ded17c6a9de77a1ac43789c5c843a94eb9b73c27960ed922d6d04bb47dd5816597cb7211c4bc509189217475a4700a2f3eaac684a7f84b8e50bd7f1c3fa7549ea8578ee172e1075dfaf3890bf0c7eb6c47afb2588a63c879c555b80e7d80ecc83ced46304c30f659566c818b0ac00fffb2db32a4326482f6a6f2ebbf2a05f5626449f4d2629e64e82f2720966cecd32ccbb6a4eb0a4d693cfb3e40847f1e1f38c4495e1565814c0f9e3184f67668734306cadb36feb8e59d7809678695d2cef0e09e393d407c5f07387751f32996425c9dc623b60d6c36c050eca2d1e78dd0a9c656680bd1dd98d06dfeea51b5b01cf9bf6e59f8c224fbb0ed4500d85b4c92c7c3d1531714ca095ef78a9845293e514a49a22cac29cbadeda5a03e044a927c775472895b663405d83a6d83a68e7cb4bf61abec5364141b3019f0fa9636b8d299f73646013011ab041f58e0e0bcf5de8cb912ab661c1961c570ca0e445b4f77ee8cf93cc9dbaed2372861b3fee3587d26421ee85087421772f0f8c8d8520e474a8560d01f767eeaf2fd95cbdd92ffd29903a4f172a9de3d0b18c9a81532024daa579a6710c63d8b971327cbce079d4611b080bc0b16f4070df22db5e5e799afd29a49fac91b5607203b7e0a7b95de70bdcf6a3a8f0c5c397e0fcc5a889d8868e5de4bc06ed9ec716ea2ae5721bf2d732050f4d6bf9f3a0e536e5ac0325c53e6ed07a079333986afb0349d37d5f01c0b8231f114335be3d2728d1813ef4bc2410793d0500e65b3d891af07bbfdd5aafab04f598a8d0d993ad39e9a70fbf3b48deaaba662cae422463f891d466274edd0945fcda48e685eeb0a304644dfaf8f923bef6d68cc55a7d6e802fbcd97690eca7ea4756a86ea601e0b67d39e846a9186200aadd5ccd94b32b83a7eb88791a4a3e959bd9408a9bf890084e57dc1b2b6c1008ec995b95d691a66aa18935d4770d36df2f19bfb99a76519aa2df288a3f6d70ef67d468fcc35dd69db0cbaa0c9c202d82e504d06a92b1c0ec39d0c7a29b53ecb30ede2fd4afde790c313d54c70cd2b9b2345e49a0722be179ed821a1dbde0ee0cc6687ab33d3a6de9d153ffb73d653f58997523899a062d5ddae81a4cee1ac3f8cd0a4be946b128ac4cf65c488c8a3f787d5a3531ef3b1802888d180cd251826d90fa46d087e0395b5f8abe67fc6f0edddb630bc003dfd8484e7e891e5ec9d9aa94d22abb9e5735954688239be7dc49ffaa717c64ed204f7885b7372d6b4f457d20153f788317b3acf114dba362a5fd089a00f7403d646d3755e238218b0e3c26f9750883c2b7000c7ff6263a0bbbc9490a59eb3e79d20f83d2348caba181b5cdeea66cb9f722b5475bd94549e44c412e2a22d9f9485776bcccd303c84d30d4cddf114ea26c2d494166765fda4ae27a644aa4e178bd18724e4eb97e98899f472f72ae965c9f06dfebcf6ea61595113d562a009252313fd13fe14ef71b3833676a70cb08ca3eebc8bb97edc3e18b251e06f1f953bb8f337c9cc6853a425a81444e8b4c8f988bba47525debc531d49dc69d9fae015e66b05f9675422d2eab615a4695c0c5bb34d96fa2646124d7b36921ca10cf133190fc3024d8543816a84f6b549d354284bb3731028e0450b2fe2a9f48d6f4969ea24cbdee9d00151415e4d2664b960bc4c8b48e974e857bbfb30c6673c053d7707d19d3748109e5cd4d90ed5b914cc7ed364f7537fce0198649580f3e699a3475d3331003acd3a1048c48d117ff04bc94bfa42a9a0fd0079960865fa02955921a6b28596545056bf62c5363c39615ab5459b060cb3a4bca58d8b3c6ce262b6a58b366cd8a0d4b61e56248eb3758062c36099df1c2058f2cc5a33252dc76e3bb0fbc7b033b9a91c6c58351db84d843e137784a20ae8ea5afc90f317839f86c90221abaf6eaa8f697b5ac344a9a56a2d210efcade284abc4e3dc05c71da2b50d30922cee7f751a202fc8e62763d6464fd83b08ab814f4129e0eea318933beac9cd52974dba00753461dc01b0e9c09fa8125567fd8826befb50b9a005651e7345028fef554965de6e7f5495a2a4a2083413f901248644663c04daef8ae586e00fc5946381405cb8ebb2c9b676726b7cd21008ccdc5e84a4ca3979df020da2a667941c7c0c835b151ec62ebe3a1511f5236d3a069984371d4907be9dc2ff5a601f6bef788fbfd8b071e1b05a515987c05f38671318d513e4d9c8490b05c91174e2117f1390168eccfa02f655e000ed63ff5324b3ab436bcfbbe50b6495a8cb60064903ad1d68a804942806cd4007c3f9f355fa8acf30dc0070662263fcbb102aa01d82f696a5c5fc96e53b9cc4d0d7b0e5ba43735a27e53ab3fadd6b1eb724827811303504e3c7ff57249a22e70ea1a0f2a197343b7654e8d736be644c4d200242d225eb4b446a44e2b6a8a2969884c3f3dbd74a2534a4d315d3ad1d3a74d2925757a51534d4b253dedb49e0617e371dc07d6d6f582353c4a3eedc2e2eee1e0e4138dd6c1b4b01018031f34a6f125e165019a5823ea879914ce8f7e797b06083ca8eb9c45830b945f822f05d5fb0165c737683ff0c582fc94c5bb338a6968c3385053580abf401012a814aafca6b3fa7ba751685246ddfa1b7ef3c5604b62ac5159d283f652f8c2d04fdc4f37692cee1a60f8115269fb44772bfcb28b6b5a0f774c379af511f9c70406692a7f6a8fcf33cc5154ba58c01a841a03badf8d0eab1c255b971610439f531f95723df996084dab904fbe399e130497423efb33d53bc13e609c8ef7d1d6af502034104527d8a357682fa3ee7fc5c38e74f418b967b91d77ab125fcce7086b300aaa47845e0db8e1f4fefd8c40c4e192de7a20d759160e4d1be0db8e48be189f8ded17f9bc57a211b3b7b313810f17cda6617b9708e023ca5356fc27e3b12e5ee74fcc5296f787746f76e0b4245100c02a98f0c560d2e8052dfbd049dac9676f9f4cc986fc08a40320403399f6eb6d327fd26913551549b8aef1fa993f9d20b8fa4240c581a16438b05a34014df0372b049058f946ef41f6ff13d2a2c3fa1728af14a60d018483663c12cf9797986defd07b81db5fa0118dff64e34a34febecb6721e22b246a8a5f67e930475d54df45af8bba7c0a48b1949b5fa037b577363a89e78b41eabf40776daf4052c8eacc9c02c586e04d30509e457727c8ef748d2d92638d5be40296d4dc9700be5893af6bfa15e2dad20ee7bf2edae76b0e2755dbbbdc99b13b3f906de44f77966c27c9d6b973382faa3623c99d691e32f454e3ceee1ad5ff6d883bddb7cdc167744d6f3234c551bff5cadebe9de4942c85dbd98cdea02332a4ed868298d100befea4b6bff9f0ffc8ff6cbaa834183fe1cbbf6ad4a7dd56d93f2b156e916704364ee30d4d3ec45f91271db8385248a60d14fe66459e2b33e2cccaf8e5177b1e4d621579f27a082b6cac39fb1779562f9afa1e3372dc781b35352bd3248b3c5391331442043dce93e23afd916ae1a5cf65231e787e07ba19bc41feddc90360456fe20639094c11c5b1ad67a89295c1f33703b479d9ee19ca0b1e30ed10aff92518a5568d5fb7cdda859c3161ee5252e71530edf485cf57c340c9e60700bdaf9cdb15f1c4e66006867cbca2ef7c85fc350245cd432f0aed5ad0083fc589d6ac990ac42e926b464c6767d7102ab9204540282070bb7852ac9e7ecd3bb2a396548380051f5dd0e8a366f2585b4a1115aa0f46fac835ec90fd8204cddddab49c8250e97c628541c76119eb687d83b0e4c564295329453fe3bd6c9874857d0f6a434c0a65513783b0e6e687f0c7d84f3ac632b35a7696bbf7f3da29ac1ac8fd25d41daab049f9e66983c8984bcdc3e93bda1e165d3d439a9d398fb541508a377620aa20bdb9477d2ed806ec8ffa74a9c3f65232e8bb4861110e9685751d1dfd9c048932fe111d88514177770c2ae2cc4d57322e67541eae48ff6b0cf4a8c2cd69743c7914c075e49e7c830e320fb943bd69a6ee1c4afc410ccffb032bd390934c109fe011132ecc83a0e9426abca49bc61092deffd1ca4a928f0963317f1cd4e10ad61631fa82a8a19094bbe6dc2c8aab1b9a474b67cd83f6c46c7fea0a6a9e45ab11cb43ec57b45bc6bf6ec51220dd11cf838c8562dd45f465fb54ed7fa3961615c8726d91a8abc220b61b88b1640909921d9f8cd6ba1b5bc47a65de5457ec416acedb5460a88d054e1e0f8116d2d418c37d0af2149fe5b385323efa9f4ff8679907dd820635fb493e453d64da304c7cd20a5dfab3fc617c23cd95b14388185725a2ed34bdfc109a4306f19b8e879072c93e5f3dfa47757c0fa10dc72ec1bff86e12cd7ba4fbf4788cc3291b836e3446b8deeedcc2696b8cb23f5ad5ed11daec3f84249e444e7960fee9015d27092f9e7b8fff9d0676405d6ed6a7c36e6c8cae6461f49498e2f890c2ad20d84b8a622a0051759ef723289aa3b8c36f88ec85a54a9ab1af8e08fb0bff297155c7513e28ebc1d59b813e781b648fc71cd9764d08e09ab8f5dd756d6809c1eca0f1ca029bdae99e79cee6afb09590bd11ca3eb318e917da0b25d14e9ea3c5de5ac2edf66e98e6236e158ede180da7b9930abac58a8a57005a3ac94816d5534ae9b106b6521ae10e2e1a806c661d90fb4a8ff5fff78a4a2dd8283228a1678209b255392c48fb5b251a47a503c28b1cbd3aac9cb2dc03d1985b3318c42b29425d0b80eb7d63efbf30ccd14e2684b7c7620c7d239120a4e961530f4b863fff41d75a51865fbcf946a23e4883812d5d2cacb072f2b31efc6164b20c921e222ddee32cb5e53242fdc1d1398507dfa5b4c76d5894ed926ad8ec6120dd08d793711d2c65427b397d353528836a042819e17bc4fc30004e4648bf650fbd57f7f867ba0bb8f39d4a6c978704767ff6773d6d24741be9c535636cde99b234cdc364b651fd10ca4105456d9c135e3320b57628acac2ab6fa3f8be4416927c19e4a8d2d777e8b5de8fb455e0419d5328a92466c6c02b3c8b566c7380b19c753dd6324a474277aab9f7827a375f521e34fe80907b8f237ffda63b74416de7bf41ee41cf3e372c6137eee11138f2df8c0e591ed71bd35420fcf7171e9ea08430931ca00254c4167dd6f2a4dc7cf4ed910a60af9259577e90e23ecab5a9413e49010bad336cbf2a3d89cd8bde392a8c25ade42720fccdca48eb473e0c1d49a601bf08a0612a943d4d1fa8c2bb919cd81874e8b5e400ceeffb5c2de362fd8a009565e6783d7dc89b91b0ad76eebb4df81a4c7de733ce0f98318ecaf002f7211b43ff1bdb9303072adf12f4cd3557bc8ea931236955abb701118343bd911cbbf3f40e44d2b06f6d3d6ea9544a9d27e18d6a78916fa8ad39a287add458cdeb71cb391a34103aab56fd815ea598d9c13bf736afaff9330f695579575df15b981953f985640ae8fd5d7803042f68deb7ad130a6413889dbe37a8bb38de5156b286dc51a170d71643450bae2c58fc6d67e81f7cba615ac0c0b5792d2350b3ae7bb03c844d1c1aa7e6a603a12907d0edced7fd99f300f4acaca03912f6423b9b9f05b28ad66282c4377349aede4a49ba1a0d8d7d80394c735d518edbd4278acce510b71904d52031a5193a9311a3b0ddf313e6cdf45766c5a429ede090023d9e5dc5193a82a72cedeecdb3b01f7b260abcfdcf28e16a34752918054392a7d24a2f99d3db94705e809997d4b6320dc873d363dc2317cdf293e45c314e31c3de1ea0c251a4a96fda447119da5c54d467d8f54720da871f165966f77f63ac4adb307dee735c53283235aecd7bd1366f1dabe31f6f34425d1ea9f07fe11667411b0f790145d7efc8c4326cd9eb4b47d8514c9c01d785d6a762b79192357e32aad1420e5a0325d062b66e8f1a50c86caa22091650f6cd014c1c290402be5e19893f616e878e0e083a872494f5a7d1526e660666a6697c0028810c3d9a09aaaa35a9131cc592fe66f7994343aab9f7dd6060922b6828c73cb555d9a2892f05211d616b5361a4d6d243bf3fa3c94b7bd6a49619879ba7553454cbcc4295b7bcec03844a3cb6a7c44553fdb8d320b6b96cf9c329c1d30195acd4f898722597f1529a5a54d45fd4ca4f2d83968eec4126d5704bd68efc355f8337a9209c6dc6dad51186a26440359f71d6aae14b39733e1eb256ef7e4738dd64174a2c2df58bac9b8eae991de400c8508d0cebc0721e3b3ffb7c9fef3cc4fbbabea79169196ea616f6ecb5845912b5dbf9ba0c7170cac943c2f22ce345d85b2ad45bb8ce9ca5dc0441d09106d665ce8b9b7b34d695400fc0447821cfacae8016a44e5fdca68da6a5ebac3b2321a9255466f45abf5f5af2c2e2766d9b541769302a7f3bddc490416f662dec2d14c1da6599612899d3a2f37a38f10bbb11a470c6da79e0beb4e8d362c481a4dfbe1809701313572290823725433d43efd2740683030cacc0185de351abc49379f92180114d804a1786fec7b98a569d575279df6362f97779abea567d50535cafd9513cfc8e207ae7119fdeffe6e44b76d3d895b626cf932ea84cab42cedf1d5a3b92da7398402defae46507a05fbf0a7dfa0e0c4508308dd8004396304d98bc846c1ca247b359fca79fe18ae52c9448d24dad1d0dcf9646f4b2149dc68484cd44b4308e1bc4dd3c901701fb61db76669352b46fd1e6cd9bca498ef888633235a1c2d3616de9d53837270ca539d2516b07a13bb9c753c1e875f4ccaf981614a24814446b7c584625ead3534cfd1454b67630b8871a9684e11477e8606a922387b9560ad1f0b9d99544f1d69eaedabe3d59cb9d7924f4fa844a00991c2d065428fb748b86536f9739dce0a4451b43d0f06359ae9741300972301813e54822e3d015a8f0f00f4c5a42159d2b54052d2a82f097f465152c6155faf1b53363a338a6b87c7977d898e6ebebc7048f12a5385bfc7709f4d97cbedcc96c8e45feccd24f1dcfafab804e62b2633ac43680a8a79f397891dd11e7e8d3d44f202113b1e0e94a52ccd09584064d298fd3b039523a5c2347c1049232f18cc427831ccc5e843b174e80e6388b20d352585f926445dc46290f980b515b5802b59f26700a8b6573eadf58253c189ed76e8e9b0db933db77ea61556d0fb7ddcaa4f223a28153b493073cd0ec5977a43638a1bbabe71302c34317a9341d3996d055d84d1bc9cdc1b46886929e91634e6eaca609c1071b0cb3d1abb0f44daf82b4971932b0d9ec8332422b3309f5b9bc5cf9c8cd8c3446585664e14de404b938504bf2e0bc5b20302e225a8e2c83f086c4909c5b7750d3c77e66f4b93d740c31b3df9951047213dcca252808217771e1c24ebd7f297e6665e9dad1a5becdbf9a27fa1aa2083b55a1d92cdc5aeb661dad86246bc4fb9f778b7b6477b47e510af18d3b04d246cef66aa44c003347a82fa0c7a7ad612fb3ea50ca904d30e95357cabc6a5cefbb8da2cc07c974eae77ac3d71996456b6c41bca4250bff744ffac7c7d62a1847018d10e7387cd373462c7b46e2f71ac515338f54814f0797f41930bba91d804904701089dcb7dc0a0240311ca86420f500157ca9d64fd96cd25a8d6c28227748c8f48d0536d39e5149b60c123be407859efeb0468683a7afa73289dc0c032467c40dc6dbb71391aa58f6630258e0a8bd4193579967f49ec10bd4b85d02eb11924ae6f592cac92f6797568716502750d637392cffd0dca2145781ae158ce427a787ab466fef6880549dd33452144dfff84932882f56a0fea439b23295cb24f3789873f0f561b38f49967a8fb042253b2dfef013c322e30ae0bab6d81d1bb190db0f074eeb2f61141fdbc2adc0eca65baccc085c2948c22013c0b923cdda082d1f9a79484049008cc87a5651e5edce0f679a98a98d5a13c2235faec9387804239a0ad06b83eb89639081d553f4e228a2ace32fc35af03b54aa9d0c5951a0347da145c6934d7ac0f436572756d6901a62877faffb031c0d5d9d2c5fe61cc734f4bb316e14bae8adf2e8c88cf765b92e67b4f3a0d049d2ab9f09efc198f2a96fae9fc3cdfb05d9090ac72b066da5495685961a9816a9371672e93ee66c5a3c5b40d49855f2c121749c7338a5b484a85042386847e74271a7ff483964c64f7b2b503844ff6fdb8303845c08bd4213c7bcff8bdb59fd803aae6b1ae106b9c09b73ca05c280b5e365a8c08f5294d602d71fe8de34c7945b27be9dd50ddf1c02ac52fb7ab48f4697a35acd30a4fd63351b3da996a03157d13b601f73f15a000b185c09e952e5d6666640642328da7a3de822c2aa264560bcf101ba561e55825c521755ad07261cf7828c7a91192508160e0f573ced51a7237b1916c36515c911ca3adc91daa39af651b72e7c4428f135b79b96139fbd18b541343e906ad49c9da66ecbb040998b2aa2546ee4f7bf10a75b7cc55322961d6a44d2541ef86d27bb266e25e9e13ea9ffc825a172e68031551451cf6b7726cb3ae3a61626b13cd097eed4da4c5f4c7b7333681a6ef459e2add8ef11bdcd9d994010566fa15e7f3edfb2938dc6014e093e4b8bffcf56ac57d11d317890458962128395979290680fa420a26110f968ecef4b9f02684d6b704fa2f6e0ab9775c34ff58d9fac57d46f9b3b9e81b79fceced2281b380a0d28c094ec0c7464318eac9408dbb442e102f871210c14b520455b35f378bc13f2bb98575ee8ec53d9c5bc48a29b53e43f14e04700e450f49b3ab71937890c4fbd1bd30da8326f9e97ce623244fe9de77d0d3d000ef542974b5a48746c9bc91e4ed8772c7726465b2c9175e9d7158a475352634e3ad82bd479e10b190b73a13074b3c36909850af5374aa1d4f93ce0e5628140aabac52c07733d582588861d87824db7036ba26f857db1cb1ea9df1851b6cb827689d92b06e9d648419e817b3501e85fd9454977e442636020d8e56b9b92956932b630d11f2022bce958bd08ecf2842ac74918d3527de0afdfea7519203464bc2e171766e275b92f5705dc11a2ab35f5e4bd3c4b779cf2d532085085765d06ff6ed68bd55d65ed6c7660ac88d60142ac509d955de8cf0bd7201b1251ebd2b8d0ca55dbd9b3ed7ab4f2375170455e4a5fe3b17008fa9878cbf1b1f9300399bc434557e68b81efd7659600f3e0ffbc0da836c1d4027a098f10f4340b8fb7db10bdaba17a6c3bcbe99b166328c26efb7fdc31732cead76f5b550fdfd94a92e5a147f9467fa81c3323221e757b2872ceb25987a157efbe1e9aa9d868a5e02ce06b55977b285edf69dfd03c9fc55150a9f89ac5e0a06a219899cf2409cb3bec78955bbf4ee45d011ea0bc2d5e7cc1fc65838c059decf8aa0a13efb23e9e3ecea4d5c55f9e28c4ac8fe1b263c72a6e539ee29a4d240c83ffc357413567711afeb2ea94f25ffaa169418a6c25a6f1f8adf7cb80ae37f95a6fba5f3e397c915d9d1fa4ee97f994aed665946619261b42cd3541d9e386c2bee10252ce75e17ef99422c9bdb7ef7496ff043583c0b532fc7af87e8cdaa3b5e52de5dca92a986fe251e1375797eabd44181a8f1a0713549fc83509051b4a62cdc7771e4e243eae9269e18c9f3f65b36e583e9180570ecb6061535521e52f3eaa6af3a17864d13324567237e88bcacbf32989d407a97081ca2f67ed5b194933f8c0f38214dd53bfc3a0bb8ad63b2b75ccfaed73c5e554758d2ccc327afe06f486de856a8a14ebbeee1f7bda551afedcb54ad4c424ecfde40329ae37d1d8723ab7117d2c231fb7af563c6d856bdf603de1206a6802441cac410f9727c9c588dbdb8dfe67e34b06684d1e1097833ca32a9255a67a415a85ee3c9fe3ae250bed6ca326020eb1a4601994655326416050d1482b72a693c96b3f59a69b6bc070ac3c67da442455f6722f08cbc87164929e56552c8bcd8ae444cc999d309a2c47da8633bf1c1031d34c8e09fdff10730066fa513c1e553ac40c567af24e17c0285e52b1f983cd748d0a0066262b69c436510cc6f22c6adca8ed0ea76709e9bbe5311102cd5d585242c61c6d15f5d534579d832bc44cbfc227a2ce1436f5c4029a6602e18610f5e067a9be245f36729753607d498b33dff35b621b0c4a153f723192ce3ada564139c9d9a0d4002d77402ce43909b89519b8fad074b0da627389494e6945c0902c738e99acbe0ec981935f167df71ea5f0a07c08124a3444d5017839e32bbd858058ac54295520f8b1484f26635fb5f9703a0ed833fead453bbc68167c64294006cf44028bcf1a9d787fc0160c3eec6e0e7c0a3d84e2c5af9859a98ddcf2e5a8cd847a7997ced2383fbd3c6046fb0a8a99e5f7b64163e0aa46e33d91484af0d58c8aaba5d0c86040c5efea77540462e6a544df4cf307b563612722c739efe73a35a4f9a556973d42dcf3100d6614f02046b809b67c297723423aa0990efb96caa878c1439bdd6e4743f2d00ed2c0b9e0a11053690f25f783a3b9d743981d47fd21cc3ba0d0d6f3197d0659b4ad662789ac50e11c9b1937f36a7bcc741a35e088b4fe81ae96d2d57b1264b57cd0cd1cd45805ae9ac95ac7da749520c1d4bba71002d5ab293ea8c43c23432d4b40c94317d30b686171fbc0ef6bdf051433127e232ce8e8b54cdcf5ae6f7b7040ccd30bb56720a572d7cd29400c7b3fb63dacb1330e1d7ed18eafc95677ae2c1c7f26db6b9c6c1f875a454d4cc899fc5095a6cd2e6591bceef8cbe6ee4aae41e9f6a80325919b24e8e08d4b918862686258002e73c7f372fb4f09c4c57bc1444ffd82fc3b5620a399a2e0c484fd739cac22c71fba8a390124c28be23e1e93a2143b85ee9752ce537c8bfdb6c929feba56f9619ea06d1c79dcd337e992cb9d203f4ce1b408752e16b316e1e84f1504256bf606392280c6cbe7858e76c60fc3e92a8a5c79ec14a205de85988cd38c661a3a6397c36f5f9543d3a95c8c8f39b24c0dbc53ed4ef143f5855619713e4441e4d1ce87adb639583a1fda80b459d25e795229815511076aacbc28aad3ee56a37181988eda023103d32c831ef5773f195ca7aa22ed5d133e5014df5481789076df32c893f2fe1b0ced578457011bc4001cd3bd75233ca4eee5021d552066a68d4b64e0a5caa5b492c21488b90775df796d812d43ee956cd7574ebe06623a9f7dea6f6f71ffb08ac26c0585ed81b6795f380e961b7d006ea4c3eaa2a6135ce8cf9da40f98b83d74af089ab3046b082f25b1d4e324596b0289da77d932e5396e39d0ff2ca0f40a215a5de9a059d45b8e20d9a88ec64963a789ec6788e9450a11c322b36cece61d72e8ba3a415201306623438ced4742827fa575597a7a314097110d71f746d8d631317e7a3fc2d5380baaab5be556abd1486c06d34d36eaf8bf64f8fe8903e80ef86e1d58440e9457a72a24a512e3c12a2aa9f9c27488570c2c02c35162639d8996855c39136719b69ca2837eabc399305e7b9c70564431386c175405dbfb613790a7b08171865c96979d9a857f5e12f175b80809a07c53b60f5b49282fd726d6e363f66b2ae1cdc4f37b0e17e5723c9ade4f0f82cd14c09d60f8675636c212a3fe989d0068485fe6f0e7df908e6bd68a56136a770e17fff2a87d271911a9d307b5bab8cd3ce41919ed7d0993d188421a41a0d9b3f745191f282501495ce4238053588bac0b0a0079c5a95ac43c2171119b21590b06a8ebd982de3131449a4e37fc4b48bbec4dfcc67e5e968254e13bd79e3f666fc2e21cf7aab4a4862107ea7563d159b8b1bcca1ab127d2934322dfa40926b42b06328f40c7423ef0ef1513089818b63b779d540f0f7b63b8a5c5a87f06705333851935b294d23ef26a510800ef43d052d0b608af50be48f271776aa78ef7b0d66ac95f88d8fb61d14f7c745931ee0615bbd0424bcc4a0b6af270d80aad4278a1dcceb1a8403308c6d41c8de8d5e93da623c4a668d0749e3cb8c899d80dd8a83e501c546d8813009983601b541c936314e9b56143a841d1a39b8c697e2af5d1318a56c831262685d47dd65cd7332b02ef1695563baace442043efe13cc907b93ffdf2b891d3a3834be70f9281da2255179d1248cada16d634aa72a7c94949cc5819d0919d6eba08c5323332ca695723a8c37c36336801eafc29b55d19a59739c43952863a81b439b0600f7170d72d604ac8a1e696c86ad4278159b7bf6afda5d4983d1afc166ef990246e1a9466bb76ec906ac027fb67e0341f3ff07271b0cc1b83e7daf8781638ac842dbb2da1e040ca4dd427d0296b29ea4fefe6570f62031a7d050574d66fa4afa783fe683fcd64d49c1b7c691c5ad32f76eb971c46fb8b94f3c3ffe7ed13997291b3e98f35f34d7f8dfc813a045f992378e2c4e5da0419b5d718ced10cefdbacfbe5de2bf92b9a516197c3578eccbf009269e083042aa925e03d2f81b90d1c155f474f0fffae7786a065dbaa43252734f19ac7df282826d5c583170303a4c4bcd37f7a85248e3a60cec54807af17202f0e47c2e7546262206f1065459a249c05100390997998ff34667d464953cc47ed12bf7fdb409180f4afdd72b9e36f7cef97f94535b2f28f97d04c8a658e5f86b0fd8d914c1a9d5ad52ba23dee8b3166e319b47aa8bcb91c990faa0126f858a3de779603052042ac7c17a7f96af2e826550b932c701cca41bcffcba05103e8b5ab8c715f398b512259521097a31437ed5e80cd2c38f2cfc8ac34c41010107fbe943e5355e8ca797dc42345fe70045f817031f306587f7b0258b77259782abe9c599c5ad380c11bb8f6111f0a28c65e6a30a13c8b26a658877e897485e2248f9d50f76bef27f9cb61b9558e1139b2ed0ebc5ed957e5a0486aa0980129cfcf662bdd869a599546e060da1e33f873aaa27d0e01a25d78a929b7303a67b6e566b5829e505c429baf0e04148da1dd39a901bf6c95675e964a4eb976850d6353aea033271c38b4b5ca190064e8aeebf5de832957d2da8b2f097a26a103777a20846829f7f8537d69cd2ae580850fb371e0815fbfd64f2e3b29574b84d2ccfa05e007529f51d1f24757317c24f3bef3f7aa16049f9b9aac980481cf82381596c674cd8f79d404627f934c4800e100d9b822e0a30e6223d2c9213a6f0cf884c36ec7a0fb3511ad7794c2cb1e852a82b59a7e1e80aa81e5b91473981a1630905844832eb4a2d01a6369ea5fd5a71a8881a561fd5c4dad5512163cb4f56bee0156c4d47fa3ba01b5ba084c6bf027b7f19a7cf97433cef27efab79f2159999b4001551f06e957d0f156030a61eab7fed9068113d0d64253b74786d53be5fdd91bff2fb56aaacd393d606d8a8395a0185e912626d564d06eb3e0f93f6edf6c003dc9bec134de55755e459337dfcc515be361cc6a3b58d54a934bad836bcdd4f86b5d6a93e027b5444c54ceaf1c5a6d1d57fe5f9acde2a7c4dbbb2b90f1c89138c5845f965c97999157312318fc86aa0da22beba22fdb3fb109f821a6a7b3f528d94ea6d631779a8ba85018387a0bc53da295cb01003fc4e49ba142f81adc62069e27ceb4b4658230b92588536f1cdd4b3f6dfa8d56fa5d69656d9dd8d830490323ce65a438d287a10f74e6d22636299c110978c5c66142a1e9231eaa289bade1b84427ed115c2deb45ef34413d80656392784527937dc63e870f68c8a45b39c66dd40374954ac10369b471493869afc970b31a893c19de5e8da00bb2052d9a6b1e11c48d4efc428151b3a479bc6ec9688378ae294596ee435bd78f058d6361ac5434f33e67da862efc65196e8ebbb1e32b4dc924b22b0054f27d0c12576e8c99e3003a5854a86461e1b895ba0b57006ce65b2347fcae46c4a686f8d4650f59c4c3cafb2ed294f33f605195338b9d02c60d9993be7c9746181ac23c51c6abf3c393bcec978ef001903cd26c65a55470f315826427290e829e236d3b0e4f25ef108b1a6c38e2c33440a331bb83ea3b39a7824d6e5f2a6d3e87c918275ab8be95b9c21149d45e20462865e402e2c893cdb0f8969e0d2df8084eaea639eafec9ea514ee3d2593208b8a43b4e470e0a9716d7edd7bcc147b12ac44e025806d2bcd63a4359c484ce1072bc0fa99ab145f31c6e73e5020242b4b952b3f58410ffc34252dbd25bfb836d13b0e61730019c2b698a4ea53cc779f9dbb8d737572e3e690cc82caae315f320d36122e7762d2db5a0a9e7ca823cc176073b64f6f7fd1d813020f647159179ce24142804b5accd9505eb59da5ca98512fd46ffc1ca94dd1cd28dcf49a2525a3f93b4ad3c8b29deacbb90fc01e449ebfb1a960d2abdc8e1cac63dd0b81a546a062621bee2dad272c37e05dbf069d74e868c3fea0fb600ca34264cb80e9a17c3cca7b8751dfe105802ef1f3e253bc944eae316009b17d7198f206494d09c30022e34310880f69840577f4a1a2f2c810350b117711ba40385cb3d56b292c604f41661c125d84ef321a35cda215844e1bfd54b35cd132b626dcb719eb2cb224ec1aa70684c79e6543dbb9144ddbd10cce1f6b25b53cd42d288d1c2eaf16da0e345b5f4a371d4953afe63b11e42d4ff1fcc92de1377ee5102866c105a556130232d3fd7b356fd5b949ccde19931f36d02c45499a24691dfaa7e7798a67d2a2573c6827adf589987147f5226098b52ed7754d9b1e8556755b49aaea4594079de038bb850d6a1d9844bd51dd632235accdc92ea214c79a56130572dde142f31a2f89b3d02ce6dee2fee809fc3f88ec31fef4b8c00722a34dfd0216b0f8c685ac266bbef4fff79c229f156025558b007ef0c98354bdc1a249f735aa7ed3c3f3aec6ef8112a7c06755ecc3a12bc6dd544458443e3f9c12583c12b872b3459baac3c16107fbcaaddc26ebca9b649c86645d93cdb81c455fe8d5d73f26b5cb5c237c8834fdf1ae0a97643621af102e8df1793d574ce9260cbc75c12a5776c4c2b99da16f6748719f9c4c68984cd99b4ee250951207e3a7aec247be86c72053c9b6b8bc3e3a6de2c62faaa2eb9c1c8fbe58638b9f4effd134c064472c0d9b8c2c9fa398eabdae1cb6990f4d3d5c0da5ea15b3deb56b11f61511150c26068388f69082d18aac41cd338aa39e561a35cec048bdcbfaee1a6ac7e871036c29a8b51efd78a75b495549b74506ba53ba601e28d768ac5900fad99313c23843e76e294ce8443bc825e7e7cb04eb9ccbced3a821fd6d2d10cfae236465428c2d7bf7736b9b4667048a6c10d176ab3ed4856c129dc95cc70848ce00d6e7db3381a4330d391de2c8bc612dca5b3d28c1b125382b9804be14c32f02952d66a4085e5ec9c031ab6023ba3e11c87cf3bd9f6c6d5cac9dc48958eac422da20a97d81d724924531927aa714b822bc7df4745ca4cede2609a1e35f2413d8bea6dfc2223cdbb327130d6de629fc2b8f247d116b634724086e83e6b4175ccc4bb7eaf1725f33de02b80888cd9735ceaead8044e34a1244e25603f9041b456a16e98ed954362f32b26e3e093e20441be02c06a8dc2e324d652598650e8aa324cf0706aacaa82fedb532a981be4b52088534459205255404cca9584e20f0c717d159894757e30097cc7c1a4210df806931a106417068a54be69d413378e03b156546c8992524284b5ba662985d10a26692607c9c2c4f1ab95ee5da48e891263167ee76ab528acc483ab95863152bf5bad4c9591cad156ab4f715eb5400d69b512e401e4b46d22be8a28dfb512bf99a442ad95fc19a953b95ad1a79152786a75c55a068341ad34312669d1b4d27e237533214f3c6d3e916a15ef182936aad5b772287b51adc230d62014aa95be17e119a856b4f918ea7f6a458aae4c93aad5dd2f0c78e439d9514818a75a1db3cf8667aa95865b203b94cf9d3c9e37e48236c7e4130d98892bbeb3f92f1c6018f66dbf2362e4f3829afb670761ed56974c62fae4cd671554421307d2dd131b413798b2d7241db0d91118a45d04d855dee12f0ed8237b7229f76f9b429f83707bd46467a1e8bfe41393f17921b03b6f58a693637c7be1e44491662a21085b3cf2a448c0bf27ceaec80858786207c01241357d1da4acf221c676747462722549fe1aa41210aea4502cd734728095e808905b495fde004fcb1170bc92fe3647f73e1de6f25d41e1fd8c8308065849c69ca06864a86860257d28014653218060257d32023c293549e54280c9120404aca4ff7e00170e08f05a491f75005bc207f85a493f9e003b7f0f80b5927e96007f7a0f90b5927e1b014eea1e4096597d090196e01e602db3faf3012cae3dc0ee4afadb0160d06fa646ee9f716256d12251625654e7fcc4ac42884913b35a8ddd7d9534b0af8e7a56eb0933cfef33460c203b6407c02ab3caa2cf2d3418566615ac048862a6c5b756924207186a9816f7aea41e8402d4702694ad6116fe7f9574369026667555a697985554413c312b2a19ef57490d6e6a1a809d72528279f038a8be1d367230ef53ea67f0e0ebbe97d567ae898528e403251d781f5ca9fea6559dd581ed038e1b9aad8b7157e1060530ced82b81bd97d06cdfb49cc831a2b674ec179c6994d267f53202cc4661cb75d9cd4de880310d260e5a7f9c180c95c2da16862b41253b6543fca9a7c8ff7059dbaec0c896e1c2eab0b382a8c35adcce4d8b8b223fb1ca4e71d541e195dd9021ac0c2457e1408324450c0faa2647347f598c5cf65871e1782d0c68582716117cd9b3219cfed048ac192a312ad91215ea1dddb67150a1dacb0749d55c54f8a1881fbcd6bf17847a0f22e7b469539ff2a6dbbc04e7a1e0c0e63168441beffc11d63cf1d4058585ef023e187aee2d37f183cc0b26355c859c17599ae018c7773807ba93b14cca2499c8bc8c1e5f99e698c0fc268fc944deac967fb3addafba9b19597f57eb128f9da710f6a8d8d4480ee5c4957b3373d944293fdb16a55fcacb490d19b74dd4a29f9265b587881721210ea3a8281ac94be341ea948c6d28b2700ca36f38b8ea730ef7e24cd0c8925f0f70fd7a994c794ff1f95e445850b55e88330d2b2250bdd954f975934c550bc1adeacda19c73dbe8ab87aeef2616a9b45a583735088c5532c2bcb6af235e213c67a9ba5b7820001c1f0739b005d3044748067794e365ebf1924d36d8e57565306fae7c1869055a8dfd48d34e48b119a1fbe7547dac3bd256b2a4a7798e6ef90e30f0db2250062af8fe4fbb107b92bdfcb6055c28047918d81a892d54fc3d2912c996d57a484c79a4d88db05684a27be658d7a90c4fd767973c01d18f780837e2d4f0726b611b0b2852114a2a7c87eb7a5958f5491e559b5cfcafad7f4782cab6371dd378d7dd8b362f1abd875d3c58b846e9a977603a3ecaff2003d8f0400903467f26e9296a37df1aea8494a3fa5913c1dbc36a73e2c383c1d3751d0f6ea0a7e7b420b48d4ef1327591d45df669bbf7ae0e8dbcefefc2334cf300f5e1f2520bbd0a730f484f4d2907ff320a4f569a5de70503131f14d9a4554aa4b7afec590dd1b05477aaf64fea36d28d5962d31517c566b564be7e36e7201e4df195ba8add8598cad82a75aeff22ee7888829d6ec088fff38b55c58a2f0ab5c10b8b3525e3d4b1e26e9cb701cf166721788cb155c1531e1100a6a33a86ec76b9f10f2f4f27001857077ab10e8686022582b3cce7ccd48b1b4dbad6a219d1c5e9ec991a3c44a44dea58848d510bf10afd871cac3ad7668c2bac543f230d62b20cdd75c04266a2555c74d18bb321a93b2cf2c3dbbe869adf28bc5ba6923c6a4e2e2cdb3512826c2bb31f17e5e63eb1611172d59a34cddb1e2ee09ffac505ae9166afac41bcf6be664f08792e4757c6155c89248723c8fbf40314c6ae09bef63b2c46a76832ded8a639e16d0d4d03a11dfec22690805a13a5bbb37c7638cf934323ad7096f2419fac7c9ca7a905d4ea6c6f3ed38b22ace8a106a6c733ce58d1c4553f279411f0cf9972e35a48baec55d24cac87c5f1b77f7329216874ad4ed4c75058f204684482b42fff8cb38781d5bfb0c2327a80f4352b8c25ccf2cf8cad9322244e16ec4507e59cf67f459a987fc1642b9113e9901bd3e90994f1786746433b889a8db63b0d2d419625fb1cc42336e97bffbf72d466225e6347da96345d66b2f410fb3f8535a89ca61ae2ac819c2d58fd5a2120efbe4c4639e076c501eb7362d59462ded4405e3d6d56af3989eb23bb1bf816ad5b941f67c85c60871d6ad078d05d40ade0d575a6e17c779345a12338bfb9790cdde60141aa39edc125ed0dce46e008766ff2a2f58be49819c05d3c3fb22aa34d9ec60d0ab0b0631e005cb625583e5af174cefd8649b6b5c79eceaae94013c3ef0f6a593f5d57bf1c8e71a7d2314bd5b68fd95d8c8f016ca3cb75ba6ff0d0ee1dd8840fd3d8801daca7b268e0fe0f2cd58bc24f7293b6d83eab70445a452bda4041d6f6822f3a36073d05f63cbf16d5a3ee0e21f195f19cb0ca05916e1941953df97c222cde9634a2149b0d4a73adb4ad79cd1113505aa253ce7f30a9e42d37984cd0e54e286d3bb959f0a2ef63ec0610f9a216ea751504ea7e0e468abd93aa8c487977482ced5ddae16bd4ed3c3224f60ce034b18db53d030d54668af72f59586b638bd484537fdceb58728bab201f092b5c22e25975ef53960501228e2c51782925ae0248a0a5f95141ae288a7c004973ff100d450c285de9848cbd24a6cd898086c3175e498f01f0b56148f09250403726c96a38d14e611d22dc8435bee90685f4cccf59760913cb66d1054b43972082373242e42bdecc643bf76f03725c7e210b6e951c5484ac0790fae98a854549021ba6348aea59e67cb6f898c7828f8fad9bd3d6de2a9547b833c1f6f68e64a87e47c7a5f9d8b0926bd909abc27b59fe2f7fbd42c7a3b8aebcd0c7c907099a1bb4af46ccc5fdf3a9cc09930b6fab39ce549450b9ba7e84fb8ca6546bd1c7a72d6c8daf094522a38e349a7372f61e70577de8ad24b5ba4c79bb18230637d276f2fd53d4e2058b083c348a8f55df5ec078ec53c4e141fe9c7309612a137bb62b2e753313f5094981c860e0f10395e5311b460dae31b188f13f7abb39df76f748852f1a337e049fbc6f4d7e3e66d005f5208120931c07dce29e9a051c85d65825226881614aea76444b2e09b76a7ac4e8b9b61c472d62034e765d1c80d9289644d8b64c227bd474a8904d52471af8a3d2a1093440a0ac725f828b8868447999040a030c8ba7373e8383193804549c03eb0feb68dd8c7a3bfdd3fd1878b04774ded80c0c00e52515947f3acddc2a08a0e23c1a897c2e57d248fc86056b1a0a3d12d11d8c492d37f57ff31f3d8230ff441e0c0b475883db19117b7046178cbf6251c0b22dab56581454e98173a8481fbef68a2ede3afb8e0c1314dc1d038569c3cf50141a26b0e2e265b880af3b554fa91db643ccc86f70dc752347ddbb4d8fad141f0d8c0d8772c23a1bfd3b18e8f3ed8f10bcb7bc052d631d0648a09fa5821f17b8143df1a6791712c41160f6af14d40df679a81637a8c5d7472da4b4e2d61c724964ed0477521edf333150212795c341ee31e617cbbcccb8d5ad4213c9256ff8084fd547460c5f99cc8210d316b023cc19b630a734b017c09e80609464f0bdb442aea6e0b9eefb489548c5a582d1513695b08231b527e673f97c3f3eb2ca272e1610225e9b7612e8b5ee2e27705b7109cf14f6ad8cb7e88892b5c470532419048ab2a88ec33b7330381fb12318790b560ec720d59510f71a5a53a93e01f1754d7416d2a5fec336fde80aca50a05859f0f74da8470bda7e0bee88dd946844bea112d11da82cb83602c10c515e384709604e739cc8500b93b9e8f7c3c0faa0f3456ee86a8aa3fe3cc7cef5f80c0cb6846fa4fbdfb649eff15661ce4e2d9635c3221d7eab8b538f79b09ed0b5414eed1ae0da1598faf631cf98922733fbe86de4baa972dfcbb908f6bb14fadd2d7f2fdce28049200bb1bf7a8097409d1f77146b012564c33079cf9033fc60763764310fb9c5e80d9983b4c64baae31be209b58164413dcada85c0ddaa314f4150bd1c42ea99d5539c1c4f40c706c795a700c3d289e270422c79b1086fcc5df3a3856f04b85115d38d2e04eadffe95f273bec714e2c011c6eafd09247fef4bea67cb66e0f1c43c0b15cc0d76f97d92adaaea339e44e3d6b3f8b30022d4ac2cdcbdc54e272a50e853b83d5e427644eb901649a042e2f44b20d54107066351d800341213804af51aa801208e32914855229a72804c1711e0d2e61ed8436b15b4ab22de5f65fba91b4bbc94d986ee9f081874b267c7e5fb5a5756afcb632d029e8546022fcd0f83a26e65ab4de64a7360f380c1c0de20fbd117df093849f29b6e4f7bcd17dfc49f263eca2cd1bce3265522dcd607933ae3ea238797818b55a237834824dba15d0dd39dd7153baf3d1b3e62da70ece2f8a93d4e96eef8e8b82337e190d5d9c8f7d26295dfe2249b3588e1ed6d216d94cd0dd47ba2b6de96e1cbae37afcbeec4ed1a7dbec4595de19769b3d7c7a8774c0188c870e1d3d7cc4660c06448720030079c4e68f1e3d401d80c08080af2304127b1f3b7a04993a60c6e5d5b9dd2dd45de902f87a302aeef078783b58f8730da6d3834710f007000b0730001e3f40f077b0460b7ab07296a9ac7633a6b2bf3a567627a8733f146909d3f9d1ce74f2b5b0d9dd32babbee8ed1dd32f44c77cb74774c77c37437aabb5f5ea6d0e8aee49da94862fff2fc6474b771d12d4e9e1add6d5374774d775b13cdc37d5c6977c3e83ed9d832be5e68471df08db6eeb6263bdd3d4377dbaabbeb8b2ec41fe6a158da197695639af2a30f2bf537b2e3df173969b84bb0eeb6e96ee31a5f2f8fb16bef7dafd3c3afb7cc7fbd5a9a67ae3fbe488ed4339d37bbacd29ce7786dcc67e9d4dd3574d748dd4dd35d3bd1dd342bc6ee1b59af650a4e7282f87ae01bbd68f3ea8017eb805614a74eedce0ba36277bb7497bafbc499babb44002958b8c0050580a941050a150c7cf024680935188a11c10715664422291c2904a9328386f2c0c0c4163fa2039c800992a302c18e2a33687880c791b807070210211d31029411601a2045a6a94489e26a0ee6015374dbb6335384112577c98952f2cd717a4746c651322f302687294931b98c6f3845a07c2ba166a044c14182003b9cc3e04841da76384782003b3f987cc68738198fc1e99d9919878971a46d07468a0c4a8a8ccff88653048c6fa8cd8b8871199cde8189c199b9f1e204701571fe44ade42e335262dc0547ca8c23e13b30becde444e17cf32d474a1146700e931385938284efcc38070308ce67708a3082f3989c289c977e18e2bc34038383b4edc0380a0769db41790c8e142408b003e348db4e8ccbe0dcf8c1e4330e04e732ee822305c504cace4c4e11510cc5f8e645c0384e1131be790f9c0b4eefc0e0e02011c5b6f385eb25a7e8895ac99fa899dce4dc8d1f4c4125df600499dc4f50361717149ddc94d32e28dc660099369d505216a080ade425d3e60299deb6a2cd4dcee16c3026938948c961fc05657a8131712f2f309c6f30a89c22ce64329938cef48468330014d78b0f2677796254ca1cd19313777a823ae564ce005050ce9d8a4e394425df5038452f272ff9e652c8949c3bc178fb707ecac1b9d9e42e39462577f1138e131b57918bb72b26c7c913178c97709cd8b85c7232e782f10d8691cd85e25c303944262742e53879e27ac9e1dcc585e35c45ed1dc35572d456ba01aa7b67c3414232494142c20605ec94709088c209015c4898a42045e18400aecd9130e544e184002ece9b8a8b632283e2803c796244c939376273938b3f9182e43ba721183fb911288ff1ce798284ef9c729e18e1e2313948bec3394c8e11a81c24dfd98c70d9fc94c379bb112e5b95b161013644b9f902c5a94e6e0303b64d0817db16ba9294238ee00ac021a1539b73311c12623ce6e60b27578ccba0bed0c5784c4e4c0c872587c372a385cd63884c515c31be798c0b8e09c9940491498aabe49c9b904c51601481c9312561427a9942c965b62ebae862ebe2a68b2851a8a0a28b2953bab8e9627369d1420515446ebad8b64d054b74443578134e4c8181e2742382ae51eeee2e45c90afdd22fa617d32aca0a89151211ca944429d5a6244c4c2075442629b6dea294548dea128e290994140d40828b23b2bc6871712f39a2b8bab435d72e2eed27180540394cabb6a8c690230a0c220d8383c2e1b44099a234a02b39920d0e4b49d59eb2c2844a59c101d9bc9d2855c5d539375ee84ebe715abc683955114247b449b9094257641b22e2380f924207c565bae1e3e22f4e6c378a70ae17df9cf84aa99294520ac9758a92a523eaa4cd65db729e389d4c505ccea54aa9552945b472955c2bd429ca4d968e0865c5490a0c74513a2d3a84d075900ca3630adde67af1514a959c8bde5c5a4a3f5c72885a0b14aaeb6c6cdc75f8682e4ea753149729474b7321840ea565089d1657898b192d5c6871e5cc68a9428bab8483abb4a1b4cca009974c8cd28c53957c0be98242a15059665110b76df36deb98d83627b6263ad031d135f1f282738a42d45b8e7acb4ce4b09480b8c0f8064513ae2d36284a279fa1524a9576d09ddca506e9a5344325277440f795522517a2942a6d2eae44e5880312850372f2d2290a1514165412d1cc0c9528418204091224488d248e83d142c94ba51b2a74250ecb1525202f59945425d722cb165ab878f1224a2fe12a212d51da3121e1e0da1a07242e07290b0724498babe43741e8362ff58c125c154a5b89e360385329e70859b2dc4081e3361f1c81c50747f4c007475001a493e10bb88201493180f8cd0eba195ee38e330367a689192a34b849896e2d112343a6460ca7e1260af40e319cdb5054361714150e08aa0aa7e2505c0d1c193132dce4362e23c365626464c8c839b5aae433b2a0aa7040382dadea969191c32575aa94a5779462702e19385c5277ca1443864c8d19a6d229c7e6031d0c279a69829b99320345a924030d8d93175769c6899929a514374385060e11a704171a7088562e6eca35d1f84c13251ae77cc6899929353433546c9b8dcd56ba1142131f25a7d2415895525c1057c955723591b9f94127d340e84a7e3ad580b273c36b7ce886d7d4f88d9c52ce500d7ec36fe43cb9e135e440d98911c4c5d5f80d270ae22272259628fd80e1363887aa12a4f42386732ea487265036e0d0f806e3c589669a082204460e0e37706e94fcc66bf01a9c1ba59c1b3fd4f80d5f5283dff80dafa901e7064e0d0eaa03a514876aa294e2504c348b3351096252820372c339140ac5255141d5e050e92188063a0ed5440dcf28d70c9ca33a40830de71cc50467e3338ed240ef60e3dc4c13311e84064e0d1b35bce434d000a3060d354a35336c6cd030d3c44c13346c6cd030438d19336ad8d8a081069b276a7c861aa7513323088d49868c1c27db174432706e36d0999ca673184e8303c5558281e2808bd31203e35c16130e1cd79d6c6040e686085dc965ba534e11510cb9b80c5ec4c963382aa7081797c1512eb3ddf8e1e4311c8893c7c801c2c5517873c538e785290ab7a5591c91f3a0e3b6e4984c318e42c5981cc6e42893f7c0714938a59713924ce3406493749ac198999999999999114d45332e830c3ee325199443d9e1bc3920308ef2211847c170a59ca11a8771989c2730507664500e5345e9c7e944c34f369cc64d584c3549382fbe790f2513161a3438262ca55416a6241a3082a4dcf4a0231224a5c669f01aaff1225039373847b98ddb7829a708989c1b5cce8d1f6c1ce54b6c50bea4a6c66b72aa205243a5943a79a9868a669dba2494141c10183f75326460a9a1a2c4838ea84b72956aa8e080c0c040e254279f314326a76b9260207139449c16a28ec60c381c0c2233b84c0ce7445d928cbfbcd4e0a0b84a3568b80c0def819b0187064c0d0c4e4d0e87855395905c307c860c2213961957378303c363e06c527236a42d4a2945840e95e43293d4753636251848441b0c24170c120c2418a49a18278241828144844a4225698182794125a1925e3822744435495d854a475493942404ee492ea54e47262c594a3f4a2f38642975326551fac17992ebb4856b564a9d5ec452eaf4522a954a3754e85e9c7bd9904aa9d316a5943a71a746fd50da41e5a06e96d06d2520286f189c99920af5827323848e0806e925c70585eaba524d92094be9c78b277157b8883a534c151d110c120c52e947124cc04c29fdb8513ac12011c174000669862be1dc044186a8b3eca043d9c092e43a113d918253a14e5e93a445894694d28f1b2514514d92ebe42f2527e272505b14ee74229a71895b6c4a314694a0702f375e70c1c201d976fa250ba7dafc458b6bcbd22e3336924e377eb0e1337cc8c68c9c214ee6b4256d7e4384cec4040c93121ae8367ff19817295164948b468d6fce6591512e1aba35e31c127a871abe350744c696a384ab0667062fe1b8b868c031426d6e6363b2e1b628a54edca97b4bab4ece995c3538dc169da281638472cd90c365e9d4c965e048e1b4f48e9333c088283b325c869b0187cb42038e11ca6593c369d1a993cb986c70382d9a753a39e784d639cd701a384f20a17666784d0e97e5c42535cb756384ee0443061964f0120e1187e566035dc94f1d0c37c580812ac12002c329c1c58812941826981cc898fc460859e8665cdecde1cc70eed29dcbe42ab96e6ad0b58b977eb8985c870fa219213139352e1797e92587339db65045072f53925ea8c821e29236e71cca8ecb9673e30793733e64722ee74914a61cd4d08c9bdc94f3c4e4333736e8aed0716e9a223345e947bb0c14ae928c14a617177fc11284d34946464606e766039d8b13bd547932e5e43138505cdbcba94f2f59e0bc5c514abd6039bd54e19270701002e71ce72693e948e987c94d28940b8753729d70da7583838e68e626075ab8e478079552dc02b498895995bc942afd184311ae1b24742eee330e65e7e59473e307199ff121199fc97912c5c99fe40ce53c91c981b263c2d2b938e735a5944b4ee73720e860728c702eeee2f2e28293e374429d4e279759a9861908ba6be29ce370724431f550fae1d26466e448e9e5a4a3072fb970701fedada53443812b57ae5cb972e5ca952b57ae5cb972e5ca952b57ae5cb972e5ca952b57ae5cb972e5ca952b57ae5cb9c1e2068b1b2c6eb0b8c1e2068b1b2c6eb0b8c1e2068b1b2c8e707385152b56ac58b162c58a152b56ac58b162c58a152b56ac58b162c58a152b56ac5829c97407dd10a16b6f1e6a24b938992a64a8c850d12cce6f88d0d9b8d14129c60c2a382031a890498a219314432629864c528c18fe22f3f2f2f2528a913423890a0e08979494258b16a21949584e319238153723892846928b93499a91342329694612a7e272886624b938ef1a495b89c31283ae944394616e3cb0422ac116979b1874442287e5a60339a2705b38184ee3e28292e19b0c2f2f3164a0b8c0e1b6f8c9a55d2ea6929f648081d3a1545b3614ca73a06670b69c19207439a2a8c68072140704c66de0c4c00092b9f141f7e2a6ada41a831125282e9c4b0e641a48d70512175818508593c941c5c8109313e328183ec4b86662fc0546015e4c4a2cc1449f4e2e3088ccc89c4e2ea7189d0c9a538cee743a9d6464e0d0c4f02e46c965885921f112835482412406c6f4836e85544a41e1c28a18d38c69850417e3a7182019574c4e0c8e8b8be3a2f423c60b33ce6d51fa3133136306870aaecd61b4e0dadac509aecd5f38174785ac5c7fac4df2f51a0206d8bc5fc5d2a8d2577e1cfea5f8c3577e1c560b7bd5c019d2b04ef0953195e54a5f6f345fbc7f1f885aa6e2ccd72229027fc653ed63d6b5e4bcb48e072de4bc34b779f2e8de7ee0210abe5eede6fa3ae41c75fe6f86e9e06a6946ddfda952e4bcb45ab65a405ff8347baf857da618f64cc4abe4c13aa928e2d28a25595e10c7e8d1dd0e170c08a9811027bce51b1072d4dd13c0e9070889d13895c6789ad6ed6044eff076b0c46a2f35aa3fc3d3c8acd502e9fd70be1191ce2248c297d53954bf680e3dbe1ff6d4c2a7b5705625b9be906b004b188010fd0abfacbdc06b637f3f16d6c741800c89e2e4a985f3938ce0d12bac8f811ca1035265e5afcfb6a6bad34105edad6b635eadce97cd8c1de320823aa6abf0a7e779ffe3d1a3fcdcb3d9bf888a347f9a7b31ebe38fd7c62af5a739ae0ffef58ced288a4f733c7d754beb7f671eed8dd118cdb6867ffd8de64c145dee39161d9796666bd191d2c3bf1f525c2d8884a709febeda9fafd26c2daaa563eaa1c72c129e26ee367b8f7b2a519c9ea7e31db84c79f824f9b04bf18f34bb77e9245df57d1efe2ae531eb3f74e0e13cbe688a30ff59ed7d700f93f366f7a73f1bc29fa738ceeab376df8848f7fc5b95fc2deb0b857f3f8bb4c88bb05995bc08a33ed9fe549af1f7d4323912b97606d6f949b2ad75f2e070ee544b33697f421bab948575741461048f583a72e898d101828e0eba4b32e81cc1d7cb475f299d31b7f98848778f2296514cb35822c1f7e90be1fcb23b876a319aed0f6e27ddad43771e108d133e3845f26fed0e858fadc813f684aef0b35d12be8f87316c52a3397b987fb6469ec572c63efc4ac7fbf943c7a4f8b31fe9256bb094c51efeb5197b77c6dc62c7eec92ab532ebf8b35de21e8e4c3d467d35c37326ce32832ef7b0cf9fe139cbf68722f96c97d4c43b89583b848f04c9aabd4c382ed810b4b2c10991e480841c50900313eda9527ef458957277daff18a996e2199e46c6cf3eb59b2b91eede418e1ee47822c712f87a3a16b75ad7be728e592bdb0ae6f001da23932ea932faf78dac5097a33b4856a908a3423356dda9aaf0707dd2563a6fcf0a72e8ee19bca0bb71ba7b04dd1da5bb9417f87af975f02b7c1bbe911d6162aab5d8fdeb8b9e676d8af78d80bcba52479a478ff0ab8c0aa5bcdf88e6f9835d95ce194f6d8a9f045f4f07bc983582473a2378a4e3031604880e1f03d009f23ce6fb781d42203c62417ae8f0c1baff1ac1a36a297ee18875388e747b2bacb4c857def2fbb8bc4f9642d81526094357c8e30a5f001ee86e01dc04804a7777901fdf4f1168c59def9be169e4f3d5f7799d2e4ff5630748c95a4e61eadfe7d36755566b53fc90f523cd4147138927ca2ac5fe342b8ad363762c477a34c798f5547dd153a5bc1c9c478fcf8b66feaecde02c22abb4fe8ce62b5cce86dcc3f4e8597fc94abf276b431f5867c6959622e93c7ab8acd2300c3f0ca7d78e2cf978ee78a18fabf645fea91eac539c3ba9987d2228fe88a0d8c81fdb19cdc7cf549cd5d24cc3707a9d7e6d0cd31a88274c55fba294d77e96e73886e2cf3cd7d28e329b7d7527163f743c67e444e29e3fcef627db9f1761b32a11c9b2878ef783ec4f5895d48eec0d8a892f647f5eafd7ab468aa11d5ff87a3a00a80000aa177e069fc47fa9fb9316c45ea95f9bc137f2e931ebb32cab2f0a0d816ff47a15cda7b55ae19318fc253b45f3993c58edcf7dd8f8e32b3ffecfd6e8b1154171624bda4bbedec85e929c98863648d11da4bb277063047cbd114f1a3863ac6abd7ed1cce25ca2530bc3597b7a642f894b3bd6aaadf3258ab4e873fd31834ff4377cb096b6d6f9aa1dd94b7637b79960daa5698ad084a6294296a629c2154d530424d4f044142df8aae1eb6e2cd2993f7cfdc7ba1a8e74db58adc147773f586d7de55a5a109c35d88416fcf0c696eec6b52f7a554b317efcfaa4be5f742ded158bd91b3aa896e6d7e70945e3ee9ed1dd0d251ae7faf7679576378eba2b8dddf8fa55134972763782669ee1cc3f7637821041c51bdeddafbfd175b59d0d2f1a3fcdb4e4d3d970a2b391447787af6c45dcd920a2bb6f7467e3e5ad901ad94bfacc33f45c92957a3877f0f5583a5807cf3b49911ce92bdb701689967c812f8a16ecee1bbaa3c18a760f7f86a7883dbfd46c8eba3bdf37aa1624c92f86699e18bf0d3d87a0cb2a7d983f59cb5eabd3f125dd5e708ebec37734471c5c88ab8ee688838e9394481f741d77f2e1eb6159a5b3fcba4fd2fc63dba0bb0fd09dcd4c77e3dbc3fbe1e960fdb5e02bacf376b71041749b82d8907457a336bede2cd33b7530695529d2da9f566b87d1fdf002fdabd51ac1a3f0430b56223da15025428e60935c5f084978278d5452249c3be1dc11e92c82f1836029d4ddb3ee686c81818189093f673abe07e13f1b82818189c9f58d887818094f934a5d56e9686fccc3774c3d08094f93fc7f63229d46d3f3d1d7e9f845586943b75874b9f77de1b5e05fbf6ff48ebfcf2735f2f0bd268ab3ac73acfd2cbb48732d9d9c636d66ecf865610973f7a3397af8e13f78f4201d67ad8558b437570b7a09e2ea72afbe1195f9f44a737dec0f734b276d3aa6fe97fa97373ba62e5a0bab328abd96e9b5f492ac998cce7c7a581f7f7d3c41afd443c7d477f86a3d4faf54f630c7e21cafad7e6dec07f7f0f899ba0e3d74d0e1c7fd3cffcadc56a7d92b73fc6389f1f467e2de07f4f95704f44d7f98675c8efeb796c9117f9e20f5fab3ec2b71964e1e3f48c34addd2b28f7bb9b49ef11433be34e62fab74b4e0c3c26bbd526755ab13facc3b83fc3ef930af89d57e9eb2bf32d9f4710f835e292ef3cc421ed617b24323d8249c3b471f561fa070ee643ad223f78d80badbeb8e26d5ed2b52a4b348973ae0a39b63c279347473acce8aeef616129e26ac20243c4d5c5629c60fda1bd4dd01e82e11b1d1bd85217c27be43f81997448ee70eb54c8eef0febee9b6e0e08fda3bb0ed5edc92a25497b43af89b9be48b17b5ea9fb1361bd55801f9f9f242e26dd3d761723020d030313e3e5174518189818950e0be7fa468f411bb22a9da38ea59e87411beae8b43099f32c35040ec2479b71c903030313d3c5f0d1dd1e4871a5371fbdd7298a13f487799de08bb03903f324310d739df44e23ff6a1d573a73b53ca23879bc8f66ebe77f6dec61feedf01c1c7ffe77922c717e98ebfcd1319d0db957044e98e3214c67d92bf5fcd8a7ff7ddafd59fe1913f78a402bc262d65d8e671015a751f5c92f846b7522b1766826a346ac1d0a3f2c45b0fad4c2f95774bd085625a10814fe8360891dd7264d9c2e8a94e6efb4af3e5d56e90c97a45b8c63d6efc3c6b28675fa2afcb09616e6987e7d99df277d622afacff26682f0f39d19fbd3bcce5976ff6b479f654a73b2f4b0be671c7582fe3497555acb4bfafd1c9bdb94eefeba43f13416b6982dcd8553778bddcdb03aac5f044e58a533708eaccf33631dfc4634d3915e327c5bc127f1eb28cb867c6468ba6b300f1f7f321aab96e7737f5c4ef061ee3fcb1eb39eef241d530f62912378f4e5974e5eb814cbb1046388d0dd367417b3822e86ec62e8f7b991bf6c5e9bb1e7faf796a06323ff3eaf74ce405605724ff59e23cf6474cce13390ce6829c7e2acf773a58eff4e11fcd07d025464a1890d3c015f4fa7d5c2d5525c3f1f7dabf51a3fe31aee6050d0edaddab57986758e1ece9dfb46f6f52035baffaf113c0aeb93b8c4a4bde158e2bfa16867f8ef2cd726f8e12b83f466fcf725ceb2d2d7d11c5fe4081ebd3ecf902c8f869850fcf50b003e295404fe8c474747871ee0f40102d1d9c163ea00d203f411f6e8e123888e07c2fa3c6fc6b012ebe05cda22f067a04ea6b2568ba4337ced2c97f395af25c912b37e9c37d66afd48732def4b17daaf8d5d191ddd563fa2034fc02f82b57ce5c7dd6def13e135987f488d68e8367b26c7cf797677f72904ddfdd3dd8bd88daf773f539d07a988ff5ad0003e4644718219dbf195e7ebd2d249019eace5972582e2d7cb26c63fbe8ee698eb5392827fef87f5f1b5456a775290c6be3eacbb89bc8ee678df88ca6e77f7f4081e75370ffeb0bb77321da9f8ea6e17fe8f75770f04c85f04d2dcdd43707e8c679ec9e8d35ef77534c7eee621a4afdafdd249770be91d5ab82aa996e2fb4b1e462f8861a51039d229f21cd1b03e49baf20bdd17c33a8dbc102e45f29642612d639fa45a9a4bf08f88d4ca1d59a5a1688d7c9e34d3ea23ab73061e11b9f65e2249c2fa20fe9e4a65f402ddf9228fac526c459ef033f920e8c25f3af924f54920f16b9d331edaff90e33592c1793f86ebbc438fab25f127a9dd2f7f083f5f4b7e3c7af80e41ca2068d08180090f6f87c783f5e204f10cfaa1030f234354292123d8640850abd56a8de0d1b5f71219c12641cad0e703f4033a3c90e401a41e42085fadb258e29a9831f51cbe077878a0460770d001b17b08215621ad962ca7cdab3b6d073c0e8c8103528034cfd1e672d69f0d71c0080e040d21c42a0821bc3a853850da00141b68d2dea7f255e8f319cd5919fac376f84471f27c1ba8a1812d3d84102b1768e0eba9811a98d802131d58e13963e24806ba30820c0865a03100457b5606b397ac6f54ef1b59992371af26c228c696f49f655cdafbb23a43552eadcd1ecebf9ef2d21bffd6445c5a8a69f58711c1c0033a0c34e99e4e9260e006064cdd3d84102b3c69ae0b30e10253f41042e472d22e90800bfc2cb1a58710c27b7c5673a47d1dadc59316ba96c8c1122358e248af42ea4108e189e2046d7d7dd1ccdfcce10ceb5c8286ce0255ba8710621584102e0b4cc002b8bb957467011b2a60c5104278487d1584105e2ead87d7fa2af44933f5556dd6c2f7e93330cf31f40a90dd8d597f2b6024d7c715e8308e8e0254bcf0f35ff21bea2870d4f4fb7c880241dddeb5310a787b147851428aee8e59af4d9adbbac293a6c4874b3ccb943aa63bba53c2bbbd5a9da35b3bd44d204b7b0f4e008a090c757f2c56c2c049628f592f02a7e8139373763fc83d95acd25cdaeb36749bbdf768caeddf9f0d75b74d7713587577507712c8c2535df2887a32ef53feb3a1214386a852438688e2e469b586e09a90e3e94342848c6093e7d1a3cc74a447866021477667889023bb93f1874c92a8411260123f10d802010f40c00210e8a183c04c777bd673fc68718e176b628827ad9623db9ac33115cb18c62eefc339da0a7afe59c6d452d8677fbc9a284e9aef24af7d911c6578fc6698ba579717fe4a9cfe009cee06eace01561c80030790ed3dad26e63bebbc2fab56745b9374f70fdd215d00a9eceea2ee9062904a0d80a201430de8babdc77306de9244c2d364c5fa6cc7bf2caf3691780dcc45985ecff3615e9b238df97cb54a96bef2907000123f90481dd1832352d0ddb0ee8e3822a50bdd0d7627c502527ca4d4d0dd4dba63800eba7ba83b06901d037c58c016cf6b936cb1bcffd824ebb33c1e3d62d65ddefa3e6779a91d4d6cf64fa5f2bc94af523c9a7cfe301745cac43d9c8fbef565fc6158a7c72c39413cbde2ff55f8b52cf17fccaf8d7de367fafa8f7d31fbe10f53ff2f12de49bb16fb0218d02d00c90286747792ee14b0457bf8fb90f034f99ce5618a84a789c7ec4c56da3bcb3e41904e51b4f98888028c1490f266209dd197d579a7ecafe3d26b36fbf422ec8aa282281880324577b3ba8b42bb7b4977516674b717565f21e169d2fa3e6779d9da2448bcf57dcef25433cf592a36b1d0105590d25741ca949087d5e6984bfb23cda2b5b017a637cf232da3c596d147b48cae62092da3655a46f368197d04080d1c8eb36d465459552107dd1591d4b53a63311afa0cff6beddaf1c769450be2d26b30ff6beb9643f796a366cc79868f29f84cba3755f796da0240831e9e5069b22cb25644d26d84d63d4935bedeebe9cd09e0e2e9cde3fc9bb13fbdb97bc3b109600b80c9012624d3024c504c46984a5997001b9dee36d25d00223480aff779caa8d1acaa1411473c979688547713f152fba29664b3afbc35da1bab51d1ddb45a086a11f0969dd17c85af97c919ce570d3cc2e2884a9e33daab4ef088088d0a2f0f874fcbdddec2a288319e22cffda07b89140111194a52cb4646f47ef8c25314e70bcfd70ccc1306623aea80988e47dd953d5867067eae657a27a9e3795e7f3c5f247d87f0efcb64f4e637a2b87eec439f65aa2b53ddde42fd404a151828d0a091c680d4dd4d33c593190c0f2b8200b1c1f2c50d9e69e3ebe197acd2abf3a5930f5fe01b75a99666bb9400878b8e0b134f56eda5f98f56c83d0c2bf10cacf3eeb82841c91204adc75ee1e3d2064e86890baad40b539cee0da77bf32e5e8072693f53b7d857199706e8de00d0bdd9b0dd746f35740145778574f787b6fea5fd0f086ea562a5feb0eaa1ad2e83cec9146f5e1bfb5aadf02b0de843fbf309e16a29acf0d9d2dd220c46eb86640322a75af02fe9a19de51fbd06db3250e204d0bd5de9ee21ba236b3a0b58580290eecec21ed13a03db8d2e6458509510131f3b0f423ca4a3b7f014613397634d0dcad6deaed6cc8c58c629ba7b06e6397ac651371bdd1b0ddd9b4df756a37b9ba17ba3d1bdd56c32ba379aeeadebde62746f32746f30bab799ee4d6683e9de50dddb4bf7e6d2bd9d36ae7b2b756f5b7fd1dd63e86e3174b717dd1d86ee0643777fc10bdddd85ee3675218641c4d2dfe734039df844f8b8d54a42ca37f30c5faffcf8eb360280ee8aa8b4f7b794556a79788a96e8199edd423a9c3f73b207d01535be1eae4af21caf2d42fba389c4c39e692d3dd52a958ad91cdc8738419fd73af6faa41dfac1e2b43f31a05c02e1a7d7669ffb950694ed4fa596fc910ed1ec91a38924fc6bf38495988a349742374ff2935425a150c6f648c6654ff8341b5622310fc46ebe073e4713493d72349178d5d2f0bd267ab63fee79e47f38165d4bcb5f75783a3c1e462f14fe387fdc0bebea71f853087bb5ee628bc810d08f7b35b15afc7d3e1d3f2e71edce0f2996552b4eff3ec72b1c8bd90fe7cdf8470be672c7bdef2bed018a701f3244c8ccb3c75737c8574384b45a31f185848c7426444e24ce83ffb559c8dd13e0ad96fb8b941c2d68ebf77d44fc06f7aacd5824c779f4feb35c624c1d675a4b1767b619d7320d69e984e6fa14a4b15889abcf1b51d145fefbf06219fe0c14922d2132bf071781f6c8ccb3e7d60f7d669e3dafee758517145e56ac56defafc17ac36dd9dbaa1c6eceee5a36b5ff4122768c56e09b40310f084ce6b048f5aad6ac7d182affbf4de0943400d773cc493ee577e6c44c5f922ff8b445146f18ed70bcf17d8322104d0e5080b9fde8c613a412c0173da6862ecf4c065e90ea95d725f14278f4552cb54a45949cf0836e119c126414744e62d5df3962e215710b6b1ea2384a5bbaf1ca1bbb1e8ee2b806084eeb652842add4d842174d72ebe59a746ba78c407ebe4a9f6a7565d07b0e9c6c100ddbd1d40064679b05a808205aad0dddb1411982068c60cac00d2dd1b012a100490120ef04015ddbd41c00a0050dd9310147477e90811024401023820e085eee6684ca00a1632c0441556badb650317d8b25dd11a430fddbd69d105059e7891012800e96e1307be170dcc8040d484eedeae80f1d881101170b2846e5c7b1f8460cc3c4377eed42449b6e2fcdb0d44c7640adabc3c76783a5895662f6c86e78c8912d967781a316d32587413e1a43d904577c7ba5bd28489a93dd0edcf922aa1053dd7f7960ddddd80ee66d2dd4f04c00f2df812024c07a1bb4d40e816c5f24714278f0e0d8c18c8d8ce7aa340b5747be243774349b4cb16c057b58cb991fda985f367d3adcccbde6eccda4bba7b6d8a7fb726422ee8849ad03d679e3d9d900fdd5de9944dc745778e33b03ecc6b79bdb435df61c887f8d11c439f57922a49729004a9bb55a9e9d8c8552977cf3fcf9166fc6e731257921949ba083f04e9c6e2a4b97ee9e4b1d77f5a7e980f092dbd1f349623ad1489900b564a84ee7e7517a44477ebe82e280b0d561b0e91e3cc38ba0bfafa06f50479bbafbcf5aa95b0560b2be92eada0bb11d01d900ea02b0065d101c90048054014f0167e2a8a936645f163bef216be31f7d2d62f9b24397fd6fad102e3eb7d68ab0ecf070f4f070b16b29ede8caf87040ced79d6bee8958fbeb65a488a80448af696e7e9aa55ed8b52cd6da0bbbf3b2441bafb024b74ab523c96ec58a263c9081ed119f45fa45aea614cd20c4e72a4fe5424c7f934cf25cc57df57ad87e458c2bc965fe62b2be4de47d26cb1381d3f154972fa7dfa335cfad3fcc14a71b63ffe7d9fefa0cac177f01c9e83ffc75e34e53c3849f32bbfb8838aa439058a137cf1e09e5fbcb688ebe8f85f5b6574957179bfef73cf7f96a9d760be529134bbad290f9f088a5935f14e918eb5bcac5ced8d7d3f9fcfece31e2e417182532c657feb574bd22cced9cc30eb36fbf71f7b7d46dfe797626b73489a2f35caf1cf25395af01327d097a9588efe1f7397fb00c0c6aacf0fed69ff63848702d0a0004bb4633164a85b9c3853b1c47f49ebe41c5f31cf88d6c4cf93863f8ef4fb1cd7e93f5ad0e622ee65f0efb520ce437c471349ab158457fca23fec431afea519cf23eeb9ab7c55cbb496e368c154f84734e62b8a695fc4da2125d9fee0d0274f0a5a8c5df627fc24d9fe74d1dd39baeb9942ed7d087b42b0ce12631f71663b8479f45012b3f606656c8dfc486fd0cb6650b6a25058ed0e4f488ed7c8b5e18bb089690fed7fc46969123c8fccf034125a1ea10f2d4f7ea190f6e09e0fe9c5e11351bb6f64414c7b669e3de17c23f783f0bf582629ba73bc9f271372bc46669e3dd5d22598878ae47f917cf43faefb8fe72ca8d26c4ff84a92643c8ff02809690fcdfe7c9e59485669aed3e8c54fd283c3f9464027489c8c3d19cf23a1cf0836f9d814aa7f048ba28b8950aea5e5897d9217497a87e695914abafbd45d0f2ae86e55773d207183e7e98ec7c778ce9b8f88fc2df3ac322a84ff86a1ab24127e55f2b2f78978555bc7be9302fa9ce591a5e792f46b551f0f17e2a90f7bd73a0064d000a06de8820d36a0b1e1c8866b430ddd1d035ae5c039f0d10c0a4a017939fc46a6862b6af0410db8061d35bcdcc0e2c6076ec4686ef8d0d8f0c2091b1cb0c143c316342c4143830f5fa0b1f981cd91cd0d3435aa34eec1527d3b82be948b7446abd5c9232805f4b9efc4807a38ebf395b752cec3593c825e3647fa97dc11f47d8c95aad4773e1e419e83eff01c7ce7969f0fe7810757a586f0e8510a69b562f6f585f36fabf5b239a991f3b8f7790e5e98c37fac264eb0c4d5d20b9bb1796dfd988f17d639c3b4d298db5c83d5c831c3173433d080668618ccf03433cca0a165c9e71ffdd8f497dd390361a5907bd562ea93e6d1a0c18486860f355da0a909024d8d12ddbdd3e3397c2eab34e8fb907c1ee439f837630032b2d0c888a2bb659a46860864fc74f7a96964f8d0c8b8c10a342da001010d0d066868461a9bae0add1234dd0368ba9d18588881849aa689b1039a18962606101a19a44023030fbe5aa77d0d45bb6306cef76b634648f01784f3a70a72577da63705f4f9ea5321d9e971d61744fbeadf8f2a7c168b8559a168fd43f2e3397810921b6ef0c05ac3f9656219fb3bc1af565dde101ffe82f09fe55c5a07a9cc8ab259e768c4fafc67437e834771fe7aae12b27c856288fd7fa4e183b4faef78a57dfd9ce591748603d7660debe3af4d1994a0984686264d9d46061ddd5e28838d4703438b07c38aa698d2c060a2bb457068884dd3c00062c88f1649ab3544b37506023309a099b98146e68a0868642a4023b343230323860a9a981178de971fbf66feaaf6f32f9ab9d5fa3c6653be63547daa1db02fbf5005fa52eef37d5f0de673cef09c91d5d23ca783b44ed27dee93e11759a34a6595ca2a8d09a289f15206a3a56960a4e876d1c090210d8ce3681a9496f6b0eaaf1d535eab13c54437100d2a287fcd572e1a54d79ef86077fbd0342f54744fdafdb0962e9a97284dfb18cd4b93f6ae751e2fa86e98671c7507a771a16287d246c154a443342e41de8cc6c506e6299d4c1268c810212607d0987a684c291ad30b0d4785ee66d2345c0568b849c3cd74125f793256b5bea2292580a6a4034de98566eb01cd7644b3e1f0d5fe783c40a4803c9282ace93e5f2ce10b157c1181ee0b295f00f9c2c462a9c4f00031b8bcf8c215bc188217485ee8e0850d2f640843953070200c621870008311c020050c3f80810730b87c61055f08e20b34b60c610b145b685b6ef08210bcc0022fc0bc00c30bdd85157421d68556175e74f1042ec52067a9bebf36e3cf6334e57835441042eead9d1e67798e1c9ce68f51d171a675357ec62d96c7f23eef6801e9f838cb5309c9ac9802fa523e03ef7cecb53b2b157a917504041029a02f6605e0e2acc11cf4fc139a650bf3d50ae3495ecbaa5689b3bc4f258a93c77370203c07175a8914d36a81dcfb767c5e135f9c46b474e2cdbbfabec7655853fefd6885bedcfab29dd15c9572dc12c5077ddcc31f2e45d257f4f396f7bdbe1dcef2cf6336463d633a7d8890fa339a10f097cc6b6dfebfb1d1de98107e71c1052e9a206b19bf382b2de271d1c4662e7070010bb6a2e7d2ae7209e30213cd85a3e742eab790e4a9301dfddad816a6747bdd16a2587bb7d083a70a539326b4854e2787eeb480c5b53065470bb3c62e33722d04e9a6332d5ba61629b440c0bab539a47dfd529c46add6d0ff8dbd685fb380832ce42cec6c81050d6081070b37ae60852b28e10a0fb8428f2d94b0c5115bf4f40dee5ec697621cf77139ffbaeacb9b53fe4694fc2f72b7d96bf78dde558fc5194be13973519caff9a2b52cec79607e5fbd6cdeafd55983917fc9d5cffbb095eafb927e5efffe17d5895f2fc2a67bf5b7e8aca0457b4340404978bc07614aacb084155c560052052ddacb25cc595ef8344661e02d2d3e7a3183f38808158e40051750c1082ae0c852258b07b20865e92960610a495358620a760a35a460450a2590024c0a3851d8a2db1b777adc56b7b8522067b9e3e9b549f3ef0b6b29ce8ccb9e24df8bf6f5556dab45fb9f0ae4d86667b97bdfab4ef0f539cbbd95c42bfda8c6ecf47196f7427e9fb42b718234d35bcaeeec719677ed0ac7fdbc28241105044401480b2fbc1bc431cf3ccf5b23cd0118c0008a3cdb3a87f8be207e9c425a44408b1f2d60a040032818412189b5f7734c555fcaffae9e66c56b9de6e3d54452f57d292f31a6dee7619dffb7c837bd24b85a3cff82988eff37569f087b63afff58486ba238c3214f20bdfc582cef136c54f8b14e0a0b39c18abed40964f8f9c50ff187ee851f3ac126294bbb92a4486ad29d645304d2a2266069c294226ef390ee9af035a107af09364cc072951c49a2e4081398604290f7e1a389e4638277b635c912b27c18c9d144f2fd2cc18af696d04477376d094dba9b2e41c7126e1653b288d2dd338ba06e2f0bf169cc6b5324310d9550a53d8ca9387ef6518212ddedd9ac84991252fd4a8091042ada0b1fe6d78a4f1bffc3247cf4e6af799893a0a35b86842dddedc9c292c8436b656e6b2d631c48a0d29e2ae5a1572468c0e637a20d19e2e3ab212131a0f1b38f10f0978494e7c5f20ea989e21c224e6cc921437c84601131161ddd5eb51e7eb64657a2f0832b2ab842b637946dbdefe1f04e0babf68a91ee6e91c8159bf17dfcef39c2963e8214dd4710bb08a43e1cc13b820b1653747b5eccaea8af7cf5d54471be3e7f6279736961d37f0916140beff6feed57af268a2e4be4f6475be968abeb8a2c5c31c5cb8ff1d74c9978d888e6150cd39e2b1a70858ef6fed25ca963ec5466842c2ef762e2e38795424658c2abcdaf85a1cb083eac70e1857f2979f44ebf0773fdf1f54654f63d58430febfc4bf35f5f4dc72e2b505869d2edd1ac28fa0c3facef78ceacafa65bb9a15b2caff7f8f0b85091201fa77d15af92227cd143f091ddc113fc2545004011ba0a145586aa7044b88208503a2218f13e58895fe1cf6fc563470e0f0ae7675ce9a762d5d04b5bcb60696be1b36a89ebc77cbc4eefaf37d6aa0dcbc7a4873f84150c61034358c010123004030cc1c653a5f07cf9b45a439e03136779aa9d1eff0ae42c0f87f36ff8cef2543b5240cef25ed9da242f7fd80b6114828d1d04a116041c3e1eff592e63f7692e8a1fce71f585ef3303f3dcf97e96ebf4951d720f8f25782958a97740800284cfcb6479338e6a7155e2fd40053f28e20702f001161f28c007a00f6e5891d41e8f8a2705f41511c5c9f378eeb45a93acc170ca3df04e4c633e9eca739d19d3947fad5ca7675b453a45d15ed1ce68a3cdd38a29f6c78a285f14be1541dde3e3e18f876b5fe423758cc3888aef430fb2f84ab33de0a107347890041e4cc103920742ba1d74b1832a7ae5318bf3bbbc0fd7bee85f680734e8400b3a78810e22a0031d74d0e5a08a1c7c0e3a1c24e12005dd5fed7df8bc1552af7d510b7fa69709acc759dfeac3b5f7211ffdcfe7ab2f0614fad0a1cf5b389c9f04d6e32c4f95c2217dd5bea8d5c2b5f7a1d51ac2617df243cfd8824fd6543b789ce5a9667866ec54258af6ce94acd2e918478f8f1b3dec33f8b1d8ab70aaf645b52ace213ba365b17c3d0e52dddd0db2dc8005dd0d8ebabd59a6b4af37e8a1bd9a98c11bf8a4b9a85479d98bd4885ef2f31427889f878a1262aed6e69528529951493595eeae36c0523bf2309c8e147eb6410f8ce3c95a9ee468c14a5d3f7694435aada1199e464471f20c191212033a726477447182add6500d64d0a00a1a34d1edd55be6dae7fa63155734ae22a79b411466d08119f4ccc0a6bbbd3c65ef35d5f7a5f0a5d5ba2a4c4dafc190783218c014627081181489814b0ba8f8a8f8018324181801060a80c15077e339cbdfd02b1ffde72c8ffccf594378925e13efe7acf9304a9b247e010a5e007b4190f6fe5d507301ce145e98c20a5330d1ddb83c3a7a219cc2def7cd4f14670bb4d082285a208487abfdee5b16408005cf022444ba6301aa5bc10e562083153859410e5250410a12482184142715e8a0bd5690b3bc96cb592def739617b31e13ab1d59ad20ef13e7df8be7ce37473a3f92cea6bbfd5be632c69a612ac2caa0144c210529e8528094021f29d089228b2882104519054e141c1452402104142e284a2898a27b87cb2a45e22da01ea0212fe613dfcf3fce3bc9d538f10ad3af8867ef13e1a1a5f7491d75d2322e89bebf384a5bab4adc537ddf8f13af8e3e2c6514364e4cc3cf591e8c1ebd18b3d9ff8d48717a6f6459def77d1eb3993aa63458aef3ce5236c37f633ebdd2262984829c1304e104b413f49ca046777baaa0d46332470e2f632b622c8aae1c39dc7b11462b0dfd67f9ab0d3d466976e6abeff31accadf77a615a9588f3ef0c4f23a238c1d90c4f23add6d00ccfd9db58f5c1a1cfd0ac4d60849c7f5d2648b53e13d427c939f30a34054bf7a4b9a64ce9ee764d0992dd92747b9f08561dea9ee0c2135474b7b7e4bb9647142748896470de7cf4459e803d81c3389fe81248e1e50b7e083ed99520fcd18278ce420ad2526848ed8b86d4de0721e02f11450abb1f547b1f7cfc283fb42009923ad3f14990c4892f9cd88213217042891342bcda7d23d5d76a59fa2271ca3f95500ae8f396cdaffcf85527f879ece813fa843c071f81134690c4081630823b821f46e089208b7ba258c6fee6b0beb7c3599e2ae59fe9a5ed70967f3c1fcd3f158ff77d68c12ff621ed3b1150e96e4f044988408a088810c1d74384f80d9f6a470ae873d610217e835774e7f8f78b261211d8747be4fc99631c5e73c19ec90b85c08a982b044d74b76cbe5008749a7042131ee8f66e09827fef87b5745cfb2258894bb7395b9ba426fef567e23972e4c8e11dd1d85fd2070c52d266228fe72ce8f19c9118df1f4b5c2d88efcc339c9748ab35f4ca2569ed7d0d191202fe9221414a21e02f098f3eac43e8e03144a389a8e4efaad7a99e059d424423a2010200431100203020168c478462d9704a89caee1480037ac85c904c9b49b330c729440c41c4100000000010000084410001d4430040b59b41698cd39138229bd43c3125ab1b7187a0399ae379821afb001729652652c303328dabc4df413e69ecb0b89e51127fae4883f5fb04ec9952bd58b11dfde5609c2ecfa7c0162ee9312791709cee7e4ad0e101ce8d81e8474108e19169e85ebd5ac9972f6ae5d8392aee7c27730bc707ee12ad0c876ff670428c7f13f25a64e6b1bffb2ff8ebfca1d9c75c26e23e643e6dfca3cae320781fab8735f630b4bf75fe61907b2c74900fbee792bdc54b827b4c7c82adf64a82f1a595abe05d9be3829c2d4f18269c20ee4974ecd0bddb5a56188a5b194d46896994c9e4f041e98baa91c6b01500afba8b323007336cc45214391eac7808591385b5a906526455ae465445279e2a298dcb020b37dbda388f10d6201b23eed9089ea264c0c422530bc8663a31ef01381b614a9d344bcb8b9568dddf3088fc6779bacd8f1f7bee529ccb2d2ea676ea1da348621d2112ee9dd1dfcbc11c58aa6f6fd00f2f502eff5bd07db3102a04c9c46ae5c765a03b7024630e9c712c4be8fe2dd01a86f4bda6a98bb439d42c3b4b8167e3870955a26153f01c84ea8e0676c8614ab438d2a65f7e7dd4cc4381b07dca81cc6725f13654e688d05049414c9b1e08c8e2779c2cb765d82029b1e2e1a6dc8119886a39c21bc819302c9e588c856db05f91b5aa08925b5393d52423c3ddd3b6a8f903632ca34ac30a655ce7b07e32bbfe84b43943bd11032128014947fdd2f11f7658845ef1fbdd2b427e7cd26c5ad6023255e2d65b37db9fec93e08c4c3ec9554f153952802f0eb316c3132030047880e8f66e39829cd893b4f43f175d2f5934fb03c078332bcf8137fe53e90286252545af6142610ce025d6e9959bdac97e77bab650124b6d51443e55e2ec608371faaeb44ce4741ead369fdbe1656e8e865f35f7af61ff189ad963ae02d4bd99bc5bc6c970f0fb4f22cbc13641cee172597afa3f15b3ca545c667ec432ed2e904ec43493b4b0b010ade5b87ba35e869a5bce7ad27a215c67feab1269d37bd59d4355c8ae2913095d95f89984c77d66cf209fdaaeb92fd966a073540477c1f0996cde4b6703e180cec319d9f834c73fcdd1d0347ea2e709c03f37a8de3af2f82922696117e9b2a9f78697c568c41d05d9c5ac9fe431df029f667d0736e7396edd91bbfd15d60def24406a2f5f136ce4a9b4c2e875ad912b949f4501d428caf180251ceccd1f8d4111543598b451d4564d7d21c7fc64cd4af6c834aac34ee021862f1fcb40a4cca07cefcbdd13a29740df9cebddf185a1a2726cded036952996199763ac01f53a40dd436c728c733709701d99d3a300646058c5ba28bae1d39857d668e775ed2ac3638a61aa1969b28d35731ad6c20502c775ecea9efd4506a70e84aafe64e493b8d17b4c41aeb49377538b615a1476c11edfa329ea5e94991294eefd8770e80b35845f357f87f0589798aa0e63eb84b4ea9203f65591d66ce78d9c9eebae08ff157e9c8ae9e44aaac45f814542385b3eccef02de7c2fc975ca4cf95520b89fd5fa7df3e206519ad821730d00c319cbc0c65086e1554de67a02c4f462e99c968e6cf8cdc683c013ca0498489fccd7b8d6593661638598adf0f2fa729b812c05b34d7589cf4f3bce3898010e08e659e4874a7bf61ee7bda68727c952abfd072e40221c9ce8bf0e749724de524cb08f96fddb6b4e1a9686bc43322da7bcf1591e605f9090de95734edfc9b30816249561d2d11580dfb9d2a3936b2701206fc146d9b60a0f9585031e3f1c1dcff6daa6ef08c199ad26f4e30fb99652f929a076da07ce47b0d000fef0e50f00b20b0986135e25239a5407921f1cafb08921ae9a0cf282889544163877bdb98e668211ea9b8833a827abd1211590b49036b0fcfc5f4caffc13a9faa0e70310b24a036ae97f900ffb5b9d05f178936e67267174125260af13ad0da4d6c70baca51dd0b988268c32f936cc33a488ac9473d5c73a7318adc5be55f58cefadc996bf9c03e72f7ea9f27a209e48cc9d5a97af7426e6482da73acb5c4da8cbd91e4f8ce700686e13c119b73bab30b4c84e3ef79a3d883c501957a56bd0ded52c08bc9cf4b0a7819bce8d75d5c3c5def229560d0c09bcf99188fe0619e63975b67032ffa3fe03c2f267dde6488b33e5f4dfa65474a78165dcd877788c9c30d6d9c27eac92e38838bc48d5560d66dfbe948e1ee313a543cfaa9af3eef17f313f0d36910051713a80e52ad2eadead110a3929da5deedad8214d20a4a49ae9bede14cc43d6360241b44585eb146d64dd47e3b9497612849a5f51122002783dcea407a6bbb9d155587a1639f7515061aa8d12a1888d3228f54507c011dffc6e1823ad15d5b7409ce7d36f6e822464d09bfbfbb7cf925caa68fbb27ec4ecdbec2ed63150d07239527babe0367c36026396fd49f1919204f78802ca55733fb043a4bc76a9b401bdaa660c8457a50876f6357acf3968ffac192ff0fd725490363fb70d5589a6c5681df2ae8bef667f3c7c45f64c0ae08f404e504c3b6028bd4a9a7de4fb0a0b7e52a1af52261f4cab4f66ca740576da9a5d4995fa958e973eed1af75a3a03daf9ee98d8f452eced374c0756a10eaca34d77615037d7b569c97ff820d3201d895ee1a588e49f1d342c3ea83cfdafc1a8422856471433a5c88e8e4bb53125128b99240818ab1330c111869805c67b701cf41bd8ece0a59b134e3749f2b2d06708dfd72e4cf5d9971b9171b77d6e36c3ad2ee2ea127a111fbee1ab7ff751fa3be05f91bd43a0c9aaee47edd80174ca7efa44e192f8eb4327a05d4891437333a4b8e937e73c223b8b97ddacd20049a289a3ccc8f1291698ee6ae89e23267451b8f112836d42b962ea9c31f90e7d1690ee609cc5f8bc90ef2811b8c70cbc3913fd92e24f78d43718950b8550181ea53a5f79a4e81af012a2a2a9a55e3781cd5ff79f118f8ca435ca3d644b27ac5d9d07a68749e2cd84df9d78e6940b622e98bd92269f53a84b8bd91dbf19f3d3db55b18303edfff8d241b14b8bd2631571ba60668066769684f3aa598ef43925f7966498acb0923c1ae60fd3f08b197231421b9373e0a60ec5e5d3d155d32b601655b8e585ef319af6c7d5816c78c043eb88a156051881842574a1121072263163421fff9ca25d221b8ee5baab2468cb04cd688a0bc989e707429ab4232dbfea5614b6fe348e696d79a9d33684f31496891233ad336bd515954c6ad0fbe8355e1262cdd438b8ab79013c642ff1a6c68d617cd6a3453e9b6f1d86d8c24f692adea1eb4deff5dc516a8c9159e81d8ab35f99936b898383a4a18fe9f17fe631caaf9247e77fbdc20be8f81519215fcc82fb97a567d5db9734fd93ae4e3314f4a86b2a77ea32bf5ebdc59a10780ff88ec7dbf126545aa981272106a335769489af2f1f20c2e654dbfaabd60a95cde7b2dcf1c62894b8d16f11716048c9b7832393d54f34e6dbf0952c3e402e6e8b32469fb134221ceb1a2f8ae4749e3a3bce35aaa713369319a7b1beaf36bf975c2c9c85d01999be8d6e9b217f49ac1da655896bbb95f7724770875db02cf144f6f62aa73fa3e5904522de89bf9cbcb8aaadd5cd8d00c1d4ee89ab4d296001e340941a290a77de10d97c41fe90ab1127eac089b6be1a7da138715768d0ce3127212c194086801cb8b28ab3750f62dcf71c9b58b80d6bf13c048d0d8cafaf796332875e8c13bbf406027674e7b4dc17e855749b426aed7622b21158d91b211f11904c5661bb9b21c6dd8d96755900ebb09bd7da6a8d6b41dfbeff9b174117f06cd22594623641540cd86a5f8b635121ea1d8f279b26bb62da52dafa01bc8267e85bb592985269dd12b5324bbb81621008b2904faab1cac18b947511ca9272758ca414737f66fe0f6f67c9afd2e436ffa0d7349bb7ee07f242a0a0a5345cbeecc43d61dc03d1d63340fa0e7591b3da4b23408d7f8068e840b21a08be617ce04adbcb57334a4c90b33a3c8ef4c38f37bae2b309afe12f4c5df8b50388cdefeb33c62897c149c48b735fa80ecfd0074b9e54f1fc67dcd6c49f7a3a22c2c59e1915256ff04d7b79b64857d61a4b8493845b3a8ab905320f4a4f20377e1c6beb27198977d0112ef391ed7d540f748260696e2dcdc6efaf952874ef71c620bad516a43a0bc57173512b09caf1f79a62957cff04d7d9b14d3fce64a51e35aa9b549e1bc4955bc420108d40b7189b43f3ea2f6b4f3dd34e4ed681887216d6e48d51466f460dac63fa82588890b386941c6d846e9d7ae642b6d353a52d104a5190b09120ff43e8eab3125460f1c50247471a269c629679ca6865ddfc50c06ae1ae8c79dd3657986262ded226f9813b6868c46056c1edba61fb71f5585021c59cbd219fac94f9a520b707e165a99607cf493fa3e8d15f4be03b97fea6c3c372cec686f4d1c76cef25ce52d99be7bd07a0174f8817e200091ff33e3fd09e675a52e1727b52f64c04f21a1b4019505f8f12bf85a8ccc8aa407e13764b6f63c14ec5c48872ba456cab454660705da1d29f07273a56b4d384e0eee0e98b189d25776440e961319c21c743341f7dc21c697d074f0dc9b0b3b18125718e34b49509538789eb09c284e5322bdcbc64d181be8a09d7314d82366cd85ce12a1abd687b7e83f801588b76d0207c92d23f1d128460ba8cf83b107bad61fbfd966f50de177ee290b21741d2349bf7137577e2be89261b6709014509ce72bdd85778159cb83fc2f3909df811fa57d19ebc565bc3d7387b605c53394cddc1cffae7649279b1f4c2c158ba7df20262815f8a76f061d8db64fab80d147eb2c20b7a658c9f606d1b362821bb2cdb027fa9552cde24ca085640ef475469d841ee1463674be609c58baa64d673d9d951878b7282389b67792007c38e55eca9cd9a379b9fcbf2c8e321c1ac6566b38c0f5b99c7f087e1e771800deb27e41c4ef6706470b4c7af0cb98dbbec7c8993f5a6ea04277b37c23be6656adb134303a952ae59a9b062ae31a7cdc365c8f0dc949805c20a31028f6730aece9c32ea533d7f26a44d448288e70b790d99d506c4cb03dda40f27442f740e56376f87562c51e716c2591e0f8013f1fa82887a8c4b60e78501f7802fc2d5b4040c079fb008d91aa8b775fc6e8879829ce9e6623c745607ddd36dfa27a0938b3e9c49a92d1989b07c11850a7f0ad67a432c4701f3696d6c5a502806d53d836443ada7246744fcb0354441c392bc26214341b925257b11116978650c653de232d0c4b7f4839934cebac619b4641ed205415eb51438c40d36f54e8a8bb166b5fb73820c49dcbb7e063b43e4e5d5119eb8e8492a92773728c12937e45cd9e1e2871f4989d9996dd3daeae41ec1d3001a2f50c1f4caa8d65f59e1653a0482eec5a3779e9c1f05f9efc5e7db0b7ce216a076333bb663c3668337387a0139cf4d3444c40bf445647d3b2ee0d236bcc289b8d0365822adc69a08f39f5adc97661e24c2516fbeadb0df1cbd84951787393e7ecdacdfe941540fbe8c0c4255c4a1fc041703980801eb2260e2fecd1159740a4a340e52da78e0d0b5b7204806404dfddba3140aaee55128c67d15f7b9d359004a46c15f5a9024b3c5741860057e1db93050666561419f21db971e3a6458757b0720db74d083b6fc3f677cd943e5ec2ea050e203f2241d0b8651df299e5d1d0a25fc938935ab5bef62e80ebd50d080bb9963ac46c5f086d360d193913293601d18f8e2a4c3e1dd32355c92111df445212f937aa94a821f108a7f624f730400ad3d4838d96153c518caffe7b92d0f64133765e6f04cebd97a64b80ffd015b656a7a3e7aeb2483bf8bc7dd4f5f8986ae52c20c999dc9edd573c9cfb516865907f6f5fc0c4176cc1a159e523ae9d67e771899bd5071f68bb97197c20a35d35491cf1bd460a1a63e0dfbab414086dcb8434b36a94c36ba403588cf026179609cf38d68cfef94742a34caf07fe0da6c1bec9af700b26ea1db810baf7ff8a2f0fb26073ee41c6a6657e4ddb0b766204c4c65fbee3a329f4d885d9e170116cce4e441ede7a02a6345d46c6580135739b4fd9ecfb2fd5f861787cfdccc5fe1334bfdc36210588a8e655e14fcc6c8df2d89c88b162e22297b43cde44e2dd6c07170357733a3814e08c55032a592a85fde5e9b16535444dad3c73ada77dade134fc90b8ae3dafd722807c8011ef4a94b3e8584c00dc36174d234c57381be86cd7cb79e816d3997170a2524fde460a8ab814bc8d41287a2d178b35434448c8e4cfd9291fcf83e58fc56d86d4ce30882833320ebc003c5cc6230f4b8847ab175311f43832537ad181734181c08dff18f6eb0fd689bcf074817883f64b3cba0c01379a673268837749a7c05bc3b8a1696b67561ced492c7cc8d3a6605434a47477581927c8d49b07bd0ad50a3104b2bff4687688db972dc6737d372d2c9c983ff27e4d80b92ab8cdf30170eb298d2756b30f79ccc0049d9e71632b1b32be022d0a08f4948be36673d9f7d88f2ab23b89b345ae959906fff400eded03875f39faab7127233dd8717b3a705a8ec6208aca66837a703939f26b72331482b7e1191ba8db3cc32be857b5db7d1216942b348975288f619214b30dbf62e84bc5ca520c45c145b44201b1d7c420306281f9c7017093c09c8515f6906c0cc776ac2d64d8f92e010937f779e6c9853415c087383553bbe8ab8ac29ef3daa83e0ee986e14b070d035b996725a564429f630acdbd4ef87a1db09b71fb4414a21ce76123f647ccea1598407d21bc5fe38d3b16277bca8c5d89dc9bfec63d57d02d851666a223907c84135b23685949340fc4b3e5af27492884a20b24536fca8eef0e41744fa9ee87d16972729d6e53241988e10ff09ee01acb9dbbe91fed3463e8fd5bec61e50513d2260b543c23653e0cdfc576f3f5bdda7cebe6d734e14b173860fe334ed7e3938d0793216ec646029accc668c67a89c8167f7b30e69cbd1b668c775c49251e087461cf229e0f9afb65d38460aebc5fc4cf75a0d149117bf61a4c9c1dd4e4a45700aa1d3d74ec9be996350f988a372d3d7e2cc5a71247b46d6e20f9e59f8d0cb9c2e745698d356c5d5813fef4f499d6af61b03032ec65f5b479553d1a267f08763795726c71139d0943f0a7feeeba3194d1218dbde799f4531c629c50d90efd4849a616f131c0a4e3e3b4aad86e143742a989bd8aa19858d2814e0356047967de595fafa6877332b66695feec06932d05a2240296b693c8a3eabae29519214261146ac3a427b38230922b129de48ee646ca4c601c9285f69737fb56c09dcd221f835210dbfee0395e90e55e2816a152024073a2df0199da0b7720c738bdcdd6c536f9406fe007f85960e10f5aa63779b5cfe45be0291e7a3cd7299bf2628bbd0538aea5252018569d41fa58e3b563297e37198a1c1211a5931383a01e090d9391b41576568353379cce2eea6a959bcd31a6d0fd8f51cfc5bcdd919636c966cb821f4f523c706eac5dbaa90f349e3409c5bf18b4d93e31833953b78c1979da46a784c792754423df2eea1edae268f27a8dc4622f5ab17bfe13d9dacf5128df7f41d4e698f41fd0d8d5236e6ad29b161124f821bf2dd75961762618b786c2eaf896afdf3f4fcf3189199d73f2dd274582bceb3be997ab8f12998ed9d9ee5b498f62654a69ec2ae05ac4c02750049ab699da51cfb00687ef245d2d92b029ae6dfe719371371f9dcb8be203d9df49a08cdd2486e54c650c74b7018a1c63e0e7c068277178e256460c3865747d6ab61c9385200e7c95aebb87bc9f7904ae198d10978ee4966697ffa54bc023320d492780e02e5139cb7f2ca9dba02f4599b11b89b4c583c27c830ea745ce7ffb4a23acf35efa5b03dc42d59ceaea691f3d9cea38e196f68bf50bf76169f313eef6f294eb7c8139eed09ff597774a496117110f7a7a52d42f871dffa2f3bf76957c9436e4331058e97f065137bc371a901bdeba5a0b5d4b0d84a3ac70c36e893531b5a4621851e3d2933dce9eb234854ccfee7c2ee6cb77abb88bb155a6ffebd5ef426dced57e8b34ba3ad7832e717862152a0fcb0aeba8823c411c6637ddbab380a9146e74f157b456ea55ebdf9bcc00a03e98a6f94be77e2920e9626e2adfa4702d789d26108f4f105f23075135abc5467de298e22e9e1c51b891e922c7afc63154d395ad9ca93496445ba613e2adda63204588df54fa2f6095f9b2e2aab68554c053c29653357e6f80a0626032f48ca6b5f2dee62bb19177d526db3a95655804d610583f8424657cc213c9adc9b2c851b58ed0f5ce2e0155d17b8735c28b62da95a7c40cd17a10c8ded6030f67bc2fc1b23e3f9243213ed14b1e6608cbe1f272464728cfe81a1249efc4eb025cc08d73eb8c46dbfbc19c7ddfd8ccb98bb726bb185c85027c41a24a091ed100585aa0ec38db61dc6a4c7ff676c49ce591b7ef8cb2b61de06bafe28d1f355362ac9b63352fb28f274d5b9565c07a714d13f2b2b0a68a1c9044e69ec70258a29d3f66fef007f08391e934219f3581a0ee402bb1c3f873d6f4463929ef87151fbb9de98a79f8925f2f9974b180555da0b1fd1c8d13ff40a40f3b80cf96ecd065a79d06888e0cc9ecf067d9e198892f6f348c8b6be82e8fc1b104198247819841163db7b415f737d11c698b791cb8415f27d5fd1a014d5105bee3184eba83f921f35e72daac3d9941edf555eda16025d5d13211fd77fb23ed0ecb5929fb20da1b54064b44c0216013a062222b49ae407274958ba9f6417b6df1ee9e12197de3f4b3c20d31ca697fed0cc44c2feb80e40218335b2bf4322e3a895111a5df6728bf30e51bc34bdb9669bd6ba4c673144e4290925ef9062ffa6b456ff604aa7eb9965b974b0549e55ceb679ff85802b8df50654b82f679997b5736b58d291807e25520dfd90fb6ef9ec236711bffcb7a3ad7f6ba1db1d6d7e8351e426bb2ebffc64ce5e12a279a802366c0db559027cf84f5c9d53cc2ab09e3da5b2de91c734b7224a5239b69f8a956e9ca8e513e58b6eb7ccd9a206286ddd7b1cb2c37b0db8688a4093c0989f537c1b45401b8a53fab88da9148493402c044895799e3ce94734b0a1501a3eea3b7110c929ed51a0f05f81fec98da8b74713cdc14c3fc3fa415c9c4c765853f1a6b7ed8d4791047ad9c9151c9ac066c9d09ef3d1ae4808273f391f78eccdddf81d3f58bd3eed7845b9243e64c456196479ead7aec5db9b456759bcf6eaba43ffe256216913ab5d52aee391ea13e9828ba078e70c0e3194a962505f69b5deb58385e8f3c56c29c78127157526e317354562dc779f4bdb8d0e62ed4c8ca89b1cb65e18d497b09bfbf91b2a1868e3737c9f5578277537fc9714a6c53bc9378e4cac16fa37ff7e9df7c53320d789f5070a455e5c660c352957a871c6f54bc3025d0c7708f3dd80c2d04dc3b8aad5cb6281e9a456e635dbe1e315ff42e75053d9b379cb9741cd42c2ef112ff7566e407912faf7dffac2026b64e7cfcbe7ce627be4449553a9a9332e7991443c6fcb46c4e072b9d83277b81fe1a72c3699cb4180fa7ae51c186d16fedb6127d5119587cf3d4a37155cb4dc57579b118ec247bfc963039c108061f5ff728e014b28127946cc179c4da2031fe5d3cb13cd527aa21d0b3ce4a3a3ddd6256b6ee869842e9985ccb3e54f02ffc1a0c12fec97cabb2e1b306284a7d6df906de5d3c39b8fdde23047341370f7922d4b41039ccfc555f486338f843bc8379c934df4907a972ef49a50d8043483bc0d78ad6ae492eb632fb06bf168a6720077f6a7fb6c314f1c8cc6ee1e8cf3a4a03410e70c6162a23c150c7da6330ee64bba23b58253c598419a8fb4ff5589d2cb328fca2b2102b98535b720615ed05e4eb4758da2398c4dbbe87a8e93a7e87ed0af4f25feebfba1e7195bfeda4cbad2ff81240eff0c157d325063ae9b21719d20ee7f1fce780cecc1d47da53abddaf33e95d756a176db713cf73387e2db7919707a711b57677ed79f1c5e66b23127cf36a317ad1d7e7eba52ef4c0f7cbf5321ed2b0cd6a60f39b76aa6c55300d159fbc8c3ac4879d70d24009a28882eb8fce680939e0b5b88e8949259a0c74b550b05680a088a0c3dc5ff19bd3f5706cb426669dc7b7a1a7b6f59d03a5313303fed6486d3f0d687a38de3cc2de2b15f859c3e3bcb3b686da8757c1374e6c5964fb6d17d61c1ceb31904117de7623d342df9c09718541119cc160a914e1d5f28c88bf9352df9bb347195306b8743e1ab2d82caac5c70e56212f0fea09429a08fd0706348fa38f1558d26f672d4d14c2d9e415a5d0e7015f66e426cd836f2fdde7b7663bd80a0bf86b1cbdcc27761466fbcb36e15d7cea1d9fbd32edd93ebfe62d9781e28cd6f23b578e2b9c3fd2ba054178c2f8ab29e2854aaaa9e789d95c2bf4c254b4f0903001b00823e79caab894c5720e673f56e404bfb877c82872bb0eed7263dc3fb96abca3bdba817d0538310290c98419849c60950affe4a6b84d37ec5f58f5815efa12fb524798af56c696e435370fa8c723947c7d5e5daaee86507bd908082a67b868867d66f7c5b4698802708fd0a2d00234b1fd3d3c50309568711d4be1aa831d05061c94231cb88a112c8e6cb4c2026fc252b39100ab2d384e54b730b137a54d018e5960ef4d0130cf6231c36e1910755170c77e0fa67b71d71500b390062ce8511b685a1b8a72ff43523d97fc56f23000c820fb97be4b031b3e491e9ba13edffd4dd63d9567e718ead717f7e9f71dec372451ee22887b6eb0e050fa70d04a4bcb9b15d94479c1fd80586ed487472e6532ace0626cb7f4f11c4046d76c6d107db8a97dd61431dae824e18299b43bdb3c2cc4a721ade6a007b7b5624357e265595cd113552c9525ee575f39bd2f6121884b378d48d50af813e8f1a98418061d670aaf2a9598c798f0e4a834056f964318b4f0f305b0ee6283e960140392c5022d3d0c73303fc8b34e355844833ad01b5c1a48db9025bae15946e0b19a7141df339b9650a80ce13b47bdfab75d7ecadfbade89d8c7de3a523dd437600848d990b6db0dbf3d40b79d06a7bf876680770b58eec7ada595578cb1e1c7d4f327a61eb6f928784ca8f8613ea50a25ac54ea7c3c745f78c1207c23fcbf157d7fb15ae6924e995a1bc101dd046c63cc52e2ff9eb21cdebfdb688523fa07771f28f4cba6bd3fe82f80d34379e1d017da5cedcabd0a88b14a6b76e9cb41fec14a72c3230cf4e41311dca7b5479a1c98a8b06bb932b7683893c802c275c9002027115a534509cd421a701892300ef3f07a8ed78bf240186155010609d39f87ce4ed8eaabd15297d0af4fa353b1ccb8a68348f03bc73f7f2d9b8d9db4323b3e430a3f4fbd72ad70e10fbeed6553b7c499ae60f4122a6777075754793d058f326874cfd341f41e82029bf997575015ca5925d75717427c7d6f84bb29ce5bfebf1c2ddcdd793a2e92f63cd5c1d350986009879553724928371c60306c4d0562d8269f6e7f86a8671ed7fe09fb2ba82cf4e955a4fed8426d6039e9f4495b72804cab9e557ae41e8b2840d815bac02627a317792b732a6cfae2789c1c4f222e9f5c02b3f0b60bb02b7e3d70325fe50008d2f69561862fdec58ba68daef3644c0f2233055876f28bcb0f7ef78b41b9233a39b6557540c134c6bacf8a333d6415ec8a5334e1baa0e0cda3b0050e96091a34abd5c32475dde1b426a334f8911e561ad650f0e2e53853423054ae9810ea5b8395588941186bf4e497768c255c9526b800e52ea7d58b3f83be564811f01564aacf0535d7dbcca5ab2ea51f5e4ee7e9c0d1c151ab75bfdef0f2cb7ff43a6f2801ee36b4b9aedaf54caf49a829cc45117a00a6d0dd079e50893d6197e7f68a66c15e3926d8a9a470f6d5350a56ebc1ad174732ed29122588c9051ab1c7c13614398c164b9c255c5657e1e827394e4806bc62030174bd5f1bfb89a125c62b93ec992db0e455ecbecfd09617559bc30de041567c90fda6dfa73c7b124dac044ccd7b2637ca69e5f1bc4c2c703e3e8b635b85624e272362a773bf38eac8499911c0b870d0f7e267fee8cd7172de44dce4b26a7c6ed5831ae5cc8f9f8654520ae4326a7699339ab16b5ef4ea5e8bf4cfeca9978516a8b784b374eebe1aeadf1063f929ba5cfa02e0f6a680d38da0a48fe65910321f0c68d4ce9d99c034dd4a2fc60d887b332bf281db152eb39907ccc6e7b43b794bb7d5ba4ed1905a0e0732f1be980f84fbcccc23ad4e0c551a263dee45c7b1c66193eb787e8ad8d48f7a97edab4f8c008910623e3c524bff9d2213bc26e37c5a6ce24b88c16dbeb80208e72c4ef27358c8567000a4ee1a381aa7cc2d990ac043eadc9ef8626afc5942b42ee4572a89a0f1e5f6aff9a88cd80632455e5c7a40b17f1d73d8ed45707fd4c3b72df429da44b2e80024622421a096a30a9a0181892ff11b164af4f84ddefbc2241600ad833a2d6de7aabeb1a74e5aea47c19e6d63e7c0d205028e446e805653a4daf627e314eb3edb93d0673a63728bbf635730e6e618bdfded5d61159a2cc6fceb2dc7bdb3db7185f920349eaaac446af16c820c42132988b8bbb800ece575b47c14f0e0875440956d22915a11952c059f82a9d4f3aa4f135451a02d176621d1085b030a212f164d5f56f3f707ed963d78407a5d8aef7f2cf1d570a73c6303e9c87b9c79ccbb85feabc318486b8ac06ee1fb90adc90f2721919ca1f3eec41db8a072a85d00c1a3cac6e4369244fa38e69c6e75ec0ef1d30f05f82be2bd575611e42983ca34436bca095e744c19706f2d2b1f6c1c42a28a8129775810ecf0e533630f1571c7be8b49cdc441734ebad2aa65656450e4884e16c2ceed88008fbc8dd4ff9872b5c48fa23931efa13fe93b62d687c3318c83a4f6b005f365f30f5eaca6f0ce38031243445c65fdc1be7ec5109fec0efe4503938a3a0c8ba2deb4500299f748993735cf944020ae13be4c05c126cd074ca414965d008908ad92711e2030653e6443dfee6f3d4b10f5e8ae7c57a86f672b0db659b40d0878170d94118e44e8228a1979d08f94f3c88bc67a66d446c1d12a1e196f138bd386b066a87da434ec4b5debef30d7856e8073a33d7a76ce6be64ec02437897fdc4a11645cce863c6781b831980b2243dd4b36e53f04825bc83bc069acd5ea46deab0cd9916a34a544138835534ab23fd931fb26f0d4e69abe6f9a6bf3e347dc7f9b7679da15a4a37ad2f7d8be7f6e3fe4aaab5e42b4146df266373be42447012cf2b1210e757d179a829594a310b4c4b590ef5ab9be3467596c8e00bd5be0106c0b06da50aac0cb1450ed13fde4a9f3ba7ab6f1587ee6d1a611b169e175b7d625c0b47633081f7b6cd910381850482b879e0e6f37a64bbae739125e502961ea457963ed7b81d6c8136ab488aae71801cbab8af29dbc54fc1d9c761f720a1216f20da811ccd16c093349275798538608b8677b9a52ad956cc3a41820e32e112980df24ae5d75c853f71602dbe48febd55e29f416026276168067f0de10f542fb84ac68566eaa2b2515675be0b2438763d83ab29ce45eb17d8b1c8c0c114093d083839db40184e63b500f3b457064456e3307da9b91053112b90c07b33de3a0e3e0708f4887314480cfecec9e29157466055f10a33062956c4da531fcc59f9cb58a071f9da5f1df761bc0829f9525b80d3ac6ecf8eb04a0b2b58285b1407bc2cd3202a8a76872dded71edd1589f67ee46b574b7434f0ff6396ef8bc229b96ef70148ecc7fb9cbf3e47eff70ccdb5c0b3b2fdc77bb806b7cc2dd0f02195f6d8699fe18c782b386227fd85f1cc7202e20ccb903c5c34f51e46443840c2d24510bfac9da41f0fd4461736dee27b4579f5ee19c859678ac4b1df8b7cb1fd410f3209a10dad99f40286237fcd4f45004a1139a044b8498ad71a5f6820eba8bb6e7e8f18c912d2ccecc072896bc58e853c4f1380a14645a84e51b2b3bf98e78bb11fe8148bc667b1024c0f403d202a353e9be2eb93c1062c4078de3430511bac13085e9f29fe99706e2d71eb38bae9a4c63d2cb85a0a82d91497a3deae27ba3a8040a774fb447ce3aa9bfe38c4fbcb489323fed546945f499c6a297b303e49a5a4a977f44db5c846c0a85bb6ac697e45f92b53782f3020b21c55a85c88553830426b4d19f92a3730804cb4dd8c1160209e29c756b23ef3dd023fcefbede10104186e69e09f88fd60f6fdc57750293134399bc9f5d9e6992017c8328467df1fa224c24aeb969024a099deac706b66a2806d95c94efe6a89a098311d44915659cd69aa710957ff59914cb15acc9bd4435d92843bf7e547888c11ace521a18dde38b8128529c1d4790d24c1afc603f3a488991b9310a43049c264c5db23359351c9a3cbe7bde063dc881be092b89063059ba85d8a57c47b722fef8aa55c8ea3e360428f9df8b61df42fab37be627b98928cee76a2828fc2de8dc97672b7d43a60bba3d61dda693d0b7fa9956984193abfd7ea6ba373174b3c37ce63905efc4b9b5687e01e507d115e9d9749c381564108da740029a9bcef1d6125b6629e3904e4ed3bf4910e69104028acd87cea966629773eaaabfa13bef59dae42e69297f3de5b9a0e1208fc87eaf9deef96dd1181545a69938efbc70612abf2db344c872fc428eb0f4905c8defefbf85304348b10a953f94c28a390b093e715e25fb9014a14111633948a63366fbc13145a0b3421c06f53a7b1a45c093b0be28fdf36fc7baffbbf346abb741d1fdfc68fa1d38f21476f574cc80488b70a8663992f3aee1e60b2a2ce460085725b3c91edc5224ff19a9baab9c6ae191b0831b0ea0397682c583a0e107c7945f7d033f5a11f98b98208cdcc7ad5c20ee5ec59c12b064e4e1fcaeff073eae9d44e7e0bf2d34344845da36fb134a37eb039e71d0a8b69afe1ce6548487a5e373670a2f3fb6596b91dcad415035e39e83c76e833c3b4f86b58b2ce47cb97d902f04188cbe9e227be99b1a1125709f7f7490171289e388a09a2da2c4f709c79cc4bfaebc4089a7e3bbbff4510981f4f117e5e8ac95f9738b236506d80f6536ebe5484bbc8cacb38cc310ca7e974c5d11dd3410f918ea93478a2675eba9f71e1e2f39028289c932f68df5118f54cf5233431d364c6f56106d687ee9414c0bdf1bb4272eec16faa715d729818fa7487e1d8c24bb9b160435ecdca71119609a0e05d827b60918bb43a435cfb96cacd45ff9fd6f6e738641d836e74f11765f68ac45e81452ab0c64f0f0aaef4868692ca95169bd5d8c6f5579732121bb9afafda46e016fef6c749bfd42b669ebc62fbc99b4448dc611858a64a8b9cd2192731b681a495678ce4fc6bf85f15be7148fa98a863513c4e8d2cfd8a4786b2b0a37e62eaf5e280a5ac57a5366a5c463ef10b9b3d5cd17943786ed1cd370140f4f8a2408bdd3a1575dfd33449cd4c1b5479609de5f1787a0c7cf3e45cc46eb4c32ead5d33b3db7ecf33a996e508af8dc268725c107eb4d3e391c2e0019ef539df631b0da9e1802e3d07da7e4cce69d61afe548912327701ce3b1b2a813f19e001f8e698e68960092e6067931cd809b5c6b4ce71677fb2f7cc2c2bba18a302cff2fccd23e6a815f2646c80788335abb67f9f19c4cfd18af1424d2ffe25b15efaed5023848378aa2fad0c09cfadbc3c1bff38c3f8add7e1320486bbc89cc3694ae101f32bea26ddf52a5e1ea4aeaff6aebfb1e1a4aabf1c91f049c632ed57e7d9410d0e823b01cf84f46ef73561286786c1f0e87d86301485bb772024bef67c93a4d467e1ec24a227eb80e782fbc9d8e1c9369bc04f4ad13874c4920c7a4e5fd44cd811243aafaa7937d7f176bd20de91e41a80985aee13ee4d9cf776519bad2377a26ec35d4f6bda3240a67da315c9bc48f528222cb607381ccd37ad9b566a38011083ffc433d070eb12485c4aa55b3fe871b0b9704a7aa46adf36613701920bef1fb71f9795f7f273b87e9f205d6fba74ac44d6084fef0c0c79a9ee6ff555b016638e51569684c7e9a3d13d3a6337bd0137dbd8875a6d811c8e98d33487865a156bb93cb1a86137ddcf921e106208f28ae157e35042640d73f15df800c54d4d9dd78cac769bee700a05dffc269ce29dbc03a4ef979374514bc61a8271045a50bb5d5cfa7bf2ef3dce74a903fb6dd7f8942a7e43b185aa8f3dfa390c1f47dead53b021dd1d29a12d2e08c00b6e40191cac476ffcbef92e6ac22562bc0f424f826792b5485e43708b0ec78f6a61e52dc6810ad81ca8b73a82f20359d74833835222dd353cf481c8ceaf0447d941539e1f3b6a12c367c01c28ce8b4f9c062d81effe2280e20d266589c3c8142eb263dd7907899e28642b4ba10f64f5e4f0dbe0c8253c31553efd0e8f09371bb79883d6fb868967ec869f8f4c9c35e1c62f8c78c14902cb89c3bd48cb93244ce1781b750e51c025c592c1983a1e1b5c2fb2667c03c6d8d0c044fa4e7d252182357a823ef590196d2be4b1f8e994b996d3bdd431ff603e6c956fc986a59f16cbc28690253f3a84e8e7a2b4557a2c457c3d442bbcc52eef637572a17101349f68b434fc7a08f78499fc15cc58907eec415859bcff419a3b824b60661b2f14b7734c0559e86e5b80fb83e299e0766b70361ad7ae6210c19a1b7e26d7d138cb65f413b5356204c46d6ef36f91329855f8c0bd041d91a4a9d8249d4302f901bbdd3696eb81d6ecd9a79a5621a5d866dc1175d9a9dc20d47922c6add36fb5fa24df5c1687237de27486e8f501851d7c1569ed4c08742972e124a097c661e5beb161695929e2401c79e7cd49e2d082da3ed04e401d7cee4a7ddba81029007e931e2d9621f672f832fb0c60d68fef7ba411c4a6f0d0700be2d0a092e7a377277de649c698c8f99cc7050e23ebd4820493f3cbe76be637f8023c8836ca6a3b62255ebfd0fccfe7792d8ae16cf8b03b1ce82ebb9add6beeb3dafcd97ab2370740ba7e5e71330845ab4e9e7daa3a58325e74c4aab5c587eaba0527b0a6f240d7263c523d48532f20378b3a6687c3bb0ef64742fe43bc8124b06001dd565dc236b3137109ae96af2ee6c4dd409879c11b76e5b581df40dc0d11951e9acc86b99a416b7e6920cc67f2ca783f2c63f9b5038c4869ec68823ea13a7e6052805705cfa75bfe7d184bec2197b9efc31fd1b876cae8ed1d46ee850e51134ba63524df94327e5b16840d8f68e74464c93cfbc64aace6ace0755dc2afae946cda1fc3496a1e88f485841b05abf307a0c2a73f6b166c1248bc9f1a796aefb714025869ad6d1e72075ed436ecc9d9865e1d857eb8c914b9c9671c8bff33e73a7917e0eff939c6f25ffba07ebd9d9384175846fde9b99067450616275d3eee6c99d9bf8a0f99a504cd0303b981bb04488f3bb036b259e74480bf1332393a33f550baf2b4194c2de60c23f88b079599f255927fa65021e97f63b64fb95185bdfff9119693fc5ab998f6d9a00f9081c360e49f55c57eebf0f50feff983b640a6547af1931b967d915db39782bf6f950763006100eceb6761f416e5c3e7ca06ac6e71e789b2d71e5d29b63b802254800bba303bc8eee9d1385580cde8952101e201a09d9d607e6d38b7a012a47f217bb9d2d5b758b6905923046c47b5a569721dbe0d7d287d760b570c4b4763bbd3e5fc2c3140d45dc6cf17e0387ebc5934669d23bb3de377682b2b97ffba5e123e1b8d77417739f9a27df2ddd3d0b53cdd6a849abd1676933d7eed1c0b22623de842f89093310e3814d422e0043bed77fb1cd21fd5eec4e0558506c9bf38beb059f6f86dcf3132033b61451a9f103190931a2d88191aabc22a96de279cfb1434afb959c07274922f3de3717ad23f25add0c26bbb7826167eb8376141aac18ecf7b164018d116ffcc51a41145c8632a3bda1c05003a50238415cdc475ce941150ccb063ee178e7258afe9020e1072653e8c2e83ff63fda6e5ce2aa5d1b804bf0b95e1316308671ba5ad7d3d7a97a543c48fcf2bac8f5833af9f9a5d16ca2b3987e85b24ef71ade239f151a7540516d5e74148e6cb13032d72493ded5a8289cf010c147ca0d978ea3b614356c4ee74b81d92fa6e88142da23c18f498f215d6f61ccc43737c1831f47d90c325c01d276a6ff4961003176b4972c194be3c8eb331327e93f59c8010daf12eb00662f87ff1f1edb1676210e47ed12b9af234d580a79fe1b88682a94525e4d6dab7bbd2f0c9c0d618051b9098a13fb2967ecff64cd679b7679fafe9e65c8f3cc9ab92d32b01a3684c74aa151eaec1b2e7c324cd0ef95ff305683df46160ab2177010682b9d623996f414133b7a47241afa932a8f2aaef1e71a27967dd7c29a259155b84643e13884f58bd530f1784866e866c26119023f69000c25597da5b82834ed9d95499faa45367488ffabba35cf1a3845575773a08ac8679c8ac25fe3ceb206f71e63ee66fb8be6445fa8ae888a2fb736f659f2aa0d2f61a9d6f63e46bb23c7a28dfccaf41c31e66dc2cfd679c4f9407e22941e2afaaad138a876214086674ad4ad06db4ea26fc56e0bc9d0f15acb6e12f1e211cd7c798a3501cfa67ddf5b9f6362fea32b04ed88ebeab4ab230455043b9eb1c5586f3935d120dbfc96fdd93066cea2765ebf0332380383fff8d2037f41ffcdae059cbb90e9b5ee6a1c015e14bc99f14e798abd74ae6075f1af84d7fac8b3d37598fb4fe9fbdfe5689d1cf8674e5039157fcb0698de57bb4059fb35b5c4516b1ca7fbce564527529d10c191dbbe041de448a4ea1b813eef3ab7064a5bc8848eedf7189a26b2723fef1b5a99415d97ddf4a08773b6e339446c6d68b862d805dec0d32468bfa77d36fb2e0f3e015016b6709a608a2977832c85b9bfa3cd524df608a50a4460723254a90f38922e687f52471a4c370da07a79bbf192382364fd81fca3f9b27ef2dcb4ed8fbd50dd993cedb58374d532d17298214ccef3042db7f0e5ebc7451013475affcd04d1396c17090277593a7ae3614ae7a12172a107168854a813153d8312a6f290966d84a389829684d224e88c41bab0f98b0a8a249061efa37de28018bd38126e1ba90f61736ee8be8a2ea128094ec5804bd33a10759f0421849196037a30142f1de77bd28cd2563edd3da75a761fd73b4dc5aef1175a3769383590778337712df93e46b832ae40f63490534afe946b46a573af9f13a298377ccc301ac86cc3f4bcbdcc168f381881e1773f120567f527570ed15a8c6fb18f757f2dd6d008aa3d41f2deaaa01eaf24b59ad53820b91ff34d23167457b5847d9af62fa105357f298c7da198c3e96851cdcbc9bada59e4ab40d3c0951d198ea00c3908c56ef5174e14c84ac08dfe91210f2de94fc3312c75acb9acd8c2a00af89313e675dc24b377bdb382049507af6a793857ac651e224cfe2ab7fb5af5863cf3fb89f73a33443d5833eb71994a7b1e1b340f32fc53e8c5549a74780c4830549fbd9d1f63a213bcf4bec8c57a05fa79c969aad1c1082bdea9b188dc619205ce98b245c5889766670d70b08726b2150787f9ffcbb65642262dc4053e4b8364cccc66aceda35675ae213f5d2901b2b73cae1c9afb67260f0bafd2f84719b0dd08e1ecbc87e7c413be6c660b4fd0a25ac5a6cc84f2ba6e329786ad82eb7206e39acc2c07e7c18b1ad50e2f3619107bac81bcad6ad8fb6ba61fa5443fe849167e7c27d13ae8223a0ed9b579796a4372387a0eb0b1dc03119255b626053a360bdee8b997e84d4afa7c8ee602e53c3dbc3496466496e1e9d8fcdc0f2f0ce552d86634bc1a465f111e5853d87e67aadd2e9fbbf8ca2eb6c91b55db61ddd1d334ee4699138194c554f325cfe22972a2a471695f18714ed4faa4a36b3c02dd541aaa0d747cd49fa256690e4ee12ccf4490e4ad84951aa76a9b910fc9c17fe6c7a7084cf14d661f4f9c9b7778472a99ee42b95c0b05774b2fce073e9602c9261029e7d0e0bd08aa5c115c06eaad10f31bf4248086e25a2a56393129088dcc02d34e2382caee1b83cc1cdd2f17389141692ba999a1510128ecaea5405273098e5472d108d8e65b8f3b6f67376088d825fed8b7f3fe8d180f568e7dfe5cb2dbf07d8670778271cc27c1df3fd9cca6abc3a98196e5a922afc640917fc1f19a9a48f7a772b6cef6c6e51305977034ba8cca02cbfc1c2ac9acf21a02fbcd97479768f42786941326c9149c7eaa9dfdc1bb241a0805bc78fc57a2952f8896442d6a69982f9d02a7dcf1eac840eecc11ee61eec10c7218cf19d9c2c26c7cf95e78ab2a18a9511311636069307891e7cb88a9f3e49c3289cef0513bc643d16d0f447acc55323f283750fd2537fa2d0189c57a38731dfbc4787578f317444abfcc606b6e61e10296473457e230c24336e44e6a19248b848881cc6da9f06b5b1538a3ba8760bcdac4d7f95b517e5bc12afd2f67425cb2b267a4ab97c31cb19ce9eee1b5788f0e91fa9250cfcd092fdc294507396923207139704dd3f0f9b0c1b0fa92bd7a1cf978453393013bd56b6041c5b300da1e38751aef1f47fff0469d2206a4df1785398e5bb79be613147621eb92dad92aaa1d23f4b37c042e5a0dfcf200c7de92a21d2e9c90714d8e138cc2822c65f16b2e8c82f2573187d66ef4e1a9e0de534904f2837d208fe8aab42c7ef4c7f5971418caf4280e2a98b7632bb5fdabb96b313d36cecaf022b7d9d3aa845b475c0c41a64fb244fe14cd5c07502e7ead5f83b730fbd6c87f1a5779e668e3db8e371760fe6b5c87e54a367a574c3b99d8a81030ea6711ca6de76c7e24b3ac3d2b23dc8691613aaa878338a9ae154071dff797c5d385fb4a0ddcd8b4efefc795b4cd2d9d37632f2084b61a243245f24a34b08fbfaed18ca2d4b5abec1990f8144dceb923eec16dc46ca85ed4062ff46271d85770e672a2d192adae02023ebee9664904f7c90e617d390947a7bbc34eb00212c63ec2c42c13bcfaed0b059d94d96c469da7250e782908cce5a0bf0c063b530d2d6c1dbce29716cd850d6a1ddd391e1c2828b6dbecf82288556b23cf67ee41fdc4f38a8858d0b2f112551c27823546f862dc5c60171455aa4a03f5173a5b046a968682ba0553ef8b9777315408a42056fc857ee49a3defd683b14762dd2a1a349839e65ea5bec53c729ad093e334526a9b64df952abaf71c6238485a555458c89f5f4b7753a334b6925f22ba5608a5adec6121463f2d8c9e5b4923202d8a97b966c278e205639fa511c4f72c209a33d4cf6e78a5465d90b6c3195912c29349398517424626b645be0e81ed2e3c6dc1b99f1a78a789a240a3d8a15442f70d285d89edd8787785f5dda367f64c9957bae68b96f03048889ac0eb2a51666e198b77c2525ae6d27d412ce8021228ac598f3bef7dce9ebf31b032abc50131be8082ece720cafa4d4a0292c944e5b593322e533c9c05c931f3c52c2ddfbc4539adc74e01fd61c719ed5ebabb335bf6be8fae63224edd60d04ef5cd8749cbb1f4037cd124b338cdf009fddc0951cc3094e51ef2b79943ae3583a92ab9de03231cae763610edd8d8f432615a3481b1ea868122a9aa06860649483c0015b69bd2065eb694f887ead3eaa29bef13f86e9c1ca23d846d4cd118ed198b34c00f0340d92621f66936aa65f8358bdd6ef3751b3f1de43b96ef7f2ef91c93b6427b44609edecf4b7cb2bcc2efe5f125bc1ec447acfe9ff923dc14fa26b003019c70d7d18b48c3310ac8e22ce2c32c61b1f1ab659bca6d02f6640f4f3f9cbf4b591f34ddfd90c3feddf97373971f95d9e63faf92cffb498de854e0b029343a838b3e56246eaddfe6e9ce241855977f1cb0ad95371118bc231a1b11e9f48da2a007a1bbda9fd30c75bcecb08db3bfe4778cb85ab33f7a9dc2e01193002f4899b38c97a936a87aa466ebb21c4c9bf75ef08231493d76142c72b39f88fd8fbefd580154fb0c020c61e7b774c93f20948903462d8159d6b22de56b60f9dc325f6d0eaff800b16008cef50c8bdbb2a1a6c34a01a87ac5e4898d540c8c16873a2972f0eb0fcf7ff7c057a2eb7db318da7f42ae8aff8c4fffd6b573bd0f8583908039091ece267ba0b00f10f0189e5a259898b0c134cc235f722b074cba41ae2d8c4841289e0eba6c9620b44036ae133cd3780968f89302bab6004c6a130768d2c7486c188b89050732bba207b46a3a31e51bd9f66a33771c738dd136bfae35f5833e7e939ad34cf6f5be696ac544d50896eaf96f0322a1dac42b1297ac67ebeabebf4fdc7f0167d092842b203b4e0aa38558eba1cc7b498865d3e21793adfb49114e7fc6c655560e05ceb0b13136a6574e14e1edb23cfe7619794b366c23664ecbdd80f35697ddd24cf8d2e0c8a7a50d9007a19c609294ac70df450f68015db6cb6accfcdfc0dba386f6c71385400318c21396cf74e4cc95c219352a15fcbda656b646370c5fd3f124f942155e1ffed35b098669677d76eba7a93a015f5d9954fa0adc3d34f2f4b99fab8563e7af73056af1e27e8f41e8d0f23285da3027f496d0fb653f7206bd98b50fbf76b280fb9b7faf681022a8aa558857793c17096bd995216f10ee82ff6e8558d9d9aa8ffc060b4a07d7fd7837f5ad5af14e03feac52c5c693900baa040349fb662514d0f2d9da6985654ef542fb682ad4ff7588808745a79171d544a48ddfed98586d9b15ac3ee1233aabebe1e1d038f812a1317ffda3f88fdc0e968b5955498426c8115bb2b3fdf40b3fb108372c3cab8d839222a3ddc94ed7fd9161060295df476c4e74bca499c5fda6383e572832e425bc517e36e97140525a336327c8f16edfc23955c018ec4bf0da5026aa4088709f400c598893f5e89a189eb6c7b8268ec114c932fe2fbcb34b36cfe1d12942815c67f49033d12f95bd89038533beeae62cc2505f52556bae3b3cb89eaac18cdd0c03fea04215ae43458380306605b5235a2189d8e81e252ab85d8175faf27ea5d945c20217ed4b7a2cb63145e700aa338b3f8566cc1d542b846646ca502a656f283efbfae30511863fd3ea677677a2bb8e3c6eefdb0b145ba2c5f42556fe5dc17cb0b35dfc0ae4f829a982e3645206483ebff8869f996545fe39565e29a05d7d9e285467dbc621fd9bdd18027025db74b7d1b6d3cacabceeb51da8f476a80aa9be9b19c55c2dfa4f981c8c0f1373480d1e6a643aa380dc317e9decb632d7c541c3339ef39735a01af7a43500a7ccf250fedd000288fb651ff158ef4ead3fdd75479741fa687887edf05492fbf4c36ca1603008555ffc317fb6fe5df0f2ffe67a3158bcc81667e593f4aaabae605e18e3c2334cf5e5352e657da5275cde2dc85d1a734f8bff392bc7ca96791df99b6f48e3feb47b6a7f34d10a043cb789dfd5fc1df43796f5c9a7a03fafdf61221c97251ad805026f45e6eeb8a2c2c5f9afa416156506828806280fe86f0142f41876a9b126d11d3c891c494acc046f9188dd8e40edb71e8082f5e3122152faec87a5ddc3acd6946209c70edad638dd49d73be015093591e7f2786ed5a4b414ace50b8d2a541f17de069ab0fb26a41e408c44ebc53a0665a871274f866c22146ed8d82bf329c6daac78a52407a0999c21e38eb94180cff546c1df73ebcfc2944a6bcd212004f97fc2ae4db5268ff23a144885e823cfaf3bd556c40557fac31ee423a50967d13ba4960d0228db6b678fd9e391ac01fc94c6c1c9abc6d80e16b5a517fa4a862a86e021ed5bc6b525ca50fdea6e37458042002c743b0107ecf02b6ac837ea5cd6c5fea2bf352fe9cd4769d73ef8bf390c1b12046b8a8b454eafbb3a7b457cf0720438b7aa849bfcbc6cffb12230a0a2cce887f1b6c4c4d9b3864a8d839bf5e75bdade3a0230e53e7739c5dfc19851cff520bc1826b988102c5298e698aadacd37804f59b4e0f61407373437f60a79e2bc67c9f0184a2ee055553d24120e379eff269abf79f90f477c3a630be7b7bcd2c2774454df0c0b2ff460f3dc0406d0e4147187f23d66e66761f2cbe9c22a2404945aa172a8dcc634454831735719a2bbd322f583549fc8c0bdcd3ade5b49956532056d381aaea2617a3f48b4f76bd7e3129f75216118f79512a5b6b705381d300333e516595a528b37c81f5cdee7bfa5bf39a860fb0806e7d4ea0252cdd7ac448956d79c96d000cb65b3b4c05fe4de0c5d7829235afefcc5fb4f3d693134a53c9dee8f9f9f7c6584edfd3ad8447ef01e026cb92aa255993a590b73118c8df5625f9f192807b67189b64f800f1af4b425f9a38c47cecdd69fe205762b2e85bbd4dcbd39499c755737ddcf8f27c4bcce992711394ffce14a43fd7f191460d0bf6a22385cb1e4a92b62116db90babc79cb15ad8241f7be88e659d9e4ef59a7339ee338fbb4917d81eabdcf26573f279f7ca06046099c65dd78dd5ca1b520fdb349d73594fc3d01f5f7f0e07e3c516dbf977e60019d469d8008133dada766013509692aad2b1aac661cd70b857d5bec9fefa7225d382b475c9e97e565e60d8e1a85db2bdead22c8c03661f20ee5c09d850b642051aa79b7868eda4c4176be09d2fb2c5217e9a4457ab7b1dede5252308659199a443468cb538cca8adb27106a28f6bc9a4cc5be7a92769f8bcf13a23c9771729894c1e560c72c6701e9dc840d3c403d77956e8206421e561b426610ed38fc7eef24f8142239b425106597b8d3278dd373a20131811bf9a68e82eee1197ab8dfe4e60f7490d98fa01280c878cbd7b0f583c43bd415d67777c24b6fb6bdfdcc6600af5cf860a0f0783aa631323c8aa44a21ade3fc5cdb5bd77216d2b954227c45b38a2214ece129bb33512889d520d810e8ec9e8db679a47d17c3fc87c4e27963bf4cd2bdbc462cae07f6d724f1c8d1242eec9e5495be07cef1044620e677d2dba749dab7007f735d93a9bb355a731e9d88d49d173401aee0c43bbed7ffba5c2813e673139a7a4858a50aaff525ff61ee41394f1fe4dcf6f991e338b81860fa46480003a26d6cc6a313e897b5a7c677a1b18944f5e6f9726c0e1ff17f4137689cc778326475ff0be81af8c0279bfc202c9b8b7784f0cc4ae8506f0c25cd67c6b28939da85208393ec742b9ca9461680044279860caebe086dad866548b01944b6c476cbab8b484f584595fb2b9adaf9e9adb4e4a4c4fc7eceac0bbdc10ff62312d8377206290122fbb6af42d4e974a82aa9ea21811aac06b144ead456039ca2188f04077f666d5e4f18e946ad56952f6411db4a22e91956e38ea98be44e048a83e1280e0caeb044c16da93f93b5675a49a0c05f6d110764ca6d18afef4db07818f9b84b927859ca33937071dce151c043c111d9a07fdee6ea51c072390034c9bdeeaa47fae27ecc5ec3e2065dfaf8f53fc036a24d00f442832405f0caaa833ec116c4a2b6d7a3ea3cd044a00a4b70c1257424776f89c328d0b2475690c6c1359df432038d99b5fb23e7439f1897e98c02516a3f00ad32b63199c017339c6091c52d00b4edfb2f19f994b5fc780027126be061dd073353acf6b0484236004a1af20c2165bda11376b73613115fe904ce3a6f39717c7b22058affdc940e49e0798bbdc1ae822104b63ccc34b4a2b4a5c2c655b0bc03721169b1c6aa976d9e90b193c548fc38b393be5ee275be4336769e6aa42e6ca224288c741bc5eb5d518ebb36b4b28395f28ce0f35040ec90ce90c2913163e5debf69bb1f82a6dcbd2ceaafa9cf0fcd4400ec67f48202740681fb6022a5f1c08dfd44eef7f993426d100ec838e9b637116880c4b5ac7542e92586260570d2191bef0bd18db7760bdb176265b29de7380e8402c0c512c6e7c4b68bd1e6a3ed27775210793026797aa5bd5dbdfc414f21b8598bf569cd516dd43b4432819b329cee45c345e015025e51cd134aa540105d6735b72a5006663f0809f5861804c5ba02090531d8f5bfdc99935c7445f0cd2be09b1e7f2a828dc5fdc51a06a77ad192d4b3870b3696f94c2d6fa0389e096c25f595259e93ebfea6f89e673c16e73b8327815515d47d28740858f77eab1c540981562f433cf60e100b32900826601704f3ca2d389812b69fcd2319fd5502a4899823e44db0f74110067807a495b6f28c061d2ed613da70152e307b7783b2b819cdae5b3bb882c0c8a2f425b94b5ca445bdd70d6dfdc272f6eeaa1b8ec23f9ab2f3deb390445427419b8c9c4707a5b76a38bcd9a56ea3229c86871b35843ad5f065de791bbaae5115a0d3a22b3408e569814ea763f8d34a4a360b80fe0095acb358e3da0a4ec0cc7e2f48eb5b056343c414c2f2b3dd900a2e599066fae103127fd007fdc69488299f07c256101b024b76e8cabccc0c931609796dcf98c19e875d68f315065861b2cb077da0137cb75f2ad29135e2163a0a636306c26653c79c244ae1bc95bf304c84a0cbc888ea5105be571a3242701ef0b379190901917c9f59c74a089af13e83bc98109cc4d74a07e0ca57809487442422a1de0bbb2925a673d9a6f7020819dff40238ef845e6d0c0e031c67f4deb8ad669b2cfad589ce9aa723d8d8e337b144606e58af341cd06f22fb21a498f4813056bd39363a7f534c21ce790f3aa047422b8768109d48abae397c4e17a89c5b1ff3118727de6d56f7a09595fa61525204b657f5aa340d87782f350038a3ce0cb97721ae8636941cc4926ab15f0a31a0017e318299e331afbac14bac071d74d01b8212f3aff99ce37e6a2ce59cab996f0b9a2a50aecc078907775ebf4479845331c2d17926d55b7cad2481117d64c2a8164a28e4bc101b92d9d4398b7cf6455b9401f1a0bcaf501e0492309aa70a3e4590b5c8cd67ee51ace4039808a680359274ceb3131a627cc5ef46b822a5301d5604b874a11535bcecdbc40c2427eccc8bc40b3448ed14ec4e185add980868cef413b8117abf41587b69446b655562e405d52e572d362824d1c86254749ba9d17ea16f708b0a6465db96cefa57e0ccd9ebe726b1ef2bdc334c79abebf20d3a66e67a4f3f2a3d6fc60dc7e843372037820c3c5206fe4cca07af3daa37647acdfd50d17b5437f45b7a5f9dfdf4fd6af43d6d43ef3b105d29bf9225a9c90168004af10148dacbf31eba49f87815f1c877ef1f013568a0b7011b9d650f71cf0c75eefabf7bfb66361cf4f7a294194b59aa614940c1077837a01a6ba65781ada2a1b730f5c3882a71009b54485886f107601bb21ae334ccb93264895000830c81070ef102233acbc05d91847cb3005dc16518c47deb7d6d542717e2a92fdfe650bb1c22d2fad1c8c26c283c86f4a4914367fd17a00b289bbacd7ebe6e2cb638c0004df0fa705bac2c9af65c09393f17a00b03b24d5b25435717e2d56e7d814b00edfe6a5d22e854f8679122d8adab75d0f2b5df3c108b71b608e84846f4eec492016ccdfe40b74062fc15cf6904d056b2535468075bc38c6786656ba8910efd2fd4a4502129eeba3a6e256510c8256731c0ad18a0dc4b69813cdae4e7022be15a34870a1d5c8cd2b2473b9e22403caf07106c0c9cdf914f0dfe3c1c1fe41ca916062d5e131027c504dfceea166390b70f48e108256f7cca7d50b086b90618066825b6790e39af8b0be8047e2266fc85c301e23cd1b91a62219bede9e899a8cd7aaf33f9b3916fd9c35cc49a9d1c2abaa880638341ed0263ef5b3fe1ebd06b5b3d12e01ebba2cb47ae4733d4a3a4b97bae6e4ac4f3999ecb4c203879765046a52311020f95143848f8e0a1eebdbe10f7833b40936e3695a31def5bc74417400d45597e72e52006845f04e24ecb4d95a1373b69f04b30146ebcdaa27f1e102752b936e1cf0ae074e9fd1a0195fb7476e938f7e2c917ec140e0269dbc5fdcf29500bcbcb5618df0aef2835ac41fefca280d51131468c82586bee8379d03ca52389a6d0300452192bfab15b9fc9c50854708330b6e7531042faf22155b89226252bad5b3ce2183b9dafa3756a09e23ce6b05f30d1048f65a08e35419ef53aac74d6fa63abeba3481c2b6835dc15f5fa414e3ab881fbfae8dbb80a009f6be751a0a51c931190ccdf2440ee1fcc54b8ce4043d90d9e8e56e26621802348c6afb2f590db40a316bed4501ac056546aab32d0ccd6d4485a711f1b83c74c9ac03140f3fc71362b6712e10e0de928f1b34c7826cbce047d6030b8c805b431104c37814023bd6b2a007e8206d81ac6d2f5623678aff9e467eaf1f0ef555f6507b43d59e48ff24b14b4e022e5cf795c4c84887cfd0c4f129a3dfd6bdb3f98da93eba9f404e45f31b66033b7b79f5fd35d6ee8ec95c9078a31f9d7c50bb5ecb1a3da93c5a160645c7c8c2e5430e858b218acd2e9336edd981a7ff813a598e8fbb23dc298ab40221484b1c074def10beb70f39d51d71e83bd4746e731d9bc1043933597cbc86af2b26644ba2a4f8ee3bc444140a2d3b208963c63e020ef69eeaeb912a0baa48724594c6805fdb98e6e9de265cae550620778387a48899d337957b722158a2d2fa1eb9739e466ef78f7057f4fef156202bf0ed2fb690cf64def4849080c5679838f80be3e3e50bda49fb4849df623533687fcbf42b39bc8dd0815fc527261b3e1d2b4e80a6b4f2f48e5fa30fd49a305ed179f329ceb159eb640110c1da06603e54fdebe48c931c06d7cd1f48f1f183628bed66a1832a7a2e6c23eb4c7383b7bd23f91185df28031f756fa8f284500670390cc24e1122704c0f9b4c3419b7aabe237c196a8719bff50d7ac053644dfd96240bd14f5ebd71719614bb5339e5475d2b8a30d8b181b51d92f6785fcd98942ea1b5cbaab45d53af55b036186abcd5363811e23b1901e2d5668318601d120c6555ec40e73e8f45038897a879da857b5d0b8b2104a25da8084871c6ab968607c756896f1f122b332a7e44be3ffa3f012b319bb78254235d200d978c0ba246e00f3c44a3d295399bd9ccdcc385bb51d259af310b4734473db012eed66282ee277588211a32d3692ca564a6b595367cd23a92573441251262a210c2fc75cac78432a16c727464a2edce7588d470849203b13aeaa25355899e579eee90b017d9c6c0c56bb4914239279cfaa5896c80f9d130ff1152ad43d602136c835560854be98c8c0540d5a72b829d052ba92bca4dcf4d9f48832bcb33f62a396f113bf0d0db340eef0a2784672ffa3d71fda27cb842c3318ebd456d41cd8d24b4510a51fcea83a65ecca131335a80573bdf558ced5c0369045b2984a4110a031611156686dae224d4339196a90369b17c69570d1afc07646591850446749a6d108d2e9ae96c021e1be5bd591f2f5d62d5e85baaaf0589476bc5473a2c905593ef4820758070907b1c1a1122be7f6cad640974050626e3d4939e4e81acab794045171460dee07b101e10cd54fa35414e32f2b6fce386841dc6d8f06b849dbfe7b2840588f571602bc07d6ab0c6af92324e2f8e36fc9e337bfefb3d4ccb8f488992fbf012e096aa03db03d8c4ff36f129be939442bd1276e987d0fd6ab4f1700864b3e42255bc93e24e25731657a0916a9038255ef2b945d296df8766d035af39c9a3be40b8ce289d07411c1492022c8ee0324a12ad796c9c3f67c0ca13795329a016dfa60076a05b88161facf3bc879517f2ec4ab03ad99dc209afc248db66581e7f2dedfd0f5b6de41ad2d9f853f84680d3a5bca45304002479d783f42bc78e5cf8d081705c60bfafef714a0eb4d096d545c76236e84c68097ff62a0f2710a9c160b371bd31955c119d57b23e4e78103048a4807796de64f3eb174c29d576779ea97d1b9bbeca53f8a7f118b7a2a605f7142904197cda018b218b5b011a7991e00226fa2ac49ecd15b3017d49c2798f184eaa7f5bce32aa5561f800af4cda5163c7548296ecebf8b36f8da7659b6d85f4e23e86448be4dc6035d54b54ab829c6423b086cbdf5ad94dd43b212ccf4c66facc3fe4db9b482979da4fc35ec1ebc9e167ebdd2bd8b4c0c944c4f47a02b2c436e1d5637940081f89fd90975209657bd8e32cc39b444537456a570574b3bb9ca97458a5f8da924da2b5c377b8c0bb0e08b0b6218c27e58f0a20d5190e28a70c886d424511e4e15c019739446ad3ec8ba8fc958f5f004be2c3732e6c62258aa8b6082f43019d48cdcb39cad76c4a5e02af56ddc47ab2a4fbf88031ff0deb1a20f504e07594a0c91e194d6afb3d17882ede30e89d51acd924bcf613c4483f21d7f2736802bd723a29cbeba1e0c1cec920403760f6f5227b808e89b4bcefdd03926ef96e3450eb3df8ae94833078f2c2fcc8ff1f09c59945cb2bc57433d9148b71bd4e6bf47f07ec5f709b32b12efe1c25b4b8d58c9c20027de9fff425ab5053b389231e71832312b3e0b444b24faa459c4bce057cfc805ce8498efbd3a86aaba9b6fcb7494d43196cd3a67e6fd72c835b2cae337e6070e7aaf2c97d662b9983f7d99e956e4812661226c476eda0c82b76b69e0c1f8427aeeb77b0ee8891ad6c5945583e014304fd8a12067616cd55e88c48b02810ec8e7f9b91ee937971280dbac797c1540282773c973bb067227543fc0cc43f169b10091c372e1a408bf99f291fee8898f840778b36d24089f13d2e709b72b331d56444929bf16b3472d82e4c43b0b22a83876a38b11887627d77332ab6beb64fbcbdf66734263453b6983e7d07bcd5d58c9bb82aace2f6aeb345ff64d25912375304d9c70cf119b093d0acfa5cee20cfa16ba3aad6e69ffd99cf7b2cc27b0a292f9981fa4a2ab6a17de2021acf20ddccb73e655c59a8bd680556fbb4981fbfcb50b117d211690e3e4e8e1d715478599a9ff4145d474651474e524dbf3e7039d46d1e75c64b0cff146f65849dbd23db8e6104f414bd0c8395fd88dac2f0f00f115dd7622d6cfae44e2e94a99974c32380f57d97865362e401bd9d7786895ebf70fbaec09131644e92c5088f51ecaff35503761ecdee105266b64c28ac3cad35dabcd2f5b21eeeb41661dc5616383ac42ba3a38515814c72ccd288ca109bea6b57143b6d5d8212b984c160de6136328065c7d1b78d977581dcf437c5d11b173032207ff1864315c98400b761e790cae372a544f441a5027065d7fcd05c982b0b4377b5e40f1abea69b423bf6f2dfd773e5893313c41c24ce88cb3f36dd6edb60fed086f6e7f6c42eb59100ba95fcae70bd30c536ad5fc462ea65e382765660b347dc61a23b7d97adaa24f487c30dcbb32670373a6f5fa72a23195606405c32e27ad1c51b5702f7b61f641fb3656b8e772349d93df74e9aa3f175ea3b0395c9341a363152c173bcfecf462b7af63a00acb4e3fc6637fc33e617e668f00519ba3203594e616227f2f79090fbc6702ec6f27b76afb474b54a4b1ed9cf98c65360ef2bf758abb10cb4eb902528c30a4fb3334a9bba165bd74122fed4d4929cd24f2dd5939b12c74c9a0fd1c7a9781a345fe25a6dffde5685fc987f1042b145edd946c42b411a67d617e4a84991f709003ca0fc1e04815f1be81ce8199a0f19476a86c84f22aaf875e9025299587cedc17f68e6c8cfb2b4acdbf8aae7eafa8b5dfabd46e8842bc393791d978757a7e21a8b2559dbfeb4810821384e8c94342e8566f89a18390804887d4cdfb86104aea92ca7a696506b682d5012962c271c645e7a07fdada3b0745da42c21be97d748fc810fab636d98fe653794ae4312799ba9b0f4b1a8b1ed1c57e3c3f4c7d3e94bbdcc2b45cf588f4f37494709916f0bfcef593dc9b26c448394d6f9d555be23db2998862642e182561f56466686eec99c2872733fcc9b83d99a30fce15c43e99e14fc67dc4461ff04ce1f370c362d9e7e136cac43f02f7110b7f32ee237694897f04ee2316fe64dc476ce483961d80bf7f54777df7064b27fb09c70766cd2dc9fa7d6b2727d5b90f22f4ad6631627763f0729d5930c9ee439b9311154f03fda0041a90891bd0c8ec999e93043fb0a875ba5e6687f93bf45e0d69bfb314c4ee957e742fce3a45792fbd9d2bfcad31f6481955b9300a260a730d2e248ea6fc1f13f38767d9626446bf7c8edf3871786a3f32ab14cbe7f88d138767d9b1c514cde1fe5c65359ff62e83183abca13be94aba5b4f27bae9ae3947ef799dde5fe1b18b63d982d68be91dd3cbee1c50057977453496137b77d2b226746ec56a4917b4a633b45513fcbaa76d1520d1ba0e27a690e27782960aa85fc72bd98c7e844e4707d182c875b4964ab69107732941c18c1dfa88020c0fb54229aaffc09fdc02b91fb7798ebf59999b4196aa02bcb742662f2245d84012ef7f46ba532075402f919127e988721834b99526c25a656b0efa38a3563416855abc493c85deb74542cbac892a3ac2458df96daa0b7a49a8cdd16b58bc5791aeb42328b06e89013648da1d352061aea0a025a1b3b0727a492c219d27eac781e656606facda8b71591dc5bced878ec102ea4b8552bff43f6dd3eb06b84225e60852541f99738e50e2039a98fbd3bdee873e68bf920e29c9e0092684fb72c81714f479c56a444283ac63353ab32f99ab68fc27fcaf8ad43ef46adac4ec5c7c98f0381cbabad4ae82f58e38cbf3dc3a666fa16b1a9b4e7a3d96dd454474c005e8174483f804e39452fabfc5e4ddaf5587d8b98dacd4d6afbb7c9e6aca6bbc0f7e155a6a79fecd2b1a8cb549bd79e5fe4a717a148f15a679c895ab20580240d2dbd8dfae5ca7c2d669d1f97fe435b816450f57be587af40f707837d46ee21f53d78dcd8d4ae12d34061b0068213b9dbba8f85e35a1c197cc4af2afebd6d64eca974cdf02d75c4d166d45f645803597e480d669f88264b23059c8817cc9b5460f77c01b86c177abd58c4042c59db5016433264e111bda366ae19b2c1aeca359e896624b41a7ef19dddbdbea1c9e69b85a0db2630d00a9e3d4d3bcd225eff724ca94d7c24a8b21ae2d7d081c84a7b4d6057b7d7539d6b54ef7b73e54bc3baf1474209987a59ae4b1fe71aea8aec7c04047f4ef59396c19787af9575af41e62bc4df97c6ca010c84f1c65f3257b53d26c19b3bb72168fe2a746928417f091d7b128a6f70403a51320bf35082a425573a280d4da047e64f95b327cb036541fa134d6d5c79d4d57a56cf80f1785ea7d381b49dc62060246523df990b9c994b11e2b1e316b4006b125c0498fd268dcced5d57d2afb2f1cc891731dae907aa2410f58bde0ffa1e48e3797b3092ca35e788d4e84b72864eeff7535cee8a155d40a76f996198d1ff39b04b49fb7a5555a16c9d13d47bd8e141d8a405533bf00a52ebeea4b65381341f0ff963f1d773c35e1c5f8e59eee99c4ea6624c334ee1f6aa9691d47d140e439022b282a86319693acb8ff9ae0dba759da7d112d104211665986d2ca17e968e83cd4f8f4c89da6e52b53b646d7d87c7e3e6c494486ce044459045e0fc55a105010705a9303003088e5fb06d14304648c31495b2110e8924ad162519917daaf2dd96f48969876449d999929c75bff7bf5e52d283ed72d5aacae88888888a4e87aeac337fc5af0048a88989a594bc86e193b129c12df0d7244d143097b7be861041fc0e1461b6bcc60e543650b2d98241902c9d5524d60829121342ec8c4281180283b7be0600739d8210be845174444408e37d890810ad23043034648403c60d565c16d5270021e41e0c10e602082270c208025028025ca4e114d76d06106194e608227cc28c3000528e5808396daa10539e260e2a7cb1e7a50610a4b2831830ca33764100316a8208d117c200b2c125012401257a2ece8b0818318dc00055e3801c20fd8c0810c60a0821464e0020ba0420a27e0f1060f5490821380608a2ebeeb301905c1c38e3ae45803062628011a646c7185ef25012ca1c4151d26473222a3206ce0608d30bed8620adf0560844e132647b21682889e1d75b081031ac4c0042540e303647081c514598cd0417224bb3412113212bd3deca8230e1aac11031898a0041f20838b2db0b8628a2194b22c3184115216b0f0e408175a10020e5a58b1002c576005ae584010170ff8d823a4c795c70b16ae2bc87040b4818b8c4b0396bc62085aa41f45424284301976b870b06e88b1215483458368064b061f2f081112a211b910a4059a203600a9e1070e33231f31323031170ccccb4bc87acf0612c0973a6d2a23be6bfc945a3da1c613d440821a2fe8c16a30ec8471a7a04debf70aa0a9b1a99152a3e73d0cc90d5683e406d3924614d4d8410d18de7b5dd0ce42229194d0710263431a17486dbeebb4cac8d6a5a1d37842648934744843e6619dee34c6613a238003e3e2bb7f7404633c6e23191901d0083ab6697fd31db7bd67e9f19e95c77b5616a860d92102fcdecb11c3c1b66dc583c819e79b6dae99e699658e19e68c31bed8e28a299e58e28821ce17df7bedad97de79e58d17de6cb1bdd6da6aa99d56da68a1cd15d75b6dad95d659658d15d64c31bdd4d24a299d54d24821cd13cf3bedac93ce39e58c13ce2cb1bcd2ca2aa99c52ca28a1cc11c71b6dac91c619658c11c60c31bcd0c20a299c50c20821e402b98df4b34a19e97e7e1625666c6a666a0a801500230086d9ccd8cc10c0bac27b9615a8804614b0ac8d9e0da0210134ac40837bef61594f0f96cdd8f4f46059f73d0ac3667a8860ddf7a89a1e244890f08006942798cd90215adeb3aa40053466c842b04608c8781877f2286e05254908a6788f440a819610f451083a11ece6068b35980e365f14f12c18aec4d0c40202044bdc4882453a4ddb54de1fb15d795c705b7744c3f6cf6ae398c6b892d6a54ea50e34fac0933b7e70c60e1eb7c5b184f72c25bc6725e13d0b09ef594778cfbae38dce308dce58c232c27b5611e23883863380c421c38619aaf79ec482c0545aa5b965c77b561d4418021d735872c4312a438bf760c7adb4890b130fbc74808a0e901e7f6f0d32b4973a59d1a4685d476998dfb4d3160ef35bbaeeb46dd974ea8499b8e6409ba7824921a3c87bd9064658a729e136524fadb25269278a0e95294cac9498149133250a0f955229e3e24b7a5be9317e60757101137ce0c8cf09e3f496aefd1c09ea543f5e9fb64ea5755877e2e2b1f05d102ab5691ddfb59d244bfc69e3c17a4a67d9fe596d4aa0d080d6e9cd77272030f034de88bbe08df80ede88cff1463c8f37ea33bc51cfe18d7a7cefc9f0020d0d131f1e0d93ecd13041e2d130e98f86099747c3648a47c3a4018f8689041e0d130c3c1a262278ef0119f53c9a91f66846503c9a51158f66c4001a2133231b298fc6863f1a1ba047637380476383c5a3b111e3d1d878e0d1d8a4f1686c62f0686cde8001080d4d10213c9a20763c9a205678342dbc3c9a16468fa6051d1e4d0ba4f75e901684b8e0438047e3838047e3d3c5a3f1d9c0a3f151e3d1f8b8e0d1f8d4e0d1f8e8e0d1f814e1d1f860e1d198823c1a930e8fc664e4d19870de7b2ecc2024861ea047d343c5a3e9d1e2d1f468e0d1f49cf1687a5af0687a78f0687a90f0de73818699f75a78011bcd30f39e0f1bb6e86fb405f7465b58f1465b5ce08db608c11b6d818237dac28d37da428e37dae2096fc4c5cb1b7141c31b7141df880b9e37e2c2bf1117406fc405166fc40506de880b34de880b19bc11173d78232eea78232e98f0465c48e18db8d0e38d18f0e38d18f003cc0c58e41b6139f2465872de08cbce1b61f1efbd1f40de0f191aec008f06dbe2d160603c1a6c8c47837de0d160277834d80b1e0d6683f71e90179e0d415dde28c88a370afae28d82ca78a3a01abc51901d2d04792f427ec4fc68a2118f26627934913f9af8f36862138f2656f168a2031e4d8cc0a389207834f1058f26dae0d1c4373afd319fd28a508117a060059709d0b862c6bb3440e2d299563e18a6d234d4151f33240ec33addc4c70ce9e747e31af35bea07698b88f57478cf92f2acfcac17903012038627703095e6a52d3e65c1f7ac1c0964e1e174af529db68ecb7e38bde5e63dcb07ef5970583dc8a458847b20144aff70160fa630d9411bef8974d0c6b631e9c152397837f0f17e2c37da78ef3d800d6e234920237ce3b89486100611ef89c2108dc020e2bd178130addb561d437129bd759bf637afc2c000c2c41770bc6ed92f4c0f08a30854e17a611401d8b34567814014de3ba1a8bc32a680030230bcb7a4f79c1fdfe974af859f8ea0923a694604a150395bfc0ef7d33b4fc5a35653b6f89d2e84d045962e601ea987e3a2a170d1507e561cc9a3b46df32a128742e590304e777af3c1525a8a07db569d66da92839d388ff29d0654c4a7340ca54f3aa83b6dda00f44f91cdab561ce64d3ca8243a6da707a1503953b49ddee9ad082ee749a7ed703fbed3f149694f348d87eba955939eca59624450d735ad882b264e3bb1d2693b3a49ca039d8ae8b49d9dee394e4be9b41d6b678400d316ef3d26180f29ede4936881079669d1012dc8d0c28947c270301c1eae6841b18c07affad122940514b2b8e385c1e5bd770dc962e6f994b6d369da941516556071002c50232cfadb7cc90896756f842bd96091048b225886751aeb3e752afd702e9ccb15565c1134ba82e7bd47a484d258963a51b1e28e97d2be5f62e2b4930ec40af91e29486f2bbdadf468015a16a0f352abadc36cb4cd37c19d804e5d8f040479af891387d22b26bcafe3bd97e58d1450e43dadf340a7d42975d206a0859fb4f4ae4b25bdadb4de560888c1a88a9e2d1da8c21ba3030441a57f86704103d438c093d785e58267b5a0052c78cf5a810adeb352f09e8582f72c354ef09e65028b046abc67a5a13bbde447e1547ae3f951381f2d0589ee39fdc42775e241651ac5888bc712811456785c6a5b75259fd300fc861d81180e36e588eebba6440a2aa4c842458a1829b852a1923aad3446e25ec561a8ae8726b8725c0fb852a192f2c14845607b0989fb9a89d34e3a6eeb38df515a0df78341217119070486914c3d5c47a406f31c4a37c1483d3f3ad563ea308d8bef52fca44afd1e2236353d26ce7fcdffaffd70a7943671ff83e9adf3401e7542f1229dc9e784f2499df8499573a379fc5683611a0ad683c373d363ea4e5b7ebca9fb5a916ea5611a172d09462a923a61563429bfa3565d4fad30d2e66d9c60a49e1e2a1889083744a57f6a308cc4f9af612a0dc5a65ba950ba26c5839196e8acbeffd13bdcaba8a474341eae7bbfd3718d47c99294b6a36d3e00296da7fbf7b2814660e2b4695b693b3ee0e28211a0c185025c1ac0e50a2e5370d1465c7eb8a09e4ac388fc50630423f20366f30396a934cce6072c558361990d87655162c4c50a971b22353a0b6f8b099e37f52da955dfa2a17e152cdbb46df34f32265374a79768dfff68547c4adbe1b172844a43f17ee349320242a150a75f52715cb7d23cd7a53c902f597bbc6b889513cf2a41ecc58404074b7954a9fb1e55ea286d02523c519397f76046d0711d438204e31b3745978815418284e47dbabfb8116782f792e0d1519223254709768371e9a79c3d5ede680f1fde680f1fc4dbe1bd21efbd9cc7cd1be541e58df2c0c01be531c71be5b1c71be941e48df488f2467aa4de480f2ade488f0ebc911e76bc6785f12c2a44607cf1b252479d4c3c7bcf8a80ccb31a2085cb8fb635e93e769c7e129a001224d8b6e23d446ab46825ee4422c2614e102961365c0d104e6036a5a05d2a91b8d429c4a46f9a73a725394d469a1d23ad3f52d7de94653d4af4f4605fe3580e463a2dd1b690b668d31614ead455d9b690308e71409ac37a4a6b0db535bf85d35bf4a69938954e711a87d21d67a3376f3ae9cdff7893ca934e3fd8294b4f8f12dc89eb9b96d2c148284ea561a91cecb4759dcfd2d3a304e6ff698b4f7d0deb29a534bfb12c53715886695ce39ce728d4290b9325519464590985f25b94c8a204e64d9d4d11cd87f340279f1c8cd4fd0995d24e3a558292742fc5e79444d378723a6d874aa7ede4683b3d55850fd1532a75de67c78904ca32eec46d5e8a0a360cde7b3c046d27bfa930bf7fb42ea54d524a9cce163de53dcb8bf7ac2eacb01c20c67b5603de7b37bca037d272701bc9f394e7385f2271584ab3d1db2a07dbb42658ca6bd9346ec5a5bce73413c7b695960446e236ad52696cd5b54d85051184dee29360246e88cefbf4d3128c14821e21bc2406290855daa524de1b32a44b796cc810ac7b2dfc74c4a6355155e136529609408b478a4025ad2b41a02922b0b210007def69ccaa42008fd318c83283cd03511192c50ad2a6c9f2e49ac90264c9752d01c633b244cf7ba4ce6d24af0497a70494f70280c7eb3d5dc71fd1e3b5784d733da594d6b3698fe218d7799f94e61a87a9bc16ee81303f84f3a60eb3e1ae602793df984fea74e2a71f2da5718fe2c1301217e48fe841fe086d67e78a15ded39db6bd2b686cd15247580c78cfe2c2d2e23d2b8b37baa21a5de91616ef595758565cc1410aca03f9272a8dc70a1caf9fb42a55c54a17ef6159136e64656764058eaa346154e58e52a9afb852f74d9cb84ef97731a08a8f01a44edc9d339eb8206e23713c537896f0641eec61192f9dbadf94782d9ac7caf2dedbde884a188fdb4850cab9454fe93a5c7c4f8da6a8a1002904300572dae69be8daa330adc3fec9c45957a45848bcf1deeb9e09ec089c0290413f9b96d279ee0e23e891071233ef3da8d21df773eab820af25c86b29711ba9e3951449b348911f8e05b3b9d9b426a8ad67fa49b39265a55229e57b3f994a27952ea9380e277aaed34b5986c34fa8bd92a252e5683c59e63bbd711f304e637a5be5dce86da5716eb8b772dab413c779ff535aa9436993073af974db77eeadfc702e3838446a706eb86849b2ac7b2edaceb29e3a1d8173c3bd954deb70a004baf9e158b22c02f59f55aa54eada9b4a4cfcf425442c79a4ae048e1c255ef491929ead8b0469949297e48c51922eef3d6d2709f6b8ae3bed9349db543933786fb5adb81c2d1e298788f79ed661a31c1e8868e3a5561ba675a72ddc09dbaa138a882c8250276dc7c46993eef49221b030440846433c311a22cb1041709640f23f36244c75ea704880c3493d9a694bcf49ab6cbcff984d4f0e17fdd353da1e2101c20889132324f83d5290deb2f9748f753a87e4b795cfe963dcc9e7644aadb613d7d560be9f90d460375edc387924d426b26bba07d22622bae6067b8fb4b123691ce93992433683f7485c4f0fa6753d5cea04a507eb21a534cc03698ff27e49a9a7b4dd4f3899eabd9749c9e0cb68f0198fdcc67b5c16a3f3414b74b0cce56129cd55c95878f290f75e0a07e19aebc6c5e22671f123f560454858104aff643d3d5811cea6c06af1deeb569a118e34c5f6707aa34a826ae222f6b51c8c94d27c3a4effcd6fd150580ec9c4b58aab33548dd7c3f9a44e2aade3308e36194d248ca618ef917a8250dd899f502a2e1eeb5af3d91a2305a5f43c329a3c8ce409deebd9bca9db565fa56d5d363192354fc990f88258c6283a79af47ebb08ed2ba0e89006330820b78eff53782437a48bad34b7ab04dfb53fccf8fa67f3acd57dd6fde47abb855a74b5dca7338264e9b8ca861a4676484886f4486c4617a8a132c45c283443ae3bdd791b8bc4752ad4624295ab4110993ba4e322a824711385ed7498a2ce03d2959c63d5096f58e2ba9b8aee3933a75cfad4a5de7643303ae633ea9938de93d1277b2a9215541080b7027215a10226614440b82e86214841641e88c827081881c23222678ef91a260590fb72ad283653da420fdd3d383719c5639e9da0369aa1217fdb3532a65c14420098a122c35783c52cd0d6ac0789c0fd252a39a5d43f388d46043ce783a673484cb101e4640ccf11e89488f073a6929acfba09a0ed31e15b489d400a10569d3b6cd1f0142ca0f96f3031eef3d926a8571dd69d3f429e707387eb81394d10f6afca022d904a136ed79463f48793fd08c7c98c123713ddcd7b40f08e019f9d0e3037e231f6a781d03000e3d2c61d44309de7bf98d7a8062d4c3113de4c0031078f8000f2b1e9c8c78f081d900fb0253614a603f7640c268870ebc243fca4d4a3b4d8912b4fd14264e787498f818e4b594b28c3b490c098e0cda2bd44f9d306ef7100946b6ac9feff8a5a7716f0d4d59d66d599665484878f7fb71c5926a6f75f426ad94799e8a926a926559c6a9b45cc4d22ef99491f62e3387d09465280de44b1d973a599b3ae7f51f4e992df65c4753966d3e25c4c73b6fada5aeb05738a529cbb8ee3d57eabc4f96e1609ca63225cb4a3f5a4fe9cda46fb8204adc6a2b956c2082d5f430a4fb92ad3208207e74f861d33a8d830f3d00e077ab1c7a88256f2af1b0e96e0856c30e36e810440e36e0a0c30d35d880430d3534f430c30d32e01003b539c0c045dbd2e9f082ad520896b154d2266cc445ffec40134b1aaae4933af9f868a81a5c98b0056e4810d9691a90aefd56f3c366a6f33e437c442e08190963628908cc9017090051e98790fcd178c96fa552d462ab5471cfddab5463c552a954eab878003c1da690018b2158fe47a74432609184f71ee7815cc8b8934a9780585400f9f1d6508015392f0a28ba3c41802682b86c015a75dcc6844a4bfda0b40ce064f2f9bef3ad7b4a02c8b2841201b892b8b05c41e28de2c0e38de4e8b14208f8f1d6a8628a9c2744c90b33a0c27b2f482524c97bef6dab4e732594e63612370599f72e29e474621041847745e18282134a4f70c2db3423428640809021ba9775df693e386a08c1a9c982908d9193f09e9294ced6a5aaa050ab26a8ad3b6da7a334274f7c13272a1c133c54da96aaf273d228255ee3e1bc6fd2693b4c348d47a5379eaeed08b17734e1bd4b074c70a37b146ab5f3de7584c72de1bd4b074a7891ca0fc7e2af33debb92808423f8f7ae3b3aea740565841f0585ca79ef2a0277d9915afdf7ae3afae9bd8b081ea5edf4f7ae21743ce7fb8e83c7c5773ae81c0fcb61630e9e9c417a8b43085b432541a1563b188b1547d4e275cfc429a5753aa58f780edb29e27ffc164c7f94e77ab88d04817ee08347a486935698088166402bd1ca0fe7f2de05c71bef5d3de0c17b7276cf4f9a156e6bd271da3fe972b489c76f1a94ae73d2c16382d2fc943271cfe3814e3efe094a9ff8a9af8c8041a99cf7ae1bec40ff686e75c400debb7470e540ceee06b56d5c6c4019e48fb8ce40a170f0de7583207f04aa888e3a99945c36e836ad7aefaa413f6d2b9494f72e1aacf1dee3706eb8b722235096c1089465100887888d9c59c675d4e94a479daef8a4564d52abdfb3d888376ddb98749b9612d4b524dda6555d27a86b49b08c2bbc0af25aa85df553d7d9f9d152beff682939573838720a3185117ef34e2216896562a1582a168be56279ef0201c6926511e8fac07bd719667049a8ec44d1e151b253c58812961c28254b4810382f0271446adebbca78efc95c1e78ef0191e4190001419e20b2e489a0105273c77ba920eeea0007966031e1593fb04e80022135a21d86a86248e74366891020aa705981e601044f0ade0f4e08f901c8ce04240006185654514502a6a0828a0da70b727a5092a45227ec88c47ec0521e0531243c60298f7aef0901800c5014904cc10c0f2481801641bcf7b290f2ac0c218487391ecf164d898ac32beead7027550e7752699f144af573c286c0f38ac011821171821dd8e83c95aea584ec6084101dd0d041c97b4272c0e23d5589c3210f213864ef85e1854feab48003707eb38284d8607acf771eeb6e5839b0c07b2fe55551b41dcb6fdae74e9b8d0f1f3e7ccca47492a06e3b61394268a8820484d08085ccf0ae0af850b790a1a68b134f87189c784f771c057e20000c6d9484c0e0440c19bc1a84bc80434a889036de4988901e2142b0f7b8f494080a5b7cea251720b5848d0d121c2418112efd54d37dff24cbb628ddf74f300cc3524b1000e3d24f25efd37de90d0d64e0a50b1f243798104d442a10e28290166c20a40517debb2020864f693bfe47a32286902053bc774de0bd4b02ef5d613c21419600e3d92ab52d3c5e8b462541e9151328eda96c52f4e6f5c6a4d65a6bad94524a29a594ce39e79c73ce29a594524a29658c31c618638c5042092594504209259450429973ce39e79c33c618638c31c6f7de7befbdf75a6badb5d65a5b6badb5d65a2ba594524a29a573ce39e79c734a29a594524a19638c31c608218410420861cc39e79c73ce19638c31c618e37befbdf7de7badb5d65a6badadb5d65a6bad95524a29a594d239e79c73ce39a594524a29a58c31c618638c30667c6da55346283f3aef25f1de1bc01312e2f2dedbbc117eda7ccafb54d1361f80a024da8e3f2de9a89576658b86f24994f826b4adc97b1704366fea3a2d95ea3ac97b971753b41dae8bf7def580f72e074c09d24fb49df7ae065c0c78efe2620bcd75ce84c98f126ed3765239db8a732d9573023a2dd1a9953fed4e7329df84e738cd75dcc96f3e48a33094ee522b229cf77feb948edf56ddc64cdd76da1829a531d48ad3d8d62812e78ff89c38eccae2bd0b8bf7ae2bacc8c224003a544a4b982c89a2648749694a9429539894983ca9b2240a9412961c28599693f25a341e8f5a750d0ac6f9f19d8e8f86f2a9934f8a89122c4c61d3760e46f25840e3bde7e35d0570e23d2235d67b6fb3c6b8c20bb88d14b44b1ca7555d4aa74e3fa78d73a78efdac521ee37e38bd05d39c70ef5d56debbaaf02ce97ed3b68d094a77bac97b179529ddfb4deb54411b97b3d36aa9156678ef69ae734fedaa0a516828aed350544a2a95ceb2928acbb156b97154c80096b18a4c1853b0c17b54c83ede53bdd114869c3696b1c46d5e85f226395758c6951444906525151745c97bd711a86d63c235142a270a4600c016852844210a50d001148078ef5179efd229e2058d9e30851376f05a183d8106ad3212d475dc6a0af6e3e339ccd469158642e564d97b9793ab08110e3cbc78f162851396e0f182d7842d2f8b9c4c20c1c34258890944308188f7b8c0032c6105a5d112c0580256c20c94d001291228cb704c9c76e2c3a5b6681da569bcb4994a3fab949cab2fe45ce1e015125ee0a86c0d95a433f9e1587ca7794a53d275b2ec8623c8f0b88d7452e9521749bc926755607487ea873b649e119c3032421bef3d0cc90d86653d3d58c76915e6794a03719c9bf7ae21de8583e48763e9a828a91cce53f13ebaa35204931d4ab0a38c9cee7f7ca7d39daed4f1c61bd581005d0726c21d8f8469227044d8deeb72ae88408720c77b244e63363a182988f349a495544eb4b2c5ef8c8680e9b8c1888e27481de77d7c561ca74d3bb0044bd20a2cc152b4c2f92928540ee74e50bc6f4285a79f94442bd04a96c9b93271da64e2b409080707db1b39ab745c4a5382d9e0d50db52bdf358e33c78ff71e0a95e3511a0c9603c87bcf7fac874bad4a405a7a4e5b9120afe5bd1b4994048bf868a87acd378aa30e19070fde7bda4fe904a154aa1ccf6993141e9fd469eba86419f75de372ae704a9b5771d13f28dd69dd0d17fde339bdb9e81f94e609c213384ea3b2ccea001066f0b8d3919ed2a6957a92701b89eb4e3f4580a0e53d13a74da61ff4bcd76d9a89c334adcb3cb77920bf5d1f6481db48fd880fac78afe37caab4f9ee54fad1b66f847ba0910f5446501a8e2d8f4422f1536a48e7519df69b0fc6a13c5086f2401e55ca9ef75b9394d7a2753fa50325484be17c12da4ed77ee382b414ef7f890bd22a8ed3284eedea8d1c2e207eb072f9008027814a3da0400fb4788f0856fa7eabe9c10e6f07637813a79de0e0dca07497d2704a59e64f5b5752713edc8fee74df917395832a1e0ab56aa2ede84e2fe15027ddf9255aa2c8b9d2a8124ad37689f33844301b36ea78416c2cc186e8bdc703376584032f4638e86e90850b86f7ae172e2137e0327a3668c3063d1e87884f3f6d3b07b3e93a37dc5b2122e70ab3917355c399f82931f1d34735c05b6840c60d6fcbd5c2688d138cd6c0f1399da675eda7a0744751f14d9ca8a474543f9b13254c543f9b93f7ae201790ebc77b254f6509187821083c18a20247b0638d317c70a3440c304fc8886066240236b6c04cd0c49582c20870a082086afce002154f20c0831641a403c240038d224fa0e10134e08007642c31400e781480240e98910c4ca3185871c5bc77c15ca22b34828113231838c90215485ab8d6366d0788173841ea3c87d24c5c60c6d39d5ea23bbda4a7fce6bd8f96326ac10bdef5523e2794f64d04e9270f8f2e3d2fe627e68990582fe6bd8cac98e782f52283d582252345f7851a20d221e692917911852cebcd7091def52c244443582fe6c8cbbb9e6559a1cb8965c558976585609ab8accb8ab9649862593056ccbbac20a4d0050353338359a2eb126961892ceb9ab1a470593ede8b25ba42deb2067059d62553e5bae1b22e18d16525e1b22c98cb42c29ac1b242978c0b5e42312d583258560c32214b0c0be6b2ac2b54b22ed18c0f7a01b17064ac171f4248ac98eb12c5d0cc7559445cb0160144f10704ae277a17062c51a846f47259a1f7e2006b08d6bb1e0d0dcdb39e25b22e8b0996cc1584655d2fd715b2ac6919b1642c20d7755d304aac21d725ba2c1822fda84106082b88101bae2eac97ab064b6485ac7749b9b0194bf4ae13ccc37aac2b428f0717588f88185c210bc612c55841ac9017d72593852c1cb2ae4b845d407cd4582f961503457107685d333032976559568c6565d67501210463f9b8442120ab876b6559a122968f1f972513635d445c3a5c3a5c39845ee8592e5830d7650511d18444570dd775593096e85b3e7cb07ebc5cd68bd5c2b52ccbb26eb88c80f9e1e3b2b60c9098cb42c292b1acd065892c27560e57be70b87e5c31d78b15b22eebfa71c588acd04bc8b2ae15b26a2c1f1610cbb28e583a5c33a1184b46645d969559168c0c170c96e8b25e4456be7e58a14b072b14ba2ed125b2f27559365c33960f4b467459969559395c3331214b2423b22ceb62160d41c8dc848478b142960f4b4483e5c347f643891b74b00020b2ae0be68af1164d0cf08713cbbaaccbb2ac222fe6a9de953d2c3caea41e66858e3bdab0428121945145d301a9d031c79bc2c30f1e121470c323a1d9785228708230a4f0a0458942c700f078c2830e5028820e1c60a6000d46b26e8103978e203e5c1e662c4b879587edd9430216d3e3917ab0a043919e312e9b3932a0d960300821c4b069c20e3d18901db019843c315ec8f27a5eb67898488af742efbd67ed71e58814b80133c5cc0f35e8e223464606666606e6e54728071f31a197500c4078a0d8e941a6066646068b80b8608980c42401a40b0509d1bcc0214504bac0b470c5f810d904c90197d165c60a902eb269018a8bdef0524564c1dcb4a00b92274b46525ca219d1132254e832c714d64b36da8108282e910da1223ce822041d5d769032450c2e24a1225404145574a9c1c715203044a04b93185432dccc14badc743e8ae8e18226c64728c88b165102ac804246340a15995018a1023e82e8c1143255e8a285ebc70b11a3982c3ac22b7146142fbcd4cc349901026609511031390a1250a08828dcc8c2c81441f81305bca0cb8fd5ff428a20d2052b8d2e355828666232cc8c4c0ba1ab5344288799263150e804a122e3e406264d667c380142a5df90a0cb0c221b3b0393bd100466e607931e0490812e33324e74d80be8f212a279b1609080997939021344ce103f563e86c838819989a921c8121f3e88767ccc00030e40d820431032353b538080624686143383ccab2325068828c686972c647d00110dc18888f111332332f27284081361bddc10e2e14506e843868732932334c8ccc8e0e342a164e70795a911f920f20166035d826841b4e44588171d7cf820c2c18518ca218a2e242356e8878a88422f04e841000cd0526694d1c60ace3063031750c01305e0c269f99ef70860890060b152858a94274638c9f0ac01e2070060a218c0608f2628c10843e0fcd0830d35c48871031b68200348301922cb2106203f605e70821278600c0d5cc0021410238c2a35438c90be88c01e5988c20e401398a08292c64516a78f736426668c2db4b83e7c0007196364d9ce00c38f1999181c6e4863044bf81e65c7089d264c24804502aa103247458119656ce0892b56aea50106911b6d40c10a0e12eb2306e603072801082af000062c800013908004b288b283736408100b0bd715ae2a88f0c09870dd2132c245c7cb1cd60fae37ae1ef8e001901d5c6e5c6c5c2708997169110dc0f2412687171c82d470cd70c560c1307ae145c835b268442d5c3f5e662e1f3232574ccccb25b2429605f382b810ba2194822ea22bba889ec00481593152808226035d5e5e80c400f10328441488a219805c8003300ae8227ae24386191c6890a28b8f24440108e9f0a3830122d34406c3cc848ed030f352832e326a74816109287cdc50184f00224797973dbabc00b1a1075d80743da4a08b0f1a5ab8628ebc187969000262f85143175188ace8e2020f2ef0102a32322243c3688f285e8490c13137211742373217e81282128dc0ccc074a04be8078c0d229b1f31648980886c669abc081193048c0d3033300300020310187cd0e043869824427944016343e88c285e66d0e58701887eb0d20f398832202ec08c4456a8484889484a101960ae982b3137c4ecbcc4d08205f323f42202120a85ae504c4826e46306075128a64a8c1017a4cc8c626062ac508c888a8c882c991a423740e16387170e7469a103508c604437c82c894214b6e60fbb0a7ccfdf6a8a65ae9e6bca533023dd5cc3a8e38f5a7b14505fabf6db62de21fc729f20ebff35e531eeef23d5d80411e359e1b4b5622ebfbe2590ba67cbaf9f74f66c3909348e52d67d7bdf95436ad5e071ff7921bfdb477b314d8376ac29f7b24e4f7fa67304bd6e6bf1fcd6eaceab9422e0f1cf8f35e411fbdc6b442353db7187956f0eebec2188b77abe75dd18430d3708fcecf9631d2df7b0620d7178ae0f60abe9cd3bd33eef9d5a9f41e3fef0de7ca7197f46b8f1a7d56218bdc4654ce8b7afba66ddb997df037ce6c9a3943552c8b7b71db8926b88b98d599a7054dab6c4c9c581eeed8ff26f196fbe7d6f00fbfa69d738eaebabd5990cbba18716626827859eda31b4e4f37e5e3194f8432d35b077dc9c7bbe2d9c96e2d8e4ca00d41542fa25fe1ec37927940b03145aee2bbd74e68ce1f4179810c67f73c4944789a3b6008ddbfe6e7bcc106abf6192ab02d4736d31f535e31bf3c7445c14c0fd475da7d5114eaf693565e151e226cb7a2e317a8c11e6bbf59f36fbea27c0a18d555a6e3b9d326209dc3b3db4356e3d3f853787b16fc630eadcbdc63a6330b096dcc208f9aff2c78bbff0bdeb2829fdbdea787704e6aef4677bff9512e64b21c0af8f704778e1de965368ca321c1c1c1dab8acb8b9c279df6f318ffedd3ea2ee8d7d1ca8fb1971e73291f702b85fa732c67ad5edf68eafce6802a35ecf6d78f23cc50479391ab0153c2497dacb45f79bfd5a62cbb18e061ef34767cb5f51bd7dae4e282620b7ff77c7ebdb9967f8b5b219e74e7daf5ad7d622db09db7560fbbc6f9563d955c5970697ba5d1db1aadc41e0bc9e59f9ed34877f4d8da2bfe9ddafba969bc73ce1b2f2b24cfd8634af9b711e70caf05583b758434d73ce3ff325fb914a02bb53f632a259656ff4ae54a40ed5b56d9fdadbc478cb909c7a7349412242e04c83fe98f3edfef738c5266190ef756ba2cd3c2b529cb88b8aaf0ffd238e1ef34f3d0eb003fc77d21dd3d6fcfe9a7918a3d6bcd9dc33e35c73573f8af29b8ceb5724eebe6b4d7ef995c52f408f39f3857af77be749bb20ca7ca1585d772d6f93be737cb2baf12171413e6c8618edfef58e3fe3d57976cefee734a6ab9be3f475396e16c6b8f8bfbc5bb7388e9d4512c3da2b6706faf33c5d5d7a86d1b932ccba34308bdbcd57b99a5b63166a157ff25c6d7636eebf4446ab00031c7197f9ff9be9d6348c5ba82bfd37b3b7ddf52fa3c21b442fd3c671cab97f0fbf869095661e62df1bcb0527d39a6b3894585ff71ce14c30b2fd4145f130e8e9cab52add2dbc8d9756e7e7ca753e5867b2bd60eac29688c7df4f17a08a38fd943296cabbfbcffc2782b94159ab2cc5b51a8316fbbabdfda574be1ca8282853f5b2fb5d5f6dfecfb13e4dc5947eeadef96ffba9d00fb9f72564bedc6f37a8d07ee73dba96f84b576cc7113f8b593434e3fc4945acf84deb9c6777bdaa1cf99cf25ec6e2bcdb9cacd67c65e9a707c56db2fe101e2065a4ac015639d7fbfbec71d234f42ef37fe18a3defe4b3b2d1220b45457c96bd5fbc61d8f10f1be927258358ef2d26bca329c27d61d7b7f19a7ce38e7db25ce502c23dc1c39fc1d42ee7785379bb20c07c72a4295995e9a2796dbf7eb61cab2034ebe71df1cf3ecaf87b40e3be3b67b570cb5cc986b22482a2f9793c2d9bbcff90ee1465c21ce5bd23971d694098b0ee9e3d5d6636b23fcf2fb3978a6f376fffdad36ca8ee5e8196efd7b977b6a2e7d1c53d75a61d493fa7ae18edf1242c7f656f837bd3a625f7910fccd9b529f798cd3fa798110f9b432dbed6de694caff03ee39e736f389a9ef965a1ff8bc2dfcd1f64dadc6757a0b0e2c6f9f15db5a2b9c51da37beee957f3e77ce50ef1997b07a50bdf6f9c36b6fec5e57cd03eef7f4b7eabce1d776df92b503aa2bb49ddb08e7bf306a1ccdd2c1b593f34d6da754e26abba05d32712b5596e5e0c65865c551f6cfb7bdde8d68b984ff7f18fbaef8661c93d5869f1f6f0fa3841243f9331b5c6eb839e5fc760d658f4f583880bdda1a719470f3dde7bec1e655db1c31957c6aefb129cb7088c02936100994eae754f228d5aa2b3961d9005b5db385755bfaada6bd06d4f3e9a7de15d6ada3bda61f6d6b32854583de67e730779c2bb69377130e0e0ecfcde63b1dad4be9d8f0dcf494efb830e15e4525cb726c6e2c29ac352e86725b0c6dfd5c67db4d598653ca62cdc046ef2da77142b8a9c7560637777e3bdff4525d7da6a62cc39962c5e0eacfab87137f88e7bdd5946538482c184cd82396d1d2ffe996389ab22c68ebb20c27cb7eb4ad49d0c693dda8ac1774fb7d97f56b4c79ff1836b1a962a373a3d2503a8d6a926529df751af537cb0595d748eb8f3d734a63ff2df0f8fb3de187fff26ef16781867a6f783f95bd437aff0a7aedd456ede1e774d7ee5550e1ed57662ae3febd739f0219f384d77fce27de3c7b14e06f278dfe4a197feed89f007e5965e7d97ead658ede04fada9965c4b64e4a2de72598dccfcca99efad65fff2681cc9bf36db98c9ffa5bb51a784fbc3d8e597b5d35d469f8bb37d6327a7fadfd368fe05fbf3df7546b4eedac5904fed22e35f5b77a18a9cc68481cf1c5b262bc33c63187c0cecbaff75cde2e3fec170496db4d319472faa861bf1fe8bee74c27dc96538af93dc3e28aa7949446e8e9dfd60c0c3dce7a53ea6ff6bbd73268b711f2b973f45b4a5c3db0ebd591fa0ab3f533d7da812e2bf47b52eb27d6bf530e7c6fffdcb66bbbafde7f6e607bedafe59eeb1c35f5930ccf7bae33d6e87b8531c252b7c6d053725aefc497eec9e7d440c4b3768c79cc1c76ce3310fb9e3153893b8d78660c70acb1dffae208bfd6585e60db9b7bc61bc6caa3ee16d839d22b73c53f57fe7705a4b7705b5f25cf36d61b2960ad95dd57796fc6f87e31bcb67dd708bbcc594a3f01df25ec5a6b59bf8e504309c47c23e6d7475d71ed1886b1e1c77e73fefda7df5e0e06e61d5ec9218cd75639370eb7be8074d36e6dacd3ca6bff34e11049629353a30ae2c150aa9fd34d9671252b5604aa965b62ad7bd550f7a94d5986c365d98e05816aa5c5fd66dba3cf5b4b532acb70b20c27894dce4d96a54e3acb36df9d6e5096171f676d37c698d34c3feee2726b6f8497cb8d71beff0137fe0c73c49d6e0f6dbf3818a7312c3746580ed059dae86184fe4f6f236f80a5516a2a2bbdd794655a571ac262c0a7bfde78ebac35f37ca329cb98dc585ce069ff8fddf7cb399e329ab22ccb9828b1b6f8596f8cb5bf5ce7eaf3d7627e3d619d194fa873cd3c8b5c37e7de5a4a3fd7ff5e2c2cdefbfaa9fbae57631db554e90a6fe18e10e76bb5aeda5b216bf5936f6a2ded58f205cc4cb7fc1feb5dfb9c5b01fefe3c29f5345ad8614d40fcda767aabee55ca1d3f022aa414dbaf73cf37c35ec5e537c7eff5c772d6c90fc0a59ef7d38d37e4964f2abcfdbc5bcc679f9d72e9a7f810c78feb867edf7ebf145fdeae318f5562dfa58e42533c27bd5ff60c7785c2d20dfbf676f3da2bcdddea02addf73e3ca7d94b2df2728a79bee4b61ef3f7edb0db0b3b792f3acf38c18db02e01c6bb670ffada7e6923b41b9d452728fa7fe3d7f02e08ae196f5d36ae7cdbd09993b8f98e62d27cd7807cd4bf3b5b5f7cd21b5984bc4135ffe61bdfacb29b74cebe38c585adbbbbf7103794cf1ee16674dfdfe7e15b59610f61d7bbf98f38e73db3dfcb4532b69d45ce49bfef969ed7c738937aef9f7deea0e2dae796a263ecd5c436eebe5f6daacca32d20aede79e6b0db156a7ffb3ee1939ced1de9484b95bacf18756565ff34fa5f672dda7fdb64af851bbc7bbabc7f7d24ab3d632f9b55b5a8e7196b9533c0079fdde1a6e6fa18614df93debe5e6df7b5167b8b4d38ce5e29d5d97278f7b43e104a2ffb8e79f3ba61fe7963bfe3c7fb4ffcbfaf72c6ec69b713cfcbbbdc9077d8359e1c7b89b9e49ad68d279ff3ea5f77ef31ffeaf3d7f6df19abc6d74b3d2fbd3e5b597d8fad386ab927ad1e67de4b707e5b27a7d14fea631600ce5b5e9fff8cfe6349b37cac37bf784ffde7e4932ef16d8779ef7b6b8d547725eae433d28aa9c51dd21c005ffd873cebfd3dddf92651359e9ace0de3aed2532cd4434837cd7043aee995cd29a5dd479c63ed724e2bbdfa6b7fe5d3f6da2d9755f2ae3e624afdf5dc7b1e5d719d17739eef8c9b539918e60ae7c6f157bc659c727f9ed06b9ceb95757624ecd47eebfd2bb533532b05df0eebc51bea1823ac304abf567fecb9fe1befcaed4eedd2ea4efdd5b0e72fa129cb521e55e21ea86719cf4aa51c287e7efbb7ddd6caccfb3cfd92d6959e705ea3e4f84eacb7b75a9ab26c87233abf14decf3be67dfa6e63c4ecd36b7a2fa7f6d7dca9df483a7c73bbb9a6f06e3c3fd626ae88939a2d9c5cc34eabd67be2de355a44b5587a1eb7f534fb5a61ef9a6d92ef86f2e38c21977477ddbb56996cba3f9ff252bb3d9498d62596ea98ef9697533a77f557c9beb2cefbb1e53b421ba5492691d0763a31be3aeafcabd57eb44d657320ddd7ca2a2db61cceff4d59a6d2b66e4304ae3eef0bb59dbe5b0ca9a9a475a421e4acf9f3cb67e4f243be4d59e6531a8a97f8a9d31d97654570e4f7f9dabbe7be5ed638ffd74add09a5e272904c1da1cd94d2ac71eef8de400be19e944ed9699f70e31c899a6ffa69859d7e9be534655929cb9464f45aedf5f5b0d70aa7fda62cfb21ff685ac9672b9564f0ccbb7eb97fed54c329ad29cb4af4daaeb59d1ac3bd65c4f59ba6dd53fa2bbfa5345fdc3d3765d9166df321d5eb2dd63163ae7fe5136b53966d1d4765e5f0ca0fef8dd4fb484dd9dc16f74879b4f56bed3f3765594fe992d6b36c476ebfb3b6337e9f7bc7389bb2ccc4ad54a54dfba52cc3c9b1d9a2a764191191660f73e6b5ef4f7bc7d394659b36f15296e16459f7f3af60ddea07889b239052befbcd714a9efbf7d09465387805c44d2975cab2ad53c177fc7c23ae31c23ab7b5d91a21c71c39adfb4b5dbdefb508f0e60d21c619431f7d851d755aed2cc3b18620b2c3c6cfb7c65df66f7187515447ceb0c3bfa594d24a4d271130e497438e31a77cfa3c042b33af3edbb975d533563a26febd6be9219e1a571aaf10cda12dcd3aeeeae5e75d632f0795f26b1abfce59fe48a1024471f038e18d7ac379a5a6989ab20c47c7e6089110baadf34748bd9c11f30883202dd57e5f38e1d41553da4504841c2f847ac30dad8db8a4f52ca21f780871af5e5bd927fd306a4025ad2f21f281ad5af7dc358f5acb8b79e77d522238ee8dfedb8fe7be79c36eb588dee0f7fe5aabef91e6a9af366559f73de835637cfb8757d29d6737659949c4831d682f6fcf3b632cfddf979bb28cd3543e221dc02fb3ae7067df4d3710e5a0de3d6def7072bcb5f6fe0b911b70de9eb186b2db9dfffe6dd4bb23e7f95ffeebdcd012a974ca68039978946ac55373639d216283ce5deb19221cf09b61c734fa6e7bbd4159868313c50607af541a8af500d10d748539c619b9b772527cbb10d9c0737c3d9e1dea2cebaef3860c510d62863d7ac871bfbd7fde6d6e3220a241e55dd7da399cfc4e8913e526cb6e2c0888d6d8d1f399e3e450e2e96d9e019f18664b67d6dad27ab30c74fef7fa9b69cd300679c33cebd6b2ff4839e7a62c838194374a2fbdbf2f8898f6ca3dff9fca8ca17641c694e39cf1fc15c21d730bf2f4b2ce8ca1b5d4decd827ba9eddfc72fe3fc98c215609e73fddef20fbddcdaaaa05618a3c591f74cf7d733052214d09be7ae5e6accbddf1146407402d9a99471471b79cd326bd19d17221344f83fb6daf75bbba7599620d3c933fd31ea183bc49304ff5edcfb84fd5fc92bdc6ae8fbbbcfb6c2e869e6719ab2acf33e5d88d2d8fbde3eebcd384a2a3d1f0196d8573bbda618735ab108b086f5737babcfba56fdd1b89647ebe1fcbe4e0bf71485605feb3986dc5efbb3f63775d21c170dc52615c5a6a74e47d8f8154a5bb1913206f9236ce2e66fc4108160525a7b8dd9eaabe7bcf60319c279add4d0eb5a7790d7522aa94467e4eda994dd46effffe549bb24c55c229c28a8d3cc2261e71a3d250a878d4de340788ccc0fc66cc7daf7c471f2b2f43e48149edff58e309bbbd954b539631014412206e98602245f5c3451d80ba7adc739d5d577d2f356559c6248a88037362fa65f61b7f5d63ed36106d60f60871ff96de7a6de6119151f3c4307f9c719c11de3d46c593c6dcf7ad7ceeae2b14220dc47d75d41fe27dfd863367a043c8a3941ef3cf75951b0392cb1f77ec5156ef79a6a20becbee7dd76f219a5f53f1b406481fb2dc71877bd258dd4ca0af04ca7b6b5efaf6f94b44721a2c0dff47bfd6bbeffdac8411189d1e9fcf8fb9af3ed95e2b94434810bb9e510ea4cabbd7fd7954802fcebd9a5dc764351183d762ca5e75a5e8b25c526244460507dffbcfb573c4d3d75fa59864345f4c5fedc46aafdc6fc5b696704f2af7b7b8e21854e8820f0a3e43d623b29c45ac26885c88b4fa7bf7073396b13a22eb2ce79464cbdbc14de9c653829edc4dd1840f400286ff67e479ca39e1e662a440ed0facf1c75ddf6f74bafb52a206a40fed556692fed1c63adb3e72930440c9097cfeff3aef14668e7e7c272b97faf7652bbe3cc5bcc1e21dd724b9f3dedb06bb135d752567b33fdf5739ec59f73d6bf7d95127a593716926ab929a717c66fe3d7574c9afbeebed77ba5fd305b01efc77d42293bc5b6e705d05c318637768da9b4b82aa0d36ae9e4fd6e9b7fa63401b26a7ea5c49ddaba7384088872d7cd67c51beb5921e6f1a22ab684557e3a7b9c3b579b6d4c9c76626361213a0085d4ef3badb53c4f1e21151b9e9b2cbb4189a8f877d3fa35af78d2c93ddd229a42fb291d254a84104931441445e9a4ca918289a038a9723c4f693988baec10da830bf25a7808e97152e55c89c243280f1f1fcd2344280b1c16b81216bac20d212b9470085501ca284485184253d0c235d4161292029050145e0841a17452c5107ac294b1c6d97da7bfe67cad29cb747cfc4e96e1e004712537555251b2ece7a4faf13c369ce7dc046d2b4efb8d47e3b9b9901072c2975c5e7fff87dd63ec3d1edecbedb7afba476e879a702bce344fbfa3e59c637db3448809d44afea18f787e6e25c5a62cdbbdf4356d93c224b4045ab1cc387e19bbdef87f53112125f48e21a7dcfeccbf97309ab24ca57fb20c27cb0e7684478920bd6d5a8692502584844ee795d672c8f186184b2e89d0119408ddb14346a83bf25fe58d35631d3fec382062a808d18e2ca13a4244b05f5fcb299cbc4708ff265273034343b0f2ef1a37c5dfd3e171f41042ac3b87b26a3d47f7d2563a73b7dc46cdad1c527f0ea9fe1c4ea923ae7174aa21d5dff64caddc740ae1c6d8adbf70e33e37a53d08726e7e3bdddc47e83dc74098f5536a39b47f6a79a1fdc19e15d70c25deb67f3c6350c807537f5d2395704269a1e7706c9c69eeb6c24aa5f711bfd16fed19f6ef2daf747adb83100fa68478cb4a6bd51ee61d81423bf032f32fabec114fae6bd581e47dd27ced96d5df98650e309f79cfbfab8f12568edd88dc7e0a7186b9db7eff6fc3eeb9e9b4f1738eb9ff4f84d8889ae23af1fef3f7a87bc4c1a6f5761ae3f632fbde6f806dd77dee19e586f3cb1e45c80653f2ae2ff511eb1d799d0808d5a057cdb78e1a5a8f6bbf34e8df434dfbcdb7fa1f235fe3ee5ee5bc5042d9f39eb83b119a41bf71e33bb3fcbec399ad0c4231c890db6fffa7bfef1cb9244008067ef688fdeeb3734933ec2f88bbfede31eede7baaf776419594c30fa5cfb1cb7e6f0ba09dd75fecb7d5f1db0c2d2a422ce850ff4d6f8497ce8dbffc406805b2cbaaefde924a6cafff2ad8747699a5b418c3ade94d41965ede3dabec917349231b2114444d6d96d2c21c69b5f082113a41c45d7f8ba5ffd57a1bed172113744bf1b73febde39a5df97a0da0a3dd65c768afdacd48b100966c774d27aafcfde66e9bb94075283f3a9a3fe32faecabad1789501a157e986b9efbfe6ead855984466073b53c632dffbebafe8c45480431d6ccf9cf9fd3b9efdf213472b47eee5df5fcffff5e4d591602ddb7a7f7622ea7ce796b5396a17a2a150201f435dadae9fd57daadad29cb362765843e60e39cd55aaee5f5fe7f6fcab231426740334265503fa3be77eeeb4d59f6c3b1f494a7622120e4811f61dc98d36b758c3a625396dd843ae07fd652e65ae7f7d9d21be200e692f7c92f9e36e7babf0d946203a3d8c01d1b08c5063ea9b1b0086d205a7831bfbee33a73aeda94653a213234d69fd3fd71acfdf31a9f088dd16ddf76e7ff3fcd77d36a80900636de75d289f7cea62ceb364df5732af594ce321c2da10cd0fae3957e729ef5bf369bb20c6715c280f693deabfbb59afeeae1054217e052ebe8fde6dbde5bfb3765d918210b50eb7da53272bda3ce389b7c97d23e5242158830e3d9b7a7b2dfedb72f410951a0df5ea3c5127a7ab1c4db9465abef242446ec36ef5db3bd38729c532bad88d004a4a598d7eea5a694f7da4d599624cbb2ccff947ca7734212c09f7f08bbf7dbfb2d51fd8473e3515dc7022314469ef24e88f1d557cb3a2f1891e35b35975bce3d2185a62c43e98d6f5e4a962d097db1bdb4956b6efdd4b1b1627344f7dda65151adba5f5252adbaef59968050046e9c7f563ef9ed93634b4d59562aa1b64e55e1220401fce7def7e73d799f196a2fa084ba083de052dc6d9d9bf7cb44c801b75b0db19f1d6ea827a5a62cc38992659c164d335955841a1062c04e888b1965af9d625b79b67ff7d016ddd73b6f8e17577dfddea62cb312d28246bf358553ceebb3fcd894657e53052094859cfd7fb879dc9ac20e61b7811016d9ce0a7dcd7ef69ffdb413085dc1f3a799c6bd219cbce70a84aca0f5fb0c39bfd35e083db4ce082d004aaae985d976ceed96500112ea5de9ec53d20da7f7a85002aea69cd65829dfdbde6eb59fd2f14564d94d014208a8d45bf9effedc7fcef5af2267da2bc697e3ccadbdfb0017c758bbbe515be86dcd54dc6abfe4b94a2d6b841b4f11ed95de6e59adb73bcf2b059d90e2b923fcddc61d05d7bd432b65c7fdeeca2d14f7f2ede7bcf0d74c73aea12eb5538ce1ec53c2dde7a47b64eda3a6d667e979f577ea51b18edf576c3bc5dfd63cb8c55b5fda71849d7e2ab3d033aff7479f25f6356e2cf43825ffd9e26ea39cf50afbe7f8a1de387adae98c56e091da6b7bee315b9a7315fad75bff4cb19c3ad70b772e2ac0aaabb6b6431a7596fb4f81c38a739cbc73b9e3fc5c0af9625d67b693f73b29e551b0fb4b4fefffbdd75cbd8642a5317bde71b690572cf313fc85fc6f5a21adf97b7e9dc039e7dd6b4ef1eddad28bc7ff39e22e398fd7fbeb6d132abd95f3b8abdff0636b9930af9cf6f2ba2b851dfbba045be3d73b5ea9efacb45725709ceba5fdda24eccaf9be9efb6fa1afb522816a2c219db2f6de67f447b8327b19edcf9fde18f31d9372eea3e658726da1a446a81566af778554fa997911fa85b943de71f696663aed98bf668f3fd7f84ecaeb9878d73a63cd90f76a8940fbc4985f0a37debeee2148e8a1bcb463d9b79e938e1a79fe9c66bb73fd1fca39628d54ca6b3de774722f07d6f9f3f8bfedd056cce3e8d9fa7c3fdc19d70db710babd9063d9edecb9df1c83c065d5f87f69efa79057205ce86bc5bc7a6b21edf407bf5beae7e7d56eb8a184445c3e88374e5b29c6345f3c778703ca8ce1dcd366ce33f4d69465a953c977fac8f506c7b766a92fff7c5e9af1d503dba1fef4d39fbf9f527f1e60ecebbe30d7ca6b9df8ef20779fb1a697672c65fe5d075957a861f733e22f2be539f0136e0de3a437f61d297743f78f27e7967fedf5cdbb8d4b73941cd73ce5b4916b36a2f7b6ef7e6b86146aaa71e03fce5bdf4f67ef5ff27c037925f57e6ee9e5f69a631b5cfb35bdde6a3937f5fed680c7be65deb577bfbfed970650f69c79bc7ac635f28db16abde1e7f8773e8359efdf1af7bbffeef85619c4a9bdb4355aecfdfe98c600eeaaabf7f67faafbce30f85142b825ad5af71af17cc1f69a7e9d3f9676729ca50bbcfc9c7b2f3bbcf963c9af16fc6bb9cff44a783b945aebec8b0578472971cc7ef2eca35f81edb8560d6f0d9c45a8347169c59994c328c610020061291a0100007312003048241e8dc582d1905cb691bb001480014c8c6ab44c2e954983b11c85411404410c8340000084186400214649c6b207a5e84a4baf2e4dbb773186425f343b46284b55f1c9f21b886bb008b38f7d08ac36da0b9b2ddcccf4626a462c3321d4c0a5e907996084247703f2563bcc669aeb9d820fc2d01f4f3d2ec45cdc4b1dd1addfbc9d4540101631ed342da08654c64a3cd2aa43f32a011268a733781105e54ec87e1012ea6a2010a35e4dc1e5f48590b21f8c13d7c8d813cffa9761380a90f9ade8e748b6fca7e817c810bbdff1d0c0574eb00664067eee8114798bb792fd313f41cc0c3ffcb6c0c88d100cef1dbbdf2e2ea3087dc36a3a3bdeb0e73c199b6325f1546c2864b24bae768e9372faf7db8eeb0265e490328516ade0d230a22bb277bb6ae45c6b4936bc946b895e379b8c516fba82afd5d83e1d4b92286c458a7eba4909414a92a32ebd161e74733df7192d49bde98f25774a3e18c401f59dea3ca4021ba0e18e660a50f3212a7db52534d9cb47584105ee9269629d41ea95899d4c0da4657b898e08f00f8bd7be30d6516a27b1d2a9d802ea16929b27f190cd8f2308d461c755516b29724404d358113e20573fb7d42feddc2a0d2bd3d3361896ab13ad0c8a1ee4fe3f8cb792ebf2ccf73c6f1b9ffffffeb816393df14870b5e0ffd1731d01b43925847d740bd3f3af2fc2ad08a18b72d456cf59bd09846a598ad0314420143a9b6ddc9f8bd0eeed0a8aefafcfa6368e8b13f762f7c810dfcffbae72e179ce3356119abd2beeef63615dbcdfc8a4defccf5da55f44efaff42eff60d9b7c952fa11b1f47f94f3db7863678a40c898bd08e76c595423fe4159475df1c41c4df7131c99b3202107efb1818a0134eee626fd50ac14c4bf2e88d5c4b77994bcc860f5e083ded4726bc2db8c356f50c6dda8bcdf70fccc2bfdcdfb0cc9b9decc4f9c71857f9f8d0f4594810f4acbeb8e5fa254748bdd4a12e1188f6f0abcfe49bdab3cbcf7d81aeaf4beca0a1f2872e326a95bce12184c68464aaca381a13d2a88dd9a93c9f4d388df0f93b14f5a0942a1df1af61d6e7239685210eeec32e95126aa6fdd07bf90bcd60faf29bdc2005231873b8ceac2fb8766853079d8884604dd88959a2492d67c44ce0a47b02975e59bbb62a27cd61eaf32e700e5be0700e621484a58fd100cfd1cea9845443f6d2c43fa204a10891952715d05a0608ee588e839ccc4380b9907e68aabcb40e5113f65b94f97a280a17a5f17613a6aab440a22f57b8f42b682d832f5c3bef15a77e875b65a5946853250a1dc18b94428a0d292026c066c91c2624b707e6a72a3f10cadf55e1b64500427915942984ab1c41997a2e3cf43f173f57a3101adc9c6e539efbcff33a303a9687038eb31a624a2134339de4d6a6b430666d1b5dfd8d865627031d26c678371bf463d0b0ca1fba37145a1b12d15f33c1c58a7c8d76d13f31e7c82bdf6c7b535c40fac7e24e1b3c4a752bf4efe2eea1b6b9f277e29fda324df57c26f6028e21cbc94f1cb8e15e27ef9dbe0a20ffdd4885ddeb81ca9cc7b9f0c4e515316f569a725758065e530691fff7b3e673f83288686d032ecfec2c4d96dcde4c8cf4e4f0094a6ca7c34bd45bd20e185aa7bc44d52f3681dca9af9c7eb68e54b0b60b99a07ca669db7a10242b8df6a05bfd16eb69f0e77619dc60968374c49c7da6877fe1c9208d1681de868345d851aeda6f1aba163c4dc68d6a6592e1b7354e6f8d6745ceb088e4e81919a03c1555d44ae1e8ca68616a2e3c649d11fac461f60ec5d2fc3d31c36dbbd9a4536f483440aba0681664f9e5147bba825305267770cd0af99b6ce0dc9617b21fd429e3644712c12e3183d09d848099612c4dce3fce6aa2da1265f0e4a0a66af8300368ffe9c97800e022540a822bb5461a2f8f1f474bd416453927ab2f25148b24e654690c6f7472a066fcd1de881d6898a959f314a8e827fd4ef6f0c3ee6c4317cc6b5b8806724fcb17cddfe18ae2bd3db821f2501cc04b9e334a6fbf5a85e73f03a84f9fc9f22601b5e30feb1fbfb6eccca6697dd3d7dc9caa2a170dd5569f913b3c14aec7e8688b5248e28796267978cb8f1d5d6ad5127968ccca20d25684aff17c3a3febf7318df70d4d95bec770b33ff58b1a7c83745e2bee8a71297009acbaf97e970fda56eb9f0ce6d89b6eca0ebdc6d8343c93b35a36c472b129e9b327e341cfac8dfb19a9dd01c09799411f36e61dd1ba06b936d180679e2d2e1240cf432f88fd4e45b932c2783b6b92256a49747f23185b9b4c8204ce65bc7578d1de21e4506abb690dc7160f788718a6a2c34707838bed73b046e50ea2394707299c139a34230370cc0ae85dc4cccd1a24a1c7ee6d51928f44fd86d2ac56c37917142f1d173bddb6b9660656c3295b27cd63824d3e6f1682ae81de04a80e9ecdd3f1b96378ada8903d1335d8d60c336f8a38416b2d8bbf11709308fd6b0ec4ac293fd72a4065432d0dd53fd9323003469b7e20bc8e7f8b85bd768eb7aa061914420cbc788f8f9495bba5783af4d6c111f377de5560e2958cf66eacabf1de921422d40d801d1a4f6d832acfd62e2cb19a10f7753817400ef10344ff79077d52f3deee9e8f82fd5255c3fa37237c5e5abb836263653995b9b7be5da891f8b8cc8a44f8e6d0037956ab689ff1ab6624564e14772dc616a48062f8cce7cb323b92e3bc8d14d08616b025424c7e5e600741c9c4b2e09fcc1f6a70fd9f3c0906a72d3975e0f182bec51d200051f45a0856d99652e048876622e0ed5b2c07faa1888c749ddb9cce9a0391d300c5e94e5a49fd43560c8c2352ebd6aa416765b58531628145da39a7bd322605cf2f0061efced91b802e63d50382bc7d0856abd4f017813242b602f534a1bb4f03e90b9d413cd984115931088e805d7c0be2dbdaaa90adb341ddb1d3e801531ee124f332f53ae841f701089710c1e2ed219d8e4c863448a2f67ac4e72634710422847286d48bef2366b78f606ef3aed1ee3f56c2e44615b294fda7275833991081c525e11c4bf6e5f1d9fe5f77d03f76809872de4be4927593c6b64d0f554a3630b2277ef66cafa8e39cf6f7702ea0add7c13ce53013d2cd1ba5c8884a7483a426264dcd4887ff6d7b07469ec651d060842b44afe989f25010c96471a4df8948ef043f3770d3a22f421d61687e40774ec0d452b537cca76e657f0526e956494ba992b8b485f6aa22f38168185d158d23156b0d916bb8c5d62544d67a09aa92bd41b10ddff32922af77392dbb4c1f91863141b921ed0959ff2b53d1d8846f48454592b27206a3f6a4f04cdc1a7e34206f68108c0fe73cff22f829590ef3e61758a4d20c1b64e8c361b2ad539d14fb779cbe4d921b6da26b605eaecde9f5110ad29324faca5cf79869035924ea917f4f69625f55bbed36ab94fb16800f3255f353668565700a617e378e578bfdb9b19704c5ab5f6b67baf2d84c12b49a736f1feae2feb7db3d462be6b09bb09d0bb18c871333de939497339b017d99946dcbfc94266cb5e6deb46f53b7eb2deed2f642df66f5265afbbdfeadab977eac94879ff9a823a0fd0b08c9b2beff20e8a3e947e29e0a69047b18fa24e4aff947ba1ccb998385d6423c7bbd07006607ad4946c8722d3fbe7440dcd28371b346fd4346cc72133c14c0a9a9eef6c10d3c3a0e91be86ceaf7e7a60143b0c2fc67094ce811be0fd783cca5162bb5aec0d205ab4b2d506c91926565962ab4badcba45ac71d28c02cd9f3f62681c212f8512314427e895096d921ad4bf51cee2b3fb2d8e0dac0673529ee29b425140d3904490761043a5a5fbeaa8ec53ff1a2b47caf733653af4e95cf98efe36553a723f252d94b60ee7495096518e8caa46ec2ffc67f6186dbc9b73ace2ebe60ef4e14e6f15ceef95534dd4201024ea757bd9f95e9796d1ae33d184e76e93b9a5da10ddfaa63cc3ce799eb35a0ff234db89946f58f31b0b4c4a42e6ab4aeb0e87ac6536d43079be3b43e32fde7467756cc9ee5c16bb3c375ac75bdb650cc47713ae4379c9509965cc8763049d4d475fe5ff768bc3ea77cc12275a91949787e2d3db165c9596cdb55d5eed1b171f3473bc80f3470ef6a0fa4c5d3cab6733768ccd76fb64dba952c95e2563990e4d442d2875fb1b48b5067973e0c490ccceca915e163804246ac9d6daa740b6e5eaea0a0ff08b2791e596c3d2384236580b9f39b1622c58cdfed790f726071c8cb872fde1fc83f5d2e0b57b56cbb216a9f17fe08a9569413f61cd7529876bbd6941b80a553de28ce35a32409d412b0507d24f63c66fffa65321caa79d3ae7872a56155de729ddbacf99f39b485f3451b618d689eb5ccf3d8620741166b41bc1da3406401c9d1024831faa2d95e0c6042edf66c9928107ed3ea82b80783ba585e56eb5592bcc04234f97b6729ba6050acb159a186ef2b5814c248c0a2cd346c728fb0d4c7fda47336a1e9f24035bfbaf506a2592ab3ec849db155954846f9135ae0c1fdbe078b4b34042cf6402e21d67bdce431b8be6545a21953270f733fdf6cd5950e1132c841290bcd96913cfa0d5fb1bda346bde371536ee4e44ae27c4b42e53817dc6f9a291c4c8743695efcb2ae4ef2cec7a13ae3d5df1414b19005dc13d56a86a8403119f195de5aa47ca2a3b3533dd58cb15a8f8edeed650e7e792751da58225887c046ae3daa29e6ee23aad9767029bbacc1a923fa2874be82523c4aea85ea5a44dc4defd03811863f22216d4587a43be03a1a41af2c3985676b39b31d3ad452f36a8f651337268229c96554355c3bc5082169f04bd3eba4cbe19a48988f3bbe2697407a2d280f0b3535510f5d645070ca24e1ea0c2c2ccc89383bea5a2c3e719b84df9588283ee8f049f08fa2582bab5f9fbec701ca3e96c7281cd421747078242635ed6fb8b5eee90ee20e45d88e278ec811c6e087b497adfa6f01cb4edcefcb4cbcd96768010e4896083694a81309234e4d3d24b735eec2f184a8a1d5e4c7617c3bded87014fed40edd08b43affa796b16cd7f789b6793c4bedb4e1aa5c5aa49cc1d0c3738d1d341d0f80e880d5402ed72c8cba15484a8147ac5d02e415e06a54288ca41ef90396897425e0ea52244a540af643eb4cb909742a918a212f4caa05d087939948a4054cc30f44a401723a4e5133b5c3dc42ed75e8202c804103340770a6962a84d103883082164e62075520d754119ba8542c71216613ada9a2804e4822719eee007117b28e53a207327e4ab653afafe3423f801629f5d80931ebbdf1db53c4788da5cbaaf221df02b05be8720a38ee74150c4404dfaf6dde58188dd6bd2ee54ba54d43710bd3511214cb5b4ba2d9636c94b6144210ce99851d56215e5179ec891329405aaad67b10b045f3b80ae79d7fc4583acbbd8983eeed4f2b5f46af105a48bcc2e035e4a7eb578dde935c0974b57dacc2bd661d7be4611dd383dccc5e3e3e45304b20fca6e30eb109b622c32a9076737c83a944d611639eac1d80d643dce4a962228fbc2acfd28ee5129c8229f7a0fd9a8291bc56c43ec8db18649399c4d204b50f68559db510e6313902538fb1eb271caea9b72fda828633bc8ba3e3540d6a3ac74a7506223eceaee61fd265e28c6a761145cdb2b29e17a3c2807bbb3ea8325231e105c9a8cc02e5a243cc89841d170cf89c25010e655178540dea84d3915efdaa6c74bf99af6775bb86a9e02eb96dfbcca6b27d4fc72002b3481c94015b76d551e4771b7586cfab3b0a5958c2c124256d170899ec46db059b04e87d358d6ce8441624895dca4c8e117f9c40b72549d9d1c480bb189584054e11b786b80d9e543e87d37dd888cf60bb7d6c5ea23a78c58ce1d3d3fa90ccb5e4b1b6aff0b947d576aef7001ecc9e014881119df5672e3a56ad1b1d4b541a1e8e44aa2c48c0cb75db46ab03c92b667a194a8292e32d6a55675f5bf9cb10e838348c16b4ee8ee31865bb0525b01c61cad4b7a4c00ca170db011f3056ef7d2a9cf1117cf17a54dd9854d5a75755f97ea5a012b5daff5403a9bb27a5ce52cf500fcc4209aee76e1e881c3ca65dccf0c0256cdc5cb33733820c1922cf2c0de74ad71439c7cc700ed365a9b80466b86ad788709f3c0df47df32827e3d43e0930066820e10ec62cb015588cb6d970dc63c1f624904208121fe89e5874552478d33c3539e5c9e384318aa100c8fe1377aed30abb984a9df34bfa19639d02e05a61804625ef4a4c3304cfc202c4f283a6fe10c2024a5411a8a5261a17bdbdbbcb4149298850eced821602a4804c611ec07f6bd22ca9151253c7999144aaffc4b8ee9d220139deb787e6e2397008f153a7f8657e063d969067f9870037f90a08abd891e595cfe3fe6689335fb671435361907ca5901c620bdd72e7f2093ae821ca231d192aa388f134b8fc65c0deb56416b3be01f314cacc52cadaf64de5e402d2ca1ac11d1306b9a884aac884e0c035cd89fbbaf220a149c78c18abf802561df182d28208ccd1965333f559311be7156cc7e6c115aef44fb982b369ced12a1761e43e6917b5cd7c6a8be51468ed995e42b4afb1c5e390bce4ca88fcd019551c533f4bc94ce907791d4549db1f2f69b12048d53a1057c2299354d719cb5d2a55a218e0900962173b63518f0ef214feb70474ea6c17c9903a5f95ee475074b5699c278bfb4f205450b70fc6dbecea019155a4004ca7d77d1656cac4c0f58bd6d17e6740c4970ea09baaad5f51a479019663732e40c079e1bee21db47d5f3f87cbf57aa99fd1fa37893df853f73d16f31b62051e17ef5e2422b7acb67dbf2bb897deacaf308d48ce93d0ea62bfdb13a556182d57399fb3e5f915d82b5fd243138593d433556ad2dc414c766b35439efbd778083b3015da8285ff019c5f8ce9ec1c5ac104701c3056052624eff2174b2efe57773a7f05d54d5126557fe2dd6e57d258184fe5161990141d84f75d52bb6ddcde9344d9b7ed5f51ad16f25ae67e15801a9190b9070b6788d0ed5a803fa4d0f04c2a6686c6eecf252560889526b74cf027ec65cdef8d3578d36a04d75ccef31d4911baa4aaeca9f0c89f6f2ab818ee5eefd6047e622efa3ad70fc7bd1fb47942a64ce085dccb5cb50a912262bdc48adac52005f50dbd3b1d69e08f6ba2653dc09c282cfa0fa19cc6065ff5e75c7e963a9add3bb78bd19b038367bed94aaf6fa7c6789ff77d0183dd284b4cba069e12efbc36c03066caf7241f1b72bdeeb28b864fdda8ba9796b3c6cc185e7a76abb46f4a165db664e073d29249619d5af5935ef9c9492154f82243a9f2f466212cbd030abf72cd91346a405fa790d131b3f763087a13e55ab9683d607802535a71908e6709cfe89116d5af1a4137652e9ecc374e9f2a0fb7bf060572caa0a0fe55d097367ecde0b36ef30cadbd3b0e5619d837a74c96e54e750de95623cabb2b7930db7231c264d41be6cc02c0d889efd9e7ebad53c0e415d66f557e70b73a6305d97cb7c9fe79e3b868c58991ac030fad5fd0e96e8e42317b0b179025e39943fe6226b94dc488532b99eb0650460dc07412af3213a4665eb9785347345d004493ced526e8a30c008e1bff16ca18b164992b1f275ac201c6d1e559fe9c928200e235c74b21b90ad02b16b284734f2f4b198488fba7670bb61997e923cc3d74760670df3563a2bb0a2ebc90984f0117bfcadd0b0349ba2994175816540bf429ba4dc3ce0fcc5c2a23a37b2dcad2b27a3c85e99ea2e45c878bf94f27d46809ca75c54897c22f2cf9146baf0738788a6ad97ac5d1bb975036e949e0efe2561c20d83c28800b9d1d3ca525aaf3436d387d73590bb2c4e3efbe79e233e7a333e50c639ba07f116fee5f6f20c1e9fad2815d848c89289677525fcb9c21a662bcb7e70dce7d688ab492a732500c526b47c7068f59e2d1cf60bbc60b7e073496b7a5633e301e18bdc2f9c1528b6e4c50bdce3d0699dcf6b50a199711cea0de8b060c894fc8173de47e4e9f39f8a11086ee6948333ed7a1dab80e7254e963eee0a4cd300279040c1ab65e87b748634cc12d95e90d1db63afdd4a2677c7941dee18c91f2d60b925cf036670d85b6cf70fb960d105ffc4851de55f05ea8b9553f501ee8d4b8ff6d787f32b6e9ac1a287f31e4efa31fe3b065fe8580d8397f1b8fe7a1ce09c3275897b64d10f86e82799cbe34a5030e12b46f53d7874360c6ca23fe5c94c812a7af117f1ebcf81c0ba8edccffe3fa11f304cda6141f274dca1cafbc92d3ad9d9915d2239e5e23ab6f98d5663d278f57a0897e2a44587716e7ca993638decb3a9b46850993c005ad0449168d7714cb4a4ddf8f21590d1325843cf60ed1f955ec0edd5cacbba4fffc6945f6c30a5e378593b2d291df7d47eb48536cda03903d8e11025cf14c31309850e69da5db39fa66486f86727adcfaf3dcfd3eebbe13ae3f3f40935fd0715ea8340aa8ce5462c2384d5bbd97380fe612a90f572ac2123f1652026d168277eee51977d8f9ec0bbef5cf41d7f0eba7c33a1bfeecc9a375e0d3ae7f2a87e82ced72b3cd523b58e7fc8198d5067b23f1fd3ce4f4efc39b52a71e527998792ff06a8afa95ec28f113ff82fd9e9f078bc2bfa1c2fbb35441d854a59ed4ed0b6979b51fa850c7bda0ddedc14eaaa5dc26f9ca8780dbb9b023eca119d1105542e50645f217ff00838f4d901d22cd8dcb00c5c9e8fd4b66a6a4878c5501232249d138836ad0d31b9780b2679a915a65537c2f564181bedd77d8a95c7d42a74754264f8a491250f38adb64bccae2778cb269fc8c6d8ca991dd15e5812b174e1ff9ccaa7f63963fee46c0e49d63386a16d850ef0f40b5569a1e931292fc329cadf3f7152e635a1ffc6239c3cb6cb8d67a544dca7d6d0d7d062afb7b050fdf800da9be294e82c50402749be5341dee9fe9cc6b71f98be7a4d6c0ab4eec780e1b6a8bf9799d540da005b7e28ac067b13ba017c2af50b162f4fc2406e927427fa761b67b6e15f3e7d3eea1d8056f61d51cadbeec76739ffa6b64d9f25075638fdf5f17a9fb9d61f208f580e350c9fb53899fc8bebf7580b788dba697b248a8119251f5061ba614469cb3335f63c1ea128401420610bfd5e211bd86ca202abfa608f0702fdd17d0804f5094782364c728001ef3dfe78d07ede11d6f1f49eba3fded30707c3a024e4fccf7b653d0d4df627aab87d6fcb011ea1da6ebf2c3cc31d6f25a9d2356dfcff531bafad9f9c15069e24f4a1b186f8d01e3446dd7d542a9c690e3adb69667def8f147e99c0f85452fc37f31f8e6a6622cf58f787740e44e7e81863e9bf5d3102b66292b23997a74dbc6f0d830cc221be41e81be594b153af73b58b34663b957db8f6c8bfc64c89a619118f9fceef93827118bbaebe17dce2273183cf7a5eaf1bbfe2d993649a7021755c302a74a2c134f225afb3d08ea428763efd5fbb3626ffddd45dfb59f6bed167ce3fd5f91e7a9d53a218ee3373ae703111c54404e53fd367e825b89eab7ef0903ad8bf617f877c3372bfe8097f9b71b643cf94c0f94671f3d36775a63fce5f36d6d5bd0675d9d0f73892eb9a04bb261fdd6bc3554bda6568a7a31bef3caf6ba6db9d4dc9759e6738e26bee0790a7250330f67f863e433917fd91c0b56dda19893a4c1eee01d683c54e579a79c39b7e377d04a21ab39dd8e6aa2afdeee8e7c0eabd50afc3545107dcc663d7a17e958e5dd194d8d38b582cc55693c89513ee2713813356da0b47d9043c38661a89c32a5ca2e2bbbc45a7883f9976db1476123f6aea99f5cf881c8935ddf4f6d1bf496ad94547c8bdc9d7cc74ad31fee869ef6efb61687e216eff660a0ed27ce974192bd7f0fdd3b79964cd919ec8b599cfc6f07a33f6d8abed273d51d533f6cc113b17b5b8eaedd2bc93d5b7c50c917bcad499eb5f31f9d26bfa892da3bf93f4b20b8e107bb3eff949ad23ded195338fad90ba13eae8bad4a0a541b881dc36506d86b341846db86bc6b506546dfca859975d42e49de342fb718bd17c15d1c75ce170769709b67a10328ff471bd764676473072cc5ab9b1ba0d096fc834665b3f1cbf938605dc241b64ff99584dd30273d81df52fe758e02a0547ec3a1acf1bc7e0ad4531fea28b3336814e326144109ae2c189e3b0a62db3fca2d921c67fc226b26f16055e537a5b88679c10633d0f8135143e9b2e8b672f30ec841defd766fa955685cca188e448c3f82ed5960e84aa9787e1145ba19bd97d74e76da1ba7fb9de8d0ec184da7c0f8a20ea2ca0a7b51d5a77786b71defa251674eb089401d7622c4befea7cef43d2d734fc2854cb30aacfe307cdd868fdb29841f48934db6ae3ed18d1b36c1c05e38049b63b87305e22100cb34b383b67f068d3df3b1aeeaa4153e451834d3bf376a81a8ddec8a8c82c4b6c6a56ff94c142c1727635b45004badb22592a85235f9a6340d8e1734a6ea432a0cb0e2a462f6cbfdf11ed7ac2e4a73553c304124efc168df4cb76c620dfe131c8c329425245c5008306b881bfc503b76e508b8a9d0255a72d64750b6fd2c804246bea28b440569e48ae4d776905f0f5381e4357aaef7b301e1dd5759551703341051804fef7619da525830ad1a6d96582bfbfa0e53e82778c2849d581b36867b8f5962d712816527ca2e9ea456cd5ce0834b1e818527140c59bd0bfd8a30363411fa39ce54f029b9e07ea1453bc94d7f502e5cd14e32f6dbb8c28b6e8779a3ac6d25c0d3c8cb4fd4453a0de6ccd026d1388702191f60512567da2a4c58e552e32fcd858c26c756d2855c721fb53707c3530399064d317894a50d51dcb4358a69bca0258a54b2d00298804dc426531aec7c7ec3d6db78ee680bfcaae892ecd827df6d433a9f3c020c83a8dd08c4b689f9e876aadfec7f0d5112836b9dc7dd6144551ff2257d12c54b1dfee77cc83ab786c0e1487eab50fb168965fa99f89c870f662f284915e8a92cbd13b0670b13e099df5ff408f319d6637ef77f945f7136de9b9793f64393a52cd0d2223e25c5fc3ba77bb8b343dfe81be7765206a6418c76988f1ecab92133ba458b370f572bd8a32b02739d6c070c2b01359171293f1c81f370523de63ff099d4b676d1793e992e5246372c4bd7324c2686f9c8d57b5262876855793ab2f70fc0a884c774e9ec3f35b96e3fa9ebe6174318839ff2d41f482aba8b65d5e0e7c0a8aa94cf89bd75e119adad3b68c0e19d3b2879cb1cbbf88f85ac092bc6d68d106b7951a049746513bf5df984b513dec29387fb919bade65b73b91aecbc8ef99dd2a6cc1dcca60b902d69378395b8ed8789a1d68240d794c5a6edb6039ac041a1ec5377b2140e2d17fcb1f14d219f6c07f7570d7ee6c214d47f910f8a978efc83ab8dee9c4750b497ff4e7bacfe14c76f39593c0ab0d17c452ecda0b4da0c685969737fbf789270a2b076b35f032d31235d7c22ef36b261ff522ee74c84fe7f61f0ec51da8b4e3702ced1072b16baa38d5fdb201cc8b9c1aa1027378dc4b0f78f8c6b4fac28bb45aef95fed4b193ef71f184ff4190adec898be568b03dd61532c8eb6ace2999b7f7a4bca5fd58f14bc87077191c65388d0fcc312b77baf78386318258b14bd586cde2e47110936b0585b9cc47d2bc7a7f10d92feee367b2fad110d74d3cdcecf0402150f3e59288e697052c0570565ce3d8c08025440e0f2cb318324f636e8ba9e36ec66d82dcacde64b6b85321523f4321fab13cc7d7e0b82a9cbc19945a40610d95b4395537ec95adae98252f7d24ec7a41ad42499173efa71b7232be33b010a64280e9ac05d0dfa0af052d943c25114029a8d741ad523bcd9e96a44ace936f492f549fa6d5ff1bce77e67d1543e86b18905916854f1f95dd43f0b62e46350b532b589d8338d7c790095956dab88cc90cd84674e03e8cbb904cde1e3ab2d6bd97e8f9da08696717736abbf2b3d387c6ee9edff09fcefe33ea82fb27d8841b6aa6a3fbac33eb9da8d9043906832dde47bff7bd4e9f00c47a545133e28e7b1d481c581147e3f5c4da4abae8cce0b849dc419b45d788bac1d7fe194b0618ce301a7530b343f144dc2bf177e3aaa03b811c72094fedc967da5de43f370e63d99b1c1e8860503d197967abd62158e8bf18bc1023b5471ddd8011aabf45694c8f08cf27e03e20be8e094eb04a705b7a8c6ecf71130b964e0a8b710b48200a6425236341820a6de6654fe30e4fd8cad4342df56ebf9bfbfa3b78c3c5615458c80298fad83a6084a5a807cd51f2e4f42e83f7d6e90edf00a961d77a4902abd108ffd84cd76a7c921c5fa730e74641ce40ae96050dfa7e466e1282a0d20da3782098fb905312f54e0b109521e6b9370fd0031a20bd544b5616f629885edcd13241d61b50eefa1745dd18c501966fd3b48989540bb5b1de25462cdbd45353a2fe7030b6fd066dfd0fb0d5fea33b12fc3a632f13a821551e5cc27a695cf89bc483e01352d094837b3c50a65a96ef2f0b1a7f4fe100179d9ca8beb1793b1a65eb4180c74b8d2b7c3c01e2a8554ace7b20613b24e4aa3b856d386cfd3e7318ea108097a8c97699d0def0cb8b62def6231170e8bca3e51c198093e7d9799dd2adcc4c35995dc0a39e66459bd5afecef98d85c86d9db7a82ca9eb340c8a318338f549769da01756361c6663105987f3a740694d2e4c822b180adf34a8bbe4099dc7aa77905cd312a7ab828a97852e2d8eec16aff44fb618c3bda8d4ab889216961ec4ca7e1264c7f5d32d3a26efaf424a3d9a4495f131720ec5050f54638d23442e5d6f136ff5f893e6ef3b3d28dfad7fd7cae8e8a0ba2c93a073851aed5e88a1f91beb8f3afbc0e92a180ac9f98e35696e67b88ee43c660ebf51caf729a3e771942fb8e819f9efb8ad3d8154d0f71cadc285010fa81baf83a014ad337944f4ede666c2d061ee766a7557df2e1b7b3928fafd9d0a008e31c6e10e1d3f3c95fc3fd009e4503c4e1f2fe2dcfd830be5e615e4c67d5f69355c58e230c97043abed702ab8af1788ca0d4bb45cf663ce00ec1be736ec3b43efc0faf79482062dd07c58d9fa08d6feb50319de6fe25d7be58d8971e17f7a2e0a11ccba66144801a7efb1c5b2ceab3190f23fab44182cdd0b62c2507569ee5fe83e8d4a5734979b3eef8ef432b2b66289eeef77e2fe8413dbd720efb20bd1d0355f70cb71e3aaf5e2b388ac9f5ae3e2b8ae9eb108ecdcc2f86c572cf5eaf80810637d2421ebdf80d6e63c064b1011dc59fd2c08343efe6f88f9d1133b58991a2a87a5aa1dbf76eb26be09e7068009d541b5219a3120c380099f45f3476463e06812fc5d820488a429f2385068ed054b2de1c7804034cd8bb33b209fa798f6acee6a58c66b8a846e4bf4e95b164cae763ea5cabd495c4147aeed42d9529754f79cf450a61aa2b8c96cdc5b1902b0ecb2a168a803f63d2569be96d9ce2f64af09b52aafa83f42f16180a590388014f600a19a02da5824fb8f66f86d41c6119d724dbeb7214f06baef17f889765e7bbbb79e67b1000f059232223d31517585d2f47d3ceee75d1679439722a1e3854c14550473e1297011d13040d610452861e39225506d2c777467f6abfe41376f7331870a9d00d96c92ce3d620611e142417d2ff3178fab844f90ec0eda87ac23f72144953b5f06962f8b027377a77d37a07f18739b839b7db41cd62a5b971f9be17f70faecb972332a16d7863165ce1dc43ea61d0aed9a5f400ffbb1bbaa83db7b615f7c240c59de73908138ed2946d6de3f144f046404349d7962f51b13ea836e712467539e8b3861cdddabfef56bc5d39d873eab759fc690b3ac8edf77ccd1ff4dd9f73e59853c7595c39d50a9bfdf096d2ead66d508296f37144b3058b6a534c40f935e24d35a11f3cdc98d64d8ab8b213a0e15ba223317e4f22d4e833c902833b59ca4715f55d4a4674c7aad7f00a5bc12abfb943942c26aba1e976742f485d4ba9c7e1853142bcbc945983d7494e7dd8ea060f364f365036c2e018b8aee4d42909d81d69b540a1a144f6691309b0f5bb999953c6b871b8b0dd573061975e91029a29be6f2bf50aae7e91d030ab84f7a12d40907b6e23481754c1cf5ac6abe763c3fcfc00e2eea343a0b1569207d884cc03d3ff1956f9cb52a3b25224bb372e7643e4a64a33a648d58b21a21d7bc2c4c6405d40ce609d6de10d097a68b541bd054fe182d6f259458bc43f6ea23e3a02554c26418a6fa1f267489e0e043578cc06f3facaf55c429a35c0932e21bc8d8051c18d9c6f3c6621f397b76a9838d6ccad4a0cf94bdd7b80abd80b9d7a6d597ffc0ec60296e6f66964eebb1f71320ec7164fc030535d0db177b3250f71c84bd360eb238eb543d3a007692af60535a2b5cf0939de66d696575d44ae5a77c31ee4a7b9aeff5b3d67023caeccb33ff987876dc0b5be9e3ca954287369ec39484a520f67e3b7cd8d6a75b2f51b81173d5e831f84286b82842a6ed27e993acd9c8da3514ff1e463e47a21e32b2d2e7cece120948531ef905b25be4d0972444884d378f9cd8d5b7b44c5a519c680fff3085e5f5dcb5a4a7376334f21b30e02c5e34928e5579d720b73da7c7c34e3b58d011fb5f22e8eb5b305605e32fc98d953c2746ca89de1a49d8107cd9a00e749cfa84d9cabc80427334ed6208742cc0ea67e6094eaa1c01253107f871f9a9acf20c0742c333a2ab5d5d49e547b96d68d26d1e1adce22bfb2b37bf5b1c1d5a7d2e4f038efba092abace9e3d40e03244468781cf04155ba0b8b0d8b239849e99598331f794eadf09eb721575aae1351d7c37ab7fe7b416073c067ccf111a9d483c26601c8408dc2cafa62a2a34d7625bf413a8b3ecccef4fc96c6158b9a7a17a889855cbf09a8634fe85040f47d2e1b22511db9304873c736d4b86824d30315369c25836effc136ec4062553021e0276d2c5620ce8ceffc3989ffc9faf94f5a7d563b43c0365fe7296b8b92823625b19178df491d6730dd0f40ee20f205d01a9b3efb0ac2796198e9393da8fe189fc759203db41823017e573be77e4c8ec3ddd76a7f2ea7c12bfd700ab98b2ce338941cc8bfb60103a40a3f80d8be317591e53ae1241f2da01b72715aeb0f39ba72fd13c30bbd41c1d5347d363a0f49153f2c7878d3ab924b3e43279720af7de1ede2bdc6af63cd57b6fa221e0d8704c79e2d250a40989645fe3d2c34155883ba69aa071af94af989a118ba536456e4a07387dba36efe7dd5207ff677682aca151f3d6aae1ee2f0498fefb2a9ecb075cb3f9de8d0e26bde5bcef9e87a5377e10e9ea97689f9f2e1c12b6812972a5099f1a0c08d3790dcb4d4ae199bd2cbc21e58d5eb29da4e12a941cf958c6598f2cedf510bdd6bcc4bcb8dc1c4cbb7b78db6e5f334e0a1dd054beed0ee0bde50afeeb8423eee385b3d6dee8b0f1a7be1d4b15b5b42ab97ded68dea7e009162cc7d5d904d509082a26445405eb9af5dae352446de141043b21962a8ea4fbe66f1a9d5bac59b27f17c03ab7935cce7182bf373849dae0ff59533eab4e295264e61ca3f68be245d5956536d16b517d742961418151bcc6b531d740be1b0b5f062d5f7bbacecd9d8b1dfa08cf99b9acf2bf0c98945981d78179ae8e26c580674b305be76d6c622d9bf2da6af5b8e88b5504e722fd0d9d02d24f9e1b52c11c1d405c69b6c65b09e041a2538b18c9b359b9a1645cf7fb648b657d4cc3c178699dda0789f14aac0f430f552b19459f8388784fdcec533e6f9c7d3ef4fb86e92a4faec977679ae8616d5c3be23ba8f141fa685667e36589c16658fa89c07d7fdde08c833bb94f95fc717a24caa1a16cff639d39049dcfe56fb424b78ad1e344b2bb7c3cfa8f3e9bc49d5c9e30e7322ea6ebdae2c5f05f4219ec019df9636078886f1a86e3cade0f035c618c091914d261db5c3cb5287c05f4703724058bc8df0b5c89884e7b1bdd72328481537c95d18cdee446ff399544651f1956b32ae3912f3066eec5efaddfcd578f1bed8e563d044f9d3d3ec292e001580a9a7ba92d5c77f8f32b0ba24c8c5ce4c78a1ba92b472178d7b94739c519fca33a143e4c05e50d1bf0264f46d628ca6786c674323e0989b76eebf39cc42897ea23da4d544ff8a0ec8a4fb44d4ee751522ed652de048386cdf651a655fbc67388707c6c03290578c837db8f79aa37f3aea33b4a49074665196e75c97dbdac9808cf29cfd53b1f1d59fe701aff68f91924a02f67c1b3d75d68964ad62dc71bec056404fe80e96fe3019ea81bdc337e582e2c954ad8eb852b0795f39c204af63b8570ad88d4eb47460b797ef2195909ff2c792ec8277524fa0b3f5f9ef5497890338f7ced30b856fefe3ff8606da0fb1a92416629d5ba6b3f37bb54a0271918ae5afd0faa15aca23717bc2cf5ef1fb06f21b901a422913be8fc964973641e57045cf1d6339298247dd4d9fa0c391579bbb88ee80488be360e7af9f68734f4b5fea9ea39d8a527434a46da78e5ebfc783aa59969b5e4e7b5ba459d832b491b59eab717f8ba1c227b562851e26cf66fbbf6b5e9c53f697c6da00686f408568ab5dcc415622a1cfde465fe9e636f84cc94a839da3636c13a24c0b216df6630e1333512369c23e8c208f27400de1f467cf8996be50d5ee169f02f3e90b159f2c3531030a0f57031e4cd887a4cde7d3a87d83d17616b0a9e2e6178447b23a80dca11ea318e7e73ff7085fc27a31da077b1500ccec6e3e634b939b0dccbdc7d1cf9e0a533bdffbeb3872a53230e20fe823176249ceeede4ae16fa1392badb1d732bd803a93e2d8ff8949781f91849dbb0146ecd276e8e9ae9f5bffd30a75b8f97def07ec1fcf93a446650fa02811422ecbffae1b8d457f7cfa738585f05a197a6eeb523ebda9d1415d7cda62b7bd9c917d431478e7263dd8713db6d8af75c0698ee476850b9d707c4b4210474b0ab0c21b2423800803eafffd66cb7fbbdfb6526fe452b19e0adb16826f5acb09a2e6a9b0a3e04d21b5939b8731deee4bda41e081dc4a0dce2a11388139a2df4ea33131d34832479c1b2887d71019fe0d548cee042625df4d47500f70a517eb43282f29b4821183942bc1dccaca1b889941cd4c214d4c209318b99ac1c71ac7424aee55553c3c4dd71c365d137cf4a44c5d5b93ebe3eeef99308361aa1a6a6ba59b132c6fbac66be21b6ab3dffd74fe02ac6ee42fae30b28b824892407b08423b1588d9451605ecc1de724d8eb20b54e706f23a7ac78290e4abdd4e579b601346e35838225c3af6b3d3b26a343419ce5199f5e8b7f5573af014f7a50e9cf15cb3ccb522f6bf0e6ebd5f3174638d1d206e6434ab51d3e219b4ab64f86b76b367ec0bf97be1fb5c79d21a349df2d93f11ac1b5feabfe7fd4c21d8b763b76d82f5dff6477ea539a83348b812030ce44816f6055e9addfb77581f4f3f13b687b29dc34bd58f8c48a1ba2f1f39737908702bc35c1f99325d4fe0a1f4a5baf0dbdc78bbedbc14754a144f4f6127cbcc91f9056aadf772d8896234d77b05ad9178f9080a49f5f5a27fd48d464391941ae7e1e44e0986efa48efbc6f80eafc2872af25842a3d16188d151d8715180832a94447b170b3c016794c19738dfb7146a568fe833b61886676ab1822073ec8a59b58b4e9be47e5bf6230321f1400829ff1b9ae799352e96a5cb05034c7ed3b83d09bb12c9528b8d84967f91a94fb5ae1f89ebdcd222b470b816b004884a53c2b16b6a393d8ea4f116705d4ba881c21e8d09d09e3b4c05b0015fbc13a62c7edb6bd5f2704efd6576ec07d422af0f40129c4c41c0144b29ee06e88e3df3760f86cd242deaca3d121a2b571a2f68db03ab1c6ea20f5163b1e43a2d4363409a2b335847a4e767e66ffba6299cf6e20ca26f94d41f3834a0e9b67f384a0d0370568f1c60e52d092368ea2aeb925fbdf25a4b73151304175cedffa6422fdfa2131fc5f52b0ff427542bce83d3c3b8378466968f2ef7d9c3e2fc8320b1c0e53c350a9ed82ff194955358f40e03a60c80dede2a8e0eae44a53c87847ec7f126c4fcc05f0afeca9d96109a322f4039abe36dd81807c5963c4adc28399fba5e28ab16994688c98ba357cce0cdb0c469564604157d7134a8293b4098098fff09910cf91f901590151cecbe964c05e230ad8d07c913771b32a6bf14ed71730993d6e420413de0438fc60764ea21c3c57dfa600456a96b52a2f8bc6afcdc3270d15fd6d3649641192f31015d344d5d68311363c167b0a60dc25911473a30a1da09e89c57282f8b3265054aa815aa3745aee48b18feb2bb205349097a9aa642018275ce4c4b0ef4395783b61d624f5436bd7cb27a8007dae2dd379bba0cd6f164a1f674f280337f4a9b5149a13df4b3994e4fb83c36c34c9dae22991deb349c29bf807e78bf632cb49b955326eeafaa9ec527aa6a02f59426f1107d60afa3df206f8083182be626609235dcf4f8efa15d8a62821c14e0ed9c1171b474f13456681cca9dfa42aa34c1f9f1bb436008467a1d025c27e8ef064b94897dc696b48871ba4a82b47b601d91a50eecad0d888d7b744d0e96e2216eceb95b3f2c90409aba9e8e469c315b4b124bf82bc12f5a8d37fc4e858722f94d5e834d8d6ce11f88c83d686a6d931e312db72aced5e1e4bcd39127aa1b7dbc93f6a2ad3f1371af0396ff30b055760c7ddd61865b1df175ba7ddcd27eb2b99bb696e8765448a580b1cf8f2411babaee0deca60b29829b63ad6d87485607005328e662dd611675cf4e67f69701c33e1f4fbc732f81c43243cfdf7735a138316653c99e4a60968ed7c43d082cfe2dc23f8abc75396ef506ba7d130346d600b86472c490662752309f2e63110bf684436b161601abe8bb8666e931bd4f3591d5acb3daed88fd1d8d431d2b98c0496eae4a4aac335a954c7a0fa4b8d04203b5a96188847b666951d09989b4facd3b42ea194a48511c40fcce9bfb69502807549606cc9b69657cc0e7aa6d9e2f328b3bd94d0e29dedc8904253ec9448e274185eebdb529081538e9f1b0711d53e88e7294f933118c4ba0d9243109d60ae5a3a0f1bd1a31f2e8eb9936d9c5b7c6bfb0ead3510c326d838814e16c1aab65c92c09b1d08b80e83e019bec808a8b4c2e365161911db588f6c2a50d9c7340cee58ed3a89959c43373cbeb1a667b17dcb4441b3945b0b0577460afa2c148b79ba2a6fa5024fbc95b6d02338b63fbaefa876b9350b4b528b001fe9cac067ed922f5cf8350708da5c4e2055d3aee84f309d641227d0a2d13b383962c1cb8f62da5de0d7efac641bc25da71ec2b56f1334203f8a26a6e8c47ed63c52326ebd90e562efe8179c7d2f9167c3532ffe43dfe755c0f92c71b0e65a932673bd13ae26dbc4b6a9d814f9f0332300985756c0b4ee5617162e09db27552dfb1c7372cbd637e1cc21b0b846c6aab10a2db9916b029fd03522db1079f9c09ff17a2c25d066994ef93c523f1a14fd76b18fce5f1696e52a6d0215fe838899f3272823608caea61844c109889c561063aab13bad762586975a49f980feee1c18f110657da1e38e74534fbddd26ba791e03687123654caf61600f9a9368327ffd4c3cd18c6aa58fe99e76ce2e6d33e37a8fe5d937648c5381cef53243fd8df8fbcb626eaea7bf10ebb383339584973cffd2e6ab0819c7341f94b45c04ab514fdbd5896cdca086f722f48b5f86b76814f2de2d08d06035ba3155e29046ae49a3350fbb0e2dece5affce0ac6a4aa01494927ce5f2f129c4d8a8fe64d7173aed875b9cac7b2d8705a6c373a36ee18739d51eb3209c811bbe02d3b1314e1ed2d3163af23a33aaa00f2439e2302fec29f7b399479e975edaa630f4dbf68da5e0e6dc5619ff02fff9332fb155c55699361eb2ed6960eae5d457d42de25caf41726f32de3241b3d9f1dd17d5cd28ffae077c342dbc18c5ede1b403d65c85cb1a2127ac96dc22dc7c2eadf1a49dac232cfdb1cb6ccacb55402e25e016d4fe3a875d423b310817a51a34031d5e06f23b98984a538789a3aa07e00d51002c535f1504760e42d32308e497ae442318247df1fa1a8b2780dac5c497bed29810b93b484b419c9bba13ec689c076c795b6e465921dc8e63878b509cb26fb2b6a8159c797dc8aa65ae8bcd60ddc4341b230e85561485947dbdf5eee9df0d225f10f1065ce1b3bf400061dfd27d80f14123017e4ced1158713387edfc662b6d1675b32b6af5e5e258e95d5d91bcc058b248da7e1587fbb17f60ba17bde7a80191a8f83eeb516301914958f11fb3aba753293f85973e4cc6095758993be2130a9c3a6d23196a6e567714e4cb952168dc392bb09842b13a0dd669efcb590ac2f45365922deef14aead0703da9932aba739b14aedff179e783a430d974b92e352eb9e46d7f2fba1cc4083b1f128edc57652ea92470be2b78af11eddb02220a62bff3c88a53818aa2045b7d17887b88720a9107fabfa621aa6ebed73af14f78ecdca0f5aa1e042802ae9d2d0d35af0b1b5232588a69dc3b30e3d4f44374781ea21154d59f77108ac5ff360bee8fcfb7fa0a7713a05065541df969af0a02891830050a15fec2b6016cfd05ea103ffc1bee73995ca5ff74b157bb852700dfd44b387c18c0812168f5dfb21c36e2b1bd81ab6047ba6df3a565a0922054c870953f116fceb18c8384cb00bdbf565189332899924c907c4afd1e1940c743fec979ae809c93ea24d3eb5f37e5e3f22950a3f141572b077b6053ad5daefa2280b53ebf64cfcde8f304f09857ac3eb61aef7fc51035c39e02491a54fac70e87cb51cbc11875f5a360b37baaf9ce4926bf68707f43af603b820aebe1f5e7d829a682aab01d25599209e6781c42b900d3f3938e5b48385213327be0b9995a8d84a0a1874aadce107b39d2c722aed8a51a3e7edc90487f800298b220958f8dc4fc030b01d786a62ad84db3f14926906bb6f1ff14b6107b91549012a5c3b009f5411cf8a0f719209b742174491df15d09fad72746edf9477d81e498b4a32755de9e77a7c7e0db35f4df60c55b631098733becd52f18ae3fcbd8de11ddbb7c09218650afc15c689110120ca16694b4c70148cd51de211b826cc42e40c5c6eea41adac08eeda138bd2c0462bf177421b91f667d8c086488729869a287f0beb652242321f1322cb97a88d591ef947f2cfc5cac5ccedaadc240484d59b80e42bd9977246bd9cd637dc3a25fb1cf7fee553c37a14173e46cf5314be769908b3551520596344984c6cc8d0d95572f1a04a463effb9fa6ab74abe0c3e5222c654c5be458977c392064159f1c0e70762808acb85b72a5c0be70eab5f78c2468c2284b74ff3b699be85ed1cc95647302821d437785c67eb4d30f72b9b87c7c42db51e92d2a0f2e111b8c7db580670951b925432a5972006a30b890558530971b3131f4a6be9785d58c6cf7cbc5d7f2c166108c04863337c6273fcb1bb33b062e4de86b3a99289265d6113679a02e9ace4ca72d68dcd514d4fe2b3cf9c67c62e2a33b5d64fd1dc615800c15001effafbc7e8135b0c2e35ab92b67a72720ee9126b0a1b12670576bc105fac4aca34d84f2a0a02b48fcb6039ecb0e1d15d7fd24563caddcaf83b899f80d4537fbc7f9ad46396fb8944c7cb592951560c30b0df312709653e22bf679576bf39a7d82e3d81edffd59534eb4b5c007b9a18e2d842dea575d580745a871c63d0dafc377f83d981d2efa2f1dabacac6b80697c4d8b61878385f3791524f866e6c8bd6ebbc9d242fb2b507d01a45081b903373e58611af65099ddcd6268f9945998e0ea1e07f845556ce20aafc4ec9a999602aa10a7b3799ec44c4c5228c48df3e608754523ed846a114387a23aab1add4458dc30c5a137173ab0ebaf45f12390ec4274ace4b3a030f6538ce3beadb278f1dbdf740760292bfb728ffaaabbc459227e388eeff3d69fc5ce865deb93c0fab797a9233046e9ecf88de45e31f107b8e66923f843cfc6c6f8cf039d8d89c823b5ffa1ce59fbedf48f2c49e556d11dbe7184a035d2ca9e8b2ccb9017a39171fda83b20279948d2e3b24560ca9afa0148268228318280da2fff54f7b13cea8ded014749336cacd9f758d283178b67cd8e197f77a7a34c0e9b9ebf2f3423b120722766ff229a0a110dae02a0c8135a494613c26e3d51f1e819536f88b28be441280091f5f7f16282a659a117501e3c2d3c522c3f3b4956a3ed64103a8fd7051bc9f8ba97bb6b57491871a8e2c6191dbf47c5a3c0c05a25c2a714afecbd9fa1b0e4bb7af9276333581fe83c6ad71a87a44c90316122af10876149a1c921fb5409bc1452cfefbda08e03441a48ac5387451d919572628215d06972573f1dab312b48499d52a2e6900c5b13edff8199e738eae2098b10bdd11db83e6f288c71e81a93f581af731350612497414d9f7a9dcaa8dd0eb7f0fa194802767a24bbce8f5b9d3376bd2e57ce7f26a63fd8cafb022b0a3ec10347109c616be79b71b4b4e162d3abbb4dd98ca24687299f41e7a1a942ea27b1581a93a191c4926f6858244a3f18c72959a938eefc3e1fea0e63257dc17d2b21af87ca65361c17ee040dd4706ed6c3fd70f1c91f059f7d269e2f7652279a738f040b402b936e18e171e00032777135bf0e80ece8cb70c9f6812ec652681d2eec7808e0c1aa84afbca326baf3499a413f0fc0489b92560e1ec09214957a7752da9101fae5794b3c9e9599ce606043ffb0cb00a56011a72818b69d8df75a0ffdb35918f40851d94a2dc769772a73285375a54fca8c888a6a6192e09996160604d53a4aadb0a876029aee17051f3cb80789965bf188b780c598c6ea8857a3996f82809bcff23941cc4b3f2b5d11eb1fe4db22deba363e44912f162a1e3e210b59870349c05908b51f88f22bb19706dda0b4279be8ceb240a758eb8cecfda00467f75da4c62f7bb09dd92099576ab28cbe9bfbdd7d67a59d1188c80aa514bd672aa2dc717b89ea088ceabe69208400f5eb7a4399fd5ec64e52995fa7267ae7f75ffaedf87d51046bd7c3629dec153579bf339259926ca4661f7a510d165c34c9c3b79c9c90c62265ca6c988ec065896dd942980f72ce19e0bb28ee57de41e905655a3633f9e8b87e3d85cf2b166beb79588fa2f71341a022fa8d204f354e68e7f80712d9fe97a1e14868d8ac80c015e054904f0ed1ca5cc6699e9a3e43385c46afc696b8b07d5c4bd1a74eef9f547901d971947f52a9fa95395f3ebcdea2e55c464a01d3f70c9ffc0d912ea7e21d864aa40e1fed0c1faa6722db54580290c6fe0f236653a7e52d01724bc1dcf5a9f9b4ff76577861b241e9c48946f465b1239daa496fdf588ddfb2dc835a118d4d3d4337ef096312d22a87fd28385ffb3879204a301b94240af5c1269b91ab1971fc9f484b26585630c61d5714c889105265752bfe75123db9b92194261a1c90916bb58e4443d6899018543514d3d0928d41b470dee205901b5ec3eb83a547e8a9b76ba8b1e5e44c1722ed5c185d1b966b58dd80917a6a64dd43d2f6cc37c4f94bb61330d50c67ec8059357ed93a174481d479623196181bb8e37393dc8a3332af2ac5eb3dc540b3d013fec2f67203f45dd0e3dc0c48d6dcbe64616c50debcc154c79808ad1b90824aa671311f1ff052edb397f934426102868fe990fae7dc48c932fb8ca48b08303d21154ef4b1eba804d8097383f76f24fa3c8fdf3c4a9d9676641cbd8ad37df2d48c615e998af5b4c5e99179df42bb67daa3c05157041a2911aafb623c606fb58486f212ce3cf0b7d0704d55e033a1899a37cc9ecf2f3f740a9ba223c4c5e7b380f452b189c6e2ba5bb0fe2611bdcb2fa71159a38c4fe367aefecea2ccea4d47efa2b83b9bdc23345b213a0a915e366ee7da8224fe1c0779bb1a3ad473e93dc828d8da0535ace7ac01f5ee4fdbf02dc3562ad30df98e90b463ba8ab84f34b30b64f838c95639a44d850943d80d5f16b1f12d0335c21e9f903573a0f42e8b940350fbeedeb899c8ef0df1f6e089c82bb9871b8717bfce6dc774f218715d86b9ce34fda111af8881a56ca37b4cee29da85dbb9389a97e74caf86c1020aba77a131636586d4c805f36db57655793ab43cf8475dcd0a973ced973ebf7e9ccfd57a6eb2ebe584f9de403e8e3634f8c02ab7b2a0c08e78c34b16aea9ad94f5740593a8d83cce98e824de7e2550a2d785be928e093678c99fea016b255a7387fa9dae875d144dd7dc7015bd75b43d9b115180b47082ca3e29be3f37ae3ee4c3c30cb93ee61168ee758f7668953a81d95f6793eaf0dbbade40cfe37453f825016c1d5a58d981ca1a6902b8ee00650c05307914ef3ad7f8b211744690eec2024bb8695851daacb51c6f7a6d43752cdb702fa3e54c54cecc778a06c6fb62de7d741caf816288396c5b0893235fc00021644cd68488a352e592aa07d764b1f9bf51bbd2f5f5f25a2c5e795872fdc08fb7f857fc70090f5c8e579f376e4962c91d68d88e63214aa2db3cb4336a3589b62831bd31aab622342f75a557736cc6249db158a200cd444da2ae46cc32f00639e32388df4597d44f360d20359598e1de992cdb4e036b3d08f77ff85e04ee8e026b8e684d98d0c4e5994a388482049bee6059642d6109b8b2a5a8d10fd682c64f3c7077bbbef9d0e0ba1a12d5b25cf9765c9f0c8e2002b6afc82640570832ae3eed0cc907479a60db85140a86132c182ead419a6b2798b2b15687ebc7985cfd4cc0351f41b1bcda39f5d2fdeee74cb67a9cd11757ab2f071db71c2e7c37782b3c9ab22d256b36b8b45dba9cd4f32217975f7247d272456091d5c118f2a15b40fdb7b0a23429f2ed38956d4a87135f1281cbe426709280af505d6b65f2b1c2f1b959e6a4f676d43ac422db652c4054206cf5da7b21a1d18bfcdda6b690596aa3ac6c79e97387719bea86cfb77709c72abb3ffd762460ed0f1cc7d6c4c583c95137ec28632354d31af19f4a71925f5b737c4c1bb3dbddce712d8903f20d250394ec8845bf06b35dd5bda0f83f4e19b26c8f9752ee48a95cf724e164b6a4fd9bee67f38826b9ef13cb8d015796d21c061327c5b20010552d0c1375a502b2d8ea6bb8001ceb829a1e28c32f31dd795a1cdeaf74fa448dd39525af8c92a060e6976f2bd0b42fc13828e844ee5aee7d1ac111b90cfe79e90d0f8aa014cc6373a6933c3d58aa3094e289521d06c6680edeadf43ef739d738ff2bd02232c9b6f565cce33294051c15699276c300e1d65b7baf73c43e0b5c791fe644c55d4a41cd11ed7fd381ba1bc93487fc8cbe7f222d48093fda4aa2f134aeb95fc625d32524167cb687e90ec12bca2af2550d5e0b8cca6de823b3c79ecdcdcec698d283f8b8e9b88a117da3f7b93c0aef7c555764f9604ea9bccf8e81aede2af2c8d8482301b92a5a2ca7f6102729e8e3dbc063b395769de0b0ffa33be1d998263591aa2ad41f96ec59485c0040064f03185d96b43ebc5ae9f89009f6f0a7b7d2b055b0823af89d0cdc97809c7754d04fe2713c7cf3981839a35eccf9877ae0df5225bd4fe0d3f37648894f8bed92009416d535f00e933cb84f5f2e550e5863bca9ea793aebf50ca0db1e770e8e3a0179e885035cd5b39ef8e077a0298963120c11c99e21c627f4e00351a670ccfcff8f7149565a1f4fefd2eb3e4fecd933228217032e0ab32e38f4d845056064a25948f9c7f199844d24eecb5a0573daeeef157ccb41ca6dd6fd93b1d57851d1455004ce84051a1551e298cc05fccfcf6d886ca286c7c05d2c44fa6212be62019fc268312390ccaf8f4c29964123ba87a28dc0203fbf04ec2fc1826bc8da6defcd725b22b4b78a88f7290aabb7c221157ea6785d26be66ee3d8d778de170437f2899c69daadf99c39e4038c5f71e041d76d17c5f507e2b4cf612e14c013f97c0943acda07302b396f23bed05744c5550366cc5df0fd7637b579503b241653bba0fef2dd2c45d0e873913f5a6db93a0d6a19368e9c1328dbbdef245bf0377fa2e338345ab4039812fd0f29b98af87c937c9b17f1541658d17610fb8e57e7b3f19473e533b0cc97770a46144670aafb2b4bccd220263d82b9d5f3d1141f625c98f8ba2ab70f04c4ca8f569605d943690645007a08ff373459eac7775f8d9aec124459e14cc3dfb98650ef6119ee513a70b455be99f485e7a32f43a7db2b6586ab8ebfd69dd43e5f383be27cb10fb404fbc1bcf216c2160448be361002ae27f61238ada2f5acf54e850519300417b282e3e2e17e96bc2c05c765d94261448511fdd637e24db0b06dad8703836f1a792678f19592cf5ba146fac37ea588af2a790c4d8528e1dc4121e2e73a6ab604f3ce46282df6fa66d1e59792deadc357228d5fbaae491447245cbeec3e75402cb373cdf95c6f77f6087118675c2bcdb70162345f65befe7f953035bb559af631387b7b8cdd779a0b278abc62c6fe4e916c5c39268692fa1a3385e80167fb3352f29e25d8a43360603f9219e6426d8ea9ab5bd300dca2635b5787314d836d8225f18c753c34589e277d9fd49fbd18bca1e2ad6cfb6a372d204c4586b881aa9c1b7fb3fd3be4b2a58d48fb1004423e4405f26658443e4acc085bd3b8028603162ea5c08cf724965e5fc909d09fa74475585118721077bac4099b5284eade909cececf46259fad55024ceb020e4945c70d3a50ac26c90103c00030000c0003c00030000caa38fe5ae8af5453999b32d4048828e15b4bbb222252eedbeb010087510000000040e207faf8f94ae50d530ecf0c8cbfdbbee4f796dcc51dac132a2a25d75bedc20ef9aa09bb1bf11f2a8744223a0080882eea606c68cb9a133bfc4542177448f21ad77a13ae559f4361ac4a081fbdce5c0ead85c9f5395d4fb57178f7f2e47c2997c4281cae72cfab1b3bd46ef60de8d7df9bfbedc966dd906859e5a2c4d406ea4ed68f9627d225cb86634aa973ea4e26afaa6bc84266448923155fa36a48be3c4564d234f49792bc78c50f9ea3c1387eb924e146bf3f43a59a51dae629a58f19bc68ab2af38fe9da32b49aa49f9ed4e9960cebe5fca9613fae9531e89a443f4fad9f534e0c6c948ee5515ecec44c182a494ef7e46cb1d7070327e6d42016ee1a53ca17ca315e94dcf97cfaf18252f729254fbb4064ac9d145f72e18ccea0f5e516eaf23b498c575151d782256a56e612f4cfc35930c378fe3bdd146c462c707218cb1b5593ff825730af921452e9d337875638577e5d93990ebd6115ccc15a3e7f7bfb932015fccd268931a6b097d729901416d04514d0b72d413c7488d51c14d064ab621f92192bf7046b273d364997a4cf7342d572d6d59bae235e13f630bb1a7bf19bed9880b86a7fd0ec9660ea5dcaaa9d4ad14d0998fc1d2ec89564256b49307fb5a4bc716f52352460d1bace433e49a5b123dc316c45fb8f963f6346e8a2084f67ff50fd1dd522113c394f3272a9343304c5634e45ab965f2784fe4555c26312e5b620183ae45c46e7e6990c0877a67872ca26a942ff019b33db1a2a8587ec03538a789eaa98e7d383f36b85da7729a15c1e745963cebffcd889ee80b173f7cf705331aa2e74e08d5ffe6e9d8b2d89c16a738eba3de3c2181d294992f23829b7b02d99a429f753ca650bedca66c53b66c844b5b83bddc6f8668f2e2d4ac9a3a6cb8bf6a4cfe2bd4ef1c5a2eccd461666aecf29a6e85c6d89857dc25d0aff5d111116764c8274756ebe8892904824e48718328844c6d80cd478c5415a4454fda3c5898744221b8980b1e30c1f3fcaf0e6e1001d3edc023b9250c315754ae26e5c831aada8c10aca6f442e9e28d71e0e8944de7d3c2087037414e5a0c62adcdfbcceb13da63b1a12898001011d35a8a18ad39bf4df558c96442e418d54b0255ff83fc92e4ca6432211303490030239c2d001821aa828d786cc91269ad0ef9ea2ae1e1b934eea5039690af62d2a552da5b4180f0ee40843c70c6a948214a3c043d3594ffae99b4614c6c73371dec2754c01c00e6a8422f17553c9b7b61f75058596735bfe79ccb1800e0018a1c6272c6d89fd2ad74bb3a1a4862756d578ea6693c95dd389c2529e596d4a1d6585ec18638cdd11f2e3057eba0627d86e9bf9ccbe27a6b6c70f1e168000066a6c82d2ac194d08ab8a9fa48626ec98e9fa7eee4fcace84b122934d6cee7cb060a2bd750d9b97798811021d3d7ef0b0808e05d4b8440d4bd4a8440d4ad498440d49d488c4026a40a2c6236a38a24623f83129b8a9a6e6ae6480310107e8f8618606784c20a406236a2ca2d512f914a6e29ba58a2832685bc8d95a502311c5a81c2b8e8941d4f388304d78fa5789f2546287787d73e668d9bbf79421f0099373905bfd300b6a14c2ca5a4247c449f651e7518310e9c5134bacdcf4eb778c1a83f0a2b8ab64e793b6e282c0934973327da1a261204a721a957fbe35658b183500a16a9b5c99ec7d8d3ff45771f7637c7f09b91f0cad49e8a4be163cc614d4e8836952c7fed01cc4738f851a7cd8473d57a6f5434c6c0935f6b06abe9c43fc8d86664e50430f4962728987fb6492d31fa891873298b45e8cf3b94d432211ff61c60bc898410d3c7029d5a9b34a6a491b2bd4b84353c2a64959593185ac0a35ecd0f4e55652d5247bee52a85187b2749abaf01257e2a5436daee561f43ef83bcef0f1230435e650f8513191283d50430e74be9cbd6346fec7ab461cd00a9da16365cc24546ac0e17b759b2e9dced2ef0d5be80cf5b638de41e306f65467f457ceafa46bb4e1245b66b14ed241d584400d362c126635d7256e4c768d355019aace374dc99ee2851a6ac8356515adbc79ad7c1a52eda8bd9e5575fd45c3a993557a68a96469ce807d68afed1c9a21399a6fea49c9b65f86a2a4540d561e36858c0cea6ec6ed939593eb312454902ccff1ef3c586230ef8579ff4f1d93fc861a61d856366c35c34cb92524120143f595a7938934861a5fb804fb0cff69693567470d2f541a9f66426cd0f12d241261438d2e949baba52725ad774a482452460f34d4e04225058d2795bca6cef70079861a5b48ee3e134b91fda84c991904f0d1e30960060f0ad4d0821baebd7ce22c2503307c682012d1428d2c30b5d9fced3ebd430b89445cd01ea2c3c7e0cd420d2ca425d9eda8465914b5c615b0d7d2afd0bbed5ba1134f5cefe49b2ad4a002dd921a2cb6878f6656a8318534e5d12445935cb73d07e888449850430ae61c735f4d4cb9c763c288418d2860ded697e4fe637f5e50030a9468d1296fd45451fa271075e9335e8adf4fe24ee8b2ffd9dac598627a9a608b49962a675e13b6c3045330a9bbd54a33787a0949874af24d57ce9dc34a28bcf4669bd9749db349b082684fe7934542f1c2ad4432658b8d39025956f99759bf522a8d902cfb52d26f6b4ab71581fed35892f09fe3844584e7a4933ccfe4b4c933842fdbd967d90c76292484c2c7e624b72597d341d8c3ffc5f78ee13d0508357e50c3078a4929c7ae3576ca9d1e741f3ddcb8db87e834241221a3060fb0a0f9df13a126577690581653a7d01a2d945e43077ce676cf1f32cd3e85462e8c5d16acc2ebc999352e4ac1353fb2fa72ccf12dec922f3eaa6dfe4f638ba36fce484f9e1fafd5624d39494e12b9e64912335e408b4dfccd3673f5e777165c9b4931a7743b16d516d090452925e1d27ca4dec22716945a8e31a578c3424d51e1f42a37afe65eb14699f45e9613d53257dc9d2aa5533bc992a65a5170cb249e548dff95ec38c3c70f562c55d7799d319572c380c62a0af924c798f8af59351368a86213aa636aa6ec6be791038d54bc312769d3c34f2ac916030d5468728eb7922794b8bf14c831811c12c811811c10c8b1021aa7388b7b8e4fa9ef593105256f9d10a6d96726edf13c2cb0230c344a41b44dde9a1463d27092e220e937267d70cff293416314873dcb71b9188b9e432211ffd183470e31688802078d50289d9bab57275f2ce2410314cb89f9cfa7de3dc6cd27145ffdcc24ff4edde9893b76d42c4acc61d247021a9d30d4b5e4e217ac8f11442261d0e08439875f5a4b25b48935ee4a98e86a22c9040d4c2455986587097abbf225dc9d137d736c2b69244b5cd9f2afbb62b831f9c1637b45f0011a95c82cf6844ed3944c3443223b7cf48844c010410e0ce888443a408312573e9ddc24fce5381e1a9330cb78ef4b49a2572402460a948624ccec294fcc2565cc6f262134225146aaeaad56925445828467e69f1b2a76820ad07844d16a2b25ad2ce57c0ac03880014ee08810d068040d46d058040d45d0488469eec3c66d8c31bc29400311748814d030041502f774d2c56cbf2533134293f24a89712f2a9b86c620ccd99a52565df7f9bc20deb4dbc95d9b0cead141231009e69633eb7aa6ab3c20124f0e778dff1f32a99fabe898b2cfe3075ca44bc3626325ebfac0a4c9861e8ff18154aff99c613487a6f6705e2a39689c8d7b238644225ba0a107fa828dfe09591353f2041a79d8c3eefb77e79c84b19240030f55dc89fdeb77127632028d3b981d5db94a7c5940c30e9d9770b15d3c6b0a0934ea50d28aeb9e4ffcac27191289e418638c85400e1d0028020d3aa07de9f3758aae3b7f4824e23da031072dbca84949e23d853c2412f9e1637d9841430e69ee89ff0d5d7f731c8cfd295a6cc75250b50a34e090bc267eecb4513473f60d5e4caf296a9f5b4327051a6ed0b26a2ec94ed0bb126d8321b63bc8863c3dc10a89444040830ddb98f82af723b2b9b2062e099f45ead2e57e510dce6c9a9c9b33854e4b230d7ab0123cd2c4bddfca183e4290830734d090fab5e7ef20a992930e24d03883a92dd473adefece77140c30c58275593f7f2e5f7b60c2629f4673aa66e7fe90634c8a0b96ef419bda99263c660060d31d008030d309c3f7d666ffc2c99121ad0f802e227e7e50d992f74e80c1a5e7893e4e33154ca4bdae982319464c1921ce33ae5148106170a9b243c63b488125334b6c0c8c7bc6692c40c992442430b44e6106bda9fbac9008d2ca463b97a62ad57d41c0f332e40030b6ee6f8c7f709a9b38544223c765480c61568588146155c4d959b921cbeb9bd9048a4c7a14105c7e4ca277e1293f7851f40630a67a63026a5d41d3589c18086140e9f3676c2a4dd36e117d08842fb9924dd4ed5cab11ed0804226758e399dc62017cb27ecadb9357aafd459e604b3d533c5e093551f35c18f3b29a5fdc5cb4b1212899c317abc8006138e54b79061272fbf4886185b860f1a4b30b4c6d85c2759844e4309dcbaa7b85021ffad19d04882a9726e975acbb8cd85b0808718349090099a83e65c5e2eb7d33882261d65762dfec48f1b21a1624ac124b9643ee700392ecdc861ccc861cc30c005681481061176135b356e491a5af107680c6103348400021a41f83fe5a85bcd133dea011a4060d2de3f8da7f3ef93101e3d7e50be54ef49fde622341a3e38555a3386fc3c29fd212fe8e123029148193da8c4248fdbf4ab05cf5f40830775a885cf10f1359592d0d8015b71e3a1639e336b34748006fbce396ab3975f1310402e12f32dc9d9a73d76cac18531a34ef6a64c6ff1dcc229c9e4d8e28aacf7db683e22732d0e79e15d726f86932ab4507ebbebb4b2ca49e62cb28bbd7b628c25e624c922e935e6243973b61426b110002c04f00a01b88205d00a0d088015b48a0508401502488500502180537ce97d29f92575644000a630e7ca5f17bbee5b3a1304500a2a6a89d93d6d3fdc8714c6e576534bd198e1512494247d3eb18ed9ac440206cb4244704314648893b3567a2314c9bf2a72952463ba68106e80e2e89dbfa975ed7336156e7c6257db8a323bb6e2fd0d4fa8d9e454b7624c78ef831b9df8bedb9224db94d0dfcde0062738ff6ed91cd221d64b2047182db8b189ff2c9b7caf5b060b6e68223159bc7ecebc6e64e206268a153e3e6365676e7be3127a9949527a6c422211bc61892336665a4b25df4954c68d4aecff571772f343771912898ce00625c850391d27cabb7ef8fd0393384d12db4bcc399d9329c10d4958e5a6e936da891a321c043722d17df04ca2152db74972e00624ec9b4a41a6ba3bc594471c5e3c76348f92a3578ea0e49225af635790971b6165ae5effd4956f75317c84c188677dc3e2a4c9e31713024604427063115b4ee1352f378a38b2c7d44b7037391cc68d44101773cc5167ac529ec5308311b1b94fe5d08df325e70e9159c54e295ac8acad420cb1554a7ba3194d9c4e62e046214af25f67cea7593f9a10225dd37c9672f01ced0ee2f99252123b2fc7cc193d7cfc28c3cf0604b1d494a8bae7b5212a2191c88e1988f18120e4666633fbee330b08a65370cbdec152f22a2412f9c373eab1e35b82a49884a1e38783406ff8e1b28df274b29be5b57dd0d32f98eb7d788f9a0f59cc8ad9afc4c64fee8cd163c71ebad160e772e298dc181289fc583dec73a9d3f2c9eb1e1f3dc4d821811b79403f3337be096b1d3e78204d67cd7274cfab5d88036edca1964b9f3dab520e936be0861df8fe4ec256786a125375b8a4de9382f489ffd9840ec96f551626f97bf2650ee60fde2587d73bad0c10dc9043f17e6d26b2d6d33f71c864694fff6dc2cfd52170f0525aea9f6f8c31fa6f703bf47eb4da5482d66e28a5d7d849da8a4a761bdc12644fa8eca6d5dd026eb0e19ecbdf1bd768b25ad6f07d9a4929c9456506dc5083ea9ef1273d5e564d1a742f57d3f893a65502230368f0246dd47bbc36537c866f2cc5985ed54f2e49cc50124d716314bfdcaa96e1ddd81ebf637bde4fc9608acbace9333a86b2bf72f7538a9fd712c37163a5b0bf7031a7948f1e3bc0b81106f398e0167979e562320337c0e049f953ad6bce78921c1289b8c0bd8c1d3c3ce4c78e0edcf882b57175825bce59d332811b5ed8f2957872f7e5f04b8544223b7cf4d82183edc2b17bf7cf7e57aaabc80d2ee4499efda81773824a6114e0c616b21832d55b88544bab853c34b3e7fc379e52921e3fb2704ca7e1a35c7e69562d70030b7bd44fd1ad98addb0b29632b1052c686682047181fb871053ca35e28ff781687808e337cfce0210117f4fe00818f0878e086154a4928f9dab3cb36d9d1801b5550baf28e5a36b73c2f156831bf8ab410bd8f86ecd8c1e3779051c6ca60c78e1e3f1670630aab9f1c3435b2c413062e05cc24fb244a499139f6904824033a5c0c1f6168e04614921b50305da60917a1ff8e1e3f7664e0c613384bedf9a153499eb71b4ee8422463c79655e78c1d6359c0430c17b4183cb6dc6802277790509d33b17a64c10d26dc58c20d259ce04612f80612e80820b861841b45b841044c2fdf44c3eec92b86442225b83104f3bd3b8973d9d56d211ddc108296627e931c9f193b69702308c6f2d499dae277339e88e08c1b40b8f18314dcf08119377a60f624cde5a5720b91dde041e69bbfcb624ea2a6ce0eb6e91819a74a263d764307ae78a6fccef6a9f1f390de0cd8c88517f374dceac8062e9270919fbdee16ef8ec660e561a756dba2b08a91c944d10a366fc0462d0ed5e513265694ec9191011d3fccd040056cd0e212e2374af093c284fb430c1e6294b121703e63351089fc108387183cccd8e17cc692118990e16464c0c62c32604316975a9db9e9e7d8d4b1110b7d4d2e7b57b8974f12c236606149ddf59b92c6eb98ee1318838d5738d5619697935cc173aef04a32f7ce4884c9263a6cb482f45b19cf2727d1666745c99394c4fd84aa4df12a3041a7a23693fa9e50c1862aca9f2f6ac650ffe5978d5498fc8413edbdeeb3a78c600315859f1426d2298651e914a6dc5a5315639d078b0d532445cdac29e5246795dc0e6c940213af429f249fdac8860a3648516fe650e39bad75338a622c495dd484becc4a083644e15ffc24a7f07413431f0a2af7c450d6d920d800c55127d97c7ed6d4e2f9c4ba49b03bf14f88aacc13d8894992247736f5bb3b60a31398249f61d26ac9f2b11ad8e0849a241f2f312729a5f36d6c82bb349fe424f5e44860431399306dd88bea1d453bc711d8c0041997eeaa745ba32d021b97a0e4100d6fd5a51d16d8b044b77e19e6a6ef24eddd462516559fec6c273596131289f8581fa3043628416df08cf48b89de7e125ace4a62926a743a456d482229b6e7d87a6a2412bd84f7080b736727244c93a2f74bc6558ece234c1dd910bbb5996704820d471cb52b977491ba49f47cc04623dadfacacf1fcc2b262011b8c48361d3bab4b49d8136d2c8253998a9e3ac5063614714cd57e25f9b2ab5d861967878d44b89fcea6346fd64c794824620311f84c499f5d4ea80c246c1c623f49f5dfbcf0f738c286215c8f53b1faba9048e4f818bc3e066f256c14824a23221563ce889884304d74cadb60523a4bf1818d41b49b2e6a77da915c1098dc19d253aa277c272412c9838d40e49b64972fbbf0379a904884103600c15d0a1953dee6b57648243206f3b04024f27fb0e107553b548c7bf199732e241251838d3e983eb7da56f5dcc92963830f6ae5cae57d60544007080020041b7b6073964c4bf93161333d6cc0461ef8557b8b99e3f2e52436f0a09a58e733171f0d848d3b50567da2e6f63289dd0e6b5a4fa9888a8893ad43fa1b4aec68cf8e5ea1836ac2863a970c4d85fc104306dd230360d89843a331ebf9427806af42c0884464d0638c311c90e30c1e1e011d67f8088387878471060f8f402462430eb5eb54b81cc3574de54005747c2012a1818d3860b51a2e45f794a4b1e1e09b10a1157f4363d32120c821821c21656c052236de40b46eb86bda6a851f1289f42883470f084c0003392aa0e30111d0808e336cb821b913f35afe7cc2cc4a041b6df8444d4cb5ea11820d3618427f5b374d27d9cb21d858439f5d73564f1afa332e031b6ad035564d65b7db24e521395c0c1f611c000c30c030669c1e1be80f4422eda35d041b88440ca0231211848d34dc6ae2f569d9cb7d340367380622111d2db08186c7daa45d37f6e97a66d83803e749ce71c16ccbb22311e0c186193861d5e4254de8b33d453046fb7941197ab05106ccc773dff6c364b3c950308ffa175636efde43b031067d3ec554af269660ae18b87c62ca90f11573fe9a60230c9626f32454c893b33c146c80e14e92a0211e2d2bb6f2c0c617e8f64d5abbeda33a25c1861734c1cf76ab4dcad9dd0736bac0e55c5d41f3dada2609f9c0036c7041ab60ba317b5432670bafbbf527c9c4132ffb5a3844a23377ce63c2db5960cdbb525d5fc6b83116ceb06143e6fa5379642c8f48048c1e7f05fde2d66ffed86d726785b29689491acfe93cba21111b5568df4d92e47052126c508117fbb0e61219d59982eac12ecdf799a8e1337cfca0810d29785615a6ff5ae3a5310aa5925a37e77c52563cb00105cc7e4e52936578f42191888d2798e25ae54e1d321e4320d870c2fdd51de3a794772617828d26d4f291e51ee59e921912891cc0001a00e30006c871860f07e38c17c3878b40870e30cc580f7141f71883cbb811071b4c2873ce98ff1ca305dd2ca16499c16dd317e23e1a6043094a96fc67d8601d3713128994e163f0862183f5118930c04612927e6663928dfffa186d03098d544e5e3c93332ce708a8f8dd05132d79c6d6088cb7c7dfb41053932bc26fa1e9b33afb4a36229cde9d63eb5ba3bc830c1b43d02c3bf5573e93c91662430895cf5ee5cbb62f4b1204fc7b5f4fade4263d40e0c4fc3dff52524ee50756b2d5b0b396cd261682367ca06888cfe96c982448ce43063d76f4f811892cc0460f28cf0ca231fd630e8f1de30515d0d17e7a404087dbe0818d1d242bf351dd21277e116ce8e0cb9f743fd5bc885e5210c6097454a08b5c9825da83c64b21b752d9052e700d97933019dd92a8dd22ed58c296c966b9518544223bcef0f1e3bab04561d5c49b4fe2769f36461961e8681f0e88449ac719d4452dbaa04509ba98c509ba904517b1f0f6de5eed24643e1a8908a10b58b051d32a87b5f94b61081837b881fb30a38c1e63740d6a10899c318373361201e38718eb238c001ca18b57f09dfd996eb129c419128980d1862e5c918a65e8f9e5e4317d4222111474d18aaf82a8daf8ab9cdc219108182948228002c00023b12a1089e8383d361089f8e9c12312e173021c74c18a2e5661ac6426aeefabe2934a4eaafd1aefd949859562be127b432cd78d0a2e57a9ffcc673af14222911bdc800c3142ca48400c6a50830a74710aabe3dddd6fc65c96fd6186064a17a638e64f617d55235f9e904824e9a2148d26f5ef8f19f3342705776327768ae6132a338a840f9bc4ec68794e3751541e4f324952ceb691cee822149d74f2ac39a549080f28fc112fd9f2b098be7ec29534b38ff24de1e43cd14527fe3d51f3e6effb30931874c1092c49164ace7192e72ec142179bf82f67aea8daf949fc7474a109339b27394e8aeeb55e269edfacfa312553eda80b4cf43219bf4eea52df5c7671097ff34489bd1b12899cf511468e1c398e0572b84f408718bab004ea2ee9d51662ab5309b3798c663a13de6f4a9cb5a48c269918273393e8d3e5bc7ddee5952e09c2829fef57ea8ba34782d318d18d1e6ffa73489865fc56dff347d4f9b24eae92c92eb923ecce27baac6594d11bd1650d993aeb6b680f23aa7839bf999492a4bb08cba3c9d932e528e292720e5652760c194f224e4d594eb6fa9cb53a8840a5e72b776bf80c9dc410d445217839e1624c5f25779a10dc455d3be9132ac50c828a5b9fde4fdaca600ba2cfafcf7ed63fed09841e35aef37fc6cb1810f466ac9c0c19259691c3145dfc81cc731aaa37e34c7a3f64959314f2efdae93e58fd61528e4e95936788d0051f4ae69a72fecfe99caa195dec01bf0c2677326d2f131241177a38aa7c499eed440d16ee220f5e5e8c299d184bf493bbc04309fcc49bdc7b1d4acb2e4d27ed78e8d0814bcf9836f557a8f41cbaba7811b11c92becc3194892726e1385c152be84e94a678e14088a7c58d4af5297d83926973328b7183a65f52e6478d6199363467929d8bc906e37e9e18aed364b6863c57789e9aa8944e0d59d0502e9e3f2c6d69d0838ccae62bd91f0d865a341dd70d13277e86fe84e8a0b219303196760a76194cd5f162c65dd4d764b8d4ac464c760ca5b3acb1af37e64f1143aa22257166189a92b64b434db58b6028ee8cd69afc51f7173ee15363b494ada879210b271fe326c227eb82dd31ee3c9a1c2e1ca3677e4994705372b6d085454fdfb9164c711dd367935f2d9c8537a7eacd9d0b3e3216cca751db84b7af9050b59bea4eac60d1b6c2fe6d1ab332b763da5538a4c6971c5328b74d53814c51ccd3f465b8949ec2a12e26b97b978211963ef8a978a560145cc9ae3c9ea79b0205b353feecf172fd9ea0c6349375374858e784322afc4eba7cd142dd04baa5424ca887db30c1fc239e935c1974f32550e9f6f25446b7aa84e3b4db4459dd6c7292c0dea5ff999872dc1b098d4b6ce9edabe78f506aabb5aaffcdc84658c3092e59a563f12d4226e639297126936b8890249ebc96d1b4e26708c5a9872eef6e0fa710c85062c8935d3eda41686743a47aba7f3e2094d3a498d2db89afd90f8eca29e9bc5ab4b97ca046c5fdc9f6b361e21eb876f132ebb6739807d7e56fcc214334f63bb85657a6e35fe8609335ff2edada499d5ca0677672924eae17e362933b861234e6afe8dea21c63665b0a3fc135b6c024317db8122e67ce5ab4714dfa2a51ae2e498b2ae3c7c2e44a49e52cfe0a62f2395c5924bd6b4a9ae7a7f4db58e41ae773c52496696e61e1977b999462cc9e6c5fb18929a70ee6e1624deb0a53844b7e2569cda26dc5a2a31725ac983427cb8a725f3acafdab4828b35afb348fba2a4e1fe39438bdf7de49c5e9042b4136ab55dea8f8d2e54a42b8f6a69c02cfd96b326ffd86d614f988895ec45dcc4b51cc94eea3bac58a2a294e9ec3a56dbdb87c14b8ea89d9da7f6e445164e5f2d831a148d67c7279b02828f0d44c89ce27cc8a76314fa7f8d63ce1cb592ebbdc955aebc47352aecf7a498a9a13495216b6263474b43651e77839ad1b63d094263ad953846c4e0f93341377ee910ff59c3d4d1413e8bd9fe5bdc52fff12eea65c72f26837d95b228f1119be792594f1b6f1b0ee4a3925de96914c5f9b49a027e9d55ff6b20d1b496051a22475999e8c4d244e9deef324a571ad8104be1f5f974d4c55d53cc2ac529e9d72698951e388c7522e3fc534a26d4b8b373e1177318c304a73b4624c29a26216c169ce2a12fe317e1a452856d14f1c3d492e691241459e96381bad5c348830674d3c6263a482e610fe055d0b4b9bbecf186289381b2931954f640a61bd05b30d99ecbdc41022df9872b7561233ff412495c999faeb926d5e10f798a64b748d863d10a4266d51df4ef51c406cc1935dce4d5e61ffe1dc5592497b9b2bd77e502ac7bc244b89d9e13e9ce64dde642c5a74f960704fbfaaf3a1325bf670add9bc7492d3f55af4506ecd9d6ea62c845af29009699595fff2a5b4e0a174c2ad56ee76f24cb9c3792a45114b79d5946287a724a9648b1531b3943abc51d573d91635540a1daed8355f1baf3386650efc2539a6d0d40bbb15399c7c3ebc49716328b11287ec376c38986622ee7ca2e2a5f206475ba3b362099e4d8a1b12e53c7f4999c136496983653e7e2959be127c36e8a296d2a1b3e9f66b48aa9472f2cf13cb1e3598b1eb19b2a36677d3e0a7bcc6aeff286bd140dfbdc87ace7c5dcfa06b4a4b8f922b4b3543775e196931c4322d4352d29885b9907f1a32f49e2bfd7162e63263a8ba93dce9a6da7411032756783ab91286ea84194ba2892e6a82818d317f542b49cc5f7e810e936f39eea549985e703b55a478545a13cc2ebc63a627bae16c73c98523bc444f15992c77b9857c57bf04ef38bea9d442f561d7fb399f2b6516b8906526f49eba9a2416708f2aeaf2ee15ce925a82580aabd1add0547c088d774284a70afec968b4685625ca542876d96cea58629284a760bcb8a1af29f22f2b8583a674afc66c15d5281424c3d726ebb2325048fa8dfe74e713e8ae0fbf8c27d8974e28c5cfd22ca5cbf29a700cfea1116769b263c2ab59343c6a6b32b684e463fa2737aa4fa604a72429c25536947c12ecf827cd9c1412d0c9d8deca749b2a3c42e639469b8fca084ba94459e59aa8131681d3efbf0e33e76e824428471f1793e344e7ce10cc5e62b59712c2de39ae256ace9fc241a0df553ac9d96b1b20d49be6c4f18a3e17fd41e246cb8d3f9f63333ed8a3a4a5545f4fbe07c9d9abfc53ab870f0ff42425eff0269820ef00d3949473cb0074a05e447bc7e482d02cd55963876578b8304ae5f3cf47a457778b44cb5393b01a254b670b72b3a7e82d17aaf3b5b8fa7a3d7e4e25984f0ba3e5bce94cc1cffb59146c73672fb563e4b230e537d5dc27168ba789c59818d7c302d1f47956625c65fd0aabaec39f20bb82affc9db3b5565426fc58be9c537d31566839c8acb47b4c7bda2a8cae134e8cb3fe699a2a8e2d3529b35ca6312d157ba82cea6296a4933454fcfb35fd3326b88a760a4bb8c88b7f82be84668ac2db4bf3224d8c9a9522c99fa9bbbc8c971929c8f1247249ce280a9792580cee1f991605bfa963bf8576ac43518e6a2eefbc63515030a32a75b1963de513fd9fd027ab498c26eb095efe643d86d0fa742231a62476855e8929e584e16c72fbddabdd4d987d2dd2cf4cc8531325134ec37b69c99bc944492fa9645a0a13d889299f5096ba441a4d70cd26799858294b2c5e95251a1b7f2a5589d2be539e74b245c915259c8ab9f12fad6b8ed524d2a896cf52e79b182b49e4a37133a5962459ac22a1e6fdb4b61a5c3b2b4824d6b947d3cf55b8ea11858bb5693efe4aaaca11668ff9ebab3fceffd4884b46fce24d2ed97c6204beaada15db84f2382d023dcb139ec2dcde4e8a703b3ee8673a39859d12b175ec4db9ff728c7142445f5b52e668fd191e3ac41661154d0e29b31d32045aa1ef92501722513e4ea667b28999109cacc13377ce3c130f62fbae901f6edaea1504ebbed1c4e0a3e16b20ea3c61e355f874290a88e592446aa9da96fa877289966297462ea87e483c6dea54a51e2ca60fd54b69e793e2e4d0f081feaf91f1949d97b2072b548e116b99b356f4c0a6f7d7cb394985310f6e9233fb98f7c9ed111e08b1084f4ba20916a33bdc298772f3b6d854911df8124a3d7deee4724275d85b3cc5f384c5ced3a14dc994a657b6be9f4382fa469d6cbd6c8e1c28f943a714f9ad76c7418ba29abe73b3d78643153a4ce72fe63b7e43a2874af6a72f63af1bd0cad99226f92d54d306d3a6fcb24cc29b56d8a094dfef5996341d5c4397525d2eb152a58b6a587a62d37353f4bd347c967be282c614ebd0a0fa499a4bcef9fbb13324f98e7c753a1bd5cce058f40e1eb6c6f365a093943945ff3cc12743493368b6e8bd274c6378263fe7b2b23a411283a59f83668e997aa2303c267487971018ce37e9c9c8a81efd021d97e409ad34315e387dc99c20a3992b5d38fa7e969c3f4a4d922424128941245286088a175c7832dae7cc5dcfafedc5165aff24485e5732e801811178a1054c36e9434e30a942be9048c478918524f1ee4e4e713273c70b2c147cc3495e76035e5ca137ef150b96b4fcf4b35e58c19b28f97c39e6bbb75e54c17c9ee52262c122d790157841853f06a98d5bd51be90989442211304040c6ba8f1f65a0c08b29785379bdb14b7450c00b2968c08b28dcd99e243937099997175038a355563c85cef5e6c51312cdd7976b7ab6b613f4fb0cd3494a4c52b49b805c745ede4da5a82b134ebdb2e994c6e6374b58f6df44acce4efc8a1256bf987325493e8d79124aba37ea1b7d766e44c271a399611db5acb62394c376e61e934bad848cb0ed6849cdfe9895494824c2021f4e0602bc2802b7dd2d65ebd5a31e193e7a3c1822c881811cfe8233c2d0e12ce0b11ff8f50c44222cf08208fe9c7049c8f28bdfb91743c02d8d055fb9aee4792184a735db889d1c56e57a1184e20510bcf801ff297ec66d6b133bf5812e9ea14e2a786d6a767848bfc08c1d60782047067494c08b1ed8e27d5207139354375ef0a04bbbde9af33d1f3a2f764067467dca60f142074d8613eba3e887ec7c2e38a98c9ec77f63ad8b8ba3e424caf79c68c6945b6472bcdacdb9daa20d1bf75765ac05e3ba62de31ba9294a28526c79578e7b652d1c20119dc9845f1a7366ceaa8d4ad0471431664d8bdf093f6f9ac92e3878f1c3a1cb023103762d107c98e19de24692ee6062c92eddc52a8eb4f89d11baf58eee26e3d7bca98a219375cd14ac5f767af2e4bbf15c7cb762764500b75eb062b12724cf8fb2dc9365b53b8b18a43977cbaf29bd733a707375491f579a9a58c27afe95424f5ee6a31a4c4ddcb0f6ea042b9f419cbe1aab7ea5360c95693f49231aac6dc30c5f973537d3c75faa68970a314e9645b55cc9f374f38448706cad8518687f48f2503004bb8418a1ba3c8c2d3ed771c4bcb7c0c972a5b0ef5c0a2a8921edaf24df6b2bc22bb0a0bffea30ff0cc7400e1f1e52c656c01575254990d24a5ba168d8e9d2d8e89c151cac28687897300fc9988457b145eb5f7ed3cff3bd2a38c1d259aed7ac686a07385261e8f0964297d4e13e2a3ea1242c53be4bcd491ce038c57e639a25b9c76d9ca6303cefec9c766592523cc0518a73484d396be7b324896a000729f2f7fe9099ab3911e1188517e72cc96b65047088c224af6e6b87d911d5ccc0118ac2c79252897a6692f11f384051dc4a9dc4d9df4d5a0103c727dca84935ebb2675c3d51de1bdfdaf06db58e0c31c6e8045f49ac9b2a21638b1e128978000727682f295696cb581c9bc0a109a38f54ce497f2978161289ecc091892d5e8cd8933a211dc08109bd4cd37f4c7125e57b89d35fe5134e3a4322114b9457e953856bd84e7748250a2d26b7be9a64c594c82ef26a723dc99b7242229110e09844e94e9e9ece581279fa2e79d4e2e2538c4462d12413644acc122b1c90e83c3579c84080e311e5bb90717b2d273bdd11c6b7122cd964fa0d7a2336f9e7ad734aa6c40f23d6d73539ff36774367115cdad4f09b62be30e11f3c3c06ae021c8aa0a44df6b0a7aa41d7445067219f9225c95b1a44247dcc90ad394cc54987e87248af13dde03084f92aeb55bfcfc478fb29c4a3596d3c4569876547f310430438087149f1bab47d5bf7c459b028c031885a4b52324cf41a739c17ac0640b0e3b88f1e3fca30050e41709234bf66f1f2d16347e20884f6212f7c2cc43b833924a0830c1c80d02ede3b669a0c7d2f878e1ecfa30638feb09f94a424a59d2109c0e187f373bb4948542c31a70f38f850e9b7491b542dabc684f0d881630ffd599a8a16935f923afc038c21e0d0c31996ba83798e49bbffe8d1e30338f270aaeb3013664bca193c70f19349ec4e276d4adf819eec246ed4ec61826b872ea989b9e4e3ca73b20ea544589adb998b71a343df57b92b6b3ea1de9ac372a29847e70c337939381d26dcd692cb799238147d3c26d94aa9f8e90f70c0e1abd14d1634e5903fc1f186b4d5a7eb3c555d7b379c2f553586bcdf5ce26db8eb438ce7cb6103e335b9712be4bcd86b387fcec94b32ac86e44a974ffe2ffc4a9306b4645d194d6d51dd82862aa3462ffbda7237cf4064ce7cb8643daf55080e331c6347bc9abc61234338c05186fb84794dd22193894e86c3e72c6163593777d6078e31e8d1296d86c9a5b9490c78ac3df1f2ce30301f63496ccf83a1109dbaae515267927cc1d1b7ec0e2727c13aa6070e2ff8ab2126ed962ef82945b18d492b896a73a1ec396636d94c1237698b630b5976d52bef3f593e80087260c0003a7cf4f8b122c881011d3bc0a105cdf6c27530694f4c380b76a578f7715f2cdc26a58cfa7f8c31ad5730495bec3d8f66f2c658a17829996931a13459aac0c794dcb7fab1a98c0acb487ffd7ac820c3026ac03105c3b9f5a6760956f24b61cbb549d00cd96f4f147e4dd27dcc490a27c550784bb47099dbefb1fa13dc2c96379bd8dbc5dc0975aeae4fb97c667769c292ea39a3e61ad992c2842a666dcf67e199525bc2995af6ae235202995e2c4acbf2c97a12bc98f559b765010f31ce88c01d702041ffcc9ffcfb3e8217e34bf95427d52487eca0030e2360e25710db8ca9c7f245782acfc6d774255b5689706c782649b70df596212476b9cf8652fd4c08cc091ef2b9673d5512178c610603c0123882b07526cfead6f17e7220e06b163d4be426b7f507bd5eb4f714199eb5f9c08ea9b72ae75dbd6c8594e1c38c761f3b9c0547023fccd040007c80a3075b48cffa13f3cdfd8444226398f162fce0e163bc60c7f7d8c13b660086057c70e0d733904304393090c387bbc0c792f1fe8153e0e001b266514c68db69fb71ecc0934377879aa4d135c4a1032a76c9b1937c9ea6d90e905cd826c6cde96ed5ef1f128924082ef0b5942ce93ba9a72cc82d92c7ff52988e17cff3b638c63093da53c911d1d742cb31f64b8e8e16e530265a2a8deb64726661d6a85462cffc981495c55272a84ac79458a4596308f36cd2769282851ea3a535ff04f20abae44e1ffb7153ec9009405c01d20a105680ac02441520a9004105c82996fac9b01c3d668c38e405653400c414608094a258e2febf8798564b482f045c0c1f61e400e30cc74048195b811c8f002105c828404401128abc5536b6c3562ce54141869ccf5eaadb96ee273051d793675cbff2c813c5935c67563ffbe41331403a818ee79f1c724ea3ee9c2889261fe5af82fba89b48b0d1d89be731e9a568c291da144f281f2413c5b0196bea345fa70e01c1847eb12693d093e1fab9c4976747bc4b4fd47c1dc412556ce51e718d4a165525d81dd5ac52f9ea634e088412d6d988d96db2501a0e89444026c149163c86cc1b13df21c60e2580488268eb97133f73ba135f22804422d14a480fbf2327fb8644223f0081c429ddad76922cf3cec903904718fe39fd4458ba5f2c0610479ce264dc588d39fb6223fe689a317c95a79493308030e298ee244912be345c6b8b404f1253bb9ebc993279014411b8647dcca82645893a02904498620ceb3985150411df06bbec9a673f2c05e410c9e7342a57aaa9cf0a89440e0f07411b400c91da9bd431fa335bce844422659c01a410b46aa7689f192c193b7afc0fa700194008b16ef68dae5ff2687856001984d9267f8a915fa7eb4e01441059b42bab09d3ce5169024820deac9dc47aebf41425800002d7384136f64c877dfe70ce187fe65556b12a7ed08377aca871e39c1481f4e1347671db57c7524807081faaa8d0954cd65793fa3d9483543e3359cee3ba7a70bd829d7eaa943d2f1000c983514dde9cd8ec612ee321a136675647e8c7fce500e40e9acc742739c9fa71317000b1c3fb61fba4d04a622e31241299001b40eae055e59cad4e103a244a899a69aa1301640e4911e5266a789cbde40191431c8c258ce61493a161952f80c0a1acc184ee1bb1b5f8435200f206d7f2c6b4615b71352606206e285efcd292b2a38c33dc053b7afc1003a40d85f1cdcc65f2c99e3936f82e25f6c965c9fbacc178d27676d9f897581202a206b6baf723f27f4f4bdc053c5e009206bc53467c7449c9c78444220d8206b3e8699de4c99bbe9dc1947e3b77bebce627cc20660029c3275d12b27e5d2a3719b202103218d2f14c0acd2dc90bc818e858e9ae28a152be28881812dfee927ce7b53e1648180ab99a97ac70fd11a70002864cc2f7cadd837cce1740bc60de13268074e13ac1a32f49967d72b8501acf795ba962c9311812896ce11213aac2f698466504102d70f1b2f63d4f867141b2b0a650a2949ce358af068285b4d26235de258d7f8f1e21631c319c0072854bccf4ba463a49621f12891c01c40a7cf0d9501136d6d12404092055389c97ed094320e487182328638c311c9023c78f19f80f1e3d2090c36320461140a8003285bc22bb722c5924dea40b2052d0d34a305bcf71b4fe238044c110f1d4e8fe4e6332047254200708744840082050a02aba5f6892077942bb1596212c66e5392700e204422a95349fc1739a0ca409e87f3a51ad6b10265426e48969244dc6f2d1a301204bc0b25cdda492d537018812eebcf6d1e9fcbf630e89444092d0695cf8b42f7140c78e1c3b725860092048d8d4c468f92b5c4bde2e00720453bd546a7f3a29561f041023bc715a9f3ce684ec2863cb7000007a005284f3f633c63d314eba730042043fdcf37396879ae8e10064088cabc4c50f16635516c2714b922ae6d659cbfe062041e88470b9f8525a524e56200708744840070d408060b2b297ecb6785a412980fca01777adb463bbdfd611407c70872c9352fb9b31411f80f4e0fc1e4f6e1e4be52b203cd82fc79f7dad0c901d6c0044075fe4c24b9e799f24496aaf784824f23d768494b115b82f70f1f77a2ceb183d54fc849801060fbeb84569423febc439045ec60f3124f0852d5449b7934d4c9249f39ff1430c1e3dc420c317b53876dbc9f406bfa045d249b9e12fe5b38e3f8c59f8f1e6e46a5b2ce73418be90c566924ac7099b2e9a7c2cfecd1c9e520e3e96db2e7c018bfea35b861c8b5591f9e2159c24ad5fbc6adf5a8e2bacf469f3cbebe49cd75678521a938b7812432d168851c617acc83be6289299829df059859ee94da30679b1d6bf50c5fe19bc5389713ec3938a524531b1824e9d4679067e784ce10b54f4f1ace4133d750add2a2739c85b3690a3023a92f08529088ddccb1e6fa2a296c22f2bb9cf04c993aa26457b6197ffadaebf4a4661dafe4aed92a74dce4551d584c97d710f453909f3d7974992a663a028e54c2917e261cdac4f1c196ea67f53fe9c224f6c269add9909a21b4f66f045270e9ef33b69aeac6acf09d445bf921c19ce4a7e136a8961334b43f35f471385cf84d598a6cbce45f045267091acb74a1d3c9e184c1c4b54cf0ea3ddea9613beb8c41ab6e4fcb1c4f24a1f147c618953a44e924d4e315bc548040c00f8e08b4a64e9a77c4b653ca59e12cd2771a66b2e7cbde8e38b491c6791e13486dd664612a54d139ba4892271e612f6faa5c43cbcef1f80c1179068bcc34b9c6cc8becc23ee3ca2963d86924d8c99a231be7044276ec133423bcd2d667cd108efda3f562b0922ff09d9d1811f5f3082fb8dbb8cf166ee2da22d69ca84b874c16274a9084df0aa9ff7f413d24ec479cbd6f2af09de6b410453a231bcd44d4c387ff4be800c177c7188c2e74e48c99ae77d43acde95b2654f32fc422853bbd6eb6f1d3e8448d3d3de489f24d919841fbeac4c644198bf76b2740e9ac30d44755203e2cdf559bf12fa37fa877b2e5b9213dbd3523ff0d1fab52e9b654abf0f58d5b7c9696ddb449f0f64cc93d462a7cad8fc1e6ebbfef0acd1831d673a52c46a2de5f3a0b59494d484b83ccbe301db649b57aa6227f777e8926568918cfb63f27658daa4688de1a87410230261180a0582a140180800886a7c2600831308303044208d0563e1a05cdd7d0014000044321e504a2622261a1216121288c3a17030141005c38030201008864381906a10e76a62e305d72d1b211327c7bcf8ca84c08d040e1ae2cc94d42194d2169d7c484dacfe9d0c211dc1acb9e826198e76c5fcf9113288c78850643b891854103900fa3a02b39628ec340200dfa098f060433e91e90e826416daecd7233056d942e0c21329155dcf86002ab254246a4e64b4a5ef1e5adfefc5a05743283ea1268afc7d1ab3177c72f54f51292536d601df875dc1dc97399480e956ba1a712319615588a18a904dc18e27617a90ceabc86568f6750091a4d555bb7738da78049007eb138b9d0e6a900b8f98603088353bef28bcbcb107ea090bd91aa299828e8d69f14c89679de6c05c0940eac1cbf23859215fe5eca9b1003d2eb1438500e4568ea26e24e451256f747b71ddb996598ce06e344e38395cd7ede08f7fc3bfc88860606580a52e4da65449c3303118afa58ba4534e9c5546b7d391e0a15c14cb1d476cee12934bc4225b1d0e49e733bd4430bacd7b732ea0c89d2f54cb8d72f8ebb9ec5e70b0e88e63cae9510bd123d2e4b2cbadf2cf8796775f60f72268121323a01d530640daa954d1646f8aaaeec66f60e4674e544bfdc8097793e17bf807eea8e8c6fde7a978eabea8b0fc3f6a1aecd434ba0cd30dc54bc1e5892bc2d35af914c130bac09ff7274835308b64ae16e0da47549690e013ac02184ad4ee00d242ce8847342496f6bee0576244e99af3373d976cde4e19a42185693368592e5645922c865beab82d1bd969fab4064174188e4769d4784e41c19b7891cf706e88bb4ef074d55908754bfb812dc708ac3e8a8267d789a3b8eaa314f1a8446acf90fad7dd95177a064887b30f7a060985cc2a70ecd37093b53f64623793ca75d858fd164bbe9445ec20476c42209ce07d99d8652d5fed200d3e17f5bd66a4369de878ca3fa5efe59e9b32d0e5c11882605d8e13fa04b3a4660534a82c949331f8380fca014f1f28dac9aa8cd39fefbee0d3652a7486168c7aa4c92a71efae6fead18b151bbfef42d8a267b70328bb2b140acb3e1cdfb61e231b53532b89aa647e440ed2e193409a69e5b122dcce2b93b34cfb9c578a69b4a80685d677d8e5638ed4e8a1809f4ea3e011c881ac2f29e7260651cf20eb2d887a0af2f532203750c1bce16670f90e4ae04db83f8e1df1c65aee0d177aed726fb7d8fb167bb525bdd992bdd39642d416dcede5b4b05eb90b51d61e203f840e462d06993d7cdc94560924d0735312f12ceaa0a928e112dece640a1cc13d3897750f18a60ad6aae10e3b090ac954c4d04121d631165cf07b6a321591a928314da4732ce4a37c6443cd4547d7fd6a3f864b373efdc78bbe80901b8e481f12d7c848378f19534e6fbcf6f26f8ea9386c8d0b538690979f56c766ec21de8d715a966e6a9b84484d1b1089261bc8673abbfa3399f9e276a09b88110a52f3b0ee0ef1849f6190dab540ec392d6d9bd52540e6ec70d9097271c9e2a8a0abbdca200e4ccd948a50d5f0391881a23639763936860c13978ebf162c6d8cac2e907f4dceb20b0e9b36231d29734479da57d4479d9632ea458c7a844b9a7abaf494e9094403e569557994330df13ca904a7a4e9a8534b5230c15ccd373726ad1df80331bb474bebfbc3cede504e0ad936bc4cf3398167beb159aaf66c2998264d9294fdcb4632f895f5d2350a142e2868fa0d324dbc962bd797ccb6a0f6b1fd117af1b57e426ab14a9055775d6b2cd68062af9e97f2e63e6f1cb0e2fadc98d615c9101df28ff934fad23aa05b4994edfbe2d7103762db7dbd328553add2c39c488af4496fc0177aa22483907dd063298587c7c37ebfa157e335e88da74c503d6ac4ee9dee63a4637d14a592604c062e0d9426982abe230156c154ae5262c2659e6b5a30861baafdf1f0c56567b58e10136ce7bbab96b2ca049fa84fe7d9e0701471696aaed3b47794d5239463c769887fd2ac4293916816d87a7fbce8855265bd30e33c6ea32c544b698b2f559b75f957b2963b9f4d707bca2b1f02985a8169b47b57ae3846124b0f67ed003496c938a77632fba84d8cb29e4efc9591da43b0bd1945852dc63da9fc02e98a04dffccb81cadb6023700bfdbb5c95d3380d90a329f2efc3bbf0f35163c6ef39a783c6e645aa8c629b23c586c35161cfc817d055ea29b413cb6a9dc54a8853610897674357f0af27b2420d06c1fbb5b35c671fccd5d54de5683b59aa3decd1f034220ac33e1d4d4ae52d008a2013bdbb07d9a8b99f578951316640e3d447f4cd3a39c7205a3c007cbcb288f78a4a0a392ae9dd3d21cef3dc9987e8fbec9708314ab025dc1f5e512f6ffa842ecf7da0d129f530c728680b06c702a24c75d51a9d75e03d67b4196828ac2de15ba3b655091392d6a0dd22319199df13e63d36d728cb58700898732dc9fe68703b3136f36c125c41633387f9f085a61e05d2b26faee98c016538856b2b2a13048de0afd90421213cefd0a40d744b15a5f5d2bd9064fd06ed1c27afd38c4c9b100018091f3337c046c99e2a1fe362457afb949514f03e15a40d872358a9f1237f1fcecaba7ff3219074317d01495732e506fb772e02c551cf6e4b221331bf0a50af3c0849cc6e6290b90d47f1c1e58f0dfe3e5c8226eee096798b913d4967d90922b0b1f8d5a9ad3352a6c6b4ce30f5e3bcf797b1353cc5b47f7423219c0fcb1c82ffe09e1d324dccc39536eff5255021b12f7ead9f24584a948226f91280912a3eaf7f1d812a150b2609b3201b23ab058eeb858dc9533a6098806fa74c0d5c031f708db012d5affe4ac27cd68d97e9237fc28f5239ce6999c397287f2f55a2174d7e19e5480bbb55113ede2a7d4f8ed1be0720d97234e55957f4df582eea4d036703239de1a962b6b33cc4c4fef6d49b0b75574f7558ee1e3923deac039e443daa0b88b59fcd147deb23cff83f31790d016b49850215bc7783e8a77a03bd6b0dd29c1c4caab1ccc93c5302fcb2a2939dbc9956d56ab4e14c1a81850b3656498e283ae39e4859ab8853369ede65ad57074ce7aa4a3acd005298f33d9337ce78ca9a80a69af86791840850c41e0eaeaa2120de120598f0382fd029f082fc2446deed69a4a14bf76a38bd61d80f78f7a203c13f89173a0d03381c5f78c740566da12f0d00f485dec61a1d13b86d8594296ff65c45e6a6a7dfc63b78b47909eb958151198a9d32bf3935e06892b4db3c2d56ae870d1b8fdc9e31741cf1255e34fb0c7e776fe1382cd362ef73249118119fa8980f7f0f11c37f150105650e5c465b971104768adad7c5c20a4fae3d10e624548721590e534a72a26ae95bb52ca8c1505a61d82de060e87a84d8ea3792936a390d22ecf5b0a7a680ed19284d58e789a9305034c8721d2a719040a99c65c9b0ec959bb917905211a5db38593c3154ecce7bf3e274864cba75a21271a5da42c1d021f355c2b0a8c6d4e4a48978f08b34f0958d9ae8e6bcf36c04016d3dd24c2cf92554f06d02dc910c49152da55ccf4fdb4ba08875db45204c18bb6634ac6136a1508a121863e862cfa048239922026fca18e2e1814670922a4820318203e2fb22d3ab570a99353e95c6a8c52f305b2021cedd90753b3da4227871c27fa741a4e2a0c7c8af45ec87f18ca751730907535cbdabce24dcb24c027409462f61536840981f8a0c44389f323df77880f4f8cec41e49a137d679fc124ef4a2d3e284a9740b8db0dc75917a7e04a9ab6f6e847192bfc9929fafe189e3f900b023fc6886fc29d868e94104307c86b0aff9028adc1d8ee179bed3f9abdcfc8303c70a19227f76083da38d99a0455b102d209045b8dd56b8fc04bc1c941b2f054006ee841d85c31dd41d152682952db8f9fc5d873defe0617f35d645e42b3b9ad73d08bb5305c7cee13668202874d244a114d7f0dcb7936d5f42f5fa61a13c47753c60999446d6d570addda33258bfb6c6591fdcd86203d094ec8a04b768222174422f0a3ac3fff19d2ceca51297c02f338de2e00f9c3b64f0f69c9d666c352db68fb4cfd4ab4c6b06dc19bf89d1b5f1229920912acf1540f176ae4c4ab0b3eb1740ffcc0765f35046b5b420a6beface53ca3052889b04d7a1417486befdb5580e33355822bcb1ba83bc6b4408aa61fa2e4119beb7c4b862cf00fd2aeb9a637ac9338de99f6b31ec11bb2d311737cae334b14f06a841e08788bca1b20e20714bd4d67029ddfc3a31046a61106ab071f76106c3bcbc6f0e94dbae823d528eb7259585e792990cf0ea8892d9564f63115e07774794bca301f7a905f6fd458106901d02e12b549282003d085c624f648ff63a46ef7764b451a65488d046fa4843a5f3b50b4672ad46ef02025b21caea5fb71470efa3e6b186afa3ac6695ce0ede2cc6e4c2de512ee928b078f9ca847be35ba67ab5156b92f5f6902199c5aa3417e9255e58f564029156f38f66c961357dbe53ea14f8053b4fff9acdd63ccd54a18609b98f58d4542b50db8eda54fa756796fcb44be9318d81077f0f3f229cacaea2866dbe9a69d1610043a3dcaf9061eca116f6dcfd68b4df4f98b41624d9766dc981599bd36fc5f4d3c43e1954fd4c310e583e47f2747a9ad9ecb0a01e34ca9d3bc6cc7343bf818cd11e3256f12211d38e346ee59d735dc49f148fe41e4f28d3b55c406ac94ea0a4c548339b225096cad46fe58b2702043852c0f8260be559452012cc3efb5e484730c0720134c6a50b95e85fc84da43781c2d63743eed25f7269d34a5c06a5a62903fe0dd70469929e1f3428d35896ea423dc50dcb9e0d724d5f894853bbe29a99bedd9a2aa73613d8a24e45ca358f2f107809ee5a98805f23d4981d01c7e1c0f12f45017a64e7faaf1f0b83ff0b7a8d235a149d424f448be62d48ab6701b265f3c04a994b002b169f4bc8a3dd1043b7cfa33babfe36d71905aba66ce4fbf52bdbb475b70ecfe5a574c280198035e012549fe8f13c35c24c98b0c15773aa207d4ff59d74917897bb2649e4797236637bb31be66d98aaff1d29b79d648ca4fae5a8cdaa37b2341b63669e6f3e1d32a73f1f668a2c6464b6e81c425e1ddab0eab07c065fdabd7c08cfc96df6366670910cfde4f6f4d9587adb610142a753c59e01df713dff10cce8dd77820c0e6cb7d7ba6129ef2236392e1ad20dd438e458febe4c97528335454bbee476210080ba5715b4af00359e015cbd55b62d8e4d36ccf502704dabb01d07e3ab536cc854ed3bd7bf348defee9125c478df615b6ebe3b78796cc974c81638e7e249338668f792c5f60a7c4e20770f6adf25a75697e168ea045fdba81f4866882837e9eb63c567f53524e353b643e686a63cb9e9b6207884a0722e53240aa1ff98f88c97cbe3249801d18205ee68bb866e5e12b53bc4214beeb766cd7509fa4735e8ae6d778d9488159526f07fb071ded25919cf618a08c1cea20b50cb84df45fdc89ba751489ca6c192b50d1ae3cb09285dee383dfb411fa20e9447aa935ffbec3bee8f151dcb9be787f724c639647e050d023b9ac477aaf839c0020f27a21f049f2541939936aa7454e39ee0561aac2cb2ca1ef8fef7c9ac5f7daeb6e0ab12d51c0d2bb8da5601818f0fa51f41835b568c1eef83c261120748a7a4e76df806031d6943661459e8cedf493a77d40121665e8406aff8c97f68476585db25c6b40879c405f057139c9dbc2a5524734d6d92049dbe777819a16008191ac7d6dec4c42a14031443557072d959a3056435b9e4d2fb821b29e2cd917b3b8732e7180fb3460fd2498daf67d27639fd81ab129eca6a2529447f9f96c322aa953dbfb9d1fe4a11033a82d2cf84c409347f3ae7f378252c1f125143c2f7f4b92606410da9f08eb301d7c21aec7d193aa98b757f7939c2d6e34252080a0b4c60662bcc9ee4d5d583920d36d257d4bcada6ad5531321f17e9962f198de578e6896794915c59826ca580a1cee5cb2dab1e8e508fb587672ffae77e8c969c68a996b70d4ab304b932ae8c1ed78e0a90e558389c43fc49c240442d3d9d38f73004598eef51a0ea443ab29f2be4a81317458276782ce1dc3c730dde153823721fe162decdcc3224402a66d0450c8ded923924640d37f7ea60698e46678cb6b31a25d1010c984e39aa0e660afade5a84355d2bc46c48f2aa1ec3bb13fe485c7a6885638881205c510f1224e1c2bd85ab19b637e4d8c38f6030913b73c99c9bb8ae73a15b7cf59213027d4db348ac33b42a4a18d0455966f231381bccb7d96ea5ab8fc4ac7670cb4218ebb8d357d1d257bf315632cae2850aa256c9edcfdc6abfcea5ff3011329dc1e737c099f784a178b03ea3191f4c9cd82a4b056b180e4b998e2d047c1032af3050245b5b9eeebe0ba9abe6e027f0609ef442f5d88aa6e355da4664b939466f0cba42e9020ae84024b982438ea10f93967e8a380aade9be8e41fa953144b6d0e58a7fa85ec24ce632bc78ca3211ae0c4ff32573a143f3aab00e93d7d761c92231b2a2a74c2f63ca797653835ca393419c98f4650baad1da2a56b194e1800ffc42092616728be0ade4874f804e31180b39925c9203d2ec1af2204011c441e3490151e13c16b7297ddb103a20c54d65a6638796d2229443e228b6ec4b0a5d53a247aba7021219375105566a25920912847839975c8c37ea97ea7b4820bfc8ca9d133a6fa936d676127b29c727b108f2005a3c84bd1fba200f9dd2be4bd74aa95a815967b2655a2184e5680c4c6045101c0d5270193feb02ebfecdd4355090728272a6bb8f03853565f9b604d8c5614cf12d3a669ea2e9ae1109f888a6b5045a3af05e2a418c1db031c56110e181f867d7707ff22186c2d0811a706d052a97309b3a95d2036a10599bf5bfab1822ee3e4c54a0191730ce141d2bb65e76022c7ccd3532d4764d5c4253d53babc01d0ac9c93f2c847a1ba9154593db78bac759a578689e971ffea31c4ac8d770c3a95385bc7d14f2fcae8a04b5a60434cebfcb8d1f3bf56d79981807e79b67de3a20bbc2072e47a878a623732ca9ba19f48597c249486329339c671db51e640cf0fbee7b9e01c2fc70a32d95019cbbf255dee825b49a59b0132f60a946545228b3e982b33584998aa99228a3334cfd5d6cfa69a0aae97d9bc9fcae8352690f9ee564917fa214e365b839b86b2033235ca087f25d8d476143cb3ad6246d2759e481f0d08401014db3ec54e89b058cea9112501f6d4e999aadc1d16726a3f9f4ae06c42ae07e379c0a2d07045926c3de871aace863b55f87a7676fafa978d0d0eaaf112f98e9e2dc44025fc92544dd38a6ca291a5a0d52895607a022a4d775ca030ca4aa59fe64780a8bff786dd77af6f152db82ccb96c0bbad7879f511583d8b6ab97f3c8c1dc4a2263154173970ebe3c5a08c6965605b1865293c6854b605bb4430171bc53750c0bde1bb62d08cfd010c7c1c9fcf4e443edf91616456cd4391a2803496d6f8c2e1f153729e7594346690ccdf5291aa0064df8d90b2913f8b0a9bd38b063608b614959846da0ecdaa119825cc823585f557044cc1a285d6f1b4fb77f8ad8116d3fa11d7fa80e6112d2ea6407fc3ed8af5cb434d5b3409f70f9e751e5147ba13de84a502abdd683207379583aeb29d7466971f2cc93156fe6434fd136bd81c33719280b458e30c7db439ccee27f5c6cb9ba4391032e5f708cc04598ce95ed70bdef4b537c76ed6a88334af682adb91a2876a9cd70db3c29bb0d5c833189215d420ebcad8ea0e0be22e288e8cc1db074b9372772ec54458d25b18b3fc8bdf7a4eca871b2355537fc062197cae18ee2f989cb89b61ab9111565543df92fb31ec9988b8637cc93286a454dc226e3f01ead2d24fba1b37937f64db88d47243dbea33982b31123d37decef124a862ce55810eaf5771b5e702d5290cf96ec9c4243af5da908e3919ce0ceeac5fa3b1efb22e6029b2521b4dc016ee52c9547e547759455cdcd21b148b608b55022808f990218f1efaea44458f3fd36116a4e616ba28069e2a8d97157265b330567f7466eaa93184cab6aaeea0ab4eee2db981f2c1e720b9f13803d2395e3644d321540c1bcf0f2d8b197b588e28cbc2f38344f40bd34d9d1c9b95826897c43dcacc64529a9791f8a4a494c1d8d1816b4daa1458c9bddff24ba29e41db7c1877019894ce8e8b086b83b5241cb249ba50cc8cfa32fbce8d085897be9ca1a0ea48852319c3f60981a029ec1383833013435fd0c71e2f448097cbb04460ceb023dcc57da6e449dd1ceda35d80060dab3b5cb6234fefb8c0844446e33858e83f5702c2999a82cc475b7a28a259d6374c2e2292ca2965c7292fc7ef12fde28e04a26281623166ee91a237c92bbcae19075da3045cfec416ba5c6000d5b9abd9984765a5f0428b2efef04b791284190a53b6c7ae94b119d65a3196f65574b05dfd29ef2ac0d58a18058ed0213fb840640b5ded6a06c8239aa66c987c173f5ae40fbae9aaf3151d0870876c30109a1cd0ad791af057090ad6d2bde43cb095f4a88e4e301c25cdcce0841557a626dc31c6e514a761dd75247b8c2f3658f32fc12fe74c89c1b2c3c189c1cfe64f1630e1917e6c13a445865884042b11e4b9181b79b1b2fdb1afbb66608296f48f98f139579483dbd3ad825f7b0edc332d9249830cabeba1e3bd05885a8303aaa41a8fe0eb6b7af862cb408ddc76910ac4f3cb5c7813ce13416034b3e0ee8131062b7dea333db3e9bea4fe47951c57922e89d403cb0c722bf58b3cc5b9b887aca5500396c3f3847c0354d102d32f27a4f79ed405939a3487bd2f58e02da52e238ab2621268e3782788e9ab5bc19b186130779a92003f92882b7b2cb14ed930509150561026b16f65fba791aa483298602bc331aaa45327e65b0313be4175ffd3f9509123367f8e6075878cd2140278d0037c452d0092d1b2c668688b3fc900e67b0e91b46be16cdcd7edcb86ab26a0887a5844508bd7b49b23fcca749e4899bd0236b572293bf93fb43a0177a0f01a15278cc0d1da2b4fcb08798c73e4c3c86078eed4ba6acb7980039f3edbfdbea3dce951c88940fb9b64e0ca311423f2443328be296d46aebb6643facadc209f4ce857b0f479750968865441090c8e743d89df0207dd0b589e5232e47223847e8bbf7bab2b8dcd4e9c37eb2234c247f9857a229ee0b258f45f0591b3e2a7427841f5a5c889f27d6db38b0524764fb8eed8061fd9736823af47f35f8f98bdb50fa77c1d2c3d4f02a13ab11cfe06f4eb8c73b1bd757b49cc07dce24714228afc9eae6d730cfd14c90badedc299895ff69b01b4b362a36693d307e3d5eaa8ab52d66b1cad28e57f011d2c9d6c146da6e1754b6b36661dda3f3b3921e249a348933eaaf8841c98fbab00b54a403e1b635a88b5fdffac9dea3f0a54f28685d97291a18ac167ded10b9e212dd3a45c34059b4765cd4bb51d43f53e7afad1633cf21afdd4b9dae3e69ffe9f83c5b2f1350414d84b73123272d36cccd0f78b5bff95089024e7421b632b9bade492080f705f7d31f018a9b3bd10da6daeb80c3302543d73bb118aa60f6acf24f5b016aaa12f99f660f87dd2be59c83394b686ef244e668c4a247ff95a0617d56cbbae0a7a4c791e72c41ffc419a0d0057ce5cd618bb91c85a2b19479aef8b9f54d551128c3d8d0b6b9973e65873fe9adcf134e4c8762b5bf0bd9e4e889b0cc825d710b899d66d71efca6897d2b3d407cdf71fbab5a72dbdd9818b4cf17ff74ec97f9b251086c3f40b7bba8b4f61f11244a5ff463322b409c1c58e06df8b9ccf7c25b8bc2bc92c796c71a9271490c395a96412c73097dae31e23e2803d427c81b8f167d2ae7a2bfbaaa87068c95a11eafe6cbbbbf28ab2b292b73e565119d499da812e131a2ecca369b0b1d2228d19c6e1357745f7d1278fc92b5fb7a42f95060a6dba62995268b5a87a8914dd11542e15f93cd61b893b639323527475977dc24a1206876e20f1ee57d6c8fc5f93edbfb1703cf69cba5c88e12e133a9aa1a615b7a195bf237f3354a6a20528b0ea8f5f02db0d2aa0c6eb9c090a0a4d4960c54e799ef3dc49decd1abf18a1b2bab65d08ab7dbef26a9c1372aef23041f9ae59c1adc4351794e2e0ba5bf43524cdb9dcc9b024aaff40fd6ba4d5f86f5957eba3c7502d9dd00507bfb16bbc78ee0521ce6e38447738bde91c594861947771b5bcdeebe88a2fe6155cc04e417f737be578503616e690bfb0061b23286bade1eb6e4dada902c8e87acf2d7d9beec472c3fa4dcb9b90d67a46db71f9fa861de1a014e52c0f1a5e943dd634c99ac594843667429c9c1f8bbb68312776a0831f8ef0778add4db9818649bf77e8e2c37c34b7656cd064c0721f9f0b7641f19f02a3274f83df7165dcbc3e4969d555db704c23bd1f3246fb07375795dee9b6e32d858d131c92e251e21724073435f99d93453549e5685921843d8e88d25e340649f3f60ae5513461eabd1c20aa532e5a4c7849429304b526315c25845b14b37444e00b6e31cf6fedf73f1958099f70413e694241c00f67c83cdcdd28f1f12f0b8ca257d6d43c8fcf24d5b869232dffb948f1a7fe59b944404761f677f8fa2679110aaa3bedeed5e3cdae0742600e2af488d9d162825d4da9191f9655143d4b56859bf4ad0991568054ae03ff548d3f14789b80907349f02a8b494d5aa09bcdda2b0d00ea74b48fe1679dbb0f73111eb562b2406ce09b45ba240e4f927165a35f1806aa8200630f975c052050ae1abe319d7ce6e82cbb4d4c53ffec2ca497ed471bafb6a24a6af382b52724929246935cff9e7473dbf5822c3a0a2783fb7a2bb44cbc5ff7896cf7600947e6dfff440174d1eb446b23feaf51079c09a45765e068b364a7c3b8c2cf8b90438041466a8b67bb54f35b9f548b40d3e7b5d7b56ad0f5d716f57a88dcbd8e9b2ee95eb5f779e3137336175e73d9c9b6b1b8a2f9f638f327d3fe1524b38a8b257667d9ac924bc0f52b36358412f0ee9356c8bba19c5ac2d05d9ff4b4f9af98427ef35d4ef8edcb3c9a7767e25408c1f31d0a27a810b51dbcfc61829620b68de893115215682ff61e9a4c39cd52e0c058d272d916fa05e90c3378a2625a0f2383b95a1599574b2d4c05170fe67f817c28e4a9263815983be184a256df4d8b992322e3ec95a94ba15d602275ed4c6516a51f0c7240bb266151e7b716c0659839430d667a683410ea27bf15056b81bd8018c51456571fac3368c4c9a5ff11158b1882f2e1fe99db7a5bc1bbdeafc5974e075fa562b2bf24a94cead0b527c918f7046d8520b2fda86e08a2464fa2440c83b82499eac1797cf72d27e170be1288661151a8e9b5ecbd44e7d82c182575660a42e7b5b0ccc79f081c7585e47990618ed0153363fbb2804cd88c87e84abfc95e56b7b75aaff53b9a3addf7592d668d08fc68ea5ee96fe5d4aa07573938e484add69f24629b79bf25689e79b4e9212644953e0b214e9ade55795111cb23dc0011b38fbe9d9c5aade80b1a199f01dc106082ff8c392be67bcddf72ea6ba5960209e44bbbadbf540ee48c3a83d6abb9830b0412bb1c135ae5647a5fb9df9e09463a86365811a12432e8b65b73e055c044dd99527c308b3ef3cd02897d2b6e78b04c7b5e4c499fb67834de805d3d44183184b1900435f39a181a5ac068be224f4875de34d3de6e3b880302a02280d3dca08179fc32646dd44e98aede20d1216c2c01fdb991b7cf45fb87384eee469549a59dbee798ac2dea2a07ce3741215244e5ecb57492a60cddf552598d034cc9b528e48c25096b4a32661060cd35b1c4b2ee54b1ee8b25a598dac2e473fa7958d26f060a96008f09ebd9dd96576f33bd8cd761be756cf78af443e3e1a4a6764caa1c4f2912016cf4cc3292c23b0b3c2d709e5efd3e2bd72cc46a6bb99ddd93ee59fb14785e9e1a1081ec2ec60baa1eff45109f805b606a620b8c9532a1b746e5fbae3cb3345418d18b6676c206a08c2ccc4dd7774996700935f76092e7a05813bb0368f1ad9152a2ac07fe5b5f1bb8596458a213afd77b054ce0091e2e23d2a4ddb38e337d9728d078baba585a92dde8ad7bd6d4442dc0b6a1349dda4552f1b8849bcd726bdc456d24aaa109e8ae37e3cd339cfffde59ea1d65feade892a01703a93768c7db699458c8639701cbea8304184b4fb957375636b64758777c21b5e4415aba5b389bc16b765ff9b5953f687fded40e645e58df53b50a2cf3d426c4735e35601a8f025feae588751201e8dfa54e6935bf1ecb15f429aedf59dfdb52322951c42c446dc9524995c995a4902f7fcb82c85c8dfe2530e44a8b4333c7cbb3acde6757db032e4f96f2614ef3f2857a244006b5b86242e591f66e3f641e5d83ea90f545007d080f0f9e7624396a1d16491576c6d16e158db32df903eb7f233e7545a237ed7cb076425a75c01c66173aa600d0c43c9907e88decc2a45a563168f21f31d7edd2bbec8a2578df744dc0bf99f7ab44b6b6c13462d44b6f4667dda86a476309f427570f28dd20e74f376f1db407023ff1285ce0aaef4a257c5855872a48d9721cad247925a8d6f77ace2ab92c93eaffedc12ea5e1c6602eeccaed87f3e064030c749456f9aed2bdd0a635efabb5afe4ac07cf7a4278dea4e91e1ed1737470d36541284b2831cc71c8dd033aaa2bf404d8825b75ac53e80ab0756f4f94c064abc224fdafffd8051597d3248bfc50ed10e68440c2ef999067072cb2a54a782ca966ca984654ae3f99cddddd244666e8a46df053d698405601a0cea568115375e221e6e7d66b27d40c1ac7c5595c13c179ba0e563143848566a7d87961bd7df4457c267254f27ab6073b46f7630e1e1b4d581c2fd5b9616bd9f5a70358a80b4beb242020c5806e12d47cce56341767350892ba764fb4084322a383a59f757f1380e859f5189cc4c402c2222b7826e82e6d5d7052a0006608c4de509204b87c9d49aa9a8193fc1f7a62f8b3017af83daec101849f052881922c02455d78fc3aca286b93e854ce346535740a6eda202dd77fcdf2394181bf6a7829f9051d1455da4ca360ede755ef0de4727356de37ce17cbbcbcaf8b8212b443742a7ae23296365d3c0acd6770121688101e5b353db83fad635a7834fd8e65c80a553f21ad45854aa7e3f83abc29406f714425605732434d4ccfa2eeb39e83ff84e8db5fb04f4991345ce53d560b9aeb6ac2ce5b349a1c8a441e749eadfc8f5e8f0fb223e9fa25753804489876dd8e934609ee4902a40a705a7503c63ed26f72f2ed4a57ecccf4916790ff46fe9f0abbf29d1f3856eaf2a6dc830ade1cf15a2a25264ee96de8b5be1c5aa39b24f4291aaecc2277e5a57625a9862f5b230bf2956ce80e606222869f481d7b1314a3034133239e8d71c27d85df2f6fcf662751c931667f732cf65139b4082b1d13fa7bb24869d1c7321a1c97370a8bf442a6bfded79b25c76295241a15d1f5fc153cd94d018e538055f4843a4d13b571f5fa3e12e9bb034f3571516961d82534f450940d64a015e2fc6af0998a81ab53989ada7896cf1682aaa056a2b15e975808f07a2b1169f910cbed8aa0be7ff789ce739b7e327e3fc1edd293ac8d4c7aee21b31334132695adfea88a1b50980d1de600b5441e5354a8e145d3ba59251586f6945f4d71df71a747cdcd532032cf5bda9225ebb7bef18a1bd6a70ebf3c6194d13859d89b439bf1658ce5de35a5fbc731e6d018d64a06eccf387497200b469c56c13e3936414d50bc546dd0f0d4f9500aa53a590afc147166439a9bd35d26b931cd17641703eece45e70e3440aea69003033ccff33ccff33ccff3d819df570409bd3b2525c105da07554b4a922d5b041502665f6003cdfeff7fc17ec2890a02040f1e0fe90eb7a7f8d57292ad82b45c6e4d51bc889638a96392b5a5f02737c54fb775269f90e27edfd2a824c928b4da0da2959e2d8926a248cc635693523ab3c95070e55f529f78c28509419194fd7163e53bf90b7ee22bc16dd4a429b1b5f304df29ca86f25c270c3a5ad2eb6f68cec6893e732a648354a46c9b58f53cc6d52474c91ed30463f11aee2e9a3e6399284cee4d8247a765fe60c258ea9bf2ec32b3752ef10966f9377ed2287f59028ff927459b58e16255893d2bc58572effbb4a1c4193759d60c4d52d4cc244ec93de50df929749024c1e7d7ecbf28126cab6fb63651f919125efcb04b52863bd17bc431e5a4cd4c56371a47dca14dd68c2d4f67298de054b367e6a8bb49533d326083116b26bdb0986c2c42cf694d2b6f6efe9d4644d2f81124053614f15d12c5b385e8cf662326b09108ae843949d8bc41449967492a44b8fec687c824e55bca92ae6bb035e0041b8678727e767ee4263e6da3109410a6a1a2c48bbb2c21f49433d9dd4ac8cd19326c0c620dd33995a6d08620ba92f4c9cc7e201693d9ac492eae6d1410e71e9fb012cc3f6471a2c3f32559cf4b16d8f003b6e7264a8d8d7d0567a08218a8c0461f123ef4c526f19ecb5919d8e0c3d21e3cbf6d453f49923d989b97d5c349655e1d2036f4d0257dab50211b794033d6f677a3b5648307b23cd3642bc6a5fd55f0031b7758ee42fa6fae6dd8414d63be212eec99b6a50e5589ffb99fa43a474d0727b453b666f09eb750b131077f63873c4b9a5672921c4c42f4c60c2d6f15bf387c1d4ed8b8794a8ea1c1818e31ae728e11b71767c002e80d36dc60a30d5c122646f3e6b021d9ed45d24c4e986b0d67eeeec890e94fba940d35944cf490e12e5c3491478060230d47669993b59c4ada4643925cb9499aaad3c619b2dd0bb1d5f9fcc46bc48619c8d20dfd17438d7e090ed847ca50ff966c455f7bdac98888480f3690044934202202840cace6f8953ac93d7c70a4878d311c4eceb1f3c466ced41964f0600636c4a075bcd0912a9d31ad2322223db01186248d7aaac9b7a413346c80814d5207ddf51e4d511e11110162e30bd707b1da2a4912cc922322225eb84f784d1542a225a61111912e24c6d5899292a6eb587ed8e0421d3e229f625276ce16caf7ca870d2d7897bcb2de7420592835763eb1d6e536577260030be7fd98ac7246fb14f4326c5cc1eddc9ce9ad3c367d464444ac40d709766d975ee3d955382bff52fce6cb19aa1ad8a00226acaae76aaf1e19a7b087abb9a5fc9ce4b4e3c08614940bff19c777733c310a7994a84ae9c32423c306140c1adc73cfe6496c3ff2843edc9d14bd2bad47d706369cd06dcce5e5eba9c41c036942ff296b7d762ad32440c828c3839031c2831e41dc064c286e2ecf2699a53be1c4c6129a1ed32d29ccf6c99a12dcd0be2979eec94193842cc51c353ddfcb62030989317322b222db38c2bfb184db641d1b46e03a5512234a4ef8b247c828a38ce4cd204301368a70c7f84ee37539c78ebb0d2224573e09bff898d0e0860ca3967b0be5a7fa5af9910b8cf1830132081106561574a292c99df2d9c3db8719272418e57a8a7f861e18e798a41cd54ffe40c82fc81721bd08e185f26ff2a99ce7924493110a8c00493ca081905d5cc28925e5096dd72415a28b04b98b3ab35cb35e2e5a37d7cfd86fc9a4181774169ff4702715fade62eba0f7f526d7d9545b98b1692e874e6932adc5c1432beeacd7b7420b379c695d7a679de5233d7e0439c3c70f13320bb32abbb56aeddc47cda040882c8ae925c5fa13377bb623222269ec06426211028b905784b862435a11c28a0984acc2ee0ab249b0f89f0c5185f14c5c4bfab2dcc13292000a4945082a424e814688295ecd954d10138db7d15228a751734a6d95793f529cc5834bd66dbc7e276414f5a5b01e8d32e9045f14bb585ba84693343f0f452171974a2ef55c5382025171b9cd49d27c267e22afcab424a7784c2dc413e6d0bc1223ad3cdfea44a27a995ef4138b17e644a9f6fe4c0e1d4b737213cd9f60172a5f58b7146922c136dd4c26e9e4e3434c08c984ee56be9fd54bd83862c23a7963767989c1d58284904b789ace53453c689a6589904a109dfa3dcb9c249467005084104a248d99749d3b7dcacc43266196b4761a57cb1022094bd4f8a1736fc9a1f6911e3e82f470108444a2d8b0bc4ff5a36b9721041269bc4d29bfda63087944a1666ee346257cea1f6e86191f70800ac6e881770e7cfce0801f421c4157aa2ba411079796bff7123b9c68064218e19669ccd5b52f2164119a24ee6c0ebe9f6de30eae10a2885776fdbfa4f4cc2a552124118a7d7dacc949db2735c23d4210913c79f7717299f82e1016841ca26ecb2d49d66c374f7520c41049d9ae3eef718f200e64032185e85eaec4caf4022184e0c37f884ae9e69f6c4444444484021f320863b54f73ce37cc07472a102208a3cbfcad5289b173de0c218170329649456d9afb5b0b2180f8f72fc8f59a14b5da1f8e12fe2eb6dd42a6a81f9e8b9aad3e635627e1903e14a531a685ae9d861cc287f3b5e3e6f857624c1db287e37a554c42e798b358881e12db37254146d334e72179e8d393ac5f98a44975081ef8a0a36db3b796ab0ab903eed9db3aa2834cdd217638cdbea264fd42ea90647df617ad332793103af023a6f94dad4e8a61c81ce8f7d02dd29229351a111149a38c32921e40c80891439969794633c571130b89439b1697763e262b407a00494636040ea58f7fd2a61a4744448090518390375c425bb887d733dbb8a1d8b4bda3d5f13cc85e868f1f3dda50c8dd74fe7d7fa903848c1036906e62548e09bf31df0308196b48b078af90ee4dbddb87a86199540bbf25edddbe232222dd49481ad0107286effe44347d39222232460ed8056e76300600c0106286ad63e47fa494a8259721137f47e7c2774a0d3d21840cdb9a984b0aff17e1a990319472f09d8ad58e6f133150619e34f224e1e4670b094352126c636731e14aa3400e3cc8074444289046f2e3c7052e30c6183d063b0bca2823c9410a4444c6e0410818f21aa9fecb8ff52eb220e40b215ee84d3ebdfc960ce942081742b6d081102d942fb5492a7f5132e573c02e9840481612a52f3bea4dbce93c1a675820040b8de6a70f15d3a9b4845cc1109784d0eb8d1742ac60a8fa94d258ba4865ad105205ddc35a54e3433ae44b08a1c2952dac745647c7306720640ac692888cf9da05da0c32382022122285648d0f711fa6902814f79dd35212337841cc2063a487fb800c203e08814272876492d22b7cc7840368843c41f7cb8c3dba9b463641429c4096a471aebd0412d204747a3e8698af0cdd9980d4beba749be0fded12308f7d6238918d29a42d085102f3ed7731e7e53b3133e000178424c18dab7f9f0f7565d24828b4956eb29c34c670861c813e394bd4dd9d98311462844a66b5e2971c327815528433b985e474524b8b0921428d61f0225fc96367c9adbd8630fabd14e2f2332549b082b19fb879538e72b125a74727a10630ba9d0be17f1bb37964f4d81e1410110182010778608c203dd8408d5f3026c45c4e72a8862fb2974ea1f15dda537d468d5e9c3bdd634da6943d2abca8f2676b976f7ec69c5df449f64ed0cc1553ba75712c2d9d3d399b8b3236bea794afc4dc4970e19ce5acb868366626b738f97ab424f161d93a5bac1e4cd294e44f397d925a785671ca520ef71dd3824f297fdae4f7dbb3b32879aeb524768c8a5522224180b80dc868326ac8a29c3a2d8917357694198bc2f9c7531f71040d203dcca8018bdfce4fb82454dce82b0c95842c131719d15c71cce961fe613352d30a2dccc7d206b3ff4bb362170dbf71fd24e79157c18ea5ad2a3b37b15e557492fcb77392bcf2394c85593448caa59a4be64105e76d62a6fcdd299a4b424acd4ed7254906354cf17f8f584a6531f6fca5e03f894977c57facb3a450dfbc930917556c3a2fa8310ad2635cede59a94f8c6d8400d51d4dab999677c1568a046284c490ecfba15f4400d50945abeaa43fc26f1e4d4f8440d4fd4e8440d4e503a9636bd5bec586b6c626b686204353251031329a871891a96a851891a94a831092d444ba6640118a18624f6f4ae26566da64d91a83fc951cd5c531e17755103129c144c37c9f7a3521f06281111111169e2d9a90008a3c623ee0de6194accaeca51106a38224d3989291e4f73b9d688b453ee2ea16255a78a1189c9ab376a6846cb7a11c9df3979acb81a3c4720d450445b5567da131583fb89c87abc5ceaf7d2e7434451e52d658f99aa3c3f849bc32eac5518e44762821a8630346612c574f3e45f28e0831a85687d73de6039864d138d8888384044640c163820050ec841102068dca02fe0ce817644d42084694cec3831f5f6db0791860c3f9724614bba5d1089f717a5f285c5ce3810ecbf5c4e1219df1b06847a593fce43fb07f2dc733a398931733ef183f9e73f675d3b553ae903e6e15d296a273109257c28f77b65ce5eeb6e49f6a079fa18eba71e0c97d3c6964f8b0d691e703be97fb3968bfe89874cb2e8992edd6fbcf10ec95172e2ae8ca787ed700aa3ba31c77392d6abc359ade4f2b687757428b7b52449960b96f23687a36b062dc14c7d4a8e1c281d4d169d6bf3421387672f7cea8ff54e471135e050f4bac5142b2656ccdf409dfe5ef59cd470839a236d354aeab49ea4461b4cf5595ede5683af63d46043521e9150a9acfa8daec1f094e864fd9d573c3524853c978d5927c7aab750230d977e2e4d1706a98106caebe54b4a16262bc91914cb94a379864fcf9a19fccecded6ca1a9e25486af4ece2147dd5c3c4f8634c4e76c7af31832edf49f433a35c4d06494b6bbc78ae57518cae1175ba72e5b8a070c499ee2c6ca1dcf2ae22f9c755d9ea3bddc752f1026a6a4f9a1eb266e1756135df1d0b53279e542d29a4445da735ae8b750466ecab1552d94a04616ced20c7a99fd93540e0b35aea0776ffd8c4911420d2b605aa9bff4a4d09255c13cdd5cf558154502420d2a9439256f73132d7938853f6fec1469c2a546470acdaa87e5eadbf3e0d68842f9a772379e673767a0e0753e9d12243fc8983cc1202e6dd5b3f1d9a1130ada49be14bdc465c526783f2399744f7e5083095bfe6b7e7797eff0975067cea39ab48347754a404a736d4837edb72d099f64be75fde726a1470216d2e4ff937e4e74b3c611ea24974763de566adf08456b798494a0da9a1641cf39dc5cb387cfd4d42082d993f867e6f1b373c34818cd6a2568495d0e09a3afeef2a974d958371889afb261ed5a32b70b8c2b68364b4f51a36f4502017e714cd1ef43b389871b7d516c7bb599cdc70fb9175675c558df60e279f2e2fbb2b6bb789aa9c75d74f95ae51c8d1c7f7847a62bc5c6cf4843056904f1437193c96dc9c1377797a30f7c9c56be7e8f0a39f860b4859e19ab9876da1c7bf83d7f925cd34acbc51c7ad8ea93d86692a8e98236222272460f1f417ef830411a3f72e4c1fc2589dd59a493a5ff100b2a90030fe518735d8e7fe61c678e3b1cf2b397c9e92b8cc7cc48aa90c30e26d93acc78b4ec249639eac05d69cc7d52a7a4961fdac11472d0a1d196eedb78fb54e273b02f7ed7cb4a98f8b70772c881c84e098f69ba973c5d8693c10125e488437b65659e97d3f2db09193f1216a41104004ec8018775cd4f638ce75be97e83495c3d4b927a3d794e0739dc70b8d470f91b1f89418e3618175cfea73bba3e9d830d468bd6edd3299a753ac71a887eb11c3ffcdaa4d4600c655b52a98935ab9221471ada541d3f68673641939820071af64ed9f2cf5476db739ca1d4246566cf7eb3cf7398a150e2e67e665a0636c53cd5fd52410e326421773733bd9a145e8e31f8d953a62bf9a4cb9ee7104362aca0e331da74f270214718caa3f3275766127e2b58c80106638808bbf7a4296cfa0bc9a9a4a757f1b024e885dc5376c459122c74b80b073f4f726bbd5c304dcc8e25dbb485eda2d47f6b460babe87a5eca1aa7269385aba412f37cfb58d0a72fe564598cefe71572dfd8565552e7ec94127258c1cc49a622f38c428e2abc25a51376f523324950c84185a7a44de9d672eee4981c53a83b8913e1c1aa3bf423e490829dae6bc28a1a85c7d324db7299030a467d84c49998f75fccf184e3c6b7e5d8b9db258605399c60fc6871c3757a23f626147f59fedc42b78fcb04f4e244f7d51b49cd12e8b0254efb4709870d1eed7b3e772a4b427e2362b27b7220e192d0b6cc9aae536d24c871842b4cc60f390da9241b81d616ad4d621bff9a1c45484a4153446b98f34e92830885878bc12f598671b4cdf321d91d6f34611c2a2a3387a54f92e10886337d2f0e60e0c93b4d8d8f6892022bc0f18b34c599e5b64c3a1ac7e10bbc354bacbdae38276f70f4e2f4a956ef20d57125bc28d8546d7cca76a18b5c58d9152b72bdc72a830317b5e999b89b7370dc22d93dca788e3fbf9b9b000e5b2c1ef65bad5dcd4d08472db6932eef475687b611072df0d09ea34952ef963642c0310b3b7389b9566a34991dc0218b47acb2db7a16ed13138b3eaba7d4b93c94ab05072c3431f9337cc6385e710e25aa7bbf8ec315e7f9cdfd27599279c3d18ac535648e27a6a0177370b0823e9988cf796bf53c3856d16cecfed418aca7c48c6800872adad87fb71aa7474d3e15c5a451a3d52d6a668f0a435b434d93a7e0193fc59617433a33835ad9a638f3c94675e6122aa64b517d8eaba74fa1bd6252f82997873e39c5e0d78e82d58e21729d4c12cd44145645fb88096928ba7839cf5286cecaa03074e56d30f5f268e627923a4acda7f31ccff744e1bbfaba52ed44ec446927ae227d3b6b0a39918b96c7768ef2dad626369796f3dead93324613aecc5b4c92878f3766c25072e5af31ed5462840942e5e4d0bb6b9a3e9748f2cd8d7a62b650a9e0b0847ef627c7f7084d15bd018e4ab0e9b97f629079cff944e0a0845d413bbab24e7c24e9e1c3063d80806312491e6d2d4bc5ec26562322223d1222e090c451eb6d7ff25373ec8c888804014724cace41d39af4320e489c2e7ea6beac1f816da8bf8bfeaaa5f650010e471cf216e7e67b29646e2401381a41e660bee2597e5f3d8c384ce8978eef9b9e7811be5b6ee40991f69ea308f2d7735e13e924f9611c89a04b8c1bb5935827443810e1874eb914e5b26a26711c82ceefef5c29da48a7380c917431e55a594ba7cce028447135524ee2db63ff3808b1866ad83239bd76a7471c00081c83484a57961d3fe11084d966ee841283ad25393802d14e5abaf83d169d96077000e22fdd64ab17c2f187b36398cf992b9f2425191111e9212222820b60a00422e8000a70f8a198138fdd2598e059c3d1872b5734263964a9a59c0f898916ab744f2ae9a4e0d843a12ca7bcde1a3de43f6d31f7d46ef4110738f2d066f9d6c8afb8f5141ee0c04329fa7fce991c2adc7b872b4df766624b0c1db4831dc42f8a8672cdfba9c32966be4c79f33d96659081831fe0a083b1d337a7d706c13187b3f689277a5481c8e19839899c78551cce372ee96ede36610207bd35697f4a162038dee0a55ff10a11df70133470b8e1a43a6d96d7e4afcb7fe068c37267dbd1bc43060e369453cdd6ecdf6b284ac9c65cce9eb99b031c6a783ed33b6359dbdb9986e773f7a675fc7cf2674444e471a0410b15d359ffb464fa6c80e30cc9f93b8cae6a5a4a9f0dcc505b7774dc283943a78c348e326ca13289a9c2e8a5c546444480f818711c64308a9675c6dce118035349b29b170f87184e5373b2dd95901a33053c00003de008c31b2f47554c25edf63138c070b44af99d49f6c990491c5fa063f273efeae0f002f62166eafedb3e8aa30bf77c56faf052ae591c5cb832677a59ee3f3b7f0b6f6fe9690c570b6488cd6da7104716ea8ecf9ff973ada5c281854258989e9ed1ec1f8e2ba02af1ae73b17a43c76105c64fcfb29c45255909e0a8c29ac757c3ba26cf09a9d0f69cd0bd11ff572e8e2970aa953a45d5ffb89e21e09082b65ab26d118e2898ea511e3be6bf4c0a0e2858b379f753e6bd7be7094c9da75ae6121c4e386bfecc61b358bcba58004713d0607fd2559a92b25c389870a985ccb1e5e358026f1be3c768d5d86f7d0087128ce87b8d127912eeb8122c53c481044adea9edbfacbb6442011c47a02b85b0babcae1e5c12e030c21a5334754b0f13971c018e22a89a32858ba99e72da8c88889c8b000e22dcdf293a49f2592a95ac4044c4c70ff781193ecc20c18d61e021dbcccc3ff355f087a7e0479014888898718630d6d4a8a466f223222240c8c8410f33bc8c337c7030bca94e727d7ef408188826417253b67db0724444a402377ea16ff46c9bcbbcab9b6484c730377c617bafaa56a5201dc32040c6a01bbd40b4ce773f07dce08599664dd812db7d539a811bbba8e3caaaf38ea78cd60d5d186b293d25ad73711ccb917bbf8df5f2062edc363d13ecfa6398f3c62d4a132e65373b19b1051b3a967fca96cebd47e0462df4ceb1c755a79294ef1f36f0e48c20490e7ef8e080dda045ed5ac172d608bb943322229286d0e8112407df801bb3a8b3491f6a4cbaba74cfa1d1c381fc48ce9045c952899f323e496d4e2c4c16d95d662d2c1add90a788480a446ebce2dc9aac69df9cac6a4444c415ce499576aae7afb9c08d56309f9dd3ee7db678ba1313888800f9e129b8c18af38dc9397b9fb627fdc72a98943fa93446549779813134704315775a4d4d92955871bb54b0b17e5377d2d7c87e046fa0a2f4354bb75a3f39993d809c22d1a283d4acc9259a670a3b263a95c6d768934ab1f9fe44798e592c0cb8410ab4a3d4e9ab360aadc59220d96be2b896033244447280861924b8218aa43e5fadfd122faca168df3a7eeeb6427f0e8a2ec646e7af389bd46232cc484c30060a6e7c82faacd935f51ae9f1801b9e385acb7555082170a3135db6bc6de95df3f8991b9c687d2cd4c90f1bf4d8c4352e3e3efa9319dd480f1ba0b1de3dfc8c8481b88808057e2423dc3e4682780e44447e24237c431387a6abe76728d9e7f6c08d4c189f362b225e4d9ce806260ef6b71afda2e57d342222d269987101119134cc48e8c625cefeb768e9e92e21e086256e5402336dcd193eab2ae41ef4074444c600c10d4ae4155e2ed555489cfc24961bf5a8d614c2bd95046a172515eeb9965a24ee709d41e43e3720d186126fb3a27af6cf474444c6c88088483b1967f8e004f8b8f188630a8b3aff18644c331c03371c818d470b6f4f722c971b815f7994caf33de9638ce8dea42ff32a7f04a11b8b286795d6fd8b4c25c728825ff1f97fb31c2ba43fbc7ff8b0c08d44244972af4f59f28a332142f78bec8ffddfdb7ff430c3cbe8a1811b876063995fb987fc88cb888888218e1ffb46212eb92fb4a39d1c3509bbe00621740b7ba23925837873dc8b26e7f9687249c10d412c97eee55f6236f94c20ec907937348e5d8f090a6e00c29f2f2949e55e103446f087d44c14f90ab657158d8888a8e0861f1ccb1a37952407031a1803031a68e7e48c14a4e12128c18d3ed0ae2e799e53924d1d72c10d3e7c75b939c36e492e5e066eec61dbb312dd7f335db52322223c70336ee8c19cee2db7cee7461e4c13d6317b727633ef811b786864dfb5e27c0aafd911119105dcb8c3396c0cefa61e3327d934829c9103b74353721d63349ff3bdeb40577e56ae7cd241ab1caa4c8acd41dd4ea79926ecdf69e8861c722bb9f1de2c72e98b4325a6860d7926ccb9950429c3bb0137e070e30da564e749abf10d377c52d2eeeabcf95f62d0d0816b600337dae0776987ece828d96783daa1d22235e6c61a4eb9b2bb9a50dd50c38d344ce0061a6e9c6193e7d644cb29dbf7bf61062b499efc2b1f9541dbca6af184a8fa3811c20d32dc18c3b9fb4dda37b92dc9470cca9b9c73c44647fa0324b81186caa662092b13972d9be1e30637c070ec8d8f3b26674885cc8d2f1451f6ff9943bfc7df0b4fb5a711ddbad44ab9d105f272ecf5b7cf05eea42ceebd4929bb06c28d2da03b3da13b92b1bbd4029ac4848eaef39db7a471230b495317a32feeb22c8f05d5c4d7943db4956dee0a64d26072fab415ee4a2579a26c974945c68d2a2827c9c9d3e79cde3a4a854327d3a5cb583d710a8ec9da593fa53559298514dc8882313753dee6f3dbebfe06149cd6ef35314fbf49f92778a2cd6613a4b5e5351bdc70421bbe2d5c93e6dee534a1923afce4f8ece7280a3798e0654cbce5c877557f099406ff31f9183b7a2b3794704a3595c3c74e57a2e2841b496037c71ee99833ef9c48f04efd52ccb91b47b8373e4379c865704d176e18a17c2d958996db386f14a1dbfc124e4e69d9ac45e10611f8fca61bf382d4758c8d611463e36ff8c68926e64b604318b698b0c1f2c9631eb30bb0118c4cf44da2a7c4e6fbef061bc03047d728b117e6669367b0f10b254aed848bcf0c367cb1947d96a0e341fb62bd3098fc896dbfd9939c106cf0c2c62ebacc16c74e568b6a1aed030369b40f0c7c09d20842c60f1f37484600e4035fb0a18bc4a4986e1e55af76511bb928091e63b2f74646066ce0a2e4399cdb5594927eb2710bb425eaf472a6d795b630687e12a6ac4247ac5a2445d5379b9f12d70c1a67d0c24cd2b47f9e9db8e3cfe2123d4d983ed59c722f8b3da5b7d54cf499d36351bc2c6a9f938592731c1689264a6d45fd15a5ff080fb617615157601d6156c29fe798ba159a3457da93ad517956283a3d9226f468b8ab3885ffc669c5e89bc3aae83ee9a73d53b1540ae7d2d6a282527bb76806c9e6d39b400c2a988268cadf4d7258f2814c4193342731a7735238eaeeac56a85220461452936a2f06ab984b6606c480022126640917dede997a823b55a24b06dfdd11c57082727963963c254d3879e82467ae9c436f2e0613eedc1aef2eae8f592704622cc198f1977365992f4948036228a1b95c9264b82b3155b8013192b069e9a7b2eb943f392006121e3951db132d42ee801847e8241f932c2b7fd6d2474444ce8c11fe4b29dd83234092910f885104c2e414b3358979da1e3188507f68b6ec713da6941bec18069ec2bfe9954617bb760863d5f48e413f3f460c76042339d2846d998a59f2c00e6024d5a6a67aff707d5911111f64fc62954da13a35469ff97c41a69093c352896ba301e9c59b42744cf4a25e89f2420b92529ea2df85f9c49fcc51297f49c22bd8a10bd5be52dfacbb06b972518c1f43e79bce3377a560072e4ae2e7764f31a7fe2f5fb0e316b5c9591f22230a76d8a20ad14e62945cf761ac45425748c9e9774edc043b6851684bb158d65a9659f0e927c9e6fb9c4b7a9060872c8893b3c6b497e2d7a223222235d8118b04a98bc1ffc711119113ec8085bedd939f43752a497a4444a4870876bc82dbe8947b7b5f324e3b5cb156a5358beaec68052747ffbeaa32614a9a15bc274d692b136149cc2adc143ce7a48990f2fa023b54b19418c5eae75374149841da8e54ac6a397eb92a6dc20415f9479fb4b14f769ca2d8579aa2597efafc233b4c91c9276fbc0e36268ac7cff0c14030b0a31445f52593bdab2c1ff4c18216ec2085b5ee6963a3edc939368a76ee3dc6cf753c5a51a4d939db57baae2e83831da1386eb45bd44f69ed2f65ec00c515fd042929da66ecf884531eae5d3bc91b5bf384b92bc5faedea44e1dad5517beca7264eb8276da96a98cbdfd226ced9263f54cc5b59464d28e9d942b9949948b45cb17d82c5676730518aa11b276a697e7f893cc68d4887966edb96c8a7b62cc78b924f629530672c299524c5fdd0d70e4a309e71163f6c1262ea1d9328f58a9f667dc7f8c90448b3df608724ee4c62a936af417c9491821cec88045be9e1fa2df85709422239fd8995e35faad1ea116efa57f8609289976e479cc44dd95d3732891636c29cf94ab629d94c73ca08358ba5e69a0a9f6e2da294a3c465ebe31d8ad86476c66267546e34115a86aacfa4911ff34484fe9ff251bfa4ebe41ec2b4b1aff6d162564d3184de976309262741d35f85e82ec604ed6413a20da71317173753390832675ee7a32aef5304d159a79f9cf953c73809c49d5a3e5ee5ce6459020873ead7790cfe81abd41b2d4e97e417f3c321531c93cb739db104801176f4a1cedfe79de353f0243c2222b203325a0321d8c187e23a347994f8c5380b61c71eb8dc6d7337a3f9bdeed043d96a5e5bab2978bce48193a4ecb29304ed9b320320d881876f43e34b43848729f0811d77b073f5bc7b9ca8d9230810347ef400428688089032c8088246eeb083575749721313b3a30e599ed0a92eb3fac23be890fc2549b1257bfa1cdd1caa289725bce4a6f34a1a415060811d72304c7928094dd36a7d471cfac8983b7c9c5360831d70a8c44d733125b1fac3fbae013f230d15243bde909b7aee0a99ea5ebb1bae53e9f4f9c1edcbb3a30d9c4b75ace01fca2c638231829051c61929a0c10e36987f3774ff0793ea6e0dcb493a65326fb1f36584033bd490b8dfda7d096bb9ef1d697866f32c78417a9046d2021f3c50810476a001134da235ed9ea124e7d63be14cb69eca0e33944bb69370a26ebc4f193bcab0cf9f70f163395c98c990943e9a82c6a8bb4ad9310693a6ce147e532ecb80058821b92bbd24c9e58c69c3a069b69d4c093b1a27306c57b95a99a4cee48fa92f982b5612436f2c417edde1053d6783c5fe7e9a3449c18e2e94d17e42bc9bac69cf327cf8d815ece042dbd3b9e9f1a949aeb670a8e4f1637ca473857668c1941a2c58b69c6b5edd91852429fec44af7ce86754444a487193e7a04711bfcf0f122222fd88185d76635254a70c715aad3b98b724952596b87154ce28484ce88f49c35821d552023e5754a3629e76431c37360031f630715b04b8289276a9f58139b1d53b0d5c28479d17ef8e84101158cf1c333b0430a76b2def124f92341121388888c0449ce10114923c88e286826a74d51a2bd67d43d82fc20e347901f417640e14b67f2d459563bb17f0236b6b9bc72a86a779d60ca8ea7280b7de76a134c6269d2a7de4813333b9860d4ce398bc79790b9099a523831f52fdfa1844bd6fbd974525ab9b823096ece326a6a61a2fcdf8104b35334bb5ce9239416eee2c5ac3b8c704927d2d93e3db3293b8ae0c9aa58bbe7e99c991d44e0d3df65f4d87d1d2f3a8661a53799198f55d5be30d679edff97cfa4a709465ec2887b32314dc2a70318a7dec7244489c9793fbf58a3e6eb94a7a13d73be384b344c6dc6f4c2b8be3bb3f73d5162bc28ad7430d7cc39475776f1fe6fa67fde3d6ca043172639e5c5b4186e628af7c03df0c379e04304a523170957a29ba96c8a593f2eba984ede2dd9a38a949020881964f830c10b74dc22b768b136560e95abd1610b74c6364c4a928e5a24eaa7d16467426fedb4305f38d1aa68ce22d9c5d2e2671232643c093a64d15b4b4989be39c91da3041db1f8734e2bbe17ff4349ea80c52587cea1f63a62c2d8021dafd893d4d9e5dd84053a5c61598a4e7889584e738c76337c9491011191d6818e5664e7ee614dee74b0822faf1867ac5b0517edd69d664f10ab55e1ccbd8c7e4c97dc642a38b3b4dfd984fe2c295478c2a68e5315ab4ed3294e297b123654980a1337c5f9aaa5a33aee3a594a8106bf28d5f2e82045d7d1156e345a8e68758c823651e53fcb736ed245614af6a6a4dfafaf6528bc1c16c37375ca12962fe80045752544068930c1f6b3828e4fe8d57652bd0996fee7078ea0c313edb8ab6659b1093a3a71e8306fcdb1a7ca541d9c28d37f382bb19a0f3751479f8ba72b9bc79268c237213ecb7d9889c25da3a768cca4291d9838a2d2c68bb28cfad925f00ff64912f3abc3126c86dbfacbcf76925702d3cd2144ff3aeea39450b4427a524ff7dcce24daf3bba0db1f163949a22c265db9bc2a93f047c2368d96d1ad2f2ac6464444120d15e880c471e9355fcc8c92df3fe264177276498ef9d47684553a9deb4f8a043a1a8105bd60b94c8a283933810e4678b6b72925fd4d696d1d8b60935872e5c98707597528a2fc49db52ca1546fd2411e55776d6784ef1b9bb810e44e8aab6f5d1395ee936d2a3471034ce30e3033f7c00f9814606807890343000041d876035bad4ee49619f53f7011940d0f8800e439445e236ee422f874e54884a2c0b6352d684f0d36f4cd00ff14b2beb18c45a312726fb389e2e17046ad179a29ffaa7e804a2b0f13cac233f2a3a80d884e9682949795913fdc1b1101395c37a820e3f50139e3506cb4d9a1a1d7d7883bf86e53c81a0830f7f5ccfd456ff2eb5ebd8c3626539c9a9eec434d38321b764d14a7eb731a4230f9698a162495b999227c18391d39d476fc6f37750f7cdb269882701a4c30ea47c860af1de1bb175d4a1cf2bafdc8cc9df8d0f1d74c03409fe6e3926ef9cd331074cb3586e4979b30c02c4832422d02187c2ef04b77c313ae250b654d163653c4fe1d60187dcd34b0531fb0dc98974e4dfafc30d546e7e4b3dd136944b74d1f7ecf46c396c7835ee7aa5d4d7b057f470129b4fa898a9c1ab365fcf9a4c2eee693086c547cd98dc1a4b6ea0030df49f986ecdae34a5fc1912cb674bd5dbfb2e378319d2fcd7372a8339e547ef4a4f6fdf92c18d1735dc77f55878633886cfcffde311c31e3c46ff46eaefa784c1d9bd0c9ead3567d7c05094764dbfac693fc45f503556a95e0e7961731fd9cd77ed9bcc2e70628917b25e672a2f174e51355416d5fa924cb690ac57dda7e8b4f054cc262f13ff1db42c1865a97da6abd4333ab0a0e798b2ee437b73c53bd07185b28a9cac494a269b9d5670a3735af5c77454813a299a7472ec091b722a1c2cbb47d405fb6e7f0a7cb88fd7ef8ecd572285744ac8cddb4c92073d0aeb66a5d9937d12e88042394f9e379b8bb22beb7802e5fd751b7312b35cd4e1842c76b4bfee7b2ce96fc297f2c994fc25ece8a8830979942df92fcfa03ddd40c712c8f1244b74e7752861d7d7b0304bd1aa4e7424413529e1729e930f9b1d820e247c16ee6249f34a6b8e8e23a039e57c4c330f298d0e2350d1c49336ee454711dceca1e56e96e43b131d44306c5efbaf96c5df358ca22e4aae0d353b8b0b038df9b7a4d82f912ac9418e60fca395162ff3c0d8c2a7cbeec77ed12529e755f0cd17650b16a36bae62de7b91b86faf66d3a4397b7841fe9414a34d70a4c7193d7a3020c72ed0f8a8a16312f1b09932fe72e8a23b4b492b06cf33591b393972d1586e1354fe63650f4744446ce043040700921c2073e082de4f5249d5741bd8c08708cef0410211111bf8284302396ee1e776984b1dcbd24573d882f29c6d75edacad5120396a81550aafe1db3d62de1cb4c0463ce566c7149390e5608ccd318b3f655916c6c8d03d6262b148d4e4bae7b9d5f3c9c9018b4d922db69a58399724af38e693e24c37f304b5b8824dbd3661b3c9c39eb48250fd18ab1262c5f796cac3587efe93ed418e555c59f3335af4c9d1d3c8a18ae32b7cf6e3829f89e64805e3b9baa33295f67415e4400519362649a2a4b8d9570f729ce25c9d6e6b533822228201535829946c314b5aa5284c878ac7b0964f280024072992247d75fffcc4b31b8527de6ef93d5fb25ba2f0fdd2a3753299185d288c5223995b2d57a70814cfc6e8191f4e6c3fa14f1c1dfc3ddbc560f1724f9862887dd92739fa4f9d602cc95a576a0e4e7819ad84cda9dc52d71c9b48f0bb8b96951ef4a4736822e9c684ee36933e939709538c716d23ccee5208136e922429a1c265bbd4e5b8849d37a6e76a7da57a23222219c86109357649628d86f020191772542231aa53ee128ffdd721420e4aa49faa6b7669ebde24083926614e269f681dfaaec30824292303392461d20b7eb949aa50aa03492331418e4818a531d3fa3266caa91c9050e4845ded486790e311c9e935eb976b5c474768242087233c7945e3c46062703d0a391ae14d49e273b27c962c23de984bbc8b551a4ae54598f249954a2e8dcd495184257476d46f0c0df32622d16ece9327c9d01444046751bda17e94408e4378577662509bf29bd110578e3d93a3618e42f0167e5359fb84f8af4fb3ab6bcaee7910e5143266c959c5f27604816dea4cf23d26e58fc911883b8949b25d4d27db09fb1866e400049b367fe57c6594918cf1c3004948ce67629e2499b82f1e128c172e2a85b48c84057530c011ac746d3691e9fcc28911124deea63374bca7b508e598a149efd55e4dce0044b0e494b34982cca94589c7300c6e7d5752b6a6931e1428050f6158ddebbe71a354873e18b5c9e6f961ce1fce031f65f81969a8c00a3c80d10965c2fc7a8a9dcffd42b5132c4b7c5aa2c417f89944a75abca063f5e24e15c3a69b31bfa0e1c18b4c0ae9a541db63f2985db496c33e9ce749db0e70c0071eba40bc2bbe89279a0b3e3479b4f11739d9010e7a7ce265f4a0000558100237f0c0c51e5bf9f2b57e63bfb760aa2ec5ac4ca5296e83f6e6618bc23c9c14c6c39a5ce95adcfb316dcc9f112ed28888488f1af0a085791bbe9652acb7f6b3f8ec92744c668e8888c480872c2c297864ed89b12809953c7cda764c65241e04880dcc2003063c6061da05cde37bbfa2d0e17259ce2b155676c52a121df16bd28a572ca4d27c7bd2342b8e177d92d03e7ab25a3c5661d558af77accd5a29aa28ca82492789e6c13b4ac18f2040121ea9305bd2fa94a316ea5378a082cc2785889929b724798a742e83e895679362e7043c4cd1f99f14d7744e92c49412f028c5c13b87bc546b0a7890c2b09c5c4b925ceb67192ce0318a74d6efc48b16e463c54314e8c6b8d1dc4fde107e284a29e9b7af696aca37280c6e65728e316adcea7ca2f91825d77f33a85c3c3c71f449aa7f873c3ae1b5f84eb895eecb56041e9c68bbe64b8a9591a0a1032f234143071bc0018f4ddc953cba790ce21a0f4d6cb697d9534a77fbf68888080acae09109c3d87ec7545c860ef6e081092f4ff3ef7e8ea5bb59018f4be049ce2ed9b721621191e4c7064444921f8e3c2c618a48cfb1f3b77ee9088f4a9c52f2fd9996b3d9661e94784bfe8edb966f3ec6e7318937f3523ef788fbb61de02109f3aad42a3e2ce6d79491e080472454fd547234314d6b89360f481c2a661ebe922421b50d783ce2e4bd494d7fdaf7f32309303c1c614656dc901293feeb22221ae0d10872fd6eabd7deb26c466452f29cc9fe93c58b1671cede70ba6e9e53a5085d3f45973c9fe2560a8f44ace1b76d3ea34949d68c50e0fd876bc043c003119694b26fb3436a1cf3108cda788aea3c0f435c9e755fbbd7fdbdf12844ff490e91edccb0241202bf247b39e7247f09161e83a8dd4acc79622ff4f43c04f16670d168521acbea7804e2fe9610f70b2556ecdc0c3236073e584484072074d5a041ca3e4687cac81fb89462c5ce704f61353cfc704c32d2d773d61f551e7d386a53563473d74f2f0f3e1cec83e668bf9bc71e0e7149455cff6292e4f5a0448e985c92f4b9269e07afca4ef8d49d3f7742021e782849a2749f749736647d8753ca4e2f699ad33bda81f4b4f694e1c2a30ee78e95fd7c729e685278d081b7fbf46bf5caab180478cc41577f8d79b525efcba10e67b2b9751cfcd0b313d22439ae091cb029c9c3447d4d55df9054d94bca54dd607cf16cbaa627a5b6c1d0d997254afde2c986d2e5c9a5b9ccc1b53564996afe5316d5f2a8818f9262d0a824da6ed2b05ddeea58f2b5be060d649b701f3ea7249d9c014dd24b9b341b3b496f862da4442f3a5c4ea12fc3971a9de6c49001cb74223195f9c71e439edba492832d06faa4bf15f3e849c3906435975ad55ae382c1e05d929463af98e07ee136e1c3f49e78819293f3af4e0cd5245da8adfc4349a25c602f4df95aa9664fb76065df94a1452dd815b38d59f4cffab2d05ed818dabb93760e0be62b9363c89c5f614d8bcbaf5421bdb9154c318728f1afccae79150c9725d6c9c4509939155ad3ace9a88f3e954fc1ece4314e27974277bff66a278cf5517034465cc7f2bdbda150dc94502577d1357d42257c7b9a984453ef84773b2e7bcae136be26e4a9c2a2b38afbc530e1dc714343a96d892fe110f17d1a53c241b5e593863a0966ceaa26af3412eec93131d453defc1f41df1e0d2a5e266f845f63f4a6db7914e17ced9bf5a6d5e2e641845bb3c74cf1ee4eae876132cdefd8679772164665d1297abe2c266583a107c912e42401c6d253b133a7c9e9fa0b634b8c75ee1de3555f90a31627f5f3fa077b71c99e1dee355ed4513585cf10311ddb0527556dccf36fc93eba404ed0ca984bde1c4f2e36f10f2755258929830b3e75852679e25bac1f397d524c985fd816b665779cfb88320bd7c26b69352997450ba43b9f099ec349a6cf2249f7d89c2257f496c51ed3668a65ca3ee958944b9a79ff1a169a5758bdb994f5db576c5d826812db4336ea0a77ad3b9c099ee2275bc109369d84cf3e7382acb83d65a83e49b8f66f15a7dcf1b2ea946ce5a8e2cce3aff1747ee3a9e8b3b2797a8e37372accd615fc63730a3f097dff1b53fc96ad95b1346ac894c2935e4f4e5249cc9d14c7a5cc6cf796a96414644e9bb4dedf1c912896b034ea256543c1b9540ee182c22a0fef9997a4b0fe13961021259b30efb1f64497c49eb314dc737c3bb17d25b1a24a38818999c4f25c37c14d6870d998ee3daa092a53f87c5666c213ee52478d63ab494c50f115cd37599e944c2e81995ad8d82cb713134b5c1a53e70953492c4c2a816fa6a8923a7fa52da184d17aae3d3cc924acf866c2e7c6d968259248b828a7bd1dbc629544a214c5b4356f98852881c4e9b3c3d6f343e32579c479ad43760e558249491c714992c8ec6876664ad288feab4c537891dc9f11c5dd7d5459592ef945b82ef9c1a39820db2bc2e9b0599df5c2e47c22b23cffcf318f082eaa93e5d12477d00f910693d64ef4114b6143f45d95f37c2f4f302944a9844eb9bd2666af84d8375a32e9533ab9741064d068db252b51828228eea6eb92f1fb140c44995f92e42702a28c7d526eeba656ef0fc7d58d3639e927c9a37e3086e6944e4ab48b39da8752c8145af163a129e5831fce375b2add43d1ae715275bc4549f550f0d4896e4b5dfae7218dc88b131e65dde3a16abb5fafca517abfc3e92a5253743b64f919b3c22495933a30321e1bf33c9ec4743865bff98dc7dc53cea1ccfa0d4bea52ad1c8c29ae899d581cf2b89649f02ce14057ba13bb6ec5ef936f48d2cdb9169d74839a73b1e2d59caf26dbd05e66f6932b9de529d9806a051337c65d8bf935606fdaf1e29d901557439b7df66e3f2cd54e439227fb77c74fa6180d49e9b35c48545e74cf605c0e65bbef51c935c39aea92ac9a512d4aca90d89f4dcaea7176563270f2d58b56fb5a9b632827df3f31c978124a316042ae499bc478756218e8b5fcb37a8260286627d1fb84bff31cfc82993cc9619b553c58d00b7b4a29ef27f92eb8b21f374d997c1de78227e47b7e5e0c7bf12dbce6d983c9e95e096be1338ba9e07116ccf338f9a931f99260e170797165df83977a854ede5bd792c4c84bada04b6aba5adead18ad02726fb2e5db14fd2515ee7acb65625bbcf2a6406aced5a999140ef73497648fb9b8a250d8a731ddda24a5eaa0f04875104dbd69b3b92798f42fe59274d173e69c60b23f5bfde89a80a70bb2da6f41f5724c70f7b563ab7c72b3dc12e83bc132c7e83af62b2151353e2dc5e46d3f09867af95c7298389723a15815de363f82c133272977ac19d1087e45d5467ebda67011123627d3af9c3dc40520422edd31f9591b466995275f2d877cd68491e49673ca923eada8168cac3f362f7e88aece8091a51426a5e4999ec4ec17c52ce127e3ed6bcccc1747a7bb4fcf7a51f0963e170f1a4e0e2f7e493bd1dbbf525ab60bbafda362c911e619d3c591d9b2c2d88a5ac672518e51375d5b52521f175cf64af2e632b3a0dfc24c3153865f8fbbb52da864a2d5ab5d850cd782d050e298afee569816c6a0ea9e2932ccb2b3383bcd45b6e25497c8a24d616376990b25afb1385690f832fd0eb5c222e9fd779592d4f77c0575629597c7c5acd315a757c54ea12f9a5cb602cf4d214faa7c493f563cf6fb96af9d5594f5f156bd957b324715969860a772f56797930a4fb8b859d3725051b67cf18a29795dca3945736e173e9a8931e4a648f079ff68dd936d97224d3d3e9642a39b2c29d4d01323a2427d4f46c1469974264645415a387965baa7a2190a73f0ef3cff28a62528923cf24db4f38937a5dbf0bbcead95270c935da6a6f324a93a91e07b69d57739bc8613fdba7f74926a137a6be53eb9fb3ba794269293ece1f3fb99b8644bccd4f13f1913d8e4e68e758973bde524e6ff984c5b2259338485f954023b39b7b8b1987ba68441fde6d2633389844e49decffe245fd64842935f4a0ca196a49cc44482fb2417264a875b8981c4aba9dc73a7645b92e61175640cf19d6282891947a826a57c1f45ca3c338d68cf2ee550c9ae2b6618b126693cc87dcc228c490a255ffa2b9bcb2882cafb17aa59b3f2c624820a6ad597a454f13c22ae93cbc28c09e6a93f442b955d2f34f64636c439db9669f2ca3172218c529aefb62f782c2184521fed34c93f26940cc2cb5b226a42ab9a2a08672f63cae431d2c540d86f9a84125c635e1110858e1bd314d5b73b7f48c8d47c9a2a3fb469fd4e73ba856dfa704a72a5d2d928f788f870e757d77429ad2ea23d247e5cab545c0fc55ea6d8a99097fd3cb8991d76a28f87a478b131f97f52fa3b9c314f8b77c94ce47638e6f7c855374d61ae43219e2646534ae1b374387de6c6acab59373b87e28b65097afbb52772787e35dac6e370b8bafc999c9b32091c3ec125aba26db25cdf9028a15e7d49923e9a6e58835898c9b8283db6e19452d6ab1c73d42a366899227f728ee953660d4fe7fc9375f52f4e450c351ccade73ca39bed9a58891062c3f6a2ec1c3bd253968a03a8c6712b39c01b1f3dc147eb2538f6298e19c26899a92bf568c9b11111131ca9067c99673c57fb1b0c9a077bfd5aa948c21073e7c0c400c31b41964f0c00c346c88118643c6ca4ba12c4d3b2ba30c3242700331c060a8310b16ebee9953231110e30b6278014f0d1d4d88c8ed9bbb70bedc2f612bc74e192ee38c1c7c200d0c0001929840052222692c10c4e00261c1b635bc05a24f52ab4a92f1cf820f708003cec9f3400c2d7c56d933d56d23222239c8021f2265a2cd57979efc0f1f41122cd89bb15212770ba2962bd47772fc93db6ccefc206858215963fa9dc538b1a902de1d0d8dc3a894cee2a1c1a1482c1007c481300014b23c2b004313082040541e0c0623b168246aeb1e140000562c1c463e202024181220121009c3c16020100c85016130181408878381e06a9e86b1a0f321382943932685b316d3b89deeea1e35b62da4872d44e9014be98d0520430115105ce06db4bed536c8ef4910ab4e10f1e807afad1fc2607b13e892d5f4104481b8cc3551e1241a12bda36798d7fd1fc98b9f0f2a575d9ddbaa20c420554b99f463949f5792a651368dbc69eabbe8b8c571dfb1c096859c1aec77036ee11c2ec459637e885c46309546ccd52ce75b2cde47d7d988b93bb1b0a224b305ecc8b1faa84cd0e98b79e108d649bec69b7a51dd360b737bcc66811ae0f7786bc828c1d6b20f56f290018c23b58b71976022a6f09155d347e34c17ceec6bb04da2986986cd07e154aa9b6491bca55797a74f50560c8e1f4777f7d617b082f92d223b3a86ce6793c9959516497acc9a095c481e9d8e6351b6ea75bf0bbdf4c511a70900e9b93fe82a165726269eb3dd43ad46ff6cae6913edc19d5598b95b83c68725e6d2264181cb78d2e57af7f017e37297be88babd721615899b3ce61881211bd13f7df66d7f9b7243d59b296174d39fd26509917f1501ae8c1b4039179cd18194a05bda0084a0e023954fb6601b16c0fdb905ba617ec722307d9d2f13d253501de36613da5a05e5af05579f1b2f49ff96f0ab46c3e9edda2b381b7a79f265248fb807dff8148db979409dc2a20538c69534978162f027a60c3d6d472c4352925ec47e576b94ac36bce049efcb0a16346bf070738a71d0ab9a87671a571550b3b4a7fd675a687c71855258513a29030cd57604df50085341e823d93d5d34bf06b8543ab6cccca759dd3ae0b78885a22c6bf25efaf0a9e49ca416f2dc6a9773d9b03396714495d0f46d8991a6fc99be59db4afa23e290d272a56571bc146da35eca8b612fcb2e24cebb009b95355bbb8a96adb2791e881150586f0da9c94e4b4c85dc4bc7adb08d114cc5f58f82eb33f413d6cb32daba5fca832f220df42037a56c182ef4abeae3b846ca920aa909c014b78aabb2dbc61c9688696c40c8e523f9d3a85ea0bfe8f4b9cefda2843fb27efaee86f98bc6a3eaba266256ad582716d8f7bfdf9c5ea8a94f51f1d690de0d68f14d8c4948ed510a15859d2d01a75fc559e1460d9cd135ad882b3c765159cca94096101fcd90a732e90b81bd119750fa50cedaccd46252e2b808e5ce76a65fdf3fb2573da98fd03bcec835eacffdaa68ef40a1b325c3b42e6f369830fc39b98d61438f4b627db962ace7d92086f46bc1797b03aae835cea9ba583294c643d7a22613fe32e9f2bc76e1872534c4aafe6178b11a20b680c6b5b3f2762cceaca53745b53368b9a35ac0ce7661cd31bed32c0146d924f897e26ab3ec257d4ea3364ecf05b2dbf4cd99d54473eb772d7df3ee3eddf46fa7651afc05b3cace17d57da7abafcb5e22ce588800d47941fa79ac12b13918179d040685ea45b224e4601846591a6c17dbbd0ad001b481cd857aef365641847a5df5321dcf2a8f722a36031fb8af63fd7e68dfa77edd587d3ad6adb10dbfd035f0d61d9201298689eef14ace8c635455913a5c16b767e754f3965447cc5325d4c1911420f81a62e44949928e1072047af35fef3b16870c81a2c0a859a47babf3e508f5d67033ed4ef970c19f276693f47cb5bda9c1e7d5765ce1dfa9f5abd27fd3fa75b5f3690c9ab48a75336a3deccb718a827394c4164faead868fb54b6199a5341cc0eb567b921c643bc71eaf6fbf5aec56ce3ebb59ecf2d2ef3b276ec267950c8f86e74d72aec633d34feb3db4a292590b116d11bbd5f2b4b37a567c5f7c5443b119fbd07d9deaf5637b3ef3df39e41a5f1eeeac0566c9ce75db98092c41fdccbaef350c715f63e76ba8be27c5cc3395364086ae92a55bb2fb9cd23d8fd570958772f5f1fb4c36c898e2772bbdb42fb5e616dfc0f3b67aa1470b48652e225ac41195ae5f26e90e4052268c569b058bc60175694bf3e0577874ae6a4e23568b6d717530ccf5c518d7f3277de289225dbce9886a39a5066cc51c99832cf1ea78aaa03a2cd5d28c073d39f9fe01ef0737e01901f1891ce3a7ecc15e0bbde6fbbf90ed34a541cb15222d6b954844421564a8c7d9e159b1b0fe035cb5bbc1b427fb8d768afa69f441022c976b55a1b37c766375226fef68be7cbd99652cbb534a0457123dcf9cc387b2c576d051e68e4cf32a43f6755832c8158272b1e558f053b0120840a3d8042fc644a71454202f1a3858ea7013ce79dd9a9b2e7f2f47e6fd2f1f810f328a805d44aa01b32718c610b7aea189bc4216fb308827a762cfb482e3e3567cc3116b9d8a09f7c29e06c82b86f71b75ae95508781a95b124c1f9c2aabd8a2ab96f64bc5044245c62cad0dfe9b07b9cc2da1914eb565d8e49639be1ec34a492577b4cf1756c60fa539da8ba06e25f5e247c7a02528e1e72e6c0426aa7aed46429ff6073571d4c9fb3846b50e711f02bcb2fc1d7290c6a8ebe56c99b338c06c0907ecc62af3b24abb4817e5bb7662e331e80c57fe53863835f579de8a09172b4e28c058927d3655f7fdd7ffe62983496c2af84250ba9ddc33200a914129b50bf4b1661796750d123086b10593284c6d7158b130d0c2aa6500448b263319364d8429051a64dac2218c281397563f807c5be4609c352029a72e18d42236cd4a58b78ffbe6e995c95bb56c41e600a3325ea8f97f6a4130f1ab56ef3d0e9f0d721d3d52b48f54168bb63c22c7fc4d4d64fe2e118f7ee66c1a164f6cc5dce2787bb83b83a54a3056841736dd420117c17418ebadc8462a71f21f6b0671f2ebca612f5f53e831ed58fddd9ab8167d2f46e9dc238c784b01d9ea59ec0b1db9732a2ac882a0375eb73136d3d144bd7cc8a21bac4491381fcb55e487d47b677fe1632cad7d315826b9f61e9f7fc7c0559c7156374d1eb92ddfad936baa42782325f5dbc31502d17453c54e6f53e64bce18b85065b8e0b99f9710d64e1d5216c8629da440a4b35eeed7c13ffc6b2cdd04056f6874bdb24e756847c9264ec68f86f27ca62e937a9d2c8832e0d4a40bfca4a1356f8d5725f7ebdcbba65704560ab35f179997e2c3221707509c387389802a31ae650e845f937339e909ae2f156bb2177109a51ae0fdecb61a3e8edc2b7e3c51f1c7881293c0c852be80631470acc57ad2256dd5b217ad8691ff58945c0c93316dc1f184a114372d9f84df4d2d38d99a2175139f6c73f9d20b01fea09c4bfb9dce858c913449279b126c48749988a4681033a0cd06dbe202a03c3d3e29bdbad81ab963d6ef2a48e9ebd53ddf0b8e673d6925624c56f061843f2c67f5c803f4fc83f99f032bd44d4f4baa1904e671af07e7bc689e3f5de2b675da8132e2e89399aca60782dcf6aaedfcfcecd87c9b09dcb135ec426b82e642d56a0d30aa7431cf4ef6eaf680ebf1ee68cfa54b66396596b86759009480083bb66507864e93ab45205e5a1616711d16004db07ea757c3e200e19b4aca5104301d4146ee8274603f061fdb2d6cb39942533a50a4faf3e32671914228f69bd301881fe9c676293af18741e33611b928d82fdfea88b043de9b1ed6a6d2cc7162178b13a8fefdf1c4b7cd077547878993299a873e1fba144ea00f6c34df5b28d24b92141df6e0ebb7e044ed92a3a1b44f267a26e780e9ccb3350ffa4371261572335a185e0a4b9c37a15e88ec422e0c3839e44a80f5a47e8c2fbe37f95aa1f06d217a6db2fa5008162e953d49b977b21be60bbf8a7924e4cee9a270532f26544d4ec8c672f5f952ba416e72207701edf7bdc39fa0610ec3a1558f54295e7db6c5af7beb6b58714d94d78f0e49df704e6d8d3499004b8a5fd045da371f91b158da06ecac64dcbe48327019fcd90ad3c73c3b056b8a53a85e0f345d7867b5e9e84e6b932806650e2a5247396f03ea0c8ae89bc4952f40cdfff5a8b1075191c72b13995ec82da97df58fea95e43c46bce9a64a363dd3758455ea51ed2cf76f34c6a69da0fadb8f8a966322b462eca1aa9333016592d77ec9073c85293c36b0ddd3a1852574e8fcad0c2e468a59c2ea622a359fc91071c63eb57073a91e2cc967f046ed7799cb26803ed3a58a341bc7cd7dcb1baa24b8cce8dd91a69e4978a16e89e06f7213c46053e588a62c03e3cab02778e8be2950fcd7c87e881580208d55277884d16c53c89f154a1d1e3f18bad42d3490d33063dca7e639eaba30d4a2a117c7ad038b9884ae77f6e62fef21c1bee81f2380821ca0d3ef188fd5a42459e526f2a52e61c59af186272f1b07d2c4c529c7412c2ceb6b6c25b3f6d66537db56b2c784b0c4ebd5f00e009eb3b54e027e5254095259bf0892a0113c36541aa89c33fdebfdc69865545307478cf349d4c5b31eb0252b143f8de0d622812d71b6820bc842fea0322b630794639c9b6dec7ae70e0f9fe7b901e59de24311d74939d52626b896e4c7698bddb2a496593129f15913927068a74beab69d42d248d0c2aef82d8a62b95a5cf085444c1db33e2dbb170d9024de7eb462772beb02a96800c22a6d56ff1172336520630d6fb9fd4b17fff217b8f60a19f5f5f375b241f7553ddc6c6466a84c710cc502778818e508828763ce867e0a8b514027f2e8376e3c1c9e7739889fb76e643cbf6326d2cc6a8d8a2d1954fcd49a803184aedd1fec8701595c94c6f2ba8140f5916e65a0047e59d7fc76cfeb3de3d31ff1d2a681c074978a3a8a0be88d13abe73d7d34bfd9f0e932707f6d3b751c5dd773ab65caf6ae34af8f47b69b6dc6f0ecd883c72eb25f31dfd6c17a3fa44034567d611870f3ae94177aaedbe0839fc1c6e0e6b6de1ce24f0cf067cbe6d1418f41b904444abb2474c844e1269f8306765d1ebbc2b7251f03426180d8894f0a94f90cf7789eaf109da85349b89b0542171878c36c00ff420dbf1d1749715510a6cdb3017517b8538bd7d63155c3cb98814970782cf8427a174c777634c8dc43715003467d00909a65d40affd57481e7064bbbf592f1d92bef2ec0fe8dbfbf92baa51684eee88f24cb6aa082755902e0810838bc00d5a8cdb20044f637d0baf132f5b1be80ff09ca239322a1506d4e489768c93e83339d34ee3674d23a9eee2b16ac050209afcefa953a1603048d4c25f46325a08ff610c3722209c55998b628cbf2d71a505248fa72b93a21fc6dca31496f2426d7c53301af819a7e2d6cee1f23c98346d2d9aa6156145a2c9a8e3922c99edbcdcf3582cb506decac35b7468432258e7c811c9ae17014dba2d0e747c73fbeba8f2942691ab52b9330d9729ec2391657cb12f0c77238029502d13364c89ce974f1b292072d80cc34bf6dc989d785109d0e1b7fe8e2f06785233f94ff3ddff9a4b0b81d6ccd11ceac07d54ab2aa240fa610a886567b2e2b5a5e6f35dd4c34eb19e39638fa86e8a1c378ae83e3bfddc5031ddac03fd01dc649aaeaee22a86b63ea433462a3e0379cb66fa294526098efd0cd0818d0927cfd7ebe4205d2b660ae719af7d2d819ad4081f1fa1999b71bbe8d65af00d71b94fdcb307636c77683655ad028507c0f03980055081715124f93e14ebac08cd417f161daa2c33626673ee936d893d48f48c23463a70ae552aa017b20074861be9d11a30754113b28c18c7abe4fd34f0d46435a73f9c1169e9b2241a80fb50cec0caf24c1402d04ae3f3152719f560306d322e8e9ea4eb22573bf0e3946409aa4b3c55a18a606f6b69e3a61894ef9354358ba52778f690250fe7e9611c9117dc76f4defa10e31f4d179f61391110518cb5cba4d0edbc5bc14bb5d98eae08d84c3bb552f99ac355e682cb6d64b01944ae041419dbe72f5d06a0ce3d9f3d4f75ca8665e90325473b2557982929629a1393398a381f280bc6903d56c30766ccb036afb6d20d8eb0bac41b6aaf009386e3984915570e515e5420d49fc5b0323977449180e4c56a2007bbd6b065e6eb1563406c29938564a3ec6d5c0b0cefd6b1cabe652f02c01a2a29392c97dabe98e8caf217d09f109dda2d646e1d5dce4276b6f304794282be5b8e4b058e6838a5319876b89436030ded2dbd89e8608269d4812cffb0358cc45bd600a2c5852d0e7cb1195b615deb7c5eb5bfb03d13b17d7045cbdcffe85921a4215b24348fe7fb1fa718429465e8963eb9a4327012ea7d27da92b54ded76397bd0fe2611632bb3d1e700ac02cd06d3a0fcb13137b0571f868cae00f636010f9604dc06e69c5cc3ecd3d5e0141dcb7db708e0bb55757c9d909627eafd0cf56b1b918c9eb0050b0cbc92ca461eb3bf4339bd03949010a88c5bb4bfed7943a0f0df2e9d2f4bc79f5cbd35a8cdaeceb4b3215107ae6a77cfddb0b36af22d4ec1cb17ef5a1adfe07bd7a2aa2ecdd60fc186268361280adabf0d6c24df43423add2e922b6a68de1b4246d940d5bc24ad2db909756e24b522b84ad23b994e98646f5d66d04ffe9d8e5fdc9231d1129621f6c069e90f67ea86481b77258b1218216dba4dcb2441141fb61216e1da3586d0a81430233ed55f5b416148b493e07e5ae5ff7352fe3efab7898c2815bba205e7c558033294750245ecdbb64e75dfc3593ac25c0150c40517ea9f4ebc23bfc5484b63edd4fb99c9a5cdfeb3983ada01baad3f003255b3e866e9d3755a580f0c0d80b3901070e7b06f736712b4ac494e7357194a5000e5baa07ba3bfc80ae082a923975742e8e35ce886409a07dc8e9f542346dc530c2563828806d6126e210d9bf8aa8fe9ac58ad34599025532ab51626f194931fb30542d9013626932613f8d2b2257f4cd228648ae5814b46b510aeeb8c0f4fb22d43a54c1ba99aad0cfd2c43524b2165e70e2c2e926aba958fa0abd395999eee886a23b1bf76b63aa77ec75de0df77e5315390304b5201a55b1e1e8236fde6da7eac4e9c7ad41db2e81ea380551789fbee867c2970b2952b7a060d44d15e717e0f6a557500d7ea60ed86662e409fff19042287fc0e8732f280161587972d33f8142d4d912f373a727c27565706002e9ee41344c0e71a8f127672dc5074d3b8be0c14c3b6f045e714f5ff4115a50734ebe7672a3c5f006c0630277a2ac1488f55a60a176de723deb14b51ad1f8ae2266234b3e81df4d714d17733aedb18586ec43810b0e59546a3ee7cb93da21966aa03db07dd1d2563eae1761f9e172d78fc56886cf711aff27407c64a59b72fc79f824cfb5f166ba8ed29b9d0a9a14e1c0c803129b69560356a52642b39417882fda1f02c9d3c8e5702c199d24339bac1f9e238604998820f07d28786d0f719464a6b8f18ceed641bc20f6c7a2d478bf3b387928b6bdf86a226f25f3458d8a2b72555d3c53086253f7fa87e6117b680d91f7386993d6e46cc73c6cf56edeb892856afcadcae80eec15a5155e2f4a3dd31ac822d6b990132f38e908d81273ebe6b26fae17b46fe29eb1dc4d73c159c23d3f83ecf44e99f1a4ca0fc12e620fba7b52765efa77f1524f60f5c6be2f1a6adfe12da3efcb06c8b6e43fc907ce6df7a3edda3c0bc831776ddf2a08b0710641fd99895caaab3e6abc3716f86ab52651e97cedfa3909d39288baef5fee2e59a370b47c2f434faef9ef0166028271cfb7a946e945e80b395fa413ba35393372c6df2968269bac0c197bab01d6b326d33e10ed0cb267d9ea6b042fc02307ece29b3c67802df619eee6c60ce7c0a2a49860306117595dd40bfb12dc9803b0e0497acc951d605404879ea263d02c57cb63926029bb0a1238b12b3ee2e99adfa7255a887fb9afc9443fb4e36d4cb7132b26ec02ed625832a9aa6d172c9f9f28d0aef830c35cb8c7a94a5c17df4db8df653e7c0819a22867d8366b348f4d7aba6e835272ff96af12e2d174bd189a39b6c41e2f5eea66d0ae8a4e238f81209e18a22124726d6b5e35ebe5576ba45ba154f565367cf6cc5627084787d2cc5e8064c6619f11b5fc0477ba02539f669a49080c96cc8a86fb71bc2f880a19242c6197c9d31d7f603847a5ea3b6056519a8a94fa6b41bc3af71712f81248918a9181426249aa5f3502235a2fc7e2643f414e091c3143a8679efa0c795358b9e53d86331db70f8db8b1489114169d8e23dfb5808af84a0f3b21f407a8a0614bc6bb8fc894bfda2ae89cbb7efeb16399d51b469e9ade7179b6dd05d987274d72a653b3b49997c2a073b5f2a9e834381f78ad8bf3cd41f3efe63d59216909f9f986fee309ddb21a17dfafce3cfe12e236b63fc66a0f8cfe4d23c8edacff2106174ef373022d4f20053e782910c3c6c270f1d6861e6dfce10a5ca23cfc22d06b4e7a5404c806313475baf222bc4a50008c0f0bc7b469f9cc0799f72b5fd15af7eeffb9830e571449d06d937ac1f1349196630540f105943ecc68aadb354624759257f9e0b0703981e58717be48fe5248393aa7449086f3522db55c97ca934a3e6de72e9d0c9a3628e808dabd70033f61ea619efcdb841b9ec4e9e3f0c7268611aef43b0cbec896dd7f10807110a8f2f3cf439e56948cacfe42be06851054371d809897fe1e695d941d5ad4a2b78f0bfd26a108f2ec975c05d7d61cde0521d579a7a2574ad1335a8bdd0de184d903d09aff8627410f081e52de49c9cdb15770ea7f98ab53773193daba1cf8db4383ad97158732c9d0285d34dc2ef0b1913e94cf8281561c21e245aee6dc6fe989abf390db4a096be5e64e31453d519e4372b13d990fd7435dc97953debdc7930ee5eda23ed4c9d165e0b9dc5b2304be7df81ef164693c0c2a94af274f62d928b1802ac587937ca735f21f7073cc673e0ec6b7357f746fe5902c8036e025bf390c73243370eced38d75a5e6adbd2a21464f41ca2d2a9b2c99d08c89fa251ad7cd437e2e528cce8a903859e0fac35076b7ff084caabac03bf83ecb975bed5d03a1971d1c7b4ae3a50b28e10b293d58d1da14bf1476075750b4833579acb027effadf2cb6933163f57b963a8abdf9d2b6e7f47a3c5a5e51f04841db0bf5b302aa894d68c87a7843c873f49869f8f4cd768e0c5255f6b38199df465cbe281b05f5b4614e630896e4ebf41f11aa055fb56cf4a51db8a8acd2a5e46a3d3e9009fb9c08b33284c05ec54f40f571bd9796dc2b83e06a99356abcb7109109a8b64abfdf8aed6e9e6f34f72118ced25103aaf3cfd21e6a0002223e24288df8068892a0e809f70d68dec7f7566f2fcd5d56bfc032c442554baf2274a60e363541c855eab1dd56641eb81148779a0e90e6ffa068d20ee58c5899476d8b19379e7299b9ef7568c5ae1b0020c2c683688bfcc92c13550522c4d8a1dd44fdfab2ad30306d14129e89be90952e5ca4cc8932cf0ba224af7e1554a0b55af4e2450a7d2f02f957611f8c8e06c6e63eb5f8252fa32fd56b5969b2b13fdc09e246425a3bb20b01659d7743cded222fd81af44d55292982f5dce496391782b5a70054963712025c495a7cf91629ce06d99fd448977c2f78313684c6cad5312e0ccacca6ced253846d58726875cf4d729c651c9818e5b57fd2299bde6428c432dcc1da190731161a7afe59c329d0d2cf2d0decc72533b2224d8928d68a465c557a0561496f3d1185f0643b0e883124a571cb3591f189e3a613f02f05df76dfda008c5138a8f264da2a6c57fe0df0b411209ed8e5b7e2c8c5811f0dc7fdfea97d5f6e01d39a633c70e662ee61b9259c707565618a7797e8e87c08eeddc48d479e3110a6921072a9a417b8093298958d54356de3716091ed587515ac3b921eba5f880c4001dfee51a01361976578458b5555d996506afe40a2c82ec82d92c49793ebc2d3449b87226b155017c801d0f01c01c2eef4af242595cdfc1ab37ed745c3253cb1178803cf31c11da30e5ff1abfddc146b0d368a2a500070ac5d9f12c7f8af87fef7ee2b127f9cb4ed649f707e30c72190c15dd6ecfcfb0dc50069c6f489417717fd3c563f0c4bf567d3a5e76f5b76a3727bef7d373af418fd98955b14b472dfc89c39e7ce8d1172df58383ecb7c133abaf6b408119ee703c02bebc1c4268e2e1202ae61c6c1a1d29f938d39d9450ee2e9f3f2d5d1baeeb5cd7317fe9b18fa7405a0bb30bf6851e9fc4aa68b965b8e4a6a3bd84737862d1ea725023d285b4ed4b14240260462bc38d59eda7c75484d4a1ef53f29586704c80e7ed07e8e8995d31eeded9b015ea818cda1797d4d40efef13ee1fc2bc14e7712a59f279a8cc5208a6c1943f4f2d807f8c63cb96fc96cab6f3bb91b7d1a451ee230c085b6ce9f6c4e1b70e456344b4785b21a19849ccf186ea3849988a8d01f98c157a45c7c2dc8012d09119148af7396427c3e554044c5a3d5191fcdc244c79a0242d2d7b8a695027df393d19074db339ebbd4b9ec56d2bb7904e62b467ff107a9f1aff03e8ec9e8d61d95d308a5efb8eb5b99effeef53a06d8594a4683f980f8fbe5abcfaa15beb49d26e42ceca45966548dec1b84f5edc4388e2e672123c09852bb80c4c182d1ba4d4324675de4422dd2ee5a03c881e6b7d16e9e5b99b2f2d035424fe75fa511b7d4ea4505fc3722cb19247c9cce9483252841e173b89030c0040ea1cdd74f4d12ba2703e2f9c48973fb4c70dd02e17e1979b9b1a9fea555265fc07ed863ef26a9201f128ef37c90f622b680599b0b98a335a91082c3e445eac51b0c61938c59a7ba2eb0082e12efc39326d6bddd467a7b2ad00ab5641352684c2fd7dd3a79184b98bd8698c54e7006662c570d4aa86598698dd9bc394d370799f784fa53171b0d71ecaaee6be62a6919da2c4dcb46b5437bd77c60fb6c6577962554f859fa9a3a1f33297db5a8c6abdac2e702c55ea8516d312ebfe61c1d3b6d5325c76cb3347a43ed9c479c53e25837c912fd690a0893d213bddd91b0baad71038c34d2e308a5c2b91659e9141a839814f0aca6353beb9779fb4e8347699b0d139964f2bc787a0b03127e5c0efcf3cd87f6c5b942e15f5482623beb44f34e913f15aba358d1787bdb2a8cbca3edd34e895b738a379a5757a1c485da3f191a7e286aeccb56a22683aefda49b078f884e762ba90c6de17706a6771822d6225421da829f976f5160cdc75ce42dc1a926290bfd84105e02334a1b4ad312e25e53c30efbb9a433da7414f022f71e4fcc5fa1043e4d6115393a262550c976f9ffc4217038927d21cd0dcdbfc69a88e6ba48d110512ada2f6d0cf5141e4a02fbb6cdcf2d7dbcab105f5e576c00928974defec736369b7331ab4bfe5828407ebb76b4e3bf289bde93d171358508270ab432848fb9da5b854d2808af650ee2ecc3b2b35aa839cd14b95424bd7125f146dfa12167701fda193317c718d1e82b4ab84eeb40e96b35c141cede4e96292f037121b85826f1b08d31ebda52e7cea07fc217b8e073415a81a892f051eaf2e07caa08787cdf891a40d9bbdf18082ca1edb404e67d2b311acb72260c63679a7cc5e81385359aaff1e94009d45c81f3dcb8ebda8f38e223950f8a9f4a296abd26ba2d4c45f0fdda50b3df123b8d96bbddea882c37d043ddf8bf89ec7f48b2812f2d1136e2f100b87f279991f257195e319d4fdb0f0726b59459f330a33935417f1a685945a9173c25c139f6796890cb423b3674688a0f5d8abd105391b2cd4ae378ffa9e84257cc56e114711003c5d4efce54ec91a2a785dde35821723422988ec588c5226ecb819ee808091ce1a442ff17e748c3b353bb55d13fc28a3740964990d0e38eee0983106d9a269e5d194bfc5ec3045a1af626748a3437904c19015d6934be8c5aa5cf9a99b2c14f59e2b3da5c2464a976ff7a64e422a2890987ee09dbf9dad1121dcab8fae93258fa12d1d34a87faaa8cf9141f54e152ec4a30ec83006ed462c903f384be5843c8a91e807fb63411d0eacaad772f5c87afe1409885894047dc1ba7d102040b1bb96bb991871c5da472f5c0ca78544fbefb0e0d8ac0b68cd9fc3a263bcce26a1bfa43e5042accf070ba83870e78afbc36cc0178ec42a30d470212452e3c20bc08c42fd3e79ae7d0eb97894ad2495f8ea086705fc58fb29d29146289f0ac3237fc1bb39f98f12d71bd99ad2b6c6829f961718af78377b4ae9d3d9dd93b793f98d0dd94458971869c5ed51d31cc4ff8ec2bd65c84d337bcc507e69199090dc3e1318ba512974117fe26ca53834484ae7ca235be57a46752ec147d90b4381be448781dcd2b31f7ee96fdd5b525b0cab02d56a3e86cf4f48d1d2a9edff5960572c3c1b751f6798c0d97c05839479d7fac9966b5a32f094970b90f31a4d58915fa96c4715f01b616b273d45f945f2af5054843e9772a64a2511911aa45c91b03499b3adec69807445a1e12637282fe9ee70923b4a7bea50a2510a272850d7d6adc3038bd5bfc612ddbe61003b0280aaa296851a3dc856c28beebfd79e01c0472d30c0b0094331a8388a87f5772edb6dcd7a8d7659200e10df4a5d48830bb7d05358dc4b5a6d692afb71dafc5b5050c85a3f9d6dcf39e0601c905b36eaa9bbafa5e386b9ae007e6f1063b128a278c72bb3e0d13a42150d1a643fc9a26cf38d82e82f9d455bf0fc1684af54d7a907676443355eb31a42710190714d86a22616f0742daff1cfcdc4eb005249eab02873345814df6eb62458183c1ac1e6c3a89f91893f9adfa2a679b4a9b8c2606c198c22c8b15d6b05e509ac0d29c2359162c5bf6893413fd8dffbfdb495ed9f28c43705e32012e5da2d22209f86689407f2a56498d0dffd5e2f3379ec1479bee109cfd313f34d2444b11b0e139cfa5c169db120bf46e11b5ba5a09d758b39f50cf97a593baea00fcb6b12f66e016ae4b78ee1edaab492a76cf3b3307e9b6c62267ceb12591c94a0686dc1a548ddb1cce6610b2c7bdec910a61a571d87859adc19f40d7b7c889aabe87cb115b3ef08df15597ae3cc7c6e91f5fef6509ed26ebe74e6fbaf1016d5b28fe28385dd3cb52836dfc9867643367127d0c038b3d1377e1654548aa1f7b762f6799666ccff9b4d68a8814900beeec9837e8a62c89fba3040ee17ab66d26bf4866f163ee5d92aaeefe94e7d8cdf8f70813a43cb63277e833b6159307851a5016c7cab263e221004f0797fe9eade7ed1eda218c3e1f02d17f1b8bf72f6710421bb2d49af0ebdcc66bb9a536d78bea5034e686c227aed950c24a4c437d35eb38db46388c01541a5ba2453f7070d7e92a69bdee32bb0f561b2c88cb40564402b2129d4e6ee1114453d825c3152c7c07ff256aefd35fe9ebeb1362b4a5f3e36be62c03bdb20ca7c22e8f1c3d6ad8d15f62b38aa79f5252a6f35c28cee211462798bee1399cd71ef0ebcc353190e0018dbe4fa450fc09e92536cf722dae3cceb50e0691b3792e942a40183a1e66baa62bb2fe9e0d8fda3c0ac9217476b9bb72fad3a1999e80d159ffdfc590904d5168ccd2bcd190239fd698780ec45c921ae554c9ed5a24050ffc6df14f8f1fb12538ef4cf3aaa446f511e42ab1fe7f94685e985239246ca51cc46f1cc80c7d48418e2e292396a41ee578c134a716442ee9ce8780eea6e3870ba0b1b1d5e15d6f4e147c80c442233f6f71c54f8e8ee02a0239be34dcbec97ca74f36f4d137c09e02fe7839d8d8bf9dbfaffce28a3cbc983f97653751ffd26ec449831f219c6954280d539c085c132ba24fdbb49ca515e6ae350170622c8c622f0e1d4386dcc235b0bb129211dbda777293e750e3182a85f4da0c0b3ef8a60c488d8902b08e86b63bdc858b3cde2f634c42c6da5bfad9bb65971b6fa240c0602d56dd2d9c65d1b576c0317b09d5f21c60c1d79fb56dbabb4edc6b698dfa4736cdec47df5b6dcdb2666b666e92032c451e573357b44d9191707be01d3d2c43d7fa130345f25d1600df5467fc2d2ab04bb2cf03032b170b859e57c022b5f53b0afaa68f5fd11bd81e6fa8f6a263f5e3d875b69fc2795d7ecfd68c32a65db2c6c930925332988a9159137497e3542953b554892922e351045278d088d7862de46d81675c7096a0392c94e712354e636a6df5cf449775756e8ace752f692511b5d2144dd0d4b447f3900a8977ef518698131513c4c30713ee2c47a6fbee02a53f9ee16626b096497dfebeabeb66c3fe2d588ff330250a914598d20dfad5f9a6b3157341ab5a4cd5cdb59c90769c2a86e7173629541a60b3c7118f4364caa8ed7fbeca00a4418125d980e1ef77c7988173d912574018c01a515015ae9654f3650ae24c901cfcff033fc0c3fc3cff033711f11fabf087d42f021735332bd491553804f49b2256da0528702c06acd750b000000b2521fef04ba04d4046626715f6f3d414a74001831b8e4010d100103aaf098c596924bf6e7cc24a54a16dccd5654f7f4f9eb138b8428d19aaf5b0312b8a1811b9fe3010b4a92c49c623c6be6ccd9a041438cc5f17845afa169af2aa3862bd0904b57393f7cbe8f058f569c243954b4606d52ec30c78a0183072b4e1a3d2324530cb7a4e0b18ac7c259464fc971a62ae3860a1eaab0fa3f336e9c5708cd06182710018e11e4b821c6231586f3ae2cef168d1f04a35d05220840131ea848772643bf899939666ce43845628979bae0618aafd24dea34887abc67f02845656a72ee4aba393ffa82072912bc35df945cee713119638c4146e7b8d18f512c7a177ab36c1b354e20821c37fc218a44ff7431544cd2b9651b346880710211dc7884e224670cd90f1f3ddffe0728344bbf8bd0c814bbf3893e4ccaaf62954992b48287270a636299bab935a5a5824727486f2d490ef331d9e99c287a5434d1040b1695df846aaf6e25979cd4414d60ad67492eff3caf990953d0d4bfbe1126ae9bbcdddb0b19837a094dcaf61534bac9a66e09d33c6ed24fb933eff5e0510993ece13c7d44094e54cac4564d92a4ca63125e4a7b6ecf6dc1f3e721898305fd8c317ba7bbf688c49b1e97c9ea2fff49f280c49db39470827f8f4760192bacb36f6ed5ac2334a9d28cd1ba182f783422a9d5a498b346060fd7070f46545b62d6b9fa2292cef1a44d62ac0873c8edc8141ab5649388d3b4e593a05142878e88ae844ee1ee2fc54c8287583ecb49fb39b64a5d0cf1e6d458d3599ec287856826632bdd4d0841774e4d7e39ea06eb06a1668a964a9a3b00c64310b7cbc7f5f84134cb1488dbd5c42e59bc73a70610c6d1df0e5f7fb96efe439549aa0c156366932c7ed8ede4641932e46a82471f14937d7783e7ec489f0f5ccee2a1f355698c13123cf6b08951299ed7bbe43c2278e8610b6e7782c48496e77958f3cf5a2eb94d755b81071e1893ae3be935dac9dde30ec60ed50db1e36f96b643db274d5f788c9c9f6ce070336e781d28ed99e813f3e692e4d0a1fbdd6cd1f26bffa30c1e73504deaf8ef97c3d34be470a5989864f3d98d593078c481d1dbaafb7c154f1e1f70f0734e1a2696f882c71b0cb96f7d5a75c2698e1b922e55366e4dc1a30d5cf494d2cad53668d058c1830d9ac5fc1a4226e3835482c71a8e7b13736c68aad0c678a8c1e851dbe0f2193c7be391864eb69c72fe7e678ffa030d6a92429574827b8eb939c339a6c4b4daa525ff38dc060e6a6ce161066caf476c335450f994e1faac94e6277d8ef43668d0a0c1830cccdc96bc7ffeff92338682d5d749ee7be11b13c3499a0c5d52f0ac50d50d1c6c19fb08c35125e512bf23d35609860a5af000835e1bf6dd15eaa5ce2f24c45efac73c9eab752f909db26cba2e78a9e7e24ea5f34d9a0e3cb8502c295e56aa8d75cd630b68b4ccb40a3b2945c9430b776a55f579ef9185448bafb9c2e4246e4f36c2a8a1831b5bc36fd4c041468d143cb040bccc796e8d785dcbe30aa906cf99c49c7e58a14f52e85509bf9b6e03c1a30a986852cdc54691cbd90868d0a8f1a0c22e7d9b647de557330b50e03185e432f9723db7d3461f5238442b25393269755751f87373924b9e0a145e8ffba49fc34fe8c3de87137895b8b87cc184b9cfa309497256cc9ee52e554699b069be24f9a75b476e3696c079672a4b622765e84aa8aeadbc2e7892b09ef6d87f2c794cd60712e8e990e1545ef3e8477054d4d75ac34f760f8e8711f892d4932465621a0b9111a7cb4a39a1323a5e71926437394a345e9e6ad0e18a5678a2b525490cd7b1abf740072b928412e5c3fd0995ddb30acf54cbe5ebf3ec2fa40af44f663ca5cc96fa549c26c5ca9cfca9e72bb4810e54a8a9f7c4312d217bcc5314d333db751f961f7698a2f23519cd34be7549ce6000133a4a719bcb49f3d353b92d292ebff93ad0318a46cf2ac6287a6d53768822b1356f787d4f22f293d1118ad54e667366b2d1010a7a6ed3eb7a7ed7f73fb189c1c46a37c790d1f7041d1927c473f892f44eb8599ed22594568a73c29c67d7621bceecddc46bf3a929b49a30fedc4f68fee9707a268a6a61a4bc5cd63dc784153bc6a764fc126634bf8de2294e4e5a428f2b556252fe1faf129f6be7fa5c0e25feac9fd4453a935025634a93caa4b48e24fc78f213a9155172249428b9bc820809c7a44e19db7b44ef92c12a87da11e5e98e0e17ea461c34ab7ecc9ec9d3cc8ce8afa2f53d851791dc51fd4493a02b1f459817523b5abeada913c164e731e1241711e615d1981fe2dfca9a2fbd1a22394ccabb2b16c21013a16653532124c4196d378b6cef576510274136ffab8b4f452a08fb2d443ec67d0b4f209455cdb7613ee99980f844c33b6d93c9b9fd8134593e78949824e9c40f875aa7b534dbedf48136fdec71c345c6c287a2cec97aae96e48a720f666fcc641dc674f37af05737d8e807f370ccfda1b44dc4c3e59f1f932396cec33b589b529d31496515433b1426c4d96cfe8f4b5887d33eaddeb86f3e3974a8a34faaf41e56639d03121fa6521a8fe1bd9343496343956b170763b40b5b7b2a9725070777531893a5f23259ee0d89de79b3b92a99749d1b125736964979f196356d30850f1f63af6c68beddbf2fb69e46cd1a28d97c46befeaf47a386e345776bde0dba9a4983a12a77fc731acf914143a7b9259d669c6cf719aad18dad922709729b194c3b3b6fe265c04a78b994c25946930c768c5bedd4bdf3958d01b1ccf41b24e7245b0c7745ad1e59933050eaaa9b4a0483963263cc5b291734c9172c317b5ecf2f66cf122f383e9f633a29ba4fdf854f93f019e6399ee8295ce8243fabd30adada295b2844b44e36b7b440c6f4349d2bdea45859382dac8d4509160e99b62544fb2fa5ea0abd54fcc9ce29dbd35660a72f9b468f67265a85928da89c581b3f27a9806487bfbbe0714e6e0acc05d1147a518714126c24742c6e4af2af3be88842994af2784f21952aff830e281027ca9af831ef78025a194ff64b9b0018a1c309ca758c5464dc5039273b9ad0c18424d30993f22671d330722c81f8f46f1afb9ada7d184a2854a527d3d42a1dc771818e24984bbc8adbfc31e30619387e031d48487386314f33ff6953560c0a741ce1fd91880cbe69b2f58ea30c0d7418a1a4595749fcf24f5fe236729c5186053a8ab0864afe5152c36db06654a083082531495cde3c5f72ba876066938fb4d8c97c7331cac891810e2198d6627fde29cd59d18e20109fc4d10aefab030849258b49db65f2f8451dd3ea2d8baabb770f5fd8e9225d729eeb3069048f5ea0e1b9c65f462f75c38b2be956de548fad551ebbb8a2eea6942755e3a18bc3688ad96378bbe8a50d7de4a2f19eaa28b936a87b0f5c24e6789876fc8afc718b2c79a50d936a52f09f047ec810413d6c51dde68aca38ddc04d4083c60d1cc73f6a91f6465d5ed8899f6579d022640c1af3c9278416488961f9ca4467b1c67cf94a726fd55b21b210012416b0784539ee79d6726833ad5c911c6761937ad48a2b93d499673e9ddc291056f4a2feb2392c34570a64150595cdf1495315c674aa1e3459e80e995474b9375af55f3f5f0c828a246966a5be249101e41497247adfa5e9b0b5e90b404c619e2494e593b1c8b24b29c5e1db969645eae53a148090a27c25cc857eb2b23e29096414095d1763196c656fae12c59d31d346cfdef51f8784e290f1bafee2cc778762000185b9e27e7677b9fc97b200e413ea746da5f1db24cff8038827922d33e74c41cf33a5a9139f69ce5d9337837002b2092cdc764e6f6dadc40907104d249e1e3e553bd826e94c606296c27e0a236dc2983894bb79cca5b1d9ee259c34d18b2657209658cc43e4475f89b42c57c52be973a74e892e6bb6e5543efbb5491c2693662da182480293bcbe82680793b5038944af9d56ce3abec694f2000289c2a6a5fba7cfddaa90479c2c6992a63479f5ac038823f692b2efe6587177e39046ec27c78a9a26c9887b4acc97c4ba642f9645a0277beaf93c6537a11b4014c1babbaf2635cbc9e38303928852cef09b39fa398020a20e71e7277932041502b5a8412bce9f9016a7284008f159dafdcf91b7bf181b350671d699c5ee70712aa5b6c310a304104120ef299d49ee61f95e110112086eaba693b47a39649e0910406c6288dcfb68fc97493b80fce1d5932c6c850606c40f6ad2136d54c23e247d521e3fc93d2d3605e18319d37a7bafbcc99f7f00b2073de421e93439e51425bf29b201c183a1648dbfbf30c003903b9c736e75ec8f1edebb1d52cf9da28a8c75481236cb895bb962799c0e59e8f4888a2beb1803990361c1e3d45ccedd4ecb618bb15ed163300e27b153844474bba7050207adca728ad84f0f6a027983a7da26e655e6ccafb8214912cd3f26614e9ab0da7099d54e795aea0c081b8ab74e3165b856ee3010206bd04afeac24ef9a264b11440dc963d147b33c9ea7c3b841c68ded0d40d2405aa76aaf244d0082863caaad411a809ce19416f45ac4e7a40f310031431992da6edfe42d91b21e4206c8186cebb4e1bf6290de4a0d8818125d56bb4b0806903070e2fb540c92a22dfb42c000f94279a1ba505cd0378ba69c53df85a62b806c21bd986a6fb4e2df665800d182eaa511755aa167395950672be4539746454e21806001720533cb4ce89f3387054800b1423a369a621493a4f8da04902a502159637378ac163285bfcb3a564796426e17f6a6d52858a659552532a5ab640e2050803ce1ab0caba949d6c61910271ce3fae5566c4c39be0d4813204ca82de36d9d6674057709dfb5d7e5ea0ad7a32a81fd533d317c2da7924930c6fcbd34594173ee90c0e5587cf3db8eb0fa9dd86e494393746284e40f13bf7b290299bd7d35931411ba9c625ab7d455f186607fc689afc76930110297efc2f64c0409426af197573ee2a434438060760f6a969320a2e95f70217652cce4b8bfbd2fccd123fb3fcf5bcc6b2fa89256b6c48af2f9125e247c8e697f3d8d392d1dbb384b4e5e483bab1c950e5dd0f2e9c41ad5ed0fa93b72c16564b2bc1caa64773b706187c72713ad63123f07a3e316b7adc64a79e5c131021a34ca18e33b6c410697e8d82d75d4a2cc97c19264a7fffc5f408b7385c74a6289155f9f8e599416cb4b924f6551aa1265726cb6c43413c522c1528ca35ea1f29b58072c36290ec0028123089442650107dfad92dc062c8022502e02156933729c81830001d001432001003023c719261840009c067b060d6eac180710400e1c8e801000e04f495a0d15c6e4dbd846963a83068d311c478d1b84716a9c30dacbc80102050c81566bc9b513db9dcd86105ec9cf49d35a5f46b6a180201c3e5acdbdee3475aa2800085fb0a0d16673bcce0c31c238836be0a8c82f9230ccb84118c717491866e0b091438c1a351010e985199e8317491866886123c7d6a88180c82e921a350e10d1451963e4c26f40c61863f8180688e0420765f4183e460122b748c230e39031c619356a2020628baa05d1c25861d453cc9b434c27099159c8a2fc14da396b0eb67e2c60d1a5e42fbaf18ebc22eb3acd952d476e1e5de1c6f8d3f84fb5c2b43393b369e878f964857ec244e5cff874f32abcefec361193882a5251abed5a64b92631d5082ace49c64646e3c78aef2996540daf1eb64a3534853968f4f446568af24931f26f6166831a214572852f3d8b98ed0f23a3706dd66f4c3af136daa2b03a653777e3814828f8b0494e29c5ce5c6e8e611150109b52b62d66f8cb67e4887ca28a2925e9cbdbc46c02114f147f27eb52e5b4942f158874a23359cb344ab4d7ccdaa04143239c28ed6f9b9c327b1ad76dd0a091914d54a6d3e1cae40fe6711b7c460e1a34725020a2894e7c2c2599bd31f9ae48263051976883594ad1a4762f899225aa1294988424faee8a3a13f124b81c890426e533296ab2d662c786db60511081c4236cdd76f9dc2ee2882b9dece59e3fd2887e93143784c4554a7236c208fb63bc799efb786917416d7694949373b4d6228a8824a22288687e7b3ac99fa9eedf21ead6135aeb73fb55c5109618364b86ddbb4ff28530deefece325612aa508a1c91ba236f37ec71a07517b0cb32fcb392a78362282403327837eeadc64171b1b8804e2be95ad64678900e20f59b01cc6c32789f8c199fc1b7119ffcf5d1f3eedd5ecf1bca3678af0a19bb5b839a4b9873f7ad0db0ea31ef260b88a2f267c46d87df09064272639947e3ea1a4ef60873ad0e128f2298a6529f1d099831c164d694becf98ce676400234c0e12188c4010e89de6ed67862fe289f0e44de60875ef5f470b2f61e379c2f69e645bc8c56d6067c2fa5937dfa0e138cb0c13895dc6c25165903a9210d8486c8192a628632d87329bb09f7a7f769329cd4a3df26b39881838c1c913194dd4ccc9ac5124318280206ef6ceb53c61287c817ec1c2f6ad72f42f28343c40ba709237a93267c5eda85af2bc5cdf868e32f45b8f06a063f29670bdac5a429e7def3f92007225ae0d4c4948a7b6662362359486a5bf3e40ff5151d2c982b76bb87c944aeb066bbcd293bc98b3e6205f77e3454599f9fe045aa80fa6f86fa4ae1c3d30815cef9e5be96e66e3786139129246d8594bf9770994ac110715225f554ce256d9811468d00ac2212053f9cec7dbf1e359f5c040a98ac9bbac7ff3be1137942ee1e4bdc4c594389bf130e9e96c455b619449aa009a51a66c2af989832c1d553df38b1224b20ca4b9af831e924d288129a7af3cd14522afc154982ae75a9a4f57d77759140c6fd283932ee5fa5c811f8507a62b96a1b11daaf2d5aecfe1a448a60b9d9ec9cf4c6d8c973c34f702244a8e4fb924eecca4c114686101102ae7a29336b125c43c2402408d56a64ea8dceafe34780b05fdcce296b49da4c7e51458f7ec9b8f645df06c4179a7912be2d724ce83ca417c48b2a2426f6c31b80354076a10bbc36967df654e2dd950b5cbc412a09256ccaa50f728b34d7f64e995cc9dc93c00520b6d0c64ed670558266abb56844c20a852aa833976120864110055110832008629f3543135080b840180c46c3012d91663f13c0c0ca42d170280e8a420181300c463110053110835010c3401cc44044e224b3ac1bd1a3b4bb7862d3e55c44ae5e0b5dc3629e52e2d6b0480673e51de4bcc7f666fe27e6eb55dbcbbec433741adecc82357ed3a223bb8e58837bad264dc261d956e063aeb42b33186f49fda99e4347facc4d80688ec7d7458350310a38ffc72578f8e1a0ef2195131f5a30d5d47effc3644ac31b6eb58195ad1185a9755032ce6b0f7bfc4854445acc262d27c52b133f126f022dbade01c257af5fe2a1a8cc3963f8661b97c2c1e868121a49cf74f8b54b91cb24ab63361549521f874232b81958359b539d7e772b98b28420ebb1fa2c423c16803213309f88fc647f2a3b8154170f2a6bde166f60b5c6e0d7d078a82c206352e9ad3ef357e30620b69d274447210d9e71a495fbb9e33749f275ff9345652e9715cfeaeb2ace2200010b6c05db6fd8ae90e95955d3334adeca76c4e7e65b46071f245bfb96df60b37ec7be078000c94aa8fdd7f8be270c5706361a33694296fbf49bd35abf59792d843953325e5d9558a47384f12856efb4e0eddf5be58b5200a88bfac9959c89da14da347287413453eca907e02d294763cda4b3f4439991806b804917db384ed08c1534196cead8e94ccd788d7c53562d7267baadbc3a9bc2083a3764b6d3a2e78e834b0b95038fca587ad1546943e04591197967abd948364862b0603452052202ebe8034e11035397cae42c8ffc55134e86663f6c94b1264cb5b5ecdac72076a7ed829a6c9e88516cbb02f0e2f41ee4b8451ecf9ce1b08f7bfd800c0dbe61b24700258c1fd964aa2df4af91eb3e1a44f5549db0730eedd8514a63e1b77272ddc9f9b0728c8c0122bd44579c7e16d050c109419a43b709276f0374c13870d20ebd2dff536c312ed182d10187fa74f71b1fca900372737603b03f8bb970c899cd1ac2de8c816155aa74143ded8841f8e4814dd4009b9bc0ad064677bb5d6f1af9583d9f4646c7512eeb5ef04126125aeae72875b78568bb021699c7f4594c2fd158c500174dea61ee981d689efc28037aa9fe89bb68517ed26a484c604edc3519d115193796ba6099036accdbf1894eb8720b8beb56c4f7ee80ba25d6c950c9cfc428f2a56ac3e28cbf8c385342497225bf59f88c3b54cb94ac7f33121a8a3ed55792b259084d9829e9e7a42f80eecc23231789c8ee41778331403a55bbd137e5a02bfa7d9f3b7ecd50e1ec4341fed85b965bb5bb86b1cfadda7922a51c38b01feb6397eacc2771750ac086cd1daca1c0ee53a4e4b888bc2a114b5c34fa4de42db36e5366854bd99f090b450bd92a6e42e61ae312707d17009e025370dd58237a87c6cb44a338b35da5a2e0e2543c8633ed395b0867f7bc014057317047e6cc792d00a59e92d9b100fcd73f04e9ddaf4391a45e3d44f9ebb03bd9d783f2935ad1d78c2738e1c668ad1d99b0bafc8f29eea804f90ee37abde857561e150216e38775e961f24914135c6e2a5deb43e264ffc5b994b40b35fcace963c0a63a47af32c683c9a621143a94d9a36875526f79e59ecabcc9dffe528fb76300997ae1464eb586e179546b54189fc8e2e14085208dfb6672507c23514208bdfdeb70ef3fb22941d049a23be02c96c23a7788e58d00a00227c026ffa24d6629ce3d620d2b07be1c609a5fc1a8d4963701592f2382f93e27111304a9e385354bfd026ea5bc45a63f1685649531398964f5efe05bc1062084b8f6911521c8d7cdaf473f847c0677191b55ca7059d4ed8799f96d3c9faa13ccbc9d93661da50ae99bd93e3c57cb21f4b26d58788cc4515fa6134af11a2b29efbcd5c0b33b29cf4e65c09526fff27f6882d1cfcc1124d0df15737a85a09623bd4594795b6aef8a370f5e1ca16da384cea5dc3e295d7c27608332b7984139a48d1dc88f54bed80e45b9c4c50a40b030e937883c5aaac241d11205e2fa5d9c1d29ffe37a2cae7fddc58c73ef5d530c32606cd21dbefedbdf774d68d6d9b8ededd24887cc44588b591364a605116c21ee81652de57834ddf864949b3725a51192e530ebee788de475586014797b51c45e59c15d761133a9abe65b3ae5e07c04254cf62d8d93aef9c1d6d517a4b379b8624d9343e6f5ef8455344ea09c81f2b3735434220d0a6211843de10ed8f247d4b539585a06d396dca98d2f11619bfa94264d182c0020b7f726897b9f98c5c49adf0cfef1926e23cddabc2a7f69eb3273edb31eb1d3593b4de0a33b7ba01b45372a2685be4afa4fef228c9c9e2b3fbbbba8d5519ad108c6d21d25a133f1059cb68be3fa714e6b26655df3bdb0ea85ad4b308cc07ae9057fc0285e05f513366081247a71dd9dc6dd28bd78c3873e92161e0f1797a2934e8b36e93ce213fc760d03e876646a252ecade956b8f023afea30b608be4f2909af8655e8f4ddbbdeb919823597a4a43a0093e4efcb9cea82f4dd08c77f57c27989a08ad507d8a480b09ee37d9443008d4836a7b887beab566d3a080dfa0f2f0b2265957553e6f9327a29b577e907b80e59e9ecb7deb6b27655b243c2b301723d728fa7546426ee7a65e35081c7b68daeedb32802a5b9df058f058d7efd209e8a50b6268dfcb138de5c324c65baa14e425d534705f885c1c9f2eef6eccdae34f84f48e4d58f6d69a4134c619c8dcb9bad4c51a88f269275b462c2867b4362204af1c9241b11cc1d6afb36230df62eea6e82095b5fbbe4fb708ec5f81833a0981f3e384a1837d01ab3f5844a043a5b4e8e2bf3a3dd40553cc1c0b0a0da81cab1a7fcf56e3a87150eb664ac5b4b58a36f76a53933c32fb1a654c2236395b7f753d3c8e4fd2072c8f0f1987de535083774c10d5038ca0d50f6049c8690bad5853ec4bcd90227d88db44fde2996570e5936415923a4cbd2140e8ea99efffd48ced8e8bcbd5c77cf1266d799b7c15654f131d6937ed9351503f1c338921b0f8d53616c611f8fa71a087d18e8ebcd389884f36b17194f6ee7743dca03eb195223b90ad124e0abcf8b6ca6fd0a93f5b06b6a0f040b0ec74a7808c417431d0abc141ca159c35a338971dbcfb716c9457a2bf751535f7f0c3adaed15cd0adc31696d55caebfd603cd7fa15daeb07eed15b9f867c7980d49d9c216760de9dcca87b3f9b7c3d5e6d1cde609ad521baed2abc0b70f9188749d70fc04e22649a24577784e524704f3446a5e8d9219fc412029152cae13ee4b81f62c2f396ac8ea99594515d5c4f0f786f1cdf9d4df6376354f416ca32dacc510514c2a22923be7ddf7b0d579cfc4d8b1a53440312f4e3bc62a1110b1775121cb50df773a58238510dd4ff1ad27956d272624d6223dd2c1c9b3bd0f038971b0ba84b08f1a2550743406af8812b28b770ebb9bdfd5fbbef8d5afffda77fe5358f670e8dc3ba342bd43e164464155dd2bfbebdf7ffebbfffa5752effe3a18a850a0622a4855e6e4317e0a4edaa639cd299f1ed359ff84331b1f09250f854e75676486b4b154be20cf78f9f35df963bffde59fdcf08dd3b5e154a4be0c47435fb295c35cce65ee9d7747b76198475df03405e848189413f80695ebfb2f5109877604de82a23d6ce73a6bb6abf718ced8184ed4173d8d6471d69a852216c4fdc95e5372f0ef4a5198fbd7e76e6c69afbb94bc0ef54e5a9335c12bc271c208fb1bd8ca1005e8ec51a13e203744af8871daece8b57f2cd385cd83edaab80e9916b897fa9d9ac5e7142376cf8c48cdcb4a77ed6fab607e605c6229164fe82415a5ace5a5c9135cc0d0533559e606cda733cf2596e8f964374d6f16c853dddc583236b6e359829ffe8b513e2ff7cc18a08e669e97f892f1067762f40cfa711673a64f2695791917f0e13bf2e579bdf6bb87fac2caaa2b8438eb64f9e54a2e401d2983b868e503ca5e8239809a7fb12e3fa471ac7cb72a5f60de7d160d84402b0c2c02c6a01a4290e72bf6b8c22fa3cb6a394ddde3cb792c6428a21962b7c62485e20b577c4762781e203782f14a65b41008d1a81bd63db67ef3e01983d7a5b06908b58f0e365ff6001b796498fda6b9e7929da8ce0e9970de7a3b2a33c4ad95def7b9ad20abc0eb29c68493c5e663ad0562c9845af588d86dbcd13218c4c0a552b4c2fd2f1ca3efc9e2568f483dccb91c2c1d04e8279f4528daa56656e3cf687393ac9a0289685cf39568b5ba31390b885867f312b5747e98651bd9f7f8af63eb63397f7f8f88a0605695a43afbda70c218b08695385d4dde3db5e55917a68d8d16e09282191e46252bac10fa8ad6b590ae1f42ffb00f6b4cbc3f291eacf537c42c4283652d1fba90c71fd96c6a09799204144865866368b595c3063871677beaaa8651325c219a224c071e3ca901daed028f547e8dffdf6d8c637c2058db85c87034bfe1bdd1be75d9c964949a25c3f05ceb6023d72dd2496a09a08ba7b1d2331a2ee5f5cc7324bf3b79e7e254102157b6639982ccb17f823f154574594f4c3330244c38ff78dda9a1c5f0cc2d36fb1fbc5da228532d67ce05b0b0c80e8609e33b09f48b6002c88189c1836c3285c949809076ea8690a106aa7e9716b1269cfbb6bfcf210b7547ad0a99237b6bf37228e586c3f80ad3f8eb7f91cc6529b5ea5d092c15f0ed43ecdd78ce3e0f5aad7172ee2d4a3b65cff321b28a1b63c97ea6fd2a52c6176059f448f10bd1c3e24b277190d993e36555b4a7c32a7770e80cac33d96d64055b941856cac552f25bf8ec695ef2fd05a93382a9fbece87ec3f4be21e0344235f79c33466a2c77f045b95bea6ca690240eb8bf0f89e9b426b719c29e599f283c0824c9c3f331b509906c5770ec4dd2a81c493647a8b0492066d8f5f8f3ebf9859aad890e5ec20708657a8299955afc5d9d87ece8072f4e0fc3c80822af533492ab56454c01ad0ea9071b6386fc8b3013944934434427eab886ede78d9a2aef1134d175822a7cb178b710e57b2a6110584db2ee4e0dc445594b5f2c153a5a820c8533c70fc4ffbca131bc08e30b21cce1102868f647092eca610529e6090a03b1c74e475c7db706b78634e1c9c7984b2ff55c0595226fa27f2be5342ae7bf13666c4e59a2a9c86954862d7b3bc60d6b89debaf0db8a4f38f1f9ab63f2dc69e88235eb22125dce3b73b9691278784b70a7a5a7adc56f89c8bf887676ef09cae8279d12a432cf1a0e9df6ba903e1dfd291746aeec5df864fbdaf006ad580003952ddd4220e08c26eab5516f596bc1e9c66bc628368e23ea3498e310d0b6cec4b04f386ab628363726e68c4a669a860ec69ad2bc23150447debdd3849e58067ca1cbe04318b4735ef31f0289df26b03956e335", + "0x3a65787472696e7369635f696e646578": "0x00000000", + "0x3c311d57d4daf52904616cf69648081e4e7b9012096b41c4eb3aaf947f6ea429": "0x0000", + "0x3c311d57d4daf52904616cf69648081e5e0621c4869aa60c02be9adcc98a0d1d": "0x10fe2055a032a91826e91e7548f965fa78014ddc062990c7c48acbb2cc0095f63b28e939d13c99847c1f67e499341c204d4d8d490363e09217c64da6f565f0f60318d1c8174a3ab43b525290a377844a47b5adb4eda848759022bff04235fe754b60264c397759099c732ad2d9c0a5eb550cccacaf0af872b97904954f8ffab60a", + "0x3f1467a096bcd71a5b6a0c8155e208104e7b9012096b41c4eb3aaf947f6ea429": "0x0000", + "0x45323df7cc47150b3930e2666b0aa3134e7b9012096b41c4eb3aaf947f6ea429": "0x0100", + "0x57f8dc2f5ab09467896f47300f0424384e7b9012096b41c4eb3aaf947f6ea429": "0x0000", + "0x57f8dc2f5ab09467896f47300f0424385e0621c4869aa60c02be9adcc98a0d1d": "0x10fe2055a032a91826e91e7548f965fa78014ddc062990c7c48acbb2cc0095f63b28e939d13c99847c1f67e499341c204d4d8d490363e09217c64da6f565f0f60318d1c8174a3ab43b525290a377844a47b5adb4eda848759022bff04235fe754b60264c397759099c732ad2d9c0a5eb550cccacaf0af872b97904954f8ffab60a", + "0x7474449cca95dc5d0c00e71735a6d17d4e7b9012096b41c4eb3aaf947f6ea429": "0x0000", + "0x79e2fe5d327165001f8232643023ed8b4e7b9012096b41c4eb3aaf947f6ea429": "0x0000", + "0x7b3237373ffdfeb1cab4222e3b520d6b4e7b9012096b41c4eb3aaf947f6ea429": "0x0100", + "0x913b40454eb582a66ab74c86f6137db94e7b9012096b41c4eb3aaf947f6ea429": "0x0400", + "0xa42f90c8b47838c3a5332d85ee9aa5c34e7b9012096b41c4eb3aaf947f6ea429": "0x0100", + "0xc2261276cc9d1f8598ea4b6a74b15c2f308ce9615de0775a82f8a94dc3d285a1": "0x01", + "0xc2261276cc9d1f8598ea4b6a74b15c2f4e7b9012096b41c4eb3aaf947f6ea429": "0x0000", + "0xc2261276cc9d1f8598ea4b6a74b15c2f57c875e4cff74148e4628f264b974c80": "0x00000000000000000000000000000000", + "0xcd5c1f6df63bc97f4a8ce37f14a50ca74e7b9012096b41c4eb3aaf947f6ea429": "0x0000", + "0xcec5070d609dd3497f72bde07fc96ba04c014e6bf8b8c2c011e7290b85696bb335b80dc19d29879310b8483205ff2e3dd48d4d4ec691d40d176926a9371c86ba497128450cdb7a40": "0xfe2055a032a91826e91e7548f965fa78014ddc062990c7c48acbb2cc0095f63b", + "0xcec5070d609dd3497f72bde07fc96ba04c014e6bf8b8c2c011e7290b85696bb35cae5b30ddee9d1d4ea63b50c3023d2eedb6796866581f3260d1f6fca2c08399d3889ff6cd904220": "0x28e939d13c99847c1f67e499341c204d4d8d490363e09217c64da6f565f0f603", + "0xcec5070d609dd3497f72bde07fc96ba04c014e6bf8b8c2c011e7290b85696bb3b0bcb94a1a7d6a76c42c67a21ef4329adcf99c421b72d95e4b5a90e24beb0a9b1c922a33a3b45244": "0x60264c397759099c732ad2d9c0a5eb550cccacaf0af872b97904954f8ffab60a", + "0xcec5070d609dd3497f72bde07fc96ba04c014e6bf8b8c2c011e7290b85696bb3fca1a7f44baada42667c31d014a1f5ed7bc867583d264062d3c7b15dcf14d487b976cb15292d204c": "0x18d1c8174a3ab43b525290a377844a47b5adb4eda848759022bff04235fe754b", + "0xcec5070d609dd3497f72bde07fc96ba04e7b9012096b41c4eb3aaf947f6ea429": "0x0000", + "0xcec5070d609dd3497f72bde07fc96ba0726380404683fc89e8233450c8aa1950074da5b83e4ecee96175726180fe2055a032a91826e91e7548f965fa78014ddc062990c7c48acbb2cc0095f63b": "0x10b8483205ff2e3dd48d4d4ec691d40d176926a9371c86ba497128450cdb7a40", + "0xcec5070d609dd3497f72bde07fc96ba0726380404683fc89e8233450c8aa19505392698015951df4617572618018d1c8174a3ab43b525290a377844a47b5adb4eda848759022bff04235fe754b": "0x667c31d014a1f5ed7bc867583d264062d3c7b15dcf14d487b976cb15292d204c", + "0xcec5070d609dd3497f72bde07fc96ba0726380404683fc89e8233450c8aa19505b19d91d16f774e6617572618028e939d13c99847c1f67e499341c204d4d8d490363e09217c64da6f565f0f603": "0x4ea63b50c3023d2eedb6796866581f3260d1f6fca2c08399d3889ff6cd904220", + "0xcec5070d609dd3497f72bde07fc96ba0726380404683fc89e8233450c8aa195072e0da17726161ea617572618060264c397759099c732ad2d9c0a5eb550cccacaf0af872b97904954f8ffab60a": "0xc42c67a21ef4329adcf99c421b72d95e4b5a90e24beb0a9b1c922a33a3b45244", + "0xcec5070d609dd3497f72bde07fc96ba088dcde934c658227ee1dfafcd6e16903": "0x1010b8483205ff2e3dd48d4d4ec691d40d176926a9371c86ba497128450cdb7a404ea63b50c3023d2eedb6796866581f3260d1f6fca2c08399d3889ff6cd904220667c31d014a1f5ed7bc867583d264062d3c7b15dcf14d487b976cb15292d204cc42c67a21ef4329adcf99c421b72d95e4b5a90e24beb0a9b1c922a33a3b45244", + "0xcec5070d609dd3497f72bde07fc96ba0e0cdd062e6eaf24295ad4ccfc41d4609": "0x1010b8483205ff2e3dd48d4d4ec691d40d176926a9371c86ba497128450cdb7a40fe2055a032a91826e91e7548f965fa78014ddc062990c7c48acbb2cc0095f63b4ea63b50c3023d2eedb6796866581f3260d1f6fca2c08399d3889ff6cd90422028e939d13c99847c1f67e499341c204d4d8d490363e09217c64da6f565f0f603667c31d014a1f5ed7bc867583d264062d3c7b15dcf14d487b976cb15292d204c18d1c8174a3ab43b525290a377844a47b5adb4eda848759022bff04235fe754bc42c67a21ef4329adcf99c421b72d95e4b5a90e24beb0a9b1c922a33a3b4524460264c397759099c732ad2d9c0a5eb550cccacaf0af872b97904954f8ffab60a", + "0xd57bce545fb382c34570e5dfbf338f5e4e7b9012096b41c4eb3aaf947f6ea429": "0x0000", + "0xd5e1a2fa16732ce6906189438c0a82c64e7b9012096b41c4eb3aaf947f6ea429": "0x0000", + "0xe38f185207498abb5c213d0fb059b3d84e7b9012096b41c4eb3aaf947f6ea429": "0x0000", + "0xe38f185207498abb5c213d0fb059b3d86323ae84c43568be0d1394d5d0d522c4": "0x02000000", + "0xf0c365c3cf59d671eb72da0e7a4113c44e7b9012096b41c4eb3aaf947f6ea429": "0x0000" + }, + "childrenDefault": {} + } + } +} diff --git a/cumulus/polkadot-parachain/chain-specs/asset-hub-kusama.json b/cumulus/polkadot-parachain/chain-specs/asset-hub-kusama.json new file mode 120000 index 000000000000..89a3015b50aa --- /dev/null +++ b/cumulus/polkadot-parachain/chain-specs/asset-hub-kusama.json @@ -0,0 +1 @@ +../../parachains/chain-specs/asset-hub-kusama.json \ No newline at end of file diff --git a/cumulus/polkadot-parachain/chain-specs/asset-hub-polkadot.json b/cumulus/polkadot-parachain/chain-specs/asset-hub-polkadot.json new file mode 120000 index 000000000000..43a1cb41131a --- /dev/null +++ b/cumulus/polkadot-parachain/chain-specs/asset-hub-polkadot.json @@ -0,0 +1 @@ +../../parachains/chain-specs/asset-hub-polkadot.json \ No newline at end of file diff --git a/cumulus/polkadot-parachain/chain-specs/bridge-hub-kusama.json b/cumulus/polkadot-parachain/chain-specs/bridge-hub-kusama.json new file mode 120000 index 000000000000..fc91654c6ff4 --- /dev/null +++ b/cumulus/polkadot-parachain/chain-specs/bridge-hub-kusama.json @@ -0,0 +1 @@ +../../parachains/chain-specs/bridge-hub-kusama.json \ No newline at end of file diff --git a/cumulus/polkadot-parachain/chain-specs/bridge-hub-polkadot.json b/cumulus/polkadot-parachain/chain-specs/bridge-hub-polkadot.json new file mode 120000 index 000000000000..df22d3e88001 --- /dev/null +++ b/cumulus/polkadot-parachain/chain-specs/bridge-hub-polkadot.json @@ -0,0 +1 @@ +../../parachains/chain-specs/bridge-hub-polkadot.json \ No newline at end of file diff --git a/cumulus/polkadot-parachain/chain-specs/collectives-polkadot.json b/cumulus/polkadot-parachain/chain-specs/collectives-polkadot.json new file mode 120000 index 000000000000..afece75567be --- /dev/null +++ b/cumulus/polkadot-parachain/chain-specs/collectives-polkadot.json @@ -0,0 +1 @@ +../../parachains/chain-specs/collectives-polkadot.json \ No newline at end of file From 81060644680c722669b7330d8ad417c95a32f23a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?D=C3=B3nal=20Murray?= Date: Mon, 9 Oct 2023 13:06:25 +0200 Subject: [PATCH 26/78] Remove internal references to DOT and Polkadot in collectives-westend --- cumulus/parachains/common/src/westend.rs | 21 +++++++++++++++++++ .../collectives-westend/src/ambassador/mod.rs | 8 +++---- .../collectives-westend/src/fellowship/mod.rs | 8 +++---- .../collectives-westend/src/lib.rs | 12 +++++------ .../collectives-westend/src/xcm_config.rs | 18 ++++++++-------- 5 files changed, 44 insertions(+), 23 deletions(-) diff --git a/cumulus/parachains/common/src/westend.rs b/cumulus/parachains/common/src/westend.rs index 9d3e0bd1a0e2..895d2ac2305d 100644 --- a/cumulus/parachains/common/src/westend.rs +++ b/cumulus/parachains/common/src/westend.rs @@ -13,6 +13,26 @@ // See the License for the specific language governing permissions and // limitations under the License. +/// Universally recognized accounts. +pub mod account { + use frame_support::PalletId; + + /// Westend treasury pallet id, used to convert into AccountId + pub const WESTEND_TREASURY_PALLET_ID: PalletId = PalletId(*b"py/trsry"); + /// Alliance pallet ID. + /// It is used as a temporarily place to deposit a slashed imbalance + /// before the teleport to the Treasury. + pub const ALLIANCE_PALLET_ID: PalletId = PalletId(*b"py/allia"); + /// Referenda pallet ID. + /// It is used as a temporarily place to deposit a slashed imbalance + /// before the teleport to the Treasury. + pub const REFERENDA_PALLET_ID: PalletId = PalletId(*b"py/refer"); + /// Ambassador Referenda pallet ID. + /// It is used as a temporarily place to deposit a slashed imbalance + /// before the teleport to the Treasury. + pub const AMBASSADOR_REFERENDA_PALLET_ID: PalletId = PalletId(*b"py/amref"); +} + pub mod currency { use polkadot_core_primitives::Balance; use westend_runtime_constants as constants; @@ -21,6 +41,7 @@ pub mod currency { pub const EXISTENTIAL_DEPOSIT: Balance = constants::currency::EXISTENTIAL_DEPOSIT / 10; pub const UNITS: Balance = constants::currency::UNITS; + pub const DOLLARS: Balance = UNITS; // 10_000_000_000 pub const CENTS: Balance = constants::currency::CENTS; pub const MILLICENTS: Balance = constants::currency::MILLICENTS; pub const GRAND: Balance = constants::currency::GRAND; diff --git a/cumulus/parachains/runtimes/collectives/collectives-westend/src/ambassador/mod.rs b/cumulus/parachains/runtimes/collectives/collectives-westend/src/ambassador/mod.rs index b055ffc8abf1..c1d419794190 100644 --- a/cumulus/parachains/runtimes/collectives/collectives-westend/src/ambassador/mod.rs +++ b/cumulus/parachains/runtimes/collectives/collectives-westend/src/ambassador/mod.rs @@ -32,7 +32,7 @@ pub mod origins; mod tracks; use super::*; -use crate::xcm_config::{DotAssetHub, FellowshipAdminBodyId}; +use crate::xcm_config::{FellowshipAdminBodyId, WndAssetHub}; use frame_support::traits::{EitherOf, MapSuccess, TryMapSuccess}; pub use origins::pallet_origins as pallet_ambassador_origins; use origins::pallet_origins::{ @@ -135,7 +135,7 @@ impl pallet_referenda::Config for Runtime { >; type CancelOrigin = EitherOf, EnsureHeadAmbassadorsVoice>; type KillOrigin = EitherOf, EnsureHeadAmbassadorsVoice>; - type Slash = ToParentTreasury; + type Slash = ToParentTreasury; type Votes = pallet_ranked_collective::Votes; type Tally = pallet_ranked_collective::TallyOf; type SubmissionDeposit = SubmissionDeposit; @@ -215,7 +215,7 @@ parameter_types! { pub AmbassadorSalaryLocation: InteriorMultiLocation = PalletInstance(74).into(); } -/// [`PayOverXcm`] setup to pay the Ambassador salary on the AssetHub in DOT. +/// [`PayOverXcm`] setup to pay the Ambassador salary on the AssetHub in WND. pub type AmbassadorSalaryPaymaster = PayOverXcm< AmbassadorSalaryLocation, crate::xcm_config::XcmRouter, @@ -223,7 +223,7 @@ pub type AmbassadorSalaryPaymaster = PayOverXcm< ConstU32<{ 6 * HOURS }>, AccountId, (), - ConvertToValue, + ConvertToValue, AliasesIntoAccountId32<(), AccountId>, >; diff --git a/cumulus/parachains/runtimes/collectives/collectives-westend/src/fellowship/mod.rs b/cumulus/parachains/runtimes/collectives/collectives-westend/src/fellowship/mod.rs index 2a2757ea5ceb..54930544e11a 100644 --- a/cumulus/parachains/runtimes/collectives/collectives-westend/src/fellowship/mod.rs +++ b/cumulus/parachains/runtimes/collectives/collectives-westend/src/fellowship/mod.rs @@ -14,7 +14,7 @@ // You should have received a copy of the GNU General Public License // along with Cumulus. If not, see . -//! The Polkadot Technical Fellowship. +//! The Westend Technical Fellowship. pub(crate) mod migration; mod origins; @@ -23,8 +23,8 @@ use crate::{ impls::ToParentTreasury, weights, xcm_config::{FellowshipAdminBodyId, UsdtAssetHub}, - AccountId, Balance, Balances, FellowshipReferenda, GovernanceLocation, PolkadotTreasuryAccount, - Preimage, Runtime, RuntimeCall, RuntimeEvent, RuntimeOrigin, Scheduler, DAYS, + AccountId, Balance, Balances, FellowshipReferenda, GovernanceLocation, Preimage, Runtime, + RuntimeCall, RuntimeEvent, RuntimeOrigin, Scheduler, WestendTreasuryAccount, DAYS, }; use frame_support::{ parameter_types, @@ -91,7 +91,7 @@ impl pallet_referenda::Config for Runtime { >; type CancelOrigin = Architects; type KillOrigin = Masters; - type Slash = ToParentTreasury; + type Slash = ToParentTreasury; type Votes = pallet_ranked_collective::Votes; type Tally = pallet_ranked_collective::TallyOf; type SubmissionDeposit = ConstU128<0>; diff --git a/cumulus/parachains/runtimes/collectives/collectives-westend/src/lib.rs b/cumulus/parachains/runtimes/collectives/collectives-westend/src/lib.rs index ff16f93d8f54..4dcda356acf8 100644 --- a/cumulus/parachains/runtimes/collectives/collectives-westend/src/lib.rs +++ b/cumulus/parachains/runtimes/collectives/collectives-westend/src/lib.rs @@ -15,13 +15,13 @@ //! # Collectives Parachain //! -//! This parachain is for collectives that serve the Polkadot network. +//! This parachain is for collectives that serve the Westend network. //! Each collective is defined by a specialized (possibly instanced) pallet. //! //! ### Governance //! //! As a system parachain, Collectives defers its governance (namely, its `Root` origin), to -//! its Relay Chain parent, Polkadot. +//! its Relay Chain parent, Westend. //! //! ### Collator Selection //! @@ -84,7 +84,7 @@ use frame_system::{ pub use parachains_common as common; use parachains_common::{ impls::DealWithFees, - polkadot::{account::*, consensus::*, currency::*, fee::WeightToFee}, + westend::{account::*, consensus::*, currency::*, fee::WeightToFee}, AccountId, AuraId, Balance, BlockNumber, Hash, Header, Nonce, Signature, AVERAGE_ON_INITIALIZE_RATIO, DAYS, HOURS, MAXIMUM_BLOCK_WEIGHT, MINUTES, NORMAL_DISPATCH_RATIO, SLOT_DURATION, @@ -501,11 +501,11 @@ pub const MAX_FELLOWS: u32 = ALLIANCE_MAX_MEMBERS; pub const MAX_ALLIES: u32 = 100; parameter_types! { - pub const AllyDeposit: Balance = 1_000 * UNITS; // 1,000 DOT bond to join as an Ally + pub const AllyDeposit: Balance = 1_000 * UNITS; // 1,000 WND bond to join as an Ally // The Alliance pallet account, used as a temporary place to deposit a slashed imbalance // before the teleport to the Treasury. pub AlliancePalletAccount: AccountId = ALLIANCE_PALLET_ID.into_account_truncating(); - pub PolkadotTreasuryAccount: AccountId = POLKADOT_TREASURY_PALLET_ID.into_account_truncating(); + pub WestendTreasuryAccount: AccountId = WESTEND_TREASURY_PALLET_ID.into_account_truncating(); // The number of blocks a member must wait between giving a retirement notice and retiring. // Supposed to be greater than time required to `kick_member` with alliance motion. pub const AllianceRetirementPeriod: BlockNumber = (90 * DAYS) + ALLIANCE_MOTION_DURATION; @@ -518,7 +518,7 @@ impl pallet_alliance::Config for Runtime { type MembershipManager = RootOrAllianceTwoThirdsMajority; type AnnouncementOrigin = RootOrAllianceTwoThirdsMajority; type Currency = Balances; - type Slashed = ToParentTreasury; + type Slashed = ToParentTreasury; type InitializeMembers = AllianceMotion; type MembershipChanged = AllianceMotion; type RetirementPeriod = AllianceRetirementPeriod; diff --git a/cumulus/parachains/runtimes/collectives/collectives-westend/src/xcm_config.rs b/cumulus/parachains/runtimes/collectives/collectives-westend/src/xcm_config.rs index f802073bfbbb..765747c764c3 100644 --- a/cumulus/parachains/runtimes/collectives/collectives-westend/src/xcm_config.rs +++ b/cumulus/parachains/runtimes/collectives/collectives-westend/src/xcm_config.rs @@ -41,8 +41,8 @@ use xcm_executor::{traits::WithOriginFilter, XcmExecutor}; const FELLOWSHIP_ADMIN_INDEX: u32 = 1; parameter_types! { - pub const DotLocation: MultiLocation = MultiLocation::parent(); - pub const RelayNetwork: Option = Some(NetworkId::Polkadot); + pub const WndLocation: MultiLocation = MultiLocation::parent(); + pub const RelayNetwork: Option = Some(NetworkId::Westend); pub RelayChainOrigin: RuntimeOrigin = cumulus_pallet_xcm::Origin::Relay.into(); pub UniversalLocation: InteriorMultiLocation = X2(GlobalConsensus(RelayNetwork::get().unwrap()), Parachain(ParachainInfo::parachain_id().into())); @@ -55,9 +55,9 @@ parameter_types! { location: AssetHub::get(), asset_id: AssetHubUsdtId::get(), }; - pub DotAssetHub: LocatableAssetId = LocatableAssetId { + pub WndAssetHub: LocatableAssetId = LocatableAssetId { location: AssetHub::get(), - asset_id: DotLocation::get().into(), + asset_id: WndLocation::get().into(), }; } @@ -78,7 +78,7 @@ pub type CurrencyTransactor = CurrencyAdapter< // Use this currency: Balances, // Use this currency when it is a fungible asset matching the given location or name: - IsConcrete, + IsConcrete, // Convert an XCM MultiLocation into a local account id: LocationToAccountId, // Our chain's account ID type (we can't get away without mentioning it explicitly): @@ -246,16 +246,16 @@ impl xcm_executor::Config for XcmConfig { type XcmSender = XcmRouter; type AssetTransactor = CurrencyTransactor; type OriginConverter = XcmOriginToTransactDispatchOrigin; - // Collectives does not recognize a reserve location for any asset. Users must teleport DOT + // Collectives does not recognize a reserve location for any asset. Users must teleport WND // where allowed (e.g. with the Relay Chain). type IsReserve = (); - /// Only allow teleportation of DOT. - type IsTeleporter = ConcreteNativeAssetFrom; + /// Only allow teleportation of WND. + type IsTeleporter = ConcreteNativeAssetFrom; type UniversalLocation = UniversalLocation; type Barrier = Barrier; type Weigher = FixedWeightBounds; type Trader = - UsingComponents>; + UsingComponents>; type ResponseHandler = PolkadotXcm; type AssetTrap = PolkadotXcm; type AssetClaims = PolkadotXcm; From 6ea14e39f5423a6ee4d57884dda876ff2d96c9d3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?D=C3=B3nal=20Murray?= Date: Mon, 9 Oct 2023 13:32:21 +0200 Subject: [PATCH 27/78] Rename GluttonWestend to Glutton --- .../parachains/runtimes/glutton/glutton-westend/src/lib.rs | 4 ++-- cumulus/polkadot-parachain/src/chain_spec/glutton.rs | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/cumulus/parachains/runtimes/glutton/glutton-westend/src/lib.rs b/cumulus/parachains/runtimes/glutton/glutton-westend/src/lib.rs index daca57420dde..7e683595c7ce 100644 --- a/cumulus/parachains/runtimes/glutton/glutton-westend/src/lib.rs +++ b/cumulus/parachains/runtimes/glutton/glutton-westend/src/lib.rs @@ -264,7 +264,7 @@ construct_runtime! { CumulusXcm: cumulus_pallet_xcm::{Pallet, Call, Storage, Event, Origin} = 10, // The main stage. - GluttonWestend: pallet_glutton::{Pallet, Call, Storage, Event, Config} = 20, + Glutton: pallet_glutton::{Pallet, Call, Storage, Event, Config} = 20, // Collator support Aura: pallet_aura::{Pallet, Storage, Config} = 30, @@ -321,7 +321,7 @@ extern crate frame_benchmarking; mod benches { define_benchmarks!( [frame_system, SystemBench::] - [pallet_glutton, GluttonWestend] + [pallet_glutton, Glutton] ); } diff --git a/cumulus/polkadot-parachain/src/chain_spec/glutton.rs b/cumulus/polkadot-parachain/src/chain_spec/glutton.rs index 67277c67d47a..bd63ba576940 100644 --- a/cumulus/polkadot-parachain/src/chain_spec/glutton.rs +++ b/cumulus/polkadot-parachain/src/chain_spec/glutton.rs @@ -115,7 +115,7 @@ fn glutton_westend_genesis( ..Default::default() }, parachain_system: Default::default(), - glutton_westend: glutton_westend_runtime::GluttonWestendConfig { + glutton: glutton_westend_runtime::GluttonConfig { compute: Default::default(), storage: Default::default(), trash_data_count: Default::default(), From bf5113365d68350fe4f8e3cec2cba9836a4b8b09 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?D=C3=B3nal=20Murray?= Date: Mon, 9 Oct 2023 13:36:17 +0200 Subject: [PATCH 28/78] Update cumulus/parachains/runtimes/glutton/glutton-westend/src/lib.rs Co-authored-by: joe petrowski <25483142+joepetrowski@users.noreply.github.com> --- cumulus/parachains/runtimes/glutton/glutton-westend/src/lib.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cumulus/parachains/runtimes/glutton/glutton-westend/src/lib.rs b/cumulus/parachains/runtimes/glutton/glutton-westend/src/lib.rs index 7e683595c7ce..5636879a1f33 100644 --- a/cumulus/parachains/runtimes/glutton/glutton-westend/src/lib.rs +++ b/cumulus/parachains/runtimes/glutton/glutton-westend/src/lib.rs @@ -33,7 +33,7 @@ //! ### XCM //! //! Since the main goal of Glutton is solely stress testing, the parachain will -//! only be able receive XCM messages from the relay chain via DMP. This way the +//! only be able receive XCM messages from the Relay Chain via DMP. This way the //! Glutton parachains will be able to listen for upgrades that are coming from //! the Relay chain. From d8b82e30ff26bf735dafb5bc9493a64b0108a82e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?D=C3=B3nal=20Murray?= Date: Tue, 10 Oct 2023 12:26:26 +0200 Subject: [PATCH 29/78] Restore all parachains to polkadot-parachain bin --- cumulus/parachains/common/src/lib.rs | 7 + cumulus/polkadot-parachain/src/cli.rs | 4 +- cumulus/polkadot-parachain/src/command.rs | 270 +++++++++++++++++++++- 3 files changed, 271 insertions(+), 10 deletions(-) diff --git a/cumulus/parachains/common/src/lib.rs b/cumulus/parachains/common/src/lib.rs index cecc4946bcdd..cb2ac1a1e3e4 100644 --- a/cumulus/parachains/common/src/lib.rs +++ b/cumulus/parachains/common/src/lib.rs @@ -58,6 +58,13 @@ mod types { // Aura consensus authority. pub type AuraId = sp_consensus_aura::sr25519::AuthorityId; + // Aura consensus authority used by Asset Hub Polkadot. + // + // Because of registering the authorities with an ed25519 key before switching from Shell + // to Asset Hub Polkadot, we were required to deploy a hotfix that changed Asset Hub Polkadot's + // Aura keys to ed22519. In the future that may change again. + pub type AssetHubPolkadotAuraId = sp_consensus_aura::ed25519::AuthorityId; + // Id used for identifying assets. pub type AssetIdForTrustBackedAssets = u32; } diff --git a/cumulus/polkadot-parachain/src/cli.rs b/cumulus/polkadot-parachain/src/cli.rs index 85dc25631cc1..63e4baf27aeb 100644 --- a/cumulus/polkadot-parachain/src/cli.rs +++ b/cumulus/polkadot-parachain/src/cli.rs @@ -63,9 +63,9 @@ pub enum Subcommand { const AFTER_HELP_EXAMPLE: &str = color_print::cstr!( r#"Examples: - polkadot-parachain --chain asset-hub-westend --sync warp -- --chain polkadot --sync warp + polkadot-parachain --chain asset-hub-polkadot --sync warp -- --chain polkadot --sync warp Launch a warp-syncing full node of the Asset Hub parachain on the Polkadot Relay Chain. - polkadot-parachain --chain asset-hub-westend --sync warp --relay-chain-rpc-url ws://rpc.example.com -- --chain polkadot + polkadot-parachain --chain asset-hub-polkadot --sync warp --relay-chain-rpc-url ws://rpc.example.com -- --chain polkadot Launch a warp-syncing full node of the Asset Hub parachain on the Polkadot Relay Chain. Uses ws://rpc.example.com as remote relay chain node. "# diff --git a/cumulus/polkadot-parachain/src/command.rs b/cumulus/polkadot-parachain/src/command.rs index 0be614077243..91b615cd774a 100644 --- a/cumulus/polkadot-parachain/src/command.rs +++ b/cumulus/polkadot-parachain/src/command.rs @@ -22,7 +22,7 @@ use crate::{ use cumulus_primitives_core::ParaId; use frame_benchmarking_cli::{BenchmarkCmd, SUBSTRATE_REFERENCE_HARDWARE}; use log::info; -use parachains_common::AuraId; +use parachains_common::{AssetHubPolkadotAuraId, AuraId}; use sc_cli::{ ChainSpec, CliConfiguration, DefaultConfigurationValues, ImportParams, KeystoreParams, NetworkParams, Result, SharedParams, SubstrateCli, @@ -40,10 +40,14 @@ enum Runtime { Default, Shell, Seedling, + AssetHubPolkadot, + AssetHubKusama, AssetHubWestend, Penpal(ParaId), ContractsRococo, + CollectivesPolkadot, CollectivesWestend, + Glutton, GluttonWestend, BridgeHub(chain_spec::bridge_hubs::BridgeHubRuntimeType), } @@ -83,12 +87,18 @@ fn runtime(id: &str) -> Runtime { Runtime::Shell } else if id.starts_with("seedling") { Runtime::Seedling + } else if id.starts_with("asset-hub-polkadot") | id.starts_with("statemint") { + Runtime::AssetHubPolkadot + } else if id.starts_with("asset-hub-kusama") | id.starts_with("statemine") { + Runtime::AssetHubKusama } else if id.starts_with("asset-hub-westend") | id.starts_with("westmint") { Runtime::AssetHubWestend } else if id.starts_with("penpal") { Runtime::Penpal(para_id.unwrap_or(ParaId::new(0))) } else if id.starts_with("contracts-rococo") { Runtime::ContractsRococo + } else if id.starts_with("collectives-polkadot") { + Runtime::CollectivesPolkadot } else if id.starts_with("collectives-westend") { Runtime::CollectivesWestend } else if id.starts_with(chain_spec::bridge_hubs::BridgeHubRuntimeType::ID_PREFIX) { @@ -98,6 +108,8 @@ fn runtime(id: &str) -> Runtime { ) } else if id.starts_with("glutton-westend") { Runtime::GluttonWestend + } else if id.starts_with("glutton") { + Runtime::Glutton } else { log::warn!("No specific runtime was recognized for ChainSpec's id: '{}', so Runtime::default() will be used", id); Runtime::default() @@ -127,6 +139,34 @@ fn load_spec(id: &str) -> std::result::Result, String> { "shell" => Box::new(chain_spec::shell::get_shell_chain_spec()), "seedling" => Box::new(chain_spec::seedling::get_seedling_chain_spec()), + // -- Asset Hub Polkadot + "asset-hub-polkadot-dev" | "statemint-dev" => + Box::new(chain_spec::asset_hubs::asset_hub_polkadot_development_config()), + "asset-hub-polkadot-local" | "statemint-local" => + Box::new(chain_spec::asset_hubs::asset_hub_polkadot_local_config()), + // the chain spec as used for generating the upgrade genesis values + "asset-hub-polkadot-genesis" | "statemint-genesis" => + Box::new(chain_spec::asset_hubs::asset_hub_polkadot_config()), + // the shell-based chain spec as used for syncing + "asset-hub-polkadot" | "statemint" => + Box::new(chain_spec::asset_hubs::AssetHubPolkadotChainSpec::from_json_bytes( + &include_bytes!("../chain-specs/asset-hub-polkadot.json")[..], + )?), + + // -- Asset Hub Kusama + "asset-hub-kusama-dev" | "statemine-dev" => + Box::new(chain_spec::asset_hubs::asset_hub_kusama_development_config()), + "asset-hub-kusama-local" | "statemine-local" => + Box::new(chain_spec::asset_hubs::asset_hub_kusama_local_config()), + // the chain spec as used for generating the upgrade genesis values + "asset-hub-kusama-genesis" | "statemine-genesis" => + Box::new(chain_spec::asset_hubs::asset_hub_kusama_config()), + // the shell-based chain spec as used for syncing + "asset-hub-kusama" | "statemine" => + Box::new(chain_spec::asset_hubs::AssetHubKusamaChainSpec::from_json_bytes( + &include_bytes!("../chain-specs/asset-hub-kusama.json")[..], + )?), + // -- Asset Hub Westend "asset-hub-westend-dev" | "westmint-dev" => Box::new(chain_spec::asset_hubs::asset_hub_westend_development_config()), @@ -141,11 +181,15 @@ fn load_spec(id: &str) -> std::result::Result, String> { &include_bytes!("../chain-specs/asset-hub-westend.json")[..], )?), - // -- Westend Collectives - "collectives-westend-dev" => - Box::new(chain_spec::collectives::collectives_westend_development_config()), - "collectives-westend-local" => - Box::new(chain_spec::collectives::collectives_westend_local_config()), + // -- Polkadot Collectives + "collectives-polkadot-dev" => + Box::new(chain_spec::collectives::collectives_polkadot_development_config()), + "collectives-polkadot-local" => + Box::new(chain_spec::collectives::collectives_polkadot_local_config()), + "collectives-polkadot" => + Box::new(chain_spec::collectives::CollectivesPolkadotChainSpec::from_json_bytes( + &include_bytes!("../chain-specs/collectives-polkadot.json")[..], + )?), "collectives-westend" => Box::new(chain_spec::collectives::CollectivesWestendChainSpec::from_json_bytes( &include_bytes!("../chain-specs/collectives-westend.json")[..], @@ -172,6 +216,14 @@ fn load_spec(id: &str) -> std::result::Result, String> { .load_config()?, // -- Penpall + "penpal-kusama" => Box::new(chain_spec::penpal::get_penpal_chain_spec( + para_id.expect("Must specify parachain id"), + "kusama-local", + )), + "penpal-polkadot" => Box::new(chain_spec::penpal::get_penpal_chain_spec( + para_id.expect("Must specify parachain id"), + "polkadot-local", + )), "penpal-westend" => Box::new(chain_spec::penpal::get_penpal_chain_spec( para_id.expect("Must specify parachain id"), "westend-local", @@ -189,6 +241,18 @@ fn load_spec(id: &str) -> std::result::Result, String> { para_id.expect("Must specify parachain id"), )), + // -- Glutton + "glutton-kusama-dev" => Box::new(chain_spec::glutton::glutton_development_config( + para_id.expect("Must specify parachain id"), + )), + "glutton-kusama-local" => Box::new(chain_spec::glutton::glutton_local_config( + para_id.expect("Must specify parachain id"), + )), + // the chain spec as used for generating the upgrade genesis values + "glutton-kusama-genesis" => Box::new(chain_spec::glutton::glutton_config( + para_id.expect("Must specify parachain id"), + )), + // -- Fallback (generic chainspec) "" => { log::warn!("No ChainSpec.id specified, so using default one, based on rococo-parachain runtime"); @@ -199,9 +263,17 @@ fn load_spec(id: &str) -> std::result::Result, String> { path => { let path: PathBuf = path.into(); match path.runtime() { + Runtime::AssetHubPolkadot => Box::new( + chain_spec::asset_hubs::AssetHubPolkadotChainSpec::from_json_file(path)?, + ), + Runtime::AssetHubKusama => + Box::new(chain_spec::asset_hubs::AssetHubKusamaChainSpec::from_json_file(path)?), Runtime::AssetHubWestend => Box::new( chain_spec::asset_hubs::AssetHubWestendChainSpec::from_json_file(path)?, ), + Runtime::CollectivesPolkadot => Box::new( + chain_spec::collectives::CollectivesPolkadotChainSpec::from_json_file(path)?, + ), Runtime::CollectivesWestend => Box::new( chain_spec::collectives::CollectivesWestendChainSpec::from_json_file(path)?, ), @@ -217,6 +289,8 @@ fn load_spec(id: &str) -> std::result::Result, String> { Box::new(chain_spec::penpal::PenpalChainSpec::from_json_file(path)?), Runtime::GluttonWestend => Box::new(chain_spec::glutton::GluttonChainSpec::from_json_file(path)?), + Runtime::Glutton => + Box::new(chain_spec::glutton::GluttonChainSpec::from_json_file(path)?), Runtime::Default => Box::new( chain_spec::rococo_parachain::RococoParachainChainSpec::from_json_file(path)?, ), @@ -227,15 +301,27 @@ fn load_spec(id: &str) -> std::result::Result, String> { /// Extracts the normalized chain id and parachain id from the input chain id. /// (H/T to Phala for the idea) -/// E.g. "penpal-westend-2004" yields ("penpal-westend", Some(2004)) +/// E.g. "penpal-kusama-2004" yields ("penpal-kusama", Some(2004)) fn extract_parachain_id(id: &str) -> (&str, &str, Option) { + const KUSAMA_TEST_PARA_PREFIX: &str = "penpal-kusama-"; + const POLKADOT_TEST_PARA_PREFIX: &str = "penpal-polkadot-"; const WESTEND_TEST_PARA_PREFIX: &str = "penpal-westend-"; + const GLUTTON_PARA_DEV_PREFIX: &str = "glutton-kusama-dev-"; + const GLUTTON_PARA_LOCAL_PREFIX: &str = "glutton-kusama-local-"; + const GLUTTON_PARA_GENESIS_PREFIX: &str = "glutton-kusama-genesis-"; + const GLUTTON_PARA_DEV_PREFIX: &str = "glutton-westend-dev-"; const GLUTTON_PARA_LOCAL_PREFIX: &str = "glutton-westend-local-"; const GLUTTON_PARA_GENESIS_PREFIX: &str = "glutton-westend-genesis-"; - let (norm_id, orig_id, para) = if let Some(suffix) = id.strip_prefix(WESTEND_TEST_PARA_PREFIX) { + let (norm_id, orig_id, para) = if let Some(suffix) = id.strip_prefix(KUSAMA_TEST_PARA_PREFIX) { + let para_id: u32 = suffix.parse().expect("Invalid parachain-id suffix"); + (&id[..KUSAMA_TEST_PARA_PREFIX.len() - 1], id, Some(para_id)) + } else if let Some(suffix) = id.strip_prefix(POLKADOT_TEST_PARA_PREFIX) { + let para_id: u32 = suffix.parse().expect("Invalid parachain-id suffix"); + (&id[..POLKADOT_TEST_PARA_PREFIX.len() - 1], id, Some(para_id)) + } else if let Some(suffix) = id.strip_prefix(WESTEND_TEST_PARA_PREFIX) { let para_id: u32 = suffix.parse().expect("Invalid parachain-id suffix"); (&id[..WESTEND_TEST_PARA_PREFIX.len() - 1], id, Some(para_id)) } else if let Some(suffix) = id.strip_prefix(GLUTTON_PARA_DEV_PREFIX) { @@ -330,6 +416,13 @@ impl SubstrateCli for RelayChainCli { macro_rules! construct_partials { ($config:expr, |$partials:ident| $code:expr) => { match $config.chain_spec.runtime() { + Runtime::AssetHubKusama => { + let $partials = new_partial::( + &$config, + crate::service::aura_build_import_queue::<_, AuraId>, + )?; + $code + }, Runtime::AssetHubWestend => { let $partials = new_partial::( &$config, @@ -337,7 +430,32 @@ macro_rules! construct_partials { )?; $code }, + Runtime::AssetHubPolkadot => { + let $partials = new_partial::( + &$config, + crate::service::aura_build_import_queue::<_, AssetHubPolkadotAuraId>, + )?; + $code + }, Runtime::BridgeHub(bridge_hub_runtime_type) => match bridge_hub_runtime_type { + chain_spec::bridge_hubs::BridgeHubRuntimeType::Polkadot | + chain_spec::bridge_hubs::BridgeHubRuntimeType::PolkadotLocal | + chain_spec::bridge_hubs::BridgeHubRuntimeType::PolkadotDevelopment => { + let $partials = new_partial::( + &$config, + crate::service::aura_build_import_queue::<_, AuraId>, + )?; + $code + }, + chain_spec::bridge_hubs::BridgeHubRuntimeType::Kusama | + chain_spec::bridge_hubs::BridgeHubRuntimeType::KusamaLocal | + chain_spec::bridge_hubs::BridgeHubRuntimeType::KusamaDevelopment => { + let $partials = new_partial::( + &$config, + crate::service::aura_build_import_queue::<_, AuraId>, + )?; + $code + }, chain_spec::bridge_hubs::BridgeHubRuntimeType::Westend => { let $partials = new_partial::( &$config, @@ -363,6 +481,13 @@ macro_rules! construct_partials { $code }, }, + Runtime::CollectivesPolkadot => { + let $partials = new_partial::( + &$config, + crate::service::aura_build_import_queue::<_, AuraId>, + )?; + $code + }, Runtime::CollectivesWestend => { let $partials = new_partial::( &$config, @@ -405,6 +530,13 @@ macro_rules! construct_partials { )?; $code }, + Runtime::Glutton => { + let $partials = new_partial::( + &$config, + crate::service::shell_build_import_queue, + )?; + $code + }, } }; } @@ -423,6 +555,36 @@ macro_rules! construct_async_run { { $( $code )* }.map(|v| (v, task_manager)) }) }, + Runtime::AssetHubKusama => { + runner.async_run(|$config| { + let $components = new_partial::( + &$config, + crate::service::aura_build_import_queue::<_, AuraId>, + )?; + let task_manager = $components.task_manager; + { $( $code )* }.map(|v| (v, task_manager)) + }) + }, + Runtime::AssetHubPolkadot => { + runner.async_run(|$config| { + let $components = new_partial::( + &$config, + crate::service::aura_build_import_queue::<_, AssetHubPolkadotAuraId>, + )?; + let task_manager = $components.task_manager; + { $( $code )* }.map(|v| (v, task_manager)) + }) + }, + Runtime::CollectivesPolkadot | Runtime::CollectivesWestend => { + runner.async_run(|$config| { + let $components = new_partial::( + &$config, + crate::service::aura_build_import_queue::<_, AuraId>, + )?; + let task_manager = $components.task_manager; + { $( $code )* }.map(|v| (v, task_manager)) + }) + }, Runtime::CollectivesWestend => { runner.async_run(|$config| { let $components = new_partial::( @@ -465,6 +627,32 @@ macro_rules! construct_async_run { }, Runtime::BridgeHub(bridge_hub_runtime_type) => { match bridge_hub_runtime_type { +chain_spec::bridge_hubs::BridgeHubRuntimeType::Polkadot | + chain_spec::bridge_hubs::BridgeHubRuntimeType::PolkadotLocal | + chain_spec::bridge_hubs::BridgeHubRuntimeType::PolkadotDevelopment => { + runner.async_run(|$config| { + let $components = new_partial::( + &$config, + crate::service::aura_build_import_queue::<_, AuraId>, + )?; + + let task_manager = $components.task_manager; + { $( $code )* }.map(|v| (v, task_manager)) + }) + }, + chain_spec::bridge_hubs::BridgeHubRuntimeType::Kusama | + chain_spec::bridge_hubs::BridgeHubRuntimeType::KusamaLocal | + chain_spec::bridge_hubs::BridgeHubRuntimeType::KusamaDevelopment => { + runner.async_run(|$config| { + let $components = new_partial::( + &$config, + crate::service::aura_build_import_queue::<_, AuraId>, + )?; + + let task_manager = $components.task_manager; + { $( $code )* }.map(|v| (v, task_manager)) + }) + }, chain_spec::bridge_hubs::BridgeHubRuntimeType::Westend => { runner.async_run(|$config| { let $components = new_partial::( @@ -525,6 +713,16 @@ macro_rules! construct_async_run { let task_manager = $components.task_manager; { $( $code )* }.map(|v| (v, task_manager)) }) + }, + Runtime::Glutton => { + runner.async_run(|$config| { + let $components = new_partial::( + &$config, + crate::service::shell_build_import_queue, + )?; + let task_manager = $components.task_manager; + { $( $code )* }.map(|v| (v, task_manager)) + }) } } }} @@ -647,6 +845,8 @@ pub fn run() -> Result<()> { // that both file paths exist, the node will exit, as the user must decide (by // deleting one path) the information that they want to use as their DB. let old_name = match config.chain_spec.id() { +"asset-hub-polkadot" => Some("statemint"), + "asset-hub-kusama" => Some("statemine"), "asset-hub-westend" => Some("westmint"), "asset-hub-rococo" => Some("rockmine"), _ => None, @@ -702,6 +902,20 @@ pub fn run() -> Result<()> { info!("Is collating: {}", if config.role.is_authority() { "yes" } else { "no" }); match config.chain_spec.runtime() { +Runtime::AssetHubPolkadot => crate::service::start_generic_aura_node::< + asset_hub_polkadot_runtime::RuntimeApi, + AssetHubPolkadotAuraId, + >(config, polkadot_config, collator_options, id, hwbench) + .await + .map(|r| r.0) + .map_err(Into::into), + Runtime::AssetHubKusama => crate::service::start_generic_aura_node::< + asset_hub_kusama_runtime::RuntimeApi, + AuraId, + >(config, polkadot_config, collator_options, id, hwbench) + .await + .map(|r| r.0) + .map_err(Into::into), Runtime::AssetHubWestend => crate::service::start_generic_aura_node::< asset_hub_westend_runtime::RuntimeApi, AuraId, @@ -709,6 +923,14 @@ pub fn run() -> Result<()> { .await .map(|r| r.0) .map_err(Into::into), + Runtime::CollectivesPolkadot => + crate::service::start_generic_aura_node::< + collectives_polkadot_runtime::RuntimeApi, + AuraId, + >(config, polkadot_config, collator_options, id, hwbench) + .await + .map(|r| r.0) + .map_err(Into::into), Runtime::CollectivesWestend => crate::service::start_generic_aura_node::< collectives_westend_runtime::RuntimeApi, @@ -750,6 +972,24 @@ pub fn run() -> Result<()> { .map(|r| r.0) .map_err(Into::into), Runtime::BridgeHub(bridge_hub_runtime_type) => match bridge_hub_runtime_type { +chain_spec::bridge_hubs::BridgeHubRuntimeType::Polkadot | + chain_spec::bridge_hubs::BridgeHubRuntimeType::PolkadotLocal | + chain_spec::bridge_hubs::BridgeHubRuntimeType::PolkadotDevelopment => + crate::service::start_generic_aura_node::< + chain_spec::bridge_hubs::polkadot::RuntimeApi, + AuraId, + >(config, polkadot_config, collator_options, id, hwbench) + .await + .map(|r| r.0), + chain_spec::bridge_hubs::BridgeHubRuntimeType::Kusama | + chain_spec::bridge_hubs::BridgeHubRuntimeType::KusamaLocal | + chain_spec::bridge_hubs::BridgeHubRuntimeType::KusamaDevelopment => + crate::service::start_generic_aura_node::< + chain_spec::bridge_hubs::kusama::RuntimeApi, + AuraId, + >(config, polkadot_config, collator_options, id, hwbench) + .await + .map(|r| r.0), chain_spec::bridge_hubs::BridgeHubRuntimeType::Westend => crate::service::start_generic_aura_node::< chain_spec::bridge_hubs::westend::RuntimeApi, @@ -795,6 +1035,14 @@ pub fn run() -> Result<()> { .await .map(|r| r.0) .map_err(Into::into), + Runtime::Glutton => + crate::service::start_basic_lookahead_node::< + glutton_runtime::RuntimeApi, + AuraId, + >(config, polkadot_config, collator_options, id, hwbench) + .await + .map(|r| r.0) + .map_err(Into::into), } }) }, @@ -1027,6 +1275,12 @@ mod tests { ); assert_eq!(Runtime::Default, path.runtime()); + let path = store_configuration( + &temp_dir, + Box::new(crate::chain_spec::asset_hubs::asset_hub_kusama_local_config()), + ); + assert_eq!(Runtime::AssetHubKusama, path.runtime()); + let path = store_configuration( &temp_dir, Box::new(crate::chain_spec::contracts::contracts_rococo_local_config()), From d290f3448614687979a4b41ac2e2b870699abedc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?D=C3=B3nal=20Murray?= Date: Wed, 11 Oct 2023 11:51:07 +0200 Subject: [PATCH 30/78] fmt --- cumulus/polkadot-parachain/src/command.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cumulus/polkadot-parachain/src/command.rs b/cumulus/polkadot-parachain/src/command.rs index 91b615cd774a..4ac7953c7316 100644 --- a/cumulus/polkadot-parachain/src/command.rs +++ b/cumulus/polkadot-parachain/src/command.rs @@ -845,7 +845,7 @@ pub fn run() -> Result<()> { // that both file paths exist, the node will exit, as the user must decide (by // deleting one path) the information that they want to use as their DB. let old_name = match config.chain_spec.id() { -"asset-hub-polkadot" => Some("statemint"), + "asset-hub-polkadot" => Some("statemint"), "asset-hub-kusama" => Some("statemine"), "asset-hub-westend" => Some("westmint"), "asset-hub-rococo" => Some("rockmine"), From 0b101d794d864f64b1a6183e95c2314acb4cf4a1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?D=C3=B3nal=20Murray?= Date: Wed, 11 Oct 2023 13:01:34 +0200 Subject: [PATCH 31/78] Add emulated tests back in for asset hub westend --- .../src/tests/reserve_transfer.rs | 13 +- .../asset-hub-westend/src/tests/send.rs | 55 ++---- .../src/tests/set_xcm_versions.rs | 38 ++-- .../asset-hub-westend/src/tests/teleport.rs | 168 +++++++++--------- .../emulated/common/src/constants.rs | 2 +- .../emulated/common/src/impls.rs | 114 ++++++++---- .../emulated/common/src/lib.rs | 16 +- 7 files changed, 195 insertions(+), 211 deletions(-) diff --git a/cumulus/parachains/integration-tests/emulated/assets/asset-hub-westend/src/tests/reserve_transfer.rs b/cumulus/parachains/integration-tests/emulated/assets/asset-hub-westend/src/tests/reserve_transfer.rs index 51fac43be125..8f8b7a7dde77 100644 --- a/cumulus/parachains/integration-tests/emulated/assets/asset-hub-westend/src/tests/reserve_transfer.rs +++ b/cumulus/parachains/integration-tests/emulated/assets/asset-hub-westend/src/tests/reserve_transfer.rs @@ -35,11 +35,8 @@ fn relay_origin_assertions(t: RelayToSystemParaTest) { ); } -fn system_para_dest_assertions_incomplete(_t: RelayToSystemParaTest) { - AssetHubWestend::assert_dmp_queue_incomplete( - Some(Weight::from_parts(1_000_000_000, 0)), - Some(Error::UntrustedReserveLocation), - ); +fn system_para_dest_assertions(_t: RelayToSystemParaTest) { + AssetHubWestend::assert_dmp_queue_error(Error::WeightNotComputable); } fn system_para_to_relay_assertions(_t: SystemParaToRelayTest) { @@ -178,7 +175,7 @@ fn limited_reserve_transfer_native_asset_from_relay_to_system_para_fails() { let receiver_balance_before = test.receiver.balance; test.set_assertion::(relay_origin_assertions); - test.set_assertion::(system_para_dest_assertions_incomplete); + test.set_assertion::(system_para_dest_assertions); test.set_dispatchable::(relay_limited_reserve_transfer_assets); test.assert(); @@ -237,7 +234,7 @@ fn reserve_transfer_native_asset_from_relay_to_system_para_fails() { let receiver_balance_before = test.receiver.balance; test.set_assertion::(relay_origin_assertions); - test.set_assertion::(system_para_dest_assertions_incomplete); + test.set_assertion::(system_para_dest_assertions); test.set_dispatchable::(relay_reserve_transfer_assets); test.assert(); @@ -352,6 +349,7 @@ fn limited_reserve_transfer_asset_from_system_para_to_para() { ASSET_MIN_BALANCE, true, AssetHubWestendSender::get(), + Some(Weight::from_parts(1_019_445_000, 200_000)), ASSET_MIN_BALANCE * 1000000, ); @@ -387,6 +385,7 @@ fn reserve_transfer_asset_from_system_para_to_para() { ASSET_MIN_BALANCE, true, AssetHubWestendSender::get(), + Some(Weight::from_parts(1_019_445_000, 200_000)), ASSET_MIN_BALANCE * 1000000, ); diff --git a/cumulus/parachains/integration-tests/emulated/assets/asset-hub-westend/src/tests/send.rs b/cumulus/parachains/integration-tests/emulated/assets/asset-hub-westend/src/tests/send.rs index 424d222bef38..e603af685bb5 100644 --- a/cumulus/parachains/integration-tests/emulated/assets/asset-hub-westend/src/tests/send.rs +++ b/cumulus/parachains/integration-tests/emulated/assets/asset-hub-westend/src/tests/send.rs @@ -16,52 +16,16 @@ use crate::*; /// Relay Chain should be able to execute `Transact` instructions in System Parachain -/// when `OriginKind::Superuser` and signer is `sudo` +/// when `OriginKind::Superuser`. #[test] -fn send_transact_sudo_from_relay_to_system_para_works() { - // Init tests variables - let root_origin = ::RuntimeOrigin::root(); - let system_para_destination = Westend::child_location_of(AssetHubWestend::para_id()).into(); - let asset_owner: AccountId = AssetHubWestendSender::get().into(); - let xcm = AssetHubWestend::force_create_asset_xcm( - OriginKind::Superuser, +fn send_transact_as_superuser_from_relay_to_system_para_works() { + AssetHubWestend::force_create_asset_from_relay_as_root( ASSET_ID, - asset_owner.clone(), + ASSET_MIN_BALANCE, true, - 1000, - ); - // Send XCM message from Relay Chain - Westend::execute_with(|| { - assert_ok!(::XcmPallet::send( - root_origin, - bx!(system_para_destination), - bx!(xcm), - )); - - Westend::assert_xcm_pallet_sent(); - }); - - // Receive XCM message in Assets Parachain - AssetHubWestend::execute_with(|| { - type RuntimeEvent = ::RuntimeEvent; - - AssetHubWestend::assert_dmp_queue_complete(Some(Weight::from_parts( - 1_019_445_000, - 200_000, - ))); - - assert_expected_events!( - AssetHubWestend, - vec![ - RuntimeEvent::Assets(pallet_assets::Event::ForceCreated { asset_id, owner }) => { - asset_id: *asset_id == ASSET_ID, - owner: *owner == asset_owner, - }, - ] - ); - - assert!(::Assets::asset_exists(ASSET_ID)); - }); + AssetHubWestendSender::get().into(), + Some(Weight::from_parts(1_019_445_000, 200_000)), + ) } /// Parachain should be able to send XCM paying its fee with sufficient asset @@ -78,6 +42,7 @@ fn send_xcm_from_para_to_system_para_paying_fee_with_assets_works() { ASSET_MIN_BALANCE, true, para_sovereign_account.clone(), + Some(Weight::from_parts(1_019_445_000, 200_000)), ASSET_MIN_BALANCE * 1000000000, ); @@ -119,8 +84,8 @@ fn send_xcm_from_para_to_system_para_paying_fee_with_assets_works() { type RuntimeEvent = ::RuntimeEvent; AssetHubWestend::assert_xcmp_queue_success(Some(Weight::from_parts( - 2_176_414_000, - 203_593, + 16_290_336_000, + 562_893, ))); assert_expected_events!( diff --git a/cumulus/parachains/integration-tests/emulated/assets/asset-hub-westend/src/tests/set_xcm_versions.rs b/cumulus/parachains/integration-tests/emulated/assets/asset-hub-westend/src/tests/set_xcm_versions.rs index 2720095aac00..2133d5e5fb7c 100644 --- a/cumulus/parachains/integration-tests/emulated/assets/asset-hub-westend/src/tests/set_xcm_versions.rs +++ b/cumulus/parachains/integration-tests/emulated/assets/asset-hub-westend/src/tests/set_xcm_versions.rs @@ -47,32 +47,22 @@ fn relay_sets_system_para_xcm_supported_version() { #[test] fn system_para_sets_relay_xcm_supported_version() { // Init test variables - let sudo_origin = ::RuntimeOrigin::root(); let parent_location = AssetHubWestend::parent_location(); - let system_para_destination: VersionedMultiLocation = - Westend::child_location_of(AssetHubWestend::para_id()).into(); - let call = ::RuntimeCall::PolkadotXcm(pallet_xcm::Call::< - ::Runtime, - >::force_xcm_version { - location: bx!(parent_location), - version: XCM_V3, - }) - .encode() - .into(); - let origin_kind = OriginKind::Superuser; - - let xcm = xcm_transact_unpaid_execution(call, origin_kind); - - // System Parachain sets supported version for Relay Chain throught it - Westend::execute_with(|| { - assert_ok!(::XcmPallet::send( - sudo_origin, - bx!(system_para_destination), - bx!(xcm), - )); + let force_xcm_version_call = + ::RuntimeCall::PolkadotXcm(pallet_xcm::Call::< + ::Runtime, + >::force_xcm_version { + location: bx!(parent_location), + version: XCM_V3, + }) + .encode() + .into(); - Westend::assert_xcm_pallet_sent(); - }); + // System Parachain sets supported version for Relay Chain through it + Westend::send_unpaid_transact_to_parachain_as_root( + AssetHubWestend::para_id(), + force_xcm_version_call, + ); // System Parachain receive the XCM message AssetHubWestend::execute_with(|| { diff --git a/cumulus/parachains/integration-tests/emulated/assets/asset-hub-westend/src/tests/teleport.rs b/cumulus/parachains/integration-tests/emulated/assets/asset-hub-westend/src/tests/teleport.rs index 8de73a7420c6..d94fd4b97d9f 100644 --- a/cumulus/parachains/integration-tests/emulated/assets/asset-hub-westend/src/tests/teleport.rs +++ b/cumulus/parachains/integration-tests/emulated/assets/asset-hub-westend/src/tests/teleport.rs @@ -97,7 +97,7 @@ fn para_origin_assertions(t: SystemParaToRelayTest) { fn para_dest_assertions(t: RelayToSystemParaTest) { type RuntimeEvent = ::RuntimeEvent; - AssetHubWestend::assert_dmp_queue_complete(Some(Weight::from_parts(164_733_000, 0))); + AssetHubWestend::assert_dmp_queue_complete(Some(Weight::from_parts(164_793_000, 3593))); assert_expected_events!( AssetHubWestend, @@ -142,16 +142,15 @@ fn system_para_limited_teleport_assets(t: SystemParaToRelayTest) -> DispatchResu ) } -// TODO: Uncomment when https://github.com/paritytech/polkadot/pull/7424 is merged -// fn system_para_teleport_assets(t: SystemParaToRelayTest) -> DispatchResult { -// ::PolkadotXcm::teleport_assets( -// t.signed_origin, -// bx!(t.args.dest), -// bx!(t.args.beneficiary), -// bx!(t.args.assets), -// t.args.fee_asset_item, -// ) -// } +fn system_para_teleport_assets(t: SystemParaToRelayTest) -> DispatchResult { + ::PolkadotXcm::teleport_assets( + t.signed_origin, + bx!(t.args.dest.into()), + bx!(t.args.beneficiary.into()), + bx!(t.args.assets.into()), + t.args.fee_asset_item, + ) +} /// Limited Teleport of native asset from Relay Chain to the System Parachain should work #[test] @@ -286,78 +285,75 @@ fn teleport_native_assets_from_relay_to_system_para_works() { assert!(receiver_balance_after > receiver_balance_before); } -// TODO: Uncomment when https://github.com/paritytech/polkadot/pull/7424 is merged - -// Right now it is failing in the Relay Chain with a -// `messageQueue.ProcessingFailed` event `error: Unsupported`. -// The reason is the `Weigher` in `pallet_xcm` is not properly calculating the `remote_weight` -// and it cause an `Overweight` error in `AllowTopLevelPaidExecutionFrom` barrier - -// /// Teleport of native asset from System Parachains to the Relay Chain -// /// should work when there is enough balance in Relay Chain's `CheckAccount` -// #[test] -// fn teleport_native_assets_back_from_system_para_to_relay_works() { -// // Dependency - Relay Chain's `CheckAccount` should have enough balance -// teleport_native_assets_from_relay_to_system_para_works(); - -// // Init values for Relay Chain -// let amount_to_send: Balance = ASSET_HUB_WESTEND_ED * 1000; -// let test_args = TestContext { -// sender: AssetHubWestendSender::get(), -// receiver: WestendReceiver::get(), -// args: get_para_dispatch_args(amount_to_send), -// }; - -// let mut test = SystemParaToRelayTest::new(test_args); - -// let sender_balance_before = test.sender.balance; -// let receiver_balance_before = test.receiver.balance; - -// test.set_assertion::(para_origin_assertions); -// test.set_assertion::(relay_dest_assertions); -// test.set_dispatchable::(system_para_teleport_assets); -// test.assert(); - -// let sender_balance_after = test.sender.balance; -// let receiver_balance_after = test.receiver.balance; - -// // Sender's balance is reduced -// assert_eq!(sender_balance_before - amount_to_send, sender_balance_after); -// // Receiver's balance is increased -// assert!(receiver_balance_after > receiver_balance_before); -// } - -// /// Teleport of native asset from System Parachain to Relay Chain -// /// shouldn't work when there is not enough balance in Relay Chain's `CheckAccount` -// #[test] -// fn teleport_native_assets_from_system_para_to_relay_fails() { -// // Init values for Relay Chain -// let amount_to_send: Balance = ASSET_HUB_WESTEND_ED * 1000; -// let assets = (Parent, amount_to_send).into(); -// -// let test_args = TestContext { -// sender: AssetHubWestendSender::get(), -// receiver: WestendReceiver::get(), -// args: system_para_test_args(amount_to_send), -// assets, -// None -// }; - -// let mut test = SystemParaToRelayTest::new(test_args); - -// let sender_balance_before = test.sender.balance; -// let receiver_balance_before = test.receiver.balance; - -// test.set_assertion::(para_origin_assertions); -// test.set_assertion::(relay_dest_assertions); -// test.set_dispatchable::(system_para_teleport_assets); -// test.assert(); - -// let sender_balance_after = test.sender.balance; -// let receiver_balance_after = test.receiver.balance; - -// // Sender's balance is reduced -// assert_eq!(sender_balance_before - amount_to_send, sender_balance_after); -// // Receiver's balance does not change -// assert_eq!(receiver_balance_after, receiver_balance_before); -// } +/// Teleport of native asset from System Parachains to the Relay Chain +/// should work when there is enough balance in Relay Chain's `CheckAccount` +#[test] +fn teleport_native_assets_back_from_system_para_to_relay_works() { + // Dependency - Relay Chain's `CheckAccount` should have enough balance + teleport_native_assets_from_relay_to_system_para_works(); + + // Init values for Relay Chain + let amount_to_send: Balance = ASSET_HUB_WESTEND_ED * 1000; + let destination = AssetHubWestend::parent_location(); + let beneficiary_id = WestendReceiver::get(); + let assets = (Parent, amount_to_send).into(); + + let test_args = TestContext { + sender: AssetHubWestendSender::get(), + receiver: WestendReceiver::get(), + args: system_para_test_args(destination, beneficiary_id, amount_to_send, assets, None), + }; + + let mut test = SystemParaToRelayTest::new(test_args); + + let sender_balance_before = test.sender.balance; + let receiver_balance_before = test.receiver.balance; + + test.set_assertion::(para_origin_assertions); + test.set_assertion::(relay_dest_assertions); + test.set_dispatchable::(system_para_teleport_assets); + test.assert(); + + let sender_balance_after = test.sender.balance; + let receiver_balance_after = test.receiver.balance; + + // Sender's balance is reduced + assert_eq!(sender_balance_before - amount_to_send, sender_balance_after); + // Receiver's balance is increased + assert!(receiver_balance_after > receiver_balance_before); +} + +/// Teleport of native asset from System Parachain to Relay Chain +/// shouldn't work when there is not enough balance in Relay Chain's `CheckAccount` +#[test] +fn teleport_native_assets_from_system_para_to_relay_fails() { + // Init values for Relay Chain + let amount_to_send: Balance = ASSET_HUB_WESTEND_ED * 1000; + let destination = AssetHubWestend::parent_location(); + let beneficiary_id = WestendReceiver::get(); + let assets = (Parent, amount_to_send).into(); + + let test_args = TestContext { + sender: AssetHubWestendSender::get(), + receiver: WestendReceiver::get(), + args: system_para_test_args(destination, beneficiary_id, amount_to_send, assets, None), + }; + + let mut test = SystemParaToRelayTest::new(test_args); + + let sender_balance_before = test.sender.balance; + let receiver_balance_before = test.receiver.balance; + + test.set_assertion::(para_origin_assertions); + test.set_assertion::(relay_dest_assertions_fail); + test.set_dispatchable::(system_para_teleport_assets); + test.assert(); + + let sender_balance_after = test.sender.balance; + let receiver_balance_after = test.receiver.balance; + + // Sender's balance is reduced + assert_eq!(sender_balance_before - amount_to_send, sender_balance_after); + // Receiver's balance does not change + assert_eq!(receiver_balance_after, receiver_balance_before); +} diff --git a/cumulus/parachains/integration-tests/emulated/common/src/constants.rs b/cumulus/parachains/integration-tests/emulated/common/src/constants.rs index 5d0e9be72d04..7082bee7a4b5 100644 --- a/cumulus/parachains/integration-tests/emulated/common/src/constants.rs +++ b/cumulus/parachains/integration-tests/emulated/common/src/constants.rs @@ -386,7 +386,7 @@ pub mod asset_hub_westend { } } -// Asset Hub Kusama +// Asset Hub Rococo pub mod asset_hub_rococo { use super::*; pub const PARA_ID: u32 = 1000; diff --git a/cumulus/parachains/integration-tests/emulated/common/src/impls.rs b/cumulus/parachains/integration-tests/emulated/common/src/impls.rs index 024ae65c51ee..bb4c9d102e98 100644 --- a/cumulus/parachains/integration-tests/emulated/common/src/impls.rs +++ b/cumulus/parachains/integration-tests/emulated/common/src/impls.rs @@ -54,7 +54,7 @@ pub use polkadot_runtime_parachains::{ inclusion::{AggregateMessageOrigin, UmpQueueId}, }; pub use xcm::{ - prelude::{OriginKind, Outcome, VersionedXcm, Weight}, + prelude::{MultiLocation, OriginKind, Outcome, VersionedXcm, Weight}, v3::Error, DoubleEncoded, }; @@ -80,21 +80,11 @@ impl From for LaneIdWrapper { type BridgeHubRococoRuntime = ::Runtime; type BridgeHubWococoRuntime = ::Runtime; -// TODO: uncomment when https://github.com/paritytech/polkadot-sdk/pull/1352 is merged -// type BridgeHubPolkadotRuntime = ::Runtime; -// type BridgeHubKusamaRuntime = ::Runtime; - pub type RococoWococoMessageHandler = BridgeHubMessageHandler; pub type WococoRococoMessageHandler = BridgeHubMessageHandler; -// TODO: uncomment when https://github.com/paritytech/polkadot-sdk/pull/1352 is merged -// pub type PolkadotKusamaMessageHandler -// = BridgeHubMessageHandler; -// pub type KusamaPolkadotMessageHandler -// = BridgeHubMessageHandler; - impl BridgeMessageHandler for BridgeHubMessageHandler where S: Config, @@ -356,6 +346,37 @@ macro_rules! impl_hrmp_channels_helpers_for_relay_chain { }; } +#[macro_export] +macro_rules! impl_send_transact_helpers_for_relay_chain { + ( $chain:ident ) => { + $crate::impls::paste::paste! { + impl $chain { + /// A root origin (as governance) sends `xcm::Transact` with `UnpaidExecution` and encoded `call` to child parachain. + pub fn send_unpaid_transact_to_parachain_as_root( + recipient: $crate::impls::ParaId, + call: $crate::impls::DoubleEncoded<()> + ) { + use $crate::impls::{bx, Chain, RelayChain}; + + ::execute_with(|| { + let root_origin = ::RuntimeOrigin::root(); + let destination: $crate::impls::MultiLocation = ::child_location_of(recipient); + let xcm = $crate::impls::xcm_transact_unpaid_execution(call, $crate::impls::OriginKind::Superuser); + + // Send XCM `Transact` + $crate::impls::assert_ok!(]>::XcmPallet::send( + root_origin, + bx!(destination.into()), + bx!(xcm), + )); + Self::assert_xcm_pallet_sent(); + }); + } + } + } + }; +} + #[macro_export] macro_rules! impl_accounts_helpers_for_parachain { ( $chain:ident ) => { @@ -503,6 +524,22 @@ macro_rules! impl_assert_events_helpers_for_parachain { ); } + /// Asserts a XCM from Relay Chain is executed with error + pub fn assert_dmp_queue_error( + expected_error: $crate::impls::Error, + ) { + $crate::impls::assert_expected_events!( + Self, + vec![ + [<$chain RuntimeEvent>]::DmpQueue($crate::impls::cumulus_pallet_dmp_queue::Event::ExecutedDownward { + outcome: $crate::impls::Outcome::Error(error), .. + }) => { + error: *error == expected_error, + }, + ] + ); + } + /// Asserts a XCM from another Parachain is completely executed pub fn assert_xcmp_queue_success(expected_weight: Option<$crate::impls::Weight>) { $crate::impls::assert_expected_events!( @@ -600,53 +637,58 @@ macro_rules! impl_assets_helpers_for_parachain { min_balance: u128, is_sufficient: bool, asset_owner: $crate::impls::AccountId, + dmp_weight_threshold: Option<$crate::impls::Weight>, amount_to_mint: u128, ) { - use $crate::impls::{bx, Chain, RelayChain, Parachain, Inspect, TestExt}; - // Init values for Relay Chain - let root_origin = <$relay_chain as Chain>::RuntimeOrigin::root(); - let destination = <$relay_chain>::child_location_of(<$chain>::para_id()); - let xcm = Self::force_create_asset_xcm( - $crate::impls::OriginKind::Superuser, + use $crate::impls::Chain; + + // Force create asset + Self::force_create_asset_from_relay_as_root( id, - asset_owner.clone(), - is_sufficient, min_balance, + is_sufficient, + asset_owner.clone(), + dmp_weight_threshold ); - <$relay_chain>::execute_with(|| { - $crate::impls::assert_ok!(<$relay_chain as [<$relay_chain Pallet>]>::XcmPallet::send( - root_origin, - bx!(destination.into()), - bx!(xcm), - )); + // Mint asset for System Parachain's sender + let signed_origin = ::RuntimeOrigin::signed(asset_owner.clone()); + Self::mint_asset(signed_origin, id, asset_owner, amount_to_mint); + } - <$relay_chain>::assert_xcm_pallet_sent(); - }); + /// Relay Chain sends `Transact` instruction with `force_create_asset` to Parachain with `Assets` instance of `pallet_assets` . + pub fn force_create_asset_from_relay_as_root( + id: u32, + min_balance: u128, + is_sufficient: bool, + asset_owner: $crate::impls::AccountId, + dmp_weight_threshold: Option<$crate::impls::Weight>, + ) { + use $crate::impls::{Parachain, Inspect, TestExt}; - Self::execute_with(|| { - Self::assert_dmp_queue_complete(Some($crate::impls::Weight::from_parts(1_019_445_000, 200_000))); + <$relay_chain>::send_unpaid_transact_to_parachain_as_root( + Self::para_id(), + Self::force_create_asset_call(id, asset_owner.clone(), is_sufficient, min_balance), + ); + // Receive XCM message in Assets Parachain + Self::execute_with(|| { type RuntimeEvent = <$chain as $crate::impls::Chain>::RuntimeEvent; + Self::assert_dmp_queue_complete(dmp_weight_threshold); + $crate::impls::assert_expected_events!( Self, vec![ - // Asset has been created RuntimeEvent::Assets($crate::impls::pallet_assets::Event::ForceCreated { asset_id, owner }) => { asset_id: *asset_id == id, - owner: *owner == asset_owner.clone(), + owner: *owner == asset_owner, }, ] ); assert!(]>::Assets::asset_exists(id.into())); }); - - let signed_origin = ::RuntimeOrigin::signed(asset_owner.clone()); - - // Mint asset for System Parachain's sender - Self::mint_asset(signed_origin, id, asset_owner, amount_to_mint); } } } diff --git a/cumulus/parachains/integration-tests/emulated/common/src/lib.rs b/cumulus/parachains/integration-tests/emulated/common/src/lib.rs index 468c92fd4347..6c55ac23d00c 100644 --- a/cumulus/parachains/integration-tests/emulated/common/src/lib.rs +++ b/cumulus/parachains/integration-tests/emulated/common/src/lib.rs @@ -140,7 +140,7 @@ decl_test_parachains! { Balances: bridge_hub_rococo_runtime::Balances, } }, - // AssetHubRococo (aka Rockmine/Rockmine2) mirrors AssetHubKusama + // AssetHubRococo (aka Rockmine/Rockmine2) mirrors AssetHubWestend pub struct AssetHubRococo { genesis = asset_hub_rococo::genesis(), on_init = { @@ -250,30 +250,22 @@ decl_test_bridges! { target = BridgeHubRococo, handler = WococoRococoMessageHandler } - // TODO: uncomment when https://github.com/paritytech/polkadot-sdk/pull/1352 is merged - // pub struct PolkadotKusamaMockBridge { - // source = BridgeHubPolkadot, - // target = BridgeHubKusama, - // handler = PolkadotKusamaMessageHandler - // }, - // pub struct KusamaPolkadotMockBridge { - // source = BridgeHubKusama, - // target = BridgeHubPolkadot, - // handler = KusamaPolkadotMessageHandler - // } } // Westend implementation impl_accounts_helpers_for_relay_chain!(Westend); impl_assert_events_helpers_for_relay_chain!(Westend); +impl_send_transact_helpers_for_relay_chain!(Westend); // Rococo implementation impl_accounts_helpers_for_relay_chain!(Rococo); impl_assert_events_helpers_for_relay_chain!(Rococo); +impl_send_transact_helpers_for_relay_chain!(Rococo); // Wococo implementation impl_accounts_helpers_for_relay_chain!(Wococo); impl_assert_events_helpers_for_relay_chain!(Wococo); +impl_send_transact_helpers_for_relay_chain!(Wococo); // AssetHubWestend implementation impl_accounts_helpers_for_parachain!(AssetHubWestend); From 4d9c91264d4b37e625fcca951ec3962f0d3649db Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?D=C3=B3nal=20Murray?= Date: Wed, 11 Oct 2023 13:01:59 +0200 Subject: [PATCH 32/78] Add integration tests for asset-hub-westend --- .../assets/asset-hub-westend/0_xcm/0_init.yml | 145 +++++++ .../assets/asset-hub-westend/0_xcm/1_dmp.yml | 263 ++++++++++++ .../assets/asset-hub-westend/0_xcm/2_ump.yml | 194 +++++++++ .../0_xcm/3_force_hrmp-open-channels.yml | 120 ++++++ .../assets/asset-hub-westend/0_xcm/4_hrmp.yml | 388 ++++++++++++++++++ .../e2e/assets/asset-hub-westend/config.toml | 72 ++++ 6 files changed, 1182 insertions(+) create mode 100644 cumulus/parachains/integration-tests/e2e/assets/asset-hub-westend/0_xcm/0_init.yml create mode 100644 cumulus/parachains/integration-tests/e2e/assets/asset-hub-westend/0_xcm/1_dmp.yml create mode 100644 cumulus/parachains/integration-tests/e2e/assets/asset-hub-westend/0_xcm/2_ump.yml create mode 100644 cumulus/parachains/integration-tests/e2e/assets/asset-hub-westend/0_xcm/3_force_hrmp-open-channels.yml create mode 100644 cumulus/parachains/integration-tests/e2e/assets/asset-hub-westend/0_xcm/4_hrmp.yml create mode 100644 cumulus/parachains/integration-tests/e2e/assets/asset-hub-westend/config.toml diff --git a/cumulus/parachains/integration-tests/e2e/assets/asset-hub-westend/0_xcm/0_init.yml b/cumulus/parachains/integration-tests/e2e/assets/asset-hub-westend/0_xcm/0_init.yml new file mode 100644 index 000000000000..a6d3fb3ec834 --- /dev/null +++ b/cumulus/parachains/integration-tests/e2e/assets/asset-hub-westend/0_xcm/0_init.yml @@ -0,0 +1,145 @@ +--- +settings: + chains: + relay_chain: &relay_chain + wsPort: 9800 + assets_parachain: &assets_parachain + wsPort: 9810 + paraId: &ap_id 1000 + penpal_parachain: &penpal_parachain + wsPort: 9820 + paraId: &pp_id 2000 + variables: + common: + xcm_version: &xcm_version '3' + require_weight_at_most: &weight_at_most {refTime: 1000000000, proofSize: 200000} + weight_threshold: &weight_threshold { refTime: [10, 10], proofSize: [10, 10] } + chains: + relay_chain: + signer: &rc_signer //Alice + assets_parachain_destination: &ap_dest { v3: { 0, interior: { x1: { parachain: *ap_id }}}} + penpal_parachain: + signer: &pp_signer //Alice + decodedCalls: + ap_force_xcm_version: + chain: *assets_parachain + pallet: polkadotXcm + call: forceXcmVersion + args: [ + { # location + parents: 1, + interior: Here + }, + *xcm_version # xcmVersion + ] + +tests: + - name: Initialize Chains + its: + - name: XCM supported versions between chains + actions: + - extrinsics: # Relay Chain sets supported version for Asset Parachain + - chain: *relay_chain + sudo: true + signer: *rc_signer + pallet: xcmPallet + call: forceXcmVersion + args: [ + { # location + parents: 0, + interior: { + X1: { + Parachain: *ap_id + } + } + }, + *xcm_version # xcmVersion + ] + events: + - name: sudo.Sudid + result: { sudoResult: Ok } + - name: xcmPallet.SupportedVersionChanged + result: { location: { parents: 0, interior: { X1: { Parachain: *ap_id }}}, version: *xcm_version } + - extrinsics: # Relay Chain sets supported version for Penpal Parachain + - chain: *relay_chain + sudo: true + signer: *rc_signer + pallet: xcmPallet + call: forceXcmVersion + args: [ + { # location + parents: 0, + interior: { + X1: { + Parachain: *pp_id + } + } + }, + *xcm_version # xcmVersion + ] + events: + - name: sudo.Sudid + result: { sudoResult: Ok } + - name: xcmPallet.SupportedVersionChanged + result: { location: { parents: 0, interior: { X1: { Parachain: *pp_id }}}, version: *xcm_version } + - extrinsics: # Asset Parachain sets supported version for Relay Chain through it + - chain: *relay_chain + signer: *rc_signer + sudo: true + pallet: xcmPallet + call: send + args: [ + *ap_dest, # destination + { + v3: [ #message + { + UnpaidExecution: { + weightLimit: { + limited: { + refTime: 3200000000, + proofSize: 200000 + } + } + } + }, + { + Transact: { + originKind: Superuser, + requireWeightAtMost: *weight_at_most, + call: $ap_force_xcm_version + } + } + ] + } + ] + events: + - name: sudo.Sudid + result: { sudoResult: Ok } + - name: xcmPallet.Sent + - name: dmpQueue.ExecutedDownward + chain: *assets_parachain + threshold: *weight_threshold + result: { + outcome: { Complete: { refTime: '1,019,210,000', proofSize: '200,000' }} + } + - name: polkadotXcm.SupportedVersionChanged + chain: *assets_parachain + result: { location: { parents: 1, interior: Here }, version: *xcm_version } + - extrinsics: # Penpal Parachain sets supported version for Relay Chain + - chain: *penpal_parachain + signer: *pp_signer + sudo: true + pallet: polkadotXcm + call: forceXcmVersion + args: [ + { # location + parents: 1, + interior: Here + }, + *xcm_version # xcmVersion + ] + events: + - name: sudo.Sudid + result: { sudoResult: Ok } + - name: polkadotXcm.SupportedVersionChanged + result: { location: { parents: 1, interior: Here}, version: *xcm_version } diff --git a/cumulus/parachains/integration-tests/e2e/assets/asset-hub-westend/0_xcm/1_dmp.yml b/cumulus/parachains/integration-tests/e2e/assets/asset-hub-westend/0_xcm/1_dmp.yml new file mode 100644 index 000000000000..36b296f3eb1f --- /dev/null +++ b/cumulus/parachains/integration-tests/e2e/assets/asset-hub-westend/0_xcm/1_dmp.yml @@ -0,0 +1,263 @@ +--- +settings: + chains: + relay_chain: &relay_chain + wsPort: 9800 + assets_parachain: &assets_parachain + wsPort: 9810 + paraId: &ap_id 1000 + variables: + common: + weight_threshold: &weight_threshold { refTime: [10, 10], proofSize: [10, 10] } + chains: + relay_chain: + signer: &rc_signer //Alice + wallet: &rc_wallet HNZata7iMYWmk5RvZRTiAsSDhV8366zq2YGb3tLH5Upf74F + assets_parachain_destination: &ap_dest { v3: { parents: 0, interior: { x1: { parachain: *ap_id }}}} + assets_parachain_account: &ap_acc '0xd43593c715fdd31c61141abd04a99fd6822c8558854ccde39a5684e7a56da27d' + assets_parachain_beneficiary: &ap_benf {v3: { parents: 0, interior: { x1: { accountId32: { id: *ap_acc }}}}} + ksm: &rc_ksm { concrete: { parents: 0, interior: { here: true }}} + amount: &amount 1000000000000 + ksm_fungible: &rc_ksm_fungible { id: *rc_ksm, fun: { fungible: *amount }} + require_weight_at_most: &rc_weight_at_most {refTime: 1000000000, proofSize: 200000} + assets_parachain_account: + wallet: &ap_wallet HNZata7iMYWmk5RvZRTiAsSDhV8366zq2YGb3tLH5Upf74F + asset_id: &asset_id 1 + asset_min_balance: &asset_ed 1000 + decodedCalls: + force_create_asset: + chain: *assets_parachain + pallet: assets + call: forceCreate + args: [ + *asset_id, + { Id: *ap_wallet }, # owner + true, # isSufficient + *asset_ed # minBalance + ] + +tests: + - name: DMP + its: [] + describes: + - name: xcmPallet.limitedTeleportAssets + before: &before_get_balances + - name: Get the balances of the Relay Chain's sender & Assets Parachain's receiver + actions: + - queries: + balance_rc_sender_before: + chain: *relay_chain + pallet: system + call: account + args: [ *rc_wallet ] + balance_ap_receiver_before: + chain: *assets_parachain + pallet: system + call: account + args: [ *ap_wallet ] + its: + - name: Should teleport native assets from the Relay Chain to the Assets Parachain + actions: + - extrinsics: + - chain: *relay_chain + signer: *rc_signer + pallet: xcmPallet + call: limitedTeleportAssets + args: [ + *ap_dest, # destination + *ap_benf, # beneficiary + { v3: [ *rc_ksm_fungible ] }, # assets + 0, # feeAssetItem + { unlimited: true } # weightLimit + ] + events: + - name: xcmPallet.Attempted + threshold: *weight_threshold + result: { outcome: { Complete: { refTime: '3,000,000,000', proofSize: 0 }}} + - name: dmpQueue.ExecutedDownward + chain: *assets_parachain + threshold: *weight_threshold + result: { outcome: { Complete: { refTime: '166,944,000', proofSize: 0 }}} + - queries: + balance_rc_sender_after: + chain: *relay_chain + pallet: system + call: account + args: [ *rc_wallet ] + balance_ap_receiver_after: + chain: *assets_parachain + pallet: system + call: account + args: [ *ap_wallet ] + + - name: Should reduce the balance of the sender + actions: + - asserts: + balanceDecreased: + args: [ + { + balances: { + before: $balance_rc_sender_before, + after: $balance_rc_sender_after, + }, + amount: *amount + } + ] + + - name: Should increase the balance of the receiver + actions: + - asserts: + balanceIncreased: + args: [ + { + balances: { + before: $balance_ap_receiver_before, + after: $balance_ap_receiver_after, + } + } + ] + + - name: xcmPallet.send | Superuser - Transact(assets.forceCreate) + its: + - name: Relay Chain Superuser account SHOULD be able to execute a XCM Transact instruction in the Assets Parachain + actions: + - extrinsics: + - chain: *relay_chain + signer: *rc_signer + sudo: true + pallet: xcmPallet + call: send + args: [ + *ap_dest, # destination + { + v3: [ #message + { + UnpaidExecution: { + weightLimit: Unlimited + } + }, + { + Transact: { + originType: Superuser, + requireWeightAtMost: *rc_weight_at_most, + call: $force_create_asset + } + } + ] + } + ] + events: + - name: xcmPallet.Sent + - name: dmpQueue.ExecutedDownward + chain: *assets_parachain + threshold: *weight_threshold + result: { outcome: { Complete: { refTime: '1,014,103,000', proofSize: '200,000' }}} + - queries: + forced_created_asset: + chain: *assets_parachain + pallet: assets + call: asset + args: [ *asset_id ] + - asserts: + isSome: + args: [ $forced_created_asset ] + + - name: xcmPallet.send | Native - Transact(assets.forceCreate) + its: + - name: Relay Chain Native account SHOULD NOT be able to execute a XCM Transact instruction in the Assets Parachain + actions: + - extrinsics: + - chain: *relay_chain + signer: *rc_signer + pallet: xcmPallet + call: send + args: [ + *ap_dest, # destination + { + v3: [ #message + { + UnpaidExecution: { + weightLimit: Unlimited + } + }, + { + Transact: { + originType: Native, + requireWeightAtMost: *rc_weight_at_most, + call: $force_create_asset + } + } + ] + } + ] + events: + - name: system.ExtrinsicFailed + result: { dispatchError: BadOrigin } + + - name: xcmPallet.limitedReserveTransferAssets + before: *before_get_balances + its: + - name: SHOULD NOT reserved transfer native assets from the Relay Chain to the Assets Parachain + actions: + - extrinsics: + - chain: *relay_chain + signer: *rc_signer + pallet: xcmPallet + call: limitedReserveTransferAssets + args: [ + *ap_dest, # destination + *ap_benf, # beneficiary + { v3: [ *rc_ksm_fungible ] }, # assets + 0, # feeAssetItem + { unlimited: true } # weightLimit + ] + events: + - name: xcmPallet.Attempted + threshold: *weight_threshold + result: { outcome: { Complete: { refTime: '2,000,000,000', proofSize: 0 }}} + - name: dmpQueue.ExecutedDownward + chain: *assets_parachain + threshold: *weight_threshold + result: { + outcome: { + Incomplete: [ + { refTime: '1,000,000,000', proofSize: 0 }, + UntrustedReserveLocation + ] + } + } + - queries: + balance_rc_sender_after: + chain: *relay_chain + pallet: system + call: account + args: [ *rc_wallet ] + balance_ap_receiver_after: + chain: *assets_parachain + pallet: system + call: account + args: [ *ap_wallet ] + + - name: Should reduce the balance of the sender + actions: + - asserts: + balanceDecreased: + args: [ + { + balances: { + before: $balance_rc_sender_before, + after: $balance_rc_sender_after, + }, + amount: *amount + } + ] + + - name: Should keep the balance of the receiver + actions: + - asserts: + equal: + args: + [ + $balance_ap_receiver_before, + $balance_ap_receiver_after + ] diff --git a/cumulus/parachains/integration-tests/e2e/assets/asset-hub-westend/0_xcm/2_ump.yml b/cumulus/parachains/integration-tests/e2e/assets/asset-hub-westend/0_xcm/2_ump.yml new file mode 100644 index 000000000000..fa84d4b006a7 --- /dev/null +++ b/cumulus/parachains/integration-tests/e2e/assets/asset-hub-westend/0_xcm/2_ump.yml @@ -0,0 +1,194 @@ +--- +settings: + chains: + relay_chain: &relay_chain + wsPort: 9800 + assets_parachain: &assets_parachain + wsPort: 9810 + paraId: &ap_id 1000 + variables: + common: + amount: &amount 1000000000000 + require_weight_at_most: &weight_at_most {refTime: 1000000000, proofSize: 0} + weight_threshold: &weight_threshold { refTime: [10, 10], proofSize: [10, 10] } + chains: + relay_chain: + signer: &rc_signer //Alice + wallet: &rc_wallet HNZata7iMYWmk5RvZRTiAsSDhV8366zq2YGb3tLH5Upf74F + assets_parachain_destination: &ap_dest { v3: { 0, interior: { x1: { parachain: *ap_id }}}} + assets_parachain_account: &ap_acc '0xd43593c715fdd31c61141abd04a99fd6822c8558854ccde39a5684e7a56da27d' + assets_parachain_beneficiary: &ap_benf {v3: { parents: 0, interior: { x1: { accountId32: { id: *ap_acc }}}}} + ksm: &rc_ksm { concrete: { 0, interior: { here: true }}} + ksm_fungible: &rc_ksm_fungible { id: *rc_ksm, fun: { fungible: *amount }} + assets_parachain_account: + signer: &ap_signer //Alice + wallet: &ap_wallet HNZata7iMYWmk5RvZRTiAsSDhV8366zq2YGb3tLH5Upf74F + relay_chain_destination: &rc_dest { v3: { parents: 1, interior: { here: true }}} + assets_parachain_account: &rc_acc '0xd43593c715fdd31c61141abd04a99fd6822c8558854ccde39a5684e7a56da27d' + relay_chain_beneficiary: &rc_benf {v3: { parents: 0, interior: { x1: { accountId32: { id: *rc_acc }}}}} + ksm: &ap_ksm { concrete: { parents: 1, interior: { here: true }}} + ksm_fungible: &ap_ksm_fungible { id: *ap_ksm, fun: { fungible: *amount }} + decodedCalls: + system_remark: + chain: *relay_chain + pallet: system + call: remark + args: [ 0x0011 ] + +tests: + - name: UMP + describes: + - name: polkadotXcm.limitedTeleportAssets + before: + - name: DEPENDENCY | Do a 'limitedTeleportAssets' from the Relay Chain to the Assets Parachain to have funds to send them back + actions: + - extrinsics: + - chain: *relay_chain + signer: *rc_signer + pallet: xcmPallet + call: limitedTeleportAssets + args: [ + *ap_dest, # destination + *ap_benf, # beneficiary + { v3: [ *rc_ksm_fungible ] }, # assets + 0, # feeAssetItem + { unlimited: true } # weightLimit + ] + events: + - name: xcmPallet.Attempted + threshold: *weight_threshold + result: { outcome: { Complete: { refTime: '3,000,000,000', proofSize: 0 }}} + - name: dmpQueue.ExecutedDownward + chain: *assets_parachain + threshold: *weight_threshold + result: { outcome: { Complete: { refTime: '166,944,000', proofSize: 0 }}} + + - name: Get the balances of the Assets Parachain's sender & Relay Chain's receiver + actions: + - queries: + balance_ap_sender_before: + chain: *assets_parachain + pallet: system + call: account + args: [ *ap_wallet ] + balance_rc_receiver_before: + chain: *relay_chain + pallet: system + call: account + args: [ *rc_wallet ] + + its: + - name: Should be able to teleport native assets back from Assets Parachain to the Relay Chain + actions: + - extrinsics: + - chain: *assets_parachain + signer: *ap_signer + pallet: polkadotXcm + call: limitedTeleportAssets + args: [ + *rc_dest, # destination + *rc_benf, # beneficiary + { v3: [ *ap_ksm_fungible ] }, # assets + 0, # feeAssetItem + { unlimited: true } # weightLimit + ] + events: + - name: polkadotXcm.Attempted + threshold: *weight_threshold + result: { outcome: { Complete: { refTime: '533,283,000', proofSize: '7,096' }}} + - name: messageQueue.Processed + chain: *relay_chain + threshold: *weight_threshold + result: { origin: { Ump: { Para: '1,000' } }, weightUsed: { refTime: '4,000,000,000', proofSize: '0' }, success: true } + - queries: + balance_ap_sender_after: + chain: *assets_parachain + pallet: system + call: account + args: [ *ap_wallet ] + balance_rc_receiver_after: + chain: *relay_chain + pallet: system + call: account + args: [ *rc_wallet ] + + - name: Should reduce the balance of the sender + actions: + - asserts: + balanceDecreased: + args: [ + { + balances: { + before: $balance_ap_sender_before, + after: $balance_ap_sender_after, + }, + amount: *amount + } + ] + + - name: Should increase the balance of the receiver + actions: + - asserts: + balanceIncreased: + args: [ + { + balances: { + before: $balance_rc_receiver_before, + after: $balance_rc_receiver_after, + } + } + ] + + - name: polkadotXcm.send | Native - Transact(system.remark) + its: + - name: Assets Parachain SHOULD NOT be able to dispatch 'send' call + actions: + - extrinsics: + - chain: *assets_parachain + signer: *ap_signer + pallet: polkadotXcm + call: send + args: [ + *rc_dest, # destination + { + v3: [ #message + { + UnpaidExecution: { + weightLimit: Unlimited + } + }, + { + Transact: { + originType: Native, + requireWeightAtMost: *weight_at_most, + call: $system_remark + } + } + ] + } + ] + events: + - name: system.ExtrinsicFailed + attributes: + - type: SpRuntimeDispatchError + value: BadOrigin + + - name: polkadotXcm.limitedReserveTransferAssets + its: + - name: Should NOT be able to reserve transfer native assets from the Assets Parachain to the Relay Chain + actions: + - extrinsics: + - chain: *assets_parachain + signer: *ap_signer + pallet: polkadotXcm + call: limitedReserveTransferAssets + args: [ + *rc_dest, # destination + *rc_benf, # beneficiary + { v3: [ *ap_ksm_fungible ] }, # assets + 0, # feeAssetItem + { unlimited: true } # weightLimit + ] + events: + - name: polkadotXcm.Attempted + result: { outcome: { Error: Barrier }} diff --git a/cumulus/parachains/integration-tests/e2e/assets/asset-hub-westend/0_xcm/3_force_hrmp-open-channels.yml b/cumulus/parachains/integration-tests/e2e/assets/asset-hub-westend/0_xcm/3_force_hrmp-open-channels.yml new file mode 100644 index 000000000000..ecf344a073b4 --- /dev/null +++ b/cumulus/parachains/integration-tests/e2e/assets/asset-hub-westend/0_xcm/3_force_hrmp-open-channels.yml @@ -0,0 +1,120 @@ +--- +settings: + chains: + relay_chain: &relay_chain + wsPort: 9800 + assets_parachain: + wsPort: 9810 + paraId: &ap_id 1000 + penpal_parachain: + wsPort: 9820 + paraId: &pp_id 2000 + variables: + common: + amount: &amount 2000000000000 + hrmp_channels: + proposed_max_capacity: &max_capacity 8 + proposed_max_message_size: &max_message_size 8192 + channel: &channel { + maxCapacity: *max_capacity, + maxTotalSize: *max_message_size, + maxMessageSize: *max_message_size, + msgCount: 0, + totalSize: 0, + mqcHead: null, + senderDeposit: 0, + recipientDeposit: 0 + } + chains: + relay_chain: + signer: &rc_signer //Alice + assets_parachain_account: + sovereign_account: &ap_sovereign 5Ec4AhPZk8STuex8Wsi9TwDtJQxKqzPJRCH7348Xtcs9vZLJ + penpal_parachain: + sovereign_account: &pp_sovereign F7fq1jMZkfuCuoMTyiEVAP2DMpMt18WopgBqTJznLihLNbZ + +tests: + - name: HRMP + beforeEach: + - name: DEPENDENCY | Penpal Parachain Sovereign account in the Relay Chain needs to be funded + actions: + - extrinsics: + - chain: *relay_chain + signer: *rc_signer + pallet: balances + call: transfer + args: [ + *pp_sovereign, # destination + *amount, # value + ] + events: + - name: balances.Transfer + + - name: DEPENDENCY | Assets Parachain Sovereign account in the Relay Chain needs to be funded + actions: + - extrinsics: + - chain: *relay_chain + signer: *rc_signer + pallet: balances + call: transfer + args: [ + *ap_sovereign, # destination + *amount, # value + ] + events: + - name: balances.Transfer + describes: + - name: hrmp.hrmpInitOpenChannel (Penpal Parachain → Assets Parachain) + its: + - name: Open Penpal Parachain to Assets Parachain + actions: + - extrinsics: + - chain: *relay_chain + signer: *rc_signer + sudo: true + pallet: hrmp + call: forceOpenHrmpChannel + args: [ + *pp_id, + *ap_id, + *max_capacity, + *max_message_size + ] + events: + - name: sudo.Sudid + result: { sudoResult: Ok } + - name: hrmp.HrmpChannelForceOpened + - name: hrmp.hrmpInitOpenChannel (Assets Parachain → PenPal Parachain) + its: + - name: Open Assets Parachain to PenPal Parachain + actions: + - extrinsics: + - chain: *relay_chain + signer: *rc_signer + sudo: true + pallet: hrmp + call: forceOpenHrmpChannel + args: [ + *ap_id, + *pp_id, + *max_capacity, + *max_message_size + ] + events: + - name: sudo.Sudid + result: { sudoResult: Ok } + - name: hrmp.HrmpChannelForceOpened + - name: hrmp.forceProcessHrmpOpen (make sure all the channels are open) + its: + - name: Make sure all the pending channels are open + actions: + - extrinsics: + - chain: *relay_chain + signer: *rc_signer + sudo: true + pallet: hrmp + call: forceProcessHrmpOpen + args: [ 2 ] + events: + - name: sudo.Sudid + result: { sudoResult: Ok } diff --git a/cumulus/parachains/integration-tests/e2e/assets/asset-hub-westend/0_xcm/4_hrmp.yml b/cumulus/parachains/integration-tests/e2e/assets/asset-hub-westend/0_xcm/4_hrmp.yml new file mode 100644 index 000000000000..681af698c16d --- /dev/null +++ b/cumulus/parachains/integration-tests/e2e/assets/asset-hub-westend/0_xcm/4_hrmp.yml @@ -0,0 +1,388 @@ +--- +# Note: This tests depends on the 3_hrmp-open-channels.yml for opening channels, otherwise teleports aren't going to +# work. +settings: + chains: + relay_chain: &relay_chain + wsPort: 9800 + assets_parachain: &assets_parachain + wsPort: 9810 + paraId: &ap_id 1000 + penpal_parachain: &penpal_parachain + wsPort: 9820 + paraId: &pp_id 2000 + variables: + common: + mint_amount: &mint_amount 1000000000000 + amount: &amount 1000000000000 + require_weight_at_most: &weight_at_most {refTime: 1200000000, proofSize: 20000} + amount_to_send: &amount_to_send 500000000000 + weight_threshold: &weight_threshold { refTime: [10, 10], proofSize: [10, 10] } + chains: + relay_chain: + signer: &rc_signer //Alice + assets_parachain_destination: &ap_dest { v3: { 0, interior: { x1: { parachain: *ap_id }}}} + assets_parachain_dest_routed: &ap_dest_routed { v3: { parents: 1, interior: { x1: { parachain: *ap_id } }}} + assets_parachain_account: + signer: &ap_signer //Alice + wallet: &ap_wallet 15oF4uVJwmo4TdGW7VfQxNLavjCXviqxT9S1MgbjMNHr6Sp5 + asset_id: &asset_id 2 + assets_pallet_id: &assets_pallet_id 50 + asset_min_balance: &asset_ed 1000 + penpal_parachain_destination: &pp_dest { v3: { parents: 1, interior: { x1: { parachain: *pp_id } }}} + ksm: &ap_ksm { concrete: { parents: 1, interior: { here: true }}} + ksm_fungible: &ap_ksm_fungible { id: *ap_ksm, fun: { fungible: *amount }} + suff_asset: &suff_asset { concrete: { parents: 0, interior: { x2: [ { PalletInstance: *assets_pallet_id }, { GeneralIndex: *asset_id } ] }}} + suff_asset_fail: &suff_asset_fail { concrete: { parents: 0, interior: { x2: [ { PalletInstance: *assets_pallet_id }, { GeneralIndex: 3 } ] }}} + suff_asset_fungible_fail: &ap_suff_asset_fungible_fail { id: *suff_asset_fail, fun: { fungible: 200000000000 }} + penpal_parachain: + sovereign_account: &pp_sovereign_sibl 13cKp89Msu7M2PiaCuuGr1BzAsD5V3vaVbDMs3YtjMZHdGwR + signer: &pp_signer //Alice + penpal_parachain_account: &pp_acc '0xd43593c715fdd31c61141abd04a99fd6822c8558854ccde39a5684e7a56da27d' + decodedCalls: + force_create_asset: + chain: *assets_parachain + pallet: assets + call: forceCreate + args: [ + *asset_id, + { Id: *ap_wallet }, # owner + true, # isSufficient + *asset_ed # minBalance + ] + force_create_asset2: + chain: *assets_parachain + pallet: assets + call: forceCreate + args: [ + *asset_id, + { Id: *ap_wallet }, # owner + true, # isSufficient + *asset_ed # minBalance + ] + +tests: + - name: HRMP + describes: + - name: polkadotXcm.limitedReserveTransferAssets (Asset) | Assets Parachain -> Penpal Parachain + before: + - name: DEPENDENCY | A sufficient Asset should exist in the Assets Parachain + actions: + - extrinsics: + - chain: *relay_chain + signer: *rc_signer + sudo: true + pallet: xcmPallet + call: send + args: [ + *ap_dest, # destination + { + v3: [ #message + { + UnpaidExecution: { + weightLimit: Unlimited + } + }, + { + SetTopic: '0x0123456789012345678901234567891201234567890123456789012345678912' + }, + { + Transact: { + originKind: Superuser, + requireWeightAtMost: *weight_at_most, + call: $force_create_asset + } + } + ] + } + ] + events: + - name: xcmPallet.Sent + - name: dmpQueue.ExecutedDownward + chain: *assets_parachain + threshold: *weight_threshold + result: { outcome: { Complete: { refTime: '1,216,703,000', proofSize: '20,000' }}} + - queries: + forced_created_asset: + chain: *assets_parachain + pallet: assets + call: asset + args: [ *asset_id ] + - asserts: + isSome: + args: [ $forced_created_asset ] + + - name: DEPENDENCY | Some Assets should be minted for the sender + actions: + - extrinsics: + - chain: *assets_parachain + signer: *ap_signer + pallet: assets + call: mint + args: [ + *asset_id, + *ap_wallet, + *mint_amount + ] + events: + - name: assets.Issued + result: { assetId: *asset_id, owner: *ap_wallet, amount: *mint_amount } + + its: + - name: Assets Parachain should be able to reserve transfer an Asset to Penpal Parachain + actions: + - extrinsics: + - chain: *assets_parachain + signer: *ap_signer + pallet: polkadotXcm + call: limitedReserveTransferAssets + args: [ + *pp_dest, # destination + { # beneficiary + V3: { + parents: 0, + interior: { + X1: { + AccountId32: { + id: *pp_acc + } + } + } + } + }, + { # assets + V3: [ + { + id: { + Concrete: { + parents: 0, + interior: { + X2: [ + { + PalletInstance: *assets_pallet_id + }, + { + GeneralIndex: *asset_id + } + ] + } + } + }, + fun: { + Fungible: *amount_to_send + } + } + ] + }, + 0, # feeAssetItem + Unlimited # weightLimit + ] + events: + - name: polkadotXcm.Attempted + threshold: *weight_threshold + result: { outcome: { Complete: { refTime: '673,627,000', proofSize: '6,196' }}} + - name: assets.Transferred + result: { + assetId: *asset_id, + from: *ap_wallet, + to: *pp_sovereign_sibl, + amount: *amount_to_send + } + + - name: polkadotXcm.limitedReserveTransferAssets (KSM) | Assets Parachain -> Penpal Parachain + its: + - name: Assets Parachain should be able to reserve transfer KSM to Penpal Parachain + actions: + - extrinsics: + - chain: *assets_parachain + signer: *ap_signer + pallet: polkadotXcm + call: limitedReserveTransferAssets + args: [ + *pp_dest, # destination + { # beneficiary + V3: { + parents: 0, + interior: { + X1: { + AccountId32: { + id: *pp_acc + } + } + } + } + }, + { # assets + V3: [ + *ap_ksm_fungible + ] + }, + 0, # feeAssetItem + Unlimited # weightLimit + ] + events: + - name: polkadotXcm.Attempted + threshold: *weight_threshold + result: { outcome: { Complete: { refTime: '679,150,000', proofSize: '6,196' }}} + - name: balances.Endowed + result: { + account: *pp_sovereign_sibl, + freeBalance: *amount + } + + - name: polkadotXcm.send( assets.forceCreateAsset ) | Penpal Parachain -> Assets Parachain + before: + - name: Get the asset balance of the Penpal Parachain Sovereign account in Assets Parachain + actions: + - queries: + assets_balance_pp_sovereign_before: + chain: *assets_parachain + pallet: assets + call: account + args: [ + *asset_id, + *pp_sovereign_sibl + ] + its: + - name: Penpal Parachain should be able to send XCM message paying its fee with sufficient asset in Assets Parachain + actions: + - extrinsics: + - chain: *penpal_parachain + signer: *pp_signer + sudo: true + pallet: polkadotXcm + call: send + args: [ + *ap_dest_routed, # destination + { + v3: [ #message + { + WithdrawAsset: [ + { + id: { + concrete: { + parents: 0, + interior: { + X2: [ + { PalletInstance: *assets_pallet_id }, + { GeneralIndex: *asset_id } + ] + } + } + }, + fun: { fungible: *amount_to_send }} + ] + }, + { + BuyExecution: { + fees: { id: *suff_asset, fun: { fungible: *amount_to_send }}, + weightLimit: Unlimited + } + }, + { + Transact: { + originKind: SovereignAccount, + requireWeightAtMost: *weight_at_most, + call: $force_create_asset2 + } + }, + { + RefundSurplus + }, + { + DepositAsset: { + assets: { Wild: All }, + beneficiary: { + parents: 0, + interior: { + X1: { + AccountId32: { + network: , # None + id: *pp_acc + } + } + }} + } + } + ] + } + ] + events: + - name: sudo.Sudid + result: { sudoResult: Ok } + - name: polkadotXcm.Sent + - name: assets.Burned + chain: *assets_parachain + result: { assetId: *asset_id, owner: *pp_sovereign_sibl } + - name: assets.Issued + chain: *assets_parachain + result: { assetId: *asset_id } + - queries: + assets_balance_pp_sovereign_after: + chain: *assets_parachain + pallet: assets + call: account + args: [ + *asset_id, + *pp_sovereign_sibl + ] + forced_created_asset2: + chain: *assets_parachain + pallet: assets + call: asset + args: [ 3 ] + - asserts: + isSome: + args: [ $forced_created_asset2 ] + - name: Should reduce the assets balance of the Penpal Parachain's SovereignAccount in the Assets Parachain + actions: + - asserts: + assetsDecreased: + args: [ + { + balances: { + before: $assets_balance_pp_sovereign_before, + after: $assets_balance_pp_sovereign_after, + }, + } + ] + + - name: Penpal Parachain SHOULD NOT be able to send XCM message paying its fee with sufficient assets if not enough balance + actions: + - extrinsics: + - chain: *penpal_parachain + signer: *pp_signer + sudo: true + pallet: polkadotXcm + call: send + args: [ + *ap_dest_routed, # destination + { + v3: [ #message + { + WithdrawAsset: [*ap_suff_asset_fungible_fail] + }, + { + BuyExecution: { + fees: *ap_suff_asset_fungible_fail, + weightLimit: Unlimited + } + }, + { + Transact: { + originKind: SovereignAccount, + requireWeightAtMost: *weight_at_most, + call: $force_create_asset2 + } + } + ] + } + ] + events: + - name: xcmpQueue.Fail + chain: *assets_parachain + threshold: *weight_threshold + result: { + error: FailedToTransactAsset, + weight: { refTime: '152,426,000', proofSize: '3,593' } + } diff --git a/cumulus/parachains/integration-tests/e2e/assets/asset-hub-westend/config.toml b/cumulus/parachains/integration-tests/e2e/assets/asset-hub-westend/config.toml new file mode 100644 index 000000000000..5d439624abea --- /dev/null +++ b/cumulus/parachains/integration-tests/e2e/assets/asset-hub-westend/config.toml @@ -0,0 +1,72 @@ +[relaychain] +default_command = "./bin/polkadot" +default_args = [ "-lparachain=debug", "-lxcm=trace" ] +chain = "westend-local" + + [[relaychain.nodes]] + name = "alice" + ws_port = 9800 + validator = true + args = ["--state-cache-size=0"] + + [[relaychain.nodes]] + name = "bob" + ws_port = 9801 + validator = true + + [[relaychain.nodes]] + name = "charlie" + ws_port = 9802 + validator = true + + [[relaychain.nodes]] + name = "dave" + ws_port = 9803 + validator = true + +[[parachains]] +id = 1000 +chain = "asset-hub-westend-local" +cumulus_based = true + + [[parachains.collators]] + name = "collator1" + ws_port = 9810 + command = "./bin/polkadot-parachain" + args = [ "-lxcm=trace", "--state-cache-size=0" ] + + [[parachains.collators]] + name = "collator2" + ws_port = 9811 + command = "./bin/polkadot-parachain" + args = [ "-lxcm=trace" ] + + +[[parachains]] +id = 2000 +chain = "penpal-westend-2000" +cumulus_based = true + + [[parachains.collators]] + name = "collator3" + ws_port = 9820 + command = "./bin/polkadot-parachain" + args = [ "-lxcm=trace", "--state-cache-size=0" ] + + [[parachains.collators]] + name = "collator4" + ws_port = 9821 + command = "./bin/polkadot-parachain" + args = [ "-lxcm=trace" ] + +# [[hrmpChannels]] +# sender = 1000 +# recipient = 2000 +# maxCapacity = 8 +# maxMessageSize = 8192 + +# [[hrmpChannels]] +# sender = 2000 +# recipient = 1000 +# maxCapacity = 8 +# maxMessageSize = 8192 From 814a2001b0efdc91f4c50d367f6ca7ccf378b941 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?D=C3=B3nal=20Murray?= Date: Tue, 24 Oct 2023 17:03:53 +0100 Subject: [PATCH 33/78] Fix a couple of westend-parachain runtime configs --- .../collectives/collectives-westend/src/lib.rs | 2 +- cumulus/polkadot-parachain/src/command.rs | 15 ++++++++++++--- 2 files changed, 13 insertions(+), 4 deletions(-) diff --git a/cumulus/parachains/runtimes/collectives/collectives-westend/src/lib.rs b/cumulus/parachains/runtimes/collectives/collectives-westend/src/lib.rs index d26cde2ece81..84b55269de2c 100644 --- a/cumulus/parachains/runtimes/collectives/collectives-westend/src/lib.rs +++ b/cumulus/parachains/runtimes/collectives/collectives-westend/src/lib.rs @@ -405,7 +405,7 @@ impl cumulus_pallet_aura_ext::Config for Runtime {} parameter_types! { /// The asset ID for the asset that we use to pay for message delivery fees. - pub FeeAssetId: AssetId = Concrete(xcm_config::DotLocation::get()); + pub FeeAssetId: AssetId = Concrete(xcm_config::WndLocation::get()); /// The base fee for the message delivery fees. pub const BaseDeliveryFee: u128 = CENTS.saturating_mul(3); } diff --git a/cumulus/polkadot-parachain/src/command.rs b/cumulus/polkadot-parachain/src/command.rs index 4473e9190254..ec8feb5126f4 100644 --- a/cumulus/polkadot-parachain/src/command.rs +++ b/cumulus/polkadot-parachain/src/command.rs @@ -347,9 +347,9 @@ fn extract_parachain_id(id: &str) -> (&str, &str, Option) { const GLUTTON_PARA_LOCAL_PREFIX: &str = "glutton-kusama-local-"; const GLUTTON_PARA_GENESIS_PREFIX: &str = "glutton-kusama-genesis-"; - const GLUTTON_PARA_DEV_PREFIX: &str = "glutton-westend-dev-"; - const GLUTTON_PARA_LOCAL_PREFIX: &str = "glutton-westend-local-"; - const GLUTTON_PARA_GENESIS_PREFIX: &str = "glutton-westend-genesis-"; + const GLUTTON_WESTEND_PARA_DEV_PREFIX: &str = "glutton-westend-dev-"; + const GLUTTON_WESTEND_PARA_LOCAL_PREFIX: &str = "glutton-westend-local-"; + const GLUTTON_WESTEND_PARA_GENESIS_PREFIX: &str = "glutton-westend-genesis-"; let (norm_id, orig_id, para) = if let Some(suffix) = id.strip_prefix(KUSAMA_TEST_PARA_PREFIX) { let para_id: u32 = suffix.parse().expect("Invalid parachain-id suffix"); @@ -369,6 +369,15 @@ fn extract_parachain_id(id: &str) -> (&str, &str, Option) { } else if let Some(suffix) = id.strip_prefix(GLUTTON_PARA_GENESIS_PREFIX) { let para_id: u32 = suffix.parse().expect("Invalid parachain-id suffix"); (&id[..GLUTTON_PARA_GENESIS_PREFIX.len() - 1], id, Some(para_id)) + } else if let Some(suffix) = id.strip_prefix(GLUTTON_WESTEND_PARA_DEV_PREFIX) { + let para_id: u32 = suffix.parse().expect("Invalid parachain-id suffix"); + (&id[..GLUTTON_WESTEND_PARA_DEV_PREFIX.len() - 1], id, Some(para_id)) + } else if let Some(suffix) = id.strip_prefix(GLUTTON_WESTEND_PARA_LOCAL_PREFIX) { + let para_id: u32 = suffix.parse().expect("Invalid parachain-id suffix"); + (&id[..GLUTTON_WESTEND_PARA_LOCAL_PREFIX.len() - 1], id, Some(para_id)) + } else if let Some(suffix) = id.strip_prefix(GLUTTON_WESTEND_PARA_GENESIS_PREFIX) { + let para_id: u32 = suffix.parse().expect("Invalid parachain-id suffix"); + (&id[..GLUTTON_WESTEND_PARA_GENESIS_PREFIX.len() - 1], id, Some(para_id)) } else { (id, id, None) }; From 0131d1b229e818f1c6f74ea0bba122488e1a2a1a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?D=C3=B3nal=20Murray?= Date: Tue, 24 Oct 2023 17:42:42 +0100 Subject: [PATCH 34/78] restore runtimes to repo --- Cargo.lock | 389 +++++ .../assets/asset-hub-kusama/Cargo.toml | 227 +++ .../runtimes/assets/asset-hub-kusama/build.rs | 26 + .../assets/asset-hub-kusama/src/lib.rs | 1482 +++++++++++++++++ .../src/weights/block_weights.rs | 53 + .../src/weights/cumulus_pallet_xcmp_queue.rs | 77 + .../src/weights/extrinsic_weights.rs | 53 + .../src/weights/frame_system.rs | 155 ++ .../asset-hub-kusama/src/weights/mod.rs | 43 + .../src/weights/pallet_asset_conversion.rs | 155 ++ .../src/weights/pallet_assets_foreign.rs | 534 ++++++ .../src/weights/pallet_assets_local.rs | 531 ++++++ .../src/weights/pallet_assets_pool.rs | 531 ++++++ .../src/weights/pallet_balances.rs | 153 ++ .../src/weights/pallet_collator_selection.rs | 225 +++ .../src/weights/pallet_multisig.rs | 165 ++ .../weights/pallet_nft_fractionalization.rs | 115 ++ .../src/weights/pallet_nfts.rs | 773 +++++++++ .../src/weights/pallet_proxy.rs | 226 +++ .../src/weights/pallet_session.rs | 81 + .../src/weights/pallet_timestamp.rs | 75 + .../src/weights/pallet_uniques.rs | 467 ++++++ .../src/weights/pallet_utility.rs | 102 ++ .../src/weights/pallet_xcm.rs | 290 ++++ .../src/weights/paritydb_weights.rs | 63 + .../src/weights/rocksdb_weights.rs | 63 + .../asset-hub-kusama/src/weights/xcm/mod.rs | 245 +++ .../xcm/pallet_xcm_benchmarks_fungible.rs | 188 +++ .../xcm/pallet_xcm_benchmarks_generic.rs | 329 ++++ .../assets/asset-hub-kusama/src/xcm_config.rs | 641 +++++++ .../assets/asset-hub-kusama/tests/tests.rs | 634 +++++++ .../assets/asset-hub-polkadot/Cargo.toml | 208 +++ .../assets/asset-hub-polkadot/build.rs | 26 + .../assets/asset-hub-polkadot/src/lib.rs | 1314 +++++++++++++++ .../src/weights/block_weights.rs | 53 + .../src/weights/cumulus_pallet_xcmp_queue.rs | 77 + .../src/weights/extrinsic_weights.rs | 53 + .../src/weights/frame_system.rs | 155 ++ .../asset-hub-polkadot/src/weights/mod.rs | 40 + .../src/weights/pallet_assets_foreign.rs | 533 ++++++ .../src/weights/pallet_assets_local.rs | 529 ++++++ .../src/weights/pallet_balances.rs | 153 ++ .../src/weights/pallet_collator_selection.rs | 223 +++ .../src/weights/pallet_multisig.rs | 165 ++ .../src/weights/pallet_nfts.rs | 773 +++++++++ .../src/weights/pallet_proxy.rs | 226 +++ .../src/weights/pallet_session.rs | 81 + .../src/weights/pallet_timestamp.rs | 75 + .../src/weights/pallet_uniques.rs | 467 ++++++ .../src/weights/pallet_utility.rs | 102 ++ .../src/weights/pallet_xcm.rs | 290 ++++ .../src/weights/paritydb_weights.rs | 63 + .../src/weights/rocksdb_weights.rs | 63 + .../asset-hub-polkadot/src/weights/xcm/mod.rs | 245 +++ .../xcm/pallet_xcm_benchmarks_fungible.rs | 188 +++ .../xcm/pallet_xcm_benchmarks_generic.rs | 329 ++++ .../asset-hub-polkadot/src/xcm_config.rs | 553 ++++++ .../assets/asset-hub-polkadot/tests/tests.rs | 659 ++++++++ .../bridge-hubs/bridge-hub-kusama/Cargo.toml | 185 ++ .../bridge-hubs/bridge-hub-kusama/build.rs | 26 + .../bridge-hubs/bridge-hub-kusama/src/lib.rs | 814 +++++++++ .../src/weights/block_weights.rs | 53 + .../src/weights/cumulus_pallet_xcmp_queue.rs | 77 + .../src/weights/extrinsic_weights.rs | 53 + .../src/weights/frame_system.rs | 155 ++ .../bridge-hub-kusama/src/weights/mod.rs | 38 + .../src/weights/pallet_balances.rs | 153 ++ .../src/weights/pallet_collator_selection.rs | 225 +++ .../src/weights/pallet_multisig.rs | 165 ++ .../src/weights/pallet_session.rs | 81 + .../src/weights/pallet_timestamp.rs | 75 + .../src/weights/pallet_utility.rs | 102 ++ .../src/weights/pallet_xcm.rs | 289 ++++ .../src/weights/paritydb_weights.rs | 63 + .../src/weights/rocksdb_weights.rs | 63 + .../bridge-hub-kusama/src/weights/xcm/mod.rs | 245 +++ .../xcm/pallet_xcm_benchmarks_fungible.rs | 188 +++ .../xcm/pallet_xcm_benchmarks_generic.rs | 329 ++++ .../bridge-hub-kusama/src/xcm_config.rs | 287 ++++ .../bridge-hub-kusama/tests/tests.rs | 57 + .../bridge-hub-polkadot/Cargo.toml | 185 ++ .../bridge-hubs/bridge-hub-polkadot/build.rs | 26 + .../bridge-hub-polkadot/src/lib.rs | 814 +++++++++ .../src/weights/block_weights.rs | 53 + .../src/weights/cumulus_pallet_xcmp_queue.rs | 77 + .../src/weights/extrinsic_weights.rs | 53 + .../src/weights/frame_system.rs | 155 ++ .../bridge-hub-polkadot/src/weights/mod.rs | 38 + .../src/weights/pallet_balances.rs | 153 ++ .../src/weights/pallet_collator_selection.rs | 225 +++ .../src/weights/pallet_multisig.rs | 165 ++ .../src/weights/pallet_session.rs | 81 + .../src/weights/pallet_timestamp.rs | 75 + .../src/weights/pallet_utility.rs | 102 ++ .../src/weights/pallet_xcm.rs | 289 ++++ .../src/weights/paritydb_weights.rs | 63 + .../src/weights/rocksdb_weights.rs | 63 + .../src/weights/xcm/mod.rs | 245 +++ .../xcm/pallet_xcm_benchmarks_fungible.rs | 188 +++ .../xcm/pallet_xcm_benchmarks_generic.rs | 329 ++++ .../bridge-hub-polkadot/src/xcm_config.rs | 291 ++++ .../bridge-hub-polkadot/tests/tests.rs | 57 + .../collectives-polkadot/Cargo.toml | 219 +++ .../collectives/collectives-polkadot/build.rs | 26 + .../src/ambassador/mod.rs | 255 +++ .../src/ambassador/origins.rs | 135 ++ .../src/ambassador/tracks.rs | 282 ++++ .../src/fellowship/migration.rs | 261 +++ .../src/fellowship/mod.rs | 239 +++ .../src/fellowship/origins.rs | 247 +++ .../src/fellowship/tracks.rs | 532 ++++++ .../collectives-polkadot/src/impls.rs | 229 +++ .../collectives-polkadot/src/lib.rs | 975 +++++++++++ .../src/weights/block_weights.rs | 53 + .../src/weights/cumulus_pallet_xcmp_queue.rs | 77 + .../src/weights/extrinsic_weights.rs | 53 + .../src/weights/frame_system.rs | 155 ++ .../collectives-polkadot/src/weights/mod.rs | 48 + .../src/weights/pallet_alliance.rs | 495 ++++++ .../src/weights/pallet_balances.rs | 153 ++ .../src/weights/pallet_collator_selection.rs | 223 +++ .../src/weights/pallet_collective.rs | 305 ++++ .../src/weights/pallet_collective_content.rs | 94 ++ .../pallet_core_fellowship_ambassador_core.rs | 223 +++ .../pallet_core_fellowship_fellowship_core.rs | 223 +++ .../src/weights/pallet_multisig.rs | 165 ++ .../src/weights/pallet_preimage.rs | 233 +++ .../src/weights/pallet_proxy.rs | 226 +++ ...ranked_collective_ambassador_collective.rs | 177 ++ ...ranked_collective_fellowship_collective.rs | 177 ++ .../pallet_referenda_ambassador_referenda.rs | 536 ++++++ .../pallet_referenda_fellowship_referenda.rs | 536 ++++++ .../pallet_salary_ambassador_salary.rs | 190 +++ .../pallet_salary_fellowship_salary.rs | 190 +++ .../src/weights/pallet_scheduler.rs | 207 +++ .../src/weights/pallet_session.rs | 81 + .../src/weights/pallet_timestamp.rs | 75 + .../src/weights/pallet_utility.rs | 102 ++ .../src/weights/pallet_xcm.rs | 289 ++++ .../src/weights/paritydb_weights.rs | 63 + .../src/weights/rocksdb_weights.rs | 63 + .../collectives-polkadot/src/xcm_config.rs | 338 ++++ .../glutton/glutton-kusama/Cargo.toml | 127 ++ .../runtimes/glutton/glutton-kusama/build.rs | 24 + .../glutton/glutton-kusama/src/lib.rs | 495 ++++++ .../src/weights/frame_system.rs | 155 ++ .../glutton/glutton-kusama/src/weights/mod.rs | 18 + .../src/weights/pallet_glutton.rs | 180 ++ .../src/weights/pallet_timestamp.rs | 75 + .../glutton/glutton-kusama/src/xcm_config.rs | 92 + cumulus/polkadot-parachain/Cargo.toml | 18 + .../src/chain_spec/asset_hubs.rs | 418 ++++- .../src/chain_spec/bridge_hubs.rs | 317 +++- .../src/chain_spec/collectives.rs | 158 ++ .../src/chain_spec/glutton.rs | 110 +- cumulus/polkadot-parachain/src/command.rs | 8 +- cumulus/polkadot-parachain/src/service.rs | 90 + .../tests/benchmark_storage_works.rs | 2 +- 158 files changed, 35611 insertions(+), 10 deletions(-) create mode 100644 cumulus/parachains/runtimes/assets/asset-hub-kusama/Cargo.toml create mode 100644 cumulus/parachains/runtimes/assets/asset-hub-kusama/build.rs create mode 100644 cumulus/parachains/runtimes/assets/asset-hub-kusama/src/lib.rs create mode 100644 cumulus/parachains/runtimes/assets/asset-hub-kusama/src/weights/block_weights.rs create mode 100644 cumulus/parachains/runtimes/assets/asset-hub-kusama/src/weights/cumulus_pallet_xcmp_queue.rs create mode 100644 cumulus/parachains/runtimes/assets/asset-hub-kusama/src/weights/extrinsic_weights.rs create mode 100644 cumulus/parachains/runtimes/assets/asset-hub-kusama/src/weights/frame_system.rs create mode 100644 cumulus/parachains/runtimes/assets/asset-hub-kusama/src/weights/mod.rs create mode 100644 cumulus/parachains/runtimes/assets/asset-hub-kusama/src/weights/pallet_asset_conversion.rs create mode 100644 cumulus/parachains/runtimes/assets/asset-hub-kusama/src/weights/pallet_assets_foreign.rs create mode 100644 cumulus/parachains/runtimes/assets/asset-hub-kusama/src/weights/pallet_assets_local.rs create mode 100644 cumulus/parachains/runtimes/assets/asset-hub-kusama/src/weights/pallet_assets_pool.rs create mode 100644 cumulus/parachains/runtimes/assets/asset-hub-kusama/src/weights/pallet_balances.rs create mode 100644 cumulus/parachains/runtimes/assets/asset-hub-kusama/src/weights/pallet_collator_selection.rs create mode 100644 cumulus/parachains/runtimes/assets/asset-hub-kusama/src/weights/pallet_multisig.rs create mode 100644 cumulus/parachains/runtimes/assets/asset-hub-kusama/src/weights/pallet_nft_fractionalization.rs create mode 100644 cumulus/parachains/runtimes/assets/asset-hub-kusama/src/weights/pallet_nfts.rs create mode 100644 cumulus/parachains/runtimes/assets/asset-hub-kusama/src/weights/pallet_proxy.rs create mode 100644 cumulus/parachains/runtimes/assets/asset-hub-kusama/src/weights/pallet_session.rs create mode 100644 cumulus/parachains/runtimes/assets/asset-hub-kusama/src/weights/pallet_timestamp.rs create mode 100644 cumulus/parachains/runtimes/assets/asset-hub-kusama/src/weights/pallet_uniques.rs create mode 100644 cumulus/parachains/runtimes/assets/asset-hub-kusama/src/weights/pallet_utility.rs create mode 100644 cumulus/parachains/runtimes/assets/asset-hub-kusama/src/weights/pallet_xcm.rs create mode 100644 cumulus/parachains/runtimes/assets/asset-hub-kusama/src/weights/paritydb_weights.rs create mode 100644 cumulus/parachains/runtimes/assets/asset-hub-kusama/src/weights/rocksdb_weights.rs create mode 100644 cumulus/parachains/runtimes/assets/asset-hub-kusama/src/weights/xcm/mod.rs create mode 100644 cumulus/parachains/runtimes/assets/asset-hub-kusama/src/weights/xcm/pallet_xcm_benchmarks_fungible.rs create mode 100644 cumulus/parachains/runtimes/assets/asset-hub-kusama/src/weights/xcm/pallet_xcm_benchmarks_generic.rs create mode 100644 cumulus/parachains/runtimes/assets/asset-hub-kusama/src/xcm_config.rs create mode 100644 cumulus/parachains/runtimes/assets/asset-hub-kusama/tests/tests.rs create mode 100644 cumulus/parachains/runtimes/assets/asset-hub-polkadot/Cargo.toml create mode 100644 cumulus/parachains/runtimes/assets/asset-hub-polkadot/build.rs create mode 100644 cumulus/parachains/runtimes/assets/asset-hub-polkadot/src/lib.rs create mode 100644 cumulus/parachains/runtimes/assets/asset-hub-polkadot/src/weights/block_weights.rs create mode 100644 cumulus/parachains/runtimes/assets/asset-hub-polkadot/src/weights/cumulus_pallet_xcmp_queue.rs create mode 100644 cumulus/parachains/runtimes/assets/asset-hub-polkadot/src/weights/extrinsic_weights.rs create mode 100644 cumulus/parachains/runtimes/assets/asset-hub-polkadot/src/weights/frame_system.rs create mode 100644 cumulus/parachains/runtimes/assets/asset-hub-polkadot/src/weights/mod.rs create mode 100644 cumulus/parachains/runtimes/assets/asset-hub-polkadot/src/weights/pallet_assets_foreign.rs create mode 100644 cumulus/parachains/runtimes/assets/asset-hub-polkadot/src/weights/pallet_assets_local.rs create mode 100644 cumulus/parachains/runtimes/assets/asset-hub-polkadot/src/weights/pallet_balances.rs create mode 100644 cumulus/parachains/runtimes/assets/asset-hub-polkadot/src/weights/pallet_collator_selection.rs create mode 100644 cumulus/parachains/runtimes/assets/asset-hub-polkadot/src/weights/pallet_multisig.rs create mode 100644 cumulus/parachains/runtimes/assets/asset-hub-polkadot/src/weights/pallet_nfts.rs create mode 100644 cumulus/parachains/runtimes/assets/asset-hub-polkadot/src/weights/pallet_proxy.rs create mode 100644 cumulus/parachains/runtimes/assets/asset-hub-polkadot/src/weights/pallet_session.rs create mode 100644 cumulus/parachains/runtimes/assets/asset-hub-polkadot/src/weights/pallet_timestamp.rs create mode 100644 cumulus/parachains/runtimes/assets/asset-hub-polkadot/src/weights/pallet_uniques.rs create mode 100644 cumulus/parachains/runtimes/assets/asset-hub-polkadot/src/weights/pallet_utility.rs create mode 100644 cumulus/parachains/runtimes/assets/asset-hub-polkadot/src/weights/pallet_xcm.rs create mode 100644 cumulus/parachains/runtimes/assets/asset-hub-polkadot/src/weights/paritydb_weights.rs create mode 100644 cumulus/parachains/runtimes/assets/asset-hub-polkadot/src/weights/rocksdb_weights.rs create mode 100644 cumulus/parachains/runtimes/assets/asset-hub-polkadot/src/weights/xcm/mod.rs create mode 100644 cumulus/parachains/runtimes/assets/asset-hub-polkadot/src/weights/xcm/pallet_xcm_benchmarks_fungible.rs create mode 100644 cumulus/parachains/runtimes/assets/asset-hub-polkadot/src/weights/xcm/pallet_xcm_benchmarks_generic.rs create mode 100644 cumulus/parachains/runtimes/assets/asset-hub-polkadot/src/xcm_config.rs create mode 100644 cumulus/parachains/runtimes/assets/asset-hub-polkadot/tests/tests.rs create mode 100644 cumulus/parachains/runtimes/bridge-hubs/bridge-hub-kusama/Cargo.toml create mode 100644 cumulus/parachains/runtimes/bridge-hubs/bridge-hub-kusama/build.rs create mode 100644 cumulus/parachains/runtimes/bridge-hubs/bridge-hub-kusama/src/lib.rs create mode 100644 cumulus/parachains/runtimes/bridge-hubs/bridge-hub-kusama/src/weights/block_weights.rs create mode 100644 cumulus/parachains/runtimes/bridge-hubs/bridge-hub-kusama/src/weights/cumulus_pallet_xcmp_queue.rs create mode 100644 cumulus/parachains/runtimes/bridge-hubs/bridge-hub-kusama/src/weights/extrinsic_weights.rs create mode 100644 cumulus/parachains/runtimes/bridge-hubs/bridge-hub-kusama/src/weights/frame_system.rs create mode 100644 cumulus/parachains/runtimes/bridge-hubs/bridge-hub-kusama/src/weights/mod.rs create mode 100644 cumulus/parachains/runtimes/bridge-hubs/bridge-hub-kusama/src/weights/pallet_balances.rs create mode 100644 cumulus/parachains/runtimes/bridge-hubs/bridge-hub-kusama/src/weights/pallet_collator_selection.rs create mode 100644 cumulus/parachains/runtimes/bridge-hubs/bridge-hub-kusama/src/weights/pallet_multisig.rs create mode 100644 cumulus/parachains/runtimes/bridge-hubs/bridge-hub-kusama/src/weights/pallet_session.rs create mode 100644 cumulus/parachains/runtimes/bridge-hubs/bridge-hub-kusama/src/weights/pallet_timestamp.rs create mode 100644 cumulus/parachains/runtimes/bridge-hubs/bridge-hub-kusama/src/weights/pallet_utility.rs create mode 100644 cumulus/parachains/runtimes/bridge-hubs/bridge-hub-kusama/src/weights/pallet_xcm.rs create mode 100644 cumulus/parachains/runtimes/bridge-hubs/bridge-hub-kusama/src/weights/paritydb_weights.rs create mode 100644 cumulus/parachains/runtimes/bridge-hubs/bridge-hub-kusama/src/weights/rocksdb_weights.rs create mode 100644 cumulus/parachains/runtimes/bridge-hubs/bridge-hub-kusama/src/weights/xcm/mod.rs create mode 100644 cumulus/parachains/runtimes/bridge-hubs/bridge-hub-kusama/src/weights/xcm/pallet_xcm_benchmarks_fungible.rs create mode 100644 cumulus/parachains/runtimes/bridge-hubs/bridge-hub-kusama/src/weights/xcm/pallet_xcm_benchmarks_generic.rs create mode 100644 cumulus/parachains/runtimes/bridge-hubs/bridge-hub-kusama/src/xcm_config.rs create mode 100644 cumulus/parachains/runtimes/bridge-hubs/bridge-hub-kusama/tests/tests.rs create mode 100644 cumulus/parachains/runtimes/bridge-hubs/bridge-hub-polkadot/Cargo.toml create mode 100644 cumulus/parachains/runtimes/bridge-hubs/bridge-hub-polkadot/build.rs create mode 100644 cumulus/parachains/runtimes/bridge-hubs/bridge-hub-polkadot/src/lib.rs create mode 100644 cumulus/parachains/runtimes/bridge-hubs/bridge-hub-polkadot/src/weights/block_weights.rs create mode 100644 cumulus/parachains/runtimes/bridge-hubs/bridge-hub-polkadot/src/weights/cumulus_pallet_xcmp_queue.rs create mode 100644 cumulus/parachains/runtimes/bridge-hubs/bridge-hub-polkadot/src/weights/extrinsic_weights.rs create mode 100644 cumulus/parachains/runtimes/bridge-hubs/bridge-hub-polkadot/src/weights/frame_system.rs create mode 100644 cumulus/parachains/runtimes/bridge-hubs/bridge-hub-polkadot/src/weights/mod.rs create mode 100644 cumulus/parachains/runtimes/bridge-hubs/bridge-hub-polkadot/src/weights/pallet_balances.rs create mode 100644 cumulus/parachains/runtimes/bridge-hubs/bridge-hub-polkadot/src/weights/pallet_collator_selection.rs create mode 100644 cumulus/parachains/runtimes/bridge-hubs/bridge-hub-polkadot/src/weights/pallet_multisig.rs create mode 100644 cumulus/parachains/runtimes/bridge-hubs/bridge-hub-polkadot/src/weights/pallet_session.rs create mode 100644 cumulus/parachains/runtimes/bridge-hubs/bridge-hub-polkadot/src/weights/pallet_timestamp.rs create mode 100644 cumulus/parachains/runtimes/bridge-hubs/bridge-hub-polkadot/src/weights/pallet_utility.rs create mode 100644 cumulus/parachains/runtimes/bridge-hubs/bridge-hub-polkadot/src/weights/pallet_xcm.rs create mode 100644 cumulus/parachains/runtimes/bridge-hubs/bridge-hub-polkadot/src/weights/paritydb_weights.rs create mode 100644 cumulus/parachains/runtimes/bridge-hubs/bridge-hub-polkadot/src/weights/rocksdb_weights.rs create mode 100644 cumulus/parachains/runtimes/bridge-hubs/bridge-hub-polkadot/src/weights/xcm/mod.rs create mode 100644 cumulus/parachains/runtimes/bridge-hubs/bridge-hub-polkadot/src/weights/xcm/pallet_xcm_benchmarks_fungible.rs create mode 100644 cumulus/parachains/runtimes/bridge-hubs/bridge-hub-polkadot/src/weights/xcm/pallet_xcm_benchmarks_generic.rs create mode 100644 cumulus/parachains/runtimes/bridge-hubs/bridge-hub-polkadot/src/xcm_config.rs create mode 100644 cumulus/parachains/runtimes/bridge-hubs/bridge-hub-polkadot/tests/tests.rs create mode 100644 cumulus/parachains/runtimes/collectives/collectives-polkadot/Cargo.toml create mode 100644 cumulus/parachains/runtimes/collectives/collectives-polkadot/build.rs create mode 100644 cumulus/parachains/runtimes/collectives/collectives-polkadot/src/ambassador/mod.rs create mode 100644 cumulus/parachains/runtimes/collectives/collectives-polkadot/src/ambassador/origins.rs create mode 100644 cumulus/parachains/runtimes/collectives/collectives-polkadot/src/ambassador/tracks.rs create mode 100644 cumulus/parachains/runtimes/collectives/collectives-polkadot/src/fellowship/migration.rs create mode 100644 cumulus/parachains/runtimes/collectives/collectives-polkadot/src/fellowship/mod.rs create mode 100644 cumulus/parachains/runtimes/collectives/collectives-polkadot/src/fellowship/origins.rs create mode 100644 cumulus/parachains/runtimes/collectives/collectives-polkadot/src/fellowship/tracks.rs create mode 100644 cumulus/parachains/runtimes/collectives/collectives-polkadot/src/impls.rs create mode 100644 cumulus/parachains/runtimes/collectives/collectives-polkadot/src/lib.rs create mode 100644 cumulus/parachains/runtimes/collectives/collectives-polkadot/src/weights/block_weights.rs create mode 100644 cumulus/parachains/runtimes/collectives/collectives-polkadot/src/weights/cumulus_pallet_xcmp_queue.rs create mode 100644 cumulus/parachains/runtimes/collectives/collectives-polkadot/src/weights/extrinsic_weights.rs create mode 100644 cumulus/parachains/runtimes/collectives/collectives-polkadot/src/weights/frame_system.rs create mode 100644 cumulus/parachains/runtimes/collectives/collectives-polkadot/src/weights/mod.rs create mode 100644 cumulus/parachains/runtimes/collectives/collectives-polkadot/src/weights/pallet_alliance.rs create mode 100644 cumulus/parachains/runtimes/collectives/collectives-polkadot/src/weights/pallet_balances.rs create mode 100644 cumulus/parachains/runtimes/collectives/collectives-polkadot/src/weights/pallet_collator_selection.rs create mode 100644 cumulus/parachains/runtimes/collectives/collectives-polkadot/src/weights/pallet_collective.rs create mode 100644 cumulus/parachains/runtimes/collectives/collectives-polkadot/src/weights/pallet_collective_content.rs create mode 100644 cumulus/parachains/runtimes/collectives/collectives-polkadot/src/weights/pallet_core_fellowship_ambassador_core.rs create mode 100644 cumulus/parachains/runtimes/collectives/collectives-polkadot/src/weights/pallet_core_fellowship_fellowship_core.rs create mode 100644 cumulus/parachains/runtimes/collectives/collectives-polkadot/src/weights/pallet_multisig.rs create mode 100644 cumulus/parachains/runtimes/collectives/collectives-polkadot/src/weights/pallet_preimage.rs create mode 100644 cumulus/parachains/runtimes/collectives/collectives-polkadot/src/weights/pallet_proxy.rs create mode 100644 cumulus/parachains/runtimes/collectives/collectives-polkadot/src/weights/pallet_ranked_collective_ambassador_collective.rs create mode 100644 cumulus/parachains/runtimes/collectives/collectives-polkadot/src/weights/pallet_ranked_collective_fellowship_collective.rs create mode 100644 cumulus/parachains/runtimes/collectives/collectives-polkadot/src/weights/pallet_referenda_ambassador_referenda.rs create mode 100644 cumulus/parachains/runtimes/collectives/collectives-polkadot/src/weights/pallet_referenda_fellowship_referenda.rs create mode 100644 cumulus/parachains/runtimes/collectives/collectives-polkadot/src/weights/pallet_salary_ambassador_salary.rs create mode 100644 cumulus/parachains/runtimes/collectives/collectives-polkadot/src/weights/pallet_salary_fellowship_salary.rs create mode 100644 cumulus/parachains/runtimes/collectives/collectives-polkadot/src/weights/pallet_scheduler.rs create mode 100644 cumulus/parachains/runtimes/collectives/collectives-polkadot/src/weights/pallet_session.rs create mode 100644 cumulus/parachains/runtimes/collectives/collectives-polkadot/src/weights/pallet_timestamp.rs create mode 100644 cumulus/parachains/runtimes/collectives/collectives-polkadot/src/weights/pallet_utility.rs create mode 100644 cumulus/parachains/runtimes/collectives/collectives-polkadot/src/weights/pallet_xcm.rs create mode 100644 cumulus/parachains/runtimes/collectives/collectives-polkadot/src/weights/paritydb_weights.rs create mode 100644 cumulus/parachains/runtimes/collectives/collectives-polkadot/src/weights/rocksdb_weights.rs create mode 100644 cumulus/parachains/runtimes/collectives/collectives-polkadot/src/xcm_config.rs create mode 100644 cumulus/parachains/runtimes/glutton/glutton-kusama/Cargo.toml create mode 100644 cumulus/parachains/runtimes/glutton/glutton-kusama/build.rs create mode 100644 cumulus/parachains/runtimes/glutton/glutton-kusama/src/lib.rs create mode 100644 cumulus/parachains/runtimes/glutton/glutton-kusama/src/weights/frame_system.rs create mode 100644 cumulus/parachains/runtimes/glutton/glutton-kusama/src/weights/mod.rs create mode 100644 cumulus/parachains/runtimes/glutton/glutton-kusama/src/weights/pallet_glutton.rs create mode 100644 cumulus/parachains/runtimes/glutton/glutton-kusama/src/weights/pallet_timestamp.rs create mode 100644 cumulus/parachains/runtimes/glutton/glutton-kusama/src/xcm_config.rs diff --git a/Cargo.lock b/Cargo.lock index 21b3ec972fc3..e36df937ce78 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -650,6 +650,148 @@ version = "1.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9b34d609dfbaf33d6889b2b7106d3ca345eacad44200913df5ba02bfd31d2ba9" +[[package]] +name = "asset-hub-kusama-runtime" +version = "0.9.420" +dependencies = [ + "asset-test-utils", + "assets-common", + "cumulus-pallet-aura-ext", + "cumulus-pallet-dmp-queue", + "cumulus-pallet-parachain-system", + "cumulus-pallet-session-benchmarking", + "cumulus-pallet-xcm", + "cumulus-pallet-xcmp-queue", + "cumulus-primitives-core", + "cumulus-primitives-utility", + "frame-benchmarking", + "frame-executive", + "frame-support", + "frame-system", + "frame-system-benchmarking", + "frame-system-rpc-runtime-api", + "frame-try-runtime", + "hex-literal", + "log", + "pallet-asset-conversion", + "pallet-asset-conversion-tx-payment", + "pallet-assets", + "pallet-aura", + "pallet-authorship", + "pallet-balances", + "pallet-collator-selection", + "pallet-multisig", + "pallet-nft-fractionalization", + "pallet-nfts", + "pallet-nfts-runtime-api", + "pallet-proxy", + "pallet-session", + "pallet-state-trie-migration", + "pallet-timestamp", + "pallet-transaction-payment", + "pallet-transaction-payment-rpc-runtime-api", + "pallet-uniques", + "pallet-utility", + "pallet-xcm", + "pallet-xcm-benchmarks", + "parachain-info", + "parachains-common", + "parity-scale-codec", + "polkadot-core-primitives", + "polkadot-parachain-primitives", + "polkadot-runtime-common", + "primitive-types", + "scale-info", + "smallvec", + "sp-api", + "sp-block-builder", + "sp-consensus-aura", + "sp-core", + "sp-genesis-builder", + "sp-inherents", + "sp-offchain", + "sp-runtime", + "sp-session", + "sp-std", + "sp-storage", + "sp-transaction-pool", + "sp-version", + "sp-weights", + "staging-xcm", + "staging-xcm-builder", + "staging-xcm-executor", + "substrate-wasm-builder", +] + +[[package]] +name = "asset-hub-polkadot-runtime" +version = "0.9.420" +dependencies = [ + "asset-test-utils", + "assets-common", + "cumulus-pallet-aura-ext", + "cumulus-pallet-dmp-queue", + "cumulus-pallet-parachain-system", + "cumulus-pallet-session-benchmarking", + "cumulus-pallet-xcm", + "cumulus-pallet-xcmp-queue", + "cumulus-primitives-core", + "cumulus-primitives-utility", + "frame-benchmarking", + "frame-executive", + "frame-support", + "frame-system", + "frame-system-benchmarking", + "frame-system-rpc-runtime-api", + "frame-try-runtime", + "hex-literal", + "log", + "pallet-asset-tx-payment", + "pallet-assets", + "pallet-aura", + "pallet-authorship", + "pallet-balances", + "pallet-collator-selection", + "pallet-multisig", + "pallet-nfts", + "pallet-nfts-runtime-api", + "pallet-proxy", + "pallet-session", + "pallet-timestamp", + "pallet-transaction-payment", + "pallet-transaction-payment-rpc-runtime-api", + "pallet-uniques", + "pallet-utility", + "pallet-xcm", + "pallet-xcm-benchmarks", + "parachain-info", + "parachains-common", + "parity-scale-codec", + "polkadot-core-primitives", + "polkadot-parachain-primitives", + "polkadot-runtime-common", + "scale-info", + "smallvec", + "sp-api", + "sp-block-builder", + "sp-consensus-aura", + "sp-core", + "sp-genesis-builder", + "sp-inherents", + "sp-offchain", + "sp-runtime", + "sp-session", + "sp-std", + "sp-storage", + "sp-transaction-pool", + "sp-version", + "sp-weights", + "staging-xcm", + "staging-xcm-builder", + "staging-xcm-executor", + "substrate-wasm-builder", +] + [[package]] name = "asset-hub-rococo-integration-tests" version = "1.0.0" @@ -1734,6 +1876,132 @@ dependencies = [ "sp-runtime", ] +[[package]] +name = "bridge-hub-kusama-runtime" +version = "0.1.0" +dependencies = [ + "bridge-hub-test-utils", + "cumulus-pallet-aura-ext", + "cumulus-pallet-dmp-queue", + "cumulus-pallet-parachain-system", + "cumulus-pallet-session-benchmarking", + "cumulus-pallet-xcm", + "cumulus-pallet-xcmp-queue", + "cumulus-primitives-core", + "cumulus-primitives-utility", + "frame-benchmarking", + "frame-executive", + "frame-support", + "frame-system", + "frame-system-benchmarking", + "frame-system-rpc-runtime-api", + "frame-try-runtime", + "hex-literal", + "log", + "pallet-aura", + "pallet-authorship", + "pallet-balances", + "pallet-collator-selection", + "pallet-multisig", + "pallet-session", + "pallet-timestamp", + "pallet-transaction-payment", + "pallet-transaction-payment-rpc-runtime-api", + "pallet-utility", + "pallet-xcm", + "pallet-xcm-benchmarks", + "parachain-info", + "parachains-common", + "parity-scale-codec", + "polkadot-core-primitives", + "polkadot-parachain-primitives", + "polkadot-runtime-common", + "scale-info", + "serde", + "smallvec", + "sp-api", + "sp-block-builder", + "sp-consensus-aura", + "sp-core", + "sp-genesis-builder", + "sp-inherents", + "sp-io", + "sp-offchain", + "sp-runtime", + "sp-session", + "sp-std", + "sp-storage", + "sp-transaction-pool", + "sp-version", + "staging-xcm", + "staging-xcm-builder", + "staging-xcm-executor", + "substrate-wasm-builder", +] + +[[package]] +name = "bridge-hub-polkadot-runtime" +version = "0.1.0" +dependencies = [ + "bridge-hub-test-utils", + "cumulus-pallet-aura-ext", + "cumulus-pallet-dmp-queue", + "cumulus-pallet-parachain-system", + "cumulus-pallet-session-benchmarking", + "cumulus-pallet-xcm", + "cumulus-pallet-xcmp-queue", + "cumulus-primitives-core", + "cumulus-primitives-utility", + "frame-benchmarking", + "frame-executive", + "frame-support", + "frame-system", + "frame-system-benchmarking", + "frame-system-rpc-runtime-api", + "frame-try-runtime", + "hex-literal", + "log", + "pallet-aura", + "pallet-authorship", + "pallet-balances", + "pallet-collator-selection", + "pallet-multisig", + "pallet-session", + "pallet-timestamp", + "pallet-transaction-payment", + "pallet-transaction-payment-rpc-runtime-api", + "pallet-utility", + "pallet-xcm", + "pallet-xcm-benchmarks", + "parachain-info", + "parachains-common", + "parity-scale-codec", + "polkadot-core-primitives", + "polkadot-parachain-primitives", + "polkadot-runtime-common", + "scale-info", + "serde", + "smallvec", + "sp-api", + "sp-block-builder", + "sp-consensus-aura", + "sp-core", + "sp-genesis-builder", + "sp-inherents", + "sp-io", + "sp-offchain", + "sp-runtime", + "sp-session", + "sp-std", + "sp-storage", + "sp-transaction-pool", + "sp-version", + "staging-xcm", + "staging-xcm-builder", + "staging-xcm-executor", + "substrate-wasm-builder", +] + [[package]] name = "bridge-hub-rococo-integration-tests" version = "1.0.0" @@ -2376,6 +2644,77 @@ dependencies = [ "unicode-width", ] +[[package]] +name = "collectives-polkadot-runtime" +version = "1.0.0" +dependencies = [ + "cumulus-pallet-aura-ext", + "cumulus-pallet-dmp-queue", + "cumulus-pallet-parachain-system", + "cumulus-pallet-session-benchmarking", + "cumulus-pallet-xcm", + "cumulus-pallet-xcmp-queue", + "cumulus-primitives-core", + "cumulus-primitives-utility", + "frame-benchmarking", + "frame-executive", + "frame-support", + "frame-system", + "frame-system-benchmarking", + "frame-system-rpc-runtime-api", + "frame-try-runtime", + "hex-literal", + "log", + "pallet-alliance", + "pallet-aura", + "pallet-authorship", + "pallet-balances", + "pallet-collator-selection", + "pallet-collective", + "pallet-collective-content", + "pallet-core-fellowship", + "pallet-multisig", + "pallet-preimage", + "pallet-proxy", + "pallet-ranked-collective", + "pallet-referenda", + "pallet-salary", + "pallet-scheduler", + "pallet-session", + "pallet-timestamp", + "pallet-transaction-payment", + "pallet-transaction-payment-rpc-runtime-api", + "pallet-utility", + "pallet-xcm", + "parachain-info", + "parachains-common", + "parity-scale-codec", + "polkadot-core-primitives", + "polkadot-parachain-primitives", + "polkadot-runtime-common", + "scale-info", + "smallvec", + "sp-api", + "sp-arithmetic", + "sp-block-builder", + "sp-consensus-aura", + "sp-core", + "sp-genesis-builder", + "sp-inherents", + "sp-io", + "sp-offchain", + "sp-runtime", + "sp-session", + "sp-std", + "sp-storage", + "sp-transaction-pool", + "sp-version", + "staging-xcm", + "staging-xcm-builder", + "staging-xcm-executor", + "substrate-wasm-builder", +] + [[package]] name = "collectives-westend-runtime" version = "1.0.0" @@ -5614,6 +5953,50 @@ dependencies = [ "regex", ] +[[package]] +name = "glutton-runtime" +version = "1.0.0" +dependencies = [ + "cumulus-pallet-aura-ext", + "cumulus-pallet-parachain-system", + "cumulus-pallet-xcm", + "cumulus-primitives-aura", + "cumulus-primitives-core", + "cumulus-primitives-timestamp", + "frame-benchmarking", + "frame-executive", + "frame-support", + "frame-system", + "frame-system-benchmarking", + "frame-system-rpc-runtime-api", + "frame-try-runtime", + "pallet-aura", + "pallet-glutton", + "pallet-sudo", + "pallet-timestamp", + "parachain-info", + "parachains-common", + "parity-scale-codec", + "scale-info", + "sp-api", + "sp-block-builder", + "sp-consensus-aura", + "sp-core", + "sp-genesis-builder", + "sp-inherents", + "sp-offchain", + "sp-runtime", + "sp-session", + "sp-std", + "sp-storage", + "sp-transaction-pool", + "sp-version", + "staging-xcm", + "staging-xcm-builder", + "staging-xcm-executor", + "substrate-wasm-builder", +] + [[package]] name = "glutton-westend-runtime" version = "1.0.0" @@ -12267,11 +12650,16 @@ name = "polkadot-parachain-bin" version = "1.1.0" dependencies = [ "assert_cmd", + "asset-hub-kusama-runtime", + "asset-hub-polkadot-runtime", "asset-hub-rococo-runtime", "asset-hub-westend-runtime", "async-trait", + "bridge-hub-kusama-runtime", + "bridge-hub-polkadot-runtime", "bridge-hub-rococo-runtime", "clap 4.4.6", + "collectives-polkadot-runtime", "collectives-westend-runtime", "color-print", "contracts-rococo-runtime", @@ -12289,6 +12677,7 @@ dependencies = [ "frame-benchmarking", "frame-benchmarking-cli", "futures", + "glutton-runtime", "glutton-westend-runtime", "hex-literal", "jsonrpsee", diff --git a/cumulus/parachains/runtimes/assets/asset-hub-kusama/Cargo.toml b/cumulus/parachains/runtimes/assets/asset-hub-kusama/Cargo.toml new file mode 100644 index 000000000000..dc401e3d8cd3 --- /dev/null +++ b/cumulus/parachains/runtimes/assets/asset-hub-kusama/Cargo.toml @@ -0,0 +1,227 @@ +[package] +name = "asset-hub-kusama-runtime" +version = "0.9.420" +authors.workspace = true +edition.workspace = true +description = "Kusama variant of Asset Hub parachain runtime" + +[dependencies] +codec = { package = "parity-scale-codec", version = "3.0.0", default-features = false, features = ["derive", "max-encoded-len"] } +hex-literal = { version = "0.4.1" } +log = { version = "0.4.20", default-features = false } +scale-info = { version = "2.10.0", default-features = false, features = ["derive"] } +smallvec = "1.11.0" + +# Substrate +frame-benchmarking = { path = "../../../../../substrate/frame/benchmarking", default-features = false, optional = true} +frame-executive = { path = "../../../../../substrate/frame/executive", default-features = false} +frame-support = { path = "../../../../../substrate/frame/support", default-features = false} +frame-system = { path = "../../../../../substrate/frame/system", default-features = false} +frame-system-benchmarking = { path = "../../../../../substrate/frame/system/benchmarking", default-features = false, optional = true} +frame-system-rpc-runtime-api = { path = "../../../../../substrate/frame/system/rpc/runtime-api", default-features = false} +frame-try-runtime = { path = "../../../../../substrate/frame/try-runtime", default-features = false, optional = true} +pallet-asset-conversion-tx-payment = { path = "../../../../../substrate/frame/transaction-payment/asset-conversion-tx-payment", default-features = false} +pallet-assets = { path = "../../../../../substrate/frame/assets", default-features = false} +pallet-asset-conversion = { path = "../../../../../substrate/frame/asset-conversion", default-features = false} +pallet-aura = { path = "../../../../../substrate/frame/aura", default-features = false} +pallet-authorship = { path = "../../../../../substrate/frame/authorship", default-features = false} +pallet-balances = { path = "../../../../../substrate/frame/balances", default-features = false} +pallet-multisig = { path = "../../../../../substrate/frame/multisig", default-features = false} +pallet-nft-fractionalization = { path = "../../../../../substrate/frame/nft-fractionalization", default-features = false} +pallet-nfts = { path = "../../../../../substrate/frame/nfts", default-features = false} +pallet-nfts-runtime-api = { path = "../../../../../substrate/frame/nfts/runtime-api", default-features = false} +pallet-proxy = { path = "../../../../../substrate/frame/proxy", default-features = false} +pallet-session = { path = "../../../../../substrate/frame/session", default-features = false} +pallet-state-trie-migration = { path = "../../../../../substrate/frame/state-trie-migration", default-features = false, optional = true } +pallet-timestamp = { path = "../../../../../substrate/frame/timestamp", default-features = false} +pallet-transaction-payment = { path = "../../../../../substrate/frame/transaction-payment", default-features = false} +pallet-transaction-payment-rpc-runtime-api = { path = "../../../../../substrate/frame/transaction-payment/rpc/runtime-api", default-features = false} +pallet-uniques = { path = "../../../../../substrate/frame/uniques", default-features = false} +pallet-utility = { path = "../../../../../substrate/frame/utility", default-features = false} +sp-api = { path = "../../../../../substrate/primitives/api", default-features = false} +sp-block-builder = { path = "../../../../../substrate/primitives/block-builder", default-features = false} +sp-consensus-aura = { path = "../../../../../substrate/primitives/consensus/aura", default-features = false} +sp-core = { path = "../../../../../substrate/primitives/core", default-features = false} +sp-genesis-builder = { path = "../../../../../substrate/primitives/genesis-builder", default-features = false } +sp-inherents = { path = "../../../../../substrate/primitives/inherents", default-features = false} +sp-offchain = { path = "../../../../../substrate/primitives/offchain", default-features = false} +sp-runtime = { path = "../../../../../substrate/primitives/runtime", default-features = false} +sp-session = { path = "../../../../../substrate/primitives/session", default-features = false} +sp-std = { path = "../../../../../substrate/primitives/std", default-features = false} +sp-storage = { path = "../../../../../substrate/primitives/storage", default-features = false} +sp-transaction-pool = { path = "../../../../../substrate/primitives/transaction-pool", default-features = false} +sp-version = { path = "../../../../../substrate/primitives/version", default-features = false} +sp-weights = { path = "../../../../../substrate/primitives/weights", default-features = false} +# num-traits feature needed for dex integer sq root: +primitive-types = { version = "0.12.1", default-features = false, features = ["codec", "scale-info", "num-traits"] } + +# Polkadot +pallet-xcm = { path = "../../../../../polkadot/xcm/pallet-xcm", default-features = false} +pallet-xcm-benchmarks = { path = "../../../../../polkadot/xcm/pallet-xcm-benchmarks", default-features = false, optional = true } +polkadot-core-primitives = { path = "../../../../../polkadot/core-primitives", default-features = false} +polkadot-parachain-primitives = { path = "../../../../../polkadot/parachain", default-features = false} +polkadot-runtime-common = { path = "../../../../../polkadot/runtime/common", default-features = false} +xcm = { package = "staging-xcm", path = "../../../../../polkadot/xcm", default-features = false} +xcm-builder = { package = "staging-xcm-builder", path = "../../../../../polkadot/xcm/xcm-builder", default-features = false} +xcm-executor = { package = "staging-xcm-executor", path = "../../../../../polkadot/xcm/xcm-executor", default-features = false} + +# Cumulus +cumulus-pallet-aura-ext = { path = "../../../../pallets/aura-ext", default-features = false } +cumulus-pallet-dmp-queue = { path = "../../../../pallets/dmp-queue", default-features = false } +cumulus-pallet-parachain-system = { path = "../../../../pallets/parachain-system", default-features = false, features = ["parameterized-consensus-hook",] } +cumulus-pallet-session-benchmarking = { path = "../../../../pallets/session-benchmarking", default-features = false} +cumulus-pallet-xcm = { path = "../../../../pallets/xcm", default-features = false } +cumulus-pallet-xcmp-queue = { path = "../../../../pallets/xcmp-queue", default-features = false } +cumulus-primitives-core = { path = "../../../../primitives/core", default-features = false } +cumulus-primitives-utility = { path = "../../../../primitives/utility", default-features = false } +pallet-collator-selection = { path = "../../../../pallets/collator-selection", default-features = false } +parachain-info = { path = "../../../pallets/parachain-info", default-features = false } +parachains-common = { path = "../../../common", default-features = false } +assets-common = { path = "../common", default-features = false } + +[dev-dependencies] +asset-test-utils = { path = "../test-utils" } + +[build-dependencies] +substrate-wasm-builder = { path = "../../../../../substrate/utils/wasm-builder", optional = true } + +[features] +default = [ "std" ] +# When enabled the `state_version` is set to `1`. +# This means that the chain will start using the new state format. The migration is lazy, so +# it requires to write a storage value to use the new state format. To migrate all the other +# storage values that aren't touched the state migration pallet is added as well. +# This pallet will migrate the entire state, controlled through some account. +# +# This feature should be removed when the main-net will be migrated. +state-trie-version-1 = [ "pallet-state-trie-migration" ] +runtime-benchmarks = [ + "assets-common/runtime-benchmarks", + "cumulus-pallet-parachain-system/runtime-benchmarks", + "cumulus-pallet-session-benchmarking/runtime-benchmarks", + "cumulus-pallet-xcmp-queue/runtime-benchmarks", + "cumulus-primitives-utility/runtime-benchmarks", + "frame-benchmarking/runtime-benchmarks", + "frame-support/runtime-benchmarks", + "frame-system-benchmarking/runtime-benchmarks", + "frame-system/runtime-benchmarks", + "pallet-asset-conversion/runtime-benchmarks", + "pallet-assets/runtime-benchmarks", + "pallet-balances/runtime-benchmarks", + "pallet-collator-selection/runtime-benchmarks", + "pallet-multisig/runtime-benchmarks", + "pallet-nft-fractionalization/runtime-benchmarks", + "pallet-nfts/runtime-benchmarks", + "pallet-proxy/runtime-benchmarks", + "pallet-state-trie-migration/runtime-benchmarks", + "pallet-timestamp/runtime-benchmarks", + "pallet-uniques/runtime-benchmarks", + "pallet-utility/runtime-benchmarks", + "pallet-xcm-benchmarks/runtime-benchmarks", + "pallet-xcm/runtime-benchmarks", + "parachains-common/runtime-benchmarks", + "polkadot-parachain-primitives/runtime-benchmarks", + "polkadot-runtime-common/runtime-benchmarks", + "sp-runtime/runtime-benchmarks", + "xcm-builder/runtime-benchmarks", + "xcm-executor/runtime-benchmarks", +] +try-runtime = [ + "cumulus-pallet-aura-ext/try-runtime", + "cumulus-pallet-dmp-queue/try-runtime", + "cumulus-pallet-parachain-system/try-runtime", + "cumulus-pallet-xcm/try-runtime", + "cumulus-pallet-xcmp-queue/try-runtime", + "frame-executive/try-runtime", + "frame-support/try-runtime", + "frame-system/try-runtime", + "frame-try-runtime/try-runtime", + "pallet-asset-conversion-tx-payment/try-runtime", + "pallet-asset-conversion/try-runtime", + "pallet-assets/try-runtime", + "pallet-aura/try-runtime", + "pallet-authorship/try-runtime", + "pallet-balances/try-runtime", + "pallet-collator-selection/try-runtime", + "pallet-multisig/try-runtime", + "pallet-nft-fractionalization/try-runtime", + "pallet-nfts/try-runtime", + "pallet-proxy/try-runtime", + "pallet-session/try-runtime", + "pallet-state-trie-migration/try-runtime", + "pallet-timestamp/try-runtime", + "pallet-transaction-payment/try-runtime", + "pallet-uniques/try-runtime", + "pallet-utility/try-runtime", + "pallet-xcm/try-runtime", + "parachain-info/try-runtime", + "polkadot-runtime-common/try-runtime", + "sp-runtime/try-runtime", +] +std = [ + "assets-common/std", + "codec/std", + "cumulus-pallet-aura-ext/std", + "cumulus-pallet-dmp-queue/std", + "cumulus-pallet-parachain-system/std", + "cumulus-pallet-session-benchmarking/std", + "cumulus-pallet-xcm/std", + "cumulus-pallet-xcmp-queue/std", + "cumulus-primitives-core/std", + "cumulus-primitives-utility/std", + "frame-benchmarking?/std", + "frame-executive/std", + "frame-support/std", + "frame-system-benchmarking?/std", + "frame-system-rpc-runtime-api/std", + "frame-system/std", + "frame-try-runtime?/std", + "log/std", + "pallet-asset-conversion-tx-payment/std", + "pallet-asset-conversion/std", + "pallet-assets/std", + "pallet-aura/std", + "pallet-authorship/std", + "pallet-balances/std", + "pallet-collator-selection/std", + "pallet-multisig/std", + "pallet-nft-fractionalization/std", + "pallet-nfts-runtime-api/std", + "pallet-nfts/std", + "pallet-proxy/std", + "pallet-session/std", + "pallet-state-trie-migration/std", + "pallet-timestamp/std", + "pallet-transaction-payment-rpc-runtime-api/std", + "pallet-transaction-payment/std", + "pallet-uniques/std", + "pallet-utility/std", + "pallet-xcm-benchmarks?/std", + "pallet-xcm/std", + "parachain-info/std", + "parachains-common/std", + "polkadot-core-primitives/std", + "polkadot-parachain-primitives/std", + "polkadot-runtime-common/std", + "scale-info/std", + "sp-api/std", + "sp-block-builder/std", + "sp-consensus-aura/std", + "sp-core/std", + "sp-genesis-builder/std", + "sp-inherents/std", + "sp-offchain/std", + "sp-runtime/std", + "sp-session/std", + "sp-std/std", + "sp-storage/std", + "sp-transaction-pool/std", + "sp-version/std", + "sp-weights/std", + "substrate-wasm-builder", + "xcm-builder/std", + "xcm-executor/std", + "xcm/std", +] + +experimental = [ "pallet-aura/experimental" ] diff --git a/cumulus/parachains/runtimes/assets/asset-hub-kusama/build.rs b/cumulus/parachains/runtimes/assets/asset-hub-kusama/build.rs new file mode 100644 index 000000000000..60f8a125129f --- /dev/null +++ b/cumulus/parachains/runtimes/assets/asset-hub-kusama/build.rs @@ -0,0 +1,26 @@ +// 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. + +#[cfg(feature = "std")] +fn main() { + substrate_wasm_builder::WasmBuilder::new() + .with_current_project() + .export_heap_base() + .import_memory() + .build() +} + +#[cfg(not(feature = "std"))] +fn main() {} diff --git a/cumulus/parachains/runtimes/assets/asset-hub-kusama/src/lib.rs b/cumulus/parachains/runtimes/assets/asset-hub-kusama/src/lib.rs new file mode 100644 index 000000000000..bc17fcada23f --- /dev/null +++ b/cumulus/parachains/runtimes/assets/asset-hub-kusama/src/lib.rs @@ -0,0 +1,1482 @@ +// 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. + +//! # Asset Hub Kusama Runtime +//! +//! Asset Hub Kusama, formerly known as "Statemine", is the canary network for its Polkadot cousin. + +#![cfg_attr(not(feature = "std"), no_std)] +#![recursion_limit = "256"] + +// Make the WASM binary available. +#[cfg(feature = "std")] +include!(concat!(env!("OUT_DIR"), "/wasm_binary.rs")); + +mod weights; +pub mod xcm_config; + +use assets_common::{ + foreign_creators::ForeignCreators, + local_and_foreign_assets::{LocalAndForeignAssets, MultiLocationConverter}, + matching::FromSiblingParachain, + AssetIdForTrustBackedAssetsConvert, MultiLocationForAssetId, +}; +use cumulus_pallet_parachain_system::RelayNumberStrictlyIncreases; +use cumulus_primitives_core::ParaId; +use polkadot_runtime_common::xcm_sender::NoPriceForMessageDelivery; +use sp_api::impl_runtime_apis; +use sp_core::{crypto::KeyTypeId, OpaqueMetadata}; +use sp_runtime::{ + create_runtime_str, generic, impl_opaque_keys, + traits::{AccountIdConversion, AccountIdLookup, BlakeTwo256, Block as BlockT, Verify}, + transaction_validity::{TransactionSource, TransactionValidity}, + ApplyExtrinsicResult, Permill, +}; + +use sp_std::prelude::*; +#[cfg(feature = "std")] +use sp_version::NativeVersion; +use sp_version::RuntimeVersion; + +use codec::{Decode, Encode, MaxEncodedLen}; +use frame_support::{ + construct_runtime, + dispatch::DispatchClass, + genesis_builder_helper::{build_config, create_default_config}, + ord_parameter_types, parameter_types, + traits::{ + AsEnsureOriginWithArg, ConstBool, ConstU128, ConstU32, ConstU64, ConstU8, EitherOfDiverse, + InstanceFilter, + }, + weights::{ConstantMultiplier, Weight}, + BoundedVec, PalletId, +}; +use frame_system::{ + limits::{BlockLength, BlockWeights}, + EnsureRoot, EnsureSigned, EnsureSignedBy, +}; +use pallet_asset_conversion_tx_payment::AssetConversionAdapter; +use pallet_nfts::PalletFeatures; +pub use parachains_common as common; +use parachains_common::{ + impls::DealWithFees, + kusama::{consensus::*, currency::*, fee::WeightToFee}, + AccountId, AssetIdForTrustBackedAssets, AuraId, Balance, BlockNumber, Hash, Header, Nonce, + Signature, AVERAGE_ON_INITIALIZE_RATIO, DAYS, HOURS, MAXIMUM_BLOCK_WEIGHT, + NORMAL_DISPATCH_RATIO, SLOT_DURATION, +}; +use sp_runtime::RuntimeDebug; +use xcm::opaque::v3::MultiLocation; +use xcm_config::{ + FellowshipLocation, ForeignAssetsConvertedConcreteId, GovernanceLocation, KsmLocation, + PoolAssetsConvertedConcreteId, TrustBackedAssetsConvertedConcreteId, XcmConfig, +}; + +#[cfg(any(feature = "std", test))] +pub use sp_runtime::BuildStorage; + +// Polkadot imports +use pallet_xcm::{EnsureXcm, IsVoiceOfBody}; +use polkadot_runtime_common::{BlockHashCount, SlowAdjustingFeeUpdate}; +use xcm::latest::prelude::*; +use xcm_executor::XcmExecutor; + +use crate::xcm_config::{ + ForeignCreatorsSovereignAccountOf, LocalAndForeignAssetsMultiLocationMatcher, + TrustBackedAssetsPalletLocation, +}; +use weights::{BlockExecutionWeight, ExtrinsicBaseWeight, RocksDbWeight}; + +impl_opaque_keys! { + pub struct SessionKeys { + pub aura: Aura, + } +} + +#[cfg(feature = "state-trie-version-1")] +#[sp_version::runtime_version] +pub const VERSION: RuntimeVersion = RuntimeVersion { + // Note: "statemine" is the legacy name for this chain. It has been renamed to + // "asset-hub-kusama". Many wallets/tools depend on the `spec_name`, so it remains "statemine" + // for the time being. Wallets/tools should update to treat "asset-hub-kusama" equally. + spec_name: create_runtime_str!("statemine"), + impl_name: create_runtime_str!("statemine"), + authoring_version: 1, + spec_version: 10000, + impl_version: 0, + apis: RUNTIME_API_VERSIONS, + transaction_version: 13, + state_version: 1, +}; + +#[cfg(not(feature = "state-trie-version-1"))] +#[sp_version::runtime_version] +pub const VERSION: RuntimeVersion = RuntimeVersion { + // Note: "statemine" is the legacy name for this change. It has been renamed to + // "asset-hub-kusama". Many wallets/tools depend on the `spec_name`, so it remains "statemine" + // for the time being. Wallets/tools should update to treat "asset-hub-kusama" equally. + spec_name: create_runtime_str!("statemine"), + impl_name: create_runtime_str!("statemine"), + authoring_version: 1, + spec_version: 10000, + impl_version: 0, + apis: RUNTIME_API_VERSIONS, + transaction_version: 13, + state_version: 0, +}; + +/// The version information used to identify this runtime when compiled natively. +#[cfg(feature = "std")] +pub fn native_version() -> NativeVersion { + NativeVersion { runtime_version: VERSION, can_author_with: Default::default() } +} + +parameter_types! { + pub const Version: RuntimeVersion = VERSION; + pub RuntimeBlockLength: BlockLength = + BlockLength::max_with_normal_ratio(5 * 1024 * 1024, NORMAL_DISPATCH_RATIO); + pub RuntimeBlockWeights: BlockWeights = BlockWeights::builder() + .base_block(BlockExecutionWeight::get()) + .for_class(DispatchClass::all(), |weights| { + weights.base_extrinsic = ExtrinsicBaseWeight::get(); + }) + .for_class(DispatchClass::Normal, |weights| { + weights.max_total = Some(NORMAL_DISPATCH_RATIO * MAXIMUM_BLOCK_WEIGHT); + }) + .for_class(DispatchClass::Operational, |weights| { + weights.max_total = Some(MAXIMUM_BLOCK_WEIGHT); + // Operational transactions have some extra reserved space, so that they + // are included even if block reached `MAXIMUM_BLOCK_WEIGHT`. + weights.reserved = Some( + MAXIMUM_BLOCK_WEIGHT - NORMAL_DISPATCH_RATIO * MAXIMUM_BLOCK_WEIGHT + ); + }) + .avg_block_initialization(AVERAGE_ON_INITIALIZE_RATIO) + .build_or_panic(); + pub const SS58Prefix: u8 = 2; +} + +// Configure FRAME pallets to include in runtime. +impl frame_system::Config for Runtime { + type BaseCallFilter = frame_support::traits::Everything; + type BlockWeights = RuntimeBlockWeights; + type BlockLength = RuntimeBlockLength; + type AccountId = AccountId; + type RuntimeCall = RuntimeCall; + type Lookup = AccountIdLookup; + type Nonce = Nonce; + type Hash = Hash; + type Hashing = BlakeTwo256; + type Block = Block; + type RuntimeEvent = RuntimeEvent; + type RuntimeOrigin = RuntimeOrigin; + type BlockHashCount = BlockHashCount; + type DbWeight = RocksDbWeight; + type Version = Version; + type PalletInfo = PalletInfo; + type OnNewAccount = (); + type OnKilledAccount = (); + type AccountData = pallet_balances::AccountData; + type SystemWeightInfo = weights::frame_system::WeightInfo; + type SS58Prefix = SS58Prefix; + type OnSetCode = cumulus_pallet_parachain_system::ParachainSetCode; + type MaxConsumers = frame_support::traits::ConstU32<16>; +} + +impl pallet_timestamp::Config for Runtime { + /// A timestamp: milliseconds since the unix epoch. + type Moment = u64; + type OnTimestampSet = Aura; + type MinimumPeriod = ConstU64<{ SLOT_DURATION / 2 }>; + type WeightInfo = weights::pallet_timestamp::WeightInfo; +} + +impl pallet_authorship::Config for Runtime { + type FindAuthor = pallet_session::FindAccountFromAuthorIndex; + type EventHandler = (CollatorSelection,); +} + +parameter_types! { + pub const ExistentialDeposit: Balance = EXISTENTIAL_DEPOSIT; +} + +impl pallet_balances::Config for Runtime { + type MaxLocks = ConstU32<50>; + /// The type for recording an account's balance. + type Balance = Balance; + /// The ubiquitous event type. + type RuntimeEvent = RuntimeEvent; + type DustRemoval = (); + type ExistentialDeposit = ExistentialDeposit; + type AccountStore = System; + type WeightInfo = weights::pallet_balances::WeightInfo; + type MaxReserves = ConstU32<50>; + type ReserveIdentifier = [u8; 8]; + type RuntimeHoldReason = RuntimeHoldReason; + type RuntimeFreezeReason = RuntimeFreezeReason; + type FreezeIdentifier = (); + // We allow each account to have holds on it from: + // - `NftFractionalization`: 1 + type MaxHolds = ConstU32<1>; + type MaxFreezes = ConstU32<0>; +} + +parameter_types! { + /// Relay Chain `TransactionByteFee` / 10 + pub const TransactionByteFee: Balance = MILLICENTS; +} + +impl pallet_transaction_payment::Config for Runtime { + type RuntimeEvent = RuntimeEvent; + type OnChargeTransaction = + pallet_transaction_payment::CurrencyAdapter>; + type WeightToFee = WeightToFee; + type LengthToFee = ConstantMultiplier; + type FeeMultiplierUpdate = SlowAdjustingFeeUpdate; + type OperationalFeeMultiplier = ConstU8<5>; +} + +parameter_types! { + pub const AssetDeposit: Balance = UNITS / 10; // 1 / 10 UNITS deposit to create asset + pub const AssetAccountDeposit: Balance = deposit(1, 16); + pub const ApprovalDeposit: Balance = EXISTENTIAL_DEPOSIT; + pub const AssetsStringLimit: u32 = 50; + /// Key = 32 bytes, Value = 36 bytes (32+1+1+1+1) + // https://github.com/paritytech/substrate/blob/069917b/frame/assets/src/lib.rs#L257L271 + pub const MetadataDepositBase: Balance = deposit(1, 68); + pub const MetadataDepositPerByte: Balance = deposit(0, 1); +} + +/// We allow root to execute privileged asset operations. +pub type AssetsForceOrigin = EnsureRoot; + +// Called "Trust Backed" assets because these are generally registered by some account, and users of +// the asset assume it has some claimed backing. The pallet is called `Assets` in +// `construct_runtime` to avoid breaking changes on storage reads. +pub type TrustBackedAssetsInstance = pallet_assets::Instance1; +type TrustBackedAssetsCall = pallet_assets::Call; +impl pallet_assets::Config for Runtime { + type RuntimeEvent = RuntimeEvent; + type Balance = Balance; + type AssetId = AssetIdForTrustBackedAssets; + type AssetIdParameter = codec::Compact; + type Currency = Balances; + type CreateOrigin = AsEnsureOriginWithArg>; + type ForceOrigin = AssetsForceOrigin; + type AssetDeposit = AssetDeposit; + type MetadataDepositBase = MetadataDepositBase; + type MetadataDepositPerByte = MetadataDepositPerByte; + type ApprovalDeposit = ApprovalDeposit; + type StringLimit = AssetsStringLimit; + type Freezer = (); + type Extra = (); + type WeightInfo = weights::pallet_assets_local::WeightInfo; + type CallbackHandle = (); + type AssetAccountDeposit = AssetAccountDeposit; + type RemoveItemsLimit = frame_support::traits::ConstU32<1000>; + #[cfg(feature = "runtime-benchmarks")] + type BenchmarkHelper = (); +} + +parameter_types! { + pub const AssetConversionPalletId: PalletId = PalletId(*b"py/ascon"); + pub const AllowMultiAssetPools: bool = false; + // should be non-zero if AllowMultiAssetPools is true, otherwise can be zero + pub const LiquidityWithdrawalFee: Permill = Permill::from_percent(0); +} + +ord_parameter_types! { + pub const AssetConversionOrigin: sp_runtime::AccountId32 = + AccountIdConversion::::into_account_truncating(&AssetConversionPalletId::get()); +} + +pub type PoolAssetsInstance = pallet_assets::Instance3; +impl pallet_assets::Config for Runtime { + type RuntimeEvent = RuntimeEvent; + type Balance = Balance; + type RemoveItemsLimit = ConstU32<1000>; + type AssetId = u32; + type AssetIdParameter = u32; + type Currency = Balances; + type CreateOrigin = + AsEnsureOriginWithArg>; + type ForceOrigin = AssetsForceOrigin; + // Deposits are zero because creation/admin is limited to Asset Conversion pallet. + type AssetDeposit = ConstU128<0>; + type AssetAccountDeposit = ConstU128<0>; + type MetadataDepositBase = ConstU128<0>; + type MetadataDepositPerByte = ConstU128<0>; + type ApprovalDeposit = ApprovalDeposit; + type StringLimit = ConstU32<50>; + type Freezer = (); + type Extra = (); + type WeightInfo = weights::pallet_assets_pool::WeightInfo; + type CallbackHandle = (); + #[cfg(feature = "runtime-benchmarks")] + type BenchmarkHelper = (); +} + +impl pallet_asset_conversion::Config for Runtime { + type RuntimeEvent = RuntimeEvent; + type Balance = Balance; + type HigherPrecisionBalance = sp_core::U256; + type Currency = Balances; + type AssetBalance = Balance; + type AssetId = MultiLocation; + type Assets = LocalAndForeignAssets< + Assets, + AssetIdForTrustBackedAssetsConvert, + ForeignAssets, + >; + type PoolAssets = PoolAssets; + type PoolAssetId = u32; + type PoolSetupFee = ConstU128<0>; // Asset class deposit fees are sufficient to prevent spam + type PoolSetupFeeReceiver = AssetConversionOrigin; + // should be non-zero if `AllowMultiAssetPools` is true, otherwise can be zero. + type LiquidityWithdrawalFee = LiquidityWithdrawalFee; + type LPFee = ConstU32<3>; + type PalletId = AssetConversionPalletId; + type AllowMultiAssetPools = AllowMultiAssetPools; + type MaxSwapPathLength = ConstU32<4>; + type MultiAssetId = Box; + type MultiAssetIdConverter = + MultiLocationConverter; + type MintMinLiquidity = ConstU128<100>; + type WeightInfo = weights::pallet_asset_conversion::WeightInfo; + #[cfg(feature = "runtime-benchmarks")] + type BenchmarkHelper = + crate::xcm_config::BenchmarkMultiLocationConverter>; +} + +parameter_types! { + // we just reuse the same deposits + pub const ForeignAssetsAssetDeposit: Balance = AssetDeposit::get(); + pub const ForeignAssetsAssetAccountDeposit: Balance = AssetAccountDeposit::get(); + pub const ForeignAssetsApprovalDeposit: Balance = ApprovalDeposit::get(); + pub const ForeignAssetsAssetsStringLimit: u32 = AssetsStringLimit::get(); + pub const ForeignAssetsMetadataDepositBase: Balance = MetadataDepositBase::get(); + pub const ForeignAssetsMetadataDepositPerByte: Balance = MetadataDepositPerByte::get(); +} + +/// Assets managed by some foreign location. Note: we do not declare a `ForeignAssetsCall` type, as +/// this type is used in proxy definitions. We assume that a foreign location would not want to set +/// an individual, local account as a proxy for the issuance of their assets. This issuance should +/// be managed by the foreign location's governance. +pub type ForeignAssetsInstance = pallet_assets::Instance2; +impl pallet_assets::Config for Runtime { + type RuntimeEvent = RuntimeEvent; + type Balance = Balance; + type AssetId = MultiLocationForAssetId; + type AssetIdParameter = MultiLocationForAssetId; + type Currency = Balances; + type CreateOrigin = ForeignCreators< + (FromSiblingParachain>,), + ForeignCreatorsSovereignAccountOf, + AccountId, + >; + type ForceOrigin = AssetsForceOrigin; + type AssetDeposit = ForeignAssetsAssetDeposit; + type MetadataDepositBase = ForeignAssetsMetadataDepositBase; + type MetadataDepositPerByte = ForeignAssetsMetadataDepositPerByte; + type ApprovalDeposit = ForeignAssetsApprovalDeposit; + type StringLimit = ForeignAssetsAssetsStringLimit; + type Freezer = (); + type Extra = (); + type WeightInfo = weights::pallet_assets_foreign::WeightInfo; + type CallbackHandle = (); + type AssetAccountDeposit = ForeignAssetsAssetAccountDeposit; + type RemoveItemsLimit = frame_support::traits::ConstU32<1000>; + #[cfg(feature = "runtime-benchmarks")] + type BenchmarkHelper = xcm_config::XcmBenchmarkHelper; +} + +parameter_types! { + // One storage item; key size is 32; value is size 4+4+16+32 bytes = 56 bytes. + pub const DepositBase: Balance = deposit(1, 88); + // Additional storage item size of 32 bytes. + pub const DepositFactor: Balance = deposit(0, 32); + pub const MaxSignatories: u32 = 100; +} + +impl pallet_multisig::Config for Runtime { + type RuntimeEvent = RuntimeEvent; + type RuntimeCall = RuntimeCall; + type Currency = Balances; + type DepositBase = DepositBase; + type DepositFactor = DepositFactor; + type MaxSignatories = MaxSignatories; + type WeightInfo = weights::pallet_multisig::WeightInfo; +} + +impl pallet_utility::Config for Runtime { + type RuntimeEvent = RuntimeEvent; + type RuntimeCall = RuntimeCall; + type PalletsOrigin = OriginCaller; + type WeightInfo = weights::pallet_utility::WeightInfo; +} + +parameter_types! { + // One storage item; key size 32, value size 8; . + pub const ProxyDepositBase: Balance = deposit(1, 40); + // Additional storage item size of 33 bytes. + pub const ProxyDepositFactor: Balance = deposit(0, 33); + pub const MaxProxies: u16 = 32; + // One storage item; key size 32, value size 16 + pub const AnnouncementDepositBase: Balance = deposit(1, 48); + pub const AnnouncementDepositFactor: Balance = deposit(0, 66); + pub const MaxPending: u16 = 32; +} + +/// The type used to represent the kinds of proxying allowed. +#[derive( + Copy, + Clone, + Eq, + PartialEq, + Ord, + PartialOrd, + Encode, + Decode, + RuntimeDebug, + MaxEncodedLen, + scale_info::TypeInfo, +)] +pub enum ProxyType { + /// Fully permissioned proxy. Can execute any call on behalf of _proxied_. + Any, + /// Can execute any call that does not transfer funds or assets. + NonTransfer, + /// Proxy with the ability to reject time-delay proxy announcements. + CancelProxy, + /// Assets proxy. Can execute any call from `assets`, **including asset transfers**. + Assets, + /// Owner proxy. Can execute calls related to asset ownership. + AssetOwner, + /// Asset manager. Can execute calls related to asset management. + AssetManager, + /// Collator selection proxy. Can execute calls related to collator selection mechanism. + Collator, +} +impl Default for ProxyType { + fn default() -> Self { + Self::Any + } +} + +impl InstanceFilter for ProxyType { + fn filter(&self, c: &RuntimeCall) -> bool { + match self { + ProxyType::Any => true, + ProxyType::NonTransfer => !matches!( + c, + RuntimeCall::Balances { .. } | + RuntimeCall::Assets { .. } | + RuntimeCall::NftFractionalization { .. } | + RuntimeCall::Nfts { .. } | + RuntimeCall::Uniques { .. } + ), + ProxyType::CancelProxy => matches!( + c, + RuntimeCall::Proxy(pallet_proxy::Call::reject_announcement { .. }) | + RuntimeCall::Utility { .. } | + RuntimeCall::Multisig { .. } + ), + ProxyType::Assets => { + matches!( + c, + RuntimeCall::Assets { .. } | + RuntimeCall::Utility { .. } | + RuntimeCall::Multisig { .. } | + RuntimeCall::NftFractionalization { .. } | + RuntimeCall::Nfts { .. } | RuntimeCall::Uniques { .. } + ) + }, + ProxyType::AssetOwner => matches!( + c, + RuntimeCall::Assets(TrustBackedAssetsCall::create { .. }) | + RuntimeCall::Assets(TrustBackedAssetsCall::start_destroy { .. }) | + RuntimeCall::Assets(TrustBackedAssetsCall::destroy_accounts { .. }) | + RuntimeCall::Assets(TrustBackedAssetsCall::destroy_approvals { .. }) | + RuntimeCall::Assets(TrustBackedAssetsCall::finish_destroy { .. }) | + RuntimeCall::Assets(TrustBackedAssetsCall::transfer_ownership { .. }) | + RuntimeCall::Assets(TrustBackedAssetsCall::set_team { .. }) | + RuntimeCall::Assets(TrustBackedAssetsCall::set_metadata { .. }) | + RuntimeCall::Assets(TrustBackedAssetsCall::clear_metadata { .. }) | + RuntimeCall::Assets(TrustBackedAssetsCall::set_min_balance { .. }) | + RuntimeCall::Nfts(pallet_nfts::Call::create { .. }) | + RuntimeCall::Nfts(pallet_nfts::Call::destroy { .. }) | + RuntimeCall::Nfts(pallet_nfts::Call::redeposit { .. }) | + RuntimeCall::Nfts(pallet_nfts::Call::transfer_ownership { .. }) | + RuntimeCall::Nfts(pallet_nfts::Call::set_team { .. }) | + RuntimeCall::Nfts(pallet_nfts::Call::set_collection_max_supply { .. }) | + RuntimeCall::Nfts(pallet_nfts::Call::lock_collection { .. }) | + RuntimeCall::Uniques(pallet_uniques::Call::create { .. }) | + RuntimeCall::Uniques(pallet_uniques::Call::destroy { .. }) | + RuntimeCall::Uniques(pallet_uniques::Call::transfer_ownership { .. }) | + RuntimeCall::Uniques(pallet_uniques::Call::set_team { .. }) | + RuntimeCall::Uniques(pallet_uniques::Call::set_metadata { .. }) | + RuntimeCall::Uniques(pallet_uniques::Call::set_attribute { .. }) | + RuntimeCall::Uniques(pallet_uniques::Call::set_collection_metadata { .. }) | + RuntimeCall::Uniques(pallet_uniques::Call::clear_metadata { .. }) | + RuntimeCall::Uniques(pallet_uniques::Call::clear_attribute { .. }) | + RuntimeCall::Uniques(pallet_uniques::Call::clear_collection_metadata { .. }) | + RuntimeCall::Uniques(pallet_uniques::Call::set_collection_max_supply { .. }) | + RuntimeCall::Utility { .. } | + RuntimeCall::Multisig { .. } + ), + ProxyType::AssetManager => matches!( + c, + RuntimeCall::Assets(TrustBackedAssetsCall::mint { .. }) | + RuntimeCall::Assets(TrustBackedAssetsCall::burn { .. }) | + RuntimeCall::Assets(TrustBackedAssetsCall::freeze { .. }) | + RuntimeCall::Assets(TrustBackedAssetsCall::block { .. }) | + RuntimeCall::Assets(TrustBackedAssetsCall::thaw { .. }) | + RuntimeCall::Assets(TrustBackedAssetsCall::freeze_asset { .. }) | + RuntimeCall::Assets(TrustBackedAssetsCall::thaw_asset { .. }) | + RuntimeCall::Assets(TrustBackedAssetsCall::touch_other { .. }) | + RuntimeCall::Assets(TrustBackedAssetsCall::refund_other { .. }) | + RuntimeCall::Nfts(pallet_nfts::Call::force_mint { .. }) | + RuntimeCall::Nfts(pallet_nfts::Call::update_mint_settings { .. }) | + RuntimeCall::Nfts(pallet_nfts::Call::mint_pre_signed { .. }) | + RuntimeCall::Nfts(pallet_nfts::Call::set_attributes_pre_signed { .. }) | + RuntimeCall::Nfts(pallet_nfts::Call::lock_item_transfer { .. }) | + RuntimeCall::Nfts(pallet_nfts::Call::unlock_item_transfer { .. }) | + RuntimeCall::Nfts(pallet_nfts::Call::lock_item_properties { .. }) | + RuntimeCall::Nfts(pallet_nfts::Call::set_metadata { .. }) | + RuntimeCall::Nfts(pallet_nfts::Call::clear_metadata { .. }) | + RuntimeCall::Nfts(pallet_nfts::Call::set_collection_metadata { .. }) | + RuntimeCall::Nfts(pallet_nfts::Call::clear_collection_metadata { .. }) | + RuntimeCall::Uniques(pallet_uniques::Call::mint { .. }) | + RuntimeCall::Uniques(pallet_uniques::Call::burn { .. }) | + RuntimeCall::Uniques(pallet_uniques::Call::freeze { .. }) | + RuntimeCall::Uniques(pallet_uniques::Call::thaw { .. }) | + RuntimeCall::Uniques(pallet_uniques::Call::freeze_collection { .. }) | + RuntimeCall::Uniques(pallet_uniques::Call::thaw_collection { .. }) | + RuntimeCall::Utility { .. } | + RuntimeCall::Multisig { .. } + ), + ProxyType::Collator => matches!( + c, + RuntimeCall::CollatorSelection { .. } | + RuntimeCall::Utility { .. } | + RuntimeCall::Multisig { .. } + ), + } + } + + fn is_superset(&self, o: &Self) -> bool { + match (self, o) { + (x, y) if x == y => true, + (ProxyType::Any, _) => true, + (_, ProxyType::Any) => false, + (ProxyType::Assets, ProxyType::AssetOwner) => true, + (ProxyType::Assets, ProxyType::AssetManager) => true, + (ProxyType::NonTransfer, ProxyType::Collator) => true, + _ => false, + } + } +} + +impl pallet_proxy::Config for Runtime { + type RuntimeEvent = RuntimeEvent; + type RuntimeCall = RuntimeCall; + type Currency = Balances; + type ProxyType = ProxyType; + type ProxyDepositBase = ProxyDepositBase; + type ProxyDepositFactor = ProxyDepositFactor; + type MaxProxies = MaxProxies; + type WeightInfo = weights::pallet_proxy::WeightInfo; + type MaxPending = MaxPending; + type CallHasher = BlakeTwo256; + type AnnouncementDepositBase = AnnouncementDepositBase; + type AnnouncementDepositFactor = AnnouncementDepositFactor; +} + +parameter_types! { + pub const ReservedXcmpWeight: Weight = MAXIMUM_BLOCK_WEIGHT.saturating_div(4); + pub const ReservedDmpWeight: Weight = MAXIMUM_BLOCK_WEIGHT.saturating_div(4); +} + +impl cumulus_pallet_parachain_system::Config for Runtime { + type RuntimeEvent = RuntimeEvent; + type OnSystemEvent = (); + type SelfParaId = parachain_info::Pallet; + type DmpMessageHandler = DmpQueue; + type ReservedDmpWeight = ReservedDmpWeight; + type OutboundXcmpMessageSource = XcmpQueue; + type XcmpMessageHandler = XcmpQueue; + type ReservedXcmpWeight = ReservedXcmpWeight; + type CheckAssociatedRelayNumber = RelayNumberStrictlyIncreases; + type ConsensusHook = cumulus_pallet_aura_ext::FixedVelocityConsensusHook< + Runtime, + RELAY_CHAIN_SLOT_DURATION_MILLIS, + BLOCK_PROCESSING_VELOCITY, + UNINCLUDED_SEGMENT_CAPACITY, + >; +} + +impl parachain_info::Config for Runtime {} + +impl cumulus_pallet_aura_ext::Config for Runtime {} + +parameter_types! { + // Fellows pluralistic body. + pub const FellowsBodyId: BodyId = BodyId::Technical; +} + +impl cumulus_pallet_xcmp_queue::Config for Runtime { + type RuntimeEvent = RuntimeEvent; + type XcmExecutor = XcmExecutor; + type ChannelInfo = ParachainSystem; + type VersionWrapper = PolkadotXcm; + type ExecuteOverweightOrigin = EnsureRoot; + type ControllerOrigin = EitherOfDiverse< + EnsureRoot, + EnsureXcm>, + >; + type ControllerOriginConverter = xcm_config::XcmOriginToTransactDispatchOrigin; + type WeightInfo = weights::cumulus_pallet_xcmp_queue::WeightInfo; + type PriceForSiblingDelivery = NoPriceForMessageDelivery; +} + +impl cumulus_pallet_dmp_queue::Config for Runtime { + type RuntimeEvent = RuntimeEvent; + type XcmExecutor = XcmExecutor; + type ExecuteOverweightOrigin = EnsureRoot; +} + +parameter_types! { + pub const Period: u32 = 6 * HOURS; + pub const Offset: u32 = 0; +} + +impl pallet_session::Config for Runtime { + type RuntimeEvent = RuntimeEvent; + type ValidatorId = ::AccountId; + // we don't have stash and controller, thus we don't need the convert as well. + type ValidatorIdOf = pallet_collator_selection::IdentityCollator; + type ShouldEndSession = pallet_session::PeriodicSessions; + type NextSessionRotation = pallet_session::PeriodicSessions; + type SessionManager = CollatorSelection; + // Essentially just Aura, but let's be pedantic. + type SessionHandler = ::KeyTypeIdProviders; + type Keys = SessionKeys; + type WeightInfo = weights::pallet_session::WeightInfo; +} + +impl pallet_aura::Config for Runtime { + type AuthorityId = AuraId; + type DisabledValidators = (); + type MaxAuthorities = ConstU32<100_000>; + type AllowMultipleBlocksPerSlot = ConstBool; + #[cfg(feature = "experimental")] + type SlotDuration = pallet_aura::MinimumPeriodTimesTwo; +} + +parameter_types! { + pub const PotId: PalletId = PalletId(*b"PotStake"); + pub const SessionLength: BlockNumber = 6 * HOURS; + // StakingAdmin pluralistic body. + pub const StakingAdminBodyId: BodyId = BodyId::Defense; +} + +/// We allow root and the `StakingAdmin` to execute privileged collator selection operations. +pub type CollatorSelectionUpdateOrigin = EitherOfDiverse< + EnsureRoot, + EnsureXcm>, +>; + +impl pallet_collator_selection::Config for Runtime { + type RuntimeEvent = RuntimeEvent; + type Currency = Balances; + type UpdateOrigin = CollatorSelectionUpdateOrigin; + type PotId = PotId; + type MaxCandidates = ConstU32<100>; + type MinEligibleCollators = ConstU32<4>; + type MaxInvulnerables = ConstU32<20>; + // should be a multiple of session or things will get inconsistent + type KickThreshold = Period; + type ValidatorId = ::AccountId; + type ValidatorIdOf = pallet_collator_selection::IdentityCollator; + type ValidatorRegistration = Session; + type WeightInfo = weights::pallet_collator_selection::WeightInfo; +} + +impl pallet_asset_conversion_tx_payment::Config for Runtime { + type RuntimeEvent = RuntimeEvent; + type Fungibles = LocalAndForeignAssets< + Assets, + AssetIdForTrustBackedAssetsConvert, + ForeignAssets, + >; + type OnChargeAssetTransaction = AssetConversionAdapter; +} + +parameter_types! { + pub const UniquesCollectionDeposit: Balance = UNITS / 10; // 1 / 10 UNIT deposit to create a collection + pub const UniquesItemDeposit: Balance = UNITS / 1_000; // 1 / 1000 UNIT deposit to mint an item + pub const UniquesMetadataDepositBase: Balance = deposit(1, 129); + pub const UniquesAttributeDepositBase: Balance = deposit(1, 0); + pub const UniquesDepositPerByte: Balance = deposit(0, 1); +} + +impl pallet_uniques::Config for Runtime { + type RuntimeEvent = RuntimeEvent; + type CollectionId = u32; + type ItemId = u32; + type Currency = Balances; + type ForceOrigin = AssetsForceOrigin; + type CollectionDeposit = UniquesCollectionDeposit; + type ItemDeposit = UniquesItemDeposit; + type MetadataDepositBase = UniquesMetadataDepositBase; + type AttributeDepositBase = UniquesAttributeDepositBase; + type DepositPerByte = UniquesDepositPerByte; + type StringLimit = ConstU32<128>; + type KeyLimit = ConstU32<32>; + type ValueLimit = ConstU32<64>; + type WeightInfo = weights::pallet_uniques::WeightInfo; + #[cfg(feature = "runtime-benchmarks")] + type Helper = (); + type CreateOrigin = AsEnsureOriginWithArg>; + type Locker = (); +} + +parameter_types! { + pub const NftFractionalizationPalletId: PalletId = PalletId(*b"fraction"); + pub NewAssetSymbol: BoundedVec = (*b"FRAC").to_vec().try_into().unwrap(); + pub NewAssetName: BoundedVec = (*b"Frac").to_vec().try_into().unwrap(); +} + +impl pallet_nft_fractionalization::Config for Runtime { + type RuntimeEvent = RuntimeEvent; + type Deposit = AssetDeposit; + type Currency = Balances; + type NewAssetSymbol = NewAssetSymbol; + type NewAssetName = NewAssetName; + type StringLimit = AssetsStringLimit; + type NftCollectionId = ::CollectionId; + type NftId = ::ItemId; + type AssetBalance = ::Balance; + type AssetId = >::AssetId; + type Assets = Assets; + type Nfts = Nfts; + type PalletId = NftFractionalizationPalletId; + type WeightInfo = pallet_nft_fractionalization::weights::SubstrateWeight; + type RuntimeHoldReason = RuntimeHoldReason; + #[cfg(feature = "runtime-benchmarks")] + type BenchmarkHelper = (); +} + +parameter_types! { + pub NftsPalletFeatures: PalletFeatures = PalletFeatures::all_enabled(); + pub const NftsMaxDeadlineDuration: BlockNumber = 12 * 30 * DAYS; + // re-use the Uniques deposits + pub const NftsCollectionDeposit: Balance = UniquesCollectionDeposit::get(); + pub const NftsItemDeposit: Balance = UniquesItemDeposit::get(); + pub const NftsMetadataDepositBase: Balance = UniquesMetadataDepositBase::get(); + pub const NftsAttributeDepositBase: Balance = UniquesAttributeDepositBase::get(); + pub const NftsDepositPerByte: Balance = UniquesDepositPerByte::get(); +} + +impl pallet_nfts::Config for Runtime { + type RuntimeEvent = RuntimeEvent; + type CollectionId = u32; + type ItemId = u32; + type Currency = Balances; + type CreateOrigin = AsEnsureOriginWithArg>; + type ForceOrigin = AssetsForceOrigin; + type Locker = (); + type CollectionDeposit = NftsCollectionDeposit; + type ItemDeposit = NftsItemDeposit; + type MetadataDepositBase = NftsMetadataDepositBase; + type AttributeDepositBase = NftsAttributeDepositBase; + type DepositPerByte = NftsDepositPerByte; + type StringLimit = ConstU32<256>; + type KeyLimit = ConstU32<64>; + type ValueLimit = ConstU32<256>; + type ApprovalsLimit = ConstU32<20>; + type ItemAttributesApprovalsLimit = ConstU32<30>; + type MaxTips = ConstU32<10>; + type MaxDeadlineDuration = NftsMaxDeadlineDuration; + type MaxAttributesPerCall = ConstU32<10>; + type Features = NftsPalletFeatures; + type OffchainSignature = Signature; + type OffchainPublic = ::Signer; + type WeightInfo = weights::pallet_nfts::WeightInfo; + #[cfg(feature = "runtime-benchmarks")] + type Helper = (); +} + +// Create the runtime by composing the FRAME pallets that were previously configured. +construct_runtime!( + pub enum Runtime + { + // System support stuff. + System: frame_system::{Pallet, Call, Config, Storage, Event} = 0, + ParachainSystem: cumulus_pallet_parachain_system::{ + Pallet, Call, Config, Storage, Inherent, Event, ValidateUnsigned, + } = 1, + // RandomnessCollectiveFlip = 2 removed + Timestamp: pallet_timestamp::{Pallet, Call, Storage, Inherent} = 3, + ParachainInfo: parachain_info::{Pallet, Storage, Config} = 4, + + // Monetary stuff. + Balances: pallet_balances::{Pallet, Call, Storage, Config, Event} = 10, + TransactionPayment: pallet_transaction_payment::{Pallet, Storage, Event} = 11, + AssetTxPayment: pallet_asset_conversion_tx_payment::{Pallet, Event} = 13, + + // Collator support. the order of these 5 are important and shall not change. + Authorship: pallet_authorship::{Pallet, Storage} = 20, + CollatorSelection: pallet_collator_selection::{Pallet, Call, Storage, Event, Config} = 21, + Session: pallet_session::{Pallet, Call, Storage, Event, Config} = 22, + Aura: pallet_aura::{Pallet, Storage, Config} = 23, + AuraExt: cumulus_pallet_aura_ext::{Pallet, Storage, Config} = 24, + + // XCM helpers. + XcmpQueue: cumulus_pallet_xcmp_queue::{Pallet, Call, Storage, Event} = 30, + PolkadotXcm: pallet_xcm::{Pallet, Call, Storage, Event, Origin, Config} = 31, + CumulusXcm: cumulus_pallet_xcm::{Pallet, Event, Origin} = 32, + DmpQueue: cumulus_pallet_dmp_queue::{Pallet, Call, Storage, Event} = 33, + + // Handy utilities. + Utility: pallet_utility::{Pallet, Call, Event} = 40, + Multisig: pallet_multisig::{Pallet, Call, Storage, Event} = 41, + Proxy: pallet_proxy::{Pallet, Call, Storage, Event} = 42, + + // The main stage. + Assets: pallet_assets::::{Pallet, Call, Storage, Event} = 50, + Uniques: pallet_uniques::{Pallet, Call, Storage, Event} = 51, + Nfts: pallet_nfts::{Pallet, Call, Storage, Event} = 52, + ForeignAssets: pallet_assets::::{Pallet, Call, Storage, Event} = 53, + NftFractionalization: pallet_nft_fractionalization::{Pallet, Call, Storage, Event, HoldReason} = 54, + + PoolAssets: pallet_assets::::{Pallet, Call, Storage, Event} = 55, + AssetConversion: pallet_asset_conversion::{Pallet, Call, Storage, Event} = 56, + + #[cfg(feature = "state-trie-version-1")] + StateTrieMigration: pallet_state_trie_migration = 70, + } +); + +/// The address format for describing accounts. +pub type Address = sp_runtime::MultiAddress; +/// Block type as expected by this runtime. +pub type Block = generic::Block; +/// A Block signed with a Justification +pub type SignedBlock = generic::SignedBlock; +/// BlockId type as expected by this runtime. +pub type BlockId = generic::BlockId; +/// The SignedExtension to the basic transaction logic. +pub type SignedExtra = ( + frame_system::CheckNonZeroSender, + frame_system::CheckSpecVersion, + frame_system::CheckTxVersion, + frame_system::CheckGenesis, + frame_system::CheckEra, + frame_system::CheckNonce, + frame_system::CheckWeight, + pallet_asset_conversion_tx_payment::ChargeAssetTxPayment, +); +/// Unchecked extrinsic type as expected by this runtime. +pub type UncheckedExtrinsic = + generic::UncheckedExtrinsic; +/// Migrations to apply on runtime upgrade. +pub type Migrations = (pallet_collator_selection::migration::v1::MigrateToV1,); + +/// Executive: handles dispatch to the various modules. +pub type Executive = frame_executive::Executive< + Runtime, + Block, + frame_system::ChainContext, + Runtime, + AllPalletsWithSystem, + Migrations, +>; + +#[cfg(feature = "runtime-benchmarks")] +#[macro_use] +extern crate frame_benchmarking; + +#[cfg(feature = "runtime-benchmarks")] +mod benches { + define_benchmarks!( + [frame_system, SystemBench::] + [pallet_assets, Local] + [pallet_assets, Foreign] + [pallet_assets, Pool] + [pallet_asset_conversion, AssetConversion] + [pallet_balances, Balances] + [pallet_multisig, Multisig] + [pallet_nft_fractionalization, NftFractionalization] + [pallet_nfts, Nfts] + [pallet_proxy, Proxy] + [pallet_session, SessionBench::] + [pallet_uniques, Uniques] + [pallet_utility, Utility] + [pallet_timestamp, Timestamp] + [pallet_collator_selection, CollatorSelection] + [cumulus_pallet_xcmp_queue, XcmpQueue] + // XCM + [pallet_xcm, PolkadotXcm] + // NOTE: Make sure you point to the individual modules below. + [pallet_xcm_benchmarks::fungible, XcmBalances] + [pallet_xcm_benchmarks::generic, XcmGeneric] + ); +} + +impl_runtime_apis! { + impl sp_consensus_aura::AuraApi for Runtime { + fn slot_duration() -> sp_consensus_aura::SlotDuration { + sp_consensus_aura::SlotDuration::from_millis(Aura::slot_duration()) + } + + fn authorities() -> Vec { + Aura::authorities().into_inner() + } + } + + impl sp_api::Core for Runtime { + fn version() -> RuntimeVersion { + VERSION + } + + fn execute_block(block: Block) { + Executive::execute_block(block) + } + + fn initialize_block(header: &::Header) { + Executive::initialize_block(header) + } + } + + impl sp_api::Metadata for Runtime { + fn metadata() -> OpaqueMetadata { + OpaqueMetadata::new(Runtime::metadata().into()) + } + + fn metadata_at_version(version: u32) -> Option { + Runtime::metadata_at_version(version) + } + + fn metadata_versions() -> sp_std::vec::Vec { + Runtime::metadata_versions() + } + } + + impl sp_block_builder::BlockBuilder for Runtime { + fn apply_extrinsic(extrinsic: ::Extrinsic) -> ApplyExtrinsicResult { + Executive::apply_extrinsic(extrinsic) + } + + fn finalize_block() -> ::Header { + Executive::finalize_block() + } + + fn inherent_extrinsics(data: sp_inherents::InherentData) -> Vec<::Extrinsic> { + data.create_extrinsics() + } + + fn check_inherents( + block: Block, + data: sp_inherents::InherentData, + ) -> sp_inherents::CheckInherentsResult { + data.check_extrinsics(&block) + } + } + + impl sp_transaction_pool::runtime_api::TaggedTransactionQueue for Runtime { + fn validate_transaction( + source: TransactionSource, + tx: ::Extrinsic, + block_hash: ::Hash, + ) -> TransactionValidity { + Executive::validate_transaction(source, tx, block_hash) + } + } + + impl sp_offchain::OffchainWorkerApi for Runtime { + fn offchain_worker(header: &::Header) { + Executive::offchain_worker(header) + } + } + + impl sp_session::SessionKeys for Runtime { + fn generate_session_keys(seed: Option>) -> Vec { + SessionKeys::generate(seed) + } + + fn decode_session_keys( + encoded: Vec, + ) -> Option, KeyTypeId)>> { + SessionKeys::decode_into_raw_public_keys(&encoded) + } + } + + impl frame_system_rpc_runtime_api::AccountNonceApi for Runtime { + fn account_nonce(account: AccountId) -> Nonce { + System::account_nonce(account) + } + } + + impl pallet_asset_conversion::AssetConversionApi< + Block, + Balance, + u128, + Box, + > for Runtime + { + fn quote_price_exact_tokens_for_tokens(asset1: Box, asset2: Box, amount: u128, include_fee: bool) -> Option { + AssetConversion::quote_price_exact_tokens_for_tokens(asset1, asset2, amount, include_fee) + } + fn quote_price_tokens_for_exact_tokens(asset1: Box, asset2: Box, amount: u128, include_fee: bool) -> Option { + AssetConversion::quote_price_tokens_for_exact_tokens(asset1, asset2, amount, include_fee) + } + fn get_reserves(asset1: Box, asset2: Box) -> Option<(Balance, Balance)> { + AssetConversion::get_reserves(&asset1, &asset2).ok() + } + } + + impl pallet_transaction_payment_rpc_runtime_api::TransactionPaymentApi for Runtime { + fn query_info( + uxt: ::Extrinsic, + len: u32, + ) -> pallet_transaction_payment_rpc_runtime_api::RuntimeDispatchInfo { + TransactionPayment::query_info(uxt, len) + } + fn query_fee_details( + uxt: ::Extrinsic, + len: u32, + ) -> pallet_transaction_payment::FeeDetails { + TransactionPayment::query_fee_details(uxt, len) + } + fn query_weight_to_fee(weight: Weight) -> Balance { + TransactionPayment::weight_to_fee(weight) + } + fn query_length_to_fee(length: u32) -> Balance { + TransactionPayment::length_to_fee(length) + } + } + + impl pallet_transaction_payment_rpc_runtime_api::TransactionPaymentCallApi + for Runtime + { + fn query_call_info( + call: RuntimeCall, + len: u32, + ) -> pallet_transaction_payment::RuntimeDispatchInfo { + TransactionPayment::query_call_info(call, len) + } + fn query_call_fee_details( + call: RuntimeCall, + len: u32, + ) -> pallet_transaction_payment::FeeDetails { + TransactionPayment::query_call_fee_details(call, len) + } + fn query_weight_to_fee(weight: Weight) -> Balance { + TransactionPayment::weight_to_fee(weight) + } + fn query_length_to_fee(length: u32) -> Balance { + TransactionPayment::length_to_fee(length) + } + } + + impl assets_common::runtime_api::FungiblesApi< + Block, + AccountId, + > for Runtime + { + fn query_account_balances(account: AccountId) -> Result { + use assets_common::fungible_conversion::{convert, convert_balance}; + Ok([ + // collect pallet_balance + { + let balance = Balances::free_balance(account.clone()); + if balance > 0 { + vec![convert_balance::(balance)?] + } else { + vec![] + } + }, + // collect pallet_assets (TrustBackedAssets) + convert::<_, _, _, _, TrustBackedAssetsConvertedConcreteId>( + Assets::account_balances(account.clone()) + .iter() + .filter(|(_, balance)| balance > &0) + )?, + // collect pallet_assets (ForeignAssets) + convert::<_, _, _, _, ForeignAssetsConvertedConcreteId>( + ForeignAssets::account_balances(account.clone()) + .iter() + .filter(|(_, balance)| balance > &0) + )?, + // collect pallet_assets (PoolAssets) + convert::<_, _, _, _, PoolAssetsConvertedConcreteId>( + PoolAssets::account_balances(account) + .iter() + .filter(|(_, balance)| balance > &0) + )?, + // collect ... e.g. other tokens + ].concat().into()) + } + } + + impl cumulus_primitives_core::CollectCollationInfo for Runtime { + fn collect_collation_info(header: &::Header) -> cumulus_primitives_core::CollationInfo { + ParachainSystem::collect_collation_info(header) + } + } + + #[cfg(feature = "try-runtime")] + impl frame_try_runtime::TryRuntime for Runtime { + fn on_runtime_upgrade(checks: frame_try_runtime::UpgradeCheckSelect) -> (Weight, Weight) { + let weight = Executive::try_runtime_upgrade(checks).unwrap(); + (weight, RuntimeBlockWeights::get().max_block) + } + + fn execute_block( + block: Block, + state_root_check: bool, + signature_check: bool, + select: frame_try_runtime::TryStateSelect, + ) -> Weight { + // NOTE: intentional unwrap: we don't want to propagate the error backwards, and want to + // have a backtrace here. + Executive::try_execute_block(block, state_root_check, signature_check, select).unwrap() + } + } + + #[cfg(feature = "runtime-benchmarks")] + impl frame_benchmarking::Benchmark for Runtime { + fn benchmark_metadata(extra: bool) -> ( + Vec, + Vec, + ) { + use frame_benchmarking::{Benchmarking, BenchmarkList}; + use frame_support::traits::StorageInfoTrait; + use frame_system_benchmarking::Pallet as SystemBench; + use cumulus_pallet_session_benchmarking::Pallet as SessionBench; + + // This is defined once again in dispatch_benchmark, because list_benchmarks! + // and add_benchmarks! are macros exported by define_benchmarks! macros and those types + // are referenced in that call. + type XcmBalances = pallet_xcm_benchmarks::fungible::Pallet::; + type XcmGeneric = pallet_xcm_benchmarks::generic::Pallet::; + + // Benchmark files generated for `Assets/ForeignAssets` instances are by default + // `pallet_assets_assets.rs / pallet_assets_foreign_assets`, which is not really nice, + // so with this redefinition we can change names to nicer: + // `pallet_assets_local.rs / pallet_assets_foreign.rs`. + type Local = pallet_assets::Pallet::; + type Foreign = pallet_assets::Pallet::; + type Pool = pallet_assets::Pallet::; + + let mut list = Vec::::new(); + list_benchmarks!(list, extra); + + let storage_info = AllPalletsWithSystem::storage_info(); + (list, storage_info) + } + + fn dispatch_benchmark( + config: frame_benchmarking::BenchmarkConfig + ) -> Result, sp_runtime::RuntimeString> { + use frame_benchmarking::{Benchmarking, BenchmarkBatch, BenchmarkError}; + use sp_storage::TrackedStorageKey; + + use frame_system_benchmarking::Pallet as SystemBench; + impl frame_system_benchmarking::Config for Runtime { + fn setup_set_code_requirements(code: &sp_std::vec::Vec) -> Result<(), BenchmarkError> { + ParachainSystem::initialize_for_set_code_benchmark(code.len() as u32); + Ok(()) + } + + fn verify_set_code() { + System::assert_last_event(cumulus_pallet_parachain_system::Event::::ValidationFunctionStored.into()); + } + } + + use cumulus_pallet_session_benchmarking::Pallet as SessionBench; + impl cumulus_pallet_session_benchmarking::Config for Runtime {} + + use xcm::latest::prelude::*; + use xcm_config::{KsmLocation, MaxAssetsIntoHolding}; + use pallet_xcm_benchmarks::asset_instance_from; + + parameter_types! { + pub ExistentialDepositMultiAsset: Option = Some(( + KsmLocation::get(), + ExistentialDeposit::get() + ).into()); + } + + impl pallet_xcm_benchmarks::Config for Runtime { + type XcmConfig = xcm_config::XcmConfig; + type AccountIdConverter = xcm_config::LocationToAccountId; + type DeliveryHelper = cumulus_primitives_utility::ToParentDeliveryHelper< + XcmConfig, + ExistentialDepositMultiAsset, + xcm_config::PriceForParentDelivery, + >; + fn valid_destination() -> Result { + Ok(KsmLocation::get()) + } + fn worst_case_holding(depositable_count: u32) -> MultiAssets { + // A mix of fungible, non-fungible, and concrete assets. + let holding_non_fungibles = MaxAssetsIntoHolding::get() / 2 - depositable_count; + let holding_fungibles = holding_non_fungibles.saturating_sub(1); + let fungibles_amount: u128 = 100; + let mut assets = (0..holding_fungibles) + .map(|i| { + MultiAsset { + id: Concrete(GeneralIndex(i as u128).into()), + fun: Fungible(fungibles_amount * i as u128), + } + }) + .chain(core::iter::once(MultiAsset { id: Concrete(Here.into()), fun: Fungible(u128::MAX) })) + .chain((0..holding_non_fungibles).map(|i| MultiAsset { + id: Concrete(GeneralIndex(i as u128).into()), + fun: NonFungible(asset_instance_from(i)), + })) + .collect::>(); + + assets.push(MultiAsset { + id: Concrete(KsmLocation::get()), + fun: Fungible(1_000_000 * UNITS), + }); + assets.into() + } + } + + parameter_types! { + pub const TrustedTeleporter: Option<(MultiLocation, MultiAsset)> = Some(( + KsmLocation::get(), + MultiAsset { fun: Fungible(UNITS), id: Concrete(KsmLocation::get()) }, + )); + pub const CheckedAccount: Option<(AccountId, xcm_builder::MintLocation)> = None; + pub const TrustedReserve: Option<(MultiLocation, MultiAsset)> = None; + } + + impl pallet_xcm_benchmarks::fungible::Config for Runtime { + type TransactAsset = Balances; + + type CheckedAccount = CheckedAccount; + type TrustedTeleporter = TrustedTeleporter; + type TrustedReserve = TrustedReserve; + + fn get_multi_asset() -> MultiAsset { + MultiAsset { + id: Concrete(KsmLocation::get()), + fun: Fungible(UNITS), + } + } + } + + impl pallet_xcm_benchmarks::generic::Config for Runtime { + type TransactAsset = Balances; + type RuntimeCall = RuntimeCall; + + fn worst_case_response() -> (u64, Response) { + (0u64, Response::Version(Default::default())) + } + + fn worst_case_asset_exchange() -> Result<(MultiAssets, MultiAssets), BenchmarkError> { + Err(BenchmarkError::Skip) + } + + fn universal_alias() -> Result<(MultiLocation, Junction), BenchmarkError> { + Err(BenchmarkError::Skip) + } + + fn transact_origin_and_runtime_call() -> Result<(MultiLocation, RuntimeCall), BenchmarkError> { + Ok((KsmLocation::get(), frame_system::Call::remark_with_event { remark: vec![] }.into())) + } + + fn subscribe_origin() -> Result { + Ok(KsmLocation::get()) + } + + fn claimable_asset() -> Result<(MultiLocation, MultiLocation, MultiAssets), BenchmarkError> { + let origin = KsmLocation::get(); + let assets: MultiAssets = (Concrete(KsmLocation::get()), 1_000 * UNITS).into(); + let ticket = MultiLocation { parents: 0, interior: Here }; + Ok((origin, ticket, assets)) + } + + fn unlockable_asset() -> Result<(MultiLocation, MultiLocation, MultiAsset), BenchmarkError> { + Err(BenchmarkError::Skip) + } + + fn export_message_origin_and_destination( + ) -> Result<(MultiLocation, NetworkId, InteriorMultiLocation), BenchmarkError> { + Err(BenchmarkError::Skip) + } + + fn alias_origin() -> Result<(MultiLocation, MultiLocation), BenchmarkError> { + Err(BenchmarkError::Skip) + } + } + + type XcmBalances = pallet_xcm_benchmarks::fungible::Pallet::; + type XcmGeneric = pallet_xcm_benchmarks::generic::Pallet::; + + type Local = pallet_assets::Pallet::; + type Foreign = pallet_assets::Pallet::; + type Pool = pallet_assets::Pallet::; + + let whitelist: Vec = vec![ + // Block Number + hex_literal::hex!("26aa394eea5630e07c48ae0c9558cef702a5c1b19ab7a04f536c519aca4983ac").to_vec().into(), + // Total Issuance + hex_literal::hex!("c2261276cc9d1f8598ea4b6a74b15c2f57c875e4cff74148e4628f264b974c80").to_vec().into(), + // Execution Phase + hex_literal::hex!("26aa394eea5630e07c48ae0c9558cef7ff553b5a9862a516939d82b3d3d8661a").to_vec().into(), + // Event Count + hex_literal::hex!("26aa394eea5630e07c48ae0c9558cef70a98fdbe9ce6c55837576c60c7af3850").to_vec().into(), + // System Events + hex_literal::hex!("26aa394eea5630e07c48ae0c9558cef780d41e5e16056765bc8461851072c9d7").to_vec().into(), + //TODO: use from relay_well_known_keys::ACTIVE_CONFIG + hex_literal::hex!("06de3d8a54d27e44a9d5ce189618f22db4b49d95320d9021994c850f25b8e385").to_vec().into(), + ]; + + let mut batches = Vec::::new(); + let params = (&config, &whitelist); + add_benchmarks!(params, batches); + + Ok(batches) + } + } + + impl sp_genesis_builder::GenesisBuilder for Runtime { + fn create_default_config() -> Vec { + create_default_config::() + } + + fn build_config(config: Vec) -> sp_genesis_builder::Result { + build_config::(config) + } + } +} + +cumulus_pallet_parachain_system::register_validate_block! { + Runtime = Runtime, + BlockExecutor = cumulus_pallet_aura_ext::BlockExecutor::, +} + +#[cfg(feature = "state-trie-version-1")] +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 = CENTS; + pub const MigrationSignedDepositBase: Balance = 2_000 * CENTS; + pub const MigrationMaxKeyLen: u32 = 512; +} + +#[cfg(feature = "state-trie-version-1")] +impl pallet_state_trie_migration::Config for Runtime { + type RuntimeEvent = RuntimeEvent; + type Currency = Balances; + type SignedDepositPerItem = MigrationSignedDepositPerItem; + type SignedDepositBase = MigrationSignedDepositBase; + // An origin that can control the whole pallet: should be Root, or a part of your council. + type ControlOrigin = frame_system::EnsureSignedBy; + // specific account for the migration, can trigger the signed migrations. + type SignedFilter = frame_system::EnsureSignedBy; + + // Replace this with weight based on your runtime. + type WeightInfo = pallet_state_trie_migration::weights::SubstrateWeight; + + type MaxKeyLen = MigrationMaxKeyLen; +} + +#[cfg(feature = "state-trie-version-1")] +frame_support::ord_parameter_types! { + pub const MigController: AccountId = AccountId::from(hex_literal::hex!("8458ed39dc4b6f6c7255f7bc42be50c2967db126357c999d44e12ca7ac80dc52")); + pub const RootMigController: AccountId = AccountId::from(hex_literal::hex!("8458ed39dc4b6f6c7255f7bc42be50c2967db126357c999d44e12ca7ac80dc52")); +} + +#[cfg(feature = "state-trie-version-1")] +#[test] +fn ensure_key_ss58() { + use frame_support::traits::SortedMembers; + use sp_core::crypto::Ss58Codec; + let acc = + AccountId::from_ss58check("5F4EbSkZz18X36xhbsjvDNs6NuZ82HyYtq5UiJ1h9SBHJXZD").unwrap(); + //panic!("{:x?}", acc); + assert_eq!(acc, MigController::sorted_members()[0]); + let acc = + AccountId::from_ss58check("5F4EbSkZz18X36xhbsjvDNs6NuZ82HyYtq5UiJ1h9SBHJXZD").unwrap(); + assert_eq!(acc, RootMigController::sorted_members()[0]); + //panic!("{:x?}", acc); +} + +#[cfg(test)] +mod tests { + use super::*; + use crate::{CENTS, MILLICENTS}; + use parachains_common::kusama::fee; + use sp_runtime::traits::Zero; + use sp_weights::WeightToFee; + + /// We can fit at least 1000 transfers in a block. + #[test] + fn sane_block_weight() { + use pallet_balances::WeightInfo; + let block = RuntimeBlockWeights::get().max_block; + let base = RuntimeBlockWeights::get().get(DispatchClass::Normal).base_extrinsic; + let transfer = + base + weights::pallet_balances::WeightInfo::::transfer_allow_death(); + + let fit = block.checked_div_per_component(&transfer).unwrap_or_default(); + assert!(fit >= 1000, "{} should be at least 1000", fit); + } + + /// The fee for one transfer is at most 1 CENT. + #[test] + fn sane_transfer_fee() { + use pallet_balances::WeightInfo; + let base = RuntimeBlockWeights::get().get(DispatchClass::Normal).base_extrinsic; + let transfer = + base + weights::pallet_balances::WeightInfo::::transfer_allow_death(); + + let fee: Balance = fee::WeightToFee::weight_to_fee(&transfer); + assert!(fee <= CENTS, "{} MILLICENTS should be at most 1000", fee / MILLICENTS); + } + + /// Weight is being charged for both dimensions. + #[test] + fn weight_charged_for_both_components() { + let fee: Balance = fee::WeightToFee::weight_to_fee(&Weight::from_parts(10_000, 0)); + assert!(!fee.is_zero(), "Charges for ref time"); + + let fee: Balance = fee::WeightToFee::weight_to_fee(&Weight::from_parts(0, 10_000)); + assert_eq!(fee, CENTS, "10kb maps to CENT"); + } + + /// Filling up a block by proof size is at most 30 times more expensive than ref time. + /// + /// This is just a sanity check. + #[test] + fn full_block_fee_ratio() { + let block = RuntimeBlockWeights::get().max_block; + let time_fee: Balance = + fee::WeightToFee::weight_to_fee(&Weight::from_parts(block.ref_time(), 0)); + let proof_fee: Balance = + fee::WeightToFee::weight_to_fee(&Weight::from_parts(0, block.proof_size())); + + let proof_o_time = proof_fee.checked_div(time_fee).unwrap_or_default(); + assert!(proof_o_time <= 30, "{} should be at most 30", proof_o_time); + let time_o_proof = time_fee.checked_div(proof_fee).unwrap_or_default(); + assert!(time_o_proof <= 30, "{} should be at most 30", time_o_proof); + } +} diff --git a/cumulus/parachains/runtimes/assets/asset-hub-kusama/src/weights/block_weights.rs b/cumulus/parachains/runtimes/assets/asset-hub-kusama/src/weights/block_weights.rs new file mode 100644 index 000000000000..e7fdb2aae2a0 --- /dev/null +++ b/cumulus/parachains/runtimes/assets/asset-hub-kusama/src/weights/block_weights.rs @@ -0,0 +1,53 @@ +// This file is part of Substrate. + +// 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. + +pub mod constants { + use frame_support::{ + parameter_types, + weights::{constants, Weight}, + }; + + parameter_types! { + /// Importing a block with 0 Extrinsics. + pub const BlockExecutionWeight: Weight = + Weight::from_parts(constants::WEIGHT_REF_TIME_PER_NANOS.saturating_mul(5_000_000), 0); + } + + #[cfg(test)] + mod test_weights { + use frame_support::weights::constants; + + /// Checks that the weight exists and is sane. + // NOTE: If this test fails but you are sure that the generated values are fine, + // you can delete it. + #[test] + fn sane() { + let w = super::constants::BlockExecutionWeight::get(); + + // At least 100 µs. + assert!( + w.ref_time() >= 100u64 * constants::WEIGHT_REF_TIME_PER_MICROS, + "Weight should be at least 100 µs." + ); + // At most 50 ms. + assert!( + w.ref_time() <= 50u64 * constants::WEIGHT_REF_TIME_PER_MILLIS, + "Weight should be at most 50 ms." + ); + } + } +} diff --git a/cumulus/parachains/runtimes/assets/asset-hub-kusama/src/weights/cumulus_pallet_xcmp_queue.rs b/cumulus/parachains/runtimes/assets/asset-hub-kusama/src/weights/cumulus_pallet_xcmp_queue.rs new file mode 100644 index 000000000000..9c7a56687b31 --- /dev/null +++ b/cumulus/parachains/runtimes/assets/asset-hub-kusama/src/weights/cumulus_pallet_xcmp_queue.rs @@ -0,0 +1,77 @@ +// Copyright (C) Parity Technologies (UK) Ltd. +// This file is part of Cumulus. + +// Cumulus 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. + +// Cumulus 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 Cumulus. If not, see . + +//! Autogenerated weights for `cumulus_pallet_xcmp_queue` +//! +//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev +//! DATE: 2023-07-31, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! WORST CASE MAP SIZE: `1000000` +//! HOSTNAME: `runner-ynta1nyy-project-238-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz` +//! EXECUTION: ``, WASM-EXECUTION: `Compiled`, CHAIN: `Some("asset-hub-kusama-dev")`, DB CACHE: 1024 + +// Executed Command: +// ./target/production/polkadot-parachain +// benchmark +// pallet +// --chain=asset-hub-kusama-dev +// --wasm-execution=compiled +// --pallet=cumulus_pallet_xcmp_queue +// --no-storage-info +// --no-median-slopes +// --no-min-squares +// --extrinsic=* +// --steps=50 +// --repeat=20 +// --json +// --header=./file_header.txt +// --output=./parachains/runtimes/assets/asset-hub-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 `cumulus_pallet_xcmp_queue`. +pub struct WeightInfo(PhantomData); +impl cumulus_pallet_xcmp_queue::WeightInfo for WeightInfo { + /// Storage: `XcmpQueue::QueueConfig` (r:1 w:1) + /// Proof: `XcmpQueue::QueueConfig` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + fn set_config_with_u32() -> Weight { + // Proof Size summary in bytes: + // Measured: `76` + // Estimated: `1561` + // Minimum execution time: 5_467_000 picoseconds. + Weight::from_parts(5_634_000, 0) + .saturating_add(Weight::from_parts(0, 1561)) + .saturating_add(T::DbWeight::get().reads(1)) + .saturating_add(T::DbWeight::get().writes(1)) + } + /// Storage: `XcmpQueue::QueueConfig` (r:1 w:1) + /// Proof: `XcmpQueue::QueueConfig` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + fn set_config_with_weight() -> Weight { + // Proof Size summary in bytes: + // Measured: `76` + // Estimated: `1561` + // Minimum execution time: 5_409_000 picoseconds. + Weight::from_parts(5_570_000, 0) + .saturating_add(Weight::from_parts(0, 1561)) + .saturating_add(T::DbWeight::get().reads(1)) + .saturating_add(T::DbWeight::get().writes(1)) + } +} diff --git a/cumulus/parachains/runtimes/assets/asset-hub-kusama/src/weights/extrinsic_weights.rs b/cumulus/parachains/runtimes/assets/asset-hub-kusama/src/weights/extrinsic_weights.rs new file mode 100644 index 000000000000..1a4adb968bb7 --- /dev/null +++ b/cumulus/parachains/runtimes/assets/asset-hub-kusama/src/weights/extrinsic_weights.rs @@ -0,0 +1,53 @@ +// This file is part of Substrate. + +// 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. + +pub mod constants { + use frame_support::{ + parameter_types, + weights::{constants, Weight}, + }; + + parameter_types! { + /// Executing a NO-OP `System::remarks` Extrinsic. + pub const ExtrinsicBaseWeight: Weight = + Weight::from_parts(constants::WEIGHT_REF_TIME_PER_NANOS.saturating_mul(125_000), 0); + } + + #[cfg(test)] + mod test_weights { + use frame_support::weights::constants; + + /// Checks that the weight exists and is sane. + // NOTE: If this test fails but you are sure that the generated values are fine, + // you can delete it. + #[test] + fn sane() { + let w = super::constants::ExtrinsicBaseWeight::get(); + + // At least 10 µs. + assert!( + w.ref_time() >= 10u64 * constants::WEIGHT_REF_TIME_PER_MICROS, + "Weight should be at least 10 µs." + ); + // At most 1 ms. + assert!( + w.ref_time() <= constants::WEIGHT_REF_TIME_PER_MILLIS, + "Weight should be at most 1 ms." + ); + } + } +} diff --git a/cumulus/parachains/runtimes/assets/asset-hub-kusama/src/weights/frame_system.rs b/cumulus/parachains/runtimes/assets/asset-hub-kusama/src/weights/frame_system.rs new file mode 100644 index 000000000000..96477ddf4bd3 --- /dev/null +++ b/cumulus/parachains/runtimes/assets/asset-hub-kusama/src/weights/frame_system.rs @@ -0,0 +1,155 @@ +// Copyright (C) Parity Technologies (UK) Ltd. +// This file is part of Cumulus. + +// Cumulus 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. + +// Cumulus 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 Cumulus. If not, see . + +//! Autogenerated weights for `frame_system` +//! +//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev +//! DATE: 2023-07-31, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! WORST CASE MAP SIZE: `1000000` +//! HOSTNAME: `runner-ynta1nyy-project-238-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz` +//! EXECUTION: ``, WASM-EXECUTION: `Compiled`, CHAIN: `Some("asset-hub-kusama-dev")`, DB CACHE: 1024 + +// Executed Command: +// ./target/production/polkadot-parachain +// benchmark +// pallet +// --chain=asset-hub-kusama-dev +// --wasm-execution=compiled +// --pallet=frame_system +// --no-storage-info +// --no-median-slopes +// --no-min-squares +// --extrinsic=* +// --steps=50 +// --repeat=20 +// --json +// --header=./file_header.txt +// --output=./parachains/runtimes/assets/asset-hub-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 `frame_system`. +pub struct WeightInfo(PhantomData); +impl frame_system::WeightInfo for WeightInfo { + /// The range of component `b` is `[0, 3932160]`. + fn remark(b: u32, ) -> Weight { + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 2_106_000 picoseconds. + Weight::from_parts(1_884_213, 0) + .saturating_add(Weight::from_parts(0, 0)) + // Standard Error: 0 + .saturating_add(Weight::from_parts(388, 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_528_000 picoseconds. + Weight::from_parts(27_081_927, 0) + .saturating_add(Weight::from_parts(0, 0)) + // Standard Error: 7 + .saturating_add(Weight::from_parts(1_730, 0).saturating_mul(b.into())) + } + /// Storage: `System::Digest` (r:1 w:1) + /// Proof: `System::Digest` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: UNKNOWN KEY `0x3a686561707061676573` (r:0 w:1) + /// Proof: UNKNOWN KEY `0x3a686561707061676573` (r:0 w:1) + fn set_heap_pages() -> Weight { + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `1485` + // Minimum execution time: 3_882_000 picoseconds. + Weight::from_parts(4_149_000, 0) + .saturating_add(Weight::from_parts(0, 1485)) + .saturating_add(T::DbWeight::get().reads(1)) + .saturating_add(T::DbWeight::get().writes(2)) + } + /// Storage: `ParachainSystem::ValidationData` (r:1 w:0) + /// Proof: `ParachainSystem::ValidationData` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `ParachainSystem::UpgradeRestrictionSignal` (r:1 w:0) + /// Proof: `ParachainSystem::UpgradeRestrictionSignal` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `ParachainSystem::PendingValidationCode` (r:1 w:1) + /// Proof: `ParachainSystem::PendingValidationCode` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `ParachainSystem::HostConfiguration` (r:1 w:0) + /// Proof: `ParachainSystem::HostConfiguration` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `ParachainSystem::NewValidationCode` (r:0 w:1) + /// Proof: `ParachainSystem::NewValidationCode` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `ParachainSystem::DidSetValidationCode` (r:0 w:1) + /// Proof: `ParachainSystem::DidSetValidationCode` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + fn set_code() -> Weight { + // Proof Size summary in bytes: + // Measured: `119` + // Estimated: `1604` + // Minimum execution time: 103_389_161_000 picoseconds. + Weight::from_parts(106_870_091_000, 0) + .saturating_add(Weight::from_parts(0, 1604)) + .saturating_add(T::DbWeight::get().reads(4)) + .saturating_add(T::DbWeight::get().writes(3)) + } + /// Storage: `Skipped::Metadata` (r:0 w:0) + /// Proof: `Skipped::Metadata` (`max_values`: None, `max_size`: None, mode: `Measured`) + /// The range of component `i` is `[0, 1000]`. + fn set_storage(i: u32, ) -> Weight { + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 2_236_000 picoseconds. + Weight::from_parts(2_302_000, 0) + .saturating_add(Weight::from_parts(0, 0)) + // Standard Error: 2_045 + .saturating_add(Weight::from_parts(763_456, 0).saturating_mul(i.into())) + .saturating_add(T::DbWeight::get().writes((1_u64).saturating_mul(i.into()))) + } + /// Storage: `Skipped::Metadata` (r:0 w:0) + /// Proof: `Skipped::Metadata` (`max_values`: None, `max_size`: None, mode: `Measured`) + /// The range of component `i` is `[0, 1000]`. + fn kill_storage(i: u32, ) -> Weight { + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 2_175_000 picoseconds. + Weight::from_parts(2_238_000, 0) + .saturating_add(Weight::from_parts(0, 0)) + // Standard Error: 1_040 + .saturating_add(Weight::from_parts(571_397, 0).saturating_mul(i.into())) + .saturating_add(T::DbWeight::get().writes((1_u64).saturating_mul(i.into()))) + } + /// Storage: `Skipped::Metadata` (r:0 w:0) + /// Proof: `Skipped::Metadata` (`max_values`: None, `max_size`: None, mode: `Measured`) + /// The range of component `p` is `[0, 1000]`. + fn kill_prefix(p: u32, ) -> Weight { + // Proof Size summary in bytes: + // Measured: `84 + p * (69 ±0)` + // Estimated: `80 + p * (70 ±0)` + // Minimum execution time: 3_843_000 picoseconds. + Weight::from_parts(3_947_000, 0) + .saturating_add(Weight::from_parts(0, 80)) + // Standard Error: 2_188 + .saturating_add(Weight::from_parts(1_212_360, 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/cumulus/parachains/runtimes/assets/asset-hub-kusama/src/weights/mod.rs b/cumulus/parachains/runtimes/assets/asset-hub-kusama/src/weights/mod.rs new file mode 100644 index 000000000000..281c013b3372 --- /dev/null +++ b/cumulus/parachains/runtimes/assets/asset-hub-kusama/src/weights/mod.rs @@ -0,0 +1,43 @@ +// Copyright (C) Parity Technologies (UK) Ltd. +// This file is part of Cumulus. + +// Cumulus 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. + +// Cumulus 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 Cumulus. If not, see . + +pub mod block_weights; +pub mod cumulus_pallet_xcmp_queue; +pub mod extrinsic_weights; +pub mod frame_system; +pub mod pallet_asset_conversion; +pub mod pallet_assets_foreign; +pub mod pallet_assets_local; +pub mod pallet_assets_pool; +pub mod pallet_balances; +pub mod pallet_collator_selection; +pub mod pallet_multisig; +pub mod pallet_nft_fractionalization; +pub mod pallet_nfts; +pub mod pallet_proxy; +pub mod pallet_session; +pub mod pallet_timestamp; +pub mod pallet_uniques; +pub mod pallet_utility; +pub mod pallet_xcm; +pub mod paritydb_weights; +pub mod rocksdb_weights; +pub mod xcm; + +pub use block_weights::constants::BlockExecutionWeight; +pub use extrinsic_weights::constants::ExtrinsicBaseWeight; +pub use paritydb_weights::constants::ParityDbWeight; +pub use rocksdb_weights::constants::RocksDbWeight; diff --git a/cumulus/parachains/runtimes/assets/asset-hub-kusama/src/weights/pallet_asset_conversion.rs b/cumulus/parachains/runtimes/assets/asset-hub-kusama/src/weights/pallet_asset_conversion.rs new file mode 100644 index 000000000000..702f3743a720 --- /dev/null +++ b/cumulus/parachains/runtimes/assets/asset-hub-kusama/src/weights/pallet_asset_conversion.rs @@ -0,0 +1,155 @@ +// Copyright (C) Parity Technologies (UK) Ltd. +// This file is part of Cumulus. + +// Cumulus 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. + +// Cumulus 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 Cumulus. If not, see . + +//! Autogenerated weights for `pallet_asset_conversion` +//! +//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev +//! DATE: 2023-07-26, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! WORST CASE MAP SIZE: `1000000` +//! HOSTNAME: `runner-ynta1nyy-project-238-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz` +//! EXECUTION: ``, WASM-EXECUTION: `Compiled`, CHAIN: `Some("asset-hub-kusama-dev")`, DB CACHE: 1024 + +// Executed Command: +// target/production/polkadot-parachain +// benchmark +// pallet +// --steps=50 +// --repeat=20 +// --extrinsic=* +// --wasm-execution=compiled +// --heap-pages=4096 +// --json-file=/builds/parity/mirrors/cumulus/.git/.artifacts/bench.json +// --pallet=pallet_asset_conversion +// --chain=asset-hub-kusama-dev +// --header=./file_header.txt +// --output=./parachains/runtimes/assets/asset-hub-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_asset_conversion`. +pub struct WeightInfo(PhantomData); +impl pallet_asset_conversion::WeightInfo for WeightInfo { + /// Storage: `AssetConversion::Pools` (r:1 w:1) + /// Proof: `AssetConversion::Pools` (`max_values`: None, `max_size`: Some(1224), added: 3699, mode: `MaxEncodedLen`) + /// Storage: UNKNOWN KEY `0x76a2c49709deec21d9c05f96c1f47351` (r:1 w:0) + /// Proof: UNKNOWN KEY `0x76a2c49709deec21d9c05f96c1f47351` (r:1 w:0) + /// Storage: `System::Account` (r:2 w:1) + /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`) + /// Storage: `ForeignAssets::Account` (r:1 w:1) + /// Proof: `ForeignAssets::Account` (`max_values`: None, `max_size`: Some(732), added: 3207, mode: `MaxEncodedLen`) + /// Storage: `ForeignAssets::Asset` (r:1 w:1) + /// Proof: `ForeignAssets::Asset` (`max_values`: None, `max_size`: Some(808), added: 3283, mode: `MaxEncodedLen`) + /// Storage: `AssetConversion::NextPoolAssetId` (r:1 w:1) + /// Proof: `AssetConversion::NextPoolAssetId` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`) + /// Storage: `PoolAssets::Asset` (r:1 w:1) + /// Proof: `PoolAssets::Asset` (`max_values`: None, `max_size`: Some(210), added: 2685, mode: `MaxEncodedLen`) + /// Storage: `PoolAssets::Account` (r:1 w:1) + /// Proof: `PoolAssets::Account` (`max_values`: None, `max_size`: Some(134), added: 2609, mode: `MaxEncodedLen`) + fn create_pool() -> Weight { + // Proof Size summary in bytes: + // Measured: `480` + // Estimated: `6196` + // Minimum execution time: 88_484_000 picoseconds. + Weight::from_parts(92_964_000, 0) + .saturating_add(Weight::from_parts(0, 6196)) + .saturating_add(T::DbWeight::get().reads(9)) + .saturating_add(T::DbWeight::get().writes(7)) + } + /// Storage: `AssetConversion::Pools` (r:1 w:0) + /// Proof: `AssetConversion::Pools` (`max_values`: None, `max_size`: Some(1224), added: 3699, mode: `MaxEncodedLen`) + /// Storage: `System::Account` (r:1 w:1) + /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`) + /// Storage: `ForeignAssets::Asset` (r:1 w:1) + /// Proof: `ForeignAssets::Asset` (`max_values`: None, `max_size`: Some(808), added: 3283, mode: `MaxEncodedLen`) + /// Storage: `ForeignAssets::Account` (r:2 w:2) + /// Proof: `ForeignAssets::Account` (`max_values`: None, `max_size`: Some(732), added: 3207, mode: `MaxEncodedLen`) + /// Storage: `PoolAssets::Asset` (r:1 w:1) + /// Proof: `PoolAssets::Asset` (`max_values`: None, `max_size`: Some(210), added: 2685, mode: `MaxEncodedLen`) + /// Storage: `PoolAssets::Account` (r:2 w:2) + /// Proof: `PoolAssets::Account` (`max_values`: None, `max_size`: Some(134), added: 2609, mode: `MaxEncodedLen`) + fn add_liquidity() -> Weight { + // Proof Size summary in bytes: + // Measured: `1117` + // Estimated: `7404` + // Minimum execution time: 153_015_000 picoseconds. + Weight::from_parts(157_018_000, 0) + .saturating_add(Weight::from_parts(0, 7404)) + .saturating_add(T::DbWeight::get().reads(8)) + .saturating_add(T::DbWeight::get().writes(7)) + } + /// Storage: `AssetConversion::Pools` (r:1 w:0) + /// Proof: `AssetConversion::Pools` (`max_values`: None, `max_size`: Some(1224), added: 3699, mode: `MaxEncodedLen`) + /// Storage: `System::Account` (r:1 w:1) + /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`) + /// Storage: `ForeignAssets::Asset` (r:1 w:1) + /// Proof: `ForeignAssets::Asset` (`max_values`: None, `max_size`: Some(808), added: 3283, mode: `MaxEncodedLen`) + /// Storage: `ForeignAssets::Account` (r:2 w:2) + /// Proof: `ForeignAssets::Account` (`max_values`: None, `max_size`: Some(732), added: 3207, mode: `MaxEncodedLen`) + /// Storage: `PoolAssets::Asset` (r:1 w:1) + /// Proof: `PoolAssets::Asset` (`max_values`: None, `max_size`: Some(210), added: 2685, mode: `MaxEncodedLen`) + /// Storage: UNKNOWN KEY `0x2433d831722b1f4aeb1666953f1c0e77` (r:1 w:0) + /// Proof: UNKNOWN KEY `0x2433d831722b1f4aeb1666953f1c0e77` (r:1 w:0) + /// Storage: `PoolAssets::Account` (r:1 w:1) + /// Proof: `PoolAssets::Account` (`max_values`: None, `max_size`: Some(134), added: 2609, mode: `MaxEncodedLen`) + fn remove_liquidity() -> Weight { + // Proof Size summary in bytes: + // Measured: `1106` + // Estimated: `7404` + // Minimum execution time: 141_726_000 picoseconds. + Weight::from_parts(147_865_000, 0) + .saturating_add(Weight::from_parts(0, 7404)) + .saturating_add(T::DbWeight::get().reads(8)) + .saturating_add(T::DbWeight::get().writes(6)) + } + /// Storage: `ForeignAssets::Asset` (r:2 w:2) + /// Proof: `ForeignAssets::Asset` (`max_values`: None, `max_size`: Some(808), added: 3283, mode: `MaxEncodedLen`) + /// Storage: `ForeignAssets::Account` (r:4 w:4) + /// Proof: `ForeignAssets::Account` (`max_values`: None, `max_size`: Some(732), added: 3207, mode: `MaxEncodedLen`) + /// Storage: `System::Account` (r:2 w:2) + /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`) + fn swap_exact_tokens_for_tokens() -> Weight { + // Proof Size summary in bytes: + // Measured: `1148` + // Estimated: `13818` + // Minimum execution time: 168_619_000 picoseconds. + Weight::from_parts(174_283_000, 0) + .saturating_add(Weight::from_parts(0, 13818)) + .saturating_add(T::DbWeight::get().reads(8)) + .saturating_add(T::DbWeight::get().writes(8)) + } + /// Storage: `System::Account` (r:2 w:2) + /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`) + /// Storage: `ForeignAssets::Asset` (r:2 w:2) + /// Proof: `ForeignAssets::Asset` (`max_values`: None, `max_size`: Some(808), added: 3283, mode: `MaxEncodedLen`) + /// Storage: `ForeignAssets::Account` (r:4 w:4) + /// Proof: `ForeignAssets::Account` (`max_values`: None, `max_size`: Some(732), added: 3207, mode: `MaxEncodedLen`) + fn swap_tokens_for_exact_tokens() -> Weight { + // Proof Size summary in bytes: + // Measured: `1148` + // Estimated: `13818` + // Minimum execution time: 171_565_000 picoseconds. + Weight::from_parts(173_702_000, 0) + .saturating_add(Weight::from_parts(0, 13818)) + .saturating_add(T::DbWeight::get().reads(8)) + .saturating_add(T::DbWeight::get().writes(8)) + } +} diff --git a/cumulus/parachains/runtimes/assets/asset-hub-kusama/src/weights/pallet_assets_foreign.rs b/cumulus/parachains/runtimes/assets/asset-hub-kusama/src/weights/pallet_assets_foreign.rs new file mode 100644 index 000000000000..7c237b20389d --- /dev/null +++ b/cumulus/parachains/runtimes/assets/asset-hub-kusama/src/weights/pallet_assets_foreign.rs @@ -0,0 +1,534 @@ +// Copyright (C) Parity Technologies (UK) Ltd. +// This file is part of Cumulus. + +// Cumulus 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. + +// Cumulus 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 Cumulus. If not, see . + +//! Autogenerated weights for `pallet_assets` +//! +//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev +//! DATE: 2023-06-20, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! WORST CASE MAP SIZE: `1000000` +//! HOSTNAME: `runner-ynta1nyy-project-238-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz` +//! EXECUTION: ``, WASM-EXECUTION: `Compiled`, CHAIN: `Some("asset-hub-kusama-dev")`, DB CACHE: 1024 + +// Executed Command: +// ./target/production/polkadot-parachain +// benchmark +// pallet +// --steps=50 +// --repeat=20 +// --extrinsic=* +// --execution=wasm +// --wasm-execution=compiled +// --heap-pages=4096 +// --json-file=/var/lib/gitlab-runner/builds/zyw4fam_/0/parity/mirrors/cumulus/.git/.artifacts/bench.json +// --pallet=pallet_assets +// --no-storage-info +// --no-median-slopes +// --no-min-squares +// --extrinsic=* +// --steps=50 +// --repeat=20 +// --json +// --header=./file_header.txt +// --output=./parachains/runtimes/assets/asset-hub-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_assets`. +pub struct WeightInfo(PhantomData); +impl pallet_assets::WeightInfo for WeightInfo { + /// Storage: `ParachainInfo::ParachainId` (r:1 w:0) + /// Proof: `ParachainInfo::ParachainId` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`) + /// Storage: `ForeignAssets::Asset` (r:1 w:1) + /// Proof: `ForeignAssets::Asset` (`max_values`: None, `max_size`: Some(808), added: 3283, mode: `MaxEncodedLen`) + /// Storage: `System::Account` (r:1 w:1) + /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`) + fn create() -> Weight { + // Proof Size summary in bytes: + // Measured: `107` + // Estimated: `4273` + // Minimum execution time: 30_485_000 picoseconds. + Weight::from_parts(31_007_000, 0) + .saturating_add(Weight::from_parts(0, 4273)) + .saturating_add(T::DbWeight::get().reads(3)) + .saturating_add(T::DbWeight::get().writes(2)) + } + /// Storage: `ForeignAssets::Asset` (r:1 w:1) + /// Proof: `ForeignAssets::Asset` (`max_values`: None, `max_size`: Some(808), added: 3283, mode: `MaxEncodedLen`) + fn force_create() -> Weight { + // Proof Size summary in bytes: + // Measured: `4` + // Estimated: `4273` + // Minimum execution time: 12_991_000 picoseconds. + Weight::from_parts(13_304_000, 0) + .saturating_add(Weight::from_parts(0, 4273)) + .saturating_add(T::DbWeight::get().reads(1)) + .saturating_add(T::DbWeight::get().writes(1)) + } + /// Storage: `ForeignAssets::Asset` (r:1 w:1) + /// Proof: `ForeignAssets::Asset` (`max_values`: None, `max_size`: Some(808), added: 3283, mode: `MaxEncodedLen`) + fn start_destroy() -> Weight { + // Proof Size summary in bytes: + // Measured: `276` + // Estimated: `4273` + // Minimum execution time: 15_689_000 picoseconds. + Weight::from_parts(16_063_000, 0) + .saturating_add(Weight::from_parts(0, 4273)) + .saturating_add(T::DbWeight::get().reads(1)) + .saturating_add(T::DbWeight::get().writes(1)) + } + /// Storage: ForeignAssets Asset (r:1 w:1) + /// Proof: ForeignAssets Asset (max_values: None, max_size: Some(808), added: 3283, mode: MaxEncodedLen) + /// Storage: ForeignAssets Account (r:1001 w:1000) + /// Proof: ForeignAssets Account (max_values: None, max_size: Some(732), added: 3207, mode: MaxEncodedLen) + /// Storage: System Account (r:1000 w:1000) + /// Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen) + /// The range of component `c` is `[0, 1000]`. + /// The range of component `c` is `[0, 1000]`. + fn destroy_accounts(c: u32, ) -> Weight { + // Proof Size summary in bytes: + // Measured: `0 + c * (208 ±0)` + // Estimated: `4273 + c * (3207 ±0)` + // Minimum execution time: 18_533_000 picoseconds. + Weight::from_parts(18_791_000, 0) + .saturating_add(Weight::from_parts(0, 4273)) + // Standard Error: 5_059 + .saturating_add(Weight::from_parts(12_049_659, 0).saturating_mul(c.into())) + .saturating_add(T::DbWeight::get().reads(2)) + .saturating_add(T::DbWeight::get().reads((2_u64).saturating_mul(c.into()))) + .saturating_add(T::DbWeight::get().writes(1)) + .saturating_add(T::DbWeight::get().writes((2_u64).saturating_mul(c.into()))) + .saturating_add(Weight::from_parts(0, 3207).saturating_mul(c.into())) + } + /// Storage: ForeignAssets Asset (r:1 w:1) + /// Proof: ForeignAssets Asset (max_values: None, max_size: Some(808), added: 3283, mode: MaxEncodedLen) + /// Storage: ForeignAssets Approvals (r:1001 w:1000) + /// Proof: ForeignAssets Approvals (max_values: None, max_size: Some(746), added: 3221, mode: MaxEncodedLen) + /// The range of component `a` is `[0, 1000]`. + /// The range of component `a` is `[0, 1000]`. + fn destroy_approvals(a: u32, ) -> Weight { + // Proof Size summary in bytes: + // Measured: `413 + a * (86 ±0)` + // Estimated: `4273 + a * (3221 ±0)` + // Minimum execution time: 20_028_000 picoseconds. + Weight::from_parts(20_148_000, 0) + .saturating_add(Weight::from_parts(0, 4273)) + // Standard Error: 3_401 + .saturating_add(Weight::from_parts(13_897_319, 0).saturating_mul(a.into())) + .saturating_add(T::DbWeight::get().reads(2)) + .saturating_add(T::DbWeight::get().reads((1_u64).saturating_mul(a.into()))) + .saturating_add(T::DbWeight::get().writes(1)) + .saturating_add(T::DbWeight::get().writes((1_u64).saturating_mul(a.into()))) + .saturating_add(Weight::from_parts(0, 3221).saturating_mul(a.into())) + } + /// Storage: `ForeignAssets::Asset` (r:1 w:1) + /// Proof: `ForeignAssets::Asset` (`max_values`: None, `max_size`: Some(808), added: 3283, mode: `MaxEncodedLen`) + /// Storage: `ForeignAssets::Metadata` (r:1 w:0) + /// Proof: `ForeignAssets::Metadata` (`max_values`: None, `max_size`: Some(738), added: 3213, mode: `MaxEncodedLen`) + fn finish_destroy() -> Weight { + // Proof Size summary in bytes: + // Measured: `242` + // Estimated: `4273` + // Minimum execution time: 15_949_000 picoseconds. + Weight::from_parts(16_241_000, 0) + .saturating_add(Weight::from_parts(0, 4273)) + .saturating_add(T::DbWeight::get().reads(2)) + .saturating_add(T::DbWeight::get().writes(1)) + } + /// Storage: `ForeignAssets::Asset` (r:1 w:1) + /// Proof: `ForeignAssets::Asset` (`max_values`: None, `max_size`: Some(808), added: 3283, mode: `MaxEncodedLen`) + /// Storage: `ForeignAssets::Account` (r:1 w:1) + /// Proof: `ForeignAssets::Account` (`max_values`: None, `max_size`: Some(732), added: 3207, mode: `MaxEncodedLen`) + fn mint() -> Weight { + // Proof Size summary in bytes: + // Measured: `242` + // Estimated: `4273` + // Minimum execution time: 27_156_000 picoseconds. + Weight::from_parts(28_182_000, 0) + .saturating_add(Weight::from_parts(0, 4273)) + .saturating_add(T::DbWeight::get().reads(2)) + .saturating_add(T::DbWeight::get().writes(2)) + } + /// Storage: `ForeignAssets::Asset` (r:1 w:1) + /// Proof: `ForeignAssets::Asset` (`max_values`: None, `max_size`: Some(808), added: 3283, mode: `MaxEncodedLen`) + /// Storage: `ForeignAssets::Account` (r:1 w:1) + /// Proof: `ForeignAssets::Account` (`max_values`: None, `max_size`: Some(732), added: 3207, mode: `MaxEncodedLen`) + fn burn() -> Weight { + // Proof Size summary in bytes: + // Measured: `350` + // Estimated: `4273` + // Minimum execution time: 33_503_000 picoseconds. + Weight::from_parts(33_860_000, 0) + .saturating_add(Weight::from_parts(0, 4273)) + .saturating_add(T::DbWeight::get().reads(2)) + .saturating_add(T::DbWeight::get().writes(2)) + } + /// Storage: `ForeignAssets::Asset` (r:1 w:1) + /// Proof: `ForeignAssets::Asset` (`max_values`: None, `max_size`: Some(808), added: 3283, mode: `MaxEncodedLen`) + /// Storage: `ForeignAssets::Account` (r:2 w:2) + /// Proof: `ForeignAssets::Account` (`max_values`: None, `max_size`: Some(732), added: 3207, mode: `MaxEncodedLen`) + /// Storage: `System::Account` (r:1 w:1) + /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`) + fn transfer() -> Weight { + // Proof Size summary in bytes: + // Measured: `350` + // Estimated: `7404` + // Minimum execution time: 45_065_000 picoseconds. + Weight::from_parts(45_856_000, 0) + .saturating_add(Weight::from_parts(0, 7404)) + .saturating_add(T::DbWeight::get().reads(4)) + .saturating_add(T::DbWeight::get().writes(4)) + } + /// Storage: `ForeignAssets::Asset` (r:1 w:1) + /// Proof: `ForeignAssets::Asset` (`max_values`: None, `max_size`: Some(808), added: 3283, mode: `MaxEncodedLen`) + /// Storage: `ForeignAssets::Account` (r:2 w:2) + /// Proof: `ForeignAssets::Account` (`max_values`: None, `max_size`: Some(732), added: 3207, mode: `MaxEncodedLen`) + /// 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: `350` + // Estimated: `7404` + // Minimum execution time: 39_913_000 picoseconds. + Weight::from_parts(40_791_000, 0) + .saturating_add(Weight::from_parts(0, 7404)) + .saturating_add(T::DbWeight::get().reads(4)) + .saturating_add(T::DbWeight::get().writes(4)) + } + /// Storage: `ForeignAssets::Asset` (r:1 w:1) + /// Proof: `ForeignAssets::Asset` (`max_values`: None, `max_size`: Some(808), added: 3283, mode: `MaxEncodedLen`) + /// Storage: `ForeignAssets::Account` (r:2 w:2) + /// Proof: `ForeignAssets::Account` (`max_values`: None, `max_size`: Some(732), added: 3207, mode: `MaxEncodedLen`) + /// Storage: `System::Account` (r:1 w:1) + /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`) + fn force_transfer() -> Weight { + // Proof Size summary in bytes: + // Measured: `350` + // Estimated: `7404` + // Minimum execution time: 45_337_000 picoseconds. + Weight::from_parts(45_980_000, 0) + .saturating_add(Weight::from_parts(0, 7404)) + .saturating_add(T::DbWeight::get().reads(4)) + .saturating_add(T::DbWeight::get().writes(4)) + } + /// Storage: `ForeignAssets::Asset` (r:1 w:0) + /// Proof: `ForeignAssets::Asset` (`max_values`: None, `max_size`: Some(808), added: 3283, mode: `MaxEncodedLen`) + /// Storage: `ForeignAssets::Account` (r:1 w:1) + /// Proof: `ForeignAssets::Account` (`max_values`: None, `max_size`: Some(732), added: 3207, mode: `MaxEncodedLen`) + fn freeze() -> Weight { + // Proof Size summary in bytes: + // Measured: `350` + // Estimated: `4273` + // Minimum execution time: 19_012_000 picoseconds. + Weight::from_parts(19_326_000, 0) + .saturating_add(Weight::from_parts(0, 4273)) + .saturating_add(T::DbWeight::get().reads(2)) + .saturating_add(T::DbWeight::get().writes(1)) + } + /// Storage: `ForeignAssets::Asset` (r:1 w:0) + /// Proof: `ForeignAssets::Asset` (`max_values`: None, `max_size`: Some(808), added: 3283, mode: `MaxEncodedLen`) + /// Storage: `ForeignAssets::Account` (r:1 w:1) + /// Proof: `ForeignAssets::Account` (`max_values`: None, `max_size`: Some(732), added: 3207, mode: `MaxEncodedLen`) + fn thaw() -> Weight { + // Proof Size summary in bytes: + // Measured: `350` + // Estimated: `4273` + // Minimum execution time: 18_656_000 picoseconds. + Weight::from_parts(19_205_000, 0) + .saturating_add(Weight::from_parts(0, 4273)) + .saturating_add(T::DbWeight::get().reads(2)) + .saturating_add(T::DbWeight::get().writes(1)) + } + /// Storage: `ForeignAssets::Asset` (r:1 w:1) + /// Proof: `ForeignAssets::Asset` (`max_values`: None, `max_size`: Some(808), added: 3283, mode: `MaxEncodedLen`) + fn freeze_asset() -> Weight { + // Proof Size summary in bytes: + // Measured: `276` + // Estimated: `4273` + // Minimum execution time: 15_440_000 picoseconds. + Weight::from_parts(15_825_000, 0) + .saturating_add(Weight::from_parts(0, 4273)) + .saturating_add(T::DbWeight::get().reads(1)) + .saturating_add(T::DbWeight::get().writes(1)) + } + /// Storage: `ForeignAssets::Asset` (r:1 w:1) + /// Proof: `ForeignAssets::Asset` (`max_values`: None, `max_size`: Some(808), added: 3283, mode: `MaxEncodedLen`) + fn thaw_asset() -> Weight { + // Proof Size summary in bytes: + // Measured: `276` + // Estimated: `4273` + // Minimum execution time: 15_465_000 picoseconds. + Weight::from_parts(15_769_000, 0) + .saturating_add(Weight::from_parts(0, 4273)) + .saturating_add(T::DbWeight::get().reads(1)) + .saturating_add(T::DbWeight::get().writes(1)) + } + /// Storage: `ForeignAssets::Asset` (r:1 w:1) + /// Proof: `ForeignAssets::Asset` (`max_values`: None, `max_size`: Some(808), added: 3283, mode: `MaxEncodedLen`) + /// Storage: `ForeignAssets::Metadata` (r:1 w:0) + /// Proof: `ForeignAssets::Metadata` (`max_values`: None, `max_size`: Some(738), added: 3213, mode: `MaxEncodedLen`) + fn transfer_ownership() -> Weight { + // Proof Size summary in bytes: + // Measured: `242` + // Estimated: `4273` + // Minimum execution time: 16_579_000 picoseconds. + Weight::from_parts(16_931_000, 0) + .saturating_add(Weight::from_parts(0, 4273)) + .saturating_add(T::DbWeight::get().reads(2)) + .saturating_add(T::DbWeight::get().writes(1)) + } + /// Storage: `ForeignAssets::Asset` (r:1 w:1) + /// Proof: `ForeignAssets::Asset` (`max_values`: None, `max_size`: Some(808), added: 3283, mode: `MaxEncodedLen`) + fn set_team() -> Weight { + // Proof Size summary in bytes: + // Measured: `242` + // Estimated: `4273` + // Minimum execution time: 15_138_000 picoseconds. + Weight::from_parts(15_435_000, 0) + .saturating_add(Weight::from_parts(0, 4273)) + .saturating_add(T::DbWeight::get().reads(1)) + .saturating_add(T::DbWeight::get().writes(1)) + } + /// Storage: ForeignAssets Asset (r:1 w:0) + /// Proof: ForeignAssets Asset (max_values: None, max_size: Some(808), added: 3283, mode: MaxEncodedLen) + /// Storage: ForeignAssets Metadata (r:1 w:1) + /// Proof: ForeignAssets Metadata (max_values: None, max_size: Some(738), added: 3213, mode: MaxEncodedLen) + /// The range of component `n` is `[0, 50]`. + /// The range of component `s` is `[0, 50]`. + /// The range of component `n` is `[0, 50]`. + /// The range of component `s` is `[0, 50]`. + fn set_metadata(_n: u32, _s: u32, ) -> Weight { + // Proof Size summary in bytes: + // Measured: `242` + // Estimated: `4273` + // Minimum execution time: 29_846_000 picoseconds. + Weight::from_parts(31_607_649, 0) + .saturating_add(Weight::from_parts(0, 4273)) + .saturating_add(T::DbWeight::get().reads(2)) + .saturating_add(T::DbWeight::get().writes(1)) + } + /// Storage: `ForeignAssets::Asset` (r:1 w:0) + /// Proof: `ForeignAssets::Asset` (`max_values`: None, `max_size`: Some(808), added: 3283, mode: `MaxEncodedLen`) + /// Storage: `ForeignAssets::Metadata` (r:1 w:1) + /// Proof: `ForeignAssets::Metadata` (`max_values`: None, `max_size`: Some(738), added: 3213, mode: `MaxEncodedLen`) + fn clear_metadata() -> Weight { + // Proof Size summary in bytes: + // Measured: `406` + // Estimated: `4273` + // Minimum execution time: 30_582_000 picoseconds. + Weight::from_parts(31_008_000, 0) + .saturating_add(Weight::from_parts(0, 4273)) + .saturating_add(T::DbWeight::get().reads(2)) + .saturating_add(T::DbWeight::get().writes(1)) + } + /// Storage: ForeignAssets Asset (r:1 w:0) + /// Proof: ForeignAssets Asset (max_values: None, max_size: Some(808), added: 3283, mode: MaxEncodedLen) + /// Storage: ForeignAssets Metadata (r:1 w:1) + /// Proof: ForeignAssets Metadata (max_values: None, max_size: Some(738), added: 3213, mode: MaxEncodedLen) + /// The range of component `n` is `[0, 50]`. + /// The range of component `s` is `[0, 50]`. + /// The range of component `n` is `[0, 50]`. + /// The range of component `s` is `[0, 50]`. + fn force_set_metadata(_n: u32, s: u32, ) -> Weight { + // Proof Size summary in bytes: + // Measured: `81` + // Estimated: `4273` + // Minimum execution time: 14_186_000 picoseconds. + Weight::from_parts(14_717_332, 0) + .saturating_add(Weight::from_parts(0, 4273)) + // Standard Error: 517 + .saturating_add(Weight::from_parts(2_595, 0).saturating_mul(s.into())) + .saturating_add(T::DbWeight::get().reads(2)) + .saturating_add(T::DbWeight::get().writes(1)) + } + /// Storage: `ForeignAssets::Asset` (r:1 w:0) + /// Proof: `ForeignAssets::Asset` (`max_values`: None, `max_size`: Some(808), added: 3283, mode: `MaxEncodedLen`) + /// Storage: `ForeignAssets::Metadata` (r:1 w:1) + /// Proof: `ForeignAssets::Metadata` (`max_values`: None, `max_size`: Some(738), added: 3213, mode: `MaxEncodedLen`) + fn force_clear_metadata() -> Weight { + // Proof Size summary in bytes: + // Measured: `406` + // Estimated: `4273` + // Minimum execution time: 29_499_000 picoseconds. + Weight::from_parts(29_918_000, 0) + .saturating_add(Weight::from_parts(0, 4273)) + .saturating_add(T::DbWeight::get().reads(2)) + .saturating_add(T::DbWeight::get().writes(1)) + } + /// Storage: `ForeignAssets::Asset` (r:1 w:1) + /// Proof: `ForeignAssets::Asset` (`max_values`: None, `max_size`: Some(808), added: 3283, mode: `MaxEncodedLen`) + fn force_asset_status() -> Weight { + // Proof Size summary in bytes: + // Measured: `242` + // Estimated: `4273` + // Minimum execution time: 13_815_000 picoseconds. + Weight::from_parts(14_138_000, 0) + .saturating_add(Weight::from_parts(0, 4273)) + .saturating_add(T::DbWeight::get().reads(1)) + .saturating_add(T::DbWeight::get().writes(1)) + } + /// Storage: `ForeignAssets::Asset` (r:1 w:1) + /// Proof: `ForeignAssets::Asset` (`max_values`: None, `max_size`: Some(808), added: 3283, mode: `MaxEncodedLen`) + /// Storage: `ForeignAssets::Approvals` (r:1 w:1) + /// Proof: `ForeignAssets::Approvals` (`max_values`: None, `max_size`: Some(746), added: 3221, mode: `MaxEncodedLen`) + fn approve_transfer() -> Weight { + // Proof Size summary in bytes: + // Measured: `276` + // Estimated: `4273` + // Minimum execution time: 33_029_000 picoseconds. + Weight::from_parts(33_524_000, 0) + .saturating_add(Weight::from_parts(0, 4273)) + .saturating_add(T::DbWeight::get().reads(2)) + .saturating_add(T::DbWeight::get().writes(2)) + } + /// Storage: `ForeignAssets::Asset` (r:1 w:1) + /// Proof: `ForeignAssets::Asset` (`max_values`: None, `max_size`: Some(808), added: 3283, mode: `MaxEncodedLen`) + /// Storage: `ForeignAssets::Approvals` (r:1 w:1) + /// Proof: `ForeignAssets::Approvals` (`max_values`: None, `max_size`: Some(746), added: 3221, mode: `MaxEncodedLen`) + /// Storage: `ForeignAssets::Account` (r:2 w:2) + /// Proof: `ForeignAssets::Account` (`max_values`: None, `max_size`: Some(732), added: 3207, mode: `MaxEncodedLen`) + /// Storage: `System::Account` (r:1 w:1) + /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`) + fn transfer_approved() -> Weight { + // Proof Size summary in bytes: + // Measured: `520` + // Estimated: `7404` + // Minimum execution time: 63_205_000 picoseconds. + Weight::from_parts(64_078_000, 0) + .saturating_add(Weight::from_parts(0, 7404)) + .saturating_add(T::DbWeight::get().reads(5)) + .saturating_add(T::DbWeight::get().writes(5)) + } + /// Storage: `ForeignAssets::Asset` (r:1 w:1) + /// Proof: `ForeignAssets::Asset` (`max_values`: None, `max_size`: Some(808), added: 3283, mode: `MaxEncodedLen`) + /// Storage: `ForeignAssets::Approvals` (r:1 w:1) + /// Proof: `ForeignAssets::Approvals` (`max_values`: None, `max_size`: Some(746), added: 3221, mode: `MaxEncodedLen`) + fn cancel_approval() -> Weight { + // Proof Size summary in bytes: + // Measured: `446` + // Estimated: `4273` + // Minimum execution time: 34_948_000 picoseconds. + Weight::from_parts(35_484_000, 0) + .saturating_add(Weight::from_parts(0, 4273)) + .saturating_add(T::DbWeight::get().reads(2)) + .saturating_add(T::DbWeight::get().writes(2)) + } + /// Storage: `ForeignAssets::Asset` (r:1 w:1) + /// Proof: `ForeignAssets::Asset` (`max_values`: None, `max_size`: Some(808), added: 3283, mode: `MaxEncodedLen`) + /// Storage: `ForeignAssets::Approvals` (r:1 w:1) + /// Proof: `ForeignAssets::Approvals` (`max_values`: None, `max_size`: Some(746), added: 3221, mode: `MaxEncodedLen`) + fn force_cancel_approval() -> Weight { + // Proof Size summary in bytes: + // Measured: `446` + // Estimated: `4273` + // Minimum execution time: 35_722_000 picoseconds. + Weight::from_parts(36_266_000, 0) + .saturating_add(Weight::from_parts(0, 4273)) + .saturating_add(T::DbWeight::get().reads(2)) + .saturating_add(T::DbWeight::get().writes(2)) + } + /// Storage: `ForeignAssets::Asset` (r:1 w:1) + /// Proof: `ForeignAssets::Asset` (`max_values`: None, `max_size`: Some(808), added: 3283, mode: `MaxEncodedLen`) + fn set_min_balance() -> Weight { + // Proof Size summary in bytes: + // Measured: `242` + // Estimated: `4273` + // Minimum execution time: 15_855_000 picoseconds. + Weight::from_parts(16_182_000, 0) + .saturating_add(Weight::from_parts(0, 4273)) + .saturating_add(T::DbWeight::get().reads(1)) + .saturating_add(T::DbWeight::get().writes(1)) + } + /// Storage: `ForeignAssets::Account` (r:1 w:1) + /// Proof: `ForeignAssets::Account` (`max_values`: None, `max_size`: Some(732), added: 3207, mode: `MaxEncodedLen`) + /// Storage: `ForeignAssets::Asset` (r:1 w:1) + /// Proof: `ForeignAssets::Asset` (`max_values`: None, `max_size`: Some(808), added: 3283, mode: `MaxEncodedLen`) + /// Storage: `System::Account` (r:1 w:1) + /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`) + fn touch() -> Weight { + // Proof Size summary in bytes: + // Measured: `345` + // Estimated: `4273` + // Minimum execution time: 34_984_000 picoseconds. + Weight::from_parts(35_512_000, 0) + .saturating_add(Weight::from_parts(0, 4273)) + .saturating_add(T::DbWeight::get().reads(3)) + .saturating_add(T::DbWeight::get().writes(3)) + } + /// Storage: `ForeignAssets::Account` (r:1 w:1) + /// Proof: `ForeignAssets::Account` (`max_values`: None, `max_size`: Some(732), added: 3207, mode: `MaxEncodedLen`) + /// Storage: `ForeignAssets::Asset` (r:1 w:1) + /// Proof: `ForeignAssets::Asset` (`max_values`: None, `max_size`: Some(808), added: 3283, mode: `MaxEncodedLen`) + fn touch_other() -> Weight { + // Proof Size summary in bytes: + // Measured: `242` + // Estimated: `4273` + // Minimum execution time: 33_041_000 picoseconds. + Weight::from_parts(34_124_000, 0) + .saturating_add(Weight::from_parts(0, 4273)) + .saturating_add(T::DbWeight::get().reads(2)) + .saturating_add(T::DbWeight::get().writes(2)) + } + /// Storage: `ForeignAssets::Account` (r:1 w:1) + /// Proof: `ForeignAssets::Account` (`max_values`: None, `max_size`: Some(732), added: 3207, mode: `MaxEncodedLen`) + /// Storage: `ForeignAssets::Asset` (r:1 w:1) + /// Proof: `ForeignAssets::Asset` (`max_values`: None, `max_size`: Some(808), added: 3283, mode: `MaxEncodedLen`) + /// Storage: `System::Account` (r:1 w:1) + /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`) + fn refund() -> Weight { + // Proof Size summary in bytes: + // Measured: `471` + // Estimated: `4273` + // Minimum execution time: 31_728_000 picoseconds. + Weight::from_parts(32_012_000, 0) + .saturating_add(Weight::from_parts(0, 4273)) + .saturating_add(T::DbWeight::get().reads(3)) + .saturating_add(T::DbWeight::get().writes(3)) + } + /// Storage: `ForeignAssets::Account` (r:1 w:1) + /// Proof: `ForeignAssets::Account` (`max_values`: None, `max_size`: Some(732), added: 3207, mode: `MaxEncodedLen`) + /// Storage: `ForeignAssets::Asset` (r:1 w:1) + /// Proof: `ForeignAssets::Asset` (`max_values`: None, `max_size`: Some(808), added: 3283, mode: `MaxEncodedLen`) + fn refund_other() -> Weight { + // Proof Size summary in bytes: + // Measured: `401` + // Estimated: `4273` + // Minimum execution time: 29_432_000 picoseconds. + Weight::from_parts(29_968_000, 0) + .saturating_add(Weight::from_parts(0, 4273)) + .saturating_add(T::DbWeight::get().reads(2)) + .saturating_add(T::DbWeight::get().writes(2)) + } + /// Storage: `ForeignAssets::Asset` (r:1 w:0) + /// Proof: `ForeignAssets::Asset` (`max_values`: None, `max_size`: Some(808), added: 3283, mode: `MaxEncodedLen`) + /// Storage: `ForeignAssets::Account` (r:1 w:1) + /// Proof: `ForeignAssets::Account` (`max_values`: None, `max_size`: Some(732), added: 3207, mode: `MaxEncodedLen`) + fn block() -> Weight { + // Proof Size summary in bytes: + // Measured: `350` + // Estimated: `4273` + // Minimum execution time: 18_827_000 picoseconds. + Weight::from_parts(19_172_000, 0) + .saturating_add(Weight::from_parts(0, 4273)) + .saturating_add(T::DbWeight::get().reads(2)) + .saturating_add(T::DbWeight::get().writes(1)) + } +} diff --git a/cumulus/parachains/runtimes/assets/asset-hub-kusama/src/weights/pallet_assets_local.rs b/cumulus/parachains/runtimes/assets/asset-hub-kusama/src/weights/pallet_assets_local.rs new file mode 100644 index 000000000000..10bd4b1f8b09 --- /dev/null +++ b/cumulus/parachains/runtimes/assets/asset-hub-kusama/src/weights/pallet_assets_local.rs @@ -0,0 +1,531 @@ +// Copyright (C) Parity Technologies (UK) Ltd. +// This file is part of Cumulus. + +// Cumulus 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. + +// Cumulus 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 Cumulus. If not, see . + +//! Autogenerated weights for `pallet_assets` +//! +//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev +//! DATE: 2023-07-31, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! WORST CASE MAP SIZE: `1000000` +//! HOSTNAME: `runner-ynta1nyy-project-238-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz` +//! EXECUTION: ``, WASM-EXECUTION: `Compiled`, CHAIN: `Some("asset-hub-kusama-dev")`, DB CACHE: 1024 + +// Executed Command: +// ./target/production/polkadot-parachain +// benchmark +// pallet +// --chain=asset-hub-kusama-dev +// --wasm-execution=compiled +// --pallet=pallet_assets +// --no-storage-info +// --no-median-slopes +// --no-min-squares +// --extrinsic=* +// --steps=50 +// --repeat=20 +// --json +// --header=./file_header.txt +// --output=./parachains/runtimes/assets/asset-hub-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_assets`. +pub struct WeightInfo(PhantomData); +impl pallet_assets::WeightInfo for WeightInfo { + /// Storage: `Assets::Asset` (r:1 w:1) + /// Proof: `Assets::Asset` (`max_values`: None, `max_size`: Some(210), added: 2685, mode: `MaxEncodedLen`) + /// Storage: `System::Account` (r:1 w:1) + /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`) + fn create() -> Weight { + // Proof Size summary in bytes: + // Measured: `109` + // Estimated: `3675` + // Minimum execution time: 26_510_000 picoseconds. + Weight::from_parts(27_332_000, 0) + .saturating_add(Weight::from_parts(0, 3675)) + .saturating_add(T::DbWeight::get().reads(2)) + .saturating_add(T::DbWeight::get().writes(2)) + } + /// Storage: `Assets::Asset` (r:1 w:1) + /// Proof: `Assets::Asset` (`max_values`: None, `max_size`: Some(210), added: 2685, mode: `MaxEncodedLen`) + fn force_create() -> Weight { + // Proof Size summary in bytes: + // Measured: `6` + // Estimated: `3675` + // Minimum execution time: 10_899_000 picoseconds. + Weight::from_parts(11_395_000, 0) + .saturating_add(Weight::from_parts(0, 3675)) + .saturating_add(T::DbWeight::get().reads(1)) + .saturating_add(T::DbWeight::get().writes(1)) + } + /// Storage: `Assets::Asset` (r:1 w:1) + /// Proof: `Assets::Asset` (`max_values`: None, `max_size`: Some(210), added: 2685, mode: `MaxEncodedLen`) + fn start_destroy() -> Weight { + // Proof Size summary in bytes: + // Measured: `277` + // Estimated: `3675` + // Minimum execution time: 13_593_000 picoseconds. + Weight::from_parts(14_108_000, 0) + .saturating_add(Weight::from_parts(0, 3675)) + .saturating_add(T::DbWeight::get().reads(1)) + .saturating_add(T::DbWeight::get().writes(1)) + } + /// Storage: `Assets::Asset` (r:1 w:1) + /// Proof: `Assets::Asset` (`max_values`: None, `max_size`: Some(210), added: 2685, mode: `MaxEncodedLen`) + /// Storage: `Assets::Account` (r:1001 w:1000) + /// Proof: `Assets::Account` (`max_values`: None, `max_size`: Some(134), added: 2609, mode: `MaxEncodedLen`) + /// Storage: `System::Account` (r:1000 w:1000) + /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`) + /// The range of component `c` is `[0, 1000]`. + /// The range of component `c` is `[0, 1000]`. + fn destroy_accounts(c: u32, ) -> Weight { + // Proof Size summary in bytes: + // Measured: `0 + c * (208 ±0)` + // Estimated: `3675 + c * (2609 ±0)` + // Minimum execution time: 16_216_000 picoseconds. + Weight::from_parts(16_636_000, 0) + .saturating_add(Weight::from_parts(0, 3675)) + // Standard Error: 9_346 + .saturating_add(Weight::from_parts(15_306_152, 0).saturating_mul(c.into())) + .saturating_add(T::DbWeight::get().reads(2)) + .saturating_add(T::DbWeight::get().reads((2_u64).saturating_mul(c.into()))) + .saturating_add(T::DbWeight::get().writes(1)) + .saturating_add(T::DbWeight::get().writes((2_u64).saturating_mul(c.into()))) + .saturating_add(Weight::from_parts(0, 2609).saturating_mul(c.into())) + } + /// Storage: `Assets::Asset` (r:1 w:1) + /// Proof: `Assets::Asset` (`max_values`: None, `max_size`: Some(210), added: 2685, mode: `MaxEncodedLen`) + /// Storage: `Assets::Approvals` (r:1001 w:1000) + /// Proof: `Assets::Approvals` (`max_values`: None, `max_size`: Some(148), added: 2623, mode: `MaxEncodedLen`) + /// The range of component `a` is `[0, 1000]`. + /// The range of component `a` is `[0, 1000]`. + fn destroy_approvals(a: u32, ) -> Weight { + // Proof Size summary in bytes: + // Measured: `414 + a * (86 ±0)` + // Estimated: `3675 + a * (2623 ±0)` + // Minimum execution time: 16_745_000 picoseconds. + Weight::from_parts(17_247_000, 0) + .saturating_add(Weight::from_parts(0, 3675)) + .saturating_add(Weight::from_parts(15_634_963, 0).saturating_mul(a.into())) + .saturating_add(T::DbWeight::get().reads(2)) + .saturating_add(T::DbWeight::get().reads((1_u64).saturating_mul(a.into()))) + .saturating_add(T::DbWeight::get().writes(1)) + .saturating_add(Weight::from_parts(0, 2623).saturating_mul(a.into())) + } + /// Storage: `Assets::Asset` (r:1 w:1) + /// Proof: `Assets::Asset` (`max_values`: None, `max_size`: Some(210), added: 2685, mode: `MaxEncodedLen`) + /// Storage: `Assets::Metadata` (r:1 w:0) + /// Proof: `Assets::Metadata` (`max_values`: None, `max_size`: Some(140), added: 2615, mode: `MaxEncodedLen`) + fn finish_destroy() -> Weight { + // Proof Size summary in bytes: + // Measured: `243` + // Estimated: `3675` + // Minimum execution time: 13_650_000 picoseconds. + Weight::from_parts(14_721_000, 0) + .saturating_add(Weight::from_parts(0, 3675)) + .saturating_add(T::DbWeight::get().reads(2)) + .saturating_add(T::DbWeight::get().writes(1)) + } + /// Storage: `Assets::Asset` (r:1 w:1) + /// Proof: `Assets::Asset` (`max_values`: None, `max_size`: Some(210), added: 2685, mode: `MaxEncodedLen`) + /// Storage: `Assets::Account` (r:1 w:1) + /// Proof: `Assets::Account` (`max_values`: None, `max_size`: Some(134), added: 2609, mode: `MaxEncodedLen`) + fn mint() -> Weight { + // Proof Size summary in bytes: + // Measured: `243` + // Estimated: `3675` + // Minimum execution time: 24_121_000 picoseconds. + Weight::from_parts(25_023_000, 0) + .saturating_add(Weight::from_parts(0, 3675)) + .saturating_add(T::DbWeight::get().reads(2)) + .saturating_add(T::DbWeight::get().writes(2)) + } + /// Storage: `Assets::Asset` (r:1 w:1) + /// Proof: `Assets::Asset` (`max_values`: None, `max_size`: Some(210), added: 2685, mode: `MaxEncodedLen`) + /// Storage: `Assets::Account` (r:1 w:1) + /// Proof: `Assets::Account` (`max_values`: None, `max_size`: Some(134), added: 2609, mode: `MaxEncodedLen`) + fn burn() -> Weight { + // Proof Size summary in bytes: + // Measured: `351` + // Estimated: `3675` + // Minimum execution time: 31_414_000 picoseconds. + Weight::from_parts(32_235_000, 0) + .saturating_add(Weight::from_parts(0, 3675)) + .saturating_add(T::DbWeight::get().reads(2)) + .saturating_add(T::DbWeight::get().writes(2)) + } + /// Storage: `Assets::Asset` (r:1 w:1) + /// Proof: `Assets::Asset` (`max_values`: None, `max_size`: Some(210), added: 2685, mode: `MaxEncodedLen`) + /// Storage: `Assets::Account` (r:2 w:2) + /// Proof: `Assets::Account` (`max_values`: None, `max_size`: Some(134), added: 2609, mode: `MaxEncodedLen`) + /// Storage: `System::Account` (r:1 w:1) + /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`) + fn transfer() -> Weight { + // Proof Size summary in bytes: + // Measured: `351` + // Estimated: `6208` + // Minimum execution time: 43_114_000 picoseconds. + Weight::from_parts(44_106_000, 0) + .saturating_add(Weight::from_parts(0, 6208)) + .saturating_add(T::DbWeight::get().reads(4)) + .saturating_add(T::DbWeight::get().writes(4)) + } + /// Storage: `Assets::Asset` (r:1 w:1) + /// Proof: `Assets::Asset` (`max_values`: None, `max_size`: Some(210), added: 2685, mode: `MaxEncodedLen`) + /// Storage: `Assets::Account` (r:2 w:2) + /// Proof: `Assets::Account` (`max_values`: None, `max_size`: Some(134), added: 2609, mode: `MaxEncodedLen`) + /// 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: `351` + // Estimated: `6208` + // Minimum execution time: 37_954_000 picoseconds. + Weight::from_parts(38_772_000, 0) + .saturating_add(Weight::from_parts(0, 6208)) + .saturating_add(T::DbWeight::get().reads(4)) + .saturating_add(T::DbWeight::get().writes(4)) + } + /// Storage: `Assets::Asset` (r:1 w:1) + /// Proof: `Assets::Asset` (`max_values`: None, `max_size`: Some(210), added: 2685, mode: `MaxEncodedLen`) + /// Storage: `Assets::Account` (r:2 w:2) + /// Proof: `Assets::Account` (`max_values`: None, `max_size`: Some(134), added: 2609, mode: `MaxEncodedLen`) + /// Storage: `System::Account` (r:1 w:1) + /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`) + fn force_transfer() -> Weight { + // Proof Size summary in bytes: + // Measured: `351` + // Estimated: `6208` + // Minimum execution time: 43_051_000 picoseconds. + Weight::from_parts(44_003_000, 0) + .saturating_add(Weight::from_parts(0, 6208)) + .saturating_add(T::DbWeight::get().reads(4)) + .saturating_add(T::DbWeight::get().writes(4)) + } + /// Storage: `Assets::Asset` (r:1 w:0) + /// Proof: `Assets::Asset` (`max_values`: None, `max_size`: Some(210), added: 2685, mode: `MaxEncodedLen`) + /// Storage: `Assets::Account` (r:1 w:1) + /// Proof: `Assets::Account` (`max_values`: None, `max_size`: Some(134), added: 2609, mode: `MaxEncodedLen`) + fn freeze() -> Weight { + // Proof Size summary in bytes: + // Measured: `351` + // Estimated: `3675` + // Minimum execution time: 17_048_000 picoseconds. + Weight::from_parts(17_614_000, 0) + .saturating_add(Weight::from_parts(0, 3675)) + .saturating_add(T::DbWeight::get().reads(2)) + .saturating_add(T::DbWeight::get().writes(1)) + } + /// Storage: `Assets::Asset` (r:1 w:0) + /// Proof: `Assets::Asset` (`max_values`: None, `max_size`: Some(210), added: 2685, mode: `MaxEncodedLen`) + /// Storage: `Assets::Account` (r:1 w:1) + /// Proof: `Assets::Account` (`max_values`: None, `max_size`: Some(134), added: 2609, mode: `MaxEncodedLen`) + fn thaw() -> Weight { + // Proof Size summary in bytes: + // Measured: `351` + // Estimated: `3675` + // Minimum execution time: 16_705_000 picoseconds. + Weight::from_parts(17_581_000, 0) + .saturating_add(Weight::from_parts(0, 3675)) + .saturating_add(T::DbWeight::get().reads(2)) + .saturating_add(T::DbWeight::get().writes(1)) + } + /// Storage: `Assets::Asset` (r:1 w:1) + /// Proof: `Assets::Asset` (`max_values`: None, `max_size`: Some(210), added: 2685, mode: `MaxEncodedLen`) + fn freeze_asset() -> Weight { + // Proof Size summary in bytes: + // Measured: `277` + // Estimated: `3675` + // Minimum execution time: 13_284_000 picoseconds. + Weight::from_parts(13_735_000, 0) + .saturating_add(Weight::from_parts(0, 3675)) + .saturating_add(T::DbWeight::get().reads(1)) + .saturating_add(T::DbWeight::get().writes(1)) + } + /// Storage: `Assets::Asset` (r:1 w:1) + /// Proof: `Assets::Asset` (`max_values`: None, `max_size`: Some(210), added: 2685, mode: `MaxEncodedLen`) + fn thaw_asset() -> Weight { + // Proof Size summary in bytes: + // Measured: `277` + // Estimated: `3675` + // Minimum execution time: 13_030_000 picoseconds. + Weight::from_parts(13_417_000, 0) + .saturating_add(Weight::from_parts(0, 3675)) + .saturating_add(T::DbWeight::get().reads(1)) + .saturating_add(T::DbWeight::get().writes(1)) + } + /// Storage: `Assets::Asset` (r:1 w:1) + /// Proof: `Assets::Asset` (`max_values`: None, `max_size`: Some(210), added: 2685, mode: `MaxEncodedLen`) + /// Storage: `Assets::Metadata` (r:1 w:0) + /// Proof: `Assets::Metadata` (`max_values`: None, `max_size`: Some(140), added: 2615, mode: `MaxEncodedLen`) + fn transfer_ownership() -> Weight { + // Proof Size summary in bytes: + // Measured: `243` + // Estimated: `3675` + // Minimum execution time: 14_174_000 picoseconds. + Weight::from_parts(14_660_000, 0) + .saturating_add(Weight::from_parts(0, 3675)) + .saturating_add(T::DbWeight::get().reads(2)) + .saturating_add(T::DbWeight::get().writes(1)) + } + /// Storage: `Assets::Asset` (r:1 w:1) + /// Proof: `Assets::Asset` (`max_values`: None, `max_size`: Some(210), added: 2685, mode: `MaxEncodedLen`) + fn set_team() -> Weight { + // Proof Size summary in bytes: + // Measured: `243` + // Estimated: `3675` + // Minimum execution time: 12_737_000 picoseconds. + Weight::from_parts(13_172_000, 0) + .saturating_add(Weight::from_parts(0, 3675)) + .saturating_add(T::DbWeight::get().reads(1)) + .saturating_add(T::DbWeight::get().writes(1)) + } + /// Storage: `Assets::Asset` (r:1 w:0) + /// Proof: `Assets::Asset` (`max_values`: None, `max_size`: Some(210), added: 2685, mode: `MaxEncodedLen`) + /// Storage: `Assets::Metadata` (r:1 w:1) + /// Proof: `Assets::Metadata` (`max_values`: None, `max_size`: Some(140), added: 2615, mode: `MaxEncodedLen`) + /// The range of component `n` is `[0, 50]`. + /// The range of component `s` is `[0, 50]`. + /// The range of component `n` is `[0, 50]`. + /// The range of component `s` is `[0, 50]`. + fn set_metadata(n: u32, s: u32, ) -> Weight { + // Proof Size summary in bytes: + // Measured: `243` + // Estimated: `3675` + // Minimum execution time: 27_707_000 picoseconds. + Weight::from_parts(29_036_880, 0) + .saturating_add(Weight::from_parts(0, 3675)) + // Standard Error: 688 + .saturating_add(Weight::from_parts(2_426, 0).saturating_mul(n.into())) + // Standard Error: 688 + .saturating_add(Weight::from_parts(776, 0).saturating_mul(s.into())) + .saturating_add(T::DbWeight::get().reads(2)) + .saturating_add(T::DbWeight::get().writes(1)) + } + /// Storage: `Assets::Asset` (r:1 w:0) + /// Proof: `Assets::Asset` (`max_values`: None, `max_size`: Some(210), added: 2685, mode: `MaxEncodedLen`) + /// Storage: `Assets::Metadata` (r:1 w:1) + /// Proof: `Assets::Metadata` (`max_values`: None, `max_size`: Some(140), added: 2615, mode: `MaxEncodedLen`) + fn clear_metadata() -> Weight { + // Proof Size summary in bytes: + // Measured: `407` + // Estimated: `3675` + // Minimum execution time: 28_514_000 picoseconds. + Weight::from_parts(29_216_000, 0) + .saturating_add(Weight::from_parts(0, 3675)) + .saturating_add(T::DbWeight::get().reads(2)) + .saturating_add(T::DbWeight::get().writes(1)) + } + /// Storage: `Assets::Asset` (r:1 w:0) + /// Proof: `Assets::Asset` (`max_values`: None, `max_size`: Some(210), added: 2685, mode: `MaxEncodedLen`) + /// Storage: `Assets::Metadata` (r:1 w:1) + /// Proof: `Assets::Metadata` (`max_values`: None, `max_size`: Some(140), added: 2615, mode: `MaxEncodedLen`) + /// The range of component `n` is `[0, 50]`. + /// The range of component `s` is `[0, 50]`. + /// The range of component `n` is `[0, 50]`. + /// The range of component `s` is `[0, 50]`. + fn force_set_metadata(n: u32, s: u32, ) -> Weight { + // Proof Size summary in bytes: + // Measured: `82` + // Estimated: `3675` + // Minimum execution time: 12_452_000 picoseconds. + Weight::from_parts(13_095_356, 0) + .saturating_add(Weight::from_parts(0, 3675)) + // Standard Error: 275 + .saturating_add(Weight::from_parts(826, 0).saturating_mul(n.into())) + // Standard Error: 275 + .saturating_add(Weight::from_parts(808, 0).saturating_mul(s.into())) + .saturating_add(T::DbWeight::get().reads(2)) + .saturating_add(T::DbWeight::get().writes(1)) + } + /// Storage: `Assets::Asset` (r:1 w:0) + /// Proof: `Assets::Asset` (`max_values`: None, `max_size`: Some(210), added: 2685, mode: `MaxEncodedLen`) + /// Storage: `Assets::Metadata` (r:1 w:1) + /// Proof: `Assets::Metadata` (`max_values`: None, `max_size`: Some(140), added: 2615, mode: `MaxEncodedLen`) + fn force_clear_metadata() -> Weight { + // Proof Size summary in bytes: + // Measured: `407` + // Estimated: `3675` + // Minimum execution time: 28_181_000 picoseconds. + Weight::from_parts(29_050_000, 0) + .saturating_add(Weight::from_parts(0, 3675)) + .saturating_add(T::DbWeight::get().reads(2)) + .saturating_add(T::DbWeight::get().writes(1)) + } + /// Storage: `Assets::Asset` (r:1 w:1) + /// Proof: `Assets::Asset` (`max_values`: None, `max_size`: Some(210), added: 2685, mode: `MaxEncodedLen`) + fn force_asset_status() -> Weight { + // Proof Size summary in bytes: + // Measured: `243` + // Estimated: `3675` + // Minimum execution time: 12_253_000 picoseconds. + Weight::from_parts(12_545_000, 0) + .saturating_add(Weight::from_parts(0, 3675)) + .saturating_add(T::DbWeight::get().reads(1)) + .saturating_add(T::DbWeight::get().writes(1)) + } + /// Storage: `Assets::Asset` (r:1 w:1) + /// Proof: `Assets::Asset` (`max_values`: None, `max_size`: Some(210), added: 2685, mode: `MaxEncodedLen`) + /// Storage: `Assets::Approvals` (r:1 w:1) + /// Proof: `Assets::Approvals` (`max_values`: None, `max_size`: Some(148), added: 2623, mode: `MaxEncodedLen`) + fn approve_transfer() -> Weight { + // Proof Size summary in bytes: + // Measured: `277` + // Estimated: `3675` + // Minimum execution time: 31_084_000 picoseconds. + Weight::from_parts(32_052_000, 0) + .saturating_add(Weight::from_parts(0, 3675)) + .saturating_add(T::DbWeight::get().reads(2)) + .saturating_add(T::DbWeight::get().writes(2)) + } + /// Storage: `Assets::Asset` (r:1 w:1) + /// Proof: `Assets::Asset` (`max_values`: None, `max_size`: Some(210), added: 2685, mode: `MaxEncodedLen`) + /// Storage: `Assets::Approvals` (r:1 w:1) + /// Proof: `Assets::Approvals` (`max_values`: None, `max_size`: Some(148), added: 2623, mode: `MaxEncodedLen`) + /// Storage: `Assets::Account` (r:2 w:2) + /// Proof: `Assets::Account` (`max_values`: None, `max_size`: Some(134), added: 2609, mode: `MaxEncodedLen`) + /// Storage: `System::Account` (r:1 w:1) + /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`) + fn transfer_approved() -> Weight { + // Proof Size summary in bytes: + // Measured: `521` + // Estimated: `6208` + // Minimum execution time: 61_756_000 picoseconds. + Weight::from_parts(62_740_000, 0) + .saturating_add(Weight::from_parts(0, 6208)) + .saturating_add(T::DbWeight::get().reads(5)) + .saturating_add(T::DbWeight::get().writes(5)) + } + /// Storage: `Assets::Asset` (r:1 w:1) + /// Proof: `Assets::Asset` (`max_values`: None, `max_size`: Some(210), added: 2685, mode: `MaxEncodedLen`) + /// Storage: `Assets::Approvals` (r:1 w:1) + /// Proof: `Assets::Approvals` (`max_values`: None, `max_size`: Some(148), added: 2623, mode: `MaxEncodedLen`) + fn cancel_approval() -> Weight { + // Proof Size summary in bytes: + // Measured: `447` + // Estimated: `3675` + // Minimum execution time: 33_370_000 picoseconds. + Weight::from_parts(34_127_000, 0) + .saturating_add(Weight::from_parts(0, 3675)) + .saturating_add(T::DbWeight::get().reads(2)) + .saturating_add(T::DbWeight::get().writes(2)) + } + /// Storage: `Assets::Asset` (r:1 w:1) + /// Proof: `Assets::Asset` (`max_values`: None, `max_size`: Some(210), added: 2685, mode: `MaxEncodedLen`) + /// Storage: `Assets::Approvals` (r:1 w:1) + /// Proof: `Assets::Approvals` (`max_values`: None, `max_size`: Some(148), added: 2623, mode: `MaxEncodedLen`) + fn force_cancel_approval() -> Weight { + // Proof Size summary in bytes: + // Measured: `447` + // Estimated: `3675` + // Minimum execution time: 33_753_000 picoseconds. + Weight::from_parts(34_613_000, 0) + .saturating_add(Weight::from_parts(0, 3675)) + .saturating_add(T::DbWeight::get().reads(2)) + .saturating_add(T::DbWeight::get().writes(2)) + } + /// Storage: `Assets::Asset` (r:1 w:1) + /// Proof: `Assets::Asset` (`max_values`: None, `max_size`: Some(210), added: 2685, mode: `MaxEncodedLen`) + fn set_min_balance() -> Weight { + // Proof Size summary in bytes: + // Measured: `243` + // Estimated: `3675` + // Minimum execution time: 13_508_000 picoseconds. + Weight::from_parts(13_997_000, 0) + .saturating_add(Weight::from_parts(0, 3675)) + .saturating_add(T::DbWeight::get().reads(1)) + .saturating_add(T::DbWeight::get().writes(1)) + } + /// Storage: `Assets::Account` (r:1 w:1) + /// Proof: `Assets::Account` (`max_values`: None, `max_size`: Some(134), added: 2609, mode: `MaxEncodedLen`) + /// Storage: `Assets::Asset` (r:1 w:1) + /// Proof: `Assets::Asset` (`max_values`: None, `max_size`: Some(210), added: 2685, mode: `MaxEncodedLen`) + /// Storage: `System::Account` (r:1 w:1) + /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`) + fn touch() -> Weight { + // Proof Size summary in bytes: + // Measured: `346` + // Estimated: `3675` + // Minimum execution time: 32_578_000 picoseconds. + Weight::from_parts(33_675_000, 0) + .saturating_add(Weight::from_parts(0, 3675)) + .saturating_add(T::DbWeight::get().reads(3)) + .saturating_add(T::DbWeight::get().writes(3)) + } + /// Storage: `Assets::Account` (r:1 w:1) + /// Proof: `Assets::Account` (`max_values`: None, `max_size`: Some(134), added: 2609, mode: `MaxEncodedLen`) + /// Storage: `Assets::Asset` (r:1 w:1) + /// Proof: `Assets::Asset` (`max_values`: None, `max_size`: Some(210), added: 2685, mode: `MaxEncodedLen`) + fn touch_other() -> Weight { + // Proof Size summary in bytes: + // Measured: `243` + // Estimated: `3675` + // Minimum execution time: 30_768_000 picoseconds. + Weight::from_parts(31_710_000, 0) + .saturating_add(Weight::from_parts(0, 3675)) + .saturating_add(T::DbWeight::get().reads(2)) + .saturating_add(T::DbWeight::get().writes(2)) + } + /// Storage: `Assets::Account` (r:1 w:1) + /// Proof: `Assets::Account` (`max_values`: None, `max_size`: Some(134), added: 2609, mode: `MaxEncodedLen`) + /// Storage: `Assets::Asset` (r:1 w:1) + /// Proof: `Assets::Asset` (`max_values`: None, `max_size`: Some(210), added: 2685, mode: `MaxEncodedLen`) + /// Storage: `System::Account` (r:1 w:1) + /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`) + fn refund() -> Weight { + // Proof Size summary in bytes: + // Measured: `472` + // Estimated: `3675` + // Minimum execution time: 30_028_000 picoseconds. + Weight::from_parts(30_793_000, 0) + .saturating_add(Weight::from_parts(0, 3675)) + .saturating_add(T::DbWeight::get().reads(3)) + .saturating_add(T::DbWeight::get().writes(3)) + } + /// Storage: `Assets::Account` (r:1 w:1) + /// Proof: `Assets::Account` (`max_values`: None, `max_size`: Some(134), added: 2609, mode: `MaxEncodedLen`) + /// Storage: `Assets::Asset` (r:1 w:1) + /// Proof: `Assets::Asset` (`max_values`: None, `max_size`: Some(210), added: 2685, mode: `MaxEncodedLen`) + fn refund_other() -> Weight { + // Proof Size summary in bytes: + // Measured: `402` + // Estimated: `3675` + // Minimum execution time: 28_354_000 picoseconds. + Weight::from_parts(29_097_000, 0) + .saturating_add(Weight::from_parts(0, 3675)) + .saturating_add(T::DbWeight::get().reads(2)) + .saturating_add(T::DbWeight::get().writes(2)) + } + /// Storage: `Assets::Asset` (r:1 w:0) + /// Proof: `Assets::Asset` (`max_values`: None, `max_size`: Some(210), added: 2685, mode: `MaxEncodedLen`) + /// Storage: `Assets::Account` (r:1 w:1) + /// Proof: `Assets::Account` (`max_values`: None, `max_size`: Some(134), added: 2609, mode: `MaxEncodedLen`) + fn block() -> Weight { + // Proof Size summary in bytes: + // Measured: `351` + // Estimated: `3675` + // Minimum execution time: 16_607_000 picoseconds. + Weight::from_parts(17_433_000, 0) + .saturating_add(Weight::from_parts(0, 3675)) + .saturating_add(T::DbWeight::get().reads(2)) + .saturating_add(T::DbWeight::get().writes(1)) + } +} diff --git a/cumulus/parachains/runtimes/assets/asset-hub-kusama/src/weights/pallet_assets_pool.rs b/cumulus/parachains/runtimes/assets/asset-hub-kusama/src/weights/pallet_assets_pool.rs new file mode 100644 index 000000000000..444699e33ef7 --- /dev/null +++ b/cumulus/parachains/runtimes/assets/asset-hub-kusama/src/weights/pallet_assets_pool.rs @@ -0,0 +1,531 @@ +// Copyright (C) Parity Technologies (UK) Ltd. +// This file is part of Cumulus. + +// Cumulus 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. + +// Cumulus 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 Cumulus. If not, see . + +//! Autogenerated weights for `pallet_assets` +//! +//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev +//! DATE: 2023-07-27, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! WORST CASE MAP SIZE: `1000000` +//! HOSTNAME: `runner-ynta1nyy-project-238-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz` +//! EXECUTION: ``, WASM-EXECUTION: `Compiled`, CHAIN: `Some("asset-hub-kusama-dev")`, DB CACHE: 1024 + +// Executed Command: +// target/production/polkadot-parachain +// benchmark +// pallet +// --steps=50 +// --repeat=20 +// --extrinsic=* +// --wasm-execution=compiled +// --heap-pages=4096 +// --json-file=/builds/parity/mirrors/cumulus/.git/.artifacts/bench.json +// --pallet=pallet_assets +// --chain=asset-hub-kusama-dev +// --header=./file_header.txt +// --output=./parachains/runtimes/assets/asset-hub-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_assets`. +pub struct WeightInfo(PhantomData); +impl pallet_assets::WeightInfo for WeightInfo { + /// Storage: `PoolAssets::Asset` (r:1 w:1) + /// Proof: `PoolAssets::Asset` (`max_values`: None, `max_size`: Some(210), added: 2685, mode: `MaxEncodedLen`) + fn create() -> Weight { + // Proof Size summary in bytes: + // Measured: `42` + // Estimated: `3675` + // Minimum execution time: 11_591_000 picoseconds. + Weight::from_parts(11_901_000, 0) + .saturating_add(Weight::from_parts(0, 3675)) + .saturating_add(T::DbWeight::get().reads(1)) + .saturating_add(T::DbWeight::get().writes(1)) + } + /// Storage: `PoolAssets::Asset` (r:1 w:1) + /// Proof: `PoolAssets::Asset` (`max_values`: None, `max_size`: Some(210), added: 2685, mode: `MaxEncodedLen`) + fn force_create() -> Weight { + // Proof Size summary in bytes: + // Measured: `42` + // Estimated: `3675` + // Minimum execution time: 11_184_000 picoseconds. + Weight::from_parts(11_640_000, 0) + .saturating_add(Weight::from_parts(0, 3675)) + .saturating_add(T::DbWeight::get().reads(1)) + .saturating_add(T::DbWeight::get().writes(1)) + } + /// Storage: `PoolAssets::Asset` (r:1 w:1) + /// Proof: `PoolAssets::Asset` (`max_values`: None, `max_size`: Some(210), added: 2685, mode: `MaxEncodedLen`) + fn start_destroy() -> Weight { + // Proof Size summary in bytes: + // Measured: `314` + // Estimated: `3675` + // Minimum execution time: 13_809_000 picoseconds. + Weight::from_parts(14_226_000, 0) + .saturating_add(Weight::from_parts(0, 3675)) + .saturating_add(T::DbWeight::get().reads(1)) + .saturating_add(T::DbWeight::get().writes(1)) + } + /// Storage: `PoolAssets::Asset` (r:1 w:1) + /// Proof: `PoolAssets::Asset` (`max_values`: None, `max_size`: Some(210), added: 2685, mode: `MaxEncodedLen`) + /// Storage: `PoolAssets::Account` (r:1001 w:1000) + /// Proof: `PoolAssets::Account` (`max_values`: None, `max_size`: Some(134), added: 2609, mode: `MaxEncodedLen`) + /// Storage: `System::Account` (r:1000 w:1000) + /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`) + /// The range of component `c` is `[0, 1000]`. + /// The range of component `c` is `[0, 1000]`. + /// The range of component `c` is `[0, 1000]`. + fn destroy_accounts(c: u32, ) -> Weight { + // Proof Size summary in bytes: + // Measured: `0 + c * (208 ±0)` + // Estimated: `3675 + c * (2609 ±0)` + // Minimum execution time: 16_439_000 picoseconds. + Weight::from_parts(16_743_000, 0) + .saturating_add(Weight::from_parts(0, 3675)) + // Standard Error: 4_792 + .saturating_add(Weight::from_parts(14_463_991, 0).saturating_mul(c.into())) + .saturating_add(T::DbWeight::get().reads(2)) + .saturating_add(T::DbWeight::get().reads((2_u64).saturating_mul(c.into()))) + .saturating_add(T::DbWeight::get().writes(1)) + .saturating_add(T::DbWeight::get().writes((2_u64).saturating_mul(c.into()))) + .saturating_add(Weight::from_parts(0, 2609).saturating_mul(c.into())) + } + /// Storage: `PoolAssets::Asset` (r:1 w:1) + /// Proof: `PoolAssets::Asset` (`max_values`: None, `max_size`: Some(210), added: 2685, mode: `MaxEncodedLen`) + /// Storage: `PoolAssets::Approvals` (r:1001 w:1000) + /// Proof: `PoolAssets::Approvals` (`max_values`: None, `max_size`: Some(148), added: 2623, mode: `MaxEncodedLen`) + /// The range of component `a` is `[0, 1000]`. + /// The range of component `a` is `[0, 1000]`. + /// The range of component `a` is `[0, 1000]`. + fn destroy_approvals(a: u32, ) -> Weight { + // Proof Size summary in bytes: + // Measured: `451 + a * (86 ±0)` + // Estimated: `3675 + a * (2623 ±0)` + // Minimum execution time: 17_218_000 picoseconds. + Weight::from_parts(17_585_000, 0) + .saturating_add(Weight::from_parts(0, 3675)) + // Standard Error: 2_056 + .saturating_add(Weight::from_parts(5_323_866, 0).saturating_mul(a.into())) + .saturating_add(T::DbWeight::get().reads(2)) + .saturating_add(T::DbWeight::get().reads((1_u64).saturating_mul(a.into()))) + .saturating_add(T::DbWeight::get().writes(1)) + .saturating_add(T::DbWeight::get().writes((1_u64).saturating_mul(a.into()))) + .saturating_add(Weight::from_parts(0, 2623).saturating_mul(a.into())) + } + /// Storage: `PoolAssets::Asset` (r:1 w:1) + /// Proof: `PoolAssets::Asset` (`max_values`: None, `max_size`: Some(210), added: 2685, mode: `MaxEncodedLen`) + /// Storage: `PoolAssets::Metadata` (r:1 w:0) + /// Proof: `PoolAssets::Metadata` (`max_values`: None, `max_size`: Some(140), added: 2615, mode: `MaxEncodedLen`) + fn finish_destroy() -> Weight { + // Proof Size summary in bytes: + // Measured: `280` + // Estimated: `3675` + // Minimum execution time: 13_848_000 picoseconds. + Weight::from_parts(14_325_000, 0) + .saturating_add(Weight::from_parts(0, 3675)) + .saturating_add(T::DbWeight::get().reads(2)) + .saturating_add(T::DbWeight::get().writes(1)) + } + /// Storage: `PoolAssets::Asset` (r:1 w:1) + /// Proof: `PoolAssets::Asset` (`max_values`: None, `max_size`: Some(210), added: 2685, mode: `MaxEncodedLen`) + /// Storage: `PoolAssets::Account` (r:1 w:1) + /// Proof: `PoolAssets::Account` (`max_values`: None, `max_size`: Some(134), added: 2609, mode: `MaxEncodedLen`) + fn mint() -> Weight { + // Proof Size summary in bytes: + // Measured: `280` + // Estimated: `3675` + // Minimum execution time: 24_904_000 picoseconds. + Weight::from_parts(25_607_000, 0) + .saturating_add(Weight::from_parts(0, 3675)) + .saturating_add(T::DbWeight::get().reads(2)) + .saturating_add(T::DbWeight::get().writes(2)) + } + /// Storage: `PoolAssets::Asset` (r:1 w:1) + /// Proof: `PoolAssets::Asset` (`max_values`: None, `max_size`: Some(210), added: 2685, mode: `MaxEncodedLen`) + /// Storage: `PoolAssets::Account` (r:1 w:1) + /// Proof: `PoolAssets::Account` (`max_values`: None, `max_size`: Some(134), added: 2609, mode: `MaxEncodedLen`) + fn burn() -> Weight { + // Proof Size summary in bytes: + // Measured: `388` + // Estimated: `3675` + // Minimum execution time: 31_477_000 picoseconds. + Weight::from_parts(32_338_000, 0) + .saturating_add(Weight::from_parts(0, 3675)) + .saturating_add(T::DbWeight::get().reads(2)) + .saturating_add(T::DbWeight::get().writes(2)) + } + /// Storage: `PoolAssets::Asset` (r:1 w:1) + /// Proof: `PoolAssets::Asset` (`max_values`: None, `max_size`: Some(210), added: 2685, mode: `MaxEncodedLen`) + /// Storage: `PoolAssets::Account` (r:2 w:2) + /// Proof: `PoolAssets::Account` (`max_values`: None, `max_size`: Some(134), added: 2609, mode: `MaxEncodedLen`) + /// Storage: `System::Account` (r:1 w:1) + /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`) + fn transfer() -> Weight { + // Proof Size summary in bytes: + // Measured: `388` + // Estimated: `6208` + // Minimum execution time: 42_994_000 picoseconds. + Weight::from_parts(44_041_000, 0) + .saturating_add(Weight::from_parts(0, 6208)) + .saturating_add(T::DbWeight::get().reads(4)) + .saturating_add(T::DbWeight::get().writes(4)) + } + /// Storage: `PoolAssets::Asset` (r:1 w:1) + /// Proof: `PoolAssets::Asset` (`max_values`: None, `max_size`: Some(210), added: 2685, mode: `MaxEncodedLen`) + /// Storage: `PoolAssets::Account` (r:2 w:2) + /// Proof: `PoolAssets::Account` (`max_values`: None, `max_size`: Some(134), added: 2609, mode: `MaxEncodedLen`) + /// 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: `388` + // Estimated: `6208` + // Minimum execution time: 37_551_000 picoseconds. + Weight::from_parts(38_648_000, 0) + .saturating_add(Weight::from_parts(0, 6208)) + .saturating_add(T::DbWeight::get().reads(4)) + .saturating_add(T::DbWeight::get().writes(4)) + } + /// Storage: `PoolAssets::Asset` (r:1 w:1) + /// Proof: `PoolAssets::Asset` (`max_values`: None, `max_size`: Some(210), added: 2685, mode: `MaxEncodedLen`) + /// Storage: `PoolAssets::Account` (r:2 w:2) + /// Proof: `PoolAssets::Account` (`max_values`: None, `max_size`: Some(134), added: 2609, mode: `MaxEncodedLen`) + /// Storage: `System::Account` (r:1 w:1) + /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`) + fn force_transfer() -> Weight { + // Proof Size summary in bytes: + // Measured: `388` + // Estimated: `6208` + // Minimum execution time: 42_829_000 picoseconds. + Weight::from_parts(44_029_000, 0) + .saturating_add(Weight::from_parts(0, 6208)) + .saturating_add(T::DbWeight::get().reads(4)) + .saturating_add(T::DbWeight::get().writes(4)) + } + /// Storage: `PoolAssets::Asset` (r:1 w:0) + /// Proof: `PoolAssets::Asset` (`max_values`: None, `max_size`: Some(210), added: 2685, mode: `MaxEncodedLen`) + /// Storage: `PoolAssets::Account` (r:1 w:1) + /// Proof: `PoolAssets::Account` (`max_values`: None, `max_size`: Some(134), added: 2609, mode: `MaxEncodedLen`) + fn freeze() -> Weight { + // Proof Size summary in bytes: + // Measured: `388` + // Estimated: `3675` + // Minimum execution time: 17_304_000 picoseconds. + Weight::from_parts(17_782_000, 0) + .saturating_add(Weight::from_parts(0, 3675)) + .saturating_add(T::DbWeight::get().reads(2)) + .saturating_add(T::DbWeight::get().writes(1)) + } + /// Storage: `PoolAssets::Asset` (r:1 w:0) + /// Proof: `PoolAssets::Asset` (`max_values`: None, `max_size`: Some(210), added: 2685, mode: `MaxEncodedLen`) + /// Storage: `PoolAssets::Account` (r:1 w:1) + /// Proof: `PoolAssets::Account` (`max_values`: None, `max_size`: Some(134), added: 2609, mode: `MaxEncodedLen`) + fn thaw() -> Weight { + // Proof Size summary in bytes: + // Measured: `388` + // Estimated: `3675` + // Minimum execution time: 17_040_000 picoseconds. + Weight::from_parts(17_698_000, 0) + .saturating_add(Weight::from_parts(0, 3675)) + .saturating_add(T::DbWeight::get().reads(2)) + .saturating_add(T::DbWeight::get().writes(1)) + } + /// Storage: `PoolAssets::Asset` (r:1 w:1) + /// Proof: `PoolAssets::Asset` (`max_values`: None, `max_size`: Some(210), added: 2685, mode: `MaxEncodedLen`) + fn freeze_asset() -> Weight { + // Proof Size summary in bytes: + // Measured: `314` + // Estimated: `3675` + // Minimum execution time: 13_238_000 picoseconds. + Weight::from_parts(13_810_000, 0) + .saturating_add(Weight::from_parts(0, 3675)) + .saturating_add(T::DbWeight::get().reads(1)) + .saturating_add(T::DbWeight::get().writes(1)) + } + /// Storage: `PoolAssets::Asset` (r:1 w:1) + /// Proof: `PoolAssets::Asset` (`max_values`: None, `max_size`: Some(210), added: 2685, mode: `MaxEncodedLen`) + fn thaw_asset() -> Weight { + // Proof Size summary in bytes: + // Measured: `314` + // Estimated: `3675` + // Minimum execution time: 13_034_000 picoseconds. + Weight::from_parts(13_603_000, 0) + .saturating_add(Weight::from_parts(0, 3675)) + .saturating_add(T::DbWeight::get().reads(1)) + .saturating_add(T::DbWeight::get().writes(1)) + } + /// Storage: `PoolAssets::Asset` (r:1 w:1) + /// Proof: `PoolAssets::Asset` (`max_values`: None, `max_size`: Some(210), added: 2685, mode: `MaxEncodedLen`) + /// Storage: `PoolAssets::Metadata` (r:1 w:0) + /// Proof: `PoolAssets::Metadata` (`max_values`: None, `max_size`: Some(140), added: 2615, mode: `MaxEncodedLen`) + fn transfer_ownership() -> Weight { + // Proof Size summary in bytes: + // Measured: `280` + // Estimated: `3675` + // Minimum execution time: 14_357_000 picoseconds. + Weight::from_parts(14_774_000, 0) + .saturating_add(Weight::from_parts(0, 3675)) + .saturating_add(T::DbWeight::get().reads(2)) + .saturating_add(T::DbWeight::get().writes(1)) + } + /// Storage: `PoolAssets::Asset` (r:1 w:1) + /// Proof: `PoolAssets::Asset` (`max_values`: None, `max_size`: Some(210), added: 2685, mode: `MaxEncodedLen`) + fn set_team() -> Weight { + // Proof Size summary in bytes: + // Measured: `280` + // Estimated: `3675` + // Minimum execution time: 13_040_000 picoseconds. + Weight::from_parts(13_616_000, 0) + .saturating_add(Weight::from_parts(0, 3675)) + .saturating_add(T::DbWeight::get().reads(1)) + .saturating_add(T::DbWeight::get().writes(1)) + } + /// Storage: `PoolAssets::Asset` (r:1 w:0) + /// Proof: `PoolAssets::Asset` (`max_values`: None, `max_size`: Some(210), added: 2685, mode: `MaxEncodedLen`) + /// Storage: `PoolAssets::Metadata` (r:1 w:1) + /// Proof: `PoolAssets::Metadata` (`max_values`: None, `max_size`: Some(140), added: 2615, mode: `MaxEncodedLen`) + /// The range of component `n` is `[0, 50]`. + /// The range of component `s` is `[0, 50]`. + /// The range of component `n` is `[0, 50]`. + /// The range of component `s` is `[0, 50]`. + /// The range of component `n` is `[0, 50]`. + /// The range of component `s` is `[0, 50]`. + fn set_metadata(n: u32, s: u32, ) -> Weight { + // Proof Size summary in bytes: + // Measured: `280` + // Estimated: `3675` + // Minimum execution time: 15_274_000 picoseconds. + Weight::from_parts(16_096_881, 0) + .saturating_add(Weight::from_parts(0, 3675)) + // Standard Error: 239 + .saturating_add(Weight::from_parts(1_631, 0).saturating_mul(n.into())) + // Standard Error: 239 + .saturating_add(Weight::from_parts(2_334, 0).saturating_mul(s.into())) + .saturating_add(T::DbWeight::get().reads(2)) + .saturating_add(T::DbWeight::get().writes(1)) + } + /// Storage: `PoolAssets::Asset` (r:1 w:0) + /// Proof: `PoolAssets::Asset` (`max_values`: None, `max_size`: Some(210), added: 2685, mode: `MaxEncodedLen`) + /// Storage: `PoolAssets::Metadata` (r:1 w:1) + /// Proof: `PoolAssets::Metadata` (`max_values`: None, `max_size`: Some(140), added: 2615, mode: `MaxEncodedLen`) + fn clear_metadata() -> Weight { + // Proof Size summary in bytes: + // Measured: `444` + // Estimated: `3675` + // Minimum execution time: 15_900_000 picoseconds. + Weight::from_parts(16_526_000, 0) + .saturating_add(Weight::from_parts(0, 3675)) + .saturating_add(T::DbWeight::get().reads(2)) + .saturating_add(T::DbWeight::get().writes(1)) + } + /// Storage: `PoolAssets::Asset` (r:1 w:0) + /// Proof: `PoolAssets::Asset` (`max_values`: None, `max_size`: Some(210), added: 2685, mode: `MaxEncodedLen`) + /// Storage: `PoolAssets::Metadata` (r:1 w:1) + /// Proof: `PoolAssets::Metadata` (`max_values`: None, `max_size`: Some(140), added: 2615, mode: `MaxEncodedLen`) + /// The range of component `n` is `[0, 50]`. + /// The range of component `s` is `[0, 50]`. + /// The range of component `n` is `[0, 50]`. + /// The range of component `s` is `[0, 50]`. + /// The range of component `n` is `[0, 50]`. + /// The range of component `s` is `[0, 50]`. + fn force_set_metadata(n: u32, s: u32, ) -> Weight { + // Proof Size summary in bytes: + // Measured: `119` + // Estimated: `3675` + // Minimum execution time: 13_391_000 picoseconds. + Weight::from_parts(14_047_176, 0) + .saturating_add(Weight::from_parts(0, 3675)) + // Standard Error: 172 + .saturating_add(Weight::from_parts(2_617, 0).saturating_mul(n.into())) + // Standard Error: 172 + .saturating_add(Weight::from_parts(2_081, 0).saturating_mul(s.into())) + .saturating_add(T::DbWeight::get().reads(2)) + .saturating_add(T::DbWeight::get().writes(1)) + } + /// Storage: `PoolAssets::Asset` (r:1 w:0) + /// Proof: `PoolAssets::Asset` (`max_values`: None, `max_size`: Some(210), added: 2685, mode: `MaxEncodedLen`) + /// Storage: `PoolAssets::Metadata` (r:1 w:1) + /// Proof: `PoolAssets::Metadata` (`max_values`: None, `max_size`: Some(140), added: 2615, mode: `MaxEncodedLen`) + fn force_clear_metadata() -> Weight { + // Proof Size summary in bytes: + // Measured: `444` + // Estimated: `3675` + // Minimum execution time: 15_794_000 picoseconds. + Weight::from_parts(16_279_000, 0) + .saturating_add(Weight::from_parts(0, 3675)) + .saturating_add(T::DbWeight::get().reads(2)) + .saturating_add(T::DbWeight::get().writes(1)) + } + /// Storage: `PoolAssets::Asset` (r:1 w:1) + /// Proof: `PoolAssets::Asset` (`max_values`: None, `max_size`: Some(210), added: 2685, mode: `MaxEncodedLen`) + fn force_asset_status() -> Weight { + // Proof Size summary in bytes: + // Measured: `280` + // Estimated: `3675` + // Minimum execution time: 12_538_000 picoseconds. + Weight::from_parts(13_080_000, 0) + .saturating_add(Weight::from_parts(0, 3675)) + .saturating_add(T::DbWeight::get().reads(1)) + .saturating_add(T::DbWeight::get().writes(1)) + } + /// Storage: `PoolAssets::Asset` (r:1 w:1) + /// Proof: `PoolAssets::Asset` (`max_values`: None, `max_size`: Some(210), added: 2685, mode: `MaxEncodedLen`) + /// Storage: `PoolAssets::Approvals` (r:1 w:1) + /// Proof: `PoolAssets::Approvals` (`max_values`: None, `max_size`: Some(148), added: 2623, mode: `MaxEncodedLen`) + fn approve_transfer() -> Weight { + // Proof Size summary in bytes: + // Measured: `314` + // Estimated: `3675` + // Minimum execution time: 18_991_000 picoseconds. + Weight::from_parts(19_812_000, 0) + .saturating_add(Weight::from_parts(0, 3675)) + .saturating_add(T::DbWeight::get().reads(2)) + .saturating_add(T::DbWeight::get().writes(2)) + } + /// Storage: `PoolAssets::Asset` (r:1 w:1) + /// Proof: `PoolAssets::Asset` (`max_values`: None, `max_size`: Some(210), added: 2685, mode: `MaxEncodedLen`) + /// Storage: `PoolAssets::Approvals` (r:1 w:1) + /// Proof: `PoolAssets::Approvals` (`max_values`: None, `max_size`: Some(148), added: 2623, mode: `MaxEncodedLen`) + /// Storage: `PoolAssets::Account` (r:2 w:2) + /// Proof: `PoolAssets::Account` (`max_values`: None, `max_size`: Some(134), added: 2609, mode: `MaxEncodedLen`) + /// Storage: `System::Account` (r:1 w:1) + /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`) + fn transfer_approved() -> Weight { + // Proof Size summary in bytes: + // Measured: `558` + // Estimated: `6208` + // Minimum execution time: 50_336_000 picoseconds. + Weight::from_parts(51_441_000, 0) + .saturating_add(Weight::from_parts(0, 6208)) + .saturating_add(T::DbWeight::get().reads(5)) + .saturating_add(T::DbWeight::get().writes(5)) + } + /// Storage: `PoolAssets::Asset` (r:1 w:1) + /// Proof: `PoolAssets::Asset` (`max_values`: None, `max_size`: Some(210), added: 2685, mode: `MaxEncodedLen`) + /// Storage: `PoolAssets::Approvals` (r:1 w:1) + /// Proof: `PoolAssets::Approvals` (`max_values`: None, `max_size`: Some(148), added: 2623, mode: `MaxEncodedLen`) + fn cancel_approval() -> Weight { + // Proof Size summary in bytes: + // Measured: `484` + // Estimated: `3675` + // Minimum execution time: 21_195_000 picoseconds. + Weight::from_parts(21_946_000, 0) + .saturating_add(Weight::from_parts(0, 3675)) + .saturating_add(T::DbWeight::get().reads(2)) + .saturating_add(T::DbWeight::get().writes(2)) + } + /// Storage: `PoolAssets::Asset` (r:1 w:1) + /// Proof: `PoolAssets::Asset` (`max_values`: None, `max_size`: Some(210), added: 2685, mode: `MaxEncodedLen`) + /// Storage: `PoolAssets::Approvals` (r:1 w:1) + /// Proof: `PoolAssets::Approvals` (`max_values`: None, `max_size`: Some(148), added: 2623, mode: `MaxEncodedLen`) + fn force_cancel_approval() -> Weight { + // Proof Size summary in bytes: + // Measured: `484` + // Estimated: `3675` + // Minimum execution time: 21_568_000 picoseconds. + Weight::from_parts(22_366_000, 0) + .saturating_add(Weight::from_parts(0, 3675)) + .saturating_add(T::DbWeight::get().reads(2)) + .saturating_add(T::DbWeight::get().writes(2)) + } + /// Storage: `PoolAssets::Asset` (r:1 w:1) + /// Proof: `PoolAssets::Asset` (`max_values`: None, `max_size`: Some(210), added: 2685, mode: `MaxEncodedLen`) + fn set_min_balance() -> Weight { + // Proof Size summary in bytes: + // Measured: `280` + // Estimated: `3675` + // Minimum execution time: 13_690_000 picoseconds. + Weight::from_parts(14_086_000, 0) + .saturating_add(Weight::from_parts(0, 3675)) + .saturating_add(T::DbWeight::get().reads(1)) + .saturating_add(T::DbWeight::get().writes(1)) + } + /// Storage: `PoolAssets::Account` (r:1 w:1) + /// Proof: `PoolAssets::Account` (`max_values`: None, `max_size`: Some(134), added: 2609, mode: `MaxEncodedLen`) + /// Storage: `PoolAssets::Asset` (r:1 w:1) + /// Proof: `PoolAssets::Asset` (`max_values`: None, `max_size`: Some(210), added: 2685, mode: `MaxEncodedLen`) + fn touch() -> Weight { + // Proof Size summary in bytes: + // Measured: `280` + // Estimated: `3675` + // Minimum execution time: 18_240_000 picoseconds. + Weight::from_parts(19_000_000, 0) + .saturating_add(Weight::from_parts(0, 3675)) + .saturating_add(T::DbWeight::get().reads(2)) + .saturating_add(T::DbWeight::get().writes(2)) + } + /// Storage: `PoolAssets::Account` (r:1 w:1) + /// Proof: `PoolAssets::Account` (`max_values`: None, `max_size`: Some(134), added: 2609, mode: `MaxEncodedLen`) + /// Storage: `PoolAssets::Asset` (r:1 w:1) + /// Proof: `PoolAssets::Asset` (`max_values`: None, `max_size`: Some(210), added: 2685, mode: `MaxEncodedLen`) + fn touch_other() -> Weight { + // Proof Size summary in bytes: + // Measured: `280` + // Estimated: `3675` + // Minimum execution time: 18_469_000 picoseconds. + Weight::from_parts(19_040_000, 0) + .saturating_add(Weight::from_parts(0, 3675)) + .saturating_add(T::DbWeight::get().reads(2)) + .saturating_add(T::DbWeight::get().writes(2)) + } + /// Storage: `PoolAssets::Account` (r:1 w:1) + /// Proof: `PoolAssets::Account` (`max_values`: None, `max_size`: Some(134), added: 2609, mode: `MaxEncodedLen`) + /// Storage: `PoolAssets::Asset` (r:1 w:1) + /// Proof: `PoolAssets::Asset` (`max_values`: None, `max_size`: Some(210), added: 2685, mode: `MaxEncodedLen`) + fn refund() -> Weight { + // Proof Size summary in bytes: + // Measured: `406` + // Estimated: `3675` + // Minimum execution time: 14_633_000 picoseconds. + Weight::from_parts(15_296_000, 0) + .saturating_add(Weight::from_parts(0, 3675)) + .saturating_add(T::DbWeight::get().reads(2)) + .saturating_add(T::DbWeight::get().writes(2)) + } + /// Storage: `PoolAssets::Account` (r:1 w:1) + /// Proof: `PoolAssets::Account` (`max_values`: None, `max_size`: Some(134), added: 2609, mode: `MaxEncodedLen`) + /// Storage: `PoolAssets::Asset` (r:1 w:1) + /// Proof: `PoolAssets::Asset` (`max_values`: None, `max_size`: Some(210), added: 2685, mode: `MaxEncodedLen`) + fn refund_other() -> Weight { + // Proof Size summary in bytes: + // Measured: `439` + // Estimated: `3675` + // Minimum execution time: 14_751_000 picoseconds. + Weight::from_parts(15_312_000, 0) + .saturating_add(Weight::from_parts(0, 3675)) + .saturating_add(T::DbWeight::get().reads(2)) + .saturating_add(T::DbWeight::get().writes(2)) + } + /// Storage: `PoolAssets::Asset` (r:1 w:0) + /// Proof: `PoolAssets::Asset` (`max_values`: None, `max_size`: Some(210), added: 2685, mode: `MaxEncodedLen`) + /// Storage: `PoolAssets::Account` (r:1 w:1) + /// Proof: `PoolAssets::Account` (`max_values`: None, `max_size`: Some(134), added: 2609, mode: `MaxEncodedLen`) + fn block() -> Weight { + // Proof Size summary in bytes: + // Measured: `388` + // Estimated: `3675` + // Minimum execution time: 16_930_000 picoseconds. + Weight::from_parts(17_653_000, 0) + .saturating_add(Weight::from_parts(0, 3675)) + .saturating_add(T::DbWeight::get().reads(2)) + .saturating_add(T::DbWeight::get().writes(1)) + } +} diff --git a/cumulus/parachains/runtimes/assets/asset-hub-kusama/src/weights/pallet_balances.rs b/cumulus/parachains/runtimes/assets/asset-hub-kusama/src/weights/pallet_balances.rs new file mode 100644 index 000000000000..be1ac3011f79 --- /dev/null +++ b/cumulus/parachains/runtimes/assets/asset-hub-kusama/src/weights/pallet_balances.rs @@ -0,0 +1,153 @@ +// Copyright (C) Parity Technologies (UK) Ltd. +// This file is part of Cumulus. + +// Cumulus 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. + +// Cumulus 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 Cumulus. 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-07-31, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! WORST CASE MAP SIZE: `1000000` +//! HOSTNAME: `runner-ynta1nyy-project-238-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz` +//! EXECUTION: ``, WASM-EXECUTION: `Compiled`, CHAIN: `Some("asset-hub-kusama-dev")`, DB CACHE: 1024 + +// Executed Command: +// ./target/production/polkadot-parachain +// benchmark +// pallet +// --chain=asset-hub-kusama-dev +// --wasm-execution=compiled +// --pallet=pallet_balances +// --no-storage-info +// --no-median-slopes +// --no-min-squares +// --extrinsic=* +// --steps=50 +// --repeat=20 +// --json +// --header=./file_header.txt +// --output=./parachains/runtimes/assets/asset-hub-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_040_000 picoseconds. + Weight::from_parts(56_106_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: 41_342_000 picoseconds. + Weight::from_parts(41_890_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: `103` + // Estimated: `3593` + // Minimum execution time: 14_723_000 picoseconds. + Weight::from_parts(15_182_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: `103` + // Estimated: `3593` + // Minimum execution time: 22_073_000 picoseconds. + Weight::from_parts(22_638_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_265_000 picoseconds. + Weight::from_parts(58_222_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_485_000 picoseconds. + Weight::from_parts(52_003_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: `103` + // Estimated: `3593` + // Minimum execution time: 17_460_000 picoseconds. + Weight::from_parts(17_849_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]`. + fn upgrade_accounts(u: u32, ) -> Weight { + // Proof Size summary in bytes: + // Measured: `0 + u * (136 ±0)` + // Estimated: `990 + u * (2603 ±0)` + // Minimum execution time: 17_259_000 picoseconds. + Weight::from_parts(17_478_000, 0) + .saturating_add(Weight::from_parts(0, 990)) + // Standard Error: 16_756 + .saturating_add(Weight::from_parts(15_291_954, 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/cumulus/parachains/runtimes/assets/asset-hub-kusama/src/weights/pallet_collator_selection.rs b/cumulus/parachains/runtimes/assets/asset-hub-kusama/src/weights/pallet_collator_selection.rs new file mode 100644 index 000000000000..7fe56ac31f7a --- /dev/null +++ b/cumulus/parachains/runtimes/assets/asset-hub-kusama/src/weights/pallet_collator_selection.rs @@ -0,0 +1,225 @@ +// Copyright (C) Parity Technologies (UK) Ltd. +// This file is part of Cumulus. + +// Cumulus 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. + +// Cumulus 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 Cumulus. If not, see . + +//! Autogenerated weights for `pallet_collator_selection` +//! +//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev +//! DATE: 2023-07-31, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! WORST CASE MAP SIZE: `1000000` +//! HOSTNAME: `runner-ynta1nyy-project-238-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz` +//! EXECUTION: ``, WASM-EXECUTION: `Compiled`, CHAIN: `Some("asset-hub-kusama-dev")`, DB CACHE: 1024 + +// Executed Command: +// ./target/production/polkadot-parachain +// benchmark +// pallet +// --chain=asset-hub-kusama-dev +// --wasm-execution=compiled +// --pallet=pallet_collator_selection +// --no-storage-info +// --no-median-slopes +// --no-min-squares +// --extrinsic=* +// --steps=50 +// --repeat=20 +// --json +// --header=./file_header.txt +// --output=./parachains/runtimes/assets/asset-hub-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_collator_selection`. +pub struct WeightInfo(PhantomData); +impl pallet_collator_selection::WeightInfo for WeightInfo { + /// Storage: `Session::NextKeys` (r:20 w:0) + /// Proof: `Session::NextKeys` (`max_values`: None, `max_size`: None, mode: `Measured`) + /// Storage: `CollatorSelection::Invulnerables` (r:0 w:1) + /// Proof: `CollatorSelection::Invulnerables` (`max_values`: Some(1), `max_size`: Some(641), added: 1136, mode: `MaxEncodedLen`) + /// The range of component `b` is `[1, 20]`. + fn set_invulnerables(b: u32, ) -> Weight { + // Proof Size summary in bytes: + // Measured: `163 + b * (79 ±0)` + // Estimated: `1154 + b * (2555 ±0)` + // Minimum execution time: 15_408_000 picoseconds. + Weight::from_parts(13_068_592, 0) + .saturating_add(Weight::from_parts(0, 1154)) + // Standard Error: 7_395 + .saturating_add(Weight::from_parts(3_219_916, 0).saturating_mul(b.into())) + .saturating_add(T::DbWeight::get().reads((1_u64).saturating_mul(b.into()))) + .saturating_add(T::DbWeight::get().writes(1)) + .saturating_add(Weight::from_parts(0, 2555).saturating_mul(b.into())) + } + /// Storage: `Session::NextKeys` (r:1 w:0) + /// Proof: `Session::NextKeys` (`max_values`: None, `max_size`: None, mode: `Measured`) + /// Storage: `CollatorSelection::Invulnerables` (r:1 w:1) + /// Proof: `CollatorSelection::Invulnerables` (`max_values`: Some(1), `max_size`: Some(641), added: 1136, mode: `MaxEncodedLen`) + /// Storage: `CollatorSelection::Candidates` (r:1 w:1) + /// Proof: `CollatorSelection::Candidates` (`max_values`: Some(1), `max_size`: Some(4802), added: 5297, 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 `b` is `[1, 19]`. + /// The range of component `c` is `[1, 99]`. + fn add_invulnerable(b: u32, c: u32, ) -> Weight { + // Proof Size summary in bytes: + // Measured: `756 + b * (32 ±0) + c * (53 ±0)` + // Estimated: `6287 + b * (37 ±0) + c * (53 ±0)` + // Minimum execution time: 49_692_000 picoseconds. + Weight::from_parts(51_768_986, 0) + .saturating_add(Weight::from_parts(0, 6287)) + // Standard Error: 18_404 + .saturating_add(Weight::from_parts(55_676, 0).saturating_mul(b.into())) + // Standard Error: 3_488 + .saturating_add(Weight::from_parts(184_343, 0).saturating_mul(c.into())) + .saturating_add(T::DbWeight::get().reads(4)) + .saturating_add(T::DbWeight::get().writes(3)) + .saturating_add(Weight::from_parts(0, 37).saturating_mul(b.into())) + .saturating_add(Weight::from_parts(0, 53).saturating_mul(c.into())) + } + /// Storage: `CollatorSelection::Candidates` (r:1 w:0) + /// Proof: `CollatorSelection::Candidates` (`max_values`: Some(1), `max_size`: Some(4802), added: 5297, mode: `MaxEncodedLen`) + /// Storage: `CollatorSelection::Invulnerables` (r:1 w:1) + /// Proof: `CollatorSelection::Invulnerables` (`max_values`: Some(1), `max_size`: Some(641), added: 1136, mode: `MaxEncodedLen`) + /// The range of component `b` is `[5, 20]`. + fn remove_invulnerable(b: u32, ) -> Weight { + // Proof Size summary in bytes: + // Measured: `119 + b * (32 ±0)` + // Estimated: `6287` + // Minimum execution time: 16_486_000 picoseconds. + Weight::from_parts(16_646_017, 0) + .saturating_add(Weight::from_parts(0, 6287)) + // Standard Error: 3_230 + .saturating_add(Weight::from_parts(148_941, 0).saturating_mul(b.into())) + .saturating_add(T::DbWeight::get().reads(2)) + .saturating_add(T::DbWeight::get().writes(1)) + } + /// Storage: `CollatorSelection::DesiredCandidates` (r:0 w:1) + /// Proof: `CollatorSelection::DesiredCandidates` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`) + fn set_desired_candidates() -> Weight { + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 7_806_000 picoseconds. + Weight::from_parts(8_002_000, 0) + .saturating_add(Weight::from_parts(0, 0)) + .saturating_add(T::DbWeight::get().writes(1)) + } + /// Storage: `CollatorSelection::CandidacyBond` (r:0 w:1) + /// Proof: `CollatorSelection::CandidacyBond` (`max_values`: Some(1), `max_size`: Some(16), added: 511, mode: `MaxEncodedLen`) + fn set_candidacy_bond() -> Weight { + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 7_937_000 picoseconds. + Weight::from_parts(8_161_000, 0) + .saturating_add(Weight::from_parts(0, 0)) + .saturating_add(T::DbWeight::get().writes(1)) + } + /// Storage: `CollatorSelection::Candidates` (r:1 w:1) + /// Proof: `CollatorSelection::Candidates` (`max_values`: Some(1), `max_size`: Some(4802), added: 5297, mode: `MaxEncodedLen`) + /// Storage: `CollatorSelection::DesiredCandidates` (r:1 w:0) + /// Proof: `CollatorSelection::DesiredCandidates` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`) + /// Storage: `CollatorSelection::Invulnerables` (r:1 w:0) + /// Proof: `CollatorSelection::Invulnerables` (`max_values`: Some(1), `max_size`: Some(641), added: 1136, mode: `MaxEncodedLen`) + /// Storage: `Session::NextKeys` (r:1 w:0) + /// Proof: `Session::NextKeys` (`max_values`: None, `max_size`: None, mode: `Measured`) + /// Storage: `CollatorSelection::CandidacyBond` (r:1 w:0) + /// Proof: `CollatorSelection::CandidacyBond` (`max_values`: Some(1), `max_size`: Some(16), added: 511, mode: `MaxEncodedLen`) + /// Storage: `CollatorSelection::LastAuthoredBlock` (r:0 w:1) + /// Proof: `CollatorSelection::LastAuthoredBlock` (`max_values`: None, `max_size`: Some(44), added: 2519, mode: `MaxEncodedLen`) + /// The range of component `c` is `[1, 99]`. + fn register_as_candidate(c: u32, ) -> Weight { + // Proof Size summary in bytes: + // Measured: `736 + c * (52 ±0)` + // Estimated: `6287 + c * (54 ±0)` + // Minimum execution time: 42_805_000 picoseconds. + Weight::from_parts(45_979_502, 0) + .saturating_add(Weight::from_parts(0, 6287)) + // Standard Error: 2_336 + .saturating_add(Weight::from_parts(221_049, 0).saturating_mul(c.into())) + .saturating_add(T::DbWeight::get().reads(5)) + .saturating_add(T::DbWeight::get().writes(2)) + .saturating_add(Weight::from_parts(0, 54).saturating_mul(c.into())) + } + /// Storage: `CollatorSelection::Candidates` (r:1 w:1) + /// Proof: `CollatorSelection::Candidates` (`max_values`: Some(1), `max_size`: Some(4802), added: 5297, mode: `MaxEncodedLen`) + /// Storage: `CollatorSelection::Invulnerables` (r:1 w:0) + /// Proof: `CollatorSelection::Invulnerables` (`max_values`: Some(1), `max_size`: Some(641), added: 1136, mode: `MaxEncodedLen`) + /// Storage: `CollatorSelection::LastAuthoredBlock` (r:0 w:1) + /// Proof: `CollatorSelection::LastAuthoredBlock` (`max_values`: None, `max_size`: Some(44), added: 2519, mode: `MaxEncodedLen`) + /// The range of component `c` is `[4, 100]`. + fn leave_intent(c: u32, ) -> Weight { + // Proof Size summary in bytes: + // Measured: `306 + c * (50 ±0)` + // Estimated: `6287` + // Minimum execution time: 34_814_000 picoseconds. + Weight::from_parts(36_371_520, 0) + .saturating_add(Weight::from_parts(0, 6287)) + // Standard Error: 2_391 + .saturating_add(Weight::from_parts(201_700, 0).saturating_mul(c.into())) + .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: `System::BlockWeight` (r:1 w:1) + /// Proof: `System::BlockWeight` (`max_values`: Some(1), `max_size`: Some(48), added: 543, mode: `MaxEncodedLen`) + /// Storage: `CollatorSelection::LastAuthoredBlock` (r:0 w:1) + /// Proof: `CollatorSelection::LastAuthoredBlock` (`max_values`: None, `max_size`: Some(44), added: 2519, mode: `MaxEncodedLen`) + fn note_author() -> Weight { + // Proof Size summary in bytes: + // Measured: `103` + // Estimated: `6196` + // Minimum execution time: 46_989_000 picoseconds. + Weight::from_parts(48_151_000, 0) + .saturating_add(Weight::from_parts(0, 6196)) + .saturating_add(T::DbWeight::get().reads(3)) + .saturating_add(T::DbWeight::get().writes(4)) + } + /// Storage: `CollatorSelection::Candidates` (r:1 w:0) + /// Proof: `CollatorSelection::Candidates` (`max_values`: Some(1), `max_size`: Some(4802), added: 5297, mode: `MaxEncodedLen`) + /// Storage: `CollatorSelection::LastAuthoredBlock` (r:100 w:0) + /// Proof: `CollatorSelection::LastAuthoredBlock` (`max_values`: None, `max_size`: Some(44), added: 2519, mode: `MaxEncodedLen`) + /// Storage: `CollatorSelection::Invulnerables` (r:1 w:0) + /// Proof: `CollatorSelection::Invulnerables` (`max_values`: Some(1), `max_size`: Some(641), added: 1136, mode: `MaxEncodedLen`) + /// Storage: `System::BlockWeight` (r:1 w:1) + /// Proof: `System::BlockWeight` (`max_values`: Some(1), `max_size`: Some(48), added: 543, mode: `MaxEncodedLen`) + /// Storage: `System::Account` (r:97 w:97) + /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`) + /// The range of component `r` is `[1, 100]`. + /// The range of component `c` is `[1, 100]`. + fn new_session(r: u32, c: u32, ) -> Weight { + // Proof Size summary in bytes: + // Measured: `2243 + c * (97 ±0) + r * (112 ±0)` + // Estimated: `6287 + c * (2519 ±0) + r * (2603 ±0)` + // Minimum execution time: 17_547_000 picoseconds. + Weight::from_parts(17_854_000, 0) + .saturating_add(Weight::from_parts(0, 6287)) + // Standard Error: 370_637 + .saturating_add(Weight::from_parts(15_798_857, 0).saturating_mul(c.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().writes(1)) + .saturating_add(T::DbWeight::get().writes((1_u64).saturating_mul(c.into()))) + .saturating_add(Weight::from_parts(0, 2519).saturating_mul(c.into())) + .saturating_add(Weight::from_parts(0, 2603).saturating_mul(r.into())) + } +} diff --git a/cumulus/parachains/runtimes/assets/asset-hub-kusama/src/weights/pallet_multisig.rs b/cumulus/parachains/runtimes/assets/asset-hub-kusama/src/weights/pallet_multisig.rs new file mode 100644 index 000000000000..ee7b70736414 --- /dev/null +++ b/cumulus/parachains/runtimes/assets/asset-hub-kusama/src/weights/pallet_multisig.rs @@ -0,0 +1,165 @@ +// Copyright (C) Parity Technologies (UK) Ltd. +// This file is part of Cumulus. + +// Cumulus 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. + +// Cumulus 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 Cumulus. If not, see . + +//! Autogenerated weights for `pallet_multisig` +//! +//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev +//! DATE: 2023-07-31, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! WORST CASE MAP SIZE: `1000000` +//! HOSTNAME: `runner-ynta1nyy-project-238-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz` +//! EXECUTION: ``, WASM-EXECUTION: `Compiled`, CHAIN: `Some("asset-hub-kusama-dev")`, DB CACHE: 1024 + +// Executed Command: +// ./target/production/polkadot-parachain +// benchmark +// pallet +// --chain=asset-hub-kusama-dev +// --wasm-execution=compiled +// --pallet=pallet_multisig +// --no-storage-info +// --no-median-slopes +// --no-min-squares +// --extrinsic=* +// --steps=50 +// --repeat=20 +// --json +// --header=./file_header.txt +// --output=./parachains/runtimes/assets/asset-hub-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_multisig`. +pub struct WeightInfo(PhantomData); +impl pallet_multisig::WeightInfo for WeightInfo { + /// The range of component `z` is `[0, 10000]`. + fn as_multi_threshold_1(z: u32, ) -> Weight { + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 13_714_000 picoseconds. + Weight::from_parts(14_440_231, 0) + .saturating_add(Weight::from_parts(0, 0)) + // Standard Error: 5 + .saturating_add(Weight::from_parts(598, 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`) + /// The range of component `s` is `[2, 100]`. + /// The range of component `z` is `[0, 10000]`. + fn as_multi_create(s: u32, z: u32, ) -> Weight { + // Proof Size summary in bytes: + // Measured: `262 + s * (2 ±0)` + // Estimated: `6811` + // Minimum execution time: 44_768_000 picoseconds. + Weight::from_parts(33_662_218, 0) + .saturating_add(Weight::from_parts(0, 6811)) + // Standard Error: 1_633 + .saturating_add(Weight::from_parts(128_927, 0).saturating_mul(s.into())) + // Standard Error: 16 + .saturating_add(Weight::from_parts(1_543, 0).saturating_mul(z.into())) + .saturating_add(T::DbWeight::get().reads(1)) + .saturating_add(T::DbWeight::get().writes(1)) + } + /// Storage: `Multisig::Multisigs` (r:1 w:1) + /// Proof: `Multisig::Multisigs` (`max_values`: None, `max_size`: Some(3346), added: 5821, mode: `MaxEncodedLen`) + /// The range of component `s` is `[3, 100]`. + /// The range of component `z` is `[0, 10000]`. + fn as_multi_approve(s: u32, z: u32, ) -> Weight { + // Proof Size summary in bytes: + // Measured: `282` + // Estimated: `6811` + // Minimum execution time: 29_745_000 picoseconds. + Weight::from_parts(20_559_891, 0) + .saturating_add(Weight::from_parts(0, 6811)) + // Standard Error: 914 + .saturating_add(Weight::from_parts(103_601, 0).saturating_mul(s.into())) + // Standard Error: 8 + .saturating_add(Weight::from_parts(1_504, 0).saturating_mul(z.into())) + .saturating_add(T::DbWeight::get().reads(1)) + .saturating_add(T::DbWeight::get().writes(1)) + } + /// Storage: `Multisig::Multisigs` (r:1 w:1) + /// Proof: `Multisig::Multisigs` (`max_values`: None, `max_size`: Some(3346), added: 5821, 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 `[2, 100]`. + /// The range of component `z` is `[0, 10000]`. + fn as_multi_complete(s: u32, z: u32, ) -> Weight { + // Proof Size summary in bytes: + // Measured: `385 + s * (33 ±0)` + // Estimated: `6811` + // Minimum execution time: 51_506_000 picoseconds. + Weight::from_parts(36_510_777, 0) + .saturating_add(Weight::from_parts(0, 6811)) + // Standard Error: 2_183 + .saturating_add(Weight::from_parts(183_764, 0).saturating_mul(s.into())) + // Standard Error: 21 + .saturating_add(Weight::from_parts(1_653, 0).saturating_mul(z.into())) + .saturating_add(T::DbWeight::get().reads(2)) + .saturating_add(T::DbWeight::get().writes(2)) + } + /// Storage: `Multisig::Multisigs` (r:1 w:1) + /// Proof: `Multisig::Multisigs` (`max_values`: None, `max_size`: Some(3346), added: 5821, mode: `MaxEncodedLen`) + /// The range of component `s` is `[2, 100]`. + fn approve_as_multi_create(s: u32, ) -> Weight { + // Proof Size summary in bytes: + // Measured: `263 + s * (2 ±0)` + // Estimated: `6811` + // Minimum execution time: 31_072_000 picoseconds. + Weight::from_parts(32_408_621, 0) + .saturating_add(Weight::from_parts(0, 6811)) + // Standard Error: 913 + .saturating_add(Weight::from_parts(121_410, 0).saturating_mul(s.into())) + .saturating_add(T::DbWeight::get().reads(1)) + .saturating_add(T::DbWeight::get().writes(1)) + } + /// Storage: `Multisig::Multisigs` (r:1 w:1) + /// Proof: `Multisig::Multisigs` (`max_values`: None, `max_size`: Some(3346), added: 5821, mode: `MaxEncodedLen`) + /// The range of component `s` is `[2, 100]`. + fn approve_as_multi_approve(s: u32, ) -> Weight { + // Proof Size summary in bytes: + // Measured: `282` + // Estimated: `6811` + // Minimum execution time: 18_301_000 picoseconds. + Weight::from_parts(18_223_547, 0) + .saturating_add(Weight::from_parts(0, 6811)) + // Standard Error: 747 + .saturating_add(Weight::from_parts(114_584, 0).saturating_mul(s.into())) + .saturating_add(T::DbWeight::get().reads(1)) + .saturating_add(T::DbWeight::get().writes(1)) + } + /// Storage: `Multisig::Multisigs` (r:1 w:1) + /// Proof: `Multisig::Multisigs` (`max_values`: None, `max_size`: Some(3346), added: 5821, mode: `MaxEncodedLen`) + /// The range of component `s` is `[2, 100]`. + fn cancel_as_multi(s: u32, ) -> Weight { + // Proof Size summary in bytes: + // Measured: `454 + s * (1 ±0)` + // Estimated: `6811` + // Minimum execution time: 32_107_000 picoseconds. + Weight::from_parts(33_674_827, 0) + .saturating_add(Weight::from_parts(0, 6811)) + // Standard Error: 1_220 + .saturating_add(Weight::from_parts(122_011, 0).saturating_mul(s.into())) + .saturating_add(T::DbWeight::get().reads(1)) + .saturating_add(T::DbWeight::get().writes(1)) + } +} diff --git a/cumulus/parachains/runtimes/assets/asset-hub-kusama/src/weights/pallet_nft_fractionalization.rs b/cumulus/parachains/runtimes/assets/asset-hub-kusama/src/weights/pallet_nft_fractionalization.rs new file mode 100644 index 000000000000..c55a18adc523 --- /dev/null +++ b/cumulus/parachains/runtimes/assets/asset-hub-kusama/src/weights/pallet_nft_fractionalization.rs @@ -0,0 +1,115 @@ +// Copyright (C) Parity Technologies (UK) Ltd. +// This file is part of Cumulus. + +// Cumulus 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. + +// Cumulus 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 Cumulus. If not, see . + +//! Autogenerated weights for `pallet_nft_fractionalization` +//! +//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev +//! DATE: 2023-07-31, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! WORST CASE MAP SIZE: `1000000` +//! HOSTNAME: `runner-ynta1nyy-project-238-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz` +//! EXECUTION: ``, WASM-EXECUTION: `Compiled`, CHAIN: `Some("asset-hub-kusama-dev")`, DB CACHE: 1024 + +// Executed Command: +// ./target/production/polkadot-parachain +// benchmark +// pallet +// --chain=asset-hub-kusama-dev +// --wasm-execution=compiled +// --pallet=pallet_nft_fractionalization +// --no-storage-info +// --no-median-slopes +// --no-min-squares +// --extrinsic=* +// --steps=50 +// --repeat=20 +// --json +// --header=./file_header.txt +// --output=./parachains/runtimes/assets/asset-hub-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_nft_fractionalization`. +pub struct WeightInfo(PhantomData); +impl pallet_nft_fractionalization::WeightInfo for WeightInfo { + /// Storage: `Nfts::Item` (r:1 w:0) + /// Proof: `Nfts::Item` (`max_values`: None, `max_size`: Some(861), added: 3336, mode: `MaxEncodedLen`) + /// Storage: `Balances::Holds` (r:1 w:1) + /// Proof: `Balances::Holds` (`max_values`: None, `max_size`: Some(67), added: 2542, mode: `MaxEncodedLen`) + /// Storage: `Nfts::Attribute` (r:1 w:1) + /// Proof: `Nfts::Attribute` (`max_values`: None, `max_size`: Some(479), added: 2954, mode: `MaxEncodedLen`) + /// Storage: `Nfts::Collection` (r:1 w:1) + /// Proof: `Nfts::Collection` (`max_values`: None, `max_size`: Some(84), added: 2559, mode: `MaxEncodedLen`) + /// Storage: `Assets::Asset` (r:1 w:1) + /// Proof: `Assets::Asset` (`max_values`: None, `max_size`: Some(210), added: 2685, mode: `MaxEncodedLen`) + /// Storage: `Assets::Account` (r:1 w:1) + /// Proof: `Assets::Account` (`max_values`: None, `max_size`: Some(134), added: 2609, mode: `MaxEncodedLen`) + /// Storage: `System::Account` (r:1 w:1) + /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`) + /// Storage: `Assets::Metadata` (r:1 w:1) + /// Proof: `Assets::Metadata` (`max_values`: None, `max_size`: Some(140), added: 2615, mode: `MaxEncodedLen`) + /// Storage: `NftFractionalization::NftToAsset` (r:0 w:1) + /// Proof: `NftFractionalization::NftToAsset` (`max_values`: None, `max_size`: Some(92), added: 2567, mode: `MaxEncodedLen`) + fn fractionalize() -> Weight { + // Proof Size summary in bytes: + // Measured: `462` + // Estimated: `4326` + // Minimum execution time: 178_501_000 picoseconds. + Weight::from_parts(180_912_000, 0) + .saturating_add(Weight::from_parts(0, 4326)) + .saturating_add(T::DbWeight::get().reads(8)) + .saturating_add(T::DbWeight::get().writes(8)) + } + /// Storage: `NftFractionalization::NftToAsset` (r:1 w:1) + /// Proof: `NftFractionalization::NftToAsset` (`max_values`: None, `max_size`: Some(92), added: 2567, mode: `MaxEncodedLen`) + /// Storage: `Assets::Asset` (r:1 w:1) + /// Proof: `Assets::Asset` (`max_values`: None, `max_size`: Some(210), added: 2685, mode: `MaxEncodedLen`) + /// Storage: `Assets::Account` (r:1 w:1) + /// Proof: `Assets::Account` (`max_values`: None, `max_size`: Some(134), added: 2609, mode: `MaxEncodedLen`) + /// Storage: `Nfts::Attribute` (r:1 w:1) + /// Proof: `Nfts::Attribute` (`max_values`: None, `max_size`: Some(479), added: 2954, mode: `MaxEncodedLen`) + /// Storage: `Nfts::Collection` (r:1 w:1) + /// Proof: `Nfts::Collection` (`max_values`: None, `max_size`: Some(84), added: 2559, mode: `MaxEncodedLen`) + /// Storage: `Nfts::CollectionConfigOf` (r:1 w:0) + /// Proof: `Nfts::CollectionConfigOf` (`max_values`: None, `max_size`: Some(73), added: 2548, mode: `MaxEncodedLen`) + /// Storage: `Nfts::ItemConfigOf` (r:1 w:0) + /// Proof: `Nfts::ItemConfigOf` (`max_values`: None, `max_size`: Some(48), added: 2523, mode: `MaxEncodedLen`) + /// Storage: `Nfts::Item` (r:1 w:1) + /// Proof: `Nfts::Item` (`max_values`: None, `max_size`: Some(861), added: 3336, mode: `MaxEncodedLen`) + /// Storage: `Balances::Holds` (r:1 w:1) + /// Proof: `Balances::Holds` (`max_values`: None, `max_size`: Some(67), added: 2542, mode: `MaxEncodedLen`) + /// Storage: `Nfts::Account` (r:0 w:1) + /// Proof: `Nfts::Account` (`max_values`: None, `max_size`: Some(88), added: 2563, mode: `MaxEncodedLen`) + /// Storage: `Nfts::ItemPriceOf` (r:0 w:1) + /// Proof: `Nfts::ItemPriceOf` (`max_values`: None, `max_size`: Some(89), added: 2564, mode: `MaxEncodedLen`) + /// Storage: `Nfts::PendingSwapOf` (r:0 w:1) + /// Proof: `Nfts::PendingSwapOf` (`max_values`: None, `max_size`: Some(71), added: 2546, mode: `MaxEncodedLen`) + fn unify() -> Weight { + // Proof Size summary in bytes: + // Measured: `1275` + // Estimated: `4326` + // Minimum execution time: 125_253_000 picoseconds. + Weight::from_parts(128_238_000, 0) + .saturating_add(Weight::from_parts(0, 4326)) + .saturating_add(T::DbWeight::get().reads(9)) + .saturating_add(T::DbWeight::get().writes(10)) + } +} diff --git a/cumulus/parachains/runtimes/assets/asset-hub-kusama/src/weights/pallet_nfts.rs b/cumulus/parachains/runtimes/assets/asset-hub-kusama/src/weights/pallet_nfts.rs new file mode 100644 index 000000000000..2de706bbdc70 --- /dev/null +++ b/cumulus/parachains/runtimes/assets/asset-hub-kusama/src/weights/pallet_nfts.rs @@ -0,0 +1,773 @@ +// Copyright (C) Parity Technologies (UK) Ltd. +// This file is part of Cumulus. + +// Cumulus 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. + +// Cumulus 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 Cumulus. If not, see . + +//! Autogenerated weights for `pallet_nfts` +//! +//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev +//! DATE: 2023-07-31, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! WORST CASE MAP SIZE: `1000000` +//! HOSTNAME: `runner-ynta1nyy-project-238-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz` +//! EXECUTION: ``, WASM-EXECUTION: `Compiled`, CHAIN: `Some("asset-hub-kusama-dev")`, DB CACHE: 1024 + +// Executed Command: +// ./target/production/polkadot-parachain +// benchmark +// pallet +// --chain=asset-hub-kusama-dev +// --wasm-execution=compiled +// --pallet=pallet_nfts +// --no-storage-info +// --no-median-slopes +// --no-min-squares +// --extrinsic=* +// --steps=50 +// --repeat=20 +// --json +// --header=./file_header.txt +// --output=./parachains/runtimes/assets/asset-hub-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_nfts`. +pub struct WeightInfo(PhantomData); +impl pallet_nfts::WeightInfo for WeightInfo { + /// Storage: `Nfts::NextCollectionId` (r:1 w:1) + /// Proof: `Nfts::NextCollectionId` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`) + /// Storage: `Nfts::Collection` (r:1 w:1) + /// Proof: `Nfts::Collection` (`max_values`: None, `max_size`: Some(84), added: 2559, mode: `MaxEncodedLen`) + /// Storage: `Nfts::CollectionRoleOf` (r:0 w:1) + /// Proof: `Nfts::CollectionRoleOf` (`max_values`: None, `max_size`: Some(69), added: 2544, mode: `MaxEncodedLen`) + /// Storage: `Nfts::CollectionConfigOf` (r:0 w:1) + /// Proof: `Nfts::CollectionConfigOf` (`max_values`: None, `max_size`: Some(73), added: 2548, mode: `MaxEncodedLen`) + /// Storage: `Nfts::CollectionAccount` (r:0 w:1) + /// Proof: `Nfts::CollectionAccount` (`max_values`: None, `max_size`: Some(68), added: 2543, mode: `MaxEncodedLen`) + fn create() -> Weight { + // Proof Size summary in bytes: + // Measured: `179` + // Estimated: `3549` + // Minimum execution time: 39_124_000 picoseconds. + Weight::from_parts(39_975_000, 0) + .saturating_add(Weight::from_parts(0, 3549)) + .saturating_add(T::DbWeight::get().reads(2)) + .saturating_add(T::DbWeight::get().writes(5)) + } + /// Storage: `Nfts::NextCollectionId` (r:1 w:1) + /// Proof: `Nfts::NextCollectionId` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`) + /// Storage: `Nfts::Collection` (r:1 w:1) + /// Proof: `Nfts::Collection` (`max_values`: None, `max_size`: Some(84), added: 2559, mode: `MaxEncodedLen`) + /// Storage: `Nfts::CollectionRoleOf` (r:0 w:1) + /// Proof: `Nfts::CollectionRoleOf` (`max_values`: None, `max_size`: Some(69), added: 2544, mode: `MaxEncodedLen`) + /// Storage: `Nfts::CollectionConfigOf` (r:0 w:1) + /// Proof: `Nfts::CollectionConfigOf` (`max_values`: None, `max_size`: Some(73), added: 2548, mode: `MaxEncodedLen`) + /// Storage: `Nfts::CollectionAccount` (r:0 w:1) + /// Proof: `Nfts::CollectionAccount` (`max_values`: None, `max_size`: Some(68), added: 2543, mode: `MaxEncodedLen`) + fn force_create() -> Weight { + // Proof Size summary in bytes: + // Measured: `76` + // Estimated: `3549` + // Minimum execution time: 23_444_000 picoseconds. + Weight::from_parts(23_857_000, 0) + .saturating_add(Weight::from_parts(0, 3549)) + .saturating_add(T::DbWeight::get().reads(2)) + .saturating_add(T::DbWeight::get().writes(5)) + } + /// Storage: `Nfts::Collection` (r:1 w:1) + /// Proof: `Nfts::Collection` (`max_values`: None, `max_size`: Some(84), added: 2559, mode: `MaxEncodedLen`) + /// Storage: `Nfts::ItemMetadataOf` (r:1 w:0) + /// Proof: `Nfts::ItemMetadataOf` (`max_values`: None, `max_size`: Some(347), added: 2822, mode: `MaxEncodedLen`) + /// Storage: `Nfts::CollectionRoleOf` (r:1 w:1) + /// Proof: `Nfts::CollectionRoleOf` (`max_values`: None, `max_size`: Some(69), added: 2544, mode: `MaxEncodedLen`) + /// Storage: `Nfts::Attribute` (r:1001 w:1000) + /// Proof: `Nfts::Attribute` (`max_values`: None, `max_size`: Some(479), added: 2954, mode: `MaxEncodedLen`) + /// Storage: `Nfts::ItemConfigOf` (r:1000 w:1000) + /// Proof: `Nfts::ItemConfigOf` (`max_values`: None, `max_size`: Some(48), added: 2523, mode: `MaxEncodedLen`) + /// Storage: `Nfts::CollectionMetadataOf` (r:0 w:1) + /// Proof: `Nfts::CollectionMetadataOf` (`max_values`: None, `max_size`: Some(294), added: 2769, mode: `MaxEncodedLen`) + /// Storage: `Nfts::CollectionConfigOf` (r:0 w:1) + /// Proof: `Nfts::CollectionConfigOf` (`max_values`: None, `max_size`: Some(73), added: 2548, mode: `MaxEncodedLen`) + /// Storage: `Nfts::CollectionAccount` (r:0 w:1) + /// Proof: `Nfts::CollectionAccount` (`max_values`: None, `max_size`: Some(68), added: 2543, mode: `MaxEncodedLen`) + /// The range of component `m` is `[0, 1000]`. + /// The range of component `c` is `[0, 1000]`. + /// The range of component `a` is `[0, 1000]`. + fn destroy(_m: u32, _c: u32, a: u32, ) -> Weight { + // Proof Size summary in bytes: + // Measured: `32204 + a * (366 ±0)` + // Estimated: `2523990 + a * (2954 ±0)` + // Minimum execution time: 1_224_365_000 picoseconds. + Weight::from_parts(1_281_136_346, 0) + .saturating_add(Weight::from_parts(0, 2523990)) + // Standard Error: 10_484 + .saturating_add(Weight::from_parts(6_910_740, 0).saturating_mul(a.into())) + .saturating_add(T::DbWeight::get().reads(1004)) + .saturating_add(T::DbWeight::get().reads((1_u64).saturating_mul(a.into()))) + .saturating_add(T::DbWeight::get().writes(1005)) + .saturating_add(T::DbWeight::get().writes((1_u64).saturating_mul(a.into()))) + .saturating_add(Weight::from_parts(0, 2954).saturating_mul(a.into())) + } + /// Storage: `Nfts::CollectionConfigOf` (r:1 w:0) + /// Proof: `Nfts::CollectionConfigOf` (`max_values`: None, `max_size`: Some(73), added: 2548, mode: `MaxEncodedLen`) + /// Storage: `Nfts::Item` (r:1 w:1) + /// Proof: `Nfts::Item` (`max_values`: None, `max_size`: Some(861), added: 3336, mode: `MaxEncodedLen`) + /// Storage: `Nfts::Collection` (r:1 w:1) + /// Proof: `Nfts::Collection` (`max_values`: None, `max_size`: Some(84), added: 2559, mode: `MaxEncodedLen`) + /// Storage: `Nfts::CollectionRoleOf` (r:1 w:0) + /// Proof: `Nfts::CollectionRoleOf` (`max_values`: None, `max_size`: Some(69), added: 2544, mode: `MaxEncodedLen`) + /// Storage: `Nfts::ItemConfigOf` (r:1 w:1) + /// Proof: `Nfts::ItemConfigOf` (`max_values`: None, `max_size`: Some(48), added: 2523, mode: `MaxEncodedLen`) + /// Storage: `Nfts::Account` (r:0 w:1) + /// Proof: `Nfts::Account` (`max_values`: None, `max_size`: Some(88), added: 2563, mode: `MaxEncodedLen`) + fn mint() -> Weight { + // Proof Size summary in bytes: + // Measured: `455` + // Estimated: `4326` + // Minimum execution time: 50_489_000 picoseconds. + Weight::from_parts(51_045_000, 0) + .saturating_add(Weight::from_parts(0, 4326)) + .saturating_add(T::DbWeight::get().reads(5)) + .saturating_add(T::DbWeight::get().writes(4)) + } + /// Storage: `Nfts::CollectionRoleOf` (r:1 w:0) + /// Proof: `Nfts::CollectionRoleOf` (`max_values`: None, `max_size`: Some(69), added: 2544, mode: `MaxEncodedLen`) + /// Storage: `Nfts::Item` (r:1 w:1) + /// Proof: `Nfts::Item` (`max_values`: None, `max_size`: Some(861), added: 3336, mode: `MaxEncodedLen`) + /// Storage: `Nfts::Collection` (r:1 w:1) + /// Proof: `Nfts::Collection` (`max_values`: None, `max_size`: Some(84), added: 2559, mode: `MaxEncodedLen`) + /// Storage: `Nfts::CollectionConfigOf` (r:1 w:0) + /// Proof: `Nfts::CollectionConfigOf` (`max_values`: None, `max_size`: Some(73), added: 2548, mode: `MaxEncodedLen`) + /// Storage: `Nfts::ItemConfigOf` (r:1 w:1) + /// Proof: `Nfts::ItemConfigOf` (`max_values`: None, `max_size`: Some(48), added: 2523, mode: `MaxEncodedLen`) + /// Storage: `Nfts::Account` (r:0 w:1) + /// Proof: `Nfts::Account` (`max_values`: None, `max_size`: Some(88), added: 2563, mode: `MaxEncodedLen`) + fn force_mint() -> Weight { + // Proof Size summary in bytes: + // Measured: `455` + // Estimated: `4326` + // Minimum execution time: 49_146_000 picoseconds. + Weight::from_parts(49_756_000, 0) + .saturating_add(Weight::from_parts(0, 4326)) + .saturating_add(T::DbWeight::get().reads(5)) + .saturating_add(T::DbWeight::get().writes(4)) + } + /// Storage: `Nfts::Attribute` (r:1 w:0) + /// Proof: `Nfts::Attribute` (`max_values`: None, `max_size`: Some(479), added: 2954, mode: `MaxEncodedLen`) + /// Storage: `Nfts::ItemConfigOf` (r:1 w:1) + /// Proof: `Nfts::ItemConfigOf` (`max_values`: None, `max_size`: Some(48), added: 2523, mode: `MaxEncodedLen`) + /// Storage: `Nfts::Collection` (r:1 w:1) + /// Proof: `Nfts::Collection` (`max_values`: None, `max_size`: Some(84), added: 2559, mode: `MaxEncodedLen`) + /// Storage: `Nfts::Item` (r:1 w:1) + /// Proof: `Nfts::Item` (`max_values`: None, `max_size`: Some(861), added: 3336, mode: `MaxEncodedLen`) + /// Storage: `Nfts::ItemMetadataOf` (r:1 w:0) + /// Proof: `Nfts::ItemMetadataOf` (`max_values`: None, `max_size`: Some(347), added: 2822, mode: `MaxEncodedLen`) + /// Storage: `Nfts::Account` (r:0 w:1) + /// Proof: `Nfts::Account` (`max_values`: None, `max_size`: Some(88), added: 2563, mode: `MaxEncodedLen`) + /// Storage: `Nfts::ItemPriceOf` (r:0 w:1) + /// Proof: `Nfts::ItemPriceOf` (`max_values`: None, `max_size`: Some(89), added: 2564, mode: `MaxEncodedLen`) + /// Storage: `Nfts::ItemAttributesApprovalsOf` (r:0 w:1) + /// Proof: `Nfts::ItemAttributesApprovalsOf` (`max_values`: None, `max_size`: Some(1001), added: 3476, mode: `MaxEncodedLen`) + /// Storage: `Nfts::PendingSwapOf` (r:0 w:1) + /// Proof: `Nfts::PendingSwapOf` (`max_values`: None, `max_size`: Some(71), added: 2546, mode: `MaxEncodedLen`) + fn burn() -> Weight { + // Proof Size summary in bytes: + // Measured: `564` + // Estimated: `4326` + // Minimum execution time: 56_059_000 picoseconds. + Weight::from_parts(57_162_000, 0) + .saturating_add(Weight::from_parts(0, 4326)) + .saturating_add(T::DbWeight::get().reads(5)) + .saturating_add(T::DbWeight::get().writes(7)) + } + /// Storage: `Nfts::Collection` (r:1 w:0) + /// Proof: `Nfts::Collection` (`max_values`: None, `max_size`: Some(84), added: 2559, mode: `MaxEncodedLen`) + /// Storage: `Nfts::Attribute` (r:1 w:0) + /// Proof: `Nfts::Attribute` (`max_values`: None, `max_size`: Some(479), added: 2954, mode: `MaxEncodedLen`) + /// Storage: `Nfts::CollectionConfigOf` (r:1 w:0) + /// Proof: `Nfts::CollectionConfigOf` (`max_values`: None, `max_size`: Some(73), added: 2548, mode: `MaxEncodedLen`) + /// Storage: `Nfts::ItemConfigOf` (r:1 w:0) + /// Proof: `Nfts::ItemConfigOf` (`max_values`: None, `max_size`: Some(48), added: 2523, mode: `MaxEncodedLen`) + /// Storage: `Nfts::Item` (r:1 w:1) + /// Proof: `Nfts::Item` (`max_values`: None, `max_size`: Some(861), added: 3336, mode: `MaxEncodedLen`) + /// Storage: `Nfts::Account` (r:0 w:2) + /// Proof: `Nfts::Account` (`max_values`: None, `max_size`: Some(88), added: 2563, mode: `MaxEncodedLen`) + /// Storage: `Nfts::ItemPriceOf` (r:0 w:1) + /// Proof: `Nfts::ItemPriceOf` (`max_values`: None, `max_size`: Some(89), added: 2564, mode: `MaxEncodedLen`) + /// Storage: `Nfts::PendingSwapOf` (r:0 w:1) + /// Proof: `Nfts::PendingSwapOf` (`max_values`: None, `max_size`: Some(71), added: 2546, mode: `MaxEncodedLen`) + fn transfer() -> Weight { + // Proof Size summary in bytes: + // Measured: `593` + // Estimated: `4326` + // Minimum execution time: 42_406_000 picoseconds. + Weight::from_parts(43_187_000, 0) + .saturating_add(Weight::from_parts(0, 4326)) + .saturating_add(T::DbWeight::get().reads(5)) + .saturating_add(T::DbWeight::get().writes(5)) + } + /// Storage: `Nfts::Collection` (r:1 w:0) + /// Proof: `Nfts::Collection` (`max_values`: None, `max_size`: Some(84), added: 2559, mode: `MaxEncodedLen`) + /// Storage: `Nfts::CollectionConfigOf` (r:1 w:0) + /// Proof: `Nfts::CollectionConfigOf` (`max_values`: None, `max_size`: Some(73), added: 2548, mode: `MaxEncodedLen`) + /// Storage: `Nfts::Item` (r:5000 w:5000) + /// Proof: `Nfts::Item` (`max_values`: None, `max_size`: Some(861), added: 3336, mode: `MaxEncodedLen`) + /// The range of component `i` is `[0, 5000]`. + fn redeposit(i: u32, ) -> Weight { + // Proof Size summary in bytes: + // Measured: `763 + i * (108 ±0)` + // Estimated: `3549 + i * (3336 ±0)` + // Minimum execution time: 16_960_000 picoseconds. + Weight::from_parts(17_167_000, 0) + .saturating_add(Weight::from_parts(0, 3549)) + // Standard Error: 24_110 + .saturating_add(Weight::from_parts(18_046_970, 0).saturating_mul(i.into())) + .saturating_add(T::DbWeight::get().reads(2)) + .saturating_add(T::DbWeight::get().reads((1_u64).saturating_mul(i.into()))) + .saturating_add(T::DbWeight::get().writes((1_u64).saturating_mul(i.into()))) + .saturating_add(Weight::from_parts(0, 3336).saturating_mul(i.into())) + } + /// Storage: `Nfts::CollectionRoleOf` (r:1 w:0) + /// Proof: `Nfts::CollectionRoleOf` (`max_values`: None, `max_size`: Some(69), added: 2544, mode: `MaxEncodedLen`) + /// Storage: `Nfts::ItemConfigOf` (r:1 w:1) + /// Proof: `Nfts::ItemConfigOf` (`max_values`: None, `max_size`: Some(48), added: 2523, mode: `MaxEncodedLen`) + fn lock_item_transfer() -> Weight { + // Proof Size summary in bytes: + // Measured: `435` + // Estimated: `3534` + // Minimum execution time: 21_023_000 picoseconds. + Weight::from_parts(21_409_000, 0) + .saturating_add(Weight::from_parts(0, 3534)) + .saturating_add(T::DbWeight::get().reads(2)) + .saturating_add(T::DbWeight::get().writes(1)) + } + /// Storage: `Nfts::CollectionRoleOf` (r:1 w:0) + /// Proof: `Nfts::CollectionRoleOf` (`max_values`: None, `max_size`: Some(69), added: 2544, mode: `MaxEncodedLen`) + /// Storage: `Nfts::ItemConfigOf` (r:1 w:1) + /// Proof: `Nfts::ItemConfigOf` (`max_values`: None, `max_size`: Some(48), added: 2523, mode: `MaxEncodedLen`) + fn unlock_item_transfer() -> Weight { + // Proof Size summary in bytes: + // Measured: `435` + // Estimated: `3534` + // Minimum execution time: 20_706_000 picoseconds. + Weight::from_parts(21_030_000, 0) + .saturating_add(Weight::from_parts(0, 3534)) + .saturating_add(T::DbWeight::get().reads(2)) + .saturating_add(T::DbWeight::get().writes(1)) + } + /// Storage: `Nfts::Collection` (r:1 w:0) + /// Proof: `Nfts::Collection` (`max_values`: None, `max_size`: Some(84), added: 2559, mode: `MaxEncodedLen`) + /// Storage: `Nfts::CollectionConfigOf` (r:1 w:1) + /// Proof: `Nfts::CollectionConfigOf` (`max_values`: None, `max_size`: Some(73), added: 2548, mode: `MaxEncodedLen`) + fn lock_collection() -> Weight { + // Proof Size summary in bytes: + // Measured: `340` + // Estimated: `3549` + // Minimum execution time: 17_449_000 picoseconds. + Weight::from_parts(17_804_000, 0) + .saturating_add(Weight::from_parts(0, 3549)) + .saturating_add(T::DbWeight::get().reads(2)) + .saturating_add(T::DbWeight::get().writes(1)) + } + /// Storage: `Nfts::OwnershipAcceptance` (r:1 w:1) + /// Proof: `Nfts::OwnershipAcceptance` (`max_values`: None, `max_size`: Some(52), added: 2527, mode: `MaxEncodedLen`) + /// Storage: `Nfts::Collection` (r:1 w:1) + /// Proof: `Nfts::Collection` (`max_values`: None, `max_size`: Some(84), added: 2559, mode: `MaxEncodedLen`) + /// Storage: `Nfts::CollectionAccount` (r:0 w:2) + /// Proof: `Nfts::CollectionAccount` (`max_values`: None, `max_size`: Some(68), added: 2543, mode: `MaxEncodedLen`) + fn transfer_ownership() -> Weight { + // Proof Size summary in bytes: + // Measured: `388` + // Estimated: `3549` + // Minimum execution time: 22_958_000 picoseconds. + Weight::from_parts(23_499_000, 0) + .saturating_add(Weight::from_parts(0, 3549)) + .saturating_add(T::DbWeight::get().reads(2)) + .saturating_add(T::DbWeight::get().writes(4)) + } + /// Storage: `Nfts::Collection` (r:1 w:1) + /// Proof: `Nfts::Collection` (`max_values`: None, `max_size`: Some(84), added: 2559, mode: `MaxEncodedLen`) + /// Storage: `Nfts::CollectionRoleOf` (r:2 w:4) + /// Proof: `Nfts::CollectionRoleOf` (`max_values`: None, `max_size`: Some(69), added: 2544, mode: `MaxEncodedLen`) + fn set_team() -> Weight { + // Proof Size summary in bytes: + // Measured: `369` + // Estimated: `6078` + // Minimum execution time: 40_105_000 picoseconds. + Weight::from_parts(40_800_000, 0) + .saturating_add(Weight::from_parts(0, 6078)) + .saturating_add(T::DbWeight::get().reads(3)) + .saturating_add(T::DbWeight::get().writes(5)) + } + /// Storage: `Nfts::Collection` (r:1 w:1) + /// Proof: `Nfts::Collection` (`max_values`: None, `max_size`: Some(84), added: 2559, mode: `MaxEncodedLen`) + /// Storage: `Nfts::CollectionAccount` (r:0 w:2) + /// Proof: `Nfts::CollectionAccount` (`max_values`: None, `max_size`: Some(68), added: 2543, mode: `MaxEncodedLen`) + fn force_collection_owner() -> Weight { + // Proof Size summary in bytes: + // Measured: `311` + // Estimated: `3549` + // Minimum execution time: 17_832_000 picoseconds. + Weight::from_parts(18_297_000, 0) + .saturating_add(Weight::from_parts(0, 3549)) + .saturating_add(T::DbWeight::get().reads(1)) + .saturating_add(T::DbWeight::get().writes(3)) + } + /// Storage: `Nfts::Collection` (r:1 w:0) + /// Proof: `Nfts::Collection` (`max_values`: None, `max_size`: Some(84), added: 2559, mode: `MaxEncodedLen`) + /// Storage: `Nfts::CollectionConfigOf` (r:0 w:1) + /// Proof: `Nfts::CollectionConfigOf` (`max_values`: None, `max_size`: Some(73), added: 2548, mode: `MaxEncodedLen`) + fn force_collection_config() -> Weight { + // Proof Size summary in bytes: + // Measured: `276` + // Estimated: `3549` + // Minimum execution time: 15_027_000 picoseconds. + Weight::from_parts(15_370_000, 0) + .saturating_add(Weight::from_parts(0, 3549)) + .saturating_add(T::DbWeight::get().reads(1)) + .saturating_add(T::DbWeight::get().writes(1)) + } + /// Storage: `Nfts::CollectionRoleOf` (r:1 w:0) + /// Proof: `Nfts::CollectionRoleOf` (`max_values`: None, `max_size`: Some(69), added: 2544, mode: `MaxEncodedLen`) + /// Storage: `Nfts::ItemConfigOf` (r:1 w:1) + /// Proof: `Nfts::ItemConfigOf` (`max_values`: None, `max_size`: Some(48), added: 2523, mode: `MaxEncodedLen`) + fn lock_item_properties() -> Weight { + // Proof Size summary in bytes: + // Measured: `435` + // Estimated: `3534` + // Minimum execution time: 19_912_000 picoseconds. + Weight::from_parts(20_258_000, 0) + .saturating_add(Weight::from_parts(0, 3534)) + .saturating_add(T::DbWeight::get().reads(2)) + .saturating_add(T::DbWeight::get().writes(1)) + } + /// Storage: `Nfts::Collection` (r:1 w:1) + /// Proof: `Nfts::Collection` (`max_values`: None, `max_size`: Some(84), added: 2559, mode: `MaxEncodedLen`) + /// Storage: `Nfts::CollectionRoleOf` (r:1 w:0) + /// Proof: `Nfts::CollectionRoleOf` (`max_values`: None, `max_size`: Some(69), added: 2544, mode: `MaxEncodedLen`) + /// Storage: `Nfts::CollectionConfigOf` (r:1 w:0) + /// Proof: `Nfts::CollectionConfigOf` (`max_values`: None, `max_size`: Some(73), added: 2548, mode: `MaxEncodedLen`) + /// Storage: `Nfts::ItemConfigOf` (r:1 w:0) + /// Proof: `Nfts::ItemConfigOf` (`max_values`: None, `max_size`: Some(48), added: 2523, mode: `MaxEncodedLen`) + /// Storage: `Nfts::Attribute` (r:1 w:1) + /// Proof: `Nfts::Attribute` (`max_values`: None, `max_size`: Some(479), added: 2954, mode: `MaxEncodedLen`) + fn set_attribute() -> Weight { + // Proof Size summary in bytes: + // Measured: `539` + // Estimated: `3944` + // Minimum execution time: 50_138_000 picoseconds. + Weight::from_parts(50_971_000, 0) + .saturating_add(Weight::from_parts(0, 3944)) + .saturating_add(T::DbWeight::get().reads(5)) + .saturating_add(T::DbWeight::get().writes(2)) + } + /// Storage: `Nfts::Collection` (r:1 w:1) + /// Proof: `Nfts::Collection` (`max_values`: None, `max_size`: Some(84), added: 2559, mode: `MaxEncodedLen`) + /// Storage: `Nfts::Attribute` (r:1 w:1) + /// Proof: `Nfts::Attribute` (`max_values`: None, `max_size`: Some(479), added: 2954, mode: `MaxEncodedLen`) + fn force_set_attribute() -> Weight { + // Proof Size summary in bytes: + // Measured: `344` + // Estimated: `3944` + // Minimum execution time: 26_385_000 picoseconds. + Weight::from_parts(27_086_000, 0) + .saturating_add(Weight::from_parts(0, 3944)) + .saturating_add(T::DbWeight::get().reads(2)) + .saturating_add(T::DbWeight::get().writes(2)) + } + /// Storage: `Nfts::Attribute` (r:1 w:1) + /// Proof: `Nfts::Attribute` (`max_values`: None, `max_size`: Some(479), added: 2954, mode: `MaxEncodedLen`) + /// Storage: `Nfts::CollectionRoleOf` (r:1 w:0) + /// Proof: `Nfts::CollectionRoleOf` (`max_values`: None, `max_size`: Some(69), added: 2544, mode: `MaxEncodedLen`) + /// Storage: `Nfts::ItemConfigOf` (r:1 w:0) + /// Proof: `Nfts::ItemConfigOf` (`max_values`: None, `max_size`: Some(48), added: 2523, mode: `MaxEncodedLen`) + /// Storage: `Nfts::Collection` (r:1 w:1) + /// Proof: `Nfts::Collection` (`max_values`: None, `max_size`: Some(84), added: 2559, mode: `MaxEncodedLen`) + fn clear_attribute() -> Weight { + // Proof Size summary in bytes: + // Measured: `983` + // Estimated: `3944` + // Minimum execution time: 45_687_000 picoseconds. + Weight::from_parts(47_107_000, 0) + .saturating_add(Weight::from_parts(0, 3944)) + .saturating_add(T::DbWeight::get().reads(4)) + .saturating_add(T::DbWeight::get().writes(2)) + } + /// Storage: `Nfts::Item` (r:1 w:0) + /// Proof: `Nfts::Item` (`max_values`: None, `max_size`: Some(861), added: 3336, mode: `MaxEncodedLen`) + /// Storage: `Nfts::ItemAttributesApprovalsOf` (r:1 w:1) + /// Proof: `Nfts::ItemAttributesApprovalsOf` (`max_values`: None, `max_size`: Some(1001), added: 3476, mode: `MaxEncodedLen`) + fn approve_item_attributes() -> Weight { + // Proof Size summary in bytes: + // Measured: `381` + // Estimated: `4466` + // Minimum execution time: 18_065_000 picoseconds. + Weight::from_parts(18_371_000, 0) + .saturating_add(Weight::from_parts(0, 4466)) + .saturating_add(T::DbWeight::get().reads(2)) + .saturating_add(T::DbWeight::get().writes(1)) + } + /// Storage: `Nfts::Item` (r:1 w:0) + /// Proof: `Nfts::Item` (`max_values`: None, `max_size`: Some(861), added: 3336, mode: `MaxEncodedLen`) + /// Storage: `Nfts::ItemAttributesApprovalsOf` (r:1 w:1) + /// Proof: `Nfts::ItemAttributesApprovalsOf` (`max_values`: None, `max_size`: Some(1001), added: 3476, mode: `MaxEncodedLen`) + /// Storage: `Nfts::Attribute` (r:1001 w:1000) + /// Proof: `Nfts::Attribute` (`max_values`: None, `max_size`: Some(479), added: 2954, 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 `[0, 1000]`. + fn cancel_item_attributes_approval(n: u32, ) -> Weight { + // Proof Size summary in bytes: + // Measured: `760 + n * (398 ±0)` + // Estimated: `4466 + n * (2954 ±0)` + // Minimum execution time: 26_680_000 picoseconds. + Weight::from_parts(27_010_000, 0) + .saturating_add(Weight::from_parts(0, 4466)) + // Standard Error: 6_351 + .saturating_add(Weight::from_parts(6_584_290, 0).saturating_mul(n.into())) + .saturating_add(T::DbWeight::get().reads(4)) + .saturating_add(T::DbWeight::get().reads((1_u64).saturating_mul(n.into()))) + .saturating_add(T::DbWeight::get().writes(2)) + .saturating_add(T::DbWeight::get().writes((1_u64).saturating_mul(n.into()))) + .saturating_add(Weight::from_parts(0, 2954).saturating_mul(n.into())) + } + /// Storage: `Nfts::CollectionRoleOf` (r:1 w:0) + /// Proof: `Nfts::CollectionRoleOf` (`max_values`: None, `max_size`: Some(69), added: 2544, mode: `MaxEncodedLen`) + /// Storage: `Nfts::Collection` (r:1 w:1) + /// Proof: `Nfts::Collection` (`max_values`: None, `max_size`: Some(84), added: 2559, mode: `MaxEncodedLen`) + /// Storage: `Nfts::ItemConfigOf` (r:1 w:0) + /// Proof: `Nfts::ItemConfigOf` (`max_values`: None, `max_size`: Some(48), added: 2523, mode: `MaxEncodedLen`) + /// Storage: `Nfts::CollectionConfigOf` (r:1 w:0) + /// Proof: `Nfts::CollectionConfigOf` (`max_values`: None, `max_size`: Some(73), added: 2548, mode: `MaxEncodedLen`) + /// Storage: `Nfts::ItemMetadataOf` (r:1 w:1) + /// Proof: `Nfts::ItemMetadataOf` (`max_values`: None, `max_size`: Some(347), added: 2822, mode: `MaxEncodedLen`) + fn set_metadata() -> Weight { + // Proof Size summary in bytes: + // Measured: `539` + // Estimated: `3812` + // Minimum execution time: 42_038_000 picoseconds. + Weight::from_parts(42_758_000, 0) + .saturating_add(Weight::from_parts(0, 3812)) + .saturating_add(T::DbWeight::get().reads(5)) + .saturating_add(T::DbWeight::get().writes(2)) + } + /// Storage: `Nfts::CollectionRoleOf` (r:1 w:0) + /// Proof: `Nfts::CollectionRoleOf` (`max_values`: None, `max_size`: Some(69), added: 2544, mode: `MaxEncodedLen`) + /// Storage: `Nfts::ItemMetadataOf` (r:1 w:1) + /// Proof: `Nfts::ItemMetadataOf` (`max_values`: None, `max_size`: Some(347), added: 2822, mode: `MaxEncodedLen`) + /// Storage: `Nfts::Collection` (r:1 w:1) + /// Proof: `Nfts::Collection` (`max_values`: None, `max_size`: Some(84), added: 2559, mode: `MaxEncodedLen`) + /// Storage: `Nfts::ItemConfigOf` (r:1 w:0) + /// Proof: `Nfts::ItemConfigOf` (`max_values`: None, `max_size`: Some(48), added: 2523, mode: `MaxEncodedLen`) + fn clear_metadata() -> Weight { + // Proof Size summary in bytes: + // Measured: `849` + // Estimated: `3812` + // Minimum execution time: 40_220_000 picoseconds. + Weight::from_parts(41_026_000, 0) + .saturating_add(Weight::from_parts(0, 3812)) + .saturating_add(T::DbWeight::get().reads(4)) + .saturating_add(T::DbWeight::get().writes(2)) + } + /// Storage: `Nfts::CollectionRoleOf` (r:1 w:0) + /// Proof: `Nfts::CollectionRoleOf` (`max_values`: None, `max_size`: Some(69), added: 2544, mode: `MaxEncodedLen`) + /// Storage: `Nfts::CollectionConfigOf` (r:1 w:0) + /// Proof: `Nfts::CollectionConfigOf` (`max_values`: None, `max_size`: Some(73), added: 2548, mode: `MaxEncodedLen`) + /// Storage: `Nfts::Collection` (r:1 w:1) + /// Proof: `Nfts::Collection` (`max_values`: None, `max_size`: Some(84), added: 2559, mode: `MaxEncodedLen`) + /// Storage: `Nfts::CollectionMetadataOf` (r:1 w:1) + /// Proof: `Nfts::CollectionMetadataOf` (`max_values`: None, `max_size`: Some(294), added: 2769, mode: `MaxEncodedLen`) + fn set_collection_metadata() -> Weight { + // Proof Size summary in bytes: + // Measured: `398` + // Estimated: `3759` + // Minimum execution time: 38_135_000 picoseconds. + Weight::from_parts(38_561_000, 0) + .saturating_add(Weight::from_parts(0, 3759)) + .saturating_add(T::DbWeight::get().reads(4)) + .saturating_add(T::DbWeight::get().writes(2)) + } + /// Storage: `Nfts::CollectionRoleOf` (r:1 w:0) + /// Proof: `Nfts::CollectionRoleOf` (`max_values`: None, `max_size`: Some(69), added: 2544, mode: `MaxEncodedLen`) + /// Storage: `Nfts::Collection` (r:1 w:0) + /// Proof: `Nfts::Collection` (`max_values`: None, `max_size`: Some(84), added: 2559, mode: `MaxEncodedLen`) + /// Storage: `Nfts::CollectionConfigOf` (r:1 w:0) + /// Proof: `Nfts::CollectionConfigOf` (`max_values`: None, `max_size`: Some(73), added: 2548, mode: `MaxEncodedLen`) + /// Storage: `Nfts::CollectionMetadataOf` (r:1 w:1) + /// Proof: `Nfts::CollectionMetadataOf` (`max_values`: None, `max_size`: Some(294), added: 2769, mode: `MaxEncodedLen`) + fn clear_collection_metadata() -> Weight { + // Proof Size summary in bytes: + // Measured: `716` + // Estimated: `3759` + // Minimum execution time: 37_583_000 picoseconds. + Weight::from_parts(38_215_000, 0) + .saturating_add(Weight::from_parts(0, 3759)) + .saturating_add(T::DbWeight::get().reads(4)) + .saturating_add(T::DbWeight::get().writes(1)) + } + /// Storage: `Nfts::Item` (r:1 w:1) + /// Proof: `Nfts::Item` (`max_values`: None, `max_size`: Some(861), added: 3336, mode: `MaxEncodedLen`) + /// Storage: `Nfts::CollectionConfigOf` (r:1 w:0) + /// Proof: `Nfts::CollectionConfigOf` (`max_values`: None, `max_size`: Some(73), added: 2548, mode: `MaxEncodedLen`) + fn approve_transfer() -> Weight { + // Proof Size summary in bytes: + // Measured: `410` + // Estimated: `4326` + // Minimum execution time: 21_405_000 picoseconds. + Weight::from_parts(21_803_000, 0) + .saturating_add(Weight::from_parts(0, 4326)) + .saturating_add(T::DbWeight::get().reads(2)) + .saturating_add(T::DbWeight::get().writes(1)) + } + /// Storage: `Nfts::Item` (r:1 w:1) + /// Proof: `Nfts::Item` (`max_values`: None, `max_size`: Some(861), added: 3336, mode: `MaxEncodedLen`) + fn cancel_approval() -> Weight { + // Proof Size summary in bytes: + // Measured: `418` + // Estimated: `4326` + // Minimum execution time: 18_713_000 picoseconds. + Weight::from_parts(19_185_000, 0) + .saturating_add(Weight::from_parts(0, 4326)) + .saturating_add(T::DbWeight::get().reads(1)) + .saturating_add(T::DbWeight::get().writes(1)) + } + /// Storage: `Nfts::Item` (r:1 w:1) + /// Proof: `Nfts::Item` (`max_values`: None, `max_size`: Some(861), added: 3336, mode: `MaxEncodedLen`) + fn clear_all_transfer_approvals() -> Weight { + // Proof Size summary in bytes: + // Measured: `418` + // Estimated: `4326` + // Minimum execution time: 17_803_000 picoseconds. + Weight::from_parts(18_270_000, 0) + .saturating_add(Weight::from_parts(0, 4326)) + .saturating_add(T::DbWeight::get().reads(1)) + .saturating_add(T::DbWeight::get().writes(1)) + } + /// Storage: `Nfts::OwnershipAcceptance` (r:1 w:1) + /// Proof: `Nfts::OwnershipAcceptance` (`max_values`: None, `max_size`: Some(52), added: 2527, mode: `MaxEncodedLen`) + fn set_accept_ownership() -> Weight { + // Proof Size summary in bytes: + // Measured: `76` + // Estimated: `3517` + // Minimum execution time: 15_982_000 picoseconds. + Weight::from_parts(16_700_000, 0) + .saturating_add(Weight::from_parts(0, 3517)) + .saturating_add(T::DbWeight::get().reads(1)) + .saturating_add(T::DbWeight::get().writes(1)) + } + /// Storage: `Nfts::CollectionConfigOf` (r:1 w:1) + /// Proof: `Nfts::CollectionConfigOf` (`max_values`: None, `max_size`: Some(73), added: 2548, mode: `MaxEncodedLen`) + /// Storage: `Nfts::Collection` (r:1 w:0) + /// Proof: `Nfts::Collection` (`max_values`: None, `max_size`: Some(84), added: 2559, mode: `MaxEncodedLen`) + fn set_collection_max_supply() -> Weight { + // Proof Size summary in bytes: + // Measured: `340` + // Estimated: `3549` + // Minimum execution time: 19_501_000 picoseconds. + Weight::from_parts(19_785_000, 0) + .saturating_add(Weight::from_parts(0, 3549)) + .saturating_add(T::DbWeight::get().reads(2)) + .saturating_add(T::DbWeight::get().writes(1)) + } + /// Storage: `Nfts::CollectionRoleOf` (r:1 w:0) + /// Proof: `Nfts::CollectionRoleOf` (`max_values`: None, `max_size`: Some(69), added: 2544, mode: `MaxEncodedLen`) + /// Storage: `Nfts::CollectionConfigOf` (r:1 w:1) + /// Proof: `Nfts::CollectionConfigOf` (`max_values`: None, `max_size`: Some(73), added: 2548, mode: `MaxEncodedLen`) + fn update_mint_settings() -> Weight { + // Proof Size summary in bytes: + // Measured: `323` + // Estimated: `3538` + // Minimum execution time: 18_914_000 picoseconds. + Weight::from_parts(19_292_000, 0) + .saturating_add(Weight::from_parts(0, 3538)) + .saturating_add(T::DbWeight::get().reads(2)) + .saturating_add(T::DbWeight::get().writes(1)) + } + /// Storage: `Nfts::Item` (r:1 w:0) + /// Proof: `Nfts::Item` (`max_values`: None, `max_size`: Some(861), added: 3336, mode: `MaxEncodedLen`) + /// Storage: `Nfts::CollectionConfigOf` (r:1 w:0) + /// Proof: `Nfts::CollectionConfigOf` (`max_values`: None, `max_size`: Some(73), added: 2548, mode: `MaxEncodedLen`) + /// Storage: `Nfts::ItemConfigOf` (r:1 w:0) + /// Proof: `Nfts::ItemConfigOf` (`max_values`: None, `max_size`: Some(48), added: 2523, mode: `MaxEncodedLen`) + /// Storage: `Nfts::ItemPriceOf` (r:0 w:1) + /// Proof: `Nfts::ItemPriceOf` (`max_values`: None, `max_size`: Some(89), added: 2564, mode: `MaxEncodedLen`) + fn set_price() -> Weight { + // Proof Size summary in bytes: + // Measured: `518` + // Estimated: `4326` + // Minimum execution time: 24_625_000 picoseconds. + Weight::from_parts(25_257_000, 0) + .saturating_add(Weight::from_parts(0, 4326)) + .saturating_add(T::DbWeight::get().reads(3)) + .saturating_add(T::DbWeight::get().writes(1)) + } + /// Storage: `Nfts::Item` (r:1 w:1) + /// Proof: `Nfts::Item` (`max_values`: None, `max_size`: Some(861), added: 3336, mode: `MaxEncodedLen`) + /// Storage: `Nfts::ItemPriceOf` (r:1 w:1) + /// Proof: `Nfts::ItemPriceOf` (`max_values`: None, `max_size`: Some(89), added: 2564, mode: `MaxEncodedLen`) + /// Storage: `Nfts::Collection` (r:1 w:0) + /// Proof: `Nfts::Collection` (`max_values`: None, `max_size`: Some(84), added: 2559, mode: `MaxEncodedLen`) + /// Storage: `Nfts::Attribute` (r:1 w:0) + /// Proof: `Nfts::Attribute` (`max_values`: None, `max_size`: Some(479), added: 2954, mode: `MaxEncodedLen`) + /// Storage: `Nfts::CollectionConfigOf` (r:1 w:0) + /// Proof: `Nfts::CollectionConfigOf` (`max_values`: None, `max_size`: Some(73), added: 2548, mode: `MaxEncodedLen`) + /// Storage: `Nfts::ItemConfigOf` (r:1 w:0) + /// Proof: `Nfts::ItemConfigOf` (`max_values`: None, `max_size`: Some(48), added: 2523, mode: `MaxEncodedLen`) + /// Storage: `Nfts::Account` (r:0 w:2) + /// Proof: `Nfts::Account` (`max_values`: None, `max_size`: Some(88), added: 2563, mode: `MaxEncodedLen`) + /// Storage: `Nfts::PendingSwapOf` (r:0 w:1) + /// Proof: `Nfts::PendingSwapOf` (`max_values`: None, `max_size`: Some(71), added: 2546, mode: `MaxEncodedLen`) + fn buy_item() -> Weight { + // Proof Size summary in bytes: + // Measured: `705` + // Estimated: `4326` + // Minimum execution time: 50_833_000 picoseconds. + Weight::from_parts(52_161_000, 0) + .saturating_add(Weight::from_parts(0, 4326)) + .saturating_add(T::DbWeight::get().reads(6)) + .saturating_add(T::DbWeight::get().writes(5)) + } + /// The range of component `n` is `[0, 10]`. + fn pay_tips(n: u32, ) -> Weight { + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 2_220_000 picoseconds. + Weight::from_parts(3_476_001, 0) + .saturating_add(Weight::from_parts(0, 0)) + // Standard Error: 7_084 + .saturating_add(Weight::from_parts(3_844_820, 0).saturating_mul(n.into())) + } + /// Storage: `Nfts::Item` (r:2 w:0) + /// Proof: `Nfts::Item` (`max_values`: None, `max_size`: Some(861), added: 3336, mode: `MaxEncodedLen`) + /// Storage: `Nfts::PendingSwapOf` (r:0 w:1) + /// Proof: `Nfts::PendingSwapOf` (`max_values`: None, `max_size`: Some(71), added: 2546, mode: `MaxEncodedLen`) + fn create_swap() -> Weight { + // Proof Size summary in bytes: + // Measured: `494` + // Estimated: `7662` + // Minimum execution time: 21_983_000 picoseconds. + Weight::from_parts(22_746_000, 0) + .saturating_add(Weight::from_parts(0, 7662)) + .saturating_add(T::DbWeight::get().reads(2)) + .saturating_add(T::DbWeight::get().writes(1)) + } + /// Storage: `Nfts::PendingSwapOf` (r:1 w:1) + /// Proof: `Nfts::PendingSwapOf` (`max_values`: None, `max_size`: Some(71), added: 2546, mode: `MaxEncodedLen`) + /// Storage: `Nfts::Item` (r:1 w:0) + /// Proof: `Nfts::Item` (`max_values`: None, `max_size`: Some(861), added: 3336, mode: `MaxEncodedLen`) + fn cancel_swap() -> Weight { + // Proof Size summary in bytes: + // Measured: `513` + // Estimated: `4326` + // Minimum execution time: 20_875_000 picoseconds. + Weight::from_parts(21_465_000, 0) + .saturating_add(Weight::from_parts(0, 4326)) + .saturating_add(T::DbWeight::get().reads(2)) + .saturating_add(T::DbWeight::get().writes(1)) + } + /// Storage: `Nfts::Item` (r:2 w:2) + /// Proof: `Nfts::Item` (`max_values`: None, `max_size`: Some(861), added: 3336, mode: `MaxEncodedLen`) + /// Storage: `Nfts::PendingSwapOf` (r:1 w:2) + /// Proof: `Nfts::PendingSwapOf` (`max_values`: None, `max_size`: Some(71), added: 2546, mode: `MaxEncodedLen`) + /// Storage: `Nfts::Collection` (r:1 w:0) + /// Proof: `Nfts::Collection` (`max_values`: None, `max_size`: Some(84), added: 2559, mode: `MaxEncodedLen`) + /// Storage: `Nfts::Attribute` (r:2 w:0) + /// Proof: `Nfts::Attribute` (`max_values`: None, `max_size`: Some(479), added: 2954, mode: `MaxEncodedLen`) + /// Storage: `Nfts::CollectionConfigOf` (r:1 w:0) + /// Proof: `Nfts::CollectionConfigOf` (`max_values`: None, `max_size`: Some(73), added: 2548, mode: `MaxEncodedLen`) + /// Storage: `Nfts::ItemConfigOf` (r:2 w:0) + /// Proof: `Nfts::ItemConfigOf` (`max_values`: None, `max_size`: Some(48), added: 2523, mode: `MaxEncodedLen`) + /// Storage: `Nfts::Account` (r:0 w:4) + /// Proof: `Nfts::Account` (`max_values`: None, `max_size`: Some(88), added: 2563, mode: `MaxEncodedLen`) + /// Storage: `Nfts::ItemPriceOf` (r:0 w:2) + /// Proof: `Nfts::ItemPriceOf` (`max_values`: None, `max_size`: Some(89), added: 2564, mode: `MaxEncodedLen`) + fn claim_swap() -> Weight { + // Proof Size summary in bytes: + // Measured: `834` + // Estimated: `7662` + // Minimum execution time: 84_771_000 picoseconds. + Weight::from_parts(86_078_000, 0) + .saturating_add(Weight::from_parts(0, 7662)) + .saturating_add(T::DbWeight::get().reads(9)) + .saturating_add(T::DbWeight::get().writes(10)) + } + /// Storage: `Nfts::CollectionRoleOf` (r:2 w:0) + /// Proof: `Nfts::CollectionRoleOf` (`max_values`: None, `max_size`: Some(69), added: 2544, mode: `MaxEncodedLen`) + /// Storage: `Nfts::CollectionConfigOf` (r:1 w:0) + /// Proof: `Nfts::CollectionConfigOf` (`max_values`: None, `max_size`: Some(73), added: 2548, mode: `MaxEncodedLen`) + /// Storage: `Nfts::Item` (r:1 w:1) + /// Proof: `Nfts::Item` (`max_values`: None, `max_size`: Some(861), added: 3336, mode: `MaxEncodedLen`) + /// Storage: `Nfts::Collection` (r:1 w:1) + /// Proof: `Nfts::Collection` (`max_values`: None, `max_size`: Some(84), added: 2559, mode: `MaxEncodedLen`) + /// Storage: `Nfts::ItemConfigOf` (r:1 w:1) + /// Proof: `Nfts::ItemConfigOf` (`max_values`: None, `max_size`: Some(48), added: 2523, mode: `MaxEncodedLen`) + /// Storage: `System::Account` (r:1 w:1) + /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`) + /// Storage: `Nfts::Attribute` (r:10 w:10) + /// Proof: `Nfts::Attribute` (`max_values`: None, `max_size`: Some(479), added: 2954, mode: `MaxEncodedLen`) + /// Storage: `Nfts::ItemMetadataOf` (r:1 w:1) + /// Proof: `Nfts::ItemMetadataOf` (`max_values`: None, `max_size`: Some(347), added: 2822, mode: `MaxEncodedLen`) + /// Storage: `Nfts::Account` (r:0 w:1) + /// Proof: `Nfts::Account` (`max_values`: None, `max_size`: Some(88), added: 2563, mode: `MaxEncodedLen`) + /// The range of component `n` is `[0, 10]`. + fn mint_pre_signed(n: u32, ) -> Weight { + // Proof Size summary in bytes: + // Measured: `558` + // Estimated: `6078 + n * (2954 ±0)` + // Minimum execution time: 143_265_000 picoseconds. + Weight::from_parts(150_978_773, 0) + .saturating_add(Weight::from_parts(0, 6078)) + // Standard Error: 49_443 + .saturating_add(Weight::from_parts(31_888_255, 0).saturating_mul(n.into())) + .saturating_add(T::DbWeight::get().reads(8)) + .saturating_add(T::DbWeight::get().reads((1_u64).saturating_mul(n.into()))) + .saturating_add(T::DbWeight::get().writes(6)) + .saturating_add(T::DbWeight::get().writes((1_u64).saturating_mul(n.into()))) + .saturating_add(Weight::from_parts(0, 2954).saturating_mul(n.into())) + } + /// Storage: `Nfts::Item` (r:1 w:0) + /// Proof: `Nfts::Item` (`max_values`: None, `max_size`: Some(861), added: 3336, mode: `MaxEncodedLen`) + /// Storage: `Nfts::ItemAttributesApprovalsOf` (r:1 w:1) + /// Proof: `Nfts::ItemAttributesApprovalsOf` (`max_values`: None, `max_size`: Some(1001), added: 3476, mode: `MaxEncodedLen`) + /// Storage: `Nfts::CollectionConfigOf` (r:1 w:0) + /// Proof: `Nfts::CollectionConfigOf` (`max_values`: None, `max_size`: Some(73), added: 2548, mode: `MaxEncodedLen`) + /// Storage: `Nfts::Collection` (r:1 w:1) + /// Proof: `Nfts::Collection` (`max_values`: None, `max_size`: Some(84), added: 2559, mode: `MaxEncodedLen`) + /// Storage: `Nfts::Attribute` (r:10 w:10) + /// Proof: `Nfts::Attribute` (`max_values`: None, `max_size`: Some(479), added: 2954, 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 `[0, 10]`. + fn set_attributes_pre_signed(n: u32, ) -> Weight { + // Proof Size summary in bytes: + // Measured: `588` + // Estimated: `4466 + n * (2954 ±0)` + // Minimum execution time: 83_754_000 picoseconds. + Weight::from_parts(96_685_026, 0) + .saturating_add(Weight::from_parts(0, 4466)) + // Standard Error: 72_592 + .saturating_add(Weight::from_parts(30_914_858, 0).saturating_mul(n.into())) + .saturating_add(T::DbWeight::get().reads(4)) + .saturating_add(T::DbWeight::get().reads((1_u64).saturating_mul(n.into()))) + .saturating_add(T::DbWeight::get().writes(2)) + .saturating_add(T::DbWeight::get().writes((1_u64).saturating_mul(n.into()))) + .saturating_add(Weight::from_parts(0, 2954).saturating_mul(n.into())) + } +} diff --git a/cumulus/parachains/runtimes/assets/asset-hub-kusama/src/weights/pallet_proxy.rs b/cumulus/parachains/runtimes/assets/asset-hub-kusama/src/weights/pallet_proxy.rs new file mode 100644 index 000000000000..9bc4ba448e5a --- /dev/null +++ b/cumulus/parachains/runtimes/assets/asset-hub-kusama/src/weights/pallet_proxy.rs @@ -0,0 +1,226 @@ +// Copyright (C) Parity Technologies (UK) Ltd. +// This file is part of Cumulus. + +// Cumulus 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. + +// Cumulus 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 Cumulus. If not, see . + +//! Autogenerated weights for `pallet_proxy` +//! +//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev +//! DATE: 2023-07-31, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! WORST CASE MAP SIZE: `1000000` +//! HOSTNAME: `runner-ynta1nyy-project-238-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz` +//! EXECUTION: ``, WASM-EXECUTION: `Compiled`, CHAIN: `Some("asset-hub-kusama-dev")`, DB CACHE: 1024 + +// Executed Command: +// ./target/production/polkadot-parachain +// benchmark +// pallet +// --chain=asset-hub-kusama-dev +// --wasm-execution=compiled +// --pallet=pallet_proxy +// --no-storage-info +// --no-median-slopes +// --no-min-squares +// --extrinsic=* +// --steps=50 +// --repeat=20 +// --json +// --header=./file_header.txt +// --output=./parachains/runtimes/assets/asset-hub-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_proxy`. +pub struct WeightInfo(PhantomData); +impl pallet_proxy::WeightInfo for WeightInfo { + /// Storage: `Proxy::Proxies` (r:1 w:0) + /// Proof: `Proxy::Proxies` (`max_values`: None, `max_size`: Some(1241), added: 3716, mode: `MaxEncodedLen`) + /// The range of component `p` is `[1, 31]`. + fn proxy(p: u32, ) -> Weight { + // Proof Size summary in bytes: + // Measured: `127 + p * (37 ±0)` + // Estimated: `4706` + // Minimum execution time: 16_417_000 picoseconds. + Weight::from_parts(17_283_443, 0) + .saturating_add(Weight::from_parts(0, 4706)) + // Standard Error: 2_409 + .saturating_add(Weight::from_parts(32_123, 0).saturating_mul(p.into())) + .saturating_add(T::DbWeight::get().reads(1)) + } + /// Storage: `Proxy::Proxies` (r:1 w:0) + /// Proof: `Proxy::Proxies` (`max_values`: None, `max_size`: Some(1241), added: 3716, mode: `MaxEncodedLen`) + /// Storage: `Proxy::Announcements` (r:1 w:1) + /// Proof: `Proxy::Announcements` (`max_values`: None, `max_size`: Some(2233), added: 4708, 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 `a` is `[0, 31]`. + /// The range of component `p` is `[1, 31]`. + fn proxy_announced(a: u32, p: u32, ) -> Weight { + // Proof Size summary in bytes: + // Measured: `454 + a * (68 ±0) + p * (37 ±0)` + // Estimated: `5698` + // Minimum execution time: 37_572_000 picoseconds. + Weight::from_parts(37_045_756, 0) + .saturating_add(Weight::from_parts(0, 5698)) + // Standard Error: 2_896 + .saturating_add(Weight::from_parts(139_561, 0).saturating_mul(a.into())) + // Standard Error: 2_993 + .saturating_add(Weight::from_parts(73_270, 0).saturating_mul(p.into())) + .saturating_add(T::DbWeight::get().reads(3)) + .saturating_add(T::DbWeight::get().writes(2)) + } + /// Storage: `Proxy::Announcements` (r:1 w:1) + /// Proof: `Proxy::Announcements` (`max_values`: None, `max_size`: Some(2233), added: 4708, 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 `a` is `[0, 31]`. + /// The range of component `p` is `[1, 31]`. + fn remove_announcement(a: u32, p: u32, ) -> Weight { + // Proof Size summary in bytes: + // Measured: `369 + a * (68 ±0)` + // Estimated: `5698` + // Minimum execution time: 24_066_000 picoseconds. + Weight::from_parts(24_711_403, 0) + .saturating_add(Weight::from_parts(0, 5698)) + // Standard Error: 1_626 + .saturating_add(Weight::from_parts(128_391, 0).saturating_mul(a.into())) + // Standard Error: 1_680 + .saturating_add(Weight::from_parts(23_124, 0).saturating_mul(p.into())) + .saturating_add(T::DbWeight::get().reads(2)) + .saturating_add(T::DbWeight::get().writes(2)) + } + /// Storage: `Proxy::Announcements` (r:1 w:1) + /// Proof: `Proxy::Announcements` (`max_values`: None, `max_size`: Some(2233), added: 4708, 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 `a` is `[0, 31]`. + /// The range of component `p` is `[1, 31]`. + fn reject_announcement(a: u32, p: u32, ) -> Weight { + // Proof Size summary in bytes: + // Measured: `369 + a * (68 ±0)` + // Estimated: `5698` + // Minimum execution time: 24_162_000 picoseconds. + Weight::from_parts(23_928_058, 0) + .saturating_add(Weight::from_parts(0, 5698)) + // Standard Error: 2_072 + .saturating_add(Weight::from_parts(152_299, 0).saturating_mul(a.into())) + // Standard Error: 2_141 + .saturating_add(Weight::from_parts(39_775, 0).saturating_mul(p.into())) + .saturating_add(T::DbWeight::get().reads(2)) + .saturating_add(T::DbWeight::get().writes(2)) + } + /// Storage: `Proxy::Proxies` (r:1 w:0) + /// Proof: `Proxy::Proxies` (`max_values`: None, `max_size`: Some(1241), added: 3716, mode: `MaxEncodedLen`) + /// Storage: `Proxy::Announcements` (r:1 w:1) + /// Proof: `Proxy::Announcements` (`max_values`: None, `max_size`: Some(2233), added: 4708, 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 `a` is `[0, 31]`. + /// The range of component `p` is `[1, 31]`. + fn announce(a: u32, p: u32, ) -> Weight { + // Proof Size summary in bytes: + // Measured: `386 + a * (68 ±0) + p * (37 ±0)` + // Estimated: `5698` + // Minimum execution time: 33_858_000 picoseconds. + Weight::from_parts(33_568_059, 0) + .saturating_add(Weight::from_parts(0, 5698)) + // Standard Error: 1_816 + .saturating_add(Weight::from_parts(134_400, 0).saturating_mul(a.into())) + // Standard Error: 1_876 + .saturating_add(Weight::from_parts(57_028, 0).saturating_mul(p.into())) + .saturating_add(T::DbWeight::get().reads(3)) + .saturating_add(T::DbWeight::get().writes(2)) + } + /// Storage: `Proxy::Proxies` (r:1 w:1) + /// Proof: `Proxy::Proxies` (`max_values`: None, `max_size`: Some(1241), added: 3716, mode: `MaxEncodedLen`) + /// The range of component `p` is `[1, 31]`. + fn add_proxy(p: u32, ) -> Weight { + // Proof Size summary in bytes: + // Measured: `127 + p * (37 ±0)` + // Estimated: `4706` + // Minimum execution time: 24_947_000 picoseconds. + Weight::from_parts(26_235_199, 0) + .saturating_add(Weight::from_parts(0, 4706)) + // Standard Error: 1_363 + .saturating_add(Weight::from_parts(41_435, 0).saturating_mul(p.into())) + .saturating_add(T::DbWeight::get().reads(1)) + .saturating_add(T::DbWeight::get().writes(1)) + } + /// Storage: `Proxy::Proxies` (r:1 w:1) + /// Proof: `Proxy::Proxies` (`max_values`: None, `max_size`: Some(1241), added: 3716, mode: `MaxEncodedLen`) + /// The range of component `p` is `[1, 31]`. + fn remove_proxy(p: u32, ) -> Weight { + // Proof Size summary in bytes: + // Measured: `127 + p * (37 ±0)` + // Estimated: `4706` + // Minimum execution time: 25_186_000 picoseconds. + Weight::from_parts(26_823_133, 0) + .saturating_add(Weight::from_parts(0, 4706)) + // Standard Error: 2_259 + .saturating_add(Weight::from_parts(34_224, 0).saturating_mul(p.into())) + .saturating_add(T::DbWeight::get().reads(1)) + .saturating_add(T::DbWeight::get().writes(1)) + } + /// Storage: `Proxy::Proxies` (r:1 w:1) + /// Proof: `Proxy::Proxies` (`max_values`: None, `max_size`: Some(1241), added: 3716, mode: `MaxEncodedLen`) + /// The range of component `p` is `[1, 31]`. + fn remove_proxies(p: u32, ) -> Weight { + // Proof Size summary in bytes: + // Measured: `127 + p * (37 ±0)` + // Estimated: `4706` + // Minimum execution time: 22_156_000 picoseconds. + Weight::from_parts(23_304_060, 0) + .saturating_add(Weight::from_parts(0, 4706)) + // Standard Error: 1_738 + .saturating_add(Weight::from_parts(39_612, 0).saturating_mul(p.into())) + .saturating_add(T::DbWeight::get().reads(1)) + .saturating_add(T::DbWeight::get().writes(1)) + } + /// Storage: `Proxy::Proxies` (r:1 w:1) + /// Proof: `Proxy::Proxies` (`max_values`: None, `max_size`: Some(1241), added: 3716, mode: `MaxEncodedLen`) + /// The range of component `p` is `[1, 31]`. + fn create_pure(p: u32, ) -> Weight { + // Proof Size summary in bytes: + // Measured: `139` + // Estimated: `4706` + // Minimum execution time: 26_914_000 picoseconds. + Weight::from_parts(28_009_062, 0) + .saturating_add(Weight::from_parts(0, 4706)) + // Standard Error: 1_978 + .saturating_add(Weight::from_parts(12_255, 0).saturating_mul(p.into())) + .saturating_add(T::DbWeight::get().reads(1)) + .saturating_add(T::DbWeight::get().writes(1)) + } + /// Storage: `Proxy::Proxies` (r:1 w:1) + /// Proof: `Proxy::Proxies` (`max_values`: None, `max_size`: Some(1241), added: 3716, mode: `MaxEncodedLen`) + /// The range of component `p` is `[0, 30]`. + fn kill_pure(p: u32, ) -> Weight { + // Proof Size summary in bytes: + // Measured: `164 + p * (37 ±0)` + // Estimated: `4706` + // Minimum execution time: 23_281_000 picoseconds. + Weight::from_parts(24_392_989, 0) + .saturating_add(Weight::from_parts(0, 4706)) + // Standard Error: 2_943 + .saturating_add(Weight::from_parts(30_287, 0).saturating_mul(p.into())) + .saturating_add(T::DbWeight::get().reads(1)) + .saturating_add(T::DbWeight::get().writes(1)) + } +} diff --git a/cumulus/parachains/runtimes/assets/asset-hub-kusama/src/weights/pallet_session.rs b/cumulus/parachains/runtimes/assets/asset-hub-kusama/src/weights/pallet_session.rs new file mode 100644 index 000000000000..56982f565ac4 --- /dev/null +++ b/cumulus/parachains/runtimes/assets/asset-hub-kusama/src/weights/pallet_session.rs @@ -0,0 +1,81 @@ +// Copyright (C) Parity Technologies (UK) Ltd. +// This file is part of Cumulus. + +// Cumulus 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. + +// Cumulus 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 Cumulus. If not, see . + +//! Autogenerated weights for `pallet_session` +//! +//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev +//! DATE: 2023-07-31, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! WORST CASE MAP SIZE: `1000000` +//! HOSTNAME: `runner-ynta1nyy-project-238-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz` +//! EXECUTION: ``, WASM-EXECUTION: `Compiled`, CHAIN: `Some("asset-hub-kusama-dev")`, DB CACHE: 1024 + +// Executed Command: +// ./target/production/polkadot-parachain +// benchmark +// pallet +// --chain=asset-hub-kusama-dev +// --wasm-execution=compiled +// --pallet=pallet_session +// --no-storage-info +// --no-median-slopes +// --no-min-squares +// --extrinsic=* +// --steps=50 +// --repeat=20 +// --json +// --header=./file_header.txt +// --output=./parachains/runtimes/assets/asset-hub-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_session`. +pub struct WeightInfo(PhantomData); +impl pallet_session::WeightInfo for WeightInfo { + /// Storage: `Session::NextKeys` (r:1 w:1) + /// Proof: `Session::NextKeys` (`max_values`: None, `max_size`: None, mode: `Measured`) + /// Storage: `Session::KeyOwner` (r:1 w:1) + /// Proof: `Session::KeyOwner` (`max_values`: None, `max_size`: None, mode: `Measured`) + fn set_keys() -> Weight { + // Proof Size summary in bytes: + // Measured: `270` + // Estimated: `3735` + // Minimum execution time: 16_932_000 picoseconds. + Weight::from_parts(17_357_000, 0) + .saturating_add(Weight::from_parts(0, 3735)) + .saturating_add(T::DbWeight::get().reads(2)) + .saturating_add(T::DbWeight::get().writes(2)) + } + /// Storage: `Session::NextKeys` (r:1 w:1) + /// Proof: `Session::NextKeys` (`max_values`: None, `max_size`: None, mode: `Measured`) + /// Storage: `Session::KeyOwner` (r:0 w:1) + /// Proof: `Session::KeyOwner` (`max_values`: None, `max_size`: None, mode: `Measured`) + fn purge_keys() -> Weight { + // Proof Size summary in bytes: + // Measured: `242` + // Estimated: `3707` + // Minimum execution time: 12_157_000 picoseconds. + Weight::from_parts(12_770_000, 0) + .saturating_add(Weight::from_parts(0, 3707)) + .saturating_add(T::DbWeight::get().reads(1)) + .saturating_add(T::DbWeight::get().writes(2)) + } +} diff --git a/cumulus/parachains/runtimes/assets/asset-hub-kusama/src/weights/pallet_timestamp.rs b/cumulus/parachains/runtimes/assets/asset-hub-kusama/src/weights/pallet_timestamp.rs new file mode 100644 index 000000000000..94914eefba04 --- /dev/null +++ b/cumulus/parachains/runtimes/assets/asset-hub-kusama/src/weights/pallet_timestamp.rs @@ -0,0 +1,75 @@ +// Copyright (C) Parity Technologies (UK) Ltd. +// This file is part of Cumulus. + +// Cumulus 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. + +// Cumulus 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 Cumulus. If not, see . + +//! Autogenerated weights for `pallet_timestamp` +//! +//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev +//! DATE: 2023-07-31, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! WORST CASE MAP SIZE: `1000000` +//! HOSTNAME: `runner-ynta1nyy-project-238-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz` +//! EXECUTION: ``, WASM-EXECUTION: `Compiled`, CHAIN: `Some("asset-hub-kusama-dev")`, DB CACHE: 1024 + +// Executed Command: +// ./target/production/polkadot-parachain +// benchmark +// pallet +// --chain=asset-hub-kusama-dev +// --wasm-execution=compiled +// --pallet=pallet_timestamp +// --no-storage-info +// --no-median-slopes +// --no-min-squares +// --extrinsic=* +// --steps=50 +// --repeat=20 +// --json +// --header=./file_header.txt +// --output=./parachains/runtimes/assets/asset-hub-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_timestamp`. +pub struct WeightInfo(PhantomData); +impl pallet_timestamp::WeightInfo for WeightInfo { + /// Storage: `Timestamp::Now` (r:1 w:1) + /// Proof: `Timestamp::Now` (`max_values`: Some(1), `max_size`: Some(8), added: 503, mode: `MaxEncodedLen`) + /// Storage: `Aura::CurrentSlot` (r:1 w:0) + /// Proof: `Aura::CurrentSlot` (`max_values`: Some(1), `max_size`: Some(8), added: 503, mode: `MaxEncodedLen`) + fn set() -> Weight { + // Proof Size summary in bytes: + // Measured: `86` + // Estimated: `1493` + // Minimum execution time: 9_313_000 picoseconds. + Weight::from_parts(9_775_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: `57` + // Estimated: `0` + // Minimum execution time: 3_322_000 picoseconds. + Weight::from_parts(3_577_000, 0) + .saturating_add(Weight::from_parts(0, 0)) + } +} diff --git a/cumulus/parachains/runtimes/assets/asset-hub-kusama/src/weights/pallet_uniques.rs b/cumulus/parachains/runtimes/assets/asset-hub-kusama/src/weights/pallet_uniques.rs new file mode 100644 index 000000000000..43bc74931cb0 --- /dev/null +++ b/cumulus/parachains/runtimes/assets/asset-hub-kusama/src/weights/pallet_uniques.rs @@ -0,0 +1,467 @@ +// Copyright (C) Parity Technologies (UK) Ltd. +// This file is part of Cumulus. + +// Cumulus 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. + +// Cumulus 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 Cumulus. If not, see . + +//! Autogenerated weights for `pallet_uniques` +//! +//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev +//! DATE: 2023-07-31, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! WORST CASE MAP SIZE: `1000000` +//! HOSTNAME: `runner-ynta1nyy-project-238-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz` +//! EXECUTION: ``, WASM-EXECUTION: `Compiled`, CHAIN: `Some("asset-hub-kusama-dev")`, DB CACHE: 1024 + +// Executed Command: +// ./target/production/polkadot-parachain +// benchmark +// pallet +// --chain=asset-hub-kusama-dev +// --wasm-execution=compiled +// --pallet=pallet_uniques +// --no-storage-info +// --no-median-slopes +// --no-min-squares +// --extrinsic=* +// --steps=50 +// --repeat=20 +// --json +// --header=./file_header.txt +// --output=./parachains/runtimes/assets/asset-hub-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_uniques`. +pub struct WeightInfo(PhantomData); +impl pallet_uniques::WeightInfo for WeightInfo { + /// Storage: `Uniques::Class` (r:1 w:1) + /// Proof: `Uniques::Class` (`max_values`: None, `max_size`: Some(178), added: 2653, mode: `MaxEncodedLen`) + /// Storage: `Uniques::ClassAccount` (r:0 w:1) + /// Proof: `Uniques::ClassAccount` (`max_values`: None, `max_size`: Some(68), added: 2543, mode: `MaxEncodedLen`) + fn create() -> Weight { + // Proof Size summary in bytes: + // Measured: `145` + // Estimated: `3643` + // Minimum execution time: 28_845_000 picoseconds. + Weight::from_parts(29_675_000, 0) + .saturating_add(Weight::from_parts(0, 3643)) + .saturating_add(T::DbWeight::get().reads(1)) + .saturating_add(T::DbWeight::get().writes(2)) + } + /// Storage: `Uniques::Class` (r:1 w:1) + /// Proof: `Uniques::Class` (`max_values`: None, `max_size`: Some(178), added: 2653, mode: `MaxEncodedLen`) + /// Storage: `Uniques::ClassAccount` (r:0 w:1) + /// Proof: `Uniques::ClassAccount` (`max_values`: None, `max_size`: Some(68), added: 2543, mode: `MaxEncodedLen`) + fn force_create() -> Weight { + // Proof Size summary in bytes: + // Measured: `42` + // Estimated: `3643` + // Minimum execution time: 13_492_000 picoseconds. + Weight::from_parts(14_049_000, 0) + .saturating_add(Weight::from_parts(0, 3643)) + .saturating_add(T::DbWeight::get().reads(1)) + .saturating_add(T::DbWeight::get().writes(2)) + } + /// Storage: `Uniques::Class` (r:1 w:1) + /// Proof: `Uniques::Class` (`max_values`: None, `max_size`: Some(178), added: 2653, mode: `MaxEncodedLen`) + /// Storage: `Uniques::Asset` (r:1001 w:1000) + /// Proof: `Uniques::Asset` (`max_values`: None, `max_size`: Some(122), added: 2597, mode: `MaxEncodedLen`) + /// Storage: `Uniques::InstanceMetadataOf` (r:1000 w:1000) + /// Proof: `Uniques::InstanceMetadataOf` (`max_values`: None, `max_size`: Some(187), added: 2662, mode: `MaxEncodedLen`) + /// Storage: `Uniques::Attribute` (r:1000 w:1000) + /// Proof: `Uniques::Attribute` (`max_values`: None, `max_size`: Some(172), added: 2647, mode: `MaxEncodedLen`) + /// Storage: `Uniques::ClassAccount` (r:0 w:1) + /// Proof: `Uniques::ClassAccount` (`max_values`: None, `max_size`: Some(68), added: 2543, mode: `MaxEncodedLen`) + /// Storage: `Uniques::ClassMetadataOf` (r:0 w:1) + /// Proof: `Uniques::ClassMetadataOf` (`max_values`: None, `max_size`: Some(167), added: 2642, mode: `MaxEncodedLen`) + /// Storage: `Uniques::Account` (r:0 w:1000) + /// Proof: `Uniques::Account` (`max_values`: None, `max_size`: Some(88), added: 2563, mode: `MaxEncodedLen`) + /// Storage: `Uniques::CollectionMaxSupply` (r:0 w:1) + /// Proof: `Uniques::CollectionMaxSupply` (`max_values`: None, `max_size`: Some(24), added: 2499, mode: `MaxEncodedLen`) + /// The range of component `n` is `[0, 1000]`. + /// The range of component `m` is `[0, 1000]`. + /// The range of component `a` is `[0, 1000]`. + fn destroy(n: u32, m: u32, a: u32, ) -> Weight { + // Proof Size summary in bytes: + // Measured: `257 + a * (107 ±0) + m * (56 ±0) + n * (76 ±0)` + // Estimated: `3643 + a * (2647 ±0) + m * (2662 ±0) + n * (2597 ±0)` + // Minimum execution time: 2_920_070_000 picoseconds. + Weight::from_parts(2_983_862_000, 0) + .saturating_add(Weight::from_parts(0, 3643)) + // Standard Error: 36_415 + .saturating_add(Weight::from_parts(7_589_778, 0).saturating_mul(n.into())) + // Standard Error: 36_415 + .saturating_add(Weight::from_parts(479_496, 0).saturating_mul(m.into())) + // Standard Error: 36_415 + .saturating_add(Weight::from_parts(562_056, 0).saturating_mul(a.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().reads((1_u64).saturating_mul(m.into()))) + .saturating_add(T::DbWeight::get().reads((1_u64).saturating_mul(a.into()))) + .saturating_add(T::DbWeight::get().writes(4)) + .saturating_add(T::DbWeight::get().writes((2_u64).saturating_mul(n.into()))) + .saturating_add(T::DbWeight::get().writes((1_u64).saturating_mul(m.into()))) + .saturating_add(T::DbWeight::get().writes((1_u64).saturating_mul(a.into()))) + .saturating_add(Weight::from_parts(0, 2647).saturating_mul(a.into())) + .saturating_add(Weight::from_parts(0, 2662).saturating_mul(m.into())) + .saturating_add(Weight::from_parts(0, 2597).saturating_mul(n.into())) + } + /// Storage: `Uniques::Asset` (r:1 w:1) + /// Proof: `Uniques::Asset` (`max_values`: None, `max_size`: Some(122), added: 2597, mode: `MaxEncodedLen`) + /// Storage: `Uniques::Class` (r:1 w:1) + /// Proof: `Uniques::Class` (`max_values`: None, `max_size`: Some(178), added: 2653, mode: `MaxEncodedLen`) + /// Storage: `Uniques::CollectionMaxSupply` (r:1 w:0) + /// Proof: `Uniques::CollectionMaxSupply` (`max_values`: None, `max_size`: Some(24), added: 2499, mode: `MaxEncodedLen`) + /// Storage: `Uniques::Account` (r:0 w:1) + /// Proof: `Uniques::Account` (`max_values`: None, `max_size`: Some(88), added: 2563, mode: `MaxEncodedLen`) + fn mint() -> Weight { + // Proof Size summary in bytes: + // Measured: `282` + // Estimated: `3643` + // Minimum execution time: 35_329_000 picoseconds. + Weight::from_parts(36_019_000, 0) + .saturating_add(Weight::from_parts(0, 3643)) + .saturating_add(T::DbWeight::get().reads(3)) + .saturating_add(T::DbWeight::get().writes(3)) + } + /// Storage: `Uniques::Class` (r:1 w:1) + /// Proof: `Uniques::Class` (`max_values`: None, `max_size`: Some(178), added: 2653, mode: `MaxEncodedLen`) + /// Storage: `Uniques::Asset` (r:1 w:1) + /// Proof: `Uniques::Asset` (`max_values`: None, `max_size`: Some(122), added: 2597, mode: `MaxEncodedLen`) + /// Storage: `Uniques::Account` (r:0 w:1) + /// Proof: `Uniques::Account` (`max_values`: None, `max_size`: Some(88), added: 2563, mode: `MaxEncodedLen`) + /// Storage: `Uniques::ItemPriceOf` (r:0 w:1) + /// Proof: `Uniques::ItemPriceOf` (`max_values`: None, `max_size`: Some(89), added: 2564, mode: `MaxEncodedLen`) + fn burn() -> Weight { + // Proof Size summary in bytes: + // Measured: `428` + // Estimated: `3643` + // Minimum execution time: 36_474_000 picoseconds. + Weight::from_parts(37_190_000, 0) + .saturating_add(Weight::from_parts(0, 3643)) + .saturating_add(T::DbWeight::get().reads(2)) + .saturating_add(T::DbWeight::get().writes(4)) + } + /// Storage: `Uniques::Class` (r:1 w:0) + /// Proof: `Uniques::Class` (`max_values`: None, `max_size`: Some(178), added: 2653, mode: `MaxEncodedLen`) + /// Storage: `Uniques::Asset` (r:1 w:1) + /// Proof: `Uniques::Asset` (`max_values`: None, `max_size`: Some(122), added: 2597, mode: `MaxEncodedLen`) + /// Storage: `Uniques::Account` (r:0 w:2) + /// Proof: `Uniques::Account` (`max_values`: None, `max_size`: Some(88), added: 2563, mode: `MaxEncodedLen`) + /// Storage: `Uniques::ItemPriceOf` (r:0 w:1) + /// Proof: `Uniques::ItemPriceOf` (`max_values`: None, `max_size`: Some(89), added: 2564, mode: `MaxEncodedLen`) + fn transfer() -> Weight { + // Proof Size summary in bytes: + // Measured: `428` + // Estimated: `3643` + // Minimum execution time: 26_786_000 picoseconds. + Weight::from_parts(27_400_000, 0) + .saturating_add(Weight::from_parts(0, 3643)) + .saturating_add(T::DbWeight::get().reads(2)) + .saturating_add(T::DbWeight::get().writes(4)) + } + /// Storage: `Uniques::Class` (r:1 w:1) + /// Proof: `Uniques::Class` (`max_values`: None, `max_size`: Some(178), added: 2653, mode: `MaxEncodedLen`) + /// Storage: `Uniques::Asset` (r:5000 w:5000) + /// Proof: `Uniques::Asset` (`max_values`: None, `max_size`: Some(122), added: 2597, mode: `MaxEncodedLen`) + /// The range of component `i` is `[0, 5000]`. + fn redeposit(i: u32, ) -> Weight { + // Proof Size summary in bytes: + // Measured: `738 + i * (76 ±0)` + // Estimated: `3643 + i * (2597 ±0)` + // Minimum execution time: 14_546_000 picoseconds. + Weight::from_parts(14_831_000, 0) + .saturating_add(Weight::from_parts(0, 3643)) + // Standard Error: 24_362 + .saturating_add(Weight::from_parts(17_972_938, 0).saturating_mul(i.into())) + .saturating_add(T::DbWeight::get().reads(1)) + .saturating_add(T::DbWeight::get().reads((1_u64).saturating_mul(i.into()))) + .saturating_add(T::DbWeight::get().writes(1)) + .saturating_add(T::DbWeight::get().writes((1_u64).saturating_mul(i.into()))) + .saturating_add(Weight::from_parts(0, 2597).saturating_mul(i.into())) + } + /// Storage: `Uniques::Asset` (r:1 w:1) + /// Proof: `Uniques::Asset` (`max_values`: None, `max_size`: Some(122), added: 2597, mode: `MaxEncodedLen`) + /// Storage: `Uniques::Class` (r:1 w:0) + /// Proof: `Uniques::Class` (`max_values`: None, `max_size`: Some(178), added: 2653, mode: `MaxEncodedLen`) + fn freeze() -> Weight { + // Proof Size summary in bytes: + // Measured: `428` + // Estimated: `3643` + // Minimum execution time: 18_919_000 picoseconds. + Weight::from_parts(19_547_000, 0) + .saturating_add(Weight::from_parts(0, 3643)) + .saturating_add(T::DbWeight::get().reads(2)) + .saturating_add(T::DbWeight::get().writes(1)) + } + /// Storage: `Uniques::Asset` (r:1 w:1) + /// Proof: `Uniques::Asset` (`max_values`: None, `max_size`: Some(122), added: 2597, mode: `MaxEncodedLen`) + /// Storage: `Uniques::Class` (r:1 w:0) + /// Proof: `Uniques::Class` (`max_values`: None, `max_size`: Some(178), added: 2653, mode: `MaxEncodedLen`) + fn thaw() -> Weight { + // Proof Size summary in bytes: + // Measured: `428` + // Estimated: `3643` + // Minimum execution time: 18_643_000 picoseconds. + Weight::from_parts(19_000_000, 0) + .saturating_add(Weight::from_parts(0, 3643)) + .saturating_add(T::DbWeight::get().reads(2)) + .saturating_add(T::DbWeight::get().writes(1)) + } + /// Storage: `Uniques::Class` (r:1 w:1) + /// Proof: `Uniques::Class` (`max_values`: None, `max_size`: Some(178), added: 2653, mode: `MaxEncodedLen`) + fn freeze_collection() -> Weight { + // Proof Size summary in bytes: + // Measured: `282` + // Estimated: `3643` + // Minimum execution time: 13_530_000 picoseconds. + Weight::from_parts(14_165_000, 0) + .saturating_add(Weight::from_parts(0, 3643)) + .saturating_add(T::DbWeight::get().reads(1)) + .saturating_add(T::DbWeight::get().writes(1)) + } + /// Storage: `Uniques::Class` (r:1 w:1) + /// Proof: `Uniques::Class` (`max_values`: None, `max_size`: Some(178), added: 2653, mode: `MaxEncodedLen`) + fn thaw_collection() -> Weight { + // Proof Size summary in bytes: + // Measured: `282` + // Estimated: `3643` + // Minimum execution time: 13_523_000 picoseconds. + Weight::from_parts(14_055_000, 0) + .saturating_add(Weight::from_parts(0, 3643)) + .saturating_add(T::DbWeight::get().reads(1)) + .saturating_add(T::DbWeight::get().writes(1)) + } + /// Storage: `Uniques::OwnershipAcceptance` (r:1 w:1) + /// Proof: `Uniques::OwnershipAcceptance` (`max_values`: None, `max_size`: Some(52), added: 2527, mode: `MaxEncodedLen`) + /// Storage: `Uniques::Class` (r:1 w:1) + /// Proof: `Uniques::Class` (`max_values`: None, `max_size`: Some(178), added: 2653, mode: `MaxEncodedLen`) + /// Storage: `Uniques::ClassAccount` (r:0 w:2) + /// Proof: `Uniques::ClassAccount` (`max_values`: None, `max_size`: Some(68), added: 2543, mode: `MaxEncodedLen`) + fn transfer_ownership() -> Weight { + // Proof Size summary in bytes: + // Measured: `356` + // Estimated: `3643` + // Minimum execution time: 22_131_000 picoseconds. + Weight::from_parts(22_628_000, 0) + .saturating_add(Weight::from_parts(0, 3643)) + .saturating_add(T::DbWeight::get().reads(2)) + .saturating_add(T::DbWeight::get().writes(4)) + } + /// Storage: `Uniques::Class` (r:1 w:1) + /// Proof: `Uniques::Class` (`max_values`: None, `max_size`: Some(178), added: 2653, mode: `MaxEncodedLen`) + fn set_team() -> Weight { + // Proof Size summary in bytes: + // Measured: `282` + // Estimated: `3643` + // Minimum execution time: 13_841_000 picoseconds. + Weight::from_parts(14_408_000, 0) + .saturating_add(Weight::from_parts(0, 3643)) + .saturating_add(T::DbWeight::get().reads(1)) + .saturating_add(T::DbWeight::get().writes(1)) + } + /// Storage: `Uniques::Class` (r:1 w:1) + /// Proof: `Uniques::Class` (`max_values`: None, `max_size`: Some(178), added: 2653, mode: `MaxEncodedLen`) + /// Storage: `Uniques::ClassAccount` (r:0 w:1) + /// Proof: `Uniques::ClassAccount` (`max_values`: None, `max_size`: Some(68), added: 2543, mode: `MaxEncodedLen`) + fn force_item_status() -> Weight { + // Proof Size summary in bytes: + // Measured: `282` + // Estimated: `3643` + // Minimum execution time: 16_954_000 picoseconds. + Weight::from_parts(17_482_000, 0) + .saturating_add(Weight::from_parts(0, 3643)) + .saturating_add(T::DbWeight::get().reads(1)) + .saturating_add(T::DbWeight::get().writes(2)) + } + /// Storage: `Uniques::Class` (r:1 w:1) + /// Proof: `Uniques::Class` (`max_values`: None, `max_size`: Some(178), added: 2653, mode: `MaxEncodedLen`) + /// Storage: `Uniques::InstanceMetadataOf` (r:1 w:0) + /// Proof: `Uniques::InstanceMetadataOf` (`max_values`: None, `max_size`: Some(187), added: 2662, mode: `MaxEncodedLen`) + /// Storage: `Uniques::Attribute` (r:1 w:1) + /// Proof: `Uniques::Attribute` (`max_values`: None, `max_size`: Some(172), added: 2647, mode: `MaxEncodedLen`) + fn set_attribute() -> Weight { + // Proof Size summary in bytes: + // Measured: `559` + // Estimated: `3652` + // Minimum execution time: 38_493_000 picoseconds. + Weight::from_parts(39_513_000, 0) + .saturating_add(Weight::from_parts(0, 3652)) + .saturating_add(T::DbWeight::get().reads(3)) + .saturating_add(T::DbWeight::get().writes(2)) + } + /// Storage: `Uniques::Class` (r:1 w:1) + /// Proof: `Uniques::Class` (`max_values`: None, `max_size`: Some(178), added: 2653, mode: `MaxEncodedLen`) + /// Storage: `Uniques::InstanceMetadataOf` (r:1 w:0) + /// Proof: `Uniques::InstanceMetadataOf` (`max_values`: None, `max_size`: Some(187), added: 2662, mode: `MaxEncodedLen`) + /// Storage: `Uniques::Attribute` (r:1 w:1) + /// Proof: `Uniques::Attribute` (`max_values`: None, `max_size`: Some(172), added: 2647, mode: `MaxEncodedLen`) + fn clear_attribute() -> Weight { + // Proof Size summary in bytes: + // Measured: `756` + // Estimated: `3652` + // Minimum execution time: 37_918_000 picoseconds. + Weight::from_parts(38_666_000, 0) + .saturating_add(Weight::from_parts(0, 3652)) + .saturating_add(T::DbWeight::get().reads(3)) + .saturating_add(T::DbWeight::get().writes(2)) + } + /// Storage: `Uniques::Class` (r:1 w:1) + /// Proof: `Uniques::Class` (`max_values`: None, `max_size`: Some(178), added: 2653, mode: `MaxEncodedLen`) + /// Storage: `Uniques::InstanceMetadataOf` (r:1 w:1) + /// Proof: `Uniques::InstanceMetadataOf` (`max_values`: None, `max_size`: Some(187), added: 2662, mode: `MaxEncodedLen`) + fn set_metadata() -> Weight { + // Proof Size summary in bytes: + // Measured: `348` + // Estimated: `3652` + // Minimum execution time: 29_810_000 picoseconds. + Weight::from_parts(30_363_000, 0) + .saturating_add(Weight::from_parts(0, 3652)) + .saturating_add(T::DbWeight::get().reads(2)) + .saturating_add(T::DbWeight::get().writes(2)) + } + /// Storage: `Uniques::Class` (r:1 w:1) + /// Proof: `Uniques::Class` (`max_values`: None, `max_size`: Some(178), added: 2653, mode: `MaxEncodedLen`) + /// Storage: `Uniques::InstanceMetadataOf` (r:1 w:1) + /// Proof: `Uniques::InstanceMetadataOf` (`max_values`: None, `max_size`: Some(187), added: 2662, mode: `MaxEncodedLen`) + fn clear_metadata() -> Weight { + // Proof Size summary in bytes: + // Measured: `559` + // Estimated: `3652` + // Minimum execution time: 30_877_000 picoseconds. + Weight::from_parts(31_430_000, 0) + .saturating_add(Weight::from_parts(0, 3652)) + .saturating_add(T::DbWeight::get().reads(2)) + .saturating_add(T::DbWeight::get().writes(2)) + } + /// Storage: `Uniques::Class` (r:1 w:1) + /// Proof: `Uniques::Class` (`max_values`: None, `max_size`: Some(178), added: 2653, mode: `MaxEncodedLen`) + /// Storage: `Uniques::ClassMetadataOf` (r:1 w:1) + /// Proof: `Uniques::ClassMetadataOf` (`max_values`: None, `max_size`: Some(167), added: 2642, mode: `MaxEncodedLen`) + fn set_collection_metadata() -> Weight { + // Proof Size summary in bytes: + // Measured: `282` + // Estimated: `3643` + // Minimum execution time: 30_478_000 picoseconds. + Weight::from_parts(31_065_000, 0) + .saturating_add(Weight::from_parts(0, 3643)) + .saturating_add(T::DbWeight::get().reads(2)) + .saturating_add(T::DbWeight::get().writes(2)) + } + /// Storage: `Uniques::Class` (r:1 w:0) + /// Proof: `Uniques::Class` (`max_values`: None, `max_size`: Some(178), added: 2653, mode: `MaxEncodedLen`) + /// Storage: `Uniques::ClassMetadataOf` (r:1 w:1) + /// Proof: `Uniques::ClassMetadataOf` (`max_values`: None, `max_size`: Some(167), added: 2642, mode: `MaxEncodedLen`) + fn clear_collection_metadata() -> Weight { + // Proof Size summary in bytes: + // Measured: `473` + // Estimated: `3643` + // Minimum execution time: 29_582_000 picoseconds. + Weight::from_parts(30_160_000, 0) + .saturating_add(Weight::from_parts(0, 3643)) + .saturating_add(T::DbWeight::get().reads(2)) + .saturating_add(T::DbWeight::get().writes(1)) + } + /// Storage: `Uniques::Class` (r:1 w:0) + /// Proof: `Uniques::Class` (`max_values`: None, `max_size`: Some(178), added: 2653, mode: `MaxEncodedLen`) + /// Storage: `Uniques::Asset` (r:1 w:1) + /// Proof: `Uniques::Asset` (`max_values`: None, `max_size`: Some(122), added: 2597, mode: `MaxEncodedLen`) + fn approve_transfer() -> Weight { + // Proof Size summary in bytes: + // Measured: `428` + // Estimated: `3643` + // Minimum execution time: 19_328_000 picoseconds. + Weight::from_parts(19_866_000, 0) + .saturating_add(Weight::from_parts(0, 3643)) + .saturating_add(T::DbWeight::get().reads(2)) + .saturating_add(T::DbWeight::get().writes(1)) + } + /// Storage: `Uniques::Class` (r:1 w:0) + /// Proof: `Uniques::Class` (`max_values`: None, `max_size`: Some(178), added: 2653, mode: `MaxEncodedLen`) + /// Storage: `Uniques::Asset` (r:1 w:1) + /// Proof: `Uniques::Asset` (`max_values`: None, `max_size`: Some(122), added: 2597, mode: `MaxEncodedLen`) + fn cancel_approval() -> Weight { + // Proof Size summary in bytes: + // Measured: `461` + // Estimated: `3643` + // Minimum execution time: 19_131_000 picoseconds. + Weight::from_parts(19_569_000, 0) + .saturating_add(Weight::from_parts(0, 3643)) + .saturating_add(T::DbWeight::get().reads(2)) + .saturating_add(T::DbWeight::get().writes(1)) + } + /// Storage: `Uniques::OwnershipAcceptance` (r:1 w:1) + /// Proof: `Uniques::OwnershipAcceptance` (`max_values`: None, `max_size`: Some(52), added: 2527, mode: `MaxEncodedLen`) + fn set_accept_ownership() -> Weight { + // Proof Size summary in bytes: + // Measured: `42` + // Estimated: `3517` + // Minimum execution time: 15_212_000 picoseconds. + Weight::from_parts(15_691_000, 0) + .saturating_add(Weight::from_parts(0, 3517)) + .saturating_add(T::DbWeight::get().reads(1)) + .saturating_add(T::DbWeight::get().writes(1)) + } + /// Storage: `Uniques::CollectionMaxSupply` (r:1 w:1) + /// Proof: `Uniques::CollectionMaxSupply` (`max_values`: None, `max_size`: Some(24), added: 2499, mode: `MaxEncodedLen`) + /// Storage: `Uniques::Class` (r:1 w:0) + /// Proof: `Uniques::Class` (`max_values`: None, `max_size`: Some(178), added: 2653, mode: `MaxEncodedLen`) + fn set_collection_max_supply() -> Weight { + // Proof Size summary in bytes: + // Measured: `282` + // Estimated: `3643` + // Minimum execution time: 16_290_000 picoseconds. + Weight::from_parts(16_654_000, 0) + .saturating_add(Weight::from_parts(0, 3643)) + .saturating_add(T::DbWeight::get().reads(2)) + .saturating_add(T::DbWeight::get().writes(1)) + } + /// Storage: `Uniques::Asset` (r:1 w:0) + /// Proof: `Uniques::Asset` (`max_values`: None, `max_size`: Some(122), added: 2597, mode: `MaxEncodedLen`) + /// Storage: `Uniques::ItemPriceOf` (r:0 w:1) + /// Proof: `Uniques::ItemPriceOf` (`max_values`: None, `max_size`: Some(89), added: 2564, mode: `MaxEncodedLen`) + fn set_price() -> Weight { + // Proof Size summary in bytes: + // Measured: `259` + // Estimated: `3587` + // Minimum execution time: 16_095_000 picoseconds. + Weight::from_parts(16_555_000, 0) + .saturating_add(Weight::from_parts(0, 3587)) + .saturating_add(T::DbWeight::get().reads(1)) + .saturating_add(T::DbWeight::get().writes(1)) + } + /// Storage: `Uniques::Asset` (r:1 w:1) + /// Proof: `Uniques::Asset` (`max_values`: None, `max_size`: Some(122), added: 2597, mode: `MaxEncodedLen`) + /// Storage: `Uniques::ItemPriceOf` (r:1 w:1) + /// Proof: `Uniques::ItemPriceOf` (`max_values`: None, `max_size`: Some(89), added: 2564, mode: `MaxEncodedLen`) + /// Storage: `Uniques::Class` (r:1 w:0) + /// Proof: `Uniques::Class` (`max_values`: None, `max_size`: Some(178), added: 2653, mode: `MaxEncodedLen`) + /// Storage: `Uniques::Account` (r:0 w:2) + /// Proof: `Uniques::Account` (`max_values`: None, `max_size`: Some(88), added: 2563, mode: `MaxEncodedLen`) + fn buy_item() -> Weight { + // Proof Size summary in bytes: + // Measured: `540` + // Estimated: `3643` + // Minimum execution time: 35_506_000 picoseconds. + Weight::from_parts(36_305_000, 0) + .saturating_add(Weight::from_parts(0, 3643)) + .saturating_add(T::DbWeight::get().reads(3)) + .saturating_add(T::DbWeight::get().writes(4)) + } +} diff --git a/cumulus/parachains/runtimes/assets/asset-hub-kusama/src/weights/pallet_utility.rs b/cumulus/parachains/runtimes/assets/asset-hub-kusama/src/weights/pallet_utility.rs new file mode 100644 index 000000000000..680e65a2dcf9 --- /dev/null +++ b/cumulus/parachains/runtimes/assets/asset-hub-kusama/src/weights/pallet_utility.rs @@ -0,0 +1,102 @@ +// Copyright (C) Parity Technologies (UK) Ltd. +// This file is part of Cumulus. + +// Cumulus 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. + +// Cumulus 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 Cumulus. If not, see . + +//! Autogenerated weights for `pallet_utility` +//! +//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev +//! DATE: 2023-07-31, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! WORST CASE MAP SIZE: `1000000` +//! HOSTNAME: `runner-ynta1nyy-project-238-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz` +//! EXECUTION: ``, WASM-EXECUTION: `Compiled`, CHAIN: `Some("asset-hub-kusama-dev")`, DB CACHE: 1024 + +// Executed Command: +// ./target/production/polkadot-parachain +// benchmark +// pallet +// --chain=asset-hub-kusama-dev +// --wasm-execution=compiled +// --pallet=pallet_utility +// --no-storage-info +// --no-median-slopes +// --no-min-squares +// --extrinsic=* +// --steps=50 +// --repeat=20 +// --json +// --header=./file_header.txt +// --output=./parachains/runtimes/assets/asset-hub-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_utility`. +pub struct WeightInfo(PhantomData); +impl pallet_utility::WeightInfo for WeightInfo { + /// The range of component `c` is `[0, 1000]`. + fn batch(c: u32, ) -> Weight { + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 7_103_000 picoseconds. + Weight::from_parts(7_226_000, 0) + .saturating_add(Weight::from_parts(0, 0)) + // Standard Error: 2_732 + .saturating_add(Weight::from_parts(6_560_347, 0).saturating_mul(c.into())) + } + fn as_derivative() -> Weight { + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 5_208_000 picoseconds. + Weight::from_parts(5_480_000, 0) + .saturating_add(Weight::from_parts(0, 0)) + } + /// The range of component `c` is `[0, 1000]`. + fn batch_all(c: u32, ) -> Weight { + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 7_070_000 picoseconds. + Weight::from_parts(1_321_270, 0) + .saturating_add(Weight::from_parts(0, 0)) + // Standard Error: 3_454 + .saturating_add(Weight::from_parts(6_864_640, 0).saturating_mul(c.into())) + } + fn dispatch_as() -> Weight { + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 9_255_000 picoseconds. + Weight::from_parts(9_683_000, 0) + .saturating_add(Weight::from_parts(0, 0)) + } + /// The range of component `c` is `[0, 1000]`. + fn force_batch(c: u32, ) -> Weight { + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 6_852_000 picoseconds. + Weight::from_parts(7_007_000, 0) + .saturating_add(Weight::from_parts(0, 0)) + // Standard Error: 1_745 + .saturating_add(Weight::from_parts(6_562_902, 0).saturating_mul(c.into())) + } +} diff --git a/cumulus/parachains/runtimes/assets/asset-hub-kusama/src/weights/pallet_xcm.rs b/cumulus/parachains/runtimes/assets/asset-hub-kusama/src/weights/pallet_xcm.rs new file mode 100644 index 000000000000..c2ed67d2f5d4 --- /dev/null +++ b/cumulus/parachains/runtimes/assets/asset-hub-kusama/src/weights/pallet_xcm.rs @@ -0,0 +1,290 @@ +// Copyright (C) Parity Technologies (UK) Ltd. +// This file is part of Cumulus. + +// Cumulus 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. + +// Cumulus 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 Cumulus. If not, see . + +//! Autogenerated weights for `pallet_xcm` +//! +//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev +//! DATE: 2023-07-31, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! WORST CASE MAP SIZE: `1000000` +//! HOSTNAME: `runner-ynta1nyy-project-238-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz` +//! EXECUTION: ``, WASM-EXECUTION: `Compiled`, CHAIN: `Some("asset-hub-kusama-dev")`, DB CACHE: 1024 + +// Executed Command: +// ./target/production/polkadot-parachain +// benchmark +// pallet +// --chain=asset-hub-kusama-dev +// --wasm-execution=compiled +// --pallet=pallet_xcm +// --no-storage-info +// --no-median-slopes +// --no-min-squares +// --extrinsic=* +// --steps=50 +// --repeat=20 +// --json +// --header=./file_header.txt +// --output=./parachains/runtimes/assets/asset-hub-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_xcm`. +pub struct WeightInfo(PhantomData); +impl pallet_xcm::WeightInfo for WeightInfo { + /// Storage: `PolkadotXcm::SupportedVersion` (r:1 w:0) + /// Proof: `PolkadotXcm::SupportedVersion` (`max_values`: None, `max_size`: None, mode: `Measured`) + /// Storage: `PolkadotXcm::VersionDiscoveryQueue` (r:1 w:1) + /// Proof: `PolkadotXcm::VersionDiscoveryQueue` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `PolkadotXcm::SafeXcmVersion` (r:1 w:0) + /// Proof: `PolkadotXcm::SafeXcmVersion` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `ParachainSystem::HostConfiguration` (r:1 w:0) + /// Proof: `ParachainSystem::HostConfiguration` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `ParachainSystem::PendingUpwardMessages` (r:1 w:1) + /// Proof: `ParachainSystem::PendingUpwardMessages` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + fn send() -> Weight { + // Proof Size summary in bytes: + // Measured: `109` + // Estimated: `3574` + // Minimum execution time: 30_015_000 picoseconds. + Weight::from_parts(30_576_000, 0) + .saturating_add(Weight::from_parts(0, 3574)) + .saturating_add(T::DbWeight::get().reads(5)) + .saturating_add(T::DbWeight::get().writes(2)) + } + /// Storage: `ParachainInfo::ParachainId` (r:1 w:0) + /// Proof: `ParachainInfo::ParachainId` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`) + fn teleport_assets() -> Weight { + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `1489` + // Minimum execution time: 24_785_000 picoseconds. + Weight::from_parts(25_097_000, 0) + .saturating_add(Weight::from_parts(0, 1489)) + .saturating_add(T::DbWeight::get().reads(1)) + } + /// Storage: `ParachainInfo::ParachainId` (r:1 w:0) + /// Proof: `ParachainInfo::ParachainId` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`) + fn reserve_transfer_assets() -> Weight { + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `1489` + // Minimum execution time: 18_561_000 picoseconds. + Weight::from_parts(19_121_000, 0) + .saturating_add(Weight::from_parts(0, 1489)) + .saturating_add(T::DbWeight::get().reads(1)) + } + /// Storage: `Benchmark::Override` (r:0 w:0) + /// Proof: `Benchmark::Override` (`max_values`: None, `max_size`: None, mode: `Measured`) + fn execute() -> Weight { + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 18_446_744_073_709_551_000 picoseconds. + Weight::from_parts(18_446_744_073_709_551_000, 0) + .saturating_add(Weight::from_parts(0, 0)) + } + /// Storage: `PolkadotXcm::SupportedVersion` (r:0 w:1) + /// Proof: `PolkadotXcm::SupportedVersion` (`max_values`: None, `max_size`: None, mode: `Measured`) + fn force_xcm_version() -> Weight { + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 9_298_000 picoseconds. + Weight::from_parts(9_721_000, 0) + .saturating_add(Weight::from_parts(0, 0)) + .saturating_add(T::DbWeight::get().writes(1)) + } + /// Storage: `PolkadotXcm::SafeXcmVersion` (r:0 w:1) + /// Proof: `PolkadotXcm::SafeXcmVersion` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + fn force_default_xcm_version() -> Weight { + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 2_912_000 picoseconds. + Weight::from_parts(3_262_000, 0) + .saturating_add(Weight::from_parts(0, 0)) + .saturating_add(T::DbWeight::get().writes(1)) + } + /// Storage: `PolkadotXcm::VersionNotifiers` (r:1 w:1) + /// Proof: `PolkadotXcm::VersionNotifiers` (`max_values`: None, `max_size`: None, mode: `Measured`) + /// Storage: `PolkadotXcm::QueryCounter` (r:1 w:1) + /// Proof: `PolkadotXcm::QueryCounter` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `PolkadotXcm::SupportedVersion` (r:1 w:0) + /// Proof: `PolkadotXcm::SupportedVersion` (`max_values`: None, `max_size`: None, mode: `Measured`) + /// Storage: `PolkadotXcm::VersionDiscoveryQueue` (r:1 w:1) + /// Proof: `PolkadotXcm::VersionDiscoveryQueue` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `PolkadotXcm::SafeXcmVersion` (r:1 w:0) + /// Proof: `PolkadotXcm::SafeXcmVersion` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `ParachainSystem::HostConfiguration` (r:1 w:0) + /// Proof: `ParachainSystem::HostConfiguration` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `ParachainSystem::PendingUpwardMessages` (r:1 w:1) + /// Proof: `ParachainSystem::PendingUpwardMessages` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `PolkadotXcm::Queries` (r:0 w:1) + /// Proof: `PolkadotXcm::Queries` (`max_values`: None, `max_size`: None, mode: `Measured`) + fn force_subscribe_version_notify() -> Weight { + // Proof Size summary in bytes: + // Measured: `109` + // Estimated: `3574` + // Minimum execution time: 35_127_000 picoseconds. + Weight::from_parts(36_317_000, 0) + .saturating_add(Weight::from_parts(0, 3574)) + .saturating_add(T::DbWeight::get().reads(7)) + .saturating_add(T::DbWeight::get().writes(5)) + } + /// Storage: `PolkadotXcm::VersionNotifiers` (r:1 w:1) + /// Proof: `PolkadotXcm::VersionNotifiers` (`max_values`: None, `max_size`: None, mode: `Measured`) + /// Storage: `PolkadotXcm::SupportedVersion` (r:1 w:0) + /// Proof: `PolkadotXcm::SupportedVersion` (`max_values`: None, `max_size`: None, mode: `Measured`) + /// Storage: `PolkadotXcm::VersionDiscoveryQueue` (r:1 w:1) + /// Proof: `PolkadotXcm::VersionDiscoveryQueue` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `PolkadotXcm::SafeXcmVersion` (r:1 w:0) + /// Proof: `PolkadotXcm::SafeXcmVersion` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `ParachainSystem::HostConfiguration` (r:1 w:0) + /// Proof: `ParachainSystem::HostConfiguration` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `ParachainSystem::PendingUpwardMessages` (r:1 w:1) + /// Proof: `ParachainSystem::PendingUpwardMessages` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `PolkadotXcm::Queries` (r:0 w:1) + /// Proof: `PolkadotXcm::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: 36_634_000 picoseconds. + Weight::from_parts(37_983_000, 0) + .saturating_add(Weight::from_parts(0, 3791)) + .saturating_add(T::DbWeight::get().reads(6)) + .saturating_add(T::DbWeight::get().writes(4)) + } + /// Storage: `PolkadotXcm::XcmExecutionSuspended` (r:0 w:1) + /// Proof: `PolkadotXcm::XcmExecutionSuspended` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + fn force_suspension() -> Weight { + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 2_940_000 picoseconds. + Weight::from_parts(3_085_000, 0) + .saturating_add(Weight::from_parts(0, 0)) + .saturating_add(T::DbWeight::get().writes(1)) + } + /// Storage: `PolkadotXcm::SupportedVersion` (r:4 w:2) + /// Proof: `PolkadotXcm::SupportedVersion` (`max_values`: None, `max_size`: None, mode: `Measured`) + fn migrate_supported_version() -> Weight { + // Proof Size summary in bytes: + // Measured: `162` + // Estimated: `11052` + // Minimum execution time: 17_400_000 picoseconds. + Weight::from_parts(17_759_000, 0) + .saturating_add(Weight::from_parts(0, 11052)) + .saturating_add(T::DbWeight::get().reads(4)) + .saturating_add(T::DbWeight::get().writes(2)) + } + /// Storage: `PolkadotXcm::VersionNotifiers` (r:4 w:2) + /// Proof: `PolkadotXcm::VersionNotifiers` (`max_values`: None, `max_size`: None, mode: `Measured`) + fn migrate_version_notifiers() -> Weight { + // Proof Size summary in bytes: + // Measured: `166` + // Estimated: `11056` + // Minimum execution time: 17_287_000 picoseconds. + Weight::from_parts(17_678_000, 0) + .saturating_add(Weight::from_parts(0, 11056)) + .saturating_add(T::DbWeight::get().reads(4)) + .saturating_add(T::DbWeight::get().writes(2)) + } + /// Storage: `PolkadotXcm::VersionNotifyTargets` (r:5 w:0) + /// Proof: `PolkadotXcm::VersionNotifyTargets` (`max_values`: None, `max_size`: None, mode: `Measured`) + fn already_notified_target() -> Weight { + // Proof Size summary in bytes: + // Measured: `173` + // Estimated: `13538` + // Minimum execution time: 18_941_000 picoseconds. + Weight::from_parts(19_285_000, 0) + .saturating_add(Weight::from_parts(0, 13538)) + .saturating_add(T::DbWeight::get().reads(5)) + } + /// Storage: `PolkadotXcm::VersionNotifyTargets` (r:2 w:1) + /// Proof: `PolkadotXcm::VersionNotifyTargets` (`max_values`: None, `max_size`: None, mode: `Measured`) + /// Storage: `PolkadotXcm::SupportedVersion` (r:1 w:0) + /// Proof: `PolkadotXcm::SupportedVersion` (`max_values`: None, `max_size`: None, mode: `Measured`) + /// Storage: `PolkadotXcm::VersionDiscoveryQueue` (r:1 w:1) + /// Proof: `PolkadotXcm::VersionDiscoveryQueue` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `PolkadotXcm::SafeXcmVersion` (r:1 w:0) + /// Proof: `PolkadotXcm::SafeXcmVersion` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `ParachainSystem::HostConfiguration` (r:1 w:0) + /// Proof: `ParachainSystem::HostConfiguration` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `ParachainSystem::PendingUpwardMessages` (r:1 w:1) + /// Proof: `ParachainSystem::PendingUpwardMessages` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + fn notify_current_targets() -> Weight { + // Proof Size summary in bytes: + // Measured: `176` + // Estimated: `6116` + // Minimum execution time: 32_668_000 picoseconds. + Weight::from_parts(33_533_000, 0) + .saturating_add(Weight::from_parts(0, 6116)) + .saturating_add(T::DbWeight::get().reads(7)) + .saturating_add(T::DbWeight::get().writes(3)) + } + /// Storage: `PolkadotXcm::VersionNotifyTargets` (r:3 w:0) + /// Proof: `PolkadotXcm::VersionNotifyTargets` (`max_values`: None, `max_size`: None, mode: `Measured`) + fn notify_target_migration_fail() -> Weight { + // Proof Size summary in bytes: + // Measured: `206` + // Estimated: `8621` + // Minimum execution time: 9_182_000 picoseconds. + Weight::from_parts(9_498_000, 0) + .saturating_add(Weight::from_parts(0, 8621)) + .saturating_add(T::DbWeight::get().reads(3)) + } + /// Storage: `PolkadotXcm::VersionNotifyTargets` (r:4 w:2) + /// Proof: `PolkadotXcm::VersionNotifyTargets` (`max_values`: None, `max_size`: None, mode: `Measured`) + fn migrate_version_notify_targets() -> Weight { + // Proof Size summary in bytes: + // Measured: `173` + // Estimated: `11063` + // Minimum execution time: 17_519_000 picoseconds. + Weight::from_parts(17_943_000, 0) + .saturating_add(Weight::from_parts(0, 11063)) + .saturating_add(T::DbWeight::get().reads(4)) + .saturating_add(T::DbWeight::get().writes(2)) + } + /// Storage: `PolkadotXcm::VersionNotifyTargets` (r:4 w:2) + /// Proof: `PolkadotXcm::VersionNotifyTargets` (`max_values`: None, `max_size`: None, mode: `Measured`) + /// Storage: `PolkadotXcm::SupportedVersion` (r:1 w:0) + /// Proof: `PolkadotXcm::SupportedVersion` (`max_values`: None, `max_size`: None, mode: `Measured`) + /// Storage: `PolkadotXcm::VersionDiscoveryQueue` (r:1 w:1) + /// Proof: `PolkadotXcm::VersionDiscoveryQueue` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `PolkadotXcm::SafeXcmVersion` (r:1 w:0) + /// Proof: `PolkadotXcm::SafeXcmVersion` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `ParachainSystem::HostConfiguration` (r:1 w:0) + /// Proof: `ParachainSystem::HostConfiguration` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `ParachainSystem::PendingUpwardMessages` (r:1 w:1) + /// Proof: `ParachainSystem::PendingUpwardMessages` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + fn migrate_and_notify_old_targets() -> Weight { + // Proof Size summary in bytes: + // Measured: `179` + // Estimated: `11069` + // Minimum execution time: 38_680_000 picoseconds. + Weight::from_parts(39_984_000, 0) + .saturating_add(Weight::from_parts(0, 11069)) + .saturating_add(T::DbWeight::get().reads(9)) + .saturating_add(T::DbWeight::get().writes(4)) + } +} diff --git a/cumulus/parachains/runtimes/assets/asset-hub-kusama/src/weights/paritydb_weights.rs b/cumulus/parachains/runtimes/assets/asset-hub-kusama/src/weights/paritydb_weights.rs new file mode 100644 index 000000000000..25679703831a --- /dev/null +++ b/cumulus/parachains/runtimes/assets/asset-hub-kusama/src/weights/paritydb_weights.rs @@ -0,0 +1,63 @@ +// This file is part of Substrate. + +// 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. + +pub mod constants { + use frame_support::{ + parameter_types, + weights::{constants, RuntimeDbWeight}, + }; + + parameter_types! { + /// `ParityDB` can be enabled with a feature flag, but is still experimental. These weights + /// are available for brave runtime engineers who may want to try this out as default. + pub const ParityDbWeight: RuntimeDbWeight = RuntimeDbWeight { + read: 8_000 * constants::WEIGHT_REF_TIME_PER_NANOS, + write: 50_000 * constants::WEIGHT_REF_TIME_PER_NANOS, + }; + } + + #[cfg(test)] + mod test_db_weights { + use super::constants::ParityDbWeight as W; + use frame_support::weights::constants; + + /// Checks that all weights exist and have sane values. + // NOTE: If this test fails but you are sure that the generated values are fine, + // you can delete it. + #[test] + fn sane() { + // At least 1 µs. + assert!( + W::get().reads(1).ref_time() >= constants::WEIGHT_REF_TIME_PER_MICROS, + "Read weight should be at least 1 µs." + ); + assert!( + W::get().writes(1).ref_time() >= constants::WEIGHT_REF_TIME_PER_MICROS, + "Write weight should be at least 1 µs." + ); + // At most 1 ms. + assert!( + W::get().reads(1).ref_time() <= constants::WEIGHT_REF_TIME_PER_MILLIS, + "Read weight should be at most 1 ms." + ); + assert!( + W::get().writes(1).ref_time() <= constants::WEIGHT_REF_TIME_PER_MILLIS, + "Write weight should be at most 1 ms." + ); + } + } +} diff --git a/cumulus/parachains/runtimes/assets/asset-hub-kusama/src/weights/rocksdb_weights.rs b/cumulus/parachains/runtimes/assets/asset-hub-kusama/src/weights/rocksdb_weights.rs new file mode 100644 index 000000000000..3dd817aa6f13 --- /dev/null +++ b/cumulus/parachains/runtimes/assets/asset-hub-kusama/src/weights/rocksdb_weights.rs @@ -0,0 +1,63 @@ +// This file is part of Substrate. + +// 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. + +pub mod constants { + use frame_support::{ + parameter_types, + weights::{constants, RuntimeDbWeight}, + }; + + parameter_types! { + /// By default, Substrate uses `RocksDB`, so this will be the weight used throughout + /// the runtime. + pub const RocksDbWeight: RuntimeDbWeight = RuntimeDbWeight { + read: 25_000 * constants::WEIGHT_REF_TIME_PER_NANOS, + write: 100_000 * constants::WEIGHT_REF_TIME_PER_NANOS, + }; + } + + #[cfg(test)] + mod test_db_weights { + use super::constants::RocksDbWeight as W; + use frame_support::weights::constants; + + /// Checks that all weights exist and have sane values. + // NOTE: If this test fails but you are sure that the generated values are fine, + // you can delete it. + #[test] + fn sane() { + // At least 1 µs. + assert!( + W::get().reads(1).ref_time() >= constants::WEIGHT_REF_TIME_PER_MICROS, + "Read weight should be at least 1 µs." + ); + assert!( + W::get().writes(1).ref_time() >= constants::WEIGHT_REF_TIME_PER_MICROS, + "Write weight should be at least 1 µs." + ); + // At most 1 ms. + assert!( + W::get().reads(1).ref_time() <= constants::WEIGHT_REF_TIME_PER_MILLIS, + "Read weight should be at most 1 ms." + ); + assert!( + W::get().writes(1).ref_time() <= constants::WEIGHT_REF_TIME_PER_MILLIS, + "Write weight should be at most 1 ms." + ); + } + } +} diff --git a/cumulus/parachains/runtimes/assets/asset-hub-kusama/src/weights/xcm/mod.rs b/cumulus/parachains/runtimes/assets/asset-hub-kusama/src/weights/xcm/mod.rs new file mode 100644 index 000000000000..ce6e92065156 --- /dev/null +++ b/cumulus/parachains/runtimes/assets/asset-hub-kusama/src/weights/xcm/mod.rs @@ -0,0 +1,245 @@ +// Copyright (C) Parity Technologies (UK) Ltd. +// This file is part of Cumulus. + +// Cumulus 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. + +// Cumulus 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 Cumulus. If not, see . + +mod pallet_xcm_benchmarks_fungible; +mod pallet_xcm_benchmarks_generic; + +use crate::{xcm_config::MaxAssetsIntoHolding, Runtime}; +use frame_support::weights::Weight; +use pallet_xcm_benchmarks_fungible::WeightInfo as XcmFungibleWeight; +use pallet_xcm_benchmarks_generic::WeightInfo as XcmGeneric; +use sp_std::prelude::*; +use xcm::{latest::prelude::*, DoubleEncoded}; + +trait WeighMultiAssets { + fn weigh_multi_assets(&self, weight: Weight) -> Weight; +} + +const MAX_ASSETS: u64 = 100; + +impl WeighMultiAssets for MultiAssetFilter { + fn weigh_multi_assets(&self, weight: Weight) -> Weight { + match self { + Self::Definite(assets) => weight.saturating_mul(assets.inner().iter().count() as u64), + Self::Wild(asset) => match asset { + All => weight.saturating_mul(MAX_ASSETS), + AllOf { fun, .. } => match fun { + WildFungibility::Fungible => weight, + // Magic number 2 has to do with the fact that we could have up to 2 times + // MaxAssetsIntoHolding in the worst-case scenario. + WildFungibility::NonFungible => + weight.saturating_mul((MaxAssetsIntoHolding::get() * 2) as u64), + }, + AllCounted(count) => weight.saturating_mul(MAX_ASSETS.min(*count as u64)), + AllOfCounted { count, .. } => weight.saturating_mul(MAX_ASSETS.min(*count as u64)), + }, + } + } +} + +impl WeighMultiAssets for MultiAssets { + fn weigh_multi_assets(&self, weight: Weight) -> Weight { + weight.saturating_mul(self.inner().iter().count() as u64) + } +} + +pub struct AssetHubKusamaXcmWeight(core::marker::PhantomData); +impl XcmWeightInfo for AssetHubKusamaXcmWeight { + fn withdraw_asset(assets: &MultiAssets) -> Weight { + assets.weigh_multi_assets(XcmFungibleWeight::::withdraw_asset()) + } + fn reserve_asset_deposited(assets: &MultiAssets) -> Weight { + assets.weigh_multi_assets(XcmFungibleWeight::::reserve_asset_deposited()) + } + fn receive_teleported_asset(assets: &MultiAssets) -> Weight { + assets.weigh_multi_assets(XcmFungibleWeight::::receive_teleported_asset()) + } + fn query_response( + _query_id: &u64, + _response: &Response, + _max_weight: &Weight, + _querier: &Option, + ) -> Weight { + XcmGeneric::::query_response() + } + fn transfer_asset(assets: &MultiAssets, _dest: &MultiLocation) -> Weight { + assets.weigh_multi_assets(XcmFungibleWeight::::transfer_asset()) + } + fn transfer_reserve_asset( + assets: &MultiAssets, + _dest: &MultiLocation, + _xcm: &Xcm<()>, + ) -> Weight { + assets.weigh_multi_assets(XcmFungibleWeight::::transfer_reserve_asset()) + } + fn transact( + _origin_type: &OriginKind, + _require_weight_at_most: &Weight, + _call: &DoubleEncoded, + ) -> Weight { + XcmGeneric::::transact() + } + fn hrmp_new_channel_open_request( + _sender: &u32, + _max_message_size: &u32, + _max_capacity: &u32, + ) -> Weight { + // XCM Executor does not currently support HRMP channel operations + Weight::MAX + } + fn hrmp_channel_accepted(_recipient: &u32) -> Weight { + // XCM Executor does not currently support HRMP channel operations + Weight::MAX + } + fn hrmp_channel_closing(_initiator: &u32, _sender: &u32, _recipient: &u32) -> Weight { + // XCM Executor does not currently support HRMP channel operations + Weight::MAX + } + fn clear_origin() -> Weight { + XcmGeneric::::clear_origin() + } + fn descend_origin(_who: &InteriorMultiLocation) -> Weight { + XcmGeneric::::descend_origin() + } + fn report_error(_query_response_info: &QueryResponseInfo) -> Weight { + XcmGeneric::::report_error() + } + + fn deposit_asset(assets: &MultiAssetFilter, _dest: &MultiLocation) -> Weight { + assets.weigh_multi_assets(XcmFungibleWeight::::deposit_asset()) + } + fn deposit_reserve_asset( + assets: &MultiAssetFilter, + _dest: &MultiLocation, + _xcm: &Xcm<()>, + ) -> Weight { + assets.weigh_multi_assets(XcmFungibleWeight::::deposit_reserve_asset()) + } + fn exchange_asset(_give: &MultiAssetFilter, _receive: &MultiAssets, _maximal: &bool) -> Weight { + Weight::MAX + } + fn initiate_reserve_withdraw( + assets: &MultiAssetFilter, + _reserve: &MultiLocation, + _xcm: &Xcm<()>, + ) -> Weight { + assets.weigh_multi_assets(XcmFungibleWeight::::initiate_reserve_withdraw()) + } + fn initiate_teleport( + assets: &MultiAssetFilter, + _dest: &MultiLocation, + _xcm: &Xcm<()>, + ) -> Weight { + assets.weigh_multi_assets(XcmFungibleWeight::::initiate_teleport()) + } + fn report_holding(_response_info: &QueryResponseInfo, _assets: &MultiAssetFilter) -> Weight { + XcmGeneric::::report_holding() + } + fn buy_execution(_fees: &MultiAsset, _weight_limit: &WeightLimit) -> Weight { + XcmGeneric::::buy_execution() + } + fn refund_surplus() -> Weight { + XcmGeneric::::refund_surplus() + } + fn set_error_handler(_xcm: &Xcm) -> Weight { + XcmGeneric::::set_error_handler() + } + fn set_appendix(_xcm: &Xcm) -> Weight { + XcmGeneric::::set_appendix() + } + fn clear_error() -> Weight { + XcmGeneric::::clear_error() + } + fn claim_asset(_assets: &MultiAssets, _ticket: &MultiLocation) -> Weight { + XcmGeneric::::claim_asset() + } + fn trap(_code: &u64) -> Weight { + XcmGeneric::::trap() + } + fn subscribe_version(_query_id: &QueryId, _max_response_weight: &Weight) -> Weight { + XcmGeneric::::subscribe_version() + } + fn unsubscribe_version() -> Weight { + XcmGeneric::::unsubscribe_version() + } + fn burn_asset(assets: &MultiAssets) -> Weight { + assets.weigh_multi_assets(XcmGeneric::::burn_asset()) + } + fn expect_asset(assets: &MultiAssets) -> Weight { + assets.weigh_multi_assets(XcmGeneric::::expect_asset()) + } + fn expect_origin(_origin: &Option) -> Weight { + XcmGeneric::::expect_origin() + } + fn expect_error(_error: &Option<(u32, XcmError)>) -> Weight { + XcmGeneric::::expect_error() + } + fn expect_transact_status(_transact_status: &MaybeErrorCode) -> Weight { + XcmGeneric::::expect_transact_status() + } + fn query_pallet(_module_name: &Vec, _response_info: &QueryResponseInfo) -> Weight { + XcmGeneric::::query_pallet() + } + fn expect_pallet( + _index: &u32, + _name: &Vec, + _module_name: &Vec, + _crate_major: &u32, + _min_crate_minor: &u32, + ) -> Weight { + XcmGeneric::::expect_pallet() + } + fn report_transact_status(_response_info: &QueryResponseInfo) -> Weight { + XcmGeneric::::report_transact_status() + } + fn clear_transact_status() -> Weight { + XcmGeneric::::clear_transact_status() + } + fn universal_origin(_: &Junction) -> Weight { + Weight::MAX + } + fn export_message(_: &NetworkId, _: &Junctions, _: &Xcm<()>) -> Weight { + Weight::MAX + } + fn lock_asset(_: &MultiAsset, _: &MultiLocation) -> Weight { + Weight::MAX + } + fn unlock_asset(_: &MultiAsset, _: &MultiLocation) -> Weight { + Weight::MAX + } + fn note_unlockable(_: &MultiAsset, _: &MultiLocation) -> Weight { + Weight::MAX + } + fn request_unlock(_: &MultiAsset, _: &MultiLocation) -> Weight { + Weight::MAX + } + fn set_fees_mode(_: &bool) -> Weight { + XcmGeneric::::set_fees_mode() + } + fn set_topic(_topic: &[u8; 32]) -> Weight { + XcmGeneric::::set_topic() + } + fn clear_topic() -> Weight { + XcmGeneric::::clear_topic() + } + fn alias_origin(_: &MultiLocation) -> Weight { + // XCM Executor does not currently support alias origin operations + Weight::MAX + } + fn unpaid_execution(_: &WeightLimit, _: &Option) -> Weight { + XcmGeneric::::unpaid_execution() + } +} diff --git a/cumulus/parachains/runtimes/assets/asset-hub-kusama/src/weights/xcm/pallet_xcm_benchmarks_fungible.rs b/cumulus/parachains/runtimes/assets/asset-hub-kusama/src/weights/xcm/pallet_xcm_benchmarks_fungible.rs new file mode 100644 index 000000000000..9b8611fd6637 --- /dev/null +++ b/cumulus/parachains/runtimes/assets/asset-hub-kusama/src/weights/xcm/pallet_xcm_benchmarks_fungible.rs @@ -0,0 +1,188 @@ +// Copyright (C) Parity Technologies (UK) Ltd. +// This file is part of Cumulus. + +// Cumulus 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. + +// Cumulus 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 Cumulus. 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-09-28, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! WORST CASE MAP SIZE: `1000000` +//! HOSTNAME: `runner-nbnwcyh-project-674-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz` +//! WASM-EXECUTION: Compiled, CHAIN: Some("asset-hub-kusama-dev"), DB CACHE: 1024 + +// Executed Command: +// target/production/polkadot-parachain +// benchmark +// pallet +// --steps=50 +// --repeat=20 +// --extrinsic=* +// --wasm-execution=compiled +// --heap-pages=4096 +// --json-file=/builds/parity/mirrors/polkadot-sdk/.git/.artifacts/bench.json +// --pallet=pallet_xcm_benchmarks::fungible +// --chain=asset-hub-kusama-dev +// --header=./cumulus/file_header.txt +// --template=./cumulus/templates/xcm-bench-template.hbs +// --output=./cumulus/parachains/runtimes/assets/asset-hub-kusama/src/weights/xcm/ + +#![cfg_attr(rustfmt, rustfmt_skip)] +#![allow(unused_parens)] +#![allow(unused_imports)] + +use frame_support::{traits::Get, weights::Weight}; +use sp_std::marker::PhantomData; + +/// Weights for `pallet_xcm_benchmarks::fungible`. +pub struct WeightInfo(PhantomData); +impl WeightInfo { + // Storage: `System::Account` (r:1 w:1) + // Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`) + pub fn withdraw_asset() -> Weight { + // Proof Size summary in bytes: + // Measured: `101` + // Estimated: `3593` + // Minimum execution time: 25_602_000 picoseconds. + Weight::from_parts(26_312_000, 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`) + pub fn transfer_asset() -> Weight { + // Proof Size summary in bytes: + // Measured: `101` + // Estimated: `6196` + // Minimum execution time: 51_173_000 picoseconds. + Weight::from_parts(52_221_000, 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: `ParachainInfo::ParachainId` (r:1 w:0) + // Proof: `ParachainInfo::ParachainId` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`) + // Storage: `PolkadotXcm::SupportedVersion` (r:1 w:0) + // Proof: `PolkadotXcm::SupportedVersion` (`max_values`: None, `max_size`: None, mode: `Measured`) + // Storage: `PolkadotXcm::VersionDiscoveryQueue` (r:1 w:1) + // Proof: `PolkadotXcm::VersionDiscoveryQueue` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + // Storage: `PolkadotXcm::SafeXcmVersion` (r:1 w:0) + // Proof: `PolkadotXcm::SafeXcmVersion` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + // Storage: `ParachainSystem::HostConfiguration` (r:1 w:0) + // Proof: `ParachainSystem::HostConfiguration` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + // Storage: `ParachainSystem::PendingUpwardMessages` (r:1 w:1) + // Proof: `ParachainSystem::PendingUpwardMessages` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + pub fn transfer_reserve_asset() -> Weight { + // Proof Size summary in bytes: + // Measured: `246` + // Estimated: `6196` + // Minimum execution time: 74_651_000 picoseconds. + Weight::from_parts(76_500_000, 6196) + .saturating_add(T::DbWeight::get().reads(8)) + .saturating_add(T::DbWeight::get().writes(4)) + } + // Storage: `Benchmark::Override` (r:0 w:0) + // Proof: `Benchmark::Override` (`max_values`: None, `max_size`: None, mode: `Measured`) + pub fn reserve_asset_deposited() -> Weight { + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 18_446_744_073_709_551_000 picoseconds. + Weight::from_parts(18_446_744_073_709_551_000, 0) + } + // Storage: `ParachainInfo::ParachainId` (r:1 w:0) + // Proof: `ParachainInfo::ParachainId` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`) + // Storage: `PolkadotXcm::SupportedVersion` (r:1 w:0) + // Proof: `PolkadotXcm::SupportedVersion` (`max_values`: None, `max_size`: None, mode: `Measured`) + // Storage: `PolkadotXcm::VersionDiscoveryQueue` (r:1 w:1) + // Proof: `PolkadotXcm::VersionDiscoveryQueue` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + // Storage: `PolkadotXcm::SafeXcmVersion` (r:1 w:0) + // Proof: `PolkadotXcm::SafeXcmVersion` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + // Storage: `ParachainSystem::HostConfiguration` (r:1 w:0) + // Proof: `ParachainSystem::HostConfiguration` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + // Storage: `ParachainSystem::PendingUpwardMessages` (r:1 w:1) + // Proof: `ParachainSystem::PendingUpwardMessages` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + pub fn initiate_reserve_withdraw() -> Weight { + // Proof Size summary in bytes: + // Measured: `145` + // Estimated: `3610` + // Minimum execution time: 458_666_000 picoseconds. + Weight::from_parts(470_470_000, 3610) + .saturating_add(T::DbWeight::get().reads(6)) + .saturating_add(T::DbWeight::get().writes(2)) + } + pub fn receive_teleported_asset() -> Weight { + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 3_701_000 picoseconds. + Weight::from_parts(3_887_000, 0) + } + // Storage: `System::Account` (r:1 w:1) + // Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`) + pub fn deposit_asset() -> Weight { + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `3593` + // Minimum execution time: 25_709_000 picoseconds. + Weight::from_parts(26_320_000, 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: `ParachainInfo::ParachainId` (r:1 w:0) + // Proof: `ParachainInfo::ParachainId` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`) + // Storage: `PolkadotXcm::SupportedVersion` (r:1 w:0) + // Proof: `PolkadotXcm::SupportedVersion` (`max_values`: None, `max_size`: None, mode: `Measured`) + // Storage: `PolkadotXcm::VersionDiscoveryQueue` (r:1 w:1) + // Proof: `PolkadotXcm::VersionDiscoveryQueue` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + // Storage: `PolkadotXcm::SafeXcmVersion` (r:1 w:0) + // Proof: `PolkadotXcm::SafeXcmVersion` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + // Storage: `ParachainSystem::HostConfiguration` (r:1 w:0) + // Proof: `ParachainSystem::HostConfiguration` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + // Storage: `ParachainSystem::PendingUpwardMessages` (r:1 w:1) + // Proof: `ParachainSystem::PendingUpwardMessages` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + pub fn deposit_reserve_asset() -> Weight { + // Proof Size summary in bytes: + // Measured: `145` + // Estimated: `3610` + // Minimum execution time: 51_663_000 picoseconds. + Weight::from_parts(52_538_000, 3610) + .saturating_add(T::DbWeight::get().reads(7)) + .saturating_add(T::DbWeight::get().writes(3)) + } + // Storage: `ParachainInfo::ParachainId` (r:1 w:0) + // Proof: `ParachainInfo::ParachainId` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`) + // Storage: `PolkadotXcm::SupportedVersion` (r:1 w:0) + // Proof: `PolkadotXcm::SupportedVersion` (`max_values`: None, `max_size`: None, mode: `Measured`) + // Storage: `PolkadotXcm::VersionDiscoveryQueue` (r:1 w:1) + // Proof: `PolkadotXcm::VersionDiscoveryQueue` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + // Storage: `PolkadotXcm::SafeXcmVersion` (r:1 w:0) + // Proof: `PolkadotXcm::SafeXcmVersion` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + // Storage: `ParachainSystem::HostConfiguration` (r:1 w:0) + // Proof: `ParachainSystem::HostConfiguration` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + // Storage: `ParachainSystem::PendingUpwardMessages` (r:1 w:1) + // Proof: `ParachainSystem::PendingUpwardMessages` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + pub fn initiate_teleport() -> Weight { + // Proof Size summary in bytes: + // Measured: `145` + // Estimated: `3610` + // Minimum execution time: 31_972_000 picoseconds. + Weight::from_parts(32_834_000, 3610) + .saturating_add(T::DbWeight::get().reads(6)) + .saturating_add(T::DbWeight::get().writes(2)) + } +} diff --git a/cumulus/parachains/runtimes/assets/asset-hub-kusama/src/weights/xcm/pallet_xcm_benchmarks_generic.rs b/cumulus/parachains/runtimes/assets/asset-hub-kusama/src/weights/xcm/pallet_xcm_benchmarks_generic.rs new file mode 100644 index 000000000000..625549ecfccf --- /dev/null +++ b/cumulus/parachains/runtimes/assets/asset-hub-kusama/src/weights/xcm/pallet_xcm_benchmarks_generic.rs @@ -0,0 +1,329 @@ +// Copyright (C) Parity Technologies (UK) Ltd. +// This file is part of Cumulus. + +// Cumulus 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. + +// Cumulus 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 Cumulus. 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-07-31, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! WORST CASE MAP SIZE: `1000000` +//! HOSTNAME: `runner-ynta1nyy-project-238-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz` +//! EXECUTION: , WASM-EXECUTION: Compiled, CHAIN: Some("asset-hub-kusama-dev"), DB CACHE: 1024 + +// Executed Command: +// ./target/production/polkadot-parachain +// benchmark +// pallet +// --template=./templates/xcm-bench-template.hbs +// --chain=asset-hub-kusama-dev +// --wasm-execution=compiled +// --pallet=pallet_xcm_benchmarks::generic +// --no-storage-info +// --no-median-slopes +// --no-min-squares +// --extrinsic=* +// --steps=50 +// --repeat=20 +// --json +// --header=./file_header.txt +// --output=./parachains/runtimes/assets/asset-hub-kusama/src/weights/xcm/pallet_xcm_benchmarks_generic.rs + +#![cfg_attr(rustfmt, rustfmt_skip)] +#![allow(unused_parens)] +#![allow(unused_imports)] + +use frame_support::{traits::Get, weights::Weight}; +use sp_std::marker::PhantomData; + +/// Weights for `pallet_xcm_benchmarks::generic`. +pub struct WeightInfo(PhantomData); +impl WeightInfo { + // Storage: `ParachainInfo::ParachainId` (r:1 w:0) + // Proof: `ParachainInfo::ParachainId` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`) + // Storage: `PolkadotXcm::SupportedVersion` (r:1 w:0) + // Proof: `PolkadotXcm::SupportedVersion` (`max_values`: None, `max_size`: None, mode: `Measured`) + // Storage: `PolkadotXcm::VersionDiscoveryQueue` (r:1 w:1) + // Proof: `PolkadotXcm::VersionDiscoveryQueue` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + // Storage: `PolkadotXcm::SafeXcmVersion` (r:1 w:0) + // Proof: `PolkadotXcm::SafeXcmVersion` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + // Storage: `ParachainSystem::HostConfiguration` (r:1 w:0) + // Proof: `ParachainSystem::HostConfiguration` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + // Storage: `ParachainSystem::PendingUpwardMessages` (r:1 w:1) + // Proof: `ParachainSystem::PendingUpwardMessages` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + pub fn report_holding() -> Weight { + // Proof Size summary in bytes: + // Measured: `109` + // Estimated: `3574` + // Minimum execution time: 432_196_000 picoseconds. + Weight::from_parts(438_017_000, 3574) + .saturating_add(T::DbWeight::get().reads(6)) + .saturating_add(T::DbWeight::get().writes(2)) + } + pub fn buy_execution() -> Weight { + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 4_223_000 picoseconds. + Weight::from_parts(4_412_000, 0) + } + // Storage: `PolkadotXcm::Queries` (r:1 w:0) + // Proof: `PolkadotXcm::Queries` (`max_values`: None, `max_size`: None, mode: `Measured`) + pub fn query_response() -> Weight { + // Proof Size summary in bytes: + // Measured: `103` + // Estimated: `3568` + // Minimum execution time: 11_582_000 picoseconds. + Weight::from_parts(11_830_000, 3568) + .saturating_add(T::DbWeight::get().reads(1)) + } + pub fn transact() -> Weight { + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 13_955_000 picoseconds. + Weight::from_parts(14_320_000, 0) + } + pub fn refund_surplus() -> Weight { + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 4_423_000 picoseconds. + Weight::from_parts(4_709_000, 0) + } + pub fn set_error_handler() -> Weight { + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 3_028_000 picoseconds. + Weight::from_parts(3_151_000, 0) + } + pub fn set_appendix() -> Weight { + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 2_966_000 picoseconds. + Weight::from_parts(3_076_000, 0) + } + pub fn clear_error() -> Weight { + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 2_971_000 picoseconds. + Weight::from_parts(3_119_000, 0) + } + pub fn descend_origin() -> Weight { + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 3_772_000 picoseconds. + Weight::from_parts(3_853_000, 0) + } + pub fn clear_origin() -> Weight { + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 2_940_000 picoseconds. + Weight::from_parts(3_050_000, 0) + } + // Storage: `ParachainInfo::ParachainId` (r:1 w:0) + // Proof: `ParachainInfo::ParachainId` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`) + // Storage: `PolkadotXcm::SupportedVersion` (r:1 w:0) + // Proof: `PolkadotXcm::SupportedVersion` (`max_values`: None, `max_size`: None, mode: `Measured`) + // Storage: `PolkadotXcm::VersionDiscoveryQueue` (r:1 w:1) + // Proof: `PolkadotXcm::VersionDiscoveryQueue` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + // Storage: `PolkadotXcm::SafeXcmVersion` (r:1 w:0) + // Proof: `PolkadotXcm::SafeXcmVersion` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + // Storage: `ParachainSystem::HostConfiguration` (r:1 w:0) + // Proof: `ParachainSystem::HostConfiguration` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + // Storage: `ParachainSystem::PendingUpwardMessages` (r:1 w:1) + // Proof: `ParachainSystem::PendingUpwardMessages` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + pub fn report_error() -> Weight { + // Proof Size summary in bytes: + // Measured: `109` + // Estimated: `3574` + // Minimum execution time: 27_734_000 picoseconds. + Weight::from_parts(28_351_000, 3574) + .saturating_add(T::DbWeight::get().reads(6)) + .saturating_add(T::DbWeight::get().writes(2)) + } + // Storage: `PolkadotXcm::AssetTraps` (r:1 w:1) + // Proof: `PolkadotXcm::AssetTraps` (`max_values`: None, `max_size`: None, mode: `Measured`) + pub fn claim_asset() -> Weight { + // Proof Size summary in bytes: + // Measured: `160` + // Estimated: `3625` + // Minimum execution time: 16_456_000 picoseconds. + Weight::from_parts(16_846_000, 3625) + .saturating_add(T::DbWeight::get().reads(1)) + .saturating_add(T::DbWeight::get().writes(1)) + } + pub fn trap() -> Weight { + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 2_974_000 picoseconds. + Weight::from_parts(3_108_000, 0) + } + // Storage: `PolkadotXcm::VersionNotifyTargets` (r:1 w:1) + // Proof: `PolkadotXcm::VersionNotifyTargets` (`max_values`: None, `max_size`: None, mode: `Measured`) + // Storage: `PolkadotXcm::SupportedVersion` (r:1 w:0) + // Proof: `PolkadotXcm::SupportedVersion` (`max_values`: None, `max_size`: None, mode: `Measured`) + // Storage: `PolkadotXcm::VersionDiscoveryQueue` (r:1 w:1) + // Proof: `PolkadotXcm::VersionDiscoveryQueue` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + // Storage: `PolkadotXcm::SafeXcmVersion` (r:1 w:0) + // Proof: `PolkadotXcm::SafeXcmVersion` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + // Storage: `ParachainSystem::HostConfiguration` (r:1 w:0) + // Proof: `ParachainSystem::HostConfiguration` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + // Storage: `ParachainSystem::PendingUpwardMessages` (r:1 w:1) + // Proof: `ParachainSystem::PendingUpwardMessages` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + pub fn subscribe_version() -> Weight { + // Proof Size summary in bytes: + // Measured: `109` + // Estimated: `3574` + // Minimum execution time: 29_823_000 picoseconds. + Weight::from_parts(30_776_000, 3574) + .saturating_add(T::DbWeight::get().reads(6)) + .saturating_add(T::DbWeight::get().writes(3)) + } + // Storage: `PolkadotXcm::VersionNotifyTargets` (r:0 w:1) + // Proof: `PolkadotXcm::VersionNotifyTargets` (`max_values`: None, `max_size`: None, mode: `Measured`) + pub fn unsubscribe_version() -> Weight { + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 4_966_000 picoseconds. + Weight::from_parts(5_157_000, 0) + .saturating_add(T::DbWeight::get().writes(1)) + } + pub fn burn_asset() -> Weight { + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 141_875_000 picoseconds. + Weight::from_parts(144_925_000, 0) + } + pub fn expect_asset() -> Weight { + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 13_147_000 picoseconds. + Weight::from_parts(13_420_000, 0) + } + pub fn expect_origin() -> Weight { + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 3_050_000 picoseconds. + Weight::from_parts(3_161_000, 0) + } + pub fn expect_error() -> Weight { + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 2_930_000 picoseconds. + Weight::from_parts(3_077_000, 0) + } + pub fn expect_transact_status() -> Weight { + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 3_188_000 picoseconds. + Weight::from_parts(3_299_000, 0) + } + // Storage: `ParachainInfo::ParachainId` (r:1 w:0) + // Proof: `ParachainInfo::ParachainId` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`) + // Storage: `PolkadotXcm::SupportedVersion` (r:1 w:0) + // Proof: `PolkadotXcm::SupportedVersion` (`max_values`: None, `max_size`: None, mode: `Measured`) + // Storage: `PolkadotXcm::VersionDiscoveryQueue` (r:1 w:1) + // Proof: `PolkadotXcm::VersionDiscoveryQueue` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + // Storage: `PolkadotXcm::SafeXcmVersion` (r:1 w:0) + // Proof: `PolkadotXcm::SafeXcmVersion` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + // Storage: `ParachainSystem::HostConfiguration` (r:1 w:0) + // Proof: `ParachainSystem::HostConfiguration` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + // Storage: `ParachainSystem::PendingUpwardMessages` (r:1 w:1) + // Proof: `ParachainSystem::PendingUpwardMessages` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + pub fn query_pallet() -> Weight { + // Proof Size summary in bytes: + // Measured: `109` + // Estimated: `3574` + // Minimum execution time: 31_678_000 picoseconds. + Weight::from_parts(32_462_000, 3574) + .saturating_add(T::DbWeight::get().reads(6)) + .saturating_add(T::DbWeight::get().writes(2)) + } + pub fn expect_pallet() -> Weight { + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 5_638_000 picoseconds. + Weight::from_parts(5_756_000, 0) + } + // Storage: `ParachainInfo::ParachainId` (r:1 w:0) + // Proof: `ParachainInfo::ParachainId` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`) + // Storage: `PolkadotXcm::SupportedVersion` (r:1 w:0) + // Proof: `PolkadotXcm::SupportedVersion` (`max_values`: None, `max_size`: None, mode: `Measured`) + // Storage: `PolkadotXcm::VersionDiscoveryQueue` (r:1 w:1) + // Proof: `PolkadotXcm::VersionDiscoveryQueue` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + // Storage: `PolkadotXcm::SafeXcmVersion` (r:1 w:0) + // Proof: `PolkadotXcm::SafeXcmVersion` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + // Storage: `ParachainSystem::HostConfiguration` (r:1 w:0) + // Proof: `ParachainSystem::HostConfiguration` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + // Storage: `ParachainSystem::PendingUpwardMessages` (r:1 w:1) + // Proof: `ParachainSystem::PendingUpwardMessages` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + pub fn report_transact_status() -> Weight { + // Proof Size summary in bytes: + // Measured: `109` + // Estimated: `3574` + // Minimum execution time: 27_556_000 picoseconds. + Weight::from_parts(28_240_000, 3574) + .saturating_add(T::DbWeight::get().reads(6)) + .saturating_add(T::DbWeight::get().writes(2)) + } + pub fn clear_transact_status() -> Weight { + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 2_932_000 picoseconds. + Weight::from_parts(3_097_000, 0) + } + pub fn set_topic() -> Weight { + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 2_860_000 picoseconds. + Weight::from_parts(2_957_000, 0) + } + pub fn clear_topic() -> Weight { + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 2_886_000 picoseconds. + Weight::from_parts(3_015_000, 0) + } + pub fn set_fees_mode() -> Weight { + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 2_874_000 picoseconds. + Weight::from_parts(3_060_000, 0) + } + pub fn unpaid_execution() -> Weight { + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 3_029_000 picoseconds. + Weight::from_parts(3_158_000, 0) + } +} diff --git a/cumulus/parachains/runtimes/assets/asset-hub-kusama/src/xcm_config.rs b/cumulus/parachains/runtimes/assets/asset-hub-kusama/src/xcm_config.rs new file mode 100644 index 000000000000..3628641544b5 --- /dev/null +++ b/cumulus/parachains/runtimes/assets/asset-hub-kusama/src/xcm_config.rs @@ -0,0 +1,641 @@ +// 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::{ + AccountId, AllPalletsWithSystem, Assets, Authorship, Balance, Balances, ParachainInfo, + ParachainSystem, PolkadotXcm, PoolAssets, Runtime, RuntimeCall, RuntimeEvent, RuntimeOrigin, + TransactionByteFee, TrustBackedAssetsInstance, WeightToFee, XcmpQueue, +}; +use crate::{ForeignAssets, CENTS}; +use assets_common::{ + local_and_foreign_assets::MatchesLocalAndForeignAssetsMultiLocation, + matching::{FromSiblingParachain, IsForeignConcreteAsset}, +}; +use frame_support::{ + match_types, parameter_types, + traits::{ConstU32, Contains, Everything, Nothing, PalletInfoAccess}, +}; +use frame_system::EnsureRoot; +use pallet_xcm::XcmPassthrough; +use parachains_common::{ + impls::ToStakingPot, + xcm_config::{AssetFeeAsExistentialDepositMultiplier, ConcreteAssetFromSystem}, +}; +use polkadot_parachain_primitives::primitives::Sibling; +use polkadot_runtime_common::xcm_sender::ExponentialPrice; +use sp_runtime::traits::ConvertInto; +use xcm::latest::prelude::*; +use xcm_builder::{ + AccountId32Aliases, AllowExplicitUnpaidExecutionFrom, AllowKnownQueryResponses, + AllowSubscriptionsFrom, AllowTopLevelPaidExecutionFrom, CurrencyAdapter, + DenyReserveTransferToRelayChain, DenyThenTry, DescribeAllTerminal, DescribeFamily, + EnsureXcmOrigin, FungiblesAdapter, HashedDescription, IsConcrete, LocalMint, NoChecking, + ParentAsSuperuser, ParentIsPreset, RelayChainAsNative, SiblingParachainAsNative, + SiblingParachainConvertsVia, SignedAccountId32AsNative, SignedToAccountId32, + SovereignSignedViaLocation, StartsWith, StartsWithExplicitGlobalConsensus, TakeWeightCredit, + TrailingSetTopicAsId, UsingComponents, WeightInfoBounds, WithComputedOrigin, WithUniqueTopic, +}; +use xcm_executor::{traits::WithOriginFilter, XcmExecutor}; + +#[cfg(feature = "runtime-benchmarks")] +use {cumulus_primitives_core::ParaId, sp_core::Get}; + +parameter_types! { + pub const KsmLocation: MultiLocation = MultiLocation::parent(); + pub const RelayNetwork: Option = Some(NetworkId::Kusama); + pub RelayChainOrigin: RuntimeOrigin = cumulus_pallet_xcm::Origin::Relay.into(); + pub UniversalLocation: InteriorMultiLocation = + X2(GlobalConsensus(RelayNetwork::get().unwrap()), Parachain(ParachainInfo::parachain_id().into())); + pub UniversalLocationNetworkId: NetworkId = UniversalLocation::get().global_consensus().unwrap(); + pub TrustBackedAssetsPalletLocation: MultiLocation = + PalletInstance(::index() as u8).into(); + pub ForeignAssetsPalletLocation: MultiLocation = + PalletInstance(::index() as u8).into(); + pub PoolAssetsPalletLocation: MultiLocation = + PalletInstance(::index() as u8).into(); + pub CheckingAccount: AccountId = PolkadotXcm::check_account(); + pub const GovernanceLocation: MultiLocation = MultiLocation::parent(); + pub const FellowshipLocation: MultiLocation = MultiLocation::parent(); +} + +/// Type for specifying how a `MultiLocation` can be converted into an `AccountId`. This is used +/// when determining ownership of accounts for asset transacting and when attempting to use XCM +/// `Transact` in order to determine the dispatch Origin. +pub type LocationToAccountId = ( + // The parent (Relay-chain) origin converts to the parent `AccountId`. + ParentIsPreset, + // Sibling parachain origins convert to AccountId via the `ParaId::into`. + SiblingParachainConvertsVia, + // Straight up local `AccountId32` origins just alias directly to `AccountId`. + AccountId32Aliases, + // Foreign locations alias into accounts according to a hash of their standard description. + HashedDescription>, +); + +/// Means for transacting the native currency on this chain. +pub type CurrencyTransactor = CurrencyAdapter< + // Use this currency: + Balances, + // Use this currency when it is a fungible asset matching the given location or name: + IsConcrete, + // Convert an XCM MultiLocation into a local account id: + LocationToAccountId, + // Our chain's account ID type (we can't get away without mentioning it explicitly): + AccountId, + // We don't track any teleports of `Balances`. + (), +>; + +/// `AssetId`/`Balance` converter for `PoolAssets`. +pub type TrustBackedAssetsConvertedConcreteId = + assets_common::TrustBackedAssetsConvertedConcreteId; + +/// Means for transacting assets besides the native currency on this chain. +pub type FungiblesTransactor = FungiblesAdapter< + // Use this fungibles implementation: + Assets, + // Use this currency when it is a fungible asset matching the given location or name: + TrustBackedAssetsConvertedConcreteId, + // Convert an XCM MultiLocation into a local account id: + LocationToAccountId, + // Our chain's account ID type (we can't get away without mentioning it explicitly): + AccountId, + // We only want to allow teleports of known assets. We use non-zero issuance as an indication + // that this asset is known. + LocalMint>, + // The account to use for tracking teleports. + CheckingAccount, +>; + +/// `AssetId/Balance` converter for `TrustBackedAssets` +pub type ForeignAssetsConvertedConcreteId = assets_common::ForeignAssetsConvertedConcreteId< + ( + // Ignore `TrustBackedAssets` explicitly + StartsWith, + // Ignore assets that start explicitly with our `GlobalConsensus(NetworkId)`, means: + // - foreign assets from our consensus should be: `MultiLocation {parents: 1, + // X*(Parachain(xyz), ..)}` + // - foreign assets outside our consensus with the same `GlobalConsensus(NetworkId)` won't + // be accepted here + StartsWithExplicitGlobalConsensus, + ), + Balance, +>; + +/// Means for transacting foreign assets from different global consensus. +pub type ForeignFungiblesTransactor = FungiblesAdapter< + // Use this fungibles implementation: + ForeignAssets, + // Use this currency when it is a fungible asset matching the given location or name: + ForeignAssetsConvertedConcreteId, + // Convert an XCM MultiLocation into a local account id: + LocationToAccountId, + // Our chain's account ID type (we can't get away without mentioning it explicitly): + AccountId, + // We dont need to check teleports here. + NoChecking, + // The account to use for tracking teleports. + CheckingAccount, +>; + +/// `AssetId`/`Balance` converter for `PoolAssets`. +pub type PoolAssetsConvertedConcreteId = + assets_common::PoolAssetsConvertedConcreteId; + +/// Means for transacting asset conversion pool assets on this chain. +pub type PoolFungiblesTransactor = FungiblesAdapter< + // Use this fungibles implementation: + PoolAssets, + // Use this currency when it is a fungible asset matching the given location or name: + PoolAssetsConvertedConcreteId, + // Convert an XCM MultiLocation into a local account id: + LocationToAccountId, + // Our chain's account ID type (we can't get away without mentioning it explicitly): + AccountId, + // We only want to allow teleports of known assets. We use non-zero issuance as an indication + // that this asset is known. + LocalMint>, + // The account to use for tracking teleports. + CheckingAccount, +>; + +/// Means for transacting assets on this chain. +pub type AssetTransactors = + (CurrencyTransactor, FungiblesTransactor, ForeignFungiblesTransactor, PoolFungiblesTransactor); + +/// Simple `MultiLocation` matcher for Local and Foreign asset `MultiLocation`. +pub struct LocalAndForeignAssetsMultiLocationMatcher; +impl MatchesLocalAndForeignAssetsMultiLocation for LocalAndForeignAssetsMultiLocationMatcher { + fn is_local(location: &MultiLocation) -> bool { + use assets_common::fungible_conversion::MatchesMultiLocation; + TrustBackedAssetsConvertedConcreteId::contains(location) + } + fn is_foreign(location: &MultiLocation) -> bool { + use assets_common::fungible_conversion::MatchesMultiLocation; + ForeignAssetsConvertedConcreteId::contains(location) + } +} +impl Contains for LocalAndForeignAssetsMultiLocationMatcher { + fn contains(location: &MultiLocation) -> bool { + Self::is_local(location) || Self::is_foreign(location) + } +} + +/// This is the type we use to convert an (incoming) XCM origin into a local `Origin` instance, +/// ready for dispatching a transaction with Xcm's `Transact`. There is an `OriginKind` which can +/// biases the kind of local `Origin` it will become. +pub type XcmOriginToTransactDispatchOrigin = ( + // Sovereign account converter; this attempts to derive an `AccountId` from the origin location + // using `LocationToAccountId` and then turn that into the usual `Signed` origin. Useful for + // foreign chains who want to have a local sovereign account on this chain which they control. + SovereignSignedViaLocation, + // Native converter for Relay-chain (Parent) location; will convert to a `Relay` origin when + // recognised. + RelayChainAsNative, + // Native converter for sibling Parachains; will convert to a `SiblingPara` origin when + // recognised. + SiblingParachainAsNative, + // Superuser converter for the Relay-chain (Parent) location. This will allow it to issue a + // transaction from the Root origin. + ParentAsSuperuser, + // Native signed account converter; this just converts an `AccountId32` origin into a normal + // `RuntimeOrigin::Signed` origin of the same 32-byte value. + SignedAccountId32AsNative, + // Xcm origins can be represented natively under the Xcm pallet's Xcm origin. + XcmPassthrough, +); + +parameter_types! { + pub const MaxInstructions: u32 = 100; + pub const MaxAssetsIntoHolding: u32 = 64; + pub XcmAssetFeesReceiver: Option = Authorship::author(); +} + +match_types! { + pub type ParentOrParentsPlurality: impl Contains = { + MultiLocation { parents: 1, interior: Here } | + MultiLocation { parents: 1, interior: X1(Plurality { .. }) } + }; + pub type ParentOrSiblings: impl Contains = { + MultiLocation { parents: 1, interior: Here } | + MultiLocation { parents: 1, interior: X1(_) } + }; +} + +/// A call filter for the XCM Transact instruction. This is a temporary measure until we properly +/// account for proof size weights. +/// +/// Calls that are allowed through this filter must: +/// 1. Have a fixed weight; +/// 2. Cannot lead to another call being made; +/// 3. Have a defined proof size weight, e.g. no unbounded vecs in call parameters. +pub struct SafeCallFilter; +impl Contains for SafeCallFilter { + fn contains(call: &RuntimeCall) -> bool { + #[cfg(feature = "runtime-benchmarks")] + { + if matches!(call, RuntimeCall::System(frame_system::Call::remark_with_event { .. })) { + return true + } + } + + matches!( + call, + RuntimeCall::PolkadotXcm(pallet_xcm::Call::force_xcm_version { .. }) | + RuntimeCall::System( + frame_system::Call::set_heap_pages { .. } | + frame_system::Call::set_code { .. } | + frame_system::Call::set_code_without_checks { .. } | + frame_system::Call::kill_prefix { .. }, + ) | RuntimeCall::ParachainSystem(..) | + RuntimeCall::Timestamp(..) | + RuntimeCall::Balances(..) | + RuntimeCall::CollatorSelection( + pallet_collator_selection::Call::set_desired_candidates { .. } | + pallet_collator_selection::Call::set_candidacy_bond { .. } | + pallet_collator_selection::Call::register_as_candidate { .. } | + pallet_collator_selection::Call::leave_intent { .. } | + pallet_collator_selection::Call::set_invulnerables { .. } | + pallet_collator_selection::Call::add_invulnerable { .. } | + pallet_collator_selection::Call::remove_invulnerable { .. }, + ) | RuntimeCall::Session(pallet_session::Call::purge_keys { .. }) | + RuntimeCall::XcmpQueue(..) | + RuntimeCall::DmpQueue(..) | + RuntimeCall::Assets( + pallet_assets::Call::create { .. } | + pallet_assets::Call::force_create { .. } | + pallet_assets::Call::start_destroy { .. } | + pallet_assets::Call::destroy_accounts { .. } | + pallet_assets::Call::destroy_approvals { .. } | + pallet_assets::Call::finish_destroy { .. } | + pallet_assets::Call::block { .. } | + pallet_assets::Call::mint { .. } | + pallet_assets::Call::burn { .. } | + pallet_assets::Call::transfer { .. } | + pallet_assets::Call::transfer_keep_alive { .. } | + pallet_assets::Call::force_transfer { .. } | + pallet_assets::Call::freeze { .. } | + pallet_assets::Call::thaw { .. } | + pallet_assets::Call::freeze_asset { .. } | + pallet_assets::Call::thaw_asset { .. } | + pallet_assets::Call::transfer_ownership { .. } | + pallet_assets::Call::set_team { .. } | + pallet_assets::Call::set_metadata { .. } | + pallet_assets::Call::clear_metadata { .. } | + pallet_assets::Call::force_set_metadata { .. } | + pallet_assets::Call::force_clear_metadata { .. } | + pallet_assets::Call::force_asset_status { .. } | + pallet_assets::Call::approve_transfer { .. } | + pallet_assets::Call::cancel_approval { .. } | + pallet_assets::Call::force_cancel_approval { .. } | + pallet_assets::Call::transfer_approved { .. } | + pallet_assets::Call::touch { .. } | + pallet_assets::Call::touch_other { .. } | + pallet_assets::Call::refund { .. } | + pallet_assets::Call::refund_other { .. }, + ) | RuntimeCall::ForeignAssets( + pallet_assets::Call::create { .. } | + pallet_assets::Call::force_create { .. } | + pallet_assets::Call::start_destroy { .. } | + pallet_assets::Call::destroy_accounts { .. } | + pallet_assets::Call::destroy_approvals { .. } | + pallet_assets::Call::finish_destroy { .. } | + pallet_assets::Call::block { .. } | + pallet_assets::Call::mint { .. } | + pallet_assets::Call::burn { .. } | + pallet_assets::Call::transfer { .. } | + pallet_assets::Call::transfer_keep_alive { .. } | + pallet_assets::Call::force_transfer { .. } | + pallet_assets::Call::freeze { .. } | + pallet_assets::Call::thaw { .. } | + pallet_assets::Call::freeze_asset { .. } | + pallet_assets::Call::thaw_asset { .. } | + pallet_assets::Call::transfer_ownership { .. } | + pallet_assets::Call::set_team { .. } | + pallet_assets::Call::set_metadata { .. } | + pallet_assets::Call::clear_metadata { .. } | + pallet_assets::Call::force_set_metadata { .. } | + pallet_assets::Call::force_clear_metadata { .. } | + pallet_assets::Call::force_asset_status { .. } | + pallet_assets::Call::approve_transfer { .. } | + pallet_assets::Call::cancel_approval { .. } | + pallet_assets::Call::force_cancel_approval { .. } | + pallet_assets::Call::transfer_approved { .. } | + pallet_assets::Call::touch { .. } | + pallet_assets::Call::touch_other { .. } | + pallet_assets::Call::refund { .. } | + pallet_assets::Call::refund_other { .. }, + ) | RuntimeCall::PoolAssets( + pallet_assets::Call::force_create { .. } | + pallet_assets::Call::block { .. } | + pallet_assets::Call::burn { .. } | + pallet_assets::Call::transfer { .. } | + pallet_assets::Call::transfer_keep_alive { .. } | + pallet_assets::Call::force_transfer { .. } | + pallet_assets::Call::freeze { .. } | + pallet_assets::Call::thaw { .. } | + pallet_assets::Call::freeze_asset { .. } | + pallet_assets::Call::thaw_asset { .. } | + pallet_assets::Call::transfer_ownership { .. } | + pallet_assets::Call::set_team { .. } | + pallet_assets::Call::set_metadata { .. } | + pallet_assets::Call::clear_metadata { .. } | + pallet_assets::Call::force_set_metadata { .. } | + pallet_assets::Call::force_clear_metadata { .. } | + pallet_assets::Call::force_asset_status { .. } | + pallet_assets::Call::approve_transfer { .. } | + pallet_assets::Call::cancel_approval { .. } | + pallet_assets::Call::force_cancel_approval { .. } | + pallet_assets::Call::transfer_approved { .. } | + pallet_assets::Call::touch { .. } | + pallet_assets::Call::touch_other { .. } | + pallet_assets::Call::refund { .. } | + pallet_assets::Call::refund_other { .. }, + ) | RuntimeCall::AssetConversion( + pallet_asset_conversion::Call::create_pool { .. } | + pallet_asset_conversion::Call::add_liquidity { .. } | + pallet_asset_conversion::Call::remove_liquidity { .. } | + pallet_asset_conversion::Call::swap_tokens_for_exact_tokens { .. } | + pallet_asset_conversion::Call::swap_exact_tokens_for_tokens { .. }, + ) | RuntimeCall::NftFractionalization( + pallet_nft_fractionalization::Call::fractionalize { .. } | + pallet_nft_fractionalization::Call::unify { .. }, + ) | RuntimeCall::Nfts( + pallet_nfts::Call::create { .. } | + pallet_nfts::Call::force_create { .. } | + pallet_nfts::Call::destroy { .. } | + pallet_nfts::Call::mint { .. } | + pallet_nfts::Call::force_mint { .. } | + pallet_nfts::Call::burn { .. } | + pallet_nfts::Call::transfer { .. } | + pallet_nfts::Call::lock_item_transfer { .. } | + pallet_nfts::Call::unlock_item_transfer { .. } | + pallet_nfts::Call::lock_collection { .. } | + pallet_nfts::Call::transfer_ownership { .. } | + pallet_nfts::Call::set_team { .. } | + pallet_nfts::Call::force_collection_owner { .. } | + pallet_nfts::Call::force_collection_config { .. } | + pallet_nfts::Call::approve_transfer { .. } | + pallet_nfts::Call::cancel_approval { .. } | + pallet_nfts::Call::clear_all_transfer_approvals { .. } | + pallet_nfts::Call::lock_item_properties { .. } | + pallet_nfts::Call::set_attribute { .. } | + pallet_nfts::Call::force_set_attribute { .. } | + pallet_nfts::Call::clear_attribute { .. } | + pallet_nfts::Call::approve_item_attributes { .. } | + pallet_nfts::Call::cancel_item_attributes_approval { .. } | + pallet_nfts::Call::set_metadata { .. } | + pallet_nfts::Call::clear_metadata { .. } | + pallet_nfts::Call::set_collection_metadata { .. } | + pallet_nfts::Call::clear_collection_metadata { .. } | + pallet_nfts::Call::set_accept_ownership { .. } | + pallet_nfts::Call::set_collection_max_supply { .. } | + pallet_nfts::Call::update_mint_settings { .. } | + pallet_nfts::Call::set_price { .. } | + pallet_nfts::Call::buy_item { .. } | + pallet_nfts::Call::pay_tips { .. } | + pallet_nfts::Call::create_swap { .. } | + pallet_nfts::Call::cancel_swap { .. } | + pallet_nfts::Call::claim_swap { .. }, + ) | RuntimeCall::Uniques( + pallet_uniques::Call::create { .. } | + pallet_uniques::Call::force_create { .. } | + pallet_uniques::Call::destroy { .. } | + pallet_uniques::Call::mint { .. } | + pallet_uniques::Call::burn { .. } | + pallet_uniques::Call::transfer { .. } | + pallet_uniques::Call::freeze { .. } | + pallet_uniques::Call::thaw { .. } | + pallet_uniques::Call::freeze_collection { .. } | + pallet_uniques::Call::thaw_collection { .. } | + pallet_uniques::Call::transfer_ownership { .. } | + pallet_uniques::Call::set_team { .. } | + pallet_uniques::Call::approve_transfer { .. } | + pallet_uniques::Call::cancel_approval { .. } | + pallet_uniques::Call::force_item_status { .. } | + pallet_uniques::Call::set_attribute { .. } | + pallet_uniques::Call::clear_attribute { .. } | + pallet_uniques::Call::set_metadata { .. } | + pallet_uniques::Call::clear_metadata { .. } | + pallet_uniques::Call::set_collection_metadata { .. } | + pallet_uniques::Call::clear_collection_metadata { .. } | + pallet_uniques::Call::set_accept_ownership { .. } | + pallet_uniques::Call::set_collection_max_supply { .. } | + pallet_uniques::Call::set_price { .. } | + pallet_uniques::Call::buy_item { .. } + ) + ) + } +} + +pub type Barrier = TrailingSetTopicAsId< + DenyThenTry< + DenyReserveTransferToRelayChain, + ( + TakeWeightCredit, + // Expected responses are OK. + AllowKnownQueryResponses, + // Allow XCMs with some computed origins to pass through. + WithComputedOrigin< + ( + // If the message is one that immediately attempts to pay for execution, then + // allow it. + AllowTopLevelPaidExecutionFrom, + // Parent and its pluralities (i.e. governance bodies) get free execution. + AllowExplicitUnpaidExecutionFrom, + // Subscriptions for version tracking are OK. + AllowSubscriptionsFrom, + ), + UniversalLocation, + ConstU32<8>, + >, + ), + >, +>; + +pub type AssetFeeAsExistentialDepositMultiplierFeeCharger = AssetFeeAsExistentialDepositMultiplier< + Runtime, + WeightToFee, + pallet_assets::BalanceToAssetBalance, + TrustBackedAssetsInstance, +>; + +/// Cases where a remote origin is accepted as trusted Teleporter for a given asset: +/// +/// - KSM with the parent Relay Chain and sibling system parachains; and +/// - Sibling parachains' assets from where they originate (as `ForeignCreators`). +pub type TrustedTeleporters = ( + ConcreteAssetFromSystem, + IsForeignConcreteAsset>>, +); + +pub struct XcmConfig; +impl xcm_executor::Config for XcmConfig { + type RuntimeCall = RuntimeCall; + type XcmSender = XcmRouter; + type AssetTransactor = AssetTransactors; + type OriginConverter = XcmOriginToTransactDispatchOrigin; + // Asset Hub Kusama does not recognize a reserve location for any asset. This does not prevent + // Asset Hub acting _as_ a reserve location for KSM and assets created under `pallet-assets`. + // For KSM, users must use teleport where allowed (e.g. with the Relay Chain). + type IsReserve = (); + type IsTeleporter = TrustedTeleporters; + type UniversalLocation = UniversalLocation; + type Barrier = Barrier; + type Weigher = WeightInfoBounds< + crate::weights::xcm::AssetHubKusamaXcmWeight, + RuntimeCall, + MaxInstructions, + >; + type Trader = ( + UsingComponents>, + cumulus_primitives_utility::TakeFirstAssetTrader< + AccountId, + AssetFeeAsExistentialDepositMultiplierFeeCharger, + TrustBackedAssetsConvertedConcreteId, + Assets, + cumulus_primitives_utility::XcmFeesTo32ByteAccount< + FungiblesTransactor, + AccountId, + XcmAssetFeesReceiver, + >, + >, + ); + type ResponseHandler = PolkadotXcm; + type AssetTrap = PolkadotXcm; + type AssetClaims = PolkadotXcm; + type SubscriptionService = PolkadotXcm; + type PalletInstancesInfo = AllPalletsWithSystem; + type MaxAssetsIntoHolding = MaxAssetsIntoHolding; + type AssetLocker = (); + type AssetExchanger = (); + type FeeManager = (); + type MessageExporter = (); + type UniversalAliases = Nothing; + type CallDispatcher = WithOriginFilter; + type SafeCallFilter = SafeCallFilter; + type Aliasers = Nothing; +} + +/// Converts a local signed origin into an XCM multilocation. +/// Forms the basis for local origins sending/executing XCMs. +pub type LocalOriginToLocation = SignedToAccountId32; + +parameter_types! { + /// The asset ID for the asset that we use to pay for message delivery fees. + pub FeeAssetId: AssetId = Concrete(KsmLocation::get()); + /// The base fee for the message delivery fees. + pub const BaseDeliveryFee: u128 = CENTS.saturating_mul(3); +} + +pub type PriceForParentDelivery = + ExponentialPrice; + +/// The means for routing XCM messages which are not for local execution into the right message +/// queues. +pub type XcmRouter = WithUniqueTopic<( + // Two routers - use UMP to communicate with the relay chain: + cumulus_primitives_utility::ParentAsUmp, + // ..and XCMP to communicate with the sibling chains. + XcmpQueue, +)>; + +#[cfg(feature = "runtime-benchmarks")] +parameter_types! { + pub ReachableDest: Option = Some(Parent.into()); +} + +impl pallet_xcm::Config for Runtime { + type RuntimeEvent = RuntimeEvent; + // We want to disallow users sending (arbitrary) XCMs from this chain. + type SendXcmOrigin = EnsureXcmOrigin; + type XcmRouter = XcmRouter; + // We support local origins dispatching XCM executions in principle... + type ExecuteXcmOrigin = EnsureXcmOrigin; + // ... but disallow generic XCM execution. As a result only teleports and reserve transfers are + // allowed. + type XcmExecuteFilter = Nothing; + type XcmExecutor = XcmExecutor; + type XcmTeleportFilter = Everything; + type XcmReserveTransferFilter = Everything; + type Weigher = WeightInfoBounds< + crate::weights::xcm::AssetHubKusamaXcmWeight, + RuntimeCall, + MaxInstructions, + >; + type UniversalLocation = UniversalLocation; + type RuntimeOrigin = RuntimeOrigin; + type RuntimeCall = RuntimeCall; + const VERSION_DISCOVERY_QUEUE_SIZE: u32 = 100; + type AdvertisedXcmVersion = pallet_xcm::CurrentXcmVersion; + type Currency = Balances; + type CurrencyMatcher = (); + type TrustedLockers = (); + type SovereignAccountOf = LocationToAccountId; + type MaxLockers = ConstU32<8>; + type WeightInfo = crate::weights::pallet_xcm::WeightInfo; + #[cfg(feature = "runtime-benchmarks")] + type ReachableDest = ReachableDest; + type AdminOrigin = EnsureRoot; + type MaxRemoteLockConsumers = ConstU32<0>; + type RemoteLockConsumerIdentifier = (); +} + +impl cumulus_pallet_xcm::Config for Runtime { + type RuntimeEvent = RuntimeEvent; + type XcmExecutor = XcmExecutor; +} + +pub type ForeignCreatorsSovereignAccountOf = ( + SiblingParachainConvertsVia, + AccountId32Aliases, + ParentIsPreset, +); + +/// Simple conversion of `u32` into an `AssetId` for use in benchmarking. +pub struct XcmBenchmarkHelper; +#[cfg(feature = "runtime-benchmarks")] +impl pallet_assets::BenchmarkHelper for XcmBenchmarkHelper { + fn create_asset_id_parameter(id: u32) -> MultiLocation { + MultiLocation { parents: 1, interior: X1(Parachain(id)) } + } +} + +#[cfg(feature = "runtime-benchmarks")] +pub struct BenchmarkMultiLocationConverter { + _phantom: sp_std::marker::PhantomData, +} + +#[cfg(feature = "runtime-benchmarks")] +impl + pallet_asset_conversion::BenchmarkHelper> + for BenchmarkMultiLocationConverter +where + SelfParaId: Get, +{ + fn asset_id(asset_id: u32) -> MultiLocation { + MultiLocation { + parents: 1, + interior: X3( + Parachain(SelfParaId::get().into()), + PalletInstance(::index() as u8), + GeneralIndex(asset_id.into()), + ), + } + } + fn multiasset_id(asset_id: u32) -> sp_std::boxed::Box { + sp_std::boxed::Box::new(Self::asset_id(asset_id)) + } +} diff --git a/cumulus/parachains/runtimes/assets/asset-hub-kusama/tests/tests.rs b/cumulus/parachains/runtimes/assets/asset-hub-kusama/tests/tests.rs new file mode 100644 index 000000000000..7d49b56e461a --- /dev/null +++ b/cumulus/parachains/runtimes/assets/asset-hub-kusama/tests/tests.rs @@ -0,0 +1,634 @@ +// This file is part of Cumulus. + +// 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. + +//! Tests for the Statemine (Kusama Assets Hub) chain. + +use asset_hub_kusama_runtime::xcm_config::{ + AssetFeeAsExistentialDepositMultiplierFeeCharger, KsmLocation, TrustBackedAssetsPalletLocation, +}; +pub use asset_hub_kusama_runtime::{ + xcm_config::{CheckingAccount, ForeignCreatorsSovereignAccountOf, XcmConfig}, + AllPalletsWithoutSystem, AssetDeposit, Assets, Balances, ExistentialDeposit, ForeignAssets, + ForeignAssetsInstance, MetadataDepositBase, MetadataDepositPerByte, ParachainSystem, Runtime, + RuntimeCall, RuntimeEvent, SessionKeys, System, TrustBackedAssetsInstance, +}; +use asset_test_utils::{CollatorSessionKeys, ExtBuilder}; +use codec::{Decode, Encode}; +use cumulus_primitives_utility::ChargeWeightInFungibles; +use frame_support::{ + assert_noop, assert_ok, + traits::fungibles::InspectEnumerable, + weights::{Weight, WeightToFee as WeightToFeeT}, +}; +use parachains_common::{ + kusama::fee::WeightToFee, AccountId, AssetIdForTrustBackedAssets, AuraId, Balance, +}; +use sp_runtime::traits::MaybeEquivalence; +use xcm::latest::prelude::*; +use xcm_executor::traits::{Identity, JustTry, WeightTrader}; + +const ALICE: [u8; 32] = [1u8; 32]; +const SOME_ASSET_ADMIN: [u8; 32] = [5u8; 32]; + +type AssetIdForTrustBackedAssetsConvert = + assets_common::AssetIdForTrustBackedAssetsConvert; + +type RuntimeHelper = asset_test_utils::RuntimeHelper; + +fn collator_session_keys() -> CollatorSessionKeys { + CollatorSessionKeys::new( + AccountId::from(ALICE), + AccountId::from(ALICE), + SessionKeys { aura: AuraId::from(sp_core::sr25519::Public::from_raw(ALICE)) }, + ) +} + +#[test] +fn test_asset_xcm_trader() { + ExtBuilder::::default() + .with_collators(vec![AccountId::from(ALICE)]) + .with_session_keys(vec![( + AccountId::from(ALICE), + AccountId::from(ALICE), + SessionKeys { aura: AuraId::from(sp_core::sr25519::Public::from_raw(ALICE)) }, + )]) + .build() + .execute_with(|| { + // We need root origin to create a sufficient asset + let minimum_asset_balance = 3333333_u128; + let local_asset_id = 1; + assert_ok!(Assets::force_create( + RuntimeHelper::root_origin(), + local_asset_id.into(), + AccountId::from(ALICE).into(), + true, + minimum_asset_balance + )); + + // We first mint enough asset for the account to exist for assets + assert_ok!(Assets::mint( + RuntimeHelper::origin_of(AccountId::from(ALICE)), + local_asset_id.into(), + AccountId::from(ALICE).into(), + minimum_asset_balance + )); + + // get asset id as multilocation + let asset_multilocation = + AssetIdForTrustBackedAssetsConvert::convert_back(&local_asset_id).unwrap(); + + // Set Alice as block author, who will receive fees + RuntimeHelper::run_to_block(2, AccountId::from(ALICE)); + + // We are going to buy 4e9 weight + let bought = Weight::from_parts(4_000_000_000u64, 0); + + // Lets calculate amount needed + let asset_amount_needed = + AssetFeeAsExistentialDepositMultiplierFeeCharger::charge_weight_in_fungibles( + local_asset_id, + bought, + ) + .expect("failed to compute"); + + // Lets pay with: asset_amount_needed + asset_amount_extra + let asset_amount_extra = 100_u128; + let asset: MultiAsset = + (asset_multilocation, asset_amount_needed + asset_amount_extra).into(); + + let mut trader = ::Trader::new(); + let ctx = XcmContext { origin: None, message_id: XcmHash::default(), topic: None }; + + // Lets buy_weight and make sure buy_weight does not return an error + let unused_assets = trader.buy_weight(bought, asset.into(), &ctx).expect("Expected Ok"); + // Check whether a correct amount of unused assets is returned + assert_ok!( + unused_assets.ensure_contains(&(asset_multilocation, asset_amount_extra).into()) + ); + + // Drop trader + drop(trader); + + // Make sure author(Alice) has received the amount + assert_eq!( + Assets::balance(local_asset_id, AccountId::from(ALICE)), + minimum_asset_balance + asset_amount_needed + ); + + // We also need to ensure the total supply increased + assert_eq!( + Assets::total_supply(local_asset_id), + minimum_asset_balance + asset_amount_needed + ); + }); +} + +#[test] +fn test_asset_xcm_trader_with_refund() { + ExtBuilder::::default() + .with_collators(vec![AccountId::from(ALICE)]) + .with_session_keys(vec![( + AccountId::from(ALICE), + AccountId::from(ALICE), + SessionKeys { aura: AuraId::from(sp_core::sr25519::Public::from_raw(ALICE)) }, + )]) + .build() + .execute_with(|| { + // We need root origin to create a sufficient asset + // We set existential deposit to be identical to the one for Balances first + assert_ok!(Assets::force_create( + RuntimeHelper::root_origin(), + 1.into(), + AccountId::from(ALICE).into(), + true, + ExistentialDeposit::get() + )); + + // We first mint enough asset for the account to exist for assets + assert_ok!(Assets::mint( + RuntimeHelper::origin_of(AccountId::from(ALICE)), + 1.into(), + AccountId::from(ALICE).into(), + ExistentialDeposit::get() + )); + + let mut trader = ::Trader::new(); + let ctx = XcmContext { origin: None, message_id: XcmHash::default(), topic: None }; + + // Set Alice as block author, who will receive fees + RuntimeHelper::run_to_block(2, AccountId::from(ALICE)); + + // We are going to buy 4e9 weight + let bought = Weight::from_parts(4_000_000_000u64, 0); + + let asset_multilocation = AssetIdForTrustBackedAssetsConvert::convert_back(&1).unwrap(); + + // lets calculate amount needed + let amount_bought = WeightToFee::weight_to_fee(&bought); + + let asset: MultiAsset = (asset_multilocation, amount_bought).into(); + + // Make sure buy_weight does not return an error + assert_ok!(trader.buy_weight(bought, asset.clone().into(), &ctx)); + + // Make sure again buy_weight does return an error + // This assert relies on the fact, that we use `TakeFirstAssetTrader` in `WeightTrader` + // tuple chain, which cannot be called twice + assert_noop!(trader.buy_weight(bought, asset.into(), &ctx), XcmError::TooExpensive); + + // We actually use half of the weight + let weight_used = bought / 2; + + // Make sure refurnd works. + let amount_refunded = WeightToFee::weight_to_fee(&(bought - weight_used)); + + assert_eq!( + trader.refund_weight(bought - weight_used, &ctx), + Some((asset_multilocation, amount_refunded).into()) + ); + + // Drop trader + drop(trader); + + // We only should have paid for half of the bought weight + let fees_paid = WeightToFee::weight_to_fee(&weight_used); + + assert_eq!( + Assets::balance(1, AccountId::from(ALICE)), + ExistentialDeposit::get() + fees_paid + ); + + // We also need to ensure the total supply increased + assert_eq!(Assets::total_supply(1), ExistentialDeposit::get() + fees_paid); + }); +} + +#[test] +fn test_asset_xcm_trader_refund_not_possible_since_amount_less_than_ed() { + ExtBuilder::::default() + .with_collators(vec![AccountId::from(ALICE)]) + .with_session_keys(vec![( + AccountId::from(ALICE), + AccountId::from(ALICE), + SessionKeys { aura: AuraId::from(sp_core::sr25519::Public::from_raw(ALICE)) }, + )]) + .build() + .execute_with(|| { + // We need root origin to create a sufficient asset + // We set existential deposit to be identical to the one for Balances first + assert_ok!(Assets::force_create( + RuntimeHelper::root_origin(), + 1.into(), + AccountId::from(ALICE).into(), + true, + ExistentialDeposit::get() + )); + + let mut trader = ::Trader::new(); + let ctx = XcmContext { origin: None, message_id: XcmHash::default(), topic: None }; + + // Set Alice as block author, who will receive fees + RuntimeHelper::run_to_block(2, AccountId::from(ALICE)); + + // We are going to buy small amount + let bought = Weight::from_parts(500_000_000u64, 0); + + let asset_multilocation = AssetIdForTrustBackedAssetsConvert::convert_back(&1).unwrap(); + + let amount_bought = WeightToFee::weight_to_fee(&bought); + + assert!( + amount_bought < ExistentialDeposit::get(), + "we are testing what happens when the amount does not exceed ED" + ); + + let asset: MultiAsset = (asset_multilocation, amount_bought).into(); + + // Buy weight should return an error + assert_noop!(trader.buy_weight(bought, asset.into(), &ctx), XcmError::TooExpensive); + + // not credited since the ED is higher than this value + assert_eq!(Assets::balance(1, AccountId::from(ALICE)), 0); + + // We also need to ensure the total supply did not increase + assert_eq!(Assets::total_supply(1), 0); + }); +} + +#[test] +fn test_that_buying_ed_refund_does_not_refund() { + ExtBuilder::::default() + .with_collators(vec![AccountId::from(ALICE)]) + .with_session_keys(vec![( + AccountId::from(ALICE), + AccountId::from(ALICE), + SessionKeys { aura: AuraId::from(sp_core::sr25519::Public::from_raw(ALICE)) }, + )]) + .build() + .execute_with(|| { + // We need root origin to create a sufficient asset + // We set existential deposit to be identical to the one for Balances first + assert_ok!(Assets::force_create( + RuntimeHelper::root_origin(), + 1.into(), + AccountId::from(ALICE).into(), + true, + ExistentialDeposit::get() + )); + + let mut trader = ::Trader::new(); + let ctx = XcmContext { origin: None, message_id: XcmHash::default(), topic: None }; + + // Set Alice as block author, who will receive fees + RuntimeHelper::run_to_block(2, AccountId::from(ALICE)); + + // We are gonna buy ED + let bought = Weight::from_parts(ExistentialDeposit::get().try_into().unwrap(), 0); + + let asset_multilocation = AssetIdForTrustBackedAssetsConvert::convert_back(&1).unwrap(); + + let amount_bought = WeightToFee::weight_to_fee(&bought); + + assert!( + amount_bought < ExistentialDeposit::get(), + "we are testing what happens when the amount does not exceed ED" + ); + + // We know we will have to buy at least ED, so lets make sure first it will + // fail with a payment of less than ED + let asset: MultiAsset = (asset_multilocation, amount_bought).into(); + assert_noop!(trader.buy_weight(bought, asset.into(), &ctx), XcmError::TooExpensive); + + // Now lets buy ED at least + let asset: MultiAsset = (asset_multilocation, ExistentialDeposit::get()).into(); + + // Buy weight should work + assert_ok!(trader.buy_weight(bought, asset.into(), &ctx)); + + // Should return None. We have a specific check making sure we dont go below ED for + // drop payment + assert_eq!(trader.refund_weight(bought, &ctx), None); + + // Drop trader + drop(trader); + + // Make sure author(Alice) has received the amount + assert_eq!(Assets::balance(1, AccountId::from(ALICE)), ExistentialDeposit::get()); + + // We also need to ensure the total supply increased + assert_eq!(Assets::total_supply(1), ExistentialDeposit::get()); + }); +} + +#[test] +fn test_asset_xcm_trader_not_possible_for_non_sufficient_assets() { + ExtBuilder::::default() + .with_collators(vec![AccountId::from(ALICE)]) + .with_session_keys(vec![( + AccountId::from(ALICE), + AccountId::from(ALICE), + SessionKeys { aura: AuraId::from(sp_core::sr25519::Public::from_raw(ALICE)) }, + )]) + .build() + .execute_with(|| { + // Create a non-sufficient asset with specific existential deposit + let minimum_asset_balance = 1_000_000_u128; + assert_ok!(Assets::force_create( + RuntimeHelper::root_origin(), + 1.into(), + AccountId::from(ALICE).into(), + false, + minimum_asset_balance + )); + + // We first mint enough asset for the account to exist for assets + assert_ok!(Assets::mint( + RuntimeHelper::origin_of(AccountId::from(ALICE)), + 1.into(), + AccountId::from(ALICE).into(), + minimum_asset_balance + )); + + let mut trader = ::Trader::new(); + let ctx = XcmContext { origin: None, message_id: XcmHash::default(), topic: None }; + + // Set Alice as block author, who will receive fees + RuntimeHelper::run_to_block(2, AccountId::from(ALICE)); + + // We are going to buy 4e9 weight + let bought = Weight::from_parts(4_000_000_000u64, 0); + + // lets calculate amount needed + let asset_amount_needed = WeightToFee::weight_to_fee(&bought); + + let asset_multilocation = AssetIdForTrustBackedAssetsConvert::convert_back(&1).unwrap(); + + let asset: MultiAsset = (asset_multilocation, asset_amount_needed).into(); + + // Make sure again buy_weight does return an error + assert_noop!(trader.buy_weight(bought, asset.into(), &ctx), XcmError::TooExpensive); + + // Drop trader + drop(trader); + + // Make sure author(Alice) has NOT received the amount + assert_eq!(Assets::balance(1, AccountId::from(ALICE)), minimum_asset_balance); + + // We also need to ensure the total supply NOT increased + assert_eq!(Assets::total_supply(1), minimum_asset_balance); + }); +} + +#[test] +fn test_assets_balances_api_works() { + use assets_common::runtime_api::runtime_decl_for_fungibles_api::FungiblesApi; + + ExtBuilder::::default() + .with_collators(vec![AccountId::from(ALICE)]) + .with_session_keys(vec![( + AccountId::from(ALICE), + AccountId::from(ALICE), + SessionKeys { aura: AuraId::from(sp_core::sr25519::Public::from_raw(ALICE)) }, + )]) + .build() + .execute_with(|| { + let local_asset_id = 1; + let foreign_asset_id_multilocation = + MultiLocation { parents: 1, interior: X2(Parachain(1234), GeneralIndex(12345)) }; + + // check before + assert_eq!(Assets::balance(local_asset_id, AccountId::from(ALICE)), 0); + assert_eq!( + ForeignAssets::balance(foreign_asset_id_multilocation, AccountId::from(ALICE)), + 0 + ); + assert_eq!(Balances::free_balance(AccountId::from(ALICE)), 0); + assert!(Runtime::query_account_balances(AccountId::from(ALICE)) + .unwrap() + .try_as::() + .unwrap() + .is_none()); + + // Drip some balance + use frame_support::traits::fungible::Mutate; + let some_currency = ExistentialDeposit::get(); + Balances::mint_into(&AccountId::from(ALICE), some_currency).unwrap(); + + // We need root origin to create a sufficient asset + let minimum_asset_balance = 3333333_u128; + assert_ok!(Assets::force_create( + RuntimeHelper::root_origin(), + local_asset_id.into(), + AccountId::from(ALICE).into(), + true, + minimum_asset_balance + )); + + // We first mint enough asset for the account to exist for assets + assert_ok!(Assets::mint( + RuntimeHelper::origin_of(AccountId::from(ALICE)), + local_asset_id.into(), + AccountId::from(ALICE).into(), + minimum_asset_balance + )); + + // create foreign asset + let foreign_asset_minimum_asset_balance = 3333333_u128; + assert_ok!(ForeignAssets::force_create( + RuntimeHelper::root_origin(), + foreign_asset_id_multilocation, + AccountId::from(SOME_ASSET_ADMIN).into(), + false, + foreign_asset_minimum_asset_balance + )); + + // We first mint enough asset for the account to exist for assets + assert_ok!(ForeignAssets::mint( + RuntimeHelper::origin_of(AccountId::from(SOME_ASSET_ADMIN)), + foreign_asset_id_multilocation, + AccountId::from(ALICE).into(), + 6 * foreign_asset_minimum_asset_balance + )); + + // check after + assert_eq!( + Assets::balance(local_asset_id, AccountId::from(ALICE)), + minimum_asset_balance + ); + assert_eq!( + ForeignAssets::balance(foreign_asset_id_multilocation, AccountId::from(ALICE)), + 6 * minimum_asset_balance + ); + assert_eq!(Balances::free_balance(AccountId::from(ALICE)), some_currency); + + let result: MultiAssets = Runtime::query_account_balances(AccountId::from(ALICE)) + .unwrap() + .try_into() + .unwrap(); + assert_eq!(result.len(), 3); + + // check currency + assert!(result.inner().iter().any(|asset| asset.eq( + &assets_common::fungible_conversion::convert_balance::( + some_currency + ) + .unwrap() + ))); + // check trusted asset + assert!(result.inner().iter().any(|asset| asset.eq(&( + AssetIdForTrustBackedAssetsConvert::convert_back(&local_asset_id).unwrap(), + minimum_asset_balance + ) + .into()))); + // check foreign asset + assert!(result.inner().iter().any(|asset| asset.eq(&( + Identity::convert_back(&foreign_asset_id_multilocation).unwrap(), + 6 * foreign_asset_minimum_asset_balance + ) + .into()))); + }); +} + +asset_test_utils::include_teleports_for_native_asset_works!( + Runtime, + AllPalletsWithoutSystem, + XcmConfig, + CheckingAccount, + WeightToFee, + ParachainSystem, + collator_session_keys(), + ExistentialDeposit::get(), + Box::new(|runtime_event_encoded: Vec| { + match RuntimeEvent::decode(&mut &runtime_event_encoded[..]) { + Ok(RuntimeEvent::PolkadotXcm(event)) => Some(event), + _ => None, + } + }), + Box::new(|runtime_event_encoded: Vec| { + match RuntimeEvent::decode(&mut &runtime_event_encoded[..]) { + Ok(RuntimeEvent::XcmpQueue(event)) => Some(event), + _ => None, + } + }), + 1000 +); + +asset_test_utils::include_teleports_for_foreign_assets_works!( + Runtime, + AllPalletsWithoutSystem, + XcmConfig, + CheckingAccount, + WeightToFee, + ParachainSystem, + ForeignCreatorsSovereignAccountOf, + ForeignAssetsInstance, + collator_session_keys(), + ExistentialDeposit::get(), + Box::new(|runtime_event_encoded: Vec| { + match RuntimeEvent::decode(&mut &runtime_event_encoded[..]) { + Ok(RuntimeEvent::PolkadotXcm(event)) => Some(event), + _ => None, + } + }), + Box::new(|runtime_event_encoded: Vec| { + match RuntimeEvent::decode(&mut &runtime_event_encoded[..]) { + Ok(RuntimeEvent::XcmpQueue(event)) => Some(event), + _ => None, + } + }) +); + +asset_test_utils::include_asset_transactor_transfer_with_local_consensus_currency_works!( + Runtime, + XcmConfig, + collator_session_keys(), + ExistentialDeposit::get(), + Box::new(|| { + assert!(Assets::asset_ids().collect::>().is_empty()); + assert!(ForeignAssets::asset_ids().collect::>().is_empty()); + }), + Box::new(|| { + assert!(Assets::asset_ids().collect::>().is_empty()); + assert!(ForeignAssets::asset_ids().collect::>().is_empty()); + }) +); + +asset_test_utils::include_asset_transactor_transfer_with_pallet_assets_instance_works!( + asset_transactor_transfer_with_trust_backed_assets_works, + Runtime, + XcmConfig, + TrustBackedAssetsInstance, + AssetIdForTrustBackedAssets, + AssetIdForTrustBackedAssetsConvert, + collator_session_keys(), + ExistentialDeposit::get(), + 12345, + Box::new(|| { + assert!(ForeignAssets::asset_ids().collect::>().is_empty()); + }), + Box::new(|| { + assert!(ForeignAssets::asset_ids().collect::>().is_empty()); + }) +); + +asset_test_utils::include_asset_transactor_transfer_with_pallet_assets_instance_works!( + asset_transactor_transfer_with_foreign_assets_works, + Runtime, + XcmConfig, + ForeignAssetsInstance, + MultiLocation, + JustTry, + collator_session_keys(), + ExistentialDeposit::get(), + MultiLocation { parents: 1, interior: X2(Parachain(1313), GeneralIndex(12345)) }, + Box::new(|| { + assert!(Assets::asset_ids().collect::>().is_empty()); + }), + Box::new(|| { + assert!(Assets::asset_ids().collect::>().is_empty()); + }) +); + +asset_test_utils::include_create_and_manage_foreign_assets_for_local_consensus_parachain_assets_works!( + Runtime, + XcmConfig, + WeightToFee, + ForeignCreatorsSovereignAccountOf, + ForeignAssetsInstance, + MultiLocation, + JustTry, + collator_session_keys(), + ExistentialDeposit::get(), + AssetDeposit::get(), + MetadataDepositBase::get(), + MetadataDepositPerByte::get(), + Box::new(|pallet_asset_call| RuntimeCall::ForeignAssets(pallet_asset_call).encode()), + Box::new(|runtime_event_encoded: Vec| { + match RuntimeEvent::decode(&mut &runtime_event_encoded[..]) { + Ok(RuntimeEvent::ForeignAssets(pallet_asset_event)) => Some(pallet_asset_event), + _ => None, + } + }), + Box::new(|| { + assert!(Assets::asset_ids().collect::>().is_empty()); + assert!(ForeignAssets::asset_ids().collect::>().is_empty()); + }), + Box::new(|| { + assert!(Assets::asset_ids().collect::>().is_empty()); + assert_eq!(ForeignAssets::asset_ids().collect::>().len(), 1); + }) +); diff --git a/cumulus/parachains/runtimes/assets/asset-hub-polkadot/Cargo.toml b/cumulus/parachains/runtimes/assets/asset-hub-polkadot/Cargo.toml new file mode 100644 index 000000000000..db400f2977f4 --- /dev/null +++ b/cumulus/parachains/runtimes/assets/asset-hub-polkadot/Cargo.toml @@ -0,0 +1,208 @@ +[package] +name = "asset-hub-polkadot-runtime" +version = "0.9.420" +authors.workspace = true +edition.workspace = true +description = "Asset Hub Polkadot parachain runtime" + +[dependencies] +codec = { package = "parity-scale-codec", version = "3.0.0", default-features = false, features = ["derive", "max-encoded-len"] } +hex-literal = { version = "0.4.1", optional = true } +log = { version = "0.4.20", default-features = false } +scale-info = { version = "2.10.0", default-features = false, features = ["derive"] } +smallvec = "1.11.0" + +# Substrate +frame-benchmarking = { path = "../../../../../substrate/frame/benchmarking", default-features = false, optional = true} +frame-executive = { path = "../../../../../substrate/frame/executive", default-features = false} +frame-support = { path = "../../../../../substrate/frame/support", default-features = false} +frame-system = { path = "../../../../../substrate/frame/system", default-features = false} +frame-system-benchmarking = { path = "../../../../../substrate/frame/system/benchmarking", default-features = false, optional = true} +frame-system-rpc-runtime-api = { path = "../../../../../substrate/frame/system/rpc/runtime-api", default-features = false} +frame-try-runtime = { path = "../../../../../substrate/frame/try-runtime", default-features = false, optional = true} +pallet-asset-tx-payment = { path = "../../../../../substrate/frame/transaction-payment/asset-tx-payment", default-features = false } +pallet-assets = { path = "../../../../../substrate/frame/assets", default-features = false} +pallet-aura = { path = "../../../../../substrate/frame/aura", default-features = false} +pallet-authorship = { path = "../../../../../substrate/frame/authorship", default-features = false} +pallet-balances = { path = "../../../../../substrate/frame/balances", default-features = false} +pallet-multisig = { path = "../../../../../substrate/frame/multisig", default-features = false} +pallet-nfts = { path = "../../../../../substrate/frame/nfts", default-features = false} +pallet-nfts-runtime-api = { path = "../../../../../substrate/frame/nfts/runtime-api", default-features = false} +pallet-proxy = { path = "../../../../../substrate/frame/proxy", default-features = false} +pallet-session = { path = "../../../../../substrate/frame/session", default-features = false} +pallet-timestamp = { path = "../../../../../substrate/frame/timestamp", default-features = false} +pallet-transaction-payment = { path = "../../../../../substrate/frame/transaction-payment", default-features = false} +pallet-transaction-payment-rpc-runtime-api = { path = "../../../../../substrate/frame/transaction-payment/rpc/runtime-api", default-features = false} +pallet-uniques = { path = "../../../../../substrate/frame/uniques", default-features = false} +pallet-utility = { path = "../../../../../substrate/frame/utility", default-features = false} +sp-api = { path = "../../../../../substrate/primitives/api", default-features = false} +sp-block-builder = { path = "../../../../../substrate/primitives/block-builder", default-features = false} +sp-consensus-aura = { path = "../../../../../substrate/primitives/consensus/aura", default-features = false} +sp-core = { path = "../../../../../substrate/primitives/core", default-features = false} +sp-genesis-builder = { path = "../../../../../substrate/primitives/genesis-builder", default-features = false } +sp-inherents = { path = "../../../../../substrate/primitives/inherents", default-features = false} +sp-offchain = { path = "../../../../../substrate/primitives/offchain", default-features = false} +sp-runtime = { path = "../../../../../substrate/primitives/runtime", default-features = false} +sp-session = { path = "../../../../../substrate/primitives/session", default-features = false} +sp-std = { path = "../../../../../substrate/primitives/std", default-features = false} +sp-storage = { path = "../../../../../substrate/primitives/storage", default-features = false} +sp-transaction-pool = { path = "../../../../../substrate/primitives/transaction-pool", default-features = false} +sp-version = { path = "../../../../../substrate/primitives/version", default-features = false} +sp-weights = { path = "../../../../../substrate/primitives/weights", default-features = false} + +# Polkadot +pallet-xcm = { path = "../../../../../polkadot/xcm/pallet-xcm", default-features = false} +pallet-xcm-benchmarks = { path = "../../../../../polkadot/xcm/pallet-xcm-benchmarks", default-features = false, optional = true } +polkadot-core-primitives = { path = "../../../../../polkadot/core-primitives", default-features = false} +polkadot-parachain-primitives = { path = "../../../../../polkadot/parachain", default-features = false} +polkadot-runtime-common = { path = "../../../../../polkadot/runtime/common", default-features = false} +xcm = { package = "staging-xcm", path = "../../../../../polkadot/xcm", default-features = false} +xcm-builder = { package = "staging-xcm-builder", path = "../../../../../polkadot/xcm/xcm-builder", default-features = false} +xcm-executor = { package = "staging-xcm-executor", path = "../../../../../polkadot/xcm/xcm-executor", default-features = false} + +# Cumulus +cumulus-pallet-aura-ext = { path = "../../../../pallets/aura-ext", default-features = false } +cumulus-pallet-dmp-queue = { path = "../../../../pallets/dmp-queue", default-features = false } +cumulus-pallet-parachain-system = { path = "../../../../pallets/parachain-system", default-features = false, features = ["parameterized-consensus-hook",] } +cumulus-pallet-session-benchmarking = { path = "../../../../pallets/session-benchmarking", default-features = false} +cumulus-pallet-xcm = { path = "../../../../pallets/xcm", default-features = false } +cumulus-pallet-xcmp-queue = { path = "../../../../pallets/xcmp-queue", default-features = false } +cumulus-primitives-core = { path = "../../../../primitives/core", default-features = false } +cumulus-primitives-utility = { path = "../../../../primitives/utility", default-features = false } +pallet-collator-selection = { path = "../../../../pallets/collator-selection", default-features = false } +parachain-info = { path = "../../../pallets/parachain-info", default-features = false } +parachains-common = { path = "../../../common", default-features = false } +assets-common = { path = "../common", default-features = false } + +[dev-dependencies] +hex-literal = "0.4.1" +asset-test-utils = { path = "../test-utils" } + +[build-dependencies] +substrate-wasm-builder = { path = "../../../../../substrate/utils/wasm-builder", optional = true } + +[features] +default = [ "std" ] +runtime-benchmarks = [ + "assets-common/runtime-benchmarks", + "cumulus-pallet-parachain-system/runtime-benchmarks", + "cumulus-pallet-session-benchmarking/runtime-benchmarks", + "cumulus-pallet-xcmp-queue/runtime-benchmarks", + "cumulus-primitives-utility/runtime-benchmarks", + "frame-benchmarking/runtime-benchmarks", + "frame-support/runtime-benchmarks", + "frame-system-benchmarking/runtime-benchmarks", + "frame-system/runtime-benchmarks", + "hex-literal", + "pallet-asset-tx-payment/runtime-benchmarks", + "pallet-assets/runtime-benchmarks", + "pallet-balances/runtime-benchmarks", + "pallet-collator-selection/runtime-benchmarks", + "pallet-multisig/runtime-benchmarks", + "pallet-nfts/runtime-benchmarks", + "pallet-proxy/runtime-benchmarks", + "pallet-timestamp/runtime-benchmarks", + "pallet-uniques/runtime-benchmarks", + "pallet-utility/runtime-benchmarks", + "pallet-xcm-benchmarks/runtime-benchmarks", + "pallet-xcm/runtime-benchmarks", + "parachains-common/runtime-benchmarks", + "polkadot-parachain-primitives/runtime-benchmarks", + "polkadot-runtime-common/runtime-benchmarks", + "sp-runtime/runtime-benchmarks", + "xcm-builder/runtime-benchmarks", + "xcm-executor/runtime-benchmarks", +] +try-runtime = [ + "cumulus-pallet-aura-ext/try-runtime", + "cumulus-pallet-dmp-queue/try-runtime", + "cumulus-pallet-parachain-system/try-runtime", + "cumulus-pallet-xcm/try-runtime", + "cumulus-pallet-xcmp-queue/try-runtime", + "frame-executive/try-runtime", + "frame-support/try-runtime", + "frame-system/try-runtime", + "frame-try-runtime/try-runtime", + "pallet-asset-tx-payment/try-runtime", + "pallet-assets/try-runtime", + "pallet-aura/try-runtime", + "pallet-authorship/try-runtime", + "pallet-balances/try-runtime", + "pallet-collator-selection/try-runtime", + "pallet-multisig/try-runtime", + "pallet-nfts/try-runtime", + "pallet-proxy/try-runtime", + "pallet-session/try-runtime", + "pallet-timestamp/try-runtime", + "pallet-transaction-payment/try-runtime", + "pallet-uniques/try-runtime", + "pallet-utility/try-runtime", + "pallet-xcm/try-runtime", + "parachain-info/try-runtime", + "polkadot-runtime-common/try-runtime", + "sp-runtime/try-runtime", +] +std = [ + "assets-common/std", + "codec/std", + "cumulus-pallet-aura-ext/std", + "cumulus-pallet-dmp-queue/std", + "cumulus-pallet-parachain-system/std", + "cumulus-pallet-session-benchmarking/std", + "cumulus-pallet-xcm/std", + "cumulus-pallet-xcmp-queue/std", + "cumulus-primitives-core/std", + "cumulus-primitives-utility/std", + "frame-benchmarking?/std", + "frame-executive/std", + "frame-support/std", + "frame-system-benchmarking?/std", + "frame-system-rpc-runtime-api/std", + "frame-system/std", + "frame-try-runtime?/std", + "log/std", + "pallet-asset-tx-payment/std", + "pallet-assets/std", + "pallet-aura/std", + "pallet-authorship/std", + "pallet-balances/std", + "pallet-collator-selection/std", + "pallet-multisig/std", + "pallet-nfts-runtime-api/std", + "pallet-nfts/std", + "pallet-proxy/std", + "pallet-session/std", + "pallet-timestamp/std", + "pallet-transaction-payment-rpc-runtime-api/std", + "pallet-transaction-payment/std", + "pallet-uniques/std", + "pallet-utility/std", + "pallet-xcm-benchmarks?/std", + "pallet-xcm/std", + "parachain-info/std", + "parachains-common/std", + "polkadot-core-primitives/std", + "polkadot-parachain-primitives/std", + "polkadot-runtime-common/std", + "scale-info/std", + "sp-api/std", + "sp-block-builder/std", + "sp-consensus-aura/std", + "sp-core/std", + "sp-genesis-builder/std", + "sp-inherents/std", + "sp-offchain/std", + "sp-runtime/std", + "sp-session/std", + "sp-std/std", + "sp-storage/std", + "sp-transaction-pool/std", + "sp-version/std", + "sp-weights/std", + "substrate-wasm-builder", + "xcm-builder/std", + "xcm-executor/std", + "xcm/std", +] + +experimental = [ "pallet-aura/experimental" ] diff --git a/cumulus/parachains/runtimes/assets/asset-hub-polkadot/build.rs b/cumulus/parachains/runtimes/assets/asset-hub-polkadot/build.rs new file mode 100644 index 000000000000..60f8a125129f --- /dev/null +++ b/cumulus/parachains/runtimes/assets/asset-hub-polkadot/build.rs @@ -0,0 +1,26 @@ +// 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. + +#[cfg(feature = "std")] +fn main() { + substrate_wasm_builder::WasmBuilder::new() + .with_current_project() + .export_heap_base() + .import_memory() + .build() +} + +#[cfg(not(feature = "std"))] +fn main() {} diff --git a/cumulus/parachains/runtimes/assets/asset-hub-polkadot/src/lib.rs b/cumulus/parachains/runtimes/assets/asset-hub-polkadot/src/lib.rs new file mode 100644 index 000000000000..7033e1c2dcac --- /dev/null +++ b/cumulus/parachains/runtimes/assets/asset-hub-polkadot/src/lib.rs @@ -0,0 +1,1314 @@ +// 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. + +//! # Asset Hub Polkadot Runtime +//! +//! Asset Hub Polkadot is a parachain that provides an interface to create, manage, and use assets. +//! Assets may be fungible or non-fungible. +//! +//! ## Renaming +//! +//! This chain was originally known as "Statemint". You may see references to Statemint, Statemine, +//! and Westmint throughout the codebase. These are synonymous with "Asset Hub Polkadot, Kusama, and +//! Westend", respectively. +//! +//! ## Assets +//! +//! - Fungibles: Configuration of `pallet-assets`. +//! - Non-Fungibles (NFTs): Configuration of `pallet-uniques`. +//! +//! ## Other Functionality +//! +//! ### Native Balances +//! +//! Asset Hub Polkadot uses its parent DOT token as its native asset. +//! +//! ### Governance +//! +//! As a system parachain, Asset Hub defers its governance (namely, its `Root` origin), to its +//! Relay Chain parent, Polkadot. +//! +//! ### Collator Selection +//! +//! Asset Hub uses `pallet-collator-selection`, a simple first-come-first-served registration +//! system where collators can reserve a small bond to join the block producer set. There is no +//! slashing. +//! +//! ### XCM +//! +//! Because Asset Hub is fully under the control of the Relay Chain, it is meant to be a +//! `TrustedTeleporter`. It can also serve as a reserve location to other parachains for DOT as well +//! as other local assets. + +#![cfg_attr(not(feature = "std"), no_std)] +#![recursion_limit = "256"] + +// Make the WASM binary available. +#[cfg(feature = "std")] +include!(concat!(env!("OUT_DIR"), "/wasm_binary.rs")); + +mod weights; +pub mod xcm_config; + +use assets_common::{ + foreign_creators::ForeignCreators, matching::FromSiblingParachain, MultiLocationForAssetId, +}; +use cumulus_pallet_parachain_system::RelayNumberStrictlyIncreases; +use cumulus_primitives_core::ParaId; +use polkadot_runtime_common::xcm_sender::NoPriceForMessageDelivery; +use sp_api::impl_runtime_apis; +use sp_core::{crypto::KeyTypeId, OpaqueMetadata}; +use sp_runtime::{ + create_runtime_str, generic, impl_opaque_keys, + traits::{AccountIdLookup, BlakeTwo256, Block as BlockT, ConvertInto, Verify}, + transaction_validity::{TransactionSource, TransactionValidity}, + ApplyExtrinsicResult, +}; + +use sp_std::prelude::*; +#[cfg(feature = "std")] +use sp_version::NativeVersion; +use sp_version::RuntimeVersion; + +use codec::{Decode, Encode, MaxEncodedLen}; +use frame_support::{ + construct_runtime, + dispatch::DispatchClass, + genesis_builder_helper::{build_config, create_default_config}, + parameter_types, + traits::{ + AsEnsureOriginWithArg, ConstBool, ConstU32, ConstU64, ConstU8, EitherOfDiverse, + InstanceFilter, + }, + weights::{ConstantMultiplier, Weight}, + PalletId, +}; +use frame_system::{ + limits::{BlockLength, BlockWeights}, + EnsureRoot, EnsureSigned, +}; +use pallet_nfts::PalletFeatures; +pub use parachains_common as common; +use parachains_common::{ + impls::{AssetsToBlockAuthor, DealWithFees}, + polkadot::{consensus::*, currency::*, fee::WeightToFee}, + AccountId, AssetHubPolkadotAuraId as AuraId, AssetIdForTrustBackedAssets, Balance, BlockNumber, + Hash, Header, Nonce, Signature, AVERAGE_ON_INITIALIZE_RATIO, DAYS, HOURS, MAXIMUM_BLOCK_WEIGHT, + NORMAL_DISPATCH_RATIO, SLOT_DURATION, +}; +use sp_runtime::RuntimeDebug; +use xcm_config::{ + DotLocation, FellowshipLocation, ForeignAssetsConvertedConcreteId, GovernanceLocation, + TrustBackedAssetsConvertedConcreteId, XcmConfig, XcmOriginToTransactDispatchOrigin, +}; + +#[cfg(any(feature = "std", test))] +pub use sp_runtime::BuildStorage; + +// Polkadot imports +use pallet_xcm::{EnsureXcm, IsVoiceOfBody}; +use polkadot_runtime_common::{BlockHashCount, SlowAdjustingFeeUpdate}; +use xcm::latest::prelude::*; +use xcm_executor::XcmExecutor; + +use crate::xcm_config::ForeignCreatorsSovereignAccountOf; +use weights::{BlockExecutionWeight, ExtrinsicBaseWeight, RocksDbWeight}; + +impl_opaque_keys! { + pub struct SessionKeys { + pub aura: Aura, + } +} + +#[sp_version::runtime_version] +pub const VERSION: RuntimeVersion = RuntimeVersion { + // Note: "statemint" is the legacy name for this chain. It has been renamed to + // "asset-hub-polkadot". Many wallets/tools depend on the `spec_name`, so it remains "statemint" + // for the time being. Wallets/tools should update to treat "asset-hub-polkadot" equally. + spec_name: create_runtime_str!("statemint"), + impl_name: create_runtime_str!("statemint"), + authoring_version: 1, + spec_version: 10000, + impl_version: 0, + apis: RUNTIME_API_VERSIONS, + transaction_version: 13, + state_version: 0, +}; + +/// The version information used to identify this runtime when compiled natively. +#[cfg(feature = "std")] +pub fn native_version() -> NativeVersion { + NativeVersion { runtime_version: VERSION, can_author_with: Default::default() } +} + +parameter_types! { + pub const Version: RuntimeVersion = VERSION; + pub RuntimeBlockLength: BlockLength = + BlockLength::max_with_normal_ratio(5 * 1024 * 1024, NORMAL_DISPATCH_RATIO); + pub RuntimeBlockWeights: BlockWeights = BlockWeights::builder() + .base_block(BlockExecutionWeight::get()) + .for_class(DispatchClass::all(), |weights| { + weights.base_extrinsic = ExtrinsicBaseWeight::get(); + }) + .for_class(DispatchClass::Normal, |weights| { + weights.max_total = Some(NORMAL_DISPATCH_RATIO * MAXIMUM_BLOCK_WEIGHT); + }) + .for_class(DispatchClass::Operational, |weights| { + weights.max_total = Some(MAXIMUM_BLOCK_WEIGHT); + // Operational transactions have some extra reserved space, so that they + // are included even if block reached `MAXIMUM_BLOCK_WEIGHT`. + weights.reserved = Some( + MAXIMUM_BLOCK_WEIGHT - NORMAL_DISPATCH_RATIO * MAXIMUM_BLOCK_WEIGHT + ); + }) + .avg_block_initialization(AVERAGE_ON_INITIALIZE_RATIO) + .build_or_panic(); + pub const SS58Prefix: u8 = 0; +} + +// Configure FRAME pallets to include in runtime. +impl frame_system::Config for Runtime { + type BaseCallFilter = frame_support::traits::Everything; + type BlockWeights = RuntimeBlockWeights; + type BlockLength = RuntimeBlockLength; + type AccountId = AccountId; + type RuntimeCall = RuntimeCall; + type Lookup = AccountIdLookup; + type Nonce = Nonce; + type Hash = Hash; + type Hashing = BlakeTwo256; + type Block = Block; + type RuntimeEvent = RuntimeEvent; + type RuntimeOrigin = RuntimeOrigin; + type BlockHashCount = BlockHashCount; + type DbWeight = RocksDbWeight; + type Version = Version; + type PalletInfo = PalletInfo; + type OnNewAccount = (); + type OnKilledAccount = (); + type AccountData = pallet_balances::AccountData; + type SystemWeightInfo = weights::frame_system::WeightInfo; + type SS58Prefix = SS58Prefix; + type OnSetCode = cumulus_pallet_parachain_system::ParachainSetCode; + type MaxConsumers = frame_support::traits::ConstU32<16>; +} + +impl pallet_timestamp::Config for Runtime { + /// A timestamp: milliseconds since the unix epoch. + type Moment = u64; + type OnTimestampSet = Aura; + type MinimumPeriod = ConstU64<{ SLOT_DURATION / 2 }>; + type WeightInfo = weights::pallet_timestamp::WeightInfo; +} + +impl pallet_authorship::Config for Runtime { + type FindAuthor = pallet_session::FindAccountFromAuthorIndex; + type EventHandler = (CollatorSelection,); +} + +parameter_types! { + pub const ExistentialDeposit: Balance = EXISTENTIAL_DEPOSIT; +} + +impl pallet_balances::Config for Runtime { + type MaxLocks = ConstU32<50>; + /// The type for recording an account's balance. + type Balance = Balance; + /// The ubiquitous event type. + type RuntimeEvent = RuntimeEvent; + type DustRemoval = (); + type ExistentialDeposit = ExistentialDeposit; + type AccountStore = System; + type WeightInfo = weights::pallet_balances::WeightInfo; + type MaxReserves = ConstU32<50>; + type ReserveIdentifier = [u8; 8]; + type RuntimeHoldReason = RuntimeHoldReason; + type RuntimeFreezeReason = RuntimeFreezeReason; + type FreezeIdentifier = (); + type MaxHolds = ConstU32<0>; + type MaxFreezes = ConstU32<0>; +} + +parameter_types! { + /// Relay Chain `TransactionByteFee` / 10 + pub const TransactionByteFee: Balance = MILLICENTS; +} + +impl pallet_transaction_payment::Config for Runtime { + type RuntimeEvent = RuntimeEvent; + type OnChargeTransaction = + pallet_transaction_payment::CurrencyAdapter>; + type WeightToFee = WeightToFee; + type LengthToFee = ConstantMultiplier; + type FeeMultiplierUpdate = SlowAdjustingFeeUpdate; + type OperationalFeeMultiplier = ConstU8<5>; +} + +parameter_types! { + pub const AssetDeposit: Balance = 10 * UNITS; // 10 UNITS deposit to create fungible asset class + pub const AssetAccountDeposit: Balance = deposit(1, 16); + pub const ApprovalDeposit: Balance = EXISTENTIAL_DEPOSIT; + pub const AssetsStringLimit: u32 = 50; + /// Key = 32 bytes, Value = 36 bytes (32+1+1+1+1) + // https://github.com/paritytech/substrate/blob/069917b/frame/assets/src/lib.rs#L257L271 + pub const MetadataDepositBase: Balance = deposit(1, 68); + pub const MetadataDepositPerByte: Balance = deposit(0, 1); +} + +/// We allow root to execute privileged asset operations. +pub type AssetsForceOrigin = EnsureRoot; + +// Called "Trust Backed" assets because these are generally registered by some account, and users of +// the asset assume it has some claimed backing. The pallet is called `Assets` in +// `construct_runtime` to avoid breaking changes on storage reads. +pub type TrustBackedAssetsInstance = pallet_assets::Instance1; +type TrustBackedAssetsCall = pallet_assets::Call; +impl pallet_assets::Config for Runtime { + type RuntimeEvent = RuntimeEvent; + type Balance = Balance; + type AssetId = AssetIdForTrustBackedAssets; + type AssetIdParameter = codec::Compact; + type Currency = Balances; + type CreateOrigin = AsEnsureOriginWithArg>; + type ForceOrigin = AssetsForceOrigin; + type AssetDeposit = AssetDeposit; + type MetadataDepositBase = MetadataDepositBase; + type MetadataDepositPerByte = MetadataDepositPerByte; + type ApprovalDeposit = ApprovalDeposit; + type StringLimit = AssetsStringLimit; + type Freezer = (); + type Extra = (); + type WeightInfo = weights::pallet_assets_local::WeightInfo; + type CallbackHandle = (); + type AssetAccountDeposit = AssetAccountDeposit; + type RemoveItemsLimit = frame_support::traits::ConstU32<1000>; + #[cfg(feature = "runtime-benchmarks")] + type BenchmarkHelper = (); +} + +parameter_types! { + // we just reuse the same deposits + pub const ForeignAssetsAssetDeposit: Balance = AssetDeposit::get(); + pub const ForeignAssetsAssetAccountDeposit: Balance = AssetAccountDeposit::get(); + pub const ForeignAssetsApprovalDeposit: Balance = ApprovalDeposit::get(); + pub const ForeignAssetsAssetsStringLimit: u32 = AssetsStringLimit::get(); + pub const ForeignAssetsMetadataDepositBase: Balance = MetadataDepositBase::get(); + pub const ForeignAssetsMetadataDepositPerByte: Balance = MetadataDepositPerByte::get(); +} + +/// Assets managed by some foreign location. Note: we do not declare a `ForeignAssetsCall` type, as +/// this type is used in proxy definitions. We assume that a foreign location would not want to set +/// an individual, local account as a proxy for the issuance of their assets. This issuance should +/// be managed by the foreign location's governance. +pub type ForeignAssetsInstance = pallet_assets::Instance2; +impl pallet_assets::Config for Runtime { + type RuntimeEvent = RuntimeEvent; + type Balance = Balance; + type AssetId = MultiLocationForAssetId; + type AssetIdParameter = MultiLocationForAssetId; + type Currency = Balances; + type CreateOrigin = ForeignCreators< + (FromSiblingParachain>,), + ForeignCreatorsSovereignAccountOf, + AccountId, + >; + type ForceOrigin = AssetsForceOrigin; + type AssetDeposit = ForeignAssetsAssetDeposit; + type MetadataDepositBase = ForeignAssetsMetadataDepositBase; + type MetadataDepositPerByte = ForeignAssetsMetadataDepositPerByte; + type ApprovalDeposit = ForeignAssetsApprovalDeposit; + type StringLimit = ForeignAssetsAssetsStringLimit; + type Freezer = (); + type Extra = (); + type WeightInfo = weights::pallet_assets_foreign::WeightInfo; + type CallbackHandle = (); + type AssetAccountDeposit = ForeignAssetsAssetAccountDeposit; + type RemoveItemsLimit = frame_support::traits::ConstU32<1000>; + #[cfg(feature = "runtime-benchmarks")] + type BenchmarkHelper = xcm_config::XcmBenchmarkHelper; +} + +parameter_types! { + // One storage item; key size is 32; value is size 4+4+16+32 bytes = 56 bytes. + pub const DepositBase: Balance = deposit(1, 88); + // Additional storage item size of 32 bytes. + pub const DepositFactor: Balance = deposit(0, 32); + pub const MaxSignatories: u32 = 100; +} + +impl pallet_multisig::Config for Runtime { + type RuntimeEvent = RuntimeEvent; + type RuntimeCall = RuntimeCall; + type Currency = Balances; + type DepositBase = DepositBase; + type DepositFactor = DepositFactor; + type MaxSignatories = MaxSignatories; + type WeightInfo = weights::pallet_multisig::WeightInfo; +} + +impl pallet_utility::Config for Runtime { + type RuntimeEvent = RuntimeEvent; + type RuntimeCall = RuntimeCall; + type PalletsOrigin = OriginCaller; + type WeightInfo = weights::pallet_utility::WeightInfo; +} + +parameter_types! { + // One storage item; key size 32, value size 8; . + pub const ProxyDepositBase: Balance = deposit(1, 40); + // Additional storage item size of 33 bytes. + pub const ProxyDepositFactor: Balance = deposit(0, 33); + pub const MaxProxies: u16 = 32; + // One storage item; key size 32, value size 16 + pub const AnnouncementDepositBase: Balance = deposit(1, 48); + pub const AnnouncementDepositFactor: Balance = deposit(0, 66); + pub const MaxPending: u16 = 32; +} + +/// The type used to represent the kinds of proxying allowed. +#[derive( + Copy, + Clone, + Eq, + PartialEq, + Ord, + PartialOrd, + Encode, + Decode, + RuntimeDebug, + MaxEncodedLen, + scale_info::TypeInfo, +)] +pub enum ProxyType { + /// Fully permissioned proxy. Can execute any call on behalf of _proxied_. + Any, + /// Can execute any call that does not transfer funds or assets. + NonTransfer, + /// Proxy with the ability to reject time-delay proxy announcements. + CancelProxy, + /// Assets proxy. Can execute any call from `assets`, **including asset transfers**. + Assets, + /// Owner proxy. Can execute calls related to asset ownership. + AssetOwner, + /// Asset manager. Can execute calls related to asset management. + AssetManager, + /// Collator selection proxy. Can execute calls related to collator selection mechanism. + Collator, +} +impl Default for ProxyType { + fn default() -> Self { + Self::Any + } +} + +impl InstanceFilter for ProxyType { + fn filter(&self, c: &RuntimeCall) -> bool { + match self { + ProxyType::Any => true, + ProxyType::NonTransfer => !matches!( + c, + RuntimeCall::Balances { .. } | + RuntimeCall::Assets { .. } | + RuntimeCall::Nfts { .. } | + RuntimeCall::Uniques { .. } + ), + ProxyType::CancelProxy => matches!( + c, + RuntimeCall::Proxy(pallet_proxy::Call::reject_announcement { .. }) | + RuntimeCall::Utility { .. } | + RuntimeCall::Multisig { .. } + ), + ProxyType::Assets => { + matches!( + c, + RuntimeCall::Assets { .. } | + RuntimeCall::Utility { .. } | + RuntimeCall::Multisig { .. } | + RuntimeCall::Nfts { .. } | RuntimeCall::Uniques { .. } + ) + }, + ProxyType::AssetOwner => matches!( + c, + RuntimeCall::Assets(TrustBackedAssetsCall::create { .. }) | + RuntimeCall::Assets(TrustBackedAssetsCall::start_destroy { .. }) | + RuntimeCall::Assets(TrustBackedAssetsCall::destroy_accounts { .. }) | + RuntimeCall::Assets(TrustBackedAssetsCall::destroy_approvals { .. }) | + RuntimeCall::Assets(TrustBackedAssetsCall::finish_destroy { .. }) | + RuntimeCall::Assets(TrustBackedAssetsCall::transfer_ownership { .. }) | + RuntimeCall::Assets(TrustBackedAssetsCall::set_team { .. }) | + RuntimeCall::Assets(TrustBackedAssetsCall::set_metadata { .. }) | + RuntimeCall::Assets(TrustBackedAssetsCall::clear_metadata { .. }) | + RuntimeCall::Assets(TrustBackedAssetsCall::set_min_balance { .. }) | + RuntimeCall::Nfts(pallet_nfts::Call::create { .. }) | + RuntimeCall::Nfts(pallet_nfts::Call::destroy { .. }) | + RuntimeCall::Nfts(pallet_nfts::Call::redeposit { .. }) | + RuntimeCall::Nfts(pallet_nfts::Call::transfer_ownership { .. }) | + RuntimeCall::Nfts(pallet_nfts::Call::set_team { .. }) | + RuntimeCall::Nfts(pallet_nfts::Call::set_collection_max_supply { .. }) | + RuntimeCall::Nfts(pallet_nfts::Call::lock_collection { .. }) | + RuntimeCall::Uniques(pallet_uniques::Call::create { .. }) | + RuntimeCall::Uniques(pallet_uniques::Call::destroy { .. }) | + RuntimeCall::Uniques(pallet_uniques::Call::transfer_ownership { .. }) | + RuntimeCall::Uniques(pallet_uniques::Call::set_team { .. }) | + RuntimeCall::Uniques(pallet_uniques::Call::set_metadata { .. }) | + RuntimeCall::Uniques(pallet_uniques::Call::set_attribute { .. }) | + RuntimeCall::Uniques(pallet_uniques::Call::set_collection_metadata { .. }) | + RuntimeCall::Uniques(pallet_uniques::Call::clear_metadata { .. }) | + RuntimeCall::Uniques(pallet_uniques::Call::clear_attribute { .. }) | + RuntimeCall::Uniques(pallet_uniques::Call::clear_collection_metadata { .. }) | + RuntimeCall::Uniques(pallet_uniques::Call::set_collection_max_supply { .. }) | + RuntimeCall::Utility { .. } | + RuntimeCall::Multisig { .. } + ), + ProxyType::AssetManager => matches!( + c, + RuntimeCall::Assets(TrustBackedAssetsCall::mint { .. }) | + RuntimeCall::Assets(TrustBackedAssetsCall::burn { .. }) | + RuntimeCall::Assets(TrustBackedAssetsCall::freeze { .. }) | + RuntimeCall::Assets(TrustBackedAssetsCall::block { .. }) | + RuntimeCall::Assets(TrustBackedAssetsCall::thaw { .. }) | + RuntimeCall::Assets(TrustBackedAssetsCall::freeze_asset { .. }) | + RuntimeCall::Assets(TrustBackedAssetsCall::thaw_asset { .. }) | + RuntimeCall::Assets(TrustBackedAssetsCall::touch_other { .. }) | + RuntimeCall::Assets(TrustBackedAssetsCall::refund_other { .. }) | + RuntimeCall::Nfts(pallet_nfts::Call::force_mint { .. }) | + RuntimeCall::Nfts(pallet_nfts::Call::update_mint_settings { .. }) | + RuntimeCall::Nfts(pallet_nfts::Call::mint_pre_signed { .. }) | + RuntimeCall::Nfts(pallet_nfts::Call::set_attributes_pre_signed { .. }) | + RuntimeCall::Nfts(pallet_nfts::Call::lock_item_transfer { .. }) | + RuntimeCall::Nfts(pallet_nfts::Call::unlock_item_transfer { .. }) | + RuntimeCall::Nfts(pallet_nfts::Call::lock_item_properties { .. }) | + RuntimeCall::Nfts(pallet_nfts::Call::set_metadata { .. }) | + RuntimeCall::Nfts(pallet_nfts::Call::clear_metadata { .. }) | + RuntimeCall::Nfts(pallet_nfts::Call::set_collection_metadata { .. }) | + RuntimeCall::Nfts(pallet_nfts::Call::clear_collection_metadata { .. }) | + RuntimeCall::Uniques(pallet_uniques::Call::mint { .. }) | + RuntimeCall::Uniques(pallet_uniques::Call::burn { .. }) | + RuntimeCall::Uniques(pallet_uniques::Call::freeze { .. }) | + RuntimeCall::Uniques(pallet_uniques::Call::thaw { .. }) | + RuntimeCall::Uniques(pallet_uniques::Call::freeze_collection { .. }) | + RuntimeCall::Uniques(pallet_uniques::Call::thaw_collection { .. }) | + RuntimeCall::Utility { .. } | + RuntimeCall::Multisig { .. } + ), + ProxyType::Collator => matches!( + c, + RuntimeCall::CollatorSelection { .. } | + RuntimeCall::Utility { .. } | + RuntimeCall::Multisig { .. } + ), + } + } + + fn is_superset(&self, o: &Self) -> bool { + match (self, o) { + (x, y) if x == y => true, + (ProxyType::Any, _) => true, + (_, ProxyType::Any) => false, + (ProxyType::Assets, ProxyType::AssetOwner) => true, + (ProxyType::Assets, ProxyType::AssetManager) => true, + (ProxyType::NonTransfer, ProxyType::Collator) => true, + _ => false, + } + } +} + +impl pallet_proxy::Config for Runtime { + type RuntimeEvent = RuntimeEvent; + type RuntimeCall = RuntimeCall; + type Currency = Balances; + type ProxyType = ProxyType; + type ProxyDepositBase = ProxyDepositBase; + type ProxyDepositFactor = ProxyDepositFactor; + type MaxProxies = MaxProxies; + type WeightInfo = weights::pallet_proxy::WeightInfo; + type MaxPending = MaxPending; + type CallHasher = BlakeTwo256; + type AnnouncementDepositBase = AnnouncementDepositBase; + type AnnouncementDepositFactor = AnnouncementDepositFactor; +} + +parameter_types! { + pub const ReservedXcmpWeight: Weight = MAXIMUM_BLOCK_WEIGHT.saturating_div(4); + pub const ReservedDmpWeight: Weight = MAXIMUM_BLOCK_WEIGHT.saturating_div(4); +} + +impl cumulus_pallet_parachain_system::Config for Runtime { + type RuntimeEvent = RuntimeEvent; + type OnSystemEvent = (); + type SelfParaId = parachain_info::Pallet; + type DmpMessageHandler = DmpQueue; + type ReservedDmpWeight = ReservedDmpWeight; + type OutboundXcmpMessageSource = XcmpQueue; + type XcmpMessageHandler = XcmpQueue; + type ReservedXcmpWeight = ReservedXcmpWeight; + type CheckAssociatedRelayNumber = RelayNumberStrictlyIncreases; + type ConsensusHook = cumulus_pallet_aura_ext::FixedVelocityConsensusHook< + Runtime, + RELAY_CHAIN_SLOT_DURATION_MILLIS, + BLOCK_PROCESSING_VELOCITY, + UNINCLUDED_SEGMENT_CAPACITY, + >; +} + +impl parachain_info::Config for Runtime {} + +impl cumulus_pallet_aura_ext::Config for Runtime {} + +parameter_types! { + // Fellows pluralistic body. + pub const FellowsBodyId: BodyId = BodyId::Technical; +} + +impl cumulus_pallet_xcmp_queue::Config for Runtime { + type WeightInfo = weights::cumulus_pallet_xcmp_queue::WeightInfo; + type RuntimeEvent = RuntimeEvent; + type XcmExecutor = XcmExecutor; + type ChannelInfo = ParachainSystem; + type VersionWrapper = PolkadotXcm; + type ExecuteOverweightOrigin = EnsureRoot; + type ControllerOrigin = EitherOfDiverse< + EnsureRoot, + EnsureXcm>, + >; + type ControllerOriginConverter = XcmOriginToTransactDispatchOrigin; + type PriceForSiblingDelivery = NoPriceForMessageDelivery; +} + +impl cumulus_pallet_dmp_queue::Config for Runtime { + type RuntimeEvent = RuntimeEvent; + type XcmExecutor = XcmExecutor; + type ExecuteOverweightOrigin = EnsureRoot; +} + +parameter_types! { + pub const Period: u32 = 6 * HOURS; + pub const Offset: u32 = 0; +} + +impl pallet_session::Config for Runtime { + type RuntimeEvent = RuntimeEvent; + type ValidatorId = ::AccountId; + // we don't have stash and controller, thus we don't need the convert as well. + type ValidatorIdOf = pallet_collator_selection::IdentityCollator; + type ShouldEndSession = pallet_session::PeriodicSessions; + type NextSessionRotation = pallet_session::PeriodicSessions; + type SessionManager = CollatorSelection; + // Essentially just Aura, but let's be pedantic. + type SessionHandler = ::KeyTypeIdProviders; + type Keys = SessionKeys; + type WeightInfo = weights::pallet_session::WeightInfo; +} + +impl pallet_aura::Config for Runtime { + type AuthorityId = AuraId; + type DisabledValidators = (); + type MaxAuthorities = ConstU32<100_000>; + type AllowMultipleBlocksPerSlot = ConstBool; + #[cfg(feature = "experimental")] + type SlotDuration = pallet_aura::MinimumPeriodTimesTwo; +} + +parameter_types! { + pub const PotId: PalletId = PalletId(*b"PotStake"); + pub const SessionLength: BlockNumber = 6 * HOURS; + // `StakingAdmin` pluralistic body. + pub const StakingAdminBodyId: BodyId = BodyId::Defense; +} + +/// We allow root and the `StakingAdmin` to execute privileged collator selection operations. +pub type CollatorSelectionUpdateOrigin = EitherOfDiverse< + EnsureRoot, + EnsureXcm>, +>; + +impl pallet_collator_selection::Config for Runtime { + type RuntimeEvent = RuntimeEvent; + type Currency = Balances; + type UpdateOrigin = CollatorSelectionUpdateOrigin; + type PotId = PotId; + type MaxCandidates = ConstU32<100>; + type MinEligibleCollators = ConstU32<4>; + type MaxInvulnerables = ConstU32<20>; + // should be a multiple of session or things will get inconsistent + type KickThreshold = Period; + type ValidatorId = ::AccountId; + type ValidatorIdOf = pallet_collator_selection::IdentityCollator; + type ValidatorRegistration = Session; + type WeightInfo = weights::pallet_collator_selection::WeightInfo; +} + +impl pallet_asset_tx_payment::Config for Runtime { + type RuntimeEvent = RuntimeEvent; + type Fungibles = Assets; + type OnChargeAssetTransaction = pallet_asset_tx_payment::FungiblesAdapter< + pallet_assets::BalanceToAssetBalance< + Balances, + Runtime, + ConvertInto, + TrustBackedAssetsInstance, + >, + AssetsToBlockAuthor, + >; +} + +parameter_types! { + pub const UniquesCollectionDeposit: Balance = 10 * UNITS; // 10 UNIT deposit to create uniques class + pub const UniquesItemDeposit: Balance = UNITS / 100; // 1 / 100 UNIT deposit to create uniques instance + pub const UniquesMetadataDepositBase: Balance = deposit(1, 129); + pub const UniquesAttributeDepositBase: Balance = deposit(1, 0); + pub const UniquesDepositPerByte: Balance = deposit(0, 1); +} + +impl pallet_uniques::Config for Runtime { + type RuntimeEvent = RuntimeEvent; + type CollectionId = u32; + type ItemId = u32; + type Currency = Balances; + type ForceOrigin = AssetsForceOrigin; + type CollectionDeposit = UniquesCollectionDeposit; + type ItemDeposit = UniquesItemDeposit; + type MetadataDepositBase = UniquesMetadataDepositBase; + type AttributeDepositBase = UniquesAttributeDepositBase; + type DepositPerByte = UniquesDepositPerByte; + type StringLimit = ConstU32<128>; + type KeyLimit = ConstU32<32>; // Max 32 bytes per key + type ValueLimit = ConstU32<64>; // Max 64 bytes per value + type WeightInfo = weights::pallet_uniques::WeightInfo; + #[cfg(feature = "runtime-benchmarks")] + type Helper = (); + type CreateOrigin = AsEnsureOriginWithArg>; + type Locker = (); +} + +parameter_types! { + pub NftsPalletFeatures: PalletFeatures = PalletFeatures::all_enabled(); + pub const NftsMaxDeadlineDuration: BlockNumber = 12 * 30 * DAYS; + // re-use the Uniques deposits + pub const NftsCollectionDeposit: Balance = UniquesCollectionDeposit::get(); + pub const NftsItemDeposit: Balance = UniquesItemDeposit::get(); + pub const NftsMetadataDepositBase: Balance = UniquesMetadataDepositBase::get(); + pub const NftsAttributeDepositBase: Balance = UniquesAttributeDepositBase::get(); + pub const NftsDepositPerByte: Balance = UniquesDepositPerByte::get(); +} + +impl pallet_nfts::Config for Runtime { + type RuntimeEvent = RuntimeEvent; + type CollectionId = u32; + type ItemId = u32; + type Currency = Balances; + type CreateOrigin = AsEnsureOriginWithArg>; + type ForceOrigin = AssetsForceOrigin; + type Locker = (); + type CollectionDeposit = NftsCollectionDeposit; + type ItemDeposit = NftsItemDeposit; + type MetadataDepositBase = NftsMetadataDepositBase; + type AttributeDepositBase = NftsAttributeDepositBase; + type DepositPerByte = NftsDepositPerByte; + type StringLimit = ConstU32<256>; + type KeyLimit = ConstU32<64>; + type ValueLimit = ConstU32<256>; + type ApprovalsLimit = ConstU32<20>; + type ItemAttributesApprovalsLimit = ConstU32<30>; + type MaxTips = ConstU32<10>; + type MaxDeadlineDuration = NftsMaxDeadlineDuration; + type MaxAttributesPerCall = ConstU32<10>; + type Features = NftsPalletFeatures; + type OffchainSignature = Signature; + type OffchainPublic = ::Signer; + type WeightInfo = weights::pallet_nfts::WeightInfo; + #[cfg(feature = "runtime-benchmarks")] + type Helper = (); +} + +// Create the runtime by composing the FRAME pallets that were previously configured. +construct_runtime!( + pub enum Runtime + { + // System support stuff. + System: frame_system::{Pallet, Call, Config, Storage, Event} = 0, + ParachainSystem: cumulus_pallet_parachain_system::{ + Pallet, Call, Config, Storage, Inherent, Event, ValidateUnsigned, + } = 1, + // RandomnessCollectiveFlip = 2 removed + Timestamp: pallet_timestamp::{Pallet, Call, Storage, Inherent} = 3, + ParachainInfo: parachain_info::{Pallet, Storage, Config} = 4, + + // Monetary stuff. + Balances: pallet_balances::{Pallet, Call, Storage, Config, Event} = 10, + TransactionPayment: pallet_transaction_payment::{Pallet, Storage, Event} = 11, + AssetTxPayment: pallet_asset_tx_payment::{Pallet, Event} = 12, + + // Collator support. the order of these 5 are important and shall not change. + Authorship: pallet_authorship::{Pallet, Storage} = 20, + CollatorSelection: pallet_collator_selection::{Pallet, Call, Storage, Event, Config} = 21, + Session: pallet_session::{Pallet, Call, Storage, Event, Config} = 22, + Aura: pallet_aura::{Pallet, Storage, Config} = 23, + AuraExt: cumulus_pallet_aura_ext::{Pallet, Storage, Config} = 24, + + // XCM helpers. + XcmpQueue: cumulus_pallet_xcmp_queue::{Pallet, Call, Storage, Event} = 30, + PolkadotXcm: pallet_xcm::{Pallet, Call, Storage, Event, Origin, Config} = 31, + CumulusXcm: cumulus_pallet_xcm::{Pallet, Event, Origin} = 32, + DmpQueue: cumulus_pallet_dmp_queue::{Pallet, Call, Storage, Event} = 33, + + // Handy utilities. + Utility: pallet_utility::{Pallet, Call, Event} = 40, + Multisig: pallet_multisig::{Pallet, Call, Storage, Event} = 41, + Proxy: pallet_proxy::{Pallet, Call, Storage, Event} = 42, + + // The main stage. + Assets: pallet_assets::::{Pallet, Call, Storage, Event} = 50, + Uniques: pallet_uniques::{Pallet, Call, Storage, Event} = 51, + Nfts: pallet_nfts::{Pallet, Call, Storage, Event} = 52, + ForeignAssets: pallet_assets::::{Pallet, Call, Storage, Event} = 53, + } +); + +/// The address format for describing accounts. +pub type Address = sp_runtime::MultiAddress; +/// Block type as expected by this runtime. +pub type Block = generic::Block; +/// A Block signed with a Justification +pub type SignedBlock = generic::SignedBlock; +/// BlockId type as expected by this runtime. +pub type BlockId = generic::BlockId; +/// The SignedExtension to the basic transaction logic. +pub type SignedExtra = ( + frame_system::CheckNonZeroSender, + frame_system::CheckSpecVersion, + frame_system::CheckTxVersion, + frame_system::CheckGenesis, + frame_system::CheckEra, + frame_system::CheckNonce, + frame_system::CheckWeight, + pallet_asset_tx_payment::ChargeAssetTxPayment, +); +/// Unchecked extrinsic type as expected by this runtime. +pub type UncheckedExtrinsic = + generic::UncheckedExtrinsic; +/// Migrations to apply on runtime upgrade. +pub type Migrations = (pallet_collator_selection::migration::v1::MigrateToV1,); + +/// Executive: handles dispatch to the various modules. +pub type Executive = frame_executive::Executive< + Runtime, + Block, + frame_system::ChainContext, + Runtime, + AllPalletsWithSystem, + Migrations, +>; + +#[cfg(feature = "runtime-benchmarks")] +#[macro_use] +extern crate frame_benchmarking; + +#[cfg(feature = "runtime-benchmarks")] +mod benches { + define_benchmarks!( + [frame_system, SystemBench::] + [pallet_assets, Local] + [pallet_assets, Foreign] + [pallet_balances, Balances] + [pallet_multisig, Multisig] + [pallet_nfts, Nfts] + [pallet_proxy, Proxy] + [pallet_session, SessionBench::] + [pallet_uniques, Uniques] + [pallet_utility, Utility] + [pallet_timestamp, Timestamp] + [pallet_collator_selection, CollatorSelection] + [cumulus_pallet_xcmp_queue, XcmpQueue] + // XCM + [pallet_xcm, PolkadotXcm] + // NOTE: Make sure you point to the individual modules below. + [pallet_xcm_benchmarks::fungible, XcmBalances] + [pallet_xcm_benchmarks::generic, XcmGeneric] + ); +} + +impl_runtime_apis! { + impl sp_consensus_aura::AuraApi for Runtime { + fn slot_duration() -> sp_consensus_aura::SlotDuration { + sp_consensus_aura::SlotDuration::from_millis(Aura::slot_duration()) + } + + fn authorities() -> Vec { + Aura::authorities().into_inner() + } + } + + impl sp_api::Core for Runtime { + fn version() -> RuntimeVersion { + VERSION + } + + fn execute_block(block: Block) { + Executive::execute_block(block) + } + + fn initialize_block(header: &::Header) { + Executive::initialize_block(header) + } + } + + impl sp_api::Metadata for Runtime { + fn metadata() -> OpaqueMetadata { + OpaqueMetadata::new(Runtime::metadata().into()) + } + + fn metadata_at_version(version: u32) -> Option { + Runtime::metadata_at_version(version) + } + + fn metadata_versions() -> sp_std::vec::Vec { + Runtime::metadata_versions() + } + } + + impl sp_block_builder::BlockBuilder for Runtime { + fn apply_extrinsic(extrinsic: ::Extrinsic) -> ApplyExtrinsicResult { + Executive::apply_extrinsic(extrinsic) + } + + fn finalize_block() -> ::Header { + Executive::finalize_block() + } + + fn inherent_extrinsics(data: sp_inherents::InherentData) -> Vec<::Extrinsic> { + data.create_extrinsics() + } + + fn check_inherents( + block: Block, + data: sp_inherents::InherentData, + ) -> sp_inherents::CheckInherentsResult { + data.check_extrinsics(&block) + } + } + + impl sp_transaction_pool::runtime_api::TaggedTransactionQueue for Runtime { + fn validate_transaction( + source: TransactionSource, + tx: ::Extrinsic, + block_hash: ::Hash, + ) -> TransactionValidity { + Executive::validate_transaction(source, tx, block_hash) + } + } + + impl sp_offchain::OffchainWorkerApi for Runtime { + fn offchain_worker(header: &::Header) { + Executive::offchain_worker(header) + } + } + + impl sp_session::SessionKeys for Runtime { + fn generate_session_keys(seed: Option>) -> Vec { + SessionKeys::generate(seed) + } + + fn decode_session_keys( + encoded: Vec, + ) -> Option, KeyTypeId)>> { + SessionKeys::decode_into_raw_public_keys(&encoded) + } + } + + impl frame_system_rpc_runtime_api::AccountNonceApi for Runtime { + fn account_nonce(account: AccountId) -> Nonce { + System::account_nonce(account) + } + } + + impl pallet_transaction_payment_rpc_runtime_api::TransactionPaymentApi for Runtime { + fn query_info( + uxt: ::Extrinsic, + len: u32, + ) -> pallet_transaction_payment_rpc_runtime_api::RuntimeDispatchInfo { + TransactionPayment::query_info(uxt, len) + } + fn query_fee_details( + uxt: ::Extrinsic, + len: u32, + ) -> pallet_transaction_payment::FeeDetails { + TransactionPayment::query_fee_details(uxt, len) + } + fn query_weight_to_fee(weight: Weight) -> Balance { + TransactionPayment::weight_to_fee(weight) + } + fn query_length_to_fee(length: u32) -> Balance { + TransactionPayment::length_to_fee(length) + } + } + + impl pallet_transaction_payment_rpc_runtime_api::TransactionPaymentCallApi + for Runtime + { + fn query_call_info( + call: RuntimeCall, + len: u32, + ) -> pallet_transaction_payment::RuntimeDispatchInfo { + TransactionPayment::query_call_info(call, len) + } + fn query_call_fee_details( + call: RuntimeCall, + len: u32, + ) -> pallet_transaction_payment::FeeDetails { + TransactionPayment::query_call_fee_details(call, len) + } + fn query_weight_to_fee(weight: Weight) -> Balance { + TransactionPayment::weight_to_fee(weight) + } + fn query_length_to_fee(length: u32) -> Balance { + TransactionPayment::length_to_fee(length) + } + } + + impl assets_common::runtime_api::FungiblesApi< + Block, + AccountId, + > for Runtime + { + fn query_account_balances(account: AccountId) -> Result { + use assets_common::fungible_conversion::{convert, convert_balance}; + Ok([ + // collect pallet_balance + { + let balance = Balances::free_balance(account.clone()); + if balance > 0 { + vec![convert_balance::(balance)?] + } else { + vec![] + } + }, + // collect pallet_assets (TrustBackedAssets) + convert::<_, _, _, _, TrustBackedAssetsConvertedConcreteId>( + Assets::account_balances(account.clone()) + .iter() + .filter(|(_, balance)| balance > &0) + )?, + // collect pallet_assets (ForeignAssets) + convert::<_, _, _, _, ForeignAssetsConvertedConcreteId>( + ForeignAssets::account_balances(account) + .iter() + .filter(|(_, balance)| balance > &0) + )?, + // collect ... e.g. other tokens + ].concat().into()) + } + } + + impl cumulus_primitives_core::CollectCollationInfo for Runtime { + fn collect_collation_info(header: &::Header) -> cumulus_primitives_core::CollationInfo { + ParachainSystem::collect_collation_info(header) + } + } + + #[cfg(feature = "try-runtime")] + impl frame_try_runtime::TryRuntime for Runtime { + fn on_runtime_upgrade(checks: frame_try_runtime::UpgradeCheckSelect) -> (Weight, Weight) { + let weight = Executive::try_runtime_upgrade(checks).unwrap(); + (weight, RuntimeBlockWeights::get().max_block) + } + + fn execute_block( + block: Block, + state_root_check: bool, + signature_check: bool, + select: frame_try_runtime::TryStateSelect, + ) -> Weight { + // NOTE: intentional unwrap: we don't want to propagate the error backwards, and want to + // have a backtrace here. + Executive::try_execute_block(block, state_root_check, signature_check, select).unwrap() + } + } + + #[cfg(feature = "runtime-benchmarks")] + impl frame_benchmarking::Benchmark for Runtime { + fn benchmark_metadata(extra: bool) -> ( + Vec, + Vec, + ) { + use frame_benchmarking::{Benchmarking, BenchmarkList}; + use frame_support::traits::StorageInfoTrait; + use frame_system_benchmarking::Pallet as SystemBench; + use cumulus_pallet_session_benchmarking::Pallet as SessionBench; + + // This is defined once again in dispatch_benchmark, because list_benchmarks! + // and add_benchmarks! are macros exported by define_benchmarks! macros and those types + // are referenced in that call. + type XcmBalances = pallet_xcm_benchmarks::fungible::Pallet::; + type XcmGeneric = pallet_xcm_benchmarks::generic::Pallet::; + + // Benchmark files generated for `Assets/ForeignAssets` instances are by default + // `pallet_assets_assets.rs / pallet_assets_foreign_assets`, which is not really nice, + // so with this redefinition we can change names to nicer: + // `pallet_assets_local.rs / pallet_assets_foreign.rs`. + type Local = pallet_assets::Pallet::; + type Foreign = pallet_assets::Pallet::; + + let mut list = Vec::::new(); + list_benchmarks!(list, extra); + + let storage_info = AllPalletsWithSystem::storage_info(); + (list, storage_info) + } + + fn dispatch_benchmark( + config: frame_benchmarking::BenchmarkConfig + ) -> Result, sp_runtime::RuntimeString> { + use frame_benchmarking::{Benchmarking, BenchmarkBatch, BenchmarkError}; + use sp_storage::TrackedStorageKey; + + use frame_system_benchmarking::Pallet as SystemBench; + impl frame_system_benchmarking::Config for Runtime { + fn setup_set_code_requirements(code: &sp_std::vec::Vec) -> Result<(), BenchmarkError> { + ParachainSystem::initialize_for_set_code_benchmark(code.len() as u32); + Ok(()) + } + + fn verify_set_code() { + System::assert_last_event(cumulus_pallet_parachain_system::Event::::ValidationFunctionStored.into()); + } + } + + use cumulus_pallet_session_benchmarking::Pallet as SessionBench; + impl cumulus_pallet_session_benchmarking::Config for Runtime {} + + use xcm::latest::prelude::*; + use xcm_config::{DotLocation, MaxAssetsIntoHolding}; + use pallet_xcm_benchmarks::asset_instance_from; + + parameter_types! { + pub ExistentialDepositMultiAsset: Option = Some(( + xcm_config::DotLocation::get(), + ExistentialDeposit::get() + ).into()); + } + + impl pallet_xcm_benchmarks::Config for Runtime { + type XcmConfig = xcm_config::XcmConfig; + type AccountIdConverter = xcm_config::LocationToAccountId; + type DeliveryHelper = cumulus_primitives_utility::ToParentDeliveryHelper< + XcmConfig, + ExistentialDepositMultiAsset, + xcm_config::PriceForParentDelivery, + >; + fn valid_destination() -> Result { + Ok(DotLocation::get()) + } + fn worst_case_holding(depositable_count: u32) -> MultiAssets { + // A mix of fungible, non-fungible, and concrete assets. + let holding_non_fungibles = MaxAssetsIntoHolding::get() / 2 - depositable_count; + let holding_fungibles = holding_non_fungibles - 1; + let fungibles_amount: u128 = 100; + let mut assets = (0..holding_fungibles) + .map(|i| { + MultiAsset { + id: Concrete(GeneralIndex(i as u128).into()), + fun: Fungible(fungibles_amount * i as u128), + } + }) + .chain(core::iter::once(MultiAsset { id: Concrete(Here.into()), fun: Fungible(u128::MAX) })) + .chain((0..holding_non_fungibles).map(|i| MultiAsset { + id: Concrete(GeneralIndex(i as u128).into()), + fun: NonFungible(asset_instance_from(i)), + })) + .collect::>(); + + assets.push(MultiAsset { + id: Concrete(DotLocation::get()), + fun: Fungible(1_000_000 * UNITS), + }); + assets.into() + } + } + + parameter_types! { + pub const TrustedTeleporter: Option<(MultiLocation, MultiAsset)> = Some(( + DotLocation::get(), + MultiAsset { fun: Fungible(UNITS), id: Concrete(DotLocation::get()) }, + )); + pub const CheckedAccount: Option<(AccountId, xcm_builder::MintLocation)> = None; + pub const TrustedReserve: Option<(MultiLocation, MultiAsset)> = None; + } + + impl pallet_xcm_benchmarks::fungible::Config for Runtime { + type TransactAsset = Balances; + + type CheckedAccount = CheckedAccount; + type TrustedTeleporter = TrustedTeleporter; + type TrustedReserve = TrustedReserve; + + fn get_multi_asset() -> MultiAsset { + MultiAsset { + id: Concrete(DotLocation::get()), + fun: Fungible(UNITS), + } + } + } + + impl pallet_xcm_benchmarks::generic::Config for Runtime { + type TransactAsset = Balances; + type RuntimeCall = RuntimeCall; + + fn worst_case_response() -> (u64, Response) { + (0u64, Response::Version(Default::default())) + } + + fn worst_case_asset_exchange() -> Result<(MultiAssets, MultiAssets), BenchmarkError> { + Err(BenchmarkError::Skip) + } + + fn universal_alias() -> Result<(MultiLocation, Junction), BenchmarkError> { + Err(BenchmarkError::Skip) + } + + fn transact_origin_and_runtime_call() -> Result<(MultiLocation, RuntimeCall), BenchmarkError> { + Ok((DotLocation::get(), frame_system::Call::remark_with_event { remark: vec![] }.into())) + } + + fn subscribe_origin() -> Result { + Ok(DotLocation::get()) + } + + fn claimable_asset() -> Result<(MultiLocation, MultiLocation, MultiAssets), BenchmarkError> { + let origin = DotLocation::get(); + let assets: MultiAssets = (Concrete(DotLocation::get()), 1_000 * UNITS).into(); + let ticket = MultiLocation { parents: 0, interior: Here }; + Ok((origin, ticket, assets)) + } + + fn unlockable_asset() -> Result<(MultiLocation, MultiLocation, MultiAsset), BenchmarkError> { + Err(BenchmarkError::Skip) + } + + fn export_message_origin_and_destination( + ) -> Result<(MultiLocation, NetworkId, InteriorMultiLocation), BenchmarkError> { + Err(BenchmarkError::Skip) + } + + fn alias_origin() -> Result<(MultiLocation, MultiLocation), BenchmarkError> { + Err(BenchmarkError::Skip) + } + } + + type XcmBalances = pallet_xcm_benchmarks::fungible::Pallet::; + type XcmGeneric = pallet_xcm_benchmarks::generic::Pallet::; + + type Local = pallet_assets::Pallet::; + type Foreign = pallet_assets::Pallet::; + + let whitelist: Vec = vec![ + // Block Number + hex_literal::hex!("26aa394eea5630e07c48ae0c9558cef702a5c1b19ab7a04f536c519aca4983ac").to_vec().into(), + // Total Issuance + hex_literal::hex!("c2261276cc9d1f8598ea4b6a74b15c2f57c875e4cff74148e4628f264b974c80").to_vec().into(), + // Execution Phase + hex_literal::hex!("26aa394eea5630e07c48ae0c9558cef7ff553b5a9862a516939d82b3d3d8661a").to_vec().into(), + // Event Count + hex_literal::hex!("26aa394eea5630e07c48ae0c9558cef70a98fdbe9ce6c55837576c60c7af3850").to_vec().into(), + // System Events + hex_literal::hex!("26aa394eea5630e07c48ae0c9558cef780d41e5e16056765bc8461851072c9d7").to_vec().into(), + //TODO: use from relay_well_known_keys::ACTIVE_CONFIG + hex_literal::hex!("06de3d8a54d27e44a9d5ce189618f22db4b49d95320d9021994c850f25b8e385").to_vec().into(), + ]; + + let mut batches = Vec::::new(); + let params = (&config, &whitelist); + add_benchmarks!(params, batches); + + Ok(batches) + } + } + + impl sp_genesis_builder::GenesisBuilder for Runtime { + fn create_default_config() -> Vec { + create_default_config::() + } + + fn build_config(config: Vec) -> sp_genesis_builder::Result { + build_config::(config) + } + } +} + +cumulus_pallet_parachain_system::register_validate_block! { + Runtime = Runtime, + BlockExecutor = cumulus_pallet_aura_ext::BlockExecutor::, +} + +#[cfg(test)] +mod tests { + use super::*; + use crate::{CENTS, MILLICENTS}; + use parachains_common::polkadot::fee; + use sp_runtime::traits::Zero; + use sp_weights::WeightToFee; + + /// We can fit at least 1000 transfers in a block. + #[test] + fn sane_block_weight() { + use pallet_balances::WeightInfo; + let block = RuntimeBlockWeights::get().max_block; + let base = RuntimeBlockWeights::get().get(DispatchClass::Normal).base_extrinsic; + let transfer = + base + weights::pallet_balances::WeightInfo::::transfer_allow_death(); + + let fit = block.checked_div_per_component(&transfer).unwrap_or_default(); + assert!(fit >= 1000, "{} should be at least 1000", fit); + } + + /// The fee for one transfer is at most 1 CENT. + #[test] + fn sane_transfer_fee() { + use pallet_balances::WeightInfo; + let base = RuntimeBlockWeights::get().get(DispatchClass::Normal).base_extrinsic; + let transfer = + base + weights::pallet_balances::WeightInfo::::transfer_allow_death(); + + let fee: Balance = fee::WeightToFee::weight_to_fee(&transfer); + assert!(fee <= CENTS, "{} MILLICENTS should be at most 1000", fee / MILLICENTS); + } + + /// Weight is being charged for both dimensions. + #[test] + fn weight_charged_for_both_components() { + let fee: Balance = fee::WeightToFee::weight_to_fee(&Weight::from_parts(10_000, 0)); + assert!(!fee.is_zero(), "Charges for ref time"); + + let fee: Balance = fee::WeightToFee::weight_to_fee(&Weight::from_parts(0, 10_000)); + assert_eq!(fee, CENTS, "10kb maps to CENT"); + } + + /// Filling up a block by proof size is at most 30 times more expensive than ref time. + /// + /// This is just a sanity check. + #[test] + fn full_block_fee_ratio() { + let block = RuntimeBlockWeights::get().max_block; + let time_fee: Balance = + fee::WeightToFee::weight_to_fee(&Weight::from_parts(block.ref_time(), 0)); + let proof_fee: Balance = + fee::WeightToFee::weight_to_fee(&Weight::from_parts(0, block.proof_size())); + + let proof_o_time = proof_fee.checked_div(time_fee).unwrap_or_default(); + assert!(proof_o_time <= 30, "{} should be at most 30", proof_o_time); + let time_o_proof = time_fee.checked_div(proof_fee).unwrap_or_default(); + assert!(time_o_proof <= 30, "{} should be at most 30", time_o_proof); + } +} diff --git a/cumulus/parachains/runtimes/assets/asset-hub-polkadot/src/weights/block_weights.rs b/cumulus/parachains/runtimes/assets/asset-hub-polkadot/src/weights/block_weights.rs new file mode 100644 index 000000000000..e7fdb2aae2a0 --- /dev/null +++ b/cumulus/parachains/runtimes/assets/asset-hub-polkadot/src/weights/block_weights.rs @@ -0,0 +1,53 @@ +// This file is part of Substrate. + +// 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. + +pub mod constants { + use frame_support::{ + parameter_types, + weights::{constants, Weight}, + }; + + parameter_types! { + /// Importing a block with 0 Extrinsics. + pub const BlockExecutionWeight: Weight = + Weight::from_parts(constants::WEIGHT_REF_TIME_PER_NANOS.saturating_mul(5_000_000), 0); + } + + #[cfg(test)] + mod test_weights { + use frame_support::weights::constants; + + /// Checks that the weight exists and is sane. + // NOTE: If this test fails but you are sure that the generated values are fine, + // you can delete it. + #[test] + fn sane() { + let w = super::constants::BlockExecutionWeight::get(); + + // At least 100 µs. + assert!( + w.ref_time() >= 100u64 * constants::WEIGHT_REF_TIME_PER_MICROS, + "Weight should be at least 100 µs." + ); + // At most 50 ms. + assert!( + w.ref_time() <= 50u64 * constants::WEIGHT_REF_TIME_PER_MILLIS, + "Weight should be at most 50 ms." + ); + } + } +} diff --git a/cumulus/parachains/runtimes/assets/asset-hub-polkadot/src/weights/cumulus_pallet_xcmp_queue.rs b/cumulus/parachains/runtimes/assets/asset-hub-polkadot/src/weights/cumulus_pallet_xcmp_queue.rs new file mode 100644 index 000000000000..65844ce194a0 --- /dev/null +++ b/cumulus/parachains/runtimes/assets/asset-hub-polkadot/src/weights/cumulus_pallet_xcmp_queue.rs @@ -0,0 +1,77 @@ +// Copyright (C) Parity Technologies (UK) Ltd. +// This file is part of Cumulus. + +// Cumulus 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. + +// Cumulus 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 Cumulus. If not, see . + +//! Autogenerated weights for `cumulus_pallet_xcmp_queue` +//! +//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev +//! DATE: 2023-07-31, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! WORST CASE MAP SIZE: `1000000` +//! HOSTNAME: `runner-ynta1nyy-project-238-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz` +//! EXECUTION: ``, WASM-EXECUTION: `Compiled`, CHAIN: `Some("asset-hub-polkadot-dev")`, DB CACHE: 1024 + +// Executed Command: +// ./target/production/polkadot-parachain +// benchmark +// pallet +// --chain=asset-hub-polkadot-dev +// --wasm-execution=compiled +// --pallet=cumulus_pallet_xcmp_queue +// --no-storage-info +// --no-median-slopes +// --no-min-squares +// --extrinsic=* +// --steps=50 +// --repeat=20 +// --json +// --header=./file_header.txt +// --output=./parachains/runtimes/assets/asset-hub-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 `cumulus_pallet_xcmp_queue`. +pub struct WeightInfo(PhantomData); +impl cumulus_pallet_xcmp_queue::WeightInfo for WeightInfo { + /// Storage: `XcmpQueue::QueueConfig` (r:1 w:1) + /// Proof: `XcmpQueue::QueueConfig` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + fn set_config_with_u32() -> Weight { + // Proof Size summary in bytes: + // Measured: `76` + // Estimated: `1561` + // Minimum execution time: 5_240_000 picoseconds. + Weight::from_parts(5_487_000, 0) + .saturating_add(Weight::from_parts(0, 1561)) + .saturating_add(T::DbWeight::get().reads(1)) + .saturating_add(T::DbWeight::get().writes(1)) + } + /// Storage: `XcmpQueue::QueueConfig` (r:1 w:1) + /// Proof: `XcmpQueue::QueueConfig` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + fn set_config_with_weight() -> Weight { + // Proof Size summary in bytes: + // Measured: `76` + // Estimated: `1561` + // Minimum execution time: 5_243_000 picoseconds. + Weight::from_parts(5_549_000, 0) + .saturating_add(Weight::from_parts(0, 1561)) + .saturating_add(T::DbWeight::get().reads(1)) + .saturating_add(T::DbWeight::get().writes(1)) + } +} diff --git a/cumulus/parachains/runtimes/assets/asset-hub-polkadot/src/weights/extrinsic_weights.rs b/cumulus/parachains/runtimes/assets/asset-hub-polkadot/src/weights/extrinsic_weights.rs new file mode 100644 index 000000000000..1a4adb968bb7 --- /dev/null +++ b/cumulus/parachains/runtimes/assets/asset-hub-polkadot/src/weights/extrinsic_weights.rs @@ -0,0 +1,53 @@ +// This file is part of Substrate. + +// 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. + +pub mod constants { + use frame_support::{ + parameter_types, + weights::{constants, Weight}, + }; + + parameter_types! { + /// Executing a NO-OP `System::remarks` Extrinsic. + pub const ExtrinsicBaseWeight: Weight = + Weight::from_parts(constants::WEIGHT_REF_TIME_PER_NANOS.saturating_mul(125_000), 0); + } + + #[cfg(test)] + mod test_weights { + use frame_support::weights::constants; + + /// Checks that the weight exists and is sane. + // NOTE: If this test fails but you are sure that the generated values are fine, + // you can delete it. + #[test] + fn sane() { + let w = super::constants::ExtrinsicBaseWeight::get(); + + // At least 10 µs. + assert!( + w.ref_time() >= 10u64 * constants::WEIGHT_REF_TIME_PER_MICROS, + "Weight should be at least 10 µs." + ); + // At most 1 ms. + assert!( + w.ref_time() <= constants::WEIGHT_REF_TIME_PER_MILLIS, + "Weight should be at most 1 ms." + ); + } + } +} diff --git a/cumulus/parachains/runtimes/assets/asset-hub-polkadot/src/weights/frame_system.rs b/cumulus/parachains/runtimes/assets/asset-hub-polkadot/src/weights/frame_system.rs new file mode 100644 index 000000000000..713c33d34f77 --- /dev/null +++ b/cumulus/parachains/runtimes/assets/asset-hub-polkadot/src/weights/frame_system.rs @@ -0,0 +1,155 @@ +// Copyright (C) Parity Technologies (UK) Ltd. +// This file is part of Cumulus. + +// Cumulus 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. + +// Cumulus 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 Cumulus. If not, see . + +//! Autogenerated weights for `frame_system` +//! +//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev +//! DATE: 2023-07-31, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! WORST CASE MAP SIZE: `1000000` +//! HOSTNAME: `runner-ynta1nyy-project-238-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz` +//! EXECUTION: ``, WASM-EXECUTION: `Compiled`, CHAIN: `Some("asset-hub-polkadot-dev")`, DB CACHE: 1024 + +// Executed Command: +// ./target/production/polkadot-parachain +// benchmark +// pallet +// --chain=asset-hub-polkadot-dev +// --wasm-execution=compiled +// --pallet=frame_system +// --no-storage-info +// --no-median-slopes +// --no-min-squares +// --extrinsic=* +// --steps=50 +// --repeat=20 +// --json +// --header=./file_header.txt +// --output=./parachains/runtimes/assets/asset-hub-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 `frame_system`. +pub struct WeightInfo(PhantomData); +impl frame_system::WeightInfo for WeightInfo { + /// The range of component `b` is `[0, 3932160]`. + fn remark(b: u32, ) -> Weight { + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 1_956_000 picoseconds. + Weight::from_parts(3_441_280, 0) + .saturating_add(Weight::from_parts(0, 0)) + // Standard Error: 0 + .saturating_add(Weight::from_parts(388, 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_267_000 picoseconds. + Weight::from_parts(7_462_000, 0) + .saturating_add(Weight::from_parts(0, 0)) + // Standard Error: 3 + .saturating_add(Weight::from_parts(1_816, 0).saturating_mul(b.into())) + } + /// Storage: `System::Digest` (r:1 w:1) + /// Proof: `System::Digest` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: UNKNOWN KEY `0x3a686561707061676573` (r:0 w:1) + /// Proof: UNKNOWN KEY `0x3a686561707061676573` (r:0 w:1) + fn set_heap_pages() -> Weight { + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `1485` + // Minimum execution time: 3_757_000 picoseconds. + Weight::from_parts(4_021_000, 0) + .saturating_add(Weight::from_parts(0, 1485)) + .saturating_add(T::DbWeight::get().reads(1)) + .saturating_add(T::DbWeight::get().writes(2)) + } + /// Storage: `ParachainSystem::ValidationData` (r:1 w:0) + /// Proof: `ParachainSystem::ValidationData` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `ParachainSystem::UpgradeRestrictionSignal` (r:1 w:0) + /// Proof: `ParachainSystem::UpgradeRestrictionSignal` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `ParachainSystem::PendingValidationCode` (r:1 w:1) + /// Proof: `ParachainSystem::PendingValidationCode` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `ParachainSystem::HostConfiguration` (r:1 w:0) + /// Proof: `ParachainSystem::HostConfiguration` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `ParachainSystem::NewValidationCode` (r:0 w:1) + /// Proof: `ParachainSystem::NewValidationCode` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `ParachainSystem::DidSetValidationCode` (r:0 w:1) + /// Proof: `ParachainSystem::DidSetValidationCode` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + fn set_code() -> Weight { + // Proof Size summary in bytes: + // Measured: `119` + // Estimated: `1604` + // Minimum execution time: 97_958_650_000 picoseconds. + Weight::from_parts(102_129_539_000, 0) + .saturating_add(Weight::from_parts(0, 1604)) + .saturating_add(T::DbWeight::get().reads(4)) + .saturating_add(T::DbWeight::get().writes(3)) + } + /// Storage: `Skipped::Metadata` (r:0 w:0) + /// Proof: `Skipped::Metadata` (`max_values`: None, `max_size`: None, mode: `Measured`) + /// The range of component `i` is `[0, 1000]`. + fn set_storage(i: u32, ) -> Weight { + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 2_327_000 picoseconds. + Weight::from_parts(2_511_000, 0) + .saturating_add(Weight::from_parts(0, 0)) + // Standard Error: 2_186 + .saturating_add(Weight::from_parts(755_085, 0).saturating_mul(i.into())) + .saturating_add(T::DbWeight::get().writes((1_u64).saturating_mul(i.into()))) + } + /// Storage: `Skipped::Metadata` (r:0 w:0) + /// Proof: `Skipped::Metadata` (`max_values`: None, `max_size`: None, mode: `Measured`) + /// The range of component `i` is `[0, 1000]`. + fn kill_storage(i: u32, ) -> Weight { + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 2_114_000 picoseconds. + Weight::from_parts(2_177_000, 0) + .saturating_add(Weight::from_parts(0, 0)) + // Standard Error: 1_174 + .saturating_add(Weight::from_parts(584_644, 0).saturating_mul(i.into())) + .saturating_add(T::DbWeight::get().writes((1_u64).saturating_mul(i.into()))) + } + /// Storage: `Skipped::Metadata` (r:0 w:0) + /// Proof: `Skipped::Metadata` (`max_values`: None, `max_size`: None, mode: `Measured`) + /// The range of component `p` is `[0, 1000]`. + fn kill_prefix(p: u32, ) -> Weight { + // Proof Size summary in bytes: + // Measured: `84 + p * (69 ±0)` + // Estimated: `77 + p * (70 ±0)` + // Minimum execution time: 3_799_000 picoseconds. + Weight::from_parts(3_910_000, 0) + .saturating_add(Weight::from_parts(0, 77)) + // Standard Error: 1_968 + .saturating_add(Weight::from_parts(1_220_745, 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/cumulus/parachains/runtimes/assets/asset-hub-polkadot/src/weights/mod.rs b/cumulus/parachains/runtimes/assets/asset-hub-polkadot/src/weights/mod.rs new file mode 100644 index 000000000000..3eb3b925e651 --- /dev/null +++ b/cumulus/parachains/runtimes/assets/asset-hub-polkadot/src/weights/mod.rs @@ -0,0 +1,40 @@ +// Copyright (C) Parity Technologies (UK) Ltd. +// This file is part of Cumulus. + +// Cumulus 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. + +// Cumulus 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 Cumulus. If not, see . + +pub mod block_weights; +pub mod cumulus_pallet_xcmp_queue; +pub mod extrinsic_weights; +pub mod frame_system; +pub mod pallet_assets_foreign; +pub mod pallet_assets_local; +pub mod pallet_balances; +pub mod pallet_collator_selection; +pub mod pallet_multisig; +pub mod pallet_nfts; +pub mod pallet_proxy; +pub mod pallet_session; +pub mod pallet_timestamp; +pub mod pallet_uniques; +pub mod pallet_utility; +pub mod pallet_xcm; +pub mod paritydb_weights; +pub mod rocksdb_weights; +pub mod xcm; + +pub use block_weights::constants::BlockExecutionWeight; +pub use extrinsic_weights::constants::ExtrinsicBaseWeight; +pub use paritydb_weights::constants::ParityDbWeight; +pub use rocksdb_weights::constants::RocksDbWeight; diff --git a/cumulus/parachains/runtimes/assets/asset-hub-polkadot/src/weights/pallet_assets_foreign.rs b/cumulus/parachains/runtimes/assets/asset-hub-polkadot/src/weights/pallet_assets_foreign.rs new file mode 100644 index 000000000000..51413bb471b9 --- /dev/null +++ b/cumulus/parachains/runtimes/assets/asset-hub-polkadot/src/weights/pallet_assets_foreign.rs @@ -0,0 +1,533 @@ +// Copyright (C) Parity Technologies (UK) Ltd. +// This file is part of Cumulus. + +// Cumulus 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. + +// Cumulus 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 Cumulus. If not, see . + +//! Autogenerated weights for `pallet_assets` +//! +//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev +//! DATE: 2023-07-31, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! WORST CASE MAP SIZE: `1000000` +//! HOSTNAME: `runner-ynta1nyy-project-238-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz` +//! EXECUTION: ``, WASM-EXECUTION: `Compiled`, CHAIN: `Some("asset-hub-polkadot-dev")`, DB CACHE: 1024 + +// Executed Command: +// ./target/production/polkadot-parachain +// benchmark +// pallet +// --chain=asset-hub-polkadot-dev +// --wasm-execution=compiled +// --pallet=pallet_assets +// --no-storage-info +// --no-median-slopes +// --no-min-squares +// --extrinsic=* +// --steps=50 +// --repeat=20 +// --json +// --header=./file_header.txt +// --output=./parachains/runtimes/assets/asset-hub-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_assets`. +pub struct WeightInfo(PhantomData); +impl pallet_assets::WeightInfo for WeightInfo { + /// Storage: `ParachainInfo::ParachainId` (r:1 w:0) + /// Proof: `ParachainInfo::ParachainId` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`) + /// Storage: `ForeignAssets::Asset` (r:1 w:1) + /// Proof: `ForeignAssets::Asset` (`max_values`: None, `max_size`: Some(808), added: 3283, mode: `MaxEncodedLen`) + /// Storage: `System::Account` (r:1 w:1) + /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`) + fn create() -> Weight { + // Proof Size summary in bytes: + // Measured: `107` + // Estimated: `4273` + // Minimum execution time: 29_979_000 picoseconds. + Weight::from_parts(30_763_000, 0) + .saturating_add(Weight::from_parts(0, 4273)) + .saturating_add(T::DbWeight::get().reads(3)) + .saturating_add(T::DbWeight::get().writes(2)) + } + /// Storage: `ForeignAssets::Asset` (r:1 w:1) + /// Proof: `ForeignAssets::Asset` (`max_values`: None, `max_size`: Some(808), added: 3283, mode: `MaxEncodedLen`) + fn force_create() -> Weight { + // Proof Size summary in bytes: + // Measured: `4` + // Estimated: `4273` + // Minimum execution time: 12_255_000 picoseconds. + Weight::from_parts(12_614_000, 0) + .saturating_add(Weight::from_parts(0, 4273)) + .saturating_add(T::DbWeight::get().reads(1)) + .saturating_add(T::DbWeight::get().writes(1)) + } + /// Storage: `ForeignAssets::Asset` (r:1 w:1) + /// Proof: `ForeignAssets::Asset` (`max_values`: None, `max_size`: Some(808), added: 3283, mode: `MaxEncodedLen`) + fn start_destroy() -> Weight { + // Proof Size summary in bytes: + // Measured: `276` + // Estimated: `4273` + // Minimum execution time: 15_240_000 picoseconds. + Weight::from_parts(15_627_000, 0) + .saturating_add(Weight::from_parts(0, 4273)) + .saturating_add(T::DbWeight::get().reads(1)) + .saturating_add(T::DbWeight::get().writes(1)) + } + /// Storage: `ForeignAssets::Asset` (r:1 w:1) + /// Proof: `ForeignAssets::Asset` (`max_values`: None, `max_size`: Some(808), added: 3283, mode: `MaxEncodedLen`) + /// Storage: `ForeignAssets::Account` (r:1001 w:1000) + /// Proof: `ForeignAssets::Account` (`max_values`: None, `max_size`: Some(732), added: 3207, mode: `MaxEncodedLen`) + /// Storage: `System::Account` (r:1000 w:1000) + /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`) + /// The range of component `c` is `[0, 1000]`. + /// The range of component `c` is `[0, 1000]`. + fn destroy_accounts(c: u32, ) -> Weight { + // Proof Size summary in bytes: + // Measured: `0 + c * (208 ±0)` + // Estimated: `4273 + c * (3207 ±0)` + // Minimum execution time: 17_814_000 picoseconds. + Weight::from_parts(18_006_000, 0) + .saturating_add(Weight::from_parts(0, 4273)) + // Standard Error: 10_358 + .saturating_add(Weight::from_parts(15_409_972, 0).saturating_mul(c.into())) + .saturating_add(T::DbWeight::get().reads(2)) + .saturating_add(T::DbWeight::get().reads((2_u64).saturating_mul(c.into()))) + .saturating_add(T::DbWeight::get().writes(1)) + .saturating_add(T::DbWeight::get().writes((2_u64).saturating_mul(c.into()))) + .saturating_add(Weight::from_parts(0, 3207).saturating_mul(c.into())) + } + /// Storage: `ForeignAssets::Asset` (r:1 w:1) + /// Proof: `ForeignAssets::Asset` (`max_values`: None, `max_size`: Some(808), added: 3283, mode: `MaxEncodedLen`) + /// Storage: `ForeignAssets::Approvals` (r:1001 w:1000) + /// Proof: `ForeignAssets::Approvals` (`max_values`: None, `max_size`: Some(746), added: 3221, mode: `MaxEncodedLen`) + /// The range of component `a` is `[0, 1000]`. + /// The range of component `a` is `[0, 1000]`. + fn destroy_approvals(a: u32, ) -> Weight { + // Proof Size summary in bytes: + // Measured: `413 + a * (86 ±0)` + // Estimated: `4273 + a * (3221 ±0)` + // Minimum execution time: 18_957_000 picoseconds. + Weight::from_parts(19_347_000, 0) + .saturating_add(Weight::from_parts(0, 4273)) + // Standard Error: 5_051 + .saturating_add(Weight::from_parts(15_416_931, 0).saturating_mul(a.into())) + .saturating_add(T::DbWeight::get().reads(2)) + .saturating_add(T::DbWeight::get().reads((1_u64).saturating_mul(a.into()))) + .saturating_add(T::DbWeight::get().writes(1)) + .saturating_add(T::DbWeight::get().writes((1_u64).saturating_mul(a.into()))) + .saturating_add(Weight::from_parts(0, 3221).saturating_mul(a.into())) + } + /// Storage: `ForeignAssets::Asset` (r:1 w:1) + /// Proof: `ForeignAssets::Asset` (`max_values`: None, `max_size`: Some(808), added: 3283, mode: `MaxEncodedLen`) + /// Storage: `ForeignAssets::Metadata` (r:1 w:0) + /// Proof: `ForeignAssets::Metadata` (`max_values`: None, `max_size`: Some(738), added: 3213, mode: `MaxEncodedLen`) + fn finish_destroy() -> Weight { + // Proof Size summary in bytes: + // Measured: `242` + // Estimated: `4273` + // Minimum execution time: 15_409_000 picoseconds. + Weight::from_parts(15_835_000, 0) + .saturating_add(Weight::from_parts(0, 4273)) + .saturating_add(T::DbWeight::get().reads(2)) + .saturating_add(T::DbWeight::get().writes(1)) + } + /// Storage: `ForeignAssets::Asset` (r:1 w:1) + /// Proof: `ForeignAssets::Asset` (`max_values`: None, `max_size`: Some(808), added: 3283, mode: `MaxEncodedLen`) + /// Storage: `ForeignAssets::Account` (r:1 w:1) + /// Proof: `ForeignAssets::Account` (`max_values`: None, `max_size`: Some(732), added: 3207, mode: `MaxEncodedLen`) + fn mint() -> Weight { + // Proof Size summary in bytes: + // Measured: `242` + // Estimated: `4273` + // Minimum execution time: 26_753_000 picoseconds. + Weight::from_parts(27_349_000, 0) + .saturating_add(Weight::from_parts(0, 4273)) + .saturating_add(T::DbWeight::get().reads(2)) + .saturating_add(T::DbWeight::get().writes(2)) + } + /// Storage: `ForeignAssets::Asset` (r:1 w:1) + /// Proof: `ForeignAssets::Asset` (`max_values`: None, `max_size`: Some(808), added: 3283, mode: `MaxEncodedLen`) + /// Storage: `ForeignAssets::Account` (r:1 w:1) + /// Proof: `ForeignAssets::Account` (`max_values`: None, `max_size`: Some(732), added: 3207, mode: `MaxEncodedLen`) + fn burn() -> Weight { + // Proof Size summary in bytes: + // Measured: `350` + // Estimated: `4273` + // Minimum execution time: 33_918_000 picoseconds. + Weight::from_parts(34_624_000, 0) + .saturating_add(Weight::from_parts(0, 4273)) + .saturating_add(T::DbWeight::get().reads(2)) + .saturating_add(T::DbWeight::get().writes(2)) + } + /// Storage: `ForeignAssets::Asset` (r:1 w:1) + /// Proof: `ForeignAssets::Asset` (`max_values`: None, `max_size`: Some(808), added: 3283, mode: `MaxEncodedLen`) + /// Storage: `ForeignAssets::Account` (r:2 w:2) + /// Proof: `ForeignAssets::Account` (`max_values`: None, `max_size`: Some(732), added: 3207, mode: `MaxEncodedLen`) + /// Storage: `System::Account` (r:1 w:1) + /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`) + fn transfer() -> Weight { + // Proof Size summary in bytes: + // Measured: `350` + // Estimated: `7404` + // Minimum execution time: 45_863_000 picoseconds. + Weight::from_parts(46_674_000, 0) + .saturating_add(Weight::from_parts(0, 7404)) + .saturating_add(T::DbWeight::get().reads(4)) + .saturating_add(T::DbWeight::get().writes(4)) + } + /// Storage: `ForeignAssets::Asset` (r:1 w:1) + /// Proof: `ForeignAssets::Asset` (`max_values`: None, `max_size`: Some(808), added: 3283, mode: `MaxEncodedLen`) + /// Storage: `ForeignAssets::Account` (r:2 w:2) + /// Proof: `ForeignAssets::Account` (`max_values`: None, `max_size`: Some(732), added: 3207, mode: `MaxEncodedLen`) + /// 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: `350` + // Estimated: `7404` + // Minimum execution time: 40_592_000 picoseconds. + Weight::from_parts(41_582_000, 0) + .saturating_add(Weight::from_parts(0, 7404)) + .saturating_add(T::DbWeight::get().reads(4)) + .saturating_add(T::DbWeight::get().writes(4)) + } + /// Storage: `ForeignAssets::Asset` (r:1 w:1) + /// Proof: `ForeignAssets::Asset` (`max_values`: None, `max_size`: Some(808), added: 3283, mode: `MaxEncodedLen`) + /// Storage: `ForeignAssets::Account` (r:2 w:2) + /// Proof: `ForeignAssets::Account` (`max_values`: None, `max_size`: Some(732), added: 3207, mode: `MaxEncodedLen`) + /// Storage: `System::Account` (r:1 w:1) + /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`) + fn force_transfer() -> Weight { + // Proof Size summary in bytes: + // Measured: `350` + // Estimated: `7404` + // Minimum execution time: 46_170_000 picoseconds. + Weight::from_parts(46_880_000, 0) + .saturating_add(Weight::from_parts(0, 7404)) + .saturating_add(T::DbWeight::get().reads(4)) + .saturating_add(T::DbWeight::get().writes(4)) + } + /// Storage: `ForeignAssets::Asset` (r:1 w:0) + /// Proof: `ForeignAssets::Asset` (`max_values`: None, `max_size`: Some(808), added: 3283, mode: `MaxEncodedLen`) + /// Storage: `ForeignAssets::Account` (r:1 w:1) + /// Proof: `ForeignAssets::Account` (`max_values`: None, `max_size`: Some(732), added: 3207, mode: `MaxEncodedLen`) + fn freeze() -> Weight { + // Proof Size summary in bytes: + // Measured: `350` + // Estimated: `4273` + // Minimum execution time: 18_421_000 picoseconds. + Weight::from_parts(19_003_000, 0) + .saturating_add(Weight::from_parts(0, 4273)) + .saturating_add(T::DbWeight::get().reads(2)) + .saturating_add(T::DbWeight::get().writes(1)) + } + /// Storage: `ForeignAssets::Asset` (r:1 w:0) + /// Proof: `ForeignAssets::Asset` (`max_values`: None, `max_size`: Some(808), added: 3283, mode: `MaxEncodedLen`) + /// Storage: `ForeignAssets::Account` (r:1 w:1) + /// Proof: `ForeignAssets::Account` (`max_values`: None, `max_size`: Some(732), added: 3207, mode: `MaxEncodedLen`) + fn thaw() -> Weight { + // Proof Size summary in bytes: + // Measured: `350` + // Estimated: `4273` + // Minimum execution time: 18_009_000 picoseconds. + Weight::from_parts(18_683_000, 0) + .saturating_add(Weight::from_parts(0, 4273)) + .saturating_add(T::DbWeight::get().reads(2)) + .saturating_add(T::DbWeight::get().writes(1)) + } + /// Storage: `ForeignAssets::Asset` (r:1 w:1) + /// Proof: `ForeignAssets::Asset` (`max_values`: None, `max_size`: Some(808), added: 3283, mode: `MaxEncodedLen`) + fn freeze_asset() -> Weight { + // Proof Size summary in bytes: + // Measured: `276` + // Estimated: `4273` + // Minimum execution time: 14_702_000 picoseconds. + Weight::from_parts(15_118_000, 0) + .saturating_add(Weight::from_parts(0, 4273)) + .saturating_add(T::DbWeight::get().reads(1)) + .saturating_add(T::DbWeight::get().writes(1)) + } + /// Storage: `ForeignAssets::Asset` (r:1 w:1) + /// Proof: `ForeignAssets::Asset` (`max_values`: None, `max_size`: Some(808), added: 3283, mode: `MaxEncodedLen`) + fn thaw_asset() -> Weight { + // Proof Size summary in bytes: + // Measured: `276` + // Estimated: `4273` + // Minimum execution time: 14_329_000 picoseconds. + Weight::from_parts(14_857_000, 0) + .saturating_add(Weight::from_parts(0, 4273)) + .saturating_add(T::DbWeight::get().reads(1)) + .saturating_add(T::DbWeight::get().writes(1)) + } + /// Storage: `ForeignAssets::Asset` (r:1 w:1) + /// Proof: `ForeignAssets::Asset` (`max_values`: None, `max_size`: Some(808), added: 3283, mode: `MaxEncodedLen`) + /// Storage: `ForeignAssets::Metadata` (r:1 w:0) + /// Proof: `ForeignAssets::Metadata` (`max_values`: None, `max_size`: Some(738), added: 3213, mode: `MaxEncodedLen`) + fn transfer_ownership() -> Weight { + // Proof Size summary in bytes: + // Measured: `242` + // Estimated: `4273` + // Minimum execution time: 15_776_000 picoseconds. + Weight::from_parts(16_337_000, 0) + .saturating_add(Weight::from_parts(0, 4273)) + .saturating_add(T::DbWeight::get().reads(2)) + .saturating_add(T::DbWeight::get().writes(1)) + } + /// Storage: `ForeignAssets::Asset` (r:1 w:1) + /// Proof: `ForeignAssets::Asset` (`max_values`: None, `max_size`: Some(808), added: 3283, mode: `MaxEncodedLen`) + fn set_team() -> Weight { + // Proof Size summary in bytes: + // Measured: `242` + // Estimated: `4273` + // Minimum execution time: 14_290_000 picoseconds. + Weight::from_parts(14_655_000, 0) + .saturating_add(Weight::from_parts(0, 4273)) + .saturating_add(T::DbWeight::get().reads(1)) + .saturating_add(T::DbWeight::get().writes(1)) + } + /// Storage: `ForeignAssets::Asset` (r:1 w:0) + /// Proof: `ForeignAssets::Asset` (`max_values`: None, `max_size`: Some(808), added: 3283, mode: `MaxEncodedLen`) + /// Storage: `ForeignAssets::Metadata` (r:1 w:1) + /// Proof: `ForeignAssets::Metadata` (`max_values`: None, `max_size`: Some(738), added: 3213, mode: `MaxEncodedLen`) + /// The range of component `n` is `[0, 50]`. + /// The range of component `s` is `[0, 50]`. + /// The range of component `n` is `[0, 50]`. + /// The range of component `s` is `[0, 50]`. + fn set_metadata(_n: u32, s: u32, ) -> Weight { + // Proof Size summary in bytes: + // Measured: `242` + // Estimated: `4273` + // Minimum execution time: 29_296_000 picoseconds. + Weight::from_parts(30_512_261, 0) + .saturating_add(Weight::from_parts(0, 4273)) + // Standard Error: 474 + .saturating_add(Weight::from_parts(530, 0).saturating_mul(s.into())) + .saturating_add(T::DbWeight::get().reads(2)) + .saturating_add(T::DbWeight::get().writes(1)) + } + /// Storage: `ForeignAssets::Asset` (r:1 w:0) + /// Proof: `ForeignAssets::Asset` (`max_values`: None, `max_size`: Some(808), added: 3283, mode: `MaxEncodedLen`) + /// Storage: `ForeignAssets::Metadata` (r:1 w:1) + /// Proof: `ForeignAssets::Metadata` (`max_values`: None, `max_size`: Some(738), added: 3213, mode: `MaxEncodedLen`) + fn clear_metadata() -> Weight { + // Proof Size summary in bytes: + // Measured: `406` + // Estimated: `4273` + // Minimum execution time: 30_342_000 picoseconds. + Weight::from_parts(31_030_000, 0) + .saturating_add(Weight::from_parts(0, 4273)) + .saturating_add(T::DbWeight::get().reads(2)) + .saturating_add(T::DbWeight::get().writes(1)) + } + /// Storage: `ForeignAssets::Asset` (r:1 w:0) + /// Proof: `ForeignAssets::Asset` (`max_values`: None, `max_size`: Some(808), added: 3283, mode: `MaxEncodedLen`) + /// Storage: `ForeignAssets::Metadata` (r:1 w:1) + /// Proof: `ForeignAssets::Metadata` (`max_values`: None, `max_size`: Some(738), added: 3213, mode: `MaxEncodedLen`) + /// The range of component `n` is `[0, 50]`. + /// The range of component `s` is `[0, 50]`. + /// The range of component `n` is `[0, 50]`. + /// The range of component `s` is `[0, 50]`. + fn force_set_metadata(n: u32, s: u32, ) -> Weight { + // Proof Size summary in bytes: + // Measured: `81` + // Estimated: `4273` + // Minimum execution time: 13_574_000 picoseconds. + Weight::from_parts(14_181_016, 0) + .saturating_add(Weight::from_parts(0, 4273)) + // Standard Error: 262 + .saturating_add(Weight::from_parts(420, 0).saturating_mul(n.into())) + // Standard Error: 262 + .saturating_add(Weight::from_parts(1_118, 0).saturating_mul(s.into())) + .saturating_add(T::DbWeight::get().reads(2)) + .saturating_add(T::DbWeight::get().writes(1)) + } + /// Storage: `ForeignAssets::Asset` (r:1 w:0) + /// Proof: `ForeignAssets::Asset` (`max_values`: None, `max_size`: Some(808), added: 3283, mode: `MaxEncodedLen`) + /// Storage: `ForeignAssets::Metadata` (r:1 w:1) + /// Proof: `ForeignAssets::Metadata` (`max_values`: None, `max_size`: Some(738), added: 3213, mode: `MaxEncodedLen`) + fn force_clear_metadata() -> Weight { + // Proof Size summary in bytes: + // Measured: `406` + // Estimated: `4273` + // Minimum execution time: 29_679_000 picoseconds. + Weight::from_parts(30_346_000, 0) + .saturating_add(Weight::from_parts(0, 4273)) + .saturating_add(T::DbWeight::get().reads(2)) + .saturating_add(T::DbWeight::get().writes(1)) + } + /// Storage: `ForeignAssets::Asset` (r:1 w:1) + /// Proof: `ForeignAssets::Asset` (`max_values`: None, `max_size`: Some(808), added: 3283, mode: `MaxEncodedLen`) + fn force_asset_status() -> Weight { + // Proof Size summary in bytes: + // Measured: `242` + // Estimated: `4273` + // Minimum execution time: 13_334_000 picoseconds. + Weight::from_parts(13_827_000, 0) + .saturating_add(Weight::from_parts(0, 4273)) + .saturating_add(T::DbWeight::get().reads(1)) + .saturating_add(T::DbWeight::get().writes(1)) + } + /// Storage: `ForeignAssets::Asset` (r:1 w:1) + /// Proof: `ForeignAssets::Asset` (`max_values`: None, `max_size`: Some(808), added: 3283, mode: `MaxEncodedLen`) + /// Storage: `ForeignAssets::Approvals` (r:1 w:1) + /// Proof: `ForeignAssets::Approvals` (`max_values`: None, `max_size`: Some(746), added: 3221, mode: `MaxEncodedLen`) + fn approve_transfer() -> Weight { + // Proof Size summary in bytes: + // Measured: `276` + // Estimated: `4273` + // Minimum execution time: 32_648_000 picoseconds. + Weight::from_parts(33_555_000, 0) + .saturating_add(Weight::from_parts(0, 4273)) + .saturating_add(T::DbWeight::get().reads(2)) + .saturating_add(T::DbWeight::get().writes(2)) + } + /// Storage: `ForeignAssets::Asset` (r:1 w:1) + /// Proof: `ForeignAssets::Asset` (`max_values`: None, `max_size`: Some(808), added: 3283, mode: `MaxEncodedLen`) + /// Storage: `ForeignAssets::Approvals` (r:1 w:1) + /// Proof: `ForeignAssets::Approvals` (`max_values`: None, `max_size`: Some(746), added: 3221, mode: `MaxEncodedLen`) + /// Storage: `ForeignAssets::Account` (r:2 w:2) + /// Proof: `ForeignAssets::Account` (`max_values`: None, `max_size`: Some(732), added: 3207, mode: `MaxEncodedLen`) + /// Storage: `System::Account` (r:1 w:1) + /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`) + fn transfer_approved() -> Weight { + // Proof Size summary in bytes: + // Measured: `520` + // Estimated: `7404` + // Minimum execution time: 65_431_000 picoseconds. + Weight::from_parts(66_502_000, 0) + .saturating_add(Weight::from_parts(0, 7404)) + .saturating_add(T::DbWeight::get().reads(5)) + .saturating_add(T::DbWeight::get().writes(5)) + } + /// Storage: `ForeignAssets::Asset` (r:1 w:1) + /// Proof: `ForeignAssets::Asset` (`max_values`: None, `max_size`: Some(808), added: 3283, mode: `MaxEncodedLen`) + /// Storage: `ForeignAssets::Approvals` (r:1 w:1) + /// Proof: `ForeignAssets::Approvals` (`max_values`: None, `max_size`: Some(746), added: 3221, mode: `MaxEncodedLen`) + fn cancel_approval() -> Weight { + // Proof Size summary in bytes: + // Measured: `446` + // Estimated: `4273` + // Minimum execution time: 35_207_000 picoseconds. + Weight::from_parts(35_915_000, 0) + .saturating_add(Weight::from_parts(0, 4273)) + .saturating_add(T::DbWeight::get().reads(2)) + .saturating_add(T::DbWeight::get().writes(2)) + } + /// Storage: `ForeignAssets::Asset` (r:1 w:1) + /// Proof: `ForeignAssets::Asset` (`max_values`: None, `max_size`: Some(808), added: 3283, mode: `MaxEncodedLen`) + /// Storage: `ForeignAssets::Approvals` (r:1 w:1) + /// Proof: `ForeignAssets::Approvals` (`max_values`: None, `max_size`: Some(746), added: 3221, mode: `MaxEncodedLen`) + fn force_cancel_approval() -> Weight { + // Proof Size summary in bytes: + // Measured: `446` + // Estimated: `4273` + // Minimum execution time: 35_768_000 picoseconds. + Weight::from_parts(36_553_000, 0) + .saturating_add(Weight::from_parts(0, 4273)) + .saturating_add(T::DbWeight::get().reads(2)) + .saturating_add(T::DbWeight::get().writes(2)) + } + /// Storage: `ForeignAssets::Asset` (r:1 w:1) + /// Proof: `ForeignAssets::Asset` (`max_values`: None, `max_size`: Some(808), added: 3283, mode: `MaxEncodedLen`) + fn set_min_balance() -> Weight { + // Proof Size summary in bytes: + // Measured: `242` + // Estimated: `4273` + // Minimum execution time: 15_108_000 picoseconds. + Weight::from_parts(15_556_000, 0) + .saturating_add(Weight::from_parts(0, 4273)) + .saturating_add(T::DbWeight::get().reads(1)) + .saturating_add(T::DbWeight::get().writes(1)) + } + /// Storage: `ForeignAssets::Account` (r:1 w:1) + /// Proof: `ForeignAssets::Account` (`max_values`: None, `max_size`: Some(732), added: 3207, mode: `MaxEncodedLen`) + /// Storage: `ForeignAssets::Asset` (r:1 w:1) + /// Proof: `ForeignAssets::Asset` (`max_values`: None, `max_size`: Some(808), added: 3283, mode: `MaxEncodedLen`) + /// Storage: `System::Account` (r:1 w:1) + /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`) + fn touch() -> Weight { + // Proof Size summary in bytes: + // Measured: `345` + // Estimated: `4273` + // Minimum execution time: 34_373_000 picoseconds. + Weight::from_parts(35_200_000, 0) + .saturating_add(Weight::from_parts(0, 4273)) + .saturating_add(T::DbWeight::get().reads(3)) + .saturating_add(T::DbWeight::get().writes(3)) + } + /// Storage: `ForeignAssets::Account` (r:1 w:1) + /// Proof: `ForeignAssets::Account` (`max_values`: None, `max_size`: Some(732), added: 3207, mode: `MaxEncodedLen`) + /// Storage: `ForeignAssets::Asset` (r:1 w:1) + /// Proof: `ForeignAssets::Asset` (`max_values`: None, `max_size`: Some(808), added: 3283, mode: `MaxEncodedLen`) + fn touch_other() -> Weight { + // Proof Size summary in bytes: + // Measured: `242` + // Estimated: `4273` + // Minimum execution time: 32_201_000 picoseconds. + Weight::from_parts(33_591_000, 0) + .saturating_add(Weight::from_parts(0, 4273)) + .saturating_add(T::DbWeight::get().reads(2)) + .saturating_add(T::DbWeight::get().writes(2)) + } + /// Storage: `ForeignAssets::Account` (r:1 w:1) + /// Proof: `ForeignAssets::Account` (`max_values`: None, `max_size`: Some(732), added: 3207, mode: `MaxEncodedLen`) + /// Storage: `ForeignAssets::Asset` (r:1 w:1) + /// Proof: `ForeignAssets::Asset` (`max_values`: None, `max_size`: Some(808), added: 3283, mode: `MaxEncodedLen`) + /// Storage: `System::Account` (r:1 w:1) + /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`) + fn refund() -> Weight { + // Proof Size summary in bytes: + // Measured: `471` + // Estimated: `4273` + // Minimum execution time: 31_148_000 picoseconds. + Weight::from_parts(31_751_000, 0) + .saturating_add(Weight::from_parts(0, 4273)) + .saturating_add(T::DbWeight::get().reads(3)) + .saturating_add(T::DbWeight::get().writes(3)) + } + /// Storage: `ForeignAssets::Account` (r:1 w:1) + /// Proof: `ForeignAssets::Account` (`max_values`: None, `max_size`: Some(732), added: 3207, mode: `MaxEncodedLen`) + /// Storage: `ForeignAssets::Asset` (r:1 w:1) + /// Proof: `ForeignAssets::Asset` (`max_values`: None, `max_size`: Some(808), added: 3283, mode: `MaxEncodedLen`) + fn refund_other() -> Weight { + // Proof Size summary in bytes: + // Measured: `401` + // Estimated: `4273` + // Minimum execution time: 29_127_000 picoseconds. + Weight::from_parts(29_922_000, 0) + .saturating_add(Weight::from_parts(0, 4273)) + .saturating_add(T::DbWeight::get().reads(2)) + .saturating_add(T::DbWeight::get().writes(2)) + } + /// Storage: `ForeignAssets::Asset` (r:1 w:0) + /// Proof: `ForeignAssets::Asset` (`max_values`: None, `max_size`: Some(808), added: 3283, mode: `MaxEncodedLen`) + /// Storage: `ForeignAssets::Account` (r:1 w:1) + /// Proof: `ForeignAssets::Account` (`max_values`: None, `max_size`: Some(732), added: 3207, mode: `MaxEncodedLen`) + fn block() -> Weight { + // Proof Size summary in bytes: + // Measured: `350` + // Estimated: `4273` + // Minimum execution time: 18_386_000 picoseconds. + Weight::from_parts(18_762_000, 0) + .saturating_add(Weight::from_parts(0, 4273)) + .saturating_add(T::DbWeight::get().reads(2)) + .saturating_add(T::DbWeight::get().writes(1)) + } +} diff --git a/cumulus/parachains/runtimes/assets/asset-hub-polkadot/src/weights/pallet_assets_local.rs b/cumulus/parachains/runtimes/assets/asset-hub-polkadot/src/weights/pallet_assets_local.rs new file mode 100644 index 000000000000..c8420e72ba21 --- /dev/null +++ b/cumulus/parachains/runtimes/assets/asset-hub-polkadot/src/weights/pallet_assets_local.rs @@ -0,0 +1,529 @@ +// Copyright (C) Parity Technologies (UK) Ltd. +// This file is part of Cumulus. + +// Cumulus 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. + +// Cumulus 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 Cumulus. If not, see . + +//! Autogenerated weights for `pallet_assets` +//! +//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev +//! DATE: 2023-07-31, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! WORST CASE MAP SIZE: `1000000` +//! HOSTNAME: `runner-ynta1nyy-project-238-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz` +//! EXECUTION: ``, WASM-EXECUTION: `Compiled`, CHAIN: `Some("asset-hub-polkadot-dev")`, DB CACHE: 1024 + +// Executed Command: +// ./target/production/polkadot-parachain +// benchmark +// pallet +// --chain=asset-hub-polkadot-dev +// --wasm-execution=compiled +// --pallet=pallet_assets +// --no-storage-info +// --no-median-slopes +// --no-min-squares +// --extrinsic=* +// --steps=50 +// --repeat=20 +// --json +// --header=./file_header.txt +// --output=./parachains/runtimes/assets/asset-hub-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_assets`. +pub struct WeightInfo(PhantomData); +impl pallet_assets::WeightInfo for WeightInfo { + /// Storage: `Assets::Asset` (r:1 w:1) + /// Proof: `Assets::Asset` (`max_values`: None, `max_size`: Some(210), added: 2685, mode: `MaxEncodedLen`) + /// Storage: `System::Account` (r:1 w:1) + /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`) + fn create() -> Weight { + // Proof Size summary in bytes: + // Measured: `109` + // Estimated: `3675` + // Minimum execution time: 26_698_000 picoseconds. + Weight::from_parts(27_507_000, 0) + .saturating_add(Weight::from_parts(0, 3675)) + .saturating_add(T::DbWeight::get().reads(2)) + .saturating_add(T::DbWeight::get().writes(2)) + } + /// Storage: `Assets::Asset` (r:1 w:1) + /// Proof: `Assets::Asset` (`max_values`: None, `max_size`: Some(210), added: 2685, mode: `MaxEncodedLen`) + fn force_create() -> Weight { + // Proof Size summary in bytes: + // Measured: `6` + // Estimated: `3675` + // Minimum execution time: 10_833_000 picoseconds. + Weight::from_parts(11_314_000, 0) + .saturating_add(Weight::from_parts(0, 3675)) + .saturating_add(T::DbWeight::get().reads(1)) + .saturating_add(T::DbWeight::get().writes(1)) + } + /// Storage: `Assets::Asset` (r:1 w:1) + /// Proof: `Assets::Asset` (`max_values`: None, `max_size`: Some(210), added: 2685, mode: `MaxEncodedLen`) + fn start_destroy() -> Weight { + // Proof Size summary in bytes: + // Measured: `277` + // Estimated: `3675` + // Minimum execution time: 13_389_000 picoseconds. + Weight::from_parts(14_231_000, 0) + .saturating_add(Weight::from_parts(0, 3675)) + .saturating_add(T::DbWeight::get().reads(1)) + .saturating_add(T::DbWeight::get().writes(1)) + } + /// Storage: `Assets::Asset` (r:1 w:1) + /// Proof: `Assets::Asset` (`max_values`: None, `max_size`: Some(210), added: 2685, mode: `MaxEncodedLen`) + /// Storage: `Assets::Account` (r:1001 w:1000) + /// Proof: `Assets::Account` (`max_values`: None, `max_size`: Some(134), added: 2609, mode: `MaxEncodedLen`) + /// Storage: `System::Account` (r:1000 w:1000) + /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`) + /// The range of component `c` is `[0, 1000]`. + /// The range of component `c` is `[0, 1000]`. + fn destroy_accounts(c: u32, ) -> Weight { + // Proof Size summary in bytes: + // Measured: `0 + c * (208 ±0)` + // Estimated: `3675 + c * (2609 ±0)` + // Minimum execution time: 16_027_000 picoseconds. + Weight::from_parts(16_455_000, 0) + .saturating_add(Weight::from_parts(0, 3675)) + // Standard Error: 10_266 + .saturating_add(Weight::from_parts(15_263_742, 0).saturating_mul(c.into())) + .saturating_add(T::DbWeight::get().reads(2)) + .saturating_add(T::DbWeight::get().reads((2_u64).saturating_mul(c.into()))) + .saturating_add(T::DbWeight::get().writes(1)) + .saturating_add(T::DbWeight::get().writes((2_u64).saturating_mul(c.into()))) + .saturating_add(Weight::from_parts(0, 2609).saturating_mul(c.into())) + } + /// Storage: `Assets::Asset` (r:1 w:1) + /// Proof: `Assets::Asset` (`max_values`: None, `max_size`: Some(210), added: 2685, mode: `MaxEncodedLen`) + /// Storage: `Assets::Approvals` (r:1001 w:1000) + /// Proof: `Assets::Approvals` (`max_values`: None, `max_size`: Some(148), added: 2623, mode: `MaxEncodedLen`) + /// The range of component `a` is `[0, 1000]`. + /// The range of component `a` is `[0, 1000]`. + fn destroy_approvals(a: u32, ) -> Weight { + // Proof Size summary in bytes: + // Measured: `414 + a * (86 ±0)` + // Estimated: `3675 + a * (2623 ±0)` + // Minimum execution time: 17_167_000 picoseconds. + Weight::from_parts(17_397_000, 0) + .saturating_add(Weight::from_parts(0, 3675)) + // Standard Error: 5_072 + .saturating_add(Weight::from_parts(15_429_203, 0).saturating_mul(a.into())) + .saturating_add(T::DbWeight::get().reads(2)) + .saturating_add(T::DbWeight::get().reads((1_u64).saturating_mul(a.into()))) + .saturating_add(T::DbWeight::get().writes(1)) + .saturating_add(T::DbWeight::get().writes((1_u64).saturating_mul(a.into()))) + .saturating_add(Weight::from_parts(0, 2623).saturating_mul(a.into())) + } + /// Storage: `Assets::Asset` (r:1 w:1) + /// Proof: `Assets::Asset` (`max_values`: None, `max_size`: Some(210), added: 2685, mode: `MaxEncodedLen`) + /// Storage: `Assets::Metadata` (r:1 w:0) + /// Proof: `Assets::Metadata` (`max_values`: None, `max_size`: Some(140), added: 2615, mode: `MaxEncodedLen`) + fn finish_destroy() -> Weight { + // Proof Size summary in bytes: + // Measured: `243` + // Estimated: `3675` + // Minimum execution time: 13_694_000 picoseconds. + Weight::from_parts(14_239_000, 0) + .saturating_add(Weight::from_parts(0, 3675)) + .saturating_add(T::DbWeight::get().reads(2)) + .saturating_add(T::DbWeight::get().writes(1)) + } + /// Storage: `Assets::Asset` (r:1 w:1) + /// Proof: `Assets::Asset` (`max_values`: None, `max_size`: Some(210), added: 2685, mode: `MaxEncodedLen`) + /// Storage: `Assets::Account` (r:1 w:1) + /// Proof: `Assets::Account` (`max_values`: None, `max_size`: Some(134), added: 2609, mode: `MaxEncodedLen`) + fn mint() -> Weight { + // Proof Size summary in bytes: + // Measured: `243` + // Estimated: `3675` + // Minimum execution time: 24_406_000 picoseconds. + Weight::from_parts(24_981_000, 0) + .saturating_add(Weight::from_parts(0, 3675)) + .saturating_add(T::DbWeight::get().reads(2)) + .saturating_add(T::DbWeight::get().writes(2)) + } + /// Storage: `Assets::Asset` (r:1 w:1) + /// Proof: `Assets::Asset` (`max_values`: None, `max_size`: Some(210), added: 2685, mode: `MaxEncodedLen`) + /// Storage: `Assets::Account` (r:1 w:1) + /// Proof: `Assets::Account` (`max_values`: None, `max_size`: Some(134), added: 2609, mode: `MaxEncodedLen`) + fn burn() -> Weight { + // Proof Size summary in bytes: + // Measured: `351` + // Estimated: `3675` + // Minimum execution time: 31_372_000 picoseconds. + Weight::from_parts(32_021_000, 0) + .saturating_add(Weight::from_parts(0, 3675)) + .saturating_add(T::DbWeight::get().reads(2)) + .saturating_add(T::DbWeight::get().writes(2)) + } + /// Storage: `Assets::Asset` (r:1 w:1) + /// Proof: `Assets::Asset` (`max_values`: None, `max_size`: Some(210), added: 2685, mode: `MaxEncodedLen`) + /// Storage: `Assets::Account` (r:2 w:2) + /// Proof: `Assets::Account` (`max_values`: None, `max_size`: Some(134), added: 2609, mode: `MaxEncodedLen`) + /// Storage: `System::Account` (r:1 w:1) + /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`) + fn transfer() -> Weight { + // Proof Size summary in bytes: + // Measured: `351` + // Estimated: `6208` + // Minimum execution time: 42_982_000 picoseconds. + Weight::from_parts(43_918_000, 0) + .saturating_add(Weight::from_parts(0, 6208)) + .saturating_add(T::DbWeight::get().reads(4)) + .saturating_add(T::DbWeight::get().writes(4)) + } + /// Storage: `Assets::Asset` (r:1 w:1) + /// Proof: `Assets::Asset` (`max_values`: None, `max_size`: Some(210), added: 2685, mode: `MaxEncodedLen`) + /// Storage: `Assets::Account` (r:2 w:2) + /// Proof: `Assets::Account` (`max_values`: None, `max_size`: Some(134), added: 2609, mode: `MaxEncodedLen`) + /// 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: `351` + // Estimated: `6208` + // Minimum execution time: 37_161_000 picoseconds. + Weight::from_parts(38_756_000, 0) + .saturating_add(Weight::from_parts(0, 6208)) + .saturating_add(T::DbWeight::get().reads(4)) + .saturating_add(T::DbWeight::get().writes(4)) + } + /// Storage: `Assets::Asset` (r:1 w:1) + /// Proof: `Assets::Asset` (`max_values`: None, `max_size`: Some(210), added: 2685, mode: `MaxEncodedLen`) + /// Storage: `Assets::Account` (r:2 w:2) + /// Proof: `Assets::Account` (`max_values`: None, `max_size`: Some(134), added: 2609, mode: `MaxEncodedLen`) + /// Storage: `System::Account` (r:1 w:1) + /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`) + fn force_transfer() -> Weight { + // Proof Size summary in bytes: + // Measured: `351` + // Estimated: `6208` + // Minimum execution time: 43_141_000 picoseconds. + Weight::from_parts(44_187_000, 0) + .saturating_add(Weight::from_parts(0, 6208)) + .saturating_add(T::DbWeight::get().reads(4)) + .saturating_add(T::DbWeight::get().writes(4)) + } + /// Storage: `Assets::Asset` (r:1 w:0) + /// Proof: `Assets::Asset` (`max_values`: None, `max_size`: Some(210), added: 2685, mode: `MaxEncodedLen`) + /// Storage: `Assets::Account` (r:1 w:1) + /// Proof: `Assets::Account` (`max_values`: None, `max_size`: Some(134), added: 2609, mode: `MaxEncodedLen`) + fn freeze() -> Weight { + // Proof Size summary in bytes: + // Measured: `351` + // Estimated: `3675` + // Minimum execution time: 16_721_000 picoseconds. + Weight::from_parts(17_433_000, 0) + .saturating_add(Weight::from_parts(0, 3675)) + .saturating_add(T::DbWeight::get().reads(2)) + .saturating_add(T::DbWeight::get().writes(1)) + } + /// Storage: `Assets::Asset` (r:1 w:0) + /// Proof: `Assets::Asset` (`max_values`: None, `max_size`: Some(210), added: 2685, mode: `MaxEncodedLen`) + /// Storage: `Assets::Account` (r:1 w:1) + /// Proof: `Assets::Account` (`max_values`: None, `max_size`: Some(134), added: 2609, mode: `MaxEncodedLen`) + fn thaw() -> Weight { + // Proof Size summary in bytes: + // Measured: `351` + // Estimated: `3675` + // Minimum execution time: 16_623_000 picoseconds. + Weight::from_parts(17_110_000, 0) + .saturating_add(Weight::from_parts(0, 3675)) + .saturating_add(T::DbWeight::get().reads(2)) + .saturating_add(T::DbWeight::get().writes(1)) + } + /// Storage: `Assets::Asset` (r:1 w:1) + /// Proof: `Assets::Asset` (`max_values`: None, `max_size`: Some(210), added: 2685, mode: `MaxEncodedLen`) + fn freeze_asset() -> Weight { + // Proof Size summary in bytes: + // Measured: `277` + // Estimated: `3675` + // Minimum execution time: 13_079_000 picoseconds. + Weight::from_parts(13_700_000, 0) + .saturating_add(Weight::from_parts(0, 3675)) + .saturating_add(T::DbWeight::get().reads(1)) + .saturating_add(T::DbWeight::get().writes(1)) + } + /// Storage: `Assets::Asset` (r:1 w:1) + /// Proof: `Assets::Asset` (`max_values`: None, `max_size`: Some(210), added: 2685, mode: `MaxEncodedLen`) + fn thaw_asset() -> Weight { + // Proof Size summary in bytes: + // Measured: `277` + // Estimated: `3675` + // Minimum execution time: 13_026_000 picoseconds. + Weight::from_parts(13_444_000, 0) + .saturating_add(Weight::from_parts(0, 3675)) + .saturating_add(T::DbWeight::get().reads(1)) + .saturating_add(T::DbWeight::get().writes(1)) + } + /// Storage: `Assets::Asset` (r:1 w:1) + /// Proof: `Assets::Asset` (`max_values`: None, `max_size`: Some(210), added: 2685, mode: `MaxEncodedLen`) + /// Storage: `Assets::Metadata` (r:1 w:0) + /// Proof: `Assets::Metadata` (`max_values`: None, `max_size`: Some(140), added: 2615, mode: `MaxEncodedLen`) + fn transfer_ownership() -> Weight { + // Proof Size summary in bytes: + // Measured: `243` + // Estimated: `3675` + // Minimum execution time: 13_945_000 picoseconds. + Weight::from_parts(14_792_000, 0) + .saturating_add(Weight::from_parts(0, 3675)) + .saturating_add(T::DbWeight::get().reads(2)) + .saturating_add(T::DbWeight::get().writes(1)) + } + /// Storage: `Assets::Asset` (r:1 w:1) + /// Proof: `Assets::Asset` (`max_values`: None, `max_size`: Some(210), added: 2685, mode: `MaxEncodedLen`) + fn set_team() -> Weight { + // Proof Size summary in bytes: + // Measured: `243` + // Estimated: `3675` + // Minimum execution time: 12_800_000 picoseconds. + Weight::from_parts(13_183_000, 0) + .saturating_add(Weight::from_parts(0, 3675)) + .saturating_add(T::DbWeight::get().reads(1)) + .saturating_add(T::DbWeight::get().writes(1)) + } + /// Storage: `Assets::Asset` (r:1 w:0) + /// Proof: `Assets::Asset` (`max_values`: None, `max_size`: Some(210), added: 2685, mode: `MaxEncodedLen`) + /// Storage: `Assets::Metadata` (r:1 w:1) + /// Proof: `Assets::Metadata` (`max_values`: None, `max_size`: Some(140), added: 2615, mode: `MaxEncodedLen`) + /// The range of component `n` is `[0, 50]`. + /// The range of component `s` is `[0, 50]`. + /// The range of component `n` is `[0, 50]`. + /// The range of component `s` is `[0, 50]`. + fn set_metadata(_n: u32, s: u32, ) -> Weight { + // Proof Size summary in bytes: + // Measured: `243` + // Estimated: `3675` + // Minimum execution time: 27_637_000 picoseconds. + Weight::from_parts(28_967_060, 0) + .saturating_add(Weight::from_parts(0, 3675)) + // Standard Error: 464 + .saturating_add(Weight::from_parts(572, 0).saturating_mul(s.into())) + .saturating_add(T::DbWeight::get().reads(2)) + .saturating_add(T::DbWeight::get().writes(1)) + } + /// Storage: `Assets::Asset` (r:1 w:0) + /// Proof: `Assets::Asset` (`max_values`: None, `max_size`: Some(210), added: 2685, mode: `MaxEncodedLen`) + /// Storage: `Assets::Metadata` (r:1 w:1) + /// Proof: `Assets::Metadata` (`max_values`: None, `max_size`: Some(140), added: 2615, mode: `MaxEncodedLen`) + fn clear_metadata() -> Weight { + // Proof Size summary in bytes: + // Measured: `407` + // Estimated: `3675` + // Minimum execution time: 28_427_000 picoseconds. + Weight::from_parts(28_961_000, 0) + .saturating_add(Weight::from_parts(0, 3675)) + .saturating_add(T::DbWeight::get().reads(2)) + .saturating_add(T::DbWeight::get().writes(1)) + } + /// Storage: `Assets::Asset` (r:1 w:0) + /// Proof: `Assets::Asset` (`max_values`: None, `max_size`: Some(210), added: 2685, mode: `MaxEncodedLen`) + /// Storage: `Assets::Metadata` (r:1 w:1) + /// Proof: `Assets::Metadata` (`max_values`: None, `max_size`: Some(140), added: 2615, mode: `MaxEncodedLen`) + /// The range of component `n` is `[0, 50]`. + /// The range of component `s` is `[0, 50]`. + /// The range of component `n` is `[0, 50]`. + /// The range of component `s` is `[0, 50]`. + fn force_set_metadata(_n: u32, s: u32, ) -> Weight { + // Proof Size summary in bytes: + // Measured: `82` + // Estimated: `3675` + // Minimum execution time: 12_251_000 picoseconds. + Weight::from_parts(12_928_907, 0) + .saturating_add(Weight::from_parts(0, 3675)) + // Standard Error: 244 + .saturating_add(Weight::from_parts(1_800, 0).saturating_mul(s.into())) + .saturating_add(T::DbWeight::get().reads(2)) + .saturating_add(T::DbWeight::get().writes(1)) + } + /// Storage: `Assets::Asset` (r:1 w:0) + /// Proof: `Assets::Asset` (`max_values`: None, `max_size`: Some(210), added: 2685, mode: `MaxEncodedLen`) + /// Storage: `Assets::Metadata` (r:1 w:1) + /// Proof: `Assets::Metadata` (`max_values`: None, `max_size`: Some(140), added: 2615, mode: `MaxEncodedLen`) + fn force_clear_metadata() -> Weight { + // Proof Size summary in bytes: + // Measured: `407` + // Estimated: `3675` + // Minimum execution time: 28_263_000 picoseconds. + Weight::from_parts(29_165_000, 0) + .saturating_add(Weight::from_parts(0, 3675)) + .saturating_add(T::DbWeight::get().reads(2)) + .saturating_add(T::DbWeight::get().writes(1)) + } + /// Storage: `Assets::Asset` (r:1 w:1) + /// Proof: `Assets::Asset` (`max_values`: None, `max_size`: Some(210), added: 2685, mode: `MaxEncodedLen`) + fn force_asset_status() -> Weight { + // Proof Size summary in bytes: + // Measured: `243` + // Estimated: `3675` + // Minimum execution time: 12_343_000 picoseconds. + Weight::from_parts(12_659_000, 0) + .saturating_add(Weight::from_parts(0, 3675)) + .saturating_add(T::DbWeight::get().reads(1)) + .saturating_add(T::DbWeight::get().writes(1)) + } + /// Storage: `Assets::Asset` (r:1 w:1) + /// Proof: `Assets::Asset` (`max_values`: None, `max_size`: Some(210), added: 2685, mode: `MaxEncodedLen`) + /// Storage: `Assets::Approvals` (r:1 w:1) + /// Proof: `Assets::Approvals` (`max_values`: None, `max_size`: Some(148), added: 2623, mode: `MaxEncodedLen`) + fn approve_transfer() -> Weight { + // Proof Size summary in bytes: + // Measured: `277` + // Estimated: `3675` + // Minimum execution time: 31_113_000 picoseconds. + Weight::from_parts(31_798_000, 0) + .saturating_add(Weight::from_parts(0, 3675)) + .saturating_add(T::DbWeight::get().reads(2)) + .saturating_add(T::DbWeight::get().writes(2)) + } + /// Storage: `Assets::Asset` (r:1 w:1) + /// Proof: `Assets::Asset` (`max_values`: None, `max_size`: Some(210), added: 2685, mode: `MaxEncodedLen`) + /// Storage: `Assets::Approvals` (r:1 w:1) + /// Proof: `Assets::Approvals` (`max_values`: None, `max_size`: Some(148), added: 2623, mode: `MaxEncodedLen`) + /// Storage: `Assets::Account` (r:2 w:2) + /// Proof: `Assets::Account` (`max_values`: None, `max_size`: Some(134), added: 2609, mode: `MaxEncodedLen`) + /// Storage: `System::Account` (r:1 w:1) + /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`) + fn transfer_approved() -> Weight { + // Proof Size summary in bytes: + // Measured: `521` + // Estimated: `6208` + // Minimum execution time: 61_428_000 picoseconds. + Weight::from_parts(62_707_000, 0) + .saturating_add(Weight::from_parts(0, 6208)) + .saturating_add(T::DbWeight::get().reads(5)) + .saturating_add(T::DbWeight::get().writes(5)) + } + /// Storage: `Assets::Asset` (r:1 w:1) + /// Proof: `Assets::Asset` (`max_values`: None, `max_size`: Some(210), added: 2685, mode: `MaxEncodedLen`) + /// Storage: `Assets::Approvals` (r:1 w:1) + /// Proof: `Assets::Approvals` (`max_values`: None, `max_size`: Some(148), added: 2623, mode: `MaxEncodedLen`) + fn cancel_approval() -> Weight { + // Proof Size summary in bytes: + // Measured: `447` + // Estimated: `3675` + // Minimum execution time: 33_538_000 picoseconds. + Weight::from_parts(34_216_000, 0) + .saturating_add(Weight::from_parts(0, 3675)) + .saturating_add(T::DbWeight::get().reads(2)) + .saturating_add(T::DbWeight::get().writes(2)) + } + /// Storage: `Assets::Asset` (r:1 w:1) + /// Proof: `Assets::Asset` (`max_values`: None, `max_size`: Some(210), added: 2685, mode: `MaxEncodedLen`) + /// Storage: `Assets::Approvals` (r:1 w:1) + /// Proof: `Assets::Approvals` (`max_values`: None, `max_size`: Some(148), added: 2623, mode: `MaxEncodedLen`) + fn force_cancel_approval() -> Weight { + // Proof Size summary in bytes: + // Measured: `447` + // Estimated: `3675` + // Minimum execution time: 33_870_000 picoseconds. + Weight::from_parts(34_709_000, 0) + .saturating_add(Weight::from_parts(0, 3675)) + .saturating_add(T::DbWeight::get().reads(2)) + .saturating_add(T::DbWeight::get().writes(2)) + } + /// Storage: `Assets::Asset` (r:1 w:1) + /// Proof: `Assets::Asset` (`max_values`: None, `max_size`: Some(210), added: 2685, mode: `MaxEncodedLen`) + fn set_min_balance() -> Weight { + // Proof Size summary in bytes: + // Measured: `243` + // Estimated: `3675` + // Minimum execution time: 13_358_000 picoseconds. + Weight::from_parts(13_735_000, 0) + .saturating_add(Weight::from_parts(0, 3675)) + .saturating_add(T::DbWeight::get().reads(1)) + .saturating_add(T::DbWeight::get().writes(1)) + } + /// Storage: `Assets::Account` (r:1 w:1) + /// Proof: `Assets::Account` (`max_values`: None, `max_size`: Some(134), added: 2609, mode: `MaxEncodedLen`) + /// Storage: `Assets::Asset` (r:1 w:1) + /// Proof: `Assets::Asset` (`max_values`: None, `max_size`: Some(210), added: 2685, mode: `MaxEncodedLen`) + /// Storage: `System::Account` (r:1 w:1) + /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`) + fn touch() -> Weight { + // Proof Size summary in bytes: + // Measured: `346` + // Estimated: `3675` + // Minimum execution time: 32_159_000 picoseconds. + Weight::from_parts(32_998_000, 0) + .saturating_add(Weight::from_parts(0, 3675)) + .saturating_add(T::DbWeight::get().reads(3)) + .saturating_add(T::DbWeight::get().writes(3)) + } + /// Storage: `Assets::Account` (r:1 w:1) + /// Proof: `Assets::Account` (`max_values`: None, `max_size`: Some(134), added: 2609, mode: `MaxEncodedLen`) + /// Storage: `Assets::Asset` (r:1 w:1) + /// Proof: `Assets::Asset` (`max_values`: None, `max_size`: Some(210), added: 2685, mode: `MaxEncodedLen`) + fn touch_other() -> Weight { + // Proof Size summary in bytes: + // Measured: `243` + // Estimated: `3675` + // Minimum execution time: 30_709_000 picoseconds. + Weight::from_parts(31_486_000, 0) + .saturating_add(Weight::from_parts(0, 3675)) + .saturating_add(T::DbWeight::get().reads(2)) + .saturating_add(T::DbWeight::get().writes(2)) + } + /// Storage: `Assets::Account` (r:1 w:1) + /// Proof: `Assets::Account` (`max_values`: None, `max_size`: Some(134), added: 2609, mode: `MaxEncodedLen`) + /// Storage: `Assets::Asset` (r:1 w:1) + /// Proof: `Assets::Asset` (`max_values`: None, `max_size`: Some(210), added: 2685, mode: `MaxEncodedLen`) + /// Storage: `System::Account` (r:1 w:1) + /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`) + fn refund() -> Weight { + // Proof Size summary in bytes: + // Measured: `472` + // Estimated: `3675` + // Minimum execution time: 29_557_000 picoseconds. + Weight::from_parts(30_510_000, 0) + .saturating_add(Weight::from_parts(0, 3675)) + .saturating_add(T::DbWeight::get().reads(3)) + .saturating_add(T::DbWeight::get().writes(3)) + } + /// Storage: `Assets::Account` (r:1 w:1) + /// Proof: `Assets::Account` (`max_values`: None, `max_size`: Some(134), added: 2609, mode: `MaxEncodedLen`) + /// Storage: `Assets::Asset` (r:1 w:1) + /// Proof: `Assets::Asset` (`max_values`: None, `max_size`: Some(210), added: 2685, mode: `MaxEncodedLen`) + fn refund_other() -> Weight { + // Proof Size summary in bytes: + // Measured: `402` + // Estimated: `3675` + // Minimum execution time: 28_027_000 picoseconds. + Weight::from_parts(28_865_000, 0) + .saturating_add(Weight::from_parts(0, 3675)) + .saturating_add(T::DbWeight::get().reads(2)) + .saturating_add(T::DbWeight::get().writes(2)) + } + /// Storage: `Assets::Asset` (r:1 w:0) + /// Proof: `Assets::Asset` (`max_values`: None, `max_size`: Some(210), added: 2685, mode: `MaxEncodedLen`) + /// Storage: `Assets::Account` (r:1 w:1) + /// Proof: `Assets::Account` (`max_values`: None, `max_size`: Some(134), added: 2609, mode: `MaxEncodedLen`) + fn block() -> Weight { + // Proof Size summary in bytes: + // Measured: `351` + // Estimated: `3675` + // Minimum execution time: 16_758_000 picoseconds. + Weight::from_parts(17_280_000, 0) + .saturating_add(Weight::from_parts(0, 3675)) + .saturating_add(T::DbWeight::get().reads(2)) + .saturating_add(T::DbWeight::get().writes(1)) + } +} diff --git a/cumulus/parachains/runtimes/assets/asset-hub-polkadot/src/weights/pallet_balances.rs b/cumulus/parachains/runtimes/assets/asset-hub-polkadot/src/weights/pallet_balances.rs new file mode 100644 index 000000000000..a7f02ba24fd1 --- /dev/null +++ b/cumulus/parachains/runtimes/assets/asset-hub-polkadot/src/weights/pallet_balances.rs @@ -0,0 +1,153 @@ +// Copyright (C) Parity Technologies (UK) Ltd. +// This file is part of Cumulus. + +// Cumulus 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. + +// Cumulus 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 Cumulus. 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-07-31, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! WORST CASE MAP SIZE: `1000000` +//! HOSTNAME: `runner-ynta1nyy-project-238-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz` +//! EXECUTION: ``, WASM-EXECUTION: `Compiled`, CHAIN: `Some("asset-hub-polkadot-dev")`, DB CACHE: 1024 + +// Executed Command: +// ./target/production/polkadot-parachain +// benchmark +// pallet +// --chain=asset-hub-polkadot-dev +// --wasm-execution=compiled +// --pallet=pallet_balances +// --no-storage-info +// --no-median-slopes +// --no-min-squares +// --extrinsic=* +// --steps=50 +// --repeat=20 +// --json +// --header=./file_header.txt +// --output=./parachains/runtimes/assets/asset-hub-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_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: 56_173_000 picoseconds. + Weight::from_parts(57_097_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: 41_470_000 picoseconds. + Weight::from_parts(42_051_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: `103` + // Estimated: `3593` + // Minimum execution time: 14_771_000 picoseconds. + Weight::from_parts(15_125_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: `103` + // Estimated: `3593` + // Minimum execution time: 22_210_000 picoseconds. + Weight::from_parts(22_712_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_475_000 picoseconds. + Weight::from_parts(58_343_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: 52_139_000 picoseconds. + Weight::from_parts(52_601_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: `103` + // Estimated: `3593` + // Minimum execution time: 17_372_000 picoseconds. + Weight::from_parts(17_978_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]`. + fn upgrade_accounts(u: u32, ) -> Weight { + // Proof Size summary in bytes: + // Measured: `0 + u * (136 ±0)` + // Estimated: `990 + u * (2603 ±0)` + // Minimum execution time: 17_143_000 picoseconds. + Weight::from_parts(17_475_000, 0) + .saturating_add(Weight::from_parts(0, 990)) + // Standard Error: 16_909 + .saturating_add(Weight::from_parts(15_474_628, 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/cumulus/parachains/runtimes/assets/asset-hub-polkadot/src/weights/pallet_collator_selection.rs b/cumulus/parachains/runtimes/assets/asset-hub-polkadot/src/weights/pallet_collator_selection.rs new file mode 100644 index 000000000000..53efb218440a --- /dev/null +++ b/cumulus/parachains/runtimes/assets/asset-hub-polkadot/src/weights/pallet_collator_selection.rs @@ -0,0 +1,223 @@ +// Copyright (C) Parity Technologies (UK) Ltd. +// This file is part of Cumulus. + +// Cumulus 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. + +// Cumulus 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 Cumulus. If not, see . + +//! Autogenerated weights for `pallet_collator_selection` +//! +//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev +//! DATE: 2023-07-31, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! WORST CASE MAP SIZE: `1000000` +//! HOSTNAME: `runner-ynta1nyy-project-238-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz` +//! EXECUTION: ``, WASM-EXECUTION: `Compiled`, CHAIN: `Some("asset-hub-polkadot-dev")`, DB CACHE: 1024 + +// Executed Command: +// ./target/production/polkadot-parachain +// benchmark +// pallet +// --chain=asset-hub-polkadot-dev +// --wasm-execution=compiled +// --pallet=pallet_collator_selection +// --no-storage-info +// --no-median-slopes +// --no-min-squares +// --extrinsic=* +// --steps=50 +// --repeat=20 +// --json +// --header=./file_header.txt +// --output=./parachains/runtimes/assets/asset-hub-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_collator_selection`. +pub struct WeightInfo(PhantomData); +impl pallet_collator_selection::WeightInfo for WeightInfo { + /// Storage: `Session::NextKeys` (r:20 w:0) + /// Proof: `Session::NextKeys` (`max_values`: None, `max_size`: None, mode: `Measured`) + /// Storage: `CollatorSelection::Invulnerables` (r:0 w:1) + /// Proof: `CollatorSelection::Invulnerables` (`max_values`: Some(1), `max_size`: Some(641), added: 1136, mode: `MaxEncodedLen`) + /// The range of component `b` is `[1, 20]`. + fn set_invulnerables(b: u32, ) -> Weight { + // Proof Size summary in bytes: + // Measured: `163 + b * (79 ±0)` + // Estimated: `1154 + b * (2555 ±0)` + // Minimum execution time: 14_882_000 picoseconds. + Weight::from_parts(12_290_529, 0) + .saturating_add(Weight::from_parts(0, 1154)) + // Standard Error: 6_842 + .saturating_add(Weight::from_parts(3_189_571, 0).saturating_mul(b.into())) + .saturating_add(T::DbWeight::get().reads((1_u64).saturating_mul(b.into()))) + .saturating_add(T::DbWeight::get().writes(1)) + .saturating_add(Weight::from_parts(0, 2555).saturating_mul(b.into())) + } + /// Storage: `Session::NextKeys` (r:1 w:0) + /// Proof: `Session::NextKeys` (`max_values`: None, `max_size`: None, mode: `Measured`) + /// Storage: `CollatorSelection::Invulnerables` (r:1 w:1) + /// Proof: `CollatorSelection::Invulnerables` (`max_values`: Some(1), `max_size`: Some(641), added: 1136, mode: `MaxEncodedLen`) + /// Storage: `CollatorSelection::Candidates` (r:1 w:1) + /// Proof: `CollatorSelection::Candidates` (`max_values`: Some(1), `max_size`: Some(4802), added: 5297, 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 `b` is `[1, 19]`. + /// The range of component `c` is `[1, 99]`. + fn add_invulnerable(b: u32, c: u32, ) -> Weight { + // Proof Size summary in bytes: + // Measured: `756 + b * (32 ±0) + c * (53 ±0)` + // Estimated: `6287 + b * (37 ±0) + c * (53 ±0)` + // Minimum execution time: 48_113_000 picoseconds. + Weight::from_parts(49_767_909, 0) + .saturating_add(Weight::from_parts(0, 6287)) + // Standard Error: 2_725 + .saturating_add(Weight::from_parts(232_655, 0).saturating_mul(c.into())) + .saturating_add(T::DbWeight::get().reads(4)) + .saturating_add(T::DbWeight::get().writes(3)) + .saturating_add(Weight::from_parts(0, 37).saturating_mul(b.into())) + .saturating_add(Weight::from_parts(0, 53).saturating_mul(c.into())) + } + /// Storage: `CollatorSelection::Candidates` (r:1 w:0) + /// Proof: `CollatorSelection::Candidates` (`max_values`: Some(1), `max_size`: Some(4802), added: 5297, mode: `MaxEncodedLen`) + /// Storage: `CollatorSelection::Invulnerables` (r:1 w:1) + /// Proof: `CollatorSelection::Invulnerables` (`max_values`: Some(1), `max_size`: Some(641), added: 1136, mode: `MaxEncodedLen`) + /// The range of component `b` is `[5, 20]`. + fn remove_invulnerable(b: u32, ) -> Weight { + // Proof Size summary in bytes: + // Measured: `119 + b * (32 ±0)` + // Estimated: `6287` + // Minimum execution time: 16_228_000 picoseconds. + Weight::from_parts(16_351_387, 0) + .saturating_add(Weight::from_parts(0, 6287)) + // Standard Error: 2_953 + .saturating_add(Weight::from_parts(140_754, 0).saturating_mul(b.into())) + .saturating_add(T::DbWeight::get().reads(2)) + .saturating_add(T::DbWeight::get().writes(1)) + } + /// Storage: `CollatorSelection::DesiredCandidates` (r:0 w:1) + /// Proof: `CollatorSelection::DesiredCandidates` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`) + fn set_desired_candidates() -> Weight { + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 7_541_000 picoseconds. + Weight::from_parts(7_720_000, 0) + .saturating_add(Weight::from_parts(0, 0)) + .saturating_add(T::DbWeight::get().writes(1)) + } + /// Storage: `CollatorSelection::CandidacyBond` (r:0 w:1) + /// Proof: `CollatorSelection::CandidacyBond` (`max_values`: Some(1), `max_size`: Some(16), added: 511, mode: `MaxEncodedLen`) + fn set_candidacy_bond() -> Weight { + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 7_402_000 picoseconds. + Weight::from_parts(7_729_000, 0) + .saturating_add(Weight::from_parts(0, 0)) + .saturating_add(T::DbWeight::get().writes(1)) + } + /// Storage: `CollatorSelection::Candidates` (r:1 w:1) + /// Proof: `CollatorSelection::Candidates` (`max_values`: Some(1), `max_size`: Some(4802), added: 5297, mode: `MaxEncodedLen`) + /// Storage: `CollatorSelection::DesiredCandidates` (r:1 w:0) + /// Proof: `CollatorSelection::DesiredCandidates` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`) + /// Storage: `CollatorSelection::Invulnerables` (r:1 w:0) + /// Proof: `CollatorSelection::Invulnerables` (`max_values`: Some(1), `max_size`: Some(641), added: 1136, mode: `MaxEncodedLen`) + /// Storage: `Session::NextKeys` (r:1 w:0) + /// Proof: `Session::NextKeys` (`max_values`: None, `max_size`: None, mode: `Measured`) + /// Storage: `CollatorSelection::CandidacyBond` (r:1 w:0) + /// Proof: `CollatorSelection::CandidacyBond` (`max_values`: Some(1), `max_size`: Some(16), added: 511, mode: `MaxEncodedLen`) + /// Storage: `CollatorSelection::LastAuthoredBlock` (r:0 w:1) + /// Proof: `CollatorSelection::LastAuthoredBlock` (`max_values`: None, `max_size`: Some(44), added: 2519, mode: `MaxEncodedLen`) + /// The range of component `c` is `[1, 99]`. + fn register_as_candidate(c: u32, ) -> Weight { + // Proof Size summary in bytes: + // Measured: `736 + c * (52 ±0)` + // Estimated: `6287 + c * (54 ±0)` + // Minimum execution time: 41_874_000 picoseconds. + Weight::from_parts(45_654_015, 0) + .saturating_add(Weight::from_parts(0, 6287)) + // Standard Error: 2_317 + .saturating_add(Weight::from_parts(221_237, 0).saturating_mul(c.into())) + .saturating_add(T::DbWeight::get().reads(5)) + .saturating_add(T::DbWeight::get().writes(2)) + .saturating_add(Weight::from_parts(0, 54).saturating_mul(c.into())) + } + /// Storage: `CollatorSelection::Candidates` (r:1 w:1) + /// Proof: `CollatorSelection::Candidates` (`max_values`: Some(1), `max_size`: Some(4802), added: 5297, mode: `MaxEncodedLen`) + /// Storage: `CollatorSelection::Invulnerables` (r:1 w:0) + /// Proof: `CollatorSelection::Invulnerables` (`max_values`: Some(1), `max_size`: Some(641), added: 1136, mode: `MaxEncodedLen`) + /// Storage: `CollatorSelection::LastAuthoredBlock` (r:0 w:1) + /// Proof: `CollatorSelection::LastAuthoredBlock` (`max_values`: None, `max_size`: Some(44), added: 2519, mode: `MaxEncodedLen`) + /// The range of component `c` is `[4, 100]`. + fn leave_intent(c: u32, ) -> Weight { + // Proof Size summary in bytes: + // Measured: `306 + c * (50 ±0)` + // Estimated: `6287` + // Minimum execution time: 33_693_000 picoseconds. + Weight::from_parts(37_321_527, 0) + .saturating_add(Weight::from_parts(0, 6287)) + // Standard Error: 3_499 + .saturating_add(Weight::from_parts(182_068, 0).saturating_mul(c.into())) + .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: `System::BlockWeight` (r:1 w:1) + /// Proof: `System::BlockWeight` (`max_values`: Some(1), `max_size`: Some(48), added: 543, mode: `MaxEncodedLen`) + /// Storage: `CollatorSelection::LastAuthoredBlock` (r:0 w:1) + /// Proof: `CollatorSelection::LastAuthoredBlock` (`max_values`: None, `max_size`: Some(44), added: 2519, mode: `MaxEncodedLen`) + fn note_author() -> Weight { + // Proof Size summary in bytes: + // Measured: `103` + // Estimated: `6196` + // Minimum execution time: 44_412_000 picoseconds. + Weight::from_parts(45_196_000, 0) + .saturating_add(Weight::from_parts(0, 6196)) + .saturating_add(T::DbWeight::get().reads(3)) + .saturating_add(T::DbWeight::get().writes(4)) + } + /// Storage: `CollatorSelection::Candidates` (r:1 w:0) + /// Proof: `CollatorSelection::Candidates` (`max_values`: Some(1), `max_size`: Some(4802), added: 5297, mode: `MaxEncodedLen`) + /// Storage: `CollatorSelection::LastAuthoredBlock` (r:100 w:0) + /// Proof: `CollatorSelection::LastAuthoredBlock` (`max_values`: None, `max_size`: Some(44), added: 2519, mode: `MaxEncodedLen`) + /// Storage: `CollatorSelection::Invulnerables` (r:1 w:0) + /// Proof: `CollatorSelection::Invulnerables` (`max_values`: Some(1), `max_size`: Some(641), added: 1136, mode: `MaxEncodedLen`) + /// Storage: `System::BlockWeight` (r:1 w:1) + /// Proof: `System::BlockWeight` (`max_values`: Some(1), `max_size`: Some(48), added: 543, mode: `MaxEncodedLen`) + /// Storage: `System::Account` (r:97 w:97) + /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`) + /// The range of component `r` is `[1, 100]`. + /// The range of component `c` is `[1, 100]`. + fn new_session(r: u32, c: u32, ) -> Weight { + // Proof Size summary in bytes: + // Measured: `2243 + c * (97 ±0) + r * (112 ±0)` + // Estimated: `6287 + c * (2519 ±0) + r * (2603 ±0)` + // Minimum execution time: 17_360_000 picoseconds. + Weight::from_parts(17_599_000, 0) + .saturating_add(Weight::from_parts(0, 6287)) + // Standard Error: 350_829 + .saturating_add(Weight::from_parts(15_375_949, 0).saturating_mul(c.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().writes(1)) + .saturating_add(T::DbWeight::get().writes((1_u64).saturating_mul(c.into()))) + .saturating_add(Weight::from_parts(0, 2519).saturating_mul(c.into())) + .saturating_add(Weight::from_parts(0, 2603).saturating_mul(r.into())) + } +} diff --git a/cumulus/parachains/runtimes/assets/asset-hub-polkadot/src/weights/pallet_multisig.rs b/cumulus/parachains/runtimes/assets/asset-hub-polkadot/src/weights/pallet_multisig.rs new file mode 100644 index 000000000000..705aca9e1a4e --- /dev/null +++ b/cumulus/parachains/runtimes/assets/asset-hub-polkadot/src/weights/pallet_multisig.rs @@ -0,0 +1,165 @@ +// Copyright (C) Parity Technologies (UK) Ltd. +// This file is part of Cumulus. + +// Cumulus 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. + +// Cumulus 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 Cumulus. If not, see . + +//! Autogenerated weights for `pallet_multisig` +//! +//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev +//! DATE: 2023-07-31, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! WORST CASE MAP SIZE: `1000000` +//! HOSTNAME: `runner-ynta1nyy-project-238-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz` +//! EXECUTION: ``, WASM-EXECUTION: `Compiled`, CHAIN: `Some("asset-hub-polkadot-dev")`, DB CACHE: 1024 + +// Executed Command: +// ./target/production/polkadot-parachain +// benchmark +// pallet +// --chain=asset-hub-polkadot-dev +// --wasm-execution=compiled +// --pallet=pallet_multisig +// --no-storage-info +// --no-median-slopes +// --no-min-squares +// --extrinsic=* +// --steps=50 +// --repeat=20 +// --json +// --header=./file_header.txt +// --output=./parachains/runtimes/assets/asset-hub-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_multisig`. +pub struct WeightInfo(PhantomData); +impl pallet_multisig::WeightInfo for WeightInfo { + /// The range of component `z` is `[0, 10000]`. + fn as_multi_threshold_1(z: u32, ) -> Weight { + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 13_710_000 picoseconds. + Weight::from_parts(14_702_959, 0) + .saturating_add(Weight::from_parts(0, 0)) + // Standard Error: 7 + .saturating_add(Weight::from_parts(568, 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`) + /// The range of component `s` is `[2, 100]`. + /// The range of component `z` is `[0, 10000]`. + fn as_multi_create(s: u32, z: u32, ) -> Weight { + // Proof Size summary in bytes: + // Measured: `262 + s * (2 ±0)` + // Estimated: `6811` + // Minimum execution time: 45_518_000 picoseconds. + Weight::from_parts(35_243_068, 0) + .saturating_add(Weight::from_parts(0, 6811)) + // Standard Error: 1_634 + .saturating_add(Weight::from_parts(116_658, 0).saturating_mul(s.into())) + // Standard Error: 16 + .saturating_add(Weight::from_parts(1_444, 0).saturating_mul(z.into())) + .saturating_add(T::DbWeight::get().reads(1)) + .saturating_add(T::DbWeight::get().writes(1)) + } + /// Storage: `Multisig::Multisigs` (r:1 w:1) + /// Proof: `Multisig::Multisigs` (`max_values`: None, `max_size`: Some(3346), added: 5821, mode: `MaxEncodedLen`) + /// The range of component `s` is `[3, 100]`. + /// The range of component `z` is `[0, 10000]`. + fn as_multi_approve(s: u32, z: u32, ) -> Weight { + // Proof Size summary in bytes: + // Measured: `282` + // Estimated: `6811` + // Minimum execution time: 29_590_000 picoseconds. + Weight::from_parts(21_574_604, 0) + .saturating_add(Weight::from_parts(0, 6811)) + // Standard Error: 1_622 + .saturating_add(Weight::from_parts(95_669, 0).saturating_mul(s.into())) + // Standard Error: 15 + .saturating_add(Weight::from_parts(1_459, 0).saturating_mul(z.into())) + .saturating_add(T::DbWeight::get().reads(1)) + .saturating_add(T::DbWeight::get().writes(1)) + } + /// Storage: `Multisig::Multisigs` (r:1 w:1) + /// Proof: `Multisig::Multisigs` (`max_values`: None, `max_size`: Some(3346), added: 5821, 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 `[2, 100]`. + /// The range of component `z` is `[0, 10000]`. + fn as_multi_complete(s: u32, z: u32, ) -> Weight { + // Proof Size summary in bytes: + // Measured: `385 + s * (33 ±0)` + // Estimated: `6811` + // Minimum execution time: 51_056_000 picoseconds. + Weight::from_parts(35_799_301, 0) + .saturating_add(Weight::from_parts(0, 6811)) + // Standard Error: 1_629 + .saturating_add(Weight::from_parts(183_343, 0).saturating_mul(s.into())) + // Standard Error: 15 + .saturating_add(Weight::from_parts(1_686, 0).saturating_mul(z.into())) + .saturating_add(T::DbWeight::get().reads(2)) + .saturating_add(T::DbWeight::get().writes(2)) + } + /// Storage: `Multisig::Multisigs` (r:1 w:1) + /// Proof: `Multisig::Multisigs` (`max_values`: None, `max_size`: Some(3346), added: 5821, mode: `MaxEncodedLen`) + /// The range of component `s` is `[2, 100]`. + fn approve_as_multi_create(s: u32, ) -> Weight { + // Proof Size summary in bytes: + // Measured: `263 + s * (2 ±0)` + // Estimated: `6811` + // Minimum execution time: 30_910_000 picoseconds. + Weight::from_parts(32_413_023, 0) + .saturating_add(Weight::from_parts(0, 6811)) + // Standard Error: 1_346 + .saturating_add(Weight::from_parts(128_779, 0).saturating_mul(s.into())) + .saturating_add(T::DbWeight::get().reads(1)) + .saturating_add(T::DbWeight::get().writes(1)) + } + /// Storage: `Multisig::Multisigs` (r:1 w:1) + /// Proof: `Multisig::Multisigs` (`max_values`: None, `max_size`: Some(3346), added: 5821, mode: `MaxEncodedLen`) + /// The range of component `s` is `[2, 100]`. + fn approve_as_multi_approve(s: u32, ) -> Weight { + // Proof Size summary in bytes: + // Measured: `282` + // Estimated: `6811` + // Minimum execution time: 17_926_000 picoseconds. + Weight::from_parts(18_477_305, 0) + .saturating_add(Weight::from_parts(0, 6811)) + // Standard Error: 1_367 + .saturating_add(Weight::from_parts(113_018, 0).saturating_mul(s.into())) + .saturating_add(T::DbWeight::get().reads(1)) + .saturating_add(T::DbWeight::get().writes(1)) + } + /// Storage: `Multisig::Multisigs` (r:1 w:1) + /// Proof: `Multisig::Multisigs` (`max_values`: None, `max_size`: Some(3346), added: 5821, mode: `MaxEncodedLen`) + /// The range of component `s` is `[2, 100]`. + fn cancel_as_multi(s: u32, ) -> Weight { + // Proof Size summary in bytes: + // Measured: `454 + s * (1 ±0)` + // Estimated: `6811` + // Minimum execution time: 32_232_000 picoseconds. + Weight::from_parts(33_724_753, 0) + .saturating_add(Weight::from_parts(0, 6811)) + // Standard Error: 1_192 + .saturating_add(Weight::from_parts(121_574, 0).saturating_mul(s.into())) + .saturating_add(T::DbWeight::get().reads(1)) + .saturating_add(T::DbWeight::get().writes(1)) + } +} diff --git a/cumulus/parachains/runtimes/assets/asset-hub-polkadot/src/weights/pallet_nfts.rs b/cumulus/parachains/runtimes/assets/asset-hub-polkadot/src/weights/pallet_nfts.rs new file mode 100644 index 000000000000..6d6f7cbbafb4 --- /dev/null +++ b/cumulus/parachains/runtimes/assets/asset-hub-polkadot/src/weights/pallet_nfts.rs @@ -0,0 +1,773 @@ +// Copyright (C) Parity Technologies (UK) Ltd. +// This file is part of Cumulus. + +// Cumulus 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. + +// Cumulus 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 Cumulus. If not, see . + +//! Autogenerated weights for `pallet_nfts` +//! +//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev +//! DATE: 2023-07-31, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! WORST CASE MAP SIZE: `1000000` +//! HOSTNAME: `runner-ynta1nyy-project-238-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz` +//! EXECUTION: ``, WASM-EXECUTION: `Compiled`, CHAIN: `Some("asset-hub-polkadot-dev")`, DB CACHE: 1024 + +// Executed Command: +// ./target/production/polkadot-parachain +// benchmark +// pallet +// --chain=asset-hub-polkadot-dev +// --wasm-execution=compiled +// --pallet=pallet_nfts +// --no-storage-info +// --no-median-slopes +// --no-min-squares +// --extrinsic=* +// --steps=50 +// --repeat=20 +// --json +// --header=./file_header.txt +// --output=./parachains/runtimes/assets/asset-hub-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_nfts`. +pub struct WeightInfo(PhantomData); +impl pallet_nfts::WeightInfo for WeightInfo { + /// Storage: `Nfts::NextCollectionId` (r:1 w:1) + /// Proof: `Nfts::NextCollectionId` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`) + /// Storage: `Nfts::Collection` (r:1 w:1) + /// Proof: `Nfts::Collection` (`max_values`: None, `max_size`: Some(84), added: 2559, mode: `MaxEncodedLen`) + /// Storage: `Nfts::CollectionRoleOf` (r:0 w:1) + /// Proof: `Nfts::CollectionRoleOf` (`max_values`: None, `max_size`: Some(69), added: 2544, mode: `MaxEncodedLen`) + /// Storage: `Nfts::CollectionConfigOf` (r:0 w:1) + /// Proof: `Nfts::CollectionConfigOf` (`max_values`: None, `max_size`: Some(73), added: 2548, mode: `MaxEncodedLen`) + /// Storage: `Nfts::CollectionAccount` (r:0 w:1) + /// Proof: `Nfts::CollectionAccount` (`max_values`: None, `max_size`: Some(68), added: 2543, mode: `MaxEncodedLen`) + fn create() -> Weight { + // Proof Size summary in bytes: + // Measured: `145` + // Estimated: `3549` + // Minimum execution time: 37_915_000 picoseconds. + Weight::from_parts(39_275_000, 0) + .saturating_add(Weight::from_parts(0, 3549)) + .saturating_add(T::DbWeight::get().reads(2)) + .saturating_add(T::DbWeight::get().writes(5)) + } + /// Storage: `Nfts::NextCollectionId` (r:1 w:1) + /// Proof: `Nfts::NextCollectionId` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`) + /// Storage: `Nfts::Collection` (r:1 w:1) + /// Proof: `Nfts::Collection` (`max_values`: None, `max_size`: Some(84), added: 2559, mode: `MaxEncodedLen`) + /// Storage: `Nfts::CollectionRoleOf` (r:0 w:1) + /// Proof: `Nfts::CollectionRoleOf` (`max_values`: None, `max_size`: Some(69), added: 2544, mode: `MaxEncodedLen`) + /// Storage: `Nfts::CollectionConfigOf` (r:0 w:1) + /// Proof: `Nfts::CollectionConfigOf` (`max_values`: None, `max_size`: Some(73), added: 2548, mode: `MaxEncodedLen`) + /// Storage: `Nfts::CollectionAccount` (r:0 w:1) + /// Proof: `Nfts::CollectionAccount` (`max_values`: None, `max_size`: Some(68), added: 2543, mode: `MaxEncodedLen`) + fn force_create() -> Weight { + // Proof Size summary in bytes: + // Measured: `42` + // Estimated: `3549` + // Minimum execution time: 22_722_000 picoseconds. + Weight::from_parts(23_500_000, 0) + .saturating_add(Weight::from_parts(0, 3549)) + .saturating_add(T::DbWeight::get().reads(2)) + .saturating_add(T::DbWeight::get().writes(5)) + } + /// Storage: `Nfts::Collection` (r:1 w:1) + /// Proof: `Nfts::Collection` (`max_values`: None, `max_size`: Some(84), added: 2559, mode: `MaxEncodedLen`) + /// Storage: `Nfts::ItemMetadataOf` (r:1 w:0) + /// Proof: `Nfts::ItemMetadataOf` (`max_values`: None, `max_size`: Some(347), added: 2822, mode: `MaxEncodedLen`) + /// Storage: `Nfts::CollectionRoleOf` (r:1 w:1) + /// Proof: `Nfts::CollectionRoleOf` (`max_values`: None, `max_size`: Some(69), added: 2544, mode: `MaxEncodedLen`) + /// Storage: `Nfts::Attribute` (r:1001 w:1000) + /// Proof: `Nfts::Attribute` (`max_values`: None, `max_size`: Some(479), added: 2954, mode: `MaxEncodedLen`) + /// Storage: `Nfts::ItemConfigOf` (r:1000 w:1000) + /// Proof: `Nfts::ItemConfigOf` (`max_values`: None, `max_size`: Some(48), added: 2523, mode: `MaxEncodedLen`) + /// Storage: `Nfts::CollectionMetadataOf` (r:0 w:1) + /// Proof: `Nfts::CollectionMetadataOf` (`max_values`: None, `max_size`: Some(294), added: 2769, mode: `MaxEncodedLen`) + /// Storage: `Nfts::CollectionConfigOf` (r:0 w:1) + /// Proof: `Nfts::CollectionConfigOf` (`max_values`: None, `max_size`: Some(73), added: 2548, mode: `MaxEncodedLen`) + /// Storage: `Nfts::CollectionAccount` (r:0 w:1) + /// Proof: `Nfts::CollectionAccount` (`max_values`: None, `max_size`: Some(68), added: 2543, mode: `MaxEncodedLen`) + /// The range of component `m` is `[0, 1000]`. + /// The range of component `c` is `[0, 1000]`. + /// The range of component `a` is `[0, 1000]`. + fn destroy(_m: u32, _c: u32, a: u32, ) -> Weight { + // Proof Size summary in bytes: + // Measured: `32170 + a * (366 ±0)` + // Estimated: `2523990 + a * (2954 ±0)` + // Minimum execution time: 1_231_520_000 picoseconds. + Weight::from_parts(1_228_960_098, 0) + .saturating_add(Weight::from_parts(0, 2523990)) + // Standard Error: 8_836 + .saturating_add(Weight::from_parts(6_818_975, 0).saturating_mul(a.into())) + .saturating_add(T::DbWeight::get().reads(1004)) + .saturating_add(T::DbWeight::get().reads((1_u64).saturating_mul(a.into()))) + .saturating_add(T::DbWeight::get().writes(1005)) + .saturating_add(T::DbWeight::get().writes((1_u64).saturating_mul(a.into()))) + .saturating_add(Weight::from_parts(0, 2954).saturating_mul(a.into())) + } + /// Storage: `Nfts::CollectionConfigOf` (r:1 w:0) + /// Proof: `Nfts::CollectionConfigOf` (`max_values`: None, `max_size`: Some(73), added: 2548, mode: `MaxEncodedLen`) + /// Storage: `Nfts::Item` (r:1 w:1) + /// Proof: `Nfts::Item` (`max_values`: None, `max_size`: Some(861), added: 3336, mode: `MaxEncodedLen`) + /// Storage: `Nfts::Collection` (r:1 w:1) + /// Proof: `Nfts::Collection` (`max_values`: None, `max_size`: Some(84), added: 2559, mode: `MaxEncodedLen`) + /// Storage: `Nfts::CollectionRoleOf` (r:1 w:0) + /// Proof: `Nfts::CollectionRoleOf` (`max_values`: None, `max_size`: Some(69), added: 2544, mode: `MaxEncodedLen`) + /// Storage: `Nfts::ItemConfigOf` (r:1 w:1) + /// Proof: `Nfts::ItemConfigOf` (`max_values`: None, `max_size`: Some(48), added: 2523, mode: `MaxEncodedLen`) + /// Storage: `Nfts::Account` (r:0 w:1) + /// Proof: `Nfts::Account` (`max_values`: None, `max_size`: Some(88), added: 2563, mode: `MaxEncodedLen`) + fn mint() -> Weight { + // Proof Size summary in bytes: + // Measured: `421` + // Estimated: `4326` + // Minimum execution time: 48_581_000 picoseconds. + Weight::from_parts(50_020_000, 0) + .saturating_add(Weight::from_parts(0, 4326)) + .saturating_add(T::DbWeight::get().reads(5)) + .saturating_add(T::DbWeight::get().writes(4)) + } + /// Storage: `Nfts::CollectionRoleOf` (r:1 w:0) + /// Proof: `Nfts::CollectionRoleOf` (`max_values`: None, `max_size`: Some(69), added: 2544, mode: `MaxEncodedLen`) + /// Storage: `Nfts::Item` (r:1 w:1) + /// Proof: `Nfts::Item` (`max_values`: None, `max_size`: Some(861), added: 3336, mode: `MaxEncodedLen`) + /// Storage: `Nfts::Collection` (r:1 w:1) + /// Proof: `Nfts::Collection` (`max_values`: None, `max_size`: Some(84), added: 2559, mode: `MaxEncodedLen`) + /// Storage: `Nfts::CollectionConfigOf` (r:1 w:0) + /// Proof: `Nfts::CollectionConfigOf` (`max_values`: None, `max_size`: Some(73), added: 2548, mode: `MaxEncodedLen`) + /// Storage: `Nfts::ItemConfigOf` (r:1 w:1) + /// Proof: `Nfts::ItemConfigOf` (`max_values`: None, `max_size`: Some(48), added: 2523, mode: `MaxEncodedLen`) + /// Storage: `Nfts::Account` (r:0 w:1) + /// Proof: `Nfts::Account` (`max_values`: None, `max_size`: Some(88), added: 2563, mode: `MaxEncodedLen`) + fn force_mint() -> Weight { + // Proof Size summary in bytes: + // Measured: `421` + // Estimated: `4326` + // Minimum execution time: 47_171_000 picoseconds. + Weight::from_parts(48_084_000, 0) + .saturating_add(Weight::from_parts(0, 4326)) + .saturating_add(T::DbWeight::get().reads(5)) + .saturating_add(T::DbWeight::get().writes(4)) + } + /// Storage: `Nfts::Attribute` (r:1 w:0) + /// Proof: `Nfts::Attribute` (`max_values`: None, `max_size`: Some(479), added: 2954, mode: `MaxEncodedLen`) + /// Storage: `Nfts::ItemConfigOf` (r:1 w:1) + /// Proof: `Nfts::ItemConfigOf` (`max_values`: None, `max_size`: Some(48), added: 2523, mode: `MaxEncodedLen`) + /// Storage: `Nfts::Collection` (r:1 w:1) + /// Proof: `Nfts::Collection` (`max_values`: None, `max_size`: Some(84), added: 2559, mode: `MaxEncodedLen`) + /// Storage: `Nfts::Item` (r:1 w:1) + /// Proof: `Nfts::Item` (`max_values`: None, `max_size`: Some(861), added: 3336, mode: `MaxEncodedLen`) + /// Storage: `Nfts::ItemMetadataOf` (r:1 w:0) + /// Proof: `Nfts::ItemMetadataOf` (`max_values`: None, `max_size`: Some(347), added: 2822, mode: `MaxEncodedLen`) + /// Storage: `Nfts::Account` (r:0 w:1) + /// Proof: `Nfts::Account` (`max_values`: None, `max_size`: Some(88), added: 2563, mode: `MaxEncodedLen`) + /// Storage: `Nfts::ItemPriceOf` (r:0 w:1) + /// Proof: `Nfts::ItemPriceOf` (`max_values`: None, `max_size`: Some(89), added: 2564, mode: `MaxEncodedLen`) + /// Storage: `Nfts::ItemAttributesApprovalsOf` (r:0 w:1) + /// Proof: `Nfts::ItemAttributesApprovalsOf` (`max_values`: None, `max_size`: Some(1001), added: 3476, mode: `MaxEncodedLen`) + /// Storage: `Nfts::PendingSwapOf` (r:0 w:1) + /// Proof: `Nfts::PendingSwapOf` (`max_values`: None, `max_size`: Some(71), added: 2546, mode: `MaxEncodedLen`) + fn burn() -> Weight { + // Proof Size summary in bytes: + // Measured: `530` + // Estimated: `4326` + // Minimum execution time: 53_591_000 picoseconds. + Weight::from_parts(55_074_000, 0) + .saturating_add(Weight::from_parts(0, 4326)) + .saturating_add(T::DbWeight::get().reads(5)) + .saturating_add(T::DbWeight::get().writes(7)) + } + /// Storage: `Nfts::Collection` (r:1 w:0) + /// Proof: `Nfts::Collection` (`max_values`: None, `max_size`: Some(84), added: 2559, mode: `MaxEncodedLen`) + /// Storage: `Nfts::Attribute` (r:1 w:0) + /// Proof: `Nfts::Attribute` (`max_values`: None, `max_size`: Some(479), added: 2954, mode: `MaxEncodedLen`) + /// Storage: `Nfts::CollectionConfigOf` (r:1 w:0) + /// Proof: `Nfts::CollectionConfigOf` (`max_values`: None, `max_size`: Some(73), added: 2548, mode: `MaxEncodedLen`) + /// Storage: `Nfts::ItemConfigOf` (r:1 w:0) + /// Proof: `Nfts::ItemConfigOf` (`max_values`: None, `max_size`: Some(48), added: 2523, mode: `MaxEncodedLen`) + /// Storage: `Nfts::Item` (r:1 w:1) + /// Proof: `Nfts::Item` (`max_values`: None, `max_size`: Some(861), added: 3336, mode: `MaxEncodedLen`) + /// Storage: `Nfts::Account` (r:0 w:2) + /// Proof: `Nfts::Account` (`max_values`: None, `max_size`: Some(88), added: 2563, mode: `MaxEncodedLen`) + /// Storage: `Nfts::ItemPriceOf` (r:0 w:1) + /// Proof: `Nfts::ItemPriceOf` (`max_values`: None, `max_size`: Some(89), added: 2564, mode: `MaxEncodedLen`) + /// Storage: `Nfts::PendingSwapOf` (r:0 w:1) + /// Proof: `Nfts::PendingSwapOf` (`max_values`: None, `max_size`: Some(71), added: 2546, mode: `MaxEncodedLen`) + fn transfer() -> Weight { + // Proof Size summary in bytes: + // Measured: `559` + // Estimated: `4326` + // Minimum execution time: 40_935_000 picoseconds. + Weight::from_parts(41_835_000, 0) + .saturating_add(Weight::from_parts(0, 4326)) + .saturating_add(T::DbWeight::get().reads(5)) + .saturating_add(T::DbWeight::get().writes(5)) + } + /// Storage: `Nfts::Collection` (r:1 w:0) + /// Proof: `Nfts::Collection` (`max_values`: None, `max_size`: Some(84), added: 2559, mode: `MaxEncodedLen`) + /// Storage: `Nfts::CollectionConfigOf` (r:1 w:0) + /// Proof: `Nfts::CollectionConfigOf` (`max_values`: None, `max_size`: Some(73), added: 2548, mode: `MaxEncodedLen`) + /// Storage: `Nfts::Item` (r:5000 w:5000) + /// Proof: `Nfts::Item` (`max_values`: None, `max_size`: Some(861), added: 3336, mode: `MaxEncodedLen`) + /// The range of component `i` is `[0, 5000]`. + fn redeposit(i: u32, ) -> Weight { + // Proof Size summary in bytes: + // Measured: `729 + i * (108 ±0)` + // Estimated: `3549 + i * (3336 ±0)` + // Minimum execution time: 16_543_000 picoseconds. + Weight::from_parts(16_769_000, 0) + .saturating_add(Weight::from_parts(0, 3549)) + // Standard Error: 23_638 + .saturating_add(Weight::from_parts(17_762_895, 0).saturating_mul(i.into())) + .saturating_add(T::DbWeight::get().reads(2)) + .saturating_add(T::DbWeight::get().reads((1_u64).saturating_mul(i.into()))) + .saturating_add(T::DbWeight::get().writes((1_u64).saturating_mul(i.into()))) + .saturating_add(Weight::from_parts(0, 3336).saturating_mul(i.into())) + } + /// Storage: `Nfts::CollectionRoleOf` (r:1 w:0) + /// Proof: `Nfts::CollectionRoleOf` (`max_values`: None, `max_size`: Some(69), added: 2544, mode: `MaxEncodedLen`) + /// Storage: `Nfts::ItemConfigOf` (r:1 w:1) + /// Proof: `Nfts::ItemConfigOf` (`max_values`: None, `max_size`: Some(48), added: 2523, mode: `MaxEncodedLen`) + fn lock_item_transfer() -> Weight { + // Proof Size summary in bytes: + // Measured: `401` + // Estimated: `3534` + // Minimum execution time: 20_446_000 picoseconds. + Weight::from_parts(20_740_000, 0) + .saturating_add(Weight::from_parts(0, 3534)) + .saturating_add(T::DbWeight::get().reads(2)) + .saturating_add(T::DbWeight::get().writes(1)) + } + /// Storage: `Nfts::CollectionRoleOf` (r:1 w:0) + /// Proof: `Nfts::CollectionRoleOf` (`max_values`: None, `max_size`: Some(69), added: 2544, mode: `MaxEncodedLen`) + /// Storage: `Nfts::ItemConfigOf` (r:1 w:1) + /// Proof: `Nfts::ItemConfigOf` (`max_values`: None, `max_size`: Some(48), added: 2523, mode: `MaxEncodedLen`) + fn unlock_item_transfer() -> Weight { + // Proof Size summary in bytes: + // Measured: `401` + // Estimated: `3534` + // Minimum execution time: 20_088_000 picoseconds. + Weight::from_parts(20_627_000, 0) + .saturating_add(Weight::from_parts(0, 3534)) + .saturating_add(T::DbWeight::get().reads(2)) + .saturating_add(T::DbWeight::get().writes(1)) + } + /// Storage: `Nfts::Collection` (r:1 w:0) + /// Proof: `Nfts::Collection` (`max_values`: None, `max_size`: Some(84), added: 2559, mode: `MaxEncodedLen`) + /// Storage: `Nfts::CollectionConfigOf` (r:1 w:1) + /// Proof: `Nfts::CollectionConfigOf` (`max_values`: None, `max_size`: Some(73), added: 2548, mode: `MaxEncodedLen`) + fn lock_collection() -> Weight { + // Proof Size summary in bytes: + // Measured: `306` + // Estimated: `3549` + // Minimum execution time: 17_036_000 picoseconds. + Weight::from_parts(17_435_000, 0) + .saturating_add(Weight::from_parts(0, 3549)) + .saturating_add(T::DbWeight::get().reads(2)) + .saturating_add(T::DbWeight::get().writes(1)) + } + /// Storage: `Nfts::OwnershipAcceptance` (r:1 w:1) + /// Proof: `Nfts::OwnershipAcceptance` (`max_values`: None, `max_size`: Some(52), added: 2527, mode: `MaxEncodedLen`) + /// Storage: `Nfts::Collection` (r:1 w:1) + /// Proof: `Nfts::Collection` (`max_values`: None, `max_size`: Some(84), added: 2559, mode: `MaxEncodedLen`) + /// Storage: `Nfts::CollectionAccount` (r:0 w:2) + /// Proof: `Nfts::CollectionAccount` (`max_values`: None, `max_size`: Some(68), added: 2543, mode: `MaxEncodedLen`) + fn transfer_ownership() -> Weight { + // Proof Size summary in bytes: + // Measured: `354` + // Estimated: `3549` + // Minimum execution time: 22_528_000 picoseconds. + Weight::from_parts(23_047_000, 0) + .saturating_add(Weight::from_parts(0, 3549)) + .saturating_add(T::DbWeight::get().reads(2)) + .saturating_add(T::DbWeight::get().writes(4)) + } + /// Storage: `Nfts::Collection` (r:1 w:1) + /// Proof: `Nfts::Collection` (`max_values`: None, `max_size`: Some(84), added: 2559, mode: `MaxEncodedLen`) + /// Storage: `Nfts::CollectionRoleOf` (r:2 w:4) + /// Proof: `Nfts::CollectionRoleOf` (`max_values`: None, `max_size`: Some(69), added: 2544, mode: `MaxEncodedLen`) + fn set_team() -> Weight { + // Proof Size summary in bytes: + // Measured: `335` + // Estimated: `6078` + // Minimum execution time: 38_473_000 picoseconds. + Weight::from_parts(39_353_000, 0) + .saturating_add(Weight::from_parts(0, 6078)) + .saturating_add(T::DbWeight::get().reads(3)) + .saturating_add(T::DbWeight::get().writes(5)) + } + /// Storage: `Nfts::Collection` (r:1 w:1) + /// Proof: `Nfts::Collection` (`max_values`: None, `max_size`: Some(84), added: 2559, mode: `MaxEncodedLen`) + /// Storage: `Nfts::CollectionAccount` (r:0 w:2) + /// Proof: `Nfts::CollectionAccount` (`max_values`: None, `max_size`: Some(68), added: 2543, mode: `MaxEncodedLen`) + fn force_collection_owner() -> Weight { + // Proof Size summary in bytes: + // Measured: `277` + // Estimated: `3549` + // Minimum execution time: 17_708_000 picoseconds. + Weight::from_parts(18_022_000, 0) + .saturating_add(Weight::from_parts(0, 3549)) + .saturating_add(T::DbWeight::get().reads(1)) + .saturating_add(T::DbWeight::get().writes(3)) + } + /// Storage: `Nfts::Collection` (r:1 w:0) + /// Proof: `Nfts::Collection` (`max_values`: None, `max_size`: Some(84), added: 2559, mode: `MaxEncodedLen`) + /// Storage: `Nfts::CollectionConfigOf` (r:0 w:1) + /// Proof: `Nfts::CollectionConfigOf` (`max_values`: None, `max_size`: Some(73), added: 2548, mode: `MaxEncodedLen`) + fn force_collection_config() -> Weight { + // Proof Size summary in bytes: + // Measured: `242` + // Estimated: `3549` + // Minimum execution time: 14_606_000 picoseconds. + Weight::from_parts(14_891_000, 0) + .saturating_add(Weight::from_parts(0, 3549)) + .saturating_add(T::DbWeight::get().reads(1)) + .saturating_add(T::DbWeight::get().writes(1)) + } + /// Storage: `Nfts::CollectionRoleOf` (r:1 w:0) + /// Proof: `Nfts::CollectionRoleOf` (`max_values`: None, `max_size`: Some(69), added: 2544, mode: `MaxEncodedLen`) + /// Storage: `Nfts::ItemConfigOf` (r:1 w:1) + /// Proof: `Nfts::ItemConfigOf` (`max_values`: None, `max_size`: Some(48), added: 2523, mode: `MaxEncodedLen`) + fn lock_item_properties() -> Weight { + // Proof Size summary in bytes: + // Measured: `401` + // Estimated: `3534` + // Minimum execution time: 19_492_000 picoseconds. + Weight::from_parts(19_919_000, 0) + .saturating_add(Weight::from_parts(0, 3534)) + .saturating_add(T::DbWeight::get().reads(2)) + .saturating_add(T::DbWeight::get().writes(1)) + } + /// Storage: `Nfts::Collection` (r:1 w:1) + /// Proof: `Nfts::Collection` (`max_values`: None, `max_size`: Some(84), added: 2559, mode: `MaxEncodedLen`) + /// Storage: `Nfts::CollectionRoleOf` (r:1 w:0) + /// Proof: `Nfts::CollectionRoleOf` (`max_values`: None, `max_size`: Some(69), added: 2544, mode: `MaxEncodedLen`) + /// Storage: `Nfts::CollectionConfigOf` (r:1 w:0) + /// Proof: `Nfts::CollectionConfigOf` (`max_values`: None, `max_size`: Some(73), added: 2548, mode: `MaxEncodedLen`) + /// Storage: `Nfts::ItemConfigOf` (r:1 w:0) + /// Proof: `Nfts::ItemConfigOf` (`max_values`: None, `max_size`: Some(48), added: 2523, mode: `MaxEncodedLen`) + /// Storage: `Nfts::Attribute` (r:1 w:1) + /// Proof: `Nfts::Attribute` (`max_values`: None, `max_size`: Some(479), added: 2954, mode: `MaxEncodedLen`) + fn set_attribute() -> Weight { + // Proof Size summary in bytes: + // Measured: `505` + // Estimated: `3944` + // Minimum execution time: 50_583_000 picoseconds. + Weight::from_parts(53_846_000, 0) + .saturating_add(Weight::from_parts(0, 3944)) + .saturating_add(T::DbWeight::get().reads(5)) + .saturating_add(T::DbWeight::get().writes(2)) + } + /// Storage: `Nfts::Collection` (r:1 w:1) + /// Proof: `Nfts::Collection` (`max_values`: None, `max_size`: Some(84), added: 2559, mode: `MaxEncodedLen`) + /// Storage: `Nfts::Attribute` (r:1 w:1) + /// Proof: `Nfts::Attribute` (`max_values`: None, `max_size`: Some(479), added: 2954, mode: `MaxEncodedLen`) + fn force_set_attribute() -> Weight { + // Proof Size summary in bytes: + // Measured: `310` + // Estimated: `3944` + // Minimum execution time: 25_937_000 picoseconds. + Weight::from_parts(26_540_000, 0) + .saturating_add(Weight::from_parts(0, 3944)) + .saturating_add(T::DbWeight::get().reads(2)) + .saturating_add(T::DbWeight::get().writes(2)) + } + /// Storage: `Nfts::Attribute` (r:1 w:1) + /// Proof: `Nfts::Attribute` (`max_values`: None, `max_size`: Some(479), added: 2954, mode: `MaxEncodedLen`) + /// Storage: `Nfts::CollectionRoleOf` (r:1 w:0) + /// Proof: `Nfts::CollectionRoleOf` (`max_values`: None, `max_size`: Some(69), added: 2544, mode: `MaxEncodedLen`) + /// Storage: `Nfts::ItemConfigOf` (r:1 w:0) + /// Proof: `Nfts::ItemConfigOf` (`max_values`: None, `max_size`: Some(48), added: 2523, mode: `MaxEncodedLen`) + /// Storage: `Nfts::Collection` (r:1 w:1) + /// Proof: `Nfts::Collection` (`max_values`: None, `max_size`: Some(84), added: 2559, mode: `MaxEncodedLen`) + fn clear_attribute() -> Weight { + // Proof Size summary in bytes: + // Measured: `949` + // Estimated: `3944` + // Minimum execution time: 45_738_000 picoseconds. + Weight::from_parts(46_468_000, 0) + .saturating_add(Weight::from_parts(0, 3944)) + .saturating_add(T::DbWeight::get().reads(4)) + .saturating_add(T::DbWeight::get().writes(2)) + } + /// Storage: `Nfts::Item` (r:1 w:0) + /// Proof: `Nfts::Item` (`max_values`: None, `max_size`: Some(861), added: 3336, mode: `MaxEncodedLen`) + /// Storage: `Nfts::ItemAttributesApprovalsOf` (r:1 w:1) + /// Proof: `Nfts::ItemAttributesApprovalsOf` (`max_values`: None, `max_size`: Some(1001), added: 3476, mode: `MaxEncodedLen`) + fn approve_item_attributes() -> Weight { + // Proof Size summary in bytes: + // Measured: `347` + // Estimated: `4466` + // Minimum execution time: 17_361_000 picoseconds. + Weight::from_parts(18_191_000, 0) + .saturating_add(Weight::from_parts(0, 4466)) + .saturating_add(T::DbWeight::get().reads(2)) + .saturating_add(T::DbWeight::get().writes(1)) + } + /// Storage: `Nfts::Item` (r:1 w:0) + /// Proof: `Nfts::Item` (`max_values`: None, `max_size`: Some(861), added: 3336, mode: `MaxEncodedLen`) + /// Storage: `Nfts::ItemAttributesApprovalsOf` (r:1 w:1) + /// Proof: `Nfts::ItemAttributesApprovalsOf` (`max_values`: None, `max_size`: Some(1001), added: 3476, mode: `MaxEncodedLen`) + /// Storage: `Nfts::Attribute` (r:1001 w:1000) + /// Proof: `Nfts::Attribute` (`max_values`: None, `max_size`: Some(479), added: 2954, 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 `[0, 1000]`. + fn cancel_item_attributes_approval(n: u32, ) -> Weight { + // Proof Size summary in bytes: + // Measured: `726 + n * (398 ±0)` + // Estimated: `4466 + n * (2954 ±0)` + // Minimum execution time: 25_884_000 picoseconds. + Weight::from_parts(26_265_000, 0) + .saturating_add(Weight::from_parts(0, 4466)) + // Standard Error: 6_423 + .saturating_add(Weight::from_parts(6_507_369, 0).saturating_mul(n.into())) + .saturating_add(T::DbWeight::get().reads(4)) + .saturating_add(T::DbWeight::get().reads((1_u64).saturating_mul(n.into()))) + .saturating_add(T::DbWeight::get().writes(2)) + .saturating_add(T::DbWeight::get().writes((1_u64).saturating_mul(n.into()))) + .saturating_add(Weight::from_parts(0, 2954).saturating_mul(n.into())) + } + /// Storage: `Nfts::CollectionRoleOf` (r:1 w:0) + /// Proof: `Nfts::CollectionRoleOf` (`max_values`: None, `max_size`: Some(69), added: 2544, mode: `MaxEncodedLen`) + /// Storage: `Nfts::Collection` (r:1 w:1) + /// Proof: `Nfts::Collection` (`max_values`: None, `max_size`: Some(84), added: 2559, mode: `MaxEncodedLen`) + /// Storage: `Nfts::ItemConfigOf` (r:1 w:0) + /// Proof: `Nfts::ItemConfigOf` (`max_values`: None, `max_size`: Some(48), added: 2523, mode: `MaxEncodedLen`) + /// Storage: `Nfts::CollectionConfigOf` (r:1 w:0) + /// Proof: `Nfts::CollectionConfigOf` (`max_values`: None, `max_size`: Some(73), added: 2548, mode: `MaxEncodedLen`) + /// Storage: `Nfts::ItemMetadataOf` (r:1 w:1) + /// Proof: `Nfts::ItemMetadataOf` (`max_values`: None, `max_size`: Some(347), added: 2822, mode: `MaxEncodedLen`) + fn set_metadata() -> Weight { + // Proof Size summary in bytes: + // Measured: `505` + // Estimated: `3812` + // Minimum execution time: 40_802_000 picoseconds. + Weight::from_parts(41_742_000, 0) + .saturating_add(Weight::from_parts(0, 3812)) + .saturating_add(T::DbWeight::get().reads(5)) + .saturating_add(T::DbWeight::get().writes(2)) + } + /// Storage: `Nfts::CollectionRoleOf` (r:1 w:0) + /// Proof: `Nfts::CollectionRoleOf` (`max_values`: None, `max_size`: Some(69), added: 2544, mode: `MaxEncodedLen`) + /// Storage: `Nfts::ItemMetadataOf` (r:1 w:1) + /// Proof: `Nfts::ItemMetadataOf` (`max_values`: None, `max_size`: Some(347), added: 2822, mode: `MaxEncodedLen`) + /// Storage: `Nfts::Collection` (r:1 w:1) + /// Proof: `Nfts::Collection` (`max_values`: None, `max_size`: Some(84), added: 2559, mode: `MaxEncodedLen`) + /// Storage: `Nfts::ItemConfigOf` (r:1 w:0) + /// Proof: `Nfts::ItemConfigOf` (`max_values`: None, `max_size`: Some(48), added: 2523, mode: `MaxEncodedLen`) + fn clear_metadata() -> Weight { + // Proof Size summary in bytes: + // Measured: `815` + // Estimated: `3812` + // Minimum execution time: 38_904_000 picoseconds. + Weight::from_parts(39_919_000, 0) + .saturating_add(Weight::from_parts(0, 3812)) + .saturating_add(T::DbWeight::get().reads(4)) + .saturating_add(T::DbWeight::get().writes(2)) + } + /// Storage: `Nfts::CollectionRoleOf` (r:1 w:0) + /// Proof: `Nfts::CollectionRoleOf` (`max_values`: None, `max_size`: Some(69), added: 2544, mode: `MaxEncodedLen`) + /// Storage: `Nfts::CollectionConfigOf` (r:1 w:0) + /// Proof: `Nfts::CollectionConfigOf` (`max_values`: None, `max_size`: Some(73), added: 2548, mode: `MaxEncodedLen`) + /// Storage: `Nfts::Collection` (r:1 w:1) + /// Proof: `Nfts::Collection` (`max_values`: None, `max_size`: Some(84), added: 2559, mode: `MaxEncodedLen`) + /// Storage: `Nfts::CollectionMetadataOf` (r:1 w:1) + /// Proof: `Nfts::CollectionMetadataOf` (`max_values`: None, `max_size`: Some(294), added: 2769, mode: `MaxEncodedLen`) + fn set_collection_metadata() -> Weight { + // Proof Size summary in bytes: + // Measured: `364` + // Estimated: `3759` + // Minimum execution time: 37_012_000 picoseconds. + Weight::from_parts(37_632_000, 0) + .saturating_add(Weight::from_parts(0, 3759)) + .saturating_add(T::DbWeight::get().reads(4)) + .saturating_add(T::DbWeight::get().writes(2)) + } + /// Storage: `Nfts::CollectionRoleOf` (r:1 w:0) + /// Proof: `Nfts::CollectionRoleOf` (`max_values`: None, `max_size`: Some(69), added: 2544, mode: `MaxEncodedLen`) + /// Storage: `Nfts::Collection` (r:1 w:0) + /// Proof: `Nfts::Collection` (`max_values`: None, `max_size`: Some(84), added: 2559, mode: `MaxEncodedLen`) + /// Storage: `Nfts::CollectionConfigOf` (r:1 w:0) + /// Proof: `Nfts::CollectionConfigOf` (`max_values`: None, `max_size`: Some(73), added: 2548, mode: `MaxEncodedLen`) + /// Storage: `Nfts::CollectionMetadataOf` (r:1 w:1) + /// Proof: `Nfts::CollectionMetadataOf` (`max_values`: None, `max_size`: Some(294), added: 2769, mode: `MaxEncodedLen`) + fn clear_collection_metadata() -> Weight { + // Proof Size summary in bytes: + // Measured: `682` + // Estimated: `3759` + // Minimum execution time: 36_243_000 picoseconds. + Weight::from_parts(37_313_000, 0) + .saturating_add(Weight::from_parts(0, 3759)) + .saturating_add(T::DbWeight::get().reads(4)) + .saturating_add(T::DbWeight::get().writes(1)) + } + /// Storage: `Nfts::Item` (r:1 w:1) + /// Proof: `Nfts::Item` (`max_values`: None, `max_size`: Some(861), added: 3336, mode: `MaxEncodedLen`) + /// Storage: `Nfts::CollectionConfigOf` (r:1 w:0) + /// Proof: `Nfts::CollectionConfigOf` (`max_values`: None, `max_size`: Some(73), added: 2548, mode: `MaxEncodedLen`) + fn approve_transfer() -> Weight { + // Proof Size summary in bytes: + // Measured: `376` + // Estimated: `4326` + // Minimum execution time: 20_919_000 picoseconds. + Weight::from_parts(21_505_000, 0) + .saturating_add(Weight::from_parts(0, 4326)) + .saturating_add(T::DbWeight::get().reads(2)) + .saturating_add(T::DbWeight::get().writes(1)) + } + /// Storage: `Nfts::Item` (r:1 w:1) + /// Proof: `Nfts::Item` (`max_values`: None, `max_size`: Some(861), added: 3336, mode: `MaxEncodedLen`) + fn cancel_approval() -> Weight { + // Proof Size summary in bytes: + // Measured: `384` + // Estimated: `4326` + // Minimum execution time: 18_943_000 picoseconds. + Weight::from_parts(19_969_000, 0) + .saturating_add(Weight::from_parts(0, 4326)) + .saturating_add(T::DbWeight::get().reads(1)) + .saturating_add(T::DbWeight::get().writes(1)) + } + /// Storage: `Nfts::Item` (r:1 w:1) + /// Proof: `Nfts::Item` (`max_values`: None, `max_size`: Some(861), added: 3336, mode: `MaxEncodedLen`) + fn clear_all_transfer_approvals() -> Weight { + // Proof Size summary in bytes: + // Measured: `384` + // Estimated: `4326` + // Minimum execution time: 17_320_000 picoseconds. + Weight::from_parts(18_071_000, 0) + .saturating_add(Weight::from_parts(0, 4326)) + .saturating_add(T::DbWeight::get().reads(1)) + .saturating_add(T::DbWeight::get().writes(1)) + } + /// Storage: `Nfts::OwnershipAcceptance` (r:1 w:1) + /// Proof: `Nfts::OwnershipAcceptance` (`max_values`: None, `max_size`: Some(52), added: 2527, mode: `MaxEncodedLen`) + fn set_accept_ownership() -> Weight { + // Proof Size summary in bytes: + // Measured: `42` + // Estimated: `3517` + // Minimum execution time: 14_934_000 picoseconds. + Weight::from_parts(15_422_000, 0) + .saturating_add(Weight::from_parts(0, 3517)) + .saturating_add(T::DbWeight::get().reads(1)) + .saturating_add(T::DbWeight::get().writes(1)) + } + /// Storage: `Nfts::CollectionConfigOf` (r:1 w:1) + /// Proof: `Nfts::CollectionConfigOf` (`max_values`: None, `max_size`: Some(73), added: 2548, mode: `MaxEncodedLen`) + /// Storage: `Nfts::Collection` (r:1 w:0) + /// Proof: `Nfts::Collection` (`max_values`: None, `max_size`: Some(84), added: 2559, mode: `MaxEncodedLen`) + fn set_collection_max_supply() -> Weight { + // Proof Size summary in bytes: + // Measured: `306` + // Estimated: `3549` + // Minimum execution time: 18_715_000 picoseconds. + Weight::from_parts(19_025_000, 0) + .saturating_add(Weight::from_parts(0, 3549)) + .saturating_add(T::DbWeight::get().reads(2)) + .saturating_add(T::DbWeight::get().writes(1)) + } + /// Storage: `Nfts::CollectionRoleOf` (r:1 w:0) + /// Proof: `Nfts::CollectionRoleOf` (`max_values`: None, `max_size`: Some(69), added: 2544, mode: `MaxEncodedLen`) + /// Storage: `Nfts::CollectionConfigOf` (r:1 w:1) + /// Proof: `Nfts::CollectionConfigOf` (`max_values`: None, `max_size`: Some(73), added: 2548, mode: `MaxEncodedLen`) + fn update_mint_settings() -> Weight { + // Proof Size summary in bytes: + // Measured: `289` + // Estimated: `3538` + // Minimum execution time: 18_249_000 picoseconds. + Weight::from_parts(18_826_000, 0) + .saturating_add(Weight::from_parts(0, 3538)) + .saturating_add(T::DbWeight::get().reads(2)) + .saturating_add(T::DbWeight::get().writes(1)) + } + /// Storage: `Nfts::Item` (r:1 w:0) + /// Proof: `Nfts::Item` (`max_values`: None, `max_size`: Some(861), added: 3336, mode: `MaxEncodedLen`) + /// Storage: `Nfts::CollectionConfigOf` (r:1 w:0) + /// Proof: `Nfts::CollectionConfigOf` (`max_values`: None, `max_size`: Some(73), added: 2548, mode: `MaxEncodedLen`) + /// Storage: `Nfts::ItemConfigOf` (r:1 w:0) + /// Proof: `Nfts::ItemConfigOf` (`max_values`: None, `max_size`: Some(48), added: 2523, mode: `MaxEncodedLen`) + /// Storage: `Nfts::ItemPriceOf` (r:0 w:1) + /// Proof: `Nfts::ItemPriceOf` (`max_values`: None, `max_size`: Some(89), added: 2564, mode: `MaxEncodedLen`) + fn set_price() -> Weight { + // Proof Size summary in bytes: + // Measured: `484` + // Estimated: `4326` + // Minimum execution time: 23_529_000 picoseconds. + Weight::from_parts(23_958_000, 0) + .saturating_add(Weight::from_parts(0, 4326)) + .saturating_add(T::DbWeight::get().reads(3)) + .saturating_add(T::DbWeight::get().writes(1)) + } + /// Storage: `Nfts::Item` (r:1 w:1) + /// Proof: `Nfts::Item` (`max_values`: None, `max_size`: Some(861), added: 3336, mode: `MaxEncodedLen`) + /// Storage: `Nfts::ItemPriceOf` (r:1 w:1) + /// Proof: `Nfts::ItemPriceOf` (`max_values`: None, `max_size`: Some(89), added: 2564, mode: `MaxEncodedLen`) + /// Storage: `Nfts::Collection` (r:1 w:0) + /// Proof: `Nfts::Collection` (`max_values`: None, `max_size`: Some(84), added: 2559, mode: `MaxEncodedLen`) + /// Storage: `Nfts::Attribute` (r:1 w:0) + /// Proof: `Nfts::Attribute` (`max_values`: None, `max_size`: Some(479), added: 2954, mode: `MaxEncodedLen`) + /// Storage: `Nfts::CollectionConfigOf` (r:1 w:0) + /// Proof: `Nfts::CollectionConfigOf` (`max_values`: None, `max_size`: Some(73), added: 2548, mode: `MaxEncodedLen`) + /// Storage: `Nfts::ItemConfigOf` (r:1 w:0) + /// Proof: `Nfts::ItemConfigOf` (`max_values`: None, `max_size`: Some(48), added: 2523, mode: `MaxEncodedLen`) + /// Storage: `Nfts::Account` (r:0 w:2) + /// Proof: `Nfts::Account` (`max_values`: None, `max_size`: Some(88), added: 2563, mode: `MaxEncodedLen`) + /// Storage: `Nfts::PendingSwapOf` (r:0 w:1) + /// Proof: `Nfts::PendingSwapOf` (`max_values`: None, `max_size`: Some(71), added: 2546, mode: `MaxEncodedLen`) + fn buy_item() -> Weight { + // Proof Size summary in bytes: + // Measured: `671` + // Estimated: `4326` + // Minimum execution time: 50_885_000 picoseconds. + Weight::from_parts(52_157_000, 0) + .saturating_add(Weight::from_parts(0, 4326)) + .saturating_add(T::DbWeight::get().reads(6)) + .saturating_add(T::DbWeight::get().writes(5)) + } + /// The range of component `n` is `[0, 10]`. + fn pay_tips(n: u32, ) -> Weight { + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 2_258_000 picoseconds. + Weight::from_parts(3_342_691, 0) + .saturating_add(Weight::from_parts(0, 0)) + // Standard Error: 6_268 + .saturating_add(Weight::from_parts(3_761_373, 0).saturating_mul(n.into())) + } + /// Storage: `Nfts::Item` (r:2 w:0) + /// Proof: `Nfts::Item` (`max_values`: None, `max_size`: Some(861), added: 3336, mode: `MaxEncodedLen`) + /// Storage: `Nfts::PendingSwapOf` (r:0 w:1) + /// Proof: `Nfts::PendingSwapOf` (`max_values`: None, `max_size`: Some(71), added: 2546, mode: `MaxEncodedLen`) + fn create_swap() -> Weight { + // Proof Size summary in bytes: + // Measured: `460` + // Estimated: `7662` + // Minimum execution time: 21_220_000 picoseconds. + Weight::from_parts(21_654_000, 0) + .saturating_add(Weight::from_parts(0, 7662)) + .saturating_add(T::DbWeight::get().reads(2)) + .saturating_add(T::DbWeight::get().writes(1)) + } + /// Storage: `Nfts::PendingSwapOf` (r:1 w:1) + /// Proof: `Nfts::PendingSwapOf` (`max_values`: None, `max_size`: Some(71), added: 2546, mode: `MaxEncodedLen`) + /// Storage: `Nfts::Item` (r:1 w:0) + /// Proof: `Nfts::Item` (`max_values`: None, `max_size`: Some(861), added: 3336, mode: `MaxEncodedLen`) + fn cancel_swap() -> Weight { + // Proof Size summary in bytes: + // Measured: `479` + // Estimated: `4326` + // Minimum execution time: 20_430_000 picoseconds. + Weight::from_parts(21_038_000, 0) + .saturating_add(Weight::from_parts(0, 4326)) + .saturating_add(T::DbWeight::get().reads(2)) + .saturating_add(T::DbWeight::get().writes(1)) + } + /// Storage: `Nfts::Item` (r:2 w:2) + /// Proof: `Nfts::Item` (`max_values`: None, `max_size`: Some(861), added: 3336, mode: `MaxEncodedLen`) + /// Storage: `Nfts::PendingSwapOf` (r:1 w:2) + /// Proof: `Nfts::PendingSwapOf` (`max_values`: None, `max_size`: Some(71), added: 2546, mode: `MaxEncodedLen`) + /// Storage: `Nfts::Collection` (r:1 w:0) + /// Proof: `Nfts::Collection` (`max_values`: None, `max_size`: Some(84), added: 2559, mode: `MaxEncodedLen`) + /// Storage: `Nfts::Attribute` (r:2 w:0) + /// Proof: `Nfts::Attribute` (`max_values`: None, `max_size`: Some(479), added: 2954, mode: `MaxEncodedLen`) + /// Storage: `Nfts::CollectionConfigOf` (r:1 w:0) + /// Proof: `Nfts::CollectionConfigOf` (`max_values`: None, `max_size`: Some(73), added: 2548, mode: `MaxEncodedLen`) + /// Storage: `Nfts::ItemConfigOf` (r:2 w:0) + /// Proof: `Nfts::ItemConfigOf` (`max_values`: None, `max_size`: Some(48), added: 2523, mode: `MaxEncodedLen`) + /// Storage: `Nfts::Account` (r:0 w:4) + /// Proof: `Nfts::Account` (`max_values`: None, `max_size`: Some(88), added: 2563, mode: `MaxEncodedLen`) + /// Storage: `Nfts::ItemPriceOf` (r:0 w:2) + /// Proof: `Nfts::ItemPriceOf` (`max_values`: None, `max_size`: Some(89), added: 2564, mode: `MaxEncodedLen`) + fn claim_swap() -> Weight { + // Proof Size summary in bytes: + // Measured: `800` + // Estimated: `7662` + // Minimum execution time: 83_344_000 picoseconds. + Weight::from_parts(84_898_000, 0) + .saturating_add(Weight::from_parts(0, 7662)) + .saturating_add(T::DbWeight::get().reads(9)) + .saturating_add(T::DbWeight::get().writes(10)) + } + /// Storage: `Nfts::CollectionRoleOf` (r:2 w:0) + /// Proof: `Nfts::CollectionRoleOf` (`max_values`: None, `max_size`: Some(69), added: 2544, mode: `MaxEncodedLen`) + /// Storage: `Nfts::CollectionConfigOf` (r:1 w:0) + /// Proof: `Nfts::CollectionConfigOf` (`max_values`: None, `max_size`: Some(73), added: 2548, mode: `MaxEncodedLen`) + /// Storage: `Nfts::Item` (r:1 w:1) + /// Proof: `Nfts::Item` (`max_values`: None, `max_size`: Some(861), added: 3336, mode: `MaxEncodedLen`) + /// Storage: `Nfts::Collection` (r:1 w:1) + /// Proof: `Nfts::Collection` (`max_values`: None, `max_size`: Some(84), added: 2559, mode: `MaxEncodedLen`) + /// Storage: `Nfts::ItemConfigOf` (r:1 w:1) + /// Proof: `Nfts::ItemConfigOf` (`max_values`: None, `max_size`: Some(48), added: 2523, mode: `MaxEncodedLen`) + /// Storage: `System::Account` (r:1 w:1) + /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`) + /// Storage: `Nfts::Attribute` (r:10 w:10) + /// Proof: `Nfts::Attribute` (`max_values`: None, `max_size`: Some(479), added: 2954, mode: `MaxEncodedLen`) + /// Storage: `Nfts::ItemMetadataOf` (r:1 w:1) + /// Proof: `Nfts::ItemMetadataOf` (`max_values`: None, `max_size`: Some(347), added: 2822, mode: `MaxEncodedLen`) + /// Storage: `Nfts::Account` (r:0 w:1) + /// Proof: `Nfts::Account` (`max_values`: None, `max_size`: Some(88), added: 2563, mode: `MaxEncodedLen`) + /// The range of component `n` is `[0, 10]`. + fn mint_pre_signed(n: u32, ) -> Weight { + // Proof Size summary in bytes: + // Measured: `524` + // Estimated: `6078 + n * (2954 ±0)` + // Minimum execution time: 143_435_000 picoseconds. + Weight::from_parts(151_744_537, 0) + .saturating_add(Weight::from_parts(0, 6078)) + // Standard Error: 44_459 + .saturating_add(Weight::from_parts(31_293_503, 0).saturating_mul(n.into())) + .saturating_add(T::DbWeight::get().reads(8)) + .saturating_add(T::DbWeight::get().reads((1_u64).saturating_mul(n.into()))) + .saturating_add(T::DbWeight::get().writes(6)) + .saturating_add(T::DbWeight::get().writes((1_u64).saturating_mul(n.into()))) + .saturating_add(Weight::from_parts(0, 2954).saturating_mul(n.into())) + } + /// Storage: `Nfts::Item` (r:1 w:0) + /// Proof: `Nfts::Item` (`max_values`: None, `max_size`: Some(861), added: 3336, mode: `MaxEncodedLen`) + /// Storage: `Nfts::ItemAttributesApprovalsOf` (r:1 w:1) + /// Proof: `Nfts::ItemAttributesApprovalsOf` (`max_values`: None, `max_size`: Some(1001), added: 3476, mode: `MaxEncodedLen`) + /// Storage: `Nfts::CollectionConfigOf` (r:1 w:0) + /// Proof: `Nfts::CollectionConfigOf` (`max_values`: None, `max_size`: Some(73), added: 2548, mode: `MaxEncodedLen`) + /// Storage: `Nfts::Collection` (r:1 w:1) + /// Proof: `Nfts::Collection` (`max_values`: None, `max_size`: Some(84), added: 2559, mode: `MaxEncodedLen`) + /// Storage: `Nfts::Attribute` (r:10 w:10) + /// Proof: `Nfts::Attribute` (`max_values`: None, `max_size`: Some(479), added: 2954, 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 `[0, 10]`. + fn set_attributes_pre_signed(n: u32, ) -> Weight { + // Proof Size summary in bytes: + // Measured: `554` + // Estimated: `4466 + n * (2954 ±0)` + // Minimum execution time: 84_627_000 picoseconds. + Weight::from_parts(96_076_065, 0) + .saturating_add(Weight::from_parts(0, 4466)) + // Standard Error: 62_058 + .saturating_add(Weight::from_parts(30_461_383, 0).saturating_mul(n.into())) + .saturating_add(T::DbWeight::get().reads(4)) + .saturating_add(T::DbWeight::get().reads((1_u64).saturating_mul(n.into()))) + .saturating_add(T::DbWeight::get().writes(2)) + .saturating_add(T::DbWeight::get().writes((1_u64).saturating_mul(n.into()))) + .saturating_add(Weight::from_parts(0, 2954).saturating_mul(n.into())) + } +} diff --git a/cumulus/parachains/runtimes/assets/asset-hub-polkadot/src/weights/pallet_proxy.rs b/cumulus/parachains/runtimes/assets/asset-hub-polkadot/src/weights/pallet_proxy.rs new file mode 100644 index 000000000000..99db2865692f --- /dev/null +++ b/cumulus/parachains/runtimes/assets/asset-hub-polkadot/src/weights/pallet_proxy.rs @@ -0,0 +1,226 @@ +// Copyright (C) Parity Technologies (UK) Ltd. +// This file is part of Cumulus. + +// Cumulus 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. + +// Cumulus 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 Cumulus. If not, see . + +//! Autogenerated weights for `pallet_proxy` +//! +//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev +//! DATE: 2023-07-31, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! WORST CASE MAP SIZE: `1000000` +//! HOSTNAME: `runner-ynta1nyy-project-238-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz` +//! EXECUTION: ``, WASM-EXECUTION: `Compiled`, CHAIN: `Some("asset-hub-polkadot-dev")`, DB CACHE: 1024 + +// Executed Command: +// ./target/production/polkadot-parachain +// benchmark +// pallet +// --chain=asset-hub-polkadot-dev +// --wasm-execution=compiled +// --pallet=pallet_proxy +// --no-storage-info +// --no-median-slopes +// --no-min-squares +// --extrinsic=* +// --steps=50 +// --repeat=20 +// --json +// --header=./file_header.txt +// --output=./parachains/runtimes/assets/asset-hub-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_proxy`. +pub struct WeightInfo(PhantomData); +impl pallet_proxy::WeightInfo for WeightInfo { + /// Storage: `Proxy::Proxies` (r:1 w:0) + /// Proof: `Proxy::Proxies` (`max_values`: None, `max_size`: Some(1241), added: 3716, mode: `MaxEncodedLen`) + /// The range of component `p` is `[1, 31]`. + fn proxy(p: u32, ) -> Weight { + // Proof Size summary in bytes: + // Measured: `127 + p * (37 ±0)` + // Estimated: `4706` + // Minimum execution time: 16_130_000 picoseconds. + Weight::from_parts(16_649_312, 0) + .saturating_add(Weight::from_parts(0, 4706)) + // Standard Error: 761 + .saturating_add(Weight::from_parts(42_507, 0).saturating_mul(p.into())) + .saturating_add(T::DbWeight::get().reads(1)) + } + /// Storage: `Proxy::Proxies` (r:1 w:0) + /// Proof: `Proxy::Proxies` (`max_values`: None, `max_size`: Some(1241), added: 3716, mode: `MaxEncodedLen`) + /// Storage: `Proxy::Announcements` (r:1 w:1) + /// Proof: `Proxy::Announcements` (`max_values`: None, `max_size`: Some(2233), added: 4708, 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 `a` is `[0, 31]`. + /// The range of component `p` is `[1, 31]`. + fn proxy_announced(a: u32, p: u32, ) -> Weight { + // Proof Size summary in bytes: + // Measured: `454 + a * (68 ±0) + p * (37 ±0)` + // Estimated: `5698` + // Minimum execution time: 37_732_000 picoseconds. + Weight::from_parts(36_993_926, 0) + .saturating_add(Weight::from_parts(0, 5698)) + // Standard Error: 3_278 + .saturating_add(Weight::from_parts(144_955, 0).saturating_mul(a.into())) + // Standard Error: 3_387 + .saturating_add(Weight::from_parts(64_624, 0).saturating_mul(p.into())) + .saturating_add(T::DbWeight::get().reads(3)) + .saturating_add(T::DbWeight::get().writes(2)) + } + /// Storage: `Proxy::Announcements` (r:1 w:1) + /// Proof: `Proxy::Announcements` (`max_values`: None, `max_size`: Some(2233), added: 4708, 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 `a` is `[0, 31]`. + /// The range of component `p` is `[1, 31]`. + fn remove_announcement(a: u32, p: u32, ) -> Weight { + // Proof Size summary in bytes: + // Measured: `369 + a * (68 ±0)` + // Estimated: `5698` + // Minimum execution time: 24_229_000 picoseconds. + Weight::from_parts(24_199_507, 0) + .saturating_add(Weight::from_parts(0, 5698)) + // Standard Error: 1_672 + .saturating_add(Weight::from_parts(124_324, 0).saturating_mul(a.into())) + // Standard Error: 1_727 + .saturating_add(Weight::from_parts(28_481, 0).saturating_mul(p.into())) + .saturating_add(T::DbWeight::get().reads(2)) + .saturating_add(T::DbWeight::get().writes(2)) + } + /// Storage: `Proxy::Announcements` (r:1 w:1) + /// Proof: `Proxy::Announcements` (`max_values`: None, `max_size`: Some(2233), added: 4708, 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 `a` is `[0, 31]`. + /// The range of component `p` is `[1, 31]`. + fn reject_announcement(a: u32, p: u32, ) -> Weight { + // Proof Size summary in bytes: + // Measured: `369 + a * (68 ±0)` + // Estimated: `5698` + // Minimum execution time: 23_868_000 picoseconds. + Weight::from_parts(25_293_069, 0) + .saturating_add(Weight::from_parts(0, 5698)) + // Standard Error: 1_728 + .saturating_add(Weight::from_parts(114_080, 0).saturating_mul(a.into())) + // Standard Error: 1_786 + .saturating_add(Weight::from_parts(3_690, 0).saturating_mul(p.into())) + .saturating_add(T::DbWeight::get().reads(2)) + .saturating_add(T::DbWeight::get().writes(2)) + } + /// Storage: `Proxy::Proxies` (r:1 w:0) + /// Proof: `Proxy::Proxies` (`max_values`: None, `max_size`: Some(1241), added: 3716, mode: `MaxEncodedLen`) + /// Storage: `Proxy::Announcements` (r:1 w:1) + /// Proof: `Proxy::Announcements` (`max_values`: None, `max_size`: Some(2233), added: 4708, 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 `a` is `[0, 31]`. + /// The range of component `p` is `[1, 31]`. + fn announce(a: u32, p: u32, ) -> Weight { + // Proof Size summary in bytes: + // Measured: `386 + a * (68 ±0) + p * (37 ±0)` + // Estimated: `5698` + // Minimum execution time: 34_343_000 picoseconds. + Weight::from_parts(34_539_112, 0) + .saturating_add(Weight::from_parts(0, 5698)) + // Standard Error: 1_917 + .saturating_add(Weight::from_parts(117_360, 0).saturating_mul(a.into())) + // Standard Error: 1_981 + .saturating_add(Weight::from_parts(40_908, 0).saturating_mul(p.into())) + .saturating_add(T::DbWeight::get().reads(3)) + .saturating_add(T::DbWeight::get().writes(2)) + } + /// Storage: `Proxy::Proxies` (r:1 w:1) + /// Proof: `Proxy::Proxies` (`max_values`: None, `max_size`: Some(1241), added: 3716, mode: `MaxEncodedLen`) + /// The range of component `p` is `[1, 31]`. + fn add_proxy(p: u32, ) -> Weight { + // Proof Size summary in bytes: + // Measured: `127 + p * (37 ±0)` + // Estimated: `4706` + // Minimum execution time: 25_506_000 picoseconds. + Weight::from_parts(26_350_920, 0) + .saturating_add(Weight::from_parts(0, 4706)) + // Standard Error: 2_950 + .saturating_add(Weight::from_parts(48_972, 0).saturating_mul(p.into())) + .saturating_add(T::DbWeight::get().reads(1)) + .saturating_add(T::DbWeight::get().writes(1)) + } + /// Storage: `Proxy::Proxies` (r:1 w:1) + /// Proof: `Proxy::Proxies` (`max_values`: None, `max_size`: Some(1241), added: 3716, mode: `MaxEncodedLen`) + /// The range of component `p` is `[1, 31]`. + fn remove_proxy(p: u32, ) -> Weight { + // Proof Size summary in bytes: + // Measured: `127 + p * (37 ±0)` + // Estimated: `4706` + // Minimum execution time: 25_234_000 picoseconds. + Weight::from_parts(26_232_489, 0) + .saturating_add(Weight::from_parts(0, 4706)) + // Standard Error: 2_468 + .saturating_add(Weight::from_parts(48_955, 0).saturating_mul(p.into())) + .saturating_add(T::DbWeight::get().reads(1)) + .saturating_add(T::DbWeight::get().writes(1)) + } + /// Storage: `Proxy::Proxies` (r:1 w:1) + /// Proof: `Proxy::Proxies` (`max_values`: None, `max_size`: Some(1241), added: 3716, mode: `MaxEncodedLen`) + /// The range of component `p` is `[1, 31]`. + fn remove_proxies(p: u32, ) -> Weight { + // Proof Size summary in bytes: + // Measured: `127 + p * (37 ±0)` + // Estimated: `4706` + // Minimum execution time: 22_184_000 picoseconds. + Weight::from_parts(22_974_929, 0) + .saturating_add(Weight::from_parts(0, 4706)) + // Standard Error: 2_200 + .saturating_add(Weight::from_parts(45_741, 0).saturating_mul(p.into())) + .saturating_add(T::DbWeight::get().reads(1)) + .saturating_add(T::DbWeight::get().writes(1)) + } + /// Storage: `Proxy::Proxies` (r:1 w:1) + /// Proof: `Proxy::Proxies` (`max_values`: None, `max_size`: Some(1241), added: 3716, mode: `MaxEncodedLen`) + /// The range of component `p` is `[1, 31]`. + fn create_pure(p: u32, ) -> Weight { + // Proof Size summary in bytes: + // Measured: `139` + // Estimated: `4706` + // Minimum execution time: 27_044_000 picoseconds. + Weight::from_parts(27_978_605, 0) + .saturating_add(Weight::from_parts(0, 4706)) + // Standard Error: 2_206 + .saturating_add(Weight::from_parts(13_736, 0).saturating_mul(p.into())) + .saturating_add(T::DbWeight::get().reads(1)) + .saturating_add(T::DbWeight::get().writes(1)) + } + /// Storage: `Proxy::Proxies` (r:1 w:1) + /// Proof: `Proxy::Proxies` (`max_values`: None, `max_size`: Some(1241), added: 3716, mode: `MaxEncodedLen`) + /// The range of component `p` is `[0, 30]`. + fn kill_pure(p: u32, ) -> Weight { + // Proof Size summary in bytes: + // Measured: `164 + p * (37 ±0)` + // Estimated: `4706` + // Minimum execution time: 22_770_000 picoseconds. + Weight::from_parts(23_441_470, 0) + .saturating_add(Weight::from_parts(0, 4706)) + // Standard Error: 1_959 + .saturating_add(Weight::from_parts(47_317, 0).saturating_mul(p.into())) + .saturating_add(T::DbWeight::get().reads(1)) + .saturating_add(T::DbWeight::get().writes(1)) + } +} diff --git a/cumulus/parachains/runtimes/assets/asset-hub-polkadot/src/weights/pallet_session.rs b/cumulus/parachains/runtimes/assets/asset-hub-polkadot/src/weights/pallet_session.rs new file mode 100644 index 000000000000..8a6943d53048 --- /dev/null +++ b/cumulus/parachains/runtimes/assets/asset-hub-polkadot/src/weights/pallet_session.rs @@ -0,0 +1,81 @@ +// Copyright (C) Parity Technologies (UK) Ltd. +// This file is part of Cumulus. + +// Cumulus 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. + +// Cumulus 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 Cumulus. If not, see . + +//! Autogenerated weights for `pallet_session` +//! +//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev +//! DATE: 2023-07-31, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! WORST CASE MAP SIZE: `1000000` +//! HOSTNAME: `runner-ynta1nyy-project-238-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz` +//! EXECUTION: ``, WASM-EXECUTION: `Compiled`, CHAIN: `Some("asset-hub-polkadot-dev")`, DB CACHE: 1024 + +// Executed Command: +// ./target/production/polkadot-parachain +// benchmark +// pallet +// --chain=asset-hub-polkadot-dev +// --wasm-execution=compiled +// --pallet=pallet_session +// --no-storage-info +// --no-median-slopes +// --no-min-squares +// --extrinsic=* +// --steps=50 +// --repeat=20 +// --json +// --header=./file_header.txt +// --output=./parachains/runtimes/assets/asset-hub-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_session`. +pub struct WeightInfo(PhantomData); +impl pallet_session::WeightInfo for WeightInfo { + /// Storage: `Session::NextKeys` (r:1 w:1) + /// Proof: `Session::NextKeys` (`max_values`: None, `max_size`: None, mode: `Measured`) + /// Storage: `Session::KeyOwner` (r:1 w:1) + /// Proof: `Session::KeyOwner` (`max_values`: None, `max_size`: None, mode: `Measured`) + fn set_keys() -> Weight { + // Proof Size summary in bytes: + // Measured: `270` + // Estimated: `3735` + // Minimum execution time: 16_684_000 picoseconds. + Weight::from_parts(17_167_000, 0) + .saturating_add(Weight::from_parts(0, 3735)) + .saturating_add(T::DbWeight::get().reads(2)) + .saturating_add(T::DbWeight::get().writes(2)) + } + /// Storage: `Session::NextKeys` (r:1 w:1) + /// Proof: `Session::NextKeys` (`max_values`: None, `max_size`: None, mode: `Measured`) + /// Storage: `Session::KeyOwner` (r:0 w:1) + /// Proof: `Session::KeyOwner` (`max_values`: None, `max_size`: None, mode: `Measured`) + fn purge_keys() -> Weight { + // Proof Size summary in bytes: + // Measured: `242` + // Estimated: `3707` + // Minimum execution time: 11_692_000 picoseconds. + Weight::from_parts(12_248_000, 0) + .saturating_add(Weight::from_parts(0, 3707)) + .saturating_add(T::DbWeight::get().reads(1)) + .saturating_add(T::DbWeight::get().writes(2)) + } +} diff --git a/cumulus/parachains/runtimes/assets/asset-hub-polkadot/src/weights/pallet_timestamp.rs b/cumulus/parachains/runtimes/assets/asset-hub-polkadot/src/weights/pallet_timestamp.rs new file mode 100644 index 000000000000..8c6a2b5505e5 --- /dev/null +++ b/cumulus/parachains/runtimes/assets/asset-hub-polkadot/src/weights/pallet_timestamp.rs @@ -0,0 +1,75 @@ +// Copyright (C) Parity Technologies (UK) Ltd. +// This file is part of Cumulus. + +// Cumulus 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. + +// Cumulus 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 Cumulus. If not, see . + +//! Autogenerated weights for `pallet_timestamp` +//! +//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev +//! DATE: 2023-07-31, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! WORST CASE MAP SIZE: `1000000` +//! HOSTNAME: `runner-ynta1nyy-project-238-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz` +//! EXECUTION: ``, WASM-EXECUTION: `Compiled`, CHAIN: `Some("asset-hub-polkadot-dev")`, DB CACHE: 1024 + +// Executed Command: +// ./target/production/polkadot-parachain +// benchmark +// pallet +// --chain=asset-hub-polkadot-dev +// --wasm-execution=compiled +// --pallet=pallet_timestamp +// --no-storage-info +// --no-median-slopes +// --no-min-squares +// --extrinsic=* +// --steps=50 +// --repeat=20 +// --json +// --header=./file_header.txt +// --output=./parachains/runtimes/assets/asset-hub-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_timestamp`. +pub struct WeightInfo(PhantomData); +impl pallet_timestamp::WeightInfo for WeightInfo { + /// Storage: `Timestamp::Now` (r:1 w:1) + /// Proof: `Timestamp::Now` (`max_values`: Some(1), `max_size`: Some(8), added: 503, mode: `MaxEncodedLen`) + /// Storage: `Aura::CurrentSlot` (r:1 w:0) + /// Proof: `Aura::CurrentSlot` (`max_values`: Some(1), `max_size`: Some(8), added: 503, mode: `MaxEncodedLen`) + fn set() -> Weight { + // Proof Size summary in bytes: + // Measured: `86` + // Estimated: `1493` + // Minimum execution time: 9_214_000 picoseconds. + Weight::from_parts(9_535_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: `57` + // Estimated: `0` + // Minimum execution time: 3_269_000 picoseconds. + Weight::from_parts(3_458_000, 0) + .saturating_add(Weight::from_parts(0, 0)) + } +} diff --git a/cumulus/parachains/runtimes/assets/asset-hub-polkadot/src/weights/pallet_uniques.rs b/cumulus/parachains/runtimes/assets/asset-hub-polkadot/src/weights/pallet_uniques.rs new file mode 100644 index 000000000000..a88928be6534 --- /dev/null +++ b/cumulus/parachains/runtimes/assets/asset-hub-polkadot/src/weights/pallet_uniques.rs @@ -0,0 +1,467 @@ +// Copyright (C) Parity Technologies (UK) Ltd. +// This file is part of Cumulus. + +// Cumulus 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. + +// Cumulus 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 Cumulus. If not, see . + +//! Autogenerated weights for `pallet_uniques` +//! +//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev +//! DATE: 2023-07-31, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! WORST CASE MAP SIZE: `1000000` +//! HOSTNAME: `runner-ynta1nyy-project-238-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz` +//! EXECUTION: ``, WASM-EXECUTION: `Compiled`, CHAIN: `Some("asset-hub-polkadot-dev")`, DB CACHE: 1024 + +// Executed Command: +// ./target/production/polkadot-parachain +// benchmark +// pallet +// --chain=asset-hub-polkadot-dev +// --wasm-execution=compiled +// --pallet=pallet_uniques +// --no-storage-info +// --no-median-slopes +// --no-min-squares +// --extrinsic=* +// --steps=50 +// --repeat=20 +// --json +// --header=./file_header.txt +// --output=./parachains/runtimes/assets/asset-hub-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_uniques`. +pub struct WeightInfo(PhantomData); +impl pallet_uniques::WeightInfo for WeightInfo { + /// Storage: `Uniques::Class` (r:1 w:1) + /// Proof: `Uniques::Class` (`max_values`: None, `max_size`: Some(178), added: 2653, mode: `MaxEncodedLen`) + /// Storage: `Uniques::ClassAccount` (r:0 w:1) + /// Proof: `Uniques::ClassAccount` (`max_values`: None, `max_size`: Some(68), added: 2543, mode: `MaxEncodedLen`) + fn create() -> Weight { + // Proof Size summary in bytes: + // Measured: `145` + // Estimated: `3643` + // Minimum execution time: 29_513_000 picoseconds. + Weight::from_parts(30_346_000, 0) + .saturating_add(Weight::from_parts(0, 3643)) + .saturating_add(T::DbWeight::get().reads(1)) + .saturating_add(T::DbWeight::get().writes(2)) + } + /// Storage: `Uniques::Class` (r:1 w:1) + /// Proof: `Uniques::Class` (`max_values`: None, `max_size`: Some(178), added: 2653, mode: `MaxEncodedLen`) + /// Storage: `Uniques::ClassAccount` (r:0 w:1) + /// Proof: `Uniques::ClassAccount` (`max_values`: None, `max_size`: Some(68), added: 2543, mode: `MaxEncodedLen`) + fn force_create() -> Weight { + // Proof Size summary in bytes: + // Measured: `42` + // Estimated: `3643` + // Minimum execution time: 13_600_000 picoseconds. + Weight::from_parts(14_110_000, 0) + .saturating_add(Weight::from_parts(0, 3643)) + .saturating_add(T::DbWeight::get().reads(1)) + .saturating_add(T::DbWeight::get().writes(2)) + } + /// Storage: `Uniques::Class` (r:1 w:1) + /// Proof: `Uniques::Class` (`max_values`: None, `max_size`: Some(178), added: 2653, mode: `MaxEncodedLen`) + /// Storage: `Uniques::Asset` (r:1001 w:1000) + /// Proof: `Uniques::Asset` (`max_values`: None, `max_size`: Some(122), added: 2597, mode: `MaxEncodedLen`) + /// Storage: `Uniques::InstanceMetadataOf` (r:1000 w:1000) + /// Proof: `Uniques::InstanceMetadataOf` (`max_values`: None, `max_size`: Some(187), added: 2662, mode: `MaxEncodedLen`) + /// Storage: `Uniques::Attribute` (r:1000 w:1000) + /// Proof: `Uniques::Attribute` (`max_values`: None, `max_size`: Some(172), added: 2647, mode: `MaxEncodedLen`) + /// Storage: `Uniques::ClassAccount` (r:0 w:1) + /// Proof: `Uniques::ClassAccount` (`max_values`: None, `max_size`: Some(68), added: 2543, mode: `MaxEncodedLen`) + /// Storage: `Uniques::ClassMetadataOf` (r:0 w:1) + /// Proof: `Uniques::ClassMetadataOf` (`max_values`: None, `max_size`: Some(167), added: 2642, mode: `MaxEncodedLen`) + /// Storage: `Uniques::Account` (r:0 w:1000) + /// Proof: `Uniques::Account` (`max_values`: None, `max_size`: Some(88), added: 2563, mode: `MaxEncodedLen`) + /// Storage: `Uniques::CollectionMaxSupply` (r:0 w:1) + /// Proof: `Uniques::CollectionMaxSupply` (`max_values`: None, `max_size`: Some(24), added: 2499, mode: `MaxEncodedLen`) + /// The range of component `n` is `[0, 1000]`. + /// The range of component `m` is `[0, 1000]`. + /// The range of component `a` is `[0, 1000]`. + fn destroy(n: u32, m: u32, a: u32, ) -> Weight { + // Proof Size summary in bytes: + // Measured: `257 + a * (107 ±0) + m * (56 ±0) + n * (76 ±0)` + // Estimated: `3643 + a * (2647 ±0) + m * (2662 ±0) + n * (2597 ±0)` + // Minimum execution time: 2_945_869_000 picoseconds. + Weight::from_parts(3_037_917_000, 0) + .saturating_add(Weight::from_parts(0, 3643)) + // Standard Error: 35_850 + .saturating_add(Weight::from_parts(7_558_563, 0).saturating_mul(n.into())) + // Standard Error: 35_850 + .saturating_add(Weight::from_parts(501_089, 0).saturating_mul(m.into())) + // Standard Error: 35_850 + .saturating_add(Weight::from_parts(538_921, 0).saturating_mul(a.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().reads((1_u64).saturating_mul(m.into()))) + .saturating_add(T::DbWeight::get().reads((1_u64).saturating_mul(a.into()))) + .saturating_add(T::DbWeight::get().writes(4)) + .saturating_add(T::DbWeight::get().writes((2_u64).saturating_mul(n.into()))) + .saturating_add(T::DbWeight::get().writes((1_u64).saturating_mul(m.into()))) + .saturating_add(T::DbWeight::get().writes((1_u64).saturating_mul(a.into()))) + .saturating_add(Weight::from_parts(0, 2647).saturating_mul(a.into())) + .saturating_add(Weight::from_parts(0, 2662).saturating_mul(m.into())) + .saturating_add(Weight::from_parts(0, 2597).saturating_mul(n.into())) + } + /// Storage: `Uniques::Asset` (r:1 w:1) + /// Proof: `Uniques::Asset` (`max_values`: None, `max_size`: Some(122), added: 2597, mode: `MaxEncodedLen`) + /// Storage: `Uniques::Class` (r:1 w:1) + /// Proof: `Uniques::Class` (`max_values`: None, `max_size`: Some(178), added: 2653, mode: `MaxEncodedLen`) + /// Storage: `Uniques::CollectionMaxSupply` (r:1 w:0) + /// Proof: `Uniques::CollectionMaxSupply` (`max_values`: None, `max_size`: Some(24), added: 2499, mode: `MaxEncodedLen`) + /// Storage: `Uniques::Account` (r:0 w:1) + /// Proof: `Uniques::Account` (`max_values`: None, `max_size`: Some(88), added: 2563, mode: `MaxEncodedLen`) + fn mint() -> Weight { + // Proof Size summary in bytes: + // Measured: `282` + // Estimated: `3643` + // Minimum execution time: 36_225_000 picoseconds. + Weight::from_parts(36_858_000, 0) + .saturating_add(Weight::from_parts(0, 3643)) + .saturating_add(T::DbWeight::get().reads(3)) + .saturating_add(T::DbWeight::get().writes(3)) + } + /// Storage: `Uniques::Class` (r:1 w:1) + /// Proof: `Uniques::Class` (`max_values`: None, `max_size`: Some(178), added: 2653, mode: `MaxEncodedLen`) + /// Storage: `Uniques::Asset` (r:1 w:1) + /// Proof: `Uniques::Asset` (`max_values`: None, `max_size`: Some(122), added: 2597, mode: `MaxEncodedLen`) + /// Storage: `Uniques::Account` (r:0 w:1) + /// Proof: `Uniques::Account` (`max_values`: None, `max_size`: Some(88), added: 2563, mode: `MaxEncodedLen`) + /// Storage: `Uniques::ItemPriceOf` (r:0 w:1) + /// Proof: `Uniques::ItemPriceOf` (`max_values`: None, `max_size`: Some(89), added: 2564, mode: `MaxEncodedLen`) + fn burn() -> Weight { + // Proof Size summary in bytes: + // Measured: `428` + // Estimated: `3643` + // Minimum execution time: 37_021_000 picoseconds. + Weight::from_parts(37_749_000, 0) + .saturating_add(Weight::from_parts(0, 3643)) + .saturating_add(T::DbWeight::get().reads(2)) + .saturating_add(T::DbWeight::get().writes(4)) + } + /// Storage: `Uniques::Class` (r:1 w:0) + /// Proof: `Uniques::Class` (`max_values`: None, `max_size`: Some(178), added: 2653, mode: `MaxEncodedLen`) + /// Storage: `Uniques::Asset` (r:1 w:1) + /// Proof: `Uniques::Asset` (`max_values`: None, `max_size`: Some(122), added: 2597, mode: `MaxEncodedLen`) + /// Storage: `Uniques::Account` (r:0 w:2) + /// Proof: `Uniques::Account` (`max_values`: None, `max_size`: Some(88), added: 2563, mode: `MaxEncodedLen`) + /// Storage: `Uniques::ItemPriceOf` (r:0 w:1) + /// Proof: `Uniques::ItemPriceOf` (`max_values`: None, `max_size`: Some(89), added: 2564, mode: `MaxEncodedLen`) + fn transfer() -> Weight { + // Proof Size summary in bytes: + // Measured: `428` + // Estimated: `3643` + // Minimum execution time: 26_884_000 picoseconds. + Weight::from_parts(27_414_000, 0) + .saturating_add(Weight::from_parts(0, 3643)) + .saturating_add(T::DbWeight::get().reads(2)) + .saturating_add(T::DbWeight::get().writes(4)) + } + /// Storage: `Uniques::Class` (r:1 w:1) + /// Proof: `Uniques::Class` (`max_values`: None, `max_size`: Some(178), added: 2653, mode: `MaxEncodedLen`) + /// Storage: `Uniques::Asset` (r:5000 w:5000) + /// Proof: `Uniques::Asset` (`max_values`: None, `max_size`: Some(122), added: 2597, mode: `MaxEncodedLen`) + /// The range of component `i` is `[0, 5000]`. + fn redeposit(i: u32, ) -> Weight { + // Proof Size summary in bytes: + // Measured: `738 + i * (76 ±0)` + // Estimated: `3643 + i * (2597 ±0)` + // Minimum execution time: 14_797_000 picoseconds. + Weight::from_parts(14_943_000, 0) + .saturating_add(Weight::from_parts(0, 3643)) + // Standard Error: 25_250 + .saturating_add(Weight::from_parts(18_014_600, 0).saturating_mul(i.into())) + .saturating_add(T::DbWeight::get().reads(1)) + .saturating_add(T::DbWeight::get().reads((1_u64).saturating_mul(i.into()))) + .saturating_add(T::DbWeight::get().writes(1)) + .saturating_add(T::DbWeight::get().writes((1_u64).saturating_mul(i.into()))) + .saturating_add(Weight::from_parts(0, 2597).saturating_mul(i.into())) + } + /// Storage: `Uniques::Asset` (r:1 w:1) + /// Proof: `Uniques::Asset` (`max_values`: None, `max_size`: Some(122), added: 2597, mode: `MaxEncodedLen`) + /// Storage: `Uniques::Class` (r:1 w:0) + /// Proof: `Uniques::Class` (`max_values`: None, `max_size`: Some(178), added: 2653, mode: `MaxEncodedLen`) + fn freeze() -> Weight { + // Proof Size summary in bytes: + // Measured: `428` + // Estimated: `3643` + // Minimum execution time: 18_864_000 picoseconds. + Weight::from_parts(19_299_000, 0) + .saturating_add(Weight::from_parts(0, 3643)) + .saturating_add(T::DbWeight::get().reads(2)) + .saturating_add(T::DbWeight::get().writes(1)) + } + /// Storage: `Uniques::Asset` (r:1 w:1) + /// Proof: `Uniques::Asset` (`max_values`: None, `max_size`: Some(122), added: 2597, mode: `MaxEncodedLen`) + /// Storage: `Uniques::Class` (r:1 w:0) + /// Proof: `Uniques::Class` (`max_values`: None, `max_size`: Some(178), added: 2653, mode: `MaxEncodedLen`) + fn thaw() -> Weight { + // Proof Size summary in bytes: + // Measured: `428` + // Estimated: `3643` + // Minimum execution time: 18_530_000 picoseconds. + Weight::from_parts(19_230_000, 0) + .saturating_add(Weight::from_parts(0, 3643)) + .saturating_add(T::DbWeight::get().reads(2)) + .saturating_add(T::DbWeight::get().writes(1)) + } + /// Storage: `Uniques::Class` (r:1 w:1) + /// Proof: `Uniques::Class` (`max_values`: None, `max_size`: Some(178), added: 2653, mode: `MaxEncodedLen`) + fn freeze_collection() -> Weight { + // Proof Size summary in bytes: + // Measured: `282` + // Estimated: `3643` + // Minimum execution time: 13_807_000 picoseconds. + Weight::from_parts(14_270_000, 0) + .saturating_add(Weight::from_parts(0, 3643)) + .saturating_add(T::DbWeight::get().reads(1)) + .saturating_add(T::DbWeight::get().writes(1)) + } + /// Storage: `Uniques::Class` (r:1 w:1) + /// Proof: `Uniques::Class` (`max_values`: None, `max_size`: Some(178), added: 2653, mode: `MaxEncodedLen`) + fn thaw_collection() -> Weight { + // Proof Size summary in bytes: + // Measured: `282` + // Estimated: `3643` + // Minimum execution time: 13_657_000 picoseconds. + Weight::from_parts(14_059_000, 0) + .saturating_add(Weight::from_parts(0, 3643)) + .saturating_add(T::DbWeight::get().reads(1)) + .saturating_add(T::DbWeight::get().writes(1)) + } + /// Storage: `Uniques::OwnershipAcceptance` (r:1 w:1) + /// Proof: `Uniques::OwnershipAcceptance` (`max_values`: None, `max_size`: Some(52), added: 2527, mode: `MaxEncodedLen`) + /// Storage: `Uniques::Class` (r:1 w:1) + /// Proof: `Uniques::Class` (`max_values`: None, `max_size`: Some(178), added: 2653, mode: `MaxEncodedLen`) + /// Storage: `Uniques::ClassAccount` (r:0 w:2) + /// Proof: `Uniques::ClassAccount` (`max_values`: None, `max_size`: Some(68), added: 2543, mode: `MaxEncodedLen`) + fn transfer_ownership() -> Weight { + // Proof Size summary in bytes: + // Measured: `356` + // Estimated: `3643` + // Minimum execution time: 22_108_000 picoseconds. + Weight::from_parts(22_520_000, 0) + .saturating_add(Weight::from_parts(0, 3643)) + .saturating_add(T::DbWeight::get().reads(2)) + .saturating_add(T::DbWeight::get().writes(4)) + } + /// Storage: `Uniques::Class` (r:1 w:1) + /// Proof: `Uniques::Class` (`max_values`: None, `max_size`: Some(178), added: 2653, mode: `MaxEncodedLen`) + fn set_team() -> Weight { + // Proof Size summary in bytes: + // Measured: `282` + // Estimated: `3643` + // Minimum execution time: 14_128_000 picoseconds. + Weight::from_parts(14_481_000, 0) + .saturating_add(Weight::from_parts(0, 3643)) + .saturating_add(T::DbWeight::get().reads(1)) + .saturating_add(T::DbWeight::get().writes(1)) + } + /// Storage: `Uniques::Class` (r:1 w:1) + /// Proof: `Uniques::Class` (`max_values`: None, `max_size`: Some(178), added: 2653, mode: `MaxEncodedLen`) + /// Storage: `Uniques::ClassAccount` (r:0 w:1) + /// Proof: `Uniques::ClassAccount` (`max_values`: None, `max_size`: Some(68), added: 2543, mode: `MaxEncodedLen`) + fn force_item_status() -> Weight { + // Proof Size summary in bytes: + // Measured: `282` + // Estimated: `3643` + // Minimum execution time: 17_114_000 picoseconds. + Weight::from_parts(17_570_000, 0) + .saturating_add(Weight::from_parts(0, 3643)) + .saturating_add(T::DbWeight::get().reads(1)) + .saturating_add(T::DbWeight::get().writes(2)) + } + /// Storage: `Uniques::Class` (r:1 w:1) + /// Proof: `Uniques::Class` (`max_values`: None, `max_size`: Some(178), added: 2653, mode: `MaxEncodedLen`) + /// Storage: `Uniques::InstanceMetadataOf` (r:1 w:0) + /// Proof: `Uniques::InstanceMetadataOf` (`max_values`: None, `max_size`: Some(187), added: 2662, mode: `MaxEncodedLen`) + /// Storage: `Uniques::Attribute` (r:1 w:1) + /// Proof: `Uniques::Attribute` (`max_values`: None, `max_size`: Some(172), added: 2647, mode: `MaxEncodedLen`) + fn set_attribute() -> Weight { + // Proof Size summary in bytes: + // Measured: `559` + // Estimated: `3652` + // Minimum execution time: 40_412_000 picoseconds. + Weight::from_parts(43_009_000, 0) + .saturating_add(Weight::from_parts(0, 3652)) + .saturating_add(T::DbWeight::get().reads(3)) + .saturating_add(T::DbWeight::get().writes(2)) + } + /// Storage: `Uniques::Class` (r:1 w:1) + /// Proof: `Uniques::Class` (`max_values`: None, `max_size`: Some(178), added: 2653, mode: `MaxEncodedLen`) + /// Storage: `Uniques::InstanceMetadataOf` (r:1 w:0) + /// Proof: `Uniques::InstanceMetadataOf` (`max_values`: None, `max_size`: Some(187), added: 2662, mode: `MaxEncodedLen`) + /// Storage: `Uniques::Attribute` (r:1 w:1) + /// Proof: `Uniques::Attribute` (`max_values`: None, `max_size`: Some(172), added: 2647, mode: `MaxEncodedLen`) + fn clear_attribute() -> Weight { + // Proof Size summary in bytes: + // Measured: `756` + // Estimated: `3652` + // Minimum execution time: 38_044_000 picoseconds. + Weight::from_parts(38_871_000, 0) + .saturating_add(Weight::from_parts(0, 3652)) + .saturating_add(T::DbWeight::get().reads(3)) + .saturating_add(T::DbWeight::get().writes(2)) + } + /// Storage: `Uniques::Class` (r:1 w:1) + /// Proof: `Uniques::Class` (`max_values`: None, `max_size`: Some(178), added: 2653, mode: `MaxEncodedLen`) + /// Storage: `Uniques::InstanceMetadataOf` (r:1 w:1) + /// Proof: `Uniques::InstanceMetadataOf` (`max_values`: None, `max_size`: Some(187), added: 2662, mode: `MaxEncodedLen`) + fn set_metadata() -> Weight { + // Proof Size summary in bytes: + // Measured: `348` + // Estimated: `3652` + // Minimum execution time: 30_016_000 picoseconds. + Weight::from_parts(30_723_000, 0) + .saturating_add(Weight::from_parts(0, 3652)) + .saturating_add(T::DbWeight::get().reads(2)) + .saturating_add(T::DbWeight::get().writes(2)) + } + /// Storage: `Uniques::Class` (r:1 w:1) + /// Proof: `Uniques::Class` (`max_values`: None, `max_size`: Some(178), added: 2653, mode: `MaxEncodedLen`) + /// Storage: `Uniques::InstanceMetadataOf` (r:1 w:1) + /// Proof: `Uniques::InstanceMetadataOf` (`max_values`: None, `max_size`: Some(187), added: 2662, mode: `MaxEncodedLen`) + fn clear_metadata() -> Weight { + // Proof Size summary in bytes: + // Measured: `559` + // Estimated: `3652` + // Minimum execution time: 30_942_000 picoseconds. + Weight::from_parts(31_527_000, 0) + .saturating_add(Weight::from_parts(0, 3652)) + .saturating_add(T::DbWeight::get().reads(2)) + .saturating_add(T::DbWeight::get().writes(2)) + } + /// Storage: `Uniques::Class` (r:1 w:1) + /// Proof: `Uniques::Class` (`max_values`: None, `max_size`: Some(178), added: 2653, mode: `MaxEncodedLen`) + /// Storage: `Uniques::ClassMetadataOf` (r:1 w:1) + /// Proof: `Uniques::ClassMetadataOf` (`max_values`: None, `max_size`: Some(167), added: 2642, mode: `MaxEncodedLen`) + fn set_collection_metadata() -> Weight { + // Proof Size summary in bytes: + // Measured: `282` + // Estimated: `3643` + // Minimum execution time: 30_727_000 picoseconds. + Weight::from_parts(31_688_000, 0) + .saturating_add(Weight::from_parts(0, 3643)) + .saturating_add(T::DbWeight::get().reads(2)) + .saturating_add(T::DbWeight::get().writes(2)) + } + /// Storage: `Uniques::Class` (r:1 w:0) + /// Proof: `Uniques::Class` (`max_values`: None, `max_size`: Some(178), added: 2653, mode: `MaxEncodedLen`) + /// Storage: `Uniques::ClassMetadataOf` (r:1 w:1) + /// Proof: `Uniques::ClassMetadataOf` (`max_values`: None, `max_size`: Some(167), added: 2642, mode: `MaxEncodedLen`) + fn clear_collection_metadata() -> Weight { + // Proof Size summary in bytes: + // Measured: `473` + // Estimated: `3643` + // Minimum execution time: 29_844_000 picoseconds. + Weight::from_parts(30_403_000, 0) + .saturating_add(Weight::from_parts(0, 3643)) + .saturating_add(T::DbWeight::get().reads(2)) + .saturating_add(T::DbWeight::get().writes(1)) + } + /// Storage: `Uniques::Class` (r:1 w:0) + /// Proof: `Uniques::Class` (`max_values`: None, `max_size`: Some(178), added: 2653, mode: `MaxEncodedLen`) + /// Storage: `Uniques::Asset` (r:1 w:1) + /// Proof: `Uniques::Asset` (`max_values`: None, `max_size`: Some(122), added: 2597, mode: `MaxEncodedLen`) + fn approve_transfer() -> Weight { + // Proof Size summary in bytes: + // Measured: `428` + // Estimated: `3643` + // Minimum execution time: 19_155_000 picoseconds. + Weight::from_parts(19_909_000, 0) + .saturating_add(Weight::from_parts(0, 3643)) + .saturating_add(T::DbWeight::get().reads(2)) + .saturating_add(T::DbWeight::get().writes(1)) + } + /// Storage: `Uniques::Class` (r:1 w:0) + /// Proof: `Uniques::Class` (`max_values`: None, `max_size`: Some(178), added: 2653, mode: `MaxEncodedLen`) + /// Storage: `Uniques::Asset` (r:1 w:1) + /// Proof: `Uniques::Asset` (`max_values`: None, `max_size`: Some(122), added: 2597, mode: `MaxEncodedLen`) + fn cancel_approval() -> Weight { + // Proof Size summary in bytes: + // Measured: `461` + // Estimated: `3643` + // Minimum execution time: 19_163_000 picoseconds. + Weight::from_parts(19_804_000, 0) + .saturating_add(Weight::from_parts(0, 3643)) + .saturating_add(T::DbWeight::get().reads(2)) + .saturating_add(T::DbWeight::get().writes(1)) + } + /// Storage: `Uniques::OwnershipAcceptance` (r:1 w:1) + /// Proof: `Uniques::OwnershipAcceptance` (`max_values`: None, `max_size`: Some(52), added: 2527, mode: `MaxEncodedLen`) + fn set_accept_ownership() -> Weight { + // Proof Size summary in bytes: + // Measured: `42` + // Estimated: `3517` + // Minimum execution time: 15_413_000 picoseconds. + Weight::from_parts(15_762_000, 0) + .saturating_add(Weight::from_parts(0, 3517)) + .saturating_add(T::DbWeight::get().reads(1)) + .saturating_add(T::DbWeight::get().writes(1)) + } + /// Storage: `Uniques::CollectionMaxSupply` (r:1 w:1) + /// Proof: `Uniques::CollectionMaxSupply` (`max_values`: None, `max_size`: Some(24), added: 2499, mode: `MaxEncodedLen`) + /// Storage: `Uniques::Class` (r:1 w:0) + /// Proof: `Uniques::Class` (`max_values`: None, `max_size`: Some(178), added: 2653, mode: `MaxEncodedLen`) + fn set_collection_max_supply() -> Weight { + // Proof Size summary in bytes: + // Measured: `282` + // Estimated: `3643` + // Minimum execution time: 16_477_000 picoseconds. + Weight::from_parts(16_811_000, 0) + .saturating_add(Weight::from_parts(0, 3643)) + .saturating_add(T::DbWeight::get().reads(2)) + .saturating_add(T::DbWeight::get().writes(1)) + } + /// Storage: `Uniques::Asset` (r:1 w:0) + /// Proof: `Uniques::Asset` (`max_values`: None, `max_size`: Some(122), added: 2597, mode: `MaxEncodedLen`) + /// Storage: `Uniques::ItemPriceOf` (r:0 w:1) + /// Proof: `Uniques::ItemPriceOf` (`max_values`: None, `max_size`: Some(89), added: 2564, mode: `MaxEncodedLen`) + fn set_price() -> Weight { + // Proof Size summary in bytes: + // Measured: `259` + // Estimated: `3587` + // Minimum execution time: 16_415_000 picoseconds. + Weight::from_parts(16_906_000, 0) + .saturating_add(Weight::from_parts(0, 3587)) + .saturating_add(T::DbWeight::get().reads(1)) + .saturating_add(T::DbWeight::get().writes(1)) + } + /// Storage: `Uniques::Asset` (r:1 w:1) + /// Proof: `Uniques::Asset` (`max_values`: None, `max_size`: Some(122), added: 2597, mode: `MaxEncodedLen`) + /// Storage: `Uniques::ItemPriceOf` (r:1 w:1) + /// Proof: `Uniques::ItemPriceOf` (`max_values`: None, `max_size`: Some(89), added: 2564, mode: `MaxEncodedLen`) + /// Storage: `Uniques::Class` (r:1 w:0) + /// Proof: `Uniques::Class` (`max_values`: None, `max_size`: Some(178), added: 2653, mode: `MaxEncodedLen`) + /// Storage: `Uniques::Account` (r:0 w:2) + /// Proof: `Uniques::Account` (`max_values`: None, `max_size`: Some(88), added: 2563, mode: `MaxEncodedLen`) + fn buy_item() -> Weight { + // Proof Size summary in bytes: + // Measured: `540` + // Estimated: `3643` + // Minimum execution time: 35_814_000 picoseconds. + Weight::from_parts(36_569_000, 0) + .saturating_add(Weight::from_parts(0, 3643)) + .saturating_add(T::DbWeight::get().reads(3)) + .saturating_add(T::DbWeight::get().writes(4)) + } +} diff --git a/cumulus/parachains/runtimes/assets/asset-hub-polkadot/src/weights/pallet_utility.rs b/cumulus/parachains/runtimes/assets/asset-hub-polkadot/src/weights/pallet_utility.rs new file mode 100644 index 000000000000..c6fc093cc4b4 --- /dev/null +++ b/cumulus/parachains/runtimes/assets/asset-hub-polkadot/src/weights/pallet_utility.rs @@ -0,0 +1,102 @@ +// Copyright (C) Parity Technologies (UK) Ltd. +// This file is part of Cumulus. + +// Cumulus 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. + +// Cumulus 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 Cumulus. If not, see . + +//! Autogenerated weights for `pallet_utility` +//! +//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev +//! DATE: 2023-07-31, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! WORST CASE MAP SIZE: `1000000` +//! HOSTNAME: `runner-ynta1nyy-project-238-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz` +//! EXECUTION: ``, WASM-EXECUTION: `Compiled`, CHAIN: `Some("asset-hub-polkadot-dev")`, DB CACHE: 1024 + +// Executed Command: +// ./target/production/polkadot-parachain +// benchmark +// pallet +// --chain=asset-hub-polkadot-dev +// --wasm-execution=compiled +// --pallet=pallet_utility +// --no-storage-info +// --no-median-slopes +// --no-min-squares +// --extrinsic=* +// --steps=50 +// --repeat=20 +// --json +// --header=./file_header.txt +// --output=./parachains/runtimes/assets/asset-hub-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_utility`. +pub struct WeightInfo(PhantomData); +impl pallet_utility::WeightInfo for WeightInfo { + /// The range of component `c` is `[0, 1000]`. + fn batch(c: u32, ) -> Weight { + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 6_918_000 picoseconds. + Weight::from_parts(2_421_521, 0) + .saturating_add(Weight::from_parts(0, 0)) + // Standard Error: 3_252 + .saturating_add(Weight::from_parts(6_625_635, 0).saturating_mul(c.into())) + } + fn as_derivative() -> Weight { + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 5_304_000 picoseconds. + Weight::from_parts(5_546_000, 0) + .saturating_add(Weight::from_parts(0, 0)) + } + /// The range of component `c` is `[0, 1000]`. + fn batch_all(c: u32, ) -> Weight { + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 6_847_000 picoseconds. + Weight::from_parts(1_224_975, 0) + .saturating_add(Weight::from_parts(0, 0)) + // Standard Error: 3_818 + .saturating_add(Weight::from_parts(6_891_149, 0).saturating_mul(c.into())) + } + fn dispatch_as() -> Weight { + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 9_269_000 picoseconds. + Weight::from_parts(9_604_000, 0) + .saturating_add(Weight::from_parts(0, 0)) + } + /// The range of component `c` is `[0, 1000]`. + fn force_batch(c: u32, ) -> Weight { + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 6_855_000 picoseconds. + Weight::from_parts(6_965_000, 0) + .saturating_add(Weight::from_parts(0, 0)) + // Standard Error: 1_631 + .saturating_add(Weight::from_parts(6_545_496, 0).saturating_mul(c.into())) + } +} diff --git a/cumulus/parachains/runtimes/assets/asset-hub-polkadot/src/weights/pallet_xcm.rs b/cumulus/parachains/runtimes/assets/asset-hub-polkadot/src/weights/pallet_xcm.rs new file mode 100644 index 000000000000..bd7615895e2e --- /dev/null +++ b/cumulus/parachains/runtimes/assets/asset-hub-polkadot/src/weights/pallet_xcm.rs @@ -0,0 +1,290 @@ +// Copyright (C) Parity Technologies (UK) Ltd. +// This file is part of Cumulus. + +// Cumulus 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. + +// Cumulus 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 Cumulus. If not, see . + +//! Autogenerated weights for `pallet_xcm` +//! +//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev +//! DATE: 2023-07-31, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! WORST CASE MAP SIZE: `1000000` +//! HOSTNAME: `runner-ynta1nyy-project-238-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz` +//! EXECUTION: ``, WASM-EXECUTION: `Compiled`, CHAIN: `Some("asset-hub-polkadot-dev")`, DB CACHE: 1024 + +// Executed Command: +// ./target/production/polkadot-parachain +// benchmark +// pallet +// --chain=asset-hub-polkadot-dev +// --wasm-execution=compiled +// --pallet=pallet_xcm +// --no-storage-info +// --no-median-slopes +// --no-min-squares +// --extrinsic=* +// --steps=50 +// --repeat=20 +// --json +// --header=./file_header.txt +// --output=./parachains/runtimes/assets/asset-hub-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_xcm`. +pub struct WeightInfo(PhantomData); +impl pallet_xcm::WeightInfo for WeightInfo { + /// Storage: `PolkadotXcm::SupportedVersion` (r:1 w:0) + /// Proof: `PolkadotXcm::SupportedVersion` (`max_values`: None, `max_size`: None, mode: `Measured`) + /// Storage: `PolkadotXcm::VersionDiscoveryQueue` (r:1 w:1) + /// Proof: `PolkadotXcm::VersionDiscoveryQueue` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `PolkadotXcm::SafeXcmVersion` (r:1 w:0) + /// Proof: `PolkadotXcm::SafeXcmVersion` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `ParachainSystem::HostConfiguration` (r:1 w:0) + /// Proof: `ParachainSystem::HostConfiguration` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `ParachainSystem::PendingUpwardMessages` (r:1 w:1) + /// Proof: `ParachainSystem::PendingUpwardMessages` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + fn send() -> Weight { + // Proof Size summary in bytes: + // Measured: `75` + // Estimated: `3540` + // Minimum execution time: 28_284_000 picoseconds. + Weight::from_parts(29_186_000, 0) + .saturating_add(Weight::from_parts(0, 3540)) + .saturating_add(T::DbWeight::get().reads(5)) + .saturating_add(T::DbWeight::get().writes(2)) + } + /// Storage: `ParachainInfo::ParachainId` (r:1 w:0) + /// Proof: `ParachainInfo::ParachainId` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`) + fn teleport_assets() -> Weight { + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `1489` + // Minimum execution time: 24_830_000 picoseconds. + Weight::from_parts(26_312_000, 0) + .saturating_add(Weight::from_parts(0, 1489)) + .saturating_add(T::DbWeight::get().reads(1)) + } + /// Storage: `ParachainInfo::ParachainId` (r:1 w:0) + /// Proof: `ParachainInfo::ParachainId` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`) + fn reserve_transfer_assets() -> Weight { + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `1489` + // Minimum execution time: 18_584_000 picoseconds. + Weight::from_parts(19_083_000, 0) + .saturating_add(Weight::from_parts(0, 1489)) + .saturating_add(T::DbWeight::get().reads(1)) + } + /// Storage: `Benchmark::Override` (r:0 w:0) + /// Proof: `Benchmark::Override` (`max_values`: None, `max_size`: None, mode: `Measured`) + fn execute() -> Weight { + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 18_446_744_073_709_551_000 picoseconds. + Weight::from_parts(18_446_744_073_709_551_000, 0) + .saturating_add(Weight::from_parts(0, 0)) + } + /// Storage: `PolkadotXcm::SupportedVersion` (r:0 w:1) + /// Proof: `PolkadotXcm::SupportedVersion` (`max_values`: None, `max_size`: None, mode: `Measured`) + fn force_xcm_version() -> Weight { + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 9_415_000 picoseconds. + Weight::from_parts(9_821_000, 0) + .saturating_add(Weight::from_parts(0, 0)) + .saturating_add(T::DbWeight::get().writes(1)) + } + /// Storage: `PolkadotXcm::SafeXcmVersion` (r:0 w:1) + /// Proof: `PolkadotXcm::SafeXcmVersion` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + fn force_default_xcm_version() -> Weight { + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 2_902_000 picoseconds. + Weight::from_parts(3_377_000, 0) + .saturating_add(Weight::from_parts(0, 0)) + .saturating_add(T::DbWeight::get().writes(1)) + } + /// Storage: `PolkadotXcm::VersionNotifiers` (r:1 w:1) + /// Proof: `PolkadotXcm::VersionNotifiers` (`max_values`: None, `max_size`: None, mode: `Measured`) + /// Storage: `PolkadotXcm::QueryCounter` (r:1 w:1) + /// Proof: `PolkadotXcm::QueryCounter` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `PolkadotXcm::SupportedVersion` (r:1 w:0) + /// Proof: `PolkadotXcm::SupportedVersion` (`max_values`: None, `max_size`: None, mode: `Measured`) + /// Storage: `PolkadotXcm::VersionDiscoveryQueue` (r:1 w:1) + /// Proof: `PolkadotXcm::VersionDiscoveryQueue` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `PolkadotXcm::SafeXcmVersion` (r:1 w:0) + /// Proof: `PolkadotXcm::SafeXcmVersion` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `ParachainSystem::HostConfiguration` (r:1 w:0) + /// Proof: `ParachainSystem::HostConfiguration` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `ParachainSystem::PendingUpwardMessages` (r:1 w:1) + /// Proof: `ParachainSystem::PendingUpwardMessages` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `PolkadotXcm::Queries` (r:0 w:1) + /// Proof: `PolkadotXcm::Queries` (`max_values`: None, `max_size`: None, mode: `Measured`) + fn force_subscribe_version_notify() -> Weight { + // Proof Size summary in bytes: + // Measured: `75` + // Estimated: `3540` + // Minimum execution time: 32_730_000 picoseconds. + Weight::from_parts(33_879_000, 0) + .saturating_add(Weight::from_parts(0, 3540)) + .saturating_add(T::DbWeight::get().reads(7)) + .saturating_add(T::DbWeight::get().writes(5)) + } + /// Storage: `PolkadotXcm::VersionNotifiers` (r:1 w:1) + /// Proof: `PolkadotXcm::VersionNotifiers` (`max_values`: None, `max_size`: None, mode: `Measured`) + /// Storage: `PolkadotXcm::SupportedVersion` (r:1 w:0) + /// Proof: `PolkadotXcm::SupportedVersion` (`max_values`: None, `max_size`: None, mode: `Measured`) + /// Storage: `PolkadotXcm::VersionDiscoveryQueue` (r:1 w:1) + /// Proof: `PolkadotXcm::VersionDiscoveryQueue` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `PolkadotXcm::SafeXcmVersion` (r:1 w:0) + /// Proof: `PolkadotXcm::SafeXcmVersion` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `ParachainSystem::HostConfiguration` (r:1 w:0) + /// Proof: `ParachainSystem::HostConfiguration` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `ParachainSystem::PendingUpwardMessages` (r:1 w:1) + /// Proof: `ParachainSystem::PendingUpwardMessages` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `PolkadotXcm::Queries` (r:0 w:1) + /// Proof: `PolkadotXcm::Queries` (`max_values`: None, `max_size`: None, mode: `Measured`) + fn force_unsubscribe_version_notify() -> Weight { + // Proof Size summary in bytes: + // Measured: `257` + // Estimated: `3722` + // Minimum execution time: 34_053_000 picoseconds. + Weight::from_parts(34_506_000, 0) + .saturating_add(Weight::from_parts(0, 3722)) + .saturating_add(T::DbWeight::get().reads(6)) + .saturating_add(T::DbWeight::get().writes(4)) + } + /// Storage: `PolkadotXcm::XcmExecutionSuspended` (r:0 w:1) + /// Proof: `PolkadotXcm::XcmExecutionSuspended` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + fn force_suspension() -> Weight { + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 2_824_000 picoseconds. + Weight::from_parts(2_986_000, 0) + .saturating_add(Weight::from_parts(0, 0)) + .saturating_add(T::DbWeight::get().writes(1)) + } + /// Storage: `PolkadotXcm::SupportedVersion` (r:4 w:2) + /// Proof: `PolkadotXcm::SupportedVersion` (`max_values`: None, `max_size`: None, mode: `Measured`) + fn migrate_supported_version() -> Weight { + // Proof Size summary in bytes: + // Measured: `129` + // Estimated: `11019` + // Minimum execution time: 17_011_000 picoseconds. + Weight::from_parts(17_488_000, 0) + .saturating_add(Weight::from_parts(0, 11019)) + .saturating_add(T::DbWeight::get().reads(4)) + .saturating_add(T::DbWeight::get().writes(2)) + } + /// Storage: `PolkadotXcm::VersionNotifiers` (r:4 w:2) + /// Proof: `PolkadotXcm::VersionNotifiers` (`max_values`: None, `max_size`: None, mode: `Measured`) + fn migrate_version_notifiers() -> Weight { + // Proof Size summary in bytes: + // Measured: `133` + // Estimated: `11023` + // Minimum execution time: 17_191_000 picoseconds. + Weight::from_parts(17_784_000, 0) + .saturating_add(Weight::from_parts(0, 11023)) + .saturating_add(T::DbWeight::get().reads(4)) + .saturating_add(T::DbWeight::get().writes(2)) + } + /// Storage: `PolkadotXcm::VersionNotifyTargets` (r:5 w:0) + /// Proof: `PolkadotXcm::VersionNotifyTargets` (`max_values`: None, `max_size`: None, mode: `Measured`) + fn already_notified_target() -> Weight { + // Proof Size summary in bytes: + // Measured: `140` + // Estimated: `13505` + // Minimum execution time: 18_625_000 picoseconds. + Weight::from_parts(19_177_000, 0) + .saturating_add(Weight::from_parts(0, 13505)) + .saturating_add(T::DbWeight::get().reads(5)) + } + /// Storage: `PolkadotXcm::VersionNotifyTargets` (r:2 w:1) + /// Proof: `PolkadotXcm::VersionNotifyTargets` (`max_values`: None, `max_size`: None, mode: `Measured`) + /// Storage: `PolkadotXcm::SupportedVersion` (r:1 w:0) + /// Proof: `PolkadotXcm::SupportedVersion` (`max_values`: None, `max_size`: None, mode: `Measured`) + /// Storage: `PolkadotXcm::VersionDiscoveryQueue` (r:1 w:1) + /// Proof: `PolkadotXcm::VersionDiscoveryQueue` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `PolkadotXcm::SafeXcmVersion` (r:1 w:0) + /// Proof: `PolkadotXcm::SafeXcmVersion` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `ParachainSystem::HostConfiguration` (r:1 w:0) + /// Proof: `ParachainSystem::HostConfiguration` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `ParachainSystem::PendingUpwardMessages` (r:1 w:1) + /// Proof: `ParachainSystem::PendingUpwardMessages` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + fn notify_current_targets() -> Weight { + // Proof Size summary in bytes: + // Measured: `142` + // Estimated: `6082` + // Minimum execution time: 30_762_000 picoseconds. + Weight::from_parts(31_481_000, 0) + .saturating_add(Weight::from_parts(0, 6082)) + .saturating_add(T::DbWeight::get().reads(7)) + .saturating_add(T::DbWeight::get().writes(3)) + } + /// Storage: `PolkadotXcm::VersionNotifyTargets` (r:3 w:0) + /// Proof: `PolkadotXcm::VersionNotifyTargets` (`max_values`: None, `max_size`: None, mode: `Measured`) + fn notify_target_migration_fail() -> Weight { + // Proof Size summary in bytes: + // Measured: `172` + // Estimated: `8587` + // Minimum execution time: 9_025_000 picoseconds. + Weight::from_parts(9_423_000, 0) + .saturating_add(Weight::from_parts(0, 8587)) + .saturating_add(T::DbWeight::get().reads(3)) + } + /// Storage: `PolkadotXcm::VersionNotifyTargets` (r:4 w:2) + /// Proof: `PolkadotXcm::VersionNotifyTargets` (`max_values`: None, `max_size`: None, mode: `Measured`) + fn migrate_version_notify_targets() -> Weight { + // Proof Size summary in bytes: + // Measured: `140` + // Estimated: `11030` + // Minimum execution time: 17_550_000 picoseconds. + Weight::from_parts(17_939_000, 0) + .saturating_add(Weight::from_parts(0, 11030)) + .saturating_add(T::DbWeight::get().reads(4)) + .saturating_add(T::DbWeight::get().writes(2)) + } + /// Storage: `PolkadotXcm::VersionNotifyTargets` (r:4 w:2) + /// Proof: `PolkadotXcm::VersionNotifyTargets` (`max_values`: None, `max_size`: None, mode: `Measured`) + /// Storage: `PolkadotXcm::SupportedVersion` (r:1 w:0) + /// Proof: `PolkadotXcm::SupportedVersion` (`max_values`: None, `max_size`: None, mode: `Measured`) + /// Storage: `PolkadotXcm::VersionDiscoveryQueue` (r:1 w:1) + /// Proof: `PolkadotXcm::VersionDiscoveryQueue` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `PolkadotXcm::SafeXcmVersion` (r:1 w:0) + /// Proof: `PolkadotXcm::SafeXcmVersion` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `ParachainSystem::HostConfiguration` (r:1 w:0) + /// Proof: `ParachainSystem::HostConfiguration` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `ParachainSystem::PendingUpwardMessages` (r:1 w:1) + /// Proof: `ParachainSystem::PendingUpwardMessages` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + fn migrate_and_notify_old_targets() -> Weight { + // Proof Size summary in bytes: + // Measured: `146` + // Estimated: `11036` + // Minimum execution time: 36_922_000 picoseconds. + Weight::from_parts(37_709_000, 0) + .saturating_add(Weight::from_parts(0, 11036)) + .saturating_add(T::DbWeight::get().reads(9)) + .saturating_add(T::DbWeight::get().writes(4)) + } +} diff --git a/cumulus/parachains/runtimes/assets/asset-hub-polkadot/src/weights/paritydb_weights.rs b/cumulus/parachains/runtimes/assets/asset-hub-polkadot/src/weights/paritydb_weights.rs new file mode 100644 index 000000000000..25679703831a --- /dev/null +++ b/cumulus/parachains/runtimes/assets/asset-hub-polkadot/src/weights/paritydb_weights.rs @@ -0,0 +1,63 @@ +// This file is part of Substrate. + +// 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. + +pub mod constants { + use frame_support::{ + parameter_types, + weights::{constants, RuntimeDbWeight}, + }; + + parameter_types! { + /// `ParityDB` can be enabled with a feature flag, but is still experimental. These weights + /// are available for brave runtime engineers who may want to try this out as default. + pub const ParityDbWeight: RuntimeDbWeight = RuntimeDbWeight { + read: 8_000 * constants::WEIGHT_REF_TIME_PER_NANOS, + write: 50_000 * constants::WEIGHT_REF_TIME_PER_NANOS, + }; + } + + #[cfg(test)] + mod test_db_weights { + use super::constants::ParityDbWeight as W; + use frame_support::weights::constants; + + /// Checks that all weights exist and have sane values. + // NOTE: If this test fails but you are sure that the generated values are fine, + // you can delete it. + #[test] + fn sane() { + // At least 1 µs. + assert!( + W::get().reads(1).ref_time() >= constants::WEIGHT_REF_TIME_PER_MICROS, + "Read weight should be at least 1 µs." + ); + assert!( + W::get().writes(1).ref_time() >= constants::WEIGHT_REF_TIME_PER_MICROS, + "Write weight should be at least 1 µs." + ); + // At most 1 ms. + assert!( + W::get().reads(1).ref_time() <= constants::WEIGHT_REF_TIME_PER_MILLIS, + "Read weight should be at most 1 ms." + ); + assert!( + W::get().writes(1).ref_time() <= constants::WEIGHT_REF_TIME_PER_MILLIS, + "Write weight should be at most 1 ms." + ); + } + } +} diff --git a/cumulus/parachains/runtimes/assets/asset-hub-polkadot/src/weights/rocksdb_weights.rs b/cumulus/parachains/runtimes/assets/asset-hub-polkadot/src/weights/rocksdb_weights.rs new file mode 100644 index 000000000000..3dd817aa6f13 --- /dev/null +++ b/cumulus/parachains/runtimes/assets/asset-hub-polkadot/src/weights/rocksdb_weights.rs @@ -0,0 +1,63 @@ +// This file is part of Substrate. + +// 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. + +pub mod constants { + use frame_support::{ + parameter_types, + weights::{constants, RuntimeDbWeight}, + }; + + parameter_types! { + /// By default, Substrate uses `RocksDB`, so this will be the weight used throughout + /// the runtime. + pub const RocksDbWeight: RuntimeDbWeight = RuntimeDbWeight { + read: 25_000 * constants::WEIGHT_REF_TIME_PER_NANOS, + write: 100_000 * constants::WEIGHT_REF_TIME_PER_NANOS, + }; + } + + #[cfg(test)] + mod test_db_weights { + use super::constants::RocksDbWeight as W; + use frame_support::weights::constants; + + /// Checks that all weights exist and have sane values. + // NOTE: If this test fails but you are sure that the generated values are fine, + // you can delete it. + #[test] + fn sane() { + // At least 1 µs. + assert!( + W::get().reads(1).ref_time() >= constants::WEIGHT_REF_TIME_PER_MICROS, + "Read weight should be at least 1 µs." + ); + assert!( + W::get().writes(1).ref_time() >= constants::WEIGHT_REF_TIME_PER_MICROS, + "Write weight should be at least 1 µs." + ); + // At most 1 ms. + assert!( + W::get().reads(1).ref_time() <= constants::WEIGHT_REF_TIME_PER_MILLIS, + "Read weight should be at most 1 ms." + ); + assert!( + W::get().writes(1).ref_time() <= constants::WEIGHT_REF_TIME_PER_MILLIS, + "Write weight should be at most 1 ms." + ); + } + } +} diff --git a/cumulus/parachains/runtimes/assets/asset-hub-polkadot/src/weights/xcm/mod.rs b/cumulus/parachains/runtimes/assets/asset-hub-polkadot/src/weights/xcm/mod.rs new file mode 100644 index 000000000000..eb140c4bf323 --- /dev/null +++ b/cumulus/parachains/runtimes/assets/asset-hub-polkadot/src/weights/xcm/mod.rs @@ -0,0 +1,245 @@ +// Copyright (C) Parity Technologies (UK) Ltd. +// This file is part of Cumulus. + +// Cumulus 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. + +// Cumulus 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 Cumulus. If not, see . + +mod pallet_xcm_benchmarks_fungible; +mod pallet_xcm_benchmarks_generic; + +use crate::{xcm_config::MaxAssetsIntoHolding, Runtime}; +use frame_support::weights::Weight; +use pallet_xcm_benchmarks_fungible::WeightInfo as XcmFungibleWeight; +use pallet_xcm_benchmarks_generic::WeightInfo as XcmGeneric; +use sp_std::prelude::*; +use xcm::{latest::prelude::*, DoubleEncoded}; + +trait WeighMultiAssets { + fn weigh_multi_assets(&self, weight: Weight) -> Weight; +} + +const MAX_ASSETS: u64 = 100; + +impl WeighMultiAssets for MultiAssetFilter { + fn weigh_multi_assets(&self, weight: Weight) -> Weight { + match self { + Self::Definite(assets) => weight.saturating_mul(assets.inner().iter().count() as u64), + Self::Wild(asset) => match asset { + All => weight.saturating_mul(MAX_ASSETS), + AllOf { fun, .. } => match fun { + WildFungibility::Fungible => weight, + // Magic number 2 has to do with the fact that we could have up to 2 times + // MaxAssetsIntoHolding in the worst-case scenario. + WildFungibility::NonFungible => + weight.saturating_mul((MaxAssetsIntoHolding::get() * 2) as u64), + }, + AllCounted(count) => weight.saturating_mul(MAX_ASSETS.min(*count as u64)), + AllOfCounted { count, .. } => weight.saturating_mul(MAX_ASSETS.min(*count as u64)), + }, + } + } +} + +impl WeighMultiAssets for MultiAssets { + fn weigh_multi_assets(&self, weight: Weight) -> Weight { + weight.saturating_mul(self.inner().iter().count() as u64) + } +} + +pub struct AssetHubPolkadotXcmWeight(core::marker::PhantomData); +impl XcmWeightInfo for AssetHubPolkadotXcmWeight { + fn withdraw_asset(assets: &MultiAssets) -> Weight { + assets.weigh_multi_assets(XcmFungibleWeight::::withdraw_asset()) + } + fn reserve_asset_deposited(assets: &MultiAssets) -> Weight { + assets.weigh_multi_assets(XcmFungibleWeight::::reserve_asset_deposited()) + } + fn receive_teleported_asset(assets: &MultiAssets) -> Weight { + assets.weigh_multi_assets(XcmFungibleWeight::::receive_teleported_asset()) + } + fn query_response( + _query_id: &u64, + _response: &Response, + _max_weight: &Weight, + _querier: &Option, + ) -> Weight { + XcmGeneric::::query_response() + } + fn transfer_asset(assets: &MultiAssets, _dest: &MultiLocation) -> Weight { + assets.weigh_multi_assets(XcmFungibleWeight::::transfer_asset()) + } + fn transfer_reserve_asset( + assets: &MultiAssets, + _dest: &MultiLocation, + _xcm: &Xcm<()>, + ) -> Weight { + assets.weigh_multi_assets(XcmFungibleWeight::::transfer_reserve_asset()) + } + fn transact( + _origin_type: &OriginKind, + _require_weight_at_most: &Weight, + _call: &DoubleEncoded, + ) -> Weight { + XcmGeneric::::transact() + } + fn hrmp_new_channel_open_request( + _sender: &u32, + _max_message_size: &u32, + _max_capacity: &u32, + ) -> Weight { + // XCM Executor does not currently support HRMP channel operations + Weight::MAX + } + fn hrmp_channel_accepted(_recipient: &u32) -> Weight { + // XCM Executor does not currently support HRMP channel operations + Weight::MAX + } + fn hrmp_channel_closing(_initiator: &u32, _sender: &u32, _recipient: &u32) -> Weight { + // XCM Executor does not currently support HRMP channel operations + Weight::MAX + } + fn clear_origin() -> Weight { + XcmGeneric::::clear_origin() + } + fn descend_origin(_who: &InteriorMultiLocation) -> Weight { + XcmGeneric::::descend_origin() + } + fn report_error(_query_response_info: &QueryResponseInfo) -> Weight { + XcmGeneric::::report_error() + } + + fn deposit_asset(assets: &MultiAssetFilter, _dest: &MultiLocation) -> Weight { + assets.weigh_multi_assets(XcmFungibleWeight::::deposit_asset()) + } + fn deposit_reserve_asset( + assets: &MultiAssetFilter, + _dest: &MultiLocation, + _xcm: &Xcm<()>, + ) -> Weight { + assets.weigh_multi_assets(XcmFungibleWeight::::deposit_reserve_asset()) + } + fn exchange_asset(_give: &MultiAssetFilter, _receive: &MultiAssets, _maximal: &bool) -> Weight { + Weight::MAX + } + fn initiate_reserve_withdraw( + assets: &MultiAssetFilter, + _reserve: &MultiLocation, + _xcm: &Xcm<()>, + ) -> Weight { + assets.weigh_multi_assets(XcmFungibleWeight::::initiate_reserve_withdraw()) + } + fn initiate_teleport( + assets: &MultiAssetFilter, + _dest: &MultiLocation, + _xcm: &Xcm<()>, + ) -> Weight { + assets.weigh_multi_assets(XcmFungibleWeight::::initiate_teleport()) + } + fn report_holding(_response_info: &QueryResponseInfo, _assets: &MultiAssetFilter) -> Weight { + XcmGeneric::::report_holding() + } + fn buy_execution(_fees: &MultiAsset, _weight_limit: &WeightLimit) -> Weight { + XcmGeneric::::buy_execution() + } + fn refund_surplus() -> Weight { + XcmGeneric::::refund_surplus() + } + fn set_error_handler(_xcm: &Xcm) -> Weight { + XcmGeneric::::set_error_handler() + } + fn set_appendix(_xcm: &Xcm) -> Weight { + XcmGeneric::::set_appendix() + } + fn clear_error() -> Weight { + XcmGeneric::::clear_error() + } + fn claim_asset(_assets: &MultiAssets, _ticket: &MultiLocation) -> Weight { + XcmGeneric::::claim_asset() + } + fn trap(_code: &u64) -> Weight { + XcmGeneric::::trap() + } + fn subscribe_version(_query_id: &QueryId, _max_response_weight: &Weight) -> Weight { + XcmGeneric::::subscribe_version() + } + fn unsubscribe_version() -> Weight { + XcmGeneric::::unsubscribe_version() + } + fn burn_asset(assets: &MultiAssets) -> Weight { + assets.weigh_multi_assets(XcmGeneric::::burn_asset()) + } + fn expect_asset(assets: &MultiAssets) -> Weight { + assets.weigh_multi_assets(XcmGeneric::::expect_asset()) + } + fn expect_origin(_origin: &Option) -> Weight { + XcmGeneric::::expect_origin() + } + fn expect_error(_error: &Option<(u32, XcmError)>) -> Weight { + XcmGeneric::::expect_error() + } + fn expect_transact_status(_transact_status: &MaybeErrorCode) -> Weight { + XcmGeneric::::expect_transact_status() + } + fn query_pallet(_module_name: &Vec, _response_info: &QueryResponseInfo) -> Weight { + XcmGeneric::::query_pallet() + } + fn expect_pallet( + _index: &u32, + _name: &Vec, + _module_name: &Vec, + _crate_major: &u32, + _min_crate_minor: &u32, + ) -> Weight { + XcmGeneric::::expect_pallet() + } + fn report_transact_status(_response_info: &QueryResponseInfo) -> Weight { + XcmGeneric::::report_transact_status() + } + fn clear_transact_status() -> Weight { + XcmGeneric::::clear_transact_status() + } + fn universal_origin(_: &Junction) -> Weight { + Weight::MAX + } + fn export_message(_: &NetworkId, _: &Junctions, _: &Xcm<()>) -> Weight { + Weight::MAX + } + fn lock_asset(_: &MultiAsset, _: &MultiLocation) -> Weight { + Weight::MAX + } + fn unlock_asset(_: &MultiAsset, _: &MultiLocation) -> Weight { + Weight::MAX + } + fn note_unlockable(_: &MultiAsset, _: &MultiLocation) -> Weight { + Weight::MAX + } + fn request_unlock(_: &MultiAsset, _: &MultiLocation) -> Weight { + Weight::MAX + } + fn set_fees_mode(_: &bool) -> Weight { + XcmGeneric::::set_fees_mode() + } + fn set_topic(_topic: &[u8; 32]) -> Weight { + XcmGeneric::::set_topic() + } + fn clear_topic() -> Weight { + XcmGeneric::::clear_topic() + } + fn alias_origin(_: &MultiLocation) -> Weight { + // XCM Executor does not currently support alias origin operations + Weight::MAX + } + fn unpaid_execution(_: &WeightLimit, _: &Option) -> Weight { + XcmGeneric::::unpaid_execution() + } +} diff --git a/cumulus/parachains/runtimes/assets/asset-hub-polkadot/src/weights/xcm/pallet_xcm_benchmarks_fungible.rs b/cumulus/parachains/runtimes/assets/asset-hub-polkadot/src/weights/xcm/pallet_xcm_benchmarks_fungible.rs new file mode 100644 index 000000000000..96d86ec423f2 --- /dev/null +++ b/cumulus/parachains/runtimes/assets/asset-hub-polkadot/src/weights/xcm/pallet_xcm_benchmarks_fungible.rs @@ -0,0 +1,188 @@ +// Copyright (C) Parity Technologies (UK) Ltd. +// This file is part of Cumulus. + +// Cumulus 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. + +// Cumulus 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 Cumulus. 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-09-27, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! WORST CASE MAP SIZE: `1000000` +//! HOSTNAME: `runner-nbnwcyh-project-674-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz` +//! WASM-EXECUTION: Compiled, CHAIN: Some("asset-hub-polkadot-dev"), DB CACHE: 1024 + +// Executed Command: +// target/production/polkadot-parachain +// benchmark +// pallet +// --steps=50 +// --repeat=20 +// --extrinsic=* +// --wasm-execution=compiled +// --heap-pages=4096 +// --json-file=/builds/parity/mirrors/polkadot-sdk/.git/.artifacts/bench.json +// --pallet=pallet_xcm_benchmarks::fungible +// --chain=asset-hub-polkadot-dev +// --header=./cumulus/file_header.txt +// --template=./cumulus/templates/xcm-bench-template.hbs +// --output=./cumulus/parachains/runtimes/assets/asset-hub-polkadot/src/weights/xcm/ + +#![cfg_attr(rustfmt, rustfmt_skip)] +#![allow(unused_parens)] +#![allow(unused_imports)] + +use frame_support::{traits::Get, weights::Weight}; +use sp_std::marker::PhantomData; + +/// Weights for `pallet_xcm_benchmarks::fungible`. +pub struct WeightInfo(PhantomData); +impl WeightInfo { + // Storage: `System::Account` (r:1 w:1) + // Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`) + pub fn withdraw_asset() -> Weight { + // Proof Size summary in bytes: + // Measured: `101` + // Estimated: `3593` + // Minimum execution time: 25_903_000 picoseconds. + Weight::from_parts(26_768_000, 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`) + pub fn transfer_asset() -> Weight { + // Proof Size summary in bytes: + // Measured: `101` + // Estimated: `6196` + // Minimum execution time: 51_042_000 picoseconds. + Weight::from_parts(51_939_000, 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: `ParachainInfo::ParachainId` (r:1 w:0) + // Proof: `ParachainInfo::ParachainId` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`) + // Storage: `PolkadotXcm::SupportedVersion` (r:1 w:0) + // Proof: `PolkadotXcm::SupportedVersion` (`max_values`: None, `max_size`: None, mode: `Measured`) + // Storage: `PolkadotXcm::VersionDiscoveryQueue` (r:1 w:1) + // Proof: `PolkadotXcm::VersionDiscoveryQueue` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + // Storage: `PolkadotXcm::SafeXcmVersion` (r:1 w:0) + // Proof: `PolkadotXcm::SafeXcmVersion` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + // Storage: `ParachainSystem::HostConfiguration` (r:1 w:0) + // Proof: `ParachainSystem::HostConfiguration` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + // Storage: `ParachainSystem::PendingUpwardMessages` (r:1 w:1) + // Proof: `ParachainSystem::PendingUpwardMessages` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + pub fn transfer_reserve_asset() -> Weight { + // Proof Size summary in bytes: + // Measured: `176` + // Estimated: `6196` + // Minimum execution time: 74_626_000 picoseconds. + Weight::from_parts(75_963_000, 6196) + .saturating_add(T::DbWeight::get().reads(8)) + .saturating_add(T::DbWeight::get().writes(4)) + } + // Storage: `Benchmark::Override` (r:0 w:0) + // Proof: `Benchmark::Override` (`max_values`: None, `max_size`: None, mode: `Measured`) + pub fn reserve_asset_deposited() -> Weight { + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 18_446_744_073_709_551_000 picoseconds. + Weight::from_parts(18_446_744_073_709_551_000, 0) + } + // Storage: `ParachainInfo::ParachainId` (r:1 w:0) + // Proof: `ParachainInfo::ParachainId` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`) + // Storage: `PolkadotXcm::SupportedVersion` (r:1 w:0) + // Proof: `PolkadotXcm::SupportedVersion` (`max_values`: None, `max_size`: None, mode: `Measured`) + // Storage: `PolkadotXcm::VersionDiscoveryQueue` (r:1 w:1) + // Proof: `PolkadotXcm::VersionDiscoveryQueue` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + // Storage: `PolkadotXcm::SafeXcmVersion` (r:1 w:0) + // Proof: `PolkadotXcm::SafeXcmVersion` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + // Storage: `ParachainSystem::HostConfiguration` (r:1 w:0) + // Proof: `ParachainSystem::HostConfiguration` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + // Storage: `ParachainSystem::PendingUpwardMessages` (r:1 w:1) + // Proof: `ParachainSystem::PendingUpwardMessages` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + pub fn initiate_reserve_withdraw() -> Weight { + // Proof Size summary in bytes: + // Measured: `75` + // Estimated: `3540` + // Minimum execution time: 480_030_000 picoseconds. + Weight::from_parts(486_039_000, 3540) + .saturating_add(T::DbWeight::get().reads(6)) + .saturating_add(T::DbWeight::get().writes(2)) + } + pub fn receive_teleported_asset() -> Weight { + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 3_936_000 picoseconds. + Weight::from_parts(4_033_000, 0) + } + // Storage: `System::Account` (r:1 w:1) + // Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`) + pub fn deposit_asset() -> Weight { + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `3593` + // Minimum execution time: 26_274_000 picoseconds. + Weight::from_parts(26_609_000, 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: `ParachainInfo::ParachainId` (r:1 w:0) + // Proof: `ParachainInfo::ParachainId` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`) + // Storage: `PolkadotXcm::SupportedVersion` (r:1 w:0) + // Proof: `PolkadotXcm::SupportedVersion` (`max_values`: None, `max_size`: None, mode: `Measured`) + // Storage: `PolkadotXcm::VersionDiscoveryQueue` (r:1 w:1) + // Proof: `PolkadotXcm::VersionDiscoveryQueue` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + // Storage: `PolkadotXcm::SafeXcmVersion` (r:1 w:0) + // Proof: `PolkadotXcm::SafeXcmVersion` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + // Storage: `ParachainSystem::HostConfiguration` (r:1 w:0) + // Proof: `ParachainSystem::HostConfiguration` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + // Storage: `ParachainSystem::PendingUpwardMessages` (r:1 w:1) + // Proof: `ParachainSystem::PendingUpwardMessages` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + pub fn deposit_reserve_asset() -> Weight { + // Proof Size summary in bytes: + // Measured: `75` + // Estimated: `3593` + // Minimum execution time: 52_888_000 picoseconds. + Weight::from_parts(53_835_000, 3593) + .saturating_add(T::DbWeight::get().reads(7)) + .saturating_add(T::DbWeight::get().writes(3)) + } + // Storage: `ParachainInfo::ParachainId` (r:1 w:0) + // Proof: `ParachainInfo::ParachainId` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`) + // Storage: `PolkadotXcm::SupportedVersion` (r:1 w:0) + // Proof: `PolkadotXcm::SupportedVersion` (`max_values`: None, `max_size`: None, mode: `Measured`) + // Storage: `PolkadotXcm::VersionDiscoveryQueue` (r:1 w:1) + // Proof: `PolkadotXcm::VersionDiscoveryQueue` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + // Storage: `PolkadotXcm::SafeXcmVersion` (r:1 w:0) + // Proof: `PolkadotXcm::SafeXcmVersion` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + // Storage: `ParachainSystem::HostConfiguration` (r:1 w:0) + // Proof: `ParachainSystem::HostConfiguration` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + // Storage: `ParachainSystem::PendingUpwardMessages` (r:1 w:1) + // Proof: `ParachainSystem::PendingUpwardMessages` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + pub fn initiate_teleport() -> Weight { + // Proof Size summary in bytes: + // Measured: `75` + // Estimated: `3540` + // Minimum execution time: 33_395_000 picoseconds. + Weight::from_parts(33_827_000, 3540) + .saturating_add(T::DbWeight::get().reads(6)) + .saturating_add(T::DbWeight::get().writes(2)) + } +} diff --git a/cumulus/parachains/runtimes/assets/asset-hub-polkadot/src/weights/xcm/pallet_xcm_benchmarks_generic.rs b/cumulus/parachains/runtimes/assets/asset-hub-polkadot/src/weights/xcm/pallet_xcm_benchmarks_generic.rs new file mode 100644 index 000000000000..061992691a60 --- /dev/null +++ b/cumulus/parachains/runtimes/assets/asset-hub-polkadot/src/weights/xcm/pallet_xcm_benchmarks_generic.rs @@ -0,0 +1,329 @@ +// Copyright (C) Parity Technologies (UK) Ltd. +// This file is part of Cumulus. + +// Cumulus 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. + +// Cumulus 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 Cumulus. 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-07-31, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! WORST CASE MAP SIZE: `1000000` +//! HOSTNAME: `runner-ynta1nyy-project-238-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz` +//! EXECUTION: , WASM-EXECUTION: Compiled, CHAIN: Some("asset-hub-polkadot-dev"), DB CACHE: 1024 + +// Executed Command: +// ./target/production/polkadot-parachain +// benchmark +// pallet +// --template=./templates/xcm-bench-template.hbs +// --chain=asset-hub-polkadot-dev +// --wasm-execution=compiled +// --pallet=pallet_xcm_benchmarks::generic +// --no-storage-info +// --no-median-slopes +// --no-min-squares +// --extrinsic=* +// --steps=50 +// --repeat=20 +// --json +// --header=./file_header.txt +// --output=./parachains/runtimes/assets/asset-hub-polkadot/src/weights/xcm/pallet_xcm_benchmarks_generic.rs + +#![cfg_attr(rustfmt, rustfmt_skip)] +#![allow(unused_parens)] +#![allow(unused_imports)] + +use frame_support::{traits::Get, weights::Weight}; +use sp_std::marker::PhantomData; + +/// Weights for `pallet_xcm_benchmarks::generic`. +pub struct WeightInfo(PhantomData); +impl WeightInfo { + // Storage: `ParachainInfo::ParachainId` (r:1 w:0) + // Proof: `ParachainInfo::ParachainId` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`) + // Storage: `PolkadotXcm::SupportedVersion` (r:1 w:0) + // Proof: `PolkadotXcm::SupportedVersion` (`max_values`: None, `max_size`: None, mode: `Measured`) + // Storage: `PolkadotXcm::VersionDiscoveryQueue` (r:1 w:1) + // Proof: `PolkadotXcm::VersionDiscoveryQueue` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + // Storage: `PolkadotXcm::SafeXcmVersion` (r:1 w:0) + // Proof: `PolkadotXcm::SafeXcmVersion` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + // Storage: `ParachainSystem::HostConfiguration` (r:1 w:0) + // Proof: `ParachainSystem::HostConfiguration` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + // Storage: `ParachainSystem::PendingUpwardMessages` (r:1 w:1) + // Proof: `ParachainSystem::PendingUpwardMessages` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + pub fn report_holding() -> Weight { + // Proof Size summary in bytes: + // Measured: `75` + // Estimated: `3540` + // Minimum execution time: 425_235_000 picoseconds. + Weight::from_parts(432_935_000, 3540) + .saturating_add(T::DbWeight::get().reads(6)) + .saturating_add(T::DbWeight::get().writes(2)) + } + pub fn buy_execution() -> Weight { + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 4_070_000 picoseconds. + Weight::from_parts(4_329_000, 0) + } + // Storage: `PolkadotXcm::Queries` (r:1 w:0) + // Proof: `PolkadotXcm::Queries` (`max_values`: None, `max_size`: None, mode: `Measured`) + pub fn query_response() -> Weight { + // Proof Size summary in bytes: + // Measured: `69` + // Estimated: `3534` + // Minimum execution time: 11_464_000 picoseconds. + Weight::from_parts(11_829_000, 3534) + .saturating_add(T::DbWeight::get().reads(1)) + } + pub fn transact() -> Weight { + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 13_574_000 picoseconds. + Weight::from_parts(14_021_000, 0) + } + pub fn refund_surplus() -> Weight { + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 4_276_000 picoseconds. + Weight::from_parts(4_479_000, 0) + } + pub fn set_error_handler() -> Weight { + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 2_833_000 picoseconds. + Weight::from_parts(2_939_000, 0) + } + pub fn set_appendix() -> Weight { + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 2_797_000 picoseconds. + Weight::from_parts(2_901_000, 0) + } + pub fn clear_error() -> Weight { + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 2_855_000 picoseconds. + Weight::from_parts(2_961_000, 0) + } + pub fn descend_origin() -> Weight { + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 3_589_000 picoseconds. + Weight::from_parts(3_720_000, 0) + } + pub fn clear_origin() -> Weight { + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 2_786_000 picoseconds. + Weight::from_parts(2_889_000, 0) + } + // Storage: `ParachainInfo::ParachainId` (r:1 w:0) + // Proof: `ParachainInfo::ParachainId` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`) + // Storage: `PolkadotXcm::SupportedVersion` (r:1 w:0) + // Proof: `PolkadotXcm::SupportedVersion` (`max_values`: None, `max_size`: None, mode: `Measured`) + // Storage: `PolkadotXcm::VersionDiscoveryQueue` (r:1 w:1) + // Proof: `PolkadotXcm::VersionDiscoveryQueue` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + // Storage: `PolkadotXcm::SafeXcmVersion` (r:1 w:0) + // Proof: `PolkadotXcm::SafeXcmVersion` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + // Storage: `ParachainSystem::HostConfiguration` (r:1 w:0) + // Proof: `ParachainSystem::HostConfiguration` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + // Storage: `ParachainSystem::PendingUpwardMessages` (r:1 w:1) + // Proof: `ParachainSystem::PendingUpwardMessages` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + pub fn report_error() -> Weight { + // Proof Size summary in bytes: + // Measured: `75` + // Estimated: `3540` + // Minimum execution time: 25_740_000 picoseconds. + Weight::from_parts(26_355_000, 3540) + .saturating_add(T::DbWeight::get().reads(6)) + .saturating_add(T::DbWeight::get().writes(2)) + } + // Storage: `PolkadotXcm::AssetTraps` (r:1 w:1) + // Proof: `PolkadotXcm::AssetTraps` (`max_values`: None, `max_size`: None, mode: `Measured`) + pub fn claim_asset() -> Weight { + // Proof Size summary in bytes: + // Measured: `126` + // Estimated: `3591` + // Minimum execution time: 16_206_000 picoseconds. + Weight::from_parts(16_651_000, 3591) + .saturating_add(T::DbWeight::get().reads(1)) + .saturating_add(T::DbWeight::get().writes(1)) + } + pub fn trap() -> Weight { + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 2_819_000 picoseconds. + Weight::from_parts(2_944_000, 0) + } + // Storage: `PolkadotXcm::VersionNotifyTargets` (r:1 w:1) + // Proof: `PolkadotXcm::VersionNotifyTargets` (`max_values`: None, `max_size`: None, mode: `Measured`) + // Storage: `PolkadotXcm::SupportedVersion` (r:1 w:0) + // Proof: `PolkadotXcm::SupportedVersion` (`max_values`: None, `max_size`: None, mode: `Measured`) + // Storage: `PolkadotXcm::VersionDiscoveryQueue` (r:1 w:1) + // Proof: `PolkadotXcm::VersionDiscoveryQueue` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + // Storage: `PolkadotXcm::SafeXcmVersion` (r:1 w:0) + // Proof: `PolkadotXcm::SafeXcmVersion` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + // Storage: `ParachainSystem::HostConfiguration` (r:1 w:0) + // Proof: `ParachainSystem::HostConfiguration` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + // Storage: `ParachainSystem::PendingUpwardMessages` (r:1 w:1) + // Proof: `ParachainSystem::PendingUpwardMessages` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + pub fn subscribe_version() -> Weight { + // Proof Size summary in bytes: + // Measured: `75` + // Estimated: `3540` + // Minimum execution time: 28_216_000 picoseconds. + Weight::from_parts(28_878_000, 3540) + .saturating_add(T::DbWeight::get().reads(6)) + .saturating_add(T::DbWeight::get().writes(3)) + } + // Storage: `PolkadotXcm::VersionNotifyTargets` (r:0 w:1) + // Proof: `PolkadotXcm::VersionNotifyTargets` (`max_values`: None, `max_size`: None, mode: `Measured`) + pub fn unsubscribe_version() -> Weight { + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 4_795_000 picoseconds. + Weight::from_parts(5_008_000, 0) + .saturating_add(T::DbWeight::get().writes(1)) + } + pub fn burn_asset() -> Weight { + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 135_205_000 picoseconds. + Weight::from_parts(140_623_000, 0) + } + pub fn expect_asset() -> Weight { + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 12_791_000 picoseconds. + Weight::from_parts(13_114_000, 0) + } + pub fn expect_origin() -> Weight { + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 3_000_000 picoseconds. + Weight::from_parts(3_091_000, 0) + } + pub fn expect_error() -> Weight { + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 2_828_000 picoseconds. + Weight::from_parts(2_947_000, 0) + } + pub fn expect_transact_status() -> Weight { + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 2_980_000 picoseconds. + Weight::from_parts(3_123_000, 0) + } + // Storage: `ParachainInfo::ParachainId` (r:1 w:0) + // Proof: `ParachainInfo::ParachainId` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`) + // Storage: `PolkadotXcm::SupportedVersion` (r:1 w:0) + // Proof: `PolkadotXcm::SupportedVersion` (`max_values`: None, `max_size`: None, mode: `Measured`) + // Storage: `PolkadotXcm::VersionDiscoveryQueue` (r:1 w:1) + // Proof: `PolkadotXcm::VersionDiscoveryQueue` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + // Storage: `PolkadotXcm::SafeXcmVersion` (r:1 w:0) + // Proof: `PolkadotXcm::SafeXcmVersion` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + // Storage: `ParachainSystem::HostConfiguration` (r:1 w:0) + // Proof: `ParachainSystem::HostConfiguration` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + // Storage: `ParachainSystem::PendingUpwardMessages` (r:1 w:1) + // Proof: `ParachainSystem::PendingUpwardMessages` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + pub fn query_pallet() -> Weight { + // Proof Size summary in bytes: + // Measured: `75` + // Estimated: `3540` + // Minimum execution time: 29_672_000 picoseconds. + Weight::from_parts(30_318_000, 3540) + .saturating_add(T::DbWeight::get().reads(6)) + .saturating_add(T::DbWeight::get().writes(2)) + } + pub fn expect_pallet() -> Weight { + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 5_421_000 picoseconds. + Weight::from_parts(5_614_000, 0) + } + // Storage: `ParachainInfo::ParachainId` (r:1 w:0) + // Proof: `ParachainInfo::ParachainId` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`) + // Storage: `PolkadotXcm::SupportedVersion` (r:1 w:0) + // Proof: `PolkadotXcm::SupportedVersion` (`max_values`: None, `max_size`: None, mode: `Measured`) + // Storage: `PolkadotXcm::VersionDiscoveryQueue` (r:1 w:1) + // Proof: `PolkadotXcm::VersionDiscoveryQueue` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + // Storage: `PolkadotXcm::SafeXcmVersion` (r:1 w:0) + // Proof: `PolkadotXcm::SafeXcmVersion` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + // Storage: `ParachainSystem::HostConfiguration` (r:1 w:0) + // Proof: `ParachainSystem::HostConfiguration` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + // Storage: `ParachainSystem::PendingUpwardMessages` (r:1 w:1) + // Proof: `ParachainSystem::PendingUpwardMessages` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + pub fn report_transact_status() -> Weight { + // Proof Size summary in bytes: + // Measured: `75` + // Estimated: `3540` + // Minimum execution time: 25_621_000 picoseconds. + Weight::from_parts(26_486_000, 3540) + .saturating_add(T::DbWeight::get().reads(6)) + .saturating_add(T::DbWeight::get().writes(2)) + } + pub fn clear_transact_status() -> Weight { + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 2_873_000 picoseconds. + Weight::from_parts(2_973_000, 0) + } + pub fn set_topic() -> Weight { + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 2_861_000 picoseconds. + Weight::from_parts(2_923_000, 0) + } + pub fn clear_topic() -> Weight { + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 2_845_000 picoseconds. + Weight::from_parts(2_970_000, 0) + } + pub fn set_fees_mode() -> Weight { + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 2_773_000 picoseconds. + Weight::from_parts(2_922_000, 0) + } + pub fn unpaid_execution() -> Weight { + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 2_980_000 picoseconds. + Weight::from_parts(3_095_000, 0) + } +} diff --git a/cumulus/parachains/runtimes/assets/asset-hub-polkadot/src/xcm_config.rs b/cumulus/parachains/runtimes/assets/asset-hub-polkadot/src/xcm_config.rs new file mode 100644 index 000000000000..91663a75970c --- /dev/null +++ b/cumulus/parachains/runtimes/assets/asset-hub-polkadot/src/xcm_config.rs @@ -0,0 +1,553 @@ +// 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::{ + AccountId, AllPalletsWithSystem, Assets, Authorship, Balance, Balances, ForeignAssets, + ParachainInfo, ParachainSystem, PolkadotXcm, Runtime, RuntimeCall, RuntimeEvent, RuntimeOrigin, + TransactionByteFee, TrustBackedAssetsInstance, WeightToFee, XcmpQueue, CENTS, +}; +use assets_common::matching::{FromSiblingParachain, IsForeignConcreteAsset}; +use frame_support::{ + match_types, parameter_types, + traits::{ConstU32, Contains, Everything, Nothing, PalletInfoAccess}, +}; +use frame_system::EnsureRoot; +use pallet_xcm::XcmPassthrough; +use parachains_common::{ + impls::ToStakingPot, + xcm_config::{AssetFeeAsExistentialDepositMultiplier, ConcreteAssetFromSystem}, +}; +use polkadot_parachain_primitives::primitives::Sibling; +use polkadot_runtime_common::xcm_sender::ExponentialPrice; +use sp_runtime::traits::ConvertInto; +use xcm::latest::prelude::*; +use xcm_builder::{ + AccountId32Aliases, AllowExplicitUnpaidExecutionFrom, AllowKnownQueryResponses, + AllowSubscriptionsFrom, AllowTopLevelPaidExecutionFrom, CurrencyAdapter, + DenyReserveTransferToRelayChain, DenyThenTry, DescribeFamily, DescribePalletTerminal, + EnsureXcmOrigin, FungiblesAdapter, HashedDescription, IsConcrete, LocalMint, NoChecking, + ParentAsSuperuser, ParentIsPreset, RelayChainAsNative, SiblingParachainAsNative, + SiblingParachainConvertsVia, SignedAccountId32AsNative, SignedToAccountId32, + SovereignSignedViaLocation, StartsWith, StartsWithExplicitGlobalConsensus, TakeWeightCredit, + TrailingSetTopicAsId, UsingComponents, WeightInfoBounds, WithComputedOrigin, WithUniqueTopic, +}; +use xcm_executor::{traits::WithOriginFilter, XcmExecutor}; + +parameter_types! { + pub const DotLocation: MultiLocation = MultiLocation::parent(); + pub const RelayNetwork: Option = Some(NetworkId::Polkadot); + pub RelayChainOrigin: RuntimeOrigin = cumulus_pallet_xcm::Origin::Relay.into(); + pub UniversalLocation: InteriorMultiLocation = + X2(GlobalConsensus(RelayNetwork::get().unwrap()), Parachain(ParachainInfo::parachain_id().into())); + pub UniversalLocationNetworkId: NetworkId = UniversalLocation::get().global_consensus().unwrap(); + pub TrustBackedAssetsPalletLocation: MultiLocation = + PalletInstance(::index() as u8).into(); + pub CheckingAccount: AccountId = PolkadotXcm::check_account(); + pub FellowshipLocation: MultiLocation = MultiLocation::new(1, Parachain(1001)); + pub const GovernanceLocation: MultiLocation = MultiLocation::parent(); +} + +/// Type for specifying how a `MultiLocation` can be converted into an `AccountId`. This is used +/// when determining ownership of accounts for asset transacting and when attempting to use XCM +/// `Transact` in order to determine the dispatch Origin. +pub type LocationToAccountId = ( + // The parent (Relay-chain) origin converts to the parent `AccountId`. + ParentIsPreset, + // Sibling parachain origins convert to AccountId via the `ParaId::into`. + SiblingParachainConvertsVia, + // Straight up local `AccountId32` origins just alias directly to `AccountId`. + AccountId32Aliases, + // Foreign chain account alias into local accounts according to a hash of their standard + // description. + HashedDescription>, +); + +/// Means for transacting the native currency on this chain. +pub type CurrencyTransactor = CurrencyAdapter< + // Use this currency: + Balances, + // Use this currency when it is a fungible asset matching the given location or name: + IsConcrete, + // Convert an XCM MultiLocation into a local account id: + LocationToAccountId, + // Our chain's account ID type (we can't get away without mentioning it explicitly): + AccountId, + // We don't track any teleports of `Balances`. + (), +>; + +/// `AssetId`/`Balance` converter for `TrustBackedAssets`. +pub type TrustBackedAssetsConvertedConcreteId = + assets_common::TrustBackedAssetsConvertedConcreteId; + +/// Means for transacting assets besides the native currency on this chain. +pub type FungiblesTransactor = FungiblesAdapter< + // Use this fungibles implementation: + Assets, + // Use this currency when it is a fungible asset matching the given location or name: + TrustBackedAssetsConvertedConcreteId, + // Convert an XCM MultiLocation into a local account id: + LocationToAccountId, + // Our chain's account ID type (we can't get away without mentioning it explicitly): + AccountId, + // We only want to allow teleports of known assets. We use non-zero issuance as an indication + // that this asset is known. + LocalMint>, + // The account to use for tracking teleports. + CheckingAccount, +>; + +/// `AssetId/Balance` converter for `TrustBackedAssets` +pub type ForeignAssetsConvertedConcreteId = assets_common::ForeignAssetsConvertedConcreteId< + ( + // Ignore `TrustBackedAssets` explicitly + StartsWith, + // Ignore assets that start explicitly with our `GlobalConsensus(NetworkId)`, means: + // - foreign assets from our consensus should be: `MultiLocation {parents: 1, + // X*(Parachain(xyz), ..)}` + // - foreign assets outside our consensus with the same `GlobalConsensus(NetworkId)` won't + // be accepted here + StartsWithExplicitGlobalConsensus, + ), + Balance, +>; + +/// Means for transacting foreign assets from different global consensus. +pub type ForeignFungiblesTransactor = FungiblesAdapter< + // Use this fungibles implementation: + ForeignAssets, + // Use this currency when it is a fungible asset matching the given location or name: + ForeignAssetsConvertedConcreteId, + // Convert an XCM MultiLocation into a local account id: + LocationToAccountId, + // Our chain's account ID type (we can't get away without mentioning it explicitly): + AccountId, + // We dont need to check teleports here. + NoChecking, + // The account to use for tracking teleports. + CheckingAccount, +>; + +/// Means for transacting assets on this chain. +pub type AssetTransactors = (CurrencyTransactor, FungiblesTransactor, ForeignFungiblesTransactor); + +/// This is the type we use to convert an (incoming) XCM origin into a local `Origin` instance, +/// ready for dispatching a transaction with Xcm's `Transact`. There is an `OriginKind` which can +/// biases the kind of local `Origin` it will become. +pub type XcmOriginToTransactDispatchOrigin = ( + // Sovereign account converter; this attempts to derive an `AccountId` from the origin location + // using `LocationToAccountId` and then turn that into the usual `Signed` origin. Useful for + // foreign chains who want to have a local sovereign account on this chain which they control. + SovereignSignedViaLocation, + // Native converter for Relay-chain (Parent) location; will convert to a `Relay` origin when + // recognised. + RelayChainAsNative, + // Native converter for sibling Parachains; will convert to a `SiblingPara` origin when + // recognised. + SiblingParachainAsNative, + // Superuser converter for the Relay-chain (Parent) location. This will allow it to issue a + // transaction from the Root origin. + ParentAsSuperuser, + // Native signed account converter; this just converts an `AccountId32` origin into a normal + // `RuntimeOrigin::Signed` origin of the same 32-byte value. + SignedAccountId32AsNative, + // Xcm origins can be represented natively under the Xcm pallet's Xcm origin. + XcmPassthrough, +); + +parameter_types! { + pub const MaxInstructions: u32 = 100; + pub const MaxAssetsIntoHolding: u32 = 64; + pub XcmAssetFeesReceiver: Option = Authorship::author(); +} + +match_types! { + pub type ParentOrParentsPlurality: impl Contains = { + MultiLocation { parents: 1, interior: Here } | + MultiLocation { parents: 1, interior: X1(Plurality { .. }) } + }; + pub type ParentOrSiblings: impl Contains = { + MultiLocation { parents: 1, interior: Here } | + MultiLocation { parents: 1, interior: X1(_) } + }; + pub type FellowsPlurality: impl Contains = { + MultiLocation { parents: 1, interior: X2(Parachain(1001), Plurality { id: BodyId::Technical, ..}) } + }; + pub type FellowshipSalaryPallet: impl Contains = { + MultiLocation { parents: 1, interior: X2(Parachain(1001), PalletInstance(64)) } + }; + pub type AmbassadorSalaryPallet: impl Contains = { + MultiLocation { parents: 1, interior: X2(Parachain(1001), PalletInstance(74)) } + }; +} + +/// A call filter for the XCM Transact instruction. This is a temporary measure until we properly +/// account for proof size weights. +/// +/// Calls that are allowed through this filter must: +/// 1. Have a fixed weight; +/// 2. Cannot lead to another call being made; +/// 3. Have a defined proof size weight, e.g. no unbounded vecs in call parameters. +pub struct SafeCallFilter; +impl Contains for SafeCallFilter { + fn contains(call: &RuntimeCall) -> bool { + #[cfg(feature = "runtime-benchmarks")] + { + if matches!(call, RuntimeCall::System(frame_system::Call::remark_with_event { .. })) { + return true + } + } + + matches!( + call, + RuntimeCall::PolkadotXcm(pallet_xcm::Call::force_xcm_version { .. }) | + RuntimeCall::System( + frame_system::Call::set_heap_pages { .. } | + frame_system::Call::set_code { .. } | + frame_system::Call::set_code_without_checks { .. } | + frame_system::Call::kill_prefix { .. }, + ) | RuntimeCall::ParachainSystem(..) | + RuntimeCall::Timestamp(..) | + RuntimeCall::Balances(..) | + RuntimeCall::CollatorSelection( + pallet_collator_selection::Call::set_desired_candidates { .. } | + pallet_collator_selection::Call::set_candidacy_bond { .. } | + pallet_collator_selection::Call::register_as_candidate { .. } | + pallet_collator_selection::Call::leave_intent { .. } | + pallet_collator_selection::Call::set_invulnerables { .. } | + pallet_collator_selection::Call::add_invulnerable { .. } | + pallet_collator_selection::Call::remove_invulnerable { .. }, + ) | RuntimeCall::Session(pallet_session::Call::purge_keys { .. }) | + RuntimeCall::XcmpQueue(..) | + RuntimeCall::DmpQueue(..) | + RuntimeCall::Assets( + pallet_assets::Call::create { .. } | + pallet_assets::Call::force_create { .. } | + pallet_assets::Call::start_destroy { .. } | + pallet_assets::Call::destroy_accounts { .. } | + pallet_assets::Call::destroy_approvals { .. } | + pallet_assets::Call::finish_destroy { .. } | + pallet_assets::Call::mint { .. } | + pallet_assets::Call::burn { .. } | + pallet_assets::Call::transfer { .. } | + pallet_assets::Call::transfer_keep_alive { .. } | + pallet_assets::Call::force_transfer { .. } | + pallet_assets::Call::freeze { .. } | + pallet_assets::Call::thaw { .. } | + pallet_assets::Call::freeze_asset { .. } | + pallet_assets::Call::thaw_asset { .. } | + pallet_assets::Call::transfer_ownership { .. } | + pallet_assets::Call::set_team { .. } | + pallet_assets::Call::set_metadata { .. } | + pallet_assets::Call::clear_metadata { .. } | + pallet_assets::Call::force_set_metadata { .. } | + pallet_assets::Call::force_clear_metadata { .. } | + pallet_assets::Call::force_asset_status { .. } | + pallet_assets::Call::approve_transfer { .. } | + pallet_assets::Call::cancel_approval { .. } | + pallet_assets::Call::force_cancel_approval { .. } | + pallet_assets::Call::transfer_approved { .. } | + pallet_assets::Call::touch { .. } | + pallet_assets::Call::refund { .. }, + ) | RuntimeCall::ForeignAssets( + pallet_assets::Call::create { .. } | + pallet_assets::Call::force_create { .. } | + pallet_assets::Call::start_destroy { .. } | + pallet_assets::Call::destroy_accounts { .. } | + pallet_assets::Call::destroy_approvals { .. } | + pallet_assets::Call::finish_destroy { .. } | + pallet_assets::Call::mint { .. } | + pallet_assets::Call::burn { .. } | + pallet_assets::Call::transfer { .. } | + pallet_assets::Call::transfer_keep_alive { .. } | + pallet_assets::Call::force_transfer { .. } | + pallet_assets::Call::freeze { .. } | + pallet_assets::Call::thaw { .. } | + pallet_assets::Call::freeze_asset { .. } | + pallet_assets::Call::thaw_asset { .. } | + pallet_assets::Call::transfer_ownership { .. } | + pallet_assets::Call::set_team { .. } | + pallet_assets::Call::set_metadata { .. } | + pallet_assets::Call::clear_metadata { .. } | + pallet_assets::Call::force_set_metadata { .. } | + pallet_assets::Call::force_clear_metadata { .. } | + pallet_assets::Call::force_asset_status { .. } | + pallet_assets::Call::approve_transfer { .. } | + pallet_assets::Call::cancel_approval { .. } | + pallet_assets::Call::force_cancel_approval { .. } | + pallet_assets::Call::transfer_approved { .. } | + pallet_assets::Call::touch { .. } | + pallet_assets::Call::refund { .. }, + ) | RuntimeCall::Nfts( + pallet_nfts::Call::create { .. } | + pallet_nfts::Call::force_create { .. } | + pallet_nfts::Call::destroy { .. } | + pallet_nfts::Call::mint { .. } | + pallet_nfts::Call::force_mint { .. } | + pallet_nfts::Call::burn { .. } | + pallet_nfts::Call::transfer { .. } | + pallet_nfts::Call::lock_item_transfer { .. } | + pallet_nfts::Call::unlock_item_transfer { .. } | + pallet_nfts::Call::lock_collection { .. } | + pallet_nfts::Call::transfer_ownership { .. } | + pallet_nfts::Call::set_team { .. } | + pallet_nfts::Call::force_collection_owner { .. } | + pallet_nfts::Call::force_collection_config { .. } | + pallet_nfts::Call::approve_transfer { .. } | + pallet_nfts::Call::cancel_approval { .. } | + pallet_nfts::Call::clear_all_transfer_approvals { .. } | + pallet_nfts::Call::lock_item_properties { .. } | + pallet_nfts::Call::set_attribute { .. } | + pallet_nfts::Call::force_set_attribute { .. } | + pallet_nfts::Call::clear_attribute { .. } | + pallet_nfts::Call::approve_item_attributes { .. } | + pallet_nfts::Call::cancel_item_attributes_approval { .. } | + pallet_nfts::Call::set_metadata { .. } | + pallet_nfts::Call::clear_metadata { .. } | + pallet_nfts::Call::set_collection_metadata { .. } | + pallet_nfts::Call::clear_collection_metadata { .. } | + pallet_nfts::Call::set_accept_ownership { .. } | + pallet_nfts::Call::set_collection_max_supply { .. } | + pallet_nfts::Call::update_mint_settings { .. } | + pallet_nfts::Call::set_price { .. } | + pallet_nfts::Call::buy_item { .. } | + pallet_nfts::Call::pay_tips { .. } | + pallet_nfts::Call::create_swap { .. } | + pallet_nfts::Call::cancel_swap { .. } | + pallet_nfts::Call::claim_swap { .. }, + ) | RuntimeCall::Uniques( + pallet_uniques::Call::create { .. } | + pallet_uniques::Call::force_create { .. } | + pallet_uniques::Call::destroy { .. } | + pallet_uniques::Call::mint { .. } | + pallet_uniques::Call::burn { .. } | + pallet_uniques::Call::transfer { .. } | + pallet_uniques::Call::freeze { .. } | + pallet_uniques::Call::thaw { .. } | + pallet_uniques::Call::freeze_collection { .. } | + pallet_uniques::Call::thaw_collection { .. } | + pallet_uniques::Call::transfer_ownership { .. } | + pallet_uniques::Call::set_team { .. } | + pallet_uniques::Call::approve_transfer { .. } | + pallet_uniques::Call::cancel_approval { .. } | + pallet_uniques::Call::force_item_status { .. } | + pallet_uniques::Call::set_attribute { .. } | + pallet_uniques::Call::clear_attribute { .. } | + pallet_uniques::Call::set_metadata { .. } | + pallet_uniques::Call::clear_metadata { .. } | + pallet_uniques::Call::set_collection_metadata { .. } | + pallet_uniques::Call::clear_collection_metadata { .. } | + pallet_uniques::Call::set_accept_ownership { .. } | + pallet_uniques::Call::set_collection_max_supply { .. } | + pallet_uniques::Call::set_price { .. } | + pallet_uniques::Call::buy_item { .. } + ) + ) + } +} + +pub type Barrier = TrailingSetTopicAsId< + DenyThenTry< + DenyReserveTransferToRelayChain, + ( + TakeWeightCredit, + // Expected responses are OK. + AllowKnownQueryResponses, + // Allow XCMs with some computed origins to pass through. + WithComputedOrigin< + ( + // If the message is one that immediately attempts to pay for execution, then + // allow it. + AllowTopLevelPaidExecutionFrom, + // Parent, its pluralities (i.e. governance bodies), and the Fellows plurality + // get free execution. + AllowExplicitUnpaidExecutionFrom<( + ParentOrParentsPlurality, + FellowsPlurality, + FellowshipSalaryPallet, + AmbassadorSalaryPallet, + )>, + // Subscriptions for version tracking are OK. + AllowSubscriptionsFrom, + ), + UniversalLocation, + ConstU32<8>, + >, + ), + >, +>; + +pub type AssetFeeAsExistentialDepositMultiplierFeeCharger = AssetFeeAsExistentialDepositMultiplier< + Runtime, + WeightToFee, + pallet_assets::BalanceToAssetBalance, + TrustBackedAssetsInstance, +>; + +/// Cases where a remote origin is accepted as trusted Teleporter for a given asset: +/// +/// - DOT with the parent Relay Chain and sibling system parachains; and +/// - Sibling parachains' assets from where they originate (as `ForeignCreators`). +pub type TrustedTeleporters = ( + ConcreteAssetFromSystem, + IsForeignConcreteAsset>>, +); + +pub struct XcmConfig; +impl xcm_executor::Config for XcmConfig { + type RuntimeCall = RuntimeCall; + type XcmSender = XcmRouter; + type AssetTransactor = AssetTransactors; + type OriginConverter = XcmOriginToTransactDispatchOrigin; + // Asset Hub Polkadot does not recognize a reserve location for any asset. This does not prevent + // Asset Hub acting _as_ a reserve location for DOT and assets created under `pallet-assets`. + // For DOT, users must use teleport where allowed (e.g. with the Relay Chain). + type IsReserve = (); + type IsTeleporter = TrustedTeleporters; + type UniversalLocation = UniversalLocation; + type Barrier = Barrier; + type Weigher = WeightInfoBounds< + crate::weights::xcm::AssetHubPolkadotXcmWeight, + RuntimeCall, + MaxInstructions, + >; + type Trader = ( + UsingComponents>, + cumulus_primitives_utility::TakeFirstAssetTrader< + AccountId, + AssetFeeAsExistentialDepositMultiplierFeeCharger, + TrustBackedAssetsConvertedConcreteId, + Assets, + cumulus_primitives_utility::XcmFeesTo32ByteAccount< + FungiblesTransactor, + AccountId, + XcmAssetFeesReceiver, + >, + >, + ); + type ResponseHandler = PolkadotXcm; + type AssetTrap = PolkadotXcm; + type AssetClaims = PolkadotXcm; + type SubscriptionService = PolkadotXcm; + type PalletInstancesInfo = AllPalletsWithSystem; + type MaxAssetsIntoHolding = MaxAssetsIntoHolding; + type AssetLocker = (); + type AssetExchanger = (); + type FeeManager = (); + type MessageExporter = (); + type UniversalAliases = Nothing; + type CallDispatcher = WithOriginFilter; + type SafeCallFilter = SafeCallFilter; + type Aliasers = Nothing; +} + +/// Converts a local signed origin into an XCM multilocation. +/// Forms the basis for local origins sending/executing XCMs. +pub type LocalOriginToLocation = SignedToAccountId32; + +parameter_types! { + /// The asset ID for the asset that we use to pay for message delivery fees. + pub FeeAssetId: AssetId = Concrete(DotLocation::get()); + /// The base fee for the message delivery fees. + pub const BaseDeliveryFee: u128 = CENTS.saturating_mul(3); +} + +pub type PriceForParentDelivery = + ExponentialPrice; + +/// The means for routing XCM messages which are not for local execution into the right message +/// queues. +pub type XcmRouter = WithUniqueTopic<( + // Two routers - use UMP to communicate with the relay chain: + cumulus_primitives_utility::ParentAsUmp, + // ..and XCMP to communicate with the sibling chains. + XcmpQueue, +)>; + +#[cfg(feature = "runtime-benchmarks")] +parameter_types! { + pub ReachableDest: Option = Some(Parent.into()); +} + +impl pallet_xcm::Config for Runtime { + type RuntimeEvent = RuntimeEvent; + // We want to disallow users sending (arbitrary) XCMs from this chain. + type SendXcmOrigin = EnsureXcmOrigin; + type XcmRouter = XcmRouter; + // We support local origins dispatching XCM executions in principle... + type ExecuteXcmOrigin = EnsureXcmOrigin; + // ... but disallow generic XCM execution. As a result only teleports and reserve transfers are + // allowed. + type XcmExecuteFilter = Nothing; + type XcmExecutor = XcmExecutor; + type XcmTeleportFilter = Everything; + type XcmReserveTransferFilter = Everything; + type Weigher = WeightInfoBounds< + crate::weights::xcm::AssetHubPolkadotXcmWeight, + RuntimeCall, + MaxInstructions, + >; + type UniversalLocation = UniversalLocation; + type RuntimeOrigin = RuntimeOrigin; + type RuntimeCall = RuntimeCall; + const VERSION_DISCOVERY_QUEUE_SIZE: u32 = 100; + type AdvertisedXcmVersion = pallet_xcm::CurrentXcmVersion; + type Currency = Balances; + type CurrencyMatcher = (); + type TrustedLockers = (); + type SovereignAccountOf = LocationToAccountId; + type MaxLockers = ConstU32<8>; + type WeightInfo = crate::weights::pallet_xcm::WeightInfo; + #[cfg(feature = "runtime-benchmarks")] + type ReachableDest = ReachableDest; + type AdminOrigin = EnsureRoot; + type MaxRemoteLockConsumers = ConstU32<0>; + type RemoteLockConsumerIdentifier = (); +} + +impl cumulus_pallet_xcm::Config for Runtime { + type RuntimeEvent = RuntimeEvent; + type XcmExecutor = XcmExecutor; +} + +pub type ForeignCreatorsSovereignAccountOf = ( + SiblingParachainConvertsVia, + AccountId32Aliases, + ParentIsPreset, +); + +/// Simple conversion of `u32` into an `AssetId` for use in benchmarking. +pub struct XcmBenchmarkHelper; +#[cfg(feature = "runtime-benchmarks")] +impl pallet_assets::BenchmarkHelper for XcmBenchmarkHelper { + fn create_asset_id_parameter(id: u32) -> MultiLocation { + MultiLocation { parents: 1, interior: X1(Parachain(id)) } + } +} + +#[test] +fn foreign_pallet_has_correct_local_account() { + use sp_core::crypto::{Ss58AddressFormat, Ss58Codec}; + use xcm_executor::traits::ConvertLocation; + + const COLLECTIVES_PARAID: u32 = 1001; + const FELLOWSHIP_SALARY_PALLET_ID: u8 = 64; + let fellowship_salary = + (Parent, Parachain(COLLECTIVES_PARAID), PalletInstance(FELLOWSHIP_SALARY_PALLET_ID)); + let account = LocationToAccountId::convert_location(&fellowship_salary.into()).unwrap(); + let polkadot = Ss58AddressFormat::try_from("polkadot").unwrap(); + let address = Ss58Codec::to_ss58check_with_version(&account, polkadot); + assert_eq!(address, "13w7NdvSR1Af8xsQTArDtZmVvjE8XhWNdL4yed3iFHrUNCnS"); +} diff --git a/cumulus/parachains/runtimes/assets/asset-hub-polkadot/tests/tests.rs b/cumulus/parachains/runtimes/assets/asset-hub-polkadot/tests/tests.rs new file mode 100644 index 000000000000..7200ebc16a28 --- /dev/null +++ b/cumulus/parachains/runtimes/assets/asset-hub-polkadot/tests/tests.rs @@ -0,0 +1,659 @@ +// This file is part of Cumulus. + +// 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. + +//! Tests for the Statemint (Polkadot Assets Hub) chain. + +use asset_hub_polkadot_runtime::xcm_config::{ + AssetFeeAsExistentialDepositMultiplierFeeCharger, CheckingAccount, DotLocation, + ForeignCreatorsSovereignAccountOf, TrustBackedAssetsPalletLocation, XcmConfig, +}; +pub use asset_hub_polkadot_runtime::{ + AllPalletsWithoutSystem, AssetDeposit, Assets, Balances, ExistentialDeposit, ForeignAssets, + ForeignAssetsInstance, MetadataDepositBase, MetadataDepositPerByte, ParachainSystem, Runtime, + RuntimeCall, RuntimeEvent, SessionKeys, System, TrustBackedAssetsInstance, +}; +use asset_test_utils::{CollatorSessionKeys, ExtBuilder}; +use codec::{Decode, Encode}; +use cumulus_primitives_utility::ChargeWeightInFungibles; +use frame_support::{ + assert_noop, assert_ok, + traits::fungibles::InspectEnumerable, + weights::{Weight, WeightToFee as WeightToFeeT}, +}; +use parachains_common::{ + polkadot::fee::WeightToFee, AccountId, AssetHubPolkadotAuraId as AuraId, + AssetIdForTrustBackedAssets, Balance, +}; +use sp_runtime::traits::MaybeEquivalence; +use xcm::latest::prelude::*; +use xcm_executor::traits::{Identity, JustTry, WeightTrader}; + +const ALICE: [u8; 32] = [1u8; 32]; +const SOME_ASSET_ADMIN: [u8; 32] = [5u8; 32]; + +type AssetIdForTrustBackedAssetsConvert = + assets_common::AssetIdForTrustBackedAssetsConvert; + +type RuntimeHelper = asset_test_utils::RuntimeHelper; + +fn collator_session_keys() -> CollatorSessionKeys { + CollatorSessionKeys::new( + AccountId::from(ALICE), + AccountId::from(ALICE), + SessionKeys { aura: AuraId::from(sp_core::ed25519::Public::from_raw(ALICE)) }, + ) +} + +#[test] +fn test_asset_xcm_trader() { + ExtBuilder::::default() + .with_collators(vec![AccountId::from(ALICE)]) + .with_session_keys(vec![( + AccountId::from(ALICE), + AccountId::from(ALICE), + SessionKeys { aura: AuraId::from(sp_core::ed25519::Public::from_raw(ALICE)) }, + )]) + .build() + .execute_with(|| { + // We need root origin to create a sufficient asset + let minimum_asset_balance = 333333333_u128; + let local_asset_id = 1; + assert_ok!(Assets::force_create( + RuntimeHelper::root_origin(), + local_asset_id.into(), + AccountId::from(ALICE).into(), + true, + minimum_asset_balance + )); + + // We first mint enough asset for the account to exist for assets + assert_ok!(Assets::mint( + RuntimeHelper::origin_of(AccountId::from(ALICE)), + local_asset_id.into(), + AccountId::from(ALICE).into(), + minimum_asset_balance + )); + + // get asset id as multilocation + let asset_multilocation = + AssetIdForTrustBackedAssetsConvert::convert_back(&local_asset_id).unwrap(); + + // Set Alice as block author, who will receive fees + RuntimeHelper::run_to_block(2, AccountId::from(ALICE)); + + // We are going to buy 400e9 weight + // Because of the ED being higher in kusama's asset hub + // and not to complicate things, we use a little + // bit more of weight + let bought = Weight::from_parts(400_000_000_000u64, 0); + + // Lets calculate amount needed + let asset_amount_needed = + AssetFeeAsExistentialDepositMultiplierFeeCharger::charge_weight_in_fungibles( + local_asset_id, + bought, + ) + .expect("failed to compute"); + + // Lets pay with: asset_amount_needed + asset_amount_extra + let asset_amount_extra = 100_u128; + let asset: MultiAsset = + (asset_multilocation, asset_amount_needed + asset_amount_extra).into(); + + let mut trader = ::Trader::new(); + let ctx = XcmContext { origin: None, message_id: XcmHash::default(), topic: None }; + + // Lets buy_weight and make sure buy_weight does not return an error + let unused_assets = trader.buy_weight(bought, asset.into(), &ctx).expect("Expected Ok"); + // Check whether a correct amount of unused assets is returned + assert_ok!( + unused_assets.ensure_contains(&(asset_multilocation, asset_amount_extra).into()) + ); + + // Drop trader + drop(trader); + + // Make sure author(Alice) has received the amount + assert_eq!( + Assets::balance(local_asset_id, AccountId::from(ALICE)), + minimum_asset_balance + asset_amount_needed + ); + + // We also need to ensure the total supply increased + assert_eq!( + Assets::total_supply(local_asset_id), + minimum_asset_balance + asset_amount_needed + ); + }); +} + +#[test] +fn test_asset_xcm_trader_with_refund() { + ExtBuilder::::default() + .with_collators(vec![AccountId::from(ALICE)]) + .with_session_keys(vec![( + AccountId::from(ALICE), + AccountId::from(ALICE), + SessionKeys { aura: AuraId::from(sp_core::ed25519::Public::from_raw(ALICE)) }, + )]) + .build() + .execute_with(|| { + // We need root origin to create a sufficient asset + // We set existential deposit to be identical to the one for Balances first + assert_ok!(Assets::force_create( + RuntimeHelper::root_origin(), + 1.into(), + AccountId::from(ALICE).into(), + true, + ExistentialDeposit::get() + )); + + // We first mint enough asset for the account to exist for assets + assert_ok!(Assets::mint( + RuntimeHelper::origin_of(AccountId::from(ALICE)), + 1.into(), + AccountId::from(ALICE).into(), + ExistentialDeposit::get() + )); + + let mut trader = ::Trader::new(); + let ctx = XcmContext { origin: None, message_id: XcmHash::default(), topic: None }; + + // Set Alice as block author, who will receive fees + RuntimeHelper::run_to_block(2, AccountId::from(ALICE)); + + // We are going to buy 400e9 weight + // Because of the ED being higher in kusama's asset hub + // and not to complicate things, we use a little + // bit more of weight + let bought = Weight::from_parts(400_000_000_000u64, 0); + + let asset_multilocation = AssetIdForTrustBackedAssetsConvert::convert_back(&1).unwrap(); + + // lets calculate amount needed + let amount_bought = WeightToFee::weight_to_fee(&bought); + + let asset: MultiAsset = (asset_multilocation, amount_bought).into(); + + // Make sure buy_weight does not return an error + assert_ok!(trader.buy_weight(bought, asset.clone().into(), &ctx)); + + // Make sure again buy_weight does return an error + // This assert relies on the fact, that we use `TakeFirstAssetTrader` in `WeightTrader` + // tuple chain, which cannot be called twice + assert_noop!(trader.buy_weight(bought, asset.into(), &ctx), XcmError::TooExpensive); + + // We actually use half of the weight + let weight_used = bought / 2; + + // Make sure refurnd works. + let amount_refunded = WeightToFee::weight_to_fee(&(bought - weight_used)); + + assert_eq!( + trader.refund_weight(bought - weight_used, &ctx), + Some((asset_multilocation, amount_refunded).into()) + ); + + // Drop trader + drop(trader); + + // We only should have paid for half of the bought weight + let fees_paid = WeightToFee::weight_to_fee(&weight_used); + + assert_eq!( + Assets::balance(1, AccountId::from(ALICE)), + ExistentialDeposit::get() + fees_paid + ); + + // We also need to ensure the total supply increased + assert_eq!(Assets::total_supply(1), ExistentialDeposit::get() + fees_paid); + }); +} + +#[test] +fn test_asset_xcm_trader_refund_not_possible_since_amount_less_than_ed() { + ExtBuilder::::default() + .with_collators(vec![AccountId::from(ALICE)]) + .with_session_keys(vec![( + AccountId::from(ALICE), + AccountId::from(ALICE), + SessionKeys { aura: AuraId::from(sp_core::ed25519::Public::from_raw(ALICE)) }, + )]) + .build() + .execute_with(|| { + // We need root origin to create a sufficient asset + // We set existential deposit to be identical to the one for Balances first + assert_ok!(Assets::force_create( + RuntimeHelper::root_origin(), + 1.into(), + AccountId::from(ALICE).into(), + true, + ExistentialDeposit::get() + )); + + let mut trader = ::Trader::new(); + let ctx = XcmContext { origin: None, message_id: XcmHash::default(), topic: None }; + + // Set Alice as block author, who will receive fees + RuntimeHelper::run_to_block(2, AccountId::from(ALICE)); + + // We are going to buy 50e9 weight + // Because of the ED being higher in kusama's asset hub + // and not to complicate things, we use a little + // bit more of weight + let bought = Weight::from_parts(50_000_000_000u64, 0); + + let asset_multilocation = AssetIdForTrustBackedAssetsConvert::convert_back(&1).unwrap(); + + let amount_bought = WeightToFee::weight_to_fee(&bought); + + assert!( + amount_bought < ExistentialDeposit::get(), + "we are testing what happens when the amount does not exceed ED" + ); + + let asset: MultiAsset = (asset_multilocation, amount_bought).into(); + + // Buy weight should return an error + assert_noop!(trader.buy_weight(bought, asset.into(), &ctx), XcmError::TooExpensive); + + // not credited since the ED is higher than this value + assert_eq!(Assets::balance(1, AccountId::from(ALICE)), 0); + + // We also need to ensure the total supply did not increase + assert_eq!(Assets::total_supply(1), 0); + }); +} + +#[test] +fn test_that_buying_ed_refund_does_not_refund() { + ExtBuilder::::default() + .with_collators(vec![AccountId::from(ALICE)]) + .with_session_keys(vec![( + AccountId::from(ALICE), + AccountId::from(ALICE), + SessionKeys { aura: AuraId::from(sp_core::ed25519::Public::from_raw(ALICE)) }, + )]) + .build() + .execute_with(|| { + // We need root origin to create a sufficient asset + // We set existential deposit to be identical to the one for Balances first + assert_ok!(Assets::force_create( + RuntimeHelper::root_origin(), + 1.into(), + AccountId::from(ALICE).into(), + true, + ExistentialDeposit::get() + )); + + let mut trader = ::Trader::new(); + let ctx = XcmContext { origin: None, message_id: XcmHash::default(), topic: None }; + + // Set Alice as block author, who will receive fees + RuntimeHelper::run_to_block(2, AccountId::from(ALICE)); + + // We are gonna buy ED + let bought = Weight::from_parts(ExistentialDeposit::get().try_into().unwrap(), 0); + + let asset_multilocation = AssetIdForTrustBackedAssetsConvert::convert_back(&1).unwrap(); + + let amount_bought = WeightToFee::weight_to_fee(&bought); + + assert!( + amount_bought < ExistentialDeposit::get(), + "we are testing what happens when the amount does not exceed ED" + ); + + // We know we will have to buy at least ED, so lets make sure first it will + // fail with a payment of less than ED + let asset: MultiAsset = (asset_multilocation, amount_bought).into(); + assert_noop!(trader.buy_weight(bought, asset.into(), &ctx), XcmError::TooExpensive); + + // Now lets buy ED at least + let asset: MultiAsset = (asset_multilocation, ExistentialDeposit::get()).into(); + + // Buy weight should work + assert_ok!(trader.buy_weight(bought, asset.into(), &ctx)); + + // Should return None. We have a specific check making sure we dont go below ED for + // drop payment + assert_eq!(trader.refund_weight(bought, &ctx), None); + + // Drop trader + drop(trader); + + // Make sure author(Alice) has received the amount + assert_eq!(Assets::balance(1, AccountId::from(ALICE)), ExistentialDeposit::get()); + + // We also need to ensure the total supply increased + assert_eq!(Assets::total_supply(1), ExistentialDeposit::get()); + }); +} + +#[test] +fn test_asset_xcm_trader_not_possible_for_non_sufficient_assets() { + ExtBuilder::::default() + .with_collators(vec![AccountId::from(ALICE)]) + .with_session_keys(vec![( + AccountId::from(ALICE), + AccountId::from(ALICE), + SessionKeys { aura: AuraId::from(sp_core::ed25519::Public::from_raw(ALICE)) }, + )]) + .build() + .execute_with(|| { + // Create a non-sufficient asset + let minimum_asset_balance = 1_000_000_u128; + assert_ok!(Assets::force_create( + RuntimeHelper::root_origin(), + 1.into(), + AccountId::from(ALICE).into(), + false, + minimum_asset_balance + )); + + // We first mint enough asset for the account to exist for assets + assert_ok!(Assets::mint( + RuntimeHelper::origin_of(AccountId::from(ALICE)), + 1.into(), + AccountId::from(ALICE).into(), + minimum_asset_balance + )); + + let mut trader = ::Trader::new(); + let ctx = XcmContext { origin: None, message_id: XcmHash::default(), topic: None }; + + // Set Alice as block author, who will receive fees + RuntimeHelper::run_to_block(2, AccountId::from(ALICE)); + + // We are going to buy 400e9 weight + // Because of the ED being higher in kusama's asset hub + // and not to complicate things, we use a little + // bit more of weight + let bought = Weight::from_parts(400_000_000_000u64, 0); + + // lets calculate amount needed + let asset_amount_needed = WeightToFee::weight_to_fee(&bought); + + let asset_multilocation = AssetIdForTrustBackedAssetsConvert::convert_back(&1).unwrap(); + + let asset: MultiAsset = (asset_multilocation, asset_amount_needed).into(); + + // Make sure again buy_weight does return an error + assert_noop!(trader.buy_weight(bought, asset.into(), &ctx), XcmError::TooExpensive); + + // Drop trader + drop(trader); + + // Make sure author(Alice) has NOT received the amount + assert_eq!(Assets::balance(1, AccountId::from(ALICE)), minimum_asset_balance); + + // We also need to ensure the total supply NOT increased + assert_eq!(Assets::total_supply(1), minimum_asset_balance); + }); +} + +#[test] +fn test_assets_balances_api_works() { + use assets_common::runtime_api::runtime_decl_for_fungibles_api::FungiblesApi; + + ExtBuilder::::default() + .with_collators(vec![AccountId::from(ALICE)]) + .with_session_keys(vec![( + AccountId::from(ALICE), + AccountId::from(ALICE), + SessionKeys { aura: AuraId::from(sp_core::ed25519::Public::from_raw(ALICE)) }, + )]) + .build() + .execute_with(|| { + let local_asset_id = 1; + let foreign_asset_id_multilocation = + MultiLocation { parents: 1, interior: X2(Parachain(1234), GeneralIndex(12345)) }; + + // check before + assert_eq!(Assets::balance(local_asset_id, AccountId::from(ALICE)), 0); + assert_eq!( + ForeignAssets::balance(foreign_asset_id_multilocation, AccountId::from(ALICE)), + 0 + ); + assert_eq!(Balances::free_balance(AccountId::from(ALICE)), 0); + assert!(Runtime::query_account_balances(AccountId::from(ALICE)) + .unwrap() + .try_as::() + .unwrap() + .is_none()); + + // Drip some balance + use frame_support::traits::fungible::Mutate; + let some_currency = ExistentialDeposit::get(); + Balances::mint_into(&AccountId::from(ALICE), some_currency).unwrap(); + + // We need root origin to create a sufficient asset + let minimum_asset_balance = 3333333_u128; + assert_ok!(Assets::force_create( + RuntimeHelper::root_origin(), + local_asset_id.into(), + AccountId::from(ALICE).into(), + true, + minimum_asset_balance + )); + + // We first mint enough asset for the account to exist for assets + assert_ok!(Assets::mint( + RuntimeHelper::origin_of(AccountId::from(ALICE)), + local_asset_id.into(), + AccountId::from(ALICE).into(), + minimum_asset_balance + )); + + // create foreign asset + let foreign_asset_minimum_asset_balance = 3333333_u128; + assert_ok!(ForeignAssets::force_create( + RuntimeHelper::root_origin(), + foreign_asset_id_multilocation, + AccountId::from(SOME_ASSET_ADMIN).into(), + false, + foreign_asset_minimum_asset_balance + )); + + // We first mint enough asset for the account to exist for assets + assert_ok!(ForeignAssets::mint( + RuntimeHelper::origin_of(AccountId::from(SOME_ASSET_ADMIN)), + foreign_asset_id_multilocation, + AccountId::from(ALICE).into(), + 6 * foreign_asset_minimum_asset_balance + )); + + // check after + assert_eq!( + Assets::balance(local_asset_id, AccountId::from(ALICE)), + minimum_asset_balance + ); + assert_eq!( + ForeignAssets::balance(foreign_asset_id_multilocation, AccountId::from(ALICE)), + 6 * minimum_asset_balance + ); + assert_eq!(Balances::free_balance(AccountId::from(ALICE)), some_currency); + + let result: MultiAssets = Runtime::query_account_balances(AccountId::from(ALICE)) + .unwrap() + .try_into() + .unwrap(); + assert_eq!(result.len(), 3); + + // check currency + assert!(result.inner().iter().any(|asset| asset.eq( + &assets_common::fungible_conversion::convert_balance::( + some_currency + ) + .unwrap() + ))); + // check trusted asset + assert!(result.inner().iter().any(|asset| asset.eq(&( + AssetIdForTrustBackedAssetsConvert::convert_back(&local_asset_id).unwrap(), + minimum_asset_balance + ) + .into()))); + // check foreign asset + assert!(result.inner().iter().any(|asset| asset.eq(&( + Identity::convert_back(&foreign_asset_id_multilocation).unwrap(), + 6 * foreign_asset_minimum_asset_balance + ) + .into()))); + }); +} + +asset_test_utils::include_teleports_for_native_asset_works!( + Runtime, + AllPalletsWithoutSystem, + XcmConfig, + CheckingAccount, + WeightToFee, + ParachainSystem, + collator_session_keys(), + ExistentialDeposit::get(), + Box::new(|runtime_event_encoded: Vec| { + match RuntimeEvent::decode(&mut &runtime_event_encoded[..]) { + Ok(RuntimeEvent::PolkadotXcm(event)) => Some(event), + _ => None, + } + }), + Box::new(|runtime_event_encoded: Vec| { + match RuntimeEvent::decode(&mut &runtime_event_encoded[..]) { + Ok(RuntimeEvent::XcmpQueue(event)) => Some(event), + _ => None, + } + }), + 1000 +); + +asset_test_utils::include_teleports_for_foreign_assets_works!( + Runtime, + AllPalletsWithoutSystem, + XcmConfig, + CheckingAccount, + WeightToFee, + ParachainSystem, + ForeignCreatorsSovereignAccountOf, + ForeignAssetsInstance, + asset_test_utils::CollatorSessionKeys::new( + AccountId::from(ALICE), + AccountId::from(ALICE), + SessionKeys { aura: AuraId::from(sp_core::ed25519::Public::from_raw(ALICE)) } + ), + ExistentialDeposit::get(), + Box::new(|runtime_event_encoded: Vec| { + match RuntimeEvent::decode(&mut &runtime_event_encoded[..]) { + Ok(RuntimeEvent::PolkadotXcm(event)) => Some(event), + _ => None, + } + }), + Box::new(|runtime_event_encoded: Vec| { + match RuntimeEvent::decode(&mut &runtime_event_encoded[..]) { + Ok(RuntimeEvent::XcmpQueue(event)) => Some(event), + _ => None, + } + }) +); + +asset_test_utils::include_asset_transactor_transfer_with_local_consensus_currency_works!( + Runtime, + XcmConfig, + collator_session_keys(), + ExistentialDeposit::get(), + Box::new(|| { + assert!(Assets::asset_ids().collect::>().is_empty()); + assert!(ForeignAssets::asset_ids().collect::>().is_empty()); + }), + Box::new(|| { + assert!(Assets::asset_ids().collect::>().is_empty()); + assert!(ForeignAssets::asset_ids().collect::>().is_empty()); + }) +); + +asset_test_utils::include_asset_transactor_transfer_with_pallet_assets_instance_works!( + asset_transactor_transfer_with_trust_backed_assets_works, + Runtime, + XcmConfig, + TrustBackedAssetsInstance, + AssetIdForTrustBackedAssets, + AssetIdForTrustBackedAssetsConvert, + collator_session_keys(), + ExistentialDeposit::get(), + 12345, + Box::new(|| { + assert!(ForeignAssets::asset_ids().collect::>().is_empty()); + }), + Box::new(|| { + assert!(ForeignAssets::asset_ids().collect::>().is_empty()); + }) +); + +asset_test_utils::include_asset_transactor_transfer_with_pallet_assets_instance_works!( + asset_transactor_transfer_with_foreign_assets_works, + Runtime, + XcmConfig, + ForeignAssetsInstance, + MultiLocation, + JustTry, + asset_test_utils::CollatorSessionKeys::new( + AccountId::from(ALICE), + AccountId::from(ALICE), + SessionKeys { aura: AuraId::from(sp_core::ed25519::Public::from_raw(ALICE)) } + ), + ExistentialDeposit::get(), + MultiLocation { parents: 1, interior: X2(Parachain(1313), GeneralIndex(12345)) }, + Box::new(|| { + assert!(Assets::asset_ids().collect::>().is_empty()); + }), + Box::new(|| { + assert!(Assets::asset_ids().collect::>().is_empty()); + }) +); + +asset_test_utils::include_create_and_manage_foreign_assets_for_local_consensus_parachain_assets_works!( + Runtime, + XcmConfig, + WeightToFee, + ForeignCreatorsSovereignAccountOf, + ForeignAssetsInstance, + MultiLocation, + JustTry, + asset_test_utils::CollatorSessionKeys::new( + AccountId::from(ALICE), + AccountId::from(ALICE), + SessionKeys { aura: AuraId::from(sp_core::ed25519::Public::from_raw(ALICE)) } + ), + ExistentialDeposit::get(), + AssetDeposit::get(), + MetadataDepositBase::get(), + MetadataDepositPerByte::get(), + Box::new(|pallet_asset_call| RuntimeCall::ForeignAssets(pallet_asset_call).encode()), + Box::new(|runtime_event_encoded: Vec| { + match RuntimeEvent::decode(&mut &runtime_event_encoded[..]) { + Ok(RuntimeEvent::ForeignAssets(pallet_asset_event)) => Some(pallet_asset_event), + _ => None, + } + }), + Box::new(|| { + assert!(Assets::asset_ids().collect::>().is_empty()); + assert!(ForeignAssets::asset_ids().collect::>().is_empty()); + }), + Box::new(|| { + assert!(Assets::asset_ids().collect::>().is_empty()); + assert_eq!(ForeignAssets::asset_ids().collect::>().len(), 1); + }) +); diff --git a/cumulus/parachains/runtimes/bridge-hubs/bridge-hub-kusama/Cargo.toml b/cumulus/parachains/runtimes/bridge-hubs/bridge-hub-kusama/Cargo.toml new file mode 100644 index 000000000000..603e74850cc7 --- /dev/null +++ b/cumulus/parachains/runtimes/bridge-hubs/bridge-hub-kusama/Cargo.toml @@ -0,0 +1,185 @@ +[package] +name = "bridge-hub-kusama-runtime" +version = "0.1.0" +authors.workspace = true +edition.workspace = true +description = "Kusama's BridgeHub parachain runtime" + +[build-dependencies] +substrate-wasm-builder = { path = "../../../../../substrate/utils/wasm-builder", optional = true } + +[dependencies] +codec = { package = "parity-scale-codec", version = "3.0.0", default-features = false, features = ["derive"] } +hex-literal = { version = "0.4.1" } +log = { version = "0.4.20", default-features = false } +scale-info = { version = "2.10.0", default-features = false, features = ["derive"] } +serde = { version = "1.0.188", optional = true, features = ["derive"] } +smallvec = "1.11.0" + +# Substrate +frame-benchmarking = { path = "../../../../../substrate/frame/benchmarking", default-features = false, optional = true} +frame-executive = { path = "../../../../../substrate/frame/executive", default-features = false} +frame-support = { path = "../../../../../substrate/frame/support", default-features = false} +frame-system = { path = "../../../../../substrate/frame/system", default-features = false} +frame-system-benchmarking = { path = "../../../../../substrate/frame/system/benchmarking", default-features = false, optional = true} +frame-system-rpc-runtime-api = { path = "../../../../../substrate/frame/system/rpc/runtime-api", default-features = false} +frame-try-runtime = { path = "../../../../../substrate/frame/try-runtime", default-features = false, optional = true} +pallet-aura = { path = "../../../../../substrate/frame/aura", default-features = false} +pallet-authorship = { path = "../../../../../substrate/frame/authorship", default-features = false} +pallet-balances = { path = "../../../../../substrate/frame/balances", default-features = false} +pallet-multisig = { path = "../../../../../substrate/frame/multisig", default-features = false} +pallet-session = { path = "../../../../../substrate/frame/session", default-features = false} +pallet-timestamp = { path = "../../../../../substrate/frame/timestamp", default-features = false} +pallet-transaction-payment = { path = "../../../../../substrate/frame/transaction-payment", default-features = false} +pallet-transaction-payment-rpc-runtime-api = { path = "../../../../../substrate/frame/transaction-payment/rpc/runtime-api", default-features = false} +pallet-utility = { path = "../../../../../substrate/frame/utility", default-features = false} +sp-api = { path = "../../../../../substrate/primitives/api", default-features = false} +sp-block-builder = { path = "../../../../../substrate/primitives/block-builder", default-features = false} +sp-consensus-aura = { path = "../../../../../substrate/primitives/consensus/aura", default-features = false} +sp-core = { path = "../../../../../substrate/primitives/core", default-features = false} +sp-genesis-builder = { path = "../../../../../substrate/primitives/genesis-builder", default-features = false } +sp-inherents = { path = "../../../../../substrate/primitives/inherents", default-features = false} +sp-io = { path = "../../../../../substrate/primitives/io", default-features = false} +sp-offchain = { path = "../../../../../substrate/primitives/offchain", default-features = false} +sp-runtime = { path = "../../../../../substrate/primitives/runtime", default-features = false} +sp-session = { path = "../../../../../substrate/primitives/session", default-features = false} +sp-std = { path = "../../../../../substrate/primitives/std", default-features = false} +sp-storage = { path = "../../../../../substrate/primitives/storage", default-features = false} +sp-transaction-pool = { path = "../../../../../substrate/primitives/transaction-pool", default-features = false} +sp-version = { path = "../../../../../substrate/primitives/version", default-features = false} + +# Polkadot +pallet-xcm = { path = "../../../../../polkadot/xcm/pallet-xcm", default-features = false} +pallet-xcm-benchmarks = { path = "../../../../../polkadot/xcm/pallet-xcm-benchmarks", default-features = false, optional = true } +polkadot-core-primitives = { path = "../../../../../polkadot/core-primitives", default-features = false} +polkadot-parachain-primitives = { path = "../../../../../polkadot/parachain", default-features = false} +polkadot-runtime-common = { path = "../../../../../polkadot/runtime/common", default-features = false} +xcm = { package = "staging-xcm", path = "../../../../../polkadot/xcm", default-features = false} +xcm-builder = { package = "staging-xcm-builder", path = "../../../../../polkadot/xcm/xcm-builder", default-features = false} +xcm-executor = { package = "staging-xcm-executor", path = "../../../../../polkadot/xcm/xcm-executor", default-features = false} + +# Cumulus +cumulus-pallet-aura-ext = { path = "../../../../pallets/aura-ext", default-features = false } +cumulus-pallet-dmp-queue = { path = "../../../../pallets/dmp-queue", default-features = false } +cumulus-pallet-parachain-system = { path = "../../../../pallets/parachain-system", default-features = false, features = ["parameterized-consensus-hook",] } +cumulus-pallet-session-benchmarking = { path = "../../../../pallets/session-benchmarking", default-features = false} +cumulus-pallet-xcm = { path = "../../../../pallets/xcm", default-features = false } +cumulus-pallet-xcmp-queue = { path = "../../../../pallets/xcmp-queue", default-features = false } +cumulus-primitives-core = { path = "../../../../primitives/core", default-features = false } +cumulus-primitives-utility = { path = "../../../../primitives/utility", default-features = false } +pallet-collator-selection = { path = "../../../../pallets/collator-selection", default-features = false } +parachain-info = { path = "../../../pallets/parachain-info", default-features = false } +parachains-common = { path = "../../../common", default-features = false } + +[dev-dependencies] +bridge-hub-test-utils = { path = "../test-utils" } + +[features] +default = [ "std" ] +std = [ + "codec/std", + "cumulus-pallet-aura-ext/std", + "cumulus-pallet-dmp-queue/std", + "cumulus-pallet-parachain-system/std", + "cumulus-pallet-session-benchmarking/std", + "cumulus-pallet-xcm/std", + "cumulus-pallet-xcmp-queue/std", + "cumulus-primitives-core/std", + "cumulus-primitives-utility/std", + "frame-benchmarking?/std", + "frame-executive/std", + "frame-support/std", + "frame-system-benchmarking?/std", + "frame-system-rpc-runtime-api/std", + "frame-system/std", + "frame-try-runtime?/std", + "log/std", + "pallet-aura/std", + "pallet-authorship/std", + "pallet-balances/std", + "pallet-collator-selection/std", + "pallet-multisig/std", + "pallet-session/std", + "pallet-timestamp/std", + "pallet-transaction-payment-rpc-runtime-api/std", + "pallet-transaction-payment/std", + "pallet-utility/std", + "pallet-xcm-benchmarks?/std", + "pallet-xcm/std", + "parachain-info/std", + "parachains-common/std", + "polkadot-core-primitives/std", + "polkadot-parachain-primitives/std", + "polkadot-runtime-common/std", + "scale-info/std", + "serde", + "sp-api/std", + "sp-block-builder/std", + "sp-consensus-aura/std", + "sp-core/std", + "sp-genesis-builder/std", + "sp-inherents/std", + "sp-io/std", + "sp-offchain/std", + "sp-runtime/std", + "sp-session/std", + "sp-std/std", + "sp-storage/std", + "sp-transaction-pool/std", + "sp-version/std", + "substrate-wasm-builder", + "xcm-builder/std", + "xcm-executor/std", + "xcm/std", +] + +runtime-benchmarks = [ + "cumulus-pallet-parachain-system/runtime-benchmarks", + "cumulus-pallet-session-benchmarking/runtime-benchmarks", + "cumulus-pallet-xcmp-queue/runtime-benchmarks", + "cumulus-primitives-utility/runtime-benchmarks", + "frame-benchmarking/runtime-benchmarks", + "frame-support/runtime-benchmarks", + "frame-system-benchmarking/runtime-benchmarks", + "frame-system/runtime-benchmarks", + "pallet-balances/runtime-benchmarks", + "pallet-collator-selection/runtime-benchmarks", + "pallet-multisig/runtime-benchmarks", + "pallet-timestamp/runtime-benchmarks", + "pallet-utility/runtime-benchmarks", + "pallet-xcm-benchmarks/runtime-benchmarks", + "pallet-xcm/runtime-benchmarks", + "parachains-common/runtime-benchmarks", + "polkadot-parachain-primitives/runtime-benchmarks", + "polkadot-runtime-common/runtime-benchmarks", + "sp-runtime/runtime-benchmarks", + "xcm-builder/runtime-benchmarks", + "xcm-executor/runtime-benchmarks", +] + +try-runtime = [ + "cumulus-pallet-aura-ext/try-runtime", + "cumulus-pallet-dmp-queue/try-runtime", + "cumulus-pallet-parachain-system/try-runtime", + "cumulus-pallet-xcm/try-runtime", + "cumulus-pallet-xcmp-queue/try-runtime", + "frame-executive/try-runtime", + "frame-support/try-runtime", + "frame-system/try-runtime", + "frame-try-runtime/try-runtime", + "pallet-aura/try-runtime", + "pallet-authorship/try-runtime", + "pallet-balances/try-runtime", + "pallet-collator-selection/try-runtime", + "pallet-multisig/try-runtime", + "pallet-session/try-runtime", + "pallet-timestamp/try-runtime", + "pallet-transaction-payment/try-runtime", + "pallet-utility/try-runtime", + "pallet-xcm/try-runtime", + "parachain-info/try-runtime", + "polkadot-runtime-common/try-runtime", + "sp-runtime/try-runtime", +] + +experimental = [ "pallet-aura/experimental" ] diff --git a/cumulus/parachains/runtimes/bridge-hubs/bridge-hub-kusama/build.rs b/cumulus/parachains/runtimes/bridge-hubs/bridge-hub-kusama/build.rs new file mode 100644 index 000000000000..60f8a125129f --- /dev/null +++ b/cumulus/parachains/runtimes/bridge-hubs/bridge-hub-kusama/build.rs @@ -0,0 +1,26 @@ +// 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. + +#[cfg(feature = "std")] +fn main() { + substrate_wasm_builder::WasmBuilder::new() + .with_current_project() + .export_heap_base() + .import_memory() + .build() +} + +#[cfg(not(feature = "std"))] +fn main() {} diff --git a/cumulus/parachains/runtimes/bridge-hubs/bridge-hub-kusama/src/lib.rs b/cumulus/parachains/runtimes/bridge-hubs/bridge-hub-kusama/src/lib.rs new file mode 100644 index 000000000000..9fdf8380bc3a --- /dev/null +++ b/cumulus/parachains/runtimes/bridge-hubs/bridge-hub-kusama/src/lib.rs @@ -0,0 +1,814 @@ +// Copyright (C) Parity Technologies (UK) Ltd. +// This file is part of Cumulus. + +// Cumulus 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. + +// Cumulus 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 Cumulus. If not, see . + +#![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"] + +// Make the WASM binary available. +#[cfg(feature = "std")] +include!(concat!(env!("OUT_DIR"), "/wasm_binary.rs")); + +mod weights; +pub mod xcm_config; + +use cumulus_pallet_parachain_system::RelayNumberStrictlyIncreases; +use cumulus_primitives_core::ParaId; +use polkadot_runtime_common::xcm_sender::NoPriceForMessageDelivery; +use sp_api::impl_runtime_apis; +use sp_core::{crypto::KeyTypeId, OpaqueMetadata}; +use sp_runtime::{ + create_runtime_str, generic, impl_opaque_keys, + traits::{AccountIdLookup, BlakeTwo256, Block as BlockT}, + transaction_validity::{TransactionSource, TransactionValidity}, + ApplyExtrinsicResult, +}; + +use sp_std::prelude::*; +#[cfg(feature = "std")] +use sp_version::NativeVersion; +use sp_version::RuntimeVersion; + +use frame_support::{ + construct_runtime, + dispatch::DispatchClass, + genesis_builder_helper::{build_config, create_default_config}, + parameter_types, + traits::{ConstBool, ConstU32, ConstU64, ConstU8, EitherOfDiverse, Everything}, + weights::{ConstantMultiplier, Weight}, + PalletId, +}; +use frame_system::{ + limits::{BlockLength, BlockWeights}, + EnsureRoot, +}; +use pallet_xcm::{EnsureXcm, IsVoiceOfBody}; +pub use sp_consensus_aura::sr25519::AuthorityId as AuraId; +pub use sp_runtime::{MultiAddress, Perbill, Permill}; +use xcm_config::{ + FellowshipLocation, GovernanceLocation, XcmConfig, XcmOriginToTransactDispatchOrigin, +}; + +#[cfg(any(feature = "std", test))] +pub use sp_runtime::BuildStorage; + +use polkadot_runtime_common::{BlockHashCount, SlowAdjustingFeeUpdate}; + +use weights::{BlockExecutionWeight, ExtrinsicBaseWeight, RocksDbWeight}; + +use parachains_common::{ + impls::DealWithFees, + kusama::{consensus::*, currency::*, fee::WeightToFee}, + AccountId, Balance, BlockNumber, Hash, Header, Nonce, Signature, AVERAGE_ON_INITIALIZE_RATIO, + HOURS, MAXIMUM_BLOCK_WEIGHT, NORMAL_DISPATCH_RATIO, SLOT_DURATION, +}; + +// XCM Imports +use xcm::latest::prelude::*; +use xcm_executor::XcmExecutor; + +/// The address format for describing accounts. +pub type Address = MultiAddress; + +/// Block type as expected by this runtime. +pub type Block = generic::Block; + +/// A Block signed with a Justification +pub type SignedBlock = generic::SignedBlock; + +/// BlockId type as expected by this runtime. +pub type BlockId = generic::BlockId; + +/// The SignedExtension to the basic transaction logic. +pub type SignedExtra = ( + frame_system::CheckNonZeroSender, + frame_system::CheckSpecVersion, + frame_system::CheckTxVersion, + frame_system::CheckGenesis, + frame_system::CheckEra, + frame_system::CheckNonce, + frame_system::CheckWeight, + pallet_transaction_payment::ChargeTransactionPayment, +); + +/// Unchecked extrinsic type as expected by this runtime. +pub type UncheckedExtrinsic = + generic::UncheckedExtrinsic; + +/// Migrations to apply on runtime upgrade. +pub type Migrations = (pallet_collator_selection::migration::v1::MigrateToV1,); + +/// Executive: handles dispatch to the various modules. +pub type Executive = frame_executive::Executive< + Runtime, + Block, + frame_system::ChainContext, + Runtime, + AllPalletsWithSystem, + Migrations, +>; + +impl_opaque_keys! { + pub struct SessionKeys { + pub aura: Aura, + } +} + +#[sp_version::runtime_version] +pub const VERSION: RuntimeVersion = RuntimeVersion { + spec_name: create_runtime_str!("bridge-hub-kusama"), + impl_name: create_runtime_str!("bridge-hub-kusama"), + authoring_version: 1, + spec_version: 10000, + impl_version: 0, + apis: RUNTIME_API_VERSIONS, + transaction_version: 3, + state_version: 1, +}; + +/// The version information used to identify this runtime when compiled natively. +#[cfg(feature = "std")] +pub fn native_version() -> NativeVersion { + NativeVersion { runtime_version: VERSION, can_author_with: Default::default() } +} + +parameter_types! { + pub const Version: RuntimeVersion = VERSION; + pub RuntimeBlockLength: BlockLength = + BlockLength::max_with_normal_ratio(5 * 1024 * 1024, NORMAL_DISPATCH_RATIO); + pub RuntimeBlockWeights: BlockWeights = BlockWeights::builder() + .base_block(BlockExecutionWeight::get()) + .for_class(DispatchClass::all(), |weights| { + weights.base_extrinsic = ExtrinsicBaseWeight::get(); + }) + .for_class(DispatchClass::Normal, |weights| { + weights.max_total = Some(NORMAL_DISPATCH_RATIO * MAXIMUM_BLOCK_WEIGHT); + }) + .for_class(DispatchClass::Operational, |weights| { + weights.max_total = Some(MAXIMUM_BLOCK_WEIGHT); + // Operational transactions have some extra reserved space, so that they + // are included even if block reached `MAXIMUM_BLOCK_WEIGHT`. + weights.reserved = Some( + MAXIMUM_BLOCK_WEIGHT - NORMAL_DISPATCH_RATIO * MAXIMUM_BLOCK_WEIGHT + ); + }) + .avg_block_initialization(AVERAGE_ON_INITIALIZE_RATIO) + .build_or_panic(); + pub const SS58Prefix: u8 = 2; +} + +// Configure FRAME pallets to include in runtime. + +impl frame_system::Config for Runtime { + /// The identifier used to distinguish between accounts. + type AccountId = AccountId; + /// The aggregated dispatch type that is available for extrinsics. + type RuntimeCall = RuntimeCall; + /// The lookup mechanism to get account ID from whatever is passed in dispatchers. + type Lookup = AccountIdLookup; + /// The index type for storing how many extrinsics an account has signed. + type Nonce = Nonce; + /// The type for hashing blocks and tries. + type Hash = Hash; + /// The hashing algorithm used. + type Hashing = BlakeTwo256; + /// The block type. + type Block = Block; + /// The ubiquitous event type. + type RuntimeEvent = RuntimeEvent; + /// The ubiquitous origin type. + type RuntimeOrigin = RuntimeOrigin; + /// Maximum number of block number to block hash mappings to keep (oldest pruned first). + type BlockHashCount = BlockHashCount; + /// Runtime version. + type Version = Version; + /// Converts a module to an index of this module in the runtime. + type PalletInfo = PalletInfo; + /// The data to be stored in an account. + type AccountData = pallet_balances::AccountData; + /// What to do if a new account is created. + type OnNewAccount = (); + /// What to do if an account is fully reaped from the system. + type OnKilledAccount = (); + /// The weight of database operations that the runtime can invoke. + type DbWeight = RocksDbWeight; + /// The basic call filter to use in dispatchable. + type BaseCallFilter = Everything; + /// Weight information for the extrinsics of this pallet. + type SystemWeightInfo = weights::frame_system::WeightInfo; + /// Block & extrinsics weights: base values and limits. + type BlockWeights = RuntimeBlockWeights; + /// The maximum length of a block (in bytes). + type BlockLength = RuntimeBlockLength; + type SS58Prefix = SS58Prefix; + /// The action to take on a Runtime Upgrade + type OnSetCode = cumulus_pallet_parachain_system::ParachainSetCode; + type MaxConsumers = ConstU32<16>; +} + +impl pallet_timestamp::Config for Runtime { + /// A timestamp: milliseconds since the unix epoch. + type Moment = u64; + type OnTimestampSet = Aura; + type MinimumPeriod = ConstU64<{ SLOT_DURATION / 2 }>; + type WeightInfo = weights::pallet_timestamp::WeightInfo; +} + +impl pallet_authorship::Config for Runtime { + type FindAuthor = pallet_session::FindAccountFromAuthorIndex; + type EventHandler = (CollatorSelection,); +} + +parameter_types! { + pub const ExistentialDeposit: Balance = EXISTENTIAL_DEPOSIT; +} + +impl pallet_balances::Config for Runtime { + /// The type for recording an account's balance. + type Balance = Balance; + type DustRemoval = (); + /// The ubiquitous event type. + type RuntimeEvent = RuntimeEvent; + type ExistentialDeposit = ExistentialDeposit; + type AccountStore = System; + type WeightInfo = weights::pallet_balances::WeightInfo; + type MaxLocks = ConstU32<50>; + type MaxReserves = ConstU32<50>; + type ReserveIdentifier = [u8; 8]; + type RuntimeHoldReason = RuntimeHoldReason; + type RuntimeFreezeReason = RuntimeFreezeReason; + type FreezeIdentifier = (); + type MaxHolds = ConstU32<0>; + type MaxFreezes = ConstU32<0>; +} + +parameter_types! { + /// Relay Chain `TransactionByteFee` / 10 + pub const TransactionByteFee: Balance = MILLICENTS; +} + +impl pallet_transaction_payment::Config for Runtime { + type RuntimeEvent = RuntimeEvent; + type OnChargeTransaction = + pallet_transaction_payment::CurrencyAdapter>; + type OperationalFeeMultiplier = ConstU8<5>; + type WeightToFee = WeightToFee; + type LengthToFee = ConstantMultiplier; + type FeeMultiplierUpdate = SlowAdjustingFeeUpdate; +} + +parameter_types! { + pub const ReservedXcmpWeight: Weight = MAXIMUM_BLOCK_WEIGHT.saturating_div(4); + pub const ReservedDmpWeight: Weight = MAXIMUM_BLOCK_WEIGHT.saturating_div(4); +} + +impl cumulus_pallet_parachain_system::Config for Runtime { + type RuntimeEvent = RuntimeEvent; + type OnSystemEvent = (); + type SelfParaId = parachain_info::Pallet; + type OutboundXcmpMessageSource = XcmpQueue; + type DmpMessageHandler = DmpQueue; + type ReservedDmpWeight = ReservedDmpWeight; + type XcmpMessageHandler = XcmpQueue; + type ReservedXcmpWeight = ReservedXcmpWeight; + type CheckAssociatedRelayNumber = RelayNumberStrictlyIncreases; + type ConsensusHook = cumulus_pallet_aura_ext::FixedVelocityConsensusHook< + Runtime, + RELAY_CHAIN_SLOT_DURATION_MILLIS, + BLOCK_PROCESSING_VELOCITY, + UNINCLUDED_SEGMENT_CAPACITY, + >; +} + +impl parachain_info::Config for Runtime {} + +impl cumulus_pallet_aura_ext::Config for Runtime {} + +parameter_types! { + // Fellows pluralistic body. + pub const FellowsBodyId: BodyId = BodyId::Technical; +} + +/// Privileged origin that represents Root or Fellows pluralistic body. +pub type RootOrFellows = EitherOfDiverse< + EnsureRoot, + EnsureXcm>, +>; + +impl cumulus_pallet_xcmp_queue::Config for Runtime { + type RuntimeEvent = RuntimeEvent; + type XcmExecutor = XcmExecutor; + type ChannelInfo = ParachainSystem; + type VersionWrapper = PolkadotXcm; + type ExecuteOverweightOrigin = EnsureRoot; + type ControllerOrigin = RootOrFellows; + type ControllerOriginConverter = XcmOriginToTransactDispatchOrigin; + type WeightInfo = weights::cumulus_pallet_xcmp_queue::WeightInfo; + type PriceForSiblingDelivery = NoPriceForMessageDelivery; +} + +impl cumulus_pallet_dmp_queue::Config for Runtime { + type RuntimeEvent = RuntimeEvent; + type XcmExecutor = XcmExecutor; + type ExecuteOverweightOrigin = EnsureRoot; +} + +pub const PERIOD: u32 = 6 * HOURS; +pub const OFFSET: u32 = 0; + +impl pallet_session::Config for Runtime { + type RuntimeEvent = RuntimeEvent; + type ValidatorId = ::AccountId; + // we don't have stash and controller, thus we don't need the convert as well. + type ValidatorIdOf = pallet_collator_selection::IdentityCollator; + type ShouldEndSession = pallet_session::PeriodicSessions, ConstU32>; + type NextSessionRotation = pallet_session::PeriodicSessions, ConstU32>; + type SessionManager = CollatorSelection; + // Essentially just Aura, but let's be pedantic. + type SessionHandler = ::KeyTypeIdProviders; + type Keys = SessionKeys; + type WeightInfo = weights::pallet_session::WeightInfo; +} + +impl pallet_aura::Config for Runtime { + type AuthorityId = AuraId; + type DisabledValidators = (); + type MaxAuthorities = ConstU32<100_000>; + type AllowMultipleBlocksPerSlot = ConstBool; + #[cfg(feature = "experimental")] + type SlotDuration = pallet_aura::MinimumPeriodTimesTwo; +} + +parameter_types! { + pub const PotId: PalletId = PalletId(*b"PotStake"); + pub const SessionLength: BlockNumber = 6 * HOURS; + // StakingAdmin pluralistic body. + pub const StakingAdminBodyId: BodyId = BodyId::Defense; +} + +/// We allow Root and the `StakingAdmin` to execute privileged collator selection operations. +pub type CollatorSelectionUpdateOrigin = EitherOfDiverse< + EnsureRoot, + EnsureXcm>, +>; + +impl pallet_collator_selection::Config for Runtime { + type RuntimeEvent = RuntimeEvent; + type Currency = Balances; + type UpdateOrigin = CollatorSelectionUpdateOrigin; + type PotId = PotId; + type MaxCandidates = ConstU32<100>; + type MinEligibleCollators = ConstU32<4>; + type MaxInvulnerables = ConstU32<20>; + // should be a multiple of session or things will get inconsistent + type KickThreshold = ConstU32; + type ValidatorId = ::AccountId; + type ValidatorIdOf = pallet_collator_selection::IdentityCollator; + type ValidatorRegistration = Session; + type WeightInfo = weights::pallet_collator_selection::WeightInfo; +} + +parameter_types! { + // One storage item; key size is 32; value is size 4+4+16+32 bytes = 56 bytes. + pub const DepositBase: Balance = deposit(1, 88); + // Additional storage item size of 32 bytes. + pub const DepositFactor: Balance = deposit(0, 32); +} + +impl pallet_multisig::Config for Runtime { + type RuntimeEvent = RuntimeEvent; + type RuntimeCall = RuntimeCall; + type Currency = Balances; + type DepositBase = DepositBase; + type DepositFactor = DepositFactor; + type MaxSignatories = ConstU32<100>; + type WeightInfo = weights::pallet_multisig::WeightInfo; +} + +impl pallet_utility::Config for Runtime { + type RuntimeEvent = RuntimeEvent; + type RuntimeCall = RuntimeCall; + type PalletsOrigin = OriginCaller; + type WeightInfo = weights::pallet_utility::WeightInfo; +} + +// Create the runtime by composing the FRAME pallets that were previously configured. +construct_runtime!( + pub enum Runtime + { + // System support stuff. + System: frame_system::{Pallet, Call, Config, Storage, Event} = 0, + ParachainSystem: cumulus_pallet_parachain_system::{ + Pallet, Call, Config, Storage, Inherent, Event, ValidateUnsigned, + } = 1, + Timestamp: pallet_timestamp::{Pallet, Call, Storage, Inherent} = 2, + ParachainInfo: parachain_info::{Pallet, Storage, Config} = 3, + + // Monetary stuff. + Balances: pallet_balances::{Pallet, Call, Storage, Config, Event} = 10, + TransactionPayment: pallet_transaction_payment::{Pallet, Storage, Event} = 11, + + // Collator support. The order of these 4 are important and shall not change. + Authorship: pallet_authorship::{Pallet, Storage} = 20, + CollatorSelection: pallet_collator_selection::{Pallet, Call, Storage, Event, Config} = 21, + Session: pallet_session::{Pallet, Call, Storage, Event, Config} = 22, + Aura: pallet_aura::{Pallet, Storage, Config} = 23, + AuraExt: cumulus_pallet_aura_ext::{Pallet, Storage, Config} = 24, + + // XCM helpers. + XcmpQueue: cumulus_pallet_xcmp_queue::{Pallet, Call, Storage, Event} = 30, + PolkadotXcm: pallet_xcm::{Pallet, Call, Event, Origin, Config} = 31, + CumulusXcm: cumulus_pallet_xcm::{Pallet, Event, Origin} = 32, + DmpQueue: cumulus_pallet_dmp_queue::{Pallet, Call, Storage, Event} = 33, + + // Handy utilities. + Utility: pallet_utility::{Pallet, Call, Event} = 40, + Multisig: pallet_multisig::{Pallet, Call, Storage, Event} = 41, + } +); + +#[cfg(feature = "runtime-benchmarks")] +#[macro_use] +extern crate frame_benchmarking; + +#[cfg(feature = "runtime-benchmarks")] +mod benches { + define_benchmarks!( + [frame_system, SystemBench::] + [pallet_balances, Balances] + [pallet_multisig, Multisig] + [pallet_session, SessionBench::] + [pallet_utility, Utility] + [pallet_timestamp, Timestamp] + [pallet_collator_selection, CollatorSelection] + [cumulus_pallet_xcmp_queue, XcmpQueue] + // XCM + [pallet_xcm, PolkadotXcm] + // NOTE: Make sure you point to the individual modules below. + [pallet_xcm_benchmarks::fungible, XcmBalances] + [pallet_xcm_benchmarks::generic, XcmGeneric] + ); +} + +impl_runtime_apis! { + impl sp_consensus_aura::AuraApi for Runtime { + fn slot_duration() -> sp_consensus_aura::SlotDuration { + sp_consensus_aura::SlotDuration::from_millis(Aura::slot_duration()) + } + + fn authorities() -> Vec { + Aura::authorities().into_inner() + } + } + + impl sp_api::Core for Runtime { + fn version() -> RuntimeVersion { + VERSION + } + + fn execute_block(block: Block) { + Executive::execute_block(block) + } + + fn initialize_block(header: &::Header) { + Executive::initialize_block(header) + } + } + + impl sp_api::Metadata for Runtime { + fn metadata() -> OpaqueMetadata { + OpaqueMetadata::new(Runtime::metadata().into()) + } + + fn metadata_at_version(version: u32) -> Option { + Runtime::metadata_at_version(version) + } + + fn metadata_versions() -> sp_std::vec::Vec { + Runtime::metadata_versions() + } + } + + impl sp_block_builder::BlockBuilder for Runtime { + fn apply_extrinsic(extrinsic: ::Extrinsic) -> ApplyExtrinsicResult { + Executive::apply_extrinsic(extrinsic) + } + + fn finalize_block() -> ::Header { + Executive::finalize_block() + } + + fn inherent_extrinsics(data: sp_inherents::InherentData) -> Vec<::Extrinsic> { + data.create_extrinsics() + } + + fn check_inherents( + block: Block, + data: sp_inherents::InherentData, + ) -> sp_inherents::CheckInherentsResult { + data.check_extrinsics(&block) + } + } + + impl sp_transaction_pool::runtime_api::TaggedTransactionQueue for Runtime { + fn validate_transaction( + source: TransactionSource, + tx: ::Extrinsic, + block_hash: ::Hash, + ) -> TransactionValidity { + Executive::validate_transaction(source, tx, block_hash) + } + } + + impl sp_offchain::OffchainWorkerApi for Runtime { + fn offchain_worker(header: &::Header) { + Executive::offchain_worker(header) + } + } + + impl sp_session::SessionKeys for Runtime { + fn generate_session_keys(seed: Option>) -> Vec { + SessionKeys::generate(seed) + } + + fn decode_session_keys( + encoded: Vec, + ) -> Option, KeyTypeId)>> { + SessionKeys::decode_into_raw_public_keys(&encoded) + } + } + + impl frame_system_rpc_runtime_api::AccountNonceApi for Runtime { + fn account_nonce(account: AccountId) -> Nonce { + System::account_nonce(account) + } + } + + impl pallet_transaction_payment_rpc_runtime_api::TransactionPaymentApi for Runtime { + fn query_info( + uxt: ::Extrinsic, + len: u32, + ) -> pallet_transaction_payment_rpc_runtime_api::RuntimeDispatchInfo { + TransactionPayment::query_info(uxt, len) + } + fn query_fee_details( + uxt: ::Extrinsic, + len: u32, + ) -> pallet_transaction_payment::FeeDetails { + TransactionPayment::query_fee_details(uxt, len) + } + fn query_weight_to_fee(weight: Weight) -> Balance { + TransactionPayment::weight_to_fee(weight) + } + fn query_length_to_fee(length: u32) -> Balance { + TransactionPayment::length_to_fee(length) + } + } + + impl pallet_transaction_payment_rpc_runtime_api::TransactionPaymentCallApi + for Runtime + { + fn query_call_info( + call: RuntimeCall, + len: u32, + ) -> pallet_transaction_payment::RuntimeDispatchInfo { + TransactionPayment::query_call_info(call, len) + } + fn query_call_fee_details( + call: RuntimeCall, + len: u32, + ) -> pallet_transaction_payment::FeeDetails { + TransactionPayment::query_call_fee_details(call, len) + } + fn query_weight_to_fee(weight: Weight) -> Balance { + TransactionPayment::weight_to_fee(weight) + } + fn query_length_to_fee(length: u32) -> Balance { + TransactionPayment::length_to_fee(length) + } + } + + impl cumulus_primitives_core::CollectCollationInfo for Runtime { + fn collect_collation_info(header: &::Header) -> cumulus_primitives_core::CollationInfo { + ParachainSystem::collect_collation_info(header) + } + } + + #[cfg(feature = "try-runtime")] + impl frame_try_runtime::TryRuntime for Runtime { + fn on_runtime_upgrade(checks: frame_try_runtime::UpgradeCheckSelect) -> (Weight, Weight) { + let weight = Executive::try_runtime_upgrade(checks).unwrap(); + (weight, RuntimeBlockWeights::get().max_block) + } + + fn execute_block( + block: Block, + state_root_check: bool, + signature_check: bool, + select: frame_try_runtime::TryStateSelect, + ) -> Weight { + // NOTE: intentional unwrap: we don't want to propagate the error backwards, and want to + // have a backtrace here. + Executive::try_execute_block(block, state_root_check, signature_check, select).unwrap() + } + } + + #[cfg(feature = "runtime-benchmarks")] + impl frame_benchmarking::Benchmark for Runtime { + fn benchmark_metadata(extra: bool) -> ( + Vec, + Vec, + ) { + use frame_benchmarking::{Benchmarking, BenchmarkList}; + use frame_support::traits::StorageInfoTrait; + use frame_system_benchmarking::Pallet as SystemBench; + use cumulus_pallet_session_benchmarking::Pallet as SessionBench; + + // This is defined once again in dispatch_benchmark, because list_benchmarks! + // and add_benchmarks! are macros exported by define_benchmarks! macros and those types + // are referenced in that call. + type XcmBalances = pallet_xcm_benchmarks::fungible::Pallet::; + type XcmGeneric = pallet_xcm_benchmarks::generic::Pallet::; + + let mut list = Vec::::new(); + list_benchmarks!(list, extra); + + let storage_info = AllPalletsWithSystem::storage_info(); + (list, storage_info) + } + + fn dispatch_benchmark( + config: frame_benchmarking::BenchmarkConfig + ) -> Result, sp_runtime::RuntimeString> { + use frame_benchmarking::{Benchmarking, BenchmarkBatch, BenchmarkError}; + use sp_storage::TrackedStorageKey; + + use frame_system_benchmarking::Pallet as SystemBench; + impl frame_system_benchmarking::Config for Runtime { + fn setup_set_code_requirements(code: &sp_std::vec::Vec) -> Result<(), BenchmarkError> { + ParachainSystem::initialize_for_set_code_benchmark(code.len() as u32); + Ok(()) + } + + fn verify_set_code() { + System::assert_last_event(cumulus_pallet_parachain_system::Event::::ValidationFunctionStored.into()); + } + } + + use cumulus_pallet_session_benchmarking::Pallet as SessionBench; + impl cumulus_pallet_session_benchmarking::Config for Runtime {} + + use xcm::latest::prelude::*; + use xcm_config::KsmRelayLocation; + + parameter_types! { + pub ExistentialDepositMultiAsset: Option = Some(( + xcm_config::KsmRelayLocation::get(), + ExistentialDeposit::get() + ).into()); + } + + impl pallet_xcm_benchmarks::Config for Runtime { + type XcmConfig = xcm_config::XcmConfig; + type AccountIdConverter = xcm_config::LocationToAccountId; + type DeliveryHelper = cumulus_primitives_utility::ToParentDeliveryHelper< + XcmConfig, + ExistentialDepositMultiAsset, + xcm_config::PriceForParentDelivery, + >; + fn valid_destination() -> Result { + Ok(KsmRelayLocation::get()) + } + fn worst_case_holding(_depositable_count: u32) -> MultiAssets { + // just concrete assets according to relay chain. + let assets: Vec = vec![ + MultiAsset { + id: Concrete(KsmRelayLocation::get()), + fun: Fungible(1_000_000 * UNITS), + } + ]; + assets.into() + } + } + + parameter_types! { + pub const TrustedTeleporter: Option<(MultiLocation, MultiAsset)> = Some(( + KsmRelayLocation::get(), + MultiAsset { fun: Fungible(UNITS), id: Concrete(KsmRelayLocation::get()) }, + )); + pub const CheckedAccount: Option<(AccountId, xcm_builder::MintLocation)> = None; + pub const TrustedReserve: Option<(MultiLocation, MultiAsset)> = None; + } + + impl pallet_xcm_benchmarks::fungible::Config for Runtime { + type TransactAsset = Balances; + + type CheckedAccount = CheckedAccount; + type TrustedTeleporter = TrustedTeleporter; + type TrustedReserve = TrustedReserve; + + fn get_multi_asset() -> MultiAsset { + MultiAsset { + id: Concrete(KsmRelayLocation::get()), + fun: Fungible(UNITS), + } + } + } + + impl pallet_xcm_benchmarks::generic::Config for Runtime { + type TransactAsset = Balances; + type RuntimeCall = RuntimeCall; + + fn worst_case_response() -> (u64, Response) { + (0u64, Response::Version(Default::default())) + } + + fn worst_case_asset_exchange() -> Result<(MultiAssets, MultiAssets), BenchmarkError> { + Err(BenchmarkError::Skip) + } + + fn universal_alias() -> Result<(MultiLocation, Junction), BenchmarkError> { + Err(BenchmarkError::Skip) + } + + fn transact_origin_and_runtime_call() -> Result<(MultiLocation, RuntimeCall), BenchmarkError> { + Ok((KsmRelayLocation::get(), frame_system::Call::remark_with_event { remark: vec![] }.into())) + } + + fn subscribe_origin() -> Result { + Ok(KsmRelayLocation::get()) + } + + fn claimable_asset() -> Result<(MultiLocation, MultiLocation, MultiAssets), BenchmarkError> { + let origin = KsmRelayLocation::get(); + let assets: MultiAssets = (Concrete(KsmRelayLocation::get()), 1_000 * UNITS).into(); + let ticket = MultiLocation { parents: 0, interior: Here }; + Ok((origin, ticket, assets)) + } + + fn unlockable_asset() -> Result<(MultiLocation, MultiLocation, MultiAsset), BenchmarkError> { + Err(BenchmarkError::Skip) + } + + fn export_message_origin_and_destination( + ) -> Result<(MultiLocation, NetworkId, InteriorMultiLocation), BenchmarkError> { + Err(BenchmarkError::Skip) + } + + fn alias_origin() -> Result<(MultiLocation, MultiLocation), BenchmarkError> { + Err(BenchmarkError::Skip) + } + } + + type XcmBalances = pallet_xcm_benchmarks::fungible::Pallet::; + type XcmGeneric = pallet_xcm_benchmarks::generic::Pallet::; + + let whitelist: Vec = vec![ + // Block Number + hex_literal::hex!("26aa394eea5630e07c48ae0c9558cef702a5c1b19ab7a04f536c519aca4983ac").to_vec().into(), + // Total Issuance + hex_literal::hex!("c2261276cc9d1f8598ea4b6a74b15c2f57c875e4cff74148e4628f264b974c80").to_vec().into(), + // Execution Phase + hex_literal::hex!("26aa394eea5630e07c48ae0c9558cef7ff553b5a9862a516939d82b3d3d8661a").to_vec().into(), + // Event Count + hex_literal::hex!("26aa394eea5630e07c48ae0c9558cef70a98fdbe9ce6c55837576c60c7af3850").to_vec().into(), + // System Events + hex_literal::hex!("26aa394eea5630e07c48ae0c9558cef780d41e5e16056765bc8461851072c9d7").to_vec().into(), + ]; + + let mut batches = Vec::::new(); + let params = (&config, &whitelist); + add_benchmarks!(params, batches); + + Ok(batches) + } + } + + impl sp_genesis_builder::GenesisBuilder for Runtime { + fn create_default_config() -> Vec { + create_default_config::() + } + + fn build_config(config: Vec) -> sp_genesis_builder::Result { + build_config::(config) + } + } +} + +cumulus_pallet_parachain_system::register_validate_block! { + Runtime = Runtime, + BlockExecutor = cumulus_pallet_aura_ext::BlockExecutor::, +} diff --git a/cumulus/parachains/runtimes/bridge-hubs/bridge-hub-kusama/src/weights/block_weights.rs b/cumulus/parachains/runtimes/bridge-hubs/bridge-hub-kusama/src/weights/block_weights.rs new file mode 100644 index 000000000000..e7fdb2aae2a0 --- /dev/null +++ b/cumulus/parachains/runtimes/bridge-hubs/bridge-hub-kusama/src/weights/block_weights.rs @@ -0,0 +1,53 @@ +// This file is part of Substrate. + +// 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. + +pub mod constants { + use frame_support::{ + parameter_types, + weights::{constants, Weight}, + }; + + parameter_types! { + /// Importing a block with 0 Extrinsics. + pub const BlockExecutionWeight: Weight = + Weight::from_parts(constants::WEIGHT_REF_TIME_PER_NANOS.saturating_mul(5_000_000), 0); + } + + #[cfg(test)] + mod test_weights { + use frame_support::weights::constants; + + /// Checks that the weight exists and is sane. + // NOTE: If this test fails but you are sure that the generated values are fine, + // you can delete it. + #[test] + fn sane() { + let w = super::constants::BlockExecutionWeight::get(); + + // At least 100 µs. + assert!( + w.ref_time() >= 100u64 * constants::WEIGHT_REF_TIME_PER_MICROS, + "Weight should be at least 100 µs." + ); + // At most 50 ms. + assert!( + w.ref_time() <= 50u64 * constants::WEIGHT_REF_TIME_PER_MILLIS, + "Weight should be at most 50 ms." + ); + } + } +} diff --git a/cumulus/parachains/runtimes/bridge-hubs/bridge-hub-kusama/src/weights/cumulus_pallet_xcmp_queue.rs b/cumulus/parachains/runtimes/bridge-hubs/bridge-hub-kusama/src/weights/cumulus_pallet_xcmp_queue.rs new file mode 100644 index 000000000000..991cba573bf2 --- /dev/null +++ b/cumulus/parachains/runtimes/bridge-hubs/bridge-hub-kusama/src/weights/cumulus_pallet_xcmp_queue.rs @@ -0,0 +1,77 @@ +// Copyright (C) Parity Technologies (UK) Ltd. +// This file is part of Cumulus. + +// Cumulus 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. + +// Cumulus 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 Cumulus. If not, see . + +//! Autogenerated weights for `cumulus_pallet_xcmp_queue` +//! +//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev +//! DATE: 2023-07-31, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! WORST CASE MAP SIZE: `1000000` +//! HOSTNAME: `runner-ynta1nyy-project-238-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz` +//! EXECUTION: ``, WASM-EXECUTION: `Compiled`, CHAIN: `Some("bridge-hub-kusama-dev")`, DB CACHE: 1024 + +// Executed Command: +// ./target/production/polkadot-parachain +// benchmark +// pallet +// --chain=bridge-hub-kusama-dev +// --wasm-execution=compiled +// --pallet=cumulus_pallet_xcmp_queue +// --no-storage-info +// --no-median-slopes +// --no-min-squares +// --extrinsic=* +// --steps=50 +// --repeat=20 +// --json +// --header=./file_header.txt +// --output=./parachains/runtimes/bridge-hubs/bridge-hub-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 `cumulus_pallet_xcmp_queue`. +pub struct WeightInfo(PhantomData); +impl cumulus_pallet_xcmp_queue::WeightInfo for WeightInfo { + /// Storage: `XcmpQueue::QueueConfig` (r:1 w:1) + /// Proof: `XcmpQueue::QueueConfig` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + fn set_config_with_u32() -> Weight { + // Proof Size summary in bytes: + // Measured: `76` + // Estimated: `1561` + // Minimum execution time: 5_129_000 picoseconds. + Weight::from_parts(5_367_000, 0) + .saturating_add(Weight::from_parts(0, 1561)) + .saturating_add(T::DbWeight::get().reads(1)) + .saturating_add(T::DbWeight::get().writes(1)) + } + /// Storage: `XcmpQueue::QueueConfig` (r:1 w:1) + /// Proof: `XcmpQueue::QueueConfig` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + fn set_config_with_weight() -> Weight { + // Proof Size summary in bytes: + // Measured: `76` + // Estimated: `1561` + // Minimum execution time: 5_050_000 picoseconds. + Weight::from_parts(5_565_000, 0) + .saturating_add(Weight::from_parts(0, 1561)) + .saturating_add(T::DbWeight::get().reads(1)) + .saturating_add(T::DbWeight::get().writes(1)) + } +} diff --git a/cumulus/parachains/runtimes/bridge-hubs/bridge-hub-kusama/src/weights/extrinsic_weights.rs b/cumulus/parachains/runtimes/bridge-hubs/bridge-hub-kusama/src/weights/extrinsic_weights.rs new file mode 100644 index 000000000000..1a4adb968bb7 --- /dev/null +++ b/cumulus/parachains/runtimes/bridge-hubs/bridge-hub-kusama/src/weights/extrinsic_weights.rs @@ -0,0 +1,53 @@ +// This file is part of Substrate. + +// 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. + +pub mod constants { + use frame_support::{ + parameter_types, + weights::{constants, Weight}, + }; + + parameter_types! { + /// Executing a NO-OP `System::remarks` Extrinsic. + pub const ExtrinsicBaseWeight: Weight = + Weight::from_parts(constants::WEIGHT_REF_TIME_PER_NANOS.saturating_mul(125_000), 0); + } + + #[cfg(test)] + mod test_weights { + use frame_support::weights::constants; + + /// Checks that the weight exists and is sane. + // NOTE: If this test fails but you are sure that the generated values are fine, + // you can delete it. + #[test] + fn sane() { + let w = super::constants::ExtrinsicBaseWeight::get(); + + // At least 10 µs. + assert!( + w.ref_time() >= 10u64 * constants::WEIGHT_REF_TIME_PER_MICROS, + "Weight should be at least 10 µs." + ); + // At most 1 ms. + assert!( + w.ref_time() <= constants::WEIGHT_REF_TIME_PER_MILLIS, + "Weight should be at most 1 ms." + ); + } + } +} diff --git a/cumulus/parachains/runtimes/bridge-hubs/bridge-hub-kusama/src/weights/frame_system.rs b/cumulus/parachains/runtimes/bridge-hubs/bridge-hub-kusama/src/weights/frame_system.rs new file mode 100644 index 000000000000..5a0a60cc9952 --- /dev/null +++ b/cumulus/parachains/runtimes/bridge-hubs/bridge-hub-kusama/src/weights/frame_system.rs @@ -0,0 +1,155 @@ +// Copyright (C) Parity Technologies (UK) Ltd. +// This file is part of Cumulus. + +// Cumulus 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. + +// Cumulus 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 Cumulus. If not, see . + +//! Autogenerated weights for `frame_system` +//! +//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev +//! DATE: 2023-07-31, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! WORST CASE MAP SIZE: `1000000` +//! HOSTNAME: `runner-ynta1nyy-project-238-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz` +//! EXECUTION: ``, WASM-EXECUTION: `Compiled`, CHAIN: `Some("bridge-hub-kusama-dev")`, DB CACHE: 1024 + +// Executed Command: +// ./target/production/polkadot-parachain +// benchmark +// pallet +// --chain=bridge-hub-kusama-dev +// --wasm-execution=compiled +// --pallet=frame_system +// --no-storage-info +// --no-median-slopes +// --no-min-squares +// --extrinsic=* +// --steps=50 +// --repeat=20 +// --json +// --header=./file_header.txt +// --output=./parachains/runtimes/bridge-hubs/bridge-hub-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 `frame_system`. +pub struct WeightInfo(PhantomData); +impl frame_system::WeightInfo for WeightInfo { + /// The range of component `b` is `[0, 3932160]`. + fn remark(b: u32, ) -> Weight { + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 1_985_000 picoseconds. + Weight::from_parts(2_177_341, 0) + .saturating_add(Weight::from_parts(0, 0)) + // Standard Error: 0 + .saturating_add(Weight::from_parts(386, 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_288_000 picoseconds. + Weight::from_parts(23_888_468, 0) + .saturating_add(Weight::from_parts(0, 0)) + // Standard Error: 8 + .saturating_add(Weight::from_parts(1_718, 0).saturating_mul(b.into())) + } + /// Storage: `System::Digest` (r:1 w:1) + /// Proof: `System::Digest` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: UNKNOWN KEY `0x3a686561707061676573` (r:0 w:1) + /// Proof: UNKNOWN KEY `0x3a686561707061676573` (r:0 w:1) + fn set_heap_pages() -> Weight { + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `1485` + // Minimum execution time: 3_700_000 picoseconds. + Weight::from_parts(3_867_000, 0) + .saturating_add(Weight::from_parts(0, 1485)) + .saturating_add(T::DbWeight::get().reads(1)) + .saturating_add(T::DbWeight::get().writes(2)) + } + /// Storage: `ParachainSystem::ValidationData` (r:1 w:0) + /// Proof: `ParachainSystem::ValidationData` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `ParachainSystem::UpgradeRestrictionSignal` (r:1 w:0) + /// Proof: `ParachainSystem::UpgradeRestrictionSignal` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `ParachainSystem::PendingValidationCode` (r:1 w:1) + /// Proof: `ParachainSystem::PendingValidationCode` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `ParachainSystem::HostConfiguration` (r:1 w:0) + /// Proof: `ParachainSystem::HostConfiguration` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `ParachainSystem::NewValidationCode` (r:0 w:1) + /// Proof: `ParachainSystem::NewValidationCode` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `ParachainSystem::DidSetValidationCode` (r:0 w:1) + /// Proof: `ParachainSystem::DidSetValidationCode` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + fn set_code() -> Weight { + // Proof Size summary in bytes: + // Measured: `119` + // Estimated: `1604` + // Minimum execution time: 100_298_586_000 picoseconds. + Weight::from_parts(101_869_369_000, 0) + .saturating_add(Weight::from_parts(0, 1604)) + .saturating_add(T::DbWeight::get().reads(4)) + .saturating_add(T::DbWeight::get().writes(3)) + } + /// Storage: `Skipped::Metadata` (r:0 w:0) + /// Proof: `Skipped::Metadata` (`max_values`: None, `max_size`: None, mode: `Measured`) + /// The range of component `i` is `[0, 1000]`. + fn set_storage(i: u32, ) -> Weight { + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 2_052_000 picoseconds. + Weight::from_parts(2_115_000, 0) + .saturating_add(Weight::from_parts(0, 0)) + // Standard Error: 2_048 + .saturating_add(Weight::from_parts(755_436, 0).saturating_mul(i.into())) + .saturating_add(T::DbWeight::get().writes((1_u64).saturating_mul(i.into()))) + } + /// Storage: `Skipped::Metadata` (r:0 w:0) + /// Proof: `Skipped::Metadata` (`max_values`: None, `max_size`: None, mode: `Measured`) + /// The range of component `i` is `[0, 1000]`. + fn kill_storage(i: u32, ) -> Weight { + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 2_044_000 picoseconds. + Weight::from_parts(2_110_000, 0) + .saturating_add(Weight::from_parts(0, 0)) + // Standard Error: 1_011 + .saturating_add(Weight::from_parts(569_993, 0).saturating_mul(i.into())) + .saturating_add(T::DbWeight::get().writes((1_u64).saturating_mul(i.into()))) + } + /// Storage: `Skipped::Metadata` (r:0 w:0) + /// Proof: `Skipped::Metadata` (`max_values`: None, `max_size`: None, mode: `Measured`) + /// The range of component `p` is `[0, 1000]`. + fn kill_prefix(p: u32, ) -> Weight { + // Proof Size summary in bytes: + // Measured: `68 + p * (69 ±0)` + // Estimated: `66 + p * (70 ±0)` + // Minimum execution time: 3_741_000 picoseconds. + Weight::from_parts(3_838_000, 0) + .saturating_add(Weight::from_parts(0, 66)) + // Standard Error: 2_455 + .saturating_add(Weight::from_parts(1_216_154, 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/cumulus/parachains/runtimes/bridge-hubs/bridge-hub-kusama/src/weights/mod.rs b/cumulus/parachains/runtimes/bridge-hubs/bridge-hub-kusama/src/weights/mod.rs new file mode 100644 index 000000000000..e226021e77ab --- /dev/null +++ b/cumulus/parachains/runtimes/bridge-hubs/bridge-hub-kusama/src/weights/mod.rs @@ -0,0 +1,38 @@ +// This file is part of Substrate. + +// 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. + +//! Expose the auto generated weight files. + +pub mod block_weights; +pub mod cumulus_pallet_xcmp_queue; +pub mod extrinsic_weights; +pub mod frame_system; +pub mod pallet_balances; +pub mod pallet_collator_selection; +pub mod pallet_multisig; +pub mod pallet_session; +pub mod pallet_timestamp; +pub mod pallet_utility; +pub mod pallet_xcm; +pub mod paritydb_weights; +pub mod rocksdb_weights; +pub mod xcm; + +pub use block_weights::constants::BlockExecutionWeight; +pub use extrinsic_weights::constants::ExtrinsicBaseWeight; +pub use paritydb_weights::constants::ParityDbWeight; +pub use rocksdb_weights::constants::RocksDbWeight; diff --git a/cumulus/parachains/runtimes/bridge-hubs/bridge-hub-kusama/src/weights/pallet_balances.rs b/cumulus/parachains/runtimes/bridge-hubs/bridge-hub-kusama/src/weights/pallet_balances.rs new file mode 100644 index 000000000000..51ca2e660b3b --- /dev/null +++ b/cumulus/parachains/runtimes/bridge-hubs/bridge-hub-kusama/src/weights/pallet_balances.rs @@ -0,0 +1,153 @@ +// Copyright (C) Parity Technologies (UK) Ltd. +// This file is part of Cumulus. + +// Cumulus 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. + +// Cumulus 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 Cumulus. 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-07-31, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! WORST CASE MAP SIZE: `1000000` +//! HOSTNAME: `runner-ynta1nyy-project-238-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz` +//! EXECUTION: ``, WASM-EXECUTION: `Compiled`, CHAIN: `Some("bridge-hub-kusama-dev")`, DB CACHE: 1024 + +// Executed Command: +// ./target/production/polkadot-parachain +// benchmark +// pallet +// --chain=bridge-hub-kusama-dev +// --wasm-execution=compiled +// --pallet=pallet_balances +// --no-storage-info +// --no-median-slopes +// --no-min-squares +// --extrinsic=* +// --steps=50 +// --repeat=20 +// --json +// --header=./file_header.txt +// --output=./parachains/runtimes/bridge-hubs/bridge-hub-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_163_000 picoseconds. + Weight::from_parts(56_056_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: 40_829_000 picoseconds. + Weight::from_parts(42_182_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_212_000 picoseconds. + Weight::from_parts(15_782_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: 22_866_000 picoseconds. + Weight::from_parts(23_452_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_047_000 picoseconds. + Weight::from_parts(58_536_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_622_000 picoseconds. + Weight::from_parts(52_912_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: 17_723_000 picoseconds. + Weight::from_parts(18_383_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]`. + fn upgrade_accounts(u: u32, ) -> Weight { + // Proof Size summary in bytes: + // Measured: `0 + u * (136 ±0)` + // Estimated: `990 + u * (2603 ±0)` + // Minimum execution time: 17_089_000 picoseconds. + Weight::from_parts(17_379_000, 0) + .saturating_add(Weight::from_parts(0, 990)) + // Standard Error: 17_071 + .saturating_add(Weight::from_parts(15_647_341, 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/cumulus/parachains/runtimes/bridge-hubs/bridge-hub-kusama/src/weights/pallet_collator_selection.rs b/cumulus/parachains/runtimes/bridge-hubs/bridge-hub-kusama/src/weights/pallet_collator_selection.rs new file mode 100644 index 000000000000..fa0ac199ca2c --- /dev/null +++ b/cumulus/parachains/runtimes/bridge-hubs/bridge-hub-kusama/src/weights/pallet_collator_selection.rs @@ -0,0 +1,225 @@ +// Copyright (C) Parity Technologies (UK) Ltd. +// This file is part of Cumulus. + +// Cumulus 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. + +// Cumulus 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 Cumulus. If not, see . + +//! Autogenerated weights for `pallet_collator_selection` +//! +//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev +//! DATE: 2023-07-31, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! WORST CASE MAP SIZE: `1000000` +//! HOSTNAME: `runner-ynta1nyy-project-238-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz` +//! EXECUTION: ``, WASM-EXECUTION: `Compiled`, CHAIN: `Some("bridge-hub-kusama-dev")`, DB CACHE: 1024 + +// Executed Command: +// ./target/production/polkadot-parachain +// benchmark +// pallet +// --chain=bridge-hub-kusama-dev +// --wasm-execution=compiled +// --pallet=pallet_collator_selection +// --no-storage-info +// --no-median-slopes +// --no-min-squares +// --extrinsic=* +// --steps=50 +// --repeat=20 +// --json +// --header=./file_header.txt +// --output=./parachains/runtimes/bridge-hubs/bridge-hub-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_collator_selection`. +pub struct WeightInfo(PhantomData); +impl pallet_collator_selection::WeightInfo for WeightInfo { + /// Storage: `Session::NextKeys` (r:20 w:0) + /// Proof: `Session::NextKeys` (`max_values`: None, `max_size`: None, mode: `Measured`) + /// Storage: `CollatorSelection::Invulnerables` (r:0 w:1) + /// Proof: `CollatorSelection::Invulnerables` (`max_values`: Some(1), `max_size`: Some(641), added: 1136, mode: `MaxEncodedLen`) + /// The range of component `b` is `[1, 20]`. + fn set_invulnerables(b: u32, ) -> Weight { + // Proof Size summary in bytes: + // Measured: `196 + b * (79 ±0)` + // Estimated: `1187 + b * (2555 ±0)` + // Minimum execution time: 14_329_000 picoseconds. + Weight::from_parts(11_605_842, 0) + .saturating_add(Weight::from_parts(0, 1187)) + // Standard Error: 4_784 + .saturating_add(Weight::from_parts(3_297_183, 0).saturating_mul(b.into())) + .saturating_add(T::DbWeight::get().reads((1_u64).saturating_mul(b.into()))) + .saturating_add(T::DbWeight::get().writes(1)) + .saturating_add(Weight::from_parts(0, 2555).saturating_mul(b.into())) + } + /// Storage: `Session::NextKeys` (r:1 w:0) + /// Proof: `Session::NextKeys` (`max_values`: None, `max_size`: None, mode: `Measured`) + /// Storage: `CollatorSelection::Invulnerables` (r:1 w:1) + /// Proof: `CollatorSelection::Invulnerables` (`max_values`: Some(1), `max_size`: Some(641), added: 1136, mode: `MaxEncodedLen`) + /// Storage: `CollatorSelection::Candidates` (r:1 w:1) + /// Proof: `CollatorSelection::Candidates` (`max_values`: Some(1), `max_size`: Some(4802), added: 5297, 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 `b` is `[1, 19]`. + /// The range of component `c` is `[1, 99]`. + fn add_invulnerable(b: u32, c: u32, ) -> Weight { + // Proof Size summary in bytes: + // Measured: `757 + b * (32 ±0) + c * (53 ±0)` + // Estimated: `6287 + b * (37 ±0) + c * (53 ±0)` + // Minimum execution time: 47_110_000 picoseconds. + Weight::from_parts(45_234_418, 0) + .saturating_add(Weight::from_parts(0, 6287)) + // Standard Error: 14_452 + .saturating_add(Weight::from_parts(156_031, 0).saturating_mul(b.into())) + // Standard Error: 2_739 + .saturating_add(Weight::from_parts(216_162, 0).saturating_mul(c.into())) + .saturating_add(T::DbWeight::get().reads(4)) + .saturating_add(T::DbWeight::get().writes(3)) + .saturating_add(Weight::from_parts(0, 37).saturating_mul(b.into())) + .saturating_add(Weight::from_parts(0, 53).saturating_mul(c.into())) + } + /// Storage: `CollatorSelection::Candidates` (r:1 w:0) + /// Proof: `CollatorSelection::Candidates` (`max_values`: Some(1), `max_size`: Some(4802), added: 5297, mode: `MaxEncodedLen`) + /// Storage: `CollatorSelection::Invulnerables` (r:1 w:1) + /// Proof: `CollatorSelection::Invulnerables` (`max_values`: Some(1), `max_size`: Some(641), added: 1136, mode: `MaxEncodedLen`) + /// The range of component `b` is `[5, 20]`. + fn remove_invulnerable(b: u32, ) -> Weight { + // Proof Size summary in bytes: + // Measured: `82 + b * (32 ±0)` + // Estimated: `6287` + // Minimum execution time: 15_326_000 picoseconds. + Weight::from_parts(14_914_611, 0) + .saturating_add(Weight::from_parts(0, 6287)) + // Standard Error: 2_274 + .saturating_add(Weight::from_parts(201_234, 0).saturating_mul(b.into())) + .saturating_add(T::DbWeight::get().reads(2)) + .saturating_add(T::DbWeight::get().writes(1)) + } + /// Storage: `CollatorSelection::DesiredCandidates` (r:0 w:1) + /// Proof: `CollatorSelection::DesiredCandidates` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`) + fn set_desired_candidates() -> Weight { + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 7_288_000 picoseconds. + Weight::from_parts(7_472_000, 0) + .saturating_add(Weight::from_parts(0, 0)) + .saturating_add(T::DbWeight::get().writes(1)) + } + /// Storage: `CollatorSelection::CandidacyBond` (r:0 w:1) + /// Proof: `CollatorSelection::CandidacyBond` (`max_values`: Some(1), `max_size`: Some(16), added: 511, mode: `MaxEncodedLen`) + fn set_candidacy_bond() -> Weight { + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 7_137_000 picoseconds. + Weight::from_parts(7_374_000, 0) + .saturating_add(Weight::from_parts(0, 0)) + .saturating_add(T::DbWeight::get().writes(1)) + } + /// Storage: `CollatorSelection::Candidates` (r:1 w:1) + /// Proof: `CollatorSelection::Candidates` (`max_values`: Some(1), `max_size`: Some(4802), added: 5297, mode: `MaxEncodedLen`) + /// Storage: `CollatorSelection::DesiredCandidates` (r:1 w:0) + /// Proof: `CollatorSelection::DesiredCandidates` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`) + /// Storage: `CollatorSelection::Invulnerables` (r:1 w:0) + /// Proof: `CollatorSelection::Invulnerables` (`max_values`: Some(1), `max_size`: Some(641), added: 1136, mode: `MaxEncodedLen`) + /// Storage: `Session::NextKeys` (r:1 w:0) + /// Proof: `Session::NextKeys` (`max_values`: None, `max_size`: None, mode: `Measured`) + /// Storage: `CollatorSelection::CandidacyBond` (r:1 w:0) + /// Proof: `CollatorSelection::CandidacyBond` (`max_values`: Some(1), `max_size`: Some(16), added: 511, mode: `MaxEncodedLen`) + /// Storage: `CollatorSelection::LastAuthoredBlock` (r:0 w:1) + /// Proof: `CollatorSelection::LastAuthoredBlock` (`max_values`: None, `max_size`: Some(44), added: 2519, mode: `MaxEncodedLen`) + /// The range of component `c` is `[1, 99]`. + fn register_as_candidate(c: u32, ) -> Weight { + // Proof Size summary in bytes: + // Measured: `740 + c * (52 ±0)` + // Estimated: `6287 + c * (54 ±0)` + // Minimum execution time: 40_718_000 picoseconds. + Weight::from_parts(43_911_837, 0) + .saturating_add(Weight::from_parts(0, 6287)) + // Standard Error: 3_053 + .saturating_add(Weight::from_parts(229_337, 0).saturating_mul(c.into())) + .saturating_add(T::DbWeight::get().reads(5)) + .saturating_add(T::DbWeight::get().writes(2)) + .saturating_add(Weight::from_parts(0, 54).saturating_mul(c.into())) + } + /// Storage: `CollatorSelection::Candidates` (r:1 w:1) + /// Proof: `CollatorSelection::Candidates` (`max_values`: Some(1), `max_size`: Some(4802), added: 5297, mode: `MaxEncodedLen`) + /// Storage: `CollatorSelection::Invulnerables` (r:1 w:0) + /// Proof: `CollatorSelection::Invulnerables` (`max_values`: Some(1), `max_size`: Some(641), added: 1136, mode: `MaxEncodedLen`) + /// Storage: `CollatorSelection::LastAuthoredBlock` (r:0 w:1) + /// Proof: `CollatorSelection::LastAuthoredBlock` (`max_values`: None, `max_size`: Some(44), added: 2519, mode: `MaxEncodedLen`) + /// The range of component `c` is `[3, 100]`. + fn leave_intent(c: u32, ) -> Weight { + // Proof Size summary in bytes: + // Measured: `334 + c * (49 ±0)` + // Estimated: `6287` + // Minimum execution time: 32_953_000 picoseconds. + Weight::from_parts(34_817_275, 0) + .saturating_add(Weight::from_parts(0, 6287)) + // Standard Error: 2_476 + .saturating_add(Weight::from_parts(198_023, 0).saturating_mul(c.into())) + .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: `System::BlockWeight` (r:1 w:1) + /// Proof: `System::BlockWeight` (`max_values`: Some(1), `max_size`: Some(48), added: 543, mode: `MaxEncodedLen`) + /// Storage: `CollatorSelection::LastAuthoredBlock` (r:0 w:1) + /// Proof: `CollatorSelection::LastAuthoredBlock` (`max_values`: None, `max_size`: Some(44), added: 2519, mode: `MaxEncodedLen`) + fn note_author() -> Weight { + // Proof Size summary in bytes: + // Measured: `155` + // Estimated: `6196` + // Minimum execution time: 45_130_000 picoseconds. + Weight::from_parts(46_733_000, 0) + .saturating_add(Weight::from_parts(0, 6196)) + .saturating_add(T::DbWeight::get().reads(3)) + .saturating_add(T::DbWeight::get().writes(4)) + } + /// Storage: `CollatorSelection::Candidates` (r:1 w:0) + /// Proof: `CollatorSelection::Candidates` (`max_values`: Some(1), `max_size`: Some(4802), added: 5297, mode: `MaxEncodedLen`) + /// Storage: `CollatorSelection::LastAuthoredBlock` (r:100 w:0) + /// Proof: `CollatorSelection::LastAuthoredBlock` (`max_values`: None, `max_size`: Some(44), added: 2519, mode: `MaxEncodedLen`) + /// Storage: `CollatorSelection::Invulnerables` (r:1 w:0) + /// Proof: `CollatorSelection::Invulnerables` (`max_values`: Some(1), `max_size`: Some(641), added: 1136, mode: `MaxEncodedLen`) + /// Storage: `System::BlockWeight` (r:1 w:1) + /// Proof: `System::BlockWeight` (`max_values`: Some(1), `max_size`: Some(48), added: 543, mode: `MaxEncodedLen`) + /// Storage: `System::Account` (r:97 w:97) + /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`) + /// The range of component `r` is `[1, 100]`. + /// The range of component `c` is `[1, 100]`. + fn new_session(r: u32, c: u32, ) -> Weight { + // Proof Size summary in bytes: + // Measured: `2263 + c * (97 ±0) + r * (115 ±0)` + // Estimated: `6287 + c * (2519 ±0) + r * (2603 ±0)` + // Minimum execution time: 16_690_000 picoseconds. + Weight::from_parts(17_188_000, 0) + .saturating_add(Weight::from_parts(0, 6287)) + // Standard Error: 345_320 + .saturating_add(Weight::from_parts(15_166_422, 0).saturating_mul(c.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().writes(1)) + .saturating_add(T::DbWeight::get().writes((1_u64).saturating_mul(c.into()))) + .saturating_add(Weight::from_parts(0, 2519).saturating_mul(c.into())) + .saturating_add(Weight::from_parts(0, 2603).saturating_mul(r.into())) + } +} diff --git a/cumulus/parachains/runtimes/bridge-hubs/bridge-hub-kusama/src/weights/pallet_multisig.rs b/cumulus/parachains/runtimes/bridge-hubs/bridge-hub-kusama/src/weights/pallet_multisig.rs new file mode 100644 index 000000000000..96b2d859ed86 --- /dev/null +++ b/cumulus/parachains/runtimes/bridge-hubs/bridge-hub-kusama/src/weights/pallet_multisig.rs @@ -0,0 +1,165 @@ +// Copyright (C) Parity Technologies (UK) Ltd. +// This file is part of Cumulus. + +// Cumulus 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. + +// Cumulus 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 Cumulus. If not, see . + +//! Autogenerated weights for `pallet_multisig` +//! +//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev +//! DATE: 2023-07-31, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! WORST CASE MAP SIZE: `1000000` +//! HOSTNAME: `runner-ynta1nyy-project-238-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz` +//! EXECUTION: ``, WASM-EXECUTION: `Compiled`, CHAIN: `Some("bridge-hub-kusama-dev")`, DB CACHE: 1024 + +// Executed Command: +// ./target/production/polkadot-parachain +// benchmark +// pallet +// --chain=bridge-hub-kusama-dev +// --wasm-execution=compiled +// --pallet=pallet_multisig +// --no-storage-info +// --no-median-slopes +// --no-min-squares +// --extrinsic=* +// --steps=50 +// --repeat=20 +// --json +// --header=./file_header.txt +// --output=./parachains/runtimes/bridge-hubs/bridge-hub-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_multisig`. +pub struct WeightInfo(PhantomData); +impl pallet_multisig::WeightInfo for WeightInfo { + /// The range of component `z` is `[0, 10000]`. + fn as_multi_threshold_1(z: u32, ) -> Weight { + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 13_602_000 picoseconds. + Weight::from_parts(14_565_036, 0) + .saturating_add(Weight::from_parts(0, 0)) + // Standard Error: 8 + .saturating_add(Weight::from_parts(518, 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`) + /// The range of component `s` is `[2, 100]`. + /// The range of component `z` is `[0, 10000]`. + fn as_multi_create(s: u32, z: u32, ) -> Weight { + // Proof Size summary in bytes: + // Measured: `263 + s * (2 ±0)` + // Estimated: `6811` + // Minimum execution time: 46_075_000 picoseconds. + Weight::from_parts(33_730_493, 0) + .saturating_add(Weight::from_parts(0, 6811)) + // Standard Error: 1_049 + .saturating_add(Weight::from_parts(134_211, 0).saturating_mul(s.into())) + // Standard Error: 10 + .saturating_add(Weight::from_parts(1_448, 0).saturating_mul(z.into())) + .saturating_add(T::DbWeight::get().reads(1)) + .saturating_add(T::DbWeight::get().writes(1)) + } + /// Storage: `Multisig::Multisigs` (r:1 w:1) + /// Proof: `Multisig::Multisigs` (`max_values`: None, `max_size`: Some(3346), added: 5821, mode: `MaxEncodedLen`) + /// The range of component `s` is `[3, 100]`. + /// The range of component `z` is `[0, 10000]`. + fn as_multi_approve(s: u32, z: u32, ) -> Weight { + // Proof Size summary in bytes: + // Measured: `282` + // Estimated: `6811` + // Minimum execution time: 29_389_000 picoseconds. + Weight::from_parts(19_639_583, 0) + .saturating_add(Weight::from_parts(0, 6811)) + // Standard Error: 976 + .saturating_add(Weight::from_parts(106_598, 0).saturating_mul(s.into())) + // Standard Error: 9 + .saturating_add(Weight::from_parts(1_457, 0).saturating_mul(z.into())) + .saturating_add(T::DbWeight::get().reads(1)) + .saturating_add(T::DbWeight::get().writes(1)) + } + /// Storage: `Multisig::Multisigs` (r:1 w:1) + /// Proof: `Multisig::Multisigs` (`max_values`: None, `max_size`: Some(3346), added: 5821, 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 `[2, 100]`. + /// The range of component `z` is `[0, 10000]`. + fn as_multi_complete(s: u32, z: u32, ) -> Weight { + // Proof Size summary in bytes: + // Measured: `388 + s * (33 ±0)` + // Estimated: `6811` + // Minimum execution time: 50_438_000 picoseconds. + Weight::from_parts(36_195_308, 0) + .saturating_add(Weight::from_parts(0, 6811)) + // Standard Error: 1_689 + .saturating_add(Weight::from_parts(176_067, 0).saturating_mul(s.into())) + // Standard Error: 16 + .saturating_add(Weight::from_parts(1_545, 0).saturating_mul(z.into())) + .saturating_add(T::DbWeight::get().reads(2)) + .saturating_add(T::DbWeight::get().writes(2)) + } + /// Storage: `Multisig::Multisigs` (r:1 w:1) + /// Proof: `Multisig::Multisigs` (`max_values`: None, `max_size`: Some(3346), added: 5821, mode: `MaxEncodedLen`) + /// The range of component `s` is `[2, 100]`. + fn approve_as_multi_create(s: u32, ) -> Weight { + // Proof Size summary in bytes: + // Measured: `263 + s * (2 ±0)` + // Estimated: `6811` + // Minimum execution time: 32_134_000 picoseconds. + Weight::from_parts(32_149_785, 0) + .saturating_add(Weight::from_parts(0, 6811)) + // Standard Error: 1_082 + .saturating_add(Weight::from_parts(145_390, 0).saturating_mul(s.into())) + .saturating_add(T::DbWeight::get().reads(1)) + .saturating_add(T::DbWeight::get().writes(1)) + } + /// Storage: `Multisig::Multisigs` (r:1 w:1) + /// Proof: `Multisig::Multisigs` (`max_values`: None, `max_size`: Some(3346), added: 5821, mode: `MaxEncodedLen`) + /// The range of component `s` is `[2, 100]`. + fn approve_as_multi_approve(s: u32, ) -> Weight { + // Proof Size summary in bytes: + // Measured: `282` + // Estimated: `6811` + // Minimum execution time: 17_560_000 picoseconds. + Weight::from_parts(18_144_079, 0) + .saturating_add(Weight::from_parts(0, 6811)) + // Standard Error: 763 + .saturating_add(Weight::from_parts(114_298, 0).saturating_mul(s.into())) + .saturating_add(T::DbWeight::get().reads(1)) + .saturating_add(T::DbWeight::get().writes(1)) + } + /// Storage: `Multisig::Multisigs` (r:1 w:1) + /// Proof: `Multisig::Multisigs` (`max_values`: None, `max_size`: Some(3346), added: 5821, mode: `MaxEncodedLen`) + /// The range of component `s` is `[2, 100]`. + fn cancel_as_multi(s: u32, ) -> Weight { + // Proof Size summary in bytes: + // Measured: `454 + s * (1 ±0)` + // Estimated: `6811` + // Minimum execution time: 32_360_000 picoseconds. + Weight::from_parts(33_566_579, 0) + .saturating_add(Weight::from_parts(0, 6811)) + // Standard Error: 1_314 + .saturating_add(Weight::from_parts(126_583, 0).saturating_mul(s.into())) + .saturating_add(T::DbWeight::get().reads(1)) + .saturating_add(T::DbWeight::get().writes(1)) + } +} diff --git a/cumulus/parachains/runtimes/bridge-hubs/bridge-hub-kusama/src/weights/pallet_session.rs b/cumulus/parachains/runtimes/bridge-hubs/bridge-hub-kusama/src/weights/pallet_session.rs new file mode 100644 index 000000000000..cc1b4aeb0ddb --- /dev/null +++ b/cumulus/parachains/runtimes/bridge-hubs/bridge-hub-kusama/src/weights/pallet_session.rs @@ -0,0 +1,81 @@ +// Copyright (C) Parity Technologies (UK) Ltd. +// This file is part of Cumulus. + +// Cumulus 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. + +// Cumulus 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 Cumulus. If not, see . + +//! Autogenerated weights for `pallet_session` +//! +//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev +//! DATE: 2023-07-31, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! WORST CASE MAP SIZE: `1000000` +//! HOSTNAME: `runner-ynta1nyy-project-238-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz` +//! EXECUTION: ``, WASM-EXECUTION: `Compiled`, CHAIN: `Some("bridge-hub-kusama-dev")`, DB CACHE: 1024 + +// Executed Command: +// ./target/production/polkadot-parachain +// benchmark +// pallet +// --chain=bridge-hub-kusama-dev +// --wasm-execution=compiled +// --pallet=pallet_session +// --no-storage-info +// --no-median-slopes +// --no-min-squares +// --extrinsic=* +// --steps=50 +// --repeat=20 +// --json +// --header=./file_header.txt +// --output=./parachains/runtimes/bridge-hubs/bridge-hub-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_session`. +pub struct WeightInfo(PhantomData); +impl pallet_session::WeightInfo for WeightInfo { + /// Storage: `Session::NextKeys` (r:1 w:1) + /// Proof: `Session::NextKeys` (`max_values`: None, `max_size`: None, mode: `Measured`) + /// Storage: `Session::KeyOwner` (r:1 w:1) + /// Proof: `Session::KeyOwner` (`max_values`: None, `max_size`: None, mode: `Measured`) + fn set_keys() -> Weight { + // Proof Size summary in bytes: + // Measured: `297` + // Estimated: `3762` + // Minimum execution time: 17_170_000 picoseconds. + Weight::from_parts(17_523_000, 0) + .saturating_add(Weight::from_parts(0, 3762)) + .saturating_add(T::DbWeight::get().reads(2)) + .saturating_add(T::DbWeight::get().writes(2)) + } + /// Storage: `Session::NextKeys` (r:1 w:1) + /// Proof: `Session::NextKeys` (`max_values`: None, `max_size`: None, mode: `Measured`) + /// Storage: `Session::KeyOwner` (r:0 w:1) + /// Proof: `Session::KeyOwner` (`max_values`: None, `max_size`: None, mode: `Measured`) + fn purge_keys() -> Weight { + // Proof Size summary in bytes: + // Measured: `279` + // Estimated: `3744` + // Minimum execution time: 13_273_000 picoseconds. + Weight::from_parts(14_200_000, 0) + .saturating_add(Weight::from_parts(0, 3744)) + .saturating_add(T::DbWeight::get().reads(1)) + .saturating_add(T::DbWeight::get().writes(2)) + } +} diff --git a/cumulus/parachains/runtimes/bridge-hubs/bridge-hub-kusama/src/weights/pallet_timestamp.rs b/cumulus/parachains/runtimes/bridge-hubs/bridge-hub-kusama/src/weights/pallet_timestamp.rs new file mode 100644 index 000000000000..32f6e4a6b435 --- /dev/null +++ b/cumulus/parachains/runtimes/bridge-hubs/bridge-hub-kusama/src/weights/pallet_timestamp.rs @@ -0,0 +1,75 @@ +// Copyright (C) Parity Technologies (UK) Ltd. +// This file is part of Cumulus. + +// Cumulus 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. + +// Cumulus 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 Cumulus. If not, see . + +//! Autogenerated weights for `pallet_timestamp` +//! +//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev +//! DATE: 2023-07-31, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! WORST CASE MAP SIZE: `1000000` +//! HOSTNAME: `runner-ynta1nyy-project-238-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz` +//! EXECUTION: ``, WASM-EXECUTION: `Compiled`, CHAIN: `Some("bridge-hub-kusama-dev")`, DB CACHE: 1024 + +// Executed Command: +// ./target/production/polkadot-parachain +// benchmark +// pallet +// --chain=bridge-hub-kusama-dev +// --wasm-execution=compiled +// --pallet=pallet_timestamp +// --no-storage-info +// --no-median-slopes +// --no-min-squares +// --extrinsic=* +// --steps=50 +// --repeat=20 +// --json +// --header=./file_header.txt +// --output=./parachains/runtimes/bridge-hubs/bridge-hub-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_timestamp`. +pub struct WeightInfo(PhantomData); +impl pallet_timestamp::WeightInfo for WeightInfo { + /// Storage: `Timestamp::Now` (r:1 w:1) + /// Proof: `Timestamp::Now` (`max_values`: Some(1), `max_size`: Some(8), added: 503, mode: `MaxEncodedLen`) + /// Storage: `Aura::CurrentSlot` (r:1 w:0) + /// Proof: `Aura::CurrentSlot` (`max_values`: Some(1), `max_size`: Some(8), added: 503, mode: `MaxEncodedLen`) + fn set() -> Weight { + // Proof Size summary in bytes: + // Measured: `49` + // Estimated: `1493` + // Minimum execution time: 7_794_000 picoseconds. + Weight::from_parts(8_075_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: `57` + // Estimated: `0` + // Minimum execution time: 3_338_000 picoseconds. + Weight::from_parts(3_471_000, 0) + .saturating_add(Weight::from_parts(0, 0)) + } +} diff --git a/cumulus/parachains/runtimes/bridge-hubs/bridge-hub-kusama/src/weights/pallet_utility.rs b/cumulus/parachains/runtimes/bridge-hubs/bridge-hub-kusama/src/weights/pallet_utility.rs new file mode 100644 index 000000000000..15b06676cd36 --- /dev/null +++ b/cumulus/parachains/runtimes/bridge-hubs/bridge-hub-kusama/src/weights/pallet_utility.rs @@ -0,0 +1,102 @@ +// Copyright (C) Parity Technologies (UK) Ltd. +// This file is part of Cumulus. + +// Cumulus 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. + +// Cumulus 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 Cumulus. If not, see . + +//! Autogenerated weights for `pallet_utility` +//! +//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev +//! DATE: 2023-07-31, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! WORST CASE MAP SIZE: `1000000` +//! HOSTNAME: `runner-ynta1nyy-project-238-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz` +//! EXECUTION: ``, WASM-EXECUTION: `Compiled`, CHAIN: `Some("bridge-hub-kusama-dev")`, DB CACHE: 1024 + +// Executed Command: +// ./target/production/polkadot-parachain +// benchmark +// pallet +// --chain=bridge-hub-kusama-dev +// --wasm-execution=compiled +// --pallet=pallet_utility +// --no-storage-info +// --no-median-slopes +// --no-min-squares +// --extrinsic=* +// --steps=50 +// --repeat=20 +// --json +// --header=./file_header.txt +// --output=./parachains/runtimes/bridge-hubs/bridge-hub-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_utility`. +pub struct WeightInfo(PhantomData); +impl pallet_utility::WeightInfo for WeightInfo { + /// The range of component `c` is `[0, 1000]`. + fn batch(c: u32, ) -> Weight { + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 6_641_000 picoseconds. + Weight::from_parts(7_103_558, 0) + .saturating_add(Weight::from_parts(0, 0)) + // Standard Error: 1_172 + .saturating_add(Weight::from_parts(4_907_384, 0).saturating_mul(c.into())) + } + fn as_derivative() -> Weight { + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 4_741_000 picoseconds. + Weight::from_parts(4_870_000, 0) + .saturating_add(Weight::from_parts(0, 0)) + } + /// The range of component `c` is `[0, 1000]`. + fn batch_all(c: u32, ) -> Weight { + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 6_561_000 picoseconds. + Weight::from_parts(12_252_064, 0) + .saturating_add(Weight::from_parts(0, 0)) + // Standard Error: 1_750 + .saturating_add(Weight::from_parts(5_193_404, 0).saturating_mul(c.into())) + } + fn dispatch_as() -> Weight { + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 8_646_000 picoseconds. + Weight::from_parts(8_927_000, 0) + .saturating_add(Weight::from_parts(0, 0)) + } + /// The range of component `c` is `[0, 1000]`. + fn force_batch(c: u32, ) -> Weight { + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 6_726_000 picoseconds. + Weight::from_parts(8_025_954, 0) + .saturating_add(Weight::from_parts(0, 0)) + // Standard Error: 1_746 + .saturating_add(Weight::from_parts(4_936_537, 0).saturating_mul(c.into())) + } +} diff --git a/cumulus/parachains/runtimes/bridge-hubs/bridge-hub-kusama/src/weights/pallet_xcm.rs b/cumulus/parachains/runtimes/bridge-hubs/bridge-hub-kusama/src/weights/pallet_xcm.rs new file mode 100644 index 000000000000..71bc58307710 --- /dev/null +++ b/cumulus/parachains/runtimes/bridge-hubs/bridge-hub-kusama/src/weights/pallet_xcm.rs @@ -0,0 +1,289 @@ +// Copyright (C) Parity Technologies (UK) Ltd. +// This file is part of Cumulus. + +// Cumulus 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. + +// Cumulus 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 Cumulus. If not, see . + +//! Autogenerated weights for `pallet_xcm` +//! +//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev +//! DATE: 2023-07-31, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! WORST CASE MAP SIZE: `1000000` +//! HOSTNAME: `runner-ynta1nyy-project-238-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz` +//! EXECUTION: ``, WASM-EXECUTION: `Compiled`, CHAIN: `Some("bridge-hub-kusama-dev")`, DB CACHE: 1024 + +// Executed Command: +// ./target/production/polkadot-parachain +// benchmark +// pallet +// --chain=bridge-hub-kusama-dev +// --wasm-execution=compiled +// --pallet=pallet_xcm +// --no-storage-info +// --no-median-slopes +// --no-min-squares +// --extrinsic=* +// --steps=50 +// --repeat=20 +// --json +// --header=./file_header.txt +// --output=./parachains/runtimes/bridge-hubs/bridge-hub-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_xcm`. +pub struct WeightInfo(PhantomData); +impl pallet_xcm::WeightInfo for WeightInfo { + /// Storage: `PolkadotXcm::SupportedVersion` (r:1 w:0) + /// Proof: `PolkadotXcm::SupportedVersion` (`max_values`: None, `max_size`: None, mode: `Measured`) + /// Storage: `PolkadotXcm::VersionDiscoveryQueue` (r:1 w:1) + /// Proof: `PolkadotXcm::VersionDiscoveryQueue` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `PolkadotXcm::SafeXcmVersion` (r:1 w:0) + /// Proof: `PolkadotXcm::SafeXcmVersion` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `ParachainSystem::HostConfiguration` (r:1 w:0) + /// Proof: `ParachainSystem::HostConfiguration` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `ParachainSystem::PendingUpwardMessages` (r:1 w:1) + /// Proof: `ParachainSystem::PendingUpwardMessages` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + fn send() -> Weight { + // Proof Size summary in bytes: + // Measured: `38` + // Estimated: `3503` + // Minimum execution time: 27_523_000 picoseconds. + Weight::from_parts(28_238_000, 0) + .saturating_add(Weight::from_parts(0, 3503)) + .saturating_add(T::DbWeight::get().reads(5)) + .saturating_add(T::DbWeight::get().writes(2)) + } + /// Storage: `ParachainInfo::ParachainId` (r:1 w:0) + /// Proof: `ParachainInfo::ParachainId` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`) + fn teleport_assets() -> Weight { + // Proof Size summary in bytes: + // Measured: `32` + // Estimated: `1489` + // Minimum execution time: 24_139_000 picoseconds. + Weight::from_parts(24_806_000, 0) + .saturating_add(Weight::from_parts(0, 1489)) + .saturating_add(T::DbWeight::get().reads(1)) + } + /// Storage: `Benchmark::Override` (r:0 w:0) + /// Proof: `Benchmark::Override` (`max_values`: None, `max_size`: None, mode: `Measured`) + fn reserve_transfer_assets() -> Weight { + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 18_446_744_073_709_551_000 picoseconds. + Weight::from_parts(18_446_744_073_709_551_000, 0) + .saturating_add(Weight::from_parts(0, 0)) + } + /// Storage: `Benchmark::Override` (r:0 w:0) + /// Proof: `Benchmark::Override` (`max_values`: None, `max_size`: None, mode: `Measured`) + fn execute() -> Weight { + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 18_446_744_073_709_551_000 picoseconds. + Weight::from_parts(18_446_744_073_709_551_000, 0) + .saturating_add(Weight::from_parts(0, 0)) + } + /// Storage: `PolkadotXcm::SupportedVersion` (r:0 w:1) + /// Proof: `PolkadotXcm::SupportedVersion` (`max_values`: None, `max_size`: None, mode: `Measured`) + fn force_xcm_version() -> Weight { + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 8_988_000 picoseconds. + Weight::from_parts(9_227_000, 0) + .saturating_add(Weight::from_parts(0, 0)) + .saturating_add(T::DbWeight::get().writes(1)) + } + /// Storage: `PolkadotXcm::SafeXcmVersion` (r:0 w:1) + /// Proof: `PolkadotXcm::SafeXcmVersion` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + fn force_default_xcm_version() -> Weight { + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 2_571_000 picoseconds. + Weight::from_parts(2_667_000, 0) + .saturating_add(Weight::from_parts(0, 0)) + .saturating_add(T::DbWeight::get().writes(1)) + } + /// Storage: `PolkadotXcm::VersionNotifiers` (r:1 w:1) + /// Proof: `PolkadotXcm::VersionNotifiers` (`max_values`: None, `max_size`: None, mode: `Measured`) + /// Storage: `PolkadotXcm::QueryCounter` (r:1 w:1) + /// Proof: `PolkadotXcm::QueryCounter` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `PolkadotXcm::SupportedVersion` (r:1 w:0) + /// Proof: `PolkadotXcm::SupportedVersion` (`max_values`: None, `max_size`: None, mode: `Measured`) + /// Storage: `PolkadotXcm::VersionDiscoveryQueue` (r:1 w:1) + /// Proof: `PolkadotXcm::VersionDiscoveryQueue` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `PolkadotXcm::SafeXcmVersion` (r:1 w:0) + /// Proof: `PolkadotXcm::SafeXcmVersion` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `ParachainSystem::HostConfiguration` (r:1 w:0) + /// Proof: `ParachainSystem::HostConfiguration` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `ParachainSystem::PendingUpwardMessages` (r:1 w:1) + /// Proof: `ParachainSystem::PendingUpwardMessages` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `PolkadotXcm::Queries` (r:0 w:1) + /// Proof: `PolkadotXcm::Queries` (`max_values`: None, `max_size`: None, mode: `Measured`) + fn force_subscribe_version_notify() -> Weight { + // Proof Size summary in bytes: + // Measured: `38` + // Estimated: `3503` + // Minimum execution time: 33_194_000 picoseconds. + Weight::from_parts(34_089_000, 0) + .saturating_add(Weight::from_parts(0, 3503)) + .saturating_add(T::DbWeight::get().reads(7)) + .saturating_add(T::DbWeight::get().writes(5)) + } + /// Storage: `PolkadotXcm::VersionNotifiers` (r:1 w:1) + /// Proof: `PolkadotXcm::VersionNotifiers` (`max_values`: None, `max_size`: None, mode: `Measured`) + /// Storage: `PolkadotXcm::SupportedVersion` (r:1 w:0) + /// Proof: `PolkadotXcm::SupportedVersion` (`max_values`: None, `max_size`: None, mode: `Measured`) + /// Storage: `PolkadotXcm::VersionDiscoveryQueue` (r:1 w:1) + /// Proof: `PolkadotXcm::VersionDiscoveryQueue` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `PolkadotXcm::SafeXcmVersion` (r:1 w:0) + /// Proof: `PolkadotXcm::SafeXcmVersion` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `ParachainSystem::HostConfiguration` (r:1 w:0) + /// Proof: `ParachainSystem::HostConfiguration` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `ParachainSystem::PendingUpwardMessages` (r:1 w:1) + /// Proof: `ParachainSystem::PendingUpwardMessages` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `PolkadotXcm::Queries` (r:0 w:1) + /// Proof: `PolkadotXcm::Queries` (`max_values`: None, `max_size`: None, mode: `Measured`) + fn force_unsubscribe_version_notify() -> Weight { + // Proof Size summary in bytes: + // Measured: `255` + // Estimated: `3720` + // Minimum execution time: 35_413_000 picoseconds. + Weight::from_parts(36_359_000, 0) + .saturating_add(Weight::from_parts(0, 3720)) + .saturating_add(T::DbWeight::get().reads(6)) + .saturating_add(T::DbWeight::get().writes(4)) + } + /// Storage: `PolkadotXcm::XcmExecutionSuspended` (r:0 w:1) + /// Proof: `PolkadotXcm::XcmExecutionSuspended` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + fn force_suspension() -> Weight { + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 2_679_000 picoseconds. + Weight::from_parts(2_823_000, 0) + .saturating_add(Weight::from_parts(0, 0)) + .saturating_add(T::DbWeight::get().writes(1)) + } + /// Storage: `PolkadotXcm::SupportedVersion` (r:4 w:2) + /// Proof: `PolkadotXcm::SupportedVersion` (`max_values`: None, `max_size`: None, mode: `Measured`) + fn migrate_supported_version() -> Weight { + // Proof Size summary in bytes: + // Measured: `95` + // Estimated: `10985` + // Minimum execution time: 15_117_000 picoseconds. + Weight::from_parts(15_603_000, 0) + .saturating_add(Weight::from_parts(0, 10985)) + .saturating_add(T::DbWeight::get().reads(4)) + .saturating_add(T::DbWeight::get().writes(2)) + } + /// Storage: `PolkadotXcm::VersionNotifiers` (r:4 w:2) + /// Proof: `PolkadotXcm::VersionNotifiers` (`max_values`: None, `max_size`: None, mode: `Measured`) + fn migrate_version_notifiers() -> Weight { + // Proof Size summary in bytes: + // Measured: `99` + // Estimated: `10989` + // Minimum execution time: 14_978_000 picoseconds. + Weight::from_parts(15_370_000, 0) + .saturating_add(Weight::from_parts(0, 10989)) + .saturating_add(T::DbWeight::get().reads(4)) + .saturating_add(T::DbWeight::get().writes(2)) + } + /// Storage: `PolkadotXcm::VersionNotifyTargets` (r:5 w:0) + /// Proof: `PolkadotXcm::VersionNotifyTargets` (`max_values`: None, `max_size`: None, mode: `Measured`) + fn already_notified_target() -> Weight { + // Proof Size summary in bytes: + // Measured: `106` + // Estimated: `13471` + // Minimum execution time: 16_549_000 picoseconds. + Weight::from_parts(16_944_000, 0) + .saturating_add(Weight::from_parts(0, 13471)) + .saturating_add(T::DbWeight::get().reads(5)) + } + /// Storage: `PolkadotXcm::VersionNotifyTargets` (r:2 w:1) + /// Proof: `PolkadotXcm::VersionNotifyTargets` (`max_values`: None, `max_size`: None, mode: `Measured`) + /// Storage: `PolkadotXcm::SupportedVersion` (r:1 w:0) + /// Proof: `PolkadotXcm::SupportedVersion` (`max_values`: None, `max_size`: None, mode: `Measured`) + /// Storage: `PolkadotXcm::VersionDiscoveryQueue` (r:1 w:1) + /// Proof: `PolkadotXcm::VersionDiscoveryQueue` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `PolkadotXcm::SafeXcmVersion` (r:1 w:0) + /// Proof: `PolkadotXcm::SafeXcmVersion` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `ParachainSystem::HostConfiguration` (r:1 w:0) + /// Proof: `ParachainSystem::HostConfiguration` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `ParachainSystem::PendingUpwardMessages` (r:1 w:1) + /// Proof: `ParachainSystem::PendingUpwardMessages` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + fn notify_current_targets() -> Weight { + // Proof Size summary in bytes: + // Measured: `106` + // Estimated: `6046` + // Minimum execution time: 30_111_000 picoseconds. + Weight::from_parts(30_795_000, 0) + .saturating_add(Weight::from_parts(0, 6046)) + .saturating_add(T::DbWeight::get().reads(7)) + .saturating_add(T::DbWeight::get().writes(3)) + } + /// Storage: `PolkadotXcm::VersionNotifyTargets` (r:3 w:0) + /// Proof: `PolkadotXcm::VersionNotifyTargets` (`max_values`: None, `max_size`: None, mode: `Measured`) + fn notify_target_migration_fail() -> Weight { + // Proof Size summary in bytes: + // Measured: `136` + // Estimated: `8551` + // Minimum execution time: 8_622_000 picoseconds. + Weight::from_parts(8_865_000, 0) + .saturating_add(Weight::from_parts(0, 8551)) + .saturating_add(T::DbWeight::get().reads(3)) + } + /// Storage: `PolkadotXcm::VersionNotifyTargets` (r:4 w:2) + /// Proof: `PolkadotXcm::VersionNotifyTargets` (`max_values`: None, `max_size`: None, mode: `Measured`) + fn migrate_version_notify_targets() -> Weight { + // Proof Size summary in bytes: + // Measured: `106` + // Estimated: `10996` + // Minimum execution time: 15_194_000 picoseconds. + Weight::from_parts(15_646_000, 0) + .saturating_add(Weight::from_parts(0, 10996)) + .saturating_add(T::DbWeight::get().reads(4)) + .saturating_add(T::DbWeight::get().writes(2)) + } + /// Storage: `PolkadotXcm::VersionNotifyTargets` (r:4 w:2) + /// Proof: `PolkadotXcm::VersionNotifyTargets` (`max_values`: None, `max_size`: None, mode: `Measured`) + /// Storage: `PolkadotXcm::SupportedVersion` (r:1 w:0) + /// Proof: `PolkadotXcm::SupportedVersion` (`max_values`: None, `max_size`: None, mode: `Measured`) + /// Storage: `PolkadotXcm::VersionDiscoveryQueue` (r:1 w:1) + /// Proof: `PolkadotXcm::VersionDiscoveryQueue` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `PolkadotXcm::SafeXcmVersion` (r:1 w:0) + /// Proof: `PolkadotXcm::SafeXcmVersion` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `ParachainSystem::HostConfiguration` (r:1 w:0) + /// Proof: `ParachainSystem::HostConfiguration` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `ParachainSystem::PendingUpwardMessages` (r:1 w:1) + /// Proof: `ParachainSystem::PendingUpwardMessages` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + fn migrate_and_notify_old_targets() -> Weight { + // Proof Size summary in bytes: + // Measured: `112` + // Estimated: `11002` + // Minimum execution time: 36_625_000 picoseconds. + Weight::from_parts(37_571_000, 0) + .saturating_add(Weight::from_parts(0, 11002)) + .saturating_add(T::DbWeight::get().reads(9)) + .saturating_add(T::DbWeight::get().writes(4)) + } +} diff --git a/cumulus/parachains/runtimes/bridge-hubs/bridge-hub-kusama/src/weights/paritydb_weights.rs b/cumulus/parachains/runtimes/bridge-hubs/bridge-hub-kusama/src/weights/paritydb_weights.rs new file mode 100644 index 000000000000..25679703831a --- /dev/null +++ b/cumulus/parachains/runtimes/bridge-hubs/bridge-hub-kusama/src/weights/paritydb_weights.rs @@ -0,0 +1,63 @@ +// This file is part of Substrate. + +// 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. + +pub mod constants { + use frame_support::{ + parameter_types, + weights::{constants, RuntimeDbWeight}, + }; + + parameter_types! { + /// `ParityDB` can be enabled with a feature flag, but is still experimental. These weights + /// are available for brave runtime engineers who may want to try this out as default. + pub const ParityDbWeight: RuntimeDbWeight = RuntimeDbWeight { + read: 8_000 * constants::WEIGHT_REF_TIME_PER_NANOS, + write: 50_000 * constants::WEIGHT_REF_TIME_PER_NANOS, + }; + } + + #[cfg(test)] + mod test_db_weights { + use super::constants::ParityDbWeight as W; + use frame_support::weights::constants; + + /// Checks that all weights exist and have sane values. + // NOTE: If this test fails but you are sure that the generated values are fine, + // you can delete it. + #[test] + fn sane() { + // At least 1 µs. + assert!( + W::get().reads(1).ref_time() >= constants::WEIGHT_REF_TIME_PER_MICROS, + "Read weight should be at least 1 µs." + ); + assert!( + W::get().writes(1).ref_time() >= constants::WEIGHT_REF_TIME_PER_MICROS, + "Write weight should be at least 1 µs." + ); + // At most 1 ms. + assert!( + W::get().reads(1).ref_time() <= constants::WEIGHT_REF_TIME_PER_MILLIS, + "Read weight should be at most 1 ms." + ); + assert!( + W::get().writes(1).ref_time() <= constants::WEIGHT_REF_TIME_PER_MILLIS, + "Write weight should be at most 1 ms." + ); + } + } +} diff --git a/cumulus/parachains/runtimes/bridge-hubs/bridge-hub-kusama/src/weights/rocksdb_weights.rs b/cumulus/parachains/runtimes/bridge-hubs/bridge-hub-kusama/src/weights/rocksdb_weights.rs new file mode 100644 index 000000000000..3dd817aa6f13 --- /dev/null +++ b/cumulus/parachains/runtimes/bridge-hubs/bridge-hub-kusama/src/weights/rocksdb_weights.rs @@ -0,0 +1,63 @@ +// This file is part of Substrate. + +// 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. + +pub mod constants { + use frame_support::{ + parameter_types, + weights::{constants, RuntimeDbWeight}, + }; + + parameter_types! { + /// By default, Substrate uses `RocksDB`, so this will be the weight used throughout + /// the runtime. + pub const RocksDbWeight: RuntimeDbWeight = RuntimeDbWeight { + read: 25_000 * constants::WEIGHT_REF_TIME_PER_NANOS, + write: 100_000 * constants::WEIGHT_REF_TIME_PER_NANOS, + }; + } + + #[cfg(test)] + mod test_db_weights { + use super::constants::RocksDbWeight as W; + use frame_support::weights::constants; + + /// Checks that all weights exist and have sane values. + // NOTE: If this test fails but you are sure that the generated values are fine, + // you can delete it. + #[test] + fn sane() { + // At least 1 µs. + assert!( + W::get().reads(1).ref_time() >= constants::WEIGHT_REF_TIME_PER_MICROS, + "Read weight should be at least 1 µs." + ); + assert!( + W::get().writes(1).ref_time() >= constants::WEIGHT_REF_TIME_PER_MICROS, + "Write weight should be at least 1 µs." + ); + // At most 1 ms. + assert!( + W::get().reads(1).ref_time() <= constants::WEIGHT_REF_TIME_PER_MILLIS, + "Read weight should be at most 1 ms." + ); + assert!( + W::get().writes(1).ref_time() <= constants::WEIGHT_REF_TIME_PER_MILLIS, + "Write weight should be at most 1 ms." + ); + } + } +} diff --git a/cumulus/parachains/runtimes/bridge-hubs/bridge-hub-kusama/src/weights/xcm/mod.rs b/cumulus/parachains/runtimes/bridge-hubs/bridge-hub-kusama/src/weights/xcm/mod.rs new file mode 100644 index 000000000000..ded5dc6702e6 --- /dev/null +++ b/cumulus/parachains/runtimes/bridge-hubs/bridge-hub-kusama/src/weights/xcm/mod.rs @@ -0,0 +1,245 @@ +// Copyright (C) Parity Technologies (UK) Ltd. +// This file is part of Cumulus. + +// Cumulus 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. + +// Cumulus 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 Cumulus. If not, see . + +mod pallet_xcm_benchmarks_fungible; +mod pallet_xcm_benchmarks_generic; + +use crate::{xcm_config::MaxAssetsIntoHolding, Runtime}; +use frame_support::weights::Weight; +use pallet_xcm_benchmarks_fungible::WeightInfo as XcmFungibleWeight; +use pallet_xcm_benchmarks_generic::WeightInfo as XcmGeneric; +use sp_std::prelude::*; +use xcm::{latest::prelude::*, DoubleEncoded}; + +trait WeighMultiAssets { + fn weigh_multi_assets(&self, weight: Weight) -> Weight; +} + +const MAX_ASSETS: u64 = 100; + +impl WeighMultiAssets for MultiAssetFilter { + fn weigh_multi_assets(&self, weight: Weight) -> Weight { + match self { + Self::Definite(assets) => weight.saturating_mul(assets.inner().iter().count() as u64), + Self::Wild(asset) => match asset { + All => weight.saturating_mul(MAX_ASSETS), + AllOf { fun, .. } => match fun { + WildFungibility::Fungible => weight, + // Magic number 2 has to do with the fact that we could have up to 2 times + // MaxAssetsIntoHolding in the worst-case scenario. + WildFungibility::NonFungible => + weight.saturating_mul((MaxAssetsIntoHolding::get() * 2) as u64), + }, + AllCounted(count) => weight.saturating_mul(MAX_ASSETS.min(*count as u64)), + AllOfCounted { count, .. } => weight.saturating_mul(MAX_ASSETS.min(*count as u64)), + }, + } + } +} + +impl WeighMultiAssets for MultiAssets { + fn weigh_multi_assets(&self, weight: Weight) -> Weight { + weight.saturating_mul(self.inner().iter().count() as u64) + } +} + +pub struct BridgeHubKusamaXcmWeight(core::marker::PhantomData); +impl XcmWeightInfo for BridgeHubKusamaXcmWeight { + fn withdraw_asset(assets: &MultiAssets) -> Weight { + assets.weigh_multi_assets(XcmFungibleWeight::::withdraw_asset()) + } + fn reserve_asset_deposited(assets: &MultiAssets) -> Weight { + assets.weigh_multi_assets(XcmFungibleWeight::::reserve_asset_deposited()) + } + fn receive_teleported_asset(assets: &MultiAssets) -> Weight { + assets.weigh_multi_assets(XcmFungibleWeight::::receive_teleported_asset()) + } + fn query_response( + _query_id: &u64, + _response: &Response, + _max_weight: &Weight, + _querier: &Option, + ) -> Weight { + XcmGeneric::::query_response() + } + fn transfer_asset(assets: &MultiAssets, _dest: &MultiLocation) -> Weight { + assets.weigh_multi_assets(XcmFungibleWeight::::transfer_asset()) + } + fn transfer_reserve_asset( + assets: &MultiAssets, + _dest: &MultiLocation, + _xcm: &Xcm<()>, + ) -> Weight { + assets.weigh_multi_assets(XcmFungibleWeight::::transfer_reserve_asset()) + } + fn transact( + _origin_type: &OriginKind, + _require_weight_at_most: &Weight, + _call: &DoubleEncoded, + ) -> Weight { + XcmGeneric::::transact() + } + fn hrmp_new_channel_open_request( + _sender: &u32, + _max_message_size: &u32, + _max_capacity: &u32, + ) -> Weight { + // XCM Executor does not currently support HRMP channel operations + Weight::MAX + } + fn hrmp_channel_accepted(_recipient: &u32) -> Weight { + // XCM Executor does not currently support HRMP channel operations + Weight::MAX + } + fn hrmp_channel_closing(_initiator: &u32, _sender: &u32, _recipient: &u32) -> Weight { + // XCM Executor does not currently support HRMP channel operations + Weight::MAX + } + fn clear_origin() -> Weight { + XcmGeneric::::clear_origin() + } + fn descend_origin(_who: &InteriorMultiLocation) -> Weight { + XcmGeneric::::descend_origin() + } + fn report_error(_query_response_info: &QueryResponseInfo) -> Weight { + XcmGeneric::::report_error() + } + + fn deposit_asset(assets: &MultiAssetFilter, _dest: &MultiLocation) -> Weight { + assets.weigh_multi_assets(XcmFungibleWeight::::deposit_asset()) + } + fn deposit_reserve_asset( + assets: &MultiAssetFilter, + _dest: &MultiLocation, + _xcm: &Xcm<()>, + ) -> Weight { + assets.weigh_multi_assets(XcmFungibleWeight::::deposit_reserve_asset()) + } + fn exchange_asset(_give: &MultiAssetFilter, _receive: &MultiAssets, _maximal: &bool) -> Weight { + Weight::MAX + } + fn initiate_reserve_withdraw( + assets: &MultiAssetFilter, + _reserve: &MultiLocation, + _xcm: &Xcm<()>, + ) -> Weight { + assets.weigh_multi_assets(XcmFungibleWeight::::initiate_reserve_withdraw()) + } + fn initiate_teleport( + assets: &MultiAssetFilter, + _dest: &MultiLocation, + _xcm: &Xcm<()>, + ) -> Weight { + assets.weigh_multi_assets(XcmFungibleWeight::::initiate_teleport()) + } + fn report_holding(_response_info: &QueryResponseInfo, _assets: &MultiAssetFilter) -> Weight { + XcmGeneric::::report_holding() + } + fn buy_execution(_fees: &MultiAsset, _weight_limit: &WeightLimit) -> Weight { + XcmGeneric::::buy_execution() + } + fn refund_surplus() -> Weight { + XcmGeneric::::refund_surplus() + } + fn set_error_handler(_xcm: &Xcm) -> Weight { + XcmGeneric::::set_error_handler() + } + fn set_appendix(_xcm: &Xcm) -> Weight { + XcmGeneric::::set_appendix() + } + fn clear_error() -> Weight { + XcmGeneric::::clear_error() + } + fn claim_asset(_assets: &MultiAssets, _ticket: &MultiLocation) -> Weight { + XcmGeneric::::claim_asset() + } + fn trap(_code: &u64) -> Weight { + XcmGeneric::::trap() + } + fn subscribe_version(_query_id: &QueryId, _max_response_weight: &Weight) -> Weight { + XcmGeneric::::subscribe_version() + } + fn unsubscribe_version() -> Weight { + XcmGeneric::::unsubscribe_version() + } + fn burn_asset(assets: &MultiAssets) -> Weight { + assets.weigh_multi_assets(XcmGeneric::::burn_asset()) + } + fn expect_asset(assets: &MultiAssets) -> Weight { + assets.weigh_multi_assets(XcmGeneric::::expect_asset()) + } + fn expect_origin(_origin: &Option) -> Weight { + XcmGeneric::::expect_origin() + } + fn expect_error(_error: &Option<(u32, XcmError)>) -> Weight { + XcmGeneric::::expect_error() + } + fn expect_transact_status(_transact_status: &MaybeErrorCode) -> Weight { + XcmGeneric::::expect_transact_status() + } + fn query_pallet(_module_name: &Vec, _response_info: &QueryResponseInfo) -> Weight { + XcmGeneric::::query_pallet() + } + fn expect_pallet( + _index: &u32, + _name: &Vec, + _module_name: &Vec, + _crate_major: &u32, + _min_crate_minor: &u32, + ) -> Weight { + XcmGeneric::::expect_pallet() + } + fn report_transact_status(_response_info: &QueryResponseInfo) -> Weight { + XcmGeneric::::report_transact_status() + } + fn clear_transact_status() -> Weight { + XcmGeneric::::clear_transact_status() + } + fn universal_origin(_: &Junction) -> Weight { + Weight::MAX + } + fn export_message(_: &NetworkId, _: &Junctions, _: &Xcm<()>) -> Weight { + Weight::MAX + } + fn lock_asset(_: &MultiAsset, _: &MultiLocation) -> Weight { + Weight::MAX + } + fn unlock_asset(_: &MultiAsset, _: &MultiLocation) -> Weight { + Weight::MAX + } + fn note_unlockable(_: &MultiAsset, _: &MultiLocation) -> Weight { + Weight::MAX + } + fn request_unlock(_: &MultiAsset, _: &MultiLocation) -> Weight { + Weight::MAX + } + fn set_fees_mode(_: &bool) -> Weight { + XcmGeneric::::set_fees_mode() + } + fn set_topic(_topic: &[u8; 32]) -> Weight { + XcmGeneric::::set_topic() + } + fn clear_topic() -> Weight { + XcmGeneric::::clear_topic() + } + fn alias_origin(_: &MultiLocation) -> Weight { + // XCM Executor does not currently support alias origin operations + Weight::MAX + } + fn unpaid_execution(_: &WeightLimit, _: &Option) -> Weight { + XcmGeneric::::unpaid_execution() + } +} diff --git a/cumulus/parachains/runtimes/bridge-hubs/bridge-hub-kusama/src/weights/xcm/pallet_xcm_benchmarks_fungible.rs b/cumulus/parachains/runtimes/bridge-hubs/bridge-hub-kusama/src/weights/xcm/pallet_xcm_benchmarks_fungible.rs new file mode 100644 index 000000000000..17ee5cb6a8dc --- /dev/null +++ b/cumulus/parachains/runtimes/bridge-hubs/bridge-hub-kusama/src/weights/xcm/pallet_xcm_benchmarks_fungible.rs @@ -0,0 +1,188 @@ +// Copyright (C) Parity Technologies (UK) Ltd. +// This file is part of Cumulus. + +// Cumulus 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. + +// Cumulus 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 Cumulus. 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-09-28, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! WORST CASE MAP SIZE: `1000000` +//! HOSTNAME: `runner-nbnwcyh-project-674-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz` +//! WASM-EXECUTION: Compiled, CHAIN: Some("bridge-hub-kusama-dev"), DB CACHE: 1024 + +// Executed Command: +// target/production/polkadot-parachain +// benchmark +// pallet +// --steps=50 +// --repeat=20 +// --extrinsic=* +// --wasm-execution=compiled +// --heap-pages=4096 +// --json-file=/builds/parity/mirrors/polkadot-sdk/.git/.artifacts/bench.json +// --pallet=pallet_xcm_benchmarks::fungible +// --chain=bridge-hub-kusama-dev +// --header=./cumulus/file_header.txt +// --template=./cumulus/templates/xcm-bench-template.hbs +// --output=./cumulus/parachains/runtimes/bridge-hubs/bridge-hub-kusama/src/weights/xcm/ + +#![cfg_attr(rustfmt, rustfmt_skip)] +#![allow(unused_parens)] +#![allow(unused_imports)] + +use frame_support::{traits::Get, weights::Weight}; +use sp_std::marker::PhantomData; + +/// Weights for `pallet_xcm_benchmarks::fungible`. +pub struct WeightInfo(PhantomData); +impl WeightInfo { + // Storage: `System::Account` (r:1 w:1) + // Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`) + pub fn withdraw_asset() -> Weight { + // Proof Size summary in bytes: + // Measured: `101` + // Estimated: `3593` + // Minimum execution time: 25_447_000 picoseconds. + Weight::from_parts(25_810_000, 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`) + pub fn transfer_asset() -> Weight { + // Proof Size summary in bytes: + // Measured: `153` + // Estimated: `6196` + // Minimum execution time: 53_908_000 picoseconds. + Weight::from_parts(54_568_000, 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: `ParachainInfo::ParachainId` (r:1 w:0) + // Proof: `ParachainInfo::ParachainId` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`) + // Storage: `PolkadotXcm::SupportedVersion` (r:1 w:0) + // Proof: `PolkadotXcm::SupportedVersion` (`max_values`: None, `max_size`: None, mode: `Measured`) + // Storage: `PolkadotXcm::VersionDiscoveryQueue` (r:1 w:1) + // Proof: `PolkadotXcm::VersionDiscoveryQueue` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + // Storage: `PolkadotXcm::SafeXcmVersion` (r:1 w:0) + // Proof: `PolkadotXcm::SafeXcmVersion` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + // Storage: `ParachainSystem::HostConfiguration` (r:1 w:0) + // Proof: `ParachainSystem::HostConfiguration` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + // Storage: `ParachainSystem::PendingUpwardMessages` (r:1 w:1) + // Proof: `ParachainSystem::PendingUpwardMessages` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + pub fn transfer_reserve_asset() -> Weight { + // Proof Size summary in bytes: + // Measured: `223` + // Estimated: `6196` + // Minimum execution time: 79_923_000 picoseconds. + Weight::from_parts(80_790_000, 6196) + .saturating_add(T::DbWeight::get().reads(8)) + .saturating_add(T::DbWeight::get().writes(4)) + } + // Storage: `Benchmark::Override` (r:0 w:0) + // Proof: `Benchmark::Override` (`max_values`: None, `max_size`: None, mode: `Measured`) + pub fn reserve_asset_deposited() -> Weight { + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 18_446_744_073_709_551_000 picoseconds. + Weight::from_parts(18_446_744_073_709_551_000, 0) + } + // Storage: `ParachainInfo::ParachainId` (r:1 w:0) + // Proof: `ParachainInfo::ParachainId` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`) + // Storage: `PolkadotXcm::SupportedVersion` (r:1 w:0) + // Proof: `PolkadotXcm::SupportedVersion` (`max_values`: None, `max_size`: None, mode: `Measured`) + // Storage: `PolkadotXcm::VersionDiscoveryQueue` (r:1 w:1) + // Proof: `PolkadotXcm::VersionDiscoveryQueue` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + // Storage: `PolkadotXcm::SafeXcmVersion` (r:1 w:0) + // Proof: `PolkadotXcm::SafeXcmVersion` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + // Storage: `ParachainSystem::HostConfiguration` (r:1 w:0) + // Proof: `ParachainSystem::HostConfiguration` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + // Storage: `ParachainSystem::PendingUpwardMessages` (r:1 w:1) + // Proof: `ParachainSystem::PendingUpwardMessages` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + pub fn initiate_reserve_withdraw() -> Weight { + // Proof Size summary in bytes: + // Measured: `70` + // Estimated: `3535` + // Minimum execution time: 31_923_000 picoseconds. + Weight::from_parts(32_499_000, 3535) + .saturating_add(T::DbWeight::get().reads(6)) + .saturating_add(T::DbWeight::get().writes(2)) + } + pub fn receive_teleported_asset() -> Weight { + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 3_903_000 picoseconds. + Weight::from_parts(4_065_000, 0) + } + // Storage: `System::Account` (r:1 w:1) + // Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`) + pub fn deposit_asset() -> Weight { + // Proof Size summary in bytes: + // Measured: `52` + // Estimated: `3593` + // Minimum execution time: 26_987_000 picoseconds. + Weight::from_parts(27_486_000, 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: `ParachainInfo::ParachainId` (r:1 w:0) + // Proof: `ParachainInfo::ParachainId` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`) + // Storage: `PolkadotXcm::SupportedVersion` (r:1 w:0) + // Proof: `PolkadotXcm::SupportedVersion` (`max_values`: None, `max_size`: None, mode: `Measured`) + // Storage: `PolkadotXcm::VersionDiscoveryQueue` (r:1 w:1) + // Proof: `PolkadotXcm::VersionDiscoveryQueue` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + // Storage: `PolkadotXcm::SafeXcmVersion` (r:1 w:0) + // Proof: `PolkadotXcm::SafeXcmVersion` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + // Storage: `ParachainSystem::HostConfiguration` (r:1 w:0) + // Proof: `ParachainSystem::HostConfiguration` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + // Storage: `ParachainSystem::PendingUpwardMessages` (r:1 w:1) + // Proof: `ParachainSystem::PendingUpwardMessages` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + pub fn deposit_reserve_asset() -> Weight { + // Proof Size summary in bytes: + // Measured: `122` + // Estimated: `3593` + // Minimum execution time: 56_012_000 picoseconds. + Weight::from_parts(58_067_000, 3593) + .saturating_add(T::DbWeight::get().reads(7)) + .saturating_add(T::DbWeight::get().writes(3)) + } + // Storage: `ParachainInfo::ParachainId` (r:1 w:0) + // Proof: `ParachainInfo::ParachainId` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`) + // Storage: `PolkadotXcm::SupportedVersion` (r:1 w:0) + // Proof: `PolkadotXcm::SupportedVersion` (`max_values`: None, `max_size`: None, mode: `Measured`) + // Storage: `PolkadotXcm::VersionDiscoveryQueue` (r:1 w:1) + // Proof: `PolkadotXcm::VersionDiscoveryQueue` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + // Storage: `PolkadotXcm::SafeXcmVersion` (r:1 w:0) + // Proof: `PolkadotXcm::SafeXcmVersion` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + // Storage: `ParachainSystem::HostConfiguration` (r:1 w:0) + // Proof: `ParachainSystem::HostConfiguration` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + // Storage: `ParachainSystem::PendingUpwardMessages` (r:1 w:1) + // Proof: `ParachainSystem::PendingUpwardMessages` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + pub fn initiate_teleport() -> Weight { + // Proof Size summary in bytes: + // Measured: `70` + // Estimated: `3535` + // Minimum execution time: 32_350_000 picoseconds. + Weight::from_parts(33_403_000, 3535) + .saturating_add(T::DbWeight::get().reads(6)) + .saturating_add(T::DbWeight::get().writes(2)) + } +} diff --git a/cumulus/parachains/runtimes/bridge-hubs/bridge-hub-kusama/src/weights/xcm/pallet_xcm_benchmarks_generic.rs b/cumulus/parachains/runtimes/bridge-hubs/bridge-hub-kusama/src/weights/xcm/pallet_xcm_benchmarks_generic.rs new file mode 100644 index 000000000000..b1e8107b30bb --- /dev/null +++ b/cumulus/parachains/runtimes/bridge-hubs/bridge-hub-kusama/src/weights/xcm/pallet_xcm_benchmarks_generic.rs @@ -0,0 +1,329 @@ +// Copyright (C) Parity Technologies (UK) Ltd. +// This file is part of Cumulus. + +// Cumulus 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. + +// Cumulus 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 Cumulus. 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-07-31, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! WORST CASE MAP SIZE: `1000000` +//! HOSTNAME: `runner-ynta1nyy-project-238-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz` +//! EXECUTION: , WASM-EXECUTION: Compiled, CHAIN: Some("bridge-hub-kusama-dev"), DB CACHE: 1024 + +// Executed Command: +// ./target/production/polkadot-parachain +// benchmark +// pallet +// --template=./templates/xcm-bench-template.hbs +// --chain=bridge-hub-kusama-dev +// --wasm-execution=compiled +// --pallet=pallet_xcm_benchmarks::generic +// --no-storage-info +// --no-median-slopes +// --no-min-squares +// --extrinsic=* +// --steps=50 +// --repeat=20 +// --json +// --header=./file_header.txt +// --output=./parachains/runtimes/bridge-hubs/bridge-hub-kusama/src/weights/xcm/pallet_xcm_benchmarks_generic.rs + +#![cfg_attr(rustfmt, rustfmt_skip)] +#![allow(unused_parens)] +#![allow(unused_imports)] + +use frame_support::{traits::Get, weights::Weight}; +use sp_std::marker::PhantomData; + +/// Weights for `pallet_xcm_benchmarks::generic`. +pub struct WeightInfo(PhantomData); +impl WeightInfo { + // Storage: `ParachainInfo::ParachainId` (r:1 w:0) + // Proof: `ParachainInfo::ParachainId` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`) + // Storage: `PolkadotXcm::SupportedVersion` (r:1 w:0) + // Proof: `PolkadotXcm::SupportedVersion` (`max_values`: None, `max_size`: None, mode: `Measured`) + // Storage: `PolkadotXcm::VersionDiscoveryQueue` (r:1 w:1) + // Proof: `PolkadotXcm::VersionDiscoveryQueue` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + // Storage: `PolkadotXcm::SafeXcmVersion` (r:1 w:0) + // Proof: `PolkadotXcm::SafeXcmVersion` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + // Storage: `ParachainSystem::HostConfiguration` (r:1 w:0) + // Proof: `ParachainSystem::HostConfiguration` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + // Storage: `ParachainSystem::PendingUpwardMessages` (r:1 w:1) + // Proof: `ParachainSystem::PendingUpwardMessages` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + pub fn report_holding() -> Weight { + // Proof Size summary in bytes: + // Measured: `70` + // Estimated: `3535` + // Minimum execution time: 33_141_000 picoseconds. + Weight::from_parts(34_380_000, 3535) + .saturating_add(T::DbWeight::get().reads(6)) + .saturating_add(T::DbWeight::get().writes(2)) + } + pub fn buy_execution() -> Weight { + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 2_803_000 picoseconds. + Weight::from_parts(2_904_000, 0) + } + // Storage: `PolkadotXcm::Queries` (r:1 w:0) + // Proof: `PolkadotXcm::Queries` (`max_values`: None, `max_size`: None, mode: `Measured`) + pub fn query_response() -> Weight { + // Proof Size summary in bytes: + // Measured: `32` + // Estimated: `3497` + // Minimum execution time: 10_308_000 picoseconds. + Weight::from_parts(10_753_000, 3497) + .saturating_add(T::DbWeight::get().reads(1)) + } + pub fn transact() -> Weight { + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 11_499_000 picoseconds. + Weight::from_parts(11_786_000, 0) + } + pub fn refund_surplus() -> Weight { + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 3_102_000 picoseconds. + Weight::from_parts(3_161_000, 0) + } + pub fn set_error_handler() -> Weight { + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 2_678_000 picoseconds. + Weight::from_parts(2_795_000, 0) + } + pub fn set_appendix() -> Weight { + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 2_685_000 picoseconds. + Weight::from_parts(2_758_000, 0) + } + pub fn clear_error() -> Weight { + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 2_590_000 picoseconds. + Weight::from_parts(2_754_000, 0) + } + pub fn descend_origin() -> Weight { + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 3_297_000 picoseconds. + Weight::from_parts(3_419_000, 0) + } + pub fn clear_origin() -> Weight { + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 2_606_000 picoseconds. + Weight::from_parts(2_717_000, 0) + } + // Storage: `ParachainInfo::ParachainId` (r:1 w:0) + // Proof: `ParachainInfo::ParachainId` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`) + // Storage: `PolkadotXcm::SupportedVersion` (r:1 w:0) + // Proof: `PolkadotXcm::SupportedVersion` (`max_values`: None, `max_size`: None, mode: `Measured`) + // Storage: `PolkadotXcm::VersionDiscoveryQueue` (r:1 w:1) + // Proof: `PolkadotXcm::VersionDiscoveryQueue` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + // Storage: `PolkadotXcm::SafeXcmVersion` (r:1 w:0) + // Proof: `PolkadotXcm::SafeXcmVersion` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + // Storage: `ParachainSystem::HostConfiguration` (r:1 w:0) + // Proof: `ParachainSystem::HostConfiguration` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + // Storage: `ParachainSystem::PendingUpwardMessages` (r:1 w:1) + // Proof: `ParachainSystem::PendingUpwardMessages` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + pub fn report_error() -> Weight { + // Proof Size summary in bytes: + // Measured: `70` + // Estimated: `3535` + // Minimum execution time: 26_242_000 picoseconds. + Weight::from_parts(29_220_000, 3535) + .saturating_add(T::DbWeight::get().reads(6)) + .saturating_add(T::DbWeight::get().writes(2)) + } + // Storage: `PolkadotXcm::AssetTraps` (r:1 w:1) + // Proof: `PolkadotXcm::AssetTraps` (`max_values`: None, `max_size`: None, mode: `Measured`) + pub fn claim_asset() -> Weight { + // Proof Size summary in bytes: + // Measured: `90` + // Estimated: `3555` + // Minimum execution time: 14_106_000 picoseconds. + Weight::from_parts(14_535_000, 3555) + .saturating_add(T::DbWeight::get().reads(1)) + .saturating_add(T::DbWeight::get().writes(1)) + } + pub fn trap() -> Weight { + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 2_634_000 picoseconds. + Weight::from_parts(2_763_000, 0) + } + // Storage: `PolkadotXcm::VersionNotifyTargets` (r:1 w:1) + // Proof: `PolkadotXcm::VersionNotifyTargets` (`max_values`: None, `max_size`: None, mode: `Measured`) + // Storage: `PolkadotXcm::SupportedVersion` (r:1 w:0) + // Proof: `PolkadotXcm::SupportedVersion` (`max_values`: None, `max_size`: None, mode: `Measured`) + // Storage: `PolkadotXcm::VersionDiscoveryQueue` (r:1 w:1) + // Proof: `PolkadotXcm::VersionDiscoveryQueue` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + // Storage: `PolkadotXcm::SafeXcmVersion` (r:1 w:0) + // Proof: `PolkadotXcm::SafeXcmVersion` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + // Storage: `ParachainSystem::HostConfiguration` (r:1 w:0) + // Proof: `ParachainSystem::HostConfiguration` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + // Storage: `ParachainSystem::PendingUpwardMessages` (r:1 w:1) + // Proof: `ParachainSystem::PendingUpwardMessages` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + pub fn subscribe_version() -> Weight { + // Proof Size summary in bytes: + // Measured: `38` + // Estimated: `3503` + // Minimum execution time: 27_802_000 picoseconds. + Weight::from_parts(28_495_000, 3503) + .saturating_add(T::DbWeight::get().reads(6)) + .saturating_add(T::DbWeight::get().writes(3)) + } + // Storage: `PolkadotXcm::VersionNotifyTargets` (r:0 w:1) + // Proof: `PolkadotXcm::VersionNotifyTargets` (`max_values`: None, `max_size`: None, mode: `Measured`) + pub fn unsubscribe_version() -> Weight { + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 4_683_000 picoseconds. + Weight::from_parts(4_907_000, 0) + .saturating_add(T::DbWeight::get().writes(1)) + } + pub fn burn_asset() -> Weight { + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 3_941_000 picoseconds. + Weight::from_parts(4_080_000, 0) + } + pub fn expect_asset() -> Weight { + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 2_775_000 picoseconds. + Weight::from_parts(2_908_000, 0) + } + pub fn expect_origin() -> Weight { + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 2_743_000 picoseconds. + Weight::from_parts(2_863_000, 0) + } + pub fn expect_error() -> Weight { + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 2_641_000 picoseconds. + Weight::from_parts(2_771_000, 0) + } + pub fn expect_transact_status() -> Weight { + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 2_838_000 picoseconds. + Weight::from_parts(2_950_000, 0) + } + // Storage: `ParachainInfo::ParachainId` (r:1 w:0) + // Proof: `ParachainInfo::ParachainId` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`) + // Storage: `PolkadotXcm::SupportedVersion` (r:1 w:0) + // Proof: `PolkadotXcm::SupportedVersion` (`max_values`: None, `max_size`: None, mode: `Measured`) + // Storage: `PolkadotXcm::VersionDiscoveryQueue` (r:1 w:1) + // Proof: `PolkadotXcm::VersionDiscoveryQueue` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + // Storage: `PolkadotXcm::SafeXcmVersion` (r:1 w:0) + // Proof: `PolkadotXcm::SafeXcmVersion` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + // Storage: `ParachainSystem::HostConfiguration` (r:1 w:0) + // Proof: `ParachainSystem::HostConfiguration` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + // Storage: `ParachainSystem::PendingUpwardMessages` (r:1 w:1) + // Proof: `ParachainSystem::PendingUpwardMessages` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + pub fn query_pallet() -> Weight { + // Proof Size summary in bytes: + // Measured: `70` + // Estimated: `3535` + // Minimum execution time: 29_284_000 picoseconds. + Weight::from_parts(29_867_000, 3535) + .saturating_add(T::DbWeight::get().reads(6)) + .saturating_add(T::DbWeight::get().writes(2)) + } + pub fn expect_pallet() -> Weight { + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 4_734_000 picoseconds. + Weight::from_parts(4_876_000, 0) + } + // Storage: `ParachainInfo::ParachainId` (r:1 w:0) + // Proof: `ParachainInfo::ParachainId` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`) + // Storage: `PolkadotXcm::SupportedVersion` (r:1 w:0) + // Proof: `PolkadotXcm::SupportedVersion` (`max_values`: None, `max_size`: None, mode: `Measured`) + // Storage: `PolkadotXcm::VersionDiscoveryQueue` (r:1 w:1) + // Proof: `PolkadotXcm::VersionDiscoveryQueue` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + // Storage: `PolkadotXcm::SafeXcmVersion` (r:1 w:0) + // Proof: `PolkadotXcm::SafeXcmVersion` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + // Storage: `ParachainSystem::HostConfiguration` (r:1 w:0) + // Proof: `ParachainSystem::HostConfiguration` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + // Storage: `ParachainSystem::PendingUpwardMessages` (r:1 w:1) + // Proof: `ParachainSystem::PendingUpwardMessages` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + pub fn report_transact_status() -> Weight { + // Proof Size summary in bytes: + // Measured: `70` + // Estimated: `3535` + // Minimum execution time: 26_154_000 picoseconds. + Weight::from_parts(26_851_000, 3535) + .saturating_add(T::DbWeight::get().reads(6)) + .saturating_add(T::DbWeight::get().writes(2)) + } + pub fn clear_transact_status() -> Weight { + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 2_678_000 picoseconds. + Weight::from_parts(2_748_000, 0) + } + pub fn set_topic() -> Weight { + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 2_585_000 picoseconds. + Weight::from_parts(2_697_000, 0) + } + pub fn clear_topic() -> Weight { + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 2_576_000 picoseconds. + Weight::from_parts(2_701_000, 0) + } + pub fn set_fees_mode() -> Weight { + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 2_597_000 picoseconds. + Weight::from_parts(2_735_000, 0) + } + pub fn unpaid_execution() -> Weight { + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 2_744_000 picoseconds. + Weight::from_parts(2_809_000, 0) + } +} diff --git a/cumulus/parachains/runtimes/bridge-hubs/bridge-hub-kusama/src/xcm_config.rs b/cumulus/parachains/runtimes/bridge-hubs/bridge-hub-kusama/src/xcm_config.rs new file mode 100644 index 000000000000..85b983a6ab98 --- /dev/null +++ b/cumulus/parachains/runtimes/bridge-hubs/bridge-hub-kusama/src/xcm_config.rs @@ -0,0 +1,287 @@ +// Copyright (C) Parity Technologies (UK) Ltd. +// This file is part of Cumulus. + +// Cumulus 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. + +// Cumulus 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 Cumulus. If not, see . + +use super::{ + AccountId, AllPalletsWithSystem, Balances, ParachainInfo, ParachainSystem, PolkadotXcm, + Runtime, RuntimeCall, RuntimeEvent, RuntimeOrigin, TransactionByteFee, WeightToFee, XcmpQueue, + CENTS, +}; +use frame_support::{ + match_types, parameter_types, + traits::{ConstU32, Contains, Everything, Nothing}, +}; +use frame_system::EnsureRoot; +use pallet_xcm::XcmPassthrough; +use parachains_common::{impls::ToStakingPot, xcm_config::ConcreteAssetFromSystem}; +use polkadot_parachain_primitives::primitives::Sibling; +use polkadot_runtime_common::xcm_sender::ExponentialPrice; +use xcm::latest::prelude::*; +use xcm_builder::{ + AccountId32Aliases, AllowExplicitUnpaidExecutionFrom, AllowKnownQueryResponses, + AllowSubscriptionsFrom, AllowTopLevelPaidExecutionFrom, CurrencyAdapter, + DenyReserveTransferToRelayChain, DenyThenTry, EnsureXcmOrigin, IsConcrete, ParentAsSuperuser, + ParentIsPreset, RelayChainAsNative, SiblingParachainAsNative, SiblingParachainConvertsVia, + SignedAccountId32AsNative, SignedToAccountId32, SovereignSignedViaLocation, TakeWeightCredit, + TrailingSetTopicAsId, UsingComponents, WeightInfoBounds, WithComputedOrigin, WithUniqueTopic, +}; +use xcm_executor::{traits::WithOriginFilter, XcmExecutor}; + +parameter_types! { + pub const KsmRelayLocation: MultiLocation = MultiLocation::parent(); + pub const RelayNetwork: Option = Some(NetworkId::Kusama); + pub RelayChainOrigin: RuntimeOrigin = cumulus_pallet_xcm::Origin::Relay.into(); + pub UniversalLocation: InteriorMultiLocation = + X2(GlobalConsensus(RelayNetwork::get().unwrap()), Parachain(ParachainInfo::parachain_id().into())); + pub const MaxInstructions: u32 = 100; + pub const MaxAssetsIntoHolding: u32 = 64; + pub const GovernanceLocation: MultiLocation = MultiLocation::parent(); + pub const FellowshipLocation: MultiLocation = MultiLocation::parent(); +} + +/// Type for specifying how a `MultiLocation` can be converted into an `AccountId`. This is used +/// when determining ownership of accounts for asset transacting and when attempting to use XCM +/// `Transact` in order to determine the dispatch Origin. +pub type LocationToAccountId = ( + // The parent (Relay-chain) origin converts to the parent `AccountId`. + ParentIsPreset, + // Sibling parachain origins convert to AccountId via the `ParaId::into`. + SiblingParachainConvertsVia, + // Straight up local `AccountId32` origins just alias directly to `AccountId`. + AccountId32Aliases, +); + +/// Means for transacting the native currency on this chain. +pub type CurrencyTransactor = CurrencyAdapter< + // Use this currency: + Balances, + // Use this currency when it is a fungible asset matching the given location or name: + IsConcrete, + // Do a simple punn to convert an AccountId32 MultiLocation into a native chain account ID: + LocationToAccountId, + // Our chain's account ID type (we can't get away without mentioning it explicitly): + AccountId, + // We don't track any teleports of `Balances`. + (), +>; + +/// This is the type we use to convert an (incoming) XCM origin into a local `Origin` instance, +/// ready for dispatching a transaction with Xcm's `Transact`. There is an `OriginKind` which can +/// biases the kind of local `Origin` it will become. +pub type XcmOriginToTransactDispatchOrigin = ( + // Sovereign account converter; this attempts to derive an `AccountId` from the origin location + // using `LocationToAccountId` and then turn that into the usual `Signed` origin. Useful for + // foreign chains who want to have a local sovereign account on this chain which they control. + SovereignSignedViaLocation, + // Native converter for Relay-chain (Parent) location; will converts to a `Relay` origin when + // recognized. + RelayChainAsNative, + // Native converter for sibling Parachains; will convert to a `SiblingPara` origin when + // recognized. + SiblingParachainAsNative, + // Superuser converter for the Relay-chain (Parent) location. This will allow it to issue a + // transaction from the Root origin. + ParentAsSuperuser, + // Native signed account converter; this just converts an `AccountId32` origin into a normal + // `RuntimeOrigin::Signed` origin of the same 32-byte value. + SignedAccountId32AsNative, + // Xcm origins can be represented natively under the Xcm pallet's Xcm origin. + XcmPassthrough, +); + +match_types! { + pub type ParentOrParentsPlurality: impl Contains = { + MultiLocation { parents: 1, interior: Here } | + MultiLocation { parents: 1, interior: X1(Plurality { .. }) } + }; + pub type ParentOrSiblings: impl Contains = { + MultiLocation { parents: 1, interior: Here } | + MultiLocation { parents: 1, interior: X1(_) } + }; +} +/// A call filter for the XCM Transact instruction. This is a temporary measure until we properly +/// account for proof size weights. +/// +/// Calls that are allowed through this filter must: +/// 1. Have a fixed weight; +/// 2. Cannot lead to another call being made; +/// 3. Have a defined proof size weight, e.g. no unbounded vecs in call parameters. +pub struct SafeCallFilter; +impl Contains for SafeCallFilter { + fn contains(call: &RuntimeCall) -> bool { + #[cfg(feature = "runtime-benchmarks")] + { + if matches!(call, RuntimeCall::System(frame_system::Call::remark_with_event { .. })) { + return true + } + } + + matches!( + call, + RuntimeCall::PolkadotXcm(pallet_xcm::Call::force_xcm_version { .. }) | + RuntimeCall::System( + frame_system::Call::set_heap_pages { .. } | + frame_system::Call::set_code { .. } | + frame_system::Call::set_code_without_checks { .. } | + frame_system::Call::kill_prefix { .. }, + ) | RuntimeCall::ParachainSystem(..) | + RuntimeCall::Timestamp(..) | + RuntimeCall::Balances(..) | + RuntimeCall::CollatorSelection( + pallet_collator_selection::Call::set_desired_candidates { .. } | + pallet_collator_selection::Call::set_candidacy_bond { .. } | + pallet_collator_selection::Call::register_as_candidate { .. } | + pallet_collator_selection::Call::leave_intent { .. } | + pallet_collator_selection::Call::set_invulnerables { .. } | + pallet_collator_selection::Call::add_invulnerable { .. } | + pallet_collator_selection::Call::remove_invulnerable { .. }, + ) | RuntimeCall::Session(pallet_session::Call::purge_keys { .. }) | + RuntimeCall::XcmpQueue(..) | + RuntimeCall::DmpQueue(..) + ) + } +} + +pub type Barrier = TrailingSetTopicAsId< + DenyThenTry< + DenyReserveTransferToRelayChain, + ( + // Allow local users to buy weight credit. + TakeWeightCredit, + // Expected responses are OK. + AllowKnownQueryResponses, + WithComputedOrigin< + ( + // If the message is one that immediately attempts to pay for execution, then + // allow it. + AllowTopLevelPaidExecutionFrom, + // Parent and its pluralities (i.e. governance bodies) get free execution. + AllowExplicitUnpaidExecutionFrom, + // Subscriptions for version tracking are OK. + AllowSubscriptionsFrom, + ), + UniversalLocation, + ConstU32<8>, + >, + ), + >, +>; + +/// Cases where a remote origin is accepted as trusted Teleporter for a given asset: +/// - KSM with the parent Relay Chain and sibling parachains. +pub type TrustedTeleporters = ConcreteAssetFromSystem; + +pub struct XcmConfig; +impl xcm_executor::Config for XcmConfig { + type RuntimeCall = RuntimeCall; + type XcmSender = XcmRouter; + type AssetTransactor = CurrencyTransactor; + type OriginConverter = XcmOriginToTransactDispatchOrigin; + // BridgeHub does not recognize a reserve location for any asset. Users must teleport KSM + // where allowed (e.g. with the Relay Chain). + type IsReserve = (); + type IsTeleporter = TrustedTeleporters; + type UniversalLocation = UniversalLocation; + type Barrier = Barrier; + type Weigher = WeightInfoBounds< + crate::weights::xcm::BridgeHubKusamaXcmWeight, + RuntimeCall, + MaxInstructions, + >; + type Trader = + UsingComponents>; + type ResponseHandler = PolkadotXcm; + type AssetTrap = PolkadotXcm; + type AssetClaims = PolkadotXcm; + type SubscriptionService = PolkadotXcm; + type PalletInstancesInfo = AllPalletsWithSystem; + type MaxAssetsIntoHolding = MaxAssetsIntoHolding; + type AssetLocker = (); + type AssetExchanger = (); + type FeeManager = (); + type MessageExporter = (); + type UniversalAliases = Nothing; + type CallDispatcher = WithOriginFilter; + type SafeCallFilter = SafeCallFilter; + type Aliasers = Nothing; +} + +/// Converts a local signed origin into an XCM multilocation. +/// Forms the basis for local origins sending/executing XCMs. +pub type LocalOriginToLocation = SignedToAccountId32; + +parameter_types! { + /// The asset ID for the asset that we use to pay for message delivery fees. + pub FeeAssetId: AssetId = Concrete(KsmRelayLocation::get()); + /// The base fee for the message delivery fees. + pub const BaseDeliveryFee: u128 = CENTS.saturating_mul(3); +} + +pub type PriceForParentDelivery = + ExponentialPrice; + +/// The means for routing XCM messages which are not for local execution into the right message +/// queues. +pub type XcmRouter = WithUniqueTopic<( + // Two routers - use UMP to communicate with the relay chain: + cumulus_primitives_utility::ParentAsUmp, + // ..and XCMP to communicate with the sibling chains. + XcmpQueue, +)>; + +#[cfg(feature = "runtime-benchmarks")] +parameter_types! { + pub ReachableDest: Option = Some(Parent.into()); +} + +impl pallet_xcm::Config for Runtime { + type RuntimeEvent = RuntimeEvent; + // We want to disallow users sending (arbitrary) XCMs from this chain. + type SendXcmOrigin = EnsureXcmOrigin; + type XcmRouter = XcmRouter; + // We support local origins dispatching XCM executions in principle... + type ExecuteXcmOrigin = EnsureXcmOrigin; + // ... but disallow generic XCM execution. As a result only teleports are allowed. + type XcmExecuteFilter = Nothing; + type XcmExecutor = XcmExecutor; + type XcmTeleportFilter = Everything; + type XcmReserveTransferFilter = Nothing; // This parachain is not meant as a reserve location. + type Weigher = WeightInfoBounds< + crate::weights::xcm::BridgeHubKusamaXcmWeight, + RuntimeCall, + MaxInstructions, + >; + type UniversalLocation = UniversalLocation; + type RuntimeOrigin = RuntimeOrigin; + type RuntimeCall = RuntimeCall; + const VERSION_DISCOVERY_QUEUE_SIZE: u32 = 100; + type AdvertisedXcmVersion = pallet_xcm::CurrentXcmVersion; + type Currency = Balances; + type CurrencyMatcher = (); + type TrustedLockers = (); + type SovereignAccountOf = LocationToAccountId; + type MaxLockers = ConstU32<8>; + type WeightInfo = crate::weights::pallet_xcm::WeightInfo; + #[cfg(feature = "runtime-benchmarks")] + type ReachableDest = ReachableDest; + type AdminOrigin = EnsureRoot; + type MaxRemoteLockConsumers = ConstU32<0>; + type RemoteLockConsumerIdentifier = (); +} + +impl cumulus_pallet_xcm::Config for Runtime { + type RuntimeEvent = RuntimeEvent; + type XcmExecutor = XcmExecutor; +} diff --git a/cumulus/parachains/runtimes/bridge-hubs/bridge-hub-kusama/tests/tests.rs b/cumulus/parachains/runtimes/bridge-hubs/bridge-hub-kusama/tests/tests.rs new file mode 100644 index 000000000000..893524e12f66 --- /dev/null +++ b/cumulus/parachains/runtimes/bridge-hubs/bridge-hub-kusama/tests/tests.rs @@ -0,0 +1,57 @@ +// Copyright (C) Parity Technologies (UK) Ltd. +// This file is part of Cumulus. + +// Cumulus 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. + +// Cumulus 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 Cumulus. If not, see . + +pub use bridge_hub_kusama_runtime::{ + xcm_config::XcmConfig, AllPalletsWithoutSystem, Balances, ExistentialDeposit, ParachainSystem, + PolkadotXcm, Runtime, RuntimeEvent, SessionKeys, +}; +use codec::Decode; +use frame_support::parameter_types; +use parachains_common::{kusama::fee::WeightToFee, AccountId, AuraId}; + +const ALICE: [u8; 32] = [1u8; 32]; + +parameter_types! { + pub CheckingAccount: AccountId = PolkadotXcm::check_account(); +} + +bridge_hub_test_utils::test_cases::include_teleports_for_native_asset_works!( + Runtime, + AllPalletsWithoutSystem, + XcmConfig, + CheckingAccount, + WeightToFee, + ParachainSystem, + bridge_hub_test_utils::CollatorSessionKeys::new( + AccountId::from(ALICE), + AccountId::from(ALICE), + SessionKeys { aura: AuraId::from(sp_core::sr25519::Public::from_raw(ALICE)) } + ), + ExistentialDeposit::get(), + Box::new(|runtime_event_encoded: Vec| { + match RuntimeEvent::decode(&mut &runtime_event_encoded[..]) { + Ok(RuntimeEvent::PolkadotXcm(event)) => Some(event), + _ => None, + } + }), + Box::new(|runtime_event_encoded: Vec| { + match RuntimeEvent::decode(&mut &runtime_event_encoded[..]) { + Ok(RuntimeEvent::XcmpQueue(event)) => Some(event), + _ => None, + } + }), + 1002 +); diff --git a/cumulus/parachains/runtimes/bridge-hubs/bridge-hub-polkadot/Cargo.toml b/cumulus/parachains/runtimes/bridge-hubs/bridge-hub-polkadot/Cargo.toml new file mode 100644 index 000000000000..535a05169977 --- /dev/null +++ b/cumulus/parachains/runtimes/bridge-hubs/bridge-hub-polkadot/Cargo.toml @@ -0,0 +1,185 @@ +[package] +name = "bridge-hub-polkadot-runtime" +version = "0.1.0" +authors.workspace = true +edition.workspace = true +description = "Polkadot's BridgeHub parachain runtime" + +[build-dependencies] +substrate-wasm-builder = { path = "../../../../../substrate/utils/wasm-builder", optional = true } + +[dependencies] +codec = { package = "parity-scale-codec", version = "3.0.0", default-features = false, features = ["derive"] } +hex-literal = { version = "0.4.1" } +log = { version = "0.4.20", default-features = false } +scale-info = { version = "2.10.0", default-features = false, features = ["derive"] } +serde = { version = "1.0.188", optional = true, features = ["derive"] } +smallvec = "1.11.0" + +# Substrate +frame-benchmarking = { path = "../../../../../substrate/frame/benchmarking", default-features = false, optional = true} +frame-executive = { path = "../../../../../substrate/frame/executive", default-features = false} +frame-support = { path = "../../../../../substrate/frame/support", default-features = false} +frame-system = { path = "../../../../../substrate/frame/system", default-features = false} +frame-system-benchmarking = { path = "../../../../../substrate/frame/system/benchmarking", default-features = false, optional = true} +frame-system-rpc-runtime-api = { path = "../../../../../substrate/frame/system/rpc/runtime-api", default-features = false} +frame-try-runtime = { path = "../../../../../substrate/frame/try-runtime", default-features = false, optional = true} +pallet-aura = { path = "../../../../../substrate/frame/aura", default-features = false} +pallet-authorship = { path = "../../../../../substrate/frame/authorship", default-features = false} +pallet-balances = { path = "../../../../../substrate/frame/balances", default-features = false} +pallet-multisig = { path = "../../../../../substrate/frame/multisig", default-features = false} +pallet-session = { path = "../../../../../substrate/frame/session", default-features = false} +pallet-timestamp = { path = "../../../../../substrate/frame/timestamp", default-features = false} +pallet-transaction-payment = { path = "../../../../../substrate/frame/transaction-payment", default-features = false} +pallet-transaction-payment-rpc-runtime-api = { path = "../../../../../substrate/frame/transaction-payment/rpc/runtime-api", default-features = false} +pallet-utility = { path = "../../../../../substrate/frame/utility", default-features = false} +sp-api = { path = "../../../../../substrate/primitives/api", default-features = false} +sp-block-builder = { path = "../../../../../substrate/primitives/block-builder", default-features = false} +sp-consensus-aura = { path = "../../../../../substrate/primitives/consensus/aura", default-features = false} +sp-core = { path = "../../../../../substrate/primitives/core", default-features = false} +sp-genesis-builder = { path = "../../../../../substrate/primitives/genesis-builder", default-features = false } +sp-inherents = { path = "../../../../../substrate/primitives/inherents", default-features = false} +sp-io = { path = "../../../../../substrate/primitives/io", default-features = false} +sp-offchain = { path = "../../../../../substrate/primitives/offchain", default-features = false} +sp-runtime = { path = "../../../../../substrate/primitives/runtime", default-features = false} +sp-session = { path = "../../../../../substrate/primitives/session", default-features = false} +sp-std = { path = "../../../../../substrate/primitives/std", default-features = false} +sp-storage = { path = "../../../../../substrate/primitives/storage", default-features = false} +sp-transaction-pool = { path = "../../../../../substrate/primitives/transaction-pool", default-features = false} +sp-version = { path = "../../../../../substrate/primitives/version", default-features = false} + +# Polkadot +pallet-xcm = { path = "../../../../../polkadot/xcm/pallet-xcm", default-features = false} +pallet-xcm-benchmarks = { path = "../../../../../polkadot/xcm/pallet-xcm-benchmarks", default-features = false, optional = true } +polkadot-core-primitives = { path = "../../../../../polkadot/core-primitives", default-features = false} +polkadot-parachain-primitives = { path = "../../../../../polkadot/parachain", default-features = false} +polkadot-runtime-common = { path = "../../../../../polkadot/runtime/common", default-features = false} +xcm = { package = "staging-xcm", path = "../../../../../polkadot/xcm", default-features = false} +xcm-builder = { package = "staging-xcm-builder", path = "../../../../../polkadot/xcm/xcm-builder", default-features = false} +xcm-executor = { package = "staging-xcm-executor", path = "../../../../../polkadot/xcm/xcm-executor", default-features = false} + +# Cumulus +cumulus-pallet-aura-ext = { path = "../../../../pallets/aura-ext", default-features = false } +cumulus-pallet-dmp-queue = { path = "../../../../pallets/dmp-queue", default-features = false } +cumulus-pallet-parachain-system = { path = "../../../../pallets/parachain-system", default-features = false, features = ["parameterized-consensus-hook",] } +cumulus-pallet-session-benchmarking = { path = "../../../../pallets/session-benchmarking", default-features = false} +cumulus-pallet-xcm = { path = "../../../../pallets/xcm", default-features = false } +cumulus-pallet-xcmp-queue = { path = "../../../../pallets/xcmp-queue", default-features = false } +cumulus-primitives-core = { path = "../../../../primitives/core", default-features = false } +cumulus-primitives-utility = { path = "../../../../primitives/utility", default-features = false } +pallet-collator-selection = { path = "../../../../pallets/collator-selection", default-features = false } +parachain-info = { path = "../../../pallets/parachain-info", default-features = false } +parachains-common = { path = "../../../common", default-features = false } + +[dev-dependencies] +bridge-hub-test-utils = { path = "../test-utils" } + +[features] +default = [ "std" ] +std = [ + "codec/std", + "cumulus-pallet-aura-ext/std", + "cumulus-pallet-dmp-queue/std", + "cumulus-pallet-parachain-system/std", + "cumulus-pallet-session-benchmarking/std", + "cumulus-pallet-xcm/std", + "cumulus-pallet-xcmp-queue/std", + "cumulus-primitives-core/std", + "cumulus-primitives-utility/std", + "frame-benchmarking?/std", + "frame-executive/std", + "frame-support/std", + "frame-system-benchmarking?/std", + "frame-system-rpc-runtime-api/std", + "frame-system/std", + "frame-try-runtime?/std", + "log/std", + "pallet-aura/std", + "pallet-authorship/std", + "pallet-balances/std", + "pallet-collator-selection/std", + "pallet-multisig/std", + "pallet-session/std", + "pallet-timestamp/std", + "pallet-transaction-payment-rpc-runtime-api/std", + "pallet-transaction-payment/std", + "pallet-utility/std", + "pallet-xcm-benchmarks?/std", + "pallet-xcm/std", + "parachain-info/std", + "parachains-common/std", + "polkadot-core-primitives/std", + "polkadot-parachain-primitives/std", + "polkadot-runtime-common/std", + "scale-info/std", + "serde", + "sp-api/std", + "sp-block-builder/std", + "sp-consensus-aura/std", + "sp-core/std", + "sp-genesis-builder/std", + "sp-inherents/std", + "sp-io/std", + "sp-offchain/std", + "sp-runtime/std", + "sp-session/std", + "sp-std/std", + "sp-storage/std", + "sp-transaction-pool/std", + "sp-version/std", + "substrate-wasm-builder", + "xcm-builder/std", + "xcm-executor/std", + "xcm/std", +] + +runtime-benchmarks = [ + "cumulus-pallet-parachain-system/runtime-benchmarks", + "cumulus-pallet-session-benchmarking/runtime-benchmarks", + "cumulus-pallet-xcmp-queue/runtime-benchmarks", + "cumulus-primitives-utility/runtime-benchmarks", + "frame-benchmarking/runtime-benchmarks", + "frame-support/runtime-benchmarks", + "frame-system-benchmarking/runtime-benchmarks", + "frame-system/runtime-benchmarks", + "pallet-balances/runtime-benchmarks", + "pallet-collator-selection/runtime-benchmarks", + "pallet-multisig/runtime-benchmarks", + "pallet-timestamp/runtime-benchmarks", + "pallet-utility/runtime-benchmarks", + "pallet-xcm-benchmarks/runtime-benchmarks", + "pallet-xcm/runtime-benchmarks", + "parachains-common/runtime-benchmarks", + "polkadot-parachain-primitives/runtime-benchmarks", + "polkadot-runtime-common/runtime-benchmarks", + "sp-runtime/runtime-benchmarks", + "xcm-builder/runtime-benchmarks", + "xcm-executor/runtime-benchmarks", +] + +try-runtime = [ + "cumulus-pallet-aura-ext/try-runtime", + "cumulus-pallet-dmp-queue/try-runtime", + "cumulus-pallet-parachain-system/try-runtime", + "cumulus-pallet-xcm/try-runtime", + "cumulus-pallet-xcmp-queue/try-runtime", + "frame-executive/try-runtime", + "frame-support/try-runtime", + "frame-system/try-runtime", + "frame-try-runtime/try-runtime", + "pallet-aura/try-runtime", + "pallet-authorship/try-runtime", + "pallet-balances/try-runtime", + "pallet-collator-selection/try-runtime", + "pallet-multisig/try-runtime", + "pallet-session/try-runtime", + "pallet-timestamp/try-runtime", + "pallet-transaction-payment/try-runtime", + "pallet-utility/try-runtime", + "pallet-xcm/try-runtime", + "parachain-info/try-runtime", + "polkadot-runtime-common/try-runtime", + "sp-runtime/try-runtime", +] + +experimental = [ "pallet-aura/experimental" ] diff --git a/cumulus/parachains/runtimes/bridge-hubs/bridge-hub-polkadot/build.rs b/cumulus/parachains/runtimes/bridge-hubs/bridge-hub-polkadot/build.rs new file mode 100644 index 000000000000..60f8a125129f --- /dev/null +++ b/cumulus/parachains/runtimes/bridge-hubs/bridge-hub-polkadot/build.rs @@ -0,0 +1,26 @@ +// 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. + +#[cfg(feature = "std")] +fn main() { + substrate_wasm_builder::WasmBuilder::new() + .with_current_project() + .export_heap_base() + .import_memory() + .build() +} + +#[cfg(not(feature = "std"))] +fn main() {} diff --git a/cumulus/parachains/runtimes/bridge-hubs/bridge-hub-polkadot/src/lib.rs b/cumulus/parachains/runtimes/bridge-hubs/bridge-hub-polkadot/src/lib.rs new file mode 100644 index 000000000000..6ce1df992957 --- /dev/null +++ b/cumulus/parachains/runtimes/bridge-hubs/bridge-hub-polkadot/src/lib.rs @@ -0,0 +1,814 @@ +// Copyright (C) Parity Technologies (UK) Ltd. +// This file is part of Cumulus. + +// Cumulus 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. + +// Cumulus 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 Cumulus. If not, see . + +#![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"] + +// Make the WASM binary available. +#[cfg(feature = "std")] +include!(concat!(env!("OUT_DIR"), "/wasm_binary.rs")); + +mod weights; +pub mod xcm_config; + +use cumulus_pallet_parachain_system::RelayNumberStrictlyIncreases; +use cumulus_primitives_core::ParaId; +use polkadot_runtime_common::xcm_sender::NoPriceForMessageDelivery; +use sp_api::impl_runtime_apis; +use sp_core::{crypto::KeyTypeId, OpaqueMetadata}; +use sp_runtime::{ + create_runtime_str, generic, impl_opaque_keys, + traits::{AccountIdLookup, BlakeTwo256, Block as BlockT}, + transaction_validity::{TransactionSource, TransactionValidity}, + ApplyExtrinsicResult, +}; + +use sp_std::prelude::*; +#[cfg(feature = "std")] +use sp_version::NativeVersion; +use sp_version::RuntimeVersion; + +use frame_support::{ + construct_runtime, + dispatch::DispatchClass, + genesis_builder_helper::{build_config, create_default_config}, + parameter_types, + traits::{ConstBool, ConstU32, ConstU64, ConstU8, EitherOfDiverse, Everything}, + weights::{ConstantMultiplier, Weight}, + PalletId, +}; +use frame_system::{ + limits::{BlockLength, BlockWeights}, + EnsureRoot, +}; +use pallet_xcm::{EnsureXcm, IsVoiceOfBody}; +pub use sp_consensus_aura::sr25519::AuthorityId as AuraId; +pub use sp_runtime::{MultiAddress, Perbill, Permill}; +use xcm_config::{ + FellowshipLocation, GovernanceLocation, XcmConfig, XcmOriginToTransactDispatchOrigin, +}; + +#[cfg(any(feature = "std", test))] +pub use sp_runtime::BuildStorage; + +// Polkadot imports +use polkadot_runtime_common::{BlockHashCount, SlowAdjustingFeeUpdate}; + +use weights::{BlockExecutionWeight, ExtrinsicBaseWeight, RocksDbWeight}; + +use parachains_common::{ + impls::DealWithFees, + polkadot::{consensus::*, currency::*, fee::WeightToFee}, + AccountId, Balance, BlockNumber, Hash, Header, Nonce, Signature, AVERAGE_ON_INITIALIZE_RATIO, + HOURS, MAXIMUM_BLOCK_WEIGHT, NORMAL_DISPATCH_RATIO, SLOT_DURATION, +}; +// XCM Imports +use xcm::latest::prelude::*; +use xcm_executor::XcmExecutor; + +/// The address format for describing accounts. +pub type Address = MultiAddress; + +/// Block type as expected by this runtime. +pub type Block = generic::Block; + +/// A Block signed with a Justification +pub type SignedBlock = generic::SignedBlock; + +/// BlockId type as expected by this runtime. +pub type BlockId = generic::BlockId; + +/// The SignedExtension to the basic transaction logic. +pub type SignedExtra = ( + frame_system::CheckNonZeroSender, + frame_system::CheckSpecVersion, + frame_system::CheckTxVersion, + frame_system::CheckGenesis, + frame_system::CheckEra, + frame_system::CheckNonce, + frame_system::CheckWeight, + pallet_transaction_payment::ChargeTransactionPayment, +); + +/// Unchecked extrinsic type as expected by this runtime. +pub type UncheckedExtrinsic = + generic::UncheckedExtrinsic; + +/// Migrations to apply on runtime upgrade. +pub type Migrations = (pallet_collator_selection::migration::v1::MigrateToV1,); + +/// Executive: handles dispatch to the various modules. +pub type Executive = frame_executive::Executive< + Runtime, + Block, + frame_system::ChainContext, + Runtime, + AllPalletsWithSystem, + Migrations, +>; + +impl_opaque_keys! { + pub struct SessionKeys { + pub aura: Aura, + } +} + +#[sp_version::runtime_version] +pub const VERSION: RuntimeVersion = RuntimeVersion { + spec_name: create_runtime_str!("bridge-hub-polkadot"), + impl_name: create_runtime_str!("bridge-hub-polkadot"), + authoring_version: 1, + spec_version: 10000, + impl_version: 0, + apis: RUNTIME_API_VERSIONS, + transaction_version: 2, + state_version: 1, +}; + +/// The version information used to identify this runtime when compiled natively. +#[cfg(feature = "std")] +pub fn native_version() -> NativeVersion { + NativeVersion { runtime_version: VERSION, can_author_with: Default::default() } +} + +parameter_types! { + pub const Version: RuntimeVersion = VERSION; + pub RuntimeBlockLength: BlockLength = + BlockLength::max_with_normal_ratio(5 * 1024 * 1024, NORMAL_DISPATCH_RATIO); + pub RuntimeBlockWeights: BlockWeights = BlockWeights::builder() + .base_block(BlockExecutionWeight::get()) + .for_class(DispatchClass::all(), |weights| { + weights.base_extrinsic = ExtrinsicBaseWeight::get(); + }) + .for_class(DispatchClass::Normal, |weights| { + weights.max_total = Some(NORMAL_DISPATCH_RATIO * MAXIMUM_BLOCK_WEIGHT); + }) + .for_class(DispatchClass::Operational, |weights| { + weights.max_total = Some(MAXIMUM_BLOCK_WEIGHT); + // Operational transactions have some extra reserved space, so that they + // are included even if block reached `MAXIMUM_BLOCK_WEIGHT`. + weights.reserved = Some( + MAXIMUM_BLOCK_WEIGHT - NORMAL_DISPATCH_RATIO * MAXIMUM_BLOCK_WEIGHT + ); + }) + .avg_block_initialization(AVERAGE_ON_INITIALIZE_RATIO) + .build_or_panic(); + pub const SS58Prefix: u8 = 0; +} + +// Configure FRAME pallets to include in runtime. + +impl frame_system::Config for Runtime { + /// The identifier used to distinguish between accounts. + type AccountId = AccountId; + /// The aggregated dispatch type that is available for extrinsics. + type RuntimeCall = RuntimeCall; + /// The lookup mechanism to get account ID from whatever is passed in dispatchers. + type Lookup = AccountIdLookup; + /// The index type for storing how many extrinsics an account has signed. + type Nonce = Nonce; + /// The type for hashing blocks and tries. + type Hash = Hash; + /// The hashing algorithm used. + type Hashing = BlakeTwo256; + /// The block type. + type Block = Block; + /// The ubiquitous event type. + type RuntimeEvent = RuntimeEvent; + /// The ubiquitous origin type. + type RuntimeOrigin = RuntimeOrigin; + /// Maximum number of block number to block hash mappings to keep (oldest pruned first). + type BlockHashCount = BlockHashCount; + /// Runtime version. + type Version = Version; + /// Converts a module to an index of this module in the runtime. + type PalletInfo = PalletInfo; + /// The data to be stored in an account. + type AccountData = pallet_balances::AccountData; + /// What to do if a new account is created. + type OnNewAccount = (); + /// What to do if an account is fully reaped from the system. + type OnKilledAccount = (); + /// The weight of database operations that the runtime can invoke. + type DbWeight = RocksDbWeight; + /// The basic call filter to use in dispatchable. + type BaseCallFilter = Everything; + /// Weight information for the extrinsics of this pallet. + type SystemWeightInfo = weights::frame_system::WeightInfo; + /// Block & extrinsics weights: base values and limits. + type BlockWeights = RuntimeBlockWeights; + /// The maximum length of a block (in bytes). + type BlockLength = RuntimeBlockLength; + type SS58Prefix = SS58Prefix; + /// The action to take on a Runtime Upgrade + type OnSetCode = cumulus_pallet_parachain_system::ParachainSetCode; + type MaxConsumers = ConstU32<16>; +} + +impl pallet_timestamp::Config for Runtime { + /// A timestamp: milliseconds since the unix epoch. + type Moment = u64; + type OnTimestampSet = Aura; + type MinimumPeriod = ConstU64<{ SLOT_DURATION / 2 }>; + type WeightInfo = weights::pallet_timestamp::WeightInfo; +} + +impl pallet_authorship::Config for Runtime { + type FindAuthor = pallet_session::FindAccountFromAuthorIndex; + type EventHandler = (CollatorSelection,); +} + +parameter_types! { + pub const ExistentialDeposit: Balance = EXISTENTIAL_DEPOSIT; +} + +impl pallet_balances::Config for Runtime { + /// The type for recording an account's balance. + type Balance = Balance; + type DustRemoval = (); + /// The ubiquitous event type. + type RuntimeEvent = RuntimeEvent; + type ExistentialDeposit = ExistentialDeposit; + type AccountStore = System; + type WeightInfo = weights::pallet_balances::WeightInfo; + type MaxLocks = ConstU32<50>; + type MaxReserves = ConstU32<50>; + type ReserveIdentifier = [u8; 8]; + type RuntimeHoldReason = RuntimeHoldReason; + type RuntimeFreezeReason = RuntimeFreezeReason; + type FreezeIdentifier = (); + type MaxHolds = ConstU32<0>; + type MaxFreezes = ConstU32<0>; +} + +parameter_types! { + /// Relay Chain `TransactionByteFee` / 10 + pub const TransactionByteFee: Balance = MILLICENTS; +} + +impl pallet_transaction_payment::Config for Runtime { + type RuntimeEvent = RuntimeEvent; + type OnChargeTransaction = + pallet_transaction_payment::CurrencyAdapter>; + type OperationalFeeMultiplier = ConstU8<5>; + type WeightToFee = WeightToFee; + type LengthToFee = ConstantMultiplier; + type FeeMultiplierUpdate = SlowAdjustingFeeUpdate; +} + +parameter_types! { + pub const ReservedXcmpWeight: Weight = MAXIMUM_BLOCK_WEIGHT.saturating_div(4); + pub const ReservedDmpWeight: Weight = MAXIMUM_BLOCK_WEIGHT.saturating_div(4); +} + +impl cumulus_pallet_parachain_system::Config for Runtime { + type RuntimeEvent = RuntimeEvent; + type OnSystemEvent = (); + type SelfParaId = parachain_info::Pallet; + type OutboundXcmpMessageSource = XcmpQueue; + type DmpMessageHandler = DmpQueue; + type ReservedDmpWeight = ReservedDmpWeight; + type XcmpMessageHandler = XcmpQueue; + type ReservedXcmpWeight = ReservedXcmpWeight; + type CheckAssociatedRelayNumber = RelayNumberStrictlyIncreases; + type ConsensusHook = cumulus_pallet_aura_ext::FixedVelocityConsensusHook< + Runtime, + RELAY_CHAIN_SLOT_DURATION_MILLIS, + BLOCK_PROCESSING_VELOCITY, + UNINCLUDED_SEGMENT_CAPACITY, + >; +} + +impl parachain_info::Config for Runtime {} + +impl cumulus_pallet_aura_ext::Config for Runtime {} + +parameter_types! { + // Fellows pluralistic body. + pub const FellowsBodyId: BodyId = BodyId::Technical; +} + +/// Privileged origin that represents Root or Fellows. +pub type RootOrFellows = EitherOfDiverse< + EnsureRoot, + EnsureXcm>, +>; + +impl cumulus_pallet_xcmp_queue::Config for Runtime { + type RuntimeEvent = RuntimeEvent; + type XcmExecutor = XcmExecutor; + type ChannelInfo = ParachainSystem; + type VersionWrapper = PolkadotXcm; + type ExecuteOverweightOrigin = EnsureRoot; + type ControllerOrigin = RootOrFellows; + type ControllerOriginConverter = XcmOriginToTransactDispatchOrigin; + type WeightInfo = weights::cumulus_pallet_xcmp_queue::WeightInfo; + type PriceForSiblingDelivery = NoPriceForMessageDelivery; +} + +impl cumulus_pallet_dmp_queue::Config for Runtime { + type RuntimeEvent = RuntimeEvent; + type XcmExecutor = XcmExecutor; + type ExecuteOverweightOrigin = EnsureRoot; +} + +pub const PERIOD: u32 = 6 * HOURS; +pub const OFFSET: u32 = 0; + +impl pallet_session::Config for Runtime { + type RuntimeEvent = RuntimeEvent; + type ValidatorId = ::AccountId; + // we don't have stash and controller, thus we don't need the convert as well. + type ValidatorIdOf = pallet_collator_selection::IdentityCollator; + type ShouldEndSession = pallet_session::PeriodicSessions, ConstU32>; + type NextSessionRotation = pallet_session::PeriodicSessions, ConstU32>; + type SessionManager = CollatorSelection; + // Essentially just Aura, but let's be pedantic. + type SessionHandler = ::KeyTypeIdProviders; + type Keys = SessionKeys; + type WeightInfo = weights::pallet_session::WeightInfo; +} + +impl pallet_aura::Config for Runtime { + type AuthorityId = AuraId; + type DisabledValidators = (); + type MaxAuthorities = ConstU32<100_000>; + type AllowMultipleBlocksPerSlot = ConstBool; + #[cfg(feature = "experimental")] + type SlotDuration = pallet_aura::MinimumPeriodTimesTwo; +} + +parameter_types! { + pub const PotId: PalletId = PalletId(*b"PotStake"); + pub const SessionLength: BlockNumber = 6 * HOURS; + // StakingAdmin pluralistic body. + pub const StakingAdminBodyId: BodyId = BodyId::Defense; +} + +/// We allow root, the StakingAdmin to execute privileged collator selection operations. +pub type CollatorSelectionUpdateOrigin = EitherOfDiverse< + EnsureRoot, + EnsureXcm>, +>; + +impl pallet_collator_selection::Config for Runtime { + type RuntimeEvent = RuntimeEvent; + type Currency = Balances; + type UpdateOrigin = CollatorSelectionUpdateOrigin; + type PotId = PotId; + type MaxCandidates = ConstU32<100>; + type MinEligibleCollators = ConstU32<4>; + type MaxInvulnerables = ConstU32<20>; + // should be a multiple of session or things will get inconsistent + type KickThreshold = ConstU32; + type ValidatorId = ::AccountId; + type ValidatorIdOf = pallet_collator_selection::IdentityCollator; + type ValidatorRegistration = Session; + type WeightInfo = weights::pallet_collator_selection::WeightInfo; +} + +parameter_types! { + // One storage item; key size is 32; value is size 4+4+16+32 bytes = 56 bytes. + pub const DepositBase: Balance = deposit(1, 88); + // Additional storage item size of 32 bytes. + pub const DepositFactor: Balance = deposit(0, 32); +} + +impl pallet_multisig::Config for Runtime { + type RuntimeEvent = RuntimeEvent; + type RuntimeCall = RuntimeCall; + type Currency = Balances; + type DepositBase = DepositBase; + type DepositFactor = DepositFactor; + type MaxSignatories = ConstU32<100>; + type WeightInfo = weights::pallet_multisig::WeightInfo; +} + +impl pallet_utility::Config for Runtime { + type RuntimeEvent = RuntimeEvent; + type RuntimeCall = RuntimeCall; + type PalletsOrigin = OriginCaller; + type WeightInfo = weights::pallet_utility::WeightInfo; +} + +// Create the runtime by composing the FRAME pallets that were previously configured. +construct_runtime!( + pub enum Runtime + { + // System support stuff. + System: frame_system::{Pallet, Call, Config, Storage, Event} = 0, + ParachainSystem: cumulus_pallet_parachain_system::{ + Pallet, Call, Config, Storage, Inherent, Event, ValidateUnsigned, + } = 1, + Timestamp: pallet_timestamp::{Pallet, Call, Storage, Inherent} = 2, + ParachainInfo: parachain_info::{Pallet, Storage, Config} = 3, + + // Monetary stuff. + Balances: pallet_balances::{Pallet, Call, Storage, Config, Event} = 10, + TransactionPayment: pallet_transaction_payment::{Pallet, Storage, Event} = 11, + + // Collator support. The order of these 4 are important and shall not change. + Authorship: pallet_authorship::{Pallet, Storage} = 20, + CollatorSelection: pallet_collator_selection::{Pallet, Call, Storage, Event, Config} = 21, + Session: pallet_session::{Pallet, Call, Storage, Event, Config} = 22, + Aura: pallet_aura::{Pallet, Storage, Config} = 23, + AuraExt: cumulus_pallet_aura_ext::{Pallet, Storage, Config} = 24, + + // XCM helpers. + XcmpQueue: cumulus_pallet_xcmp_queue::{Pallet, Call, Storage, Event} = 30, + PolkadotXcm: pallet_xcm::{Pallet, Call, Event, Origin, Config} = 31, + CumulusXcm: cumulus_pallet_xcm::{Pallet, Event, Origin} = 32, + DmpQueue: cumulus_pallet_dmp_queue::{Pallet, Call, Storage, Event} = 33, + + // Handy utilities. + Utility: pallet_utility::{Pallet, Call, Event} = 40, + Multisig: pallet_multisig::{Pallet, Call, Storage, Event} = 41, + } +); + +#[cfg(feature = "runtime-benchmarks")] +#[macro_use] +extern crate frame_benchmarking; + +#[cfg(feature = "runtime-benchmarks")] +mod benches { + define_benchmarks!( + [frame_system, SystemBench::] + [pallet_balances, Balances] + [pallet_multisig, Multisig] + [pallet_session, SessionBench::] + [pallet_utility, Utility] + [pallet_timestamp, Timestamp] + [pallet_collator_selection, CollatorSelection] + [cumulus_pallet_xcmp_queue, XcmpQueue] + // XCM + [pallet_xcm, PolkadotXcm] + // NOTE: Make sure you point to the individual modules below. + [pallet_xcm_benchmarks::fungible, XcmBalances] + [pallet_xcm_benchmarks::generic, XcmGeneric] + ); +} + +impl_runtime_apis! { + impl sp_consensus_aura::AuraApi for Runtime { + fn slot_duration() -> sp_consensus_aura::SlotDuration { + sp_consensus_aura::SlotDuration::from_millis(Aura::slot_duration()) + } + + fn authorities() -> Vec { + Aura::authorities().into_inner() + } + } + + impl sp_api::Core for Runtime { + fn version() -> RuntimeVersion { + VERSION + } + + fn execute_block(block: Block) { + Executive::execute_block(block) + } + + fn initialize_block(header: &::Header) { + Executive::initialize_block(header) + } + } + + impl sp_api::Metadata for Runtime { + fn metadata() -> OpaqueMetadata { + OpaqueMetadata::new(Runtime::metadata().into()) + } + + fn metadata_at_version(version: u32) -> Option { + Runtime::metadata_at_version(version) + } + + fn metadata_versions() -> sp_std::vec::Vec { + Runtime::metadata_versions() + } + } + + impl sp_block_builder::BlockBuilder for Runtime { + fn apply_extrinsic(extrinsic: ::Extrinsic) -> ApplyExtrinsicResult { + Executive::apply_extrinsic(extrinsic) + } + + fn finalize_block() -> ::Header { + Executive::finalize_block() + } + + fn inherent_extrinsics(data: sp_inherents::InherentData) -> Vec<::Extrinsic> { + data.create_extrinsics() + } + + fn check_inherents( + block: Block, + data: sp_inherents::InherentData, + ) -> sp_inherents::CheckInherentsResult { + data.check_extrinsics(&block) + } + } + + impl sp_transaction_pool::runtime_api::TaggedTransactionQueue for Runtime { + fn validate_transaction( + source: TransactionSource, + tx: ::Extrinsic, + block_hash: ::Hash, + ) -> TransactionValidity { + Executive::validate_transaction(source, tx, block_hash) + } + } + + impl sp_offchain::OffchainWorkerApi for Runtime { + fn offchain_worker(header: &::Header) { + Executive::offchain_worker(header) + } + } + + impl sp_session::SessionKeys for Runtime { + fn generate_session_keys(seed: Option>) -> Vec { + SessionKeys::generate(seed) + } + + fn decode_session_keys( + encoded: Vec, + ) -> Option, KeyTypeId)>> { + SessionKeys::decode_into_raw_public_keys(&encoded) + } + } + + impl frame_system_rpc_runtime_api::AccountNonceApi for Runtime { + fn account_nonce(account: AccountId) -> Nonce { + System::account_nonce(account) + } + } + + impl pallet_transaction_payment_rpc_runtime_api::TransactionPaymentApi for Runtime { + fn query_info( + uxt: ::Extrinsic, + len: u32, + ) -> pallet_transaction_payment_rpc_runtime_api::RuntimeDispatchInfo { + TransactionPayment::query_info(uxt, len) + } + fn query_fee_details( + uxt: ::Extrinsic, + len: u32, + ) -> pallet_transaction_payment::FeeDetails { + TransactionPayment::query_fee_details(uxt, len) + } + fn query_weight_to_fee(weight: Weight) -> Balance { + TransactionPayment::weight_to_fee(weight) + } + fn query_length_to_fee(length: u32) -> Balance { + TransactionPayment::length_to_fee(length) + } + } + + impl pallet_transaction_payment_rpc_runtime_api::TransactionPaymentCallApi + for Runtime + { + fn query_call_info( + call: RuntimeCall, + len: u32, + ) -> pallet_transaction_payment::RuntimeDispatchInfo { + TransactionPayment::query_call_info(call, len) + } + fn query_call_fee_details( + call: RuntimeCall, + len: u32, + ) -> pallet_transaction_payment::FeeDetails { + TransactionPayment::query_call_fee_details(call, len) + } + fn query_weight_to_fee(weight: Weight) -> Balance { + TransactionPayment::weight_to_fee(weight) + } + fn query_length_to_fee(length: u32) -> Balance { + TransactionPayment::length_to_fee(length) + } + } + + impl cumulus_primitives_core::CollectCollationInfo for Runtime { + fn collect_collation_info(header: &::Header) -> cumulus_primitives_core::CollationInfo { + ParachainSystem::collect_collation_info(header) + } + } + + #[cfg(feature = "try-runtime")] + impl frame_try_runtime::TryRuntime for Runtime { + fn on_runtime_upgrade(checks: frame_try_runtime::UpgradeCheckSelect) -> (Weight, Weight) { + let weight = Executive::try_runtime_upgrade(checks).unwrap(); + (weight, RuntimeBlockWeights::get().max_block) + } + + fn execute_block( + block: Block, + state_root_check: bool, + signature_check: bool, + select: frame_try_runtime::TryStateSelect, + ) -> Weight { + // NOTE: intentional unwrap: we don't want to propagate the error backwards, and want to + // have a backtrace here. + Executive::try_execute_block(block, state_root_check, signature_check, select).unwrap() + } + } + + #[cfg(feature = "runtime-benchmarks")] + impl frame_benchmarking::Benchmark for Runtime { + fn benchmark_metadata(extra: bool) -> ( + Vec, + Vec, + ) { + use frame_benchmarking::{Benchmarking, BenchmarkList}; + use frame_support::traits::StorageInfoTrait; + use frame_system_benchmarking::Pallet as SystemBench; + use cumulus_pallet_session_benchmarking::Pallet as SessionBench; + + // This is defined once again in dispatch_benchmark, because list_benchmarks! + // and add_benchmarks! are macros exported by define_benchmarks! macros and those types + // are referenced in that call. + type XcmBalances = pallet_xcm_benchmarks::fungible::Pallet::; + type XcmGeneric = pallet_xcm_benchmarks::generic::Pallet::; + + let mut list = Vec::::new(); + list_benchmarks!(list, extra); + + let storage_info = AllPalletsWithSystem::storage_info(); + (list, storage_info) + } + + fn dispatch_benchmark( + config: frame_benchmarking::BenchmarkConfig + ) -> Result, sp_runtime::RuntimeString> { + use frame_benchmarking::{Benchmarking, BenchmarkBatch, BenchmarkError}; + use sp_storage::TrackedStorageKey; + + use frame_system_benchmarking::Pallet as SystemBench; + impl frame_system_benchmarking::Config for Runtime { + fn setup_set_code_requirements(code: &sp_std::vec::Vec) -> Result<(), BenchmarkError> { + ParachainSystem::initialize_for_set_code_benchmark(code.len() as u32); + Ok(()) + } + + fn verify_set_code() { + System::assert_last_event(cumulus_pallet_parachain_system::Event::::ValidationFunctionStored.into()); + } + } + + use cumulus_pallet_session_benchmarking::Pallet as SessionBench; + impl cumulus_pallet_session_benchmarking::Config for Runtime {} + + use xcm::latest::prelude::*; + use xcm_config::DotRelayLocation; + + parameter_types! { + pub ExistentialDepositMultiAsset: Option = Some(( + xcm_config::DotRelayLocation::get(), + ExistentialDeposit::get() + ).into()); + } + + impl pallet_xcm_benchmarks::Config for Runtime { + type XcmConfig = xcm_config::XcmConfig; + type AccountIdConverter = xcm_config::LocationToAccountId; + type DeliveryHelper = cumulus_primitives_utility::ToParentDeliveryHelper< + XcmConfig, + ExistentialDepositMultiAsset, + xcm_config::PriceForParentDelivery, + >; + fn valid_destination() -> Result { + Ok(DotRelayLocation::get()) + } + fn worst_case_holding(_depositable_count: u32) -> MultiAssets { + // just concrete assets according to relay chain. + let assets: Vec = vec![ + MultiAsset { + id: Concrete(DotRelayLocation::get()), + fun: Fungible(1_000_000 * UNITS), + } + ]; + assets.into() + } + } + + parameter_types! { + pub const TrustedTeleporter: Option<(MultiLocation, MultiAsset)> = Some(( + DotRelayLocation::get(), + MultiAsset { fun: Fungible(UNITS), id: Concrete(DotRelayLocation::get()) }, + )); + pub const CheckedAccount: Option<(AccountId, xcm_builder::MintLocation)> = None; + pub const TrustedReserve: Option<(MultiLocation, MultiAsset)> = None; + } + + impl pallet_xcm_benchmarks::fungible::Config for Runtime { + type TransactAsset = Balances; + + type CheckedAccount = CheckedAccount; + type TrustedTeleporter = TrustedTeleporter; + type TrustedReserve = TrustedReserve; + + fn get_multi_asset() -> MultiAsset { + MultiAsset { + id: Concrete(DotRelayLocation::get()), + fun: Fungible(UNITS), + } + } + } + + impl pallet_xcm_benchmarks::generic::Config for Runtime { + type TransactAsset = Balances; + type RuntimeCall = RuntimeCall; + + fn worst_case_response() -> (u64, Response) { + (0u64, Response::Version(Default::default())) + } + + fn worst_case_asset_exchange() -> Result<(MultiAssets, MultiAssets), BenchmarkError> { + Err(BenchmarkError::Skip) + } + + fn universal_alias() -> Result<(MultiLocation, Junction), BenchmarkError> { + Err(BenchmarkError::Skip) + } + + fn transact_origin_and_runtime_call() -> Result<(MultiLocation, RuntimeCall), BenchmarkError> { + Ok((DotRelayLocation::get(), frame_system::Call::remark_with_event { remark: vec![] }.into())) + } + + fn subscribe_origin() -> Result { + Ok(DotRelayLocation::get()) + } + + fn claimable_asset() -> Result<(MultiLocation, MultiLocation, MultiAssets), BenchmarkError> { + let origin = DotRelayLocation::get(); + let assets: MultiAssets = (Concrete(DotRelayLocation::get()), 1_000 * UNITS).into(); + let ticket = MultiLocation { parents: 0, interior: Here }; + Ok((origin, ticket, assets)) + } + + fn unlockable_asset() -> Result<(MultiLocation, MultiLocation, MultiAsset), BenchmarkError> { + Err(BenchmarkError::Skip) + } + + fn export_message_origin_and_destination( + ) -> Result<(MultiLocation, NetworkId, InteriorMultiLocation), BenchmarkError> { + Err(BenchmarkError::Skip) + } + + fn alias_origin() -> Result<(MultiLocation, MultiLocation), BenchmarkError> { + Err(BenchmarkError::Skip) + } + } + + type XcmBalances = pallet_xcm_benchmarks::fungible::Pallet::; + type XcmGeneric = pallet_xcm_benchmarks::generic::Pallet::; + + let whitelist: Vec = vec![ + // Block Number + hex_literal::hex!("26aa394eea5630e07c48ae0c9558cef702a5c1b19ab7a04f536c519aca4983ac").to_vec().into(), + // Total Issuance + hex_literal::hex!("c2261276cc9d1f8598ea4b6a74b15c2f57c875e4cff74148e4628f264b974c80").to_vec().into(), + // Execution Phase + hex_literal::hex!("26aa394eea5630e07c48ae0c9558cef7ff553b5a9862a516939d82b3d3d8661a").to_vec().into(), + // Event Count + hex_literal::hex!("26aa394eea5630e07c48ae0c9558cef70a98fdbe9ce6c55837576c60c7af3850").to_vec().into(), + // System Events + hex_literal::hex!("26aa394eea5630e07c48ae0c9558cef780d41e5e16056765bc8461851072c9d7").to_vec().into(), + ]; + + let mut batches = Vec::::new(); + let params = (&config, &whitelist); + add_benchmarks!(params, batches); + + Ok(batches) + } + } + + impl sp_genesis_builder::GenesisBuilder for Runtime { + fn create_default_config() -> Vec { + create_default_config::() + } + + fn build_config(config: Vec) -> sp_genesis_builder::Result { + build_config::(config) + } + } +} + +cumulus_pallet_parachain_system::register_validate_block! { + Runtime = Runtime, + BlockExecutor = cumulus_pallet_aura_ext::BlockExecutor::, +} diff --git a/cumulus/parachains/runtimes/bridge-hubs/bridge-hub-polkadot/src/weights/block_weights.rs b/cumulus/parachains/runtimes/bridge-hubs/bridge-hub-polkadot/src/weights/block_weights.rs new file mode 100644 index 000000000000..e7fdb2aae2a0 --- /dev/null +++ b/cumulus/parachains/runtimes/bridge-hubs/bridge-hub-polkadot/src/weights/block_weights.rs @@ -0,0 +1,53 @@ +// This file is part of Substrate. + +// 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. + +pub mod constants { + use frame_support::{ + parameter_types, + weights::{constants, Weight}, + }; + + parameter_types! { + /// Importing a block with 0 Extrinsics. + pub const BlockExecutionWeight: Weight = + Weight::from_parts(constants::WEIGHT_REF_TIME_PER_NANOS.saturating_mul(5_000_000), 0); + } + + #[cfg(test)] + mod test_weights { + use frame_support::weights::constants; + + /// Checks that the weight exists and is sane. + // NOTE: If this test fails but you are sure that the generated values are fine, + // you can delete it. + #[test] + fn sane() { + let w = super::constants::BlockExecutionWeight::get(); + + // At least 100 µs. + assert!( + w.ref_time() >= 100u64 * constants::WEIGHT_REF_TIME_PER_MICROS, + "Weight should be at least 100 µs." + ); + // At most 50 ms. + assert!( + w.ref_time() <= 50u64 * constants::WEIGHT_REF_TIME_PER_MILLIS, + "Weight should be at most 50 ms." + ); + } + } +} diff --git a/cumulus/parachains/runtimes/bridge-hubs/bridge-hub-polkadot/src/weights/cumulus_pallet_xcmp_queue.rs b/cumulus/parachains/runtimes/bridge-hubs/bridge-hub-polkadot/src/weights/cumulus_pallet_xcmp_queue.rs new file mode 100644 index 000000000000..98834cc44e88 --- /dev/null +++ b/cumulus/parachains/runtimes/bridge-hubs/bridge-hub-polkadot/src/weights/cumulus_pallet_xcmp_queue.rs @@ -0,0 +1,77 @@ +// Copyright (C) Parity Technologies (UK) Ltd. +// This file is part of Cumulus. + +// Cumulus 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. + +// Cumulus 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 Cumulus. If not, see . + +//! Autogenerated weights for `cumulus_pallet_xcmp_queue` +//! +//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev +//! DATE: 2023-07-31, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! WORST CASE MAP SIZE: `1000000` +//! HOSTNAME: `runner-ynta1nyy-project-238-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz` +//! EXECUTION: ``, WASM-EXECUTION: `Compiled`, CHAIN: `Some("bridge-hub-polkadot-dev")`, DB CACHE: 1024 + +// Executed Command: +// ./target/production/polkadot-parachain +// benchmark +// pallet +// --chain=bridge-hub-polkadot-dev +// --wasm-execution=compiled +// --pallet=cumulus_pallet_xcmp_queue +// --no-storage-info +// --no-median-slopes +// --no-min-squares +// --extrinsic=* +// --steps=50 +// --repeat=20 +// --json +// --header=./file_header.txt +// --output=./parachains/runtimes/bridge-hubs/bridge-hub-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 `cumulus_pallet_xcmp_queue`. +pub struct WeightInfo(PhantomData); +impl cumulus_pallet_xcmp_queue::WeightInfo for WeightInfo { + /// Storage: `XcmpQueue::QueueConfig` (r:1 w:1) + /// Proof: `XcmpQueue::QueueConfig` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + fn set_config_with_u32() -> Weight { + // Proof Size summary in bytes: + // Measured: `76` + // Estimated: `1561` + // Minimum execution time: 5_043_000 picoseconds. + Weight::from_parts(5_211_000, 0) + .saturating_add(Weight::from_parts(0, 1561)) + .saturating_add(T::DbWeight::get().reads(1)) + .saturating_add(T::DbWeight::get().writes(1)) + } + /// Storage: `XcmpQueue::QueueConfig` (r:1 w:1) + /// Proof: `XcmpQueue::QueueConfig` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + fn set_config_with_weight() -> Weight { + // Proof Size summary in bytes: + // Measured: `76` + // Estimated: `1561` + // Minimum execution time: 5_011_000 picoseconds. + Weight::from_parts(5_171_000, 0) + .saturating_add(Weight::from_parts(0, 1561)) + .saturating_add(T::DbWeight::get().reads(1)) + .saturating_add(T::DbWeight::get().writes(1)) + } +} diff --git a/cumulus/parachains/runtimes/bridge-hubs/bridge-hub-polkadot/src/weights/extrinsic_weights.rs b/cumulus/parachains/runtimes/bridge-hubs/bridge-hub-polkadot/src/weights/extrinsic_weights.rs new file mode 100644 index 000000000000..1a4adb968bb7 --- /dev/null +++ b/cumulus/parachains/runtimes/bridge-hubs/bridge-hub-polkadot/src/weights/extrinsic_weights.rs @@ -0,0 +1,53 @@ +// This file is part of Substrate. + +// 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. + +pub mod constants { + use frame_support::{ + parameter_types, + weights::{constants, Weight}, + }; + + parameter_types! { + /// Executing a NO-OP `System::remarks` Extrinsic. + pub const ExtrinsicBaseWeight: Weight = + Weight::from_parts(constants::WEIGHT_REF_TIME_PER_NANOS.saturating_mul(125_000), 0); + } + + #[cfg(test)] + mod test_weights { + use frame_support::weights::constants; + + /// Checks that the weight exists and is sane. + // NOTE: If this test fails but you are sure that the generated values are fine, + // you can delete it. + #[test] + fn sane() { + let w = super::constants::ExtrinsicBaseWeight::get(); + + // At least 10 µs. + assert!( + w.ref_time() >= 10u64 * constants::WEIGHT_REF_TIME_PER_MICROS, + "Weight should be at least 10 µs." + ); + // At most 1 ms. + assert!( + w.ref_time() <= constants::WEIGHT_REF_TIME_PER_MILLIS, + "Weight should be at most 1 ms." + ); + } + } +} diff --git a/cumulus/parachains/runtimes/bridge-hubs/bridge-hub-polkadot/src/weights/frame_system.rs b/cumulus/parachains/runtimes/bridge-hubs/bridge-hub-polkadot/src/weights/frame_system.rs new file mode 100644 index 000000000000..4aeb4660d878 --- /dev/null +++ b/cumulus/parachains/runtimes/bridge-hubs/bridge-hub-polkadot/src/weights/frame_system.rs @@ -0,0 +1,155 @@ +// Copyright (C) Parity Technologies (UK) Ltd. +// This file is part of Cumulus. + +// Cumulus 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. + +// Cumulus 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 Cumulus. If not, see . + +//! Autogenerated weights for `frame_system` +//! +//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev +//! DATE: 2023-07-31, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! WORST CASE MAP SIZE: `1000000` +//! HOSTNAME: `runner-ynta1nyy-project-238-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz` +//! EXECUTION: ``, WASM-EXECUTION: `Compiled`, CHAIN: `Some("bridge-hub-polkadot-dev")`, DB CACHE: 1024 + +// Executed Command: +// ./target/production/polkadot-parachain +// benchmark +// pallet +// --chain=bridge-hub-polkadot-dev +// --wasm-execution=compiled +// --pallet=frame_system +// --no-storage-info +// --no-median-slopes +// --no-min-squares +// --extrinsic=* +// --steps=50 +// --repeat=20 +// --json +// --header=./file_header.txt +// --output=./parachains/runtimes/bridge-hubs/bridge-hub-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 `frame_system`. +pub struct WeightInfo(PhantomData); +impl frame_system::WeightInfo for WeightInfo { + /// The range of component `b` is `[0, 3932160]`. + fn remark(b: u32, ) -> Weight { + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 2_047_000 picoseconds. + Weight::from_parts(2_087_000, 0) + .saturating_add(Weight::from_parts(0, 0)) + // Standard Error: 0 + .saturating_add(Weight::from_parts(390, 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_335_000 picoseconds. + Weight::from_parts(7_507_000, 0) + .saturating_add(Weight::from_parts(0, 0)) + // Standard Error: 2 + .saturating_add(Weight::from_parts(1_751, 0).saturating_mul(b.into())) + } + /// Storage: `System::Digest` (r:1 w:1) + /// Proof: `System::Digest` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: UNKNOWN KEY `0x3a686561707061676573` (r:0 w:1) + /// Proof: UNKNOWN KEY `0x3a686561707061676573` (r:0 w:1) + fn set_heap_pages() -> Weight { + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `1485` + // Minimum execution time: 3_673_000 picoseconds. + Weight::from_parts(3_953_000, 0) + .saturating_add(Weight::from_parts(0, 1485)) + .saturating_add(T::DbWeight::get().reads(1)) + .saturating_add(T::DbWeight::get().writes(2)) + } + /// Storage: `ParachainSystem::ValidationData` (r:1 w:0) + /// Proof: `ParachainSystem::ValidationData` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `ParachainSystem::UpgradeRestrictionSignal` (r:1 w:0) + /// Proof: `ParachainSystem::UpgradeRestrictionSignal` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `ParachainSystem::PendingValidationCode` (r:1 w:1) + /// Proof: `ParachainSystem::PendingValidationCode` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `ParachainSystem::HostConfiguration` (r:1 w:0) + /// Proof: `ParachainSystem::HostConfiguration` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `ParachainSystem::NewValidationCode` (r:0 w:1) + /// Proof: `ParachainSystem::NewValidationCode` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `ParachainSystem::DidSetValidationCode` (r:0 w:1) + /// Proof: `ParachainSystem::DidSetValidationCode` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + fn set_code() -> Weight { + // Proof Size summary in bytes: + // Measured: `119` + // Estimated: `1604` + // Minimum execution time: 98_791_992_000 picoseconds. + Weight::from_parts(101_799_041_000, 0) + .saturating_add(Weight::from_parts(0, 1604)) + .saturating_add(T::DbWeight::get().reads(4)) + .saturating_add(T::DbWeight::get().writes(3)) + } + /// Storage: `Skipped::Metadata` (r:0 w:0) + /// Proof: `Skipped::Metadata` (`max_values`: None, `max_size`: None, mode: `Measured`) + /// The range of component `i` is `[0, 1000]`. + fn set_storage(i: u32, ) -> Weight { + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 2_144_000 picoseconds. + Weight::from_parts(2_206_000, 0) + .saturating_add(Weight::from_parts(0, 0)) + // Standard Error: 2_254 + .saturating_add(Weight::from_parts(740_881, 0).saturating_mul(i.into())) + .saturating_add(T::DbWeight::get().writes((1_u64).saturating_mul(i.into()))) + } + /// Storage: `Skipped::Metadata` (r:0 w:0) + /// Proof: `Skipped::Metadata` (`max_values`: None, `max_size`: None, mode: `Measured`) + /// The range of component `i` is `[0, 1000]`. + fn kill_storage(i: u32, ) -> Weight { + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 2_117_000 picoseconds. + Weight::from_parts(2_192_000, 0) + .saturating_add(Weight::from_parts(0, 0)) + // Standard Error: 1_024 + .saturating_add(Weight::from_parts(558_397, 0).saturating_mul(i.into())) + .saturating_add(T::DbWeight::get().writes((1_u64).saturating_mul(i.into()))) + } + /// Storage: `Skipped::Metadata` (r:0 w:0) + /// Proof: `Skipped::Metadata` (`max_values`: None, `max_size`: None, mode: `Measured`) + /// The range of component `p` is `[0, 1000]`. + fn kill_prefix(p: u32, ) -> Weight { + // Proof Size summary in bytes: + // Measured: `68 + p * (69 ±0)` + // Estimated: `66 + p * (70 ±0)` + // Minimum execution time: 3_907_000 picoseconds. + Weight::from_parts(4_050_000, 0) + .saturating_add(Weight::from_parts(0, 66)) + // Standard Error: 2_228 + .saturating_add(Weight::from_parts(1_212_760, 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/cumulus/parachains/runtimes/bridge-hubs/bridge-hub-polkadot/src/weights/mod.rs b/cumulus/parachains/runtimes/bridge-hubs/bridge-hub-polkadot/src/weights/mod.rs new file mode 100644 index 000000000000..e226021e77ab --- /dev/null +++ b/cumulus/parachains/runtimes/bridge-hubs/bridge-hub-polkadot/src/weights/mod.rs @@ -0,0 +1,38 @@ +// This file is part of Substrate. + +// 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. + +//! Expose the auto generated weight files. + +pub mod block_weights; +pub mod cumulus_pallet_xcmp_queue; +pub mod extrinsic_weights; +pub mod frame_system; +pub mod pallet_balances; +pub mod pallet_collator_selection; +pub mod pallet_multisig; +pub mod pallet_session; +pub mod pallet_timestamp; +pub mod pallet_utility; +pub mod pallet_xcm; +pub mod paritydb_weights; +pub mod rocksdb_weights; +pub mod xcm; + +pub use block_weights::constants::BlockExecutionWeight; +pub use extrinsic_weights::constants::ExtrinsicBaseWeight; +pub use paritydb_weights::constants::ParityDbWeight; +pub use rocksdb_weights::constants::RocksDbWeight; diff --git a/cumulus/parachains/runtimes/bridge-hubs/bridge-hub-polkadot/src/weights/pallet_balances.rs b/cumulus/parachains/runtimes/bridge-hubs/bridge-hub-polkadot/src/weights/pallet_balances.rs new file mode 100644 index 000000000000..5abe64bb4117 --- /dev/null +++ b/cumulus/parachains/runtimes/bridge-hubs/bridge-hub-polkadot/src/weights/pallet_balances.rs @@ -0,0 +1,153 @@ +// Copyright (C) Parity Technologies (UK) Ltd. +// This file is part of Cumulus. + +// Cumulus 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. + +// Cumulus 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 Cumulus. 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-07-31, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! WORST CASE MAP SIZE: `1000000` +//! HOSTNAME: `runner-ynta1nyy-project-238-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz` +//! EXECUTION: ``, WASM-EXECUTION: `Compiled`, CHAIN: `Some("bridge-hub-polkadot-dev")`, DB CACHE: 1024 + +// Executed Command: +// ./target/production/polkadot-parachain +// benchmark +// pallet +// --chain=bridge-hub-polkadot-dev +// --wasm-execution=compiled +// --pallet=pallet_balances +// --no-storage-info +// --no-median-slopes +// --no-min-squares +// --extrinsic=* +// --steps=50 +// --repeat=20 +// --json +// --header=./file_header.txt +// --output=./parachains/runtimes/bridge-hubs/bridge-hub-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_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: 54_518_000 picoseconds. + Weight::from_parts(55_244_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: 40_152_000 picoseconds. + Weight::from_parts(41_084_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_234_000 picoseconds. + Weight::from_parts(15_576_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: 22_173_000 picoseconds. + Weight::from_parts(22_964_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: 56_636_000 picoseconds. + Weight::from_parts(57_316_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: 50_829_000 picoseconds. + Weight::from_parts(51_264_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: 17_887_000 picoseconds. + Weight::from_parts(18_365_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]`. + fn upgrade_accounts(u: u32, ) -> Weight { + // Proof Size summary in bytes: + // Measured: `0 + u * (136 ±0)` + // Estimated: `990 + u * (2603 ±0)` + // Minimum execution time: 16_754_000 picoseconds. + Weight::from_parts(17_237_000, 0) + .saturating_add(Weight::from_parts(0, 990)) + // Standard Error: 15_088 + .saturating_add(Weight::from_parts(15_392_959, 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/cumulus/parachains/runtimes/bridge-hubs/bridge-hub-polkadot/src/weights/pallet_collator_selection.rs b/cumulus/parachains/runtimes/bridge-hubs/bridge-hub-polkadot/src/weights/pallet_collator_selection.rs new file mode 100644 index 000000000000..e0f4156fe4d4 --- /dev/null +++ b/cumulus/parachains/runtimes/bridge-hubs/bridge-hub-polkadot/src/weights/pallet_collator_selection.rs @@ -0,0 +1,225 @@ +// Copyright (C) Parity Technologies (UK) Ltd. +// This file is part of Cumulus. + +// Cumulus 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. + +// Cumulus 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 Cumulus. If not, see . + +//! Autogenerated weights for `pallet_collator_selection` +//! +//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev +//! DATE: 2023-07-31, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! WORST CASE MAP SIZE: `1000000` +//! HOSTNAME: `runner-ynta1nyy-project-238-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz` +//! EXECUTION: ``, WASM-EXECUTION: `Compiled`, CHAIN: `Some("bridge-hub-polkadot-dev")`, DB CACHE: 1024 + +// Executed Command: +// ./target/production/polkadot-parachain +// benchmark +// pallet +// --chain=bridge-hub-polkadot-dev +// --wasm-execution=compiled +// --pallet=pallet_collator_selection +// --no-storage-info +// --no-median-slopes +// --no-min-squares +// --extrinsic=* +// --steps=50 +// --repeat=20 +// --json +// --header=./file_header.txt +// --output=./parachains/runtimes/bridge-hubs/bridge-hub-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_collator_selection`. +pub struct WeightInfo(PhantomData); +impl pallet_collator_selection::WeightInfo for WeightInfo { + /// Storage: `Session::NextKeys` (r:20 w:0) + /// Proof: `Session::NextKeys` (`max_values`: None, `max_size`: None, mode: `Measured`) + /// Storage: `CollatorSelection::Invulnerables` (r:0 w:1) + /// Proof: `CollatorSelection::Invulnerables` (`max_values`: Some(1), `max_size`: Some(641), added: 1136, mode: `MaxEncodedLen`) + /// The range of component `b` is `[1, 20]`. + fn set_invulnerables(b: u32, ) -> Weight { + // Proof Size summary in bytes: + // Measured: `196 + b * (79 ±0)` + // Estimated: `1187 + b * (2555 ±0)` + // Minimum execution time: 14_735_000 picoseconds. + Weight::from_parts(11_846_916, 0) + .saturating_add(Weight::from_parts(0, 1187)) + // Standard Error: 8_592 + .saturating_add(Weight::from_parts(3_270_517, 0).saturating_mul(b.into())) + .saturating_add(T::DbWeight::get().reads((1_u64).saturating_mul(b.into()))) + .saturating_add(T::DbWeight::get().writes(1)) + .saturating_add(Weight::from_parts(0, 2555).saturating_mul(b.into())) + } + /// Storage: `Session::NextKeys` (r:1 w:0) + /// Proof: `Session::NextKeys` (`max_values`: None, `max_size`: None, mode: `Measured`) + /// Storage: `CollatorSelection::Invulnerables` (r:1 w:1) + /// Proof: `CollatorSelection::Invulnerables` (`max_values`: Some(1), `max_size`: Some(641), added: 1136, mode: `MaxEncodedLen`) + /// Storage: `CollatorSelection::Candidates` (r:1 w:1) + /// Proof: `CollatorSelection::Candidates` (`max_values`: Some(1), `max_size`: Some(4802), added: 5297, 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 `b` is `[1, 19]`. + /// The range of component `c` is `[1, 99]`. + fn add_invulnerable(b: u32, c: u32, ) -> Weight { + // Proof Size summary in bytes: + // Measured: `757 + b * (32 ±0) + c * (53 ±0)` + // Estimated: `6287 + b * (37 ±0) + c * (53 ±0)` + // Minimum execution time: 48_332_000 picoseconds. + Weight::from_parts(46_158_586, 0) + .saturating_add(Weight::from_parts(0, 6287)) + // Standard Error: 13_938 + .saturating_add(Weight::from_parts(174_493, 0).saturating_mul(b.into())) + // Standard Error: 2_642 + .saturating_add(Weight::from_parts(196_691, 0).saturating_mul(c.into())) + .saturating_add(T::DbWeight::get().reads(4)) + .saturating_add(T::DbWeight::get().writes(3)) + .saturating_add(Weight::from_parts(0, 37).saturating_mul(b.into())) + .saturating_add(Weight::from_parts(0, 53).saturating_mul(c.into())) + } + /// Storage: `CollatorSelection::Candidates` (r:1 w:0) + /// Proof: `CollatorSelection::Candidates` (`max_values`: Some(1), `max_size`: Some(4802), added: 5297, mode: `MaxEncodedLen`) + /// Storage: `CollatorSelection::Invulnerables` (r:1 w:1) + /// Proof: `CollatorSelection::Invulnerables` (`max_values`: Some(1), `max_size`: Some(641), added: 1136, mode: `MaxEncodedLen`) + /// The range of component `b` is `[5, 20]`. + fn remove_invulnerable(b: u32, ) -> Weight { + // Proof Size summary in bytes: + // Measured: `82 + b * (32 ±0)` + // Estimated: `6287` + // Minimum execution time: 15_323_000 picoseconds. + Weight::from_parts(15_016_873, 0) + .saturating_add(Weight::from_parts(0, 6287)) + // Standard Error: 2_970 + .saturating_add(Weight::from_parts(199_160, 0).saturating_mul(b.into())) + .saturating_add(T::DbWeight::get().reads(2)) + .saturating_add(T::DbWeight::get().writes(1)) + } + /// Storage: `CollatorSelection::DesiredCandidates` (r:0 w:1) + /// Proof: `CollatorSelection::DesiredCandidates` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`) + fn set_desired_candidates() -> Weight { + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 7_393_000 picoseconds. + Weight::from_parts(7_723_000, 0) + .saturating_add(Weight::from_parts(0, 0)) + .saturating_add(T::DbWeight::get().writes(1)) + } + /// Storage: `CollatorSelection::CandidacyBond` (r:0 w:1) + /// Proof: `CollatorSelection::CandidacyBond` (`max_values`: Some(1), `max_size`: Some(16), added: 511, mode: `MaxEncodedLen`) + fn set_candidacy_bond() -> Weight { + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 7_426_000 picoseconds. + Weight::from_parts(7_783_000, 0) + .saturating_add(Weight::from_parts(0, 0)) + .saturating_add(T::DbWeight::get().writes(1)) + } + /// Storage: `CollatorSelection::Candidates` (r:1 w:1) + /// Proof: `CollatorSelection::Candidates` (`max_values`: Some(1), `max_size`: Some(4802), added: 5297, mode: `MaxEncodedLen`) + /// Storage: `CollatorSelection::DesiredCandidates` (r:1 w:0) + /// Proof: `CollatorSelection::DesiredCandidates` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`) + /// Storage: `CollatorSelection::Invulnerables` (r:1 w:0) + /// Proof: `CollatorSelection::Invulnerables` (`max_values`: Some(1), `max_size`: Some(641), added: 1136, mode: `MaxEncodedLen`) + /// Storage: `Session::NextKeys` (r:1 w:0) + /// Proof: `Session::NextKeys` (`max_values`: None, `max_size`: None, mode: `Measured`) + /// Storage: `CollatorSelection::CandidacyBond` (r:1 w:0) + /// Proof: `CollatorSelection::CandidacyBond` (`max_values`: Some(1), `max_size`: Some(16), added: 511, mode: `MaxEncodedLen`) + /// Storage: `CollatorSelection::LastAuthoredBlock` (r:0 w:1) + /// Proof: `CollatorSelection::LastAuthoredBlock` (`max_values`: None, `max_size`: Some(44), added: 2519, mode: `MaxEncodedLen`) + /// The range of component `c` is `[1, 99]`. + fn register_as_candidate(c: u32, ) -> Weight { + // Proof Size summary in bytes: + // Measured: `740 + c * (52 ±0)` + // Estimated: `6287 + c * (54 ±0)` + // Minimum execution time: 41_040_000 picoseconds. + Weight::from_parts(43_902_200, 0) + .saturating_add(Weight::from_parts(0, 6287)) + // Standard Error: 2_360 + .saturating_add(Weight::from_parts(211_897, 0).saturating_mul(c.into())) + .saturating_add(T::DbWeight::get().reads(5)) + .saturating_add(T::DbWeight::get().writes(2)) + .saturating_add(Weight::from_parts(0, 54).saturating_mul(c.into())) + } + /// Storage: `CollatorSelection::Candidates` (r:1 w:1) + /// Proof: `CollatorSelection::Candidates` (`max_values`: Some(1), `max_size`: Some(4802), added: 5297, mode: `MaxEncodedLen`) + /// Storage: `CollatorSelection::Invulnerables` (r:1 w:0) + /// Proof: `CollatorSelection::Invulnerables` (`max_values`: Some(1), `max_size`: Some(641), added: 1136, mode: `MaxEncodedLen`) + /// Storage: `CollatorSelection::LastAuthoredBlock` (r:0 w:1) + /// Proof: `CollatorSelection::LastAuthoredBlock` (`max_values`: None, `max_size`: Some(44), added: 2519, mode: `MaxEncodedLen`) + /// The range of component `c` is `[3, 100]`. + fn leave_intent(c: u32, ) -> Weight { + // Proof Size summary in bytes: + // Measured: `334 + c * (49 ±0)` + // Estimated: `6287` + // Minimum execution time: 33_429_000 picoseconds. + Weight::from_parts(36_413_045, 0) + .saturating_add(Weight::from_parts(0, 6287)) + // Standard Error: 2_947 + .saturating_add(Weight::from_parts(177_461, 0).saturating_mul(c.into())) + .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: `System::BlockWeight` (r:1 w:1) + /// Proof: `System::BlockWeight` (`max_values`: Some(1), `max_size`: Some(48), added: 543, mode: `MaxEncodedLen`) + /// Storage: `CollatorSelection::LastAuthoredBlock` (r:0 w:1) + /// Proof: `CollatorSelection::LastAuthoredBlock` (`max_values`: None, `max_size`: Some(44), added: 2519, mode: `MaxEncodedLen`) + fn note_author() -> Weight { + // Proof Size summary in bytes: + // Measured: `155` + // Estimated: `6196` + // Minimum execution time: 45_300_000 picoseconds. + Weight::from_parts(46_280_000, 0) + .saturating_add(Weight::from_parts(0, 6196)) + .saturating_add(T::DbWeight::get().reads(3)) + .saturating_add(T::DbWeight::get().writes(4)) + } + /// Storage: `CollatorSelection::Candidates` (r:1 w:0) + /// Proof: `CollatorSelection::Candidates` (`max_values`: Some(1), `max_size`: Some(4802), added: 5297, mode: `MaxEncodedLen`) + /// Storage: `CollatorSelection::LastAuthoredBlock` (r:100 w:0) + /// Proof: `CollatorSelection::LastAuthoredBlock` (`max_values`: None, `max_size`: Some(44), added: 2519, mode: `MaxEncodedLen`) + /// Storage: `CollatorSelection::Invulnerables` (r:1 w:0) + /// Proof: `CollatorSelection::Invulnerables` (`max_values`: Some(1), `max_size`: Some(641), added: 1136, mode: `MaxEncodedLen`) + /// Storage: `System::BlockWeight` (r:1 w:1) + /// Proof: `System::BlockWeight` (`max_values`: Some(1), `max_size`: Some(48), added: 543, mode: `MaxEncodedLen`) + /// Storage: `System::Account` (r:97 w:97) + /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`) + /// The range of component `r` is `[1, 100]`. + /// The range of component `c` is `[1, 100]`. + fn new_session(r: u32, c: u32, ) -> Weight { + // Proof Size summary in bytes: + // Measured: `2263 + c * (97 ±0) + r * (115 ±0)` + // Estimated: `6287 + c * (2519 ±0) + r * (2603 ±0)` + // Minimum execution time: 17_524_000 picoseconds. + Weight::from_parts(17_590_000, 0) + .saturating_add(Weight::from_parts(0, 6287)) + // Standard Error: 354_091 + .saturating_add(Weight::from_parts(15_829_767, 0).saturating_mul(c.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().writes(1)) + .saturating_add(T::DbWeight::get().writes((1_u64).saturating_mul(c.into()))) + .saturating_add(Weight::from_parts(0, 2519).saturating_mul(c.into())) + .saturating_add(Weight::from_parts(0, 2603).saturating_mul(r.into())) + } +} diff --git a/cumulus/parachains/runtimes/bridge-hubs/bridge-hub-polkadot/src/weights/pallet_multisig.rs b/cumulus/parachains/runtimes/bridge-hubs/bridge-hub-polkadot/src/weights/pallet_multisig.rs new file mode 100644 index 000000000000..4625c4f474ea --- /dev/null +++ b/cumulus/parachains/runtimes/bridge-hubs/bridge-hub-polkadot/src/weights/pallet_multisig.rs @@ -0,0 +1,165 @@ +// Copyright (C) Parity Technologies (UK) Ltd. +// This file is part of Cumulus. + +// Cumulus 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. + +// Cumulus 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 Cumulus. If not, see . + +//! Autogenerated weights for `pallet_multisig` +//! +//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev +//! DATE: 2023-07-31, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! WORST CASE MAP SIZE: `1000000` +//! HOSTNAME: `runner-ynta1nyy-project-238-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz` +//! EXECUTION: ``, WASM-EXECUTION: `Compiled`, CHAIN: `Some("bridge-hub-polkadot-dev")`, DB CACHE: 1024 + +// Executed Command: +// ./target/production/polkadot-parachain +// benchmark +// pallet +// --chain=bridge-hub-polkadot-dev +// --wasm-execution=compiled +// --pallet=pallet_multisig +// --no-storage-info +// --no-median-slopes +// --no-min-squares +// --extrinsic=* +// --steps=50 +// --repeat=20 +// --json +// --header=./file_header.txt +// --output=./parachains/runtimes/bridge-hubs/bridge-hub-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_multisig`. +pub struct WeightInfo(PhantomData); +impl pallet_multisig::WeightInfo for WeightInfo { + /// The range of component `z` is `[0, 10000]`. + fn as_multi_threshold_1(z: u32, ) -> Weight { + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 13_284_000 picoseconds. + Weight::from_parts(14_761_699, 0) + .saturating_add(Weight::from_parts(0, 0)) + // Standard Error: 7 + .saturating_add(Weight::from_parts(491, 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`) + /// The range of component `s` is `[2, 100]`. + /// The range of component `z` is `[0, 10000]`. + fn as_multi_create(s: u32, z: u32, ) -> Weight { + // Proof Size summary in bytes: + // Measured: `263 + s * (2 ±0)` + // Estimated: `6811` + // Minimum execution time: 44_043_000 picoseconds. + Weight::from_parts(32_303_705, 0) + .saturating_add(Weight::from_parts(0, 6811)) + // Standard Error: 1_280 + .saturating_add(Weight::from_parts(133_233, 0).saturating_mul(s.into())) + // Standard Error: 12 + .saturating_add(Weight::from_parts(1_467, 0).saturating_mul(z.into())) + .saturating_add(T::DbWeight::get().reads(1)) + .saturating_add(T::DbWeight::get().writes(1)) + } + /// Storage: `Multisig::Multisigs` (r:1 w:1) + /// Proof: `Multisig::Multisigs` (`max_values`: None, `max_size`: Some(3346), added: 5821, mode: `MaxEncodedLen`) + /// The range of component `s` is `[3, 100]`. + /// The range of component `z` is `[0, 10000]`. + fn as_multi_approve(s: u32, z: u32, ) -> Weight { + // Proof Size summary in bytes: + // Measured: `282` + // Estimated: `6811` + // Minimum execution time: 28_494_000 picoseconds. + Weight::from_parts(19_053_318, 0) + .saturating_add(Weight::from_parts(0, 6811)) + // Standard Error: 791 + .saturating_add(Weight::from_parts(112_935, 0).saturating_mul(s.into())) + // Standard Error: 7 + .saturating_add(Weight::from_parts(1_427, 0).saturating_mul(z.into())) + .saturating_add(T::DbWeight::get().reads(1)) + .saturating_add(T::DbWeight::get().writes(1)) + } + /// Storage: `Multisig::Multisigs` (r:1 w:1) + /// Proof: `Multisig::Multisigs` (`max_values`: None, `max_size`: Some(3346), added: 5821, 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 `[2, 100]`. + /// The range of component `z` is `[0, 10000]`. + fn as_multi_complete(s: u32, z: u32, ) -> Weight { + // Proof Size summary in bytes: + // Measured: `388 + s * (33 ±0)` + // Estimated: `6811` + // Minimum execution time: 49_505_000 picoseconds. + Weight::from_parts(36_407_515, 0) + .saturating_add(Weight::from_parts(0, 6811)) + // Standard Error: 1_595 + .saturating_add(Weight::from_parts(166_201, 0).saturating_mul(s.into())) + // Standard Error: 15 + .saturating_add(Weight::from_parts(1_481, 0).saturating_mul(z.into())) + .saturating_add(T::DbWeight::get().reads(2)) + .saturating_add(T::DbWeight::get().writes(2)) + } + /// Storage: `Multisig::Multisigs` (r:1 w:1) + /// Proof: `Multisig::Multisigs` (`max_values`: None, `max_size`: Some(3346), added: 5821, mode: `MaxEncodedLen`) + /// The range of component `s` is `[2, 100]`. + fn approve_as_multi_create(s: u32, ) -> Weight { + // Proof Size summary in bytes: + // Measured: `263 + s * (2 ±0)` + // Estimated: `6811` + // Minimum execution time: 30_977_000 picoseconds. + Weight::from_parts(32_222_158, 0) + .saturating_add(Weight::from_parts(0, 6811)) + // Standard Error: 1_872 + .saturating_add(Weight::from_parts(125_197, 0).saturating_mul(s.into())) + .saturating_add(T::DbWeight::get().reads(1)) + .saturating_add(T::DbWeight::get().writes(1)) + } + /// Storage: `Multisig::Multisigs` (r:1 w:1) + /// Proof: `Multisig::Multisigs` (`max_values`: None, `max_size`: Some(3346), added: 5821, mode: `MaxEncodedLen`) + /// The range of component `s` is `[2, 100]`. + fn approve_as_multi_approve(s: u32, ) -> Weight { + // Proof Size summary in bytes: + // Measured: `282` + // Estimated: `6811` + // Minimum execution time: 17_351_000 picoseconds. + Weight::from_parts(18_130_793, 0) + .saturating_add(Weight::from_parts(0, 6811)) + // Standard Error: 902 + .saturating_add(Weight::from_parts(109_485, 0).saturating_mul(s.into())) + .saturating_add(T::DbWeight::get().reads(1)) + .saturating_add(T::DbWeight::get().writes(1)) + } + /// Storage: `Multisig::Multisigs` (r:1 w:1) + /// Proof: `Multisig::Multisigs` (`max_values`: None, `max_size`: Some(3346), added: 5821, mode: `MaxEncodedLen`) + /// The range of component `s` is `[2, 100]`. + fn cancel_as_multi(s: u32, ) -> Weight { + // Proof Size summary in bytes: + // Measured: `454 + s * (1 ±0)` + // Estimated: `6811` + // Minimum execution time: 31_554_000 picoseconds. + Weight::from_parts(33_116_785, 0) + .saturating_add(Weight::from_parts(0, 6811)) + // Standard Error: 882 + .saturating_add(Weight::from_parts(119_357, 0).saturating_mul(s.into())) + .saturating_add(T::DbWeight::get().reads(1)) + .saturating_add(T::DbWeight::get().writes(1)) + } +} diff --git a/cumulus/parachains/runtimes/bridge-hubs/bridge-hub-polkadot/src/weights/pallet_session.rs b/cumulus/parachains/runtimes/bridge-hubs/bridge-hub-polkadot/src/weights/pallet_session.rs new file mode 100644 index 000000000000..29bc576ebc80 --- /dev/null +++ b/cumulus/parachains/runtimes/bridge-hubs/bridge-hub-polkadot/src/weights/pallet_session.rs @@ -0,0 +1,81 @@ +// Copyright (C) Parity Technologies (UK) Ltd. +// This file is part of Cumulus. + +// Cumulus 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. + +// Cumulus 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 Cumulus. If not, see . + +//! Autogenerated weights for `pallet_session` +//! +//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev +//! DATE: 2023-07-31, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! WORST CASE MAP SIZE: `1000000` +//! HOSTNAME: `runner-ynta1nyy-project-238-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz` +//! EXECUTION: ``, WASM-EXECUTION: `Compiled`, CHAIN: `Some("bridge-hub-polkadot-dev")`, DB CACHE: 1024 + +// Executed Command: +// ./target/production/polkadot-parachain +// benchmark +// pallet +// --chain=bridge-hub-polkadot-dev +// --wasm-execution=compiled +// --pallet=pallet_session +// --no-storage-info +// --no-median-slopes +// --no-min-squares +// --extrinsic=* +// --steps=50 +// --repeat=20 +// --json +// --header=./file_header.txt +// --output=./parachains/runtimes/bridge-hubs/bridge-hub-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_session`. +pub struct WeightInfo(PhantomData); +impl pallet_session::WeightInfo for WeightInfo { + /// Storage: `Session::NextKeys` (r:1 w:1) + /// Proof: `Session::NextKeys` (`max_values`: None, `max_size`: None, mode: `Measured`) + /// Storage: `Session::KeyOwner` (r:1 w:1) + /// Proof: `Session::KeyOwner` (`max_values`: None, `max_size`: None, mode: `Measured`) + fn set_keys() -> Weight { + // Proof Size summary in bytes: + // Measured: `297` + // Estimated: `3762` + // Minimum execution time: 16_905_000 picoseconds. + Weight::from_parts(17_310_000, 0) + .saturating_add(Weight::from_parts(0, 3762)) + .saturating_add(T::DbWeight::get().reads(2)) + .saturating_add(T::DbWeight::get().writes(2)) + } + /// Storage: `Session::NextKeys` (r:1 w:1) + /// Proof: `Session::NextKeys` (`max_values`: None, `max_size`: None, mode: `Measured`) + /// Storage: `Session::KeyOwner` (r:0 w:1) + /// Proof: `Session::KeyOwner` (`max_values`: None, `max_size`: None, mode: `Measured`) + fn purge_keys() -> Weight { + // Proof Size summary in bytes: + // Measured: `279` + // Estimated: `3744` + // Minimum execution time: 12_511_000 picoseconds. + Weight::from_parts(13_055_000, 0) + .saturating_add(Weight::from_parts(0, 3744)) + .saturating_add(T::DbWeight::get().reads(1)) + .saturating_add(T::DbWeight::get().writes(2)) + } +} diff --git a/cumulus/parachains/runtimes/bridge-hubs/bridge-hub-polkadot/src/weights/pallet_timestamp.rs b/cumulus/parachains/runtimes/bridge-hubs/bridge-hub-polkadot/src/weights/pallet_timestamp.rs new file mode 100644 index 000000000000..8252834cc11e --- /dev/null +++ b/cumulus/parachains/runtimes/bridge-hubs/bridge-hub-polkadot/src/weights/pallet_timestamp.rs @@ -0,0 +1,75 @@ +// Copyright (C) Parity Technologies (UK) Ltd. +// This file is part of Cumulus. + +// Cumulus 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. + +// Cumulus 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 Cumulus. If not, see . + +//! Autogenerated weights for `pallet_timestamp` +//! +//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev +//! DATE: 2023-07-31, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! WORST CASE MAP SIZE: `1000000` +//! HOSTNAME: `runner-ynta1nyy-project-238-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz` +//! EXECUTION: ``, WASM-EXECUTION: `Compiled`, CHAIN: `Some("bridge-hub-polkadot-dev")`, DB CACHE: 1024 + +// Executed Command: +// ./target/production/polkadot-parachain +// benchmark +// pallet +// --chain=bridge-hub-polkadot-dev +// --wasm-execution=compiled +// --pallet=pallet_timestamp +// --no-storage-info +// --no-median-slopes +// --no-min-squares +// --extrinsic=* +// --steps=50 +// --repeat=20 +// --json +// --header=./file_header.txt +// --output=./parachains/runtimes/bridge-hubs/bridge-hub-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_timestamp`. +pub struct WeightInfo(PhantomData); +impl pallet_timestamp::WeightInfo for WeightInfo { + /// Storage: `Timestamp::Now` (r:1 w:1) + /// Proof: `Timestamp::Now` (`max_values`: Some(1), `max_size`: Some(8), added: 503, mode: `MaxEncodedLen`) + /// Storage: `Aura::CurrentSlot` (r:1 w:0) + /// Proof: `Aura::CurrentSlot` (`max_values`: Some(1), `max_size`: Some(8), added: 503, mode: `MaxEncodedLen`) + fn set() -> Weight { + // Proof Size summary in bytes: + // Measured: `49` + // Estimated: `1493` + // Minimum execution time: 7_675_000 picoseconds. + Weight::from_parts(7_947_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: `57` + // Estimated: `0` + // Minimum execution time: 3_342_000 picoseconds. + Weight::from_parts(3_443_000, 0) + .saturating_add(Weight::from_parts(0, 0)) + } +} diff --git a/cumulus/parachains/runtimes/bridge-hubs/bridge-hub-polkadot/src/weights/pallet_utility.rs b/cumulus/parachains/runtimes/bridge-hubs/bridge-hub-polkadot/src/weights/pallet_utility.rs new file mode 100644 index 000000000000..5205e9fff859 --- /dev/null +++ b/cumulus/parachains/runtimes/bridge-hubs/bridge-hub-polkadot/src/weights/pallet_utility.rs @@ -0,0 +1,102 @@ +// Copyright (C) Parity Technologies (UK) Ltd. +// This file is part of Cumulus. + +// Cumulus 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. + +// Cumulus 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 Cumulus. If not, see . + +//! Autogenerated weights for `pallet_utility` +//! +//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev +//! DATE: 2023-07-31, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! WORST CASE MAP SIZE: `1000000` +//! HOSTNAME: `runner-ynta1nyy-project-238-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz` +//! EXECUTION: ``, WASM-EXECUTION: `Compiled`, CHAIN: `Some("bridge-hub-polkadot-dev")`, DB CACHE: 1024 + +// Executed Command: +// ./target/production/polkadot-parachain +// benchmark +// pallet +// --chain=bridge-hub-polkadot-dev +// --wasm-execution=compiled +// --pallet=pallet_utility +// --no-storage-info +// --no-median-slopes +// --no-min-squares +// --extrinsic=* +// --steps=50 +// --repeat=20 +// --json +// --header=./file_header.txt +// --output=./parachains/runtimes/bridge-hubs/bridge-hub-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_utility`. +pub struct WeightInfo(PhantomData); +impl pallet_utility::WeightInfo for WeightInfo { + /// The range of component `c` is `[0, 1000]`. + fn batch(c: u32, ) -> Weight { + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 6_810_000 picoseconds. + Weight::from_parts(6_290_871, 0) + .saturating_add(Weight::from_parts(0, 0)) + // Standard Error: 1_678 + .saturating_add(Weight::from_parts(5_193_419, 0).saturating_mul(c.into())) + } + fn as_derivative() -> Weight { + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 4_753_000 picoseconds. + Weight::from_parts(4_890_000, 0) + .saturating_add(Weight::from_parts(0, 0)) + } + /// The range of component `c` is `[0, 1000]`. + fn batch_all(c: u32, ) -> Weight { + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 6_873_000 picoseconds. + Weight::from_parts(9_780_422, 0) + .saturating_add(Weight::from_parts(0, 0)) + // Standard Error: 2_035 + .saturating_add(Weight::from_parts(5_473_943, 0).saturating_mul(c.into())) + } + fn dispatch_as() -> Weight { + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 8_443_000 picoseconds. + Weight::from_parts(8_904_000, 0) + .saturating_add(Weight::from_parts(0, 0)) + } + /// The range of component `c` is `[0, 1000]`. + fn force_batch(c: u32, ) -> Weight { + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 6_820_000 picoseconds. + Weight::from_parts(8_206_355, 0) + .saturating_add(Weight::from_parts(0, 0)) + // Standard Error: 1_327 + .saturating_add(Weight::from_parts(5_187_839, 0).saturating_mul(c.into())) + } +} diff --git a/cumulus/parachains/runtimes/bridge-hubs/bridge-hub-polkadot/src/weights/pallet_xcm.rs b/cumulus/parachains/runtimes/bridge-hubs/bridge-hub-polkadot/src/weights/pallet_xcm.rs new file mode 100644 index 000000000000..ffc5fa2fc23e --- /dev/null +++ b/cumulus/parachains/runtimes/bridge-hubs/bridge-hub-polkadot/src/weights/pallet_xcm.rs @@ -0,0 +1,289 @@ +// Copyright (C) Parity Technologies (UK) Ltd. +// This file is part of Cumulus. + +// Cumulus 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. + +// Cumulus 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 Cumulus. If not, see . + +//! Autogenerated weights for `pallet_xcm` +//! +//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev +//! DATE: 2023-07-31, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! WORST CASE MAP SIZE: `1000000` +//! HOSTNAME: `runner-ynta1nyy-project-238-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz` +//! EXECUTION: ``, WASM-EXECUTION: `Compiled`, CHAIN: `Some("bridge-hub-polkadot-dev")`, DB CACHE: 1024 + +// Executed Command: +// ./target/production/polkadot-parachain +// benchmark +// pallet +// --chain=bridge-hub-polkadot-dev +// --wasm-execution=compiled +// --pallet=pallet_xcm +// --no-storage-info +// --no-median-slopes +// --no-min-squares +// --extrinsic=* +// --steps=50 +// --repeat=20 +// --json +// --header=./file_header.txt +// --output=./parachains/runtimes/bridge-hubs/bridge-hub-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_xcm`. +pub struct WeightInfo(PhantomData); +impl pallet_xcm::WeightInfo for WeightInfo { + /// Storage: `PolkadotXcm::SupportedVersion` (r:1 w:0) + /// Proof: `PolkadotXcm::SupportedVersion` (`max_values`: None, `max_size`: None, mode: `Measured`) + /// Storage: `PolkadotXcm::VersionDiscoveryQueue` (r:1 w:1) + /// Proof: `PolkadotXcm::VersionDiscoveryQueue` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `PolkadotXcm::SafeXcmVersion` (r:1 w:0) + /// Proof: `PolkadotXcm::SafeXcmVersion` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `ParachainSystem::HostConfiguration` (r:1 w:0) + /// Proof: `ParachainSystem::HostConfiguration` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `ParachainSystem::PendingUpwardMessages` (r:1 w:1) + /// Proof: `ParachainSystem::PendingUpwardMessages` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + fn send() -> Weight { + // Proof Size summary in bytes: + // Measured: `38` + // Estimated: `3503` + // Minimum execution time: 25_510_000 picoseconds. + Weight::from_parts(25_755_000, 0) + .saturating_add(Weight::from_parts(0, 3503)) + .saturating_add(T::DbWeight::get().reads(5)) + .saturating_add(T::DbWeight::get().writes(2)) + } + /// Storage: `ParachainInfo::ParachainId` (r:1 w:0) + /// Proof: `ParachainInfo::ParachainId` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`) + fn teleport_assets() -> Weight { + // Proof Size summary in bytes: + // Measured: `32` + // Estimated: `1489` + // Minimum execution time: 24_125_000 picoseconds. + Weight::from_parts(25_559_000, 0) + .saturating_add(Weight::from_parts(0, 1489)) + .saturating_add(T::DbWeight::get().reads(1)) + } + /// Storage: `Benchmark::Override` (r:0 w:0) + /// Proof: `Benchmark::Override` (`max_values`: None, `max_size`: None, mode: `Measured`) + fn reserve_transfer_assets() -> Weight { + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 18_446_744_073_709_551_000 picoseconds. + Weight::from_parts(18_446_744_073_709_551_000, 0) + .saturating_add(Weight::from_parts(0, 0)) + } + /// Storage: `Benchmark::Override` (r:0 w:0) + /// Proof: `Benchmark::Override` (`max_values`: None, `max_size`: None, mode: `Measured`) + fn execute() -> Weight { + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 18_446_744_073_709_551_000 picoseconds. + Weight::from_parts(18_446_744_073_709_551_000, 0) + .saturating_add(Weight::from_parts(0, 0)) + } + /// Storage: `PolkadotXcm::SupportedVersion` (r:0 w:1) + /// Proof: `PolkadotXcm::SupportedVersion` (`max_values`: None, `max_size`: None, mode: `Measured`) + fn force_xcm_version() -> Weight { + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 8_625_000 picoseconds. + Weight::from_parts(9_232_000, 0) + .saturating_add(Weight::from_parts(0, 0)) + .saturating_add(T::DbWeight::get().writes(1)) + } + /// Storage: `PolkadotXcm::SafeXcmVersion` (r:0 w:1) + /// Proof: `PolkadotXcm::SafeXcmVersion` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + fn force_default_xcm_version() -> Weight { + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 2_690_000 picoseconds. + Weight::from_parts(2_906_000, 0) + .saturating_add(Weight::from_parts(0, 0)) + .saturating_add(T::DbWeight::get().writes(1)) + } + /// Storage: `PolkadotXcm::VersionNotifiers` (r:1 w:1) + /// Proof: `PolkadotXcm::VersionNotifiers` (`max_values`: None, `max_size`: None, mode: `Measured`) + /// Storage: `PolkadotXcm::QueryCounter` (r:1 w:1) + /// Proof: `PolkadotXcm::QueryCounter` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `PolkadotXcm::SupportedVersion` (r:1 w:0) + /// Proof: `PolkadotXcm::SupportedVersion` (`max_values`: None, `max_size`: None, mode: `Measured`) + /// Storage: `PolkadotXcm::VersionDiscoveryQueue` (r:1 w:1) + /// Proof: `PolkadotXcm::VersionDiscoveryQueue` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `PolkadotXcm::SafeXcmVersion` (r:1 w:0) + /// Proof: `PolkadotXcm::SafeXcmVersion` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `ParachainSystem::HostConfiguration` (r:1 w:0) + /// Proof: `ParachainSystem::HostConfiguration` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `ParachainSystem::PendingUpwardMessages` (r:1 w:1) + /// Proof: `ParachainSystem::PendingUpwardMessages` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `PolkadotXcm::Queries` (r:0 w:1) + /// Proof: `PolkadotXcm::Queries` (`max_values`: None, `max_size`: None, mode: `Measured`) + fn force_subscribe_version_notify() -> Weight { + // Proof Size summary in bytes: + // Measured: `38` + // Estimated: `3503` + // Minimum execution time: 30_131_000 picoseconds. + Weight::from_parts(31_138_000, 0) + .saturating_add(Weight::from_parts(0, 3503)) + .saturating_add(T::DbWeight::get().reads(7)) + .saturating_add(T::DbWeight::get().writes(5)) + } + /// Storage: `PolkadotXcm::VersionNotifiers` (r:1 w:1) + /// Proof: `PolkadotXcm::VersionNotifiers` (`max_values`: None, `max_size`: None, mode: `Measured`) + /// Storage: `PolkadotXcm::SupportedVersion` (r:1 w:0) + /// Proof: `PolkadotXcm::SupportedVersion` (`max_values`: None, `max_size`: None, mode: `Measured`) + /// Storage: `PolkadotXcm::VersionDiscoveryQueue` (r:1 w:1) + /// Proof: `PolkadotXcm::VersionDiscoveryQueue` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `PolkadotXcm::SafeXcmVersion` (r:1 w:0) + /// Proof: `PolkadotXcm::SafeXcmVersion` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `ParachainSystem::HostConfiguration` (r:1 w:0) + /// Proof: `ParachainSystem::HostConfiguration` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `ParachainSystem::PendingUpwardMessages` (r:1 w:1) + /// Proof: `ParachainSystem::PendingUpwardMessages` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `PolkadotXcm::Queries` (r:0 w:1) + /// Proof: `PolkadotXcm::Queries` (`max_values`: None, `max_size`: None, mode: `Measured`) + fn force_unsubscribe_version_notify() -> Weight { + // Proof Size summary in bytes: + // Measured: `220` + // Estimated: `3685` + // Minimum execution time: 32_411_000 picoseconds. + Weight::from_parts(33_009_000, 0) + .saturating_add(Weight::from_parts(0, 3685)) + .saturating_add(T::DbWeight::get().reads(6)) + .saturating_add(T::DbWeight::get().writes(4)) + } + /// Storage: `PolkadotXcm::XcmExecutionSuspended` (r:0 w:1) + /// Proof: `PolkadotXcm::XcmExecutionSuspended` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + fn force_suspension() -> Weight { + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 2_548_000 picoseconds. + Weight::from_parts(2_727_000, 0) + .saturating_add(Weight::from_parts(0, 0)) + .saturating_add(T::DbWeight::get().writes(1)) + } + /// Storage: `PolkadotXcm::SupportedVersion` (r:4 w:2) + /// Proof: `PolkadotXcm::SupportedVersion` (`max_values`: None, `max_size`: None, mode: `Measured`) + fn migrate_supported_version() -> Weight { + // Proof Size summary in bytes: + // Measured: `95` + // Estimated: `10985` + // Minimum execution time: 15_298_000 picoseconds. + Weight::from_parts(15_964_000, 0) + .saturating_add(Weight::from_parts(0, 10985)) + .saturating_add(T::DbWeight::get().reads(4)) + .saturating_add(T::DbWeight::get().writes(2)) + } + /// Storage: `PolkadotXcm::VersionNotifiers` (r:4 w:2) + /// Proof: `PolkadotXcm::VersionNotifiers` (`max_values`: None, `max_size`: None, mode: `Measured`) + fn migrate_version_notifiers() -> Weight { + // Proof Size summary in bytes: + // Measured: `99` + // Estimated: `10989` + // Minimum execution time: 14_927_000 picoseconds. + Weight::from_parts(15_528_000, 0) + .saturating_add(Weight::from_parts(0, 10989)) + .saturating_add(T::DbWeight::get().reads(4)) + .saturating_add(T::DbWeight::get().writes(2)) + } + /// Storage: `PolkadotXcm::VersionNotifyTargets` (r:5 w:0) + /// Proof: `PolkadotXcm::VersionNotifyTargets` (`max_values`: None, `max_size`: None, mode: `Measured`) + fn already_notified_target() -> Weight { + // Proof Size summary in bytes: + // Measured: `106` + // Estimated: `13471` + // Minimum execution time: 16_409_000 picoseconds. + Weight::from_parts(16_960_000, 0) + .saturating_add(Weight::from_parts(0, 13471)) + .saturating_add(T::DbWeight::get().reads(5)) + } + /// Storage: `PolkadotXcm::VersionNotifyTargets` (r:2 w:1) + /// Proof: `PolkadotXcm::VersionNotifyTargets` (`max_values`: None, `max_size`: None, mode: `Measured`) + /// Storage: `PolkadotXcm::SupportedVersion` (r:1 w:0) + /// Proof: `PolkadotXcm::SupportedVersion` (`max_values`: None, `max_size`: None, mode: `Measured`) + /// Storage: `PolkadotXcm::VersionDiscoveryQueue` (r:1 w:1) + /// Proof: `PolkadotXcm::VersionDiscoveryQueue` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `PolkadotXcm::SafeXcmVersion` (r:1 w:0) + /// Proof: `PolkadotXcm::SafeXcmVersion` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `ParachainSystem::HostConfiguration` (r:1 w:0) + /// Proof: `ParachainSystem::HostConfiguration` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `ParachainSystem::PendingUpwardMessages` (r:1 w:1) + /// Proof: `ParachainSystem::PendingUpwardMessages` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + fn notify_current_targets() -> Weight { + // Proof Size summary in bytes: + // Measured: `106` + // Estimated: `6046` + // Minimum execution time: 28_204_000 picoseconds. + Weight::from_parts(28_641_000, 0) + .saturating_add(Weight::from_parts(0, 6046)) + .saturating_add(T::DbWeight::get().reads(7)) + .saturating_add(T::DbWeight::get().writes(3)) + } + /// Storage: `PolkadotXcm::VersionNotifyTargets` (r:3 w:0) + /// Proof: `PolkadotXcm::VersionNotifyTargets` (`max_values`: None, `max_size`: None, mode: `Measured`) + fn notify_target_migration_fail() -> Weight { + // Proof Size summary in bytes: + // Measured: `136` + // Estimated: `8551` + // Minimum execution time: 8_576_000 picoseconds. + Weight::from_parts(8_895_000, 0) + .saturating_add(Weight::from_parts(0, 8551)) + .saturating_add(T::DbWeight::get().reads(3)) + } + /// Storage: `PolkadotXcm::VersionNotifyTargets` (r:4 w:2) + /// Proof: `PolkadotXcm::VersionNotifyTargets` (`max_values`: None, `max_size`: None, mode: `Measured`) + fn migrate_version_notify_targets() -> Weight { + // Proof Size summary in bytes: + // Measured: `106` + // Estimated: `10996` + // Minimum execution time: 15_263_000 picoseconds. + Weight::from_parts(15_726_000, 0) + .saturating_add(Weight::from_parts(0, 10996)) + .saturating_add(T::DbWeight::get().reads(4)) + .saturating_add(T::DbWeight::get().writes(2)) + } + /// Storage: `PolkadotXcm::VersionNotifyTargets` (r:4 w:2) + /// Proof: `PolkadotXcm::VersionNotifyTargets` (`max_values`: None, `max_size`: None, mode: `Measured`) + /// Storage: `PolkadotXcm::SupportedVersion` (r:1 w:0) + /// Proof: `PolkadotXcm::SupportedVersion` (`max_values`: None, `max_size`: None, mode: `Measured`) + /// Storage: `PolkadotXcm::VersionDiscoveryQueue` (r:1 w:1) + /// Proof: `PolkadotXcm::VersionDiscoveryQueue` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `PolkadotXcm::SafeXcmVersion` (r:1 w:0) + /// Proof: `PolkadotXcm::SafeXcmVersion` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `ParachainSystem::HostConfiguration` (r:1 w:0) + /// Proof: `ParachainSystem::HostConfiguration` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `ParachainSystem::PendingUpwardMessages` (r:1 w:1) + /// Proof: `ParachainSystem::PendingUpwardMessages` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + fn migrate_and_notify_old_targets() -> Weight { + // Proof Size summary in bytes: + // Measured: `112` + // Estimated: `11002` + // Minimum execution time: 34_186_000 picoseconds. + Weight::from_parts(35_204_000, 0) + .saturating_add(Weight::from_parts(0, 11002)) + .saturating_add(T::DbWeight::get().reads(9)) + .saturating_add(T::DbWeight::get().writes(4)) + } +} diff --git a/cumulus/parachains/runtimes/bridge-hubs/bridge-hub-polkadot/src/weights/paritydb_weights.rs b/cumulus/parachains/runtimes/bridge-hubs/bridge-hub-polkadot/src/weights/paritydb_weights.rs new file mode 100644 index 000000000000..25679703831a --- /dev/null +++ b/cumulus/parachains/runtimes/bridge-hubs/bridge-hub-polkadot/src/weights/paritydb_weights.rs @@ -0,0 +1,63 @@ +// This file is part of Substrate. + +// 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. + +pub mod constants { + use frame_support::{ + parameter_types, + weights::{constants, RuntimeDbWeight}, + }; + + parameter_types! { + /// `ParityDB` can be enabled with a feature flag, but is still experimental. These weights + /// are available for brave runtime engineers who may want to try this out as default. + pub const ParityDbWeight: RuntimeDbWeight = RuntimeDbWeight { + read: 8_000 * constants::WEIGHT_REF_TIME_PER_NANOS, + write: 50_000 * constants::WEIGHT_REF_TIME_PER_NANOS, + }; + } + + #[cfg(test)] + mod test_db_weights { + use super::constants::ParityDbWeight as W; + use frame_support::weights::constants; + + /// Checks that all weights exist and have sane values. + // NOTE: If this test fails but you are sure that the generated values are fine, + // you can delete it. + #[test] + fn sane() { + // At least 1 µs. + assert!( + W::get().reads(1).ref_time() >= constants::WEIGHT_REF_TIME_PER_MICROS, + "Read weight should be at least 1 µs." + ); + assert!( + W::get().writes(1).ref_time() >= constants::WEIGHT_REF_TIME_PER_MICROS, + "Write weight should be at least 1 µs." + ); + // At most 1 ms. + assert!( + W::get().reads(1).ref_time() <= constants::WEIGHT_REF_TIME_PER_MILLIS, + "Read weight should be at most 1 ms." + ); + assert!( + W::get().writes(1).ref_time() <= constants::WEIGHT_REF_TIME_PER_MILLIS, + "Write weight should be at most 1 ms." + ); + } + } +} diff --git a/cumulus/parachains/runtimes/bridge-hubs/bridge-hub-polkadot/src/weights/rocksdb_weights.rs b/cumulus/parachains/runtimes/bridge-hubs/bridge-hub-polkadot/src/weights/rocksdb_weights.rs new file mode 100644 index 000000000000..3dd817aa6f13 --- /dev/null +++ b/cumulus/parachains/runtimes/bridge-hubs/bridge-hub-polkadot/src/weights/rocksdb_weights.rs @@ -0,0 +1,63 @@ +// This file is part of Substrate. + +// 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. + +pub mod constants { + use frame_support::{ + parameter_types, + weights::{constants, RuntimeDbWeight}, + }; + + parameter_types! { + /// By default, Substrate uses `RocksDB`, so this will be the weight used throughout + /// the runtime. + pub const RocksDbWeight: RuntimeDbWeight = RuntimeDbWeight { + read: 25_000 * constants::WEIGHT_REF_TIME_PER_NANOS, + write: 100_000 * constants::WEIGHT_REF_TIME_PER_NANOS, + }; + } + + #[cfg(test)] + mod test_db_weights { + use super::constants::RocksDbWeight as W; + use frame_support::weights::constants; + + /// Checks that all weights exist and have sane values. + // NOTE: If this test fails but you are sure that the generated values are fine, + // you can delete it. + #[test] + fn sane() { + // At least 1 µs. + assert!( + W::get().reads(1).ref_time() >= constants::WEIGHT_REF_TIME_PER_MICROS, + "Read weight should be at least 1 µs." + ); + assert!( + W::get().writes(1).ref_time() >= constants::WEIGHT_REF_TIME_PER_MICROS, + "Write weight should be at least 1 µs." + ); + // At most 1 ms. + assert!( + W::get().reads(1).ref_time() <= constants::WEIGHT_REF_TIME_PER_MILLIS, + "Read weight should be at most 1 ms." + ); + assert!( + W::get().writes(1).ref_time() <= constants::WEIGHT_REF_TIME_PER_MILLIS, + "Write weight should be at most 1 ms." + ); + } + } +} diff --git a/cumulus/parachains/runtimes/bridge-hubs/bridge-hub-polkadot/src/weights/xcm/mod.rs b/cumulus/parachains/runtimes/bridge-hubs/bridge-hub-polkadot/src/weights/xcm/mod.rs new file mode 100644 index 000000000000..7e9f21842725 --- /dev/null +++ b/cumulus/parachains/runtimes/bridge-hubs/bridge-hub-polkadot/src/weights/xcm/mod.rs @@ -0,0 +1,245 @@ +// Copyright (C) Parity Technologies (UK) Ltd. +// This file is part of Cumulus. + +// Cumulus 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. + +// Cumulus 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 Cumulus. If not, see . + +mod pallet_xcm_benchmarks_fungible; +mod pallet_xcm_benchmarks_generic; + +use crate::{xcm_config::MaxAssetsIntoHolding, Runtime}; +use frame_support::weights::Weight; +use pallet_xcm_benchmarks_fungible::WeightInfo as XcmFungibleWeight; +use pallet_xcm_benchmarks_generic::WeightInfo as XcmGeneric; +use sp_std::prelude::*; +use xcm::{latest::prelude::*, DoubleEncoded}; + +trait WeighMultiAssets { + fn weigh_multi_assets(&self, weight: Weight) -> Weight; +} + +const MAX_ASSETS: u64 = 100; + +impl WeighMultiAssets for MultiAssetFilter { + fn weigh_multi_assets(&self, weight: Weight) -> Weight { + match self { + Self::Definite(assets) => weight.saturating_mul(assets.inner().iter().count() as u64), + Self::Wild(asset) => match asset { + All => weight.saturating_mul(MAX_ASSETS), + AllOf { fun, .. } => match fun { + WildFungibility::Fungible => weight, + // Magic number 2 has to do with the fact that we could have up to 2 times + // MaxAssetsIntoHolding in the worst-case scenario. + WildFungibility::NonFungible => + weight.saturating_mul((MaxAssetsIntoHolding::get() * 2) as u64), + }, + AllCounted(count) => weight.saturating_mul(MAX_ASSETS.min(*count as u64)), + AllOfCounted { count, .. } => weight.saturating_mul(MAX_ASSETS.min(*count as u64)), + }, + } + } +} + +impl WeighMultiAssets for MultiAssets { + fn weigh_multi_assets(&self, weight: Weight) -> Weight { + weight.saturating_mul(self.inner().iter().count() as u64) + } +} + +pub struct BridgeHubPolkadotXcmWeight(core::marker::PhantomData); +impl XcmWeightInfo for BridgeHubPolkadotXcmWeight { + fn withdraw_asset(assets: &MultiAssets) -> Weight { + assets.weigh_multi_assets(XcmFungibleWeight::::withdraw_asset()) + } + fn reserve_asset_deposited(assets: &MultiAssets) -> Weight { + assets.weigh_multi_assets(XcmFungibleWeight::::reserve_asset_deposited()) + } + fn receive_teleported_asset(assets: &MultiAssets) -> Weight { + assets.weigh_multi_assets(XcmFungibleWeight::::receive_teleported_asset()) + } + fn query_response( + _query_id: &u64, + _response: &Response, + _max_weight: &Weight, + _querier: &Option, + ) -> Weight { + XcmGeneric::::query_response() + } + fn transfer_asset(assets: &MultiAssets, _dest: &MultiLocation) -> Weight { + assets.weigh_multi_assets(XcmFungibleWeight::::transfer_asset()) + } + fn transfer_reserve_asset( + assets: &MultiAssets, + _dest: &MultiLocation, + _xcm: &Xcm<()>, + ) -> Weight { + assets.weigh_multi_assets(XcmFungibleWeight::::transfer_reserve_asset()) + } + fn transact( + _origin_type: &OriginKind, + _require_weight_at_most: &Weight, + _call: &DoubleEncoded, + ) -> Weight { + XcmGeneric::::transact() + } + fn hrmp_new_channel_open_request( + _sender: &u32, + _max_message_size: &u32, + _max_capacity: &u32, + ) -> Weight { + // XCM Executor does not currently support HRMP channel operations + Weight::MAX + } + fn hrmp_channel_accepted(_recipient: &u32) -> Weight { + // XCM Executor does not currently support HRMP channel operations + Weight::MAX + } + fn hrmp_channel_closing(_initiator: &u32, _sender: &u32, _recipient: &u32) -> Weight { + // XCM Executor does not currently support HRMP channel operations + Weight::MAX + } + fn clear_origin() -> Weight { + XcmGeneric::::clear_origin() + } + fn descend_origin(_who: &InteriorMultiLocation) -> Weight { + XcmGeneric::::descend_origin() + } + fn report_error(_query_response_info: &QueryResponseInfo) -> Weight { + XcmGeneric::::report_error() + } + + fn deposit_asset(assets: &MultiAssetFilter, _dest: &MultiLocation) -> Weight { + assets.weigh_multi_assets(XcmFungibleWeight::::deposit_asset()) + } + fn deposit_reserve_asset( + assets: &MultiAssetFilter, + _dest: &MultiLocation, + _xcm: &Xcm<()>, + ) -> Weight { + assets.weigh_multi_assets(XcmFungibleWeight::::deposit_reserve_asset()) + } + fn exchange_asset(_give: &MultiAssetFilter, _receive: &MultiAssets, _maximal: &bool) -> Weight { + Weight::MAX + } + fn initiate_reserve_withdraw( + assets: &MultiAssetFilter, + _reserve: &MultiLocation, + _xcm: &Xcm<()>, + ) -> Weight { + assets.weigh_multi_assets(XcmFungibleWeight::::initiate_reserve_withdraw()) + } + fn initiate_teleport( + assets: &MultiAssetFilter, + _dest: &MultiLocation, + _xcm: &Xcm<()>, + ) -> Weight { + assets.weigh_multi_assets(XcmFungibleWeight::::initiate_teleport()) + } + fn report_holding(_response_info: &QueryResponseInfo, _assets: &MultiAssetFilter) -> Weight { + XcmGeneric::::report_holding() + } + fn buy_execution(_fees: &MultiAsset, _weight_limit: &WeightLimit) -> Weight { + XcmGeneric::::buy_execution() + } + fn refund_surplus() -> Weight { + XcmGeneric::::refund_surplus() + } + fn set_error_handler(_xcm: &Xcm) -> Weight { + XcmGeneric::::set_error_handler() + } + fn set_appendix(_xcm: &Xcm) -> Weight { + XcmGeneric::::set_appendix() + } + fn clear_error() -> Weight { + XcmGeneric::::clear_error() + } + fn claim_asset(_assets: &MultiAssets, _ticket: &MultiLocation) -> Weight { + XcmGeneric::::claim_asset() + } + fn trap(_code: &u64) -> Weight { + XcmGeneric::::trap() + } + fn subscribe_version(_query_id: &QueryId, _max_response_weight: &Weight) -> Weight { + XcmGeneric::::subscribe_version() + } + fn unsubscribe_version() -> Weight { + XcmGeneric::::unsubscribe_version() + } + fn burn_asset(assets: &MultiAssets) -> Weight { + assets.weigh_multi_assets(XcmGeneric::::burn_asset()) + } + fn expect_asset(assets: &MultiAssets) -> Weight { + assets.weigh_multi_assets(XcmGeneric::::expect_asset()) + } + fn expect_origin(_origin: &Option) -> Weight { + XcmGeneric::::expect_origin() + } + fn expect_error(_error: &Option<(u32, XcmError)>) -> Weight { + XcmGeneric::::expect_error() + } + fn expect_transact_status(_transact_status: &MaybeErrorCode) -> Weight { + XcmGeneric::::expect_transact_status() + } + fn query_pallet(_module_name: &Vec, _response_info: &QueryResponseInfo) -> Weight { + XcmGeneric::::query_pallet() + } + fn expect_pallet( + _index: &u32, + _name: &Vec, + _module_name: &Vec, + _crate_major: &u32, + _min_crate_minor: &u32, + ) -> Weight { + XcmGeneric::::expect_pallet() + } + fn report_transact_status(_response_info: &QueryResponseInfo) -> Weight { + XcmGeneric::::report_transact_status() + } + fn clear_transact_status() -> Weight { + XcmGeneric::::clear_transact_status() + } + fn universal_origin(_: &Junction) -> Weight { + Weight::MAX + } + fn export_message(_: &NetworkId, _: &Junctions, _: &Xcm<()>) -> Weight { + Weight::MAX + } + fn lock_asset(_: &MultiAsset, _: &MultiLocation) -> Weight { + Weight::MAX + } + fn unlock_asset(_: &MultiAsset, _: &MultiLocation) -> Weight { + Weight::MAX + } + fn note_unlockable(_: &MultiAsset, _: &MultiLocation) -> Weight { + Weight::MAX + } + fn request_unlock(_: &MultiAsset, _: &MultiLocation) -> Weight { + Weight::MAX + } + fn set_fees_mode(_: &bool) -> Weight { + XcmGeneric::::set_fees_mode() + } + fn set_topic(_topic: &[u8; 32]) -> Weight { + XcmGeneric::::set_topic() + } + fn clear_topic() -> Weight { + XcmGeneric::::clear_topic() + } + fn alias_origin(_: &MultiLocation) -> Weight { + // XCM Executor does not currently support alias origin operations + Weight::MAX + } + fn unpaid_execution(_: &WeightLimit, _: &Option) -> Weight { + XcmGeneric::::unpaid_execution() + } +} diff --git a/cumulus/parachains/runtimes/bridge-hubs/bridge-hub-polkadot/src/weights/xcm/pallet_xcm_benchmarks_fungible.rs b/cumulus/parachains/runtimes/bridge-hubs/bridge-hub-polkadot/src/weights/xcm/pallet_xcm_benchmarks_fungible.rs new file mode 100644 index 000000000000..f45f39363652 --- /dev/null +++ b/cumulus/parachains/runtimes/bridge-hubs/bridge-hub-polkadot/src/weights/xcm/pallet_xcm_benchmarks_fungible.rs @@ -0,0 +1,188 @@ +// Copyright (C) Parity Technologies (UK) Ltd. +// This file is part of Cumulus. + +// Cumulus 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. + +// Cumulus 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 Cumulus. 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-09-28, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! WORST CASE MAP SIZE: `1000000` +//! HOSTNAME: `runner-nbnwcyh-project-674-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz` +//! WASM-EXECUTION: Compiled, CHAIN: Some("bridge-hub-polkadot-dev"), DB CACHE: 1024 + +// Executed Command: +// target/production/polkadot-parachain +// benchmark +// pallet +// --steps=50 +// --repeat=20 +// --extrinsic=* +// --wasm-execution=compiled +// --heap-pages=4096 +// --json-file=/builds/parity/mirrors/polkadot-sdk/.git/.artifacts/bench.json +// --pallet=pallet_xcm_benchmarks::fungible +// --chain=bridge-hub-polkadot-dev +// --header=./cumulus/file_header.txt +// --template=./cumulus/templates/xcm-bench-template.hbs +// --output=./cumulus/parachains/runtimes/bridge-hubs/bridge-hub-polkadot/src/weights/xcm/ + +#![cfg_attr(rustfmt, rustfmt_skip)] +#![allow(unused_parens)] +#![allow(unused_imports)] + +use frame_support::{traits::Get, weights::Weight}; +use sp_std::marker::PhantomData; + +/// Weights for `pallet_xcm_benchmarks::fungible`. +pub struct WeightInfo(PhantomData); +impl WeightInfo { + // Storage: `System::Account` (r:1 w:1) + // Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`) + pub fn withdraw_asset() -> Weight { + // Proof Size summary in bytes: + // Measured: `101` + // Estimated: `3593` + // Minimum execution time: 24_237_000 picoseconds. + Weight::from_parts(24_697_000, 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`) + pub fn transfer_asset() -> Weight { + // Proof Size summary in bytes: + // Measured: `153` + // Estimated: `6196` + // Minimum execution time: 52_269_000 picoseconds. + Weight::from_parts(53_848_000, 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: `ParachainInfo::ParachainId` (r:1 w:0) + // Proof: `ParachainInfo::ParachainId` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`) + // Storage: `PolkadotXcm::SupportedVersion` (r:1 w:0) + // Proof: `PolkadotXcm::SupportedVersion` (`max_values`: None, `max_size`: None, mode: `Measured`) + // Storage: `PolkadotXcm::VersionDiscoveryQueue` (r:1 w:1) + // Proof: `PolkadotXcm::VersionDiscoveryQueue` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + // Storage: `PolkadotXcm::SafeXcmVersion` (r:1 w:0) + // Proof: `PolkadotXcm::SafeXcmVersion` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + // Storage: `ParachainSystem::HostConfiguration` (r:1 w:0) + // Proof: `ParachainSystem::HostConfiguration` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + // Storage: `ParachainSystem::PendingUpwardMessages` (r:1 w:1) + // Proof: `ParachainSystem::PendingUpwardMessages` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + pub fn transfer_reserve_asset() -> Weight { + // Proof Size summary in bytes: + // Measured: `223` + // Estimated: `6196` + // Minimum execution time: 77_611_000 picoseconds. + Weight::from_parts(82_634_000, 6196) + .saturating_add(T::DbWeight::get().reads(8)) + .saturating_add(T::DbWeight::get().writes(4)) + } + // Storage: `Benchmark::Override` (r:0 w:0) + // Proof: `Benchmark::Override` (`max_values`: None, `max_size`: None, mode: `Measured`) + pub fn reserve_asset_deposited() -> Weight { + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 18_446_744_073_709_551_000 picoseconds. + Weight::from_parts(18_446_744_073_709_551_000, 0) + } + // Storage: `ParachainInfo::ParachainId` (r:1 w:0) + // Proof: `ParachainInfo::ParachainId` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`) + // Storage: `PolkadotXcm::SupportedVersion` (r:1 w:0) + // Proof: `PolkadotXcm::SupportedVersion` (`max_values`: None, `max_size`: None, mode: `Measured`) + // Storage: `PolkadotXcm::VersionDiscoveryQueue` (r:1 w:1) + // Proof: `PolkadotXcm::VersionDiscoveryQueue` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + // Storage: `PolkadotXcm::SafeXcmVersion` (r:1 w:0) + // Proof: `PolkadotXcm::SafeXcmVersion` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + // Storage: `ParachainSystem::HostConfiguration` (r:1 w:0) + // Proof: `ParachainSystem::HostConfiguration` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + // Storage: `ParachainSystem::PendingUpwardMessages` (r:1 w:1) + // Proof: `ParachainSystem::PendingUpwardMessages` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + pub fn initiate_reserve_withdraw() -> Weight { + // Proof Size summary in bytes: + // Measured: `70` + // Estimated: `3535` + // Minimum execution time: 29_506_000 picoseconds. + Weight::from_parts(30_269_000, 3535) + .saturating_add(T::DbWeight::get().reads(6)) + .saturating_add(T::DbWeight::get().writes(2)) + } + pub fn receive_teleported_asset() -> Weight { + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 3_541_000 picoseconds. + Weight::from_parts(3_629_000, 0) + } + // Storage: `System::Account` (r:1 w:1) + // Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`) + pub fn deposit_asset() -> Weight { + // Proof Size summary in bytes: + // Measured: `52` + // Estimated: `3593` + // Minimum execution time: 25_651_000 picoseconds. + Weight::from_parts(26_078_000, 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: `ParachainInfo::ParachainId` (r:1 w:0) + // Proof: `ParachainInfo::ParachainId` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`) + // Storage: `PolkadotXcm::SupportedVersion` (r:1 w:0) + // Proof: `PolkadotXcm::SupportedVersion` (`max_values`: None, `max_size`: None, mode: `Measured`) + // Storage: `PolkadotXcm::VersionDiscoveryQueue` (r:1 w:1) + // Proof: `PolkadotXcm::VersionDiscoveryQueue` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + // Storage: `PolkadotXcm::SafeXcmVersion` (r:1 w:0) + // Proof: `PolkadotXcm::SafeXcmVersion` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + // Storage: `ParachainSystem::HostConfiguration` (r:1 w:0) + // Proof: `ParachainSystem::HostConfiguration` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + // Storage: `ParachainSystem::PendingUpwardMessages` (r:1 w:1) + // Proof: `ParachainSystem::PendingUpwardMessages` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + pub fn deposit_reserve_asset() -> Weight { + // Proof Size summary in bytes: + // Measured: `122` + // Estimated: `3593` + // Minimum execution time: 52_050_000 picoseconds. + Weight::from_parts(53_293_000, 3593) + .saturating_add(T::DbWeight::get().reads(7)) + .saturating_add(T::DbWeight::get().writes(3)) + } + // Storage: `ParachainInfo::ParachainId` (r:1 w:0) + // Proof: `ParachainInfo::ParachainId` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`) + // Storage: `PolkadotXcm::SupportedVersion` (r:1 w:0) + // Proof: `PolkadotXcm::SupportedVersion` (`max_values`: None, `max_size`: None, mode: `Measured`) + // Storage: `PolkadotXcm::VersionDiscoveryQueue` (r:1 w:1) + // Proof: `PolkadotXcm::VersionDiscoveryQueue` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + // Storage: `PolkadotXcm::SafeXcmVersion` (r:1 w:0) + // Proof: `PolkadotXcm::SafeXcmVersion` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + // Storage: `ParachainSystem::HostConfiguration` (r:1 w:0) + // Proof: `ParachainSystem::HostConfiguration` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + // Storage: `ParachainSystem::PendingUpwardMessages` (r:1 w:1) + // Proof: `ParachainSystem::PendingUpwardMessages` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + pub fn initiate_teleport() -> Weight { + // Proof Size summary in bytes: + // Measured: `70` + // Estimated: `3535` + // Minimum execution time: 30_009_000 picoseconds. + Weight::from_parts(30_540_000, 3535) + .saturating_add(T::DbWeight::get().reads(6)) + .saturating_add(T::DbWeight::get().writes(2)) + } +} diff --git a/cumulus/parachains/runtimes/bridge-hubs/bridge-hub-polkadot/src/weights/xcm/pallet_xcm_benchmarks_generic.rs b/cumulus/parachains/runtimes/bridge-hubs/bridge-hub-polkadot/src/weights/xcm/pallet_xcm_benchmarks_generic.rs new file mode 100644 index 000000000000..7968649d143c --- /dev/null +++ b/cumulus/parachains/runtimes/bridge-hubs/bridge-hub-polkadot/src/weights/xcm/pallet_xcm_benchmarks_generic.rs @@ -0,0 +1,329 @@ +// Copyright (C) Parity Technologies (UK) Ltd. +// This file is part of Cumulus. + +// Cumulus 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. + +// Cumulus 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 Cumulus. 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-07-31, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! WORST CASE MAP SIZE: `1000000` +//! HOSTNAME: `runner-ynta1nyy-project-238-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz` +//! EXECUTION: , WASM-EXECUTION: Compiled, CHAIN: Some("bridge-hub-polkadot-dev"), DB CACHE: 1024 + +// Executed Command: +// ./target/production/polkadot-parachain +// benchmark +// pallet +// --template=./templates/xcm-bench-template.hbs +// --chain=bridge-hub-polkadot-dev +// --wasm-execution=compiled +// --pallet=pallet_xcm_benchmarks::generic +// --no-storage-info +// --no-median-slopes +// --no-min-squares +// --extrinsic=* +// --steps=50 +// --repeat=20 +// --json +// --header=./file_header.txt +// --output=./parachains/runtimes/bridge-hubs/bridge-hub-polkadot/src/weights/xcm/pallet_xcm_benchmarks_generic.rs + +#![cfg_attr(rustfmt, rustfmt_skip)] +#![allow(unused_parens)] +#![allow(unused_imports)] + +use frame_support::{traits::Get, weights::Weight}; +use sp_std::marker::PhantomData; + +/// Weights for `pallet_xcm_benchmarks::generic`. +pub struct WeightInfo(PhantomData); +impl WeightInfo { + // Storage: `ParachainInfo::ParachainId` (r:1 w:0) + // Proof: `ParachainInfo::ParachainId` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`) + // Storage: `PolkadotXcm::SupportedVersion` (r:1 w:0) + // Proof: `PolkadotXcm::SupportedVersion` (`max_values`: None, `max_size`: None, mode: `Measured`) + // Storage: `PolkadotXcm::VersionDiscoveryQueue` (r:1 w:1) + // Proof: `PolkadotXcm::VersionDiscoveryQueue` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + // Storage: `PolkadotXcm::SafeXcmVersion` (r:1 w:0) + // Proof: `PolkadotXcm::SafeXcmVersion` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + // Storage: `ParachainSystem::HostConfiguration` (r:1 w:0) + // Proof: `ParachainSystem::HostConfiguration` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + // Storage: `ParachainSystem::PendingUpwardMessages` (r:1 w:1) + // Proof: `ParachainSystem::PendingUpwardMessages` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + pub fn report_holding() -> Weight { + // Proof Size summary in bytes: + // Measured: `70` + // Estimated: `3535` + // Minimum execution time: 30_923_000 picoseconds. + Weight::from_parts(31_653_000, 3535) + .saturating_add(T::DbWeight::get().reads(6)) + .saturating_add(T::DbWeight::get().writes(2)) + } + pub fn buy_execution() -> Weight { + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 2_837_000 picoseconds. + Weight::from_parts(2_932_000, 0) + } + // Storage: `PolkadotXcm::Queries` (r:1 w:0) + // Proof: `PolkadotXcm::Queries` (`max_values`: None, `max_size`: None, mode: `Measured`) + pub fn query_response() -> Weight { + // Proof Size summary in bytes: + // Measured: `32` + // Estimated: `3497` + // Minimum execution time: 10_319_000 picoseconds. + Weight::from_parts(10_614_000, 3497) + .saturating_add(T::DbWeight::get().reads(1)) + } + pub fn transact() -> Weight { + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 11_466_000 picoseconds. + Weight::from_parts(12_005_000, 0) + } + pub fn refund_surplus() -> Weight { + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 3_039_000 picoseconds. + Weight::from_parts(3_125_000, 0) + } + pub fn set_error_handler() -> Weight { + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 2_655_000 picoseconds. + Weight::from_parts(2_717_000, 0) + } + pub fn set_appendix() -> Weight { + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 2_655_000 picoseconds. + Weight::from_parts(2_695_000, 0) + } + pub fn clear_error() -> Weight { + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 2_612_000 picoseconds. + Weight::from_parts(2_685_000, 0) + } + pub fn descend_origin() -> Weight { + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 3_286_000 picoseconds. + Weight::from_parts(3_425_000, 0) + } + pub fn clear_origin() -> Weight { + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 2_613_000 picoseconds. + Weight::from_parts(2_699_000, 0) + } + // Storage: `ParachainInfo::ParachainId` (r:1 w:0) + // Proof: `ParachainInfo::ParachainId` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`) + // Storage: `PolkadotXcm::SupportedVersion` (r:1 w:0) + // Proof: `PolkadotXcm::SupportedVersion` (`max_values`: None, `max_size`: None, mode: `Measured`) + // Storage: `PolkadotXcm::VersionDiscoveryQueue` (r:1 w:1) + // Proof: `PolkadotXcm::VersionDiscoveryQueue` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + // Storage: `PolkadotXcm::SafeXcmVersion` (r:1 w:0) + // Proof: `PolkadotXcm::SafeXcmVersion` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + // Storage: `ParachainSystem::HostConfiguration` (r:1 w:0) + // Proof: `ParachainSystem::HostConfiguration` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + // Storage: `ParachainSystem::PendingUpwardMessages` (r:1 w:1) + // Proof: `ParachainSystem::PendingUpwardMessages` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + pub fn report_error() -> Weight { + // Proof Size summary in bytes: + // Measured: `70` + // Estimated: `3535` + // Minimum execution time: 24_616_000 picoseconds. + Weight::from_parts(25_147_000, 3535) + .saturating_add(T::DbWeight::get().reads(6)) + .saturating_add(T::DbWeight::get().writes(2)) + } + // Storage: `PolkadotXcm::AssetTraps` (r:1 w:1) + // Proof: `PolkadotXcm::AssetTraps` (`max_values`: None, `max_size`: None, mode: `Measured`) + pub fn claim_asset() -> Weight { + // Proof Size summary in bytes: + // Measured: `90` + // Estimated: `3555` + // Minimum execution time: 14_511_000 picoseconds. + Weight::from_parts(14_831_000, 3555) + .saturating_add(T::DbWeight::get().reads(1)) + .saturating_add(T::DbWeight::get().writes(1)) + } + pub fn trap() -> Weight { + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 2_640_000 picoseconds. + Weight::from_parts(2_702_000, 0) + } + // Storage: `PolkadotXcm::VersionNotifyTargets` (r:1 w:1) + // Proof: `PolkadotXcm::VersionNotifyTargets` (`max_values`: None, `max_size`: None, mode: `Measured`) + // Storage: `PolkadotXcm::SupportedVersion` (r:1 w:0) + // Proof: `PolkadotXcm::SupportedVersion` (`max_values`: None, `max_size`: None, mode: `Measured`) + // Storage: `PolkadotXcm::VersionDiscoveryQueue` (r:1 w:1) + // Proof: `PolkadotXcm::VersionDiscoveryQueue` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + // Storage: `PolkadotXcm::SafeXcmVersion` (r:1 w:0) + // Proof: `PolkadotXcm::SafeXcmVersion` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + // Storage: `ParachainSystem::HostConfiguration` (r:1 w:0) + // Proof: `ParachainSystem::HostConfiguration` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + // Storage: `ParachainSystem::PendingUpwardMessages` (r:1 w:1) + // Proof: `ParachainSystem::PendingUpwardMessages` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + pub fn subscribe_version() -> Weight { + // Proof Size summary in bytes: + // Measured: `38` + // Estimated: `3503` + // Minimum execution time: 26_044_000 picoseconds. + Weight::from_parts(26_561_000, 3503) + .saturating_add(T::DbWeight::get().reads(6)) + .saturating_add(T::DbWeight::get().writes(3)) + } + // Storage: `PolkadotXcm::VersionNotifyTargets` (r:0 w:1) + // Proof: `PolkadotXcm::VersionNotifyTargets` (`max_values`: None, `max_size`: None, mode: `Measured`) + pub fn unsubscribe_version() -> Weight { + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 4_568_000 picoseconds. + Weight::from_parts(4_764_000, 0) + .saturating_add(T::DbWeight::get().writes(1)) + } + pub fn burn_asset() -> Weight { + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 3_953_000 picoseconds. + Weight::from_parts(4_079_000, 0) + } + pub fn expect_asset() -> Weight { + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 2_793_000 picoseconds. + Weight::from_parts(2_914_000, 0) + } + pub fn expect_origin() -> Weight { + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 2_719_000 picoseconds. + Weight::from_parts(2_829_000, 0) + } + pub fn expect_error() -> Weight { + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 2_710_000 picoseconds. + Weight::from_parts(2_824_000, 0) + } + pub fn expect_transact_status() -> Weight { + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 2_941_000 picoseconds. + Weight::from_parts(3_201_000, 0) + } + // Storage: `ParachainInfo::ParachainId` (r:1 w:0) + // Proof: `ParachainInfo::ParachainId` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`) + // Storage: `PolkadotXcm::SupportedVersion` (r:1 w:0) + // Proof: `PolkadotXcm::SupportedVersion` (`max_values`: None, `max_size`: None, mode: `Measured`) + // Storage: `PolkadotXcm::VersionDiscoveryQueue` (r:1 w:1) + // Proof: `PolkadotXcm::VersionDiscoveryQueue` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + // Storage: `PolkadotXcm::SafeXcmVersion` (r:1 w:0) + // Proof: `PolkadotXcm::SafeXcmVersion` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + // Storage: `ParachainSystem::HostConfiguration` (r:1 w:0) + // Proof: `ParachainSystem::HostConfiguration` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + // Storage: `ParachainSystem::PendingUpwardMessages` (r:1 w:1) + // Proof: `ParachainSystem::PendingUpwardMessages` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + pub fn query_pallet() -> Weight { + // Proof Size summary in bytes: + // Measured: `70` + // Estimated: `3535` + // Minimum execution time: 28_080_000 picoseconds. + Weight::from_parts(28_920_000, 3535) + .saturating_add(T::DbWeight::get().reads(6)) + .saturating_add(T::DbWeight::get().writes(2)) + } + pub fn expect_pallet() -> Weight { + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 4_752_000 picoseconds. + Weight::from_parts(4_982_000, 0) + } + // Storage: `ParachainInfo::ParachainId` (r:1 w:0) + // Proof: `ParachainInfo::ParachainId` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`) + // Storage: `PolkadotXcm::SupportedVersion` (r:1 w:0) + // Proof: `PolkadotXcm::SupportedVersion` (`max_values`: None, `max_size`: None, mode: `Measured`) + // Storage: `PolkadotXcm::VersionDiscoveryQueue` (r:1 w:1) + // Proof: `PolkadotXcm::VersionDiscoveryQueue` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + // Storage: `PolkadotXcm::SafeXcmVersion` (r:1 w:0) + // Proof: `PolkadotXcm::SafeXcmVersion` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + // Storage: `ParachainSystem::HostConfiguration` (r:1 w:0) + // Proof: `ParachainSystem::HostConfiguration` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + // Storage: `ParachainSystem::PendingUpwardMessages` (r:1 w:1) + // Proof: `ParachainSystem::PendingUpwardMessages` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + pub fn report_transact_status() -> Weight { + // Proof Size summary in bytes: + // Measured: `70` + // Estimated: `3535` + // Minimum execution time: 24_810_000 picoseconds. + Weight::from_parts(25_270_000, 3535) + .saturating_add(T::DbWeight::get().reads(6)) + .saturating_add(T::DbWeight::get().writes(2)) + } + pub fn clear_transact_status() -> Weight { + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 2_676_000 picoseconds. + Weight::from_parts(2_780_000, 0) + } + pub fn set_topic() -> Weight { + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 2_624_000 picoseconds. + Weight::from_parts(2_710_000, 0) + } + pub fn clear_topic() -> Weight { + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 2_611_000 picoseconds. + Weight::from_parts(2_707_000, 0) + } + pub fn set_fees_mode() -> Weight { + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 2_653_000 picoseconds. + Weight::from_parts(2_740_000, 0) + } + pub fn unpaid_execution() -> Weight { + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 2_821_000 picoseconds. + Weight::from_parts(2_874_000, 0) + } +} diff --git a/cumulus/parachains/runtimes/bridge-hubs/bridge-hub-polkadot/src/xcm_config.rs b/cumulus/parachains/runtimes/bridge-hubs/bridge-hub-polkadot/src/xcm_config.rs new file mode 100644 index 000000000000..7378961f5760 --- /dev/null +++ b/cumulus/parachains/runtimes/bridge-hubs/bridge-hub-polkadot/src/xcm_config.rs @@ -0,0 +1,291 @@ +// Copyright (C) Parity Technologies (UK) Ltd. +// This file is part of Cumulus. + +// Cumulus 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. + +// Cumulus 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 Cumulus. If not, see . + +use super::{ + AccountId, AllPalletsWithSystem, Balances, ParachainInfo, ParachainSystem, PolkadotXcm, + Runtime, RuntimeCall, RuntimeEvent, RuntimeOrigin, TransactionByteFee, WeightToFee, XcmpQueue, + CENTS, +}; +use frame_support::{ + match_types, parameter_types, + traits::{ConstU32, Contains, Everything, Nothing}, +}; +use frame_system::EnsureRoot; +use pallet_xcm::XcmPassthrough; +use parachains_common::{impls::ToStakingPot, xcm_config::ConcreteAssetFromSystem}; +use polkadot_parachain_primitives::primitives::Sibling; +use polkadot_runtime_common::xcm_sender::ExponentialPrice; +use xcm::latest::prelude::*; +use xcm_builder::{ + AccountId32Aliases, AllowExplicitUnpaidExecutionFrom, AllowKnownQueryResponses, + AllowSubscriptionsFrom, AllowTopLevelPaidExecutionFrom, CurrencyAdapter, + DenyReserveTransferToRelayChain, DenyThenTry, EnsureXcmOrigin, IsConcrete, ParentAsSuperuser, + ParentIsPreset, RelayChainAsNative, SiblingParachainAsNative, SiblingParachainConvertsVia, + SignedAccountId32AsNative, SignedToAccountId32, SovereignSignedViaLocation, TakeWeightCredit, + TrailingSetTopicAsId, UsingComponents, WeightInfoBounds, WithComputedOrigin, WithUniqueTopic, +}; +use xcm_executor::{traits::WithOriginFilter, XcmExecutor}; + +parameter_types! { + pub const DotRelayLocation: MultiLocation = MultiLocation::parent(); + pub const RelayNetwork: Option = Some(NetworkId::Polkadot); + pub RelayChainOrigin: RuntimeOrigin = cumulus_pallet_xcm::Origin::Relay.into(); + pub UniversalLocation: InteriorMultiLocation = + X2(GlobalConsensus(RelayNetwork::get().unwrap()), Parachain(ParachainInfo::parachain_id().into())); + pub const MaxInstructions: u32 = 100; + pub const MaxAssetsIntoHolding: u32 = 64; + pub FellowshipLocation: MultiLocation = MultiLocation::new(1, Parachain(1001)); + pub const GovernanceLocation: MultiLocation = MultiLocation::parent(); +} + +/// Type for specifying how a `MultiLocation` can be converted into an `AccountId`. This is used +/// when determining ownership of accounts for asset transacting and when attempting to use XCM +/// `Transact` in order to determine the dispatch Origin. +pub type LocationToAccountId = ( + // The parent (Relay-chain) origin converts to the parent `AccountId`. + ParentIsPreset, + // Sibling parachain origins convert to AccountId via the `ParaId::into`. + SiblingParachainConvertsVia, + // Straight up local `AccountId32` origins just alias directly to `AccountId`. + AccountId32Aliases, +); + +/// Means for transacting the native currency on this chain. +pub type CurrencyTransactor = CurrencyAdapter< + // Use this currency: + Balances, + // Use this currency when it is a fungible asset matching the given location or name: + IsConcrete, + // Do a simple punn to convert an AccountId32 MultiLocation into a native chain account ID: + LocationToAccountId, + // Our chain's account ID type (we can't get away without mentioning it explicitly): + AccountId, + // We don't track any teleports of `Balances`. + (), +>; + +/// This is the type we use to convert an (incoming) XCM origin into a local `Origin` instance, +/// ready for dispatching a transaction with Xcm's `Transact`. There is an `OriginKind` which can +/// biases the kind of local `Origin` it will become. +pub type XcmOriginToTransactDispatchOrigin = ( + // Sovereign account converter; this attempts to derive an `AccountId` from the origin location + // using `LocationToAccountId` and then turn that into the usual `Signed` origin. Useful for + // foreign chains who want to have a local sovereign account on this chain which they control. + SovereignSignedViaLocation, + // Native converter for Relay-chain (Parent) location; will converts to a `Relay` origin when + // recognized. + RelayChainAsNative, + // Native converter for sibling Parachains; will convert to a `SiblingPara` origin when + // recognized. + SiblingParachainAsNative, + // Superuser converter for the Relay-chain (Parent) location. This will allow it to issue a + // transaction from the Root origin. + ParentAsSuperuser, + // Native signed account converter; this just converts an `AccountId32` origin into a normal + // `RuntimeOrigin::Signed` origin of the same 32-byte value. + SignedAccountId32AsNative, + // Xcm origins can be represented natively under the Xcm pallet's Xcm origin. + XcmPassthrough, +); + +match_types! { + pub type ParentOrParentsPlurality: impl Contains = { + MultiLocation { parents: 1, interior: Here } | + MultiLocation { parents: 1, interior: X1(Plurality { .. }) } + }; + pub type ParentOrSiblings: impl Contains = { + MultiLocation { parents: 1, interior: Here } | + MultiLocation { parents: 1, interior: X1(_) } + }; + pub type FellowsPlurality: impl Contains = { + MultiLocation { parents: 1, interior: X2(Parachain(1001), Plurality { id: BodyId::Technical, ..}) } + }; +} +/// A call filter for the XCM Transact instruction. This is a temporary measure until we properly +/// account for proof size weights. +/// +/// Calls that are allowed through this filter must: +/// 1. Have a fixed weight; +/// 2. Cannot lead to another call being made; +/// 3. Have a defined proof size weight, e.g. no unbounded vecs in call parameters. +pub struct SafeCallFilter; +impl Contains for SafeCallFilter { + fn contains(call: &RuntimeCall) -> bool { + #[cfg(feature = "runtime-benchmarks")] + { + if matches!(call, RuntimeCall::System(frame_system::Call::remark_with_event { .. })) { + return true + } + } + + matches!( + call, + RuntimeCall::PolkadotXcm(pallet_xcm::Call::force_xcm_version { .. }) | + RuntimeCall::System( + frame_system::Call::set_heap_pages { .. } | + frame_system::Call::set_code { .. } | + frame_system::Call::set_code_without_checks { .. } | + frame_system::Call::kill_prefix { .. }, + ) | RuntimeCall::ParachainSystem(..) | + RuntimeCall::Timestamp(..) | + RuntimeCall::Balances(..) | + RuntimeCall::CollatorSelection( + pallet_collator_selection::Call::set_desired_candidates { .. } | + pallet_collator_selection::Call::set_candidacy_bond { .. } | + pallet_collator_selection::Call::register_as_candidate { .. } | + pallet_collator_selection::Call::leave_intent { .. } | + pallet_collator_selection::Call::set_invulnerables { .. } | + pallet_collator_selection::Call::add_invulnerable { .. } | + pallet_collator_selection::Call::remove_invulnerable { .. }, + ) | RuntimeCall::Session(pallet_session::Call::purge_keys { .. }) | + RuntimeCall::XcmpQueue(..) | + RuntimeCall::DmpQueue(..) + ) + } +} + +pub type Barrier = TrailingSetTopicAsId< + DenyThenTry< + DenyReserveTransferToRelayChain, + ( + // Allow local users to buy weight credit. + TakeWeightCredit, + // Expected responses are OK. + AllowKnownQueryResponses, + WithComputedOrigin< + ( + // If the message is one that immediately attempts to pay for execution, then + // allow it. + AllowTopLevelPaidExecutionFrom, + // Parent, its pluralities (i.e. governance bodies), and the Fellows plurality + // get free execution. + AllowExplicitUnpaidExecutionFrom<(ParentOrParentsPlurality, FellowsPlurality)>, + // Subscriptions for version tracking are OK. + AllowSubscriptionsFrom, + ), + UniversalLocation, + ConstU32<8>, + >, + ), + >, +>; + +/// Cases where a remote origin is accepted as trusted Teleporter for a given asset: +/// - DOT with the parent Relay Chain and sibling parachains. +pub type TrustedTeleporters = ConcreteAssetFromSystem; + +pub struct XcmConfig; +impl xcm_executor::Config for XcmConfig { + type RuntimeCall = RuntimeCall; + type XcmSender = XcmRouter; + type AssetTransactor = CurrencyTransactor; + type OriginConverter = XcmOriginToTransactDispatchOrigin; + // BridgeHub does not recognize a reserve location for any asset. Users must teleport DOT + // where allowed (e.g. with the Relay Chain). + type IsReserve = (); + type IsTeleporter = TrustedTeleporters; + type UniversalLocation = UniversalLocation; + type Barrier = Barrier; + type Weigher = WeightInfoBounds< + crate::weights::xcm::BridgeHubPolkadotXcmWeight, + RuntimeCall, + MaxInstructions, + >; + type Trader = + UsingComponents>; + type ResponseHandler = PolkadotXcm; + type AssetTrap = PolkadotXcm; + type AssetClaims = PolkadotXcm; + type SubscriptionService = PolkadotXcm; + type PalletInstancesInfo = AllPalletsWithSystem; + type MaxAssetsIntoHolding = MaxAssetsIntoHolding; + type AssetLocker = (); + type AssetExchanger = (); + type FeeManager = (); + type MessageExporter = (); + type UniversalAliases = Nothing; + type CallDispatcher = WithOriginFilter; + type SafeCallFilter = SafeCallFilter; + type Aliasers = Nothing; +} + +/// Converts a local signed origin into an XCM multilocation. +/// Forms the basis for local origins sending/executing XCMs. +pub type LocalOriginToLocation = SignedToAccountId32; + +parameter_types! { + /// The asset ID for the asset that we use to pay for message delivery fees. + pub FeeAssetId: AssetId = Concrete(DotRelayLocation::get()); + /// The base fee for the message delivery fees. + pub const BaseDeliveryFee: u128 = CENTS.saturating_mul(3); +} + +pub type PriceForParentDelivery = + ExponentialPrice; + +/// The means for routing XCM messages which are not for local execution into the right message +/// queues. +pub type XcmRouter = WithUniqueTopic<( + // Two routers - use UMP to communicate with the relay chain: + cumulus_primitives_utility::ParentAsUmp, + // ..and XCMP to communicate with the sibling chains. + XcmpQueue, +)>; + +#[cfg(feature = "runtime-benchmarks")] +parameter_types! { + pub ReachableDest: Option = Some(Parent.into()); +} + +impl pallet_xcm::Config for Runtime { + type RuntimeEvent = RuntimeEvent; + // We want to disallow users sending (arbitrary) XCMs from this chain. + type SendXcmOrigin = EnsureXcmOrigin; + type XcmRouter = XcmRouter; + // We support local origins dispatching XCM executions in principle... + type ExecuteXcmOrigin = EnsureXcmOrigin; + // ... but disallow generic XCM execution. As a result only teleports are allowed. + type XcmExecuteFilter = Nothing; + type XcmExecutor = XcmExecutor; + type XcmTeleportFilter = Everything; + type XcmReserveTransferFilter = Nothing; // This parachain is not meant as a reserve location. + type Weigher = WeightInfoBounds< + crate::weights::xcm::BridgeHubPolkadotXcmWeight, + RuntimeCall, + MaxInstructions, + >; + type UniversalLocation = UniversalLocation; + type RuntimeOrigin = RuntimeOrigin; + type RuntimeCall = RuntimeCall; + const VERSION_DISCOVERY_QUEUE_SIZE: u32 = 100; + type AdvertisedXcmVersion = pallet_xcm::CurrentXcmVersion; + type Currency = Balances; + type CurrencyMatcher = (); + type TrustedLockers = (); + type SovereignAccountOf = LocationToAccountId; + type MaxLockers = ConstU32<8>; + type WeightInfo = crate::weights::pallet_xcm::WeightInfo; + #[cfg(feature = "runtime-benchmarks")] + type ReachableDest = ReachableDest; + type AdminOrigin = EnsureRoot; + type MaxRemoteLockConsumers = ConstU32<0>; + type RemoteLockConsumerIdentifier = (); +} + +impl cumulus_pallet_xcm::Config for Runtime { + type RuntimeEvent = RuntimeEvent; + type XcmExecutor = XcmExecutor; +} diff --git a/cumulus/parachains/runtimes/bridge-hubs/bridge-hub-polkadot/tests/tests.rs b/cumulus/parachains/runtimes/bridge-hubs/bridge-hub-polkadot/tests/tests.rs new file mode 100644 index 000000000000..0be87bd46fac --- /dev/null +++ b/cumulus/parachains/runtimes/bridge-hubs/bridge-hub-polkadot/tests/tests.rs @@ -0,0 +1,57 @@ +// Copyright (C) Parity Technologies (UK) Ltd. +// This file is part of Cumulus. + +// Cumulus 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. + +// Cumulus 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 Cumulus. If not, see . + +pub use bridge_hub_polkadot_runtime::{ + xcm_config::XcmConfig, AllPalletsWithoutSystem, Balances, ExistentialDeposit, ParachainSystem, + PolkadotXcm, Runtime, RuntimeEvent, SessionKeys, +}; +use codec::Decode; +use frame_support::parameter_types; +use parachains_common::{polkadot::fee::WeightToFee, AccountId, AuraId}; + +const ALICE: [u8; 32] = [1u8; 32]; + +parameter_types! { + pub CheckingAccount: AccountId = PolkadotXcm::check_account(); +} + +bridge_hub_test_utils::test_cases::include_teleports_for_native_asset_works!( + Runtime, + AllPalletsWithoutSystem, + XcmConfig, + CheckingAccount, + WeightToFee, + ParachainSystem, + bridge_hub_test_utils::CollatorSessionKeys::new( + AccountId::from(ALICE), + AccountId::from(ALICE), + SessionKeys { aura: AuraId::from(sp_core::sr25519::Public::from_raw(ALICE)) } + ), + ExistentialDeposit::get(), + Box::new(|runtime_event_encoded: Vec| { + match RuntimeEvent::decode(&mut &runtime_event_encoded[..]) { + Ok(RuntimeEvent::PolkadotXcm(event)) => Some(event), + _ => None, + } + }), + Box::new(|runtime_event_encoded: Vec| { + match RuntimeEvent::decode(&mut &runtime_event_encoded[..]) { + Ok(RuntimeEvent::XcmpQueue(event)) => Some(event), + _ => None, + } + }), + 1002 +); diff --git a/cumulus/parachains/runtimes/collectives/collectives-polkadot/Cargo.toml b/cumulus/parachains/runtimes/collectives/collectives-polkadot/Cargo.toml new file mode 100644 index 000000000000..73d787caf864 --- /dev/null +++ b/cumulus/parachains/runtimes/collectives/collectives-polkadot/Cargo.toml @@ -0,0 +1,219 @@ +[package] +name = "collectives-polkadot-runtime" +version = "1.0.0" +authors.workspace = true +edition.workspace = true +description = "Polkadot Collectives Parachain Runtime" + +[dependencies] +codec = { package = "parity-scale-codec", version = "3.0.0", default-features = false, features = ["derive", "max-encoded-len"] } +hex-literal = { version = "0.4.1" } +log = { version = "0.4.20", default-features = false } +scale-info = { version = "2.10.0", default-features = false, features = ["derive"] } +smallvec = "1.11.0" + +# Substrate +frame-benchmarking = { path = "../../../../../substrate/frame/benchmarking", default-features = false, optional = true} +frame-executive = { path = "../../../../../substrate/frame/executive", default-features = false} +frame-support = { path = "../../../../../substrate/frame/support", default-features = false} +frame-system = { path = "../../../../../substrate/frame/system", default-features = false} +frame-system-benchmarking = { path = "../../../../../substrate/frame/system/benchmarking", default-features = false, optional = true} +frame-system-rpc-runtime-api = { path = "../../../../../substrate/frame/system/rpc/runtime-api", default-features = false} +frame-try-runtime = { path = "../../../../../substrate/frame/try-runtime", default-features = false, optional = true} +pallet-alliance = { path = "../../../../../substrate/frame/alliance", default-features = false} +pallet-aura = { path = "../../../../../substrate/frame/aura", default-features = false} +pallet-authorship = { path = "../../../../../substrate/frame/authorship", default-features = false} +pallet-balances = { path = "../../../../../substrate/frame/balances", default-features = false} +pallet-collective = { path = "../../../../../substrate/frame/collective", default-features = false} +pallet-multisig = { path = "../../../../../substrate/frame/multisig", default-features = false} +pallet-preimage = { path = "../../../../../substrate/frame/preimage", default-features = false } +pallet-proxy = { path = "../../../../../substrate/frame/proxy", default-features = false} +pallet-scheduler = { path = "../../../../../substrate/frame/scheduler", default-features = false } +pallet-session = { path = "../../../../../substrate/frame/session", default-features = false} +pallet-timestamp = { path = "../../../../../substrate/frame/timestamp", default-features = false} +pallet-transaction-payment = { path = "../../../../../substrate/frame/transaction-payment", default-features = false} +pallet-transaction-payment-rpc-runtime-api = { path = "../../../../../substrate/frame/transaction-payment/rpc/runtime-api", default-features = false} +pallet-utility = { path = "../../../../../substrate/frame/utility", default-features = false} +pallet-referenda = { path = "../../../../../substrate/frame/referenda", default-features = false} +pallet-ranked-collective = { path = "../../../../../substrate/frame/ranked-collective", default-features = false} +pallet-core-fellowship = { path = "../../../../../substrate/frame/core-fellowship", default-features = false} +pallet-salary = { path = "../../../../../substrate/frame/salary", default-features = false} +sp-api = { path = "../../../../../substrate/primitives/api", default-features = false} +sp-arithmetic = { path = "../../../../../substrate/primitives/arithmetic", default-features = false } +sp-block-builder = { path = "../../../../../substrate/primitives/block-builder", default-features = false} +sp-consensus-aura = { path = "../../../../../substrate/primitives/consensus/aura", default-features = false} +sp-core = { path = "../../../../../substrate/primitives/core", default-features = false} +sp-genesis-builder = { path = "../../../../../substrate/primitives/genesis-builder", default-features = false } +sp-inherents = { path = "../../../../../substrate/primitives/inherents", default-features = false} +sp-offchain = { path = "../../../../../substrate/primitives/offchain", default-features = false} +sp-runtime = { path = "../../../../../substrate/primitives/runtime", default-features = false} +sp-session = { path = "../../../../../substrate/primitives/session", default-features = false} +sp-std = { path = "../../../../../substrate/primitives/std", default-features = false} +sp-storage = { path = "../../../../../substrate/primitives/storage", default-features = false} +sp-transaction-pool = { path = "../../../../../substrate/primitives/transaction-pool", default-features = false} +sp-version = { path = "../../../../../substrate/primitives/version", default-features = false} + +# Polkadot +pallet-xcm = { path = "../../../../../polkadot/xcm/pallet-xcm", default-features = false} +polkadot-core-primitives = { path = "../../../../../polkadot/core-primitives", default-features = false} +polkadot-parachain-primitives = { path = "../../../../../polkadot/parachain", default-features = false} +polkadot-runtime-common = { path = "../../../../../polkadot/runtime/common", default-features = false} +xcm = { package = "staging-xcm", path = "../../../../../polkadot/xcm", default-features = false} +xcm-builder = { package = "staging-xcm-builder", path = "../../../../../polkadot/xcm/xcm-builder", default-features = false} +xcm-executor = { package = "staging-xcm-executor", path = "../../../../../polkadot/xcm/xcm-executor", default-features = false} + +# Cumulus +cumulus-pallet-aura-ext = { path = "../../../../pallets/aura-ext", default-features = false } +cumulus-pallet-dmp-queue = { path = "../../../../pallets/dmp-queue", default-features = false } +cumulus-pallet-parachain-system = { path = "../../../../pallets/parachain-system", default-features = false, features = ["parameterized-consensus-hook",] } +cumulus-pallet-session-benchmarking = { path = "../../../../pallets/session-benchmarking", default-features = false} +cumulus-pallet-xcm = { path = "../../../../pallets/xcm", default-features = false } +cumulus-pallet-xcmp-queue = { path = "../../../../pallets/xcmp-queue", default-features = false } +cumulus-primitives-core = { path = "../../../../primitives/core", default-features = false } +cumulus-primitives-utility = { path = "../../../../primitives/utility", default-features = false } +pallet-collator-selection = { path = "../../../../pallets/collator-selection", default-features = false } +pallet-collective-content = { path = "../../../pallets/collective-content", default-features = false } +parachain-info = { path = "../../../pallets/parachain-info", default-features = false } +parachains-common = { path = "../../../common", default-features = false } + +[build-dependencies] +substrate-wasm-builder = { path = "../../../../../substrate/utils/wasm-builder", optional = true } + +[dev-dependencies] +sp-io = { path = "../../../../../substrate/primitives/io", default-features = false} + +[features] +default = [ "std" ] +runtime-benchmarks = [ + "cumulus-pallet-parachain-system/runtime-benchmarks", + "cumulus-pallet-session-benchmarking/runtime-benchmarks", + "cumulus-pallet-xcmp-queue/runtime-benchmarks", + "cumulus-primitives-utility/runtime-benchmarks", + "frame-benchmarking/runtime-benchmarks", + "frame-support/runtime-benchmarks", + "frame-system-benchmarking/runtime-benchmarks", + "frame-system/runtime-benchmarks", + "pallet-alliance/runtime-benchmarks", + "pallet-balances/runtime-benchmarks", + "pallet-collator-selection/runtime-benchmarks", + "pallet-collective-content/runtime-benchmarks", + "pallet-collective/runtime-benchmarks", + "pallet-core-fellowship/runtime-benchmarks", + "pallet-multisig/runtime-benchmarks", + "pallet-preimage/runtime-benchmarks", + "pallet-proxy/runtime-benchmarks", + "pallet-ranked-collective/runtime-benchmarks", + "pallet-referenda/runtime-benchmarks", + "pallet-salary/runtime-benchmarks", + "pallet-scheduler/runtime-benchmarks", + "pallet-timestamp/runtime-benchmarks", + "pallet-utility/runtime-benchmarks", + "pallet-xcm/runtime-benchmarks", + "parachains-common/runtime-benchmarks", + "polkadot-parachain-primitives/runtime-benchmarks", + "polkadot-runtime-common/runtime-benchmarks", + "sp-runtime/runtime-benchmarks", + "xcm-builder/runtime-benchmarks", + "xcm-executor/runtime-benchmarks", +] +try-runtime = [ + "cumulus-pallet-aura-ext/try-runtime", + "cumulus-pallet-dmp-queue/try-runtime", + "cumulus-pallet-parachain-system/try-runtime", + "cumulus-pallet-xcm/try-runtime", + "cumulus-pallet-xcmp-queue/try-runtime", + "frame-executive/try-runtime", + "frame-support/try-runtime", + "frame-system/try-runtime", + "frame-try-runtime/try-runtime", + "pallet-alliance/try-runtime", + "pallet-aura/try-runtime", + "pallet-authorship/try-runtime", + "pallet-balances/try-runtime", + "pallet-collator-selection/try-runtime", + "pallet-collective-content/try-runtime", + "pallet-collective/try-runtime", + "pallet-core-fellowship/try-runtime", + "pallet-multisig/try-runtime", + "pallet-preimage/try-runtime", + "pallet-proxy/try-runtime", + "pallet-ranked-collective/try-runtime", + "pallet-referenda/try-runtime", + "pallet-salary/try-runtime", + "pallet-scheduler/try-runtime", + "pallet-session/try-runtime", + "pallet-timestamp/try-runtime", + "pallet-transaction-payment/try-runtime", + "pallet-utility/try-runtime", + "pallet-xcm/try-runtime", + "parachain-info/try-runtime", + "polkadot-runtime-common/try-runtime", + "sp-runtime/try-runtime", +] +std = [ + "codec/std", + "cumulus-pallet-aura-ext/std", + "cumulus-pallet-dmp-queue/std", + "cumulus-pallet-parachain-system/std", + "cumulus-pallet-session-benchmarking/std", + "cumulus-pallet-xcm/std", + "cumulus-pallet-xcmp-queue/std", + "cumulus-primitives-core/std", + "cumulus-primitives-utility/std", + "frame-benchmarking?/std", + "frame-executive/std", + "frame-support/std", + "frame-system-benchmarking?/std", + "frame-system-rpc-runtime-api/std", + "frame-system/std", + "frame-try-runtime?/std", + "log/std", + "pallet-alliance/std", + "pallet-aura/std", + "pallet-authorship/std", + "pallet-balances/std", + "pallet-collator-selection/std", + "pallet-collective-content/std", + "pallet-collective/std", + "pallet-core-fellowship/std", + "pallet-multisig/std", + "pallet-preimage/std", + "pallet-proxy/std", + "pallet-ranked-collective/std", + "pallet-referenda/std", + "pallet-salary/std", + "pallet-scheduler/std", + "pallet-session/std", + "pallet-timestamp/std", + "pallet-transaction-payment-rpc-runtime-api/std", + "pallet-transaction-payment/std", + "pallet-utility/std", + "pallet-xcm/std", + "parachain-info/std", + "parachains-common/std", + "polkadot-core-primitives/std", + "polkadot-parachain-primitives/std", + "polkadot-runtime-common/std", + "scale-info/std", + "sp-api/std", + "sp-arithmetic/std", + "sp-block-builder/std", + "sp-consensus-aura/std", + "sp-core/std", + "sp-genesis-builder/std", + "sp-inherents/std", + "sp-io/std", + "sp-offchain/std", + "sp-runtime/std", + "sp-session/std", + "sp-std/std", + "sp-storage/std", + "sp-transaction-pool/std", + "sp-version/std", + "substrate-wasm-builder", + "xcm-builder/std", + "xcm-executor/std", + "xcm/std", +] + +experimental = [ "pallet-aura/experimental" ] diff --git a/cumulus/parachains/runtimes/collectives/collectives-polkadot/build.rs b/cumulus/parachains/runtimes/collectives/collectives-polkadot/build.rs new file mode 100644 index 000000000000..60f8a125129f --- /dev/null +++ b/cumulus/parachains/runtimes/collectives/collectives-polkadot/build.rs @@ -0,0 +1,26 @@ +// 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. + +#[cfg(feature = "std")] +fn main() { + substrate_wasm_builder::WasmBuilder::new() + .with_current_project() + .export_heap_base() + .import_memory() + .build() +} + +#[cfg(not(feature = "std"))] +fn main() {} diff --git a/cumulus/parachains/runtimes/collectives/collectives-polkadot/src/ambassador/mod.rs b/cumulus/parachains/runtimes/collectives/collectives-polkadot/src/ambassador/mod.rs new file mode 100644 index 000000000000..b055ffc8abf1 --- /dev/null +++ b/cumulus/parachains/runtimes/collectives/collectives-polkadot/src/ambassador/mod.rs @@ -0,0 +1,255 @@ +// Copyright (C) 2022 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. + +//! The Ambassador Program. +//! +//! The module defines the following on-chain functionality of the Ambassador Program: +//! +//! - Managed set of program members, where every member has a [rank](ranks) +//! (via [AmbassadorCollective](pallet_ranked_collective)). +//! - Referendum functionality for the program members to propose, vote on, and execute +//! proposals on behalf of the members of a certain [rank](Origin) +//! (via [AmbassadorReferenda](pallet_referenda)). +//! - Managed content (charter, announcements) (via [pallet_collective_content]). +//! - Promotion and demotion periods, register of members' activity, and rank based salaries +//! (via [AmbassadorCore](pallet_core_fellowship)). +//! - Members' salaries (via [AmbassadorSalary](pallet_salary), requiring a member to be +//! imported or inducted into [AmbassadorCore](pallet_core_fellowship)). + +pub mod origins; +mod tracks; + +use super::*; +use crate::xcm_config::{DotAssetHub, FellowshipAdminBodyId}; +use frame_support::traits::{EitherOf, MapSuccess, TryMapSuccess}; +pub use origins::pallet_origins as pallet_ambassador_origins; +use origins::pallet_origins::{ + EnsureAmbassadorsVoice, EnsureAmbassadorsVoiceFrom, EnsureHeadAmbassadorsVoice, Origin, +}; +use parachains_common::polkadot::account; +use sp_core::ConstU128; +use sp_runtime::traits::{CheckedReduceBy, ConstU16, ConvertToValue, Replace}; +use xcm::prelude::*; +use xcm_builder::{AliasesIntoAccountId32, PayOverXcm}; + +/// The Ambassador Program's member ranks. +pub mod ranks { + use pallet_ranked_collective::Rank; + + #[allow(dead_code)] + pub const CANDIDATE: Rank = 0; + pub const AMBASSADOR_TIER_1: Rank = 1; + pub const AMBASSADOR_TIER_2: Rank = 2; + pub const SENIOR_AMBASSADOR_TIER_3: Rank = 3; + pub const SENIOR_AMBASSADOR_TIER_4: Rank = 4; + pub const HEAD_AMBASSADOR_TIER_5: Rank = 5; + pub const HEAD_AMBASSADOR_TIER_6: Rank = 6; + pub const HEAD_AMBASSADOR_TIER_7: Rank = 7; + pub const MASTER_AMBASSADOR_TIER_8: Rank = 8; + pub const MASTER_AMBASSADOR_TIER_9: Rank = 9; +} + +impl pallet_ambassador_origins::Config for Runtime {} + +pub type AmbassadorCollectiveInstance = pallet_ranked_collective::Instance2; + +/// Demotion is by any of: +/// - Root can promote arbitrarily. +/// - the FellowshipAdmin origin (i.e. token holder referendum); +/// - a senior members vote by the rank two above the current rank. +pub type DemoteOrigin = EitherOf< + frame_system::EnsureRootWithSuccess>, + EitherOf< + MapSuccess< + EnsureXcm>, + Replace>, + >, + TryMapSuccess< + EnsureAmbassadorsVoiceFrom>, + CheckedReduceBy>, + >, + >, +>; + +/// Promotion and approval (rank-retention) is by any of: +/// - Root can promote arbitrarily. +/// - the FellowshipAdmin origin (i.e. token holder referendum); +/// - a senior members vote by the rank two above the new/current rank. +/// - a member of rank `5` or above can add a candidate (rank `0`). +pub type PromoteOrigin = EitherOf< + DemoteOrigin, + TryMapSuccess< + pallet_ranked_collective::EnsureMember< + Runtime, + AmbassadorCollectiveInstance, + { ranks::HEAD_AMBASSADOR_TIER_5 }, + >, + Replace>, + >, +>; + +impl pallet_ranked_collective::Config for Runtime { + type WeightInfo = weights::pallet_ranked_collective_ambassador_collective::WeightInfo; + type RuntimeEvent = RuntimeEvent; + type PromoteOrigin = PromoteOrigin; + type DemoteOrigin = DemoteOrigin; + type Polls = AmbassadorReferenda; + type MinRankOfClass = sp_runtime::traits::Identity; + type VoteWeight = pallet_ranked_collective::Linear; +} + +parameter_types! { + pub const AlarmInterval: BlockNumber = 1; + pub const SubmissionDeposit: Balance = 0; + pub const UndecidingTimeout: BlockNumber = 7 * DAYS; + // The Ambassador Referenda pallet account, used as a temporarily place to deposit a slashed imbalance before teleport to the treasury. + pub AmbassadorPalletAccount: AccountId = account::AMBASSADOR_REFERENDA_PALLET_ID.into_account_truncating(); +} + +pub type AmbassadorReferendaInstance = pallet_referenda::Instance2; + +impl pallet_referenda::Config for Runtime { + type WeightInfo = weights::pallet_referenda_ambassador_referenda::WeightInfo; + type RuntimeCall = RuntimeCall; + type RuntimeEvent = RuntimeEvent; + type Scheduler = Scheduler; + type Currency = Balances; + // A proposal can be submitted by a member of the Ambassador Program of + // [ranks::SENIOR_AMBASSADOR_TIER_3] rank or higher. + type SubmitOrigin = pallet_ranked_collective::EnsureMember< + Runtime, + AmbassadorCollectiveInstance, + { ranks::SENIOR_AMBASSADOR_TIER_3 }, + >; + type CancelOrigin = EitherOf, EnsureHeadAmbassadorsVoice>; + type KillOrigin = EitherOf, EnsureHeadAmbassadorsVoice>; + type Slash = ToParentTreasury; + type Votes = pallet_ranked_collective::Votes; + type Tally = pallet_ranked_collective::TallyOf; + type SubmissionDeposit = SubmissionDeposit; + type MaxQueued = ConstU32<20>; + type UndecidingTimeout = UndecidingTimeout; + type AlarmInterval = AlarmInterval; + type Tracks = tracks::TracksInfo; + type Preimages = Preimage; +} + +parameter_types! { + pub const AnnouncementLifetime: BlockNumber = 180 * DAYS; + pub const MaxAnnouncements: u32 = 50; +} + +pub type AmbassadorContentInstance = pallet_collective_content::Instance1; + +impl pallet_collective_content::Config for Runtime { + type RuntimeEvent = RuntimeEvent; + type CharterOrigin = EitherOf, EnsureHeadAmbassadorsVoice>; + type AnnouncementLifetime = AnnouncementLifetime; + // An announcement can be submitted by a Senior Ambassador member or an ambassador plurality + // voice taken via referendum. + type AnnouncementOrigin = EitherOfDiverse< + pallet_ranked_collective::EnsureMember< + Runtime, + AmbassadorCollectiveInstance, + { ranks::SENIOR_AMBASSADOR_TIER_3 }, + >, + EnsureAmbassadorsVoice, + >; + type MaxAnnouncements = MaxAnnouncements; + type WeightInfo = weights::pallet_collective_content::WeightInfo; +} + +pub type AmbassadorCoreInstance = pallet_core_fellowship::Instance2; + +impl pallet_core_fellowship::Config for Runtime { + type WeightInfo = weights::pallet_core_fellowship_ambassador_core::WeightInfo; + type RuntimeEvent = RuntimeEvent; + type Members = pallet_ranked_collective::Pallet; + type Balance = Balance; + // Parameters are set by any of: + // - Root; + // - the FellowshipAdmin origin (i.e. token holder referendum); + // - a vote among all Head Ambassadors. + type ParamsOrigin = EitherOfDiverse< + EnsureXcm>, + EnsureHeadAmbassadorsVoice, + >; + // Induction (creating a candidate) is by any of: + // - Root; + // - the FellowshipAdmin origin (i.e. token holder referendum); + // - a single Head Ambassador; + // - a vote among all senior members. + type InductOrigin = EitherOfDiverse< + EnsureXcm>, + EitherOfDiverse< + pallet_ranked_collective::EnsureMember< + Runtime, + AmbassadorCollectiveInstance, + { ranks::HEAD_AMBASSADOR_TIER_5 }, + >, + EnsureAmbassadorsVoiceFrom>, + >, + >; + type ApproveOrigin = PromoteOrigin; + type PromoteOrigin = PromoteOrigin; + type EvidenceSize = ConstU32<65536>; +} + +pub type AmbassadorSalaryInstance = pallet_salary::Instance2; + +parameter_types! { + // The interior location on AssetHub for the paying account. This is the Ambassador Salary + // pallet instance (which sits at index 74). This sovereign account will need funding. + pub AmbassadorSalaryLocation: InteriorMultiLocation = PalletInstance(74).into(); +} + +/// [`PayOverXcm`] setup to pay the Ambassador salary on the AssetHub in DOT. +pub type AmbassadorSalaryPaymaster = PayOverXcm< + AmbassadorSalaryLocation, + crate::xcm_config::XcmRouter, + crate::PolkadotXcm, + ConstU32<{ 6 * HOURS }>, + AccountId, + (), + ConvertToValue, + AliasesIntoAccountId32<(), AccountId>, +>; + +impl pallet_salary::Config for Runtime { + type WeightInfo = weights::pallet_salary_ambassador_salary::WeightInfo; + type RuntimeEvent = RuntimeEvent; + + #[cfg(not(feature = "runtime-benchmarks"))] + type Paymaster = AmbassadorSalaryPaymaster; + #[cfg(feature = "runtime-benchmarks")] + type Paymaster = crate::impls::benchmarks::PayWithEnsure< + AmbassadorSalaryPaymaster, + crate::impls::benchmarks::OpenHrmpChannel>, + >; + type Members = pallet_ranked_collective::Pallet; + + #[cfg(not(feature = "runtime-benchmarks"))] + type Salary = pallet_core_fellowship::Pallet; + #[cfg(feature = "runtime-benchmarks")] + type Salary = frame_support::traits::tokens::ConvertRank< + crate::impls::benchmarks::RankToSalary, + >; + // 15 days to register for a salary payment. + type RegistrationPeriod = ConstU32<{ 15 * DAYS }>; + // 15 days to claim the salary payment. + type PayoutPeriod = ConstU32<{ 15 * DAYS }>; + // Total monthly salary budget. + type Budget = ConstU128<{ 10_000 * DOLLARS }>; +} diff --git a/cumulus/parachains/runtimes/collectives/collectives-polkadot/src/ambassador/origins.rs b/cumulus/parachains/runtimes/collectives/collectives-polkadot/src/ambassador/origins.rs new file mode 100644 index 000000000000..3ce8a6b9e5d1 --- /dev/null +++ b/cumulus/parachains/runtimes/collectives/collectives-polkadot/src/ambassador/origins.rs @@ -0,0 +1,135 @@ +// Copyright (C) 2022 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. + +//! The Ambassador Program's origins. + +#[frame_support::pallet] +pub mod pallet_origins { + use crate::ambassador::ranks; + use frame_support::pallet_prelude::*; + use pallet_ranked_collective::Rank; + + #[pallet::pallet] + pub struct Pallet(PhantomData); + + /// The pallet configuration trait. + #[pallet::config] + pub trait Config: frame_system::Config {} + + #[derive(PartialEq, Eq, Clone, MaxEncodedLen, Encode, Decode, TypeInfo, RuntimeDebug)] + #[pallet::origin] + pub enum Origin { + /// Plurality voice of the [ranks::AMBASSADOR_TIER_1] members or above given via + /// referendum. + Ambassadors, + /// Plurality voice of the [ranks::AMBASSADOR_TIER_2] members or above given via + /// referendum. + AmbassadorsTier2, + /// Plurality voice of the [ranks::SENIOR_AMBASSADOR_TIER_3] members or above given via + /// referendum. + SeniorAmbassadors, + /// Plurality voice of the [ranks::SENIOR_AMBASSADOR_TIER_4] members or above given via + /// referendum. + SeniorAmbassadorsTier4, + /// Plurality voice of the [ranks::HEAD_AMBASSADOR_TIER_5] members or above given via + /// referendum. + HeadAmbassadors, + /// Plurality voice of the [ranks::HEAD_AMBASSADOR_TIER_6] members or above given via + /// referendum. + HeadAmbassadorsTier6, + /// Plurality voice of the [ranks::HEAD_AMBASSADOR_TIER_7] members or above given via + /// referendum. + HeadAmbassadorsTier7, + /// Plurality voice of the [ranks::MASTER_AMBASSADOR_TIER_8] members or above given via + /// referendum. + MasterAmbassadors, + /// Plurality voice of the [ranks::MASTER_AMBASSADOR_TIER_9] members or above given via + /// referendum. + MasterAmbassadorsTier9, + } + + impl Origin { + /// Returns the rank that the origin `self` speaks for, or `None` if it doesn't speak for + /// any. + pub fn as_voice(&self) -> Option { + Some(match &self { + Origin::Ambassadors => ranks::AMBASSADOR_TIER_1, + Origin::AmbassadorsTier2 => ranks::AMBASSADOR_TIER_2, + Origin::SeniorAmbassadors => ranks::SENIOR_AMBASSADOR_TIER_3, + Origin::SeniorAmbassadorsTier4 => ranks::SENIOR_AMBASSADOR_TIER_4, + Origin::HeadAmbassadors => ranks::HEAD_AMBASSADOR_TIER_5, + Origin::HeadAmbassadorsTier6 => ranks::HEAD_AMBASSADOR_TIER_6, + Origin::HeadAmbassadorsTier7 => ranks::HEAD_AMBASSADOR_TIER_7, + Origin::MasterAmbassadors => ranks::MASTER_AMBASSADOR_TIER_8, + Origin::MasterAmbassadorsTier9 => ranks::MASTER_AMBASSADOR_TIER_9, + }) + } + } + + /// Implementation of the [EnsureOrigin] trait for the [Origin::HeadAmbassadors] origin. + pub struct EnsureHeadAmbassadorsVoice; + impl> + From> EnsureOrigin for EnsureHeadAmbassadorsVoice { + type Success = (); + fn try_origin(o: O) -> Result { + o.into().and_then(|o| match o { + Origin::HeadAmbassadors => Ok(()), + r => Err(O::from(r)), + }) + } + + #[cfg(feature = "runtime-benchmarks")] + fn try_successful_origin() -> Result { + Ok(O::from(Origin::HeadAmbassadors)) + } + } + + /// Implementation of the [EnsureOrigin] trait for the plurality voice [Origin]s + /// from a given rank `R` with the success result of the corresponding [Rank]. + pub struct EnsureAmbassadorsVoiceFrom(PhantomData); + impl, O: Into> + From> EnsureOrigin + for EnsureAmbassadorsVoiceFrom + { + type Success = Rank; + fn try_origin(o: O) -> Result { + o.into().and_then(|o| match Origin::as_voice(&o) { + Some(r) if r >= R::get() => Ok(r), + _ => Err(O::from(o)), + }) + } + + #[cfg(feature = "runtime-benchmarks")] + fn try_successful_origin() -> Result { + ranks::MASTER_AMBASSADOR_TIER_9 + .ge(&R::get()) + .then(|| O::from(Origin::MasterAmbassadorsTier9)) + .ok_or(()) + } + } + + /// Implementation of the [EnsureOrigin] trait for the plurality voice [Origin]s with the + /// success result of the corresponding [Rank]. + pub struct EnsureAmbassadorsVoice; + impl> + From> EnsureOrigin for EnsureAmbassadorsVoice { + type Success = Rank; + fn try_origin(o: O) -> Result { + o.into().and_then(|o| Origin::as_voice(&o).ok_or(O::from(o))) + } + + #[cfg(feature = "runtime-benchmarks")] + fn try_successful_origin() -> Result { + Ok(O::from(Origin::MasterAmbassadorsTier9)) + } + } +} diff --git a/cumulus/parachains/runtimes/collectives/collectives-polkadot/src/ambassador/tracks.rs b/cumulus/parachains/runtimes/collectives/collectives-polkadot/src/ambassador/tracks.rs new file mode 100644 index 000000000000..073d8e6ee362 --- /dev/null +++ b/cumulus/parachains/runtimes/collectives/collectives-polkadot/src/ambassador/tracks.rs @@ -0,0 +1,282 @@ +// Copyright (C) 2022 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. + +//! The Ambassador Program's referenda voting tracks. + +use super::Origin; +use crate::{Balance, BlockNumber, RuntimeOrigin, DAYS, DOLLARS, HOURS}; +use sp_runtime::Perbill; + +/// Referendum `TrackId` type. +pub type TrackId = u16; + +/// Referendum track IDs. +pub mod constants { + use super::TrackId; + + pub const AMBASSADOR_TIER_1: TrackId = 1; + pub const AMBASSADOR_TIER_2: TrackId = 2; + pub const SENIOR_AMBASSADOR_TIER_3: TrackId = 3; + pub const SENIOR_AMBASSADOR_TIER_4: TrackId = 4; + pub const HEAD_AMBASSADOR_TIER_5: TrackId = 5; + pub const HEAD_AMBASSADOR_TIER_6: TrackId = 6; + pub const HEAD_AMBASSADOR_TIER_7: TrackId = 7; + pub const MASTER_AMBASSADOR_TIER_8: TrackId = 8; + pub const MASTER_AMBASSADOR_TIER_9: TrackId = 9; +} + +/// The type implementing the [`pallet_referenda::TracksInfo`] trait for referenda pallet. +pub struct TracksInfo; + +/// Information on the voting tracks. +impl pallet_referenda::TracksInfo for TracksInfo { + type Id = TrackId; + + type RuntimeOrigin = ::PalletsOrigin; + + /// Return the array of available tracks and their information. + fn tracks() -> &'static [(Self::Id, pallet_referenda::TrackInfo)] { + static DATA: [(TrackId, pallet_referenda::TrackInfo); 9] = [ + ( + constants::AMBASSADOR_TIER_1, + pallet_referenda::TrackInfo { + name: "ambassador tier 1", + max_deciding: 10, + decision_deposit: 5 * DOLLARS, + prepare_period: 24 * HOURS, + decision_period: 7 * DAYS, + confirm_period: 24 * HOURS, + min_enactment_period: 1 * HOURS, + min_approval: pallet_referenda::Curve::LinearDecreasing { + length: Perbill::from_percent(100), + floor: Perbill::from_percent(50), + ceil: Perbill::from_percent(100), + }, + min_support: pallet_referenda::Curve::LinearDecreasing { + length: Perbill::from_percent(100), + floor: Perbill::from_percent(10), + ceil: Perbill::from_percent(50), + }, + }, + ), + ( + constants::AMBASSADOR_TIER_2, + pallet_referenda::TrackInfo { + name: "ambassador tier 2", + max_deciding: 10, + decision_deposit: 5 * DOLLARS, + prepare_period: 24 * HOURS, + decision_period: 7 * DAYS, + confirm_period: 24 * HOURS, + min_enactment_period: 1 * HOURS, + min_approval: pallet_referenda::Curve::LinearDecreasing { + length: Perbill::from_percent(100), + floor: Perbill::from_percent(50), + ceil: Perbill::from_percent(100), + }, + min_support: pallet_referenda::Curve::LinearDecreasing { + length: Perbill::from_percent(100), + floor: Perbill::from_percent(10), + ceil: Perbill::from_percent(50), + }, + }, + ), + ( + constants::SENIOR_AMBASSADOR_TIER_3, + pallet_referenda::TrackInfo { + name: "senior ambassador tier 3", + max_deciding: 10, + decision_deposit: 5 * DOLLARS, + prepare_period: 24 * HOURS, + decision_period: 7 * DAYS, + confirm_period: 24 * HOURS, + min_enactment_period: 1 * HOURS, + min_approval: pallet_referenda::Curve::LinearDecreasing { + length: Perbill::from_percent(100), + floor: Perbill::from_percent(50), + ceil: Perbill::from_percent(100), + }, + min_support: pallet_referenda::Curve::LinearDecreasing { + length: Perbill::from_percent(100), + floor: Perbill::from_percent(10), + ceil: Perbill::from_percent(50), + }, + }, + ), + ( + constants::SENIOR_AMBASSADOR_TIER_4, + pallet_referenda::TrackInfo { + name: "senior ambassador tier 4", + max_deciding: 10, + decision_deposit: 5 * DOLLARS, + prepare_period: 24 * HOURS, + decision_period: 7 * DAYS, + confirm_period: 24 * HOURS, + min_enactment_period: 1 * HOURS, + min_approval: pallet_referenda::Curve::LinearDecreasing { + length: Perbill::from_percent(100), + floor: Perbill::from_percent(50), + ceil: Perbill::from_percent(100), + }, + min_support: pallet_referenda::Curve::LinearDecreasing { + length: Perbill::from_percent(100), + floor: Perbill::from_percent(10), + ceil: Perbill::from_percent(50), + }, + }, + ), + ( + constants::HEAD_AMBASSADOR_TIER_5, + pallet_referenda::TrackInfo { + name: "head ambassador tier 5", + max_deciding: 10, + decision_deposit: 5 * DOLLARS, + prepare_period: 24 * HOURS, + decision_period: 7 * DAYS, + confirm_period: 24 * HOURS, + min_enactment_period: 1 * HOURS, + min_approval: pallet_referenda::Curve::LinearDecreasing { + length: Perbill::from_percent(100), + floor: Perbill::from_percent(50), + ceil: Perbill::from_percent(100), + }, + min_support: pallet_referenda::Curve::LinearDecreasing { + length: Perbill::from_percent(100), + floor: Perbill::from_percent(10), + ceil: Perbill::from_percent(50), + }, + }, + ), + ( + constants::HEAD_AMBASSADOR_TIER_6, + pallet_referenda::TrackInfo { + name: "head ambassador tier 6", + max_deciding: 10, + decision_deposit: 5 * DOLLARS, + prepare_period: 24 * HOURS, + decision_period: 7 * DAYS, + confirm_period: 24 * HOURS, + min_enactment_period: 1 * HOURS, + min_approval: pallet_referenda::Curve::LinearDecreasing { + length: Perbill::from_percent(100), + floor: Perbill::from_percent(50), + ceil: Perbill::from_percent(100), + }, + min_support: pallet_referenda::Curve::LinearDecreasing { + length: Perbill::from_percent(100), + floor: Perbill::from_percent(10), + ceil: Perbill::from_percent(50), + }, + }, + ), + ( + constants::HEAD_AMBASSADOR_TIER_7, + pallet_referenda::TrackInfo { + name: "head ambassador tier 7", + max_deciding: 10, + decision_deposit: 5 * DOLLARS, + prepare_period: 24 * HOURS, + decision_period: 7 * DAYS, + confirm_period: 24 * HOURS, + min_enactment_period: 1 * HOURS, + min_approval: pallet_referenda::Curve::LinearDecreasing { + length: Perbill::from_percent(100), + floor: Perbill::from_percent(50), + ceil: Perbill::from_percent(100), + }, + min_support: pallet_referenda::Curve::LinearDecreasing { + length: Perbill::from_percent(100), + floor: Perbill::from_percent(10), + ceil: Perbill::from_percent(50), + }, + }, + ), + ( + constants::MASTER_AMBASSADOR_TIER_8, + pallet_referenda::TrackInfo { + name: "master ambassador tier 8", + max_deciding: 10, + decision_deposit: 5 * DOLLARS, + prepare_period: 24 * HOURS, + decision_period: 7 * DAYS, + confirm_period: 24 * HOURS, + min_enactment_period: 1 * HOURS, + min_approval: pallet_referenda::Curve::LinearDecreasing { + length: Perbill::from_percent(100), + floor: Perbill::from_percent(50), + ceil: Perbill::from_percent(100), + }, + min_support: pallet_referenda::Curve::LinearDecreasing { + length: Perbill::from_percent(100), + floor: Perbill::from_percent(10), + ceil: Perbill::from_percent(50), + }, + }, + ), + ( + constants::MASTER_AMBASSADOR_TIER_9, + pallet_referenda::TrackInfo { + name: "master ambassador tier 9", + max_deciding: 10, + decision_deposit: 5 * DOLLARS, + prepare_period: 24 * HOURS, + decision_period: 7 * DAYS, + confirm_period: 24 * HOURS, + min_enactment_period: 1 * HOURS, + min_approval: pallet_referenda::Curve::LinearDecreasing { + length: Perbill::from_percent(100), + floor: Perbill::from_percent(50), + ceil: Perbill::from_percent(100), + }, + min_support: pallet_referenda::Curve::LinearDecreasing { + length: Perbill::from_percent(100), + floor: Perbill::from_percent(10), + ceil: Perbill::from_percent(50), + }, + }, + ), + ]; + &DATA[..] + } + + /// Determine the voting track for the given `origin`. + fn track_for(id: &Self::RuntimeOrigin) -> Result { + #[cfg(feature = "runtime-benchmarks")] + { + // For benchmarks, we enable a root origin. + // It is important that this is not available in production! + let root: Self::RuntimeOrigin = frame_system::RawOrigin::Root.into(); + if &root == id { + return Ok(constants::MASTER_AMBASSADOR_TIER_9) + } + } + + match Origin::try_from(id.clone()) { + Ok(Origin::Ambassadors) => Ok(constants::AMBASSADOR_TIER_1), + Ok(Origin::AmbassadorsTier2) => Ok(constants::AMBASSADOR_TIER_2), + Ok(Origin::SeniorAmbassadors) => Ok(constants::SENIOR_AMBASSADOR_TIER_3), + Ok(Origin::SeniorAmbassadorsTier4) => Ok(constants::SENIOR_AMBASSADOR_TIER_4), + Ok(Origin::HeadAmbassadors) => Ok(constants::HEAD_AMBASSADOR_TIER_5), + Ok(Origin::HeadAmbassadorsTier6) => Ok(constants::HEAD_AMBASSADOR_TIER_6), + Ok(Origin::HeadAmbassadorsTier7) => Ok(constants::HEAD_AMBASSADOR_TIER_7), + Ok(Origin::MasterAmbassadors) => Ok(constants::MASTER_AMBASSADOR_TIER_8), + Ok(Origin::MasterAmbassadorsTier9) => Ok(constants::MASTER_AMBASSADOR_TIER_9), + _ => Err(()), + } + } +} + +// implements [`frame_support::traits::Get`] for [`TracksInfo`] +pallet_referenda::impl_tracksinfo_get!(TracksInfo, Balance, BlockNumber); diff --git a/cumulus/parachains/runtimes/collectives/collectives-polkadot/src/fellowship/migration.rs b/cumulus/parachains/runtimes/collectives/collectives-polkadot/src/fellowship/migration.rs new file mode 100644 index 000000000000..9350d03a2c9f --- /dev/null +++ b/cumulus/parachains/runtimes/collectives/collectives-polkadot/src/fellowship/migration.rs @@ -0,0 +1,261 @@ +// Copyright (C) Parity Technologies (UK) Ltd. +// This file is part of Cumulus. + +// Cumulus 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. + +// Cumulus 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 Cumulus. If not, see . + +//! Migrations. + +use frame_support::{pallet_prelude::*, traits::OnRuntimeUpgrade, weights::Weight}; +use log; + +/// Initial import of the Kusama Technical Fellowship. +pub(crate) mod import_kusama_fellowship { + use super::*; + use frame_support::{parameter_types, traits::RankedMembers}; + use pallet_ranked_collective::{Config, MemberCount, Pallet as RankedCollective, Rank}; + #[cfg(feature = "try-runtime")] + use sp_std::vec::Vec; + + const TARGET: &str = "runtime::migration::import_fellowship"; + + parameter_types! { + // The Fellowship addresses from Kusama state. + pub const FellowshipAddresses: [(Rank, [u8; 32]); 47] = [ + (6, hex_literal::hex!("f0673d30606ee26672707e4fd2bc8b58d3becb7aba2d5f60add64abb5fea4710"),), + (6, hex_literal::hex!("3c235e80e35082b668682531b9b062fda39a46edb94f884d9122d86885fd5f1b"),), + (6, hex_literal::hex!("7628a5be63c4d3c8dbb96c2904b1a9682e02831a1af836c7efc808020b92fa63"),), + (5, hex_literal::hex!("9c84f75e0b1b92f6b003bde6212a8b2c9b776f3720f942b33fed8709f103a268"),), + (5, hex_literal::hex!("bc64065524532ed9e805fb0d39a5c0199216b52871168e5e4d0ab612f8797d61"),), + (5, hex_literal::hex!("2e1884c53071526483b14004e894415f02b55fc2e2aef8e1df8ccf7ce5bd5570"),), + (5, hex_literal::hex!("5c5062779d44ea2ab0469e155b8cf3e004fce71b3b3d38263cd9fa9478f12f28"),), + (4, hex_literal::hex!("4adf51a47b72795366d52285e329229c836ea7bbfe139dbe8fa0700c4f86fc56"),), + (4, hex_literal::hex!("1c90e3dabd3fd0f6bc648045018f78fcee8fe24122c22d8d2a14e9905073d10f"),), + (4, hex_literal::hex!("8e851ed992228f2268ee8c614fe6075d3800060ae14098e0309413a0a81c4470"),), + (3, hex_literal::hex!("720d807d46b941703ffe0278e8b173dc6738c5af8af812ceffc90c69390bbf1f"),), + (3, hex_literal::hex!("c4965f7fe7be8174717a24ffddf684986d122c7e293ddf875cdf9700a07b6812"),), + (3, hex_literal::hex!("beae5bcad1a8c156291b7ddf46b38b0c61a6aaacebd57b21c75627bfe7f9ab71"),), + (3, hex_literal::hex!("ccd87fa65729f7bdaa8305581a7a499aa24c118e83f5714152c0e22617c6fc63"),), + (3, hex_literal::hex!("e0f0f94962fc0a8c1a0f0527dc8e592c67939c46c903b6016cc0a8515da0044d"),), + (3, hex_literal::hex!("984e16482c99cfad1436111e321a86d87d0fac203bf64538f888e45d793b5413"),), + (3, hex_literal::hex!("44a3efb5bfa9023d4ef27b7d31d76f531b4d7772b1679b7fb32b6263ac39100e"),), + (2, hex_literal::hex!("2eba9a39dbfdd5f3cba964355d45e27319f0271023c0353d97dc6df2401b0e3d"),), + (2, hex_literal::hex!("ba3e9b87792bcfcc237fa8181185b8883c77f3e24f45e4a92ab31d07a4703520"),), + (2, hex_literal::hex!("9e6eb74b0a6b39de36fb58d1fab20bc2b3fea96023ce5a47941c20480d99f92e"),), + (2, hex_literal::hex!("ee3d9d8c48ee88dce78fd7bafe3ce2052900eb465085b9324d4f5da26b145f2b"),), + (2, hex_literal::hex!("d8290537d6e31fe1ff165eaa62b63f6f3556dcc720b0d3a6d7eab96275617304"),), + (2, hex_literal::hex!("5a090c88f0438b46b451026597cee760a7bac9d396c9c7b529b68fb78aec5f43"),), + (2, hex_literal::hex!("18d30040a8245c5ff17afc9a8169d7d0771fe7ab4135a64a022c254117340720"),), + (1, hex_literal::hex!("b4f7f03bebc56ebe96bc52ea5ed3159d45a0ce3a8d7f082983c33ef133274747"),), + (1, hex_literal::hex!("caafae0aaa6333fcf4dc193146945fe8e4da74aa6c16d481eef0ca35b8279d73"),), + (1, hex_literal::hex!("a66e0f4e1a121cc83fddf3096e8ec8c9e9c85989f276e39e951fb0e4a5398763"),), + (1, hex_literal::hex!("f65f3cade8f68e8f34c6266b0d37e58a754059ca96816e964f98e17c79505073"),), + (1, hex_literal::hex!("8c232c91ef2a9983ba65c4b75bb86fcbae4d909900ea8aa06c3644ca1161db48"),), + (1, hex_literal::hex!("78e4813814891bd48bc745b79254a978833d41fbe0f387df93cd87eae2468926"),), + (1, hex_literal::hex!("d44824ac8d1edecca67639ca74d208bd2044a10e67c9677e288080191e3fec13"),), + (1, hex_literal::hex!("585e982d74da4f4290d20a73800cfd705cf59e1f5880aaee5506b5eaaf544f49"),), + (1, hex_literal::hex!("d851f44a6f0d0d2f3439a51f2f75f66f4ea1a8e6c33c32f9af75fc188afb7546"),), + (1, hex_literal::hex!("dca89b135d1a6aee0a498610a70eeaed056727c8a4d220da245842e540a54a74"),), + (1, hex_literal::hex!("aa91fc0201f26b713a018669bcd269babf25368eee2493323b1ce0190a178a27"),), + (1, hex_literal::hex!("dc20836f2e4b88c1858d1e3f918e7358043b4a8abcd2874e74d91d26c52eca2a"),), + (1, hex_literal::hex!("145d6c503d0cf97f4c7725ca773741bd02e1760bfb52e021af5a9f2de283012c"),), + (1, hex_literal::hex!("307183930b2264c5165f4a210a99520c5f1672b0413d57769fabc19e6866fb25"),), + (1, hex_literal::hex!("6201961514cf5ad87f1c4dd0c392ee28231f805f77975147bf2c33bd671b9822"),), + (1, hex_literal::hex!("c6f57237cd4abfbeed99171495fc784e45a9d5d2814d435de40de00991a73c06"),), + (1, hex_literal::hex!("c1df5c7e8ca56037450c58734326ebe34aec8f7d1928322a12164856365fea73"),), + (1, hex_literal::hex!("12c039004da5e1e846aae808277098c719cef1f4985aed00161a42ac4f0e002f"),), + (1, hex_literal::hex!("7460ac178015d2a7c289bb68ef9fdaac071596ab4425c276a0040aaac7055566"),), + (1, hex_literal::hex!("eec4bd650a277342ebba0954ac786df2623bd6a9d6d3e69b484482336c549f79"),), + (1, hex_literal::hex!("e287c7494655d636a846f5c3347ad2cb3c462a8d46e0832be70fcc0ab54ee62d"),), + (1, hex_literal::hex!("82bf733f44a840f0a5c1935a002d4e541d81298fad6d1da8124073485983860e"),), + (1, hex_literal::hex!("d5b89078eed9b9dfec5c7d8413bac0b720bad3bd4078c4d8c894325713192502"),), + ]; + } + + /// Implements `OnRuntimeUpgrade` trait. + pub struct Migration(PhantomData<(T, I)>); + + impl, I: 'static> OnRuntimeUpgrade for Migration + where + ::AccountId: From<[u8; 32]>, + { + #[cfg(feature = "try-runtime")] + fn pre_upgrade() -> Result, sp_runtime::TryRuntimeError> { + let onchain_version = RankedCollective::::on_chain_storage_version(); + ensure!(onchain_version == 0, "the storage version must be 0."); + let member_count = MemberCount::::get(0); + ensure!(member_count == 0, "the collective must be uninitialized."); + + Ok(Vec::new()) + } + + fn on_runtime_upgrade() -> Weight { + let current_version = RankedCollective::::current_storage_version(); + let onchain_version = RankedCollective::::on_chain_storage_version(); + let mut weight = T::DbWeight::get().reads(1); + log::info!( + target: TARGET, + "running migration with current storage version {:?} / onchain {:?}.", + current_version, + onchain_version + ); + if onchain_version != 0 { + log::warn!( + target: TARGET, + "unsupported storage version, skipping import_fellowship migration." + ); + return weight + } + let member_count = MemberCount::::get(0); + weight.saturating_accrue(T::DbWeight::get().reads(1)); + if member_count != 0 { + log::warn!( + target: TARGET, + "the collective already initialized, skipping import_fellowship migration." + ); + return weight + } + + for (rank, account_id32) in FellowshipAddresses::get() { + let who: T::AccountId = account_id32.into(); + let _ = as RankedMembers>::induct(&who); + for _ in 0..rank { + let _ = as RankedMembers>::promote(&who); + // 1 write to `IdToIndex` and `IndexToId` per member on each rank. + weight.saturating_accrue(T::DbWeight::get().writes(2)); + } + // 1 write to `IdToIndex` and `IndexToId` per member on each rank. + weight.saturating_accrue(T::DbWeight::get().writes(2)); + // 1 read and 1 write to `Members` and `MemberCount` per member. + weight.saturating_accrue(T::DbWeight::get().reads_writes(2, 2)); + } + weight + } + + #[cfg(feature = "try-runtime")] + fn post_upgrade(_state: Vec) -> Result<(), sp_runtime::TryRuntimeError> { + ensure!(MemberCount::::get(0) == 47, "invalid members count at rank 0."); + ensure!(MemberCount::::get(1) == 47, "invalid members count at rank 1."); + ensure!(MemberCount::::get(2) == 24, "invalid members count at rank 2."); + ensure!(MemberCount::::get(3) == 17, "invalid members count at rank 3."); + ensure!(MemberCount::::get(4) == 10, "invalid members count at rank 4."); + ensure!(MemberCount::::get(5) == 7, "invalid members count at rank 5."); + ensure!(MemberCount::::get(6) == 3, "invalid members count at rank 6."); + ensure!(MemberCount::::get(7) == 0, "invalid members count at rank 7."); + Ok(()) + } + } +} + +#[cfg(test)] +pub mod tests { + use super::import_kusama_fellowship::FellowshipAddresses; + use crate::{FellowshipCollectiveInstance as Fellowship, Runtime, System}; + use frame_support::traits::OnRuntimeUpgrade; + use pallet_ranked_collective::Rank; + use parachains_common::AccountId; + use sp_core::crypto::Ss58Codec; + use sp_runtime::{AccountId32, BuildStorage}; + + #[test] + fn check_fellowship_addresses() { + let fellowship_addresses = FellowshipAddresses::get(); + let kusama_fellowship_ss58: [(Rank, _); 47] = [ + (6, "16SDAKg9N6kKAbhgDyxBXdHEwpwHUHs2CNEiLNGeZV55qHna"), /* proof https://kusama.subscan.io/extrinsic/16832707-4 */ + (6, "12MrP337azmkTdfCUKe5XLnSQrbgEKqqfZ4PQC7CZTJKAWR3"), /* proof https://kusama.subscan.io/extrinsic/16967809-2 */ + (6, "FFFF3gBSSDFSvK2HBq4qgLH75DHqXWPHeCnR1BSksAMacBs"), + (5, "G7YVCdxZb8JLpAm9WMnJdNuojNT84AzU62zmvx5P1FMNtg2"), + (5, "15G1iXDLgFyfnJ51FKq1ts44TduMyUtekvzQi9my4hgYt2hs"), /* proof https://kusama.subscan.io/extrinsic/16917610-2 */ + (5, "Dcm1BqR4N7nHuV43TXdET7pNibt1Nzm42FggPHpxKRven53"), + (5, "1363HWTPzDrzAQ6ChFiMU6mP4b6jmQid2ae55JQcKtZnpLGv"), /* proof https://kusama.subscan.io/extrinsic/16961180-2 */ + (4, "EGVQCe73TpFyAZx5uKfE1222XfkT3BSKozjgcqzLBnc5eYo"), + (4, "1eTPAR2TuqLyidmPT9rMmuycHVm9s9czu78sePqg2KHMDrE"), /* proof https://kusama.subscan.io/extrinsic/16921712-3 */ + (4, "14DsLzVyTUTDMm2eP3czwPbH53KgqnQRp3CJJZS9GR7yxGDP"), /* proof https://kusama.subscan.io/extrinsic/16917519-2 */ + (3, "13aYUFHB3umoPoxBEAHSv451iR3RpsNi3t5yBZjX2trCtTp6"), /* proof https://kusama.subscan.io/extrinsic/16917832-3 */ + (3, "H25aCspunTUqAt4D1gC776vKZ8FX3MvQJ3Jde6qDXPQaFxk"), + (3, "GtLQoW4ZqcjExMPq6qB22bYc6NaX1yMzRuGWpSRiHqnzRb9"), + (3, "15db5ksZgmhWE9U8MDq4wLKUdFivLVBybztWV8nmaJvv3NU1"), /* proof https://kusama.subscan.io/extrinsic/16876631-2 */ + (3, "HfFpz4QUxfbocHudf8UU7cMgHqkHpf855Me5X846PZAsAYE"), + (3, "14ShUZUYUR35RBZW6uVVt1zXDxmSQddkeDdXf1JkMA6P721N"), /* proof https://kusama.subscan.io/extrinsic/16918890-8 */ + (3, "12YzxR5TvGzfMVZNnhAJ5Hwi5zExpRWMKv2MuMwZTrddvgoi"), /* proof https://kusama.subscan.io/extrinsic/16924324-3 */ + (2, "Ddb9puChKMHq4gM6o47E551wAmaNeu6kHngX1jzNNqAw782"), + (2, "15DCWHQknBjc5YPFoVj8Pn2KoqrqYywJJ95BYNYJ4Fj3NLqz"), /* proof https://kusama.subscan.io/extrinsic/16834952-2 */ + (2, "14ajTQdrtCA8wZmC4PgD8Y1B2Gy8L4Z3oi2fodxq9FehcFrM"), /* proof https://kusama.subscan.io/extrinsic/16944257-2 */ + (2, "HxhDbS3grLurk1dhDgPiuDaRowHY1xHCU8Vu8on3fdg85tx"), + (2, "HTk3eccL7WBkiyxz1gBcqQRghsJigoDMD7mnQaz1UAbMpQV"), + (2, "EcNWrSPSDcVBRymwr26kk4JVFg92PdoU5Xwp87W2FgFSt9c"), + (2, "D8sM6vKjWaeKy2zCPYWGkLLbWdUtWQrXBTQqr4dSYnVQo21"), + (1, "GfbnnEgRU94n9ed4RFZ6Z9dBAWs5obykigJSwXKU9hsT2uU"), + (1, "HA5NtttvyZsxo4wGxGoJJSMaWtdEFZAuGUMFHVWD7fgenPv"), + (1, "14mDeKZ7qp9hqBjjDg51c8BFrf9o69om8piSSRwj2fT5Yb1i"), /* proof https://kusama.subscan.io/extrinsic/16919020-4 */ + (1, "16a357f5Sxab3V2ne4emGQvqJaCLeYpTMx3TCjnQhmJQ71DX"), /* proof https://kusama.subscan.io/extrinsic/16836396-5 */ + (1, "14Ak9rrF6RKHHoLLRUYMnzcvvi1t8E1yAMa7tcmiwUfaqzYK"), /* proof https://kusama.subscan.io/extrinsic/16921990-3 */ + (1, "FJq9JpA9P7EXbmfsN9YiewJaDbQyL6vQyksGtJvzfbn6zf8"), + (1, "15oLanodWWweiZJSoDTEBtrX7oGfq6e8ct5y5E6fVRDPhUgj"), /* proof https://kusama.subscan.io/extrinsic/16876423-7 */ + (1, "EaBqDJJNsZmYdQ4xn1vomPJVNh7fjA6UztZeEjn7ZzdeT7V"), + (1, "HTxCvXKVvUZ7PQq175kCRRLu7XkGfTfErrdNXr1ZuuwVZWv"), + (1, "HZe91A6a1xqbKaw6ofx3GFepJjhVXHrwHEwn6YUDDFphpX9"), + (1, "GRy2P3kBEzSHCbmDJfquku1cyUyhZaAqojRcNE4A4U3MnLd"), + (1, "HYwiBo7Mcv7uUDg4MUoKm2fxzv4dMLAtmmNfzHV8qcQJpAE"), + (1, "1ThiBx5DDxFhoD9GY6tz5Fp4Y7Xn1xfLmDddcoFQghDvvjg"), /* proof https://kusama.subscan.io/extrinsic/16918130-2 */ + (1, "DfqY6XQUSETTszBQ1juocTcG9iiDoXhvq1CoVadBSUqTGJS"), + (1, "EnpgVWGGQVrFdSB2qeXRVdtccV6U5ZscNELBoERbkFD8Wi6"), + (1, "H5BuqCmucJhUUuvjAzPazeVwVCtUSXVQdc5Dnx2q5zD7rVn"), + (1, "GxX7S1pTDdeaGUjpEPPF2we6tgHDhbatFG25pVmVFtGHLH6"), + (1, "CzuUtvKhZNZBjyAXeYviaRXwrLhVrsupJ9PrWmdq7BJTjGR"), + (1, "FCunn2Rx8JqfT5g6noUKKazph4jLDba5rUee7o3ZmJ362Ju"), + (1, "HyPMjWRHCpJS7x2SZ2R6M2XG5ZiCiZag4U4r7gBHRsE5mTc"), + (1, "1682A5hxfiS1Kn1jrUnMYv14T9EuEnsgnBbujGfYbeEbSK3w"), /* proof https://kusama.subscan.io/extrinsic/16919077-2 */ + (1, "13xS6fK6MHjApLnjdX7TJYw1niZmiXasSN91bNtiXQjgEtNx"), /* proof https://kusama.subscan.io/extrinsic/16918212-7 */ + (1, "15qE2YAQCs5Y962RHE7RzNjQxU6Pei21nhkkSM9Sojq1hHps"), /* https://kusama.subscan.io/extrinsic/17352973-2 */ + ]; + + for (index, val) in kusama_fellowship_ss58.iter().enumerate() { + let account: AccountId32 = ::from_string(val.1).unwrap(); + let account32: [u8; 32] = account.clone().into(); + assert_eq!( + fellowship_addresses[index].0, kusama_fellowship_ss58[index].0, + "ranks must be equal." + ); + assert_eq!(fellowship_addresses[index].1, account32, "accounts must be equal."); + } + } + + #[test] + fn test_fellowship_import() { + use super::import_kusama_fellowship::Migration; + use pallet_ranked_collective::{IdToIndex, IndexToId, MemberCount, MemberRecord, Members}; + + let t = frame_system::GenesisConfig::::default().build_storage().unwrap(); + let mut ext = sp_io::TestExternalities::new(t); + ext.execute_with(|| System::set_block_number(1)); + ext.execute_with(|| { + assert_eq!(MemberCount::::get(0), 0); + Migration::::on_runtime_upgrade(); + assert_eq!(MemberCount::::get(0), 47); + assert_eq!(MemberCount::::get(6), 3); + assert_eq!(MemberCount::::get(7), 0); + for (rank, account_id32) in FellowshipAddresses::get() { + let who = ::AccountId::from(account_id32); + assert!(IdToIndex::::get(0, &who).is_some()); + assert!(IdToIndex::::get(rank + 1, &who).is_none()); + let index = IdToIndex::::get(rank, &who).unwrap(); + assert_eq!(IndexToId::::get(rank, index).unwrap(), who); + assert_eq!( + Members::::get(&who).unwrap(), + MemberRecord::new(rank) + ); + } + }); + } +} diff --git a/cumulus/parachains/runtimes/collectives/collectives-polkadot/src/fellowship/mod.rs b/cumulus/parachains/runtimes/collectives/collectives-polkadot/src/fellowship/mod.rs new file mode 100644 index 000000000000..2a2757ea5ceb --- /dev/null +++ b/cumulus/parachains/runtimes/collectives/collectives-polkadot/src/fellowship/mod.rs @@ -0,0 +1,239 @@ +// Copyright (C) Parity Technologies (UK) Ltd. +// This file is part of Cumulus. + +// Cumulus 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. + +// Cumulus 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 Cumulus. If not, see . + +//! The Polkadot Technical Fellowship. + +pub(crate) mod migration; +mod origins; +mod tracks; +use crate::{ + impls::ToParentTreasury, + weights, + xcm_config::{FellowshipAdminBodyId, UsdtAssetHub}, + AccountId, Balance, Balances, FellowshipReferenda, GovernanceLocation, PolkadotTreasuryAccount, + Preimage, Runtime, RuntimeCall, RuntimeEvent, RuntimeOrigin, Scheduler, DAYS, +}; +use frame_support::{ + parameter_types, + traits::{EitherOf, EitherOfDiverse, MapSuccess, OriginTrait, TryWithMorphedArg}, +}; +use frame_system::EnsureRootWithSuccess; +pub use origins::{ + pallet_origins as pallet_fellowship_origins, Architects, EnsureCanPromoteTo, EnsureCanRetainAt, + EnsureFellowship, Fellows, Masters, Members, ToVoice, +}; +use pallet_ranked_collective::EnsureOfRank; +use pallet_xcm::{EnsureXcm, IsVoiceOfBody}; +use parachains_common::{polkadot::account, HOURS}; +use sp_core::{ConstU128, ConstU32}; +use sp_runtime::traits::{AccountIdConversion, ConstU16, ConvertToValue, Replace, TakeFirst}; +use xcm_builder::{AliasesIntoAccountId32, PayOverXcm}; + +#[cfg(feature = "runtime-benchmarks")] +use crate::impls::benchmarks::{OpenHrmpChannel, PayWithEnsure}; + +/// The Fellowship members' ranks. +pub mod ranks { + use pallet_ranked_collective::Rank; + + pub const DAN_1: Rank = 1; // aka Members. + pub const DAN_2: Rank = 2; + pub const DAN_3: Rank = 3; // aka Fellows. + pub const DAN_4: Rank = 4; // aka Architects. + pub const DAN_5: Rank = 5; + pub const DAN_6: Rank = 6; + pub const DAN_7: Rank = 7; // aka Masters. + pub const DAN_8: Rank = 8; + pub const DAN_9: Rank = 9; +} + +parameter_types! { + // Referenda pallet account, used to temporarily deposit slashed imbalance before teleporting. + pub ReferendaPalletAccount: AccountId = account::REFERENDA_PALLET_ID.into_account_truncating(); +} + +impl pallet_fellowship_origins::Config for Runtime {} + +pub type FellowshipReferendaInstance = pallet_referenda::Instance1; + +impl pallet_referenda::Config for Runtime { + type WeightInfo = weights::pallet_referenda_fellowship_referenda::WeightInfo; + type RuntimeCall = RuntimeCall; + type RuntimeEvent = RuntimeEvent; + type Scheduler = Scheduler; + type Currency = Balances; + // Fellows can submit proposals. + type SubmitOrigin = EitherOf< + pallet_ranked_collective::EnsureMember, + MapSuccess< + TryWithMorphedArg< + RuntimeOrigin, + ::PalletsOrigin, + ToVoice, + EnsureOfRank, + (AccountId, u16), + >, + TakeFirst, + >, + >; + type CancelOrigin = Architects; + type KillOrigin = Masters; + type Slash = ToParentTreasury; + type Votes = pallet_ranked_collective::Votes; + type Tally = pallet_ranked_collective::TallyOf; + type SubmissionDeposit = ConstU128<0>; + type MaxQueued = ConstU32<100>; + type UndecidingTimeout = ConstU32<{ 7 * DAYS }>; + type AlarmInterval = ConstU32<1>; + type Tracks = tracks::TracksInfo; + type Preimages = Preimage; +} + +pub type FellowshipCollectiveInstance = pallet_ranked_collective::Instance1; + +impl pallet_ranked_collective::Config for Runtime { + type WeightInfo = weights::pallet_ranked_collective_fellowship_collective::WeightInfo; + type RuntimeEvent = RuntimeEvent; + + #[cfg(not(feature = "runtime-benchmarks"))] + // Promotions and the induction of new members are serviced by `FellowshipCore` pallet instance. + type PromoteOrigin = frame_system::EnsureNever; + #[cfg(feature = "runtime-benchmarks")] + // The maximum value of `u16` set as a success value for the root to ensure the benchmarks will + // pass. + type PromoteOrigin = EnsureRootWithSuccess>; + + // Demotion is by any of: + // - Root can demote arbitrarily. + // - the FellowshipAdmin origin (i.e. token holder referendum); + // + // The maximum value of `u16` set as a success value for the root to ensure the benchmarks will + // pass. + type DemoteOrigin = EitherOf< + EnsureRootWithSuccess>, + MapSuccess< + EnsureXcm>, + Replace>, + >, + >; + type Polls = FellowshipReferenda; + type MinRankOfClass = tracks::MinRankOfClass; + type VoteWeight = pallet_ranked_collective::Geometric; +} + +pub type FellowshipCoreInstance = pallet_core_fellowship::Instance1; + +impl pallet_core_fellowship::Config for Runtime { + type WeightInfo = weights::pallet_core_fellowship_fellowship_core::WeightInfo; + type RuntimeEvent = RuntimeEvent; + type Members = pallet_ranked_collective::Pallet; + type Balance = Balance; + // Parameters are set by any of: + // - Root; + // - the FellowshipAdmin origin (i.e. token holder referendum); + // - a vote among all Fellows. + type ParamsOrigin = EitherOfDiverse< + EnsureXcm>, + Fellows, + >; + // Induction (creating a candidate) is by any of: + // - Root; + // - the FellowshipAdmin origin (i.e. token holder referendum); + // - a single Fellow; + // - a vote among all Members. + type InductOrigin = EitherOfDiverse< + EnsureXcm>, + EitherOfDiverse< + pallet_ranked_collective::EnsureMember< + Runtime, + FellowshipCollectiveInstance, + { ranks::DAN_3 }, + >, + Members, + >, + >; + // Approval (rank-retention) of a Member's current rank is by any of: + // - Root; + // - the FellowshipAdmin origin (i.e. token holder referendum); + // - a vote by the rank two above the current rank for all retention up to the Master rank. + type ApproveOrigin = EitherOf< + MapSuccess< + EnsureXcm>, + Replace>, + >, + EnsureCanRetainAt, + >; + // Promotion is by any of: + // - Root can promote arbitrarily. + // - the FellowshipAdmin origin (i.e. token holder referendum); + // - a vote by the rank two above the new rank for all promotions up to the Master rank. + type PromoteOrigin = EitherOf< + MapSuccess< + EnsureXcm>, + Replace>, + >, + EnsureCanPromoteTo, + >; + type EvidenceSize = ConstU32<65536>; +} + +pub type FellowshipSalaryInstance = pallet_salary::Instance1; + +use xcm::prelude::*; + +parameter_types! { + // The interior location on AssetHub for the paying account. This is the Fellowship Salary + // pallet instance (which sits at index 64). This sovereign account will need funding. + pub Interior: InteriorMultiLocation = PalletInstance(64).into(); +} + +const USDT_UNITS: u128 = 1_000_000; + +/// [`PayOverXcm`] setup to pay the Fellowship salary on the AssetHub in USDT. +pub type FellowshipSalaryPaymaster = PayOverXcm< + Interior, + crate::xcm_config::XcmRouter, + crate::PolkadotXcm, + ConstU32<{ 6 * HOURS }>, + AccountId, + (), + ConvertToValue, + AliasesIntoAccountId32<(), AccountId>, +>; + +impl pallet_salary::Config for Runtime { + type WeightInfo = weights::pallet_salary_fellowship_salary::WeightInfo; + type RuntimeEvent = RuntimeEvent; + + #[cfg(not(feature = "runtime-benchmarks"))] + type Paymaster = FellowshipSalaryPaymaster; + #[cfg(feature = "runtime-benchmarks")] + type Paymaster = PayWithEnsure>>; + type Members = pallet_ranked_collective::Pallet; + + #[cfg(not(feature = "runtime-benchmarks"))] + type Salary = pallet_core_fellowship::Pallet; + #[cfg(feature = "runtime-benchmarks")] + type Salary = frame_support::traits::tokens::ConvertRank< + crate::impls::benchmarks::RankToSalary, + >; + // 15 days to register for a salary payment. + type RegistrationPeriod = ConstU32<{ 15 * DAYS }>; + // 15 days to claim the salary payment. + type PayoutPeriod = ConstU32<{ 15 * DAYS }>; + // Total monthly salary budget. + type Budget = ConstU128<{ 100_000 * USDT_UNITS }>; +} diff --git a/cumulus/parachains/runtimes/collectives/collectives-polkadot/src/fellowship/origins.rs b/cumulus/parachains/runtimes/collectives/collectives-polkadot/src/fellowship/origins.rs new file mode 100644 index 000000000000..5ed2c19f79e6 --- /dev/null +++ b/cumulus/parachains/runtimes/collectives/collectives-polkadot/src/fellowship/origins.rs @@ -0,0 +1,247 @@ +// Copyright (C) Parity Technologies (UK) Ltd. +// This file is part of Cumulus. + +// Cumulus 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. + +// Cumulus 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 Cumulus. If not, see . + +//! Fellowship custom origins. + +use super::ranks; +pub use pallet_origins::*; + +#[frame_support::pallet] +pub mod pallet_origins { + use super::ranks; + use frame_support::pallet_prelude::*; + use pallet_ranked_collective::Rank; + + #[pallet::config] + pub trait Config: frame_system::Config {} + + #[pallet::pallet] + pub struct Pallet(_); + + #[derive(PartialEq, Eq, Clone, MaxEncodedLen, Encode, Decode, TypeInfo, RuntimeDebug)] + #[pallet::origin] + pub enum Origin { + /// Origin aggregated through weighted votes of those with rank 1 or above; `Success` is 1. + /// Aka the "voice" of all Members. + Members, + /// Origin aggregated through weighted votes of those with rank 2 or above; `Success` is 2. + /// Aka the "voice" of members at least II Dan. + Fellowship2Dan, + /// Origin aggregated through weighted votes of those with rank 3 or above; `Success` is 3. + /// Aka the "voice" of all Fellows. + Fellows, + /// Origin aggregated through weighted votes of those with rank 4 or above; `Success` is 4. + /// Aka the "voice" of members at least IV Dan. + Architects, + /// Origin aggregated through weighted votes of those with rank 5 or above; `Success` is 5. + /// Aka the "voice" of members at least V Dan. + Fellowship5Dan, + /// Origin aggregated through weighted votes of those with rank 6 or above; `Success` is 6. + /// Aka the "voice" of members at least VI Dan. + Fellowship6Dan, + /// Origin aggregated through weighted votes of those with rank 7 or above; `Success` is 7. + /// Aka the "voice" of all Masters. + Masters, + /// Origin aggregated through weighted votes of those with rank 8 or above; `Success` is 8. + /// Aka the "voice" of members at least VIII Dan. + Fellowship8Dan, + /// Origin aggregated through weighted votes of those with rank 9 or above; `Success` is 9. + /// Aka the "voice" of members at least IX Dan. + Fellowship9Dan, + + /// Origin aggregated through weighted votes of those with rank 3 or above when voting on + /// a fortnight-long track; `Success` is 1. + RetainAt1Dan, + /// Origin aggregated through weighted votes of those with rank 4 or above when voting on + /// a fortnight-long track; `Success` is 2. + RetainAt2Dan, + /// Origin aggregated through weighted votes of those with rank 5 or above when voting on + /// a fortnight-long track; `Success` is 3. + RetainAt3Dan, + /// Origin aggregated through weighted votes of those with rank 6 or above when voting on + /// a fortnight-long track; `Success` is 4. + RetainAt4Dan, + /// Origin aggregated through weighted votes of those with rank 7 or above when voting on + /// a fortnight-long track; `Success` is 5. + RetainAt5Dan, + /// Origin aggregated through weighted votes of those with rank 8 or above when voting on + /// a fortnight-long track; `Success` is 6. + RetainAt6Dan, + + /// Origin aggregated through weighted votes of those with rank 3 or above when voting on + /// a month-long track; `Success` is 1. + PromoteTo1Dan, + /// Origin aggregated through weighted votes of those with rank 4 or above when voting on + /// a month-long track; `Success` is 2. + PromoteTo2Dan, + /// Origin aggregated through weighted votes of those with rank 5 or above when voting on + /// a month-long track; `Success` is 3. + PromoteTo3Dan, + /// Origin aggregated through weighted votes of those with rank 6 or above when voting on + /// a month-long track; `Success` is 4. + PromoteTo4Dan, + /// Origin aggregated through weighted votes of those with rank 7 or above when voting on + /// a month-long track; `Success` is 5. + PromoteTo5Dan, + /// Origin aggregated through weighted votes of those with rank 8 or above when voting on + /// a month-long track; `Success` is 6. + PromoteTo6Dan, + } + + impl Origin { + /// Returns the rank that the origin `self` speaks for, or `None` if it doesn't speak for + /// any. + /// + /// `Some` will be returned only for the first 9 elements of [Origin]. + pub fn as_voice(&self) -> Option { + Some(match &self { + Origin::Members => ranks::DAN_1, + Origin::Fellowship2Dan => ranks::DAN_2, + Origin::Fellows => ranks::DAN_3, + Origin::Architects => ranks::DAN_4, + Origin::Fellowship5Dan => ranks::DAN_5, + Origin::Fellowship6Dan => ranks::DAN_6, + Origin::Masters => ranks::DAN_7, + Origin::Fellowship8Dan => ranks::DAN_8, + Origin::Fellowship9Dan => ranks::DAN_9, + _ => return None, + }) + } + } + + /// A `TryMorph` implementation which is designed to convert an aggregate `RuntimeOrigin` + /// value into the Fellowship voice it represents if it is a Fellowship pallet origin an + /// appropriate variant. See also [Origin::as_voice]. + pub struct ToVoice; + impl<'a, O: 'a + TryInto<&'a Origin>> sp_runtime::traits::TryMorph for ToVoice { + type Outcome = pallet_ranked_collective::Rank; + fn try_morph(o: O) -> Result { + o.try_into().ok().and_then(Origin::as_voice).ok_or(()) + } + } + + macro_rules! decl_unit_ensures { + ( $name:ident: $success_type:ty = $success:expr ) => { + pub struct $name; + impl> + From> + EnsureOrigin for $name + { + type Success = $success_type; + fn try_origin(o: O) -> Result { + o.into().and_then(|o| match o { + Origin::$name => Ok($success), + r => Err(O::from(r)), + }) + } + #[cfg(feature = "runtime-benchmarks")] + fn try_successful_origin() -> Result { + Ok(O::from(Origin::$name)) + } + } + }; + ( $name:ident ) => { decl_unit_ensures! { $name : () = () } }; + ( $name:ident: $success_type:ty = $success:expr, $( $rest:tt )* ) => { + decl_unit_ensures! { $name: $success_type = $success } + decl_unit_ensures! { $( $rest )* } + }; + ( $name:ident, $( $rest:tt )* ) => { + decl_unit_ensures! { $name } + decl_unit_ensures! { $( $rest )* } + }; + () => {} + } + decl_unit_ensures!( + Members: Rank = ranks::DAN_1, + Fellows: Rank = ranks::DAN_3, + Architects: Rank = ranks::DAN_4, + Masters: Rank = ranks::DAN_7, + ); + + macro_rules! decl_ensure { + ( + $vis:vis type $name:ident: EnsureOrigin { + $( $item:ident = $success:expr, )* + } + ) => { + $vis struct $name; + impl> + From> + EnsureOrigin for $name + { + type Success = $success_type; + fn try_origin(o: O) -> Result { + o.into().and_then(|o| match o { + $( + Origin::$item => Ok($success), + )* + r => Err(O::from(r)), + }) + } + #[cfg(feature = "runtime-benchmarks")] + fn try_successful_origin() -> Result { + // By convention the more privileged origins go later, so for greatest chance + // of success, we want the last one. + let _result: Result = Err(()); + $( + let _result: Result = Ok(O::from(Origin::$item)); + )* + _result + } + } + } + } + + // Fellowship origin indicating weighted voting from at least the rank of `Success` on a + // week-long track. + decl_ensure! { + pub type EnsureFellowship: EnsureOrigin { + Members = ranks::DAN_1, + Fellowship2Dan = ranks::DAN_2, + Fellows = ranks::DAN_3, + Architects = ranks::DAN_4, + Fellowship5Dan = ranks::DAN_5, + Fellowship6Dan = ranks::DAN_6, + Masters = ranks::DAN_7, + Fellowship8Dan = ranks::DAN_8, + Fellowship9Dan = ranks::DAN_9, + } + } + + // Fellowship origin indicating weighted voting from at least the rank of `Success + 2` on + // a fortnight-long track; needed for Fellowship retention voting. + decl_ensure! { + pub type EnsureCanRetainAt: EnsureOrigin { + RetainAt1Dan = ranks::DAN_1, + RetainAt2Dan = ranks::DAN_2, + RetainAt3Dan = ranks::DAN_3, + RetainAt4Dan = ranks::DAN_4, + RetainAt5Dan = ranks::DAN_5, + RetainAt6Dan = ranks::DAN_6, + } + } + + // Fellowship origin indicating weighted voting from at least the rank of `Success + 2` on + // a month-long track; needed for Fellowship promotion voting. + decl_ensure! { + pub type EnsureCanPromoteTo: EnsureOrigin { + PromoteTo1Dan = ranks::DAN_1, + PromoteTo2Dan = ranks::DAN_2, + PromoteTo3Dan = ranks::DAN_3, + PromoteTo4Dan = ranks::DAN_4, + PromoteTo5Dan = ranks::DAN_5, + PromoteTo6Dan = ranks::DAN_6, + } + } +} diff --git a/cumulus/parachains/runtimes/collectives/collectives-polkadot/src/fellowship/tracks.rs b/cumulus/parachains/runtimes/collectives/collectives-polkadot/src/fellowship/tracks.rs new file mode 100644 index 000000000000..f4ba4e05ec16 --- /dev/null +++ b/cumulus/parachains/runtimes/collectives/collectives-polkadot/src/fellowship/tracks.rs @@ -0,0 +1,532 @@ +// Copyright (C) Parity Technologies (UK) Ltd. +// This file is part of Cumulus. + +// Cumulus 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. + +// Cumulus 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 Cumulus. If not, see . + +//! Track configurations for Fellowship. + +use crate::{Balance, BlockNumber, RuntimeOrigin, DAYS, DOLLARS, HOURS, MINUTES}; +use pallet_ranked_collective::Rank; +use sp_runtime::{traits::Convert, Perbill}; + +/// Referendum `TrackId` type. +pub type TrackId = u16; + +/// Referendum track IDs. +pub mod constants { + use super::TrackId; + + // Regular tracks (7 days) used for general operations. The required rank for voting is the + // same as that which is named (and also the track ID). + pub const MEMBERS: TrackId = 1; + pub const PROFICIENTS: TrackId = 2; + pub const FELLOWS: TrackId = 3; + pub const ARCHITECTS: TrackId = 4; + pub const ARCHITECTS_ADEPT: TrackId = 5; + pub const GRAND_ARCHITECTS: TrackId = 6; + pub const MASTERS: TrackId = 7; + pub const MASTERS_CONSTANT: TrackId = 8; + pub const GRAND_MASTERS: TrackId = 9; + + // Longer tracks (14 days) used for rank retention. These require a rank of two more than the + // grade at which they retain (as per the whitepaper). This works out as the track ID minus 8. + pub const RETAIN_AT_1DAN: TrackId = 11; + pub const RETAIN_AT_2DAN: TrackId = 12; + pub const RETAIN_AT_3DAN: TrackId = 13; + pub const RETAIN_AT_4DAN: TrackId = 14; + pub const RETAIN_AT_5DAN: TrackId = 15; + pub const RETAIN_AT_6DAN: TrackId = 16; + + // Longest tracks (30 days) used for promotions. These require a rank of two more than the + // grade to which they promote (as per the whitepaper). This works out as the track ID minus 18. + pub const PROMOTE_TO_1DAN: TrackId = 21; + pub const PROMOTE_TO_2DAN: TrackId = 22; + pub const PROMOTE_TO_3DAN: TrackId = 23; + pub const PROMOTE_TO_4DAN: TrackId = 24; + pub const PROMOTE_TO_5DAN: TrackId = 25; + pub const PROMOTE_TO_6DAN: TrackId = 26; +} + +/// Convert the track ID (defined above) into the minimum rank (i.e. fellowship Dan grade) required +/// to vote on the track. +pub struct MinRankOfClass; +impl Convert for MinRankOfClass { + fn convert(a: TrackId) -> Rank { + match a { + // Just a regular vote: the track ID is conveniently the same as the minimum rank. + regular @ 1..=9 => regular, + // A retention vote; the track ID turns out to be 8 more than the minimum required rank. + retention @ 11..=16 => retention - 8, + // A promotion vote; the track ID turns out to be 18 more than the minimum required + // rank. + promotion @ 21..=26 => promotion - 18, + _ => Rank::max_value(), + } + } +} + +const RETAIN_MAX_DECIDING: u32 = 25; +const RETAIN_DECISION_DEPOSIT: Balance = 5 * DOLLARS; +const RETAIN_PREPARE_PERIOD: BlockNumber = 0; +const RETAIN_DECISION_PERIOD: BlockNumber = 14 * DAYS; +const RETAIN_CONFIRM_PERIOD: BlockNumber = 1 * HOURS; +const RETAIN_MIN_ENACTMENT_PERIOD: BlockNumber = 0; +const RETAIN_MIN_APPROVAL: pallet_referenda::Curve = pallet_referenda::Curve::LinearDecreasing { + length: Perbill::from_percent(100), + floor: Perbill::from_percent(60), + ceil: Perbill::from_percent(100), +}; +const RETAIN_MIN_SUPPORT: pallet_referenda::Curve = pallet_referenda::Curve::LinearDecreasing { + length: Perbill::from_percent(100), + floor: Perbill::from_percent(10), + ceil: Perbill::from_percent(100), +}; + +const PROMOTE_MAX_DECIDING: u32 = 10; +const PROMOTE_DECISION_DEPOSIT: Balance = 5 * DOLLARS; +const PROMOTE_PREPARE_PERIOD: BlockNumber = 0; +const PROMOTE_DECISION_PERIOD: BlockNumber = 30 * DAYS; +const PROMOTE_CONFIRM_PERIOD: BlockNumber = 1 * HOURS; +const PROMOTE_MIN_ENACTMENT_PERIOD: BlockNumber = 0; +const PROMOTE_MIN_APPROVAL: pallet_referenda::Curve = pallet_referenda::Curve::LinearDecreasing { + length: Perbill::from_percent(100), + floor: Perbill::from_percent(60), + ceil: Perbill::from_percent(100), +}; +const PROMOTE_MIN_SUPPORT: pallet_referenda::Curve = pallet_referenda::Curve::LinearDecreasing { + length: Perbill::from_percent(100), + floor: Perbill::from_percent(10), + ceil: Perbill::from_percent(100), +}; + +pub struct TracksInfo; +impl pallet_referenda::TracksInfo for TracksInfo { + type Id = TrackId; + type RuntimeOrigin = ::PalletsOrigin; + fn tracks() -> &'static [(Self::Id, pallet_referenda::TrackInfo)] { + use constants as tracks; + static DATA: [(TrackId, pallet_referenda::TrackInfo); 21] = [ + ( + tracks::MEMBERS, + pallet_referenda::TrackInfo { + name: "members", + max_deciding: 10, + decision_deposit: 5 * DOLLARS, + prepare_period: 30 * MINUTES, + decision_period: 7 * DAYS, + confirm_period: 30 * MINUTES, + min_enactment_period: 5 * MINUTES, + min_approval: pallet_referenda::Curve::LinearDecreasing { + length: Perbill::from_percent(100), + floor: Perbill::from_percent(50), + ceil: Perbill::from_percent(100), + }, + min_support: pallet_referenda::Curve::LinearDecreasing { + length: Perbill::from_percent(100), + floor: Perbill::from_percent(0), + ceil: Perbill::from_percent(100), + }, + }, + ), + ( + tracks::PROFICIENTS, + pallet_referenda::TrackInfo { + name: "proficient members", + max_deciding: 10, + decision_deposit: 5 * DOLLARS, + prepare_period: 30 * MINUTES, + decision_period: 7 * DAYS, + confirm_period: 30 * MINUTES, + min_enactment_period: 5 * MINUTES, + min_approval: pallet_referenda::Curve::LinearDecreasing { + length: Perbill::from_percent(100), + floor: Perbill::from_percent(50), + ceil: Perbill::from_percent(100), + }, + min_support: pallet_referenda::Curve::LinearDecreasing { + length: Perbill::from_percent(100), + floor: Perbill::from_percent(0), + ceil: Perbill::from_percent(100), + }, + }, + ), + ( + tracks::FELLOWS, + pallet_referenda::TrackInfo { + name: "fellows", + max_deciding: 10, + decision_deposit: 5 * DOLLARS, + prepare_period: 30 * MINUTES, + decision_period: 7 * DAYS, + confirm_period: 30 * MINUTES, + min_enactment_period: 5 * MINUTES, + min_approval: pallet_referenda::Curve::LinearDecreasing { + length: Perbill::from_percent(100), + floor: Perbill::from_percent(50), + ceil: Perbill::from_percent(100), + }, + min_support: pallet_referenda::Curve::LinearDecreasing { + length: Perbill::from_percent(100), + floor: Perbill::from_percent(0), + ceil: Perbill::from_percent(100), + }, + }, + ), + ( + tracks::ARCHITECTS, + pallet_referenda::TrackInfo { + name: "architects", + max_deciding: 10, + decision_deposit: 5 * DOLLARS, + prepare_period: 30 * MINUTES, + decision_period: 7 * DAYS, + confirm_period: 30 * MINUTES, + min_enactment_period: 5 * MINUTES, + min_approval: pallet_referenda::Curve::LinearDecreasing { + length: Perbill::from_percent(100), + floor: Perbill::from_percent(50), + ceil: Perbill::from_percent(100), + }, + min_support: pallet_referenda::Curve::LinearDecreasing { + length: Perbill::from_percent(100), + floor: Perbill::from_percent(0), + ceil: Perbill::from_percent(100), + }, + }, + ), + ( + tracks::ARCHITECTS_ADEPT, + pallet_referenda::TrackInfo { + name: "architects adept", + max_deciding: 10, + decision_deposit: 5 * DOLLARS, + prepare_period: 30 * MINUTES, + decision_period: 7 * DAYS, + confirm_period: 30 * MINUTES, + min_enactment_period: 5 * MINUTES, + min_approval: pallet_referenda::Curve::LinearDecreasing { + length: Perbill::from_percent(100), + floor: Perbill::from_percent(50), + ceil: Perbill::from_percent(100), + }, + min_support: pallet_referenda::Curve::LinearDecreasing { + length: Perbill::from_percent(100), + floor: Perbill::from_percent(0), + ceil: Perbill::from_percent(100), + }, + }, + ), + ( + tracks::GRAND_ARCHITECTS, + pallet_referenda::TrackInfo { + name: "grand architects", + max_deciding: 10, + decision_deposit: 5 * DOLLARS, + prepare_period: 30 * MINUTES, + decision_period: 7 * DAYS, + confirm_period: 30 * MINUTES, + min_enactment_period: 5 * MINUTES, + min_approval: pallet_referenda::Curve::LinearDecreasing { + length: Perbill::from_percent(100), + floor: Perbill::from_percent(50), + ceil: Perbill::from_percent(100), + }, + min_support: pallet_referenda::Curve::LinearDecreasing { + length: Perbill::from_percent(100), + floor: Perbill::from_percent(0), + ceil: Perbill::from_percent(100), + }, + }, + ), + ( + tracks::MASTERS, + pallet_referenda::TrackInfo { + name: "masters", + max_deciding: 10, + decision_deposit: 5 * DOLLARS, + prepare_period: 30 * MINUTES, + decision_period: 7 * DAYS, + confirm_period: 30 * MINUTES, + min_enactment_period: 5 * MINUTES, + min_approval: pallet_referenda::Curve::LinearDecreasing { + length: Perbill::from_percent(100), + floor: Perbill::from_percent(50), + ceil: Perbill::from_percent(100), + }, + min_support: pallet_referenda::Curve::LinearDecreasing { + length: Perbill::from_percent(100), + floor: Perbill::from_percent(0), + ceil: Perbill::from_percent(100), + }, + }, + ), + ( + tracks::MASTERS_CONSTANT, + pallet_referenda::TrackInfo { + name: "masters constant", + max_deciding: 10, + decision_deposit: 5 * DOLLARS, + prepare_period: 30 * MINUTES, + decision_period: 7 * DAYS, + confirm_period: 30 * MINUTES, + min_enactment_period: 5 * MINUTES, + min_approval: pallet_referenda::Curve::LinearDecreasing { + length: Perbill::from_percent(100), + floor: Perbill::from_percent(50), + ceil: Perbill::from_percent(100), + }, + min_support: pallet_referenda::Curve::LinearDecreasing { + length: Perbill::from_percent(100), + floor: Perbill::from_percent(0), + ceil: Perbill::from_percent(100), + }, + }, + ), + ( + tracks::GRAND_MASTERS, + pallet_referenda::TrackInfo { + name: "grand masters", + max_deciding: 10, + decision_deposit: 5 * DOLLARS, + prepare_period: 30 * MINUTES, + decision_period: 7 * DAYS, + confirm_period: 30 * MINUTES, + min_enactment_period: 5 * MINUTES, + min_approval: pallet_referenda::Curve::LinearDecreasing { + length: Perbill::from_percent(100), + floor: Perbill::from_percent(50), + ceil: Perbill::from_percent(100), + }, + min_support: pallet_referenda::Curve::LinearDecreasing { + length: Perbill::from_percent(100), + floor: Perbill::from_percent(0), + ceil: Perbill::from_percent(100), + }, + }, + ), + ( + tracks::RETAIN_AT_1DAN, + pallet_referenda::TrackInfo { + name: "retain at I Dan", + max_deciding: RETAIN_MAX_DECIDING, + decision_deposit: RETAIN_DECISION_DEPOSIT, + prepare_period: RETAIN_PREPARE_PERIOD, + decision_period: RETAIN_DECISION_PERIOD, + confirm_period: RETAIN_CONFIRM_PERIOD, + min_enactment_period: RETAIN_MIN_ENACTMENT_PERIOD, + min_approval: RETAIN_MIN_APPROVAL, + min_support: RETAIN_MIN_SUPPORT, + }, + ), + ( + tracks::RETAIN_AT_2DAN, + pallet_referenda::TrackInfo { + name: "retain at II Dan", + max_deciding: RETAIN_MAX_DECIDING, + decision_deposit: RETAIN_DECISION_DEPOSIT, + prepare_period: RETAIN_PREPARE_PERIOD, + decision_period: RETAIN_DECISION_PERIOD, + confirm_period: RETAIN_CONFIRM_PERIOD, + min_enactment_period: RETAIN_MIN_ENACTMENT_PERIOD, + min_approval: RETAIN_MIN_APPROVAL, + min_support: RETAIN_MIN_SUPPORT, + }, + ), + ( + tracks::RETAIN_AT_3DAN, + pallet_referenda::TrackInfo { + name: "retain at III Dan", + max_deciding: RETAIN_MAX_DECIDING, + decision_deposit: RETAIN_DECISION_DEPOSIT, + prepare_period: RETAIN_PREPARE_PERIOD, + decision_period: RETAIN_DECISION_PERIOD, + confirm_period: RETAIN_CONFIRM_PERIOD, + min_enactment_period: RETAIN_MIN_ENACTMENT_PERIOD, + min_approval: RETAIN_MIN_APPROVAL, + min_support: RETAIN_MIN_SUPPORT, + }, + ), + ( + tracks::RETAIN_AT_4DAN, + pallet_referenda::TrackInfo { + name: "retain at IV Dan", + max_deciding: RETAIN_MAX_DECIDING, + decision_deposit: RETAIN_DECISION_DEPOSIT, + prepare_period: RETAIN_PREPARE_PERIOD, + decision_period: RETAIN_DECISION_PERIOD, + confirm_period: RETAIN_CONFIRM_PERIOD, + min_enactment_period: RETAIN_MIN_ENACTMENT_PERIOD, + min_approval: RETAIN_MIN_APPROVAL, + min_support: RETAIN_MIN_SUPPORT, + }, + ), + ( + tracks::RETAIN_AT_5DAN, + pallet_referenda::TrackInfo { + name: "retain at V Dan", + max_deciding: RETAIN_MAX_DECIDING, + decision_deposit: RETAIN_DECISION_DEPOSIT, + prepare_period: RETAIN_PREPARE_PERIOD, + decision_period: RETAIN_DECISION_PERIOD, + confirm_period: RETAIN_CONFIRM_PERIOD, + min_enactment_period: RETAIN_MIN_ENACTMENT_PERIOD, + min_approval: RETAIN_MIN_APPROVAL, + min_support: RETAIN_MIN_SUPPORT, + }, + ), + ( + tracks::RETAIN_AT_6DAN, + pallet_referenda::TrackInfo { + name: "retain at VI Dan", + max_deciding: RETAIN_MAX_DECIDING, + decision_deposit: RETAIN_DECISION_DEPOSIT, + prepare_period: RETAIN_PREPARE_PERIOD, + decision_period: RETAIN_DECISION_PERIOD, + confirm_period: RETAIN_CONFIRM_PERIOD, + min_enactment_period: RETAIN_MIN_ENACTMENT_PERIOD, + min_approval: RETAIN_MIN_APPROVAL, + min_support: RETAIN_MIN_SUPPORT, + }, + ), + ( + tracks::PROMOTE_TO_1DAN, + pallet_referenda::TrackInfo { + name: "promote to I Dan", + max_deciding: PROMOTE_MAX_DECIDING, + decision_deposit: PROMOTE_DECISION_DEPOSIT, + prepare_period: PROMOTE_PREPARE_PERIOD, + decision_period: PROMOTE_DECISION_PERIOD, + confirm_period: PROMOTE_CONFIRM_PERIOD, + min_enactment_period: PROMOTE_MIN_ENACTMENT_PERIOD, + min_approval: PROMOTE_MIN_APPROVAL, + min_support: PROMOTE_MIN_SUPPORT, + }, + ), + ( + tracks::PROMOTE_TO_2DAN, + pallet_referenda::TrackInfo { + name: "promote to II Dan", + max_deciding: PROMOTE_MAX_DECIDING, + decision_deposit: PROMOTE_DECISION_DEPOSIT, + prepare_period: PROMOTE_PREPARE_PERIOD, + decision_period: PROMOTE_DECISION_PERIOD, + confirm_period: PROMOTE_CONFIRM_PERIOD, + min_enactment_period: PROMOTE_MIN_ENACTMENT_PERIOD, + min_approval: PROMOTE_MIN_APPROVAL, + min_support: PROMOTE_MIN_SUPPORT, + }, + ), + ( + tracks::PROMOTE_TO_3DAN, + pallet_referenda::TrackInfo { + name: "promote to III Dan", + max_deciding: PROMOTE_MAX_DECIDING, + decision_deposit: PROMOTE_DECISION_DEPOSIT, + prepare_period: PROMOTE_PREPARE_PERIOD, + decision_period: PROMOTE_DECISION_PERIOD, + confirm_period: PROMOTE_CONFIRM_PERIOD, + min_enactment_period: PROMOTE_MIN_ENACTMENT_PERIOD, + min_approval: PROMOTE_MIN_APPROVAL, + min_support: PROMOTE_MIN_SUPPORT, + }, + ), + ( + tracks::PROMOTE_TO_4DAN, + pallet_referenda::TrackInfo { + name: "promote to IV Dan", + max_deciding: PROMOTE_MAX_DECIDING, + decision_deposit: PROMOTE_DECISION_DEPOSIT, + prepare_period: PROMOTE_PREPARE_PERIOD, + decision_period: PROMOTE_DECISION_PERIOD, + confirm_period: PROMOTE_CONFIRM_PERIOD, + min_enactment_period: PROMOTE_MIN_ENACTMENT_PERIOD, + min_approval: PROMOTE_MIN_APPROVAL, + min_support: PROMOTE_MIN_SUPPORT, + }, + ), + ( + tracks::PROMOTE_TO_5DAN, + pallet_referenda::TrackInfo { + name: "promote to V Dan", + max_deciding: PROMOTE_MAX_DECIDING, + decision_deposit: PROMOTE_DECISION_DEPOSIT, + prepare_period: PROMOTE_PREPARE_PERIOD, + decision_period: PROMOTE_DECISION_PERIOD, + confirm_period: PROMOTE_CONFIRM_PERIOD, + min_enactment_period: PROMOTE_MIN_ENACTMENT_PERIOD, + min_approval: PROMOTE_MIN_APPROVAL, + min_support: PROMOTE_MIN_SUPPORT, + }, + ), + ( + tracks::PROMOTE_TO_6DAN, + pallet_referenda::TrackInfo { + name: "promote to VI Dan", + max_deciding: PROMOTE_MAX_DECIDING, + decision_deposit: PROMOTE_DECISION_DEPOSIT, + prepare_period: PROMOTE_PREPARE_PERIOD, + decision_period: PROMOTE_DECISION_PERIOD, + confirm_period: PROMOTE_CONFIRM_PERIOD, + min_enactment_period: PROMOTE_MIN_ENACTMENT_PERIOD, + min_approval: PROMOTE_MIN_APPROVAL, + min_support: PROMOTE_MIN_SUPPORT, + }, + ), + ]; + &DATA[..] + } + fn track_for(id: &Self::RuntimeOrigin) -> Result { + use super::origins::Origin; + use constants as tracks; + + #[cfg(feature = "runtime-benchmarks")] + { + // For benchmarks, we enable a root origin. + // It is important that this is not available in production! + let root: Self::RuntimeOrigin = frame_system::RawOrigin::Root.into(); + if &root == id { + return Ok(tracks::GRAND_MASTERS) + } + } + + match Origin::try_from(id.clone()) { + Ok(Origin::Members) => Ok(tracks::MEMBERS), + Ok(Origin::Fellowship2Dan) => Ok(tracks::PROFICIENTS), + Ok(Origin::Fellows) => Ok(tracks::FELLOWS), + Ok(Origin::Architects) => Ok(tracks::ARCHITECTS), + Ok(Origin::Fellowship5Dan) => Ok(tracks::ARCHITECTS_ADEPT), + Ok(Origin::Fellowship6Dan) => Ok(tracks::GRAND_ARCHITECTS), + Ok(Origin::Masters) => Ok(tracks::MASTERS), + Ok(Origin::Fellowship8Dan) => Ok(tracks::MASTERS_CONSTANT), + Ok(Origin::Fellowship9Dan) => Ok(tracks::GRAND_MASTERS), + + Ok(Origin::RetainAt1Dan) => Ok(tracks::RETAIN_AT_1DAN), + Ok(Origin::RetainAt2Dan) => Ok(tracks::RETAIN_AT_2DAN), + Ok(Origin::RetainAt3Dan) => Ok(tracks::RETAIN_AT_3DAN), + Ok(Origin::RetainAt4Dan) => Ok(tracks::RETAIN_AT_4DAN), + Ok(Origin::RetainAt5Dan) => Ok(tracks::RETAIN_AT_5DAN), + Ok(Origin::RetainAt6Dan) => Ok(tracks::RETAIN_AT_6DAN), + + Ok(Origin::PromoteTo1Dan) => Ok(tracks::PROMOTE_TO_1DAN), + Ok(Origin::PromoteTo2Dan) => Ok(tracks::PROMOTE_TO_2DAN), + Ok(Origin::PromoteTo3Dan) => Ok(tracks::PROMOTE_TO_3DAN), + Ok(Origin::PromoteTo4Dan) => Ok(tracks::PROMOTE_TO_4DAN), + Ok(Origin::PromoteTo5Dan) => Ok(tracks::PROMOTE_TO_5DAN), + Ok(Origin::PromoteTo6Dan) => Ok(tracks::PROMOTE_TO_6DAN), + + _ => Err(()), + } + } +} +pallet_referenda::impl_tracksinfo_get!(TracksInfo, Balance, BlockNumber); diff --git a/cumulus/parachains/runtimes/collectives/collectives-polkadot/src/impls.rs b/cumulus/parachains/runtimes/collectives/collectives-polkadot/src/impls.rs new file mode 100644 index 000000000000..9f4c2a6a4c94 --- /dev/null +++ b/cumulus/parachains/runtimes/collectives/collectives-polkadot/src/impls.rs @@ -0,0 +1,229 @@ +// 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 crate::OriginCaller; +use frame_support::{ + dispatch::DispatchResultWithPostInfo, + traits::{Currency, Get, Imbalance, OnUnbalanced, OriginTrait, PrivilegeCmp}, + weights::Weight, +}; +use log; +use pallet_alliance::{ProposalIndex, ProposalProvider}; +use parachains_common::impls::NegativeImbalance; +use sp_runtime::DispatchError; +use sp_std::{cmp::Ordering, marker::PhantomData, prelude::*}; +use xcm::latest::{Fungibility, Junction, Parent}; + +type AccountIdOf = ::AccountId; + +type ProposalOf = >::Proposal; + +type HashOf = ::Hash; + +/// Type alias to conveniently refer to the `Currency::Balance` associated type. +pub type BalanceOf = + as Currency<::AccountId>>::Balance; + +/// Implements `OnUnbalanced::on_unbalanced` to teleport slashed assets to relay chain treasury +/// account. +pub struct ToParentTreasury( + PhantomData<(TreasuryAccount, PalletAccount, T)>, +); + +impl OnUnbalanced> + for ToParentTreasury +where + T: pallet_balances::Config + pallet_xcm::Config + frame_system::Config, + <::RuntimeOrigin as OriginTrait>::AccountId: From>, + [u8; 32]: From<::AccountId>, + TreasuryAccount: Get>, + PalletAccount: Get>, + BalanceOf: Into, +{ + fn on_unbalanced(amount: NegativeImbalance) { + let amount = match amount.drop_zero() { + Ok(..) => return, + Err(amount) => amount, + }; + let imbalance = amount.peek(); + let pallet_acc: AccountIdOf = PalletAccount::get(); + let treasury_acc: AccountIdOf = TreasuryAccount::get(); + + >::resolve_creating(&pallet_acc, amount); + + let result = >::teleport_assets( + <::RuntimeOrigin>::signed(pallet_acc.into()), + Box::new(Parent.into()), + Box::new( + Junction::AccountId32 { network: None, id: treasury_acc.into() } + .into_location() + .into(), + ), + Box::new((Parent, imbalance).into()), + 0, + ); + + if let Err(err) = result { + log::warn!("Failed to teleport slashed assets: {:?}", err); + } + } +} + +/// Proposal provider for alliance pallet. +/// Adapter from collective pallet to alliance proposal provider trait. +pub struct AllianceProposalProvider(PhantomData<(T, I)>); + +impl ProposalProvider, HashOf, ProposalOf> + for AllianceProposalProvider +where + T: pallet_collective::Config + frame_system::Config, + I: 'static, +{ + fn propose_proposal( + who: AccountIdOf, + threshold: u32, + proposal: Box>, + length_bound: u32, + ) -> Result<(u32, u32), DispatchError> { + pallet_collective::Pallet::::do_propose_proposed( + who, + threshold, + proposal, + length_bound, + ) + } + + fn vote_proposal( + who: AccountIdOf, + proposal: HashOf, + index: ProposalIndex, + approve: bool, + ) -> Result { + pallet_collective::Pallet::::do_vote(who, proposal, index, approve) + } + + fn close_proposal( + proposal_hash: HashOf, + proposal_index: ProposalIndex, + proposal_weight_bound: Weight, + length_bound: u32, + ) -> DispatchResultWithPostInfo { + pallet_collective::Pallet::::do_close( + proposal_hash, + proposal_index, + proposal_weight_bound, + length_bound, + ) + } + + fn proposal_of(proposal_hash: HashOf) -> Option> { + pallet_collective::Pallet::::proposal_of(proposal_hash) + } +} + +/// Used to compare the privilege of an origin inside the scheduler. +pub struct EqualOrGreatestRootCmp; + +impl PrivilegeCmp for EqualOrGreatestRootCmp { + fn cmp_privilege(left: &OriginCaller, right: &OriginCaller) -> Option { + if left == right { + return Some(Ordering::Equal) + } + match (left, right) { + // Root is greater than anything. + (OriginCaller::system(frame_system::RawOrigin::Root), _) => Some(Ordering::Greater), + _ => None, + } + } +} + +#[cfg(feature = "runtime-benchmarks")] +pub mod benchmarks { + use super::*; + use crate::ParachainSystem; + use cumulus_primitives_core::{ChannelStatus, GetChannelInfo}; + use frame_support::traits::{ + fungible, + tokens::{Pay, PaymentStatus}, + }; + use pallet_ranked_collective::Rank; + use parachains_common::{AccountId, Balance}; + use sp_runtime::traits::Convert; + + /// Rank to salary conversion helper type. + pub struct RankToSalary(PhantomData); + impl Convert for RankToSalary + where + Fungible: fungible::Inspect, + { + fn convert(r: Rank) -> Balance { + Balance::from(r).saturating_mul(Fungible::minimum_balance()) + } + } + + /// Trait for setting up any prerequisites for successful execution of benchmarks. + pub trait EnsureSuccessful { + fn ensure_successful(); + } + + /// Implementation of the [`EnsureSuccessful`] trait which opens an HRMP channel between + /// the Collectives and a parachain with a given ID. + pub struct OpenHrmpChannel(PhantomData); + impl> EnsureSuccessful for OpenHrmpChannel { + fn ensure_successful() { + if let ChannelStatus::Closed = ParachainSystem::get_channel_status(I::get().into()) { + ParachainSystem::open_outbound_hrmp_channel_for_benchmarks_or_tests(I::get().into()) + } + } + } + + /// Type that wraps a type implementing the [`Pay`] trait to decorate its + /// [`Pay::ensure_successful`] function with a provided implementation of the + /// [`EnsureSuccessful`] trait. + pub struct PayWithEnsure(PhantomData<(O, E)>); + impl Pay for PayWithEnsure + where + O: Pay, + E: EnsureSuccessful, + { + type AssetKind = O::AssetKind; + type Balance = O::Balance; + type Beneficiary = O::Beneficiary; + type Error = O::Error; + type Id = O::Id; + + fn pay( + who: &Self::Beneficiary, + asset_kind: Self::AssetKind, + amount: Self::Balance, + ) -> Result { + O::pay(who, asset_kind, amount) + } + fn check_payment(id: Self::Id) -> PaymentStatus { + O::check_payment(id) + } + fn ensure_successful( + who: &Self::Beneficiary, + asset_kind: Self::AssetKind, + amount: Self::Balance, + ) { + E::ensure_successful(); + O::ensure_successful(who, asset_kind, amount) + } + fn ensure_concluded(id: Self::Id) { + O::ensure_concluded(id) + } + } +} diff --git a/cumulus/parachains/runtimes/collectives/collectives-polkadot/src/lib.rs b/cumulus/parachains/runtimes/collectives/collectives-polkadot/src/lib.rs new file mode 100644 index 000000000000..edfbfa851fe3 --- /dev/null +++ b/cumulus/parachains/runtimes/collectives/collectives-polkadot/src/lib.rs @@ -0,0 +1,975 @@ +// 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. + +//! # Collectives Parachain +//! +//! This parachain is for collectives that serve the Polkadot network. +//! Each collective is defined by a specialized (possibly instanced) pallet. +//! +//! ### Governance +//! +//! As a system parachain, Collectives defers its governance (namely, its `Root` origin), to +//! its Relay Chain parent, Polkadot. +//! +//! ### Collator Selection +//! +//! Collectives uses `pallet-collator-selection`, a simple first-come-first-served registration +//! system where collators can reserve a small bond to join the block producer set. There is no +//! slashing. Collective members are generally expected to run collators. + +#![cfg_attr(not(feature = "std"), no_std)] +#![recursion_limit = "256"] + +// Make the WASM binary available. +#[cfg(feature = "std")] +include!(concat!(env!("OUT_DIR"), "/wasm_binary.rs")); + +pub mod ambassador; +pub mod impls; +mod weights; +pub mod xcm_config; +// Fellowship configurations. +pub mod fellowship; +pub use ambassador::pallet_ambassador_origins; + +use cumulus_pallet_parachain_system::RelayNumberStrictlyIncreases; +use cumulus_primitives_core::ParaId; +use fellowship::{ + migration::import_kusama_fellowship, pallet_fellowship_origins, Fellows, + FellowshipCollectiveInstance, +}; +use impls::{AllianceProposalProvider, EqualOrGreatestRootCmp, ToParentTreasury}; +use sp_api::impl_runtime_apis; +use sp_core::{crypto::KeyTypeId, OpaqueMetadata}; +use sp_runtime::{ + create_runtime_str, generic, impl_opaque_keys, + traits::{AccountIdConversion, AccountIdLookup, BlakeTwo256, Block as BlockT}, + transaction_validity::{TransactionSource, TransactionValidity}, + ApplyExtrinsicResult, Perbill, +}; + +use sp_std::prelude::*; +#[cfg(feature = "std")] +use sp_version::NativeVersion; +use sp_version::RuntimeVersion; + +use codec::{Decode, Encode, MaxEncodedLen}; +use frame_support::{ + construct_runtime, + dispatch::DispatchClass, + genesis_builder_helper::{build_config, create_default_config}, + parameter_types, + traits::{ + fungible::HoldConsideration, ConstBool, ConstU16, ConstU32, ConstU64, ConstU8, + EitherOfDiverse, InstanceFilter, LinearStoragePrice, + }, + weights::{ConstantMultiplier, Weight}, + PalletId, +}; +use frame_system::{ + limits::{BlockLength, BlockWeights}, + EnsureRoot, +}; +pub use parachains_common as common; +use parachains_common::{ + impls::DealWithFees, + polkadot::{account::*, consensus::*, currency::*, fee::WeightToFee}, + AccountId, AuraId, Balance, BlockNumber, Hash, Header, Nonce, Signature, + AVERAGE_ON_INITIALIZE_RATIO, DAYS, HOURS, MAXIMUM_BLOCK_WEIGHT, MINUTES, NORMAL_DISPATCH_RATIO, + SLOT_DURATION, +}; +use sp_runtime::RuntimeDebug; +use xcm_config::{GovernanceLocation, XcmConfig, XcmOriginToTransactDispatchOrigin}; + +#[cfg(any(feature = "std", test))] +pub use sp_runtime::BuildStorage; + +// Polkadot imports +use pallet_xcm::{EnsureXcm, IsVoiceOfBody}; +use polkadot_runtime_common::{BlockHashCount, SlowAdjustingFeeUpdate}; +use xcm::latest::prelude::*; +use xcm_executor::XcmExecutor; + +use weights::{BlockExecutionWeight, ExtrinsicBaseWeight, RocksDbWeight}; + +impl_opaque_keys! { + pub struct SessionKeys { + pub aura: Aura, + } +} + +#[sp_version::runtime_version] +pub const VERSION: RuntimeVersion = RuntimeVersion { + spec_name: create_runtime_str!("collectives"), + impl_name: create_runtime_str!("collectives"), + authoring_version: 1, + spec_version: 10000, + impl_version: 0, + apis: RUNTIME_API_VERSIONS, + transaction_version: 5, + state_version: 0, +}; + +/// The version information used to identify this runtime when compiled natively. +#[cfg(feature = "std")] +pub fn native_version() -> NativeVersion { + NativeVersion { runtime_version: VERSION, can_author_with: Default::default() } +} + +/// Privileged origin that represents Root or more than two thirds of the Alliance. +pub type RootOrAllianceTwoThirdsMajority = EitherOfDiverse< + EnsureRoot, + pallet_collective::EnsureProportionMoreThan, +>; + +parameter_types! { + pub const Version: RuntimeVersion = VERSION; + pub RuntimeBlockLength: BlockLength = + BlockLength::max_with_normal_ratio(5 * 1024 * 1024, NORMAL_DISPATCH_RATIO); + pub RuntimeBlockWeights: BlockWeights = BlockWeights::builder() + .base_block(BlockExecutionWeight::get()) + .for_class(DispatchClass::all(), |weights| { + weights.base_extrinsic = ExtrinsicBaseWeight::get(); + }) + .for_class(DispatchClass::Normal, |weights| { + weights.max_total = Some(NORMAL_DISPATCH_RATIO * MAXIMUM_BLOCK_WEIGHT); + }) + .for_class(DispatchClass::Operational, |weights| { + weights.max_total = Some(MAXIMUM_BLOCK_WEIGHT); + // Operational transactions have some extra reserved space, so that they + // are included even if block reached `MAXIMUM_BLOCK_WEIGHT`. + weights.reserved = Some( + MAXIMUM_BLOCK_WEIGHT - NORMAL_DISPATCH_RATIO * MAXIMUM_BLOCK_WEIGHT + ); + }) + .avg_block_initialization(AVERAGE_ON_INITIALIZE_RATIO) + .build_or_panic(); +} + +// Configure FRAME pallets to include in runtime. +impl frame_system::Config for Runtime { + type BaseCallFilter = frame_support::traits::Everything; + type BlockWeights = RuntimeBlockWeights; + type BlockLength = RuntimeBlockLength; + type AccountId = AccountId; + type RuntimeCall = RuntimeCall; + type Lookup = AccountIdLookup; + type Nonce = Nonce; + type Hash = Hash; + type Hashing = BlakeTwo256; + type Block = Block; + type RuntimeEvent = RuntimeEvent; + type RuntimeOrigin = RuntimeOrigin; + type BlockHashCount = BlockHashCount; + type DbWeight = RocksDbWeight; + type Version = Version; + type PalletInfo = PalletInfo; + type OnNewAccount = (); + type OnKilledAccount = (); + type AccountData = pallet_balances::AccountData; + type SystemWeightInfo = weights::frame_system::WeightInfo; + type SS58Prefix = ConstU16<0>; + type OnSetCode = cumulus_pallet_parachain_system::ParachainSetCode; + type MaxConsumers = frame_support::traits::ConstU32<16>; +} + +impl pallet_timestamp::Config for Runtime { + /// A timestamp: milliseconds since the unix epoch. + type Moment = u64; + type OnTimestampSet = Aura; + type MinimumPeriod = ConstU64<{ SLOT_DURATION / 2 }>; + type WeightInfo = weights::pallet_timestamp::WeightInfo; +} + +impl pallet_authorship::Config for Runtime { + type FindAuthor = pallet_session::FindAccountFromAuthorIndex; + type EventHandler = (CollatorSelection,); +} + +parameter_types! { + pub const ExistentialDeposit: Balance = EXISTENTIAL_DEPOSIT; +} + +impl pallet_balances::Config for Runtime { + type MaxLocks = ConstU32<50>; + /// The type for recording an account's balance. + type Balance = Balance; + /// The ubiquitous event type. + type RuntimeEvent = RuntimeEvent; + type DustRemoval = (); + type ExistentialDeposit = ExistentialDeposit; + type AccountStore = System; + type WeightInfo = weights::pallet_balances::WeightInfo; + type MaxReserves = ConstU32<50>; + type ReserveIdentifier = [u8; 8]; + type RuntimeHoldReason = RuntimeHoldReason; + type RuntimeFreezeReason = RuntimeFreezeReason; + type FreezeIdentifier = (); + type MaxHolds = ConstU32<1>; + type MaxFreezes = ConstU32<0>; +} + +parameter_types! { + /// Relay Chain `TransactionByteFee` / 10 + pub const TransactionByteFee: Balance = MILLICENTS; +} + +impl pallet_transaction_payment::Config for Runtime { + type RuntimeEvent = RuntimeEvent; + type OnChargeTransaction = + pallet_transaction_payment::CurrencyAdapter>; + type WeightToFee = WeightToFee; + type LengthToFee = ConstantMultiplier; + type FeeMultiplierUpdate = SlowAdjustingFeeUpdate; + type OperationalFeeMultiplier = ConstU8<5>; +} + +parameter_types! { + // One storage item; key size is 32; value is size 4+4+16+32 bytes = 56 bytes. + pub const DepositBase: Balance = deposit(1, 88); + // Additional storage item size of 32 bytes. + pub const DepositFactor: Balance = deposit(0, 32); +} + +impl pallet_multisig::Config for Runtime { + type RuntimeEvent = RuntimeEvent; + type RuntimeCall = RuntimeCall; + type Currency = Balances; + type DepositBase = DepositBase; + type DepositFactor = DepositFactor; + type MaxSignatories = ConstU32<100>; + type WeightInfo = weights::pallet_multisig::WeightInfo; +} + +impl pallet_utility::Config for Runtime { + type RuntimeEvent = RuntimeEvent; + type RuntimeCall = RuntimeCall; + type PalletsOrigin = OriginCaller; + type WeightInfo = weights::pallet_utility::WeightInfo; +} + +parameter_types! { + // One storage item; key size 32, value size 8; . + pub const ProxyDepositBase: Balance = deposit(1, 40); + // Additional storage item size of 33 bytes. + pub const ProxyDepositFactor: Balance = deposit(0, 33); + // One storage item; key size 32, value size 16 + pub const AnnouncementDepositBase: Balance = deposit(1, 48); + pub const AnnouncementDepositFactor: Balance = deposit(0, 66); +} + +/// The type used to represent the kinds of proxying allowed. +#[derive( + Copy, + Clone, + Eq, + PartialEq, + Ord, + PartialOrd, + Encode, + Decode, + RuntimeDebug, + MaxEncodedLen, + scale_info::TypeInfo, +)] +pub enum ProxyType { + /// Fully permissioned proxy. Can execute any call on behalf of _proxied_. + Any, + /// Can execute any call that does not transfer funds. + NonTransfer, + /// Proxy with the ability to reject time-delay proxy announcements. + CancelProxy, + /// Collator selection proxy. Can execute calls related to collator selection mechanism. + Collator, + /// Alliance proxy. Allows calls related to the Alliance. + Alliance, + /// Fellowship proxy. Allows calls related to the Fellowship. + Fellowship, + /// Ambassador proxy. Allows calls related to the Ambassador Program. + Ambassador, +} +impl Default for ProxyType { + fn default() -> Self { + Self::Any + } +} +impl InstanceFilter for ProxyType { + fn filter(&self, c: &RuntimeCall) -> bool { + match self { + ProxyType::Any => true, + ProxyType::NonTransfer => !matches!(c, RuntimeCall::Balances { .. }), + ProxyType::CancelProxy => matches!( + c, + RuntimeCall::Proxy(pallet_proxy::Call::reject_announcement { .. }) | + RuntimeCall::Utility { .. } | + RuntimeCall::Multisig { .. } + ), + ProxyType::Collator => matches!( + c, + RuntimeCall::CollatorSelection { .. } | + RuntimeCall::Utility { .. } | + RuntimeCall::Multisig { .. } + ), + ProxyType::Alliance => matches!( + c, + RuntimeCall::AllianceMotion { .. } | + RuntimeCall::Alliance { .. } | + RuntimeCall::Utility { .. } | + RuntimeCall::Multisig { .. } + ), + ProxyType::Fellowship => matches!( + c, + RuntimeCall::FellowshipCollective { .. } | + RuntimeCall::FellowshipReferenda { .. } | + RuntimeCall::FellowshipCore { .. } | + RuntimeCall::FellowshipSalary { .. } | + RuntimeCall::Utility { .. } | + RuntimeCall::Multisig { .. } + ), + ProxyType::Ambassador => matches!( + c, + RuntimeCall::AmbassadorCollective { .. } | + RuntimeCall::AmbassadorReferenda { .. } | + RuntimeCall::AmbassadorContent { .. } | + RuntimeCall::AmbassadorCore { .. } | + RuntimeCall::AmbassadorSalary { .. } | + RuntimeCall::Utility { .. } | + RuntimeCall::Multisig { .. } + ), + } + } + fn is_superset(&self, o: &Self) -> bool { + match (self, o) { + (x, y) if x == y => true, + (ProxyType::Any, _) => true, + (_, ProxyType::Any) => false, + (ProxyType::NonTransfer, _) => true, + _ => false, + } + } +} + +impl pallet_proxy::Config for Runtime { + type RuntimeEvent = RuntimeEvent; + type RuntimeCall = RuntimeCall; + type Currency = Balances; + type ProxyType = ProxyType; + type ProxyDepositBase = ProxyDepositBase; + type ProxyDepositFactor = ProxyDepositFactor; + type MaxProxies = ConstU32<32>; + type WeightInfo = weights::pallet_proxy::WeightInfo; + type MaxPending = ConstU32<32>; + type CallHasher = BlakeTwo256; + type AnnouncementDepositBase = AnnouncementDepositBase; + type AnnouncementDepositFactor = AnnouncementDepositFactor; +} + +parameter_types! { + pub const ReservedXcmpWeight: Weight = MAXIMUM_BLOCK_WEIGHT.saturating_div(4); + pub const ReservedDmpWeight: Weight = MAXIMUM_BLOCK_WEIGHT.saturating_div(4); +} + +impl cumulus_pallet_parachain_system::Config for Runtime { + type RuntimeEvent = RuntimeEvent; + type OnSystemEvent = (); + type SelfParaId = parachain_info::Pallet; + type DmpMessageHandler = DmpQueue; + type ReservedDmpWeight = ReservedDmpWeight; + type OutboundXcmpMessageSource = XcmpQueue; + type XcmpMessageHandler = XcmpQueue; + type ReservedXcmpWeight = ReservedXcmpWeight; + type CheckAssociatedRelayNumber = RelayNumberStrictlyIncreases; + type ConsensusHook = cumulus_pallet_aura_ext::FixedVelocityConsensusHook< + Runtime, + RELAY_CHAIN_SLOT_DURATION_MILLIS, + BLOCK_PROCESSING_VELOCITY, + UNINCLUDED_SEGMENT_CAPACITY, + >; +} + +impl parachain_info::Config for Runtime {} + +impl cumulus_pallet_aura_ext::Config for Runtime {} + +parameter_types! { + /// The asset ID for the asset that we use to pay for message delivery fees. + pub FeeAssetId: AssetId = Concrete(xcm_config::DotLocation::get()); + /// The base fee for the message delivery fees. + pub const BaseDeliveryFee: u128 = CENTS.saturating_mul(3); +} + +pub type PriceForSiblingParachainDelivery = polkadot_runtime_common::xcm_sender::ExponentialPrice< + FeeAssetId, + BaseDeliveryFee, + TransactionByteFee, + XcmpQueue, +>; + +impl cumulus_pallet_xcmp_queue::Config for Runtime { + type RuntimeEvent = RuntimeEvent; + type XcmExecutor = XcmExecutor; + type ChannelInfo = ParachainSystem; + type VersionWrapper = PolkadotXcm; + type ExecuteOverweightOrigin = EnsureRoot; + type ControllerOrigin = EitherOfDiverse, Fellows>; + type ControllerOriginConverter = XcmOriginToTransactDispatchOrigin; + type WeightInfo = weights::cumulus_pallet_xcmp_queue::WeightInfo; + type PriceForSiblingDelivery = + polkadot_runtime_common::xcm_sender::NoPriceForMessageDelivery; +} + +impl cumulus_pallet_dmp_queue::Config for Runtime { + type RuntimeEvent = RuntimeEvent; + type XcmExecutor = XcmExecutor; + type ExecuteOverweightOrigin = EnsureRoot; +} + +pub const PERIOD: u32 = 6 * HOURS; +pub const OFFSET: u32 = 0; + +impl pallet_session::Config for Runtime { + type RuntimeEvent = RuntimeEvent; + type ValidatorId = ::AccountId; + // we don't have stash and controller, thus we don't need the convert as well. + type ValidatorIdOf = pallet_collator_selection::IdentityCollator; + type ShouldEndSession = pallet_session::PeriodicSessions, ConstU32>; + type NextSessionRotation = pallet_session::PeriodicSessions, ConstU32>; + type SessionManager = CollatorSelection; + // Essentially just Aura, but let's be pedantic. + type SessionHandler = ::KeyTypeIdProviders; + type Keys = SessionKeys; + type WeightInfo = weights::pallet_session::WeightInfo; +} + +impl pallet_aura::Config for Runtime { + type AuthorityId = AuraId; + type DisabledValidators = (); + type MaxAuthorities = ConstU32<100_000>; + type AllowMultipleBlocksPerSlot = ConstBool; + #[cfg(feature = "experimental")] + type SlotDuration = pallet_aura::MinimumPeriodTimesTwo; +} + +parameter_types! { + pub const PotId: PalletId = PalletId(*b"PotStake"); + pub const SessionLength: BlockNumber = 6 * HOURS; + // `StakingAdmin` pluralistic body. + pub const StakingAdminBodyId: BodyId = BodyId::Defense; +} + +/// We allow root and the `StakingAdmin` to execute privileged collator selection operations. +pub type CollatorSelectionUpdateOrigin = EitherOfDiverse< + EnsureRoot, + EnsureXcm>, +>; + +impl pallet_collator_selection::Config for Runtime { + type RuntimeEvent = RuntimeEvent; + type Currency = Balances; + type UpdateOrigin = CollatorSelectionUpdateOrigin; + type PotId = PotId; + type MaxCandidates = ConstU32<100>; + type MinEligibleCollators = ConstU32<4>; + type MaxInvulnerables = ConstU32<20>; + // should be a multiple of session or things will get inconsistent + type KickThreshold = ConstU32; + type ValidatorId = ::AccountId; + type ValidatorIdOf = pallet_collator_selection::IdentityCollator; + type ValidatorRegistration = Session; + type WeightInfo = weights::pallet_collator_selection::WeightInfo; +} + +pub const ALLIANCE_MOTION_DURATION: BlockNumber = 5 * DAYS; + +parameter_types! { + pub const AllianceMotionDuration: BlockNumber = ALLIANCE_MOTION_DURATION; + pub MaxProposalWeight: Weight = Perbill::from_percent(50) * RuntimeBlockWeights::get().max_block; +} +pub const ALLIANCE_MAX_PROPOSALS: u32 = 100; +pub const ALLIANCE_MAX_MEMBERS: u32 = 100; + +type AllianceCollective = pallet_collective::Instance1; +impl pallet_collective::Config for Runtime { + type RuntimeOrigin = RuntimeOrigin; + type Proposal = RuntimeCall; + type RuntimeEvent = RuntimeEvent; + type MotionDuration = AllianceMotionDuration; + type MaxProposals = ConstU32; + type MaxMembers = ConstU32; + type DefaultVote = pallet_collective::MoreThanMajorityThenPrimeDefaultVote; + type SetMembersOrigin = EnsureRoot; + type WeightInfo = weights::pallet_collective::WeightInfo; + type MaxProposalWeight = MaxProposalWeight; +} + +pub const MAX_FELLOWS: u32 = ALLIANCE_MAX_MEMBERS; +pub const MAX_ALLIES: u32 = 100; + +parameter_types! { + pub const AllyDeposit: Balance = 1_000 * UNITS; // 1,000 DOT bond to join as an Ally + // The Alliance pallet account, used as a temporary place to deposit a slashed imbalance + // before the teleport to the Treasury. + pub AlliancePalletAccount: AccountId = ALLIANCE_PALLET_ID.into_account_truncating(); + pub PolkadotTreasuryAccount: AccountId = POLKADOT_TREASURY_PALLET_ID.into_account_truncating(); + // The number of blocks a member must wait between giving a retirement notice and retiring. + // Supposed to be greater than time required to `kick_member` with alliance motion. + pub const AllianceRetirementPeriod: BlockNumber = (90 * DAYS) + ALLIANCE_MOTION_DURATION; +} + +impl pallet_alliance::Config for Runtime { + type RuntimeEvent = RuntimeEvent; + type Proposal = RuntimeCall; + type AdminOrigin = RootOrAllianceTwoThirdsMajority; + type MembershipManager = RootOrAllianceTwoThirdsMajority; + type AnnouncementOrigin = RootOrAllianceTwoThirdsMajority; + type Currency = Balances; + type Slashed = ToParentTreasury; + type InitializeMembers = AllianceMotion; + type MembershipChanged = AllianceMotion; + type RetirementPeriod = AllianceRetirementPeriod; + type IdentityVerifier = (); // Don't block accounts on identity criteria + type ProposalProvider = AllianceProposalProvider; + type MaxProposals = ConstU32; + type MaxFellows = ConstU32; + type MaxAllies = ConstU32; + type MaxUnscrupulousItems = ConstU32<100>; + type MaxWebsiteUrlLength = ConstU32<255>; + type MaxAnnouncementsCount = ConstU32<100>; + type MaxMembersCount = ConstU32; + type AllyDeposit = AllyDeposit; + type WeightInfo = weights::pallet_alliance::WeightInfo; +} + +parameter_types! { + pub MaximumSchedulerWeight: Weight = Perbill::from_percent(80) * RuntimeBlockWeights::get().max_block; +} + +#[cfg(not(feature = "runtime-benchmarks"))] +parameter_types! { + pub const MaxScheduledPerBlock: u32 = 50; +} + +#[cfg(feature = "runtime-benchmarks")] +parameter_types! { + pub const MaxScheduledPerBlock: u32 = 200; +} + +impl pallet_scheduler::Config for Runtime { + type RuntimeOrigin = RuntimeOrigin; + type RuntimeEvent = RuntimeEvent; + type PalletsOrigin = OriginCaller; + type RuntimeCall = RuntimeCall; + type MaximumWeight = MaximumSchedulerWeight; + type ScheduleOrigin = EnsureRoot; + type MaxScheduledPerBlock = MaxScheduledPerBlock; + type WeightInfo = weights::pallet_scheduler::WeightInfo; + type OriginPrivilegeCmp = EqualOrGreatestRootCmp; + type Preimages = Preimage; +} + +parameter_types! { + pub const PreimageBaseDeposit: Balance = deposit(2, 64); + pub const PreimageByteDeposit: Balance = deposit(0, 1); + pub const PreimageHoldReason: RuntimeHoldReason = RuntimeHoldReason::Preimage(pallet_preimage::HoldReason::Preimage); +} + +impl pallet_preimage::Config for Runtime { + type WeightInfo = weights::pallet_preimage::WeightInfo; + type RuntimeEvent = RuntimeEvent; + type Currency = Balances; + type ManagerOrigin = EnsureRoot; + type Consideration = HoldConsideration< + AccountId, + Balances, + PreimageHoldReason, + LinearStoragePrice, + >; +} + +// Create the runtime by composing the FRAME pallets that were previously configured. +construct_runtime!( + pub enum Runtime + { + // System support stuff. + System: frame_system::{Pallet, Call, Config, Storage, Event} = 0, + ParachainSystem: cumulus_pallet_parachain_system::{ + Pallet, Call, Config, Storage, Inherent, Event, ValidateUnsigned, + } = 1, + Timestamp: pallet_timestamp::{Pallet, Call, Storage, Inherent} = 2, + ParachainInfo: parachain_info::{Pallet, Storage, Config} = 3, + + // Monetary stuff. + Balances: pallet_balances::{Pallet, Call, Storage, Config, Event} = 10, + TransactionPayment: pallet_transaction_payment::{Pallet, Storage, Event} = 11, + + // Collator support. the order of these 5 are important and shall not change. + Authorship: pallet_authorship::{Pallet, Storage} = 20, + CollatorSelection: pallet_collator_selection::{Pallet, Call, Storage, Event, Config} = 21, + Session: pallet_session::{Pallet, Call, Storage, Event, Config} = 22, + Aura: pallet_aura::{Pallet, Storage, Config} = 23, + AuraExt: cumulus_pallet_aura_ext::{Pallet, Storage, Config} = 24, + + // XCM helpers. + XcmpQueue: cumulus_pallet_xcmp_queue::{Pallet, Call, Storage, Event} = 30, + PolkadotXcm: pallet_xcm::{Pallet, Call, Storage, Event, Origin, Config} = 31, + CumulusXcm: cumulus_pallet_xcm::{Pallet, Event, Origin} = 32, + DmpQueue: cumulus_pallet_dmp_queue::{Pallet, Call, Storage, Event} = 33, + + // Handy utilities. + Utility: pallet_utility::{Pallet, Call, Event} = 40, + Multisig: pallet_multisig::{Pallet, Call, Storage, Event} = 41, + Proxy: pallet_proxy::{Pallet, Call, Storage, Event} = 42, + Preimage: pallet_preimage::{Pallet, Call, Storage, Event, HoldReason} = 43, + Scheduler: pallet_scheduler::{Pallet, Call, Storage, Event} = 44, + + // The main stage. + + // The Alliance. + Alliance: pallet_alliance::{Pallet, Call, Storage, Event, Config} = 50, + AllianceMotion: pallet_collective::::{Pallet, Call, Storage, Origin, Event, Config} = 51, + + // The Fellowship. + // pub type FellowshipCollectiveInstance = pallet_ranked_collective::Instance1; + FellowshipCollective: pallet_ranked_collective::::{Pallet, Call, Storage, Event} = 60, + // pub type FellowshipReferendaInstance = pallet_referenda::Instance1; + FellowshipReferenda: pallet_referenda::::{Pallet, Call, Storage, Event} = 61, + FellowshipOrigins: pallet_fellowship_origins::{Origin} = 62, + // pub type FellowshipCoreInstance = pallet_core_fellowship::Instance1; + FellowshipCore: pallet_core_fellowship::::{Pallet, Call, Storage, Event} = 63, + // pub type FellowshipSalaryInstance = pallet_salary::Instance1; + FellowshipSalary: pallet_salary::::{Pallet, Call, Storage, Event} = 64, + + // Ambassador Program. + AmbassadorCollective: pallet_ranked_collective::::{Pallet, Call, Storage, Event} = 70, + AmbassadorReferenda: pallet_referenda::::{Pallet, Call, Storage, Event} = 71, + AmbassadorOrigins: pallet_ambassador_origins::{Origin} = 72, + AmbassadorCore: pallet_core_fellowship::::{Pallet, Call, Storage, Event} = 73, + AmbassadorSalary: pallet_salary::::{Pallet, Call, Storage, Event} = 74, + AmbassadorContent: pallet_collective_content::::{Pallet, Call, Storage, Event} = 75, + } +); + +/// The address format for describing accounts. +pub type Address = sp_runtime::MultiAddress; +/// Block type as expected by this runtime. +pub type Block = generic::Block; +/// A Block signed with a Justification +pub type SignedBlock = generic::SignedBlock; +/// BlockId type as expected by this runtime. +pub type BlockId = generic::BlockId; +/// The SignedExtension to the basic transaction logic. +pub type SignedExtra = ( + frame_system::CheckNonZeroSender, + frame_system::CheckSpecVersion, + frame_system::CheckTxVersion, + frame_system::CheckGenesis, + frame_system::CheckEra, + frame_system::CheckNonce, + frame_system::CheckWeight, +); +/// Unchecked extrinsic type as expected by this runtime. +pub type UncheckedExtrinsic = + generic::UncheckedExtrinsic; +/// All migrations executed on runtime upgrade as a nested tuple of types implementing +/// `OnRuntimeUpgrade`. Included migrations must be idempotent. +type Migrations = ( + // v9420 + import_kusama_fellowship::Migration, + // unreleased + pallet_collator_selection::migration::v1::MigrateToV1, +); + +/// Executive: handles dispatch to the various modules. +pub type Executive = frame_executive::Executive< + Runtime, + Block, + frame_system::ChainContext, + Runtime, + AllPalletsWithSystem, + Migrations, +>; + +#[cfg(feature = "runtime-benchmarks")] +#[macro_use] +extern crate frame_benchmarking; + +#[cfg(feature = "runtime-benchmarks")] +mod benches { + define_benchmarks!( + [frame_system, SystemBench::] + [pallet_balances, Balances] + [pallet_multisig, Multisig] + [pallet_proxy, Proxy] + [pallet_session, SessionBench::] + [pallet_utility, Utility] + [pallet_timestamp, Timestamp] + [pallet_collator_selection, CollatorSelection] + [cumulus_pallet_xcmp_queue, XcmpQueue] + [pallet_alliance, Alliance] + [pallet_collective, AllianceMotion] + [pallet_xcm, PolkadotXcm] + [pallet_preimage, Preimage] + [pallet_scheduler, Scheduler] + [pallet_referenda, FellowshipReferenda] + [pallet_ranked_collective, FellowshipCollective] + [pallet_core_fellowship, FellowshipCore] + [pallet_salary, FellowshipSalary] + [pallet_referenda, AmbassadorReferenda] + [pallet_ranked_collective, AmbassadorCollective] + [pallet_collective_content, AmbassadorContent] + [pallet_core_fellowship, AmbassadorCore] + [pallet_salary, AmbassadorSalary] + ); +} + +impl_runtime_apis! { + impl sp_consensus_aura::AuraApi for Runtime { + fn slot_duration() -> sp_consensus_aura::SlotDuration { + sp_consensus_aura::SlotDuration::from_millis(Aura::slot_duration()) + } + + fn authorities() -> Vec { + Aura::authorities().into_inner() + } + } + + impl sp_api::Core for Runtime { + fn version() -> RuntimeVersion { + VERSION + } + + fn execute_block(block: Block) { + Executive::execute_block(block) + } + + fn initialize_block(header: &::Header) { + Executive::initialize_block(header) + } + } + + impl sp_api::Metadata for Runtime { + fn metadata() -> OpaqueMetadata { + OpaqueMetadata::new(Runtime::metadata().into()) + } + + fn metadata_at_version(version: u32) -> Option { + Runtime::metadata_at_version(version) + } + + fn metadata_versions() -> sp_std::vec::Vec { + Runtime::metadata_versions() + } + } + + impl sp_block_builder::BlockBuilder for Runtime { + fn apply_extrinsic(extrinsic: ::Extrinsic) -> ApplyExtrinsicResult { + Executive::apply_extrinsic(extrinsic) + } + + fn finalize_block() -> ::Header { + Executive::finalize_block() + } + + fn inherent_extrinsics(data: sp_inherents::InherentData) -> Vec<::Extrinsic> { + data.create_extrinsics() + } + + fn check_inherents( + block: Block, + data: sp_inherents::InherentData, + ) -> sp_inherents::CheckInherentsResult { + data.check_extrinsics(&block) + } + } + + impl sp_transaction_pool::runtime_api::TaggedTransactionQueue for Runtime { + fn validate_transaction( + source: TransactionSource, + tx: ::Extrinsic, + block_hash: ::Hash, + ) -> TransactionValidity { + Executive::validate_transaction(source, tx, block_hash) + } + } + + impl sp_offchain::OffchainWorkerApi for Runtime { + fn offchain_worker(header: &::Header) { + Executive::offchain_worker(header) + } + } + + impl sp_session::SessionKeys for Runtime { + fn generate_session_keys(seed: Option>) -> Vec { + SessionKeys::generate(seed) + } + + fn decode_session_keys( + encoded: Vec, + ) -> Option, KeyTypeId)>> { + SessionKeys::decode_into_raw_public_keys(&encoded) + } + } + + impl frame_system_rpc_runtime_api::AccountNonceApi for Runtime { + fn account_nonce(account: AccountId) -> Nonce { + System::account_nonce(account) + } + } + + impl pallet_transaction_payment_rpc_runtime_api::TransactionPaymentApi for Runtime { + fn query_info( + uxt: ::Extrinsic, + len: u32, + ) -> pallet_transaction_payment_rpc_runtime_api::RuntimeDispatchInfo { + TransactionPayment::query_info(uxt, len) + } + fn query_fee_details( + uxt: ::Extrinsic, + len: u32, + ) -> pallet_transaction_payment::FeeDetails { + TransactionPayment::query_fee_details(uxt, len) + } + fn query_weight_to_fee(weight: Weight) -> Balance { + TransactionPayment::weight_to_fee(weight) + } + fn query_length_to_fee(length: u32) -> Balance { + TransactionPayment::length_to_fee(length) + } + } + + impl pallet_transaction_payment_rpc_runtime_api::TransactionPaymentCallApi + for Runtime + { + fn query_call_info( + call: RuntimeCall, + len: u32, + ) -> pallet_transaction_payment::RuntimeDispatchInfo { + TransactionPayment::query_call_info(call, len) + } + fn query_call_fee_details( + call: RuntimeCall, + len: u32, + ) -> pallet_transaction_payment::FeeDetails { + TransactionPayment::query_call_fee_details(call, len) + } + fn query_weight_to_fee(weight: Weight) -> Balance { + TransactionPayment::weight_to_fee(weight) + } + fn query_length_to_fee(length: u32) -> Balance { + TransactionPayment::length_to_fee(length) + } + } + + impl cumulus_primitives_core::CollectCollationInfo for Runtime { + fn collect_collation_info(header: &::Header) -> cumulus_primitives_core::CollationInfo { + ParachainSystem::collect_collation_info(header) + } + } + + #[cfg(feature = "try-runtime")] + impl frame_try_runtime::TryRuntime for Runtime { + fn on_runtime_upgrade(checks: frame_try_runtime::UpgradeCheckSelect) -> (Weight, Weight) { + let weight = Executive::try_runtime_upgrade(checks).unwrap(); + (weight, RuntimeBlockWeights::get().max_block) + } + + fn execute_block( + block: Block, + state_root_check: bool, + signature_check: bool, + select: frame_try_runtime::TryStateSelect, + ) -> Weight { + // NOTE: intentional unwrap: we don't want to propagate the error backwards, and want to + // have a backtrace here. + Executive::try_execute_block(block, state_root_check, signature_check, select).unwrap() + } + } + + #[cfg(feature = "runtime-benchmarks")] + impl frame_benchmarking::Benchmark for Runtime { + fn benchmark_metadata(extra: bool) -> ( + Vec, + Vec, + ) { + use frame_benchmarking::{Benchmarking, BenchmarkList}; + use frame_support::traits::StorageInfoTrait; + use frame_system_benchmarking::Pallet as SystemBench; + use cumulus_pallet_session_benchmarking::Pallet as SessionBench; + + let mut list = Vec::::new(); + list_benchmarks!(list, extra); + + let storage_info = AllPalletsWithSystem::storage_info(); + (list, storage_info) + } + + fn dispatch_benchmark( + config: frame_benchmarking::BenchmarkConfig + ) -> Result, sp_runtime::RuntimeString> { + use frame_benchmarking::{Benchmarking, BenchmarkBatch, BenchmarkError}; + use sp_storage::TrackedStorageKey; + + use frame_system_benchmarking::Pallet as SystemBench; + impl frame_system_benchmarking::Config for Runtime { + fn setup_set_code_requirements(code: &sp_std::vec::Vec) -> Result<(), BenchmarkError> { + ParachainSystem::initialize_for_set_code_benchmark(code.len() as u32); + Ok(()) + } + + fn verify_set_code() { + System::assert_last_event(cumulus_pallet_parachain_system::Event::::ValidationFunctionStored.into()); + } + } + + use cumulus_pallet_session_benchmarking::Pallet as SessionBench; + impl cumulus_pallet_session_benchmarking::Config for Runtime {} + + let whitelist: Vec = vec![ + // Block Number + hex_literal::hex!("26aa394eea5630e07c48ae0c9558cef702a5c1b19ab7a04f536c519aca4983ac").to_vec().into(), + // Total Issuance + hex_literal::hex!("c2261276cc9d1f8598ea4b6a74b15c2f57c875e4cff74148e4628f264b974c80").to_vec().into(), + // Execution Phase + hex_literal::hex!("26aa394eea5630e07c48ae0c9558cef7ff553b5a9862a516939d82b3d3d8661a").to_vec().into(), + // Event Count + hex_literal::hex!("26aa394eea5630e07c48ae0c9558cef70a98fdbe9ce6c55837576c60c7af3850").to_vec().into(), + // System Events + hex_literal::hex!("26aa394eea5630e07c48ae0c9558cef780d41e5e16056765bc8461851072c9d7").to_vec().into(), + ]; + + let mut batches = Vec::::new(); + let params = (&config, &whitelist); + add_benchmarks!(params, batches); + + if batches.is_empty() { return Err("Benchmark not found for this pallet.".into()) } + Ok(batches) + } + } + + impl sp_genesis_builder::GenesisBuilder for Runtime { + fn create_default_config() -> Vec { + create_default_config::() + } + + fn build_config(config: Vec) -> sp_genesis_builder::Result { + build_config::(config) + } + } +} + +cumulus_pallet_parachain_system::register_validate_block! { + Runtime = Runtime, + BlockExecutor = cumulus_pallet_aura_ext::BlockExecutor::, +} diff --git a/cumulus/parachains/runtimes/collectives/collectives-polkadot/src/weights/block_weights.rs b/cumulus/parachains/runtimes/collectives/collectives-polkadot/src/weights/block_weights.rs new file mode 100644 index 000000000000..e7fdb2aae2a0 --- /dev/null +++ b/cumulus/parachains/runtimes/collectives/collectives-polkadot/src/weights/block_weights.rs @@ -0,0 +1,53 @@ +// This file is part of Substrate. + +// 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. + +pub mod constants { + use frame_support::{ + parameter_types, + weights::{constants, Weight}, + }; + + parameter_types! { + /// Importing a block with 0 Extrinsics. + pub const BlockExecutionWeight: Weight = + Weight::from_parts(constants::WEIGHT_REF_TIME_PER_NANOS.saturating_mul(5_000_000), 0); + } + + #[cfg(test)] + mod test_weights { + use frame_support::weights::constants; + + /// Checks that the weight exists and is sane. + // NOTE: If this test fails but you are sure that the generated values are fine, + // you can delete it. + #[test] + fn sane() { + let w = super::constants::BlockExecutionWeight::get(); + + // At least 100 µs. + assert!( + w.ref_time() >= 100u64 * constants::WEIGHT_REF_TIME_PER_MICROS, + "Weight should be at least 100 µs." + ); + // At most 50 ms. + assert!( + w.ref_time() <= 50u64 * constants::WEIGHT_REF_TIME_PER_MILLIS, + "Weight should be at most 50 ms." + ); + } + } +} diff --git a/cumulus/parachains/runtimes/collectives/collectives-polkadot/src/weights/cumulus_pallet_xcmp_queue.rs b/cumulus/parachains/runtimes/collectives/collectives-polkadot/src/weights/cumulus_pallet_xcmp_queue.rs new file mode 100644 index 000000000000..ccd9478bf10e --- /dev/null +++ b/cumulus/parachains/runtimes/collectives/collectives-polkadot/src/weights/cumulus_pallet_xcmp_queue.rs @@ -0,0 +1,77 @@ +// Copyright (C) Parity Technologies (UK) Ltd. +// This file is part of Cumulus. + +// Cumulus 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. + +// Cumulus 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 Cumulus. If not, see . + +//! Autogenerated weights for `cumulus_pallet_xcmp_queue` +//! +//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev +//! DATE: 2023-07-31, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! WORST CASE MAP SIZE: `1000000` +//! HOSTNAME: `runner-ynta1nyy-project-238-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz` +//! EXECUTION: ``, WASM-EXECUTION: `Compiled`, CHAIN: `Some("collectives-polkadot-dev")`, DB CACHE: 1024 + +// Executed Command: +// ./target/production/polkadot-parachain +// benchmark +// pallet +// --chain=collectives-polkadot-dev +// --wasm-execution=compiled +// --pallet=cumulus_pallet_xcmp_queue +// --no-storage-info +// --no-median-slopes +// --no-min-squares +// --extrinsic=* +// --steps=50 +// --repeat=20 +// --json +// --header=./file_header.txt +// --output=./parachains/runtimes/collectives/collectives-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 `cumulus_pallet_xcmp_queue`. +pub struct WeightInfo(PhantomData); +impl cumulus_pallet_xcmp_queue::WeightInfo for WeightInfo { + /// Storage: `XcmpQueue::QueueConfig` (r:1 w:1) + /// Proof: `XcmpQueue::QueueConfig` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + fn set_config_with_u32() -> Weight { + // Proof Size summary in bytes: + // Measured: `142` + // Estimated: `1627` + // Minimum execution time: 5_136_000 picoseconds. + Weight::from_parts(5_399_000, 0) + .saturating_add(Weight::from_parts(0, 1627)) + .saturating_add(T::DbWeight::get().reads(1)) + .saturating_add(T::DbWeight::get().writes(1)) + } + /// Storage: `XcmpQueue::QueueConfig` (r:1 w:1) + /// Proof: `XcmpQueue::QueueConfig` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + fn set_config_with_weight() -> Weight { + // Proof Size summary in bytes: + // Measured: `142` + // Estimated: `1627` + // Minimum execution time: 5_056_000 picoseconds. + Weight::from_parts(5_301_000, 0) + .saturating_add(Weight::from_parts(0, 1627)) + .saturating_add(T::DbWeight::get().reads(1)) + .saturating_add(T::DbWeight::get().writes(1)) + } +} diff --git a/cumulus/parachains/runtimes/collectives/collectives-polkadot/src/weights/extrinsic_weights.rs b/cumulus/parachains/runtimes/collectives/collectives-polkadot/src/weights/extrinsic_weights.rs new file mode 100644 index 000000000000..1a4adb968bb7 --- /dev/null +++ b/cumulus/parachains/runtimes/collectives/collectives-polkadot/src/weights/extrinsic_weights.rs @@ -0,0 +1,53 @@ +// This file is part of Substrate. + +// 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. + +pub mod constants { + use frame_support::{ + parameter_types, + weights::{constants, Weight}, + }; + + parameter_types! { + /// Executing a NO-OP `System::remarks` Extrinsic. + pub const ExtrinsicBaseWeight: Weight = + Weight::from_parts(constants::WEIGHT_REF_TIME_PER_NANOS.saturating_mul(125_000), 0); + } + + #[cfg(test)] + mod test_weights { + use frame_support::weights::constants; + + /// Checks that the weight exists and is sane. + // NOTE: If this test fails but you are sure that the generated values are fine, + // you can delete it. + #[test] + fn sane() { + let w = super::constants::ExtrinsicBaseWeight::get(); + + // At least 10 µs. + assert!( + w.ref_time() >= 10u64 * constants::WEIGHT_REF_TIME_PER_MICROS, + "Weight should be at least 10 µs." + ); + // At most 1 ms. + assert!( + w.ref_time() <= constants::WEIGHT_REF_TIME_PER_MILLIS, + "Weight should be at most 1 ms." + ); + } + } +} diff --git a/cumulus/parachains/runtimes/collectives/collectives-polkadot/src/weights/frame_system.rs b/cumulus/parachains/runtimes/collectives/collectives-polkadot/src/weights/frame_system.rs new file mode 100644 index 000000000000..31cd502d1927 --- /dev/null +++ b/cumulus/parachains/runtimes/collectives/collectives-polkadot/src/weights/frame_system.rs @@ -0,0 +1,155 @@ +// Copyright (C) Parity Technologies (UK) Ltd. +// This file is part of Cumulus. + +// Cumulus 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. + +// Cumulus 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 Cumulus. If not, see . + +//! Autogenerated weights for `frame_system` +//! +//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev +//! DATE: 2023-07-31, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! WORST CASE MAP SIZE: `1000000` +//! HOSTNAME: `runner-ynta1nyy-project-238-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz` +//! EXECUTION: ``, WASM-EXECUTION: `Compiled`, CHAIN: `Some("collectives-polkadot-dev")`, DB CACHE: 1024 + +// Executed Command: +// ./target/production/polkadot-parachain +// benchmark +// pallet +// --chain=collectives-polkadot-dev +// --wasm-execution=compiled +// --pallet=frame_system +// --no-storage-info +// --no-median-slopes +// --no-min-squares +// --extrinsic=* +// --steps=50 +// --repeat=20 +// --json +// --header=./file_header.txt +// --output=./parachains/runtimes/collectives/collectives-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 `frame_system`. +pub struct WeightInfo(PhantomData); +impl frame_system::WeightInfo for WeightInfo { + /// The range of component `b` is `[0, 3932160]`. + fn remark(b: u32, ) -> Weight { + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 1_926_000 picoseconds. + Weight::from_parts(1_929_666, 0) + .saturating_add(Weight::from_parts(0, 0)) + // Standard Error: 0 + .saturating_add(Weight::from_parts(387, 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_221_000 picoseconds. + Weight::from_parts(34_449_539, 0) + .saturating_add(Weight::from_parts(0, 0)) + // Standard Error: 7 + .saturating_add(Weight::from_parts(1_706, 0).saturating_mul(b.into())) + } + /// Storage: `System::Digest` (r:1 w:1) + /// Proof: `System::Digest` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: UNKNOWN KEY `0x3a686561707061676573` (r:0 w:1) + /// Proof: UNKNOWN KEY `0x3a686561707061676573` (r:0 w:1) + fn set_heap_pages() -> Weight { + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `1485` + // Minimum execution time: 3_681_000 picoseconds. + Weight::from_parts(3_857_000, 0) + .saturating_add(Weight::from_parts(0, 1485)) + .saturating_add(T::DbWeight::get().reads(1)) + .saturating_add(T::DbWeight::get().writes(2)) + } + /// Storage: `ParachainSystem::ValidationData` (r:1 w:0) + /// Proof: `ParachainSystem::ValidationData` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `ParachainSystem::UpgradeRestrictionSignal` (r:1 w:0) + /// Proof: `ParachainSystem::UpgradeRestrictionSignal` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `ParachainSystem::PendingValidationCode` (r:1 w:1) + /// Proof: `ParachainSystem::PendingValidationCode` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `ParachainSystem::HostConfiguration` (r:1 w:0) + /// Proof: `ParachainSystem::HostConfiguration` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `ParachainSystem::NewValidationCode` (r:0 w:1) + /// Proof: `ParachainSystem::NewValidationCode` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `ParachainSystem::DidSetValidationCode` (r:0 w:1) + /// Proof: `ParachainSystem::DidSetValidationCode` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + fn set_code() -> Weight { + // Proof Size summary in bytes: + // Measured: `156` + // Estimated: `1641` + // Minimum execution time: 101_899_621_000 picoseconds. + Weight::from_parts(106_377_672_000, 0) + .saturating_add(Weight::from_parts(0, 1641)) + .saturating_add(T::DbWeight::get().reads(4)) + .saturating_add(T::DbWeight::get().writes(3)) + } + /// Storage: `Skipped::Metadata` (r:0 w:0) + /// Proof: `Skipped::Metadata` (`max_values`: None, `max_size`: None, mode: `Measured`) + /// The range of component `i` is `[0, 1000]`. + fn set_storage(i: u32, ) -> Weight { + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 2_039_000 picoseconds. + Weight::from_parts(2_094_000, 0) + .saturating_add(Weight::from_parts(0, 0)) + // Standard Error: 2_124 + .saturating_add(Weight::from_parts(754_465, 0).saturating_mul(i.into())) + .saturating_add(T::DbWeight::get().writes((1_u64).saturating_mul(i.into()))) + } + /// Storage: `Skipped::Metadata` (r:0 w:0) + /// Proof: `Skipped::Metadata` (`max_values`: None, `max_size`: None, mode: `Measured`) + /// The range of component `i` is `[0, 1000]`. + fn kill_storage(i: u32, ) -> Weight { + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 2_103_000 picoseconds. + Weight::from_parts(2_182_000, 0) + .saturating_add(Weight::from_parts(0, 0)) + // Standard Error: 1_031 + .saturating_add(Weight::from_parts(570_563, 0).saturating_mul(i.into())) + .saturating_add(T::DbWeight::get().writes((1_u64).saturating_mul(i.into()))) + } + /// Storage: `Skipped::Metadata` (r:0 w:0) + /// Proof: `Skipped::Metadata` (`max_values`: None, `max_size`: None, mode: `Measured`) + /// The range of component `p` is `[0, 1000]`. + fn kill_prefix(p: u32, ) -> Weight { + // Proof Size summary in bytes: + // Measured: `82 + p * (69 ±0)` + // Estimated: `78 + p * (70 ±0)` + // Minimum execution time: 3_728_000 picoseconds. + Weight::from_parts(3_836_000, 0) + .saturating_add(Weight::from_parts(0, 78)) + // Standard Error: 1_802 + .saturating_add(Weight::from_parts(1_199_345, 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/cumulus/parachains/runtimes/collectives/collectives-polkadot/src/weights/mod.rs b/cumulus/parachains/runtimes/collectives/collectives-polkadot/src/weights/mod.rs new file mode 100644 index 000000000000..b5a3a892f79a --- /dev/null +++ b/cumulus/parachains/runtimes/collectives/collectives-polkadot/src/weights/mod.rs @@ -0,0 +1,48 @@ +// Copyright (C) Parity Technologies (UK) Ltd. +// This file is part of Cumulus. + +// Cumulus 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. + +// Cumulus 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 Cumulus. If not, see . + +pub mod block_weights; +pub mod cumulus_pallet_xcmp_queue; +pub mod extrinsic_weights; +pub mod frame_system; +pub mod pallet_alliance; +pub mod pallet_balances; +pub mod pallet_collator_selection; +pub mod pallet_collective; +pub mod pallet_collective_content; +pub mod pallet_core_fellowship_ambassador_core; +pub mod pallet_core_fellowship_fellowship_core; +pub mod pallet_multisig; +pub mod pallet_preimage; +pub mod pallet_proxy; +pub mod pallet_ranked_collective_ambassador_collective; +pub mod pallet_ranked_collective_fellowship_collective; +pub mod pallet_referenda_ambassador_referenda; +pub mod pallet_referenda_fellowship_referenda; +pub mod pallet_salary_ambassador_salary; +pub mod pallet_salary_fellowship_salary; +pub mod pallet_scheduler; +pub mod pallet_session; +pub mod pallet_timestamp; +pub mod pallet_utility; +pub mod pallet_xcm; +pub mod paritydb_weights; +pub mod rocksdb_weights; + +pub use block_weights::constants::BlockExecutionWeight; +pub use extrinsic_weights::constants::ExtrinsicBaseWeight; +pub use paritydb_weights::constants::ParityDbWeight; +pub use rocksdb_weights::constants::RocksDbWeight; diff --git a/cumulus/parachains/runtimes/collectives/collectives-polkadot/src/weights/pallet_alliance.rs b/cumulus/parachains/runtimes/collectives/collectives-polkadot/src/weights/pallet_alliance.rs new file mode 100644 index 000000000000..9e3acac46a4c --- /dev/null +++ b/cumulus/parachains/runtimes/collectives/collectives-polkadot/src/weights/pallet_alliance.rs @@ -0,0 +1,495 @@ +// Copyright (C) Parity Technologies (UK) Ltd. +// This file is part of Cumulus. + +// Cumulus 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. + +// Cumulus 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 Cumulus. If not, see . + +//! Autogenerated weights for `pallet_alliance` +//! +//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev +//! DATE: 2023-07-31, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! WORST CASE MAP SIZE: `1000000` +//! HOSTNAME: `runner-ynta1nyy-project-238-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz` +//! EXECUTION: ``, WASM-EXECUTION: `Compiled`, CHAIN: `Some("collectives-polkadot-dev")`, DB CACHE: 1024 + +// Executed Command: +// ./target/production/polkadot-parachain +// benchmark +// pallet +// --chain=collectives-polkadot-dev +// --wasm-execution=compiled +// --pallet=pallet_alliance +// --no-storage-info +// --no-median-slopes +// --no-min-squares +// --extrinsic=* +// --steps=50 +// --repeat=20 +// --json +// --header=./file_header.txt +// --output=./parachains/runtimes/collectives/collectives-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_alliance`. +pub struct WeightInfo(PhantomData); +impl pallet_alliance::WeightInfo for WeightInfo { + /// Storage: `Alliance::Members` (r:1 w:0) + /// Proof: `Alliance::Members` (`max_values`: None, `max_size`: Some(3211), added: 5686, mode: `MaxEncodedLen`) + /// Storage: `AllianceMotion::ProposalOf` (r:1 w:1) + /// Proof: `AllianceMotion::ProposalOf` (`max_values`: None, `max_size`: None, mode: `Measured`) + /// Storage: `AllianceMotion::Proposals` (r:1 w:1) + /// Proof: `AllianceMotion::Proposals` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `AllianceMotion::ProposalCount` (r:1 w:1) + /// Proof: `AllianceMotion::ProposalCount` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `AllianceMotion::Voting` (r:0 w:1) + /// Proof: `AllianceMotion::Voting` (`max_values`: None, `max_size`: None, mode: `Measured`) + /// The range of component `b` is `[1, 1024]`. + /// The range of component `m` is `[2, 100]`. + /// The range of component `p` is `[1, 100]`. + fn propose_proposed(b: u32, m: u32, p: u32, ) -> Weight { + // Proof Size summary in bytes: + // Measured: `439 + m * (32 ±0) + p * (36 ±0)` + // Estimated: `6676 + m * (32 ±0) + p * (36 ±0)` + // Minimum execution time: 32_783_000 picoseconds. + Weight::from_parts(32_174_037, 0) + .saturating_add(Weight::from_parts(0, 6676)) + // Standard Error: 198 + .saturating_add(Weight::from_parts(1_220, 0).saturating_mul(b.into())) + // Standard Error: 2_074 + .saturating_add(Weight::from_parts(40_945, 0).saturating_mul(m.into())) + // Standard Error: 2_048 + .saturating_add(Weight::from_parts(181_087, 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, 32).saturating_mul(m.into())) + .saturating_add(Weight::from_parts(0, 36).saturating_mul(p.into())) + } + /// Storage: `Alliance::Members` (r:1 w:0) + /// Proof: `Alliance::Members` (`max_values`: None, `max_size`: Some(3211), added: 5686, mode: `MaxEncodedLen`) + /// Storage: `AllianceMotion::Voting` (r:1 w:1) + /// Proof: `AllianceMotion::Voting` (`max_values`: None, `max_size`: None, mode: `Measured`) + /// The range of component `m` is `[5, 100]`. + fn vote(m: u32, ) -> Weight { + // Proof Size summary in bytes: + // Measured: `868 + m * (64 ±0)` + // Estimated: `6676 + m * (64 ±0)` + // Minimum execution time: 28_520_000 picoseconds. + Weight::from_parts(29_661_024, 0) + .saturating_add(Weight::from_parts(0, 6676)) + // Standard Error: 2_336 + .saturating_add(Weight::from_parts(89_873, 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())) + } + /// Storage: `Alliance::Members` (r:1 w:0) + /// Proof: `Alliance::Members` (`max_values`: None, `max_size`: Some(3211), added: 5686, mode: `MaxEncodedLen`) + /// Storage: `AllianceMotion::Voting` (r:1 w:1) + /// Proof: `AllianceMotion::Voting` (`max_values`: None, `max_size`: None, mode: `Measured`) + /// Storage: `AllianceMotion::Members` (r:1 w:0) + /// Proof: `AllianceMotion::Members` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `AllianceMotion::Proposals` (r:1 w:1) + /// Proof: `AllianceMotion::Proposals` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `AllianceMotion::ProposalOf` (r:0 w:1) + /// Proof: `AllianceMotion::ProposalOf` (`max_values`: None, `max_size`: None, mode: `Measured`) + /// The range of component `m` is `[4, 100]`. + /// The range of component `p` is `[1, 100]`. + fn close_early_disapproved(m: u32, p: u32, ) -> Weight { + // Proof Size summary in bytes: + // Measured: `312 + m * (96 ±0) + p * (36 ±0)` + // Estimated: `6676 + m * (97 ±0) + p * (36 ±0)` + // Minimum execution time: 39_353_000 picoseconds. + Weight::from_parts(33_028_008, 0) + .saturating_add(Weight::from_parts(0, 6676)) + // Standard Error: 2_137 + .saturating_add(Weight::from_parts(90_946, 0).saturating_mul(m.into())) + // Standard Error: 2_084 + .saturating_add(Weight::from_parts(175_827, 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, 97).saturating_mul(m.into())) + .saturating_add(Weight::from_parts(0, 36).saturating_mul(p.into())) + } + /// Storage: `Alliance::Members` (r:1 w:0) + /// Proof: `Alliance::Members` (`max_values`: None, `max_size`: Some(3211), added: 5686, mode: `MaxEncodedLen`) + /// Storage: `AllianceMotion::Voting` (r:1 w:1) + /// Proof: `AllianceMotion::Voting` (`max_values`: None, `max_size`: None, mode: `Measured`) + /// Storage: `AllianceMotion::Members` (r:1 w:0) + /// Proof: `AllianceMotion::Members` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `AllianceMotion::ProposalOf` (r:1 w:1) + /// Proof: `AllianceMotion::ProposalOf` (`max_values`: None, `max_size`: None, mode: `Measured`) + /// Storage: `AllianceMotion::Proposals` (r:1 w:1) + /// Proof: `AllianceMotion::Proposals` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// The range of component `b` is `[1, 1024]`. + /// The range of component `m` is `[4, 100]`. + /// The range of component `p` is `[1, 100]`. + fn close_early_approved(_b: u32, m: u32, p: u32, ) -> Weight { + // Proof Size summary in bytes: + // Measured: `762 + m * (96 ±0) + p * (41 ±0)` + // Estimated: `6676 + m * (97 ±0) + p * (40 ±0)` + // Minimum execution time: 52_835_000 picoseconds. + Weight::from_parts(45_963_292, 0) + .saturating_add(Weight::from_parts(0, 6676)) + // Standard Error: 3_189 + .saturating_add(Weight::from_parts(111_627, 0).saturating_mul(m.into())) + // Standard Error: 3_109 + .saturating_add(Weight::from_parts(207_923, 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, 97).saturating_mul(m.into())) + .saturating_add(Weight::from_parts(0, 40).saturating_mul(p.into())) + } + /// Storage: `Alliance::Members` (r:1 w:0) + /// Proof: `Alliance::Members` (`max_values`: None, `max_size`: Some(3211), added: 5686, mode: `MaxEncodedLen`) + /// Storage: `AllianceMotion::Voting` (r:1 w:1) + /// Proof: `AllianceMotion::Voting` (`max_values`: None, `max_size`: None, mode: `Measured`) + /// Storage: `AllianceMotion::Members` (r:1 w:0) + /// Proof: `AllianceMotion::Members` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `AllianceMotion::Prime` (r:1 w:0) + /// Proof: `AllianceMotion::Prime` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `AllianceMotion::ProposalOf` (r:1 w:1) + /// Proof: `AllianceMotion::ProposalOf` (`max_values`: None, `max_size`: None, mode: `Measured`) + /// Storage: `AllianceMotion::Proposals` (r:1 w:1) + /// Proof: `AllianceMotion::Proposals` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `Alliance::Rule` (r:0 w:1) + /// Proof: `Alliance::Rule` (`max_values`: Some(1), `max_size`: Some(87), added: 582, mode: `MaxEncodedLen`) + /// The range of component `m` is `[2, 100]`. + /// The range of component `p` is `[1, 100]`. + fn close_disapproved(m: u32, p: u32, ) -> Weight { + // Proof Size summary in bytes: + // Measured: `518 + m * (96 ±0) + p * (41 ±0)` + // Estimated: `6676 + m * (109 ±0) + p * (43 ±0)` + // Minimum execution time: 49_980_000 picoseconds. + Weight::from_parts(48_110_301, 0) + .saturating_add(Weight::from_parts(0, 6676)) + // Standard Error: 5_057 + .saturating_add(Weight::from_parts(169_065, 0).saturating_mul(m.into())) + // Standard Error: 4_995 + .saturating_add(Weight::from_parts(201_349, 0).saturating_mul(p.into())) + .saturating_add(T::DbWeight::get().reads(6)) + .saturating_add(T::DbWeight::get().writes(4)) + .saturating_add(Weight::from_parts(0, 109).saturating_mul(m.into())) + .saturating_add(Weight::from_parts(0, 43).saturating_mul(p.into())) + } + /// Storage: `Alliance::Members` (r:1 w:0) + /// Proof: `Alliance::Members` (`max_values`: None, `max_size`: Some(3211), added: 5686, mode: `MaxEncodedLen`) + /// Storage: `AllianceMotion::Voting` (r:1 w:1) + /// Proof: `AllianceMotion::Voting` (`max_values`: None, `max_size`: None, mode: `Measured`) + /// Storage: `AllianceMotion::Members` (r:1 w:0) + /// Proof: `AllianceMotion::Members` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `AllianceMotion::Prime` (r:1 w:0) + /// Proof: `AllianceMotion::Prime` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `AllianceMotion::Proposals` (r:1 w:1) + /// Proof: `AllianceMotion::Proposals` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `AllianceMotion::ProposalOf` (r:0 w:1) + /// Proof: `AllianceMotion::ProposalOf` (`max_values`: None, `max_size`: None, mode: `Measured`) + /// The range of component `b` is `[1, 1024]`. + /// The range of component `m` is `[5, 100]`. + /// The range of component `p` is `[1, 100]`. + fn close_approved(_b: u32, m: u32, p: u32, ) -> Weight { + // Proof Size summary in bytes: + // Measured: `417 + m * (96 ±0) + p * (36 ±0)` + // Estimated: `6676 + m * (96 ±0) + p * (36 ±0)` + // Minimum execution time: 40_646_000 picoseconds. + Weight::from_parts(36_865_909, 0) + .saturating_add(Weight::from_parts(0, 6676)) + // Standard Error: 2_136 + .saturating_add(Weight::from_parts(74_341, 0).saturating_mul(m.into())) + // Standard Error: 2_059 + .saturating_add(Weight::from_parts(170_035, 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, 96).saturating_mul(m.into())) + .saturating_add(Weight::from_parts(0, 36).saturating_mul(p.into())) + } + /// Storage: `Alliance::Members` (r:2 w:2) + /// Proof: `Alliance::Members` (`max_values`: None, `max_size`: Some(3211), added: 5686, mode: `MaxEncodedLen`) + /// Storage: `AllianceMotion::Members` (r:1 w:1) + /// Proof: `AllianceMotion::Members` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// The range of component `m` is `[1, 100]`. + /// The range of component `z` is `[0, 100]`. + fn init_members(m: u32, z: u32, ) -> Weight { + // Proof Size summary in bytes: + // Measured: `12` + // Estimated: `12362` + // Minimum execution time: 29_710_000 picoseconds. + Weight::from_parts(17_762_170, 0) + .saturating_add(Weight::from_parts(0, 12362)) + // Standard Error: 1_652 + .saturating_add(Weight::from_parts(156_967, 0).saturating_mul(m.into())) + // Standard Error: 1_632 + .saturating_add(Weight::from_parts(130_352, 0).saturating_mul(z.into())) + .saturating_add(T::DbWeight::get().reads(3)) + .saturating_add(T::DbWeight::get().writes(3)) + } + /// Storage: `Alliance::Members` (r:2 w:2) + /// Proof: `Alliance::Members` (`max_values`: None, `max_size`: Some(3211), added: 5686, mode: `MaxEncodedLen`) + /// Storage: `AllianceMotion::Proposals` (r:1 w:0) + /// Proof: `AllianceMotion::Proposals` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `Alliance::DepositOf` (r:200 w:50) + /// Proof: `Alliance::DepositOf` (`max_values`: None, `max_size`: Some(64), added: 2539, mode: `MaxEncodedLen`) + /// Storage: `System::Account` (r:50 w:50) + /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`) + /// Storage: `AllianceMotion::Members` (r:0 w:1) + /// Proof: `AllianceMotion::Members` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `AllianceMotion::Prime` (r:0 w:1) + /// Proof: `AllianceMotion::Prime` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// The range of component `x` is `[1, 100]`. + /// The range of component `y` is `[0, 100]`. + /// The range of component `z` is `[0, 50]`. + fn disband(x: u32, y: u32, z: u32, ) -> Weight { + // Proof Size summary in bytes: + // Measured: `0 + x * (52 ±0) + y * (53 ±0) + z * (250 ±0)` + // Estimated: `12362 + x * (2539 ±0) + y * (2539 ±0) + z * (2603 ±1)` + // Minimum execution time: 294_258_000 picoseconds. + Weight::from_parts(295_116_000, 0) + .saturating_add(Weight::from_parts(0, 12362)) + // Standard Error: 23_663 + .saturating_add(Weight::from_parts(553_978, 0).saturating_mul(x.into())) + // Standard Error: 23_549 + .saturating_add(Weight::from_parts(567_024, 0).saturating_mul(y.into())) + // Standard Error: 47_055 + .saturating_add(Weight::from_parts(15_439_056, 0).saturating_mul(z.into())) + .saturating_add(T::DbWeight::get().reads(3)) + .saturating_add(T::DbWeight::get().reads((1_u64).saturating_mul(x.into()))) + .saturating_add(T::DbWeight::get().reads((1_u64).saturating_mul(y.into()))) + .saturating_add(T::DbWeight::get().reads((1_u64).saturating_mul(z.into()))) + .saturating_add(T::DbWeight::get().writes(4)) + .saturating_add(T::DbWeight::get().writes((2_u64).saturating_mul(z.into()))) + .saturating_add(Weight::from_parts(0, 2539).saturating_mul(x.into())) + .saturating_add(Weight::from_parts(0, 2539).saturating_mul(y.into())) + .saturating_add(Weight::from_parts(0, 2603).saturating_mul(z.into())) + } + /// Storage: `Alliance::Rule` (r:0 w:1) + /// Proof: `Alliance::Rule` (`max_values`: Some(1), `max_size`: Some(87), added: 582, mode: `MaxEncodedLen`) + fn set_rule() -> Weight { + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 8_538_000 picoseconds. + Weight::from_parts(8_752_000, 0) + .saturating_add(Weight::from_parts(0, 0)) + .saturating_add(T::DbWeight::get().writes(1)) + } + /// Storage: `Alliance::Announcements` (r:1 w:1) + /// Proof: `Alliance::Announcements` (`max_values`: Some(1), `max_size`: Some(8702), added: 9197, mode: `MaxEncodedLen`) + fn announce() -> Weight { + // Proof Size summary in bytes: + // Measured: `76` + // Estimated: `10187` + // Minimum execution time: 11_213_000 picoseconds. + Weight::from_parts(11_792_000, 0) + .saturating_add(Weight::from_parts(0, 10187)) + .saturating_add(T::DbWeight::get().reads(1)) + .saturating_add(T::DbWeight::get().writes(1)) + } + /// Storage: `Alliance::Announcements` (r:1 w:1) + /// Proof: `Alliance::Announcements` (`max_values`: Some(1), `max_size`: Some(8702), added: 9197, mode: `MaxEncodedLen`) + fn remove_announcement() -> Weight { + // Proof Size summary in bytes: + // Measured: `149` + // Estimated: `10187` + // Minimum execution time: 12_477_000 picoseconds. + Weight::from_parts(12_942_000, 0) + .saturating_add(Weight::from_parts(0, 10187)) + .saturating_add(T::DbWeight::get().reads(1)) + .saturating_add(T::DbWeight::get().writes(1)) + } + /// Storage: `Alliance::Members` (r:3 w:1) + /// Proof: `Alliance::Members` (`max_values`: None, `max_size`: Some(3211), added: 5686, mode: `MaxEncodedLen`) + /// Storage: `Alliance::UnscrupulousAccounts` (r:1 w:0) + /// Proof: `Alliance::UnscrupulousAccounts` (`max_values`: Some(1), `max_size`: Some(3202), added: 3697, mode: `MaxEncodedLen`) + /// Storage: `System::Account` (r:1 w:1) + /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`) + /// Storage: `Alliance::DepositOf` (r:0 w:1) + /// Proof: `Alliance::DepositOf` (`max_values`: None, `max_size`: Some(64), added: 2539, mode: `MaxEncodedLen`) + fn join_alliance() -> Weight { + // Proof Size summary in bytes: + // Measured: `294` + // Estimated: `18048` + // Minimum execution time: 41_517_000 picoseconds. + Weight::from_parts(42_433_000, 0) + .saturating_add(Weight::from_parts(0, 18048)) + .saturating_add(T::DbWeight::get().reads(5)) + .saturating_add(T::DbWeight::get().writes(3)) + } + /// Storage: `Alliance::Members` (r:3 w:1) + /// Proof: `Alliance::Members` (`max_values`: None, `max_size`: Some(3211), added: 5686, mode: `MaxEncodedLen`) + /// Storage: `Alliance::UnscrupulousAccounts` (r:1 w:0) + /// Proof: `Alliance::UnscrupulousAccounts` (`max_values`: Some(1), `max_size`: Some(3202), added: 3697, mode: `MaxEncodedLen`) + fn nominate_ally() -> Weight { + // Proof Size summary in bytes: + // Measured: `193` + // Estimated: `18048` + // Minimum execution time: 25_950_000 picoseconds. + Weight::from_parts(26_631_000, 0) + .saturating_add(Weight::from_parts(0, 18048)) + .saturating_add(T::DbWeight::get().reads(4)) + .saturating_add(T::DbWeight::get().writes(1)) + } + /// Storage: `Alliance::Members` (r:2 w:2) + /// Proof: `Alliance::Members` (`max_values`: None, `max_size`: Some(3211), added: 5686, mode: `MaxEncodedLen`) + /// Storage: `AllianceMotion::Proposals` (r:1 w:0) + /// Proof: `AllianceMotion::Proposals` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `AllianceMotion::Members` (r:0 w:1) + /// Proof: `AllianceMotion::Members` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `AllianceMotion::Prime` (r:0 w:1) + /// Proof: `AllianceMotion::Prime` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + fn elevate_ally() -> Weight { + // Proof Size summary in bytes: + // Measured: `236` + // Estimated: `12362` + // Minimum execution time: 24_470_000 picoseconds. + Weight::from_parts(25_222_000, 0) + .saturating_add(Weight::from_parts(0, 12362)) + .saturating_add(T::DbWeight::get().reads(3)) + .saturating_add(T::DbWeight::get().writes(4)) + } + /// Storage: `Alliance::Members` (r:4 w:2) + /// Proof: `Alliance::Members` (`max_values`: None, `max_size`: Some(3211), added: 5686, mode: `MaxEncodedLen`) + /// Storage: `AllianceMotion::Proposals` (r:1 w:0) + /// Proof: `AllianceMotion::Proposals` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `AllianceMotion::Members` (r:0 w:1) + /// Proof: `AllianceMotion::Members` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `AllianceMotion::Prime` (r:0 w:1) + /// Proof: `AllianceMotion::Prime` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `Alliance::RetiringMembers` (r:0 w:1) + /// Proof: `Alliance::RetiringMembers` (`max_values`: None, `max_size`: Some(52), added: 2527, mode: `MaxEncodedLen`) + fn give_retirement_notice() -> Weight { + // Proof Size summary in bytes: + // Measured: `236` + // Estimated: `23734` + // Minimum execution time: 31_519_000 picoseconds. + Weight::from_parts(32_827_000, 0) + .saturating_add(Weight::from_parts(0, 23734)) + .saturating_add(T::DbWeight::get().reads(5)) + .saturating_add(T::DbWeight::get().writes(5)) + } + /// Storage: `Alliance::RetiringMembers` (r:1 w:1) + /// Proof: `Alliance::RetiringMembers` (`max_values`: None, `max_size`: Some(52), added: 2527, mode: `MaxEncodedLen`) + /// Storage: `Alliance::Members` (r:1 w:1) + /// Proof: `Alliance::Members` (`max_values`: None, `max_size`: Some(3211), added: 5686, mode: `MaxEncodedLen`) + /// Storage: `Alliance::DepositOf` (r:1 w:1) + /// Proof: `Alliance::DepositOf` (`max_values`: None, `max_size`: Some(64), added: 2539, mode: `MaxEncodedLen`) + /// Storage: `System::Account` (r:1 w:1) + /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`) + fn retire() -> Weight { + // Proof Size summary in bytes: + // Measured: `517` + // Estimated: `6676` + // Minimum execution time: 38_799_000 picoseconds. + Weight::from_parts(39_634_000, 0) + .saturating_add(Weight::from_parts(0, 6676)) + .saturating_add(T::DbWeight::get().reads(4)) + .saturating_add(T::DbWeight::get().writes(4)) + } + /// Storage: `Alliance::Members` (r:3 w:1) + /// Proof: `Alliance::Members` (`max_values`: None, `max_size`: Some(3211), added: 5686, mode: `MaxEncodedLen`) + /// Storage: `AllianceMotion::Proposals` (r:1 w:0) + /// Proof: `AllianceMotion::Proposals` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `Alliance::DepositOf` (r:1 w:1) + /// Proof: `Alliance::DepositOf` (`max_values`: None, `max_size`: Some(64), added: 2539, mode: `MaxEncodedLen`) + /// Storage: `System::Account` (r:2 w:2) + /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`) + /// Storage: `ParachainInfo::ParachainId` (r:1 w:0) + /// Proof: `ParachainInfo::ParachainId` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`) + /// Storage: `PolkadotXcm::SupportedVersion` (r:1 w:0) + /// Proof: `PolkadotXcm::SupportedVersion` (`max_values`: None, `max_size`: None, mode: `Measured`) + /// Storage: `PolkadotXcm::VersionDiscoveryQueue` (r:1 w:1) + /// Proof: `PolkadotXcm::VersionDiscoveryQueue` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `PolkadotXcm::SafeXcmVersion` (r:1 w:0) + /// Proof: `PolkadotXcm::SafeXcmVersion` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `ParachainSystem::HostConfiguration` (r:1 w:0) + /// Proof: `ParachainSystem::HostConfiguration` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `ParachainSystem::PendingUpwardMessages` (r:1 w:1) + /// Proof: `ParachainSystem::PendingUpwardMessages` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `AllianceMotion::Members` (r:0 w:1) + /// Proof: `AllianceMotion::Members` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `AllianceMotion::Prime` (r:0 w:1) + /// Proof: `AllianceMotion::Prime` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + fn kick_member() -> Weight { + // Proof Size summary in bytes: + // Measured: `643` + // Estimated: `18048` + // Minimum execution time: 137_442_000 picoseconds. + Weight::from_parts(142_142_000, 0) + .saturating_add(Weight::from_parts(0, 18048)) + .saturating_add(T::DbWeight::get().reads(13)) + .saturating_add(T::DbWeight::get().writes(8)) + } + /// Storage: `Alliance::UnscrupulousAccounts` (r:1 w:1) + /// Proof: `Alliance::UnscrupulousAccounts` (`max_values`: Some(1), `max_size`: Some(3202), added: 3697, mode: `MaxEncodedLen`) + /// Storage: `Alliance::UnscrupulousWebsites` (r:1 w:1) + /// Proof: `Alliance::UnscrupulousWebsites` (`max_values`: Some(1), `max_size`: Some(25702), added: 26197, mode: `MaxEncodedLen`) + /// The range of component `n` is `[0, 100]`. + /// The range of component `l` is `[0, 255]`. + fn add_unscrupulous_items(n: u32, l: u32, ) -> Weight { + // Proof Size summary in bytes: + // Measured: `76` + // Estimated: `27187` + // Minimum execution time: 7_189_000 picoseconds. + Weight::from_parts(7_387_000, 0) + .saturating_add(Weight::from_parts(0, 27187)) + // Standard Error: 3_417 + .saturating_add(Weight::from_parts(1_581_413, 0).saturating_mul(n.into())) + // Standard Error: 1_338 + .saturating_add(Weight::from_parts(67_739, 0).saturating_mul(l.into())) + .saturating_add(T::DbWeight::get().reads(2)) + .saturating_add(T::DbWeight::get().writes(2)) + } + /// Storage: `Alliance::UnscrupulousAccounts` (r:1 w:1) + /// Proof: `Alliance::UnscrupulousAccounts` (`max_values`: Some(1), `max_size`: Some(3202), added: 3697, mode: `MaxEncodedLen`) + /// Storage: `Alliance::UnscrupulousWebsites` (r:1 w:1) + /// Proof: `Alliance::UnscrupulousWebsites` (`max_values`: Some(1), `max_size`: Some(25702), added: 26197, mode: `MaxEncodedLen`) + /// The range of component `n` is `[0, 100]`. + /// The range of component `l` is `[0, 255]`. + fn remove_unscrupulous_items(n: u32, l: u32, ) -> Weight { + // Proof Size summary in bytes: + // Measured: `0 + l * (100 ±0) + n * (289 ±0)` + // Estimated: `27187` + // Minimum execution time: 7_201_000 picoseconds. + Weight::from_parts(7_325_000, 0) + .saturating_add(Weight::from_parts(0, 27187)) + // Standard Error: 183_302 + .saturating_add(Weight::from_parts(16_886_382, 0).saturating_mul(n.into())) + // Standard Error: 71_789 + .saturating_add(Weight::from_parts(352_937, 0).saturating_mul(l.into())) + .saturating_add(T::DbWeight::get().reads(2)) + .saturating_add(T::DbWeight::get().writes(2)) + } + /// Storage: `Alliance::Members` (r:3 w:2) + /// Proof: `Alliance::Members` (`max_values`: None, `max_size`: Some(3211), added: 5686, mode: `MaxEncodedLen`) + /// Storage: `AllianceMotion::Proposals` (r:1 w:0) + /// Proof: `AllianceMotion::Proposals` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `AllianceMotion::Members` (r:0 w:1) + /// Proof: `AllianceMotion::Members` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `AllianceMotion::Prime` (r:0 w:1) + /// Proof: `AllianceMotion::Prime` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + fn abdicate_fellow_status() -> Weight { + // Proof Size summary in bytes: + // Measured: `236` + // Estimated: `18048` + // Minimum execution time: 29_653_000 picoseconds. + Weight::from_parts(30_365_000, 0) + .saturating_add(Weight::from_parts(0, 18048)) + .saturating_add(T::DbWeight::get().reads(4)) + .saturating_add(T::DbWeight::get().writes(4)) + } +} diff --git a/cumulus/parachains/runtimes/collectives/collectives-polkadot/src/weights/pallet_balances.rs b/cumulus/parachains/runtimes/collectives/collectives-polkadot/src/weights/pallet_balances.rs new file mode 100644 index 000000000000..dd0c02ab8730 --- /dev/null +++ b/cumulus/parachains/runtimes/collectives/collectives-polkadot/src/weights/pallet_balances.rs @@ -0,0 +1,153 @@ +// Copyright (C) Parity Technologies (UK) Ltd. +// This file is part of Cumulus. + +// Cumulus 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. + +// Cumulus 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 Cumulus. 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-07-31, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! WORST CASE MAP SIZE: `1000000` +//! HOSTNAME: `runner-ynta1nyy-project-238-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz` +//! EXECUTION: ``, WASM-EXECUTION: `Compiled`, CHAIN: `Some("collectives-polkadot-dev")`, DB CACHE: 1024 + +// Executed Command: +// ./target/production/polkadot-parachain +// benchmark +// pallet +// --chain=collectives-polkadot-dev +// --wasm-execution=compiled +// --pallet=pallet_balances +// --no-storage-info +// --no-median-slopes +// --no-min-squares +// --extrinsic=* +// --steps=50 +// --repeat=20 +// --json +// --header=./file_header.txt +// --output=./parachains/runtimes/collectives/collectives-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_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_696_000 picoseconds. + Weight::from_parts(56_582_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: 40_885_000 picoseconds. + Weight::from_parts(41_993_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: `103` + // Estimated: `3593` + // Minimum execution time: 14_565_000 picoseconds. + Weight::from_parts(15_080_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: `103` + // Estimated: `3593` + // Minimum execution time: 22_158_000 picoseconds. + Weight::from_parts(22_715_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_957_000 picoseconds. + Weight::from_parts(58_618_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: 52_018_000 picoseconds. + Weight::from_parts(52_795_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: `103` + // Estimated: `3593` + // Minimum execution time: 17_469_000 picoseconds. + Weight::from_parts(18_030_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]`. + fn upgrade_accounts(u: u32, ) -> Weight { + // Proof Size summary in bytes: + // Measured: `0 + u * (136 ±0)` + // Estimated: `990 + u * (2603 ±0)` + // Minimum execution time: 17_223_000 picoseconds. + Weight::from_parts(17_587_000, 0) + .saturating_add(Weight::from_parts(0, 990)) + // Standard Error: 16_201 + .saturating_add(Weight::from_parts(15_360_967, 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/cumulus/parachains/runtimes/collectives/collectives-polkadot/src/weights/pallet_collator_selection.rs b/cumulus/parachains/runtimes/collectives/collectives-polkadot/src/weights/pallet_collator_selection.rs new file mode 100644 index 000000000000..ea237d602a9b --- /dev/null +++ b/cumulus/parachains/runtimes/collectives/collectives-polkadot/src/weights/pallet_collator_selection.rs @@ -0,0 +1,223 @@ +// Copyright (C) Parity Technologies (UK) Ltd. +// This file is part of Cumulus. + +// Cumulus 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. + +// Cumulus 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 Cumulus. If not, see . + +//! Autogenerated weights for `pallet_collator_selection` +//! +//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev +//! DATE: 2023-07-31, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! WORST CASE MAP SIZE: `1000000` +//! HOSTNAME: `runner-ynta1nyy-project-238-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz` +//! EXECUTION: ``, WASM-EXECUTION: `Compiled`, CHAIN: `Some("collectives-polkadot-dev")`, DB CACHE: 1024 + +// Executed Command: +// ./target/production/polkadot-parachain +// benchmark +// pallet +// --chain=collectives-polkadot-dev +// --wasm-execution=compiled +// --pallet=pallet_collator_selection +// --no-storage-info +// --no-median-slopes +// --no-min-squares +// --extrinsic=* +// --steps=50 +// --repeat=20 +// --json +// --header=./file_header.txt +// --output=./parachains/runtimes/collectives/collectives-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_collator_selection`. +pub struct WeightInfo(PhantomData); +impl pallet_collator_selection::WeightInfo for WeightInfo { + /// Storage: `Session::NextKeys` (r:20 w:0) + /// Proof: `Session::NextKeys` (`max_values`: None, `max_size`: None, mode: `Measured`) + /// Storage: `CollatorSelection::Invulnerables` (r:0 w:1) + /// Proof: `CollatorSelection::Invulnerables` (`max_values`: Some(1), `max_size`: Some(641), added: 1136, mode: `MaxEncodedLen`) + /// The range of component `b` is `[1, 20]`. + fn set_invulnerables(b: u32, ) -> Weight { + // Proof Size summary in bytes: + // Measured: `163 + b * (79 ±0)` + // Estimated: `1154 + b * (2555 ±0)` + // Minimum execution time: 14_616_000 picoseconds. + Weight::from_parts(12_150_410, 0) + .saturating_add(Weight::from_parts(0, 1154)) + // Standard Error: 6_270 + .saturating_add(Weight::from_parts(3_256_932, 0).saturating_mul(b.into())) + .saturating_add(T::DbWeight::get().reads((1_u64).saturating_mul(b.into()))) + .saturating_add(T::DbWeight::get().writes(1)) + .saturating_add(Weight::from_parts(0, 2555).saturating_mul(b.into())) + } + /// Storage: `Session::NextKeys` (r:1 w:0) + /// Proof: `Session::NextKeys` (`max_values`: None, `max_size`: None, mode: `Measured`) + /// Storage: `CollatorSelection::Invulnerables` (r:1 w:1) + /// Proof: `CollatorSelection::Invulnerables` (`max_values`: Some(1), `max_size`: Some(641), added: 1136, mode: `MaxEncodedLen`) + /// Storage: `CollatorSelection::Candidates` (r:1 w:1) + /// Proof: `CollatorSelection::Candidates` (`max_values`: Some(1), `max_size`: Some(4802), added: 5297, 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 `b` is `[1, 19]`. + /// The range of component `c` is `[1, 99]`. + fn add_invulnerable(b: u32, c: u32, ) -> Weight { + // Proof Size summary in bytes: + // Measured: `756 + b * (32 ±0) + c * (53 ±0)` + // Estimated: `6287 + b * (37 ±0) + c * (53 ±0)` + // Minimum execution time: 48_450_000 picoseconds. + Weight::from_parts(51_166_679, 0) + .saturating_add(Weight::from_parts(0, 6287)) + // Standard Error: 2_588 + .saturating_add(Weight::from_parts(167_219, 0).saturating_mul(c.into())) + .saturating_add(T::DbWeight::get().reads(4)) + .saturating_add(T::DbWeight::get().writes(3)) + .saturating_add(Weight::from_parts(0, 37).saturating_mul(b.into())) + .saturating_add(Weight::from_parts(0, 53).saturating_mul(c.into())) + } + /// Storage: `CollatorSelection::Candidates` (r:1 w:0) + /// Proof: `CollatorSelection::Candidates` (`max_values`: Some(1), `max_size`: Some(4802), added: 5297, mode: `MaxEncodedLen`) + /// Storage: `CollatorSelection::Invulnerables` (r:1 w:1) + /// Proof: `CollatorSelection::Invulnerables` (`max_values`: Some(1), `max_size`: Some(641), added: 1136, mode: `MaxEncodedLen`) + /// The range of component `b` is `[5, 20]`. + fn remove_invulnerable(b: u32, ) -> Weight { + // Proof Size summary in bytes: + // Measured: `119 + b * (32 ±0)` + // Estimated: `6287` + // Minimum execution time: 15_830_000 picoseconds. + Weight::from_parts(15_792_847, 0) + .saturating_add(Weight::from_parts(0, 6287)) + // Standard Error: 5_343 + .saturating_add(Weight::from_parts(167_955, 0).saturating_mul(b.into())) + .saturating_add(T::DbWeight::get().reads(2)) + .saturating_add(T::DbWeight::get().writes(1)) + } + /// Storage: `CollatorSelection::DesiredCandidates` (r:0 w:1) + /// Proof: `CollatorSelection::DesiredCandidates` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`) + fn set_desired_candidates() -> Weight { + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 7_424_000 picoseconds. + Weight::from_parts(7_767_000, 0) + .saturating_add(Weight::from_parts(0, 0)) + .saturating_add(T::DbWeight::get().writes(1)) + } + /// Storage: `CollatorSelection::CandidacyBond` (r:0 w:1) + /// Proof: `CollatorSelection::CandidacyBond` (`max_values`: Some(1), `max_size`: Some(16), added: 511, mode: `MaxEncodedLen`) + fn set_candidacy_bond() -> Weight { + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 7_388_000 picoseconds. + Weight::from_parts(7_677_000, 0) + .saturating_add(Weight::from_parts(0, 0)) + .saturating_add(T::DbWeight::get().writes(1)) + } + /// Storage: `CollatorSelection::Candidates` (r:1 w:1) + /// Proof: `CollatorSelection::Candidates` (`max_values`: Some(1), `max_size`: Some(4802), added: 5297, mode: `MaxEncodedLen`) + /// Storage: `CollatorSelection::DesiredCandidates` (r:1 w:0) + /// Proof: `CollatorSelection::DesiredCandidates` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`) + /// Storage: `CollatorSelection::Invulnerables` (r:1 w:0) + /// Proof: `CollatorSelection::Invulnerables` (`max_values`: Some(1), `max_size`: Some(641), added: 1136, mode: `MaxEncodedLen`) + /// Storage: `Session::NextKeys` (r:1 w:0) + /// Proof: `Session::NextKeys` (`max_values`: None, `max_size`: None, mode: `Measured`) + /// Storage: `CollatorSelection::CandidacyBond` (r:1 w:0) + /// Proof: `CollatorSelection::CandidacyBond` (`max_values`: Some(1), `max_size`: Some(16), added: 511, mode: `MaxEncodedLen`) + /// Storage: `CollatorSelection::LastAuthoredBlock` (r:0 w:1) + /// Proof: `CollatorSelection::LastAuthoredBlock` (`max_values`: None, `max_size`: Some(44), added: 2519, mode: `MaxEncodedLen`) + /// The range of component `c` is `[1, 99]`. + fn register_as_candidate(c: u32, ) -> Weight { + // Proof Size summary in bytes: + // Measured: `736 + c * (52 ±0)` + // Estimated: `6287 + c * (54 ±0)` + // Minimum execution time: 41_241_000 picoseconds. + Weight::from_parts(46_090_319, 0) + .saturating_add(Weight::from_parts(0, 6287)) + // Standard Error: 2_918 + .saturating_add(Weight::from_parts(161_140, 0).saturating_mul(c.into())) + .saturating_add(T::DbWeight::get().reads(5)) + .saturating_add(T::DbWeight::get().writes(2)) + .saturating_add(Weight::from_parts(0, 54).saturating_mul(c.into())) + } + /// Storage: `CollatorSelection::Candidates` (r:1 w:1) + /// Proof: `CollatorSelection::Candidates` (`max_values`: Some(1), `max_size`: Some(4802), added: 5297, mode: `MaxEncodedLen`) + /// Storage: `CollatorSelection::Invulnerables` (r:1 w:0) + /// Proof: `CollatorSelection::Invulnerables` (`max_values`: Some(1), `max_size`: Some(641), added: 1136, mode: `MaxEncodedLen`) + /// Storage: `CollatorSelection::LastAuthoredBlock` (r:0 w:1) + /// Proof: `CollatorSelection::LastAuthoredBlock` (`max_values`: None, `max_size`: Some(44), added: 2519, mode: `MaxEncodedLen`) + /// The range of component `c` is `[4, 100]`. + fn leave_intent(c: u32, ) -> Weight { + // Proof Size summary in bytes: + // Measured: `306 + c * (50 ±0)` + // Estimated: `6287` + // Minimum execution time: 34_221_000 picoseconds. + Weight::from_parts(36_183_872, 0) + .saturating_add(Weight::from_parts(0, 6287)) + // Standard Error: 2_766 + .saturating_add(Weight::from_parts(168_742, 0).saturating_mul(c.into())) + .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: `System::BlockWeight` (r:1 w:1) + /// Proof: `System::BlockWeight` (`max_values`: Some(1), `max_size`: Some(48), added: 543, mode: `MaxEncodedLen`) + /// Storage: `CollatorSelection::LastAuthoredBlock` (r:0 w:1) + /// Proof: `CollatorSelection::LastAuthoredBlock` (`max_values`: None, `max_size`: Some(44), added: 2519, mode: `MaxEncodedLen`) + fn note_author() -> Weight { + // Proof Size summary in bytes: + // Measured: `103` + // Estimated: `6196` + // Minimum execution time: 43_910_000 picoseconds. + Weight::from_parts(44_796_000, 0) + .saturating_add(Weight::from_parts(0, 6196)) + .saturating_add(T::DbWeight::get().reads(3)) + .saturating_add(T::DbWeight::get().writes(4)) + } + /// Storage: `CollatorSelection::Candidates` (r:1 w:0) + /// Proof: `CollatorSelection::Candidates` (`max_values`: Some(1), `max_size`: Some(4802), added: 5297, mode: `MaxEncodedLen`) + /// Storage: `CollatorSelection::LastAuthoredBlock` (r:100 w:0) + /// Proof: `CollatorSelection::LastAuthoredBlock` (`max_values`: None, `max_size`: Some(44), added: 2519, mode: `MaxEncodedLen`) + /// Storage: `CollatorSelection::Invulnerables` (r:1 w:0) + /// Proof: `CollatorSelection::Invulnerables` (`max_values`: Some(1), `max_size`: Some(641), added: 1136, mode: `MaxEncodedLen`) + /// Storage: `System::BlockWeight` (r:1 w:1) + /// Proof: `System::BlockWeight` (`max_values`: Some(1), `max_size`: Some(48), added: 543, mode: `MaxEncodedLen`) + /// Storage: `System::Account` (r:97 w:97) + /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`) + /// The range of component `r` is `[1, 100]`. + /// The range of component `c` is `[1, 100]`. + fn new_session(r: u32, c: u32, ) -> Weight { + // Proof Size summary in bytes: + // Measured: `2243 + c * (97 ±0) + r * (112 ±0)` + // Estimated: `6287 + c * (2519 ±0) + r * (2603 ±0)` + // Minimum execution time: 17_092_000 picoseconds. + Weight::from_parts(17_635_000, 0) + .saturating_add(Weight::from_parts(0, 6287)) + // Standard Error: 351_635 + .saturating_add(Weight::from_parts(15_162_192, 0).saturating_mul(c.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().writes(1)) + .saturating_add(T::DbWeight::get().writes((1_u64).saturating_mul(c.into()))) + .saturating_add(Weight::from_parts(0, 2519).saturating_mul(c.into())) + .saturating_add(Weight::from_parts(0, 2603).saturating_mul(r.into())) + } +} diff --git a/cumulus/parachains/runtimes/collectives/collectives-polkadot/src/weights/pallet_collective.rs b/cumulus/parachains/runtimes/collectives/collectives-polkadot/src/weights/pallet_collective.rs new file mode 100644 index 000000000000..2d344ad0db7b --- /dev/null +++ b/cumulus/parachains/runtimes/collectives/collectives-polkadot/src/weights/pallet_collective.rs @@ -0,0 +1,305 @@ +// Copyright (C) Parity Technologies (UK) Ltd. +// This file is part of Cumulus. + +// Cumulus 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. + +// Cumulus 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 Cumulus. If not, see . + +//! Autogenerated weights for `pallet_collective` +//! +//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev +//! DATE: 2023-07-31, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! WORST CASE MAP SIZE: `1000000` +//! HOSTNAME: `runner-ynta1nyy-project-238-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz` +//! EXECUTION: ``, WASM-EXECUTION: `Compiled`, CHAIN: `Some("collectives-polkadot-dev")`, DB CACHE: 1024 + +// Executed Command: +// ./target/production/polkadot-parachain +// benchmark +// pallet +// --chain=collectives-polkadot-dev +// --wasm-execution=compiled +// --pallet=pallet_collective +// --no-storage-info +// --no-median-slopes +// --no-min-squares +// --extrinsic=* +// --steps=50 +// --repeat=20 +// --json +// --header=./file_header.txt +// --output=./parachains/runtimes/collectives/collectives-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_collective`. +pub struct WeightInfo(PhantomData); +impl pallet_collective::WeightInfo for WeightInfo { + /// Storage: `AllianceMotion::Members` (r:1 w:1) + /// Proof: `AllianceMotion::Members` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `AllianceMotion::Proposals` (r:1 w:0) + /// Proof: `AllianceMotion::Proposals` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `AllianceMotion::Voting` (r:100 w:100) + /// Proof: `AllianceMotion::Voting` (`max_values`: None, `max_size`: None, mode: `Measured`) + /// Storage: `AllianceMotion::Prime` (r:0 w:1) + /// Proof: `AllianceMotion::Prime` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// The range of component `m` is `[0, 100]`. + /// The range of component `n` is `[0, 100]`. + /// The range of component `p` is `[0, 100]`. + fn set_members(m: u32, _n: u32, p: u32, ) -> Weight { + // Proof Size summary in bytes: + // Measured: `0 + m * (3232 ±0) + p * (3190 ±0)` + // Estimated: `15691 + m * (1967 ±23) + p * (4332 ±23)` + // Minimum execution time: 16_410_000 picoseconds. + Weight::from_parts(16_816_000, 0) + .saturating_add(Weight::from_parts(0, 15691)) + // Standard Error: 59_812 + .saturating_add(Weight::from_parts(4_516_537, 0).saturating_mul(m.into())) + // Standard Error: 59_812 + .saturating_add(Weight::from_parts(7_992_168, 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)) + .saturating_add(T::DbWeight::get().writes((1_u64).saturating_mul(p.into()))) + .saturating_add(Weight::from_parts(0, 1967).saturating_mul(m.into())) + .saturating_add(Weight::from_parts(0, 4332).saturating_mul(p.into())) + } + /// Storage: `AllianceMotion::Members` (r:1 w:0) + /// Proof: `AllianceMotion::Members` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// The range of component `b` is `[2, 1024]`. + /// The range of component `m` is `[1, 100]`. + fn execute(b: u32, m: u32, ) -> Weight { + // Proof Size summary in bytes: + // Measured: `32 + m * (32 ±0)` + // Estimated: `1518 + m * (32 ±0)` + // Minimum execution time: 14_418_000 picoseconds. + Weight::from_parts(13_588_617, 0) + .saturating_add(Weight::from_parts(0, 1518)) + // Standard Error: 21 + .saturating_add(Weight::from_parts(1_711, 0).saturating_mul(b.into())) + // Standard Error: 223 + .saturating_add(Weight::from_parts(13_836, 0).saturating_mul(m.into())) + .saturating_add(T::DbWeight::get().reads(1)) + .saturating_add(Weight::from_parts(0, 32).saturating_mul(m.into())) + } + /// Storage: `AllianceMotion::Members` (r:1 w:0) + /// Proof: `AllianceMotion::Members` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `AllianceMotion::ProposalOf` (r:1 w:0) + /// Proof: `AllianceMotion::ProposalOf` (`max_values`: None, `max_size`: None, mode: `Measured`) + /// The range of component `b` is `[2, 1024]`. + /// The range of component `m` is `[1, 100]`. + fn propose_execute(b: u32, m: u32, ) -> Weight { + // Proof Size summary in bytes: + // Measured: `32 + m * (32 ±0)` + // Estimated: `3498 + m * (32 ±0)` + // Minimum execution time: 17_174_000 picoseconds. + Weight::from_parts(16_192_764, 0) + .saturating_add(Weight::from_parts(0, 3498)) + // Standard Error: 27 + .saturating_add(Weight::from_parts(1_672, 0).saturating_mul(b.into())) + // Standard Error: 280 + .saturating_add(Weight::from_parts(24_343, 0).saturating_mul(m.into())) + .saturating_add(T::DbWeight::get().reads(2)) + .saturating_add(Weight::from_parts(0, 32).saturating_mul(m.into())) + } + /// Storage: `AllianceMotion::Members` (r:1 w:0) + /// Proof: `AllianceMotion::Members` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `AllianceMotion::ProposalOf` (r:1 w:1) + /// Proof: `AllianceMotion::ProposalOf` (`max_values`: None, `max_size`: None, mode: `Measured`) + /// Storage: `AllianceMotion::Proposals` (r:1 w:1) + /// Proof: `AllianceMotion::Proposals` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `AllianceMotion::ProposalCount` (r:1 w:1) + /// Proof: `AllianceMotion::ProposalCount` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `AllianceMotion::Voting` (r:0 w:1) + /// Proof: `AllianceMotion::Voting` (`max_values`: None, `max_size`: None, mode: `Measured`) + /// The range of component `b` is `[2, 1024]`. + /// The range of component `m` is `[2, 100]`. + /// The range of component `p` is `[1, 100]`. + fn propose_proposed(b: u32, m: u32, p: u32, ) -> Weight { + // Proof Size summary in bytes: + // Measured: `322 + m * (32 ±0) + p * (36 ±0)` + // Estimated: `3714 + m * (33 ±0) + p * (36 ±0)` + // Minimum execution time: 23_970_000 picoseconds. + Weight::from_parts(23_004_052, 0) + .saturating_add(Weight::from_parts(0, 3714)) + // Standard Error: 123 + .saturating_add(Weight::from_parts(2_728, 0).saturating_mul(b.into())) + // Standard Error: 1_291 + .saturating_add(Weight::from_parts(32_731, 0).saturating_mul(m.into())) + // Standard Error: 1_275 + .saturating_add(Weight::from_parts(199_537, 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())) + .saturating_add(Weight::from_parts(0, 36).saturating_mul(p.into())) + } + /// Storage: `AllianceMotion::Members` (r:1 w:0) + /// Proof: `AllianceMotion::Members` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `AllianceMotion::Voting` (r:1 w:1) + /// Proof: `AllianceMotion::Voting` (`max_values`: None, `max_size`: None, mode: `Measured`) + /// The range of component `m` is `[5, 100]`. + fn vote(m: u32, ) -> Weight { + // Proof Size summary in bytes: + // Measured: `771 + m * (64 ±0)` + // Estimated: `4235 + m * (64 ±0)` + // Minimum execution time: 25_843_000 picoseconds. + Weight::from_parts(26_092_578, 0) + .saturating_add(Weight::from_parts(0, 4235)) + // Standard Error: 1_785 + .saturating_add(Weight::from_parts(67_298, 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())) + } + /// Storage: `AllianceMotion::Voting` (r:1 w:1) + /// Proof: `AllianceMotion::Voting` (`max_values`: None, `max_size`: None, mode: `Measured`) + /// Storage: `AllianceMotion::Members` (r:1 w:0) + /// Proof: `AllianceMotion::Members` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `AllianceMotion::Proposals` (r:1 w:1) + /// Proof: `AllianceMotion::Proposals` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `AllianceMotion::ProposalOf` (r:0 w:1) + /// Proof: `AllianceMotion::ProposalOf` (`max_values`: None, `max_size`: None, mode: `Measured`) + /// The range of component `m` is `[4, 100]`. + /// The range of component `p` is `[1, 100]`. + fn close_early_disapproved(m: u32, p: u32, ) -> Weight { + // Proof Size summary in bytes: + // Measured: `360 + m * (64 ±0) + p * (36 ±0)` + // Estimated: `3805 + m * (65 ±0) + p * (36 ±0)` + // Minimum execution time: 27_543_000 picoseconds. + Weight::from_parts(26_505_473, 0) + .saturating_add(Weight::from_parts(0, 3805)) + // Standard Error: 1_054 + .saturating_add(Weight::from_parts(35_295, 0).saturating_mul(m.into())) + // Standard Error: 1_028 + .saturating_add(Weight::from_parts(190_508, 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())) + .saturating_add(Weight::from_parts(0, 36).saturating_mul(p.into())) + } + /// Storage: `AllianceMotion::Voting` (r:1 w:1) + /// Proof: `AllianceMotion::Voting` (`max_values`: None, `max_size`: None, mode: `Measured`) + /// Storage: `AllianceMotion::Members` (r:1 w:0) + /// Proof: `AllianceMotion::Members` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `AllianceMotion::ProposalOf` (r:1 w:1) + /// Proof: `AllianceMotion::ProposalOf` (`max_values`: None, `max_size`: None, mode: `Measured`) + /// Storage: `AllianceMotion::Proposals` (r:1 w:1) + /// Proof: `AllianceMotion::Proposals` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// The range of component `b` is `[2, 1024]`. + /// The range of component `m` is `[4, 100]`. + /// The range of component `p` is `[1, 100]`. + fn close_early_approved(b: u32, m: u32, p: u32, ) -> Weight { + // Proof Size summary in bytes: + // Measured: `662 + b * (1 ±0) + m * (64 ±0) + p * (40 ±0)` + // Estimated: `3979 + b * (1 ±0) + m * (66 ±0) + p * (40 ±0)` + // Minimum execution time: 40_375_000 picoseconds. + Weight::from_parts(34_081_294, 0) + .saturating_add(Weight::from_parts(0, 3979)) + // Standard Error: 196 + .saturating_add(Weight::from_parts(3_796, 0).saturating_mul(b.into())) + // Standard Error: 2_072 + .saturating_add(Weight::from_parts(50_954, 0).saturating_mul(m.into())) + // Standard Error: 2_020 + .saturating_add(Weight::from_parts(246_000, 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())) + .saturating_add(Weight::from_parts(0, 66).saturating_mul(m.into())) + .saturating_add(Weight::from_parts(0, 40).saturating_mul(p.into())) + } + /// Storage: `AllianceMotion::Voting` (r:1 w:1) + /// Proof: `AllianceMotion::Voting` (`max_values`: None, `max_size`: None, mode: `Measured`) + /// Storage: `AllianceMotion::Members` (r:1 w:0) + /// Proof: `AllianceMotion::Members` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `AllianceMotion::Prime` (r:1 w:0) + /// Proof: `AllianceMotion::Prime` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `AllianceMotion::Proposals` (r:1 w:1) + /// Proof: `AllianceMotion::Proposals` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `AllianceMotion::ProposalOf` (r:0 w:1) + /// Proof: `AllianceMotion::ProposalOf` (`max_values`: None, `max_size`: None, mode: `Measured`) + /// The range of component `m` is `[4, 100]`. + /// The range of component `p` is `[1, 100]`. + fn close_disapproved(m: u32, p: u32, ) -> Weight { + // Proof Size summary in bytes: + // Measured: `458 + m * (48 ±0) + p * (36 ±0)` + // Estimated: `3898 + m * (49 ±0) + p * (36 ±0)` + // Minimum execution time: 28_793_000 picoseconds. + Weight::from_parts(29_656_832, 0) + .saturating_add(Weight::from_parts(0, 3898)) + // Standard Error: 1_214 + .saturating_add(Weight::from_parts(22_148, 0).saturating_mul(m.into())) + // Standard Error: 1_184 + .saturating_add(Weight::from_parts(189_860, 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, 49).saturating_mul(m.into())) + .saturating_add(Weight::from_parts(0, 36).saturating_mul(p.into())) + } + /// Storage: `AllianceMotion::Voting` (r:1 w:1) + /// Proof: `AllianceMotion::Voting` (`max_values`: None, `max_size`: None, mode: `Measured`) + /// Storage: `AllianceMotion::Members` (r:1 w:0) + /// Proof: `AllianceMotion::Members` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `AllianceMotion::Prime` (r:1 w:0) + /// Proof: `AllianceMotion::Prime` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `AllianceMotion::ProposalOf` (r:1 w:1) + /// Proof: `AllianceMotion::ProposalOf` (`max_values`: None, `max_size`: None, mode: `Measured`) + /// Storage: `AllianceMotion::Proposals` (r:1 w:1) + /// Proof: `AllianceMotion::Proposals` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// The range of component `b` is `[2, 1024]`. + /// The range of component `m` is `[4, 100]`. + /// The range of component `p` is `[1, 100]`. + fn close_approved(b: u32, m: u32, p: u32, ) -> Weight { + // Proof Size summary in bytes: + // Measured: `682 + b * (1 ±0) + m * (64 ±0) + p * (40 ±0)` + // Estimated: `3999 + b * (1 ±0) + m * (66 ±0) + p * (40 ±0)` + // Minimum execution time: 40_887_000 picoseconds. + Weight::from_parts(39_529_567, 0) + .saturating_add(Weight::from_parts(0, 3999)) + // Standard Error: 191 + .saturating_add(Weight::from_parts(2_802, 0).saturating_mul(b.into())) + // Standard Error: 2_021 + .saturating_add(Weight::from_parts(35_956, 0).saturating_mul(m.into())) + // Standard Error: 1_970 + .saturating_add(Weight::from_parts(235_154, 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())) + .saturating_add(Weight::from_parts(0, 66).saturating_mul(m.into())) + .saturating_add(Weight::from_parts(0, 40).saturating_mul(p.into())) + } + /// Storage: `AllianceMotion::Proposals` (r:1 w:1) + /// Proof: `AllianceMotion::Proposals` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `AllianceMotion::Voting` (r:0 w:1) + /// Proof: `AllianceMotion::Voting` (`max_values`: None, `max_size`: None, mode: `Measured`) + /// Storage: `AllianceMotion::ProposalOf` (r:0 w:1) + /// Proof: `AllianceMotion::ProposalOf` (`max_values`: None, `max_size`: None, mode: `Measured`) + /// The range of component `p` is `[1, 100]`. + fn disapprove_proposal(p: u32, ) -> Weight { + // Proof Size summary in bytes: + // Measured: `189 + p * (32 ±0)` + // Estimated: `1674 + p * (32 ±0)` + // Minimum execution time: 14_040_000 picoseconds. + Weight::from_parts(15_075_964, 0) + .saturating_add(Weight::from_parts(0, 1674)) + // Standard Error: 854 + .saturating_add(Weight::from_parts(159_597, 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/cumulus/parachains/runtimes/collectives/collectives-polkadot/src/weights/pallet_collective_content.rs b/cumulus/parachains/runtimes/collectives/collectives-polkadot/src/weights/pallet_collective_content.rs new file mode 100644 index 000000000000..e66907b94530 --- /dev/null +++ b/cumulus/parachains/runtimes/collectives/collectives-polkadot/src/weights/pallet_collective_content.rs @@ -0,0 +1,94 @@ +// Copyright (C) Parity Technologies (UK) Ltd. +// This file is part of Cumulus. + +// Cumulus 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. + +// Cumulus 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 Cumulus. If not, see . + +//! Autogenerated weights for `pallet_collective_content` +//! +//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev +//! DATE: 2023-08-18, STEPS: `10`, REPEAT: `3`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! WORST CASE MAP SIZE: `1000000` +//! HOSTNAME: `cob`, CPU: `` +//! WASM-EXECUTION: `Compiled`, CHAIN: `Some("collectives-polkadot-dev")`, DB CACHE: 1024 + +// Executed Command: +// ./target/debug/polkadot-parachain +// benchmark +// pallet +// --chain=collectives-polkadot-dev +// --steps=10 +// --repeat=3 +// --pallet=pallet_collective_content +// --extrinsic=* +// --wasm-execution=compiled +// --heap-pages=4096 +// --output=./parachains/runtimes/collectives/collectives-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_collective_content`. +pub struct WeightInfo(PhantomData); +impl pallet_collective_content::WeightInfo for WeightInfo { + /// Storage: `AmbassadorContent::Charter` (r:0 w:1) + /// Proof: `AmbassadorContent::Charter` (`max_values`: Some(1), `max_size`: Some(70), added: 565, mode: `MaxEncodedLen`) + fn set_charter() -> Weight { + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 99_000_000 picoseconds. + Weight::from_parts(99_000_000, 0) + .saturating_add(Weight::from_parts(0, 0)) + .saturating_add(T::DbWeight::get().writes(1)) + } + /// Storage: `AmbassadorCollective::Members` (r:1 w:0) + /// Proof: `AmbassadorCollective::Members` (`max_values`: None, `max_size`: Some(42), added: 2517, mode: `MaxEncodedLen`) + /// Storage: `AmbassadorContent::AnnouncementsCount` (r:1 w:1) + /// Proof: `AmbassadorContent::AnnouncementsCount` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`) + /// Storage: `AmbassadorContent::NextAnnouncementExpireAt` (r:1 w:1) + /// Proof: `AmbassadorContent::NextAnnouncementExpireAt` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`) + /// Storage: `AmbassadorContent::Announcements` (r:0 w:1) + /// Proof: `AmbassadorContent::Announcements` (`max_values`: None, `max_size`: Some(90), added: 2565, mode: `MaxEncodedLen`) + fn announce() -> Weight { + // Proof Size summary in bytes: + // Measured: `285` + // Estimated: `3507` + // Minimum execution time: 273_000_000 picoseconds. + Weight::from_parts(278_000_000, 0) + .saturating_add(Weight::from_parts(0, 3507)) + .saturating_add(T::DbWeight::get().reads(3)) + .saturating_add(T::DbWeight::get().writes(3)) + } + /// Storage: `AmbassadorCollective::Members` (r:1 w:0) + /// Proof: `AmbassadorCollective::Members` (`max_values`: None, `max_size`: Some(42), added: 2517, mode: `MaxEncodedLen`) + /// Storage: `AmbassadorContent::Announcements` (r:1 w:1) + /// Proof: `AmbassadorContent::Announcements` (`max_values`: None, `max_size`: Some(90), added: 2565, mode: `MaxEncodedLen`) + /// Storage: `AmbassadorContent::AnnouncementsCount` (r:1 w:1) + /// Proof: `AmbassadorContent::AnnouncementsCount` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`) + fn remove_announcement() -> Weight { + // Proof Size summary in bytes: + // Measured: `450` + // Estimated: `3555` + // Minimum execution time: 326_000_000 picoseconds. + Weight::from_parts(338_000_000, 0) + .saturating_add(Weight::from_parts(0, 3555)) + .saturating_add(T::DbWeight::get().reads(3)) + .saturating_add(T::DbWeight::get().writes(2)) + } +} diff --git a/cumulus/parachains/runtimes/collectives/collectives-polkadot/src/weights/pallet_core_fellowship_ambassador_core.rs b/cumulus/parachains/runtimes/collectives/collectives-polkadot/src/weights/pallet_core_fellowship_ambassador_core.rs new file mode 100644 index 000000000000..f40940a8b25f --- /dev/null +++ b/cumulus/parachains/runtimes/collectives/collectives-polkadot/src/weights/pallet_core_fellowship_ambassador_core.rs @@ -0,0 +1,223 @@ +// Copyright Parity Technologies (UK) Ltd. +// This file is part of Cumulus. + +// Cumulus 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. + +// Cumulus 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 Cumulus. If not, see . + +//! Autogenerated weights for `pallet_core_fellowship` +//! +//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev +//! DATE: 2023-08-11, STEPS: `2`, REPEAT: `2`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! WORST CASE MAP SIZE: `1000000` +//! HOSTNAME: `cob`, CPU: `` +//! WASM-EXECUTION: `Compiled`, CHAIN: `Some("collectives-polkadot-dev")`, DB CACHE: 1024 + +// Executed Command: +// target/release/polkadot-parachain +// benchmark +// pallet +// --chain=collectives-polkadot-dev +// --wasm-execution=compiled +// --pallet=pallet_core_fellowship +// --extrinsic=* +// --steps=2 +// --repeat=2 +// --json +// --header=./file_header.txt +// --output=./parachains/runtimes/collectives/collectives-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_core_fellowship`. +pub struct WeightInfo(PhantomData); +impl pallet_core_fellowship::WeightInfo for WeightInfo { + /// Storage: `AmbassadorCore::Params` (r:0 w:1) + /// Proof: `AmbassadorCore::Params` (`max_values`: Some(1), `max_size`: Some(364), added: 859, mode: `MaxEncodedLen`) + fn set_params() -> Weight { + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 11_000_000 picoseconds. + Weight::from_parts(11_000_000, 0) + .saturating_add(Weight::from_parts(0, 0)) + .saturating_add(T::DbWeight::get().writes(1)) + } + /// Storage: `AmbassadorCore::Member` (r:1 w:1) + /// Proof: `AmbassadorCore::Member` (`max_values`: None, `max_size`: Some(49), added: 2524, mode: `MaxEncodedLen`) + /// Storage: `AmbassadorCollective::Members` (r:1 w:1) + /// Proof: `AmbassadorCollective::Members` (`max_values`: None, `max_size`: Some(42), added: 2517, mode: `MaxEncodedLen`) + /// Storage: `AmbassadorCore::Params` (r:1 w:0) + /// Proof: `AmbassadorCore::Params` (`max_values`: Some(1), `max_size`: Some(364), added: 859, mode: `MaxEncodedLen`) + /// Storage: `AmbassadorCollective::MemberCount` (r:1 w:1) + /// Proof: `AmbassadorCollective::MemberCount` (`max_values`: None, `max_size`: Some(14), added: 2489, mode: `MaxEncodedLen`) + /// Storage: `AmbassadorCollective::IdToIndex` (r:1 w:0) + /// Proof: `AmbassadorCollective::IdToIndex` (`max_values`: None, `max_size`: Some(54), added: 2529, mode: `MaxEncodedLen`) + /// Storage: `AmbassadorCore::MemberEvidence` (r:1 w:1) + /// Proof: `AmbassadorCore::MemberEvidence` (`max_values`: None, `max_size`: Some(65581), added: 68056, mode: `MaxEncodedLen`) + fn bump_offboard() -> Weight { + // Proof Size summary in bytes: + // Measured: `66011` + // Estimated: `69046` + // Minimum execution time: 96_000_000 picoseconds. + Weight::from_parts(111_000_000, 0) + .saturating_add(Weight::from_parts(0, 69046)) + .saturating_add(T::DbWeight::get().reads(6)) + .saturating_add(T::DbWeight::get().writes(4)) + } + /// Storage: `AmbassadorCore::Member` (r:1 w:1) + /// Proof: `AmbassadorCore::Member` (`max_values`: None, `max_size`: Some(49), added: 2524, mode: `MaxEncodedLen`) + /// Storage: `AmbassadorCollective::Members` (r:1 w:1) + /// Proof: `AmbassadorCollective::Members` (`max_values`: None, `max_size`: Some(42), added: 2517, mode: `MaxEncodedLen`) + /// Storage: `AmbassadorCore::Params` (r:1 w:0) + /// Proof: `AmbassadorCore::Params` (`max_values`: Some(1), `max_size`: Some(364), added: 859, mode: `MaxEncodedLen`) + /// Storage: `AmbassadorCollective::MemberCount` (r:1 w:1) + /// Proof: `AmbassadorCollective::MemberCount` (`max_values`: None, `max_size`: Some(14), added: 2489, mode: `MaxEncodedLen`) + /// Storage: `AmbassadorCollective::IdToIndex` (r:1 w:0) + /// Proof: `AmbassadorCollective::IdToIndex` (`max_values`: None, `max_size`: Some(54), added: 2529, mode: `MaxEncodedLen`) + /// Storage: `AmbassadorCore::MemberEvidence` (r:1 w:1) + /// Proof: `AmbassadorCore::MemberEvidence` (`max_values`: None, `max_size`: Some(65581), added: 68056, mode: `MaxEncodedLen`) + fn bump_demote() -> Weight { + // Proof Size summary in bytes: + // Measured: `66121` + // Estimated: `69046` + // Minimum execution time: 99_000_000 picoseconds. + Weight::from_parts(116_000_000, 0) + .saturating_add(Weight::from_parts(0, 69046)) + .saturating_add(T::DbWeight::get().reads(6)) + .saturating_add(T::DbWeight::get().writes(4)) + } + /// Storage: `AmbassadorCollective::Members` (r:1 w:0) + /// Proof: `AmbassadorCollective::Members` (`max_values`: None, `max_size`: Some(42), added: 2517, mode: `MaxEncodedLen`) + /// Storage: `AmbassadorCore::Member` (r:1 w:1) + /// Proof: `AmbassadorCore::Member` (`max_values`: None, `max_size`: Some(49), added: 2524, mode: `MaxEncodedLen`) + fn set_active() -> Weight { + // Proof Size summary in bytes: + // Measured: `360` + // Estimated: `3514` + // Minimum execution time: 21_000_000 picoseconds. + Weight::from_parts(22_000_000, 0) + .saturating_add(Weight::from_parts(0, 3514)) + .saturating_add(T::DbWeight::get().reads(2)) + .saturating_add(T::DbWeight::get().writes(1)) + } + /// Storage: `AmbassadorCore::Member` (r:1 w:1) + /// Proof: `AmbassadorCore::Member` (`max_values`: None, `max_size`: Some(49), added: 2524, mode: `MaxEncodedLen`) + /// Storage: `AmbassadorCollective::Members` (r:1 w:1) + /// Proof: `AmbassadorCollective::Members` (`max_values`: None, `max_size`: Some(42), added: 2517, mode: `MaxEncodedLen`) + /// Storage: `AmbassadorCollective::MemberCount` (r:1 w:1) + /// Proof: `AmbassadorCollective::MemberCount` (`max_values`: None, `max_size`: Some(14), added: 2489, mode: `MaxEncodedLen`) + /// Storage: `AmbassadorCollective::IndexToId` (r:0 w:1) + /// Proof: `AmbassadorCollective::IndexToId` (`max_values`: None, `max_size`: Some(54), added: 2529, mode: `MaxEncodedLen`) + /// Storage: `AmbassadorCollective::IdToIndex` (r:0 w:1) + /// Proof: `AmbassadorCollective::IdToIndex` (`max_values`: None, `max_size`: Some(54), added: 2529, mode: `MaxEncodedLen`) + fn induct() -> Weight { + // Proof Size summary in bytes: + // Measured: `118` + // Estimated: `3514` + // Minimum execution time: 36_000_000 picoseconds. + Weight::from_parts(36_000_000, 0) + .saturating_add(Weight::from_parts(0, 3514)) + .saturating_add(T::DbWeight::get().reads(3)) + .saturating_add(T::DbWeight::get().writes(5)) + } + /// Storage: `AmbassadorCollective::Members` (r:1 w:1) + /// Proof: `AmbassadorCollective::Members` (`max_values`: None, `max_size`: Some(42), added: 2517, mode: `MaxEncodedLen`) + /// Storage: `AmbassadorCore::Member` (r:1 w:1) + /// Proof: `AmbassadorCore::Member` (`max_values`: None, `max_size`: Some(49), added: 2524, mode: `MaxEncodedLen`) + /// Storage: `AmbassadorCore::Params` (r:1 w:0) + /// Proof: `AmbassadorCore::Params` (`max_values`: Some(1), `max_size`: Some(364), added: 859, mode: `MaxEncodedLen`) + /// Storage: `AmbassadorCollective::MemberCount` (r:1 w:1) + /// Proof: `AmbassadorCollective::MemberCount` (`max_values`: None, `max_size`: Some(14), added: 2489, mode: `MaxEncodedLen`) + /// Storage: `AmbassadorCore::MemberEvidence` (r:1 w:1) + /// Proof: `AmbassadorCore::MemberEvidence` (`max_values`: None, `max_size`: Some(65581), added: 68056, mode: `MaxEncodedLen`) + /// Storage: `AmbassadorCollective::IndexToId` (r:0 w:1) + /// Proof: `AmbassadorCollective::IndexToId` (`max_values`: None, `max_size`: Some(54), added: 2529, mode: `MaxEncodedLen`) + /// Storage: `AmbassadorCollective::IdToIndex` (r:0 w:1) + /// Proof: `AmbassadorCollective::IdToIndex` (`max_values`: None, `max_size`: Some(54), added: 2529, mode: `MaxEncodedLen`) + fn promote() -> Weight { + // Proof Size summary in bytes: + // Measured: `65989` + // Estimated: `69046` + // Minimum execution time: 95_000_000 picoseconds. + Weight::from_parts(110_000_000, 0) + .saturating_add(Weight::from_parts(0, 69046)) + .saturating_add(T::DbWeight::get().reads(5)) + .saturating_add(T::DbWeight::get().writes(6)) + } + /// Storage: `AmbassadorCollective::Members` (r:1 w:0) + /// Proof: `AmbassadorCollective::Members` (`max_values`: None, `max_size`: Some(42), added: 2517, mode: `MaxEncodedLen`) + /// Storage: `AmbassadorCore::Member` (r:1 w:1) + /// Proof: `AmbassadorCore::Member` (`max_values`: None, `max_size`: Some(49), added: 2524, mode: `MaxEncodedLen`) + /// Storage: `AmbassadorCore::MemberEvidence` (r:0 w:1) + /// Proof: `AmbassadorCore::MemberEvidence` (`max_values`: None, `max_size`: Some(65581), added: 68056, mode: `MaxEncodedLen`) + fn offboard() -> Weight { + // Proof Size summary in bytes: + // Measured: `331` + // Estimated: `3514` + // Minimum execution time: 21_000_000 picoseconds. + Weight::from_parts(22_000_000, 0) + .saturating_add(Weight::from_parts(0, 3514)) + .saturating_add(T::DbWeight::get().reads(2)) + .saturating_add(T::DbWeight::get().writes(2)) + } + /// Storage: `AmbassadorCore::Member` (r:1 w:1) + /// Proof: `AmbassadorCore::Member` (`max_values`: None, `max_size`: Some(49), added: 2524, mode: `MaxEncodedLen`) + /// Storage: `AmbassadorCollective::Members` (r:1 w:0) + /// Proof: `AmbassadorCollective::Members` (`max_values`: None, `max_size`: Some(42), added: 2517, mode: `MaxEncodedLen`) + fn import() -> Weight { + // Proof Size summary in bytes: + // Measured: `285` + // Estimated: `3514` + // Minimum execution time: 20_000_000 picoseconds. + Weight::from_parts(21_000_000, 0) + .saturating_add(Weight::from_parts(0, 3514)) + .saturating_add(T::DbWeight::get().reads(2)) + .saturating_add(T::DbWeight::get().writes(1)) + } + /// Storage: `AmbassadorCollective::Members` (r:1 w:0) + /// Proof: `AmbassadorCollective::Members` (`max_values`: None, `max_size`: Some(42), added: 2517, mode: `MaxEncodedLen`) + /// Storage: `AmbassadorCore::Member` (r:1 w:1) + /// Proof: `AmbassadorCore::Member` (`max_values`: None, `max_size`: Some(49), added: 2524, mode: `MaxEncodedLen`) + /// Storage: `AmbassadorCore::MemberEvidence` (r:1 w:1) + /// Proof: `AmbassadorCore::MemberEvidence` (`max_values`: None, `max_size`: Some(65581), added: 68056, mode: `MaxEncodedLen`) + fn approve() -> Weight { + // Proof Size summary in bytes: + // Measured: `65967` + // Estimated: `69046` + // Minimum execution time: 78_000_000 picoseconds. + Weight::from_parts(104_000_000, 0) + .saturating_add(Weight::from_parts(0, 69046)) + .saturating_add(T::DbWeight::get().reads(3)) + .saturating_add(T::DbWeight::get().writes(2)) + } + /// Storage: `AmbassadorCore::Member` (r:1 w:0) + /// Proof: `AmbassadorCore::Member` (`max_values`: None, `max_size`: Some(49), added: 2524, mode: `MaxEncodedLen`) + /// Storage: `AmbassadorCore::MemberEvidence` (r:1 w:1) + /// Proof: `AmbassadorCore::MemberEvidence` (`max_values`: None, `max_size`: Some(65581), added: 68056, mode: `MaxEncodedLen`) + fn submit_evidence() -> Weight { + // Proof Size summary in bytes: + // Measured: `151` + // Estimated: `69046` + // Minimum execution time: 43_000_000 picoseconds. + Weight::from_parts(44_000_000, 0) + .saturating_add(Weight::from_parts(0, 69046)) + .saturating_add(T::DbWeight::get().reads(2)) + .saturating_add(T::DbWeight::get().writes(1)) + } +} diff --git a/cumulus/parachains/runtimes/collectives/collectives-polkadot/src/weights/pallet_core_fellowship_fellowship_core.rs b/cumulus/parachains/runtimes/collectives/collectives-polkadot/src/weights/pallet_core_fellowship_fellowship_core.rs new file mode 100644 index 000000000000..434986b03bba --- /dev/null +++ b/cumulus/parachains/runtimes/collectives/collectives-polkadot/src/weights/pallet_core_fellowship_fellowship_core.rs @@ -0,0 +1,223 @@ +// Copyright (C) Parity Technologies (UK) Ltd. +// This file is part of Cumulus. + +// Cumulus 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. + +// Cumulus 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 Cumulus. If not, see . + +//! Autogenerated weights for `pallet_core_fellowship` +//! +//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev +//! DATE: 2023-08-11, STEPS: `2`, REPEAT: `2`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! WORST CASE MAP SIZE: `1000000` +//! HOSTNAME: `cob`, CPU: `` +//! WASM-EXECUTION: `Compiled`, CHAIN: `Some("collectives-polkadot-dev")`, DB CACHE: 1024 + +// Executed Command: +// target/release/polkadot-parachain +// benchmark +// pallet +// --chain=collectives-polkadot-dev +// --wasm-execution=compiled +// --pallet=pallet_core_fellowship +// --extrinsic=* +// --steps=2 +// --repeat=2 +// --json +// --header=./file_header.txt +// --output=./parachains/runtimes/collectives/collectives-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_core_fellowship`. +pub struct WeightInfo(PhantomData); +impl pallet_core_fellowship::WeightInfo for WeightInfo { + /// Storage: `FellowshipCore::Params` (r:0 w:1) + /// Proof: `FellowshipCore::Params` (`max_values`: Some(1), `max_size`: Some(364), added: 859, mode: `MaxEncodedLen`) + fn set_params() -> Weight { + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 11_000_000 picoseconds. + Weight::from_parts(12_000_000, 0) + .saturating_add(Weight::from_parts(0, 0)) + .saturating_add(T::DbWeight::get().writes(1)) + } + /// Storage: `FellowshipCore::Member` (r:1 w:1) + /// Proof: `FellowshipCore::Member` (`max_values`: None, `max_size`: Some(49), added: 2524, mode: `MaxEncodedLen`) + /// Storage: `FellowshipCollective::Members` (r:1 w:1) + /// Proof: `FellowshipCollective::Members` (`max_values`: None, `max_size`: Some(42), added: 2517, mode: `MaxEncodedLen`) + /// Storage: `FellowshipCore::Params` (r:1 w:0) + /// Proof: `FellowshipCore::Params` (`max_values`: Some(1), `max_size`: Some(364), added: 859, mode: `MaxEncodedLen`) + /// Storage: `FellowshipCollective::MemberCount` (r:1 w:1) + /// Proof: `FellowshipCollective::MemberCount` (`max_values`: None, `max_size`: Some(14), added: 2489, mode: `MaxEncodedLen`) + /// Storage: `FellowshipCollective::IdToIndex` (r:1 w:0) + /// Proof: `FellowshipCollective::IdToIndex` (`max_values`: None, `max_size`: Some(54), added: 2529, mode: `MaxEncodedLen`) + /// Storage: `FellowshipCore::MemberEvidence` (r:1 w:1) + /// Proof: `FellowshipCore::MemberEvidence` (`max_values`: None, `max_size`: Some(65581), added: 68056, mode: `MaxEncodedLen`) + fn bump_offboard() -> Weight { + // Proof Size summary in bytes: + // Measured: `66144` + // Estimated: `69046` + // Minimum execution time: 109_000_000 picoseconds. + Weight::from_parts(125_000_000, 0) + .saturating_add(Weight::from_parts(0, 69046)) + .saturating_add(T::DbWeight::get().reads(6)) + .saturating_add(T::DbWeight::get().writes(4)) + } + /// Storage: `FellowshipCore::Member` (r:1 w:1) + /// Proof: `FellowshipCore::Member` (`max_values`: None, `max_size`: Some(49), added: 2524, mode: `MaxEncodedLen`) + /// Storage: `FellowshipCollective::Members` (r:1 w:1) + /// Proof: `FellowshipCollective::Members` (`max_values`: None, `max_size`: Some(42), added: 2517, mode: `MaxEncodedLen`) + /// Storage: `FellowshipCore::Params` (r:1 w:0) + /// Proof: `FellowshipCore::Params` (`max_values`: Some(1), `max_size`: Some(364), added: 859, mode: `MaxEncodedLen`) + /// Storage: `FellowshipCollective::MemberCount` (r:1 w:1) + /// Proof: `FellowshipCollective::MemberCount` (`max_values`: None, `max_size`: Some(14), added: 2489, mode: `MaxEncodedLen`) + /// Storage: `FellowshipCollective::IdToIndex` (r:1 w:0) + /// Proof: `FellowshipCollective::IdToIndex` (`max_values`: None, `max_size`: Some(54), added: 2529, mode: `MaxEncodedLen`) + /// Storage: `FellowshipCore::MemberEvidence` (r:1 w:1) + /// Proof: `FellowshipCore::MemberEvidence` (`max_values`: None, `max_size`: Some(65581), added: 68056, mode: `MaxEncodedLen`) + fn bump_demote() -> Weight { + // Proof Size summary in bytes: + // Measured: `66254` + // Estimated: `69046` + // Minimum execution time: 112_000_000 picoseconds. + Weight::from_parts(114_000_000, 0) + .saturating_add(Weight::from_parts(0, 69046)) + .saturating_add(T::DbWeight::get().reads(6)) + .saturating_add(T::DbWeight::get().writes(4)) + } + /// Storage: `FellowshipCollective::Members` (r:1 w:0) + /// Proof: `FellowshipCollective::Members` (`max_values`: None, `max_size`: Some(42), added: 2517, mode: `MaxEncodedLen`) + /// Storage: `FellowshipCore::Member` (r:1 w:1) + /// Proof: `FellowshipCore::Member` (`max_values`: None, `max_size`: Some(49), added: 2524, mode: `MaxEncodedLen`) + fn set_active() -> Weight { + // Proof Size summary in bytes: + // Measured: `493` + // Estimated: `3514` + // Minimum execution time: 22_000_000 picoseconds. + Weight::from_parts(27_000_000, 0) + .saturating_add(Weight::from_parts(0, 3514)) + .saturating_add(T::DbWeight::get().reads(2)) + .saturating_add(T::DbWeight::get().writes(1)) + } + /// Storage: `FellowshipCore::Member` (r:1 w:1) + /// Proof: `FellowshipCore::Member` (`max_values`: None, `max_size`: Some(49), added: 2524, mode: `MaxEncodedLen`) + /// Storage: `FellowshipCollective::Members` (r:1 w:1) + /// Proof: `FellowshipCollective::Members` (`max_values`: None, `max_size`: Some(42), added: 2517, mode: `MaxEncodedLen`) + /// Storage: `FellowshipCollective::MemberCount` (r:1 w:1) + /// Proof: `FellowshipCollective::MemberCount` (`max_values`: None, `max_size`: Some(14), added: 2489, mode: `MaxEncodedLen`) + /// Storage: `FellowshipCollective::IndexToId` (r:0 w:1) + /// Proof: `FellowshipCollective::IndexToId` (`max_values`: None, `max_size`: Some(54), added: 2529, mode: `MaxEncodedLen`) + /// Storage: `FellowshipCollective::IdToIndex` (r:0 w:1) + /// Proof: `FellowshipCollective::IdToIndex` (`max_values`: None, `max_size`: Some(54), added: 2529, mode: `MaxEncodedLen`) + fn induct() -> Weight { + // Proof Size summary in bytes: + // Measured: `251` + // Estimated: `3514` + // Minimum execution time: 35_000_000 picoseconds. + Weight::from_parts(36_000_000, 0) + .saturating_add(Weight::from_parts(0, 3514)) + .saturating_add(T::DbWeight::get().reads(3)) + .saturating_add(T::DbWeight::get().writes(5)) + } + /// Storage: `FellowshipCollective::Members` (r:1 w:1) + /// Proof: `FellowshipCollective::Members` (`max_values`: None, `max_size`: Some(42), added: 2517, mode: `MaxEncodedLen`) + /// Storage: `FellowshipCore::Member` (r:1 w:1) + /// Proof: `FellowshipCore::Member` (`max_values`: None, `max_size`: Some(49), added: 2524, mode: `MaxEncodedLen`) + /// Storage: `FellowshipCore::Params` (r:1 w:0) + /// Proof: `FellowshipCore::Params` (`max_values`: Some(1), `max_size`: Some(364), added: 859, mode: `MaxEncodedLen`) + /// Storage: `FellowshipCollective::MemberCount` (r:1 w:1) + /// Proof: `FellowshipCollective::MemberCount` (`max_values`: None, `max_size`: Some(14), added: 2489, mode: `MaxEncodedLen`) + /// Storage: `FellowshipCore::MemberEvidence` (r:1 w:1) + /// Proof: `FellowshipCore::MemberEvidence` (`max_values`: None, `max_size`: Some(65581), added: 68056, mode: `MaxEncodedLen`) + /// Storage: `FellowshipCollective::IndexToId` (r:0 w:1) + /// Proof: `FellowshipCollective::IndexToId` (`max_values`: None, `max_size`: Some(54), added: 2529, mode: `MaxEncodedLen`) + /// Storage: `FellowshipCollective::IdToIndex` (r:0 w:1) + /// Proof: `FellowshipCollective::IdToIndex` (`max_values`: None, `max_size`: Some(54), added: 2529, mode: `MaxEncodedLen`) + fn promote() -> Weight { + // Proof Size summary in bytes: + // Measured: `66122` + // Estimated: `69046` + // Minimum execution time: 97_000_000 picoseconds. + Weight::from_parts(129_000_000, 0) + .saturating_add(Weight::from_parts(0, 69046)) + .saturating_add(T::DbWeight::get().reads(5)) + .saturating_add(T::DbWeight::get().writes(6)) + } + /// Storage: `FellowshipCollective::Members` (r:1 w:0) + /// Proof: `FellowshipCollective::Members` (`max_values`: None, `max_size`: Some(42), added: 2517, mode: `MaxEncodedLen`) + /// Storage: `FellowshipCore::Member` (r:1 w:1) + /// Proof: `FellowshipCore::Member` (`max_values`: None, `max_size`: Some(49), added: 2524, mode: `MaxEncodedLen`) + /// Storage: `FellowshipCore::MemberEvidence` (r:0 w:1) + /// Proof: `FellowshipCore::MemberEvidence` (`max_values`: None, `max_size`: Some(65581), added: 68056, mode: `MaxEncodedLen`) + fn offboard() -> Weight { + // Proof Size summary in bytes: + // Measured: `464` + // Estimated: `3514` + // Minimum execution time: 22_000_000 picoseconds. + Weight::from_parts(22_000_000, 0) + .saturating_add(Weight::from_parts(0, 3514)) + .saturating_add(T::DbWeight::get().reads(2)) + .saturating_add(T::DbWeight::get().writes(2)) + } + /// Storage: `FellowshipCore::Member` (r:1 w:1) + /// Proof: `FellowshipCore::Member` (`max_values`: None, `max_size`: Some(49), added: 2524, mode: `MaxEncodedLen`) + /// Storage: `FellowshipCollective::Members` (r:1 w:0) + /// Proof: `FellowshipCollective::Members` (`max_values`: None, `max_size`: Some(42), added: 2517, mode: `MaxEncodedLen`) + fn import() -> Weight { + // Proof Size summary in bytes: + // Measured: `418` + // Estimated: `3514` + // Minimum execution time: 20_000_000 picoseconds. + Weight::from_parts(24_000_000, 0) + .saturating_add(Weight::from_parts(0, 3514)) + .saturating_add(T::DbWeight::get().reads(2)) + .saturating_add(T::DbWeight::get().writes(1)) + } + /// Storage: `FellowshipCollective::Members` (r:1 w:0) + /// Proof: `FellowshipCollective::Members` (`max_values`: None, `max_size`: Some(42), added: 2517, mode: `MaxEncodedLen`) + /// Storage: `FellowshipCore::Member` (r:1 w:1) + /// Proof: `FellowshipCore::Member` (`max_values`: None, `max_size`: Some(49), added: 2524, mode: `MaxEncodedLen`) + /// Storage: `FellowshipCore::MemberEvidence` (r:1 w:1) + /// Proof: `FellowshipCore::MemberEvidence` (`max_values`: None, `max_size`: Some(65581), added: 68056, mode: `MaxEncodedLen`) + fn approve() -> Weight { + // Proof Size summary in bytes: + // Measured: `66100` + // Estimated: `69046` + // Minimum execution time: 89_000_000 picoseconds. + Weight::from_parts(119_000_000, 0) + .saturating_add(Weight::from_parts(0, 69046)) + .saturating_add(T::DbWeight::get().reads(3)) + .saturating_add(T::DbWeight::get().writes(2)) + } + /// Storage: `FellowshipCore::Member` (r:1 w:0) + /// Proof: `FellowshipCore::Member` (`max_values`: None, `max_size`: Some(49), added: 2524, mode: `MaxEncodedLen`) + /// Storage: `FellowshipCore::MemberEvidence` (r:1 w:1) + /// Proof: `FellowshipCore::MemberEvidence` (`max_values`: None, `max_size`: Some(65581), added: 68056, mode: `MaxEncodedLen`) + fn submit_evidence() -> Weight { + // Proof Size summary in bytes: + // Measured: `184` + // Estimated: `69046` + // Minimum execution time: 43_000_000 picoseconds. + Weight::from_parts(52_000_000, 0) + .saturating_add(Weight::from_parts(0, 69046)) + .saturating_add(T::DbWeight::get().reads(2)) + .saturating_add(T::DbWeight::get().writes(1)) + } +} diff --git a/cumulus/parachains/runtimes/collectives/collectives-polkadot/src/weights/pallet_multisig.rs b/cumulus/parachains/runtimes/collectives/collectives-polkadot/src/weights/pallet_multisig.rs new file mode 100644 index 000000000000..a8dd58320cc2 --- /dev/null +++ b/cumulus/parachains/runtimes/collectives/collectives-polkadot/src/weights/pallet_multisig.rs @@ -0,0 +1,165 @@ +// Copyright (C) Parity Technologies (UK) Ltd. +// This file is part of Cumulus. + +// Cumulus 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. + +// Cumulus 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 Cumulus. If not, see . + +//! Autogenerated weights for `pallet_multisig` +//! +//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev +//! DATE: 2023-07-31, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! WORST CASE MAP SIZE: `1000000` +//! HOSTNAME: `runner-ynta1nyy-project-238-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz` +//! EXECUTION: ``, WASM-EXECUTION: `Compiled`, CHAIN: `Some("collectives-polkadot-dev")`, DB CACHE: 1024 + +// Executed Command: +// ./target/production/polkadot-parachain +// benchmark +// pallet +// --chain=collectives-polkadot-dev +// --wasm-execution=compiled +// --pallet=pallet_multisig +// --no-storage-info +// --no-median-slopes +// --no-min-squares +// --extrinsic=* +// --steps=50 +// --repeat=20 +// --json +// --header=./file_header.txt +// --output=./parachains/runtimes/collectives/collectives-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_multisig`. +pub struct WeightInfo(PhantomData); +impl pallet_multisig::WeightInfo for WeightInfo { + /// The range of component `z` is `[0, 10000]`. + fn as_multi_threshold_1(z: u32, ) -> Weight { + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 13_288_000 picoseconds. + Weight::from_parts(14_235_741, 0) + .saturating_add(Weight::from_parts(0, 0)) + // Standard Error: 5 + .saturating_add(Weight::from_parts(500, 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`) + /// The range of component `s` is `[2, 100]`. + /// The range of component `z` is `[0, 10000]`. + fn as_multi_create(s: u32, z: u32, ) -> Weight { + // Proof Size summary in bytes: + // Measured: `328 + s * (2 ±0)` + // Estimated: `6811` + // Minimum execution time: 44_865_000 picoseconds. + Weight::from_parts(33_468_056, 0) + .saturating_add(Weight::from_parts(0, 6811)) + // Standard Error: 1_513 + .saturating_add(Weight::from_parts(130_544, 0).saturating_mul(s.into())) + // Standard Error: 14 + .saturating_add(Weight::from_parts(1_422, 0).saturating_mul(z.into())) + .saturating_add(T::DbWeight::get().reads(1)) + .saturating_add(T::DbWeight::get().writes(1)) + } + /// Storage: `Multisig::Multisigs` (r:1 w:1) + /// Proof: `Multisig::Multisigs` (`max_values`: None, `max_size`: Some(3346), added: 5821, mode: `MaxEncodedLen`) + /// The range of component `s` is `[3, 100]`. + /// The range of component `z` is `[0, 10000]`. + fn as_multi_approve(s: u32, z: u32, ) -> Weight { + // Proof Size summary in bytes: + // Measured: `348` + // Estimated: `6811` + // Minimum execution time: 29_284_000 picoseconds. + Weight::from_parts(18_708_967, 0) + .saturating_add(Weight::from_parts(0, 6811)) + // Standard Error: 916 + .saturating_add(Weight::from_parts(119_202, 0).saturating_mul(s.into())) + // Standard Error: 8 + .saturating_add(Weight::from_parts(1_447, 0).saturating_mul(z.into())) + .saturating_add(T::DbWeight::get().reads(1)) + .saturating_add(T::DbWeight::get().writes(1)) + } + /// Storage: `Multisig::Multisigs` (r:1 w:1) + /// Proof: `Multisig::Multisigs` (`max_values`: None, `max_size`: Some(3346), added: 5821, 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 `[2, 100]`. + /// The range of component `z` is `[0, 10000]`. + fn as_multi_complete(s: u32, z: u32, ) -> Weight { + // Proof Size summary in bytes: + // Measured: `451 + s * (33 ±0)` + // Estimated: `6811` + // Minimum execution time: 49_462_000 picoseconds. + Weight::from_parts(34_470_286, 0) + .saturating_add(Weight::from_parts(0, 6811)) + // Standard Error: 1_738 + .saturating_add(Weight::from_parts(178_227, 0).saturating_mul(s.into())) + // Standard Error: 17 + .saturating_add(Weight::from_parts(1_644, 0).saturating_mul(z.into())) + .saturating_add(T::DbWeight::get().reads(2)) + .saturating_add(T::DbWeight::get().writes(2)) + } + /// Storage: `Multisig::Multisigs` (r:1 w:1) + /// Proof: `Multisig::Multisigs` (`max_values`: None, `max_size`: Some(3346), added: 5821, mode: `MaxEncodedLen`) + /// The range of component `s` is `[2, 100]`. + fn approve_as_multi_create(s: u32, ) -> Weight { + // Proof Size summary in bytes: + // Measured: `329 + s * (2 ±0)` + // Estimated: `6811` + // Minimum execution time: 30_749_000 picoseconds. + Weight::from_parts(31_841_438, 0) + .saturating_add(Weight::from_parts(0, 6811)) + // Standard Error: 1_033 + .saturating_add(Weight::from_parts(123_126, 0).saturating_mul(s.into())) + .saturating_add(T::DbWeight::get().reads(1)) + .saturating_add(T::DbWeight::get().writes(1)) + } + /// Storage: `Multisig::Multisigs` (r:1 w:1) + /// Proof: `Multisig::Multisigs` (`max_values`: None, `max_size`: Some(3346), added: 5821, mode: `MaxEncodedLen`) + /// The range of component `s` is `[2, 100]`. + fn approve_as_multi_approve(s: u32, ) -> Weight { + // Proof Size summary in bytes: + // Measured: `348` + // Estimated: `6811` + // Minimum execution time: 17_436_000 picoseconds. + Weight::from_parts(18_036_002, 0) + .saturating_add(Weight::from_parts(0, 6811)) + // Standard Error: 829 + .saturating_add(Weight::from_parts(109_450, 0).saturating_mul(s.into())) + .saturating_add(T::DbWeight::get().reads(1)) + .saturating_add(T::DbWeight::get().writes(1)) + } + /// Storage: `Multisig::Multisigs` (r:1 w:1) + /// Proof: `Multisig::Multisigs` (`max_values`: None, `max_size`: Some(3346), added: 5821, mode: `MaxEncodedLen`) + /// The range of component `s` is `[2, 100]`. + fn cancel_as_multi(s: u32, ) -> Weight { + // Proof Size summary in bytes: + // Measured: `520 + s * (1 ±0)` + // Estimated: `6811` + // Minimum execution time: 31_532_000 picoseconds. + Weight::from_parts(32_818_015, 0) + .saturating_add(Weight::from_parts(0, 6811)) + // Standard Error: 977 + .saturating_add(Weight::from_parts(123_121, 0).saturating_mul(s.into())) + .saturating_add(T::DbWeight::get().reads(1)) + .saturating_add(T::DbWeight::get().writes(1)) + } +} diff --git a/cumulus/parachains/runtimes/collectives/collectives-polkadot/src/weights/pallet_preimage.rs b/cumulus/parachains/runtimes/collectives/collectives-polkadot/src/weights/pallet_preimage.rs new file mode 100644 index 000000000000..e9f565d9387d --- /dev/null +++ b/cumulus/parachains/runtimes/collectives/collectives-polkadot/src/weights/pallet_preimage.rs @@ -0,0 +1,233 @@ +// Copyright (C) Parity Technologies (UK) Ltd. +// This file is part of Cumulus. + +// Cumulus 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. + +// Cumulus 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 Cumulus. If not, see . + +//! Autogenerated weights for `pallet_preimage` +//! +//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev +//! DATE: 2023-07-31, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! WORST CASE MAP SIZE: `1000000` +//! HOSTNAME: `runner-ynta1nyy-project-238-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz` +//! EXECUTION: ``, WASM-EXECUTION: `Compiled`, CHAIN: `Some("collectives-polkadot-dev")`, DB CACHE: 1024 + +// Executed Command: +// ./target/production/polkadot-parachain +// benchmark +// pallet +// --chain=collectives-polkadot-dev +// --wasm-execution=compiled +// --pallet=pallet_preimage +// --no-storage-info +// --no-median-slopes +// --no-min-squares +// --extrinsic=* +// --steps=50 +// --repeat=20 +// --json +// --header=./file_header.txt +// --output=./parachains/runtimes/collectives/collectives-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_preimage`. +pub struct WeightInfo(PhantomData); +impl pallet_preimage::WeightInfo for WeightInfo { + fn ensure_updated(n: u32, ) -> Weight { + // Proof Size summary in bytes: + // Measured: `193 + n * (91 ±0)` + // Estimated: `3593 + n * (2566 ±0)` + // Minimum execution time: 2_000_000 picoseconds. + Weight::from_parts(2_000_000, 3593) + // Standard Error: 13_720 + .saturating_add(Weight::from_parts(17_309_199, 0).saturating_mul(n.into())) + .saturating_add(T::DbWeight::get().reads(1_u64)) + .saturating_add(T::DbWeight::get().reads((1_u64).saturating_mul(n.into()))) + .saturating_add(T::DbWeight::get().writes(1_u64)) + .saturating_add(T::DbWeight::get().writes((2_u64).saturating_mul(n.into()))) + .saturating_add(Weight::from_parts(0, 2566).saturating_mul(n.into())) + } + + /// Storage: `Preimage::StatusFor` (r:1 w:1) + /// Proof: `Preimage::StatusFor` (`max_values`: None, `max_size`: Some(91), added: 2566, mode: `MaxEncodedLen`) + /// Storage: `Preimage::PreimageFor` (r:0 w:1) + /// Proof: `Preimage::PreimageFor` (`max_values`: None, `max_size`: Some(4194344), added: 4196819, mode: `MaxEncodedLen`) + /// The range of component `s` is `[0, 4194304]`. + fn note_preimage(s: u32, ) -> Weight { + // Proof Size summary in bytes: + // Measured: `177` + // Estimated: `3556` + // Minimum execution time: 29_323_000 picoseconds. + Weight::from_parts(29_793_000, 0) + .saturating_add(Weight::from_parts(0, 3556)) + // Standard Error: 5 + .saturating_add(Weight::from_parts(2_504, 0).saturating_mul(s.into())) + .saturating_add(T::DbWeight::get().reads(1)) + .saturating_add(T::DbWeight::get().writes(2)) + } + /// Storage: `Preimage::StatusFor` (r:1 w:1) + /// Proof: `Preimage::StatusFor` (`max_values`: None, `max_size`: Some(91), added: 2566, mode: `MaxEncodedLen`) + /// Storage: `Preimage::PreimageFor` (r:0 w:1) + /// Proof: `Preimage::PreimageFor` (`max_values`: None, `max_size`: Some(4194344), added: 4196819, mode: `MaxEncodedLen`) + /// The range of component `s` is `[0, 4194304]`. + fn note_requested_preimage(s: u32, ) -> Weight { + // Proof Size summary in bytes: + // Measured: `140` + // Estimated: `3556` + // Minimum execution time: 15_581_000 picoseconds. + Weight::from_parts(15_659_000, 0) + .saturating_add(Weight::from_parts(0, 3556)) + // Standard Error: 4 + .saturating_add(Weight::from_parts(2_500, 0).saturating_mul(s.into())) + .saturating_add(T::DbWeight::get().reads(1)) + .saturating_add(T::DbWeight::get().writes(2)) + } + /// Storage: `Preimage::StatusFor` (r:1 w:1) + /// Proof: `Preimage::StatusFor` (`max_values`: None, `max_size`: Some(91), added: 2566, mode: `MaxEncodedLen`) + /// Storage: `Preimage::PreimageFor` (r:0 w:1) + /// Proof: `Preimage::PreimageFor` (`max_values`: None, `max_size`: Some(4194344), added: 4196819, mode: `MaxEncodedLen`) + /// The range of component `s` is `[0, 4194304]`. + fn note_no_deposit_preimage(s: u32, ) -> Weight { + // Proof Size summary in bytes: + // Measured: `140` + // Estimated: `3556` + // Minimum execution time: 15_028_000 picoseconds. + Weight::from_parts(15_150_000, 0) + .saturating_add(Weight::from_parts(0, 3556)) + // Standard Error: 6 + .saturating_add(Weight::from_parts(2_560, 0).saturating_mul(s.into())) + .saturating_add(T::DbWeight::get().reads(1)) + .saturating_add(T::DbWeight::get().writes(2)) + } + /// Storage: `Preimage::StatusFor` (r:1 w:1) + /// Proof: `Preimage::StatusFor` (`max_values`: None, `max_size`: Some(91), added: 2566, mode: `MaxEncodedLen`) + /// Storage: `Preimage::PreimageFor` (r:0 w:1) + /// Proof: `Preimage::PreimageFor` (`max_values`: None, `max_size`: Some(4194344), added: 4196819, mode: `MaxEncodedLen`) + fn unnote_preimage() -> Weight { + // Proof Size summary in bytes: + // Measured: `323` + // Estimated: `3556` + // Minimum execution time: 55_113_000 picoseconds. + Weight::from_parts(59_127_000, 0) + .saturating_add(Weight::from_parts(0, 3556)) + .saturating_add(T::DbWeight::get().reads(1)) + .saturating_add(T::DbWeight::get().writes(2)) + } + /// Storage: `Preimage::StatusFor` (r:1 w:1) + /// Proof: `Preimage::StatusFor` (`max_values`: None, `max_size`: Some(91), added: 2566, mode: `MaxEncodedLen`) + /// Storage: `Preimage::PreimageFor` (r:0 w:1) + /// Proof: `Preimage::PreimageFor` (`max_values`: None, `max_size`: Some(4194344), added: 4196819, mode: `MaxEncodedLen`) + fn unnote_no_deposit_preimage() -> Weight { + // Proof Size summary in bytes: + // Measured: `178` + // Estimated: `3556` + // Minimum execution time: 38_033_000 picoseconds. + Weight::from_parts(41_203_000, 0) + .saturating_add(Weight::from_parts(0, 3556)) + .saturating_add(T::DbWeight::get().reads(1)) + .saturating_add(T::DbWeight::get().writes(2)) + } + /// Storage: `Preimage::StatusFor` (r:1 w:1) + /// Proof: `Preimage::StatusFor` (`max_values`: None, `max_size`: Some(91), added: 2566, mode: `MaxEncodedLen`) + fn request_preimage() -> Weight { + // Proof Size summary in bytes: + // Measured: `222` + // Estimated: `3556` + // Minimum execution time: 31_482_000 picoseconds. + Weight::from_parts(34_726_000, 0) + .saturating_add(Weight::from_parts(0, 3556)) + .saturating_add(T::DbWeight::get().reads(1)) + .saturating_add(T::DbWeight::get().writes(1)) + } + /// Storage: `Preimage::StatusFor` (r:1 w:1) + /// Proof: `Preimage::StatusFor` (`max_values`: None, `max_size`: Some(91), added: 2566, mode: `MaxEncodedLen`) + fn request_no_deposit_preimage() -> Weight { + // Proof Size summary in bytes: + // Measured: `178` + // Estimated: `3556` + // Minimum execution time: 20_724_000 picoseconds. + Weight::from_parts(22_928_000, 0) + .saturating_add(Weight::from_parts(0, 3556)) + .saturating_add(T::DbWeight::get().reads(1)) + .saturating_add(T::DbWeight::get().writes(1)) + } + /// Storage: `Preimage::StatusFor` (r:1 w:1) + /// Proof: `Preimage::StatusFor` (`max_values`: None, `max_size`: Some(91), added: 2566, mode: `MaxEncodedLen`) + fn request_unnoted_preimage() -> Weight { + // Proof Size summary in bytes: + // Measured: `76` + // Estimated: `3556` + // Minimum execution time: 27_015_000 picoseconds. + Weight::from_parts(29_240_000, 0) + .saturating_add(Weight::from_parts(0, 3556)) + .saturating_add(T::DbWeight::get().reads(1)) + .saturating_add(T::DbWeight::get().writes(1)) + } + /// Storage: `Preimage::StatusFor` (r:1 w:1) + /// Proof: `Preimage::StatusFor` (`max_values`: None, `max_size`: Some(91), added: 2566, mode: `MaxEncodedLen`) + fn request_requested_preimage() -> Weight { + // Proof Size summary in bytes: + // Measured: `140` + // Estimated: `3556` + // Minimum execution time: 10_712_000 picoseconds. + Weight::from_parts(11_317_000, 0) + .saturating_add(Weight::from_parts(0, 3556)) + .saturating_add(T::DbWeight::get().reads(1)) + .saturating_add(T::DbWeight::get().writes(1)) + } + /// Storage: `Preimage::StatusFor` (r:1 w:1) + /// Proof: `Preimage::StatusFor` (`max_values`: None, `max_size`: Some(91), added: 2566, mode: `MaxEncodedLen`) + /// Storage: `Preimage::PreimageFor` (r:0 w:1) + /// Proof: `Preimage::PreimageFor` (`max_values`: None, `max_size`: Some(4194344), added: 4196819, mode: `MaxEncodedLen`) + fn unrequest_preimage() -> Weight { + // Proof Size summary in bytes: + // Measured: `178` + // Estimated: `3556` + // Minimum execution time: 34_528_000 picoseconds. + Weight::from_parts(35_982_000, 0) + .saturating_add(Weight::from_parts(0, 3556)) + .saturating_add(T::DbWeight::get().reads(1)) + .saturating_add(T::DbWeight::get().writes(2)) + } + /// Storage: `Preimage::StatusFor` (r:1 w:1) + /// Proof: `Preimage::StatusFor` (`max_values`: None, `max_size`: Some(91), added: 2566, mode: `MaxEncodedLen`) + fn unrequest_unnoted_preimage() -> Weight { + // Proof Size summary in bytes: + // Measured: `140` + // Estimated: `3556` + // Minimum execution time: 11_059_000 picoseconds. + Weight::from_parts(12_458_000, 0) + .saturating_add(Weight::from_parts(0, 3556)) + .saturating_add(T::DbWeight::get().reads(1)) + .saturating_add(T::DbWeight::get().writes(1)) + } + /// Storage: `Preimage::StatusFor` (r:1 w:1) + /// Proof: `Preimage::StatusFor` (`max_values`: None, `max_size`: Some(91), added: 2566, mode: `MaxEncodedLen`) + fn unrequest_multi_referenced_preimage() -> Weight { + // Proof Size summary in bytes: + // Measured: `140` + // Estimated: `3556` + // Minimum execution time: 11_502_000 picoseconds. + Weight::from_parts(12_180_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/cumulus/parachains/runtimes/collectives/collectives-polkadot/src/weights/pallet_proxy.rs b/cumulus/parachains/runtimes/collectives/collectives-polkadot/src/weights/pallet_proxy.rs new file mode 100644 index 000000000000..faf100d23bb0 --- /dev/null +++ b/cumulus/parachains/runtimes/collectives/collectives-polkadot/src/weights/pallet_proxy.rs @@ -0,0 +1,226 @@ +// Copyright (C) Parity Technologies (UK) Ltd. +// This file is part of Cumulus. + +// Cumulus 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. + +// Cumulus 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 Cumulus. If not, see . + +//! Autogenerated weights for `pallet_proxy` +//! +//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev +//! DATE: 2023-07-31, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! WORST CASE MAP SIZE: `1000000` +//! HOSTNAME: `runner-ynta1nyy-project-238-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz` +//! EXECUTION: ``, WASM-EXECUTION: `Compiled`, CHAIN: `Some("collectives-polkadot-dev")`, DB CACHE: 1024 + +// Executed Command: +// ./target/production/polkadot-parachain +// benchmark +// pallet +// --chain=collectives-polkadot-dev +// --wasm-execution=compiled +// --pallet=pallet_proxy +// --no-storage-info +// --no-median-slopes +// --no-min-squares +// --extrinsic=* +// --steps=50 +// --repeat=20 +// --json +// --header=./file_header.txt +// --output=./parachains/runtimes/collectives/collectives-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_proxy`. +pub struct WeightInfo(PhantomData); +impl pallet_proxy::WeightInfo for WeightInfo { + /// Storage: `Proxy::Proxies` (r:1 w:0) + /// Proof: `Proxy::Proxies` (`max_values`: None, `max_size`: Some(1241), added: 3716, mode: `MaxEncodedLen`) + /// The range of component `p` is `[1, 31]`. + fn proxy(p: u32, ) -> Weight { + // Proof Size summary in bytes: + // Measured: `127 + p * (37 ±0)` + // Estimated: `4706` + // Minimum execution time: 15_597_000 picoseconds. + Weight::from_parts(16_231_993, 0) + .saturating_add(Weight::from_parts(0, 4706)) + // Standard Error: 1_665 + .saturating_add(Weight::from_parts(29_818, 0).saturating_mul(p.into())) + .saturating_add(T::DbWeight::get().reads(1)) + } + /// Storage: `Proxy::Proxies` (r:1 w:0) + /// Proof: `Proxy::Proxies` (`max_values`: None, `max_size`: Some(1241), added: 3716, mode: `MaxEncodedLen`) + /// Storage: `Proxy::Announcements` (r:1 w:1) + /// Proof: `Proxy::Announcements` (`max_values`: None, `max_size`: Some(2233), added: 4708, 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 `a` is `[0, 31]`. + /// The range of component `p` is `[1, 31]`. + fn proxy_announced(a: u32, p: u32, ) -> Weight { + // Proof Size summary in bytes: + // Measured: `454 + a * (68 ±0) + p * (37 ±0)` + // Estimated: `5698` + // Minimum execution time: 36_685_000 picoseconds. + Weight::from_parts(36_376_358, 0) + .saturating_add(Weight::from_parts(0, 5698)) + // Standard Error: 3_003 + .saturating_add(Weight::from_parts(133_776, 0).saturating_mul(a.into())) + // Standard Error: 3_103 + .saturating_add(Weight::from_parts(60_315, 0).saturating_mul(p.into())) + .saturating_add(T::DbWeight::get().reads(3)) + .saturating_add(T::DbWeight::get().writes(2)) + } + /// Storage: `Proxy::Announcements` (r:1 w:1) + /// Proof: `Proxy::Announcements` (`max_values`: None, `max_size`: Some(2233), added: 4708, 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 `a` is `[0, 31]`. + /// The range of component `p` is `[1, 31]`. + fn remove_announcement(a: u32, p: u32, ) -> Weight { + // Proof Size summary in bytes: + // Measured: `369 + a * (68 ±0)` + // Estimated: `5698` + // Minimum execution time: 23_835_000 picoseconds. + Weight::from_parts(24_154_219, 0) + .saturating_add(Weight::from_parts(0, 5698)) + // Standard Error: 1_580 + .saturating_add(Weight::from_parts(125_884, 0).saturating_mul(a.into())) + // Standard Error: 1_632 + .saturating_add(Weight::from_parts(21_563, 0).saturating_mul(p.into())) + .saturating_add(T::DbWeight::get().reads(2)) + .saturating_add(T::DbWeight::get().writes(2)) + } + /// Storage: `Proxy::Announcements` (r:1 w:1) + /// Proof: `Proxy::Announcements` (`max_values`: None, `max_size`: Some(2233), added: 4708, 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 `a` is `[0, 31]`. + /// The range of component `p` is `[1, 31]`. + fn reject_announcement(a: u32, p: u32, ) -> Weight { + // Proof Size summary in bytes: + // Measured: `369 + a * (68 ±0)` + // Estimated: `5698` + // Minimum execution time: 23_997_000 picoseconds. + Weight::from_parts(24_301_638, 0) + .saturating_add(Weight::from_parts(0, 5698)) + // Standard Error: 1_658 + .saturating_add(Weight::from_parts(133_005, 0).saturating_mul(a.into())) + // Standard Error: 1_713 + .saturating_add(Weight::from_parts(20_237, 0).saturating_mul(p.into())) + .saturating_add(T::DbWeight::get().reads(2)) + .saturating_add(T::DbWeight::get().writes(2)) + } + /// Storage: `Proxy::Proxies` (r:1 w:0) + /// Proof: `Proxy::Proxies` (`max_values`: None, `max_size`: Some(1241), added: 3716, mode: `MaxEncodedLen`) + /// Storage: `Proxy::Announcements` (r:1 w:1) + /// Proof: `Proxy::Announcements` (`max_values`: None, `max_size`: Some(2233), added: 4708, 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 `a` is `[0, 31]`. + /// The range of component `p` is `[1, 31]`. + fn announce(a: u32, p: u32, ) -> Weight { + // Proof Size summary in bytes: + // Measured: `386 + a * (68 ±0) + p * (37 ±0)` + // Estimated: `5698` + // Minimum execution time: 33_604_000 picoseconds. + Weight::from_parts(33_322_880, 0) + .saturating_add(Weight::from_parts(0, 5698)) + // Standard Error: 1_840 + .saturating_add(Weight::from_parts(114_037, 0).saturating_mul(a.into())) + // Standard Error: 1_901 + .saturating_add(Weight::from_parts(45_629, 0).saturating_mul(p.into())) + .saturating_add(T::DbWeight::get().reads(3)) + .saturating_add(T::DbWeight::get().writes(2)) + } + /// Storage: `Proxy::Proxies` (r:1 w:1) + /// Proof: `Proxy::Proxies` (`max_values`: None, `max_size`: Some(1241), added: 3716, mode: `MaxEncodedLen`) + /// The range of component `p` is `[1, 31]`. + fn add_proxy(p: u32, ) -> Weight { + // Proof Size summary in bytes: + // Measured: `127 + p * (37 ±0)` + // Estimated: `4706` + // Minimum execution time: 24_634_000 picoseconds. + Weight::from_parts(25_509_118, 0) + .saturating_add(Weight::from_parts(0, 4706)) + // Standard Error: 2_278 + .saturating_add(Weight::from_parts(38_401, 0).saturating_mul(p.into())) + .saturating_add(T::DbWeight::get().reads(1)) + .saturating_add(T::DbWeight::get().writes(1)) + } + /// Storage: `Proxy::Proxies` (r:1 w:1) + /// Proof: `Proxy::Proxies` (`max_values`: None, `max_size`: Some(1241), added: 3716, mode: `MaxEncodedLen`) + /// The range of component `p` is `[1, 31]`. + fn remove_proxy(p: u32, ) -> Weight { + // Proof Size summary in bytes: + // Measured: `127 + p * (37 ±0)` + // Estimated: `4706` + // Minimum execution time: 24_855_000 picoseconds. + Weight::from_parts(25_753_505, 0) + .saturating_add(Weight::from_parts(0, 4706)) + // Standard Error: 1_819 + .saturating_add(Weight::from_parts(44_357, 0).saturating_mul(p.into())) + .saturating_add(T::DbWeight::get().reads(1)) + .saturating_add(T::DbWeight::get().writes(1)) + } + /// Storage: `Proxy::Proxies` (r:1 w:1) + /// Proof: `Proxy::Proxies` (`max_values`: None, `max_size`: Some(1241), added: 3716, mode: `MaxEncodedLen`) + /// The range of component `p` is `[1, 31]`. + fn remove_proxies(p: u32, ) -> Weight { + // Proof Size summary in bytes: + // Measured: `127 + p * (37 ±0)` + // Estimated: `4706` + // Minimum execution time: 22_211_000 picoseconds. + Weight::from_parts(23_094_124, 0) + .saturating_add(Weight::from_parts(0, 4706)) + // Standard Error: 2_597 + .saturating_add(Weight::from_parts(36_725, 0).saturating_mul(p.into())) + .saturating_add(T::DbWeight::get().reads(1)) + .saturating_add(T::DbWeight::get().writes(1)) + } + /// Storage: `Proxy::Proxies` (r:1 w:1) + /// Proof: `Proxy::Proxies` (`max_values`: None, `max_size`: Some(1241), added: 3716, mode: `MaxEncodedLen`) + /// The range of component `p` is `[1, 31]`. + fn create_pure(p: u32, ) -> Weight { + // Proof Size summary in bytes: + // Measured: `139` + // Estimated: `4706` + // Minimum execution time: 26_764_000 picoseconds. + Weight::from_parts(27_667_535, 0) + .saturating_add(Weight::from_parts(0, 4706)) + // Standard Error: 1_111 + .saturating_add(Weight::from_parts(3_422, 0).saturating_mul(p.into())) + .saturating_add(T::DbWeight::get().reads(1)) + .saturating_add(T::DbWeight::get().writes(1)) + } + /// Storage: `Proxy::Proxies` (r:1 w:1) + /// Proof: `Proxy::Proxies` (`max_values`: None, `max_size`: Some(1241), added: 3716, mode: `MaxEncodedLen`) + /// The range of component `p` is `[0, 30]`. + fn kill_pure(p: u32, ) -> Weight { + // Proof Size summary in bytes: + // Measured: `164 + p * (37 ±0)` + // Estimated: `4706` + // Minimum execution time: 22_632_000 picoseconds. + Weight::from_parts(23_678_772, 0) + .saturating_add(Weight::from_parts(0, 4706)) + // Standard Error: 2_136 + .saturating_add(Weight::from_parts(26_492, 0).saturating_mul(p.into())) + .saturating_add(T::DbWeight::get().reads(1)) + .saturating_add(T::DbWeight::get().writes(1)) + } +} diff --git a/cumulus/parachains/runtimes/collectives/collectives-polkadot/src/weights/pallet_ranked_collective_ambassador_collective.rs b/cumulus/parachains/runtimes/collectives/collectives-polkadot/src/weights/pallet_ranked_collective_ambassador_collective.rs new file mode 100644 index 000000000000..a6372c4b89dc --- /dev/null +++ b/cumulus/parachains/runtimes/collectives/collectives-polkadot/src/weights/pallet_ranked_collective_ambassador_collective.rs @@ -0,0 +1,177 @@ +// Copyright Parity Technologies (UK) Ltd. +// This file is part of Cumulus. + +// Cumulus 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. + +// Cumulus 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 Cumulus. If not, see . + +//! Autogenerated weights for `pallet_ranked_collective` +//! +//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev +//! DATE: 2023-08-11, STEPS: `2`, REPEAT: `2`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! WORST CASE MAP SIZE: `1000000` +//! HOSTNAME: `cob`, CPU: `` +//! WASM-EXECUTION: `Compiled`, CHAIN: `Some("collectives-polkadot-dev")`, DB CACHE: 1024 + +// Executed Command: +// target/release/polkadot-parachain +// benchmark +// pallet +// --chain=collectives-polkadot-dev +// --wasm-execution=compiled +// --pallet=pallet_ranked_collective +// --extrinsic=* +// --steps=2 +// --repeat=2 +// --json +// --header=./file_header.txt +// --output=./parachains/runtimes/collectives/collectives-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_ranked_collective`. +pub struct WeightInfo(PhantomData); +impl pallet_ranked_collective::WeightInfo for WeightInfo { + /// Storage: `AmbassadorCollective::Members` (r:1 w:1) + /// Proof: `AmbassadorCollective::Members` (`max_values`: None, `max_size`: Some(42), added: 2517, mode: `MaxEncodedLen`) + /// Storage: `AmbassadorCollective::MemberCount` (r:1 w:1) + /// Proof: `AmbassadorCollective::MemberCount` (`max_values`: None, `max_size`: Some(14), added: 2489, mode: `MaxEncodedLen`) + /// Storage: `AmbassadorCollective::IndexToId` (r:0 w:1) + /// Proof: `AmbassadorCollective::IndexToId` (`max_values`: None, `max_size`: Some(54), added: 2529, mode: `MaxEncodedLen`) + /// Storage: `AmbassadorCollective::IdToIndex` (r:0 w:1) + /// Proof: `AmbassadorCollective::IdToIndex` (`max_values`: None, `max_size`: Some(54), added: 2529, mode: `MaxEncodedLen`) + fn add_member() -> Weight { + // Proof Size summary in bytes: + // Measured: `42` + // Estimated: `3507` + // Minimum execution time: 21_000_000 picoseconds. + Weight::from_parts(23_000_000, 0) + .saturating_add(Weight::from_parts(0, 3507)) + .saturating_add(T::DbWeight::get().reads(2)) + .saturating_add(T::DbWeight::get().writes(4)) + } + /// Storage: `AmbassadorCollective::Members` (r:1 w:1) + /// Proof: `AmbassadorCollective::Members` (`max_values`: None, `max_size`: Some(42), added: 2517, mode: `MaxEncodedLen`) + /// Storage: `AmbassadorCollective::MemberCount` (r:11 w:11) + /// Proof: `AmbassadorCollective::MemberCount` (`max_values`: None, `max_size`: Some(14), added: 2489, mode: `MaxEncodedLen`) + /// Storage: `AmbassadorCollective::IdToIndex` (r:11 w:11) + /// Proof: `AmbassadorCollective::IdToIndex` (`max_values`: None, `max_size`: Some(54), added: 2529, mode: `MaxEncodedLen`) + /// Storage: `AmbassadorCollective::IndexToId` (r:11 w:11) + /// Proof: `AmbassadorCollective::IndexToId` (`max_values`: None, `max_size`: Some(54), added: 2529, mode: `MaxEncodedLen`) + /// The range of component `r` is `[0, 10]`. + /// The range of component `r` is `[0, 10]`. + fn remove_member(r: u32, ) -> Weight { + // Proof Size summary in bytes: + // Measured: `508 + r * (281 ±0)` + // Estimated: `3519 + r * (2529 ±0)` + // Minimum execution time: 34_000_000 picoseconds. + Weight::from_parts(36_500_000, 0) + .saturating_add(Weight::from_parts(0, 3519)) + // Standard Error: 158_113 + .saturating_add(Weight::from_parts(16_000_000, 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)) + .saturating_add(T::DbWeight::get().writes((3_u64).saturating_mul(r.into()))) + .saturating_add(Weight::from_parts(0, 2529).saturating_mul(r.into())) + } + /// Storage: `AmbassadorCollective::Members` (r:1 w:1) + /// Proof: `AmbassadorCollective::Members` (`max_values`: None, `max_size`: Some(42), added: 2517, mode: `MaxEncodedLen`) + /// Storage: `AmbassadorCollective::MemberCount` (r:1 w:1) + /// Proof: `AmbassadorCollective::MemberCount` (`max_values`: None, `max_size`: Some(14), added: 2489, mode: `MaxEncodedLen`) + /// Storage: `AmbassadorCollective::IndexToId` (r:0 w:1) + /// Proof: `AmbassadorCollective::IndexToId` (`max_values`: None, `max_size`: Some(54), added: 2529, mode: `MaxEncodedLen`) + /// Storage: `AmbassadorCollective::IdToIndex` (r:0 w:1) + /// Proof: `AmbassadorCollective::IdToIndex` (`max_values`: None, `max_size`: Some(54), added: 2529, mode: `MaxEncodedLen`) + /// The range of component `r` is `[0, 10]`. + /// The range of component `r` is `[0, 10]`. + fn promote_member(r: u32, ) -> Weight { + // Proof Size summary in bytes: + // Measured: `210 + r * (17 ±0)` + // Estimated: `3507` + // Minimum execution time: 25_000_000 picoseconds. + Weight::from_parts(26_000_000, 0) + .saturating_add(Weight::from_parts(0, 3507)) + // Standard Error: 180_277 + .saturating_add(Weight::from_parts(650_000, 0).saturating_mul(r.into())) + .saturating_add(T::DbWeight::get().reads(2)) + .saturating_add(T::DbWeight::get().writes(4)) + } + /// Storage: `AmbassadorCollective::Members` (r:1 w:1) + /// Proof: `AmbassadorCollective::Members` (`max_values`: None, `max_size`: Some(42), added: 2517, mode: `MaxEncodedLen`) + /// Storage: `AmbassadorCollective::MemberCount` (r:1 w:1) + /// Proof: `AmbassadorCollective::MemberCount` (`max_values`: None, `max_size`: Some(14), added: 2489, mode: `MaxEncodedLen`) + /// Storage: `AmbassadorCollective::IdToIndex` (r:1 w:1) + /// Proof: `AmbassadorCollective::IdToIndex` (`max_values`: None, `max_size`: Some(54), added: 2529, mode: `MaxEncodedLen`) + /// Storage: `AmbassadorCollective::IndexToId` (r:1 w:1) + /// Proof: `AmbassadorCollective::IndexToId` (`max_values`: None, `max_size`: Some(54), added: 2529, mode: `MaxEncodedLen`) + /// The range of component `r` is `[0, 10]`. + /// The range of component `r` is `[0, 10]`. + fn demote_member(r: u32, ) -> Weight { + // Proof Size summary in bytes: + // Measured: `508 + r * (71 ±0)` + // Estimated: `3519` + // Minimum execution time: 34_000_000 picoseconds. + Weight::from_parts(36_500_000, 0) + .saturating_add(Weight::from_parts(0, 3519)) + // Standard Error: 335_410 + .saturating_add(Weight::from_parts(550_000, 0).saturating_mul(r.into())) + .saturating_add(T::DbWeight::get().reads(4)) + .saturating_add(T::DbWeight::get().writes(4)) + } + /// Storage: `AmbassadorCollective::Members` (r:1 w:0) + /// Proof: `AmbassadorCollective::Members` (`max_values`: None, `max_size`: Some(42), added: 2517, mode: `MaxEncodedLen`) + /// Storage: `AmbassadorReferenda::ReferendumInfoFor` (r:1 w:1) + /// Proof: `AmbassadorReferenda::ReferendumInfoFor` (`max_values`: None, `max_size`: Some(900), added: 3375, mode: `MaxEncodedLen`) + /// Storage: `AmbassadorCollective::Voting` (r:1 w:1) + /// Proof: `AmbassadorCollective::Voting` (`max_values`: None, `max_size`: Some(65), added: 2540, mode: `MaxEncodedLen`) + /// Storage: `Scheduler::Agenda` (r:2 w:2) + /// Proof: `Scheduler::Agenda` (`max_values`: None, `max_size`: Some(155814), added: 158289, mode: `MaxEncodedLen`) + fn vote() -> Weight { + // Proof Size summary in bytes: + // Measured: `566` + // Estimated: `317568` + // Minimum execution time: 57_000_000 picoseconds. + Weight::from_parts(60_000_000, 0) + .saturating_add(Weight::from_parts(0, 317568)) + .saturating_add(T::DbWeight::get().reads(5)) + .saturating_add(T::DbWeight::get().writes(4)) + } + /// Storage: `AmbassadorReferenda::ReferendumInfoFor` (r:1 w:0) + /// Proof: `AmbassadorReferenda::ReferendumInfoFor` (`max_values`: None, `max_size`: Some(900), added: 3375, mode: `MaxEncodedLen`) + /// Storage: `AmbassadorCollective::VotingCleanup` (r:1 w:0) + /// Proof: `AmbassadorCollective::VotingCleanup` (`max_values`: None, `max_size`: Some(114), added: 2589, mode: `MaxEncodedLen`) + /// Storage: `AmbassadorCollective::Voting` (r:100 w:100) + /// Proof: `AmbassadorCollective::Voting` (`max_values`: None, `max_size`: Some(65), added: 2540, mode: `MaxEncodedLen`) + /// The range of component `n` is `[0, 100]`. + /// The range of component `n` is `[0, 100]`. + fn cleanup_poll(n: u32, ) -> Weight { + // Proof Size summary in bytes: + // Measured: `209 + n * (52 ±0)` + // Estimated: `4365 + n * (2550 ±0)` + // Minimum execution time: 18_000_000 picoseconds. + Weight::from_parts(18_500_000, 0) + .saturating_add(Weight::from_parts(0, 4365)) + // Standard Error: 11_180 + .saturating_add(Weight::from_parts(1_335_000, 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()))) + .saturating_add(Weight::from_parts(0, 2550).saturating_mul(n.into())) + } +} diff --git a/cumulus/parachains/runtimes/collectives/collectives-polkadot/src/weights/pallet_ranked_collective_fellowship_collective.rs b/cumulus/parachains/runtimes/collectives/collectives-polkadot/src/weights/pallet_ranked_collective_fellowship_collective.rs new file mode 100644 index 000000000000..7515aecbb525 --- /dev/null +++ b/cumulus/parachains/runtimes/collectives/collectives-polkadot/src/weights/pallet_ranked_collective_fellowship_collective.rs @@ -0,0 +1,177 @@ +// Copyright (C) Parity Technologies (UK) Ltd. +// This file is part of Cumulus. + +// Cumulus 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. + +// Cumulus 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 Cumulus. If not, see . + +//! Autogenerated weights for `pallet_ranked_collective` +//! +//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev +//! DATE: 2023-08-11, STEPS: `2`, REPEAT: `2`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! WORST CASE MAP SIZE: `1000000` +//! HOSTNAME: `cob`, CPU: `` +//! WASM-EXECUTION: `Compiled`, CHAIN: `Some("collectives-polkadot-dev")`, DB CACHE: 1024 + +// Executed Command: +// target/release/polkadot-parachain +// benchmark +// pallet +// --chain=collectives-polkadot-dev +// --wasm-execution=compiled +// --pallet=pallet_ranked_collective +// --extrinsic=* +// --steps=2 +// --repeat=2 +// --json +// --header=./file_header.txt +// --output=./parachains/runtimes/collectives/collectives-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_ranked_collective`. +pub struct WeightInfo(PhantomData); +impl pallet_ranked_collective::WeightInfo for WeightInfo { + /// Storage: `FellowshipCollective::Members` (r:1 w:1) + /// Proof: `FellowshipCollective::Members` (`max_values`: None, `max_size`: Some(42), added: 2517, mode: `MaxEncodedLen`) + /// Storage: `FellowshipCollective::MemberCount` (r:1 w:1) + /// Proof: `FellowshipCollective::MemberCount` (`max_values`: None, `max_size`: Some(14), added: 2489, mode: `MaxEncodedLen`) + /// Storage: `FellowshipCollective::IndexToId` (r:0 w:1) + /// Proof: `FellowshipCollective::IndexToId` (`max_values`: None, `max_size`: Some(54), added: 2529, mode: `MaxEncodedLen`) + /// Storage: `FellowshipCollective::IdToIndex` (r:0 w:1) + /// Proof: `FellowshipCollective::IdToIndex` (`max_values`: None, `max_size`: Some(54), added: 2529, mode: `MaxEncodedLen`) + fn add_member() -> Weight { + // Proof Size summary in bytes: + // Measured: `142` + // Estimated: `3507` + // Minimum execution time: 21_000_000 picoseconds. + Weight::from_parts(22_000_000, 0) + .saturating_add(Weight::from_parts(0, 3507)) + .saturating_add(T::DbWeight::get().reads(2)) + .saturating_add(T::DbWeight::get().writes(4)) + } + /// Storage: `FellowshipCollective::Members` (r:1 w:1) + /// Proof: `FellowshipCollective::Members` (`max_values`: None, `max_size`: Some(42), added: 2517, mode: `MaxEncodedLen`) + /// Storage: `FellowshipCollective::MemberCount` (r:11 w:11) + /// Proof: `FellowshipCollective::MemberCount` (`max_values`: None, `max_size`: Some(14), added: 2489, mode: `MaxEncodedLen`) + /// Storage: `FellowshipCollective::IdToIndex` (r:11 w:11) + /// Proof: `FellowshipCollective::IdToIndex` (`max_values`: None, `max_size`: Some(54), added: 2529, mode: `MaxEncodedLen`) + /// Storage: `FellowshipCollective::IndexToId` (r:11 w:11) + /// Proof: `FellowshipCollective::IndexToId` (`max_values`: None, `max_size`: Some(54), added: 2529, mode: `MaxEncodedLen`) + /// The range of component `r` is `[0, 10]`. + /// The range of component `r` is `[0, 10]`. + fn remove_member(r: u32, ) -> Weight { + // Proof Size summary in bytes: + // Measured: `608 + r * (281 ±0)` + // Estimated: `3519 + r * (2529 ±0)` + // Minimum execution time: 35_000_000 picoseconds. + Weight::from_parts(36_500_000, 0) + .saturating_add(Weight::from_parts(0, 3519)) + // Standard Error: 254_950 + .saturating_add(Weight::from_parts(15_900_000, 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)) + .saturating_add(T::DbWeight::get().writes((3_u64).saturating_mul(r.into()))) + .saturating_add(Weight::from_parts(0, 2529).saturating_mul(r.into())) + } + /// Storage: `FellowshipCollective::Members` (r:1 w:1) + /// Proof: `FellowshipCollective::Members` (`max_values`: None, `max_size`: Some(42), added: 2517, mode: `MaxEncodedLen`) + /// Storage: `FellowshipCollective::MemberCount` (r:1 w:1) + /// Proof: `FellowshipCollective::MemberCount` (`max_values`: None, `max_size`: Some(14), added: 2489, mode: `MaxEncodedLen`) + /// Storage: `FellowshipCollective::IndexToId` (r:0 w:1) + /// Proof: `FellowshipCollective::IndexToId` (`max_values`: None, `max_size`: Some(54), added: 2529, mode: `MaxEncodedLen`) + /// Storage: `FellowshipCollective::IdToIndex` (r:0 w:1) + /// Proof: `FellowshipCollective::IdToIndex` (`max_values`: None, `max_size`: Some(54), added: 2529, mode: `MaxEncodedLen`) + /// The range of component `r` is `[0, 10]`. + /// The range of component `r` is `[0, 10]`. + fn promote_member(r: u32, ) -> Weight { + // Proof Size summary in bytes: + // Measured: `310 + r * (17 ±0)` + // Estimated: `3507` + // Minimum execution time: 25_000_000 picoseconds. + Weight::from_parts(25_500_000, 0) + .saturating_add(Weight::from_parts(0, 3507)) + // Standard Error: 70_710 + .saturating_add(Weight::from_parts(400_000, 0).saturating_mul(r.into())) + .saturating_add(T::DbWeight::get().reads(2)) + .saturating_add(T::DbWeight::get().writes(4)) + } + /// Storage: `FellowshipCollective::Members` (r:1 w:1) + /// Proof: `FellowshipCollective::Members` (`max_values`: None, `max_size`: Some(42), added: 2517, mode: `MaxEncodedLen`) + /// Storage: `FellowshipCollective::MemberCount` (r:1 w:1) + /// Proof: `FellowshipCollective::MemberCount` (`max_values`: None, `max_size`: Some(14), added: 2489, mode: `MaxEncodedLen`) + /// Storage: `FellowshipCollective::IdToIndex` (r:1 w:1) + /// Proof: `FellowshipCollective::IdToIndex` (`max_values`: None, `max_size`: Some(54), added: 2529, mode: `MaxEncodedLen`) + /// Storage: `FellowshipCollective::IndexToId` (r:1 w:1) + /// Proof: `FellowshipCollective::IndexToId` (`max_values`: None, `max_size`: Some(54), added: 2529, mode: `MaxEncodedLen`) + /// The range of component `r` is `[0, 10]`. + /// The range of component `r` is `[0, 10]`. + fn demote_member(r: u32, ) -> Weight { + // Proof Size summary in bytes: + // Measured: `608 + r * (71 ±0)` + // Estimated: `3519` + // Minimum execution time: 35_000_000 picoseconds. + Weight::from_parts(37_500_000, 0) + .saturating_add(Weight::from_parts(0, 3519)) + // Standard Error: 150_000 + .saturating_add(Weight::from_parts(350_000, 0).saturating_mul(r.into())) + .saturating_add(T::DbWeight::get().reads(4)) + .saturating_add(T::DbWeight::get().writes(4)) + } + /// Storage: `FellowshipCollective::Members` (r:1 w:0) + /// Proof: `FellowshipCollective::Members` (`max_values`: None, `max_size`: Some(42), added: 2517, mode: `MaxEncodedLen`) + /// Storage: `FellowshipReferenda::ReferendumInfoFor` (r:1 w:1) + /// Proof: `FellowshipReferenda::ReferendumInfoFor` (`max_values`: None, `max_size`: Some(900), added: 3375, mode: `MaxEncodedLen`) + /// Storage: `FellowshipCollective::Voting` (r:1 w:1) + /// Proof: `FellowshipCollective::Voting` (`max_values`: None, `max_size`: Some(65), added: 2540, mode: `MaxEncodedLen`) + /// Storage: `Scheduler::Agenda` (r:2 w:2) + /// Proof: `Scheduler::Agenda` (`max_values`: None, `max_size`: Some(155814), added: 158289, mode: `MaxEncodedLen`) + fn vote() -> Weight { + // Proof Size summary in bytes: + // Measured: `700` + // Estimated: `317568` + // Minimum execution time: 57_000_000 picoseconds. + Weight::from_parts(57_000_000, 0) + .saturating_add(Weight::from_parts(0, 317568)) + .saturating_add(T::DbWeight::get().reads(5)) + .saturating_add(T::DbWeight::get().writes(4)) + } + /// Storage: `FellowshipReferenda::ReferendumInfoFor` (r:1 w:0) + /// Proof: `FellowshipReferenda::ReferendumInfoFor` (`max_values`: None, `max_size`: Some(900), added: 3375, mode: `MaxEncodedLen`) + /// Storage: `FellowshipCollective::VotingCleanup` (r:1 w:0) + /// Proof: `FellowshipCollective::VotingCleanup` (`max_values`: None, `max_size`: Some(114), added: 2589, mode: `MaxEncodedLen`) + /// Storage: `FellowshipCollective::Voting` (r:100 w:100) + /// Proof: `FellowshipCollective::Voting` (`max_values`: None, `max_size`: Some(65), added: 2540, mode: `MaxEncodedLen`) + /// The range of component `n` is `[0, 100]`. + /// The range of component `n` is `[0, 100]`. + fn cleanup_poll(n: u32, ) -> Weight { + // Proof Size summary in bytes: + // Measured: `343 + n * (52 ±0)` + // Estimated: `4365 + n * (2550 ±0)` + // Minimum execution time: 18_000_000 picoseconds. + Weight::from_parts(19_000_000, 0) + .saturating_add(Weight::from_parts(0, 4365)) + // Standard Error: 25_000 + .saturating_add(Weight::from_parts(1_395_000, 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()))) + .saturating_add(Weight::from_parts(0, 2550).saturating_mul(n.into())) + } +} diff --git a/cumulus/parachains/runtimes/collectives/collectives-polkadot/src/weights/pallet_referenda_ambassador_referenda.rs b/cumulus/parachains/runtimes/collectives/collectives-polkadot/src/weights/pallet_referenda_ambassador_referenda.rs new file mode 100644 index 000000000000..fdc451c5d31c --- /dev/null +++ b/cumulus/parachains/runtimes/collectives/collectives-polkadot/src/weights/pallet_referenda_ambassador_referenda.rs @@ -0,0 +1,536 @@ +// Copyright Parity Technologies (UK) Ltd. +// This file is part of Cumulus. + +// Cumulus 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. + +// Cumulus 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 Cumulus. If not, see . + +//! Autogenerated weights for `pallet_referenda` +//! +//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev +//! DATE: 2023-08-11, STEPS: `2`, REPEAT: `2`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! WORST CASE MAP SIZE: `1000000` +//! HOSTNAME: `cob`, CPU: `` +//! WASM-EXECUTION: `Compiled`, CHAIN: `Some("collectives-polkadot-dev")`, DB CACHE: 1024 + +// Executed Command: +// target/release/polkadot-parachain +// benchmark +// pallet +// --chain=collectives-polkadot-dev +// --wasm-execution=compiled +// --pallet=pallet_referenda +// --extrinsic=* +// --steps=2 +// --repeat=2 +// --json +// --header=./file_header.txt +// --output=./parachains/runtimes/collectives/collectives-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_referenda`. +pub struct WeightInfo(PhantomData); +impl pallet_referenda::WeightInfo for WeightInfo { + /// Storage: `AmbassadorCollective::Members` (r:1 w:0) + /// Proof: `AmbassadorCollective::Members` (`max_values`: None, `max_size`: Some(42), added: 2517, mode: `MaxEncodedLen`) + /// Storage: `AmbassadorReferenda::ReferendumCount` (r:1 w:1) + /// Proof: `AmbassadorReferenda::ReferendumCount` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`) + /// Storage: `Scheduler::Agenda` (r:1 w:1) + /// Proof: `Scheduler::Agenda` (`max_values`: None, `max_size`: Some(155814), added: 158289, mode: `MaxEncodedLen`) + /// Storage: `AmbassadorReferenda::ReferendumInfoFor` (r:0 w:1) + /// Proof: `AmbassadorReferenda::ReferendumInfoFor` (`max_values`: None, `max_size`: Some(900), added: 3375, mode: `MaxEncodedLen`) + fn submit() -> Weight { + // Proof Size summary in bytes: + // Measured: `255` + // Estimated: `159279` + // Minimum execution time: 32_000_000 picoseconds. + Weight::from_parts(34_000_000, 0) + .saturating_add(Weight::from_parts(0, 159279)) + .saturating_add(T::DbWeight::get().reads(3)) + .saturating_add(T::DbWeight::get().writes(3)) + } + /// Storage: `AmbassadorReferenda::ReferendumInfoFor` (r:1 w:1) + /// Proof: `AmbassadorReferenda::ReferendumInfoFor` (`max_values`: None, `max_size`: Some(900), added: 3375, mode: `MaxEncodedLen`) + /// Storage: `Scheduler::Agenda` (r:2 w:2) + /// Proof: `Scheduler::Agenda` (`max_values`: None, `max_size`: Some(155814), added: 158289, mode: `MaxEncodedLen`) + fn place_decision_deposit_preparing() -> Weight { + // Proof Size summary in bytes: + // Measured: `366` + // Estimated: `317568` + // Minimum execution time: 63_000_000 picoseconds. + Weight::from_parts(68_000_000, 0) + .saturating_add(Weight::from_parts(0, 317568)) + .saturating_add(T::DbWeight::get().reads(3)) + .saturating_add(T::DbWeight::get().writes(3)) + } + /// Storage: `AmbassadorReferenda::ReferendumInfoFor` (r:1 w:1) + /// Proof: `AmbassadorReferenda::ReferendumInfoFor` (`max_values`: None, `max_size`: Some(900), added: 3375, mode: `MaxEncodedLen`) + /// Storage: `AmbassadorReferenda::DecidingCount` (r:1 w:0) + /// Proof: `AmbassadorReferenda::DecidingCount` (`max_values`: None, `max_size`: Some(14), added: 2489, mode: `MaxEncodedLen`) + /// Storage: `AmbassadorReferenda::TrackQueue` (r:1 w:1) + /// Proof: `AmbassadorReferenda::TrackQueue` (`max_values`: None, `max_size`: Some(171), added: 2646, mode: `MaxEncodedLen`) + /// Storage: `Scheduler::Agenda` (r:1 w:1) + /// Proof: `Scheduler::Agenda` (`max_values`: None, `max_size`: Some(155814), added: 158289, mode: `MaxEncodedLen`) + fn place_decision_deposit_queued() -> Weight { + // Proof Size summary in bytes: + // Measured: `1165` + // Estimated: `159279` + // Minimum execution time: 97_000_000 picoseconds. + Weight::from_parts(123_000_000, 0) + .saturating_add(Weight::from_parts(0, 159279)) + .saturating_add(T::DbWeight::get().reads(4)) + .saturating_add(T::DbWeight::get().writes(3)) + } + /// Storage: `AmbassadorReferenda::ReferendumInfoFor` (r:1 w:1) + /// Proof: `AmbassadorReferenda::ReferendumInfoFor` (`max_values`: None, `max_size`: Some(900), added: 3375, mode: `MaxEncodedLen`) + /// Storage: `AmbassadorReferenda::DecidingCount` (r:1 w:0) + /// Proof: `AmbassadorReferenda::DecidingCount` (`max_values`: None, `max_size`: Some(14), added: 2489, mode: `MaxEncodedLen`) + /// Storage: `AmbassadorReferenda::TrackQueue` (r:1 w:1) + /// Proof: `AmbassadorReferenda::TrackQueue` (`max_values`: None, `max_size`: Some(171), added: 2646, mode: `MaxEncodedLen`) + /// Storage: `Scheduler::Agenda` (r:1 w:1) + /// Proof: `Scheduler::Agenda` (`max_values`: None, `max_size`: Some(155814), added: 158289, mode: `MaxEncodedLen`) + fn place_decision_deposit_not_queued() -> Weight { + // Proof Size summary in bytes: + // Measured: `1173` + // Estimated: `159279` + // Minimum execution time: 104_000_000 picoseconds. + Weight::from_parts(111_000_000, 0) + .saturating_add(Weight::from_parts(0, 159279)) + .saturating_add(T::DbWeight::get().reads(4)) + .saturating_add(T::DbWeight::get().writes(3)) + } + /// Storage: `AmbassadorReferenda::ReferendumInfoFor` (r:1 w:1) + /// Proof: `AmbassadorReferenda::ReferendumInfoFor` (`max_values`: None, `max_size`: Some(900), added: 3375, mode: `MaxEncodedLen`) + /// Storage: `AmbassadorReferenda::DecidingCount` (r:1 w:1) + /// Proof: `AmbassadorReferenda::DecidingCount` (`max_values`: None, `max_size`: Some(14), added: 2489, mode: `MaxEncodedLen`) + /// Storage: `AmbassadorCollective::MemberCount` (r:1 w:0) + /// Proof: `AmbassadorCollective::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(155814), added: 158289, mode: `MaxEncodedLen`) + fn place_decision_deposit_passing() -> Weight { + // Proof Size summary in bytes: + // Measured: `702` + // Estimated: `317568` + // Minimum execution time: 140_000_000 picoseconds. + Weight::from_parts(150_000_000, 0) + .saturating_add(Weight::from_parts(0, 317568)) + .saturating_add(T::DbWeight::get().reads(5)) + .saturating_add(T::DbWeight::get().writes(4)) + } + /// Storage: `AmbassadorReferenda::ReferendumInfoFor` (r:1 w:1) + /// Proof: `AmbassadorReferenda::ReferendumInfoFor` (`max_values`: None, `max_size`: Some(900), added: 3375, mode: `MaxEncodedLen`) + /// Storage: `AmbassadorReferenda::DecidingCount` (r:1 w:1) + /// Proof: `AmbassadorReferenda::DecidingCount` (`max_values`: None, `max_size`: Some(14), added: 2489, mode: `MaxEncodedLen`) + /// Storage: `AmbassadorCollective::MemberCount` (r:1 w:0) + /// Proof: `AmbassadorCollective::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(155814), added: 158289, mode: `MaxEncodedLen`) + fn place_decision_deposit_failing() -> Weight { + // Proof Size summary in bytes: + // Measured: `601` + // Estimated: `317568` + // Minimum execution time: 81_000_000 picoseconds. + Weight::from_parts(82_000_000, 0) + .saturating_add(Weight::from_parts(0, 317568)) + .saturating_add(T::DbWeight::get().reads(5)) + .saturating_add(T::DbWeight::get().writes(4)) + } + /// Storage: `AmbassadorReferenda::ReferendumInfoFor` (r:1 w:1) + /// Proof: `AmbassadorReferenda::ReferendumInfoFor` (`max_values`: None, `max_size`: Some(900), added: 3375, mode: `MaxEncodedLen`) + fn refund_decision_deposit() -> Weight { + // Proof Size summary in bytes: + // Measured: `317` + // Estimated: `4365` + // Minimum execution time: 38_000_000 picoseconds. + Weight::from_parts(38_000_000, 0) + .saturating_add(Weight::from_parts(0, 4365)) + .saturating_add(T::DbWeight::get().reads(1)) + .saturating_add(T::DbWeight::get().writes(1)) + } + /// Storage: `AmbassadorReferenda::ReferendumInfoFor` (r:1 w:1) + /// Proof: `AmbassadorReferenda::ReferendumInfoFor` (`max_values`: None, `max_size`: Some(900), added: 3375, mode: `MaxEncodedLen`) + fn refund_submission_deposit() -> Weight { + // Proof Size summary in bytes: + // Measured: `167` + // Estimated: `4365` + // Minimum execution time: 17_000_000 picoseconds. + Weight::from_parts(18_000_000, 0) + .saturating_add(Weight::from_parts(0, 4365)) + .saturating_add(T::DbWeight::get().reads(1)) + .saturating_add(T::DbWeight::get().writes(1)) + } + /// Storage: `AmbassadorReferenda::ReferendumInfoFor` (r:1 w:1) + /// Proof: `AmbassadorReferenda::ReferendumInfoFor` (`max_values`: None, `max_size`: Some(900), added: 3375, mode: `MaxEncodedLen`) + /// Storage: `Scheduler::Agenda` (r:2 w:2) + /// Proof: `Scheduler::Agenda` (`max_values`: None, `max_size`: Some(155814), added: 158289, mode: `MaxEncodedLen`) + fn cancel() -> Weight { + // Proof Size summary in bytes: + // Measured: `311` + // Estimated: `317568` + // Minimum execution time: 44_000_000 picoseconds. + Weight::from_parts(45_000_000, 0) + .saturating_add(Weight::from_parts(0, 317568)) + .saturating_add(T::DbWeight::get().reads(3)) + .saturating_add(T::DbWeight::get().writes(3)) + } + /// Storage: `AmbassadorReferenda::ReferendumInfoFor` (r:1 w:1) + /// Proof: `AmbassadorReferenda::ReferendumInfoFor` (`max_values`: None, `max_size`: Some(900), added: 3375, mode: `MaxEncodedLen`) + /// Storage: `Scheduler::Agenda` (r:2 w:2) + /// Proof: `Scheduler::Agenda` (`max_values`: None, `max_size`: Some(155814), added: 158289, mode: `MaxEncodedLen`) + /// Storage: `System::Account` (r:1 w:1) + /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`) + /// Storage: `ParachainInfo::ParachainId` (r:1 w:0) + /// Proof: `ParachainInfo::ParachainId` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`) + /// Storage: `PolkadotXcm::SupportedVersion` (r:1 w:0) + /// Proof: `PolkadotXcm::SupportedVersion` (`max_values`: None, `max_size`: None, mode: `Measured`) + /// Storage: `PolkadotXcm::VersionDiscoveryQueue` (r:1 w:1) + /// Proof: `PolkadotXcm::VersionDiscoveryQueue` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `PolkadotXcm::SafeXcmVersion` (r:1 w:0) + /// Proof: `PolkadotXcm::SafeXcmVersion` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `ParachainSystem::HostConfiguration` (r:1 w:0) + /// Proof: `ParachainSystem::HostConfiguration` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `ParachainSystem::PendingUpwardMessages` (r:1 w:1) + /// Proof: `ParachainSystem::PendingUpwardMessages` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `AmbassadorReferenda::MetadataOf` (r:1 w:0) + /// Proof: `AmbassadorReferenda::MetadataOf` (`max_values`: None, `max_size`: Some(52), added: 2527, mode: `MaxEncodedLen`) + fn kill() -> Weight { + // Proof Size summary in bytes: + // Measured: `626` + // Estimated: `317568` + // Minimum execution time: 183_000_000 picoseconds. + Weight::from_parts(187_000_000, 0) + .saturating_add(Weight::from_parts(0, 317568)) + .saturating_add(T::DbWeight::get().reads(11)) + .saturating_add(T::DbWeight::get().writes(6)) + } + /// Storage: `AmbassadorReferenda::TrackQueue` (r:1 w:0) + /// Proof: `AmbassadorReferenda::TrackQueue` (`max_values`: None, `max_size`: Some(171), added: 2646, mode: `MaxEncodedLen`) + /// Storage: `AmbassadorReferenda::DecidingCount` (r:1 w:1) + /// Proof: `AmbassadorReferenda::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: `140` + // Estimated: `3636` + // Minimum execution time: 12_000_000 picoseconds. + Weight::from_parts(12_000_000, 0) + .saturating_add(Weight::from_parts(0, 3636)) + .saturating_add(T::DbWeight::get().reads(2)) + .saturating_add(T::DbWeight::get().writes(1)) + } + /// Storage: `AmbassadorReferenda::TrackQueue` (r:1 w:1) + /// Proof: `AmbassadorReferenda::TrackQueue` (`max_values`: None, `max_size`: Some(171), added: 2646, mode: `MaxEncodedLen`) + /// Storage: `AmbassadorReferenda::ReferendumInfoFor` (r:1 w:1) + /// Proof: `AmbassadorReferenda::ReferendumInfoFor` (`max_values`: None, `max_size`: Some(900), added: 3375, mode: `MaxEncodedLen`) + /// Storage: `AmbassadorCollective::MemberCount` (r:1 w:0) + /// Proof: `AmbassadorCollective::MemberCount` (`max_values`: None, `max_size`: Some(14), added: 2489, mode: `MaxEncodedLen`) + /// Storage: `Scheduler::Agenda` (r:1 w:1) + /// Proof: `Scheduler::Agenda` (`max_values`: None, `max_size`: Some(155814), added: 158289, mode: `MaxEncodedLen`) + fn one_fewer_deciding_failing() -> Weight { + // Proof Size summary in bytes: + // Measured: `1412` + // Estimated: `159279` + // Minimum execution time: 88_000_000 picoseconds. + Weight::from_parts(97_000_000, 0) + .saturating_add(Weight::from_parts(0, 159279)) + .saturating_add(T::DbWeight::get().reads(4)) + .saturating_add(T::DbWeight::get().writes(3)) + } + /// Storage: `AmbassadorReferenda::TrackQueue` (r:1 w:1) + /// Proof: `AmbassadorReferenda::TrackQueue` (`max_values`: None, `max_size`: Some(171), added: 2646, mode: `MaxEncodedLen`) + /// Storage: `AmbassadorReferenda::ReferendumInfoFor` (r:1 w:1) + /// Proof: `AmbassadorReferenda::ReferendumInfoFor` (`max_values`: None, `max_size`: Some(900), added: 3375, mode: `MaxEncodedLen`) + /// Storage: `AmbassadorCollective::MemberCount` (r:1 w:0) + /// Proof: `AmbassadorCollective::MemberCount` (`max_values`: None, `max_size`: Some(14), added: 2489, mode: `MaxEncodedLen`) + /// Storage: `Scheduler::Agenda` (r:1 w:1) + /// Proof: `Scheduler::Agenda` (`max_values`: None, `max_size`: Some(155814), added: 158289, mode: `MaxEncodedLen`) + fn one_fewer_deciding_passing() -> Weight { + // Proof Size summary in bytes: + // Measured: `1412` + // Estimated: `159279` + // Minimum execution time: 87_000_000 picoseconds. + Weight::from_parts(92_000_000, 0) + .saturating_add(Weight::from_parts(0, 159279)) + .saturating_add(T::DbWeight::get().reads(4)) + .saturating_add(T::DbWeight::get().writes(3)) + } + /// Storage: `AmbassadorReferenda::ReferendumInfoFor` (r:1 w:0) + /// Proof: `AmbassadorReferenda::ReferendumInfoFor` (`max_values`: None, `max_size`: Some(900), added: 3375, mode: `MaxEncodedLen`) + /// Storage: `AmbassadorReferenda::TrackQueue` (r:1 w:1) + /// Proof: `AmbassadorReferenda::TrackQueue` (`max_values`: None, `max_size`: Some(171), added: 2646, mode: `MaxEncodedLen`) + fn nudge_referendum_requeued_insertion() -> Weight { + // Proof Size summary in bytes: + // Measured: `935` + // Estimated: `4365` + // Minimum execution time: 43_000_000 picoseconds. + Weight::from_parts(46_000_000, 0) + .saturating_add(Weight::from_parts(0, 4365)) + .saturating_add(T::DbWeight::get().reads(2)) + .saturating_add(T::DbWeight::get().writes(1)) + } + /// Storage: `AmbassadorReferenda::ReferendumInfoFor` (r:1 w:0) + /// Proof: `AmbassadorReferenda::ReferendumInfoFor` (`max_values`: None, `max_size`: Some(900), added: 3375, mode: `MaxEncodedLen`) + /// Storage: `AmbassadorReferenda::TrackQueue` (r:1 w:1) + /// Proof: `AmbassadorReferenda::TrackQueue` (`max_values`: None, `max_size`: Some(171), added: 2646, mode: `MaxEncodedLen`) + fn nudge_referendum_requeued_slide() -> Weight { + // Proof Size summary in bytes: + // Measured: `935` + // Estimated: `4365` + // Minimum execution time: 39_000_000 picoseconds. + Weight::from_parts(43_000_000, 0) + .saturating_add(Weight::from_parts(0, 4365)) + .saturating_add(T::DbWeight::get().reads(2)) + .saturating_add(T::DbWeight::get().writes(1)) + } + /// Storage: `AmbassadorReferenda::ReferendumInfoFor` (r:1 w:1) + /// Proof: `AmbassadorReferenda::ReferendumInfoFor` (`max_values`: None, `max_size`: Some(900), added: 3375, mode: `MaxEncodedLen`) + /// Storage: `AmbassadorReferenda::DecidingCount` (r:1 w:0) + /// Proof: `AmbassadorReferenda::DecidingCount` (`max_values`: None, `max_size`: Some(14), added: 2489, mode: `MaxEncodedLen`) + /// Storage: `AmbassadorReferenda::TrackQueue` (r:1 w:1) + /// Proof: `AmbassadorReferenda::TrackQueue` (`max_values`: None, `max_size`: Some(171), added: 2646, mode: `MaxEncodedLen`) + fn nudge_referendum_queued() -> Weight { + // Proof Size summary in bytes: + // Measured: `951` + // Estimated: `4365` + // Minimum execution time: 48_000_000 picoseconds. + Weight::from_parts(50_000_000, 0) + .saturating_add(Weight::from_parts(0, 4365)) + .saturating_add(T::DbWeight::get().reads(3)) + .saturating_add(T::DbWeight::get().writes(2)) + } + /// Storage: `AmbassadorReferenda::ReferendumInfoFor` (r:1 w:1) + /// Proof: `AmbassadorReferenda::ReferendumInfoFor` (`max_values`: None, `max_size`: Some(900), added: 3375, mode: `MaxEncodedLen`) + /// Storage: `AmbassadorReferenda::DecidingCount` (r:1 w:0) + /// Proof: `AmbassadorReferenda::DecidingCount` (`max_values`: None, `max_size`: Some(14), added: 2489, mode: `MaxEncodedLen`) + /// Storage: `AmbassadorReferenda::TrackQueue` (r:1 w:1) + /// Proof: `AmbassadorReferenda::TrackQueue` (`max_values`: None, `max_size`: Some(171), added: 2646, mode: `MaxEncodedLen`) + fn nudge_referendum_not_queued() -> Weight { + // Proof Size summary in bytes: + // Measured: `959` + // Estimated: `4365` + // Minimum execution time: 42_000_000 picoseconds. + Weight::from_parts(48_000_000, 0) + .saturating_add(Weight::from_parts(0, 4365)) + .saturating_add(T::DbWeight::get().reads(3)) + .saturating_add(T::DbWeight::get().writes(2)) + } + /// Storage: `AmbassadorReferenda::ReferendumInfoFor` (r:1 w:1) + /// Proof: `AmbassadorReferenda::ReferendumInfoFor` (`max_values`: None, `max_size`: Some(900), added: 3375, mode: `MaxEncodedLen`) + /// Storage: `Scheduler::Agenda` (r:1 w:1) + /// Proof: `Scheduler::Agenda` (`max_values`: None, `max_size`: Some(155814), added: 158289, mode: `MaxEncodedLen`) + fn nudge_referendum_no_deposit() -> Weight { + // Proof Size summary in bytes: + // Measured: `263` + // Estimated: `159279` + // Minimum execution time: 28_000_000 picoseconds. + Weight::from_parts(30_000_000, 0) + .saturating_add(Weight::from_parts(0, 159279)) + .saturating_add(T::DbWeight::get().reads(2)) + .saturating_add(T::DbWeight::get().writes(2)) + } + /// Storage: `AmbassadorReferenda::ReferendumInfoFor` (r:1 w:1) + /// Proof: `AmbassadorReferenda::ReferendumInfoFor` (`max_values`: None, `max_size`: Some(900), added: 3375, mode: `MaxEncodedLen`) + /// Storage: `Scheduler::Agenda` (r:1 w:1) + /// Proof: `Scheduler::Agenda` (`max_values`: None, `max_size`: Some(155814), added: 158289, mode: `MaxEncodedLen`) + fn nudge_referendum_preparing() -> Weight { + // Proof Size summary in bytes: + // Measured: `311` + // Estimated: `159279` + // Minimum execution time: 26_000_000 picoseconds. + Weight::from_parts(28_000_000, 0) + .saturating_add(Weight::from_parts(0, 159279)) + .saturating_add(T::DbWeight::get().reads(2)) + .saturating_add(T::DbWeight::get().writes(2)) + } + /// Storage: `AmbassadorReferenda::ReferendumInfoFor` (r:1 w:1) + /// Proof: `AmbassadorReferenda::ReferendumInfoFor` (`max_values`: None, `max_size`: Some(900), added: 3375, mode: `MaxEncodedLen`) + fn nudge_referendum_timed_out() -> Weight { + // Proof Size summary in bytes: + // Measured: `208` + // Estimated: `4365` + // Minimum execution time: 19_000_000 picoseconds. + Weight::from_parts(20_000_000, 0) + .saturating_add(Weight::from_parts(0, 4365)) + .saturating_add(T::DbWeight::get().reads(1)) + .saturating_add(T::DbWeight::get().writes(1)) + } + /// Storage: `AmbassadorReferenda::ReferendumInfoFor` (r:1 w:1) + /// Proof: `AmbassadorReferenda::ReferendumInfoFor` (`max_values`: None, `max_size`: Some(900), added: 3375, mode: `MaxEncodedLen`) + /// Storage: `AmbassadorReferenda::DecidingCount` (r:1 w:1) + /// Proof: `AmbassadorReferenda::DecidingCount` (`max_values`: None, `max_size`: Some(14), added: 2489, mode: `MaxEncodedLen`) + /// Storage: `AmbassadorCollective::MemberCount` (r:1 w:0) + /// Proof: `AmbassadorCollective::MemberCount` (`max_values`: None, `max_size`: Some(14), added: 2489, mode: `MaxEncodedLen`) + /// Storage: `Scheduler::Agenda` (r:1 w:1) + /// Proof: `Scheduler::Agenda` (`max_values`: None, `max_size`: Some(155814), added: 158289, mode: `MaxEncodedLen`) + fn nudge_referendum_begin_deciding_failing() -> Weight { + // Proof Size summary in bytes: + // Measured: `546` + // Estimated: `159279` + // Minimum execution time: 42_000_000 picoseconds. + Weight::from_parts(46_000_000, 0) + .saturating_add(Weight::from_parts(0, 159279)) + .saturating_add(T::DbWeight::get().reads(4)) + .saturating_add(T::DbWeight::get().writes(3)) + } + /// Storage: `AmbassadorReferenda::ReferendumInfoFor` (r:1 w:1) + /// Proof: `AmbassadorReferenda::ReferendumInfoFor` (`max_values`: None, `max_size`: Some(900), added: 3375, mode: `MaxEncodedLen`) + /// Storage: `AmbassadorReferenda::DecidingCount` (r:1 w:1) + /// Proof: `AmbassadorReferenda::DecidingCount` (`max_values`: None, `max_size`: Some(14), added: 2489, mode: `MaxEncodedLen`) + /// Storage: `AmbassadorCollective::MemberCount` (r:1 w:0) + /// Proof: `AmbassadorCollective::MemberCount` (`max_values`: None, `max_size`: Some(14), added: 2489, mode: `MaxEncodedLen`) + /// Storage: `Scheduler::Agenda` (r:1 w:1) + /// Proof: `Scheduler::Agenda` (`max_values`: None, `max_size`: Some(155814), added: 158289, mode: `MaxEncodedLen`) + fn nudge_referendum_begin_deciding_passing() -> Weight { + // Proof Size summary in bytes: + // Measured: `647` + // Estimated: `159279` + // Minimum execution time: 87_000_000 picoseconds. + Weight::from_parts(93_000_000, 0) + .saturating_add(Weight::from_parts(0, 159279)) + .saturating_add(T::DbWeight::get().reads(4)) + .saturating_add(T::DbWeight::get().writes(3)) + } + /// Storage: `AmbassadorReferenda::ReferendumInfoFor` (r:1 w:1) + /// Proof: `AmbassadorReferenda::ReferendumInfoFor` (`max_values`: None, `max_size`: Some(900), added: 3375, mode: `MaxEncodedLen`) + /// Storage: `AmbassadorCollective::MemberCount` (r:1 w:0) + /// Proof: `AmbassadorCollective::MemberCount` (`max_values`: None, `max_size`: Some(14), added: 2489, mode: `MaxEncodedLen`) + /// Storage: `Scheduler::Agenda` (r:1 w:1) + /// Proof: `Scheduler::Agenda` (`max_values`: None, `max_size`: Some(155814), added: 158289, mode: `MaxEncodedLen`) + fn nudge_referendum_begin_confirming() -> Weight { + // Proof Size summary in bytes: + // Measured: `700` + // Estimated: `159279` + // Minimum execution time: 100_000_000 picoseconds. + Weight::from_parts(120_000_000, 0) + .saturating_add(Weight::from_parts(0, 159279)) + .saturating_add(T::DbWeight::get().reads(3)) + .saturating_add(T::DbWeight::get().writes(2)) + } + /// Storage: `AmbassadorReferenda::ReferendumInfoFor` (r:1 w:1) + /// Proof: `AmbassadorReferenda::ReferendumInfoFor` (`max_values`: None, `max_size`: Some(900), added: 3375, mode: `MaxEncodedLen`) + /// Storage: `AmbassadorCollective::MemberCount` (r:1 w:0) + /// Proof: `AmbassadorCollective::MemberCount` (`max_values`: None, `max_size`: Some(14), added: 2489, mode: `MaxEncodedLen`) + /// Storage: `Scheduler::Agenda` (r:1 w:1) + /// Proof: `Scheduler::Agenda` (`max_values`: None, `max_size`: Some(155814), added: 158289, mode: `MaxEncodedLen`) + fn nudge_referendum_end_confirming() -> Weight { + // Proof Size summary in bytes: + // Measured: `683` + // Estimated: `159279` + // Minimum execution time: 90_000_000 picoseconds. + Weight::from_parts(100_000_000, 0) + .saturating_add(Weight::from_parts(0, 159279)) + .saturating_add(T::DbWeight::get().reads(3)) + .saturating_add(T::DbWeight::get().writes(2)) + } + /// Storage: `AmbassadorReferenda::ReferendumInfoFor` (r:1 w:1) + /// Proof: `AmbassadorReferenda::ReferendumInfoFor` (`max_values`: None, `max_size`: Some(900), added: 3375, mode: `MaxEncodedLen`) + /// Storage: `AmbassadorCollective::MemberCount` (r:1 w:0) + /// Proof: `AmbassadorCollective::MemberCount` (`max_values`: None, `max_size`: Some(14), added: 2489, mode: `MaxEncodedLen`) + /// Storage: `Scheduler::Agenda` (r:1 w:1) + /// Proof: `Scheduler::Agenda` (`max_values`: None, `max_size`: Some(155814), added: 158289, mode: `MaxEncodedLen`) + fn nudge_referendum_continue_not_confirming() -> Weight { + // Proof Size summary in bytes: + // Measured: `700` + // Estimated: `159279` + // Minimum execution time: 77_000_000 picoseconds. + Weight::from_parts(82_000_000, 0) + .saturating_add(Weight::from_parts(0, 159279)) + .saturating_add(T::DbWeight::get().reads(3)) + .saturating_add(T::DbWeight::get().writes(2)) + } + /// Storage: `AmbassadorReferenda::ReferendumInfoFor` (r:1 w:1) + /// Proof: `AmbassadorReferenda::ReferendumInfoFor` (`max_values`: None, `max_size`: Some(900), added: 3375, mode: `MaxEncodedLen`) + /// Storage: `AmbassadorCollective::MemberCount` (r:1 w:0) + /// Proof: `AmbassadorCollective::MemberCount` (`max_values`: None, `max_size`: Some(14), added: 2489, mode: `MaxEncodedLen`) + /// Storage: `Scheduler::Agenda` (r:1 w:1) + /// Proof: `Scheduler::Agenda` (`max_values`: None, `max_size`: Some(155814), added: 158289, mode: `MaxEncodedLen`) + fn nudge_referendum_continue_confirming() -> Weight { + // Proof Size summary in bytes: + // Measured: `704` + // Estimated: `159279` + // Minimum execution time: 68_000_000 picoseconds. + Weight::from_parts(77_000_000, 0) + .saturating_add(Weight::from_parts(0, 159279)) + .saturating_add(T::DbWeight::get().reads(3)) + .saturating_add(T::DbWeight::get().writes(2)) + } + /// Storage: `AmbassadorReferenda::ReferendumInfoFor` (r:1 w:1) + /// Proof: `AmbassadorReferenda::ReferendumInfoFor` (`max_values`: None, `max_size`: Some(900), added: 3375, mode: `MaxEncodedLen`) + /// Storage: `AmbassadorCollective::MemberCount` (r:1 w:0) + /// Proof: `AmbassadorCollective::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(155814), added: 158289, mode: `MaxEncodedLen`) + /// Storage: `Scheduler::Lookup` (r:1 w:1) + /// 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: `704` + // Estimated: `317568` + // Minimum execution time: 99_000_000 picoseconds. + Weight::from_parts(104_000_000, 0) + .saturating_add(Weight::from_parts(0, 317568)) + .saturating_add(T::DbWeight::get().reads(5)) + .saturating_add(T::DbWeight::get().writes(4)) + } + /// Storage: `AmbassadorReferenda::ReferendumInfoFor` (r:1 w:1) + /// Proof: `AmbassadorReferenda::ReferendumInfoFor` (`max_values`: None, `max_size`: Some(900), added: 3375, mode: `MaxEncodedLen`) + /// Storage: `AmbassadorCollective::MemberCount` (r:1 w:0) + /// Proof: `AmbassadorCollective::MemberCount` (`max_values`: None, `max_size`: Some(14), added: 2489, mode: `MaxEncodedLen`) + /// Storage: `Scheduler::Agenda` (r:1 w:1) + /// Proof: `Scheduler::Agenda` (`max_values`: None, `max_size`: Some(155814), added: 158289, mode: `MaxEncodedLen`) + fn nudge_referendum_rejected() -> Weight { + // Proof Size summary in bytes: + // Measured: `700` + // Estimated: `159279` + // Minimum execution time: 87_000_000 picoseconds. + Weight::from_parts(100_000_000, 0) + .saturating_add(Weight::from_parts(0, 159279)) + .saturating_add(T::DbWeight::get().reads(3)) + .saturating_add(T::DbWeight::get().writes(2)) + } + /// Storage: `AmbassadorReferenda::ReferendumInfoFor` (r:1 w:0) + /// Proof: `AmbassadorReferenda::ReferendumInfoFor` (`max_values`: None, `max_size`: Some(900), added: 3375, mode: `MaxEncodedLen`) + /// Storage: `Preimage::StatusFor` (r:1 w:0) + /// Proof: `Preimage::StatusFor` (`max_values`: None, `max_size`: Some(91), added: 2566, mode: `MaxEncodedLen`) + /// Storage: `AmbassadorReferenda::MetadataOf` (r:0 w:1) + /// Proof: `AmbassadorReferenda::MetadataOf` (`max_values`: None, `max_size`: Some(52), added: 2527, mode: `MaxEncodedLen`) + fn set_some_metadata() -> Weight { + // Proof Size summary in bytes: + // Measured: `419` + // Estimated: `4365` + // Minimum execution time: 23_000_000 picoseconds. + Weight::from_parts(25_000_000, 0) + .saturating_add(Weight::from_parts(0, 4365)) + .saturating_add(T::DbWeight::get().reads(2)) + .saturating_add(T::DbWeight::get().writes(1)) + } + /// Storage: `AmbassadorReferenda::ReferendumInfoFor` (r:1 w:0) + /// Proof: `AmbassadorReferenda::ReferendumInfoFor` (`max_values`: None, `max_size`: Some(900), added: 3375, mode: `MaxEncodedLen`) + /// Storage: `AmbassadorReferenda::MetadataOf` (r:1 w:1) + /// Proof: `AmbassadorReferenda::MetadataOf` (`max_values`: None, `max_size`: Some(52), added: 2527, mode: `MaxEncodedLen`) + fn clear_metadata() -> Weight { + // Proof Size summary in bytes: + // Measured: `285` + // Estimated: `4365` + // Minimum execution time: 20_000_000 picoseconds. + Weight::from_parts(21_000_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/cumulus/parachains/runtimes/collectives/collectives-polkadot/src/weights/pallet_referenda_fellowship_referenda.rs b/cumulus/parachains/runtimes/collectives/collectives-polkadot/src/weights/pallet_referenda_fellowship_referenda.rs new file mode 100644 index 000000000000..5b4aed06899f --- /dev/null +++ b/cumulus/parachains/runtimes/collectives/collectives-polkadot/src/weights/pallet_referenda_fellowship_referenda.rs @@ -0,0 +1,536 @@ +// Copyright (C) Parity Technologies (UK) Ltd. +// This file is part of Cumulus. + +// Cumulus 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. + +// Cumulus 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 Cumulus. If not, see . + +//! Autogenerated weights for `pallet_referenda` +//! +//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev +//! DATE: 2023-08-11, STEPS: `2`, REPEAT: `2`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! WORST CASE MAP SIZE: `1000000` +//! HOSTNAME: `cob`, CPU: `` +//! WASM-EXECUTION: `Compiled`, CHAIN: `Some("collectives-polkadot-dev")`, DB CACHE: 1024 + +// Executed Command: +// target/release/polkadot-parachain +// benchmark +// pallet +// --chain=collectives-polkadot-dev +// --wasm-execution=compiled +// --pallet=pallet_referenda +// --extrinsic=* +// --steps=2 +// --repeat=2 +// --json +// --header=./file_header.txt +// --output=./parachains/runtimes/collectives/collectives-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_referenda`. +pub struct WeightInfo(PhantomData); +impl pallet_referenda::WeightInfo for WeightInfo { + /// Storage: `FellowshipCollective::Members` (r:1 w:0) + /// Proof: `FellowshipCollective::Members` (`max_values`: None, `max_size`: Some(42), added: 2517, mode: `MaxEncodedLen`) + /// Storage: `FellowshipReferenda::ReferendumCount` (r:1 w:1) + /// Proof: `FellowshipReferenda::ReferendumCount` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`) + /// Storage: `Scheduler::Agenda` (r:1 w:1) + /// Proof: `Scheduler::Agenda` (`max_values`: None, `max_size`: Some(155814), added: 158289, mode: `MaxEncodedLen`) + /// Storage: `FellowshipReferenda::ReferendumInfoFor` (r:0 w:1) + /// Proof: `FellowshipReferenda::ReferendumInfoFor` (`max_values`: None, `max_size`: Some(900), added: 3375, mode: `MaxEncodedLen`) + fn submit() -> Weight { + // Proof Size summary in bytes: + // Measured: `389` + // Estimated: `159279` + // Minimum execution time: 34_000_000 picoseconds. + Weight::from_parts(36_000_000, 0) + .saturating_add(Weight::from_parts(0, 159279)) + .saturating_add(T::DbWeight::get().reads(3)) + .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`) + /// Storage: `Scheduler::Agenda` (r:2 w:2) + /// Proof: `Scheduler::Agenda` (`max_values`: None, `max_size`: Some(155814), added: 158289, mode: `MaxEncodedLen`) + fn place_decision_deposit_preparing() -> Weight { + // Proof Size summary in bytes: + // Measured: `400` + // Estimated: `317568` + // Minimum execution time: 64_000_000 picoseconds. + Weight::from_parts(67_000_000, 0) + .saturating_add(Weight::from_parts(0, 317568)) + .saturating_add(T::DbWeight::get().reads(3)) + .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`) + /// Storage: `FellowshipReferenda::DecidingCount` (r:1 w:0) + /// 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(155814), added: 158289, mode: `MaxEncodedLen`) + fn place_decision_deposit_queued() -> Weight { + // Proof Size summary in bytes: + // Measured: `2038` + // Estimated: `159279` + // Minimum execution time: 99_000_000 picoseconds. + Weight::from_parts(109_000_000, 0) + .saturating_add(Weight::from_parts(0, 159279)) + .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`) + /// Storage: `FellowshipReferenda::DecidingCount` (r:1 w:0) + /// 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(155814), added: 158289, mode: `MaxEncodedLen`) + fn place_decision_deposit_not_queued() -> Weight { + // Proof Size summary in bytes: + // Measured: `2079` + // Estimated: `159279` + // Minimum execution time: 101_000_000 picoseconds. + Weight::from_parts(111_000_000, 0) + .saturating_add(Weight::from_parts(0, 159279)) + .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`) + /// Storage: `FellowshipReferenda::DecidingCount` (r:1 w:1) + /// 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(155814), added: 158289, mode: `MaxEncodedLen`) + fn place_decision_deposit_passing() -> Weight { + // Proof Size summary in bytes: + // Measured: `836` + // Estimated: `317568` + // Minimum execution time: 135_000_000 picoseconds. + Weight::from_parts(153_000_000, 0) + .saturating_add(Weight::from_parts(0, 317568)) + .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`) + /// Storage: `FellowshipReferenda::DecidingCount` (r:1 w:1) + /// 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(155814), added: 158289, mode: `MaxEncodedLen`) + fn place_decision_deposit_failing() -> Weight { + // Proof Size summary in bytes: + // Measured: `735` + // Estimated: `317568` + // Minimum execution time: 78_000_000 picoseconds. + Weight::from_parts(82_000_000, 0) + .saturating_add(Weight::from_parts(0, 317568)) + .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`) + fn refund_decision_deposit() -> Weight { + // Proof Size summary in bytes: + // Measured: `351` + // Estimated: `4365` + // Minimum execution time: 38_000_000 picoseconds. + Weight::from_parts(39_000_000, 0) + .saturating_add(Weight::from_parts(0, 4365)) + .saturating_add(T::DbWeight::get().reads(1)) + .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`) + fn refund_submission_deposit() -> Weight { + // Proof Size summary in bytes: + // Measured: `201` + // Estimated: `4365` + // Minimum execution time: 18_000_000 picoseconds. + Weight::from_parts(19_000_000, 0) + .saturating_add(Weight::from_parts(0, 4365)) + .saturating_add(T::DbWeight::get().reads(1)) + .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`) + /// Storage: `Scheduler::Agenda` (r:2 w:2) + /// Proof: `Scheduler::Agenda` (`max_values`: None, `max_size`: Some(155814), added: 158289, mode: `MaxEncodedLen`) + fn cancel() -> Weight { + // Proof Size summary in bytes: + // Measured: `345` + // Estimated: `317568` + // Minimum execution time: 45_000_000 picoseconds. + Weight::from_parts(46_000_000, 0) + .saturating_add(Weight::from_parts(0, 317568)) + .saturating_add(T::DbWeight::get().reads(3)) + .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`) + /// Storage: `Scheduler::Agenda` (r:2 w:2) + /// Proof: `Scheduler::Agenda` (`max_values`: None, `max_size`: Some(155814), added: 158289, mode: `MaxEncodedLen`) + /// Storage: `System::Account` (r:1 w:1) + /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`) + /// Storage: `ParachainInfo::ParachainId` (r:1 w:0) + /// Proof: `ParachainInfo::ParachainId` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`) + /// Storage: `PolkadotXcm::SupportedVersion` (r:1 w:0) + /// Proof: `PolkadotXcm::SupportedVersion` (`max_values`: None, `max_size`: None, mode: `Measured`) + /// Storage: `PolkadotXcm::VersionDiscoveryQueue` (r:1 w:1) + /// Proof: `PolkadotXcm::VersionDiscoveryQueue` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `PolkadotXcm::SafeXcmVersion` (r:1 w:0) + /// Proof: `PolkadotXcm::SafeXcmVersion` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `ParachainSystem::HostConfiguration` (r:1 w:0) + /// Proof: `ParachainSystem::HostConfiguration` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `ParachainSystem::PendingUpwardMessages` (r:1 w:1) + /// Proof: `ParachainSystem::PendingUpwardMessages` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `FellowshipReferenda::MetadataOf` (r:1 w:0) + /// Proof: `FellowshipReferenda::MetadataOf` (`max_values`: None, `max_size`: Some(52), added: 2527, mode: `MaxEncodedLen`) + fn kill() -> Weight { + // Proof Size summary in bytes: + // Measured: `587` + // Estimated: `317568` + // Minimum execution time: 185_000_000 picoseconds. + Weight::from_parts(196_000_000, 0) + .saturating_add(Weight::from_parts(0, 317568)) + .saturating_add(T::DbWeight::get().reads(11)) + .saturating_add(T::DbWeight::get().writes(6)) + } + /// Storage: `FellowshipReferenda::TrackQueue` (r:1 w:0) + /// Proof: `FellowshipReferenda::TrackQueue` (`max_values`: None, `max_size`: Some(812), added: 3287, mode: `MaxEncodedLen`) + /// Storage: `FellowshipReferenda::DecidingCount` (r:1 w:1) + /// Proof: `FellowshipReferenda::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` + // Estimated: `4277` + // Minimum execution time: 12_000_000 picoseconds. + Weight::from_parts(15_000_000, 0) + .saturating_add(Weight::from_parts(0, 4277)) + .saturating_add(T::DbWeight::get().reads(2)) + .saturating_add(T::DbWeight::get().writes(1)) + } + /// Storage: `FellowshipReferenda::TrackQueue` (r:1 w:1) + /// Proof: `FellowshipReferenda::TrackQueue` (`max_values`: None, `max_size`: Some(812), added: 3287, mode: `MaxEncodedLen`) + /// Storage: `FellowshipReferenda::ReferendumInfoFor` (r:1 w:1) + /// 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:1 w:1) + /// Proof: `Scheduler::Agenda` (`max_values`: None, `max_size`: Some(155814), added: 158289, mode: `MaxEncodedLen`) + fn one_fewer_deciding_failing() -> Weight { + // Proof Size summary in bytes: + // Measured: `2452` + // Estimated: `159279` + // Minimum execution time: 82_000_000 picoseconds. + Weight::from_parts(90_000_000, 0) + .saturating_add(Weight::from_parts(0, 159279)) + .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`) + /// Storage: `FellowshipReferenda::ReferendumInfoFor` (r:1 w:1) + /// 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:1 w:1) + /// Proof: `Scheduler::Agenda` (`max_values`: None, `max_size`: Some(155814), added: 158289, mode: `MaxEncodedLen`) + fn one_fewer_deciding_passing() -> Weight { + // Proof Size summary in bytes: + // Measured: `2452` + // Estimated: `159279` + // Minimum execution time: 91_000_000 picoseconds. + Weight::from_parts(99_000_000, 0) + .saturating_add(Weight::from_parts(0, 159279)) + .saturating_add(T::DbWeight::get().reads(4)) + .saturating_add(T::DbWeight::get().writes(3)) + } + /// 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`) + fn nudge_referendum_requeued_insertion() -> Weight { + // Proof Size summary in bytes: + // Measured: `1841` + // Estimated: `4365` + // Minimum execution time: 41_000_000 picoseconds. + Weight::from_parts(44_000_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: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`) + fn nudge_referendum_requeued_slide() -> Weight { + // Proof Size summary in bytes: + // Measured: `1808` + // Estimated: `4365` + // Minimum execution time: 46_000_000 picoseconds. + Weight::from_parts(55_000_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`) + /// Storage: `FellowshipReferenda::DecidingCount` (r:1 w:0) + /// 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`) + fn nudge_referendum_queued() -> Weight { + // Proof Size summary in bytes: + // Measured: `1824` + // Estimated: `4365` + // Minimum execution time: 49_000_000 picoseconds. + Weight::from_parts(53_000_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) + /// Proof: `FellowshipReferenda::ReferendumInfoFor` (`max_values`: None, `max_size`: Some(900), added: 3375, mode: `MaxEncodedLen`) + /// Storage: `FellowshipReferenda::DecidingCount` (r:1 w:0) + /// 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`) + fn nudge_referendum_not_queued() -> Weight { + // Proof Size summary in bytes: + // Measured: `1865` + // Estimated: `4365` + // Minimum execution time: 51_000_000 picoseconds. + Weight::from_parts(54_000_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) + /// Proof: `FellowshipReferenda::ReferendumInfoFor` (`max_values`: None, `max_size`: Some(900), added: 3375, mode: `MaxEncodedLen`) + /// Storage: `Scheduler::Agenda` (r:1 w:1) + /// Proof: `Scheduler::Agenda` (`max_values`: None, `max_size`: Some(155814), added: 158289, mode: `MaxEncodedLen`) + fn nudge_referendum_no_deposit() -> Weight { + // Proof Size summary in bytes: + // Measured: `297` + // Estimated: `159279` + // Minimum execution time: 28_000_000 picoseconds. + Weight::from_parts(30_000_000, 0) + .saturating_add(Weight::from_parts(0, 159279)) + .saturating_add(T::DbWeight::get().reads(2)) + .saturating_add(T::DbWeight::get().writes(2)) + } + /// Storage: `FellowshipReferenda::ReferendumInfoFor` (r:1 w:1) + /// Proof: `FellowshipReferenda::ReferendumInfoFor` (`max_values`: None, `max_size`: Some(900), added: 3375, mode: `MaxEncodedLen`) + /// Storage: `Scheduler::Agenda` (r:1 w:1) + /// Proof: `Scheduler::Agenda` (`max_values`: None, `max_size`: Some(155814), added: 158289, mode: `MaxEncodedLen`) + fn nudge_referendum_preparing() -> Weight { + // Proof Size summary in bytes: + // Measured: `345` + // Estimated: `159279` + // Minimum execution time: 28_000_000 picoseconds. + Weight::from_parts(29_000_000, 0) + .saturating_add(Weight::from_parts(0, 159279)) + .saturating_add(T::DbWeight::get().reads(2)) + .saturating_add(T::DbWeight::get().writes(2)) + } + /// Storage: `FellowshipReferenda::ReferendumInfoFor` (r:1 w:1) + /// Proof: `FellowshipReferenda::ReferendumInfoFor` (`max_values`: None, `max_size`: Some(900), added: 3375, mode: `MaxEncodedLen`) + fn nudge_referendum_timed_out() -> Weight { + // Proof Size summary in bytes: + // Measured: `242` + // Estimated: `4365` + // Minimum execution time: 20_000_000 picoseconds. + Weight::from_parts(21_000_000, 0) + .saturating_add(Weight::from_parts(0, 4365)) + .saturating_add(T::DbWeight::get().reads(1)) + .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`) + /// Storage: `FellowshipReferenda::DecidingCount` (r:1 w:1) + /// 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:1 w:1) + /// Proof: `Scheduler::Agenda` (`max_values`: None, `max_size`: Some(155814), added: 158289, mode: `MaxEncodedLen`) + fn nudge_referendum_begin_deciding_failing() -> Weight { + // Proof Size summary in bytes: + // Measured: `680` + // Estimated: `159279` + // Minimum execution time: 42_000_000 picoseconds. + Weight::from_parts(47_000_000, 0) + .saturating_add(Weight::from_parts(0, 159279)) + .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`) + /// Storage: `FellowshipReferenda::DecidingCount` (r:1 w:1) + /// 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:1 w:1) + /// Proof: `Scheduler::Agenda` (`max_values`: None, `max_size`: Some(155814), added: 158289, mode: `MaxEncodedLen`) + fn nudge_referendum_begin_deciding_passing() -> Weight { + // Proof Size summary in bytes: + // Measured: `781` + // Estimated: `159279` + // Minimum execution time: 90_000_000 picoseconds. + Weight::from_parts(95_000_000, 0) + .saturating_add(Weight::from_parts(0, 159279)) + .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`) + /// 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:1 w:1) + /// Proof: `Scheduler::Agenda` (`max_values`: None, `max_size`: Some(155814), added: 158289, mode: `MaxEncodedLen`) + fn nudge_referendum_begin_confirming() -> Weight { + // Proof Size summary in bytes: + // Measured: `834` + // Estimated: `159279` + // Minimum execution time: 84_000_000 picoseconds. + Weight::from_parts(93_000_000, 0) + .saturating_add(Weight::from_parts(0, 159279)) + .saturating_add(T::DbWeight::get().reads(3)) + .saturating_add(T::DbWeight::get().writes(2)) + } + /// Storage: `FellowshipReferenda::ReferendumInfoFor` (r:1 w:1) + /// 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:1 w:1) + /// Proof: `Scheduler::Agenda` (`max_values`: None, `max_size`: Some(155814), added: 158289, mode: `MaxEncodedLen`) + fn nudge_referendum_end_confirming() -> Weight { + // Proof Size summary in bytes: + // Measured: `817` + // Estimated: `159279` + // Minimum execution time: 88_000_000 picoseconds. + Weight::from_parts(98_000_000, 0) + .saturating_add(Weight::from_parts(0, 159279)) + .saturating_add(T::DbWeight::get().reads(3)) + .saturating_add(T::DbWeight::get().writes(2)) + } + /// Storage: `FellowshipReferenda::ReferendumInfoFor` (r:1 w:1) + /// 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:1 w:1) + /// Proof: `Scheduler::Agenda` (`max_values`: None, `max_size`: Some(155814), added: 158289, mode: `MaxEncodedLen`) + fn nudge_referendum_continue_not_confirming() -> Weight { + // Proof Size summary in bytes: + // Measured: `834` + // Estimated: `159279` + // Minimum execution time: 81_000_000 picoseconds. + Weight::from_parts(93_000_000, 0) + .saturating_add(Weight::from_parts(0, 159279)) + .saturating_add(T::DbWeight::get().reads(3)) + .saturating_add(T::DbWeight::get().writes(2)) + } + /// Storage: `FellowshipReferenda::ReferendumInfoFor` (r:1 w:1) + /// 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:1 w:1) + /// Proof: `Scheduler::Agenda` (`max_values`: None, `max_size`: Some(155814), added: 158289, mode: `MaxEncodedLen`) + fn nudge_referendum_continue_confirming() -> Weight { + // Proof Size summary in bytes: + // Measured: `838` + // Estimated: `159279` + // Minimum execution time: 74_000_000 picoseconds. + Weight::from_parts(77_000_000, 0) + .saturating_add(Weight::from_parts(0, 159279)) + .saturating_add(T::DbWeight::get().reads(3)) + .saturating_add(T::DbWeight::get().writes(2)) + } + /// Storage: `FellowshipReferenda::ReferendumInfoFor` (r:1 w:1) + /// 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) + /// Proof: `Scheduler::Agenda` (`max_values`: None, `max_size`: Some(155814), added: 158289, mode: `MaxEncodedLen`) + /// Storage: `Scheduler::Lookup` (r:1 w:1) + /// 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: `838` + // Estimated: `317568` + // Minimum execution time: 105_000_000 picoseconds. + Weight::from_parts(123_000_000, 0) + .saturating_add(Weight::from_parts(0, 317568)) + .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`) + /// 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:1 w:1) + /// Proof: `Scheduler::Agenda` (`max_values`: None, `max_size`: Some(155814), added: 158289, mode: `MaxEncodedLen`) + fn nudge_referendum_rejected() -> Weight { + // Proof Size summary in bytes: + // Measured: `834` + // Estimated: `159279` + // Minimum execution time: 90_000_000 picoseconds. + Weight::from_parts(100_000_000, 0) + .saturating_add(Weight::from_parts(0, 159279)) + .saturating_add(T::DbWeight::get().reads(3)) + .saturating_add(T::DbWeight::get().writes(2)) + } + /// Storage: `FellowshipReferenda::ReferendumInfoFor` (r:1 w:0) + /// Proof: `FellowshipReferenda::ReferendumInfoFor` (`max_values`: None, `max_size`: Some(900), added: 3375, mode: `MaxEncodedLen`) + /// Storage: `Preimage::StatusFor` (r:1 w:0) + /// Proof: `Preimage::StatusFor` (`max_values`: None, `max_size`: Some(91), added: 2566, mode: `MaxEncodedLen`) + /// Storage: `FellowshipReferenda::MetadataOf` (r:0 w:1) + /// Proof: `FellowshipReferenda::MetadataOf` (`max_values`: None, `max_size`: Some(52), added: 2527, mode: `MaxEncodedLen`) + fn set_some_metadata() -> Weight { + // Proof Size summary in bytes: + // Measured: `453` + // Estimated: `4365` + // Minimum execution time: 24_000_000 picoseconds. + Weight::from_parts(24_000_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:0) + /// Proof: `FellowshipReferenda::ReferendumInfoFor` (`max_values`: None, `max_size`: Some(900), added: 3375, mode: `MaxEncodedLen`) + /// Storage: `FellowshipReferenda::MetadataOf` (r:1 w:1) + /// Proof: `FellowshipReferenda::MetadataOf` (`max_values`: None, `max_size`: Some(52), added: 2527, mode: `MaxEncodedLen`) + fn clear_metadata() -> Weight { + // Proof Size summary in bytes: + // Measured: `319` + // Estimated: `4365` + // Minimum execution time: 21_000_000 picoseconds. + Weight::from_parts(23_000_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/cumulus/parachains/runtimes/collectives/collectives-polkadot/src/weights/pallet_salary_ambassador_salary.rs b/cumulus/parachains/runtimes/collectives/collectives-polkadot/src/weights/pallet_salary_ambassador_salary.rs new file mode 100644 index 000000000000..0522420f2f51 --- /dev/null +++ b/cumulus/parachains/runtimes/collectives/collectives-polkadot/src/weights/pallet_salary_ambassador_salary.rs @@ -0,0 +1,190 @@ +// Copyright Parity Technologies (UK) Ltd. +// This file is part of Cumulus. + +// Cumulus 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. + +// Cumulus 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 Cumulus. If not, see . + +//! Autogenerated weights for `pallet_salary` +//! +//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev +//! DATE: 2023-08-11, STEPS: `2`, REPEAT: `2`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! WORST CASE MAP SIZE: `1000000` +//! HOSTNAME: `cob`, CPU: `` +//! WASM-EXECUTION: `Compiled`, CHAIN: `Some("collectives-polkadot-dev")`, DB CACHE: 1024 + +// Executed Command: +// target/release/polkadot-parachain +// benchmark +// pallet +// --chain=collectives-polkadot-dev +// --wasm-execution=compiled +// --pallet=pallet_salary +// --extrinsic=* +// --steps=2 +// --repeat=2 +// --json +// --header=./file_header.txt +// --output=./parachains/runtimes/collectives/collectives-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_salary`. +pub struct WeightInfo(PhantomData); +impl pallet_salary::WeightInfo for WeightInfo { + /// Storage: `AmbassadorSalary::Status` (r:1 w:1) + /// Proof: `AmbassadorSalary::Status` (`max_values`: Some(1), `max_size`: Some(56), added: 551, mode: `MaxEncodedLen`) + fn init() -> Weight { + // Proof Size summary in bytes: + // Measured: `109` + // Estimated: `1541` + // Minimum execution time: 12_000_000 picoseconds. + Weight::from_parts(14_000_000, 0) + .saturating_add(Weight::from_parts(0, 1541)) + .saturating_add(T::DbWeight::get().reads(1)) + .saturating_add(T::DbWeight::get().writes(1)) + } + /// Storage: `AmbassadorSalary::Status` (r:1 w:1) + /// Proof: `AmbassadorSalary::Status` (`max_values`: Some(1), `max_size`: Some(56), added: 551, mode: `MaxEncodedLen`) + fn bump() -> Weight { + // Proof Size summary in bytes: + // Measured: `191` + // Estimated: `1541` + // Minimum execution time: 15_000_000 picoseconds. + Weight::from_parts(16_000_000, 0) + .saturating_add(Weight::from_parts(0, 1541)) + .saturating_add(T::DbWeight::get().reads(1)) + .saturating_add(T::DbWeight::get().writes(1)) + } + /// Storage: `AmbassadorSalary::Status` (r:1 w:0) + /// Proof: `AmbassadorSalary::Status` (`max_values`: Some(1), `max_size`: Some(56), added: 551, mode: `MaxEncodedLen`) + /// Storage: `AmbassadorCollective::Members` (r:1 w:0) + /// Proof: `AmbassadorCollective::Members` (`max_values`: None, `max_size`: Some(42), added: 2517, mode: `MaxEncodedLen`) + /// Storage: `AmbassadorSalary::Claimant` (r:1 w:1) + /// Proof: `AmbassadorSalary::Claimant` (`max_values`: None, `max_size`: Some(86), added: 2561, mode: `MaxEncodedLen`) + fn induct() -> Weight { + // Proof Size summary in bytes: + // Measured: `400` + // Estimated: `3551` + // Minimum execution time: 23_000_000 picoseconds. + Weight::from_parts(23_000_000, 0) + .saturating_add(Weight::from_parts(0, 3551)) + .saturating_add(T::DbWeight::get().reads(3)) + .saturating_add(T::DbWeight::get().writes(1)) + } + /// Storage: `AmbassadorCollective::Members` (r:1 w:0) + /// Proof: `AmbassadorCollective::Members` (`max_values`: None, `max_size`: Some(42), added: 2517, mode: `MaxEncodedLen`) + /// Storage: `AmbassadorSalary::Status` (r:1 w:1) + /// Proof: `AmbassadorSalary::Status` (`max_values`: Some(1), `max_size`: Some(56), added: 551, mode: `MaxEncodedLen`) + /// Storage: `AmbassadorSalary::Claimant` (r:1 w:1) + /// Proof: `AmbassadorSalary::Claimant` (`max_values`: None, `max_size`: Some(86), added: 2561, mode: `MaxEncodedLen`) + fn register() -> Weight { + // Proof Size summary in bytes: + // Measured: `467` + // Estimated: `3551` + // Minimum execution time: 27_000_000 picoseconds. + Weight::from_parts(28_000_000, 0) + .saturating_add(Weight::from_parts(0, 3551)) + .saturating_add(T::DbWeight::get().reads(3)) + .saturating_add(T::DbWeight::get().writes(2)) + } + /// Storage: `AmbassadorSalary::Status` (r:1 w:1) + /// Proof: `AmbassadorSalary::Status` (`max_values`: Some(1), `max_size`: Some(56), added: 551, mode: `MaxEncodedLen`) + /// Storage: `AmbassadorSalary::Claimant` (r:1 w:1) + /// Proof: `AmbassadorSalary::Claimant` (`max_values`: None, `max_size`: Some(86), added: 2561, mode: `MaxEncodedLen`) + /// Storage: `AmbassadorCollective::Members` (r:1 w:0) + /// Proof: `AmbassadorCollective::Members` (`max_values`: None, `max_size`: Some(42), added: 2517, mode: `MaxEncodedLen`) + /// Storage: `ParachainInfo::ParachainId` (r:1 w:0) + /// Proof: `ParachainInfo::ParachainId` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`) + /// Storage: `PolkadotXcm::QueryCounter` (r:1 w:1) + /// Proof: `PolkadotXcm::QueryCounter` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `PolkadotXcm::SupportedVersion` (r:1 w:0) + /// Proof: `PolkadotXcm::SupportedVersion` (`max_values`: None, `max_size`: None, mode: `Measured`) + /// Storage: `PolkadotXcm::VersionDiscoveryQueue` (r:1 w:1) + /// Proof: `PolkadotXcm::VersionDiscoveryQueue` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `PolkadotXcm::SafeXcmVersion` (r:1 w:0) + /// Proof: `PolkadotXcm::SafeXcmVersion` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `ParachainSystem::RelevantMessagingState` (r:1 w:0) + /// Proof: `ParachainSystem::RelevantMessagingState` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `XcmpQueue::OutboundXcmpStatus` (r:1 w:1) + /// Proof: `XcmpQueue::OutboundXcmpStatus` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `XcmpQueue::OutboundXcmpMessages` (r:0 w:1) + /// Proof: `XcmpQueue::OutboundXcmpMessages` (`max_values`: None, `max_size`: None, mode: `Measured`) + /// Storage: `PolkadotXcm::Queries` (r:0 w:1) + /// Proof: `PolkadotXcm::Queries` (`max_values`: None, `max_size`: None, mode: `Measured`) + fn payout() -> Weight { + // Proof Size summary in bytes: + // Measured: `879` + // Estimated: `4344` + // Minimum execution time: 68_000_000 picoseconds. + Weight::from_parts(72_000_000, 0) + .saturating_add(Weight::from_parts(0, 4344)) + .saturating_add(T::DbWeight::get().reads(10)) + .saturating_add(T::DbWeight::get().writes(7)) + } + /// Storage: `AmbassadorSalary::Status` (r:1 w:1) + /// Proof: `AmbassadorSalary::Status` (`max_values`: Some(1), `max_size`: Some(56), added: 551, mode: `MaxEncodedLen`) + /// Storage: `AmbassadorSalary::Claimant` (r:1 w:1) + /// Proof: `AmbassadorSalary::Claimant` (`max_values`: None, `max_size`: Some(86), added: 2561, mode: `MaxEncodedLen`) + /// Storage: `AmbassadorCollective::Members` (r:1 w:0) + /// Proof: `AmbassadorCollective::Members` (`max_values`: None, `max_size`: Some(42), added: 2517, mode: `MaxEncodedLen`) + /// Storage: `ParachainInfo::ParachainId` (r:1 w:0) + /// Proof: `ParachainInfo::ParachainId` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`) + /// Storage: `PolkadotXcm::QueryCounter` (r:1 w:1) + /// Proof: `PolkadotXcm::QueryCounter` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `PolkadotXcm::SupportedVersion` (r:1 w:0) + /// Proof: `PolkadotXcm::SupportedVersion` (`max_values`: None, `max_size`: None, mode: `Measured`) + /// Storage: `PolkadotXcm::VersionDiscoveryQueue` (r:1 w:1) + /// Proof: `PolkadotXcm::VersionDiscoveryQueue` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `PolkadotXcm::SafeXcmVersion` (r:1 w:0) + /// Proof: `PolkadotXcm::SafeXcmVersion` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `ParachainSystem::RelevantMessagingState` (r:1 w:0) + /// Proof: `ParachainSystem::RelevantMessagingState` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `XcmpQueue::OutboundXcmpStatus` (r:1 w:1) + /// Proof: `XcmpQueue::OutboundXcmpStatus` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `XcmpQueue::OutboundXcmpMessages` (r:0 w:1) + /// Proof: `XcmpQueue::OutboundXcmpMessages` (`max_values`: None, `max_size`: None, mode: `Measured`) + /// Storage: `PolkadotXcm::Queries` (r:0 w:1) + /// Proof: `PolkadotXcm::Queries` (`max_values`: None, `max_size`: None, mode: `Measured`) + fn payout_other() -> Weight { + // Proof Size summary in bytes: + // Measured: `879` + // Estimated: `4344` + // Minimum execution time: 69_000_000 picoseconds. + Weight::from_parts(70_000_000, 0) + .saturating_add(Weight::from_parts(0, 4344)) + .saturating_add(T::DbWeight::get().reads(10)) + .saturating_add(T::DbWeight::get().writes(7)) + } + /// Storage: `AmbassadorSalary::Status` (r:1 w:1) + /// Proof: `AmbassadorSalary::Status` (`max_values`: Some(1), `max_size`: Some(56), added: 551, mode: `MaxEncodedLen`) + /// Storage: `AmbassadorSalary::Claimant` (r:1 w:1) + /// Proof: `AmbassadorSalary::Claimant` (`max_values`: None, `max_size`: Some(86), added: 2561, mode: `MaxEncodedLen`) + /// Storage: `PolkadotXcm::Queries` (r:1 w:1) + /// Proof: `PolkadotXcm::Queries` (`max_values`: None, `max_size`: None, mode: `Measured`) + fn check_payment() -> Weight { + // Proof Size summary in bytes: + // Measured: `479` + // Estimated: `3944` + // Minimum execution time: 27_000_000 picoseconds. + Weight::from_parts(28_000_000, 0) + .saturating_add(Weight::from_parts(0, 3944)) + .saturating_add(T::DbWeight::get().reads(3)) + .saturating_add(T::DbWeight::get().writes(3)) + } +} diff --git a/cumulus/parachains/runtimes/collectives/collectives-polkadot/src/weights/pallet_salary_fellowship_salary.rs b/cumulus/parachains/runtimes/collectives/collectives-polkadot/src/weights/pallet_salary_fellowship_salary.rs new file mode 100644 index 000000000000..9bb7e68d3145 --- /dev/null +++ b/cumulus/parachains/runtimes/collectives/collectives-polkadot/src/weights/pallet_salary_fellowship_salary.rs @@ -0,0 +1,190 @@ +// Copyright (C) Parity Technologies (UK) Ltd. +// This file is part of Cumulus. + +// Cumulus 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. + +// Cumulus 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 Cumulus. If not, see . + +//! Autogenerated weights for `pallet_salary` +//! +//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev +//! DATE: 2023-08-11, STEPS: `2`, REPEAT: `2`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! WORST CASE MAP SIZE: `1000000` +//! HOSTNAME: `cob`, CPU: `` +//! WASM-EXECUTION: `Compiled`, CHAIN: `Some("collectives-polkadot-dev")`, DB CACHE: 1024 + +// Executed Command: +// target/release/polkadot-parachain +// benchmark +// pallet +// --chain=collectives-polkadot-dev +// --wasm-execution=compiled +// --pallet=pallet_salary +// --extrinsic=* +// --steps=2 +// --repeat=2 +// --json +// --header=./file_header.txt +// --output=./parachains/runtimes/collectives/collectives-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_salary`. +pub struct WeightInfo(PhantomData); +impl pallet_salary::WeightInfo for WeightInfo { + /// Storage: `FellowshipSalary::Status` (r:1 w:1) + /// Proof: `FellowshipSalary::Status` (`max_values`: Some(1), `max_size`: Some(56), added: 551, mode: `MaxEncodedLen`) + fn init() -> Weight { + // Proof Size summary in bytes: + // Measured: `142` + // Estimated: `1541` + // Minimum execution time: 13_000_000 picoseconds. + Weight::from_parts(17_000_000, 0) + .saturating_add(Weight::from_parts(0, 1541)) + .saturating_add(T::DbWeight::get().reads(1)) + .saturating_add(T::DbWeight::get().writes(1)) + } + /// Storage: `FellowshipSalary::Status` (r:1 w:1) + /// Proof: `FellowshipSalary::Status` (`max_values`: Some(1), `max_size`: Some(56), added: 551, mode: `MaxEncodedLen`) + fn bump() -> Weight { + // Proof Size summary in bytes: + // Measured: `224` + // Estimated: `1541` + // Minimum execution time: 15_000_000 picoseconds. + Weight::from_parts(18_000_000, 0) + .saturating_add(Weight::from_parts(0, 1541)) + .saturating_add(T::DbWeight::get().reads(1)) + .saturating_add(T::DbWeight::get().writes(1)) + } + /// Storage: `FellowshipSalary::Status` (r:1 w:0) + /// Proof: `FellowshipSalary::Status` (`max_values`: Some(1), `max_size`: Some(56), added: 551, mode: `MaxEncodedLen`) + /// Storage: `FellowshipCollective::Members` (r:1 w:0) + /// Proof: `FellowshipCollective::Members` (`max_values`: None, `max_size`: Some(42), added: 2517, mode: `MaxEncodedLen`) + /// Storage: `FellowshipSalary::Claimant` (r:1 w:1) + /// Proof: `FellowshipSalary::Claimant` (`max_values`: None, `max_size`: Some(86), added: 2561, mode: `MaxEncodedLen`) + fn induct() -> Weight { + // Proof Size summary in bytes: + // Measured: `395` + // Estimated: `3551` + // Minimum execution time: 22_000_000 picoseconds. + Weight::from_parts(25_000_000, 0) + .saturating_add(Weight::from_parts(0, 3551)) + .saturating_add(T::DbWeight::get().reads(3)) + .saturating_add(T::DbWeight::get().writes(1)) + } + /// Storage: `FellowshipCollective::Members` (r:1 w:0) + /// Proof: `FellowshipCollective::Members` (`max_values`: None, `max_size`: Some(42), added: 2517, mode: `MaxEncodedLen`) + /// Storage: `FellowshipSalary::Status` (r:1 w:1) + /// Proof: `FellowshipSalary::Status` (`max_values`: Some(1), `max_size`: Some(56), added: 551, mode: `MaxEncodedLen`) + /// Storage: `FellowshipSalary::Claimant` (r:1 w:1) + /// Proof: `FellowshipSalary::Claimant` (`max_values`: None, `max_size`: Some(86), added: 2561, mode: `MaxEncodedLen`) + fn register() -> Weight { + // Proof Size summary in bytes: + // Measured: `462` + // Estimated: `3551` + // Minimum execution time: 26_000_000 picoseconds. + Weight::from_parts(29_000_000, 0) + .saturating_add(Weight::from_parts(0, 3551)) + .saturating_add(T::DbWeight::get().reads(3)) + .saturating_add(T::DbWeight::get().writes(2)) + } + /// Storage: `FellowshipSalary::Status` (r:1 w:1) + /// Proof: `FellowshipSalary::Status` (`max_values`: Some(1), `max_size`: Some(56), added: 551, mode: `MaxEncodedLen`) + /// Storage: `FellowshipSalary::Claimant` (r:1 w:1) + /// Proof: `FellowshipSalary::Claimant` (`max_values`: None, `max_size`: Some(86), added: 2561, mode: `MaxEncodedLen`) + /// Storage: `FellowshipCollective::Members` (r:1 w:0) + /// Proof: `FellowshipCollective::Members` (`max_values`: None, `max_size`: Some(42), added: 2517, mode: `MaxEncodedLen`) + /// Storage: `ParachainInfo::ParachainId` (r:1 w:0) + /// Proof: `ParachainInfo::ParachainId` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`) + /// Storage: `PolkadotXcm::QueryCounter` (r:1 w:1) + /// Proof: `PolkadotXcm::QueryCounter` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `PolkadotXcm::SupportedVersion` (r:1 w:0) + /// Proof: `PolkadotXcm::SupportedVersion` (`max_values`: None, `max_size`: None, mode: `Measured`) + /// Storage: `PolkadotXcm::VersionDiscoveryQueue` (r:1 w:1) + /// Proof: `PolkadotXcm::VersionDiscoveryQueue` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `PolkadotXcm::SafeXcmVersion` (r:1 w:0) + /// Proof: `PolkadotXcm::SafeXcmVersion` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `ParachainSystem::RelevantMessagingState` (r:1 w:0) + /// Proof: `ParachainSystem::RelevantMessagingState` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `XcmpQueue::OutboundXcmpStatus` (r:1 w:1) + /// Proof: `XcmpQueue::OutboundXcmpStatus` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `XcmpQueue::OutboundXcmpMessages` (r:0 w:1) + /// Proof: `XcmpQueue::OutboundXcmpMessages` (`max_values`: None, `max_size`: None, mode: `Measured`) + /// Storage: `PolkadotXcm::Queries` (r:0 w:1) + /// Proof: `PolkadotXcm::Queries` (`max_values`: None, `max_size`: None, mode: `Measured`) + fn payout() -> Weight { + // Proof Size summary in bytes: + // Measured: `774` + // Estimated: `4239` + // Minimum execution time: 67_000_000 picoseconds. + Weight::from_parts(74_000_000, 0) + .saturating_add(Weight::from_parts(0, 4239)) + .saturating_add(T::DbWeight::get().reads(10)) + .saturating_add(T::DbWeight::get().writes(7)) + } + /// Storage: `FellowshipSalary::Status` (r:1 w:1) + /// Proof: `FellowshipSalary::Status` (`max_values`: Some(1), `max_size`: Some(56), added: 551, mode: `MaxEncodedLen`) + /// Storage: `FellowshipSalary::Claimant` (r:1 w:1) + /// Proof: `FellowshipSalary::Claimant` (`max_values`: None, `max_size`: Some(86), added: 2561, mode: `MaxEncodedLen`) + /// Storage: `FellowshipCollective::Members` (r:1 w:0) + /// Proof: `FellowshipCollective::Members` (`max_values`: None, `max_size`: Some(42), added: 2517, mode: `MaxEncodedLen`) + /// Storage: `ParachainInfo::ParachainId` (r:1 w:0) + /// Proof: `ParachainInfo::ParachainId` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`) + /// Storage: `PolkadotXcm::QueryCounter` (r:1 w:1) + /// Proof: `PolkadotXcm::QueryCounter` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `PolkadotXcm::SupportedVersion` (r:1 w:0) + /// Proof: `PolkadotXcm::SupportedVersion` (`max_values`: None, `max_size`: None, mode: `Measured`) + /// Storage: `PolkadotXcm::VersionDiscoveryQueue` (r:1 w:1) + /// Proof: `PolkadotXcm::VersionDiscoveryQueue` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `PolkadotXcm::SafeXcmVersion` (r:1 w:0) + /// Proof: `PolkadotXcm::SafeXcmVersion` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `ParachainSystem::RelevantMessagingState` (r:1 w:0) + /// Proof: `ParachainSystem::RelevantMessagingState` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `XcmpQueue::OutboundXcmpStatus` (r:1 w:1) + /// Proof: `XcmpQueue::OutboundXcmpStatus` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `XcmpQueue::OutboundXcmpMessages` (r:0 w:1) + /// Proof: `XcmpQueue::OutboundXcmpMessages` (`max_values`: None, `max_size`: None, mode: `Measured`) + /// Storage: `PolkadotXcm::Queries` (r:0 w:1) + /// Proof: `PolkadotXcm::Queries` (`max_values`: None, `max_size`: None, mode: `Measured`) + fn payout_other() -> Weight { + // Proof Size summary in bytes: + // Measured: `774` + // Estimated: `4239` + // Minimum execution time: 66_000_000 picoseconds. + Weight::from_parts(71_000_000, 0) + .saturating_add(Weight::from_parts(0, 4239)) + .saturating_add(T::DbWeight::get().reads(10)) + .saturating_add(T::DbWeight::get().writes(7)) + } + /// Storage: `FellowshipSalary::Status` (r:1 w:1) + /// Proof: `FellowshipSalary::Status` (`max_values`: Some(1), `max_size`: Some(56), added: 551, mode: `MaxEncodedLen`) + /// Storage: `FellowshipSalary::Claimant` (r:1 w:1) + /// Proof: `FellowshipSalary::Claimant` (`max_values`: None, `max_size`: Some(86), added: 2561, mode: `MaxEncodedLen`) + /// Storage: `PolkadotXcm::Queries` (r:1 w:1) + /// Proof: `PolkadotXcm::Queries` (`max_values`: None, `max_size`: None, mode: `Measured`) + fn check_payment() -> Weight { + // Proof Size summary in bytes: + // Measured: `512` + // Estimated: `3977` + // Minimum execution time: 26_000_000 picoseconds. + Weight::from_parts(27_000_000, 0) + .saturating_add(Weight::from_parts(0, 3977)) + .saturating_add(T::DbWeight::get().reads(3)) + .saturating_add(T::DbWeight::get().writes(3)) + } +} diff --git a/cumulus/parachains/runtimes/collectives/collectives-polkadot/src/weights/pallet_scheduler.rs b/cumulus/parachains/runtimes/collectives/collectives-polkadot/src/weights/pallet_scheduler.rs new file mode 100644 index 000000000000..d30ac82bf059 --- /dev/null +++ b/cumulus/parachains/runtimes/collectives/collectives-polkadot/src/weights/pallet_scheduler.rs @@ -0,0 +1,207 @@ +// Copyright (C) Parity Technologies (UK) Ltd. +// This file is part of Cumulus. + +// Cumulus 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. + +// Cumulus 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 Cumulus. If not, see . + +//! Autogenerated weights for `pallet_scheduler` +//! +//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev +//! DATE: 2023-07-31, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! WORST CASE MAP SIZE: `1000000` +//! HOSTNAME: `runner-ynta1nyy-project-238-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz` +//! EXECUTION: ``, WASM-EXECUTION: `Compiled`, CHAIN: `Some("collectives-polkadot-dev")`, DB CACHE: 1024 + +// Executed Command: +// ./target/production/polkadot-parachain +// benchmark +// pallet +// --chain=collectives-polkadot-dev +// --wasm-execution=compiled +// --pallet=pallet_scheduler +// --no-storage-info +// --no-median-slopes +// --no-min-squares +// --extrinsic=* +// --steps=50 +// --repeat=20 +// --json +// --header=./file_header.txt +// --output=./parachains/runtimes/collectives/collectives-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_scheduler`. +pub struct WeightInfo(PhantomData); +impl pallet_scheduler::WeightInfo for WeightInfo { + /// Storage: `Scheduler::IncompleteSince` (r:1 w:1) + /// Proof: `Scheduler::IncompleteSince` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`) + fn service_agendas_base() -> Weight { + // Proof Size summary in bytes: + // Measured: `31` + // Estimated: `1489` + // Minimum execution time: 3_441_000 picoseconds. + Weight::from_parts(3_604_000, 0) + .saturating_add(Weight::from_parts(0, 1489)) + .saturating_add(T::DbWeight::get().reads(1)) + .saturating_add(T::DbWeight::get().writes(1)) + } + /// Storage: `Scheduler::Agenda` (r:1 w:1) + /// Proof: `Scheduler::Agenda` (`max_values`: None, `max_size`: Some(155814), added: 158289, mode: `MaxEncodedLen`) + /// The range of component `s` is `[0, 200]`. + fn service_agenda_base(s: u32, ) -> Weight { + // Proof Size summary in bytes: + // Measured: `77 + s * (177 ±0)` + // Estimated: `159279` + // Minimum execution time: 2_879_000 picoseconds. + Weight::from_parts(2_963_000, 0) + .saturating_add(Weight::from_parts(0, 159279)) + // Standard Error: 3_764 + .saturating_add(Weight::from_parts(909_557, 0).saturating_mul(s.into())) + .saturating_add(T::DbWeight::get().reads(1)) + .saturating_add(T::DbWeight::get().writes(1)) + } + fn service_task_base() -> Weight { + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 5_172_000 picoseconds. + Weight::from_parts(5_294_000, 0) + .saturating_add(Weight::from_parts(0, 0)) + } + /// Storage: `Preimage::PreimageFor` (r:1 w:1) + /// Proof: `Preimage::PreimageFor` (`max_values`: None, `max_size`: Some(4194344), added: 4196819, mode: `Measured`) + /// Storage: `Preimage::StatusFor` (r:1 w:1) + /// Proof: `Preimage::StatusFor` (`max_values`: None, `max_size`: Some(91), added: 2566, mode: `MaxEncodedLen`) + /// The range of component `s` is `[128, 4194304]`. + fn service_task_fetched(s: u32, ) -> Weight { + // Proof Size summary in bytes: + // Measured: `213 + s * (1 ±0)` + // Estimated: `3678 + s * (1 ±0)` + // Minimum execution time: 19_704_000 picoseconds. + Weight::from_parts(19_903_000, 0) + .saturating_add(Weight::from_parts(0, 3678)) + // Standard Error: 5 + .saturating_add(Weight::from_parts(1_394, 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())) + } + /// Storage: `Scheduler::Lookup` (r:0 w:1) + /// Proof: `Scheduler::Lookup` (`max_values`: None, `max_size`: Some(48), added: 2523, mode: `MaxEncodedLen`) + fn service_task_named() -> Weight { + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 6_359_000 picoseconds. + Weight::from_parts(6_599_000, 0) + .saturating_add(Weight::from_parts(0, 0)) + .saturating_add(T::DbWeight::get().writes(1)) + } + fn service_task_periodic() -> Weight { + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 5_217_000 picoseconds. + Weight::from_parts(5_333_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_406_000 picoseconds. + Weight::from_parts(2_541_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_370_000 picoseconds. + Weight::from_parts(2_561_000, 0) + .saturating_add(Weight::from_parts(0, 0)) + } + /// Storage: `Scheduler::Agenda` (r:1 w:1) + /// Proof: `Scheduler::Agenda` (`max_values`: None, `max_size`: Some(155814), added: 158289, mode: `MaxEncodedLen`) + /// The range of component `s` is `[0, 199]`. + fn schedule(s: u32, ) -> Weight { + // Proof Size summary in bytes: + // Measured: `77 + s * (177 ±0)` + // Estimated: `159279` + // Minimum execution time: 11_784_000 picoseconds. + Weight::from_parts(5_574_404, 0) + .saturating_add(Weight::from_parts(0, 159279)) + // Standard Error: 7_217 + .saturating_add(Weight::from_parts(1_035_248, 0).saturating_mul(s.into())) + .saturating_add(T::DbWeight::get().reads(1)) + .saturating_add(T::DbWeight::get().writes(1)) + } + /// Storage: `Scheduler::Agenda` (r:1 w:1) + /// Proof: `Scheduler::Agenda` (`max_values`: None, `max_size`: Some(155814), added: 158289, mode: `MaxEncodedLen`) + /// Storage: `Scheduler::Lookup` (r:0 w:1) + /// Proof: `Scheduler::Lookup` (`max_values`: None, `max_size`: Some(48), added: 2523, mode: `MaxEncodedLen`) + /// The range of component `s` is `[1, 200]`. + fn cancel(s: u32, ) -> Weight { + // Proof Size summary in bytes: + // Measured: `77 + s * (177 ±0)` + // Estimated: `159279` + // Minimum execution time: 16_373_000 picoseconds. + Weight::from_parts(3_088_135, 0) + .saturating_add(Weight::from_parts(0, 159279)) + // Standard Error: 7_095 + .saturating_add(Weight::from_parts(1_745_270, 0).saturating_mul(s.into())) + .saturating_add(T::DbWeight::get().reads(1)) + .saturating_add(T::DbWeight::get().writes(2)) + } + /// Storage: `Scheduler::Lookup` (r:1 w:1) + /// Proof: `Scheduler::Lookup` (`max_values`: None, `max_size`: Some(48), added: 2523, mode: `MaxEncodedLen`) + /// Storage: `Scheduler::Agenda` (r:1 w:1) + /// Proof: `Scheduler::Agenda` (`max_values`: None, `max_size`: Some(155814), added: 158289, mode: `MaxEncodedLen`) + /// The range of component `s` is `[0, 199]`. + fn schedule_named(s: u32, ) -> Weight { + // Proof Size summary in bytes: + // Measured: `468 + s * (179 ±0)` + // Estimated: `159279` + // Minimum execution time: 14_822_000 picoseconds. + Weight::from_parts(9_591_402, 0) + .saturating_add(Weight::from_parts(0, 159279)) + // Standard Error: 7_151 + .saturating_add(Weight::from_parts(1_058_408, 0).saturating_mul(s.into())) + .saturating_add(T::DbWeight::get().reads(2)) + .saturating_add(T::DbWeight::get().writes(2)) + } + /// Storage: `Scheduler::Lookup` (r:1 w:1) + /// Proof: `Scheduler::Lookup` (`max_values`: None, `max_size`: Some(48), added: 2523, mode: `MaxEncodedLen`) + /// Storage: `Scheduler::Agenda` (r:1 w:1) + /// Proof: `Scheduler::Agenda` (`max_values`: None, `max_size`: Some(155814), added: 158289, mode: `MaxEncodedLen`) + /// The range of component `s` is `[1, 200]`. + fn cancel_named(s: u32, ) -> Weight { + // Proof Size summary in bytes: + // Measured: `509 + s * (179 ±0)` + // Estimated: `159279` + // Minimum execution time: 18_541_000 picoseconds. + Weight::from_parts(6_522_239, 0) + .saturating_add(Weight::from_parts(0, 159279)) + // Standard Error: 8_349 + .saturating_add(Weight::from_parts(1_760_431, 0).saturating_mul(s.into())) + .saturating_add(T::DbWeight::get().reads(2)) + .saturating_add(T::DbWeight::get().writes(2)) + } +} diff --git a/cumulus/parachains/runtimes/collectives/collectives-polkadot/src/weights/pallet_session.rs b/cumulus/parachains/runtimes/collectives/collectives-polkadot/src/weights/pallet_session.rs new file mode 100644 index 000000000000..2af8ce29a196 --- /dev/null +++ b/cumulus/parachains/runtimes/collectives/collectives-polkadot/src/weights/pallet_session.rs @@ -0,0 +1,81 @@ +// Copyright (C) Parity Technologies (UK) Ltd. +// This file is part of Cumulus. + +// Cumulus 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. + +// Cumulus 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 Cumulus. If not, see . + +//! Autogenerated weights for `pallet_session` +//! +//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev +//! DATE: 2023-07-31, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! WORST CASE MAP SIZE: `1000000` +//! HOSTNAME: `runner-ynta1nyy-project-238-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz` +//! EXECUTION: ``, WASM-EXECUTION: `Compiled`, CHAIN: `Some("collectives-polkadot-dev")`, DB CACHE: 1024 + +// Executed Command: +// ./target/production/polkadot-parachain +// benchmark +// pallet +// --chain=collectives-polkadot-dev +// --wasm-execution=compiled +// --pallet=pallet_session +// --no-storage-info +// --no-median-slopes +// --no-min-squares +// --extrinsic=* +// --steps=50 +// --repeat=20 +// --json +// --header=./file_header.txt +// --output=./parachains/runtimes/collectives/collectives-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_session`. +pub struct WeightInfo(PhantomData); +impl pallet_session::WeightInfo for WeightInfo { + /// Storage: `Session::NextKeys` (r:1 w:1) + /// Proof: `Session::NextKeys` (`max_values`: None, `max_size`: None, mode: `Measured`) + /// Storage: `Session::KeyOwner` (r:1 w:1) + /// Proof: `Session::KeyOwner` (`max_values`: None, `max_size`: None, mode: `Measured`) + fn set_keys() -> Weight { + // Proof Size summary in bytes: + // Measured: `270` + // Estimated: `3735` + // Minimum execution time: 16_663_000 picoseconds. + Weight::from_parts(17_246_000, 0) + .saturating_add(Weight::from_parts(0, 3735)) + .saturating_add(T::DbWeight::get().reads(2)) + .saturating_add(T::DbWeight::get().writes(2)) + } + /// Storage: `Session::NextKeys` (r:1 w:1) + /// Proof: `Session::NextKeys` (`max_values`: None, `max_size`: None, mode: `Measured`) + /// Storage: `Session::KeyOwner` (r:0 w:1) + /// Proof: `Session::KeyOwner` (`max_values`: None, `max_size`: None, mode: `Measured`) + fn purge_keys() -> Weight { + // Proof Size summary in bytes: + // Measured: `242` + // Estimated: `3707` + // Minimum execution time: 11_850_000 picoseconds. + Weight::from_parts(12_204_000, 0) + .saturating_add(Weight::from_parts(0, 3707)) + .saturating_add(T::DbWeight::get().reads(1)) + .saturating_add(T::DbWeight::get().writes(2)) + } +} diff --git a/cumulus/parachains/runtimes/collectives/collectives-polkadot/src/weights/pallet_timestamp.rs b/cumulus/parachains/runtimes/collectives/collectives-polkadot/src/weights/pallet_timestamp.rs new file mode 100644 index 000000000000..bc149ec63a17 --- /dev/null +++ b/cumulus/parachains/runtimes/collectives/collectives-polkadot/src/weights/pallet_timestamp.rs @@ -0,0 +1,75 @@ +// Copyright (C) Parity Technologies (UK) Ltd. +// This file is part of Cumulus. + +// Cumulus 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. + +// Cumulus 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 Cumulus. If not, see . + +//! Autogenerated weights for `pallet_timestamp` +//! +//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev +//! DATE: 2023-07-31, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! WORST CASE MAP SIZE: `1000000` +//! HOSTNAME: `runner-ynta1nyy-project-238-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz` +//! EXECUTION: ``, WASM-EXECUTION: `Compiled`, CHAIN: `Some("collectives-polkadot-dev")`, DB CACHE: 1024 + +// Executed Command: +// ./target/production/polkadot-parachain +// benchmark +// pallet +// --chain=collectives-polkadot-dev +// --wasm-execution=compiled +// --pallet=pallet_timestamp +// --no-storage-info +// --no-median-slopes +// --no-min-squares +// --extrinsic=* +// --steps=50 +// --repeat=20 +// --json +// --header=./file_header.txt +// --output=./parachains/runtimes/collectives/collectives-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_timestamp`. +pub struct WeightInfo(PhantomData); +impl pallet_timestamp::WeightInfo for WeightInfo { + /// Storage: `Timestamp::Now` (r:1 w:1) + /// Proof: `Timestamp::Now` (`max_values`: Some(1), `max_size`: Some(8), added: 503, mode: `MaxEncodedLen`) + /// Storage: `Aura::CurrentSlot` (r:1 w:0) + /// Proof: `Aura::CurrentSlot` (`max_values`: Some(1), `max_size`: Some(8), added: 503, mode: `MaxEncodedLen`) + fn set() -> Weight { + // Proof Size summary in bytes: + // Measured: `49` + // Estimated: `1493` + // Minimum execution time: 7_863_000 picoseconds. + Weight::from_parts(8_183_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: `57` + // Estimated: `0` + // Minimum execution time: 3_460_000 picoseconds. + Weight::from_parts(3_577_000, 0) + .saturating_add(Weight::from_parts(0, 0)) + } +} diff --git a/cumulus/parachains/runtimes/collectives/collectives-polkadot/src/weights/pallet_utility.rs b/cumulus/parachains/runtimes/collectives/collectives-polkadot/src/weights/pallet_utility.rs new file mode 100644 index 000000000000..5d6b0cb8285c --- /dev/null +++ b/cumulus/parachains/runtimes/collectives/collectives-polkadot/src/weights/pallet_utility.rs @@ -0,0 +1,102 @@ +// Copyright (C) Parity Technologies (UK) Ltd. +// This file is part of Cumulus. + +// Cumulus 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. + +// Cumulus 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 Cumulus. If not, see . + +//! Autogenerated weights for `pallet_utility` +//! +//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev +//! DATE: 2023-07-31, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! WORST CASE MAP SIZE: `1000000` +//! HOSTNAME: `runner-ynta1nyy-project-238-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz` +//! EXECUTION: ``, WASM-EXECUTION: `Compiled`, CHAIN: `Some("collectives-polkadot-dev")`, DB CACHE: 1024 + +// Executed Command: +// ./target/production/polkadot-parachain +// benchmark +// pallet +// --chain=collectives-polkadot-dev +// --wasm-execution=compiled +// --pallet=pallet_utility +// --no-storage-info +// --no-median-slopes +// --no-min-squares +// --extrinsic=* +// --steps=50 +// --repeat=20 +// --json +// --header=./file_header.txt +// --output=./parachains/runtimes/collectives/collectives-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_utility`. +pub struct WeightInfo(PhantomData); +impl pallet_utility::WeightInfo for WeightInfo { + /// The range of component `c` is `[0, 1000]`. + fn batch(c: u32, ) -> Weight { + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 6_650_000 picoseconds. + Weight::from_parts(7_474_437, 0) + .saturating_add(Weight::from_parts(0, 0)) + // Standard Error: 1_625 + .saturating_add(Weight::from_parts(4_996_146, 0).saturating_mul(c.into())) + } + fn as_derivative() -> Weight { + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 4_612_000 picoseconds. + Weight::from_parts(4_774_000, 0) + .saturating_add(Weight::from_parts(0, 0)) + } + /// The range of component `c` is `[0, 1000]`. + fn batch_all(c: u32, ) -> Weight { + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 6_744_000 picoseconds. + Weight::from_parts(10_889_913, 0) + .saturating_add(Weight::from_parts(0, 0)) + // Standard Error: 1_281 + .saturating_add(Weight::from_parts(5_218_293, 0).saturating_mul(c.into())) + } + fn dispatch_as() -> Weight { + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 8_673_000 picoseconds. + Weight::from_parts(8_980_000, 0) + .saturating_add(Weight::from_parts(0, 0)) + } + /// The range of component `c` is `[0, 1000]`. + fn force_batch(c: u32, ) -> Weight { + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 6_744_000 picoseconds. + Weight::from_parts(7_801_721, 0) + .saturating_add(Weight::from_parts(0, 0)) + // Standard Error: 1_395 + .saturating_add(Weight::from_parts(5_000_971, 0).saturating_mul(c.into())) + } +} diff --git a/cumulus/parachains/runtimes/collectives/collectives-polkadot/src/weights/pallet_xcm.rs b/cumulus/parachains/runtimes/collectives/collectives-polkadot/src/weights/pallet_xcm.rs new file mode 100644 index 000000000000..738742b6108b --- /dev/null +++ b/cumulus/parachains/runtimes/collectives/collectives-polkadot/src/weights/pallet_xcm.rs @@ -0,0 +1,289 @@ +// Copyright (C) Parity Technologies (UK) Ltd. +// This file is part of Cumulus. + +// Cumulus 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. + +// Cumulus 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 Cumulus. If not, see . + +//! Autogenerated weights for `pallet_xcm` +//! +//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev +//! DATE: 2023-07-31, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! WORST CASE MAP SIZE: `1000000` +//! HOSTNAME: `runner-ynta1nyy-project-238-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz` +//! EXECUTION: ``, WASM-EXECUTION: `Compiled`, CHAIN: `Some("collectives-polkadot-dev")`, DB CACHE: 1024 + +// Executed Command: +// ./target/production/polkadot-parachain +// benchmark +// pallet +// --chain=collectives-polkadot-dev +// --wasm-execution=compiled +// --pallet=pallet_xcm +// --no-storage-info +// --no-median-slopes +// --no-min-squares +// --extrinsic=* +// --steps=50 +// --repeat=20 +// --json +// --header=./file_header.txt +// --output=./parachains/runtimes/collectives/collectives-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_xcm`. +pub struct WeightInfo(PhantomData); +impl pallet_xcm::WeightInfo for WeightInfo { + /// Storage: `PolkadotXcm::SupportedVersion` (r:1 w:0) + /// Proof: `PolkadotXcm::SupportedVersion` (`max_values`: None, `max_size`: None, mode: `Measured`) + /// Storage: `PolkadotXcm::VersionDiscoveryQueue` (r:1 w:1) + /// Proof: `PolkadotXcm::VersionDiscoveryQueue` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `PolkadotXcm::SafeXcmVersion` (r:1 w:0) + /// Proof: `PolkadotXcm::SafeXcmVersion` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `ParachainSystem::HostConfiguration` (r:1 w:0) + /// Proof: `ParachainSystem::HostConfiguration` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `ParachainSystem::PendingUpwardMessages` (r:1 w:1) + /// Proof: `ParachainSystem::PendingUpwardMessages` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + fn send() -> Weight { + // Proof Size summary in bytes: + // Measured: `111` + // Estimated: `3576` + // Minimum execution time: 27_795_000 picoseconds. + Weight::from_parts(28_215_000, 0) + .saturating_add(Weight::from_parts(0, 3576)) + .saturating_add(T::DbWeight::get().reads(5)) + .saturating_add(T::DbWeight::get().writes(2)) + } + /// Storage: `ParachainInfo::ParachainId` (r:1 w:0) + /// Proof: `ParachainInfo::ParachainId` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`) + fn teleport_assets() -> Weight { + // Proof Size summary in bytes: + // Measured: `32` + // Estimated: `1489` + // Minimum execution time: 23_847_000 picoseconds. + Weight::from_parts(24_332_000, 0) + .saturating_add(Weight::from_parts(0, 1489)) + .saturating_add(T::DbWeight::get().reads(1)) + } + /// Storage: `Benchmark::Override` (r:0 w:0) + /// Proof: `Benchmark::Override` (`max_values`: None, `max_size`: None, mode: `Measured`) + fn reserve_transfer_assets() -> Weight { + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 18_446_744_073_709_551_000 picoseconds. + Weight::from_parts(18_446_744_073_709_551_000, 0) + .saturating_add(Weight::from_parts(0, 0)) + } + /// Storage: `Benchmark::Override` (r:0 w:0) + /// Proof: `Benchmark::Override` (`max_values`: None, `max_size`: None, mode: `Measured`) + fn execute() -> Weight { + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 18_446_744_073_709_551_000 picoseconds. + Weight::from_parts(18_446_744_073_709_551_000, 0) + .saturating_add(Weight::from_parts(0, 0)) + } + /// Storage: `PolkadotXcm::SupportedVersion` (r:0 w:1) + /// Proof: `PolkadotXcm::SupportedVersion` (`max_values`: None, `max_size`: None, mode: `Measured`) + fn force_xcm_version() -> Weight { + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 8_885_000 picoseconds. + Weight::from_parts(9_128_000, 0) + .saturating_add(Weight::from_parts(0, 0)) + .saturating_add(T::DbWeight::get().writes(1)) + } + /// Storage: `PolkadotXcm::SafeXcmVersion` (r:0 w:1) + /// Proof: `PolkadotXcm::SafeXcmVersion` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + fn force_default_xcm_version() -> Weight { + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 2_670_000 picoseconds. + Weight::from_parts(2_815_000, 0) + .saturating_add(Weight::from_parts(0, 0)) + .saturating_add(T::DbWeight::get().writes(1)) + } + /// Storage: `PolkadotXcm::VersionNotifiers` (r:1 w:1) + /// Proof: `PolkadotXcm::VersionNotifiers` (`max_values`: None, `max_size`: None, mode: `Measured`) + /// Storage: `PolkadotXcm::QueryCounter` (r:1 w:1) + /// Proof: `PolkadotXcm::QueryCounter` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `PolkadotXcm::SupportedVersion` (r:1 w:0) + /// Proof: `PolkadotXcm::SupportedVersion` (`max_values`: None, `max_size`: None, mode: `Measured`) + /// Storage: `PolkadotXcm::VersionDiscoveryQueue` (r:1 w:1) + /// Proof: `PolkadotXcm::VersionDiscoveryQueue` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `PolkadotXcm::SafeXcmVersion` (r:1 w:0) + /// Proof: `PolkadotXcm::SafeXcmVersion` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `ParachainSystem::HostConfiguration` (r:1 w:0) + /// Proof: `ParachainSystem::HostConfiguration` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `ParachainSystem::PendingUpwardMessages` (r:1 w:1) + /// Proof: `ParachainSystem::PendingUpwardMessages` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `PolkadotXcm::Queries` (r:0 w:1) + /// Proof: `PolkadotXcm::Queries` (`max_values`: None, `max_size`: None, mode: `Measured`) + fn force_subscribe_version_notify() -> Weight { + // Proof Size summary in bytes: + // Measured: `111` + // Estimated: `3576` + // Minimum execution time: 32_214_000 picoseconds. + Weight::from_parts(32_989_000, 0) + .saturating_add(Weight::from_parts(0, 3576)) + .saturating_add(T::DbWeight::get().reads(7)) + .saturating_add(T::DbWeight::get().writes(5)) + } + /// Storage: `PolkadotXcm::VersionNotifiers` (r:1 w:1) + /// Proof: `PolkadotXcm::VersionNotifiers` (`max_values`: None, `max_size`: None, mode: `Measured`) + /// Storage: `PolkadotXcm::SupportedVersion` (r:1 w:0) + /// Proof: `PolkadotXcm::SupportedVersion` (`max_values`: None, `max_size`: None, mode: `Measured`) + /// Storage: `PolkadotXcm::VersionDiscoveryQueue` (r:1 w:1) + /// Proof: `PolkadotXcm::VersionDiscoveryQueue` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `PolkadotXcm::SafeXcmVersion` (r:1 w:0) + /// Proof: `PolkadotXcm::SafeXcmVersion` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `ParachainSystem::HostConfiguration` (r:1 w:0) + /// Proof: `ParachainSystem::HostConfiguration` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `ParachainSystem::PendingUpwardMessages` (r:1 w:1) + /// Proof: `ParachainSystem::PendingUpwardMessages` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `PolkadotXcm::Queries` (r:0 w:1) + /// Proof: `PolkadotXcm::Queries` (`max_values`: None, `max_size`: None, mode: `Measured`) + fn force_unsubscribe_version_notify() -> Weight { + // Proof Size summary in bytes: + // Measured: `294` + // Estimated: `3759` + // Minimum execution time: 33_638_000 picoseconds. + Weight::from_parts(34_206_000, 0) + .saturating_add(Weight::from_parts(0, 3759)) + .saturating_add(T::DbWeight::get().reads(6)) + .saturating_add(T::DbWeight::get().writes(4)) + } + /// Storage: `PolkadotXcm::XcmExecutionSuspended` (r:0 w:1) + /// Proof: `PolkadotXcm::XcmExecutionSuspended` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + fn force_suspension() -> Weight { + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 2_602_000 picoseconds. + Weight::from_parts(2_730_000, 0) + .saturating_add(Weight::from_parts(0, 0)) + .saturating_add(T::DbWeight::get().writes(1)) + } + /// Storage: `PolkadotXcm::SupportedVersion` (r:4 w:2) + /// Proof: `PolkadotXcm::SupportedVersion` (`max_values`: None, `max_size`: None, mode: `Measured`) + fn migrate_supported_version() -> Weight { + // Proof Size summary in bytes: + // Measured: `129` + // Estimated: `11019` + // Minimum execution time: 16_199_000 picoseconds. + Weight::from_parts(16_833_000, 0) + .saturating_add(Weight::from_parts(0, 11019)) + .saturating_add(T::DbWeight::get().reads(4)) + .saturating_add(T::DbWeight::get().writes(2)) + } + /// Storage: `PolkadotXcm::VersionNotifiers` (r:4 w:2) + /// Proof: `PolkadotXcm::VersionNotifiers` (`max_values`: None, `max_size`: None, mode: `Measured`) + fn migrate_version_notifiers() -> Weight { + // Proof Size summary in bytes: + // Measured: `133` + // Estimated: `11023` + // Minimum execution time: 16_561_000 picoseconds. + Weight::from_parts(16_872_000, 0) + .saturating_add(Weight::from_parts(0, 11023)) + .saturating_add(T::DbWeight::get().reads(4)) + .saturating_add(T::DbWeight::get().writes(2)) + } + /// Storage: `PolkadotXcm::VersionNotifyTargets` (r:5 w:0) + /// Proof: `PolkadotXcm::VersionNotifyTargets` (`max_values`: None, `max_size`: None, mode: `Measured`) + fn already_notified_target() -> Weight { + // Proof Size summary in bytes: + // Measured: `140` + // Estimated: `13505` + // Minimum execution time: 17_812_000 picoseconds. + Weight::from_parts(20_036_000, 0) + .saturating_add(Weight::from_parts(0, 13505)) + .saturating_add(T::DbWeight::get().reads(5)) + } + /// Storage: `PolkadotXcm::VersionNotifyTargets` (r:2 w:1) + /// Proof: `PolkadotXcm::VersionNotifyTargets` (`max_values`: None, `max_size`: None, mode: `Measured`) + /// Storage: `PolkadotXcm::SupportedVersion` (r:1 w:0) + /// Proof: `PolkadotXcm::SupportedVersion` (`max_values`: None, `max_size`: None, mode: `Measured`) + /// Storage: `PolkadotXcm::VersionDiscoveryQueue` (r:1 w:1) + /// Proof: `PolkadotXcm::VersionDiscoveryQueue` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `PolkadotXcm::SafeXcmVersion` (r:1 w:0) + /// Proof: `PolkadotXcm::SafeXcmVersion` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `ParachainSystem::HostConfiguration` (r:1 w:0) + /// Proof: `ParachainSystem::HostConfiguration` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `ParachainSystem::PendingUpwardMessages` (r:1 w:1) + /// Proof: `ParachainSystem::PendingUpwardMessages` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + fn notify_current_targets() -> Weight { + // Proof Size summary in bytes: + // Measured: `178` + // Estimated: `6118` + // Minimum execution time: 30_153_000 picoseconds. + Weight::from_parts(31_366_000, 0) + .saturating_add(Weight::from_parts(0, 6118)) + .saturating_add(T::DbWeight::get().reads(7)) + .saturating_add(T::DbWeight::get().writes(3)) + } + /// Storage: `PolkadotXcm::VersionNotifyTargets` (r:3 w:0) + /// Proof: `PolkadotXcm::VersionNotifyTargets` (`max_values`: None, `max_size`: None, mode: `Measured`) + fn notify_target_migration_fail() -> Weight { + // Proof Size summary in bytes: + // Measured: `172` + // Estimated: `8587` + // Minimum execution time: 9_465_000 picoseconds. + Weight::from_parts(9_743_000, 0) + .saturating_add(Weight::from_parts(0, 8587)) + .saturating_add(T::DbWeight::get().reads(3)) + } + /// Storage: `PolkadotXcm::VersionNotifyTargets` (r:4 w:2) + /// Proof: `PolkadotXcm::VersionNotifyTargets` (`max_values`: None, `max_size`: None, mode: `Measured`) + fn migrate_version_notify_targets() -> Weight { + // Proof Size summary in bytes: + // Measured: `140` + // Estimated: `11030` + // Minimum execution time: 16_954_000 picoseconds. + Weight::from_parts(19_772_000, 0) + .saturating_add(Weight::from_parts(0, 11030)) + .saturating_add(T::DbWeight::get().reads(4)) + .saturating_add(T::DbWeight::get().writes(2)) + } + /// Storage: `PolkadotXcm::VersionNotifyTargets` (r:4 w:2) + /// Proof: `PolkadotXcm::VersionNotifyTargets` (`max_values`: None, `max_size`: None, mode: `Measured`) + /// Storage: `PolkadotXcm::SupportedVersion` (r:1 w:0) + /// Proof: `PolkadotXcm::SupportedVersion` (`max_values`: None, `max_size`: None, mode: `Measured`) + /// Storage: `PolkadotXcm::VersionDiscoveryQueue` (r:1 w:1) + /// Proof: `PolkadotXcm::VersionDiscoveryQueue` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `PolkadotXcm::SafeXcmVersion` (r:1 w:0) + /// Proof: `PolkadotXcm::SafeXcmVersion` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `ParachainSystem::HostConfiguration` (r:1 w:0) + /// Proof: `ParachainSystem::HostConfiguration` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `ParachainSystem::PendingUpwardMessages` (r:1 w:1) + /// Proof: `ParachainSystem::PendingUpwardMessages` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + fn migrate_and_notify_old_targets() -> Weight { + // Proof Size summary in bytes: + // Measured: `182` + // Estimated: `11072` + // Minimum execution time: 37_302_000 picoseconds. + Weight::from_parts(38_124_000, 0) + .saturating_add(Weight::from_parts(0, 11072)) + .saturating_add(T::DbWeight::get().reads(9)) + .saturating_add(T::DbWeight::get().writes(4)) + } +} diff --git a/cumulus/parachains/runtimes/collectives/collectives-polkadot/src/weights/paritydb_weights.rs b/cumulus/parachains/runtimes/collectives/collectives-polkadot/src/weights/paritydb_weights.rs new file mode 100644 index 000000000000..25679703831a --- /dev/null +++ b/cumulus/parachains/runtimes/collectives/collectives-polkadot/src/weights/paritydb_weights.rs @@ -0,0 +1,63 @@ +// This file is part of Substrate. + +// 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. + +pub mod constants { + use frame_support::{ + parameter_types, + weights::{constants, RuntimeDbWeight}, + }; + + parameter_types! { + /// `ParityDB` can be enabled with a feature flag, but is still experimental. These weights + /// are available for brave runtime engineers who may want to try this out as default. + pub const ParityDbWeight: RuntimeDbWeight = RuntimeDbWeight { + read: 8_000 * constants::WEIGHT_REF_TIME_PER_NANOS, + write: 50_000 * constants::WEIGHT_REF_TIME_PER_NANOS, + }; + } + + #[cfg(test)] + mod test_db_weights { + use super::constants::ParityDbWeight as W; + use frame_support::weights::constants; + + /// Checks that all weights exist and have sane values. + // NOTE: If this test fails but you are sure that the generated values are fine, + // you can delete it. + #[test] + fn sane() { + // At least 1 µs. + assert!( + W::get().reads(1).ref_time() >= constants::WEIGHT_REF_TIME_PER_MICROS, + "Read weight should be at least 1 µs." + ); + assert!( + W::get().writes(1).ref_time() >= constants::WEIGHT_REF_TIME_PER_MICROS, + "Write weight should be at least 1 µs." + ); + // At most 1 ms. + assert!( + W::get().reads(1).ref_time() <= constants::WEIGHT_REF_TIME_PER_MILLIS, + "Read weight should be at most 1 ms." + ); + assert!( + W::get().writes(1).ref_time() <= constants::WEIGHT_REF_TIME_PER_MILLIS, + "Write weight should be at most 1 ms." + ); + } + } +} diff --git a/cumulus/parachains/runtimes/collectives/collectives-polkadot/src/weights/rocksdb_weights.rs b/cumulus/parachains/runtimes/collectives/collectives-polkadot/src/weights/rocksdb_weights.rs new file mode 100644 index 000000000000..3dd817aa6f13 --- /dev/null +++ b/cumulus/parachains/runtimes/collectives/collectives-polkadot/src/weights/rocksdb_weights.rs @@ -0,0 +1,63 @@ +// This file is part of Substrate. + +// 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. + +pub mod constants { + use frame_support::{ + parameter_types, + weights::{constants, RuntimeDbWeight}, + }; + + parameter_types! { + /// By default, Substrate uses `RocksDB`, so this will be the weight used throughout + /// the runtime. + pub const RocksDbWeight: RuntimeDbWeight = RuntimeDbWeight { + read: 25_000 * constants::WEIGHT_REF_TIME_PER_NANOS, + write: 100_000 * constants::WEIGHT_REF_TIME_PER_NANOS, + }; + } + + #[cfg(test)] + mod test_db_weights { + use super::constants::RocksDbWeight as W; + use frame_support::weights::constants; + + /// Checks that all weights exist and have sane values. + // NOTE: If this test fails but you are sure that the generated values are fine, + // you can delete it. + #[test] + fn sane() { + // At least 1 µs. + assert!( + W::get().reads(1).ref_time() >= constants::WEIGHT_REF_TIME_PER_MICROS, + "Read weight should be at least 1 µs." + ); + assert!( + W::get().writes(1).ref_time() >= constants::WEIGHT_REF_TIME_PER_MICROS, + "Write weight should be at least 1 µs." + ); + // At most 1 ms. + assert!( + W::get().reads(1).ref_time() <= constants::WEIGHT_REF_TIME_PER_MILLIS, + "Read weight should be at most 1 ms." + ); + assert!( + W::get().writes(1).ref_time() <= constants::WEIGHT_REF_TIME_PER_MILLIS, + "Write weight should be at most 1 ms." + ); + } + } +} diff --git a/cumulus/parachains/runtimes/collectives/collectives-polkadot/src/xcm_config.rs b/cumulus/parachains/runtimes/collectives/collectives-polkadot/src/xcm_config.rs new file mode 100644 index 000000000000..c64d688e5f1b --- /dev/null +++ b/cumulus/parachains/runtimes/collectives/collectives-polkadot/src/xcm_config.rs @@ -0,0 +1,338 @@ +// 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::{ + AccountId, AllPalletsWithSystem, Balances, BaseDeliveryFee, FeeAssetId, Fellows, ParachainInfo, + ParachainSystem, PolkadotXcm, Runtime, RuntimeCall, RuntimeEvent, RuntimeOrigin, + TransactionByteFee, WeightToFee, XcmpQueue, +}; +use frame_support::{ + match_types, parameter_types, + traits::{ConstU32, Contains, Everything, Nothing}, + weights::Weight, +}; +use frame_system::EnsureRoot; +use pallet_xcm::XcmPassthrough; +use parachains_common::{impls::ToStakingPot, xcm_config::ConcreteAssetFromSystem}; +use polkadot_parachain_primitives::primitives::Sibling; +use polkadot_runtime_common::xcm_sender::ExponentialPrice; +use xcm::latest::prelude::*; +use xcm_builder::{ + AccountId32Aliases, AllowExplicitUnpaidExecutionFrom, AllowKnownQueryResponses, + AllowSubscriptionsFrom, AllowTopLevelPaidExecutionFrom, CurrencyAdapter, + DenyReserveTransferToRelayChain, DenyThenTry, EnsureXcmOrigin, FixedWeightBounds, IsConcrete, + LocatableAssetId, OriginToPluralityVoice, ParentAsSuperuser, ParentIsPreset, + RelayChainAsNative, SiblingParachainAsNative, SiblingParachainConvertsVia, + SignedAccountId32AsNative, SignedToAccountId32, SovereignSignedViaLocation, TakeWeightCredit, + TrailingSetTopicAsId, UsingComponents, WithComputedOrigin, WithUniqueTopic, +}; +use xcm_executor::{traits::WithOriginFilter, XcmExecutor}; + +const FELLOWSHIP_ADMIN_INDEX: u32 = 1; + +parameter_types! { + pub const DotLocation: MultiLocation = MultiLocation::parent(); + pub const RelayNetwork: Option = Some(NetworkId::Polkadot); + pub RelayChainOrigin: RuntimeOrigin = cumulus_pallet_xcm::Origin::Relay.into(); + pub UniversalLocation: InteriorMultiLocation = + X2(GlobalConsensus(RelayNetwork::get().unwrap()), Parachain(ParachainInfo::parachain_id().into())); + pub CheckingAccount: AccountId = PolkadotXcm::check_account(); + pub const GovernanceLocation: MultiLocation = MultiLocation::parent(); + pub const FellowshipAdminBodyId: BodyId = BodyId::Index(FELLOWSHIP_ADMIN_INDEX); + pub AssetHub: MultiLocation = (Parent, Parachain(1000)).into(); + pub AssetHubUsdtId: AssetId = (PalletInstance(50), GeneralIndex(1984)).into(); + pub UsdtAssetHub: LocatableAssetId = LocatableAssetId { + location: AssetHub::get(), + asset_id: AssetHubUsdtId::get(), + }; + pub DotAssetHub: LocatableAssetId = LocatableAssetId { + location: AssetHub::get(), + asset_id: DotLocation::get().into(), + }; +} + +/// Type for specifying how a `MultiLocation` can be converted into an `AccountId`. This is used +/// when determining ownership of accounts for asset transacting and when attempting to use XCM +/// `Transact` in order to determine the dispatch Origin. +pub type LocationToAccountId = ( + // The parent (Relay-chain) origin converts to the parent `AccountId`. + ParentIsPreset, + // Sibling parachain origins convert to AccountId via the `ParaId::into`. + SiblingParachainConvertsVia, + // Straight up local `AccountId32` origins just alias directly to `AccountId`. + AccountId32Aliases, +); + +/// Means for transacting the native currency on this chain. +pub type CurrencyTransactor = CurrencyAdapter< + // Use this currency: + Balances, + // Use this currency when it is a fungible asset matching the given location or name: + IsConcrete, + // Convert an XCM MultiLocation into a local account id: + LocationToAccountId, + // Our chain's account ID type (we can't get away without mentioning it explicitly): + AccountId, + // We don't track any teleports of `Balances`. + (), +>; + +/// This is the type we use to convert an (incoming) XCM origin into a local `Origin` instance, +/// ready for dispatching a transaction with Xcm's `Transact`. There is an `OriginKind` which can +/// biases the kind of local `Origin` it will become. +pub type XcmOriginToTransactDispatchOrigin = ( + // Sovereign account converter; this attempts to derive an `AccountId` from the origin location + // using `LocationToAccountId` and then turn that into the usual `Signed` origin. Useful for + // foreign chains who want to have a local sovereign account on this chain which they control. + SovereignSignedViaLocation, + // Native converter for Relay-chain (Parent) location; will convert to a `Relay` origin when + // recognised. + RelayChainAsNative, + // Native converter for sibling Parachains; will convert to a `SiblingPara` origin when + // recognised. + SiblingParachainAsNative, + // Superuser converter for the Relay-chain (Parent) location. This will allow it to issue a + // transaction from the Root origin. + ParentAsSuperuser, + // Native signed account converter; this just converts an `AccountId32` origin into a normal + // `RuntimeOrigin::Signed` origin of the same 32-byte value. + SignedAccountId32AsNative, + // Xcm origins can be represented natively under the Xcm pallet's Xcm origin. + XcmPassthrough, +); + +parameter_types! { + /// The amount of weight an XCM operation takes. This is a safe overestimate. + pub const BaseXcmWeight: Weight = Weight::from_parts(1_000_000_000, 1024); + /// A temporary weight value for each XCM instruction. + /// NOTE: This should be removed after we account for PoV weights. + pub const TempFixedXcmWeight: Weight = Weight::from_parts(1_000_000_000, 0); + pub const MaxInstructions: u32 = 100; + pub const MaxAssetsIntoHolding: u32 = 64; + // Fellows pluralistic body. + pub const FellowsBodyId: BodyId = BodyId::Technical; +} + +match_types! { + pub type ParentOrParentsPlurality: impl Contains = { + MultiLocation { parents: 1, interior: Here } | + MultiLocation { parents: 1, interior: X1(Plurality { .. }) } + }; + pub type ParentOrSiblings: impl Contains = { + MultiLocation { parents: 1, interior: Here } | + MultiLocation { parents: 1, interior: X1(_) } + }; +} + +/// A call filter for the XCM Transact instruction. This is a temporary measure until we properly +/// account for proof size weights. +/// +/// Calls that are allowed through this filter must: +/// 1. Have a fixed weight; +/// 2. Cannot lead to another call being made; +/// 3. Have a defined proof size weight, e.g. no unbounded vecs in call parameters. +pub struct SafeCallFilter; +impl Contains for SafeCallFilter { + fn contains(call: &RuntimeCall) -> bool { + #[cfg(feature = "runtime-benchmarks")] + { + if matches!(call, RuntimeCall::System(frame_system::Call::remark_with_event { .. })) { + return true + } + } + + matches!( + call, + RuntimeCall::System( + frame_system::Call::set_heap_pages { .. } | + frame_system::Call::set_code { .. } | + frame_system::Call::set_code_without_checks { .. } | + frame_system::Call::kill_prefix { .. }, + ) | RuntimeCall::ParachainSystem(..) | + RuntimeCall::Timestamp(..) | + RuntimeCall::Balances(..) | + RuntimeCall::CollatorSelection( + pallet_collator_selection::Call::set_desired_candidates { .. } | + pallet_collator_selection::Call::set_candidacy_bond { .. } | + pallet_collator_selection::Call::register_as_candidate { .. } | + pallet_collator_selection::Call::leave_intent { .. } | + pallet_collator_selection::Call::set_invulnerables { .. } | + pallet_collator_selection::Call::add_invulnerable { .. } | + pallet_collator_selection::Call::remove_invulnerable { .. }, + ) | RuntimeCall::Session(pallet_session::Call::purge_keys { .. }) | + RuntimeCall::PolkadotXcm(pallet_xcm::Call::force_xcm_version { .. }) | + RuntimeCall::XcmpQueue(..) | + RuntimeCall::DmpQueue(..) | + RuntimeCall::Alliance( + // `init_members` accepts unbounded vecs as arguments, + // but the call can be initiated only by root origin. + pallet_alliance::Call::init_members { .. } | + pallet_alliance::Call::vote { .. } | + pallet_alliance::Call::disband { .. } | + pallet_alliance::Call::set_rule { .. } | + pallet_alliance::Call::announce { .. } | + pallet_alliance::Call::remove_announcement { .. } | + pallet_alliance::Call::join_alliance { .. } | + pallet_alliance::Call::nominate_ally { .. } | + pallet_alliance::Call::elevate_ally { .. } | + pallet_alliance::Call::give_retirement_notice { .. } | + pallet_alliance::Call::retire { .. } | + pallet_alliance::Call::kick_member { .. } | + pallet_alliance::Call::close { .. } | + pallet_alliance::Call::abdicate_fellow_status { .. }, + ) | RuntimeCall::AllianceMotion( + pallet_collective::Call::vote { .. } | + pallet_collective::Call::disapprove_proposal { .. } | + pallet_collective::Call::close { .. }, + ) | RuntimeCall::FellowshipCollective( + pallet_ranked_collective::Call::add_member { .. } | + pallet_ranked_collective::Call::promote_member { .. } | + pallet_ranked_collective::Call::demote_member { .. } | + pallet_ranked_collective::Call::remove_member { .. }, + ) | RuntimeCall::FellowshipCore( + pallet_core_fellowship::Call::bump { .. } | + pallet_core_fellowship::Call::set_params { .. } | + pallet_core_fellowship::Call::set_active { .. } | + pallet_core_fellowship::Call::approve { .. } | + pallet_core_fellowship::Call::induct { .. } | + pallet_core_fellowship::Call::promote { .. } | + pallet_core_fellowship::Call::offboard { .. } | + pallet_core_fellowship::Call::submit_evidence { .. } | + pallet_core_fellowship::Call::import { .. }, + ) + ) + } +} + +pub type Barrier = TrailingSetTopicAsId< + DenyThenTry< + DenyReserveTransferToRelayChain, + ( + // Allow local users to buy weight credit. + TakeWeightCredit, + // Expected responses are OK. + AllowKnownQueryResponses, + // Allow XCMs with some computed origins to pass through. + WithComputedOrigin< + ( + // If the message is one that immediately attempts to pay for execution, then + // allow it. + AllowTopLevelPaidExecutionFrom, + // Parent and its pluralities (i.e. governance bodies) get free execution. + AllowExplicitUnpaidExecutionFrom, + // Subscriptions for version tracking are OK. + AllowSubscriptionsFrom, + ), + UniversalLocation, + ConstU32<8>, + >, + ), + >, +>; + +/// Cases where a remote origin is accepted as trusted Teleporter for a given asset: +/// - DOT with the parent Relay Chain and sibling parachains. +pub type TrustedTeleporters = ConcreteAssetFromSystem; + +pub struct XcmConfig; +impl xcm_executor::Config for XcmConfig { + type RuntimeCall = RuntimeCall; + type XcmSender = XcmRouter; + type AssetTransactor = CurrencyTransactor; + type OriginConverter = XcmOriginToTransactDispatchOrigin; + // Collectives does not recognize a reserve location for any asset. Users must teleport DOT + // where allowed (e.g. with the Relay Chain). + type IsReserve = (); + type IsTeleporter = TrustedTeleporters; + type UniversalLocation = UniversalLocation; + type Barrier = Barrier; + type Weigher = FixedWeightBounds; + type Trader = + UsingComponents>; + type ResponseHandler = PolkadotXcm; + type AssetTrap = PolkadotXcm; + type AssetClaims = PolkadotXcm; + type SubscriptionService = PolkadotXcm; + type PalletInstancesInfo = AllPalletsWithSystem; + type MaxAssetsIntoHolding = MaxAssetsIntoHolding; + type AssetLocker = (); + type AssetExchanger = (); + type FeeManager = (); + type MessageExporter = (); + type UniversalAliases = Nothing; + type CallDispatcher = WithOriginFilter; + type SafeCallFilter = SafeCallFilter; + type Aliasers = Nothing; +} + +/// Converts a local signed origin into an XCM multilocation. +/// Forms the basis for local origins sending/executing XCMs. +pub type LocalOriginToLocation = SignedToAccountId32; + +pub type PriceForParentDelivery = + ExponentialPrice; + +/// The means for routing XCM messages which are not for local execution into the right message +/// queues. +pub type XcmRouter = WithUniqueTopic<( + // Two routers - use UMP to communicate with the relay chain: + cumulus_primitives_utility::ParentAsUmp, + // ..and XCMP to communicate with the sibling chains. + XcmpQueue, +)>; + +#[cfg(feature = "runtime-benchmarks")] +parameter_types! { + pub ReachableDest: Option = Some(Parent.into()); +} + +/// Type to convert the Fellows origin to a Plurality `MultiLocation` value. +pub type FellowsToPlurality = OriginToPluralityVoice; + +impl pallet_xcm::Config for Runtime { + type RuntimeEvent = RuntimeEvent; + // We only allow the Fellows to send messages. + type SendXcmOrigin = EnsureXcmOrigin; + type XcmRouter = XcmRouter; + // We support local origins dispatching XCM executions in principle... + type ExecuteXcmOrigin = EnsureXcmOrigin; + // ... but disallow generic XCM execution. As a result only teleports are allowed. + type XcmExecuteFilter = Nothing; + type XcmExecutor = XcmExecutor; + type XcmTeleportFilter = Everything; + type XcmReserveTransferFilter = Nothing; // This parachain is not meant as a reserve location. + type Weigher = FixedWeightBounds; + type UniversalLocation = UniversalLocation; + type RuntimeOrigin = RuntimeOrigin; + type RuntimeCall = RuntimeCall; + const VERSION_DISCOVERY_QUEUE_SIZE: u32 = 100; + type AdvertisedXcmVersion = pallet_xcm::CurrentXcmVersion; + type Currency = Balances; + type CurrencyMatcher = (); + type TrustedLockers = (); + type SovereignAccountOf = LocationToAccountId; + type MaxLockers = ConstU32<8>; + type WeightInfo = crate::weights::pallet_xcm::WeightInfo; + #[cfg(feature = "runtime-benchmarks")] + type ReachableDest = ReachableDest; + type AdminOrigin = EnsureRoot; + type MaxRemoteLockConsumers = ConstU32<0>; + type RemoteLockConsumerIdentifier = (); +} + +impl cumulus_pallet_xcm::Config for Runtime { + type RuntimeEvent = RuntimeEvent; + type XcmExecutor = XcmExecutor; +} diff --git a/cumulus/parachains/runtimes/glutton/glutton-kusama/Cargo.toml b/cumulus/parachains/runtimes/glutton/glutton-kusama/Cargo.toml new file mode 100644 index 000000000000..e8abc61311c2 --- /dev/null +++ b/cumulus/parachains/runtimes/glutton/glutton-kusama/Cargo.toml @@ -0,0 +1,127 @@ +[package] +name = "glutton-runtime" +version = "1.0.0" +description = "Glutton parachain runtime." +authors.workspace = true +edition.workspace = true + +[dependencies] +codec = { package = "parity-scale-codec", version = "3.0.0", default-features = false, features = ["derive"] } +scale-info = { version = "2.10.0", default-features = false, features = ["derive"] } + +# Substrate +frame-benchmarking = { path = "../../../../../substrate/frame/benchmarking", default-features = false, optional = true} +frame-executive = { path = "../../../../../substrate/frame/executive", default-features = false} +frame-support = { path = "../../../../../substrate/frame/support", default-features = false} +frame-system = { path = "../../../../../substrate/frame/system", default-features = false} +frame-system-rpc-runtime-api = { path = "../../../../../substrate/frame/system/rpc/runtime-api", default-features = false} +frame-system-benchmarking = { path = "../../../../../substrate/frame/system/benchmarking", default-features = false, optional = true} +frame-try-runtime = { path = "../../../../../substrate/frame/try-runtime", default-features = false, optional = true} +pallet-aura = { path = "../../../../../substrate/frame/aura", default-features = false} +pallet-glutton = { path = "../../../../../substrate/frame/glutton", default-features = false, optional = true} +pallet-sudo = { path = "../../../../../substrate/frame/sudo", default-features = false, optional = true} +pallet-timestamp = { path = "../../../../../substrate/frame/timestamp", default-features = false } +sp-api = { path = "../../../../../substrate/primitives/api", default-features = false} +sp-block-builder = { path = "../../../../../substrate/primitives/block-builder", default-features = false} +sp-consensus-aura = { path = "../../../../../substrate/primitives/consensus/aura", default-features = false } +sp-core = { path = "../../../../../substrate/primitives/core", default-features = false} +sp-genesis-builder = { path = "../../../../../substrate/primitives/genesis-builder", default-features = false } +sp-inherents = { path = "../../../../../substrate/primitives/inherents", default-features = false} +sp-offchain = { path = "../../../../../substrate/primitives/offchain", default-features = false} +sp-runtime = { path = "../../../../../substrate/primitives/runtime", default-features = false} +sp-session = { path = "../../../../../substrate/primitives/session", default-features = false} +sp-std = { path = "../../../../../substrate/primitives/std", default-features = false} +sp-storage = { path = "../../../../../substrate/primitives/storage", default-features = false} +sp-transaction-pool = { path = "../../../../../substrate/primitives/transaction-pool", default-features = false} +sp-version = { path = "../../../../../substrate/primitives/version", default-features = false} + +# Polkadot +xcm = { package = "staging-xcm", path = "../../../../../polkadot/xcm", default-features = false} +xcm-builder = { package = "staging-xcm-builder", path = "../../../../../polkadot/xcm/xcm-builder", default-features = false} +xcm-executor = { package = "staging-xcm-executor", path = "../../../../../polkadot/xcm/xcm-executor", default-features = false} + +# Cumulus +cumulus-pallet-aura-ext = { path = "../../../../pallets/aura-ext", default-features = false } +cumulus-pallet-parachain-system = { path = "../../../../pallets/parachain-system", default-features = false, features = ["parameterized-consensus-hook",] } +cumulus-pallet-xcm = { path = "../../../../pallets/xcm", default-features = false } +cumulus-primitives-aura = { path = "../../../../primitives/aura", default-features = false } +cumulus-primitives-core = { path = "../../../../primitives/core", default-features = false } +cumulus-primitives-timestamp = { path = "../../../../primitives/timestamp", default-features = false } +parachain-info = { path = "../../../pallets/parachain-info", default-features = false } +parachains-common = { path = "../../../common", default-features = false } + +[build-dependencies] +substrate-wasm-builder = { path = "../../../../../substrate/utils/wasm-builder" } + +[features] +default = [ "std" ] +runtime-benchmarks = [ + "cumulus-pallet-parachain-system/runtime-benchmarks", + "frame-benchmarking/runtime-benchmarks", + "frame-support/runtime-benchmarks", + "frame-system-benchmarking/runtime-benchmarks", + "frame-system/runtime-benchmarks", + "pallet-glutton/runtime-benchmarks", + "pallet-sudo?/runtime-benchmarks", + "pallet-timestamp/runtime-benchmarks", + "parachains-common/runtime-benchmarks", + "sp-runtime/runtime-benchmarks", + "xcm-builder/runtime-benchmarks", + "xcm-executor/runtime-benchmarks", +] +std = [ + "codec/std", + "cumulus-pallet-aura-ext/std", + "cumulus-pallet-parachain-system/std", + "cumulus-pallet-xcm/std", + "cumulus-primitives-aura/std", + "cumulus-primitives-core/std", + "cumulus-primitives-timestamp/std", + "frame-benchmarking?/std", + "frame-executive/std", + "frame-support/std", + "frame-system-benchmarking?/std", + "frame-system-rpc-runtime-api/std", + "frame-system/std", + "frame-try-runtime?/std", + "pallet-aura/std", + "pallet-glutton/std", + "pallet-sudo/std", + "pallet-timestamp/std", + "parachain-info/std", + "parachains-common/std", + "scale-info/std", + "sp-api/std", + "sp-block-builder/std", + "sp-consensus-aura/std", + "sp-core/std", + "sp-genesis-builder/std", + "sp-inherents/std", + "sp-offchain/std", + "sp-runtime/std", + "sp-session/std", + "sp-std/std", + "sp-storage/std", + "sp-transaction-pool/std", + "sp-version/std", + "xcm-builder/std", + "xcm-executor/std", + "xcm/std", +] +try-runtime = [ + "cumulus-pallet-aura-ext/try-runtime", + "cumulus-pallet-parachain-system/try-runtime", + "cumulus-pallet-xcm/try-runtime", + "frame-executive/try-runtime", + "frame-support/try-runtime", + "frame-system/try-runtime", + "frame-try-runtime/try-runtime", + "pallet-aura/try-runtime", + "pallet-glutton/try-runtime", + "pallet-sudo/try-runtime", + "pallet-timestamp/try-runtime", + "parachain-info/try-runtime", + "sp-runtime/try-runtime", +] + +experimental = [ "pallet-aura/experimental" ] diff --git a/cumulus/parachains/runtimes/glutton/glutton-kusama/build.rs b/cumulus/parachains/runtimes/glutton/glutton-kusama/build.rs new file mode 100644 index 000000000000..1580e6f07bec --- /dev/null +++ b/cumulus/parachains/runtimes/glutton/glutton-kusama/build.rs @@ -0,0 +1,24 @@ +// 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 substrate_wasm_builder::WasmBuilder; + +fn main() { + WasmBuilder::new() + .with_current_project() + .export_heap_base() + .import_memory() + .build() +} diff --git a/cumulus/parachains/runtimes/glutton/glutton-kusama/src/lib.rs b/cumulus/parachains/runtimes/glutton/glutton-kusama/src/lib.rs new file mode 100644 index 000000000000..f5d52239e543 --- /dev/null +++ b/cumulus/parachains/runtimes/glutton/glutton-kusama/src/lib.rs @@ -0,0 +1,495 @@ +// 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. + +//! # Glutton Runtime +//! +//! The purpose of the Glutton parachain is to do stress testing on the Kusama +//! network. +//! +//! There may be multiple instances of the Glutton parachain deployed and +//! connected to Kusama. +//! +//! These parachains are not holding any real value. Their purpose is to stress +//! test the network. +//! +//! ### Governance +//! +//! Glutton defers its governance (namely, its `Root` origin), to its Relay +//! Chain parent, Kusama. +//! +//! ### XCM +//! +//! Since the main goal of Glutton is solely stress testing, the parachain will +//! only be able receive XCM messages from Kusama via DMP. This way the Glutton +//! parachains will be able to listen for upgrades that are coming from the +//! Relay chain. + +#![cfg_attr(not(feature = "std"), no_std)] +#![recursion_limit = "256"] + +// Make the WASM binary available. +#[cfg(feature = "std")] +include!(concat!(env!("OUT_DIR"), "/wasm_binary.rs")); + +pub mod weights; +pub mod xcm_config; + +use cumulus_pallet_parachain_system::RelayNumberMonotonicallyIncreases; +use sp_api::impl_runtime_apis; +pub use sp_consensus_aura::sr25519::AuthorityId as AuraId; +use sp_core::{crypto::KeyTypeId, OpaqueMetadata}; +use sp_runtime::{ + create_runtime_str, generic, impl_opaque_keys, + traits::{AccountIdLookup, BlakeTwo256, Block as BlockT}, + transaction_validity::{TransactionSource, TransactionValidity}, + ApplyExtrinsicResult, +}; +use sp_std::prelude::*; +#[cfg(feature = "std")] +use sp_version::NativeVersion; +use sp_version::RuntimeVersion; + +pub use frame_support::{ + construct_runtime, + dispatch::DispatchClass, + genesis_builder_helper::{build_config, create_default_config}, + parameter_types, + traits::{ + ConstBool, ConstU32, ConstU64, ConstU8, EitherOfDiverse, Everything, IsInVec, Randomness, + }, + weights::{ + constants::{ + BlockExecutionWeight, ExtrinsicBaseWeight, RocksDbWeight, WEIGHT_REF_TIME_PER_SECOND, + }, + IdentityFee, Weight, + }, + PalletId, StorageValue, +}; +use frame_system::{ + limits::{BlockLength, BlockWeights}, + EnsureRoot, +}; +use parachains_common::{AccountId, Signature}; +#[cfg(any(feature = "std", test))] +pub use sp_runtime::BuildStorage; +pub use sp_runtime::{Perbill, Permill}; + +impl_opaque_keys! { + pub struct SessionKeys { + pub aura: Aura, + } +} + +#[sp_version::runtime_version] +pub const VERSION: RuntimeVersion = RuntimeVersion { + spec_name: create_runtime_str!("glutton"), + impl_name: create_runtime_str!("glutton"), + authoring_version: 1, + spec_version: 10000, + impl_version: 0, + apis: RUNTIME_API_VERSIONS, + transaction_version: 1, + state_version: 1, +}; + +/// The version information used to identify this runtime when compiled natively. +#[cfg(feature = "std")] +pub fn native_version() -> NativeVersion { + NativeVersion { runtime_version: VERSION, can_author_with: Default::default() } +} + +/// We assume that ~10% of the block weight is consumed by `on_initialize` handlers. +/// This is used to limit the maximal weight of a single extrinsic. +const AVERAGE_ON_INITIALIZE_RATIO: Perbill = Perbill::from_percent(10); +/// We allow `Normal` extrinsics to fill up the block up to 75%, the rest can be used +/// by Operational extrinsics. +const NORMAL_DISPATCH_RATIO: Perbill = Perbill::from_percent(75); +/// We allow for .5 seconds of compute with a 12 second average block time. +const MAXIMUM_BLOCK_WEIGHT: Weight = Weight::from_parts( + WEIGHT_REF_TIME_PER_SECOND.saturating_mul(2), + cumulus_primitives_core::relay_chain::MAX_POV_SIZE as u64, +); + +/// Maximum number of blocks simultaneously accepted by the Runtime, not yet included +/// into the relay chain. +const UNINCLUDED_SEGMENT_CAPACITY: u32 = 3; +/// How many parachain blocks are processed by the relay chain per parent. Limits the +/// number of blocks authored per slot. +const BLOCK_PROCESSING_VELOCITY: u32 = 2; +/// Relay chain slot duration, in milliseconds. +const RELAY_CHAIN_SLOT_DURATION_MILLIS: u32 = 6000; + +/// This determines the average expected block time that we are targeting. +/// Blocks will be produced at a minimum duration defined by `SLOT_DURATION`. +/// `SLOT_DURATION` is picked up by `pallet_timestamp` which is in turn picked +/// up by `pallet_aura` to implement `fn slot_duration()`. +/// +/// Change this to adjust the block time. +pub const MILLISECS_PER_BLOCK: u64 = 6000; +pub const SLOT_DURATION: u64 = MILLISECS_PER_BLOCK; + +parameter_types! { + pub const BlockHashCount: BlockNumber = 4096; + pub const Version: RuntimeVersion = VERSION; + pub RuntimeBlockLength: BlockLength = + BlockLength::max_with_normal_ratio(5 * 1024 * 1024, NORMAL_DISPATCH_RATIO); + pub RuntimeBlockWeights: BlockWeights = BlockWeights::builder() + .base_block(BlockExecutionWeight::get()) + .for_class(DispatchClass::all(), |weights| { + weights.base_extrinsic = ExtrinsicBaseWeight::get(); + }) + .for_class(DispatchClass::Normal, |weights| { + weights.max_total = Some(NORMAL_DISPATCH_RATIO * MAXIMUM_BLOCK_WEIGHT); + }) + .for_class(DispatchClass::Operational, |weights| { + weights.max_total = Some(MAXIMUM_BLOCK_WEIGHT); + // Operational transactions have some extra reserved space, so that they + // are included even if block reached `MAXIMUM_BLOCK_WEIGHT`. + weights.reserved = Some( + MAXIMUM_BLOCK_WEIGHT - NORMAL_DISPATCH_RATIO * MAXIMUM_BLOCK_WEIGHT + ); + }) + .avg_block_initialization(AVERAGE_ON_INITIALIZE_RATIO) + .build_or_panic(); + pub const SS58Prefix: u8 = 2; +} + +impl frame_system::Config for Runtime { + type AccountId = AccountId; + type RuntimeCall = RuntimeCall; + type Lookup = AccountIdLookup; + type Nonce = Nonce; + type Hash = Hash; + type Hashing = BlakeTwo256; + type Block = Block; + type RuntimeEvent = RuntimeEvent; + type RuntimeOrigin = RuntimeOrigin; + type BlockHashCount = BlockHashCount; + type Version = Version; + type PalletInfo = PalletInfo; + type AccountData = (); + type OnNewAccount = (); + type OnKilledAccount = (); + type DbWeight = (); + type BaseCallFilter = frame_support::traits::Everything; + type SystemWeightInfo = (); + type BlockWeights = RuntimeBlockWeights; + type BlockLength = RuntimeBlockLength; + type SS58Prefix = SS58Prefix; + type OnSetCode = cumulus_pallet_parachain_system::ParachainSetCode; + type MaxConsumers = frame_support::traits::ConstU32<16>; +} + +parameter_types! { + // We do anything the parent chain tells us in this runtime. + pub const ReservedDmpWeight: Weight = MAXIMUM_BLOCK_WEIGHT.saturating_div(2); +} + +type ConsensusHook = cumulus_pallet_aura_ext::FixedVelocityConsensusHook< + Runtime, + RELAY_CHAIN_SLOT_DURATION_MILLIS, + BLOCK_PROCESSING_VELOCITY, + UNINCLUDED_SEGMENT_CAPACITY, +>; + +impl cumulus_pallet_parachain_system::Config for Runtime { + type RuntimeEvent = RuntimeEvent; + type OnSystemEvent = (); + type SelfParaId = parachain_info::Pallet; + type OutboundXcmpMessageSource = (); + type DmpMessageHandler = cumulus_pallet_xcm::UnlimitedDmpExecution; + type ReservedDmpWeight = ReservedDmpWeight; + type XcmpMessageHandler = (); + type ReservedXcmpWeight = (); + type CheckAssociatedRelayNumber = RelayNumberMonotonicallyIncreases; + type ConsensusHook = ConsensusHook; +} + +impl parachain_info::Config for Runtime {} + +impl cumulus_pallet_aura_ext::Config for Runtime {} + +impl pallet_timestamp::Config for Runtime { + type Moment = u64; + type OnTimestampSet = Aura; + type MinimumPeriod = ConstU64<0>; + type WeightInfo = weights::pallet_timestamp::WeightInfo; +} + +impl pallet_aura::Config for Runtime { + type AuthorityId = AuraId; + type DisabledValidators = (); + type MaxAuthorities = ConstU32<100_000>; + type AllowMultipleBlocksPerSlot = ConstBool; + #[cfg(feature = "experimental")] + type SlotDuration = ConstU64; +} + +impl pallet_glutton::Config for Runtime { + type RuntimeEvent = RuntimeEvent; + type WeightInfo = weights::pallet_glutton::WeightInfo; + type AdminOrigin = EnsureRoot; +} + +impl pallet_sudo::Config for Runtime { + type RuntimeEvent = RuntimeEvent; + type RuntimeCall = RuntimeCall; + type WeightInfo = (); +} + +construct_runtime! { + pub enum Runtime + { + System: frame_system::{Pallet, Call, Storage, Config, Event} = 0, + ParachainSystem: cumulus_pallet_parachain_system::{ + Pallet, Call, Config, Storage, Inherent, Event, ValidateUnsigned, + } = 1, + ParachainInfo: parachain_info::{Pallet, Storage, Config} = 2, + Timestamp: pallet_timestamp::{Pallet, Call, Storage, Inherent} = 3, + + // DMP handler. + CumulusXcm: cumulus_pallet_xcm::{Pallet, Call, Storage, Event, Origin} = 10, + + // The main stage. + Glutton: pallet_glutton::{Pallet, Call, Storage, Event, Config} = 20, + + // Collator support + Aura: pallet_aura::{Pallet, Storage, Config} = 30, + AuraExt: cumulus_pallet_aura_ext::{Pallet, Storage, Config} = 31, + + // Sudo. + Sudo: pallet_sudo::{Pallet, Call, Storage, Event, Config} = 255, + } +} + +/// Index of a transaction in the chain. +pub type Nonce = u32; +/// A hash of some data used by the chain. +pub type Hash = sp_core::H256; +/// An index to a block. +pub type BlockNumber = u32; +/// The address format for describing accounts. +pub type Address = sp_runtime::MultiAddress; +/// Block header type as expected by this runtime. +pub type Header = generic::Header; +/// Block type as expected by this runtime. +pub type Block = generic::Block; +/// A Block signed with a Justification +pub type SignedBlock = generic::SignedBlock; +/// BlockId type as expected by this runtime. +pub type BlockId = generic::BlockId; +/// The SignedExtension to the basic transaction logic. +pub type SignedExtra = ( + pallet_sudo::CheckOnlySudoAccount, + frame_system::CheckNonZeroSender, + frame_system::CheckSpecVersion, + frame_system::CheckTxVersion, + frame_system::CheckGenesis, + frame_system::CheckEra, + frame_system::CheckNonce, +); +/// Unchecked extrinsic type as expected by this runtime. +pub type UncheckedExtrinsic = + generic::UncheckedExtrinsic; +/// Executive: handles dispatch to the various modules. +pub type Executive = frame_executive::Executive< + Runtime, + Block, + frame_system::ChainContext, + Runtime, + AllPalletsWithSystem, +>; + +#[cfg(feature = "runtime-benchmarks")] +#[macro_use] +extern crate frame_benchmarking; + +#[cfg(feature = "runtime-benchmarks")] +mod benches { + define_benchmarks!( + [frame_system, SystemBench::] + [pallet_glutton, Glutton] + ); +} + +impl_runtime_apis! { + impl sp_api::Core for Runtime { + fn version() -> RuntimeVersion { + VERSION + } + + fn execute_block(block: Block) { + Executive::execute_block(block) + } + + fn initialize_block(header: &::Header) { + Executive::initialize_block(header) + } + } + + impl sp_api::Metadata for Runtime { + fn metadata() -> OpaqueMetadata { + OpaqueMetadata::new(Runtime::metadata().into()) + } + + fn metadata_at_version(version: u32) -> Option { + Runtime::metadata_at_version(version) + } + + fn metadata_versions() -> sp_std::vec::Vec { + Runtime::metadata_versions() + } + } + + impl sp_consensus_aura::AuraApi for Runtime { + fn slot_duration() -> sp_consensus_aura::SlotDuration { + sp_consensus_aura::SlotDuration::from_millis(SLOT_DURATION) + } + + fn authorities() -> Vec { + Aura::authorities().into_inner() + } + } + + impl cumulus_primitives_aura::AuraUnincludedSegmentApi for Runtime { + fn can_build_upon( + included_hash: ::Hash, + slot: cumulus_primitives_aura::Slot, + ) -> bool { + ConsensusHook::can_build_upon(included_hash, slot) + } + } + + impl sp_block_builder::BlockBuilder for Runtime { + fn apply_extrinsic( + extrinsic: ::Extrinsic, + ) -> ApplyExtrinsicResult { + Executive::apply_extrinsic(extrinsic) + } + + fn finalize_block() -> ::Header { + Executive::finalize_block() + } + + fn inherent_extrinsics(data: sp_inherents::InherentData) -> Vec<::Extrinsic> { + data.create_extrinsics() + } + + fn check_inherents(block: Block, data: sp_inherents::InherentData) -> sp_inherents::CheckInherentsResult { + data.check_extrinsics(&block) + } + } + + impl sp_transaction_pool::runtime_api::TaggedTransactionQueue for Runtime { + fn validate_transaction( + source: TransactionSource, + tx: ::Extrinsic, + block_hash: ::Hash, + ) -> TransactionValidity { + Executive::validate_transaction(source, tx, block_hash) + } + } + + impl sp_offchain::OffchainWorkerApi for Runtime { + fn offchain_worker(header: &::Header) { + Executive::offchain_worker(header) + } + } + + impl sp_session::SessionKeys for Runtime { + fn generate_session_keys(seed: Option>) -> Vec { + SessionKeys::generate(seed) + } + + fn decode_session_keys( + encoded: Vec, + ) -> Option, KeyTypeId)>> { + SessionKeys::decode_into_raw_public_keys(&encoded) + } + } + + impl cumulus_primitives_core::CollectCollationInfo for Runtime { + fn collect_collation_info(header: &::Header) -> cumulus_primitives_core::CollationInfo { + ParachainSystem::collect_collation_info(header) + } + } + + impl frame_system_rpc_runtime_api::AccountNonceApi for Runtime { + fn account_nonce(account: AccountId) -> Nonce { + System::account_nonce(account) + } + } + + #[cfg(feature = "runtime-benchmarks")] + impl frame_benchmarking::Benchmark for Runtime { + fn benchmark_metadata(extra: bool) -> ( + Vec, + Vec, + ) { + use frame_benchmarking::{Benchmarking, BenchmarkList}; + use frame_support::traits::StorageInfoTrait; + use frame_system_benchmarking::Pallet as SystemBench; + + let mut list = Vec::::new(); + list_benchmarks!(list, extra); + + let storage_info = AllPalletsWithSystem::storage_info(); + + (list, storage_info) + } + + fn dispatch_benchmark( + config: frame_benchmarking::BenchmarkConfig + ) -> Result, sp_runtime::RuntimeString> { + use frame_benchmarking::{Benchmarking, BenchmarkBatch, BenchmarkError}; + use sp_storage::TrackedStorageKey; + + use frame_system_benchmarking::Pallet as SystemBench; + impl frame_system_benchmarking::Config for Runtime { + fn setup_set_code_requirements(code: &sp_std::vec::Vec) -> Result<(), BenchmarkError> { + ParachainSystem::initialize_for_set_code_benchmark(code.len() as u32); + Ok(()) + } + + fn verify_set_code() { + System::assert_last_event(cumulus_pallet_parachain_system::Event::::ValidationFunctionStored.into()); + } + } + + use frame_support::traits::WhitelistedStorageKeys; + let whitelist: Vec = AllPalletsWithSystem::whitelisted_storage_keys(); + + let mut batches = Vec::::new(); + let params = (&config, &whitelist); + add_benchmarks!(params, batches); + Ok(batches) + } + } + + impl sp_genesis_builder::GenesisBuilder for Runtime { + fn create_default_config() -> Vec { + create_default_config::() + } + + fn build_config(config: Vec) -> sp_genesis_builder::Result { + build_config::(config) + } + } +} + +cumulus_pallet_parachain_system::register_validate_block! { + Runtime = Runtime, + BlockExecutor = cumulus_pallet_aura_ext::BlockExecutor::, +} diff --git a/cumulus/parachains/runtimes/glutton/glutton-kusama/src/weights/frame_system.rs b/cumulus/parachains/runtimes/glutton/glutton-kusama/src/weights/frame_system.rs new file mode 100644 index 000000000000..36c4abc40063 --- /dev/null +++ b/cumulus/parachains/runtimes/glutton/glutton-kusama/src/weights/frame_system.rs @@ -0,0 +1,155 @@ +// Copyright (C) Parity Technologies (UK) Ltd. +// This file is part of Cumulus. + +// Cumulus 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. + +// Cumulus 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 Cumulus. If not, see . + +//! Autogenerated weights for `frame_system` +//! +//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev +//! DATE: 2023-07-31, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! WORST CASE MAP SIZE: `1000000` +//! HOSTNAME: `runner-ynta1nyy-project-238-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz` +//! EXECUTION: ``, WASM-EXECUTION: `Compiled`, CHAIN: `Some("glutton-kusama-dev-1300")`, DB CACHE: 1024 + +// Executed Command: +// ./target/production/polkadot-parachain +// benchmark +// pallet +// --chain=glutton-kusama-dev-1300 +// --wasm-execution=compiled +// --pallet=frame_system +// --no-storage-info +// --no-median-slopes +// --no-min-squares +// --extrinsic=* +// --steps=50 +// --repeat=20 +// --json +// --header=./file_header.txt +// --output=./parachains/runtimes/glutton/glutton-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 `frame_system`. +pub struct WeightInfo(PhantomData); +impl frame_system::WeightInfo for WeightInfo { + /// The range of component `b` is `[0, 3932160]`. + fn remark(b: u32, ) -> Weight { + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 1_717_000 picoseconds. + Weight::from_parts(1_782_325, 0) + .saturating_add(Weight::from_parts(0, 0)) + // Standard Error: 0 + .saturating_add(Weight::from_parts(387, 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: 6_089_000 picoseconds. + Weight::from_parts(6_353_000, 0) + .saturating_add(Weight::from_parts(0, 0)) + // Standard Error: 2 + .saturating_add(Weight::from_parts(1_788, 0).saturating_mul(b.into())) + } + /// Storage: `System::Digest` (r:1 w:1) + /// Proof: `System::Digest` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: UNKNOWN KEY `0x3a686561707061676573` (r:0 w:1) + /// Proof: UNKNOWN KEY `0x3a686561707061676573` (r:0 w:1) + fn set_heap_pages() -> Weight { + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `1485` + // Minimum execution time: 3_389_000 picoseconds. + Weight::from_parts(3_605_000, 0) + .saturating_add(Weight::from_parts(0, 1485)) + .saturating_add(T::DbWeight::get().reads(1)) + .saturating_add(T::DbWeight::get().writes(2)) + } + /// Storage: `ParachainSystem::ValidationData` (r:1 w:0) + /// Proof: `ParachainSystem::ValidationData` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `ParachainSystem::UpgradeRestrictionSignal` (r:1 w:0) + /// Proof: `ParachainSystem::UpgradeRestrictionSignal` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `ParachainSystem::PendingValidationCode` (r:1 w:1) + /// Proof: `ParachainSystem::PendingValidationCode` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `ParachainSystem::HostConfiguration` (r:1 w:0) + /// Proof: `ParachainSystem::HostConfiguration` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `ParachainSystem::NewValidationCode` (r:0 w:1) + /// Proof: `ParachainSystem::NewValidationCode` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `ParachainSystem::DidSetValidationCode` (r:0 w:1) + /// Proof: `ParachainSystem::DidSetValidationCode` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + fn set_code() -> Weight { + // Proof Size summary in bytes: + // Measured: `119` + // Estimated: `1604` + // Minimum execution time: 97_701_839_000 picoseconds. + Weight::from_parts(100_104_315_000, 0) + .saturating_add(Weight::from_parts(0, 1604)) + .saturating_add(T::DbWeight::get().reads(4)) + .saturating_add(T::DbWeight::get().writes(3)) + } + /// Storage: `Skipped::Metadata` (r:0 w:0) + /// Proof: `Skipped::Metadata` (`max_values`: None, `max_size`: None, mode: `Measured`) + /// The range of component `i` is `[0, 1000]`. + fn set_storage(i: u32, ) -> Weight { + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 1_638_000 picoseconds. + Weight::from_parts(1_726_000, 0) + .saturating_add(Weight::from_parts(0, 0)) + // Standard Error: 1_886 + .saturating_add(Weight::from_parts(809_561, 0).saturating_mul(i.into())) + .saturating_add(T::DbWeight::get().writes((1_u64).saturating_mul(i.into()))) + } + /// Storage: `Skipped::Metadata` (r:0 w:0) + /// Proof: `Skipped::Metadata` (`max_values`: None, `max_size`: None, mode: `Measured`) + /// The range of component `i` is `[0, 1000]`. + fn kill_storage(i: u32, ) -> Weight { + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 1_569_000 picoseconds. + Weight::from_parts(1_690_000, 0) + .saturating_add(Weight::from_parts(0, 0)) + // Standard Error: 963 + .saturating_add(Weight::from_parts(580_145, 0).saturating_mul(i.into())) + .saturating_add(T::DbWeight::get().writes((1_u64).saturating_mul(i.into()))) + } + /// Storage: `Skipped::Metadata` (r:0 w:0) + /// Proof: `Skipped::Metadata` (`max_values`: None, `max_size`: None, mode: `Measured`) + /// The range of component `p` is `[0, 1000]`. + fn kill_prefix(p: u32, ) -> Weight { + // Proof Size summary in bytes: + // Measured: `52 + p * (69 ±0)` + // Estimated: `46 + p * (70 ±0)` + // Minimum execution time: 3_039_000 picoseconds. + Weight::from_parts(3_090_000, 0) + .saturating_add(Weight::from_parts(0, 46)) + // Standard Error: 2_007 + .saturating_add(Weight::from_parts(1_269_045, 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/cumulus/parachains/runtimes/glutton/glutton-kusama/src/weights/mod.rs b/cumulus/parachains/runtimes/glutton/glutton-kusama/src/weights/mod.rs new file mode 100644 index 000000000000..955010505d31 --- /dev/null +++ b/cumulus/parachains/runtimes/glutton/glutton-kusama/src/weights/mod.rs @@ -0,0 +1,18 @@ +// Copyright (C) Parity Technologies (UK) Ltd. +// This file is part of Cumulus. + +// Cumulus 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. + +// Cumulus 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 Cumulus. If not, see . + +pub mod pallet_glutton; +pub mod pallet_timestamp; diff --git a/cumulus/parachains/runtimes/glutton/glutton-kusama/src/weights/pallet_glutton.rs b/cumulus/parachains/runtimes/glutton/glutton-kusama/src/weights/pallet_glutton.rs new file mode 100644 index 000000000000..f278d246b33b --- /dev/null +++ b/cumulus/parachains/runtimes/glutton/glutton-kusama/src/weights/pallet_glutton.rs @@ -0,0 +1,180 @@ +// Copyright (C) Parity Technologies (UK) Ltd. +// This file is part of Cumulus. + +// Cumulus 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. + +// Cumulus 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 Cumulus. If not, see . + +//! Autogenerated weights for `pallet_glutton` +//! +//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev +//! DATE: 2023-07-31, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! WORST CASE MAP SIZE: `1000000` +//! HOSTNAME: `runner-ynta1nyy-project-238-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz` +//! EXECUTION: ``, WASM-EXECUTION: `Compiled`, CHAIN: `Some("glutton-kusama-dev-1300")`, DB CACHE: 1024 + +// Executed Command: +// ./target/production/polkadot-parachain +// benchmark +// pallet +// --chain=glutton-kusama-dev-1300 +// --wasm-execution=compiled +// --pallet=pallet_glutton +// --no-storage-info +// --no-median-slopes +// --no-min-squares +// --extrinsic=* +// --steps=50 +// --repeat=20 +// --json +// --header=./file_header.txt +// --output=./parachains/runtimes/glutton/glutton-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_glutton`. +pub struct WeightInfo(PhantomData); +impl pallet_glutton::WeightInfo for WeightInfo { + /// Storage: `Glutton::TrashDataCount` (r:1 w:1) + /// Proof: `Glutton::TrashDataCount` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`) + /// Storage: `Glutton::TrashData` (r:0 w:1000) + /// Proof: `Glutton::TrashData` (`max_values`: Some(65000), `max_size`: Some(1036), added: 3016, mode: `MaxEncodedLen`) + /// The range of component `n` is `[0, 1000]`. + fn initialize_pallet_grow(n: u32, ) -> Weight { + // Proof Size summary in bytes: + // Measured: `87` + // Estimated: `1489` + // Minimum execution time: 8_925_000 picoseconds. + Weight::from_parts(9_186_000, 0) + .saturating_add(Weight::from_parts(0, 1489)) + // Standard Error: 3_091 + .saturating_add(Weight::from_parts(9_666_196, 0).saturating_mul(n.into())) + .saturating_add(T::DbWeight::get().reads(1)) + .saturating_add(T::DbWeight::get().writes(1)) + .saturating_add(T::DbWeight::get().writes((1_u64).saturating_mul(n.into()))) + } + /// Storage: `Glutton::TrashDataCount` (r:1 w:1) + /// Proof: `Glutton::TrashDataCount` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`) + /// Storage: `Glutton::TrashData` (r:0 w:1000) + /// Proof: `Glutton::TrashData` (`max_values`: Some(65000), `max_size`: Some(1036), added: 3016, mode: `MaxEncodedLen`) + /// The range of component `n` is `[0, 1000]`. + fn initialize_pallet_shrink(n: u32, ) -> Weight { + // Proof Size summary in bytes: + // Measured: `120` + // Estimated: `1489` + // Minimum execution time: 8_924_000 picoseconds. + Weight::from_parts(8_963_000, 0) + .saturating_add(Weight::from_parts(0, 1489)) + // Standard Error: 1_202 + .saturating_add(Weight::from_parts(1_139_080, 0).saturating_mul(n.into())) + .saturating_add(T::DbWeight::get().reads(1)) + .saturating_add(T::DbWeight::get().writes(1)) + .saturating_add(T::DbWeight::get().writes((1_u64).saturating_mul(n.into()))) + } + /// The range of component `i` is `[0, 100000]`. + fn waste_ref_time_iter(i: u32, ) -> Weight { + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 708_000 picoseconds. + Weight::from_parts(1_698_031, 0) + .saturating_add(Weight::from_parts(0, 0)) + // Standard Error: 12 + .saturating_add(Weight::from_parts(106_500, 0).saturating_mul(i.into())) + } + /// Storage: `Glutton::TrashData` (r:5000 w:0) + /// Proof: `Glutton::TrashData` (`max_values`: Some(65000), `max_size`: Some(1036), added: 3016, mode: `MaxEncodedLen`) + /// The range of component `i` is `[0, 5000]`. + fn waste_proof_size_some(i: u32, ) -> Weight { + // Proof Size summary in bytes: + // Measured: `119115 + i * (1022 ±0)` + // Estimated: `990 + i * (3016 ±0)` + // Minimum execution time: 698_000 picoseconds. + Weight::from_parts(970_000, 0) + .saturating_add(Weight::from_parts(0, 990)) + // Standard Error: 4_022 + .saturating_add(Weight::from_parts(6_320_519, 0).saturating_mul(i.into())) + .saturating_add(T::DbWeight::get().reads((1_u64).saturating_mul(i.into()))) + .saturating_add(Weight::from_parts(0, 3016).saturating_mul(i.into())) + } + /// Storage: `Glutton::Storage` (r:1 w:0) + /// Proof: `Glutton::Storage` (`max_values`: Some(1), `max_size`: Some(8), added: 503, mode: `MaxEncodedLen`) + /// Storage: `Glutton::Compute` (r:1 w:0) + /// Proof: `Glutton::Compute` (`max_values`: Some(1), `max_size`: Some(8), added: 503, mode: `MaxEncodedLen`) + /// Storage: `Glutton::TrashData` (r:1737 w:0) + /// Proof: `Glutton::TrashData` (`max_values`: Some(65000), `max_size`: Some(1036), added: 3016, mode: `MaxEncodedLen`) + fn on_idle_high_proof_waste() -> Weight { + // Proof Size summary in bytes: + // Measured: `1900498` + // Estimated: `5239782` + // Minimum execution time: 100_079_897_000 picoseconds. + Weight::from_parts(100_515_306_000, 0) + .saturating_add(Weight::from_parts(0, 5239782)) + .saturating_add(T::DbWeight::get().reads(1739)) + } + /// Storage: `Glutton::Storage` (r:1 w:0) + /// Proof: `Glutton::Storage` (`max_values`: Some(1), `max_size`: Some(8), added: 503, mode: `MaxEncodedLen`) + /// Storage: `Glutton::Compute` (r:1 w:0) + /// Proof: `Glutton::Compute` (`max_values`: Some(1), `max_size`: Some(8), added: 503, mode: `MaxEncodedLen`) + /// Storage: `Glutton::TrashData` (r:5 w:0) + /// Proof: `Glutton::TrashData` (`max_values`: Some(65000), `max_size`: Some(1036), added: 3016, mode: `MaxEncodedLen`) + fn on_idle_low_proof_waste() -> Weight { + // Proof Size summary in bytes: + // Measured: `9548` + // Estimated: `16070` + // Minimum execution time: 100_237_009_000 picoseconds. + Weight::from_parts(100_472_213_000, 0) + .saturating_add(Weight::from_parts(0, 16070)) + .saturating_add(T::DbWeight::get().reads(7)) + } + /// Storage: `Glutton::Storage` (r:1 w:0) + /// Proof: `Glutton::Storage` (`max_values`: Some(1), `max_size`: Some(8), added: 503, mode: `MaxEncodedLen`) + /// Storage: `Glutton::Compute` (r:1 w:0) + /// Proof: `Glutton::Compute` (`max_values`: Some(1), `max_size`: Some(8), added: 503, mode: `MaxEncodedLen`) + fn empty_on_idle() -> Weight { + // Proof Size summary in bytes: + // Measured: `87` + // Estimated: `1493` + // Minimum execution time: 5_120_000 picoseconds. + Weight::from_parts(5_262_000, 0) + .saturating_add(Weight::from_parts(0, 1493)) + .saturating_add(T::DbWeight::get().reads(2)) + } + /// Storage: `Glutton::Compute` (r:0 w:1) + /// Proof: `Glutton::Compute` (`max_values`: Some(1), `max_size`: Some(8), added: 503, mode: `MaxEncodedLen`) + fn set_compute() -> Weight { + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 5_947_000 picoseconds. + Weight::from_parts(6_171_000, 0) + .saturating_add(Weight::from_parts(0, 0)) + .saturating_add(T::DbWeight::get().writes(1)) + } + /// Storage: `Glutton::Storage` (r:0 w:1) + /// Proof: `Glutton::Storage` (`max_values`: Some(1), `max_size`: Some(8), added: 503, mode: `MaxEncodedLen`) + fn set_storage() -> Weight { + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 5_964_000 picoseconds. + Weight::from_parts(6_166_000, 0) + .saturating_add(Weight::from_parts(0, 0)) + .saturating_add(T::DbWeight::get().writes(1)) + } +} diff --git a/cumulus/parachains/runtimes/glutton/glutton-kusama/src/weights/pallet_timestamp.rs b/cumulus/parachains/runtimes/glutton/glutton-kusama/src/weights/pallet_timestamp.rs new file mode 100644 index 000000000000..8edae065f1b9 --- /dev/null +++ b/cumulus/parachains/runtimes/glutton/glutton-kusama/src/weights/pallet_timestamp.rs @@ -0,0 +1,75 @@ +// Copyright Parity Technologies (UK) Ltd. +// This file is part of Cumulus. + +// Cumulus 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. + +// Cumulus 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 Cumulus. If not, see . + +//! Autogenerated weights for `pallet_timestamp` +//! +//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev +//! DATE: 2023-07-31, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! WORST CASE MAP SIZE: `1000000` +//! HOSTNAME: `runner-ynta1nyy-project-238-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz` +//! EXECUTION: ``, WASM-EXECUTION: `Compiled`, CHAIN: `Some("asset-hub-kusama-dev")`, DB CACHE: 1024 + +// Executed Command: +// ./target/production/polkadot-parachain +// benchmark +// pallet +// --chain=asset-hub-kusama-dev +// --wasm-execution=compiled +// --pallet=pallet_timestamp +// --no-storage-info +// --no-median-slopes +// --no-min-squares +// --extrinsic=* +// --steps=50 +// --repeat=20 +// --json +// --header=./file_header.txt +// --output=./parachains/runtimes/assets/asset-hub-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_timestamp`. +pub struct WeightInfo(PhantomData); +impl pallet_timestamp::WeightInfo for WeightInfo { + /// Storage: `Timestamp::Now` (r:1 w:1) + /// Proof: `Timestamp::Now` (`max_values`: Some(1), `max_size`: Some(8), added: 503, mode: `MaxEncodedLen`) + /// Storage: `Aura::CurrentSlot` (r:1 w:0) + /// Proof: `Aura::CurrentSlot` (`max_values`: Some(1), `max_size`: Some(8), added: 503, mode: `MaxEncodedLen`) + fn set() -> Weight { + // Proof Size summary in bytes: + // Measured: `86` + // Estimated: `1493` + // Minimum execution time: 9_313_000 picoseconds. + Weight::from_parts(9_775_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: `57` + // Estimated: `0` + // Minimum execution time: 3_322_000 picoseconds. + Weight::from_parts(3_577_000, 0) + .saturating_add(Weight::from_parts(0, 0)) + } +} diff --git a/cumulus/parachains/runtimes/glutton/glutton-kusama/src/xcm_config.rs b/cumulus/parachains/runtimes/glutton/glutton-kusama/src/xcm_config.rs new file mode 100644 index 000000000000..fb7b78b79d2a --- /dev/null +++ b/cumulus/parachains/runtimes/glutton/glutton-kusama/src/xcm_config.rs @@ -0,0 +1,92 @@ +// 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::{ + AccountId, AllPalletsWithSystem, ParachainInfo, Runtime, RuntimeCall, RuntimeEvent, + RuntimeOrigin, +}; +use frame_support::{ + match_types, parameter_types, + traits::{Everything, Nothing}, + weights::Weight, +}; +use xcm::latest::prelude::*; +use xcm_builder::{ + AllowExplicitUnpaidExecutionFrom, FixedWeightBounds, ParentAsSuperuser, ParentIsPreset, + SovereignSignedViaLocation, +}; + +parameter_types! { + pub const KusamaLocation: MultiLocation = MultiLocation::parent(); + pub const KusamaNetwork: Option = Some(NetworkId::Kusama); + pub UniversalLocation: InteriorMultiLocation = X1(Parachain(ParachainInfo::parachain_id().into())); +} + +/// This is the type we use to convert an (incoming) XCM origin into a local `Origin` instance, +/// ready for dispatching a transaction with Xcm's `Transact`. There is an `OriginKind` which can +/// bias the kind of local `Origin` it will become. +pub type XcmOriginToTransactDispatchOrigin = ( + // Sovereign account converter; this attempts to derive an `AccountId` from the origin location + // using `LocationToAccountId` and then turn that into the usual `Signed` origin. Useful for + // foreign chains who want to have a local sovereign account on this chain which they control. + SovereignSignedViaLocation, RuntimeOrigin>, + // Superuser converter for the Relay-chain (Parent) location. This will allow it to issue a + // transaction from the Root origin. + ParentAsSuperuser, +); + +match_types! { + pub type JustTheParent: impl Contains = { MultiLocation { parents:1, interior: Here } }; +} + +parameter_types! { + // One XCM operation is 1_000_000_000 weight - almost certainly a conservative estimate. + pub UnitWeightCost: Weight = Weight::from_parts(1_000_000_000, 64 * 1024); + pub const MaxInstructions: u32 = 100; + pub const MaxAssetsIntoHolding: u32 = 64; +} + +pub struct XcmConfig; +impl xcm_executor::Config for XcmConfig { + type RuntimeCall = RuntimeCall; + type XcmSender = (); // sending XCM not supported + type AssetTransactor = (); // balances not supported + type OriginConverter = XcmOriginToTransactDispatchOrigin; + type IsReserve = (); // balances not supported + type IsTeleporter = (); // balances not supported + type UniversalLocation = UniversalLocation; + type Barrier = AllowExplicitUnpaidExecutionFrom; + type Weigher = FixedWeightBounds; // balances not supported + type Trader = (); // balances not supported + type ResponseHandler = (); // Don't handle responses for now. + type AssetTrap = (); // don't trap for now + type AssetClaims = (); // don't claim for now + type SubscriptionService = (); // don't handle subscriptions for now + type PalletInstancesInfo = AllPalletsWithSystem; + type MaxAssetsIntoHolding = MaxAssetsIntoHolding; + type AssetLocker = (); + type AssetExchanger = (); + type FeeManager = (); + type MessageExporter = (); + type UniversalAliases = Nothing; + type CallDispatcher = RuntimeCall; + type SafeCallFilter = Everything; + type Aliasers = Nothing; +} + +impl cumulus_pallet_xcm::Config for Runtime { + type RuntimeEvent = RuntimeEvent; + type XcmExecutor = xcm_executor::XcmExecutor; +} diff --git a/cumulus/polkadot-parachain/Cargo.toml b/cumulus/polkadot-parachain/Cargo.toml index bc1f4d994813..b7bda327a2df 100644 --- a/cumulus/polkadot-parachain/Cargo.toml +++ b/cumulus/polkadot-parachain/Cargo.toml @@ -24,12 +24,18 @@ serde_json = "1.0.107" rococo-parachain-runtime = { path = "../parachains/runtimes/testing/rococo-parachain" } shell-runtime = { path = "../parachains/runtimes/starters/shell" } glutton-westend-runtime = { path = "../parachains/runtimes/glutton/glutton-westend" } +glutton-runtime = { path = "../parachains/runtimes/glutton/glutton-kusama" } seedling-runtime = { path = "../parachains/runtimes/starters/seedling" } +asset-hub-polkadot-runtime = { path = "../parachains/runtimes/assets/asset-hub-polkadot" } +asset-hub-kusama-runtime = { path = "../parachains/runtimes/assets/asset-hub-kusama" } asset-hub-rococo-runtime = { path = "../parachains/runtimes/assets/asset-hub-rococo" } asset-hub-westend-runtime = { path = "../parachains/runtimes/assets/asset-hub-westend" } +collectives-polkadot-runtime = { path = "../parachains/runtimes/collectives/collectives-polkadot" } collectives-westend-runtime = { path = "../parachains/runtimes/collectives/collectives-westend" } contracts-rococo-runtime = { path = "../parachains/runtimes/contracts/contracts-rococo" } bridge-hub-rococo-runtime = { path = "../parachains/runtimes/bridge-hubs/bridge-hub-rococo" } +bridge-hub-kusama-runtime = { path = "../parachains/runtimes/bridge-hubs/bridge-hub-kusama" } +bridge-hub-polkadot-runtime = { path = "../parachains/runtimes/bridge-hubs/bridge-hub-polkadot" } penpal-runtime = { path = "../parachains/runtimes/testing/penpal" } jsonrpsee = { version = "0.16.2", features = ["server"] } parachains-common = { path = "../parachains/common" } @@ -103,14 +109,20 @@ wait-timeout = "0.2" [features] default = [] runtime-benchmarks = [ +"asset-hub-kusama-runtime/runtime-benchmarks", + "asset-hub-polkadot-runtime/runtime-benchmarks", "asset-hub-rococo-runtime/runtime-benchmarks", "asset-hub-westend-runtime/runtime-benchmarks", +"bridge-hub-kusama-runtime/runtime-benchmarks", + "bridge-hub-polkadot-runtime/runtime-benchmarks", "bridge-hub-rococo-runtime/runtime-benchmarks", + "collectives-polkadot-runtime/runtime-benchmarks", "collectives-westend-runtime/runtime-benchmarks", "contracts-rococo-runtime/runtime-benchmarks", "frame-benchmarking-cli/runtime-benchmarks", "frame-benchmarking/runtime-benchmarks", "glutton-westend-runtime/runtime-benchmarks", + "glutton-runtime/runtime-benchmarks", "parachains-common/runtime-benchmarks", "penpal-runtime/runtime-benchmarks", "polkadot-cli/runtime-benchmarks", @@ -121,12 +133,18 @@ runtime-benchmarks = [ "sp-runtime/runtime-benchmarks", ] try-runtime = [ +"asset-hub-kusama-runtime/try-runtime", + "asset-hub-polkadot-runtime/try-runtime", "asset-hub-rococo-runtime/try-runtime", "asset-hub-westend-runtime/try-runtime", +"bridge-hub-kusama-runtime/try-runtime", + "bridge-hub-polkadot-runtime/try-runtime", "bridge-hub-rococo-runtime/try-runtime", + "collectives-polkadot-runtime/try-runtime", "collectives-westend-runtime/try-runtime", "contracts-rococo-runtime/try-runtime", "glutton-westend-runtime/try-runtime", + "glutton-runtime/try-runtime", "penpal-runtime/try-runtime", "polkadot-cli/try-runtime", "polkadot-service/try-runtime", diff --git a/cumulus/polkadot-parachain/src/chain_spec/asset_hubs.rs b/cumulus/polkadot-parachain/src/chain_spec/asset_hubs.rs index f59aa78adf94..636488cbfe2c 100644 --- a/cumulus/polkadot-parachain/src/chain_spec/asset_hubs.rs +++ b/cumulus/polkadot-parachain/src/chain_spec/asset_hubs.rs @@ -19,22 +19,46 @@ use crate::chain_spec::{ }; use cumulus_primitives_core::ParaId; use hex_literal::hex; -use parachains_common::{AccountId, AuraId, Balance as AssetHubBalance}; +use parachains_common::{AccountId, AssetHubPolkadotAuraId, AuraId, Balance as AssetHubBalance}; use sc_service::ChainType; use sp_core::{crypto::UncheckedInto, sr25519}; /// Specialized `ChainSpec` for the normal parachain runtime. +pub type AssetHubPolkadotChainSpec = + sc_service::GenericChainSpec; +pub type AssetHubKusamaChainSpec = + sc_service::GenericChainSpec; pub type AssetHubWestendChainSpec = sc_service::GenericChainSpec; pub type AssetHubRococoChainSpec = sc_service::GenericChainSpec; pub type AssetHubWococoChainSpec = AssetHubRococoChainSpec; +const ASSET_HUB_POLKADOT_ED: AssetHubBalance = + parachains_common::polkadot::currency::EXISTENTIAL_DEPOSIT; +const ASSET_HUB_KUSAMA_ED: AssetHubBalance = + parachains_common::kusama::currency::EXISTENTIAL_DEPOSIT; const ASSET_HUB_WESTEND_ED: AssetHubBalance = parachains_common::westend::currency::EXISTENTIAL_DEPOSIT; const ASSET_HUB_ROCOCO_ED: AssetHubBalance = parachains_common::westend::currency::EXISTENTIAL_DEPOSIT; +/// Generate the session keys from individual elements. +/// +/// The input must be a tuple of individual keys (a single arg for now since we have just one key). +pub fn asset_hub_polkadot_session_keys( + keys: AssetHubPolkadotAuraId, +) -> asset_hub_polkadot_runtime::SessionKeys { + asset_hub_polkadot_runtime::SessionKeys { aura: keys } +} + +/// Generate the session keys from individual elements. +/// +/// The input must be a tuple of individual keys (a single arg for now since we have just one key). +pub fn asset_hub_kusama_session_keys(keys: AuraId) -> asset_hub_kusama_runtime::SessionKeys { + asset_hub_kusama_runtime::SessionKeys { aura: keys } +} + /// Generate the session keys from individual elements. /// /// The input must be a tuple of individual keys (a single arg for now since we have just one key). @@ -49,6 +73,398 @@ pub fn asset_hub_westend_session_keys(keys: AuraId) -> asset_hub_westend_runtime asset_hub_westend_runtime::SessionKeys { aura: keys } } +pub fn asset_hub_polkadot_development_config() -> AssetHubPolkadotChainSpec { + let mut properties = sc_chain_spec::Properties::new(); + properties.insert("ss58Format".into(), 0.into()); + properties.insert("tokenSymbol".into(), "DOT".into()); + properties.insert("tokenDecimals".into(), 10.into()); + + AssetHubPolkadotChainSpec::from_genesis( + // Name + "Polkadot Asset Hub Development", + // ID + "asset-hub-polkadot-dev", + ChainType::Local, + move || { + asset_hub_polkadot_genesis( + // initial collators. + vec![( + get_account_id_from_seed::("Alice"), + get_collator_keys_from_seed::("Alice"), + )], + vec![ + get_account_id_from_seed::("Alice"), + get_account_id_from_seed::("Bob"), + get_account_id_from_seed::("Alice//stash"), + get_account_id_from_seed::("Bob//stash"), + ], + 1000.into(), + ) + }, + Vec::new(), + None, + None, + None, + Some(properties), + Extensions { relay_chain: "polkadot-dev".into(), para_id: 1000 }, + ) +} + +pub fn asset_hub_polkadot_local_config() -> AssetHubPolkadotChainSpec { + let mut properties = sc_chain_spec::Properties::new(); + properties.insert("ss58Format".into(), 0.into()); + properties.insert("tokenSymbol".into(), "DOT".into()); + properties.insert("tokenDecimals".into(), 10.into()); + + AssetHubPolkadotChainSpec::from_genesis( + // Name + "Polkadot Asset Hub Local", + // ID + "asset-hub-polkadot-local", + ChainType::Local, + move || { + asset_hub_polkadot_genesis( + // initial collators. + vec![ + ( + get_account_id_from_seed::("Alice"), + get_collator_keys_from_seed::("Alice"), + ), + ( + get_account_id_from_seed::("Bob"), + get_collator_keys_from_seed::("Bob"), + ), + ], + vec![ + get_account_id_from_seed::("Alice"), + get_account_id_from_seed::("Bob"), + get_account_id_from_seed::("Charlie"), + get_account_id_from_seed::("Dave"), + get_account_id_from_seed::("Eve"), + get_account_id_from_seed::("Ferdie"), + get_account_id_from_seed::("Alice//stash"), + get_account_id_from_seed::("Bob//stash"), + get_account_id_from_seed::("Charlie//stash"), + get_account_id_from_seed::("Dave//stash"), + get_account_id_from_seed::("Eve//stash"), + get_account_id_from_seed::("Ferdie//stash"), + ], + 1000.into(), + ) + }, + Vec::new(), + None, + None, + None, + Some(properties), + Extensions { relay_chain: "polkadot-local".into(), para_id: 1000 }, + ) +} + +// Not used for syncing, but just to determine the genesis values set for the upgrade from shell. +pub fn asset_hub_polkadot_config() -> AssetHubPolkadotChainSpec { + let mut properties = sc_chain_spec::Properties::new(); + properties.insert("ss58Format".into(), 0.into()); + properties.insert("tokenSymbol".into(), "DOT".into()); + properties.insert("tokenDecimals".into(), 10.into()); + + AssetHubPolkadotChainSpec::from_genesis( + // Name + "Polkadot Asset Hub", + // ID + "asset-hub-polkadot", + ChainType::Live, + move || { + asset_hub_polkadot_genesis( + // initial collators. + vec![ + ( + hex!("4c3d674d2a01060f0ded218e5dcc6f90c1726f43df79885eb3e22d97a20d5421") + .into(), + hex!("4c3d674d2a01060f0ded218e5dcc6f90c1726f43df79885eb3e22d97a20d5421") + .unchecked_into(), + ), + ( + hex!("c7d7d38d16bc23c6321152c50306212dc22c0efc04a2e52b5cccfc31ab3d7811") + .into(), + hex!("c7d7d38d16bc23c6321152c50306212dc22c0efc04a2e52b5cccfc31ab3d7811") + .unchecked_into(), + ), + ( + hex!("c5c07ba203d7375675f5c1ebe70f0a5bb729ae57b48bcc877fcc2ab21309b762") + .into(), + hex!("c5c07ba203d7375675f5c1ebe70f0a5bb729ae57b48bcc877fcc2ab21309b762") + .unchecked_into(), + ), + ( + hex!("0b2d0013fb974794bd7aa452465b567d48ef70373fe231a637c1fb7c547e85b3") + .into(), + hex!("0b2d0013fb974794bd7aa452465b567d48ef70373fe231a637c1fb7c547e85b3") + .unchecked_into(), + ), + ], + vec![], + 1000u32.into(), + ) + }, + vec![ + "/ip4/34.65.251.121/tcp/30334/p2p/12D3KooWG3GrM6XKMM4gp3cvemdwUvu96ziYoJmqmetLZBXE8bSa".parse().unwrap(), + "/ip4/34.65.35.228/tcp/30334/p2p/12D3KooWMRyTLrCEPcAQD6c4EnudL3vVzg9zji3whvsMYPUYevpq".parse().unwrap(), + "/ip4/34.83.247.146/tcp/30334/p2p/12D3KooWE4jFh5FpJDkWVZhnWtFnbSqRhdjvC7Dp9b8b3FTuubQC".parse().unwrap(), + "/ip4/104.199.117.230/tcp/30334/p2p/12D3KooWG9R8pVXKumVo2rdkeVD4j5PVhRTqmYgLHY3a4yPYgLqM".parse().unwrap(), + ], + None, + None, + None, + Some(properties), + Extensions { relay_chain: "polkadot".into(), para_id: 1000 }, + ) +} + +fn asset_hub_polkadot_genesis( + invulnerables: Vec<(AccountId, AssetHubPolkadotAuraId)>, + endowed_accounts: Vec, + id: ParaId, +) -> asset_hub_polkadot_runtime::RuntimeGenesisConfig { + asset_hub_polkadot_runtime::RuntimeGenesisConfig { + system: asset_hub_polkadot_runtime::SystemConfig { + code: asset_hub_polkadot_runtime::WASM_BINARY + .expect("WASM binary was not build, please build it!") + .to_vec(), + ..Default::default() + }, + balances: asset_hub_polkadot_runtime::BalancesConfig { + balances: endowed_accounts + .iter() + .cloned() + .map(|k| (k, ASSET_HUB_POLKADOT_ED * 4096)) + .collect(), + }, + parachain_info: asset_hub_polkadot_runtime::ParachainInfoConfig { + parachain_id: id, + ..Default::default() + }, + collator_selection: asset_hub_polkadot_runtime::CollatorSelectionConfig { + invulnerables: invulnerables.iter().cloned().map(|(acc, _)| acc).collect(), + candidacy_bond: ASSET_HUB_POLKADOT_ED * 16, + ..Default::default() + }, + session: asset_hub_polkadot_runtime::SessionConfig { + keys: invulnerables + .into_iter() + .map(|(acc, aura)| { + ( + acc.clone(), // account id + acc, // validator id + asset_hub_polkadot_session_keys(aura), // session keys + ) + }) + .collect(), + }, + // no need to pass anything to aura, in fact it will panic if we do. Session will take care + // of this. + aura: Default::default(), + aura_ext: Default::default(), + parachain_system: Default::default(), + polkadot_xcm: asset_hub_polkadot_runtime::PolkadotXcmConfig { + safe_xcm_version: Some(SAFE_XCM_VERSION), + ..Default::default() + }, + } +} + +pub fn asset_hub_kusama_development_config() -> AssetHubKusamaChainSpec { + let mut properties = sc_chain_spec::Properties::new(); + properties.insert("ss58Format".into(), 2.into()); + properties.insert("tokenSymbol".into(), "KSM".into()); + properties.insert("tokenDecimals".into(), 12.into()); + + AssetHubKusamaChainSpec::from_genesis( + // Name + "Kusama Asset Hub Development", + // ID + "asset-hub-kusama-dev", + ChainType::Local, + move || { + asset_hub_kusama_genesis( + // initial collators. + vec![( + get_account_id_from_seed::("Alice"), + get_collator_keys_from_seed::("Alice"), + )], + vec![ + get_account_id_from_seed::("Alice"), + get_account_id_from_seed::("Bob"), + get_account_id_from_seed::("Alice//stash"), + get_account_id_from_seed::("Bob//stash"), + ], + 1000.into(), + ) + }, + Vec::new(), + None, + None, + None, + Some(properties), + Extensions { relay_chain: "kusama-dev".into(), para_id: 1000 }, + ) +} + +pub fn asset_hub_kusama_local_config() -> AssetHubKusamaChainSpec { + let mut properties = sc_chain_spec::Properties::new(); + properties.insert("ss58Format".into(), 2.into()); + properties.insert("tokenSymbol".into(), "KSM".into()); + properties.insert("tokenDecimals".into(), 12.into()); + + AssetHubKusamaChainSpec::from_genesis( + // Name + "Kusama Asset Hub Local", + // ID + "asset-hub-kusama-local", + ChainType::Local, + move || { + asset_hub_kusama_genesis( + // initial collators. + vec![ + ( + get_account_id_from_seed::("Alice"), + get_collator_keys_from_seed::("Alice"), + ), + ( + get_account_id_from_seed::("Bob"), + get_collator_keys_from_seed::("Bob"), + ), + ], + vec![ + get_account_id_from_seed::("Alice"), + get_account_id_from_seed::("Bob"), + get_account_id_from_seed::("Charlie"), + get_account_id_from_seed::("Dave"), + get_account_id_from_seed::("Eve"), + get_account_id_from_seed::("Ferdie"), + get_account_id_from_seed::("Alice//stash"), + get_account_id_from_seed::("Bob//stash"), + get_account_id_from_seed::("Charlie//stash"), + get_account_id_from_seed::("Dave//stash"), + get_account_id_from_seed::("Eve//stash"), + get_account_id_from_seed::("Ferdie//stash"), + ], + 1000.into(), + ) + }, + Vec::new(), + None, + None, + None, + Some(properties), + Extensions { relay_chain: "kusama-local".into(), para_id: 1000 }, + ) +} + +pub fn asset_hub_kusama_config() -> AssetHubKusamaChainSpec { + let mut properties = sc_chain_spec::Properties::new(); + properties.insert("ss58Format".into(), 2.into()); + properties.insert("tokenSymbol".into(), "KSM".into()); + properties.insert("tokenDecimals".into(), 12.into()); + + AssetHubKusamaChainSpec::from_genesis( + // Name + "Kusama Asset Hub", + // ID + "asset-hub-kusama", + ChainType::Live, + move || { + asset_hub_kusama_genesis( + // initial collators. + vec![ + ( + hex!("50673d59020488a4ffc9d8c6de3062a65977046e6990915617f85fef6d349730") + .into(), + hex!("50673d59020488a4ffc9d8c6de3062a65977046e6990915617f85fef6d349730") + .unchecked_into(), + ), + ( + hex!("fe8102dbc244e7ea2babd9f53236d67403b046154370da5c3ea99def0bd0747a") + .into(), + hex!("fe8102dbc244e7ea2babd9f53236d67403b046154370da5c3ea99def0bd0747a") + .unchecked_into(), + ), + ( + hex!("38144b5398e5d0da5ec936a3af23f5a96e782f676ab19d45f29075ee92eca76a") + .into(), + hex!("38144b5398e5d0da5ec936a3af23f5a96e782f676ab19d45f29075ee92eca76a") + .unchecked_into(), + ), + ( + hex!("3253947640e309120ae70fa458dcacb915e2ddd78f930f52bd3679ec63fc4415") + .into(), + hex!("3253947640e309120ae70fa458dcacb915e2ddd78f930f52bd3679ec63fc4415") + .unchecked_into(), + ), + ], + Vec::new(), + 1000.into(), + ) + }, + Vec::new(), + None, + None, + None, + Some(properties), + Extensions { relay_chain: "kusama".into(), para_id: 1000 }, + ) +} + +fn asset_hub_kusama_genesis( + invulnerables: Vec<(AccountId, AuraId)>, + endowed_accounts: Vec, + id: ParaId, +) -> asset_hub_kusama_runtime::RuntimeGenesisConfig { + asset_hub_kusama_runtime::RuntimeGenesisConfig { + system: asset_hub_kusama_runtime::SystemConfig { + code: asset_hub_kusama_runtime::WASM_BINARY + .expect("WASM binary was not build, please build it!") + .to_vec(), + ..Default::default() + }, + balances: asset_hub_kusama_runtime::BalancesConfig { + balances: endowed_accounts + .iter() + .cloned() + .map(|k| (k, ASSET_HUB_KUSAMA_ED * 524_288)) + .collect(), + }, + parachain_info: asset_hub_kusama_runtime::ParachainInfoConfig { + parachain_id: id, + ..Default::default() + }, + collator_selection: asset_hub_kusama_runtime::CollatorSelectionConfig { + invulnerables: invulnerables.iter().cloned().map(|(acc, _)| acc).collect(), + candidacy_bond: ASSET_HUB_KUSAMA_ED * 16, + ..Default::default() + }, + session: asset_hub_kusama_runtime::SessionConfig { + keys: invulnerables + .into_iter() + .map(|(acc, aura)| { + ( + acc.clone(), // account id + acc, // validator id + asset_hub_kusama_session_keys(aura), // session keys + ) + }) + .collect(), + }, + aura: Default::default(), + aura_ext: Default::default(), + parachain_system: Default::default(), + polkadot_xcm: asset_hub_kusama_runtime::PolkadotXcmConfig { + safe_xcm_version: Some(SAFE_XCM_VERSION), + ..Default::default() + }, + } +} + pub fn asset_hub_westend_development_config() -> AssetHubWestendChainSpec { let mut properties = sc_chain_spec::Properties::new(); properties.insert("tokenSymbol".into(), "WND".into()); diff --git a/cumulus/polkadot-parachain/src/chain_spec/bridge_hubs.rs b/cumulus/polkadot-parachain/src/chain_spec/bridge_hubs.rs index 2d5985020365..82bfc0336cbc 100644 --- a/cumulus/polkadot-parachain/src/chain_spec/bridge_hubs.rs +++ b/cumulus/polkadot-parachain/src/chain_spec/bridge_hubs.rs @@ -32,6 +32,17 @@ pub enum BridgeHubRuntimeType { Wococo, WococoLocal, + Kusama, + KusamaLocal, + // used by benchmarks + KusamaDevelopment, + + Polkadot, + PolkadotLocal, + // used by benchmarks + PolkadotDevelopment, + + // used with kusama runtime Westend, } @@ -40,6 +51,13 @@ impl FromStr for BridgeHubRuntimeType { fn from_str(value: &str) -> Result { match value { + polkadot::BRIDGE_HUB_POLKADOT => Ok(BridgeHubRuntimeType::Polkadot), + polkadot::BRIDGE_HUB_POLKADOT_LOCAL => Ok(BridgeHubRuntimeType::PolkadotLocal), + polkadot::BRIDGE_HUB_POLKADOT_DEVELOPMENT => + Ok(BridgeHubRuntimeType::PolkadotDevelopment), + kusama::BRIDGE_HUB_KUSAMA => Ok(BridgeHubRuntimeType::Kusama), + kusama::BRIDGE_HUB_KUSAMA_LOCAL => Ok(BridgeHubRuntimeType::KusamaLocal), + kusama::BRIDGE_HUB_KUSAMA_DEVELOPMENT => Ok(BridgeHubRuntimeType::KusamaDevelopment), westend::BRIDGE_HUB_WESTEND => Ok(BridgeHubRuntimeType::Westend), rococo::BRIDGE_HUB_ROCOCO => Ok(BridgeHubRuntimeType::Rococo), rococo::BRIDGE_HUB_ROCOCO_LOCAL => Ok(BridgeHubRuntimeType::RococoLocal), @@ -56,6 +74,14 @@ impl BridgeHubRuntimeType { pub fn chain_spec_from_json_file(&self, path: PathBuf) -> Result, String> { match self { + BridgeHubRuntimeType::Polkadot | + BridgeHubRuntimeType::PolkadotLocal | + BridgeHubRuntimeType::PolkadotDevelopment => + Ok(Box::new(polkadot::BridgeHubChainSpec::from_json_file(path)?)), + BridgeHubRuntimeType::Kusama | + BridgeHubRuntimeType::KusamaLocal | + BridgeHubRuntimeType::KusamaDevelopment => + Ok(Box::new(kusama::BridgeHubChainSpec::from_json_file(path)?)), BridgeHubRuntimeType::Westend => Ok(Box::new(westend::BridgeHubChainSpec::from_json_file(path)?)), BridgeHubRuntimeType::Rococo | @@ -69,6 +95,38 @@ impl BridgeHubRuntimeType { pub fn load_config(&self) -> Result, String> { match self { + BridgeHubRuntimeType::Polkadot => + Ok(Box::new(polkadot::BridgeHubChainSpec::from_json_bytes( + &include_bytes!("../../chain-specs/bridge-hub-polkadot.json")[..], + )?)), + BridgeHubRuntimeType::PolkadotLocal => Ok(Box::new(polkadot::local_config( + polkadot::BRIDGE_HUB_POLKADOT_LOCAL, + "Polkadot BridgeHub Local", + "polkadot-local", + ParaId::new(1002), + ))), + BridgeHubRuntimeType::PolkadotDevelopment => Ok(Box::new(polkadot::local_config( + polkadot::BRIDGE_HUB_POLKADOT_DEVELOPMENT, + "Polkadot BridgeHub Development", + "polkadot-dev", + ParaId::new(1002), + ))), + BridgeHubRuntimeType::Kusama => + Ok(Box::new(kusama::BridgeHubChainSpec::from_json_bytes( + &include_bytes!("../../chain-specs/bridge-hub-kusama.json")[..], + )?)), + BridgeHubRuntimeType::KusamaLocal => Ok(Box::new(kusama::local_config( + kusama::BRIDGE_HUB_KUSAMA_LOCAL, + "Kusama BridgeHub Local", + "kusama-local", + ParaId::new(1003), + ))), + BridgeHubRuntimeType::KusamaDevelopment => Ok(Box::new(kusama::local_config( + kusama::BRIDGE_HUB_KUSAMA_DEVELOPMENT, + "Kusama BridgeHub Development", + "kusama-dev", + ParaId::new(1003), + ))), BridgeHubRuntimeType::Westend => unimplemented!("TODO: fix BridgeHubWestend: https://github.com/paritytech/parity-bridges-common/issues/2602"), BridgeHubRuntimeType::Rococo => Ok(Box::new(rococo::BridgeHubChainSpec::from_json_bytes( @@ -299,7 +357,136 @@ pub mod wococo { } } -/// Sub-module for Westend setup +/// Sub-module for Kusama setup +pub mod kusama { + use super::{BridgeHubBalance, ParaId}; + use crate::chain_spec::{ + get_account_id_from_seed, get_collator_keys_from_seed, Extensions, SAFE_XCM_VERSION, + }; + use parachains_common::{AccountId, AuraId}; + use sc_chain_spec::ChainType; + use sp_core::sr25519; + + pub(crate) const BRIDGE_HUB_KUSAMA: &str = "bridge-hub-kusama"; + pub(crate) const BRIDGE_HUB_KUSAMA_LOCAL: &str = "bridge-hub-kusama-local"; + pub(crate) const BRIDGE_HUB_KUSAMA_DEVELOPMENT: &str = "bridge-hub-kusama-dev"; + const BRIDGE_HUB_KUSAMA_ED: BridgeHubBalance = + parachains_common::kusama::currency::EXISTENTIAL_DEPOSIT; + + /// Specialized `ChainSpec` for the normal parachain runtime. + pub type BridgeHubChainSpec = + sc_service::GenericChainSpec; + pub type RuntimeApi = bridge_hub_kusama_runtime::RuntimeApi; + + pub fn local_config( + id: &str, + chain_name: &str, + relay_chain: &str, + para_id: ParaId, + ) -> BridgeHubChainSpec { + let mut properties = sc_chain_spec::Properties::new(); + properties.insert("ss58Format".into(), 2.into()); + properties.insert("tokenSymbol".into(), "KSM".into()); + properties.insert("tokenDecimals".into(), 12.into()); + + BridgeHubChainSpec::from_genesis( + // Name + chain_name, + // ID + super::ensure_id(id).expect("invalid id"), + ChainType::Local, + move || { + genesis( + // initial collators. + vec![ + ( + get_account_id_from_seed::("Alice"), + get_collator_keys_from_seed::("Alice"), + ), + ( + get_account_id_from_seed::("Bob"), + get_collator_keys_from_seed::("Bob"), + ), + ], + vec![ + get_account_id_from_seed::("Alice"), + get_account_id_from_seed::("Bob"), + get_account_id_from_seed::("Charlie"), + get_account_id_from_seed::("Dave"), + get_account_id_from_seed::("Eve"), + get_account_id_from_seed::("Ferdie"), + get_account_id_from_seed::("Alice//stash"), + get_account_id_from_seed::("Bob//stash"), + get_account_id_from_seed::("Charlie//stash"), + get_account_id_from_seed::("Dave//stash"), + get_account_id_from_seed::("Eve//stash"), + get_account_id_from_seed::("Ferdie//stash"), + ], + para_id, + ) + }, + Vec::new(), + None, + None, + None, + Some(properties), + Extensions { relay_chain: relay_chain.to_string(), para_id: para_id.into() }, + ) + } + + fn genesis( + invulnerables: Vec<(AccountId, AuraId)>, + endowed_accounts: Vec, + id: ParaId, + ) -> bridge_hub_kusama_runtime::RuntimeGenesisConfig { + bridge_hub_kusama_runtime::RuntimeGenesisConfig { + system: bridge_hub_kusama_runtime::SystemConfig { + code: bridge_hub_kusama_runtime::WASM_BINARY + .expect("WASM binary was not build, please build it!") + .to_vec(), + ..Default::default() + }, + balances: bridge_hub_kusama_runtime::BalancesConfig { + balances: endowed_accounts + .iter() + .cloned() + .map(|k| (k, BRIDGE_HUB_KUSAMA_ED * 524_288)) + .collect(), + }, + parachain_info: bridge_hub_kusama_runtime::ParachainInfoConfig { + parachain_id: id, + ..Default::default() + }, + collator_selection: bridge_hub_kusama_runtime::CollatorSelectionConfig { + invulnerables: invulnerables.iter().cloned().map(|(acc, _)| acc).collect(), + candidacy_bond: BRIDGE_HUB_KUSAMA_ED * 16, + ..Default::default() + }, + session: bridge_hub_kusama_runtime::SessionConfig { + keys: invulnerables + .into_iter() + .map(|(acc, aura)| { + ( + acc.clone(), // account id + acc, // validator id + bridge_hub_kusama_runtime::SessionKeys { aura }, // session keys + ) + }) + .collect(), + }, + aura: Default::default(), + aura_ext: Default::default(), + parachain_system: Default::default(), + polkadot_xcm: bridge_hub_kusama_runtime::PolkadotXcmConfig { + safe_xcm_version: Some(SAFE_XCM_VERSION), + ..Default::default() + }, + } + } +} + +/// Sub-module for Westend setup - unimplemented +/// See https://github.com/paritytech/parity-bridges-common/issues/2602 pub mod westend { use crate::chain_spec::bridge_hubs::rococo; @@ -307,3 +494,131 @@ pub mod westend { pub type BridgeHubChainSpec = rococo::BridgeHubChainSpec; pub type RuntimeApi = bridge_hub_rococo_runtime::RuntimeApi; } + +/// Sub-module for Polkadot setup +pub mod polkadot { + use super::{BridgeHubBalance, ParaId}; + use crate::chain_spec::{ + get_account_id_from_seed, get_collator_keys_from_seed, Extensions, SAFE_XCM_VERSION, + }; + use parachains_common::{AccountId, AuraId}; + use sc_chain_spec::ChainType; + use sp_core::sr25519; + + pub(crate) const BRIDGE_HUB_POLKADOT: &str = "bridge-hub-polkadot"; + pub(crate) const BRIDGE_HUB_POLKADOT_LOCAL: &str = "bridge-hub-polkadot-local"; + pub(crate) const BRIDGE_HUB_POLKADOT_DEVELOPMENT: &str = "bridge-hub-polkadot-dev"; + const BRIDGE_HUB_POLKADOT_ED: BridgeHubBalance = + parachains_common::polkadot::currency::EXISTENTIAL_DEPOSIT; + + /// Specialized `ChainSpec` for the normal parachain runtime. + pub type BridgeHubChainSpec = + sc_service::GenericChainSpec; + pub type RuntimeApi = bridge_hub_polkadot_runtime::RuntimeApi; + + pub fn local_config( + id: &str, + chain_name: &str, + relay_chain: &str, + para_id: ParaId, + ) -> BridgeHubChainSpec { + let mut properties = sc_chain_spec::Properties::new(); + properties.insert("ss58Format".into(), 0.into()); + properties.insert("tokenSymbol".into(), "DOT".into()); + properties.insert("tokenDecimals".into(), 10.into()); + + BridgeHubChainSpec::from_genesis( + // Name + chain_name, + // ID + super::ensure_id(id).expect("invalid id"), + ChainType::Local, + move || { + genesis( + // initial collators. + vec![ + ( + get_account_id_from_seed::("Alice"), + get_collator_keys_from_seed::("Alice"), + ), + ( + get_account_id_from_seed::("Bob"), + get_collator_keys_from_seed::("Bob"), + ), + ], + vec![ + get_account_id_from_seed::("Alice"), + get_account_id_from_seed::("Bob"), + get_account_id_from_seed::("Charlie"), + get_account_id_from_seed::("Dave"), + get_account_id_from_seed::("Eve"), + get_account_id_from_seed::("Ferdie"), + get_account_id_from_seed::("Alice//stash"), + get_account_id_from_seed::("Bob//stash"), + get_account_id_from_seed::("Charlie//stash"), + get_account_id_from_seed::("Dave//stash"), + get_account_id_from_seed::("Eve//stash"), + get_account_id_from_seed::("Ferdie//stash"), + ], + para_id, + ) + }, + Vec::new(), + None, + None, + None, + Some(properties), + Extensions { relay_chain: relay_chain.to_string(), para_id: para_id.into() }, + ) + } + + fn genesis( + invulnerables: Vec<(AccountId, AuraId)>, + endowed_accounts: Vec, + id: ParaId, + ) -> bridge_hub_polkadot_runtime::RuntimeGenesisConfig { + bridge_hub_polkadot_runtime::RuntimeGenesisConfig { + system: bridge_hub_polkadot_runtime::SystemConfig { + code: bridge_hub_polkadot_runtime::WASM_BINARY + .expect("WASM binary was not build, please build it!") + .to_vec(), + ..Default::default() + }, + balances: bridge_hub_polkadot_runtime::BalancesConfig { + balances: endowed_accounts + .iter() + .cloned() + .map(|k| (k, BRIDGE_HUB_POLKADOT_ED * 4096)) + .collect(), + }, + parachain_info: bridge_hub_polkadot_runtime::ParachainInfoConfig { + parachain_id: id, + ..Default::default() + }, + collator_selection: bridge_hub_polkadot_runtime::CollatorSelectionConfig { + invulnerables: invulnerables.iter().cloned().map(|(acc, _)| acc).collect(), + candidacy_bond: BRIDGE_HUB_POLKADOT_ED * 16, + ..Default::default() + }, + session: bridge_hub_polkadot_runtime::SessionConfig { + keys: invulnerables + .into_iter() + .map(|(acc, aura)| { + ( + acc.clone(), // account id + acc, // validator id + bridge_hub_polkadot_runtime::SessionKeys { aura }, // session keys + ) + }) + .collect(), + }, + aura: Default::default(), + aura_ext: Default::default(), + parachain_system: Default::default(), + polkadot_xcm: bridge_hub_polkadot_runtime::PolkadotXcmConfig { + safe_xcm_version: Some(SAFE_XCM_VERSION), + ..Default::default() + }, + } + } +} diff --git a/cumulus/polkadot-parachain/src/chain_spec/collectives.rs b/cumulus/polkadot-parachain/src/chain_spec/collectives.rs index 48ee0bf4e968..4ca498a8260a 100644 --- a/cumulus/polkadot-parachain/src/chain_spec/collectives.rs +++ b/cumulus/polkadot-parachain/src/chain_spec/collectives.rs @@ -22,12 +22,170 @@ use parachains_common::{AccountId, AuraId, Balance as CollectivesBalance}; use sc_service::ChainType; use sp_core::sr25519; +pub type CollectivesPolkadotChainSpec = + sc_service::GenericChainSpec; pub type CollectivesWestendChainSpec = sc_service::GenericChainSpec; +const COLLECTIVES_POLKADOT_ED: CollectivesBalance = + parachains_common::polkadot::currency::EXISTENTIAL_DEPOSIT; const COLLECTIVES_WESTEND_ED: CollectivesBalance = parachains_common::westend::currency::EXISTENTIAL_DEPOSIT; +/// Generate the session keys from individual elements. +/// +/// The input must be a tuple of individual keys (a single arg for now since we have just one key). +pub fn collectives_polkadot_session_keys( + keys: AuraId, +) -> collectives_polkadot_runtime::SessionKeys { + collectives_polkadot_runtime::SessionKeys { aura: keys } +} + +pub fn collectives_polkadot_development_config() -> CollectivesPolkadotChainSpec { + let mut properties = sc_chain_spec::Properties::new(); + properties.insert("ss58Format".into(), 0.into()); + properties.insert("tokenSymbol".into(), "DOT".into()); + properties.insert("tokenDecimals".into(), 10.into()); + + CollectivesPolkadotChainSpec::from_genesis( + // Name + "Polkadot Collectives Development", + // ID + "collectives_polkadot_dev", + ChainType::Local, + move || { + collectives_polkadot_genesis( + // initial collators. + vec![( + get_account_id_from_seed::("Alice"), + get_collator_keys_from_seed::("Alice"), + )], + vec![ + get_account_id_from_seed::("Alice"), + get_account_id_from_seed::("Bob"), + get_account_id_from_seed::("Alice//stash"), + get_account_id_from_seed::("Bob//stash"), + ], + // 1002 avoids a potential collision with Kusama-1001 (Encointer) should there ever + // be a collective para on Kusama. + 1002.into(), + ) + }, + Vec::new(), + None, + None, + None, + Some(properties), + Extensions { relay_chain: "polkadot-dev".into(), para_id: 1002 }, + ) +} + +/// Collectives Polkadot Local Config. +pub fn collectives_polkadot_local_config() -> CollectivesPolkadotChainSpec { + let mut properties = sc_chain_spec::Properties::new(); + properties.insert("ss58Format".into(), 0.into()); + properties.insert("tokenSymbol".into(), "DOT".into()); + properties.insert("tokenDecimals".into(), 10.into()); + + CollectivesPolkadotChainSpec::from_genesis( + // Name + "Polkadot Collectives Local", + // ID + "collectives_polkadot_local", + ChainType::Local, + move || { + collectives_polkadot_genesis( + // initial collators. + vec![ + ( + get_account_id_from_seed::("Alice"), + get_collator_keys_from_seed::("Alice"), + ), + ( + get_account_id_from_seed::("Bob"), + get_collator_keys_from_seed::("Bob"), + ), + ], + vec![ + get_account_id_from_seed::("Alice"), + get_account_id_from_seed::("Bob"), + get_account_id_from_seed::("Charlie"), + get_account_id_from_seed::("Dave"), + get_account_id_from_seed::("Eve"), + get_account_id_from_seed::("Ferdie"), + get_account_id_from_seed::("Alice//stash"), + get_account_id_from_seed::("Bob//stash"), + get_account_id_from_seed::("Charlie//stash"), + get_account_id_from_seed::("Dave//stash"), + get_account_id_from_seed::("Eve//stash"), + get_account_id_from_seed::("Ferdie//stash"), + ], + 1002.into(), + ) + }, + Vec::new(), + None, + None, + None, + Some(properties), + Extensions { relay_chain: "polkadot-local".into(), para_id: 1002 }, + ) +} + +fn collectives_polkadot_genesis( + invulnerables: Vec<(AccountId, AuraId)>, + endowed_accounts: Vec, + id: ParaId, +) -> collectives_polkadot_runtime::RuntimeGenesisConfig { + collectives_polkadot_runtime::RuntimeGenesisConfig { + system: collectives_polkadot_runtime::SystemConfig { + code: collectives_polkadot_runtime::WASM_BINARY + .expect("WASM binary was not build, please build it!") + .to_vec(), + ..Default::default() + }, + balances: collectives_polkadot_runtime::BalancesConfig { + balances: endowed_accounts + .iter() + .cloned() + .map(|k| (k, COLLECTIVES_POLKADOT_ED * 4096)) + .collect(), + }, + parachain_info: collectives_polkadot_runtime::ParachainInfoConfig { + parachain_id: id, + ..Default::default() + }, + collator_selection: collectives_polkadot_runtime::CollatorSelectionConfig { + invulnerables: invulnerables.iter().cloned().map(|(acc, _)| acc).collect(), + candidacy_bond: COLLECTIVES_POLKADOT_ED * 16, + ..Default::default() + }, + session: collectives_polkadot_runtime::SessionConfig { + keys: invulnerables + .into_iter() + .map(|(acc, aura)| { + ( + acc.clone(), // account id + acc, // validator id + collectives_polkadot_session_keys(aura), // session keys + ) + }) + .collect(), + }, + // no need to pass anything to aura, in fact it will panic if we do. Session will take care + // of this. + aura: Default::default(), + aura_ext: Default::default(), + parachain_system: Default::default(), + polkadot_xcm: collectives_polkadot_runtime::PolkadotXcmConfig { + safe_xcm_version: Some(SAFE_XCM_VERSION), + ..Default::default() + }, + alliance: Default::default(), + alliance_motion: Default::default(), + } +} + /// Generate the session keys from individual elements. /// /// The input must be a tuple of individual keys (a single arg for now since we have just one key). diff --git a/cumulus/polkadot-parachain/src/chain_spec/glutton.rs b/cumulus/polkadot-parachain/src/chain_spec/glutton.rs index bd63ba576940..585948eb80e8 100644 --- a/cumulus/polkadot-parachain/src/chain_spec/glutton.rs +++ b/cumulus/polkadot-parachain/src/chain_spec/glutton.rs @@ -24,10 +24,110 @@ use super::get_collator_keys_from_seed; /// Specialized `ChainSpec` for the Glutton parachain runtime. pub type GluttonChainSpec = + sc_service::GenericChainSpec; +pub type GluttonWestendChainSpec = sc_service::GenericChainSpec; -pub fn glutton_westend_development_config(para_id: ParaId) -> GluttonChainSpec { +pub fn glutton_development_config(para_id: ParaId) -> GluttonChainSpec { GluttonChainSpec::from_genesis( + // Name + "Glutton Development", + // ID + "glutton_dev", + ChainType::Local, + move || glutton_genesis(para_id, vec![get_collator_keys_from_seed::("Alice")]), + Vec::new(), + None, + None, + None, + None, + Extensions { relay_chain: "kusama-dev".into(), para_id: para_id.into() }, + ) +} + +pub fn glutton_local_config(para_id: ParaId) -> GluttonChainSpec { + GluttonChainSpec::from_genesis( + // Name + "Glutton Local", + // ID + "glutton_local", + ChainType::Local, + move || { + glutton_genesis( + para_id, + vec![ + get_collator_keys_from_seed::("Alice"), + get_collator_keys_from_seed::("Bob"), + ], + ) + }, + Vec::new(), + None, + None, + None, + None, + Extensions { relay_chain: "kusama-local".into(), para_id: para_id.into() }, + ) +} + +pub fn glutton_config(para_id: ParaId) -> GluttonChainSpec { + let mut properties = sc_chain_spec::Properties::new(); + properties.insert("ss58Format".into(), 2.into()); + + GluttonChainSpec::from_genesis( + // Name + format!("Glutton {}", para_id).as_str(), + // ID + format!("glutton-kusama-{}", para_id).as_str(), + ChainType::Live, + move || { + glutton_genesis( + para_id, + vec![ + get_collator_keys_from_seed::("Alice"), + get_collator_keys_from_seed::("Bob"), + ], + ) + }, + Vec::new(), + None, + // Protocol ID + Some(format!("glutton-kusama-{}", para_id).as_str()), + None, + Some(properties), + Extensions { relay_chain: "kusama".into(), para_id: para_id.into() }, + ) +} + +fn glutton_genesis( + parachain_id: ParaId, + collators: Vec, +) -> glutton_runtime::RuntimeGenesisConfig { + glutton_runtime::RuntimeGenesisConfig { + system: glutton_runtime::SystemConfig { + code: glutton_runtime::WASM_BINARY + .expect("WASM binary was not build, please build it!") + .to_vec(), + ..Default::default() + }, + parachain_info: glutton_runtime::ParachainInfoConfig { parachain_id, ..Default::default() }, + parachain_system: Default::default(), + glutton: glutton_runtime::GluttonConfig { + compute: Default::default(), + storage: Default::default(), + trash_data_count: Default::default(), + ..Default::default() + }, + aura: glutton_runtime::AuraConfig { authorities: collators }, + aura_ext: Default::default(), + sudo: glutton_runtime::SudoConfig { + key: Some(get_account_id_from_seed::("Alice")), + }, + } +} + +pub fn glutton_westend_development_config(para_id: ParaId) -> GluttonWestendChainSpec { + GluttonWestendChainSpec::from_genesis( // Name "Glutton Development", // ID @@ -45,8 +145,8 @@ pub fn glutton_westend_development_config(para_id: ParaId) -> GluttonChainSpec { ) } -pub fn glutton_westend_local_config(para_id: ParaId) -> GluttonChainSpec { - GluttonChainSpec::from_genesis( +pub fn glutton_westend_local_config(para_id: ParaId) -> GluttonWestendChainSpec { + GluttonWestendChainSpec::from_genesis( // Name "Glutton Westend Local", // ID @@ -70,11 +170,11 @@ pub fn glutton_westend_local_config(para_id: ParaId) -> GluttonChainSpec { ) } -pub fn glutton_westend_config(para_id: ParaId) -> GluttonChainSpec { +pub fn glutton_westend_config(para_id: ParaId) -> GluttonWestendChainSpec { let mut properties = sc_chain_spec::Properties::new(); properties.insert("ss58Format".into(), 2.into()); - GluttonChainSpec::from_genesis( + GluttonWestendChainSpec::from_genesis( // Name format!("Glutton Westend {}", para_id).as_str(), // ID diff --git a/cumulus/polkadot-parachain/src/command.rs b/cumulus/polkadot-parachain/src/command.rs index ec8feb5126f4..822cf8821bec 100644 --- a/cumulus/polkadot-parachain/src/command.rs +++ b/cumulus/polkadot-parachain/src/command.rs @@ -222,6 +222,10 @@ fn load_spec(id: &str) -> std::result::Result, String> { Box::new(chain_spec::collectives::CollectivesPolkadotChainSpec::from_json_bytes( &include_bytes!("../chain-specs/collectives-polkadot.json")[..], )?), + "collectives-westend-dev" => + Box::new(chain_spec::collectives::collectives_westend_development_config()), + "collectives-westend-local" => + Box::new(chain_spec::collectives::collectives_westend_local_config()), "collectives-westend" => Box::new(chain_spec::collectives::CollectivesWestendChainSpec::from_json_bytes( &include_bytes!("../chain-specs/collectives-westend.json")[..], @@ -637,7 +641,7 @@ macro_rules! construct_async_run { { $( $code )* }.map(|v| (v, task_manager)) }) }, - Runtime::CollectivesPolkadot | Runtime::CollectivesWestend => { + Runtime::CollectivesPolkadot => { runner.async_run(|$config| { let $components = new_partial::( &$config, @@ -689,7 +693,7 @@ macro_rules! construct_async_run { }, Runtime::BridgeHub(bridge_hub_runtime_type) => { match bridge_hub_runtime_type { -chain_spec::bridge_hubs::BridgeHubRuntimeType::Polkadot | + chain_spec::bridge_hubs::BridgeHubRuntimeType::Polkadot | chain_spec::bridge_hubs::BridgeHubRuntimeType::PolkadotLocal | chain_spec::bridge_hubs::BridgeHubRuntimeType::PolkadotDevelopment => { runner.async_run(|$config| { diff --git a/cumulus/polkadot-parachain/src/service.rs b/cumulus/polkadot-parachain/src/service.rs index 58984310342b..4d39ac651588 100644 --- a/cumulus/polkadot-parachain/src/service.rs +++ b/cumulus/polkadot-parachain/src/service.rs @@ -96,6 +96,36 @@ impl sc_executor::NativeExecutionDispatch for ShellRuntimeExecutor { } } +/// Native Asset Hub Polkadot (Statemint) executor instance. +pub struct AssetHubPolkadotRuntimeExecutor; + +impl sc_executor::NativeExecutionDispatch for AssetHubPolkadotRuntimeExecutor { + type ExtendHostFunctions = frame_benchmarking::benchmarking::HostFunctions; + + fn dispatch(method: &str, data: &[u8]) -> Option> { + asset_hub_polkadot_runtime::api::dispatch(method, data) + } + + fn native_version() -> sc_executor::NativeVersion { + asset_hub_polkadot_runtime::native_version() + } +} + +/// Native Asset Hub Kusama (Statemine) executor instance. +pub struct AssetHubKusamaExecutor; + +impl sc_executor::NativeExecutionDispatch for AssetHubKusamaExecutor { + type ExtendHostFunctions = frame_benchmarking::benchmarking::HostFunctions; + + fn dispatch(method: &str, data: &[u8]) -> Option> { + asset_hub_kusama_runtime::api::dispatch(method, data) + } + + fn native_version() -> sc_executor::NativeVersion { + asset_hub_kusama_runtime::native_version() + } +} + /// Native Asset Hub Westend (Westmint) executor instance. pub struct AssetHubWestendExecutor; @@ -111,6 +141,21 @@ impl sc_executor::NativeExecutionDispatch for AssetHubWestendExecutor { } } +/// Native Polkadot Collectives executor instance. +pub struct CollectivesPolkadotRuntimeExecutor; + +impl sc_executor::NativeExecutionDispatch for CollectivesPolkadotRuntimeExecutor { + type ExtendHostFunctions = frame_benchmarking::benchmarking::HostFunctions; + + fn dispatch(method: &str, data: &[u8]) -> Option> { + collectives_polkadot_runtime::api::dispatch(method, data) + } + + fn native_version() -> sc_executor::NativeVersion { + collectives_polkadot_runtime::native_version() + } +} + /// Native Westend Collectives executor instance. pub struct CollectivesWestendRuntimeExecutor; @@ -126,6 +171,36 @@ impl sc_executor::NativeExecutionDispatch for CollectivesWestendRuntimeExecutor } } +/// Native BridgeHubPolkadot executor instance. +pub struct BridgeHubPolkadotRuntimeExecutor; + +impl sc_executor::NativeExecutionDispatch for BridgeHubPolkadotRuntimeExecutor { + type ExtendHostFunctions = frame_benchmarking::benchmarking::HostFunctions; + + fn dispatch(method: &str, data: &[u8]) -> Option> { + bridge_hub_polkadot_runtime::api::dispatch(method, data) + } + + fn native_version() -> sc_executor::NativeVersion { + bridge_hub_polkadot_runtime::native_version() + } +} + +/// Native BridgeHubKusama executor instance. +pub struct BridgeHubKusamaRuntimeExecutor; + +impl sc_executor::NativeExecutionDispatch for BridgeHubKusamaRuntimeExecutor { + type ExtendHostFunctions = frame_benchmarking::benchmarking::HostFunctions; + + fn dispatch(method: &str, data: &[u8]) -> Option> { + bridge_hub_kusama_runtime::api::dispatch(method, data) + } + + fn native_version() -> sc_executor::NativeVersion { + bridge_hub_kusama_runtime::native_version() + } +} + /// Native BridgeHubRococo executor instance. pub struct BridgeHubRococoRuntimeExecutor; @@ -171,6 +246,21 @@ impl sc_executor::NativeExecutionDispatch for GluttonWestendRuntimeExecutor { } } +/// Native Glutton executor instance. +pub struct GluttonRuntimeExecutor; + +impl sc_executor::NativeExecutionDispatch for GluttonRuntimeExecutor { + type ExtendHostFunctions = frame_benchmarking::benchmarking::HostFunctions; + + fn dispatch(method: &str, data: &[u8]) -> Option> { + shell_runtime::api::dispatch(method, data) + } + + fn native_version() -> sc_executor::NativeVersion { + shell_runtime::native_version() + } +} + /// Starts a `ServiceBuilder` for a full service. /// /// Use this macro if you don't actually need the full service, but just the builder in order to diff --git a/cumulus/polkadot-parachain/tests/benchmark_storage_works.rs b/cumulus/polkadot-parachain/tests/benchmark_storage_works.rs index c554b5b3d6be..c2850b64e458 100644 --- a/cumulus/polkadot-parachain/tests/benchmark_storage_works.rs +++ b/cumulus/polkadot-parachain/tests/benchmark_storage_works.rs @@ -24,7 +24,7 @@ use std::{ use tempfile::tempdir; /// The runtimes that this command supports. -static RUNTIMES: [&str; 1] = ["asset-hub-westend"]; +static RUNTIMES: [&str; 3] = ["asset-hub-westend", "asset-hub-kusama", "asset-hub-polkadot"]; /// The `benchmark storage` command works for the dev runtimes. #[test] From d07b3e41ddea19c26b0351c3ddeb807d440f7f4c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?D=C3=B3nal=20Murray?= Date: Wed, 25 Oct 2023 11:07:56 +0100 Subject: [PATCH 35/78] Revert tooling changes --- .github/pr-custom-review.yml | 4 +- .github/review-bot.yml | 6 + .gitlab/pipeline/short-benchmarks.yml | 30 ++ Cargo.lock | 5 + Cargo.toml | 6 + cumulus/README.md | 2 +- cumulus/docs/release.md | 7 +- .../assets/asset-hub-kusama/0_xcm/0_init.yml | 145 +++++++ .../assets/asset-hub-kusama/0_xcm/1_dmp.yml | 263 ++++++++++++ .../assets/asset-hub-kusama/0_xcm/2_ump.yml | 191 +++++++++ .../0_xcm/3_force_hrmp-open-channels.yml | 122 ++++++ .../assets/asset-hub-kusama/0_xcm/4_hrmp.yml | 388 ++++++++++++++++++ .../e2e/assets/asset-hub-kusama/config.toml | 71 ++++ .../asset-hub-polkadot/0_xcm/0_init.yml | 145 +++++++ .../assets/asset-hub-polkadot/0_xcm/1_dmp.yml | 263 ++++++++++++ .../assets/asset-hub-polkadot/0_xcm/2_ump.yml | 194 +++++++++ .../0_xcm/3_force_hrmp-open-channels.yml | 120 ++++++ .../asset-hub-polkadot/0_xcm/4_hrmp.yml | 388 ++++++++++++++++++ .../e2e/assets/asset-hub-polkadot/config.toml | 72 ++++ .../collectives-polkadot/0_xcm/0_init.yml | 166 ++++++++ .../collectives-polkadot/0_xcm/1_teleport.yml | 168 ++++++++ .../collectives-polkadot/0_xcm/2_reserve.yml | 53 +++ .../0_xcm/3_hrmp-open-channels.yml | 69 ++++ .../1_alliance/0_join_alliance_fails.yml | 29 ++ .../1_alliance/1_init_alliance.yml | 256 ++++++++++++ .../1_alliance/2_join_alliance_fails.yml | 30 ++ .../1_alliance/3_kick_member.yml | 175 ++++++++ .../2_opengov/0_assethub.yml | 149 +++++++ .../3_fellowship/0_init.yml | 209 ++++++++++ .../3_fellowship/1_whitelist_call.yml | 146 +++++++ .../3_fellowship/2_assethub.yml | 126 ++++++ .../collectives-polkadot/config.toml | 42 ++ .../emulated/common/Cargo.toml | 10 + .../emulated/common/src/constants.rs | 15 +- cumulus/polkadot-parachain/Cargo.toml | 8 +- cumulus/scripts/benchmarks.sh | 6 + .../bridge_hub_kusama_local_network.toml | 67 +++ .../bridge_hub_polkadot_local_network.toml | 67 +++ cumulus/zombienet/examples/small_network.toml | 2 +- .../statemine_kusama_local_network.toml | 67 +++ 40 files changed, 4271 insertions(+), 11 deletions(-) create mode 100644 cumulus/parachains/integration-tests/e2e/assets/asset-hub-kusama/0_xcm/0_init.yml create mode 100644 cumulus/parachains/integration-tests/e2e/assets/asset-hub-kusama/0_xcm/1_dmp.yml create mode 100644 cumulus/parachains/integration-tests/e2e/assets/asset-hub-kusama/0_xcm/2_ump.yml create mode 100644 cumulus/parachains/integration-tests/e2e/assets/asset-hub-kusama/0_xcm/3_force_hrmp-open-channels.yml create mode 100644 cumulus/parachains/integration-tests/e2e/assets/asset-hub-kusama/0_xcm/4_hrmp.yml create mode 100644 cumulus/parachains/integration-tests/e2e/assets/asset-hub-kusama/config.toml create mode 100644 cumulus/parachains/integration-tests/e2e/assets/asset-hub-polkadot/0_xcm/0_init.yml create mode 100644 cumulus/parachains/integration-tests/e2e/assets/asset-hub-polkadot/0_xcm/1_dmp.yml create mode 100644 cumulus/parachains/integration-tests/e2e/assets/asset-hub-polkadot/0_xcm/2_ump.yml create mode 100644 cumulus/parachains/integration-tests/e2e/assets/asset-hub-polkadot/0_xcm/3_force_hrmp-open-channels.yml create mode 100644 cumulus/parachains/integration-tests/e2e/assets/asset-hub-polkadot/0_xcm/4_hrmp.yml create mode 100644 cumulus/parachains/integration-tests/e2e/assets/asset-hub-polkadot/config.toml create mode 100644 cumulus/parachains/integration-tests/e2e/collectives/collectives-polkadot/0_xcm/0_init.yml create mode 100644 cumulus/parachains/integration-tests/e2e/collectives/collectives-polkadot/0_xcm/1_teleport.yml create mode 100644 cumulus/parachains/integration-tests/e2e/collectives/collectives-polkadot/0_xcm/2_reserve.yml create mode 100644 cumulus/parachains/integration-tests/e2e/collectives/collectives-polkadot/0_xcm/3_hrmp-open-channels.yml create mode 100644 cumulus/parachains/integration-tests/e2e/collectives/collectives-polkadot/1_alliance/0_join_alliance_fails.yml create mode 100644 cumulus/parachains/integration-tests/e2e/collectives/collectives-polkadot/1_alliance/1_init_alliance.yml create mode 100644 cumulus/parachains/integration-tests/e2e/collectives/collectives-polkadot/1_alliance/2_join_alliance_fails.yml create mode 100644 cumulus/parachains/integration-tests/e2e/collectives/collectives-polkadot/1_alliance/3_kick_member.yml create mode 100644 cumulus/parachains/integration-tests/e2e/collectives/collectives-polkadot/2_opengov/0_assethub.yml create mode 100644 cumulus/parachains/integration-tests/e2e/collectives/collectives-polkadot/3_fellowship/0_init.yml create mode 100644 cumulus/parachains/integration-tests/e2e/collectives/collectives-polkadot/3_fellowship/1_whitelist_call.yml create mode 100644 cumulus/parachains/integration-tests/e2e/collectives/collectives-polkadot/3_fellowship/2_assethub.yml create mode 100644 cumulus/parachains/integration-tests/e2e/collectives/collectives-polkadot/config.toml create mode 100644 cumulus/zombienet/examples/bridge_hub_kusama_local_network.toml create mode 100644 cumulus/zombienet/examples/bridge_hub_polkadot_local_network.toml create mode 100644 cumulus/zombienet/examples/statemine_kusama_local_network.toml diff --git a/.github/pr-custom-review.yml b/.github/pr-custom-review.yml index a01e2b284519..ac13d862a4ac 100644 --- a/.github/pr-custom-review.yml +++ b/.github/pr-custom-review.yml @@ -19,7 +19,7 @@ rules: condition: include: .* # excluding files from 'Runtime files' and 'CI files' rules - exclude: ^polkadot/runtime/(kusama|polkadot)/src/[^/]+\.rs$|^cumulus/parachains/common/src/[^/]+\.rs$|^substrate/frame/(?!.*(nfts/.*|uniques/.*|babe/.*|grandpa/.*|beefy|merkle-mountain-range/.*|contracts/.*|election|nomination-pools/.*|staking/.*|aura/.*))|^polkadot/runtime/(kusama|polkadot)/src/[^/]+\.rs$|^\.gitlab-ci\.yml|^docker/.*|^\.github/.*|^\.gitlab/.*|^\.config/nextest.toml|^\.cargo/.* + exclude: ^polkadot/runtime/(kusama|polkadot)/src/[^/]+\.rs$|^cumulus/parachains/runtimes/assets/(asset-hub-kusama|asset-hub-polkadot)/src/[^/]+\.rs$|^cumulus/parachains/runtimes/bridge-hubs/(bridge-hub-kusama|bridge-hub-polkadot)/src/[^/]+\.rs$|^cumulus/parachains/runtimes/collectives/collectives-polkadot/src/[^/]+\.rs$|^cumulus/parachains/common/src/[^/]+\.rs$|^substrate/frame/(?!.*(nfts/.*|uniques/.*|babe/.*|grandpa/.*|beefy|merkle-mountain-range/.*|contracts/.*|election|nomination-pools/.*|staking/.*|aura/.*))|^polkadot/runtime/(kusama|polkadot)/src/[^/]+\.rs$|^\.gitlab-ci\.yml|^docker/.*|^\.github/.*|^\.gitlab/.*|^\.config/nextest.toml|^\.cargo/.* min_approvals: 2 teams: - core-devs @@ -27,7 +27,7 @@ rules: # cumulus - name: Runtime files cumulus check_type: changed_files - condition: ^cumulus/parachains/common/src/[^/]+\.rs$ + condition: ^cumulus/parachains/runtimes/assets/(asset-hub-kusama|asset-hub-polkadot)/src/[^/]+\.rs$|^cumulus/parachains/runtimes/bridge-hubs/(bridge-hub-kusama|bridge-hub-polkadot)/src/[^/]+\.rs$|^cumulus/parachains/runtimes/collectives/collectives-polkadot/src/[^/]+\.rs$|^cumulus/parachains/common/src/[^/]+\.rs$ all_distinct: - min_approvals: 1 teams: diff --git a/.github/review-bot.yml b/.github/review-bot.yml index 986d1e3c9858..581e33762608 100644 --- a/.github/review-bot.yml +++ b/.github/review-bot.yml @@ -42,6 +42,9 @@ rules: # excluding files from 'Runtime files' and 'CI files' rules exclude: - ^polkadot/runtime/(kusama|polkadot)/src/[^/]+\.rs$ + - ^cumulus/parachains/runtimes/assets/(asset-hub-kusama|asset-hub-polkadot)/src/[^/]+\.rs$ + - ^cumulus/parachains/runtimes/bridge-hubs/(bridge-hub-kusama|bridge-hub-polkadot)/src/[^/]+\.rs$ + - ^cumulus/parachains/runtimes/collectives/collectives-polkadot/src/[^/]+\.rs$ - ^cumulus/parachains/common/src/[^/]+\.rs$ - ^substrate/frame/(?!.*(nfts/.*|uniques/.*|babe/.*|grandpa/.*|beefy|merkle-mountain-range/.*|contracts/.*|election|nomination-pools/.*|staking/.*|aura/.*)) - ^polkadot/runtime/(kusama|polkadot)/src/[^/]+\.rs$ @@ -61,6 +64,9 @@ rules: countAuthor: true condition: include: + - ^cumulus/parachains/runtimes/assets/(asset-hub-kusama|asset-hub-polkadot)/src/[^/]+\.rs$ + - ^cumulus/parachains/runtimes/bridge-hubs/(bridge-hub-kusama|bridge-hub-polkadot)/src/[^/]+\.rs$ + - ^cumulus/parachains/runtimes/collectives/collectives-polkadot/src/[^/]+\.rs$ - ^cumulus/parachains/common/src/[^/]+\.rs$ type: and-distinct reviewers: diff --git a/.gitlab/pipeline/short-benchmarks.yml b/.gitlab/pipeline/short-benchmarks.yml index 6c1d1b62f133..289553be6681 100644 --- a/.gitlab/pipeline/short-benchmarks.yml +++ b/.gitlab/pipeline/short-benchmarks.yml @@ -49,6 +49,16 @@ short-benchmark-westend: &short-bench script: - ./artifacts/polkadot-parachain benchmark pallet --chain $RUNTIME_CHAIN --pallet "*" --extrinsic "*" --steps 2 --repeat 1 +short-benchmark-asset-hub-polkadot: + <<: *short-bench-cumulus + variables: + RUNTIME_CHAIN: asset-hub-polkadot-dev + +short-benchmark-asset-hub-kusama: + <<: *short-bench-cumulus + variables: + RUNTIME_CHAIN: asset-hub-kusama-dev + short-benchmark-asset-hub-rococo: <<: *short-bench-cumulus variables: @@ -59,16 +69,36 @@ short-benchmark-asset-hub-westend: variables: RUNTIME_CHAIN: asset-hub-westend-dev +short-benchmark-bridge-hub-polkadot: + <<: *short-bench-cumulus + variables: + RUNTIME_CHAIN: bridge-hub-polkadot-dev + +short-benchmark-bridge-hub-kusama: + <<: *short-bench-cumulus + variables: + RUNTIME_CHAIN: bridge-hub-kusama-dev + short-benchmark-bridge-hub-rococo: <<: *short-bench-cumulus variables: RUNTIME_CHAIN: bridge-hub-rococo-dev +short-benchmark-collectives-polkadot: + <<: *short-bench-cumulus + variables: + RUNTIME_CHAIN: collectives-polkadot-dev + short-benchmark-collectives-westend: <<: *short-bench-cumulus variables: RUNTIME_CHAIN: collectives-westend-dev +short-benchmark-glutton-kusama: + <<: *short-bench-cumulus + variables: + RUNTIME_CHAIN: glutton-kusama-dev-1300 + short-benchmark-glutton-westend: <<: *short-bench-cumulus variables: diff --git a/Cargo.lock b/Cargo.lock index e36df937ce78..633c19625e02 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -6577,11 +6577,16 @@ dependencies = [ name = "integration-tests-common" version = "1.0.0" dependencies = [ + "asset-hub-kusama-runtime", + "asset-hub-polkadot-runtime", "asset-hub-rococo-runtime", "asset-hub-westend-runtime", "bp-messages", + "bridge-hub-kusama-runtime", + "bridge-hub-polkadot-runtime", "bridge-hub-rococo-runtime", "bridge-runtime-common", + "collectives-polkadot-runtime", "collectives-westend-runtime", "cumulus-pallet-dmp-queue", "cumulus-pallet-parachain-system", diff --git a/Cargo.toml b/Cargo.toml index 1e5e5bf31155..be54017f15fc 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -69,14 +69,20 @@ members = [ "cumulus/parachains/pallets/collective-content", "cumulus/parachains/pallets/parachain-info", "cumulus/parachains/pallets/ping", + "cumulus/parachains/runtimes/assets/asset-hub-kusama", + "cumulus/parachains/runtimes/assets/asset-hub-polkadot", "cumulus/parachains/runtimes/assets/asset-hub-rococo", "cumulus/parachains/runtimes/assets/asset-hub-westend", "cumulus/parachains/runtimes/assets/common", "cumulus/parachains/runtimes/assets/test-utils", + "cumulus/parachains/runtimes/bridge-hubs/bridge-hub-kusama", + "cumulus/parachains/runtimes/bridge-hubs/bridge-hub-polkadot", "cumulus/parachains/runtimes/bridge-hubs/bridge-hub-rococo", "cumulus/parachains/runtimes/bridge-hubs/test-utils", + "cumulus/parachains/runtimes/collectives/collectives-polkadot", "cumulus/parachains/runtimes/collectives/collectives-westend", "cumulus/parachains/runtimes/contracts/contracts-rococo", + "cumulus/parachains/runtimes/glutton/glutton-kusama", "cumulus/parachains/runtimes/glutton/glutton-westend", "cumulus/parachains/runtimes/starters/seedling", "cumulus/parachains/runtimes/starters/shell", diff --git a/cumulus/README.md b/cumulus/README.md index 71afe36f6dea..19f9f3f113dd 100644 --- a/cumulus/README.md +++ b/cumulus/README.md @@ -204,7 +204,7 @@ cargo build --release --locked --bin polkadot-parachain Once the executable is built, launch the parachain node via: ```bash -CHAIN=asset-hub-westend +CHAIN=asset-hub-westend # or asset-hub-kusama ./target/release/polkadot-parachain --chain $CHAIN ``` diff --git a/cumulus/docs/release.md b/cumulus/docs/release.md index de05ff2165ef..8302b7b9b7fc 100644 --- a/cumulus/docs/release.md +++ b/cumulus/docs/release.md @@ -85,13 +85,16 @@ It takes around a minute to run and will produce the report as artifact you need To run it, in the _Run Workflow_ dropdown: 1. **Use workflow from**: to ignore, leave `master` as default -2. **The WebSocket url of the reference node**: +2. **The WebSocket url of the reference node**: - Asset Hub Polkadot: `wss://statemint-rpc.polkadot.io` + - Asset Hub Kusama: `wss://statemine-rpc.polkadot.io` - Asset Hub Westend: `wss://westmint-rpc.polkadot.io` 3. **A url to a Linux binary for the node containing the runtime to test**: Paste the URL of the latest release-candidate binary from the draft-release on Github. The binary has to previously be uploaded to S3 (Github url link to the binary is constantly changing) - E.g: https://releases.parity.io/cumulus/v0.9.270-rc3/polkadot-parachain -4. **The name of the chain under test. Usually, you would pass a local chain**: +4. **The name of the chain under test. Usually, you would pass a local chain**: - Asset Hub Polkadot: + `asset-hub-polkadot-local` + - Asset Hub Kusama: `asset-hub-kusama-local` - Asset Hub Westend: `asset-hub-westend-local` 5. Click **Run workflow** diff --git a/cumulus/parachains/integration-tests/e2e/assets/asset-hub-kusama/0_xcm/0_init.yml b/cumulus/parachains/integration-tests/e2e/assets/asset-hub-kusama/0_xcm/0_init.yml new file mode 100644 index 000000000000..fdc1aa258d42 --- /dev/null +++ b/cumulus/parachains/integration-tests/e2e/assets/asset-hub-kusama/0_xcm/0_init.yml @@ -0,0 +1,145 @@ +--- +settings: + chains: + relay_chain: &relay_chain + wsPort: 9900 + assets_parachain: &assets_parachain + wsPort: 9910 + paraId: &ap_id 1000 + penpal_parachain: &penpal_parachain + wsPort: 9920 + paraId: &pp_id 2000 + variables: + common: + xcm_version: &xcm_version 3 + require_weight_at_most: &weight_at_most {refTime: 1000000000, proofSize: 200000} + weight_threshold: &weight_threshold { refTime: [10, 10], proofSize: [10, 10] } + chains: + relay_chain: + signer: &rc_signer //Alice + assets_parachain_destination: &ap_dest { v3: { 0, interior: { x1: { parachain: *ap_id }}}} + penpal_parachain: + signer: &pp_signer //Alice + decodedCalls: + ap_force_xcm_version: + chain: *assets_parachain + pallet: polkadotXcm + call: forceXcmVersion + args: [ + { # location + parents: 1, + interior: Here + }, + *xcm_version # xcmVersion + ] + +tests: + - name: Initialize Chains + its: + - name: XCM supported versions between chains + actions: + - extrinsics: # Relay Chain sets supported version for Asset Parachain + - chain: *relay_chain + sudo: true + signer: *rc_signer + pallet: xcmPallet + call: forceXcmVersion + args: [ + { # location + parents: 0, + interior: { + X1: { + Parachain: *ap_id + } + } + }, + *xcm_version # xcmVersion + ] + events: + - name: sudo.Sudid + result: { sudoResult: Ok } + - name: xcmPallet.SupportedVersionChanged + result: { location: { parents: 0, interior: { X1: { Parachain: *ap_id }}}, version: *xcm_version } + - extrinsics: # Relay Chain sets supported version for Penpal Parachain + - chain: *relay_chain + sudo: true + signer: *rc_signer + pallet: xcmPallet + call: forceXcmVersion + args: [ + { # location + parents: 0, + interior: { + X1: { + Parachain: *pp_id + } + } + }, + *xcm_version # xcmVersion + ] + events: + - name: sudo.Sudid + result: { sudoResult: Ok } + - name: xcmPallet.SupportedVersionChanged + result: { location: { parents: 0, interior: { X1: { Parachain: *pp_id }}}, version: *xcm_version } + - extrinsics: # Asset Parachain sets supported version for Relay Chain through it + - chain: *relay_chain + signer: *rc_signer + sudo: true + pallet: xcmPallet + call: send + args: [ + *ap_dest, # destination + { + v3: [ #message + { + UnpaidExecution: { + weightLimit: { + limited: { + refTime: 2200000000, + proofSize: 200000 + } + } + } + }, + { + Transact: { + originKind: Superuser, + requireWeightAtMost: *weight_at_most, + call: $ap_force_xcm_version + } + } + ] + } + ] + events: + - name: sudo.Sudid + result: { sudoResult: Ok } + - name: xcmPallet.Sent + - name: dmpQueue.ExecutedDownward + chain: *assets_parachain + threshold: *weight_threshold + result: { + outcome: { Complete: { refTime: '1,019,210,000', proofSize: '200,000' }} + } + - name: polkadotXcm.SupportedVersionChanged + chain: *assets_parachain + result: { location: { parents: 1, interior: Here }, version: *xcm_version } + - extrinsics: # Penpal Parachain sets supported version for Relay Chain + - chain: *penpal_parachain + signer: *pp_signer + sudo: true + pallet: polkadotXcm + call: forceXcmVersion + args: [ + { # location + parents: 1, + interior: Here + }, + *xcm_version # xcmVersion + ] + events: + - name: sudo.Sudid + result: { sudoResult: Ok } + - name: polkadotXcm.SupportedVersionChanged + result: { location: { parents: 1, interior: Here }, version: *xcm_version } diff --git a/cumulus/parachains/integration-tests/e2e/assets/asset-hub-kusama/0_xcm/1_dmp.yml b/cumulus/parachains/integration-tests/e2e/assets/asset-hub-kusama/0_xcm/1_dmp.yml new file mode 100644 index 000000000000..0e207e632a02 --- /dev/null +++ b/cumulus/parachains/integration-tests/e2e/assets/asset-hub-kusama/0_xcm/1_dmp.yml @@ -0,0 +1,263 @@ +--- +settings: + chains: + relay_chain: &relay_chain + wsPort: 9900 + assets_parachain: &assets_parachain + wsPort: 9910 + paraId: &ap_id 1000 + variables: + common: + weight_threshold: &weight_threshold { refTime: [10, 10], proofSize: [10, 10] } + chains: + relay_chain: + signer: &rc_signer //Alice + wallet: &rc_wallet HNZata7iMYWmk5RvZRTiAsSDhV8366zq2YGb3tLH5Upf74F + assets_parachain_destination: &ap_dest { v3: { parents: 0, interior: { x1: { parachain: *ap_id }}}} + assets_parachain_account: &ap_acc '0xd43593c715fdd31c61141abd04a99fd6822c8558854ccde39a5684e7a56da27d' + assets_parachain_beneficiary: &ap_benf { v3: { parents: 0, interior: { x1: { accountId32: { id: *ap_acc }}}}} + ksm: &rc_ksm { concrete: { parents: 0, interior: { here: true }}} + amount: &amount 1000000000000 + ksm_fungible: &rc_ksm_fungible { id: *rc_ksm, fun: { fungible: *amount }} + require_weight_at_most: &rc_weight_at_most { refTime: 1000000000, proofSize: 200000 } + assets_parachain_account: + wallet: &ap_wallet HNZata7iMYWmk5RvZRTiAsSDhV8366zq2YGb3tLH5Upf74F + asset_id: &asset_id 1 + asset_min_balance: &asset_ed 1000 + decodedCalls: + force_create_asset: + chain: *assets_parachain + pallet: assets + call: forceCreate + args: [ + *asset_id, + { Id: *ap_wallet }, # owner + true, # isSufficient + *asset_ed # minBalance + ] + +tests: + - name: DMP + its: [] + describes: + - name: xcmPallet.limitedTeleportAssets + before: &before_get_balances + - name: Get the balances of the Relay Chain's sender & Assets Parachain's receiver + actions: + - queries: + balance_rc_sender_before: + chain: *relay_chain + pallet: system + call: account + args: [ *rc_wallet ] + balance_ap_receiver_before: + chain: *assets_parachain + pallet: system + call: account + args: [ *ap_wallet ] + its: + - name: Should teleport native assets from the Relay Chain to the Assets Parachain + actions: + - extrinsics: + - chain: *relay_chain + signer: *rc_signer + pallet: xcmPallet + call: limitedTeleportAssets + args: [ + *ap_dest, # destination + *ap_benf, # beneficiary + { v3: [ *rc_ksm_fungible ] }, + 0, # feeAssetItem + { unlimited: true } # weightLimit + ] + events: + - name: xcmPallet.Attempted + threshold: *weight_threshold + result: { outcome: { Complete: { refTime: '764,772,000', proofSize: 0 }}} + - name: dmpQueue.ExecutedDownward + chain: *assets_parachain + threshold: *weight_threshold + result: { outcome: { Complete: { refTime: '166,944,000', proofSize: 0 }}} + - queries: + balance_rc_sender_after: + chain: *relay_chain + pallet: system + call: account + args: [ *rc_wallet ] + balance_ap_receiver_after: + chain: *assets_parachain + pallet: system + call: account + args: [ *ap_wallet ] + + - name: Should reduce the balance of the sender + actions: + - asserts: + balanceDecreased: + args: [ + { + balances: { + before: $balance_rc_sender_before, + after: $balance_rc_sender_after, + }, + amount: *amount + } + ] + + - name: Should increase the balance of the receiver + actions: + - asserts: + balanceIncreased: + args: [ + { + balances: { + before: $balance_ap_receiver_before, + after: $balance_ap_receiver_after, + } + } + ] + + - name: xcmPallet.send | Superuser - Transact(assets.forceCreate) + its: + - name: Relay Chain Superuser account SHOULD be able to execute a XCM Transact instruction in the Assets Parachain + actions: + - extrinsics: + - chain: *relay_chain + signer: *rc_signer + sudo: true + pallet: xcmPallet + call: send + args: [ + *ap_dest, # destination + { + v3: [ #message + { + UnpaidExecution: { + weightLimit: Unlimited + } + }, + { + Transact: { + originKind: Superuser, + requireWeightAtMost: *rc_weight_at_most, + call: $force_create_asset + } + } + ] + } + ] + events: + - name: xcmPallet.Sent + - name: dmpQueue.ExecutedDownward + chain: *assets_parachain + threshold: *weight_threshold + result: { outcome: { Complete: { refTime: '1,014,103,000', proofSize: '200,000' }}} + - queries: + forced_created_asset: + chain: *assets_parachain + pallet: assets + call: asset + args: [ *asset_id ] + - asserts: + isSome: + args: [ $forced_created_asset ] + + - name: xcmPallet.send | Native - Transact(assets.forceCreate) + its: + - name: Relay Chain Native account SHOULD NOT be able to execute a XCM Transact instruction in the Assets Parachain + actions: + - extrinsics: + - chain: *relay_chain + signer: *rc_signer + pallet: xcmPallet + call: send + args: [ + *ap_dest, # destination + { + v3: [ #message + { + UnpaidExecution: { + weightLimit: Unlimited + } + }, + { + Transact: { + originKind: Native, + requireWeightAtMost: *rc_weight_at_most, + call: $force_create_asset + } + } + ] + } + ] + events: + - name: system.ExtrinsicFailed + result: { dispatchError: BadOrigin } + + - name: xcmPallet.limitedReserveTransferAssets + before: *before_get_balances + its: + - name: SHOULD NOT reserved transfer native assets from the Relay Chain to the Assets Parachain + actions: + - extrinsics: + - chain: *relay_chain + signer: *rc_signer + pallet: xcmPallet + call: limitedReserveTransferAssets + args: [ + *ap_dest, # destination + *ap_benf, # beneficiary + { v3: [ *rc_ksm_fungible ] }, # assets + 0, # feeAssetItem + { unlimited: true } # weightLimit + ] + events: + - name: xcmPallet.Attempted + threshold: *weight_threshold + result: { outcome: { Complete: { refTime: '750,645,000', proofSize: 0 }}} + - name: dmpQueue.ExecutedDownward + chain: *assets_parachain + threshold: *weight_threshold + result: { + outcome: { + Incomplete: [ + { refTime: '1,000,000,000', proofSize: 0 }, + UntrustedReserveLocation + ] + } + } + - queries: + balance_rc_sender_after: + chain: *relay_chain + pallet: system + call: account + args: [ *rc_wallet ] + balance_ap_receiver_after: + chain: *assets_parachain + pallet: system + call: account + args: [ *ap_wallet ] + + - name: Should reduce the balance of the sender + actions: + - asserts: + balanceDecreased: + args: [ + { + balances: { + before: $balance_rc_sender_before, + after: $balance_rc_sender_after, + }, + amount: *amount + } + ] + + - name: Should keep the balance of the receiver + actions: + - asserts: + equal: + args: + [ + $balance_ap_receiver_before, + $balance_ap_receiver_after + ] diff --git a/cumulus/parachains/integration-tests/e2e/assets/asset-hub-kusama/0_xcm/2_ump.yml b/cumulus/parachains/integration-tests/e2e/assets/asset-hub-kusama/0_xcm/2_ump.yml new file mode 100644 index 000000000000..2a0bb88090e9 --- /dev/null +++ b/cumulus/parachains/integration-tests/e2e/assets/asset-hub-kusama/0_xcm/2_ump.yml @@ -0,0 +1,191 @@ +--- +settings: + chains: + relay_chain: &relay_chain + wsPort: 9900 + assets_parachain: &assets_parachain + wsPort: 9910 + paraId: &ap_id 1000 + variables: + common: + amount: &amount 1000000000000 + require_weight_at_most: &weight_at_most {refTime: 1000000000, proofSize: 0} + weight_threshold: &weight_threshold { refTime: [10, 10], proofSize: [10, 10] } + chains: + relay_chain: + signer: &rc_signer //Alice + wallet: &rc_wallet HNZata7iMYWmk5RvZRTiAsSDhV8366zq2YGb3tLH5Upf74F #Alice + assets_parachain_destination: &ap_dest { v3: { 0, interior: { x1: { parachain: *ap_id }}}} + assets_parachain_account: &ap_acc '0xd43593c715fdd31c61141abd04a99fd6822c8558854ccde39a5684e7a56da27d' + assets_parachain_beneficiary: &ap_benf {v3: { parents: 0, interior: { x1: { accountId32: { id: *ap_acc }}}}} + ksm: &rc_ksm { concrete: { 0, interior: { here: true }}} + ksm_fungible: &rc_ksm_fungible { id: *rc_ksm, fun: { fungible: *amount }} + assets_parachain_account: + signer: &ap_signer //Alice + wallet: &ap_wallet HNZata7iMYWmk5RvZRTiAsSDhV8366zq2YGb3tLH5Upf74F + relay_chain_destination: &rc_dest { v3: { parents: 1, interior: { here: true }}} + assets_parachain_account: &rc_acc '0xd43593c715fdd31c61141abd04a99fd6822c8558854ccde39a5684e7a56da27d' #Alice + relay_chain_beneficiary: &rc_benf {v3: { parents: 0, interior: { x1: { accountId32: { id: *rc_acc }}}}} + ksm: &ap_ksm { concrete: { parents: 1, interior: { here: true }}} + ksm_fungible: &ap_ksm_fungible { id: *ap_ksm, fun: { fungible: *amount }} + decodedCalls: + system_remark: + chain: *relay_chain + pallet: system + call: remark + args: [ 0x0011 ] + +tests: + - name: UMP + describes: + - name: polkadotXcm.limitedTeleportAssets + before: + - name: DEPENDENCY | Do a 'limitedTeleportAssets' from the Relay Chain to the Assets Parachain to have funds to send them back + actions: + - extrinsics: + - chain: *relay_chain + signer: *rc_signer + pallet: xcmPallet + call: limitedTeleportAssets + args: [ + *ap_dest, # destination + *ap_benf, # beneficiary + { v3: [ *rc_ksm_fungible ] }, # assets + 0, # feeAssetItem + { unlimited: true } # weightLimit + ] + events: + - name: xcmPallet.Attempted + threshold: *weight_threshold + result: { outcome: { Complete: { refTime: '761,173,000', proofSize: 0 }}} + - name: dmpQueue.ExecutedDownward + chain: *assets_parachain + threshold: *weight_threshold + result: { outcome: { Complete: { refTime: '166,944,000', proofSize: 0 }}} + + - name: Get the balances of the Assets Parachain's sender & Relay Chain's receiver + actions: + - queries: + balance_ap_sender_before: + chain: *assets_parachain + pallet: system + call: account + args: [ *ap_wallet ] + balance_rc_receiver_before: + chain: *relay_chain + pallet: system + call: account + args: [ *rc_wallet ] + its: + - name: Should teleport native assets back from Assets Parachain to the Relay Chain + actions: + - extrinsics: + - chain: *assets_parachain + signer: *ap_signer + pallet: polkadotXcm + call: limitedTeleportAssets + args: [ + *rc_dest, # destination + *rc_benf, # beneficiary + { v3: [ *ap_ksm_fungible ] }, # assets + 0, # feeAssetItem + { unlimited: true } # weightLimit + ] + events: + - name: polkadotXcm.Attempted + threshold: *weight_threshold + result: { outcome: { Complete: { refTime: '539,494,000', proofSize: '7,133' }}} + - name: messageQueue.Processed + chain: *relay_chain + threshold: *weight_threshold + result: { origin: { Ump: { Para: '1,000' } }, weightUsed: { refTime: '298,716,000', proofSize: '0' }, success: true } + - queries: + balance_ap_sender_after: + chain: *assets_parachain + pallet: system + call: account + args: [ *ap_wallet ] + balance_rc_receiver_after: + chain: *relay_chain + pallet: system + call: account + args: [ *rc_wallet ] + + - name: Should reduce the balance of the sender + actions: + - asserts: + balanceDecreased: + args: [ + { + balances: { + before: $balance_ap_sender_before, + after: $balance_ap_sender_after, + }, + amount: *amount + } + ] + + - name: Should increase the balance of the receiver + actions: + - asserts: + balanceIncreased: + args: [ + { + balances: { + before: $balance_rc_receiver_before, + after: $balance_rc_receiver_after, + } + } + ] + + - name: polkadotXcm.send | Native - Transact(system.remark) + its: + - name: Assets Parachain SHOULD NOT be able to dispatch 'send' call + actions: + - extrinsics: + - chain: *assets_parachain + signer: *ap_signer + pallet: polkadotXcm + call: send + args: [ + *rc_dest, # destination + { + v3: [ #message + { + UnpaidExecution: { + weightLimit: Unlimited + } + }, + { + Transact: { + originKind: Native, + requireWeightAtMost: *weight_at_most, + call: $system_remark + } + } + ] + } + ] + events: + - name: system.ExtrinsicFailed + result: { dispatchError: BadOrigin } + + - name: polkadotXcm.limitedReserveTransferAssets + its: + - name: Should NOT be able to reserve transfer native assets from the Assets Parachain to the Relay Chain + actions: + - extrinsics: + - chain: *assets_parachain + signer: *ap_signer + pallet: polkadotXcm + call: limitedReserveTransferAssets + args: [ + *rc_dest, # destination + *rc_benf, # beneficiary + { v3: [ *ap_ksm_fungible ] }, # assets + 0, # feeAssetItem + { unlimited: true } # weightLimit + ] + events: + - name: polkadotXcm.Attempted + result: { outcome: { Error: Barrier }} diff --git a/cumulus/parachains/integration-tests/e2e/assets/asset-hub-kusama/0_xcm/3_force_hrmp-open-channels.yml b/cumulus/parachains/integration-tests/e2e/assets/asset-hub-kusama/0_xcm/3_force_hrmp-open-channels.yml new file mode 100644 index 000000000000..dfdae028f00d --- /dev/null +++ b/cumulus/parachains/integration-tests/e2e/assets/asset-hub-kusama/0_xcm/3_force_hrmp-open-channels.yml @@ -0,0 +1,122 @@ +--- +settings: + chains: + relay_chain: &relay_chain + wsPort: 9900 + assets_parachain: + wsPort: 9910 + paraId: &ap_id 1000 + penpal_parachain: + wsPort: 9920 + paraId: &pp_id 2000 + variables: + common: + amount: &amount 2000000000000 + hrmp_channels: + proposed_max_capacity: &max_capacity 8 + proposed_max_message_size: &max_message_size 8192 + channel: &channel { + maxCapacity: *max_capacity, + maxTotalSize: *max_message_size, + maxMessageSize: *max_message_size, + msgCount: 0, + totalSize: 0, + mqcHead: null, + senderDeposit: 0, + recipientDeposit: 0 + } + chains: + relay_chain: + signer: &rc_signer //Alice + assets_parachain_account: + sovereign_account: &ap_sovereign F7fq1jSNVTPfJmaHaXCMtatT1EZefCUsa7rRiQVNR5efcah + penpal_parachain: + sovereign_account: &pp_sovereign F7fq1jMZkfuCuoMTyiEVAP2DMpMt18WopgBqTJznLihLNbZ + +tests: + - name: HRMP + beforeEach: + - name: DEPENDENCY | Penpal Parachain Sovereign account in the Relay Chain needs to be funded + actions: + - extrinsics: + - chain: *relay_chain + signer: *rc_signer + pallet: balances + call: transfer + args: [ + *pp_sovereign, # destination + *amount, # value + ] + events: + - name: balances.Transfer + + - name: DEPENDENCY | Assets Parachain Sovereign account in the Relay Chain needs to be funded + actions: + - extrinsics: + - chain: *relay_chain + signer: *rc_signer + pallet: balances + call: transfer + args: [ + *ap_sovereign, # destination + *amount, # value + ] + events: + - name: balances.Transfer + describes: + - name: hrmp.forceOpenHrmpChannel (Penpal Parachain → Assets Parachain) + its: + - name: Open Penpal Parachain to Assets Parachain + actions: + - extrinsics: + - chain: *relay_chain + signer: *rc_signer + sudo: true + pallet: hrmp + call: forceOpenHrmpChannel + args: [ + *pp_id, + *ap_id, + *max_capacity, + *max_message_size + ] + events: + - name: sudo.Sudid + result: { sudoResult: Ok } + - name: hrmp.HrmpChannelForceOpened + + - name: hrmp.forceOpenHrmpChannel (Assets Parachain → PenPal Parachain) + its: + - name: Open Assets Parachain to PenPal Parachain + actions: + - extrinsics: + - chain: *relay_chain + signer: *rc_signer + sudo: true + pallet: hrmp + call: forceOpenHrmpChannel + args: [ + *ap_id, + *pp_id, + *max_capacity, + *max_message_size + ] + events: + - name: sudo.Sudid + result: { sudoResult: Ok } + - name: hrmp.HrmpChannelForceOpened + + - name: hrmp.forceProcessHrmpOpen (make sure all the channels are open) + its: + - name: Make sure all the pending channels are open + actions: + - extrinsics: + - chain: *relay_chain + signer: *rc_signer + sudo: true + pallet: hrmp + call: forceProcessHrmpOpen + args: [ 2 ] + events: + - name: sudo.Sudid + result: { sudoResult: Ok } diff --git a/cumulus/parachains/integration-tests/e2e/assets/asset-hub-kusama/0_xcm/4_hrmp.yml b/cumulus/parachains/integration-tests/e2e/assets/asset-hub-kusama/0_xcm/4_hrmp.yml new file mode 100644 index 000000000000..02e53da75580 --- /dev/null +++ b/cumulus/parachains/integration-tests/e2e/assets/asset-hub-kusama/0_xcm/4_hrmp.yml @@ -0,0 +1,388 @@ +--- +# Note: This tests depends on the 3_hrmp-open-channels.yml for opening channels, otherwise teleports aren't going to +# work. +settings: + chains: + relay_chain: &relay_chain + wsPort: 9900 + assets_parachain: &assets_parachain + wsPort: 9910 + paraId: &ap_id 1000 + penpal_parachain: &penpal_parachain + wsPort: 9920 + paraId: &pp_id 2000 + variables: + common: + mint_amount: &mint_amount 1000000000000 + amount: &amount 100000000000 + require_weight_at_most: &weight_at_most {refTime: 1200000000, proofSize: 20000} + amount_to_send: &amount_to_send 500000000000 + weight_threshold: &weight_threshold { refTime: [10, 10], proofSize: [10, 10] } + chains: + relay_chain: + signer: &rc_signer //Alice + assets_parachain_destination: &ap_dest { v3: { 0, interior: { x1: { parachain: *ap_id }}}} + assets_parachain_dest_routed: &ap_dest_routed { v3: { parents: 1, interior: { x1: { parachain: *ap_id } }}} + assets_parachain_account: + signer: &ap_signer //Alice + wallet: &ap_wallet HNZata7iMYWmk5RvZRTiAsSDhV8366zq2YGb3tLH5Upf74F + asset_id: &asset_id 2 + assets_pallet_id: &assets_pallet_id 50 + asset_min_balance: &asset_ed 1000 + penpal_parachain_destination: &pp_dest { v3: { parents: 1, interior: { x1: { parachain: *pp_id } }}} + ksm: &ap_ksm { concrete: { parents: 1, interior: { here: true }}} + ksm_fungible: &ap_ksm_fungible { id: *ap_ksm, fun: { fungible: *amount }} + suff_asset: &suff_asset { concrete: { parents: 0, interior: { x2: [ { PalletInstance: *assets_pallet_id }, { GeneralIndex: *asset_id } ] }}} + suff_asset_fail: &suff_asset_fail { concrete: { parents: 0, interior: { x2: [ { PalletInstance: *assets_pallet_id }, { GeneralIndex: 3 } ] }}} + suff_asset_fungible_fail: &ap_suff_asset_fungible_fail { id: *suff_asset_fail, fun: { fungible: 200000000000 }} + penpal_parachain: + sovereign_account: &pp_sovereign_sibl FBeL7EAeUroLWXW1yfKboiqTqVfbRBcsUKd6QqVf4kGBySS + signer: &pp_signer //Alice + penpal_parachain_account: &pp_acc '0xd43593c715fdd31c61141abd04a99fd6822c8558854ccde39a5684e7a56da27d' + decodedCalls: + force_create_asset: + chain: *assets_parachain + pallet: assets + call: forceCreate + args: [ + *asset_id, + { Id: *ap_wallet }, # owner + true, # isSufficient + *asset_ed # minBalance + ] + force_create_asset2: + chain: *assets_parachain + pallet: assets + call: forceCreate + args: [ + *asset_id, + { Id: *ap_wallet }, # owner + true, # isSufficient + *asset_ed # minBalance + ] + +tests: + - name: HRMP + describes: + - name: polkadotXcm.limitedReserveTransferAssets (Asset) | Assets Parachain -> Penpal Parachain + before: + - name: DEPENDENCY | A sufficient Asset should exist in the Assets Parachain + actions: + - extrinsics: + - chain: *relay_chain + signer: *rc_signer + sudo: true + pallet: xcmPallet + call: send + args: [ + *ap_dest, # destination + { + v3: [ #message + { + UnpaidExecution: { + weightLimit: Unlimited + } + }, + { + SetTopic: '0x0123456789012345678901234567891201234567890123456789012345678912' + }, + { + Transact: { + originKind: Superuser, + requireWeightAtMost: *weight_at_most, + call: $force_create_asset + } + } + ] + } + ] + events: + - name: xcmPallet.Sent + - name: dmpQueue.ExecutedDownward + chain: *assets_parachain + threshold: *weight_threshold + result: { outcome: { Complete: { refTime: '1,216,703,000', proofSize: '20,000' }}} + - queries: + forced_created_asset: + chain: *assets_parachain + pallet: assets + call: asset + args: [ *asset_id ] + - asserts: + isSome: + args: [ $forced_created_asset ] + + - name: DEPENDENCY | Some Assets should be minted for the sender + actions: + - extrinsics: + - chain: *assets_parachain + signer: *ap_signer + pallet: assets + call: mint + args: [ + *asset_id, + *ap_wallet, + *mint_amount + ] + events: + - name: assets.Issued + result: { assetId: *asset_id, owner: *ap_wallet, amount: *mint_amount } + + its: + - name: Assets Parachain should be able to reserve transfer an Asset to Penpal Parachain + actions: + - extrinsics: + - chain: *assets_parachain + signer: *ap_signer + pallet: polkadotXcm + call: limitedReserveTransferAssets + args: [ + *pp_dest, # destination + { # beneficiary + V3: { + parents: 0, + interior: { + X1: { + AccountId32: { + id: *pp_acc + } + } + } + } + }, + { # assets + V3: [ + { + id: { + Concrete: { + parents: 0, + interior: { + X2: [ + { + PalletInstance: *assets_pallet_id + }, + { + GeneralIndex: *asset_id + } + ] + } + } + }, + fun: { + Fungible: *amount_to_send + } + } + ] + }, + 0, # feeAssetItem + Unlimited # weightLimit + ] + events: + - name: polkadotXcm.Attempted + threshold: *weight_threshold + result: { outcome: { Complete: { refTime: '679,150,000', proofSize: '6,196' }}} + - name: assets.Transferred + result: { + assetId: *asset_id, + from: *ap_wallet, + to: *pp_sovereign_sibl, + amount: *amount_to_send + } + + - name: polkadotXcm.limitedReserveTransferAssets (KSM) | Assets Parachain -> Penpal Parachain + its: + - name: Assets Parachain should be able to reserve transfer KSM to Penpal Parachain + actions: + - extrinsics: + - chain: *assets_parachain + signer: *ap_signer + pallet: polkadotXcm + call: limitedReserveTransferAssets + args: [ + *pp_dest, # destination + { # beneficiary + V3: { + parents: 0, + interior: { + X1: { + AccountId32: { + id: *pp_acc + } + } + } + } + }, + { # assets + V3: [ + *ap_ksm_fungible + ] + }, + 0, # feeAssetItem + Unlimited # weightLimit + ] + events: + - name: polkadotXcm.Attempted + threshold: *weight_threshold + result: { outcome: { Complete: { refTime: '679,150,000', proofSize: '6,196' }}} + - name: balances.Endowed + result: { + account: *pp_sovereign_sibl, + freeBalance: *amount + } + + - name: polkadotXcm.send( assets.forceCreateAsset ) | Penpal Parachain -> Assets Parachain + before: + - name: Get the asset balance of the Penpal Parachain Sovereign account in Assets Parachain + actions: + - queries: + assets_balance_pp_sovereign_before: + chain: *assets_parachain + pallet: assets + call: account + args: [ + *asset_id, + *pp_sovereign_sibl + ] + its: + - name: Penpal Parachain should be able to send XCM message paying its fee with sufficient asset in Assets Parachain + actions: + - extrinsics: + - chain: *penpal_parachain + signer: *pp_signer + sudo: true + pallet: polkadotXcm + call: send + args: [ + *ap_dest_routed, # destination + { + v3: [ #message + { + WithdrawAsset: [ + { + id: { + concrete: { + parents: 0, + interior: { + X2: [ + { PalletInstance: *assets_pallet_id }, + { GeneralIndex: *asset_id } + ] + } + } + }, + fun: { fungible: *amount }} + ] + }, + { + BuyExecution: { + fees: { id: *suff_asset, fun: { fungible: *amount }}, + weightLimit: Unlimited + } + }, + { + Transact: { + originKind: SovereignAccount, + requireWeightAtMost: *weight_at_most, + call: $force_create_asset2 + } + }, + { + RefundSurplus + }, + { + DepositAsset: { + assets: { Wild: All }, + beneficiary: { + parents: 0, + interior: { + X1: { + AccountId32: { + network: , # None + id: *pp_acc + } + } + }} + } + } + ] + } + ] + events: + - name: sudo.Sudid + result: { sudoResult: Ok } + - name: polkadotXcm.Sent + - name: assets.Burned + chain: *assets_parachain + result: { assetId: *asset_id, owner: *pp_sovereign_sibl } + - name: assets.Issued + chain: *assets_parachain + result: { assetId: *asset_id } + - queries: + assets_balance_pp_sovereign_after: + chain: *assets_parachain + pallet: assets + call: account + args: [ + *asset_id, + *pp_sovereign_sibl + ] + forced_created_asset2: + chain: *assets_parachain + pallet: assets + call: asset + args: [ 3 ] + - asserts: + isSome: + args: [ $forced_created_asset2 ] + - name: Should reduce the assets balance of the Penpal Parachain's SovereignAccount in the Assets Parachain + actions: + - asserts: + assetsDecreased: + args: [ + { + balances: { + before: $assets_balance_pp_sovereign_before, + after: $assets_balance_pp_sovereign_after, + }, + } + ] + + - name: Penpal Parachain SHOULD NOT be able to send XCM message paying its fee with sufficient assets if not enough balance + actions: + - extrinsics: + - chain: *penpal_parachain + signer: *pp_signer + sudo: true + pallet: polkadotXcm + call: send + args: [ + *ap_dest_routed, # destination + { + v3: [ #message + { + WithdrawAsset: [*ap_suff_asset_fungible_fail] + }, + { + BuyExecution: { + fees: *ap_suff_asset_fungible_fail, + weightLimit: Unlimited + } + }, + { + Transact: { + originKind: SovereignAccount, + requireWeightAtMost: *weight_at_most, + call: $force_create_asset2 + } + } + ] + } + ] + events: + - name: xcmpQueue.Fail + chain: *assets_parachain + threshold: *weight_threshold + result: { + error: FailedToTransactAsset, + weight: { refTime: '152,426,000', proofSize: '3,593' } + } diff --git a/cumulus/parachains/integration-tests/e2e/assets/asset-hub-kusama/config.toml b/cumulus/parachains/integration-tests/e2e/assets/asset-hub-kusama/config.toml new file mode 100644 index 000000000000..1ec06b3fa104 --- /dev/null +++ b/cumulus/parachains/integration-tests/e2e/assets/asset-hub-kusama/config.toml @@ -0,0 +1,71 @@ +[relaychain] +default_command = "./bin/polkadot" +default_args = [ "-lparachain=debug", "-lxcm=trace" ] +chain = "kusama-local" + + [[relaychain.nodes]] + name = "alice" + ws_port = 9900 + validator = true + args = ["--state-cache-size=0"] + + [[relaychain.nodes]] + name = "bob" + ws_port = 9901 + validator = true + + [[relaychain.nodes]] + name = "charlie" + ws_port = 9902 + validator = true + + [[relaychain.nodes]] + name = "dave" + ws_port = 9903 + validator = true + +[[parachains]] +id = 1000 +chain = "asset-hub-kusama-local" +cumulus_based = true + + [[parachains.collators]] + name = "collator1" + ws_port = 9910 + command = "./bin/polkadot-parachain" + args = [ "-lxcm=trace", "--state-cache-size=0" ] + + [[parachains.collators]] + name = "collator2" + ws_port = 9911 + command = "./bin/polkadot-parachain" + args = [ "-lxcm=trace" ] + +[[parachains]] +id = 2000 +chain = "penpal-kusama-2000" +cumulus_based = true + + [[parachains.collators]] + name = "collator3" + ws_port = 9920 + command = "./bin/polkadot-parachain" + args = [ "-lxcm=trace", "--state-cache-size=0" ] + + [[parachains.collators]] + name = "collator4" + ws_port = 9921 + command = "./bin/polkadot-parachain" + args = [ "-lxcm=trace" ] + +# [[hrmpChannels]] +# sender = 1000 +# recipient = 2000 +# maxCapacity = 8 +# maxMessageSize = 8192 + +# [[hrmpChannels]] +# sender = 2000 +# recipient = 1000 +# maxCapacity = 8 +# maxMessageSize = 8192 diff --git a/cumulus/parachains/integration-tests/e2e/assets/asset-hub-polkadot/0_xcm/0_init.yml b/cumulus/parachains/integration-tests/e2e/assets/asset-hub-polkadot/0_xcm/0_init.yml new file mode 100644 index 000000000000..a6d3fb3ec834 --- /dev/null +++ b/cumulus/parachains/integration-tests/e2e/assets/asset-hub-polkadot/0_xcm/0_init.yml @@ -0,0 +1,145 @@ +--- +settings: + chains: + relay_chain: &relay_chain + wsPort: 9800 + assets_parachain: &assets_parachain + wsPort: 9810 + paraId: &ap_id 1000 + penpal_parachain: &penpal_parachain + wsPort: 9820 + paraId: &pp_id 2000 + variables: + common: + xcm_version: &xcm_version '3' + require_weight_at_most: &weight_at_most {refTime: 1000000000, proofSize: 200000} + weight_threshold: &weight_threshold { refTime: [10, 10], proofSize: [10, 10] } + chains: + relay_chain: + signer: &rc_signer //Alice + assets_parachain_destination: &ap_dest { v3: { 0, interior: { x1: { parachain: *ap_id }}}} + penpal_parachain: + signer: &pp_signer //Alice + decodedCalls: + ap_force_xcm_version: + chain: *assets_parachain + pallet: polkadotXcm + call: forceXcmVersion + args: [ + { # location + parents: 1, + interior: Here + }, + *xcm_version # xcmVersion + ] + +tests: + - name: Initialize Chains + its: + - name: XCM supported versions between chains + actions: + - extrinsics: # Relay Chain sets supported version for Asset Parachain + - chain: *relay_chain + sudo: true + signer: *rc_signer + pallet: xcmPallet + call: forceXcmVersion + args: [ + { # location + parents: 0, + interior: { + X1: { + Parachain: *ap_id + } + } + }, + *xcm_version # xcmVersion + ] + events: + - name: sudo.Sudid + result: { sudoResult: Ok } + - name: xcmPallet.SupportedVersionChanged + result: { location: { parents: 0, interior: { X1: { Parachain: *ap_id }}}, version: *xcm_version } + - extrinsics: # Relay Chain sets supported version for Penpal Parachain + - chain: *relay_chain + sudo: true + signer: *rc_signer + pallet: xcmPallet + call: forceXcmVersion + args: [ + { # location + parents: 0, + interior: { + X1: { + Parachain: *pp_id + } + } + }, + *xcm_version # xcmVersion + ] + events: + - name: sudo.Sudid + result: { sudoResult: Ok } + - name: xcmPallet.SupportedVersionChanged + result: { location: { parents: 0, interior: { X1: { Parachain: *pp_id }}}, version: *xcm_version } + - extrinsics: # Asset Parachain sets supported version for Relay Chain through it + - chain: *relay_chain + signer: *rc_signer + sudo: true + pallet: xcmPallet + call: send + args: [ + *ap_dest, # destination + { + v3: [ #message + { + UnpaidExecution: { + weightLimit: { + limited: { + refTime: 3200000000, + proofSize: 200000 + } + } + } + }, + { + Transact: { + originKind: Superuser, + requireWeightAtMost: *weight_at_most, + call: $ap_force_xcm_version + } + } + ] + } + ] + events: + - name: sudo.Sudid + result: { sudoResult: Ok } + - name: xcmPallet.Sent + - name: dmpQueue.ExecutedDownward + chain: *assets_parachain + threshold: *weight_threshold + result: { + outcome: { Complete: { refTime: '1,019,210,000', proofSize: '200,000' }} + } + - name: polkadotXcm.SupportedVersionChanged + chain: *assets_parachain + result: { location: { parents: 1, interior: Here }, version: *xcm_version } + - extrinsics: # Penpal Parachain sets supported version for Relay Chain + - chain: *penpal_parachain + signer: *pp_signer + sudo: true + pallet: polkadotXcm + call: forceXcmVersion + args: [ + { # location + parents: 1, + interior: Here + }, + *xcm_version # xcmVersion + ] + events: + - name: sudo.Sudid + result: { sudoResult: Ok } + - name: polkadotXcm.SupportedVersionChanged + result: { location: { parents: 1, interior: Here}, version: *xcm_version } diff --git a/cumulus/parachains/integration-tests/e2e/assets/asset-hub-polkadot/0_xcm/1_dmp.yml b/cumulus/parachains/integration-tests/e2e/assets/asset-hub-polkadot/0_xcm/1_dmp.yml new file mode 100644 index 000000000000..36b296f3eb1f --- /dev/null +++ b/cumulus/parachains/integration-tests/e2e/assets/asset-hub-polkadot/0_xcm/1_dmp.yml @@ -0,0 +1,263 @@ +--- +settings: + chains: + relay_chain: &relay_chain + wsPort: 9800 + assets_parachain: &assets_parachain + wsPort: 9810 + paraId: &ap_id 1000 + variables: + common: + weight_threshold: &weight_threshold { refTime: [10, 10], proofSize: [10, 10] } + chains: + relay_chain: + signer: &rc_signer //Alice + wallet: &rc_wallet HNZata7iMYWmk5RvZRTiAsSDhV8366zq2YGb3tLH5Upf74F + assets_parachain_destination: &ap_dest { v3: { parents: 0, interior: { x1: { parachain: *ap_id }}}} + assets_parachain_account: &ap_acc '0xd43593c715fdd31c61141abd04a99fd6822c8558854ccde39a5684e7a56da27d' + assets_parachain_beneficiary: &ap_benf {v3: { parents: 0, interior: { x1: { accountId32: { id: *ap_acc }}}}} + ksm: &rc_ksm { concrete: { parents: 0, interior: { here: true }}} + amount: &amount 1000000000000 + ksm_fungible: &rc_ksm_fungible { id: *rc_ksm, fun: { fungible: *amount }} + require_weight_at_most: &rc_weight_at_most {refTime: 1000000000, proofSize: 200000} + assets_parachain_account: + wallet: &ap_wallet HNZata7iMYWmk5RvZRTiAsSDhV8366zq2YGb3tLH5Upf74F + asset_id: &asset_id 1 + asset_min_balance: &asset_ed 1000 + decodedCalls: + force_create_asset: + chain: *assets_parachain + pallet: assets + call: forceCreate + args: [ + *asset_id, + { Id: *ap_wallet }, # owner + true, # isSufficient + *asset_ed # minBalance + ] + +tests: + - name: DMP + its: [] + describes: + - name: xcmPallet.limitedTeleportAssets + before: &before_get_balances + - name: Get the balances of the Relay Chain's sender & Assets Parachain's receiver + actions: + - queries: + balance_rc_sender_before: + chain: *relay_chain + pallet: system + call: account + args: [ *rc_wallet ] + balance_ap_receiver_before: + chain: *assets_parachain + pallet: system + call: account + args: [ *ap_wallet ] + its: + - name: Should teleport native assets from the Relay Chain to the Assets Parachain + actions: + - extrinsics: + - chain: *relay_chain + signer: *rc_signer + pallet: xcmPallet + call: limitedTeleportAssets + args: [ + *ap_dest, # destination + *ap_benf, # beneficiary + { v3: [ *rc_ksm_fungible ] }, # assets + 0, # feeAssetItem + { unlimited: true } # weightLimit + ] + events: + - name: xcmPallet.Attempted + threshold: *weight_threshold + result: { outcome: { Complete: { refTime: '3,000,000,000', proofSize: 0 }}} + - name: dmpQueue.ExecutedDownward + chain: *assets_parachain + threshold: *weight_threshold + result: { outcome: { Complete: { refTime: '166,944,000', proofSize: 0 }}} + - queries: + balance_rc_sender_after: + chain: *relay_chain + pallet: system + call: account + args: [ *rc_wallet ] + balance_ap_receiver_after: + chain: *assets_parachain + pallet: system + call: account + args: [ *ap_wallet ] + + - name: Should reduce the balance of the sender + actions: + - asserts: + balanceDecreased: + args: [ + { + balances: { + before: $balance_rc_sender_before, + after: $balance_rc_sender_after, + }, + amount: *amount + } + ] + + - name: Should increase the balance of the receiver + actions: + - asserts: + balanceIncreased: + args: [ + { + balances: { + before: $balance_ap_receiver_before, + after: $balance_ap_receiver_after, + } + } + ] + + - name: xcmPallet.send | Superuser - Transact(assets.forceCreate) + its: + - name: Relay Chain Superuser account SHOULD be able to execute a XCM Transact instruction in the Assets Parachain + actions: + - extrinsics: + - chain: *relay_chain + signer: *rc_signer + sudo: true + pallet: xcmPallet + call: send + args: [ + *ap_dest, # destination + { + v3: [ #message + { + UnpaidExecution: { + weightLimit: Unlimited + } + }, + { + Transact: { + originType: Superuser, + requireWeightAtMost: *rc_weight_at_most, + call: $force_create_asset + } + } + ] + } + ] + events: + - name: xcmPallet.Sent + - name: dmpQueue.ExecutedDownward + chain: *assets_parachain + threshold: *weight_threshold + result: { outcome: { Complete: { refTime: '1,014,103,000', proofSize: '200,000' }}} + - queries: + forced_created_asset: + chain: *assets_parachain + pallet: assets + call: asset + args: [ *asset_id ] + - asserts: + isSome: + args: [ $forced_created_asset ] + + - name: xcmPallet.send | Native - Transact(assets.forceCreate) + its: + - name: Relay Chain Native account SHOULD NOT be able to execute a XCM Transact instruction in the Assets Parachain + actions: + - extrinsics: + - chain: *relay_chain + signer: *rc_signer + pallet: xcmPallet + call: send + args: [ + *ap_dest, # destination + { + v3: [ #message + { + UnpaidExecution: { + weightLimit: Unlimited + } + }, + { + Transact: { + originType: Native, + requireWeightAtMost: *rc_weight_at_most, + call: $force_create_asset + } + } + ] + } + ] + events: + - name: system.ExtrinsicFailed + result: { dispatchError: BadOrigin } + + - name: xcmPallet.limitedReserveTransferAssets + before: *before_get_balances + its: + - name: SHOULD NOT reserved transfer native assets from the Relay Chain to the Assets Parachain + actions: + - extrinsics: + - chain: *relay_chain + signer: *rc_signer + pallet: xcmPallet + call: limitedReserveTransferAssets + args: [ + *ap_dest, # destination + *ap_benf, # beneficiary + { v3: [ *rc_ksm_fungible ] }, # assets + 0, # feeAssetItem + { unlimited: true } # weightLimit + ] + events: + - name: xcmPallet.Attempted + threshold: *weight_threshold + result: { outcome: { Complete: { refTime: '2,000,000,000', proofSize: 0 }}} + - name: dmpQueue.ExecutedDownward + chain: *assets_parachain + threshold: *weight_threshold + result: { + outcome: { + Incomplete: [ + { refTime: '1,000,000,000', proofSize: 0 }, + UntrustedReserveLocation + ] + } + } + - queries: + balance_rc_sender_after: + chain: *relay_chain + pallet: system + call: account + args: [ *rc_wallet ] + balance_ap_receiver_after: + chain: *assets_parachain + pallet: system + call: account + args: [ *ap_wallet ] + + - name: Should reduce the balance of the sender + actions: + - asserts: + balanceDecreased: + args: [ + { + balances: { + before: $balance_rc_sender_before, + after: $balance_rc_sender_after, + }, + amount: *amount + } + ] + + - name: Should keep the balance of the receiver + actions: + - asserts: + equal: + args: + [ + $balance_ap_receiver_before, + $balance_ap_receiver_after + ] diff --git a/cumulus/parachains/integration-tests/e2e/assets/asset-hub-polkadot/0_xcm/2_ump.yml b/cumulus/parachains/integration-tests/e2e/assets/asset-hub-polkadot/0_xcm/2_ump.yml new file mode 100644 index 000000000000..fa84d4b006a7 --- /dev/null +++ b/cumulus/parachains/integration-tests/e2e/assets/asset-hub-polkadot/0_xcm/2_ump.yml @@ -0,0 +1,194 @@ +--- +settings: + chains: + relay_chain: &relay_chain + wsPort: 9800 + assets_parachain: &assets_parachain + wsPort: 9810 + paraId: &ap_id 1000 + variables: + common: + amount: &amount 1000000000000 + require_weight_at_most: &weight_at_most {refTime: 1000000000, proofSize: 0} + weight_threshold: &weight_threshold { refTime: [10, 10], proofSize: [10, 10] } + chains: + relay_chain: + signer: &rc_signer //Alice + wallet: &rc_wallet HNZata7iMYWmk5RvZRTiAsSDhV8366zq2YGb3tLH5Upf74F + assets_parachain_destination: &ap_dest { v3: { 0, interior: { x1: { parachain: *ap_id }}}} + assets_parachain_account: &ap_acc '0xd43593c715fdd31c61141abd04a99fd6822c8558854ccde39a5684e7a56da27d' + assets_parachain_beneficiary: &ap_benf {v3: { parents: 0, interior: { x1: { accountId32: { id: *ap_acc }}}}} + ksm: &rc_ksm { concrete: { 0, interior: { here: true }}} + ksm_fungible: &rc_ksm_fungible { id: *rc_ksm, fun: { fungible: *amount }} + assets_parachain_account: + signer: &ap_signer //Alice + wallet: &ap_wallet HNZata7iMYWmk5RvZRTiAsSDhV8366zq2YGb3tLH5Upf74F + relay_chain_destination: &rc_dest { v3: { parents: 1, interior: { here: true }}} + assets_parachain_account: &rc_acc '0xd43593c715fdd31c61141abd04a99fd6822c8558854ccde39a5684e7a56da27d' + relay_chain_beneficiary: &rc_benf {v3: { parents: 0, interior: { x1: { accountId32: { id: *rc_acc }}}}} + ksm: &ap_ksm { concrete: { parents: 1, interior: { here: true }}} + ksm_fungible: &ap_ksm_fungible { id: *ap_ksm, fun: { fungible: *amount }} + decodedCalls: + system_remark: + chain: *relay_chain + pallet: system + call: remark + args: [ 0x0011 ] + +tests: + - name: UMP + describes: + - name: polkadotXcm.limitedTeleportAssets + before: + - name: DEPENDENCY | Do a 'limitedTeleportAssets' from the Relay Chain to the Assets Parachain to have funds to send them back + actions: + - extrinsics: + - chain: *relay_chain + signer: *rc_signer + pallet: xcmPallet + call: limitedTeleportAssets + args: [ + *ap_dest, # destination + *ap_benf, # beneficiary + { v3: [ *rc_ksm_fungible ] }, # assets + 0, # feeAssetItem + { unlimited: true } # weightLimit + ] + events: + - name: xcmPallet.Attempted + threshold: *weight_threshold + result: { outcome: { Complete: { refTime: '3,000,000,000', proofSize: 0 }}} + - name: dmpQueue.ExecutedDownward + chain: *assets_parachain + threshold: *weight_threshold + result: { outcome: { Complete: { refTime: '166,944,000', proofSize: 0 }}} + + - name: Get the balances of the Assets Parachain's sender & Relay Chain's receiver + actions: + - queries: + balance_ap_sender_before: + chain: *assets_parachain + pallet: system + call: account + args: [ *ap_wallet ] + balance_rc_receiver_before: + chain: *relay_chain + pallet: system + call: account + args: [ *rc_wallet ] + + its: + - name: Should be able to teleport native assets back from Assets Parachain to the Relay Chain + actions: + - extrinsics: + - chain: *assets_parachain + signer: *ap_signer + pallet: polkadotXcm + call: limitedTeleportAssets + args: [ + *rc_dest, # destination + *rc_benf, # beneficiary + { v3: [ *ap_ksm_fungible ] }, # assets + 0, # feeAssetItem + { unlimited: true } # weightLimit + ] + events: + - name: polkadotXcm.Attempted + threshold: *weight_threshold + result: { outcome: { Complete: { refTime: '533,283,000', proofSize: '7,096' }}} + - name: messageQueue.Processed + chain: *relay_chain + threshold: *weight_threshold + result: { origin: { Ump: { Para: '1,000' } }, weightUsed: { refTime: '4,000,000,000', proofSize: '0' }, success: true } + - queries: + balance_ap_sender_after: + chain: *assets_parachain + pallet: system + call: account + args: [ *ap_wallet ] + balance_rc_receiver_after: + chain: *relay_chain + pallet: system + call: account + args: [ *rc_wallet ] + + - name: Should reduce the balance of the sender + actions: + - asserts: + balanceDecreased: + args: [ + { + balances: { + before: $balance_ap_sender_before, + after: $balance_ap_sender_after, + }, + amount: *amount + } + ] + + - name: Should increase the balance of the receiver + actions: + - asserts: + balanceIncreased: + args: [ + { + balances: { + before: $balance_rc_receiver_before, + after: $balance_rc_receiver_after, + } + } + ] + + - name: polkadotXcm.send | Native - Transact(system.remark) + its: + - name: Assets Parachain SHOULD NOT be able to dispatch 'send' call + actions: + - extrinsics: + - chain: *assets_parachain + signer: *ap_signer + pallet: polkadotXcm + call: send + args: [ + *rc_dest, # destination + { + v3: [ #message + { + UnpaidExecution: { + weightLimit: Unlimited + } + }, + { + Transact: { + originType: Native, + requireWeightAtMost: *weight_at_most, + call: $system_remark + } + } + ] + } + ] + events: + - name: system.ExtrinsicFailed + attributes: + - type: SpRuntimeDispatchError + value: BadOrigin + + - name: polkadotXcm.limitedReserveTransferAssets + its: + - name: Should NOT be able to reserve transfer native assets from the Assets Parachain to the Relay Chain + actions: + - extrinsics: + - chain: *assets_parachain + signer: *ap_signer + pallet: polkadotXcm + call: limitedReserveTransferAssets + args: [ + *rc_dest, # destination + *rc_benf, # beneficiary + { v3: [ *ap_ksm_fungible ] }, # assets + 0, # feeAssetItem + { unlimited: true } # weightLimit + ] + events: + - name: polkadotXcm.Attempted + result: { outcome: { Error: Barrier }} diff --git a/cumulus/parachains/integration-tests/e2e/assets/asset-hub-polkadot/0_xcm/3_force_hrmp-open-channels.yml b/cumulus/parachains/integration-tests/e2e/assets/asset-hub-polkadot/0_xcm/3_force_hrmp-open-channels.yml new file mode 100644 index 000000000000..ecf344a073b4 --- /dev/null +++ b/cumulus/parachains/integration-tests/e2e/assets/asset-hub-polkadot/0_xcm/3_force_hrmp-open-channels.yml @@ -0,0 +1,120 @@ +--- +settings: + chains: + relay_chain: &relay_chain + wsPort: 9800 + assets_parachain: + wsPort: 9810 + paraId: &ap_id 1000 + penpal_parachain: + wsPort: 9820 + paraId: &pp_id 2000 + variables: + common: + amount: &amount 2000000000000 + hrmp_channels: + proposed_max_capacity: &max_capacity 8 + proposed_max_message_size: &max_message_size 8192 + channel: &channel { + maxCapacity: *max_capacity, + maxTotalSize: *max_message_size, + maxMessageSize: *max_message_size, + msgCount: 0, + totalSize: 0, + mqcHead: null, + senderDeposit: 0, + recipientDeposit: 0 + } + chains: + relay_chain: + signer: &rc_signer //Alice + assets_parachain_account: + sovereign_account: &ap_sovereign 5Ec4AhPZk8STuex8Wsi9TwDtJQxKqzPJRCH7348Xtcs9vZLJ + penpal_parachain: + sovereign_account: &pp_sovereign F7fq1jMZkfuCuoMTyiEVAP2DMpMt18WopgBqTJznLihLNbZ + +tests: + - name: HRMP + beforeEach: + - name: DEPENDENCY | Penpal Parachain Sovereign account in the Relay Chain needs to be funded + actions: + - extrinsics: + - chain: *relay_chain + signer: *rc_signer + pallet: balances + call: transfer + args: [ + *pp_sovereign, # destination + *amount, # value + ] + events: + - name: balances.Transfer + + - name: DEPENDENCY | Assets Parachain Sovereign account in the Relay Chain needs to be funded + actions: + - extrinsics: + - chain: *relay_chain + signer: *rc_signer + pallet: balances + call: transfer + args: [ + *ap_sovereign, # destination + *amount, # value + ] + events: + - name: balances.Transfer + describes: + - name: hrmp.hrmpInitOpenChannel (Penpal Parachain → Assets Parachain) + its: + - name: Open Penpal Parachain to Assets Parachain + actions: + - extrinsics: + - chain: *relay_chain + signer: *rc_signer + sudo: true + pallet: hrmp + call: forceOpenHrmpChannel + args: [ + *pp_id, + *ap_id, + *max_capacity, + *max_message_size + ] + events: + - name: sudo.Sudid + result: { sudoResult: Ok } + - name: hrmp.HrmpChannelForceOpened + - name: hrmp.hrmpInitOpenChannel (Assets Parachain → PenPal Parachain) + its: + - name: Open Assets Parachain to PenPal Parachain + actions: + - extrinsics: + - chain: *relay_chain + signer: *rc_signer + sudo: true + pallet: hrmp + call: forceOpenHrmpChannel + args: [ + *ap_id, + *pp_id, + *max_capacity, + *max_message_size + ] + events: + - name: sudo.Sudid + result: { sudoResult: Ok } + - name: hrmp.HrmpChannelForceOpened + - name: hrmp.forceProcessHrmpOpen (make sure all the channels are open) + its: + - name: Make sure all the pending channels are open + actions: + - extrinsics: + - chain: *relay_chain + signer: *rc_signer + sudo: true + pallet: hrmp + call: forceProcessHrmpOpen + args: [ 2 ] + events: + - name: sudo.Sudid + result: { sudoResult: Ok } diff --git a/cumulus/parachains/integration-tests/e2e/assets/asset-hub-polkadot/0_xcm/4_hrmp.yml b/cumulus/parachains/integration-tests/e2e/assets/asset-hub-polkadot/0_xcm/4_hrmp.yml new file mode 100644 index 000000000000..681af698c16d --- /dev/null +++ b/cumulus/parachains/integration-tests/e2e/assets/asset-hub-polkadot/0_xcm/4_hrmp.yml @@ -0,0 +1,388 @@ +--- +# Note: This tests depends on the 3_hrmp-open-channels.yml for opening channels, otherwise teleports aren't going to +# work. +settings: + chains: + relay_chain: &relay_chain + wsPort: 9800 + assets_parachain: &assets_parachain + wsPort: 9810 + paraId: &ap_id 1000 + penpal_parachain: &penpal_parachain + wsPort: 9820 + paraId: &pp_id 2000 + variables: + common: + mint_amount: &mint_amount 1000000000000 + amount: &amount 1000000000000 + require_weight_at_most: &weight_at_most {refTime: 1200000000, proofSize: 20000} + amount_to_send: &amount_to_send 500000000000 + weight_threshold: &weight_threshold { refTime: [10, 10], proofSize: [10, 10] } + chains: + relay_chain: + signer: &rc_signer //Alice + assets_parachain_destination: &ap_dest { v3: { 0, interior: { x1: { parachain: *ap_id }}}} + assets_parachain_dest_routed: &ap_dest_routed { v3: { parents: 1, interior: { x1: { parachain: *ap_id } }}} + assets_parachain_account: + signer: &ap_signer //Alice + wallet: &ap_wallet 15oF4uVJwmo4TdGW7VfQxNLavjCXviqxT9S1MgbjMNHr6Sp5 + asset_id: &asset_id 2 + assets_pallet_id: &assets_pallet_id 50 + asset_min_balance: &asset_ed 1000 + penpal_parachain_destination: &pp_dest { v3: { parents: 1, interior: { x1: { parachain: *pp_id } }}} + ksm: &ap_ksm { concrete: { parents: 1, interior: { here: true }}} + ksm_fungible: &ap_ksm_fungible { id: *ap_ksm, fun: { fungible: *amount }} + suff_asset: &suff_asset { concrete: { parents: 0, interior: { x2: [ { PalletInstance: *assets_pallet_id }, { GeneralIndex: *asset_id } ] }}} + suff_asset_fail: &suff_asset_fail { concrete: { parents: 0, interior: { x2: [ { PalletInstance: *assets_pallet_id }, { GeneralIndex: 3 } ] }}} + suff_asset_fungible_fail: &ap_suff_asset_fungible_fail { id: *suff_asset_fail, fun: { fungible: 200000000000 }} + penpal_parachain: + sovereign_account: &pp_sovereign_sibl 13cKp89Msu7M2PiaCuuGr1BzAsD5V3vaVbDMs3YtjMZHdGwR + signer: &pp_signer //Alice + penpal_parachain_account: &pp_acc '0xd43593c715fdd31c61141abd04a99fd6822c8558854ccde39a5684e7a56da27d' + decodedCalls: + force_create_asset: + chain: *assets_parachain + pallet: assets + call: forceCreate + args: [ + *asset_id, + { Id: *ap_wallet }, # owner + true, # isSufficient + *asset_ed # minBalance + ] + force_create_asset2: + chain: *assets_parachain + pallet: assets + call: forceCreate + args: [ + *asset_id, + { Id: *ap_wallet }, # owner + true, # isSufficient + *asset_ed # minBalance + ] + +tests: + - name: HRMP + describes: + - name: polkadotXcm.limitedReserveTransferAssets (Asset) | Assets Parachain -> Penpal Parachain + before: + - name: DEPENDENCY | A sufficient Asset should exist in the Assets Parachain + actions: + - extrinsics: + - chain: *relay_chain + signer: *rc_signer + sudo: true + pallet: xcmPallet + call: send + args: [ + *ap_dest, # destination + { + v3: [ #message + { + UnpaidExecution: { + weightLimit: Unlimited + } + }, + { + SetTopic: '0x0123456789012345678901234567891201234567890123456789012345678912' + }, + { + Transact: { + originKind: Superuser, + requireWeightAtMost: *weight_at_most, + call: $force_create_asset + } + } + ] + } + ] + events: + - name: xcmPallet.Sent + - name: dmpQueue.ExecutedDownward + chain: *assets_parachain + threshold: *weight_threshold + result: { outcome: { Complete: { refTime: '1,216,703,000', proofSize: '20,000' }}} + - queries: + forced_created_asset: + chain: *assets_parachain + pallet: assets + call: asset + args: [ *asset_id ] + - asserts: + isSome: + args: [ $forced_created_asset ] + + - name: DEPENDENCY | Some Assets should be minted for the sender + actions: + - extrinsics: + - chain: *assets_parachain + signer: *ap_signer + pallet: assets + call: mint + args: [ + *asset_id, + *ap_wallet, + *mint_amount + ] + events: + - name: assets.Issued + result: { assetId: *asset_id, owner: *ap_wallet, amount: *mint_amount } + + its: + - name: Assets Parachain should be able to reserve transfer an Asset to Penpal Parachain + actions: + - extrinsics: + - chain: *assets_parachain + signer: *ap_signer + pallet: polkadotXcm + call: limitedReserveTransferAssets + args: [ + *pp_dest, # destination + { # beneficiary + V3: { + parents: 0, + interior: { + X1: { + AccountId32: { + id: *pp_acc + } + } + } + } + }, + { # assets + V3: [ + { + id: { + Concrete: { + parents: 0, + interior: { + X2: [ + { + PalletInstance: *assets_pallet_id + }, + { + GeneralIndex: *asset_id + } + ] + } + } + }, + fun: { + Fungible: *amount_to_send + } + } + ] + }, + 0, # feeAssetItem + Unlimited # weightLimit + ] + events: + - name: polkadotXcm.Attempted + threshold: *weight_threshold + result: { outcome: { Complete: { refTime: '673,627,000', proofSize: '6,196' }}} + - name: assets.Transferred + result: { + assetId: *asset_id, + from: *ap_wallet, + to: *pp_sovereign_sibl, + amount: *amount_to_send + } + + - name: polkadotXcm.limitedReserveTransferAssets (KSM) | Assets Parachain -> Penpal Parachain + its: + - name: Assets Parachain should be able to reserve transfer KSM to Penpal Parachain + actions: + - extrinsics: + - chain: *assets_parachain + signer: *ap_signer + pallet: polkadotXcm + call: limitedReserveTransferAssets + args: [ + *pp_dest, # destination + { # beneficiary + V3: { + parents: 0, + interior: { + X1: { + AccountId32: { + id: *pp_acc + } + } + } + } + }, + { # assets + V3: [ + *ap_ksm_fungible + ] + }, + 0, # feeAssetItem + Unlimited # weightLimit + ] + events: + - name: polkadotXcm.Attempted + threshold: *weight_threshold + result: { outcome: { Complete: { refTime: '679,150,000', proofSize: '6,196' }}} + - name: balances.Endowed + result: { + account: *pp_sovereign_sibl, + freeBalance: *amount + } + + - name: polkadotXcm.send( assets.forceCreateAsset ) | Penpal Parachain -> Assets Parachain + before: + - name: Get the asset balance of the Penpal Parachain Sovereign account in Assets Parachain + actions: + - queries: + assets_balance_pp_sovereign_before: + chain: *assets_parachain + pallet: assets + call: account + args: [ + *asset_id, + *pp_sovereign_sibl + ] + its: + - name: Penpal Parachain should be able to send XCM message paying its fee with sufficient asset in Assets Parachain + actions: + - extrinsics: + - chain: *penpal_parachain + signer: *pp_signer + sudo: true + pallet: polkadotXcm + call: send + args: [ + *ap_dest_routed, # destination + { + v3: [ #message + { + WithdrawAsset: [ + { + id: { + concrete: { + parents: 0, + interior: { + X2: [ + { PalletInstance: *assets_pallet_id }, + { GeneralIndex: *asset_id } + ] + } + } + }, + fun: { fungible: *amount_to_send }} + ] + }, + { + BuyExecution: { + fees: { id: *suff_asset, fun: { fungible: *amount_to_send }}, + weightLimit: Unlimited + } + }, + { + Transact: { + originKind: SovereignAccount, + requireWeightAtMost: *weight_at_most, + call: $force_create_asset2 + } + }, + { + RefundSurplus + }, + { + DepositAsset: { + assets: { Wild: All }, + beneficiary: { + parents: 0, + interior: { + X1: { + AccountId32: { + network: , # None + id: *pp_acc + } + } + }} + } + } + ] + } + ] + events: + - name: sudo.Sudid + result: { sudoResult: Ok } + - name: polkadotXcm.Sent + - name: assets.Burned + chain: *assets_parachain + result: { assetId: *asset_id, owner: *pp_sovereign_sibl } + - name: assets.Issued + chain: *assets_parachain + result: { assetId: *asset_id } + - queries: + assets_balance_pp_sovereign_after: + chain: *assets_parachain + pallet: assets + call: account + args: [ + *asset_id, + *pp_sovereign_sibl + ] + forced_created_asset2: + chain: *assets_parachain + pallet: assets + call: asset + args: [ 3 ] + - asserts: + isSome: + args: [ $forced_created_asset2 ] + - name: Should reduce the assets balance of the Penpal Parachain's SovereignAccount in the Assets Parachain + actions: + - asserts: + assetsDecreased: + args: [ + { + balances: { + before: $assets_balance_pp_sovereign_before, + after: $assets_balance_pp_sovereign_after, + }, + } + ] + + - name: Penpal Parachain SHOULD NOT be able to send XCM message paying its fee with sufficient assets if not enough balance + actions: + - extrinsics: + - chain: *penpal_parachain + signer: *pp_signer + sudo: true + pallet: polkadotXcm + call: send + args: [ + *ap_dest_routed, # destination + { + v3: [ #message + { + WithdrawAsset: [*ap_suff_asset_fungible_fail] + }, + { + BuyExecution: { + fees: *ap_suff_asset_fungible_fail, + weightLimit: Unlimited + } + }, + { + Transact: { + originKind: SovereignAccount, + requireWeightAtMost: *weight_at_most, + call: $force_create_asset2 + } + } + ] + } + ] + events: + - name: xcmpQueue.Fail + chain: *assets_parachain + threshold: *weight_threshold + result: { + error: FailedToTransactAsset, + weight: { refTime: '152,426,000', proofSize: '3,593' } + } diff --git a/cumulus/parachains/integration-tests/e2e/assets/asset-hub-polkadot/config.toml b/cumulus/parachains/integration-tests/e2e/assets/asset-hub-polkadot/config.toml new file mode 100644 index 000000000000..da53cd0ad4f2 --- /dev/null +++ b/cumulus/parachains/integration-tests/e2e/assets/asset-hub-polkadot/config.toml @@ -0,0 +1,72 @@ +[relaychain] +default_command = "./bin/polkadot" +default_args = [ "-lparachain=debug", "-lxcm=trace" ] +chain = "polkadot-local" + + [[relaychain.nodes]] + name = "alice" + ws_port = 9800 + validator = true + args = ["--state-cache-size=0"] + + [[relaychain.nodes]] + name = "bob" + ws_port = 9801 + validator = true + + [[relaychain.nodes]] + name = "charlie" + ws_port = 9802 + validator = true + + [[relaychain.nodes]] + name = "dave" + ws_port = 9803 + validator = true + +[[parachains]] +id = 1000 +chain = "asset-hub-polkadot-local" +cumulus_based = true + + [[parachains.collators]] + name = "collator1" + ws_port = 9810 + command = "./bin/polkadot-parachain" + args = [ "-lxcm=trace", "--state-cache-size=0" ] + + [[parachains.collators]] + name = "collator2" + ws_port = 9811 + command = "./bin/polkadot-parachain" + args = [ "-lxcm=trace" ] + + +[[parachains]] +id = 2000 +chain = "penpal-polkadot-2000" +cumulus_based = true + + [[parachains.collators]] + name = "collator3" + ws_port = 9820 + command = "./bin/polkadot-parachain" + args = [ "-lxcm=trace", "--state-cache-size=0" ] + + [[parachains.collators]] + name = "collator4" + ws_port = 9821 + command = "./bin/polkadot-parachain" + args = [ "-lxcm=trace" ] + +# [[hrmpChannels]] +# sender = 1000 +# recipient = 2000 +# maxCapacity = 8 +# maxMessageSize = 8192 + +# [[hrmpChannels]] +# sender = 2000 +# recipient = 1000 +# maxCapacity = 8 +# maxMessageSize = 8192 diff --git a/cumulus/parachains/integration-tests/e2e/collectives/collectives-polkadot/0_xcm/0_init.yml b/cumulus/parachains/integration-tests/e2e/collectives/collectives-polkadot/0_xcm/0_init.yml new file mode 100644 index 000000000000..33f4d603e2a7 --- /dev/null +++ b/cumulus/parachains/integration-tests/e2e/collectives/collectives-polkadot/0_xcm/0_init.yml @@ -0,0 +1,166 @@ +--- +settings: + chains: + relay_chain: &relay_chain + wsPort: 9700 + collectives_parachain: &collectives_parachain + wsPort: 9710 + paraId: &cp_id 1001 + assethub_parachain: &assethub_parachain + wsPort: 9810 + paraId: &sp_id 1000 + variables: + xcm_version: &xcm_version 3 + weight_threshold: &weight_threshold { refTime: [10, 10], proofSize: [10, 10] } + chains: + accounts: + alice_signer: &alice_signer //Alice + decodedCalls: + ap_force_xcm_version: + chain: *collectives_parachain + pallet: polkadotXcm + call: forceXcmVersion + args: [ + { # location + parents: 1, + interior: Here + }, + *xcm_version + ] + +tests: + - name: Initialize Chains + its: + - name: XCM supported versions between chains + actions: + - extrinsics: # Relay Chain sets supported version for Collectives Parachain + - chain: *relay_chain + sudo: true + signer: *alice_signer + pallet: xcmPallet + call: forceXcmVersion + args: [ + { # location + parents: 0, + interior: { + X1: { + Parachain: *cp_id + } + } + }, + *xcm_version + ] + events: + - name: sudo.Sudid + result: { sudoResult: Ok } + - name: xcmPallet.SupportedVersionChanged + result: { location: { parents: 0, interior: { X1: { Parachain: *cp_id }}}, version: *xcm_version } + - extrinsics: # Collectives Parachain sets supported version for Relay Chain through it + - chain: *relay_chain + signer: *alice_signer + sudo: true + pallet: xcmPallet + call: send + args: [ + { v3: { 0, interior: { x1: { parachain: *cp_id }}}}, # destination + { + v3: [ # message + { + UnpaidExecution: { + weightLimit: { + limited: { + refTime: 2200000000, # 2_200_000_000 + proofSize: 200000, # 200_000 + }, + } + } + }, + { + Transact: { + originKind: Superuser, + requireWeightAtMost: { + refTime: 200000000, # 200_000_000 + proofSize: 0, + }, + call: $ap_force_xcm_version + } + } + ] + } + ] + events: + - name: sudo.Sudid + result: { sudoResult: Ok } + - name: xcmPallet.Sent + - name: polkadotXcm.SupportedVersionChanged + chain: *collectives_parachain + result: { location: { parents: 1, interior: Here }, version: *xcm_version } + - name: dmpQueue.ExecutedDownward + chain: *collectives_parachain + threshold: *weight_threshold + result: { outcome: { Complete: { refTime: '2,200,000,000', proofSize: 0 }}} + - extrinsics: # Relay Chain sets supported version for AssetHub Parachain + - chain: *relay_chain + sudo: true + signer: *alice_signer + pallet: xcmPallet + call: forceXcmVersion + args: [ + { # location + parents: 0, + interior: { + X1: { + Parachain: *sp_id + } + } + }, + *xcm_version + ] + events: + - name: sudo.Sudid + result: { sudoResult: Ok } + - name: xcmPallet.SupportedVersionChanged + result: { location: { parents: 0, interior: { X1: { Parachain: *sp_id } } }, version: *xcm_version } + - extrinsics: # AssetHub Parachain sets supported version for Relay Chain through it + - chain: *relay_chain + signer: *alice_signer + sudo: true + pallet: xcmPallet + call: send + args: [ + { v3: { 0, interior: { x1: { parachain: *sp_id }}}}, # destination + { + v3: [ # message + { + UnpaidExecution: { + weightLimit: { + limited: { + refTime: 2200000000, # 2_200_000_000 + proofSize: 200000, # 200_000 + }, + } + } + }, + { + Transact: { + originKind: Superuser, + requireWeightAtMost: { + refTime: 200000000, # 200_000_000 + proofSize: 0, + }, + call: $ap_force_xcm_version + } + } + ] + } + ] + events: + - name: sudo.Sudid + result: { sudoResult: Ok } + - name: xcmPallet.Sent + - name: polkadotXcm.SupportedVersionChanged + chain: *assethub_parachain + result: { location: { parents: 1, interior: Here }, version: *xcm_version } + - name: dmpQueue.ExecutedDownward + chain: *assethub_parachain + result: { outcome: { Complete: {} } } diff --git a/cumulus/parachains/integration-tests/e2e/collectives/collectives-polkadot/0_xcm/1_teleport.yml b/cumulus/parachains/integration-tests/e2e/collectives/collectives-polkadot/0_xcm/1_teleport.yml new file mode 100644 index 000000000000..cda04859b195 --- /dev/null +++ b/cumulus/parachains/integration-tests/e2e/collectives/collectives-polkadot/0_xcm/1_teleport.yml @@ -0,0 +1,168 @@ +--- +settings: + chains: + relay_chain: &relay_chain + wsPort: 9700 + collectives_parachain: &collectives_parachain + wsPort: 9710 + paraId: &cp_id 1001 + variables: + weight_threshold: &weight_threshold { refTime: [10, 10], proofSize: [10, 10] } + accounts: + alice_signer: &acc_alice_signer //Alice + alice_account32: &acc_alice_acc32 '0xd43593c715fdd31c61141abd04a99fd6822c8558854ccde39a5684e7a56da27d' + alice_ss58: &acc_alice_ss58 '15oF4uVJwmo4TdGW7VfQxNLavjCXviqxT9S1MgbjMNHr6Sp5' + checking_account: &checking_account '13UVJyLnbVp9x5XDyJv8g8r3UddNwBrdaH7AADCmw9XQWvYW' + +tests: + - name: Teleport assets from Relay Chain to Collectives Parachain successful. + before: + - name: Get the Alice balances on Relay & Collectives Chains. + actions: + - queries: + balance_rc_alice_1: + chain: *relay_chain + pallet: system + call: account + args: [ *acc_alice_acc32 ] + balance_cp_alice_1: + chain: *collectives_parachain + pallet: system + call: account + args: [ *acc_alice_acc32 ] + its: + - name: Teleport assets from Relay Chain to Collectives Parachain + actions: + - extrinsics: + - chain: *relay_chain + signer: *acc_alice_signer + pallet: xcmPallet + call: teleportAssets + args: [ + { v3: { 0, interior: { x1: { parachain: *cp_id }}}}, # destination + { v3: { parents: 0, interior: { x1: { accountId32: { id: *acc_alice_acc32 }}}}}, # beneficiary + { + v3: [ + # { + # # TODO use a separate Assets to pay a fee, to receive an exact amount of assets on beneficiary account. + # # a call with two assets fails with an error right now. + # id: { concrete: { 0, interior: { here: true }}}, + # fun: { fungible: 1000000000000 } # 1_000_000_000_000 + # }, + { + id: { concrete: { 0, interior: { here: true }}}, + fun: { fungible: 20000000000000 } # 20_000_000_000_000 + } + ] + }, # assets + 0, # feeAssetItem + ] + events: + - name: xcmPallet.Attempted + threshold: *weight_threshold + result: { outcome: { Complete: { refTime: '3,000,000,000', proofSize: 0 }}} + - name: dmpQueue.ExecutedDownward + chain: *collectives_parachain + threshold: *weight_threshold + result: { outcome: { Complete: { refTime: '4,000,000,000', proofSize: 0 }}} + - queries: + balance_rc_alice_2: + chain: *relay_chain + pallet: system + call: account + args: [ *acc_alice_acc32 ] + balance_cp_alice_2: + chain: *collectives_parachain + pallet: system + call: account + args: [ *acc_alice_acc32 ] + - name: Alice deposit check, balance decreased on Relay Chain, increased on Collectives. + actions: + - asserts: + balanceDecreased: + args: [ + { + balances: { + before: $balance_rc_alice_1, + after: $balance_rc_alice_2, + } + } + ] + balanceIncreased: + args: [ + { + balances: { + before: $balance_cp_alice_1, + after: $balance_cp_alice_2, + } + } + ] + + - name: Teleport assets from Collectives Parachain to Relay Chain successful + actions: + - extrinsics: + - chain: *collectives_parachain + signer: *acc_alice_signer + pallet: polkadotXcm + call: teleportAssets + args: [ + { v3: { parents: 1, interior: { here: true }}}, # destination + { v3: { parents: 0, interior: { x1: { accountId32: { id: *acc_alice_acc32 }}}}}, # beneficiary + { + v3: [ + { + id: { concrete: { parents: 1, interior: { here: true }}}, + fun: { fungible: 10000000000000 } # 10_000_000_000_000 + } + ] + }, # assets + 0, # feeAssetItem + ] + events: + - name: balances.Withdraw + result: { who: *acc_alice_ss58, amount: 10000000000000 } + - name: polkadotXcm.Attempted + threshold: *weight_threshold + result: { outcome: { Complete: { refTime: '3,000,000,000', proofSize: 0 }}} + - name: balances.Withdraw + chain: *relay_chain + result: { who: *checking_account, amount: 10000000000000 } # amount received and withdrawn from registry account + - name: messageQueue.Processed + chain: *relay_chain + threshold: *weight_threshold + result: { origin: { Ump: { Para: *cp_id } }, weightUsed: { refTime: '4,000,000,000', proofSize: '0' }, success: true } + - queries: + balance_rc_alice_3: + chain: *relay_chain + pallet: system + call: account + args: [ *acc_alice_acc32 ] + balance_cp_alice_3: + chain: *collectives_parachain + pallet: system + call: account + args: [ *acc_alice_acc32 ] + + - name: Alice deposit check, balance decreased on Collectives, increased on Relay Chain. + actions: + - asserts: + balanceDecreased: + args: [ + { + balances: { + before: $balance_cp_alice_2, + after: $balance_cp_alice_3, + } + } + ] + balanceIncreased: + args: [ + { + balances: { + before: $balance_rc_alice_2, + after: $balance_rc_alice_3, + } + } + ] +# TODO (P2) assert Alice balance before and after teleport (see example in kick_member test) +# TODO (P1) test: teleport of non relay chain assets fails diff --git a/cumulus/parachains/integration-tests/e2e/collectives/collectives-polkadot/0_xcm/2_reserve.yml b/cumulus/parachains/integration-tests/e2e/collectives/collectives-polkadot/0_xcm/2_reserve.yml new file mode 100644 index 000000000000..bd17f07524a2 --- /dev/null +++ b/cumulus/parachains/integration-tests/e2e/collectives/collectives-polkadot/0_xcm/2_reserve.yml @@ -0,0 +1,53 @@ +--- +settings: + chains: + relay_chain: &relay_chain + wsPort: 9700 + collectives_parachain: &collectives_parachain + wsPort: 9710 + paraId: &cp_id 1001 + variables: + weight_threshold: &weight_threshold { refTime: [10, 10], proofSize: [10, 10] } + chains: + accounts: + alice_signer: &alice_signer //Alice + alice_account32: &alice_acc32 '0xd43593c715fdd31c61141abd04a99fd6822c8558854ccde39a5684e7a56da27d' + +tests: + - name: Reserve assets from Relay Chain to Collectives Parachain fails + its: + - name: Reserve assets from Relay Chain to Collectives Parachain + actions: + - extrinsics: + - chain: *relay_chain + signer: *alice_signer + pallet: xcmPallet + call: reserveTransferAssets + args: [ + { v3: { 0, interior: { x1: { parachain: *cp_id }}}}, # destination + { v3: { parents: 0, interior: { x1: { accountId32: { id: *alice_acc32 }}}}}, # beneficiary + { + v3: [ + { + id: { concrete: { 0, interior: { here: true }}}, + fun: { fungible: 20000000000000 } # 20_000_000_000_000 + } + ] + }, # assets + 0, # feeAssetItem + ] + events: + - name: xcmPallet.Attempted + threshold: *weight_threshold + result: { outcome: { Complete: { refTime: '2,000,000,000', proofSize: 0 }}} + - name: dmpQueue.ExecutedDownward + chain: *collectives_parachain + threshold: *weight_threshold + result: { + outcome: { + Incomplete: [ + { refTime: '1,000,000,000', proofSize: 0 }, + UntrustedReserveLocation + ] + } + } diff --git a/cumulus/parachains/integration-tests/e2e/collectives/collectives-polkadot/0_xcm/3_hrmp-open-channels.yml b/cumulus/parachains/integration-tests/e2e/collectives/collectives-polkadot/0_xcm/3_hrmp-open-channels.yml new file mode 100644 index 000000000000..17a16d9ccd7d --- /dev/null +++ b/cumulus/parachains/integration-tests/e2e/collectives/collectives-polkadot/0_xcm/3_hrmp-open-channels.yml @@ -0,0 +1,69 @@ +--- +settings: + chains: + relay_chain: &relay_chain + wsPort: 9700 + collectives_parachain: &collectives_parachain + wsPort: 9710 + paraId: &cp_id 1001 + assethub_parachain: &assethub_parachain + wsPort: 9810 + paraId: &sp_id 1000 + variables: + chains: + accounts: + alice_signer: &alice_signer //Alice + hrmp: + proposed_max_capacity: &hrmp_proposed_max_capacity 8 + proposed_max_message_size: &hrmp_proposed_max_message_size 8192 +tests: + - name: HRMP + describes: + - name: Force Open HRMP Channel From Collectives Parachain → AssetHub Parachain + its: + - name: Alice calls hrmp.forceOpenHrmpChannel + actions: + - extrinsics: + - chain: *relay_chain + signer: *alice_signer + sudo: true + pallet: hrmp + call: forceOpenHrmpChannel + args: [ + *cp_id, # sender + *sp_id, # recipient + *hrmp_proposed_max_capacity, # proposedMaxCapacity + *hrmp_proposed_max_message_size # proposedMaxMessageSize + ] + events: + - name: hrmp.HrmpChannelForceOpened + result: { + sender: *cp_id, + recipient: *sp_id, + proposed_max_capacity: *hrmp_proposed_max_capacity, + proposed_max_message_size: *hrmp_proposed_max_message_size + } + - name: Force Open HRMP Channel From AssetHub Parachain → Collectives Parachain + its: + - name: Alice calls hrmp.forceOpenHrmpChannel + actions: + - extrinsics: + - chain: *relay_chain + signer: *alice_signer + sudo: true + pallet: hrmp + call: forceOpenHrmpChannel + args: [ + *sp_id, # sender + *cp_id, # recipient + *hrmp_proposed_max_capacity, # proposedMaxCapacity + *hrmp_proposed_max_message_size # proposedMaxMessageSize + ] + events: + - name: hrmp.HrmpChannelForceOpened + result: { + sender: *sp_id, + recipient: *cp_id, + proposed_max_capacity: *hrmp_proposed_max_capacity, + proposed_max_message_size: *hrmp_proposed_max_message_size + } diff --git a/cumulus/parachains/integration-tests/e2e/collectives/collectives-polkadot/1_alliance/0_join_alliance_fails.yml b/cumulus/parachains/integration-tests/e2e/collectives/collectives-polkadot/1_alliance/0_join_alliance_fails.yml new file mode 100644 index 000000000000..9aff8b1db102 --- /dev/null +++ b/cumulus/parachains/integration-tests/e2e/collectives/collectives-polkadot/1_alliance/0_join_alliance_fails.yml @@ -0,0 +1,29 @@ +--- +settings: + chains: + relay_chain: + wsPort: 9700 + collectives_parachain: &collectives_parachain + wsPort: 9710 + variables: + accounts: + alice_signer: &alice_signer //Alice + +tests: + - name: Alice fails to join an the Alliance, since it is not initialized yet. + its: + - name: Alice joins alliance + actions: + - extrinsics: # Relay Chain sets supported version for Asset Parachain + - chain: *collectives_parachain + signer: *alice_signer + pallet: alliance + call: joinAlliance + args: [] + events: + - name: system.ExtrinsicFailed + result: { + dispatchError: { Module: { index: 50, error: '0x00000000' }} + } + # TODO assert with Alliance Error variant - alliance.AllianceNotYetInitialized + # issue - https://github.com/paritytech/parachains-integration-tests/issues/59 diff --git a/cumulus/parachains/integration-tests/e2e/collectives/collectives-polkadot/1_alliance/1_init_alliance.yml b/cumulus/parachains/integration-tests/e2e/collectives/collectives-polkadot/1_alliance/1_init_alliance.yml new file mode 100644 index 000000000000..1e01c701744a --- /dev/null +++ b/cumulus/parachains/integration-tests/e2e/collectives/collectives-polkadot/1_alliance/1_init_alliance.yml @@ -0,0 +1,256 @@ +--- +settings: + chains: + relay_chain: &relay_chain + wsPort: 9700 + collectives_parachain: &collectives_parachain + wsPort: 9710 + paraId: &coll_para_id 1001 + variables: + weight_threshold: &weight_threshold { refTime: [10, 10], proofSize: [10, 10] } + accounts: + alice_signer: &acc_alice_signer //Alice + liam_account32: &acc_liam_acc32 "0x3614671a5de540d891eb8c4939c8153a4aa790602b347c18177b86d0fc546221" # //Liam + olivia_account32: &acc_olivia_acc32 "0x24ee8a659c6716fe9f7cb4e9e028602aa12867654ca02737da9171b7ff697d5c" # //Olivia + noah_account32: &acc_noah_acc32 "0x9c6ad3bc3aa2f1b2e837898e6da9980445f7ef8b3eee0b8c8e305f8cfae68517" # //Noah + emma_account32: &acc_emma_acc32 "0x8ac272b333ba1127c8db57fa777ec820b24598a236efa648caf0d26d86f64572" # //Emma + james_account32: &acc_james_acc32 "0x9a52805151a0b5effc084af9264011139872a21a3950cb9ae0b2955c4bf92c18" # //James + ava_account32: &acc_ava_acc32 "0x348ef0b8776adbc09c862ddc29b1d193b9e24738e54eea3b0609c83856dc101c" # //Ava + mia_account32: &acc_mia_acc32 "0xaebf15374cf7e758d10232514c569a7abf81cc1b8f1e81a73dbc608a0e335264" # //Mia + decodedCalls: + init_alliance_members: + chain: *collectives_parachain + pallet: alliance + call: initMembers + args: [ + [ + *acc_liam_acc32, + *acc_olivia_acc32, + *acc_noah_acc32, + *acc_emma_acc32, + *acc_james_acc32, + *acc_ava_acc32 + ], + [ + *acc_mia_acc32 + ] + ] + init_alliance_voting_members: + chain: *collectives_parachain + pallet: alliance + call: initMembers + args: [ + [ + *acc_liam_acc32, + *acc_olivia_acc32, + *acc_noah_acc32, + *acc_emma_acc32, + *acc_james_acc32, + *acc_ava_acc32, + *acc_mia_acc32 + ], + [] + ] + disband: + chain: *collectives_parachain + pallet: alliance + call: disband + args: [ + { + fellowMembers: 6, + allyMembers: 1 + } + ] + +tests: + - name: Alliance initiated with the root call, second init call fails. Alliance disband and set again. + its: + - name: Alliance initiated, founders and fellows are set. + actions: + - extrinsics: + - chain: *relay_chain + signer: *acc_alice_signer + sudo: true + pallet: xcmPallet + call: send + args: [ + { v3: { parents: 0, interior: { x1: { parachain: *coll_para_id }}}}, # destination + { + v3: [ # message + { + UnpaidExecution: { + weightLimit: { + limited: { + refTime: 3000000000, # 3_000_000_000 + proofSize: 2000000, # 2_000_000 + }, + } + } + }, + { + Transact: { + originKind: Superuser, + requireWeightAtMost: { + refTime: 1000000000, # 1_000_000_000 + proofSize: 1000000, # 1_000_000 + }, + call: $init_alliance_members + } + } + ] + } + ] + events: + - name: sudo.Sudid + result: { sudoResult: Ok } + - name: xcmPallet.Sent + result: { origin: { parents: 0, interior: Here }, destination: { parents: 0, interior: { X1: { Parachain: *coll_para_id }}}} + - name: alliance.MembersInitialized + chain: *collectives_parachain + - name: dmpQueue.ExecutedDownward + chain: *collectives_parachain + threshold: *weight_threshold + result: { outcome: { Complete: { refTime: '3,000,000,000', proofSize: '1,000,000' }}} + + - name: Alliance init call fails. + actions: + - extrinsics: + - chain: *relay_chain + signer: *acc_alice_signer + sudo: true + pallet: xcmPallet + call: send + args: [ + { v3: { parents: 0, interior: { x1: { parachain: *coll_para_id }}}}, # destination + { + v3: [ # message + { + UnpaidExecution: { + weightLimit: { + limited: { + refTime: 3000000000, # 3_000_000_000 + proofSize: 2000000, # 2_000_000 + }, + } + } + }, + { + Transact: { + originKind: Superuser, + requireWeightAtMost: { + refTime: 1000000000, # 1_000_000_000 + proofSize: 1000000, # 1_000_000 + }, + call: $init_alliance_voting_members + } + } + ] + } + ] + events: + # TODO can not currently assert variant AllianceAlreadyInitialized, XCM Transact fails silently + # issue - https://github.com/paritytech/polkadot/issues/4623 + # Next test with a disband call will fail, if this call does not fail, + # since a witness data from a disband call will be invalid. + - name: sudo.Sudid + result: { sudoResult: Ok } + - name: xcmPallet.Sent + result: { origin: { parents: 0, interior: Here }, destination: { parents: 0, interior: { X1: { Parachain: *coll_para_id }}}} + - name: dmpQueue.ExecutedDownward + chain: *collectives_parachain + threshold: *weight_threshold + result: { outcome: { Complete: { refTime: '3,000,000,000', proofSize: '1,000,000' }}} + + - name: Alliance disbanded and initialized again. + actions: + - extrinsics: + - chain: *relay_chain + signer: *acc_alice_signer + sudo: true + pallet: xcmPallet + call: send + args: [ + { v3: { parents: 0, interior: { x1: { parachain: *coll_para_id }}}}, # destination + { + v3: [ # message + { + UnpaidExecution: { + weightLimit: { + limited: { + refTime: 5000000000, # 3_000_000_000 + proofSize: 1000000, # 1_000_000 + }, + } + } + }, + { + Transact: { + originKind: Superuser, + requireWeightAtMost: { + refTime: 3000000000, # 3_000_000_000 + proofSize: 200000, # 200_000 + }, + call: $disband + } + } + ] + } + ] + events: + - name: sudo.Sudid + result: { sudoResult: Ok } + - name: xcmPallet.Sent + result: { origin: { parents: 0, interior: Here }, destination: { parents: 0, interior: { X1: { Parachain: *coll_para_id }}}} + - name: alliance.AllianceDisbanded + chain: *collectives_parachain + result: { fellowMembers: 6, allyMembers: 1, unreserved: 0 } + - name: dmpQueue.ExecutedDownward + chain: *collectives_parachain + threshold: *weight_threshold + result: { outcome: { Complete: { refTime: '3,321,495,872', proofSize: '181,779' }}} + - name: Alliance initiated, founders and fellows are set. + actions: + - extrinsics: + - chain: *relay_chain + signer: *acc_alice_signer + sudo: true + pallet: xcmPallet + call: send + args: [ + { v3: { parents: 0, interior: { x1: { parachain: *coll_para_id }}}}, # destination + { + v3: [ # message + { + UnpaidExecution: { + weightLimit: { + limited: { + refTime: 3000000000, # 3_000_000_000 + proofSize: 2000000, # 2_000_000 + }, + } + } + }, + { + Transact: { + originKind: Superuser, + requireWeightAtMost: { + refTime: 1000000000, # 1_000_000_000 + proofSize: 1000000, # 1_000_000 + }, + call: $init_alliance_members + } + } + ] + } + ] + events: + - name: sudo.Sudid + result: { sudoResult: Ok } + - name: xcmPallet.Sent + result: { origin: { parents: 0, interior: Here }, destination: { parents: 0, interior: { X1: { Parachain: *coll_para_id }}}} + - name: alliance.MembersInitialized + chain: *collectives_parachain + - name: dmpQueue.ExecutedDownward + chain: *collectives_parachain + threshold: *weight_threshold + result: { outcome: { Complete: { refTime: '3,000,000,000', proofSize: '1,000,000' }}} diff --git a/cumulus/parachains/integration-tests/e2e/collectives/collectives-polkadot/1_alliance/2_join_alliance_fails.yml b/cumulus/parachains/integration-tests/e2e/collectives/collectives-polkadot/1_alliance/2_join_alliance_fails.yml new file mode 100644 index 000000000000..2afdadae6022 --- /dev/null +++ b/cumulus/parachains/integration-tests/e2e/collectives/collectives-polkadot/1_alliance/2_join_alliance_fails.yml @@ -0,0 +1,30 @@ +--- +settings: + chains: + relay_chain: + wsPort: 9700 + collectives_parachain: &collectives_parachain + wsPort: 9710 + paraId: 1001 + variables: + accounts: + liam_signer: &acc_liam_signer //Liam + +tests: + - name: Liam fails to join an the Alliance, Liam is already a member. + its: + - name: Alice joins alliance + actions: + - extrinsics: # Relay Chain sets supported version for Asset Parachain + - chain: *collectives_parachain + signer: *acc_liam_signer + pallet: alliance + call: joinAlliance + args: [] + events: + - name: system.ExtrinsicFailed + result: { + dispatchError: { Module: { index: 50, error: '0x02000000' }} + } + # TODO assert with Alliance Error variant - alliance.AllianceNotYetInitialized + # issue - https://github.com/paritytech/parachains-integration-tests/issues/59 diff --git a/cumulus/parachains/integration-tests/e2e/collectives/collectives-polkadot/1_alliance/3_kick_member.yml b/cumulus/parachains/integration-tests/e2e/collectives/collectives-polkadot/1_alliance/3_kick_member.yml new file mode 100644 index 000000000000..a5941cb47234 --- /dev/null +++ b/cumulus/parachains/integration-tests/e2e/collectives/collectives-polkadot/1_alliance/3_kick_member.yml @@ -0,0 +1,175 @@ +--- +settings: + chains: + relay_chain: &relay_chain + wsPort: 9700 + collectives_parachain: &collectives_parachain + wsPort: 9710 + paraId: &cp_id 1001 + variables: + weight_threshold: &weight_threshold { refTime: [10, 10], proofSize: [10, 10] } + init_teleport_amount: &init_teleport_amount 20000000000000 # 20_000_000_000_000 + accounts: + alice_signer: &acc_alice_signer //Alice + treasury_account32: &acc_treasury_acc32 '0x6d6f646c70792f74727372790000000000000000000000000000000000000000' + alice_account32: &acc_alice_acc32 '0xd43593c715fdd31c61141abd04a99fd6822c8558854ccde39a5684e7a56da27d' + alice_ss58: &acc_alice_ss58 '15oF4uVJwmo4TdGW7VfQxNLavjCXviqxT9S1MgbjMNHr6Sp5' + decodedCalls: + alliance_kick_member: + chain: *collectives_parachain + pallet: alliance + call: kickMember + args: [ + {Id: *acc_alice_acc32} + ] + +tests: + - name: Member kicked out, deposited assets slashed and teleported to Relay Chain treasury. + before: + - name: DEPENDENCY | Do a 'limitedTeleportAssets' from the Relay Chain to the Collectives Parachain + actions: + - extrinsics: + - chain: *relay_chain + signer: *acc_alice_signer + pallet: xcmPallet + call: limitedTeleportAssets + args: [ + { v3: { 0, interior: { x1: { parachain: *cp_id }}}}, # destination + { v3: { parents: 0, interior: { x1: { accountId32: { id: *acc_alice_acc32 }}}}}, # beneficiary + { v3: [ { id: { concrete: { 0, interior: { here: true }}}, fun: { fungible: *init_teleport_amount }} ] }, # assets + 0, # feeAssetItem + { unlimited: true } # weightLimit + ] + events: + - name: xcmPallet.Attempted + threshold: *weight_threshold + result: { + outcome: { Complete: { refTime: '3,000,000,000', proofSize: 0 }} + } + - name: balances.Deposit + chain: *collectives_parachain + result: { who: *acc_alice_ss58 } + - name: dmpQueue.ExecutedDownward + chain: *collectives_parachain + threshold: *weight_threshold + result: { + outcome: { Complete: { refTime: '4,000,000,000', proofSize: 0 }} + } + - name: Get the balances of the Relay Chain's treasury & Collectives parachain's future alliance member + actions: + - queries: + balance_rc_treasury_before: + chain: *relay_chain + pallet: system + call: account + args: [ *acc_treasury_acc32 ] + balance_cp_alice_before: + chain: *collectives_parachain + pallet: system + call: account + args: [ *acc_alice_acc32 ] + its: + - name: Alice joins alliance + actions: + - extrinsics: + - chain: *collectives_parachain + signer: *acc_alice_signer + pallet: alliance + call: joinAlliance + args: [] + events: + - name: balances.Reserved + chain: *collectives_parachain + result: { who: *acc_alice_ss58, amount: 10000000000000 } + - name: alliance.NewAllyJoined + result: {ally: *acc_alice_ss58, reserved: 10000000000000 } + - queries: + balance_cp_alice_after: + chain: *collectives_parachain + pallet: system + call: account + args: [ *acc_alice_acc32 ] + - name: Alice deposit check, balance decreased + actions: + - asserts: + balanceDecreased: + args: [ + { + balances: { + before: $balance_cp_alice_before, + after: $balance_cp_alice_after, + } + # TODO (P3) set `amount` and `fee` for more strict assert + } + ] + - name: Kick Alice from alliance + actions: + - extrinsics: # Asset Parachain sets supported version for Relay Chain through it + - chain: *relay_chain + signer: *acc_alice_signer + sudo: true + pallet: xcmPallet + call: send + args: [ + { v3: { parents: 0, interior: { x1: { parachain: *cp_id }}}}, # destination + { + v3: [ #message + { + UnpaidExecution: { + weightLimit: { + limited: { + refTime: 4000000000, # 4_000_000_000 + proofSize: 2000000, # 2_000_000 + }, + } + } + }, + { + Transact: { + originKind: Superuser, + requireWeightAtMost: { + refTime: 2000000000, # 2_000_000_000 + proofSize: 1000000, # 1_000_000 + }, + call: $alliance_kick_member + } + } + ] + } + ] + events: + - name: sudo.Sudid + result: { sudoResult: Ok } + - name: xcmPallet.Sent + result: { origin: { parents: 0, interior: Here }, destination: { parents: 0, interior: { X1: { Parachain: *cp_id }}}} + - name: alliance.MemberKicked + chain: *collectives_parachain + result: { member: *acc_alice_ss58, slashed: 10000000000000 } + - name: dmpQueue.ExecutedDownward + chain: *collectives_parachain + threshold: *weight_threshold + result: { + outcome: { Complete: { refTime: '4,000,000,000', proofSize: '1,000,000' }} + } + - name: messageQueue.Processed + result: { origin: { Ump: { Para: *cp_id }}, success: true } + + - queries: + balance_rc_treasury_after: + chain: *relay_chain + pallet: system + call: account + args: [ *acc_treasury_acc32 ] + - name: Slashed balance appears on the relay chain treasury account + actions: + - asserts: + balanceIncreased: + args: [ + { + balances: { + before: $balance_rc_treasury_before, + after: $balance_rc_treasury_after, + } + # TODO (P3) set `amount` and `fee` for more strict assert + } + ] diff --git a/cumulus/parachains/integration-tests/e2e/collectives/collectives-polkadot/2_opengov/0_assethub.yml b/cumulus/parachains/integration-tests/e2e/collectives/collectives-polkadot/2_opengov/0_assethub.yml new file mode 100644 index 000000000000..c53efff51fbf --- /dev/null +++ b/cumulus/parachains/integration-tests/e2e/collectives/collectives-polkadot/2_opengov/0_assethub.yml @@ -0,0 +1,149 @@ +--- +settings: + chains: + relay_chain: &relay_chain + wsPort: 9700 + assethub_parachain: &assethub_parachain + wsPort: 9810 + paraId: &ap_id 1000 + variables: + proposal_index: &proposal_index 0 + chains: + accounts: + alice_signer: &alice_signer //Alice + bob_signer: &bob_signer //Bob + decodedCalls: + set_candidates_ap: + chain: *assethub_parachain + encode: true + pallet: collatorSelection + call: setDesiredCandidates + args: [ + 3 + ] + send_set_candidates_rc: + chain: *relay_chain + encode: false + pallet: xcmPallet + call: send + args: [ + { v3: { parents: 0, interior: { x1: { parachain: *ap_id }}}}, # destination + { + v3: [ #message + { + UnpaidExecution: { + weightLimit: Unlimited + } + }, + { + Transact: { + originKind: Xcm, + requireWeightAtMost: { + refTime: 200000000, # 200_000_000 + proofSize: 100000, # 100_000 + }, + call: $set_candidates_ap + } + } + ] + } + ] +tests: + - name: OpenGov + describes: + - name: Set desired candidates on AssetHub from Relay Chain OpenGov Staking track + its: + - name: Note preimage from xcm send set_desired_candidates call + actions: + - extrinsics: + - chain: *relay_chain + signer: *alice_signer + pallet: preimage + call: notePreimage + args: [ + $send_set_candidates_rc + ] + events: + - name: preimage.Noted + result: {hash_: $send_set_candidates_rc.hash } + - name: Submit a proposal to set desired candidates + actions: + - extrinsics: + - chain: *relay_chain + signer: *alice_signer + pallet: referenda + call: submit + args: [ + { + "Origins": "StakingAdmin", + }, + { + "Lookup": { + "hash_": $send_set_candidates_rc.hash, + "len": $send_set_candidates_rc.len, + }, + }, + { + "After": 1, + }, + ] + events: + - name: referenda.Submitted + result: { + index: *proposal_index, + proposal: { Lookup: { hash_: $send_set_candidates_rc.hash, len: $send_set_candidates_rc.len }} + } + - name: Alice Vote Aye + actions: + - extrinsics: + - chain: *relay_chain + signer: *alice_signer + pallet: convictionVoting + call: vote + args: [ + *proposal_index, + { + "Standard": { + "vote": { + "aye": true, + "conviction": "Locked1x", + }, + "balance": 200000000000000, + } + }, + ] # TODO no event to catch https://github.com/paritytech/substrate/issues/14687 + - name: Bob Vote Aye + actions: + - extrinsics: + - chain: *relay_chain + signer: *bob_signer + pallet: convictionVoting + call: vote + args: [ + *proposal_index, + { + "Standard": { + "vote": { + "aye": true, + "conviction": "Locked1x", + }, + "balance": 200000000000000, + } + }, + ] # TODO no event to catch https://github.com/paritytech/substrate/issues/14687 + - name: Submit the decision deposit + actions: + - extrinsics: + - chain: *relay_chain + signer: *alice_signer + pallet: referenda + call: placeDecisionDeposit + args: [ + *proposal_index, + ] + events: + - name: referenda.DecisionDepositPlaced + result: { index: *proposal_index } + - name: collatorSelection.NewDesiredCandidates + chain: *assethub_parachain + result: { desiredCandidates: 3 } diff --git a/cumulus/parachains/integration-tests/e2e/collectives/collectives-polkadot/3_fellowship/0_init.yml b/cumulus/parachains/integration-tests/e2e/collectives/collectives-polkadot/3_fellowship/0_init.yml new file mode 100644 index 000000000000..1e4b2dabe211 --- /dev/null +++ b/cumulus/parachains/integration-tests/e2e/collectives/collectives-polkadot/3_fellowship/0_init.yml @@ -0,0 +1,209 @@ +--- +settings: + chains: + relay_chain: &relay_chain + wsPort: 9700 + collectives_parachain: &collectives_parachain + wsPort: 9710 + paraId: &cp_id 1001 + variables: + proposal_index: &proposal_index 1 + chains: + accounts: + alice_signer: &alice_signer //Alice + bob_signer: &bob_signer //Bob + alice_account32: &acc_alice_acc32 '0xd43593c715fdd31c61141abd04a99fd6822c8558854ccde39a5684e7a56da27d' + alice_ss58: &acc_alice_ss58 '15oF4uVJwmo4TdGW7VfQxNLavjCXviqxT9S1MgbjMNHr6Sp5' + decodedCalls: + fellowship_induct_alice_cp: + chain: *collectives_parachain + encode: true + pallet: fellowshipCore + call: induct + args: [ + *acc_alice_acc32 + ] + fellowship_promote_1_alice_cp: + chain: *collectives_parachain + encode: true + pallet: fellowshipCore + call: promote + args: [ + *acc_alice_acc32, + 1 + ] + fellowship_promote_2_alice_cp: + chain: *collectives_parachain + encode: true + pallet: fellowshipCore + call: promote + args: [ + *acc_alice_acc32, + 2 + ] + fellowship_promote_3_alice_cp: + chain: *collectives_parachain + encode: true + pallet: fellowshipCore + call: promote + args: [ + *acc_alice_acc32, + 3 + ] + send_init_fellowship_rc: + chain: *relay_chain + encode: false + pallet: xcmPallet + call: send + args: [ + { v3: { parents: 0, interior: { x1: { parachain: *cp_id }}}}, # destination + { + v3: [ #message + { + UnpaidExecution: { + weightLimit: Unlimited + } + }, + { # since batch_all not yet allowed over xcm, we have to send multiple `Transact`. + Transact: { + originKind: Xcm, + requireWeightAtMost: { + refTime: 1500000000, # 1_500_000_000 + proofSize: 10000, # 10_000 + }, + call: $fellowship_induct_alice_cp + } + }, + { + Transact: { + originKind: Xcm, + requireWeightAtMost: { + refTime: 1500000000, # 1_500_000_000 + proofSize: 10000, # 10_000 + }, + call: $fellowship_promote_1_alice_cp + } + }, + { + Transact: { + originKind: Xcm, + requireWeightAtMost: { + refTime: 1500000000, # 1_500_000_000 + proofSize: 10000, # 10_000 + }, + call: $fellowship_promote_2_alice_cp + } + }, + { + Transact: { + originKind: Xcm, + requireWeightAtMost: { + refTime: 1500000000, # 1_500_000_000 + proofSize: 10000, # 10_000 + }, + call: $fellowship_promote_3_alice_cp + } + } + ] + } + ] + +tests: + - name: Fellowship + describes: + - name: Init the Fellowship + its: + - name: Note preimage from init fellowship call + actions: + - extrinsics: + - chain: *relay_chain + signer: *alice_signer + pallet: preimage + call: notePreimage + args: [ + $send_init_fellowship_rc + ] + events: + - name: preimage.Noted + result: { hash_: $send_init_fellowship_rc.hash } + - name: Submit a proposal to init the Fellowship + actions: + - extrinsics: + - chain: *relay_chain + signer: *alice_signer + pallet: referenda + call: submit + args: [ + { + "Origins": "FellowshipAdmin", + }, + { + "Lookup": { + "hash_": $send_init_fellowship_rc.hash, + "len": $send_init_fellowship_rc.len, + }, + }, + { + "After": 1, + }, + ] + events: + - name: referenda.Submitted + result: { + index: *proposal_index, + proposal: { Lookup: { hash_: $send_init_fellowship_rc.hash, len: $send_init_fellowship_rc.len }} + } + - name: Alice Vote Aye + actions: + - extrinsics: + - chain: *relay_chain + signer: *alice_signer + pallet: convictionVoting + call: vote + args: [ + *proposal_index, + { + "Standard": { + "vote": { + "aye": true, + "conviction": "Locked1x", + }, + "balance": 200000000000000, + } + }, + ] # TODO no Aye event to catch https://github.com/paritytech/substrate/issues/14687 + - name: Bob Vote Aye + actions: + - extrinsics: + - chain: *relay_chain + signer: *bob_signer + pallet: convictionVoting + call: vote + args: [ + *proposal_index, + { + "Standard": { + "vote": { + "aye": true, + "conviction": "Locked1x", + }, + "balance": 200000000000000, + } + }, + ] # TODO no Aye event to catch https://github.com/paritytech/substrate/issues/14687 + - name: Submit the decision deposit + actions: + - extrinsics: + - chain: *relay_chain + signer: *alice_signer + pallet: referenda + call: placeDecisionDeposit + args: [ + *proposal_index, + ] + events: + - name: referenda.DecisionDepositPlaced + result: { index: *proposal_index } + - name: fellowshipCollective.MemberAdded + chain: *collectives_parachain + result: { who: *acc_alice_ss58 } diff --git a/cumulus/parachains/integration-tests/e2e/collectives/collectives-polkadot/3_fellowship/1_whitelist_call.yml b/cumulus/parachains/integration-tests/e2e/collectives/collectives-polkadot/3_fellowship/1_whitelist_call.yml new file mode 100644 index 000000000000..5991c7ae2f8a --- /dev/null +++ b/cumulus/parachains/integration-tests/e2e/collectives/collectives-polkadot/3_fellowship/1_whitelist_call.yml @@ -0,0 +1,146 @@ +--- +settings: + chains: + relay_chain: &relay_chain + wsPort: 9700 + collectives_parachain: &collectives_parachain + wsPort: 9710 + paraId: &cp_id 1001 + variables: + fellows_proposal_index: &fellows_proposal_index 0 + chains: + accounts: + alice_signer: &alice_signer //Alice + decodedCalls: + remark_rc: + chain: *relay_chain + encode: false + pallet: system + call: remark + args: [ + "0x10" + ] + whitelist_remark_rc: + chain: *relay_chain + encode: true + pallet: whitelist + call: whitelistCall + args: [ + $remark_rc.hash + ] + send_whitelist_remark_cp: + chain: *collectives_parachain + encode: false + pallet: polkadotXcm + call: send + args: [ + { v3: { parents: 1, interior: { here: true }}}, # destination + { + v3: [ #message + { + UnpaidExecution: { + weightLimit: Unlimited + } + }, + { + Transact: { + originKind: Xcm, + requireWeightAtMost: { + refTime: 500000000, # 500_000_000 + proofSize: 20000, # 20_000 + }, + call: $whitelist_remark_rc + } + } + ] + } + ] + +tests: + - name: Fellowship + describes: + - name: The Fellowship white list the call + its: + - name: Note preimage from the whitelist call on the Relay Chain + actions: + - extrinsics: + - chain: *relay_chain + signer: *alice_signer + pallet: preimage + call: notePreimage + args: [ + $remark_rc + ] + events: + - name: preimage.Noted + result: { hash_: $remark_rc.hash } + - name: Note preimage from the xcm send call to white list the call above + actions: + - extrinsics: + - chain: *collectives_parachain + signer: *alice_signer + pallet: preimage + call: notePreimage + args: [ + $send_whitelist_remark_cp, + ] + events: + - name: preimage.Noted + result: { hash_: $send_whitelist_remark_cp.hash } + - name: Submit a proposal to while list the call + actions: + - extrinsics: + - chain: *collectives_parachain + signer: *alice_signer + pallet: fellowshipReferenda + call: submit + args: [ + { + "FellowshipOrigins": "Fellows", + }, + { + "Lookup": { + "hash_": $send_whitelist_remark_cp.hash, + "len": $send_whitelist_remark_cp.len, + }, + }, + { + "After": 1, + }, + ] + events: + - name: fellowshipReferenda.Submitted + result: { + index: *fellows_proposal_index, + proposal: { Lookup: { hash_: $send_whitelist_remark_cp.hash, len: $send_whitelist_remark_cp.len}} + } + - name: Vote Aye + actions: + - extrinsics: + - chain: *collectives_parachain + signer: *alice_signer + pallet: fellowshipCollective + call: vote + args: [ + *fellows_proposal_index, + true, + ] + events: + - name: fellowshipCollective.Voted + result: { poll: *fellows_proposal_index, vote: { Aye: 1 } } + - name: Submit the decision deposit + actions: + - extrinsics: + - chain: *collectives_parachain + signer: *alice_signer + pallet: fellowshipReferenda + call: placeDecisionDeposit + args: [ + *fellows_proposal_index, + ] + events: + - name: fellowshipReferenda.DecisionDepositPlaced + result: {index: *fellows_proposal_index} + - name: whitelist.CallWhitelisted + chain: *relay_chain + result: { callHash: $remark_rc.hash } diff --git a/cumulus/parachains/integration-tests/e2e/collectives/collectives-polkadot/3_fellowship/2_assethub.yml b/cumulus/parachains/integration-tests/e2e/collectives/collectives-polkadot/3_fellowship/2_assethub.yml new file mode 100644 index 000000000000..c0805594808c --- /dev/null +++ b/cumulus/parachains/integration-tests/e2e/collectives/collectives-polkadot/3_fellowship/2_assethub.yml @@ -0,0 +1,126 @@ +--- +settings: + chains: + relay_chain: &relay_chain + wsPort: 9700 + collectives_parachain: &collectives_parachain + wsPort: 9710 + paraId: &cp_id 1001 + assethub_parachain: &assethub_parachain + wsPort: 9810 + paraId: &ap_id 1000 + variables: + fellows_proposal_index: &fellows_proposal_index 1 + chains: + accounts: + alice_signer: &alice_signer //Alice + + decodedCalls: + xcmp_resume_execution_ap: + chain: *assethub_parachain + encode: true + pallet: xcmpQueue + call: resumeXcmExecution + args: [] + send_xcmp_resume_execution_cp: + chain: *collectives_parachain + encode: false + pallet: polkadotXcm + call: send + args: [ + { v3: { parents: 1, interior: { x1: { parachain: *ap_id }}}}, # destination + { + v3: [ #message + { + UnpaidExecution: { + weightLimit: Unlimited + } + }, + { + Transact: { + originKind: Xcm, + requireWeightAtMost: { + refTime: 300000000, # 300_000_000 + proofSize: 10000, # 10_000 + }, + call: $xcmp_resume_execution_ap + } + } + ] + } + ] + +tests: + - name: Fellowship + describes: + - name: The Fellowship resume xcm execution for the xcmp queue on AssetHub + its: + - name: Note preimage from the xcm send call to suspend_xcm_execution + actions: + - extrinsics: + - chain: *collectives_parachain + signer: *alice_signer + pallet: preimage + call: notePreimage + args: [ + $send_xcmp_resume_execution_cp + ] + events: + - name: preimage.Noted + result: {hash_: $send_xcmp_resume_execution_cp.hash } + - name: Submit a proposal to resume xcm execution on AssetHub + actions: + - extrinsics: + - chain: *collectives_parachain + signer: *alice_signer + pallet: fellowshipReferenda + call: submit + args: [ + { + "FellowshipOrigins": "Fellows", + }, + { + "Lookup": { + "hash_": $send_xcmp_resume_execution_cp.hash, + "len": $send_xcmp_resume_execution_cp.len, + }, + }, + { + "After": 1, + }, + ] + events: + - name: fellowshipReferenda.Submitted + result: { + index: 1, + proposal: {Lookup: {hash_: $send_xcmp_resume_execution_cp.hash, len: $send_xcmp_resume_execution_cp.len}} + } + - name: Vote Aye + actions: + - extrinsics: + - chain: *collectives_parachain + signer: *alice_signer + pallet: fellowshipCollective + call: vote + args: [ + *fellows_proposal_index, + true, + ] + events: + - name: fellowshipCollective.Voted + result: { poll: *fellows_proposal_index, vote: { Aye: 1 } } + - name: Submit the decision deposit + actions: + - extrinsics: + - chain: *collectives_parachain + signer: *alice_signer + pallet: fellowshipReferenda + call: placeDecisionDeposit + args: [ + *fellows_proposal_index, + ] + events: + - name: fellowshipReferenda.DecisionDepositPlaced + result: {index: *fellows_proposal_index} + - name: xcmpQueue.Success + chain: *assethub_parachain diff --git a/cumulus/parachains/integration-tests/e2e/collectives/collectives-polkadot/config.toml b/cumulus/parachains/integration-tests/e2e/collectives/collectives-polkadot/config.toml new file mode 100644 index 000000000000..20fda92bd08f --- /dev/null +++ b/cumulus/parachains/integration-tests/e2e/collectives/collectives-polkadot/config.toml @@ -0,0 +1,42 @@ +[relaychain] +default_command = "./bin/polkadot" +default_args = [ "-lparachain=trace", "-lxcm=trace" ] +chain = "polkadot-local" + + [[relaychain.nodes]] + name = "alice" + ws_port = 9700 + validator = true + args = ["--state-cache-size=0"] + + [[relaychain.nodes]] + name = "bob" + ws_port = 9701 + validator = true + + [[relaychain.nodes]] + name = "charlie" + ws_port = 9702 + validator = true + + [[relaychain.nodes]] + name = "dave" + ws_port = 9703 + validator = true + +[[parachains]] +id = 1001 +chain = "collectives-polkadot-local" +cumulus_based = true + + [[parachains.collators]] + name = "collator1" + ws_port = 9710 + command = "./bin/polkadot-parachain" + args = [ "-lxcm=trace", "--state-cache-size=0" ] + + [[parachains.collators]] + name = "collator2" + ws_port = 9711 + command = "./bin/polkadot-parachain" + args = ["-lxcm=trace"] diff --git a/cumulus/parachains/integration-tests/emulated/common/Cargo.toml b/cumulus/parachains/integration-tests/emulated/common/Cargo.toml index 0cb713e5f86c..34cb5831fbfd 100644 --- a/cumulus/parachains/integration-tests/emulated/common/Cargo.toml +++ b/cumulus/parachains/integration-tests/emulated/common/Cargo.toml @@ -42,9 +42,14 @@ pallet-xcm = { path = "../../../../../polkadot/xcm/pallet-xcm", default-features parachains-common = { path = "../../../common" } cumulus-primitives-core = { path = "../../../../primitives/core" } penpal-runtime = { path = "../../../runtimes/testing/penpal" } +asset-hub-polkadot-runtime = { path = "../../../runtimes/assets/asset-hub-polkadot" } +asset-hub-kusama-runtime = { path = "../../../runtimes/assets/asset-hub-kusama" } asset-hub-rococo-runtime = { path = "../../../runtimes/assets/asset-hub-rococo" } asset-hub-westend-runtime = { path = "../../../runtimes/assets/asset-hub-westend" } +collectives-polkadot-runtime = { path = "../../../runtimes/collectives/collectives-polkadot" } collectives-westend-runtime = { path = "../../../runtimes/collectives/collectives-westend" } +bridge-hub-kusama-runtime = { path = "../../../runtimes/bridge-hubs/bridge-hub-kusama" } +bridge-hub-polkadot-runtime = { path = "../../../runtimes/bridge-hubs/bridge-hub-polkadot" } bridge-hub-rococo-runtime = { path = "../../../runtimes/bridge-hubs/bridge-hub-rococo" } xcm-emulator = { path = "../../../../xcm/xcm-emulator", default-features = false} cumulus-pallet-dmp-queue = { path = "../../../../pallets/dmp-queue" } @@ -56,10 +61,15 @@ bridge-runtime-common = { path = "../../../../../bridges/bin/runtime-common" } [features] runtime-benchmarks = [ + "asset-hub-kusama-runtime/runtime-benchmarks", + "asset-hub-polkadot-runtime/runtime-benchmarks", "asset-hub-rococo-runtime/runtime-benchmarks", "asset-hub-westend-runtime/runtime-benchmarks", + "bridge-hub-kusama-runtime/runtime-benchmarks", + "bridge-hub-polkadot-runtime/runtime-benchmarks", "bridge-hub-rococo-runtime/runtime-benchmarks", "bridge-runtime-common/runtime-benchmarks", + "collectives-polkadot-runtime/runtime-benchmarks", "collectives-westend-runtime/runtime-benchmarks", "cumulus-pallet-parachain-system/runtime-benchmarks", "cumulus-pallet-xcmp-queue/runtime-benchmarks", diff --git a/cumulus/parachains/integration-tests/emulated/common/src/constants.rs b/cumulus/parachains/integration-tests/emulated/common/src/constants.rs index 20d7c4e62c4a..93abae753b94 100644 --- a/cumulus/parachains/integration-tests/emulated/common/src/constants.rs +++ b/cumulus/parachains/integration-tests/emulated/common/src/constants.rs @@ -26,7 +26,7 @@ use sp_runtime::{ }; // Cumulus -use parachains_common::{AccountId, AuraId, Balance, BlockNumber}; +use parachains_common::{AccountId, AssetHubPolkadotAuraId, AuraId, Balance, BlockNumber}; use polkadot_parachain_primitives::primitives::{HeadData, ValidationCode}; use polkadot_primitives::{AssignmentId, ValidatorId}; use polkadot_runtime_parachains::{ @@ -95,6 +95,19 @@ pub mod accounts { pub mod collators { use super::*; + pub fn invulnerables_asset_hub_polkadot() -> Vec<(AccountId, AssetHubPolkadotAuraId)> { + vec![ + ( + get_account_id_from_seed::("Alice"), + get_from_seed::("Alice"), + ), + ( + get_account_id_from_seed::("Bob"), + get_from_seed::("Bob"), + ), + ] + } + pub fn invulnerables() -> Vec<(AccountId, AuraId)> { vec![ ( diff --git a/cumulus/polkadot-parachain/Cargo.toml b/cumulus/polkadot-parachain/Cargo.toml index b7bda327a2df..e9b3c44f2a8f 100644 --- a/cumulus/polkadot-parachain/Cargo.toml +++ b/cumulus/polkadot-parachain/Cargo.toml @@ -109,11 +109,11 @@ wait-timeout = "0.2" [features] default = [] runtime-benchmarks = [ -"asset-hub-kusama-runtime/runtime-benchmarks", + "asset-hub-kusama-runtime/runtime-benchmarks", "asset-hub-polkadot-runtime/runtime-benchmarks", "asset-hub-rococo-runtime/runtime-benchmarks", "asset-hub-westend-runtime/runtime-benchmarks", -"bridge-hub-kusama-runtime/runtime-benchmarks", + "bridge-hub-kusama-runtime/runtime-benchmarks", "bridge-hub-polkadot-runtime/runtime-benchmarks", "bridge-hub-rococo-runtime/runtime-benchmarks", "collectives-polkadot-runtime/runtime-benchmarks", @@ -133,11 +133,11 @@ runtime-benchmarks = [ "sp-runtime/runtime-benchmarks", ] try-runtime = [ -"asset-hub-kusama-runtime/try-runtime", + "asset-hub-kusama-runtime/try-runtime", "asset-hub-polkadot-runtime/try-runtime", "asset-hub-rococo-runtime/try-runtime", "asset-hub-westend-runtime/try-runtime", -"bridge-hub-kusama-runtime/try-runtime", + "bridge-hub-kusama-runtime/try-runtime", "bridge-hub-polkadot-runtime/try-runtime", "bridge-hub-rococo-runtime/try-runtime", "collectives-polkadot-runtime/try-runtime", diff --git a/cumulus/scripts/benchmarks.sh b/cumulus/scripts/benchmarks.sh index 70cb785e8037..7da18d9440e5 100755 --- a/cumulus/scripts/benchmarks.sh +++ b/cumulus/scripts/benchmarks.sh @@ -6,10 +6,16 @@ repeat=${3:-20} __dir="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" +${__dir}/benchmarks-ci.sh collectives collectives-polkadot target/$target $steps $repeat ${__dir}/benchmarks-ci.sh collectives collectives-westend target/$target $steps $repeat +${__dir}/benchmarks-ci.sh assets asset-hub-kusama target/$target $steps $repeat +${__dir}/benchmarks-ci.sh assets asset-hub-polkadot target/$target $steps $repeat ${__dir}/benchmarks-ci.sh assets asset-hub-westend target/$target $steps $repeat +${__dir}/benchmarks-ci.sh bridge-hubs bridge-hub-polkadot target/$target $steps $repeat +${__dir}/benchmarks-ci.sh bridge-hubs bridge-hub-kusama target/$target $steps $repeat ${__dir}/benchmarks-ci.sh bridge-hubs bridge-hub-rococo target/$target $steps $repeat +${__dir}/benchmarks-ci.sh glutton glutton-kusama target/$target $steps $repeat ${__dir}/benchmarks-ci.sh glutton glutton-westend target/$target $steps $repeat diff --git a/cumulus/zombienet/examples/bridge_hub_kusama_local_network.toml b/cumulus/zombienet/examples/bridge_hub_kusama_local_network.toml new file mode 100644 index 000000000000..ae8ae07a75ce --- /dev/null +++ b/cumulus/zombienet/examples/bridge_hub_kusama_local_network.toml @@ -0,0 +1,67 @@ +[relaychain] +default_command = "../polkadot/target/release/polkadot" +default_args = [ "-lparachain=debug" ] +chain = "kusama-local" + + [[relaychain.nodes]] + name = "alice" + validator = true + + [[relaychain.nodes]] + name = "bob" + validator = true + + [[relaychain.nodes]] + name = "charlie" + validator = true + + [[relaychain.nodes]] + name = "dave" + validator = true + +[[parachains]] +id = 1003 +chain = "bridge-hub-kusama-local" +cumulus_based = true + + # run alice as parachain collator + [[parachains.collators]] + name = "alice" + validator = true + command = "./target/release/polkadot-parachain" + args = ["-lparachain=debug"] + + # run bob as parachain collator + [[parachains.collators]] + name = "bob" + validator = true + command = "./target/release/polkadot-parachain" + args = ["-lparachain=debug"] + + # run charlie as parachain collator + [[parachains.collators]] + name = "charlie" + validator = true + command = "./target/release/polkadot-parachain" + args = ["-lparachain=debug"] + + # run dave as parachain collator + [[parachains.collators]] + name = "dave" + validator = true + command = "./target/release/polkadot-parachain" + args = ["-lparachain=debug"] + + # run eve as parachain collator + [[parachains.collators]] + name = "eve" + validator = true + command = "./target/release/polkadot-parachain" + args = ["-lparachain=debug"] + + # run ferdie as parachain collator + [[parachains.collators]] + name = "ferdie" + validator = true + command = "./target/release/polkadot-parachain" + args = ["-lparachain=debug"] diff --git a/cumulus/zombienet/examples/bridge_hub_polkadot_local_network.toml b/cumulus/zombienet/examples/bridge_hub_polkadot_local_network.toml new file mode 100644 index 000000000000..564fece7cae7 --- /dev/null +++ b/cumulus/zombienet/examples/bridge_hub_polkadot_local_network.toml @@ -0,0 +1,67 @@ +[relaychain] +default_command = "../polkadot/target/release/polkadot" +default_args = [ "-lparachain=debug" ] +chain = "polkadot-local" + + [[relaychain.nodes]] + name = "alice" + validator = true + + [[relaychain.nodes]] + name = "bob" + validator = true + + [[relaychain.nodes]] + name = "charlie" + validator = true + + [[relaychain.nodes]] + name = "dave" + validator = true + +[[parachains]] +id = 1003 +chain = "bridge-hub-polkadot-local" +cumulus_based = true + + # run alice as parachain collator + [[parachains.collators]] + name = "alice" + validator = true + command = "./target/release/polkadot-parachain" + args = ["-lparachain=debug"] + + # run bob as parachain collator + [[parachains.collators]] + name = "bob" + validator = true + command = "./target/release/polkadot-parachain" + args = ["-lparachain=debug"] + + # run charlie as parachain collator + [[parachains.collators]] + name = "charlie" + validator = true + command = "./target/release/polkadot-parachain" + args = ["-lparachain=debug"] + + # run dave as parachain collator + [[parachains.collators]] + name = "dave" + validator = true + command = "./target/release/polkadot-parachain" + args = ["-lparachain=debug"] + + # run eve as parachain collator + [[parachains.collators]] + name = "eve" + validator = true + command = "./target/release/polkadot-parachain" + args = ["-lparachain=debug"] + + # run ferdie as parachain collator + [[parachains.collators]] + name = "ferdie" + validator = true + command = "./target/release/polkadot-parachain" + args = ["-lparachain=debug"] diff --git a/cumulus/zombienet/examples/small_network.toml b/cumulus/zombienet/examples/small_network.toml index 3ec0c2f50e2b..06ac0d0e5e78 100644 --- a/cumulus/zombienet/examples/small_network.toml +++ b/cumulus/zombienet/examples/small_network.toml @@ -14,7 +14,7 @@ chain = "rococo-local" [[parachains]] id = 2000 cumulus_based = true -chain = "asset-hub-westend-local" +chain = "asset-hub-kusama-local" # run charlie as parachain collator [[parachains.collators]] diff --git a/cumulus/zombienet/examples/statemine_kusama_local_network.toml b/cumulus/zombienet/examples/statemine_kusama_local_network.toml new file mode 100644 index 000000000000..1f3debfb9d29 --- /dev/null +++ b/cumulus/zombienet/examples/statemine_kusama_local_network.toml @@ -0,0 +1,67 @@ +[relaychain] +default_command = "../polkadot/target/release/polkadot" +default_args = [ "-lparachain=debug" ] +chain = "kusama-local" + + [[relaychain.nodes]] + name = "alice" + validator = true + + [[relaychain.nodes]] + name = "bob" + validator = true + + [[relaychain.nodes]] + name = "charlie" + validator = true + + [[relaychain.nodes]] + name = "dave" + validator = true + +[[parachains]] +id = 1000 +chain = "asset-hub-kusama-local" +cumulus_based = true + + # run alice as parachain collator + [[parachains.collators]] + name = "alice" + validator = true + command = "./target/release/polkadot-parachain" + args = ["-lparachain=debug"] + + # run bob as parachain collator + [[parachains.collators]] + name = "bob" + validator = true + command = "./target/release/polkadot-parachain" + args = ["-lparachain=debug"] + + # run charlie as parachain collator + [[parachains.collators]] + name = "charlie" + validator = true + command = "./target/release/polkadot-parachain" + args = ["-lparachain=debug"] + + # run dave as parachain collator + [[parachains.collators]] + name = "dave" + validator = true + command = "./target/release/polkadot-parachain" + args = ["-lparachain=debug"] + + # run eve as parachain collator + [[parachains.collators]] + name = "eve" + validator = true + command = "./target/release/polkadot-parachain" + args = ["-lparachain=debug"] + + # run ferdie as parachain collator + [[parachains.collators]] + name = "ferdie" + validator = true + command = "./target/release/polkadot-parachain" + args = ["-lparachain=debug"] From 8cec695cc1e9be547e3c45e1cd8e2e7ab4f754ec Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?D=C3=B3nal=20Murray?= Date: Wed, 25 Oct 2023 16:34:17 +0100 Subject: [PATCH 36/78] Fix broken doc link --- cumulus/polkadot-parachain/src/chain_spec/bridge_hubs.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cumulus/polkadot-parachain/src/chain_spec/bridge_hubs.rs b/cumulus/polkadot-parachain/src/chain_spec/bridge_hubs.rs index 82bfc0336cbc..97b0409b0051 100644 --- a/cumulus/polkadot-parachain/src/chain_spec/bridge_hubs.rs +++ b/cumulus/polkadot-parachain/src/chain_spec/bridge_hubs.rs @@ -486,7 +486,7 @@ pub mod kusama { } /// Sub-module for Westend setup - unimplemented -/// See https://github.com/paritytech/parity-bridges-common/issues/2602 +/// See pub mod westend { use crate::chain_spec::bridge_hubs::rococo; From 922de240c6082bdeecb868cac24e023966a7f99e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?D=C3=B3nal=20Murray?= Date: Thu, 26 Oct 2023 08:59:37 +0100 Subject: [PATCH 37/78] Add westend collectives and glutton SP weights --- .../src/weights/cumulus_pallet_xcmp_queue.rs | 18 +- .../src/weights/frame_system.rs | 68 +++--- .../src/weights/pallet_alliance.rs | 206 ++++++++--------- .../src/weights/pallet_balances.rs | 46 ++-- .../src/weights/pallet_collator_selection.rs | 82 +++---- .../src/weights/pallet_collective.rs | 192 ++++++++-------- .../src/weights/pallet_collective_content.rs | 52 ++--- .../pallet_core_fellowship_ambassador_core.rs | 59 ++--- .../pallet_core_fellowship_fellowship_core.rs | 57 ++--- .../src/weights/pallet_multisig.rs | 76 +++---- .../src/weights/pallet_preimage.rs | 207 ++++++++++-------- .../src/weights/pallet_proxy.rs | 126 +++++------ ...ranked_collective_ambassador_collective.rs | 71 +++--- ...ranked_collective_fellowship_collective.rs | 69 +++--- .../pallet_referenda_ambassador_referenda.rs | 145 ++++++------ .../pallet_referenda_fellowship_referenda.rs | 141 ++++++------ .../pallet_salary_ambassador_salary.rs | 47 ++-- .../pallet_salary_fellowship_salary.rs | 45 ++-- .../src/weights/pallet_scheduler.rs | 94 ++++---- .../src/weights/pallet_session.rs | 18 +- .../src/weights/pallet_timestamp.rs | 18 +- .../src/weights/pallet_utility.rs | 42 ++-- .../src/weights/pallet_xcm.rs | 128 +++++------ .../src/weights/frame_system.rs | 64 +++--- .../src/weights/pallet_glutton.rs | 62 +++--- 25 files changed, 1103 insertions(+), 1030 deletions(-) diff --git a/cumulus/parachains/runtimes/collectives/collectives-westend/src/weights/cumulus_pallet_xcmp_queue.rs b/cumulus/parachains/runtimes/collectives/collectives-westend/src/weights/cumulus_pallet_xcmp_queue.rs index d07ba5cbd9f6..82b2b24b75e1 100644 --- a/cumulus/parachains/runtimes/collectives/collectives-westend/src/weights/cumulus_pallet_xcmp_queue.rs +++ b/cumulus/parachains/runtimes/collectives/collectives-westend/src/weights/cumulus_pallet_xcmp_queue.rs @@ -17,10 +17,10 @@ //! Autogenerated weights for `cumulus_pallet_xcmp_queue` //! //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev -//! DATE: 2023-07-31, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! DATE: 2023-10-25, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` //! WORST CASE MAP SIZE: `1000000` -//! HOSTNAME: `runner-ynta1nyy-project-238-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz` -//! EXECUTION: ``, WASM-EXECUTION: `Compiled`, CHAIN: `Some("collectives-westend-dev")`, DB CACHE: 1024 +//! HOSTNAME: `runner-ayothjw6-project-674-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz` +//! WASM-EXECUTION: `Compiled`, CHAIN: `Some("collectives-westend-dev")`, DB CACHE: 1024 // Executed Command: // ./target/production/polkadot-parachain @@ -36,8 +36,8 @@ // --steps=50 // --repeat=20 // --json -// --header=./file_header.txt -// --output=./parachains/runtimes/collectives/collectives-westend/src/weights/ +// --header=./cumulus/file_header.txt +// --output=./cumulus/parachains/runtimes/collectives/collectives-westend/src/weights/ #![cfg_attr(rustfmt, rustfmt_skip)] #![allow(unused_parens)] @@ -56,8 +56,8 @@ impl cumulus_pallet_xcmp_queue::WeightInfo for WeightIn // Proof Size summary in bytes: // Measured: `142` // Estimated: `1627` - // Minimum execution time: 5_136_000 picoseconds. - Weight::from_parts(5_399_000, 0) + // Minimum execution time: 4_236_000 picoseconds. + Weight::from_parts(4_471_000, 0) .saturating_add(Weight::from_parts(0, 1627)) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(1)) @@ -68,8 +68,8 @@ impl cumulus_pallet_xcmp_queue::WeightInfo for WeightIn // Proof Size summary in bytes: // Measured: `142` // Estimated: `1627` - // Minimum execution time: 5_056_000 picoseconds. - Weight::from_parts(5_301_000, 0) + // Minimum execution time: 4_277_000 picoseconds. + Weight::from_parts(4_516_000, 0) .saturating_add(Weight::from_parts(0, 1627)) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(1)) diff --git a/cumulus/parachains/runtimes/collectives/collectives-westend/src/weights/frame_system.rs b/cumulus/parachains/runtimes/collectives/collectives-westend/src/weights/frame_system.rs index 2a226345dce2..186a8e7178d5 100644 --- a/cumulus/parachains/runtimes/collectives/collectives-westend/src/weights/frame_system.rs +++ b/cumulus/parachains/runtimes/collectives/collectives-westend/src/weights/frame_system.rs @@ -17,10 +17,10 @@ //! Autogenerated weights for `frame_system` //! //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev -//! DATE: 2023-07-31, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! DATE: 2023-10-25, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` //! WORST CASE MAP SIZE: `1000000` -//! HOSTNAME: `runner-ynta1nyy-project-238-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz` -//! EXECUTION: ``, WASM-EXECUTION: `Compiled`, CHAIN: `Some("collectives-westend-dev")`, DB CACHE: 1024 +//! HOSTNAME: `runner-ayothjw6-project-674-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz` +//! WASM-EXECUTION: `Compiled`, CHAIN: `Some("collectives-westend-dev")`, DB CACHE: 1024 // Executed Command: // ./target/production/polkadot-parachain @@ -36,8 +36,8 @@ // --steps=50 // --repeat=20 // --json -// --header=./file_header.txt -// --output=./parachains/runtimes/collectives/collectives-westend/src/weights/ +// --header=./cumulus/file_header.txt +// --output=./cumulus/parachains/runtimes/collectives/collectives-westend/src/weights/ #![cfg_attr(rustfmt, rustfmt_skip)] #![allow(unused_parens)] @@ -55,22 +55,22 @@ impl frame_system::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 1_926_000 picoseconds. - Weight::from_parts(1_929_666, 0) + // Minimum execution time: 1_974_000 picoseconds. + Weight::from_parts(2_031_000, 0) .saturating_add(Weight::from_parts(0, 0)) // Standard Error: 0 - .saturating_add(Weight::from_parts(387, 0).saturating_mul(b.into())) + .saturating_add(Weight::from_parts(389, 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_221_000 picoseconds. - Weight::from_parts(34_449_539, 0) + // Minimum execution time: 5_535_000 picoseconds. + Weight::from_parts(5_694_000, 0) .saturating_add(Weight::from_parts(0, 0)) - // Standard Error: 7 - .saturating_add(Weight::from_parts(1_706, 0).saturating_mul(b.into())) + // Standard Error: 4 + .saturating_add(Weight::from_parts(1_663, 0).saturating_mul(b.into())) } /// Storage: `System::Digest` (r:1 w:1) /// Proof: `System::Digest` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) @@ -80,8 +80,8 @@ impl frame_system::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `0` // Estimated: `1485` - // Minimum execution time: 3_681_000 picoseconds. - Weight::from_parts(3_857_000, 0) + // Minimum execution time: 3_321_000 picoseconds. + Weight::from_parts(3_529_000, 0) .saturating_add(Weight::from_parts(0, 1485)) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(2)) @@ -100,11 +100,11 @@ impl frame_system::WeightInfo for WeightInfo { /// Proof: `ParachainSystem::DidSetValidationCode` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) fn set_code() -> Weight { // Proof Size summary in bytes: - // Measured: `156` - // Estimated: `1641` - // Minimum execution time: 101_899_621_000 picoseconds. - Weight::from_parts(106_377_672_000, 0) - .saturating_add(Weight::from_parts(0, 1641)) + // Measured: `164` + // Estimated: `1649` + // Minimum execution time: 114_623_305_000 picoseconds. + Weight::from_parts(119_247_587_000, 0) + .saturating_add(Weight::from_parts(0, 1649)) .saturating_add(T::DbWeight::get().reads(4)) .saturating_add(T::DbWeight::get().writes(3)) } @@ -115,11 +115,11 @@ impl frame_system::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 2_039_000 picoseconds. - Weight::from_parts(2_094_000, 0) + // Minimum execution time: 2_074_000 picoseconds. + Weight::from_parts(2_143_000, 0) .saturating_add(Weight::from_parts(0, 0)) - // Standard Error: 2_124 - .saturating_add(Weight::from_parts(754_465, 0).saturating_mul(i.into())) + // Standard Error: 2_454 + .saturating_add(Weight::from_parts(793_217, 0).saturating_mul(i.into())) .saturating_add(T::DbWeight::get().writes((1_u64).saturating_mul(i.into()))) } /// Storage: `Skipped::Metadata` (r:0 w:0) @@ -129,11 +129,11 @@ impl frame_system::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 2_103_000 picoseconds. - Weight::from_parts(2_182_000, 0) + // Minimum execution time: 2_105_000 picoseconds. + Weight::from_parts(2_129_000, 0) .saturating_add(Weight::from_parts(0, 0)) - // Standard Error: 1_031 - .saturating_add(Weight::from_parts(570_563, 0).saturating_mul(i.into())) + // Standard Error: 1_043 + .saturating_add(Weight::from_parts(584_296, 0).saturating_mul(i.into())) .saturating_add(T::DbWeight::get().writes((1_u64).saturating_mul(i.into()))) } /// Storage: `Skipped::Metadata` (r:0 w:0) @@ -141,13 +141,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: `82 + p * (69 ±0)` - // Estimated: `78 + p * (70 ±0)` - // Minimum execution time: 3_728_000 picoseconds. - Weight::from_parts(3_836_000, 0) - .saturating_add(Weight::from_parts(0, 78)) - // Standard Error: 1_802 - .saturating_add(Weight::from_parts(1_199_345, 0).saturating_mul(p.into())) + // Measured: `94 + p * (69 ±0)` + // Estimated: `94 + p * (70 ±0)` + // Minimum execution time: 3_794_000 picoseconds. + Weight::from_parts(3_960_000, 0) + .saturating_add(Weight::from_parts(0, 94)) + // Standard Error: 1_913 + .saturating_add(Weight::from_parts(1_196_677, 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/cumulus/parachains/runtimes/collectives/collectives-westend/src/weights/pallet_alliance.rs b/cumulus/parachains/runtimes/collectives/collectives-westend/src/weights/pallet_alliance.rs index 2f4eae554c0e..e39c9cb2ae2f 100644 --- a/cumulus/parachains/runtimes/collectives/collectives-westend/src/weights/pallet_alliance.rs +++ b/cumulus/parachains/runtimes/collectives/collectives-westend/src/weights/pallet_alliance.rs @@ -17,10 +17,10 @@ //! Autogenerated weights for `pallet_alliance` //! //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev -//! DATE: 2023-07-31, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! DATE: 2023-10-25, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` //! WORST CASE MAP SIZE: `1000000` -//! HOSTNAME: `runner-ynta1nyy-project-238-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz` -//! EXECUTION: ``, WASM-EXECUTION: `Compiled`, CHAIN: `Some("collectives-westend-dev")`, DB CACHE: 1024 +//! HOSTNAME: `runner-ayothjw6-project-674-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz` +//! WASM-EXECUTION: `Compiled`, CHAIN: `Some("collectives-westend-dev")`, DB CACHE: 1024 // Executed Command: // ./target/production/polkadot-parachain @@ -36,8 +36,8 @@ // --steps=50 // --repeat=20 // --json -// --header=./file_header.txt -// --output=./parachains/runtimes/collectives/collectives-westend/src/weights/ +// --header=./cumulus/file_header.txt +// --output=./cumulus/parachains/runtimes/collectives/collectives-westend/src/weights/ #![cfg_attr(rustfmt, rustfmt_skip)] #![allow(unused_parens)] @@ -65,17 +65,17 @@ impl pallet_alliance::WeightInfo for WeightInfo { /// The range of component `p` is `[1, 100]`. fn propose_proposed(b: u32, m: u32, p: u32, ) -> Weight { // Proof Size summary in bytes: - // Measured: `439 + m * (32 ±0) + p * (36 ±0)` + // Measured: `476 + m * (32 ±0) + p * (36 ±0)` // Estimated: `6676 + m * (32 ±0) + p * (36 ±0)` - // Minimum execution time: 32_783_000 picoseconds. - Weight::from_parts(32_174_037, 0) + // Minimum execution time: 28_174_000 picoseconds. + Weight::from_parts(28_265_273, 0) .saturating_add(Weight::from_parts(0, 6676)) - // Standard Error: 198 - .saturating_add(Weight::from_parts(1_220, 0).saturating_mul(b.into())) - // Standard Error: 2_074 - .saturating_add(Weight::from_parts(40_945, 0).saturating_mul(m.into())) - // Standard Error: 2_048 - .saturating_add(Weight::from_parts(181_087, 0).saturating_mul(p.into())) + // Standard Error: 149 + .saturating_add(Weight::from_parts(988, 0).saturating_mul(b.into())) + // Standard Error: 1_562 + .saturating_add(Weight::from_parts(38_035, 0).saturating_mul(m.into())) + // Standard Error: 1_542 + .saturating_add(Weight::from_parts(178_622, 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, 32).saturating_mul(m.into())) @@ -88,13 +88,13 @@ impl pallet_alliance::WeightInfo for WeightInfo { /// The range of component `m` is `[5, 100]`. fn vote(m: u32, ) -> Weight { // Proof Size summary in bytes: - // Measured: `868 + m * (64 ±0)` + // Measured: `905 + m * (64 ±0)` // Estimated: `6676 + m * (64 ±0)` - // Minimum execution time: 28_520_000 picoseconds. - Weight::from_parts(29_661_024, 0) + // Minimum execution time: 27_418_000 picoseconds. + Weight::from_parts(28_547_550, 0) .saturating_add(Weight::from_parts(0, 6676)) - // Standard Error: 2_336 - .saturating_add(Weight::from_parts(89_873, 0).saturating_mul(m.into())) + // Standard Error: 1_281 + .saturating_add(Weight::from_parts(58_900, 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())) @@ -113,15 +113,15 @@ impl pallet_alliance::WeightInfo for WeightInfo { /// The range of component `p` is `[1, 100]`. fn close_early_disapproved(m: u32, p: u32, ) -> Weight { // Proof Size summary in bytes: - // Measured: `312 + m * (96 ±0) + p * (36 ±0)` + // Measured: `349 + m * (96 ±0) + p * (36 ±0)` // Estimated: `6676 + m * (97 ±0) + p * (36 ±0)` - // Minimum execution time: 39_353_000 picoseconds. - Weight::from_parts(33_028_008, 0) + // Minimum execution time: 34_634_000 picoseconds. + Weight::from_parts(30_932_145, 0) .saturating_add(Weight::from_parts(0, 6676)) - // Standard Error: 2_137 - .saturating_add(Weight::from_parts(90_946, 0).saturating_mul(m.into())) - // Standard Error: 2_084 - .saturating_add(Weight::from_parts(175_827, 0).saturating_mul(p.into())) + // Standard Error: 1_405 + .saturating_add(Weight::from_parts(72_224, 0).saturating_mul(m.into())) + // Standard Error: 1_370 + .saturating_add(Weight::from_parts(168_173, 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, 97).saturating_mul(m.into())) @@ -140,17 +140,19 @@ impl pallet_alliance::WeightInfo for WeightInfo { /// The range of component `b` is `[1, 1024]`. /// The range of component `m` is `[4, 100]`. /// The range of component `p` is `[1, 100]`. - fn close_early_approved(_b: u32, m: u32, p: u32, ) -> Weight { + fn close_early_approved(b: u32, m: u32, p: u32, ) -> Weight { // Proof Size summary in bytes: - // Measured: `762 + m * (96 ±0) + p * (41 ±0)` + // Measured: `799 + m * (96 ±0) + p * (41 ±0)` // Estimated: `6676 + m * (97 ±0) + p * (40 ±0)` - // Minimum execution time: 52_835_000 picoseconds. - Weight::from_parts(45_963_292, 0) + // Minimum execution time: 46_869_000 picoseconds. + Weight::from_parts(40_923_212, 0) .saturating_add(Weight::from_parts(0, 6676)) - // Standard Error: 3_189 - .saturating_add(Weight::from_parts(111_627, 0).saturating_mul(m.into())) - // Standard Error: 3_109 - .saturating_add(Weight::from_parts(207_923, 0).saturating_mul(p.into())) + // Standard Error: 248 + .saturating_add(Weight::from_parts(46, 0).saturating_mul(b.into())) + // Standard Error: 2_625 + .saturating_add(Weight::from_parts(94_168, 0).saturating_mul(m.into())) + // Standard Error: 2_559 + .saturating_add(Weight::from_parts(205_865, 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, 97).saturating_mul(m.into())) @@ -174,15 +176,15 @@ impl pallet_alliance::WeightInfo for WeightInfo { /// The range of component `p` is `[1, 100]`. fn close_disapproved(m: u32, p: u32, ) -> Weight { // Proof Size summary in bytes: - // Measured: `518 + m * (96 ±0) + p * (41 ±0)` + // Measured: `555 + m * (96 ±0) + p * (41 ±0)` // Estimated: `6676 + m * (109 ±0) + p * (43 ±0)` - // Minimum execution time: 49_980_000 picoseconds. - Weight::from_parts(48_110_301, 0) + // Minimum execution time: 47_306_000 picoseconds. + Weight::from_parts(42_986_284, 0) .saturating_add(Weight::from_parts(0, 6676)) - // Standard Error: 5_057 - .saturating_add(Weight::from_parts(169_065, 0).saturating_mul(m.into())) - // Standard Error: 4_995 - .saturating_add(Weight::from_parts(201_349, 0).saturating_mul(p.into())) + // Standard Error: 4_227 + .saturating_add(Weight::from_parts(136_999, 0).saturating_mul(m.into())) + // Standard Error: 4_176 + .saturating_add(Weight::from_parts(195_442, 0).saturating_mul(p.into())) .saturating_add(T::DbWeight::get().reads(6)) .saturating_add(T::DbWeight::get().writes(4)) .saturating_add(Weight::from_parts(0, 109).saturating_mul(m.into())) @@ -203,17 +205,19 @@ impl pallet_alliance::WeightInfo for WeightInfo { /// The range of component `b` is `[1, 1024]`. /// The range of component `m` is `[5, 100]`. /// The range of component `p` is `[1, 100]`. - fn close_approved(_b: u32, m: u32, p: u32, ) -> Weight { + fn close_approved(b: u32, m: u32, p: u32, ) -> Weight { // Proof Size summary in bytes: - // Measured: `417 + m * (96 ±0) + p * (36 ±0)` + // Measured: `454 + m * (96 ±0) + p * (36 ±0)` // Estimated: `6676 + m * (96 ±0) + p * (36 ±0)` - // Minimum execution time: 40_646_000 picoseconds. - Weight::from_parts(36_865_909, 0) + // Minimum execution time: 35_896_000 picoseconds. + Weight::from_parts(31_007_839, 0) .saturating_add(Weight::from_parts(0, 6676)) - // Standard Error: 2_136 - .saturating_add(Weight::from_parts(74_341, 0).saturating_mul(m.into())) - // Standard Error: 2_059 - .saturating_add(Weight::from_parts(170_035, 0).saturating_mul(p.into())) + // Standard Error: 146 + .saturating_add(Weight::from_parts(499, 0).saturating_mul(b.into())) + // Standard Error: 1_562 + .saturating_add(Weight::from_parts(73_612, 0).saturating_mul(m.into())) + // Standard Error: 1_506 + .saturating_add(Weight::from_parts(177_870, 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, 96).saturating_mul(m.into())) @@ -227,15 +231,15 @@ impl pallet_alliance::WeightInfo for WeightInfo { /// The range of component `z` is `[0, 100]`. fn init_members(m: u32, z: u32, ) -> Weight { // Proof Size summary in bytes: - // Measured: `12` + // Measured: `48` // Estimated: `12362` - // Minimum execution time: 29_710_000 picoseconds. - Weight::from_parts(17_762_170, 0) + // Minimum execution time: 27_108_000 picoseconds. + Weight::from_parts(14_902_952, 0) .saturating_add(Weight::from_parts(0, 12362)) - // Standard Error: 1_652 - .saturating_add(Weight::from_parts(156_967, 0).saturating_mul(m.into())) - // Standard Error: 1_632 - .saturating_add(Weight::from_parts(130_352, 0).saturating_mul(z.into())) + // Standard Error: 1_370 + .saturating_add(Weight::from_parts(163_312, 0).saturating_mul(m.into())) + // Standard Error: 1_354 + .saturating_add(Weight::from_parts(134_431, 0).saturating_mul(z.into())) .saturating_add(T::DbWeight::get().reads(3)) .saturating_add(T::DbWeight::get().writes(3)) } @@ -258,15 +262,15 @@ impl pallet_alliance::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `0 + x * (52 ±0) + y * (53 ±0) + z * (250 ±0)` // Estimated: `12362 + x * (2539 ±0) + y * (2539 ±0) + z * (2603 ±1)` - // Minimum execution time: 294_258_000 picoseconds. - Weight::from_parts(295_116_000, 0) + // Minimum execution time: 310_288_000 picoseconds. + Weight::from_parts(312_847_000, 0) .saturating_add(Weight::from_parts(0, 12362)) - // Standard Error: 23_663 - .saturating_add(Weight::from_parts(553_978, 0).saturating_mul(x.into())) - // Standard Error: 23_549 - .saturating_add(Weight::from_parts(567_024, 0).saturating_mul(y.into())) - // Standard Error: 47_055 - .saturating_add(Weight::from_parts(15_439_056, 0).saturating_mul(z.into())) + // Standard Error: 25_829 + .saturating_add(Weight::from_parts(554_825, 0).saturating_mul(x.into())) + // Standard Error: 25_705 + .saturating_add(Weight::from_parts(588_691, 0).saturating_mul(y.into())) + // Standard Error: 51_363 + .saturating_add(Weight::from_parts(13_671_864, 0).saturating_mul(z.into())) .saturating_add(T::DbWeight::get().reads(3)) .saturating_add(T::DbWeight::get().reads((1_u64).saturating_mul(x.into()))) .saturating_add(T::DbWeight::get().reads((1_u64).saturating_mul(y.into()))) @@ -283,8 +287,8 @@ impl pallet_alliance::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 8_538_000 picoseconds. - Weight::from_parts(8_752_000, 0) + // Minimum execution time: 6_193_000 picoseconds. + Weight::from_parts(6_440_000, 0) .saturating_add(Weight::from_parts(0, 0)) .saturating_add(T::DbWeight::get().writes(1)) } @@ -294,8 +298,8 @@ impl pallet_alliance::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `76` // Estimated: `10187` - // Minimum execution time: 11_213_000 picoseconds. - Weight::from_parts(11_792_000, 0) + // Minimum execution time: 8_350_000 picoseconds. + Weight::from_parts(8_675_000, 0) .saturating_add(Weight::from_parts(0, 10187)) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(1)) @@ -306,8 +310,8 @@ impl pallet_alliance::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `149` // Estimated: `10187` - // Minimum execution time: 12_477_000 picoseconds. - Weight::from_parts(12_942_000, 0) + // Minimum execution time: 9_268_000 picoseconds. + Weight::from_parts(9_757_000, 0) .saturating_add(Weight::from_parts(0, 10187)) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(1)) @@ -324,8 +328,8 @@ impl pallet_alliance::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `294` // Estimated: `18048` - // Minimum execution time: 41_517_000 picoseconds. - Weight::from_parts(42_433_000, 0) + // Minimum execution time: 37_756_000 picoseconds. + Weight::from_parts(38_912_000, 0) .saturating_add(Weight::from_parts(0, 18048)) .saturating_add(T::DbWeight::get().reads(5)) .saturating_add(T::DbWeight::get().writes(3)) @@ -338,8 +342,8 @@ impl pallet_alliance::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `193` // Estimated: `18048` - // Minimum execution time: 25_950_000 picoseconds. - Weight::from_parts(26_631_000, 0) + // Minimum execution time: 23_340_000 picoseconds. + Weight::from_parts(24_417_000, 0) .saturating_add(Weight::from_parts(0, 18048)) .saturating_add(T::DbWeight::get().reads(4)) .saturating_add(T::DbWeight::get().writes(1)) @@ -354,10 +358,10 @@ impl pallet_alliance::WeightInfo for WeightInfo { /// Proof: `AllianceMotion::Prime` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) fn elevate_ally() -> Weight { // Proof Size summary in bytes: - // Measured: `236` + // Measured: `273` // Estimated: `12362` - // Minimum execution time: 24_470_000 picoseconds. - Weight::from_parts(25_222_000, 0) + // Minimum execution time: 22_323_000 picoseconds. + Weight::from_parts(23_152_000, 0) .saturating_add(Weight::from_parts(0, 12362)) .saturating_add(T::DbWeight::get().reads(3)) .saturating_add(T::DbWeight::get().writes(4)) @@ -374,10 +378,10 @@ impl pallet_alliance::WeightInfo for WeightInfo { /// Proof: `Alliance::RetiringMembers` (`max_values`: None, `max_size`: Some(52), added: 2527, mode: `MaxEncodedLen`) fn give_retirement_notice() -> Weight { // Proof Size summary in bytes: - // Measured: `236` + // Measured: `273` // Estimated: `23734` - // Minimum execution time: 31_519_000 picoseconds. - Weight::from_parts(32_827_000, 0) + // Minimum execution time: 27_343_000 picoseconds. + Weight::from_parts(28_590_000, 0) .saturating_add(Weight::from_parts(0, 23734)) .saturating_add(T::DbWeight::get().reads(5)) .saturating_add(T::DbWeight::get().writes(5)) @@ -394,8 +398,8 @@ impl pallet_alliance::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `517` // Estimated: `6676` - // Minimum execution time: 38_799_000 picoseconds. - Weight::from_parts(39_634_000, 0) + // Minimum execution time: 34_882_000 picoseconds. + Weight::from_parts(36_031_000, 0) .saturating_add(Weight::from_parts(0, 6676)) .saturating_add(T::DbWeight::get().reads(4)) .saturating_add(T::DbWeight::get().writes(4)) @@ -426,10 +430,10 @@ impl pallet_alliance::WeightInfo for WeightInfo { /// Proof: `AllianceMotion::Prime` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) fn kick_member() -> Weight { // Proof Size summary in bytes: - // Measured: `643` + // Measured: `751` // Estimated: `18048` - // Minimum execution time: 137_442_000 picoseconds. - Weight::from_parts(142_142_000, 0) + // Minimum execution time: 125_529_000 picoseconds. + Weight::from_parts(129_404_000, 0) .saturating_add(Weight::from_parts(0, 18048)) .saturating_add(T::DbWeight::get().reads(13)) .saturating_add(T::DbWeight::get().writes(8)) @@ -440,17 +444,17 @@ impl pallet_alliance::WeightInfo for WeightInfo { /// Proof: `Alliance::UnscrupulousWebsites` (`max_values`: Some(1), `max_size`: Some(25702), added: 26197, mode: `MaxEncodedLen`) /// The range of component `n` is `[0, 100]`. /// The range of component `l` is `[0, 255]`. - fn add_unscrupulous_items(n: u32, l: u32, ) -> Weight { + fn add_scrupulous_items(n: u32, l: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `76` // Estimated: `27187` - // Minimum execution time: 7_189_000 picoseconds. - Weight::from_parts(7_387_000, 0) + // Minimum execution time: 5_358_000 picoseconds. + Weight::from_parts(5_480_000, 0) .saturating_add(Weight::from_parts(0, 27187)) - // Standard Error: 3_417 - .saturating_add(Weight::from_parts(1_581_413, 0).saturating_mul(n.into())) - // Standard Error: 1_338 - .saturating_add(Weight::from_parts(67_739, 0).saturating_mul(l.into())) + // Standard Error: 3_995 + .saturating_add(Weight::from_parts(1_027_103, 0).saturating_mul(n.into())) + // Standard Error: 1_564 + .saturating_add(Weight::from_parts(71_573, 0).saturating_mul(l.into())) .saturating_add(T::DbWeight::get().reads(2)) .saturating_add(T::DbWeight::get().writes(2)) } @@ -464,13 +468,13 @@ impl pallet_alliance::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `0 + l * (100 ±0) + n * (289 ±0)` // Estimated: `27187` - // Minimum execution time: 7_201_000 picoseconds. - Weight::from_parts(7_325_000, 0) + // Minimum execution time: 5_414_000 picoseconds. + Weight::from_parts(5_526_000, 0) .saturating_add(Weight::from_parts(0, 27187)) - // Standard Error: 183_302 - .saturating_add(Weight::from_parts(16_886_382, 0).saturating_mul(n.into())) - // Standard Error: 71_789 - .saturating_add(Weight::from_parts(352_937, 0).saturating_mul(l.into())) + // Standard Error: 191_933 + .saturating_add(Weight::from_parts(17_796_412, 0).saturating_mul(n.into())) + // Standard Error: 75_169 + .saturating_add(Weight::from_parts(269_485, 0).saturating_mul(l.into())) .saturating_add(T::DbWeight::get().reads(2)) .saturating_add(T::DbWeight::get().writes(2)) } @@ -484,10 +488,10 @@ impl pallet_alliance::WeightInfo for WeightInfo { /// Proof: `AllianceMotion::Prime` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) fn abdicate_fellow_status() -> Weight { // Proof Size summary in bytes: - // Measured: `236` + // Measured: `273` // Estimated: `18048` - // Minimum execution time: 29_653_000 picoseconds. - Weight::from_parts(30_365_000, 0) + // Minimum execution time: 27_088_000 picoseconds. + Weight::from_parts(27_806_000, 0) .saturating_add(Weight::from_parts(0, 18048)) .saturating_add(T::DbWeight::get().reads(4)) .saturating_add(T::DbWeight::get().writes(4)) diff --git a/cumulus/parachains/runtimes/collectives/collectives-westend/src/weights/pallet_balances.rs b/cumulus/parachains/runtimes/collectives/collectives-westend/src/weights/pallet_balances.rs index 46b8676bce9c..e53388385e6a 100644 --- a/cumulus/parachains/runtimes/collectives/collectives-westend/src/weights/pallet_balances.rs +++ b/cumulus/parachains/runtimes/collectives/collectives-westend/src/weights/pallet_balances.rs @@ -17,10 +17,10 @@ //! Autogenerated weights for `pallet_balances` //! //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev -//! DATE: 2023-07-31, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! DATE: 2023-10-25, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` //! WORST CASE MAP SIZE: `1000000` -//! HOSTNAME: `runner-ynta1nyy-project-238-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz` -//! EXECUTION: ``, WASM-EXECUTION: `Compiled`, CHAIN: `Some("collectives-westend-dev")`, DB CACHE: 1024 +//! HOSTNAME: `runner-ayothjw6-project-674-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz` +//! WASM-EXECUTION: `Compiled`, CHAIN: `Some("collectives-westend-dev")`, DB CACHE: 1024 // Executed Command: // ./target/production/polkadot-parachain @@ -36,8 +36,8 @@ // --steps=50 // --repeat=20 // --json -// --header=./file_header.txt -// --output=./parachains/runtimes/collectives/collectives-westend/src/weights/ +// --header=./cumulus/file_header.txt +// --output=./cumulus/parachains/runtimes/collectives/collectives-westend/src/weights/ #![cfg_attr(rustfmt, rustfmt_skip)] #![allow(unused_parens)] @@ -56,8 +56,8 @@ impl pallet_balances::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `0` // Estimated: `3593` - // Minimum execution time: 55_696_000 picoseconds. - Weight::from_parts(56_582_000, 0) + // Minimum execution time: 45_966_000 picoseconds. + Weight::from_parts(46_577_000, 0) .saturating_add(Weight::from_parts(0, 3593)) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(1)) @@ -68,8 +68,8 @@ impl pallet_balances::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `0` // Estimated: `3593` - // Minimum execution time: 40_885_000 picoseconds. - Weight::from_parts(41_993_000, 0) + // Minimum execution time: 35_637_000 picoseconds. + Weight::from_parts(36_403_000, 0) .saturating_add(Weight::from_parts(0, 3593)) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(1)) @@ -80,8 +80,8 @@ impl pallet_balances::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `103` // Estimated: `3593` - // Minimum execution time: 14_565_000 picoseconds. - Weight::from_parts(15_080_000, 0) + // Minimum execution time: 12_923_000 picoseconds. + Weight::from_parts(13_239_000, 0) .saturating_add(Weight::from_parts(0, 3593)) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(1)) @@ -92,8 +92,8 @@ impl pallet_balances::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `103` // Estimated: `3593` - // Minimum execution time: 22_158_000 picoseconds. - Weight::from_parts(22_715_000, 0) + // Minimum execution time: 18_042_000 picoseconds. + Weight::from_parts(18_398_000, 0) .saturating_add(Weight::from_parts(0, 3593)) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(1)) @@ -104,8 +104,8 @@ impl pallet_balances::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `103` // Estimated: `6196` - // Minimum execution time: 57_957_000 picoseconds. - Weight::from_parts(58_618_000, 0) + // Minimum execution time: 47_006_000 picoseconds. + Weight::from_parts(47_851_000, 0) .saturating_add(Weight::from_parts(0, 6196)) .saturating_add(T::DbWeight::get().reads(2)) .saturating_add(T::DbWeight::get().writes(2)) @@ -116,8 +116,8 @@ impl pallet_balances::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `0` // Estimated: `3593` - // Minimum execution time: 52_018_000 picoseconds. - Weight::from_parts(52_795_000, 0) + // Minimum execution time: 44_738_000 picoseconds. + Weight::from_parts(45_040_000, 0) .saturating_add(Weight::from_parts(0, 3593)) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(1)) @@ -128,8 +128,8 @@ impl pallet_balances::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `103` // Estimated: `3593` - // Minimum execution time: 17_469_000 picoseconds. - Weight::from_parts(18_030_000, 0) + // Minimum execution time: 15_378_000 picoseconds. + Weight::from_parts(15_864_000, 0) .saturating_add(Weight::from_parts(0, 3593)) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(1)) @@ -141,11 +141,11 @@ impl pallet_balances::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `0 + u * (136 ±0)` // Estimated: `990 + u * (2603 ±0)` - // Minimum execution time: 17_223_000 picoseconds. - Weight::from_parts(17_587_000, 0) + // Minimum execution time: 15_154_000 picoseconds. + Weight::from_parts(15_325_000, 0) .saturating_add(Weight::from_parts(0, 990)) - // Standard Error: 16_201 - .saturating_add(Weight::from_parts(15_360_967, 0).saturating_mul(u.into())) + // Standard Error: 16_649 + .saturating_add(Weight::from_parts(14_005_633, 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/cumulus/parachains/runtimes/collectives/collectives-westend/src/weights/pallet_collator_selection.rs b/cumulus/parachains/runtimes/collectives/collectives-westend/src/weights/pallet_collator_selection.rs index f68302d58555..f7f9ae0d06ab 100644 --- a/cumulus/parachains/runtimes/collectives/collectives-westend/src/weights/pallet_collator_selection.rs +++ b/cumulus/parachains/runtimes/collectives/collectives-westend/src/weights/pallet_collator_selection.rs @@ -17,10 +17,10 @@ //! Autogenerated weights for `pallet_collator_selection` //! //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev -//! DATE: 2023-07-31, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! DATE: 2023-10-25, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` //! WORST CASE MAP SIZE: `1000000` -//! HOSTNAME: `runner-ynta1nyy-project-238-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz` -//! EXECUTION: ``, WASM-EXECUTION: `Compiled`, CHAIN: `Some("collectives-westend-dev")`, DB CACHE: 1024 +//! HOSTNAME: `runner-ayothjw6-project-674-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz` +//! WASM-EXECUTION: `Compiled`, CHAIN: `Some("collectives-westend-dev")`, DB CACHE: 1024 // Executed Command: // ./target/production/polkadot-parachain @@ -36,8 +36,8 @@ // --steps=50 // --repeat=20 // --json -// --header=./file_header.txt -// --output=./parachains/runtimes/collectives/collectives-westend/src/weights/ +// --header=./cumulus/file_header.txt +// --output=./cumulus/parachains/runtimes/collectives/collectives-westend/src/weights/ #![cfg_attr(rustfmt, rustfmt_skip)] #![allow(unused_parens)] @@ -59,11 +59,11 @@ impl pallet_collator_selection::WeightInfo for WeightIn // Proof Size summary in bytes: // Measured: `163 + b * (79 ±0)` // Estimated: `1154 + b * (2555 ±0)` - // Minimum execution time: 14_616_000 picoseconds. - Weight::from_parts(12_150_410, 0) + // Minimum execution time: 12_056_000 picoseconds. + Weight::from_parts(9_406_730, 0) .saturating_add(Weight::from_parts(0, 1154)) - // Standard Error: 6_270 - .saturating_add(Weight::from_parts(3_256_932, 0).saturating_mul(b.into())) + // Standard Error: 4_827 + .saturating_add(Weight::from_parts(3_183_919, 0).saturating_mul(b.into())) .saturating_add(T::DbWeight::get().reads((1_u64).saturating_mul(b.into()))) .saturating_add(T::DbWeight::get().writes(1)) .saturating_add(Weight::from_parts(0, 2555).saturating_mul(b.into())) @@ -80,13 +80,15 @@ impl pallet_collator_selection::WeightInfo for WeightIn /// The range of component `c` is `[1, 99]`. fn add_invulnerable(b: u32, c: u32, ) -> Weight { // Proof Size summary in bytes: - // Measured: `756 + b * (32 ±0) + c * (53 ±0)` + // Measured: `790 + b * (32 ±0) + c * (53 ±0)` // Estimated: `6287 + b * (37 ±0) + c * (53 ±0)` - // Minimum execution time: 48_450_000 picoseconds. - Weight::from_parts(51_166_679, 0) + // Minimum execution time: 39_794_000 picoseconds. + Weight::from_parts(39_991_454, 0) .saturating_add(Weight::from_parts(0, 6287)) - // Standard Error: 2_588 - .saturating_add(Weight::from_parts(167_219, 0).saturating_mul(c.into())) + // Standard Error: 10_388 + .saturating_add(Weight::from_parts(78_018, 0).saturating_mul(b.into())) + // Standard Error: 1_969 + .saturating_add(Weight::from_parts(166_857, 0).saturating_mul(c.into())) .saturating_add(T::DbWeight::get().reads(4)) .saturating_add(T::DbWeight::get().writes(3)) .saturating_add(Weight::from_parts(0, 37).saturating_mul(b.into())) @@ -99,13 +101,13 @@ impl pallet_collator_selection::WeightInfo for WeightIn /// The range of component `b` is `[5, 20]`. fn remove_invulnerable(b: u32, ) -> Weight { // Proof Size summary in bytes: - // Measured: `119 + b * (32 ±0)` + // Measured: `153 + b * (32 ±0)` // Estimated: `6287` - // Minimum execution time: 15_830_000 picoseconds. - Weight::from_parts(15_792_847, 0) + // Minimum execution time: 12_209_000 picoseconds. + Weight::from_parts(12_416_370, 0) .saturating_add(Weight::from_parts(0, 6287)) - // Standard Error: 5_343 - .saturating_add(Weight::from_parts(167_955, 0).saturating_mul(b.into())) + // Standard Error: 2_675 + .saturating_add(Weight::from_parts(122_318, 0).saturating_mul(b.into())) .saturating_add(T::DbWeight::get().reads(2)) .saturating_add(T::DbWeight::get().writes(1)) } @@ -115,8 +117,8 @@ impl pallet_collator_selection::WeightInfo for WeightIn // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 7_424_000 picoseconds. - Weight::from_parts(7_767_000, 0) + // Minimum execution time: 5_163_000 picoseconds. + Weight::from_parts(5_424_000, 0) .saturating_add(Weight::from_parts(0, 0)) .saturating_add(T::DbWeight::get().writes(1)) } @@ -126,8 +128,8 @@ impl pallet_collator_selection::WeightInfo for WeightIn // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 7_388_000 picoseconds. - Weight::from_parts(7_677_000, 0) + // Minimum execution time: 5_094_000 picoseconds. + Weight::from_parts(5_353_000, 0) .saturating_add(Weight::from_parts(0, 0)) .saturating_add(T::DbWeight::get().writes(1)) } @@ -146,13 +148,13 @@ impl pallet_collator_selection::WeightInfo for WeightIn /// The range of component `c` is `[1, 99]`. fn register_as_candidate(c: u32, ) -> Weight { // Proof Size summary in bytes: - // Measured: `736 + c * (52 ±0)` + // Measured: `770 + c * (52 ±0)` // Estimated: `6287 + c * (54 ±0)` - // Minimum execution time: 41_241_000 picoseconds. - Weight::from_parts(46_090_319, 0) + // Minimum execution time: 34_470_000 picoseconds. + Weight::from_parts(38_594_947, 0) .saturating_add(Weight::from_parts(0, 6287)) - // Standard Error: 2_918 - .saturating_add(Weight::from_parts(161_140, 0).saturating_mul(c.into())) + // Standard Error: 2_058 + .saturating_add(Weight::from_parts(161_606, 0).saturating_mul(c.into())) .saturating_add(T::DbWeight::get().reads(5)) .saturating_add(T::DbWeight::get().writes(2)) .saturating_add(Weight::from_parts(0, 54).saturating_mul(c.into())) @@ -166,13 +168,13 @@ impl pallet_collator_selection::WeightInfo for WeightIn /// The range of component `c` is `[4, 100]`. fn leave_intent(c: u32, ) -> Weight { // Proof Size summary in bytes: - // Measured: `306 + c * (50 ±0)` + // Measured: `340 + c * (50 ±0)` // Estimated: `6287` - // Minimum execution time: 34_221_000 picoseconds. - Weight::from_parts(36_183_872, 0) + // Minimum execution time: 28_490_000 picoseconds. + Weight::from_parts(30_562_663, 0) .saturating_add(Weight::from_parts(0, 6287)) - // Standard Error: 2_766 - .saturating_add(Weight::from_parts(168_742, 0).saturating_mul(c.into())) + // Standard Error: 1_994 + .saturating_add(Weight::from_parts(151_043, 0).saturating_mul(c.into())) .saturating_add(T::DbWeight::get().reads(2)) .saturating_add(T::DbWeight::get().writes(2)) } @@ -186,8 +188,8 @@ impl pallet_collator_selection::WeightInfo for WeightIn // Proof Size summary in bytes: // Measured: `103` // Estimated: `6196` - // Minimum execution time: 43_910_000 picoseconds. - Weight::from_parts(44_796_000, 0) + // Minimum execution time: 38_472_000 picoseconds. + Weight::from_parts(38_796_000, 0) .saturating_add(Weight::from_parts(0, 6196)) .saturating_add(T::DbWeight::get().reads(3)) .saturating_add(T::DbWeight::get().writes(4)) @@ -206,13 +208,13 @@ impl pallet_collator_selection::WeightInfo for WeightIn /// The range of component `c` is `[1, 100]`. fn new_session(r: u32, c: u32, ) -> Weight { // Proof Size summary in bytes: - // Measured: `2243 + c * (97 ±0) + r * (112 ±0)` + // Measured: `2277 + c * (97 ±0) + r * (112 ±0)` // Estimated: `6287 + c * (2519 ±0) + r * (2603 ±0)` - // Minimum execution time: 17_092_000 picoseconds. - Weight::from_parts(17_635_000, 0) + // Minimum execution time: 14_285_000 picoseconds. + Weight::from_parts(14_526_000, 0) .saturating_add(Weight::from_parts(0, 6287)) - // Standard Error: 351_635 - .saturating_add(Weight::from_parts(15_162_192, 0).saturating_mul(c.into())) + // Standard Error: 294_316 + .saturating_add(Weight::from_parts(12_685_607, 0).saturating_mul(c.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().writes(1)) diff --git a/cumulus/parachains/runtimes/collectives/collectives-westend/src/weights/pallet_collective.rs b/cumulus/parachains/runtimes/collectives/collectives-westend/src/weights/pallet_collective.rs index 8a2169ae5fc0..a025b8aaf707 100644 --- a/cumulus/parachains/runtimes/collectives/collectives-westend/src/weights/pallet_collective.rs +++ b/cumulus/parachains/runtimes/collectives/collectives-westend/src/weights/pallet_collective.rs @@ -17,10 +17,10 @@ //! Autogenerated weights for `pallet_collective` //! //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev -//! DATE: 2023-07-31, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! DATE: 2023-10-25, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` //! WORST CASE MAP SIZE: `1000000` -//! HOSTNAME: `runner-ynta1nyy-project-238-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz` -//! EXECUTION: ``, WASM-EXECUTION: `Compiled`, CHAIN: `Some("collectives-westend-dev")`, DB CACHE: 1024 +//! HOSTNAME: `runner-ayothjw6-project-674-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz` +//! WASM-EXECUTION: `Compiled`, CHAIN: `Some("collectives-westend-dev")`, DB CACHE: 1024 // Executed Command: // ./target/production/polkadot-parachain @@ -36,8 +36,8 @@ // --steps=50 // --repeat=20 // --json -// --header=./file_header.txt -// --output=./parachains/runtimes/collectives/collectives-westend/src/weights/ +// --header=./cumulus/file_header.txt +// --output=./cumulus/parachains/runtimes/collectives/collectives-westend/src/weights/ #![cfg_attr(rustfmt, rustfmt_skip)] #![allow(unused_parens)] @@ -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: `15691 + m * (1967 ±23) + p * (4332 ±23)` - // Minimum execution time: 16_410_000 picoseconds. - Weight::from_parts(16_816_000, 0) - .saturating_add(Weight::from_parts(0, 15691)) - // Standard Error: 59_812 - .saturating_add(Weight::from_parts(4_516_537, 0).saturating_mul(m.into())) - // Standard Error: 59_812 - .saturating_add(Weight::from_parts(7_992_168, 0).saturating_mul(p.into())) + // Estimated: `15728 + m * (1967 ±23) + p * (4332 ±23)` + // Minimum execution time: 15_785_000 picoseconds. + Weight::from_parts(15_864_000, 0) + .saturating_add(Weight::from_parts(0, 15728)) + // Standard Error: 56_422 + .saturating_add(Weight::from_parts(4_305_725, 0).saturating_mul(m.into())) + // Standard Error: 56_422 + .saturating_add(Weight::from_parts(7_762_022, 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)) @@ -85,15 +85,15 @@ impl pallet_collective::WeightInfo for WeightInfo { /// The range of component `m` is `[1, 100]`. fn execute(b: u32, m: u32, ) -> Weight { // Proof Size summary in bytes: - // Measured: `32 + m * (32 ±0)` - // Estimated: `1518 + m * (32 ±0)` - // Minimum execution time: 14_418_000 picoseconds. - Weight::from_parts(13_588_617, 0) - .saturating_add(Weight::from_parts(0, 1518)) - // Standard Error: 21 - .saturating_add(Weight::from_parts(1_711, 0).saturating_mul(b.into())) - // Standard Error: 223 - .saturating_add(Weight::from_parts(13_836, 0).saturating_mul(m.into())) + // Measured: `69 + m * (32 ±0)` + // Estimated: `1555 + m * (32 ±0)` + // Minimum execution time: 13_746_000 picoseconds. + Weight::from_parts(12_729_617, 0) + .saturating_add(Weight::from_parts(0, 1555)) + // Standard Error: 29 + .saturating_add(Weight::from_parts(1_595, 0).saturating_mul(b.into())) + // Standard Error: 304 + .saturating_add(Weight::from_parts(14_973, 0).saturating_mul(m.into())) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(Weight::from_parts(0, 32).saturating_mul(m.into())) } @@ -105,15 +105,15 @@ impl pallet_collective::WeightInfo for WeightInfo { /// The range of component `m` is `[1, 100]`. fn propose_execute(b: u32, m: u32, ) -> Weight { // Proof Size summary in bytes: - // Measured: `32 + m * (32 ±0)` - // Estimated: `3498 + m * (32 ±0)` - // Minimum execution time: 17_174_000 picoseconds. - Weight::from_parts(16_192_764, 0) - .saturating_add(Weight::from_parts(0, 3498)) - // Standard Error: 27 - .saturating_add(Weight::from_parts(1_672, 0).saturating_mul(b.into())) - // Standard Error: 280 - .saturating_add(Weight::from_parts(24_343, 0).saturating_mul(m.into())) + // Measured: `69 + m * (32 ±0)` + // Estimated: `3535 + m * (32 ±0)` + // Minimum execution time: 16_009_000 picoseconds. + Weight::from_parts(15_062_383, 0) + .saturating_add(Weight::from_parts(0, 3535)) + // Standard Error: 25 + .saturating_add(Weight::from_parts(1_645, 0).saturating_mul(b.into())) + // Standard Error: 258 + .saturating_add(Weight::from_parts(21_739, 0).saturating_mul(m.into())) .saturating_add(T::DbWeight::get().reads(2)) .saturating_add(Weight::from_parts(0, 32).saturating_mul(m.into())) } @@ -132,17 +132,17 @@ impl pallet_collective::WeightInfo for WeightInfo { /// The range of component `p` is `[1, 100]`. fn propose_proposed(b: u32, m: u32, p: u32, ) -> Weight { // Proof Size summary in bytes: - // Measured: `322 + m * (32 ±0) + p * (36 ±0)` - // Estimated: `3714 + m * (33 ±0) + p * (36 ±0)` - // Minimum execution time: 23_970_000 picoseconds. - Weight::from_parts(23_004_052, 0) - .saturating_add(Weight::from_parts(0, 3714)) - // Standard Error: 123 - .saturating_add(Weight::from_parts(2_728, 0).saturating_mul(b.into())) - // Standard Error: 1_291 - .saturating_add(Weight::from_parts(32_731, 0).saturating_mul(m.into())) - // Standard Error: 1_275 - .saturating_add(Weight::from_parts(199_537, 0).saturating_mul(p.into())) + // Measured: `359 + m * (32 ±0) + p * (36 ±0)` + // Estimated: `3751 + m * (33 ±0) + p * (36 ±0)` + // Minimum execution time: 20_993_000 picoseconds. + Weight::from_parts(18_666_399, 0) + .saturating_add(Weight::from_parts(0, 3751)) + // Standard Error: 95 + .saturating_add(Weight::from_parts(3_542, 0).saturating_mul(b.into())) + // Standard Error: 991 + .saturating_add(Weight::from_parts(28_198, 0).saturating_mul(m.into())) + // Standard Error: 979 + .saturating_add(Weight::from_parts(198_850, 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())) @@ -155,13 +155,13 @@ impl pallet_collective::WeightInfo for WeightInfo { /// The range of component `m` is `[5, 100]`. fn vote(m: u32, ) -> Weight { // Proof Size summary in bytes: - // Measured: `771 + m * (64 ±0)` - // Estimated: `4235 + m * (64 ±0)` - // Minimum execution time: 25_843_000 picoseconds. - Weight::from_parts(26_092_578, 0) - .saturating_add(Weight::from_parts(0, 4235)) - // Standard Error: 1_785 - .saturating_add(Weight::from_parts(67_298, 0).saturating_mul(m.into())) + // Measured: `808 + m * (64 ±0)` + // Estimated: `4272 + m * (64 ±0)` + // Minimum execution time: 23_348_000 picoseconds. + Weight::from_parts(25_039_418, 0) + .saturating_add(Weight::from_parts(0, 4272)) + // Standard Error: 1_084 + .saturating_add(Weight::from_parts(31_461, 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())) @@ -178,15 +178,15 @@ impl pallet_collective::WeightInfo for WeightInfo { /// The range of component `p` is `[1, 100]`. fn close_early_disapproved(m: u32, p: u32, ) -> Weight { // Proof Size summary in bytes: - // Measured: `360 + m * (64 ±0) + p * (36 ±0)` - // Estimated: `3805 + m * (65 ±0) + p * (36 ±0)` - // Minimum execution time: 27_543_000 picoseconds. - Weight::from_parts(26_505_473, 0) - .saturating_add(Weight::from_parts(0, 3805)) - // Standard Error: 1_054 - .saturating_add(Weight::from_parts(35_295, 0).saturating_mul(m.into())) - // Standard Error: 1_028 - .saturating_add(Weight::from_parts(190_508, 0).saturating_mul(p.into())) + // Measured: `397 + m * (64 ±0) + p * (36 ±0)` + // Estimated: `3842 + m * (65 ±0) + p * (36 ±0)` + // Minimum execution time: 23_433_000 picoseconds. + Weight::from_parts(22_748_277, 0) + .saturating_add(Weight::from_parts(0, 3842)) + // Standard Error: 1_110 + .saturating_add(Weight::from_parts(28_988, 0).saturating_mul(m.into())) + // Standard Error: 1_082 + .saturating_add(Weight::from_parts(188_763, 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())) @@ -205,17 +205,17 @@ impl pallet_collective::WeightInfo for WeightInfo { /// The range of component `p` is `[1, 100]`. fn close_early_approved(b: u32, m: u32, p: u32, ) -> Weight { // Proof Size summary in bytes: - // Measured: `662 + b * (1 ±0) + m * (64 ±0) + p * (40 ±0)` - // Estimated: `3979 + b * (1 ±0) + m * (66 ±0) + p * (40 ±0)` - // Minimum execution time: 40_375_000 picoseconds. - Weight::from_parts(34_081_294, 0) - .saturating_add(Weight::from_parts(0, 3979)) - // Standard Error: 196 - .saturating_add(Weight::from_parts(3_796, 0).saturating_mul(b.into())) - // Standard Error: 2_072 - .saturating_add(Weight::from_parts(50_954, 0).saturating_mul(m.into())) - // Standard Error: 2_020 - .saturating_add(Weight::from_parts(246_000, 0).saturating_mul(p.into())) + // Measured: `699 + b * (1 ±0) + m * (64 ±0) + p * (40 ±0)` + // Estimated: `4016 + b * (1 ±0) + m * (66 ±0) + p * (40 ±0)` + // Minimum execution time: 33_339_000 picoseconds. + Weight::from_parts(32_125_967, 0) + .saturating_add(Weight::from_parts(0, 4016)) + // Standard Error: 164 + .saturating_add(Weight::from_parts(1_969, 0).saturating_mul(b.into())) + // Standard Error: 1_734 + .saturating_add(Weight::from_parts(26_994, 0).saturating_mul(m.into())) + // Standard Error: 1_691 + .saturating_add(Weight::from_parts(234_011, 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())) @@ -236,15 +236,15 @@ impl pallet_collective::WeightInfo for WeightInfo { /// The range of component `p` is `[1, 100]`. fn close_disapproved(m: u32, p: u32, ) -> Weight { // Proof Size summary in bytes: - // Measured: `458 + m * (48 ±0) + p * (36 ±0)` - // Estimated: `3898 + m * (49 ±0) + p * (36 ±0)` - // Minimum execution time: 28_793_000 picoseconds. - Weight::from_parts(29_656_832, 0) - .saturating_add(Weight::from_parts(0, 3898)) - // Standard Error: 1_214 - .saturating_add(Weight::from_parts(22_148, 0).saturating_mul(m.into())) - // Standard Error: 1_184 - .saturating_add(Weight::from_parts(189_860, 0).saturating_mul(p.into())) + // Measured: `495 + m * (48 ±0) + p * (36 ±0)` + // Estimated: `3935 + m * (49 ±0) + p * (36 ±0)` + // Minimum execution time: 24_185_000 picoseconds. + Weight::from_parts(23_905_565, 0) + .saturating_add(Weight::from_parts(0, 3935)) + // Standard Error: 1_018 + .saturating_add(Weight::from_parts(26_540, 0).saturating_mul(m.into())) + // Standard Error: 992 + .saturating_add(Weight::from_parts(197_695, 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, 49).saturating_mul(m.into())) @@ -265,17 +265,17 @@ impl pallet_collective::WeightInfo for WeightInfo { /// The range of component `p` is `[1, 100]`. fn close_approved(b: u32, m: u32, p: u32, ) -> Weight { // Proof Size summary in bytes: - // Measured: `682 + b * (1 ±0) + m * (64 ±0) + p * (40 ±0)` - // Estimated: `3999 + b * (1 ±0) + m * (66 ±0) + p * (40 ±0)` - // Minimum execution time: 40_887_000 picoseconds. - Weight::from_parts(39_529_567, 0) - .saturating_add(Weight::from_parts(0, 3999)) - // Standard Error: 191 - .saturating_add(Weight::from_parts(2_802, 0).saturating_mul(b.into())) - // Standard Error: 2_021 - .saturating_add(Weight::from_parts(35_956, 0).saturating_mul(m.into())) - // Standard Error: 1_970 - .saturating_add(Weight::from_parts(235_154, 0).saturating_mul(p.into())) + // Measured: `719 + b * (1 ±0) + m * (64 ±0) + p * (40 ±0)` + // Estimated: `4036 + b * (1 ±0) + m * (66 ±0) + p * (40 ±0)` + // Minimum execution time: 34_570_000 picoseconds. + Weight::from_parts(33_763_903, 0) + .saturating_add(Weight::from_parts(0, 4036)) + // Standard Error: 138 + .saturating_add(Weight::from_parts(2_667, 0).saturating_mul(b.into())) + // Standard Error: 1_465 + .saturating_add(Weight::from_parts(27_736, 0).saturating_mul(m.into())) + // Standard Error: 1_428 + .saturating_add(Weight::from_parts(220_400, 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())) @@ -291,13 +291,13 @@ impl pallet_collective::WeightInfo for WeightInfo { /// The range of component `p` is `[1, 100]`. fn disapprove_proposal(p: u32, ) -> Weight { // Proof Size summary in bytes: - // Measured: `189 + p * (32 ±0)` - // Estimated: `1674 + p * (32 ±0)` - // Minimum execution time: 14_040_000 picoseconds. - Weight::from_parts(15_075_964, 0) - .saturating_add(Weight::from_parts(0, 1674)) - // Standard Error: 854 - .saturating_add(Weight::from_parts(159_597, 0).saturating_mul(p.into())) + // Measured: `226 + p * (32 ±0)` + // Estimated: `1711 + p * (32 ±0)` + // Minimum execution time: 13_113_000 picoseconds. + Weight::from_parts(14_082_851, 0) + .saturating_add(Weight::from_parts(0, 1711)) + // Standard Error: 754 + .saturating_add(Weight::from_parts(165_767, 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/cumulus/parachains/runtimes/collectives/collectives-westend/src/weights/pallet_collective_content.rs b/cumulus/parachains/runtimes/collectives/collectives-westend/src/weights/pallet_collective_content.rs index 6c213786e4ca..af43ced8f894 100644 --- a/cumulus/parachains/runtimes/collectives/collectives-westend/src/weights/pallet_collective_content.rs +++ b/cumulus/parachains/runtimes/collectives/collectives-westend/src/weights/pallet_collective_content.rs @@ -17,23 +17,27 @@ //! Autogenerated weights for `pallet_collective_content` //! //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev -//! DATE: 2023-08-18, STEPS: `10`, REPEAT: `3`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! DATE: 2023-10-25, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` //! WORST CASE MAP SIZE: `1000000` -//! HOSTNAME: `cob`, CPU: `` +//! HOSTNAME: `runner-ayothjw6-project-674-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz` //! WASM-EXECUTION: `Compiled`, CHAIN: `Some("collectives-westend-dev")`, DB CACHE: 1024 // Executed Command: -// ./target/debug/polkadot-parachain +// ./target/production/polkadot-parachain // benchmark // pallet // --chain=collectives-westend-dev -// --steps=10 -// --repeat=3 +// --wasm-execution=compiled // --pallet=pallet_collective_content +// --no-storage-info +// --no-median-slopes +// --no-min-squares // --extrinsic=* -// --wasm-execution=compiled -// --heap-pages=4096 -// --output=./parachains/runtimes/collectives/collectives-westend/src/weights/ +// --steps=50 +// --repeat=20 +// --json +// --header=./cumulus/file_header.txt +// --output=./cumulus/parachains/runtimes/collectives/collectives-westend/src/weights/ #![cfg_attr(rustfmt, rustfmt_skip)] #![allow(unused_parens)] @@ -52,41 +56,39 @@ impl pallet_collective_content::WeightInfo for WeightIn // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 99_000_000 picoseconds. - Weight::from_parts(99_000_000, 0) + // Minimum execution time: 5_367_000 picoseconds. + Weight::from_parts(5_657_000, 0) .saturating_add(Weight::from_parts(0, 0)) .saturating_add(T::DbWeight::get().writes(1)) } /// Storage: `AmbassadorCollective::Members` (r:1 w:0) /// Proof: `AmbassadorCollective::Members` (`max_values`: None, `max_size`: Some(42), added: 2517, mode: `MaxEncodedLen`) - /// Storage: `AmbassadorContent::AnnouncementsCount` (r:1 w:1) - /// Proof: `AmbassadorContent::AnnouncementsCount` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`) - /// Storage: `AmbassadorContent::NextAnnouncementExpireAt` (r:1 w:1) - /// Proof: `AmbassadorContent::NextAnnouncementExpireAt` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`) - /// Storage: `AmbassadorContent::Announcements` (r:0 w:1) + /// Storage: `AmbassadorContent::CounterForAnnouncements` (r:1 w:1) + /// Proof: `AmbassadorContent::CounterForAnnouncements` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`) + /// Storage: `AmbassadorContent::Announcements` (r:1 w:1) /// Proof: `AmbassadorContent::Announcements` (`max_values`: None, `max_size`: Some(90), added: 2565, mode: `MaxEncodedLen`) fn announce() -> Weight { // Proof Size summary in bytes: // Measured: `285` - // Estimated: `3507` - // Minimum execution time: 273_000_000 picoseconds. - Weight::from_parts(278_000_000, 0) - .saturating_add(Weight::from_parts(0, 3507)) + // Estimated: `3555` + // Minimum execution time: 17_143_000 picoseconds. + Weight::from_parts(17_645_000, 0) + .saturating_add(Weight::from_parts(0, 3555)) .saturating_add(T::DbWeight::get().reads(3)) - .saturating_add(T::DbWeight::get().writes(3)) + .saturating_add(T::DbWeight::get().writes(2)) } /// Storage: `AmbassadorCollective::Members` (r:1 w:0) /// Proof: `AmbassadorCollective::Members` (`max_values`: None, `max_size`: Some(42), added: 2517, mode: `MaxEncodedLen`) /// Storage: `AmbassadorContent::Announcements` (r:1 w:1) /// Proof: `AmbassadorContent::Announcements` (`max_values`: None, `max_size`: Some(90), added: 2565, mode: `MaxEncodedLen`) - /// Storage: `AmbassadorContent::AnnouncementsCount` (r:1 w:1) - /// Proof: `AmbassadorContent::AnnouncementsCount` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`) + /// Storage: `AmbassadorContent::CounterForAnnouncements` (r:1 w:1) + /// Proof: `AmbassadorContent::CounterForAnnouncements` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`) fn remove_announcement() -> Weight { // Proof Size summary in bytes: - // Measured: `450` + // Measured: `427` // Estimated: `3555` - // Minimum execution time: 326_000_000 picoseconds. - Weight::from_parts(338_000_000, 0) + // Minimum execution time: 21_152_000 picoseconds. + Weight::from_parts(21_870_000, 0) .saturating_add(Weight::from_parts(0, 3555)) .saturating_add(T::DbWeight::get().reads(3)) .saturating_add(T::DbWeight::get().writes(2)) diff --git a/cumulus/parachains/runtimes/collectives/collectives-westend/src/weights/pallet_core_fellowship_ambassador_core.rs b/cumulus/parachains/runtimes/collectives/collectives-westend/src/weights/pallet_core_fellowship_ambassador_core.rs index 33db2cf293ff..bbe893cfe81e 100644 --- a/cumulus/parachains/runtimes/collectives/collectives-westend/src/weights/pallet_core_fellowship_ambassador_core.rs +++ b/cumulus/parachains/runtimes/collectives/collectives-westend/src/weights/pallet_core_fellowship_ambassador_core.rs @@ -1,4 +1,4 @@ -// Copyright Parity Technologies (UK) Ltd. +// Copyright (C) Parity Technologies (UK) Ltd. // This file is part of Cumulus. // Cumulus is free software: you can redistribute it and/or modify @@ -17,24 +17,27 @@ //! Autogenerated weights for `pallet_core_fellowship` //! //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev -//! DATE: 2023-08-11, STEPS: `2`, REPEAT: `2`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! DATE: 2023-10-25, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` //! WORST CASE MAP SIZE: `1000000` -//! HOSTNAME: `cob`, CPU: `` +//! HOSTNAME: `runner-ayothjw6-project-674-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz` //! WASM-EXECUTION: `Compiled`, CHAIN: `Some("collectives-westend-dev")`, DB CACHE: 1024 // Executed Command: -// target/release/polkadot-parachain +// ./target/production/polkadot-parachain // benchmark // pallet // --chain=collectives-westend-dev // --wasm-execution=compiled // --pallet=pallet_core_fellowship +// --no-storage-info +// --no-median-slopes +// --no-min-squares // --extrinsic=* -// --steps=2 -// --repeat=2 +// --steps=50 +// --repeat=20 // --json -// --header=./file_header.txt -// --output=./parachains/runtimes/collectives/collectives-westend/src/weights/ +// --header=./cumulus/file_header.txt +// --output=./cumulus/parachains/runtimes/collectives/collectives-westend/src/weights/ #![cfg_attr(rustfmt, rustfmt_skip)] #![allow(unused_parens)] @@ -53,8 +56,8 @@ impl pallet_core_fellowship::WeightInfo for WeightInfo< // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 11_000_000 picoseconds. - Weight::from_parts(11_000_000, 0) + // Minimum execution time: 5_952_000 picoseconds. + Weight::from_parts(6_313_000, 0) .saturating_add(Weight::from_parts(0, 0)) .saturating_add(T::DbWeight::get().writes(1)) } @@ -74,8 +77,8 @@ impl pallet_core_fellowship::WeightInfo for WeightInfo< // Proof Size summary in bytes: // Measured: `66011` // Estimated: `69046` - // Minimum execution time: 96_000_000 picoseconds. - Weight::from_parts(111_000_000, 0) + // Minimum execution time: 121_211_000 picoseconds. + Weight::from_parts(124_185_000, 0) .saturating_add(Weight::from_parts(0, 69046)) .saturating_add(T::DbWeight::get().reads(6)) .saturating_add(T::DbWeight::get().writes(4)) @@ -96,8 +99,8 @@ impl pallet_core_fellowship::WeightInfo for WeightInfo< // Proof Size summary in bytes: // Measured: `66121` // Estimated: `69046` - // Minimum execution time: 99_000_000 picoseconds. - Weight::from_parts(116_000_000, 0) + // Minimum execution time: 125_855_000 picoseconds. + Weight::from_parts(129_068_000, 0) .saturating_add(Weight::from_parts(0, 69046)) .saturating_add(T::DbWeight::get().reads(6)) .saturating_add(T::DbWeight::get().writes(4)) @@ -110,8 +113,8 @@ impl pallet_core_fellowship::WeightInfo for WeightInfo< // Proof Size summary in bytes: // Measured: `360` // Estimated: `3514` - // Minimum execution time: 21_000_000 picoseconds. - Weight::from_parts(22_000_000, 0) + // Minimum execution time: 16_502_000 picoseconds. + Weight::from_parts(17_062_000, 0) .saturating_add(Weight::from_parts(0, 3514)) .saturating_add(T::DbWeight::get().reads(2)) .saturating_add(T::DbWeight::get().writes(1)) @@ -130,8 +133,8 @@ impl pallet_core_fellowship::WeightInfo for WeightInfo< // Proof Size summary in bytes: // Measured: `118` // Estimated: `3514` - // Minimum execution time: 36_000_000 picoseconds. - Weight::from_parts(36_000_000, 0) + // Minimum execution time: 25_353_000 picoseconds. + Weight::from_parts(26_004_000, 0) .saturating_add(Weight::from_parts(0, 3514)) .saturating_add(T::DbWeight::get().reads(3)) .saturating_add(T::DbWeight::get().writes(5)) @@ -154,8 +157,8 @@ impl pallet_core_fellowship::WeightInfo for WeightInfo< // Proof Size summary in bytes: // Measured: `65989` // Estimated: `69046` - // Minimum execution time: 95_000_000 picoseconds. - Weight::from_parts(110_000_000, 0) + // Minimum execution time: 119_828_000 picoseconds. + Weight::from_parts(121_642_000, 0) .saturating_add(Weight::from_parts(0, 69046)) .saturating_add(T::DbWeight::get().reads(5)) .saturating_add(T::DbWeight::get().writes(6)) @@ -170,8 +173,8 @@ impl pallet_core_fellowship::WeightInfo for WeightInfo< // Proof Size summary in bytes: // Measured: `331` // Estimated: `3514` - // Minimum execution time: 21_000_000 picoseconds. - Weight::from_parts(22_000_000, 0) + // Minimum execution time: 17_415_000 picoseconds. + Weight::from_parts(18_060_000, 0) .saturating_add(Weight::from_parts(0, 3514)) .saturating_add(T::DbWeight::get().reads(2)) .saturating_add(T::DbWeight::get().writes(2)) @@ -184,8 +187,8 @@ impl pallet_core_fellowship::WeightInfo for WeightInfo< // Proof Size summary in bytes: // Measured: `285` // Estimated: `3514` - // Minimum execution time: 20_000_000 picoseconds. - Weight::from_parts(21_000_000, 0) + // Minimum execution time: 15_426_000 picoseconds. + Weight::from_parts(15_781_000, 0) .saturating_add(Weight::from_parts(0, 3514)) .saturating_add(T::DbWeight::get().reads(2)) .saturating_add(T::DbWeight::get().writes(1)) @@ -200,8 +203,8 @@ impl pallet_core_fellowship::WeightInfo for WeightInfo< // Proof Size summary in bytes: // Measured: `65967` // Estimated: `69046` - // Minimum execution time: 78_000_000 picoseconds. - Weight::from_parts(104_000_000, 0) + // Minimum execution time: 105_805_000 picoseconds. + Weight::from_parts(107_941_000, 0) .saturating_add(Weight::from_parts(0, 69046)) .saturating_add(T::DbWeight::get().reads(3)) .saturating_add(T::DbWeight::get().writes(2)) @@ -214,8 +217,8 @@ impl pallet_core_fellowship::WeightInfo for WeightInfo< // Proof Size summary in bytes: // Measured: `151` // Estimated: `69046` - // Minimum execution time: 43_000_000 picoseconds. - Weight::from_parts(44_000_000, 0) + // Minimum execution time: 92_957_000 picoseconds. + Weight::from_parts(94_447_000, 0) .saturating_add(Weight::from_parts(0, 69046)) .saturating_add(T::DbWeight::get().reads(2)) .saturating_add(T::DbWeight::get().writes(1)) diff --git a/cumulus/parachains/runtimes/collectives/collectives-westend/src/weights/pallet_core_fellowship_fellowship_core.rs b/cumulus/parachains/runtimes/collectives/collectives-westend/src/weights/pallet_core_fellowship_fellowship_core.rs index 2b1bf5ada3ce..d1d0f5bcdc4f 100644 --- a/cumulus/parachains/runtimes/collectives/collectives-westend/src/weights/pallet_core_fellowship_fellowship_core.rs +++ b/cumulus/parachains/runtimes/collectives/collectives-westend/src/weights/pallet_core_fellowship_fellowship_core.rs @@ -17,24 +17,27 @@ //! Autogenerated weights for `pallet_core_fellowship` //! //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev -//! DATE: 2023-08-11, STEPS: `2`, REPEAT: `2`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! DATE: 2023-10-25, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` //! WORST CASE MAP SIZE: `1000000` -//! HOSTNAME: `cob`, CPU: `` +//! HOSTNAME: `runner-ayothjw6-project-674-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz` //! WASM-EXECUTION: `Compiled`, CHAIN: `Some("collectives-westend-dev")`, DB CACHE: 1024 // Executed Command: -// target/release/polkadot-parachain +// ./target/production/polkadot-parachain // benchmark // pallet // --chain=collectives-westend-dev // --wasm-execution=compiled // --pallet=pallet_core_fellowship +// --no-storage-info +// --no-median-slopes +// --no-min-squares // --extrinsic=* -// --steps=2 -// --repeat=2 +// --steps=50 +// --repeat=20 // --json -// --header=./file_header.txt -// --output=./parachains/runtimes/collectives/collectives-westend/src/weights/ +// --header=./cumulus/file_header.txt +// --output=./cumulus/parachains/runtimes/collectives/collectives-westend/src/weights/ #![cfg_attr(rustfmt, rustfmt_skip)] #![allow(unused_parens)] @@ -53,8 +56,8 @@ impl pallet_core_fellowship::WeightInfo for WeightInfo< // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 11_000_000 picoseconds. - Weight::from_parts(12_000_000, 0) + // Minimum execution time: 6_074_000 picoseconds. + Weight::from_parts(6_342_000, 0) .saturating_add(Weight::from_parts(0, 0)) .saturating_add(T::DbWeight::get().writes(1)) } @@ -74,8 +77,8 @@ impl pallet_core_fellowship::WeightInfo for WeightInfo< // Proof Size summary in bytes: // Measured: `66144` // Estimated: `69046` - // Minimum execution time: 109_000_000 picoseconds. - Weight::from_parts(125_000_000, 0) + // Minimum execution time: 120_802_000 picoseconds. + Weight::from_parts(126_633_000, 0) .saturating_add(Weight::from_parts(0, 69046)) .saturating_add(T::DbWeight::get().reads(6)) .saturating_add(T::DbWeight::get().writes(4)) @@ -96,8 +99,8 @@ impl pallet_core_fellowship::WeightInfo for WeightInfo< // Proof Size summary in bytes: // Measured: `66254` // Estimated: `69046` - // Minimum execution time: 112_000_000 picoseconds. - Weight::from_parts(114_000_000, 0) + // Minimum execution time: 125_643_000 picoseconds. + Weight::from_parts(128_488_000, 0) .saturating_add(Weight::from_parts(0, 69046)) .saturating_add(T::DbWeight::get().reads(6)) .saturating_add(T::DbWeight::get().writes(4)) @@ -110,8 +113,8 @@ impl pallet_core_fellowship::WeightInfo for WeightInfo< // Proof Size summary in bytes: // Measured: `493` // Estimated: `3514` - // Minimum execution time: 22_000_000 picoseconds. - Weight::from_parts(27_000_000, 0) + // Minimum execution time: 16_154_000 picoseconds. + Weight::from_parts(17_070_000, 0) .saturating_add(Weight::from_parts(0, 3514)) .saturating_add(T::DbWeight::get().reads(2)) .saturating_add(T::DbWeight::get().writes(1)) @@ -130,8 +133,8 @@ impl pallet_core_fellowship::WeightInfo for WeightInfo< // Proof Size summary in bytes: // Measured: `251` // Estimated: `3514` - // Minimum execution time: 35_000_000 picoseconds. - Weight::from_parts(36_000_000, 0) + // Minimum execution time: 24_931_000 picoseconds. + Weight::from_parts(26_016_000, 0) .saturating_add(Weight::from_parts(0, 3514)) .saturating_add(T::DbWeight::get().reads(3)) .saturating_add(T::DbWeight::get().writes(5)) @@ -154,8 +157,8 @@ impl pallet_core_fellowship::WeightInfo for WeightInfo< // Proof Size summary in bytes: // Measured: `66122` // Estimated: `69046` - // Minimum execution time: 97_000_000 picoseconds. - Weight::from_parts(129_000_000, 0) + // Minimum execution time: 120_763_000 picoseconds. + Weight::from_parts(122_720_000, 0) .saturating_add(Weight::from_parts(0, 69046)) .saturating_add(T::DbWeight::get().reads(5)) .saturating_add(T::DbWeight::get().writes(6)) @@ -170,8 +173,8 @@ impl pallet_core_fellowship::WeightInfo for WeightInfo< // Proof Size summary in bytes: // Measured: `464` // Estimated: `3514` - // Minimum execution time: 22_000_000 picoseconds. - Weight::from_parts(22_000_000, 0) + // Minimum execution time: 17_529_000 picoseconds. + Weight::from_parts(18_250_000, 0) .saturating_add(Weight::from_parts(0, 3514)) .saturating_add(T::DbWeight::get().reads(2)) .saturating_add(T::DbWeight::get().writes(2)) @@ -184,8 +187,8 @@ impl pallet_core_fellowship::WeightInfo for WeightInfo< // Proof Size summary in bytes: // Measured: `418` // Estimated: `3514` - // Minimum execution time: 20_000_000 picoseconds. - Weight::from_parts(24_000_000, 0) + // Minimum execution time: 15_197_000 picoseconds. + Weight::from_parts(15_691_000, 0) .saturating_add(Weight::from_parts(0, 3514)) .saturating_add(T::DbWeight::get().reads(2)) .saturating_add(T::DbWeight::get().writes(1)) @@ -200,8 +203,8 @@ impl pallet_core_fellowship::WeightInfo for WeightInfo< // Proof Size summary in bytes: // Measured: `66100` // Estimated: `69046` - // Minimum execution time: 89_000_000 picoseconds. - Weight::from_parts(119_000_000, 0) + // Minimum execution time: 107_126_000 picoseconds. + Weight::from_parts(108_787_000, 0) .saturating_add(Weight::from_parts(0, 69046)) .saturating_add(T::DbWeight::get().reads(3)) .saturating_add(T::DbWeight::get().writes(2)) @@ -214,8 +217,8 @@ impl pallet_core_fellowship::WeightInfo for WeightInfo< // Proof Size summary in bytes: // Measured: `184` // Estimated: `69046` - // Minimum execution time: 43_000_000 picoseconds. - Weight::from_parts(52_000_000, 0) + // Minimum execution time: 92_685_000 picoseconds. + Weight::from_parts(94_415_000, 0) .saturating_add(Weight::from_parts(0, 69046)) .saturating_add(T::DbWeight::get().reads(2)) .saturating_add(T::DbWeight::get().writes(1)) diff --git a/cumulus/parachains/runtimes/collectives/collectives-westend/src/weights/pallet_multisig.rs b/cumulus/parachains/runtimes/collectives/collectives-westend/src/weights/pallet_multisig.rs index d2b041977519..0d0b539330e2 100644 --- a/cumulus/parachains/runtimes/collectives/collectives-westend/src/weights/pallet_multisig.rs +++ b/cumulus/parachains/runtimes/collectives/collectives-westend/src/weights/pallet_multisig.rs @@ -17,10 +17,10 @@ //! Autogenerated weights for `pallet_multisig` //! //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev -//! DATE: 2023-07-31, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! DATE: 2023-10-25, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` //! WORST CASE MAP SIZE: `1000000` -//! HOSTNAME: `runner-ynta1nyy-project-238-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz` -//! EXECUTION: ``, WASM-EXECUTION: `Compiled`, CHAIN: `Some("collectives-westend-dev")`, DB CACHE: 1024 +//! HOSTNAME: `runner-ayothjw6-project-674-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz` +//! WASM-EXECUTION: `Compiled`, CHAIN: `Some("collectives-westend-dev")`, DB CACHE: 1024 // Executed Command: // ./target/production/polkadot-parachain @@ -36,8 +36,8 @@ // --steps=50 // --repeat=20 // --json -// --header=./file_header.txt -// --output=./parachains/runtimes/collectives/collectives-westend/src/weights/ +// --header=./cumulus/file_header.txt +// --output=./cumulus/parachains/runtimes/collectives/collectives-westend/src/weights/ #![cfg_attr(rustfmt, rustfmt_skip)] #![allow(unused_parens)] @@ -55,11 +55,11 @@ impl pallet_multisig::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 13_288_000 picoseconds. - Weight::from_parts(14_235_741, 0) + // Minimum execution time: 13_069_000 picoseconds. + Weight::from_parts(13_839_186, 0) .saturating_add(Weight::from_parts(0, 0)) // Standard Error: 5 - .saturating_add(Weight::from_parts(500, 0).saturating_mul(z.into())) + .saturating_add(Weight::from_parts(520, 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`) @@ -69,13 +69,13 @@ impl pallet_multisig::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `328 + s * (2 ±0)` // Estimated: `6811` - // Minimum execution time: 44_865_000 picoseconds. - Weight::from_parts(33_468_056, 0) + // Minimum execution time: 39_343_000 picoseconds. + Weight::from_parts(29_065_087, 0) .saturating_add(Weight::from_parts(0, 6811)) - // Standard Error: 1_513 - .saturating_add(Weight::from_parts(130_544, 0).saturating_mul(s.into())) - // Standard Error: 14 - .saturating_add(Weight::from_parts(1_422, 0).saturating_mul(z.into())) + // Standard Error: 816 + .saturating_add(Weight::from_parts(113_346, 0).saturating_mul(s.into())) + // Standard Error: 7 + .saturating_add(Weight::from_parts(1_486, 0).saturating_mul(z.into())) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(1)) } @@ -87,13 +87,13 @@ impl pallet_multisig::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `348` // Estimated: `6811` - // Minimum execution time: 29_284_000 picoseconds. - Weight::from_parts(18_708_967, 0) + // Minimum execution time: 27_483_000 picoseconds. + Weight::from_parts(17_975_857, 0) .saturating_add(Weight::from_parts(0, 6811)) - // Standard Error: 916 - .saturating_add(Weight::from_parts(119_202, 0).saturating_mul(s.into())) - // Standard Error: 8 - .saturating_add(Weight::from_parts(1_447, 0).saturating_mul(z.into())) + // Standard Error: 716 + .saturating_add(Weight::from_parts(105_714, 0).saturating_mul(s.into())) + // Standard Error: 7 + .saturating_add(Weight::from_parts(1_403, 0).saturating_mul(z.into())) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(1)) } @@ -107,13 +107,13 @@ impl pallet_multisig::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `451 + s * (33 ±0)` // Estimated: `6811` - // Minimum execution time: 49_462_000 picoseconds. - Weight::from_parts(34_470_286, 0) + // Minimum execution time: 45_100_000 picoseconds. + Weight::from_parts(31_994_638, 0) .saturating_add(Weight::from_parts(0, 6811)) - // Standard Error: 1_738 - .saturating_add(Weight::from_parts(178_227, 0).saturating_mul(s.into())) - // Standard Error: 17 - .saturating_add(Weight::from_parts(1_644, 0).saturating_mul(z.into())) + // Standard Error: 1_025 + .saturating_add(Weight::from_parts(150_999, 0).saturating_mul(s.into())) + // Standard Error: 10 + .saturating_add(Weight::from_parts(1_573, 0).saturating_mul(z.into())) .saturating_add(T::DbWeight::get().reads(2)) .saturating_add(T::DbWeight::get().writes(2)) } @@ -124,11 +124,11 @@ impl pallet_multisig::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `329 + s * (2 ±0)` // Estimated: `6811` - // Minimum execution time: 30_749_000 picoseconds. - Weight::from_parts(31_841_438, 0) + // Minimum execution time: 27_083_000 picoseconds. + Weight::from_parts(27_266_957, 0) .saturating_add(Weight::from_parts(0, 6811)) - // Standard Error: 1_033 - .saturating_add(Weight::from_parts(123_126, 0).saturating_mul(s.into())) + // Standard Error: 6_427 + .saturating_add(Weight::from_parts(148_279, 0).saturating_mul(s.into())) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(1)) } @@ -139,11 +139,11 @@ impl pallet_multisig::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `348` // Estimated: `6811` - // Minimum execution time: 17_436_000 picoseconds. - Weight::from_parts(18_036_002, 0) + // Minimum execution time: 16_092_000 picoseconds. + Weight::from_parts(16_312_279, 0) .saturating_add(Weight::from_parts(0, 6811)) - // Standard Error: 829 - .saturating_add(Weight::from_parts(109_450, 0).saturating_mul(s.into())) + // Standard Error: 489 + .saturating_add(Weight::from_parts(105_485, 0).saturating_mul(s.into())) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(1)) } @@ -154,11 +154,11 @@ impl pallet_multisig::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `520 + s * (1 ±0)` // Estimated: `6811` - // Minimum execution time: 31_532_000 picoseconds. - Weight::from_parts(32_818_015, 0) + // Minimum execution time: 29_332_000 picoseconds. + Weight::from_parts(30_396_920, 0) .saturating_add(Weight::from_parts(0, 6811)) - // Standard Error: 977 - .saturating_add(Weight::from_parts(123_121, 0).saturating_mul(s.into())) + // Standard Error: 610 + .saturating_add(Weight::from_parts(113_224, 0).saturating_mul(s.into())) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(1)) } diff --git a/cumulus/parachains/runtimes/collectives/collectives-westend/src/weights/pallet_preimage.rs b/cumulus/parachains/runtimes/collectives/collectives-westend/src/weights/pallet_preimage.rs index ef9534a2ea90..4aa29ce27a08 100644 --- a/cumulus/parachains/runtimes/collectives/collectives-westend/src/weights/pallet_preimage.rs +++ b/cumulus/parachains/runtimes/collectives/collectives-westend/src/weights/pallet_preimage.rs @@ -17,10 +17,10 @@ //! Autogenerated weights for `pallet_preimage` //! //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev -//! DATE: 2023-07-31, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! DATE: 2023-10-25, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` //! WORST CASE MAP SIZE: `1000000` -//! HOSTNAME: `runner-ynta1nyy-project-238-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz` -//! EXECUTION: ``, WASM-EXECUTION: `Compiled`, CHAIN: `Some("collectives-westend-dev")`, DB CACHE: 1024 +//! HOSTNAME: `runner-ayothjw6-project-674-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz` +//! WASM-EXECUTION: `Compiled`, CHAIN: `Some("collectives-westend-dev")`, DB CACHE: 1024 // Executed Command: // ./target/production/polkadot-parachain @@ -36,8 +36,8 @@ // --steps=50 // --repeat=20 // --json -// --header=./file_header.txt -// --output=./parachains/runtimes/collectives/collectives-westend/src/weights/ +// --header=./cumulus/file_header.txt +// --output=./cumulus/parachains/runtimes/collectives/collectives-westend/src/weights/ #![cfg_attr(rustfmt, rustfmt_skip)] #![allow(unused_parens)] @@ -50,184 +50,219 @@ use core::marker::PhantomData; /// Weight functions for `pallet_preimage`. pub struct WeightInfo(PhantomData); impl pallet_preimage::WeightInfo for WeightInfo { - fn ensure_updated(n: u32, ) -> Weight { - // Proof Size summary in bytes: - // Measured: `193 + n * (91 ±0)` - // Estimated: `3593 + n * (2566 ±0)` - // Minimum execution time: 2_000_000 picoseconds. - Weight::from_parts(2_000_000, 3593) - // Standard Error: 13_720 - .saturating_add(Weight::from_parts(17_309_199, 0).saturating_mul(n.into())) - .saturating_add(T::DbWeight::get().reads(1_u64)) - .saturating_add(T::DbWeight::get().reads((1_u64).saturating_mul(n.into()))) - .saturating_add(T::DbWeight::get().writes(1_u64)) - .saturating_add(T::DbWeight::get().writes((2_u64).saturating_mul(n.into()))) - .saturating_add(Weight::from_parts(0, 2566).saturating_mul(n.into())) - } - - /// Storage: `Preimage::StatusFor` (r:1 w:1) + /// Storage: `Preimage::StatusFor` (r:1 w:0) /// Proof: `Preimage::StatusFor` (`max_values`: None, `max_size`: Some(91), added: 2566, mode: `MaxEncodedLen`) + /// Storage: `Preimage::RequestStatusFor` (r:1 w:1) + /// Proof: `Preimage::RequestStatusFor` (`max_values`: None, `max_size`: Some(91), added: 2566, mode: `MaxEncodedLen`) + /// Storage: `Balances::Holds` (r:1 w:1) + /// Proof: `Balances::Holds` (`max_values`: None, `max_size`: Some(67), added: 2542, mode: `MaxEncodedLen`) /// Storage: `Preimage::PreimageFor` (r:0 w:1) /// Proof: `Preimage::PreimageFor` (`max_values`: None, `max_size`: Some(4194344), added: 4196819, mode: `MaxEncodedLen`) /// The range of component `s` is `[0, 4194304]`. fn note_preimage(s: u32, ) -> Weight { // Proof Size summary in bytes: - // Measured: `177` + // Measured: `109` // Estimated: `3556` - // Minimum execution time: 29_323_000 picoseconds. - Weight::from_parts(29_793_000, 0) + // Minimum execution time: 44_346_000 picoseconds. + Weight::from_parts(45_209_000, 0) .saturating_add(Weight::from_parts(0, 3556)) - // Standard Error: 5 - .saturating_add(Weight::from_parts(2_504, 0).saturating_mul(s.into())) - .saturating_add(T::DbWeight::get().reads(1)) - .saturating_add(T::DbWeight::get().writes(2)) + // Standard Error: 7 + .saturating_add(Weight::from_parts(2_398, 0).saturating_mul(s.into())) + .saturating_add(T::DbWeight::get().reads(3)) + .saturating_add(T::DbWeight::get().writes(3)) } - /// Storage: `Preimage::StatusFor` (r:1 w:1) + /// Storage: `Preimage::StatusFor` (r:1 w:0) /// Proof: `Preimage::StatusFor` (`max_values`: None, `max_size`: Some(91), added: 2566, mode: `MaxEncodedLen`) + /// Storage: `Preimage::RequestStatusFor` (r:1 w:1) + /// Proof: `Preimage::RequestStatusFor` (`max_values`: None, `max_size`: Some(91), added: 2566, mode: `MaxEncodedLen`) /// Storage: `Preimage::PreimageFor` (r:0 w:1) /// Proof: `Preimage::PreimageFor` (`max_values`: None, `max_size`: Some(4194344), added: 4196819, mode: `MaxEncodedLen`) /// The range of component `s` is `[0, 4194304]`. fn note_requested_preimage(s: u32, ) -> Weight { // Proof Size summary in bytes: - // Measured: `140` + // Measured: `173` // Estimated: `3556` - // Minimum execution time: 15_581_000 picoseconds. - Weight::from_parts(15_659_000, 0) + // Minimum execution time: 15_924_000 picoseconds. + Weight::from_parts(18_023_327, 0) .saturating_add(Weight::from_parts(0, 3556)) // Standard Error: 4 - .saturating_add(Weight::from_parts(2_500, 0).saturating_mul(s.into())) - .saturating_add(T::DbWeight::get().reads(1)) + .saturating_add(Weight::from_parts(2_281, 0).saturating_mul(s.into())) + .saturating_add(T::DbWeight::get().reads(2)) .saturating_add(T::DbWeight::get().writes(2)) } - /// Storage: `Preimage::StatusFor` (r:1 w:1) + /// Storage: `Preimage::StatusFor` (r:1 w:0) /// Proof: `Preimage::StatusFor` (`max_values`: None, `max_size`: Some(91), added: 2566, mode: `MaxEncodedLen`) + /// Storage: `Preimage::RequestStatusFor` (r:1 w:1) + /// Proof: `Preimage::RequestStatusFor` (`max_values`: None, `max_size`: Some(91), added: 2566, mode: `MaxEncodedLen`) /// Storage: `Preimage::PreimageFor` (r:0 w:1) /// Proof: `Preimage::PreimageFor` (`max_values`: None, `max_size`: Some(4194344), added: 4196819, mode: `MaxEncodedLen`) /// The range of component `s` is `[0, 4194304]`. fn note_no_deposit_preimage(s: u32, ) -> Weight { // Proof Size summary in bytes: - // Measured: `140` + // Measured: `173` // Estimated: `3556` - // Minimum execution time: 15_028_000 picoseconds. - Weight::from_parts(15_150_000, 0) + // Minimum execution time: 14_272_000 picoseconds. + Weight::from_parts(14_492_000, 0) .saturating_add(Weight::from_parts(0, 3556)) // Standard Error: 6 - .saturating_add(Weight::from_parts(2_560, 0).saturating_mul(s.into())) - .saturating_add(T::DbWeight::get().reads(1)) + .saturating_add(Weight::from_parts(2_375, 0).saturating_mul(s.into())) + .saturating_add(T::DbWeight::get().reads(2)) .saturating_add(T::DbWeight::get().writes(2)) } - /// Storage: `Preimage::StatusFor` (r:1 w:1) + /// Storage: `Preimage::StatusFor` (r:1 w:0) /// Proof: `Preimage::StatusFor` (`max_values`: None, `max_size`: Some(91), added: 2566, mode: `MaxEncodedLen`) + /// Storage: `Preimage::RequestStatusFor` (r:1 w:1) + /// Proof: `Preimage::RequestStatusFor` (`max_values`: None, `max_size`: Some(91), added: 2566, mode: `MaxEncodedLen`) + /// Storage: `Balances::Holds` (r:1 w:1) + /// Proof: `Balances::Holds` (`max_values`: None, `max_size`: Some(67), added: 2542, mode: `MaxEncodedLen`) /// Storage: `Preimage::PreimageFor` (r:0 w:1) /// Proof: `Preimage::PreimageFor` (`max_values`: None, `max_size`: Some(4194344), added: 4196819, mode: `MaxEncodedLen`) fn unnote_preimage() -> Weight { // Proof Size summary in bytes: - // Measured: `323` + // Measured: `310` // Estimated: `3556` - // Minimum execution time: 55_113_000 picoseconds. - Weight::from_parts(59_127_000, 0) + // Minimum execution time: 48_963_000 picoseconds. + Weight::from_parts(51_269_000, 0) .saturating_add(Weight::from_parts(0, 3556)) - .saturating_add(T::DbWeight::get().reads(1)) - .saturating_add(T::DbWeight::get().writes(2)) + .saturating_add(T::DbWeight::get().reads(3)) + .saturating_add(T::DbWeight::get().writes(3)) } - /// Storage: `Preimage::StatusFor` (r:1 w:1) + /// Storage: `Preimage::StatusFor` (r:1 w:0) /// Proof: `Preimage::StatusFor` (`max_values`: None, `max_size`: Some(91), added: 2566, mode: `MaxEncodedLen`) + /// Storage: `Preimage::RequestStatusFor` (r:1 w:1) + /// Proof: `Preimage::RequestStatusFor` (`max_values`: None, `max_size`: Some(91), added: 2566, mode: `MaxEncodedLen`) /// Storage: `Preimage::PreimageFor` (r:0 w:1) /// Proof: `Preimage::PreimageFor` (`max_values`: None, `max_size`: Some(4194344), added: 4196819, mode: `MaxEncodedLen`) fn unnote_no_deposit_preimage() -> Weight { // Proof Size summary in bytes: - // Measured: `178` + // Measured: `211` // Estimated: `3556` - // Minimum execution time: 38_033_000 picoseconds. - Weight::from_parts(41_203_000, 0) + // Minimum execution time: 24_367_000 picoseconds. + Weight::from_parts(26_395_000, 0) .saturating_add(Weight::from_parts(0, 3556)) - .saturating_add(T::DbWeight::get().reads(1)) + .saturating_add(T::DbWeight::get().reads(2)) .saturating_add(T::DbWeight::get().writes(2)) } - /// Storage: `Preimage::StatusFor` (r:1 w:1) + /// Storage: `Preimage::StatusFor` (r:1 w:0) /// Proof: `Preimage::StatusFor` (`max_values`: None, `max_size`: Some(91), added: 2566, mode: `MaxEncodedLen`) + /// Storage: `Preimage::RequestStatusFor` (r:1 w:1) + /// Proof: `Preimage::RequestStatusFor` (`max_values`: None, `max_size`: Some(91), added: 2566, mode: `MaxEncodedLen`) fn request_preimage() -> Weight { // Proof Size summary in bytes: - // Measured: `222` + // Measured: `255` // Estimated: `3556` - // Minimum execution time: 31_482_000 picoseconds. - Weight::from_parts(34_726_000, 0) + // Minimum execution time: 21_582_000 picoseconds. + Weight::from_parts(23_656_000, 0) .saturating_add(Weight::from_parts(0, 3556)) - .saturating_add(T::DbWeight::get().reads(1)) + .saturating_add(T::DbWeight::get().reads(2)) .saturating_add(T::DbWeight::get().writes(1)) } - /// Storage: `Preimage::StatusFor` (r:1 w:1) + /// Storage: `Preimage::StatusFor` (r:1 w:0) /// Proof: `Preimage::StatusFor` (`max_values`: None, `max_size`: Some(91), added: 2566, mode: `MaxEncodedLen`) + /// Storage: `Preimage::RequestStatusFor` (r:1 w:1) + /// Proof: `Preimage::RequestStatusFor` (`max_values`: None, `max_size`: Some(91), added: 2566, mode: `MaxEncodedLen`) fn request_no_deposit_preimage() -> Weight { // Proof Size summary in bytes: - // Measured: `178` + // Measured: `211` // Estimated: `3556` - // Minimum execution time: 20_724_000 picoseconds. - Weight::from_parts(22_928_000, 0) + // Minimum execution time: 13_700_000 picoseconds. + Weight::from_parts(14_821_000, 0) .saturating_add(Weight::from_parts(0, 3556)) - .saturating_add(T::DbWeight::get().reads(1)) + .saturating_add(T::DbWeight::get().reads(2)) .saturating_add(T::DbWeight::get().writes(1)) } - /// Storage: `Preimage::StatusFor` (r:1 w:1) + /// Storage: `Preimage::StatusFor` (r:1 w:0) /// Proof: `Preimage::StatusFor` (`max_values`: None, `max_size`: Some(91), added: 2566, mode: `MaxEncodedLen`) + /// Storage: `Preimage::RequestStatusFor` (r:1 w:1) + /// Proof: `Preimage::RequestStatusFor` (`max_values`: None, `max_size`: Some(91), added: 2566, mode: `MaxEncodedLen`) fn request_unnoted_preimage() -> Weight { // Proof Size summary in bytes: - // Measured: `76` + // Measured: `109` // Estimated: `3556` - // Minimum execution time: 27_015_000 picoseconds. - Weight::from_parts(29_240_000, 0) + // Minimum execution time: 14_766_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().reads(2)) .saturating_add(T::DbWeight::get().writes(1)) } - /// Storage: `Preimage::StatusFor` (r:1 w:1) + /// Storage: `Preimage::StatusFor` (r:1 w:0) /// Proof: `Preimage::StatusFor` (`max_values`: None, `max_size`: Some(91), added: 2566, mode: `MaxEncodedLen`) + /// Storage: `Preimage::RequestStatusFor` (r:1 w:1) + /// Proof: `Preimage::RequestStatusFor` (`max_values`: None, `max_size`: Some(91), added: 2566, mode: `MaxEncodedLen`) fn request_requested_preimage() -> Weight { // Proof Size summary in bytes: - // Measured: `140` + // Measured: `173` // Estimated: `3556` - // Minimum execution time: 10_712_000 picoseconds. - Weight::from_parts(11_317_000, 0) + // Minimum execution time: 9_937_000 picoseconds. + Weight::from_parts(10_305_000, 0) .saturating_add(Weight::from_parts(0, 3556)) - .saturating_add(T::DbWeight::get().reads(1)) + .saturating_add(T::DbWeight::get().reads(2)) .saturating_add(T::DbWeight::get().writes(1)) } - /// Storage: `Preimage::StatusFor` (r:1 w:1) + /// Storage: `Preimage::StatusFor` (r:1 w:0) /// Proof: `Preimage::StatusFor` (`max_values`: None, `max_size`: Some(91), added: 2566, mode: `MaxEncodedLen`) + /// Storage: `Preimage::RequestStatusFor` (r:1 w:1) + /// Proof: `Preimage::RequestStatusFor` (`max_values`: None, `max_size`: Some(91), added: 2566, mode: `MaxEncodedLen`) /// Storage: `Preimage::PreimageFor` (r:0 w:1) /// Proof: `Preimage::PreimageFor` (`max_values`: None, `max_size`: Some(4194344), added: 4196819, mode: `MaxEncodedLen`) fn unrequest_preimage() -> Weight { // Proof Size summary in bytes: - // Measured: `178` + // Measured: `211` // Estimated: `3556` - // Minimum execution time: 34_528_000 picoseconds. - Weight::from_parts(35_982_000, 0) + // Minimum execution time: 20_215_000 picoseconds. + Weight::from_parts(22_590_000, 0) .saturating_add(Weight::from_parts(0, 3556)) - .saturating_add(T::DbWeight::get().reads(1)) + .saturating_add(T::DbWeight::get().reads(2)) .saturating_add(T::DbWeight::get().writes(2)) } - /// Storage: `Preimage::StatusFor` (r:1 w:1) + /// Storage: `Preimage::StatusFor` (r:1 w:0) /// Proof: `Preimage::StatusFor` (`max_values`: None, `max_size`: Some(91), added: 2566, mode: `MaxEncodedLen`) + /// Storage: `Preimage::RequestStatusFor` (r:1 w:1) + /// Proof: `Preimage::RequestStatusFor` (`max_values`: None, `max_size`: Some(91), added: 2566, mode: `MaxEncodedLen`) fn unrequest_unnoted_preimage() -> Weight { // Proof Size summary in bytes: - // Measured: `140` + // Measured: `173` // Estimated: `3556` - // Minimum execution time: 11_059_000 picoseconds. - Weight::from_parts(12_458_000, 0) + // Minimum execution time: 9_650_000 picoseconds. + Weight::from_parts(9_976_000, 0) .saturating_add(Weight::from_parts(0, 3556)) - .saturating_add(T::DbWeight::get().reads(1)) + .saturating_add(T::DbWeight::get().reads(2)) .saturating_add(T::DbWeight::get().writes(1)) } - /// Storage: `Preimage::StatusFor` (r:1 w:1) + /// Storage: `Preimage::StatusFor` (r:1 w:0) /// Proof: `Preimage::StatusFor` (`max_values`: None, `max_size`: Some(91), added: 2566, mode: `MaxEncodedLen`) + /// Storage: `Preimage::RequestStatusFor` (r:1 w:1) + /// Proof: `Preimage::RequestStatusFor` (`max_values`: None, `max_size`: Some(91), added: 2566, mode: `MaxEncodedLen`) fn unrequest_multi_referenced_preimage() -> Weight { // Proof Size summary in bytes: - // Measured: `140` + // Measured: `173` // Estimated: `3556` - // Minimum execution time: 11_502_000 picoseconds. - Weight::from_parts(12_180_000, 0) + // Minimum execution time: 9_465_000 picoseconds. + Weight::from_parts(9_738_000, 0) .saturating_add(Weight::from_parts(0, 3556)) - .saturating_add(T::DbWeight::get().reads(1)) + .saturating_add(T::DbWeight::get().reads(2)) .saturating_add(T::DbWeight::get().writes(1)) } + /// Storage: `Preimage::StatusFor` (r:1023 w:1023) + /// Proof: `Preimage::StatusFor` (`max_values`: None, `max_size`: Some(91), added: 2566, mode: `MaxEncodedLen`) + /// Storage: `System::Account` (r:1023 w:1023) + /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`) + /// Storage: `Balances::Holds` (r:1023 w:1023) + /// Proof: `Balances::Holds` (`max_values`: None, `max_size`: Some(67), added: 2542, mode: `MaxEncodedLen`) + /// Storage: `Preimage::RequestStatusFor` (r:0 w:1023) + /// Proof: `Preimage::RequestStatusFor` (`max_values`: None, `max_size`: Some(91), added: 2566, mode: `MaxEncodedLen`) + /// The range of component `n` is `[1, 1024]`. + fn ensure_updated(n: u32, ) -> Weight { + // Proof Size summary in bytes: + // Measured: `0 + n * (227 ±0)` + // Estimated: `990 + n * (2603 ±0)` + // Minimum execution time: 49_541_000 picoseconds. + Weight::from_parts(50_043_000, 0) + .saturating_add(Weight::from_parts(0, 990)) + // Standard Error: 33_082 + .saturating_add(Weight::from_parts(49_748_536, 0).saturating_mul(n.into())) + .saturating_add(T::DbWeight::get().reads((3_u64).saturating_mul(n.into()))) + .saturating_add(T::DbWeight::get().writes((4_u64).saturating_mul(n.into()))) + .saturating_add(Weight::from_parts(0, 2603).saturating_mul(n.into())) + } } diff --git a/cumulus/parachains/runtimes/collectives/collectives-westend/src/weights/pallet_proxy.rs b/cumulus/parachains/runtimes/collectives/collectives-westend/src/weights/pallet_proxy.rs index c431514bc51e..e6cc41b88ebf 100644 --- a/cumulus/parachains/runtimes/collectives/collectives-westend/src/weights/pallet_proxy.rs +++ b/cumulus/parachains/runtimes/collectives/collectives-westend/src/weights/pallet_proxy.rs @@ -17,10 +17,10 @@ //! Autogenerated weights for `pallet_proxy` //! //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev -//! DATE: 2023-07-31, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! DATE: 2023-10-25, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` //! WORST CASE MAP SIZE: `1000000` -//! HOSTNAME: `runner-ynta1nyy-project-238-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz` -//! EXECUTION: ``, WASM-EXECUTION: `Compiled`, CHAIN: `Some("collectives-westend-dev")`, DB CACHE: 1024 +//! HOSTNAME: `runner-ayothjw6-project-674-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz` +//! WASM-EXECUTION: `Compiled`, CHAIN: `Some("collectives-westend-dev")`, DB CACHE: 1024 // Executed Command: // ./target/production/polkadot-parachain @@ -36,8 +36,8 @@ // --steps=50 // --repeat=20 // --json -// --header=./file_header.txt -// --output=./parachains/runtimes/collectives/collectives-westend/src/weights/ +// --header=./cumulus/file_header.txt +// --output=./cumulus/parachains/runtimes/collectives/collectives-westend/src/weights/ #![cfg_attr(rustfmt, rustfmt_skip)] #![allow(unused_parens)] @@ -55,13 +55,13 @@ impl pallet_proxy::WeightInfo for WeightInfo { /// The range of component `p` is `[1, 31]`. fn proxy(p: u32, ) -> Weight { // Proof Size summary in bytes: - // Measured: `127 + p * (37 ±0)` + // Measured: `161 + p * (37 ±0)` // Estimated: `4706` - // Minimum execution time: 15_597_000 picoseconds. - Weight::from_parts(16_231_993, 0) + // Minimum execution time: 13_991_000 picoseconds. + Weight::from_parts(14_538_435, 0) .saturating_add(Weight::from_parts(0, 4706)) - // Standard Error: 1_665 - .saturating_add(Weight::from_parts(29_818, 0).saturating_mul(p.into())) + // Standard Error: 915 + .saturating_add(Weight::from_parts(32_293, 0).saturating_mul(p.into())) .saturating_add(T::DbWeight::get().reads(1)) } /// Storage: `Proxy::Proxies` (r:1 w:0) @@ -74,15 +74,15 @@ impl pallet_proxy::WeightInfo for WeightInfo { /// The range of component `p` is `[1, 31]`. fn proxy_announced(a: u32, p: u32, ) -> Weight { // Proof Size summary in bytes: - // Measured: `454 + a * (68 ±0) + p * (37 ±0)` + // Measured: `488 + a * (68 ±0) + p * (37 ±0)` // Estimated: `5698` - // Minimum execution time: 36_685_000 picoseconds. - Weight::from_parts(36_376_358, 0) + // Minimum execution time: 33_146_000 picoseconds. + Weight::from_parts(32_812_538, 0) .saturating_add(Weight::from_parts(0, 5698)) - // Standard Error: 3_003 - .saturating_add(Weight::from_parts(133_776, 0).saturating_mul(a.into())) - // Standard Error: 3_103 - .saturating_add(Weight::from_parts(60_315, 0).saturating_mul(p.into())) + // Standard Error: 2_020 + .saturating_add(Weight::from_parts(137_620, 0).saturating_mul(a.into())) + // Standard Error: 2_087 + .saturating_add(Weight::from_parts(53_787, 0).saturating_mul(p.into())) .saturating_add(T::DbWeight::get().reads(3)) .saturating_add(T::DbWeight::get().writes(2)) } @@ -94,15 +94,15 @@ impl pallet_proxy::WeightInfo for WeightInfo { /// The range of component `p` is `[1, 31]`. fn remove_announcement(a: u32, p: u32, ) -> Weight { // Proof Size summary in bytes: - // Measured: `369 + a * (68 ±0)` + // Measured: `403 + a * (68 ±0)` // Estimated: `5698` - // Minimum execution time: 23_835_000 picoseconds. - Weight::from_parts(24_154_219, 0) + // Minimum execution time: 22_263_000 picoseconds. + Weight::from_parts(22_632_706, 0) .saturating_add(Weight::from_parts(0, 5698)) - // Standard Error: 1_580 - .saturating_add(Weight::from_parts(125_884, 0).saturating_mul(a.into())) - // Standard Error: 1_632 - .saturating_add(Weight::from_parts(21_563, 0).saturating_mul(p.into())) + // Standard Error: 1_477 + .saturating_add(Weight::from_parts(131_367, 0).saturating_mul(a.into())) + // Standard Error: 1_526 + .saturating_add(Weight::from_parts(19_554, 0).saturating_mul(p.into())) .saturating_add(T::DbWeight::get().reads(2)) .saturating_add(T::DbWeight::get().writes(2)) } @@ -114,15 +114,15 @@ impl pallet_proxy::WeightInfo for WeightInfo { /// The range of component `p` is `[1, 31]`. fn reject_announcement(a: u32, p: u32, ) -> Weight { // Proof Size summary in bytes: - // Measured: `369 + a * (68 ±0)` + // Measured: `403 + a * (68 ±0)` // Estimated: `5698` - // Minimum execution time: 23_997_000 picoseconds. - Weight::from_parts(24_301_638, 0) + // Minimum execution time: 22_572_000 picoseconds. + Weight::from_parts(22_511_514, 0) .saturating_add(Weight::from_parts(0, 5698)) - // Standard Error: 1_658 - .saturating_add(Weight::from_parts(133_005, 0).saturating_mul(a.into())) - // Standard Error: 1_713 - .saturating_add(Weight::from_parts(20_237, 0).saturating_mul(p.into())) + // Standard Error: 1_284 + .saturating_add(Weight::from_parts(132_570, 0).saturating_mul(a.into())) + // Standard Error: 1_327 + .saturating_add(Weight::from_parts(25_277, 0).saturating_mul(p.into())) .saturating_add(T::DbWeight::get().reads(2)) .saturating_add(T::DbWeight::get().writes(2)) } @@ -136,15 +136,15 @@ impl pallet_proxy::WeightInfo for WeightInfo { /// The range of component `p` is `[1, 31]`. fn announce(a: u32, p: u32, ) -> Weight { // Proof Size summary in bytes: - // Measured: `386 + a * (68 ±0) + p * (37 ±0)` + // Measured: `420 + a * (68 ±0) + p * (37 ±0)` // Estimated: `5698` - // Minimum execution time: 33_604_000 picoseconds. - Weight::from_parts(33_322_880, 0) + // Minimum execution time: 29_953_000 picoseconds. + Weight::from_parts(29_440_617, 0) .saturating_add(Weight::from_parts(0, 5698)) - // Standard Error: 1_840 - .saturating_add(Weight::from_parts(114_037, 0).saturating_mul(a.into())) - // Standard Error: 1_901 - .saturating_add(Weight::from_parts(45_629, 0).saturating_mul(p.into())) + // Standard Error: 1_338 + .saturating_add(Weight::from_parts(134_623, 0).saturating_mul(a.into())) + // Standard Error: 1_382 + .saturating_add(Weight::from_parts(50_777, 0).saturating_mul(p.into())) .saturating_add(T::DbWeight::get().reads(3)) .saturating_add(T::DbWeight::get().writes(2)) } @@ -153,13 +153,13 @@ impl pallet_proxy::WeightInfo for WeightInfo { /// The range of component `p` is `[1, 31]`. fn add_proxy(p: u32, ) -> Weight { // Proof Size summary in bytes: - // Measured: `127 + p * (37 ±0)` + // Measured: `161 + p * (37 ±0)` // Estimated: `4706` - // Minimum execution time: 24_634_000 picoseconds. - Weight::from_parts(25_509_118, 0) + // Minimum execution time: 21_616_000 picoseconds. + Weight::from_parts(22_251_590, 0) .saturating_add(Weight::from_parts(0, 4706)) - // Standard Error: 2_278 - .saturating_add(Weight::from_parts(38_401, 0).saturating_mul(p.into())) + // Standard Error: 972 + .saturating_add(Weight::from_parts(40_664, 0).saturating_mul(p.into())) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(1)) } @@ -168,13 +168,13 @@ impl pallet_proxy::WeightInfo for WeightInfo { /// The range of component `p` is `[1, 31]`. fn remove_proxy(p: u32, ) -> Weight { // Proof Size summary in bytes: - // Measured: `127 + p * (37 ±0)` + // Measured: `161 + p * (37 ±0)` // Estimated: `4706` - // Minimum execution time: 24_855_000 picoseconds. - Weight::from_parts(25_753_505, 0) + // Minimum execution time: 21_761_000 picoseconds. + Weight::from_parts(22_613_730, 0) .saturating_add(Weight::from_parts(0, 4706)) - // Standard Error: 1_819 - .saturating_add(Weight::from_parts(44_357, 0).saturating_mul(p.into())) + // Standard Error: 1_517 + .saturating_add(Weight::from_parts(38_103, 0).saturating_mul(p.into())) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(1)) } @@ -183,13 +183,13 @@ impl pallet_proxy::WeightInfo for WeightInfo { /// The range of component `p` is `[1, 31]`. fn remove_proxies(p: u32, ) -> Weight { // Proof Size summary in bytes: - // Measured: `127 + p * (37 ±0)` + // Measured: `161 + p * (37 ±0)` // Estimated: `4706` - // Minimum execution time: 22_211_000 picoseconds. - Weight::from_parts(23_094_124, 0) + // Minimum execution time: 20_414_000 picoseconds. + Weight::from_parts(21_114_247, 0) .saturating_add(Weight::from_parts(0, 4706)) - // Standard Error: 2_597 - .saturating_add(Weight::from_parts(36_725, 0).saturating_mul(p.into())) + // Standard Error: 1_199 + .saturating_add(Weight::from_parts(38_249, 0).saturating_mul(p.into())) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(1)) } @@ -198,13 +198,13 @@ impl pallet_proxy::WeightInfo for WeightInfo { /// The range of component `p` is `[1, 31]`. fn create_pure(p: u32, ) -> Weight { // Proof Size summary in bytes: - // Measured: `139` + // Measured: `173` // Estimated: `4706` - // Minimum execution time: 26_764_000 picoseconds. - Weight::from_parts(27_667_535, 0) + // Minimum execution time: 22_500_000 picoseconds. + Weight::from_parts(23_340_082, 0) .saturating_add(Weight::from_parts(0, 4706)) - // Standard Error: 1_111 - .saturating_add(Weight::from_parts(3_422, 0).saturating_mul(p.into())) + // Standard Error: 907 + .saturating_add(Weight::from_parts(8_768, 0).saturating_mul(p.into())) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(1)) } @@ -213,13 +213,13 @@ impl pallet_proxy::WeightInfo for WeightInfo { /// The range of component `p` is `[0, 30]`. fn kill_pure(p: u32, ) -> Weight { // Proof Size summary in bytes: - // Measured: `164 + p * (37 ±0)` + // Measured: `198 + p * (37 ±0)` // Estimated: `4706` - // Minimum execution time: 22_632_000 picoseconds. - Weight::from_parts(23_678_772, 0) + // Minimum execution time: 20_917_000 picoseconds. + Weight::from_parts(21_904_284, 0) .saturating_add(Weight::from_parts(0, 4706)) - // Standard Error: 2_136 - .saturating_add(Weight::from_parts(26_492, 0).saturating_mul(p.into())) + // Standard Error: 1_194 + .saturating_add(Weight::from_parts(38_200, 0).saturating_mul(p.into())) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(1)) } diff --git a/cumulus/parachains/runtimes/collectives/collectives-westend/src/weights/pallet_ranked_collective_ambassador_collective.rs b/cumulus/parachains/runtimes/collectives/collectives-westend/src/weights/pallet_ranked_collective_ambassador_collective.rs index 3c73baf8388f..bee27f64b01c 100644 --- a/cumulus/parachains/runtimes/collectives/collectives-westend/src/weights/pallet_ranked_collective_ambassador_collective.rs +++ b/cumulus/parachains/runtimes/collectives/collectives-westend/src/weights/pallet_ranked_collective_ambassador_collective.rs @@ -1,4 +1,4 @@ -// Copyright Parity Technologies (UK) Ltd. +// Copyright (C) Parity Technologies (UK) Ltd. // This file is part of Cumulus. // Cumulus is free software: you can redistribute it and/or modify @@ -17,24 +17,27 @@ //! Autogenerated weights for `pallet_ranked_collective` //! //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev -//! DATE: 2023-08-11, STEPS: `2`, REPEAT: `2`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! DATE: 2023-10-25, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` //! WORST CASE MAP SIZE: `1000000` -//! HOSTNAME: `cob`, CPU: `` +//! HOSTNAME: `runner-ayothjw6-project-674-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz` //! WASM-EXECUTION: `Compiled`, CHAIN: `Some("collectives-westend-dev")`, DB CACHE: 1024 // Executed Command: -// target/release/polkadot-parachain +// ./target/production/polkadot-parachain // benchmark // pallet // --chain=collectives-westend-dev // --wasm-execution=compiled // --pallet=pallet_ranked_collective +// --no-storage-info +// --no-median-slopes +// --no-min-squares // --extrinsic=* -// --steps=2 -// --repeat=2 +// --steps=50 +// --repeat=20 // --json -// --header=./file_header.txt -// --output=./parachains/runtimes/collectives/collectives-westend/src/weights/ +// --header=./cumulus/file_header.txt +// --output=./cumulus/parachains/runtimes/collectives/collectives-westend/src/weights/ #![cfg_attr(rustfmt, rustfmt_skip)] #![allow(unused_parens)] @@ -59,8 +62,8 @@ impl pallet_ranked_collective::WeightInfo for WeightInf // Proof Size summary in bytes: // Measured: `42` // Estimated: `3507` - // Minimum execution time: 21_000_000 picoseconds. - Weight::from_parts(23_000_000, 0) + // Minimum execution time: 14_220_000 picoseconds. + Weight::from_parts(14_783_000, 0) .saturating_add(Weight::from_parts(0, 3507)) .saturating_add(T::DbWeight::get().reads(2)) .saturating_add(T::DbWeight::get().writes(4)) @@ -77,13 +80,13 @@ impl pallet_ranked_collective::WeightInfo for WeightInf /// The range of component `r` is `[0, 10]`. fn remove_member(r: u32, ) -> Weight { // Proof Size summary in bytes: - // Measured: `508 + r * (281 ±0)` + // Measured: `517 + r * (281 ±0)` // Estimated: `3519 + r * (2529 ±0)` - // Minimum execution time: 34_000_000 picoseconds. - Weight::from_parts(36_500_000, 0) + // Minimum execution time: 26_206_000 picoseconds. + Weight::from_parts(28_496_099, 0) .saturating_add(Weight::from_parts(0, 3519)) - // Standard Error: 158_113 - .saturating_add(Weight::from_parts(16_000_000, 0).saturating_mul(r.into())) + // Standard Error: 17_090 + .saturating_add(Weight::from_parts(12_910_029, 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,13 +105,13 @@ impl pallet_ranked_collective::WeightInfo for WeightInf /// The range of component `r` is `[0, 10]`. fn promote_member(r: u32, ) -> Weight { // Proof Size summary in bytes: - // Measured: `210 + r * (17 ±0)` + // Measured: `214 + r * (17 ±0)` // Estimated: `3507` - // Minimum execution time: 25_000_000 picoseconds. - Weight::from_parts(26_000_000, 0) + // Minimum execution time: 17_846_000 picoseconds. + Weight::from_parts(18_664_751, 0) .saturating_add(Weight::from_parts(0, 3507)) - // Standard Error: 180_277 - .saturating_add(Weight::from_parts(650_000, 0).saturating_mul(r.into())) + // Standard Error: 3_079 + .saturating_add(Weight::from_parts(335_098, 0).saturating_mul(r.into())) .saturating_add(T::DbWeight::get().reads(2)) .saturating_add(T::DbWeight::get().writes(4)) } @@ -124,13 +127,13 @@ impl pallet_ranked_collective::WeightInfo for WeightInf /// The range of component `r` is `[0, 10]`. fn demote_member(r: u32, ) -> Weight { // Proof Size summary in bytes: - // Measured: `508 + r * (71 ±0)` + // Measured: `532 + r * (72 ±0)` // Estimated: `3519` - // Minimum execution time: 34_000_000 picoseconds. - Weight::from_parts(36_500_000, 0) + // Minimum execution time: 26_190_000 picoseconds. + Weight::from_parts(28_382_028, 0) .saturating_add(Weight::from_parts(0, 3519)) - // Standard Error: 335_410 - .saturating_add(Weight::from_parts(550_000, 0).saturating_mul(r.into())) + // Standard Error: 10_335 + .saturating_add(Weight::from_parts(589_611, 0).saturating_mul(r.into())) .saturating_add(T::DbWeight::get().reads(4)) .saturating_add(T::DbWeight::get().writes(4)) } @@ -146,8 +149,8 @@ impl pallet_ranked_collective::WeightInfo for WeightInf // Proof Size summary in bytes: // Measured: `566` // Estimated: `317568` - // Minimum execution time: 57_000_000 picoseconds. - Weight::from_parts(60_000_000, 0) + // Minimum execution time: 40_900_000 picoseconds. + Weight::from_parts(41_854_000, 0) .saturating_add(Weight::from_parts(0, 317568)) .saturating_add(T::DbWeight::get().reads(5)) .saturating_add(T::DbWeight::get().writes(4)) @@ -162,16 +165,16 @@ impl pallet_ranked_collective::WeightInfo for WeightInf /// The range of component `n` is `[0, 100]`. fn cleanup_poll(n: u32, ) -> Weight { // Proof Size summary in bytes: - // Measured: `209 + n * (52 ±0)` - // Estimated: `4365 + n * (2550 ±0)` - // Minimum execution time: 18_000_000 picoseconds. - Weight::from_parts(18_500_000, 0) + // Measured: `400 + n * (50 ±0)` + // Estimated: `4365 + n * (2540 ±0)` + // Minimum execution time: 14_778_000 picoseconds. + Weight::from_parts(18_924_357, 0) .saturating_add(Weight::from_parts(0, 4365)) - // Standard Error: 11_180 - .saturating_add(Weight::from_parts(1_335_000, 0).saturating_mul(n.into())) + // Standard Error: 1_646 + .saturating_add(Weight::from_parts(1_157_922, 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()))) - .saturating_add(Weight::from_parts(0, 2550).saturating_mul(n.into())) + .saturating_add(Weight::from_parts(0, 2540).saturating_mul(n.into())) } } diff --git a/cumulus/parachains/runtimes/collectives/collectives-westend/src/weights/pallet_ranked_collective_fellowship_collective.rs b/cumulus/parachains/runtimes/collectives/collectives-westend/src/weights/pallet_ranked_collective_fellowship_collective.rs index 596c0e118f7c..4b31d16926ad 100644 --- a/cumulus/parachains/runtimes/collectives/collectives-westend/src/weights/pallet_ranked_collective_fellowship_collective.rs +++ b/cumulus/parachains/runtimes/collectives/collectives-westend/src/weights/pallet_ranked_collective_fellowship_collective.rs @@ -17,24 +17,27 @@ //! Autogenerated weights for `pallet_ranked_collective` //! //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev -//! DATE: 2023-08-11, STEPS: `2`, REPEAT: `2`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! DATE: 2023-10-25, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` //! WORST CASE MAP SIZE: `1000000` -//! HOSTNAME: `cob`, CPU: `` +//! HOSTNAME: `runner-ayothjw6-project-674-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz` //! WASM-EXECUTION: `Compiled`, CHAIN: `Some("collectives-westend-dev")`, DB CACHE: 1024 // Executed Command: -// target/release/polkadot-parachain +// ./target/production/polkadot-parachain // benchmark // pallet // --chain=collectives-westend-dev // --wasm-execution=compiled // --pallet=pallet_ranked_collective +// --no-storage-info +// --no-median-slopes +// --no-min-squares // --extrinsic=* -// --steps=2 -// --repeat=2 +// --steps=50 +// --repeat=20 // --json -// --header=./file_header.txt -// --output=./parachains/runtimes/collectives/collectives-westend/src/weights/ +// --header=./cumulus/file_header.txt +// --output=./cumulus/parachains/runtimes/collectives/collectives-westend/src/weights/ #![cfg_attr(rustfmt, rustfmt_skip)] #![allow(unused_parens)] @@ -59,8 +62,8 @@ impl pallet_ranked_collective::WeightInfo for WeightInf // Proof Size summary in bytes: // Measured: `142` // Estimated: `3507` - // Minimum execution time: 21_000_000 picoseconds. - Weight::from_parts(22_000_000, 0) + // Minimum execution time: 14_574_000 picoseconds. + Weight::from_parts(15_162_000, 0) .saturating_add(Weight::from_parts(0, 3507)) .saturating_add(T::DbWeight::get().reads(2)) .saturating_add(T::DbWeight::get().writes(4)) @@ -77,13 +80,13 @@ impl pallet_ranked_collective::WeightInfo for WeightInf /// The range of component `r` is `[0, 10]`. fn remove_member(r: u32, ) -> Weight { // Proof Size summary in bytes: - // Measured: `608 + r * (281 ±0)` + // Measured: `617 + r * (281 ±0)` // Estimated: `3519 + r * (2529 ±0)` - // Minimum execution time: 35_000_000 picoseconds. - Weight::from_parts(36_500_000, 0) + // Minimum execution time: 26_592_000 picoseconds. + Weight::from_parts(28_892_674, 0) .saturating_add(Weight::from_parts(0, 3519)) - // Standard Error: 254_950 - .saturating_add(Weight::from_parts(15_900_000, 0).saturating_mul(r.into())) + // Standard Error: 16_423 + .saturating_add(Weight::from_parts(12_963_309, 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,13 +105,13 @@ impl pallet_ranked_collective::WeightInfo for WeightInf /// The range of component `r` is `[0, 10]`. fn promote_member(r: u32, ) -> Weight { // Proof Size summary in bytes: - // Measured: `310 + r * (17 ±0)` + // Measured: `314 + r * (17 ±0)` // Estimated: `3507` - // Minimum execution time: 25_000_000 picoseconds. - Weight::from_parts(25_500_000, 0) + // Minimum execution time: 17_876_000 picoseconds. + Weight::from_parts(18_823_525, 0) .saturating_add(Weight::from_parts(0, 3507)) - // Standard Error: 70_710 - .saturating_add(Weight::from_parts(400_000, 0).saturating_mul(r.into())) + // Standard Error: 3_053 + .saturating_add(Weight::from_parts(334_356, 0).saturating_mul(r.into())) .saturating_add(T::DbWeight::get().reads(2)) .saturating_add(T::DbWeight::get().writes(4)) } @@ -124,13 +127,13 @@ impl pallet_ranked_collective::WeightInfo for WeightInf /// The range of component `r` is `[0, 10]`. fn demote_member(r: u32, ) -> Weight { // Proof Size summary in bytes: - // Measured: `608 + r * (71 ±0)` + // Measured: `632 + r * (72 ±0)` // Estimated: `3519` - // Minimum execution time: 35_000_000 picoseconds. - Weight::from_parts(37_500_000, 0) + // Minimum execution time: 26_045_000 picoseconds. + Weight::from_parts(28_838_987, 0) .saturating_add(Weight::from_parts(0, 3519)) - // Standard Error: 150_000 - .saturating_add(Weight::from_parts(350_000, 0).saturating_mul(r.into())) + // Standard Error: 10_788 + .saturating_add(Weight::from_parts(579_284, 0).saturating_mul(r.into())) .saturating_add(T::DbWeight::get().reads(4)) .saturating_add(T::DbWeight::get().writes(4)) } @@ -146,8 +149,8 @@ impl pallet_ranked_collective::WeightInfo for WeightInf // Proof Size summary in bytes: // Measured: `700` // Estimated: `317568` - // Minimum execution time: 57_000_000 picoseconds. - Weight::from_parts(57_000_000, 0) + // Minimum execution time: 40_971_000 picoseconds. + Weight::from_parts(41_986_000, 0) .saturating_add(Weight::from_parts(0, 317568)) .saturating_add(T::DbWeight::get().reads(5)) .saturating_add(T::DbWeight::get().writes(4)) @@ -162,16 +165,16 @@ impl pallet_ranked_collective::WeightInfo for WeightInf /// The range of component `n` is `[0, 100]`. fn cleanup_poll(n: u32, ) -> Weight { // Proof Size summary in bytes: - // Measured: `343 + n * (52 ±0)` - // Estimated: `4365 + n * (2550 ±0)` - // Minimum execution time: 18_000_000 picoseconds. - Weight::from_parts(19_000_000, 0) + // Measured: `534 + n * (50 ±0)` + // Estimated: `4365 + n * (2540 ±0)` + // Minimum execution time: 15_040_000 picoseconds. + Weight::from_parts(18_734_743, 0) .saturating_add(Weight::from_parts(0, 4365)) - // Standard Error: 25_000 - .saturating_add(Weight::from_parts(1_395_000, 0).saturating_mul(n.into())) + // Standard Error: 1_618 + .saturating_add(Weight::from_parts(1_146_621, 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()))) - .saturating_add(Weight::from_parts(0, 2550).saturating_mul(n.into())) + .saturating_add(Weight::from_parts(0, 2540).saturating_mul(n.into())) } } diff --git a/cumulus/parachains/runtimes/collectives/collectives-westend/src/weights/pallet_referenda_ambassador_referenda.rs b/cumulus/parachains/runtimes/collectives/collectives-westend/src/weights/pallet_referenda_ambassador_referenda.rs index d644683819a2..5b72e540123a 100644 --- a/cumulus/parachains/runtimes/collectives/collectives-westend/src/weights/pallet_referenda_ambassador_referenda.rs +++ b/cumulus/parachains/runtimes/collectives/collectives-westend/src/weights/pallet_referenda_ambassador_referenda.rs @@ -1,4 +1,4 @@ -// Copyright Parity Technologies (UK) Ltd. +// Copyright (C) Parity Technologies (UK) Ltd. // This file is part of Cumulus. // Cumulus is free software: you can redistribute it and/or modify @@ -17,24 +17,27 @@ //! Autogenerated weights for `pallet_referenda` //! //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev -//! DATE: 2023-08-11, STEPS: `2`, REPEAT: `2`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! DATE: 2023-10-25, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` //! WORST CASE MAP SIZE: `1000000` -//! HOSTNAME: `cob`, CPU: `` +//! HOSTNAME: `runner-ayothjw6-project-674-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz` //! WASM-EXECUTION: `Compiled`, CHAIN: `Some("collectives-westend-dev")`, DB CACHE: 1024 // Executed Command: -// target/release/polkadot-parachain +// ./target/production/polkadot-parachain // benchmark // pallet // --chain=collectives-westend-dev // --wasm-execution=compiled // --pallet=pallet_referenda +// --no-storage-info +// --no-median-slopes +// --no-min-squares // --extrinsic=* -// --steps=2 -// --repeat=2 +// --steps=50 +// --repeat=20 // --json -// --header=./file_header.txt -// --output=./parachains/runtimes/collectives/collectives-westend/src/weights/ +// --header=./cumulus/file_header.txt +// --output=./cumulus/parachains/runtimes/collectives/collectives-westend/src/weights/ #![cfg_attr(rustfmt, rustfmt_skip)] #![allow(unused_parens)] @@ -59,8 +62,8 @@ impl pallet_referenda::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `255` // Estimated: `159279` - // Minimum execution time: 32_000_000 picoseconds. - Weight::from_parts(34_000_000, 0) + // Minimum execution time: 23_480_000 picoseconds. + Weight::from_parts(24_218_000, 0) .saturating_add(Weight::from_parts(0, 159279)) .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: `366` // Estimated: `317568` - // Minimum execution time: 63_000_000 picoseconds. - Weight::from_parts(68_000_000, 0) + // Minimum execution time: 44_308_000 picoseconds. + Weight::from_parts(45_445_000, 0) .saturating_add(Weight::from_parts(0, 317568)) .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: `1165` // Estimated: `159279` - // Minimum execution time: 97_000_000 picoseconds. - Weight::from_parts(123_000_000, 0) + // Minimum execution time: 88_108_000 picoseconds. + Weight::from_parts(93_640_000, 0) .saturating_add(Weight::from_parts(0, 159279)) .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: `1173` // Estimated: `159279` - // Minimum execution time: 104_000_000 picoseconds. - Weight::from_parts(111_000_000, 0) + // Minimum execution time: 86_588_000 picoseconds. + Weight::from_parts(92_850_000, 0) .saturating_add(Weight::from_parts(0, 159279)) .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: `702` // Estimated: `317568` - // Minimum execution time: 140_000_000 picoseconds. - Weight::from_parts(150_000_000, 0) + // Minimum execution time: 155_712_000 picoseconds. + Weight::from_parts(166_538_000, 0) .saturating_add(Weight::from_parts(0, 317568)) .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: `601` // Estimated: `317568` - // Minimum execution time: 81_000_000 picoseconds. - Weight::from_parts(82_000_000, 0) + // Minimum execution time: 55_720_000 picoseconds. + Weight::from_parts(57_051_000, 0) .saturating_add(Weight::from_parts(0, 317568)) .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: 38_000_000 picoseconds. - Weight::from_parts(38_000_000, 0) + // Minimum execution time: 26_938_000 picoseconds. + Weight::from_parts(27_720_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: 17_000_000 picoseconds. - Weight::from_parts(18_000_000, 0) + // Minimum execution time: 13_395_000 picoseconds. + Weight::from_parts(13_966_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: `311` // Estimated: `317568` - // Minimum execution time: 44_000_000 picoseconds. - Weight::from_parts(45_000_000, 0) + // Minimum execution time: 31_654_000 picoseconds. + Weight::from_parts(32_480_000, 0) .saturating_add(Weight::from_parts(0, 317568)) .saturating_add(T::DbWeight::get().reads(3)) .saturating_add(T::DbWeight::get().writes(3)) @@ -213,8 +216,8 @@ impl pallet_referenda::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `626` // Estimated: `317568` - // Minimum execution time: 183_000_000 picoseconds. - Weight::from_parts(187_000_000, 0) + // Minimum execution time: 132_640_000 picoseconds. + Weight::from_parts(135_347_000, 0) .saturating_add(Weight::from_parts(0, 317568)) .saturating_add(T::DbWeight::get().reads(11)) .saturating_add(T::DbWeight::get().writes(6)) @@ -227,8 +230,8 @@ impl pallet_referenda::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `140` // Estimated: `3636` - // Minimum execution time: 12_000_000 picoseconds. - Weight::from_parts(12_000_000, 0) + // Minimum execution time: 10_470_000 picoseconds. + Weight::from_parts(10_910_000, 0) .saturating_add(Weight::from_parts(0, 3636)) .saturating_add(T::DbWeight::get().reads(2)) .saturating_add(T::DbWeight::get().writes(1)) @@ -243,10 +246,10 @@ impl pallet_referenda::WeightInfo for WeightInfo { /// Proof: `Scheduler::Agenda` (`max_values`: None, `max_size`: Some(155814), added: 158289, mode: `MaxEncodedLen`) fn one_fewer_deciding_failing() -> Weight { // Proof Size summary in bytes: - // Measured: `1412` + // Measured: `1426` // Estimated: `159279` - // Minimum execution time: 88_000_000 picoseconds. - Weight::from_parts(97_000_000, 0) + // Minimum execution time: 77_408_000 picoseconds. + Weight::from_parts(81_710_000, 0) .saturating_add(Weight::from_parts(0, 159279)) .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: `1412` // Estimated: `159279` - // Minimum execution time: 87_000_000 picoseconds. - Weight::from_parts(92_000_000, 0) + // Minimum execution time: 75_716_000 picoseconds. + Weight::from_parts(81_309_000, 0) .saturating_add(Weight::from_parts(0, 159279)) .saturating_add(T::DbWeight::get().reads(4)) .saturating_add(T::DbWeight::get().writes(3)) @@ -277,8 +280,8 @@ impl pallet_referenda::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `935` // Estimated: `4365` - // Minimum execution time: 43_000_000 picoseconds. - Weight::from_parts(46_000_000, 0) + // Minimum execution time: 37_477_000 picoseconds. + Weight::from_parts(42_720_000, 0) .saturating_add(Weight::from_parts(0, 4365)) .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: `935` // Estimated: `4365` - // Minimum execution time: 39_000_000 picoseconds. - Weight::from_parts(43_000_000, 0) + // Minimum execution time: 37_100_000 picoseconds. + Weight::from_parts(42_820_000, 0) .saturating_add(Weight::from_parts(0, 4365)) .saturating_add(T::DbWeight::get().reads(2)) .saturating_add(T::DbWeight::get().writes(1)) @@ -307,8 +310,8 @@ impl pallet_referenda::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `951` // Estimated: `4365` - // Minimum execution time: 48_000_000 picoseconds. - Weight::from_parts(50_000_000, 0) + // Minimum execution time: 43_661_000 picoseconds. + Weight::from_parts(49_088_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: `959` // Estimated: `4365` - // Minimum execution time: 42_000_000 picoseconds. - Weight::from_parts(48_000_000, 0) + // Minimum execution time: 45_147_000 picoseconds. + Weight::from_parts(48_876_000, 0) .saturating_add(Weight::from_parts(0, 4365)) .saturating_add(T::DbWeight::get().reads(3)) .saturating_add(T::DbWeight::get().writes(2)) @@ -337,8 +340,8 @@ impl pallet_referenda::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `263` // Estimated: `159279` - // Minimum execution time: 28_000_000 picoseconds. - Weight::from_parts(30_000_000, 0) + // Minimum execution time: 21_756_000 picoseconds. + Weight::from_parts(22_311_000, 0) .saturating_add(Weight::from_parts(0, 159279)) .saturating_add(T::DbWeight::get().reads(2)) .saturating_add(T::DbWeight::get().writes(2)) @@ -351,8 +354,8 @@ impl pallet_referenda::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `311` // Estimated: `159279` - // Minimum execution time: 26_000_000 picoseconds. - Weight::from_parts(28_000_000, 0) + // Minimum execution time: 21_885_000 picoseconds. + Weight::from_parts(22_568_000, 0) .saturating_add(Weight::from_parts(0, 159279)) .saturating_add(T::DbWeight::get().reads(2)) .saturating_add(T::DbWeight::get().writes(2)) @@ -363,8 +366,8 @@ impl pallet_referenda::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `208` // Estimated: `4365` - // Minimum execution time: 19_000_000 picoseconds. - Weight::from_parts(20_000_000, 0) + // Minimum execution time: 14_875_000 picoseconds. + Weight::from_parts(15_562_000, 0) .saturating_add(Weight::from_parts(0, 4365)) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(1)) @@ -381,8 +384,8 @@ impl pallet_referenda::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `546` // Estimated: `159279` - // Minimum execution time: 42_000_000 picoseconds. - Weight::from_parts(46_000_000, 0) + // Minimum execution time: 32_220_000 picoseconds. + Weight::from_parts(33_014_000, 0) .saturating_add(Weight::from_parts(0, 159279)) .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: `647` // Estimated: `159279` - // Minimum execution time: 87_000_000 picoseconds. - Weight::from_parts(93_000_000, 0) + // Minimum execution time: 73_150_000 picoseconds. + Weight::from_parts(79_038_000, 0) .saturating_add(Weight::from_parts(0, 159279)) .saturating_add(T::DbWeight::get().reads(4)) .saturating_add(T::DbWeight::get().writes(3)) @@ -415,8 +418,8 @@ impl pallet_referenda::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `700` // Estimated: `159279` - // Minimum execution time: 100_000_000 picoseconds. - Weight::from_parts(120_000_000, 0) + // Minimum execution time: 124_160_000 picoseconds. + Weight::from_parts(132_848_000, 0) .saturating_add(Weight::from_parts(0, 159279)) .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: `683` // Estimated: `159279` - // Minimum execution time: 90_000_000 picoseconds. - Weight::from_parts(100_000_000, 0) + // Minimum execution time: 112_687_000 picoseconds. + Weight::from_parts(133_963_000, 0) .saturating_add(Weight::from_parts(0, 159279)) .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: `700` // Estimated: `159279` - // Minimum execution time: 77_000_000 picoseconds. - Weight::from_parts(82_000_000, 0) + // Minimum execution time: 118_497_000 picoseconds. + Weight::from_parts(127_430_000, 0) .saturating_add(Weight::from_parts(0, 159279)) .saturating_add(T::DbWeight::get().reads(3)) .saturating_add(T::DbWeight::get().writes(2)) @@ -463,8 +466,8 @@ impl pallet_referenda::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `704` // Estimated: `159279` - // Minimum execution time: 68_000_000 picoseconds. - Weight::from_parts(77_000_000, 0) + // Minimum execution time: 66_879_000 picoseconds. + Weight::from_parts(70_675_000, 0) .saturating_add(Weight::from_parts(0, 159279)) .saturating_add(T::DbWeight::get().reads(3)) .saturating_add(T::DbWeight::get().writes(2)) @@ -481,8 +484,8 @@ impl pallet_referenda::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `704` // Estimated: `317568` - // Minimum execution time: 99_000_000 picoseconds. - Weight::from_parts(104_000_000, 0) + // Minimum execution time: 129_480_000 picoseconds. + Weight::from_parts(146_191_000, 0) .saturating_add(Weight::from_parts(0, 317568)) .saturating_add(T::DbWeight::get().reads(5)) .saturating_add(T::DbWeight::get().writes(4)) @@ -497,8 +500,8 @@ impl pallet_referenda::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `700` // Estimated: `159279` - // Minimum execution time: 87_000_000 picoseconds. - Weight::from_parts(100_000_000, 0) + // Minimum execution time: 115_743_000 picoseconds. + Weight::from_parts(132_910_000, 0) .saturating_add(Weight::from_parts(0, 159279)) .saturating_add(T::DbWeight::get().reads(3)) .saturating_add(T::DbWeight::get().writes(2)) @@ -507,16 +510,18 @@ impl pallet_referenda::WeightInfo for WeightInfo { /// Proof: `AmbassadorReferenda::ReferendumInfoFor` (`max_values`: None, `max_size`: Some(900), added: 3375, mode: `MaxEncodedLen`) /// Storage: `Preimage::StatusFor` (r:1 w:0) /// Proof: `Preimage::StatusFor` (`max_values`: None, `max_size`: Some(91), added: 2566, mode: `MaxEncodedLen`) + /// Storage: `Preimage::RequestStatusFor` (r:1 w:0) + /// Proof: `Preimage::RequestStatusFor` (`max_values`: None, `max_size`: Some(91), added: 2566, mode: `MaxEncodedLen`) /// Storage: `AmbassadorReferenda::MetadataOf` (r:0 w:1) /// Proof: `AmbassadorReferenda::MetadataOf` (`max_values`: None, `max_size`: Some(52), added: 2527, mode: `MaxEncodedLen`) fn set_some_metadata() -> Weight { // Proof Size summary in bytes: // Measured: `419` // Estimated: `4365` - // Minimum execution time: 23_000_000 picoseconds. - Weight::from_parts(25_000_000, 0) + // Minimum execution time: 20_365_000 picoseconds. + Weight::from_parts(20_960_000, 0) .saturating_add(Weight::from_parts(0, 4365)) - .saturating_add(T::DbWeight::get().reads(2)) + .saturating_add(T::DbWeight::get().reads(3)) .saturating_add(T::DbWeight::get().writes(1)) } /// Storage: `AmbassadorReferenda::ReferendumInfoFor` (r:1 w:0) @@ -527,8 +532,8 @@ impl pallet_referenda::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `285` // Estimated: `4365` - // Minimum execution time: 20_000_000 picoseconds. - Weight::from_parts(21_000_000, 0) + // Minimum execution time: 16_523_000 picoseconds. + Weight::from_parts(17_029_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/cumulus/parachains/runtimes/collectives/collectives-westend/src/weights/pallet_referenda_fellowship_referenda.rs b/cumulus/parachains/runtimes/collectives/collectives-westend/src/weights/pallet_referenda_fellowship_referenda.rs index 24cc86681437..e4420da1b67f 100644 --- a/cumulus/parachains/runtimes/collectives/collectives-westend/src/weights/pallet_referenda_fellowship_referenda.rs +++ b/cumulus/parachains/runtimes/collectives/collectives-westend/src/weights/pallet_referenda_fellowship_referenda.rs @@ -17,24 +17,27 @@ //! Autogenerated weights for `pallet_referenda` //! //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev -//! DATE: 2023-08-11, STEPS: `2`, REPEAT: `2`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! DATE: 2023-10-25, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` //! WORST CASE MAP SIZE: `1000000` -//! HOSTNAME: `cob`, CPU: `` +//! HOSTNAME: `runner-ayothjw6-project-674-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz` //! WASM-EXECUTION: `Compiled`, CHAIN: `Some("collectives-westend-dev")`, DB CACHE: 1024 // Executed Command: -// target/release/polkadot-parachain +// ./target/production/polkadot-parachain // benchmark // pallet // --chain=collectives-westend-dev // --wasm-execution=compiled // --pallet=pallet_referenda +// --no-storage-info +// --no-median-slopes +// --no-min-squares // --extrinsic=* -// --steps=2 -// --repeat=2 +// --steps=50 +// --repeat=20 // --json -// --header=./file_header.txt -// --output=./parachains/runtimes/collectives/collectives-westend/src/weights/ +// --header=./cumulus/file_header.txt +// --output=./cumulus/parachains/runtimes/collectives/collectives-westend/src/weights/ #![cfg_attr(rustfmt, rustfmt_skip)] #![allow(unused_parens)] @@ -59,8 +62,8 @@ impl pallet_referenda::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `389` // Estimated: `159279` - // Minimum execution time: 34_000_000 picoseconds. - Weight::from_parts(36_000_000, 0) + // Minimum execution time: 23_700_000 picoseconds. + Weight::from_parts(24_606_000, 0) .saturating_add(Weight::from_parts(0, 159279)) .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: `400` // Estimated: `317568` - // Minimum execution time: 64_000_000 picoseconds. - Weight::from_parts(67_000_000, 0) + // Minimum execution time: 44_379_000 picoseconds. + Weight::from_parts(45_797_000, 0) .saturating_add(Weight::from_parts(0, 317568)) .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: `2038` // Estimated: `159279` - // Minimum execution time: 99_000_000 picoseconds. - Weight::from_parts(109_000_000, 0) + // Minimum execution time: 91_378_000 picoseconds. + Weight::from_parts(97_576_000, 0) .saturating_add(Weight::from_parts(0, 159279)) .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: `2079` // Estimated: `159279` - // Minimum execution time: 101_000_000 picoseconds. - Weight::from_parts(111_000_000, 0) + // Minimum execution time: 88_958_000 picoseconds. + Weight::from_parts(96_907_000, 0) .saturating_add(Weight::from_parts(0, 159279)) .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: `836` // Estimated: `317568` - // Minimum execution time: 135_000_000 picoseconds. - Weight::from_parts(153_000_000, 0) + // Minimum execution time: 157_534_000 picoseconds. + Weight::from_parts(171_947_000, 0) .saturating_add(Weight::from_parts(0, 317568)) .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: `735` // Estimated: `317568` - // Minimum execution time: 78_000_000 picoseconds. - Weight::from_parts(82_000_000, 0) + // Minimum execution time: 56_176_000 picoseconds. + Weight::from_parts(57_508_000, 0) .saturating_add(Weight::from_parts(0, 317568)) .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: `351` // Estimated: `4365` - // Minimum execution time: 38_000_000 picoseconds. - Weight::from_parts(39_000_000, 0) + // Minimum execution time: 26_914_000 picoseconds. + Weight::from_parts(27_811_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: `201` // Estimated: `4365` - // Minimum execution time: 18_000_000 picoseconds. - Weight::from_parts(19_000_000, 0) + // Minimum execution time: 13_379_000 picoseconds. + Weight::from_parts(13_974_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: `345` // Estimated: `317568` - // Minimum execution time: 45_000_000 picoseconds. - Weight::from_parts(46_000_000, 0) + // Minimum execution time: 31_646_000 picoseconds. + Weight::from_parts(32_544_000, 0) .saturating_add(Weight::from_parts(0, 317568)) .saturating_add(T::DbWeight::get().reads(3)) .saturating_add(T::DbWeight::get().writes(3)) @@ -213,8 +216,8 @@ impl pallet_referenda::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `587` // Estimated: `317568` - // Minimum execution time: 185_000_000 picoseconds. - Weight::from_parts(196_000_000, 0) + // Minimum execution time: 132_371_000 picoseconds. + Weight::from_parts(136_539_000, 0) .saturating_add(Weight::from_parts(0, 317568)) .saturating_add(T::DbWeight::get().reads(11)) .saturating_add(T::DbWeight::get().writes(6)) @@ -227,8 +230,8 @@ impl pallet_referenda::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `174` // Estimated: `4277` - // Minimum execution time: 12_000_000 picoseconds. - Weight::from_parts(15_000_000, 0) + // Minimum execution time: 10_603_000 picoseconds. + Weight::from_parts(11_050_000, 0) .saturating_add(Weight::from_parts(0, 4277)) .saturating_add(T::DbWeight::get().reads(2)) .saturating_add(T::DbWeight::get().writes(1)) @@ -245,8 +248,8 @@ impl pallet_referenda::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `2452` // Estimated: `159279` - // Minimum execution time: 82_000_000 picoseconds. - Weight::from_parts(90_000_000, 0) + // Minimum execution time: 81_112_000 picoseconds. + Weight::from_parts(84_597_000, 0) .saturating_add(Weight::from_parts(0, 159279)) .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: `2452` // Estimated: `159279` - // Minimum execution time: 91_000_000 picoseconds. - Weight::from_parts(99_000_000, 0) + // Minimum execution time: 80_533_000 picoseconds. + Weight::from_parts(86_465_000, 0) .saturating_add(Weight::from_parts(0, 159279)) .saturating_add(T::DbWeight::get().reads(4)) .saturating_add(T::DbWeight::get().writes(3)) @@ -277,8 +280,8 @@ impl pallet_referenda::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `1841` // Estimated: `4365` - // Minimum execution time: 41_000_000 picoseconds. - Weight::from_parts(44_000_000, 0) + // Minimum execution time: 41_884_000 picoseconds. + Weight::from_parts(45_816_000, 0) .saturating_add(Weight::from_parts(0, 4365)) .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: `1808` // Estimated: `4365` - // Minimum execution time: 46_000_000 picoseconds. - Weight::from_parts(55_000_000, 0) + // Minimum execution time: 41_814_000 picoseconds. + Weight::from_parts(45_722_000, 0) .saturating_add(Weight::from_parts(0, 4365)) .saturating_add(T::DbWeight::get().reads(2)) .saturating_add(T::DbWeight::get().writes(1)) @@ -307,8 +310,8 @@ impl pallet_referenda::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `1824` // Estimated: `4365` - // Minimum execution time: 49_000_000 picoseconds. - Weight::from_parts(53_000_000, 0) + // Minimum execution time: 50_100_000 picoseconds. + Weight::from_parts(53_175_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: `1865` // Estimated: `4365` - // Minimum execution time: 51_000_000 picoseconds. - Weight::from_parts(54_000_000, 0) + // Minimum execution time: 48_848_000 picoseconds. + Weight::from_parts(52_728_000, 0) .saturating_add(Weight::from_parts(0, 4365)) .saturating_add(T::DbWeight::get().reads(3)) .saturating_add(T::DbWeight::get().writes(2)) @@ -337,8 +340,8 @@ impl pallet_referenda::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `297` // Estimated: `159279` - // Minimum execution time: 28_000_000 picoseconds. - Weight::from_parts(30_000_000, 0) + // Minimum execution time: 21_687_000 picoseconds. + Weight::from_parts(22_523_000, 0) .saturating_add(Weight::from_parts(0, 159279)) .saturating_add(T::DbWeight::get().reads(2)) .saturating_add(T::DbWeight::get().writes(2)) @@ -351,8 +354,8 @@ impl pallet_referenda::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `345` // Estimated: `159279` - // Minimum execution time: 28_000_000 picoseconds. - Weight::from_parts(29_000_000, 0) + // Minimum execution time: 22_278_000 picoseconds. + Weight::from_parts(22_896_000, 0) .saturating_add(Weight::from_parts(0, 159279)) .saturating_add(T::DbWeight::get().reads(2)) .saturating_add(T::DbWeight::get().writes(2)) @@ -363,8 +366,8 @@ impl pallet_referenda::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `242` // Estimated: `4365` - // Minimum execution time: 20_000_000 picoseconds. - Weight::from_parts(21_000_000, 0) + // Minimum execution time: 14_820_000 picoseconds. + Weight::from_parts(15_402_000, 0) .saturating_add(Weight::from_parts(0, 4365)) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(1)) @@ -381,8 +384,8 @@ impl pallet_referenda::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `680` // Estimated: `159279` - // Minimum execution time: 42_000_000 picoseconds. - Weight::from_parts(47_000_000, 0) + // Minimum execution time: 32_542_000 picoseconds. + Weight::from_parts(33_583_000, 0) .saturating_add(Weight::from_parts(0, 159279)) .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: `781` // Estimated: `159279` - // Minimum execution time: 90_000_000 picoseconds. - Weight::from_parts(95_000_000, 0) + // Minimum execution time: 76_324_000 picoseconds. + Weight::from_parts(81_647_000, 0) .saturating_add(Weight::from_parts(0, 159279)) .saturating_add(T::DbWeight::get().reads(4)) .saturating_add(T::DbWeight::get().writes(3)) @@ -415,8 +418,8 @@ impl pallet_referenda::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `834` // Estimated: `159279` - // Minimum execution time: 84_000_000 picoseconds. - Weight::from_parts(93_000_000, 0) + // Minimum execution time: 122_123_000 picoseconds. + Weight::from_parts(136_472_000, 0) .saturating_add(Weight::from_parts(0, 159279)) .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: `817` // Estimated: `159279` - // Minimum execution time: 88_000_000 picoseconds. - Weight::from_parts(98_000_000, 0) + // Minimum execution time: 125_290_000 picoseconds. + Weight::from_parts(137_439_000, 0) .saturating_add(Weight::from_parts(0, 159279)) .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: `834` // Estimated: `159279` - // Minimum execution time: 81_000_000 picoseconds. - Weight::from_parts(93_000_000, 0) + // Minimum execution time: 122_627_000 picoseconds. + Weight::from_parts(130_056_000, 0) .saturating_add(Weight::from_parts(0, 159279)) .saturating_add(T::DbWeight::get().reads(3)) .saturating_add(T::DbWeight::get().writes(2)) @@ -463,8 +466,8 @@ impl pallet_referenda::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `838` // Estimated: `159279` - // Minimum execution time: 74_000_000 picoseconds. - Weight::from_parts(77_000_000, 0) + // Minimum execution time: 65_210_000 picoseconds. + Weight::from_parts(70_683_000, 0) .saturating_add(Weight::from_parts(0, 159279)) .saturating_add(T::DbWeight::get().reads(3)) .saturating_add(T::DbWeight::get().writes(2)) @@ -481,8 +484,8 @@ impl pallet_referenda::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `838` // Estimated: `317568` - // Minimum execution time: 105_000_000 picoseconds. - Weight::from_parts(123_000_000, 0) + // Minimum execution time: 133_658_000 picoseconds. + Weight::from_parts(146_750_000, 0) .saturating_add(Weight::from_parts(0, 317568)) .saturating_add(T::DbWeight::get().reads(5)) .saturating_add(T::DbWeight::get().writes(4)) @@ -497,8 +500,8 @@ impl pallet_referenda::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `834` // Estimated: `159279` - // Minimum execution time: 90_000_000 picoseconds. - Weight::from_parts(100_000_000, 0) + // Minimum execution time: 117_816_000 picoseconds. + Weight::from_parts(133_904_000, 0) .saturating_add(Weight::from_parts(0, 159279)) .saturating_add(T::DbWeight::get().reads(3)) .saturating_add(T::DbWeight::get().writes(2)) @@ -507,16 +510,18 @@ impl pallet_referenda::WeightInfo for WeightInfo { /// Proof: `FellowshipReferenda::ReferendumInfoFor` (`max_values`: None, `max_size`: Some(900), added: 3375, mode: `MaxEncodedLen`) /// Storage: `Preimage::StatusFor` (r:1 w:0) /// Proof: `Preimage::StatusFor` (`max_values`: None, `max_size`: Some(91), added: 2566, mode: `MaxEncodedLen`) + /// Storage: `Preimage::RequestStatusFor` (r:1 w:0) + /// Proof: `Preimage::RequestStatusFor` (`max_values`: None, `max_size`: Some(91), added: 2566, mode: `MaxEncodedLen`) /// Storage: `FellowshipReferenda::MetadataOf` (r:0 w:1) /// Proof: `FellowshipReferenda::MetadataOf` (`max_values`: None, `max_size`: Some(52), added: 2527, mode: `MaxEncodedLen`) fn set_some_metadata() -> Weight { // Proof Size summary in bytes: // Measured: `453` // Estimated: `4365` - // Minimum execution time: 24_000_000 picoseconds. - Weight::from_parts(24_000_000, 0) + // Minimum execution time: 20_424_000 picoseconds. + Weight::from_parts(21_241_000, 0) .saturating_add(Weight::from_parts(0, 4365)) - .saturating_add(T::DbWeight::get().reads(2)) + .saturating_add(T::DbWeight::get().reads(3)) .saturating_add(T::DbWeight::get().writes(1)) } /// Storage: `FellowshipReferenda::ReferendumInfoFor` (r:1 w:0) @@ -527,8 +532,8 @@ impl pallet_referenda::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `319` // Estimated: `4365` - // Minimum execution time: 21_000_000 picoseconds. - Weight::from_parts(23_000_000, 0) + // Minimum execution time: 16_717_000 picoseconds. + Weight::from_parts(17_274_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/cumulus/parachains/runtimes/collectives/collectives-westend/src/weights/pallet_salary_ambassador_salary.rs b/cumulus/parachains/runtimes/collectives/collectives-westend/src/weights/pallet_salary_ambassador_salary.rs index 3dd473501f3d..edbd4a408618 100644 --- a/cumulus/parachains/runtimes/collectives/collectives-westend/src/weights/pallet_salary_ambassador_salary.rs +++ b/cumulus/parachains/runtimes/collectives/collectives-westend/src/weights/pallet_salary_ambassador_salary.rs @@ -1,4 +1,4 @@ -// Copyright Parity Technologies (UK) Ltd. +// Copyright (C) Parity Technologies (UK) Ltd. // This file is part of Cumulus. // Cumulus is free software: you can redistribute it and/or modify @@ -17,24 +17,27 @@ //! Autogenerated weights for `pallet_salary` //! //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev -//! DATE: 2023-08-11, STEPS: `2`, REPEAT: `2`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! DATE: 2023-10-25, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` //! WORST CASE MAP SIZE: `1000000` -//! HOSTNAME: `cob`, CPU: `` +//! HOSTNAME: `runner-ayothjw6-project-674-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz` //! WASM-EXECUTION: `Compiled`, CHAIN: `Some("collectives-westend-dev")`, DB CACHE: 1024 // Executed Command: -// target/release/polkadot-parachain +// ./target/production/polkadot-parachain // benchmark // pallet // --chain=collectives-westend-dev // --wasm-execution=compiled // --pallet=pallet_salary +// --no-storage-info +// --no-median-slopes +// --no-min-squares // --extrinsic=* -// --steps=2 -// --repeat=2 +// --steps=50 +// --repeat=20 // --json -// --header=./file_header.txt -// --output=./parachains/runtimes/collectives/collectives-westend/src/weights/ +// --header=./cumulus/file_header.txt +// --output=./cumulus/parachains/runtimes/collectives/collectives-westend/src/weights/ #![cfg_attr(rustfmt, rustfmt_skip)] #![allow(unused_parens)] @@ -53,8 +56,8 @@ impl pallet_salary::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `109` // Estimated: `1541` - // Minimum execution time: 12_000_000 picoseconds. - Weight::from_parts(14_000_000, 0) + // Minimum execution time: 7_067_000 picoseconds. + Weight::from_parts(7_373_000, 0) .saturating_add(Weight::from_parts(0, 1541)) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(1)) @@ -65,8 +68,8 @@ impl pallet_salary::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `191` // Estimated: `1541` - // Minimum execution time: 15_000_000 picoseconds. - Weight::from_parts(16_000_000, 0) + // Minimum execution time: 9_393_000 picoseconds. + Weight::from_parts(9_754_000, 0) .saturating_add(Weight::from_parts(0, 1541)) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(1)) @@ -81,8 +84,8 @@ impl pallet_salary::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `400` // Estimated: `3551` - // Minimum execution time: 23_000_000 picoseconds. - Weight::from_parts(23_000_000, 0) + // Minimum execution time: 16_225_000 picoseconds. + Weight::from_parts(16_717_000, 0) .saturating_add(Weight::from_parts(0, 3551)) .saturating_add(T::DbWeight::get().reads(3)) .saturating_add(T::DbWeight::get().writes(1)) @@ -97,8 +100,8 @@ impl pallet_salary::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `467` // Estimated: `3551` - // Minimum execution time: 27_000_000 picoseconds. - Weight::from_parts(28_000_000, 0) + // Minimum execution time: 19_128_000 picoseconds. + Weight::from_parts(19_719_000, 0) .saturating_add(Weight::from_parts(0, 3551)) .saturating_add(T::DbWeight::get().reads(3)) .saturating_add(T::DbWeight::get().writes(2)) @@ -131,8 +134,8 @@ impl pallet_salary::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `879` // Estimated: `4344` - // Minimum execution time: 68_000_000 picoseconds. - Weight::from_parts(72_000_000, 0) + // Minimum execution time: 53_467_000 picoseconds. + Weight::from_parts(55_285_000, 0) .saturating_add(Weight::from_parts(0, 4344)) .saturating_add(T::DbWeight::get().reads(10)) .saturating_add(T::DbWeight::get().writes(7)) @@ -165,8 +168,8 @@ impl pallet_salary::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `879` // Estimated: `4344` - // Minimum execution time: 69_000_000 picoseconds. - Weight::from_parts(70_000_000, 0) + // Minimum execution time: 54_037_000 picoseconds. + Weight::from_parts(55_603_000, 0) .saturating_add(Weight::from_parts(0, 4344)) .saturating_add(T::DbWeight::get().reads(10)) .saturating_add(T::DbWeight::get().writes(7)) @@ -181,8 +184,8 @@ impl pallet_salary::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `479` // Estimated: `3944` - // Minimum execution time: 27_000_000 picoseconds. - Weight::from_parts(28_000_000, 0) + // Minimum execution time: 20_727_000 picoseconds. + Weight::from_parts(21_327_000, 0) .saturating_add(Weight::from_parts(0, 3944)) .saturating_add(T::DbWeight::get().reads(3)) .saturating_add(T::DbWeight::get().writes(3)) diff --git a/cumulus/parachains/runtimes/collectives/collectives-westend/src/weights/pallet_salary_fellowship_salary.rs b/cumulus/parachains/runtimes/collectives/collectives-westend/src/weights/pallet_salary_fellowship_salary.rs index a187066e8043..fbc953f4b3d6 100644 --- a/cumulus/parachains/runtimes/collectives/collectives-westend/src/weights/pallet_salary_fellowship_salary.rs +++ b/cumulus/parachains/runtimes/collectives/collectives-westend/src/weights/pallet_salary_fellowship_salary.rs @@ -17,24 +17,27 @@ //! Autogenerated weights for `pallet_salary` //! //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev -//! DATE: 2023-08-11, STEPS: `2`, REPEAT: `2`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! DATE: 2023-10-25, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` //! WORST CASE MAP SIZE: `1000000` -//! HOSTNAME: `cob`, CPU: `` +//! HOSTNAME: `runner-ayothjw6-project-674-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz` //! WASM-EXECUTION: `Compiled`, CHAIN: `Some("collectives-westend-dev")`, DB CACHE: 1024 // Executed Command: -// target/release/polkadot-parachain +// ./target/production/polkadot-parachain // benchmark // pallet // --chain=collectives-westend-dev // --wasm-execution=compiled // --pallet=pallet_salary +// --no-storage-info +// --no-median-slopes +// --no-min-squares // --extrinsic=* -// --steps=2 -// --repeat=2 +// --steps=50 +// --repeat=20 // --json -// --header=./file_header.txt -// --output=./parachains/runtimes/collectives/collectives-westend/src/weights/ +// --header=./cumulus/file_header.txt +// --output=./cumulus/parachains/runtimes/collectives/collectives-westend/src/weights/ #![cfg_attr(rustfmt, rustfmt_skip)] #![allow(unused_parens)] @@ -53,8 +56,8 @@ impl pallet_salary::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `142` // Estimated: `1541` - // Minimum execution time: 13_000_000 picoseconds. - Weight::from_parts(17_000_000, 0) + // Minimum execution time: 7_030_000 picoseconds. + Weight::from_parts(7_451_000, 0) .saturating_add(Weight::from_parts(0, 1541)) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(1)) @@ -65,8 +68,8 @@ impl pallet_salary::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `224` // Estimated: `1541` - // Minimum execution time: 15_000_000 picoseconds. - Weight::from_parts(18_000_000, 0) + // Minimum execution time: 9_149_000 picoseconds. + Weight::from_parts(9_663_000, 0) .saturating_add(Weight::from_parts(0, 1541)) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(1)) @@ -81,8 +84,8 @@ impl pallet_salary::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `395` // Estimated: `3551` - // Minimum execution time: 22_000_000 picoseconds. - Weight::from_parts(25_000_000, 0) + // Minimum execution time: 15_852_000 picoseconds. + Weight::from_parts(16_530_000, 0) .saturating_add(Weight::from_parts(0, 3551)) .saturating_add(T::DbWeight::get().reads(3)) .saturating_add(T::DbWeight::get().writes(1)) @@ -97,8 +100,8 @@ impl pallet_salary::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `462` // Estimated: `3551` - // Minimum execution time: 26_000_000 picoseconds. - Weight::from_parts(29_000_000, 0) + // Minimum execution time: 18_808_000 picoseconds. + Weight::from_parts(19_433_000, 0) .saturating_add(Weight::from_parts(0, 3551)) .saturating_add(T::DbWeight::get().reads(3)) .saturating_add(T::DbWeight::get().writes(2)) @@ -131,8 +134,8 @@ impl pallet_salary::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `774` // Estimated: `4239` - // Minimum execution time: 67_000_000 picoseconds. - Weight::from_parts(74_000_000, 0) + // Minimum execution time: 50_413_000 picoseconds. + Weight::from_parts(52_197_000, 0) .saturating_add(Weight::from_parts(0, 4239)) .saturating_add(T::DbWeight::get().reads(10)) .saturating_add(T::DbWeight::get().writes(7)) @@ -165,8 +168,8 @@ impl pallet_salary::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `774` // Estimated: `4239` - // Minimum execution time: 66_000_000 picoseconds. - Weight::from_parts(71_000_000, 0) + // Minimum execution time: 50_741_000 picoseconds. + Weight::from_parts(52_948_000, 0) .saturating_add(Weight::from_parts(0, 4239)) .saturating_add(T::DbWeight::get().reads(10)) .saturating_add(T::DbWeight::get().writes(7)) @@ -181,8 +184,8 @@ impl pallet_salary::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `512` // Estimated: `3977` - // Minimum execution time: 26_000_000 picoseconds. - Weight::from_parts(27_000_000, 0) + // Minimum execution time: 20_843_000 picoseconds. + Weight::from_parts(21_486_000, 0) .saturating_add(Weight::from_parts(0, 3977)) .saturating_add(T::DbWeight::get().reads(3)) .saturating_add(T::DbWeight::get().writes(3)) diff --git a/cumulus/parachains/runtimes/collectives/collectives-westend/src/weights/pallet_scheduler.rs b/cumulus/parachains/runtimes/collectives/collectives-westend/src/weights/pallet_scheduler.rs index 02fab7883644..20b7dd2b3f3d 100644 --- a/cumulus/parachains/runtimes/collectives/collectives-westend/src/weights/pallet_scheduler.rs +++ b/cumulus/parachains/runtimes/collectives/collectives-westend/src/weights/pallet_scheduler.rs @@ -17,10 +17,10 @@ //! Autogenerated weights for `pallet_scheduler` //! //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev -//! DATE: 2023-07-31, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! DATE: 2023-10-25, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` //! WORST CASE MAP SIZE: `1000000` -//! HOSTNAME: `runner-ynta1nyy-project-238-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz` -//! EXECUTION: ``, WASM-EXECUTION: `Compiled`, CHAIN: `Some("collectives-westend-dev")`, DB CACHE: 1024 +//! HOSTNAME: `runner-ayothjw6-project-674-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz` +//! WASM-EXECUTION: `Compiled`, CHAIN: `Some("collectives-westend-dev")`, DB CACHE: 1024 // Executed Command: // ./target/production/polkadot-parachain @@ -36,8 +36,8 @@ // --steps=50 // --repeat=20 // --json -// --header=./file_header.txt -// --output=./parachains/runtimes/collectives/collectives-westend/src/weights/ +// --header=./cumulus/file_header.txt +// --output=./cumulus/parachains/runtimes/collectives/collectives-westend/src/weights/ #![cfg_attr(rustfmt, rustfmt_skip)] #![allow(unused_parens)] @@ -56,8 +56,8 @@ impl pallet_scheduler::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `31` // Estimated: `1489` - // Minimum execution time: 3_441_000 picoseconds. - Weight::from_parts(3_604_000, 0) + // Minimum execution time: 2_621_000 picoseconds. + Weight::from_parts(2_755_000, 0) .saturating_add(Weight::from_parts(0, 1489)) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(1)) @@ -69,11 +69,11 @@ impl pallet_scheduler::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `77 + s * (177 ±0)` // Estimated: `159279` - // Minimum execution time: 2_879_000 picoseconds. - Weight::from_parts(2_963_000, 0) + // Minimum execution time: 3_046_000 picoseconds. + Weight::from_parts(964_288, 0) .saturating_add(Weight::from_parts(0, 159279)) - // Standard Error: 3_764 - .saturating_add(Weight::from_parts(909_557, 0).saturating_mul(s.into())) + // Standard Error: 5_268 + .saturating_add(Weight::from_parts(885_980, 0).saturating_mul(s.into())) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(1)) } @@ -81,25 +81,27 @@ impl pallet_scheduler::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 5_172_000 picoseconds. - Weight::from_parts(5_294_000, 0) + // Minimum execution time: 3_684_000 picoseconds. + Weight::from_parts(3_803_000, 0) .saturating_add(Weight::from_parts(0, 0)) } /// Storage: `Preimage::PreimageFor` (r:1 w:1) /// Proof: `Preimage::PreimageFor` (`max_values`: None, `max_size`: Some(4194344), added: 4196819, mode: `Measured`) - /// Storage: `Preimage::StatusFor` (r:1 w:1) + /// Storage: `Preimage::StatusFor` (r:1 w:0) /// Proof: `Preimage::StatusFor` (`max_values`: None, `max_size`: Some(91), added: 2566, mode: `MaxEncodedLen`) + /// Storage: `Preimage::RequestStatusFor` (r:1 w:1) + /// Proof: `Preimage::RequestStatusFor` (`max_values`: None, `max_size`: Some(91), added: 2566, mode: `MaxEncodedLen`) /// The range of component `s` is `[128, 4194304]`. fn service_task_fetched(s: u32, ) -> Weight { // Proof Size summary in bytes: - // Measured: `213 + s * (1 ±0)` - // Estimated: `3678 + s * (1 ±0)` - // Minimum execution time: 19_704_000 picoseconds. - Weight::from_parts(19_903_000, 0) - .saturating_add(Weight::from_parts(0, 3678)) - // Standard Error: 5 - .saturating_add(Weight::from_parts(1_394, 0).saturating_mul(s.into())) - .saturating_add(T::DbWeight::get().reads(2)) + // Measured: `246 + s * (1 ±0)` + // Estimated: `3711 + s * (1 ±0)` + // Minimum execution time: 18_198_000 picoseconds. + Weight::from_parts(18_437_000, 0) + .saturating_add(Weight::from_parts(0, 3711)) + // Standard Error: 11 + .saturating_add(Weight::from_parts(1_333, 0).saturating_mul(s.into())) + .saturating_add(T::DbWeight::get().reads(3)) .saturating_add(T::DbWeight::get().writes(2)) .saturating_add(Weight::from_parts(0, 1).saturating_mul(s.into())) } @@ -109,8 +111,8 @@ impl pallet_scheduler::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 6_359_000 picoseconds. - Weight::from_parts(6_599_000, 0) + // Minimum execution time: 4_886_000 picoseconds. + Weight::from_parts(5_122_000, 0) .saturating_add(Weight::from_parts(0, 0)) .saturating_add(T::DbWeight::get().writes(1)) } @@ -118,24 +120,24 @@ impl pallet_scheduler::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 5_217_000 picoseconds. - Weight::from_parts(5_333_000, 0) + // Minimum execution time: 3_727_000 picoseconds. + Weight::from_parts(3_798_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_406_000 picoseconds. - Weight::from_parts(2_541_000, 0) + // Minimum execution time: 2_389_000 picoseconds. + Weight::from_parts(2_489_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_370_000 picoseconds. - Weight::from_parts(2_561_000, 0) + // Minimum execution time: 2_335_000 picoseconds. + Weight::from_parts(2_395_000, 0) .saturating_add(Weight::from_parts(0, 0)) } /// Storage: `Scheduler::Agenda` (r:1 w:1) @@ -145,11 +147,11 @@ impl pallet_scheduler::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `77 + s * (177 ±0)` // Estimated: `159279` - // Minimum execution time: 11_784_000 picoseconds. - Weight::from_parts(5_574_404, 0) + // Minimum execution time: 9_877_000 picoseconds. + Weight::from_parts(7_658_283, 0) .saturating_add(Weight::from_parts(0, 159279)) - // Standard Error: 7_217 - .saturating_add(Weight::from_parts(1_035_248, 0).saturating_mul(s.into())) + // Standard Error: 5_499 + .saturating_add(Weight::from_parts(922_597, 0).saturating_mul(s.into())) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(1)) } @@ -162,11 +164,11 @@ impl pallet_scheduler::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `77 + s * (177 ±0)` // Estimated: `159279` - // Minimum execution time: 16_373_000 picoseconds. - Weight::from_parts(3_088_135, 0) + // Minimum execution time: 14_506_000 picoseconds. + Weight::from_parts(8_189_771, 0) .saturating_add(Weight::from_parts(0, 159279)) - // Standard Error: 7_095 - .saturating_add(Weight::from_parts(1_745_270, 0).saturating_mul(s.into())) + // Standard Error: 6_295 + .saturating_add(Weight::from_parts(1_611_580, 0).saturating_mul(s.into())) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(2)) } @@ -179,11 +181,11 @@ impl pallet_scheduler::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `468 + s * (179 ±0)` // Estimated: `159279` - // Minimum execution time: 14_822_000 picoseconds. - Weight::from_parts(9_591_402, 0) + // Minimum execution time: 13_128_000 picoseconds. + Weight::from_parts(13_023_268, 0) .saturating_add(Weight::from_parts(0, 159279)) - // Standard Error: 7_151 - .saturating_add(Weight::from_parts(1_058_408, 0).saturating_mul(s.into())) + // Standard Error: 5_697 + .saturating_add(Weight::from_parts(930_290, 0).saturating_mul(s.into())) .saturating_add(T::DbWeight::get().reads(2)) .saturating_add(T::DbWeight::get().writes(2)) } @@ -196,11 +198,11 @@ impl pallet_scheduler::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `509 + s * (179 ±0)` // Estimated: `159279` - // Minimum execution time: 18_541_000 picoseconds. - Weight::from_parts(6_522_239, 0) + // Minimum execution time: 16_975_000 picoseconds. + Weight::from_parts(12_688_849, 0) .saturating_add(Weight::from_parts(0, 159279)) - // Standard Error: 8_349 - .saturating_add(Weight::from_parts(1_760_431, 0).saturating_mul(s.into())) + // Standard Error: 6_234 + .saturating_add(Weight::from_parts(1_612_813, 0).saturating_mul(s.into())) .saturating_add(T::DbWeight::get().reads(2)) .saturating_add(T::DbWeight::get().writes(2)) } diff --git a/cumulus/parachains/runtimes/collectives/collectives-westend/src/weights/pallet_session.rs b/cumulus/parachains/runtimes/collectives/collectives-westend/src/weights/pallet_session.rs index f8248cfbb1ed..fc8e70e9fe94 100644 --- a/cumulus/parachains/runtimes/collectives/collectives-westend/src/weights/pallet_session.rs +++ b/cumulus/parachains/runtimes/collectives/collectives-westend/src/weights/pallet_session.rs @@ -17,10 +17,10 @@ //! Autogenerated weights for `pallet_session` //! //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev -//! DATE: 2023-07-31, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! DATE: 2023-10-25, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` //! WORST CASE MAP SIZE: `1000000` -//! HOSTNAME: `runner-ynta1nyy-project-238-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz` -//! EXECUTION: ``, WASM-EXECUTION: `Compiled`, CHAIN: `Some("collectives-westend-dev")`, DB CACHE: 1024 +//! HOSTNAME: `runner-ayothjw6-project-674-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz` +//! WASM-EXECUTION: `Compiled`, CHAIN: `Some("collectives-westend-dev")`, DB CACHE: 1024 // Executed Command: // ./target/production/polkadot-parachain @@ -36,8 +36,8 @@ // --steps=50 // --repeat=20 // --json -// --header=./file_header.txt -// --output=./parachains/runtimes/collectives/collectives-westend/src/weights/ +// --header=./cumulus/file_header.txt +// --output=./cumulus/parachains/runtimes/collectives/collectives-westend/src/weights/ #![cfg_attr(rustfmt, rustfmt_skip)] #![allow(unused_parens)] @@ -58,8 +58,8 @@ impl pallet_session::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `270` // Estimated: `3735` - // Minimum execution time: 16_663_000 picoseconds. - Weight::from_parts(17_246_000, 0) + // Minimum execution time: 16_320_000 picoseconds. + Weight::from_parts(16_832_000, 0) .saturating_add(Weight::from_parts(0, 3735)) .saturating_add(T::DbWeight::get().reads(2)) .saturating_add(T::DbWeight::get().writes(2)) @@ -72,8 +72,8 @@ impl pallet_session::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `242` // Estimated: `3707` - // Minimum execution time: 11_850_000 picoseconds. - Weight::from_parts(12_204_000, 0) + // Minimum execution time: 11_526_000 picoseconds. + Weight::from_parts(11_944_000, 0) .saturating_add(Weight::from_parts(0, 3707)) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(2)) diff --git a/cumulus/parachains/runtimes/collectives/collectives-westend/src/weights/pallet_timestamp.rs b/cumulus/parachains/runtimes/collectives/collectives-westend/src/weights/pallet_timestamp.rs index 91f3636d8f7f..bfeb32d53d2c 100644 --- a/cumulus/parachains/runtimes/collectives/collectives-westend/src/weights/pallet_timestamp.rs +++ b/cumulus/parachains/runtimes/collectives/collectives-westend/src/weights/pallet_timestamp.rs @@ -17,10 +17,10 @@ //! Autogenerated weights for `pallet_timestamp` //! //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev -//! DATE: 2023-07-31, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! DATE: 2023-10-25, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` //! WORST CASE MAP SIZE: `1000000` -//! HOSTNAME: `runner-ynta1nyy-project-238-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz` -//! EXECUTION: ``, WASM-EXECUTION: `Compiled`, CHAIN: `Some("collectives-westend-dev")`, DB CACHE: 1024 +//! HOSTNAME: `runner-ayothjw6-project-674-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz` +//! WASM-EXECUTION: `Compiled`, CHAIN: `Some("collectives-westend-dev")`, DB CACHE: 1024 // Executed Command: // ./target/production/polkadot-parachain @@ -36,8 +36,8 @@ // --steps=50 // --repeat=20 // --json -// --header=./file_header.txt -// --output=./parachains/runtimes/collectives/collectives-westend/src/weights/ +// --header=./cumulus/file_header.txt +// --output=./cumulus/parachains/runtimes/collectives/collectives-westend/src/weights/ #![cfg_attr(rustfmt, rustfmt_skip)] #![allow(unused_parens)] @@ -58,8 +58,8 @@ impl pallet_timestamp::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `49` // Estimated: `1493` - // Minimum execution time: 7_863_000 picoseconds. - Weight::from_parts(8_183_000, 0) + // Minimum execution time: 5_620_000 picoseconds. + Weight::from_parts(5_958_000, 0) .saturating_add(Weight::from_parts(0, 1493)) .saturating_add(T::DbWeight::get().reads(2)) .saturating_add(T::DbWeight::get().writes(1)) @@ -68,8 +68,8 @@ impl pallet_timestamp::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `57` // Estimated: `0` - // Minimum execution time: 3_460_000 picoseconds. - Weight::from_parts(3_577_000, 0) + // Minimum execution time: 2_892_000 picoseconds. + Weight::from_parts(3_074_000, 0) .saturating_add(Weight::from_parts(0, 0)) } } diff --git a/cumulus/parachains/runtimes/collectives/collectives-westend/src/weights/pallet_utility.rs b/cumulus/parachains/runtimes/collectives/collectives-westend/src/weights/pallet_utility.rs index 73e51a2739e1..69f53639ab39 100644 --- a/cumulus/parachains/runtimes/collectives/collectives-westend/src/weights/pallet_utility.rs +++ b/cumulus/parachains/runtimes/collectives/collectives-westend/src/weights/pallet_utility.rs @@ -17,10 +17,10 @@ //! Autogenerated weights for `pallet_utility` //! //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev -//! DATE: 2023-07-31, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! DATE: 2023-10-25, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` //! WORST CASE MAP SIZE: `1000000` -//! HOSTNAME: `runner-ynta1nyy-project-238-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz` -//! EXECUTION: ``, WASM-EXECUTION: `Compiled`, CHAIN: `Some("collectives-westend-dev")`, DB CACHE: 1024 +//! HOSTNAME: `runner-ayothjw6-project-674-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz` +//! WASM-EXECUTION: `Compiled`, CHAIN: `Some("collectives-westend-dev")`, DB CACHE: 1024 // Executed Command: // ./target/production/polkadot-parachain @@ -36,8 +36,8 @@ // --steps=50 // --repeat=20 // --json -// --header=./file_header.txt -// --output=./parachains/runtimes/collectives/collectives-westend/src/weights/ +// --header=./cumulus/file_header.txt +// --output=./cumulus/parachains/runtimes/collectives/collectives-westend/src/weights/ #![cfg_attr(rustfmt, rustfmt_skip)] #![allow(unused_parens)] @@ -55,18 +55,18 @@ impl pallet_utility::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 6_650_000 picoseconds. - Weight::from_parts(7_474_437, 0) + // Minimum execution time: 4_903_000 picoseconds. + Weight::from_parts(13_041_734, 0) .saturating_add(Weight::from_parts(0, 0)) - // Standard Error: 1_625 - .saturating_add(Weight::from_parts(4_996_146, 0).saturating_mul(c.into())) + // Standard Error: 2_457 + .saturating_add(Weight::from_parts(3_522_275, 0).saturating_mul(c.into())) } fn as_derivative() -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 4_612_000 picoseconds. - Weight::from_parts(4_774_000, 0) + // Minimum execution time: 4_560_000 picoseconds. + Weight::from_parts(4_705_000, 0) .saturating_add(Weight::from_parts(0, 0)) } /// The range of component `c` is `[0, 1000]`. @@ -74,18 +74,18 @@ impl pallet_utility::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 6_744_000 picoseconds. - Weight::from_parts(10_889_913, 0) + // Minimum execution time: 4_895_000 picoseconds. + Weight::from_parts(12_683_290, 0) .saturating_add(Weight::from_parts(0, 0)) - // Standard Error: 1_281 - .saturating_add(Weight::from_parts(5_218_293, 0).saturating_mul(c.into())) + // Standard Error: 2_387 + .saturating_add(Weight::from_parts(3_684_469, 0).saturating_mul(c.into())) } fn dispatch_as() -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 8_673_000 picoseconds. - Weight::from_parts(8_980_000, 0) + // Minimum execution time: 7_017_000 picoseconds. + Weight::from_parts(7_254_000, 0) .saturating_add(Weight::from_parts(0, 0)) } /// The range of component `c` is `[0, 1000]`. @@ -93,10 +93,10 @@ impl pallet_utility::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 6_744_000 picoseconds. - Weight::from_parts(7_801_721, 0) + // Minimum execution time: 4_917_000 picoseconds. + Weight::from_parts(7_272_331, 0) .saturating_add(Weight::from_parts(0, 0)) - // Standard Error: 1_395 - .saturating_add(Weight::from_parts(5_000_971, 0).saturating_mul(c.into())) + // Standard Error: 2_227 + .saturating_add(Weight::from_parts(3_544_626, 0).saturating_mul(c.into())) } } diff --git a/cumulus/parachains/runtimes/collectives/collectives-westend/src/weights/pallet_xcm.rs b/cumulus/parachains/runtimes/collectives/collectives-westend/src/weights/pallet_xcm.rs index 0b800c3274d1..a6db046506e8 100644 --- a/cumulus/parachains/runtimes/collectives/collectives-westend/src/weights/pallet_xcm.rs +++ b/cumulus/parachains/runtimes/collectives/collectives-westend/src/weights/pallet_xcm.rs @@ -17,10 +17,10 @@ //! Autogenerated weights for `pallet_xcm` //! //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev -//! DATE: 2023-07-31, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! DATE: 2023-10-25, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` //! WORST CASE MAP SIZE: `1000000` -//! HOSTNAME: `runner-ynta1nyy-project-238-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz` -//! EXECUTION: ``, WASM-EXECUTION: `Compiled`, CHAIN: `Some("collectives-westend-dev")`, DB CACHE: 1024 +//! HOSTNAME: `runner-ayothjw6-project-674-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz` +//! WASM-EXECUTION: `Compiled`, CHAIN: `Some("collectives-westend-dev")`, DB CACHE: 1024 // Executed Command: // ./target/production/polkadot-parachain @@ -36,8 +36,8 @@ // --steps=50 // --repeat=20 // --json -// --header=./file_header.txt -// --output=./parachains/runtimes/collectives/collectives-westend/src/weights/ +// --header=./cumulus/file_header.txt +// --output=./cumulus/parachains/runtimes/collectives/collectives-westend/src/weights/ #![cfg_attr(rustfmt, rustfmt_skip)] #![allow(unused_parens)] @@ -62,11 +62,11 @@ impl pallet_xcm::WeightInfo for WeightInfo { /// Proof: `ParachainSystem::PendingUpwardMessages` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) fn send() -> Weight { // Proof Size summary in bytes: - // Measured: `111` - // Estimated: `3576` - // Minimum execution time: 27_795_000 picoseconds. - Weight::from_parts(28_215_000, 0) - .saturating_add(Weight::from_parts(0, 3576)) + // Measured: `145` + // Estimated: `3610` + // Minimum execution time: 24_583_000 picoseconds. + Weight::from_parts(25_312_000, 0) + .saturating_add(Weight::from_parts(0, 3610)) .saturating_add(T::DbWeight::get().reads(5)) .saturating_add(T::DbWeight::get().writes(2)) } @@ -74,10 +74,10 @@ impl pallet_xcm::WeightInfo for WeightInfo { /// Proof: `ParachainInfo::ParachainId` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`) fn teleport_assets() -> Weight { // Proof Size summary in bytes: - // Measured: `32` + // Measured: `69` // Estimated: `1489` - // Minimum execution time: 23_847_000 picoseconds. - Weight::from_parts(24_332_000, 0) + // Minimum execution time: 21_554_000 picoseconds. + Weight::from_parts(21_870_000, 0) .saturating_add(Weight::from_parts(0, 1489)) .saturating_add(T::DbWeight::get().reads(1)) } @@ -107,8 +107,8 @@ impl pallet_xcm::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 8_885_000 picoseconds. - Weight::from_parts(9_128_000, 0) + // Minimum execution time: 7_070_000 picoseconds. + Weight::from_parts(7_346_000, 0) .saturating_add(Weight::from_parts(0, 0)) .saturating_add(T::DbWeight::get().writes(1)) } @@ -118,8 +118,8 @@ impl pallet_xcm::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 2_670_000 picoseconds. - Weight::from_parts(2_815_000, 0) + // Minimum execution time: 2_257_000 picoseconds. + Weight::from_parts(2_360_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: `PolkadotXcm::Queries` (`max_values`: None, `max_size`: None, mode: `Measured`) fn force_subscribe_version_notify() -> Weight { // Proof Size summary in bytes: - // Measured: `111` - // Estimated: `3576` - // Minimum execution time: 32_214_000 picoseconds. - Weight::from_parts(32_989_000, 0) - .saturating_add(Weight::from_parts(0, 3576)) + // Measured: `145` + // Estimated: `3610` + // Minimum execution time: 28_524_000 picoseconds. + Weight::from_parts(29_376_000, 0) + .saturating_add(Weight::from_parts(0, 3610)) .saturating_add(T::DbWeight::get().reads(7)) .saturating_add(T::DbWeight::get().writes(5)) } @@ -165,11 +165,11 @@ impl pallet_xcm::WeightInfo for WeightInfo { /// Proof: `PolkadotXcm::Queries` (`max_values`: None, `max_size`: None, mode: `Measured`) fn force_unsubscribe_version_notify() -> Weight { // Proof Size summary in bytes: - // Measured: `294` - // Estimated: `3759` - // Minimum execution time: 33_638_000 picoseconds. - Weight::from_parts(34_206_000, 0) - .saturating_add(Weight::from_parts(0, 3759)) + // Measured: `363` + // Estimated: `3828` + // Minimum execution time: 30_784_000 picoseconds. + Weight::from_parts(31_606_000, 0) + .saturating_add(Weight::from_parts(0, 3828)) .saturating_add(T::DbWeight::get().reads(6)) .saturating_add(T::DbWeight::get().writes(4)) } @@ -179,8 +179,8 @@ impl pallet_xcm::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 2_602_000 picoseconds. - Weight::from_parts(2_730_000, 0) + // Minimum execution time: 2_325_000 picoseconds. + Weight::from_parts(2_438_000, 0) .saturating_add(Weight::from_parts(0, 0)) .saturating_add(T::DbWeight::get().writes(1)) } @@ -188,11 +188,11 @@ impl pallet_xcm::WeightInfo for WeightInfo { /// Proof: `PolkadotXcm::SupportedVersion` (`max_values`: None, `max_size`: None, mode: `Measured`) fn migrate_supported_version() -> Weight { // Proof Size summary in bytes: - // Measured: `129` - // Estimated: `11019` - // Minimum execution time: 16_199_000 picoseconds. - Weight::from_parts(16_833_000, 0) - .saturating_add(Weight::from_parts(0, 11019)) + // Measured: `162` + // Estimated: `11052` + // Minimum execution time: 16_417_000 picoseconds. + Weight::from_parts(16_768_000, 0) + .saturating_add(Weight::from_parts(0, 11052)) .saturating_add(T::DbWeight::get().reads(4)) .saturating_add(T::DbWeight::get().writes(2)) } @@ -200,11 +200,11 @@ impl pallet_xcm::WeightInfo for WeightInfo { /// Proof: `PolkadotXcm::VersionNotifiers` (`max_values`: None, `max_size`: None, mode: `Measured`) fn migrate_version_notifiers() -> Weight { // Proof Size summary in bytes: - // Measured: `133` - // Estimated: `11023` - // Minimum execution time: 16_561_000 picoseconds. - Weight::from_parts(16_872_000, 0) - .saturating_add(Weight::from_parts(0, 11023)) + // Measured: `166` + // Estimated: `11056` + // Minimum execution time: 16_447_000 picoseconds. + Weight::from_parts(16_699_000, 0) + .saturating_add(Weight::from_parts(0, 11056)) .saturating_add(T::DbWeight::get().reads(4)) .saturating_add(T::DbWeight::get().writes(2)) } @@ -212,11 +212,11 @@ impl pallet_xcm::WeightInfo for WeightInfo { /// Proof: `PolkadotXcm::VersionNotifyTargets` (`max_values`: None, `max_size`: None, mode: `Measured`) fn already_notified_target() -> Weight { // Proof Size summary in bytes: - // Measured: `140` - // Estimated: `13505` - // Minimum execution time: 17_812_000 picoseconds. - Weight::from_parts(20_036_000, 0) - .saturating_add(Weight::from_parts(0, 13505)) + // Measured: `173` + // Estimated: `13538` + // Minimum execution time: 17_725_000 picoseconds. + Weight::from_parts(18_067_000, 0) + .saturating_add(Weight::from_parts(0, 13538)) .saturating_add(T::DbWeight::get().reads(5)) } /// Storage: `PolkadotXcm::VersionNotifyTargets` (r:2 w:1) @@ -233,11 +233,11 @@ impl pallet_xcm::WeightInfo for WeightInfo { /// Proof: `ParachainSystem::PendingUpwardMessages` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) fn notify_current_targets() -> Weight { // Proof Size summary in bytes: - // Measured: `178` - // Estimated: `6118` - // Minimum execution time: 30_153_000 picoseconds. - Weight::from_parts(31_366_000, 0) - .saturating_add(Weight::from_parts(0, 6118)) + // Measured: `212` + // Estimated: `6152` + // Minimum execution time: 27_127_000 picoseconds. + Weight::from_parts(27_958_000, 0) + .saturating_add(Weight::from_parts(0, 6152)) .saturating_add(T::DbWeight::get().reads(7)) .saturating_add(T::DbWeight::get().writes(3)) } @@ -245,22 +245,22 @@ impl pallet_xcm::WeightInfo for WeightInfo { /// Proof: `PolkadotXcm::VersionNotifyTargets` (`max_values`: None, `max_size`: None, mode: `Measured`) fn notify_target_migration_fail() -> Weight { // Proof Size summary in bytes: - // Measured: `172` - // Estimated: `8587` - // Minimum execution time: 9_465_000 picoseconds. - Weight::from_parts(9_743_000, 0) - .saturating_add(Weight::from_parts(0, 8587)) + // Measured: `206` + // Estimated: `8621` + // Minimum execution time: 9_401_000 picoseconds. + Weight::from_parts(9_728_000, 0) + .saturating_add(Weight::from_parts(0, 8621)) .saturating_add(T::DbWeight::get().reads(3)) } /// Storage: `PolkadotXcm::VersionNotifyTargets` (r:4 w:2) /// Proof: `PolkadotXcm::VersionNotifyTargets` (`max_values`: None, `max_size`: None, mode: `Measured`) fn migrate_version_notify_targets() -> Weight { // Proof Size summary in bytes: - // Measured: `140` - // Estimated: `11030` - // Minimum execution time: 16_954_000 picoseconds. - Weight::from_parts(19_772_000, 0) - .saturating_add(Weight::from_parts(0, 11030)) + // Measured: `173` + // Estimated: `11063` + // Minimum execution time: 16_508_000 picoseconds. + Weight::from_parts(16_920_000, 0) + .saturating_add(Weight::from_parts(0, 11063)) .saturating_add(T::DbWeight::get().reads(4)) .saturating_add(T::DbWeight::get().writes(2)) } @@ -278,11 +278,11 @@ impl pallet_xcm::WeightInfo for WeightInfo { /// Proof: `ParachainSystem::PendingUpwardMessages` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) fn migrate_and_notify_old_targets() -> Weight { // Proof Size summary in bytes: - // Measured: `182` - // Estimated: `11072` - // Minimum execution time: 37_302_000 picoseconds. - Weight::from_parts(38_124_000, 0) - .saturating_add(Weight::from_parts(0, 11072)) + // Measured: `215` + // Estimated: `11105` + // Minimum execution time: 33_357_000 picoseconds. + Weight::from_parts(34_604_000, 0) + .saturating_add(Weight::from_parts(0, 11105)) .saturating_add(T::DbWeight::get().reads(9)) .saturating_add(T::DbWeight::get().writes(4)) } diff --git a/cumulus/parachains/runtimes/glutton/glutton-westend/src/weights/frame_system.rs b/cumulus/parachains/runtimes/glutton/glutton-westend/src/weights/frame_system.rs index 3bc3e0db8500..2145a609d23d 100644 --- a/cumulus/parachains/runtimes/glutton/glutton-westend/src/weights/frame_system.rs +++ b/cumulus/parachains/runtimes/glutton/glutton-westend/src/weights/frame_system.rs @@ -17,10 +17,10 @@ //! Autogenerated weights for `frame_system` //! //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev -//! DATE: 2023-07-31, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! DATE: 2023-10-25, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` //! WORST CASE MAP SIZE: `1000000` -//! HOSTNAME: `runner-ynta1nyy-project-238-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz` -//! EXECUTION: ``, WASM-EXECUTION: `Compiled`, CHAIN: `Some("glutton-westend-dev-1300")`, DB CACHE: 1024 +//! HOSTNAME: `runner-ayothjw6-project-674-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz` +//! WASM-EXECUTION: `Compiled`, CHAIN: `Some("glutton-westend-dev-1300")`, DB CACHE: 1024 // Executed Command: // ./target/production/polkadot-parachain @@ -36,8 +36,8 @@ // --steps=50 // --repeat=20 // --json -// --header=./file_header.txt -// --output=./parachains/runtimes/glutton/glutton-westend/src/weights/ +// --header=./cumulus/file_header.txt +// --output=./cumulus/parachains/runtimes/glutton/glutton-westend/src/weights/ #![cfg_attr(rustfmt, rustfmt_skip)] #![allow(unused_parens)] @@ -55,8 +55,8 @@ impl frame_system::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 1_717_000 picoseconds. - Weight::from_parts(1_782_325, 0) + // Minimum execution time: 1_727_000 picoseconds. + Weight::from_parts(1_680_190, 0) .saturating_add(Weight::from_parts(0, 0)) // Standard Error: 0 .saturating_add(Weight::from_parts(387, 0).saturating_mul(b.into())) @@ -66,11 +66,11 @@ impl frame_system::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 6_089_000 picoseconds. - Weight::from_parts(6_353_000, 0) + // Minimum execution time: 4_351_000 picoseconds. + Weight::from_parts(4_422_000, 0) .saturating_add(Weight::from_parts(0, 0)) // Standard Error: 2 - .saturating_add(Weight::from_parts(1_788, 0).saturating_mul(b.into())) + .saturating_add(Weight::from_parts(1_736, 0).saturating_mul(b.into())) } /// Storage: `System::Digest` (r:1 w:1) /// Proof: `System::Digest` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) @@ -80,8 +80,8 @@ impl frame_system::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `0` // Estimated: `1485` - // Minimum execution time: 3_389_000 picoseconds. - Weight::from_parts(3_605_000, 0) + // Minimum execution time: 2_894_000 picoseconds. + Weight::from_parts(3_107_000, 0) .saturating_add(Weight::from_parts(0, 1485)) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(2)) @@ -100,11 +100,11 @@ impl frame_system::WeightInfo for WeightInfo { /// Proof: `ParachainSystem::DidSetValidationCode` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) fn set_code() -> Weight { // Proof Size summary in bytes: - // Measured: `119` - // Estimated: `1604` - // Minimum execution time: 97_701_839_000 picoseconds. - Weight::from_parts(100_104_315_000, 0) - .saturating_add(Weight::from_parts(0, 1604)) + // Measured: `127` + // Estimated: `1612` + // Minimum execution time: 115_084_062_000 picoseconds. + Weight::from_parts(116_908_860_000, 0) + .saturating_add(Weight::from_parts(0, 1612)) .saturating_add(T::DbWeight::get().reads(4)) .saturating_add(T::DbWeight::get().writes(3)) } @@ -115,11 +115,11 @@ impl frame_system::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 1_638_000 picoseconds. - Weight::from_parts(1_726_000, 0) + // Minimum execution time: 1_690_000 picoseconds. + Weight::from_parts(1_800_000, 0) .saturating_add(Weight::from_parts(0, 0)) - // Standard Error: 1_886 - .saturating_add(Weight::from_parts(809_561, 0).saturating_mul(i.into())) + // Standard Error: 2_253 + .saturating_add(Weight::from_parts(757_440, 0).saturating_mul(i.into())) .saturating_add(T::DbWeight::get().writes((1_u64).saturating_mul(i.into()))) } /// Storage: `Skipped::Metadata` (r:0 w:0) @@ -129,11 +129,11 @@ impl frame_system::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 1_569_000 picoseconds. - Weight::from_parts(1_690_000, 0) + // Minimum execution time: 1_716_000 picoseconds. + Weight::from_parts(1_791_000, 0) .saturating_add(Weight::from_parts(0, 0)) - // Standard Error: 963 - .saturating_add(Weight::from_parts(580_145, 0).saturating_mul(i.into())) + // Standard Error: 942 + .saturating_add(Weight::from_parts(560_797, 0).saturating_mul(i.into())) .saturating_add(T::DbWeight::get().writes((1_u64).saturating_mul(i.into()))) } /// Storage: `Skipped::Metadata` (r:0 w:0) @@ -141,13 +141,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: `52 + p * (69 ±0)` - // Estimated: `46 + p * (70 ±0)` - // Minimum execution time: 3_039_000 picoseconds. - Weight::from_parts(3_090_000, 0) - .saturating_add(Weight::from_parts(0, 46)) - // Standard Error: 2_007 - .saturating_add(Weight::from_parts(1_269_045, 0).saturating_mul(p.into())) + // Measured: `62 + p * (69 ±0)` + // Estimated: `50 + p * (70 ±0)` + // Minimum execution time: 3_251_000 picoseconds. + Weight::from_parts(3_332_000, 0) + .saturating_add(Weight::from_parts(0, 50)) + // Standard Error: 1_330 + .saturating_add(Weight::from_parts(1_162_402, 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/cumulus/parachains/runtimes/glutton/glutton-westend/src/weights/pallet_glutton.rs b/cumulus/parachains/runtimes/glutton/glutton-westend/src/weights/pallet_glutton.rs index a94962e418a4..059fa97c3676 100644 --- a/cumulus/parachains/runtimes/glutton/glutton-westend/src/weights/pallet_glutton.rs +++ b/cumulus/parachains/runtimes/glutton/glutton-westend/src/weights/pallet_glutton.rs @@ -17,10 +17,10 @@ //! Autogenerated weights for `pallet_glutton` //! //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev -//! DATE: 2023-07-31, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! DATE: 2023-10-25, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` //! WORST CASE MAP SIZE: `1000000` -//! HOSTNAME: `runner-ynta1nyy-project-238-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz` -//! EXECUTION: ``, WASM-EXECUTION: `Compiled`, CHAIN: `Some("glutton-westend-dev-1300")`, DB CACHE: 1024 +//! HOSTNAME: `runner-ayothjw6-project-674-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz` +//! WASM-EXECUTION: `Compiled`, CHAIN: `Some("glutton-westend-dev-1300")`, DB CACHE: 1024 // Executed Command: // ./target/production/polkadot-parachain @@ -36,8 +36,8 @@ // --steps=50 // --repeat=20 // --json -// --header=./file_header.txt -// --output=./parachains/runtimes/glutton/glutton-westend/src/weights/ +// --header=./cumulus/file_header.txt +// --output=./cumulus/parachains/runtimes/glutton/glutton-westend/src/weights/ #![cfg_attr(rustfmt, rustfmt_skip)] #![allow(unused_parens)] @@ -59,11 +59,11 @@ impl pallet_glutton::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `87` // Estimated: `1489` - // Minimum execution time: 8_925_000 picoseconds. - Weight::from_parts(9_186_000, 0) + // Minimum execution time: 6_625_000 picoseconds. + Weight::from_parts(6_743_000, 0) .saturating_add(Weight::from_parts(0, 1489)) - // Standard Error: 3_091 - .saturating_add(Weight::from_parts(9_666_196, 0).saturating_mul(n.into())) + // Standard Error: 4_804 + .saturating_add(Weight::from_parts(10_240_238, 0).saturating_mul(n.into())) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(1)) .saturating_add(T::DbWeight::get().writes((1_u64).saturating_mul(n.into()))) @@ -77,11 +77,11 @@ impl pallet_glutton::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `120` // Estimated: `1489` - // Minimum execution time: 8_924_000 picoseconds. - Weight::from_parts(8_963_000, 0) + // Minimum execution time: 6_528_000 picoseconds. + Weight::from_parts(6_642_000, 0) .saturating_add(Weight::from_parts(0, 1489)) - // Standard Error: 1_202 - .saturating_add(Weight::from_parts(1_139_080, 0).saturating_mul(n.into())) + // Standard Error: 1_242 + .saturating_add(Weight::from_parts(1_165_513, 0).saturating_mul(n.into())) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(1)) .saturating_add(T::DbWeight::get().writes((1_u64).saturating_mul(n.into()))) @@ -91,11 +91,11 @@ impl pallet_glutton::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 708_000 picoseconds. - Weight::from_parts(1_698_031, 0) + // Minimum execution time: 668_000 picoseconds. + Weight::from_parts(591_173, 0) .saturating_add(Weight::from_parts(0, 0)) - // Standard Error: 12 - .saturating_add(Weight::from_parts(106_500, 0).saturating_mul(i.into())) + // Standard Error: 13 + .saturating_add(Weight::from_parts(106_855, 0).saturating_mul(i.into())) } /// Storage: `Glutton::TrashData` (r:5000 w:0) /// Proof: `Glutton::TrashData` (`max_values`: Some(65000), `max_size`: Some(1036), added: 3016, mode: `MaxEncodedLen`) @@ -104,11 +104,11 @@ impl pallet_glutton::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `119115 + i * (1022 ±0)` // Estimated: `990 + i * (3016 ±0)` - // Minimum execution time: 698_000 picoseconds. - Weight::from_parts(970_000, 0) + // Minimum execution time: 960_000 picoseconds. + Weight::from_parts(94_644_757, 0) .saturating_add(Weight::from_parts(0, 990)) - // Standard Error: 4_022 - .saturating_add(Weight::from_parts(6_320_519, 0).saturating_mul(i.into())) + // Standard Error: 13_912 + .saturating_add(Weight::from_parts(5_772_318, 0).saturating_mul(i.into())) .saturating_add(T::DbWeight::get().reads((1_u64).saturating_mul(i.into()))) .saturating_add(Weight::from_parts(0, 3016).saturating_mul(i.into())) } @@ -122,8 +122,8 @@ impl pallet_glutton::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `1900498` // Estimated: `5239782` - // Minimum execution time: 100_079_897_000 picoseconds. - Weight::from_parts(100_515_306_000, 0) + // Minimum execution time: 99_652_245_000 picoseconds. + Weight::from_parts(99_902_335_000, 0) .saturating_add(Weight::from_parts(0, 5239782)) .saturating_add(T::DbWeight::get().reads(1739)) } @@ -137,8 +137,8 @@ impl pallet_glutton::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `9548` // Estimated: `16070` - // Minimum execution time: 100_237_009_000 picoseconds. - Weight::from_parts(100_472_213_000, 0) + // Minimum execution time: 100_165_127_000 picoseconds. + Weight::from_parts(100_386_188_000, 0) .saturating_add(Weight::from_parts(0, 16070)) .saturating_add(T::DbWeight::get().reads(7)) } @@ -150,8 +150,8 @@ impl pallet_glutton::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `87` // Estimated: `1493` - // Minimum execution time: 5_120_000 picoseconds. - Weight::from_parts(5_262_000, 0) + // Minimum execution time: 4_065_000 picoseconds. + Weight::from_parts(4_191_000, 0) .saturating_add(Weight::from_parts(0, 1493)) .saturating_add(T::DbWeight::get().reads(2)) } @@ -161,8 +161,8 @@ impl pallet_glutton::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 5_947_000 picoseconds. - Weight::from_parts(6_171_000, 0) + // Minimum execution time: 3_943_000 picoseconds. + Weight::from_parts(4_073_000, 0) .saturating_add(Weight::from_parts(0, 0)) .saturating_add(T::DbWeight::get().writes(1)) } @@ -172,8 +172,8 @@ impl pallet_glutton::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 5_964_000 picoseconds. - Weight::from_parts(6_166_000, 0) + // Minimum execution time: 3_914_000 picoseconds. + Weight::from_parts(4_151_000, 0) .saturating_add(Weight::from_parts(0, 0)) .saturating_add(T::DbWeight::get().writes(1)) } From ef565fdd26a0ea7a8444267d27dbda7f0a680b29 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?D=C3=B3nal=20Murray?= Date: Thu, 26 Oct 2023 10:24:08 +0100 Subject: [PATCH 38/78] Adopt Fellowship runtime versioning system Co-authored-by: joe petrowski <25483142+joepetrowski@users.noreply.github.com> --- .../runtimes/collectives/collectives-westend/src/lib.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cumulus/parachains/runtimes/collectives/collectives-westend/src/lib.rs b/cumulus/parachains/runtimes/collectives/collectives-westend/src/lib.rs index 84b55269de2c..789214cd064a 100644 --- a/cumulus/parachains/runtimes/collectives/collectives-westend/src/lib.rs +++ b/cumulus/parachains/runtimes/collectives/collectives-westend/src/lib.rs @@ -115,7 +115,7 @@ pub const VERSION: RuntimeVersion = RuntimeVersion { spec_name: create_runtime_str!("collectives"), impl_name: create_runtime_str!("collectives"), authoring_version: 1, - spec_version: 10000, + spec_version: 1_003_000, impl_version: 0, apis: RUNTIME_API_VERSIONS, transaction_version: 5, From d29ceaac9ea6a96e57c53fb7c79799e331120689 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?D=C3=B3nal=20Murray?= Date: Thu, 26 Oct 2023 09:26:17 +0100 Subject: [PATCH 39/78] Not even sure how or when this was renamed --- .../collectives-westend/src/weights/pallet_alliance.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cumulus/parachains/runtimes/collectives/collectives-westend/src/weights/pallet_alliance.rs b/cumulus/parachains/runtimes/collectives/collectives-westend/src/weights/pallet_alliance.rs index e39c9cb2ae2f..303114a9e5ae 100644 --- a/cumulus/parachains/runtimes/collectives/collectives-westend/src/weights/pallet_alliance.rs +++ b/cumulus/parachains/runtimes/collectives/collectives-westend/src/weights/pallet_alliance.rs @@ -444,7 +444,7 @@ impl pallet_alliance::WeightInfo for WeightInfo { /// Proof: `Alliance::UnscrupulousWebsites` (`max_values`: Some(1), `max_size`: Some(25702), added: 26197, mode: `MaxEncodedLen`) /// The range of component `n` is `[0, 100]`. /// The range of component `l` is `[0, 255]`. - fn add_scrupulous_items(n: u32, l: u32, ) -> Weight { + fn add_unscrupulous_items(n: u32, l: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `76` // Estimated: `27187` From e0b773faca1827d0fd965582c796dbf89be14cba Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?D=C3=B3nal=20Murray?= Date: Thu, 26 Oct 2023 09:54:38 +0100 Subject: [PATCH 40/78] Address docs changes --- cumulus/parachains/common/src/westend.rs | 28 +++++++++---------- .../collectives-westend/src/ambassador/mod.rs | 3 +- .../collectives-westend/src/xcm_config.rs | 2 +- 3 files changed, 16 insertions(+), 17 deletions(-) diff --git a/cumulus/parachains/common/src/westend.rs b/cumulus/parachains/common/src/westend.rs index 895d2ac2305d..0ae21e234549 100644 --- a/cumulus/parachains/common/src/westend.rs +++ b/cumulus/parachains/common/src/westend.rs @@ -17,18 +17,16 @@ pub mod account { use frame_support::PalletId; - /// Westend treasury pallet id, used to convert into AccountId + /// Westend treasury pallet id, used to convert into AccountId - in Westend as a destination for + /// slashed funds. pub const WESTEND_TREASURY_PALLET_ID: PalletId = PalletId(*b"py/trsry"); - /// Alliance pallet ID. - /// It is used as a temporarily place to deposit a slashed imbalance - /// before the teleport to the Treasury. + /// Alliance pallet ID - used as a temporary place to deposit a slashed imbalance before the + /// teleport to the Treasury. pub const ALLIANCE_PALLET_ID: PalletId = PalletId(*b"py/allia"); - /// Referenda pallet ID. - /// It is used as a temporarily place to deposit a slashed imbalance - /// before the teleport to the Treasury. + /// Referenda pallet ID - used as a temporary place to deposit a slashed imbalance before the + /// teleport to the Treasury. pub const REFERENDA_PALLET_ID: PalletId = PalletId(*b"py/refer"); - /// Ambassador Referenda pallet ID. - /// It is used as a temporarily place to deposit a slashed imbalance + /// Ambassador Referenda pallet ID - used as a temporary place to deposit a slashed imbalance /// before the teleport to the Treasury. pub const AMBASSADOR_REFERENDA_PALLET_ID: PalletId = PalletId(*b"py/amref"); } @@ -41,7 +39,7 @@ pub mod currency { pub const EXISTENTIAL_DEPOSIT: Balance = constants::currency::EXISTENTIAL_DEPOSIT / 10; pub const UNITS: Balance = constants::currency::UNITS; - pub const DOLLARS: Balance = UNITS; // 10_000_000_000 + pub const DOLLARS: Balance = UNITS; // 1_000_000_000_000 pub const CENTS: Balance = constants::currency::CENTS; pub const MILLICENTS: Balance = constants::currency::MILLICENTS; pub const GRAND: Balance = constants::currency::GRAND; @@ -65,7 +63,7 @@ pub mod fee { use smallvec::smallvec; pub use sp_runtime::Perbill; - /// The block saturation level. Fees will be updates based on this value. + /// The block saturation level. Fees will be updated based on this value. pub const TARGET_BLOCK_FULLNESS: Perbill = Perbill::from_percent(25); /// Handles converting a weight scalar to a fee value, based on the scale and granularity of the @@ -131,11 +129,11 @@ pub mod fee { /// Consensus-related. pub mod consensus { - /// Maximum number of blocks simultaneously accepted by the Runtime, not yet included - /// into the relay chain. + /// Maximum number of blocks simultaneously accepted by the Runtime, not yet included into the + /// relay chain. pub const UNINCLUDED_SEGMENT_CAPACITY: u32 = 1; - /// How many parachain blocks are processed by the relay chain per parent. Limits the - /// number of blocks authored per slot. + /// How many parachain blocks are processed by the relay chain per parent. Limits the number of + /// blocks authored per slot. pub const BLOCK_PROCESSING_VELOCITY: u32 = 1; /// Relay chain slot duration, in milliseconds. pub const RELAY_CHAIN_SLOT_DURATION_MILLIS: u32 = 6000; diff --git a/cumulus/parachains/runtimes/collectives/collectives-westend/src/ambassador/mod.rs b/cumulus/parachains/runtimes/collectives/collectives-westend/src/ambassador/mod.rs index c1d419794190..6e9f7d78c9b5 100644 --- a/cumulus/parachains/runtimes/collectives/collectives-westend/src/ambassador/mod.rs +++ b/cumulus/parachains/runtimes/collectives/collectives-westend/src/ambassador/mod.rs @@ -114,7 +114,8 @@ parameter_types! { pub const AlarmInterval: BlockNumber = 1; pub const SubmissionDeposit: Balance = 0; pub const UndecidingTimeout: BlockNumber = 7 * DAYS; - // The Ambassador Referenda pallet account, used as a temporarily place to deposit a slashed imbalance before teleport to the treasury. + // The Ambassador Referenda pallet account, used as a temporary place to deposit a slashed + // imbalance before teleport to the treasury. pub AmbassadorPalletAccount: AccountId = account::AMBASSADOR_REFERENDA_PALLET_ID.into_account_truncating(); } diff --git a/cumulus/parachains/runtimes/collectives/collectives-westend/src/xcm_config.rs b/cumulus/parachains/runtimes/collectives/collectives-westend/src/xcm_config.rs index 765747c764c3..eb8ff02db34e 100644 --- a/cumulus/parachains/runtimes/collectives/collectives-westend/src/xcm_config.rs +++ b/cumulus/parachains/runtimes/collectives/collectives-westend/src/xcm_config.rs @@ -225,7 +225,7 @@ pub type Barrier = TrailingSetTopicAsId< // Allow XCMs with some computed origins to pass through. WithComputedOrigin< ( - // If the message is one that immediately attemps to pay for execution, then + // If the message is one that immediately attempts to pay for execution, then // allow it. AllowTopLevelPaidExecutionFrom, // Parent and its pluralities (i.e. governance bodies) get free execution. From 5651b4f0bafa2e6cafe8c30cf3bf50d260cd7ccc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?D=C3=B3nal=20Murray?= Date: Thu, 26 Oct 2023 09:54:54 +0100 Subject: [PATCH 41/78] Add licence to glutton and collectives westend --- .../runtimes/collectives/collectives-westend/Cargo.toml | 1 + cumulus/parachains/runtimes/glutton/glutton-westend/Cargo.toml | 3 ++- 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/cumulus/parachains/runtimes/collectives/collectives-westend/Cargo.toml b/cumulus/parachains/runtimes/collectives/collectives-westend/Cargo.toml index dcd8051eac92..1b59103be6b9 100644 --- a/cumulus/parachains/runtimes/collectives/collectives-westend/Cargo.toml +++ b/cumulus/parachains/runtimes/collectives/collectives-westend/Cargo.toml @@ -3,6 +3,7 @@ name = "collectives-westend-runtime" version = "1.0.0" authors.workspace = true edition.workspace = true +license = "Apache-2.0" description = "Westend Collectives Parachain Runtime" [dependencies] diff --git a/cumulus/parachains/runtimes/glutton/glutton-westend/Cargo.toml b/cumulus/parachains/runtimes/glutton/glutton-westend/Cargo.toml index f737dd7796bb..e8809b9f8692 100644 --- a/cumulus/parachains/runtimes/glutton/glutton-westend/Cargo.toml +++ b/cumulus/parachains/runtimes/glutton/glutton-westend/Cargo.toml @@ -1,9 +1,10 @@ [package] name = "glutton-westend-runtime" version = "1.0.0" -description = "Glutton parachain runtime." authors.workspace = true edition.workspace = true +license = "Apache-2.0" +description = "Glutton parachain runtime." [dependencies] codec = { package = "parity-scale-codec", version = "3.0.0", default-features = false, features = ["derive"] } From 9eadf1a5a168b3b08b5f2fa0f4d7b9708b38e106 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?D=C3=B3nal=20Murray?= Date: Thu, 26 Oct 2023 10:02:04 +0100 Subject: [PATCH 42/78] Remove fellowship migration --- .../src/fellowship/migration.rs | 261 ------------------ .../collectives-westend/src/fellowship/mod.rs | 1 - .../collectives-westend/src/lib.rs | 7 +- 3 files changed, 1 insertion(+), 268 deletions(-) delete mode 100644 cumulus/parachains/runtimes/collectives/collectives-westend/src/fellowship/migration.rs diff --git a/cumulus/parachains/runtimes/collectives/collectives-westend/src/fellowship/migration.rs b/cumulus/parachains/runtimes/collectives/collectives-westend/src/fellowship/migration.rs deleted file mode 100644 index 9350d03a2c9f..000000000000 --- a/cumulus/parachains/runtimes/collectives/collectives-westend/src/fellowship/migration.rs +++ /dev/null @@ -1,261 +0,0 @@ -// Copyright (C) Parity Technologies (UK) Ltd. -// This file is part of Cumulus. - -// Cumulus 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. - -// Cumulus 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 Cumulus. If not, see . - -//! Migrations. - -use frame_support::{pallet_prelude::*, traits::OnRuntimeUpgrade, weights::Weight}; -use log; - -/// Initial import of the Kusama Technical Fellowship. -pub(crate) mod import_kusama_fellowship { - use super::*; - use frame_support::{parameter_types, traits::RankedMembers}; - use pallet_ranked_collective::{Config, MemberCount, Pallet as RankedCollective, Rank}; - #[cfg(feature = "try-runtime")] - use sp_std::vec::Vec; - - const TARGET: &str = "runtime::migration::import_fellowship"; - - parameter_types! { - // The Fellowship addresses from Kusama state. - pub const FellowshipAddresses: [(Rank, [u8; 32]); 47] = [ - (6, hex_literal::hex!("f0673d30606ee26672707e4fd2bc8b58d3becb7aba2d5f60add64abb5fea4710"),), - (6, hex_literal::hex!("3c235e80e35082b668682531b9b062fda39a46edb94f884d9122d86885fd5f1b"),), - (6, hex_literal::hex!("7628a5be63c4d3c8dbb96c2904b1a9682e02831a1af836c7efc808020b92fa63"),), - (5, hex_literal::hex!("9c84f75e0b1b92f6b003bde6212a8b2c9b776f3720f942b33fed8709f103a268"),), - (5, hex_literal::hex!("bc64065524532ed9e805fb0d39a5c0199216b52871168e5e4d0ab612f8797d61"),), - (5, hex_literal::hex!("2e1884c53071526483b14004e894415f02b55fc2e2aef8e1df8ccf7ce5bd5570"),), - (5, hex_literal::hex!("5c5062779d44ea2ab0469e155b8cf3e004fce71b3b3d38263cd9fa9478f12f28"),), - (4, hex_literal::hex!("4adf51a47b72795366d52285e329229c836ea7bbfe139dbe8fa0700c4f86fc56"),), - (4, hex_literal::hex!("1c90e3dabd3fd0f6bc648045018f78fcee8fe24122c22d8d2a14e9905073d10f"),), - (4, hex_literal::hex!("8e851ed992228f2268ee8c614fe6075d3800060ae14098e0309413a0a81c4470"),), - (3, hex_literal::hex!("720d807d46b941703ffe0278e8b173dc6738c5af8af812ceffc90c69390bbf1f"),), - (3, hex_literal::hex!("c4965f7fe7be8174717a24ffddf684986d122c7e293ddf875cdf9700a07b6812"),), - (3, hex_literal::hex!("beae5bcad1a8c156291b7ddf46b38b0c61a6aaacebd57b21c75627bfe7f9ab71"),), - (3, hex_literal::hex!("ccd87fa65729f7bdaa8305581a7a499aa24c118e83f5714152c0e22617c6fc63"),), - (3, hex_literal::hex!("e0f0f94962fc0a8c1a0f0527dc8e592c67939c46c903b6016cc0a8515da0044d"),), - (3, hex_literal::hex!("984e16482c99cfad1436111e321a86d87d0fac203bf64538f888e45d793b5413"),), - (3, hex_literal::hex!("44a3efb5bfa9023d4ef27b7d31d76f531b4d7772b1679b7fb32b6263ac39100e"),), - (2, hex_literal::hex!("2eba9a39dbfdd5f3cba964355d45e27319f0271023c0353d97dc6df2401b0e3d"),), - (2, hex_literal::hex!("ba3e9b87792bcfcc237fa8181185b8883c77f3e24f45e4a92ab31d07a4703520"),), - (2, hex_literal::hex!("9e6eb74b0a6b39de36fb58d1fab20bc2b3fea96023ce5a47941c20480d99f92e"),), - (2, hex_literal::hex!("ee3d9d8c48ee88dce78fd7bafe3ce2052900eb465085b9324d4f5da26b145f2b"),), - (2, hex_literal::hex!("d8290537d6e31fe1ff165eaa62b63f6f3556dcc720b0d3a6d7eab96275617304"),), - (2, hex_literal::hex!("5a090c88f0438b46b451026597cee760a7bac9d396c9c7b529b68fb78aec5f43"),), - (2, hex_literal::hex!("18d30040a8245c5ff17afc9a8169d7d0771fe7ab4135a64a022c254117340720"),), - (1, hex_literal::hex!("b4f7f03bebc56ebe96bc52ea5ed3159d45a0ce3a8d7f082983c33ef133274747"),), - (1, hex_literal::hex!("caafae0aaa6333fcf4dc193146945fe8e4da74aa6c16d481eef0ca35b8279d73"),), - (1, hex_literal::hex!("a66e0f4e1a121cc83fddf3096e8ec8c9e9c85989f276e39e951fb0e4a5398763"),), - (1, hex_literal::hex!("f65f3cade8f68e8f34c6266b0d37e58a754059ca96816e964f98e17c79505073"),), - (1, hex_literal::hex!("8c232c91ef2a9983ba65c4b75bb86fcbae4d909900ea8aa06c3644ca1161db48"),), - (1, hex_literal::hex!("78e4813814891bd48bc745b79254a978833d41fbe0f387df93cd87eae2468926"),), - (1, hex_literal::hex!("d44824ac8d1edecca67639ca74d208bd2044a10e67c9677e288080191e3fec13"),), - (1, hex_literal::hex!("585e982d74da4f4290d20a73800cfd705cf59e1f5880aaee5506b5eaaf544f49"),), - (1, hex_literal::hex!("d851f44a6f0d0d2f3439a51f2f75f66f4ea1a8e6c33c32f9af75fc188afb7546"),), - (1, hex_literal::hex!("dca89b135d1a6aee0a498610a70eeaed056727c8a4d220da245842e540a54a74"),), - (1, hex_literal::hex!("aa91fc0201f26b713a018669bcd269babf25368eee2493323b1ce0190a178a27"),), - (1, hex_literal::hex!("dc20836f2e4b88c1858d1e3f918e7358043b4a8abcd2874e74d91d26c52eca2a"),), - (1, hex_literal::hex!("145d6c503d0cf97f4c7725ca773741bd02e1760bfb52e021af5a9f2de283012c"),), - (1, hex_literal::hex!("307183930b2264c5165f4a210a99520c5f1672b0413d57769fabc19e6866fb25"),), - (1, hex_literal::hex!("6201961514cf5ad87f1c4dd0c392ee28231f805f77975147bf2c33bd671b9822"),), - (1, hex_literal::hex!("c6f57237cd4abfbeed99171495fc784e45a9d5d2814d435de40de00991a73c06"),), - (1, hex_literal::hex!("c1df5c7e8ca56037450c58734326ebe34aec8f7d1928322a12164856365fea73"),), - (1, hex_literal::hex!("12c039004da5e1e846aae808277098c719cef1f4985aed00161a42ac4f0e002f"),), - (1, hex_literal::hex!("7460ac178015d2a7c289bb68ef9fdaac071596ab4425c276a0040aaac7055566"),), - (1, hex_literal::hex!("eec4bd650a277342ebba0954ac786df2623bd6a9d6d3e69b484482336c549f79"),), - (1, hex_literal::hex!("e287c7494655d636a846f5c3347ad2cb3c462a8d46e0832be70fcc0ab54ee62d"),), - (1, hex_literal::hex!("82bf733f44a840f0a5c1935a002d4e541d81298fad6d1da8124073485983860e"),), - (1, hex_literal::hex!("d5b89078eed9b9dfec5c7d8413bac0b720bad3bd4078c4d8c894325713192502"),), - ]; - } - - /// Implements `OnRuntimeUpgrade` trait. - pub struct Migration(PhantomData<(T, I)>); - - impl, I: 'static> OnRuntimeUpgrade for Migration - where - ::AccountId: From<[u8; 32]>, - { - #[cfg(feature = "try-runtime")] - fn pre_upgrade() -> Result, sp_runtime::TryRuntimeError> { - let onchain_version = RankedCollective::::on_chain_storage_version(); - ensure!(onchain_version == 0, "the storage version must be 0."); - let member_count = MemberCount::::get(0); - ensure!(member_count == 0, "the collective must be uninitialized."); - - Ok(Vec::new()) - } - - fn on_runtime_upgrade() -> Weight { - let current_version = RankedCollective::::current_storage_version(); - let onchain_version = RankedCollective::::on_chain_storage_version(); - let mut weight = T::DbWeight::get().reads(1); - log::info!( - target: TARGET, - "running migration with current storage version {:?} / onchain {:?}.", - current_version, - onchain_version - ); - if onchain_version != 0 { - log::warn!( - target: TARGET, - "unsupported storage version, skipping import_fellowship migration." - ); - return weight - } - let member_count = MemberCount::::get(0); - weight.saturating_accrue(T::DbWeight::get().reads(1)); - if member_count != 0 { - log::warn!( - target: TARGET, - "the collective already initialized, skipping import_fellowship migration." - ); - return weight - } - - for (rank, account_id32) in FellowshipAddresses::get() { - let who: T::AccountId = account_id32.into(); - let _ = as RankedMembers>::induct(&who); - for _ in 0..rank { - let _ = as RankedMembers>::promote(&who); - // 1 write to `IdToIndex` and `IndexToId` per member on each rank. - weight.saturating_accrue(T::DbWeight::get().writes(2)); - } - // 1 write to `IdToIndex` and `IndexToId` per member on each rank. - weight.saturating_accrue(T::DbWeight::get().writes(2)); - // 1 read and 1 write to `Members` and `MemberCount` per member. - weight.saturating_accrue(T::DbWeight::get().reads_writes(2, 2)); - } - weight - } - - #[cfg(feature = "try-runtime")] - fn post_upgrade(_state: Vec) -> Result<(), sp_runtime::TryRuntimeError> { - ensure!(MemberCount::::get(0) == 47, "invalid members count at rank 0."); - ensure!(MemberCount::::get(1) == 47, "invalid members count at rank 1."); - ensure!(MemberCount::::get(2) == 24, "invalid members count at rank 2."); - ensure!(MemberCount::::get(3) == 17, "invalid members count at rank 3."); - ensure!(MemberCount::::get(4) == 10, "invalid members count at rank 4."); - ensure!(MemberCount::::get(5) == 7, "invalid members count at rank 5."); - ensure!(MemberCount::::get(6) == 3, "invalid members count at rank 6."); - ensure!(MemberCount::::get(7) == 0, "invalid members count at rank 7."); - Ok(()) - } - } -} - -#[cfg(test)] -pub mod tests { - use super::import_kusama_fellowship::FellowshipAddresses; - use crate::{FellowshipCollectiveInstance as Fellowship, Runtime, System}; - use frame_support::traits::OnRuntimeUpgrade; - use pallet_ranked_collective::Rank; - use parachains_common::AccountId; - use sp_core::crypto::Ss58Codec; - use sp_runtime::{AccountId32, BuildStorage}; - - #[test] - fn check_fellowship_addresses() { - let fellowship_addresses = FellowshipAddresses::get(); - let kusama_fellowship_ss58: [(Rank, _); 47] = [ - (6, "16SDAKg9N6kKAbhgDyxBXdHEwpwHUHs2CNEiLNGeZV55qHna"), /* proof https://kusama.subscan.io/extrinsic/16832707-4 */ - (6, "12MrP337azmkTdfCUKe5XLnSQrbgEKqqfZ4PQC7CZTJKAWR3"), /* proof https://kusama.subscan.io/extrinsic/16967809-2 */ - (6, "FFFF3gBSSDFSvK2HBq4qgLH75DHqXWPHeCnR1BSksAMacBs"), - (5, "G7YVCdxZb8JLpAm9WMnJdNuojNT84AzU62zmvx5P1FMNtg2"), - (5, "15G1iXDLgFyfnJ51FKq1ts44TduMyUtekvzQi9my4hgYt2hs"), /* proof https://kusama.subscan.io/extrinsic/16917610-2 */ - (5, "Dcm1BqR4N7nHuV43TXdET7pNibt1Nzm42FggPHpxKRven53"), - (5, "1363HWTPzDrzAQ6ChFiMU6mP4b6jmQid2ae55JQcKtZnpLGv"), /* proof https://kusama.subscan.io/extrinsic/16961180-2 */ - (4, "EGVQCe73TpFyAZx5uKfE1222XfkT3BSKozjgcqzLBnc5eYo"), - (4, "1eTPAR2TuqLyidmPT9rMmuycHVm9s9czu78sePqg2KHMDrE"), /* proof https://kusama.subscan.io/extrinsic/16921712-3 */ - (4, "14DsLzVyTUTDMm2eP3czwPbH53KgqnQRp3CJJZS9GR7yxGDP"), /* proof https://kusama.subscan.io/extrinsic/16917519-2 */ - (3, "13aYUFHB3umoPoxBEAHSv451iR3RpsNi3t5yBZjX2trCtTp6"), /* proof https://kusama.subscan.io/extrinsic/16917832-3 */ - (3, "H25aCspunTUqAt4D1gC776vKZ8FX3MvQJ3Jde6qDXPQaFxk"), - (3, "GtLQoW4ZqcjExMPq6qB22bYc6NaX1yMzRuGWpSRiHqnzRb9"), - (3, "15db5ksZgmhWE9U8MDq4wLKUdFivLVBybztWV8nmaJvv3NU1"), /* proof https://kusama.subscan.io/extrinsic/16876631-2 */ - (3, "HfFpz4QUxfbocHudf8UU7cMgHqkHpf855Me5X846PZAsAYE"), - (3, "14ShUZUYUR35RBZW6uVVt1zXDxmSQddkeDdXf1JkMA6P721N"), /* proof https://kusama.subscan.io/extrinsic/16918890-8 */ - (3, "12YzxR5TvGzfMVZNnhAJ5Hwi5zExpRWMKv2MuMwZTrddvgoi"), /* proof https://kusama.subscan.io/extrinsic/16924324-3 */ - (2, "Ddb9puChKMHq4gM6o47E551wAmaNeu6kHngX1jzNNqAw782"), - (2, "15DCWHQknBjc5YPFoVj8Pn2KoqrqYywJJ95BYNYJ4Fj3NLqz"), /* proof https://kusama.subscan.io/extrinsic/16834952-2 */ - (2, "14ajTQdrtCA8wZmC4PgD8Y1B2Gy8L4Z3oi2fodxq9FehcFrM"), /* proof https://kusama.subscan.io/extrinsic/16944257-2 */ - (2, "HxhDbS3grLurk1dhDgPiuDaRowHY1xHCU8Vu8on3fdg85tx"), - (2, "HTk3eccL7WBkiyxz1gBcqQRghsJigoDMD7mnQaz1UAbMpQV"), - (2, "EcNWrSPSDcVBRymwr26kk4JVFg92PdoU5Xwp87W2FgFSt9c"), - (2, "D8sM6vKjWaeKy2zCPYWGkLLbWdUtWQrXBTQqr4dSYnVQo21"), - (1, "GfbnnEgRU94n9ed4RFZ6Z9dBAWs5obykigJSwXKU9hsT2uU"), - (1, "HA5NtttvyZsxo4wGxGoJJSMaWtdEFZAuGUMFHVWD7fgenPv"), - (1, "14mDeKZ7qp9hqBjjDg51c8BFrf9o69om8piSSRwj2fT5Yb1i"), /* proof https://kusama.subscan.io/extrinsic/16919020-4 */ - (1, "16a357f5Sxab3V2ne4emGQvqJaCLeYpTMx3TCjnQhmJQ71DX"), /* proof https://kusama.subscan.io/extrinsic/16836396-5 */ - (1, "14Ak9rrF6RKHHoLLRUYMnzcvvi1t8E1yAMa7tcmiwUfaqzYK"), /* proof https://kusama.subscan.io/extrinsic/16921990-3 */ - (1, "FJq9JpA9P7EXbmfsN9YiewJaDbQyL6vQyksGtJvzfbn6zf8"), - (1, "15oLanodWWweiZJSoDTEBtrX7oGfq6e8ct5y5E6fVRDPhUgj"), /* proof https://kusama.subscan.io/extrinsic/16876423-7 */ - (1, "EaBqDJJNsZmYdQ4xn1vomPJVNh7fjA6UztZeEjn7ZzdeT7V"), - (1, "HTxCvXKVvUZ7PQq175kCRRLu7XkGfTfErrdNXr1ZuuwVZWv"), - (1, "HZe91A6a1xqbKaw6ofx3GFepJjhVXHrwHEwn6YUDDFphpX9"), - (1, "GRy2P3kBEzSHCbmDJfquku1cyUyhZaAqojRcNE4A4U3MnLd"), - (1, "HYwiBo7Mcv7uUDg4MUoKm2fxzv4dMLAtmmNfzHV8qcQJpAE"), - (1, "1ThiBx5DDxFhoD9GY6tz5Fp4Y7Xn1xfLmDddcoFQghDvvjg"), /* proof https://kusama.subscan.io/extrinsic/16918130-2 */ - (1, "DfqY6XQUSETTszBQ1juocTcG9iiDoXhvq1CoVadBSUqTGJS"), - (1, "EnpgVWGGQVrFdSB2qeXRVdtccV6U5ZscNELBoERbkFD8Wi6"), - (1, "H5BuqCmucJhUUuvjAzPazeVwVCtUSXVQdc5Dnx2q5zD7rVn"), - (1, "GxX7S1pTDdeaGUjpEPPF2we6tgHDhbatFG25pVmVFtGHLH6"), - (1, "CzuUtvKhZNZBjyAXeYviaRXwrLhVrsupJ9PrWmdq7BJTjGR"), - (1, "FCunn2Rx8JqfT5g6noUKKazph4jLDba5rUee7o3ZmJ362Ju"), - (1, "HyPMjWRHCpJS7x2SZ2R6M2XG5ZiCiZag4U4r7gBHRsE5mTc"), - (1, "1682A5hxfiS1Kn1jrUnMYv14T9EuEnsgnBbujGfYbeEbSK3w"), /* proof https://kusama.subscan.io/extrinsic/16919077-2 */ - (1, "13xS6fK6MHjApLnjdX7TJYw1niZmiXasSN91bNtiXQjgEtNx"), /* proof https://kusama.subscan.io/extrinsic/16918212-7 */ - (1, "15qE2YAQCs5Y962RHE7RzNjQxU6Pei21nhkkSM9Sojq1hHps"), /* https://kusama.subscan.io/extrinsic/17352973-2 */ - ]; - - for (index, val) in kusama_fellowship_ss58.iter().enumerate() { - let account: AccountId32 = ::from_string(val.1).unwrap(); - let account32: [u8; 32] = account.clone().into(); - assert_eq!( - fellowship_addresses[index].0, kusama_fellowship_ss58[index].0, - "ranks must be equal." - ); - assert_eq!(fellowship_addresses[index].1, account32, "accounts must be equal."); - } - } - - #[test] - fn test_fellowship_import() { - use super::import_kusama_fellowship::Migration; - use pallet_ranked_collective::{IdToIndex, IndexToId, MemberCount, MemberRecord, Members}; - - let t = frame_system::GenesisConfig::::default().build_storage().unwrap(); - let mut ext = sp_io::TestExternalities::new(t); - ext.execute_with(|| System::set_block_number(1)); - ext.execute_with(|| { - assert_eq!(MemberCount::::get(0), 0); - Migration::::on_runtime_upgrade(); - assert_eq!(MemberCount::::get(0), 47); - assert_eq!(MemberCount::::get(6), 3); - assert_eq!(MemberCount::::get(7), 0); - for (rank, account_id32) in FellowshipAddresses::get() { - let who = ::AccountId::from(account_id32); - assert!(IdToIndex::::get(0, &who).is_some()); - assert!(IdToIndex::::get(rank + 1, &who).is_none()); - let index = IdToIndex::::get(rank, &who).unwrap(); - assert_eq!(IndexToId::::get(rank, index).unwrap(), who); - assert_eq!( - Members::::get(&who).unwrap(), - MemberRecord::new(rank) - ); - } - }); - } -} diff --git a/cumulus/parachains/runtimes/collectives/collectives-westend/src/fellowship/mod.rs b/cumulus/parachains/runtimes/collectives/collectives-westend/src/fellowship/mod.rs index 54930544e11a..b7412705dde7 100644 --- a/cumulus/parachains/runtimes/collectives/collectives-westend/src/fellowship/mod.rs +++ b/cumulus/parachains/runtimes/collectives/collectives-westend/src/fellowship/mod.rs @@ -16,7 +16,6 @@ //! The Westend Technical Fellowship. -pub(crate) mod migration; mod origins; mod tracks; use crate::{ diff --git a/cumulus/parachains/runtimes/collectives/collectives-westend/src/lib.rs b/cumulus/parachains/runtimes/collectives/collectives-westend/src/lib.rs index 789214cd064a..831a872b28d2 100644 --- a/cumulus/parachains/runtimes/collectives/collectives-westend/src/lib.rs +++ b/cumulus/parachains/runtimes/collectives/collectives-westend/src/lib.rs @@ -46,10 +46,7 @@ pub use ambassador::pallet_ambassador_origins; use cumulus_pallet_parachain_system::RelayNumberStrictlyIncreases; use cumulus_primitives_core::ParaId; -use fellowship::{ - migration::import_kusama_fellowship, pallet_fellowship_origins, Fellows, - FellowshipCollectiveInstance, -}; +use fellowship::{pallet_fellowship_origins, Fellows}; use impls::{AllianceProposalProvider, EqualOrGreatestRootCmp, ToParentTreasury}; use sp_api::impl_runtime_apis; use sp_core::{crypto::KeyTypeId, OpaqueMetadata}; @@ -685,8 +682,6 @@ pub type UncheckedExtrinsic = /// All migrations executed on runtime upgrade as a nested tuple of types implementing /// `OnRuntimeUpgrade`. Included migrations must be idempotent. type Migrations = ( - // v9420 - import_kusama_fellowship::Migration, // unreleased pallet_collator_selection::migration::v1::MigrateToV1, ); From 20e3672baeb6960f4a60e26c508356f0ca4a911c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?D=C3=B3nal=20Murray?= Date: Thu, 26 Oct 2023 10:14:27 +0100 Subject: [PATCH 43/78] Remove penpal-westend mentions --- cumulus/polkadot-parachain/src/command.rs | 8 -------- 1 file changed, 8 deletions(-) diff --git a/cumulus/polkadot-parachain/src/command.rs b/cumulus/polkadot-parachain/src/command.rs index 822cf8821bec..e38b90fe2e38 100644 --- a/cumulus/polkadot-parachain/src/command.rs +++ b/cumulus/polkadot-parachain/src/command.rs @@ -260,10 +260,6 @@ fn load_spec(id: &str) -> std::result::Result, String> { para_id.expect("Must specify parachain id"), "polkadot-local", )), - "penpal-westend" => Box::new(chain_spec::penpal::get_penpal_chain_spec( - para_id.expect("Must specify parachain id"), - "westend-local", - )), // -- Glutton Westend "glutton-westend-dev" => Box::new(chain_spec::glutton::glutton_westend_development_config( @@ -345,7 +341,6 @@ fn load_spec(id: &str) -> std::result::Result, String> { fn extract_parachain_id(id: &str) -> (&str, &str, Option) { const KUSAMA_TEST_PARA_PREFIX: &str = "penpal-kusama-"; const POLKADOT_TEST_PARA_PREFIX: &str = "penpal-polkadot-"; - const WESTEND_TEST_PARA_PREFIX: &str = "penpal-westend-"; const GLUTTON_PARA_DEV_PREFIX: &str = "glutton-kusama-dev-"; const GLUTTON_PARA_LOCAL_PREFIX: &str = "glutton-kusama-local-"; @@ -361,9 +356,6 @@ fn extract_parachain_id(id: &str) -> (&str, &str, Option) { } else if let Some(suffix) = id.strip_prefix(POLKADOT_TEST_PARA_PREFIX) { let para_id: u32 = suffix.parse().expect("Invalid parachain-id suffix"); (&id[..POLKADOT_TEST_PARA_PREFIX.len() - 1], id, Some(para_id)) - } else if let Some(suffix) = id.strip_prefix(WESTEND_TEST_PARA_PREFIX) { - let para_id: u32 = suffix.parse().expect("Invalid parachain-id suffix"); - (&id[..WESTEND_TEST_PARA_PREFIX.len() - 1], id, Some(para_id)) } else if let Some(suffix) = id.strip_prefix(GLUTTON_PARA_DEV_PREFIX) { let para_id: u32 = suffix.parse().expect("Invalid parachain-id suffix"); (&id[..GLUTTON_PARA_DEV_PREFIX.len() - 1], id, Some(para_id)) From 863ed2c33dd156f797e66c90e99b6885d55cd3a9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?D=C3=B3nal=20Murray?= Date: Thu, 26 Oct 2023 10:21:01 +0100 Subject: [PATCH 44/78] Fix token config for westend chain specs --- .../polkadot-parachain/src/chain_spec/collectives.rs | 12 ++++++------ cumulus/polkadot-parachain/src/chain_spec/glutton.rs | 2 +- 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/cumulus/polkadot-parachain/src/chain_spec/collectives.rs b/cumulus/polkadot-parachain/src/chain_spec/collectives.rs index 4ca498a8260a..481242bdc32d 100644 --- a/cumulus/polkadot-parachain/src/chain_spec/collectives.rs +++ b/cumulus/polkadot-parachain/src/chain_spec/collectives.rs @@ -195,9 +195,9 @@ pub fn collectives_westend_session_keys(keys: AuraId) -> collectives_westend_run pub fn collectives_westend_development_config() -> CollectivesWestendChainSpec { let mut properties = sc_chain_spec::Properties::new(); - properties.insert("ss58Format".into(), 0.into()); - properties.insert("tokenSymbol".into(), "DOT".into()); - properties.insert("tokenDecimals".into(), 10.into()); + properties.insert("ss58Format".into(), 42.into()); + properties.insert("tokenSymbol".into(), "WND".into()); + properties.insert("tokenDecimals".into(), 12.into()); CollectivesWestendChainSpec::from_genesis( // Name @@ -235,9 +235,9 @@ pub fn collectives_westend_development_config() -> CollectivesWestendChainSpec { /// Collectives Westend Local Config. pub fn collectives_westend_local_config() -> CollectivesWestendChainSpec { let mut properties = sc_chain_spec::Properties::new(); - properties.insert("ss58Format".into(), 0.into()); - properties.insert("tokenSymbol".into(), "DOT".into()); - properties.insert("tokenDecimals".into(), 10.into()); + properties.insert("ss58Format".into(), 42.into()); + properties.insert("tokenSymbol".into(), "WND".into()); + properties.insert("tokenDecimals".into(), 12.into()); CollectivesWestendChainSpec::from_genesis( // Name diff --git a/cumulus/polkadot-parachain/src/chain_spec/glutton.rs b/cumulus/polkadot-parachain/src/chain_spec/glutton.rs index 585948eb80e8..d0aa455f2ae1 100644 --- a/cumulus/polkadot-parachain/src/chain_spec/glutton.rs +++ b/cumulus/polkadot-parachain/src/chain_spec/glutton.rs @@ -172,7 +172,7 @@ pub fn glutton_westend_local_config(para_id: ParaId) -> GluttonWestendChainSpec pub fn glutton_westend_config(para_id: ParaId) -> GluttonWestendChainSpec { let mut properties = sc_chain_spec::Properties::new(); - properties.insert("ss58Format".into(), 2.into()); + properties.insert("ss58Format".into(), 42.into()); GluttonWestendChainSpec::from_genesis( // Name From bc7b6e3df9410d137215c1e017b56f17091bf032 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?D=C3=B3nal=20Murray?= Date: Thu, 26 Oct 2023 10:23:16 +0100 Subject: [PATCH 45/78] Reduce decision periods to 1 day on westend --- .../src/ambassador/tracks.rs | 18 +++++++++--------- .../src/fellowship/tracks.rs | 18 +++++++++--------- 2 files changed, 18 insertions(+), 18 deletions(-) diff --git a/cumulus/parachains/runtimes/collectives/collectives-westend/src/ambassador/tracks.rs b/cumulus/parachains/runtimes/collectives/collectives-westend/src/ambassador/tracks.rs index 073d8e6ee362..d4a2d3bbf1c7 100644 --- a/cumulus/parachains/runtimes/collectives/collectives-westend/src/ambassador/tracks.rs +++ b/cumulus/parachains/runtimes/collectives/collectives-westend/src/ambassador/tracks.rs @@ -56,7 +56,7 @@ impl pallet_referenda::TracksInfo for TracksInfo { max_deciding: 10, decision_deposit: 5 * DOLLARS, prepare_period: 24 * HOURS, - decision_period: 7 * DAYS, + decision_period: 1 * DAYS, confirm_period: 24 * HOURS, min_enactment_period: 1 * HOURS, min_approval: pallet_referenda::Curve::LinearDecreasing { @@ -78,7 +78,7 @@ impl pallet_referenda::TracksInfo for TracksInfo { max_deciding: 10, decision_deposit: 5 * DOLLARS, prepare_period: 24 * HOURS, - decision_period: 7 * DAYS, + decision_period: 1 * DAYS, confirm_period: 24 * HOURS, min_enactment_period: 1 * HOURS, min_approval: pallet_referenda::Curve::LinearDecreasing { @@ -100,7 +100,7 @@ impl pallet_referenda::TracksInfo for TracksInfo { max_deciding: 10, decision_deposit: 5 * DOLLARS, prepare_period: 24 * HOURS, - decision_period: 7 * DAYS, + decision_period: 1 * DAYS, confirm_period: 24 * HOURS, min_enactment_period: 1 * HOURS, min_approval: pallet_referenda::Curve::LinearDecreasing { @@ -122,7 +122,7 @@ impl pallet_referenda::TracksInfo for TracksInfo { max_deciding: 10, decision_deposit: 5 * DOLLARS, prepare_period: 24 * HOURS, - decision_period: 7 * DAYS, + decision_period: 1 * DAYS, confirm_period: 24 * HOURS, min_enactment_period: 1 * HOURS, min_approval: pallet_referenda::Curve::LinearDecreasing { @@ -144,7 +144,7 @@ impl pallet_referenda::TracksInfo for TracksInfo { max_deciding: 10, decision_deposit: 5 * DOLLARS, prepare_period: 24 * HOURS, - decision_period: 7 * DAYS, + decision_period: 1 * DAYS, confirm_period: 24 * HOURS, min_enactment_period: 1 * HOURS, min_approval: pallet_referenda::Curve::LinearDecreasing { @@ -166,7 +166,7 @@ impl pallet_referenda::TracksInfo for TracksInfo { max_deciding: 10, decision_deposit: 5 * DOLLARS, prepare_period: 24 * HOURS, - decision_period: 7 * DAYS, + decision_period: 1 * DAYS, confirm_period: 24 * HOURS, min_enactment_period: 1 * HOURS, min_approval: pallet_referenda::Curve::LinearDecreasing { @@ -188,7 +188,7 @@ impl pallet_referenda::TracksInfo for TracksInfo { max_deciding: 10, decision_deposit: 5 * DOLLARS, prepare_period: 24 * HOURS, - decision_period: 7 * DAYS, + decision_period: 1 * DAYS, confirm_period: 24 * HOURS, min_enactment_period: 1 * HOURS, min_approval: pallet_referenda::Curve::LinearDecreasing { @@ -210,7 +210,7 @@ impl pallet_referenda::TracksInfo for TracksInfo { max_deciding: 10, decision_deposit: 5 * DOLLARS, prepare_period: 24 * HOURS, - decision_period: 7 * DAYS, + decision_period: 1 * DAYS, confirm_period: 24 * HOURS, min_enactment_period: 1 * HOURS, min_approval: pallet_referenda::Curve::LinearDecreasing { @@ -232,7 +232,7 @@ impl pallet_referenda::TracksInfo for TracksInfo { max_deciding: 10, decision_deposit: 5 * DOLLARS, prepare_period: 24 * HOURS, - decision_period: 7 * DAYS, + decision_period: 1 * DAYS, confirm_period: 24 * HOURS, min_enactment_period: 1 * HOURS, min_approval: pallet_referenda::Curve::LinearDecreasing { diff --git a/cumulus/parachains/runtimes/collectives/collectives-westend/src/fellowship/tracks.rs b/cumulus/parachains/runtimes/collectives/collectives-westend/src/fellowship/tracks.rs index f4ba4e05ec16..099bdf4cf753 100644 --- a/cumulus/parachains/runtimes/collectives/collectives-westend/src/fellowship/tracks.rs +++ b/cumulus/parachains/runtimes/collectives/collectives-westend/src/fellowship/tracks.rs @@ -124,7 +124,7 @@ impl pallet_referenda::TracksInfo for TracksInfo { max_deciding: 10, decision_deposit: 5 * DOLLARS, prepare_period: 30 * MINUTES, - decision_period: 7 * DAYS, + decision_period: 1 * DAYS, confirm_period: 30 * MINUTES, min_enactment_period: 5 * MINUTES, min_approval: pallet_referenda::Curve::LinearDecreasing { @@ -146,7 +146,7 @@ impl pallet_referenda::TracksInfo for TracksInfo { max_deciding: 10, decision_deposit: 5 * DOLLARS, prepare_period: 30 * MINUTES, - decision_period: 7 * DAYS, + decision_period: 1 * DAYS, confirm_period: 30 * MINUTES, min_enactment_period: 5 * MINUTES, min_approval: pallet_referenda::Curve::LinearDecreasing { @@ -168,7 +168,7 @@ impl pallet_referenda::TracksInfo for TracksInfo { max_deciding: 10, decision_deposit: 5 * DOLLARS, prepare_period: 30 * MINUTES, - decision_period: 7 * DAYS, + decision_period: 1 * DAYS, confirm_period: 30 * MINUTES, min_enactment_period: 5 * MINUTES, min_approval: pallet_referenda::Curve::LinearDecreasing { @@ -190,7 +190,7 @@ impl pallet_referenda::TracksInfo for TracksInfo { max_deciding: 10, decision_deposit: 5 * DOLLARS, prepare_period: 30 * MINUTES, - decision_period: 7 * DAYS, + decision_period: 1 * DAYS, confirm_period: 30 * MINUTES, min_enactment_period: 5 * MINUTES, min_approval: pallet_referenda::Curve::LinearDecreasing { @@ -212,7 +212,7 @@ impl pallet_referenda::TracksInfo for TracksInfo { max_deciding: 10, decision_deposit: 5 * DOLLARS, prepare_period: 30 * MINUTES, - decision_period: 7 * DAYS, + decision_period: 1 * DAYS, confirm_period: 30 * MINUTES, min_enactment_period: 5 * MINUTES, min_approval: pallet_referenda::Curve::LinearDecreasing { @@ -234,7 +234,7 @@ impl pallet_referenda::TracksInfo for TracksInfo { max_deciding: 10, decision_deposit: 5 * DOLLARS, prepare_period: 30 * MINUTES, - decision_period: 7 * DAYS, + decision_period: 1 * DAYS, confirm_period: 30 * MINUTES, min_enactment_period: 5 * MINUTES, min_approval: pallet_referenda::Curve::LinearDecreasing { @@ -256,7 +256,7 @@ impl pallet_referenda::TracksInfo for TracksInfo { max_deciding: 10, decision_deposit: 5 * DOLLARS, prepare_period: 30 * MINUTES, - decision_period: 7 * DAYS, + decision_period: 1 * DAYS, confirm_period: 30 * MINUTES, min_enactment_period: 5 * MINUTES, min_approval: pallet_referenda::Curve::LinearDecreasing { @@ -278,7 +278,7 @@ impl pallet_referenda::TracksInfo for TracksInfo { max_deciding: 10, decision_deposit: 5 * DOLLARS, prepare_period: 30 * MINUTES, - decision_period: 7 * DAYS, + decision_period: 1 * DAYS, confirm_period: 30 * MINUTES, min_enactment_period: 5 * MINUTES, min_approval: pallet_referenda::Curve::LinearDecreasing { @@ -300,7 +300,7 @@ impl pallet_referenda::TracksInfo for TracksInfo { max_deciding: 10, decision_deposit: 5 * DOLLARS, prepare_period: 30 * MINUTES, - decision_period: 7 * DAYS, + decision_period: 1 * DAYS, confirm_period: 30 * MINUTES, min_enactment_period: 5 * MINUTES, min_approval: pallet_referenda::Curve::LinearDecreasing { From 9376c5a5313139e071390b224628dd8d120c6aae Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?D=C3=B3nal=20Murray?= Date: Fri, 27 Oct 2023 11:58:09 +0100 Subject: [PATCH 46/78] Remove e2e tests for westend --- .../assets/asset-hub-westend/0_xcm/0_init.yml | 145 ------- .../assets/asset-hub-westend/0_xcm/1_dmp.yml | 263 ------------ .../assets/asset-hub-westend/0_xcm/2_ump.yml | 194 --------- .../0_xcm/3_force_hrmp-open-channels.yml | 120 ------ .../assets/asset-hub-westend/0_xcm/4_hrmp.yml | 388 ------------------ .../e2e/assets/asset-hub-westend/config.toml | 72 ---- .../collectives-westend/0_xcm/0_init.yml | 166 -------- .../collectives-westend/0_xcm/1_teleport.yml | 168 -------- .../collectives-westend/0_xcm/2_reserve.yml | 53 --- .../0_xcm/3_hrmp-open-channels.yml | 69 ---- .../1_alliance/0_join_alliance_fails.yml | 29 -- .../1_alliance/1_init_alliance.yml | 256 ------------ .../1_alliance/2_join_alliance_fails.yml | 30 -- .../1_alliance/3_kick_member.yml | 175 -------- .../2_opengov/0_assethub.yml | 149 ------- .../3_fellowship/0_init.yml | 209 ---------- .../3_fellowship/1_whitelist_call.yml | 146 ------- .../3_fellowship/2_assethub.yml | 126 ------ .../collectives-westend/config.toml | 42 -- 19 files changed, 2800 deletions(-) delete mode 100644 cumulus/parachains/integration-tests/e2e/assets/asset-hub-westend/0_xcm/0_init.yml delete mode 100644 cumulus/parachains/integration-tests/e2e/assets/asset-hub-westend/0_xcm/1_dmp.yml delete mode 100644 cumulus/parachains/integration-tests/e2e/assets/asset-hub-westend/0_xcm/2_ump.yml delete mode 100644 cumulus/parachains/integration-tests/e2e/assets/asset-hub-westend/0_xcm/3_force_hrmp-open-channels.yml delete mode 100644 cumulus/parachains/integration-tests/e2e/assets/asset-hub-westend/0_xcm/4_hrmp.yml delete mode 100644 cumulus/parachains/integration-tests/e2e/assets/asset-hub-westend/config.toml delete mode 100644 cumulus/parachains/integration-tests/e2e/collectives/collectives-westend/0_xcm/0_init.yml delete mode 100644 cumulus/parachains/integration-tests/e2e/collectives/collectives-westend/0_xcm/1_teleport.yml delete mode 100644 cumulus/parachains/integration-tests/e2e/collectives/collectives-westend/0_xcm/2_reserve.yml delete mode 100644 cumulus/parachains/integration-tests/e2e/collectives/collectives-westend/0_xcm/3_hrmp-open-channels.yml delete mode 100644 cumulus/parachains/integration-tests/e2e/collectives/collectives-westend/1_alliance/0_join_alliance_fails.yml delete mode 100644 cumulus/parachains/integration-tests/e2e/collectives/collectives-westend/1_alliance/1_init_alliance.yml delete mode 100644 cumulus/parachains/integration-tests/e2e/collectives/collectives-westend/1_alliance/2_join_alliance_fails.yml delete mode 100644 cumulus/parachains/integration-tests/e2e/collectives/collectives-westend/1_alliance/3_kick_member.yml delete mode 100644 cumulus/parachains/integration-tests/e2e/collectives/collectives-westend/2_opengov/0_assethub.yml delete mode 100644 cumulus/parachains/integration-tests/e2e/collectives/collectives-westend/3_fellowship/0_init.yml delete mode 100644 cumulus/parachains/integration-tests/e2e/collectives/collectives-westend/3_fellowship/1_whitelist_call.yml delete mode 100644 cumulus/parachains/integration-tests/e2e/collectives/collectives-westend/3_fellowship/2_assethub.yml delete mode 100644 cumulus/parachains/integration-tests/e2e/collectives/collectives-westend/config.toml diff --git a/cumulus/parachains/integration-tests/e2e/assets/asset-hub-westend/0_xcm/0_init.yml b/cumulus/parachains/integration-tests/e2e/assets/asset-hub-westend/0_xcm/0_init.yml deleted file mode 100644 index a6d3fb3ec834..000000000000 --- a/cumulus/parachains/integration-tests/e2e/assets/asset-hub-westend/0_xcm/0_init.yml +++ /dev/null @@ -1,145 +0,0 @@ ---- -settings: - chains: - relay_chain: &relay_chain - wsPort: 9800 - assets_parachain: &assets_parachain - wsPort: 9810 - paraId: &ap_id 1000 - penpal_parachain: &penpal_parachain - wsPort: 9820 - paraId: &pp_id 2000 - variables: - common: - xcm_version: &xcm_version '3' - require_weight_at_most: &weight_at_most {refTime: 1000000000, proofSize: 200000} - weight_threshold: &weight_threshold { refTime: [10, 10], proofSize: [10, 10] } - chains: - relay_chain: - signer: &rc_signer //Alice - assets_parachain_destination: &ap_dest { v3: { 0, interior: { x1: { parachain: *ap_id }}}} - penpal_parachain: - signer: &pp_signer //Alice - decodedCalls: - ap_force_xcm_version: - chain: *assets_parachain - pallet: polkadotXcm - call: forceXcmVersion - args: [ - { # location - parents: 1, - interior: Here - }, - *xcm_version # xcmVersion - ] - -tests: - - name: Initialize Chains - its: - - name: XCM supported versions between chains - actions: - - extrinsics: # Relay Chain sets supported version for Asset Parachain - - chain: *relay_chain - sudo: true - signer: *rc_signer - pallet: xcmPallet - call: forceXcmVersion - args: [ - { # location - parents: 0, - interior: { - X1: { - Parachain: *ap_id - } - } - }, - *xcm_version # xcmVersion - ] - events: - - name: sudo.Sudid - result: { sudoResult: Ok } - - name: xcmPallet.SupportedVersionChanged - result: { location: { parents: 0, interior: { X1: { Parachain: *ap_id }}}, version: *xcm_version } - - extrinsics: # Relay Chain sets supported version for Penpal Parachain - - chain: *relay_chain - sudo: true - signer: *rc_signer - pallet: xcmPallet - call: forceXcmVersion - args: [ - { # location - parents: 0, - interior: { - X1: { - Parachain: *pp_id - } - } - }, - *xcm_version # xcmVersion - ] - events: - - name: sudo.Sudid - result: { sudoResult: Ok } - - name: xcmPallet.SupportedVersionChanged - result: { location: { parents: 0, interior: { X1: { Parachain: *pp_id }}}, version: *xcm_version } - - extrinsics: # Asset Parachain sets supported version for Relay Chain through it - - chain: *relay_chain - signer: *rc_signer - sudo: true - pallet: xcmPallet - call: send - args: [ - *ap_dest, # destination - { - v3: [ #message - { - UnpaidExecution: { - weightLimit: { - limited: { - refTime: 3200000000, - proofSize: 200000 - } - } - } - }, - { - Transact: { - originKind: Superuser, - requireWeightAtMost: *weight_at_most, - call: $ap_force_xcm_version - } - } - ] - } - ] - events: - - name: sudo.Sudid - result: { sudoResult: Ok } - - name: xcmPallet.Sent - - name: dmpQueue.ExecutedDownward - chain: *assets_parachain - threshold: *weight_threshold - result: { - outcome: { Complete: { refTime: '1,019,210,000', proofSize: '200,000' }} - } - - name: polkadotXcm.SupportedVersionChanged - chain: *assets_parachain - result: { location: { parents: 1, interior: Here }, version: *xcm_version } - - extrinsics: # Penpal Parachain sets supported version for Relay Chain - - chain: *penpal_parachain - signer: *pp_signer - sudo: true - pallet: polkadotXcm - call: forceXcmVersion - args: [ - { # location - parents: 1, - interior: Here - }, - *xcm_version # xcmVersion - ] - events: - - name: sudo.Sudid - result: { sudoResult: Ok } - - name: polkadotXcm.SupportedVersionChanged - result: { location: { parents: 1, interior: Here}, version: *xcm_version } diff --git a/cumulus/parachains/integration-tests/e2e/assets/asset-hub-westend/0_xcm/1_dmp.yml b/cumulus/parachains/integration-tests/e2e/assets/asset-hub-westend/0_xcm/1_dmp.yml deleted file mode 100644 index 36b296f3eb1f..000000000000 --- a/cumulus/parachains/integration-tests/e2e/assets/asset-hub-westend/0_xcm/1_dmp.yml +++ /dev/null @@ -1,263 +0,0 @@ ---- -settings: - chains: - relay_chain: &relay_chain - wsPort: 9800 - assets_parachain: &assets_parachain - wsPort: 9810 - paraId: &ap_id 1000 - variables: - common: - weight_threshold: &weight_threshold { refTime: [10, 10], proofSize: [10, 10] } - chains: - relay_chain: - signer: &rc_signer //Alice - wallet: &rc_wallet HNZata7iMYWmk5RvZRTiAsSDhV8366zq2YGb3tLH5Upf74F - assets_parachain_destination: &ap_dest { v3: { parents: 0, interior: { x1: { parachain: *ap_id }}}} - assets_parachain_account: &ap_acc '0xd43593c715fdd31c61141abd04a99fd6822c8558854ccde39a5684e7a56da27d' - assets_parachain_beneficiary: &ap_benf {v3: { parents: 0, interior: { x1: { accountId32: { id: *ap_acc }}}}} - ksm: &rc_ksm { concrete: { parents: 0, interior: { here: true }}} - amount: &amount 1000000000000 - ksm_fungible: &rc_ksm_fungible { id: *rc_ksm, fun: { fungible: *amount }} - require_weight_at_most: &rc_weight_at_most {refTime: 1000000000, proofSize: 200000} - assets_parachain_account: - wallet: &ap_wallet HNZata7iMYWmk5RvZRTiAsSDhV8366zq2YGb3tLH5Upf74F - asset_id: &asset_id 1 - asset_min_balance: &asset_ed 1000 - decodedCalls: - force_create_asset: - chain: *assets_parachain - pallet: assets - call: forceCreate - args: [ - *asset_id, - { Id: *ap_wallet }, # owner - true, # isSufficient - *asset_ed # minBalance - ] - -tests: - - name: DMP - its: [] - describes: - - name: xcmPallet.limitedTeleportAssets - before: &before_get_balances - - name: Get the balances of the Relay Chain's sender & Assets Parachain's receiver - actions: - - queries: - balance_rc_sender_before: - chain: *relay_chain - pallet: system - call: account - args: [ *rc_wallet ] - balance_ap_receiver_before: - chain: *assets_parachain - pallet: system - call: account - args: [ *ap_wallet ] - its: - - name: Should teleport native assets from the Relay Chain to the Assets Parachain - actions: - - extrinsics: - - chain: *relay_chain - signer: *rc_signer - pallet: xcmPallet - call: limitedTeleportAssets - args: [ - *ap_dest, # destination - *ap_benf, # beneficiary - { v3: [ *rc_ksm_fungible ] }, # assets - 0, # feeAssetItem - { unlimited: true } # weightLimit - ] - events: - - name: xcmPallet.Attempted - threshold: *weight_threshold - result: { outcome: { Complete: { refTime: '3,000,000,000', proofSize: 0 }}} - - name: dmpQueue.ExecutedDownward - chain: *assets_parachain - threshold: *weight_threshold - result: { outcome: { Complete: { refTime: '166,944,000', proofSize: 0 }}} - - queries: - balance_rc_sender_after: - chain: *relay_chain - pallet: system - call: account - args: [ *rc_wallet ] - balance_ap_receiver_after: - chain: *assets_parachain - pallet: system - call: account - args: [ *ap_wallet ] - - - name: Should reduce the balance of the sender - actions: - - asserts: - balanceDecreased: - args: [ - { - balances: { - before: $balance_rc_sender_before, - after: $balance_rc_sender_after, - }, - amount: *amount - } - ] - - - name: Should increase the balance of the receiver - actions: - - asserts: - balanceIncreased: - args: [ - { - balances: { - before: $balance_ap_receiver_before, - after: $balance_ap_receiver_after, - } - } - ] - - - name: xcmPallet.send | Superuser - Transact(assets.forceCreate) - its: - - name: Relay Chain Superuser account SHOULD be able to execute a XCM Transact instruction in the Assets Parachain - actions: - - extrinsics: - - chain: *relay_chain - signer: *rc_signer - sudo: true - pallet: xcmPallet - call: send - args: [ - *ap_dest, # destination - { - v3: [ #message - { - UnpaidExecution: { - weightLimit: Unlimited - } - }, - { - Transact: { - originType: Superuser, - requireWeightAtMost: *rc_weight_at_most, - call: $force_create_asset - } - } - ] - } - ] - events: - - name: xcmPallet.Sent - - name: dmpQueue.ExecutedDownward - chain: *assets_parachain - threshold: *weight_threshold - result: { outcome: { Complete: { refTime: '1,014,103,000', proofSize: '200,000' }}} - - queries: - forced_created_asset: - chain: *assets_parachain - pallet: assets - call: asset - args: [ *asset_id ] - - asserts: - isSome: - args: [ $forced_created_asset ] - - - name: xcmPallet.send | Native - Transact(assets.forceCreate) - its: - - name: Relay Chain Native account SHOULD NOT be able to execute a XCM Transact instruction in the Assets Parachain - actions: - - extrinsics: - - chain: *relay_chain - signer: *rc_signer - pallet: xcmPallet - call: send - args: [ - *ap_dest, # destination - { - v3: [ #message - { - UnpaidExecution: { - weightLimit: Unlimited - } - }, - { - Transact: { - originType: Native, - requireWeightAtMost: *rc_weight_at_most, - call: $force_create_asset - } - } - ] - } - ] - events: - - name: system.ExtrinsicFailed - result: { dispatchError: BadOrigin } - - - name: xcmPallet.limitedReserveTransferAssets - before: *before_get_balances - its: - - name: SHOULD NOT reserved transfer native assets from the Relay Chain to the Assets Parachain - actions: - - extrinsics: - - chain: *relay_chain - signer: *rc_signer - pallet: xcmPallet - call: limitedReserveTransferAssets - args: [ - *ap_dest, # destination - *ap_benf, # beneficiary - { v3: [ *rc_ksm_fungible ] }, # assets - 0, # feeAssetItem - { unlimited: true } # weightLimit - ] - events: - - name: xcmPallet.Attempted - threshold: *weight_threshold - result: { outcome: { Complete: { refTime: '2,000,000,000', proofSize: 0 }}} - - name: dmpQueue.ExecutedDownward - chain: *assets_parachain - threshold: *weight_threshold - result: { - outcome: { - Incomplete: [ - { refTime: '1,000,000,000', proofSize: 0 }, - UntrustedReserveLocation - ] - } - } - - queries: - balance_rc_sender_after: - chain: *relay_chain - pallet: system - call: account - args: [ *rc_wallet ] - balance_ap_receiver_after: - chain: *assets_parachain - pallet: system - call: account - args: [ *ap_wallet ] - - - name: Should reduce the balance of the sender - actions: - - asserts: - balanceDecreased: - args: [ - { - balances: { - before: $balance_rc_sender_before, - after: $balance_rc_sender_after, - }, - amount: *amount - } - ] - - - name: Should keep the balance of the receiver - actions: - - asserts: - equal: - args: - [ - $balance_ap_receiver_before, - $balance_ap_receiver_after - ] diff --git a/cumulus/parachains/integration-tests/e2e/assets/asset-hub-westend/0_xcm/2_ump.yml b/cumulus/parachains/integration-tests/e2e/assets/asset-hub-westend/0_xcm/2_ump.yml deleted file mode 100644 index fa84d4b006a7..000000000000 --- a/cumulus/parachains/integration-tests/e2e/assets/asset-hub-westend/0_xcm/2_ump.yml +++ /dev/null @@ -1,194 +0,0 @@ ---- -settings: - chains: - relay_chain: &relay_chain - wsPort: 9800 - assets_parachain: &assets_parachain - wsPort: 9810 - paraId: &ap_id 1000 - variables: - common: - amount: &amount 1000000000000 - require_weight_at_most: &weight_at_most {refTime: 1000000000, proofSize: 0} - weight_threshold: &weight_threshold { refTime: [10, 10], proofSize: [10, 10] } - chains: - relay_chain: - signer: &rc_signer //Alice - wallet: &rc_wallet HNZata7iMYWmk5RvZRTiAsSDhV8366zq2YGb3tLH5Upf74F - assets_parachain_destination: &ap_dest { v3: { 0, interior: { x1: { parachain: *ap_id }}}} - assets_parachain_account: &ap_acc '0xd43593c715fdd31c61141abd04a99fd6822c8558854ccde39a5684e7a56da27d' - assets_parachain_beneficiary: &ap_benf {v3: { parents: 0, interior: { x1: { accountId32: { id: *ap_acc }}}}} - ksm: &rc_ksm { concrete: { 0, interior: { here: true }}} - ksm_fungible: &rc_ksm_fungible { id: *rc_ksm, fun: { fungible: *amount }} - assets_parachain_account: - signer: &ap_signer //Alice - wallet: &ap_wallet HNZata7iMYWmk5RvZRTiAsSDhV8366zq2YGb3tLH5Upf74F - relay_chain_destination: &rc_dest { v3: { parents: 1, interior: { here: true }}} - assets_parachain_account: &rc_acc '0xd43593c715fdd31c61141abd04a99fd6822c8558854ccde39a5684e7a56da27d' - relay_chain_beneficiary: &rc_benf {v3: { parents: 0, interior: { x1: { accountId32: { id: *rc_acc }}}}} - ksm: &ap_ksm { concrete: { parents: 1, interior: { here: true }}} - ksm_fungible: &ap_ksm_fungible { id: *ap_ksm, fun: { fungible: *amount }} - decodedCalls: - system_remark: - chain: *relay_chain - pallet: system - call: remark - args: [ 0x0011 ] - -tests: - - name: UMP - describes: - - name: polkadotXcm.limitedTeleportAssets - before: - - name: DEPENDENCY | Do a 'limitedTeleportAssets' from the Relay Chain to the Assets Parachain to have funds to send them back - actions: - - extrinsics: - - chain: *relay_chain - signer: *rc_signer - pallet: xcmPallet - call: limitedTeleportAssets - args: [ - *ap_dest, # destination - *ap_benf, # beneficiary - { v3: [ *rc_ksm_fungible ] }, # assets - 0, # feeAssetItem - { unlimited: true } # weightLimit - ] - events: - - name: xcmPallet.Attempted - threshold: *weight_threshold - result: { outcome: { Complete: { refTime: '3,000,000,000', proofSize: 0 }}} - - name: dmpQueue.ExecutedDownward - chain: *assets_parachain - threshold: *weight_threshold - result: { outcome: { Complete: { refTime: '166,944,000', proofSize: 0 }}} - - - name: Get the balances of the Assets Parachain's sender & Relay Chain's receiver - actions: - - queries: - balance_ap_sender_before: - chain: *assets_parachain - pallet: system - call: account - args: [ *ap_wallet ] - balance_rc_receiver_before: - chain: *relay_chain - pallet: system - call: account - args: [ *rc_wallet ] - - its: - - name: Should be able to teleport native assets back from Assets Parachain to the Relay Chain - actions: - - extrinsics: - - chain: *assets_parachain - signer: *ap_signer - pallet: polkadotXcm - call: limitedTeleportAssets - args: [ - *rc_dest, # destination - *rc_benf, # beneficiary - { v3: [ *ap_ksm_fungible ] }, # assets - 0, # feeAssetItem - { unlimited: true } # weightLimit - ] - events: - - name: polkadotXcm.Attempted - threshold: *weight_threshold - result: { outcome: { Complete: { refTime: '533,283,000', proofSize: '7,096' }}} - - name: messageQueue.Processed - chain: *relay_chain - threshold: *weight_threshold - result: { origin: { Ump: { Para: '1,000' } }, weightUsed: { refTime: '4,000,000,000', proofSize: '0' }, success: true } - - queries: - balance_ap_sender_after: - chain: *assets_parachain - pallet: system - call: account - args: [ *ap_wallet ] - balance_rc_receiver_after: - chain: *relay_chain - pallet: system - call: account - args: [ *rc_wallet ] - - - name: Should reduce the balance of the sender - actions: - - asserts: - balanceDecreased: - args: [ - { - balances: { - before: $balance_ap_sender_before, - after: $balance_ap_sender_after, - }, - amount: *amount - } - ] - - - name: Should increase the balance of the receiver - actions: - - asserts: - balanceIncreased: - args: [ - { - balances: { - before: $balance_rc_receiver_before, - after: $balance_rc_receiver_after, - } - } - ] - - - name: polkadotXcm.send | Native - Transact(system.remark) - its: - - name: Assets Parachain SHOULD NOT be able to dispatch 'send' call - actions: - - extrinsics: - - chain: *assets_parachain - signer: *ap_signer - pallet: polkadotXcm - call: send - args: [ - *rc_dest, # destination - { - v3: [ #message - { - UnpaidExecution: { - weightLimit: Unlimited - } - }, - { - Transact: { - originType: Native, - requireWeightAtMost: *weight_at_most, - call: $system_remark - } - } - ] - } - ] - events: - - name: system.ExtrinsicFailed - attributes: - - type: SpRuntimeDispatchError - value: BadOrigin - - - name: polkadotXcm.limitedReserveTransferAssets - its: - - name: Should NOT be able to reserve transfer native assets from the Assets Parachain to the Relay Chain - actions: - - extrinsics: - - chain: *assets_parachain - signer: *ap_signer - pallet: polkadotXcm - call: limitedReserveTransferAssets - args: [ - *rc_dest, # destination - *rc_benf, # beneficiary - { v3: [ *ap_ksm_fungible ] }, # assets - 0, # feeAssetItem - { unlimited: true } # weightLimit - ] - events: - - name: polkadotXcm.Attempted - result: { outcome: { Error: Barrier }} diff --git a/cumulus/parachains/integration-tests/e2e/assets/asset-hub-westend/0_xcm/3_force_hrmp-open-channels.yml b/cumulus/parachains/integration-tests/e2e/assets/asset-hub-westend/0_xcm/3_force_hrmp-open-channels.yml deleted file mode 100644 index ecf344a073b4..000000000000 --- a/cumulus/parachains/integration-tests/e2e/assets/asset-hub-westend/0_xcm/3_force_hrmp-open-channels.yml +++ /dev/null @@ -1,120 +0,0 @@ ---- -settings: - chains: - relay_chain: &relay_chain - wsPort: 9800 - assets_parachain: - wsPort: 9810 - paraId: &ap_id 1000 - penpal_parachain: - wsPort: 9820 - paraId: &pp_id 2000 - variables: - common: - amount: &amount 2000000000000 - hrmp_channels: - proposed_max_capacity: &max_capacity 8 - proposed_max_message_size: &max_message_size 8192 - channel: &channel { - maxCapacity: *max_capacity, - maxTotalSize: *max_message_size, - maxMessageSize: *max_message_size, - msgCount: 0, - totalSize: 0, - mqcHead: null, - senderDeposit: 0, - recipientDeposit: 0 - } - chains: - relay_chain: - signer: &rc_signer //Alice - assets_parachain_account: - sovereign_account: &ap_sovereign 5Ec4AhPZk8STuex8Wsi9TwDtJQxKqzPJRCH7348Xtcs9vZLJ - penpal_parachain: - sovereign_account: &pp_sovereign F7fq1jMZkfuCuoMTyiEVAP2DMpMt18WopgBqTJznLihLNbZ - -tests: - - name: HRMP - beforeEach: - - name: DEPENDENCY | Penpal Parachain Sovereign account in the Relay Chain needs to be funded - actions: - - extrinsics: - - chain: *relay_chain - signer: *rc_signer - pallet: balances - call: transfer - args: [ - *pp_sovereign, # destination - *amount, # value - ] - events: - - name: balances.Transfer - - - name: DEPENDENCY | Assets Parachain Sovereign account in the Relay Chain needs to be funded - actions: - - extrinsics: - - chain: *relay_chain - signer: *rc_signer - pallet: balances - call: transfer - args: [ - *ap_sovereign, # destination - *amount, # value - ] - events: - - name: balances.Transfer - describes: - - name: hrmp.hrmpInitOpenChannel (Penpal Parachain → Assets Parachain) - its: - - name: Open Penpal Parachain to Assets Parachain - actions: - - extrinsics: - - chain: *relay_chain - signer: *rc_signer - sudo: true - pallet: hrmp - call: forceOpenHrmpChannel - args: [ - *pp_id, - *ap_id, - *max_capacity, - *max_message_size - ] - events: - - name: sudo.Sudid - result: { sudoResult: Ok } - - name: hrmp.HrmpChannelForceOpened - - name: hrmp.hrmpInitOpenChannel (Assets Parachain → PenPal Parachain) - its: - - name: Open Assets Parachain to PenPal Parachain - actions: - - extrinsics: - - chain: *relay_chain - signer: *rc_signer - sudo: true - pallet: hrmp - call: forceOpenHrmpChannel - args: [ - *ap_id, - *pp_id, - *max_capacity, - *max_message_size - ] - events: - - name: sudo.Sudid - result: { sudoResult: Ok } - - name: hrmp.HrmpChannelForceOpened - - name: hrmp.forceProcessHrmpOpen (make sure all the channels are open) - its: - - name: Make sure all the pending channels are open - actions: - - extrinsics: - - chain: *relay_chain - signer: *rc_signer - sudo: true - pallet: hrmp - call: forceProcessHrmpOpen - args: [ 2 ] - events: - - name: sudo.Sudid - result: { sudoResult: Ok } diff --git a/cumulus/parachains/integration-tests/e2e/assets/asset-hub-westend/0_xcm/4_hrmp.yml b/cumulus/parachains/integration-tests/e2e/assets/asset-hub-westend/0_xcm/4_hrmp.yml deleted file mode 100644 index 681af698c16d..000000000000 --- a/cumulus/parachains/integration-tests/e2e/assets/asset-hub-westend/0_xcm/4_hrmp.yml +++ /dev/null @@ -1,388 +0,0 @@ ---- -# Note: This tests depends on the 3_hrmp-open-channels.yml for opening channels, otherwise teleports aren't going to -# work. -settings: - chains: - relay_chain: &relay_chain - wsPort: 9800 - assets_parachain: &assets_parachain - wsPort: 9810 - paraId: &ap_id 1000 - penpal_parachain: &penpal_parachain - wsPort: 9820 - paraId: &pp_id 2000 - variables: - common: - mint_amount: &mint_amount 1000000000000 - amount: &amount 1000000000000 - require_weight_at_most: &weight_at_most {refTime: 1200000000, proofSize: 20000} - amount_to_send: &amount_to_send 500000000000 - weight_threshold: &weight_threshold { refTime: [10, 10], proofSize: [10, 10] } - chains: - relay_chain: - signer: &rc_signer //Alice - assets_parachain_destination: &ap_dest { v3: { 0, interior: { x1: { parachain: *ap_id }}}} - assets_parachain_dest_routed: &ap_dest_routed { v3: { parents: 1, interior: { x1: { parachain: *ap_id } }}} - assets_parachain_account: - signer: &ap_signer //Alice - wallet: &ap_wallet 15oF4uVJwmo4TdGW7VfQxNLavjCXviqxT9S1MgbjMNHr6Sp5 - asset_id: &asset_id 2 - assets_pallet_id: &assets_pallet_id 50 - asset_min_balance: &asset_ed 1000 - penpal_parachain_destination: &pp_dest { v3: { parents: 1, interior: { x1: { parachain: *pp_id } }}} - ksm: &ap_ksm { concrete: { parents: 1, interior: { here: true }}} - ksm_fungible: &ap_ksm_fungible { id: *ap_ksm, fun: { fungible: *amount }} - suff_asset: &suff_asset { concrete: { parents: 0, interior: { x2: [ { PalletInstance: *assets_pallet_id }, { GeneralIndex: *asset_id } ] }}} - suff_asset_fail: &suff_asset_fail { concrete: { parents: 0, interior: { x2: [ { PalletInstance: *assets_pallet_id }, { GeneralIndex: 3 } ] }}} - suff_asset_fungible_fail: &ap_suff_asset_fungible_fail { id: *suff_asset_fail, fun: { fungible: 200000000000 }} - penpal_parachain: - sovereign_account: &pp_sovereign_sibl 13cKp89Msu7M2PiaCuuGr1BzAsD5V3vaVbDMs3YtjMZHdGwR - signer: &pp_signer //Alice - penpal_parachain_account: &pp_acc '0xd43593c715fdd31c61141abd04a99fd6822c8558854ccde39a5684e7a56da27d' - decodedCalls: - force_create_asset: - chain: *assets_parachain - pallet: assets - call: forceCreate - args: [ - *asset_id, - { Id: *ap_wallet }, # owner - true, # isSufficient - *asset_ed # minBalance - ] - force_create_asset2: - chain: *assets_parachain - pallet: assets - call: forceCreate - args: [ - *asset_id, - { Id: *ap_wallet }, # owner - true, # isSufficient - *asset_ed # minBalance - ] - -tests: - - name: HRMP - describes: - - name: polkadotXcm.limitedReserveTransferAssets (Asset) | Assets Parachain -> Penpal Parachain - before: - - name: DEPENDENCY | A sufficient Asset should exist in the Assets Parachain - actions: - - extrinsics: - - chain: *relay_chain - signer: *rc_signer - sudo: true - pallet: xcmPallet - call: send - args: [ - *ap_dest, # destination - { - v3: [ #message - { - UnpaidExecution: { - weightLimit: Unlimited - } - }, - { - SetTopic: '0x0123456789012345678901234567891201234567890123456789012345678912' - }, - { - Transact: { - originKind: Superuser, - requireWeightAtMost: *weight_at_most, - call: $force_create_asset - } - } - ] - } - ] - events: - - name: xcmPallet.Sent - - name: dmpQueue.ExecutedDownward - chain: *assets_parachain - threshold: *weight_threshold - result: { outcome: { Complete: { refTime: '1,216,703,000', proofSize: '20,000' }}} - - queries: - forced_created_asset: - chain: *assets_parachain - pallet: assets - call: asset - args: [ *asset_id ] - - asserts: - isSome: - args: [ $forced_created_asset ] - - - name: DEPENDENCY | Some Assets should be minted for the sender - actions: - - extrinsics: - - chain: *assets_parachain - signer: *ap_signer - pallet: assets - call: mint - args: [ - *asset_id, - *ap_wallet, - *mint_amount - ] - events: - - name: assets.Issued - result: { assetId: *asset_id, owner: *ap_wallet, amount: *mint_amount } - - its: - - name: Assets Parachain should be able to reserve transfer an Asset to Penpal Parachain - actions: - - extrinsics: - - chain: *assets_parachain - signer: *ap_signer - pallet: polkadotXcm - call: limitedReserveTransferAssets - args: [ - *pp_dest, # destination - { # beneficiary - V3: { - parents: 0, - interior: { - X1: { - AccountId32: { - id: *pp_acc - } - } - } - } - }, - { # assets - V3: [ - { - id: { - Concrete: { - parents: 0, - interior: { - X2: [ - { - PalletInstance: *assets_pallet_id - }, - { - GeneralIndex: *asset_id - } - ] - } - } - }, - fun: { - Fungible: *amount_to_send - } - } - ] - }, - 0, # feeAssetItem - Unlimited # weightLimit - ] - events: - - name: polkadotXcm.Attempted - threshold: *weight_threshold - result: { outcome: { Complete: { refTime: '673,627,000', proofSize: '6,196' }}} - - name: assets.Transferred - result: { - assetId: *asset_id, - from: *ap_wallet, - to: *pp_sovereign_sibl, - amount: *amount_to_send - } - - - name: polkadotXcm.limitedReserveTransferAssets (KSM) | Assets Parachain -> Penpal Parachain - its: - - name: Assets Parachain should be able to reserve transfer KSM to Penpal Parachain - actions: - - extrinsics: - - chain: *assets_parachain - signer: *ap_signer - pallet: polkadotXcm - call: limitedReserveTransferAssets - args: [ - *pp_dest, # destination - { # beneficiary - V3: { - parents: 0, - interior: { - X1: { - AccountId32: { - id: *pp_acc - } - } - } - } - }, - { # assets - V3: [ - *ap_ksm_fungible - ] - }, - 0, # feeAssetItem - Unlimited # weightLimit - ] - events: - - name: polkadotXcm.Attempted - threshold: *weight_threshold - result: { outcome: { Complete: { refTime: '679,150,000', proofSize: '6,196' }}} - - name: balances.Endowed - result: { - account: *pp_sovereign_sibl, - freeBalance: *amount - } - - - name: polkadotXcm.send( assets.forceCreateAsset ) | Penpal Parachain -> Assets Parachain - before: - - name: Get the asset balance of the Penpal Parachain Sovereign account in Assets Parachain - actions: - - queries: - assets_balance_pp_sovereign_before: - chain: *assets_parachain - pallet: assets - call: account - args: [ - *asset_id, - *pp_sovereign_sibl - ] - its: - - name: Penpal Parachain should be able to send XCM message paying its fee with sufficient asset in Assets Parachain - actions: - - extrinsics: - - chain: *penpal_parachain - signer: *pp_signer - sudo: true - pallet: polkadotXcm - call: send - args: [ - *ap_dest_routed, # destination - { - v3: [ #message - { - WithdrawAsset: [ - { - id: { - concrete: { - parents: 0, - interior: { - X2: [ - { PalletInstance: *assets_pallet_id }, - { GeneralIndex: *asset_id } - ] - } - } - }, - fun: { fungible: *amount_to_send }} - ] - }, - { - BuyExecution: { - fees: { id: *suff_asset, fun: { fungible: *amount_to_send }}, - weightLimit: Unlimited - } - }, - { - Transact: { - originKind: SovereignAccount, - requireWeightAtMost: *weight_at_most, - call: $force_create_asset2 - } - }, - { - RefundSurplus - }, - { - DepositAsset: { - assets: { Wild: All }, - beneficiary: { - parents: 0, - interior: { - X1: { - AccountId32: { - network: , # None - id: *pp_acc - } - } - }} - } - } - ] - } - ] - events: - - name: sudo.Sudid - result: { sudoResult: Ok } - - name: polkadotXcm.Sent - - name: assets.Burned - chain: *assets_parachain - result: { assetId: *asset_id, owner: *pp_sovereign_sibl } - - name: assets.Issued - chain: *assets_parachain - result: { assetId: *asset_id } - - queries: - assets_balance_pp_sovereign_after: - chain: *assets_parachain - pallet: assets - call: account - args: [ - *asset_id, - *pp_sovereign_sibl - ] - forced_created_asset2: - chain: *assets_parachain - pallet: assets - call: asset - args: [ 3 ] - - asserts: - isSome: - args: [ $forced_created_asset2 ] - - name: Should reduce the assets balance of the Penpal Parachain's SovereignAccount in the Assets Parachain - actions: - - asserts: - assetsDecreased: - args: [ - { - balances: { - before: $assets_balance_pp_sovereign_before, - after: $assets_balance_pp_sovereign_after, - }, - } - ] - - - name: Penpal Parachain SHOULD NOT be able to send XCM message paying its fee with sufficient assets if not enough balance - actions: - - extrinsics: - - chain: *penpal_parachain - signer: *pp_signer - sudo: true - pallet: polkadotXcm - call: send - args: [ - *ap_dest_routed, # destination - { - v3: [ #message - { - WithdrawAsset: [*ap_suff_asset_fungible_fail] - }, - { - BuyExecution: { - fees: *ap_suff_asset_fungible_fail, - weightLimit: Unlimited - } - }, - { - Transact: { - originKind: SovereignAccount, - requireWeightAtMost: *weight_at_most, - call: $force_create_asset2 - } - } - ] - } - ] - events: - - name: xcmpQueue.Fail - chain: *assets_parachain - threshold: *weight_threshold - result: { - error: FailedToTransactAsset, - weight: { refTime: '152,426,000', proofSize: '3,593' } - } diff --git a/cumulus/parachains/integration-tests/e2e/assets/asset-hub-westend/config.toml b/cumulus/parachains/integration-tests/e2e/assets/asset-hub-westend/config.toml deleted file mode 100644 index 5d439624abea..000000000000 --- a/cumulus/parachains/integration-tests/e2e/assets/asset-hub-westend/config.toml +++ /dev/null @@ -1,72 +0,0 @@ -[relaychain] -default_command = "./bin/polkadot" -default_args = [ "-lparachain=debug", "-lxcm=trace" ] -chain = "westend-local" - - [[relaychain.nodes]] - name = "alice" - ws_port = 9800 - validator = true - args = ["--state-cache-size=0"] - - [[relaychain.nodes]] - name = "bob" - ws_port = 9801 - validator = true - - [[relaychain.nodes]] - name = "charlie" - ws_port = 9802 - validator = true - - [[relaychain.nodes]] - name = "dave" - ws_port = 9803 - validator = true - -[[parachains]] -id = 1000 -chain = "asset-hub-westend-local" -cumulus_based = true - - [[parachains.collators]] - name = "collator1" - ws_port = 9810 - command = "./bin/polkadot-parachain" - args = [ "-lxcm=trace", "--state-cache-size=0" ] - - [[parachains.collators]] - name = "collator2" - ws_port = 9811 - command = "./bin/polkadot-parachain" - args = [ "-lxcm=trace" ] - - -[[parachains]] -id = 2000 -chain = "penpal-westend-2000" -cumulus_based = true - - [[parachains.collators]] - name = "collator3" - ws_port = 9820 - command = "./bin/polkadot-parachain" - args = [ "-lxcm=trace", "--state-cache-size=0" ] - - [[parachains.collators]] - name = "collator4" - ws_port = 9821 - command = "./bin/polkadot-parachain" - args = [ "-lxcm=trace" ] - -# [[hrmpChannels]] -# sender = 1000 -# recipient = 2000 -# maxCapacity = 8 -# maxMessageSize = 8192 - -# [[hrmpChannels]] -# sender = 2000 -# recipient = 1000 -# maxCapacity = 8 -# maxMessageSize = 8192 diff --git a/cumulus/parachains/integration-tests/e2e/collectives/collectives-westend/0_xcm/0_init.yml b/cumulus/parachains/integration-tests/e2e/collectives/collectives-westend/0_xcm/0_init.yml deleted file mode 100644 index 33f4d603e2a7..000000000000 --- a/cumulus/parachains/integration-tests/e2e/collectives/collectives-westend/0_xcm/0_init.yml +++ /dev/null @@ -1,166 +0,0 @@ ---- -settings: - chains: - relay_chain: &relay_chain - wsPort: 9700 - collectives_parachain: &collectives_parachain - wsPort: 9710 - paraId: &cp_id 1001 - assethub_parachain: &assethub_parachain - wsPort: 9810 - paraId: &sp_id 1000 - variables: - xcm_version: &xcm_version 3 - weight_threshold: &weight_threshold { refTime: [10, 10], proofSize: [10, 10] } - chains: - accounts: - alice_signer: &alice_signer //Alice - decodedCalls: - ap_force_xcm_version: - chain: *collectives_parachain - pallet: polkadotXcm - call: forceXcmVersion - args: [ - { # location - parents: 1, - interior: Here - }, - *xcm_version - ] - -tests: - - name: Initialize Chains - its: - - name: XCM supported versions between chains - actions: - - extrinsics: # Relay Chain sets supported version for Collectives Parachain - - chain: *relay_chain - sudo: true - signer: *alice_signer - pallet: xcmPallet - call: forceXcmVersion - args: [ - { # location - parents: 0, - interior: { - X1: { - Parachain: *cp_id - } - } - }, - *xcm_version - ] - events: - - name: sudo.Sudid - result: { sudoResult: Ok } - - name: xcmPallet.SupportedVersionChanged - result: { location: { parents: 0, interior: { X1: { Parachain: *cp_id }}}, version: *xcm_version } - - extrinsics: # Collectives Parachain sets supported version for Relay Chain through it - - chain: *relay_chain - signer: *alice_signer - sudo: true - pallet: xcmPallet - call: send - args: [ - { v3: { 0, interior: { x1: { parachain: *cp_id }}}}, # destination - { - v3: [ # message - { - UnpaidExecution: { - weightLimit: { - limited: { - refTime: 2200000000, # 2_200_000_000 - proofSize: 200000, # 200_000 - }, - } - } - }, - { - Transact: { - originKind: Superuser, - requireWeightAtMost: { - refTime: 200000000, # 200_000_000 - proofSize: 0, - }, - call: $ap_force_xcm_version - } - } - ] - } - ] - events: - - name: sudo.Sudid - result: { sudoResult: Ok } - - name: xcmPallet.Sent - - name: polkadotXcm.SupportedVersionChanged - chain: *collectives_parachain - result: { location: { parents: 1, interior: Here }, version: *xcm_version } - - name: dmpQueue.ExecutedDownward - chain: *collectives_parachain - threshold: *weight_threshold - result: { outcome: { Complete: { refTime: '2,200,000,000', proofSize: 0 }}} - - extrinsics: # Relay Chain sets supported version for AssetHub Parachain - - chain: *relay_chain - sudo: true - signer: *alice_signer - pallet: xcmPallet - call: forceXcmVersion - args: [ - { # location - parents: 0, - interior: { - X1: { - Parachain: *sp_id - } - } - }, - *xcm_version - ] - events: - - name: sudo.Sudid - result: { sudoResult: Ok } - - name: xcmPallet.SupportedVersionChanged - result: { location: { parents: 0, interior: { X1: { Parachain: *sp_id } } }, version: *xcm_version } - - extrinsics: # AssetHub Parachain sets supported version for Relay Chain through it - - chain: *relay_chain - signer: *alice_signer - sudo: true - pallet: xcmPallet - call: send - args: [ - { v3: { 0, interior: { x1: { parachain: *sp_id }}}}, # destination - { - v3: [ # message - { - UnpaidExecution: { - weightLimit: { - limited: { - refTime: 2200000000, # 2_200_000_000 - proofSize: 200000, # 200_000 - }, - } - } - }, - { - Transact: { - originKind: Superuser, - requireWeightAtMost: { - refTime: 200000000, # 200_000_000 - proofSize: 0, - }, - call: $ap_force_xcm_version - } - } - ] - } - ] - events: - - name: sudo.Sudid - result: { sudoResult: Ok } - - name: xcmPallet.Sent - - name: polkadotXcm.SupportedVersionChanged - chain: *assethub_parachain - result: { location: { parents: 1, interior: Here }, version: *xcm_version } - - name: dmpQueue.ExecutedDownward - chain: *assethub_parachain - result: { outcome: { Complete: {} } } diff --git a/cumulus/parachains/integration-tests/e2e/collectives/collectives-westend/0_xcm/1_teleport.yml b/cumulus/parachains/integration-tests/e2e/collectives/collectives-westend/0_xcm/1_teleport.yml deleted file mode 100644 index cda04859b195..000000000000 --- a/cumulus/parachains/integration-tests/e2e/collectives/collectives-westend/0_xcm/1_teleport.yml +++ /dev/null @@ -1,168 +0,0 @@ ---- -settings: - chains: - relay_chain: &relay_chain - wsPort: 9700 - collectives_parachain: &collectives_parachain - wsPort: 9710 - paraId: &cp_id 1001 - variables: - weight_threshold: &weight_threshold { refTime: [10, 10], proofSize: [10, 10] } - accounts: - alice_signer: &acc_alice_signer //Alice - alice_account32: &acc_alice_acc32 '0xd43593c715fdd31c61141abd04a99fd6822c8558854ccde39a5684e7a56da27d' - alice_ss58: &acc_alice_ss58 '15oF4uVJwmo4TdGW7VfQxNLavjCXviqxT9S1MgbjMNHr6Sp5' - checking_account: &checking_account '13UVJyLnbVp9x5XDyJv8g8r3UddNwBrdaH7AADCmw9XQWvYW' - -tests: - - name: Teleport assets from Relay Chain to Collectives Parachain successful. - before: - - name: Get the Alice balances on Relay & Collectives Chains. - actions: - - queries: - balance_rc_alice_1: - chain: *relay_chain - pallet: system - call: account - args: [ *acc_alice_acc32 ] - balance_cp_alice_1: - chain: *collectives_parachain - pallet: system - call: account - args: [ *acc_alice_acc32 ] - its: - - name: Teleport assets from Relay Chain to Collectives Parachain - actions: - - extrinsics: - - chain: *relay_chain - signer: *acc_alice_signer - pallet: xcmPallet - call: teleportAssets - args: [ - { v3: { 0, interior: { x1: { parachain: *cp_id }}}}, # destination - { v3: { parents: 0, interior: { x1: { accountId32: { id: *acc_alice_acc32 }}}}}, # beneficiary - { - v3: [ - # { - # # TODO use a separate Assets to pay a fee, to receive an exact amount of assets on beneficiary account. - # # a call with two assets fails with an error right now. - # id: { concrete: { 0, interior: { here: true }}}, - # fun: { fungible: 1000000000000 } # 1_000_000_000_000 - # }, - { - id: { concrete: { 0, interior: { here: true }}}, - fun: { fungible: 20000000000000 } # 20_000_000_000_000 - } - ] - }, # assets - 0, # feeAssetItem - ] - events: - - name: xcmPallet.Attempted - threshold: *weight_threshold - result: { outcome: { Complete: { refTime: '3,000,000,000', proofSize: 0 }}} - - name: dmpQueue.ExecutedDownward - chain: *collectives_parachain - threshold: *weight_threshold - result: { outcome: { Complete: { refTime: '4,000,000,000', proofSize: 0 }}} - - queries: - balance_rc_alice_2: - chain: *relay_chain - pallet: system - call: account - args: [ *acc_alice_acc32 ] - balance_cp_alice_2: - chain: *collectives_parachain - pallet: system - call: account - args: [ *acc_alice_acc32 ] - - name: Alice deposit check, balance decreased on Relay Chain, increased on Collectives. - actions: - - asserts: - balanceDecreased: - args: [ - { - balances: { - before: $balance_rc_alice_1, - after: $balance_rc_alice_2, - } - } - ] - balanceIncreased: - args: [ - { - balances: { - before: $balance_cp_alice_1, - after: $balance_cp_alice_2, - } - } - ] - - - name: Teleport assets from Collectives Parachain to Relay Chain successful - actions: - - extrinsics: - - chain: *collectives_parachain - signer: *acc_alice_signer - pallet: polkadotXcm - call: teleportAssets - args: [ - { v3: { parents: 1, interior: { here: true }}}, # destination - { v3: { parents: 0, interior: { x1: { accountId32: { id: *acc_alice_acc32 }}}}}, # beneficiary - { - v3: [ - { - id: { concrete: { parents: 1, interior: { here: true }}}, - fun: { fungible: 10000000000000 } # 10_000_000_000_000 - } - ] - }, # assets - 0, # feeAssetItem - ] - events: - - name: balances.Withdraw - result: { who: *acc_alice_ss58, amount: 10000000000000 } - - name: polkadotXcm.Attempted - threshold: *weight_threshold - result: { outcome: { Complete: { refTime: '3,000,000,000', proofSize: 0 }}} - - name: balances.Withdraw - chain: *relay_chain - result: { who: *checking_account, amount: 10000000000000 } # amount received and withdrawn from registry account - - name: messageQueue.Processed - chain: *relay_chain - threshold: *weight_threshold - result: { origin: { Ump: { Para: *cp_id } }, weightUsed: { refTime: '4,000,000,000', proofSize: '0' }, success: true } - - queries: - balance_rc_alice_3: - chain: *relay_chain - pallet: system - call: account - args: [ *acc_alice_acc32 ] - balance_cp_alice_3: - chain: *collectives_parachain - pallet: system - call: account - args: [ *acc_alice_acc32 ] - - - name: Alice deposit check, balance decreased on Collectives, increased on Relay Chain. - actions: - - asserts: - balanceDecreased: - args: [ - { - balances: { - before: $balance_cp_alice_2, - after: $balance_cp_alice_3, - } - } - ] - balanceIncreased: - args: [ - { - balances: { - before: $balance_rc_alice_2, - after: $balance_rc_alice_3, - } - } - ] -# TODO (P2) assert Alice balance before and after teleport (see example in kick_member test) -# TODO (P1) test: teleport of non relay chain assets fails diff --git a/cumulus/parachains/integration-tests/e2e/collectives/collectives-westend/0_xcm/2_reserve.yml b/cumulus/parachains/integration-tests/e2e/collectives/collectives-westend/0_xcm/2_reserve.yml deleted file mode 100644 index bd17f07524a2..000000000000 --- a/cumulus/parachains/integration-tests/e2e/collectives/collectives-westend/0_xcm/2_reserve.yml +++ /dev/null @@ -1,53 +0,0 @@ ---- -settings: - chains: - relay_chain: &relay_chain - wsPort: 9700 - collectives_parachain: &collectives_parachain - wsPort: 9710 - paraId: &cp_id 1001 - variables: - weight_threshold: &weight_threshold { refTime: [10, 10], proofSize: [10, 10] } - chains: - accounts: - alice_signer: &alice_signer //Alice - alice_account32: &alice_acc32 '0xd43593c715fdd31c61141abd04a99fd6822c8558854ccde39a5684e7a56da27d' - -tests: - - name: Reserve assets from Relay Chain to Collectives Parachain fails - its: - - name: Reserve assets from Relay Chain to Collectives Parachain - actions: - - extrinsics: - - chain: *relay_chain - signer: *alice_signer - pallet: xcmPallet - call: reserveTransferAssets - args: [ - { v3: { 0, interior: { x1: { parachain: *cp_id }}}}, # destination - { v3: { parents: 0, interior: { x1: { accountId32: { id: *alice_acc32 }}}}}, # beneficiary - { - v3: [ - { - id: { concrete: { 0, interior: { here: true }}}, - fun: { fungible: 20000000000000 } # 20_000_000_000_000 - } - ] - }, # assets - 0, # feeAssetItem - ] - events: - - name: xcmPallet.Attempted - threshold: *weight_threshold - result: { outcome: { Complete: { refTime: '2,000,000,000', proofSize: 0 }}} - - name: dmpQueue.ExecutedDownward - chain: *collectives_parachain - threshold: *weight_threshold - result: { - outcome: { - Incomplete: [ - { refTime: '1,000,000,000', proofSize: 0 }, - UntrustedReserveLocation - ] - } - } diff --git a/cumulus/parachains/integration-tests/e2e/collectives/collectives-westend/0_xcm/3_hrmp-open-channels.yml b/cumulus/parachains/integration-tests/e2e/collectives/collectives-westend/0_xcm/3_hrmp-open-channels.yml deleted file mode 100644 index 17a16d9ccd7d..000000000000 --- a/cumulus/parachains/integration-tests/e2e/collectives/collectives-westend/0_xcm/3_hrmp-open-channels.yml +++ /dev/null @@ -1,69 +0,0 @@ ---- -settings: - chains: - relay_chain: &relay_chain - wsPort: 9700 - collectives_parachain: &collectives_parachain - wsPort: 9710 - paraId: &cp_id 1001 - assethub_parachain: &assethub_parachain - wsPort: 9810 - paraId: &sp_id 1000 - variables: - chains: - accounts: - alice_signer: &alice_signer //Alice - hrmp: - proposed_max_capacity: &hrmp_proposed_max_capacity 8 - proposed_max_message_size: &hrmp_proposed_max_message_size 8192 -tests: - - name: HRMP - describes: - - name: Force Open HRMP Channel From Collectives Parachain → AssetHub Parachain - its: - - name: Alice calls hrmp.forceOpenHrmpChannel - actions: - - extrinsics: - - chain: *relay_chain - signer: *alice_signer - sudo: true - pallet: hrmp - call: forceOpenHrmpChannel - args: [ - *cp_id, # sender - *sp_id, # recipient - *hrmp_proposed_max_capacity, # proposedMaxCapacity - *hrmp_proposed_max_message_size # proposedMaxMessageSize - ] - events: - - name: hrmp.HrmpChannelForceOpened - result: { - sender: *cp_id, - recipient: *sp_id, - proposed_max_capacity: *hrmp_proposed_max_capacity, - proposed_max_message_size: *hrmp_proposed_max_message_size - } - - name: Force Open HRMP Channel From AssetHub Parachain → Collectives Parachain - its: - - name: Alice calls hrmp.forceOpenHrmpChannel - actions: - - extrinsics: - - chain: *relay_chain - signer: *alice_signer - sudo: true - pallet: hrmp - call: forceOpenHrmpChannel - args: [ - *sp_id, # sender - *cp_id, # recipient - *hrmp_proposed_max_capacity, # proposedMaxCapacity - *hrmp_proposed_max_message_size # proposedMaxMessageSize - ] - events: - - name: hrmp.HrmpChannelForceOpened - result: { - sender: *sp_id, - recipient: *cp_id, - proposed_max_capacity: *hrmp_proposed_max_capacity, - proposed_max_message_size: *hrmp_proposed_max_message_size - } diff --git a/cumulus/parachains/integration-tests/e2e/collectives/collectives-westend/1_alliance/0_join_alliance_fails.yml b/cumulus/parachains/integration-tests/e2e/collectives/collectives-westend/1_alliance/0_join_alliance_fails.yml deleted file mode 100644 index 9aff8b1db102..000000000000 --- a/cumulus/parachains/integration-tests/e2e/collectives/collectives-westend/1_alliance/0_join_alliance_fails.yml +++ /dev/null @@ -1,29 +0,0 @@ ---- -settings: - chains: - relay_chain: - wsPort: 9700 - collectives_parachain: &collectives_parachain - wsPort: 9710 - variables: - accounts: - alice_signer: &alice_signer //Alice - -tests: - - name: Alice fails to join an the Alliance, since it is not initialized yet. - its: - - name: Alice joins alliance - actions: - - extrinsics: # Relay Chain sets supported version for Asset Parachain - - chain: *collectives_parachain - signer: *alice_signer - pallet: alliance - call: joinAlliance - args: [] - events: - - name: system.ExtrinsicFailed - result: { - dispatchError: { Module: { index: 50, error: '0x00000000' }} - } - # TODO assert with Alliance Error variant - alliance.AllianceNotYetInitialized - # issue - https://github.com/paritytech/parachains-integration-tests/issues/59 diff --git a/cumulus/parachains/integration-tests/e2e/collectives/collectives-westend/1_alliance/1_init_alliance.yml b/cumulus/parachains/integration-tests/e2e/collectives/collectives-westend/1_alliance/1_init_alliance.yml deleted file mode 100644 index 1e01c701744a..000000000000 --- a/cumulus/parachains/integration-tests/e2e/collectives/collectives-westend/1_alliance/1_init_alliance.yml +++ /dev/null @@ -1,256 +0,0 @@ ---- -settings: - chains: - relay_chain: &relay_chain - wsPort: 9700 - collectives_parachain: &collectives_parachain - wsPort: 9710 - paraId: &coll_para_id 1001 - variables: - weight_threshold: &weight_threshold { refTime: [10, 10], proofSize: [10, 10] } - accounts: - alice_signer: &acc_alice_signer //Alice - liam_account32: &acc_liam_acc32 "0x3614671a5de540d891eb8c4939c8153a4aa790602b347c18177b86d0fc546221" # //Liam - olivia_account32: &acc_olivia_acc32 "0x24ee8a659c6716fe9f7cb4e9e028602aa12867654ca02737da9171b7ff697d5c" # //Olivia - noah_account32: &acc_noah_acc32 "0x9c6ad3bc3aa2f1b2e837898e6da9980445f7ef8b3eee0b8c8e305f8cfae68517" # //Noah - emma_account32: &acc_emma_acc32 "0x8ac272b333ba1127c8db57fa777ec820b24598a236efa648caf0d26d86f64572" # //Emma - james_account32: &acc_james_acc32 "0x9a52805151a0b5effc084af9264011139872a21a3950cb9ae0b2955c4bf92c18" # //James - ava_account32: &acc_ava_acc32 "0x348ef0b8776adbc09c862ddc29b1d193b9e24738e54eea3b0609c83856dc101c" # //Ava - mia_account32: &acc_mia_acc32 "0xaebf15374cf7e758d10232514c569a7abf81cc1b8f1e81a73dbc608a0e335264" # //Mia - decodedCalls: - init_alliance_members: - chain: *collectives_parachain - pallet: alliance - call: initMembers - args: [ - [ - *acc_liam_acc32, - *acc_olivia_acc32, - *acc_noah_acc32, - *acc_emma_acc32, - *acc_james_acc32, - *acc_ava_acc32 - ], - [ - *acc_mia_acc32 - ] - ] - init_alliance_voting_members: - chain: *collectives_parachain - pallet: alliance - call: initMembers - args: [ - [ - *acc_liam_acc32, - *acc_olivia_acc32, - *acc_noah_acc32, - *acc_emma_acc32, - *acc_james_acc32, - *acc_ava_acc32, - *acc_mia_acc32 - ], - [] - ] - disband: - chain: *collectives_parachain - pallet: alliance - call: disband - args: [ - { - fellowMembers: 6, - allyMembers: 1 - } - ] - -tests: - - name: Alliance initiated with the root call, second init call fails. Alliance disband and set again. - its: - - name: Alliance initiated, founders and fellows are set. - actions: - - extrinsics: - - chain: *relay_chain - signer: *acc_alice_signer - sudo: true - pallet: xcmPallet - call: send - args: [ - { v3: { parents: 0, interior: { x1: { parachain: *coll_para_id }}}}, # destination - { - v3: [ # message - { - UnpaidExecution: { - weightLimit: { - limited: { - refTime: 3000000000, # 3_000_000_000 - proofSize: 2000000, # 2_000_000 - }, - } - } - }, - { - Transact: { - originKind: Superuser, - requireWeightAtMost: { - refTime: 1000000000, # 1_000_000_000 - proofSize: 1000000, # 1_000_000 - }, - call: $init_alliance_members - } - } - ] - } - ] - events: - - name: sudo.Sudid - result: { sudoResult: Ok } - - name: xcmPallet.Sent - result: { origin: { parents: 0, interior: Here }, destination: { parents: 0, interior: { X1: { Parachain: *coll_para_id }}}} - - name: alliance.MembersInitialized - chain: *collectives_parachain - - name: dmpQueue.ExecutedDownward - chain: *collectives_parachain - threshold: *weight_threshold - result: { outcome: { Complete: { refTime: '3,000,000,000', proofSize: '1,000,000' }}} - - - name: Alliance init call fails. - actions: - - extrinsics: - - chain: *relay_chain - signer: *acc_alice_signer - sudo: true - pallet: xcmPallet - call: send - args: [ - { v3: { parents: 0, interior: { x1: { parachain: *coll_para_id }}}}, # destination - { - v3: [ # message - { - UnpaidExecution: { - weightLimit: { - limited: { - refTime: 3000000000, # 3_000_000_000 - proofSize: 2000000, # 2_000_000 - }, - } - } - }, - { - Transact: { - originKind: Superuser, - requireWeightAtMost: { - refTime: 1000000000, # 1_000_000_000 - proofSize: 1000000, # 1_000_000 - }, - call: $init_alliance_voting_members - } - } - ] - } - ] - events: - # TODO can not currently assert variant AllianceAlreadyInitialized, XCM Transact fails silently - # issue - https://github.com/paritytech/polkadot/issues/4623 - # Next test with a disband call will fail, if this call does not fail, - # since a witness data from a disband call will be invalid. - - name: sudo.Sudid - result: { sudoResult: Ok } - - name: xcmPallet.Sent - result: { origin: { parents: 0, interior: Here }, destination: { parents: 0, interior: { X1: { Parachain: *coll_para_id }}}} - - name: dmpQueue.ExecutedDownward - chain: *collectives_parachain - threshold: *weight_threshold - result: { outcome: { Complete: { refTime: '3,000,000,000', proofSize: '1,000,000' }}} - - - name: Alliance disbanded and initialized again. - actions: - - extrinsics: - - chain: *relay_chain - signer: *acc_alice_signer - sudo: true - pallet: xcmPallet - call: send - args: [ - { v3: { parents: 0, interior: { x1: { parachain: *coll_para_id }}}}, # destination - { - v3: [ # message - { - UnpaidExecution: { - weightLimit: { - limited: { - refTime: 5000000000, # 3_000_000_000 - proofSize: 1000000, # 1_000_000 - }, - } - } - }, - { - Transact: { - originKind: Superuser, - requireWeightAtMost: { - refTime: 3000000000, # 3_000_000_000 - proofSize: 200000, # 200_000 - }, - call: $disband - } - } - ] - } - ] - events: - - name: sudo.Sudid - result: { sudoResult: Ok } - - name: xcmPallet.Sent - result: { origin: { parents: 0, interior: Here }, destination: { parents: 0, interior: { X1: { Parachain: *coll_para_id }}}} - - name: alliance.AllianceDisbanded - chain: *collectives_parachain - result: { fellowMembers: 6, allyMembers: 1, unreserved: 0 } - - name: dmpQueue.ExecutedDownward - chain: *collectives_parachain - threshold: *weight_threshold - result: { outcome: { Complete: { refTime: '3,321,495,872', proofSize: '181,779' }}} - - name: Alliance initiated, founders and fellows are set. - actions: - - extrinsics: - - chain: *relay_chain - signer: *acc_alice_signer - sudo: true - pallet: xcmPallet - call: send - args: [ - { v3: { parents: 0, interior: { x1: { parachain: *coll_para_id }}}}, # destination - { - v3: [ # message - { - UnpaidExecution: { - weightLimit: { - limited: { - refTime: 3000000000, # 3_000_000_000 - proofSize: 2000000, # 2_000_000 - }, - } - } - }, - { - Transact: { - originKind: Superuser, - requireWeightAtMost: { - refTime: 1000000000, # 1_000_000_000 - proofSize: 1000000, # 1_000_000 - }, - call: $init_alliance_members - } - } - ] - } - ] - events: - - name: sudo.Sudid - result: { sudoResult: Ok } - - name: xcmPallet.Sent - result: { origin: { parents: 0, interior: Here }, destination: { parents: 0, interior: { X1: { Parachain: *coll_para_id }}}} - - name: alliance.MembersInitialized - chain: *collectives_parachain - - name: dmpQueue.ExecutedDownward - chain: *collectives_parachain - threshold: *weight_threshold - result: { outcome: { Complete: { refTime: '3,000,000,000', proofSize: '1,000,000' }}} diff --git a/cumulus/parachains/integration-tests/e2e/collectives/collectives-westend/1_alliance/2_join_alliance_fails.yml b/cumulus/parachains/integration-tests/e2e/collectives/collectives-westend/1_alliance/2_join_alliance_fails.yml deleted file mode 100644 index 2afdadae6022..000000000000 --- a/cumulus/parachains/integration-tests/e2e/collectives/collectives-westend/1_alliance/2_join_alliance_fails.yml +++ /dev/null @@ -1,30 +0,0 @@ ---- -settings: - chains: - relay_chain: - wsPort: 9700 - collectives_parachain: &collectives_parachain - wsPort: 9710 - paraId: 1001 - variables: - accounts: - liam_signer: &acc_liam_signer //Liam - -tests: - - name: Liam fails to join an the Alliance, Liam is already a member. - its: - - name: Alice joins alliance - actions: - - extrinsics: # Relay Chain sets supported version for Asset Parachain - - chain: *collectives_parachain - signer: *acc_liam_signer - pallet: alliance - call: joinAlliance - args: [] - events: - - name: system.ExtrinsicFailed - result: { - dispatchError: { Module: { index: 50, error: '0x02000000' }} - } - # TODO assert with Alliance Error variant - alliance.AllianceNotYetInitialized - # issue - https://github.com/paritytech/parachains-integration-tests/issues/59 diff --git a/cumulus/parachains/integration-tests/e2e/collectives/collectives-westend/1_alliance/3_kick_member.yml b/cumulus/parachains/integration-tests/e2e/collectives/collectives-westend/1_alliance/3_kick_member.yml deleted file mode 100644 index a5941cb47234..000000000000 --- a/cumulus/parachains/integration-tests/e2e/collectives/collectives-westend/1_alliance/3_kick_member.yml +++ /dev/null @@ -1,175 +0,0 @@ ---- -settings: - chains: - relay_chain: &relay_chain - wsPort: 9700 - collectives_parachain: &collectives_parachain - wsPort: 9710 - paraId: &cp_id 1001 - variables: - weight_threshold: &weight_threshold { refTime: [10, 10], proofSize: [10, 10] } - init_teleport_amount: &init_teleport_amount 20000000000000 # 20_000_000_000_000 - accounts: - alice_signer: &acc_alice_signer //Alice - treasury_account32: &acc_treasury_acc32 '0x6d6f646c70792f74727372790000000000000000000000000000000000000000' - alice_account32: &acc_alice_acc32 '0xd43593c715fdd31c61141abd04a99fd6822c8558854ccde39a5684e7a56da27d' - alice_ss58: &acc_alice_ss58 '15oF4uVJwmo4TdGW7VfQxNLavjCXviqxT9S1MgbjMNHr6Sp5' - decodedCalls: - alliance_kick_member: - chain: *collectives_parachain - pallet: alliance - call: kickMember - args: [ - {Id: *acc_alice_acc32} - ] - -tests: - - name: Member kicked out, deposited assets slashed and teleported to Relay Chain treasury. - before: - - name: DEPENDENCY | Do a 'limitedTeleportAssets' from the Relay Chain to the Collectives Parachain - actions: - - extrinsics: - - chain: *relay_chain - signer: *acc_alice_signer - pallet: xcmPallet - call: limitedTeleportAssets - args: [ - { v3: { 0, interior: { x1: { parachain: *cp_id }}}}, # destination - { v3: { parents: 0, interior: { x1: { accountId32: { id: *acc_alice_acc32 }}}}}, # beneficiary - { v3: [ { id: { concrete: { 0, interior: { here: true }}}, fun: { fungible: *init_teleport_amount }} ] }, # assets - 0, # feeAssetItem - { unlimited: true } # weightLimit - ] - events: - - name: xcmPallet.Attempted - threshold: *weight_threshold - result: { - outcome: { Complete: { refTime: '3,000,000,000', proofSize: 0 }} - } - - name: balances.Deposit - chain: *collectives_parachain - result: { who: *acc_alice_ss58 } - - name: dmpQueue.ExecutedDownward - chain: *collectives_parachain - threshold: *weight_threshold - result: { - outcome: { Complete: { refTime: '4,000,000,000', proofSize: 0 }} - } - - name: Get the balances of the Relay Chain's treasury & Collectives parachain's future alliance member - actions: - - queries: - balance_rc_treasury_before: - chain: *relay_chain - pallet: system - call: account - args: [ *acc_treasury_acc32 ] - balance_cp_alice_before: - chain: *collectives_parachain - pallet: system - call: account - args: [ *acc_alice_acc32 ] - its: - - name: Alice joins alliance - actions: - - extrinsics: - - chain: *collectives_parachain - signer: *acc_alice_signer - pallet: alliance - call: joinAlliance - args: [] - events: - - name: balances.Reserved - chain: *collectives_parachain - result: { who: *acc_alice_ss58, amount: 10000000000000 } - - name: alliance.NewAllyJoined - result: {ally: *acc_alice_ss58, reserved: 10000000000000 } - - queries: - balance_cp_alice_after: - chain: *collectives_parachain - pallet: system - call: account - args: [ *acc_alice_acc32 ] - - name: Alice deposit check, balance decreased - actions: - - asserts: - balanceDecreased: - args: [ - { - balances: { - before: $balance_cp_alice_before, - after: $balance_cp_alice_after, - } - # TODO (P3) set `amount` and `fee` for more strict assert - } - ] - - name: Kick Alice from alliance - actions: - - extrinsics: # Asset Parachain sets supported version for Relay Chain through it - - chain: *relay_chain - signer: *acc_alice_signer - sudo: true - pallet: xcmPallet - call: send - args: [ - { v3: { parents: 0, interior: { x1: { parachain: *cp_id }}}}, # destination - { - v3: [ #message - { - UnpaidExecution: { - weightLimit: { - limited: { - refTime: 4000000000, # 4_000_000_000 - proofSize: 2000000, # 2_000_000 - }, - } - } - }, - { - Transact: { - originKind: Superuser, - requireWeightAtMost: { - refTime: 2000000000, # 2_000_000_000 - proofSize: 1000000, # 1_000_000 - }, - call: $alliance_kick_member - } - } - ] - } - ] - events: - - name: sudo.Sudid - result: { sudoResult: Ok } - - name: xcmPallet.Sent - result: { origin: { parents: 0, interior: Here }, destination: { parents: 0, interior: { X1: { Parachain: *cp_id }}}} - - name: alliance.MemberKicked - chain: *collectives_parachain - result: { member: *acc_alice_ss58, slashed: 10000000000000 } - - name: dmpQueue.ExecutedDownward - chain: *collectives_parachain - threshold: *weight_threshold - result: { - outcome: { Complete: { refTime: '4,000,000,000', proofSize: '1,000,000' }} - } - - name: messageQueue.Processed - result: { origin: { Ump: { Para: *cp_id }}, success: true } - - - queries: - balance_rc_treasury_after: - chain: *relay_chain - pallet: system - call: account - args: [ *acc_treasury_acc32 ] - - name: Slashed balance appears on the relay chain treasury account - actions: - - asserts: - balanceIncreased: - args: [ - { - balances: { - before: $balance_rc_treasury_before, - after: $balance_rc_treasury_after, - } - # TODO (P3) set `amount` and `fee` for more strict assert - } - ] diff --git a/cumulus/parachains/integration-tests/e2e/collectives/collectives-westend/2_opengov/0_assethub.yml b/cumulus/parachains/integration-tests/e2e/collectives/collectives-westend/2_opengov/0_assethub.yml deleted file mode 100644 index c53efff51fbf..000000000000 --- a/cumulus/parachains/integration-tests/e2e/collectives/collectives-westend/2_opengov/0_assethub.yml +++ /dev/null @@ -1,149 +0,0 @@ ---- -settings: - chains: - relay_chain: &relay_chain - wsPort: 9700 - assethub_parachain: &assethub_parachain - wsPort: 9810 - paraId: &ap_id 1000 - variables: - proposal_index: &proposal_index 0 - chains: - accounts: - alice_signer: &alice_signer //Alice - bob_signer: &bob_signer //Bob - decodedCalls: - set_candidates_ap: - chain: *assethub_parachain - encode: true - pallet: collatorSelection - call: setDesiredCandidates - args: [ - 3 - ] - send_set_candidates_rc: - chain: *relay_chain - encode: false - pallet: xcmPallet - call: send - args: [ - { v3: { parents: 0, interior: { x1: { parachain: *ap_id }}}}, # destination - { - v3: [ #message - { - UnpaidExecution: { - weightLimit: Unlimited - } - }, - { - Transact: { - originKind: Xcm, - requireWeightAtMost: { - refTime: 200000000, # 200_000_000 - proofSize: 100000, # 100_000 - }, - call: $set_candidates_ap - } - } - ] - } - ] -tests: - - name: OpenGov - describes: - - name: Set desired candidates on AssetHub from Relay Chain OpenGov Staking track - its: - - name: Note preimage from xcm send set_desired_candidates call - actions: - - extrinsics: - - chain: *relay_chain - signer: *alice_signer - pallet: preimage - call: notePreimage - args: [ - $send_set_candidates_rc - ] - events: - - name: preimage.Noted - result: {hash_: $send_set_candidates_rc.hash } - - name: Submit a proposal to set desired candidates - actions: - - extrinsics: - - chain: *relay_chain - signer: *alice_signer - pallet: referenda - call: submit - args: [ - { - "Origins": "StakingAdmin", - }, - { - "Lookup": { - "hash_": $send_set_candidates_rc.hash, - "len": $send_set_candidates_rc.len, - }, - }, - { - "After": 1, - }, - ] - events: - - name: referenda.Submitted - result: { - index: *proposal_index, - proposal: { Lookup: { hash_: $send_set_candidates_rc.hash, len: $send_set_candidates_rc.len }} - } - - name: Alice Vote Aye - actions: - - extrinsics: - - chain: *relay_chain - signer: *alice_signer - pallet: convictionVoting - call: vote - args: [ - *proposal_index, - { - "Standard": { - "vote": { - "aye": true, - "conviction": "Locked1x", - }, - "balance": 200000000000000, - } - }, - ] # TODO no event to catch https://github.com/paritytech/substrate/issues/14687 - - name: Bob Vote Aye - actions: - - extrinsics: - - chain: *relay_chain - signer: *bob_signer - pallet: convictionVoting - call: vote - args: [ - *proposal_index, - { - "Standard": { - "vote": { - "aye": true, - "conviction": "Locked1x", - }, - "balance": 200000000000000, - } - }, - ] # TODO no event to catch https://github.com/paritytech/substrate/issues/14687 - - name: Submit the decision deposit - actions: - - extrinsics: - - chain: *relay_chain - signer: *alice_signer - pallet: referenda - call: placeDecisionDeposit - args: [ - *proposal_index, - ] - events: - - name: referenda.DecisionDepositPlaced - result: { index: *proposal_index } - - name: collatorSelection.NewDesiredCandidates - chain: *assethub_parachain - result: { desiredCandidates: 3 } diff --git a/cumulus/parachains/integration-tests/e2e/collectives/collectives-westend/3_fellowship/0_init.yml b/cumulus/parachains/integration-tests/e2e/collectives/collectives-westend/3_fellowship/0_init.yml deleted file mode 100644 index 1e4b2dabe211..000000000000 --- a/cumulus/parachains/integration-tests/e2e/collectives/collectives-westend/3_fellowship/0_init.yml +++ /dev/null @@ -1,209 +0,0 @@ ---- -settings: - chains: - relay_chain: &relay_chain - wsPort: 9700 - collectives_parachain: &collectives_parachain - wsPort: 9710 - paraId: &cp_id 1001 - variables: - proposal_index: &proposal_index 1 - chains: - accounts: - alice_signer: &alice_signer //Alice - bob_signer: &bob_signer //Bob - alice_account32: &acc_alice_acc32 '0xd43593c715fdd31c61141abd04a99fd6822c8558854ccde39a5684e7a56da27d' - alice_ss58: &acc_alice_ss58 '15oF4uVJwmo4TdGW7VfQxNLavjCXviqxT9S1MgbjMNHr6Sp5' - decodedCalls: - fellowship_induct_alice_cp: - chain: *collectives_parachain - encode: true - pallet: fellowshipCore - call: induct - args: [ - *acc_alice_acc32 - ] - fellowship_promote_1_alice_cp: - chain: *collectives_parachain - encode: true - pallet: fellowshipCore - call: promote - args: [ - *acc_alice_acc32, - 1 - ] - fellowship_promote_2_alice_cp: - chain: *collectives_parachain - encode: true - pallet: fellowshipCore - call: promote - args: [ - *acc_alice_acc32, - 2 - ] - fellowship_promote_3_alice_cp: - chain: *collectives_parachain - encode: true - pallet: fellowshipCore - call: promote - args: [ - *acc_alice_acc32, - 3 - ] - send_init_fellowship_rc: - chain: *relay_chain - encode: false - pallet: xcmPallet - call: send - args: [ - { v3: { parents: 0, interior: { x1: { parachain: *cp_id }}}}, # destination - { - v3: [ #message - { - UnpaidExecution: { - weightLimit: Unlimited - } - }, - { # since batch_all not yet allowed over xcm, we have to send multiple `Transact`. - Transact: { - originKind: Xcm, - requireWeightAtMost: { - refTime: 1500000000, # 1_500_000_000 - proofSize: 10000, # 10_000 - }, - call: $fellowship_induct_alice_cp - } - }, - { - Transact: { - originKind: Xcm, - requireWeightAtMost: { - refTime: 1500000000, # 1_500_000_000 - proofSize: 10000, # 10_000 - }, - call: $fellowship_promote_1_alice_cp - } - }, - { - Transact: { - originKind: Xcm, - requireWeightAtMost: { - refTime: 1500000000, # 1_500_000_000 - proofSize: 10000, # 10_000 - }, - call: $fellowship_promote_2_alice_cp - } - }, - { - Transact: { - originKind: Xcm, - requireWeightAtMost: { - refTime: 1500000000, # 1_500_000_000 - proofSize: 10000, # 10_000 - }, - call: $fellowship_promote_3_alice_cp - } - } - ] - } - ] - -tests: - - name: Fellowship - describes: - - name: Init the Fellowship - its: - - name: Note preimage from init fellowship call - actions: - - extrinsics: - - chain: *relay_chain - signer: *alice_signer - pallet: preimage - call: notePreimage - args: [ - $send_init_fellowship_rc - ] - events: - - name: preimage.Noted - result: { hash_: $send_init_fellowship_rc.hash } - - name: Submit a proposal to init the Fellowship - actions: - - extrinsics: - - chain: *relay_chain - signer: *alice_signer - pallet: referenda - call: submit - args: [ - { - "Origins": "FellowshipAdmin", - }, - { - "Lookup": { - "hash_": $send_init_fellowship_rc.hash, - "len": $send_init_fellowship_rc.len, - }, - }, - { - "After": 1, - }, - ] - events: - - name: referenda.Submitted - result: { - index: *proposal_index, - proposal: { Lookup: { hash_: $send_init_fellowship_rc.hash, len: $send_init_fellowship_rc.len }} - } - - name: Alice Vote Aye - actions: - - extrinsics: - - chain: *relay_chain - signer: *alice_signer - pallet: convictionVoting - call: vote - args: [ - *proposal_index, - { - "Standard": { - "vote": { - "aye": true, - "conviction": "Locked1x", - }, - "balance": 200000000000000, - } - }, - ] # TODO no Aye event to catch https://github.com/paritytech/substrate/issues/14687 - - name: Bob Vote Aye - actions: - - extrinsics: - - chain: *relay_chain - signer: *bob_signer - pallet: convictionVoting - call: vote - args: [ - *proposal_index, - { - "Standard": { - "vote": { - "aye": true, - "conviction": "Locked1x", - }, - "balance": 200000000000000, - } - }, - ] # TODO no Aye event to catch https://github.com/paritytech/substrate/issues/14687 - - name: Submit the decision deposit - actions: - - extrinsics: - - chain: *relay_chain - signer: *alice_signer - pallet: referenda - call: placeDecisionDeposit - args: [ - *proposal_index, - ] - events: - - name: referenda.DecisionDepositPlaced - result: { index: *proposal_index } - - name: fellowshipCollective.MemberAdded - chain: *collectives_parachain - result: { who: *acc_alice_ss58 } diff --git a/cumulus/parachains/integration-tests/e2e/collectives/collectives-westend/3_fellowship/1_whitelist_call.yml b/cumulus/parachains/integration-tests/e2e/collectives/collectives-westend/3_fellowship/1_whitelist_call.yml deleted file mode 100644 index 5991c7ae2f8a..000000000000 --- a/cumulus/parachains/integration-tests/e2e/collectives/collectives-westend/3_fellowship/1_whitelist_call.yml +++ /dev/null @@ -1,146 +0,0 @@ ---- -settings: - chains: - relay_chain: &relay_chain - wsPort: 9700 - collectives_parachain: &collectives_parachain - wsPort: 9710 - paraId: &cp_id 1001 - variables: - fellows_proposal_index: &fellows_proposal_index 0 - chains: - accounts: - alice_signer: &alice_signer //Alice - decodedCalls: - remark_rc: - chain: *relay_chain - encode: false - pallet: system - call: remark - args: [ - "0x10" - ] - whitelist_remark_rc: - chain: *relay_chain - encode: true - pallet: whitelist - call: whitelistCall - args: [ - $remark_rc.hash - ] - send_whitelist_remark_cp: - chain: *collectives_parachain - encode: false - pallet: polkadotXcm - call: send - args: [ - { v3: { parents: 1, interior: { here: true }}}, # destination - { - v3: [ #message - { - UnpaidExecution: { - weightLimit: Unlimited - } - }, - { - Transact: { - originKind: Xcm, - requireWeightAtMost: { - refTime: 500000000, # 500_000_000 - proofSize: 20000, # 20_000 - }, - call: $whitelist_remark_rc - } - } - ] - } - ] - -tests: - - name: Fellowship - describes: - - name: The Fellowship white list the call - its: - - name: Note preimage from the whitelist call on the Relay Chain - actions: - - extrinsics: - - chain: *relay_chain - signer: *alice_signer - pallet: preimage - call: notePreimage - args: [ - $remark_rc - ] - events: - - name: preimage.Noted - result: { hash_: $remark_rc.hash } - - name: Note preimage from the xcm send call to white list the call above - actions: - - extrinsics: - - chain: *collectives_parachain - signer: *alice_signer - pallet: preimage - call: notePreimage - args: [ - $send_whitelist_remark_cp, - ] - events: - - name: preimage.Noted - result: { hash_: $send_whitelist_remark_cp.hash } - - name: Submit a proposal to while list the call - actions: - - extrinsics: - - chain: *collectives_parachain - signer: *alice_signer - pallet: fellowshipReferenda - call: submit - args: [ - { - "FellowshipOrigins": "Fellows", - }, - { - "Lookup": { - "hash_": $send_whitelist_remark_cp.hash, - "len": $send_whitelist_remark_cp.len, - }, - }, - { - "After": 1, - }, - ] - events: - - name: fellowshipReferenda.Submitted - result: { - index: *fellows_proposal_index, - proposal: { Lookup: { hash_: $send_whitelist_remark_cp.hash, len: $send_whitelist_remark_cp.len}} - } - - name: Vote Aye - actions: - - extrinsics: - - chain: *collectives_parachain - signer: *alice_signer - pallet: fellowshipCollective - call: vote - args: [ - *fellows_proposal_index, - true, - ] - events: - - name: fellowshipCollective.Voted - result: { poll: *fellows_proposal_index, vote: { Aye: 1 } } - - name: Submit the decision deposit - actions: - - extrinsics: - - chain: *collectives_parachain - signer: *alice_signer - pallet: fellowshipReferenda - call: placeDecisionDeposit - args: [ - *fellows_proposal_index, - ] - events: - - name: fellowshipReferenda.DecisionDepositPlaced - result: {index: *fellows_proposal_index} - - name: whitelist.CallWhitelisted - chain: *relay_chain - result: { callHash: $remark_rc.hash } diff --git a/cumulus/parachains/integration-tests/e2e/collectives/collectives-westend/3_fellowship/2_assethub.yml b/cumulus/parachains/integration-tests/e2e/collectives/collectives-westend/3_fellowship/2_assethub.yml deleted file mode 100644 index c0805594808c..000000000000 --- a/cumulus/parachains/integration-tests/e2e/collectives/collectives-westend/3_fellowship/2_assethub.yml +++ /dev/null @@ -1,126 +0,0 @@ ---- -settings: - chains: - relay_chain: &relay_chain - wsPort: 9700 - collectives_parachain: &collectives_parachain - wsPort: 9710 - paraId: &cp_id 1001 - assethub_parachain: &assethub_parachain - wsPort: 9810 - paraId: &ap_id 1000 - variables: - fellows_proposal_index: &fellows_proposal_index 1 - chains: - accounts: - alice_signer: &alice_signer //Alice - - decodedCalls: - xcmp_resume_execution_ap: - chain: *assethub_parachain - encode: true - pallet: xcmpQueue - call: resumeXcmExecution - args: [] - send_xcmp_resume_execution_cp: - chain: *collectives_parachain - encode: false - pallet: polkadotXcm - call: send - args: [ - { v3: { parents: 1, interior: { x1: { parachain: *ap_id }}}}, # destination - { - v3: [ #message - { - UnpaidExecution: { - weightLimit: Unlimited - } - }, - { - Transact: { - originKind: Xcm, - requireWeightAtMost: { - refTime: 300000000, # 300_000_000 - proofSize: 10000, # 10_000 - }, - call: $xcmp_resume_execution_ap - } - } - ] - } - ] - -tests: - - name: Fellowship - describes: - - name: The Fellowship resume xcm execution for the xcmp queue on AssetHub - its: - - name: Note preimage from the xcm send call to suspend_xcm_execution - actions: - - extrinsics: - - chain: *collectives_parachain - signer: *alice_signer - pallet: preimage - call: notePreimage - args: [ - $send_xcmp_resume_execution_cp - ] - events: - - name: preimage.Noted - result: {hash_: $send_xcmp_resume_execution_cp.hash } - - name: Submit a proposal to resume xcm execution on AssetHub - actions: - - extrinsics: - - chain: *collectives_parachain - signer: *alice_signer - pallet: fellowshipReferenda - call: submit - args: [ - { - "FellowshipOrigins": "Fellows", - }, - { - "Lookup": { - "hash_": $send_xcmp_resume_execution_cp.hash, - "len": $send_xcmp_resume_execution_cp.len, - }, - }, - { - "After": 1, - }, - ] - events: - - name: fellowshipReferenda.Submitted - result: { - index: 1, - proposal: {Lookup: {hash_: $send_xcmp_resume_execution_cp.hash, len: $send_xcmp_resume_execution_cp.len}} - } - - name: Vote Aye - actions: - - extrinsics: - - chain: *collectives_parachain - signer: *alice_signer - pallet: fellowshipCollective - call: vote - args: [ - *fellows_proposal_index, - true, - ] - events: - - name: fellowshipCollective.Voted - result: { poll: *fellows_proposal_index, vote: { Aye: 1 } } - - name: Submit the decision deposit - actions: - - extrinsics: - - chain: *collectives_parachain - signer: *alice_signer - pallet: fellowshipReferenda - call: placeDecisionDeposit - args: [ - *fellows_proposal_index, - ] - events: - - name: fellowshipReferenda.DecisionDepositPlaced - result: {index: *fellows_proposal_index} - - name: xcmpQueue.Success - chain: *assethub_parachain diff --git a/cumulus/parachains/integration-tests/e2e/collectives/collectives-westend/config.toml b/cumulus/parachains/integration-tests/e2e/collectives/collectives-westend/config.toml deleted file mode 100644 index bf4e147da0ff..000000000000 --- a/cumulus/parachains/integration-tests/e2e/collectives/collectives-westend/config.toml +++ /dev/null @@ -1,42 +0,0 @@ -[relaychain] -default_command = "./bin/polkadot" -default_args = [ "-lparachain=trace", "-lxcm=trace" ] -chain = "westend-local" - - [[relaychain.nodes]] - name = "alice" - ws_port = 9700 - validator = true - args = ["--state-cache-size=0"] - - [[relaychain.nodes]] - name = "bob" - ws_port = 9701 - validator = true - - [[relaychain.nodes]] - name = "charlie" - ws_port = 9702 - validator = true - - [[relaychain.nodes]] - name = "dave" - ws_port = 9703 - validator = true - -[[parachains]] -id = 1001 -chain = "collectives-westend-local" -cumulus_based = true - - [[parachains.collators]] - name = "collator1" - ws_port = 9710 - command = "./bin/polkadot-parachain" - args = [ "-lxcm=trace", "--state-cache-size=0" ] - - [[parachains.collators]] - name = "collator2" - ws_port = 9711 - command = "./bin/polkadot-parachain" - args = ["-lxcm=trace"] From 9aaeeaf2b3e6b58a73c6fd55abd86ab34d902059 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?D=C3=B3nal=20Murray?= Date: Thu, 2 Nov 2023 17:19:49 +0000 Subject: [PATCH 47/78] Fix missing comma from github merge editor --- Cargo.lock | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Cargo.lock b/Cargo.lock index b3be0bfe3150..d58d111c6dcc 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -6829,7 +6829,7 @@ dependencies = [ "bridge-hub-rococo-runtime", "bridge-runtime-common", "collectives-polkadot-runtime", - "collectives-westend-runtime" + "collectives-westend-runtime", "cumulus-pallet-parachain-system", "cumulus-pallet-xcmp-queue", "cumulus-primitives-core", From a309278bce0da91e37e2402fa5f1e3263ec6a9cc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?D=C3=B3nal=20Murray?= Date: Fri, 3 Nov 2023 08:14:40 +0000 Subject: [PATCH 48/78] Update collectives-westend message queue for 1246 --- .../collectives-westend/Cargo.toml | 8 ++- .../collectives-westend/src/lib.rs | 62 ++++++++++++++----- .../collectives-westend/src/xcm_config.rs | 22 ++++--- 3 files changed, 69 insertions(+), 23 deletions(-) diff --git a/cumulus/parachains/runtimes/collectives/collectives-westend/Cargo.toml b/cumulus/parachains/runtimes/collectives/collectives-westend/Cargo.toml index 1b59103be6b9..985b929d6678 100644 --- a/cumulus/parachains/runtimes/collectives/collectives-westend/Cargo.toml +++ b/cumulus/parachains/runtimes/collectives/collectives-westend/Cargo.toml @@ -65,6 +65,7 @@ xcm-executor = { package = "staging-xcm-executor", path = "../../../../../polkad # Cumulus cumulus-pallet-aura-ext = { path = "../../../../pallets/aura-ext", default-features = false } +pallet-message-queue = { path = "../../../../../substrate/frame/message-queue", default-features = false } cumulus-pallet-dmp-queue = { path = "../../../../pallets/dmp-queue", default-features = false } cumulus-pallet-parachain-system = { path = "../../../../pallets/parachain-system", default-features = false, features = ["parameterized-consensus-hook",] } cumulus-pallet-session-benchmarking = { path = "../../../../pallets/session-benchmarking", default-features = false} @@ -74,7 +75,7 @@ cumulus-primitives-core = { path = "../../../../primitives/core", default-featur cumulus-primitives-utility = { path = "../../../../primitives/utility", default-features = false } pallet-collator-selection = { path = "../../../../pallets/collator-selection", default-features = false } pallet-collective-content = { path = "../../../pallets/collective-content", default-features = false } -parachain-info = { path = "../../../pallets/parachain-info", default-features = false } +parachain-info = { package = "staging-parachain-info", path = "../../../pallets/parachain-info", default-features = false } parachains-common = { path = "../../../common", default-features = false } [build-dependencies] @@ -86,9 +87,11 @@ sp-io = { path = "../../../../../substrate/primitives/io", default-features = fa [features] default = [ "std" ] runtime-benchmarks = [ + "cumulus-pallet-dmp-queue/runtime-benchmarks", "cumulus-pallet-parachain-system/runtime-benchmarks", "cumulus-pallet-session-benchmarking/runtime-benchmarks", "cumulus-pallet-xcmp-queue/runtime-benchmarks", + "cumulus-primitives-core/runtime-benchmarks", "cumulus-primitives-utility/runtime-benchmarks", "frame-benchmarking/runtime-benchmarks", "frame-support/runtime-benchmarks", @@ -100,6 +103,7 @@ runtime-benchmarks = [ "pallet-collective-content/runtime-benchmarks", "pallet-collective/runtime-benchmarks", "pallet-core-fellowship/runtime-benchmarks", + "pallet-message-queue/runtime-benchmarks", "pallet-multisig/runtime-benchmarks", "pallet-preimage/runtime-benchmarks", "pallet-proxy/runtime-benchmarks", @@ -135,6 +139,7 @@ try-runtime = [ "pallet-collective-content/try-runtime", "pallet-collective/try-runtime", "pallet-core-fellowship/try-runtime", + "pallet-message-queue/try-runtime", "pallet-multisig/try-runtime", "pallet-preimage/try-runtime", "pallet-proxy/try-runtime", @@ -177,6 +182,7 @@ std = [ "pallet-collective-content/std", "pallet-collective/std", "pallet-core-fellowship/std", + "pallet-message-queue/std", "pallet-multisig/std", "pallet-preimage/std", "pallet-proxy/std", diff --git a/cumulus/parachains/runtimes/collectives/collectives-westend/src/lib.rs b/cumulus/parachains/runtimes/collectives/collectives-westend/src/lib.rs index 831a872b28d2..672297923de7 100644 --- a/cumulus/parachains/runtimes/collectives/collectives-westend/src/lib.rs +++ b/cumulus/parachains/runtimes/collectives/collectives-westend/src/lib.rs @@ -45,7 +45,6 @@ pub mod fellowship; pub use ambassador::pallet_ambassador_origins; use cumulus_pallet_parachain_system::RelayNumberStrictlyIncreases; -use cumulus_primitives_core::ParaId; use fellowship::{pallet_fellowship_origins, Fellows}; use impls::{AllianceProposalProvider, EqualOrGreatestRootCmp, ToParentTreasury}; use sp_api::impl_runtime_apis; @@ -63,6 +62,7 @@ use sp_version::NativeVersion; use sp_version::RuntimeVersion; use codec::{Decode, Encode, MaxEncodedLen}; +use cumulus_primitives_core::{AggregateMessageOrigin, ParaId}; use frame_support::{ construct_runtime, dispatch::DispatchClass, @@ -70,7 +70,7 @@ use frame_support::{ parameter_types, traits::{ fungible::HoldConsideration, ConstBool, ConstU16, ConstU32, ConstU64, ConstU8, - EitherOfDiverse, InstanceFilter, LinearStoragePrice, + EitherOfDiverse, InstanceFilter, LinearStoragePrice, TransformOrigin, }, weights::{ConstantMultiplier, Weight}, PalletId, @@ -82,13 +82,14 @@ use frame_system::{ pub use parachains_common as common; use parachains_common::{ impls::DealWithFees, + message_queue::*, westend::{account::*, consensus::*, currency::*, fee::WeightToFee}, AccountId, AuraId, Balance, BlockNumber, Hash, Header, Nonce, Signature, AVERAGE_ON_INITIALIZE_RATIO, DAYS, HOURS, MAXIMUM_BLOCK_WEIGHT, MINUTES, NORMAL_DISPATCH_RATIO, SLOT_DURATION, }; use sp_runtime::RuntimeDebug; -use xcm_config::{GovernanceLocation, XcmConfig, XcmOriginToTransactDispatchOrigin}; +use xcm_config::{GovernanceLocation, XcmOriginToTransactDispatchOrigin}; #[cfg(any(feature = "std", test))] pub use sp_runtime::BuildStorage; @@ -96,8 +97,7 @@ pub use sp_runtime::BuildStorage; // Polkadot imports use pallet_xcm::{EnsureXcm, IsVoiceOfBody}; use polkadot_runtime_common::{BlockHashCount, SlowAdjustingFeeUpdate}; -use xcm::latest::prelude::*; -use xcm_executor::XcmExecutor; +use xcm::latest::{prelude::*, BodyId}; use weights::{BlockExecutionWeight, ExtrinsicBaseWeight, RocksDbWeight}; @@ -379,10 +379,11 @@ parameter_types! { } impl cumulus_pallet_parachain_system::Config for Runtime { + type WeightInfo = weights::cumulus_pallet_parachain_system::WeightInfo; type RuntimeEvent = RuntimeEvent; type OnSystemEvent = (); type SelfParaId = parachain_info::Pallet; - type DmpMessageHandler = DmpQueue; + type DmpQueue = frame_support::traits::EnqueueWithOrigin; type ReservedDmpWeight = ReservedDmpWeight; type OutboundXcmpMessageSource = XcmpQueue; type XcmpMessageHandler = XcmpQueue; @@ -398,6 +399,32 @@ impl cumulus_pallet_parachain_system::Config for Runtime { impl parachain_info::Config for Runtime {} +parameter_types! { + pub MessageQueueServiceWeight: Weight = Perbill::from_percent(35) * RuntimeBlockWeights::get().max_block; +} + +impl pallet_message_queue::Config for Runtime { + type RuntimeEvent = RuntimeEvent; + type WeightInfo = weights::pallet_message_queue::WeightInfo; + #[cfg(feature = "runtime-benchmarks")] + type MessageProcessor = pallet_message_queue::mock_helpers::NoopMessageProcessor< + cumulus_primitives_core::AggregateMessageOrigin, + >; + #[cfg(not(feature = "runtime-benchmarks"))] + type MessageProcessor = xcm_builder::ProcessXcmMessage< + AggregateMessageOrigin, + xcm_executor::XcmExecutor, + RuntimeCall, + >; + type Size = u32; + // The XCMP queue pallet is only ever able to handle the `Sibling(ParaId)` origin: + type QueueChangeHandler = NarrowOriginToSibling; + type QueuePausedQuery = NarrowOriginToSibling; + type HeapSize = sp_core::ConstU32<{ 64 * 1024 }>; + type MaxStale = sp_core::ConstU32<8>; + type ServiceWeight = MessageQueueServiceWeight; +} + impl cumulus_pallet_aura_ext::Config for Runtime {} parameter_types! { @@ -416,10 +443,11 @@ pub type PriceForSiblingParachainDelivery = polkadot_runtime_common::xcm_sender: impl cumulus_pallet_xcmp_queue::Config for Runtime { type RuntimeEvent = RuntimeEvent; - type XcmExecutor = XcmExecutor; type ChannelInfo = ParachainSystem; type VersionWrapper = PolkadotXcm; - type ExecuteOverweightOrigin = EnsureRoot; + // Enqueue XCMP messages from siblings for later processing. + type XcmpQueue = TransformOrigin; + type MaxInboundSuspended = sp_core::ConstU32<1_000>; type ControllerOrigin = EitherOfDiverse, Fellows>; type ControllerOriginConverter = XcmOriginToTransactDispatchOrigin; type WeightInfo = weights::cumulus_pallet_xcmp_queue::WeightInfo; @@ -427,10 +455,14 @@ impl cumulus_pallet_xcmp_queue::Config for Runtime { polkadot_runtime_common::xcm_sender::NoPriceForMessageDelivery; } +parameter_types! { + pub const RelayOrigin: AggregateMessageOrigin = AggregateMessageOrigin::Parent; +} + impl cumulus_pallet_dmp_queue::Config for Runtime { + type WeightInfo = weights::cumulus_pallet_dmp_queue::WeightInfo; type RuntimeEvent = RuntimeEvent; - type XcmExecutor = XcmExecutor; - type ExecuteOverweightOrigin = EnsureRoot; + type DmpSink = frame_support::traits::EnqueueWithOrigin; } pub const PERIOD: u32 = 6 * HOURS; @@ -623,6 +655,7 @@ construct_runtime!( PolkadotXcm: pallet_xcm::{Pallet, Call, Storage, Event, Origin, Config} = 31, CumulusXcm: cumulus_pallet_xcm::{Pallet, Event, Origin} = 32, DmpQueue: cumulus_pallet_dmp_queue::{Pallet, Call, Storage, Event} = 33, + MessageQueue: pallet_message_queue::{Pallet, Call, Storage, Event} = 34, // Handy utilities. Utility: pallet_utility::{Pallet, Call, Event} = 40, @@ -696,22 +729,21 @@ pub type Executive = frame_executive::Executive< Migrations, >; -#[cfg(feature = "runtime-benchmarks")] -#[macro_use] -extern crate frame_benchmarking; - #[cfg(feature = "runtime-benchmarks")] mod benches { - define_benchmarks!( + frame_benchmarking::define_benchmarks!( [frame_system, SystemBench::] [pallet_balances, Balances] + [pallet_message_queue, MessageQueue] [pallet_multisig, Multisig] [pallet_proxy, Proxy] [pallet_session, SessionBench::] [pallet_utility, Utility] [pallet_timestamp, Timestamp] [pallet_collator_selection, CollatorSelection] + [cumulus_pallet_parachain_system, ParachainSystem] [cumulus_pallet_xcmp_queue, XcmpQueue] + [cumulus_pallet_dmp_queue, DmpQueue] [pallet_alliance, Alliance] [pallet_collective, AllianceMotion] [pallet_xcm, PolkadotXcm] diff --git a/cumulus/parachains/runtimes/collectives/collectives-westend/src/xcm_config.rs b/cumulus/parachains/runtimes/collectives/collectives-westend/src/xcm_config.rs index eb8ff02db34e..158e866246be 100644 --- a/cumulus/parachains/runtimes/collectives/collectives-westend/src/xcm_config.rs +++ b/cumulus/parachains/runtimes/collectives/collectives-westend/src/xcm_config.rs @@ -14,8 +14,9 @@ // limitations under the License. use super::{ - AccountId, AllPalletsWithSystem, Balances, Fellows, ParachainInfo, ParachainSystem, - PolkadotXcm, Runtime, RuntimeCall, RuntimeEvent, RuntimeOrigin, WeightToFee, XcmpQueue, + AccountId, AllPalletsWithSystem, Balances, BaseDeliveryFee, FeeAssetId, Fellows, ParachainInfo, + ParachainSystem, PolkadotXcm, Runtime, RuntimeCall, RuntimeEvent, RuntimeOrigin, + TransactionByteFee, WeightToFee, XcmpQueue, }; use frame_support::{ match_types, parameter_types, @@ -24,8 +25,9 @@ use frame_support::{ }; use frame_system::EnsureRoot; use pallet_xcm::XcmPassthrough; -use parachains_common::{impls::ToStakingPot, xcm_config::ConcreteNativeAssetFrom}; +use parachains_common::{impls::ToStakingPot, xcm_config::ConcreteAssetFromSystem}; use polkadot_parachain_primitives::primitives::Sibling; +use polkadot_runtime_common::xcm_sender::ExponentialPrice; use xcm::latest::prelude::*; use xcm_builder::{ AccountId32Aliases, AllowExplicitUnpaidExecutionFrom, AllowKnownQueryResponses, @@ -172,7 +174,7 @@ impl Contains for SafeCallFilter { ) | RuntimeCall::Session(pallet_session::Call::purge_keys { .. }) | RuntimeCall::PolkadotXcm(pallet_xcm::Call::force_xcm_version { .. }) | RuntimeCall::XcmpQueue(..) | - RuntimeCall::DmpQueue(..) | + RuntimeCall::MessageQueue(..) | RuntimeCall::Alliance( // `init_members` accepts unbounded vecs as arguments, // but the call can be initiated only by root origin. @@ -240,6 +242,10 @@ pub type Barrier = TrailingSetTopicAsId< >, >; +/// Cases where a remote origin is accepted as trusted Teleporter for a given asset: +/// - DOT with the parent Relay Chain and sibling parachains. +pub type TrustedTeleporters = ConcreteAssetFromSystem; + pub struct XcmConfig; impl xcm_executor::Config for XcmConfig { type RuntimeCall = RuntimeCall; @@ -249,8 +255,7 @@ impl xcm_executor::Config for XcmConfig { // Collectives does not recognize a reserve location for any asset. Users must teleport WND // where allowed (e.g. with the Relay Chain). type IsReserve = (); - /// Only allow teleportation of WND. - type IsTeleporter = ConcreteNativeAssetFrom; + type IsTeleporter = TrustedTeleporters; type UniversalLocation = UniversalLocation; type Barrier = Barrier; type Weigher = FixedWeightBounds; @@ -276,11 +281,14 @@ impl xcm_executor::Config for XcmConfig { /// Forms the basis for local origins sending/executing XCMs. pub type LocalOriginToLocation = SignedToAccountId32; +pub type PriceForParentDelivery = + ExponentialPrice; + /// The means for routing XCM messages which are not for local execution into the right message /// queues. pub type XcmRouter = WithUniqueTopic<( // Two routers - use UMP to communicate with the relay chain: - cumulus_primitives_utility::ParentAsUmp, + cumulus_primitives_utility::ParentAsUmp, // ..and XCMP to communicate with the sibling chains. XcmpQueue, )>; From 81f13c8d56b4d4c3c1087644436419850b7e5e36 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?D=C3=B3nal=20Murray?= Date: Fri, 3 Nov 2023 08:16:57 +0000 Subject: [PATCH 49/78] Update glutton-westend message queue for 1246 --- Cargo.lock | 14 ++++--- .../glutton/glutton-westend/Cargo.toml | 15 ++++++-- .../glutton/glutton-westend/src/lib.rs | 37 ++++++++++++++++++- 3 files changed, 55 insertions(+), 11 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index d58d111c6dcc..d027e72266a2 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -2956,6 +2956,7 @@ dependencies = [ "pallet-collective", "pallet-collective-content", "pallet-core-fellowship", + "pallet-message-queue", "pallet-multisig", "pallet-preimage", "pallet-proxy", @@ -2969,7 +2970,6 @@ dependencies = [ "pallet-transaction-payment-rpc-runtime-api", "pallet-utility", "pallet-xcm", - "parachain-info", "parachains-common", "parity-scale-codec", "polkadot-core-primitives", @@ -2988,10 +2988,11 @@ dependencies = [ "sp-offchain", "sp-runtime", "sp-session", - "sp-std", - "sp-storage", + "sp-std 8.0.0", + "sp-storage 13.0.0", "sp-transaction-pool", "sp-version", + "staging-parachain-info", "staging-xcm", "staging-xcm-builder", "staging-xcm-executor", @@ -6258,9 +6259,9 @@ dependencies = [ "frame-try-runtime", "pallet-aura", "pallet-glutton", + "pallet-message-queue", "pallet-sudo", "pallet-timestamp", - "parachain-info", "parachains-common", "parity-scale-codec", "scale-info", @@ -6273,10 +6274,11 @@ dependencies = [ "sp-offchain", "sp-runtime", "sp-session", - "sp-std", - "sp-storage", + "sp-std 8.0.0", + "sp-storage 13.0.0", "sp-transaction-pool", "sp-version", + "staging-parachain-info", "staging-xcm", "staging-xcm-builder", "staging-xcm-executor", diff --git a/cumulus/parachains/runtimes/glutton/glutton-westend/Cargo.toml b/cumulus/parachains/runtimes/glutton/glutton-westend/Cargo.toml index e8809b9f8692..553a70d2c8b0 100644 --- a/cumulus/parachains/runtimes/glutton/glutton-westend/Cargo.toml +++ b/cumulus/parachains/runtimes/glutton/glutton-westend/Cargo.toml @@ -28,6 +28,7 @@ sp-consensus-aura = { path = "../../../../../substrate/primitives/consensus/aura sp-core = { path = "../../../../../substrate/primitives/core", default-features = false} sp-genesis-builder = { path = "../../../../../substrate/primitives/genesis-builder", default-features = false } sp-inherents = { path = "../../../../../substrate/primitives/inherents", default-features = false} +pallet-message-queue = { path = "../../../../../substrate/frame/message-queue", default-features = false } sp-offchain = { path = "../../../../../substrate/primitives/offchain", default-features = false} sp-runtime = { path = "../../../../../substrate/primitives/runtime", default-features = false} sp-session = { path = "../../../../../substrate/primitives/session", default-features = false} @@ -48,7 +49,7 @@ cumulus-pallet-xcm = { path = "../../../../pallets/xcm", default-features = fals cumulus-primitives-aura = { path = "../../../../primitives/aura", default-features = false } cumulus-primitives-core = { path = "../../../../primitives/core", default-features = false } cumulus-primitives-timestamp = { path = "../../../../primitives/timestamp", default-features = false } -parachain-info = { path = "../../../pallets/parachain-info", default-features = false } +parachain-info = { package = "staging-parachain-info", path = "../../../pallets/parachain-info", default-features = false } parachains-common = { path = "../../../common", default-features = false } [build-dependencies] @@ -58,12 +59,14 @@ substrate-wasm-builder = { path = "../../../../../substrate/utils/wasm-builder" default = [ "std" ] runtime-benchmarks = [ "cumulus-pallet-parachain-system/runtime-benchmarks", + "cumulus-primitives-core/runtime-benchmarks", "frame-benchmarking/runtime-benchmarks", "frame-support/runtime-benchmarks", "frame-system-benchmarking/runtime-benchmarks", "frame-system/runtime-benchmarks", "pallet-glutton/runtime-benchmarks", - "pallet-sudo?/runtime-benchmarks", + "pallet-message-queue/runtime-benchmarks", + "pallet-sudo/runtime-benchmarks", "pallet-timestamp/runtime-benchmarks", "parachains-common/runtime-benchmarks", "sp-runtime/runtime-benchmarks", @@ -87,11 +90,11 @@ std = [ "frame-try-runtime?/std", "pallet-aura/std", "pallet-glutton/std", + "pallet-message-queue/std", "pallet-sudo/std", "pallet-timestamp/std", "parachain-info/std", "parachains-common/std", - "scale-info/std", "sp-api/std", "sp-block-builder/std", "sp-consensus-aura/std", @@ -119,6 +122,7 @@ try-runtime = [ "frame-try-runtime/try-runtime", "pallet-aura/try-runtime", "pallet-glutton/try-runtime", + "pallet-message-queue/try-runtime", "pallet-sudo/try-runtime", "pallet-timestamp/try-runtime", "parachain-info/try-runtime", @@ -126,3 +130,8 @@ try-runtime = [ ] experimental = [ "pallet-aura/experimental" ] + +# A feature that should be enabled when the runtime should be built for on-chain +# deployment. This will disable stuff that shouldn't be part of the on-chain wasm +# to make it smaller like logging for example. +on-chain-release-build = [ "sp-api/disable-logging" ] diff --git a/cumulus/parachains/runtimes/glutton/glutton-westend/src/lib.rs b/cumulus/parachains/runtimes/glutton/glutton-westend/src/lib.rs index 5636879a1f33..e75d90956d96 100644 --- a/cumulus/parachains/runtimes/glutton/glutton-westend/src/lib.rs +++ b/cumulus/parachains/runtimes/glutton/glutton-westend/src/lib.rs @@ -62,6 +62,7 @@ use sp_std::prelude::*; use sp_version::NativeVersion; use sp_version::RuntimeVersion; +use cumulus_primitives_core::AggregateMessageOrigin; pub use frame_support::{ construct_runtime, dispatch::DispatchClass, @@ -196,6 +197,7 @@ impl frame_system::Config for Runtime { parameter_types! { // We do anything the parent chain tells us in this runtime. pub const ReservedDmpWeight: Weight = MAXIMUM_BLOCK_WEIGHT.saturating_div(2); + pub const RelayOrigin: AggregateMessageOrigin = AggregateMessageOrigin::Parent; } type ConsensusHook = cumulus_pallet_aura_ext::FixedVelocityConsensusHook< @@ -209,13 +211,40 @@ impl cumulus_pallet_parachain_system::Config for Runtime { type RuntimeEvent = RuntimeEvent; type OnSystemEvent = (); type SelfParaId = parachain_info::Pallet; + type DmpQueue = frame_support::traits::EnqueueWithOrigin; type OutboundXcmpMessageSource = (); - type DmpMessageHandler = cumulus_pallet_xcm::UnlimitedDmpExecution; type ReservedDmpWeight = ReservedDmpWeight; type XcmpMessageHandler = (); type ReservedXcmpWeight = (); type CheckAssociatedRelayNumber = RelayNumberMonotonicallyIncreases; type ConsensusHook = ConsensusHook; + type WeightInfo = weights::cumulus_pallet_parachain_system::WeightInfo; +} + +parameter_types! { + pub MessageQueueServiceWeight: Weight = Perbill::from_percent(80) * + RuntimeBlockWeights::get().max_block; +} + +impl pallet_message_queue::Config for Runtime { + type RuntimeEvent = RuntimeEvent; + type WeightInfo = weights::pallet_message_queue::WeightInfo; + #[cfg(feature = "runtime-benchmarks")] + type MessageProcessor = pallet_message_queue::mock_helpers::NoopMessageProcessor< + cumulus_primitives_core::AggregateMessageOrigin, + >; + #[cfg(not(feature = "runtime-benchmarks"))] + type MessageProcessor = xcm_builder::ProcessXcmMessage< + AggregateMessageOrigin, + xcm_executor::XcmExecutor, + RuntimeCall, + >; + type Size = u32; + type QueueChangeHandler = (); + type QueuePausedQuery = (); // No XCMP queue pallet deployed. + type HeapSize = sp_core::ConstU32<{ 64 * 1024 }>; + type MaxStale = sp_core::ConstU32<8>; + type ServiceWeight = MessageQueueServiceWeight; } impl parachain_info::Config for Runtime {} @@ -225,7 +254,10 @@ impl cumulus_pallet_aura_ext::Config for Runtime {} impl pallet_timestamp::Config for Runtime { type Moment = u64; type OnTimestampSet = Aura; + #[cfg(feature = "experimental")] type MinimumPeriod = ConstU64<0>; + #[cfg(not(feature = "experimental"))] + type MinimumPeriod = ConstU64<{ SLOT_DURATION / 2 }>; type WeightInfo = weights::pallet_timestamp::WeightInfo; } @@ -262,6 +294,7 @@ construct_runtime! { // DMP handler. CumulusXcm: cumulus_pallet_xcm::{Pallet, Call, Storage, Event, Origin} = 10, + MessageQueue: pallet_message_queue::{Pallet, Call, Storage, Event} = 11, // The main stage. Glutton: pallet_glutton::{Pallet, Call, Storage, Event, Config} = 20, @@ -356,7 +389,7 @@ impl_runtime_apis! { impl sp_consensus_aura::AuraApi for Runtime { fn slot_duration() -> sp_consensus_aura::SlotDuration { - sp_consensus_aura::SlotDuration::from_millis(SLOT_DURATION) + sp_consensus_aura::SlotDuration::from_millis(Aura::slot_duration()) } fn authorities() -> Vec { From 238e91d0318a777702493a6f418163765c18c731 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?D=C3=B3nal=20Murray?= Date: Fri, 3 Nov 2023 08:22:11 +0000 Subject: [PATCH 50/78] Bootstrap missing pallet weights --- .../src/weights/cumulus_pallet_dmp_queue.rs | 131 ++++++++++ .../cumulus_pallet_parachain_system.rs | 80 ++++++ .../src/weights/cumulus_pallet_xcmp_queue.rs | 141 ++++++++--- .../src/weights/frame_system.rs | 95 ++++--- .../collectives-westend/src/weights/mod.rs | 28 ++- .../src/weights/pallet_alliance.rs | 231 +++++++++-------- .../src/weights/pallet_balances.rs | 73 +++--- .../src/weights/pallet_collator_selection.rs | 109 ++++---- .../src/weights/pallet_collective.rs | 219 ++++++++-------- .../src/weights/pallet_collective_content.rs | 81 +++--- .../pallet_core_fellowship_ambassador_core.rs | 63 +++-- .../pallet_core_fellowship_fellowship_core.rs | 86 +++---- .../src/weights/pallet_message_queue.rs | 179 ++++++++++++++ .../src/weights/pallet_multisig.rs | 103 ++++---- .../src/weights/pallet_preimage.rs | 234 ++++++++---------- .../src/weights/pallet_proxy.rs | 153 ++++++------ ...ranked_collective_ambassador_collective.rs | 75 +++--- ...ranked_collective_fellowship_collective.rs | 98 ++++---- .../pallet_referenda_ambassador_referenda.rs | 149 ++++++----- .../pallet_referenda_fellowship_referenda.rs | 170 ++++++------- .../pallet_salary_ambassador_salary.rs | 51 ++-- .../pallet_salary_fellowship_salary.rs | 74 +++--- .../src/weights/pallet_scheduler.rs | 121 +++++---- .../src/weights/pallet_session.rs | 45 ++-- .../src/weights/pallet_timestamp.rs | 45 ++-- .../src/weights/pallet_utility.rs | 69 +++--- .../src/weights/pallet_xcm.rs | 155 ++++++------ .../cumulus_pallet_parachain_system.rs | 80 ++++++ .../src/weights/frame_system.rs | 91 ++++--- .../glutton-westend/src/weights/mod.rs | 27 +- .../src/weights/pallet_glutton.rs | 89 ++++--- .../src/weights/pallet_message_queue.rs | 179 ++++++++++++++ .../src/weights/pallet_timestamp.rs | 6 +- 33 files changed, 2080 insertions(+), 1450 deletions(-) create mode 100644 cumulus/parachains/runtimes/collectives/collectives-westend/src/weights/cumulus_pallet_dmp_queue.rs create mode 100644 cumulus/parachains/runtimes/collectives/collectives-westend/src/weights/cumulus_pallet_parachain_system.rs create mode 100644 cumulus/parachains/runtimes/collectives/collectives-westend/src/weights/pallet_message_queue.rs create mode 100644 cumulus/parachains/runtimes/glutton/glutton-westend/src/weights/cumulus_pallet_parachain_system.rs create mode 100644 cumulus/parachains/runtimes/glutton/glutton-westend/src/weights/pallet_message_queue.rs diff --git a/cumulus/parachains/runtimes/collectives/collectives-westend/src/weights/cumulus_pallet_dmp_queue.rs b/cumulus/parachains/runtimes/collectives/collectives-westend/src/weights/cumulus_pallet_dmp_queue.rs new file mode 100644 index 000000000000..cc41dcd6cbbb --- /dev/null +++ b/cumulus/parachains/runtimes/collectives/collectives-westend/src/weights/cumulus_pallet_dmp_queue.rs @@ -0,0 +1,131 @@ +// Copyright (C) Parity Technologies (UK) Ltd. +// This file is part of Cumulus. + +// Cumulus 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. + +// Cumulus 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 Cumulus. If not, see . + +//! Autogenerated weights for `cumulus_pallet_dmp_queue` +//! +//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev +//! DATE: 2023-10-31, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! WORST CASE MAP SIZE: `1000000` +//! HOSTNAME: `runner-yprdrvc7-project-674-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz` +//! WASM-EXECUTION: `Compiled`, CHAIN: `Some("asset-hub-kusama-dev")`, DB CACHE: 1024 + +// Executed Command: +// target/production/polkadot-parachain +// benchmark +// pallet +// --steps=50 +// --repeat=20 +// --extrinsic=* +// --wasm-execution=compiled +// --heap-pages=4096 +// --json-file=/builds/parity/mirrors/polkadot-sdk/.git/.artifacts/bench.json +// --pallet=cumulus_pallet_dmp_queue +// --chain=asset-hub-kusama-dev +// --header=./cumulus/file_header.txt +// --output=./cumulus/parachains/runtimes/assets/asset-hub-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 `cumulus_pallet_dmp_queue`. +pub struct WeightInfo(PhantomData); +impl cumulus_pallet_dmp_queue::WeightInfo for WeightInfo { + /// Storage: `DmpQueue::MigrationStatus` (r:1 w:1) + /// Proof: `DmpQueue::MigrationStatus` (`max_values`: Some(1), `max_size`: Some(1028), added: 1523, mode: `MaxEncodedLen`) + /// Storage: UNKNOWN KEY `0xcd5c1f6df63bc97f4a8ce37f14a50ca754904d6d8c6fe06c4e5965f9b8397421` (r:1 w:0) + /// Proof: UNKNOWN KEY `0xcd5c1f6df63bc97f4a8ce37f14a50ca754904d6d8c6fe06c4e5965f9b8397421` (r:1 w:0) + /// Storage: UNKNOWN KEY `0xcd5c1f6df63bc97f4a8ce37f14a50ca7d95d3e948effbeccff2de2c182672836` (r:1 w:1) + /// Proof: UNKNOWN KEY `0xcd5c1f6df63bc97f4a8ce37f14a50ca7d95d3e948effbeccff2de2c182672836` (r:1 w:1) + /// Storage: `MessageQueue::BookStateFor` (r:1 w:1) + /// Proof: `MessageQueue::BookStateFor` (`max_values`: None, `max_size`: Some(52), added: 2527, mode: `MaxEncodedLen`) + /// Storage: `MessageQueue::ServiceHead` (r:1 w:1) + /// Proof: `MessageQueue::ServiceHead` (`max_values`: Some(1), `max_size`: Some(5), added: 500, mode: `MaxEncodedLen`) + /// Storage: `MessageQueue::Pages` (r:0 w:1) + /// Proof: `MessageQueue::Pages` (`max_values`: None, `max_size`: Some(65585), added: 68060, mode: `MaxEncodedLen`) + fn on_idle_good_msg() -> Weight { + // Proof Size summary in bytes: + // Measured: `65696` + // Estimated: `69161` + // Minimum execution time: 124_651_000 picoseconds. + Weight::from_parts(127_857_000, 0) + .saturating_add(Weight::from_parts(0, 69161)) + .saturating_add(T::DbWeight::get().reads(5)) + .saturating_add(T::DbWeight::get().writes(5)) + } + /// Storage: `DmpQueue::MigrationStatus` (r:1 w:1) + /// Proof: `DmpQueue::MigrationStatus` (`max_values`: Some(1), `max_size`: Some(1028), added: 1523, mode: `MaxEncodedLen`) + /// Storage: UNKNOWN KEY `0xcd5c1f6df63bc97f4a8ce37f14a50ca754904d6d8c6fe06c4e5965f9b8397421` (r:1 w:0) + /// Proof: UNKNOWN KEY `0xcd5c1f6df63bc97f4a8ce37f14a50ca754904d6d8c6fe06c4e5965f9b8397421` (r:1 w:0) + /// Storage: UNKNOWN KEY `0xcd5c1f6df63bc97f4a8ce37f14a50ca7d95d3e948effbeccff2de2c182672836` (r:1 w:1) + /// Proof: UNKNOWN KEY `0xcd5c1f6df63bc97f4a8ce37f14a50ca7d95d3e948effbeccff2de2c182672836` (r:1 w:1) + fn on_idle_large_msg() -> Weight { + // Proof Size summary in bytes: + // Measured: `65659` + // Estimated: `69124` + // Minimum execution time: 65_684_000 picoseconds. + Weight::from_parts(68_039_000, 0) + .saturating_add(Weight::from_parts(0, 69124)) + .saturating_add(T::DbWeight::get().reads(3)) + .saturating_add(T::DbWeight::get().writes(2)) + } + /// Storage: `DmpQueue::MigrationStatus` (r:1 w:1) + /// Proof: `DmpQueue::MigrationStatus` (`max_values`: Some(1), `max_size`: Some(1028), added: 1523, mode: `MaxEncodedLen`) + /// Storage: UNKNOWN KEY `0xcd5c1f6df63bc97f4a8ce37f14a50ca754904d6d8c6fe06c4e5965f9b8397421` (r:1 w:0) + /// Proof: UNKNOWN KEY `0xcd5c1f6df63bc97f4a8ce37f14a50ca754904d6d8c6fe06c4e5965f9b8397421` (r:1 w:0) + /// Storage: UNKNOWN KEY `0xcd5c1f6df63bc97f4a8ce37f14a50ca70f923ef3252d0166429d36d20ed665a8` (r:1 w:1) + /// Proof: UNKNOWN KEY `0xcd5c1f6df63bc97f4a8ce37f14a50ca70f923ef3252d0166429d36d20ed665a8` (r:1 w:1) + /// Storage: UNKNOWN KEY `0xcd5c1f6df63bc97f4a8ce37f14a50ca772275f64c354954352b71eea39cfaca2` (r:1 w:1) + /// Proof: UNKNOWN KEY `0xcd5c1f6df63bc97f4a8ce37f14a50ca772275f64c354954352b71eea39cfaca2` (r:1 w:1) + /// Storage: `MessageQueue::BookStateFor` (r:1 w:1) + /// Proof: `MessageQueue::BookStateFor` (`max_values`: None, `max_size`: Some(52), added: 2527, mode: `MaxEncodedLen`) + /// Storage: `MessageQueue::ServiceHead` (r:1 w:1) + /// Proof: `MessageQueue::ServiceHead` (`max_values`: Some(1), `max_size`: Some(5), added: 500, mode: `MaxEncodedLen`) + /// Storage: `MessageQueue::Pages` (r:0 w:1) + /// Proof: `MessageQueue::Pages` (`max_values`: None, `max_size`: Some(65585), added: 68060, mode: `MaxEncodedLen`) + fn on_idle_overweight_good_msg() -> Weight { + // Proof Size summary in bytes: + // Measured: `65726` + // Estimated: `69191` + // Minimum execution time: 117_657_000 picoseconds. + Weight::from_parts(122_035_000, 0) + .saturating_add(Weight::from_parts(0, 69191)) + .saturating_add(T::DbWeight::get().reads(6)) + .saturating_add(T::DbWeight::get().writes(6)) + } + /// Storage: `DmpQueue::MigrationStatus` (r:1 w:1) + /// Proof: `DmpQueue::MigrationStatus` (`max_values`: Some(1), `max_size`: Some(1028), added: 1523, mode: `MaxEncodedLen`) + /// Storage: UNKNOWN KEY `0xcd5c1f6df63bc97f4a8ce37f14a50ca754904d6d8c6fe06c4e5965f9b8397421` (r:1 w:0) + /// Proof: UNKNOWN KEY `0xcd5c1f6df63bc97f4a8ce37f14a50ca754904d6d8c6fe06c4e5965f9b8397421` (r:1 w:0) + /// Storage: UNKNOWN KEY `0xcd5c1f6df63bc97f4a8ce37f14a50ca70f923ef3252d0166429d36d20ed665a8` (r:1 w:1) + /// Proof: UNKNOWN KEY `0xcd5c1f6df63bc97f4a8ce37f14a50ca70f923ef3252d0166429d36d20ed665a8` (r:1 w:1) + /// Storage: UNKNOWN KEY `0xcd5c1f6df63bc97f4a8ce37f14a50ca772275f64c354954352b71eea39cfaca2` (r:1 w:1) + /// Proof: UNKNOWN KEY `0xcd5c1f6df63bc97f4a8ce37f14a50ca772275f64c354954352b71eea39cfaca2` (r:1 w:1) + fn on_idle_overweight_large_msg() -> Weight { + // Proof Size summary in bytes: + // Measured: `65689` + // Estimated: `69154` + // Minimum execution time: 59_799_000 picoseconds. + Weight::from_parts(61_354_000, 0) + .saturating_add(Weight::from_parts(0, 69154)) + .saturating_add(T::DbWeight::get().reads(4)) + .saturating_add(T::DbWeight::get().writes(3)) + } +} diff --git a/cumulus/parachains/runtimes/collectives/collectives-westend/src/weights/cumulus_pallet_parachain_system.rs b/cumulus/parachains/runtimes/collectives/collectives-westend/src/weights/cumulus_pallet_parachain_system.rs new file mode 100644 index 000000000000..0b7a2fc21cde --- /dev/null +++ b/cumulus/parachains/runtimes/collectives/collectives-westend/src/weights/cumulus_pallet_parachain_system.rs @@ -0,0 +1,80 @@ +// 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. + +//! Autogenerated weights for `cumulus_pallet_parachain_system` +//! +//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev +//! DATE: 2023-03-28, 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: Some(Wasm), WASM-EXECUTION: Compiled, CHAIN: Some("collectives-polkadot-dev"), DB CACHE: 1024 + +// Executed Command: +// ./target/release/polkadot-parachain +// benchmark +// pallet +// --chain +// collectives-polkadot-dev +// --pallet +// cumulus_pallet_parachain_system +// --extrinsic +// * +// --execution +// wasm +// --wasm-execution +// compiled +// --output +// parachains/runtimes/collectives/collectives-polkadot/src/weights +// --steps +// 50 +// --repeat +// 20 + +#![cfg_attr(rustfmt, rustfmt_skip)] +#![allow(unused_parens)] +#![allow(unused_imports)] + +use frame_support::{traits::Get, weights::Weight}; +use sp_std::marker::PhantomData; + +/// Weight functions for `cumulus_pallet_parachain_system`. +pub struct WeightInfo(PhantomData); +impl cumulus_pallet_parachain_system::WeightInfo for WeightInfo { + /// Storage: ParachainSystem LastDmqMqcHead (r:1 w:1) + /// Proof Skipped: ParachainSystem LastDmqMqcHead (max_values: Some(1), max_size: None, mode: Measured) + /// Storage: ParachainSystem ReservedDmpWeightOverride (r:1 w:0) + /// Proof Skipped: ParachainSystem ReservedDmpWeightOverride (max_values: Some(1), max_size: None, mode: Measured) + /// Storage: MessageQueue BookStateFor (r:1 w:1) + /// Proof: MessageQueue BookStateFor (max_values: None, max_size: Some(52), added: 2527, mode: MaxEncodedLen) + /// Storage: MessageQueue ServiceHead (r:1 w:1) + /// Proof: MessageQueue ServiceHead (max_values: Some(1), max_size: Some(5), added: 500, mode: MaxEncodedLen) + /// Storage: ParachainSystem ProcessedDownwardMessages (r:0 w:1) + /// Proof Skipped: ParachainSystem ProcessedDownwardMessages (max_values: Some(1), max_size: None, mode: Measured) + /// Storage: MessageQueue Pages (r:0 w:16) + /// Proof: MessageQueue Pages (max_values: None, max_size: Some(65585), added: 68060, mode: MaxEncodedLen) + /// The range of component `n` is `[0, 1000]`. + fn enqueue_inbound_downward_messages(n: u32, ) -> Weight { + // Proof Size summary in bytes: + // Measured: `48` + // Estimated: `8121` + // Minimum execution time: 1_988_000 picoseconds. + Weight::from_parts(2_039_000, 0) + .saturating_add(Weight::from_parts(0, 8121)) + // Standard Error: 30_660 + .saturating_add(Weight::from_parts(24_419_204, 0).saturating_mul(n.into())) + .saturating_add(T::DbWeight::get().reads(4)) + .saturating_add(T::DbWeight::get().writes(4)) + } +} diff --git a/cumulus/parachains/runtimes/collectives/collectives-westend/src/weights/cumulus_pallet_xcmp_queue.rs b/cumulus/parachains/runtimes/collectives/collectives-westend/src/weights/cumulus_pallet_xcmp_queue.rs index 82b2b24b75e1..e68c075bffc6 100644 --- a/cumulus/parachains/runtimes/collectives/collectives-westend/src/weights/cumulus_pallet_xcmp_queue.rs +++ b/cumulus/parachains/runtimes/collectives/collectives-westend/src/weights/cumulus_pallet_xcmp_queue.rs @@ -1,43 +1,38 @@ // Copyright (C) Parity Technologies (UK) Ltd. -// This file is part of Cumulus. +// SPDX-License-Identifier: Apache-2.0 -// Cumulus 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. - -// Cumulus 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 Cumulus. If not, see . +// 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. //! Autogenerated weights for `cumulus_pallet_xcmp_queue` //! //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev -//! DATE: 2023-10-25, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! DATE: 2023-09-15, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` //! WORST CASE MAP SIZE: `1000000` -//! HOSTNAME: `runner-ayothjw6-project-674-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz` -//! WASM-EXECUTION: `Compiled`, CHAIN: `Some("collectives-westend-dev")`, DB CACHE: 1024 +//! HOSTNAME: `Olivers-MacBook-Pro.local`, CPU: `` +//! WASM-EXECUTION: `Compiled`, CHAIN: `Some("collectives-polkadot-dev")`, DB CACHE: 1024 // Executed Command: -// ./target/production/polkadot-parachain +// ./target/release/polkadot-parachain // benchmark // pallet -// --chain=collectives-westend-dev -// --wasm-execution=compiled -// --pallet=cumulus_pallet_xcmp_queue -// --no-storage-info -// --no-median-slopes -// --no-min-squares -// --extrinsic=* -// --steps=50 -// --repeat=20 -// --json -// --header=./cumulus/file_header.txt -// --output=./cumulus/parachains/runtimes/collectives/collectives-westend/src/weights/ +// --pallet +// cumulus-pallet-xcmp-queue +// --chain +// collectives-polkadot-dev +// --output +// cumulus/parachains/runtimes/collectives/collectives-polkadot/src/weights/cumulus_pallet_xcmp_queue.rs +// --extrinsic +// #![cfg_attr(rustfmt, rustfmt_skip)] #![allow(unused_parens)] @@ -56,22 +51,98 @@ impl cumulus_pallet_xcmp_queue::WeightInfo for WeightIn // Proof Size summary in bytes: // Measured: `142` // Estimated: `1627` - // Minimum execution time: 4_236_000 picoseconds. - Weight::from_parts(4_471_000, 0) + // Minimum execution time: 5_000_000 picoseconds. + Weight::from_parts(6_000_000, 0) .saturating_add(Weight::from_parts(0, 1627)) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(1)) } - /// Storage: `XcmpQueue::QueueConfig` (r:1 w:1) + /// Storage: `XcmpQueue::QueueConfig` (r:1 w:0) /// Proof: `XcmpQueue::QueueConfig` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) - fn set_config_with_weight() -> Weight { + /// Storage: `MessageQueue::BookStateFor` (r:1 w:1) + /// Proof: `MessageQueue::BookStateFor` (`max_values`: None, `max_size`: Some(52), added: 2527, mode: `MaxEncodedLen`) + /// Storage: `MessageQueue::ServiceHead` (r:1 w:1) + /// Proof: `MessageQueue::ServiceHead` (`max_values`: Some(1), `max_size`: Some(5), added: 500, mode: `MaxEncodedLen`) + /// Storage: `XcmpQueue::InboundXcmpSuspended` (r:1 w:0) + /// Proof: `XcmpQueue::InboundXcmpSuspended` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `MessageQueue::Pages` (r:0 w:1) + /// Proof: `MessageQueue::Pages` (`max_values`: None, `max_size`: Some(65585), added: 68060, mode: `MaxEncodedLen`) + fn enqueue_xcmp_message() -> Weight { + // Proof Size summary in bytes: + // Measured: `148` + // Estimated: `3517` + // Minimum execution time: 14_000_000 picoseconds. + Weight::from_parts(14_000_000, 0) + .saturating_add(Weight::from_parts(0, 3517)) + .saturating_add(T::DbWeight::get().reads(4)) + .saturating_add(T::DbWeight::get().writes(3)) + } + /// Storage: `XcmpQueue::OutboundXcmpStatus` (r:1 w:1) + /// Proof: `XcmpQueue::OutboundXcmpStatus` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + fn suspend_channel() -> Weight { // Proof Size summary in bytes: // Measured: `142` // Estimated: `1627` - // Minimum execution time: 4_277_000 picoseconds. - Weight::from_parts(4_516_000, 0) + // Minimum execution time: 3_000_000 picoseconds. + Weight::from_parts(3_000_000, 0) .saturating_add(Weight::from_parts(0, 1627)) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(1)) } + /// Storage: `XcmpQueue::OutboundXcmpStatus` (r:1 w:1) + /// Proof: `XcmpQueue::OutboundXcmpStatus` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + fn resume_channel() -> Weight { + // Proof Size summary in bytes: + // Measured: `177` + // Estimated: `1662` + // Minimum execution time: 4_000_000 picoseconds. + Weight::from_parts(5_000_000, 0) + .saturating_add(Weight::from_parts(0, 1662)) + .saturating_add(T::DbWeight::get().reads(1)) + .saturating_add(T::DbWeight::get().writes(1)) + } + fn take_first_concatenated_xcm() -> Weight { + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 44_000_000 picoseconds. + Weight::from_parts(45_000_000, 0) + .saturating_add(Weight::from_parts(0, 0)) + } + /// Storage: UNKNOWN KEY `0x7b3237373ffdfeb1cab4222e3b520d6b345d8e88afa015075c945637c07e8f20` (r:1 w:1) + /// Proof: UNKNOWN KEY `0x7b3237373ffdfeb1cab4222e3b520d6b345d8e88afa015075c945637c07e8f20` (r:1 w:1) + /// Storage: `XcmpQueue::InboundXcmpMessages` (r:1 w:1) + /// Proof: `XcmpQueue::InboundXcmpMessages` (`max_values`: None, `max_size`: None, mode: `Measured`) + /// Storage: `MessageQueue::BookStateFor` (r:1 w:1) + /// Proof: `MessageQueue::BookStateFor` (`max_values`: None, `max_size`: Some(52), added: 2527, mode: `MaxEncodedLen`) + /// Storage: `MessageQueue::ServiceHead` (r:1 w:1) + /// Proof: `MessageQueue::ServiceHead` (`max_values`: Some(1), `max_size`: Some(5), added: 500, mode: `MaxEncodedLen`) + /// Storage: `XcmpQueue::QueueConfig` (r:1 w:0) + /// Proof: `XcmpQueue::QueueConfig` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `XcmpQueue::InboundXcmpSuspended` (r:1 w:0) + /// Proof: `XcmpQueue::InboundXcmpSuspended` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `MessageQueue::Pages` (r:0 w:1) + /// Proof: `MessageQueue::Pages` (`max_values`: None, `max_size`: Some(65585), added: 68060, mode: `MaxEncodedLen`) + fn on_idle_good_msg() -> Weight { + // Proof Size summary in bytes: + // Measured: `65777` + // Estimated: `69242` + // Minimum execution time: 60_000_000 picoseconds. + Weight::from_parts(63_000_000, 0) + .saturating_add(Weight::from_parts(0, 69242)) + .saturating_add(T::DbWeight::get().reads(6)) + .saturating_add(T::DbWeight::get().writes(5)) + } + /// Storage: UNKNOWN KEY `0x7b3237373ffdfeb1cab4222e3b520d6b345d8e88afa015075c945637c07e8f20` (r:1 w:1) + /// Proof: UNKNOWN KEY `0x7b3237373ffdfeb1cab4222e3b520d6b345d8e88afa015075c945637c07e8f20` (r:1 w:1) + fn on_idle_large_msg() -> Weight { + // Proof Size summary in bytes: + // Measured: `65776` + // Estimated: `69241` + // Minimum execution time: 41_000_000 picoseconds. + Weight::from_parts(43_000_000, 0) + .saturating_add(Weight::from_parts(0, 69241)) + .saturating_add(T::DbWeight::get().reads(2)) + .saturating_add(T::DbWeight::get().writes(2)) + } } diff --git a/cumulus/parachains/runtimes/collectives/collectives-westend/src/weights/frame_system.rs b/cumulus/parachains/runtimes/collectives/collectives-westend/src/weights/frame_system.rs index 186a8e7178d5..b6f1dc8dc080 100644 --- a/cumulus/parachains/runtimes/collectives/collectives-westend/src/weights/frame_system.rs +++ b/cumulus/parachains/runtimes/collectives/collectives-westend/src/weights/frame_system.rs @@ -1,32 +1,31 @@ // Copyright (C) Parity Technologies (UK) Ltd. -// This file is part of Cumulus. +// SPDX-License-Identifier: Apache-2.0 -// Cumulus 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. - -// Cumulus 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 Cumulus. If not, see . +// 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. //! Autogenerated weights for `frame_system` //! //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev -//! DATE: 2023-10-25, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! DATE: 2023-07-31, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` //! WORST CASE MAP SIZE: `1000000` -//! HOSTNAME: `runner-ayothjw6-project-674-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz` -//! WASM-EXECUTION: `Compiled`, CHAIN: `Some("collectives-westend-dev")`, DB CACHE: 1024 +//! HOSTNAME: `runner-ynta1nyy-project-238-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz` +//! EXECUTION: ``, WASM-EXECUTION: `Compiled`, CHAIN: `Some("collectives-polkadot-dev")`, DB CACHE: 1024 // Executed Command: // ./target/production/polkadot-parachain // benchmark // pallet -// --chain=collectives-westend-dev +// --chain=collectives-polkadot-dev // --wasm-execution=compiled // --pallet=frame_system // --no-storage-info @@ -36,8 +35,8 @@ // --steps=50 // --repeat=20 // --json -// --header=./cumulus/file_header.txt -// --output=./cumulus/parachains/runtimes/collectives/collectives-westend/src/weights/ +// --header=./file_header.txt +// --output=./parachains/runtimes/collectives/collectives-polkadot/src/weights/ #![cfg_attr(rustfmt, rustfmt_skip)] #![allow(unused_parens)] @@ -55,22 +54,22 @@ impl frame_system::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 1_974_000 picoseconds. - Weight::from_parts(2_031_000, 0) + // Minimum execution time: 1_926_000 picoseconds. + Weight::from_parts(1_929_666, 0) .saturating_add(Weight::from_parts(0, 0)) // Standard Error: 0 - .saturating_add(Weight::from_parts(389, 0).saturating_mul(b.into())) + .saturating_add(Weight::from_parts(387, 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: 5_535_000 picoseconds. - Weight::from_parts(5_694_000, 0) + // Minimum execution time: 7_221_000 picoseconds. + Weight::from_parts(34_449_539, 0) .saturating_add(Weight::from_parts(0, 0)) - // Standard Error: 4 - .saturating_add(Weight::from_parts(1_663, 0).saturating_mul(b.into())) + // Standard Error: 7 + .saturating_add(Weight::from_parts(1_706, 0).saturating_mul(b.into())) } /// Storage: `System::Digest` (r:1 w:1) /// Proof: `System::Digest` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) @@ -80,8 +79,8 @@ impl frame_system::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `0` // Estimated: `1485` - // Minimum execution time: 3_321_000 picoseconds. - Weight::from_parts(3_529_000, 0) + // Minimum execution time: 3_681_000 picoseconds. + Weight::from_parts(3_857_000, 0) .saturating_add(Weight::from_parts(0, 1485)) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(2)) @@ -100,11 +99,11 @@ impl frame_system::WeightInfo for WeightInfo { /// Proof: `ParachainSystem::DidSetValidationCode` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) fn set_code() -> Weight { // Proof Size summary in bytes: - // Measured: `164` - // Estimated: `1649` - // Minimum execution time: 114_623_305_000 picoseconds. - Weight::from_parts(119_247_587_000, 0) - .saturating_add(Weight::from_parts(0, 1649)) + // Measured: `156` + // Estimated: `1641` + // Minimum execution time: 101_899_621_000 picoseconds. + Weight::from_parts(106_377_672_000, 0) + .saturating_add(Weight::from_parts(0, 1641)) .saturating_add(T::DbWeight::get().reads(4)) .saturating_add(T::DbWeight::get().writes(3)) } @@ -115,11 +114,11 @@ impl frame_system::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 2_074_000 picoseconds. - Weight::from_parts(2_143_000, 0) + // Minimum execution time: 2_039_000 picoseconds. + Weight::from_parts(2_094_000, 0) .saturating_add(Weight::from_parts(0, 0)) - // Standard Error: 2_454 - .saturating_add(Weight::from_parts(793_217, 0).saturating_mul(i.into())) + // Standard Error: 2_124 + .saturating_add(Weight::from_parts(754_465, 0).saturating_mul(i.into())) .saturating_add(T::DbWeight::get().writes((1_u64).saturating_mul(i.into()))) } /// Storage: `Skipped::Metadata` (r:0 w:0) @@ -129,11 +128,11 @@ impl frame_system::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 2_105_000 picoseconds. - Weight::from_parts(2_129_000, 0) + // Minimum execution time: 2_103_000 picoseconds. + Weight::from_parts(2_182_000, 0) .saturating_add(Weight::from_parts(0, 0)) - // Standard Error: 1_043 - .saturating_add(Weight::from_parts(584_296, 0).saturating_mul(i.into())) + // Standard Error: 1_031 + .saturating_add(Weight::from_parts(570_563, 0).saturating_mul(i.into())) .saturating_add(T::DbWeight::get().writes((1_u64).saturating_mul(i.into()))) } /// Storage: `Skipped::Metadata` (r:0 w:0) @@ -141,13 +140,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: `94 + p * (69 ±0)` - // Estimated: `94 + p * (70 ±0)` - // Minimum execution time: 3_794_000 picoseconds. - Weight::from_parts(3_960_000, 0) - .saturating_add(Weight::from_parts(0, 94)) - // Standard Error: 1_913 - .saturating_add(Weight::from_parts(1_196_677, 0).saturating_mul(p.into())) + // Measured: `82 + p * (69 ±0)` + // Estimated: `78 + p * (70 ±0)` + // Minimum execution time: 3_728_000 picoseconds. + Weight::from_parts(3_836_000, 0) + .saturating_add(Weight::from_parts(0, 78)) + // Standard Error: 1_802 + .saturating_add(Weight::from_parts(1_199_345, 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/cumulus/parachains/runtimes/collectives/collectives-westend/src/weights/mod.rs b/cumulus/parachains/runtimes/collectives/collectives-westend/src/weights/mod.rs index b5a3a892f79a..1d877fdbd2bb 100644 --- a/cumulus/parachains/runtimes/collectives/collectives-westend/src/weights/mod.rs +++ b/cumulus/parachains/runtimes/collectives/collectives-westend/src/weights/mod.rs @@ -1,20 +1,21 @@ // Copyright (C) Parity Technologies (UK) Ltd. -// This file is part of Cumulus. +// SPDX-License-Identifier: Apache-2.0 -// Cumulus 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. - -// Cumulus 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 Cumulus. If not, see . +// 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. pub mod block_weights; +pub mod cumulus_pallet_dmp_queue; +pub mod cumulus_pallet_parachain_system; pub mod cumulus_pallet_xcmp_queue; pub mod extrinsic_weights; pub mod frame_system; @@ -25,6 +26,7 @@ pub mod pallet_collective; pub mod pallet_collective_content; pub mod pallet_core_fellowship_ambassador_core; pub mod pallet_core_fellowship_fellowship_core; +pub mod pallet_message_queue; pub mod pallet_multisig; pub mod pallet_preimage; pub mod pallet_proxy; diff --git a/cumulus/parachains/runtimes/collectives/collectives-westend/src/weights/pallet_alliance.rs b/cumulus/parachains/runtimes/collectives/collectives-westend/src/weights/pallet_alliance.rs index 303114a9e5ae..d8ede609a67c 100644 --- a/cumulus/parachains/runtimes/collectives/collectives-westend/src/weights/pallet_alliance.rs +++ b/cumulus/parachains/runtimes/collectives/collectives-westend/src/weights/pallet_alliance.rs @@ -1,32 +1,31 @@ // Copyright (C) Parity Technologies (UK) Ltd. -// This file is part of Cumulus. +// SPDX-License-Identifier: Apache-2.0 -// Cumulus 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. - -// Cumulus 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 Cumulus. If not, see . +// 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. //! Autogenerated weights for `pallet_alliance` //! //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev -//! DATE: 2023-10-25, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! DATE: 2023-07-31, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` //! WORST CASE MAP SIZE: `1000000` -//! HOSTNAME: `runner-ayothjw6-project-674-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz` -//! WASM-EXECUTION: `Compiled`, CHAIN: `Some("collectives-westend-dev")`, DB CACHE: 1024 +//! HOSTNAME: `runner-ynta1nyy-project-238-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz` +//! EXECUTION: ``, WASM-EXECUTION: `Compiled`, CHAIN: `Some("collectives-polkadot-dev")`, DB CACHE: 1024 // Executed Command: // ./target/production/polkadot-parachain // benchmark // pallet -// --chain=collectives-westend-dev +// --chain=collectives-polkadot-dev // --wasm-execution=compiled // --pallet=pallet_alliance // --no-storage-info @@ -36,8 +35,8 @@ // --steps=50 // --repeat=20 // --json -// --header=./cumulus/file_header.txt -// --output=./cumulus/parachains/runtimes/collectives/collectives-westend/src/weights/ +// --header=./file_header.txt +// --output=./parachains/runtimes/collectives/collectives-polkadot/src/weights/ #![cfg_attr(rustfmt, rustfmt_skip)] #![allow(unused_parens)] @@ -65,17 +64,17 @@ impl pallet_alliance::WeightInfo for WeightInfo { /// The range of component `p` is `[1, 100]`. fn propose_proposed(b: u32, m: u32, p: u32, ) -> Weight { // Proof Size summary in bytes: - // Measured: `476 + m * (32 ±0) + p * (36 ±0)` + // Measured: `439 + m * (32 ±0) + p * (36 ±0)` // Estimated: `6676 + m * (32 ±0) + p * (36 ±0)` - // Minimum execution time: 28_174_000 picoseconds. - Weight::from_parts(28_265_273, 0) + // Minimum execution time: 32_783_000 picoseconds. + Weight::from_parts(32_174_037, 0) .saturating_add(Weight::from_parts(0, 6676)) - // Standard Error: 149 - .saturating_add(Weight::from_parts(988, 0).saturating_mul(b.into())) - // Standard Error: 1_562 - .saturating_add(Weight::from_parts(38_035, 0).saturating_mul(m.into())) - // Standard Error: 1_542 - .saturating_add(Weight::from_parts(178_622, 0).saturating_mul(p.into())) + // Standard Error: 198 + .saturating_add(Weight::from_parts(1_220, 0).saturating_mul(b.into())) + // Standard Error: 2_074 + .saturating_add(Weight::from_parts(40_945, 0).saturating_mul(m.into())) + // Standard Error: 2_048 + .saturating_add(Weight::from_parts(181_087, 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, 32).saturating_mul(m.into())) @@ -88,13 +87,13 @@ impl pallet_alliance::WeightInfo for WeightInfo { /// The range of component `m` is `[5, 100]`. fn vote(m: u32, ) -> Weight { // Proof Size summary in bytes: - // Measured: `905 + m * (64 ±0)` + // Measured: `868 + m * (64 ±0)` // Estimated: `6676 + m * (64 ±0)` - // Minimum execution time: 27_418_000 picoseconds. - Weight::from_parts(28_547_550, 0) + // Minimum execution time: 28_520_000 picoseconds. + Weight::from_parts(29_661_024, 0) .saturating_add(Weight::from_parts(0, 6676)) - // Standard Error: 1_281 - .saturating_add(Weight::from_parts(58_900, 0).saturating_mul(m.into())) + // Standard Error: 2_336 + .saturating_add(Weight::from_parts(89_873, 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())) @@ -113,15 +112,15 @@ impl pallet_alliance::WeightInfo for WeightInfo { /// The range of component `p` is `[1, 100]`. fn close_early_disapproved(m: u32, p: u32, ) -> Weight { // Proof Size summary in bytes: - // Measured: `349 + m * (96 ±0) + p * (36 ±0)` + // Measured: `312 + m * (96 ±0) + p * (36 ±0)` // Estimated: `6676 + m * (97 ±0) + p * (36 ±0)` - // Minimum execution time: 34_634_000 picoseconds. - Weight::from_parts(30_932_145, 0) + // Minimum execution time: 39_353_000 picoseconds. + Weight::from_parts(33_028_008, 0) .saturating_add(Weight::from_parts(0, 6676)) - // Standard Error: 1_405 - .saturating_add(Weight::from_parts(72_224, 0).saturating_mul(m.into())) - // Standard Error: 1_370 - .saturating_add(Weight::from_parts(168_173, 0).saturating_mul(p.into())) + // Standard Error: 2_137 + .saturating_add(Weight::from_parts(90_946, 0).saturating_mul(m.into())) + // Standard Error: 2_084 + .saturating_add(Weight::from_parts(175_827, 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, 97).saturating_mul(m.into())) @@ -140,19 +139,17 @@ impl pallet_alliance::WeightInfo for WeightInfo { /// The range of component `b` is `[1, 1024]`. /// The range of component `m` is `[4, 100]`. /// The range of component `p` is `[1, 100]`. - fn close_early_approved(b: u32, m: u32, p: u32, ) -> Weight { + fn close_early_approved(_b: u32, m: u32, p: u32, ) -> Weight { // Proof Size summary in bytes: - // Measured: `799 + m * (96 ±0) + p * (41 ±0)` + // Measured: `762 + m * (96 ±0) + p * (41 ±0)` // Estimated: `6676 + m * (97 ±0) + p * (40 ±0)` - // Minimum execution time: 46_869_000 picoseconds. - Weight::from_parts(40_923_212, 0) + // Minimum execution time: 52_835_000 picoseconds. + Weight::from_parts(45_963_292, 0) .saturating_add(Weight::from_parts(0, 6676)) - // Standard Error: 248 - .saturating_add(Weight::from_parts(46, 0).saturating_mul(b.into())) - // Standard Error: 2_625 - .saturating_add(Weight::from_parts(94_168, 0).saturating_mul(m.into())) - // Standard Error: 2_559 - .saturating_add(Weight::from_parts(205_865, 0).saturating_mul(p.into())) + // Standard Error: 3_189 + .saturating_add(Weight::from_parts(111_627, 0).saturating_mul(m.into())) + // Standard Error: 3_109 + .saturating_add(Weight::from_parts(207_923, 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, 97).saturating_mul(m.into())) @@ -176,15 +173,15 @@ impl pallet_alliance::WeightInfo for WeightInfo { /// The range of component `p` is `[1, 100]`. fn close_disapproved(m: u32, p: u32, ) -> Weight { // Proof Size summary in bytes: - // Measured: `555 + m * (96 ±0) + p * (41 ±0)` + // Measured: `518 + m * (96 ±0) + p * (41 ±0)` // Estimated: `6676 + m * (109 ±0) + p * (43 ±0)` - // Minimum execution time: 47_306_000 picoseconds. - Weight::from_parts(42_986_284, 0) + // Minimum execution time: 49_980_000 picoseconds. + Weight::from_parts(48_110_301, 0) .saturating_add(Weight::from_parts(0, 6676)) - // Standard Error: 4_227 - .saturating_add(Weight::from_parts(136_999, 0).saturating_mul(m.into())) - // Standard Error: 4_176 - .saturating_add(Weight::from_parts(195_442, 0).saturating_mul(p.into())) + // Standard Error: 5_057 + .saturating_add(Weight::from_parts(169_065, 0).saturating_mul(m.into())) + // Standard Error: 4_995 + .saturating_add(Weight::from_parts(201_349, 0).saturating_mul(p.into())) .saturating_add(T::DbWeight::get().reads(6)) .saturating_add(T::DbWeight::get().writes(4)) .saturating_add(Weight::from_parts(0, 109).saturating_mul(m.into())) @@ -205,19 +202,17 @@ impl pallet_alliance::WeightInfo for WeightInfo { /// The range of component `b` is `[1, 1024]`. /// The range of component `m` is `[5, 100]`. /// The range of component `p` is `[1, 100]`. - fn close_approved(b: u32, m: u32, p: u32, ) -> Weight { + fn close_approved(_b: u32, m: u32, p: u32, ) -> Weight { // Proof Size summary in bytes: - // Measured: `454 + m * (96 ±0) + p * (36 ±0)` + // Measured: `417 + m * (96 ±0) + p * (36 ±0)` // Estimated: `6676 + m * (96 ±0) + p * (36 ±0)` - // Minimum execution time: 35_896_000 picoseconds. - Weight::from_parts(31_007_839, 0) + // Minimum execution time: 40_646_000 picoseconds. + Weight::from_parts(36_865_909, 0) .saturating_add(Weight::from_parts(0, 6676)) - // Standard Error: 146 - .saturating_add(Weight::from_parts(499, 0).saturating_mul(b.into())) - // Standard Error: 1_562 - .saturating_add(Weight::from_parts(73_612, 0).saturating_mul(m.into())) - // Standard Error: 1_506 - .saturating_add(Weight::from_parts(177_870, 0).saturating_mul(p.into())) + // Standard Error: 2_136 + .saturating_add(Weight::from_parts(74_341, 0).saturating_mul(m.into())) + // Standard Error: 2_059 + .saturating_add(Weight::from_parts(170_035, 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, 96).saturating_mul(m.into())) @@ -231,15 +226,15 @@ impl pallet_alliance::WeightInfo for WeightInfo { /// The range of component `z` is `[0, 100]`. fn init_members(m: u32, z: u32, ) -> Weight { // Proof Size summary in bytes: - // Measured: `48` + // Measured: `12` // Estimated: `12362` - // Minimum execution time: 27_108_000 picoseconds. - Weight::from_parts(14_902_952, 0) + // Minimum execution time: 29_710_000 picoseconds. + Weight::from_parts(17_762_170, 0) .saturating_add(Weight::from_parts(0, 12362)) - // Standard Error: 1_370 - .saturating_add(Weight::from_parts(163_312, 0).saturating_mul(m.into())) - // Standard Error: 1_354 - .saturating_add(Weight::from_parts(134_431, 0).saturating_mul(z.into())) + // Standard Error: 1_652 + .saturating_add(Weight::from_parts(156_967, 0).saturating_mul(m.into())) + // Standard Error: 1_632 + .saturating_add(Weight::from_parts(130_352, 0).saturating_mul(z.into())) .saturating_add(T::DbWeight::get().reads(3)) .saturating_add(T::DbWeight::get().writes(3)) } @@ -262,15 +257,15 @@ impl pallet_alliance::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `0 + x * (52 ±0) + y * (53 ±0) + z * (250 ±0)` // Estimated: `12362 + x * (2539 ±0) + y * (2539 ±0) + z * (2603 ±1)` - // Minimum execution time: 310_288_000 picoseconds. - Weight::from_parts(312_847_000, 0) + // Minimum execution time: 294_258_000 picoseconds. + Weight::from_parts(295_116_000, 0) .saturating_add(Weight::from_parts(0, 12362)) - // Standard Error: 25_829 - .saturating_add(Weight::from_parts(554_825, 0).saturating_mul(x.into())) - // Standard Error: 25_705 - .saturating_add(Weight::from_parts(588_691, 0).saturating_mul(y.into())) - // Standard Error: 51_363 - .saturating_add(Weight::from_parts(13_671_864, 0).saturating_mul(z.into())) + // Standard Error: 23_663 + .saturating_add(Weight::from_parts(553_978, 0).saturating_mul(x.into())) + // Standard Error: 23_549 + .saturating_add(Weight::from_parts(567_024, 0).saturating_mul(y.into())) + // Standard Error: 47_055 + .saturating_add(Weight::from_parts(15_439_056, 0).saturating_mul(z.into())) .saturating_add(T::DbWeight::get().reads(3)) .saturating_add(T::DbWeight::get().reads((1_u64).saturating_mul(x.into()))) .saturating_add(T::DbWeight::get().reads((1_u64).saturating_mul(y.into()))) @@ -287,8 +282,8 @@ impl pallet_alliance::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 6_193_000 picoseconds. - Weight::from_parts(6_440_000, 0) + // Minimum execution time: 8_538_000 picoseconds. + Weight::from_parts(8_752_000, 0) .saturating_add(Weight::from_parts(0, 0)) .saturating_add(T::DbWeight::get().writes(1)) } @@ -298,8 +293,8 @@ impl pallet_alliance::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `76` // Estimated: `10187` - // Minimum execution time: 8_350_000 picoseconds. - Weight::from_parts(8_675_000, 0) + // Minimum execution time: 11_213_000 picoseconds. + Weight::from_parts(11_792_000, 0) .saturating_add(Weight::from_parts(0, 10187)) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(1)) @@ -310,8 +305,8 @@ impl pallet_alliance::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `149` // Estimated: `10187` - // Minimum execution time: 9_268_000 picoseconds. - Weight::from_parts(9_757_000, 0) + // Minimum execution time: 12_477_000 picoseconds. + Weight::from_parts(12_942_000, 0) .saturating_add(Weight::from_parts(0, 10187)) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(1)) @@ -328,8 +323,8 @@ impl pallet_alliance::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `294` // Estimated: `18048` - // Minimum execution time: 37_756_000 picoseconds. - Weight::from_parts(38_912_000, 0) + // Minimum execution time: 41_517_000 picoseconds. + Weight::from_parts(42_433_000, 0) .saturating_add(Weight::from_parts(0, 18048)) .saturating_add(T::DbWeight::get().reads(5)) .saturating_add(T::DbWeight::get().writes(3)) @@ -342,8 +337,8 @@ impl pallet_alliance::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `193` // Estimated: `18048` - // Minimum execution time: 23_340_000 picoseconds. - Weight::from_parts(24_417_000, 0) + // Minimum execution time: 25_950_000 picoseconds. + Weight::from_parts(26_631_000, 0) .saturating_add(Weight::from_parts(0, 18048)) .saturating_add(T::DbWeight::get().reads(4)) .saturating_add(T::DbWeight::get().writes(1)) @@ -358,10 +353,10 @@ impl pallet_alliance::WeightInfo for WeightInfo { /// Proof: `AllianceMotion::Prime` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) fn elevate_ally() -> Weight { // Proof Size summary in bytes: - // Measured: `273` + // Measured: `236` // Estimated: `12362` - // Minimum execution time: 22_323_000 picoseconds. - Weight::from_parts(23_152_000, 0) + // Minimum execution time: 24_470_000 picoseconds. + Weight::from_parts(25_222_000, 0) .saturating_add(Weight::from_parts(0, 12362)) .saturating_add(T::DbWeight::get().reads(3)) .saturating_add(T::DbWeight::get().writes(4)) @@ -378,10 +373,10 @@ impl pallet_alliance::WeightInfo for WeightInfo { /// Proof: `Alliance::RetiringMembers` (`max_values`: None, `max_size`: Some(52), added: 2527, mode: `MaxEncodedLen`) fn give_retirement_notice() -> Weight { // Proof Size summary in bytes: - // Measured: `273` + // Measured: `236` // Estimated: `23734` - // Minimum execution time: 27_343_000 picoseconds. - Weight::from_parts(28_590_000, 0) + // Minimum execution time: 31_519_000 picoseconds. + Weight::from_parts(32_827_000, 0) .saturating_add(Weight::from_parts(0, 23734)) .saturating_add(T::DbWeight::get().reads(5)) .saturating_add(T::DbWeight::get().writes(5)) @@ -398,8 +393,8 @@ impl pallet_alliance::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `517` // Estimated: `6676` - // Minimum execution time: 34_882_000 picoseconds. - Weight::from_parts(36_031_000, 0) + // Minimum execution time: 38_799_000 picoseconds. + Weight::from_parts(39_634_000, 0) .saturating_add(Weight::from_parts(0, 6676)) .saturating_add(T::DbWeight::get().reads(4)) .saturating_add(T::DbWeight::get().writes(4)) @@ -430,10 +425,10 @@ impl pallet_alliance::WeightInfo for WeightInfo { /// Proof: `AllianceMotion::Prime` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) fn kick_member() -> Weight { // Proof Size summary in bytes: - // Measured: `751` + // Measured: `643` // Estimated: `18048` - // Minimum execution time: 125_529_000 picoseconds. - Weight::from_parts(129_404_000, 0) + // Minimum execution time: 137_442_000 picoseconds. + Weight::from_parts(142_142_000, 0) .saturating_add(Weight::from_parts(0, 18048)) .saturating_add(T::DbWeight::get().reads(13)) .saturating_add(T::DbWeight::get().writes(8)) @@ -448,13 +443,13 @@ impl pallet_alliance::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `76` // Estimated: `27187` - // Minimum execution time: 5_358_000 picoseconds. - Weight::from_parts(5_480_000, 0) + // Minimum execution time: 7_189_000 picoseconds. + Weight::from_parts(7_387_000, 0) .saturating_add(Weight::from_parts(0, 27187)) - // Standard Error: 3_995 - .saturating_add(Weight::from_parts(1_027_103, 0).saturating_mul(n.into())) - // Standard Error: 1_564 - .saturating_add(Weight::from_parts(71_573, 0).saturating_mul(l.into())) + // Standard Error: 3_417 + .saturating_add(Weight::from_parts(1_581_413, 0).saturating_mul(n.into())) + // Standard Error: 1_338 + .saturating_add(Weight::from_parts(67_739, 0).saturating_mul(l.into())) .saturating_add(T::DbWeight::get().reads(2)) .saturating_add(T::DbWeight::get().writes(2)) } @@ -468,13 +463,13 @@ impl pallet_alliance::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `0 + l * (100 ±0) + n * (289 ±0)` // Estimated: `27187` - // Minimum execution time: 5_414_000 picoseconds. - Weight::from_parts(5_526_000, 0) + // Minimum execution time: 7_201_000 picoseconds. + Weight::from_parts(7_325_000, 0) .saturating_add(Weight::from_parts(0, 27187)) - // Standard Error: 191_933 - .saturating_add(Weight::from_parts(17_796_412, 0).saturating_mul(n.into())) - // Standard Error: 75_169 - .saturating_add(Weight::from_parts(269_485, 0).saturating_mul(l.into())) + // Standard Error: 183_302 + .saturating_add(Weight::from_parts(16_886_382, 0).saturating_mul(n.into())) + // Standard Error: 71_789 + .saturating_add(Weight::from_parts(352_937, 0).saturating_mul(l.into())) .saturating_add(T::DbWeight::get().reads(2)) .saturating_add(T::DbWeight::get().writes(2)) } @@ -488,10 +483,10 @@ impl pallet_alliance::WeightInfo for WeightInfo { /// Proof: `AllianceMotion::Prime` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) fn abdicate_fellow_status() -> Weight { // Proof Size summary in bytes: - // Measured: `273` + // Measured: `236` // Estimated: `18048` - // Minimum execution time: 27_088_000 picoseconds. - Weight::from_parts(27_806_000, 0) + // Minimum execution time: 29_653_000 picoseconds. + Weight::from_parts(30_365_000, 0) .saturating_add(Weight::from_parts(0, 18048)) .saturating_add(T::DbWeight::get().reads(4)) .saturating_add(T::DbWeight::get().writes(4)) diff --git a/cumulus/parachains/runtimes/collectives/collectives-westend/src/weights/pallet_balances.rs b/cumulus/parachains/runtimes/collectives/collectives-westend/src/weights/pallet_balances.rs index e53388385e6a..6c1cf072257f 100644 --- a/cumulus/parachains/runtimes/collectives/collectives-westend/src/weights/pallet_balances.rs +++ b/cumulus/parachains/runtimes/collectives/collectives-westend/src/weights/pallet_balances.rs @@ -1,32 +1,31 @@ // Copyright (C) Parity Technologies (UK) Ltd. -// This file is part of Cumulus. +// SPDX-License-Identifier: Apache-2.0 -// Cumulus 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. - -// Cumulus 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 Cumulus. If not, see . +// 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. //! Autogenerated weights for `pallet_balances` //! //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev -//! DATE: 2023-10-25, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! DATE: 2023-07-31, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` //! WORST CASE MAP SIZE: `1000000` -//! HOSTNAME: `runner-ayothjw6-project-674-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz` -//! WASM-EXECUTION: `Compiled`, CHAIN: `Some("collectives-westend-dev")`, DB CACHE: 1024 +//! HOSTNAME: `runner-ynta1nyy-project-238-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz` +//! EXECUTION: ``, WASM-EXECUTION: `Compiled`, CHAIN: `Some("collectives-polkadot-dev")`, DB CACHE: 1024 // Executed Command: // ./target/production/polkadot-parachain // benchmark // pallet -// --chain=collectives-westend-dev +// --chain=collectives-polkadot-dev // --wasm-execution=compiled // --pallet=pallet_balances // --no-storage-info @@ -36,8 +35,8 @@ // --steps=50 // --repeat=20 // --json -// --header=./cumulus/file_header.txt -// --output=./cumulus/parachains/runtimes/collectives/collectives-westend/src/weights/ +// --header=./file_header.txt +// --output=./parachains/runtimes/collectives/collectives-polkadot/src/weights/ #![cfg_attr(rustfmt, rustfmt_skip)] #![allow(unused_parens)] @@ -56,8 +55,8 @@ impl pallet_balances::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `0` // Estimated: `3593` - // Minimum execution time: 45_966_000 picoseconds. - Weight::from_parts(46_577_000, 0) + // Minimum execution time: 55_696_000 picoseconds. + Weight::from_parts(56_582_000, 0) .saturating_add(Weight::from_parts(0, 3593)) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(1)) @@ -68,8 +67,8 @@ impl pallet_balances::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `0` // Estimated: `3593` - // Minimum execution time: 35_637_000 picoseconds. - Weight::from_parts(36_403_000, 0) + // Minimum execution time: 40_885_000 picoseconds. + Weight::from_parts(41_993_000, 0) .saturating_add(Weight::from_parts(0, 3593)) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(1)) @@ -80,8 +79,8 @@ impl pallet_balances::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `103` // Estimated: `3593` - // Minimum execution time: 12_923_000 picoseconds. - Weight::from_parts(13_239_000, 0) + // Minimum execution time: 14_565_000 picoseconds. + Weight::from_parts(15_080_000, 0) .saturating_add(Weight::from_parts(0, 3593)) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(1)) @@ -92,8 +91,8 @@ impl pallet_balances::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `103` // Estimated: `3593` - // Minimum execution time: 18_042_000 picoseconds. - Weight::from_parts(18_398_000, 0) + // Minimum execution time: 22_158_000 picoseconds. + Weight::from_parts(22_715_000, 0) .saturating_add(Weight::from_parts(0, 3593)) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(1)) @@ -104,8 +103,8 @@ impl pallet_balances::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `103` // Estimated: `6196` - // Minimum execution time: 47_006_000 picoseconds. - Weight::from_parts(47_851_000, 0) + // Minimum execution time: 57_957_000 picoseconds. + Weight::from_parts(58_618_000, 0) .saturating_add(Weight::from_parts(0, 6196)) .saturating_add(T::DbWeight::get().reads(2)) .saturating_add(T::DbWeight::get().writes(2)) @@ -116,8 +115,8 @@ impl pallet_balances::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `0` // Estimated: `3593` - // Minimum execution time: 44_738_000 picoseconds. - Weight::from_parts(45_040_000, 0) + // Minimum execution time: 52_018_000 picoseconds. + Weight::from_parts(52_795_000, 0) .saturating_add(Weight::from_parts(0, 3593)) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(1)) @@ -128,8 +127,8 @@ impl pallet_balances::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `103` // Estimated: `3593` - // Minimum execution time: 15_378_000 picoseconds. - Weight::from_parts(15_864_000, 0) + // Minimum execution time: 17_469_000 picoseconds. + Weight::from_parts(18_030_000, 0) .saturating_add(Weight::from_parts(0, 3593)) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(1)) @@ -141,11 +140,11 @@ impl pallet_balances::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `0 + u * (136 ±0)` // Estimated: `990 + u * (2603 ±0)` - // Minimum execution time: 15_154_000 picoseconds. - Weight::from_parts(15_325_000, 0) + // Minimum execution time: 17_223_000 picoseconds. + Weight::from_parts(17_587_000, 0) .saturating_add(Weight::from_parts(0, 990)) - // Standard Error: 16_649 - .saturating_add(Weight::from_parts(14_005_633, 0).saturating_mul(u.into())) + // Standard Error: 16_201 + .saturating_add(Weight::from_parts(15_360_967, 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/cumulus/parachains/runtimes/collectives/collectives-westend/src/weights/pallet_collator_selection.rs b/cumulus/parachains/runtimes/collectives/collectives-westend/src/weights/pallet_collator_selection.rs index f7f9ae0d06ab..2c729e8dc107 100644 --- a/cumulus/parachains/runtimes/collectives/collectives-westend/src/weights/pallet_collator_selection.rs +++ b/cumulus/parachains/runtimes/collectives/collectives-westend/src/weights/pallet_collator_selection.rs @@ -1,32 +1,31 @@ // Copyright (C) Parity Technologies (UK) Ltd. -// This file is part of Cumulus. +// SPDX-License-Identifier: Apache-2.0 -// Cumulus 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. - -// Cumulus 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 Cumulus. If not, see . +// 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. //! Autogenerated weights for `pallet_collator_selection` //! //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev -//! DATE: 2023-10-25, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! DATE: 2023-07-31, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` //! WORST CASE MAP SIZE: `1000000` -//! HOSTNAME: `runner-ayothjw6-project-674-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz` -//! WASM-EXECUTION: `Compiled`, CHAIN: `Some("collectives-westend-dev")`, DB CACHE: 1024 +//! HOSTNAME: `runner-ynta1nyy-project-238-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz` +//! EXECUTION: ``, WASM-EXECUTION: `Compiled`, CHAIN: `Some("collectives-polkadot-dev")`, DB CACHE: 1024 // Executed Command: // ./target/production/polkadot-parachain // benchmark // pallet -// --chain=collectives-westend-dev +// --chain=collectives-polkadot-dev // --wasm-execution=compiled // --pallet=pallet_collator_selection // --no-storage-info @@ -36,8 +35,8 @@ // --steps=50 // --repeat=20 // --json -// --header=./cumulus/file_header.txt -// --output=./cumulus/parachains/runtimes/collectives/collectives-westend/src/weights/ +// --header=./file_header.txt +// --output=./parachains/runtimes/collectives/collectives-polkadot/src/weights/ #![cfg_attr(rustfmt, rustfmt_skip)] #![allow(unused_parens)] @@ -59,11 +58,11 @@ impl pallet_collator_selection::WeightInfo for WeightIn // Proof Size summary in bytes: // Measured: `163 + b * (79 ±0)` // Estimated: `1154 + b * (2555 ±0)` - // Minimum execution time: 12_056_000 picoseconds. - Weight::from_parts(9_406_730, 0) + // Minimum execution time: 14_616_000 picoseconds. + Weight::from_parts(12_150_410, 0) .saturating_add(Weight::from_parts(0, 1154)) - // Standard Error: 4_827 - .saturating_add(Weight::from_parts(3_183_919, 0).saturating_mul(b.into())) + // Standard Error: 6_270 + .saturating_add(Weight::from_parts(3_256_932, 0).saturating_mul(b.into())) .saturating_add(T::DbWeight::get().reads((1_u64).saturating_mul(b.into()))) .saturating_add(T::DbWeight::get().writes(1)) .saturating_add(Weight::from_parts(0, 2555).saturating_mul(b.into())) @@ -80,15 +79,13 @@ impl pallet_collator_selection::WeightInfo for WeightIn /// The range of component `c` is `[1, 99]`. fn add_invulnerable(b: u32, c: u32, ) -> Weight { // Proof Size summary in bytes: - // Measured: `790 + b * (32 ±0) + c * (53 ±0)` + // Measured: `756 + b * (32 ±0) + c * (53 ±0)` // Estimated: `6287 + b * (37 ±0) + c * (53 ±0)` - // Minimum execution time: 39_794_000 picoseconds. - Weight::from_parts(39_991_454, 0) + // Minimum execution time: 48_450_000 picoseconds. + Weight::from_parts(51_166_679, 0) .saturating_add(Weight::from_parts(0, 6287)) - // Standard Error: 10_388 - .saturating_add(Weight::from_parts(78_018, 0).saturating_mul(b.into())) - // Standard Error: 1_969 - .saturating_add(Weight::from_parts(166_857, 0).saturating_mul(c.into())) + // Standard Error: 2_588 + .saturating_add(Weight::from_parts(167_219, 0).saturating_mul(c.into())) .saturating_add(T::DbWeight::get().reads(4)) .saturating_add(T::DbWeight::get().writes(3)) .saturating_add(Weight::from_parts(0, 37).saturating_mul(b.into())) @@ -101,13 +98,13 @@ impl pallet_collator_selection::WeightInfo for WeightIn /// The range of component `b` is `[5, 20]`. fn remove_invulnerable(b: u32, ) -> Weight { // Proof Size summary in bytes: - // Measured: `153 + b * (32 ±0)` + // Measured: `119 + b * (32 ±0)` // Estimated: `6287` - // Minimum execution time: 12_209_000 picoseconds. - Weight::from_parts(12_416_370, 0) + // Minimum execution time: 15_830_000 picoseconds. + Weight::from_parts(15_792_847, 0) .saturating_add(Weight::from_parts(0, 6287)) - // Standard Error: 2_675 - .saturating_add(Weight::from_parts(122_318, 0).saturating_mul(b.into())) + // Standard Error: 5_343 + .saturating_add(Weight::from_parts(167_955, 0).saturating_mul(b.into())) .saturating_add(T::DbWeight::get().reads(2)) .saturating_add(T::DbWeight::get().writes(1)) } @@ -117,8 +114,8 @@ impl pallet_collator_selection::WeightInfo for WeightIn // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 5_163_000 picoseconds. - Weight::from_parts(5_424_000, 0) + // Minimum execution time: 7_424_000 picoseconds. + Weight::from_parts(7_767_000, 0) .saturating_add(Weight::from_parts(0, 0)) .saturating_add(T::DbWeight::get().writes(1)) } @@ -128,8 +125,8 @@ impl pallet_collator_selection::WeightInfo for WeightIn // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 5_094_000 picoseconds. - Weight::from_parts(5_353_000, 0) + // Minimum execution time: 7_388_000 picoseconds. + Weight::from_parts(7_677_000, 0) .saturating_add(Weight::from_parts(0, 0)) .saturating_add(T::DbWeight::get().writes(1)) } @@ -148,13 +145,13 @@ impl pallet_collator_selection::WeightInfo for WeightIn /// The range of component `c` is `[1, 99]`. fn register_as_candidate(c: u32, ) -> Weight { // Proof Size summary in bytes: - // Measured: `770 + c * (52 ±0)` + // Measured: `736 + c * (52 ±0)` // Estimated: `6287 + c * (54 ±0)` - // Minimum execution time: 34_470_000 picoseconds. - Weight::from_parts(38_594_947, 0) + // Minimum execution time: 41_241_000 picoseconds. + Weight::from_parts(46_090_319, 0) .saturating_add(Weight::from_parts(0, 6287)) - // Standard Error: 2_058 - .saturating_add(Weight::from_parts(161_606, 0).saturating_mul(c.into())) + // Standard Error: 2_918 + .saturating_add(Weight::from_parts(161_140, 0).saturating_mul(c.into())) .saturating_add(T::DbWeight::get().reads(5)) .saturating_add(T::DbWeight::get().writes(2)) .saturating_add(Weight::from_parts(0, 54).saturating_mul(c.into())) @@ -168,13 +165,13 @@ impl pallet_collator_selection::WeightInfo for WeightIn /// The range of component `c` is `[4, 100]`. fn leave_intent(c: u32, ) -> Weight { // Proof Size summary in bytes: - // Measured: `340 + c * (50 ±0)` + // Measured: `306 + c * (50 ±0)` // Estimated: `6287` - // Minimum execution time: 28_490_000 picoseconds. - Weight::from_parts(30_562_663, 0) + // Minimum execution time: 34_221_000 picoseconds. + Weight::from_parts(36_183_872, 0) .saturating_add(Weight::from_parts(0, 6287)) - // Standard Error: 1_994 - .saturating_add(Weight::from_parts(151_043, 0).saturating_mul(c.into())) + // Standard Error: 2_766 + .saturating_add(Weight::from_parts(168_742, 0).saturating_mul(c.into())) .saturating_add(T::DbWeight::get().reads(2)) .saturating_add(T::DbWeight::get().writes(2)) } @@ -188,8 +185,8 @@ impl pallet_collator_selection::WeightInfo for WeightIn // Proof Size summary in bytes: // Measured: `103` // Estimated: `6196` - // Minimum execution time: 38_472_000 picoseconds. - Weight::from_parts(38_796_000, 0) + // Minimum execution time: 43_910_000 picoseconds. + Weight::from_parts(44_796_000, 0) .saturating_add(Weight::from_parts(0, 6196)) .saturating_add(T::DbWeight::get().reads(3)) .saturating_add(T::DbWeight::get().writes(4)) @@ -208,13 +205,13 @@ impl pallet_collator_selection::WeightInfo for WeightIn /// The range of component `c` is `[1, 100]`. fn new_session(r: u32, c: u32, ) -> Weight { // Proof Size summary in bytes: - // Measured: `2277 + c * (97 ±0) + r * (112 ±0)` + // Measured: `2243 + c * (97 ±0) + r * (112 ±0)` // Estimated: `6287 + c * (2519 ±0) + r * (2603 ±0)` - // Minimum execution time: 14_285_000 picoseconds. - Weight::from_parts(14_526_000, 0) + // Minimum execution time: 17_092_000 picoseconds. + Weight::from_parts(17_635_000, 0) .saturating_add(Weight::from_parts(0, 6287)) - // Standard Error: 294_316 - .saturating_add(Weight::from_parts(12_685_607, 0).saturating_mul(c.into())) + // Standard Error: 351_635 + .saturating_add(Weight::from_parts(15_162_192, 0).saturating_mul(c.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().writes(1)) diff --git a/cumulus/parachains/runtimes/collectives/collectives-westend/src/weights/pallet_collective.rs b/cumulus/parachains/runtimes/collectives/collectives-westend/src/weights/pallet_collective.rs index a025b8aaf707..9133baa6120c 100644 --- a/cumulus/parachains/runtimes/collectives/collectives-westend/src/weights/pallet_collective.rs +++ b/cumulus/parachains/runtimes/collectives/collectives-westend/src/weights/pallet_collective.rs @@ -1,32 +1,31 @@ // Copyright (C) Parity Technologies (UK) Ltd. -// This file is part of Cumulus. +// SPDX-License-Identifier: Apache-2.0 -// Cumulus 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. - -// Cumulus 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 Cumulus. If not, see . +// 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. //! Autogenerated weights for `pallet_collective` //! //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev -//! DATE: 2023-10-25, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! DATE: 2023-07-31, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` //! WORST CASE MAP SIZE: `1000000` -//! HOSTNAME: `runner-ayothjw6-project-674-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz` -//! WASM-EXECUTION: `Compiled`, CHAIN: `Some("collectives-westend-dev")`, DB CACHE: 1024 +//! HOSTNAME: `runner-ynta1nyy-project-238-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz` +//! EXECUTION: ``, WASM-EXECUTION: `Compiled`, CHAIN: `Some("collectives-polkadot-dev")`, DB CACHE: 1024 // Executed Command: // ./target/production/polkadot-parachain // benchmark // pallet -// --chain=collectives-westend-dev +// --chain=collectives-polkadot-dev // --wasm-execution=compiled // --pallet=pallet_collective // --no-storage-info @@ -36,8 +35,8 @@ // --steps=50 // --repeat=20 // --json -// --header=./cumulus/file_header.txt -// --output=./cumulus/parachains/runtimes/collectives/collectives-westend/src/weights/ +// --header=./file_header.txt +// --output=./parachains/runtimes/collectives/collectives-polkadot/src/weights/ #![cfg_attr(rustfmt, rustfmt_skip)] #![allow(unused_parens)] @@ -64,14 +63,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: `15728 + m * (1967 ±23) + p * (4332 ±23)` - // Minimum execution time: 15_785_000 picoseconds. - Weight::from_parts(15_864_000, 0) - .saturating_add(Weight::from_parts(0, 15728)) - // Standard Error: 56_422 - .saturating_add(Weight::from_parts(4_305_725, 0).saturating_mul(m.into())) - // Standard Error: 56_422 - .saturating_add(Weight::from_parts(7_762_022, 0).saturating_mul(p.into())) + // Estimated: `15691 + m * (1967 ±23) + p * (4332 ±23)` + // Minimum execution time: 16_410_000 picoseconds. + Weight::from_parts(16_816_000, 0) + .saturating_add(Weight::from_parts(0, 15691)) + // Standard Error: 59_812 + .saturating_add(Weight::from_parts(4_516_537, 0).saturating_mul(m.into())) + // Standard Error: 59_812 + .saturating_add(Weight::from_parts(7_992_168, 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)) @@ -85,15 +84,15 @@ impl pallet_collective::WeightInfo for WeightInfo { /// The range of component `m` is `[1, 100]`. fn execute(b: u32, m: u32, ) -> Weight { // Proof Size summary in bytes: - // Measured: `69 + m * (32 ±0)` - // Estimated: `1555 + m * (32 ±0)` - // Minimum execution time: 13_746_000 picoseconds. - Weight::from_parts(12_729_617, 0) - .saturating_add(Weight::from_parts(0, 1555)) - // Standard Error: 29 - .saturating_add(Weight::from_parts(1_595, 0).saturating_mul(b.into())) - // Standard Error: 304 - .saturating_add(Weight::from_parts(14_973, 0).saturating_mul(m.into())) + // Measured: `32 + m * (32 ±0)` + // Estimated: `1518 + m * (32 ±0)` + // Minimum execution time: 14_418_000 picoseconds. + Weight::from_parts(13_588_617, 0) + .saturating_add(Weight::from_parts(0, 1518)) + // Standard Error: 21 + .saturating_add(Weight::from_parts(1_711, 0).saturating_mul(b.into())) + // Standard Error: 223 + .saturating_add(Weight::from_parts(13_836, 0).saturating_mul(m.into())) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(Weight::from_parts(0, 32).saturating_mul(m.into())) } @@ -105,15 +104,15 @@ impl pallet_collective::WeightInfo for WeightInfo { /// The range of component `m` is `[1, 100]`. fn propose_execute(b: u32, m: u32, ) -> Weight { // Proof Size summary in bytes: - // Measured: `69 + m * (32 ±0)` - // Estimated: `3535 + m * (32 ±0)` - // Minimum execution time: 16_009_000 picoseconds. - Weight::from_parts(15_062_383, 0) - .saturating_add(Weight::from_parts(0, 3535)) - // Standard Error: 25 - .saturating_add(Weight::from_parts(1_645, 0).saturating_mul(b.into())) - // Standard Error: 258 - .saturating_add(Weight::from_parts(21_739, 0).saturating_mul(m.into())) + // Measured: `32 + m * (32 ±0)` + // Estimated: `3498 + m * (32 ±0)` + // Minimum execution time: 17_174_000 picoseconds. + Weight::from_parts(16_192_764, 0) + .saturating_add(Weight::from_parts(0, 3498)) + // Standard Error: 27 + .saturating_add(Weight::from_parts(1_672, 0).saturating_mul(b.into())) + // Standard Error: 280 + .saturating_add(Weight::from_parts(24_343, 0).saturating_mul(m.into())) .saturating_add(T::DbWeight::get().reads(2)) .saturating_add(Weight::from_parts(0, 32).saturating_mul(m.into())) } @@ -132,17 +131,17 @@ impl pallet_collective::WeightInfo for WeightInfo { /// The range of component `p` is `[1, 100]`. fn propose_proposed(b: u32, m: u32, p: u32, ) -> Weight { // Proof Size summary in bytes: - // Measured: `359 + m * (32 ±0) + p * (36 ±0)` - // Estimated: `3751 + m * (33 ±0) + p * (36 ±0)` - // Minimum execution time: 20_993_000 picoseconds. - Weight::from_parts(18_666_399, 0) - .saturating_add(Weight::from_parts(0, 3751)) - // Standard Error: 95 - .saturating_add(Weight::from_parts(3_542, 0).saturating_mul(b.into())) - // Standard Error: 991 - .saturating_add(Weight::from_parts(28_198, 0).saturating_mul(m.into())) - // Standard Error: 979 - .saturating_add(Weight::from_parts(198_850, 0).saturating_mul(p.into())) + // Measured: `322 + m * (32 ±0) + p * (36 ±0)` + // Estimated: `3714 + m * (33 ±0) + p * (36 ±0)` + // Minimum execution time: 23_970_000 picoseconds. + Weight::from_parts(23_004_052, 0) + .saturating_add(Weight::from_parts(0, 3714)) + // Standard Error: 123 + .saturating_add(Weight::from_parts(2_728, 0).saturating_mul(b.into())) + // Standard Error: 1_291 + .saturating_add(Weight::from_parts(32_731, 0).saturating_mul(m.into())) + // Standard Error: 1_275 + .saturating_add(Weight::from_parts(199_537, 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())) @@ -155,13 +154,13 @@ impl pallet_collective::WeightInfo for WeightInfo { /// The range of component `m` is `[5, 100]`. fn vote(m: u32, ) -> Weight { // Proof Size summary in bytes: - // Measured: `808 + m * (64 ±0)` - // Estimated: `4272 + m * (64 ±0)` - // Minimum execution time: 23_348_000 picoseconds. - Weight::from_parts(25_039_418, 0) - .saturating_add(Weight::from_parts(0, 4272)) - // Standard Error: 1_084 - .saturating_add(Weight::from_parts(31_461, 0).saturating_mul(m.into())) + // Measured: `771 + m * (64 ±0)` + // Estimated: `4235 + m * (64 ±0)` + // Minimum execution time: 25_843_000 picoseconds. + Weight::from_parts(26_092_578, 0) + .saturating_add(Weight::from_parts(0, 4235)) + // Standard Error: 1_785 + .saturating_add(Weight::from_parts(67_298, 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())) @@ -178,15 +177,15 @@ impl pallet_collective::WeightInfo for WeightInfo { /// The range of component `p` is `[1, 100]`. fn close_early_disapproved(m: u32, p: u32, ) -> Weight { // Proof Size summary in bytes: - // Measured: `397 + m * (64 ±0) + p * (36 ±0)` - // Estimated: `3842 + m * (65 ±0) + p * (36 ±0)` - // Minimum execution time: 23_433_000 picoseconds. - Weight::from_parts(22_748_277, 0) - .saturating_add(Weight::from_parts(0, 3842)) - // Standard Error: 1_110 - .saturating_add(Weight::from_parts(28_988, 0).saturating_mul(m.into())) - // Standard Error: 1_082 - .saturating_add(Weight::from_parts(188_763, 0).saturating_mul(p.into())) + // Measured: `360 + m * (64 ±0) + p * (36 ±0)` + // Estimated: `3805 + m * (65 ±0) + p * (36 ±0)` + // Minimum execution time: 27_543_000 picoseconds. + Weight::from_parts(26_505_473, 0) + .saturating_add(Weight::from_parts(0, 3805)) + // Standard Error: 1_054 + .saturating_add(Weight::from_parts(35_295, 0).saturating_mul(m.into())) + // Standard Error: 1_028 + .saturating_add(Weight::from_parts(190_508, 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())) @@ -205,17 +204,17 @@ impl pallet_collective::WeightInfo for WeightInfo { /// The range of component `p` is `[1, 100]`. fn close_early_approved(b: u32, m: u32, p: u32, ) -> Weight { // Proof Size summary in bytes: - // Measured: `699 + b * (1 ±0) + m * (64 ±0) + p * (40 ±0)` - // Estimated: `4016 + b * (1 ±0) + m * (66 ±0) + p * (40 ±0)` - // Minimum execution time: 33_339_000 picoseconds. - Weight::from_parts(32_125_967, 0) - .saturating_add(Weight::from_parts(0, 4016)) - // Standard Error: 164 - .saturating_add(Weight::from_parts(1_969, 0).saturating_mul(b.into())) - // Standard Error: 1_734 - .saturating_add(Weight::from_parts(26_994, 0).saturating_mul(m.into())) - // Standard Error: 1_691 - .saturating_add(Weight::from_parts(234_011, 0).saturating_mul(p.into())) + // Measured: `662 + b * (1 ±0) + m * (64 ±0) + p * (40 ±0)` + // Estimated: `3979 + b * (1 ±0) + m * (66 ±0) + p * (40 ±0)` + // Minimum execution time: 40_375_000 picoseconds. + Weight::from_parts(34_081_294, 0) + .saturating_add(Weight::from_parts(0, 3979)) + // Standard Error: 196 + .saturating_add(Weight::from_parts(3_796, 0).saturating_mul(b.into())) + // Standard Error: 2_072 + .saturating_add(Weight::from_parts(50_954, 0).saturating_mul(m.into())) + // Standard Error: 2_020 + .saturating_add(Weight::from_parts(246_000, 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())) @@ -236,15 +235,15 @@ impl pallet_collective::WeightInfo for WeightInfo { /// The range of component `p` is `[1, 100]`. fn close_disapproved(m: u32, p: u32, ) -> Weight { // Proof Size summary in bytes: - // Measured: `495 + m * (48 ±0) + p * (36 ±0)` - // Estimated: `3935 + m * (49 ±0) + p * (36 ±0)` - // Minimum execution time: 24_185_000 picoseconds. - Weight::from_parts(23_905_565, 0) - .saturating_add(Weight::from_parts(0, 3935)) - // Standard Error: 1_018 - .saturating_add(Weight::from_parts(26_540, 0).saturating_mul(m.into())) - // Standard Error: 992 - .saturating_add(Weight::from_parts(197_695, 0).saturating_mul(p.into())) + // Measured: `458 + m * (48 ±0) + p * (36 ±0)` + // Estimated: `3898 + m * (49 ±0) + p * (36 ±0)` + // Minimum execution time: 28_793_000 picoseconds. + Weight::from_parts(29_656_832, 0) + .saturating_add(Weight::from_parts(0, 3898)) + // Standard Error: 1_214 + .saturating_add(Weight::from_parts(22_148, 0).saturating_mul(m.into())) + // Standard Error: 1_184 + .saturating_add(Weight::from_parts(189_860, 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, 49).saturating_mul(m.into())) @@ -265,17 +264,17 @@ impl pallet_collective::WeightInfo for WeightInfo { /// The range of component `p` is `[1, 100]`. fn close_approved(b: u32, m: u32, p: u32, ) -> Weight { // Proof Size summary in bytes: - // Measured: `719 + b * (1 ±0) + m * (64 ±0) + p * (40 ±0)` - // Estimated: `4036 + b * (1 ±0) + m * (66 ±0) + p * (40 ±0)` - // Minimum execution time: 34_570_000 picoseconds. - Weight::from_parts(33_763_903, 0) - .saturating_add(Weight::from_parts(0, 4036)) - // Standard Error: 138 - .saturating_add(Weight::from_parts(2_667, 0).saturating_mul(b.into())) - // Standard Error: 1_465 - .saturating_add(Weight::from_parts(27_736, 0).saturating_mul(m.into())) - // Standard Error: 1_428 - .saturating_add(Weight::from_parts(220_400, 0).saturating_mul(p.into())) + // Measured: `682 + b * (1 ±0) + m * (64 ±0) + p * (40 ±0)` + // Estimated: `3999 + b * (1 ±0) + m * (66 ±0) + p * (40 ±0)` + // Minimum execution time: 40_887_000 picoseconds. + Weight::from_parts(39_529_567, 0) + .saturating_add(Weight::from_parts(0, 3999)) + // Standard Error: 191 + .saturating_add(Weight::from_parts(2_802, 0).saturating_mul(b.into())) + // Standard Error: 2_021 + .saturating_add(Weight::from_parts(35_956, 0).saturating_mul(m.into())) + // Standard Error: 1_970 + .saturating_add(Weight::from_parts(235_154, 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())) @@ -291,13 +290,13 @@ impl pallet_collective::WeightInfo for WeightInfo { /// The range of component `p` is `[1, 100]`. fn disapprove_proposal(p: u32, ) -> Weight { // Proof Size summary in bytes: - // Measured: `226 + p * (32 ±0)` - // Estimated: `1711 + p * (32 ±0)` - // Minimum execution time: 13_113_000 picoseconds. - Weight::from_parts(14_082_851, 0) - .saturating_add(Weight::from_parts(0, 1711)) - // Standard Error: 754 - .saturating_add(Weight::from_parts(165_767, 0).saturating_mul(p.into())) + // Measured: `189 + p * (32 ±0)` + // Estimated: `1674 + p * (32 ±0)` + // Minimum execution time: 14_040_000 picoseconds. + Weight::from_parts(15_075_964, 0) + .saturating_add(Weight::from_parts(0, 1674)) + // Standard Error: 854 + .saturating_add(Weight::from_parts(159_597, 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/cumulus/parachains/runtimes/collectives/collectives-westend/src/weights/pallet_collective_content.rs b/cumulus/parachains/runtimes/collectives/collectives-westend/src/weights/pallet_collective_content.rs index af43ced8f894..6be94db22db9 100644 --- a/cumulus/parachains/runtimes/collectives/collectives-westend/src/weights/pallet_collective_content.rs +++ b/cumulus/parachains/runtimes/collectives/collectives-westend/src/weights/pallet_collective_content.rs @@ -1,43 +1,38 @@ // Copyright (C) Parity Technologies (UK) Ltd. -// This file is part of Cumulus. +// SPDX-License-Identifier: Apache-2.0 -// Cumulus 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. - -// Cumulus 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 Cumulus. If not, see . +// 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. //! Autogenerated weights for `pallet_collective_content` //! //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev -//! DATE: 2023-10-25, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! DATE: 2023-08-18, STEPS: `10`, REPEAT: `3`, LOW RANGE: `[]`, HIGH RANGE: `[]` //! WORST CASE MAP SIZE: `1000000` -//! HOSTNAME: `runner-ayothjw6-project-674-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz` -//! WASM-EXECUTION: `Compiled`, CHAIN: `Some("collectives-westend-dev")`, DB CACHE: 1024 +//! HOSTNAME: `cob`, CPU: `` +//! WASM-EXECUTION: `Compiled`, CHAIN: `Some("collectives-polkadot-dev")`, DB CACHE: 1024 // Executed Command: -// ./target/production/polkadot-parachain +// ./target/debug/polkadot-parachain // benchmark // pallet -// --chain=collectives-westend-dev -// --wasm-execution=compiled +// --chain=collectives-polkadot-dev +// --steps=10 +// --repeat=3 // --pallet=pallet_collective_content -// --no-storage-info -// --no-median-slopes -// --no-min-squares // --extrinsic=* -// --steps=50 -// --repeat=20 -// --json -// --header=./cumulus/file_header.txt -// --output=./cumulus/parachains/runtimes/collectives/collectives-westend/src/weights/ +// --wasm-execution=compiled +// --heap-pages=4096 +// --output=./parachains/runtimes/collectives/collectives-polkadot/src/weights/ #![cfg_attr(rustfmt, rustfmt_skip)] #![allow(unused_parens)] @@ -56,39 +51,41 @@ impl pallet_collective_content::WeightInfo for WeightIn // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 5_367_000 picoseconds. - Weight::from_parts(5_657_000, 0) + // Minimum execution time: 99_000_000 picoseconds. + Weight::from_parts(99_000_000, 0) .saturating_add(Weight::from_parts(0, 0)) .saturating_add(T::DbWeight::get().writes(1)) } /// Storage: `AmbassadorCollective::Members` (r:1 w:0) /// Proof: `AmbassadorCollective::Members` (`max_values`: None, `max_size`: Some(42), added: 2517, mode: `MaxEncodedLen`) - /// Storage: `AmbassadorContent::CounterForAnnouncements` (r:1 w:1) - /// Proof: `AmbassadorContent::CounterForAnnouncements` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`) - /// Storage: `AmbassadorContent::Announcements` (r:1 w:1) + /// Storage: `AmbassadorContent::AnnouncementsCount` (r:1 w:1) + /// Proof: `AmbassadorContent::AnnouncementsCount` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`) + /// Storage: `AmbassadorContent::NextAnnouncementExpireAt` (r:1 w:1) + /// Proof: `AmbassadorContent::NextAnnouncementExpireAt` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`) + /// Storage: `AmbassadorContent::Announcements` (r:0 w:1) /// Proof: `AmbassadorContent::Announcements` (`max_values`: None, `max_size`: Some(90), added: 2565, mode: `MaxEncodedLen`) fn announce() -> Weight { // Proof Size summary in bytes: // Measured: `285` - // Estimated: `3555` - // Minimum execution time: 17_143_000 picoseconds. - Weight::from_parts(17_645_000, 0) - .saturating_add(Weight::from_parts(0, 3555)) + // Estimated: `3507` + // Minimum execution time: 273_000_000 picoseconds. + Weight::from_parts(278_000_000, 0) + .saturating_add(Weight::from_parts(0, 3507)) .saturating_add(T::DbWeight::get().reads(3)) - .saturating_add(T::DbWeight::get().writes(2)) + .saturating_add(T::DbWeight::get().writes(3)) } /// Storage: `AmbassadorCollective::Members` (r:1 w:0) /// Proof: `AmbassadorCollective::Members` (`max_values`: None, `max_size`: Some(42), added: 2517, mode: `MaxEncodedLen`) /// Storage: `AmbassadorContent::Announcements` (r:1 w:1) /// Proof: `AmbassadorContent::Announcements` (`max_values`: None, `max_size`: Some(90), added: 2565, mode: `MaxEncodedLen`) - /// Storage: `AmbassadorContent::CounterForAnnouncements` (r:1 w:1) - /// Proof: `AmbassadorContent::CounterForAnnouncements` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`) + /// Storage: `AmbassadorContent::AnnouncementsCount` (r:1 w:1) + /// Proof: `AmbassadorContent::AnnouncementsCount` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`) fn remove_announcement() -> Weight { // Proof Size summary in bytes: - // Measured: `427` + // Measured: `450` // Estimated: `3555` - // Minimum execution time: 21_152_000 picoseconds. - Weight::from_parts(21_870_000, 0) + // Minimum execution time: 326_000_000 picoseconds. + Weight::from_parts(338_000_000, 0) .saturating_add(Weight::from_parts(0, 3555)) .saturating_add(T::DbWeight::get().reads(3)) .saturating_add(T::DbWeight::get().writes(2)) diff --git a/cumulus/parachains/runtimes/collectives/collectives-westend/src/weights/pallet_core_fellowship_ambassador_core.rs b/cumulus/parachains/runtimes/collectives/collectives-westend/src/weights/pallet_core_fellowship_ambassador_core.rs index bbe893cfe81e..f40940a8b25f 100644 --- a/cumulus/parachains/runtimes/collectives/collectives-westend/src/weights/pallet_core_fellowship_ambassador_core.rs +++ b/cumulus/parachains/runtimes/collectives/collectives-westend/src/weights/pallet_core_fellowship_ambassador_core.rs @@ -1,4 +1,4 @@ -// Copyright (C) Parity Technologies (UK) Ltd. +// Copyright Parity Technologies (UK) Ltd. // This file is part of Cumulus. // Cumulus is free software: you can redistribute it and/or modify @@ -17,27 +17,24 @@ //! Autogenerated weights for `pallet_core_fellowship` //! //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev -//! DATE: 2023-10-25, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! DATE: 2023-08-11, STEPS: `2`, REPEAT: `2`, LOW RANGE: `[]`, HIGH RANGE: `[]` //! WORST CASE MAP SIZE: `1000000` -//! HOSTNAME: `runner-ayothjw6-project-674-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz` -//! WASM-EXECUTION: `Compiled`, CHAIN: `Some("collectives-westend-dev")`, DB CACHE: 1024 +//! HOSTNAME: `cob`, CPU: `` +//! WASM-EXECUTION: `Compiled`, CHAIN: `Some("collectives-polkadot-dev")`, DB CACHE: 1024 // Executed Command: -// ./target/production/polkadot-parachain +// target/release/polkadot-parachain // benchmark // pallet -// --chain=collectives-westend-dev +// --chain=collectives-polkadot-dev // --wasm-execution=compiled // --pallet=pallet_core_fellowship -// --no-storage-info -// --no-median-slopes -// --no-min-squares // --extrinsic=* -// --steps=50 -// --repeat=20 +// --steps=2 +// --repeat=2 // --json -// --header=./cumulus/file_header.txt -// --output=./cumulus/parachains/runtimes/collectives/collectives-westend/src/weights/ +// --header=./file_header.txt +// --output=./parachains/runtimes/collectives/collectives-polkadot/src/weights/ #![cfg_attr(rustfmt, rustfmt_skip)] #![allow(unused_parens)] @@ -56,8 +53,8 @@ impl pallet_core_fellowship::WeightInfo for WeightInfo< // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 5_952_000 picoseconds. - Weight::from_parts(6_313_000, 0) + // Minimum execution time: 11_000_000 picoseconds. + Weight::from_parts(11_000_000, 0) .saturating_add(Weight::from_parts(0, 0)) .saturating_add(T::DbWeight::get().writes(1)) } @@ -77,8 +74,8 @@ impl pallet_core_fellowship::WeightInfo for WeightInfo< // Proof Size summary in bytes: // Measured: `66011` // Estimated: `69046` - // Minimum execution time: 121_211_000 picoseconds. - Weight::from_parts(124_185_000, 0) + // Minimum execution time: 96_000_000 picoseconds. + Weight::from_parts(111_000_000, 0) .saturating_add(Weight::from_parts(0, 69046)) .saturating_add(T::DbWeight::get().reads(6)) .saturating_add(T::DbWeight::get().writes(4)) @@ -99,8 +96,8 @@ impl pallet_core_fellowship::WeightInfo for WeightInfo< // Proof Size summary in bytes: // Measured: `66121` // Estimated: `69046` - // Minimum execution time: 125_855_000 picoseconds. - Weight::from_parts(129_068_000, 0) + // Minimum execution time: 99_000_000 picoseconds. + Weight::from_parts(116_000_000, 0) .saturating_add(Weight::from_parts(0, 69046)) .saturating_add(T::DbWeight::get().reads(6)) .saturating_add(T::DbWeight::get().writes(4)) @@ -113,8 +110,8 @@ impl pallet_core_fellowship::WeightInfo for WeightInfo< // Proof Size summary in bytes: // Measured: `360` // Estimated: `3514` - // Minimum execution time: 16_502_000 picoseconds. - Weight::from_parts(17_062_000, 0) + // Minimum execution time: 21_000_000 picoseconds. + Weight::from_parts(22_000_000, 0) .saturating_add(Weight::from_parts(0, 3514)) .saturating_add(T::DbWeight::get().reads(2)) .saturating_add(T::DbWeight::get().writes(1)) @@ -133,8 +130,8 @@ impl pallet_core_fellowship::WeightInfo for WeightInfo< // Proof Size summary in bytes: // Measured: `118` // Estimated: `3514` - // Minimum execution time: 25_353_000 picoseconds. - Weight::from_parts(26_004_000, 0) + // Minimum execution time: 36_000_000 picoseconds. + Weight::from_parts(36_000_000, 0) .saturating_add(Weight::from_parts(0, 3514)) .saturating_add(T::DbWeight::get().reads(3)) .saturating_add(T::DbWeight::get().writes(5)) @@ -157,8 +154,8 @@ impl pallet_core_fellowship::WeightInfo for WeightInfo< // Proof Size summary in bytes: // Measured: `65989` // Estimated: `69046` - // Minimum execution time: 119_828_000 picoseconds. - Weight::from_parts(121_642_000, 0) + // Minimum execution time: 95_000_000 picoseconds. + Weight::from_parts(110_000_000, 0) .saturating_add(Weight::from_parts(0, 69046)) .saturating_add(T::DbWeight::get().reads(5)) .saturating_add(T::DbWeight::get().writes(6)) @@ -173,8 +170,8 @@ impl pallet_core_fellowship::WeightInfo for WeightInfo< // Proof Size summary in bytes: // Measured: `331` // Estimated: `3514` - // Minimum execution time: 17_415_000 picoseconds. - Weight::from_parts(18_060_000, 0) + // Minimum execution time: 21_000_000 picoseconds. + Weight::from_parts(22_000_000, 0) .saturating_add(Weight::from_parts(0, 3514)) .saturating_add(T::DbWeight::get().reads(2)) .saturating_add(T::DbWeight::get().writes(2)) @@ -187,8 +184,8 @@ impl pallet_core_fellowship::WeightInfo for WeightInfo< // Proof Size summary in bytes: // Measured: `285` // Estimated: `3514` - // Minimum execution time: 15_426_000 picoseconds. - Weight::from_parts(15_781_000, 0) + // Minimum execution time: 20_000_000 picoseconds. + Weight::from_parts(21_000_000, 0) .saturating_add(Weight::from_parts(0, 3514)) .saturating_add(T::DbWeight::get().reads(2)) .saturating_add(T::DbWeight::get().writes(1)) @@ -203,8 +200,8 @@ impl pallet_core_fellowship::WeightInfo for WeightInfo< // Proof Size summary in bytes: // Measured: `65967` // Estimated: `69046` - // Minimum execution time: 105_805_000 picoseconds. - Weight::from_parts(107_941_000, 0) + // Minimum execution time: 78_000_000 picoseconds. + Weight::from_parts(104_000_000, 0) .saturating_add(Weight::from_parts(0, 69046)) .saturating_add(T::DbWeight::get().reads(3)) .saturating_add(T::DbWeight::get().writes(2)) @@ -217,8 +214,8 @@ impl pallet_core_fellowship::WeightInfo for WeightInfo< // Proof Size summary in bytes: // Measured: `151` // Estimated: `69046` - // Minimum execution time: 92_957_000 picoseconds. - Weight::from_parts(94_447_000, 0) + // Minimum execution time: 43_000_000 picoseconds. + Weight::from_parts(44_000_000, 0) .saturating_add(Weight::from_parts(0, 69046)) .saturating_add(T::DbWeight::get().reads(2)) .saturating_add(T::DbWeight::get().writes(1)) diff --git a/cumulus/parachains/runtimes/collectives/collectives-westend/src/weights/pallet_core_fellowship_fellowship_core.rs b/cumulus/parachains/runtimes/collectives/collectives-westend/src/weights/pallet_core_fellowship_fellowship_core.rs index d1d0f5bcdc4f..471ee82ead72 100644 --- a/cumulus/parachains/runtimes/collectives/collectives-westend/src/weights/pallet_core_fellowship_fellowship_core.rs +++ b/cumulus/parachains/runtimes/collectives/collectives-westend/src/weights/pallet_core_fellowship_fellowship_core.rs @@ -1,43 +1,39 @@ // Copyright (C) Parity Technologies (UK) Ltd. -// This file is part of Cumulus. +// SPDX-License-Identifier: Apache-2.0 -// Cumulus 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. - -// Cumulus 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 Cumulus. If not, see . +// 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. //! Autogenerated weights for `pallet_core_fellowship` //! //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev -//! DATE: 2023-10-25, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! DATE: 2023-08-11, STEPS: `2`, REPEAT: `2`, LOW RANGE: `[]`, HIGH RANGE: `[]` //! WORST CASE MAP SIZE: `1000000` -//! HOSTNAME: `runner-ayothjw6-project-674-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz` -//! WASM-EXECUTION: `Compiled`, CHAIN: `Some("collectives-westend-dev")`, DB CACHE: 1024 +//! HOSTNAME: `cob`, CPU: `` +//! WASM-EXECUTION: `Compiled`, CHAIN: `Some("collectives-polkadot-dev")`, DB CACHE: 1024 // Executed Command: -// ./target/production/polkadot-parachain +// target/release/polkadot-parachain // benchmark // pallet -// --chain=collectives-westend-dev +// --chain=collectives-polkadot-dev // --wasm-execution=compiled // --pallet=pallet_core_fellowship -// --no-storage-info -// --no-median-slopes -// --no-min-squares // --extrinsic=* -// --steps=50 -// --repeat=20 +// --steps=2 +// --repeat=2 // --json -// --header=./cumulus/file_header.txt -// --output=./cumulus/parachains/runtimes/collectives/collectives-westend/src/weights/ +// --header=./file_header.txt +// --output=./parachains/runtimes/collectives/collectives-polkadot/src/weights/ #![cfg_attr(rustfmt, rustfmt_skip)] #![allow(unused_parens)] @@ -56,8 +52,8 @@ impl pallet_core_fellowship::WeightInfo for WeightInfo< // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 6_074_000 picoseconds. - Weight::from_parts(6_342_000, 0) + // Minimum execution time: 11_000_000 picoseconds. + Weight::from_parts(12_000_000, 0) .saturating_add(Weight::from_parts(0, 0)) .saturating_add(T::DbWeight::get().writes(1)) } @@ -77,8 +73,8 @@ impl pallet_core_fellowship::WeightInfo for WeightInfo< // Proof Size summary in bytes: // Measured: `66144` // Estimated: `69046` - // Minimum execution time: 120_802_000 picoseconds. - Weight::from_parts(126_633_000, 0) + // Minimum execution time: 109_000_000 picoseconds. + Weight::from_parts(125_000_000, 0) .saturating_add(Weight::from_parts(0, 69046)) .saturating_add(T::DbWeight::get().reads(6)) .saturating_add(T::DbWeight::get().writes(4)) @@ -99,8 +95,8 @@ impl pallet_core_fellowship::WeightInfo for WeightInfo< // Proof Size summary in bytes: // Measured: `66254` // Estimated: `69046` - // Minimum execution time: 125_643_000 picoseconds. - Weight::from_parts(128_488_000, 0) + // Minimum execution time: 112_000_000 picoseconds. + Weight::from_parts(114_000_000, 0) .saturating_add(Weight::from_parts(0, 69046)) .saturating_add(T::DbWeight::get().reads(6)) .saturating_add(T::DbWeight::get().writes(4)) @@ -113,8 +109,8 @@ impl pallet_core_fellowship::WeightInfo for WeightInfo< // Proof Size summary in bytes: // Measured: `493` // Estimated: `3514` - // Minimum execution time: 16_154_000 picoseconds. - Weight::from_parts(17_070_000, 0) + // Minimum execution time: 22_000_000 picoseconds. + Weight::from_parts(27_000_000, 0) .saturating_add(Weight::from_parts(0, 3514)) .saturating_add(T::DbWeight::get().reads(2)) .saturating_add(T::DbWeight::get().writes(1)) @@ -133,8 +129,8 @@ impl pallet_core_fellowship::WeightInfo for WeightInfo< // Proof Size summary in bytes: // Measured: `251` // Estimated: `3514` - // Minimum execution time: 24_931_000 picoseconds. - Weight::from_parts(26_016_000, 0) + // Minimum execution time: 35_000_000 picoseconds. + Weight::from_parts(36_000_000, 0) .saturating_add(Weight::from_parts(0, 3514)) .saturating_add(T::DbWeight::get().reads(3)) .saturating_add(T::DbWeight::get().writes(5)) @@ -157,8 +153,8 @@ impl pallet_core_fellowship::WeightInfo for WeightInfo< // Proof Size summary in bytes: // Measured: `66122` // Estimated: `69046` - // Minimum execution time: 120_763_000 picoseconds. - Weight::from_parts(122_720_000, 0) + // Minimum execution time: 97_000_000 picoseconds. + Weight::from_parts(129_000_000, 0) .saturating_add(Weight::from_parts(0, 69046)) .saturating_add(T::DbWeight::get().reads(5)) .saturating_add(T::DbWeight::get().writes(6)) @@ -173,8 +169,8 @@ impl pallet_core_fellowship::WeightInfo for WeightInfo< // Proof Size summary in bytes: // Measured: `464` // Estimated: `3514` - // Minimum execution time: 17_529_000 picoseconds. - Weight::from_parts(18_250_000, 0) + // Minimum execution time: 22_000_000 picoseconds. + Weight::from_parts(22_000_000, 0) .saturating_add(Weight::from_parts(0, 3514)) .saturating_add(T::DbWeight::get().reads(2)) .saturating_add(T::DbWeight::get().writes(2)) @@ -187,8 +183,8 @@ impl pallet_core_fellowship::WeightInfo for WeightInfo< // Proof Size summary in bytes: // Measured: `418` // Estimated: `3514` - // Minimum execution time: 15_197_000 picoseconds. - Weight::from_parts(15_691_000, 0) + // Minimum execution time: 20_000_000 picoseconds. + Weight::from_parts(24_000_000, 0) .saturating_add(Weight::from_parts(0, 3514)) .saturating_add(T::DbWeight::get().reads(2)) .saturating_add(T::DbWeight::get().writes(1)) @@ -203,8 +199,8 @@ impl pallet_core_fellowship::WeightInfo for WeightInfo< // Proof Size summary in bytes: // Measured: `66100` // Estimated: `69046` - // Minimum execution time: 107_126_000 picoseconds. - Weight::from_parts(108_787_000, 0) + // Minimum execution time: 89_000_000 picoseconds. + Weight::from_parts(119_000_000, 0) .saturating_add(Weight::from_parts(0, 69046)) .saturating_add(T::DbWeight::get().reads(3)) .saturating_add(T::DbWeight::get().writes(2)) @@ -217,8 +213,8 @@ impl pallet_core_fellowship::WeightInfo for WeightInfo< // Proof Size summary in bytes: // Measured: `184` // Estimated: `69046` - // Minimum execution time: 92_685_000 picoseconds. - Weight::from_parts(94_415_000, 0) + // Minimum execution time: 43_000_000 picoseconds. + Weight::from_parts(52_000_000, 0) .saturating_add(Weight::from_parts(0, 69046)) .saturating_add(T::DbWeight::get().reads(2)) .saturating_add(T::DbWeight::get().writes(1)) diff --git a/cumulus/parachains/runtimes/collectives/collectives-westend/src/weights/pallet_message_queue.rs b/cumulus/parachains/runtimes/collectives/collectives-westend/src/weights/pallet_message_queue.rs new file mode 100644 index 000000000000..4bd71c4e7d49 --- /dev/null +++ b/cumulus/parachains/runtimes/collectives/collectives-westend/src/weights/pallet_message_queue.rs @@ -0,0 +1,179 @@ +// 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. + +//! Autogenerated weights for `pallet_message_queue` +//! +//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev +//! DATE: 2023-03-24, STEPS: `2`, REPEAT: `1`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! WORST CASE MAP SIZE: `1000000` +//! HOSTNAME: `i9`, CPU: `13th Gen Intel(R) Core(TM) i9-13900K` +//! EXECUTION: Some(Wasm), WASM-EXECUTION: Compiled, CHAIN: Some("collectives-polkadot-dev"), DB CACHE: 1024 + +// Executed Command: +// ./target/release/polkadot-parachain +// benchmark +// pallet +// --chain +// collectives-polkadot-dev +// --pallet +// pallet_message_queue +// --extrinsic +// * +// --execution +// wasm +// --wasm-execution +// compiled +// --output +// parachains/runtimes/collectives/collectives-polkadot/src/weights + +#![cfg_attr(rustfmt, rustfmt_skip)] +#![allow(unused_parens)] +#![allow(unused_imports)] + +use frame_support::{traits::Get, weights::Weight}; +use sp_std::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) + /// Storage: MessageQueue BookStateFor (r:2 w:2) + /// Proof: MessageQueue BookStateFor (max_values: None, max_size: Some(52), added: 2527, mode: MaxEncodedLen) + fn ready_ring_knit() -> Weight { + // Proof Size summary in bytes: + // Measured: `189` + // Estimated: `7534` + // Minimum execution time: 11_440_000 picoseconds. + Weight::from_parts(11_440_000, 0) + .saturating_add(Weight::from_parts(0, 7534)) + .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) + /// Storage: MessageQueue ServiceHead (r:1 w:1) + /// Proof: MessageQueue ServiceHead (max_values: Some(1), max_size: Some(5), added: 500, mode: MaxEncodedLen) + fn ready_ring_unknit() -> Weight { + // Proof Size summary in bytes: + // Measured: `184` + // Estimated: `7534` + // Minimum execution time: 11_077_000 picoseconds. + Weight::from_parts(11_077_000, 0) + .saturating_add(Weight::from_parts(0, 7534)) + .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) + fn service_queue_base() -> Weight { + // Proof Size summary in bytes: + // Measured: `6` + // Estimated: `3517` + // Minimum execution time: 3_977_000 picoseconds. + Weight::from_parts(3_977_000, 0) + .saturating_add(Weight::from_parts(0, 3517)) + .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) + fn service_page_base_completion() -> Weight { + // Proof Size summary in bytes: + // Measured: `72` + // Estimated: `69050` + // Minimum execution time: 4_831_000 picoseconds. + Weight::from_parts(4_831_000, 0) + .saturating_add(Weight::from_parts(0, 69050)) + .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) + fn service_page_base_no_completion() -> Weight { + // Proof Size summary in bytes: + // Measured: `72` + // Estimated: `69050` + // Minimum execution time: 5_192_000 picoseconds. + Weight::from_parts(5_192_000, 0) + .saturating_add(Weight::from_parts(0, 69050)) + .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: `0` + // Estimated: `0` + // Minimum execution time: 58_750_000 picoseconds. + Weight::from_parts(58_750_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) + /// Storage: MessageQueue BookStateFor (r:1 w:0) + /// Proof: MessageQueue BookStateFor (max_values: None, max_size: Some(52), added: 2527, mode: MaxEncodedLen) + fn bump_service_head() -> Weight { + // Proof Size summary in bytes: + // Measured: `99` + // Estimated: `5007` + // Minimum execution time: 5_107_000 picoseconds. + Weight::from_parts(5_107_000, 0) + .saturating_add(Weight::from_parts(0, 5007)) + .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) + /// Storage: MessageQueue Pages (r:1 w:1) + /// Proof: MessageQueue Pages (max_values: None, max_size: Some(65585), added: 68060, mode: MaxEncodedLen) + fn reap_page() -> Weight { + // Proof Size summary in bytes: + // Measured: `65667` + // Estimated: `72567` + // Minimum execution time: 46_814_000 picoseconds. + Weight::from_parts(46_814_000, 0) + .saturating_add(Weight::from_parts(0, 72567)) + .saturating_add(T::DbWeight::get().reads(2)) + .saturating_add(T::DbWeight::get().writes(2)) + } + /// Storage: MessageQueue BookStateFor (r:1 w:1) + /// Proof: MessageQueue BookStateFor (max_values: None, max_size: Some(52), added: 2527, mode: MaxEncodedLen) + /// Storage: MessageQueue Pages (r:1 w:1) + /// Proof: MessageQueue Pages (max_values: None, max_size: Some(65585), added: 68060, mode: MaxEncodedLen) + fn execute_overweight_page_removed() -> Weight { + // Proof Size summary in bytes: + // Measured: `65667` + // Estimated: `72567` + // Minimum execution time: 52_510_000 picoseconds. + Weight::from_parts(52_510_000, 0) + .saturating_add(Weight::from_parts(0, 72567)) + .saturating_add(T::DbWeight::get().reads(2)) + .saturating_add(T::DbWeight::get().writes(2)) + } + /// Storage: MessageQueue BookStateFor (r:1 w:1) + /// Proof: MessageQueue BookStateFor (max_values: None, max_size: Some(52), added: 2527, mode: MaxEncodedLen) + /// Storage: MessageQueue Pages (r:1 w:1) + /// Proof: MessageQueue Pages (max_values: None, max_size: Some(65585), added: 68060, mode: MaxEncodedLen) + fn execute_overweight_page_updated() -> Weight { + // Proof Size summary in bytes: + // Measured: `65667` + // Estimated: `72567` + // Minimum execution time: 71_930_000 picoseconds. + Weight::from_parts(71_930_000, 0) + .saturating_add(Weight::from_parts(0, 72567)) + .saturating_add(T::DbWeight::get().reads(2)) + .saturating_add(T::DbWeight::get().writes(2)) + } +} diff --git a/cumulus/parachains/runtimes/collectives/collectives-westend/src/weights/pallet_multisig.rs b/cumulus/parachains/runtimes/collectives/collectives-westend/src/weights/pallet_multisig.rs index 0d0b539330e2..a7827b720090 100644 --- a/cumulus/parachains/runtimes/collectives/collectives-westend/src/weights/pallet_multisig.rs +++ b/cumulus/parachains/runtimes/collectives/collectives-westend/src/weights/pallet_multisig.rs @@ -1,32 +1,31 @@ // Copyright (C) Parity Technologies (UK) Ltd. -// This file is part of Cumulus. +// SPDX-License-Identifier: Apache-2.0 -// Cumulus 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. - -// Cumulus 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 Cumulus. If not, see . +// 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. //! Autogenerated weights for `pallet_multisig` //! //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev -//! DATE: 2023-10-25, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! DATE: 2023-07-31, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` //! WORST CASE MAP SIZE: `1000000` -//! HOSTNAME: `runner-ayothjw6-project-674-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz` -//! WASM-EXECUTION: `Compiled`, CHAIN: `Some("collectives-westend-dev")`, DB CACHE: 1024 +//! HOSTNAME: `runner-ynta1nyy-project-238-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz` +//! EXECUTION: ``, WASM-EXECUTION: `Compiled`, CHAIN: `Some("collectives-polkadot-dev")`, DB CACHE: 1024 // Executed Command: // ./target/production/polkadot-parachain // benchmark // pallet -// --chain=collectives-westend-dev +// --chain=collectives-polkadot-dev // --wasm-execution=compiled // --pallet=pallet_multisig // --no-storage-info @@ -36,8 +35,8 @@ // --steps=50 // --repeat=20 // --json -// --header=./cumulus/file_header.txt -// --output=./cumulus/parachains/runtimes/collectives/collectives-westend/src/weights/ +// --header=./file_header.txt +// --output=./parachains/runtimes/collectives/collectives-polkadot/src/weights/ #![cfg_attr(rustfmt, rustfmt_skip)] #![allow(unused_parens)] @@ -55,11 +54,11 @@ impl pallet_multisig::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 13_069_000 picoseconds. - Weight::from_parts(13_839_186, 0) + // Minimum execution time: 13_288_000 picoseconds. + Weight::from_parts(14_235_741, 0) .saturating_add(Weight::from_parts(0, 0)) // Standard Error: 5 - .saturating_add(Weight::from_parts(520, 0).saturating_mul(z.into())) + .saturating_add(Weight::from_parts(500, 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`) @@ -69,13 +68,13 @@ impl pallet_multisig::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `328 + s * (2 ±0)` // Estimated: `6811` - // Minimum execution time: 39_343_000 picoseconds. - Weight::from_parts(29_065_087, 0) + // Minimum execution time: 44_865_000 picoseconds. + Weight::from_parts(33_468_056, 0) .saturating_add(Weight::from_parts(0, 6811)) - // Standard Error: 816 - .saturating_add(Weight::from_parts(113_346, 0).saturating_mul(s.into())) - // Standard Error: 7 - .saturating_add(Weight::from_parts(1_486, 0).saturating_mul(z.into())) + // Standard Error: 1_513 + .saturating_add(Weight::from_parts(130_544, 0).saturating_mul(s.into())) + // Standard Error: 14 + .saturating_add(Weight::from_parts(1_422, 0).saturating_mul(z.into())) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(1)) } @@ -87,13 +86,13 @@ impl pallet_multisig::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `348` // Estimated: `6811` - // Minimum execution time: 27_483_000 picoseconds. - Weight::from_parts(17_975_857, 0) + // Minimum execution time: 29_284_000 picoseconds. + Weight::from_parts(18_708_967, 0) .saturating_add(Weight::from_parts(0, 6811)) - // Standard Error: 716 - .saturating_add(Weight::from_parts(105_714, 0).saturating_mul(s.into())) - // Standard Error: 7 - .saturating_add(Weight::from_parts(1_403, 0).saturating_mul(z.into())) + // Standard Error: 916 + .saturating_add(Weight::from_parts(119_202, 0).saturating_mul(s.into())) + // Standard Error: 8 + .saturating_add(Weight::from_parts(1_447, 0).saturating_mul(z.into())) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(1)) } @@ -107,13 +106,13 @@ impl pallet_multisig::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `451 + s * (33 ±0)` // Estimated: `6811` - // Minimum execution time: 45_100_000 picoseconds. - Weight::from_parts(31_994_638, 0) + // Minimum execution time: 49_462_000 picoseconds. + Weight::from_parts(34_470_286, 0) .saturating_add(Weight::from_parts(0, 6811)) - // Standard Error: 1_025 - .saturating_add(Weight::from_parts(150_999, 0).saturating_mul(s.into())) - // Standard Error: 10 - .saturating_add(Weight::from_parts(1_573, 0).saturating_mul(z.into())) + // Standard Error: 1_738 + .saturating_add(Weight::from_parts(178_227, 0).saturating_mul(s.into())) + // Standard Error: 17 + .saturating_add(Weight::from_parts(1_644, 0).saturating_mul(z.into())) .saturating_add(T::DbWeight::get().reads(2)) .saturating_add(T::DbWeight::get().writes(2)) } @@ -124,11 +123,11 @@ impl pallet_multisig::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `329 + s * (2 ±0)` // Estimated: `6811` - // Minimum execution time: 27_083_000 picoseconds. - Weight::from_parts(27_266_957, 0) + // Minimum execution time: 30_749_000 picoseconds. + Weight::from_parts(31_841_438, 0) .saturating_add(Weight::from_parts(0, 6811)) - // Standard Error: 6_427 - .saturating_add(Weight::from_parts(148_279, 0).saturating_mul(s.into())) + // Standard Error: 1_033 + .saturating_add(Weight::from_parts(123_126, 0).saturating_mul(s.into())) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(1)) } @@ -139,11 +138,11 @@ impl pallet_multisig::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `348` // Estimated: `6811` - // Minimum execution time: 16_092_000 picoseconds. - Weight::from_parts(16_312_279, 0) + // Minimum execution time: 17_436_000 picoseconds. + Weight::from_parts(18_036_002, 0) .saturating_add(Weight::from_parts(0, 6811)) - // Standard Error: 489 - .saturating_add(Weight::from_parts(105_485, 0).saturating_mul(s.into())) + // Standard Error: 829 + .saturating_add(Weight::from_parts(109_450, 0).saturating_mul(s.into())) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(1)) } @@ -154,11 +153,11 @@ impl pallet_multisig::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `520 + s * (1 ±0)` // Estimated: `6811` - // Minimum execution time: 29_332_000 picoseconds. - Weight::from_parts(30_396_920, 0) + // Minimum execution time: 31_532_000 picoseconds. + Weight::from_parts(32_818_015, 0) .saturating_add(Weight::from_parts(0, 6811)) - // Standard Error: 610 - .saturating_add(Weight::from_parts(113_224, 0).saturating_mul(s.into())) + // Standard Error: 977 + .saturating_add(Weight::from_parts(123_121, 0).saturating_mul(s.into())) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(1)) } diff --git a/cumulus/parachains/runtimes/collectives/collectives-westend/src/weights/pallet_preimage.rs b/cumulus/parachains/runtimes/collectives/collectives-westend/src/weights/pallet_preimage.rs index 4aa29ce27a08..9b45c8758186 100644 --- a/cumulus/parachains/runtimes/collectives/collectives-westend/src/weights/pallet_preimage.rs +++ b/cumulus/parachains/runtimes/collectives/collectives-westend/src/weights/pallet_preimage.rs @@ -1,32 +1,31 @@ // Copyright (C) Parity Technologies (UK) Ltd. -// This file is part of Cumulus. +// SPDX-License-Identifier: Apache-2.0 -// Cumulus 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. - -// Cumulus 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 Cumulus. If not, see . +// 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. //! Autogenerated weights for `pallet_preimage` //! //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev -//! DATE: 2023-10-25, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! DATE: 2023-07-31, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` //! WORST CASE MAP SIZE: `1000000` -//! HOSTNAME: `runner-ayothjw6-project-674-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz` -//! WASM-EXECUTION: `Compiled`, CHAIN: `Some("collectives-westend-dev")`, DB CACHE: 1024 +//! HOSTNAME: `runner-ynta1nyy-project-238-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz` +//! EXECUTION: ``, WASM-EXECUTION: `Compiled`, CHAIN: `Some("collectives-polkadot-dev")`, DB CACHE: 1024 // Executed Command: // ./target/production/polkadot-parachain // benchmark // pallet -// --chain=collectives-westend-dev +// --chain=collectives-polkadot-dev // --wasm-execution=compiled // --pallet=pallet_preimage // --no-storage-info @@ -36,8 +35,8 @@ // --steps=50 // --repeat=20 // --json -// --header=./cumulus/file_header.txt -// --output=./cumulus/parachains/runtimes/collectives/collectives-westend/src/weights/ +// --header=./file_header.txt +// --output=./parachains/runtimes/collectives/collectives-polkadot/src/weights/ #![cfg_attr(rustfmt, rustfmt_skip)] #![allow(unused_parens)] @@ -50,219 +49,184 @@ use core::marker::PhantomData; /// Weight functions for `pallet_preimage`. pub struct WeightInfo(PhantomData); impl pallet_preimage::WeightInfo for WeightInfo { - /// Storage: `Preimage::StatusFor` (r:1 w:0) + fn ensure_updated(n: u32, ) -> Weight { + // Proof Size summary in bytes: + // Measured: `193 + n * (91 ±0)` + // Estimated: `3593 + n * (2566 ±0)` + // Minimum execution time: 2_000_000 picoseconds. + Weight::from_parts(2_000_000, 3593) + // Standard Error: 13_720 + .saturating_add(Weight::from_parts(17_309_199, 0).saturating_mul(n.into())) + .saturating_add(T::DbWeight::get().reads(1_u64)) + .saturating_add(T::DbWeight::get().reads((1_u64).saturating_mul(n.into()))) + .saturating_add(T::DbWeight::get().writes(1_u64)) + .saturating_add(T::DbWeight::get().writes((2_u64).saturating_mul(n.into()))) + .saturating_add(Weight::from_parts(0, 2566).saturating_mul(n.into())) + } + + /// Storage: `Preimage::StatusFor` (r:1 w:1) /// Proof: `Preimage::StatusFor` (`max_values`: None, `max_size`: Some(91), added: 2566, mode: `MaxEncodedLen`) - /// Storage: `Preimage::RequestStatusFor` (r:1 w:1) - /// Proof: `Preimage::RequestStatusFor` (`max_values`: None, `max_size`: Some(91), added: 2566, mode: `MaxEncodedLen`) - /// Storage: `Balances::Holds` (r:1 w:1) - /// Proof: `Balances::Holds` (`max_values`: None, `max_size`: Some(67), added: 2542, mode: `MaxEncodedLen`) /// Storage: `Preimage::PreimageFor` (r:0 w:1) /// Proof: `Preimage::PreimageFor` (`max_values`: None, `max_size`: Some(4194344), added: 4196819, mode: `MaxEncodedLen`) /// The range of component `s` is `[0, 4194304]`. fn note_preimage(s: u32, ) -> Weight { // Proof Size summary in bytes: - // Measured: `109` + // Measured: `177` // Estimated: `3556` - // Minimum execution time: 44_346_000 picoseconds. - Weight::from_parts(45_209_000, 0) + // Minimum execution time: 29_323_000 picoseconds. + Weight::from_parts(29_793_000, 0) .saturating_add(Weight::from_parts(0, 3556)) - // Standard Error: 7 - .saturating_add(Weight::from_parts(2_398, 0).saturating_mul(s.into())) - .saturating_add(T::DbWeight::get().reads(3)) - .saturating_add(T::DbWeight::get().writes(3)) + // Standard Error: 5 + .saturating_add(Weight::from_parts(2_504, 0).saturating_mul(s.into())) + .saturating_add(T::DbWeight::get().reads(1)) + .saturating_add(T::DbWeight::get().writes(2)) } - /// Storage: `Preimage::StatusFor` (r:1 w:0) + /// Storage: `Preimage::StatusFor` (r:1 w:1) /// Proof: `Preimage::StatusFor` (`max_values`: None, `max_size`: Some(91), added: 2566, mode: `MaxEncodedLen`) - /// Storage: `Preimage::RequestStatusFor` (r:1 w:1) - /// Proof: `Preimage::RequestStatusFor` (`max_values`: None, `max_size`: Some(91), added: 2566, mode: `MaxEncodedLen`) /// Storage: `Preimage::PreimageFor` (r:0 w:1) /// Proof: `Preimage::PreimageFor` (`max_values`: None, `max_size`: Some(4194344), added: 4196819, mode: `MaxEncodedLen`) /// The range of component `s` is `[0, 4194304]`. fn note_requested_preimage(s: u32, ) -> Weight { // Proof Size summary in bytes: - // Measured: `173` + // Measured: `140` // Estimated: `3556` - // Minimum execution time: 15_924_000 picoseconds. - Weight::from_parts(18_023_327, 0) + // Minimum execution time: 15_581_000 picoseconds. + Weight::from_parts(15_659_000, 0) .saturating_add(Weight::from_parts(0, 3556)) // Standard Error: 4 - .saturating_add(Weight::from_parts(2_281, 0).saturating_mul(s.into())) - .saturating_add(T::DbWeight::get().reads(2)) + .saturating_add(Weight::from_parts(2_500, 0).saturating_mul(s.into())) + .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(2)) } - /// Storage: `Preimage::StatusFor` (r:1 w:0) + /// Storage: `Preimage::StatusFor` (r:1 w:1) /// Proof: `Preimage::StatusFor` (`max_values`: None, `max_size`: Some(91), added: 2566, mode: `MaxEncodedLen`) - /// Storage: `Preimage::RequestStatusFor` (r:1 w:1) - /// Proof: `Preimage::RequestStatusFor` (`max_values`: None, `max_size`: Some(91), added: 2566, mode: `MaxEncodedLen`) /// Storage: `Preimage::PreimageFor` (r:0 w:1) /// Proof: `Preimage::PreimageFor` (`max_values`: None, `max_size`: Some(4194344), added: 4196819, mode: `MaxEncodedLen`) /// The range of component `s` is `[0, 4194304]`. fn note_no_deposit_preimage(s: u32, ) -> Weight { // Proof Size summary in bytes: - // Measured: `173` + // Measured: `140` // Estimated: `3556` - // Minimum execution time: 14_272_000 picoseconds. - Weight::from_parts(14_492_000, 0) + // Minimum execution time: 15_028_000 picoseconds. + Weight::from_parts(15_150_000, 0) .saturating_add(Weight::from_parts(0, 3556)) // Standard Error: 6 - .saturating_add(Weight::from_parts(2_375, 0).saturating_mul(s.into())) - .saturating_add(T::DbWeight::get().reads(2)) + .saturating_add(Weight::from_parts(2_560, 0).saturating_mul(s.into())) + .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(2)) } - /// Storage: `Preimage::StatusFor` (r:1 w:0) + /// Storage: `Preimage::StatusFor` (r:1 w:1) /// Proof: `Preimage::StatusFor` (`max_values`: None, `max_size`: Some(91), added: 2566, mode: `MaxEncodedLen`) - /// Storage: `Preimage::RequestStatusFor` (r:1 w:1) - /// Proof: `Preimage::RequestStatusFor` (`max_values`: None, `max_size`: Some(91), added: 2566, mode: `MaxEncodedLen`) - /// Storage: `Balances::Holds` (r:1 w:1) - /// Proof: `Balances::Holds` (`max_values`: None, `max_size`: Some(67), added: 2542, mode: `MaxEncodedLen`) /// Storage: `Preimage::PreimageFor` (r:0 w:1) /// Proof: `Preimage::PreimageFor` (`max_values`: None, `max_size`: Some(4194344), added: 4196819, mode: `MaxEncodedLen`) fn unnote_preimage() -> Weight { // Proof Size summary in bytes: - // Measured: `310` + // Measured: `323` // Estimated: `3556` - // Minimum execution time: 48_963_000 picoseconds. - Weight::from_parts(51_269_000, 0) + // Minimum execution time: 55_113_000 picoseconds. + Weight::from_parts(59_127_000, 0) .saturating_add(Weight::from_parts(0, 3556)) - .saturating_add(T::DbWeight::get().reads(3)) - .saturating_add(T::DbWeight::get().writes(3)) + .saturating_add(T::DbWeight::get().reads(1)) + .saturating_add(T::DbWeight::get().writes(2)) } - /// Storage: `Preimage::StatusFor` (r:1 w:0) + /// Storage: `Preimage::StatusFor` (r:1 w:1) /// Proof: `Preimage::StatusFor` (`max_values`: None, `max_size`: Some(91), added: 2566, mode: `MaxEncodedLen`) - /// Storage: `Preimage::RequestStatusFor` (r:1 w:1) - /// Proof: `Preimage::RequestStatusFor` (`max_values`: None, `max_size`: Some(91), added: 2566, mode: `MaxEncodedLen`) /// Storage: `Preimage::PreimageFor` (r:0 w:1) /// Proof: `Preimage::PreimageFor` (`max_values`: None, `max_size`: Some(4194344), added: 4196819, mode: `MaxEncodedLen`) fn unnote_no_deposit_preimage() -> Weight { // Proof Size summary in bytes: - // Measured: `211` + // Measured: `178` // Estimated: `3556` - // Minimum execution time: 24_367_000 picoseconds. - Weight::from_parts(26_395_000, 0) + // Minimum execution time: 38_033_000 picoseconds. + Weight::from_parts(41_203_000, 0) .saturating_add(Weight::from_parts(0, 3556)) - .saturating_add(T::DbWeight::get().reads(2)) + .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(2)) } - /// Storage: `Preimage::StatusFor` (r:1 w:0) + /// Storage: `Preimage::StatusFor` (r:1 w:1) /// Proof: `Preimage::StatusFor` (`max_values`: None, `max_size`: Some(91), added: 2566, mode: `MaxEncodedLen`) - /// Storage: `Preimage::RequestStatusFor` (r:1 w:1) - /// Proof: `Preimage::RequestStatusFor` (`max_values`: None, `max_size`: Some(91), added: 2566, mode: `MaxEncodedLen`) fn request_preimage() -> Weight { // Proof Size summary in bytes: - // Measured: `255` + // Measured: `222` // Estimated: `3556` - // Minimum execution time: 21_582_000 picoseconds. - Weight::from_parts(23_656_000, 0) + // Minimum execution time: 31_482_000 picoseconds. + Weight::from_parts(34_726_000, 0) .saturating_add(Weight::from_parts(0, 3556)) - .saturating_add(T::DbWeight::get().reads(2)) + .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(1)) } - /// Storage: `Preimage::StatusFor` (r:1 w:0) + /// Storage: `Preimage::StatusFor` (r:1 w:1) /// Proof: `Preimage::StatusFor` (`max_values`: None, `max_size`: Some(91), added: 2566, mode: `MaxEncodedLen`) - /// Storage: `Preimage::RequestStatusFor` (r:1 w:1) - /// Proof: `Preimage::RequestStatusFor` (`max_values`: None, `max_size`: Some(91), added: 2566, mode: `MaxEncodedLen`) fn request_no_deposit_preimage() -> Weight { // Proof Size summary in bytes: - // Measured: `211` + // Measured: `178` // Estimated: `3556` - // Minimum execution time: 13_700_000 picoseconds. - Weight::from_parts(14_821_000, 0) + // Minimum execution time: 20_724_000 picoseconds. + Weight::from_parts(22_928_000, 0) .saturating_add(Weight::from_parts(0, 3556)) - .saturating_add(T::DbWeight::get().reads(2)) + .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(1)) } - /// Storage: `Preimage::StatusFor` (r:1 w:0) + /// Storage: `Preimage::StatusFor` (r:1 w:1) /// Proof: `Preimage::StatusFor` (`max_values`: None, `max_size`: Some(91), added: 2566, mode: `MaxEncodedLen`) - /// Storage: `Preimage::RequestStatusFor` (r:1 w:1) - /// Proof: `Preimage::RequestStatusFor` (`max_values`: None, `max_size`: Some(91), added: 2566, mode: `MaxEncodedLen`) fn request_unnoted_preimage() -> Weight { // Proof Size summary in bytes: - // Measured: `109` + // Measured: `76` // Estimated: `3556` - // Minimum execution time: 14_766_000 picoseconds. - Weight::from_parts(15_380_000, 0) + // Minimum execution time: 27_015_000 picoseconds. + Weight::from_parts(29_240_000, 0) .saturating_add(Weight::from_parts(0, 3556)) - .saturating_add(T::DbWeight::get().reads(2)) + .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(1)) } - /// Storage: `Preimage::StatusFor` (r:1 w:0) + /// Storage: `Preimage::StatusFor` (r:1 w:1) /// Proof: `Preimage::StatusFor` (`max_values`: None, `max_size`: Some(91), added: 2566, mode: `MaxEncodedLen`) - /// Storage: `Preimage::RequestStatusFor` (r:1 w:1) - /// Proof: `Preimage::RequestStatusFor` (`max_values`: None, `max_size`: Some(91), added: 2566, mode: `MaxEncodedLen`) fn request_requested_preimage() -> Weight { // Proof Size summary in bytes: - // Measured: `173` + // Measured: `140` // Estimated: `3556` - // Minimum execution time: 9_937_000 picoseconds. - Weight::from_parts(10_305_000, 0) + // Minimum execution time: 10_712_000 picoseconds. + Weight::from_parts(11_317_000, 0) .saturating_add(Weight::from_parts(0, 3556)) - .saturating_add(T::DbWeight::get().reads(2)) + .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(1)) } - /// Storage: `Preimage::StatusFor` (r:1 w:0) + /// Storage: `Preimage::StatusFor` (r:1 w:1) /// Proof: `Preimage::StatusFor` (`max_values`: None, `max_size`: Some(91), added: 2566, mode: `MaxEncodedLen`) - /// Storage: `Preimage::RequestStatusFor` (r:1 w:1) - /// Proof: `Preimage::RequestStatusFor` (`max_values`: None, `max_size`: Some(91), added: 2566, mode: `MaxEncodedLen`) /// Storage: `Preimage::PreimageFor` (r:0 w:1) /// Proof: `Preimage::PreimageFor` (`max_values`: None, `max_size`: Some(4194344), added: 4196819, mode: `MaxEncodedLen`) fn unrequest_preimage() -> Weight { // Proof Size summary in bytes: - // Measured: `211` + // Measured: `178` // Estimated: `3556` - // Minimum execution time: 20_215_000 picoseconds. - Weight::from_parts(22_590_000, 0) + // Minimum execution time: 34_528_000 picoseconds. + Weight::from_parts(35_982_000, 0) .saturating_add(Weight::from_parts(0, 3556)) - .saturating_add(T::DbWeight::get().reads(2)) + .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(2)) } - /// Storage: `Preimage::StatusFor` (r:1 w:0) + /// Storage: `Preimage::StatusFor` (r:1 w:1) /// Proof: `Preimage::StatusFor` (`max_values`: None, `max_size`: Some(91), added: 2566, mode: `MaxEncodedLen`) - /// Storage: `Preimage::RequestStatusFor` (r:1 w:1) - /// Proof: `Preimage::RequestStatusFor` (`max_values`: None, `max_size`: Some(91), added: 2566, mode: `MaxEncodedLen`) fn unrequest_unnoted_preimage() -> Weight { // Proof Size summary in bytes: - // Measured: `173` + // Measured: `140` // Estimated: `3556` - // Minimum execution time: 9_650_000 picoseconds. - Weight::from_parts(9_976_000, 0) + // Minimum execution time: 11_059_000 picoseconds. + Weight::from_parts(12_458_000, 0) .saturating_add(Weight::from_parts(0, 3556)) - .saturating_add(T::DbWeight::get().reads(2)) + .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(1)) } - /// Storage: `Preimage::StatusFor` (r:1 w:0) + /// Storage: `Preimage::StatusFor` (r:1 w:1) /// Proof: `Preimage::StatusFor` (`max_values`: None, `max_size`: Some(91), added: 2566, mode: `MaxEncodedLen`) - /// Storage: `Preimage::RequestStatusFor` (r:1 w:1) - /// Proof: `Preimage::RequestStatusFor` (`max_values`: None, `max_size`: Some(91), added: 2566, mode: `MaxEncodedLen`) fn unrequest_multi_referenced_preimage() -> Weight { // Proof Size summary in bytes: - // Measured: `173` + // Measured: `140` // Estimated: `3556` - // Minimum execution time: 9_465_000 picoseconds. - Weight::from_parts(9_738_000, 0) + // Minimum execution time: 11_502_000 picoseconds. + Weight::from_parts(12_180_000, 0) .saturating_add(Weight::from_parts(0, 3556)) - .saturating_add(T::DbWeight::get().reads(2)) + .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(1)) } - /// Storage: `Preimage::StatusFor` (r:1023 w:1023) - /// Proof: `Preimage::StatusFor` (`max_values`: None, `max_size`: Some(91), added: 2566, mode: `MaxEncodedLen`) - /// Storage: `System::Account` (r:1023 w:1023) - /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`) - /// Storage: `Balances::Holds` (r:1023 w:1023) - /// Proof: `Balances::Holds` (`max_values`: None, `max_size`: Some(67), added: 2542, mode: `MaxEncodedLen`) - /// Storage: `Preimage::RequestStatusFor` (r:0 w:1023) - /// Proof: `Preimage::RequestStatusFor` (`max_values`: None, `max_size`: Some(91), added: 2566, mode: `MaxEncodedLen`) - /// The range of component `n` is `[1, 1024]`. - fn ensure_updated(n: u32, ) -> Weight { - // Proof Size summary in bytes: - // Measured: `0 + n * (227 ±0)` - // Estimated: `990 + n * (2603 ±0)` - // Minimum execution time: 49_541_000 picoseconds. - Weight::from_parts(50_043_000, 0) - .saturating_add(Weight::from_parts(0, 990)) - // Standard Error: 33_082 - .saturating_add(Weight::from_parts(49_748_536, 0).saturating_mul(n.into())) - .saturating_add(T::DbWeight::get().reads((3_u64).saturating_mul(n.into()))) - .saturating_add(T::DbWeight::get().writes((4_u64).saturating_mul(n.into()))) - .saturating_add(Weight::from_parts(0, 2603).saturating_mul(n.into())) - } } diff --git a/cumulus/parachains/runtimes/collectives/collectives-westend/src/weights/pallet_proxy.rs b/cumulus/parachains/runtimes/collectives/collectives-westend/src/weights/pallet_proxy.rs index e6cc41b88ebf..59d9f912bf11 100644 --- a/cumulus/parachains/runtimes/collectives/collectives-westend/src/weights/pallet_proxy.rs +++ b/cumulus/parachains/runtimes/collectives/collectives-westend/src/weights/pallet_proxy.rs @@ -1,32 +1,31 @@ // Copyright (C) Parity Technologies (UK) Ltd. -// This file is part of Cumulus. +// SPDX-License-Identifier: Apache-2.0 -// Cumulus 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. - -// Cumulus 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 Cumulus. If not, see . +// 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. //! Autogenerated weights for `pallet_proxy` //! //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev -//! DATE: 2023-10-25, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! DATE: 2023-07-31, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` //! WORST CASE MAP SIZE: `1000000` -//! HOSTNAME: `runner-ayothjw6-project-674-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz` -//! WASM-EXECUTION: `Compiled`, CHAIN: `Some("collectives-westend-dev")`, DB CACHE: 1024 +//! HOSTNAME: `runner-ynta1nyy-project-238-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz` +//! EXECUTION: ``, WASM-EXECUTION: `Compiled`, CHAIN: `Some("collectives-polkadot-dev")`, DB CACHE: 1024 // Executed Command: // ./target/production/polkadot-parachain // benchmark // pallet -// --chain=collectives-westend-dev +// --chain=collectives-polkadot-dev // --wasm-execution=compiled // --pallet=pallet_proxy // --no-storage-info @@ -36,8 +35,8 @@ // --steps=50 // --repeat=20 // --json -// --header=./cumulus/file_header.txt -// --output=./cumulus/parachains/runtimes/collectives/collectives-westend/src/weights/ +// --header=./file_header.txt +// --output=./parachains/runtimes/collectives/collectives-polkadot/src/weights/ #![cfg_attr(rustfmt, rustfmt_skip)] #![allow(unused_parens)] @@ -55,13 +54,13 @@ impl pallet_proxy::WeightInfo for WeightInfo { /// The range of component `p` is `[1, 31]`. fn proxy(p: u32, ) -> Weight { // Proof Size summary in bytes: - // Measured: `161 + p * (37 ±0)` + // Measured: `127 + p * (37 ±0)` // Estimated: `4706` - // Minimum execution time: 13_991_000 picoseconds. - Weight::from_parts(14_538_435, 0) + // Minimum execution time: 15_597_000 picoseconds. + Weight::from_parts(16_231_993, 0) .saturating_add(Weight::from_parts(0, 4706)) - // Standard Error: 915 - .saturating_add(Weight::from_parts(32_293, 0).saturating_mul(p.into())) + // Standard Error: 1_665 + .saturating_add(Weight::from_parts(29_818, 0).saturating_mul(p.into())) .saturating_add(T::DbWeight::get().reads(1)) } /// Storage: `Proxy::Proxies` (r:1 w:0) @@ -74,15 +73,15 @@ impl pallet_proxy::WeightInfo for WeightInfo { /// The range of component `p` is `[1, 31]`. fn proxy_announced(a: u32, p: u32, ) -> Weight { // Proof Size summary in bytes: - // Measured: `488 + a * (68 ±0) + p * (37 ±0)` + // Measured: `454 + a * (68 ±0) + p * (37 ±0)` // Estimated: `5698` - // Minimum execution time: 33_146_000 picoseconds. - Weight::from_parts(32_812_538, 0) + // Minimum execution time: 36_685_000 picoseconds. + Weight::from_parts(36_376_358, 0) .saturating_add(Weight::from_parts(0, 5698)) - // Standard Error: 2_020 - .saturating_add(Weight::from_parts(137_620, 0).saturating_mul(a.into())) - // Standard Error: 2_087 - .saturating_add(Weight::from_parts(53_787, 0).saturating_mul(p.into())) + // Standard Error: 3_003 + .saturating_add(Weight::from_parts(133_776, 0).saturating_mul(a.into())) + // Standard Error: 3_103 + .saturating_add(Weight::from_parts(60_315, 0).saturating_mul(p.into())) .saturating_add(T::DbWeight::get().reads(3)) .saturating_add(T::DbWeight::get().writes(2)) } @@ -94,15 +93,15 @@ impl pallet_proxy::WeightInfo for WeightInfo { /// The range of component `p` is `[1, 31]`. fn remove_announcement(a: u32, p: u32, ) -> Weight { // Proof Size summary in bytes: - // Measured: `403 + a * (68 ±0)` + // Measured: `369 + a * (68 ±0)` // Estimated: `5698` - // Minimum execution time: 22_263_000 picoseconds. - Weight::from_parts(22_632_706, 0) + // Minimum execution time: 23_835_000 picoseconds. + Weight::from_parts(24_154_219, 0) .saturating_add(Weight::from_parts(0, 5698)) - // Standard Error: 1_477 - .saturating_add(Weight::from_parts(131_367, 0).saturating_mul(a.into())) - // Standard Error: 1_526 - .saturating_add(Weight::from_parts(19_554, 0).saturating_mul(p.into())) + // Standard Error: 1_580 + .saturating_add(Weight::from_parts(125_884, 0).saturating_mul(a.into())) + // Standard Error: 1_632 + .saturating_add(Weight::from_parts(21_563, 0).saturating_mul(p.into())) .saturating_add(T::DbWeight::get().reads(2)) .saturating_add(T::DbWeight::get().writes(2)) } @@ -114,15 +113,15 @@ impl pallet_proxy::WeightInfo for WeightInfo { /// The range of component `p` is `[1, 31]`. fn reject_announcement(a: u32, p: u32, ) -> Weight { // Proof Size summary in bytes: - // Measured: `403 + a * (68 ±0)` + // Measured: `369 + a * (68 ±0)` // Estimated: `5698` - // Minimum execution time: 22_572_000 picoseconds. - Weight::from_parts(22_511_514, 0) + // Minimum execution time: 23_997_000 picoseconds. + Weight::from_parts(24_301_638, 0) .saturating_add(Weight::from_parts(0, 5698)) - // Standard Error: 1_284 - .saturating_add(Weight::from_parts(132_570, 0).saturating_mul(a.into())) - // Standard Error: 1_327 - .saturating_add(Weight::from_parts(25_277, 0).saturating_mul(p.into())) + // Standard Error: 1_658 + .saturating_add(Weight::from_parts(133_005, 0).saturating_mul(a.into())) + // Standard Error: 1_713 + .saturating_add(Weight::from_parts(20_237, 0).saturating_mul(p.into())) .saturating_add(T::DbWeight::get().reads(2)) .saturating_add(T::DbWeight::get().writes(2)) } @@ -136,15 +135,15 @@ impl pallet_proxy::WeightInfo for WeightInfo { /// The range of component `p` is `[1, 31]`. fn announce(a: u32, p: u32, ) -> Weight { // Proof Size summary in bytes: - // Measured: `420 + a * (68 ±0) + p * (37 ±0)` + // Measured: `386 + a * (68 ±0) + p * (37 ±0)` // Estimated: `5698` - // Minimum execution time: 29_953_000 picoseconds. - Weight::from_parts(29_440_617, 0) + // Minimum execution time: 33_604_000 picoseconds. + Weight::from_parts(33_322_880, 0) .saturating_add(Weight::from_parts(0, 5698)) - // Standard Error: 1_338 - .saturating_add(Weight::from_parts(134_623, 0).saturating_mul(a.into())) - // Standard Error: 1_382 - .saturating_add(Weight::from_parts(50_777, 0).saturating_mul(p.into())) + // Standard Error: 1_840 + .saturating_add(Weight::from_parts(114_037, 0).saturating_mul(a.into())) + // Standard Error: 1_901 + .saturating_add(Weight::from_parts(45_629, 0).saturating_mul(p.into())) .saturating_add(T::DbWeight::get().reads(3)) .saturating_add(T::DbWeight::get().writes(2)) } @@ -153,13 +152,13 @@ impl pallet_proxy::WeightInfo for WeightInfo { /// The range of component `p` is `[1, 31]`. fn add_proxy(p: u32, ) -> Weight { // Proof Size summary in bytes: - // Measured: `161 + p * (37 ±0)` + // Measured: `127 + p * (37 ±0)` // Estimated: `4706` - // Minimum execution time: 21_616_000 picoseconds. - Weight::from_parts(22_251_590, 0) + // Minimum execution time: 24_634_000 picoseconds. + Weight::from_parts(25_509_118, 0) .saturating_add(Weight::from_parts(0, 4706)) - // Standard Error: 972 - .saturating_add(Weight::from_parts(40_664, 0).saturating_mul(p.into())) + // Standard Error: 2_278 + .saturating_add(Weight::from_parts(38_401, 0).saturating_mul(p.into())) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(1)) } @@ -168,13 +167,13 @@ impl pallet_proxy::WeightInfo for WeightInfo { /// The range of component `p` is `[1, 31]`. fn remove_proxy(p: u32, ) -> Weight { // Proof Size summary in bytes: - // Measured: `161 + p * (37 ±0)` + // Measured: `127 + p * (37 ±0)` // Estimated: `4706` - // Minimum execution time: 21_761_000 picoseconds. - Weight::from_parts(22_613_730, 0) + // Minimum execution time: 24_855_000 picoseconds. + Weight::from_parts(25_753_505, 0) .saturating_add(Weight::from_parts(0, 4706)) - // Standard Error: 1_517 - .saturating_add(Weight::from_parts(38_103, 0).saturating_mul(p.into())) + // Standard Error: 1_819 + .saturating_add(Weight::from_parts(44_357, 0).saturating_mul(p.into())) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(1)) } @@ -183,13 +182,13 @@ impl pallet_proxy::WeightInfo for WeightInfo { /// The range of component `p` is `[1, 31]`. fn remove_proxies(p: u32, ) -> Weight { // Proof Size summary in bytes: - // Measured: `161 + p * (37 ±0)` + // Measured: `127 + p * (37 ±0)` // Estimated: `4706` - // Minimum execution time: 20_414_000 picoseconds. - Weight::from_parts(21_114_247, 0) + // Minimum execution time: 22_211_000 picoseconds. + Weight::from_parts(23_094_124, 0) .saturating_add(Weight::from_parts(0, 4706)) - // Standard Error: 1_199 - .saturating_add(Weight::from_parts(38_249, 0).saturating_mul(p.into())) + // Standard Error: 2_597 + .saturating_add(Weight::from_parts(36_725, 0).saturating_mul(p.into())) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(1)) } @@ -198,13 +197,13 @@ impl pallet_proxy::WeightInfo for WeightInfo { /// The range of component `p` is `[1, 31]`. fn create_pure(p: u32, ) -> Weight { // Proof Size summary in bytes: - // Measured: `173` + // Measured: `139` // Estimated: `4706` - // Minimum execution time: 22_500_000 picoseconds. - Weight::from_parts(23_340_082, 0) + // Minimum execution time: 26_764_000 picoseconds. + Weight::from_parts(27_667_535, 0) .saturating_add(Weight::from_parts(0, 4706)) - // Standard Error: 907 - .saturating_add(Weight::from_parts(8_768, 0).saturating_mul(p.into())) + // Standard Error: 1_111 + .saturating_add(Weight::from_parts(3_422, 0).saturating_mul(p.into())) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(1)) } @@ -213,13 +212,13 @@ impl pallet_proxy::WeightInfo for WeightInfo { /// The range of component `p` is `[0, 30]`. fn kill_pure(p: u32, ) -> Weight { // Proof Size summary in bytes: - // Measured: `198 + p * (37 ±0)` + // Measured: `164 + p * (37 ±0)` // Estimated: `4706` - // Minimum execution time: 20_917_000 picoseconds. - Weight::from_parts(21_904_284, 0) + // Minimum execution time: 22_632_000 picoseconds. + Weight::from_parts(23_678_772, 0) .saturating_add(Weight::from_parts(0, 4706)) - // Standard Error: 1_194 - .saturating_add(Weight::from_parts(38_200, 0).saturating_mul(p.into())) + // Standard Error: 2_136 + .saturating_add(Weight::from_parts(26_492, 0).saturating_mul(p.into())) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(1)) } diff --git a/cumulus/parachains/runtimes/collectives/collectives-westend/src/weights/pallet_ranked_collective_ambassador_collective.rs b/cumulus/parachains/runtimes/collectives/collectives-westend/src/weights/pallet_ranked_collective_ambassador_collective.rs index bee27f64b01c..a6372c4b89dc 100644 --- a/cumulus/parachains/runtimes/collectives/collectives-westend/src/weights/pallet_ranked_collective_ambassador_collective.rs +++ b/cumulus/parachains/runtimes/collectives/collectives-westend/src/weights/pallet_ranked_collective_ambassador_collective.rs @@ -1,4 +1,4 @@ -// Copyright (C) Parity Technologies (UK) Ltd. +// Copyright Parity Technologies (UK) Ltd. // This file is part of Cumulus. // Cumulus is free software: you can redistribute it and/or modify @@ -17,27 +17,24 @@ //! Autogenerated weights for `pallet_ranked_collective` //! //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev -//! DATE: 2023-10-25, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! DATE: 2023-08-11, STEPS: `2`, REPEAT: `2`, LOW RANGE: `[]`, HIGH RANGE: `[]` //! WORST CASE MAP SIZE: `1000000` -//! HOSTNAME: `runner-ayothjw6-project-674-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz` -//! WASM-EXECUTION: `Compiled`, CHAIN: `Some("collectives-westend-dev")`, DB CACHE: 1024 +//! HOSTNAME: `cob`, CPU: `` +//! WASM-EXECUTION: `Compiled`, CHAIN: `Some("collectives-polkadot-dev")`, DB CACHE: 1024 // Executed Command: -// ./target/production/polkadot-parachain +// target/release/polkadot-parachain // benchmark // pallet -// --chain=collectives-westend-dev +// --chain=collectives-polkadot-dev // --wasm-execution=compiled // --pallet=pallet_ranked_collective -// --no-storage-info -// --no-median-slopes -// --no-min-squares // --extrinsic=* -// --steps=50 -// --repeat=20 +// --steps=2 +// --repeat=2 // --json -// --header=./cumulus/file_header.txt -// --output=./cumulus/parachains/runtimes/collectives/collectives-westend/src/weights/ +// --header=./file_header.txt +// --output=./parachains/runtimes/collectives/collectives-polkadot/src/weights/ #![cfg_attr(rustfmt, rustfmt_skip)] #![allow(unused_parens)] @@ -62,8 +59,8 @@ impl pallet_ranked_collective::WeightInfo for WeightInf // Proof Size summary in bytes: // Measured: `42` // Estimated: `3507` - // Minimum execution time: 14_220_000 picoseconds. - Weight::from_parts(14_783_000, 0) + // Minimum execution time: 21_000_000 picoseconds. + Weight::from_parts(23_000_000, 0) .saturating_add(Weight::from_parts(0, 3507)) .saturating_add(T::DbWeight::get().reads(2)) .saturating_add(T::DbWeight::get().writes(4)) @@ -80,13 +77,13 @@ impl pallet_ranked_collective::WeightInfo for WeightInf /// The range of component `r` is `[0, 10]`. fn remove_member(r: u32, ) -> Weight { // Proof Size summary in bytes: - // Measured: `517 + r * (281 ±0)` + // Measured: `508 + r * (281 ±0)` // Estimated: `3519 + r * (2529 ±0)` - // Minimum execution time: 26_206_000 picoseconds. - Weight::from_parts(28_496_099, 0) + // Minimum execution time: 34_000_000 picoseconds. + Weight::from_parts(36_500_000, 0) .saturating_add(Weight::from_parts(0, 3519)) - // Standard Error: 17_090 - .saturating_add(Weight::from_parts(12_910_029, 0).saturating_mul(r.into())) + // Standard Error: 158_113 + .saturating_add(Weight::from_parts(16_000_000, 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)) @@ -105,13 +102,13 @@ impl pallet_ranked_collective::WeightInfo for WeightInf /// The range of component `r` is `[0, 10]`. fn promote_member(r: u32, ) -> Weight { // Proof Size summary in bytes: - // Measured: `214 + r * (17 ±0)` + // Measured: `210 + r * (17 ±0)` // Estimated: `3507` - // Minimum execution time: 17_846_000 picoseconds. - Weight::from_parts(18_664_751, 0) + // Minimum execution time: 25_000_000 picoseconds. + Weight::from_parts(26_000_000, 0) .saturating_add(Weight::from_parts(0, 3507)) - // Standard Error: 3_079 - .saturating_add(Weight::from_parts(335_098, 0).saturating_mul(r.into())) + // Standard Error: 180_277 + .saturating_add(Weight::from_parts(650_000, 0).saturating_mul(r.into())) .saturating_add(T::DbWeight::get().reads(2)) .saturating_add(T::DbWeight::get().writes(4)) } @@ -127,13 +124,13 @@ impl pallet_ranked_collective::WeightInfo for WeightInf /// The range of component `r` is `[0, 10]`. fn demote_member(r: u32, ) -> Weight { // Proof Size summary in bytes: - // Measured: `532 + r * (72 ±0)` + // Measured: `508 + r * (71 ±0)` // Estimated: `3519` - // Minimum execution time: 26_190_000 picoseconds. - Weight::from_parts(28_382_028, 0) + // Minimum execution time: 34_000_000 picoseconds. + Weight::from_parts(36_500_000, 0) .saturating_add(Weight::from_parts(0, 3519)) - // Standard Error: 10_335 - .saturating_add(Weight::from_parts(589_611, 0).saturating_mul(r.into())) + // Standard Error: 335_410 + .saturating_add(Weight::from_parts(550_000, 0).saturating_mul(r.into())) .saturating_add(T::DbWeight::get().reads(4)) .saturating_add(T::DbWeight::get().writes(4)) } @@ -149,8 +146,8 @@ impl pallet_ranked_collective::WeightInfo for WeightInf // Proof Size summary in bytes: // Measured: `566` // Estimated: `317568` - // Minimum execution time: 40_900_000 picoseconds. - Weight::from_parts(41_854_000, 0) + // Minimum execution time: 57_000_000 picoseconds. + Weight::from_parts(60_000_000, 0) .saturating_add(Weight::from_parts(0, 317568)) .saturating_add(T::DbWeight::get().reads(5)) .saturating_add(T::DbWeight::get().writes(4)) @@ -165,16 +162,16 @@ impl pallet_ranked_collective::WeightInfo for WeightInf /// The range of component `n` is `[0, 100]`. fn cleanup_poll(n: u32, ) -> Weight { // Proof Size summary in bytes: - // Measured: `400 + n * (50 ±0)` - // Estimated: `4365 + n * (2540 ±0)` - // Minimum execution time: 14_778_000 picoseconds. - Weight::from_parts(18_924_357, 0) + // Measured: `209 + n * (52 ±0)` + // Estimated: `4365 + n * (2550 ±0)` + // Minimum execution time: 18_000_000 picoseconds. + Weight::from_parts(18_500_000, 0) .saturating_add(Weight::from_parts(0, 4365)) - // Standard Error: 1_646 - .saturating_add(Weight::from_parts(1_157_922, 0).saturating_mul(n.into())) + // Standard Error: 11_180 + .saturating_add(Weight::from_parts(1_335_000, 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()))) - .saturating_add(Weight::from_parts(0, 2540).saturating_mul(n.into())) + .saturating_add(Weight::from_parts(0, 2550).saturating_mul(n.into())) } } diff --git a/cumulus/parachains/runtimes/collectives/collectives-westend/src/weights/pallet_ranked_collective_fellowship_collective.rs b/cumulus/parachains/runtimes/collectives/collectives-westend/src/weights/pallet_ranked_collective_fellowship_collective.rs index 4b31d16926ad..9c773c56ac39 100644 --- a/cumulus/parachains/runtimes/collectives/collectives-westend/src/weights/pallet_ranked_collective_fellowship_collective.rs +++ b/cumulus/parachains/runtimes/collectives/collectives-westend/src/weights/pallet_ranked_collective_fellowship_collective.rs @@ -1,43 +1,39 @@ // Copyright (C) Parity Technologies (UK) Ltd. -// This file is part of Cumulus. +// SPDX-License-Identifier: Apache-2.0 -// Cumulus 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. - -// Cumulus 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 Cumulus. If not, see . +// 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. //! Autogenerated weights for `pallet_ranked_collective` //! //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev -//! DATE: 2023-10-25, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! DATE: 2023-08-11, STEPS: `2`, REPEAT: `2`, LOW RANGE: `[]`, HIGH RANGE: `[]` //! WORST CASE MAP SIZE: `1000000` -//! HOSTNAME: `runner-ayothjw6-project-674-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz` -//! WASM-EXECUTION: `Compiled`, CHAIN: `Some("collectives-westend-dev")`, DB CACHE: 1024 +//! HOSTNAME: `cob`, CPU: `` +//! WASM-EXECUTION: `Compiled`, CHAIN: `Some("collectives-polkadot-dev")`, DB CACHE: 1024 // Executed Command: -// ./target/production/polkadot-parachain +// target/release/polkadot-parachain // benchmark // pallet -// --chain=collectives-westend-dev +// --chain=collectives-polkadot-dev // --wasm-execution=compiled // --pallet=pallet_ranked_collective -// --no-storage-info -// --no-median-slopes -// --no-min-squares // --extrinsic=* -// --steps=50 -// --repeat=20 +// --steps=2 +// --repeat=2 // --json -// --header=./cumulus/file_header.txt -// --output=./cumulus/parachains/runtimes/collectives/collectives-westend/src/weights/ +// --header=./file_header.txt +// --output=./parachains/runtimes/collectives/collectives-polkadot/src/weights/ #![cfg_attr(rustfmt, rustfmt_skip)] #![allow(unused_parens)] @@ -62,8 +58,8 @@ impl pallet_ranked_collective::WeightInfo for WeightInf // Proof Size summary in bytes: // Measured: `142` // Estimated: `3507` - // Minimum execution time: 14_574_000 picoseconds. - Weight::from_parts(15_162_000, 0) + // Minimum execution time: 21_000_000 picoseconds. + Weight::from_parts(22_000_000, 0) .saturating_add(Weight::from_parts(0, 3507)) .saturating_add(T::DbWeight::get().reads(2)) .saturating_add(T::DbWeight::get().writes(4)) @@ -80,13 +76,13 @@ impl pallet_ranked_collective::WeightInfo for WeightInf /// The range of component `r` is `[0, 10]`. fn remove_member(r: u32, ) -> Weight { // Proof Size summary in bytes: - // Measured: `617 + r * (281 ±0)` + // Measured: `608 + r * (281 ±0)` // Estimated: `3519 + r * (2529 ±0)` - // Minimum execution time: 26_592_000 picoseconds. - Weight::from_parts(28_892_674, 0) + // Minimum execution time: 35_000_000 picoseconds. + Weight::from_parts(36_500_000, 0) .saturating_add(Weight::from_parts(0, 3519)) - // Standard Error: 16_423 - .saturating_add(Weight::from_parts(12_963_309, 0).saturating_mul(r.into())) + // Standard Error: 254_950 + .saturating_add(Weight::from_parts(15_900_000, 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)) @@ -105,13 +101,13 @@ impl pallet_ranked_collective::WeightInfo for WeightInf /// The range of component `r` is `[0, 10]`. fn promote_member(r: u32, ) -> Weight { // Proof Size summary in bytes: - // Measured: `314 + r * (17 ±0)` + // Measured: `310 + r * (17 ±0)` // Estimated: `3507` - // Minimum execution time: 17_876_000 picoseconds. - Weight::from_parts(18_823_525, 0) + // Minimum execution time: 25_000_000 picoseconds. + Weight::from_parts(25_500_000, 0) .saturating_add(Weight::from_parts(0, 3507)) - // Standard Error: 3_053 - .saturating_add(Weight::from_parts(334_356, 0).saturating_mul(r.into())) + // Standard Error: 70_710 + .saturating_add(Weight::from_parts(400_000, 0).saturating_mul(r.into())) .saturating_add(T::DbWeight::get().reads(2)) .saturating_add(T::DbWeight::get().writes(4)) } @@ -127,13 +123,13 @@ impl pallet_ranked_collective::WeightInfo for WeightInf /// The range of component `r` is `[0, 10]`. fn demote_member(r: u32, ) -> Weight { // Proof Size summary in bytes: - // Measured: `632 + r * (72 ±0)` + // Measured: `608 + r * (71 ±0)` // Estimated: `3519` - // Minimum execution time: 26_045_000 picoseconds. - Weight::from_parts(28_838_987, 0) + // Minimum execution time: 35_000_000 picoseconds. + Weight::from_parts(37_500_000, 0) .saturating_add(Weight::from_parts(0, 3519)) - // Standard Error: 10_788 - .saturating_add(Weight::from_parts(579_284, 0).saturating_mul(r.into())) + // Standard Error: 150_000 + .saturating_add(Weight::from_parts(350_000, 0).saturating_mul(r.into())) .saturating_add(T::DbWeight::get().reads(4)) .saturating_add(T::DbWeight::get().writes(4)) } @@ -149,8 +145,8 @@ impl pallet_ranked_collective::WeightInfo for WeightInf // Proof Size summary in bytes: // Measured: `700` // Estimated: `317568` - // Minimum execution time: 40_971_000 picoseconds. - Weight::from_parts(41_986_000, 0) + // Minimum execution time: 57_000_000 picoseconds. + Weight::from_parts(57_000_000, 0) .saturating_add(Weight::from_parts(0, 317568)) .saturating_add(T::DbWeight::get().reads(5)) .saturating_add(T::DbWeight::get().writes(4)) @@ -165,16 +161,16 @@ impl pallet_ranked_collective::WeightInfo for WeightInf /// The range of component `n` is `[0, 100]`. fn cleanup_poll(n: u32, ) -> Weight { // Proof Size summary in bytes: - // Measured: `534 + n * (50 ±0)` - // Estimated: `4365 + n * (2540 ±0)` - // Minimum execution time: 15_040_000 picoseconds. - Weight::from_parts(18_734_743, 0) + // Measured: `343 + n * (52 ±0)` + // Estimated: `4365 + n * (2550 ±0)` + // Minimum execution time: 18_000_000 picoseconds. + Weight::from_parts(19_000_000, 0) .saturating_add(Weight::from_parts(0, 4365)) - // Standard Error: 1_618 - .saturating_add(Weight::from_parts(1_146_621, 0).saturating_mul(n.into())) + // Standard Error: 25_000 + .saturating_add(Weight::from_parts(1_395_000, 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()))) - .saturating_add(Weight::from_parts(0, 2540).saturating_mul(n.into())) + .saturating_add(Weight::from_parts(0, 2550).saturating_mul(n.into())) } } diff --git a/cumulus/parachains/runtimes/collectives/collectives-westend/src/weights/pallet_referenda_ambassador_referenda.rs b/cumulus/parachains/runtimes/collectives/collectives-westend/src/weights/pallet_referenda_ambassador_referenda.rs index 5b72e540123a..fdc451c5d31c 100644 --- a/cumulus/parachains/runtimes/collectives/collectives-westend/src/weights/pallet_referenda_ambassador_referenda.rs +++ b/cumulus/parachains/runtimes/collectives/collectives-westend/src/weights/pallet_referenda_ambassador_referenda.rs @@ -1,4 +1,4 @@ -// Copyright (C) Parity Technologies (UK) Ltd. +// Copyright Parity Technologies (UK) Ltd. // This file is part of Cumulus. // Cumulus is free software: you can redistribute it and/or modify @@ -17,27 +17,24 @@ //! Autogenerated weights for `pallet_referenda` //! //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev -//! DATE: 2023-10-25, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! DATE: 2023-08-11, STEPS: `2`, REPEAT: `2`, LOW RANGE: `[]`, HIGH RANGE: `[]` //! WORST CASE MAP SIZE: `1000000` -//! HOSTNAME: `runner-ayothjw6-project-674-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz` -//! WASM-EXECUTION: `Compiled`, CHAIN: `Some("collectives-westend-dev")`, DB CACHE: 1024 +//! HOSTNAME: `cob`, CPU: `` +//! WASM-EXECUTION: `Compiled`, CHAIN: `Some("collectives-polkadot-dev")`, DB CACHE: 1024 // Executed Command: -// ./target/production/polkadot-parachain +// target/release/polkadot-parachain // benchmark // pallet -// --chain=collectives-westend-dev +// --chain=collectives-polkadot-dev // --wasm-execution=compiled // --pallet=pallet_referenda -// --no-storage-info -// --no-median-slopes -// --no-min-squares // --extrinsic=* -// --steps=50 -// --repeat=20 +// --steps=2 +// --repeat=2 // --json -// --header=./cumulus/file_header.txt -// --output=./cumulus/parachains/runtimes/collectives/collectives-westend/src/weights/ +// --header=./file_header.txt +// --output=./parachains/runtimes/collectives/collectives-polkadot/src/weights/ #![cfg_attr(rustfmt, rustfmt_skip)] #![allow(unused_parens)] @@ -62,8 +59,8 @@ impl pallet_referenda::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `255` // Estimated: `159279` - // Minimum execution time: 23_480_000 picoseconds. - Weight::from_parts(24_218_000, 0) + // Minimum execution time: 32_000_000 picoseconds. + Weight::from_parts(34_000_000, 0) .saturating_add(Weight::from_parts(0, 159279)) .saturating_add(T::DbWeight::get().reads(3)) .saturating_add(T::DbWeight::get().writes(3)) @@ -76,8 +73,8 @@ impl pallet_referenda::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `366` // Estimated: `317568` - // Minimum execution time: 44_308_000 picoseconds. - Weight::from_parts(45_445_000, 0) + // Minimum execution time: 63_000_000 picoseconds. + Weight::from_parts(68_000_000, 0) .saturating_add(Weight::from_parts(0, 317568)) .saturating_add(T::DbWeight::get().reads(3)) .saturating_add(T::DbWeight::get().writes(3)) @@ -94,8 +91,8 @@ impl pallet_referenda::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `1165` // Estimated: `159279` - // Minimum execution time: 88_108_000 picoseconds. - Weight::from_parts(93_640_000, 0) + // Minimum execution time: 97_000_000 picoseconds. + Weight::from_parts(123_000_000, 0) .saturating_add(Weight::from_parts(0, 159279)) .saturating_add(T::DbWeight::get().reads(4)) .saturating_add(T::DbWeight::get().writes(3)) @@ -112,8 +109,8 @@ impl pallet_referenda::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `1173` // Estimated: `159279` - // Minimum execution time: 86_588_000 picoseconds. - Weight::from_parts(92_850_000, 0) + // Minimum execution time: 104_000_000 picoseconds. + Weight::from_parts(111_000_000, 0) .saturating_add(Weight::from_parts(0, 159279)) .saturating_add(T::DbWeight::get().reads(4)) .saturating_add(T::DbWeight::get().writes(3)) @@ -130,8 +127,8 @@ impl pallet_referenda::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `702` // Estimated: `317568` - // Minimum execution time: 155_712_000 picoseconds. - Weight::from_parts(166_538_000, 0) + // Minimum execution time: 140_000_000 picoseconds. + Weight::from_parts(150_000_000, 0) .saturating_add(Weight::from_parts(0, 317568)) .saturating_add(T::DbWeight::get().reads(5)) .saturating_add(T::DbWeight::get().writes(4)) @@ -148,8 +145,8 @@ impl pallet_referenda::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `601` // Estimated: `317568` - // Minimum execution time: 55_720_000 picoseconds. - Weight::from_parts(57_051_000, 0) + // Minimum execution time: 81_000_000 picoseconds. + Weight::from_parts(82_000_000, 0) .saturating_add(Weight::from_parts(0, 317568)) .saturating_add(T::DbWeight::get().reads(5)) .saturating_add(T::DbWeight::get().writes(4)) @@ -160,8 +157,8 @@ impl pallet_referenda::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `317` // Estimated: `4365` - // Minimum execution time: 26_938_000 picoseconds. - Weight::from_parts(27_720_000, 0) + // Minimum execution time: 38_000_000 picoseconds. + Weight::from_parts(38_000_000, 0) .saturating_add(Weight::from_parts(0, 4365)) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(1)) @@ -172,8 +169,8 @@ impl pallet_referenda::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `167` // Estimated: `4365` - // Minimum execution time: 13_395_000 picoseconds. - Weight::from_parts(13_966_000, 0) + // Minimum execution time: 17_000_000 picoseconds. + Weight::from_parts(18_000_000, 0) .saturating_add(Weight::from_parts(0, 4365)) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(1)) @@ -186,8 +183,8 @@ impl pallet_referenda::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `311` // Estimated: `317568` - // Minimum execution time: 31_654_000 picoseconds. - Weight::from_parts(32_480_000, 0) + // Minimum execution time: 44_000_000 picoseconds. + Weight::from_parts(45_000_000, 0) .saturating_add(Weight::from_parts(0, 317568)) .saturating_add(T::DbWeight::get().reads(3)) .saturating_add(T::DbWeight::get().writes(3)) @@ -216,8 +213,8 @@ impl pallet_referenda::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `626` // Estimated: `317568` - // Minimum execution time: 132_640_000 picoseconds. - Weight::from_parts(135_347_000, 0) + // Minimum execution time: 183_000_000 picoseconds. + Weight::from_parts(187_000_000, 0) .saturating_add(Weight::from_parts(0, 317568)) .saturating_add(T::DbWeight::get().reads(11)) .saturating_add(T::DbWeight::get().writes(6)) @@ -230,8 +227,8 @@ impl pallet_referenda::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `140` // Estimated: `3636` - // Minimum execution time: 10_470_000 picoseconds. - Weight::from_parts(10_910_000, 0) + // Minimum execution time: 12_000_000 picoseconds. + Weight::from_parts(12_000_000, 0) .saturating_add(Weight::from_parts(0, 3636)) .saturating_add(T::DbWeight::get().reads(2)) .saturating_add(T::DbWeight::get().writes(1)) @@ -246,10 +243,10 @@ impl pallet_referenda::WeightInfo for WeightInfo { /// Proof: `Scheduler::Agenda` (`max_values`: None, `max_size`: Some(155814), added: 158289, mode: `MaxEncodedLen`) fn one_fewer_deciding_failing() -> Weight { // Proof Size summary in bytes: - // Measured: `1426` + // Measured: `1412` // Estimated: `159279` - // Minimum execution time: 77_408_000 picoseconds. - Weight::from_parts(81_710_000, 0) + // Minimum execution time: 88_000_000 picoseconds. + Weight::from_parts(97_000_000, 0) .saturating_add(Weight::from_parts(0, 159279)) .saturating_add(T::DbWeight::get().reads(4)) .saturating_add(T::DbWeight::get().writes(3)) @@ -266,8 +263,8 @@ impl pallet_referenda::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `1412` // Estimated: `159279` - // Minimum execution time: 75_716_000 picoseconds. - Weight::from_parts(81_309_000, 0) + // Minimum execution time: 87_000_000 picoseconds. + Weight::from_parts(92_000_000, 0) .saturating_add(Weight::from_parts(0, 159279)) .saturating_add(T::DbWeight::get().reads(4)) .saturating_add(T::DbWeight::get().writes(3)) @@ -280,8 +277,8 @@ impl pallet_referenda::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `935` // Estimated: `4365` - // Minimum execution time: 37_477_000 picoseconds. - Weight::from_parts(42_720_000, 0) + // Minimum execution time: 43_000_000 picoseconds. + Weight::from_parts(46_000_000, 0) .saturating_add(Weight::from_parts(0, 4365)) .saturating_add(T::DbWeight::get().reads(2)) .saturating_add(T::DbWeight::get().writes(1)) @@ -294,8 +291,8 @@ impl pallet_referenda::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `935` // Estimated: `4365` - // Minimum execution time: 37_100_000 picoseconds. - Weight::from_parts(42_820_000, 0) + // Minimum execution time: 39_000_000 picoseconds. + Weight::from_parts(43_000_000, 0) .saturating_add(Weight::from_parts(0, 4365)) .saturating_add(T::DbWeight::get().reads(2)) .saturating_add(T::DbWeight::get().writes(1)) @@ -310,8 +307,8 @@ impl pallet_referenda::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `951` // Estimated: `4365` - // Minimum execution time: 43_661_000 picoseconds. - Weight::from_parts(49_088_000, 0) + // Minimum execution time: 48_000_000 picoseconds. + Weight::from_parts(50_000_000, 0) .saturating_add(Weight::from_parts(0, 4365)) .saturating_add(T::DbWeight::get().reads(3)) .saturating_add(T::DbWeight::get().writes(2)) @@ -326,8 +323,8 @@ impl pallet_referenda::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `959` // Estimated: `4365` - // Minimum execution time: 45_147_000 picoseconds. - Weight::from_parts(48_876_000, 0) + // Minimum execution time: 42_000_000 picoseconds. + Weight::from_parts(48_000_000, 0) .saturating_add(Weight::from_parts(0, 4365)) .saturating_add(T::DbWeight::get().reads(3)) .saturating_add(T::DbWeight::get().writes(2)) @@ -340,8 +337,8 @@ impl pallet_referenda::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `263` // Estimated: `159279` - // Minimum execution time: 21_756_000 picoseconds. - Weight::from_parts(22_311_000, 0) + // Minimum execution time: 28_000_000 picoseconds. + Weight::from_parts(30_000_000, 0) .saturating_add(Weight::from_parts(0, 159279)) .saturating_add(T::DbWeight::get().reads(2)) .saturating_add(T::DbWeight::get().writes(2)) @@ -354,8 +351,8 @@ impl pallet_referenda::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `311` // Estimated: `159279` - // Minimum execution time: 21_885_000 picoseconds. - Weight::from_parts(22_568_000, 0) + // Minimum execution time: 26_000_000 picoseconds. + Weight::from_parts(28_000_000, 0) .saturating_add(Weight::from_parts(0, 159279)) .saturating_add(T::DbWeight::get().reads(2)) .saturating_add(T::DbWeight::get().writes(2)) @@ -366,8 +363,8 @@ impl pallet_referenda::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `208` // Estimated: `4365` - // Minimum execution time: 14_875_000 picoseconds. - Weight::from_parts(15_562_000, 0) + // Minimum execution time: 19_000_000 picoseconds. + Weight::from_parts(20_000_000, 0) .saturating_add(Weight::from_parts(0, 4365)) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(1)) @@ -384,8 +381,8 @@ impl pallet_referenda::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `546` // Estimated: `159279` - // Minimum execution time: 32_220_000 picoseconds. - Weight::from_parts(33_014_000, 0) + // Minimum execution time: 42_000_000 picoseconds. + Weight::from_parts(46_000_000, 0) .saturating_add(Weight::from_parts(0, 159279)) .saturating_add(T::DbWeight::get().reads(4)) .saturating_add(T::DbWeight::get().writes(3)) @@ -402,8 +399,8 @@ impl pallet_referenda::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `647` // Estimated: `159279` - // Minimum execution time: 73_150_000 picoseconds. - Weight::from_parts(79_038_000, 0) + // Minimum execution time: 87_000_000 picoseconds. + Weight::from_parts(93_000_000, 0) .saturating_add(Weight::from_parts(0, 159279)) .saturating_add(T::DbWeight::get().reads(4)) .saturating_add(T::DbWeight::get().writes(3)) @@ -418,8 +415,8 @@ impl pallet_referenda::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `700` // Estimated: `159279` - // Minimum execution time: 124_160_000 picoseconds. - Weight::from_parts(132_848_000, 0) + // Minimum execution time: 100_000_000 picoseconds. + Weight::from_parts(120_000_000, 0) .saturating_add(Weight::from_parts(0, 159279)) .saturating_add(T::DbWeight::get().reads(3)) .saturating_add(T::DbWeight::get().writes(2)) @@ -434,8 +431,8 @@ impl pallet_referenda::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `683` // Estimated: `159279` - // Minimum execution time: 112_687_000 picoseconds. - Weight::from_parts(133_963_000, 0) + // Minimum execution time: 90_000_000 picoseconds. + Weight::from_parts(100_000_000, 0) .saturating_add(Weight::from_parts(0, 159279)) .saturating_add(T::DbWeight::get().reads(3)) .saturating_add(T::DbWeight::get().writes(2)) @@ -450,8 +447,8 @@ impl pallet_referenda::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `700` // Estimated: `159279` - // Minimum execution time: 118_497_000 picoseconds. - Weight::from_parts(127_430_000, 0) + // Minimum execution time: 77_000_000 picoseconds. + Weight::from_parts(82_000_000, 0) .saturating_add(Weight::from_parts(0, 159279)) .saturating_add(T::DbWeight::get().reads(3)) .saturating_add(T::DbWeight::get().writes(2)) @@ -466,8 +463,8 @@ impl pallet_referenda::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `704` // Estimated: `159279` - // Minimum execution time: 66_879_000 picoseconds. - Weight::from_parts(70_675_000, 0) + // Minimum execution time: 68_000_000 picoseconds. + Weight::from_parts(77_000_000, 0) .saturating_add(Weight::from_parts(0, 159279)) .saturating_add(T::DbWeight::get().reads(3)) .saturating_add(T::DbWeight::get().writes(2)) @@ -484,8 +481,8 @@ impl pallet_referenda::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `704` // Estimated: `317568` - // Minimum execution time: 129_480_000 picoseconds. - Weight::from_parts(146_191_000, 0) + // Minimum execution time: 99_000_000 picoseconds. + Weight::from_parts(104_000_000, 0) .saturating_add(Weight::from_parts(0, 317568)) .saturating_add(T::DbWeight::get().reads(5)) .saturating_add(T::DbWeight::get().writes(4)) @@ -500,8 +497,8 @@ impl pallet_referenda::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `700` // Estimated: `159279` - // Minimum execution time: 115_743_000 picoseconds. - Weight::from_parts(132_910_000, 0) + // Minimum execution time: 87_000_000 picoseconds. + Weight::from_parts(100_000_000, 0) .saturating_add(Weight::from_parts(0, 159279)) .saturating_add(T::DbWeight::get().reads(3)) .saturating_add(T::DbWeight::get().writes(2)) @@ -510,18 +507,16 @@ impl pallet_referenda::WeightInfo for WeightInfo { /// Proof: `AmbassadorReferenda::ReferendumInfoFor` (`max_values`: None, `max_size`: Some(900), added: 3375, mode: `MaxEncodedLen`) /// Storage: `Preimage::StatusFor` (r:1 w:0) /// Proof: `Preimage::StatusFor` (`max_values`: None, `max_size`: Some(91), added: 2566, mode: `MaxEncodedLen`) - /// Storage: `Preimage::RequestStatusFor` (r:1 w:0) - /// Proof: `Preimage::RequestStatusFor` (`max_values`: None, `max_size`: Some(91), added: 2566, mode: `MaxEncodedLen`) /// Storage: `AmbassadorReferenda::MetadataOf` (r:0 w:1) /// Proof: `AmbassadorReferenda::MetadataOf` (`max_values`: None, `max_size`: Some(52), added: 2527, mode: `MaxEncodedLen`) fn set_some_metadata() -> Weight { // Proof Size summary in bytes: // Measured: `419` // Estimated: `4365` - // Minimum execution time: 20_365_000 picoseconds. - Weight::from_parts(20_960_000, 0) + // Minimum execution time: 23_000_000 picoseconds. + Weight::from_parts(25_000_000, 0) .saturating_add(Weight::from_parts(0, 4365)) - .saturating_add(T::DbWeight::get().reads(3)) + .saturating_add(T::DbWeight::get().reads(2)) .saturating_add(T::DbWeight::get().writes(1)) } /// Storage: `AmbassadorReferenda::ReferendumInfoFor` (r:1 w:0) @@ -532,8 +527,8 @@ impl pallet_referenda::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `285` // Estimated: `4365` - // Minimum execution time: 16_523_000 picoseconds. - Weight::from_parts(17_029_000, 0) + // Minimum execution time: 20_000_000 picoseconds. + Weight::from_parts(21_000_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/cumulus/parachains/runtimes/collectives/collectives-westend/src/weights/pallet_referenda_fellowship_referenda.rs b/cumulus/parachains/runtimes/collectives/collectives-westend/src/weights/pallet_referenda_fellowship_referenda.rs index e4420da1b67f..63f68833795f 100644 --- a/cumulus/parachains/runtimes/collectives/collectives-westend/src/weights/pallet_referenda_fellowship_referenda.rs +++ b/cumulus/parachains/runtimes/collectives/collectives-westend/src/weights/pallet_referenda_fellowship_referenda.rs @@ -1,43 +1,39 @@ // Copyright (C) Parity Technologies (UK) Ltd. -// This file is part of Cumulus. +// SPDX-License-Identifier: Apache-2.0 -// Cumulus 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. - -// Cumulus 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 Cumulus. If not, see . +// 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. //! Autogenerated weights for `pallet_referenda` //! //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev -//! DATE: 2023-10-25, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! DATE: 2023-08-11, STEPS: `2`, REPEAT: `2`, LOW RANGE: `[]`, HIGH RANGE: `[]` //! WORST CASE MAP SIZE: `1000000` -//! HOSTNAME: `runner-ayothjw6-project-674-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz` -//! WASM-EXECUTION: `Compiled`, CHAIN: `Some("collectives-westend-dev")`, DB CACHE: 1024 +//! HOSTNAME: `cob`, CPU: `` +//! WASM-EXECUTION: `Compiled`, CHAIN: `Some("collectives-polkadot-dev")`, DB CACHE: 1024 // Executed Command: -// ./target/production/polkadot-parachain +// target/release/polkadot-parachain // benchmark // pallet -// --chain=collectives-westend-dev +// --chain=collectives-polkadot-dev // --wasm-execution=compiled // --pallet=pallet_referenda -// --no-storage-info -// --no-median-slopes -// --no-min-squares // --extrinsic=* -// --steps=50 -// --repeat=20 +// --steps=2 +// --repeat=2 // --json -// --header=./cumulus/file_header.txt -// --output=./cumulus/parachains/runtimes/collectives/collectives-westend/src/weights/ +// --header=./file_header.txt +// --output=./parachains/runtimes/collectives/collectives-polkadot/src/weights/ #![cfg_attr(rustfmt, rustfmt_skip)] #![allow(unused_parens)] @@ -62,8 +58,8 @@ impl pallet_referenda::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `389` // Estimated: `159279` - // Minimum execution time: 23_700_000 picoseconds. - Weight::from_parts(24_606_000, 0) + // Minimum execution time: 34_000_000 picoseconds. + Weight::from_parts(36_000_000, 0) .saturating_add(Weight::from_parts(0, 159279)) .saturating_add(T::DbWeight::get().reads(3)) .saturating_add(T::DbWeight::get().writes(3)) @@ -76,8 +72,8 @@ impl pallet_referenda::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `400` // Estimated: `317568` - // Minimum execution time: 44_379_000 picoseconds. - Weight::from_parts(45_797_000, 0) + // Minimum execution time: 64_000_000 picoseconds. + Weight::from_parts(67_000_000, 0) .saturating_add(Weight::from_parts(0, 317568)) .saturating_add(T::DbWeight::get().reads(3)) .saturating_add(T::DbWeight::get().writes(3)) @@ -94,8 +90,8 @@ impl pallet_referenda::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `2038` // Estimated: `159279` - // Minimum execution time: 91_378_000 picoseconds. - Weight::from_parts(97_576_000, 0) + // Minimum execution time: 99_000_000 picoseconds. + Weight::from_parts(109_000_000, 0) .saturating_add(Weight::from_parts(0, 159279)) .saturating_add(T::DbWeight::get().reads(4)) .saturating_add(T::DbWeight::get().writes(3)) @@ -112,8 +108,8 @@ impl pallet_referenda::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `2079` // Estimated: `159279` - // Minimum execution time: 88_958_000 picoseconds. - Weight::from_parts(96_907_000, 0) + // Minimum execution time: 101_000_000 picoseconds. + Weight::from_parts(111_000_000, 0) .saturating_add(Weight::from_parts(0, 159279)) .saturating_add(T::DbWeight::get().reads(4)) .saturating_add(T::DbWeight::get().writes(3)) @@ -130,8 +126,8 @@ impl pallet_referenda::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `836` // Estimated: `317568` - // Minimum execution time: 157_534_000 picoseconds. - Weight::from_parts(171_947_000, 0) + // Minimum execution time: 135_000_000 picoseconds. + Weight::from_parts(153_000_000, 0) .saturating_add(Weight::from_parts(0, 317568)) .saturating_add(T::DbWeight::get().reads(5)) .saturating_add(T::DbWeight::get().writes(4)) @@ -148,8 +144,8 @@ impl pallet_referenda::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `735` // Estimated: `317568` - // Minimum execution time: 56_176_000 picoseconds. - Weight::from_parts(57_508_000, 0) + // Minimum execution time: 78_000_000 picoseconds. + Weight::from_parts(82_000_000, 0) .saturating_add(Weight::from_parts(0, 317568)) .saturating_add(T::DbWeight::get().reads(5)) .saturating_add(T::DbWeight::get().writes(4)) @@ -160,8 +156,8 @@ impl pallet_referenda::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `351` // Estimated: `4365` - // Minimum execution time: 26_914_000 picoseconds. - Weight::from_parts(27_811_000, 0) + // Minimum execution time: 38_000_000 picoseconds. + Weight::from_parts(39_000_000, 0) .saturating_add(Weight::from_parts(0, 4365)) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(1)) @@ -172,8 +168,8 @@ impl pallet_referenda::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `201` // Estimated: `4365` - // Minimum execution time: 13_379_000 picoseconds. - Weight::from_parts(13_974_000, 0) + // Minimum execution time: 18_000_000 picoseconds. + Weight::from_parts(19_000_000, 0) .saturating_add(Weight::from_parts(0, 4365)) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(1)) @@ -186,8 +182,8 @@ impl pallet_referenda::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `345` // Estimated: `317568` - // Minimum execution time: 31_646_000 picoseconds. - Weight::from_parts(32_544_000, 0) + // Minimum execution time: 45_000_000 picoseconds. + Weight::from_parts(46_000_000, 0) .saturating_add(Weight::from_parts(0, 317568)) .saturating_add(T::DbWeight::get().reads(3)) .saturating_add(T::DbWeight::get().writes(3)) @@ -216,8 +212,8 @@ impl pallet_referenda::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `587` // Estimated: `317568` - // Minimum execution time: 132_371_000 picoseconds. - Weight::from_parts(136_539_000, 0) + // Minimum execution time: 185_000_000 picoseconds. + Weight::from_parts(196_000_000, 0) .saturating_add(Weight::from_parts(0, 317568)) .saturating_add(T::DbWeight::get().reads(11)) .saturating_add(T::DbWeight::get().writes(6)) @@ -230,8 +226,8 @@ impl pallet_referenda::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `174` // Estimated: `4277` - // Minimum execution time: 10_603_000 picoseconds. - Weight::from_parts(11_050_000, 0) + // Minimum execution time: 12_000_000 picoseconds. + Weight::from_parts(15_000_000, 0) .saturating_add(Weight::from_parts(0, 4277)) .saturating_add(T::DbWeight::get().reads(2)) .saturating_add(T::DbWeight::get().writes(1)) @@ -248,8 +244,8 @@ impl pallet_referenda::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `2452` // Estimated: `159279` - // Minimum execution time: 81_112_000 picoseconds. - Weight::from_parts(84_597_000, 0) + // Minimum execution time: 82_000_000 picoseconds. + Weight::from_parts(90_000_000, 0) .saturating_add(Weight::from_parts(0, 159279)) .saturating_add(T::DbWeight::get().reads(4)) .saturating_add(T::DbWeight::get().writes(3)) @@ -266,8 +262,8 @@ impl pallet_referenda::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `2452` // Estimated: `159279` - // Minimum execution time: 80_533_000 picoseconds. - Weight::from_parts(86_465_000, 0) + // Minimum execution time: 91_000_000 picoseconds. + Weight::from_parts(99_000_000, 0) .saturating_add(Weight::from_parts(0, 159279)) .saturating_add(T::DbWeight::get().reads(4)) .saturating_add(T::DbWeight::get().writes(3)) @@ -280,8 +276,8 @@ impl pallet_referenda::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `1841` // Estimated: `4365` - // Minimum execution time: 41_884_000 picoseconds. - Weight::from_parts(45_816_000, 0) + // Minimum execution time: 41_000_000 picoseconds. + Weight::from_parts(44_000_000, 0) .saturating_add(Weight::from_parts(0, 4365)) .saturating_add(T::DbWeight::get().reads(2)) .saturating_add(T::DbWeight::get().writes(1)) @@ -294,8 +290,8 @@ impl pallet_referenda::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `1808` // Estimated: `4365` - // Minimum execution time: 41_814_000 picoseconds. - Weight::from_parts(45_722_000, 0) + // Minimum execution time: 46_000_000 picoseconds. + Weight::from_parts(55_000_000, 0) .saturating_add(Weight::from_parts(0, 4365)) .saturating_add(T::DbWeight::get().reads(2)) .saturating_add(T::DbWeight::get().writes(1)) @@ -310,8 +306,8 @@ impl pallet_referenda::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `1824` // Estimated: `4365` - // Minimum execution time: 50_100_000 picoseconds. - Weight::from_parts(53_175_000, 0) + // Minimum execution time: 49_000_000 picoseconds. + Weight::from_parts(53_000_000, 0) .saturating_add(Weight::from_parts(0, 4365)) .saturating_add(T::DbWeight::get().reads(3)) .saturating_add(T::DbWeight::get().writes(2)) @@ -326,8 +322,8 @@ impl pallet_referenda::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `1865` // Estimated: `4365` - // Minimum execution time: 48_848_000 picoseconds. - Weight::from_parts(52_728_000, 0) + // Minimum execution time: 51_000_000 picoseconds. + Weight::from_parts(54_000_000, 0) .saturating_add(Weight::from_parts(0, 4365)) .saturating_add(T::DbWeight::get().reads(3)) .saturating_add(T::DbWeight::get().writes(2)) @@ -340,8 +336,8 @@ impl pallet_referenda::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `297` // Estimated: `159279` - // Minimum execution time: 21_687_000 picoseconds. - Weight::from_parts(22_523_000, 0) + // Minimum execution time: 28_000_000 picoseconds. + Weight::from_parts(30_000_000, 0) .saturating_add(Weight::from_parts(0, 159279)) .saturating_add(T::DbWeight::get().reads(2)) .saturating_add(T::DbWeight::get().writes(2)) @@ -354,8 +350,8 @@ impl pallet_referenda::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `345` // Estimated: `159279` - // Minimum execution time: 22_278_000 picoseconds. - Weight::from_parts(22_896_000, 0) + // Minimum execution time: 28_000_000 picoseconds. + Weight::from_parts(29_000_000, 0) .saturating_add(Weight::from_parts(0, 159279)) .saturating_add(T::DbWeight::get().reads(2)) .saturating_add(T::DbWeight::get().writes(2)) @@ -366,8 +362,8 @@ impl pallet_referenda::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `242` // Estimated: `4365` - // Minimum execution time: 14_820_000 picoseconds. - Weight::from_parts(15_402_000, 0) + // Minimum execution time: 20_000_000 picoseconds. + Weight::from_parts(21_000_000, 0) .saturating_add(Weight::from_parts(0, 4365)) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(1)) @@ -384,8 +380,8 @@ impl pallet_referenda::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `680` // Estimated: `159279` - // Minimum execution time: 32_542_000 picoseconds. - Weight::from_parts(33_583_000, 0) + // Minimum execution time: 42_000_000 picoseconds. + Weight::from_parts(47_000_000, 0) .saturating_add(Weight::from_parts(0, 159279)) .saturating_add(T::DbWeight::get().reads(4)) .saturating_add(T::DbWeight::get().writes(3)) @@ -402,8 +398,8 @@ impl pallet_referenda::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `781` // Estimated: `159279` - // Minimum execution time: 76_324_000 picoseconds. - Weight::from_parts(81_647_000, 0) + // Minimum execution time: 90_000_000 picoseconds. + Weight::from_parts(95_000_000, 0) .saturating_add(Weight::from_parts(0, 159279)) .saturating_add(T::DbWeight::get().reads(4)) .saturating_add(T::DbWeight::get().writes(3)) @@ -418,8 +414,8 @@ impl pallet_referenda::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `834` // Estimated: `159279` - // Minimum execution time: 122_123_000 picoseconds. - Weight::from_parts(136_472_000, 0) + // Minimum execution time: 84_000_000 picoseconds. + Weight::from_parts(93_000_000, 0) .saturating_add(Weight::from_parts(0, 159279)) .saturating_add(T::DbWeight::get().reads(3)) .saturating_add(T::DbWeight::get().writes(2)) @@ -434,8 +430,8 @@ impl pallet_referenda::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `817` // Estimated: `159279` - // Minimum execution time: 125_290_000 picoseconds. - Weight::from_parts(137_439_000, 0) + // Minimum execution time: 88_000_000 picoseconds. + Weight::from_parts(98_000_000, 0) .saturating_add(Weight::from_parts(0, 159279)) .saturating_add(T::DbWeight::get().reads(3)) .saturating_add(T::DbWeight::get().writes(2)) @@ -450,8 +446,8 @@ impl pallet_referenda::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `834` // Estimated: `159279` - // Minimum execution time: 122_627_000 picoseconds. - Weight::from_parts(130_056_000, 0) + // Minimum execution time: 81_000_000 picoseconds. + Weight::from_parts(93_000_000, 0) .saturating_add(Weight::from_parts(0, 159279)) .saturating_add(T::DbWeight::get().reads(3)) .saturating_add(T::DbWeight::get().writes(2)) @@ -466,8 +462,8 @@ impl pallet_referenda::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `838` // Estimated: `159279` - // Minimum execution time: 65_210_000 picoseconds. - Weight::from_parts(70_683_000, 0) + // Minimum execution time: 74_000_000 picoseconds. + Weight::from_parts(77_000_000, 0) .saturating_add(Weight::from_parts(0, 159279)) .saturating_add(T::DbWeight::get().reads(3)) .saturating_add(T::DbWeight::get().writes(2)) @@ -484,8 +480,8 @@ impl pallet_referenda::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `838` // Estimated: `317568` - // Minimum execution time: 133_658_000 picoseconds. - Weight::from_parts(146_750_000, 0) + // Minimum execution time: 105_000_000 picoseconds. + Weight::from_parts(123_000_000, 0) .saturating_add(Weight::from_parts(0, 317568)) .saturating_add(T::DbWeight::get().reads(5)) .saturating_add(T::DbWeight::get().writes(4)) @@ -500,8 +496,8 @@ impl pallet_referenda::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `834` // Estimated: `159279` - // Minimum execution time: 117_816_000 picoseconds. - Weight::from_parts(133_904_000, 0) + // Minimum execution time: 90_000_000 picoseconds. + Weight::from_parts(100_000_000, 0) .saturating_add(Weight::from_parts(0, 159279)) .saturating_add(T::DbWeight::get().reads(3)) .saturating_add(T::DbWeight::get().writes(2)) @@ -510,18 +506,16 @@ impl pallet_referenda::WeightInfo for WeightInfo { /// Proof: `FellowshipReferenda::ReferendumInfoFor` (`max_values`: None, `max_size`: Some(900), added: 3375, mode: `MaxEncodedLen`) /// Storage: `Preimage::StatusFor` (r:1 w:0) /// Proof: `Preimage::StatusFor` (`max_values`: None, `max_size`: Some(91), added: 2566, mode: `MaxEncodedLen`) - /// Storage: `Preimage::RequestStatusFor` (r:1 w:0) - /// Proof: `Preimage::RequestStatusFor` (`max_values`: None, `max_size`: Some(91), added: 2566, mode: `MaxEncodedLen`) /// Storage: `FellowshipReferenda::MetadataOf` (r:0 w:1) /// Proof: `FellowshipReferenda::MetadataOf` (`max_values`: None, `max_size`: Some(52), added: 2527, mode: `MaxEncodedLen`) fn set_some_metadata() -> Weight { // Proof Size summary in bytes: // Measured: `453` // Estimated: `4365` - // Minimum execution time: 20_424_000 picoseconds. - Weight::from_parts(21_241_000, 0) + // Minimum execution time: 24_000_000 picoseconds. + Weight::from_parts(24_000_000, 0) .saturating_add(Weight::from_parts(0, 4365)) - .saturating_add(T::DbWeight::get().reads(3)) + .saturating_add(T::DbWeight::get().reads(2)) .saturating_add(T::DbWeight::get().writes(1)) } /// Storage: `FellowshipReferenda::ReferendumInfoFor` (r:1 w:0) @@ -532,8 +526,8 @@ impl pallet_referenda::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `319` // Estimated: `4365` - // Minimum execution time: 16_717_000 picoseconds. - Weight::from_parts(17_274_000, 0) + // Minimum execution time: 21_000_000 picoseconds. + Weight::from_parts(23_000_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/cumulus/parachains/runtimes/collectives/collectives-westend/src/weights/pallet_salary_ambassador_salary.rs b/cumulus/parachains/runtimes/collectives/collectives-westend/src/weights/pallet_salary_ambassador_salary.rs index edbd4a408618..0522420f2f51 100644 --- a/cumulus/parachains/runtimes/collectives/collectives-westend/src/weights/pallet_salary_ambassador_salary.rs +++ b/cumulus/parachains/runtimes/collectives/collectives-westend/src/weights/pallet_salary_ambassador_salary.rs @@ -1,4 +1,4 @@ -// Copyright (C) Parity Technologies (UK) Ltd. +// Copyright Parity Technologies (UK) Ltd. // This file is part of Cumulus. // Cumulus is free software: you can redistribute it and/or modify @@ -17,27 +17,24 @@ //! Autogenerated weights for `pallet_salary` //! //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev -//! DATE: 2023-10-25, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! DATE: 2023-08-11, STEPS: `2`, REPEAT: `2`, LOW RANGE: `[]`, HIGH RANGE: `[]` //! WORST CASE MAP SIZE: `1000000` -//! HOSTNAME: `runner-ayothjw6-project-674-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz` -//! WASM-EXECUTION: `Compiled`, CHAIN: `Some("collectives-westend-dev")`, DB CACHE: 1024 +//! HOSTNAME: `cob`, CPU: `` +//! WASM-EXECUTION: `Compiled`, CHAIN: `Some("collectives-polkadot-dev")`, DB CACHE: 1024 // Executed Command: -// ./target/production/polkadot-parachain +// target/release/polkadot-parachain // benchmark // pallet -// --chain=collectives-westend-dev +// --chain=collectives-polkadot-dev // --wasm-execution=compiled // --pallet=pallet_salary -// --no-storage-info -// --no-median-slopes -// --no-min-squares // --extrinsic=* -// --steps=50 -// --repeat=20 +// --steps=2 +// --repeat=2 // --json -// --header=./cumulus/file_header.txt -// --output=./cumulus/parachains/runtimes/collectives/collectives-westend/src/weights/ +// --header=./file_header.txt +// --output=./parachains/runtimes/collectives/collectives-polkadot/src/weights/ #![cfg_attr(rustfmt, rustfmt_skip)] #![allow(unused_parens)] @@ -56,8 +53,8 @@ impl pallet_salary::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `109` // Estimated: `1541` - // Minimum execution time: 7_067_000 picoseconds. - Weight::from_parts(7_373_000, 0) + // Minimum execution time: 12_000_000 picoseconds. + Weight::from_parts(14_000_000, 0) .saturating_add(Weight::from_parts(0, 1541)) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(1)) @@ -68,8 +65,8 @@ impl pallet_salary::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `191` // Estimated: `1541` - // Minimum execution time: 9_393_000 picoseconds. - Weight::from_parts(9_754_000, 0) + // Minimum execution time: 15_000_000 picoseconds. + Weight::from_parts(16_000_000, 0) .saturating_add(Weight::from_parts(0, 1541)) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(1)) @@ -84,8 +81,8 @@ impl pallet_salary::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `400` // Estimated: `3551` - // Minimum execution time: 16_225_000 picoseconds. - Weight::from_parts(16_717_000, 0) + // Minimum execution time: 23_000_000 picoseconds. + Weight::from_parts(23_000_000, 0) .saturating_add(Weight::from_parts(0, 3551)) .saturating_add(T::DbWeight::get().reads(3)) .saturating_add(T::DbWeight::get().writes(1)) @@ -100,8 +97,8 @@ impl pallet_salary::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `467` // Estimated: `3551` - // Minimum execution time: 19_128_000 picoseconds. - Weight::from_parts(19_719_000, 0) + // Minimum execution time: 27_000_000 picoseconds. + Weight::from_parts(28_000_000, 0) .saturating_add(Weight::from_parts(0, 3551)) .saturating_add(T::DbWeight::get().reads(3)) .saturating_add(T::DbWeight::get().writes(2)) @@ -134,8 +131,8 @@ impl pallet_salary::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `879` // Estimated: `4344` - // Minimum execution time: 53_467_000 picoseconds. - Weight::from_parts(55_285_000, 0) + // Minimum execution time: 68_000_000 picoseconds. + Weight::from_parts(72_000_000, 0) .saturating_add(Weight::from_parts(0, 4344)) .saturating_add(T::DbWeight::get().reads(10)) .saturating_add(T::DbWeight::get().writes(7)) @@ -168,8 +165,8 @@ impl pallet_salary::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `879` // Estimated: `4344` - // Minimum execution time: 54_037_000 picoseconds. - Weight::from_parts(55_603_000, 0) + // Minimum execution time: 69_000_000 picoseconds. + Weight::from_parts(70_000_000, 0) .saturating_add(Weight::from_parts(0, 4344)) .saturating_add(T::DbWeight::get().reads(10)) .saturating_add(T::DbWeight::get().writes(7)) @@ -184,8 +181,8 @@ impl pallet_salary::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `479` // Estimated: `3944` - // Minimum execution time: 20_727_000 picoseconds. - Weight::from_parts(21_327_000, 0) + // Minimum execution time: 27_000_000 picoseconds. + Weight::from_parts(28_000_000, 0) .saturating_add(Weight::from_parts(0, 3944)) .saturating_add(T::DbWeight::get().reads(3)) .saturating_add(T::DbWeight::get().writes(3)) diff --git a/cumulus/parachains/runtimes/collectives/collectives-westend/src/weights/pallet_salary_fellowship_salary.rs b/cumulus/parachains/runtimes/collectives/collectives-westend/src/weights/pallet_salary_fellowship_salary.rs index fbc953f4b3d6..37680b4e5df7 100644 --- a/cumulus/parachains/runtimes/collectives/collectives-westend/src/weights/pallet_salary_fellowship_salary.rs +++ b/cumulus/parachains/runtimes/collectives/collectives-westend/src/weights/pallet_salary_fellowship_salary.rs @@ -1,43 +1,39 @@ // Copyright (C) Parity Technologies (UK) Ltd. -// This file is part of Cumulus. +// SPDX-License-Identifier: Apache-2.0 -// Cumulus 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. - -// Cumulus 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 Cumulus. If not, see . +// 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. //! Autogenerated weights for `pallet_salary` //! //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev -//! DATE: 2023-10-25, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! DATE: 2023-08-11, STEPS: `2`, REPEAT: `2`, LOW RANGE: `[]`, HIGH RANGE: `[]` //! WORST CASE MAP SIZE: `1000000` -//! HOSTNAME: `runner-ayothjw6-project-674-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz` -//! WASM-EXECUTION: `Compiled`, CHAIN: `Some("collectives-westend-dev")`, DB CACHE: 1024 +//! HOSTNAME: `cob`, CPU: `` +//! WASM-EXECUTION: `Compiled`, CHAIN: `Some("collectives-polkadot-dev")`, DB CACHE: 1024 // Executed Command: -// ./target/production/polkadot-parachain +// target/release/polkadot-parachain // benchmark // pallet -// --chain=collectives-westend-dev +// --chain=collectives-polkadot-dev // --wasm-execution=compiled // --pallet=pallet_salary -// --no-storage-info -// --no-median-slopes -// --no-min-squares // --extrinsic=* -// --steps=50 -// --repeat=20 +// --steps=2 +// --repeat=2 // --json -// --header=./cumulus/file_header.txt -// --output=./cumulus/parachains/runtimes/collectives/collectives-westend/src/weights/ +// --header=./file_header.txt +// --output=./parachains/runtimes/collectives/collectives-polkadot/src/weights/ #![cfg_attr(rustfmt, rustfmt_skip)] #![allow(unused_parens)] @@ -56,8 +52,8 @@ impl pallet_salary::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `142` // Estimated: `1541` - // Minimum execution time: 7_030_000 picoseconds. - Weight::from_parts(7_451_000, 0) + // Minimum execution time: 13_000_000 picoseconds. + Weight::from_parts(17_000_000, 0) .saturating_add(Weight::from_parts(0, 1541)) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(1)) @@ -68,8 +64,8 @@ impl pallet_salary::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `224` // Estimated: `1541` - // Minimum execution time: 9_149_000 picoseconds. - Weight::from_parts(9_663_000, 0) + // Minimum execution time: 15_000_000 picoseconds. + Weight::from_parts(18_000_000, 0) .saturating_add(Weight::from_parts(0, 1541)) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(1)) @@ -84,8 +80,8 @@ impl pallet_salary::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `395` // Estimated: `3551` - // Minimum execution time: 15_852_000 picoseconds. - Weight::from_parts(16_530_000, 0) + // Minimum execution time: 22_000_000 picoseconds. + Weight::from_parts(25_000_000, 0) .saturating_add(Weight::from_parts(0, 3551)) .saturating_add(T::DbWeight::get().reads(3)) .saturating_add(T::DbWeight::get().writes(1)) @@ -100,8 +96,8 @@ impl pallet_salary::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `462` // Estimated: `3551` - // Minimum execution time: 18_808_000 picoseconds. - Weight::from_parts(19_433_000, 0) + // Minimum execution time: 26_000_000 picoseconds. + Weight::from_parts(29_000_000, 0) .saturating_add(Weight::from_parts(0, 3551)) .saturating_add(T::DbWeight::get().reads(3)) .saturating_add(T::DbWeight::get().writes(2)) @@ -134,8 +130,8 @@ impl pallet_salary::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `774` // Estimated: `4239` - // Minimum execution time: 50_413_000 picoseconds. - Weight::from_parts(52_197_000, 0) + // Minimum execution time: 67_000_000 picoseconds. + Weight::from_parts(74_000_000, 0) .saturating_add(Weight::from_parts(0, 4239)) .saturating_add(T::DbWeight::get().reads(10)) .saturating_add(T::DbWeight::get().writes(7)) @@ -168,8 +164,8 @@ impl pallet_salary::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `774` // Estimated: `4239` - // Minimum execution time: 50_741_000 picoseconds. - Weight::from_parts(52_948_000, 0) + // Minimum execution time: 66_000_000 picoseconds. + Weight::from_parts(71_000_000, 0) .saturating_add(Weight::from_parts(0, 4239)) .saturating_add(T::DbWeight::get().reads(10)) .saturating_add(T::DbWeight::get().writes(7)) @@ -184,8 +180,8 @@ impl pallet_salary::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `512` // Estimated: `3977` - // Minimum execution time: 20_843_000 picoseconds. - Weight::from_parts(21_486_000, 0) + // Minimum execution time: 26_000_000 picoseconds. + Weight::from_parts(27_000_000, 0) .saturating_add(Weight::from_parts(0, 3977)) .saturating_add(T::DbWeight::get().reads(3)) .saturating_add(T::DbWeight::get().writes(3)) diff --git a/cumulus/parachains/runtimes/collectives/collectives-westend/src/weights/pallet_scheduler.rs b/cumulus/parachains/runtimes/collectives/collectives-westend/src/weights/pallet_scheduler.rs index 20b7dd2b3f3d..cf5610df6657 100644 --- a/cumulus/parachains/runtimes/collectives/collectives-westend/src/weights/pallet_scheduler.rs +++ b/cumulus/parachains/runtimes/collectives/collectives-westend/src/weights/pallet_scheduler.rs @@ -1,32 +1,31 @@ // Copyright (C) Parity Technologies (UK) Ltd. -// This file is part of Cumulus. +// SPDX-License-Identifier: Apache-2.0 -// Cumulus 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. - -// Cumulus 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 Cumulus. If not, see . +// 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. //! Autogenerated weights for `pallet_scheduler` //! //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev -//! DATE: 2023-10-25, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! DATE: 2023-07-31, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` //! WORST CASE MAP SIZE: `1000000` -//! HOSTNAME: `runner-ayothjw6-project-674-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz` -//! WASM-EXECUTION: `Compiled`, CHAIN: `Some("collectives-westend-dev")`, DB CACHE: 1024 +//! HOSTNAME: `runner-ynta1nyy-project-238-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz` +//! EXECUTION: ``, WASM-EXECUTION: `Compiled`, CHAIN: `Some("collectives-polkadot-dev")`, DB CACHE: 1024 // Executed Command: // ./target/production/polkadot-parachain // benchmark // pallet -// --chain=collectives-westend-dev +// --chain=collectives-polkadot-dev // --wasm-execution=compiled // --pallet=pallet_scheduler // --no-storage-info @@ -36,8 +35,8 @@ // --steps=50 // --repeat=20 // --json -// --header=./cumulus/file_header.txt -// --output=./cumulus/parachains/runtimes/collectives/collectives-westend/src/weights/ +// --header=./file_header.txt +// --output=./parachains/runtimes/collectives/collectives-polkadot/src/weights/ #![cfg_attr(rustfmt, rustfmt_skip)] #![allow(unused_parens)] @@ -56,8 +55,8 @@ impl pallet_scheduler::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `31` // Estimated: `1489` - // Minimum execution time: 2_621_000 picoseconds. - Weight::from_parts(2_755_000, 0) + // Minimum execution time: 3_441_000 picoseconds. + Weight::from_parts(3_604_000, 0) .saturating_add(Weight::from_parts(0, 1489)) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(1)) @@ -69,11 +68,11 @@ impl pallet_scheduler::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `77 + s * (177 ±0)` // Estimated: `159279` - // Minimum execution time: 3_046_000 picoseconds. - Weight::from_parts(964_288, 0) + // Minimum execution time: 2_879_000 picoseconds. + Weight::from_parts(2_963_000, 0) .saturating_add(Weight::from_parts(0, 159279)) - // Standard Error: 5_268 - .saturating_add(Weight::from_parts(885_980, 0).saturating_mul(s.into())) + // Standard Error: 3_764 + .saturating_add(Weight::from_parts(909_557, 0).saturating_mul(s.into())) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(1)) } @@ -81,27 +80,25 @@ impl pallet_scheduler::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 3_684_000 picoseconds. - Weight::from_parts(3_803_000, 0) + // Minimum execution time: 5_172_000 picoseconds. + Weight::from_parts(5_294_000, 0) .saturating_add(Weight::from_parts(0, 0)) } /// Storage: `Preimage::PreimageFor` (r:1 w:1) /// Proof: `Preimage::PreimageFor` (`max_values`: None, `max_size`: Some(4194344), added: 4196819, mode: `Measured`) - /// Storage: `Preimage::StatusFor` (r:1 w:0) + /// Storage: `Preimage::StatusFor` (r:1 w:1) /// Proof: `Preimage::StatusFor` (`max_values`: None, `max_size`: Some(91), added: 2566, mode: `MaxEncodedLen`) - /// Storage: `Preimage::RequestStatusFor` (r:1 w:1) - /// Proof: `Preimage::RequestStatusFor` (`max_values`: None, `max_size`: Some(91), added: 2566, mode: `MaxEncodedLen`) /// The range of component `s` is `[128, 4194304]`. fn service_task_fetched(s: u32, ) -> Weight { // Proof Size summary in bytes: - // Measured: `246 + s * (1 ±0)` - // Estimated: `3711 + s * (1 ±0)` - // Minimum execution time: 18_198_000 picoseconds. - Weight::from_parts(18_437_000, 0) - .saturating_add(Weight::from_parts(0, 3711)) - // Standard Error: 11 - .saturating_add(Weight::from_parts(1_333, 0).saturating_mul(s.into())) - .saturating_add(T::DbWeight::get().reads(3)) + // Measured: `213 + s * (1 ±0)` + // Estimated: `3678 + s * (1 ±0)` + // Minimum execution time: 19_704_000 picoseconds. + Weight::from_parts(19_903_000, 0) + .saturating_add(Weight::from_parts(0, 3678)) + // Standard Error: 5 + .saturating_add(Weight::from_parts(1_394, 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())) } @@ -111,8 +108,8 @@ impl pallet_scheduler::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 4_886_000 picoseconds. - Weight::from_parts(5_122_000, 0) + // Minimum execution time: 6_359_000 picoseconds. + Weight::from_parts(6_599_000, 0) .saturating_add(Weight::from_parts(0, 0)) .saturating_add(T::DbWeight::get().writes(1)) } @@ -120,24 +117,24 @@ impl pallet_scheduler::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 3_727_000 picoseconds. - Weight::from_parts(3_798_000, 0) + // Minimum execution time: 5_217_000 picoseconds. + Weight::from_parts(5_333_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_389_000 picoseconds. - Weight::from_parts(2_489_000, 0) + // Minimum execution time: 2_406_000 picoseconds. + Weight::from_parts(2_541_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_335_000 picoseconds. - Weight::from_parts(2_395_000, 0) + // Minimum execution time: 2_370_000 picoseconds. + Weight::from_parts(2_561_000, 0) .saturating_add(Weight::from_parts(0, 0)) } /// Storage: `Scheduler::Agenda` (r:1 w:1) @@ -147,11 +144,11 @@ impl pallet_scheduler::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `77 + s * (177 ±0)` // Estimated: `159279` - // Minimum execution time: 9_877_000 picoseconds. - Weight::from_parts(7_658_283, 0) + // Minimum execution time: 11_784_000 picoseconds. + Weight::from_parts(5_574_404, 0) .saturating_add(Weight::from_parts(0, 159279)) - // Standard Error: 5_499 - .saturating_add(Weight::from_parts(922_597, 0).saturating_mul(s.into())) + // Standard Error: 7_217 + .saturating_add(Weight::from_parts(1_035_248, 0).saturating_mul(s.into())) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(1)) } @@ -164,11 +161,11 @@ impl pallet_scheduler::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `77 + s * (177 ±0)` // Estimated: `159279` - // Minimum execution time: 14_506_000 picoseconds. - Weight::from_parts(8_189_771, 0) + // Minimum execution time: 16_373_000 picoseconds. + Weight::from_parts(3_088_135, 0) .saturating_add(Weight::from_parts(0, 159279)) - // Standard Error: 6_295 - .saturating_add(Weight::from_parts(1_611_580, 0).saturating_mul(s.into())) + // Standard Error: 7_095 + .saturating_add(Weight::from_parts(1_745_270, 0).saturating_mul(s.into())) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(2)) } @@ -181,11 +178,11 @@ impl pallet_scheduler::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `468 + s * (179 ±0)` // Estimated: `159279` - // Minimum execution time: 13_128_000 picoseconds. - Weight::from_parts(13_023_268, 0) + // Minimum execution time: 14_822_000 picoseconds. + Weight::from_parts(9_591_402, 0) .saturating_add(Weight::from_parts(0, 159279)) - // Standard Error: 5_697 - .saturating_add(Weight::from_parts(930_290, 0).saturating_mul(s.into())) + // Standard Error: 7_151 + .saturating_add(Weight::from_parts(1_058_408, 0).saturating_mul(s.into())) .saturating_add(T::DbWeight::get().reads(2)) .saturating_add(T::DbWeight::get().writes(2)) } @@ -198,11 +195,11 @@ impl pallet_scheduler::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `509 + s * (179 ±0)` // Estimated: `159279` - // Minimum execution time: 16_975_000 picoseconds. - Weight::from_parts(12_688_849, 0) + // Minimum execution time: 18_541_000 picoseconds. + Weight::from_parts(6_522_239, 0) .saturating_add(Weight::from_parts(0, 159279)) - // Standard Error: 6_234 - .saturating_add(Weight::from_parts(1_612_813, 0).saturating_mul(s.into())) + // Standard Error: 8_349 + .saturating_add(Weight::from_parts(1_760_431, 0).saturating_mul(s.into())) .saturating_add(T::DbWeight::get().reads(2)) .saturating_add(T::DbWeight::get().writes(2)) } diff --git a/cumulus/parachains/runtimes/collectives/collectives-westend/src/weights/pallet_session.rs b/cumulus/parachains/runtimes/collectives/collectives-westend/src/weights/pallet_session.rs index fc8e70e9fe94..2ac0804df890 100644 --- a/cumulus/parachains/runtimes/collectives/collectives-westend/src/weights/pallet_session.rs +++ b/cumulus/parachains/runtimes/collectives/collectives-westend/src/weights/pallet_session.rs @@ -1,32 +1,31 @@ // Copyright (C) Parity Technologies (UK) Ltd. -// This file is part of Cumulus. +// SPDX-License-Identifier: Apache-2.0 -// Cumulus 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. - -// Cumulus 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 Cumulus. If not, see . +// 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. //! Autogenerated weights for `pallet_session` //! //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev -//! DATE: 2023-10-25, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! DATE: 2023-07-31, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` //! WORST CASE MAP SIZE: `1000000` -//! HOSTNAME: `runner-ayothjw6-project-674-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz` -//! WASM-EXECUTION: `Compiled`, CHAIN: `Some("collectives-westend-dev")`, DB CACHE: 1024 +//! HOSTNAME: `runner-ynta1nyy-project-238-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz` +//! EXECUTION: ``, WASM-EXECUTION: `Compiled`, CHAIN: `Some("collectives-polkadot-dev")`, DB CACHE: 1024 // Executed Command: // ./target/production/polkadot-parachain // benchmark // pallet -// --chain=collectives-westend-dev +// --chain=collectives-polkadot-dev // --wasm-execution=compiled // --pallet=pallet_session // --no-storage-info @@ -36,8 +35,8 @@ // --steps=50 // --repeat=20 // --json -// --header=./cumulus/file_header.txt -// --output=./cumulus/parachains/runtimes/collectives/collectives-westend/src/weights/ +// --header=./file_header.txt +// --output=./parachains/runtimes/collectives/collectives-polkadot/src/weights/ #![cfg_attr(rustfmt, rustfmt_skip)] #![allow(unused_parens)] @@ -58,8 +57,8 @@ impl pallet_session::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `270` // Estimated: `3735` - // Minimum execution time: 16_320_000 picoseconds. - Weight::from_parts(16_832_000, 0) + // Minimum execution time: 16_663_000 picoseconds. + Weight::from_parts(17_246_000, 0) .saturating_add(Weight::from_parts(0, 3735)) .saturating_add(T::DbWeight::get().reads(2)) .saturating_add(T::DbWeight::get().writes(2)) @@ -72,8 +71,8 @@ impl pallet_session::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `242` // Estimated: `3707` - // Minimum execution time: 11_526_000 picoseconds. - Weight::from_parts(11_944_000, 0) + // Minimum execution time: 11_850_000 picoseconds. + Weight::from_parts(12_204_000, 0) .saturating_add(Weight::from_parts(0, 3707)) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(2)) diff --git a/cumulus/parachains/runtimes/collectives/collectives-westend/src/weights/pallet_timestamp.rs b/cumulus/parachains/runtimes/collectives/collectives-westend/src/weights/pallet_timestamp.rs index bfeb32d53d2c..ca06f43f92e4 100644 --- a/cumulus/parachains/runtimes/collectives/collectives-westend/src/weights/pallet_timestamp.rs +++ b/cumulus/parachains/runtimes/collectives/collectives-westend/src/weights/pallet_timestamp.rs @@ -1,32 +1,31 @@ // Copyright (C) Parity Technologies (UK) Ltd. -// This file is part of Cumulus. +// SPDX-License-Identifier: Apache-2.0 -// Cumulus 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. - -// Cumulus 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 Cumulus. If not, see . +// 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. //! Autogenerated weights for `pallet_timestamp` //! //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev -//! DATE: 2023-10-25, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! DATE: 2023-07-31, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` //! WORST CASE MAP SIZE: `1000000` -//! HOSTNAME: `runner-ayothjw6-project-674-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz` -//! WASM-EXECUTION: `Compiled`, CHAIN: `Some("collectives-westend-dev")`, DB CACHE: 1024 +//! HOSTNAME: `runner-ynta1nyy-project-238-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz` +//! EXECUTION: ``, WASM-EXECUTION: `Compiled`, CHAIN: `Some("collectives-polkadot-dev")`, DB CACHE: 1024 // Executed Command: // ./target/production/polkadot-parachain // benchmark // pallet -// --chain=collectives-westend-dev +// --chain=collectives-polkadot-dev // --wasm-execution=compiled // --pallet=pallet_timestamp // --no-storage-info @@ -36,8 +35,8 @@ // --steps=50 // --repeat=20 // --json -// --header=./cumulus/file_header.txt -// --output=./cumulus/parachains/runtimes/collectives/collectives-westend/src/weights/ +// --header=./file_header.txt +// --output=./parachains/runtimes/collectives/collectives-polkadot/src/weights/ #![cfg_attr(rustfmt, rustfmt_skip)] #![allow(unused_parens)] @@ -58,8 +57,8 @@ impl pallet_timestamp::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `49` // Estimated: `1493` - // Minimum execution time: 5_620_000 picoseconds. - Weight::from_parts(5_958_000, 0) + // Minimum execution time: 7_863_000 picoseconds. + Weight::from_parts(8_183_000, 0) .saturating_add(Weight::from_parts(0, 1493)) .saturating_add(T::DbWeight::get().reads(2)) .saturating_add(T::DbWeight::get().writes(1)) @@ -68,8 +67,8 @@ impl pallet_timestamp::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `57` // Estimated: `0` - // Minimum execution time: 2_892_000 picoseconds. - Weight::from_parts(3_074_000, 0) + // Minimum execution time: 3_460_000 picoseconds. + Weight::from_parts(3_577_000, 0) .saturating_add(Weight::from_parts(0, 0)) } } diff --git a/cumulus/parachains/runtimes/collectives/collectives-westend/src/weights/pallet_utility.rs b/cumulus/parachains/runtimes/collectives/collectives-westend/src/weights/pallet_utility.rs index 69f53639ab39..c60a79d91da3 100644 --- a/cumulus/parachains/runtimes/collectives/collectives-westend/src/weights/pallet_utility.rs +++ b/cumulus/parachains/runtimes/collectives/collectives-westend/src/weights/pallet_utility.rs @@ -1,32 +1,31 @@ // Copyright (C) Parity Technologies (UK) Ltd. -// This file is part of Cumulus. +// SPDX-License-Identifier: Apache-2.0 -// Cumulus 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. - -// Cumulus 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 Cumulus. If not, see . +// 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. //! Autogenerated weights for `pallet_utility` //! //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev -//! DATE: 2023-10-25, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! DATE: 2023-07-31, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` //! WORST CASE MAP SIZE: `1000000` -//! HOSTNAME: `runner-ayothjw6-project-674-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz` -//! WASM-EXECUTION: `Compiled`, CHAIN: `Some("collectives-westend-dev")`, DB CACHE: 1024 +//! HOSTNAME: `runner-ynta1nyy-project-238-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz` +//! EXECUTION: ``, WASM-EXECUTION: `Compiled`, CHAIN: `Some("collectives-polkadot-dev")`, DB CACHE: 1024 // Executed Command: // ./target/production/polkadot-parachain // benchmark // pallet -// --chain=collectives-westend-dev +// --chain=collectives-polkadot-dev // --wasm-execution=compiled // --pallet=pallet_utility // --no-storage-info @@ -36,8 +35,8 @@ // --steps=50 // --repeat=20 // --json -// --header=./cumulus/file_header.txt -// --output=./cumulus/parachains/runtimes/collectives/collectives-westend/src/weights/ +// --header=./file_header.txt +// --output=./parachains/runtimes/collectives/collectives-polkadot/src/weights/ #![cfg_attr(rustfmt, rustfmt_skip)] #![allow(unused_parens)] @@ -55,18 +54,18 @@ impl pallet_utility::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 4_903_000 picoseconds. - Weight::from_parts(13_041_734, 0) + // Minimum execution time: 6_650_000 picoseconds. + Weight::from_parts(7_474_437, 0) .saturating_add(Weight::from_parts(0, 0)) - // Standard Error: 2_457 - .saturating_add(Weight::from_parts(3_522_275, 0).saturating_mul(c.into())) + // Standard Error: 1_625 + .saturating_add(Weight::from_parts(4_996_146, 0).saturating_mul(c.into())) } fn as_derivative() -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 4_560_000 picoseconds. - Weight::from_parts(4_705_000, 0) + // Minimum execution time: 4_612_000 picoseconds. + Weight::from_parts(4_774_000, 0) .saturating_add(Weight::from_parts(0, 0)) } /// The range of component `c` is `[0, 1000]`. @@ -74,18 +73,18 @@ impl pallet_utility::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 4_895_000 picoseconds. - Weight::from_parts(12_683_290, 0) + // Minimum execution time: 6_744_000 picoseconds. + Weight::from_parts(10_889_913, 0) .saturating_add(Weight::from_parts(0, 0)) - // Standard Error: 2_387 - .saturating_add(Weight::from_parts(3_684_469, 0).saturating_mul(c.into())) + // Standard Error: 1_281 + .saturating_add(Weight::from_parts(5_218_293, 0).saturating_mul(c.into())) } fn dispatch_as() -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 7_017_000 picoseconds. - Weight::from_parts(7_254_000, 0) + // Minimum execution time: 8_673_000 picoseconds. + Weight::from_parts(8_980_000, 0) .saturating_add(Weight::from_parts(0, 0)) } /// The range of component `c` is `[0, 1000]`. @@ -93,10 +92,10 @@ impl pallet_utility::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 4_917_000 picoseconds. - Weight::from_parts(7_272_331, 0) + // Minimum execution time: 6_744_000 picoseconds. + Weight::from_parts(7_801_721, 0) .saturating_add(Weight::from_parts(0, 0)) - // Standard Error: 2_227 - .saturating_add(Weight::from_parts(3_544_626, 0).saturating_mul(c.into())) + // Standard Error: 1_395 + .saturating_add(Weight::from_parts(5_000_971, 0).saturating_mul(c.into())) } } diff --git a/cumulus/parachains/runtimes/collectives/collectives-westend/src/weights/pallet_xcm.rs b/cumulus/parachains/runtimes/collectives/collectives-westend/src/weights/pallet_xcm.rs index a6db046506e8..26e668854f24 100644 --- a/cumulus/parachains/runtimes/collectives/collectives-westend/src/weights/pallet_xcm.rs +++ b/cumulus/parachains/runtimes/collectives/collectives-westend/src/weights/pallet_xcm.rs @@ -1,32 +1,31 @@ // Copyright (C) Parity Technologies (UK) Ltd. -// This file is part of Cumulus. +// SPDX-License-Identifier: Apache-2.0 -// Cumulus 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. - -// Cumulus 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 Cumulus. If not, see . +// 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. //! Autogenerated weights for `pallet_xcm` //! //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev -//! DATE: 2023-10-25, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! DATE: 2023-07-31, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` //! WORST CASE MAP SIZE: `1000000` -//! HOSTNAME: `runner-ayothjw6-project-674-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz` -//! WASM-EXECUTION: `Compiled`, CHAIN: `Some("collectives-westend-dev")`, DB CACHE: 1024 +//! HOSTNAME: `runner-ynta1nyy-project-238-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz` +//! EXECUTION: ``, WASM-EXECUTION: `Compiled`, CHAIN: `Some("collectives-polkadot-dev")`, DB CACHE: 1024 // Executed Command: // ./target/production/polkadot-parachain // benchmark // pallet -// --chain=collectives-westend-dev +// --chain=collectives-polkadot-dev // --wasm-execution=compiled // --pallet=pallet_xcm // --no-storage-info @@ -36,8 +35,8 @@ // --steps=50 // --repeat=20 // --json -// --header=./cumulus/file_header.txt -// --output=./cumulus/parachains/runtimes/collectives/collectives-westend/src/weights/ +// --header=./file_header.txt +// --output=./parachains/runtimes/collectives/collectives-polkadot/src/weights/ #![cfg_attr(rustfmt, rustfmt_skip)] #![allow(unused_parens)] @@ -62,11 +61,11 @@ impl pallet_xcm::WeightInfo for WeightInfo { /// Proof: `ParachainSystem::PendingUpwardMessages` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) fn send() -> Weight { // Proof Size summary in bytes: - // Measured: `145` - // Estimated: `3610` - // Minimum execution time: 24_583_000 picoseconds. - Weight::from_parts(25_312_000, 0) - .saturating_add(Weight::from_parts(0, 3610)) + // Measured: `111` + // Estimated: `3576` + // Minimum execution time: 27_795_000 picoseconds. + Weight::from_parts(28_215_000, 0) + .saturating_add(Weight::from_parts(0, 3576)) .saturating_add(T::DbWeight::get().reads(5)) .saturating_add(T::DbWeight::get().writes(2)) } @@ -74,10 +73,10 @@ impl pallet_xcm::WeightInfo for WeightInfo { /// Proof: `ParachainInfo::ParachainId` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`) fn teleport_assets() -> Weight { // Proof Size summary in bytes: - // Measured: `69` + // Measured: `32` // Estimated: `1489` - // Minimum execution time: 21_554_000 picoseconds. - Weight::from_parts(21_870_000, 0) + // Minimum execution time: 23_847_000 picoseconds. + Weight::from_parts(24_332_000, 0) .saturating_add(Weight::from_parts(0, 1489)) .saturating_add(T::DbWeight::get().reads(1)) } @@ -107,8 +106,8 @@ impl pallet_xcm::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 7_070_000 picoseconds. - Weight::from_parts(7_346_000, 0) + // Minimum execution time: 8_885_000 picoseconds. + Weight::from_parts(9_128_000, 0) .saturating_add(Weight::from_parts(0, 0)) .saturating_add(T::DbWeight::get().writes(1)) } @@ -118,8 +117,8 @@ impl pallet_xcm::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 2_257_000 picoseconds. - Weight::from_parts(2_360_000, 0) + // Minimum execution time: 2_670_000 picoseconds. + Weight::from_parts(2_815_000, 0) .saturating_add(Weight::from_parts(0, 0)) .saturating_add(T::DbWeight::get().writes(1)) } @@ -141,11 +140,11 @@ impl pallet_xcm::WeightInfo for WeightInfo { /// Proof: `PolkadotXcm::Queries` (`max_values`: None, `max_size`: None, mode: `Measured`) fn force_subscribe_version_notify() -> Weight { // Proof Size summary in bytes: - // Measured: `145` - // Estimated: `3610` - // Minimum execution time: 28_524_000 picoseconds. - Weight::from_parts(29_376_000, 0) - .saturating_add(Weight::from_parts(0, 3610)) + // Measured: `111` + // Estimated: `3576` + // Minimum execution time: 32_214_000 picoseconds. + Weight::from_parts(32_989_000, 0) + .saturating_add(Weight::from_parts(0, 3576)) .saturating_add(T::DbWeight::get().reads(7)) .saturating_add(T::DbWeight::get().writes(5)) } @@ -165,11 +164,11 @@ impl pallet_xcm::WeightInfo for WeightInfo { /// Proof: `PolkadotXcm::Queries` (`max_values`: None, `max_size`: None, mode: `Measured`) fn force_unsubscribe_version_notify() -> Weight { // Proof Size summary in bytes: - // Measured: `363` - // Estimated: `3828` - // Minimum execution time: 30_784_000 picoseconds. - Weight::from_parts(31_606_000, 0) - .saturating_add(Weight::from_parts(0, 3828)) + // Measured: `294` + // Estimated: `3759` + // Minimum execution time: 33_638_000 picoseconds. + Weight::from_parts(34_206_000, 0) + .saturating_add(Weight::from_parts(0, 3759)) .saturating_add(T::DbWeight::get().reads(6)) .saturating_add(T::DbWeight::get().writes(4)) } @@ -179,8 +178,8 @@ impl pallet_xcm::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 2_325_000 picoseconds. - Weight::from_parts(2_438_000, 0) + // Minimum execution time: 2_602_000 picoseconds. + Weight::from_parts(2_730_000, 0) .saturating_add(Weight::from_parts(0, 0)) .saturating_add(T::DbWeight::get().writes(1)) } @@ -188,11 +187,11 @@ impl pallet_xcm::WeightInfo for WeightInfo { /// Proof: `PolkadotXcm::SupportedVersion` (`max_values`: None, `max_size`: None, mode: `Measured`) fn migrate_supported_version() -> Weight { // Proof Size summary in bytes: - // Measured: `162` - // Estimated: `11052` - // Minimum execution time: 16_417_000 picoseconds. - Weight::from_parts(16_768_000, 0) - .saturating_add(Weight::from_parts(0, 11052)) + // Measured: `129` + // Estimated: `11019` + // Minimum execution time: 16_199_000 picoseconds. + Weight::from_parts(16_833_000, 0) + .saturating_add(Weight::from_parts(0, 11019)) .saturating_add(T::DbWeight::get().reads(4)) .saturating_add(T::DbWeight::get().writes(2)) } @@ -200,11 +199,11 @@ impl pallet_xcm::WeightInfo for WeightInfo { /// Proof: `PolkadotXcm::VersionNotifiers` (`max_values`: None, `max_size`: None, mode: `Measured`) fn migrate_version_notifiers() -> Weight { // Proof Size summary in bytes: - // Measured: `166` - // Estimated: `11056` - // Minimum execution time: 16_447_000 picoseconds. - Weight::from_parts(16_699_000, 0) - .saturating_add(Weight::from_parts(0, 11056)) + // Measured: `133` + // Estimated: `11023` + // Minimum execution time: 16_561_000 picoseconds. + Weight::from_parts(16_872_000, 0) + .saturating_add(Weight::from_parts(0, 11023)) .saturating_add(T::DbWeight::get().reads(4)) .saturating_add(T::DbWeight::get().writes(2)) } @@ -212,11 +211,11 @@ impl pallet_xcm::WeightInfo for WeightInfo { /// Proof: `PolkadotXcm::VersionNotifyTargets` (`max_values`: None, `max_size`: None, mode: `Measured`) fn already_notified_target() -> Weight { // Proof Size summary in bytes: - // Measured: `173` - // Estimated: `13538` - // Minimum execution time: 17_725_000 picoseconds. - Weight::from_parts(18_067_000, 0) - .saturating_add(Weight::from_parts(0, 13538)) + // Measured: `140` + // Estimated: `13505` + // Minimum execution time: 17_812_000 picoseconds. + Weight::from_parts(20_036_000, 0) + .saturating_add(Weight::from_parts(0, 13505)) .saturating_add(T::DbWeight::get().reads(5)) } /// Storage: `PolkadotXcm::VersionNotifyTargets` (r:2 w:1) @@ -233,11 +232,11 @@ impl pallet_xcm::WeightInfo for WeightInfo { /// Proof: `ParachainSystem::PendingUpwardMessages` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) fn notify_current_targets() -> Weight { // Proof Size summary in bytes: - // Measured: `212` - // Estimated: `6152` - // Minimum execution time: 27_127_000 picoseconds. - Weight::from_parts(27_958_000, 0) - .saturating_add(Weight::from_parts(0, 6152)) + // Measured: `178` + // Estimated: `6118` + // Minimum execution time: 30_153_000 picoseconds. + Weight::from_parts(31_366_000, 0) + .saturating_add(Weight::from_parts(0, 6118)) .saturating_add(T::DbWeight::get().reads(7)) .saturating_add(T::DbWeight::get().writes(3)) } @@ -245,22 +244,22 @@ impl pallet_xcm::WeightInfo for WeightInfo { /// Proof: `PolkadotXcm::VersionNotifyTargets` (`max_values`: None, `max_size`: None, mode: `Measured`) fn notify_target_migration_fail() -> Weight { // Proof Size summary in bytes: - // Measured: `206` - // Estimated: `8621` - // Minimum execution time: 9_401_000 picoseconds. - Weight::from_parts(9_728_000, 0) - .saturating_add(Weight::from_parts(0, 8621)) + // Measured: `172` + // Estimated: `8587` + // Minimum execution time: 9_465_000 picoseconds. + Weight::from_parts(9_743_000, 0) + .saturating_add(Weight::from_parts(0, 8587)) .saturating_add(T::DbWeight::get().reads(3)) } /// Storage: `PolkadotXcm::VersionNotifyTargets` (r:4 w:2) /// Proof: `PolkadotXcm::VersionNotifyTargets` (`max_values`: None, `max_size`: None, mode: `Measured`) fn migrate_version_notify_targets() -> Weight { // Proof Size summary in bytes: - // Measured: `173` - // Estimated: `11063` - // Minimum execution time: 16_508_000 picoseconds. - Weight::from_parts(16_920_000, 0) - .saturating_add(Weight::from_parts(0, 11063)) + // Measured: `140` + // Estimated: `11030` + // Minimum execution time: 16_954_000 picoseconds. + Weight::from_parts(19_772_000, 0) + .saturating_add(Weight::from_parts(0, 11030)) .saturating_add(T::DbWeight::get().reads(4)) .saturating_add(T::DbWeight::get().writes(2)) } @@ -278,11 +277,11 @@ impl pallet_xcm::WeightInfo for WeightInfo { /// Proof: `ParachainSystem::PendingUpwardMessages` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) fn migrate_and_notify_old_targets() -> Weight { // Proof Size summary in bytes: - // Measured: `215` - // Estimated: `11105` - // Minimum execution time: 33_357_000 picoseconds. - Weight::from_parts(34_604_000, 0) - .saturating_add(Weight::from_parts(0, 11105)) + // Measured: `182` + // Estimated: `11072` + // Minimum execution time: 37_302_000 picoseconds. + Weight::from_parts(38_124_000, 0) + .saturating_add(Weight::from_parts(0, 11072)) .saturating_add(T::DbWeight::get().reads(9)) .saturating_add(T::DbWeight::get().writes(4)) } diff --git a/cumulus/parachains/runtimes/glutton/glutton-westend/src/weights/cumulus_pallet_parachain_system.rs b/cumulus/parachains/runtimes/glutton/glutton-westend/src/weights/cumulus_pallet_parachain_system.rs new file mode 100644 index 000000000000..f787aa327011 --- /dev/null +++ b/cumulus/parachains/runtimes/glutton/glutton-westend/src/weights/cumulus_pallet_parachain_system.rs @@ -0,0 +1,80 @@ +// 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. + +//! Autogenerated weights for `cumulus_pallet_parachain_system` +//! +//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev +//! DATE: 2023-03-28, 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: Some(Wasm), WASM-EXECUTION: Compiled, CHAIN: Some("statemint-dev"), DB CACHE: 1024 + +// Executed Command: +// ./target/release/polkadot-parachain +// benchmark +// pallet +// --chain +// statemint-dev +// --pallet +// cumulus_pallet_parachain_system +// --extrinsic +// * +// --execution +// wasm +// --wasm-execution +// compiled +// --output +// parachains/runtimes/assets/statemint/src/weights +// --steps +// 50 +// --repeat +// 20 + +#![cfg_attr(rustfmt, rustfmt_skip)] +#![allow(unused_parens)] +#![allow(unused_imports)] + +use frame_support::{traits::Get, weights::Weight}; +use sp_std::marker::PhantomData; + +/// Weight functions for `cumulus_pallet_parachain_system`. +pub struct WeightInfo(PhantomData); +impl cumulus_pallet_parachain_system::WeightInfo for WeightInfo { + /// Storage: ParachainSystem LastDmqMqcHead (r:1 w:1) + /// Proof Skipped: ParachainSystem LastDmqMqcHead (max_values: Some(1), max_size: None, mode: Measured) + /// Storage: ParachainSystem ReservedDmpWeightOverride (r:1 w:0) + /// Proof Skipped: ParachainSystem ReservedDmpWeightOverride (max_values: Some(1), max_size: None, mode: Measured) + /// Storage: MessageQueue BookStateFor (r:1 w:1) + /// Proof: MessageQueue BookStateFor (max_values: None, max_size: Some(52), added: 2527, mode: MaxEncodedLen) + /// Storage: MessageQueue ServiceHead (r:1 w:1) + /// Proof: MessageQueue ServiceHead (max_values: Some(1), max_size: Some(5), added: 500, mode: MaxEncodedLen) + /// Storage: ParachainSystem ProcessedDownwardMessages (r:0 w:1) + /// Proof Skipped: ParachainSystem ProcessedDownwardMessages (max_values: Some(1), max_size: None, mode: Measured) + /// Storage: MessageQueue Pages (r:0 w:16) + /// Proof: MessageQueue Pages (max_values: None, max_size: Some(65585), added: 68060, mode: MaxEncodedLen) + /// The range of component `n` is `[0, 1000]`. + fn enqueue_inbound_downward_messages(n: u32, ) -> Weight { + // Proof Size summary in bytes: + // Measured: `12` + // Estimated: `8013` + // Minimum execution time: 1_660_000 picoseconds. + Weight::from_parts(1_720_000, 0) + .saturating_add(Weight::from_parts(0, 8013)) + // Standard Error: 28_418 + .saturating_add(Weight::from_parts(24_636_963, 0).saturating_mul(n.into())) + .saturating_add(T::DbWeight::get().reads(4)) + .saturating_add(T::DbWeight::get().writes(4)) + } +} diff --git a/cumulus/parachains/runtimes/glutton/glutton-westend/src/weights/frame_system.rs b/cumulus/parachains/runtimes/glutton/glutton-westend/src/weights/frame_system.rs index 2145a609d23d..cf7ef948fd63 100644 --- a/cumulus/parachains/runtimes/glutton/glutton-westend/src/weights/frame_system.rs +++ b/cumulus/parachains/runtimes/glutton/glutton-westend/src/weights/frame_system.rs @@ -1,32 +1,31 @@ // Copyright (C) Parity Technologies (UK) Ltd. -// This file is part of Cumulus. +// SPDX-License-Identifier: Apache-2.0 -// Cumulus 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. - -// Cumulus 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 Cumulus. If not, see . +// 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. //! Autogenerated weights for `frame_system` //! //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev -//! DATE: 2023-10-25, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! DATE: 2023-07-31, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` //! WORST CASE MAP SIZE: `1000000` -//! HOSTNAME: `runner-ayothjw6-project-674-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz` -//! WASM-EXECUTION: `Compiled`, CHAIN: `Some("glutton-westend-dev-1300")`, DB CACHE: 1024 +//! HOSTNAME: `runner-ynta1nyy-project-238-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz` +//! EXECUTION: ``, WASM-EXECUTION: `Compiled`, CHAIN: `Some("glutton-kusama-dev-1300")`, DB CACHE: 1024 // Executed Command: // ./target/production/polkadot-parachain // benchmark // pallet -// --chain=glutton-westend-dev-1300 +// --chain=glutton-kusama-dev-1300 // --wasm-execution=compiled // --pallet=frame_system // --no-storage-info @@ -36,8 +35,8 @@ // --steps=50 // --repeat=20 // --json -// --header=./cumulus/file_header.txt -// --output=./cumulus/parachains/runtimes/glutton/glutton-westend/src/weights/ +// --header=./file_header.txt +// --output=./parachains/runtimes/glutton/glutton-kusama/src/weights/ #![cfg_attr(rustfmt, rustfmt_skip)] #![allow(unused_parens)] @@ -55,8 +54,8 @@ impl frame_system::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 1_727_000 picoseconds. - Weight::from_parts(1_680_190, 0) + // Minimum execution time: 1_717_000 picoseconds. + Weight::from_parts(1_782_325, 0) .saturating_add(Weight::from_parts(0, 0)) // Standard Error: 0 .saturating_add(Weight::from_parts(387, 0).saturating_mul(b.into())) @@ -66,11 +65,11 @@ impl frame_system::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 4_351_000 picoseconds. - Weight::from_parts(4_422_000, 0) + // Minimum execution time: 6_089_000 picoseconds. + Weight::from_parts(6_353_000, 0) .saturating_add(Weight::from_parts(0, 0)) // Standard Error: 2 - .saturating_add(Weight::from_parts(1_736, 0).saturating_mul(b.into())) + .saturating_add(Weight::from_parts(1_788, 0).saturating_mul(b.into())) } /// Storage: `System::Digest` (r:1 w:1) /// Proof: `System::Digest` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) @@ -80,8 +79,8 @@ impl frame_system::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `0` // Estimated: `1485` - // Minimum execution time: 2_894_000 picoseconds. - Weight::from_parts(3_107_000, 0) + // Minimum execution time: 3_389_000 picoseconds. + Weight::from_parts(3_605_000, 0) .saturating_add(Weight::from_parts(0, 1485)) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(2)) @@ -100,11 +99,11 @@ impl frame_system::WeightInfo for WeightInfo { /// Proof: `ParachainSystem::DidSetValidationCode` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) fn set_code() -> Weight { // Proof Size summary in bytes: - // Measured: `127` - // Estimated: `1612` - // Minimum execution time: 115_084_062_000 picoseconds. - Weight::from_parts(116_908_860_000, 0) - .saturating_add(Weight::from_parts(0, 1612)) + // Measured: `119` + // Estimated: `1604` + // Minimum execution time: 97_701_839_000 picoseconds. + Weight::from_parts(100_104_315_000, 0) + .saturating_add(Weight::from_parts(0, 1604)) .saturating_add(T::DbWeight::get().reads(4)) .saturating_add(T::DbWeight::get().writes(3)) } @@ -115,11 +114,11 @@ impl frame_system::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 1_690_000 picoseconds. - Weight::from_parts(1_800_000, 0) + // Minimum execution time: 1_638_000 picoseconds. + Weight::from_parts(1_726_000, 0) .saturating_add(Weight::from_parts(0, 0)) - // Standard Error: 2_253 - .saturating_add(Weight::from_parts(757_440, 0).saturating_mul(i.into())) + // Standard Error: 1_886 + .saturating_add(Weight::from_parts(809_561, 0).saturating_mul(i.into())) .saturating_add(T::DbWeight::get().writes((1_u64).saturating_mul(i.into()))) } /// Storage: `Skipped::Metadata` (r:0 w:0) @@ -129,11 +128,11 @@ impl frame_system::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 1_716_000 picoseconds. - Weight::from_parts(1_791_000, 0) + // Minimum execution time: 1_569_000 picoseconds. + Weight::from_parts(1_690_000, 0) .saturating_add(Weight::from_parts(0, 0)) - // Standard Error: 942 - .saturating_add(Weight::from_parts(560_797, 0).saturating_mul(i.into())) + // Standard Error: 963 + .saturating_add(Weight::from_parts(580_145, 0).saturating_mul(i.into())) .saturating_add(T::DbWeight::get().writes((1_u64).saturating_mul(i.into()))) } /// Storage: `Skipped::Metadata` (r:0 w:0) @@ -141,13 +140,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: `62 + p * (69 ±0)` - // Estimated: `50 + p * (70 ±0)` - // Minimum execution time: 3_251_000 picoseconds. - Weight::from_parts(3_332_000, 0) - .saturating_add(Weight::from_parts(0, 50)) - // Standard Error: 1_330 - .saturating_add(Weight::from_parts(1_162_402, 0).saturating_mul(p.into())) + // Measured: `52 + p * (69 ±0)` + // Estimated: `46 + p * (70 ±0)` + // Minimum execution time: 3_039_000 picoseconds. + Weight::from_parts(3_090_000, 0) + .saturating_add(Weight::from_parts(0, 46)) + // Standard Error: 2_007 + .saturating_add(Weight::from_parts(1_269_045, 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/cumulus/parachains/runtimes/glutton/glutton-westend/src/weights/mod.rs b/cumulus/parachains/runtimes/glutton/glutton-westend/src/weights/mod.rs index 955010505d31..47f9d1ee105e 100644 --- a/cumulus/parachains/runtimes/glutton/glutton-westend/src/weights/mod.rs +++ b/cumulus/parachains/runtimes/glutton/glutton-westend/src/weights/mod.rs @@ -1,18 +1,19 @@ // Copyright (C) Parity Technologies (UK) Ltd. -// This file is part of Cumulus. +// SPDX-License-Identifier: Apache-2.0 -// Cumulus 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. - -// Cumulus 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 Cumulus. If not, see . +// 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. +pub mod cumulus_pallet_parachain_system; pub mod pallet_glutton; +pub mod pallet_message_queue; pub mod pallet_timestamp; diff --git a/cumulus/parachains/runtimes/glutton/glutton-westend/src/weights/pallet_glutton.rs b/cumulus/parachains/runtimes/glutton/glutton-westend/src/weights/pallet_glutton.rs index 059fa97c3676..e1b0c5bf232e 100644 --- a/cumulus/parachains/runtimes/glutton/glutton-westend/src/weights/pallet_glutton.rs +++ b/cumulus/parachains/runtimes/glutton/glutton-westend/src/weights/pallet_glutton.rs @@ -1,32 +1,31 @@ // Copyright (C) Parity Technologies (UK) Ltd. -// This file is part of Cumulus. +// SPDX-License-Identifier: Apache-2.0 -// Cumulus 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. - -// Cumulus 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 Cumulus. If not, see . +// 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. //! Autogenerated weights for `pallet_glutton` //! //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev -//! DATE: 2023-10-25, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! DATE: 2023-07-31, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` //! WORST CASE MAP SIZE: `1000000` -//! HOSTNAME: `runner-ayothjw6-project-674-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz` -//! WASM-EXECUTION: `Compiled`, CHAIN: `Some("glutton-westend-dev-1300")`, DB CACHE: 1024 +//! HOSTNAME: `runner-ynta1nyy-project-238-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz` +//! EXECUTION: ``, WASM-EXECUTION: `Compiled`, CHAIN: `Some("glutton-kusama-dev-1300")`, DB CACHE: 1024 // Executed Command: // ./target/production/polkadot-parachain // benchmark // pallet -// --chain=glutton-westend-dev-1300 +// --chain=glutton-kusama-dev-1300 // --wasm-execution=compiled // --pallet=pallet_glutton // --no-storage-info @@ -36,8 +35,8 @@ // --steps=50 // --repeat=20 // --json -// --header=./cumulus/file_header.txt -// --output=./cumulus/parachains/runtimes/glutton/glutton-westend/src/weights/ +// --header=./file_header.txt +// --output=./parachains/runtimes/glutton/glutton-kusama/src/weights/ #![cfg_attr(rustfmt, rustfmt_skip)] #![allow(unused_parens)] @@ -59,11 +58,11 @@ impl pallet_glutton::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `87` // Estimated: `1489` - // Minimum execution time: 6_625_000 picoseconds. - Weight::from_parts(6_743_000, 0) + // Minimum execution time: 8_925_000 picoseconds. + Weight::from_parts(9_186_000, 0) .saturating_add(Weight::from_parts(0, 1489)) - // Standard Error: 4_804 - .saturating_add(Weight::from_parts(10_240_238, 0).saturating_mul(n.into())) + // Standard Error: 3_091 + .saturating_add(Weight::from_parts(9_666_196, 0).saturating_mul(n.into())) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(1)) .saturating_add(T::DbWeight::get().writes((1_u64).saturating_mul(n.into()))) @@ -77,11 +76,11 @@ impl pallet_glutton::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `120` // Estimated: `1489` - // Minimum execution time: 6_528_000 picoseconds. - Weight::from_parts(6_642_000, 0) + // Minimum execution time: 8_924_000 picoseconds. + Weight::from_parts(8_963_000, 0) .saturating_add(Weight::from_parts(0, 1489)) - // Standard Error: 1_242 - .saturating_add(Weight::from_parts(1_165_513, 0).saturating_mul(n.into())) + // Standard Error: 1_202 + .saturating_add(Weight::from_parts(1_139_080, 0).saturating_mul(n.into())) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(1)) .saturating_add(T::DbWeight::get().writes((1_u64).saturating_mul(n.into()))) @@ -91,11 +90,11 @@ impl pallet_glutton::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 668_000 picoseconds. - Weight::from_parts(591_173, 0) + // Minimum execution time: 708_000 picoseconds. + Weight::from_parts(1_698_031, 0) .saturating_add(Weight::from_parts(0, 0)) - // Standard Error: 13 - .saturating_add(Weight::from_parts(106_855, 0).saturating_mul(i.into())) + // Standard Error: 12 + .saturating_add(Weight::from_parts(106_500, 0).saturating_mul(i.into())) } /// Storage: `Glutton::TrashData` (r:5000 w:0) /// Proof: `Glutton::TrashData` (`max_values`: Some(65000), `max_size`: Some(1036), added: 3016, mode: `MaxEncodedLen`) @@ -104,11 +103,11 @@ impl pallet_glutton::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `119115 + i * (1022 ±0)` // Estimated: `990 + i * (3016 ±0)` - // Minimum execution time: 960_000 picoseconds. - Weight::from_parts(94_644_757, 0) + // Minimum execution time: 698_000 picoseconds. + Weight::from_parts(970_000, 0) .saturating_add(Weight::from_parts(0, 990)) - // Standard Error: 13_912 - .saturating_add(Weight::from_parts(5_772_318, 0).saturating_mul(i.into())) + // Standard Error: 4_022 + .saturating_add(Weight::from_parts(6_320_519, 0).saturating_mul(i.into())) .saturating_add(T::DbWeight::get().reads((1_u64).saturating_mul(i.into()))) .saturating_add(Weight::from_parts(0, 3016).saturating_mul(i.into())) } @@ -122,8 +121,8 @@ impl pallet_glutton::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `1900498` // Estimated: `5239782` - // Minimum execution time: 99_652_245_000 picoseconds. - Weight::from_parts(99_902_335_000, 0) + // Minimum execution time: 100_079_897_000 picoseconds. + Weight::from_parts(100_515_306_000, 0) .saturating_add(Weight::from_parts(0, 5239782)) .saturating_add(T::DbWeight::get().reads(1739)) } @@ -137,8 +136,8 @@ impl pallet_glutton::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `9548` // Estimated: `16070` - // Minimum execution time: 100_165_127_000 picoseconds. - Weight::from_parts(100_386_188_000, 0) + // Minimum execution time: 100_237_009_000 picoseconds. + Weight::from_parts(100_472_213_000, 0) .saturating_add(Weight::from_parts(0, 16070)) .saturating_add(T::DbWeight::get().reads(7)) } @@ -150,8 +149,8 @@ impl pallet_glutton::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `87` // Estimated: `1493` - // Minimum execution time: 4_065_000 picoseconds. - Weight::from_parts(4_191_000, 0) + // Minimum execution time: 5_120_000 picoseconds. + Weight::from_parts(5_262_000, 0) .saturating_add(Weight::from_parts(0, 1493)) .saturating_add(T::DbWeight::get().reads(2)) } @@ -161,8 +160,8 @@ impl pallet_glutton::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 3_943_000 picoseconds. - Weight::from_parts(4_073_000, 0) + // Minimum execution time: 5_947_000 picoseconds. + Weight::from_parts(6_171_000, 0) .saturating_add(Weight::from_parts(0, 0)) .saturating_add(T::DbWeight::get().writes(1)) } @@ -172,8 +171,8 @@ impl pallet_glutton::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 3_914_000 picoseconds. - Weight::from_parts(4_151_000, 0) + // Minimum execution time: 5_964_000 picoseconds. + Weight::from_parts(6_166_000, 0) .saturating_add(Weight::from_parts(0, 0)) .saturating_add(T::DbWeight::get().writes(1)) } diff --git a/cumulus/parachains/runtimes/glutton/glutton-westend/src/weights/pallet_message_queue.rs b/cumulus/parachains/runtimes/glutton/glutton-westend/src/weights/pallet_message_queue.rs new file mode 100644 index 000000000000..a9f0cb07cfe1 --- /dev/null +++ b/cumulus/parachains/runtimes/glutton/glutton-westend/src/weights/pallet_message_queue.rs @@ -0,0 +1,179 @@ +// 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. + +//! Autogenerated weights for `pallet_message_queue` +//! +//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev +//! DATE: 2023-03-24, STEPS: `2`, REPEAT: `1`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! WORST CASE MAP SIZE: `1000000` +//! HOSTNAME: `i9`, CPU: `13th Gen Intel(R) Core(TM) i9-13900K` +//! EXECUTION: Some(Wasm), WASM-EXECUTION: Compiled, CHAIN: Some("westmint-dev"), DB CACHE: 1024 + +// Executed Command: +// ./target/release/polkadot-parachain +// benchmark +// pallet +// --chain +// westmint-dev +// --pallet +// pallet_message_queue +// --extrinsic +// * +// --execution +// wasm +// --wasm-execution +// compiled +// --output +// parachains/runtimes/assets/westmint/src/weights + +#![cfg_attr(rustfmt, rustfmt_skip)] +#![allow(unused_parens)] +#![allow(unused_imports)] + +use frame_support::{traits::Get, weights::Weight}; +use sp_std::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) + /// Storage: MessageQueue BookStateFor (r:2 w:2) + /// Proof: MessageQueue BookStateFor (max_values: None, max_size: Some(52), added: 2527, mode: MaxEncodedLen) + fn ready_ring_knit() -> Weight { + // Proof Size summary in bytes: + // Measured: `189` + // Estimated: `7534` + // Minimum execution time: 12_192_000 picoseconds. + Weight::from_parts(12_192_000, 0) + .saturating_add(Weight::from_parts(0, 7534)) + .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) + /// Storage: MessageQueue ServiceHead (r:1 w:1) + /// Proof: MessageQueue ServiceHead (max_values: Some(1), max_size: Some(5), added: 500, mode: MaxEncodedLen) + fn ready_ring_unknit() -> Weight { + // Proof Size summary in bytes: + // Measured: `184` + // Estimated: `7534` + // Minimum execution time: 10_447_000 picoseconds. + Weight::from_parts(10_447_000, 0) + .saturating_add(Weight::from_parts(0, 7534)) + .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) + fn service_queue_base() -> Weight { + // Proof Size summary in bytes: + // Measured: `6` + // Estimated: `3517` + // Minimum execution time: 4_851_000 picoseconds. + Weight::from_parts(4_851_000, 0) + .saturating_add(Weight::from_parts(0, 3517)) + .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) + fn service_page_base_completion() -> Weight { + // Proof Size summary in bytes: + // Measured: `72` + // Estimated: `69050` + // Minimum execution time: 6_342_000 picoseconds. + Weight::from_parts(6_342_000, 0) + .saturating_add(Weight::from_parts(0, 69050)) + .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) + fn service_page_base_no_completion() -> Weight { + // Proof Size summary in bytes: + // Measured: `72` + // Estimated: `69050` + // Minimum execution time: 6_199_000 picoseconds. + Weight::from_parts(6_199_000, 0) + .saturating_add(Weight::from_parts(0, 69050)) + .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: `0` + // Estimated: `0` + // Minimum execution time: 58_612_000 picoseconds. + Weight::from_parts(58_612_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) + /// Storage: MessageQueue BookStateFor (r:1 w:0) + /// Proof: MessageQueue BookStateFor (max_values: None, max_size: Some(52), added: 2527, mode: MaxEncodedLen) + fn bump_service_head() -> Weight { + // Proof Size summary in bytes: + // Measured: `99` + // Estimated: `5007` + // Minimum execution time: 7_296_000 picoseconds. + Weight::from_parts(7_296_000, 0) + .saturating_add(Weight::from_parts(0, 5007)) + .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) + /// Storage: MessageQueue Pages (r:1 w:1) + /// Proof: MessageQueue Pages (max_values: None, max_size: Some(65585), added: 68060, mode: MaxEncodedLen) + fn reap_page() -> Weight { + // Proof Size summary in bytes: + // Measured: `65667` + // Estimated: `72567` + // Minimum execution time: 48_345_000 picoseconds. + Weight::from_parts(48_345_000, 0) + .saturating_add(Weight::from_parts(0, 72567)) + .saturating_add(T::DbWeight::get().reads(2)) + .saturating_add(T::DbWeight::get().writes(2)) + } + /// Storage: MessageQueue BookStateFor (r:1 w:1) + /// Proof: MessageQueue BookStateFor (max_values: None, max_size: Some(52), added: 2527, mode: MaxEncodedLen) + /// Storage: MessageQueue Pages (r:1 w:1) + /// Proof: MessageQueue Pages (max_values: None, max_size: Some(65585), added: 68060, mode: MaxEncodedLen) + fn execute_overweight_page_removed() -> Weight { + // Proof Size summary in bytes: + // Measured: `65667` + // Estimated: `72567` + // Minimum execution time: 56_441_000 picoseconds. + Weight::from_parts(56_441_000, 0) + .saturating_add(Weight::from_parts(0, 72567)) + .saturating_add(T::DbWeight::get().reads(2)) + .saturating_add(T::DbWeight::get().writes(2)) + } + /// Storage: MessageQueue BookStateFor (r:1 w:1) + /// Proof: MessageQueue BookStateFor (max_values: None, max_size: Some(52), added: 2527, mode: MaxEncodedLen) + /// Storage: MessageQueue Pages (r:1 w:1) + /// Proof: MessageQueue Pages (max_values: None, max_size: Some(65585), added: 68060, mode: MaxEncodedLen) + fn execute_overweight_page_updated() -> Weight { + // Proof Size summary in bytes: + // Measured: `65667` + // Estimated: `72567` + // Minimum execution time: 70_858_000 picoseconds. + Weight::from_parts(70_858_000, 0) + .saturating_add(Weight::from_parts(0, 72567)) + .saturating_add(T::DbWeight::get().reads(2)) + .saturating_add(T::DbWeight::get().writes(2)) + } +} diff --git a/cumulus/parachains/runtimes/glutton/glutton-westend/src/weights/pallet_timestamp.rs b/cumulus/parachains/runtimes/glutton/glutton-westend/src/weights/pallet_timestamp.rs index 25b16aadcc9b..8edae065f1b9 100644 --- a/cumulus/parachains/runtimes/glutton/glutton-westend/src/weights/pallet_timestamp.rs +++ b/cumulus/parachains/runtimes/glutton/glutton-westend/src/weights/pallet_timestamp.rs @@ -20,13 +20,13 @@ //! DATE: 2023-07-31, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` //! WORST CASE MAP SIZE: `1000000` //! HOSTNAME: `runner-ynta1nyy-project-238-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz` -//! EXECUTION: ``, WASM-EXECUTION: `Compiled`, CHAIN: `Some("asset-hub-westend-dev")`, DB CACHE: 1024 +//! EXECUTION: ``, WASM-EXECUTION: `Compiled`, CHAIN: `Some("asset-hub-kusama-dev")`, DB CACHE: 1024 // Executed Command: // ./target/production/polkadot-parachain // benchmark // pallet -// --chain=asset-hub-westend-dev +// --chain=asset-hub-kusama-dev // --wasm-execution=compiled // --pallet=pallet_timestamp // --no-storage-info @@ -37,7 +37,7 @@ // --repeat=20 // --json // --header=./file_header.txt -// --output=./parachains/runtimes/assets/asset-hub-westend/src/weights/ +// --output=./parachains/runtimes/assets/asset-hub-kusama/src/weights/ #![cfg_attr(rustfmt, rustfmt_skip)] #![allow(unused_parens)] From 75d5c9f2ecac3bc40b980a5e6052833975f66fac Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?D=C3=B3nal=20Murray?= Date: Fri, 3 Nov 2023 09:20:55 +0000 Subject: [PATCH 51/78] Add new runtimes to new github workflow Add `collectives-westend` and `glutton-westend` to `build-and-attach-release-runtimes.yml` --- .github/workflows/build-and-attach-release-runtimes.yml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.github/workflows/build-and-attach-release-runtimes.yml b/.github/workflows/build-and-attach-release-runtimes.yml index c7cd4b34384a..db0175c6855b 100644 --- a/.github/workflows/build-and-attach-release-runtimes.yml +++ b/.github/workflows/build-and-attach-release-runtimes.yml @@ -19,6 +19,8 @@ jobs: - { name: asset-hub-westend, package: asset-hub-westend-runtime, path: cumulus/parachains/runtimes/assets/asset-hub-westend } - { name: bridge-hub-rococo, package: bridge-hub-rococo-runtime, path: cumulus/parachains/runtimes/bridge-hubs/bridge-hub-rococo } - { name: contracts-rococo, package: contracts-rococo-runtime, path: cumulus/parachains/runtimes/contracts/contracts-rococo } + - { name: collectives-westend, package: collectives-westend-runtime, path: cumulus/parachains/runtimes/collectives/collectives-westend } + - { name: glutton-westend, package: glutton-westend-runtime, path: cumulus/parachains/runtimes/glutton/glutton-westend } build_config: # Release build has logging disabled and no dev features - { type: on-chain-release, opts: --features on-chain-release-build } From 3baea5bd012c510c8f5eef31508631b7f6107db1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?D=C3=B3nal=20Murray?= Date: Sat, 4 Nov 2023 23:53:19 +0000 Subject: [PATCH 52/78] Do not publish collectives-westend Co-authored-by: Muharem --- .../runtimes/collectives/collectives-westend/Cargo.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cumulus/parachains/runtimes/collectives/collectives-westend/Cargo.toml b/cumulus/parachains/runtimes/collectives/collectives-westend/Cargo.toml index 985b929d6678..89dc27ca85f1 100644 --- a/cumulus/parachains/runtimes/collectives/collectives-westend/Cargo.toml +++ b/cumulus/parachains/runtimes/collectives/collectives-westend/Cargo.toml @@ -5,7 +5,7 @@ authors.workspace = true edition.workspace = true license = "Apache-2.0" description = "Westend Collectives Parachain Runtime" - +publish = false [dependencies] codec = { package = "parity-scale-codec", version = "3.0.0", default-features = false, features = ["derive", "max-encoded-len"] } hex-literal = { version = "0.4.1" } From bcb1fd97fcb80a2117e214dabfc15c631eb44726 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?D=C3=B3nal=20Murray?= Date: Sat, 4 Nov 2023 23:53:54 +0000 Subject: [PATCH 53/78] Do not publish glutton-westend Co-authored-by: Muharem --- cumulus/parachains/runtimes/glutton/glutton-westend/Cargo.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cumulus/parachains/runtimes/glutton/glutton-westend/Cargo.toml b/cumulus/parachains/runtimes/glutton/glutton-westend/Cargo.toml index 553a70d2c8b0..d428dc5b1218 100644 --- a/cumulus/parachains/runtimes/glutton/glutton-westend/Cargo.toml +++ b/cumulus/parachains/runtimes/glutton/glutton-westend/Cargo.toml @@ -5,7 +5,7 @@ authors.workspace = true edition.workspace = true license = "Apache-2.0" description = "Glutton parachain runtime." - +publish = false [dependencies] codec = { package = "parity-scale-codec", version = "3.0.0", default-features = false, features = ["derive"] } scale-info = { version = "2.10.0", default-features = false, features = ["derive"] } From 00e1eeba4b6e7c1f1652a2e6a4819434609bd8fa Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?D=C3=B3nal=20Murray?= Date: Sat, 4 Nov 2023 23:54:29 +0000 Subject: [PATCH 54/78] Fix incorrect SS58Prefix Co-authored-by: Muharem --- cumulus/parachains/runtimes/glutton/glutton-westend/src/lib.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cumulus/parachains/runtimes/glutton/glutton-westend/src/lib.rs b/cumulus/parachains/runtimes/glutton/glutton-westend/src/lib.rs index e75d90956d96..baed3bc8118a 100644 --- a/cumulus/parachains/runtimes/glutton/glutton-westend/src/lib.rs +++ b/cumulus/parachains/runtimes/glutton/glutton-westend/src/lib.rs @@ -165,7 +165,7 @@ parameter_types! { }) .avg_block_initialization(AVERAGE_ON_INITIALIZE_RATIO) .build_or_panic(); - pub const SS58Prefix: u8 = 2; + pub const SS58Prefix: u8 = 42; } impl frame_system::Config for Runtime { From 75d950f33f266fae22c0af859606e80735d541b6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?D=C3=B3nal=20Murray?= Date: Mon, 6 Nov 2023 10:02:32 +0000 Subject: [PATCH 55/78] Update chain specs in light of 1256 --- .../src/chain_spec/collectives.rs | 182 ++++++++---------- .../src/chain_spec/glutton.rs | 127 +++++------- 2 files changed, 126 insertions(+), 183 deletions(-) diff --git a/cumulus/polkadot-parachain/src/chain_spec/collectives.rs b/cumulus/polkadot-parachain/src/chain_spec/collectives.rs index f25eff17f6ab..07bd742fa8e3 100644 --- a/cumulus/polkadot-parachain/src/chain_spec/collectives.rs +++ b/cumulus/polkadot-parachain/src/chain_spec/collectives.rs @@ -175,37 +175,33 @@ pub fn collectives_westend_development_config() -> CollectivesWestendChainSpec { properties.insert("tokenSymbol".into(), "WND".into()); properties.insert("tokenDecimals".into(), 12.into()); - CollectivesWestendChainSpec::from_genesis( - // Name - "Westend Collectives Development", - // ID - "collectives_westend_dev", - ChainType::Local, - move || { - collectives_westend_genesis( - // initial collators. - vec![( - get_account_id_from_seed::("Alice"), - get_collator_keys_from_seed::("Alice"), - )], - vec![ - get_account_id_from_seed::("Alice"), - get_account_id_from_seed::("Bob"), - get_account_id_from_seed::("Alice//stash"), - get_account_id_from_seed::("Bob//stash"), - ], - // 1002 avoids a potential collision with Kusama-1001 (Encointer) should there ever - // be a collective para on Kusama. - 1002.into(), - ) - }, - Vec::new(), - None, - None, - None, - Some(properties), + CollectivesWestendChainSpec::builder( + collectives_westend_runtime::WASM_BINARY + .expect("WASM binary was not built, please build it!"), Extensions { relay_chain: "westend-dev".into(), para_id: 1002 }, ) + .with_name("Westend Collectives Development") + .with_id("collectives_westend_dev") + .with_chain_type(ChainType::Local) + .with_genesis_config_patch(collectives_westend_genesis( + // initial collators. + vec![( + get_account_id_from_seed::("Alice"), + get_collator_keys_from_seed::("Alice"), + )], + vec![ + get_account_id_from_seed::("Alice"), + get_account_id_from_seed::("Bob"), + get_account_id_from_seed::("Alice//stash"), + get_account_id_from_seed::("Bob//stash"), + ], + // 1002 avoids a potential collision with Kusama-1001 (Encointer) should there ever + // be a collective para on Kusama. + 1002.into(), + )) + .with_boot_nodes(Vec::new()) + .with_properties(properties) + .build() } /// Collectives Westend Local Config. @@ -215,101 +211,83 @@ pub fn collectives_westend_local_config() -> CollectivesWestendChainSpec { properties.insert("tokenSymbol".into(), "WND".into()); properties.insert("tokenDecimals".into(), 12.into()); - CollectivesWestendChainSpec::from_genesis( - // Name - "Westend Collectives Local", - // ID - "collectives_westend_local", - ChainType::Local, - move || { - collectives_westend_genesis( - // initial collators. - vec![ - ( - get_account_id_from_seed::("Alice"), - get_collator_keys_from_seed::("Alice"), - ), - ( - get_account_id_from_seed::("Bob"), - get_collator_keys_from_seed::("Bob"), - ), - ], - vec![ - get_account_id_from_seed::("Alice"), - get_account_id_from_seed::("Bob"), - get_account_id_from_seed::("Charlie"), - get_account_id_from_seed::("Dave"), - get_account_id_from_seed::("Eve"), - get_account_id_from_seed::("Ferdie"), - get_account_id_from_seed::("Alice//stash"), - get_account_id_from_seed::("Bob//stash"), - get_account_id_from_seed::("Charlie//stash"), - get_account_id_from_seed::("Dave//stash"), - get_account_id_from_seed::("Eve//stash"), - get_account_id_from_seed::("Ferdie//stash"), - ], - 1002.into(), - ) - }, - Vec::new(), - None, - None, - None, - Some(properties), + CollectivesWestendChainSpec::builder( + collectives_westend_runtime::WASM_BINARY + .expect("WASM binary was not built, please build it!"), Extensions { relay_chain: "westend-local".into(), para_id: 1002 }, ) + .with_name("Westend Collectives Local") + .with_id("collectives_westend_local") + .with_chain_type(ChainType::Local) + .with_genesis_config_patch(collectives_westend_genesis( + // initial collators. + vec![ + ( + get_account_id_from_seed::("Alice"), + get_collator_keys_from_seed::("Alice"), + ), + ( + get_account_id_from_seed::("Bob"), + get_collator_keys_from_seed::("Bob"), + ), + ], + vec![ + get_account_id_from_seed::("Alice"), + get_account_id_from_seed::("Bob"), + get_account_id_from_seed::("Charlie"), + get_account_id_from_seed::("Dave"), + get_account_id_from_seed::("Eve"), + get_account_id_from_seed::("Ferdie"), + get_account_id_from_seed::("Alice//stash"), + get_account_id_from_seed::("Bob//stash"), + get_account_id_from_seed::("Charlie//stash"), + get_account_id_from_seed::("Dave//stash"), + get_account_id_from_seed::("Eve//stash"), + get_account_id_from_seed::("Ferdie//stash"), + ], + 1002.into(), + )) + .with_boot_nodes(Vec::new()) + .with_properties(properties) + .build() } fn collectives_westend_genesis( invulnerables: Vec<(AccountId, AuraId)>, endowed_accounts: Vec, id: ParaId, -) -> collectives_westend_runtime::RuntimeGenesisConfig { - collectives_westend_runtime::RuntimeGenesisConfig { - system: collectives_westend_runtime::SystemConfig { - code: collectives_westend_runtime::WASM_BINARY - .expect("WASM binary was not build, please build it!") - .to_vec(), - ..Default::default() - }, - balances: collectives_westend_runtime::BalancesConfig { - balances: endowed_accounts +) -> serde_json::Value { + serde_json::json!( { + "balances": { + "balances": endowed_accounts .iter() .cloned() .map(|k| (k, COLLECTIVES_WESTEND_ED * 4096)) - .collect(), + .collect::>(), }, - parachain_info: collectives_westend_runtime::ParachainInfoConfig { - parachain_id: id, - ..Default::default() + "parachainInfo": { + "parachainId": id, }, - collator_selection: collectives_westend_runtime::CollatorSelectionConfig { - invulnerables: invulnerables.iter().cloned().map(|(acc, _)| acc).collect(), - candidacy_bond: COLLECTIVES_WESTEND_ED * 16, - ..Default::default() + "collatorSelection": { + "invulnerables": invulnerables.iter().cloned().map(|(acc, _)| acc).collect::>(), + "candidacyBond": COLLECTIVES_WESTEND_ED * 16, }, - session: collectives_westend_runtime::SessionConfig { - keys: invulnerables + "session": { + "keys": invulnerables .into_iter() .map(|(acc, aura)| { ( - acc.clone(), // account id - acc, // validator id + acc.clone(), // account id + acc, // validator id collectives_westend_session_keys(aura), // session keys ) }) - .collect(), + .collect::>(), }, // no need to pass anything to aura, in fact it will panic if we do. Session will take care // of this. - aura: Default::default(), - aura_ext: Default::default(), - parachain_system: Default::default(), - polkadot_xcm: collectives_westend_runtime::PolkadotXcmConfig { - safe_xcm_version: Some(SAFE_XCM_VERSION), - ..Default::default() + "polkadotXcm": { + "safeXcmVersion": Some(SAFE_XCM_VERSION), }, - alliance: Default::default(), - alliance_motion: Default::default(), - } + }) } diff --git a/cumulus/polkadot-parachain/src/chain_spec/glutton.rs b/cumulus/polkadot-parachain/src/chain_spec/glutton.rs index 6eea955b8ed0..aff1358d1aec 100644 --- a/cumulus/polkadot-parachain/src/chain_spec/glutton.rs +++ b/cumulus/polkadot-parachain/src/chain_spec/glutton.rs @@ -95,104 +95,69 @@ fn glutton_genesis(parachain_id: ParaId, collators: Vec) -> serde_json:: } pub fn glutton_westend_development_config(para_id: ParaId) -> GluttonWestendChainSpec { - GluttonWestendChainSpec::from_genesis( - // Name - "Glutton Development", - // ID - "glutton_westend_dev", - ChainType::Local, - move || { - glutton_westend_genesis(para_id, vec![get_collator_keys_from_seed::("Alice")]) - }, - Vec::new(), - None, - None, - None, - None, + GluttonWestendChainSpec::builder( + glutton_westend_runtime::WASM_BINARY.expect("WASM binary was not built, please build it!"), Extensions { relay_chain: "westend-dev".into(), para_id: para_id.into() }, ) + .with_name("Glutton Development") + .with_id("glutton_westend_dev") + .with_chain_type(ChainType::Local) + .with_genesis_config_patch(glutton_genesis( + para_id, + vec![get_collator_keys_from_seed::("Alice")], + )) + .build() } pub fn glutton_westend_local_config(para_id: ParaId) -> GluttonWestendChainSpec { - GluttonWestendChainSpec::from_genesis( - // Name - "Glutton Westend Local", - // ID - "glutton_westend_local", - ChainType::Local, - move || { - glutton_westend_genesis( - para_id, - vec![ - get_collator_keys_from_seed::("Alice"), - get_collator_keys_from_seed::("Bob"), - ], - ) - }, - Vec::new(), - None, - None, - None, - None, + GluttonWestendChainSpec::builder( + glutton_westend_runtime::WASM_BINARY.expect("WASM binary was not built, please build it!"), Extensions { relay_chain: "westend-local".into(), para_id: para_id.into() }, ) + .with_name("Glutton Local") + .with_id("glutton_westend_local") + .with_chain_type(ChainType::Local) + .with_genesis_config_patch(glutton_genesis( + para_id, + vec![ + get_collator_keys_from_seed::("Alice"), + get_collator_keys_from_seed::("Bob"), + ], + )) + .build() } pub fn glutton_westend_config(para_id: ParaId) -> GluttonWestendChainSpec { let mut properties = sc_chain_spec::Properties::new(); properties.insert("ss58Format".into(), 42.into()); - GluttonWestendChainSpec::from_genesis( - // Name - format!("Glutton Westend {}", para_id).as_str(), - // ID - format!("glutton-westend-{}", para_id).as_str(), - ChainType::Live, - move || { - glutton_westend_genesis( - para_id, - vec![ - get_collator_keys_from_seed::("Alice"), - get_collator_keys_from_seed::("Bob"), - ], - ) - }, - Vec::new(), - None, - // Protocol ID - Some(format!("glutton-westend-{}", para_id).as_str()), - None, - Some(properties), + GluttonChainSpec::builder( + glutton_westend_runtime::WASM_BINARY.expect("WASM binary was not built, please build it!"), Extensions { relay_chain: "westend".into(), para_id: para_id.into() }, ) + .with_name(format!("Glutton {}", para_id).as_str()) + .with_id(format!("glutton-westend-{}", para_id).as_str()) + .with_chain_type(ChainType::Live) + .with_genesis_config_patch(glutton_westend_genesis( + para_id, + vec![ + get_collator_keys_from_seed::("Alice"), + get_collator_keys_from_seed::("Bob"), + ], + )) + .with_protocol_id(format!("glutton-westend-{}", para_id).as_str()) + .with_properties(properties) + .build() } -fn glutton_westend_genesis( - parachain_id: ParaId, - collators: Vec, -) -> glutton_westend_runtime::RuntimeGenesisConfig { - glutton_westend_runtime::RuntimeGenesisConfig { - system: glutton_westend_runtime::SystemConfig { - code: glutton_westend_runtime::WASM_BINARY - .expect("WASM binary was not build, please build it!") - .to_vec(), - ..Default::default() - }, - parachain_info: glutton_westend_runtime::ParachainInfoConfig { - parachain_id, - ..Default::default() - }, - parachain_system: Default::default(), - glutton: glutton_westend_runtime::GluttonConfig { - compute: Default::default(), - storage: Default::default(), - trash_data_count: Default::default(), - ..Default::default() +fn glutton_westend_genesis(parachain_id: ParaId, collators: Vec) -> serde_json::Value { + serde_json::json!( { + "parachainInfo": { + "parachainId": parachain_id }, - aura: glutton_westend_runtime::AuraConfig { authorities: collators }, - aura_ext: Default::default(), - sudo: glutton_westend_runtime::SudoConfig { - key: Some(get_account_id_from_seed::("Alice")), + "sudo": { + "key": Some(get_account_id_from_seed::("Alice")), }, - } + "aura": { "authorities": collators }, + }) } From 50b84d45fea874aec27c94ab5117ae36c7b498bb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?D=C3=B3nal=20Murray?= Date: Mon, 6 Nov 2023 10:04:28 +0000 Subject: [PATCH 56/78] Runtime crates must be published Until runtime code is disentangled from polkadot-parachain-bin --- .../runtimes/collectives/collectives-westend/Cargo.toml | 2 +- cumulus/parachains/runtimes/glutton/glutton-westend/Cargo.toml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/cumulus/parachains/runtimes/collectives/collectives-westend/Cargo.toml b/cumulus/parachains/runtimes/collectives/collectives-westend/Cargo.toml index 89dc27ca85f1..985b929d6678 100644 --- a/cumulus/parachains/runtimes/collectives/collectives-westend/Cargo.toml +++ b/cumulus/parachains/runtimes/collectives/collectives-westend/Cargo.toml @@ -5,7 +5,7 @@ authors.workspace = true edition.workspace = true license = "Apache-2.0" description = "Westend Collectives Parachain Runtime" -publish = false + [dependencies] codec = { package = "parity-scale-codec", version = "3.0.0", default-features = false, features = ["derive", "max-encoded-len"] } hex-literal = { version = "0.4.1" } diff --git a/cumulus/parachains/runtimes/glutton/glutton-westend/Cargo.toml b/cumulus/parachains/runtimes/glutton/glutton-westend/Cargo.toml index d428dc5b1218..553a70d2c8b0 100644 --- a/cumulus/parachains/runtimes/glutton/glutton-westend/Cargo.toml +++ b/cumulus/parachains/runtimes/glutton/glutton-westend/Cargo.toml @@ -5,7 +5,7 @@ authors.workspace = true edition.workspace = true license = "Apache-2.0" description = "Glutton parachain runtime." -publish = false + [dependencies] codec = { package = "parity-scale-codec", version = "3.0.0", default-features = false, features = ["derive"] } scale-info = { version = "2.10.0", default-features = false, features = ["derive"] } From af9a1a8f0566780bbe81621672d3b1be3ff3101c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?D=C3=B3nal=20Murray?= Date: Mon, 6 Nov 2023 10:48:52 +0000 Subject: [PATCH 57/78] Apply zepter formatting --- cumulus/polkadot-parachain/Cargo.toml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/cumulus/polkadot-parachain/Cargo.toml b/cumulus/polkadot-parachain/Cargo.toml index e02d44ecec66..e3486d9ffe5b 100644 --- a/cumulus/polkadot-parachain/Cargo.toml +++ b/cumulus/polkadot-parachain/Cargo.toml @@ -126,8 +126,8 @@ runtime-benchmarks = [ "cumulus-primitives-core/runtime-benchmarks", "frame-benchmarking-cli/runtime-benchmarks", "frame-benchmarking/runtime-benchmarks", - "glutton-westend-runtime/runtime-benchmarks", "glutton-runtime/runtime-benchmarks", + "glutton-westend-runtime/runtime-benchmarks", "parachains-common/runtime-benchmarks", "penpal-runtime/runtime-benchmarks", "polkadot-cli/runtime-benchmarks", @@ -149,8 +149,8 @@ try-runtime = [ "collectives-polkadot-runtime/try-runtime", "collectives-westend-runtime/try-runtime", "contracts-rococo-runtime/try-runtime", - "glutton-westend-runtime/try-runtime", "glutton-runtime/try-runtime", + "glutton-westend-runtime/try-runtime", "penpal-runtime/try-runtime", "polkadot-cli/try-runtime", "polkadot-service/try-runtime", From 5bce21273cf7025ddb51d5da2d9e044b5961bb31 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?D=C3=B3nal=20Murray?= Date: Mon, 6 Nov 2023 10:56:41 +0000 Subject: [PATCH 58/78] Propagate feature with zepter --- cumulus/parachains/runtimes/glutton/glutton-westend/Cargo.toml | 1 + 1 file changed, 1 insertion(+) diff --git a/cumulus/parachains/runtimes/glutton/glutton-westend/Cargo.toml b/cumulus/parachains/runtimes/glutton/glutton-westend/Cargo.toml index 553a70d2c8b0..a30cdf357694 100644 --- a/cumulus/parachains/runtimes/glutton/glutton-westend/Cargo.toml +++ b/cumulus/parachains/runtimes/glutton/glutton-westend/Cargo.toml @@ -95,6 +95,7 @@ std = [ "pallet-timestamp/std", "parachain-info/std", "parachains-common/std", + "scale-info/std", "sp-api/std", "sp-block-builder/std", "sp-consensus-aura/std", From 1ee82b1aede1be1f7de061e9ed8237ab4b1a0a74 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?D=C3=B3nal=20Murray?= Date: Mon, 6 Nov 2023 14:57:43 +0000 Subject: [PATCH 59/78] Fix glutton-westend weights --- cumulus/parachains/runtimes/glutton/glutton-westend/src/lib.rs | 3 +++ 1 file changed, 3 insertions(+) diff --git a/cumulus/parachains/runtimes/glutton/glutton-westend/src/lib.rs b/cumulus/parachains/runtimes/glutton/glutton-westend/src/lib.rs index baed3bc8118a..60107281c22f 100644 --- a/cumulus/parachains/runtimes/glutton/glutton-westend/src/lib.rs +++ b/cumulus/parachains/runtimes/glutton/glutton-westend/src/lib.rs @@ -353,8 +353,11 @@ extern crate frame_benchmarking; #[cfg(feature = "runtime-benchmarks")] mod benches { define_benchmarks!( + [cumulus_pallet_parachain_system, ParachainSystem] [frame_system, SystemBench::] [pallet_glutton, Glutton] + [pallet_message_queue, MessageQueue] + [pallet_timestamp, Timestamp] ); } From 6489a9a1afeadd8c2401fa421dfc36f390495291 Mon Sep 17 00:00:00 2001 From: command-bot <> Date: Tue, 7 Nov 2023 14:14:23 +0000 Subject: [PATCH 60/78] ".git/.scripts/commands/bench/bench.sh" --subcommand=pallet --runtime=glutton-westend-dev-1300 --runtime_dir=glutton --target_dir=cumulus --pallet=pallet_glutton --- .../src/weights/pallet_glutton.rs | 103 +++++++++--------- 1 file changed, 51 insertions(+), 52 deletions(-) diff --git a/cumulus/parachains/runtimes/glutton/glutton-westend/src/weights/pallet_glutton.rs b/cumulus/parachains/runtimes/glutton/glutton-westend/src/weights/pallet_glutton.rs index e1b0c5bf232e..9345458a704a 100644 --- a/cumulus/parachains/runtimes/glutton/glutton-westend/src/weights/pallet_glutton.rs +++ b/cumulus/parachains/runtimes/glutton/glutton-westend/src/weights/pallet_glutton.rs @@ -1,42 +1,41 @@ // Copyright (C) Parity Technologies (UK) Ltd. -// SPDX-License-Identifier: Apache-2.0 +// This file is part of Cumulus. -// 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. +// Cumulus 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. + +// Cumulus 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 Cumulus. If not, see . //! Autogenerated weights for `pallet_glutton` //! //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev -//! DATE: 2023-07-31, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! DATE: 2023-11-07, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` //! WORST CASE MAP SIZE: `1000000` -//! HOSTNAME: `runner-ynta1nyy-project-238-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz` -//! EXECUTION: ``, WASM-EXECUTION: `Compiled`, CHAIN: `Some("glutton-kusama-dev-1300")`, DB CACHE: 1024 +//! HOSTNAME: `runner-yprdrvc7-project-674-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz` +//! WASM-EXECUTION: `Compiled`, CHAIN: `Some("glutton-westend-dev-1300")`, DB CACHE: 1024 // Executed Command: -// ./target/production/polkadot-parachain +// target/production/polkadot-parachain // benchmark // pallet -// --chain=glutton-kusama-dev-1300 -// --wasm-execution=compiled -// --pallet=pallet_glutton -// --no-storage-info -// --no-median-slopes -// --no-min-squares -// --extrinsic=* // --steps=50 // --repeat=20 -// --json -// --header=./file_header.txt -// --output=./parachains/runtimes/glutton/glutton-kusama/src/weights/ +// --extrinsic=* +// --wasm-execution=compiled +// --heap-pages=4096 +// --json-file=/builds/parity/mirrors/polkadot-sdk/.git/.artifacts/bench.json +// --pallet=pallet_glutton +// --chain=glutton-westend-dev-1300 +// --header=./cumulus/file_header.txt +// --output=./cumulus/parachains/runtimes/glutton/glutton-westend/src/weights/ #![cfg_attr(rustfmt, rustfmt_skip)] #![allow(unused_parens)] @@ -58,11 +57,11 @@ impl pallet_glutton::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `87` // Estimated: `1489` - // Minimum execution time: 8_925_000 picoseconds. - Weight::from_parts(9_186_000, 0) + // Minimum execution time: 6_453_000 picoseconds. + Weight::from_parts(6_629_000, 0) .saturating_add(Weight::from_parts(0, 1489)) - // Standard Error: 3_091 - .saturating_add(Weight::from_parts(9_666_196, 0).saturating_mul(n.into())) + // Standard Error: 3_416 + .saturating_add(Weight::from_parts(9_938_610, 0).saturating_mul(n.into())) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(1)) .saturating_add(T::DbWeight::get().writes((1_u64).saturating_mul(n.into()))) @@ -76,11 +75,11 @@ impl pallet_glutton::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `120` // Estimated: `1489` - // Minimum execution time: 8_924_000 picoseconds. - Weight::from_parts(8_963_000, 0) + // Minimum execution time: 6_456_000 picoseconds. + Weight::from_parts(6_564_000, 0) .saturating_add(Weight::from_parts(0, 1489)) - // Standard Error: 1_202 - .saturating_add(Weight::from_parts(1_139_080, 0).saturating_mul(n.into())) + // Standard Error: 1_336 + .saturating_add(Weight::from_parts(1_141_705, 0).saturating_mul(n.into())) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(1)) .saturating_add(T::DbWeight::get().writes((1_u64).saturating_mul(n.into()))) @@ -90,11 +89,11 @@ impl pallet_glutton::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 708_000 picoseconds. - Weight::from_parts(1_698_031, 0) + // Minimum execution time: 679_000 picoseconds. + Weight::from_parts(3_310_101, 0) .saturating_add(Weight::from_parts(0, 0)) - // Standard Error: 12 - .saturating_add(Weight::from_parts(106_500, 0).saturating_mul(i.into())) + // Standard Error: 10 + .saturating_add(Weight::from_parts(103_703, 0).saturating_mul(i.into())) } /// Storage: `Glutton::TrashData` (r:5000 w:0) /// Proof: `Glutton::TrashData` (`max_values`: Some(65000), `max_size`: Some(1036), added: 3016, mode: `MaxEncodedLen`) @@ -103,11 +102,11 @@ impl pallet_glutton::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `119115 + i * (1022 ±0)` // Estimated: `990 + i * (3016 ±0)` - // Minimum execution time: 698_000 picoseconds. - Weight::from_parts(970_000, 0) + // Minimum execution time: 765_000 picoseconds. + Weight::from_parts(1_004_000, 0) .saturating_add(Weight::from_parts(0, 990)) - // Standard Error: 4_022 - .saturating_add(Weight::from_parts(6_320_519, 0).saturating_mul(i.into())) + // Standard Error: 4_008 + .saturating_add(Weight::from_parts(6_130_770, 0).saturating_mul(i.into())) .saturating_add(T::DbWeight::get().reads((1_u64).saturating_mul(i.into()))) .saturating_add(Weight::from_parts(0, 3016).saturating_mul(i.into())) } @@ -121,8 +120,8 @@ impl pallet_glutton::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `1900498` // Estimated: `5239782` - // Minimum execution time: 100_079_897_000 picoseconds. - Weight::from_parts(100_515_306_000, 0) + // Minimum execution time: 97_248_614_000 picoseconds. + Weight::from_parts(97_728_420_000, 0) .saturating_add(Weight::from_parts(0, 5239782)) .saturating_add(T::DbWeight::get().reads(1739)) } @@ -136,8 +135,8 @@ impl pallet_glutton::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `9548` // Estimated: `16070` - // Minimum execution time: 100_237_009_000 picoseconds. - Weight::from_parts(100_472_213_000, 0) + // Minimum execution time: 97_305_112_000 picoseconds. + Weight::from_parts(97_427_728_000, 0) .saturating_add(Weight::from_parts(0, 16070)) .saturating_add(T::DbWeight::get().reads(7)) } @@ -149,8 +148,8 @@ impl pallet_glutton::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `87` // Estimated: `1493` - // Minimum execution time: 5_120_000 picoseconds. - Weight::from_parts(5_262_000, 0) + // Minimum execution time: 4_125_000 picoseconds. + Weight::from_parts(4_339_000, 0) .saturating_add(Weight::from_parts(0, 1493)) .saturating_add(T::DbWeight::get().reads(2)) } @@ -160,8 +159,8 @@ impl pallet_glutton::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 5_947_000 picoseconds. - Weight::from_parts(6_171_000, 0) + // Minimum execution time: 3_879_000 picoseconds. + Weight::from_parts(4_211_000, 0) .saturating_add(Weight::from_parts(0, 0)) .saturating_add(T::DbWeight::get().writes(1)) } @@ -171,8 +170,8 @@ impl pallet_glutton::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 5_964_000 picoseconds. - Weight::from_parts(6_166_000, 0) + // Minimum execution time: 3_920_000 picoseconds. + Weight::from_parts(4_081_000, 0) .saturating_add(Weight::from_parts(0, 0)) .saturating_add(T::DbWeight::get().writes(1)) } From 1252fdac9885bbfc4cb16f245e123183a40d34ad Mon Sep 17 00:00:00 2001 From: command-bot <> Date: Tue, 7 Nov 2023 15:38:36 +0000 Subject: [PATCH 61/78] ".git/.scripts/commands/bench/bench.sh" --subcommand=pallet --runtime=glutton-westend-dev-1300 --runtime_dir=glutton --target_dir=cumulus --pallet=pallet_timestamp --- .../src/weights/pallet_timestamp.rs | 36 +++++++++---------- 1 file changed, 17 insertions(+), 19 deletions(-) diff --git a/cumulus/parachains/runtimes/glutton/glutton-westend/src/weights/pallet_timestamp.rs b/cumulus/parachains/runtimes/glutton/glutton-westend/src/weights/pallet_timestamp.rs index 8edae065f1b9..4218dcc73f4e 100644 --- a/cumulus/parachains/runtimes/glutton/glutton-westend/src/weights/pallet_timestamp.rs +++ b/cumulus/parachains/runtimes/glutton/glutton-westend/src/weights/pallet_timestamp.rs @@ -1,4 +1,4 @@ -// Copyright Parity Technologies (UK) Ltd. +// Copyright (C) Parity Technologies (UK) Ltd. // This file is part of Cumulus. // Cumulus is free software: you can redistribute it and/or modify @@ -17,27 +17,25 @@ //! Autogenerated weights for `pallet_timestamp` //! //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev -//! DATE: 2023-07-31, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! DATE: 2023-11-07, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` //! WORST CASE MAP SIZE: `1000000` -//! HOSTNAME: `runner-ynta1nyy-project-238-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz` -//! EXECUTION: ``, WASM-EXECUTION: `Compiled`, CHAIN: `Some("asset-hub-kusama-dev")`, DB CACHE: 1024 +//! HOSTNAME: `runner-yprdrvc7-project-674-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz` +//! WASM-EXECUTION: `Compiled`, CHAIN: `Some("glutton-westend-dev-1300")`, DB CACHE: 1024 // Executed Command: -// ./target/production/polkadot-parachain +// target/production/polkadot-parachain // benchmark // pallet -// --chain=asset-hub-kusama-dev -// --wasm-execution=compiled -// --pallet=pallet_timestamp -// --no-storage-info -// --no-median-slopes -// --no-min-squares -// --extrinsic=* // --steps=50 // --repeat=20 -// --json -// --header=./file_header.txt -// --output=./parachains/runtimes/assets/asset-hub-kusama/src/weights/ +// --extrinsic=* +// --wasm-execution=compiled +// --heap-pages=4096 +// --json-file=/builds/parity/mirrors/polkadot-sdk/.git/.artifacts/bench.json +// --pallet=pallet_timestamp +// --chain=glutton-westend-dev-1300 +// --header=./cumulus/file_header.txt +// --output=./cumulus/parachains/runtimes/glutton/glutton-westend/src/weights/ #![cfg_attr(rustfmt, rustfmt_skip)] #![allow(unused_parens)] @@ -58,8 +56,8 @@ impl pallet_timestamp::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `86` // Estimated: `1493` - // Minimum execution time: 9_313_000 picoseconds. - Weight::from_parts(9_775_000, 0) + // Minimum execution time: 6_306_000 picoseconds. + Weight::from_parts(6_592_000, 0) .saturating_add(Weight::from_parts(0, 1493)) .saturating_add(T::DbWeight::get().reads(2)) .saturating_add(T::DbWeight::get().writes(1)) @@ -68,8 +66,8 @@ impl pallet_timestamp::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `57` // Estimated: `0` - // Minimum execution time: 3_322_000 picoseconds. - Weight::from_parts(3_577_000, 0) + // Minimum execution time: 2_900_000 picoseconds. + Weight::from_parts(3_030_000, 0) .saturating_add(Weight::from_parts(0, 0)) } } From d652e42bc89f1db720e84a5646fb8c916473db05 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?D=C3=B3nal=20Murray?= Date: Tue, 7 Nov 2023 15:58:55 +0000 Subject: [PATCH 62/78] Update other weights for glutton-westend --- .../cumulus_pallet_parachain_system.rs | 99 +++++---- .../src/weights/frame_system.rs | 107 +++++----- .../src/weights/pallet_message_queue.rs | 188 +++++++++--------- 3 files changed, 194 insertions(+), 200 deletions(-) diff --git a/cumulus/parachains/runtimes/glutton/glutton-westend/src/weights/cumulus_pallet_parachain_system.rs b/cumulus/parachains/runtimes/glutton/glutton-westend/src/weights/cumulus_pallet_parachain_system.rs index f787aa327011..bc8299ab1bd6 100644 --- a/cumulus/parachains/runtimes/glutton/glutton-westend/src/weights/cumulus_pallet_parachain_system.rs +++ b/cumulus/parachains/runtimes/glutton/glutton-westend/src/weights/cumulus_pallet_parachain_system.rs @@ -1,80 +1,75 @@ // Copyright (C) Parity Technologies (UK) Ltd. -// SPDX-License-Identifier: Apache-2.0 +// This file is part of Cumulus. -// 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. +// Cumulus 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. + +// Cumulus 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 Cumulus. If not, see . //! Autogenerated weights for `cumulus_pallet_parachain_system` //! //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev -//! DATE: 2023-03-28, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! DATE: 2023-11-07, 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: Some(Wasm), WASM-EXECUTION: Compiled, CHAIN: Some("statemint-dev"), DB CACHE: 1024 +//! HOSTNAME: `runner-yprdrvc7-project-674-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz` +//! WASM-EXECUTION: `Compiled`, CHAIN: `Some("glutton-westend-dev-1300")`, DB CACHE: 1024 // Executed Command: -// ./target/release/polkadot-parachain +// target/production/polkadot-parachain // benchmark // pallet -// --chain -// statemint-dev -// --pallet -// cumulus_pallet_parachain_system -// --extrinsic -// * -// --execution -// wasm -// --wasm-execution -// compiled -// --output -// parachains/runtimes/assets/statemint/src/weights -// --steps -// 50 -// --repeat -// 20 +// --steps=50 +// --repeat=20 +// --extrinsic=* +// --wasm-execution=compiled +// --heap-pages=4096 +// --json-file=/builds/parity/mirrors/polkadot-sdk/.git/.artifacts/bench.json +// --pallet=cumulus_pallet_parachain_system +// --chain=glutton-westend-dev-1300 +// --header=./cumulus/file_header.txt +// --output=./cumulus/parachains/runtimes/glutton/glutton-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 `cumulus_pallet_parachain_system`. pub struct WeightInfo(PhantomData); impl cumulus_pallet_parachain_system::WeightInfo for WeightInfo { - /// Storage: ParachainSystem LastDmqMqcHead (r:1 w:1) - /// Proof Skipped: ParachainSystem LastDmqMqcHead (max_values: Some(1), max_size: None, mode: Measured) - /// Storage: ParachainSystem ReservedDmpWeightOverride (r:1 w:0) - /// Proof Skipped: ParachainSystem ReservedDmpWeightOverride (max_values: Some(1), max_size: None, mode: Measured) - /// Storage: MessageQueue BookStateFor (r:1 w:1) - /// Proof: MessageQueue BookStateFor (max_values: None, max_size: Some(52), added: 2527, mode: MaxEncodedLen) - /// Storage: MessageQueue ServiceHead (r:1 w:1) - /// Proof: MessageQueue ServiceHead (max_values: Some(1), max_size: Some(5), added: 500, mode: MaxEncodedLen) - /// Storage: ParachainSystem ProcessedDownwardMessages (r:0 w:1) - /// Proof Skipped: ParachainSystem ProcessedDownwardMessages (max_values: Some(1), max_size: None, mode: Measured) - /// Storage: MessageQueue Pages (r:0 w:16) - /// Proof: MessageQueue Pages (max_values: None, max_size: Some(65585), added: 68060, mode: MaxEncodedLen) + /// Storage: `ParachainSystem::LastDmqMqcHead` (r:1 w:1) + /// Proof: `ParachainSystem::LastDmqMqcHead` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `MessageQueue::BookStateFor` (r:1 w:1) + /// Proof: `MessageQueue::BookStateFor` (`max_values`: None, `max_size`: Some(52), added: 2527, mode: `MaxEncodedLen`) + /// Storage: `MessageQueue::ServiceHead` (r:1 w:1) + /// Proof: `MessageQueue::ServiceHead` (`max_values`: Some(1), `max_size`: Some(5), added: 500, mode: `MaxEncodedLen`) + /// Storage: `ParachainSystem::ProcessedDownwardMessages` (r:0 w:1) + /// Proof: `ParachainSystem::ProcessedDownwardMessages` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `MessageQueue::Pages` (r:0 w:1000) + /// Proof: `MessageQueue::Pages` (`max_values`: None, `max_size`: Some(65585), added: 68060, mode: `MaxEncodedLen`) /// The range of component `n` is `[0, 1000]`. fn enqueue_inbound_downward_messages(n: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `12` - // Estimated: `8013` - // Minimum execution time: 1_660_000 picoseconds. - Weight::from_parts(1_720_000, 0) - .saturating_add(Weight::from_parts(0, 8013)) - // Standard Error: 28_418 - .saturating_add(Weight::from_parts(24_636_963, 0).saturating_mul(n.into())) - .saturating_add(T::DbWeight::get().reads(4)) + // Estimated: `3517` + // Minimum execution time: 1_745_000 picoseconds. + Weight::from_parts(1_859_000, 0) + .saturating_add(Weight::from_parts(0, 3517)) + // Standard Error: 53_384 + .saturating_add(Weight::from_parts(196_309_089, 0).saturating_mul(n.into())) + .saturating_add(T::DbWeight::get().reads(3)) .saturating_add(T::DbWeight::get().writes(4)) + .saturating_add(T::DbWeight::get().writes((1_u64).saturating_mul(n.into()))) } } diff --git a/cumulus/parachains/runtimes/glutton/glutton-westend/src/weights/frame_system.rs b/cumulus/parachains/runtimes/glutton/glutton-westend/src/weights/frame_system.rs index cf7ef948fd63..6f8cf4f39dfd 100644 --- a/cumulus/parachains/runtimes/glutton/glutton-westend/src/weights/frame_system.rs +++ b/cumulus/parachains/runtimes/glutton/glutton-westend/src/weights/frame_system.rs @@ -1,42 +1,41 @@ // Copyright (C) Parity Technologies (UK) Ltd. -// SPDX-License-Identifier: Apache-2.0 +// This file is part of Cumulus. -// 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. +// Cumulus 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. + +// Cumulus 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 Cumulus. If not, see . //! Autogenerated weights for `frame_system` //! //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev -//! DATE: 2023-07-31, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! DATE: 2023-11-07, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` //! WORST CASE MAP SIZE: `1000000` -//! HOSTNAME: `runner-ynta1nyy-project-238-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz` -//! EXECUTION: ``, WASM-EXECUTION: `Compiled`, CHAIN: `Some("glutton-kusama-dev-1300")`, DB CACHE: 1024 +//! HOSTNAME: `runner-yprdrvc7-project-674-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz` +//! WASM-EXECUTION: `Compiled`, CHAIN: `Some("glutton-westend-dev-1300")`, DB CACHE: 1024 // Executed Command: -// ./target/production/polkadot-parachain +// target/production/polkadot-parachain // benchmark // pallet -// --chain=glutton-kusama-dev-1300 -// --wasm-execution=compiled -// --pallet=frame_system -// --no-storage-info -// --no-median-slopes -// --no-min-squares -// --extrinsic=* // --steps=50 // --repeat=20 -// --json -// --header=./file_header.txt -// --output=./parachains/runtimes/glutton/glutton-kusama/src/weights/ +// --extrinsic=* +// --wasm-execution=compiled +// --heap-pages=4096 +// --json-file=/builds/parity/mirrors/polkadot-sdk/.git/.artifacts/bench.json +// --pallet=frame_system +// --chain=glutton-westend-dev-1300 +// --header=./cumulus/file_header.txt +// --output=./cumulus/parachains/runtimes/glutton/glutton-westend/src/weights/ #![cfg_attr(rustfmt, rustfmt_skip)] #![allow(unused_parens)] @@ -54,8 +53,8 @@ impl frame_system::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 1_717_000 picoseconds. - Weight::from_parts(1_782_325, 0) + // Minimum execution time: 1_570_000 picoseconds. + Weight::from_parts(1_626_000, 0) .saturating_add(Weight::from_parts(0, 0)) // Standard Error: 0 .saturating_add(Weight::from_parts(387, 0).saturating_mul(b.into())) @@ -65,11 +64,11 @@ impl frame_system::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 6_089_000 picoseconds. - Weight::from_parts(6_353_000, 0) + // Minimum execution time: 4_200_000 picoseconds. + Weight::from_parts(4_262_000, 0) .saturating_add(Weight::from_parts(0, 0)) - // Standard Error: 2 - .saturating_add(Weight::from_parts(1_788, 0).saturating_mul(b.into())) + // Standard Error: 4 + .saturating_add(Weight::from_parts(1_791, 0).saturating_mul(b.into())) } /// Storage: `System::Digest` (r:1 w:1) /// Proof: `System::Digest` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) @@ -79,8 +78,8 @@ impl frame_system::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `0` // Estimated: `1485` - // Minimum execution time: 3_389_000 picoseconds. - Weight::from_parts(3_605_000, 0) + // Minimum execution time: 2_680_000 picoseconds. + Weight::from_parts(2_936_000, 0) .saturating_add(Weight::from_parts(0, 1485)) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(2)) @@ -99,11 +98,11 @@ impl frame_system::WeightInfo for WeightInfo { /// Proof: `ParachainSystem::DidSetValidationCode` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) fn set_code() -> Weight { // Proof Size summary in bytes: - // Measured: `119` - // Estimated: `1604` - // Minimum execution time: 97_701_839_000 picoseconds. - Weight::from_parts(100_104_315_000, 0) - .saturating_add(Weight::from_parts(0, 1604)) + // Measured: `127` + // Estimated: `1612` + // Minimum execution time: 119_097_302_000 picoseconds. + Weight::from_parts(120_914_576_000, 0) + .saturating_add(Weight::from_parts(0, 1612)) .saturating_add(T::DbWeight::get().reads(4)) .saturating_add(T::DbWeight::get().writes(3)) } @@ -114,11 +113,11 @@ impl frame_system::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 1_638_000 picoseconds. - Weight::from_parts(1_726_000, 0) + // Minimum execution time: 1_606_000 picoseconds. + Weight::from_parts(1_704_000, 0) .saturating_add(Weight::from_parts(0, 0)) - // Standard Error: 1_886 - .saturating_add(Weight::from_parts(809_561, 0).saturating_mul(i.into())) + // Standard Error: 2_090 + .saturating_add(Weight::from_parts(765_829, 0).saturating_mul(i.into())) .saturating_add(T::DbWeight::get().writes((1_u64).saturating_mul(i.into()))) } /// Storage: `Skipped::Metadata` (r:0 w:0) @@ -128,11 +127,11 @@ impl frame_system::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 1_569_000 picoseconds. - Weight::from_parts(1_690_000, 0) + // Minimum execution time: 1_646_000 picoseconds. + Weight::from_parts(1_719_000, 0) .saturating_add(Weight::from_parts(0, 0)) - // Standard Error: 963 - .saturating_add(Weight::from_parts(580_145, 0).saturating_mul(i.into())) + // Standard Error: 1_067 + .saturating_add(Weight::from_parts(578_598, 0).saturating_mul(i.into())) .saturating_add(T::DbWeight::get().writes((1_u64).saturating_mul(i.into()))) } /// Storage: `Skipped::Metadata` (r:0 w:0) @@ -140,13 +139,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: `52 + p * (69 ±0)` - // Estimated: `46 + p * (70 ±0)` - // Minimum execution time: 3_039_000 picoseconds. - Weight::from_parts(3_090_000, 0) - .saturating_add(Weight::from_parts(0, 46)) - // Standard Error: 2_007 - .saturating_add(Weight::from_parts(1_269_045, 0).saturating_mul(p.into())) + // Measured: `58 + p * (69 ±0)` + // Estimated: `53 + p * (70 ±0)` + // Minimum execution time: 2_933_000 picoseconds. + Weight::from_parts(3_069_000, 0) + .saturating_add(Weight::from_parts(0, 53)) + // Standard Error: 1_844 + .saturating_add(Weight::from_parts(1_214_377, 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/cumulus/parachains/runtimes/glutton/glutton-westend/src/weights/pallet_message_queue.rs b/cumulus/parachains/runtimes/glutton/glutton-westend/src/weights/pallet_message_queue.rs index a9f0cb07cfe1..eab6c15a40d2 100644 --- a/cumulus/parachains/runtimes/glutton/glutton-westend/src/weights/pallet_message_queue.rs +++ b/cumulus/parachains/runtimes/glutton/glutton-westend/src/weights/pallet_message_queue.rs @@ -1,113 +1,113 @@ // Copyright (C) Parity Technologies (UK) Ltd. -// SPDX-License-Identifier: Apache-2.0 +// This file is part of Cumulus. -// 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. +// Cumulus 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. + +// Cumulus 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 Cumulus. 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-03-24, STEPS: `2`, REPEAT: `1`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! DATE: 2023-11-07, 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: Some(Wasm), WASM-EXECUTION: Compiled, CHAIN: Some("westmint-dev"), DB CACHE: 1024 +//! HOSTNAME: `runner-yprdrvc7-project-674-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz` +//! WASM-EXECUTION: `Compiled`, CHAIN: `Some("glutton-westend-dev-1300")`, DB CACHE: 1024 // Executed Command: -// ./target/release/polkadot-parachain +// target/production/polkadot-parachain // benchmark // pallet -// --chain -// westmint-dev -// --pallet -// pallet_message_queue -// --extrinsic -// * -// --execution -// wasm -// --wasm-execution -// compiled -// --output -// parachains/runtimes/assets/westmint/src/weights +// --steps=50 +// --repeat=20 +// --extrinsic=* +// --wasm-execution=compiled +// --heap-pages=4096 +// --json-file=/builds/parity/mirrors/polkadot-sdk/.git/.artifacts/bench.json +// --pallet=pallet_message_queue +// --chain=glutton-westend-dev-1300 +// --header=./cumulus/file_header.txt +// --output=./cumulus/parachains/runtimes/glutton/glutton-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) - /// Storage: MessageQueue BookStateFor (r:2 w:2) - /// Proof: MessageQueue BookStateFor (max_values: None, max_size: Some(52), added: 2527, mode: MaxEncodedLen) + /// Storage: `MessageQueue::ServiceHead` (r:1 w:0) + /// Proof: `MessageQueue::ServiceHead` (`max_values`: Some(1), `max_size`: Some(5), added: 500, mode: `MaxEncodedLen`) + /// Storage: `MessageQueue::BookStateFor` (r:2 w:2) + /// Proof: `MessageQueue::BookStateFor` (`max_values`: None, `max_size`: Some(52), added: 2527, mode: `MaxEncodedLen`) fn ready_ring_knit() -> Weight { // Proof Size summary in bytes: - // Measured: `189` - // Estimated: `7534` - // Minimum execution time: 12_192_000 picoseconds. - Weight::from_parts(12_192_000, 0) - .saturating_add(Weight::from_parts(0, 7534)) + // Measured: `223` + // Estimated: `6044` + // Minimum execution time: 10_833_000 picoseconds. + Weight::from_parts(11_237_000, 0) + .saturating_add(Weight::from_parts(0, 6044)) .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) - /// Storage: MessageQueue ServiceHead (r:1 w:1) - /// Proof: MessageQueue ServiceHead (max_values: Some(1), max_size: Some(5), added: 500, mode: MaxEncodedLen) + /// Storage: `MessageQueue::BookStateFor` (r:2 w:2) + /// Proof: `MessageQueue::BookStateFor` (`max_values`: None, `max_size`: Some(52), added: 2527, mode: `MaxEncodedLen`) + /// Storage: `MessageQueue::ServiceHead` (r:1 w:1) + /// Proof: `MessageQueue::ServiceHead` (`max_values`: Some(1), `max_size`: Some(5), added: 500, mode: `MaxEncodedLen`) fn ready_ring_unknit() -> Weight { // Proof Size summary in bytes: - // Measured: `184` - // Estimated: `7534` - // Minimum execution time: 10_447_000 picoseconds. - Weight::from_parts(10_447_000, 0) - .saturating_add(Weight::from_parts(0, 7534)) + // Measured: `218` + // Estimated: `6044` + // Minimum execution time: 9_399_000 picoseconds. + Weight::from_parts(9_773_000, 0) + .saturating_add(Weight::from_parts(0, 6044)) .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) + /// Storage: `MessageQueue::BookStateFor` (r:1 w:1) + /// Proof: `MessageQueue::BookStateFor` (`max_values`: None, `max_size`: Some(52), added: 2527, mode: `MaxEncodedLen`) fn service_queue_base() -> Weight { // Proof Size summary in bytes: // Measured: `6` // Estimated: `3517` - // Minimum execution time: 4_851_000 picoseconds. - Weight::from_parts(4_851_000, 0) + // Minimum execution time: 3_277_000 picoseconds. + Weight::from_parts(3_358_000, 0) .saturating_add(Weight::from_parts(0, 3517)) .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) + /// Storage: `MessageQueue::Pages` (r:1 w:1) + /// Proof: `MessageQueue::Pages` (`max_values`: None, `max_size`: Some(65585), added: 68060, mode: `MaxEncodedLen`) fn service_page_base_completion() -> Weight { // Proof Size summary in bytes: // Measured: `72` // Estimated: `69050` - // Minimum execution time: 6_342_000 picoseconds. - Weight::from_parts(6_342_000, 0) + // Minimum execution time: 5_429_000 picoseconds. + Weight::from_parts(5_667_000, 0) .saturating_add(Weight::from_parts(0, 69050)) .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) + /// Storage: `MessageQueue::Pages` (r:1 w:1) + /// Proof: `MessageQueue::Pages` (`max_values`: None, `max_size`: Some(65585), added: 68060, mode: `MaxEncodedLen`) fn service_page_base_no_completion() -> Weight { // Proof Size summary in bytes: // Measured: `72` // Estimated: `69050` - // Minimum execution time: 6_199_000 picoseconds. - Weight::from_parts(6_199_000, 0) + // Minimum execution time: 5_538_000 picoseconds. + Weight::from_parts(5_803_000, 0) .saturating_add(Weight::from_parts(0, 69050)) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(1)) @@ -116,63 +116,63 @@ impl pallet_message_queue::WeightInfo for WeightInfo // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 58_612_000 picoseconds. - Weight::from_parts(58_612_000, 0) + // Minimum execution time: 89_888_000 picoseconds. + Weight::from_parts(90_929_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) - /// Storage: MessageQueue BookStateFor (r:1 w:0) - /// Proof: MessageQueue BookStateFor (max_values: None, max_size: Some(52), added: 2527, mode: MaxEncodedLen) + /// Storage: `MessageQueue::ServiceHead` (r:1 w:1) + /// Proof: `MessageQueue::ServiceHead` (`max_values`: Some(1), `max_size`: Some(5), added: 500, mode: `MaxEncodedLen`) + /// Storage: `MessageQueue::BookStateFor` (r:1 w:0) + /// Proof: `MessageQueue::BookStateFor` (`max_values`: None, `max_size`: Some(52), added: 2527, mode: `MaxEncodedLen`) fn bump_service_head() -> Weight { // Proof Size summary in bytes: - // Measured: `99` - // Estimated: `5007` - // Minimum execution time: 7_296_000 picoseconds. - Weight::from_parts(7_296_000, 0) - .saturating_add(Weight::from_parts(0, 5007)) + // Measured: `171` + // Estimated: `3517` + // Minimum execution time: 6_129_000 picoseconds. + Weight::from_parts(6_414_000, 0) + .saturating_add(Weight::from_parts(0, 3517)) .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) - /// Storage: MessageQueue Pages (r:1 w:1) - /// Proof: MessageQueue Pages (max_values: None, max_size: Some(65585), added: 68060, mode: MaxEncodedLen) + /// Storage: `MessageQueue::BookStateFor` (r:1 w:1) + /// Proof: `MessageQueue::BookStateFor` (`max_values`: None, `max_size`: Some(52), added: 2527, mode: `MaxEncodedLen`) + /// Storage: `MessageQueue::Pages` (r:1 w:1) + /// Proof: `MessageQueue::Pages` (`max_values`: None, `max_size`: Some(65585), added: 68060, mode: `MaxEncodedLen`) fn reap_page() -> Weight { // Proof Size summary in bytes: // Measured: `65667` - // Estimated: `72567` - // Minimum execution time: 48_345_000 picoseconds. - Weight::from_parts(48_345_000, 0) - .saturating_add(Weight::from_parts(0, 72567)) + // Estimated: `69050` + // Minimum execution time: 52_366_000 picoseconds. + Weight::from_parts(53_500_000, 0) + .saturating_add(Weight::from_parts(0, 69050)) .saturating_add(T::DbWeight::get().reads(2)) .saturating_add(T::DbWeight::get().writes(2)) } - /// Storage: MessageQueue BookStateFor (r:1 w:1) - /// Proof: MessageQueue BookStateFor (max_values: None, max_size: Some(52), added: 2527, mode: MaxEncodedLen) - /// Storage: MessageQueue Pages (r:1 w:1) - /// Proof: MessageQueue Pages (max_values: None, max_size: Some(65585), added: 68060, mode: MaxEncodedLen) + /// Storage: `MessageQueue::BookStateFor` (r:1 w:1) + /// Proof: `MessageQueue::BookStateFor` (`max_values`: None, `max_size`: Some(52), added: 2527, mode: `MaxEncodedLen`) + /// Storage: `MessageQueue::Pages` (r:1 w:1) + /// Proof: `MessageQueue::Pages` (`max_values`: None, `max_size`: Some(65585), added: 68060, mode: `MaxEncodedLen`) fn execute_overweight_page_removed() -> Weight { // Proof Size summary in bytes: // Measured: `65667` - // Estimated: `72567` - // Minimum execution time: 56_441_000 picoseconds. - Weight::from_parts(56_441_000, 0) - .saturating_add(Weight::from_parts(0, 72567)) + // Estimated: `69050` + // Minimum execution time: 67_848_000 picoseconds. + Weight::from_parts(68_910_000, 0) + .saturating_add(Weight::from_parts(0, 69050)) .saturating_add(T::DbWeight::get().reads(2)) .saturating_add(T::DbWeight::get().writes(2)) } - /// Storage: MessageQueue BookStateFor (r:1 w:1) - /// Proof: MessageQueue BookStateFor (max_values: None, max_size: Some(52), added: 2527, mode: MaxEncodedLen) - /// Storage: MessageQueue Pages (r:1 w:1) - /// Proof: MessageQueue Pages (max_values: None, max_size: Some(65585), added: 68060, mode: MaxEncodedLen) + /// Storage: `MessageQueue::BookStateFor` (r:1 w:1) + /// Proof: `MessageQueue::BookStateFor` (`max_values`: None, `max_size`: Some(52), added: 2527, mode: `MaxEncodedLen`) + /// Storage: `MessageQueue::Pages` (r:1 w:1) + /// Proof: `MessageQueue::Pages` (`max_values`: None, `max_size`: Some(65585), added: 68060, mode: `MaxEncodedLen`) fn execute_overweight_page_updated() -> Weight { // Proof Size summary in bytes: // Measured: `65667` - // Estimated: `72567` - // Minimum execution time: 70_858_000 picoseconds. - Weight::from_parts(70_858_000, 0) - .saturating_add(Weight::from_parts(0, 72567)) + // Estimated: `69050` + // Minimum execution time: 107_564_000 picoseconds. + Weight::from_parts(109_377_000, 0) + .saturating_add(Weight::from_parts(0, 69050)) .saturating_add(T::DbWeight::get().reads(2)) .saturating_add(T::DbWeight::get().writes(2)) } From d36d38f57d5c7e5770f784b49e9d5f0cea4fe562 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?D=C3=B3nal=20Murray?= Date: Wed, 8 Nov 2023 21:29:48 +0000 Subject: [PATCH 63/78] Directly enable sp-io feature std Co-authored-by: Oliver Tale-Yazdi --- .../runtimes/collectives/collectives-westend/Cargo.toml | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/cumulus/parachains/runtimes/collectives/collectives-westend/Cargo.toml b/cumulus/parachains/runtimes/collectives/collectives-westend/Cargo.toml index 985b929d6678..1bf87438ad96 100644 --- a/cumulus/parachains/runtimes/collectives/collectives-westend/Cargo.toml +++ b/cumulus/parachains/runtimes/collectives/collectives-westend/Cargo.toml @@ -82,7 +82,7 @@ parachains-common = { path = "../../../common", default-features = false } substrate-wasm-builder = { path = "../../../../../substrate/utils/wasm-builder", optional = true } [dev-dependencies] -sp-io = { path = "../../../../../substrate/primitives/io", default-features = false} +sp-io = { path = "../../../../../substrate/primitives/io", features = [ "std" ]} [features] default = [ "std" ] @@ -209,7 +209,6 @@ std = [ "sp-core/std", "sp-genesis-builder/std", "sp-inherents/std", - "sp-io/std", "sp-offchain/std", "sp-runtime/std", "sp-session/std", From 53b7df05a58363119bac671a9173922e10724b18 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?D=C3=B3nal=20Murray?= Date: Wed, 8 Nov 2023 21:32:39 +0000 Subject: [PATCH 64/78] Fix typo in ambassador module docs Co-authored-by: Oliver Tale-Yazdi --- .../collectives/collectives-westend/src/ambassador/mod.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cumulus/parachains/runtimes/collectives/collectives-westend/src/ambassador/mod.rs b/cumulus/parachains/runtimes/collectives/collectives-westend/src/ambassador/mod.rs index 6e9f7d78c9b5..6758c6a20162 100644 --- a/cumulus/parachains/runtimes/collectives/collectives-westend/src/ambassador/mod.rs +++ b/cumulus/parachains/runtimes/collectives/collectives-westend/src/ambassador/mod.rs @@ -66,7 +66,7 @@ impl pallet_ambassador_origins::Config for Runtime {} pub type AmbassadorCollectiveInstance = pallet_ranked_collective::Instance2; /// Demotion is by any of: -/// - Root can promote arbitrarily. +/// - Root can demote arbitrarily. /// - the FellowshipAdmin origin (i.e. token holder referendum); /// - a senior members vote by the rank two above the current rank. pub type DemoteOrigin = EitherOf< From cc885d081a20da72de2ae22f767132374524fce6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?D=C3=B3nal=20Murray?= Date: Thu, 9 Nov 2023 10:08:42 +0000 Subject: [PATCH 65/78] Use correct native_version and dispatch methods --- cumulus/polkadot-parachain/src/service.rs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/cumulus/polkadot-parachain/src/service.rs b/cumulus/polkadot-parachain/src/service.rs index 1807e100b469..3884fce246c3 100644 --- a/cumulus/polkadot-parachain/src/service.rs +++ b/cumulus/polkadot-parachain/src/service.rs @@ -238,11 +238,11 @@ impl sc_executor::NativeExecutionDispatch for GluttonWestendRuntimeExecutor { type ExtendHostFunctions = frame_benchmarking::benchmarking::HostFunctions; fn dispatch(method: &str, data: &[u8]) -> Option> { - shell_runtime::api::dispatch(method, data) + glutton_westend_runtime::api::dispatch(method, data) } fn native_version() -> sc_executor::NativeVersion { - shell_runtime::native_version() + glutton_westend_runtime::native_version() } } From 1333970194acccbc7b1542adc98e641c8bec9d7e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?D=C3=B3nal=20Murray?= Date: Fri, 10 Nov 2023 16:37:54 +0000 Subject: [PATCH 66/78] Bootstrap new weights for pallet_xcm --- .../src/weights/pallet_xcm.rs | 215 ++++++++++-------- 1 file changed, 125 insertions(+), 90 deletions(-) diff --git a/cumulus/parachains/runtimes/collectives/collectives-westend/src/weights/pallet_xcm.rs b/cumulus/parachains/runtimes/collectives/collectives-westend/src/weights/pallet_xcm.rs index 26e668854f24..57e502841473 100644 --- a/cumulus/parachains/runtimes/collectives/collectives-westend/src/weights/pallet_xcm.rs +++ b/cumulus/parachains/runtimes/collectives/collectives-westend/src/weights/pallet_xcm.rs @@ -1,42 +1,41 @@ // Copyright (C) Parity Technologies (UK) Ltd. -// SPDX-License-Identifier: Apache-2.0 +// This file is part of Cumulus. -// 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. +// Cumulus 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. + +// Cumulus 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 Cumulus. If not, see . //! Autogenerated weights for `pallet_xcm` //! //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev -//! DATE: 2023-07-31, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! DATE: 2023-11-10, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` //! WORST CASE MAP SIZE: `1000000` -//! HOSTNAME: `runner-ynta1nyy-project-238-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz` -//! EXECUTION: ``, WASM-EXECUTION: `Compiled`, CHAIN: `Some("collectives-polkadot-dev")`, DB CACHE: 1024 +//! HOSTNAME: `runner-yprdrvc7-project-674-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz` +//! WASM-EXECUTION: `Compiled`, CHAIN: `Some("collectives-polkadot-dev")`, DB CACHE: 1024 // Executed Command: -// ./target/production/polkadot-parachain +// target/production/polkadot-parachain // benchmark // pallet -// --chain=collectives-polkadot-dev -// --wasm-execution=compiled -// --pallet=pallet_xcm -// --no-storage-info -// --no-median-slopes -// --no-min-squares -// --extrinsic=* // --steps=50 // --repeat=20 -// --json -// --header=./file_header.txt -// --output=./parachains/runtimes/collectives/collectives-polkadot/src/weights/ +// --extrinsic=* +// --wasm-execution=compiled +// --heap-pages=4096 +// --json-file=/builds/parity/mirrors/polkadot-sdk/.git/.artifacts/bench.json +// --pallet=pallet_xcm +// --chain=collectives-polkadot-dev +// --header=./cumulus/file_header.txt +// --output=./cumulus/parachains/runtimes/collectives/collectives-polkadot/src/weights/ #![cfg_attr(rustfmt, rustfmt_skip)] #![allow(unused_parens)] @@ -49,6 +48,8 @@ use core::marker::PhantomData; /// Weight functions for `pallet_xcm`. pub struct WeightInfo(PhantomData); impl pallet_xcm::WeightInfo for WeightInfo { + /// Storage: `ParachainSystem::UpwardDeliveryFeeFactor` (r:1 w:0) + /// Proof: `ParachainSystem::UpwardDeliveryFeeFactor` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) /// Storage: `PolkadotXcm::SupportedVersion` (r:1 w:0) /// Proof: `PolkadotXcm::SupportedVersion` (`max_values`: None, `max_size`: None, mode: `Measured`) /// Storage: `PolkadotXcm::VersionDiscoveryQueue` (r:1 w:1) @@ -61,22 +62,22 @@ impl pallet_xcm::WeightInfo for WeightInfo { /// Proof: `ParachainSystem::PendingUpwardMessages` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) fn send() -> Weight { // Proof Size summary in bytes: - // Measured: `111` - // Estimated: `3576` - // Minimum execution time: 27_795_000 picoseconds. - Weight::from_parts(28_215_000, 0) - .saturating_add(Weight::from_parts(0, 3576)) - .saturating_add(T::DbWeight::get().reads(5)) + // Measured: `145` + // Estimated: `3610` + // Minimum execution time: 25_050_000 picoseconds. + Weight::from_parts(26_382_000, 0) + .saturating_add(Weight::from_parts(0, 3610)) + .saturating_add(T::DbWeight::get().reads(6)) .saturating_add(T::DbWeight::get().writes(2)) } /// Storage: `ParachainInfo::ParachainId` (r:1 w:0) /// Proof: `ParachainInfo::ParachainId` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`) fn teleport_assets() -> Weight { // Proof Size summary in bytes: - // Measured: `32` + // Measured: `69` // Estimated: `1489` - // Minimum execution time: 23_847_000 picoseconds. - Weight::from_parts(24_332_000, 0) + // Minimum execution time: 21_625_000 picoseconds. + Weight::from_parts(22_076_000, 0) .saturating_add(Weight::from_parts(0, 1489)) .saturating_add(T::DbWeight::get().reads(1)) } @@ -106,8 +107,8 @@ impl pallet_xcm::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 8_885_000 picoseconds. - Weight::from_parts(9_128_000, 0) + // Minimum execution time: 7_076_000 picoseconds. + Weight::from_parts(7_378_000, 0) .saturating_add(Weight::from_parts(0, 0)) .saturating_add(T::DbWeight::get().writes(1)) } @@ -117,8 +118,8 @@ impl pallet_xcm::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 2_670_000 picoseconds. - Weight::from_parts(2_815_000, 0) + // Minimum execution time: 2_327_000 picoseconds. + Weight::from_parts(2_454_000, 0) .saturating_add(Weight::from_parts(0, 0)) .saturating_add(T::DbWeight::get().writes(1)) } @@ -126,6 +127,8 @@ impl pallet_xcm::WeightInfo for WeightInfo { /// Proof: `PolkadotXcm::VersionNotifiers` (`max_values`: None, `max_size`: None, mode: `Measured`) /// Storage: `PolkadotXcm::QueryCounter` (r:1 w:1) /// Proof: `PolkadotXcm::QueryCounter` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `ParachainSystem::UpwardDeliveryFeeFactor` (r:1 w:0) + /// Proof: `ParachainSystem::UpwardDeliveryFeeFactor` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) /// Storage: `PolkadotXcm::SupportedVersion` (r:1 w:0) /// Proof: `PolkadotXcm::SupportedVersion` (`max_values`: None, `max_size`: None, mode: `Measured`) /// Storage: `PolkadotXcm::VersionDiscoveryQueue` (r:1 w:1) @@ -140,16 +143,18 @@ impl pallet_xcm::WeightInfo for WeightInfo { /// Proof: `PolkadotXcm::Queries` (`max_values`: None, `max_size`: None, mode: `Measured`) fn force_subscribe_version_notify() -> Weight { // Proof Size summary in bytes: - // Measured: `111` - // Estimated: `3576` - // Minimum execution time: 32_214_000 picoseconds. - Weight::from_parts(32_989_000, 0) - .saturating_add(Weight::from_parts(0, 3576)) - .saturating_add(T::DbWeight::get().reads(7)) + // Measured: `145` + // Estimated: `3610` + // Minimum execution time: 29_080_000 picoseconds. + Weight::from_parts(29_886_000, 0) + .saturating_add(Weight::from_parts(0, 3610)) + .saturating_add(T::DbWeight::get().reads(8)) .saturating_add(T::DbWeight::get().writes(5)) } /// Storage: `PolkadotXcm::VersionNotifiers` (r:1 w:1) /// Proof: `PolkadotXcm::VersionNotifiers` (`max_values`: None, `max_size`: None, mode: `Measured`) + /// Storage: `ParachainSystem::UpwardDeliveryFeeFactor` (r:1 w:0) + /// Proof: `ParachainSystem::UpwardDeliveryFeeFactor` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) /// Storage: `PolkadotXcm::SupportedVersion` (r:1 w:0) /// Proof: `PolkadotXcm::SupportedVersion` (`max_values`: None, `max_size`: None, mode: `Measured`) /// Storage: `PolkadotXcm::VersionDiscoveryQueue` (r:1 w:1) @@ -164,12 +169,12 @@ impl pallet_xcm::WeightInfo for WeightInfo { /// Proof: `PolkadotXcm::Queries` (`max_values`: None, `max_size`: None, mode: `Measured`) fn force_unsubscribe_version_notify() -> Weight { // Proof Size summary in bytes: - // Measured: `294` - // Estimated: `3759` - // Minimum execution time: 33_638_000 picoseconds. - Weight::from_parts(34_206_000, 0) - .saturating_add(Weight::from_parts(0, 3759)) - .saturating_add(T::DbWeight::get().reads(6)) + // Measured: `363` + // Estimated: `3828` + // Minimum execution time: 30_746_000 picoseconds. + Weight::from_parts(31_631_000, 0) + .saturating_add(Weight::from_parts(0, 3828)) + .saturating_add(T::DbWeight::get().reads(7)) .saturating_add(T::DbWeight::get().writes(4)) } /// Storage: `PolkadotXcm::XcmExecutionSuspended` (r:0 w:1) @@ -178,8 +183,8 @@ impl pallet_xcm::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 2_602_000 picoseconds. - Weight::from_parts(2_730_000, 0) + // Minimum execution time: 2_208_000 picoseconds. + Weight::from_parts(2_341_000, 0) .saturating_add(Weight::from_parts(0, 0)) .saturating_add(T::DbWeight::get().writes(1)) } @@ -187,11 +192,11 @@ impl pallet_xcm::WeightInfo for WeightInfo { /// Proof: `PolkadotXcm::SupportedVersion` (`max_values`: None, `max_size`: None, mode: `Measured`) fn migrate_supported_version() -> Weight { // Proof Size summary in bytes: - // Measured: `129` - // Estimated: `11019` - // Minimum execution time: 16_199_000 picoseconds. - Weight::from_parts(16_833_000, 0) - .saturating_add(Weight::from_parts(0, 11019)) + // Measured: `162` + // Estimated: `11052` + // Minimum execution time: 16_239_000 picoseconds. + Weight::from_parts(16_881_000, 0) + .saturating_add(Weight::from_parts(0, 11052)) .saturating_add(T::DbWeight::get().reads(4)) .saturating_add(T::DbWeight::get().writes(2)) } @@ -199,11 +204,11 @@ impl pallet_xcm::WeightInfo for WeightInfo { /// Proof: `PolkadotXcm::VersionNotifiers` (`max_values`: None, `max_size`: None, mode: `Measured`) fn migrate_version_notifiers() -> Weight { // Proof Size summary in bytes: - // Measured: `133` - // Estimated: `11023` - // Minimum execution time: 16_561_000 picoseconds. - Weight::from_parts(16_872_000, 0) - .saturating_add(Weight::from_parts(0, 11023)) + // Measured: `166` + // Estimated: `11056` + // Minimum execution time: 16_711_000 picoseconds. + Weight::from_parts(16_944_000, 0) + .saturating_add(Weight::from_parts(0, 11056)) .saturating_add(T::DbWeight::get().reads(4)) .saturating_add(T::DbWeight::get().writes(2)) } @@ -211,15 +216,17 @@ impl pallet_xcm::WeightInfo for WeightInfo { /// Proof: `PolkadotXcm::VersionNotifyTargets` (`max_values`: None, `max_size`: None, mode: `Measured`) fn already_notified_target() -> Weight { // Proof Size summary in bytes: - // Measured: `140` - // Estimated: `13505` - // Minimum execution time: 17_812_000 picoseconds. - Weight::from_parts(20_036_000, 0) - .saturating_add(Weight::from_parts(0, 13505)) + // Measured: `173` + // Estimated: `13538` + // Minimum execution time: 18_142_000 picoseconds. + Weight::from_parts(18_470_000, 0) + .saturating_add(Weight::from_parts(0, 13538)) .saturating_add(T::DbWeight::get().reads(5)) } /// Storage: `PolkadotXcm::VersionNotifyTargets` (r:2 w:1) /// Proof: `PolkadotXcm::VersionNotifyTargets` (`max_values`: None, `max_size`: None, mode: `Measured`) + /// Storage: `ParachainSystem::UpwardDeliveryFeeFactor` (r:1 w:0) + /// Proof: `ParachainSystem::UpwardDeliveryFeeFactor` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) /// Storage: `PolkadotXcm::SupportedVersion` (r:1 w:0) /// Proof: `PolkadotXcm::SupportedVersion` (`max_values`: None, `max_size`: None, mode: `Measured`) /// Storage: `PolkadotXcm::VersionDiscoveryQueue` (r:1 w:1) @@ -232,39 +239,41 @@ impl pallet_xcm::WeightInfo for WeightInfo { /// Proof: `ParachainSystem::PendingUpwardMessages` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) fn notify_current_targets() -> Weight { // Proof Size summary in bytes: - // Measured: `178` - // Estimated: `6118` - // Minimum execution time: 30_153_000 picoseconds. - Weight::from_parts(31_366_000, 0) - .saturating_add(Weight::from_parts(0, 6118)) - .saturating_add(T::DbWeight::get().reads(7)) + // Measured: `212` + // Estimated: `6152` + // Minimum execution time: 27_687_000 picoseconds. + Weight::from_parts(28_250_000, 0) + .saturating_add(Weight::from_parts(0, 6152)) + .saturating_add(T::DbWeight::get().reads(8)) .saturating_add(T::DbWeight::get().writes(3)) } /// Storage: `PolkadotXcm::VersionNotifyTargets` (r:3 w:0) /// Proof: `PolkadotXcm::VersionNotifyTargets` (`max_values`: None, `max_size`: None, mode: `Measured`) fn notify_target_migration_fail() -> Weight { // Proof Size summary in bytes: - // Measured: `172` - // Estimated: `8587` - // Minimum execution time: 9_465_000 picoseconds. - Weight::from_parts(9_743_000, 0) - .saturating_add(Weight::from_parts(0, 8587)) + // Measured: `206` + // Estimated: `8621` + // Minimum execution time: 9_675_000 picoseconds. + Weight::from_parts(9_992_000, 0) + .saturating_add(Weight::from_parts(0, 8621)) .saturating_add(T::DbWeight::get().reads(3)) } /// Storage: `PolkadotXcm::VersionNotifyTargets` (r:4 w:2) /// Proof: `PolkadotXcm::VersionNotifyTargets` (`max_values`: None, `max_size`: None, mode: `Measured`) fn migrate_version_notify_targets() -> Weight { // Proof Size summary in bytes: - // Measured: `140` - // Estimated: `11030` - // Minimum execution time: 16_954_000 picoseconds. - Weight::from_parts(19_772_000, 0) - .saturating_add(Weight::from_parts(0, 11030)) + // Measured: `173` + // Estimated: `11063` + // Minimum execution time: 16_597_000 picoseconds. + Weight::from_parts(17_248_000, 0) + .saturating_add(Weight::from_parts(0, 11063)) .saturating_add(T::DbWeight::get().reads(4)) .saturating_add(T::DbWeight::get().writes(2)) } /// Storage: `PolkadotXcm::VersionNotifyTargets` (r:4 w:2) /// Proof: `PolkadotXcm::VersionNotifyTargets` (`max_values`: None, `max_size`: None, mode: `Measured`) + /// Storage: `ParachainSystem::UpwardDeliveryFeeFactor` (r:1 w:0) + /// Proof: `ParachainSystem::UpwardDeliveryFeeFactor` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) /// Storage: `PolkadotXcm::SupportedVersion` (r:1 w:0) /// Proof: `PolkadotXcm::SupportedVersion` (`max_values`: None, `max_size`: None, mode: `Measured`) /// Storage: `PolkadotXcm::VersionDiscoveryQueue` (r:1 w:1) @@ -277,12 +286,38 @@ impl pallet_xcm::WeightInfo for WeightInfo { /// Proof: `ParachainSystem::PendingUpwardMessages` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) fn migrate_and_notify_old_targets() -> Weight { // Proof Size summary in bytes: - // Measured: `182` - // Estimated: `11072` - // Minimum execution time: 37_302_000 picoseconds. - Weight::from_parts(38_124_000, 0) - .saturating_add(Weight::from_parts(0, 11072)) - .saturating_add(T::DbWeight::get().reads(9)) + // Measured: `215` + // Estimated: `11105` + // Minimum execution time: 34_649_000 picoseconds. + Weight::from_parts(35_475_000, 0) + .saturating_add(Weight::from_parts(0, 11105)) + .saturating_add(T::DbWeight::get().reads(10)) .saturating_add(T::DbWeight::get().writes(4)) } + /// Storage: `PolkadotXcm::QueryCounter` (r:1 w:1) + /// Proof: `PolkadotXcm::QueryCounter` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `PolkadotXcm::Queries` (r:0 w:1) + /// Proof: `PolkadotXcm::Queries` (`max_values`: None, `max_size`: None, mode: `Measured`) + fn new_query() -> Weight { + // Proof Size summary in bytes: + // Measured: `103` + // Estimated: `1588` + // Minimum execution time: 4_619_000 picoseconds. + Weight::from_parts(4_756_000, 0) + .saturating_add(Weight::from_parts(0, 1588)) + .saturating_add(T::DbWeight::get().reads(1)) + .saturating_add(T::DbWeight::get().writes(2)) + } + /// Storage: `PolkadotXcm::Queries` (r:1 w:1) + /// Proof: `PolkadotXcm::Queries` (`max_values`: None, `max_size`: None, mode: `Measured`) + fn take_response() -> Weight { + // Proof Size summary in bytes: + // Measured: `7740` + // Estimated: `11205` + // Minimum execution time: 26_721_000 picoseconds. + Weight::from_parts(27_412_000, 0) + .saturating_add(Weight::from_parts(0, 11205)) + .saturating_add(T::DbWeight::get().reads(1)) + .saturating_add(T::DbWeight::get().writes(1)) + } } From 27b6d44c35f357359c8d6355c2139f6b1ab23ea1 Mon Sep 17 00:00:00 2001 From: command-bot <> Date: Fri, 10 Nov 2023 17:48:52 +0000 Subject: [PATCH 67/78] ".git/.scripts/commands/bench/bench.sh" --subcommand=pallet --runtime=collectives-westend --runtime_dir=collectives --target_dir=cumulus --pallet=pallet_xcm --- .../src/weights/pallet_xcm.rs | 70 +++++++++---------- 1 file changed, 35 insertions(+), 35 deletions(-) diff --git a/cumulus/parachains/runtimes/collectives/collectives-westend/src/weights/pallet_xcm.rs b/cumulus/parachains/runtimes/collectives/collectives-westend/src/weights/pallet_xcm.rs index 57e502841473..a3b42cb86c40 100644 --- a/cumulus/parachains/runtimes/collectives/collectives-westend/src/weights/pallet_xcm.rs +++ b/cumulus/parachains/runtimes/collectives/collectives-westend/src/weights/pallet_xcm.rs @@ -20,7 +20,7 @@ //! DATE: 2023-11-10, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` //! WORST CASE MAP SIZE: `1000000` //! HOSTNAME: `runner-yprdrvc7-project-674-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz` -//! WASM-EXECUTION: `Compiled`, CHAIN: `Some("collectives-polkadot-dev")`, DB CACHE: 1024 +//! WASM-EXECUTION: `Compiled`, CHAIN: `Some("collectives-westend-dev")`, DB CACHE: 1024 // Executed Command: // target/production/polkadot-parachain @@ -33,9 +33,9 @@ // --heap-pages=4096 // --json-file=/builds/parity/mirrors/polkadot-sdk/.git/.artifacts/bench.json // --pallet=pallet_xcm -// --chain=collectives-polkadot-dev +// --chain=collectives-westend-dev // --header=./cumulus/file_header.txt -// --output=./cumulus/parachains/runtimes/collectives/collectives-polkadot/src/weights/ +// --output=./cumulus/parachains/runtimes/collectives/collectives-westend/src/weights/ #![cfg_attr(rustfmt, rustfmt_skip)] #![allow(unused_parens)] @@ -64,8 +64,8 @@ impl pallet_xcm::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `145` // Estimated: `3610` - // Minimum execution time: 25_050_000 picoseconds. - Weight::from_parts(26_382_000, 0) + // Minimum execution time: 25_746_000 picoseconds. + Weight::from_parts(26_349_000, 0) .saturating_add(Weight::from_parts(0, 3610)) .saturating_add(T::DbWeight::get().reads(6)) .saturating_add(T::DbWeight::get().writes(2)) @@ -76,8 +76,8 @@ impl pallet_xcm::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `69` // Estimated: `1489` - // Minimum execution time: 21_625_000 picoseconds. - Weight::from_parts(22_076_000, 0) + // Minimum execution time: 22_660_000 picoseconds. + Weight::from_parts(23_173_000, 0) .saturating_add(Weight::from_parts(0, 1489)) .saturating_add(T::DbWeight::get().reads(1)) } @@ -107,8 +107,8 @@ impl pallet_xcm::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 7_076_000 picoseconds. - Weight::from_parts(7_378_000, 0) + // Minimum execution time: 7_321_000 picoseconds. + Weight::from_parts(7_542_000, 0) .saturating_add(Weight::from_parts(0, 0)) .saturating_add(T::DbWeight::get().writes(1)) } @@ -118,8 +118,8 @@ impl pallet_xcm::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 2_327_000 picoseconds. - Weight::from_parts(2_454_000, 0) + // Minimum execution time: 2_232_000 picoseconds. + Weight::from_parts(2_395_000, 0) .saturating_add(Weight::from_parts(0, 0)) .saturating_add(T::DbWeight::get().writes(1)) } @@ -145,8 +145,8 @@ impl pallet_xcm::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `145` // Estimated: `3610` - // Minimum execution time: 29_080_000 picoseconds. - Weight::from_parts(29_886_000, 0) + // Minimum execution time: 29_006_000 picoseconds. + Weight::from_parts(29_777_000, 0) .saturating_add(Weight::from_parts(0, 3610)) .saturating_add(T::DbWeight::get().reads(8)) .saturating_add(T::DbWeight::get().writes(5)) @@ -171,8 +171,8 @@ impl pallet_xcm::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `363` // Estimated: `3828` - // Minimum execution time: 30_746_000 picoseconds. - Weight::from_parts(31_631_000, 0) + // Minimum execution time: 31_245_000 picoseconds. + Weight::from_parts(32_125_000, 0) .saturating_add(Weight::from_parts(0, 3828)) .saturating_add(T::DbWeight::get().reads(7)) .saturating_add(T::DbWeight::get().writes(4)) @@ -183,8 +183,8 @@ impl pallet_xcm::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 2_208_000 picoseconds. - Weight::from_parts(2_341_000, 0) + // Minimum execution time: 2_255_000 picoseconds. + Weight::from_parts(2_399_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: `162` // Estimated: `11052` - // Minimum execution time: 16_239_000 picoseconds. - Weight::from_parts(16_881_000, 0) + // Minimum execution time: 16_521_000 picoseconds. + Weight::from_parts(17_001_000, 0) .saturating_add(Weight::from_parts(0, 11052)) .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: `166` // Estimated: `11056` - // Minimum execution time: 16_711_000 picoseconds. - Weight::from_parts(16_944_000, 0) + // Minimum execution time: 16_486_000 picoseconds. + Weight::from_parts(16_729_000, 0) .saturating_add(Weight::from_parts(0, 11056)) .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: `173` // Estimated: `13538` - // Minimum execution time: 18_142_000 picoseconds. - Weight::from_parts(18_470_000, 0) + // Minimum execution time: 18_037_000 picoseconds. + Weight::from_parts(18_310_000, 0) .saturating_add(Weight::from_parts(0, 13538)) .saturating_add(T::DbWeight::get().reads(5)) } @@ -241,8 +241,8 @@ impl pallet_xcm::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `212` // Estimated: `6152` - // Minimum execution time: 27_687_000 picoseconds. - Weight::from_parts(28_250_000, 0) + // Minimum execution time: 27_901_000 picoseconds. + Weight::from_parts(28_566_000, 0) .saturating_add(Weight::from_parts(0, 6152)) .saturating_add(T::DbWeight::get().reads(8)) .saturating_add(T::DbWeight::get().writes(3)) @@ -253,8 +253,8 @@ impl pallet_xcm::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `206` // Estimated: `8621` - // Minimum execution time: 9_675_000 picoseconds. - Weight::from_parts(9_992_000, 0) + // Minimum execution time: 9_299_000 picoseconds. + Weight::from_parts(9_547_000, 0) .saturating_add(Weight::from_parts(0, 8621)) .saturating_add(T::DbWeight::get().reads(3)) } @@ -264,8 +264,8 @@ impl pallet_xcm::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `173` // Estimated: `11063` - // Minimum execution time: 16_597_000 picoseconds. - Weight::from_parts(17_248_000, 0) + // Minimum execution time: 16_768_000 picoseconds. + Weight::from_parts(17_215_000, 0) .saturating_add(Weight::from_parts(0, 11063)) .saturating_add(T::DbWeight::get().reads(4)) .saturating_add(T::DbWeight::get().writes(2)) @@ -288,8 +288,8 @@ impl pallet_xcm::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `215` // Estimated: `11105` - // Minimum execution time: 34_649_000 picoseconds. - Weight::from_parts(35_475_000, 0) + // Minimum execution time: 35_134_000 picoseconds. + Weight::from_parts(35_883_000, 0) .saturating_add(Weight::from_parts(0, 11105)) .saturating_add(T::DbWeight::get().reads(10)) .saturating_add(T::DbWeight::get().writes(4)) @@ -302,8 +302,8 @@ impl pallet_xcm::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `103` // Estimated: `1588` - // Minimum execution time: 4_619_000 picoseconds. - Weight::from_parts(4_756_000, 0) + // Minimum execution time: 4_562_000 picoseconds. + Weight::from_parts(4_802_000, 0) .saturating_add(Weight::from_parts(0, 1588)) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(2)) @@ -314,8 +314,8 @@ impl pallet_xcm::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `7740` // Estimated: `11205` - // Minimum execution time: 26_721_000 picoseconds. - Weight::from_parts(27_412_000, 0) + // Minimum execution time: 26_865_000 picoseconds. + Weight::from_parts(27_400_000, 0) .saturating_add(Weight::from_parts(0, 11205)) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(1)) From eff453a5f6820c2f16c20dc195becd79873e7efb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?D=C3=B3nal=20Murray?= Date: Mon, 13 Nov 2023 12:52:38 +0000 Subject: [PATCH 68/78] Explicitly allow Root to change params and induct --- .../collectives-westend/src/ambassador/mod.rs | 22 ++++++++++++------- 1 file changed, 14 insertions(+), 8 deletions(-) diff --git a/cumulus/parachains/runtimes/collectives/collectives-westend/src/ambassador/mod.rs b/cumulus/parachains/runtimes/collectives/collectives-westend/src/ambassador/mod.rs index 6758c6a20162..18c1466bf362 100644 --- a/cumulus/parachains/runtimes/collectives/collectives-westend/src/ambassador/mod.rs +++ b/cumulus/parachains/runtimes/collectives/collectives-westend/src/ambassador/mod.rs @@ -184,8 +184,11 @@ impl pallet_core_fellowship::Config for Runtime { // - the FellowshipAdmin origin (i.e. token holder referendum); // - a vote among all Head Ambassadors. type ParamsOrigin = EitherOfDiverse< - EnsureXcm>, - EnsureHeadAmbassadorsVoice, + EnsureRoot, + EitherOfDiverse< + EnsureXcm>, + EnsureHeadAmbassadorsVoice, + >, >; // Induction (creating a candidate) is by any of: // - Root; @@ -193,14 +196,17 @@ impl pallet_core_fellowship::Config for Runtime { // - a single Head Ambassador; // - a vote among all senior members. type InductOrigin = EitherOfDiverse< - EnsureXcm>, + EnsureRoot, EitherOfDiverse< - pallet_ranked_collective::EnsureMember< - Runtime, - AmbassadorCollectiveInstance, - { ranks::HEAD_AMBASSADOR_TIER_5 }, + EnsureXcm>, + EitherOfDiverse< + pallet_ranked_collective::EnsureMember< + Runtime, + AmbassadorCollectiveInstance, + { ranks::HEAD_AMBASSADOR_TIER_5 }, + >, + EnsureAmbassadorsVoiceFrom>, >, - EnsureAmbassadorsVoiceFrom>, >, >; type ApproveOrigin = PromoteOrigin; From 8e84340e8e5dbd9b921e640d0a525fca60bdf793 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?D=C3=B3nal=20Murray?= Date: Tue, 14 Nov 2023 15:12:52 +0000 Subject: [PATCH 69/78] Set up FeeManager for collectives-westend Co-authored-by: Branislav Kontur --- .../collectives/collectives-westend/src/xcm_config.rs | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/cumulus/parachains/runtimes/collectives/collectives-westend/src/xcm_config.rs b/cumulus/parachains/runtimes/collectives/collectives-westend/src/xcm_config.rs index 158e866246be..0196e8509e85 100644 --- a/cumulus/parachains/runtimes/collectives/collectives-westend/src/xcm_config.rs +++ b/cumulus/parachains/runtimes/collectives/collectives-westend/src/xcm_config.rs @@ -269,7 +269,10 @@ impl xcm_executor::Config for XcmConfig { type MaxAssetsIntoHolding = MaxAssetsIntoHolding; type AssetLocker = (); type AssetExchanger = (); - type FeeManager = (); + type FeeManager = XcmFeeManagerFromComponents< + WaivedLocations, + XcmFeeToAccount, + >; type MessageExporter = (); type UniversalAliases = Nothing; type CallDispatcher = WithOriginFilter; From bc140f0ed8a04a61ac9d5e1574e8e2cdeeb9a6a4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?D=C3=B3nal=20Murray?= Date: Tue, 14 Nov 2023 15:17:28 +0000 Subject: [PATCH 70/78] Use proper PriceForSiblingDelivery Co-authored-by: Branislav Kontur --- .../runtimes/collectives/collectives-westend/src/lib.rs | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/cumulus/parachains/runtimes/collectives/collectives-westend/src/lib.rs b/cumulus/parachains/runtimes/collectives/collectives-westend/src/lib.rs index 672297923de7..3dc915daf3b7 100644 --- a/cumulus/parachains/runtimes/collectives/collectives-westend/src/lib.rs +++ b/cumulus/parachains/runtimes/collectives/collectives-westend/src/lib.rs @@ -451,8 +451,7 @@ impl cumulus_pallet_xcmp_queue::Config for Runtime { type ControllerOrigin = EitherOfDiverse, Fellows>; type ControllerOriginConverter = XcmOriginToTransactDispatchOrigin; type WeightInfo = weights::cumulus_pallet_xcmp_queue::WeightInfo; - type PriceForSiblingDelivery = - polkadot_runtime_common::xcm_sender::NoPriceForMessageDelivery; + type PriceForSiblingDelivery = PriceForSiblingParachainDelivery; } parameter_types! { From 1a07908a6c6c0687284ff6da0a61cb0ada28ac39 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?D=C3=B3nal=20Murray?= Date: Tue, 14 Nov 2023 14:31:17 +0000 Subject: [PATCH 71/78] zepter --- cumulus/parachains/integration-tests/emulated/common/Cargo.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cumulus/parachains/integration-tests/emulated/common/Cargo.toml b/cumulus/parachains/integration-tests/emulated/common/Cargo.toml index d233f678d34d..08bb284cded2 100644 --- a/cumulus/parachains/integration-tests/emulated/common/Cargo.toml +++ b/cumulus/parachains/integration-tests/emulated/common/Cargo.toml @@ -42,4 +42,4 @@ asset-test-utils = { path = "../../../runtimes/assets/test-utils" } # Bridges bp-messages = { path = "../../../../../bridges/primitives/messages" } pallet-bridge-messages = { path = "../../../../../bridges/modules/messages" } -bridge-runtime-common = { path = "../../../../../bridges/bin/runtime-common" } \ No newline at end of file +bridge-runtime-common = { path = "../../../../../bridges/bin/runtime-common" } From eda6aa8a104eeb77b5c89862c4428902eb314ac9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?D=C3=B3nal=20Murray?= Date: Tue, 14 Nov 2023 15:09:06 +0000 Subject: [PATCH 72/78] Add testnets-common to separate out testnet config --- Cargo.lock | 35 +++++ cumulus/parachains/common/src/westend.rs | 29 +--- .../collectives-westend/Cargo.toml | 3 + .../collectives-westend/src/lib.rs | 10 +- cumulus/parachains/testnets-common/Cargo.toml | 99 +++++++++++++ cumulus/parachains/testnets-common/src/lib.rs | 31 ++++ .../parachains/testnets-common/src/rococo.rs | 119 +++++++++++++++ .../parachains/testnets-common/src/westend.rs | 140 ++++++++++++++++++ .../parachains/testnets-common/src/wococo.rs | 17 +++ 9 files changed, 453 insertions(+), 30 deletions(-) create mode 100644 cumulus/parachains/testnets-common/Cargo.toml create mode 100644 cumulus/parachains/testnets-common/src/lib.rs create mode 100644 cumulus/parachains/testnets-common/src/rococo.rs create mode 100644 cumulus/parachains/testnets-common/src/westend.rs create mode 100644 cumulus/parachains/testnets-common/src/wococo.rs diff --git a/Cargo.lock b/Cargo.lock index 32d667ad723c..8042a6d399bc 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -3095,6 +3095,7 @@ dependencies = [ "staging-xcm-builder", "staging-xcm-executor", "substrate-wasm-builder", + "testnets-common", ] [[package]] @@ -19270,6 +19271,40 @@ dependencies = [ "sp-weights", ] +[[package]] +name = "testnets-common" +version = "1.0.0" +dependencies = [ + "cumulus-primitives-core", + "cumulus-primitives-utility", + "frame-support", + "frame-system", + "log", + "num-traits", + "pallet-asset-tx-payment", + "pallet-assets", + "pallet-authorship", + "pallet-balances", + "pallet-collator-selection", + "pallet-message-queue", + "parity-scale-codec", + "polkadot-core-primitives", + "polkadot-primitives", + "rococo-runtime-constants", + "scale-info", + "smallvec", + "sp-consensus-aura", + "sp-core", + "sp-io", + "sp-runtime", + "sp-std 8.0.0", + "staging-parachain-info", + "staging-xcm", + "staging-xcm-builder", + "substrate-wasm-builder", + "westend-runtime-constants", +] + [[package]] name = "textwrap" version = "0.16.0" diff --git a/cumulus/parachains/common/src/westend.rs b/cumulus/parachains/common/src/westend.rs index 0ae21e234549..9d3e0bd1a0e2 100644 --- a/cumulus/parachains/common/src/westend.rs +++ b/cumulus/parachains/common/src/westend.rs @@ -13,24 +13,6 @@ // See the License for the specific language governing permissions and // limitations under the License. -/// Universally recognized accounts. -pub mod account { - use frame_support::PalletId; - - /// Westend treasury pallet id, used to convert into AccountId - in Westend as a destination for - /// slashed funds. - pub const WESTEND_TREASURY_PALLET_ID: PalletId = PalletId(*b"py/trsry"); - /// Alliance pallet ID - used as a temporary place to deposit a slashed imbalance before the - /// teleport to the Treasury. - pub const ALLIANCE_PALLET_ID: PalletId = PalletId(*b"py/allia"); - /// Referenda pallet ID - used as a temporary place to deposit a slashed imbalance before the - /// teleport to the Treasury. - pub const REFERENDA_PALLET_ID: PalletId = PalletId(*b"py/refer"); - /// Ambassador Referenda pallet ID - used as a temporary place to deposit a slashed imbalance - /// before the teleport to the Treasury. - pub const AMBASSADOR_REFERENDA_PALLET_ID: PalletId = PalletId(*b"py/amref"); -} - pub mod currency { use polkadot_core_primitives::Balance; use westend_runtime_constants as constants; @@ -39,7 +21,6 @@ pub mod currency { pub const EXISTENTIAL_DEPOSIT: Balance = constants::currency::EXISTENTIAL_DEPOSIT / 10; pub const UNITS: Balance = constants::currency::UNITS; - pub const DOLLARS: Balance = UNITS; // 1_000_000_000_000 pub const CENTS: Balance = constants::currency::CENTS; pub const MILLICENTS: Balance = constants::currency::MILLICENTS; pub const GRAND: Balance = constants::currency::GRAND; @@ -63,7 +44,7 @@ pub mod fee { use smallvec::smallvec; pub use sp_runtime::Perbill; - /// The block saturation level. Fees will be updated based on this value. + /// The block saturation level. Fees will be updates based on this value. pub const TARGET_BLOCK_FULLNESS: Perbill = Perbill::from_percent(25); /// Handles converting a weight scalar to a fee value, based on the scale and granularity of the @@ -129,11 +110,11 @@ pub mod fee { /// Consensus-related. pub mod consensus { - /// Maximum number of blocks simultaneously accepted by the Runtime, not yet included into the - /// relay chain. + /// Maximum number of blocks simultaneously accepted by the Runtime, not yet included + /// into the relay chain. pub const UNINCLUDED_SEGMENT_CAPACITY: u32 = 1; - /// How many parachain blocks are processed by the relay chain per parent. Limits the number of - /// blocks authored per slot. + /// How many parachain blocks are processed by the relay chain per parent. Limits the + /// number of blocks authored per slot. pub const BLOCK_PROCESSING_VELOCITY: u32 = 1; /// Relay chain slot duration, in milliseconds. pub const RELAY_CHAIN_SLOT_DURATION_MILLIS: u32 = 6000; diff --git a/cumulus/parachains/runtimes/collectives/collectives-westend/Cargo.toml b/cumulus/parachains/runtimes/collectives/collectives-westend/Cargo.toml index 1bf87438ad96..2c706c4b2721 100644 --- a/cumulus/parachains/runtimes/collectives/collectives-westend/Cargo.toml +++ b/cumulus/parachains/runtimes/collectives/collectives-westend/Cargo.toml @@ -77,6 +77,7 @@ pallet-collator-selection = { path = "../../../../pallets/collator-selection", d pallet-collective-content = { path = "../../../pallets/collective-content", default-features = false } parachain-info = { package = "staging-parachain-info", path = "../../../pallets/parachain-info", default-features = false } parachains-common = { path = "../../../common", default-features = false } +testnets-common = { path = "../../../testnets-common", default-features = false } [build-dependencies] substrate-wasm-builder = { path = "../../../../../substrate/utils/wasm-builder", optional = true } @@ -118,6 +119,7 @@ runtime-benchmarks = [ "polkadot-parachain-primitives/runtime-benchmarks", "polkadot-runtime-common/runtime-benchmarks", "sp-runtime/runtime-benchmarks", + "testnets-common/runtime-benchmarks", "xcm-builder/runtime-benchmarks", "xcm-executor/runtime-benchmarks", ] @@ -217,6 +219,7 @@ std = [ "sp-transaction-pool/std", "sp-version/std", "substrate-wasm-builder", + "testnets-common/std", "xcm-builder/std", "xcm-executor/std", "xcm/std", diff --git a/cumulus/parachains/runtimes/collectives/collectives-westend/src/lib.rs b/cumulus/parachains/runtimes/collectives/collectives-westend/src/lib.rs index 3dc915daf3b7..7f68ce2e6c09 100644 --- a/cumulus/parachains/runtimes/collectives/collectives-westend/src/lib.rs +++ b/cumulus/parachains/runtimes/collectives/collectives-westend/src/lib.rs @@ -81,14 +81,12 @@ use frame_system::{ }; pub use parachains_common as common; use parachains_common::{ - impls::DealWithFees, - message_queue::*, - westend::{account::*, consensus::*, currency::*, fee::WeightToFee}, - AccountId, AuraId, Balance, BlockNumber, Hash, Header, Nonce, Signature, - AVERAGE_ON_INITIALIZE_RATIO, DAYS, HOURS, MAXIMUM_BLOCK_WEIGHT, MINUTES, NORMAL_DISPATCH_RATIO, - SLOT_DURATION, + impls::DealWithFees, message_queue::*, AccountId, AuraId, Balance, BlockNumber, Hash, Header, + Nonce, Signature, AVERAGE_ON_INITIALIZE_RATIO, DAYS, HOURS, MAXIMUM_BLOCK_WEIGHT, MINUTES, + NORMAL_DISPATCH_RATIO, SLOT_DURATION, }; use sp_runtime::RuntimeDebug; +use testnets_common::westend::{account::*, consensus::*, currency::*, fee::WeightToFee}; use xcm_config::{GovernanceLocation, XcmOriginToTransactDispatchOrigin}; #[cfg(any(feature = "std", test))] diff --git a/cumulus/parachains/testnets-common/Cargo.toml b/cumulus/parachains/testnets-common/Cargo.toml new file mode 100644 index 000000000000..0284845e1634 --- /dev/null +++ b/cumulus/parachains/testnets-common/Cargo.toml @@ -0,0 +1,99 @@ +[package] +name = "testnets-common" +version = "1.0.0" +authors.workspace = true +edition.workspace = true +description = "Logic which is common to testnet parachain runtimes" +license = "Apache-2.0" +publish = false + +[package.metadata.docs.rs] +targets = ["x86_64-unknown-linux-gnu"] + +[dependencies] +codec = { package = "parity-scale-codec", version = "3.0.0", features = ["derive"], default-features = false } +log = { version = "0.4.19", default-features = false } +scale-info = { version = "2.10.0", default-features = false, features = ["derive"] } +num-traits = { version = "0.2", default-features = false} +smallvec = "1.11.0" + +# Substrate +frame-support = { path = "../../../substrate/frame/support", default-features = false } +frame-system = { path = "../../../substrate/frame/system", default-features = false } +pallet-asset-tx-payment = { path = "../../../substrate/frame/transaction-payment/asset-tx-payment", default-features = false } +pallet-assets = { path = "../../../substrate/frame/assets", default-features = false } +pallet-authorship = { path = "../../../substrate/frame/authorship", default-features = false } +pallet-balances = { path = "../../../substrate/frame/balances", default-features = false } +pallet-message-queue = { path = "../../../substrate/frame/message-queue", default-features = false } +sp-consensus-aura = { path = "../../../substrate/primitives/consensus/aura", default-features = false } +sp-core = { path = "../../../substrate/primitives/core", default-features = false } +sp-io = { path = "../../../substrate/primitives/io", default-features = false } +sp-runtime = { path = "../../../substrate/primitives/runtime", default-features = false } +sp-std = { path = "../../../substrate/primitives/std", default-features = false } + +# Polkadot +rococo-runtime-constants = { path = "../../../polkadot/runtime/rococo/constants", default-features = false} +westend-runtime-constants = { path = "../../../polkadot/runtime/westend/constants", default-features = false} +polkadot-core-primitives = { path = "../../../polkadot/core-primitives", default-features = false} +polkadot-primitives = { path = "../../../polkadot/primitives", default-features = false} +xcm = { package = "staging-xcm", path = "../../../polkadot/xcm", default-features = false} +xcm-builder = { package = "staging-xcm-builder", path = "../../../polkadot/xcm/xcm-builder", default-features = false} + +# Cumulus +pallet-collator-selection = { path = "../../pallets/collator-selection", default-features = false } +cumulus-primitives-core = { path = "../../primitives/core", default-features = false } +cumulus-primitives-utility = { path = "../../primitives/utility", default-features = false } +parachain-info = { package = "staging-parachain-info", path = "../pallets/parachain-info", default-features = false } + +[dev-dependencies] +pallet-authorship = { path = "../../../substrate/frame/authorship", default-features = false} +sp-io = { path = "../../../substrate/primitives/io", default-features = false} + +[build-dependencies] +substrate-wasm-builder = { path = "../../../substrate/utils/wasm-builder" } + +[features] +default = [ "std" ] +std = [ + "codec/std", + "cumulus-primitives-core/std", + "cumulus-primitives-utility/std", + "frame-support/std", + "frame-system/std", + "log/std", + "num-traits/std", + "pallet-asset-tx-payment/std", + "pallet-assets/std", + "pallet-authorship/std", + "pallet-balances/std", + "pallet-collator-selection/std", + "pallet-message-queue/std", + "parachain-info/std", + "polkadot-core-primitives/std", + "polkadot-primitives/std", + "rococo-runtime-constants/std", + "scale-info/std", + "sp-consensus-aura/std", + "sp-core/std", + "sp-io/std", + "sp-runtime/std", + "sp-std/std", + "westend-runtime-constants/std", + "xcm-builder/std", + "xcm/std", +] + +runtime-benchmarks = [ + "cumulus-primitives-core/runtime-benchmarks", + "cumulus-primitives-utility/runtime-benchmarks", + "frame-support/runtime-benchmarks", + "frame-system/runtime-benchmarks", + "pallet-asset-tx-payment/runtime-benchmarks", + "pallet-assets/runtime-benchmarks", + "pallet-balances/runtime-benchmarks", + "pallet-collator-selection/runtime-benchmarks", + "pallet-message-queue/runtime-benchmarks", + "polkadot-primitives/runtime-benchmarks", + "sp-runtime/runtime-benchmarks", + "xcm-builder/runtime-benchmarks", +] diff --git a/cumulus/parachains/testnets-common/src/lib.rs b/cumulus/parachains/testnets-common/src/lib.rs new file mode 100644 index 000000000000..8dbafc5a4d96 --- /dev/null +++ b/cumulus/parachains/testnets-common/src/lib.rs @@ -0,0 +1,31 @@ +// 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. + +// Since the parachains-common package is now published to crates.io, SP runtimes for testnets +// will be adapted to use this package, and their config removed from the published common +// package. Only the configs specific to rococo, westend and wococo will be moved here, and the +// truly common logic will still be sourced from the parachains-common package. +// +// In practice this just means that instead of using e.g. `[parachains_common::westend::*]`, now the +// westend configs will be in `[testnets_common::westend::*]`. +// +// TODO: edit all runtimes to remove the testnet configs as part of PR #1737 +// + +#![cfg_attr(not(feature = "std"), no_std)] + +pub mod rococo; +pub mod westend; +pub mod wococo; diff --git a/cumulus/parachains/testnets-common/src/rococo.rs b/cumulus/parachains/testnets-common/src/rococo.rs new file mode 100644 index 000000000000..6e31def4b55b --- /dev/null +++ b/cumulus/parachains/testnets-common/src/rococo.rs @@ -0,0 +1,119 @@ +// 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. + +pub mod currency { + use polkadot_core_primitives::Balance; + use rococo_runtime_constants as constants; + + /// The existential deposit. Set to 1/10 of its parent Relay Chain (v9010). + pub const EXISTENTIAL_DEPOSIT: Balance = constants::currency::EXISTENTIAL_DEPOSIT / 10; + + pub const UNITS: Balance = constants::currency::UNITS; + pub const CENTS: Balance = constants::currency::CENTS; + pub const MILLICENTS: Balance = constants::currency::MILLICENTS; + + pub const fn deposit(items: u32, bytes: u32) -> Balance { + // map to 1/100 of what the rococo relay chain charges + constants::currency::deposit(items, bytes) / 100 + } +} + +pub mod fee { + use frame_support::{ + pallet_prelude::Weight, + weights::{ + constants::ExtrinsicBaseWeight, FeePolynomial, WeightToFeeCoefficient, + WeightToFeeCoefficients, WeightToFeePolynomial, + }, + }; + use polkadot_core_primitives::Balance; + use smallvec::smallvec; + pub use sp_runtime::Perbill; + + /// The block saturation level. Fees will be updates based on this value. + pub const TARGET_BLOCK_FULLNESS: Perbill = Perbill::from_percent(25); + + /// Handles converting a weight scalar to a fee value, based on the scale and granularity of the + /// node's balance type. + /// + /// This should typically create a mapping between the following ranges: + /// - `[0, MAXIMUM_BLOCK_WEIGHT]` + /// - `[Balance::min, Balance::max]` + /// + /// Yet, it can be used for any other sort of change to weight-fee. Some examples being: + /// - Setting it to `0` will essentially disable the weight fee. + /// - Setting it to `1` will cause the literal `#[weight = x]` values to be charged. + pub struct WeightToFee; + impl frame_support::weights::WeightToFee for WeightToFee { + type Balance = Balance; + + fn weight_to_fee(weight: &Weight) -> Self::Balance { + let time_poly: FeePolynomial = RefTimeToFee::polynomial().into(); + let proof_poly: FeePolynomial = ProofSizeToFee::polynomial().into(); + + // Take the maximum instead of the sum to charge by the more scarce resource. + time_poly.eval(weight.ref_time()).max(proof_poly.eval(weight.proof_size())) + } + } + + /// Maps the reference time component of `Weight` to a fee. + pub struct RefTimeToFee; + impl WeightToFeePolynomial for RefTimeToFee { + type Balance = Balance; + fn polynomial() -> WeightToFeeCoefficients { + // In Rococo, extrinsic base weight (smallest non-zero weight) is mapped to 1/10 CENT: + // The standard system parachain configuration is 1/10 of that, as in 1/100 CENT. + let p = super::currency::CENTS; + let q = 100 * Balance::from(ExtrinsicBaseWeight::get().ref_time()); + + smallvec![WeightToFeeCoefficient { + degree: 1, + negative: false, + coeff_frac: Perbill::from_rational(p % q, q), + coeff_integer: p / q, + }] + } + } + + /// Maps the proof size component of `Weight` to a fee. + pub struct ProofSizeToFee; + impl WeightToFeePolynomial for ProofSizeToFee { + type Balance = Balance; + fn polynomial() -> WeightToFeeCoefficients { + // Map 10kb proof to 1 CENT. + let p = super::currency::CENTS; + let q = 10_000; + + smallvec![WeightToFeeCoefficient { + degree: 1, + negative: false, + coeff_frac: Perbill::from_rational(p % q, q), + coeff_integer: p / q, + }] + } + } +} + +/// Consensus-related. +pub mod consensus { + /// Maximum number of blocks simultaneously accepted by the Runtime, not yet included + /// into the relay chain. + pub const UNINCLUDED_SEGMENT_CAPACITY: u32 = 1; + /// How many parachain blocks are processed by the relay chain per parent. Limits the + /// number of blocks authored per slot. + pub const BLOCK_PROCESSING_VELOCITY: u32 = 1; + /// Relay chain slot duration, in milliseconds. + pub const RELAY_CHAIN_SLOT_DURATION_MILLIS: u32 = 6000; +} diff --git a/cumulus/parachains/testnets-common/src/westend.rs b/cumulus/parachains/testnets-common/src/westend.rs new file mode 100644 index 000000000000..0ae21e234549 --- /dev/null +++ b/cumulus/parachains/testnets-common/src/westend.rs @@ -0,0 +1,140 @@ +// 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. + +/// Universally recognized accounts. +pub mod account { + use frame_support::PalletId; + + /// Westend treasury pallet id, used to convert into AccountId - in Westend as a destination for + /// slashed funds. + pub const WESTEND_TREASURY_PALLET_ID: PalletId = PalletId(*b"py/trsry"); + /// Alliance pallet ID - used as a temporary place to deposit a slashed imbalance before the + /// teleport to the Treasury. + pub const ALLIANCE_PALLET_ID: PalletId = PalletId(*b"py/allia"); + /// Referenda pallet ID - used as a temporary place to deposit a slashed imbalance before the + /// teleport to the Treasury. + pub const REFERENDA_PALLET_ID: PalletId = PalletId(*b"py/refer"); + /// Ambassador Referenda pallet ID - used as a temporary place to deposit a slashed imbalance + /// before the teleport to the Treasury. + pub const AMBASSADOR_REFERENDA_PALLET_ID: PalletId = PalletId(*b"py/amref"); +} + +pub mod currency { + use polkadot_core_primitives::Balance; + use westend_runtime_constants as constants; + + /// The existential deposit. Set to 1/10 of its parent Relay Chain. + pub const EXISTENTIAL_DEPOSIT: Balance = constants::currency::EXISTENTIAL_DEPOSIT / 10; + + pub const UNITS: Balance = constants::currency::UNITS; + pub const DOLLARS: Balance = UNITS; // 1_000_000_000_000 + pub const CENTS: Balance = constants::currency::CENTS; + pub const MILLICENTS: Balance = constants::currency::MILLICENTS; + pub const GRAND: Balance = constants::currency::GRAND; + + pub const fn deposit(items: u32, bytes: u32) -> Balance { + // 1/100 of Westend testnet + constants::currency::deposit(items, bytes) / 100 + } +} + +/// Fee-related. +pub mod fee { + use frame_support::{ + pallet_prelude::Weight, + weights::{ + constants::ExtrinsicBaseWeight, FeePolynomial, WeightToFeeCoefficient, + WeightToFeeCoefficients, WeightToFeePolynomial, + }, + }; + use polkadot_core_primitives::Balance; + use smallvec::smallvec; + pub use sp_runtime::Perbill; + + /// The block saturation level. Fees will be updated based on this value. + pub const TARGET_BLOCK_FULLNESS: Perbill = Perbill::from_percent(25); + + /// Handles converting a weight scalar to a fee value, based on the scale and granularity of the + /// node's balance type. + /// + /// This should typically create a mapping between the following ranges: + /// - [0, MAXIMUM_BLOCK_WEIGHT] + /// - [Balance::min, Balance::max] + /// + /// Yet, it can be used for any other sort of change to weight-fee. Some examples being: + /// - Setting it to `0` will essentially disable the weight fee. + /// - Setting it to `1` will cause the literal `#[weight = x]` values to be charged. + pub struct WeightToFee; + impl frame_support::weights::WeightToFee for WeightToFee { + type Balance = Balance; + + fn weight_to_fee(weight: &Weight) -> Self::Balance { + let time_poly: FeePolynomial = RefTimeToFee::polynomial().into(); + let proof_poly: FeePolynomial = ProofSizeToFee::polynomial().into(); + + // Take the maximum instead of the sum to charge by the more scarce resource. + time_poly.eval(weight.ref_time()).max(proof_poly.eval(weight.proof_size())) + } + } + + /// Maps the reference time component of `Weight` to a fee. + pub struct RefTimeToFee; + impl WeightToFeePolynomial for RefTimeToFee { + type Balance = Balance; + fn polynomial() -> WeightToFeeCoefficients { + // In Westend, extrinsic base weight (smallest non-zero weight) is mapped to 1/10 CENT: + // The standard system parachain configuration is 1/10 of that, as in 1/100 CENT. + let p = super::currency::CENTS; + let q = 100 * Balance::from(ExtrinsicBaseWeight::get().ref_time()); + + smallvec![WeightToFeeCoefficient { + degree: 1, + negative: false, + coeff_frac: Perbill::from_rational(p % q, q), + coeff_integer: p / q, + }] + } + } + + /// Maps the proof size component of `Weight` to a fee. + pub struct ProofSizeToFee; + impl WeightToFeePolynomial for ProofSizeToFee { + type Balance = Balance; + fn polynomial() -> WeightToFeeCoefficients { + // Map 10kb proof to 1 CENT. + let p = super::currency::CENTS; + let q = 10_000; + + smallvec![WeightToFeeCoefficient { + degree: 1, + negative: false, + coeff_frac: Perbill::from_rational(p % q, q), + coeff_integer: p / q, + }] + } + } +} + +/// Consensus-related. +pub mod consensus { + /// Maximum number of blocks simultaneously accepted by the Runtime, not yet included into the + /// relay chain. + pub const UNINCLUDED_SEGMENT_CAPACITY: u32 = 1; + /// How many parachain blocks are processed by the relay chain per parent. Limits the number of + /// blocks authored per slot. + pub const BLOCK_PROCESSING_VELOCITY: u32 = 1; + /// Relay chain slot duration, in milliseconds. + pub const RELAY_CHAIN_SLOT_DURATION_MILLIS: u32 = 6000; +} diff --git a/cumulus/parachains/testnets-common/src/wococo.rs b/cumulus/parachains/testnets-common/src/wococo.rs new file mode 100644 index 000000000000..5cd6121135a3 --- /dev/null +++ b/cumulus/parachains/testnets-common/src/wococo.rs @@ -0,0 +1,17 @@ +// 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. + +// re-export rococo +pub use crate::rococo::{consensus, currency, fee}; From 4dc51f5c9daa26726abf0e781704cb3bcf210e30 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?D=C3=B3nal=20Murray?= Date: Tue, 14 Nov 2023 15:14:12 +0000 Subject: [PATCH 73/78] Change runtime_str to collectives-westend --- .../runtimes/collectives/collectives-westend/src/lib.rs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/cumulus/parachains/runtimes/collectives/collectives-westend/src/lib.rs b/cumulus/parachains/runtimes/collectives/collectives-westend/src/lib.rs index 7f68ce2e6c09..e3b54c61006e 100644 --- a/cumulus/parachains/runtimes/collectives/collectives-westend/src/lib.rs +++ b/cumulus/parachains/runtimes/collectives/collectives-westend/src/lib.rs @@ -107,8 +107,8 @@ impl_opaque_keys! { #[sp_version::runtime_version] pub const VERSION: RuntimeVersion = RuntimeVersion { - spec_name: create_runtime_str!("collectives"), - impl_name: create_runtime_str!("collectives"), + spec_name: create_runtime_str!("collectives-westend"), + impl_name: create_runtime_str!("collectives-westend"), authoring_version: 1, spec_version: 1_003_000, impl_version: 0, From f90205675780903b9e20930bc54da061c43aab4e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?D=C3=B3nal=20Murray?= Date: Tue, 14 Nov 2023 15:27:19 +0000 Subject: [PATCH 74/78] Sort out types for FeeManager set up --- Cargo.lock | 1 + .../collectives-westend/Cargo.toml | 2 ++ .../collectives-westend/src/xcm_config.rs | 33 ++++++++++++++++--- 3 files changed, 32 insertions(+), 4 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 8042a6d399bc..64c432365358 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -3096,6 +3096,7 @@ dependencies = [ "staging-xcm-executor", "substrate-wasm-builder", "testnets-common", + "westend-runtime-constants", ] [[package]] diff --git a/cumulus/parachains/runtimes/collectives/collectives-westend/Cargo.toml b/cumulus/parachains/runtimes/collectives/collectives-westend/Cargo.toml index 2c706c4b2721..94f2de33e908 100644 --- a/cumulus/parachains/runtimes/collectives/collectives-westend/Cargo.toml +++ b/cumulus/parachains/runtimes/collectives/collectives-westend/Cargo.toml @@ -62,6 +62,7 @@ polkadot-runtime-common = { path = "../../../../../polkadot/runtime/common", def xcm = { package = "staging-xcm", path = "../../../../../polkadot/xcm", default-features = false} xcm-builder = { package = "staging-xcm-builder", path = "../../../../../polkadot/xcm/xcm-builder", default-features = false} xcm-executor = { package = "staging-xcm-executor", path = "../../../../../polkadot/xcm/xcm-executor", default-features = false} +westend-runtime-constants = { path = "../../../../../polkadot/runtime/westend/constants", default-features = false} # Cumulus cumulus-pallet-aura-ext = { path = "../../../../pallets/aura-ext", default-features = false } @@ -220,6 +221,7 @@ std = [ "sp-version/std", "substrate-wasm-builder", "testnets-common/std", + "westend-runtime-constants/std", "xcm-builder/std", "xcm-executor/std", "xcm/std", diff --git a/cumulus/parachains/runtimes/collectives/collectives-westend/src/xcm_config.rs b/cumulus/parachains/runtimes/collectives/collectives-westend/src/xcm_config.rs index 0196e8509e85..5e1ee5d8f2b4 100644 --- a/cumulus/parachains/runtimes/collectives/collectives-westend/src/xcm_config.rs +++ b/cumulus/parachains/runtimes/collectives/collectives-westend/src/xcm_config.rs @@ -16,18 +16,22 @@ use super::{ AccountId, AllPalletsWithSystem, Balances, BaseDeliveryFee, FeeAssetId, Fellows, ParachainInfo, ParachainSystem, PolkadotXcm, Runtime, RuntimeCall, RuntimeEvent, RuntimeOrigin, - TransactionByteFee, WeightToFee, XcmpQueue, + TransactionByteFee, WeightToFee, WestendTreasuryAccount, XcmpQueue, }; use frame_support::{ match_types, parameter_types, - traits::{ConstU32, Contains, Everything, Nothing}, + traits::{ConstU32, Contains, Equals, Everything, Nothing}, weights::Weight, }; use frame_system::EnsureRoot; use pallet_xcm::XcmPassthrough; -use parachains_common::{impls::ToStakingPot, xcm_config::ConcreteAssetFromSystem}; +use parachains_common::{ + impls::ToStakingPot, + xcm_config::{ConcreteAssetFromSystem, RelayOrOtherSystemParachains}, +}; use polkadot_parachain_primitives::primitives::Sibling; use polkadot_runtime_common::xcm_sender::ExponentialPrice; +use westend_runtime_constants::system_parachain; use xcm::latest::prelude::*; use xcm_builder::{ AccountId32Aliases, AllowExplicitUnpaidExecutionFrom, AllowKnownQueryResponses, @@ -37,6 +41,7 @@ use xcm_builder::{ RelayChainAsNative, SiblingParachainAsNative, SiblingParachainConvertsVia, SignedAccountId32AsNative, SignedToAccountId32, SovereignSignedViaLocation, TakeWeightCredit, TrailingSetTopicAsId, UsingComponents, WithComputedOrigin, WithUniqueTopic, + XcmFeeManagerFromComponents, XcmFeeToAccount, }; use xcm_executor::{traits::WithOriginFilter, XcmExecutor}; @@ -48,6 +53,7 @@ parameter_types! { pub RelayChainOrigin: RuntimeOrigin = cumulus_pallet_xcm::Origin::Relay.into(); pub UniversalLocation: InteriorMultiLocation = X2(GlobalConsensus(RelayNetwork::get().unwrap()), Parachain(ParachainInfo::parachain_id().into())); + pub RelayTreasuryLocation: MultiLocation = (Parent, PalletInstance(westend_runtime_constants::TREASURY_PALLET_ID)).into(); pub CheckingAccount: AccountId = PolkadotXcm::check_account(); pub const GovernanceLocation: MultiLocation = MultiLocation::parent(); pub const FellowshipAdminBodyId: BodyId = BodyId::Index(FELLOWSHIP_ADMIN_INDEX); @@ -242,6 +248,25 @@ pub type Barrier = TrailingSetTopicAsId< >, >; +match_types! { + pub type SystemParachains: impl Contains = { + MultiLocation { + parents: 1, + interior: X1(Parachain( + system_parachain::ASSET_HUB_ID | + system_parachain::BRIDGE_HUB_ID | + system_parachain::COLLECTIVES_ID + )), + } + }; +} + +/// Locations that will not be charged fees in the executor, +/// either execution or delivery. +/// We only waive fees for system functions, which these locations represent. +pub type WaivedLocations = + (RelayOrOtherSystemParachains, Equals); + /// Cases where a remote origin is accepted as trusted Teleporter for a given asset: /// - DOT with the parent Relay Chain and sibling parachains. pub type TrustedTeleporters = ConcreteAssetFromSystem; @@ -271,7 +296,7 @@ impl xcm_executor::Config for XcmConfig { type AssetExchanger = (); type FeeManager = XcmFeeManagerFromComponents< WaivedLocations, - XcmFeeToAccount, + XcmFeeToAccount, >; type MessageExporter = (); type UniversalAliases = Nothing; From 3190e117cd693c30b9cde6903bbc7a06b21819aa Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?D=C3=B3nal=20Murray?= Date: Tue, 14 Nov 2023 15:40:18 +0000 Subject: [PATCH 75/78] Temporarily mark testnets-common as to-publish --- cumulus/parachains/testnets-common/Cargo.toml | 1 - 1 file changed, 1 deletion(-) diff --git a/cumulus/parachains/testnets-common/Cargo.toml b/cumulus/parachains/testnets-common/Cargo.toml index 0284845e1634..77b2be9a1d35 100644 --- a/cumulus/parachains/testnets-common/Cargo.toml +++ b/cumulus/parachains/testnets-common/Cargo.toml @@ -5,7 +5,6 @@ authors.workspace = true edition.workspace = true description = "Logic which is common to testnet parachain runtimes" license = "Apache-2.0" -publish = false [package.metadata.docs.rs] targets = ["x86_64-unknown-linux-gnu"] From 0200266f22d71291619c055e2bcf7112b49467b8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?D=C3=B3nal=20Murray?= Date: Wed, 15 Nov 2023 09:20:06 +0000 Subject: [PATCH 76/78] Check runtime migrations for collectives-westend --- .gitlab/pipeline/check.yml | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/.gitlab/pipeline/check.yml b/.gitlab/pipeline/check.yml index cbb3baf277cd..4071fdf9758b 100644 --- a/.gitlab/pipeline/check.yml +++ b/.gitlab/pipeline/check.yml @@ -177,6 +177,19 @@ check-runtime-migration-contracts-rococo: WASM: "contracts_rococo_runtime.compact.compressed.wasm" URI: "wss://rococo-contracts-rpc.polkadot.io:443" +# Check runtime migrations for Parity managed collectives chains +check-runtime-migration-collectives-westend: + stage: check + extends: + - .docker-env + - .test-pr-refs + - .check-runtime-migration + variables: + NETWORK: "collectives-westend" + PACKAGE: "collectives-westend-runtime" + WASM: "collectives_westend_runtime.compact.compressed.wasm" + URI: "wss://westend-collectives-rpc.polkadot.io:443" + find-fail-ci-phrase: stage: check variables: From 3cae1d822354d9dac8b050380a99117d1ae900d2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?D=C3=B3nal=20Murray?= Date: Wed, 15 Nov 2023 09:33:03 +0000 Subject: [PATCH 77/78] Fix benchmarking after master merge --- .../collectives-westend/src/lib.rs | 26 ++++++++++++++++++- .../src/weights/pallet_collator_selection.rs | 26 ++++++++++++++++++- .../collectives-westend/src/xcm_config.rs | 2 -- 3 files changed, 50 insertions(+), 4 deletions(-) diff --git a/cumulus/parachains/runtimes/collectives/collectives-westend/src/lib.rs b/cumulus/parachains/runtimes/collectives/collectives-westend/src/lib.rs index e3b54c61006e..8c5593e154d7 100644 --- a/cumulus/parachains/runtimes/collectives/collectives-westend/src/lib.rs +++ b/cumulus/parachains/runtimes/collectives/collectives-westend/src/lib.rs @@ -743,7 +743,7 @@ mod benches { [cumulus_pallet_dmp_queue, DmpQueue] [pallet_alliance, Alliance] [pallet_collective, AllianceMotion] - [pallet_xcm, PolkadotXcm] + [pallet_xcm, PalletXcmExtrinsicsBenchmark::] [pallet_preimage, Preimage] [pallet_scheduler, Scheduler] [pallet_referenda, FellowshipReferenda] @@ -931,6 +931,7 @@ impl_runtime_apis! { use frame_support::traits::StorageInfoTrait; use frame_system_benchmarking::Pallet as SystemBench; use cumulus_pallet_session_benchmarking::Pallet as SessionBench; + use pallet_xcm::benchmarking::Pallet as PalletXcmExtrinsicsBenchmark; let mut list = Vec::::new(); list_benchmarks!(list, extra); @@ -960,6 +961,29 @@ impl_runtime_apis! { use cumulus_pallet_session_benchmarking::Pallet as SessionBench; impl cumulus_pallet_session_benchmarking::Config for Runtime {} + use pallet_xcm::benchmarking::Pallet as PalletXcmExtrinsicsBenchmark; + impl pallet_xcm::benchmarking::Config for Runtime { + fn reachable_dest() -> Option { + Some(Parent.into()) + } + + fn teleportable_asset_and_dest() -> Option<(MultiAsset, MultiLocation)> { + // Relay/native token can be teleported between Collectives and Relay. + Some(( + MultiAsset { + fun: Fungible(EXISTENTIAL_DEPOSIT), + id: Concrete(Parent.into()) + }.into(), + Parent.into(), + )) + } + + fn reserve_transferable_asset_and_dest() -> Option<(MultiAsset, MultiLocation)> { + // Reserve transfers are disabled on Collectives. + None + } + } + let whitelist: Vec = vec![ // Block Number hex_literal::hex!("26aa394eea5630e07c48ae0c9558cef702a5c1b19ab7a04f536c519aca4983ac").to_vec().into(), diff --git a/cumulus/parachains/runtimes/collectives/collectives-westend/src/weights/pallet_collator_selection.rs b/cumulus/parachains/runtimes/collectives/collectives-westend/src/weights/pallet_collator_selection.rs index 2c729e8dc107..03f3ff602a5b 100644 --- a/cumulus/parachains/runtimes/collectives/collectives-westend/src/weights/pallet_collator_selection.rs +++ b/cumulus/parachains/runtimes/collectives/collectives-westend/src/weights/pallet_collator_selection.rs @@ -121,7 +121,7 @@ impl pallet_collator_selection::WeightInfo for WeightIn } /// Storage: `CollatorSelection::CandidacyBond` (r:0 w:1) /// Proof: `CollatorSelection::CandidacyBond` (`max_values`: Some(1), `max_size`: Some(16), added: 511, mode: `MaxEncodedLen`) - fn set_candidacy_bond() -> Weight { + fn set_candidacy_bond(_c: u32, _k: u32) -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` @@ -175,6 +175,30 @@ impl pallet_collator_selection::WeightInfo for WeightIn .saturating_add(T::DbWeight::get().reads(2)) .saturating_add(T::DbWeight::get().writes(2)) } + fn update_bond(c: u32, ) -> Weight { + // Proof Size summary in bytes: + // Measured: `306 + c * (50 ±0)` + // Estimated: `6287` + // Minimum execution time: 34_814_000 picoseconds. + Weight::from_parts(36_371_520, 0) + .saturating_add(Weight::from_parts(0, 6287)) + // Standard Error: 2_391 + .saturating_add(Weight::from_parts(201_700, 0).saturating_mul(c.into())) + .saturating_add(T::DbWeight::get().reads(2)) + .saturating_add(T::DbWeight::get().writes(2)) + } + fn take_candidate_slot(c: u32, ) -> Weight { + // Proof Size summary in bytes: + // Measured: `306 + c * (50 ±0)` + // Estimated: `6287` + // Minimum execution time: 34_814_000 picoseconds. + Weight::from_parts(36_371_520, 0) + .saturating_add(Weight::from_parts(0, 6287)) + // Standard Error: 2_391 + .saturating_add(Weight::from_parts(201_700, 0).saturating_mul(c.into())) + .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: `System::BlockWeight` (r:1 w:1) diff --git a/cumulus/parachains/runtimes/collectives/collectives-westend/src/xcm_config.rs b/cumulus/parachains/runtimes/collectives/collectives-westend/src/xcm_config.rs index 5e1ee5d8f2b4..d58995827fa4 100644 --- a/cumulus/parachains/runtimes/collectives/collectives-westend/src/xcm_config.rs +++ b/cumulus/parachains/runtimes/collectives/collectives-westend/src/xcm_config.rs @@ -353,8 +353,6 @@ impl pallet_xcm::Config for Runtime { type SovereignAccountOf = LocationToAccountId; type MaxLockers = ConstU32<8>; type WeightInfo = crate::weights::pallet_xcm::WeightInfo; - #[cfg(feature = "runtime-benchmarks")] - type ReachableDest = ReachableDest; type AdminOrigin = EnsureRoot; type MaxRemoteLockConsumers = ConstU32<0>; type RemoteLockConsumerIdentifier = (); From 72b3c830bdbb5485e6b24898949e3f16d9d05c75 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?D=C3=B3nal=20Murray?= Date: Wed, 15 Nov 2023 14:16:44 +0000 Subject: [PATCH 78/78] Clean up testnets-common --- Cargo.lock | 21 ------- cumulus/parachains/testnets-common/Cargo.toml | 56 +------------------ cumulus/parachains/testnets-common/src/lib.rs | 21 ++++--- 3 files changed, 11 insertions(+), 87 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 2773c0b62053..f4f2e40132d2 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -19341,32 +19341,11 @@ dependencies = [ name = "testnets-common" version = "1.0.0" dependencies = [ - "cumulus-primitives-core", - "cumulus-primitives-utility", "frame-support", - "frame-system", - "log", - "num-traits", - "pallet-asset-tx-payment", - "pallet-assets", - "pallet-authorship", - "pallet-balances", - "pallet-collator-selection", - "pallet-message-queue", - "parity-scale-codec", "polkadot-core-primitives", - "polkadot-primitives", "rococo-runtime-constants", - "scale-info", "smallvec", - "sp-consensus-aura", - "sp-core", - "sp-io", "sp-runtime", - "sp-std 8.0.0", - "staging-parachain-info", - "staging-xcm", - "staging-xcm-builder", "substrate-wasm-builder", "westend-runtime-constants", ] diff --git a/cumulus/parachains/testnets-common/Cargo.toml b/cumulus/parachains/testnets-common/Cargo.toml index 77b2be9a1d35..e39cf91d3abf 100644 --- a/cumulus/parachains/testnets-common/Cargo.toml +++ b/cumulus/parachains/testnets-common/Cargo.toml @@ -3,50 +3,27 @@ name = "testnets-common" version = "1.0.0" authors.workspace = true edition.workspace = true -description = "Logic which is common to testnet parachain runtimes" +description = "Logic and configuration specific to testnet parachain runtimes" license = "Apache-2.0" [package.metadata.docs.rs] targets = ["x86_64-unknown-linux-gnu"] [dependencies] -codec = { package = "parity-scale-codec", version = "3.0.0", features = ["derive"], default-features = false } -log = { version = "0.4.19", default-features = false } -scale-info = { version = "2.10.0", default-features = false, features = ["derive"] } -num-traits = { version = "0.2", default-features = false} smallvec = "1.11.0" # Substrate frame-support = { path = "../../../substrate/frame/support", default-features = false } -frame-system = { path = "../../../substrate/frame/system", default-features = false } -pallet-asset-tx-payment = { path = "../../../substrate/frame/transaction-payment/asset-tx-payment", default-features = false } -pallet-assets = { path = "../../../substrate/frame/assets", default-features = false } -pallet-authorship = { path = "../../../substrate/frame/authorship", default-features = false } -pallet-balances = { path = "../../../substrate/frame/balances", default-features = false } -pallet-message-queue = { path = "../../../substrate/frame/message-queue", default-features = false } -sp-consensus-aura = { path = "../../../substrate/primitives/consensus/aura", default-features = false } -sp-core = { path = "../../../substrate/primitives/core", default-features = false } -sp-io = { path = "../../../substrate/primitives/io", default-features = false } sp-runtime = { path = "../../../substrate/primitives/runtime", default-features = false } -sp-std = { path = "../../../substrate/primitives/std", default-features = false } # Polkadot rococo-runtime-constants = { path = "../../../polkadot/runtime/rococo/constants", default-features = false} westend-runtime-constants = { path = "../../../polkadot/runtime/westend/constants", default-features = false} polkadot-core-primitives = { path = "../../../polkadot/core-primitives", default-features = false} -polkadot-primitives = { path = "../../../polkadot/primitives", default-features = false} -xcm = { package = "staging-xcm", path = "../../../polkadot/xcm", default-features = false} -xcm-builder = { package = "staging-xcm-builder", path = "../../../polkadot/xcm/xcm-builder", default-features = false} # Cumulus -pallet-collator-selection = { path = "../../pallets/collator-selection", default-features = false } -cumulus-primitives-core = { path = "../../primitives/core", default-features = false } -cumulus-primitives-utility = { path = "../../primitives/utility", default-features = false } -parachain-info = { package = "staging-parachain-info", path = "../pallets/parachain-info", default-features = false } [dev-dependencies] -pallet-authorship = { path = "../../../substrate/frame/authorship", default-features = false} -sp-io = { path = "../../../substrate/primitives/io", default-features = false} [build-dependencies] substrate-wasm-builder = { path = "../../../substrate/utils/wasm-builder" } @@ -54,45 +31,14 @@ substrate-wasm-builder = { path = "../../../substrate/utils/wasm-builder" } [features] default = [ "std" ] std = [ - "codec/std", - "cumulus-primitives-core/std", - "cumulus-primitives-utility/std", "frame-support/std", - "frame-system/std", - "log/std", - "num-traits/std", - "pallet-asset-tx-payment/std", - "pallet-assets/std", - "pallet-authorship/std", - "pallet-balances/std", - "pallet-collator-selection/std", - "pallet-message-queue/std", - "parachain-info/std", "polkadot-core-primitives/std", - "polkadot-primitives/std", "rococo-runtime-constants/std", - "scale-info/std", - "sp-consensus-aura/std", - "sp-core/std", - "sp-io/std", "sp-runtime/std", - "sp-std/std", "westend-runtime-constants/std", - "xcm-builder/std", - "xcm/std", ] runtime-benchmarks = [ - "cumulus-primitives-core/runtime-benchmarks", - "cumulus-primitives-utility/runtime-benchmarks", "frame-support/runtime-benchmarks", - "frame-system/runtime-benchmarks", - "pallet-asset-tx-payment/runtime-benchmarks", - "pallet-assets/runtime-benchmarks", - "pallet-balances/runtime-benchmarks", - "pallet-collator-selection/runtime-benchmarks", - "pallet-message-queue/runtime-benchmarks", - "polkadot-primitives/runtime-benchmarks", "sp-runtime/runtime-benchmarks", - "xcm-builder/runtime-benchmarks", ] diff --git a/cumulus/parachains/testnets-common/src/lib.rs b/cumulus/parachains/testnets-common/src/lib.rs index 8dbafc5a4d96..42d367bff27d 100644 --- a/cumulus/parachains/testnets-common/src/lib.rs +++ b/cumulus/parachains/testnets-common/src/lib.rs @@ -13,19 +13,18 @@ // See the License for the specific language governing permissions and // limitations under the License. -// Since the parachains-common package is now published to crates.io, SP runtimes for testnets -// will be adapted to use this package, and their config removed from the published common -// package. Only the configs specific to rococo, westend and wococo will be moved here, and the -// truly common logic will still be sourced from the parachains-common package. -// -// In practice this just means that instead of using e.g. `[parachains_common::westend::*]`, now the -// westend configs will be in `[testnets_common::westend::*]`. -// -// TODO: edit all runtimes to remove the testnet configs as part of PR #1737 -// - #![cfg_attr(not(feature = "std"), no_std)] +/// Since the parachains-common package is now published to crates.io, SP runtimes for testnets +/// will be adapted to use this package, and their config removed from the published common +/// package. Only the configs specific to rococo, westend and wococo will be moved here, and the +/// truly common logic will still be sourced from the parachains-common package. +/// +/// In practice this just means that instead of using e.g. `[parachains_common::westend::*]`, now +/// the westend configs will be in `[testnets_common::westend::*]`. +/// +/// TODO: edit all runtimes to remove the testnet configs as part of PR #1737 +/// pub mod rococo; pub mod westend; pub mod wococo;